From 6c562470f3a7cd24ed6501f54422564ed42051ea Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Fri, 8 Mar 2024 20:09:27 +1100 Subject: [PATCH] Merge launcher branch --- .github/workflows/build_linux.yml | 36 +- .github/workflows/build_macos.yml | 76 +- .github/workflows/build_windows.yml | 85 +- .gitignore | 26 +- .gitmodules | 3 - cmake/FindDiscordApi.cmake | 24 +- cmake/FindSteamApi.cmake | 19 +- lib/linux/include/GL/gl.h | 2235 -- lib/linux/include/GL/gl_mangle.h | 2311 -- lib/linux/include/GL/glew.h | 16126 ------------ lib/linux/include/GL/glext.h | 11488 -------- lib/linux/include/GL/glu.h | 353 - lib/linux/include/GL/glu_mangle.h | 86 - lib/linux/include/GL/glx.h | 526 - lib/linux/include/GL/glx_mangle.h | 82 - lib/linux/include/GL/glxew.h | 1587 -- lib/linux/include/GL/glxext.h | 993 - lib/linux/include/GL/internal/dri_interface.h | 986 - lib/linux/include/GL/wglew.h | 1363 - lib/linux/include/config/ftconfig.h | 450 - lib/linux/include/config/ftheader.h | 832 - lib/linux/include/config/ftmodule.h | 32 - lib/linux/include/config/ftoption.h | 899 - lib/linux/include/config/ftstdlib.h | 174 - lib/linux/include/freetype.h | 4048 --- lib/linux/include/ft2build.h | 42 - lib/linux/include/ftadvanc.h | 187 - lib/linux/include/ftautoh.h | 402 - lib/linux/include/ftbbox.h | 101 - lib/linux/include/ftbdf.h | 210 - lib/linux/include/ftbitmap.h | 232 - lib/linux/include/ftbzip2.h | 102 - lib/linux/include/ftcache.h | 1057 - lib/linux/include/ftcffdrv.h | 262 - lib/linux/include/ftchapters.h | 121 - lib/linux/include/ftcid.h | 167 - lib/linux/include/fterrdef.h | 249 - lib/linux/include/fterrors.h | 198 - lib/linux/include/ftgasp.h | 129 - lib/linux/include/ftglyph.h | 605 - lib/linux/include/ftgxval.h | 357 - lib/linux/include/ftgzip.h | 148 - lib/linux/include/ftimage.h | 1220 - lib/linux/include/ftincrem.h | 354 - lib/linux/include/ftlcdfil.h | 251 - lib/linux/include/ftlist.h | 276 - lib/linux/include/ftlzw.h | 99 - lib/linux/include/ftmac.h | 274 - lib/linux/include/ftmm.h | 373 - lib/linux/include/ftmodapi.h | 667 - lib/linux/include/ftmoderr.h | 194 - lib/linux/include/ftotval.h | 204 - lib/linux/include/ftoutln.h | 574 - lib/linux/include/ftpfr.h | 172 - lib/linux/include/ftrender.h | 237 - lib/linux/include/ftsizes.h | 159 - lib/linux/include/ftsnames.h | 200 - lib/linux/include/ftstroke.h | 785 - lib/linux/include/ftsynth.h | 82 - lib/linux/include/ftsystem.h | 355 - lib/linux/include/fttrigon.h | 350 - lib/linux/include/ftttdrv.h | 170 - lib/linux/include/fttypes.h | 602 - lib/linux/include/ftwinfnt.h | 275 - lib/linux/include/ftxf86.h | 84 - lib/linux/include/internal/autohint.h | 244 - lib/linux/include/internal/ftcalc.h | 406 - lib/linux/include/internal/ftdebug.h | 255 - lib/linux/include/internal/ftdriver.h | 409 - lib/linux/include/internal/ftgloadr.h | 170 - lib/linux/include/internal/ftmemory.h | 378 - lib/linux/include/internal/ftobjs.h | 1571 -- lib/linux/include/internal/ftpic.h | 71 - lib/linux/include/internal/ftrfork.h | 266 - lib/linux/include/internal/ftserv.h | 763 - lib/linux/include/internal/ftstream.h | 536 - lib/linux/include/internal/fttrace.h | 154 - lib/linux/include/internal/ftvalid.h | 159 - lib/linux/include/internal/internal.h | 63 - lib/linux/include/internal/psaux.h | 877 - lib/linux/include/internal/pshints.h | 722 - lib/linux/include/internal/services/svbdf.h | 82 - lib/linux/include/internal/services/svcid.h | 89 - .../include/internal/services/svgldict.h | 88 - lib/linux/include/internal/services/svgxval.h | 72 - lib/linux/include/internal/services/svkern.h | 51 - lib/linux/include/internal/services/svmm.h | 113 - lib/linux/include/internal/services/svotval.h | 55 - lib/linux/include/internal/services/svpfr.h | 66 - .../include/internal/services/svpostnm.h | 81 - lib/linux/include/internal/services/svprop.h | 81 - .../include/internal/services/svpscmap.h | 177 - .../include/internal/services/svpsinfo.h | 111 - lib/linux/include/internal/services/svsfnt.h | 103 - .../include/internal/services/svttcmap.h | 107 - lib/linux/include/internal/services/svtteng.h | 53 - .../include/internal/services/svttglyf.h | 68 - .../include/internal/services/svwinfnt.h | 50 - .../include/internal/services/svxf86nm.h | 55 - lib/linux/include/internal/sfnt.h | 711 - lib/linux/include/internal/t1types.h | 255 - lib/linux/include/internal/tttypes.h | 1516 -- lib/linux/include/ogg/config_types.h | 25 - lib/linux/include/ogg/ogg.h | 210 - lib/linux/include/ogg/os_types.h | 147 - lib/linux/include/png.h | 3810 --- lib/linux/include/pngconf.h | 1665 -- lib/linux/include/steam/isteamapplist.h | 63 - lib/linux/include/steam/isteamapps.h | 82 +- lib/linux/include/steam/isteamclient.h | 415 +- lib/linux/include/steam/isteamcontroller.h | 607 +- lib/linux/include/steam/isteamdualsense.h | 169 + lib/linux/include/steam/isteamfriends.h | 199 +- .../include/steam/isteamgamecoordinator.h | 5 +- lib/linux/include/steam/isteamgameserver.h | 169 +- .../include/steam/isteamgameserverstats.h | 23 +- lib/linux/include/steam/isteamhtmlsurface.h | 288 +- lib/linux/include/steam/isteamhttp.h | 23 +- lib/linux/include/steam/isteaminput.h | 982 + lib/linux/include/steam/isteaminventory.h | 228 +- .../include/steam/isteammasterserverupdater.h | 1 - lib/linux/include/steam/isteammatchmaking.h | 368 +- lib/linux/include/steam/isteammusic.h | 18 +- lib/linux/include/steam/isteammusicremote.h | 76 +- lib/linux/include/steam/isteamnetworking.h | 73 +- .../include/steam/isteamnetworkingmessages.h | 198 + .../include/steam/isteamnetworkingsockets.h | 1030 + .../include/steam/isteamnetworkingutils.h | 500 + .../include/steam/isteamparentalsettings.h | 64 + lib/linux/include/steam/isteamremoteplay.h | 99 + lib/linux/include/steam/isteamremotestorage.h | 228 +- lib/linux/include/steam/isteamscreenshots.h | 8 +- lib/linux/include/steam/isteamugc.h | 258 +- .../include/steam/isteamunifiedmessages.h | 63 - lib/linux/include/steam/isteamuser.h | 202 +- lib/linux/include/steam/isteamuserstats.h | 81 +- lib/linux/include/steam/isteamutils.h | 125 +- lib/linux/include/steam/isteamvideo.h | 34 +- lib/linux/include/steam/matchmakingtypes.h | 26 +- lib/linux/include/steam/steam_api.h | 592 +- lib/linux/include/steam/steam_api.json | 21616 ++++++++++------ lib/linux/include/steam/steam_api_common.h | 249 + lib/linux/include/steam/steam_api_flat.h | 2038 +- lib/linux/include/steam/steam_api_internal.h | 483 +- lib/linux/include/steam/steam_api_interop.cs | 10470 -------- lib/linux/include/steam/steam_gameserver.h | 222 +- lib/linux/include/steam/steamclientpublic.h | 649 +- .../include/steam/steamencryptedappticket.h | 10 +- lib/linux/include/steam/steamhttpenums.h | 7 + .../include/steam/steamnetworkingfakeip.h | 135 + .../include/steam/steamnetworkingtypes.h | 1870 ++ lib/linux/include/steam/steamtypes.h | 181 +- lib/linux/include/t1tables.h | 760 - lib/linux/include/ttnameid.h | 1237 - lib/linux/include/tttables.h | 829 - lib/linux/include/tttags.h | 111 - lib/linux/include/ttunpat.h | 60 - lib/linux/include/vorbis/codec.h | 243 - lib/linux/include/vorbis/vorbisenc.h | 436 - lib/linux/include/vorbis/vorbisfile.h | 206 - lib/linux/include/zconf.h | 511 - lib/linux/include/zlib.h | 1744 -- lib/linux/libGLEW.a | Bin 921784 -> 0 bytes lib/linux/libdiscord_game_sdk.so | Bin 0 -> 8469240 bytes lib/linux/libfreetype.a | Bin 886974 -> 0 bytes lib/linux/libogg.a | Bin 28298 -> 0 bytes lib/linux/libpng.a | Bin 246762 -> 0 bytes lib/linux/libsteam_api.so | Bin 266651 -> 383104 bytes lib/linux/libvorbis.a | Bin 239364 -> 0 bytes lib/linux/libvorbisenc.a | Bin 3056686 -> 0 bytes lib/linux/libvorbisfile.a | Bin 32804 -> 0 bytes lib/linux/libz.a | Bin 127770 -> 0 bytes lib/osx/arm64/libdiscord_game_sdk.dylib | Bin 0 -> 3818808 bytes lib/osx/include/GL/glew.h | 16126 ------------ lib/osx/include/GL/glxew.h | 1587 -- lib/osx/include/GL/wglew.h | 1363 - lib/osx/include/SDL.h | 132 - lib/osx/include/SDL_assert.h | 289 - lib/osx/include/SDL_atomic.h | 268 - lib/osx/include/SDL_audio.h | 672 - lib/osx/include/SDL_bits.h | 97 - lib/osx/include/SDL_blendmode.h | 63 - lib/osx/include/SDL_clipboard.h | 71 - lib/osx/include/SDL_config.h | 364 - lib/osx/include/SDL_config_android.h | 144 - lib/osx/include/SDL_config_iphoneos.h | 155 - lib/osx/include/SDL_config_macosx.h | 188 - lib/osx/include/SDL_config_minimal.h | 81 - lib/osx/include/SDL_config_pandora.h | 124 - lib/osx/include/SDL_config_psp.h | 140 - lib/osx/include/SDL_config_windows.h | 210 - lib/osx/include/SDL_config_winrt.h | 190 - lib/osx/include/SDL_config_wiz.h | 118 - lib/osx/include/SDL_copying.h | 20 - lib/osx/include/SDL_cpuinfo.h | 161 - lib/osx/include/SDL_egl.h | 1673 -- lib/osx/include/SDL_endian.h | 239 - lib/osx/include/SDL_error.h | 76 - lib/osx/include/SDL_events.h | 754 - lib/osx/include/SDL_filesystem.h | 136 - lib/osx/include/SDL_gamecontroller.h | 323 - lib/osx/include/SDL_gesture.h | 87 - lib/osx/include/SDL_haptic.h | 1223 - lib/osx/include/SDL_hints.h | 795 - lib/osx/include/SDL_joystick.h | 273 - lib/osx/include/SDL_keyboard.h | 217 - lib/osx/include/SDL_keycode.h | 341 - lib/osx/include/SDL_loadso.h | 81 - lib/osx/include/SDL_log.h | 211 - lib/osx/include/SDL_main.h | 161 - lib/osx/include/SDL_messagebox.h | 144 - lib/osx/include/SDL_mouse.h | 302 - lib/osx/include/SDL_mutex.h | 251 - lib/osx/include/SDL_name.h | 33 - lib/osx/include/SDL_opengl.h | 2176 -- lib/osx/include/SDL_opengl_glext.h | 11177 -------- lib/osx/include/SDL_opengles.h | 39 - lib/osx/include/SDL_opengles2.h | 52 - lib/osx/include/SDL_opengles2_gl2.h | 621 - lib/osx/include/SDL_opengles2_gl2ext.h | 2050 -- lib/osx/include/SDL_opengles2_gl2platform.h | 30 - lib/osx/include/SDL_opengles2_khrplatform.h | 282 - lib/osx/include/SDL_pixels.h | 468 - lib/osx/include/SDL_platform.h | 185 - lib/osx/include/SDL_power.h | 75 - lib/osx/include/SDL_quit.h | 58 - lib/osx/include/SDL_rect.h | 148 - lib/osx/include/SDL_render.h | 905 - lib/osx/include/SDL_revision.h | 2 - lib/osx/include/SDL_rwops.h | 231 - lib/osx/include/SDL_scancode.h | 401 - lib/osx/include/SDL_shape.h | 143 - lib/osx/include/SDL_stdinc.h | 531 - lib/osx/include/SDL_surface.h | 513 - lib/osx/include/SDL_system.h | 216 - lib/osx/include/SDL_syswm.h | 321 - lib/osx/include/SDL_thread.h | 287 - lib/osx/include/SDL_timer.h | 115 - lib/osx/include/SDL_touch.h | 86 - lib/osx/include/SDL_types.h | 29 - lib/osx/include/SDL_version.h | 162 - lib/osx/include/SDL_video.h | 1218 - lib/osx/include/begin_code.h | 146 - lib/osx/include/close_code.h | 37 - lib/osx/include/discord_game_sdk.h | 429 - lib/osx/include/freetype/config/ftconfig.h | 467 - lib/osx/include/freetype/config/ftheader.h | 834 - lib/osx/include/freetype/config/ftmodule.h | 32 - lib/osx/include/freetype/config/ftoption.h | 904 - lib/osx/include/freetype/config/ftstdlib.h | 174 - lib/osx/include/freetype/freetype.h | 4284 --- lib/osx/include/freetype/ftadvanc.h | 187 - lib/osx/include/freetype/ftautoh.h | 503 - lib/osx/include/freetype/ftbbox.h | 101 - lib/osx/include/freetype/ftbdf.h | 210 - lib/osx/include/freetype/ftbitmap.h | 240 - lib/osx/include/freetype/ftbzip2.h | 102 - lib/osx/include/freetype/ftcache.h | 1057 - lib/osx/include/freetype/ftcffdrv.h | 262 - lib/osx/include/freetype/ftchapters.h | 135 - lib/osx/include/freetype/ftcid.h | 168 - lib/osx/include/freetype/fterrdef.h | 276 - lib/osx/include/freetype/fterrors.h | 216 - lib/osx/include/freetype/ftfntfmt.h | 92 - lib/osx/include/freetype/ftgasp.h | 129 - lib/osx/include/freetype/ftglyph.h | 605 - lib/osx/include/freetype/ftgxval.h | 357 - lib/osx/include/freetype/ftgzip.h | 148 - lib/osx/include/freetype/ftimage.h | 1214 - lib/osx/include/freetype/ftincrem.h | 354 - lib/osx/include/freetype/ftlcdfil.h | 293 - lib/osx/include/freetype/ftlist.h | 276 - lib/osx/include/freetype/ftlzw.h | 99 - lib/osx/include/freetype/ftmac.h | 274 - lib/osx/include/freetype/ftmm.h | 384 - lib/osx/include/freetype/ftmodapi.h | 672 - lib/osx/include/freetype/ftmoderr.h | 194 - lib/osx/include/freetype/ftotval.h | 204 - lib/osx/include/freetype/ftoutln.h | 574 - lib/osx/include/freetype/ftpfr.h | 172 - lib/osx/include/freetype/ftrender.h | 232 - lib/osx/include/freetype/ftsizes.h | 159 - lib/osx/include/freetype/ftsnames.h | 200 - lib/osx/include/freetype/ftstroke.h | 785 - lib/osx/include/freetype/ftsynth.h | 84 - lib/osx/include/freetype/ftsystem.h | 355 - lib/osx/include/freetype/fttrigon.h | 350 - lib/osx/include/freetype/ftttdrv.h | 310 - lib/osx/include/freetype/fttypes.h | 602 - lib/osx/include/freetype/ftwinfnt.h | 275 - lib/osx/include/freetype/internal/autohint.h | 244 - lib/osx/include/freetype/internal/ftcalc.h | 418 - lib/osx/include/freetype/internal/ftdebug.h | 255 - lib/osx/include/freetype/internal/ftdriver.h | 409 - lib/osx/include/freetype/internal/ftgloadr.h | 172 - lib/osx/include/freetype/internal/ftmemory.h | 386 - lib/osx/include/freetype/internal/ftobjs.h | 1574 -- lib/osx/include/freetype/internal/ftpic.h | 71 - lib/osx/include/freetype/internal/ftrfork.h | 266 - lib/osx/include/freetype/internal/ftserv.h | 763 - lib/osx/include/freetype/internal/ftstream.h | 536 - lib/osx/include/freetype/internal/fttrace.h | 154 - lib/osx/include/freetype/internal/ftvalid.h | 159 - lib/osx/include/freetype/internal/internal.h | 63 - lib/osx/include/freetype/internal/psaux.h | 877 - lib/osx/include/freetype/internal/pshints.h | 722 - .../freetype/internal/services/svbdf.h | 82 - .../freetype/internal/services/svcid.h | 90 - .../freetype/internal/services/svfntfmt.h | 55 - .../freetype/internal/services/svgldict.h | 88 - .../freetype/internal/services/svgxval.h | 72 - .../freetype/internal/services/svkern.h | 51 - .../include/freetype/internal/services/svmm.h | 113 - .../freetype/internal/services/svotval.h | 55 - .../freetype/internal/services/svpfr.h | 66 - .../freetype/internal/services/svpostnm.h | 81 - .../freetype/internal/services/svprop.h | 81 - .../freetype/internal/services/svpscmap.h | 177 - .../freetype/internal/services/svpsinfo.h | 111 - .../freetype/internal/services/svsfnt.h | 103 - .../freetype/internal/services/svttcmap.h | 106 - .../freetype/internal/services/svtteng.h | 53 - .../freetype/internal/services/svttglyf.h | 69 - .../freetype/internal/services/svwinfnt.h | 50 - lib/osx/include/freetype/internal/sfnt.h | 748 - lib/osx/include/freetype/internal/t1types.h | 255 - lib/osx/include/freetype/internal/tttypes.h | 1529 -- lib/osx/include/freetype/t1tables.h | 761 - lib/osx/include/freetype/ttnameid.h | 1237 - lib/osx/include/freetype/tttables.h | 829 - lib/osx/include/freetype/tttags.h | 111 - lib/osx/include/freetype/ttunpat.h | 60 - lib/osx/include/ft2build.h | 42 - lib/osx/include/ogg/config_types.h | 25 - lib/osx/include/ogg/ogg.h | 210 - lib/osx/include/ogg/os_types.h | 147 - lib/osx/include/png.h | 3265 --- lib/osx/include/pngconf.h | 622 - lib/osx/include/pnglibconf.h | 214 - lib/osx/include/steam/isteamapplist.h | 63 - lib/osx/include/steam/isteamapps.h | 82 +- lib/osx/include/steam/isteamclient.h | 415 +- lib/osx/include/steam/isteamcontroller.h | 607 +- lib/osx/include/steam/isteamdualsense.h | 169 + lib/osx/include/steam/isteamfriends.h | 199 +- lib/osx/include/steam/isteamgamecoordinator.h | 5 +- lib/osx/include/steam/isteamgameserver.h | 169 +- lib/osx/include/steam/isteamgameserverstats.h | 23 +- lib/osx/include/steam/isteamhtmlsurface.h | 288 +- lib/osx/include/steam/isteamhttp.h | 23 +- lib/osx/include/steam/isteaminput.h | 982 + lib/osx/include/steam/isteaminventory.h | 228 +- .../include/steam/isteammasterserverupdater.h | 1 - lib/osx/include/steam/isteammatchmaking.h | 368 +- lib/osx/include/steam/isteammusic.h | 18 +- lib/osx/include/steam/isteammusicremote.h | 76 +- lib/osx/include/steam/isteamnetworking.h | 73 +- .../include/steam/isteamnetworkingmessages.h | 198 + .../include/steam/isteamnetworkingsockets.h | 1030 + lib/osx/include/steam/isteamnetworkingutils.h | 500 + .../include/steam/isteamparentalsettings.h | 64 + lib/osx/include/steam/isteamremoteplay.h | 99 + lib/osx/include/steam/isteamremotestorage.h | 228 +- lib/osx/include/steam/isteamscreenshots.h | 8 +- lib/osx/include/steam/isteamugc.h | 258 +- lib/osx/include/steam/isteamunifiedmessages.h | 63 - lib/osx/include/steam/isteamuser.h | 202 +- lib/osx/include/steam/isteamuserstats.h | 81 +- lib/osx/include/steam/isteamutils.h | 125 +- lib/osx/include/steam/isteamvideo.h | 34 +- lib/osx/include/steam/matchmakingtypes.h | 26 +- lib/osx/include/steam/steam_api.h | 592 +- lib/osx/include/steam/steam_api.json | 21616 ++++++++++------ lib/osx/include/steam/steam_api_common.h | 249 + lib/osx/include/steam/steam_api_flat.h | 2038 +- lib/osx/include/steam/steam_api_internal.h | 483 +- lib/osx/include/steam/steam_api_interop.cs | 10470 -------- lib/osx/include/steam/steam_gameserver.h | 222 +- lib/osx/include/steam/steamclientpublic.h | 649 +- .../include/steam/steamencryptedappticket.h | 10 +- lib/osx/include/steam/steamhttpenums.h | 7 + lib/osx/include/steam/steamnetworkingfakeip.h | 135 + lib/osx/include/steam/steamnetworkingtypes.h | 1870 ++ lib/osx/include/steam/steamtypes.h | 181 +- lib/osx/include/vorbis/codec.h | 243 - lib/osx/include/vorbis/vorbisenc.h | 436 - lib/osx/include/vorbis/vorbisfile.h | 206 - lib/osx/include/zconf.h | 511 - lib/osx/include/zlib.h | 1768 -- lib/osx/libGLEW.a | Bin 725456 -> 0 bytes lib/osx/libSDL2.a | Bin 1418152 -> 0 bytes lib/osx/libdiscord_game_sdk.dylib | Bin 351064 -> 0 bytes lib/osx/libfreetype.a | Bin 868256 -> 0 bytes lib/osx/libjemalloc.a | Bin 1515176 -> 0 bytes lib/osx/libogg.a | Bin 29696 -> 0 bytes lib/osx/libpcre.a | Bin 132352 -> 0 bytes lib/osx/libpng.a | Bin 282008 -> 0 bytes lib/osx/libsteam_api.dylib | Bin 540944 -> 627088 bytes lib/osx/libvorbis.a | Bin 239464 -> 0 bytes lib/osx/libvorbisfile.a | Bin 35520 -> 0 bytes lib/osx/libz.a | Bin 106176 -> 0 bytes lib/osx/x64/libdiscord_game_sdk.dylib | Bin 0 -> 4251528 bytes lib/windows/SDL2.dll | Bin 2494976 -> 0 bytes lib/windows/SDL2.lib | Bin 183542 -> 0 bytes lib/windows/discord_game_sdk.dll | Bin 263680 -> 3488768 bytes lib/windows/discord_game_sdk.lib | Bin 2148 -> 2352 bytes lib/windows/freetype.lib | Bin 1586820 -> 0 bytes lib/windows/glew32.dll | Bin 433152 -> 0 bytes lib/windows/glew32.lib | Bin 597238 -> 0 bytes lib/windows/include/GL/glew.h | 19367 -------------- lib/windows/include/GL/glxew.h | 1771 -- lib/windows/include/GL/wglew.h | 1452 -- lib/windows/include/SDL.h | 233 - lib/windows/include/SDL_assert.h | 320 - lib/windows/include/SDL_atomic.h | 414 - lib/windows/include/SDL_audio.h | 1500 -- lib/windows/include/SDL_bits.h | 126 - lib/windows/include/SDL_blendmode.h | 198 - lib/windows/include/SDL_clipboard.h | 141 - lib/windows/include/SDL_config.h | 331 - lib/windows/include/SDL_cpuinfo.h | 594 - lib/windows/include/SDL_egl.h | 2352 -- lib/windows/include/SDL_endian.h | 348 - lib/windows/include/SDL_error.h | 163 - lib/windows/include/SDL_events.h | 1166 - lib/windows/include/SDL_filesystem.h | 149 - lib/windows/include/SDL_gamecontroller.h | 1074 - lib/windows/include/SDL_gesture.h | 117 - lib/windows/include/SDL_guid.h | 100 - lib/windows/include/SDL_haptic.h | 1341 - lib/windows/include/SDL_hidapi.h | 451 - lib/windows/include/SDL_hints.h | 2604 -- lib/windows/include/SDL_joystick.h | 1069 - lib/windows/include/SDL_keyboard.h | 353 - lib/windows/include/SDL_keycode.h | 358 - lib/windows/include/SDL_loadso.h | 115 - lib/windows/include/SDL_locale.h | 103 - lib/windows/include/SDL_log.h | 404 - lib/windows/include/SDL_main.h | 282 - lib/windows/include/SDL_messagebox.h | 193 - lib/windows/include/SDL_metal.h | 113 - lib/windows/include/SDL_misc.h | 79 - lib/windows/include/SDL_mouse.h | 464 - lib/windows/include/SDL_mutex.h | 545 - lib/windows/include/SDL_name.h | 33 - lib/windows/include/SDL_opengl.h | 2132 -- lib/windows/include/SDL_opengl_glext.h | 13213 ---------- lib/windows/include/SDL_opengles.h | 39 - lib/windows/include/SDL_opengles2.h | 52 - lib/windows/include/SDL_opengles2_gl2.h | 656 - lib/windows/include/SDL_opengles2_gl2ext.h | 4033 --- .../include/SDL_opengles2_gl2platform.h | 27 - .../include/SDL_opengles2_khrplatform.h | 311 - lib/windows/include/SDL_pixels.h | 644 - lib/windows/include/SDL_platform.h | 261 - lib/windows/include/SDL_power.h | 87 - lib/windows/include/SDL_quit.h | 58 - lib/windows/include/SDL_rect.h | 376 - lib/windows/include/SDL_render.h | 1924 -- lib/windows/include/SDL_revision.h | 7 - lib/windows/include/SDL_rwops.h | 841 - lib/windows/include/SDL_scancode.h | 438 - lib/windows/include/SDL_sensor.h | 322 - lib/windows/include/SDL_shape.h | 155 - lib/windows/include/SDL_stdinc.h | 838 - lib/windows/include/SDL_surface.h | 997 - lib/windows/include/SDL_system.h | 623 - lib/windows/include/SDL_syswm.h | 386 - lib/windows/include/SDL_test.h | 69 - lib/windows/include/SDL_test_assert.h | 105 - lib/windows/include/SDL_test_common.h | 236 - lib/windows/include/SDL_test_compare.h | 69 - lib/windows/include/SDL_test_crc32.h | 124 - lib/windows/include/SDL_test_font.h | 168 - lib/windows/include/SDL_test_fuzzer.h | 386 - lib/windows/include/SDL_test_harness.h | 134 - lib/windows/include/SDL_test_images.h | 78 - lib/windows/include/SDL_test_log.h | 67 - lib/windows/include/SDL_test_md5.h | 129 - lib/windows/include/SDL_test_memory.h | 63 - lib/windows/include/SDL_test_random.h | 115 - lib/windows/include/SDL_thread.h | 464 - lib/windows/include/SDL_timer.h | 222 - lib/windows/include/SDL_touch.h | 150 - lib/windows/include/SDL_types.h | 29 - lib/windows/include/SDL_version.h | 204 - lib/windows/include/SDL_video.h | 2178 -- lib/windows/include/SDL_vulkan.h | 215 - lib/windows/include/begin_code.h | 187 - lib/windows/include/close_code.h | 40 - lib/windows/include/discord_game_sdk.h | 429 - .../include/freetype/config/ftconfig.h | 467 - .../include/freetype/config/ftheader.h | 834 - .../include/freetype/config/ftmodule.h | 32 - .../include/freetype/config/ftoption.h | 886 - .../include/freetype/config/ftstdlib.h | 173 - lib/windows/include/freetype/freetype.h | 4069 --- lib/windows/include/freetype/ftadvanc.h | 187 - lib/windows/include/freetype/ftautoh.h | 450 - lib/windows/include/freetype/ftbbox.h | 101 - lib/windows/include/freetype/ftbdf.h | 210 - lib/windows/include/freetype/ftbitmap.h | 240 - lib/windows/include/freetype/ftbzip2.h | 102 - lib/windows/include/freetype/ftcache.h | 1057 - lib/windows/include/freetype/ftcffdrv.h | 262 - lib/windows/include/freetype/ftchapters.h | 121 - lib/windows/include/freetype/ftcid.h | 168 - lib/windows/include/freetype/fterrdef.h | 249 - lib/windows/include/freetype/fterrors.h | 198 - lib/windows/include/freetype/ftfntfmt.h | 92 - lib/windows/include/freetype/ftgasp.h | 129 - lib/windows/include/freetype/ftglyph.h | 605 - lib/windows/include/freetype/ftgxval.h | 357 - lib/windows/include/freetype/ftgzip.h | 148 - lib/windows/include/freetype/ftimage.h | 1214 - lib/windows/include/freetype/ftincrem.h | 354 - lib/windows/include/freetype/ftlcdfil.h | 251 - lib/windows/include/freetype/ftlist.h | 276 - lib/windows/include/freetype/ftlzw.h | 99 - lib/windows/include/freetype/ftmac.h | 274 - lib/windows/include/freetype/ftmm.h | 379 - lib/windows/include/freetype/ftmodapi.h | 669 - lib/windows/include/freetype/ftmoderr.h | 194 - lib/windows/include/freetype/ftotval.h | 204 - lib/windows/include/freetype/ftoutln.h | 574 - lib/windows/include/freetype/ftpfr.h | 172 - lib/windows/include/freetype/ftrender.h | 232 - lib/windows/include/freetype/ftsizes.h | 159 - lib/windows/include/freetype/ftsnames.h | 200 - lib/windows/include/freetype/ftstroke.h | 785 - lib/windows/include/freetype/ftsynth.h | 84 - lib/windows/include/freetype/ftsystem.h | 355 - lib/windows/include/freetype/fttrigon.h | 350 - lib/windows/include/freetype/ftttdrv.h | 233 - lib/windows/include/freetype/fttypes.h | 602 - lib/windows/include/freetype/ftwinfnt.h | 275 - .../include/freetype/internal/autohint.h | 244 - .../include/freetype/internal/ftcalc.h | 406 - .../include/freetype/internal/ftdebug.h | 255 - .../include/freetype/internal/ftdriver.h | 409 - .../include/freetype/internal/ftgloadr.h | 172 - .../include/freetype/internal/ftmemory.h | 386 - .../include/freetype/internal/ftobjs.h | 1571 -- lib/windows/include/freetype/internal/ftpic.h | 71 - .../include/freetype/internal/ftrfork.h | 266 - .../include/freetype/internal/ftserv.h | 763 - .../include/freetype/internal/ftstream.h | 536 - .../include/freetype/internal/fttrace.h | 154 - .../include/freetype/internal/ftvalid.h | 159 - .../include/freetype/internal/internal.h | 63 - lib/windows/include/freetype/internal/psaux.h | 877 - .../include/freetype/internal/pshints.h | 722 - .../freetype/internal/services/svbdf.h | 82 - .../freetype/internal/services/svcid.h | 90 - .../freetype/internal/services/svfntfmt.h | 55 - .../freetype/internal/services/svgldict.h | 88 - .../freetype/internal/services/svgxval.h | 72 - .../freetype/internal/services/svkern.h | 51 - .../include/freetype/internal/services/svmm.h | 113 - .../freetype/internal/services/svotval.h | 55 - .../freetype/internal/services/svpfr.h | 66 - .../freetype/internal/services/svpostnm.h | 81 - .../freetype/internal/services/svprop.h | 81 - .../freetype/internal/services/svpscmap.h | 177 - .../freetype/internal/services/svpsinfo.h | 111 - .../freetype/internal/services/svsfnt.h | 103 - .../freetype/internal/services/svttcmap.h | 105 - .../freetype/internal/services/svtteng.h | 53 - .../freetype/internal/services/svttglyf.h | 69 - .../freetype/internal/services/svwinfnt.h | 50 - lib/windows/include/freetype/internal/sfnt.h | 711 - .../include/freetype/internal/t1types.h | 255 - .../include/freetype/internal/tttypes.h | 1514 -- lib/windows/include/freetype/t1tables.h | 761 - lib/windows/include/freetype/ttnameid.h | 1237 - lib/windows/include/freetype/tttables.h | 829 - lib/windows/include/freetype/tttags.h | 111 - lib/windows/include/freetype/ttunpat.h | 60 - lib/windows/include/ft2build.h | 40 - lib/windows/include/ftoption.h | 886 - lib/windows/include/ogg/config_types.h | 25 - lib/windows/include/ogg/ogg.h | 210 - lib/windows/include/ogg/os_types.h | 147 - lib/windows/include/png.h | 3265 --- lib/windows/include/pngconf.h | 622 - lib/windows/include/pnglibconf.h | 216 - lib/windows/include/steam/isteamapplist.h | 63 - lib/windows/include/steam/isteamapps.h | 82 +- lib/windows/include/steam/isteamclient.h | 415 +- lib/windows/include/steam/isteamcontroller.h | 607 +- lib/windows/include/steam/isteamdualsense.h | 169 + lib/windows/include/steam/isteamfriends.h | 199 +- .../include/steam/isteamgamecoordinator.h | 5 +- lib/windows/include/steam/isteamgameserver.h | 169 +- .../include/steam/isteamgameserverstats.h | 23 +- lib/windows/include/steam/isteamhtmlsurface.h | 288 +- lib/windows/include/steam/isteamhttp.h | 23 +- lib/windows/include/steam/isteaminput.h | 982 + lib/windows/include/steam/isteaminventory.h | 228 +- .../include/steam/isteammasterserverupdater.h | 1 - lib/windows/include/steam/isteammatchmaking.h | 368 +- lib/windows/include/steam/isteammusic.h | 18 +- lib/windows/include/steam/isteammusicremote.h | 76 +- lib/windows/include/steam/isteamnetworking.h | 73 +- .../include/steam/isteamnetworkingmessages.h | 198 + .../include/steam/isteamnetworkingsockets.h | 1030 + .../include/steam/isteamnetworkingutils.h | 500 + .../include/steam/isteamparentalsettings.h | 64 + lib/windows/include/steam/isteamremoteplay.h | 99 + .../include/steam/isteamremotestorage.h | 228 +- lib/windows/include/steam/isteamscreenshots.h | 8 +- lib/windows/include/steam/isteamugc.h | 258 +- .../include/steam/isteamunifiedmessages.h | 63 - lib/windows/include/steam/isteamuser.h | 202 +- lib/windows/include/steam/isteamuserstats.h | 81 +- lib/windows/include/steam/isteamutils.h | 125 +- lib/windows/include/steam/isteamvideo.h | 34 +- lib/windows/include/steam/matchmakingtypes.h | 26 +- lib/windows/include/steam/steam_api.h | 592 +- lib/windows/include/steam/steam_api.json | 21616 ++++++++++------ lib/windows/include/steam/steam_api_common.h | 249 + lib/windows/include/steam/steam_api_flat.h | 2038 +- .../include/steam/steam_api_internal.h | 483 +- .../include/steam/steam_api_interop.cs | 10470 -------- lib/windows/include/steam/steam_gameserver.h | 222 +- lib/windows/include/steam/steamclientpublic.h | 649 +- .../include/steam/steamencryptedappticket.h | 10 +- lib/windows/include/steam/steamhttpenums.h | 7 + .../include/steam/steamnetworkingfakeip.h | 135 + .../include/steam/steamnetworkingtypes.h | 1870 ++ lib/windows/include/steam/steamtypes.h | 181 +- lib/windows/include/vorbis/codec.h | 243 - lib/windows/include/vorbis/vorbisenc.h | 436 - lib/windows/include/vorbis/vorbisfile.h | 206 - lib/windows/include/zconf.h | 511 - lib/windows/include/zlib.h | 1768 -- lib/windows/libpng16.lib | Bin 1439808 -> 0 bytes lib/windows/ogg.lib | Bin 42590 -> 0 bytes lib/windows/steam_api.lib | Bin 273092 -> 0 bytes lib/windows/steam_api64.dll | Bin 239904 -> 301928 bytes lib/windows/steam_api64.lib | Bin 0 -> 371272 bytes lib/windows/vorbis.lib | Bin 1463396 -> 0 bytes lib/windows/vorbisfile.lib | Bin 141820 -> 0 bytes lib/windows/zlib.lib | Bin 15288 -> 0 bytes lib/windows/zlib1.dll | Bin 186880 -> 0 bytes scripts/ci/linux/assemble.sh | 43 + scripts/ci/linux/build.sh | 22 - scripts/ci/linux/sbinit.config | 1 - scripts/ci/linux/test.sh | 8 - .../macos/Starbound.app/Contents/Info.plist | 4 +- .../Contents/Resources/starbound.icns | Bin 47576 -> 324664 bytes scripts/ci/macos/assemble.sh | 27 + scripts/ci/macos/build.sh | 25 - scripts/ci/macos/sbinit.config | 1 - scripts/ci/macos/test.sh | 9 - scripts/ci/windows/assemble.bat | 18 + scripts/ci/windows/build.bat | 32 - scripts/ci/windows/files.txt | 13 + scripts/ci/windows/sbinit.config | 1 - scripts/ci/windows/test.bat | 8 - scripts/ci/windows/tidy.bat | 5 + scripts/inno/setup.iss | 48 + scripts/inno/starbound.ico | Bin 0 -> 410598 bytes scripts/steam_appid.txt | 2 +- source/CMakeLists.txt | 75 +- source/CMakePresets.json | 125 + source/CMakeSettings.json | 25 - source/application/CMakeLists.txt | 11 +- .../application/StarMainApplication_sdl.cpp | 2 +- .../discord/achievement_manager.cpp | 99 + .../application/discord/achievement_manager.h | 34 + .../application/discord/activity_manager.cpp | 14 +- .../discord/application_manager.cpp | 15 + .../application/discord/application_manager.h | 1 + source/application/discord/core.cpp | 20 + source/application/discord/core.h | 6 + source/application/discord/discord.h | 2 + source/application/discord/ffi.h | 1135 +- source/application/discord/lobby_manager.cpp | 41 +- .../application/discord/network_manager.cpp | 12 +- source/application/discord/network_manager.h | 24 + .../application/discord/overlay_manager.cpp | 134 +- source/application/discord/overlay_manager.h | 25 + .../discord/relationship_manager.cpp | 5 +- .../application/discord/storage_manager.cpp | 10 + source/application/discord/storage_manager.h | 1 + source/application/discord/store_manager.cpp | 6 +- source/application/discord/types.cpp | 172 + source/application/discord/types.h | 203 +- source/application/discord/user_manager.cpp | 24 +- source/application/discord/user_manager.h | 2 + source/application/discord/voice_manager.cpp | 124 + source/application/discord/voice_manager.h | 37 + source/base/CMakeLists.txt | 5 +- source/client/CMakeLists.txt | 6 +- source/core/CMakeLists.txt | 5 +- source/extern/CMakeLists.txt | 22 +- source/extern/opus | 1 - source/frontend/CMakeLists.txt | 5 +- source/frontend/StarVoice.cpp | 4 +- source/game/CMakeLists.txt | 5 +- source/game/StarPlayerStorage.cpp | 7 +- source/game/StarRoot.cpp | 108 +- source/game/StarRoot.hpp | 5 +- source/game/StarRootLoader.cpp | 29 +- source/rendering/CMakeLists.txt | 5 +- source/server/CMakeLists.txt | 6 +- source/vcpkg-configuration.json | 12 +- source/vcpkg.json | 19 +- triplets/arm64-osx-mixed.cmake | 25 + triplets/x64-linux-mixed.cmake | 25 + triplets/x64-osx-mixed.cmake | 26 + triplets/x64-windows-mixed-md.cmake | 18 +- 713 files changed, 74149 insertions(+), 355646 deletions(-) delete mode 100644 .gitmodules delete mode 100644 lib/linux/include/GL/gl.h delete mode 100644 lib/linux/include/GL/gl_mangle.h delete mode 100644 lib/linux/include/GL/glew.h delete mode 100644 lib/linux/include/GL/glext.h delete mode 100644 lib/linux/include/GL/glu.h delete mode 100644 lib/linux/include/GL/glu_mangle.h delete mode 100644 lib/linux/include/GL/glx.h delete mode 100644 lib/linux/include/GL/glx_mangle.h delete mode 100644 lib/linux/include/GL/glxew.h delete mode 100644 lib/linux/include/GL/glxext.h delete mode 100644 lib/linux/include/GL/internal/dri_interface.h delete mode 100644 lib/linux/include/GL/wglew.h delete mode 100644 lib/linux/include/config/ftconfig.h delete mode 100644 lib/linux/include/config/ftheader.h delete mode 100644 lib/linux/include/config/ftmodule.h delete mode 100644 lib/linux/include/config/ftoption.h delete mode 100644 lib/linux/include/config/ftstdlib.h delete mode 100644 lib/linux/include/freetype.h delete mode 100644 lib/linux/include/ft2build.h delete mode 100644 lib/linux/include/ftadvanc.h delete mode 100644 lib/linux/include/ftautoh.h delete mode 100644 lib/linux/include/ftbbox.h delete mode 100644 lib/linux/include/ftbdf.h delete mode 100644 lib/linux/include/ftbitmap.h delete mode 100644 lib/linux/include/ftbzip2.h delete mode 100644 lib/linux/include/ftcache.h delete mode 100644 lib/linux/include/ftcffdrv.h delete mode 100644 lib/linux/include/ftchapters.h delete mode 100644 lib/linux/include/ftcid.h delete mode 100644 lib/linux/include/fterrdef.h delete mode 100644 lib/linux/include/fterrors.h delete mode 100644 lib/linux/include/ftgasp.h delete mode 100644 lib/linux/include/ftglyph.h delete mode 100644 lib/linux/include/ftgxval.h delete mode 100644 lib/linux/include/ftgzip.h delete mode 100644 lib/linux/include/ftimage.h delete mode 100644 lib/linux/include/ftincrem.h delete mode 100644 lib/linux/include/ftlcdfil.h delete mode 100644 lib/linux/include/ftlist.h delete mode 100644 lib/linux/include/ftlzw.h delete mode 100644 lib/linux/include/ftmac.h delete mode 100644 lib/linux/include/ftmm.h delete mode 100644 lib/linux/include/ftmodapi.h delete mode 100644 lib/linux/include/ftmoderr.h delete mode 100644 lib/linux/include/ftotval.h delete mode 100644 lib/linux/include/ftoutln.h delete mode 100644 lib/linux/include/ftpfr.h delete mode 100644 lib/linux/include/ftrender.h delete mode 100644 lib/linux/include/ftsizes.h delete mode 100644 lib/linux/include/ftsnames.h delete mode 100644 lib/linux/include/ftstroke.h delete mode 100644 lib/linux/include/ftsynth.h delete mode 100644 lib/linux/include/ftsystem.h delete mode 100644 lib/linux/include/fttrigon.h delete mode 100644 lib/linux/include/ftttdrv.h delete mode 100644 lib/linux/include/fttypes.h delete mode 100644 lib/linux/include/ftwinfnt.h delete mode 100644 lib/linux/include/ftxf86.h delete mode 100644 lib/linux/include/internal/autohint.h delete mode 100644 lib/linux/include/internal/ftcalc.h delete mode 100644 lib/linux/include/internal/ftdebug.h delete mode 100644 lib/linux/include/internal/ftdriver.h delete mode 100644 lib/linux/include/internal/ftgloadr.h delete mode 100644 lib/linux/include/internal/ftmemory.h delete mode 100644 lib/linux/include/internal/ftobjs.h delete mode 100644 lib/linux/include/internal/ftpic.h delete mode 100644 lib/linux/include/internal/ftrfork.h delete mode 100644 lib/linux/include/internal/ftserv.h delete mode 100644 lib/linux/include/internal/ftstream.h delete mode 100644 lib/linux/include/internal/fttrace.h delete mode 100644 lib/linux/include/internal/ftvalid.h delete mode 100644 lib/linux/include/internal/internal.h delete mode 100644 lib/linux/include/internal/psaux.h delete mode 100644 lib/linux/include/internal/pshints.h delete mode 100644 lib/linux/include/internal/services/svbdf.h delete mode 100644 lib/linux/include/internal/services/svcid.h delete mode 100644 lib/linux/include/internal/services/svgldict.h delete mode 100644 lib/linux/include/internal/services/svgxval.h delete mode 100644 lib/linux/include/internal/services/svkern.h delete mode 100644 lib/linux/include/internal/services/svmm.h delete mode 100644 lib/linux/include/internal/services/svotval.h delete mode 100644 lib/linux/include/internal/services/svpfr.h delete mode 100644 lib/linux/include/internal/services/svpostnm.h delete mode 100644 lib/linux/include/internal/services/svprop.h delete mode 100644 lib/linux/include/internal/services/svpscmap.h delete mode 100644 lib/linux/include/internal/services/svpsinfo.h delete mode 100644 lib/linux/include/internal/services/svsfnt.h delete mode 100644 lib/linux/include/internal/services/svttcmap.h delete mode 100644 lib/linux/include/internal/services/svtteng.h delete mode 100644 lib/linux/include/internal/services/svttglyf.h delete mode 100644 lib/linux/include/internal/services/svwinfnt.h delete mode 100644 lib/linux/include/internal/services/svxf86nm.h delete mode 100644 lib/linux/include/internal/sfnt.h delete mode 100644 lib/linux/include/internal/t1types.h delete mode 100644 lib/linux/include/internal/tttypes.h delete mode 100644 lib/linux/include/ogg/config_types.h delete mode 100644 lib/linux/include/ogg/ogg.h delete mode 100644 lib/linux/include/ogg/os_types.h delete mode 100644 lib/linux/include/png.h delete mode 100644 lib/linux/include/pngconf.h delete mode 100644 lib/linux/include/steam/isteamapplist.h create mode 100644 lib/linux/include/steam/isteamdualsense.h create mode 100644 lib/linux/include/steam/isteaminput.h delete mode 100644 lib/linux/include/steam/isteammasterserverupdater.h create mode 100644 lib/linux/include/steam/isteamnetworkingmessages.h create mode 100644 lib/linux/include/steam/isteamnetworkingsockets.h create mode 100644 lib/linux/include/steam/isteamnetworkingutils.h create mode 100644 lib/linux/include/steam/isteamparentalsettings.h create mode 100644 lib/linux/include/steam/isteamremoteplay.h delete mode 100644 lib/linux/include/steam/isteamunifiedmessages.h create mode 100644 lib/linux/include/steam/steam_api_common.h delete mode 100644 lib/linux/include/steam/steam_api_interop.cs create mode 100644 lib/linux/include/steam/steamnetworkingfakeip.h create mode 100644 lib/linux/include/steam/steamnetworkingtypes.h delete mode 100644 lib/linux/include/t1tables.h delete mode 100644 lib/linux/include/ttnameid.h delete mode 100644 lib/linux/include/tttables.h delete mode 100644 lib/linux/include/tttags.h delete mode 100644 lib/linux/include/ttunpat.h delete mode 100644 lib/linux/include/vorbis/codec.h delete mode 100644 lib/linux/include/vorbis/vorbisenc.h delete mode 100644 lib/linux/include/vorbis/vorbisfile.h delete mode 100644 lib/linux/include/zconf.h delete mode 100644 lib/linux/include/zlib.h delete mode 100644 lib/linux/libGLEW.a create mode 100644 lib/linux/libdiscord_game_sdk.so delete mode 100644 lib/linux/libfreetype.a delete mode 100644 lib/linux/libogg.a delete mode 100644 lib/linux/libpng.a delete mode 100644 lib/linux/libvorbis.a delete mode 100644 lib/linux/libvorbisenc.a delete mode 100644 lib/linux/libvorbisfile.a delete mode 100644 lib/linux/libz.a create mode 100644 lib/osx/arm64/libdiscord_game_sdk.dylib delete mode 100644 lib/osx/include/GL/glew.h delete mode 100644 lib/osx/include/GL/glxew.h delete mode 100644 lib/osx/include/GL/wglew.h delete mode 100644 lib/osx/include/SDL.h delete mode 100644 lib/osx/include/SDL_assert.h delete mode 100644 lib/osx/include/SDL_atomic.h delete mode 100644 lib/osx/include/SDL_audio.h delete mode 100644 lib/osx/include/SDL_bits.h delete mode 100644 lib/osx/include/SDL_blendmode.h delete mode 100644 lib/osx/include/SDL_clipboard.h delete mode 100644 lib/osx/include/SDL_config.h delete mode 100644 lib/osx/include/SDL_config_android.h delete mode 100644 lib/osx/include/SDL_config_iphoneos.h delete mode 100644 lib/osx/include/SDL_config_macosx.h delete mode 100644 lib/osx/include/SDL_config_minimal.h delete mode 100644 lib/osx/include/SDL_config_pandora.h delete mode 100644 lib/osx/include/SDL_config_psp.h delete mode 100644 lib/osx/include/SDL_config_windows.h delete mode 100644 lib/osx/include/SDL_config_winrt.h delete mode 100644 lib/osx/include/SDL_config_wiz.h delete mode 100644 lib/osx/include/SDL_copying.h delete mode 100644 lib/osx/include/SDL_cpuinfo.h delete mode 100644 lib/osx/include/SDL_egl.h delete mode 100644 lib/osx/include/SDL_endian.h delete mode 100644 lib/osx/include/SDL_error.h delete mode 100644 lib/osx/include/SDL_events.h delete mode 100644 lib/osx/include/SDL_filesystem.h delete mode 100644 lib/osx/include/SDL_gamecontroller.h delete mode 100644 lib/osx/include/SDL_gesture.h delete mode 100644 lib/osx/include/SDL_haptic.h delete mode 100644 lib/osx/include/SDL_hints.h delete mode 100644 lib/osx/include/SDL_joystick.h delete mode 100644 lib/osx/include/SDL_keyboard.h delete mode 100644 lib/osx/include/SDL_keycode.h delete mode 100644 lib/osx/include/SDL_loadso.h delete mode 100644 lib/osx/include/SDL_log.h delete mode 100644 lib/osx/include/SDL_main.h delete mode 100644 lib/osx/include/SDL_messagebox.h delete mode 100644 lib/osx/include/SDL_mouse.h delete mode 100644 lib/osx/include/SDL_mutex.h delete mode 100644 lib/osx/include/SDL_name.h delete mode 100644 lib/osx/include/SDL_opengl.h delete mode 100644 lib/osx/include/SDL_opengl_glext.h delete mode 100644 lib/osx/include/SDL_opengles.h delete mode 100644 lib/osx/include/SDL_opengles2.h delete mode 100644 lib/osx/include/SDL_opengles2_gl2.h delete mode 100644 lib/osx/include/SDL_opengles2_gl2ext.h delete mode 100644 lib/osx/include/SDL_opengles2_gl2platform.h delete mode 100644 lib/osx/include/SDL_opengles2_khrplatform.h delete mode 100644 lib/osx/include/SDL_pixels.h delete mode 100644 lib/osx/include/SDL_platform.h delete mode 100644 lib/osx/include/SDL_power.h delete mode 100644 lib/osx/include/SDL_quit.h delete mode 100644 lib/osx/include/SDL_rect.h delete mode 100644 lib/osx/include/SDL_render.h delete mode 100644 lib/osx/include/SDL_revision.h delete mode 100644 lib/osx/include/SDL_rwops.h delete mode 100644 lib/osx/include/SDL_scancode.h delete mode 100644 lib/osx/include/SDL_shape.h delete mode 100644 lib/osx/include/SDL_stdinc.h delete mode 100644 lib/osx/include/SDL_surface.h delete mode 100644 lib/osx/include/SDL_system.h delete mode 100644 lib/osx/include/SDL_syswm.h delete mode 100644 lib/osx/include/SDL_thread.h delete mode 100644 lib/osx/include/SDL_timer.h delete mode 100644 lib/osx/include/SDL_touch.h delete mode 100644 lib/osx/include/SDL_types.h delete mode 100644 lib/osx/include/SDL_version.h delete mode 100644 lib/osx/include/SDL_video.h delete mode 100644 lib/osx/include/begin_code.h delete mode 100644 lib/osx/include/close_code.h delete mode 100644 lib/osx/include/discord_game_sdk.h delete mode 100644 lib/osx/include/freetype/config/ftconfig.h delete mode 100644 lib/osx/include/freetype/config/ftheader.h delete mode 100644 lib/osx/include/freetype/config/ftmodule.h delete mode 100644 lib/osx/include/freetype/config/ftoption.h delete mode 100644 lib/osx/include/freetype/config/ftstdlib.h delete mode 100644 lib/osx/include/freetype/freetype.h delete mode 100644 lib/osx/include/freetype/ftadvanc.h delete mode 100644 lib/osx/include/freetype/ftautoh.h delete mode 100644 lib/osx/include/freetype/ftbbox.h delete mode 100644 lib/osx/include/freetype/ftbdf.h delete mode 100644 lib/osx/include/freetype/ftbitmap.h delete mode 100644 lib/osx/include/freetype/ftbzip2.h delete mode 100644 lib/osx/include/freetype/ftcache.h delete mode 100644 lib/osx/include/freetype/ftcffdrv.h delete mode 100644 lib/osx/include/freetype/ftchapters.h delete mode 100644 lib/osx/include/freetype/ftcid.h delete mode 100644 lib/osx/include/freetype/fterrdef.h delete mode 100644 lib/osx/include/freetype/fterrors.h delete mode 100644 lib/osx/include/freetype/ftfntfmt.h delete mode 100644 lib/osx/include/freetype/ftgasp.h delete mode 100644 lib/osx/include/freetype/ftglyph.h delete mode 100644 lib/osx/include/freetype/ftgxval.h delete mode 100644 lib/osx/include/freetype/ftgzip.h delete mode 100644 lib/osx/include/freetype/ftimage.h delete mode 100644 lib/osx/include/freetype/ftincrem.h delete mode 100644 lib/osx/include/freetype/ftlcdfil.h delete mode 100644 lib/osx/include/freetype/ftlist.h delete mode 100644 lib/osx/include/freetype/ftlzw.h delete mode 100644 lib/osx/include/freetype/ftmac.h delete mode 100644 lib/osx/include/freetype/ftmm.h delete mode 100644 lib/osx/include/freetype/ftmodapi.h delete mode 100644 lib/osx/include/freetype/ftmoderr.h delete mode 100644 lib/osx/include/freetype/ftotval.h delete mode 100644 lib/osx/include/freetype/ftoutln.h delete mode 100644 lib/osx/include/freetype/ftpfr.h delete mode 100644 lib/osx/include/freetype/ftrender.h delete mode 100644 lib/osx/include/freetype/ftsizes.h delete mode 100644 lib/osx/include/freetype/ftsnames.h delete mode 100644 lib/osx/include/freetype/ftstroke.h delete mode 100644 lib/osx/include/freetype/ftsynth.h delete mode 100644 lib/osx/include/freetype/ftsystem.h delete mode 100644 lib/osx/include/freetype/fttrigon.h delete mode 100644 lib/osx/include/freetype/ftttdrv.h delete mode 100644 lib/osx/include/freetype/fttypes.h delete mode 100644 lib/osx/include/freetype/ftwinfnt.h delete mode 100644 lib/osx/include/freetype/internal/autohint.h delete mode 100644 lib/osx/include/freetype/internal/ftcalc.h delete mode 100644 lib/osx/include/freetype/internal/ftdebug.h delete mode 100644 lib/osx/include/freetype/internal/ftdriver.h delete mode 100644 lib/osx/include/freetype/internal/ftgloadr.h delete mode 100644 lib/osx/include/freetype/internal/ftmemory.h delete mode 100644 lib/osx/include/freetype/internal/ftobjs.h delete mode 100644 lib/osx/include/freetype/internal/ftpic.h delete mode 100644 lib/osx/include/freetype/internal/ftrfork.h delete mode 100644 lib/osx/include/freetype/internal/ftserv.h delete mode 100644 lib/osx/include/freetype/internal/ftstream.h delete mode 100644 lib/osx/include/freetype/internal/fttrace.h delete mode 100644 lib/osx/include/freetype/internal/ftvalid.h delete mode 100644 lib/osx/include/freetype/internal/internal.h delete mode 100644 lib/osx/include/freetype/internal/psaux.h delete mode 100644 lib/osx/include/freetype/internal/pshints.h delete mode 100644 lib/osx/include/freetype/internal/services/svbdf.h delete mode 100644 lib/osx/include/freetype/internal/services/svcid.h delete mode 100644 lib/osx/include/freetype/internal/services/svfntfmt.h delete mode 100644 lib/osx/include/freetype/internal/services/svgldict.h delete mode 100644 lib/osx/include/freetype/internal/services/svgxval.h delete mode 100644 lib/osx/include/freetype/internal/services/svkern.h delete mode 100644 lib/osx/include/freetype/internal/services/svmm.h delete mode 100644 lib/osx/include/freetype/internal/services/svotval.h delete mode 100644 lib/osx/include/freetype/internal/services/svpfr.h delete mode 100644 lib/osx/include/freetype/internal/services/svpostnm.h delete mode 100644 lib/osx/include/freetype/internal/services/svprop.h delete mode 100644 lib/osx/include/freetype/internal/services/svpscmap.h delete mode 100644 lib/osx/include/freetype/internal/services/svpsinfo.h delete mode 100644 lib/osx/include/freetype/internal/services/svsfnt.h delete mode 100644 lib/osx/include/freetype/internal/services/svttcmap.h delete mode 100644 lib/osx/include/freetype/internal/services/svtteng.h delete mode 100644 lib/osx/include/freetype/internal/services/svttglyf.h delete mode 100644 lib/osx/include/freetype/internal/services/svwinfnt.h delete mode 100644 lib/osx/include/freetype/internal/sfnt.h delete mode 100644 lib/osx/include/freetype/internal/t1types.h delete mode 100644 lib/osx/include/freetype/internal/tttypes.h delete mode 100644 lib/osx/include/freetype/t1tables.h delete mode 100644 lib/osx/include/freetype/ttnameid.h delete mode 100644 lib/osx/include/freetype/tttables.h delete mode 100644 lib/osx/include/freetype/tttags.h delete mode 100644 lib/osx/include/freetype/ttunpat.h delete mode 100644 lib/osx/include/ft2build.h delete mode 100644 lib/osx/include/ogg/config_types.h delete mode 100644 lib/osx/include/ogg/ogg.h delete mode 100644 lib/osx/include/ogg/os_types.h delete mode 100644 lib/osx/include/png.h delete mode 100644 lib/osx/include/pngconf.h delete mode 100644 lib/osx/include/pnglibconf.h delete mode 100644 lib/osx/include/steam/isteamapplist.h create mode 100644 lib/osx/include/steam/isteamdualsense.h create mode 100644 lib/osx/include/steam/isteaminput.h delete mode 100644 lib/osx/include/steam/isteammasterserverupdater.h create mode 100644 lib/osx/include/steam/isteamnetworkingmessages.h create mode 100644 lib/osx/include/steam/isteamnetworkingsockets.h create mode 100644 lib/osx/include/steam/isteamnetworkingutils.h create mode 100644 lib/osx/include/steam/isteamparentalsettings.h create mode 100644 lib/osx/include/steam/isteamremoteplay.h delete mode 100644 lib/osx/include/steam/isteamunifiedmessages.h create mode 100644 lib/osx/include/steam/steam_api_common.h delete mode 100644 lib/osx/include/steam/steam_api_interop.cs create mode 100644 lib/osx/include/steam/steamnetworkingfakeip.h create mode 100644 lib/osx/include/steam/steamnetworkingtypes.h delete mode 100644 lib/osx/include/vorbis/codec.h delete mode 100644 lib/osx/include/vorbis/vorbisenc.h delete mode 100644 lib/osx/include/vorbis/vorbisfile.h delete mode 100644 lib/osx/include/zconf.h delete mode 100644 lib/osx/include/zlib.h delete mode 100644 lib/osx/libGLEW.a delete mode 100644 lib/osx/libSDL2.a delete mode 100644 lib/osx/libdiscord_game_sdk.dylib delete mode 100644 lib/osx/libfreetype.a delete mode 100644 lib/osx/libjemalloc.a delete mode 100644 lib/osx/libogg.a delete mode 100644 lib/osx/libpcre.a delete mode 100644 lib/osx/libpng.a delete mode 100644 lib/osx/libvorbis.a delete mode 100644 lib/osx/libvorbisfile.a delete mode 100644 lib/osx/libz.a create mode 100644 lib/osx/x64/libdiscord_game_sdk.dylib delete mode 100644 lib/windows/SDL2.dll delete mode 100644 lib/windows/SDL2.lib delete mode 100644 lib/windows/freetype.lib delete mode 100644 lib/windows/glew32.dll delete mode 100644 lib/windows/glew32.lib delete mode 100644 lib/windows/include/GL/glew.h delete mode 100644 lib/windows/include/GL/glxew.h delete mode 100644 lib/windows/include/GL/wglew.h delete mode 100644 lib/windows/include/SDL.h delete mode 100644 lib/windows/include/SDL_assert.h delete mode 100644 lib/windows/include/SDL_atomic.h delete mode 100644 lib/windows/include/SDL_audio.h delete mode 100644 lib/windows/include/SDL_bits.h delete mode 100644 lib/windows/include/SDL_blendmode.h delete mode 100644 lib/windows/include/SDL_clipboard.h delete mode 100644 lib/windows/include/SDL_config.h delete mode 100644 lib/windows/include/SDL_cpuinfo.h delete mode 100644 lib/windows/include/SDL_egl.h delete mode 100644 lib/windows/include/SDL_endian.h delete mode 100644 lib/windows/include/SDL_error.h delete mode 100644 lib/windows/include/SDL_events.h delete mode 100644 lib/windows/include/SDL_filesystem.h delete mode 100644 lib/windows/include/SDL_gamecontroller.h delete mode 100644 lib/windows/include/SDL_gesture.h delete mode 100644 lib/windows/include/SDL_guid.h delete mode 100644 lib/windows/include/SDL_haptic.h delete mode 100644 lib/windows/include/SDL_hidapi.h delete mode 100644 lib/windows/include/SDL_hints.h delete mode 100644 lib/windows/include/SDL_joystick.h delete mode 100644 lib/windows/include/SDL_keyboard.h delete mode 100644 lib/windows/include/SDL_keycode.h delete mode 100644 lib/windows/include/SDL_loadso.h delete mode 100644 lib/windows/include/SDL_locale.h delete mode 100644 lib/windows/include/SDL_log.h delete mode 100644 lib/windows/include/SDL_main.h delete mode 100644 lib/windows/include/SDL_messagebox.h delete mode 100644 lib/windows/include/SDL_metal.h delete mode 100644 lib/windows/include/SDL_misc.h delete mode 100644 lib/windows/include/SDL_mouse.h delete mode 100644 lib/windows/include/SDL_mutex.h delete mode 100644 lib/windows/include/SDL_name.h delete mode 100644 lib/windows/include/SDL_opengl.h delete mode 100644 lib/windows/include/SDL_opengl_glext.h delete mode 100644 lib/windows/include/SDL_opengles.h delete mode 100644 lib/windows/include/SDL_opengles2.h delete mode 100644 lib/windows/include/SDL_opengles2_gl2.h delete mode 100644 lib/windows/include/SDL_opengles2_gl2ext.h delete mode 100644 lib/windows/include/SDL_opengles2_gl2platform.h delete mode 100644 lib/windows/include/SDL_opengles2_khrplatform.h delete mode 100644 lib/windows/include/SDL_pixels.h delete mode 100644 lib/windows/include/SDL_platform.h delete mode 100644 lib/windows/include/SDL_power.h delete mode 100644 lib/windows/include/SDL_quit.h delete mode 100644 lib/windows/include/SDL_rect.h delete mode 100644 lib/windows/include/SDL_render.h delete mode 100644 lib/windows/include/SDL_revision.h delete mode 100644 lib/windows/include/SDL_rwops.h delete mode 100644 lib/windows/include/SDL_scancode.h delete mode 100644 lib/windows/include/SDL_sensor.h delete mode 100644 lib/windows/include/SDL_shape.h delete mode 100644 lib/windows/include/SDL_stdinc.h delete mode 100644 lib/windows/include/SDL_surface.h delete mode 100644 lib/windows/include/SDL_system.h delete mode 100644 lib/windows/include/SDL_syswm.h delete mode 100644 lib/windows/include/SDL_test.h delete mode 100644 lib/windows/include/SDL_test_assert.h delete mode 100644 lib/windows/include/SDL_test_common.h delete mode 100644 lib/windows/include/SDL_test_compare.h delete mode 100644 lib/windows/include/SDL_test_crc32.h delete mode 100644 lib/windows/include/SDL_test_font.h delete mode 100644 lib/windows/include/SDL_test_fuzzer.h delete mode 100644 lib/windows/include/SDL_test_harness.h delete mode 100644 lib/windows/include/SDL_test_images.h delete mode 100644 lib/windows/include/SDL_test_log.h delete mode 100644 lib/windows/include/SDL_test_md5.h delete mode 100644 lib/windows/include/SDL_test_memory.h delete mode 100644 lib/windows/include/SDL_test_random.h delete mode 100644 lib/windows/include/SDL_thread.h delete mode 100644 lib/windows/include/SDL_timer.h delete mode 100644 lib/windows/include/SDL_touch.h delete mode 100644 lib/windows/include/SDL_types.h delete mode 100644 lib/windows/include/SDL_version.h delete mode 100644 lib/windows/include/SDL_video.h delete mode 100644 lib/windows/include/SDL_vulkan.h delete mode 100644 lib/windows/include/begin_code.h delete mode 100644 lib/windows/include/close_code.h delete mode 100644 lib/windows/include/discord_game_sdk.h delete mode 100644 lib/windows/include/freetype/config/ftconfig.h delete mode 100644 lib/windows/include/freetype/config/ftheader.h delete mode 100644 lib/windows/include/freetype/config/ftmodule.h delete mode 100644 lib/windows/include/freetype/config/ftoption.h delete mode 100644 lib/windows/include/freetype/config/ftstdlib.h delete mode 100644 lib/windows/include/freetype/freetype.h delete mode 100644 lib/windows/include/freetype/ftadvanc.h delete mode 100644 lib/windows/include/freetype/ftautoh.h delete mode 100644 lib/windows/include/freetype/ftbbox.h delete mode 100644 lib/windows/include/freetype/ftbdf.h delete mode 100644 lib/windows/include/freetype/ftbitmap.h delete mode 100644 lib/windows/include/freetype/ftbzip2.h delete mode 100644 lib/windows/include/freetype/ftcache.h delete mode 100644 lib/windows/include/freetype/ftcffdrv.h delete mode 100644 lib/windows/include/freetype/ftchapters.h delete mode 100644 lib/windows/include/freetype/ftcid.h delete mode 100644 lib/windows/include/freetype/fterrdef.h delete mode 100644 lib/windows/include/freetype/fterrors.h delete mode 100644 lib/windows/include/freetype/ftfntfmt.h delete mode 100644 lib/windows/include/freetype/ftgasp.h delete mode 100644 lib/windows/include/freetype/ftglyph.h delete mode 100644 lib/windows/include/freetype/ftgxval.h delete mode 100644 lib/windows/include/freetype/ftgzip.h delete mode 100644 lib/windows/include/freetype/ftimage.h delete mode 100644 lib/windows/include/freetype/ftincrem.h delete mode 100644 lib/windows/include/freetype/ftlcdfil.h delete mode 100644 lib/windows/include/freetype/ftlist.h delete mode 100644 lib/windows/include/freetype/ftlzw.h delete mode 100644 lib/windows/include/freetype/ftmac.h delete mode 100644 lib/windows/include/freetype/ftmm.h delete mode 100644 lib/windows/include/freetype/ftmodapi.h delete mode 100644 lib/windows/include/freetype/ftmoderr.h delete mode 100644 lib/windows/include/freetype/ftotval.h delete mode 100644 lib/windows/include/freetype/ftoutln.h delete mode 100644 lib/windows/include/freetype/ftpfr.h delete mode 100644 lib/windows/include/freetype/ftrender.h delete mode 100644 lib/windows/include/freetype/ftsizes.h delete mode 100644 lib/windows/include/freetype/ftsnames.h delete mode 100644 lib/windows/include/freetype/ftstroke.h delete mode 100644 lib/windows/include/freetype/ftsynth.h delete mode 100644 lib/windows/include/freetype/ftsystem.h delete mode 100644 lib/windows/include/freetype/fttrigon.h delete mode 100644 lib/windows/include/freetype/ftttdrv.h delete mode 100644 lib/windows/include/freetype/fttypes.h delete mode 100644 lib/windows/include/freetype/ftwinfnt.h delete mode 100644 lib/windows/include/freetype/internal/autohint.h delete mode 100644 lib/windows/include/freetype/internal/ftcalc.h delete mode 100644 lib/windows/include/freetype/internal/ftdebug.h delete mode 100644 lib/windows/include/freetype/internal/ftdriver.h delete mode 100644 lib/windows/include/freetype/internal/ftgloadr.h delete mode 100644 lib/windows/include/freetype/internal/ftmemory.h delete mode 100644 lib/windows/include/freetype/internal/ftobjs.h delete mode 100644 lib/windows/include/freetype/internal/ftpic.h delete mode 100644 lib/windows/include/freetype/internal/ftrfork.h delete mode 100644 lib/windows/include/freetype/internal/ftserv.h delete mode 100644 lib/windows/include/freetype/internal/ftstream.h delete mode 100644 lib/windows/include/freetype/internal/fttrace.h delete mode 100644 lib/windows/include/freetype/internal/ftvalid.h delete mode 100644 lib/windows/include/freetype/internal/internal.h delete mode 100644 lib/windows/include/freetype/internal/psaux.h delete mode 100644 lib/windows/include/freetype/internal/pshints.h delete mode 100644 lib/windows/include/freetype/internal/services/svbdf.h delete mode 100644 lib/windows/include/freetype/internal/services/svcid.h delete mode 100644 lib/windows/include/freetype/internal/services/svfntfmt.h delete mode 100644 lib/windows/include/freetype/internal/services/svgldict.h delete mode 100644 lib/windows/include/freetype/internal/services/svgxval.h delete mode 100644 lib/windows/include/freetype/internal/services/svkern.h delete mode 100644 lib/windows/include/freetype/internal/services/svmm.h delete mode 100644 lib/windows/include/freetype/internal/services/svotval.h delete mode 100644 lib/windows/include/freetype/internal/services/svpfr.h delete mode 100644 lib/windows/include/freetype/internal/services/svpostnm.h delete mode 100644 lib/windows/include/freetype/internal/services/svprop.h delete mode 100644 lib/windows/include/freetype/internal/services/svpscmap.h delete mode 100644 lib/windows/include/freetype/internal/services/svpsinfo.h delete mode 100644 lib/windows/include/freetype/internal/services/svsfnt.h delete mode 100644 lib/windows/include/freetype/internal/services/svttcmap.h delete mode 100644 lib/windows/include/freetype/internal/services/svtteng.h delete mode 100644 lib/windows/include/freetype/internal/services/svttglyf.h delete mode 100644 lib/windows/include/freetype/internal/services/svwinfnt.h delete mode 100644 lib/windows/include/freetype/internal/sfnt.h delete mode 100644 lib/windows/include/freetype/internal/t1types.h delete mode 100644 lib/windows/include/freetype/internal/tttypes.h delete mode 100644 lib/windows/include/freetype/t1tables.h delete mode 100644 lib/windows/include/freetype/ttnameid.h delete mode 100644 lib/windows/include/freetype/tttables.h delete mode 100644 lib/windows/include/freetype/tttags.h delete mode 100644 lib/windows/include/freetype/ttunpat.h delete mode 100644 lib/windows/include/ft2build.h delete mode 100644 lib/windows/include/ftoption.h delete mode 100644 lib/windows/include/ogg/config_types.h delete mode 100644 lib/windows/include/ogg/ogg.h delete mode 100644 lib/windows/include/ogg/os_types.h delete mode 100644 lib/windows/include/png.h delete mode 100644 lib/windows/include/pngconf.h delete mode 100644 lib/windows/include/pnglibconf.h delete mode 100644 lib/windows/include/steam/isteamapplist.h create mode 100644 lib/windows/include/steam/isteamdualsense.h create mode 100644 lib/windows/include/steam/isteaminput.h delete mode 100644 lib/windows/include/steam/isteammasterserverupdater.h create mode 100644 lib/windows/include/steam/isteamnetworkingmessages.h create mode 100644 lib/windows/include/steam/isteamnetworkingsockets.h create mode 100644 lib/windows/include/steam/isteamnetworkingutils.h create mode 100644 lib/windows/include/steam/isteamparentalsettings.h create mode 100644 lib/windows/include/steam/isteamremoteplay.h delete mode 100644 lib/windows/include/steam/isteamunifiedmessages.h create mode 100644 lib/windows/include/steam/steam_api_common.h delete mode 100644 lib/windows/include/steam/steam_api_interop.cs create mode 100644 lib/windows/include/steam/steamnetworkingfakeip.h create mode 100644 lib/windows/include/steam/steamnetworkingtypes.h delete mode 100644 lib/windows/include/vorbis/codec.h delete mode 100644 lib/windows/include/vorbis/vorbisenc.h delete mode 100644 lib/windows/include/vorbis/vorbisfile.h delete mode 100644 lib/windows/include/zconf.h delete mode 100644 lib/windows/include/zlib.h delete mode 100644 lib/windows/libpng16.lib delete mode 100644 lib/windows/ogg.lib delete mode 100644 lib/windows/steam_api.lib create mode 100644 lib/windows/steam_api64.lib delete mode 100644 lib/windows/vorbis.lib delete mode 100644 lib/windows/vorbisfile.lib delete mode 100644 lib/windows/zlib.lib delete mode 100644 lib/windows/zlib1.dll create mode 100644 scripts/ci/linux/assemble.sh delete mode 100644 scripts/ci/linux/build.sh delete mode 100644 scripts/ci/linux/test.sh create mode 100644 scripts/ci/macos/assemble.sh delete mode 100644 scripts/ci/macos/build.sh delete mode 100644 scripts/ci/macos/test.sh create mode 100644 scripts/ci/windows/assemble.bat delete mode 100644 scripts/ci/windows/build.bat create mode 100644 scripts/ci/windows/files.txt delete mode 100644 scripts/ci/windows/test.bat create mode 100644 scripts/ci/windows/tidy.bat create mode 100644 scripts/inno/setup.iss create mode 100644 scripts/inno/starbound.ico create mode 100644 source/CMakePresets.json delete mode 100644 source/CMakeSettings.json create mode 100644 source/application/discord/achievement_manager.cpp create mode 100644 source/application/discord/achievement_manager.h create mode 100644 source/application/discord/voice_manager.cpp create mode 100644 source/application/discord/voice_manager.h delete mode 160000 source/extern/opus create mode 100644 triplets/arm64-osx-mixed.cmake create mode 100644 triplets/x64-linux-mixed.cmake create mode 100644 triplets/x64-osx-mixed.cmake diff --git a/.github/workflows/build_linux.yml b/.github/workflows/build_linux.yml index dd64b8f..1dc6d68 100644 --- a/.github/workflows/build_linux.yml +++ b/.github/workflows/build_linux.yml @@ -24,25 +24,29 @@ jobs: - name: Install Packages run: | sudo apt-get update - sudo apt-get install -y libgl1-mesa-dev mesa-common-dev libsdl2-dev libglew-dev libvorbis-dev libogg-dev libz3-dev libpng-dev libfreetype-dev libgtest-dev libgmock-dev ninja-build + sudo apt-get install -y libxmu-dev libxi-dev libgl-dev libglu1-mesa-dev ninja-build - - name: Configure Test Build - run: cmake -G "Ninja" -S "${{ github.workspace }}/source" -B "${{ github.workspace }}/cmake-build-debug" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_TESTING=YES -DCMAKE_BUILD_TYPE=Debug + - name: sccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + variant: sccache + key: ${{ github.job }}-${{ runner.os }} + max-size: 2500M - - name: Build Debug - run: cmake --build "${{ github.workspace }}/cmake-build-debug" --parallel + - name: vcpkg + uses: lukka/run-vcpkg@v11 + id: runvcpkg + with: + vcpkgJsonGlob: '**/source/vcpkg.json' + vcpkgConfigurationJsonGlob: '**/source/vcpkg-configuration.json' - - name: Run Unit Tests - run: ctest --test-dir "${{ github.workspace }}/cmake-build-debug" -L 'NoAssets' --verbose - - - name: Cleanup Test Build - run: rm -Rf "${{ github.workspace }}/cmake-build-debug" "${{ github.workspace }}/dist" - - - name: Configure Release Build - run: cmake -G "Ninja" -S "${{ github.workspace }}/source" -B "${{ github.workspace }}/cmake-build-release" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_TESTING=NO -DCMAKE_BUILD_TYPE=Release - - - name: Build Release - run: cmake --build "${{ github.workspace }}/cmake-build-release" --parallel + - name: Run CMake + uses: lukka/run-cmake@v10 + with: + cmakeListsTxtPath: '${{ github.workspace }}/source/CMakeLists.txt' + configurePreset: 'linux-release' + buildPreset: 'linux-release' + testPreset: 'linux-release' - name: Upload Artifacts uses: actions/upload-artifact@v4 diff --git a/.github/workflows/build_macos.yml b/.github/workflows/build_macos.yml index f6031fe..1386e70 100644 --- a/.github/workflows/build_macos.yml +++ b/.github/workflows/build_macos.yml @@ -21,26 +21,30 @@ jobs: with: submodules: 'recursive' - - name: Install Packages - run: brew install sdl2 glew libvorbis lzlib libpng freetype ninja + - name: Hire a Ninja + run: brew install ninja - - name: Configure Test Build - run: cmake -G "Ninja" -S "${{ github.workspace }}/source" -B "${{ github.workspace }}/cmake-build-debug" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_TESTING=YES -DCMAKE_BUILD_TYPE=Debug + - name: sccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + variant: sccache + key: ${{ github.job }}-Intel-${{ runner.os }} + max-size: 2500M - - name: Build Debug - run: cmake --build "${{ github.workspace }}/cmake-build-debug" --parallel + - name: vcpkg + uses: lukka/run-vcpkg@v11 + id: runvcpkg + with: + vcpkgJsonGlob: '**/source/vcpkg.json' + vcpkgConfigurationJsonGlob: '**/source/vcpkg-configuration.json' - - name: Run Unit Tests - run: ctest --test-dir "${{ github.workspace }}/cmake-build-debug" -L 'NoAssets' --verbose - - - name: Cleanup Test Build - run: rm -Rf "${{ github.workspace }}/cmake-build-debug" "${{ github.workspace }}/dist" - - - name: Configure Release Build - run: cmake -G "Ninja" -S "${{ github.workspace }}/source" -B "${{ github.workspace }}/cmake-build-release" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_TESTING=NO -DCMAKE_BUILD_TYPE=Release - - - name: Build Release - run: cmake --build "${{ github.workspace }}/cmake-build-release" --parallel + - name: Run CMake + uses: lukka/run-cmake@v10 + with: + cmakeListsTxtPath: '${{ github.workspace }}/source/CMakeLists.txt' + configurePreset: 'macos-release' + buildPreset: 'macos-release' + testPreset: 'macos-release' - name: Upload Artifacts uses: actions/upload-artifact@v4 @@ -57,26 +61,30 @@ jobs: with: submodules: 'recursive' - - name: Install Packages - run: brew install sdl2 glew libvorbis lzlib libpng freetype ninja + - name: Hire a Ninja + run: brew install ninja - - name: Configure Test Build - run: cmake -G "Ninja" -S "${{ github.workspace }}/source" -B "${{ github.workspace }}/cmake-build-debug" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_TESTING=YES -DCMAKE_BUILD_TYPE=Debug + - name: sccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + variant: sccache + key: ${{ github.job }}-ARM-${{ runner.os }} + max-size: 2500M - - name: Build Debug - run: cmake --build "${{ github.workspace }}/cmake-build-debug" --config "Debug" --parallel + - name: vcpkg + uses: lukka/run-vcpkg@v11 + id: runvcpkg + with: + vcpkgJsonGlob: '**/source/vcpkg.json' + vcpkgConfigurationJsonGlob: '**/source/vcpkg-configuration.json' - - name: Run Unit Tests - run: ctest --test-dir "${{ github.workspace }}/cmake-build-debug" -L 'NoAssets' --verbose --build-config "Debug" - - - name: Cleanup Test Build - run: rm -Rf "${{ github.workspace }}/cmake-build-debug" "${{ github.workspace }}/dist" - - - name: Configure Release Build - run: cmake -G "Ninja" -S "${{ github.workspace }}/source" -B "${{ github.workspace }}/cmake-build-release" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_TESTING=YES -DCMAKE_BUILD_TYPE=Release - - - name: Build Release - run: cmake --build "${{ github.workspace }}/cmake-build-release" --parallel + - name: Run CMake + uses: lukka/run-cmake@v10 + with: + cmakeListsTxtPath: '${{ github.workspace }}/source/CMakeLists.txt' + configurePreset: 'macos-arm-release' + buildPreset: 'macos-arm-release' + testPreset: 'macos-arm-release' - name: Upload Artifacts uses: actions/upload-artifact@v4 diff --git a/.github/workflows/build_windows.yml b/.github/workflows/build_windows.yml index 76bb4cc..b17505d 100644 --- a/.github/workflows/build_windows.yml +++ b/.github/workflows/build_windows.yml @@ -13,56 +13,65 @@ on: jobs: build: - name: OpenStarbound Windows x86_64 + name: Build OpenStarbound Windows x64 runs-on: windows-latest steps: - - uses: actions/checkout@v4 + - name: Checkout + uses: actions/checkout@v4 with: submodules: 'recursive' - - name: Configure Test Build - run: > - cmake -G "Visual Studio 17 2022" -A "X64" -S "${{ github.workspace }}/source" -B "${{ github.workspace }}/cmake-build-debug" - -DCMAKE_TOOLCHAIN_FILE="${Env:VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake" - -DVCPKG_OVERLAY_TRIPLETS="${{ github.workspace }}\triplets" - -DVCPKG_TARGET_TRIPLET=x64-windows-mixed-md - -DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreaded$<$:Debug>DLL" - -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" - -DCMAKE_VERBOSE_MAKEFILE=YES - -DBUILD_TESTING=YES - - - name: Build Debug - run: cmake --build "${{ github.workspace }}/cmake-build-debug" --config "Debug" --parallel - - - name: Run Unit Tests - run: ctest --test-dir "${{ github.workspace }}/cmake-build-debug" -L 'NoAssets' --verbose --build-config "Debug" - - - name: Cleanup Test Build + - name: Hire a Ninja run: | - Remove-Item "${{ github.workspace }}\cmake-build-debug" -Recurse - Remove-Item "${{ github.workspace }}\dist" -Recurse + choco install ninja + ninja.exe --version - - name: Configure Release Build - run: > - cmake -G "Visual Studio 17 2022" -A "X64" -S "${{ github.workspace }}/source" -B "${{ github.workspace }}/cmake-build-relwithdebinfo" - -DCMAKE_TOOLCHAIN_FILE="${Env:VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake" - -DVCPKG_OVERLAY_TRIPLETS="${{ github.workspace }}\triplets" - -DVCPKG_TARGET_TRIPLET=x64-windows-mixed-md - -DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreaded$<$:Debug>DLL" - -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" - -DCMAKE_VERBOSE_MAKEFILE=YES - -DBUILD_TESTING=OFF - -DSTAR_ENABLE_STEAM_INTEGRATION=ON - -DSTAR_ENABLE_DISCORD_INTEGRATION=ON - -DCMAKE_INCLUDE_PATH="${{ github.workspace }}\lib\windows\include" - -DCMAKE_LIBRARY_PATH="${{ github.workspace }}\lib\windows" + - name: sccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + variant: sccache + key: ${{ github.job }}-${{ runner.os }} + max-size: 2500M - - name: Build Release - run: cmake --build "${{ github.workspace }}/cmake-build-relwithdebinfo" --config "RelWithDebInfo" --parallel + - uses: ilammy/msvc-dev-cmd@v1 + + - name: vcpkg + uses: lukka/run-vcpkg@v11 + id: runvcpkg + with: + vcpkgJsonGlob: '**/source/vcpkg.json' + vcpkgConfigurationJsonGlob: '**/source/vcpkg-configuration.json' + + - name: Run CMake + uses: lukka/run-cmake@v10 + with: + cmakeListsTxtPath: '${{ github.workspace }}/source/CMakeLists.txt' + configurePreset: 'windows-release' + buildPreset: 'windows-release' + testPreset: 'windows-release' + + - name: Tidy Artifacts + working-directory: ${{ github.workspace }} + run: scripts\ci\windows\tidy.bat - name: Upload Artifacts uses: actions/upload-artifact@v4 with: name: OpenStarbound-Dev-Windows-x64 path: dist/* + + - name: Assemble Install Files + working-directory: ${{ github.workspace }} + run: scripts\ci\windows\assemble.bat + + - name: Create Installer + working-directory: ${{ github.workspace }} + run: | + & "C:\Program Files (x86)\Inno Setup 6\iscc.exe" /Oinstaller scripts\inno\setup.iss + + - name: Upload Installer + uses: actions/upload-artifact@v4 + with: + name: Installer + path: installer/* \ No newline at end of file diff --git a/.gitignore b/.gitignore index e9282ec..969b5a0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,21 @@ -build/ -build_linux/ -dist/ +/build/ +/build_linux/ +/out/ +/windows/ +/linux/ +/mac/ +/dist/ +/installer/ enc_temp_folder/ .cache/ -attic/chucklefish/ -tiled/ -assets/user/ -assets/devel/ -assets/packed.pak -mods/*.pak -mods/* +/attic/user/ +/attic/chucklefish/ +/tiled/ +/assets/user/ +/assets/devel/ +/assets/packed.pak +/mods/*.pak +/mods/* */.vs/ *.vs/ *.sln diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 64e8013..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "source/extern/opus"] - path = source/extern/opus - url = https://github.com/xiph/opus diff --git a/cmake/FindDiscordApi.cmake b/cmake/FindDiscordApi.cmake index 0cd3dd8..ac9fb5e 100644 --- a/cmake/FindDiscordApi.cmake +++ b/cmake/FindDiscordApi.cmake @@ -1,31 +1,11 @@ # Variables defined by this module: # -# DISCORD_API_FOUND System has discord api libs/headers # DISCORD_API_LIBRARY The discord api library -# DISCORD_API_INCLUDE_DIR The location of discord api headers - -find_path(DISCORD_API_ROOT_DIR - NAMES include/discord_game_sdk.h -) find_library(DISCORD_API_LIBRARY - NAMES discord_game_sdk - HINTS ${DISCORD_API_ROOT_DIR}/lib -) - -find_path(DISCORD_API_INCLUDE_DIR - NAMES discord_game_sdk.h - HINTS ${DISCORD_API_ROOT_DIR}/include -) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(DiscordApi DEFAULT_MSG - DISCORD_API_LIBRARY - DISCORD_API_INCLUDE_DIR + NAMES discord_game_sdk libdiscord_game_sdk ) mark_as_advanced( - DISCORD_API_ROOT_DIR DISCORD_API_LIBRARY - DISCORD_API_INCLUDE_DIR -) +) \ No newline at end of file diff --git a/cmake/FindSteamApi.cmake b/cmake/FindSteamApi.cmake index 2830c6a..33b4dbb 100644 --- a/cmake/FindSteamApi.cmake +++ b/cmake/FindSteamApi.cmake @@ -1,31 +1,16 @@ # Variables defined by this module: # -# STEAM_API_FOUND System has steam api libs/headers # STEAM_API_LIBRARY The steam api library # STEAM_API_INCLUDE_DIR The location of steam api headers -find_path(STEAM_API_ROOT_DIR - NAMES include/steam/steam_api.h -) - find_library(STEAM_API_LIBRARY - NAMES steam_api - HINTS ${STEAM_API_ROOT_DIR}/lib + NAMES libsteam_api steam_api steam_api64 ) - find_path(STEAM_API_INCLUDE_DIR - NAMES steam/steam_api.h - HINTS ${STEAM_API_ROOT_DIR}/include -) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(SteamApi DEFAULT_MSG - STEAM_API_LIBRARY - STEAM_API_INCLUDE_DIR + steam/steam_api.h ) mark_as_advanced( - STEAM_API_ROOT_DIR STEAM_API_LIBRARY STEAM_API_INCLUDE_DIR ) diff --git a/lib/linux/include/GL/gl.h b/lib/linux/include/GL/gl.h deleted file mode 100644 index e65e1bc..0000000 --- a/lib/linux/include/GL/gl.h +++ /dev/null @@ -1,2235 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 7.6 - * - * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. - * Copyright (C) 2009 VMware, Inc. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#ifndef __gl_h_ -#define __gl_h_ - -#if defined(USE_MGL_NAMESPACE) -#include "gl_mangle.h" -#endif - - -/********************************************************************** - * Begin system-specific stuff. Do not do any of this when building - * for SciTech SNAP, as this is all done before this header file is - * included. - */ -#if !defined(__SCITECH_SNAP__) - -#if defined(__BEOS__) -#include /* to get some BeOS-isms */ -#endif - -#if !defined(OPENSTEP) && (defined(NeXT) || defined(NeXT_PDO)) -#define OPENSTEP -#endif - -#if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) -#define __WIN32__ -#endif - -#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) -# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ -# define GLAPI __declspec(dllexport) -# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ -# define GLAPI __declspec(dllimport) -# else /* for use with static link lib build of Win32 edition only */ -# define GLAPI extern -# endif /* _STATIC_MESA support */ -# if defined(__MINGW32__) && defined(GL_NO_STDCALL) || defined(UNDER_CE) /* The generated DLLs by MingW with STDCALL are not compatible with the ones done by Microsoft's compilers */ -# define GLAPIENTRY -# else -# define GLAPIENTRY __stdcall -# endif -#elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */ -# define GLAPI extern -# define GLAPIENTRY __stdcall -#elif (defined(__GNUC__) && __GNUC__ >= 4) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) -# define GLAPI __attribute__((visibility("default"))) -# define GLAPIENTRY -#endif /* WIN32 && !CYGWIN */ - -#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__) -# define PRAGMA_EXPORT_SUPPORTED 1 -#endif - -/* - * WINDOWS: Include windows.h here to define APIENTRY. - * It is also useful when applications include this file by - * including only glut.h, since glut.h depends on windows.h. - * Applications needing to include windows.h with parms other - * than "WIN32_LEAN_AND_MEAN" may include windows.h before - * glut.h or gl.h. - */ -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN 1 -#endif -#include -#endif - -#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED -#pragma import on -#endif - -#ifndef GLAPI -#define GLAPI extern -#endif - -#ifndef GLAPIENTRY -#define GLAPIENTRY -#endif - -#ifndef APIENTRY -#define APIENTRY GLAPIENTRY -#endif - -/* "P" suffix to be used for a pointer to a function */ -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif - -#ifndef GLAPIENTRYP -#define GLAPIENTRYP GLAPIENTRY * -#endif - -#ifdef CENTERLINE_CLPP -#define signed -#endif - -#if defined(PRAGMA_EXPORT_SUPPORTED) -#pragma export on -#endif - -#endif /* !__SCITECH_SNAP__ */ -/* - * End system-specific stuff. - **********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define GL_VERSION_1_1 1 -#define GL_VERSION_1_2 1 -#define GL_VERSION_1_3 1 -#define GL_ARB_imaging 1 - - -/* - * Datatypes - */ -typedef unsigned int GLenum; -typedef unsigned char GLboolean; -typedef unsigned int GLbitfield; -typedef void GLvoid; -typedef signed char GLbyte; /* 1-byte signed */ -typedef short GLshort; /* 2-byte signed */ -typedef int GLint; /* 4-byte signed */ -typedef unsigned char GLubyte; /* 1-byte unsigned */ -typedef unsigned short GLushort; /* 2-byte unsigned */ -typedef unsigned int GLuint; /* 4-byte unsigned */ -typedef int GLsizei; /* 4-byte signed */ -typedef float GLfloat; /* single precision float */ -typedef float GLclampf; /* single precision float in [0,1] */ -typedef double GLdouble; /* double precision float */ -typedef double GLclampd; /* double precision float in [0,1] */ - - - -/* - * Constants - */ - -/* Boolean values */ -#define GL_FALSE 0x0 -#define GL_TRUE 0x1 - -/* Data types */ -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_2_BYTES 0x1407 -#define GL_3_BYTES 0x1408 -#define GL_4_BYTES 0x1409 -#define GL_DOUBLE 0x140A - -/* Primitives */ -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_QUADS 0x0007 -#define GL_QUAD_STRIP 0x0008 -#define GL_POLYGON 0x0009 - -/* Vertex Arrays */ -#define GL_VERTEX_ARRAY 0x8074 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_COLOR_ARRAY 0x8076 -#define GL_INDEX_ARRAY 0x8077 -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_EDGE_FLAG_ARRAY 0x8079 -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_INDEX_ARRAY_TYPE 0x8085 -#define GL_INDEX_ARRAY_STRIDE 0x8086 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_INDEX_ARRAY_POINTER 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_C3F_V3F 0x2A24 -#define GL_N3F_V3F 0x2A25 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_V4F 0x2A28 -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T4F_C4F_N3F_V4F 0x2A2D - -/* Matrix Mode */ -#define GL_MATRIX_MODE 0x0BA0 -#define GL_MODELVIEW 0x1700 -#define GL_PROJECTION 0x1701 -#define GL_TEXTURE 0x1702 - -/* Points */ -#define GL_POINT_SMOOTH 0x0B10 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_POINT_SIZE_RANGE 0x0B12 - -/* Lines */ -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_STIPPLE 0x0B24 -#define GL_LINE_STIPPLE_PATTERN 0x0B25 -#define GL_LINE_STIPPLE_REPEAT 0x0B26 -#define GL_LINE_WIDTH 0x0B21 -#define GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_LINE_WIDTH_RANGE 0x0B22 - -/* Polygons */ -#define GL_POINT 0x1B00 -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_POLYGON_STIPPLE 0x0B42 -#define GL_EDGE_FLAG 0x0B43 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_POLYGON_OFFSET_FILL 0x8037 - -/* Display Lists */ -#define GL_COMPILE 0x1300 -#define GL_COMPILE_AND_EXECUTE 0x1301 -#define GL_LIST_BASE 0x0B32 -#define GL_LIST_INDEX 0x0B33 -#define GL_LIST_MODE 0x0B30 - -/* Depth buffer */ -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_BITS 0x0D56 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_COMPONENT 0x1902 - -/* Lighting */ -#define GL_LIGHTING 0x0B50 -#define GL_LIGHT0 0x4000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_QUADRATIC_ATTENUATION 0x1209 -#define GL_AMBIENT 0x1200 -#define GL_DIFFUSE 0x1201 -#define GL_SPECULAR 0x1202 -#define GL_SHININESS 0x1601 -#define GL_EMISSION 0x1600 -#define GL_POSITION 0x1203 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_COLOR_INDEXES 0x1603 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_SHADE_MODEL 0x0B54 -#define GL_FLAT 0x1D00 -#define GL_SMOOTH 0x1D01 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_COLOR_MATERIAL_FACE 0x0B55 -#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define GL_NORMALIZE 0x0BA1 - -/* User clipping planes */ -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 - -/* Accumulation buffer */ -#define GL_ACCUM_RED_BITS 0x0D58 -#define GL_ACCUM_GREEN_BITS 0x0D59 -#define GL_ACCUM_BLUE_BITS 0x0D5A -#define GL_ACCUM_ALPHA_BITS 0x0D5B -#define GL_ACCUM_CLEAR_VALUE 0x0B80 -#define GL_ACCUM 0x0100 -#define GL_ADD 0x0104 -#define GL_LOAD 0x0101 -#define GL_MULT 0x0103 -#define GL_RETURN 0x0102 - -/* Alpha testing */ -#define GL_ALPHA_TEST 0x0BC0 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_ALPHA_TEST_FUNC 0x0BC1 - -/* Blending */ -#define GL_BLEND 0x0BE2 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND_DST 0x0BE0 -#define GL_ZERO 0x0 -#define GL_ONE 0x1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 - -/* Render Mode */ -#define GL_FEEDBACK 0x1C01 -#define GL_RENDER 0x1C00 -#define GL_SELECT 0x1C02 - -/* Feedback */ -#define GL_2D 0x0600 -#define GL_3D 0x0601 -#define GL_3D_COLOR 0x0602 -#define GL_3D_COLOR_TEXTURE 0x0603 -#define GL_4D_COLOR_TEXTURE 0x0604 -#define GL_POINT_TOKEN 0x0701 -#define GL_LINE_TOKEN 0x0702 -#define GL_LINE_RESET_TOKEN 0x0707 -#define GL_POLYGON_TOKEN 0x0703 -#define GL_BITMAP_TOKEN 0x0704 -#define GL_DRAW_PIXEL_TOKEN 0x0705 -#define GL_COPY_PIXEL_TOKEN 0x0706 -#define GL_PASS_THROUGH_TOKEN 0x0700 -#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 - -/* Selection */ -#define GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define GL_SELECTION_BUFFER_SIZE 0x0DF4 - -/* Fog */ -#define GL_FOG 0x0B60 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_COLOR 0x0B66 -#define GL_FOG_INDEX 0x0B61 -#define GL_FOG_START 0x0B63 -#define GL_FOG_END 0x0B64 -#define GL_LINEAR 0x2601 -#define GL_EXP 0x0800 -#define GL_EXP2 0x0801 - -/* Logic Ops */ -#define GL_LOGIC_OP 0x0BF1 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_CLEAR 0x1500 -#define GL_SET 0x150F -#define GL_COPY 0x1503 -#define GL_COPY_INVERTED 0x150C -#define GL_NOOP 0x1505 -#define GL_INVERT 0x150A -#define GL_AND 0x1501 -#define GL_NAND 0x150E -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_XOR 0x1506 -#define GL_EQUIV 0x1509 -#define GL_AND_REVERSE 0x1502 -#define GL_AND_INVERTED 0x1504 -#define GL_OR_REVERSE 0x150B -#define GL_OR_INVERTED 0x150D - -/* Stencil */ -#define GL_STENCIL_BITS 0x0D57 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_INDEX 0x1901 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 - -/* Buffers, Pixel Drawing/Reading */ -#define GL_NONE 0x0 -#define GL_LEFT 0x0406 -#define GL_RIGHT 0x0407 -/*GL_FRONT 0x0404 */ -/*GL_BACK 0x0405 */ -/*GL_FRONT_AND_BACK 0x0408 */ -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_AUX0 0x0409 -#define GL_AUX1 0x040A -#define GL_AUX2 0x040B -#define GL_AUX3 0x040C -#define GL_COLOR_INDEX 0x1900 -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_ALPHA_BITS 0x0D55 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_INDEX_BITS 0x0D51 -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_AUX_BUFFERS 0x0C00 -#define GL_READ_BUFFER 0x0C02 -#define GL_DRAW_BUFFER 0x0C01 -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_STEREO 0x0C33 -#define GL_BITMAP 0x1A00 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_DITHER 0x0BD0 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 - -/* Implementation limits */ -#define GL_MAX_LIST_NESTING 0x0B31 -#define GL_MAX_EVAL_ORDER 0x0D30 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B - -/* Gets */ -#define GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_CURRENT_INDEX 0x0B01 -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_RASTER_COLOR 0x0B04 -#define GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define GL_CURRENT_RASTER_INDEX 0x0B05 -#define GL_CURRENT_RASTER_POSITION 0x0B07 -#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_INDEX_CLEAR_VALUE 0x0C20 -#define GL_INDEX_MODE 0x0C30 -#define GL_INDEX_WRITEMASK 0x0C21 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_NAME_STACK_DEPTH 0x0D70 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_RENDER_MODE 0x0C40 -#define GL_RGBA_MODE 0x0C31 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_VIEWPORT 0x0BA2 - -/* Evaluators */ -#define GL_AUTO_NORMAL 0x0D80 -#define GL_MAP1_COLOR_4 0x0D90 -#define GL_MAP1_INDEX 0x0D91 -#define GL_MAP1_NORMAL 0x0D92 -#define GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define GL_MAP1_VERTEX_3 0x0D97 -#define GL_MAP1_VERTEX_4 0x0D98 -#define GL_MAP2_COLOR_4 0x0DB0 -#define GL_MAP2_INDEX 0x0DB1 -#define GL_MAP2_NORMAL 0x0DB2 -#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define GL_MAP2_VERTEX_3 0x0DB7 -#define GL_MAP2_VERTEX_4 0x0DB8 -#define GL_MAP1_GRID_DOMAIN 0x0DD0 -#define GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define GL_MAP2_GRID_DOMAIN 0x0DD2 -#define GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define GL_COEFF 0x0A00 -#define GL_ORDER 0x0A01 -#define GL_DOMAIN 0x0A02 - -/* Hints */ -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_FOG_HINT 0x0C54 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 - -/* Scissor box */ -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 - -/* Pixel Mode / Transfer */ -#define GL_MAP_COLOR 0x0D10 -#define GL_MAP_STENCIL 0x0D11 -#define GL_INDEX_SHIFT 0x0D12 -#define GL_INDEX_OFFSET 0x0D13 -#define GL_RED_SCALE 0x0D14 -#define GL_RED_BIAS 0x0D15 -#define GL_GREEN_SCALE 0x0D18 -#define GL_GREEN_BIAS 0x0D19 -#define GL_BLUE_SCALE 0x0D1A -#define GL_BLUE_BIAS 0x0D1B -#define GL_ALPHA_SCALE 0x0D1C -#define GL_ALPHA_BIAS 0x0D1D -#define GL_DEPTH_SCALE 0x0D1E -#define GL_DEPTH_BIAS 0x0D1F -#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define GL_PIXEL_MAP_S_TO_S 0x0C71 -#define GL_PIXEL_MAP_I_TO_I 0x0C70 -#define GL_PIXEL_MAP_I_TO_R 0x0C72 -#define GL_PIXEL_MAP_I_TO_G 0x0C73 -#define GL_PIXEL_MAP_I_TO_B 0x0C74 -#define GL_PIXEL_MAP_I_TO_A 0x0C75 -#define GL_PIXEL_MAP_R_TO_R 0x0C76 -#define GL_PIXEL_MAP_G_TO_G 0x0C77 -#define GL_PIXEL_MAP_B_TO_B 0x0C78 -#define GL_PIXEL_MAP_A_TO_A 0x0C79 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_ZOOM_X 0x0D16 -#define GL_ZOOM_Y 0x0D17 - -/* Texture mapping */ -#define GL_TEXTURE_ENV 0x2300 -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_ENV_COLOR 0x2201 -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GEN_R 0x0C62 -#define GL_TEXTURE_GEN_Q 0x0C63 -#define GL_TEXTURE_GEN_MODE 0x2500 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_BORDER 0x1005 -#define GL_TEXTURE_COMPONENTS 0x1003 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_OBJECT_LINEAR 0x2401 -#define GL_OBJECT_PLANE 0x2501 -#define GL_EYE_LINEAR 0x2400 -#define GL_EYE_PLANE 0x2502 -#define GL_SPHERE_MAP 0x2402 -#define GL_DECAL 0x2101 -#define GL_MODULATE 0x2100 -#define GL_NEAREST 0x2600 -#define GL_REPEAT 0x2901 -#define GL_CLAMP 0x2900 -#define GL_S 0x2000 -#define GL_T 0x2001 -#define GL_R 0x2002 -#define GL_Q 0x2003 - -/* Utility */ -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 - -/* Errors */ -#define GL_NO_ERROR 0x0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_OUT_OF_MEMORY 0x0505 - -/* glPush/PopAttrib bits */ -#define GL_CURRENT_BIT 0x00000001 -#define GL_POINT_BIT 0x00000002 -#define GL_LINE_BIT 0x00000004 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_FOG_BIT 0x00000080 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_ENABLE_BIT 0x00002000 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_HINT_BIT 0x00008000 -#define GL_EVAL_BIT 0x00010000 -#define GL_LIST_BIT 0x00020000 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_ALL_ATTRIB_BITS 0x000FFFFF - - -/* OpenGL 1.1 */ -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_TEXTURE_PRIORITY 0x8066 -#define GL_TEXTURE_RESIDENT 0x8067 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_ALPHA4 0x803B -#define GL_ALPHA8 0x803C -#define GL_ALPHA12 0x803D -#define GL_ALPHA16 0x803E -#define GL_LUMINANCE4 0x803F -#define GL_LUMINANCE8 0x8040 -#define GL_LUMINANCE12 0x8041 -#define GL_LUMINANCE16 0x8042 -#define GL_LUMINANCE4_ALPHA4 0x8043 -#define GL_LUMINANCE6_ALPHA2 0x8044 -#define GL_LUMINANCE8_ALPHA8 0x8045 -#define GL_LUMINANCE12_ALPHA4 0x8046 -#define GL_LUMINANCE12_ALPHA12 0x8047 -#define GL_LUMINANCE16_ALPHA16 0x8048 -#define GL_INTENSITY 0x8049 -#define GL_INTENSITY4 0x804A -#define GL_INTENSITY8 0x804B -#define GL_INTENSITY12 0x804C -#define GL_INTENSITY16 0x804D -#define GL_R3_G3_B2 0x2A10 -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB8 0x8051 -#define GL_RGB10 0x8052 -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGBA2 0x8055 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_ALL_CLIENT_ATTRIB_BITS 0xFFFFFFFF -#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF - - - -/* - * Miscellaneous - */ - -GLAPI void GLAPIENTRY glClearIndex( GLfloat c ); - -GLAPI void GLAPIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); - -GLAPI void GLAPIENTRY glClear( GLbitfield mask ); - -GLAPI void GLAPIENTRY glIndexMask( GLuint mask ); - -GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ); - -GLAPI void GLAPIENTRY glAlphaFunc( GLenum func, GLclampf ref ); - -GLAPI void GLAPIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor ); - -GLAPI void GLAPIENTRY glLogicOp( GLenum opcode ); - -GLAPI void GLAPIENTRY glCullFace( GLenum mode ); - -GLAPI void GLAPIENTRY glFrontFace( GLenum mode ); - -GLAPI void GLAPIENTRY glPointSize( GLfloat size ); - -GLAPI void GLAPIENTRY glLineWidth( GLfloat width ); - -GLAPI void GLAPIENTRY glLineStipple( GLint factor, GLushort pattern ); - -GLAPI void GLAPIENTRY glPolygonMode( GLenum face, GLenum mode ); - -GLAPI void GLAPIENTRY glPolygonOffset( GLfloat factor, GLfloat units ); - -GLAPI void GLAPIENTRY glPolygonStipple( const GLubyte *mask ); - -GLAPI void GLAPIENTRY glGetPolygonStipple( GLubyte *mask ); - -GLAPI void GLAPIENTRY glEdgeFlag( GLboolean flag ); - -GLAPI void GLAPIENTRY glEdgeFlagv( const GLboolean *flag ); - -GLAPI void GLAPIENTRY glScissor( GLint x, GLint y, GLsizei width, GLsizei height); - -GLAPI void GLAPIENTRY glClipPlane( GLenum plane, const GLdouble *equation ); - -GLAPI void GLAPIENTRY glGetClipPlane( GLenum plane, GLdouble *equation ); - -GLAPI void GLAPIENTRY glDrawBuffer( GLenum mode ); - -GLAPI void GLAPIENTRY glReadBuffer( GLenum mode ); - -GLAPI void GLAPIENTRY glEnable( GLenum cap ); - -GLAPI void GLAPIENTRY glDisable( GLenum cap ); - -GLAPI GLboolean GLAPIENTRY glIsEnabled( GLenum cap ); - - -GLAPI void GLAPIENTRY glEnableClientState( GLenum cap ); /* 1.1 */ - -GLAPI void GLAPIENTRY glDisableClientState( GLenum cap ); /* 1.1 */ - - -GLAPI void GLAPIENTRY glGetBooleanv( GLenum pname, GLboolean *params ); - -GLAPI void GLAPIENTRY glGetDoublev( GLenum pname, GLdouble *params ); - -GLAPI void GLAPIENTRY glGetFloatv( GLenum pname, GLfloat *params ); - -GLAPI void GLAPIENTRY glGetIntegerv( GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glPushAttrib( GLbitfield mask ); - -GLAPI void GLAPIENTRY glPopAttrib( void ); - - -GLAPI void GLAPIENTRY glPushClientAttrib( GLbitfield mask ); /* 1.1 */ - -GLAPI void GLAPIENTRY glPopClientAttrib( void ); /* 1.1 */ - - -GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode ); - -GLAPI GLenum GLAPIENTRY glGetError( void ); - -GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name ); - -GLAPI void GLAPIENTRY glFinish( void ); - -GLAPI void GLAPIENTRY glFlush( void ); - -GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode ); - - -/* - * Depth Buffer - */ - -GLAPI void GLAPIENTRY glClearDepth( GLclampd depth ); - -GLAPI void GLAPIENTRY glDepthFunc( GLenum func ); - -GLAPI void GLAPIENTRY glDepthMask( GLboolean flag ); - -GLAPI void GLAPIENTRY glDepthRange( GLclampd near_val, GLclampd far_val ); - - -/* - * Accumulation Buffer - */ - -GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); - -GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value ); - - -/* - * Transformation - */ - -GLAPI void GLAPIENTRY glMatrixMode( GLenum mode ); - -GLAPI void GLAPIENTRY glOrtho( GLdouble left, GLdouble right, - GLdouble bottom, GLdouble top, - GLdouble near_val, GLdouble far_val ); - -GLAPI void GLAPIENTRY glFrustum( GLdouble left, GLdouble right, - GLdouble bottom, GLdouble top, - GLdouble near_val, GLdouble far_val ); - -GLAPI void GLAPIENTRY glViewport( GLint x, GLint y, - GLsizei width, GLsizei height ); - -GLAPI void GLAPIENTRY glPushMatrix( void ); - -GLAPI void GLAPIENTRY glPopMatrix( void ); - -GLAPI void GLAPIENTRY glLoadIdentity( void ); - -GLAPI void GLAPIENTRY glLoadMatrixd( const GLdouble *m ); -GLAPI void GLAPIENTRY glLoadMatrixf( const GLfloat *m ); - -GLAPI void GLAPIENTRY glMultMatrixd( const GLdouble *m ); -GLAPI void GLAPIENTRY glMultMatrixf( const GLfloat *m ); - -GLAPI void GLAPIENTRY glRotated( GLdouble angle, - GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glRotatef( GLfloat angle, - GLfloat x, GLfloat y, GLfloat z ); - -GLAPI void GLAPIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z ); - -GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z ); - - -/* - * Display Lists - */ - -GLAPI GLboolean GLAPIENTRY glIsList( GLuint list ); - -GLAPI void GLAPIENTRY glDeleteLists( GLuint list, GLsizei range ); - -GLAPI GLuint GLAPIENTRY glGenLists( GLsizei range ); - -GLAPI void GLAPIENTRY glNewList( GLuint list, GLenum mode ); - -GLAPI void GLAPIENTRY glEndList( void ); - -GLAPI void GLAPIENTRY glCallList( GLuint list ); - -GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type, - const GLvoid *lists ); - -GLAPI void GLAPIENTRY glListBase( GLuint base ); - - -/* - * Drawing Functions - */ - -GLAPI void GLAPIENTRY glBegin( GLenum mode ); - -GLAPI void GLAPIENTRY glEnd( void ); - - -GLAPI void GLAPIENTRY glVertex2d( GLdouble x, GLdouble y ); -GLAPI void GLAPIENTRY glVertex2f( GLfloat x, GLfloat y ); -GLAPI void GLAPIENTRY glVertex2i( GLint x, GLint y ); -GLAPI void GLAPIENTRY glVertex2s( GLshort x, GLshort y ); - -GLAPI void GLAPIENTRY glVertex3d( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glVertex3f( GLfloat x, GLfloat y, GLfloat z ); -GLAPI void GLAPIENTRY glVertex3i( GLint x, GLint y, GLint z ); -GLAPI void GLAPIENTRY glVertex3s( GLshort x, GLshort y, GLshort z ); - -GLAPI void GLAPIENTRY glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); -GLAPI void GLAPIENTRY glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); -GLAPI void GLAPIENTRY glVertex4i( GLint x, GLint y, GLint z, GLint w ); -GLAPI void GLAPIENTRY glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); - -GLAPI void GLAPIENTRY glVertex2dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glVertex2fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glVertex2iv( const GLint *v ); -GLAPI void GLAPIENTRY glVertex2sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glVertex3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glVertex3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glVertex3iv( const GLint *v ); -GLAPI void GLAPIENTRY glVertex3sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glVertex4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glVertex4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glVertex4iv( const GLint *v ); -GLAPI void GLAPIENTRY glVertex4sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz ); -GLAPI void GLAPIENTRY glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz ); -GLAPI void GLAPIENTRY glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz ); -GLAPI void GLAPIENTRY glNormal3i( GLint nx, GLint ny, GLint nz ); -GLAPI void GLAPIENTRY glNormal3s( GLshort nx, GLshort ny, GLshort nz ); - -GLAPI void GLAPIENTRY glNormal3bv( const GLbyte *v ); -GLAPI void GLAPIENTRY glNormal3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glNormal3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glNormal3iv( const GLint *v ); -GLAPI void GLAPIENTRY glNormal3sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glIndexd( GLdouble c ); -GLAPI void GLAPIENTRY glIndexf( GLfloat c ); -GLAPI void GLAPIENTRY glIndexi( GLint c ); -GLAPI void GLAPIENTRY glIndexs( GLshort c ); -GLAPI void GLAPIENTRY glIndexub( GLubyte c ); /* 1.1 */ - -GLAPI void GLAPIENTRY glIndexdv( const GLdouble *c ); -GLAPI void GLAPIENTRY glIndexfv( const GLfloat *c ); -GLAPI void GLAPIENTRY glIndexiv( const GLint *c ); -GLAPI void GLAPIENTRY glIndexsv( const GLshort *c ); -GLAPI void GLAPIENTRY glIndexubv( const GLubyte *c ); /* 1.1 */ - -GLAPI void GLAPIENTRY glColor3b( GLbyte red, GLbyte green, GLbyte blue ); -GLAPI void GLAPIENTRY glColor3d( GLdouble red, GLdouble green, GLdouble blue ); -GLAPI void GLAPIENTRY glColor3f( GLfloat red, GLfloat green, GLfloat blue ); -GLAPI void GLAPIENTRY glColor3i( GLint red, GLint green, GLint blue ); -GLAPI void GLAPIENTRY glColor3s( GLshort red, GLshort green, GLshort blue ); -GLAPI void GLAPIENTRY glColor3ub( GLubyte red, GLubyte green, GLubyte blue ); -GLAPI void GLAPIENTRY glColor3ui( GLuint red, GLuint green, GLuint blue ); -GLAPI void GLAPIENTRY glColor3us( GLushort red, GLushort green, GLushort blue ); - -GLAPI void GLAPIENTRY glColor4b( GLbyte red, GLbyte green, - GLbyte blue, GLbyte alpha ); -GLAPI void GLAPIENTRY glColor4d( GLdouble red, GLdouble green, - GLdouble blue, GLdouble alpha ); -GLAPI void GLAPIENTRY glColor4f( GLfloat red, GLfloat green, - GLfloat blue, GLfloat alpha ); -GLAPI void GLAPIENTRY glColor4i( GLint red, GLint green, - GLint blue, GLint alpha ); -GLAPI void GLAPIENTRY glColor4s( GLshort red, GLshort green, - GLshort blue, GLshort alpha ); -GLAPI void GLAPIENTRY glColor4ub( GLubyte red, GLubyte green, - GLubyte blue, GLubyte alpha ); -GLAPI void GLAPIENTRY glColor4ui( GLuint red, GLuint green, - GLuint blue, GLuint alpha ); -GLAPI void GLAPIENTRY glColor4us( GLushort red, GLushort green, - GLushort blue, GLushort alpha ); - - -GLAPI void GLAPIENTRY glColor3bv( const GLbyte *v ); -GLAPI void GLAPIENTRY glColor3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glColor3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glColor3iv( const GLint *v ); -GLAPI void GLAPIENTRY glColor3sv( const GLshort *v ); -GLAPI void GLAPIENTRY glColor3ubv( const GLubyte *v ); -GLAPI void GLAPIENTRY glColor3uiv( const GLuint *v ); -GLAPI void GLAPIENTRY glColor3usv( const GLushort *v ); - -GLAPI void GLAPIENTRY glColor4bv( const GLbyte *v ); -GLAPI void GLAPIENTRY glColor4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glColor4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glColor4iv( const GLint *v ); -GLAPI void GLAPIENTRY glColor4sv( const GLshort *v ); -GLAPI void GLAPIENTRY glColor4ubv( const GLubyte *v ); -GLAPI void GLAPIENTRY glColor4uiv( const GLuint *v ); -GLAPI void GLAPIENTRY glColor4usv( const GLushort *v ); - - -GLAPI void GLAPIENTRY glTexCoord1d( GLdouble s ); -GLAPI void GLAPIENTRY glTexCoord1f( GLfloat s ); -GLAPI void GLAPIENTRY glTexCoord1i( GLint s ); -GLAPI void GLAPIENTRY glTexCoord1s( GLshort s ); - -GLAPI void GLAPIENTRY glTexCoord2d( GLdouble s, GLdouble t ); -GLAPI void GLAPIENTRY glTexCoord2f( GLfloat s, GLfloat t ); -GLAPI void GLAPIENTRY glTexCoord2i( GLint s, GLint t ); -GLAPI void GLAPIENTRY glTexCoord2s( GLshort s, GLshort t ); - -GLAPI void GLAPIENTRY glTexCoord3d( GLdouble s, GLdouble t, GLdouble r ); -GLAPI void GLAPIENTRY glTexCoord3f( GLfloat s, GLfloat t, GLfloat r ); -GLAPI void GLAPIENTRY glTexCoord3i( GLint s, GLint t, GLint r ); -GLAPI void GLAPIENTRY glTexCoord3s( GLshort s, GLshort t, GLshort r ); - -GLAPI void GLAPIENTRY glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); -GLAPI void GLAPIENTRY glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q ); -GLAPI void GLAPIENTRY glTexCoord4i( GLint s, GLint t, GLint r, GLint q ); -GLAPI void GLAPIENTRY glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); - -GLAPI void GLAPIENTRY glTexCoord1dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord1fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord1iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord1sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glTexCoord2dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord2fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord2iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord2sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glTexCoord3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord3iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord3sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glTexCoord4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord4iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord4sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glRasterPos2d( GLdouble x, GLdouble y ); -GLAPI void GLAPIENTRY glRasterPos2f( GLfloat x, GLfloat y ); -GLAPI void GLAPIENTRY glRasterPos2i( GLint x, GLint y ); -GLAPI void GLAPIENTRY glRasterPos2s( GLshort x, GLshort y ); - -GLAPI void GLAPIENTRY glRasterPos3d( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glRasterPos3f( GLfloat x, GLfloat y, GLfloat z ); -GLAPI void GLAPIENTRY glRasterPos3i( GLint x, GLint y, GLint z ); -GLAPI void GLAPIENTRY glRasterPos3s( GLshort x, GLshort y, GLshort z ); - -GLAPI void GLAPIENTRY glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); -GLAPI void GLAPIENTRY glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); -GLAPI void GLAPIENTRY glRasterPos4i( GLint x, GLint y, GLint z, GLint w ); -GLAPI void GLAPIENTRY glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w ); - -GLAPI void GLAPIENTRY glRasterPos2dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glRasterPos2fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glRasterPos2iv( const GLint *v ); -GLAPI void GLAPIENTRY glRasterPos2sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glRasterPos3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glRasterPos3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glRasterPos3iv( const GLint *v ); -GLAPI void GLAPIENTRY glRasterPos3sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glRasterPos4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glRasterPos4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glRasterPos4iv( const GLint *v ); -GLAPI void GLAPIENTRY glRasterPos4sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 ); -GLAPI void GLAPIENTRY glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); -GLAPI void GLAPIENTRY glRecti( GLint x1, GLint y1, GLint x2, GLint y2 ); -GLAPI void GLAPIENTRY glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 ); - - -GLAPI void GLAPIENTRY glRectdv( const GLdouble *v1, const GLdouble *v2 ); -GLAPI void GLAPIENTRY glRectfv( const GLfloat *v1, const GLfloat *v2 ); -GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 ); -GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 ); - - -/* - * Vertex Arrays (1.1) - */ - -GLAPI void GLAPIENTRY glVertexPointer( GLint size, GLenum type, - GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glNormalPointer( GLenum type, GLsizei stride, - const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glColorPointer( GLint size, GLenum type, - GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glIndexPointer( GLenum type, GLsizei stride, - const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glTexCoordPointer( GLint size, GLenum type, - GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, GLvoid **params ); - -GLAPI void GLAPIENTRY glArrayElement( GLint i ); - -GLAPI void GLAPIENTRY glDrawArrays( GLenum mode, GLint first, GLsizei count ); - -GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count, - GLenum type, const GLvoid *indices ); - -GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride, - const GLvoid *pointer ); - -/* - * Lighting - */ - -GLAPI void GLAPIENTRY glShadeModel( GLenum mode ); - -GLAPI void GLAPIENTRY glLightf( GLenum light, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glLighti( GLenum light, GLenum pname, GLint param ); -GLAPI void GLAPIENTRY glLightfv( GLenum light, GLenum pname, - const GLfloat *params ); -GLAPI void GLAPIENTRY glLightiv( GLenum light, GLenum pname, - const GLint *params ); - -GLAPI void GLAPIENTRY glGetLightfv( GLenum light, GLenum pname, - GLfloat *params ); -GLAPI void GLAPIENTRY glGetLightiv( GLenum light, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glLightModelf( GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glLightModeli( GLenum pname, GLint param ); -GLAPI void GLAPIENTRY glLightModelfv( GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glLightModeliv( GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glMaterialf( GLenum face, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glMateriali( GLenum face, GLenum pname, GLint param ); -GLAPI void GLAPIENTRY glMaterialfv( GLenum face, GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glMaterialiv( GLenum face, GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params ); - -GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode ); - - -/* - * Raster functions - */ - -GLAPI void GLAPIENTRY glPixelZoom( GLfloat xfactor, GLfloat yfactor ); - -GLAPI void GLAPIENTRY glPixelStoref( GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glPixelStorei( GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glPixelTransferf( GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glPixelTransferi( GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLsizei mapsize, - const GLfloat *values ); -GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLsizei mapsize, - const GLuint *values ); -GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLsizei mapsize, - const GLushort *values ); - -GLAPI void GLAPIENTRY glGetPixelMapfv( GLenum map, GLfloat *values ); -GLAPI void GLAPIENTRY glGetPixelMapuiv( GLenum map, GLuint *values ); -GLAPI void GLAPIENTRY glGetPixelMapusv( GLenum map, GLushort *values ); - -GLAPI void GLAPIENTRY glBitmap( GLsizei width, GLsizei height, - GLfloat xorig, GLfloat yorig, - GLfloat xmove, GLfloat ymove, - const GLubyte *bitmap ); - -GLAPI void GLAPIENTRY glReadPixels( GLint x, GLint y, - GLsizei width, GLsizei height, - GLenum format, GLenum type, - GLvoid *pixels ); - -GLAPI void GLAPIENTRY glDrawPixels( GLsizei width, GLsizei height, - GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y, - GLsizei width, GLsizei height, - GLenum type ); - -/* - * Stenciling - */ - -GLAPI void GLAPIENTRY glStencilFunc( GLenum func, GLint ref, GLuint mask ); - -GLAPI void GLAPIENTRY glStencilMask( GLuint mask ); - -GLAPI void GLAPIENTRY glStencilOp( GLenum fail, GLenum zfail, GLenum zpass ); - -GLAPI void GLAPIENTRY glClearStencil( GLint s ); - - - -/* - * Texture mapping - */ - -GLAPI void GLAPIENTRY glTexGend( GLenum coord, GLenum pname, GLdouble param ); -GLAPI void GLAPIENTRY glTexGenf( GLenum coord, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glTexGeni( GLenum coord, GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glTexGendv( GLenum coord, GLenum pname, const GLdouble *params ); -GLAPI void GLAPIENTRY glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glTexGeniv( GLenum coord, GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params ); -GLAPI void GLAPIENTRY glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetTexGeniv( GLenum coord, GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glTexEnvf( GLenum target, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glTexEnvi( GLenum target, GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glTexEnviv( GLenum target, GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetTexEnviv( GLenum target, GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glTexParameterf( GLenum target, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glTexParameteri( GLenum target, GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glTexParameterfv( GLenum target, GLenum pname, - const GLfloat *params ); -GLAPI void GLAPIENTRY glTexParameteriv( GLenum target, GLenum pname, - const GLint *params ); - -GLAPI void GLAPIENTRY glGetTexParameterfv( GLenum target, - GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexParameteriv( GLenum target, - GLenum pname, GLint *params ); - -GLAPI void GLAPIENTRY glGetTexLevelParameterfv( GLenum target, GLint level, - GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetTexLevelParameteriv( GLenum target, GLint level, - GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glTexImage1D( GLenum target, GLint level, - GLint internalFormat, - GLsizei width, GLint border, - GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glTexImage2D( GLenum target, GLint level, - GLint internalFormat, - GLsizei width, GLsizei height, - GLint border, GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level, - GLenum format, GLenum type, - GLvoid *pixels ); - - -/* 1.1 functions */ - -GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures ); - -GLAPI void GLAPIENTRY glDeleteTextures( GLsizei n, const GLuint *textures); - -GLAPI void GLAPIENTRY glBindTexture( GLenum target, GLuint texture ); - -GLAPI void GLAPIENTRY glPrioritizeTextures( GLsizei n, - const GLuint *textures, - const GLclampf *priorities ); - -GLAPI GLboolean GLAPIENTRY glAreTexturesResident( GLsizei n, - const GLuint *textures, - GLboolean *residences ); - -GLAPI GLboolean GLAPIENTRY glIsTexture( GLuint texture ); - - -GLAPI void GLAPIENTRY glTexSubImage1D( GLenum target, GLint level, - GLint xoffset, - GLsizei width, GLenum format, - GLenum type, const GLvoid *pixels ); - - -GLAPI void GLAPIENTRY glTexSubImage2D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLsizei width, GLsizei height, - GLenum format, GLenum type, - const GLvoid *pixels ); - - -GLAPI void GLAPIENTRY glCopyTexImage1D( GLenum target, GLint level, - GLenum internalformat, - GLint x, GLint y, - GLsizei width, GLint border ); - - -GLAPI void GLAPIENTRY glCopyTexImage2D( GLenum target, GLint level, - GLenum internalformat, - GLint x, GLint y, - GLsizei width, GLsizei height, - GLint border ); - - -GLAPI void GLAPIENTRY glCopyTexSubImage1D( GLenum target, GLint level, - GLint xoffset, GLint x, GLint y, - GLsizei width ); - - -GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint x, GLint y, - GLsizei width, GLsizei height ); - - -/* - * Evaluators - */ - -GLAPI void GLAPIENTRY glMap1d( GLenum target, GLdouble u1, GLdouble u2, - GLint stride, - GLint order, const GLdouble *points ); -GLAPI void GLAPIENTRY glMap1f( GLenum target, GLfloat u1, GLfloat u2, - GLint stride, - GLint order, const GLfloat *points ); - -GLAPI void GLAPIENTRY glMap2d( GLenum target, - GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, - GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, - const GLdouble *points ); -GLAPI void GLAPIENTRY glMap2f( GLenum target, - GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, - GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, - const GLfloat *points ); - -GLAPI void GLAPIENTRY glGetMapdv( GLenum target, GLenum query, GLdouble *v ); -GLAPI void GLAPIENTRY glGetMapfv( GLenum target, GLenum query, GLfloat *v ); -GLAPI void GLAPIENTRY glGetMapiv( GLenum target, GLenum query, GLint *v ); - -GLAPI void GLAPIENTRY glEvalCoord1d( GLdouble u ); -GLAPI void GLAPIENTRY glEvalCoord1f( GLfloat u ); - -GLAPI void GLAPIENTRY glEvalCoord1dv( const GLdouble *u ); -GLAPI void GLAPIENTRY glEvalCoord1fv( const GLfloat *u ); - -GLAPI void GLAPIENTRY glEvalCoord2d( GLdouble u, GLdouble v ); -GLAPI void GLAPIENTRY glEvalCoord2f( GLfloat u, GLfloat v ); - -GLAPI void GLAPIENTRY glEvalCoord2dv( const GLdouble *u ); -GLAPI void GLAPIENTRY glEvalCoord2fv( const GLfloat *u ); - -GLAPI void GLAPIENTRY glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 ); -GLAPI void GLAPIENTRY glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 ); - -GLAPI void GLAPIENTRY glMapGrid2d( GLint un, GLdouble u1, GLdouble u2, - GLint vn, GLdouble v1, GLdouble v2 ); -GLAPI void GLAPIENTRY glMapGrid2f( GLint un, GLfloat u1, GLfloat u2, - GLint vn, GLfloat v1, GLfloat v2 ); - -GLAPI void GLAPIENTRY glEvalPoint1( GLint i ); - -GLAPI void GLAPIENTRY glEvalPoint2( GLint i, GLint j ); - -GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 ); - -GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ); - - -/* - * Fog - */ - -GLAPI void GLAPIENTRY glFogf( GLenum pname, GLfloat param ); - -GLAPI void GLAPIENTRY glFogi( GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params ); - -GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params ); - - -/* - * Selection and Feedback - */ - -GLAPI void GLAPIENTRY glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ); - -GLAPI void GLAPIENTRY glPassThrough( GLfloat token ); - -GLAPI void GLAPIENTRY glSelectBuffer( GLsizei size, GLuint *buffer ); - -GLAPI void GLAPIENTRY glInitNames( void ); - -GLAPI void GLAPIENTRY glLoadName( GLuint name ); - -GLAPI void GLAPIENTRY glPushName( GLuint name ); - -GLAPI void GLAPIENTRY glPopName( void ); - - - -/* - * OpenGL 1.2 - */ - -#define GL_RESCALE_NORMAL 0x803A -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_TEXTURE_BINDING_3D 0x806A - -GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start, - GLuint end, GLsizei count, GLenum type, const GLvoid *indices ); - -GLAPI void GLAPIENTRY glTexImage3D( GLenum target, GLint level, - GLint internalFormat, - GLsizei width, GLsizei height, - GLsizei depth, GLint border, - GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glTexSubImage3D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint zoffset, GLsizei width, - GLsizei height, GLsizei depth, - GLenum format, - GLenum type, const GLvoid *pixels); - -GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint zoffset, GLint x, - GLint y, GLsizei width, - GLsizei height ); - -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); - - -/* - * GL_ARB_imaging - */ - -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_BLEND_EQUATION 0x8009 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_FUNC_ADD 0x8006 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_COLOR 0x8005 - - -GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat, - GLsizei width, GLenum format, - GLenum type, const GLvoid *table ); - -GLAPI void GLAPIENTRY glColorSubTable( GLenum target, - GLsizei start, GLsizei count, - GLenum format, GLenum type, - const GLvoid *data ); - -GLAPI void GLAPIENTRY glColorTableParameteriv(GLenum target, GLenum pname, - const GLint *params); - -GLAPI void GLAPIENTRY glColorTableParameterfv(GLenum target, GLenum pname, - const GLfloat *params); - -GLAPI void GLAPIENTRY glCopyColorSubTable( GLenum target, GLsizei start, - GLint x, GLint y, GLsizei width ); - -GLAPI void GLAPIENTRY glCopyColorTable( GLenum target, GLenum internalformat, - GLint x, GLint y, GLsizei width ); - -GLAPI void GLAPIENTRY glGetColorTable( GLenum target, GLenum format, - GLenum type, GLvoid *table ); - -GLAPI void GLAPIENTRY glGetColorTableParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetColorTableParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glBlendEquation( GLenum mode ); - -GLAPI void GLAPIENTRY glBlendColor( GLclampf red, GLclampf green, - GLclampf blue, GLclampf alpha ); - -GLAPI void GLAPIENTRY glHistogram( GLenum target, GLsizei width, - GLenum internalformat, GLboolean sink ); - -GLAPI void GLAPIENTRY glResetHistogram( GLenum target ); - -GLAPI void GLAPIENTRY glGetHistogram( GLenum target, GLboolean reset, - GLenum format, GLenum type, - GLvoid *values ); - -GLAPI void GLAPIENTRY glGetHistogramParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetHistogramParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glMinmax( GLenum target, GLenum internalformat, - GLboolean sink ); - -GLAPI void GLAPIENTRY glResetMinmax( GLenum target ); - -GLAPI void GLAPIENTRY glGetMinmax( GLenum target, GLboolean reset, - GLenum format, GLenum types, - GLvoid *values ); - -GLAPI void GLAPIENTRY glGetMinmaxParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetMinmaxParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glConvolutionFilter1D( GLenum target, - GLenum internalformat, GLsizei width, GLenum format, GLenum type, - const GLvoid *image ); - -GLAPI void GLAPIENTRY glConvolutionFilter2D( GLenum target, - GLenum internalformat, GLsizei width, GLsizei height, GLenum format, - GLenum type, const GLvoid *image ); - -GLAPI void GLAPIENTRY glConvolutionParameterf( GLenum target, GLenum pname, - GLfloat params ); - -GLAPI void GLAPIENTRY glConvolutionParameterfv( GLenum target, GLenum pname, - const GLfloat *params ); - -GLAPI void GLAPIENTRY glConvolutionParameteri( GLenum target, GLenum pname, - GLint params ); - -GLAPI void GLAPIENTRY glConvolutionParameteriv( GLenum target, GLenum pname, - const GLint *params ); - -GLAPI void GLAPIENTRY glCopyConvolutionFilter1D( GLenum target, - GLenum internalformat, GLint x, GLint y, GLsizei width ); - -GLAPI void GLAPIENTRY glCopyConvolutionFilter2D( GLenum target, - GLenum internalformat, GLint x, GLint y, GLsizei width, - GLsizei height); - -GLAPI void GLAPIENTRY glGetConvolutionFilter( GLenum target, GLenum format, - GLenum type, GLvoid *image ); - -GLAPI void GLAPIENTRY glGetConvolutionParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetConvolutionParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target, - GLenum internalformat, GLsizei width, GLsizei height, GLenum format, - GLenum type, const GLvoid *row, const GLvoid *column ); - -GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format, - GLenum type, GLvoid *row, GLvoid *column, GLvoid *span ); - -typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); - - - -/* - * OpenGL 1.3 - */ - -/* multitexture */ -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -/* texture_cube_map */ -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -/* texture_compression */ -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -/* multisample */ -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_MULTISAMPLE_BIT 0x20000000 -/* transpose_matrix */ -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -/* texture_env_combine */ -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_SUBTRACT 0x84E7 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -/* texture_env_dot3 */ -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -/* texture_border_clamp */ -#define GL_CLAMP_TO_BORDER 0x812D - -GLAPI void GLAPIENTRY glActiveTexture( GLenum texture ); - -GLAPI void GLAPIENTRY glClientActiveTexture( GLenum texture ); - -GLAPI void GLAPIENTRY glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img ); - -GLAPI void GLAPIENTRY glMultiTexCoord1d( GLenum target, GLdouble s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord1f( GLenum target, GLfloat s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord1i( GLenum target, GLint s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord1s( GLenum target, GLshort s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1sv( GLenum target, const GLshort *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2i( GLenum target, GLint s, GLint t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2s( GLenum target, GLshort s, GLshort t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2sv( GLenum target, const GLshort *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3sv( GLenum target, const GLshort *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4sv( GLenum target, const GLshort *v ); - - -GLAPI void GLAPIENTRY glLoadTransposeMatrixd( const GLdouble m[16] ); - -GLAPI void GLAPIENTRY glLoadTransposeMatrixf( const GLfloat m[16] ); - -GLAPI void GLAPIENTRY glMultTransposeMatrixd( const GLdouble m[16] ); - -GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] ); - -GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert ); - - -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); - - - -/* - * GL_ARB_multitexture (ARB extension 1 and OpenGL 1.2.1) - */ -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 - -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 - -GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture); -GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture); -GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s); -GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s); -GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s); -GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s); -GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v); -GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); -GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); -GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); -GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); -GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v); -GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); -GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v); -GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); - -typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); - -#endif /* GL_ARB_multitexture */ - - - -/* - * Define this token if you want "old-style" header file behaviour (extensions - * defined in gl.h). Otherwise, extensions will be included from glext.h. - */ -#if defined(GL_GLEXT_LEGACY) - -/* All extensions that used to be here are now found in glext.h */ - -#else /* GL_GLEXT_LEGACY */ - -#include - -#endif /* GL_GLEXT_LEGACY */ - - - -#if GL_ARB_shader_objects - -#ifndef GL_MESA_shader_debug -#define GL_MESA_shader_debug 1 - -#define GL_DEBUG_OBJECT_MESA 0x8759 -#define GL_DEBUG_PRINT_MESA 0x875A -#define GL_DEBUG_ASSERT_MESA 0x875B - -GLAPI GLhandleARB GLAPIENTRY glCreateDebugObjectMESA (void); -GLAPI void GLAPIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType); -GLAPI void GLAPIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength, - GLsizei *length, GLcharARB *debugLog); -GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType); - -#endif /* GL_MESA_shader_debug */ - -#endif /* GL_ARB_shader_objects */ - - -/* - * ???. GL_MESA_packed_depth_stencil - * XXX obsolete - */ -#ifndef GL_MESA_packed_depth_stencil -#define GL_MESA_packed_depth_stencil 1 - -#define GL_DEPTH_STENCIL_MESA 0x8750 -#define GL_UNSIGNED_INT_24_8_MESA 0x8751 -#define GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 -#define GL_UNSIGNED_SHORT_15_1_MESA 0x8753 -#define GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 - -#endif /* GL_MESA_packed_depth_stencil */ - - -#ifndef GL_MESA_program_debug -#define GL_MESA_program_debug 1 - -#define GL_FRAGMENT_PROGRAM_POSITION_MESA 0x8bb0 -#define GL_FRAGMENT_PROGRAM_CALLBACK_MESA 0x8bb1 -#define GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x8bb2 -#define GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x8bb3 -#define GL_VERTEX_PROGRAM_POSITION_MESA 0x8bb4 -#define GL_VERTEX_PROGRAM_CALLBACK_MESA 0x8bb5 -#define GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA 0x8bb6 -#define GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA 0x8bb7 - -typedef void (*GLprogramcallbackMESA)(GLenum target, GLvoid *data); - -GLAPI void GLAPIENTRY glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback, GLvoid *data); - -GLAPI void GLAPIENTRY glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name, GLfloat *v); - -#endif /* GL_MESA_program_debug */ - - -#ifndef GL_MESA_texture_array -#define GL_MESA_texture_array 1 - -/* GL_MESA_texture_array uses the same enum values as GL_EXT_texture_array. - */ -#ifndef GL_EXT_texture_array - -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFramebufferTextureLayerEXT(GLenum target, - GLenum attachment, GLuint texture, GLint level, GLint layer); -#endif /* GL_GLEXT_PROTOTYPES */ - -#if 0 -/* (temporarily) disabled because of collision with typedef in glext.h - * that happens if apps include both gl.h and glext.h - */ -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, - GLenum attachment, GLuint texture, GLint level, GLint layer); -#endif - -#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 -#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D -#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#endif - -#endif - - -#ifndef GL_ATI_blend_equation_separate -#define GL_ATI_blend_equation_separate 1 - -#define GL_ALPHA_BLEND_EQUATION_ATI 0x883D - -GLAPI void GLAPIENTRY glBlendEquationSeparateATI( GLenum modeRGB, GLenum modeA ); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA); - -#endif /* GL_ATI_blend_equation_separate */ - - -/* GL_OES_EGL_image */ -#ifndef GL_OES_EGL_image -typedef void* GLeglImageOES; -#endif - -#ifndef GL_OES_EGL_image -#define GL_OES_EGL_image 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); -GLAPI void APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); -#endif -typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); -typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); -#endif - - -/** - ** NOTE!!!!! If you add new functions to this file, or update - ** glext.h be sure to regenerate the gl_mangle.h file. See comments - ** in that file for details. - **/ - - - -/********************************************************************** - * Begin system-specific stuff - */ -#if defined(PRAGMA_EXPORT_SUPPORTED) -#pragma export off -#endif - -#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED -#pragma import off -#endif -/* - * End system-specific stuff - **********************************************************************/ - - -#ifdef __cplusplus -} -#endif - -#endif /* __gl_h_ */ diff --git a/lib/linux/include/GL/gl_mangle.h b/lib/linux/include/GL/gl_mangle.h deleted file mode 100644 index 3684803..0000000 --- a/lib/linux/include/GL/gl_mangle.h +++ /dev/null @@ -1,2311 +0,0 @@ -#if 0 -#define GL_MANGLE_C1 "DO NOT EDIT!!! - TO REGENERATE from gl.h, EXECUTE THIS FILE IN SHELL (/bin/sh) and save the output" -#define GL_MANGLE_C2 "This file is used to create GL function protypes and aliases for the function names" - files="gl.h glext.h" -#define GL_MANGLE_C3 "get regeneration header - copy everything in this file above the 'REGENERATE_TO_END' line" - awk '!done; /^\/\*REGENERATE_TO_END/ {done=1}' $0 - echo "" -#define GL_MANGLE_C4 get aliases - grep '^GLAPI' $files | sed -e 's/.*ENTRY gl\([^( ]*\).*$/#define gl\1 MANGLE(\1)/' | sort | uniq - echo "" - echo "#endif /* GL_MANGLE_H */" - exit -#endif /* REGENERATION */ - -/* - * If you compile Mesa with USE_MGL_NAMESPACE defined then you can link - * your application both with OpenGL and Mesa. The Mesa functions will - * be redefined so they are prefixed with "mgl" instead of "gl". - * Mgl contributed by Randy Frank (rfrank@rsinc.com) - * Regneration code contributed by Ray Tice (rayt@ma.ultra.net) - */ - -#ifndef GL_MANGLE_H -#define GL_MANGLE_H - -#ifndef MANGLE -#define MANGLE(x) mgl##x -#endif /*MANGLE*/ - -/*REGENERATE_TO_END-----------ALL LINES BELOW HERE GET REPLACED ON REGENERATION */ - -#define glAccum MANGLE(Accum) -#define glActiveProgramEXT MANGLE(ActiveProgramEXT) -#define glActiveShaderProgram MANGLE(ActiveShaderProgram) -#define glActiveStencilFaceEXT MANGLE(ActiveStencilFaceEXT) -#define glActiveTextureARB MANGLE(ActiveTextureARB) -#define glActiveTexture MANGLE(ActiveTexture) -#define glActiveVaryingNV MANGLE(ActiveVaryingNV) -#define glAlphaFragmentOp1ATI MANGLE(AlphaFragmentOp1ATI) -#define glAlphaFragmentOp2ATI MANGLE(AlphaFragmentOp2ATI) -#define glAlphaFragmentOp3ATI MANGLE(AlphaFragmentOp3ATI) -#define glAlphaFunc MANGLE(AlphaFunc) -#define glApplyTextureEXT MANGLE(ApplyTextureEXT) -#define glAreProgramsResidentNV MANGLE(AreProgramsResidentNV) -#define glAreTexturesResidentEXT MANGLE(AreTexturesResidentEXT) -#define glAreTexturesResident MANGLE(AreTexturesResident) -#define glArrayElementEXT MANGLE(ArrayElementEXT) -#define glArrayElement MANGLE(ArrayElement) -#define glArrayObjectATI MANGLE(ArrayObjectATI) -#define glAsyncMarkerSGIX MANGLE(AsyncMarkerSGIX) -#define glAttachObjectARB MANGLE(AttachObjectARB) -#define glAttachShader MANGLE(AttachShader) -#define glBeginConditionalRender MANGLE(BeginConditionalRender) -#define glBeginConditionalRenderNV MANGLE(BeginConditionalRenderNV) -#define glBeginFragmentShaderATI MANGLE(BeginFragmentShaderATI) -#define glBegin MANGLE(Begin) -#define glBeginOcclusionQueryNV MANGLE(BeginOcclusionQueryNV) -#define glBeginPerfMonitorAMD MANGLE(BeginPerfMonitorAMD) -#define glBeginQueryARB MANGLE(BeginQueryARB) -#define glBeginQueryIndexed MANGLE(BeginQueryIndexed) -#define glBeginQuery MANGLE(BeginQuery) -#define glBeginTransformFeedbackEXT MANGLE(BeginTransformFeedbackEXT) -#define glBeginTransformFeedback MANGLE(BeginTransformFeedback) -#define glBeginTransformFeedbackNV MANGLE(BeginTransformFeedbackNV) -#define glBeginVertexShaderEXT MANGLE(BeginVertexShaderEXT) -#define glBeginVideoCaptureNV MANGLE(BeginVideoCaptureNV) -#define glBindAttribLocationARB MANGLE(BindAttribLocationARB) -#define glBindAttribLocation MANGLE(BindAttribLocation) -#define glBindBufferARB MANGLE(BindBufferARB) -#define glBindBufferBaseEXT MANGLE(BindBufferBaseEXT) -#define glBindBufferBase MANGLE(BindBufferBase) -#define glBindBufferBaseNV MANGLE(BindBufferBaseNV) -#define glBindBuffer MANGLE(BindBuffer) -#define glBindBufferOffsetEXT MANGLE(BindBufferOffsetEXT) -#define glBindBufferOffsetNV MANGLE(BindBufferOffsetNV) -#define glBindBufferRangeEXT MANGLE(BindBufferRangeEXT) -#define glBindBufferRange MANGLE(BindBufferRange) -#define glBindBufferRangeNV MANGLE(BindBufferRangeNV) -#define glBindFragDataLocationEXT MANGLE(BindFragDataLocationEXT) -#define glBindFragDataLocationIndexed MANGLE(BindFragDataLocationIndexed) -#define glBindFragDataLocation MANGLE(BindFragDataLocation) -#define glBindFragmentShaderATI MANGLE(BindFragmentShaderATI) -#define glBindFramebufferEXT MANGLE(BindFramebufferEXT) -#define glBindFramebuffer MANGLE(BindFramebuffer) -#define glBindImageTextureEXT MANGLE(BindImageTextureEXT) -#define glBindLightParameterEXT MANGLE(BindLightParameterEXT) -#define glBindMaterialParameterEXT MANGLE(BindMaterialParameterEXT) -#define glBindMultiTextureEXT MANGLE(BindMultiTextureEXT) -#define glBindParameterEXT MANGLE(BindParameterEXT) -#define glBindProgramARB MANGLE(BindProgramARB) -#define glBindProgramNV MANGLE(BindProgramNV) -#define glBindProgramPipeline MANGLE(BindProgramPipeline) -#define glBindRenderbufferEXT MANGLE(BindRenderbufferEXT) -#define glBindRenderbuffer MANGLE(BindRenderbuffer) -#define glBindSampler MANGLE(BindSampler) -#define glBindTexGenParameterEXT MANGLE(BindTexGenParameterEXT) -#define glBindTextureEXT MANGLE(BindTextureEXT) -#define glBindTexture MANGLE(BindTexture) -#define glBindTextureUnitParameterEXT MANGLE(BindTextureUnitParameterEXT) -#define glBindTransformFeedback MANGLE(BindTransformFeedback) -#define glBindTransformFeedbackNV MANGLE(BindTransformFeedbackNV) -#define glBindVertexArrayAPPLE MANGLE(BindVertexArrayAPPLE) -#define glBindVertexArray MANGLE(BindVertexArray) -#define glBindVertexShaderEXT MANGLE(BindVertexShaderEXT) -#define glBindVideoCaptureStreamBufferNV MANGLE(BindVideoCaptureStreamBufferNV) -#define glBindVideoCaptureStreamTextureNV MANGLE(BindVideoCaptureStreamTextureNV) -#define glBinormal3bEXT MANGLE(Binormal3bEXT) -#define glBinormal3bvEXT MANGLE(Binormal3bvEXT) -#define glBinormal3dEXT MANGLE(Binormal3dEXT) -#define glBinormal3dvEXT MANGLE(Binormal3dvEXT) -#define glBinormal3fEXT MANGLE(Binormal3fEXT) -#define glBinormal3fvEXT MANGLE(Binormal3fvEXT) -#define glBinormal3iEXT MANGLE(Binormal3iEXT) -#define glBinormal3ivEXT MANGLE(Binormal3ivEXT) -#define glBinormal3sEXT MANGLE(Binormal3sEXT) -#define glBinormal3svEXT MANGLE(Binormal3svEXT) -#define glBinormalPointerEXT MANGLE(BinormalPointerEXT) -#define glBitmap MANGLE(Bitmap) -#define glBlendColorEXT MANGLE(BlendColorEXT) -#define glBlendColor MANGLE(BlendColor) -#define glBlendEquationEXT MANGLE(BlendEquationEXT) -#define glBlendEquationiARB MANGLE(BlendEquationiARB) -#define glBlendEquationi MANGLE(BlendEquationi) -#define glBlendEquationIndexedAMD MANGLE(BlendEquationIndexedAMD) -#define glBlendEquation MANGLE(BlendEquation) -#define glBlendEquationSeparateATI MANGLE(BlendEquationSeparateATI) -#define glBlendEquationSeparateEXT MANGLE(BlendEquationSeparateEXT) -#define glBlendEquationSeparateiARB MANGLE(BlendEquationSeparateiARB) -#define glBlendEquationSeparatei MANGLE(BlendEquationSeparatei) -#define glBlendEquationSeparateIndexedAMD MANGLE(BlendEquationSeparateIndexedAMD) -#define glBlendEquationSeparate MANGLE(BlendEquationSeparate) -#define glBlendFunciARB MANGLE(BlendFunciARB) -#define glBlendFunci MANGLE(BlendFunci) -#define glBlendFuncIndexedAMD MANGLE(BlendFuncIndexedAMD) -#define glBlendFunc MANGLE(BlendFunc) -#define glBlendFuncSeparateEXT MANGLE(BlendFuncSeparateEXT) -#define glBlendFuncSeparateiARB MANGLE(BlendFuncSeparateiARB) -#define glBlendFuncSeparatei MANGLE(BlendFuncSeparatei) -#define glBlendFuncSeparateIndexedAMD MANGLE(BlendFuncSeparateIndexedAMD) -#define glBlendFuncSeparateINGR MANGLE(BlendFuncSeparateINGR) -#define glBlendFuncSeparate MANGLE(BlendFuncSeparate) -#define glBlitFramebufferEXT MANGLE(BlitFramebufferEXT) -#define glBlitFramebuffer MANGLE(BlitFramebuffer) -#define glBufferAddressRangeNV MANGLE(BufferAddressRangeNV) -#define glBufferDataARB MANGLE(BufferDataARB) -#define glBufferData MANGLE(BufferData) -#define glBufferParameteriAPPLE MANGLE(BufferParameteriAPPLE) -#define glBufferSubDataARB MANGLE(BufferSubDataARB) -#define glBufferSubData MANGLE(BufferSubData) -#define glCallList MANGLE(CallList) -#define glCallLists MANGLE(CallLists) -#define glCheckFramebufferStatusEXT MANGLE(CheckFramebufferStatusEXT) -#define glCheckFramebufferStatus MANGLE(CheckFramebufferStatus) -#define glCheckNamedFramebufferStatusEXT MANGLE(CheckNamedFramebufferStatusEXT) -#define glClampColorARB MANGLE(ClampColorARB) -#define glClampColor MANGLE(ClampColor) -#define glClearAccum MANGLE(ClearAccum) -#define glClearBufferfi MANGLE(ClearBufferfi) -#define glClearBufferfv MANGLE(ClearBufferfv) -#define glClearBufferiv MANGLE(ClearBufferiv) -#define glClearBufferuiv MANGLE(ClearBufferuiv) -#define glClearColorIiEXT MANGLE(ClearColorIiEXT) -#define glClearColorIuiEXT MANGLE(ClearColorIuiEXT) -#define glClearColor MANGLE(ClearColor) -#define glClearDebugLogMESA MANGLE(ClearDebugLogMESA) -#define glClearDepthdNV MANGLE(ClearDepthdNV) -#define glClearDepthf MANGLE(ClearDepthf) -#define glClearDepth MANGLE(ClearDepth) -#define glClearIndex MANGLE(ClearIndex) -#define glClear MANGLE(Clear) -#define glClearStencil MANGLE(ClearStencil) -#define glClientActiveTextureARB MANGLE(ClientActiveTextureARB) -#define glClientActiveTexture MANGLE(ClientActiveTexture) -#define glClientActiveVertexStreamATI MANGLE(ClientActiveVertexStreamATI) -#define glClientAttribDefaultEXT MANGLE(ClientAttribDefaultEXT) -#define glClientWaitSync MANGLE(ClientWaitSync) -#define glClipPlane MANGLE(ClipPlane) -#define glColor3b MANGLE(Color3b) -#define glColor3bv MANGLE(Color3bv) -#define glColor3d MANGLE(Color3d) -#define glColor3dv MANGLE(Color3dv) -#define glColor3f MANGLE(Color3f) -#define glColor3fVertex3fSUN MANGLE(Color3fVertex3fSUN) -#define glColor3fVertex3fvSUN MANGLE(Color3fVertex3fvSUN) -#define glColor3fv MANGLE(Color3fv) -#define glColor3hNV MANGLE(Color3hNV) -#define glColor3hvNV MANGLE(Color3hvNV) -#define glColor3i MANGLE(Color3i) -#define glColor3iv MANGLE(Color3iv) -#define glColor3s MANGLE(Color3s) -#define glColor3sv MANGLE(Color3sv) -#define glColor3ub MANGLE(Color3ub) -#define glColor3ubv MANGLE(Color3ubv) -#define glColor3ui MANGLE(Color3ui) -#define glColor3uiv MANGLE(Color3uiv) -#define glColor3us MANGLE(Color3us) -#define glColor3usv MANGLE(Color3usv) -#define glColor4b MANGLE(Color4b) -#define glColor4bv MANGLE(Color4bv) -#define glColor4d MANGLE(Color4d) -#define glColor4dv MANGLE(Color4dv) -#define glColor4f MANGLE(Color4f) -#define glColor4fNormal3fVertex3fSUN MANGLE(Color4fNormal3fVertex3fSUN) -#define glColor4fNormal3fVertex3fvSUN MANGLE(Color4fNormal3fVertex3fvSUN) -#define glColor4fv MANGLE(Color4fv) -#define glColor4hNV MANGLE(Color4hNV) -#define glColor4hvNV MANGLE(Color4hvNV) -#define glColor4i MANGLE(Color4i) -#define glColor4iv MANGLE(Color4iv) -#define glColor4s MANGLE(Color4s) -#define glColor4sv MANGLE(Color4sv) -#define glColor4ub MANGLE(Color4ub) -#define glColor4ubVertex2fSUN MANGLE(Color4ubVertex2fSUN) -#define glColor4ubVertex2fvSUN MANGLE(Color4ubVertex2fvSUN) -#define glColor4ubVertex3fSUN MANGLE(Color4ubVertex3fSUN) -#define glColor4ubVertex3fvSUN MANGLE(Color4ubVertex3fvSUN) -#define glColor4ubv MANGLE(Color4ubv) -#define glColor4ui MANGLE(Color4ui) -#define glColor4uiv MANGLE(Color4uiv) -#define glColor4us MANGLE(Color4us) -#define glColor4usv MANGLE(Color4usv) -#define glColorFormatNV MANGLE(ColorFormatNV) -#define glColorFragmentOp1ATI MANGLE(ColorFragmentOp1ATI) -#define glColorFragmentOp2ATI MANGLE(ColorFragmentOp2ATI) -#define glColorFragmentOp3ATI MANGLE(ColorFragmentOp3ATI) -#define glColorMaski MANGLE(ColorMaski) -#define glColorMaskIndexedEXT MANGLE(ColorMaskIndexedEXT) -#define glColorMask MANGLE(ColorMask) -#define glColorMaterial MANGLE(ColorMaterial) -#define glColorP3ui MANGLE(ColorP3ui) -#define glColorP3uiv MANGLE(ColorP3uiv) -#define glColorP4ui MANGLE(ColorP4ui) -#define glColorP4uiv MANGLE(ColorP4uiv) -#define glColorPointerEXT MANGLE(ColorPointerEXT) -#define glColorPointerListIBM MANGLE(ColorPointerListIBM) -#define glColorPointer MANGLE(ColorPointer) -#define glColorPointervINTEL MANGLE(ColorPointervINTEL) -#define glColorSubTableEXT MANGLE(ColorSubTableEXT) -#define glColorSubTable MANGLE(ColorSubTable) -#define glColorTableEXT MANGLE(ColorTableEXT) -#define glColorTable MANGLE(ColorTable) -#define glColorTableParameterfv MANGLE(ColorTableParameterfv) -#define glColorTableParameterfvSGI MANGLE(ColorTableParameterfvSGI) -#define glColorTableParameteriv MANGLE(ColorTableParameteriv) -#define glColorTableParameterivSGI MANGLE(ColorTableParameterivSGI) -#define glColorTableSGI MANGLE(ColorTableSGI) -#define glCombinerInputNV MANGLE(CombinerInputNV) -#define glCombinerOutputNV MANGLE(CombinerOutputNV) -#define glCombinerParameterfNV MANGLE(CombinerParameterfNV) -#define glCombinerParameterfvNV MANGLE(CombinerParameterfvNV) -#define glCombinerParameteriNV MANGLE(CombinerParameteriNV) -#define glCombinerParameterivNV MANGLE(CombinerParameterivNV) -#define glCombinerStageParameterfvNV MANGLE(CombinerStageParameterfvNV) -#define glCompileShaderARB MANGLE(CompileShaderARB) -#define glCompileShaderIncludeARB MANGLE(CompileShaderIncludeARB) -#define glCompileShader MANGLE(CompileShader) -#define glCompressedMultiTexImage1DEXT MANGLE(CompressedMultiTexImage1DEXT) -#define glCompressedMultiTexImage2DEXT MANGLE(CompressedMultiTexImage2DEXT) -#define glCompressedMultiTexImage3DEXT MANGLE(CompressedMultiTexImage3DEXT) -#define glCompressedMultiTexSubImage1DEXT MANGLE(CompressedMultiTexSubImage1DEXT) -#define glCompressedMultiTexSubImage2DEXT MANGLE(CompressedMultiTexSubImage2DEXT) -#define glCompressedMultiTexSubImage3DEXT MANGLE(CompressedMultiTexSubImage3DEXT) -#define glCompressedTexImage1DARB MANGLE(CompressedTexImage1DARB) -#define glCompressedTexImage1D MANGLE(CompressedTexImage1D) -#define glCompressedTexImage2DARB MANGLE(CompressedTexImage2DARB) -#define glCompressedTexImage2D MANGLE(CompressedTexImage2D) -#define glCompressedTexImage3DARB MANGLE(CompressedTexImage3DARB) -#define glCompressedTexImage3D MANGLE(CompressedTexImage3D) -#define glCompressedTexSubImage1DARB MANGLE(CompressedTexSubImage1DARB) -#define glCompressedTexSubImage1D MANGLE(CompressedTexSubImage1D) -#define glCompressedTexSubImage2DARB MANGLE(CompressedTexSubImage2DARB) -#define glCompressedTexSubImage2D MANGLE(CompressedTexSubImage2D) -#define glCompressedTexSubImage3DARB MANGLE(CompressedTexSubImage3DARB) -#define glCompressedTexSubImage3D MANGLE(CompressedTexSubImage3D) -#define glCompressedTextureImage1DEXT MANGLE(CompressedTextureImage1DEXT) -#define glCompressedTextureImage2DEXT MANGLE(CompressedTextureImage2DEXT) -#define glCompressedTextureImage3DEXT MANGLE(CompressedTextureImage3DEXT) -#define glCompressedTextureSubImage1DEXT MANGLE(CompressedTextureSubImage1DEXT) -#define glCompressedTextureSubImage2DEXT MANGLE(CompressedTextureSubImage2DEXT) -#define glCompressedTextureSubImage3DEXT MANGLE(CompressedTextureSubImage3DEXT) -#define glConvolutionFilter1DEXT MANGLE(ConvolutionFilter1DEXT) -#define glConvolutionFilter1D MANGLE(ConvolutionFilter1D) -#define glConvolutionFilter2DEXT MANGLE(ConvolutionFilter2DEXT) -#define glConvolutionFilter2D MANGLE(ConvolutionFilter2D) -#define glConvolutionParameterfEXT MANGLE(ConvolutionParameterfEXT) -#define glConvolutionParameterf MANGLE(ConvolutionParameterf) -#define glConvolutionParameterfvEXT MANGLE(ConvolutionParameterfvEXT) -#define glConvolutionParameterfv MANGLE(ConvolutionParameterfv) -#define glConvolutionParameteriEXT MANGLE(ConvolutionParameteriEXT) -#define glConvolutionParameteri MANGLE(ConvolutionParameteri) -#define glConvolutionParameterivEXT MANGLE(ConvolutionParameterivEXT) -#define glConvolutionParameteriv MANGLE(ConvolutionParameteriv) -#define glCopyBufferSubData MANGLE(CopyBufferSubData) -#define glCopyColorSubTableEXT MANGLE(CopyColorSubTableEXT) -#define glCopyColorSubTable MANGLE(CopyColorSubTable) -#define glCopyColorTable MANGLE(CopyColorTable) -#define glCopyColorTableSGI MANGLE(CopyColorTableSGI) -#define glCopyConvolutionFilter1DEXT MANGLE(CopyConvolutionFilter1DEXT) -#define glCopyConvolutionFilter1D MANGLE(CopyConvolutionFilter1D) -#define glCopyConvolutionFilter2DEXT MANGLE(CopyConvolutionFilter2DEXT) -#define glCopyConvolutionFilter2D MANGLE(CopyConvolutionFilter2D) -#define glCopyImageSubDataNV MANGLE(CopyImageSubDataNV) -#define glCopyMultiTexImage1DEXT MANGLE(CopyMultiTexImage1DEXT) -#define glCopyMultiTexImage2DEXT MANGLE(CopyMultiTexImage2DEXT) -#define glCopyMultiTexSubImage1DEXT MANGLE(CopyMultiTexSubImage1DEXT) -#define glCopyMultiTexSubImage2DEXT MANGLE(CopyMultiTexSubImage2DEXT) -#define glCopyMultiTexSubImage3DEXT MANGLE(CopyMultiTexSubImage3DEXT) -#define glCopyPixels MANGLE(CopyPixels) -#define glCopyTexImage1DEXT MANGLE(CopyTexImage1DEXT) -#define glCopyTexImage1D MANGLE(CopyTexImage1D) -#define glCopyTexImage2DEXT MANGLE(CopyTexImage2DEXT) -#define glCopyTexImage2D MANGLE(CopyTexImage2D) -#define glCopyTexSubImage1DEXT MANGLE(CopyTexSubImage1DEXT) -#define glCopyTexSubImage1D MANGLE(CopyTexSubImage1D) -#define glCopyTexSubImage2DEXT MANGLE(CopyTexSubImage2DEXT) -#define glCopyTexSubImage2D MANGLE(CopyTexSubImage2D) -#define glCopyTexSubImage3DEXT MANGLE(CopyTexSubImage3DEXT) -#define glCopyTexSubImage3D MANGLE(CopyTexSubImage3D) -#define glCopyTextureImage1DEXT MANGLE(CopyTextureImage1DEXT) -#define glCopyTextureImage2DEXT MANGLE(CopyTextureImage2DEXT) -#define glCopyTextureSubImage1DEXT MANGLE(CopyTextureSubImage1DEXT) -#define glCopyTextureSubImage2DEXT MANGLE(CopyTextureSubImage2DEXT) -#define glCopyTextureSubImage3DEXT MANGLE(CopyTextureSubImage3DEXT) -#define glCreateDebugObjectMESA MANGLE(CreateDebugObjectMESA) -#define glCreateProgram MANGLE(CreateProgram) -#define glCreateProgramObjectARB MANGLE(CreateProgramObjectARB) -#define glCreateShader MANGLE(CreateShader) -#define glCreateShaderObjectARB MANGLE(CreateShaderObjectARB) -#define glCreateShaderProgramEXT MANGLE(CreateShaderProgramEXT) -#define glCreateShaderProgramv MANGLE(CreateShaderProgramv) -#define glCreateSyncFromCLeventARB MANGLE(CreateSyncFromCLeventARB) -#define glCullFace MANGLE(CullFace) -#define glCullParameterdvEXT MANGLE(CullParameterdvEXT) -#define glCullParameterfvEXT MANGLE(CullParameterfvEXT) -#define glCurrentPaletteMatrixARB MANGLE(CurrentPaletteMatrixARB) -#define glDebugMessageCallbackAMD MANGLE(DebugMessageCallbackAMD) -#define glDebugMessageCallbackARB MANGLE(DebugMessageCallbackARB) -#define glDebugMessageControlARB MANGLE(DebugMessageControlARB) -#define glDebugMessageEnableAMD MANGLE(DebugMessageEnableAMD) -#define glDebugMessageInsertAMD MANGLE(DebugMessageInsertAMD) -#define glDebugMessageInsertARB MANGLE(DebugMessageInsertARB) -#define glDeformationMap3dSGIX MANGLE(DeformationMap3dSGIX) -#define glDeformationMap3fSGIX MANGLE(DeformationMap3fSGIX) -#define glDeformSGIX MANGLE(DeformSGIX) -#define glDeleteAsyncMarkersSGIX MANGLE(DeleteAsyncMarkersSGIX) -#define glDeleteBuffersARB MANGLE(DeleteBuffersARB) -#define glDeleteBuffers MANGLE(DeleteBuffers) -#define glDeleteFencesAPPLE MANGLE(DeleteFencesAPPLE) -#define glDeleteFencesNV MANGLE(DeleteFencesNV) -#define glDeleteFragmentShaderATI MANGLE(DeleteFragmentShaderATI) -#define glDeleteFramebuffersEXT MANGLE(DeleteFramebuffersEXT) -#define glDeleteFramebuffers MANGLE(DeleteFramebuffers) -#define glDeleteLists MANGLE(DeleteLists) -#define glDeleteNamedStringARB MANGLE(DeleteNamedStringARB) -#define glDeleteNamesAMD MANGLE(DeleteNamesAMD) -#define glDeleteObjectARB MANGLE(DeleteObjectARB) -#define glDeleteOcclusionQueriesNV MANGLE(DeleteOcclusionQueriesNV) -#define glDeletePerfMonitorsAMD MANGLE(DeletePerfMonitorsAMD) -#define glDeleteProgram MANGLE(DeleteProgram) -#define glDeleteProgramPipelines MANGLE(DeleteProgramPipelines) -#define glDeleteProgramsARB MANGLE(DeleteProgramsARB) -#define glDeleteProgramsNV MANGLE(DeleteProgramsNV) -#define glDeleteQueriesARB MANGLE(DeleteQueriesARB) -#define glDeleteQueries MANGLE(DeleteQueries) -#define glDeleteRenderbuffersEXT MANGLE(DeleteRenderbuffersEXT) -#define glDeleteRenderbuffers MANGLE(DeleteRenderbuffers) -#define glDeleteSamplers MANGLE(DeleteSamplers) -#define glDeleteShader MANGLE(DeleteShader) -#define glDeleteSync MANGLE(DeleteSync) -#define glDeleteTexturesEXT MANGLE(DeleteTexturesEXT) -#define glDeleteTextures MANGLE(DeleteTextures) -#define glDeleteTransformFeedbacks MANGLE(DeleteTransformFeedbacks) -#define glDeleteTransformFeedbacksNV MANGLE(DeleteTransformFeedbacksNV) -#define glDeleteVertexArraysAPPLE MANGLE(DeleteVertexArraysAPPLE) -#define glDeleteVertexArrays MANGLE(DeleteVertexArrays) -#define glDeleteVertexShaderEXT MANGLE(DeleteVertexShaderEXT) -#define glDepthBoundsdNV MANGLE(DepthBoundsdNV) -#define glDepthBoundsEXT MANGLE(DepthBoundsEXT) -#define glDepthFunc MANGLE(DepthFunc) -#define glDepthMask MANGLE(DepthMask) -#define glDepthRangeArrayv MANGLE(DepthRangeArrayv) -#define glDepthRangedNV MANGLE(DepthRangedNV) -#define glDepthRangef MANGLE(DepthRangef) -#define glDepthRangeIndexed MANGLE(DepthRangeIndexed) -#define glDepthRange MANGLE(DepthRange) -#define glDetachObjectARB MANGLE(DetachObjectARB) -#define glDetachShader MANGLE(DetachShader) -#define glDetailTexFuncSGIS MANGLE(DetailTexFuncSGIS) -#define glDisableClientStateIndexedEXT MANGLE(DisableClientStateIndexedEXT) -#define glDisableClientState MANGLE(DisableClientState) -#define glDisablei MANGLE(Disablei) -#define glDisableIndexedEXT MANGLE(DisableIndexedEXT) -#define glDisable MANGLE(Disable) -#define glDisableVariantClientStateEXT MANGLE(DisableVariantClientStateEXT) -#define glDisableVertexAttribAPPLE MANGLE(DisableVertexAttribAPPLE) -#define glDisableVertexAttribArrayARB MANGLE(DisableVertexAttribArrayARB) -#define glDisableVertexAttribArray MANGLE(DisableVertexAttribArray) -#define glDrawArraysEXT MANGLE(DrawArraysEXT) -#define glDrawArraysIndirect MANGLE(DrawArraysIndirect) -#define glDrawArraysInstancedARB MANGLE(DrawArraysInstancedARB) -#define glDrawArraysInstancedEXT MANGLE(DrawArraysInstancedEXT) -#define glDrawArraysInstanced MANGLE(DrawArraysInstanced) -#define glDrawArrays MANGLE(DrawArrays) -#define glDrawBuffer MANGLE(DrawBuffer) -#define glDrawBuffersARB MANGLE(DrawBuffersARB) -#define glDrawBuffersATI MANGLE(DrawBuffersATI) -#define glDrawBuffers MANGLE(DrawBuffers) -#define glDrawElementArrayAPPLE MANGLE(DrawElementArrayAPPLE) -#define glDrawElementArrayATI MANGLE(DrawElementArrayATI) -#define glDrawElementsBaseVertex MANGLE(DrawElementsBaseVertex) -#define glDrawElementsIndirect MANGLE(DrawElementsIndirect) -#define glDrawElementsInstancedARB MANGLE(DrawElementsInstancedARB) -#define glDrawElementsInstancedBaseVertex MANGLE(DrawElementsInstancedBaseVertex) -#define glDrawElementsInstancedEXT MANGLE(DrawElementsInstancedEXT) -#define glDrawElementsInstanced MANGLE(DrawElementsInstanced) -#define glDrawElements MANGLE(DrawElements) -#define glDrawMeshArraysSUN MANGLE(DrawMeshArraysSUN) -#define glDrawPixels MANGLE(DrawPixels) -#define glDrawRangeElementArrayAPPLE MANGLE(DrawRangeElementArrayAPPLE) -#define glDrawRangeElementArrayATI MANGLE(DrawRangeElementArrayATI) -#define glDrawRangeElementsBaseVertex MANGLE(DrawRangeElementsBaseVertex) -#define glDrawRangeElementsEXT MANGLE(DrawRangeElementsEXT) -#define glDrawRangeElements MANGLE(DrawRangeElements) -#define glDrawTransformFeedback MANGLE(DrawTransformFeedback) -#define glDrawTransformFeedbackNV MANGLE(DrawTransformFeedbackNV) -#define glDrawTransformFeedbackStream MANGLE(DrawTransformFeedbackStream) -#define glEdgeFlagFormatNV MANGLE(EdgeFlagFormatNV) -#define glEdgeFlag MANGLE(EdgeFlag) -#define glEdgeFlagPointerEXT MANGLE(EdgeFlagPointerEXT) -#define glEdgeFlagPointerListIBM MANGLE(EdgeFlagPointerListIBM) -#define glEdgeFlagPointer MANGLE(EdgeFlagPointer) -#define glEdgeFlagv MANGLE(EdgeFlagv) -#define glEGLImageTargetRenderbufferStorageOES MANGLE(EGLImageTargetRenderbufferStorageOES) -#define glEGLImageTargetTexture2DOES MANGLE(EGLImageTargetTexture2DOES) -#define glElementPointerAPPLE MANGLE(ElementPointerAPPLE) -#define glElementPointerATI MANGLE(ElementPointerATI) -#define glEnableClientStateIndexedEXT MANGLE(EnableClientStateIndexedEXT) -#define glEnableClientState MANGLE(EnableClientState) -#define glEnablei MANGLE(Enablei) -#define glEnableIndexedEXT MANGLE(EnableIndexedEXT) -#define glEnable MANGLE(Enable) -#define glEnableVariantClientStateEXT MANGLE(EnableVariantClientStateEXT) -#define glEnableVertexAttribAPPLE MANGLE(EnableVertexAttribAPPLE) -#define glEnableVertexAttribArrayARB MANGLE(EnableVertexAttribArrayARB) -#define glEnableVertexAttribArray MANGLE(EnableVertexAttribArray) -#define glEndConditionalRender MANGLE(EndConditionalRender) -#define glEndConditionalRenderNV MANGLE(EndConditionalRenderNV) -#define glEndFragmentShaderATI MANGLE(EndFragmentShaderATI) -#define glEndList MANGLE(EndList) -#define glEnd MANGLE(End) -#define glEndOcclusionQueryNV MANGLE(EndOcclusionQueryNV) -#define glEndPerfMonitorAMD MANGLE(EndPerfMonitorAMD) -#define glEndQueryARB MANGLE(EndQueryARB) -#define glEndQueryIndexed MANGLE(EndQueryIndexed) -#define glEndQuery MANGLE(EndQuery) -#define glEndTransformFeedbackEXT MANGLE(EndTransformFeedbackEXT) -#define glEndTransformFeedback MANGLE(EndTransformFeedback) -#define glEndTransformFeedbackNV MANGLE(EndTransformFeedbackNV) -#define glEndVertexShaderEXT MANGLE(EndVertexShaderEXT) -#define glEndVideoCaptureNV MANGLE(EndVideoCaptureNV) -#define glEvalCoord1d MANGLE(EvalCoord1d) -#define glEvalCoord1dv MANGLE(EvalCoord1dv) -#define glEvalCoord1f MANGLE(EvalCoord1f) -#define glEvalCoord1fv MANGLE(EvalCoord1fv) -#define glEvalCoord2d MANGLE(EvalCoord2d) -#define glEvalCoord2dv MANGLE(EvalCoord2dv) -#define glEvalCoord2f MANGLE(EvalCoord2f) -#define glEvalCoord2fv MANGLE(EvalCoord2fv) -#define glEvalMapsNV MANGLE(EvalMapsNV) -#define glEvalMesh1 MANGLE(EvalMesh1) -#define glEvalMesh2 MANGLE(EvalMesh2) -#define glEvalPoint1 MANGLE(EvalPoint1) -#define glEvalPoint2 MANGLE(EvalPoint2) -#define glExecuteProgramNV MANGLE(ExecuteProgramNV) -#define glExtractComponentEXT MANGLE(ExtractComponentEXT) -#define glFeedbackBuffer MANGLE(FeedbackBuffer) -#define glFenceSync MANGLE(FenceSync) -#define glFinalCombinerInputNV MANGLE(FinalCombinerInputNV) -#define glFinishAsyncSGIX MANGLE(FinishAsyncSGIX) -#define glFinishFenceAPPLE MANGLE(FinishFenceAPPLE) -#define glFinishFenceNV MANGLE(FinishFenceNV) -#define glFinish MANGLE(Finish) -#define glFinishObjectAPPLE MANGLE(FinishObjectAPPLE) -#define glFinishTextureSUNX MANGLE(FinishTextureSUNX) -#define glFlush MANGLE(Flush) -#define glFlushMappedBufferRangeAPPLE MANGLE(FlushMappedBufferRangeAPPLE) -#define glFlushMappedBufferRange MANGLE(FlushMappedBufferRange) -#define glFlushMappedNamedBufferRangeEXT MANGLE(FlushMappedNamedBufferRangeEXT) -#define glFlushPixelDataRangeNV MANGLE(FlushPixelDataRangeNV) -#define glFlushRasterSGIX MANGLE(FlushRasterSGIX) -#define glFlushVertexArrayRangeAPPLE MANGLE(FlushVertexArrayRangeAPPLE) -#define glFlushVertexArrayRangeNV MANGLE(FlushVertexArrayRangeNV) -#define glFogCoorddEXT MANGLE(FogCoorddEXT) -#define glFogCoordd MANGLE(FogCoordd) -#define glFogCoorddvEXT MANGLE(FogCoorddvEXT) -#define glFogCoorddv MANGLE(FogCoorddv) -#define glFogCoordfEXT MANGLE(FogCoordfEXT) -#define glFogCoordf MANGLE(FogCoordf) -#define glFogCoordFormatNV MANGLE(FogCoordFormatNV) -#define glFogCoordfvEXT MANGLE(FogCoordfvEXT) -#define glFogCoordfv MANGLE(FogCoordfv) -#define glFogCoordhNV MANGLE(FogCoordhNV) -#define glFogCoordhvNV MANGLE(FogCoordhvNV) -#define glFogCoordPointerEXT MANGLE(FogCoordPointerEXT) -#define glFogCoordPointerListIBM MANGLE(FogCoordPointerListIBM) -#define glFogCoordPointer MANGLE(FogCoordPointer) -#define glFogf MANGLE(Fogf) -#define glFogFuncSGIS MANGLE(FogFuncSGIS) -#define glFogfv MANGLE(Fogfv) -#define glFogi MANGLE(Fogi) -#define glFogiv MANGLE(Fogiv) -#define glFragmentColorMaterialSGIX MANGLE(FragmentColorMaterialSGIX) -#define glFragmentLightfSGIX MANGLE(FragmentLightfSGIX) -#define glFragmentLightfvSGIX MANGLE(FragmentLightfvSGIX) -#define glFragmentLightiSGIX MANGLE(FragmentLightiSGIX) -#define glFragmentLightivSGIX MANGLE(FragmentLightivSGIX) -#define glFragmentLightModelfSGIX MANGLE(FragmentLightModelfSGIX) -#define glFragmentLightModelfvSGIX MANGLE(FragmentLightModelfvSGIX) -#define glFragmentLightModeliSGIX MANGLE(FragmentLightModeliSGIX) -#define glFragmentLightModelivSGIX MANGLE(FragmentLightModelivSGIX) -#define glFragmentMaterialfSGIX MANGLE(FragmentMaterialfSGIX) -#define glFragmentMaterialfvSGIX MANGLE(FragmentMaterialfvSGIX) -#define glFragmentMaterialiSGIX MANGLE(FragmentMaterialiSGIX) -#define glFragmentMaterialivSGIX MANGLE(FragmentMaterialivSGIX) -#define glFramebufferDrawBufferEXT MANGLE(FramebufferDrawBufferEXT) -#define glFramebufferDrawBuffersEXT MANGLE(FramebufferDrawBuffersEXT) -#define glFramebufferReadBufferEXT MANGLE(FramebufferReadBufferEXT) -#define glFramebufferRenderbufferEXT MANGLE(FramebufferRenderbufferEXT) -#define glFramebufferRenderbuffer MANGLE(FramebufferRenderbuffer) -#define glFramebufferTexture1DEXT MANGLE(FramebufferTexture1DEXT) -#define glFramebufferTexture1D MANGLE(FramebufferTexture1D) -#define glFramebufferTexture2DEXT MANGLE(FramebufferTexture2DEXT) -#define glFramebufferTexture2D MANGLE(FramebufferTexture2D) -#define glFramebufferTexture3DEXT MANGLE(FramebufferTexture3DEXT) -#define glFramebufferTexture3D MANGLE(FramebufferTexture3D) -#define glFramebufferTextureARB MANGLE(FramebufferTextureARB) -#define glFramebufferTextureEXT MANGLE(FramebufferTextureEXT) -#define glFramebufferTextureFaceARB MANGLE(FramebufferTextureFaceARB) -#define glFramebufferTextureFaceEXT MANGLE(FramebufferTextureFaceEXT) -#define glFramebufferTextureLayerARB MANGLE(FramebufferTextureLayerARB) -#define glFramebufferTextureLayerEXT MANGLE(FramebufferTextureLayerEXT) -#define glFramebufferTextureLayer MANGLE(FramebufferTextureLayer) -#define glFramebufferTexture MANGLE(FramebufferTexture) -#define glFrameTerminatorGREMEDY MANGLE(FrameTerminatorGREMEDY) -#define glFrameZoomSGIX MANGLE(FrameZoomSGIX) -#define glFreeObjectBufferATI MANGLE(FreeObjectBufferATI) -#define glFrontFace MANGLE(FrontFace) -#define glFrustum MANGLE(Frustum) -#define glGenAsyncMarkersSGIX MANGLE(GenAsyncMarkersSGIX) -#define glGenBuffersARB MANGLE(GenBuffersARB) -#define glGenBuffers MANGLE(GenBuffers) -#define glGenerateMipmapEXT MANGLE(GenerateMipmapEXT) -#define glGenerateMipmap MANGLE(GenerateMipmap) -#define glGenerateMultiTexMipmapEXT MANGLE(GenerateMultiTexMipmapEXT) -#define glGenerateTextureMipmapEXT MANGLE(GenerateTextureMipmapEXT) -#define glGenFencesAPPLE MANGLE(GenFencesAPPLE) -#define glGenFencesNV MANGLE(GenFencesNV) -#define glGenFragmentShadersATI MANGLE(GenFragmentShadersATI) -#define glGenFramebuffersEXT MANGLE(GenFramebuffersEXT) -#define glGenFramebuffers MANGLE(GenFramebuffers) -#define glGenLists MANGLE(GenLists) -#define glGenNamesAMD MANGLE(GenNamesAMD) -#define glGenOcclusionQueriesNV MANGLE(GenOcclusionQueriesNV) -#define glGenPerfMonitorsAMD MANGLE(GenPerfMonitorsAMD) -#define glGenProgramPipelines MANGLE(GenProgramPipelines) -#define glGenProgramsARB MANGLE(GenProgramsARB) -#define glGenProgramsNV MANGLE(GenProgramsNV) -#define glGenQueriesARB MANGLE(GenQueriesARB) -#define glGenQueries MANGLE(GenQueries) -#define glGenRenderbuffersEXT MANGLE(GenRenderbuffersEXT) -#define glGenRenderbuffers MANGLE(GenRenderbuffers) -#define glGenSamplers MANGLE(GenSamplers) -#define glGenSymbolsEXT MANGLE(GenSymbolsEXT) -#define glGenTexturesEXT MANGLE(GenTexturesEXT) -#define glGenTextures MANGLE(GenTextures) -#define glGenTransformFeedbacks MANGLE(GenTransformFeedbacks) -#define glGenTransformFeedbacksNV MANGLE(GenTransformFeedbacksNV) -#define glGenVertexArraysAPPLE MANGLE(GenVertexArraysAPPLE) -#define glGenVertexArrays MANGLE(GenVertexArrays) -#define glGenVertexShadersEXT MANGLE(GenVertexShadersEXT) -#define glGetActiveAttribARB MANGLE(GetActiveAttribARB) -#define glGetActiveAttrib MANGLE(GetActiveAttrib) -#define glGetActiveSubroutineName MANGLE(GetActiveSubroutineName) -#define glGetActiveSubroutineUniformiv MANGLE(GetActiveSubroutineUniformiv) -#define glGetActiveSubroutineUniformName MANGLE(GetActiveSubroutineUniformName) -#define glGetActiveUniformARB MANGLE(GetActiveUniformARB) -#define glGetActiveUniformBlockiv MANGLE(GetActiveUniformBlockiv) -#define glGetActiveUniformBlockName MANGLE(GetActiveUniformBlockName) -#define glGetActiveUniform MANGLE(GetActiveUniform) -#define glGetActiveUniformName MANGLE(GetActiveUniformName) -#define glGetActiveUniformsiv MANGLE(GetActiveUniformsiv) -#define glGetActiveVaryingNV MANGLE(GetActiveVaryingNV) -#define glGetArrayObjectfvATI MANGLE(GetArrayObjectfvATI) -#define glGetArrayObjectivATI MANGLE(GetArrayObjectivATI) -#define glGetAttachedObjectsARB MANGLE(GetAttachedObjectsARB) -#define glGetAttachedShaders MANGLE(GetAttachedShaders) -#define glGetAttribLocationARB MANGLE(GetAttribLocationARB) -#define glGetAttribLocation MANGLE(GetAttribLocation) -#define glGetBooleanIndexedvEXT MANGLE(GetBooleanIndexedvEXT) -#define glGetBooleani_v MANGLE(GetBooleani_v) -#define glGetBooleanv MANGLE(GetBooleanv) -#define glGetBufferParameteri64v MANGLE(GetBufferParameteri64v) -#define glGetBufferParameterivARB MANGLE(GetBufferParameterivARB) -#define glGetBufferParameteriv MANGLE(GetBufferParameteriv) -#define glGetBufferParameterui64vNV MANGLE(GetBufferParameterui64vNV) -#define glGetBufferPointervARB MANGLE(GetBufferPointervARB) -#define glGetBufferPointerv MANGLE(GetBufferPointerv) -#define glGetBufferSubDataARB MANGLE(GetBufferSubDataARB) -#define glGetBufferSubData MANGLE(GetBufferSubData) -#define glGetClipPlane MANGLE(GetClipPlane) -#define glGetColorTableEXT MANGLE(GetColorTableEXT) -#define glGetColorTable MANGLE(GetColorTable) -#define glGetColorTableParameterfvEXT MANGLE(GetColorTableParameterfvEXT) -#define glGetColorTableParameterfv MANGLE(GetColorTableParameterfv) -#define glGetColorTableParameterfvSGI MANGLE(GetColorTableParameterfvSGI) -#define glGetColorTableParameterivEXT MANGLE(GetColorTableParameterivEXT) -#define glGetColorTableParameteriv MANGLE(GetColorTableParameteriv) -#define glGetColorTableParameterivSGI MANGLE(GetColorTableParameterivSGI) -#define glGetColorTableSGI MANGLE(GetColorTableSGI) -#define glGetCombinerInputParameterfvNV MANGLE(GetCombinerInputParameterfvNV) -#define glGetCombinerInputParameterivNV MANGLE(GetCombinerInputParameterivNV) -#define glGetCombinerOutputParameterfvNV MANGLE(GetCombinerOutputParameterfvNV) -#define glGetCombinerOutputParameterivNV MANGLE(GetCombinerOutputParameterivNV) -#define glGetCombinerStageParameterfvNV MANGLE(GetCombinerStageParameterfvNV) -#define glGetCompressedMultiTexImageEXT MANGLE(GetCompressedMultiTexImageEXT) -#define glGetCompressedTexImageARB MANGLE(GetCompressedTexImageARB) -#define glGetCompressedTexImage MANGLE(GetCompressedTexImage) -#define glGetCompressedTextureImageEXT MANGLE(GetCompressedTextureImageEXT) -#define glGetConvolutionFilterEXT MANGLE(GetConvolutionFilterEXT) -#define glGetConvolutionFilter MANGLE(GetConvolutionFilter) -#define glGetConvolutionParameterfvEXT MANGLE(GetConvolutionParameterfvEXT) -#define glGetConvolutionParameterfv MANGLE(GetConvolutionParameterfv) -#define glGetConvolutionParameterivEXT MANGLE(GetConvolutionParameterivEXT) -#define glGetConvolutionParameteriv MANGLE(GetConvolutionParameteriv) -#define glGetDebugLogLengthMESA MANGLE(GetDebugLogLengthMESA) -#define glGetDebugLogMESA MANGLE(GetDebugLogMESA) -#define glGetDebugMessageLogAMD MANGLE(GetDebugMessageLogAMD) -#define glGetDebugMessageLogARB MANGLE(GetDebugMessageLogARB) -#define glGetDetailTexFuncSGIS MANGLE(GetDetailTexFuncSGIS) -#define glGetDoubleIndexedvEXT MANGLE(GetDoubleIndexedvEXT) -#define glGetDoublei_v MANGLE(GetDoublei_v) -#define glGetDoublev MANGLE(GetDoublev) -#define glGetError MANGLE(GetError) -#define glGetFenceivNV MANGLE(GetFenceivNV) -#define glGetFinalCombinerInputParameterfvNV MANGLE(GetFinalCombinerInputParameterfvNV) -#define glGetFinalCombinerInputParameterivNV MANGLE(GetFinalCombinerInputParameterivNV) -#define glGetFloatIndexedvEXT MANGLE(GetFloatIndexedvEXT) -#define glGetFloati_v MANGLE(GetFloati_v) -#define glGetFloatv MANGLE(GetFloatv) -#define glGetFogFuncSGIS MANGLE(GetFogFuncSGIS) -#define glGetFragDataIndex MANGLE(GetFragDataIndex) -#define glGetFragDataLocationEXT MANGLE(GetFragDataLocationEXT) -#define glGetFragDataLocation MANGLE(GetFragDataLocation) -#define glGetFragmentLightfvSGIX MANGLE(GetFragmentLightfvSGIX) -#define glGetFragmentLightivSGIX MANGLE(GetFragmentLightivSGIX) -#define glGetFragmentMaterialfvSGIX MANGLE(GetFragmentMaterialfvSGIX) -#define glGetFragmentMaterialivSGIX MANGLE(GetFragmentMaterialivSGIX) -#define glGetFramebufferAttachmentParameterivEXT MANGLE(GetFramebufferAttachmentParameterivEXT) -#define glGetFramebufferAttachmentParameteriv MANGLE(GetFramebufferAttachmentParameteriv) -#define glGetFramebufferParameterivEXT MANGLE(GetFramebufferParameterivEXT) -#define glGetGraphicsResetStatusARB MANGLE(GetGraphicsResetStatusARB) -#define glGetHandleARB MANGLE(GetHandleARB) -#define glGetHistogramEXT MANGLE(GetHistogramEXT) -#define glGetHistogram MANGLE(GetHistogram) -#define glGetHistogramParameterfvEXT MANGLE(GetHistogramParameterfvEXT) -#define glGetHistogramParameterfv MANGLE(GetHistogramParameterfv) -#define glGetHistogramParameterivEXT MANGLE(GetHistogramParameterivEXT) -#define glGetHistogramParameteriv MANGLE(GetHistogramParameteriv) -#define glGetImageTransformParameterfvHP MANGLE(GetImageTransformParameterfvHP) -#define glGetImageTransformParameterivHP MANGLE(GetImageTransformParameterivHP) -#define glGetInfoLogARB MANGLE(GetInfoLogARB) -#define glGetInstrumentsSGIX MANGLE(GetInstrumentsSGIX) -#define glGetInteger64i_v MANGLE(GetInteger64i_v) -#define glGetInteger64v MANGLE(GetInteger64v) -#define glGetIntegerIndexedvEXT MANGLE(GetIntegerIndexedvEXT) -#define glGetIntegeri_v MANGLE(GetIntegeri_v) -#define glGetIntegerui64i_vNV MANGLE(GetIntegerui64i_vNV) -#define glGetIntegerui64vNV MANGLE(GetIntegerui64vNV) -#define glGetIntegerv MANGLE(GetIntegerv) -#define glGetInvariantBooleanvEXT MANGLE(GetInvariantBooleanvEXT) -#define glGetInvariantFloatvEXT MANGLE(GetInvariantFloatvEXT) -#define glGetInvariantIntegervEXT MANGLE(GetInvariantIntegervEXT) -#define glGetLightfv MANGLE(GetLightfv) -#define glGetLightiv MANGLE(GetLightiv) -#define glGetListParameterfvSGIX MANGLE(GetListParameterfvSGIX) -#define glGetListParameterivSGIX MANGLE(GetListParameterivSGIX) -#define glGetLocalConstantBooleanvEXT MANGLE(GetLocalConstantBooleanvEXT) -#define glGetLocalConstantFloatvEXT MANGLE(GetLocalConstantFloatvEXT) -#define glGetLocalConstantIntegervEXT MANGLE(GetLocalConstantIntegervEXT) -#define glGetMapAttribParameterfvNV MANGLE(GetMapAttribParameterfvNV) -#define glGetMapAttribParameterivNV MANGLE(GetMapAttribParameterivNV) -#define glGetMapControlPointsNV MANGLE(GetMapControlPointsNV) -#define glGetMapdv MANGLE(GetMapdv) -#define glGetMapfv MANGLE(GetMapfv) -#define glGetMapiv MANGLE(GetMapiv) -#define glGetMapParameterfvNV MANGLE(GetMapParameterfvNV) -#define glGetMapParameterivNV MANGLE(GetMapParameterivNV) -#define glGetMaterialfv MANGLE(GetMaterialfv) -#define glGetMaterialiv MANGLE(GetMaterialiv) -#define glGetMinmaxEXT MANGLE(GetMinmaxEXT) -#define glGetMinmax MANGLE(GetMinmax) -#define glGetMinmaxParameterfvEXT MANGLE(GetMinmaxParameterfvEXT) -#define glGetMinmaxParameterfv MANGLE(GetMinmaxParameterfv) -#define glGetMinmaxParameterivEXT MANGLE(GetMinmaxParameterivEXT) -#define glGetMinmaxParameteriv MANGLE(GetMinmaxParameteriv) -#define glGetMultisamplefv MANGLE(GetMultisamplefv) -#define glGetMultisamplefvNV MANGLE(GetMultisamplefvNV) -#define glGetMultiTexEnvfvEXT MANGLE(GetMultiTexEnvfvEXT) -#define glGetMultiTexEnvivEXT MANGLE(GetMultiTexEnvivEXT) -#define glGetMultiTexGendvEXT MANGLE(GetMultiTexGendvEXT) -#define glGetMultiTexGenfvEXT MANGLE(GetMultiTexGenfvEXT) -#define glGetMultiTexGenivEXT MANGLE(GetMultiTexGenivEXT) -#define glGetMultiTexImageEXT MANGLE(GetMultiTexImageEXT) -#define glGetMultiTexLevelParameterfvEXT MANGLE(GetMultiTexLevelParameterfvEXT) -#define glGetMultiTexLevelParameterivEXT MANGLE(GetMultiTexLevelParameterivEXT) -#define glGetMultiTexParameterfvEXT MANGLE(GetMultiTexParameterfvEXT) -#define glGetMultiTexParameterIivEXT MANGLE(GetMultiTexParameterIivEXT) -#define glGetMultiTexParameterIuivEXT MANGLE(GetMultiTexParameterIuivEXT) -#define glGetMultiTexParameterivEXT MANGLE(GetMultiTexParameterivEXT) -#define glGetNamedBufferParameterivEXT MANGLE(GetNamedBufferParameterivEXT) -#define glGetNamedBufferParameterui64vNV MANGLE(GetNamedBufferParameterui64vNV) -#define glGetNamedBufferPointervEXT MANGLE(GetNamedBufferPointervEXT) -#define glGetNamedBufferSubDataEXT MANGLE(GetNamedBufferSubDataEXT) -#define glGetNamedFramebufferAttachmentParameterivEXT MANGLE(GetNamedFramebufferAttachmentParameterivEXT) -#define glGetNamedProgramivEXT MANGLE(GetNamedProgramivEXT) -#define glGetNamedProgramLocalParameterdvEXT MANGLE(GetNamedProgramLocalParameterdvEXT) -#define glGetNamedProgramLocalParameterfvEXT MANGLE(GetNamedProgramLocalParameterfvEXT) -#define glGetNamedProgramLocalParameterIivEXT MANGLE(GetNamedProgramLocalParameterIivEXT) -#define glGetNamedProgramLocalParameterIuivEXT MANGLE(GetNamedProgramLocalParameterIuivEXT) -#define glGetNamedProgramStringEXT MANGLE(GetNamedProgramStringEXT) -#define glGetNamedRenderbufferParameterivEXT MANGLE(GetNamedRenderbufferParameterivEXT) -#define glGetNamedStringARB MANGLE(GetNamedStringARB) -#define glGetNamedStringivARB MANGLE(GetNamedStringivARB) -#define glGetnColorTableARB MANGLE(GetnColorTableARB) -#define glGetnCompressedTexImageARB MANGLE(GetnCompressedTexImageARB) -#define glGetnConvolutionFilterARB MANGLE(GetnConvolutionFilterARB) -#define glGetnHistogramARB MANGLE(GetnHistogramARB) -#define glGetnMapdvARB MANGLE(GetnMapdvARB) -#define glGetnMapfvARB MANGLE(GetnMapfvARB) -#define glGetnMapivARB MANGLE(GetnMapivARB) -#define glGetnMinmaxARB MANGLE(GetnMinmaxARB) -#define glGetnPixelMapfvARB MANGLE(GetnPixelMapfvARB) -#define glGetnPixelMapuivARB MANGLE(GetnPixelMapuivARB) -#define glGetnPixelMapusvARB MANGLE(GetnPixelMapusvARB) -#define glGetnPolygonStippleARB MANGLE(GetnPolygonStippleARB) -#define glGetnSeparableFilterARB MANGLE(GetnSeparableFilterARB) -#define glGetnTexImageARB MANGLE(GetnTexImageARB) -#define glGetnUniformdvARB MANGLE(GetnUniformdvARB) -#define glGetnUniformfvARB MANGLE(GetnUniformfvARB) -#define glGetnUniformivARB MANGLE(GetnUniformivARB) -#define glGetnUniformuivARB MANGLE(GetnUniformuivARB) -#define glGetObjectBufferfvATI MANGLE(GetObjectBufferfvATI) -#define glGetObjectBufferivATI MANGLE(GetObjectBufferivATI) -#define glGetObjectParameterfvARB MANGLE(GetObjectParameterfvARB) -#define glGetObjectParameterivAPPLE MANGLE(GetObjectParameterivAPPLE) -#define glGetObjectParameterivARB MANGLE(GetObjectParameterivARB) -#define glGetOcclusionQueryivNV MANGLE(GetOcclusionQueryivNV) -#define glGetOcclusionQueryuivNV MANGLE(GetOcclusionQueryuivNV) -#define glGetPerfMonitorCounterDataAMD MANGLE(GetPerfMonitorCounterDataAMD) -#define glGetPerfMonitorCounterInfoAMD MANGLE(GetPerfMonitorCounterInfoAMD) -#define glGetPerfMonitorCountersAMD MANGLE(GetPerfMonitorCountersAMD) -#define glGetPerfMonitorCounterStringAMD MANGLE(GetPerfMonitorCounterStringAMD) -#define glGetPerfMonitorGroupsAMD MANGLE(GetPerfMonitorGroupsAMD) -#define glGetPerfMonitorGroupStringAMD MANGLE(GetPerfMonitorGroupStringAMD) -#define glGetPixelMapfv MANGLE(GetPixelMapfv) -#define glGetPixelMapuiv MANGLE(GetPixelMapuiv) -#define glGetPixelMapusv MANGLE(GetPixelMapusv) -#define glGetPixelTexGenParameterfvSGIS MANGLE(GetPixelTexGenParameterfvSGIS) -#define glGetPixelTexGenParameterivSGIS MANGLE(GetPixelTexGenParameterivSGIS) -#define glGetPointerIndexedvEXT MANGLE(GetPointerIndexedvEXT) -#define glGetPointervEXT MANGLE(GetPointervEXT) -#define glGetPointerv MANGLE(GetPointerv) -#define glGetPolygonStipple MANGLE(GetPolygonStipple) -#define glGetProgramBinary MANGLE(GetProgramBinary) -#define glGetProgramEnvParameterdvARB MANGLE(GetProgramEnvParameterdvARB) -#define glGetProgramEnvParameterfvARB MANGLE(GetProgramEnvParameterfvARB) -#define glGetProgramEnvParameterIivNV MANGLE(GetProgramEnvParameterIivNV) -#define glGetProgramEnvParameterIuivNV MANGLE(GetProgramEnvParameterIuivNV) -#define glGetProgramInfoLog MANGLE(GetProgramInfoLog) -#define glGetProgramivARB MANGLE(GetProgramivARB) -#define glGetProgramiv MANGLE(GetProgramiv) -#define glGetProgramivNV MANGLE(GetProgramivNV) -#define glGetProgramLocalParameterdvARB MANGLE(GetProgramLocalParameterdvARB) -#define glGetProgramLocalParameterfvARB MANGLE(GetProgramLocalParameterfvARB) -#define glGetProgramLocalParameterIivNV MANGLE(GetProgramLocalParameterIivNV) -#define glGetProgramLocalParameterIuivNV MANGLE(GetProgramLocalParameterIuivNV) -#define glGetProgramNamedParameterdvNV MANGLE(GetProgramNamedParameterdvNV) -#define glGetProgramNamedParameterfvNV MANGLE(GetProgramNamedParameterfvNV) -#define glGetProgramParameterdvNV MANGLE(GetProgramParameterdvNV) -#define glGetProgramParameterfvNV MANGLE(GetProgramParameterfvNV) -#define glGetProgramPipelineInfoLog MANGLE(GetProgramPipelineInfoLog) -#define glGetProgramPipelineiv MANGLE(GetProgramPipelineiv) -#define glGetProgramRegisterfvMESA MANGLE(GetProgramRegisterfvMESA) -#define glGetProgramStageiv MANGLE(GetProgramStageiv) -#define glGetProgramStringARB MANGLE(GetProgramStringARB) -#define glGetProgramStringNV MANGLE(GetProgramStringNV) -#define glGetProgramSubroutineParameteruivNV MANGLE(GetProgramSubroutineParameteruivNV) -#define glGetQueryIndexediv MANGLE(GetQueryIndexediv) -#define glGetQueryivARB MANGLE(GetQueryivARB) -#define glGetQueryiv MANGLE(GetQueryiv) -#define glGetQueryObjecti64vEXT MANGLE(GetQueryObjecti64vEXT) -#define glGetQueryObjecti64v MANGLE(GetQueryObjecti64v) -#define glGetQueryObjectivARB MANGLE(GetQueryObjectivARB) -#define glGetQueryObjectiv MANGLE(GetQueryObjectiv) -#define glGetQueryObjectui64vEXT MANGLE(GetQueryObjectui64vEXT) -#define glGetQueryObjectui64v MANGLE(GetQueryObjectui64v) -#define glGetQueryObjectuivARB MANGLE(GetQueryObjectuivARB) -#define glGetQueryObjectuiv MANGLE(GetQueryObjectuiv) -#define glGetRenderbufferParameterivEXT MANGLE(GetRenderbufferParameterivEXT) -#define glGetRenderbufferParameteriv MANGLE(GetRenderbufferParameteriv) -#define glGetSamplerParameterfv MANGLE(GetSamplerParameterfv) -#define glGetSamplerParameterIiv MANGLE(GetSamplerParameterIiv) -#define glGetSamplerParameterIuiv MANGLE(GetSamplerParameterIuiv) -#define glGetSamplerParameteriv MANGLE(GetSamplerParameteriv) -#define glGetSeparableFilterEXT MANGLE(GetSeparableFilterEXT) -#define glGetSeparableFilter MANGLE(GetSeparableFilter) -#define glGetShaderInfoLog MANGLE(GetShaderInfoLog) -#define glGetShaderiv MANGLE(GetShaderiv) -#define glGetShaderPrecisionFormat MANGLE(GetShaderPrecisionFormat) -#define glGetShaderSourceARB MANGLE(GetShaderSourceARB) -#define glGetShaderSource MANGLE(GetShaderSource) -#define glGetSharpenTexFuncSGIS MANGLE(GetSharpenTexFuncSGIS) -#define glGetStringi MANGLE(GetStringi) -#define glGetString MANGLE(GetString) -#define glGetSubroutineIndex MANGLE(GetSubroutineIndex) -#define glGetSubroutineUniformLocation MANGLE(GetSubroutineUniformLocation) -#define glGetSynciv MANGLE(GetSynciv) -#define glGetTexBumpParameterfvATI MANGLE(GetTexBumpParameterfvATI) -#define glGetTexBumpParameterivATI MANGLE(GetTexBumpParameterivATI) -#define glGetTexEnvfv MANGLE(GetTexEnvfv) -#define glGetTexEnviv MANGLE(GetTexEnviv) -#define glGetTexFilterFuncSGIS MANGLE(GetTexFilterFuncSGIS) -#define glGetTexGendv MANGLE(GetTexGendv) -#define glGetTexGenfv MANGLE(GetTexGenfv) -#define glGetTexGeniv MANGLE(GetTexGeniv) -#define glGetTexImage MANGLE(GetTexImage) -#define glGetTexLevelParameterfv MANGLE(GetTexLevelParameterfv) -#define glGetTexLevelParameteriv MANGLE(GetTexLevelParameteriv) -#define glGetTexParameterfv MANGLE(GetTexParameterfv) -#define glGetTexParameterIivEXT MANGLE(GetTexParameterIivEXT) -#define glGetTexParameterIiv MANGLE(GetTexParameterIiv) -#define glGetTexParameterIuivEXT MANGLE(GetTexParameterIuivEXT) -#define glGetTexParameterIuiv MANGLE(GetTexParameterIuiv) -#define glGetTexParameteriv MANGLE(GetTexParameteriv) -#define glGetTexParameterPointervAPPLE MANGLE(GetTexParameterPointervAPPLE) -#define glGetTextureImageEXT MANGLE(GetTextureImageEXT) -#define glGetTextureLevelParameterfvEXT MANGLE(GetTextureLevelParameterfvEXT) -#define glGetTextureLevelParameterivEXT MANGLE(GetTextureLevelParameterivEXT) -#define glGetTextureParameterfvEXT MANGLE(GetTextureParameterfvEXT) -#define glGetTextureParameterIivEXT MANGLE(GetTextureParameterIivEXT) -#define glGetTextureParameterIuivEXT MANGLE(GetTextureParameterIuivEXT) -#define glGetTextureParameterivEXT MANGLE(GetTextureParameterivEXT) -#define glGetTrackMatrixivNV MANGLE(GetTrackMatrixivNV) -#define glGetTransformFeedbackVaryingEXT MANGLE(GetTransformFeedbackVaryingEXT) -#define glGetTransformFeedbackVarying MANGLE(GetTransformFeedbackVarying) -#define glGetTransformFeedbackVaryingNV MANGLE(GetTransformFeedbackVaryingNV) -#define glGetUniformBlockIndex MANGLE(GetUniformBlockIndex) -#define glGetUniformBufferSizeEXT MANGLE(GetUniformBufferSizeEXT) -#define glGetUniformdv MANGLE(GetUniformdv) -#define glGetUniformfvARB MANGLE(GetUniformfvARB) -#define glGetUniformfv MANGLE(GetUniformfv) -#define glGetUniformi64vNV MANGLE(GetUniformi64vNV) -#define glGetUniformIndices MANGLE(GetUniformIndices) -#define glGetUniformivARB MANGLE(GetUniformivARB) -#define glGetUniformiv MANGLE(GetUniformiv) -#define glGetUniformLocationARB MANGLE(GetUniformLocationARB) -#define glGetUniformLocation MANGLE(GetUniformLocation) -#define glGetUniformOffsetEXT MANGLE(GetUniformOffsetEXT) -#define glGetUniformSubroutineuiv MANGLE(GetUniformSubroutineuiv) -#define glGetUniformui64vNV MANGLE(GetUniformui64vNV) -#define glGetUniformuivEXT MANGLE(GetUniformuivEXT) -#define glGetUniformuiv MANGLE(GetUniformuiv) -#define glGetVariantArrayObjectfvATI MANGLE(GetVariantArrayObjectfvATI) -#define glGetVariantArrayObjectivATI MANGLE(GetVariantArrayObjectivATI) -#define glGetVariantBooleanvEXT MANGLE(GetVariantBooleanvEXT) -#define glGetVariantFloatvEXT MANGLE(GetVariantFloatvEXT) -#define glGetVariantIntegervEXT MANGLE(GetVariantIntegervEXT) -#define glGetVariantPointervEXT MANGLE(GetVariantPointervEXT) -#define glGetVaryingLocationNV MANGLE(GetVaryingLocationNV) -#define glGetVertexAttribArrayObjectfvATI MANGLE(GetVertexAttribArrayObjectfvATI) -#define glGetVertexAttribArrayObjectivATI MANGLE(GetVertexAttribArrayObjectivATI) -#define glGetVertexAttribdvARB MANGLE(GetVertexAttribdvARB) -#define glGetVertexAttribdv MANGLE(GetVertexAttribdv) -#define glGetVertexAttribdvNV MANGLE(GetVertexAttribdvNV) -#define glGetVertexAttribfvARB MANGLE(GetVertexAttribfvARB) -#define glGetVertexAttribfv MANGLE(GetVertexAttribfv) -#define glGetVertexAttribfvNV MANGLE(GetVertexAttribfvNV) -#define glGetVertexAttribIivEXT MANGLE(GetVertexAttribIivEXT) -#define glGetVertexAttribIiv MANGLE(GetVertexAttribIiv) -#define glGetVertexAttribIuivEXT MANGLE(GetVertexAttribIuivEXT) -#define glGetVertexAttribIuiv MANGLE(GetVertexAttribIuiv) -#define glGetVertexAttribivARB MANGLE(GetVertexAttribivARB) -#define glGetVertexAttribiv MANGLE(GetVertexAttribiv) -#define glGetVertexAttribivNV MANGLE(GetVertexAttribivNV) -#define glGetVertexAttribLdvEXT MANGLE(GetVertexAttribLdvEXT) -#define glGetVertexAttribLdv MANGLE(GetVertexAttribLdv) -#define glGetVertexAttribLi64vNV MANGLE(GetVertexAttribLi64vNV) -#define glGetVertexAttribLui64vNV MANGLE(GetVertexAttribLui64vNV) -#define glGetVertexAttribPointervARB MANGLE(GetVertexAttribPointervARB) -#define glGetVertexAttribPointerv MANGLE(GetVertexAttribPointerv) -#define glGetVertexAttribPointervNV MANGLE(GetVertexAttribPointervNV) -#define glGetVideoCaptureivNV MANGLE(GetVideoCaptureivNV) -#define glGetVideoCaptureStreamdvNV MANGLE(GetVideoCaptureStreamdvNV) -#define glGetVideoCaptureStreamfvNV MANGLE(GetVideoCaptureStreamfvNV) -#define glGetVideoCaptureStreamivNV MANGLE(GetVideoCaptureStreamivNV) -#define glGetVideoi64vNV MANGLE(GetVideoi64vNV) -#define glGetVideoivNV MANGLE(GetVideoivNV) -#define glGetVideoui64vNV MANGLE(GetVideoui64vNV) -#define glGetVideouivNV MANGLE(GetVideouivNV) -#define glGlobalAlphaFactorbSUN MANGLE(GlobalAlphaFactorbSUN) -#define glGlobalAlphaFactordSUN MANGLE(GlobalAlphaFactordSUN) -#define glGlobalAlphaFactorfSUN MANGLE(GlobalAlphaFactorfSUN) -#define glGlobalAlphaFactoriSUN MANGLE(GlobalAlphaFactoriSUN) -#define glGlobalAlphaFactorsSUN MANGLE(GlobalAlphaFactorsSUN) -#define glGlobalAlphaFactorubSUN MANGLE(GlobalAlphaFactorubSUN) -#define glGlobalAlphaFactoruiSUN MANGLE(GlobalAlphaFactoruiSUN) -#define glGlobalAlphaFactorusSUN MANGLE(GlobalAlphaFactorusSUN) -#define glHint MANGLE(Hint) -#define glHintPGI MANGLE(HintPGI) -#define glHistogramEXT MANGLE(HistogramEXT) -#define glHistogram MANGLE(Histogram) -#define glIglooInterfaceSGIX MANGLE(IglooInterfaceSGIX) -#define glImageTransformParameterfHP MANGLE(ImageTransformParameterfHP) -#define glImageTransformParameterfvHP MANGLE(ImageTransformParameterfvHP) -#define glImageTransformParameteriHP MANGLE(ImageTransformParameteriHP) -#define glImageTransformParameterivHP MANGLE(ImageTransformParameterivHP) -#define glIndexd MANGLE(Indexd) -#define glIndexdv MANGLE(Indexdv) -#define glIndexf MANGLE(Indexf) -#define glIndexFormatNV MANGLE(IndexFormatNV) -#define glIndexFuncEXT MANGLE(IndexFuncEXT) -#define glIndexfv MANGLE(Indexfv) -#define glIndexi MANGLE(Indexi) -#define glIndexiv MANGLE(Indexiv) -#define glIndexMask MANGLE(IndexMask) -#define glIndexMaterialEXT MANGLE(IndexMaterialEXT) -#define glIndexPointerEXT MANGLE(IndexPointerEXT) -#define glIndexPointerListIBM MANGLE(IndexPointerListIBM) -#define glIndexPointer MANGLE(IndexPointer) -#define glIndexs MANGLE(Indexs) -#define glIndexsv MANGLE(Indexsv) -#define glIndexub MANGLE(Indexub) -#define glIndexubv MANGLE(Indexubv) -#define glInitNames MANGLE(InitNames) -#define glInsertComponentEXT MANGLE(InsertComponentEXT) -#define glInstrumentsBufferSGIX MANGLE(InstrumentsBufferSGIX) -#define glInterleavedArrays MANGLE(InterleavedArrays) -#define glIsAsyncMarkerSGIX MANGLE(IsAsyncMarkerSGIX) -#define glIsBufferARB MANGLE(IsBufferARB) -#define glIsBuffer MANGLE(IsBuffer) -#define glIsBufferResidentNV MANGLE(IsBufferResidentNV) -#define glIsEnabledi MANGLE(IsEnabledi) -#define glIsEnabledIndexedEXT MANGLE(IsEnabledIndexedEXT) -#define glIsEnabled MANGLE(IsEnabled) -#define glIsFenceAPPLE MANGLE(IsFenceAPPLE) -#define glIsFenceNV MANGLE(IsFenceNV) -#define glIsFramebufferEXT MANGLE(IsFramebufferEXT) -#define glIsFramebuffer MANGLE(IsFramebuffer) -#define glIsList MANGLE(IsList) -#define glIsNameAMD MANGLE(IsNameAMD) -#define glIsNamedBufferResidentNV MANGLE(IsNamedBufferResidentNV) -#define glIsNamedStringARB MANGLE(IsNamedStringARB) -#define glIsObjectBufferATI MANGLE(IsObjectBufferATI) -#define glIsOcclusionQueryNV MANGLE(IsOcclusionQueryNV) -#define glIsProgramARB MANGLE(IsProgramARB) -#define glIsProgram MANGLE(IsProgram) -#define glIsProgramNV MANGLE(IsProgramNV) -#define glIsProgramPipeline MANGLE(IsProgramPipeline) -#define glIsQueryARB MANGLE(IsQueryARB) -#define glIsQuery MANGLE(IsQuery) -#define glIsRenderbufferEXT MANGLE(IsRenderbufferEXT) -#define glIsRenderbuffer MANGLE(IsRenderbuffer) -#define glIsSampler MANGLE(IsSampler) -#define glIsShader MANGLE(IsShader) -#define glIsSync MANGLE(IsSync) -#define glIsTextureEXT MANGLE(IsTextureEXT) -#define glIsTexture MANGLE(IsTexture) -#define glIsTransformFeedback MANGLE(IsTransformFeedback) -#define glIsTransformFeedbackNV MANGLE(IsTransformFeedbackNV) -#define glIsVariantEnabledEXT MANGLE(IsVariantEnabledEXT) -#define glIsVertexArrayAPPLE MANGLE(IsVertexArrayAPPLE) -#define glIsVertexArray MANGLE(IsVertexArray) -#define glIsVertexAttribEnabledAPPLE MANGLE(IsVertexAttribEnabledAPPLE) -#define glLightEnviSGIX MANGLE(LightEnviSGIX) -#define glLightf MANGLE(Lightf) -#define glLightfv MANGLE(Lightfv) -#define glLighti MANGLE(Lighti) -#define glLightiv MANGLE(Lightiv) -#define glLightModelf MANGLE(LightModelf) -#define glLightModelfv MANGLE(LightModelfv) -#define glLightModeli MANGLE(LightModeli) -#define glLightModeliv MANGLE(LightModeliv) -#define glLineStipple MANGLE(LineStipple) -#define glLineWidth MANGLE(LineWidth) -#define glLinkProgramARB MANGLE(LinkProgramARB) -#define glLinkProgram MANGLE(LinkProgram) -#define glListBase MANGLE(ListBase) -#define glListParameterfSGIX MANGLE(ListParameterfSGIX) -#define glListParameterfvSGIX MANGLE(ListParameterfvSGIX) -#define glListParameteriSGIX MANGLE(ListParameteriSGIX) -#define glListParameterivSGIX MANGLE(ListParameterivSGIX) -#define glLoadIdentityDeformationMapSGIX MANGLE(LoadIdentityDeformationMapSGIX) -#define glLoadIdentity MANGLE(LoadIdentity) -#define glLoadMatrixd MANGLE(LoadMatrixd) -#define glLoadMatrixf MANGLE(LoadMatrixf) -#define glLoadName MANGLE(LoadName) -#define glLoadProgramNV MANGLE(LoadProgramNV) -#define glLoadTransposeMatrixdARB MANGLE(LoadTransposeMatrixdARB) -#define glLoadTransposeMatrixd MANGLE(LoadTransposeMatrixd) -#define glLoadTransposeMatrixfARB MANGLE(LoadTransposeMatrixfARB) -#define glLoadTransposeMatrixf MANGLE(LoadTransposeMatrixf) -#define glLockArraysEXT MANGLE(LockArraysEXT) -#define glLogicOp MANGLE(LogicOp) -#define glMakeBufferNonResidentNV MANGLE(MakeBufferNonResidentNV) -#define glMakeBufferResidentNV MANGLE(MakeBufferResidentNV) -#define glMakeNamedBufferNonResidentNV MANGLE(MakeNamedBufferNonResidentNV) -#define glMakeNamedBufferResidentNV MANGLE(MakeNamedBufferResidentNV) -#define glMap1d MANGLE(Map1d) -#define glMap1f MANGLE(Map1f) -#define glMap2d MANGLE(Map2d) -#define glMap2f MANGLE(Map2f) -#define glMapBufferARB MANGLE(MapBufferARB) -#define glMapBuffer MANGLE(MapBuffer) -#define glMapBufferRange MANGLE(MapBufferRange) -#define glMapControlPointsNV MANGLE(MapControlPointsNV) -#define glMapGrid1d MANGLE(MapGrid1d) -#define glMapGrid1f MANGLE(MapGrid1f) -#define glMapGrid2d MANGLE(MapGrid2d) -#define glMapGrid2f MANGLE(MapGrid2f) -#define glMapNamedBufferEXT MANGLE(MapNamedBufferEXT) -#define glMapNamedBufferRangeEXT MANGLE(MapNamedBufferRangeEXT) -#define glMapObjectBufferATI MANGLE(MapObjectBufferATI) -#define glMapParameterfvNV MANGLE(MapParameterfvNV) -#define glMapParameterivNV MANGLE(MapParameterivNV) -#define glMapVertexAttrib1dAPPLE MANGLE(MapVertexAttrib1dAPPLE) -#define glMapVertexAttrib1fAPPLE MANGLE(MapVertexAttrib1fAPPLE) -#define glMapVertexAttrib2dAPPLE MANGLE(MapVertexAttrib2dAPPLE) -#define glMapVertexAttrib2fAPPLE MANGLE(MapVertexAttrib2fAPPLE) -#define glMaterialf MANGLE(Materialf) -#define glMaterialfv MANGLE(Materialfv) -#define glMateriali MANGLE(Materiali) -#define glMaterialiv MANGLE(Materialiv) -#define glMatrixFrustumEXT MANGLE(MatrixFrustumEXT) -#define glMatrixIndexPointerARB MANGLE(MatrixIndexPointerARB) -#define glMatrixIndexubvARB MANGLE(MatrixIndexubvARB) -#define glMatrixIndexuivARB MANGLE(MatrixIndexuivARB) -#define glMatrixIndexusvARB MANGLE(MatrixIndexusvARB) -#define glMatrixLoaddEXT MANGLE(MatrixLoaddEXT) -#define glMatrixLoadfEXT MANGLE(MatrixLoadfEXT) -#define glMatrixLoadIdentityEXT MANGLE(MatrixLoadIdentityEXT) -#define glMatrixLoadTransposedEXT MANGLE(MatrixLoadTransposedEXT) -#define glMatrixLoadTransposefEXT MANGLE(MatrixLoadTransposefEXT) -#define glMatrixMode MANGLE(MatrixMode) -#define glMatrixMultdEXT MANGLE(MatrixMultdEXT) -#define glMatrixMultfEXT MANGLE(MatrixMultfEXT) -#define glMatrixMultTransposedEXT MANGLE(MatrixMultTransposedEXT) -#define glMatrixMultTransposefEXT MANGLE(MatrixMultTransposefEXT) -#define glMatrixOrthoEXT MANGLE(MatrixOrthoEXT) -#define glMatrixPopEXT MANGLE(MatrixPopEXT) -#define glMatrixPushEXT MANGLE(MatrixPushEXT) -#define glMatrixRotatedEXT MANGLE(MatrixRotatedEXT) -#define glMatrixRotatefEXT MANGLE(MatrixRotatefEXT) -#define glMatrixScaledEXT MANGLE(MatrixScaledEXT) -#define glMatrixScalefEXT MANGLE(MatrixScalefEXT) -#define glMatrixTranslatedEXT MANGLE(MatrixTranslatedEXT) -#define glMatrixTranslatefEXT MANGLE(MatrixTranslatefEXT) -#define glMemoryBarrierEXT MANGLE(MemoryBarrierEXT) -#define glMinmaxEXT MANGLE(MinmaxEXT) -#define glMinmax MANGLE(Minmax) -#define glMinSampleShadingARB MANGLE(MinSampleShadingARB) -#define glMinSampleShading MANGLE(MinSampleShading) -#define glMultiDrawArraysEXT MANGLE(MultiDrawArraysEXT) -#define glMultiDrawArrays MANGLE(MultiDrawArrays) -#define glMultiDrawElementArrayAPPLE MANGLE(MultiDrawElementArrayAPPLE) -#define glMultiDrawElementsBaseVertex MANGLE(MultiDrawElementsBaseVertex) -#define glMultiDrawElementsEXT MANGLE(MultiDrawElementsEXT) -#define glMultiDrawElements MANGLE(MultiDrawElements) -#define glMultiDrawRangeElementArrayAPPLE MANGLE(MultiDrawRangeElementArrayAPPLE) -#define glMultiModeDrawArraysIBM MANGLE(MultiModeDrawArraysIBM) -#define glMultiModeDrawElementsIBM MANGLE(MultiModeDrawElementsIBM) -#define glMultiTexBufferEXT MANGLE(MultiTexBufferEXT) -#define glMultiTexCoord1dARB MANGLE(MultiTexCoord1dARB) -#define glMultiTexCoord1d MANGLE(MultiTexCoord1d) -#define glMultiTexCoord1dvARB MANGLE(MultiTexCoord1dvARB) -#define glMultiTexCoord1dv MANGLE(MultiTexCoord1dv) -#define glMultiTexCoord1fARB MANGLE(MultiTexCoord1fARB) -#define glMultiTexCoord1f MANGLE(MultiTexCoord1f) -#define glMultiTexCoord1fvARB MANGLE(MultiTexCoord1fvARB) -#define glMultiTexCoord1fv MANGLE(MultiTexCoord1fv) -#define glMultiTexCoord1hNV MANGLE(MultiTexCoord1hNV) -#define glMultiTexCoord1hvNV MANGLE(MultiTexCoord1hvNV) -#define glMultiTexCoord1iARB MANGLE(MultiTexCoord1iARB) -#define glMultiTexCoord1i MANGLE(MultiTexCoord1i) -#define glMultiTexCoord1ivARB MANGLE(MultiTexCoord1ivARB) -#define glMultiTexCoord1iv MANGLE(MultiTexCoord1iv) -#define glMultiTexCoord1sARB MANGLE(MultiTexCoord1sARB) -#define glMultiTexCoord1s MANGLE(MultiTexCoord1s) -#define glMultiTexCoord1svARB MANGLE(MultiTexCoord1svARB) -#define glMultiTexCoord1sv MANGLE(MultiTexCoord1sv) -#define glMultiTexCoord2dARB MANGLE(MultiTexCoord2dARB) -#define glMultiTexCoord2d MANGLE(MultiTexCoord2d) -#define glMultiTexCoord2dvARB MANGLE(MultiTexCoord2dvARB) -#define glMultiTexCoord2dv MANGLE(MultiTexCoord2dv) -#define glMultiTexCoord2fARB MANGLE(MultiTexCoord2fARB) -#define glMultiTexCoord2f MANGLE(MultiTexCoord2f) -#define glMultiTexCoord2fvARB MANGLE(MultiTexCoord2fvARB) -#define glMultiTexCoord2fv MANGLE(MultiTexCoord2fv) -#define glMultiTexCoord2hNV MANGLE(MultiTexCoord2hNV) -#define glMultiTexCoord2hvNV MANGLE(MultiTexCoord2hvNV) -#define glMultiTexCoord2iARB MANGLE(MultiTexCoord2iARB) -#define glMultiTexCoord2i MANGLE(MultiTexCoord2i) -#define glMultiTexCoord2ivARB MANGLE(MultiTexCoord2ivARB) -#define glMultiTexCoord2iv MANGLE(MultiTexCoord2iv) -#define glMultiTexCoord2sARB MANGLE(MultiTexCoord2sARB) -#define glMultiTexCoord2s MANGLE(MultiTexCoord2s) -#define glMultiTexCoord2svARB MANGLE(MultiTexCoord2svARB) -#define glMultiTexCoord2sv MANGLE(MultiTexCoord2sv) -#define glMultiTexCoord3dARB MANGLE(MultiTexCoord3dARB) -#define glMultiTexCoord3d MANGLE(MultiTexCoord3d) -#define glMultiTexCoord3dvARB MANGLE(MultiTexCoord3dvARB) -#define glMultiTexCoord3dv MANGLE(MultiTexCoord3dv) -#define glMultiTexCoord3fARB MANGLE(MultiTexCoord3fARB) -#define glMultiTexCoord3f MANGLE(MultiTexCoord3f) -#define glMultiTexCoord3fvARB MANGLE(MultiTexCoord3fvARB) -#define glMultiTexCoord3fv MANGLE(MultiTexCoord3fv) -#define glMultiTexCoord3hNV MANGLE(MultiTexCoord3hNV) -#define glMultiTexCoord3hvNV MANGLE(MultiTexCoord3hvNV) -#define glMultiTexCoord3iARB MANGLE(MultiTexCoord3iARB) -#define glMultiTexCoord3i MANGLE(MultiTexCoord3i) -#define glMultiTexCoord3ivARB MANGLE(MultiTexCoord3ivARB) -#define glMultiTexCoord3iv MANGLE(MultiTexCoord3iv) -#define glMultiTexCoord3sARB MANGLE(MultiTexCoord3sARB) -#define glMultiTexCoord3s MANGLE(MultiTexCoord3s) -#define glMultiTexCoord3svARB MANGLE(MultiTexCoord3svARB) -#define glMultiTexCoord3sv MANGLE(MultiTexCoord3sv) -#define glMultiTexCoord4dARB MANGLE(MultiTexCoord4dARB) -#define glMultiTexCoord4d MANGLE(MultiTexCoord4d) -#define glMultiTexCoord4dvARB MANGLE(MultiTexCoord4dvARB) -#define glMultiTexCoord4dv MANGLE(MultiTexCoord4dv) -#define glMultiTexCoord4fARB MANGLE(MultiTexCoord4fARB) -#define glMultiTexCoord4f MANGLE(MultiTexCoord4f) -#define glMultiTexCoord4fvARB MANGLE(MultiTexCoord4fvARB) -#define glMultiTexCoord4fv MANGLE(MultiTexCoord4fv) -#define glMultiTexCoord4hNV MANGLE(MultiTexCoord4hNV) -#define glMultiTexCoord4hvNV MANGLE(MultiTexCoord4hvNV) -#define glMultiTexCoord4iARB MANGLE(MultiTexCoord4iARB) -#define glMultiTexCoord4i MANGLE(MultiTexCoord4i) -#define glMultiTexCoord4ivARB MANGLE(MultiTexCoord4ivARB) -#define glMultiTexCoord4iv MANGLE(MultiTexCoord4iv) -#define glMultiTexCoord4sARB MANGLE(MultiTexCoord4sARB) -#define glMultiTexCoord4s MANGLE(MultiTexCoord4s) -#define glMultiTexCoord4svARB MANGLE(MultiTexCoord4svARB) -#define glMultiTexCoord4sv MANGLE(MultiTexCoord4sv) -#define glMultiTexCoordP1ui MANGLE(MultiTexCoordP1ui) -#define glMultiTexCoordP1uiv MANGLE(MultiTexCoordP1uiv) -#define glMultiTexCoordP2ui MANGLE(MultiTexCoordP2ui) -#define glMultiTexCoordP2uiv MANGLE(MultiTexCoordP2uiv) -#define glMultiTexCoordP3ui MANGLE(MultiTexCoordP3ui) -#define glMultiTexCoordP3uiv MANGLE(MultiTexCoordP3uiv) -#define glMultiTexCoordP4ui MANGLE(MultiTexCoordP4ui) -#define glMultiTexCoordP4uiv MANGLE(MultiTexCoordP4uiv) -#define glMultiTexCoordPointerEXT MANGLE(MultiTexCoordPointerEXT) -#define glMultiTexEnvfEXT MANGLE(MultiTexEnvfEXT) -#define glMultiTexEnvfvEXT MANGLE(MultiTexEnvfvEXT) -#define glMultiTexEnviEXT MANGLE(MultiTexEnviEXT) -#define glMultiTexEnvivEXT MANGLE(MultiTexEnvivEXT) -#define glMultiTexGendEXT MANGLE(MultiTexGendEXT) -#define glMultiTexGendvEXT MANGLE(MultiTexGendvEXT) -#define glMultiTexGenfEXT MANGLE(MultiTexGenfEXT) -#define glMultiTexGenfvEXT MANGLE(MultiTexGenfvEXT) -#define glMultiTexGeniEXT MANGLE(MultiTexGeniEXT) -#define glMultiTexGenivEXT MANGLE(MultiTexGenivEXT) -#define glMultiTexImage1DEXT MANGLE(MultiTexImage1DEXT) -#define glMultiTexImage2DEXT MANGLE(MultiTexImage2DEXT) -#define glMultiTexImage3DEXT MANGLE(MultiTexImage3DEXT) -#define glMultiTexParameterfEXT MANGLE(MultiTexParameterfEXT) -#define glMultiTexParameterfvEXT MANGLE(MultiTexParameterfvEXT) -#define glMultiTexParameteriEXT MANGLE(MultiTexParameteriEXT) -#define glMultiTexParameterIivEXT MANGLE(MultiTexParameterIivEXT) -#define glMultiTexParameterIuivEXT MANGLE(MultiTexParameterIuivEXT) -#define glMultiTexParameterivEXT MANGLE(MultiTexParameterivEXT) -#define glMultiTexRenderbufferEXT MANGLE(MultiTexRenderbufferEXT) -#define glMultiTexSubImage1DEXT MANGLE(MultiTexSubImage1DEXT) -#define glMultiTexSubImage2DEXT MANGLE(MultiTexSubImage2DEXT) -#define glMultiTexSubImage3DEXT MANGLE(MultiTexSubImage3DEXT) -#define glMultMatrixd MANGLE(MultMatrixd) -#define glMultMatrixf MANGLE(MultMatrixf) -#define glMultTransposeMatrixdARB MANGLE(MultTransposeMatrixdARB) -#define glMultTransposeMatrixd MANGLE(MultTransposeMatrixd) -#define glMultTransposeMatrixfARB MANGLE(MultTransposeMatrixfARB) -#define glMultTransposeMatrixf MANGLE(MultTransposeMatrixf) -#define glNamedBufferDataEXT MANGLE(NamedBufferDataEXT) -#define glNamedBufferSubDataEXT MANGLE(NamedBufferSubDataEXT) -#define glNamedCopyBufferSubDataEXT MANGLE(NamedCopyBufferSubDataEXT) -#define glNamedFramebufferRenderbufferEXT MANGLE(NamedFramebufferRenderbufferEXT) -#define glNamedFramebufferTexture1DEXT MANGLE(NamedFramebufferTexture1DEXT) -#define glNamedFramebufferTexture2DEXT MANGLE(NamedFramebufferTexture2DEXT) -#define glNamedFramebufferTexture3DEXT MANGLE(NamedFramebufferTexture3DEXT) -#define glNamedFramebufferTextureEXT MANGLE(NamedFramebufferTextureEXT) -#define glNamedFramebufferTextureFaceEXT MANGLE(NamedFramebufferTextureFaceEXT) -#define glNamedFramebufferTextureLayerEXT MANGLE(NamedFramebufferTextureLayerEXT) -#define glNamedProgramLocalParameter4dEXT MANGLE(NamedProgramLocalParameter4dEXT) -#define glNamedProgramLocalParameter4dvEXT MANGLE(NamedProgramLocalParameter4dvEXT) -#define glNamedProgramLocalParameter4fEXT MANGLE(NamedProgramLocalParameter4fEXT) -#define glNamedProgramLocalParameter4fvEXT MANGLE(NamedProgramLocalParameter4fvEXT) -#define glNamedProgramLocalParameterI4iEXT MANGLE(NamedProgramLocalParameterI4iEXT) -#define glNamedProgramLocalParameterI4ivEXT MANGLE(NamedProgramLocalParameterI4ivEXT) -#define glNamedProgramLocalParameterI4uiEXT MANGLE(NamedProgramLocalParameterI4uiEXT) -#define glNamedProgramLocalParameterI4uivEXT MANGLE(NamedProgramLocalParameterI4uivEXT) -#define glNamedProgramLocalParameters4fvEXT MANGLE(NamedProgramLocalParameters4fvEXT) -#define glNamedProgramLocalParametersI4ivEXT MANGLE(NamedProgramLocalParametersI4ivEXT) -#define glNamedProgramLocalParametersI4uivEXT MANGLE(NamedProgramLocalParametersI4uivEXT) -#define glNamedProgramStringEXT MANGLE(NamedProgramStringEXT) -#define glNamedRenderbufferStorageEXT MANGLE(NamedRenderbufferStorageEXT) -#define glNamedRenderbufferStorageMultisampleCoverageEXT MANGLE(NamedRenderbufferStorageMultisampleCoverageEXT) -#define glNamedRenderbufferStorageMultisampleEXT MANGLE(NamedRenderbufferStorageMultisampleEXT) -#define glNamedStringARB MANGLE(NamedStringARB) -#define glNewList MANGLE(NewList) -#define glNewObjectBufferATI MANGLE(NewObjectBufferATI) -#define glNormal3b MANGLE(Normal3b) -#define glNormal3bv MANGLE(Normal3bv) -#define glNormal3d MANGLE(Normal3d) -#define glNormal3dv MANGLE(Normal3dv) -#define glNormal3f MANGLE(Normal3f) -#define glNormal3fVertex3fSUN MANGLE(Normal3fVertex3fSUN) -#define glNormal3fVertex3fvSUN MANGLE(Normal3fVertex3fvSUN) -#define glNormal3fv MANGLE(Normal3fv) -#define glNormal3hNV MANGLE(Normal3hNV) -#define glNormal3hvNV MANGLE(Normal3hvNV) -#define glNormal3i MANGLE(Normal3i) -#define glNormal3iv MANGLE(Normal3iv) -#define glNormal3s MANGLE(Normal3s) -#define glNormal3sv MANGLE(Normal3sv) -#define glNormalFormatNV MANGLE(NormalFormatNV) -#define glNormalP3ui MANGLE(NormalP3ui) -#define glNormalP3uiv MANGLE(NormalP3uiv) -#define glNormalPointerEXT MANGLE(NormalPointerEXT) -#define glNormalPointerListIBM MANGLE(NormalPointerListIBM) -#define glNormalPointer MANGLE(NormalPointer) -#define glNormalPointervINTEL MANGLE(NormalPointervINTEL) -#define glNormalStream3bATI MANGLE(NormalStream3bATI) -#define glNormalStream3bvATI MANGLE(NormalStream3bvATI) -#define glNormalStream3dATI MANGLE(NormalStream3dATI) -#define glNormalStream3dvATI MANGLE(NormalStream3dvATI) -#define glNormalStream3fATI MANGLE(NormalStream3fATI) -#define glNormalStream3fvATI MANGLE(NormalStream3fvATI) -#define glNormalStream3iATI MANGLE(NormalStream3iATI) -#define glNormalStream3ivATI MANGLE(NormalStream3ivATI) -#define glNormalStream3sATI MANGLE(NormalStream3sATI) -#define glNormalStream3svATI MANGLE(NormalStream3svATI) -#define glObjectPurgeableAPPLE MANGLE(ObjectPurgeableAPPLE) -#define glObjectUnpurgeableAPPLE MANGLE(ObjectUnpurgeableAPPLE) -#define glOrtho MANGLE(Ortho) -#define glPassTexCoordATI MANGLE(PassTexCoordATI) -#define glPassThrough MANGLE(PassThrough) -#define glPatchParameterfv MANGLE(PatchParameterfv) -#define glPatchParameteri MANGLE(PatchParameteri) -#define glPauseTransformFeedback MANGLE(PauseTransformFeedback) -#define glPauseTransformFeedbackNV MANGLE(PauseTransformFeedbackNV) -#define glPixelDataRangeNV MANGLE(PixelDataRangeNV) -#define glPixelMapfv MANGLE(PixelMapfv) -#define glPixelMapuiv MANGLE(PixelMapuiv) -#define glPixelMapusv MANGLE(PixelMapusv) -#define glPixelStoref MANGLE(PixelStoref) -#define glPixelStorei MANGLE(PixelStorei) -#define glPixelTexGenParameterfSGIS MANGLE(PixelTexGenParameterfSGIS) -#define glPixelTexGenParameterfvSGIS MANGLE(PixelTexGenParameterfvSGIS) -#define glPixelTexGenParameteriSGIS MANGLE(PixelTexGenParameteriSGIS) -#define glPixelTexGenParameterivSGIS MANGLE(PixelTexGenParameterivSGIS) -#define glPixelTexGenSGIX MANGLE(PixelTexGenSGIX) -#define glPixelTransferf MANGLE(PixelTransferf) -#define glPixelTransferi MANGLE(PixelTransferi) -#define glPixelTransformParameterfEXT MANGLE(PixelTransformParameterfEXT) -#define glPixelTransformParameterfvEXT MANGLE(PixelTransformParameterfvEXT) -#define glPixelTransformParameteriEXT MANGLE(PixelTransformParameteriEXT) -#define glPixelTransformParameterivEXT MANGLE(PixelTransformParameterivEXT) -#define glPixelZoom MANGLE(PixelZoom) -#define glPNTrianglesfATI MANGLE(PNTrianglesfATI) -#define glPNTrianglesiATI MANGLE(PNTrianglesiATI) -#define glPointParameterfARB MANGLE(PointParameterfARB) -#define glPointParameterfEXT MANGLE(PointParameterfEXT) -#define glPointParameterf MANGLE(PointParameterf) -#define glPointParameterfSGIS MANGLE(PointParameterfSGIS) -#define glPointParameterfvARB MANGLE(PointParameterfvARB) -#define glPointParameterfvEXT MANGLE(PointParameterfvEXT) -#define glPointParameterfv MANGLE(PointParameterfv) -#define glPointParameterfvSGIS MANGLE(PointParameterfvSGIS) -#define glPointParameteri MANGLE(PointParameteri) -#define glPointParameteriNV MANGLE(PointParameteriNV) -#define glPointParameteriv MANGLE(PointParameteriv) -#define glPointParameterivNV MANGLE(PointParameterivNV) -#define glPointSize MANGLE(PointSize) -#define glPollAsyncSGIX MANGLE(PollAsyncSGIX) -#define glPollInstrumentsSGIX MANGLE(PollInstrumentsSGIX) -#define glPolygonMode MANGLE(PolygonMode) -#define glPolygonOffsetEXT MANGLE(PolygonOffsetEXT) -#define glPolygonOffset MANGLE(PolygonOffset) -#define glPolygonStipple MANGLE(PolygonStipple) -#define glPopAttrib MANGLE(PopAttrib) -#define glPopClientAttrib MANGLE(PopClientAttrib) -#define glPopMatrix MANGLE(PopMatrix) -#define glPopName MANGLE(PopName) -#define glPresentFrameDualFillNV MANGLE(PresentFrameDualFillNV) -#define glPresentFrameKeyedNV MANGLE(PresentFrameKeyedNV) -#define glPrimitiveRestartIndex MANGLE(PrimitiveRestartIndex) -#define glPrimitiveRestartIndexNV MANGLE(PrimitiveRestartIndexNV) -#define glPrimitiveRestartNV MANGLE(PrimitiveRestartNV) -#define glPrioritizeTexturesEXT MANGLE(PrioritizeTexturesEXT) -#define glPrioritizeTextures MANGLE(PrioritizeTextures) -#define glProgramBinary MANGLE(ProgramBinary) -#define glProgramBufferParametersfvNV MANGLE(ProgramBufferParametersfvNV) -#define glProgramBufferParametersIivNV MANGLE(ProgramBufferParametersIivNV) -#define glProgramBufferParametersIuivNV MANGLE(ProgramBufferParametersIuivNV) -#define glProgramCallbackMESA MANGLE(ProgramCallbackMESA) -#define glProgramEnvParameter4dARB MANGLE(ProgramEnvParameter4dARB) -#define glProgramEnvParameter4dvARB MANGLE(ProgramEnvParameter4dvARB) -#define glProgramEnvParameter4fARB MANGLE(ProgramEnvParameter4fARB) -#define glProgramEnvParameter4fvARB MANGLE(ProgramEnvParameter4fvARB) -#define glProgramEnvParameterI4iNV MANGLE(ProgramEnvParameterI4iNV) -#define glProgramEnvParameterI4ivNV MANGLE(ProgramEnvParameterI4ivNV) -#define glProgramEnvParameterI4uiNV MANGLE(ProgramEnvParameterI4uiNV) -#define glProgramEnvParameterI4uivNV MANGLE(ProgramEnvParameterI4uivNV) -#define glProgramEnvParameters4fvEXT MANGLE(ProgramEnvParameters4fvEXT) -#define glProgramEnvParametersI4ivNV MANGLE(ProgramEnvParametersI4ivNV) -#define glProgramEnvParametersI4uivNV MANGLE(ProgramEnvParametersI4uivNV) -#define glProgramLocalParameter4dARB MANGLE(ProgramLocalParameter4dARB) -#define glProgramLocalParameter4dvARB MANGLE(ProgramLocalParameter4dvARB) -#define glProgramLocalParameter4fARB MANGLE(ProgramLocalParameter4fARB) -#define glProgramLocalParameter4fvARB MANGLE(ProgramLocalParameter4fvARB) -#define glProgramLocalParameterI4iNV MANGLE(ProgramLocalParameterI4iNV) -#define glProgramLocalParameterI4ivNV MANGLE(ProgramLocalParameterI4ivNV) -#define glProgramLocalParameterI4uiNV MANGLE(ProgramLocalParameterI4uiNV) -#define glProgramLocalParameterI4uivNV MANGLE(ProgramLocalParameterI4uivNV) -#define glProgramLocalParameters4fvEXT MANGLE(ProgramLocalParameters4fvEXT) -#define glProgramLocalParametersI4ivNV MANGLE(ProgramLocalParametersI4ivNV) -#define glProgramLocalParametersI4uivNV MANGLE(ProgramLocalParametersI4uivNV) -#define glProgramNamedParameter4dNV MANGLE(ProgramNamedParameter4dNV) -#define glProgramNamedParameter4dvNV MANGLE(ProgramNamedParameter4dvNV) -#define glProgramNamedParameter4fNV MANGLE(ProgramNamedParameter4fNV) -#define glProgramNamedParameter4fvNV MANGLE(ProgramNamedParameter4fvNV) -#define glProgramParameter4dNV MANGLE(ProgramParameter4dNV) -#define glProgramParameter4dvNV MANGLE(ProgramParameter4dvNV) -#define glProgramParameter4fNV MANGLE(ProgramParameter4fNV) -#define glProgramParameter4fvNV MANGLE(ProgramParameter4fvNV) -#define glProgramParameteriARB MANGLE(ProgramParameteriARB) -#define glProgramParameteriEXT MANGLE(ProgramParameteriEXT) -#define glProgramParameteri MANGLE(ProgramParameteri) -#define glProgramParameters4dvNV MANGLE(ProgramParameters4dvNV) -#define glProgramParameters4fvNV MANGLE(ProgramParameters4fvNV) -#define glProgramStringARB MANGLE(ProgramStringARB) -#define glProgramSubroutineParametersuivNV MANGLE(ProgramSubroutineParametersuivNV) -#define glProgramUniform1dEXT MANGLE(ProgramUniform1dEXT) -#define glProgramUniform1d MANGLE(ProgramUniform1d) -#define glProgramUniform1dvEXT MANGLE(ProgramUniform1dvEXT) -#define glProgramUniform1dv MANGLE(ProgramUniform1dv) -#define glProgramUniform1fEXT MANGLE(ProgramUniform1fEXT) -#define glProgramUniform1f MANGLE(ProgramUniform1f) -#define glProgramUniform1fvEXT MANGLE(ProgramUniform1fvEXT) -#define glProgramUniform1fv MANGLE(ProgramUniform1fv) -#define glProgramUniform1i64NV MANGLE(ProgramUniform1i64NV) -#define glProgramUniform1i64vNV MANGLE(ProgramUniform1i64vNV) -#define glProgramUniform1iEXT MANGLE(ProgramUniform1iEXT) -#define glProgramUniform1i MANGLE(ProgramUniform1i) -#define glProgramUniform1ivEXT MANGLE(ProgramUniform1ivEXT) -#define glProgramUniform1iv MANGLE(ProgramUniform1iv) -#define glProgramUniform1ui64NV MANGLE(ProgramUniform1ui64NV) -#define glProgramUniform1ui64vNV MANGLE(ProgramUniform1ui64vNV) -#define glProgramUniform1uiEXT MANGLE(ProgramUniform1uiEXT) -#define glProgramUniform1ui MANGLE(ProgramUniform1ui) -#define glProgramUniform1uivEXT MANGLE(ProgramUniform1uivEXT) -#define glProgramUniform1uiv MANGLE(ProgramUniform1uiv) -#define glProgramUniform2dEXT MANGLE(ProgramUniform2dEXT) -#define glProgramUniform2d MANGLE(ProgramUniform2d) -#define glProgramUniform2dvEXT MANGLE(ProgramUniform2dvEXT) -#define glProgramUniform2dv MANGLE(ProgramUniform2dv) -#define glProgramUniform2fEXT MANGLE(ProgramUniform2fEXT) -#define glProgramUniform2f MANGLE(ProgramUniform2f) -#define glProgramUniform2fvEXT MANGLE(ProgramUniform2fvEXT) -#define glProgramUniform2fv MANGLE(ProgramUniform2fv) -#define glProgramUniform2i64NV MANGLE(ProgramUniform2i64NV) -#define glProgramUniform2i64vNV MANGLE(ProgramUniform2i64vNV) -#define glProgramUniform2iEXT MANGLE(ProgramUniform2iEXT) -#define glProgramUniform2i MANGLE(ProgramUniform2i) -#define glProgramUniform2ivEXT MANGLE(ProgramUniform2ivEXT) -#define glProgramUniform2iv MANGLE(ProgramUniform2iv) -#define glProgramUniform2ui64NV MANGLE(ProgramUniform2ui64NV) -#define glProgramUniform2ui64vNV MANGLE(ProgramUniform2ui64vNV) -#define glProgramUniform2uiEXT MANGLE(ProgramUniform2uiEXT) -#define glProgramUniform2ui MANGLE(ProgramUniform2ui) -#define glProgramUniform2uivEXT MANGLE(ProgramUniform2uivEXT) -#define glProgramUniform2uiv MANGLE(ProgramUniform2uiv) -#define glProgramUniform3dEXT MANGLE(ProgramUniform3dEXT) -#define glProgramUniform3d MANGLE(ProgramUniform3d) -#define glProgramUniform3dvEXT MANGLE(ProgramUniform3dvEXT) -#define glProgramUniform3dv MANGLE(ProgramUniform3dv) -#define glProgramUniform3fEXT MANGLE(ProgramUniform3fEXT) -#define glProgramUniform3f MANGLE(ProgramUniform3f) -#define glProgramUniform3fvEXT MANGLE(ProgramUniform3fvEXT) -#define glProgramUniform3fv MANGLE(ProgramUniform3fv) -#define glProgramUniform3i64NV MANGLE(ProgramUniform3i64NV) -#define glProgramUniform3i64vNV MANGLE(ProgramUniform3i64vNV) -#define glProgramUniform3iEXT MANGLE(ProgramUniform3iEXT) -#define glProgramUniform3i MANGLE(ProgramUniform3i) -#define glProgramUniform3ivEXT MANGLE(ProgramUniform3ivEXT) -#define glProgramUniform3iv MANGLE(ProgramUniform3iv) -#define glProgramUniform3ui64NV MANGLE(ProgramUniform3ui64NV) -#define glProgramUniform3ui64vNV MANGLE(ProgramUniform3ui64vNV) -#define glProgramUniform3uiEXT MANGLE(ProgramUniform3uiEXT) -#define glProgramUniform3ui MANGLE(ProgramUniform3ui) -#define glProgramUniform3uivEXT MANGLE(ProgramUniform3uivEXT) -#define glProgramUniform3uiv MANGLE(ProgramUniform3uiv) -#define glProgramUniform4dEXT MANGLE(ProgramUniform4dEXT) -#define glProgramUniform4d MANGLE(ProgramUniform4d) -#define glProgramUniform4dvEXT MANGLE(ProgramUniform4dvEXT) -#define glProgramUniform4dv MANGLE(ProgramUniform4dv) -#define glProgramUniform4fEXT MANGLE(ProgramUniform4fEXT) -#define glProgramUniform4f MANGLE(ProgramUniform4f) -#define glProgramUniform4fvEXT MANGLE(ProgramUniform4fvEXT) -#define glProgramUniform4fv MANGLE(ProgramUniform4fv) -#define glProgramUniform4i64NV MANGLE(ProgramUniform4i64NV) -#define glProgramUniform4i64vNV MANGLE(ProgramUniform4i64vNV) -#define glProgramUniform4iEXT MANGLE(ProgramUniform4iEXT) -#define glProgramUniform4i MANGLE(ProgramUniform4i) -#define glProgramUniform4ivEXT MANGLE(ProgramUniform4ivEXT) -#define glProgramUniform4iv MANGLE(ProgramUniform4iv) -#define glProgramUniform4ui64NV MANGLE(ProgramUniform4ui64NV) -#define glProgramUniform4ui64vNV MANGLE(ProgramUniform4ui64vNV) -#define glProgramUniform4uiEXT MANGLE(ProgramUniform4uiEXT) -#define glProgramUniform4ui MANGLE(ProgramUniform4ui) -#define glProgramUniform4uivEXT MANGLE(ProgramUniform4uivEXT) -#define glProgramUniform4uiv MANGLE(ProgramUniform4uiv) -#define glProgramUniformMatrix2dvEXT MANGLE(ProgramUniformMatrix2dvEXT) -#define glProgramUniformMatrix2dv MANGLE(ProgramUniformMatrix2dv) -#define glProgramUniformMatrix2fvEXT MANGLE(ProgramUniformMatrix2fvEXT) -#define glProgramUniformMatrix2fv MANGLE(ProgramUniformMatrix2fv) -#define glProgramUniformMatrix2x3dvEXT MANGLE(ProgramUniformMatrix2x3dvEXT) -#define glProgramUniformMatrix2x3dv MANGLE(ProgramUniformMatrix2x3dv) -#define glProgramUniformMatrix2x3fvEXT MANGLE(ProgramUniformMatrix2x3fvEXT) -#define glProgramUniformMatrix2x3fv MANGLE(ProgramUniformMatrix2x3fv) -#define glProgramUniformMatrix2x4dvEXT MANGLE(ProgramUniformMatrix2x4dvEXT) -#define glProgramUniformMatrix2x4dv MANGLE(ProgramUniformMatrix2x4dv) -#define glProgramUniformMatrix2x4fvEXT MANGLE(ProgramUniformMatrix2x4fvEXT) -#define glProgramUniformMatrix2x4fv MANGLE(ProgramUniformMatrix2x4fv) -#define glProgramUniformMatrix3dvEXT MANGLE(ProgramUniformMatrix3dvEXT) -#define glProgramUniformMatrix3dv MANGLE(ProgramUniformMatrix3dv) -#define glProgramUniformMatrix3fvEXT MANGLE(ProgramUniformMatrix3fvEXT) -#define glProgramUniformMatrix3fv MANGLE(ProgramUniformMatrix3fv) -#define glProgramUniformMatrix3x2dvEXT MANGLE(ProgramUniformMatrix3x2dvEXT) -#define glProgramUniformMatrix3x2dv MANGLE(ProgramUniformMatrix3x2dv) -#define glProgramUniformMatrix3x2fvEXT MANGLE(ProgramUniformMatrix3x2fvEXT) -#define glProgramUniformMatrix3x2fv MANGLE(ProgramUniformMatrix3x2fv) -#define glProgramUniformMatrix3x4dvEXT MANGLE(ProgramUniformMatrix3x4dvEXT) -#define glProgramUniformMatrix3x4dv MANGLE(ProgramUniformMatrix3x4dv) -#define glProgramUniformMatrix3x4fvEXT MANGLE(ProgramUniformMatrix3x4fvEXT) -#define glProgramUniformMatrix3x4fv MANGLE(ProgramUniformMatrix3x4fv) -#define glProgramUniformMatrix4dvEXT MANGLE(ProgramUniformMatrix4dvEXT) -#define glProgramUniformMatrix4dv MANGLE(ProgramUniformMatrix4dv) -#define glProgramUniformMatrix4fvEXT MANGLE(ProgramUniformMatrix4fvEXT) -#define glProgramUniformMatrix4fv MANGLE(ProgramUniformMatrix4fv) -#define glProgramUniformMatrix4x2dvEXT MANGLE(ProgramUniformMatrix4x2dvEXT) -#define glProgramUniformMatrix4x2dv MANGLE(ProgramUniformMatrix4x2dv) -#define glProgramUniformMatrix4x2fvEXT MANGLE(ProgramUniformMatrix4x2fvEXT) -#define glProgramUniformMatrix4x2fv MANGLE(ProgramUniformMatrix4x2fv) -#define glProgramUniformMatrix4x3dvEXT MANGLE(ProgramUniformMatrix4x3dvEXT) -#define glProgramUniformMatrix4x3dv MANGLE(ProgramUniformMatrix4x3dv) -#define glProgramUniformMatrix4x3fvEXT MANGLE(ProgramUniformMatrix4x3fvEXT) -#define glProgramUniformMatrix4x3fv MANGLE(ProgramUniformMatrix4x3fv) -#define glProgramUniformui64NV MANGLE(ProgramUniformui64NV) -#define glProgramUniformui64vNV MANGLE(ProgramUniformui64vNV) -#define glProgramVertexLimitNV MANGLE(ProgramVertexLimitNV) -#define glProvokingVertexEXT MANGLE(ProvokingVertexEXT) -#define glProvokingVertex MANGLE(ProvokingVertex) -#define glPushAttrib MANGLE(PushAttrib) -#define glPushClientAttribDefaultEXT MANGLE(PushClientAttribDefaultEXT) -#define glPushClientAttrib MANGLE(PushClientAttrib) -#define glPushMatrix MANGLE(PushMatrix) -#define glPushName MANGLE(PushName) -#define glQueryCounter MANGLE(QueryCounter) -#define glRasterPos2d MANGLE(RasterPos2d) -#define glRasterPos2dv MANGLE(RasterPos2dv) -#define glRasterPos2f MANGLE(RasterPos2f) -#define glRasterPos2fv MANGLE(RasterPos2fv) -#define glRasterPos2i MANGLE(RasterPos2i) -#define glRasterPos2iv MANGLE(RasterPos2iv) -#define glRasterPos2s MANGLE(RasterPos2s) -#define glRasterPos2sv MANGLE(RasterPos2sv) -#define glRasterPos3d MANGLE(RasterPos3d) -#define glRasterPos3dv MANGLE(RasterPos3dv) -#define glRasterPos3f MANGLE(RasterPos3f) -#define glRasterPos3fv MANGLE(RasterPos3fv) -#define glRasterPos3i MANGLE(RasterPos3i) -#define glRasterPos3iv MANGLE(RasterPos3iv) -#define glRasterPos3s MANGLE(RasterPos3s) -#define glRasterPos3sv MANGLE(RasterPos3sv) -#define glRasterPos4d MANGLE(RasterPos4d) -#define glRasterPos4dv MANGLE(RasterPos4dv) -#define glRasterPos4f MANGLE(RasterPos4f) -#define glRasterPos4fv MANGLE(RasterPos4fv) -#define glRasterPos4i MANGLE(RasterPos4i) -#define glRasterPos4iv MANGLE(RasterPos4iv) -#define glRasterPos4s MANGLE(RasterPos4s) -#define glRasterPos4sv MANGLE(RasterPos4sv) -#define glReadBuffer MANGLE(ReadBuffer) -#define glReadInstrumentsSGIX MANGLE(ReadInstrumentsSGIX) -#define glReadnPixelsARB MANGLE(ReadnPixelsARB) -#define glReadPixels MANGLE(ReadPixels) -#define glRectd MANGLE(Rectd) -#define glRectdv MANGLE(Rectdv) -#define glRectf MANGLE(Rectf) -#define glRectfv MANGLE(Rectfv) -#define glRecti MANGLE(Recti) -#define glRectiv MANGLE(Rectiv) -#define glRects MANGLE(Rects) -#define glRectsv MANGLE(Rectsv) -#define glReferencePlaneSGIX MANGLE(ReferencePlaneSGIX) -#define glReleaseShaderCompiler MANGLE(ReleaseShaderCompiler) -#define glRenderbufferStorageEXT MANGLE(RenderbufferStorageEXT) -#define glRenderbufferStorage MANGLE(RenderbufferStorage) -#define glRenderbufferStorageMultisampleCoverageNV MANGLE(RenderbufferStorageMultisampleCoverageNV) -#define glRenderbufferStorageMultisampleEXT MANGLE(RenderbufferStorageMultisampleEXT) -#define glRenderbufferStorageMultisample MANGLE(RenderbufferStorageMultisample) -#define glRenderMode MANGLE(RenderMode) -#define glReplacementCodePointerSUN MANGLE(ReplacementCodePointerSUN) -#define glReplacementCodeubSUN MANGLE(ReplacementCodeubSUN) -#define glReplacementCodeubvSUN MANGLE(ReplacementCodeubvSUN) -#define glReplacementCodeuiColor3fVertex3fSUN MANGLE(ReplacementCodeuiColor3fVertex3fSUN) -#define glReplacementCodeuiColor3fVertex3fvSUN MANGLE(ReplacementCodeuiColor3fVertex3fvSUN) -#define glReplacementCodeuiColor4fNormal3fVertex3fSUN MANGLE(ReplacementCodeuiColor4fNormal3fVertex3fSUN) -#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN MANGLE(ReplacementCodeuiColor4fNormal3fVertex3fvSUN) -#define glReplacementCodeuiColor4ubVertex3fSUN MANGLE(ReplacementCodeuiColor4ubVertex3fSUN) -#define glReplacementCodeuiColor4ubVertex3fvSUN MANGLE(ReplacementCodeuiColor4ubVertex3fvSUN) -#define glReplacementCodeuiNormal3fVertex3fSUN MANGLE(ReplacementCodeuiNormal3fVertex3fSUN) -#define glReplacementCodeuiNormal3fVertex3fvSUN MANGLE(ReplacementCodeuiNormal3fVertex3fvSUN) -#define glReplacementCodeuiSUN MANGLE(ReplacementCodeuiSUN) -#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN MANGLE(ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN MANGLE(ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN MANGLE(ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN MANGLE(ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fVertex3fSUN MANGLE(ReplacementCodeuiTexCoord2fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fVertex3fvSUN MANGLE(ReplacementCodeuiTexCoord2fVertex3fvSUN) -#define glReplacementCodeuiVertex3fSUN MANGLE(ReplacementCodeuiVertex3fSUN) -#define glReplacementCodeuiVertex3fvSUN MANGLE(ReplacementCodeuiVertex3fvSUN) -#define glReplacementCodeuivSUN MANGLE(ReplacementCodeuivSUN) -#define glReplacementCodeusSUN MANGLE(ReplacementCodeusSUN) -#define glReplacementCodeusvSUN MANGLE(ReplacementCodeusvSUN) -#define glRequestResidentProgramsNV MANGLE(RequestResidentProgramsNV) -#define glResetHistogramEXT MANGLE(ResetHistogramEXT) -#define glResetHistogram MANGLE(ResetHistogram) -#define glResetMinmaxEXT MANGLE(ResetMinmaxEXT) -#define glResetMinmax MANGLE(ResetMinmax) -#define glResizeBuffersMESA MANGLE(ResizeBuffersMESA) -#define glResumeTransformFeedback MANGLE(ResumeTransformFeedback) -#define glResumeTransformFeedbackNV MANGLE(ResumeTransformFeedbackNV) -#define glRotated MANGLE(Rotated) -#define glRotatef MANGLE(Rotatef) -#define glSampleCoverageARB MANGLE(SampleCoverageARB) -#define glSampleCoverage MANGLE(SampleCoverage) -#define glSampleMapATI MANGLE(SampleMapATI) -#define glSampleMaskEXT MANGLE(SampleMaskEXT) -#define glSampleMaski MANGLE(SampleMaski) -#define glSampleMaskIndexedNV MANGLE(SampleMaskIndexedNV) -#define glSampleMaskSGIS MANGLE(SampleMaskSGIS) -#define glSamplePatternEXT MANGLE(SamplePatternEXT) -#define glSamplePatternSGIS MANGLE(SamplePatternSGIS) -#define glSamplerParameterf MANGLE(SamplerParameterf) -#define glSamplerParameterfv MANGLE(SamplerParameterfv) -#define glSamplerParameterIiv MANGLE(SamplerParameterIiv) -#define glSamplerParameteri MANGLE(SamplerParameteri) -#define glSamplerParameterIuiv MANGLE(SamplerParameterIuiv) -#define glSamplerParameteriv MANGLE(SamplerParameteriv) -#define glScaled MANGLE(Scaled) -#define glScalef MANGLE(Scalef) -#define glScissorArrayv MANGLE(ScissorArrayv) -#define glScissorIndexed MANGLE(ScissorIndexed) -#define glScissorIndexedv MANGLE(ScissorIndexedv) -#define glScissor MANGLE(Scissor) -#define glSecondaryColor3bEXT MANGLE(SecondaryColor3bEXT) -#define glSecondaryColor3b MANGLE(SecondaryColor3b) -#define glSecondaryColor3bvEXT MANGLE(SecondaryColor3bvEXT) -#define glSecondaryColor3bv MANGLE(SecondaryColor3bv) -#define glSecondaryColor3dEXT MANGLE(SecondaryColor3dEXT) -#define glSecondaryColor3d MANGLE(SecondaryColor3d) -#define glSecondaryColor3dvEXT MANGLE(SecondaryColor3dvEXT) -#define glSecondaryColor3dv MANGLE(SecondaryColor3dv) -#define glSecondaryColor3fEXT MANGLE(SecondaryColor3fEXT) -#define glSecondaryColor3f MANGLE(SecondaryColor3f) -#define glSecondaryColor3fvEXT MANGLE(SecondaryColor3fvEXT) -#define glSecondaryColor3fv MANGLE(SecondaryColor3fv) -#define glSecondaryColor3hNV MANGLE(SecondaryColor3hNV) -#define glSecondaryColor3hvNV MANGLE(SecondaryColor3hvNV) -#define glSecondaryColor3iEXT MANGLE(SecondaryColor3iEXT) -#define glSecondaryColor3i MANGLE(SecondaryColor3i) -#define glSecondaryColor3ivEXT MANGLE(SecondaryColor3ivEXT) -#define glSecondaryColor3iv MANGLE(SecondaryColor3iv) -#define glSecondaryColor3sEXT MANGLE(SecondaryColor3sEXT) -#define glSecondaryColor3s MANGLE(SecondaryColor3s) -#define glSecondaryColor3svEXT MANGLE(SecondaryColor3svEXT) -#define glSecondaryColor3sv MANGLE(SecondaryColor3sv) -#define glSecondaryColor3ubEXT MANGLE(SecondaryColor3ubEXT) -#define glSecondaryColor3ub MANGLE(SecondaryColor3ub) -#define glSecondaryColor3ubvEXT MANGLE(SecondaryColor3ubvEXT) -#define glSecondaryColor3ubv MANGLE(SecondaryColor3ubv) -#define glSecondaryColor3uiEXT MANGLE(SecondaryColor3uiEXT) -#define glSecondaryColor3ui MANGLE(SecondaryColor3ui) -#define glSecondaryColor3uivEXT MANGLE(SecondaryColor3uivEXT) -#define glSecondaryColor3uiv MANGLE(SecondaryColor3uiv) -#define glSecondaryColor3usEXT MANGLE(SecondaryColor3usEXT) -#define glSecondaryColor3us MANGLE(SecondaryColor3us) -#define glSecondaryColor3usvEXT MANGLE(SecondaryColor3usvEXT) -#define glSecondaryColor3usv MANGLE(SecondaryColor3usv) -#define glSecondaryColorFormatNV MANGLE(SecondaryColorFormatNV) -#define glSecondaryColorP3ui MANGLE(SecondaryColorP3ui) -#define glSecondaryColorP3uiv MANGLE(SecondaryColorP3uiv) -#define glSecondaryColorPointerEXT MANGLE(SecondaryColorPointerEXT) -#define glSecondaryColorPointerListIBM MANGLE(SecondaryColorPointerListIBM) -#define glSecondaryColorPointer MANGLE(SecondaryColorPointer) -#define glSelectBuffer MANGLE(SelectBuffer) -#define glSelectPerfMonitorCountersAMD MANGLE(SelectPerfMonitorCountersAMD) -#define glSeparableFilter2DEXT MANGLE(SeparableFilter2DEXT) -#define glSeparableFilter2D MANGLE(SeparableFilter2D) -#define glSetFenceAPPLE MANGLE(SetFenceAPPLE) -#define glSetFenceNV MANGLE(SetFenceNV) -#define glSetFragmentShaderConstantATI MANGLE(SetFragmentShaderConstantATI) -#define glSetInvariantEXT MANGLE(SetInvariantEXT) -#define glSetLocalConstantEXT MANGLE(SetLocalConstantEXT) -#define glShadeModel MANGLE(ShadeModel) -#define glShaderBinary MANGLE(ShaderBinary) -#define glShaderOp1EXT MANGLE(ShaderOp1EXT) -#define glShaderOp2EXT MANGLE(ShaderOp2EXT) -#define glShaderOp3EXT MANGLE(ShaderOp3EXT) -#define glShaderSourceARB MANGLE(ShaderSourceARB) -#define glShaderSource MANGLE(ShaderSource) -#define glSharpenTexFuncSGIS MANGLE(SharpenTexFuncSGIS) -#define glSpriteParameterfSGIX MANGLE(SpriteParameterfSGIX) -#define glSpriteParameterfvSGIX MANGLE(SpriteParameterfvSGIX) -#define glSpriteParameteriSGIX MANGLE(SpriteParameteriSGIX) -#define glSpriteParameterivSGIX MANGLE(SpriteParameterivSGIX) -#define glStartInstrumentsSGIX MANGLE(StartInstrumentsSGIX) -#define glStencilClearTagEXT MANGLE(StencilClearTagEXT) -#define glStencilFunc MANGLE(StencilFunc) -#define glStencilFuncSeparateATI MANGLE(StencilFuncSeparateATI) -#define glStencilFuncSeparate MANGLE(StencilFuncSeparate) -#define glStencilMask MANGLE(StencilMask) -#define glStencilMaskSeparate MANGLE(StencilMaskSeparate) -#define glStencilOp MANGLE(StencilOp) -#define glStencilOpSeparateATI MANGLE(StencilOpSeparateATI) -#define glStencilOpSeparate MANGLE(StencilOpSeparate) -#define glStopInstrumentsSGIX MANGLE(StopInstrumentsSGIX) -#define glStringMarkerGREMEDY MANGLE(StringMarkerGREMEDY) -#define glSwizzleEXT MANGLE(SwizzleEXT) -#define glTagSampleBufferSGIX MANGLE(TagSampleBufferSGIX) -#define glTangent3bEXT MANGLE(Tangent3bEXT) -#define glTangent3bvEXT MANGLE(Tangent3bvEXT) -#define glTangent3dEXT MANGLE(Tangent3dEXT) -#define glTangent3dvEXT MANGLE(Tangent3dvEXT) -#define glTangent3fEXT MANGLE(Tangent3fEXT) -#define glTangent3fvEXT MANGLE(Tangent3fvEXT) -#define glTangent3iEXT MANGLE(Tangent3iEXT) -#define glTangent3ivEXT MANGLE(Tangent3ivEXT) -#define glTangent3sEXT MANGLE(Tangent3sEXT) -#define glTangent3svEXT MANGLE(Tangent3svEXT) -#define glTangentPointerEXT MANGLE(TangentPointerEXT) -#define glTbufferMask3DFX MANGLE(TbufferMask3DFX) -#define glTessellationFactorAMD MANGLE(TessellationFactorAMD) -#define glTessellationModeAMD MANGLE(TessellationModeAMD) -#define glTestFenceAPPLE MANGLE(TestFenceAPPLE) -#define glTestFenceNV MANGLE(TestFenceNV) -#define glTestObjectAPPLE MANGLE(TestObjectAPPLE) -#define glTexBufferARB MANGLE(TexBufferARB) -#define glTexBufferEXT MANGLE(TexBufferEXT) -#define glTexBuffer MANGLE(TexBuffer) -#define glTexBumpParameterfvATI MANGLE(TexBumpParameterfvATI) -#define glTexBumpParameterivATI MANGLE(TexBumpParameterivATI) -#define glTexCoord1d MANGLE(TexCoord1d) -#define glTexCoord1dv MANGLE(TexCoord1dv) -#define glTexCoord1f MANGLE(TexCoord1f) -#define glTexCoord1fv MANGLE(TexCoord1fv) -#define glTexCoord1hNV MANGLE(TexCoord1hNV) -#define glTexCoord1hvNV MANGLE(TexCoord1hvNV) -#define glTexCoord1i MANGLE(TexCoord1i) -#define glTexCoord1iv MANGLE(TexCoord1iv) -#define glTexCoord1s MANGLE(TexCoord1s) -#define glTexCoord1sv MANGLE(TexCoord1sv) -#define glTexCoord2d MANGLE(TexCoord2d) -#define glTexCoord2dv MANGLE(TexCoord2dv) -#define glTexCoord2fColor3fVertex3fSUN MANGLE(TexCoord2fColor3fVertex3fSUN) -#define glTexCoord2fColor3fVertex3fvSUN MANGLE(TexCoord2fColor3fVertex3fvSUN) -#define glTexCoord2fColor4fNormal3fVertex3fSUN MANGLE(TexCoord2fColor4fNormal3fVertex3fSUN) -#define glTexCoord2fColor4fNormal3fVertex3fvSUN MANGLE(TexCoord2fColor4fNormal3fVertex3fvSUN) -#define glTexCoord2fColor4ubVertex3fSUN MANGLE(TexCoord2fColor4ubVertex3fSUN) -#define glTexCoord2fColor4ubVertex3fvSUN MANGLE(TexCoord2fColor4ubVertex3fvSUN) -#define glTexCoord2f MANGLE(TexCoord2f) -#define glTexCoord2fNormal3fVertex3fSUN MANGLE(TexCoord2fNormal3fVertex3fSUN) -#define glTexCoord2fNormal3fVertex3fvSUN MANGLE(TexCoord2fNormal3fVertex3fvSUN) -#define glTexCoord2fVertex3fSUN MANGLE(TexCoord2fVertex3fSUN) -#define glTexCoord2fVertex3fvSUN MANGLE(TexCoord2fVertex3fvSUN) -#define glTexCoord2fv MANGLE(TexCoord2fv) -#define glTexCoord2hNV MANGLE(TexCoord2hNV) -#define glTexCoord2hvNV MANGLE(TexCoord2hvNV) -#define glTexCoord2i MANGLE(TexCoord2i) -#define glTexCoord2iv MANGLE(TexCoord2iv) -#define glTexCoord2s MANGLE(TexCoord2s) -#define glTexCoord2sv MANGLE(TexCoord2sv) -#define glTexCoord3d MANGLE(TexCoord3d) -#define glTexCoord3dv MANGLE(TexCoord3dv) -#define glTexCoord3f MANGLE(TexCoord3f) -#define glTexCoord3fv MANGLE(TexCoord3fv) -#define glTexCoord3hNV MANGLE(TexCoord3hNV) -#define glTexCoord3hvNV MANGLE(TexCoord3hvNV) -#define glTexCoord3i MANGLE(TexCoord3i) -#define glTexCoord3iv MANGLE(TexCoord3iv) -#define glTexCoord3s MANGLE(TexCoord3s) -#define glTexCoord3sv MANGLE(TexCoord3sv) -#define glTexCoord4d MANGLE(TexCoord4d) -#define glTexCoord4dv MANGLE(TexCoord4dv) -#define glTexCoord4fColor4fNormal3fVertex4fSUN MANGLE(TexCoord4fColor4fNormal3fVertex4fSUN) -#define glTexCoord4fColor4fNormal3fVertex4fvSUN MANGLE(TexCoord4fColor4fNormal3fVertex4fvSUN) -#define glTexCoord4f MANGLE(TexCoord4f) -#define glTexCoord4fVertex4fSUN MANGLE(TexCoord4fVertex4fSUN) -#define glTexCoord4fVertex4fvSUN MANGLE(TexCoord4fVertex4fvSUN) -#define glTexCoord4fv MANGLE(TexCoord4fv) -#define glTexCoord4hNV MANGLE(TexCoord4hNV) -#define glTexCoord4hvNV MANGLE(TexCoord4hvNV) -#define glTexCoord4i MANGLE(TexCoord4i) -#define glTexCoord4iv MANGLE(TexCoord4iv) -#define glTexCoord4s MANGLE(TexCoord4s) -#define glTexCoord4sv MANGLE(TexCoord4sv) -#define glTexCoordFormatNV MANGLE(TexCoordFormatNV) -#define glTexCoordP1ui MANGLE(TexCoordP1ui) -#define glTexCoordP1uiv MANGLE(TexCoordP1uiv) -#define glTexCoordP2ui MANGLE(TexCoordP2ui) -#define glTexCoordP2uiv MANGLE(TexCoordP2uiv) -#define glTexCoordP3ui MANGLE(TexCoordP3ui) -#define glTexCoordP3uiv MANGLE(TexCoordP3uiv) -#define glTexCoordP4ui MANGLE(TexCoordP4ui) -#define glTexCoordP4uiv MANGLE(TexCoordP4uiv) -#define glTexCoordPointerEXT MANGLE(TexCoordPointerEXT) -#define glTexCoordPointerListIBM MANGLE(TexCoordPointerListIBM) -#define glTexCoordPointer MANGLE(TexCoordPointer) -#define glTexCoordPointervINTEL MANGLE(TexCoordPointervINTEL) -#define glTexEnvf MANGLE(TexEnvf) -#define glTexEnvfv MANGLE(TexEnvfv) -#define glTexEnvi MANGLE(TexEnvi) -#define glTexEnviv MANGLE(TexEnviv) -#define glTexFilterFuncSGIS MANGLE(TexFilterFuncSGIS) -#define glTexGend MANGLE(TexGend) -#define glTexGendv MANGLE(TexGendv) -#define glTexGenf MANGLE(TexGenf) -#define glTexGenfv MANGLE(TexGenfv) -#define glTexGeni MANGLE(TexGeni) -#define glTexGeniv MANGLE(TexGeniv) -#define glTexImage1D MANGLE(TexImage1D) -#define glTexImage2D MANGLE(TexImage2D) -#define glTexImage2DMultisample MANGLE(TexImage2DMultisample) -#define glTexImage3DEXT MANGLE(TexImage3DEXT) -#define glTexImage3D MANGLE(TexImage3D) -#define glTexImage3DMultisample MANGLE(TexImage3DMultisample) -#define glTexImage4DSGIS MANGLE(TexImage4DSGIS) -#define glTexParameterf MANGLE(TexParameterf) -#define glTexParameterfv MANGLE(TexParameterfv) -#define glTexParameterIivEXT MANGLE(TexParameterIivEXT) -#define glTexParameterIiv MANGLE(TexParameterIiv) -#define glTexParameteri MANGLE(TexParameteri) -#define glTexParameterIuivEXT MANGLE(TexParameterIuivEXT) -#define glTexParameterIuiv MANGLE(TexParameterIuiv) -#define glTexParameteriv MANGLE(TexParameteriv) -#define glTexRenderbufferNV MANGLE(TexRenderbufferNV) -#define glTexSubImage1DEXT MANGLE(TexSubImage1DEXT) -#define glTexSubImage1D MANGLE(TexSubImage1D) -#define glTexSubImage2DEXT MANGLE(TexSubImage2DEXT) -#define glTexSubImage2D MANGLE(TexSubImage2D) -#define glTexSubImage3DEXT MANGLE(TexSubImage3DEXT) -#define glTexSubImage3D MANGLE(TexSubImage3D) -#define glTexSubImage4DSGIS MANGLE(TexSubImage4DSGIS) -#define glTextureBarrierNV MANGLE(TextureBarrierNV) -#define glTextureBufferEXT MANGLE(TextureBufferEXT) -#define glTextureColorMaskSGIS MANGLE(TextureColorMaskSGIS) -#define glTextureImage1DEXT MANGLE(TextureImage1DEXT) -#define glTextureImage2DEXT MANGLE(TextureImage2DEXT) -#define glTextureImage3DEXT MANGLE(TextureImage3DEXT) -#define glTextureLightEXT MANGLE(TextureLightEXT) -#define glTextureMaterialEXT MANGLE(TextureMaterialEXT) -#define glTextureNormalEXT MANGLE(TextureNormalEXT) -#define glTextureParameterfEXT MANGLE(TextureParameterfEXT) -#define glTextureParameterfvEXT MANGLE(TextureParameterfvEXT) -#define glTextureParameteriEXT MANGLE(TextureParameteriEXT) -#define glTextureParameterIivEXT MANGLE(TextureParameterIivEXT) -#define glTextureParameterIuivEXT MANGLE(TextureParameterIuivEXT) -#define glTextureParameterivEXT MANGLE(TextureParameterivEXT) -#define glTextureRangeAPPLE MANGLE(TextureRangeAPPLE) -#define glTextureRenderbufferEXT MANGLE(TextureRenderbufferEXT) -#define glTextureSubImage1DEXT MANGLE(TextureSubImage1DEXT) -#define glTextureSubImage2DEXT MANGLE(TextureSubImage2DEXT) -#define glTextureSubImage3DEXT MANGLE(TextureSubImage3DEXT) -#define glTrackMatrixNV MANGLE(TrackMatrixNV) -#define glTransformFeedbackAttribsNV MANGLE(TransformFeedbackAttribsNV) -#define glTransformFeedbackStreamAttribsNV MANGLE(TransformFeedbackStreamAttribsNV) -#define glTransformFeedbackVaryingsEXT MANGLE(TransformFeedbackVaryingsEXT) -#define glTransformFeedbackVaryings MANGLE(TransformFeedbackVaryings) -#define glTransformFeedbackVaryingsNV MANGLE(TransformFeedbackVaryingsNV) -#define glTranslated MANGLE(Translated) -#define glTranslatef MANGLE(Translatef) -#define glUniform1d MANGLE(Uniform1d) -#define glUniform1dv MANGLE(Uniform1dv) -#define glUniform1fARB MANGLE(Uniform1fARB) -#define glUniform1f MANGLE(Uniform1f) -#define glUniform1fvARB MANGLE(Uniform1fvARB) -#define glUniform1fv MANGLE(Uniform1fv) -#define glUniform1i64NV MANGLE(Uniform1i64NV) -#define glUniform1i64vNV MANGLE(Uniform1i64vNV) -#define glUniform1iARB MANGLE(Uniform1iARB) -#define glUniform1i MANGLE(Uniform1i) -#define glUniform1ivARB MANGLE(Uniform1ivARB) -#define glUniform1iv MANGLE(Uniform1iv) -#define glUniform1ui64NV MANGLE(Uniform1ui64NV) -#define glUniform1ui64vNV MANGLE(Uniform1ui64vNV) -#define glUniform1uiEXT MANGLE(Uniform1uiEXT) -#define glUniform1ui MANGLE(Uniform1ui) -#define glUniform1uivEXT MANGLE(Uniform1uivEXT) -#define glUniform1uiv MANGLE(Uniform1uiv) -#define glUniform2d MANGLE(Uniform2d) -#define glUniform2dv MANGLE(Uniform2dv) -#define glUniform2fARB MANGLE(Uniform2fARB) -#define glUniform2f MANGLE(Uniform2f) -#define glUniform2fvARB MANGLE(Uniform2fvARB) -#define glUniform2fv MANGLE(Uniform2fv) -#define glUniform2i64NV MANGLE(Uniform2i64NV) -#define glUniform2i64vNV MANGLE(Uniform2i64vNV) -#define glUniform2iARB MANGLE(Uniform2iARB) -#define glUniform2i MANGLE(Uniform2i) -#define glUniform2ivARB MANGLE(Uniform2ivARB) -#define glUniform2iv MANGLE(Uniform2iv) -#define glUniform2ui64NV MANGLE(Uniform2ui64NV) -#define glUniform2ui64vNV MANGLE(Uniform2ui64vNV) -#define glUniform2uiEXT MANGLE(Uniform2uiEXT) -#define glUniform2ui MANGLE(Uniform2ui) -#define glUniform2uivEXT MANGLE(Uniform2uivEXT) -#define glUniform2uiv MANGLE(Uniform2uiv) -#define glUniform3d MANGLE(Uniform3d) -#define glUniform3dv MANGLE(Uniform3dv) -#define glUniform3fARB MANGLE(Uniform3fARB) -#define glUniform3f MANGLE(Uniform3f) -#define glUniform3fvARB MANGLE(Uniform3fvARB) -#define glUniform3fv MANGLE(Uniform3fv) -#define glUniform3i64NV MANGLE(Uniform3i64NV) -#define glUniform3i64vNV MANGLE(Uniform3i64vNV) -#define glUniform3iARB MANGLE(Uniform3iARB) -#define glUniform3i MANGLE(Uniform3i) -#define glUniform3ivARB MANGLE(Uniform3ivARB) -#define glUniform3iv MANGLE(Uniform3iv) -#define glUniform3ui64NV MANGLE(Uniform3ui64NV) -#define glUniform3ui64vNV MANGLE(Uniform3ui64vNV) -#define glUniform3uiEXT MANGLE(Uniform3uiEXT) -#define glUniform3ui MANGLE(Uniform3ui) -#define glUniform3uivEXT MANGLE(Uniform3uivEXT) -#define glUniform3uiv MANGLE(Uniform3uiv) -#define glUniform4d MANGLE(Uniform4d) -#define glUniform4dv MANGLE(Uniform4dv) -#define glUniform4fARB MANGLE(Uniform4fARB) -#define glUniform4f MANGLE(Uniform4f) -#define glUniform4fvARB MANGLE(Uniform4fvARB) -#define glUniform4fv MANGLE(Uniform4fv) -#define glUniform4i64NV MANGLE(Uniform4i64NV) -#define glUniform4i64vNV MANGLE(Uniform4i64vNV) -#define glUniform4iARB MANGLE(Uniform4iARB) -#define glUniform4i MANGLE(Uniform4i) -#define glUniform4ivARB MANGLE(Uniform4ivARB) -#define glUniform4iv MANGLE(Uniform4iv) -#define glUniform4ui64NV MANGLE(Uniform4ui64NV) -#define glUniform4ui64vNV MANGLE(Uniform4ui64vNV) -#define glUniform4uiEXT MANGLE(Uniform4uiEXT) -#define glUniform4ui MANGLE(Uniform4ui) -#define glUniform4uivEXT MANGLE(Uniform4uivEXT) -#define glUniform4uiv MANGLE(Uniform4uiv) -#define glUniformBlockBinding MANGLE(UniformBlockBinding) -#define glUniformBufferEXT MANGLE(UniformBufferEXT) -#define glUniformMatrix2dv MANGLE(UniformMatrix2dv) -#define glUniformMatrix2fvARB MANGLE(UniformMatrix2fvARB) -#define glUniformMatrix2fv MANGLE(UniformMatrix2fv) -#define glUniformMatrix2x3dv MANGLE(UniformMatrix2x3dv) -#define glUniformMatrix2x3fv MANGLE(UniformMatrix2x3fv) -#define glUniformMatrix2x4dv MANGLE(UniformMatrix2x4dv) -#define glUniformMatrix2x4fv MANGLE(UniformMatrix2x4fv) -#define glUniformMatrix3dv MANGLE(UniformMatrix3dv) -#define glUniformMatrix3fvARB MANGLE(UniformMatrix3fvARB) -#define glUniformMatrix3fv MANGLE(UniformMatrix3fv) -#define glUniformMatrix3x2dv MANGLE(UniformMatrix3x2dv) -#define glUniformMatrix3x2fv MANGLE(UniformMatrix3x2fv) -#define glUniformMatrix3x4dv MANGLE(UniformMatrix3x4dv) -#define glUniformMatrix3x4fv MANGLE(UniformMatrix3x4fv) -#define glUniformMatrix4dv MANGLE(UniformMatrix4dv) -#define glUniformMatrix4fvARB MANGLE(UniformMatrix4fvARB) -#define glUniformMatrix4fv MANGLE(UniformMatrix4fv) -#define glUniformMatrix4x2dv MANGLE(UniformMatrix4x2dv) -#define glUniformMatrix4x2fv MANGLE(UniformMatrix4x2fv) -#define glUniformMatrix4x3dv MANGLE(UniformMatrix4x3dv) -#define glUniformMatrix4x3fv MANGLE(UniformMatrix4x3fv) -#define glUniformSubroutinesuiv MANGLE(UniformSubroutinesuiv) -#define glUniformui64NV MANGLE(Uniformui64NV) -#define glUniformui64vNV MANGLE(Uniformui64vNV) -#define glUnlockArraysEXT MANGLE(UnlockArraysEXT) -#define glUnmapBufferARB MANGLE(UnmapBufferARB) -#define glUnmapBuffer MANGLE(UnmapBuffer) -#define glUnmapNamedBufferEXT MANGLE(UnmapNamedBufferEXT) -#define glUnmapObjectBufferATI MANGLE(UnmapObjectBufferATI) -#define glUpdateObjectBufferATI MANGLE(UpdateObjectBufferATI) -#define glUseProgram MANGLE(UseProgram) -#define glUseProgramObjectARB MANGLE(UseProgramObjectARB) -#define glUseProgramStages MANGLE(UseProgramStages) -#define glUseShaderProgramEXT MANGLE(UseShaderProgramEXT) -#define glValidateProgramARB MANGLE(ValidateProgramARB) -#define glValidateProgram MANGLE(ValidateProgram) -#define glValidateProgramPipeline MANGLE(ValidateProgramPipeline) -#define glVariantArrayObjectATI MANGLE(VariantArrayObjectATI) -#define glVariantbvEXT MANGLE(VariantbvEXT) -#define glVariantdvEXT MANGLE(VariantdvEXT) -#define glVariantfvEXT MANGLE(VariantfvEXT) -#define glVariantivEXT MANGLE(VariantivEXT) -#define glVariantPointerEXT MANGLE(VariantPointerEXT) -#define glVariantsvEXT MANGLE(VariantsvEXT) -#define glVariantubvEXT MANGLE(VariantubvEXT) -#define glVariantuivEXT MANGLE(VariantuivEXT) -#define glVariantusvEXT MANGLE(VariantusvEXT) -#define glVDPAUFiniNV MANGLE(VDPAUFiniNV) -#define glVDPAUGetSurfaceivNV MANGLE(VDPAUGetSurfaceivNV) -#define glVDPAUInitNV MANGLE(VDPAUInitNV) -#define glVDPAUIsSurfaceNV MANGLE(VDPAUIsSurfaceNV) -#define glVDPAUMapSurfacesNV MANGLE(VDPAUMapSurfacesNV) -#define glVDPAURegisterOutputSurfaceNV MANGLE(VDPAURegisterOutputSurfaceNV) -#define glVDPAURegisterVideoSurfaceNV MANGLE(VDPAURegisterVideoSurfaceNV) -#define glVDPAUSurfaceAccessNV MANGLE(VDPAUSurfaceAccessNV) -#define glVDPAUUnmapSurfacesNV MANGLE(VDPAUUnmapSurfacesNV) -#define glVDPAUUnregisterSurfaceNV MANGLE(VDPAUUnregisterSurfaceNV) -#define glVertex2d MANGLE(Vertex2d) -#define glVertex2dv MANGLE(Vertex2dv) -#define glVertex2f MANGLE(Vertex2f) -#define glVertex2fv MANGLE(Vertex2fv) -#define glVertex2hNV MANGLE(Vertex2hNV) -#define glVertex2hvNV MANGLE(Vertex2hvNV) -#define glVertex2i MANGLE(Vertex2i) -#define glVertex2iv MANGLE(Vertex2iv) -#define glVertex2s MANGLE(Vertex2s) -#define glVertex2sv MANGLE(Vertex2sv) -#define glVertex3d MANGLE(Vertex3d) -#define glVertex3dv MANGLE(Vertex3dv) -#define glVertex3f MANGLE(Vertex3f) -#define glVertex3fv MANGLE(Vertex3fv) -#define glVertex3hNV MANGLE(Vertex3hNV) -#define glVertex3hvNV MANGLE(Vertex3hvNV) -#define glVertex3i MANGLE(Vertex3i) -#define glVertex3iv MANGLE(Vertex3iv) -#define glVertex3s MANGLE(Vertex3s) -#define glVertex3sv MANGLE(Vertex3sv) -#define glVertex4d MANGLE(Vertex4d) -#define glVertex4dv MANGLE(Vertex4dv) -#define glVertex4f MANGLE(Vertex4f) -#define glVertex4fv MANGLE(Vertex4fv) -#define glVertex4hNV MANGLE(Vertex4hNV) -#define glVertex4hvNV MANGLE(Vertex4hvNV) -#define glVertex4i MANGLE(Vertex4i) -#define glVertex4iv MANGLE(Vertex4iv) -#define glVertex4s MANGLE(Vertex4s) -#define glVertex4sv MANGLE(Vertex4sv) -#define glVertexArrayParameteriAPPLE MANGLE(VertexArrayParameteriAPPLE) -#define glVertexArrayRangeAPPLE MANGLE(VertexArrayRangeAPPLE) -#define glVertexArrayRangeNV MANGLE(VertexArrayRangeNV) -#define glVertexArrayVertexAttribLOffsetEXT MANGLE(VertexArrayVertexAttribLOffsetEXT) -#define glVertexAttrib1dARB MANGLE(VertexAttrib1dARB) -#define glVertexAttrib1d MANGLE(VertexAttrib1d) -#define glVertexAttrib1dNV MANGLE(VertexAttrib1dNV) -#define glVertexAttrib1dvARB MANGLE(VertexAttrib1dvARB) -#define glVertexAttrib1dv MANGLE(VertexAttrib1dv) -#define glVertexAttrib1dvNV MANGLE(VertexAttrib1dvNV) -#define glVertexAttrib1fARB MANGLE(VertexAttrib1fARB) -#define glVertexAttrib1f MANGLE(VertexAttrib1f) -#define glVertexAttrib1fNV MANGLE(VertexAttrib1fNV) -#define glVertexAttrib1fvARB MANGLE(VertexAttrib1fvARB) -#define glVertexAttrib1fv MANGLE(VertexAttrib1fv) -#define glVertexAttrib1fvNV MANGLE(VertexAttrib1fvNV) -#define glVertexAttrib1hNV MANGLE(VertexAttrib1hNV) -#define glVertexAttrib1hvNV MANGLE(VertexAttrib1hvNV) -#define glVertexAttrib1sARB MANGLE(VertexAttrib1sARB) -#define glVertexAttrib1s MANGLE(VertexAttrib1s) -#define glVertexAttrib1sNV MANGLE(VertexAttrib1sNV) -#define glVertexAttrib1svARB MANGLE(VertexAttrib1svARB) -#define glVertexAttrib1sv MANGLE(VertexAttrib1sv) -#define glVertexAttrib1svNV MANGLE(VertexAttrib1svNV) -#define glVertexAttrib2dARB MANGLE(VertexAttrib2dARB) -#define glVertexAttrib2d MANGLE(VertexAttrib2d) -#define glVertexAttrib2dNV MANGLE(VertexAttrib2dNV) -#define glVertexAttrib2dvARB MANGLE(VertexAttrib2dvARB) -#define glVertexAttrib2dv MANGLE(VertexAttrib2dv) -#define glVertexAttrib2dvNV MANGLE(VertexAttrib2dvNV) -#define glVertexAttrib2fARB MANGLE(VertexAttrib2fARB) -#define glVertexAttrib2f MANGLE(VertexAttrib2f) -#define glVertexAttrib2fNV MANGLE(VertexAttrib2fNV) -#define glVertexAttrib2fvARB MANGLE(VertexAttrib2fvARB) -#define glVertexAttrib2fv MANGLE(VertexAttrib2fv) -#define glVertexAttrib2fvNV MANGLE(VertexAttrib2fvNV) -#define glVertexAttrib2hNV MANGLE(VertexAttrib2hNV) -#define glVertexAttrib2hvNV MANGLE(VertexAttrib2hvNV) -#define glVertexAttrib2sARB MANGLE(VertexAttrib2sARB) -#define glVertexAttrib2s MANGLE(VertexAttrib2s) -#define glVertexAttrib2sNV MANGLE(VertexAttrib2sNV) -#define glVertexAttrib2svARB MANGLE(VertexAttrib2svARB) -#define glVertexAttrib2sv MANGLE(VertexAttrib2sv) -#define glVertexAttrib2svNV MANGLE(VertexAttrib2svNV) -#define glVertexAttrib3dARB MANGLE(VertexAttrib3dARB) -#define glVertexAttrib3d MANGLE(VertexAttrib3d) -#define glVertexAttrib3dNV MANGLE(VertexAttrib3dNV) -#define glVertexAttrib3dvARB MANGLE(VertexAttrib3dvARB) -#define glVertexAttrib3dv MANGLE(VertexAttrib3dv) -#define glVertexAttrib3dvNV MANGLE(VertexAttrib3dvNV) -#define glVertexAttrib3fARB MANGLE(VertexAttrib3fARB) -#define glVertexAttrib3f MANGLE(VertexAttrib3f) -#define glVertexAttrib3fNV MANGLE(VertexAttrib3fNV) -#define glVertexAttrib3fvARB MANGLE(VertexAttrib3fvARB) -#define glVertexAttrib3fv MANGLE(VertexAttrib3fv) -#define glVertexAttrib3fvNV MANGLE(VertexAttrib3fvNV) -#define glVertexAttrib3hNV MANGLE(VertexAttrib3hNV) -#define glVertexAttrib3hvNV MANGLE(VertexAttrib3hvNV) -#define glVertexAttrib3sARB MANGLE(VertexAttrib3sARB) -#define glVertexAttrib3s MANGLE(VertexAttrib3s) -#define glVertexAttrib3sNV MANGLE(VertexAttrib3sNV) -#define glVertexAttrib3svARB MANGLE(VertexAttrib3svARB) -#define glVertexAttrib3sv MANGLE(VertexAttrib3sv) -#define glVertexAttrib3svNV MANGLE(VertexAttrib3svNV) -#define glVertexAttrib4bvARB MANGLE(VertexAttrib4bvARB) -#define glVertexAttrib4bv MANGLE(VertexAttrib4bv) -#define glVertexAttrib4dARB MANGLE(VertexAttrib4dARB) -#define glVertexAttrib4d MANGLE(VertexAttrib4d) -#define glVertexAttrib4dNV MANGLE(VertexAttrib4dNV) -#define glVertexAttrib4dvARB MANGLE(VertexAttrib4dvARB) -#define glVertexAttrib4dv MANGLE(VertexAttrib4dv) -#define glVertexAttrib4dvNV MANGLE(VertexAttrib4dvNV) -#define glVertexAttrib4fARB MANGLE(VertexAttrib4fARB) -#define glVertexAttrib4f MANGLE(VertexAttrib4f) -#define glVertexAttrib4fNV MANGLE(VertexAttrib4fNV) -#define glVertexAttrib4fvARB MANGLE(VertexAttrib4fvARB) -#define glVertexAttrib4fv MANGLE(VertexAttrib4fv) -#define glVertexAttrib4fvNV MANGLE(VertexAttrib4fvNV) -#define glVertexAttrib4hNV MANGLE(VertexAttrib4hNV) -#define glVertexAttrib4hvNV MANGLE(VertexAttrib4hvNV) -#define glVertexAttrib4ivARB MANGLE(VertexAttrib4ivARB) -#define glVertexAttrib4iv MANGLE(VertexAttrib4iv) -#define glVertexAttrib4NbvARB MANGLE(VertexAttrib4NbvARB) -#define glVertexAttrib4Nbv MANGLE(VertexAttrib4Nbv) -#define glVertexAttrib4NivARB MANGLE(VertexAttrib4NivARB) -#define glVertexAttrib4Niv MANGLE(VertexAttrib4Niv) -#define glVertexAttrib4NsvARB MANGLE(VertexAttrib4NsvARB) -#define glVertexAttrib4Nsv MANGLE(VertexAttrib4Nsv) -#define glVertexAttrib4NubARB MANGLE(VertexAttrib4NubARB) -#define glVertexAttrib4Nub MANGLE(VertexAttrib4Nub) -#define glVertexAttrib4NubvARB MANGLE(VertexAttrib4NubvARB) -#define glVertexAttrib4Nubv MANGLE(VertexAttrib4Nubv) -#define glVertexAttrib4NuivARB MANGLE(VertexAttrib4NuivARB) -#define glVertexAttrib4Nuiv MANGLE(VertexAttrib4Nuiv) -#define glVertexAttrib4NusvARB MANGLE(VertexAttrib4NusvARB) -#define glVertexAttrib4Nusv MANGLE(VertexAttrib4Nusv) -#define glVertexAttrib4sARB MANGLE(VertexAttrib4sARB) -#define glVertexAttrib4s MANGLE(VertexAttrib4s) -#define glVertexAttrib4sNV MANGLE(VertexAttrib4sNV) -#define glVertexAttrib4svARB MANGLE(VertexAttrib4svARB) -#define glVertexAttrib4sv MANGLE(VertexAttrib4sv) -#define glVertexAttrib4svNV MANGLE(VertexAttrib4svNV) -#define glVertexAttrib4ubNV MANGLE(VertexAttrib4ubNV) -#define glVertexAttrib4ubvARB MANGLE(VertexAttrib4ubvARB) -#define glVertexAttrib4ubv MANGLE(VertexAttrib4ubv) -#define glVertexAttrib4ubvNV MANGLE(VertexAttrib4ubvNV) -#define glVertexAttrib4uivARB MANGLE(VertexAttrib4uivARB) -#define glVertexAttrib4uiv MANGLE(VertexAttrib4uiv) -#define glVertexAttrib4usvARB MANGLE(VertexAttrib4usvARB) -#define glVertexAttrib4usv MANGLE(VertexAttrib4usv) -#define glVertexAttribArrayObjectATI MANGLE(VertexAttribArrayObjectATI) -#define glVertexAttribDivisorARB MANGLE(VertexAttribDivisorARB) -#define glVertexAttribDivisor MANGLE(VertexAttribDivisor) -#define glVertexAttribFormatNV MANGLE(VertexAttribFormatNV) -#define glVertexAttribI1iEXT MANGLE(VertexAttribI1iEXT) -#define glVertexAttribI1i MANGLE(VertexAttribI1i) -#define glVertexAttribI1ivEXT MANGLE(VertexAttribI1ivEXT) -#define glVertexAttribI1iv MANGLE(VertexAttribI1iv) -#define glVertexAttribI1uiEXT MANGLE(VertexAttribI1uiEXT) -#define glVertexAttribI1ui MANGLE(VertexAttribI1ui) -#define glVertexAttribI1uivEXT MANGLE(VertexAttribI1uivEXT) -#define glVertexAttribI1uiv MANGLE(VertexAttribI1uiv) -#define glVertexAttribI2iEXT MANGLE(VertexAttribI2iEXT) -#define glVertexAttribI2i MANGLE(VertexAttribI2i) -#define glVertexAttribI2ivEXT MANGLE(VertexAttribI2ivEXT) -#define glVertexAttribI2iv MANGLE(VertexAttribI2iv) -#define glVertexAttribI2uiEXT MANGLE(VertexAttribI2uiEXT) -#define glVertexAttribI2ui MANGLE(VertexAttribI2ui) -#define glVertexAttribI2uivEXT MANGLE(VertexAttribI2uivEXT) -#define glVertexAttribI2uiv MANGLE(VertexAttribI2uiv) -#define glVertexAttribI3iEXT MANGLE(VertexAttribI3iEXT) -#define glVertexAttribI3i MANGLE(VertexAttribI3i) -#define glVertexAttribI3ivEXT MANGLE(VertexAttribI3ivEXT) -#define glVertexAttribI3iv MANGLE(VertexAttribI3iv) -#define glVertexAttribI3uiEXT MANGLE(VertexAttribI3uiEXT) -#define glVertexAttribI3ui MANGLE(VertexAttribI3ui) -#define glVertexAttribI3uivEXT MANGLE(VertexAttribI3uivEXT) -#define glVertexAttribI3uiv MANGLE(VertexAttribI3uiv) -#define glVertexAttribI4bvEXT MANGLE(VertexAttribI4bvEXT) -#define glVertexAttribI4bv MANGLE(VertexAttribI4bv) -#define glVertexAttribI4iEXT MANGLE(VertexAttribI4iEXT) -#define glVertexAttribI4i MANGLE(VertexAttribI4i) -#define glVertexAttribI4ivEXT MANGLE(VertexAttribI4ivEXT) -#define glVertexAttribI4iv MANGLE(VertexAttribI4iv) -#define glVertexAttribI4svEXT MANGLE(VertexAttribI4svEXT) -#define glVertexAttribI4sv MANGLE(VertexAttribI4sv) -#define glVertexAttribI4ubvEXT MANGLE(VertexAttribI4ubvEXT) -#define glVertexAttribI4ubv MANGLE(VertexAttribI4ubv) -#define glVertexAttribI4uiEXT MANGLE(VertexAttribI4uiEXT) -#define glVertexAttribI4ui MANGLE(VertexAttribI4ui) -#define glVertexAttribI4uivEXT MANGLE(VertexAttribI4uivEXT) -#define glVertexAttribI4uiv MANGLE(VertexAttribI4uiv) -#define glVertexAttribI4usvEXT MANGLE(VertexAttribI4usvEXT) -#define glVertexAttribI4usv MANGLE(VertexAttribI4usv) -#define glVertexAttribIFormatNV MANGLE(VertexAttribIFormatNV) -#define glVertexAttribIPointerEXT MANGLE(VertexAttribIPointerEXT) -#define glVertexAttribIPointer MANGLE(VertexAttribIPointer) -#define glVertexAttribL1dEXT MANGLE(VertexAttribL1dEXT) -#define glVertexAttribL1d MANGLE(VertexAttribL1d) -#define glVertexAttribL1dvEXT MANGLE(VertexAttribL1dvEXT) -#define glVertexAttribL1dv MANGLE(VertexAttribL1dv) -#define glVertexAttribL1i64NV MANGLE(VertexAttribL1i64NV) -#define glVertexAttribL1i64vNV MANGLE(VertexAttribL1i64vNV) -#define glVertexAttribL1ui64NV MANGLE(VertexAttribL1ui64NV) -#define glVertexAttribL1ui64vNV MANGLE(VertexAttribL1ui64vNV) -#define glVertexAttribL2dEXT MANGLE(VertexAttribL2dEXT) -#define glVertexAttribL2d MANGLE(VertexAttribL2d) -#define glVertexAttribL2dvEXT MANGLE(VertexAttribL2dvEXT) -#define glVertexAttribL2dv MANGLE(VertexAttribL2dv) -#define glVertexAttribL2i64NV MANGLE(VertexAttribL2i64NV) -#define glVertexAttribL2i64vNV MANGLE(VertexAttribL2i64vNV) -#define glVertexAttribL2ui64NV MANGLE(VertexAttribL2ui64NV) -#define glVertexAttribL2ui64vNV MANGLE(VertexAttribL2ui64vNV) -#define glVertexAttribL3dEXT MANGLE(VertexAttribL3dEXT) -#define glVertexAttribL3d MANGLE(VertexAttribL3d) -#define glVertexAttribL3dvEXT MANGLE(VertexAttribL3dvEXT) -#define glVertexAttribL3dv MANGLE(VertexAttribL3dv) -#define glVertexAttribL3i64NV MANGLE(VertexAttribL3i64NV) -#define glVertexAttribL3i64vNV MANGLE(VertexAttribL3i64vNV) -#define glVertexAttribL3ui64NV MANGLE(VertexAttribL3ui64NV) -#define glVertexAttribL3ui64vNV MANGLE(VertexAttribL3ui64vNV) -#define glVertexAttribL4dEXT MANGLE(VertexAttribL4dEXT) -#define glVertexAttribL4d MANGLE(VertexAttribL4d) -#define glVertexAttribL4dvEXT MANGLE(VertexAttribL4dvEXT) -#define glVertexAttribL4dv MANGLE(VertexAttribL4dv) -#define glVertexAttribL4i64NV MANGLE(VertexAttribL4i64NV) -#define glVertexAttribL4i64vNV MANGLE(VertexAttribL4i64vNV) -#define glVertexAttribL4ui64NV MANGLE(VertexAttribL4ui64NV) -#define glVertexAttribL4ui64vNV MANGLE(VertexAttribL4ui64vNV) -#define glVertexAttribLFormatNV MANGLE(VertexAttribLFormatNV) -#define glVertexAttribLPointerEXT MANGLE(VertexAttribLPointerEXT) -#define glVertexAttribLPointer MANGLE(VertexAttribLPointer) -#define glVertexAttribP1ui MANGLE(VertexAttribP1ui) -#define glVertexAttribP1uiv MANGLE(VertexAttribP1uiv) -#define glVertexAttribP2ui MANGLE(VertexAttribP2ui) -#define glVertexAttribP2uiv MANGLE(VertexAttribP2uiv) -#define glVertexAttribP3ui MANGLE(VertexAttribP3ui) -#define glVertexAttribP3uiv MANGLE(VertexAttribP3uiv) -#define glVertexAttribP4ui MANGLE(VertexAttribP4ui) -#define glVertexAttribP4uiv MANGLE(VertexAttribP4uiv) -#define glVertexAttribPointerARB MANGLE(VertexAttribPointerARB) -#define glVertexAttribPointer MANGLE(VertexAttribPointer) -#define glVertexAttribPointerNV MANGLE(VertexAttribPointerNV) -#define glVertexAttribs1dvNV MANGLE(VertexAttribs1dvNV) -#define glVertexAttribs1fvNV MANGLE(VertexAttribs1fvNV) -#define glVertexAttribs1hvNV MANGLE(VertexAttribs1hvNV) -#define glVertexAttribs1svNV MANGLE(VertexAttribs1svNV) -#define glVertexAttribs2dvNV MANGLE(VertexAttribs2dvNV) -#define glVertexAttribs2fvNV MANGLE(VertexAttribs2fvNV) -#define glVertexAttribs2hvNV MANGLE(VertexAttribs2hvNV) -#define glVertexAttribs2svNV MANGLE(VertexAttribs2svNV) -#define glVertexAttribs3dvNV MANGLE(VertexAttribs3dvNV) -#define glVertexAttribs3fvNV MANGLE(VertexAttribs3fvNV) -#define glVertexAttribs3hvNV MANGLE(VertexAttribs3hvNV) -#define glVertexAttribs3svNV MANGLE(VertexAttribs3svNV) -#define glVertexAttribs4dvNV MANGLE(VertexAttribs4dvNV) -#define glVertexAttribs4fvNV MANGLE(VertexAttribs4fvNV) -#define glVertexAttribs4hvNV MANGLE(VertexAttribs4hvNV) -#define glVertexAttribs4svNV MANGLE(VertexAttribs4svNV) -#define glVertexAttribs4ubvNV MANGLE(VertexAttribs4ubvNV) -#define glVertexBlendARB MANGLE(VertexBlendARB) -#define glVertexBlendEnvfATI MANGLE(VertexBlendEnvfATI) -#define glVertexBlendEnviATI MANGLE(VertexBlendEnviATI) -#define glVertexFormatNV MANGLE(VertexFormatNV) -#define glVertexP2ui MANGLE(VertexP2ui) -#define glVertexP2uiv MANGLE(VertexP2uiv) -#define glVertexP3ui MANGLE(VertexP3ui) -#define glVertexP3uiv MANGLE(VertexP3uiv) -#define glVertexP4ui MANGLE(VertexP4ui) -#define glVertexP4uiv MANGLE(VertexP4uiv) -#define glVertexPointerEXT MANGLE(VertexPointerEXT) -#define glVertexPointerListIBM MANGLE(VertexPointerListIBM) -#define glVertexPointer MANGLE(VertexPointer) -#define glVertexPointervINTEL MANGLE(VertexPointervINTEL) -#define glVertexStream1dATI MANGLE(VertexStream1dATI) -#define glVertexStream1dvATI MANGLE(VertexStream1dvATI) -#define glVertexStream1fATI MANGLE(VertexStream1fATI) -#define glVertexStream1fvATI MANGLE(VertexStream1fvATI) -#define glVertexStream1iATI MANGLE(VertexStream1iATI) -#define glVertexStream1ivATI MANGLE(VertexStream1ivATI) -#define glVertexStream1sATI MANGLE(VertexStream1sATI) -#define glVertexStream1svATI MANGLE(VertexStream1svATI) -#define glVertexStream2dATI MANGLE(VertexStream2dATI) -#define glVertexStream2dvATI MANGLE(VertexStream2dvATI) -#define glVertexStream2fATI MANGLE(VertexStream2fATI) -#define glVertexStream2fvATI MANGLE(VertexStream2fvATI) -#define glVertexStream2iATI MANGLE(VertexStream2iATI) -#define glVertexStream2ivATI MANGLE(VertexStream2ivATI) -#define glVertexStream2sATI MANGLE(VertexStream2sATI) -#define glVertexStream2svATI MANGLE(VertexStream2svATI) -#define glVertexStream3dATI MANGLE(VertexStream3dATI) -#define glVertexStream3dvATI MANGLE(VertexStream3dvATI) -#define glVertexStream3fATI MANGLE(VertexStream3fATI) -#define glVertexStream3fvATI MANGLE(VertexStream3fvATI) -#define glVertexStream3iATI MANGLE(VertexStream3iATI) -#define glVertexStream3ivATI MANGLE(VertexStream3ivATI) -#define glVertexStream3sATI MANGLE(VertexStream3sATI) -#define glVertexStream3svATI MANGLE(VertexStream3svATI) -#define glVertexStream4dATI MANGLE(VertexStream4dATI) -#define glVertexStream4dvATI MANGLE(VertexStream4dvATI) -#define glVertexStream4fATI MANGLE(VertexStream4fATI) -#define glVertexStream4fvATI MANGLE(VertexStream4fvATI) -#define glVertexStream4iATI MANGLE(VertexStream4iATI) -#define glVertexStream4ivATI MANGLE(VertexStream4ivATI) -#define glVertexStream4sATI MANGLE(VertexStream4sATI) -#define glVertexStream4svATI MANGLE(VertexStream4svATI) -#define glVertexWeightfEXT MANGLE(VertexWeightfEXT) -#define glVertexWeightfvEXT MANGLE(VertexWeightfvEXT) -#define glVertexWeighthNV MANGLE(VertexWeighthNV) -#define glVertexWeighthvNV MANGLE(VertexWeighthvNV) -#define glVertexWeightPointerEXT MANGLE(VertexWeightPointerEXT) -#define glVideoCaptureNV MANGLE(VideoCaptureNV) -#define glVideoCaptureStreamParameterdvNV MANGLE(VideoCaptureStreamParameterdvNV) -#define glVideoCaptureStreamParameterfvNV MANGLE(VideoCaptureStreamParameterfvNV) -#define glVideoCaptureStreamParameterivNV MANGLE(VideoCaptureStreamParameterivNV) -#define glViewportArrayv MANGLE(ViewportArrayv) -#define glViewportIndexedf MANGLE(ViewportIndexedf) -#define glViewportIndexedfv MANGLE(ViewportIndexedfv) -#define glViewport MANGLE(Viewport) -#define glWaitSync MANGLE(WaitSync) -#define glWeightbvARB MANGLE(WeightbvARB) -#define glWeightdvARB MANGLE(WeightdvARB) -#define glWeightfvARB MANGLE(WeightfvARB) -#define glWeightivARB MANGLE(WeightivARB) -#define glWeightPointerARB MANGLE(WeightPointerARB) -#define glWeightsvARB MANGLE(WeightsvARB) -#define glWeightubvARB MANGLE(WeightubvARB) -#define glWeightuivARB MANGLE(WeightuivARB) -#define glWeightusvARB MANGLE(WeightusvARB) -#define glWindowPos2dARB MANGLE(WindowPos2dARB) -#define glWindowPos2d MANGLE(WindowPos2d) -#define glWindowPos2dMESA MANGLE(WindowPos2dMESA) -#define glWindowPos2dvARB MANGLE(WindowPos2dvARB) -#define glWindowPos2dv MANGLE(WindowPos2dv) -#define glWindowPos2dvMESA MANGLE(WindowPos2dvMESA) -#define glWindowPos2fARB MANGLE(WindowPos2fARB) -#define glWindowPos2f MANGLE(WindowPos2f) -#define glWindowPos2fMESA MANGLE(WindowPos2fMESA) -#define glWindowPos2fvARB MANGLE(WindowPos2fvARB) -#define glWindowPos2fv MANGLE(WindowPos2fv) -#define glWindowPos2fvMESA MANGLE(WindowPos2fvMESA) -#define glWindowPos2iARB MANGLE(WindowPos2iARB) -#define glWindowPos2i MANGLE(WindowPos2i) -#define glWindowPos2iMESA MANGLE(WindowPos2iMESA) -#define glWindowPos2ivARB MANGLE(WindowPos2ivARB) -#define glWindowPos2iv MANGLE(WindowPos2iv) -#define glWindowPos2ivMESA MANGLE(WindowPos2ivMESA) -#define glWindowPos2sARB MANGLE(WindowPos2sARB) -#define glWindowPos2s MANGLE(WindowPos2s) -#define glWindowPos2sMESA MANGLE(WindowPos2sMESA) -#define glWindowPos2svARB MANGLE(WindowPos2svARB) -#define glWindowPos2sv MANGLE(WindowPos2sv) -#define glWindowPos2svMESA MANGLE(WindowPos2svMESA) -#define glWindowPos3dARB MANGLE(WindowPos3dARB) -#define glWindowPos3d MANGLE(WindowPos3d) -#define glWindowPos3dMESA MANGLE(WindowPos3dMESA) -#define glWindowPos3dvARB MANGLE(WindowPos3dvARB) -#define glWindowPos3dv MANGLE(WindowPos3dv) -#define glWindowPos3dvMESA MANGLE(WindowPos3dvMESA) -#define glWindowPos3fARB MANGLE(WindowPos3fARB) -#define glWindowPos3f MANGLE(WindowPos3f) -#define glWindowPos3fMESA MANGLE(WindowPos3fMESA) -#define glWindowPos3fvARB MANGLE(WindowPos3fvARB) -#define glWindowPos3fv MANGLE(WindowPos3fv) -#define glWindowPos3fvMESA MANGLE(WindowPos3fvMESA) -#define glWindowPos3iARB MANGLE(WindowPos3iARB) -#define glWindowPos3i MANGLE(WindowPos3i) -#define glWindowPos3iMESA MANGLE(WindowPos3iMESA) -#define glWindowPos3ivARB MANGLE(WindowPos3ivARB) -#define glWindowPos3iv MANGLE(WindowPos3iv) -#define glWindowPos3ivMESA MANGLE(WindowPos3ivMESA) -#define glWindowPos3sARB MANGLE(WindowPos3sARB) -#define glWindowPos3s MANGLE(WindowPos3s) -#define glWindowPos3sMESA MANGLE(WindowPos3sMESA) -#define glWindowPos3svARB MANGLE(WindowPos3svARB) -#define glWindowPos3sv MANGLE(WindowPos3sv) -#define glWindowPos3svMESA MANGLE(WindowPos3svMESA) -#define glWindowPos4dMESA MANGLE(WindowPos4dMESA) -#define glWindowPos4dvMESA MANGLE(WindowPos4dvMESA) -#define glWindowPos4fMESA MANGLE(WindowPos4fMESA) -#define glWindowPos4fvMESA MANGLE(WindowPos4fvMESA) -#define glWindowPos4iMESA MANGLE(WindowPos4iMESA) -#define glWindowPos4ivMESA MANGLE(WindowPos4ivMESA) -#define glWindowPos4sMESA MANGLE(WindowPos4sMESA) -#define glWindowPos4svMESA MANGLE(WindowPos4svMESA) -#define glWriteMaskEXT MANGLE(WriteMaskEXT) - -#endif /* GL_MANGLE_H */ diff --git a/lib/linux/include/GL/glew.h b/lib/linux/include/GL/glew.h deleted file mode 100644 index 0cd6ae3..0000000 --- a/lib/linux/include/GL/glew.h +++ /dev/null @@ -1,16126 +0,0 @@ -/* -** The OpenGL Extension Wrangler Library -** Copyright (C) 2002-2008, Milan Ikits -** Copyright (C) 2002-2008, Marcelo E. Magallon -** Copyright (C) 2002, Lev Povalahev -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are met: -** -** * Redistributions of source code must retain the above copyright notice, -** this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright notice, -** this list of conditions and the following disclaimer in the documentation -** and/or other materials provided with the distribution. -** * The name of the author may be used to endorse or promote products -** derived from this software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -** THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * Mesa 3-D graphics library - * Version: 7.0 - * - * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* -** Copyright (c) 2007 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -#ifndef __glew_h__ -#define __glew_h__ -#define __GLEW_H__ - -#if defined(__gl_h_) || defined(__GL_H__) || defined(__X_GL_H) -#error gl.h included before glew.h -#endif -#if defined(__glext_h_) || defined(__GLEXT_H_) -#error glext.h included before glew.h -#endif -#if defined(__gl_ATI_h_) -#error glATI.h included before glew.h -#endif - -#define __gl_h_ -#define __GL_H__ -#define __X_GL_H -#define __glext_h_ -#define __GLEXT_H_ -#define __gl_ATI_h_ - -#if defined(_WIN32) - -/* - * GLEW does not include to avoid name space pollution. - * GL needs GLAPI and GLAPIENTRY, GLU needs APIENTRY, CALLBACK, and wchar_t - * defined properly. - */ -/* */ -#ifndef APIENTRY -#define GLEW_APIENTRY_DEFINED -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define APIENTRY __stdcall -# elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) -# define APIENTRY __stdcall -# else -# define APIENTRY -# endif -#endif -#ifndef GLAPI -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define GLAPI extern -# endif -#endif -/* */ -#ifndef CALLBACK -#define GLEW_CALLBACK_DEFINED -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define CALLBACK __attribute__ ((__stdcall__)) -# elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) -# define CALLBACK __stdcall -# else -# define CALLBACK -# endif -#endif -/* and */ -#ifndef WINGDIAPI -#define GLEW_WINGDIAPI_DEFINED -#define WINGDIAPI __declspec(dllimport) -#endif -/* */ -#if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(_WCHAR_T_DEFINED) -typedef unsigned short wchar_t; -# define _WCHAR_T_DEFINED -#endif -/* */ -#if !defined(_W64) -# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300 -# define _W64 __w64 -# else -# define _W64 -# endif -#endif -#if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__) -# ifdef _WIN64 -typedef __int64 ptrdiff_t; -# else -typedef _W64 int ptrdiff_t; -# endif -# define _PTRDIFF_T_DEFINED -# define _PTRDIFF_T_ -#endif - -#ifndef GLAPI -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define GLAPI extern -# else -# define GLAPI WINGDIAPI -# endif -#endif - -#ifndef GLAPIENTRY -#define GLAPIENTRY APIENTRY -#endif - -/* - * GLEW_STATIC is defined for static library. - * GLEW_BUILD is defined for building the DLL library. - */ - -#ifdef GLEW_STATIC -# define GLEWAPI extern -#else -# ifdef GLEW_BUILD -# define GLEWAPI extern __declspec(dllexport) -# else -# define GLEWAPI extern __declspec(dllimport) -# endif -#endif - -#else /* _UNIX */ - -/* - * Needed for ptrdiff_t in turn needed by VBO. This is defined by ISO - * C. On my system, this amounts to _3 lines_ of included code, all of - * them pretty much harmless. If you know of a way of detecting 32 vs - * 64 _targets_ at compile time you are free to replace this with - * something that's portable. For now, _this_ is the portable solution. - * (mem, 2004-01-04) - */ - -#include - -/* SGI MIPSPro doesn't like stdint.h in C++ mode */ -/* ID: 3376260 Solaris 9 has inttypes.h, but not stdint.h */ - -#if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__) -#include -#else -#include -#endif - -#define GLEW_APIENTRY_DEFINED -#define APIENTRY - -/* - * GLEW_STATIC is defined for static library. - */ - -#ifdef GLEW_STATIC -# define GLEWAPI extern -#else -# if defined(__GNUC__) && __GNUC__>=4 -# define GLEWAPI extern __attribute__ ((visibility("default"))) -# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) -# define GLEWAPI extern __global -# else -# define GLEWAPI extern -# endif -#endif - -/* */ -#ifndef GLAPI -#define GLAPI extern -#endif -#ifndef GLAPIENTRY -#define GLAPIENTRY -#endif - -#endif /* _WIN32 */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ----------------------------- GL_VERSION_1_1 ---------------------------- */ - -#ifndef GL_VERSION_1_1 -#define GL_VERSION_1_1 1 - -typedef unsigned int GLenum; -typedef unsigned int GLbitfield; -typedef unsigned int GLuint; -typedef int GLint; -typedef int GLsizei; -typedef unsigned char GLboolean; -typedef signed char GLbyte; -typedef short GLshort; -typedef unsigned char GLubyte; -typedef unsigned short GLushort; -typedef unsigned long GLulong; -typedef float GLfloat; -typedef float GLclampf; -typedef double GLdouble; -typedef double GLclampd; -typedef void GLvoid; -#if defined(_MSC_VER) && _MSC_VER < 1400 -typedef __int64 GLint64EXT; -typedef unsigned __int64 GLuint64EXT; -#elif defined(_MSC_VER) || defined(__BORLANDC__) -typedef signed long long GLint64EXT; -typedef unsigned long long GLuint64EXT; -#else -# if defined(__MINGW32__) || defined(__CYGWIN__) -#include -# endif -typedef int64_t GLint64EXT; -typedef uint64_t GLuint64EXT; -#endif -typedef GLint64EXT GLint64; -typedef GLuint64EXT GLuint64; -typedef struct __GLsync *GLsync; - -typedef char GLchar; - -#define GL_ZERO 0 -#define GL_FALSE 0 -#define GL_LOGIC_OP 0x0BF1 -#define GL_NONE 0 -#define GL_TEXTURE_COMPONENTS 0x1003 -#define GL_NO_ERROR 0 -#define GL_POINTS 0x0000 -#define GL_CURRENT_BIT 0x00000001 -#define GL_TRUE 1 -#define GL_ONE 1 -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_POINT_BIT 0x00000002 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_LINE_STRIP 0x0003 -#define GL_LINE_BIT 0x00000004 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_QUADS 0x0007 -#define GL_QUAD_STRIP 0x0008 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON 0x0009 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_FOG_BIT 0x00000080 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_ACCUM 0x0100 -#define GL_LOAD 0x0101 -#define GL_RETURN 0x0102 -#define GL_MULT 0x0103 -#define GL_ADD 0x0104 -#define GL_NEVER 0x0200 -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_LEFT 0x0406 -#define GL_RIGHT 0x0407 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_AUX0 0x0409 -#define GL_AUX1 0x040A -#define GL_AUX2 0x040B -#define GL_AUX3 0x040C -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_2D 0x0600 -#define GL_3D 0x0601 -#define GL_3D_COLOR 0x0602 -#define GL_3D_COLOR_TEXTURE 0x0603 -#define GL_4D_COLOR_TEXTURE 0x0604 -#define GL_PASS_THROUGH_TOKEN 0x0700 -#define GL_POINT_TOKEN 0x0701 -#define GL_LINE_TOKEN 0x0702 -#define GL_POLYGON_TOKEN 0x0703 -#define GL_BITMAP_TOKEN 0x0704 -#define GL_DRAW_PIXEL_TOKEN 0x0705 -#define GL_COPY_PIXEL_TOKEN 0x0706 -#define GL_LINE_RESET_TOKEN 0x0707 -#define GL_EXP 0x0800 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_EXP2 0x0801 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_COEFF 0x0A00 -#define GL_ORDER 0x0A01 -#define GL_DOMAIN 0x0A02 -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_INDEX 0x0B01 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_CURRENT_RASTER_COLOR 0x0B04 -#define GL_CURRENT_RASTER_INDEX 0x0B05 -#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define GL_CURRENT_RASTER_POSITION 0x0B07 -#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define GL_POINT_SMOOTH 0x0B10 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_RANGE 0x0B12 -#define GL_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_WIDTH 0x0B21 -#define GL_LINE_WIDTH_RANGE 0x0B22 -#define GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_LINE_STIPPLE 0x0B24 -#define GL_LINE_STIPPLE_PATTERN 0x0B25 -#define GL_LINE_STIPPLE_REPEAT 0x0B26 -#define GL_LIST_MODE 0x0B30 -#define GL_MAX_LIST_NESTING 0x0B31 -#define GL_LIST_BASE 0x0B32 -#define GL_LIST_INDEX 0x0B33 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_POLYGON_STIPPLE 0x0B42 -#define GL_EDGE_FLAG 0x0B43 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_LIGHTING 0x0B50 -#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_SHADE_MODEL 0x0B54 -#define GL_COLOR_MATERIAL_FACE 0x0B55 -#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_FOG 0x0B60 -#define GL_FOG_INDEX 0x0B61 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_START 0x0B63 -#define GL_FOG_END 0x0B64 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_COLOR 0x0B66 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_ACCUM_CLEAR_VALUE 0x0B80 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_MATRIX_MODE 0x0BA0 -#define GL_NORMALIZE 0x0BA1 -#define GL_VIEWPORT 0x0BA2 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define GL_ALPHA_TEST 0x0BC0 -#define GL_ALPHA_TEST_FUNC 0x0BC1 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_DITHER 0x0BD0 -#define GL_BLEND_DST 0x0BE0 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND 0x0BE2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_AUX_BUFFERS 0x0C00 -#define GL_DRAW_BUFFER 0x0C01 -#define GL_READ_BUFFER 0x0C02 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_INDEX_CLEAR_VALUE 0x0C20 -#define GL_INDEX_WRITEMASK 0x0C21 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_INDEX_MODE 0x0C30 -#define GL_RGBA_MODE 0x0C31 -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_STEREO 0x0C33 -#define GL_RENDER_MODE 0x0C40 -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_FOG_HINT 0x0C54 -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GEN_R 0x0C62 -#define GL_TEXTURE_GEN_Q 0x0C63 -#define GL_PIXEL_MAP_I_TO_I 0x0C70 -#define GL_PIXEL_MAP_S_TO_S 0x0C71 -#define GL_PIXEL_MAP_I_TO_R 0x0C72 -#define GL_PIXEL_MAP_I_TO_G 0x0C73 -#define GL_PIXEL_MAP_I_TO_B 0x0C74 -#define GL_PIXEL_MAP_I_TO_A 0x0C75 -#define GL_PIXEL_MAP_R_TO_R 0x0C76 -#define GL_PIXEL_MAP_G_TO_G 0x0C77 -#define GL_PIXEL_MAP_B_TO_B 0x0C78 -#define GL_PIXEL_MAP_A_TO_A 0x0C79 -#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAP_COLOR 0x0D10 -#define GL_MAP_STENCIL 0x0D11 -#define GL_INDEX_SHIFT 0x0D12 -#define GL_INDEX_OFFSET 0x0D13 -#define GL_RED_SCALE 0x0D14 -#define GL_RED_BIAS 0x0D15 -#define GL_ZOOM_X 0x0D16 -#define GL_ZOOM_Y 0x0D17 -#define GL_GREEN_SCALE 0x0D18 -#define GL_GREEN_BIAS 0x0D19 -#define GL_BLUE_SCALE 0x0D1A -#define GL_BLUE_BIAS 0x0D1B -#define GL_ALPHA_SCALE 0x0D1C -#define GL_ALPHA_BIAS 0x0D1D -#define GL_DEPTH_SCALE 0x0D1E -#define GL_DEPTH_BIAS 0x0D1F -#define GL_MAX_EVAL_ORDER 0x0D30 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_INDEX_BITS 0x0D51 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_ACCUM_RED_BITS 0x0D58 -#define GL_ACCUM_GREEN_BITS 0x0D59 -#define GL_ACCUM_BLUE_BITS 0x0D5A -#define GL_ACCUM_ALPHA_BITS 0x0D5B -#define GL_NAME_STACK_DEPTH 0x0D70 -#define GL_AUTO_NORMAL 0x0D80 -#define GL_MAP1_COLOR_4 0x0D90 -#define GL_MAP1_INDEX 0x0D91 -#define GL_MAP1_NORMAL 0x0D92 -#define GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define GL_MAP1_VERTEX_3 0x0D97 -#define GL_MAP1_VERTEX_4 0x0D98 -#define GL_MAP2_COLOR_4 0x0DB0 -#define GL_MAP2_INDEX 0x0DB1 -#define GL_MAP2_NORMAL 0x0DB2 -#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define GL_MAP2_VERTEX_3 0x0DB7 -#define GL_MAP2_VERTEX_4 0x0DB8 -#define GL_MAP1_GRID_DOMAIN 0x0DD0 -#define GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define GL_MAP2_GRID_DOMAIN 0x0DD2 -#define GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 -#define GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define GL_SELECTION_BUFFER_SIZE 0x0DF4 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_BORDER 0x1005 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_AMBIENT 0x1200 -#define GL_DIFFUSE 0x1201 -#define GL_SPECULAR 0x1202 -#define GL_POSITION 0x1203 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_QUADRATIC_ATTENUATION 0x1209 -#define GL_COMPILE 0x1300 -#define GL_COMPILE_AND_EXECUTE 0x1301 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_2_BYTES 0x1407 -#define GL_3_BYTES 0x1408 -#define GL_4_BYTES 0x1409 -#define GL_DOUBLE 0x140A -#define GL_CLEAR 0x1500 -#define GL_AND 0x1501 -#define GL_AND_REVERSE 0x1502 -#define GL_COPY 0x1503 -#define GL_AND_INVERTED 0x1504 -#define GL_NOOP 0x1505 -#define GL_XOR 0x1506 -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_EQUIV 0x1509 -#define GL_INVERT 0x150A -#define GL_OR_REVERSE 0x150B -#define GL_COPY_INVERTED 0x150C -#define GL_OR_INVERTED 0x150D -#define GL_NAND 0x150E -#define GL_SET 0x150F -#define GL_EMISSION 0x1600 -#define GL_SHININESS 0x1601 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_COLOR_INDEXES 0x1603 -#define GL_MODELVIEW 0x1700 -#define GL_PROJECTION 0x1701 -#define GL_TEXTURE 0x1702 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_COLOR_INDEX 0x1900 -#define GL_STENCIL_INDEX 0x1901 -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_BITMAP 0x1A00 -#define GL_POINT 0x1B00 -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 -#define GL_RENDER 0x1C00 -#define GL_FEEDBACK 0x1C01 -#define GL_SELECT 0x1C02 -#define GL_FLAT 0x1D00 -#define GL_SMOOTH 0x1D01 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_S 0x2000 -#define GL_ENABLE_BIT 0x00002000 -#define GL_T 0x2001 -#define GL_R 0x2002 -#define GL_Q 0x2003 -#define GL_MODULATE 0x2100 -#define GL_DECAL 0x2101 -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_ENV_COLOR 0x2201 -#define GL_TEXTURE_ENV 0x2300 -#define GL_EYE_LINEAR 0x2400 -#define GL_OBJECT_LINEAR 0x2401 -#define GL_SPHERE_MAP 0x2402 -#define GL_TEXTURE_GEN_MODE 0x2500 -#define GL_OBJECT_PLANE 0x2501 -#define GL_EYE_PLANE 0x2502 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_CLAMP 0x2900 -#define GL_REPEAT 0x2901 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_R3_G3_B2 0x2A10 -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_C3F_V3F 0x2A24 -#define GL_N3F_V3F 0x2A25 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_V4F 0x2A28 -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T4F_C4F_N3F_V4F 0x2A2D -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 -#define GL_LIGHT0 0x4000 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 -#define GL_HINT_BIT 0x00008000 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_ALPHA4 0x803B -#define GL_ALPHA8 0x803C -#define GL_ALPHA12 0x803D -#define GL_ALPHA16 0x803E -#define GL_LUMINANCE4 0x803F -#define GL_LUMINANCE8 0x8040 -#define GL_LUMINANCE12 0x8041 -#define GL_LUMINANCE16 0x8042 -#define GL_LUMINANCE4_ALPHA4 0x8043 -#define GL_LUMINANCE6_ALPHA2 0x8044 -#define GL_LUMINANCE8_ALPHA8 0x8045 -#define GL_LUMINANCE12_ALPHA4 0x8046 -#define GL_LUMINANCE12_ALPHA12 0x8047 -#define GL_LUMINANCE16_ALPHA16 0x8048 -#define GL_INTENSITY 0x8049 -#define GL_INTENSITY4 0x804A -#define GL_INTENSITY8 0x804B -#define GL_INTENSITY12 0x804C -#define GL_INTENSITY16 0x804D -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB8 0x8051 -#define GL_RGB10 0x8052 -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGBA2 0x8055 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_TEXTURE_PRIORITY 0x8066 -#define GL_TEXTURE_RESIDENT 0x8067 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_VERTEX_ARRAY 0x8074 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_COLOR_ARRAY 0x8076 -#define GL_INDEX_ARRAY 0x8077 -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_EDGE_FLAG_ARRAY 0x8079 -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_INDEX_ARRAY_TYPE 0x8085 -#define GL_INDEX_ARRAY_STRIDE 0x8086 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_INDEX_ARRAY_POINTER 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_EVAL_BIT 0x00010000 -#define GL_LIST_BIT 0x00020000 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_ALL_ATTRIB_BITS 0x000fffff -#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff - -GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value); -GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref); -GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); -GLAPI void GLAPIENTRY glArrayElement (GLint i); -GLAPI void GLAPIENTRY glBegin (GLenum mode); -GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture); -GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); -GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GLAPI void GLAPIENTRY glCallList (GLuint list); -GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const GLvoid *lists); -GLAPI void GLAPIENTRY glClear (GLbitfield mask); -GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -GLAPI void GLAPIENTRY glClearDepth (GLclampd depth); -GLAPI void GLAPIENTRY glClearIndex (GLfloat c); -GLAPI void GLAPIENTRY glClearStencil (GLint s); -GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation); -GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue); -GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v); -GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue); -GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue); -GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue); -GLAPI void GLAPIENTRY glColor3iv (const GLint *v); -GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue); -GLAPI void GLAPIENTRY glColor3sv (const GLshort *v); -GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue); -GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v); -GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue); -GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v); -GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue); -GLAPI void GLAPIENTRY glColor3usv (const GLushort *v); -GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); -GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v); -GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); -GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha); -GLAPI void GLAPIENTRY glColor4iv (const GLint *v); -GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); -GLAPI void GLAPIENTRY glColor4sv (const GLshort *v); -GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v); -GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); -GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v); -GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); -GLAPI void GLAPIENTRY glColor4usv (const GLushort *v); -GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode); -GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); -GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void GLAPIENTRY glCullFace (GLenum mode); -GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range); -GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GLAPI void GLAPIENTRY glDepthFunc (GLenum func); -GLAPI void GLAPIENTRY glDepthMask (GLboolean flag); -GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar); -GLAPI void GLAPIENTRY glDisable (GLenum cap); -GLAPI void GLAPIENTRY glDisableClientState (GLenum array); -GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode); -GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); -GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag); -GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag); -GLAPI void GLAPIENTRY glEnable (GLenum cap); -GLAPI void GLAPIENTRY glEnableClientState (GLenum array); -GLAPI void GLAPIENTRY glEnd (void); -GLAPI void GLAPIENTRY glEndList (void); -GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u); -GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u); -GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u); -GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u); -GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v); -GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u); -GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v); -GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u); -GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2); -GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); -GLAPI void GLAPIENTRY glEvalPoint1 (GLint i); -GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j); -GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); -GLAPI void GLAPIENTRY glFinish (void); -GLAPI void GLAPIENTRY glFlush (void); -GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glFrontFace (GLenum mode); -GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range); -GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures); -GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params); -GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation); -GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params); -GLAPI GLenum GLAPIENTRY glGetError (void); -GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v); -GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v); -GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v); -GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values); -GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values); -GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values); -GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, GLvoid* *params); -GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask); -GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name); -GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); -GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode); -GLAPI void GLAPIENTRY glIndexMask (GLuint mask); -GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glIndexd (GLdouble c); -GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c); -GLAPI void GLAPIENTRY glIndexf (GLfloat c); -GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c); -GLAPI void GLAPIENTRY glIndexi (GLint c); -GLAPI void GLAPIENTRY glIndexiv (const GLint *c); -GLAPI void GLAPIENTRY glIndexs (GLshort c); -GLAPI void GLAPIENTRY glIndexsv (const GLshort *c); -GLAPI void GLAPIENTRY glIndexub (GLubyte c); -GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c); -GLAPI void GLAPIENTRY glInitNames (void); -GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer); -GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap); -GLAPI GLboolean GLAPIENTRY glIsList (GLuint list); -GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture); -GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern); -GLAPI void GLAPIENTRY glLineWidth (GLfloat width); -GLAPI void GLAPIENTRY glListBase (GLuint base); -GLAPI void GLAPIENTRY glLoadIdentity (void); -GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m); -GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m); -GLAPI void GLAPIENTRY glLoadName (GLuint name); -GLAPI void GLAPIENTRY glLogicOp (GLenum opcode); -GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); -GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); -GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); -GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); -GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glMatrixMode (GLenum mode); -GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m); -GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m); -GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode); -GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); -GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v); -GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); -GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); -GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz); -GLAPI void GLAPIENTRY glNormal3iv (const GLint *v); -GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz); -GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v); -GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void GLAPIENTRY glPassThrough (GLfloat token); -GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values); -GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values); -GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values); -GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor); -GLAPI void GLAPIENTRY glPointSize (GLfloat size); -GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode); -GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask); -GLAPI void GLAPIENTRY glPopAttrib (void); -GLAPI void GLAPIENTRY glPopClientAttrib (void); -GLAPI void GLAPIENTRY glPopMatrix (void); -GLAPI void GLAPIENTRY glPopName (void); -GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); -GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask); -GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask); -GLAPI void GLAPIENTRY glPushMatrix (void); -GLAPI void GLAPIENTRY glPushName (GLuint name); -GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y); -GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v); -GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y); -GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v); -GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y); -GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v); -GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y); -GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v); -GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z); -GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v); -GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z); -GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v); -GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w); -GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v); -GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v); -GLAPI void GLAPIENTRY glReadBuffer (GLenum mode); -GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); -GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2); -GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); -GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2); -GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2); -GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2); -GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); -GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2); -GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode); -GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer); -GLAPI void GLAPIENTRY glShadeModel (GLenum mode); -GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GLAPI void GLAPIENTRY glStencilMask (GLuint mask); -GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s); -GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s); -GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord1i (GLint s); -GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord1s (GLshort s); -GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t); -GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t); -GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t); -GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t); -GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); -GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); -GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r); -GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r); -GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q); -GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param); -GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); -GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y); -GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v); -GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y); -GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v); -GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y); -GLAPI void GLAPIENTRY glVertex2iv (const GLint *v); -GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y); -GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v); -GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z); -GLAPI void GLAPIENTRY glVertex3iv (const GLint *v); -GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z); -GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v); -GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w); -GLAPI void GLAPIENTRY glVertex4iv (const GLint *v); -GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v); -GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); - -#define GLEW_VERSION_1_1 GLEW_GET_VAR(__GLEW_VERSION_1_1) - -#endif /* GL_VERSION_1_1 */ - -/* ---------------------------------- GLU ---------------------------------- */ - -#ifndef GLEW_NO_GLU -/* this is where we can safely include GLU */ -# if defined(__APPLE__) && defined(__MACH__) -# include -# else -# include -# endif -#endif - -/* ----------------------------- GL_VERSION_1_2 ---------------------------- */ - -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 - -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_RESCALE_NORMAL 0x803A -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E - -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); - -#define glCopyTexSubImage3D GLEW_GET_FUN(__glewCopyTexSubImage3D) -#define glDrawRangeElements GLEW_GET_FUN(__glewDrawRangeElements) -#define glTexImage3D GLEW_GET_FUN(__glewTexImage3D) -#define glTexSubImage3D GLEW_GET_FUN(__glewTexSubImage3D) - -#define GLEW_VERSION_1_2 GLEW_GET_VAR(__GLEW_VERSION_1_2) - -#endif /* GL_VERSION_1_2 */ - -/* ---------------------------- GL_VERSION_1_2_1 --------------------------- */ - -#ifndef GL_VERSION_1_2_1 -#define GL_VERSION_1_2_1 1 - -#define GLEW_VERSION_1_2_1 GLEW_GET_VAR(__GLEW_VERSION_1_2_1) - -#endif /* GL_VERSION_1_2_1 */ - -/* ----------------------------- GL_VERSION_1_3 ---------------------------- */ - -#ifndef GL_VERSION_1_3 -#define GL_VERSION_1_3 1 - -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_SUBTRACT 0x84E7 -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -#define GL_MULTISAMPLE_BIT 0x20000000 - -typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLvoid *img); -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); - -#define glActiveTexture GLEW_GET_FUN(__glewActiveTexture) -#define glClientActiveTexture GLEW_GET_FUN(__glewClientActiveTexture) -#define glCompressedTexImage1D GLEW_GET_FUN(__glewCompressedTexImage1D) -#define glCompressedTexImage2D GLEW_GET_FUN(__glewCompressedTexImage2D) -#define glCompressedTexImage3D GLEW_GET_FUN(__glewCompressedTexImage3D) -#define glCompressedTexSubImage1D GLEW_GET_FUN(__glewCompressedTexSubImage1D) -#define glCompressedTexSubImage2D GLEW_GET_FUN(__glewCompressedTexSubImage2D) -#define glCompressedTexSubImage3D GLEW_GET_FUN(__glewCompressedTexSubImage3D) -#define glGetCompressedTexImage GLEW_GET_FUN(__glewGetCompressedTexImage) -#define glLoadTransposeMatrixd GLEW_GET_FUN(__glewLoadTransposeMatrixd) -#define glLoadTransposeMatrixf GLEW_GET_FUN(__glewLoadTransposeMatrixf) -#define glMultTransposeMatrixd GLEW_GET_FUN(__glewMultTransposeMatrixd) -#define glMultTransposeMatrixf GLEW_GET_FUN(__glewMultTransposeMatrixf) -#define glMultiTexCoord1d GLEW_GET_FUN(__glewMultiTexCoord1d) -#define glMultiTexCoord1dv GLEW_GET_FUN(__glewMultiTexCoord1dv) -#define glMultiTexCoord1f GLEW_GET_FUN(__glewMultiTexCoord1f) -#define glMultiTexCoord1fv GLEW_GET_FUN(__glewMultiTexCoord1fv) -#define glMultiTexCoord1i GLEW_GET_FUN(__glewMultiTexCoord1i) -#define glMultiTexCoord1iv GLEW_GET_FUN(__glewMultiTexCoord1iv) -#define glMultiTexCoord1s GLEW_GET_FUN(__glewMultiTexCoord1s) -#define glMultiTexCoord1sv GLEW_GET_FUN(__glewMultiTexCoord1sv) -#define glMultiTexCoord2d GLEW_GET_FUN(__glewMultiTexCoord2d) -#define glMultiTexCoord2dv GLEW_GET_FUN(__glewMultiTexCoord2dv) -#define glMultiTexCoord2f GLEW_GET_FUN(__glewMultiTexCoord2f) -#define glMultiTexCoord2fv GLEW_GET_FUN(__glewMultiTexCoord2fv) -#define glMultiTexCoord2i GLEW_GET_FUN(__glewMultiTexCoord2i) -#define glMultiTexCoord2iv GLEW_GET_FUN(__glewMultiTexCoord2iv) -#define glMultiTexCoord2s GLEW_GET_FUN(__glewMultiTexCoord2s) -#define glMultiTexCoord2sv GLEW_GET_FUN(__glewMultiTexCoord2sv) -#define glMultiTexCoord3d GLEW_GET_FUN(__glewMultiTexCoord3d) -#define glMultiTexCoord3dv GLEW_GET_FUN(__glewMultiTexCoord3dv) -#define glMultiTexCoord3f GLEW_GET_FUN(__glewMultiTexCoord3f) -#define glMultiTexCoord3fv GLEW_GET_FUN(__glewMultiTexCoord3fv) -#define glMultiTexCoord3i GLEW_GET_FUN(__glewMultiTexCoord3i) -#define glMultiTexCoord3iv GLEW_GET_FUN(__glewMultiTexCoord3iv) -#define glMultiTexCoord3s GLEW_GET_FUN(__glewMultiTexCoord3s) -#define glMultiTexCoord3sv GLEW_GET_FUN(__glewMultiTexCoord3sv) -#define glMultiTexCoord4d GLEW_GET_FUN(__glewMultiTexCoord4d) -#define glMultiTexCoord4dv GLEW_GET_FUN(__glewMultiTexCoord4dv) -#define glMultiTexCoord4f GLEW_GET_FUN(__glewMultiTexCoord4f) -#define glMultiTexCoord4fv GLEW_GET_FUN(__glewMultiTexCoord4fv) -#define glMultiTexCoord4i GLEW_GET_FUN(__glewMultiTexCoord4i) -#define glMultiTexCoord4iv GLEW_GET_FUN(__glewMultiTexCoord4iv) -#define glMultiTexCoord4s GLEW_GET_FUN(__glewMultiTexCoord4s) -#define glMultiTexCoord4sv GLEW_GET_FUN(__glewMultiTexCoord4sv) -#define glSampleCoverage GLEW_GET_FUN(__glewSampleCoverage) - -#define GLEW_VERSION_1_3 GLEW_GET_VAR(__GLEW_VERSION_1_3) - -#endif /* GL_VERSION_1_3 */ - -/* ----------------------------- GL_VERSION_1_4 ---------------------------- */ - -#ifndef GL_VERSION_1_4 -#define GL_VERSION_1_4 1 - -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_COMPARE_R_TO_TEXTURE 0x884E - -typedef void (GLAPIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDPROC) (GLdouble coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDVPROC) (const GLdouble *coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFPROC) (GLfloat coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *coord); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVPROC) (const GLfloat *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVPROC) (const GLint *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVPROC) (const GLshort *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVPROC) (const GLdouble *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVPROC) (const GLfloat *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVPROC) (const GLint *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p); - -#define glBlendColor GLEW_GET_FUN(__glewBlendColor) -#define glBlendEquation GLEW_GET_FUN(__glewBlendEquation) -#define glBlendFuncSeparate GLEW_GET_FUN(__glewBlendFuncSeparate) -#define glFogCoordPointer GLEW_GET_FUN(__glewFogCoordPointer) -#define glFogCoordd GLEW_GET_FUN(__glewFogCoordd) -#define glFogCoorddv GLEW_GET_FUN(__glewFogCoorddv) -#define glFogCoordf GLEW_GET_FUN(__glewFogCoordf) -#define glFogCoordfv GLEW_GET_FUN(__glewFogCoordfv) -#define glMultiDrawArrays GLEW_GET_FUN(__glewMultiDrawArrays) -#define glMultiDrawElements GLEW_GET_FUN(__glewMultiDrawElements) -#define glPointParameterf GLEW_GET_FUN(__glewPointParameterf) -#define glPointParameterfv GLEW_GET_FUN(__glewPointParameterfv) -#define glPointParameteri GLEW_GET_FUN(__glewPointParameteri) -#define glPointParameteriv GLEW_GET_FUN(__glewPointParameteriv) -#define glSecondaryColor3b GLEW_GET_FUN(__glewSecondaryColor3b) -#define glSecondaryColor3bv GLEW_GET_FUN(__glewSecondaryColor3bv) -#define glSecondaryColor3d GLEW_GET_FUN(__glewSecondaryColor3d) -#define glSecondaryColor3dv GLEW_GET_FUN(__glewSecondaryColor3dv) -#define glSecondaryColor3f GLEW_GET_FUN(__glewSecondaryColor3f) -#define glSecondaryColor3fv GLEW_GET_FUN(__glewSecondaryColor3fv) -#define glSecondaryColor3i GLEW_GET_FUN(__glewSecondaryColor3i) -#define glSecondaryColor3iv GLEW_GET_FUN(__glewSecondaryColor3iv) -#define glSecondaryColor3s GLEW_GET_FUN(__glewSecondaryColor3s) -#define glSecondaryColor3sv GLEW_GET_FUN(__glewSecondaryColor3sv) -#define glSecondaryColor3ub GLEW_GET_FUN(__glewSecondaryColor3ub) -#define glSecondaryColor3ubv GLEW_GET_FUN(__glewSecondaryColor3ubv) -#define glSecondaryColor3ui GLEW_GET_FUN(__glewSecondaryColor3ui) -#define glSecondaryColor3uiv GLEW_GET_FUN(__glewSecondaryColor3uiv) -#define glSecondaryColor3us GLEW_GET_FUN(__glewSecondaryColor3us) -#define glSecondaryColor3usv GLEW_GET_FUN(__glewSecondaryColor3usv) -#define glSecondaryColorPointer GLEW_GET_FUN(__glewSecondaryColorPointer) -#define glWindowPos2d GLEW_GET_FUN(__glewWindowPos2d) -#define glWindowPos2dv GLEW_GET_FUN(__glewWindowPos2dv) -#define glWindowPos2f GLEW_GET_FUN(__glewWindowPos2f) -#define glWindowPos2fv GLEW_GET_FUN(__glewWindowPos2fv) -#define glWindowPos2i GLEW_GET_FUN(__glewWindowPos2i) -#define glWindowPos2iv GLEW_GET_FUN(__glewWindowPos2iv) -#define glWindowPos2s GLEW_GET_FUN(__glewWindowPos2s) -#define glWindowPos2sv GLEW_GET_FUN(__glewWindowPos2sv) -#define glWindowPos3d GLEW_GET_FUN(__glewWindowPos3d) -#define glWindowPos3dv GLEW_GET_FUN(__glewWindowPos3dv) -#define glWindowPos3f GLEW_GET_FUN(__glewWindowPos3f) -#define glWindowPos3fv GLEW_GET_FUN(__glewWindowPos3fv) -#define glWindowPos3i GLEW_GET_FUN(__glewWindowPos3i) -#define glWindowPos3iv GLEW_GET_FUN(__glewWindowPos3iv) -#define glWindowPos3s GLEW_GET_FUN(__glewWindowPos3s) -#define glWindowPos3sv GLEW_GET_FUN(__glewWindowPos3sv) - -#define GLEW_VERSION_1_4 GLEW_GET_VAR(__GLEW_VERSION_1_4) - -#endif /* GL_VERSION_1_4 */ - -/* ----------------------------- GL_VERSION_1_5 ---------------------------- */ - -#ifndef GL_VERSION_1_5 -#define GL_VERSION_1_5 1 - -#define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE -#define GL_FOG_COORD GL_FOG_COORDINATE -#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY -#define GL_SRC0_RGB GL_SOURCE0_RGB -#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER -#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE -#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA -#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE -#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE -#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA -#define GL_SRC1_RGB GL_SOURCE1_RGB -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING -#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA -#define GL_SRC2_RGB GL_SOURCE2_RGB -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_SAMPLES_PASSED 0x8914 - -typedef ptrdiff_t GLintptr; -typedef ptrdiff_t GLsizeiptr; - -typedef void (GLAPIENTRY * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); -typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDQUERYPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLGENQUERIESPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid** params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GLAPIENTRY * PFNGLISQUERYPROC) (GLuint id); -typedef GLvoid* (GLAPIENTRY * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERPROC) (GLenum target); - -#define glBeginQuery GLEW_GET_FUN(__glewBeginQuery) -#define glBindBuffer GLEW_GET_FUN(__glewBindBuffer) -#define glBufferData GLEW_GET_FUN(__glewBufferData) -#define glBufferSubData GLEW_GET_FUN(__glewBufferSubData) -#define glDeleteBuffers GLEW_GET_FUN(__glewDeleteBuffers) -#define glDeleteQueries GLEW_GET_FUN(__glewDeleteQueries) -#define glEndQuery GLEW_GET_FUN(__glewEndQuery) -#define glGenBuffers GLEW_GET_FUN(__glewGenBuffers) -#define glGenQueries GLEW_GET_FUN(__glewGenQueries) -#define glGetBufferParameteriv GLEW_GET_FUN(__glewGetBufferParameteriv) -#define glGetBufferPointerv GLEW_GET_FUN(__glewGetBufferPointerv) -#define glGetBufferSubData GLEW_GET_FUN(__glewGetBufferSubData) -#define glGetQueryObjectiv GLEW_GET_FUN(__glewGetQueryObjectiv) -#define glGetQueryObjectuiv GLEW_GET_FUN(__glewGetQueryObjectuiv) -#define glGetQueryiv GLEW_GET_FUN(__glewGetQueryiv) -#define glIsBuffer GLEW_GET_FUN(__glewIsBuffer) -#define glIsQuery GLEW_GET_FUN(__glewIsQuery) -#define glMapBuffer GLEW_GET_FUN(__glewMapBuffer) -#define glUnmapBuffer GLEW_GET_FUN(__glewUnmapBuffer) - -#define GLEW_VERSION_1_5 GLEW_GET_VAR(__GLEW_VERSION_1_5) - -#endif /* GL_VERSION_1_5 */ - -/* ----------------------------- GL_VERSION_2_0 ---------------------------- */ - -#ifndef GL_VERSION_2_0 -#define GL_VERSION_2_0 1 - -#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_POINT_SPRITE 0x8861 -#define GL_COORD_REPLACE 0x8862 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_MAX_TEXTURE_COORDS 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_SHADER_TYPE 0x8B4F -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_DELETE_STATUS 0x8B80 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 - -typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum, GLenum); -typedef void (GLAPIENTRY * PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GLAPIENTRY * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum* bufs); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint); -typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders); -typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog); -typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source); -typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param); -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint, GLenum, GLvoid**); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVPROC) (GLuint, GLenum, GLdouble*); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint, GLenum, GLfloat*); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint, GLenum, GLint*); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader); -typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar** strings, const GLint* lengths); -typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* pointer); - -#define glAttachShader GLEW_GET_FUN(__glewAttachShader) -#define glBindAttribLocation GLEW_GET_FUN(__glewBindAttribLocation) -#define glBlendEquationSeparate GLEW_GET_FUN(__glewBlendEquationSeparate) -#define glCompileShader GLEW_GET_FUN(__glewCompileShader) -#define glCreateProgram GLEW_GET_FUN(__glewCreateProgram) -#define glCreateShader GLEW_GET_FUN(__glewCreateShader) -#define glDeleteProgram GLEW_GET_FUN(__glewDeleteProgram) -#define glDeleteShader GLEW_GET_FUN(__glewDeleteShader) -#define glDetachShader GLEW_GET_FUN(__glewDetachShader) -#define glDisableVertexAttribArray GLEW_GET_FUN(__glewDisableVertexAttribArray) -#define glDrawBuffers GLEW_GET_FUN(__glewDrawBuffers) -#define glEnableVertexAttribArray GLEW_GET_FUN(__glewEnableVertexAttribArray) -#define glGetActiveAttrib GLEW_GET_FUN(__glewGetActiveAttrib) -#define glGetActiveUniform GLEW_GET_FUN(__glewGetActiveUniform) -#define glGetAttachedShaders GLEW_GET_FUN(__glewGetAttachedShaders) -#define glGetAttribLocation GLEW_GET_FUN(__glewGetAttribLocation) -#define glGetProgramInfoLog GLEW_GET_FUN(__glewGetProgramInfoLog) -#define glGetProgramiv GLEW_GET_FUN(__glewGetProgramiv) -#define glGetShaderInfoLog GLEW_GET_FUN(__glewGetShaderInfoLog) -#define glGetShaderSource GLEW_GET_FUN(__glewGetShaderSource) -#define glGetShaderiv GLEW_GET_FUN(__glewGetShaderiv) -#define glGetUniformLocation GLEW_GET_FUN(__glewGetUniformLocation) -#define glGetUniformfv GLEW_GET_FUN(__glewGetUniformfv) -#define glGetUniformiv GLEW_GET_FUN(__glewGetUniformiv) -#define glGetVertexAttribPointerv GLEW_GET_FUN(__glewGetVertexAttribPointerv) -#define glGetVertexAttribdv GLEW_GET_FUN(__glewGetVertexAttribdv) -#define glGetVertexAttribfv GLEW_GET_FUN(__glewGetVertexAttribfv) -#define glGetVertexAttribiv GLEW_GET_FUN(__glewGetVertexAttribiv) -#define glIsProgram GLEW_GET_FUN(__glewIsProgram) -#define glIsShader GLEW_GET_FUN(__glewIsShader) -#define glLinkProgram GLEW_GET_FUN(__glewLinkProgram) -#define glShaderSource GLEW_GET_FUN(__glewShaderSource) -#define glStencilFuncSeparate GLEW_GET_FUN(__glewStencilFuncSeparate) -#define glStencilMaskSeparate GLEW_GET_FUN(__glewStencilMaskSeparate) -#define glStencilOpSeparate GLEW_GET_FUN(__glewStencilOpSeparate) -#define glUniform1f GLEW_GET_FUN(__glewUniform1f) -#define glUniform1fv GLEW_GET_FUN(__glewUniform1fv) -#define glUniform1i GLEW_GET_FUN(__glewUniform1i) -#define glUniform1iv GLEW_GET_FUN(__glewUniform1iv) -#define glUniform2f GLEW_GET_FUN(__glewUniform2f) -#define glUniform2fv GLEW_GET_FUN(__glewUniform2fv) -#define glUniform2i GLEW_GET_FUN(__glewUniform2i) -#define glUniform2iv GLEW_GET_FUN(__glewUniform2iv) -#define glUniform3f GLEW_GET_FUN(__glewUniform3f) -#define glUniform3fv GLEW_GET_FUN(__glewUniform3fv) -#define glUniform3i GLEW_GET_FUN(__glewUniform3i) -#define glUniform3iv GLEW_GET_FUN(__glewUniform3iv) -#define glUniform4f GLEW_GET_FUN(__glewUniform4f) -#define glUniform4fv GLEW_GET_FUN(__glewUniform4fv) -#define glUniform4i GLEW_GET_FUN(__glewUniform4i) -#define glUniform4iv GLEW_GET_FUN(__glewUniform4iv) -#define glUniformMatrix2fv GLEW_GET_FUN(__glewUniformMatrix2fv) -#define glUniformMatrix3fv GLEW_GET_FUN(__glewUniformMatrix3fv) -#define glUniformMatrix4fv GLEW_GET_FUN(__glewUniformMatrix4fv) -#define glUseProgram GLEW_GET_FUN(__glewUseProgram) -#define glValidateProgram GLEW_GET_FUN(__glewValidateProgram) -#define glVertexAttrib1d GLEW_GET_FUN(__glewVertexAttrib1d) -#define glVertexAttrib1dv GLEW_GET_FUN(__glewVertexAttrib1dv) -#define glVertexAttrib1f GLEW_GET_FUN(__glewVertexAttrib1f) -#define glVertexAttrib1fv GLEW_GET_FUN(__glewVertexAttrib1fv) -#define glVertexAttrib1s GLEW_GET_FUN(__glewVertexAttrib1s) -#define glVertexAttrib1sv GLEW_GET_FUN(__glewVertexAttrib1sv) -#define glVertexAttrib2d GLEW_GET_FUN(__glewVertexAttrib2d) -#define glVertexAttrib2dv GLEW_GET_FUN(__glewVertexAttrib2dv) -#define glVertexAttrib2f GLEW_GET_FUN(__glewVertexAttrib2f) -#define glVertexAttrib2fv GLEW_GET_FUN(__glewVertexAttrib2fv) -#define glVertexAttrib2s GLEW_GET_FUN(__glewVertexAttrib2s) -#define glVertexAttrib2sv GLEW_GET_FUN(__glewVertexAttrib2sv) -#define glVertexAttrib3d GLEW_GET_FUN(__glewVertexAttrib3d) -#define glVertexAttrib3dv GLEW_GET_FUN(__glewVertexAttrib3dv) -#define glVertexAttrib3f GLEW_GET_FUN(__glewVertexAttrib3f) -#define glVertexAttrib3fv GLEW_GET_FUN(__glewVertexAttrib3fv) -#define glVertexAttrib3s GLEW_GET_FUN(__glewVertexAttrib3s) -#define glVertexAttrib3sv GLEW_GET_FUN(__glewVertexAttrib3sv) -#define glVertexAttrib4Nbv GLEW_GET_FUN(__glewVertexAttrib4Nbv) -#define glVertexAttrib4Niv GLEW_GET_FUN(__glewVertexAttrib4Niv) -#define glVertexAttrib4Nsv GLEW_GET_FUN(__glewVertexAttrib4Nsv) -#define glVertexAttrib4Nub GLEW_GET_FUN(__glewVertexAttrib4Nub) -#define glVertexAttrib4Nubv GLEW_GET_FUN(__glewVertexAttrib4Nubv) -#define glVertexAttrib4Nuiv GLEW_GET_FUN(__glewVertexAttrib4Nuiv) -#define glVertexAttrib4Nusv GLEW_GET_FUN(__glewVertexAttrib4Nusv) -#define glVertexAttrib4bv GLEW_GET_FUN(__glewVertexAttrib4bv) -#define glVertexAttrib4d GLEW_GET_FUN(__glewVertexAttrib4d) -#define glVertexAttrib4dv GLEW_GET_FUN(__glewVertexAttrib4dv) -#define glVertexAttrib4f GLEW_GET_FUN(__glewVertexAttrib4f) -#define glVertexAttrib4fv GLEW_GET_FUN(__glewVertexAttrib4fv) -#define glVertexAttrib4iv GLEW_GET_FUN(__glewVertexAttrib4iv) -#define glVertexAttrib4s GLEW_GET_FUN(__glewVertexAttrib4s) -#define glVertexAttrib4sv GLEW_GET_FUN(__glewVertexAttrib4sv) -#define glVertexAttrib4ubv GLEW_GET_FUN(__glewVertexAttrib4ubv) -#define glVertexAttrib4uiv GLEW_GET_FUN(__glewVertexAttrib4uiv) -#define glVertexAttrib4usv GLEW_GET_FUN(__glewVertexAttrib4usv) -#define glVertexAttribPointer GLEW_GET_FUN(__glewVertexAttribPointer) - -#define GLEW_VERSION_2_0 GLEW_GET_VAR(__GLEW_VERSION_2_0) - -#endif /* GL_VERSION_2_0 */ - -/* ----------------------------- GL_VERSION_2_1 ---------------------------- */ - -#ifndef GL_VERSION_2_1 -#define GL_VERSION_2_1 1 - -#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_SLUMINANCE_ALPHA 0x8C44 -#define GL_SLUMINANCE8_ALPHA8 0x8C45 -#define GL_SLUMINANCE 0x8C46 -#define GL_SLUMINANCE8 0x8C47 -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#define GL_COMPRESSED_SLUMINANCE 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B - -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - -#define glUniformMatrix2x3fv GLEW_GET_FUN(__glewUniformMatrix2x3fv) -#define glUniformMatrix2x4fv GLEW_GET_FUN(__glewUniformMatrix2x4fv) -#define glUniformMatrix3x2fv GLEW_GET_FUN(__glewUniformMatrix3x2fv) -#define glUniformMatrix3x4fv GLEW_GET_FUN(__glewUniformMatrix3x4fv) -#define glUniformMatrix4x2fv GLEW_GET_FUN(__glewUniformMatrix4x2fv) -#define glUniformMatrix4x3fv GLEW_GET_FUN(__glewUniformMatrix4x3fv) - -#define GLEW_VERSION_2_1 GLEW_GET_VAR(__GLEW_VERSION_2_1) - -#endif /* GL_VERSION_2_1 */ - -/* ----------------------------- GL_VERSION_3_0 ---------------------------- */ - -#ifndef GL_VERSION_3_0 -#define GL_VERSION_3_0 1 - -#define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES -#define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 -#define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 -#define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 -#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB -#define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 -#define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 -#define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 -#define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS -#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_CONTEXT_FLAGS 0x821E -#define GL_DEPTH_BUFFER 0x8223 -#define GL_STENCIL_BUFFER 0x8224 -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_CLAMP_VERTEX_COLOR 0x891A -#define GL_CLAMP_FRAGMENT_COLOR 0x891B -#define GL_CLAMP_READ_COLOR 0x891C -#define GL_FIXED_ONLY 0x891D -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_TEXTURE_1D_ARRAY 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_GREEN_INTEGER 0x8D95 -#define GL_BLUE_INTEGER 0x8D96 -#define GL_ALPHA_INTEGER 0x8D97 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_BGR_INTEGER 0x8D9A -#define GL_BGRA_INTEGER 0x8D9B -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_QUERY_WAIT 0x8E13 -#define GL_QUERY_NO_WAIT 0x8E14 -#define GL_QUERY_BY_REGION_WAIT 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 - -typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint, GLenum); -typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum); -typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint, GLuint, const GLchar*); -typedef void (GLAPIENTRY * PFNGLCLAMPCOLORPROC) (GLenum, GLenum); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFIPROC) (GLenum, GLint, GLfloat, GLint); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFVPROC) (GLenum, GLint, const GLfloat*); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERIVPROC) (GLenum, GLint, const GLint*); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERUIVPROC) (GLenum, GLint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLCOLORMASKIPROC) (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); -typedef void (GLAPIENTRY * PFNGLDISABLEIPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLENABLEIPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERPROC) (void); -typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETBOOLEANI_VPROC) (GLenum, GLuint, GLboolean*); -typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONPROC) (GLuint, const GLchar*); -typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGIPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVPROC) (GLenum, GLenum, GLint*); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum, GLenum, GLuint*); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVPROC) (GLuint, GLint, GLuint*); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint, GLenum, GLint*); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint, GLenum, GLuint*); -typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVPROC) (GLenum, GLenum, const GLint*); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVPROC) (GLenum, GLenum, const GLuint*); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint, GLsizei, const GLchar **, GLenum); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIPROC) (GLint, GLuint); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVPROC) (GLint, GLsizei, const GLuint*); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIPROC) (GLint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVPROC) (GLint, GLsizei, const GLuint*); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIPROC) (GLint, GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVPROC) (GLint, GLsizei, const GLuint*); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIPROC) (GLint, GLuint, GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVPROC) (GLint, GLsizei, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IPROC) (GLuint, GLint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVPROC) (GLuint, const GLint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIPROC) (GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IPROC) (GLuint, GLint, GLint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVPROC) (GLuint, const GLint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIPROC) (GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IPROC) (GLuint, GLint, GLint, GLint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVPROC) (GLuint, const GLint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIPROC) (GLuint, GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVPROC) (GLuint, const GLbyte*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IPROC) (GLuint, GLint, GLint, GLint, GLint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVPROC) (GLuint, const GLint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVPROC) (GLuint, const GLshort*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint, const GLubyte*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIPROC) (GLuint, GLuint, GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVPROC) (GLuint, const GLushort*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint, GLint, GLenum, GLsizei, const GLvoid*); - -#define glBeginConditionalRender GLEW_GET_FUN(__glewBeginConditionalRender) -#define glBeginTransformFeedback GLEW_GET_FUN(__glewBeginTransformFeedback) -#define glBindFragDataLocation GLEW_GET_FUN(__glewBindFragDataLocation) -#define glClampColor GLEW_GET_FUN(__glewClampColor) -#define glClearBufferfi GLEW_GET_FUN(__glewClearBufferfi) -#define glClearBufferfv GLEW_GET_FUN(__glewClearBufferfv) -#define glClearBufferiv GLEW_GET_FUN(__glewClearBufferiv) -#define glClearBufferuiv GLEW_GET_FUN(__glewClearBufferuiv) -#define glColorMaski GLEW_GET_FUN(__glewColorMaski) -#define glDisablei GLEW_GET_FUN(__glewDisablei) -#define glEnablei GLEW_GET_FUN(__glewEnablei) -#define glEndConditionalRender GLEW_GET_FUN(__glewEndConditionalRender) -#define glEndTransformFeedback GLEW_GET_FUN(__glewEndTransformFeedback) -#define glGetBooleani_v GLEW_GET_FUN(__glewGetBooleani_v) -#define glGetFragDataLocation GLEW_GET_FUN(__glewGetFragDataLocation) -#define glGetStringi GLEW_GET_FUN(__glewGetStringi) -#define glGetTexParameterIiv GLEW_GET_FUN(__glewGetTexParameterIiv) -#define glGetTexParameterIuiv GLEW_GET_FUN(__glewGetTexParameterIuiv) -#define glGetTransformFeedbackVarying GLEW_GET_FUN(__glewGetTransformFeedbackVarying) -#define glGetUniformuiv GLEW_GET_FUN(__glewGetUniformuiv) -#define glGetVertexAttribIiv GLEW_GET_FUN(__glewGetVertexAttribIiv) -#define glGetVertexAttribIuiv GLEW_GET_FUN(__glewGetVertexAttribIuiv) -#define glIsEnabledi GLEW_GET_FUN(__glewIsEnabledi) -#define glTexParameterIiv GLEW_GET_FUN(__glewTexParameterIiv) -#define glTexParameterIuiv GLEW_GET_FUN(__glewTexParameterIuiv) -#define glTransformFeedbackVaryings GLEW_GET_FUN(__glewTransformFeedbackVaryings) -#define glUniform1ui GLEW_GET_FUN(__glewUniform1ui) -#define glUniform1uiv GLEW_GET_FUN(__glewUniform1uiv) -#define glUniform2ui GLEW_GET_FUN(__glewUniform2ui) -#define glUniform2uiv GLEW_GET_FUN(__glewUniform2uiv) -#define glUniform3ui GLEW_GET_FUN(__glewUniform3ui) -#define glUniform3uiv GLEW_GET_FUN(__glewUniform3uiv) -#define glUniform4ui GLEW_GET_FUN(__glewUniform4ui) -#define glUniform4uiv GLEW_GET_FUN(__glewUniform4uiv) -#define glVertexAttribI1i GLEW_GET_FUN(__glewVertexAttribI1i) -#define glVertexAttribI1iv GLEW_GET_FUN(__glewVertexAttribI1iv) -#define glVertexAttribI1ui GLEW_GET_FUN(__glewVertexAttribI1ui) -#define glVertexAttribI1uiv GLEW_GET_FUN(__glewVertexAttribI1uiv) -#define glVertexAttribI2i GLEW_GET_FUN(__glewVertexAttribI2i) -#define glVertexAttribI2iv GLEW_GET_FUN(__glewVertexAttribI2iv) -#define glVertexAttribI2ui GLEW_GET_FUN(__glewVertexAttribI2ui) -#define glVertexAttribI2uiv GLEW_GET_FUN(__glewVertexAttribI2uiv) -#define glVertexAttribI3i GLEW_GET_FUN(__glewVertexAttribI3i) -#define glVertexAttribI3iv GLEW_GET_FUN(__glewVertexAttribI3iv) -#define glVertexAttribI3ui GLEW_GET_FUN(__glewVertexAttribI3ui) -#define glVertexAttribI3uiv GLEW_GET_FUN(__glewVertexAttribI3uiv) -#define glVertexAttribI4bv GLEW_GET_FUN(__glewVertexAttribI4bv) -#define glVertexAttribI4i GLEW_GET_FUN(__glewVertexAttribI4i) -#define glVertexAttribI4iv GLEW_GET_FUN(__glewVertexAttribI4iv) -#define glVertexAttribI4sv GLEW_GET_FUN(__glewVertexAttribI4sv) -#define glVertexAttribI4ubv GLEW_GET_FUN(__glewVertexAttribI4ubv) -#define glVertexAttribI4ui GLEW_GET_FUN(__glewVertexAttribI4ui) -#define glVertexAttribI4uiv GLEW_GET_FUN(__glewVertexAttribI4uiv) -#define glVertexAttribI4usv GLEW_GET_FUN(__glewVertexAttribI4usv) -#define glVertexAttribIPointer GLEW_GET_FUN(__glewVertexAttribIPointer) - -#define GLEW_VERSION_3_0 GLEW_GET_VAR(__GLEW_VERSION_3_0) - -#endif /* GL_VERSION_3_0 */ - -/* ----------------------------- GL_VERSION_3_1 ---------------------------- */ - -#ifndef GL_VERSION_3_1 -#define GL_VERSION_3_1 1 - -#define GL_TEXTURE_RECTANGLE 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 -#define GL_SAMPLER_2D_RECT 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT 0x8C2E -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_2D_RECT 0x8DCD -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_RED_SNORM 0x8F90 -#define GL_RG_SNORM 0x8F91 -#define GL_RGB_SNORM 0x8F92 -#define GL_RGBA_SNORM 0x8F93 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM 0x8F98 -#define GL_RG16_SNORM 0x8F99 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGBA16_SNORM 0x8F9B -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART 0x8F9D -#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum, GLint, GLsizei, GLsizei); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum, GLsizei, GLenum, const GLvoid*, GLsizei); -typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint); -typedef void (GLAPIENTRY * PFNGLTEXBUFFERPROC) (GLenum, GLenum, GLuint); - -#define glDrawArraysInstanced GLEW_GET_FUN(__glewDrawArraysInstanced) -#define glDrawElementsInstanced GLEW_GET_FUN(__glewDrawElementsInstanced) -#define glPrimitiveRestartIndex GLEW_GET_FUN(__glewPrimitiveRestartIndex) -#define glTexBuffer GLEW_GET_FUN(__glewTexBuffer) - -#define GLEW_VERSION_3_1 GLEW_GET_VAR(__GLEW_VERSION_3_1) - -#endif /* GL_VERSION_3_1 */ - -/* ----------------------------- GL_VERSION_3_2 ---------------------------- */ - -#ifndef GL_VERSION_3_2 -#define GL_VERSION_3_2 1 - -#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 -#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_PROGRAM_POINT_SIZE 0x8642 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_CONTEXT_PROFILE_MASK 0x9126 - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum, GLenum, GLuint, GLint); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum, GLenum, GLint64 *); -typedef void (GLAPIENTRY * PFNGLGETINTEGER64I_VPROC) (GLenum, GLuint, GLint64 *); - -#define glFramebufferTexture GLEW_GET_FUN(__glewFramebufferTexture) -#define glGetBufferParameteri64v GLEW_GET_FUN(__glewGetBufferParameteri64v) -#define glGetInteger64i_v GLEW_GET_FUN(__glewGetInteger64i_v) - -#define GLEW_VERSION_3_2 GLEW_GET_VAR(__GLEW_VERSION_3_2) - -#endif /* GL_VERSION_3_2 */ - -/* ----------------------------- GL_VERSION_3_3 ---------------------------- */ - -#ifndef GL_VERSION_3_3 -#define GL_VERSION_3_3 1 - -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 -#define GL_RGB10_A2UI 0x906F - -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); - -#define glVertexAttribDivisor GLEW_GET_FUN(__glewVertexAttribDivisor) - -#define GLEW_VERSION_3_3 GLEW_GET_VAR(__GLEW_VERSION_3_3) - -#endif /* GL_VERSION_3_3 */ - -/* ----------------------------- GL_VERSION_4_0 ---------------------------- */ - -#ifndef GL_VERSION_4_0 -#define GL_VERSION_4_0 1 - -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGPROC) (GLclampf value); - -#define glBlendEquationSeparatei GLEW_GET_FUN(__glewBlendEquationSeparatei) -#define glBlendEquationi GLEW_GET_FUN(__glewBlendEquationi) -#define glBlendFuncSeparatei GLEW_GET_FUN(__glewBlendFuncSeparatei) -#define glBlendFunci GLEW_GET_FUN(__glewBlendFunci) -#define glMinSampleShading GLEW_GET_FUN(__glewMinSampleShading) - -#define GLEW_VERSION_4_0 GLEW_GET_VAR(__GLEW_VERSION_4_0) - -#endif /* GL_VERSION_4_0 */ - -/* ----------------------------- GL_VERSION_4_1 ---------------------------- */ - -#ifndef GL_VERSION_4_1 -#define GL_VERSION_4_1 1 - -#define GLEW_VERSION_4_1 GLEW_GET_VAR(__GLEW_VERSION_4_1) - -#endif /* GL_VERSION_4_1 */ - -/* ----------------------------- GL_VERSION_4_2 ---------------------------- */ - -#ifndef GL_VERSION_4_2 -#define GL_VERSION_4_2 1 - -#define GLEW_VERSION_4_2 GLEW_GET_VAR(__GLEW_VERSION_4_2) - -#endif /* GL_VERSION_4_2 */ - -/* -------------------------- GL_3DFX_multisample -------------------------- */ - -#ifndef GL_3DFX_multisample -#define GL_3DFX_multisample 1 - -#define GL_MULTISAMPLE_3DFX 0x86B2 -#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define GL_SAMPLES_3DFX 0x86B4 -#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 - -#define GLEW_3DFX_multisample GLEW_GET_VAR(__GLEW_3DFX_multisample) - -#endif /* GL_3DFX_multisample */ - -/* ---------------------------- GL_3DFX_tbuffer ---------------------------- */ - -#ifndef GL_3DFX_tbuffer -#define GL_3DFX_tbuffer 1 - -typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); - -#define glTbufferMask3DFX GLEW_GET_FUN(__glewTbufferMask3DFX) - -#define GLEW_3DFX_tbuffer GLEW_GET_VAR(__GLEW_3DFX_tbuffer) - -#endif /* GL_3DFX_tbuffer */ - -/* -------------------- GL_3DFX_texture_compression_FXT1 ------------------- */ - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_3DFX_texture_compression_FXT1 1 - -#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 - -#define GLEW_3DFX_texture_compression_FXT1 GLEW_GET_VAR(__GLEW_3DFX_texture_compression_FXT1) - -#endif /* GL_3DFX_texture_compression_FXT1 */ - -/* ----------------------- GL_AMD_blend_minmax_factor ---------------------- */ - -#ifndef GL_AMD_blend_minmax_factor -#define GL_AMD_blend_minmax_factor 1 - -#define GL_FACTOR_MIN_AMD 0x901C -#define GL_FACTOR_MAX_AMD 0x901D - -#define GLEW_AMD_blend_minmax_factor GLEW_GET_VAR(__GLEW_AMD_blend_minmax_factor) - -#endif /* GL_AMD_blend_minmax_factor */ - -/* ----------------------- GL_AMD_conservative_depth ----------------------- */ - -#ifndef GL_AMD_conservative_depth -#define GL_AMD_conservative_depth 1 - -#define GLEW_AMD_conservative_depth GLEW_GET_VAR(__GLEW_AMD_conservative_depth) - -#endif /* GL_AMD_conservative_depth */ - -/* -------------------------- GL_AMD_debug_output -------------------------- */ - -#ifndef GL_AMD_debug_output -#define GL_AMD_debug_output 1 - -#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 -#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 -#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 -#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A -#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B -#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C -#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D -#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E -#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F -#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 - -typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam); - -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void* userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const char* buf); -typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, char* message); - -#define glDebugMessageCallbackAMD GLEW_GET_FUN(__glewDebugMessageCallbackAMD) -#define glDebugMessageEnableAMD GLEW_GET_FUN(__glewDebugMessageEnableAMD) -#define glDebugMessageInsertAMD GLEW_GET_FUN(__glewDebugMessageInsertAMD) -#define glGetDebugMessageLogAMD GLEW_GET_FUN(__glewGetDebugMessageLogAMD) - -#define GLEW_AMD_debug_output GLEW_GET_VAR(__GLEW_AMD_debug_output) - -#endif /* GL_AMD_debug_output */ - -/* ---------------------- GL_AMD_depth_clamp_separate ---------------------- */ - -#ifndef GL_AMD_depth_clamp_separate -#define GL_AMD_depth_clamp_separate 1 - -#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E -#define GL_DEPTH_CLAMP_FAR_AMD 0x901F - -#define GLEW_AMD_depth_clamp_separate GLEW_GET_VAR(__GLEW_AMD_depth_clamp_separate) - -#endif /* GL_AMD_depth_clamp_separate */ - -/* ----------------------- GL_AMD_draw_buffers_blend ----------------------- */ - -#ifndef GL_AMD_draw_buffers_blend -#define GL_AMD_draw_buffers_blend 1 - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); - -#define glBlendEquationIndexedAMD GLEW_GET_FUN(__glewBlendEquationIndexedAMD) -#define glBlendEquationSeparateIndexedAMD GLEW_GET_FUN(__glewBlendEquationSeparateIndexedAMD) -#define glBlendFuncIndexedAMD GLEW_GET_FUN(__glewBlendFuncIndexedAMD) -#define glBlendFuncSeparateIndexedAMD GLEW_GET_FUN(__glewBlendFuncSeparateIndexedAMD) - -#define GLEW_AMD_draw_buffers_blend GLEW_GET_VAR(__GLEW_AMD_draw_buffers_blend) - -#endif /* GL_AMD_draw_buffers_blend */ - -/* ----------------------- GL_AMD_multi_draw_indirect ---------------------- */ - -#ifndef GL_AMD_multi_draw_indirect -#define GL_AMD_multi_draw_indirect 1 - -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void* indirect, GLsizei primcount, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void* indirect, GLsizei primcount, GLsizei stride); - -#define glMultiDrawArraysIndirectAMD GLEW_GET_FUN(__glewMultiDrawArraysIndirectAMD) -#define glMultiDrawElementsIndirectAMD GLEW_GET_FUN(__glewMultiDrawElementsIndirectAMD) - -#define GLEW_AMD_multi_draw_indirect GLEW_GET_VAR(__GLEW_AMD_multi_draw_indirect) - -#endif /* GL_AMD_multi_draw_indirect */ - -/* ------------------------- GL_AMD_name_gen_delete ------------------------ */ - -#ifndef GL_AMD_name_gen_delete -#define GL_AMD_name_gen_delete 1 - -#define GL_DATA_BUFFER_AMD 0x9151 -#define GL_PERFORMANCE_MONITOR_AMD 0x9152 -#define GL_QUERY_OBJECT_AMD 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 -#define GL_SAMPLER_OBJECT_AMD 0x9155 - -typedef void (GLAPIENTRY * PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint* names); -typedef void (GLAPIENTRY * PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint* names); -typedef GLboolean (GLAPIENTRY * PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); - -#define glDeleteNamesAMD GLEW_GET_FUN(__glewDeleteNamesAMD) -#define glGenNamesAMD GLEW_GET_FUN(__glewGenNamesAMD) -#define glIsNameAMD GLEW_GET_FUN(__glewIsNameAMD) - -#define GLEW_AMD_name_gen_delete GLEW_GET_VAR(__GLEW_AMD_name_gen_delete) - -#endif /* GL_AMD_name_gen_delete */ - -/* ----------------------- GL_AMD_performance_monitor ---------------------- */ - -#ifndef GL_AMD_performance_monitor -#define GL_AMD_performance_monitor 1 - -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_COUNTER_TYPE_AMD 0x8BC0 -#define GL_COUNTER_RANGE_AMD 0x8BC1 -#define GL_UNSIGNED_INT64_AMD 0x8BC2 -#define GL_PERCENTAGE_AMD 0x8BC3 -#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 -#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 -#define GL_PERFMON_RESULT_AMD 0x8BC6 - -typedef void (GLAPIENTRY * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GLAPIENTRY * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); -typedef void (GLAPIENTRY * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GLAPIENTRY * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void* data); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, char *counterString); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei* length, char *groupString); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint* numGroups, GLsizei groupsSize, GLuint *groups); -typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList); - -#define glBeginPerfMonitorAMD GLEW_GET_FUN(__glewBeginPerfMonitorAMD) -#define glDeletePerfMonitorsAMD GLEW_GET_FUN(__glewDeletePerfMonitorsAMD) -#define glEndPerfMonitorAMD GLEW_GET_FUN(__glewEndPerfMonitorAMD) -#define glGenPerfMonitorsAMD GLEW_GET_FUN(__glewGenPerfMonitorsAMD) -#define glGetPerfMonitorCounterDataAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterDataAMD) -#define glGetPerfMonitorCounterInfoAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterInfoAMD) -#define glGetPerfMonitorCounterStringAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterStringAMD) -#define glGetPerfMonitorCountersAMD GLEW_GET_FUN(__glewGetPerfMonitorCountersAMD) -#define glGetPerfMonitorGroupStringAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupStringAMD) -#define glGetPerfMonitorGroupsAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupsAMD) -#define glSelectPerfMonitorCountersAMD GLEW_GET_FUN(__glewSelectPerfMonitorCountersAMD) - -#define GLEW_AMD_performance_monitor GLEW_GET_VAR(__GLEW_AMD_performance_monitor) - -#endif /* GL_AMD_performance_monitor */ - -/* ------------------------ GL_AMD_sample_positions ------------------------ */ - -#ifndef GL_AMD_sample_positions -#define GL_AMD_sample_positions 1 - -#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F - -typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat* val); - -#define glSetMultisamplefvAMD GLEW_GET_FUN(__glewSetMultisamplefvAMD) - -#define GLEW_AMD_sample_positions GLEW_GET_VAR(__GLEW_AMD_sample_positions) - -#endif /* GL_AMD_sample_positions */ - -/* ------------------ GL_AMD_seamless_cubemap_per_texture ------------------ */ - -#ifndef GL_AMD_seamless_cubemap_per_texture -#define GL_AMD_seamless_cubemap_per_texture 1 - -#define GL_TEXTURE_CUBE_MAP_SEAMLESS_ARB 0x884F - -#define GLEW_AMD_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_AMD_seamless_cubemap_per_texture) - -#endif /* GL_AMD_seamless_cubemap_per_texture */ - -/* ---------------------- GL_AMD_shader_stencil_export --------------------- */ - -#ifndef GL_AMD_shader_stencil_export -#define GL_AMD_shader_stencil_export 1 - -#define GLEW_AMD_shader_stencil_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_export) - -#endif /* GL_AMD_shader_stencil_export */ - -/* ------------------------ GL_AMD_texture_texture4 ------------------------ */ - -#ifndef GL_AMD_texture_texture4 -#define GL_AMD_texture_texture4 1 - -#define GLEW_AMD_texture_texture4 GLEW_GET_VAR(__GLEW_AMD_texture_texture4) - -#endif /* GL_AMD_texture_texture4 */ - -/* --------------- GL_AMD_transform_feedback3_lines_triangles -------------- */ - -#ifndef GL_AMD_transform_feedback3_lines_triangles -#define GL_AMD_transform_feedback3_lines_triangles 1 - -#define GLEW_AMD_transform_feedback3_lines_triangles GLEW_GET_VAR(__GLEW_AMD_transform_feedback3_lines_triangles) - -#endif /* GL_AMD_transform_feedback3_lines_triangles */ - -/* -------------------- GL_AMD_vertex_shader_tessellator ------------------- */ - -#ifndef GL_AMD_vertex_shader_tessellator -#define GL_AMD_vertex_shader_tessellator 1 - -#define GL_SAMPLER_BUFFER_AMD 0x9001 -#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 -#define GL_TESSELLATION_MODE_AMD 0x9004 -#define GL_TESSELLATION_FACTOR_AMD 0x9005 -#define GL_DISCRETE_AMD 0x9006 -#define GL_CONTINUOUS_AMD 0x9007 - -typedef void (GLAPIENTRY * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); -typedef void (GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); - -#define glTessellationFactorAMD GLEW_GET_FUN(__glewTessellationFactorAMD) -#define glTessellationModeAMD GLEW_GET_FUN(__glewTessellationModeAMD) - -#define GLEW_AMD_vertex_shader_tessellator GLEW_GET_VAR(__GLEW_AMD_vertex_shader_tessellator) - -#endif /* GL_AMD_vertex_shader_tessellator */ - -/* ----------------------- GL_APPLE_aux_depth_stencil ---------------------- */ - -#ifndef GL_APPLE_aux_depth_stencil -#define GL_APPLE_aux_depth_stencil 1 - -#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 - -#define GLEW_APPLE_aux_depth_stencil GLEW_GET_VAR(__GLEW_APPLE_aux_depth_stencil) - -#endif /* GL_APPLE_aux_depth_stencil */ - -/* ------------------------ GL_APPLE_client_storage ------------------------ */ - -#ifndef GL_APPLE_client_storage -#define GL_APPLE_client_storage 1 - -#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 - -#define GLEW_APPLE_client_storage GLEW_GET_VAR(__GLEW_APPLE_client_storage) - -#endif /* GL_APPLE_client_storage */ - -/* ------------------------- GL_APPLE_element_array ------------------------ */ - -#ifndef GL_APPLE_element_array -#define GL_APPLE_element_array 1 - -#define GL_ELEMENT_ARRAY_APPLE 0x8A0C -#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D -#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E - -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void* pointer); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint* first, const GLsizei *count, GLsizei primcount); - -#define glDrawElementArrayAPPLE GLEW_GET_FUN(__glewDrawElementArrayAPPLE) -#define glDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewDrawRangeElementArrayAPPLE) -#define glElementPointerAPPLE GLEW_GET_FUN(__glewElementPointerAPPLE) -#define glMultiDrawElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawElementArrayAPPLE) -#define glMultiDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawRangeElementArrayAPPLE) - -#define GLEW_APPLE_element_array GLEW_GET_VAR(__GLEW_APPLE_element_array) - -#endif /* GL_APPLE_element_array */ - -/* ----------------------------- GL_APPLE_fence ---------------------------- */ - -#ifndef GL_APPLE_fence -#define GL_APPLE_fence 1 - -#define GL_DRAW_PIXELS_APPLE 0x8A0A -#define GL_FENCE_APPLE 0x8A0B - -typedef void (GLAPIENTRY * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint* fences); -typedef void (GLAPIENTRY * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); -typedef void (GLAPIENTRY * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint* fences); -typedef GLboolean (GLAPIENTRY * PFNGLISFENCEAPPLEPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLSETFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); - -#define glDeleteFencesAPPLE GLEW_GET_FUN(__glewDeleteFencesAPPLE) -#define glFinishFenceAPPLE GLEW_GET_FUN(__glewFinishFenceAPPLE) -#define glFinishObjectAPPLE GLEW_GET_FUN(__glewFinishObjectAPPLE) -#define glGenFencesAPPLE GLEW_GET_FUN(__glewGenFencesAPPLE) -#define glIsFenceAPPLE GLEW_GET_FUN(__glewIsFenceAPPLE) -#define glSetFenceAPPLE GLEW_GET_FUN(__glewSetFenceAPPLE) -#define glTestFenceAPPLE GLEW_GET_FUN(__glewTestFenceAPPLE) -#define glTestObjectAPPLE GLEW_GET_FUN(__glewTestObjectAPPLE) - -#define GLEW_APPLE_fence GLEW_GET_VAR(__GLEW_APPLE_fence) - -#endif /* GL_APPLE_fence */ - -/* ------------------------- GL_APPLE_float_pixels ------------------------- */ - -#ifndef GL_APPLE_float_pixels -#define GL_APPLE_float_pixels 1 - -#define GL_HALF_APPLE 0x140B -#define GL_RGBA_FLOAT32_APPLE 0x8814 -#define GL_RGB_FLOAT32_APPLE 0x8815 -#define GL_ALPHA_FLOAT32_APPLE 0x8816 -#define GL_INTENSITY_FLOAT32_APPLE 0x8817 -#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 -#define GL_RGBA_FLOAT16_APPLE 0x881A -#define GL_RGB_FLOAT16_APPLE 0x881B -#define GL_ALPHA_FLOAT16_APPLE 0x881C -#define GL_INTENSITY_FLOAT16_APPLE 0x881D -#define GL_LUMINANCE_FLOAT16_APPLE 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F -#define GL_COLOR_FLOAT_APPLE 0x8A0F - -#define GLEW_APPLE_float_pixels GLEW_GET_VAR(__GLEW_APPLE_float_pixels) - -#endif /* GL_APPLE_float_pixels */ - -/* ---------------------- GL_APPLE_flush_buffer_range ---------------------- */ - -#ifndef GL_APPLE_flush_buffer_range -#define GL_APPLE_flush_buffer_range 1 - -#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 -#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 - -typedef void (GLAPIENTRY * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); - -#define glBufferParameteriAPPLE GLEW_GET_FUN(__glewBufferParameteriAPPLE) -#define glFlushMappedBufferRangeAPPLE GLEW_GET_FUN(__glewFlushMappedBufferRangeAPPLE) - -#define GLEW_APPLE_flush_buffer_range GLEW_GET_VAR(__GLEW_APPLE_flush_buffer_range) - -#endif /* GL_APPLE_flush_buffer_range */ - -/* ----------------------- GL_APPLE_object_purgeable ----------------------- */ - -#ifndef GL_APPLE_object_purgeable -#define GL_APPLE_object_purgeable 1 - -#define GL_BUFFER_OBJECT_APPLE 0x85B3 -#define GL_RELEASED_APPLE 0x8A19 -#define GL_VOLATILE_APPLE 0x8A1A -#define GL_RETAINED_APPLE 0x8A1B -#define GL_UNDEFINED_APPLE 0x8A1C -#define GL_PURGEABLE_APPLE 0x8A1D - -typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint* params); -typedef GLenum (GLAPIENTRY * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); -typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); - -#define glGetObjectParameterivAPPLE GLEW_GET_FUN(__glewGetObjectParameterivAPPLE) -#define glObjectPurgeableAPPLE GLEW_GET_FUN(__glewObjectPurgeableAPPLE) -#define glObjectUnpurgeableAPPLE GLEW_GET_FUN(__glewObjectUnpurgeableAPPLE) - -#define GLEW_APPLE_object_purgeable GLEW_GET_VAR(__GLEW_APPLE_object_purgeable) - -#endif /* GL_APPLE_object_purgeable */ - -/* ------------------------- GL_APPLE_pixel_buffer ------------------------- */ - -#ifndef GL_APPLE_pixel_buffer -#define GL_APPLE_pixel_buffer 1 - -#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10 - -#define GLEW_APPLE_pixel_buffer GLEW_GET_VAR(__GLEW_APPLE_pixel_buffer) - -#endif /* GL_APPLE_pixel_buffer */ - -/* ---------------------------- GL_APPLE_rgb_422 --------------------------- */ - -#ifndef GL_APPLE_rgb_422 -#define GL_APPLE_rgb_422 1 - -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#define GL_RGB_422_APPLE 0x8A1F - -#define GLEW_APPLE_rgb_422 GLEW_GET_VAR(__GLEW_APPLE_rgb_422) - -#endif /* GL_APPLE_rgb_422 */ - -/* --------------------------- GL_APPLE_row_bytes -------------------------- */ - -#ifndef GL_APPLE_row_bytes -#define GL_APPLE_row_bytes 1 - -#define GL_PACK_ROW_BYTES_APPLE 0x8A15 -#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 - -#define GLEW_APPLE_row_bytes GLEW_GET_VAR(__GLEW_APPLE_row_bytes) - -#endif /* GL_APPLE_row_bytes */ - -/* ------------------------ GL_APPLE_specular_vector ----------------------- */ - -#ifndef GL_APPLE_specular_vector -#define GL_APPLE_specular_vector 1 - -#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 - -#define GLEW_APPLE_specular_vector GLEW_GET_VAR(__GLEW_APPLE_specular_vector) - -#endif /* GL_APPLE_specular_vector */ - -/* ------------------------- GL_APPLE_texture_range ------------------------ */ - -#ifndef GL_APPLE_texture_range -#define GL_APPLE_texture_range 1 - -#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 -#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 -#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC -#define GL_STORAGE_PRIVATE_APPLE 0x85BD -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF - -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid **params); -typedef void (GLAPIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, GLvoid *pointer); - -#define glGetTexParameterPointervAPPLE GLEW_GET_FUN(__glewGetTexParameterPointervAPPLE) -#define glTextureRangeAPPLE GLEW_GET_FUN(__glewTextureRangeAPPLE) - -#define GLEW_APPLE_texture_range GLEW_GET_VAR(__GLEW_APPLE_texture_range) - -#endif /* GL_APPLE_texture_range */ - -/* ------------------------ GL_APPLE_transform_hint ------------------------ */ - -#ifndef GL_APPLE_transform_hint -#define GL_APPLE_transform_hint 1 - -#define GL_TRANSFORM_HINT_APPLE 0x85B1 - -#define GLEW_APPLE_transform_hint GLEW_GET_VAR(__GLEW_APPLE_transform_hint) - -#endif /* GL_APPLE_transform_hint */ - -/* ---------------------- GL_APPLE_vertex_array_object --------------------- */ - -#ifndef GL_APPLE_vertex_array_object -#define GL_APPLE_vertex_array_object 1 - -#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 - -typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); -typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); -typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); -typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); - -#define glBindVertexArrayAPPLE GLEW_GET_FUN(__glewBindVertexArrayAPPLE) -#define glDeleteVertexArraysAPPLE GLEW_GET_FUN(__glewDeleteVertexArraysAPPLE) -#define glGenVertexArraysAPPLE GLEW_GET_FUN(__glewGenVertexArraysAPPLE) -#define glIsVertexArrayAPPLE GLEW_GET_FUN(__glewIsVertexArrayAPPLE) - -#define GLEW_APPLE_vertex_array_object GLEW_GET_VAR(__GLEW_APPLE_vertex_array_object) - -#endif /* GL_APPLE_vertex_array_object */ - -/* ---------------------- GL_APPLE_vertex_array_range ---------------------- */ - -#ifndef GL_APPLE_vertex_array_range -#define GL_APPLE_vertex_array_range 1 - -#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E -#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 -#define GL_STORAGE_CLIENT_APPLE 0x85B4 -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF - -typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void* pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void* pointer); - -#define glFlushVertexArrayRangeAPPLE GLEW_GET_FUN(__glewFlushVertexArrayRangeAPPLE) -#define glVertexArrayParameteriAPPLE GLEW_GET_FUN(__glewVertexArrayParameteriAPPLE) -#define glVertexArrayRangeAPPLE GLEW_GET_FUN(__glewVertexArrayRangeAPPLE) - -#define GLEW_APPLE_vertex_array_range GLEW_GET_VAR(__GLEW_APPLE_vertex_array_range) - -#endif /* GL_APPLE_vertex_array_range */ - -/* ------------------- GL_APPLE_vertex_program_evaluators ------------------ */ - -#ifndef GL_APPLE_vertex_program_evaluators -#define GL_APPLE_vertex_program_evaluators 1 - -#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 -#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 -#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 -#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 -#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 -#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 -#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 -#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 -#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 -#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 - -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points); - -#define glDisableVertexAttribAPPLE GLEW_GET_FUN(__glewDisableVertexAttribAPPLE) -#define glEnableVertexAttribAPPLE GLEW_GET_FUN(__glewEnableVertexAttribAPPLE) -#define glIsVertexAttribEnabledAPPLE GLEW_GET_FUN(__glewIsVertexAttribEnabledAPPLE) -#define glMapVertexAttrib1dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1dAPPLE) -#define glMapVertexAttrib1fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1fAPPLE) -#define glMapVertexAttrib2dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2dAPPLE) -#define glMapVertexAttrib2fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2fAPPLE) - -#define GLEW_APPLE_vertex_program_evaluators GLEW_GET_VAR(__GLEW_APPLE_vertex_program_evaluators) - -#endif /* GL_APPLE_vertex_program_evaluators */ - -/* --------------------------- GL_APPLE_ycbcr_422 -------------------------- */ - -#ifndef GL_APPLE_ycbcr_422 -#define GL_APPLE_ycbcr_422 1 - -#define GL_YCBCR_422_APPLE 0x85B9 -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB - -#define GLEW_APPLE_ycbcr_422 GLEW_GET_VAR(__GLEW_APPLE_ycbcr_422) - -#endif /* GL_APPLE_ycbcr_422 */ - -/* ------------------------ GL_ARB_ES2_compatibility ----------------------- */ - -#ifndef GL_ARB_ES2_compatibility -#define GL_ARB_ES2_compatibility 1 - -#define GL_FIXED 0x140C -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD - -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf d); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); -typedef void (GLAPIENTRY * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision); -typedef void (GLAPIENTRY * PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GLAPIENTRY * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint* shaders, GLenum binaryformat, const GLvoid*binary, GLsizei length); - -#define glClearDepthf GLEW_GET_FUN(__glewClearDepthf) -#define glDepthRangef GLEW_GET_FUN(__glewDepthRangef) -#define glGetShaderPrecisionFormat GLEW_GET_FUN(__glewGetShaderPrecisionFormat) -#define glReleaseShaderCompiler GLEW_GET_FUN(__glewReleaseShaderCompiler) -#define glShaderBinary GLEW_GET_FUN(__glewShaderBinary) - -#define GLEW_ARB_ES2_compatibility GLEW_GET_VAR(__GLEW_ARB_ES2_compatibility) - -#endif /* GL_ARB_ES2_compatibility */ - -/* -------------------------- GL_ARB_base_instance ------------------------- */ - -#ifndef GL_ARB_base_instance -#define GL_ARB_base_instance 1 - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLuint baseinstance); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); - -#define glDrawArraysInstancedBaseInstance GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstance) -#define glDrawElementsInstancedBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstance) -#define glDrawElementsInstancedBaseVertexBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexBaseInstance) - -#define GLEW_ARB_base_instance GLEW_GET_VAR(__GLEW_ARB_base_instance) - -#endif /* GL_ARB_base_instance */ - -/* ----------------------- GL_ARB_blend_func_extended ---------------------- */ - -#ifndef GL_ARB_blend_func_extended -#define GL_ARB_blend_func_extended 1 - -#define GL_SRC1_COLOR 0x88F9 -#define GL_ONE_MINUS_SRC1_COLOR 0x88FA -#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC - -typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const char * name); -typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const char * name); - -#define glBindFragDataLocationIndexed GLEW_GET_FUN(__glewBindFragDataLocationIndexed) -#define glGetFragDataIndex GLEW_GET_FUN(__glewGetFragDataIndex) - -#define GLEW_ARB_blend_func_extended GLEW_GET_VAR(__GLEW_ARB_blend_func_extended) - -#endif /* GL_ARB_blend_func_extended */ - -/* ---------------------------- GL_ARB_cl_event ---------------------------- */ - -#ifndef GL_ARB_cl_event -#define GL_ARB_cl_event 1 - -#define GL_SYNC_CL_EVENT_ARB 0x8240 -#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 - -typedef struct _cl_context *cl_context; -typedef struct _cl_event *cl_event; - -typedef GLsync (GLAPIENTRY * PFNGLCREATESYNCFROMCLEVENTARBPROC) (cl_context context, cl_event event, GLbitfield flags); - -#define glCreateSyncFromCLeventARB GLEW_GET_FUN(__glewCreateSyncFromCLeventARB) - -#define GLEW_ARB_cl_event GLEW_GET_VAR(__GLEW_ARB_cl_event) - -#endif /* GL_ARB_cl_event */ - -/* ----------------------- GL_ARB_color_buffer_float ----------------------- */ - -#ifndef GL_ARB_color_buffer_float -#define GL_ARB_color_buffer_float 1 - -#define GL_RGBA_FLOAT_MODE_ARB 0x8820 -#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A -#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B -#define GL_CLAMP_READ_COLOR_ARB 0x891C -#define GL_FIXED_ONLY_ARB 0x891D - -typedef void (GLAPIENTRY * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); - -#define glClampColorARB GLEW_GET_FUN(__glewClampColorARB) - -#define GLEW_ARB_color_buffer_float GLEW_GET_VAR(__GLEW_ARB_color_buffer_float) - -#endif /* GL_ARB_color_buffer_float */ - -/* -------------------------- GL_ARB_compatibility ------------------------- */ - -#ifndef GL_ARB_compatibility -#define GL_ARB_compatibility 1 - -#define GLEW_ARB_compatibility GLEW_GET_VAR(__GLEW_ARB_compatibility) - -#endif /* GL_ARB_compatibility */ - -/* ---------------- GL_ARB_compressed_texture_pixel_storage ---------------- */ - -#ifndef GL_ARB_compressed_texture_pixel_storage -#define GL_ARB_compressed_texture_pixel_storage 1 - -#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 -#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 -#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 -#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A -#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B -#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C -#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D -#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E - -#define GLEW_ARB_compressed_texture_pixel_storage GLEW_GET_VAR(__GLEW_ARB_compressed_texture_pixel_storage) - -#endif /* GL_ARB_compressed_texture_pixel_storage */ - -/* ----------------------- GL_ARB_conservative_depth ----------------------- */ - -#ifndef GL_ARB_conservative_depth -#define GL_ARB_conservative_depth 1 - -#define GLEW_ARB_conservative_depth GLEW_GET_VAR(__GLEW_ARB_conservative_depth) - -#endif /* GL_ARB_conservative_depth */ - -/* --------------------------- GL_ARB_copy_buffer -------------------------- */ - -#ifndef GL_ARB_copy_buffer -#define GL_ARB_copy_buffer 1 - -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 - -typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); - -#define glCopyBufferSubData GLEW_GET_FUN(__glewCopyBufferSubData) - -#define GLEW_ARB_copy_buffer GLEW_GET_VAR(__GLEW_ARB_copy_buffer) - -#endif /* GL_ARB_copy_buffer */ - -/* -------------------------- GL_ARB_debug_output -------------------------- */ - -#ifndef GL_ARB_debug_output -#define GL_ARB_debug_output 1 - -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 -#define GL_DEBUG_SOURCE_API_ARB 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A -#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B -#define GL_DEBUG_TYPE_ERROR_ARB 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 -#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 -#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 - -typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam); - -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, void* userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char* buf); -typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, char* messageLog); - -#define glDebugMessageCallbackARB GLEW_GET_FUN(__glewDebugMessageCallbackARB) -#define glDebugMessageControlARB GLEW_GET_FUN(__glewDebugMessageControlARB) -#define glDebugMessageInsertARB GLEW_GET_FUN(__glewDebugMessageInsertARB) -#define glGetDebugMessageLogARB GLEW_GET_FUN(__glewGetDebugMessageLogARB) - -#define GLEW_ARB_debug_output GLEW_GET_VAR(__GLEW_ARB_debug_output) - -#endif /* GL_ARB_debug_output */ - -/* ----------------------- GL_ARB_depth_buffer_float ----------------------- */ - -#ifndef GL_ARB_depth_buffer_float -#define GL_ARB_depth_buffer_float 1 - -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD - -#define GLEW_ARB_depth_buffer_float GLEW_GET_VAR(__GLEW_ARB_depth_buffer_float) - -#endif /* GL_ARB_depth_buffer_float */ - -/* --------------------------- GL_ARB_depth_clamp -------------------------- */ - -#ifndef GL_ARB_depth_clamp -#define GL_ARB_depth_clamp 1 - -#define GL_DEPTH_CLAMP 0x864F - -#define GLEW_ARB_depth_clamp GLEW_GET_VAR(__GLEW_ARB_depth_clamp) - -#endif /* GL_ARB_depth_clamp */ - -/* -------------------------- GL_ARB_depth_texture ------------------------- */ - -#ifndef GL_ARB_depth_texture -#define GL_ARB_depth_texture 1 - -#define GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B - -#define GLEW_ARB_depth_texture GLEW_GET_VAR(__GLEW_ARB_depth_texture) - -#endif /* GL_ARB_depth_texture */ - -/* -------------------------- GL_ARB_draw_buffers -------------------------- */ - -#ifndef GL_ARB_draw_buffers -#define GL_ARB_draw_buffers 1 - -#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define GL_DRAW_BUFFER0_ARB 0x8825 -#define GL_DRAW_BUFFER1_ARB 0x8826 -#define GL_DRAW_BUFFER2_ARB 0x8827 -#define GL_DRAW_BUFFER3_ARB 0x8828 -#define GL_DRAW_BUFFER4_ARB 0x8829 -#define GL_DRAW_BUFFER5_ARB 0x882A -#define GL_DRAW_BUFFER6_ARB 0x882B -#define GL_DRAW_BUFFER7_ARB 0x882C -#define GL_DRAW_BUFFER8_ARB 0x882D -#define GL_DRAW_BUFFER9_ARB 0x882E -#define GL_DRAW_BUFFER10_ARB 0x882F -#define GL_DRAW_BUFFER11_ARB 0x8830 -#define GL_DRAW_BUFFER12_ARB 0x8831 -#define GL_DRAW_BUFFER13_ARB 0x8832 -#define GL_DRAW_BUFFER14_ARB 0x8833 -#define GL_DRAW_BUFFER15_ARB 0x8834 - -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bufs); - -#define glDrawBuffersARB GLEW_GET_FUN(__glewDrawBuffersARB) - -#define GLEW_ARB_draw_buffers GLEW_GET_VAR(__GLEW_ARB_draw_buffers) - -#endif /* GL_ARB_draw_buffers */ - -/* ----------------------- GL_ARB_draw_buffers_blend ----------------------- */ - -#ifndef GL_ARB_draw_buffers_blend -#define GL_ARB_draw_buffers_blend 1 - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); - -#define glBlendEquationSeparateiARB GLEW_GET_FUN(__glewBlendEquationSeparateiARB) -#define glBlendEquationiARB GLEW_GET_FUN(__glewBlendEquationiARB) -#define glBlendFuncSeparateiARB GLEW_GET_FUN(__glewBlendFuncSeparateiARB) -#define glBlendFunciARB GLEW_GET_FUN(__glewBlendFunciARB) - -#define GLEW_ARB_draw_buffers_blend GLEW_GET_VAR(__GLEW_ARB_draw_buffers_blend) - -#endif /* GL_ARB_draw_buffers_blend */ - -/* -------------------- GL_ARB_draw_elements_base_vertex ------------------- */ - -#ifndef GL_ARB_draw_elements_base_vertex -#define GL_ARB_draw_elements_base_vertex 1 - -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, void* indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, void* indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei* count, GLenum type, GLvoid**indices, GLsizei primcount, GLint *basevertex); - -#define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex) -#define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex) -#define glDrawRangeElementsBaseVertex GLEW_GET_FUN(__glewDrawRangeElementsBaseVertex) -#define glMultiDrawElementsBaseVertex GLEW_GET_FUN(__glewMultiDrawElementsBaseVertex) - -#define GLEW_ARB_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_ARB_draw_elements_base_vertex) - -#endif /* GL_ARB_draw_elements_base_vertex */ - -/* -------------------------- GL_ARB_draw_indirect ------------------------- */ - -#ifndef GL_ARB_draw_indirect -#define GL_ARB_draw_indirect 1 - -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void* indirect); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void* indirect); - -#define glDrawArraysIndirect GLEW_GET_FUN(__glewDrawArraysIndirect) -#define glDrawElementsIndirect GLEW_GET_FUN(__glewDrawElementsIndirect) - -#define GLEW_ARB_draw_indirect GLEW_GET_VAR(__GLEW_ARB_draw_indirect) - -#endif /* GL_ARB_draw_indirect */ - -/* ------------------------- GL_ARB_draw_instanced ------------------------- */ - -#ifndef GL_ARB_draw_instanced -#define GL_ARB_draw_instanced 1 - -#define GLEW_ARB_draw_instanced GLEW_GET_VAR(__GLEW_ARB_draw_instanced) - -#endif /* GL_ARB_draw_instanced */ - -/* -------------------- GL_ARB_explicit_attrib_location -------------------- */ - -#ifndef GL_ARB_explicit_attrib_location -#define GL_ARB_explicit_attrib_location 1 - -#define GLEW_ARB_explicit_attrib_location GLEW_GET_VAR(__GLEW_ARB_explicit_attrib_location) - -#endif /* GL_ARB_explicit_attrib_location */ - -/* ------------------- GL_ARB_fragment_coord_conventions ------------------- */ - -#ifndef GL_ARB_fragment_coord_conventions -#define GL_ARB_fragment_coord_conventions 1 - -#define GLEW_ARB_fragment_coord_conventions GLEW_GET_VAR(__GLEW_ARB_fragment_coord_conventions) - -#endif /* GL_ARB_fragment_coord_conventions */ - -/* ------------------------ GL_ARB_fragment_program ------------------------ */ - -#ifndef GL_ARB_fragment_program -#define GL_ARB_fragment_program 1 - -#define GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 - -#define GLEW_ARB_fragment_program GLEW_GET_VAR(__GLEW_ARB_fragment_program) - -#endif /* GL_ARB_fragment_program */ - -/* --------------------- GL_ARB_fragment_program_shadow -------------------- */ - -#ifndef GL_ARB_fragment_program_shadow -#define GL_ARB_fragment_program_shadow 1 - -#define GLEW_ARB_fragment_program_shadow GLEW_GET_VAR(__GLEW_ARB_fragment_program_shadow) - -#endif /* GL_ARB_fragment_program_shadow */ - -/* ------------------------- GL_ARB_fragment_shader ------------------------ */ - -#ifndef GL_ARB_fragment_shader -#define GL_ARB_fragment_shader 1 - -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B - -#define GLEW_ARB_fragment_shader GLEW_GET_VAR(__GLEW_ARB_fragment_shader) - -#endif /* GL_ARB_fragment_shader */ - -/* ----------------------- GL_ARB_framebuffer_object ----------------------- */ - -#ifndef GL_ARB_framebuffer_object -#define GL_ARB_framebuffer_object 1 - -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_INDEX 0x8222 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_SRGB 0x8C40 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_STENCIL_INDEX1 0x8D46 -#define GL_STENCIL_INDEX4 0x8D47 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_STENCIL_INDEX16 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 - -typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer); -typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); - -#define glBindFramebuffer GLEW_GET_FUN(__glewBindFramebuffer) -#define glBindRenderbuffer GLEW_GET_FUN(__glewBindRenderbuffer) -#define glBlitFramebuffer GLEW_GET_FUN(__glewBlitFramebuffer) -#define glCheckFramebufferStatus GLEW_GET_FUN(__glewCheckFramebufferStatus) -#define glDeleteFramebuffers GLEW_GET_FUN(__glewDeleteFramebuffers) -#define glDeleteRenderbuffers GLEW_GET_FUN(__glewDeleteRenderbuffers) -#define glFramebufferRenderbuffer GLEW_GET_FUN(__glewFramebufferRenderbuffer) -#define glFramebufferTexture1D GLEW_GET_FUN(__glewFramebufferTexture1D) -#define glFramebufferTexture2D GLEW_GET_FUN(__glewFramebufferTexture2D) -#define glFramebufferTexture3D GLEW_GET_FUN(__glewFramebufferTexture3D) -#define glFramebufferTextureLayer GLEW_GET_FUN(__glewFramebufferTextureLayer) -#define glGenFramebuffers GLEW_GET_FUN(__glewGenFramebuffers) -#define glGenRenderbuffers GLEW_GET_FUN(__glewGenRenderbuffers) -#define glGenerateMipmap GLEW_GET_FUN(__glewGenerateMipmap) -#define glGetFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetFramebufferAttachmentParameteriv) -#define glGetRenderbufferParameteriv GLEW_GET_FUN(__glewGetRenderbufferParameteriv) -#define glIsFramebuffer GLEW_GET_FUN(__glewIsFramebuffer) -#define glIsRenderbuffer GLEW_GET_FUN(__glewIsRenderbuffer) -#define glRenderbufferStorage GLEW_GET_FUN(__glewRenderbufferStorage) -#define glRenderbufferStorageMultisample GLEW_GET_FUN(__glewRenderbufferStorageMultisample) - -#define GLEW_ARB_framebuffer_object GLEW_GET_VAR(__GLEW_ARB_framebuffer_object) - -#endif /* GL_ARB_framebuffer_object */ - -/* ------------------------ GL_ARB_framebuffer_sRGB ------------------------ */ - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_ARB_framebuffer_sRGB 1 - -#define GL_FRAMEBUFFER_SRGB 0x8DB9 - -#define GLEW_ARB_framebuffer_sRGB GLEW_GET_VAR(__GLEW_ARB_framebuffer_sRGB) - -#endif /* GL_ARB_framebuffer_sRGB */ - -/* ------------------------ GL_ARB_geometry_shader4 ------------------------ */ - -#ifndef GL_ARB_geometry_shader4 -#define GL_ARB_geometry_shader4 1 - -#define GL_LINES_ADJACENCY_ARB 0xA -#define GL_LINE_STRIP_ADJACENCY_ARB 0xB -#define GL_TRIANGLES_ADJACENCY_ARB 0xC -#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0xD -#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 -#define GL_GEOMETRY_SHADER_ARB 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); - -#define glFramebufferTextureARB GLEW_GET_FUN(__glewFramebufferTextureARB) -#define glFramebufferTextureFaceARB GLEW_GET_FUN(__glewFramebufferTextureFaceARB) -#define glFramebufferTextureLayerARB GLEW_GET_FUN(__glewFramebufferTextureLayerARB) -#define glProgramParameteriARB GLEW_GET_FUN(__glewProgramParameteriARB) - -#define GLEW_ARB_geometry_shader4 GLEW_GET_VAR(__GLEW_ARB_geometry_shader4) - -#endif /* GL_ARB_geometry_shader4 */ - -/* ----------------------- GL_ARB_get_program_binary ----------------------- */ - -#ifndef GL_ARB_get_program_binary -#define GL_ARB_get_program_binary 1 - -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF - -typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, GLvoid*binary); -typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void* binary, GLsizei length); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); - -#define glGetProgramBinary GLEW_GET_FUN(__glewGetProgramBinary) -#define glProgramBinary GLEW_GET_FUN(__glewProgramBinary) -#define glProgramParameteri GLEW_GET_FUN(__glewProgramParameteri) - -#define GLEW_ARB_get_program_binary GLEW_GET_VAR(__GLEW_ARB_get_program_binary) - -#endif /* GL_ARB_get_program_binary */ - -/* --------------------------- GL_ARB_gpu_shader5 -------------------------- */ - -#ifndef GL_ARB_gpu_shader5 -#define GL_ARB_gpu_shader5 1 - -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -#define GL_MAX_VERTEX_STREAMS 0x8E71 - -#define GLEW_ARB_gpu_shader5 GLEW_GET_VAR(__GLEW_ARB_gpu_shader5) - -#endif /* GL_ARB_gpu_shader5 */ - -/* ------------------------- GL_ARB_gpu_shader_fp64 ------------------------ */ - -#ifndef GL_ARB_gpu_shader_fp64 -#define GL_ARB_gpu_shader_fp64 1 - -#define GL_DOUBLE_MAT2 0x8F46 -#define GL_DOUBLE_MAT3 0x8F47 -#define GL_DOUBLE_MAT4 0x8F48 -#define GL_DOUBLE_MAT2x3 0x8F49 -#define GL_DOUBLE_MAT2x4 0x8F4A -#define GL_DOUBLE_MAT3x2 0x8F4B -#define GL_DOUBLE_MAT3x4 0x8F4C -#define GL_DOUBLE_MAT4x2 0x8F4D -#define GL_DOUBLE_MAT4x3 0x8F4E -#define GL_DOUBLE_VEC2 0x8FFC -#define GL_DOUBLE_VEC3 0x8FFD -#define GL_DOUBLE_VEC4 0x8FFE - -typedef void (GLAPIENTRY * PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); -typedef void (GLAPIENTRY * PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); - -#define glGetUniformdv GLEW_GET_FUN(__glewGetUniformdv) -#define glProgramUniform1dEXT GLEW_GET_FUN(__glewProgramUniform1dEXT) -#define glProgramUniform1dvEXT GLEW_GET_FUN(__glewProgramUniform1dvEXT) -#define glProgramUniform2dEXT GLEW_GET_FUN(__glewProgramUniform2dEXT) -#define glProgramUniform2dvEXT GLEW_GET_FUN(__glewProgramUniform2dvEXT) -#define glProgramUniform3dEXT GLEW_GET_FUN(__glewProgramUniform3dEXT) -#define glProgramUniform3dvEXT GLEW_GET_FUN(__glewProgramUniform3dvEXT) -#define glProgramUniform4dEXT GLEW_GET_FUN(__glewProgramUniform4dEXT) -#define glProgramUniform4dvEXT GLEW_GET_FUN(__glewProgramUniform4dvEXT) -#define glProgramUniformMatrix2dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2dvEXT) -#define glProgramUniformMatrix2x3dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3dvEXT) -#define glProgramUniformMatrix2x4dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4dvEXT) -#define glProgramUniformMatrix3dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3dvEXT) -#define glProgramUniformMatrix3x2dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2dvEXT) -#define glProgramUniformMatrix3x4dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4dvEXT) -#define glProgramUniformMatrix4dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4dvEXT) -#define glProgramUniformMatrix4x2dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2dvEXT) -#define glProgramUniformMatrix4x3dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3dvEXT) -#define glUniform1d GLEW_GET_FUN(__glewUniform1d) -#define glUniform1dv GLEW_GET_FUN(__glewUniform1dv) -#define glUniform2d GLEW_GET_FUN(__glewUniform2d) -#define glUniform2dv GLEW_GET_FUN(__glewUniform2dv) -#define glUniform3d GLEW_GET_FUN(__glewUniform3d) -#define glUniform3dv GLEW_GET_FUN(__glewUniform3dv) -#define glUniform4d GLEW_GET_FUN(__glewUniform4d) -#define glUniform4dv GLEW_GET_FUN(__glewUniform4dv) -#define glUniformMatrix2dv GLEW_GET_FUN(__glewUniformMatrix2dv) -#define glUniformMatrix2x3dv GLEW_GET_FUN(__glewUniformMatrix2x3dv) -#define glUniformMatrix2x4dv GLEW_GET_FUN(__glewUniformMatrix2x4dv) -#define glUniformMatrix3dv GLEW_GET_FUN(__glewUniformMatrix3dv) -#define glUniformMatrix3x2dv GLEW_GET_FUN(__glewUniformMatrix3x2dv) -#define glUniformMatrix3x4dv GLEW_GET_FUN(__glewUniformMatrix3x4dv) -#define glUniformMatrix4dv GLEW_GET_FUN(__glewUniformMatrix4dv) -#define glUniformMatrix4x2dv GLEW_GET_FUN(__glewUniformMatrix4x2dv) -#define glUniformMatrix4x3dv GLEW_GET_FUN(__glewUniformMatrix4x3dv) - -#define GLEW_ARB_gpu_shader_fp64 GLEW_GET_VAR(__GLEW_ARB_gpu_shader_fp64) - -#endif /* GL_ARB_gpu_shader_fp64 */ - -/* ------------------------ GL_ARB_half_float_pixel ------------------------ */ - -#ifndef GL_ARB_half_float_pixel -#define GL_ARB_half_float_pixel 1 - -#define GL_HALF_FLOAT_ARB 0x140B - -#define GLEW_ARB_half_float_pixel GLEW_GET_VAR(__GLEW_ARB_half_float_pixel) - -#endif /* GL_ARB_half_float_pixel */ - -/* ------------------------ GL_ARB_half_float_vertex ----------------------- */ - -#ifndef GL_ARB_half_float_vertex -#define GL_ARB_half_float_vertex 1 - -#define GL_HALF_FLOAT 0x140B - -#define GLEW_ARB_half_float_vertex GLEW_GET_VAR(__GLEW_ARB_half_float_vertex) - -#endif /* GL_ARB_half_float_vertex */ - -/* ----------------------------- GL_ARB_imaging ---------------------------- */ - -#ifndef GL_ARB_imaging -#define GL_ARB_imaging 1 - -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_FUNC_ADD 0x8006 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_BLEND_EQUATION 0x8009 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_IGNORE_BORDER 0x8150 -#define GL_CONSTANT_BORDER 0x8151 -#define GL_WRAP_BORDER 0x8152 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 - -typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (GLAPIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLRESETMINMAXPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); - -#define glColorSubTable GLEW_GET_FUN(__glewColorSubTable) -#define glColorTable GLEW_GET_FUN(__glewColorTable) -#define glColorTableParameterfv GLEW_GET_FUN(__glewColorTableParameterfv) -#define glColorTableParameteriv GLEW_GET_FUN(__glewColorTableParameteriv) -#define glConvolutionFilter1D GLEW_GET_FUN(__glewConvolutionFilter1D) -#define glConvolutionFilter2D GLEW_GET_FUN(__glewConvolutionFilter2D) -#define glConvolutionParameterf GLEW_GET_FUN(__glewConvolutionParameterf) -#define glConvolutionParameterfv GLEW_GET_FUN(__glewConvolutionParameterfv) -#define glConvolutionParameteri GLEW_GET_FUN(__glewConvolutionParameteri) -#define glConvolutionParameteriv GLEW_GET_FUN(__glewConvolutionParameteriv) -#define glCopyColorSubTable GLEW_GET_FUN(__glewCopyColorSubTable) -#define glCopyColorTable GLEW_GET_FUN(__glewCopyColorTable) -#define glCopyConvolutionFilter1D GLEW_GET_FUN(__glewCopyConvolutionFilter1D) -#define glCopyConvolutionFilter2D GLEW_GET_FUN(__glewCopyConvolutionFilter2D) -#define glGetColorTable GLEW_GET_FUN(__glewGetColorTable) -#define glGetColorTableParameterfv GLEW_GET_FUN(__glewGetColorTableParameterfv) -#define glGetColorTableParameteriv GLEW_GET_FUN(__glewGetColorTableParameteriv) -#define glGetConvolutionFilter GLEW_GET_FUN(__glewGetConvolutionFilter) -#define glGetConvolutionParameterfv GLEW_GET_FUN(__glewGetConvolutionParameterfv) -#define glGetConvolutionParameteriv GLEW_GET_FUN(__glewGetConvolutionParameteriv) -#define glGetHistogram GLEW_GET_FUN(__glewGetHistogram) -#define glGetHistogramParameterfv GLEW_GET_FUN(__glewGetHistogramParameterfv) -#define glGetHistogramParameteriv GLEW_GET_FUN(__glewGetHistogramParameteriv) -#define glGetMinmax GLEW_GET_FUN(__glewGetMinmax) -#define glGetMinmaxParameterfv GLEW_GET_FUN(__glewGetMinmaxParameterfv) -#define glGetMinmaxParameteriv GLEW_GET_FUN(__glewGetMinmaxParameteriv) -#define glGetSeparableFilter GLEW_GET_FUN(__glewGetSeparableFilter) -#define glHistogram GLEW_GET_FUN(__glewHistogram) -#define glMinmax GLEW_GET_FUN(__glewMinmax) -#define glResetHistogram GLEW_GET_FUN(__glewResetHistogram) -#define glResetMinmax GLEW_GET_FUN(__glewResetMinmax) -#define glSeparableFilter2D GLEW_GET_FUN(__glewSeparableFilter2D) - -#define GLEW_ARB_imaging GLEW_GET_VAR(__GLEW_ARB_imaging) - -#endif /* GL_ARB_imaging */ - -/* ------------------------ GL_ARB_instanced_arrays ------------------------ */ - -#ifndef GL_ARB_instanced_arrays -#define GL_ARB_instanced_arrays 1 - -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); - -#define glDrawArraysInstancedARB GLEW_GET_FUN(__glewDrawArraysInstancedARB) -#define glDrawElementsInstancedARB GLEW_GET_FUN(__glewDrawElementsInstancedARB) -#define glVertexAttribDivisorARB GLEW_GET_FUN(__glewVertexAttribDivisorARB) - -#define GLEW_ARB_instanced_arrays GLEW_GET_VAR(__GLEW_ARB_instanced_arrays) - -#endif /* GL_ARB_instanced_arrays */ - -/* ---------------------- GL_ARB_internalformat_query ---------------------- */ - -#ifndef GL_ARB_internalformat_query -#define GL_ARB_internalformat_query 1 - -#define GL_NUM_SAMPLE_COUNTS 0x9380 - -typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params); - -#define glGetInternalformativ GLEW_GET_FUN(__glewGetInternalformativ) - -#define GLEW_ARB_internalformat_query GLEW_GET_VAR(__GLEW_ARB_internalformat_query) - -#endif /* GL_ARB_internalformat_query */ - -/* ---------------------- GL_ARB_map_buffer_alignment ---------------------- */ - -#ifndef GL_ARB_map_buffer_alignment -#define GL_ARB_map_buffer_alignment 1 - -#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC - -#define GLEW_ARB_map_buffer_alignment GLEW_GET_VAR(__GLEW_ARB_map_buffer_alignment) - -#endif /* GL_ARB_map_buffer_alignment */ - -/* ------------------------ GL_ARB_map_buffer_range ------------------------ */ - -#ifndef GL_ARB_map_buffer_range -#define GL_ARB_map_buffer_range 1 - -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 - -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef GLvoid * (GLAPIENTRY * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); - -#define glFlushMappedBufferRange GLEW_GET_FUN(__glewFlushMappedBufferRange) -#define glMapBufferRange GLEW_GET_FUN(__glewMapBufferRange) - -#define GLEW_ARB_map_buffer_range GLEW_GET_VAR(__GLEW_ARB_map_buffer_range) - -#endif /* GL_ARB_map_buffer_range */ - -/* ------------------------- GL_ARB_matrix_palette ------------------------- */ - -#ifndef GL_ARB_matrix_palette -#define GL_ARB_matrix_palette 1 - -#define GL_MATRIX_PALETTE_ARB 0x8840 -#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 -#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 -#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 -#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 -#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 -#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 -#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 -#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 -#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 - -typedef void (GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, GLubyte *indices); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, GLuint *indices); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, GLushort *indices); - -#define glCurrentPaletteMatrixARB GLEW_GET_FUN(__glewCurrentPaletteMatrixARB) -#define glMatrixIndexPointerARB GLEW_GET_FUN(__glewMatrixIndexPointerARB) -#define glMatrixIndexubvARB GLEW_GET_FUN(__glewMatrixIndexubvARB) -#define glMatrixIndexuivARB GLEW_GET_FUN(__glewMatrixIndexuivARB) -#define glMatrixIndexusvARB GLEW_GET_FUN(__glewMatrixIndexusvARB) - -#define GLEW_ARB_matrix_palette GLEW_GET_VAR(__GLEW_ARB_matrix_palette) - -#endif /* GL_ARB_matrix_palette */ - -/* --------------------------- GL_ARB_multisample -------------------------- */ - -#ifndef GL_ARB_multisample -#define GL_ARB_multisample 1 - -#define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define GL_MULTISAMPLE_BIT_ARB 0x20000000 - -typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); - -#define glSampleCoverageARB GLEW_GET_FUN(__glewSampleCoverageARB) - -#define GLEW_ARB_multisample GLEW_GET_VAR(__GLEW_ARB_multisample) - -#endif /* GL_ARB_multisample */ - -/* -------------------------- GL_ARB_multitexture -------------------------- */ - -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 - -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 - -typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); - -#define glActiveTextureARB GLEW_GET_FUN(__glewActiveTextureARB) -#define glClientActiveTextureARB GLEW_GET_FUN(__glewClientActiveTextureARB) -#define glMultiTexCoord1dARB GLEW_GET_FUN(__glewMultiTexCoord1dARB) -#define glMultiTexCoord1dvARB GLEW_GET_FUN(__glewMultiTexCoord1dvARB) -#define glMultiTexCoord1fARB GLEW_GET_FUN(__glewMultiTexCoord1fARB) -#define glMultiTexCoord1fvARB GLEW_GET_FUN(__glewMultiTexCoord1fvARB) -#define glMultiTexCoord1iARB GLEW_GET_FUN(__glewMultiTexCoord1iARB) -#define glMultiTexCoord1ivARB GLEW_GET_FUN(__glewMultiTexCoord1ivARB) -#define glMultiTexCoord1sARB GLEW_GET_FUN(__glewMultiTexCoord1sARB) -#define glMultiTexCoord1svARB GLEW_GET_FUN(__glewMultiTexCoord1svARB) -#define glMultiTexCoord2dARB GLEW_GET_FUN(__glewMultiTexCoord2dARB) -#define glMultiTexCoord2dvARB GLEW_GET_FUN(__glewMultiTexCoord2dvARB) -#define glMultiTexCoord2fARB GLEW_GET_FUN(__glewMultiTexCoord2fARB) -#define glMultiTexCoord2fvARB GLEW_GET_FUN(__glewMultiTexCoord2fvARB) -#define glMultiTexCoord2iARB GLEW_GET_FUN(__glewMultiTexCoord2iARB) -#define glMultiTexCoord2ivARB GLEW_GET_FUN(__glewMultiTexCoord2ivARB) -#define glMultiTexCoord2sARB GLEW_GET_FUN(__glewMultiTexCoord2sARB) -#define glMultiTexCoord2svARB GLEW_GET_FUN(__glewMultiTexCoord2svARB) -#define glMultiTexCoord3dARB GLEW_GET_FUN(__glewMultiTexCoord3dARB) -#define glMultiTexCoord3dvARB GLEW_GET_FUN(__glewMultiTexCoord3dvARB) -#define glMultiTexCoord3fARB GLEW_GET_FUN(__glewMultiTexCoord3fARB) -#define glMultiTexCoord3fvARB GLEW_GET_FUN(__glewMultiTexCoord3fvARB) -#define glMultiTexCoord3iARB GLEW_GET_FUN(__glewMultiTexCoord3iARB) -#define glMultiTexCoord3ivARB GLEW_GET_FUN(__glewMultiTexCoord3ivARB) -#define glMultiTexCoord3sARB GLEW_GET_FUN(__glewMultiTexCoord3sARB) -#define glMultiTexCoord3svARB GLEW_GET_FUN(__glewMultiTexCoord3svARB) -#define glMultiTexCoord4dARB GLEW_GET_FUN(__glewMultiTexCoord4dARB) -#define glMultiTexCoord4dvARB GLEW_GET_FUN(__glewMultiTexCoord4dvARB) -#define glMultiTexCoord4fARB GLEW_GET_FUN(__glewMultiTexCoord4fARB) -#define glMultiTexCoord4fvARB GLEW_GET_FUN(__glewMultiTexCoord4fvARB) -#define glMultiTexCoord4iARB GLEW_GET_FUN(__glewMultiTexCoord4iARB) -#define glMultiTexCoord4ivARB GLEW_GET_FUN(__glewMultiTexCoord4ivARB) -#define glMultiTexCoord4sARB GLEW_GET_FUN(__glewMultiTexCoord4sARB) -#define glMultiTexCoord4svARB GLEW_GET_FUN(__glewMultiTexCoord4svARB) - -#define GLEW_ARB_multitexture GLEW_GET_VAR(__GLEW_ARB_multitexture) - -#endif /* GL_ARB_multitexture */ - -/* ------------------------- GL_ARB_occlusion_query ------------------------ */ - -#ifndef GL_ARB_occlusion_query -#define GL_ARB_occlusion_query 1 - -#define GL_QUERY_COUNTER_BITS_ARB 0x8864 -#define GL_CURRENT_QUERY_ARB 0x8865 -#define GL_QUERY_RESULT_ARB 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define GL_SAMPLES_PASSED_ARB 0x8914 - -typedef void (GLAPIENTRY * PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDQUERYARBPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISQUERYARBPROC) (GLuint id); - -#define glBeginQueryARB GLEW_GET_FUN(__glewBeginQueryARB) -#define glDeleteQueriesARB GLEW_GET_FUN(__glewDeleteQueriesARB) -#define glEndQueryARB GLEW_GET_FUN(__glewEndQueryARB) -#define glGenQueriesARB GLEW_GET_FUN(__glewGenQueriesARB) -#define glGetQueryObjectivARB GLEW_GET_FUN(__glewGetQueryObjectivARB) -#define glGetQueryObjectuivARB GLEW_GET_FUN(__glewGetQueryObjectuivARB) -#define glGetQueryivARB GLEW_GET_FUN(__glewGetQueryivARB) -#define glIsQueryARB GLEW_GET_FUN(__glewIsQueryARB) - -#define GLEW_ARB_occlusion_query GLEW_GET_VAR(__GLEW_ARB_occlusion_query) - -#endif /* GL_ARB_occlusion_query */ - -/* ------------------------ GL_ARB_occlusion_query2 ------------------------ */ - -#ifndef GL_ARB_occlusion_query2 -#define GL_ARB_occlusion_query2 1 - -#define GL_ANY_SAMPLES_PASSED 0x8C2F - -#define GLEW_ARB_occlusion_query2 GLEW_GET_VAR(__GLEW_ARB_occlusion_query2) - -#endif /* GL_ARB_occlusion_query2 */ - -/* ----------------------- GL_ARB_pixel_buffer_object ---------------------- */ - -#ifndef GL_ARB_pixel_buffer_object -#define GL_ARB_pixel_buffer_object 1 - -#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF - -#define GLEW_ARB_pixel_buffer_object GLEW_GET_VAR(__GLEW_ARB_pixel_buffer_object) - -#endif /* GL_ARB_pixel_buffer_object */ - -/* ------------------------ GL_ARB_point_parameters ------------------------ */ - -#ifndef GL_ARB_point_parameters -#define GL_ARB_point_parameters 1 - -#define GL_POINT_SIZE_MIN_ARB 0x8126 -#define GL_POINT_SIZE_MAX_ARB 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 - -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat* params); - -#define glPointParameterfARB GLEW_GET_FUN(__glewPointParameterfARB) -#define glPointParameterfvARB GLEW_GET_FUN(__glewPointParameterfvARB) - -#define GLEW_ARB_point_parameters GLEW_GET_VAR(__GLEW_ARB_point_parameters) - -#endif /* GL_ARB_point_parameters */ - -/* -------------------------- GL_ARB_point_sprite -------------------------- */ - -#ifndef GL_ARB_point_sprite -#define GL_ARB_point_sprite 1 - -#define GL_POINT_SPRITE_ARB 0x8861 -#define GL_COORD_REPLACE_ARB 0x8862 - -#define GLEW_ARB_point_sprite GLEW_GET_VAR(__GLEW_ARB_point_sprite) - -#endif /* GL_ARB_point_sprite */ - -/* ------------------------ GL_ARB_provoking_vertex ------------------------ */ - -#ifndef GL_ARB_provoking_vertex -#define GL_ARB_provoking_vertex 1 - -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F - -typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXPROC) (GLenum mode); - -#define glProvokingVertex GLEW_GET_FUN(__glewProvokingVertex) - -#define GLEW_ARB_provoking_vertex GLEW_GET_VAR(__GLEW_ARB_provoking_vertex) - -#endif /* GL_ARB_provoking_vertex */ - -/* --------------------------- GL_ARB_robustness --------------------------- */ - -#ifndef GL_ARB_robustness -#define GL_ARB_robustness 1 - -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 - -typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table); -typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void* img); -typedef void (GLAPIENTRY * PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image); -typedef void (GLAPIENTRY * PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); -typedef void (GLAPIENTRY * PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v); -typedef void (GLAPIENTRY * PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v); -typedef void (GLAPIENTRY * PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint* v); -typedef void (GLAPIENTRY * PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); -typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat* values); -typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint* values); -typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort* values); -typedef void (GLAPIENTRY * PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte* pattern); -typedef void (GLAPIENTRY * PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, GLvoid*column, GLvoid*span); -typedef void (GLAPIENTRY * PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params); -typedef void (GLAPIENTRY * PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data); - -#define glGetGraphicsResetStatusARB GLEW_GET_FUN(__glewGetGraphicsResetStatusARB) -#define glGetnColorTableARB GLEW_GET_FUN(__glewGetnColorTableARB) -#define glGetnCompressedTexImageARB GLEW_GET_FUN(__glewGetnCompressedTexImageARB) -#define glGetnConvolutionFilterARB GLEW_GET_FUN(__glewGetnConvolutionFilterARB) -#define glGetnHistogramARB GLEW_GET_FUN(__glewGetnHistogramARB) -#define glGetnMapdvARB GLEW_GET_FUN(__glewGetnMapdvARB) -#define glGetnMapfvARB GLEW_GET_FUN(__glewGetnMapfvARB) -#define glGetnMapivARB GLEW_GET_FUN(__glewGetnMapivARB) -#define glGetnMinmaxARB GLEW_GET_FUN(__glewGetnMinmaxARB) -#define glGetnPixelMapfvARB GLEW_GET_FUN(__glewGetnPixelMapfvARB) -#define glGetnPixelMapuivARB GLEW_GET_FUN(__glewGetnPixelMapuivARB) -#define glGetnPixelMapusvARB GLEW_GET_FUN(__glewGetnPixelMapusvARB) -#define glGetnPolygonStippleARB GLEW_GET_FUN(__glewGetnPolygonStippleARB) -#define glGetnSeparableFilterARB GLEW_GET_FUN(__glewGetnSeparableFilterARB) -#define glGetnTexImageARB GLEW_GET_FUN(__glewGetnTexImageARB) -#define glGetnUniformdvARB GLEW_GET_FUN(__glewGetnUniformdvARB) -#define glGetnUniformfvARB GLEW_GET_FUN(__glewGetnUniformfvARB) -#define glGetnUniformivARB GLEW_GET_FUN(__glewGetnUniformivARB) -#define glGetnUniformuivARB GLEW_GET_FUN(__glewGetnUniformuivARB) -#define glReadnPixelsARB GLEW_GET_FUN(__glewReadnPixelsARB) - -#define GLEW_ARB_robustness GLEW_GET_VAR(__GLEW_ARB_robustness) - -#endif /* GL_ARB_robustness */ - -/* ------------------------- GL_ARB_sample_shading ------------------------- */ - -#ifndef GL_ARB_sample_shading -#define GL_ARB_sample_shading 1 - -#define GL_SAMPLE_SHADING_ARB 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 - -typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); - -#define glMinSampleShadingARB GLEW_GET_FUN(__glewMinSampleShadingARB) - -#define GLEW_ARB_sample_shading GLEW_GET_VAR(__GLEW_ARB_sample_shading) - -#endif /* GL_ARB_sample_shading */ - -/* ------------------------- GL_ARB_sampler_objects ------------------------ */ - -#ifndef GL_ARB_sampler_objects -#define GL_ARB_sampler_objects 1 - -#define GL_SAMPLER_BINDING 0x8919 - -typedef void (GLAPIENTRY * PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GLAPIENTRY * PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint * samplers); -typedef void (GLAPIENTRY * PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint* samplers); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint* params); - -#define glBindSampler GLEW_GET_FUN(__glewBindSampler) -#define glDeleteSamplers GLEW_GET_FUN(__glewDeleteSamplers) -#define glGenSamplers GLEW_GET_FUN(__glewGenSamplers) -#define glGetSamplerParameterIiv GLEW_GET_FUN(__glewGetSamplerParameterIiv) -#define glGetSamplerParameterIuiv GLEW_GET_FUN(__glewGetSamplerParameterIuiv) -#define glGetSamplerParameterfv GLEW_GET_FUN(__glewGetSamplerParameterfv) -#define glGetSamplerParameteriv GLEW_GET_FUN(__glewGetSamplerParameteriv) -#define glIsSampler GLEW_GET_FUN(__glewIsSampler) -#define glSamplerParameterIiv GLEW_GET_FUN(__glewSamplerParameterIiv) -#define glSamplerParameterIuiv GLEW_GET_FUN(__glewSamplerParameterIuiv) -#define glSamplerParameterf GLEW_GET_FUN(__glewSamplerParameterf) -#define glSamplerParameterfv GLEW_GET_FUN(__glewSamplerParameterfv) -#define glSamplerParameteri GLEW_GET_FUN(__glewSamplerParameteri) -#define glSamplerParameteriv GLEW_GET_FUN(__glewSamplerParameteriv) - -#define GLEW_ARB_sampler_objects GLEW_GET_VAR(__GLEW_ARB_sampler_objects) - -#endif /* GL_ARB_sampler_objects */ - -/* ------------------------ GL_ARB_seamless_cube_map ----------------------- */ - -#ifndef GL_ARB_seamless_cube_map -#define GL_ARB_seamless_cube_map 1 - -#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F - -#define GLEW_ARB_seamless_cube_map GLEW_GET_VAR(__GLEW_ARB_seamless_cube_map) - -#endif /* GL_ARB_seamless_cube_map */ - -/* --------------------- GL_ARB_separate_shader_objects -------------------- */ - -#ifndef GL_ARB_separate_shader_objects -#define GL_ARB_separate_shader_objects 1 - -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_ALL_SHADER_BITS 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef void (GLAPIENTRY * PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const char ** strings); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint* pipelines); -typedef void (GLAPIENTRY * PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei* length, char *infoLog); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint x, GLuint y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); - -#define glActiveShaderProgram GLEW_GET_FUN(__glewActiveShaderProgram) -#define glBindProgramPipeline GLEW_GET_FUN(__glewBindProgramPipeline) -#define glCreateShaderProgramv GLEW_GET_FUN(__glewCreateShaderProgramv) -#define glDeleteProgramPipelines GLEW_GET_FUN(__glewDeleteProgramPipelines) -#define glGenProgramPipelines GLEW_GET_FUN(__glewGenProgramPipelines) -#define glGetProgramPipelineInfoLog GLEW_GET_FUN(__glewGetProgramPipelineInfoLog) -#define glGetProgramPipelineiv GLEW_GET_FUN(__glewGetProgramPipelineiv) -#define glIsProgramPipeline GLEW_GET_FUN(__glewIsProgramPipeline) -#define glProgramUniform1d GLEW_GET_FUN(__glewProgramUniform1d) -#define glProgramUniform1dv GLEW_GET_FUN(__glewProgramUniform1dv) -#define glProgramUniform1f GLEW_GET_FUN(__glewProgramUniform1f) -#define glProgramUniform1fv GLEW_GET_FUN(__glewProgramUniform1fv) -#define glProgramUniform1i GLEW_GET_FUN(__glewProgramUniform1i) -#define glProgramUniform1iv GLEW_GET_FUN(__glewProgramUniform1iv) -#define glProgramUniform1ui GLEW_GET_FUN(__glewProgramUniform1ui) -#define glProgramUniform1uiv GLEW_GET_FUN(__glewProgramUniform1uiv) -#define glProgramUniform2d GLEW_GET_FUN(__glewProgramUniform2d) -#define glProgramUniform2dv GLEW_GET_FUN(__glewProgramUniform2dv) -#define glProgramUniform2f GLEW_GET_FUN(__glewProgramUniform2f) -#define glProgramUniform2fv GLEW_GET_FUN(__glewProgramUniform2fv) -#define glProgramUniform2i GLEW_GET_FUN(__glewProgramUniform2i) -#define glProgramUniform2iv GLEW_GET_FUN(__glewProgramUniform2iv) -#define glProgramUniform2ui GLEW_GET_FUN(__glewProgramUniform2ui) -#define glProgramUniform2uiv GLEW_GET_FUN(__glewProgramUniform2uiv) -#define glProgramUniform3d GLEW_GET_FUN(__glewProgramUniform3d) -#define glProgramUniform3dv GLEW_GET_FUN(__glewProgramUniform3dv) -#define glProgramUniform3f GLEW_GET_FUN(__glewProgramUniform3f) -#define glProgramUniform3fv GLEW_GET_FUN(__glewProgramUniform3fv) -#define glProgramUniform3i GLEW_GET_FUN(__glewProgramUniform3i) -#define glProgramUniform3iv GLEW_GET_FUN(__glewProgramUniform3iv) -#define glProgramUniform3ui GLEW_GET_FUN(__glewProgramUniform3ui) -#define glProgramUniform3uiv GLEW_GET_FUN(__glewProgramUniform3uiv) -#define glProgramUniform4d GLEW_GET_FUN(__glewProgramUniform4d) -#define glProgramUniform4dv GLEW_GET_FUN(__glewProgramUniform4dv) -#define glProgramUniform4f GLEW_GET_FUN(__glewProgramUniform4f) -#define glProgramUniform4fv GLEW_GET_FUN(__glewProgramUniform4fv) -#define glProgramUniform4i GLEW_GET_FUN(__glewProgramUniform4i) -#define glProgramUniform4iv GLEW_GET_FUN(__glewProgramUniform4iv) -#define glProgramUniform4ui GLEW_GET_FUN(__glewProgramUniform4ui) -#define glProgramUniform4uiv GLEW_GET_FUN(__glewProgramUniform4uiv) -#define glProgramUniformMatrix2dv GLEW_GET_FUN(__glewProgramUniformMatrix2dv) -#define glProgramUniformMatrix2fv GLEW_GET_FUN(__glewProgramUniformMatrix2fv) -#define glProgramUniformMatrix2x3dv GLEW_GET_FUN(__glewProgramUniformMatrix2x3dv) -#define glProgramUniformMatrix2x3fv GLEW_GET_FUN(__glewProgramUniformMatrix2x3fv) -#define glProgramUniformMatrix2x4dv GLEW_GET_FUN(__glewProgramUniformMatrix2x4dv) -#define glProgramUniformMatrix2x4fv GLEW_GET_FUN(__glewProgramUniformMatrix2x4fv) -#define glProgramUniformMatrix3dv GLEW_GET_FUN(__glewProgramUniformMatrix3dv) -#define glProgramUniformMatrix3fv GLEW_GET_FUN(__glewProgramUniformMatrix3fv) -#define glProgramUniformMatrix3x2dv GLEW_GET_FUN(__glewProgramUniformMatrix3x2dv) -#define glProgramUniformMatrix3x2fv GLEW_GET_FUN(__glewProgramUniformMatrix3x2fv) -#define glProgramUniformMatrix3x4dv GLEW_GET_FUN(__glewProgramUniformMatrix3x4dv) -#define glProgramUniformMatrix3x4fv GLEW_GET_FUN(__glewProgramUniformMatrix3x4fv) -#define glProgramUniformMatrix4dv GLEW_GET_FUN(__glewProgramUniformMatrix4dv) -#define glProgramUniformMatrix4fv GLEW_GET_FUN(__glewProgramUniformMatrix4fv) -#define glProgramUniformMatrix4x2dv GLEW_GET_FUN(__glewProgramUniformMatrix4x2dv) -#define glProgramUniformMatrix4x2fv GLEW_GET_FUN(__glewProgramUniformMatrix4x2fv) -#define glProgramUniformMatrix4x3dv GLEW_GET_FUN(__glewProgramUniformMatrix4x3dv) -#define glProgramUniformMatrix4x3fv GLEW_GET_FUN(__glewProgramUniformMatrix4x3fv) -#define glUseProgramStages GLEW_GET_FUN(__glewUseProgramStages) -#define glValidateProgramPipeline GLEW_GET_FUN(__glewValidateProgramPipeline) - -#define GLEW_ARB_separate_shader_objects GLEW_GET_VAR(__GLEW_ARB_separate_shader_objects) - -#endif /* GL_ARB_separate_shader_objects */ - -/* --------------------- GL_ARB_shader_atomic_counters --------------------- */ - -#ifndef GL_ARB_shader_atomic_counters -#define GL_ARB_shader_atomic_counters 1 - -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC - -typedef void (GLAPIENTRY * PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint* params); - -#define glGetActiveAtomicCounterBufferiv GLEW_GET_FUN(__glewGetActiveAtomicCounterBufferiv) - -#define GLEW_ARB_shader_atomic_counters GLEW_GET_VAR(__GLEW_ARB_shader_atomic_counters) - -#endif /* GL_ARB_shader_atomic_counters */ - -/* ----------------------- GL_ARB_shader_bit_encoding ---------------------- */ - -#ifndef GL_ARB_shader_bit_encoding -#define GL_ARB_shader_bit_encoding 1 - -#define GLEW_ARB_shader_bit_encoding GLEW_GET_VAR(__GLEW_ARB_shader_bit_encoding) - -#endif /* GL_ARB_shader_bit_encoding */ - -/* --------------------- GL_ARB_shader_image_load_store -------------------- */ - -#ifndef GL_ARB_shader_image_load_store -#define GL_ARB_shader_image_load_store 1 - -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_1D 0x904C -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_2D_RECT 0x904F -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_IMAGE_1D_ARRAY 0x9052 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 -#define GL_INT_IMAGE_1D 0x9057 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_2D_RECT 0x905A -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_INT_IMAGE_1D_ARRAY 0x905D -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C -#define GL_MAX_IMAGE_SAMPLES 0x906D -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GLAPIENTRY * PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); - -#define glBindImageTexture GLEW_GET_FUN(__glewBindImageTexture) -#define glMemoryBarrier GLEW_GET_FUN(__glewMemoryBarrier) - -#define GLEW_ARB_shader_image_load_store GLEW_GET_VAR(__GLEW_ARB_shader_image_load_store) - -#endif /* GL_ARB_shader_image_load_store */ - -/* ------------------------- GL_ARB_shader_objects ------------------------- */ - -#ifndef GL_ARB_shader_objects -#define GL_ARB_shader_objects 1 - -#define GL_PROGRAM_OBJECT_ARB 0x8B40 -#define GL_SHADER_OBJECT_ARB 0x8B48 -#define GL_OBJECT_TYPE_ARB 0x8B4E -#define GL_OBJECT_SUBTYPE_ARB 0x8B4F -#define GL_FLOAT_VEC2_ARB 0x8B50 -#define GL_FLOAT_VEC3_ARB 0x8B51 -#define GL_FLOAT_VEC4_ARB 0x8B52 -#define GL_INT_VEC2_ARB 0x8B53 -#define GL_INT_VEC3_ARB 0x8B54 -#define GL_INT_VEC4_ARB 0x8B55 -#define GL_BOOL_ARB 0x8B56 -#define GL_BOOL_VEC2_ARB 0x8B57 -#define GL_BOOL_VEC3_ARB 0x8B58 -#define GL_BOOL_VEC4_ARB 0x8B59 -#define GL_FLOAT_MAT2_ARB 0x8B5A -#define GL_FLOAT_MAT3_ARB 0x8B5B -#define GL_FLOAT_MAT4_ARB 0x8B5C -#define GL_SAMPLER_1D_ARB 0x8B5D -#define GL_SAMPLER_2D_ARB 0x8B5E -#define GL_SAMPLER_3D_ARB 0x8B5F -#define GL_SAMPLER_CUBE_ARB 0x8B60 -#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 -#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 -#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 -#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 -#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 - -typedef char GLcharARB; -typedef unsigned int GLhandleARB; - -typedef void (GLAPIENTRY * PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); -typedef void (GLAPIENTRY * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); -typedef GLhandleARB (GLAPIENTRY * PFNGLCREATEPROGRAMOBJECTARBPROC) (void); -typedef GLhandleARB (GLAPIENTRY * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); -typedef void (GLAPIENTRY * PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); -typedef void (GLAPIENTRY * PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); -typedef void (GLAPIENTRY * PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei* count, GLhandleARB *obj); -typedef GLhandleARB (GLAPIENTRY * PFNGLGETHANDLEARBPROC) (GLenum pname); -typedef void (GLAPIENTRY * PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *infoLog); -typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *source); -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint* params); -typedef void (GLAPIENTRY * PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (GLAPIENTRY * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint *length); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); -typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); - -#define glAttachObjectARB GLEW_GET_FUN(__glewAttachObjectARB) -#define glCompileShaderARB GLEW_GET_FUN(__glewCompileShaderARB) -#define glCreateProgramObjectARB GLEW_GET_FUN(__glewCreateProgramObjectARB) -#define glCreateShaderObjectARB GLEW_GET_FUN(__glewCreateShaderObjectARB) -#define glDeleteObjectARB GLEW_GET_FUN(__glewDeleteObjectARB) -#define glDetachObjectARB GLEW_GET_FUN(__glewDetachObjectARB) -#define glGetActiveUniformARB GLEW_GET_FUN(__glewGetActiveUniformARB) -#define glGetAttachedObjectsARB GLEW_GET_FUN(__glewGetAttachedObjectsARB) -#define glGetHandleARB GLEW_GET_FUN(__glewGetHandleARB) -#define glGetInfoLogARB GLEW_GET_FUN(__glewGetInfoLogARB) -#define glGetObjectParameterfvARB GLEW_GET_FUN(__glewGetObjectParameterfvARB) -#define glGetObjectParameterivARB GLEW_GET_FUN(__glewGetObjectParameterivARB) -#define glGetShaderSourceARB GLEW_GET_FUN(__glewGetShaderSourceARB) -#define glGetUniformLocationARB GLEW_GET_FUN(__glewGetUniformLocationARB) -#define glGetUniformfvARB GLEW_GET_FUN(__glewGetUniformfvARB) -#define glGetUniformivARB GLEW_GET_FUN(__glewGetUniformivARB) -#define glLinkProgramARB GLEW_GET_FUN(__glewLinkProgramARB) -#define glShaderSourceARB GLEW_GET_FUN(__glewShaderSourceARB) -#define glUniform1fARB GLEW_GET_FUN(__glewUniform1fARB) -#define glUniform1fvARB GLEW_GET_FUN(__glewUniform1fvARB) -#define glUniform1iARB GLEW_GET_FUN(__glewUniform1iARB) -#define glUniform1ivARB GLEW_GET_FUN(__glewUniform1ivARB) -#define glUniform2fARB GLEW_GET_FUN(__glewUniform2fARB) -#define glUniform2fvARB GLEW_GET_FUN(__glewUniform2fvARB) -#define glUniform2iARB GLEW_GET_FUN(__glewUniform2iARB) -#define glUniform2ivARB GLEW_GET_FUN(__glewUniform2ivARB) -#define glUniform3fARB GLEW_GET_FUN(__glewUniform3fARB) -#define glUniform3fvARB GLEW_GET_FUN(__glewUniform3fvARB) -#define glUniform3iARB GLEW_GET_FUN(__glewUniform3iARB) -#define glUniform3ivARB GLEW_GET_FUN(__glewUniform3ivARB) -#define glUniform4fARB GLEW_GET_FUN(__glewUniform4fARB) -#define glUniform4fvARB GLEW_GET_FUN(__glewUniform4fvARB) -#define glUniform4iARB GLEW_GET_FUN(__glewUniform4iARB) -#define glUniform4ivARB GLEW_GET_FUN(__glewUniform4ivARB) -#define glUniformMatrix2fvARB GLEW_GET_FUN(__glewUniformMatrix2fvARB) -#define glUniformMatrix3fvARB GLEW_GET_FUN(__glewUniformMatrix3fvARB) -#define glUniformMatrix4fvARB GLEW_GET_FUN(__glewUniformMatrix4fvARB) -#define glUseProgramObjectARB GLEW_GET_FUN(__glewUseProgramObjectARB) -#define glValidateProgramARB GLEW_GET_FUN(__glewValidateProgramARB) - -#define GLEW_ARB_shader_objects GLEW_GET_VAR(__GLEW_ARB_shader_objects) - -#endif /* GL_ARB_shader_objects */ - -/* ------------------------ GL_ARB_shader_precision ------------------------ */ - -#ifndef GL_ARB_shader_precision -#define GL_ARB_shader_precision 1 - -#define GLEW_ARB_shader_precision GLEW_GET_VAR(__GLEW_ARB_shader_precision) - -#endif /* GL_ARB_shader_precision */ - -/* ---------------------- GL_ARB_shader_stencil_export --------------------- */ - -#ifndef GL_ARB_shader_stencil_export -#define GL_ARB_shader_stencil_export 1 - -#define GLEW_ARB_shader_stencil_export GLEW_GET_VAR(__GLEW_ARB_shader_stencil_export) - -#endif /* GL_ARB_shader_stencil_export */ - -/* ------------------------ GL_ARB_shader_subroutine ----------------------- */ - -#ifndef GL_ARB_shader_subroutine -#define GL_ARB_shader_subroutine 1 - -#define GL_ACTIVE_SUBROUTINES 0x8DE5 -#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 -#define GL_MAX_SUBROUTINES 0x8DE7 -#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 -#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 -#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A -#define GL_COMPATIBLE_SUBROUTINES 0x8E4B - -typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, char *name); -typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, char *name); -typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint* values); -typedef GLuint (GLAPIENTRY * PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const char* name); -typedef GLint (GLAPIENTRY * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const char* name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint* params); -typedef void (GLAPIENTRY * PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint* indices); - -#define glGetActiveSubroutineName GLEW_GET_FUN(__glewGetActiveSubroutineName) -#define glGetActiveSubroutineUniformName GLEW_GET_FUN(__glewGetActiveSubroutineUniformName) -#define glGetActiveSubroutineUniformiv GLEW_GET_FUN(__glewGetActiveSubroutineUniformiv) -#define glGetProgramStageiv GLEW_GET_FUN(__glewGetProgramStageiv) -#define glGetSubroutineIndex GLEW_GET_FUN(__glewGetSubroutineIndex) -#define glGetSubroutineUniformLocation GLEW_GET_FUN(__glewGetSubroutineUniformLocation) -#define glGetUniformSubroutineuiv GLEW_GET_FUN(__glewGetUniformSubroutineuiv) -#define glUniformSubroutinesuiv GLEW_GET_FUN(__glewUniformSubroutinesuiv) - -#define GLEW_ARB_shader_subroutine GLEW_GET_VAR(__GLEW_ARB_shader_subroutine) - -#endif /* GL_ARB_shader_subroutine */ - -/* ----------------------- GL_ARB_shader_texture_lod ----------------------- */ - -#ifndef GL_ARB_shader_texture_lod -#define GL_ARB_shader_texture_lod 1 - -#define GLEW_ARB_shader_texture_lod GLEW_GET_VAR(__GLEW_ARB_shader_texture_lod) - -#endif /* GL_ARB_shader_texture_lod */ - -/* ---------------------- GL_ARB_shading_language_100 ---------------------- */ - -#ifndef GL_ARB_shading_language_100 -#define GL_ARB_shading_language_100 1 - -#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C - -#define GLEW_ARB_shading_language_100 GLEW_GET_VAR(__GLEW_ARB_shading_language_100) - -#endif /* GL_ARB_shading_language_100 */ - -/* -------------------- GL_ARB_shading_language_420pack -------------------- */ - -#ifndef GL_ARB_shading_language_420pack -#define GL_ARB_shading_language_420pack 1 - -#define GLEW_ARB_shading_language_420pack GLEW_GET_VAR(__GLEW_ARB_shading_language_420pack) - -#endif /* GL_ARB_shading_language_420pack */ - -/* -------------------- GL_ARB_shading_language_include -------------------- */ - -#ifndef GL_ARB_shading_language_include -#define GL_ARB_shading_language_include 1 - -#define GL_SHADER_INCLUDE_ARB 0x8DAE -#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 -#define GL_NAMED_STRING_TYPE_ARB 0x8DEA - -typedef void (GLAPIENTRY * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const char ** path, const GLint *length); -typedef void (GLAPIENTRY * PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const char* name); -typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const char* name, GLsizei bufSize, GLint *stringlen, char *string); -typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const char* name, GLenum pname, GLint *params); -typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const char* name); -typedef void (GLAPIENTRY * PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const char* name, GLint stringlen, const char *string); - -#define glCompileShaderIncludeARB GLEW_GET_FUN(__glewCompileShaderIncludeARB) -#define glDeleteNamedStringARB GLEW_GET_FUN(__glewDeleteNamedStringARB) -#define glGetNamedStringARB GLEW_GET_FUN(__glewGetNamedStringARB) -#define glGetNamedStringivARB GLEW_GET_FUN(__glewGetNamedStringivARB) -#define glIsNamedStringARB GLEW_GET_FUN(__glewIsNamedStringARB) -#define glNamedStringARB GLEW_GET_FUN(__glewNamedStringARB) - -#define GLEW_ARB_shading_language_include GLEW_GET_VAR(__GLEW_ARB_shading_language_include) - -#endif /* GL_ARB_shading_language_include */ - -/* -------------------- GL_ARB_shading_language_packing -------------------- */ - -#ifndef GL_ARB_shading_language_packing -#define GL_ARB_shading_language_packing 1 - -#define GLEW_ARB_shading_language_packing GLEW_GET_VAR(__GLEW_ARB_shading_language_packing) - -#endif /* GL_ARB_shading_language_packing */ - -/* ----------------------------- GL_ARB_shadow ----------------------------- */ - -#ifndef GL_ARB_shadow -#define GL_ARB_shadow 1 - -#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C -#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D -#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E - -#define GLEW_ARB_shadow GLEW_GET_VAR(__GLEW_ARB_shadow) - -#endif /* GL_ARB_shadow */ - -/* ------------------------- GL_ARB_shadow_ambient ------------------------- */ - -#ifndef GL_ARB_shadow_ambient -#define GL_ARB_shadow_ambient 1 - -#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF - -#define GLEW_ARB_shadow_ambient GLEW_GET_VAR(__GLEW_ARB_shadow_ambient) - -#endif /* GL_ARB_shadow_ambient */ - -/* ------------------------------ GL_ARB_sync ------------------------------ */ - -#ifndef GL_ARB_sync -#define GL_ARB_sync 1 - -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF - -typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); -typedef void (GLAPIENTRY * PFNGLDELETESYNCPROC) (GLsync GLsync); -typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCPROC) (GLenum condition,GLbitfield flags); -typedef void (GLAPIENTRY * PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64* params); -typedef void (GLAPIENTRY * PFNGLGETSYNCIVPROC) (GLsync GLsync,GLenum pname,GLsizei bufSize,GLsizei* length, GLint *values); -typedef GLboolean (GLAPIENTRY * PFNGLISSYNCPROC) (GLsync GLsync); -typedef void (GLAPIENTRY * PFNGLWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); - -#define glClientWaitSync GLEW_GET_FUN(__glewClientWaitSync) -#define glDeleteSync GLEW_GET_FUN(__glewDeleteSync) -#define glFenceSync GLEW_GET_FUN(__glewFenceSync) -#define glGetInteger64v GLEW_GET_FUN(__glewGetInteger64v) -#define glGetSynciv GLEW_GET_FUN(__glewGetSynciv) -#define glIsSync GLEW_GET_FUN(__glewIsSync) -#define glWaitSync GLEW_GET_FUN(__glewWaitSync) - -#define GLEW_ARB_sync GLEW_GET_VAR(__GLEW_ARB_sync) - -#endif /* GL_ARB_sync */ - -/* ----------------------- GL_ARB_tessellation_shader ---------------------- */ - -#ifndef GL_ARB_tessellation_shader -#define GL_ARB_tessellation_shader 1 - -#define GL_PATCHES 0xE -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_PATCH_VERTICES 0x8E72 -#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 -#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -#define GL_ISOLINES 0x8E7A -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRACTIONAL_EVEN 0x8E7C -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A - -typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat* values); -typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); - -#define glPatchParameterfv GLEW_GET_FUN(__glewPatchParameterfv) -#define glPatchParameteri GLEW_GET_FUN(__glewPatchParameteri) - -#define GLEW_ARB_tessellation_shader GLEW_GET_VAR(__GLEW_ARB_tessellation_shader) - -#endif /* GL_ARB_tessellation_shader */ - -/* ---------------------- GL_ARB_texture_border_clamp ---------------------- */ - -#ifndef GL_ARB_texture_border_clamp -#define GL_ARB_texture_border_clamp 1 - -#define GL_CLAMP_TO_BORDER_ARB 0x812D - -#define GLEW_ARB_texture_border_clamp GLEW_GET_VAR(__GLEW_ARB_texture_border_clamp) - -#endif /* GL_ARB_texture_border_clamp */ - -/* ---------------------- GL_ARB_texture_buffer_object --------------------- */ - -#ifndef GL_ARB_texture_buffer_object -#define GL_ARB_texture_buffer_object 1 - -#define GL_TEXTURE_BUFFER_ARB 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E - -typedef void (GLAPIENTRY * PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); - -#define glTexBufferARB GLEW_GET_FUN(__glewTexBufferARB) - -#define GLEW_ARB_texture_buffer_object GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object) - -#endif /* GL_ARB_texture_buffer_object */ - -/* ------------------- GL_ARB_texture_buffer_object_rgb32 ------------------ */ - -#ifndef GL_ARB_texture_buffer_object_rgb32 -#define GL_ARB_texture_buffer_object_rgb32 1 - -#define GLEW_ARB_texture_buffer_object_rgb32 GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object_rgb32) - -#endif /* GL_ARB_texture_buffer_object_rgb32 */ - -/* ----------------------- GL_ARB_texture_compression ---------------------- */ - -#ifndef GL_ARB_texture_compression -#define GL_ARB_texture_compression 1 - -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 - -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, void* img); - -#define glCompressedTexImage1DARB GLEW_GET_FUN(__glewCompressedTexImage1DARB) -#define glCompressedTexImage2DARB GLEW_GET_FUN(__glewCompressedTexImage2DARB) -#define glCompressedTexImage3DARB GLEW_GET_FUN(__glewCompressedTexImage3DARB) -#define glCompressedTexSubImage1DARB GLEW_GET_FUN(__glewCompressedTexSubImage1DARB) -#define glCompressedTexSubImage2DARB GLEW_GET_FUN(__glewCompressedTexSubImage2DARB) -#define glCompressedTexSubImage3DARB GLEW_GET_FUN(__glewCompressedTexSubImage3DARB) -#define glGetCompressedTexImageARB GLEW_GET_FUN(__glewGetCompressedTexImageARB) - -#define GLEW_ARB_texture_compression GLEW_GET_VAR(__GLEW_ARB_texture_compression) - -#endif /* GL_ARB_texture_compression */ - -/* -------------------- GL_ARB_texture_compression_bptc -------------------- */ - -#ifndef GL_ARB_texture_compression_bptc -#define GL_ARB_texture_compression_bptc 1 - -#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F - -#define GLEW_ARB_texture_compression_bptc GLEW_GET_VAR(__GLEW_ARB_texture_compression_bptc) - -#endif /* GL_ARB_texture_compression_bptc */ - -/* -------------------- GL_ARB_texture_compression_rgtc -------------------- */ - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_ARB_texture_compression_rgtc 1 - -#define GL_COMPRESSED_RED_RGTC1 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC -#define GL_COMPRESSED_RG_RGTC2 0x8DBD -#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE - -#define GLEW_ARB_texture_compression_rgtc GLEW_GET_VAR(__GLEW_ARB_texture_compression_rgtc) - -#endif /* GL_ARB_texture_compression_rgtc */ - -/* ------------------------ GL_ARB_texture_cube_map ------------------------ */ - -#ifndef GL_ARB_texture_cube_map -#define GL_ARB_texture_cube_map 1 - -#define GL_NORMAL_MAP_ARB 0x8511 -#define GL_REFLECTION_MAP_ARB 0x8512 -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C - -#define GLEW_ARB_texture_cube_map GLEW_GET_VAR(__GLEW_ARB_texture_cube_map) - -#endif /* GL_ARB_texture_cube_map */ - -/* --------------------- GL_ARB_texture_cube_map_array --------------------- */ - -#ifndef GL_ARB_texture_cube_map_array -#define GL_ARB_texture_cube_map_array 1 - -#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F - -#define GLEW_ARB_texture_cube_map_array GLEW_GET_VAR(__GLEW_ARB_texture_cube_map_array) - -#endif /* GL_ARB_texture_cube_map_array */ - -/* ------------------------- GL_ARB_texture_env_add ------------------------ */ - -#ifndef GL_ARB_texture_env_add -#define GL_ARB_texture_env_add 1 - -#define GLEW_ARB_texture_env_add GLEW_GET_VAR(__GLEW_ARB_texture_env_add) - -#endif /* GL_ARB_texture_env_add */ - -/* ----------------------- GL_ARB_texture_env_combine ---------------------- */ - -#ifndef GL_ARB_texture_env_combine -#define GL_ARB_texture_env_combine 1 - -#define GL_SUBTRACT_ARB 0x84E7 -#define GL_COMBINE_ARB 0x8570 -#define GL_COMBINE_RGB_ARB 0x8571 -#define GL_COMBINE_ALPHA_ARB 0x8572 -#define GL_RGB_SCALE_ARB 0x8573 -#define GL_ADD_SIGNED_ARB 0x8574 -#define GL_INTERPOLATE_ARB 0x8575 -#define GL_CONSTANT_ARB 0x8576 -#define GL_PRIMARY_COLOR_ARB 0x8577 -#define GL_PREVIOUS_ARB 0x8578 -#define GL_SOURCE0_RGB_ARB 0x8580 -#define GL_SOURCE1_RGB_ARB 0x8581 -#define GL_SOURCE2_RGB_ARB 0x8582 -#define GL_SOURCE0_ALPHA_ARB 0x8588 -#define GL_SOURCE1_ALPHA_ARB 0x8589 -#define GL_SOURCE2_ALPHA_ARB 0x858A -#define GL_OPERAND0_RGB_ARB 0x8590 -#define GL_OPERAND1_RGB_ARB 0x8591 -#define GL_OPERAND2_RGB_ARB 0x8592 -#define GL_OPERAND0_ALPHA_ARB 0x8598 -#define GL_OPERAND1_ALPHA_ARB 0x8599 -#define GL_OPERAND2_ALPHA_ARB 0x859A - -#define GLEW_ARB_texture_env_combine GLEW_GET_VAR(__GLEW_ARB_texture_env_combine) - -#endif /* GL_ARB_texture_env_combine */ - -/* ---------------------- GL_ARB_texture_env_crossbar ---------------------- */ - -#ifndef GL_ARB_texture_env_crossbar -#define GL_ARB_texture_env_crossbar 1 - -#define GLEW_ARB_texture_env_crossbar GLEW_GET_VAR(__GLEW_ARB_texture_env_crossbar) - -#endif /* GL_ARB_texture_env_crossbar */ - -/* ------------------------ GL_ARB_texture_env_dot3 ------------------------ */ - -#ifndef GL_ARB_texture_env_dot3 -#define GL_ARB_texture_env_dot3 1 - -#define GL_DOT3_RGB_ARB 0x86AE -#define GL_DOT3_RGBA_ARB 0x86AF - -#define GLEW_ARB_texture_env_dot3 GLEW_GET_VAR(__GLEW_ARB_texture_env_dot3) - -#endif /* GL_ARB_texture_env_dot3 */ - -/* -------------------------- GL_ARB_texture_float ------------------------- */ - -#ifndef GL_ARB_texture_float -#define GL_ARB_texture_float 1 - -#define GL_RGBA32F_ARB 0x8814 -#define GL_RGB32F_ARB 0x8815 -#define GL_ALPHA32F_ARB 0x8816 -#define GL_INTENSITY32F_ARB 0x8817 -#define GL_LUMINANCE32F_ARB 0x8818 -#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 -#define GL_RGBA16F_ARB 0x881A -#define GL_RGB16F_ARB 0x881B -#define GL_ALPHA16F_ARB 0x881C -#define GL_INTENSITY16F_ARB 0x881D -#define GL_LUMINANCE16F_ARB 0x881E -#define GL_LUMINANCE_ALPHA16F_ARB 0x881F -#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 -#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 -#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 -#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 - -#define GLEW_ARB_texture_float GLEW_GET_VAR(__GLEW_ARB_texture_float) - -#endif /* GL_ARB_texture_float */ - -/* ------------------------- GL_ARB_texture_gather ------------------------- */ - -#ifndef GL_ARB_texture_gather -#define GL_ARB_texture_gather 1 - -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F -#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F - -#define GLEW_ARB_texture_gather GLEW_GET_VAR(__GLEW_ARB_texture_gather) - -#endif /* GL_ARB_texture_gather */ - -/* --------------------- GL_ARB_texture_mirrored_repeat -------------------- */ - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_ARB_texture_mirrored_repeat 1 - -#define GL_MIRRORED_REPEAT_ARB 0x8370 - -#define GLEW_ARB_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_ARB_texture_mirrored_repeat) - -#endif /* GL_ARB_texture_mirrored_repeat */ - -/* ----------------------- GL_ARB_texture_multisample ---------------------- */ - -#ifndef GL_ARB_texture_multisample -#define GL_ARB_texture_multisample 1 - -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 - -typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val); -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); - -#define glGetMultisamplefv GLEW_GET_FUN(__glewGetMultisamplefv) -#define glSampleMaski GLEW_GET_FUN(__glewSampleMaski) -#define glTexImage2DMultisample GLEW_GET_FUN(__glewTexImage2DMultisample) -#define glTexImage3DMultisample GLEW_GET_FUN(__glewTexImage3DMultisample) - -#define GLEW_ARB_texture_multisample GLEW_GET_VAR(__GLEW_ARB_texture_multisample) - -#endif /* GL_ARB_texture_multisample */ - -/* -------------------- GL_ARB_texture_non_power_of_two -------------------- */ - -#ifndef GL_ARB_texture_non_power_of_two -#define GL_ARB_texture_non_power_of_two 1 - -#define GLEW_ARB_texture_non_power_of_two GLEW_GET_VAR(__GLEW_ARB_texture_non_power_of_two) - -#endif /* GL_ARB_texture_non_power_of_two */ - -/* ------------------------ GL_ARB_texture_query_lod ----------------------- */ - -#ifndef GL_ARB_texture_query_lod -#define GL_ARB_texture_query_lod 1 - -#define GLEW_ARB_texture_query_lod GLEW_GET_VAR(__GLEW_ARB_texture_query_lod) - -#endif /* GL_ARB_texture_query_lod */ - -/* ------------------------ GL_ARB_texture_rectangle ----------------------- */ - -#ifndef GL_ARB_texture_rectangle -#define GL_ARB_texture_rectangle 1 - -#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 - -#define GLEW_ARB_texture_rectangle GLEW_GET_VAR(__GLEW_ARB_texture_rectangle) - -#endif /* GL_ARB_texture_rectangle */ - -/* --------------------------- GL_ARB_texture_rg --------------------------- */ - -#ifndef GL_ARB_texture_rg -#define GL_ARB_texture_rg 1 - -#define GL_RED 0x1903 -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_R16 0x822A -#define GL_RG8 0x822B -#define GL_RG16 0x822C -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C - -#define GLEW_ARB_texture_rg GLEW_GET_VAR(__GLEW_ARB_texture_rg) - -#endif /* GL_ARB_texture_rg */ - -/* ----------------------- GL_ARB_texture_rgb10_a2ui ----------------------- */ - -#ifndef GL_ARB_texture_rgb10_a2ui -#define GL_ARB_texture_rgb10_a2ui 1 - -#define GL_RGB10_A2UI 0x906F - -#define GLEW_ARB_texture_rgb10_a2ui GLEW_GET_VAR(__GLEW_ARB_texture_rgb10_a2ui) - -#endif /* GL_ARB_texture_rgb10_a2ui */ - -/* ------------------------- GL_ARB_texture_storage ------------------------ */ - -#ifndef GL_ARB_texture_storage -#define GL_ARB_texture_storage 1 - -#define GL_ALPHA8_EXT 0x803C -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F - -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); - -#define glTexStorage1D GLEW_GET_FUN(__glewTexStorage1D) -#define glTexStorage2D GLEW_GET_FUN(__glewTexStorage2D) -#define glTexStorage3D GLEW_GET_FUN(__glewTexStorage3D) -#define glTextureStorage1DEXT GLEW_GET_FUN(__glewTextureStorage1DEXT) -#define glTextureStorage2DEXT GLEW_GET_FUN(__glewTextureStorage2DEXT) -#define glTextureStorage3DEXT GLEW_GET_FUN(__glewTextureStorage3DEXT) - -#define GLEW_ARB_texture_storage GLEW_GET_VAR(__GLEW_ARB_texture_storage) - -#endif /* GL_ARB_texture_storage */ - -/* ------------------------- GL_ARB_texture_swizzle ------------------------ */ - -#ifndef GL_ARB_texture_swizzle -#define GL_ARB_texture_swizzle 1 - -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 - -#define GLEW_ARB_texture_swizzle GLEW_GET_VAR(__GLEW_ARB_texture_swizzle) - -#endif /* GL_ARB_texture_swizzle */ - -/* --------------------------- GL_ARB_timer_query -------------------------- */ - -#ifndef GL_ARB_timer_query -#define GL_ARB_timer_query 1 - -#define GL_TIME_ELAPSED 0x88BF -#define GL_TIMESTAMP 0x8E28 - -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64* params); -typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); - -#define glGetQueryObjecti64v GLEW_GET_FUN(__glewGetQueryObjecti64v) -#define glGetQueryObjectui64v GLEW_GET_FUN(__glewGetQueryObjectui64v) -#define glQueryCounter GLEW_GET_FUN(__glewQueryCounter) - -#define GLEW_ARB_timer_query GLEW_GET_VAR(__GLEW_ARB_timer_query) - -#endif /* GL_ARB_timer_query */ - -/* ----------------------- GL_ARB_transform_feedback2 ---------------------- */ - -#ifndef GL_ARB_transform_feedback2 -#define GL_ARB_transform_feedback2 1 - -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 - -typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); -typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids); -typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); - -#define glBindTransformFeedback GLEW_GET_FUN(__glewBindTransformFeedback) -#define glDeleteTransformFeedbacks GLEW_GET_FUN(__glewDeleteTransformFeedbacks) -#define glDrawTransformFeedback GLEW_GET_FUN(__glewDrawTransformFeedback) -#define glGenTransformFeedbacks GLEW_GET_FUN(__glewGenTransformFeedbacks) -#define glIsTransformFeedback GLEW_GET_FUN(__glewIsTransformFeedback) -#define glPauseTransformFeedback GLEW_GET_FUN(__glewPauseTransformFeedback) -#define glResumeTransformFeedback GLEW_GET_FUN(__glewResumeTransformFeedback) - -#define GLEW_ARB_transform_feedback2 GLEW_GET_VAR(__GLEW_ARB_transform_feedback2) - -#endif /* GL_ARB_transform_feedback2 */ - -/* ----------------------- GL_ARB_transform_feedback3 ---------------------- */ - -#ifndef GL_ARB_transform_feedback3 -#define GL_ARB_transform_feedback3 1 - -#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 -#define GL_MAX_VERTEX_STREAMS 0x8E71 - -typedef void (GLAPIENTRY * PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); -typedef void (GLAPIENTRY * PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); - -#define glBeginQueryIndexed GLEW_GET_FUN(__glewBeginQueryIndexed) -#define glDrawTransformFeedbackStream GLEW_GET_FUN(__glewDrawTransformFeedbackStream) -#define glEndQueryIndexed GLEW_GET_FUN(__glewEndQueryIndexed) -#define glGetQueryIndexediv GLEW_GET_FUN(__glewGetQueryIndexediv) - -#define GLEW_ARB_transform_feedback3 GLEW_GET_VAR(__GLEW_ARB_transform_feedback3) - -#endif /* GL_ARB_transform_feedback3 */ - -/* ------------------ GL_ARB_transform_feedback_instanced ------------------ */ - -#ifndef GL_ARB_transform_feedback_instanced -#define GL_ARB_transform_feedback_instanced 1 - -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei primcount); - -#define glDrawTransformFeedbackInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackInstanced) -#define glDrawTransformFeedbackStreamInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackStreamInstanced) - -#define GLEW_ARB_transform_feedback_instanced GLEW_GET_VAR(__GLEW_ARB_transform_feedback_instanced) - -#endif /* GL_ARB_transform_feedback_instanced */ - -/* ------------------------ GL_ARB_transpose_matrix ------------------------ */ - -#ifndef GL_ARB_transpose_matrix -#define GL_ARB_transpose_matrix 1 - -#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 - -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); - -#define glLoadTransposeMatrixdARB GLEW_GET_FUN(__glewLoadTransposeMatrixdARB) -#define glLoadTransposeMatrixfARB GLEW_GET_FUN(__glewLoadTransposeMatrixfARB) -#define glMultTransposeMatrixdARB GLEW_GET_FUN(__glewMultTransposeMatrixdARB) -#define glMultTransposeMatrixfARB GLEW_GET_FUN(__glewMultTransposeMatrixfARB) - -#define GLEW_ARB_transpose_matrix GLEW_GET_VAR(__GLEW_ARB_transpose_matrix) - -#endif /* GL_ARB_transpose_matrix */ - -/* ---------------------- GL_ARB_uniform_buffer_object --------------------- */ - -#ifndef GL_ARB_uniform_buffer_object -#define GL_ARB_uniform_buffer_object 1 - -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, char* uniformBlockName); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, char* uniformName); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data); -typedef GLuint (GLAPIENTRY * PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const char* uniformBlockName); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const char** uniformNames, GLuint* uniformIndices); -typedef void (GLAPIENTRY * PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); - -#define glBindBufferBase GLEW_GET_FUN(__glewBindBufferBase) -#define glBindBufferRange GLEW_GET_FUN(__glewBindBufferRange) -#define glGetActiveUniformBlockName GLEW_GET_FUN(__glewGetActiveUniformBlockName) -#define glGetActiveUniformBlockiv GLEW_GET_FUN(__glewGetActiveUniformBlockiv) -#define glGetActiveUniformName GLEW_GET_FUN(__glewGetActiveUniformName) -#define glGetActiveUniformsiv GLEW_GET_FUN(__glewGetActiveUniformsiv) -#define glGetIntegeri_v GLEW_GET_FUN(__glewGetIntegeri_v) -#define glGetUniformBlockIndex GLEW_GET_FUN(__glewGetUniformBlockIndex) -#define glGetUniformIndices GLEW_GET_FUN(__glewGetUniformIndices) -#define glUniformBlockBinding GLEW_GET_FUN(__glewUniformBlockBinding) - -#define GLEW_ARB_uniform_buffer_object GLEW_GET_VAR(__GLEW_ARB_uniform_buffer_object) - -#endif /* GL_ARB_uniform_buffer_object */ - -/* ------------------------ GL_ARB_vertex_array_bgra ----------------------- */ - -#ifndef GL_ARB_vertex_array_bgra -#define GL_ARB_vertex_array_bgra 1 - -#define GL_BGRA 0x80E1 - -#define GLEW_ARB_vertex_array_bgra GLEW_GET_VAR(__GLEW_ARB_vertex_array_bgra) - -#endif /* GL_ARB_vertex_array_bgra */ - -/* ----------------------- GL_ARB_vertex_array_object ---------------------- */ - -#ifndef GL_ARB_vertex_array_object -#define GL_ARB_vertex_array_object 1 - -#define GL_VERTEX_ARRAY_BINDING 0x85B5 - -typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays); -typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays); -typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYPROC) (GLuint array); - -#define glBindVertexArray GLEW_GET_FUN(__glewBindVertexArray) -#define glDeleteVertexArrays GLEW_GET_FUN(__glewDeleteVertexArrays) -#define glGenVertexArrays GLEW_GET_FUN(__glewGenVertexArrays) -#define glIsVertexArray GLEW_GET_FUN(__glewIsVertexArray) - -#define GLEW_ARB_vertex_array_object GLEW_GET_VAR(__GLEW_ARB_vertex_array_object) - -#endif /* GL_ARB_vertex_array_object */ - -/* ----------------------- GL_ARB_vertex_attrib_64bit ---------------------- */ - -#ifndef GL_ARB_vertex_attrib_64bit -#define GL_ARB_vertex_attrib_64bit 1 - -#define GL_DOUBLE_MAT2 0x8F46 -#define GL_DOUBLE_MAT3 0x8F47 -#define GL_DOUBLE_MAT4 0x8F48 -#define GL_DOUBLE_VEC2 0x8FFC -#define GL_DOUBLE_VEC3 0x8FFD -#define GL_DOUBLE_VEC4 0x8FFE - -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); - -#define glGetVertexAttribLdv GLEW_GET_FUN(__glewGetVertexAttribLdv) -#define glVertexAttribL1d GLEW_GET_FUN(__glewVertexAttribL1d) -#define glVertexAttribL1dv GLEW_GET_FUN(__glewVertexAttribL1dv) -#define glVertexAttribL2d GLEW_GET_FUN(__glewVertexAttribL2d) -#define glVertexAttribL2dv GLEW_GET_FUN(__glewVertexAttribL2dv) -#define glVertexAttribL3d GLEW_GET_FUN(__glewVertexAttribL3d) -#define glVertexAttribL3dv GLEW_GET_FUN(__glewVertexAttribL3dv) -#define glVertexAttribL4d GLEW_GET_FUN(__glewVertexAttribL4d) -#define glVertexAttribL4dv GLEW_GET_FUN(__glewVertexAttribL4dv) -#define glVertexAttribLPointer GLEW_GET_FUN(__glewVertexAttribLPointer) - -#define GLEW_ARB_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_64bit) - -#endif /* GL_ARB_vertex_attrib_64bit */ - -/* -------------------------- GL_ARB_vertex_blend -------------------------- */ - -#ifndef GL_ARB_vertex_blend -#define GL_ARB_vertex_blend 1 - -#define GL_MODELVIEW0_ARB 0x1700 -#define GL_MODELVIEW1_ARB 0x850A -#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 -#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 -#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 -#define GL_VERTEX_BLEND_ARB 0x86A7 -#define GL_CURRENT_WEIGHT_ARB 0x86A8 -#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 -#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA -#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB -#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC -#define GL_WEIGHT_ARRAY_ARB 0x86AD -#define GL_MODELVIEW2_ARB 0x8722 -#define GL_MODELVIEW3_ARB 0x8723 -#define GL_MODELVIEW4_ARB 0x8724 -#define GL_MODELVIEW5_ARB 0x8725 -#define GL_MODELVIEW6_ARB 0x8726 -#define GL_MODELVIEW7_ARB 0x8727 -#define GL_MODELVIEW8_ARB 0x8728 -#define GL_MODELVIEW9_ARB 0x8729 -#define GL_MODELVIEW10_ARB 0x872A -#define GL_MODELVIEW11_ARB 0x872B -#define GL_MODELVIEW12_ARB 0x872C -#define GL_MODELVIEW13_ARB 0x872D -#define GL_MODELVIEW14_ARB 0x872E -#define GL_MODELVIEW15_ARB 0x872F -#define GL_MODELVIEW16_ARB 0x8730 -#define GL_MODELVIEW17_ARB 0x8731 -#define GL_MODELVIEW18_ARB 0x8732 -#define GL_MODELVIEW19_ARB 0x8733 -#define GL_MODELVIEW20_ARB 0x8734 -#define GL_MODELVIEW21_ARB 0x8735 -#define GL_MODELVIEW22_ARB 0x8736 -#define GL_MODELVIEW23_ARB 0x8737 -#define GL_MODELVIEW24_ARB 0x8738 -#define GL_MODELVIEW25_ARB 0x8739 -#define GL_MODELVIEW26_ARB 0x873A -#define GL_MODELVIEW27_ARB 0x873B -#define GL_MODELVIEW28_ARB 0x873C -#define GL_MODELVIEW29_ARB 0x873D -#define GL_MODELVIEW30_ARB 0x873E -#define GL_MODELVIEW31_ARB 0x873F - -typedef void (GLAPIENTRY * PFNGLVERTEXBLENDARBPROC) (GLint count); -typedef void (GLAPIENTRY * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLWEIGHTBVARBPROC) (GLint size, GLbyte *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTDVARBPROC) (GLint size, GLdouble *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTFVARBPROC) (GLint size, GLfloat *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTIVARBPROC) (GLint size, GLint *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTSVARBPROC) (GLint size, GLshort *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTUBVARBPROC) (GLint size, GLubyte *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTUIVARBPROC) (GLint size, GLuint *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTUSVARBPROC) (GLint size, GLushort *weights); - -#define glVertexBlendARB GLEW_GET_FUN(__glewVertexBlendARB) -#define glWeightPointerARB GLEW_GET_FUN(__glewWeightPointerARB) -#define glWeightbvARB GLEW_GET_FUN(__glewWeightbvARB) -#define glWeightdvARB GLEW_GET_FUN(__glewWeightdvARB) -#define glWeightfvARB GLEW_GET_FUN(__glewWeightfvARB) -#define glWeightivARB GLEW_GET_FUN(__glewWeightivARB) -#define glWeightsvARB GLEW_GET_FUN(__glewWeightsvARB) -#define glWeightubvARB GLEW_GET_FUN(__glewWeightubvARB) -#define glWeightuivARB GLEW_GET_FUN(__glewWeightuivARB) -#define glWeightusvARB GLEW_GET_FUN(__glewWeightusvARB) - -#define GLEW_ARB_vertex_blend GLEW_GET_VAR(__GLEW_ARB_vertex_blend) - -#endif /* GL_ARB_vertex_blend */ - -/* ---------------------- GL_ARB_vertex_buffer_object ---------------------- */ - -#ifndef GL_ARB_vertex_buffer_object -#define GL_ARB_vertex_buffer_object 1 - -#define GL_BUFFER_SIZE_ARB 0x8764 -#define GL_BUFFER_USAGE_ARB 0x8765 -#define GL_ARRAY_BUFFER_ARB 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define GL_READ_ONLY_ARB 0x88B8 -#define GL_WRITE_ONLY_ARB 0x88B9 -#define GL_READ_WRITE_ARB 0x88BA -#define GL_BUFFER_ACCESS_ARB 0x88BB -#define GL_BUFFER_MAPPED_ARB 0x88BC -#define GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define GL_STREAM_DRAW_ARB 0x88E0 -#define GL_STREAM_READ_ARB 0x88E1 -#define GL_STREAM_COPY_ARB 0x88E2 -#define GL_STATIC_DRAW_ARB 0x88E4 -#define GL_STATIC_READ_ARB 0x88E5 -#define GL_STATIC_COPY_ARB 0x88E6 -#define GL_DYNAMIC_DRAW_ARB 0x88E8 -#define GL_DYNAMIC_READ_ARB 0x88E9 -#define GL_DYNAMIC_COPY_ARB 0x88EA - -typedef ptrdiff_t GLintptrARB; -typedef ptrdiff_t GLsizeiptrARB; - -typedef void (GLAPIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid* data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid* data); -typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid** params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid* data); -typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERARBPROC) (GLuint buffer); -typedef GLvoid * (GLAPIENTRY * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERARBPROC) (GLenum target); - -#define glBindBufferARB GLEW_GET_FUN(__glewBindBufferARB) -#define glBufferDataARB GLEW_GET_FUN(__glewBufferDataARB) -#define glBufferSubDataARB GLEW_GET_FUN(__glewBufferSubDataARB) -#define glDeleteBuffersARB GLEW_GET_FUN(__glewDeleteBuffersARB) -#define glGenBuffersARB GLEW_GET_FUN(__glewGenBuffersARB) -#define glGetBufferParameterivARB GLEW_GET_FUN(__glewGetBufferParameterivARB) -#define glGetBufferPointervARB GLEW_GET_FUN(__glewGetBufferPointervARB) -#define glGetBufferSubDataARB GLEW_GET_FUN(__glewGetBufferSubDataARB) -#define glIsBufferARB GLEW_GET_FUN(__glewIsBufferARB) -#define glMapBufferARB GLEW_GET_FUN(__glewMapBufferARB) -#define glUnmapBufferARB GLEW_GET_FUN(__glewUnmapBufferARB) - -#define GLEW_ARB_vertex_buffer_object GLEW_GET_VAR(__GLEW_ARB_vertex_buffer_object) - -#endif /* GL_ARB_vertex_buffer_object */ - -/* ------------------------- GL_ARB_vertex_program ------------------------- */ - -#ifndef GL_ARB_vertex_program -#define GL_ARB_vertex_program 1 - -#define GL_COLOR_SUM_ARB 0x8458 -#define GL_VERTEX_PROGRAM_ARB 0x8620 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 -#define GL_PROGRAM_LENGTH_ARB 0x8627 -#define GL_PROGRAM_STRING_ARB 0x8628 -#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define GL_CURRENT_MATRIX_ARB 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B -#define GL_PROGRAM_BINDING_ARB 0x8677 -#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 -#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define GL_PROGRAM_FORMAT_ARB 0x8876 -#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 -#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 -#define GL_MATRIX0_ARB 0x88C0 -#define GL_MATRIX1_ARB 0x88C1 -#define GL_MATRIX2_ARB 0x88C2 -#define GL_MATRIX3_ARB 0x88C3 -#define GL_MATRIX4_ARB 0x88C4 -#define GL_MATRIX5_ARB 0x88C5 -#define GL_MATRIX6_ARB 0x88C6 -#define GL_MATRIX7_ARB 0x88C7 -#define GL_MATRIX8_ARB 0x88C8 -#define GL_MATRIX9_ARB 0x88C9 -#define GL_MATRIX10_ARB 0x88CA -#define GL_MATRIX11_ARB 0x88CB -#define GL_MATRIX12_ARB 0x88CC -#define GL_MATRIX13_ARB 0x88CD -#define GL_MATRIX14_ARB 0x88CE -#define GL_MATRIX15_ARB 0x88CF -#define GL_MATRIX16_ARB 0x88D0 -#define GL_MATRIX17_ARB 0x88D1 -#define GL_MATRIX18_ARB 0x88D2 -#define GL_MATRIX19_ARB 0x88D3 -#define GL_MATRIX20_ARB 0x88D4 -#define GL_MATRIX21_ARB 0x88D5 -#define GL_MATRIX22_ARB 0x88D6 -#define GL_MATRIX23_ARB 0x88D7 -#define GL_MATRIX24_ARB 0x88D8 -#define GL_MATRIX25_ARB 0x88D9 -#define GL_MATRIX26_ARB 0x88DA -#define GL_MATRIX27_ARB 0x88DB -#define GL_MATRIX28_ARB 0x88DC -#define GL_MATRIX29_ARB 0x88DD -#define GL_MATRIX30_ARB 0x88DE -#define GL_MATRIX31_ARB 0x88DF - -typedef void (GLAPIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint* programs); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint* programs); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void* string); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid** pointer); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMARBPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void* string); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer); - -#define glBindProgramARB GLEW_GET_FUN(__glewBindProgramARB) -#define glDeleteProgramsARB GLEW_GET_FUN(__glewDeleteProgramsARB) -#define glDisableVertexAttribArrayARB GLEW_GET_FUN(__glewDisableVertexAttribArrayARB) -#define glEnableVertexAttribArrayARB GLEW_GET_FUN(__glewEnableVertexAttribArrayARB) -#define glGenProgramsARB GLEW_GET_FUN(__glewGenProgramsARB) -#define glGetProgramEnvParameterdvARB GLEW_GET_FUN(__glewGetProgramEnvParameterdvARB) -#define glGetProgramEnvParameterfvARB GLEW_GET_FUN(__glewGetProgramEnvParameterfvARB) -#define glGetProgramLocalParameterdvARB GLEW_GET_FUN(__glewGetProgramLocalParameterdvARB) -#define glGetProgramLocalParameterfvARB GLEW_GET_FUN(__glewGetProgramLocalParameterfvARB) -#define glGetProgramStringARB GLEW_GET_FUN(__glewGetProgramStringARB) -#define glGetProgramivARB GLEW_GET_FUN(__glewGetProgramivARB) -#define glGetVertexAttribPointervARB GLEW_GET_FUN(__glewGetVertexAttribPointervARB) -#define glGetVertexAttribdvARB GLEW_GET_FUN(__glewGetVertexAttribdvARB) -#define glGetVertexAttribfvARB GLEW_GET_FUN(__glewGetVertexAttribfvARB) -#define glGetVertexAttribivARB GLEW_GET_FUN(__glewGetVertexAttribivARB) -#define glIsProgramARB GLEW_GET_FUN(__glewIsProgramARB) -#define glProgramEnvParameter4dARB GLEW_GET_FUN(__glewProgramEnvParameter4dARB) -#define glProgramEnvParameter4dvARB GLEW_GET_FUN(__glewProgramEnvParameter4dvARB) -#define glProgramEnvParameter4fARB GLEW_GET_FUN(__glewProgramEnvParameter4fARB) -#define glProgramEnvParameter4fvARB GLEW_GET_FUN(__glewProgramEnvParameter4fvARB) -#define glProgramLocalParameter4dARB GLEW_GET_FUN(__glewProgramLocalParameter4dARB) -#define glProgramLocalParameter4dvARB GLEW_GET_FUN(__glewProgramLocalParameter4dvARB) -#define glProgramLocalParameter4fARB GLEW_GET_FUN(__glewProgramLocalParameter4fARB) -#define glProgramLocalParameter4fvARB GLEW_GET_FUN(__glewProgramLocalParameter4fvARB) -#define glProgramStringARB GLEW_GET_FUN(__glewProgramStringARB) -#define glVertexAttrib1dARB GLEW_GET_FUN(__glewVertexAttrib1dARB) -#define glVertexAttrib1dvARB GLEW_GET_FUN(__glewVertexAttrib1dvARB) -#define glVertexAttrib1fARB GLEW_GET_FUN(__glewVertexAttrib1fARB) -#define glVertexAttrib1fvARB GLEW_GET_FUN(__glewVertexAttrib1fvARB) -#define glVertexAttrib1sARB GLEW_GET_FUN(__glewVertexAttrib1sARB) -#define glVertexAttrib1svARB GLEW_GET_FUN(__glewVertexAttrib1svARB) -#define glVertexAttrib2dARB GLEW_GET_FUN(__glewVertexAttrib2dARB) -#define glVertexAttrib2dvARB GLEW_GET_FUN(__glewVertexAttrib2dvARB) -#define glVertexAttrib2fARB GLEW_GET_FUN(__glewVertexAttrib2fARB) -#define glVertexAttrib2fvARB GLEW_GET_FUN(__glewVertexAttrib2fvARB) -#define glVertexAttrib2sARB GLEW_GET_FUN(__glewVertexAttrib2sARB) -#define glVertexAttrib2svARB GLEW_GET_FUN(__glewVertexAttrib2svARB) -#define glVertexAttrib3dARB GLEW_GET_FUN(__glewVertexAttrib3dARB) -#define glVertexAttrib3dvARB GLEW_GET_FUN(__glewVertexAttrib3dvARB) -#define glVertexAttrib3fARB GLEW_GET_FUN(__glewVertexAttrib3fARB) -#define glVertexAttrib3fvARB GLEW_GET_FUN(__glewVertexAttrib3fvARB) -#define glVertexAttrib3sARB GLEW_GET_FUN(__glewVertexAttrib3sARB) -#define glVertexAttrib3svARB GLEW_GET_FUN(__glewVertexAttrib3svARB) -#define glVertexAttrib4NbvARB GLEW_GET_FUN(__glewVertexAttrib4NbvARB) -#define glVertexAttrib4NivARB GLEW_GET_FUN(__glewVertexAttrib4NivARB) -#define glVertexAttrib4NsvARB GLEW_GET_FUN(__glewVertexAttrib4NsvARB) -#define glVertexAttrib4NubARB GLEW_GET_FUN(__glewVertexAttrib4NubARB) -#define glVertexAttrib4NubvARB GLEW_GET_FUN(__glewVertexAttrib4NubvARB) -#define glVertexAttrib4NuivARB GLEW_GET_FUN(__glewVertexAttrib4NuivARB) -#define glVertexAttrib4NusvARB GLEW_GET_FUN(__glewVertexAttrib4NusvARB) -#define glVertexAttrib4bvARB GLEW_GET_FUN(__glewVertexAttrib4bvARB) -#define glVertexAttrib4dARB GLEW_GET_FUN(__glewVertexAttrib4dARB) -#define glVertexAttrib4dvARB GLEW_GET_FUN(__glewVertexAttrib4dvARB) -#define glVertexAttrib4fARB GLEW_GET_FUN(__glewVertexAttrib4fARB) -#define glVertexAttrib4fvARB GLEW_GET_FUN(__glewVertexAttrib4fvARB) -#define glVertexAttrib4ivARB GLEW_GET_FUN(__glewVertexAttrib4ivARB) -#define glVertexAttrib4sARB GLEW_GET_FUN(__glewVertexAttrib4sARB) -#define glVertexAttrib4svARB GLEW_GET_FUN(__glewVertexAttrib4svARB) -#define glVertexAttrib4ubvARB GLEW_GET_FUN(__glewVertexAttrib4ubvARB) -#define glVertexAttrib4uivARB GLEW_GET_FUN(__glewVertexAttrib4uivARB) -#define glVertexAttrib4usvARB GLEW_GET_FUN(__glewVertexAttrib4usvARB) -#define glVertexAttribPointerARB GLEW_GET_FUN(__glewVertexAttribPointerARB) - -#define GLEW_ARB_vertex_program GLEW_GET_VAR(__GLEW_ARB_vertex_program) - -#endif /* GL_ARB_vertex_program */ - -/* -------------------------- GL_ARB_vertex_shader ------------------------- */ - -#ifndef GL_ARB_vertex_shader -#define GL_ARB_vertex_shader 1 - -#define GL_VERTEX_SHADER_ARB 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A - -typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB* name); -typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); -typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); - -#define glBindAttribLocationARB GLEW_GET_FUN(__glewBindAttribLocationARB) -#define glGetActiveAttribARB GLEW_GET_FUN(__glewGetActiveAttribARB) -#define glGetAttribLocationARB GLEW_GET_FUN(__glewGetAttribLocationARB) - -#define GLEW_ARB_vertex_shader GLEW_GET_VAR(__GLEW_ARB_vertex_shader) - -#endif /* GL_ARB_vertex_shader */ - -/* ------------------- GL_ARB_vertex_type_2_10_10_10_rev ------------------- */ - -#ifndef GL_ARB_vertex_type_2_10_10_10_rev -#define GL_ARB_vertex_type_2_10_10_10_rev 1 - -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_INT_2_10_10_10_REV 0x8D9F - -typedef void (GLAPIENTRY * PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (GLAPIENTRY * PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint* color); -typedef void (GLAPIENTRY * PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); -typedef void (GLAPIENTRY * PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint* color); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint* color); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint* value); - -#define glColorP3ui GLEW_GET_FUN(__glewColorP3ui) -#define glColorP3uiv GLEW_GET_FUN(__glewColorP3uiv) -#define glColorP4ui GLEW_GET_FUN(__glewColorP4ui) -#define glColorP4uiv GLEW_GET_FUN(__glewColorP4uiv) -#define glMultiTexCoordP1ui GLEW_GET_FUN(__glewMultiTexCoordP1ui) -#define glMultiTexCoordP1uiv GLEW_GET_FUN(__glewMultiTexCoordP1uiv) -#define glMultiTexCoordP2ui GLEW_GET_FUN(__glewMultiTexCoordP2ui) -#define glMultiTexCoordP2uiv GLEW_GET_FUN(__glewMultiTexCoordP2uiv) -#define glMultiTexCoordP3ui GLEW_GET_FUN(__glewMultiTexCoordP3ui) -#define glMultiTexCoordP3uiv GLEW_GET_FUN(__glewMultiTexCoordP3uiv) -#define glMultiTexCoordP4ui GLEW_GET_FUN(__glewMultiTexCoordP4ui) -#define glMultiTexCoordP4uiv GLEW_GET_FUN(__glewMultiTexCoordP4uiv) -#define glNormalP3ui GLEW_GET_FUN(__glewNormalP3ui) -#define glNormalP3uiv GLEW_GET_FUN(__glewNormalP3uiv) -#define glSecondaryColorP3ui GLEW_GET_FUN(__glewSecondaryColorP3ui) -#define glSecondaryColorP3uiv GLEW_GET_FUN(__glewSecondaryColorP3uiv) -#define glTexCoordP1ui GLEW_GET_FUN(__glewTexCoordP1ui) -#define glTexCoordP1uiv GLEW_GET_FUN(__glewTexCoordP1uiv) -#define glTexCoordP2ui GLEW_GET_FUN(__glewTexCoordP2ui) -#define glTexCoordP2uiv GLEW_GET_FUN(__glewTexCoordP2uiv) -#define glTexCoordP3ui GLEW_GET_FUN(__glewTexCoordP3ui) -#define glTexCoordP3uiv GLEW_GET_FUN(__glewTexCoordP3uiv) -#define glTexCoordP4ui GLEW_GET_FUN(__glewTexCoordP4ui) -#define glTexCoordP4uiv GLEW_GET_FUN(__glewTexCoordP4uiv) -#define glVertexAttribP1ui GLEW_GET_FUN(__glewVertexAttribP1ui) -#define glVertexAttribP1uiv GLEW_GET_FUN(__glewVertexAttribP1uiv) -#define glVertexAttribP2ui GLEW_GET_FUN(__glewVertexAttribP2ui) -#define glVertexAttribP2uiv GLEW_GET_FUN(__glewVertexAttribP2uiv) -#define glVertexAttribP3ui GLEW_GET_FUN(__glewVertexAttribP3ui) -#define glVertexAttribP3uiv GLEW_GET_FUN(__glewVertexAttribP3uiv) -#define glVertexAttribP4ui GLEW_GET_FUN(__glewVertexAttribP4ui) -#define glVertexAttribP4uiv GLEW_GET_FUN(__glewVertexAttribP4uiv) -#define glVertexP2ui GLEW_GET_FUN(__glewVertexP2ui) -#define glVertexP2uiv GLEW_GET_FUN(__glewVertexP2uiv) -#define glVertexP3ui GLEW_GET_FUN(__glewVertexP3ui) -#define glVertexP3uiv GLEW_GET_FUN(__glewVertexP3uiv) -#define glVertexP4ui GLEW_GET_FUN(__glewVertexP4ui) -#define glVertexP4uiv GLEW_GET_FUN(__glewVertexP4uiv) - -#define GLEW_ARB_vertex_type_2_10_10_10_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_2_10_10_10_rev) - -#endif /* GL_ARB_vertex_type_2_10_10_10_rev */ - -/* ------------------------- GL_ARB_viewport_array ------------------------- */ - -#ifndef GL_ARB_viewport_array -#define GL_ARB_viewport_array 1 - -#define GL_DEPTH_RANGE 0x0B70 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_MAX_VIEWPORTS 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE 0x825D -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F -#define GL_UNDEFINED_VERTEX 0x8260 -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F - -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd * v); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); -typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble* data); -typedef void (GLAPIENTRY * PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat* data); -typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint * v); -typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint * v); -typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat * v); -typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat * v); - -#define glDepthRangeArrayv GLEW_GET_FUN(__glewDepthRangeArrayv) -#define glDepthRangeIndexed GLEW_GET_FUN(__glewDepthRangeIndexed) -#define glGetDoublei_v GLEW_GET_FUN(__glewGetDoublei_v) -#define glGetFloati_v GLEW_GET_FUN(__glewGetFloati_v) -#define glScissorArrayv GLEW_GET_FUN(__glewScissorArrayv) -#define glScissorIndexed GLEW_GET_FUN(__glewScissorIndexed) -#define glScissorIndexedv GLEW_GET_FUN(__glewScissorIndexedv) -#define glViewportArrayv GLEW_GET_FUN(__glewViewportArrayv) -#define glViewportIndexedf GLEW_GET_FUN(__glewViewportIndexedf) -#define glViewportIndexedfv GLEW_GET_FUN(__glewViewportIndexedfv) - -#define GLEW_ARB_viewport_array GLEW_GET_VAR(__GLEW_ARB_viewport_array) - -#endif /* GL_ARB_viewport_array */ - -/* --------------------------- GL_ARB_window_pos --------------------------- */ - -#ifndef GL_ARB_window_pos -#define GL_ARB_window_pos 1 - -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVARBPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVARBPROC) (const GLshort* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVARBPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort* p); - -#define glWindowPos2dARB GLEW_GET_FUN(__glewWindowPos2dARB) -#define glWindowPos2dvARB GLEW_GET_FUN(__glewWindowPos2dvARB) -#define glWindowPos2fARB GLEW_GET_FUN(__glewWindowPos2fARB) -#define glWindowPos2fvARB GLEW_GET_FUN(__glewWindowPos2fvARB) -#define glWindowPos2iARB GLEW_GET_FUN(__glewWindowPos2iARB) -#define glWindowPos2ivARB GLEW_GET_FUN(__glewWindowPos2ivARB) -#define glWindowPos2sARB GLEW_GET_FUN(__glewWindowPos2sARB) -#define glWindowPos2svARB GLEW_GET_FUN(__glewWindowPos2svARB) -#define glWindowPos3dARB GLEW_GET_FUN(__glewWindowPos3dARB) -#define glWindowPos3dvARB GLEW_GET_FUN(__glewWindowPos3dvARB) -#define glWindowPos3fARB GLEW_GET_FUN(__glewWindowPos3fARB) -#define glWindowPos3fvARB GLEW_GET_FUN(__glewWindowPos3fvARB) -#define glWindowPos3iARB GLEW_GET_FUN(__glewWindowPos3iARB) -#define glWindowPos3ivARB GLEW_GET_FUN(__glewWindowPos3ivARB) -#define glWindowPos3sARB GLEW_GET_FUN(__glewWindowPos3sARB) -#define glWindowPos3svARB GLEW_GET_FUN(__glewWindowPos3svARB) - -#define GLEW_ARB_window_pos GLEW_GET_VAR(__GLEW_ARB_window_pos) - -#endif /* GL_ARB_window_pos */ - -/* ------------------------- GL_ATIX_point_sprites ------------------------- */ - -#ifndef GL_ATIX_point_sprites -#define GL_ATIX_point_sprites 1 - -#define GL_TEXTURE_POINT_MODE_ATIX 0x60B0 -#define GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1 -#define GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2 -#define GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3 -#define GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4 -#define GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5 - -#define GLEW_ATIX_point_sprites GLEW_GET_VAR(__GLEW_ATIX_point_sprites) - -#endif /* GL_ATIX_point_sprites */ - -/* ---------------------- GL_ATIX_texture_env_combine3 --------------------- */ - -#ifndef GL_ATIX_texture_env_combine3 -#define GL_ATIX_texture_env_combine3 1 - -#define GL_MODULATE_ADD_ATIX 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATIX 0x8745 -#define GL_MODULATE_SUBTRACT_ATIX 0x8746 - -#define GLEW_ATIX_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATIX_texture_env_combine3) - -#endif /* GL_ATIX_texture_env_combine3 */ - -/* ----------------------- GL_ATIX_texture_env_route ----------------------- */ - -#ifndef GL_ATIX_texture_env_route -#define GL_ATIX_texture_env_route 1 - -#define GL_SECONDARY_COLOR_ATIX 0x8747 -#define GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748 -#define GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749 - -#define GLEW_ATIX_texture_env_route GLEW_GET_VAR(__GLEW_ATIX_texture_env_route) - -#endif /* GL_ATIX_texture_env_route */ - -/* ---------------- GL_ATIX_vertex_shader_output_point_size ---------------- */ - -#ifndef GL_ATIX_vertex_shader_output_point_size -#define GL_ATIX_vertex_shader_output_point_size 1 - -#define GL_OUTPUT_POINT_SIZE_ATIX 0x610E - -#define GLEW_ATIX_vertex_shader_output_point_size GLEW_GET_VAR(__GLEW_ATIX_vertex_shader_output_point_size) - -#endif /* GL_ATIX_vertex_shader_output_point_size */ - -/* -------------------------- GL_ATI_draw_buffers -------------------------- */ - -#ifndef GL_ATI_draw_buffers -#define GL_ATI_draw_buffers 1 - -#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 -#define GL_DRAW_BUFFER0_ATI 0x8825 -#define GL_DRAW_BUFFER1_ATI 0x8826 -#define GL_DRAW_BUFFER2_ATI 0x8827 -#define GL_DRAW_BUFFER3_ATI 0x8828 -#define GL_DRAW_BUFFER4_ATI 0x8829 -#define GL_DRAW_BUFFER5_ATI 0x882A -#define GL_DRAW_BUFFER6_ATI 0x882B -#define GL_DRAW_BUFFER7_ATI 0x882C -#define GL_DRAW_BUFFER8_ATI 0x882D -#define GL_DRAW_BUFFER9_ATI 0x882E -#define GL_DRAW_BUFFER10_ATI 0x882F -#define GL_DRAW_BUFFER11_ATI 0x8830 -#define GL_DRAW_BUFFER12_ATI 0x8831 -#define GL_DRAW_BUFFER13_ATI 0x8832 -#define GL_DRAW_BUFFER14_ATI 0x8833 -#define GL_DRAW_BUFFER15_ATI 0x8834 - -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum* bufs); - -#define glDrawBuffersATI GLEW_GET_FUN(__glewDrawBuffersATI) - -#define GLEW_ATI_draw_buffers GLEW_GET_VAR(__GLEW_ATI_draw_buffers) - -#endif /* GL_ATI_draw_buffers */ - -/* -------------------------- GL_ATI_element_array ------------------------- */ - -#ifndef GL_ATI_element_array -#define GL_ATI_element_array 1 - -#define GL_ELEMENT_ARRAY_ATI 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A - -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); -typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void* pointer); - -#define glDrawElementArrayATI GLEW_GET_FUN(__glewDrawElementArrayATI) -#define glDrawRangeElementArrayATI GLEW_GET_FUN(__glewDrawRangeElementArrayATI) -#define glElementPointerATI GLEW_GET_FUN(__glewElementPointerATI) - -#define GLEW_ATI_element_array GLEW_GET_VAR(__GLEW_ATI_element_array) - -#endif /* GL_ATI_element_array */ - -/* ------------------------- GL_ATI_envmap_bumpmap ------------------------- */ - -#ifndef GL_ATI_envmap_bumpmap -#define GL_ATI_envmap_bumpmap 1 - -#define GL_BUMP_ROT_MATRIX_ATI 0x8775 -#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 -#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 -#define GL_BUMP_TEX_UNITS_ATI 0x8778 -#define GL_DUDV_ATI 0x8779 -#define GL_DU8DV8_ATI 0x877A -#define GL_BUMP_ENVMAP_ATI 0x877B -#define GL_BUMP_TARGET_ATI 0x877C - -typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); -typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); - -#define glGetTexBumpParameterfvATI GLEW_GET_FUN(__glewGetTexBumpParameterfvATI) -#define glGetTexBumpParameterivATI GLEW_GET_FUN(__glewGetTexBumpParameterivATI) -#define glTexBumpParameterfvATI GLEW_GET_FUN(__glewTexBumpParameterfvATI) -#define glTexBumpParameterivATI GLEW_GET_FUN(__glewTexBumpParameterivATI) - -#define GLEW_ATI_envmap_bumpmap GLEW_GET_VAR(__GLEW_ATI_envmap_bumpmap) - -#endif /* GL_ATI_envmap_bumpmap */ - -/* ------------------------- GL_ATI_fragment_shader ------------------------ */ - -#ifndef GL_ATI_fragment_shader -#define GL_ATI_fragment_shader 1 - -#define GL_RED_BIT_ATI 0x00000001 -#define GL_2X_BIT_ATI 0x00000001 -#define GL_4X_BIT_ATI 0x00000002 -#define GL_GREEN_BIT_ATI 0x00000002 -#define GL_COMP_BIT_ATI 0x00000002 -#define GL_BLUE_BIT_ATI 0x00000004 -#define GL_8X_BIT_ATI 0x00000004 -#define GL_NEGATE_BIT_ATI 0x00000004 -#define GL_BIAS_BIT_ATI 0x00000008 -#define GL_HALF_BIT_ATI 0x00000008 -#define GL_QUARTER_BIT_ATI 0x00000010 -#define GL_EIGHTH_BIT_ATI 0x00000020 -#define GL_SATURATE_BIT_ATI 0x00000040 -#define GL_FRAGMENT_SHADER_ATI 0x8920 -#define GL_REG_0_ATI 0x8921 -#define GL_REG_1_ATI 0x8922 -#define GL_REG_2_ATI 0x8923 -#define GL_REG_3_ATI 0x8924 -#define GL_REG_4_ATI 0x8925 -#define GL_REG_5_ATI 0x8926 -#define GL_CON_0_ATI 0x8941 -#define GL_CON_1_ATI 0x8942 -#define GL_CON_2_ATI 0x8943 -#define GL_CON_3_ATI 0x8944 -#define GL_CON_4_ATI 0x8945 -#define GL_CON_5_ATI 0x8946 -#define GL_CON_6_ATI 0x8947 -#define GL_CON_7_ATI 0x8948 -#define GL_MOV_ATI 0x8961 -#define GL_ADD_ATI 0x8963 -#define GL_MUL_ATI 0x8964 -#define GL_SUB_ATI 0x8965 -#define GL_DOT3_ATI 0x8966 -#define GL_DOT4_ATI 0x8967 -#define GL_MAD_ATI 0x8968 -#define GL_LERP_ATI 0x8969 -#define GL_CND_ATI 0x896A -#define GL_CND0_ATI 0x896B -#define GL_DOT2_ADD_ATI 0x896C -#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define GL_NUM_PASSES_ATI 0x8970 -#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define GL_SWIZZLE_STR_ATI 0x8976 -#define GL_SWIZZLE_STQ_ATI 0x8977 -#define GL_SWIZZLE_STR_DR_ATI 0x8978 -#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define GL_SWIZZLE_STRQ_ATI 0x897A -#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B - -typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (GLAPIENTRY * PFNGLBEGINFRAGMENTSHADERATIPROC) (void); -typedef void (GLAPIENTRY * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (GLAPIENTRY * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENDFRAGMENTSHADERATIPROC) (void); -typedef GLuint (GLAPIENTRY * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); -typedef void (GLAPIENTRY * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); -typedef void (GLAPIENTRY * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); -typedef void (GLAPIENTRY * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat* value); - -#define glAlphaFragmentOp1ATI GLEW_GET_FUN(__glewAlphaFragmentOp1ATI) -#define glAlphaFragmentOp2ATI GLEW_GET_FUN(__glewAlphaFragmentOp2ATI) -#define glAlphaFragmentOp3ATI GLEW_GET_FUN(__glewAlphaFragmentOp3ATI) -#define glBeginFragmentShaderATI GLEW_GET_FUN(__glewBeginFragmentShaderATI) -#define glBindFragmentShaderATI GLEW_GET_FUN(__glewBindFragmentShaderATI) -#define glColorFragmentOp1ATI GLEW_GET_FUN(__glewColorFragmentOp1ATI) -#define glColorFragmentOp2ATI GLEW_GET_FUN(__glewColorFragmentOp2ATI) -#define glColorFragmentOp3ATI GLEW_GET_FUN(__glewColorFragmentOp3ATI) -#define glDeleteFragmentShaderATI GLEW_GET_FUN(__glewDeleteFragmentShaderATI) -#define glEndFragmentShaderATI GLEW_GET_FUN(__glewEndFragmentShaderATI) -#define glGenFragmentShadersATI GLEW_GET_FUN(__glewGenFragmentShadersATI) -#define glPassTexCoordATI GLEW_GET_FUN(__glewPassTexCoordATI) -#define glSampleMapATI GLEW_GET_FUN(__glewSampleMapATI) -#define glSetFragmentShaderConstantATI GLEW_GET_FUN(__glewSetFragmentShaderConstantATI) - -#define GLEW_ATI_fragment_shader GLEW_GET_VAR(__GLEW_ATI_fragment_shader) - -#endif /* GL_ATI_fragment_shader */ - -/* ------------------------ GL_ATI_map_object_buffer ----------------------- */ - -#ifndef GL_ATI_map_object_buffer -#define GL_ATI_map_object_buffer 1 - -typedef void* (GLAPIENTRY * PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); - -#define glMapObjectBufferATI GLEW_GET_FUN(__glewMapObjectBufferATI) -#define glUnmapObjectBufferATI GLEW_GET_FUN(__glewUnmapObjectBufferATI) - -#define GLEW_ATI_map_object_buffer GLEW_GET_VAR(__GLEW_ATI_map_object_buffer) - -#endif /* GL_ATI_map_object_buffer */ - -/* ----------------------------- GL_ATI_meminfo ---------------------------- */ - -#ifndef GL_ATI_meminfo -#define GL_ATI_meminfo 1 - -#define GL_VBO_FREE_MEMORY_ATI 0x87FB -#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC -#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD - -#define GLEW_ATI_meminfo GLEW_GET_VAR(__GLEW_ATI_meminfo) - -#endif /* GL_ATI_meminfo */ - -/* -------------------------- GL_ATI_pn_triangles -------------------------- */ - -#ifndef GL_ATI_pn_triangles -#define GL_ATI_pn_triangles 1 - -#define GL_PN_TRIANGLES_ATI 0x87F0 -#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 -#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 -#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 -#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 -#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 -#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 -#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 -#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 - -typedef void (GLAPIENTRY * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); - -#define glPNTrianglesfATI GLEW_GET_FUN(__glewPNTrianglesfATI) -#define glPNTrianglesiATI GLEW_GET_FUN(__glewPNTrianglesiATI) - -#define GLEW_ATI_pn_triangles GLEW_GET_VAR(__GLEW_ATI_pn_triangles) - -#endif /* GL_ATI_pn_triangles */ - -/* ------------------------ GL_ATI_separate_stencil ------------------------ */ - -#ifndef GL_ATI_separate_stencil -#define GL_ATI_separate_stencil 1 - -#define GL_STENCIL_BACK_FUNC_ATI 0x8800 -#define GL_STENCIL_BACK_FAIL_ATI 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 - -typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); - -#define glStencilFuncSeparateATI GLEW_GET_FUN(__glewStencilFuncSeparateATI) -#define glStencilOpSeparateATI GLEW_GET_FUN(__glewStencilOpSeparateATI) - -#define GLEW_ATI_separate_stencil GLEW_GET_VAR(__GLEW_ATI_separate_stencil) - -#endif /* GL_ATI_separate_stencil */ - -/* ----------------------- GL_ATI_shader_texture_lod ----------------------- */ - -#ifndef GL_ATI_shader_texture_lod -#define GL_ATI_shader_texture_lod 1 - -#define GLEW_ATI_shader_texture_lod GLEW_GET_VAR(__GLEW_ATI_shader_texture_lod) - -#endif /* GL_ATI_shader_texture_lod */ - -/* ---------------------- GL_ATI_text_fragment_shader ---------------------- */ - -#ifndef GL_ATI_text_fragment_shader -#define GL_ATI_text_fragment_shader 1 - -#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 - -#define GLEW_ATI_text_fragment_shader GLEW_GET_VAR(__GLEW_ATI_text_fragment_shader) - -#endif /* GL_ATI_text_fragment_shader */ - -/* --------------------- GL_ATI_texture_compression_3dc -------------------- */ - -#ifndef GL_ATI_texture_compression_3dc -#define GL_ATI_texture_compression_3dc 1 - -#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 - -#define GLEW_ATI_texture_compression_3dc GLEW_GET_VAR(__GLEW_ATI_texture_compression_3dc) - -#endif /* GL_ATI_texture_compression_3dc */ - -/* ---------------------- GL_ATI_texture_env_combine3 ---------------------- */ - -#ifndef GL_ATI_texture_env_combine3 -#define GL_ATI_texture_env_combine3 1 - -#define GL_MODULATE_ADD_ATI 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 -#define GL_MODULATE_SUBTRACT_ATI 0x8746 - -#define GLEW_ATI_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATI_texture_env_combine3) - -#endif /* GL_ATI_texture_env_combine3 */ - -/* -------------------------- GL_ATI_texture_float ------------------------- */ - -#ifndef GL_ATI_texture_float -#define GL_ATI_texture_float 1 - -#define GL_RGBA_FLOAT32_ATI 0x8814 -#define GL_RGB_FLOAT32_ATI 0x8815 -#define GL_ALPHA_FLOAT32_ATI 0x8816 -#define GL_INTENSITY_FLOAT32_ATI 0x8817 -#define GL_LUMINANCE_FLOAT32_ATI 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 -#define GL_RGBA_FLOAT16_ATI 0x881A -#define GL_RGB_FLOAT16_ATI 0x881B -#define GL_ALPHA_FLOAT16_ATI 0x881C -#define GL_INTENSITY_FLOAT16_ATI 0x881D -#define GL_LUMINANCE_FLOAT16_ATI 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F - -#define GLEW_ATI_texture_float GLEW_GET_VAR(__GLEW_ATI_texture_float) - -#endif /* GL_ATI_texture_float */ - -/* ----------------------- GL_ATI_texture_mirror_once ---------------------- */ - -#ifndef GL_ATI_texture_mirror_once -#define GL_ATI_texture_mirror_once 1 - -#define GL_MIRROR_CLAMP_ATI 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 - -#define GLEW_ATI_texture_mirror_once GLEW_GET_VAR(__GLEW_ATI_texture_mirror_once) - -#endif /* GL_ATI_texture_mirror_once */ - -/* ----------------------- GL_ATI_vertex_array_object ---------------------- */ - -#ifndef GL_ATI_vertex_array_object -#define GL_ATI_vertex_array_object 1 - -#define GL_STATIC_ATI 0x8760 -#define GL_DYNAMIC_ATI 0x8761 -#define GL_PRESERVE_ATI 0x8762 -#define GL_DISCARD_ATI 0x8763 -#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 - -typedef void (GLAPIENTRY * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (GLAPIENTRY * PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); -typedef GLuint (GLAPIENTRY * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void* pointer, GLenum usage); -typedef void (GLAPIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void* pointer, GLenum preserve); -typedef void (GLAPIENTRY * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); - -#define glArrayObjectATI GLEW_GET_FUN(__glewArrayObjectATI) -#define glFreeObjectBufferATI GLEW_GET_FUN(__glewFreeObjectBufferATI) -#define glGetArrayObjectfvATI GLEW_GET_FUN(__glewGetArrayObjectfvATI) -#define glGetArrayObjectivATI GLEW_GET_FUN(__glewGetArrayObjectivATI) -#define glGetObjectBufferfvATI GLEW_GET_FUN(__glewGetObjectBufferfvATI) -#define glGetObjectBufferivATI GLEW_GET_FUN(__glewGetObjectBufferivATI) -#define glGetVariantArrayObjectfvATI GLEW_GET_FUN(__glewGetVariantArrayObjectfvATI) -#define glGetVariantArrayObjectivATI GLEW_GET_FUN(__glewGetVariantArrayObjectivATI) -#define glIsObjectBufferATI GLEW_GET_FUN(__glewIsObjectBufferATI) -#define glNewObjectBufferATI GLEW_GET_FUN(__glewNewObjectBufferATI) -#define glUpdateObjectBufferATI GLEW_GET_FUN(__glewUpdateObjectBufferATI) -#define glVariantArrayObjectATI GLEW_GET_FUN(__glewVariantArrayObjectATI) - -#define GLEW_ATI_vertex_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_array_object) - -#endif /* GL_ATI_vertex_array_object */ - -/* ------------------- GL_ATI_vertex_attrib_array_object ------------------- */ - -#ifndef GL_ATI_vertex_attrib_array_object -#define GL_ATI_vertex_attrib_array_object 1 - -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); - -#define glGetVertexAttribArrayObjectfvATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectfvATI) -#define glGetVertexAttribArrayObjectivATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectivATI) -#define glVertexAttribArrayObjectATI GLEW_GET_FUN(__glewVertexAttribArrayObjectATI) - -#define GLEW_ATI_vertex_attrib_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_attrib_array_object) - -#endif /* GL_ATI_vertex_attrib_array_object */ - -/* ------------------------- GL_ATI_vertex_streams ------------------------- */ - -#ifndef GL_ATI_vertex_streams -#define GL_ATI_vertex_streams 1 - -#define GL_MAX_VERTEX_STREAMS_ATI 0x876B -#define GL_VERTEX_SOURCE_ATI 0x876C -#define GL_VERTEX_STREAM0_ATI 0x876D -#define GL_VERTEX_STREAM1_ATI 0x876E -#define GL_VERTEX_STREAM2_ATI 0x876F -#define GL_VERTEX_STREAM3_ATI 0x8770 -#define GL_VERTEX_STREAM4_ATI 0x8771 -#define GL_VERTEX_STREAM5_ATI 0x8772 -#define GL_VERTEX_STREAM6_ATI 0x8773 -#define GL_VERTEX_STREAM7_ATI 0x8774 - -typedef void (GLAPIENTRY * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *v); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *v); - -#define glClientActiveVertexStreamATI GLEW_GET_FUN(__glewClientActiveVertexStreamATI) -#define glNormalStream3bATI GLEW_GET_FUN(__glewNormalStream3bATI) -#define glNormalStream3bvATI GLEW_GET_FUN(__glewNormalStream3bvATI) -#define glNormalStream3dATI GLEW_GET_FUN(__glewNormalStream3dATI) -#define glNormalStream3dvATI GLEW_GET_FUN(__glewNormalStream3dvATI) -#define glNormalStream3fATI GLEW_GET_FUN(__glewNormalStream3fATI) -#define glNormalStream3fvATI GLEW_GET_FUN(__glewNormalStream3fvATI) -#define glNormalStream3iATI GLEW_GET_FUN(__glewNormalStream3iATI) -#define glNormalStream3ivATI GLEW_GET_FUN(__glewNormalStream3ivATI) -#define glNormalStream3sATI GLEW_GET_FUN(__glewNormalStream3sATI) -#define glNormalStream3svATI GLEW_GET_FUN(__glewNormalStream3svATI) -#define glVertexBlendEnvfATI GLEW_GET_FUN(__glewVertexBlendEnvfATI) -#define glVertexBlendEnviATI GLEW_GET_FUN(__glewVertexBlendEnviATI) -#define glVertexStream2dATI GLEW_GET_FUN(__glewVertexStream2dATI) -#define glVertexStream2dvATI GLEW_GET_FUN(__glewVertexStream2dvATI) -#define glVertexStream2fATI GLEW_GET_FUN(__glewVertexStream2fATI) -#define glVertexStream2fvATI GLEW_GET_FUN(__glewVertexStream2fvATI) -#define glVertexStream2iATI GLEW_GET_FUN(__glewVertexStream2iATI) -#define glVertexStream2ivATI GLEW_GET_FUN(__glewVertexStream2ivATI) -#define glVertexStream2sATI GLEW_GET_FUN(__glewVertexStream2sATI) -#define glVertexStream2svATI GLEW_GET_FUN(__glewVertexStream2svATI) -#define glVertexStream3dATI GLEW_GET_FUN(__glewVertexStream3dATI) -#define glVertexStream3dvATI GLEW_GET_FUN(__glewVertexStream3dvATI) -#define glVertexStream3fATI GLEW_GET_FUN(__glewVertexStream3fATI) -#define glVertexStream3fvATI GLEW_GET_FUN(__glewVertexStream3fvATI) -#define glVertexStream3iATI GLEW_GET_FUN(__glewVertexStream3iATI) -#define glVertexStream3ivATI GLEW_GET_FUN(__glewVertexStream3ivATI) -#define glVertexStream3sATI GLEW_GET_FUN(__glewVertexStream3sATI) -#define glVertexStream3svATI GLEW_GET_FUN(__glewVertexStream3svATI) -#define glVertexStream4dATI GLEW_GET_FUN(__glewVertexStream4dATI) -#define glVertexStream4dvATI GLEW_GET_FUN(__glewVertexStream4dvATI) -#define glVertexStream4fATI GLEW_GET_FUN(__glewVertexStream4fATI) -#define glVertexStream4fvATI GLEW_GET_FUN(__glewVertexStream4fvATI) -#define glVertexStream4iATI GLEW_GET_FUN(__glewVertexStream4iATI) -#define glVertexStream4ivATI GLEW_GET_FUN(__glewVertexStream4ivATI) -#define glVertexStream4sATI GLEW_GET_FUN(__glewVertexStream4sATI) -#define glVertexStream4svATI GLEW_GET_FUN(__glewVertexStream4svATI) - -#define GLEW_ATI_vertex_streams GLEW_GET_VAR(__GLEW_ATI_vertex_streams) - -#endif /* GL_ATI_vertex_streams */ - -/* --------------------------- GL_EXT_422_pixels --------------------------- */ - -#ifndef GL_EXT_422_pixels -#define GL_EXT_422_pixels 1 - -#define GL_422_EXT 0x80CC -#define GL_422_REV_EXT 0x80CD -#define GL_422_AVERAGE_EXT 0x80CE -#define GL_422_REV_AVERAGE_EXT 0x80CF - -#define GLEW_EXT_422_pixels GLEW_GET_VAR(__GLEW_EXT_422_pixels) - -#endif /* GL_EXT_422_pixels */ - -/* ---------------------------- GL_EXT_Cg_shader --------------------------- */ - -#ifndef GL_EXT_Cg_shader -#define GL_EXT_Cg_shader 1 - -#define GL_CG_VERTEX_SHADER_EXT 0x890E -#define GL_CG_FRAGMENT_SHADER_EXT 0x890F - -#define GLEW_EXT_Cg_shader GLEW_GET_VAR(__GLEW_EXT_Cg_shader) - -#endif /* GL_EXT_Cg_shader */ - -/* ------------------------------ GL_EXT_abgr ------------------------------ */ - -#ifndef GL_EXT_abgr -#define GL_EXT_abgr 1 - -#define GL_ABGR_EXT 0x8000 - -#define GLEW_EXT_abgr GLEW_GET_VAR(__GLEW_EXT_abgr) - -#endif /* GL_EXT_abgr */ - -/* ------------------------------ GL_EXT_bgra ------------------------------ */ - -#ifndef GL_EXT_bgra -#define GL_EXT_bgra 1 - -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 - -#define GLEW_EXT_bgra GLEW_GET_VAR(__GLEW_EXT_bgra) - -#endif /* GL_EXT_bgra */ - -/* ------------------------ GL_EXT_bindable_uniform ------------------------ */ - -#ifndef GL_EXT_bindable_uniform -#define GL_EXT_bindable_uniform 1 - -#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 -#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 -#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 -#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED -#define GL_UNIFORM_BUFFER_EXT 0x8DEE -#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF - -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); -typedef GLintptr (GLAPIENTRY * PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); -typedef void (GLAPIENTRY * PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); - -#define glGetUniformBufferSizeEXT GLEW_GET_FUN(__glewGetUniformBufferSizeEXT) -#define glGetUniformOffsetEXT GLEW_GET_FUN(__glewGetUniformOffsetEXT) -#define glUniformBufferEXT GLEW_GET_FUN(__glewUniformBufferEXT) - -#define GLEW_EXT_bindable_uniform GLEW_GET_VAR(__GLEW_EXT_bindable_uniform) - -#endif /* GL_EXT_bindable_uniform */ - -/* --------------------------- GL_EXT_blend_color -------------------------- */ - -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 - -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 - -typedef void (GLAPIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); - -#define glBlendColorEXT GLEW_GET_FUN(__glewBlendColorEXT) - -#define GLEW_EXT_blend_color GLEW_GET_VAR(__GLEW_EXT_blend_color) - -#endif /* GL_EXT_blend_color */ - -/* --------------------- GL_EXT_blend_equation_separate -------------------- */ - -#ifndef GL_EXT_blend_equation_separate -#define GL_EXT_blend_equation_separate 1 - -#define GL_BLEND_EQUATION_RGB_EXT 0x8009 -#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); - -#define glBlendEquationSeparateEXT GLEW_GET_FUN(__glewBlendEquationSeparateEXT) - -#define GLEW_EXT_blend_equation_separate GLEW_GET_VAR(__GLEW_EXT_blend_equation_separate) - -#endif /* GL_EXT_blend_equation_separate */ - -/* ----------------------- GL_EXT_blend_func_separate ---------------------- */ - -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 - -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB - -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); - -#define glBlendFuncSeparateEXT GLEW_GET_FUN(__glewBlendFuncSeparateEXT) - -#define GLEW_EXT_blend_func_separate GLEW_GET_VAR(__GLEW_EXT_blend_func_separate) - -#endif /* GL_EXT_blend_func_separate */ - -/* ------------------------- GL_EXT_blend_logic_op ------------------------- */ - -#ifndef GL_EXT_blend_logic_op -#define GL_EXT_blend_logic_op 1 - -#define GLEW_EXT_blend_logic_op GLEW_GET_VAR(__GLEW_EXT_blend_logic_op) - -#endif /* GL_EXT_blend_logic_op */ - -/* -------------------------- GL_EXT_blend_minmax -------------------------- */ - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 - -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_BLEND_EQUATION_EXT 0x8009 - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); - -#define glBlendEquationEXT GLEW_GET_FUN(__glewBlendEquationEXT) - -#define GLEW_EXT_blend_minmax GLEW_GET_VAR(__GLEW_EXT_blend_minmax) - -#endif /* GL_EXT_blend_minmax */ - -/* ------------------------- GL_EXT_blend_subtract ------------------------- */ - -#ifndef GL_EXT_blend_subtract -#define GL_EXT_blend_subtract 1 - -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B - -#define GLEW_EXT_blend_subtract GLEW_GET_VAR(__GLEW_EXT_blend_subtract) - -#endif /* GL_EXT_blend_subtract */ - -/* ------------------------ GL_EXT_clip_volume_hint ------------------------ */ - -#ifndef GL_EXT_clip_volume_hint -#define GL_EXT_clip_volume_hint 1 - -#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 - -#define GLEW_EXT_clip_volume_hint GLEW_GET_VAR(__GLEW_EXT_clip_volume_hint) - -#endif /* GL_EXT_clip_volume_hint */ - -/* ------------------------------ GL_EXT_cmyka ----------------------------- */ - -#ifndef GL_EXT_cmyka -#define GL_EXT_cmyka 1 - -#define GL_CMYK_EXT 0x800C -#define GL_CMYKA_EXT 0x800D -#define GL_PACK_CMYK_HINT_EXT 0x800E -#define GL_UNPACK_CMYK_HINT_EXT 0x800F - -#define GLEW_EXT_cmyka GLEW_GET_VAR(__GLEW_EXT_cmyka) - -#endif /* GL_EXT_cmyka */ - -/* ------------------------- GL_EXT_color_subtable ------------------------- */ - -#ifndef GL_EXT_color_subtable -#define GL_EXT_color_subtable 1 - -typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void* data); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); - -#define glColorSubTableEXT GLEW_GET_FUN(__glewColorSubTableEXT) -#define glCopyColorSubTableEXT GLEW_GET_FUN(__glewCopyColorSubTableEXT) - -#define GLEW_EXT_color_subtable GLEW_GET_VAR(__GLEW_EXT_color_subtable) - -#endif /* GL_EXT_color_subtable */ - -/* ---------------------- GL_EXT_compiled_vertex_array --------------------- */ - -#ifndef GL_EXT_compiled_vertex_array -#define GL_EXT_compiled_vertex_array 1 - -#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 -#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 - -typedef void (GLAPIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); - -#define glLockArraysEXT GLEW_GET_FUN(__glewLockArraysEXT) -#define glUnlockArraysEXT GLEW_GET_FUN(__glewUnlockArraysEXT) - -#define GLEW_EXT_compiled_vertex_array GLEW_GET_VAR(__GLEW_EXT_compiled_vertex_array) - -#endif /* GL_EXT_compiled_vertex_array */ - -/* --------------------------- GL_EXT_convolution -------------------------- */ - -#ifndef GL_EXT_convolution -#define GL_EXT_convolution 1 - -#define GL_CONVOLUTION_1D_EXT 0x8010 -#define GL_CONVOLUTION_2D_EXT 0x8011 -#define GL_SEPARABLE_2D_EXT 0x8012 -#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define GL_REDUCE_EXT 0x8016 -#define GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 - -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void* image); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void* row, void* column, void* span); -typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* row, const void* column); - -#define glConvolutionFilter1DEXT GLEW_GET_FUN(__glewConvolutionFilter1DEXT) -#define glConvolutionFilter2DEXT GLEW_GET_FUN(__glewConvolutionFilter2DEXT) -#define glConvolutionParameterfEXT GLEW_GET_FUN(__glewConvolutionParameterfEXT) -#define glConvolutionParameterfvEXT GLEW_GET_FUN(__glewConvolutionParameterfvEXT) -#define glConvolutionParameteriEXT GLEW_GET_FUN(__glewConvolutionParameteriEXT) -#define glConvolutionParameterivEXT GLEW_GET_FUN(__glewConvolutionParameterivEXT) -#define glCopyConvolutionFilter1DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter1DEXT) -#define glCopyConvolutionFilter2DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter2DEXT) -#define glGetConvolutionFilterEXT GLEW_GET_FUN(__glewGetConvolutionFilterEXT) -#define glGetConvolutionParameterfvEXT GLEW_GET_FUN(__glewGetConvolutionParameterfvEXT) -#define glGetConvolutionParameterivEXT GLEW_GET_FUN(__glewGetConvolutionParameterivEXT) -#define glGetSeparableFilterEXT GLEW_GET_FUN(__glewGetSeparableFilterEXT) -#define glSeparableFilter2DEXT GLEW_GET_FUN(__glewSeparableFilter2DEXT) - -#define GLEW_EXT_convolution GLEW_GET_VAR(__GLEW_EXT_convolution) - -#endif /* GL_EXT_convolution */ - -/* ------------------------ GL_EXT_coordinate_frame ------------------------ */ - -#ifndef GL_EXT_coordinate_frame -#define GL_EXT_coordinate_frame 1 - -#define GL_TANGENT_ARRAY_EXT 0x8439 -#define GL_BINORMAL_ARRAY_EXT 0x843A -#define GL_CURRENT_TANGENT_EXT 0x843B -#define GL_CURRENT_BINORMAL_EXT 0x843C -#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define GL_MAP1_TANGENT_EXT 0x8444 -#define GL_MAP2_TANGENT_EXT 0x8445 -#define GL_MAP1_BINORMAL_EXT 0x8446 -#define GL_MAP2_BINORMAL_EXT 0x8447 - -typedef void (GLAPIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, void* pointer); -typedef void (GLAPIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, void* pointer); - -#define glBinormalPointerEXT GLEW_GET_FUN(__glewBinormalPointerEXT) -#define glTangentPointerEXT GLEW_GET_FUN(__glewTangentPointerEXT) - -#define GLEW_EXT_coordinate_frame GLEW_GET_VAR(__GLEW_EXT_coordinate_frame) - -#endif /* GL_EXT_coordinate_frame */ - -/* -------------------------- GL_EXT_copy_texture -------------------------- */ - -#ifndef GL_EXT_copy_texture -#define GL_EXT_copy_texture 1 - -typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); - -#define glCopyTexImage1DEXT GLEW_GET_FUN(__glewCopyTexImage1DEXT) -#define glCopyTexImage2DEXT GLEW_GET_FUN(__glewCopyTexImage2DEXT) -#define glCopyTexSubImage1DEXT GLEW_GET_FUN(__glewCopyTexSubImage1DEXT) -#define glCopyTexSubImage2DEXT GLEW_GET_FUN(__glewCopyTexSubImage2DEXT) -#define glCopyTexSubImage3DEXT GLEW_GET_FUN(__glewCopyTexSubImage3DEXT) - -#define GLEW_EXT_copy_texture GLEW_GET_VAR(__GLEW_EXT_copy_texture) - -#endif /* GL_EXT_copy_texture */ - -/* --------------------------- GL_EXT_cull_vertex -------------------------- */ - -#ifndef GL_EXT_cull_vertex -#define GL_EXT_cull_vertex 1 - -#define GL_CULL_VERTEX_EXT 0x81AA -#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB -#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC - -typedef void (GLAPIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params); - -#define glCullParameterdvEXT GLEW_GET_FUN(__glewCullParameterdvEXT) -#define glCullParameterfvEXT GLEW_GET_FUN(__glewCullParameterfvEXT) - -#define GLEW_EXT_cull_vertex GLEW_GET_VAR(__GLEW_EXT_cull_vertex) - -#endif /* GL_EXT_cull_vertex */ - -/* ------------------------ GL_EXT_depth_bounds_test ----------------------- */ - -#ifndef GL_EXT_depth_bounds_test -#define GL_EXT_depth_bounds_test 1 - -#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 -#define GL_DEPTH_BOUNDS_EXT 0x8891 - -typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); - -#define glDepthBoundsEXT GLEW_GET_FUN(__glewDepthBoundsEXT) - -#define GLEW_EXT_depth_bounds_test GLEW_GET_VAR(__GLEW_EXT_depth_bounds_test) - -#endif /* GL_EXT_depth_bounds_test */ - -/* ----------------------- GL_EXT_direct_state_access ---------------------- */ - -#ifndef GL_EXT_direct_state_access -#define GL_EXT_direct_state_access 1 - -#define GL_PROGRAM_MATRIX_EXT 0x8E2D -#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E -#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F - -typedef void (GLAPIENTRY * PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); -typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); -typedef void (GLAPIENTRY * PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); -typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (GLAPIENTRY * PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); -typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, void* img); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, void* img); -typedef void (GLAPIENTRY * PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void* pixels); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void** params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void* data); -typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void* string); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid** params); -typedef void (GLAPIENTRY * PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, GLvoid** params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void* pixels); -typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLvoid** param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, GLvoid** param); -typedef GLvoid * (GLAPIENTRY * PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); -typedef GLvoid * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GLAPIENTRY * PFNGLMATRIXFRUSTUMEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum matrixMode); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXORTHOEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); -typedef void (GLAPIENTRY * PFNGLMATRIXPOPEXTPROC) (GLenum matrixMode); -typedef void (GLAPIENTRY * PFNGLMATRIXPUSHEXTPROC) (GLenum matrixMode); -typedef void (GLAPIENTRY * PFNGLMATRIXROTATEDEXTPROC) (GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLMATRIXROTATEFEXTPROC) (GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLMATRIXSCALEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLMATRIXSCALEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void* pointer); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* param); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* param); -typedef void (GLAPIENTRY * PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void* data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void* data); -typedef void (GLAPIENTRY * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void* string); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat* param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* param); -typedef void (GLAPIENTRY * PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); - -#define glBindMultiTextureEXT GLEW_GET_FUN(__glewBindMultiTextureEXT) -#define glCheckNamedFramebufferStatusEXT GLEW_GET_FUN(__glewCheckNamedFramebufferStatusEXT) -#define glClientAttribDefaultEXT GLEW_GET_FUN(__glewClientAttribDefaultEXT) -#define glCompressedMultiTexImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage1DEXT) -#define glCompressedMultiTexImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage2DEXT) -#define glCompressedMultiTexImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage3DEXT) -#define glCompressedMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage1DEXT) -#define glCompressedMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage2DEXT) -#define glCompressedMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage3DEXT) -#define glCompressedTextureImage1DEXT GLEW_GET_FUN(__glewCompressedTextureImage1DEXT) -#define glCompressedTextureImage2DEXT GLEW_GET_FUN(__glewCompressedTextureImage2DEXT) -#define glCompressedTextureImage3DEXT GLEW_GET_FUN(__glewCompressedTextureImage3DEXT) -#define glCompressedTextureSubImage1DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage1DEXT) -#define glCompressedTextureSubImage2DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage2DEXT) -#define glCompressedTextureSubImage3DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage3DEXT) -#define glCopyMultiTexImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexImage1DEXT) -#define glCopyMultiTexImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexImage2DEXT) -#define glCopyMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage1DEXT) -#define glCopyMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage2DEXT) -#define glCopyMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage3DEXT) -#define glCopyTextureImage1DEXT GLEW_GET_FUN(__glewCopyTextureImage1DEXT) -#define glCopyTextureImage2DEXT GLEW_GET_FUN(__glewCopyTextureImage2DEXT) -#define glCopyTextureSubImage1DEXT GLEW_GET_FUN(__glewCopyTextureSubImage1DEXT) -#define glCopyTextureSubImage2DEXT GLEW_GET_FUN(__glewCopyTextureSubImage2DEXT) -#define glCopyTextureSubImage3DEXT GLEW_GET_FUN(__glewCopyTextureSubImage3DEXT) -#define glDisableClientStateIndexedEXT GLEW_GET_FUN(__glewDisableClientStateIndexedEXT) -#define glDisableClientStateiEXT GLEW_GET_FUN(__glewDisableClientStateiEXT) -#define glDisableVertexArrayAttribEXT GLEW_GET_FUN(__glewDisableVertexArrayAttribEXT) -#define glDisableVertexArrayEXT GLEW_GET_FUN(__glewDisableVertexArrayEXT) -#define glEnableClientStateIndexedEXT GLEW_GET_FUN(__glewEnableClientStateIndexedEXT) -#define glEnableClientStateiEXT GLEW_GET_FUN(__glewEnableClientStateiEXT) -#define glEnableVertexArrayAttribEXT GLEW_GET_FUN(__glewEnableVertexArrayAttribEXT) -#define glEnableVertexArrayEXT GLEW_GET_FUN(__glewEnableVertexArrayEXT) -#define glFlushMappedNamedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedNamedBufferRangeEXT) -#define glFramebufferDrawBufferEXT GLEW_GET_FUN(__glewFramebufferDrawBufferEXT) -#define glFramebufferDrawBuffersEXT GLEW_GET_FUN(__glewFramebufferDrawBuffersEXT) -#define glFramebufferReadBufferEXT GLEW_GET_FUN(__glewFramebufferReadBufferEXT) -#define glGenerateMultiTexMipmapEXT GLEW_GET_FUN(__glewGenerateMultiTexMipmapEXT) -#define glGenerateTextureMipmapEXT GLEW_GET_FUN(__glewGenerateTextureMipmapEXT) -#define glGetCompressedMultiTexImageEXT GLEW_GET_FUN(__glewGetCompressedMultiTexImageEXT) -#define glGetCompressedTextureImageEXT GLEW_GET_FUN(__glewGetCompressedTextureImageEXT) -#define glGetDoubleIndexedvEXT GLEW_GET_FUN(__glewGetDoubleIndexedvEXT) -#define glGetDoublei_vEXT GLEW_GET_FUN(__glewGetDoublei_vEXT) -#define glGetFloatIndexedvEXT GLEW_GET_FUN(__glewGetFloatIndexedvEXT) -#define glGetFloati_vEXT GLEW_GET_FUN(__glewGetFloati_vEXT) -#define glGetFramebufferParameterivEXT GLEW_GET_FUN(__glewGetFramebufferParameterivEXT) -#define glGetMultiTexEnvfvEXT GLEW_GET_FUN(__glewGetMultiTexEnvfvEXT) -#define glGetMultiTexEnvivEXT GLEW_GET_FUN(__glewGetMultiTexEnvivEXT) -#define glGetMultiTexGendvEXT GLEW_GET_FUN(__glewGetMultiTexGendvEXT) -#define glGetMultiTexGenfvEXT GLEW_GET_FUN(__glewGetMultiTexGenfvEXT) -#define glGetMultiTexGenivEXT GLEW_GET_FUN(__glewGetMultiTexGenivEXT) -#define glGetMultiTexImageEXT GLEW_GET_FUN(__glewGetMultiTexImageEXT) -#define glGetMultiTexLevelParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterfvEXT) -#define glGetMultiTexLevelParameterivEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterivEXT) -#define glGetMultiTexParameterIivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIivEXT) -#define glGetMultiTexParameterIuivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIuivEXT) -#define glGetMultiTexParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexParameterfvEXT) -#define glGetMultiTexParameterivEXT GLEW_GET_FUN(__glewGetMultiTexParameterivEXT) -#define glGetNamedBufferParameterivEXT GLEW_GET_FUN(__glewGetNamedBufferParameterivEXT) -#define glGetNamedBufferPointervEXT GLEW_GET_FUN(__glewGetNamedBufferPointervEXT) -#define glGetNamedBufferSubDataEXT GLEW_GET_FUN(__glewGetNamedBufferSubDataEXT) -#define glGetNamedFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameterivEXT) -#define glGetNamedProgramLocalParameterIivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIivEXT) -#define glGetNamedProgramLocalParameterIuivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIuivEXT) -#define glGetNamedProgramLocalParameterdvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterdvEXT) -#define glGetNamedProgramLocalParameterfvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterfvEXT) -#define glGetNamedProgramStringEXT GLEW_GET_FUN(__glewGetNamedProgramStringEXT) -#define glGetNamedProgramivEXT GLEW_GET_FUN(__glewGetNamedProgramivEXT) -#define glGetNamedRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetNamedRenderbufferParameterivEXT) -#define glGetPointerIndexedvEXT GLEW_GET_FUN(__glewGetPointerIndexedvEXT) -#define glGetPointeri_vEXT GLEW_GET_FUN(__glewGetPointeri_vEXT) -#define glGetTextureImageEXT GLEW_GET_FUN(__glewGetTextureImageEXT) -#define glGetTextureLevelParameterfvEXT GLEW_GET_FUN(__glewGetTextureLevelParameterfvEXT) -#define glGetTextureLevelParameterivEXT GLEW_GET_FUN(__glewGetTextureLevelParameterivEXT) -#define glGetTextureParameterIivEXT GLEW_GET_FUN(__glewGetTextureParameterIivEXT) -#define glGetTextureParameterIuivEXT GLEW_GET_FUN(__glewGetTextureParameterIuivEXT) -#define glGetTextureParameterfvEXT GLEW_GET_FUN(__glewGetTextureParameterfvEXT) -#define glGetTextureParameterivEXT GLEW_GET_FUN(__glewGetTextureParameterivEXT) -#define glGetVertexArrayIntegeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayIntegeri_vEXT) -#define glGetVertexArrayIntegervEXT GLEW_GET_FUN(__glewGetVertexArrayIntegervEXT) -#define glGetVertexArrayPointeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayPointeri_vEXT) -#define glGetVertexArrayPointervEXT GLEW_GET_FUN(__glewGetVertexArrayPointervEXT) -#define glMapNamedBufferEXT GLEW_GET_FUN(__glewMapNamedBufferEXT) -#define glMapNamedBufferRangeEXT GLEW_GET_FUN(__glewMapNamedBufferRangeEXT) -#define glMatrixFrustumEXT GLEW_GET_FUN(__glewMatrixFrustumEXT) -#define glMatrixLoadIdentityEXT GLEW_GET_FUN(__glewMatrixLoadIdentityEXT) -#define glMatrixLoadTransposedEXT GLEW_GET_FUN(__glewMatrixLoadTransposedEXT) -#define glMatrixLoadTransposefEXT GLEW_GET_FUN(__glewMatrixLoadTransposefEXT) -#define glMatrixLoaddEXT GLEW_GET_FUN(__glewMatrixLoaddEXT) -#define glMatrixLoadfEXT GLEW_GET_FUN(__glewMatrixLoadfEXT) -#define glMatrixMultTransposedEXT GLEW_GET_FUN(__glewMatrixMultTransposedEXT) -#define glMatrixMultTransposefEXT GLEW_GET_FUN(__glewMatrixMultTransposefEXT) -#define glMatrixMultdEXT GLEW_GET_FUN(__glewMatrixMultdEXT) -#define glMatrixMultfEXT GLEW_GET_FUN(__glewMatrixMultfEXT) -#define glMatrixOrthoEXT GLEW_GET_FUN(__glewMatrixOrthoEXT) -#define glMatrixPopEXT GLEW_GET_FUN(__glewMatrixPopEXT) -#define glMatrixPushEXT GLEW_GET_FUN(__glewMatrixPushEXT) -#define glMatrixRotatedEXT GLEW_GET_FUN(__glewMatrixRotatedEXT) -#define glMatrixRotatefEXT GLEW_GET_FUN(__glewMatrixRotatefEXT) -#define glMatrixScaledEXT GLEW_GET_FUN(__glewMatrixScaledEXT) -#define glMatrixScalefEXT GLEW_GET_FUN(__glewMatrixScalefEXT) -#define glMatrixTranslatedEXT GLEW_GET_FUN(__glewMatrixTranslatedEXT) -#define glMatrixTranslatefEXT GLEW_GET_FUN(__glewMatrixTranslatefEXT) -#define glMultiTexBufferEXT GLEW_GET_FUN(__glewMultiTexBufferEXT) -#define glMultiTexCoordPointerEXT GLEW_GET_FUN(__glewMultiTexCoordPointerEXT) -#define glMultiTexEnvfEXT GLEW_GET_FUN(__glewMultiTexEnvfEXT) -#define glMultiTexEnvfvEXT GLEW_GET_FUN(__glewMultiTexEnvfvEXT) -#define glMultiTexEnviEXT GLEW_GET_FUN(__glewMultiTexEnviEXT) -#define glMultiTexEnvivEXT GLEW_GET_FUN(__glewMultiTexEnvivEXT) -#define glMultiTexGendEXT GLEW_GET_FUN(__glewMultiTexGendEXT) -#define glMultiTexGendvEXT GLEW_GET_FUN(__glewMultiTexGendvEXT) -#define glMultiTexGenfEXT GLEW_GET_FUN(__glewMultiTexGenfEXT) -#define glMultiTexGenfvEXT GLEW_GET_FUN(__glewMultiTexGenfvEXT) -#define glMultiTexGeniEXT GLEW_GET_FUN(__glewMultiTexGeniEXT) -#define glMultiTexGenivEXT GLEW_GET_FUN(__glewMultiTexGenivEXT) -#define glMultiTexImage1DEXT GLEW_GET_FUN(__glewMultiTexImage1DEXT) -#define glMultiTexImage2DEXT GLEW_GET_FUN(__glewMultiTexImage2DEXT) -#define glMultiTexImage3DEXT GLEW_GET_FUN(__glewMultiTexImage3DEXT) -#define glMultiTexParameterIivEXT GLEW_GET_FUN(__glewMultiTexParameterIivEXT) -#define glMultiTexParameterIuivEXT GLEW_GET_FUN(__glewMultiTexParameterIuivEXT) -#define glMultiTexParameterfEXT GLEW_GET_FUN(__glewMultiTexParameterfEXT) -#define glMultiTexParameterfvEXT GLEW_GET_FUN(__glewMultiTexParameterfvEXT) -#define glMultiTexParameteriEXT GLEW_GET_FUN(__glewMultiTexParameteriEXT) -#define glMultiTexParameterivEXT GLEW_GET_FUN(__glewMultiTexParameterivEXT) -#define glMultiTexRenderbufferEXT GLEW_GET_FUN(__glewMultiTexRenderbufferEXT) -#define glMultiTexSubImage1DEXT GLEW_GET_FUN(__glewMultiTexSubImage1DEXT) -#define glMultiTexSubImage2DEXT GLEW_GET_FUN(__glewMultiTexSubImage2DEXT) -#define glMultiTexSubImage3DEXT GLEW_GET_FUN(__glewMultiTexSubImage3DEXT) -#define glNamedBufferDataEXT GLEW_GET_FUN(__glewNamedBufferDataEXT) -#define glNamedBufferSubDataEXT GLEW_GET_FUN(__glewNamedBufferSubDataEXT) -#define glNamedCopyBufferSubDataEXT GLEW_GET_FUN(__glewNamedCopyBufferSubDataEXT) -#define glNamedFramebufferRenderbufferEXT GLEW_GET_FUN(__glewNamedFramebufferRenderbufferEXT) -#define glNamedFramebufferTexture1DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture1DEXT) -#define glNamedFramebufferTexture2DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture2DEXT) -#define glNamedFramebufferTexture3DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture3DEXT) -#define glNamedFramebufferTextureEXT GLEW_GET_FUN(__glewNamedFramebufferTextureEXT) -#define glNamedFramebufferTextureFaceEXT GLEW_GET_FUN(__glewNamedFramebufferTextureFaceEXT) -#define glNamedFramebufferTextureLayerEXT GLEW_GET_FUN(__glewNamedFramebufferTextureLayerEXT) -#define glNamedProgramLocalParameter4dEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dEXT) -#define glNamedProgramLocalParameter4dvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dvEXT) -#define glNamedProgramLocalParameter4fEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fEXT) -#define glNamedProgramLocalParameter4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fvEXT) -#define glNamedProgramLocalParameterI4iEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4iEXT) -#define glNamedProgramLocalParameterI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4ivEXT) -#define glNamedProgramLocalParameterI4uiEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uiEXT) -#define glNamedProgramLocalParameterI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uivEXT) -#define glNamedProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameters4fvEXT) -#define glNamedProgramLocalParametersI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4ivEXT) -#define glNamedProgramLocalParametersI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4uivEXT) -#define glNamedProgramStringEXT GLEW_GET_FUN(__glewNamedProgramStringEXT) -#define glNamedRenderbufferStorageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageEXT) -#define glNamedRenderbufferStorageMultisampleCoverageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleCoverageEXT) -#define glNamedRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleEXT) -#define glProgramUniform1fEXT GLEW_GET_FUN(__glewProgramUniform1fEXT) -#define glProgramUniform1fvEXT GLEW_GET_FUN(__glewProgramUniform1fvEXT) -#define glProgramUniform1iEXT GLEW_GET_FUN(__glewProgramUniform1iEXT) -#define glProgramUniform1ivEXT GLEW_GET_FUN(__glewProgramUniform1ivEXT) -#define glProgramUniform1uiEXT GLEW_GET_FUN(__glewProgramUniform1uiEXT) -#define glProgramUniform1uivEXT GLEW_GET_FUN(__glewProgramUniform1uivEXT) -#define glProgramUniform2fEXT GLEW_GET_FUN(__glewProgramUniform2fEXT) -#define glProgramUniform2fvEXT GLEW_GET_FUN(__glewProgramUniform2fvEXT) -#define glProgramUniform2iEXT GLEW_GET_FUN(__glewProgramUniform2iEXT) -#define glProgramUniform2ivEXT GLEW_GET_FUN(__glewProgramUniform2ivEXT) -#define glProgramUniform2uiEXT GLEW_GET_FUN(__glewProgramUniform2uiEXT) -#define glProgramUniform2uivEXT GLEW_GET_FUN(__glewProgramUniform2uivEXT) -#define glProgramUniform3fEXT GLEW_GET_FUN(__glewProgramUniform3fEXT) -#define glProgramUniform3fvEXT GLEW_GET_FUN(__glewProgramUniform3fvEXT) -#define glProgramUniform3iEXT GLEW_GET_FUN(__glewProgramUniform3iEXT) -#define glProgramUniform3ivEXT GLEW_GET_FUN(__glewProgramUniform3ivEXT) -#define glProgramUniform3uiEXT GLEW_GET_FUN(__glewProgramUniform3uiEXT) -#define glProgramUniform3uivEXT GLEW_GET_FUN(__glewProgramUniform3uivEXT) -#define glProgramUniform4fEXT GLEW_GET_FUN(__glewProgramUniform4fEXT) -#define glProgramUniform4fvEXT GLEW_GET_FUN(__glewProgramUniform4fvEXT) -#define glProgramUniform4iEXT GLEW_GET_FUN(__glewProgramUniform4iEXT) -#define glProgramUniform4ivEXT GLEW_GET_FUN(__glewProgramUniform4ivEXT) -#define glProgramUniform4uiEXT GLEW_GET_FUN(__glewProgramUniform4uiEXT) -#define glProgramUniform4uivEXT GLEW_GET_FUN(__glewProgramUniform4uivEXT) -#define glProgramUniformMatrix2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2fvEXT) -#define glProgramUniformMatrix2x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3fvEXT) -#define glProgramUniformMatrix2x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4fvEXT) -#define glProgramUniformMatrix3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3fvEXT) -#define glProgramUniformMatrix3x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2fvEXT) -#define glProgramUniformMatrix3x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4fvEXT) -#define glProgramUniformMatrix4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4fvEXT) -#define glProgramUniformMatrix4x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2fvEXT) -#define glProgramUniformMatrix4x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3fvEXT) -#define glPushClientAttribDefaultEXT GLEW_GET_FUN(__glewPushClientAttribDefaultEXT) -#define glTextureBufferEXT GLEW_GET_FUN(__glewTextureBufferEXT) -#define glTextureImage1DEXT GLEW_GET_FUN(__glewTextureImage1DEXT) -#define glTextureImage2DEXT GLEW_GET_FUN(__glewTextureImage2DEXT) -#define glTextureImage3DEXT GLEW_GET_FUN(__glewTextureImage3DEXT) -#define glTextureParameterIivEXT GLEW_GET_FUN(__glewTextureParameterIivEXT) -#define glTextureParameterIuivEXT GLEW_GET_FUN(__glewTextureParameterIuivEXT) -#define glTextureParameterfEXT GLEW_GET_FUN(__glewTextureParameterfEXT) -#define glTextureParameterfvEXT GLEW_GET_FUN(__glewTextureParameterfvEXT) -#define glTextureParameteriEXT GLEW_GET_FUN(__glewTextureParameteriEXT) -#define glTextureParameterivEXT GLEW_GET_FUN(__glewTextureParameterivEXT) -#define glTextureRenderbufferEXT GLEW_GET_FUN(__glewTextureRenderbufferEXT) -#define glTextureSubImage1DEXT GLEW_GET_FUN(__glewTextureSubImage1DEXT) -#define glTextureSubImage2DEXT GLEW_GET_FUN(__glewTextureSubImage2DEXT) -#define glTextureSubImage3DEXT GLEW_GET_FUN(__glewTextureSubImage3DEXT) -#define glUnmapNamedBufferEXT GLEW_GET_FUN(__glewUnmapNamedBufferEXT) -#define glVertexArrayColorOffsetEXT GLEW_GET_FUN(__glewVertexArrayColorOffsetEXT) -#define glVertexArrayEdgeFlagOffsetEXT GLEW_GET_FUN(__glewVertexArrayEdgeFlagOffsetEXT) -#define glVertexArrayFogCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayFogCoordOffsetEXT) -#define glVertexArrayIndexOffsetEXT GLEW_GET_FUN(__glewVertexArrayIndexOffsetEXT) -#define glVertexArrayMultiTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayMultiTexCoordOffsetEXT) -#define glVertexArrayNormalOffsetEXT GLEW_GET_FUN(__glewVertexArrayNormalOffsetEXT) -#define glVertexArraySecondaryColorOffsetEXT GLEW_GET_FUN(__glewVertexArraySecondaryColorOffsetEXT) -#define glVertexArrayTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayTexCoordOffsetEXT) -#define glVertexArrayVertexAttribIOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIOffsetEXT) -#define glVertexArrayVertexAttribOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribOffsetEXT) -#define glVertexArrayVertexOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexOffsetEXT) - -#define GLEW_EXT_direct_state_access GLEW_GET_VAR(__GLEW_EXT_direct_state_access) - -#endif /* GL_EXT_direct_state_access */ - -/* -------------------------- GL_EXT_draw_buffers2 ------------------------- */ - -#ifndef GL_EXT_draw_buffers2 -#define GL_EXT_draw_buffers2 1 - -typedef void (GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (GLAPIENTRY * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum value, GLuint index, GLboolean* data); -typedef void (GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum value, GLuint index, GLint* data); -typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); - -#define glColorMaskIndexedEXT GLEW_GET_FUN(__glewColorMaskIndexedEXT) -#define glDisableIndexedEXT GLEW_GET_FUN(__glewDisableIndexedEXT) -#define glEnableIndexedEXT GLEW_GET_FUN(__glewEnableIndexedEXT) -#define glGetBooleanIndexedvEXT GLEW_GET_FUN(__glewGetBooleanIndexedvEXT) -#define glGetIntegerIndexedvEXT GLEW_GET_FUN(__glewGetIntegerIndexedvEXT) -#define glIsEnabledIndexedEXT GLEW_GET_FUN(__glewIsEnabledIndexedEXT) - -#define GLEW_EXT_draw_buffers2 GLEW_GET_VAR(__GLEW_EXT_draw_buffers2) - -#endif /* GL_EXT_draw_buffers2 */ - -/* ------------------------- GL_EXT_draw_instanced ------------------------- */ - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); - -#define glDrawArraysInstancedEXT GLEW_GET_FUN(__glewDrawArraysInstancedEXT) -#define glDrawElementsInstancedEXT GLEW_GET_FUN(__glewDrawElementsInstancedEXT) - -#define GLEW_EXT_draw_instanced GLEW_GET_VAR(__GLEW_EXT_draw_instanced) - -#endif /* GL_EXT_draw_instanced */ - -/* ----------------------- GL_EXT_draw_range_elements ---------------------- */ - -#ifndef GL_EXT_draw_range_elements -#define GL_EXT_draw_range_elements 1 - -#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 - -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); - -#define glDrawRangeElementsEXT GLEW_GET_FUN(__glewDrawRangeElementsEXT) - -#define GLEW_EXT_draw_range_elements GLEW_GET_VAR(__GLEW_EXT_draw_range_elements) - -#endif /* GL_EXT_draw_range_elements */ - -/* ---------------------------- GL_EXT_fog_coord --------------------------- */ - -#ifndef GL_EXT_fog_coord -#define GL_EXT_fog_coord 1 - -#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define GL_FOG_COORDINATE_EXT 0x8451 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 -#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 - -typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); - -#define glFogCoordPointerEXT GLEW_GET_FUN(__glewFogCoordPointerEXT) -#define glFogCoorddEXT GLEW_GET_FUN(__glewFogCoorddEXT) -#define glFogCoorddvEXT GLEW_GET_FUN(__glewFogCoorddvEXT) -#define glFogCoordfEXT GLEW_GET_FUN(__glewFogCoordfEXT) -#define glFogCoordfvEXT GLEW_GET_FUN(__glewFogCoordfvEXT) - -#define GLEW_EXT_fog_coord GLEW_GET_VAR(__GLEW_EXT_fog_coord) - -#endif /* GL_EXT_fog_coord */ - -/* ------------------------ GL_EXT_fragment_lighting ----------------------- */ - -#ifndef GL_EXT_fragment_lighting -#define GL_EXT_fragment_lighting 1 - -#define GL_FRAGMENT_LIGHTING_EXT 0x8400 -#define GL_FRAGMENT_COLOR_MATERIAL_EXT 0x8401 -#define GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT 0x8402 -#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT 0x8403 -#define GL_MAX_FRAGMENT_LIGHTS_EXT 0x8404 -#define GL_MAX_ACTIVE_LIGHTS_EXT 0x8405 -#define GL_CURRENT_RASTER_NORMAL_EXT 0x8406 -#define GL_LIGHT_ENV_MODE_EXT 0x8407 -#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT 0x8408 -#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT 0x8409 -#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT 0x840A -#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT 0x840B -#define GL_FRAGMENT_LIGHT0_EXT 0x840C -#define GL_FRAGMENT_LIGHT7_EXT 0x8413 - -typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALEXTPROC) (GLenum face, GLenum mode); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFEXTPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVEXTPROC) (GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIEXTPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVEXTPROC) (GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFEXTPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIEXTPROC) (GLenum light, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFEXTPROC) (GLenum face, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIEXTPROC) (GLenum face, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLLIGHTENVIEXTPROC) (GLenum pname, GLint param); - -#define glFragmentColorMaterialEXT GLEW_GET_FUN(__glewFragmentColorMaterialEXT) -#define glFragmentLightModelfEXT GLEW_GET_FUN(__glewFragmentLightModelfEXT) -#define glFragmentLightModelfvEXT GLEW_GET_FUN(__glewFragmentLightModelfvEXT) -#define glFragmentLightModeliEXT GLEW_GET_FUN(__glewFragmentLightModeliEXT) -#define glFragmentLightModelivEXT GLEW_GET_FUN(__glewFragmentLightModelivEXT) -#define glFragmentLightfEXT GLEW_GET_FUN(__glewFragmentLightfEXT) -#define glFragmentLightfvEXT GLEW_GET_FUN(__glewFragmentLightfvEXT) -#define glFragmentLightiEXT GLEW_GET_FUN(__glewFragmentLightiEXT) -#define glFragmentLightivEXT GLEW_GET_FUN(__glewFragmentLightivEXT) -#define glFragmentMaterialfEXT GLEW_GET_FUN(__glewFragmentMaterialfEXT) -#define glFragmentMaterialfvEXT GLEW_GET_FUN(__glewFragmentMaterialfvEXT) -#define glFragmentMaterialiEXT GLEW_GET_FUN(__glewFragmentMaterialiEXT) -#define glFragmentMaterialivEXT GLEW_GET_FUN(__glewFragmentMaterialivEXT) -#define glGetFragmentLightfvEXT GLEW_GET_FUN(__glewGetFragmentLightfvEXT) -#define glGetFragmentLightivEXT GLEW_GET_FUN(__glewGetFragmentLightivEXT) -#define glGetFragmentMaterialfvEXT GLEW_GET_FUN(__glewGetFragmentMaterialfvEXT) -#define glGetFragmentMaterialivEXT GLEW_GET_FUN(__glewGetFragmentMaterialivEXT) -#define glLightEnviEXT GLEW_GET_FUN(__glewLightEnviEXT) - -#define GLEW_EXT_fragment_lighting GLEW_GET_VAR(__GLEW_EXT_fragment_lighting) - -#endif /* GL_EXT_fragment_lighting */ - -/* ------------------------ GL_EXT_framebuffer_blit ------------------------ */ - -#ifndef GL_EXT_framebuffer_blit -#define GL_EXT_framebuffer_blit 1 - -#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA - -typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); - -#define glBlitFramebufferEXT GLEW_GET_FUN(__glewBlitFramebufferEXT) - -#define GLEW_EXT_framebuffer_blit GLEW_GET_VAR(__GLEW_EXT_framebuffer_blit) - -#endif /* GL_EXT_framebuffer_blit */ - -/* --------------------- GL_EXT_framebuffer_multisample -------------------- */ - -#ifndef GL_EXT_framebuffer_multisample -#define GL_EXT_framebuffer_multisample 1 - -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 - -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); - -#define glRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewRenderbufferStorageMultisampleEXT) - -#define GLEW_EXT_framebuffer_multisample GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample) - -#endif /* GL_EXT_framebuffer_multisample */ - -/* --------------- GL_EXT_framebuffer_multisample_blit_scaled -------------- */ - -#ifndef GL_EXT_framebuffer_multisample_blit_scaled -#define GL_EXT_framebuffer_multisample_blit_scaled 1 - -#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA -#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB - -#define GLEW_EXT_framebuffer_multisample_blit_scaled GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample_blit_scaled) - -#endif /* GL_EXT_framebuffer_multisample_blit_scaled */ - -/* ----------------------- GL_EXT_framebuffer_object ----------------------- */ - -#ifndef GL_EXT_framebuffer_object -#define GL_EXT_framebuffer_object 1 - -#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 -#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 -#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 -#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 -#define GL_FRAMEBUFFER_EXT 0x8D40 -#define GL_RENDERBUFFER_EXT 0x8D41 -#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 -#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 -#define GL_STENCIL_INDEX1_EXT 0x8D46 -#define GL_STENCIL_INDEX4_EXT 0x8D47 -#define GL_STENCIL_INDEX8_EXT 0x8D48 -#define GL_STENCIL_INDEX16_EXT 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 - -typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); -typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); -typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); -typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); - -#define glBindFramebufferEXT GLEW_GET_FUN(__glewBindFramebufferEXT) -#define glBindRenderbufferEXT GLEW_GET_FUN(__glewBindRenderbufferEXT) -#define glCheckFramebufferStatusEXT GLEW_GET_FUN(__glewCheckFramebufferStatusEXT) -#define glDeleteFramebuffersEXT GLEW_GET_FUN(__glewDeleteFramebuffersEXT) -#define glDeleteRenderbuffersEXT GLEW_GET_FUN(__glewDeleteRenderbuffersEXT) -#define glFramebufferRenderbufferEXT GLEW_GET_FUN(__glewFramebufferRenderbufferEXT) -#define glFramebufferTexture1DEXT GLEW_GET_FUN(__glewFramebufferTexture1DEXT) -#define glFramebufferTexture2DEXT GLEW_GET_FUN(__glewFramebufferTexture2DEXT) -#define glFramebufferTexture3DEXT GLEW_GET_FUN(__glewFramebufferTexture3DEXT) -#define glGenFramebuffersEXT GLEW_GET_FUN(__glewGenFramebuffersEXT) -#define glGenRenderbuffersEXT GLEW_GET_FUN(__glewGenRenderbuffersEXT) -#define glGenerateMipmapEXT GLEW_GET_FUN(__glewGenerateMipmapEXT) -#define glGetFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetFramebufferAttachmentParameterivEXT) -#define glGetRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetRenderbufferParameterivEXT) -#define glIsFramebufferEXT GLEW_GET_FUN(__glewIsFramebufferEXT) -#define glIsRenderbufferEXT GLEW_GET_FUN(__glewIsRenderbufferEXT) -#define glRenderbufferStorageEXT GLEW_GET_FUN(__glewRenderbufferStorageEXT) - -#define GLEW_EXT_framebuffer_object GLEW_GET_VAR(__GLEW_EXT_framebuffer_object) - -#endif /* GL_EXT_framebuffer_object */ - -/* ------------------------ GL_EXT_framebuffer_sRGB ------------------------ */ - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_EXT_framebuffer_sRGB 1 - -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA - -#define GLEW_EXT_framebuffer_sRGB GLEW_GET_VAR(__GLEW_EXT_framebuffer_sRGB) - -#endif /* GL_EXT_framebuffer_sRGB */ - -/* ------------------------ GL_EXT_geometry_shader4 ------------------------ */ - -#ifndef GL_EXT_geometry_shader4 -#define GL_EXT_geometry_shader4 1 - -#define GL_LINES_ADJACENCY_EXT 0xA -#define GL_LINE_STRIP_ADJACENCY_EXT 0xB -#define GL_TRIANGLES_ADJACENCY_EXT 0xC -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD -#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 -#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); - -#define glFramebufferTextureEXT GLEW_GET_FUN(__glewFramebufferTextureEXT) -#define glFramebufferTextureFaceEXT GLEW_GET_FUN(__glewFramebufferTextureFaceEXT) -#define glProgramParameteriEXT GLEW_GET_FUN(__glewProgramParameteriEXT) - -#define GLEW_EXT_geometry_shader4 GLEW_GET_VAR(__GLEW_EXT_geometry_shader4) - -#endif /* GL_EXT_geometry_shader4 */ - -/* --------------------- GL_EXT_gpu_program_parameters --------------------- */ - -#ifndef GL_EXT_gpu_program_parameters -#define GL_EXT_gpu_program_parameters 1 - -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); - -#define glProgramEnvParameters4fvEXT GLEW_GET_FUN(__glewProgramEnvParameters4fvEXT) -#define glProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewProgramLocalParameters4fvEXT) - -#define GLEW_EXT_gpu_program_parameters GLEW_GET_VAR(__GLEW_EXT_gpu_program_parameters) - -#endif /* GL_EXT_gpu_program_parameters */ - -/* --------------------------- GL_EXT_gpu_shader4 -------------------------- */ - -#ifndef GL_EXT_gpu_shader4 -#define GL_EXT_gpu_shader4 1 - -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD -#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 -#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 -#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 -#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 -#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 -#define GL_INT_SAMPLER_1D_EXT 0x8DC9 -#define GL_INT_SAMPLER_2D_EXT 0x8DCA -#define GL_INT_SAMPLER_3D_EXT 0x8DCB -#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC -#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD -#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 - -typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); - -#define glBindFragDataLocationEXT GLEW_GET_FUN(__glewBindFragDataLocationEXT) -#define glGetFragDataLocationEXT GLEW_GET_FUN(__glewGetFragDataLocationEXT) -#define glGetUniformuivEXT GLEW_GET_FUN(__glewGetUniformuivEXT) -#define glGetVertexAttribIivEXT GLEW_GET_FUN(__glewGetVertexAttribIivEXT) -#define glGetVertexAttribIuivEXT GLEW_GET_FUN(__glewGetVertexAttribIuivEXT) -#define glUniform1uiEXT GLEW_GET_FUN(__glewUniform1uiEXT) -#define glUniform1uivEXT GLEW_GET_FUN(__glewUniform1uivEXT) -#define glUniform2uiEXT GLEW_GET_FUN(__glewUniform2uiEXT) -#define glUniform2uivEXT GLEW_GET_FUN(__glewUniform2uivEXT) -#define glUniform3uiEXT GLEW_GET_FUN(__glewUniform3uiEXT) -#define glUniform3uivEXT GLEW_GET_FUN(__glewUniform3uivEXT) -#define glUniform4uiEXT GLEW_GET_FUN(__glewUniform4uiEXT) -#define glUniform4uivEXT GLEW_GET_FUN(__glewUniform4uivEXT) -#define glVertexAttribI1iEXT GLEW_GET_FUN(__glewVertexAttribI1iEXT) -#define glVertexAttribI1ivEXT GLEW_GET_FUN(__glewVertexAttribI1ivEXT) -#define glVertexAttribI1uiEXT GLEW_GET_FUN(__glewVertexAttribI1uiEXT) -#define glVertexAttribI1uivEXT GLEW_GET_FUN(__glewVertexAttribI1uivEXT) -#define glVertexAttribI2iEXT GLEW_GET_FUN(__glewVertexAttribI2iEXT) -#define glVertexAttribI2ivEXT GLEW_GET_FUN(__glewVertexAttribI2ivEXT) -#define glVertexAttribI2uiEXT GLEW_GET_FUN(__glewVertexAttribI2uiEXT) -#define glVertexAttribI2uivEXT GLEW_GET_FUN(__glewVertexAttribI2uivEXT) -#define glVertexAttribI3iEXT GLEW_GET_FUN(__glewVertexAttribI3iEXT) -#define glVertexAttribI3ivEXT GLEW_GET_FUN(__glewVertexAttribI3ivEXT) -#define glVertexAttribI3uiEXT GLEW_GET_FUN(__glewVertexAttribI3uiEXT) -#define glVertexAttribI3uivEXT GLEW_GET_FUN(__glewVertexAttribI3uivEXT) -#define glVertexAttribI4bvEXT GLEW_GET_FUN(__glewVertexAttribI4bvEXT) -#define glVertexAttribI4iEXT GLEW_GET_FUN(__glewVertexAttribI4iEXT) -#define glVertexAttribI4ivEXT GLEW_GET_FUN(__glewVertexAttribI4ivEXT) -#define glVertexAttribI4svEXT GLEW_GET_FUN(__glewVertexAttribI4svEXT) -#define glVertexAttribI4ubvEXT GLEW_GET_FUN(__glewVertexAttribI4ubvEXT) -#define glVertexAttribI4uiEXT GLEW_GET_FUN(__glewVertexAttribI4uiEXT) -#define glVertexAttribI4uivEXT GLEW_GET_FUN(__glewVertexAttribI4uivEXT) -#define glVertexAttribI4usvEXT GLEW_GET_FUN(__glewVertexAttribI4usvEXT) -#define glVertexAttribIPointerEXT GLEW_GET_FUN(__glewVertexAttribIPointerEXT) - -#define GLEW_EXT_gpu_shader4 GLEW_GET_VAR(__GLEW_EXT_gpu_shader4) - -#endif /* GL_EXT_gpu_shader4 */ - -/* ---------------------------- GL_EXT_histogram --------------------------- */ - -#ifndef GL_EXT_histogram -#define GL_EXT_histogram 1 - -#define GL_HISTOGRAM_EXT 0x8024 -#define GL_PROXY_HISTOGRAM_EXT 0x8025 -#define GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define GL_HISTOGRAM_SINK_EXT 0x802D -#define GL_MINMAX_EXT 0x802E -#define GL_MINMAX_FORMAT_EXT 0x802F -#define GL_MINMAX_SINK_EXT 0x8030 - -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void* values); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void* values); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target); - -#define glGetHistogramEXT GLEW_GET_FUN(__glewGetHistogramEXT) -#define glGetHistogramParameterfvEXT GLEW_GET_FUN(__glewGetHistogramParameterfvEXT) -#define glGetHistogramParameterivEXT GLEW_GET_FUN(__glewGetHistogramParameterivEXT) -#define glGetMinmaxEXT GLEW_GET_FUN(__glewGetMinmaxEXT) -#define glGetMinmaxParameterfvEXT GLEW_GET_FUN(__glewGetMinmaxParameterfvEXT) -#define glGetMinmaxParameterivEXT GLEW_GET_FUN(__glewGetMinmaxParameterivEXT) -#define glHistogramEXT GLEW_GET_FUN(__glewHistogramEXT) -#define glMinmaxEXT GLEW_GET_FUN(__glewMinmaxEXT) -#define glResetHistogramEXT GLEW_GET_FUN(__glewResetHistogramEXT) -#define glResetMinmaxEXT GLEW_GET_FUN(__glewResetMinmaxEXT) - -#define GLEW_EXT_histogram GLEW_GET_VAR(__GLEW_EXT_histogram) - -#endif /* GL_EXT_histogram */ - -/* ----------------------- GL_EXT_index_array_formats ---------------------- */ - -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 - -#define GLEW_EXT_index_array_formats GLEW_GET_VAR(__GLEW_EXT_index_array_formats) - -#endif /* GL_EXT_index_array_formats */ - -/* --------------------------- GL_EXT_index_func --------------------------- */ - -#ifndef GL_EXT_index_func -#define GL_EXT_index_func 1 - -typedef void (GLAPIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLfloat ref); - -#define glIndexFuncEXT GLEW_GET_FUN(__glewIndexFuncEXT) - -#define GLEW_EXT_index_func GLEW_GET_VAR(__GLEW_EXT_index_func) - -#endif /* GL_EXT_index_func */ - -/* ------------------------- GL_EXT_index_material ------------------------- */ - -#ifndef GL_EXT_index_material -#define GL_EXT_index_material 1 - -typedef void (GLAPIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); - -#define glIndexMaterialEXT GLEW_GET_FUN(__glewIndexMaterialEXT) - -#define GLEW_EXT_index_material GLEW_GET_VAR(__GLEW_EXT_index_material) - -#endif /* GL_EXT_index_material */ - -/* -------------------------- GL_EXT_index_texture ------------------------- */ - -#ifndef GL_EXT_index_texture -#define GL_EXT_index_texture 1 - -#define GLEW_EXT_index_texture GLEW_GET_VAR(__GLEW_EXT_index_texture) - -#endif /* GL_EXT_index_texture */ - -/* -------------------------- GL_EXT_light_texture ------------------------- */ - -#ifndef GL_EXT_light_texture -#define GL_EXT_light_texture 1 - -#define GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define GL_FRAGMENT_NORMAL_EXT 0x834A -#define GL_FRAGMENT_COLOR_EXT 0x834C -#define GL_ATTENUATION_EXT 0x834D -#define GL_SHADOW_ATTENUATION_EXT 0x834E -#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define GL_TEXTURE_LIGHT_EXT 0x8350 -#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 - -typedef void (GLAPIENTRY * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); -typedef void (GLAPIENTRY * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); -typedef void (GLAPIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); - -#define glApplyTextureEXT GLEW_GET_FUN(__glewApplyTextureEXT) -#define glTextureLightEXT GLEW_GET_FUN(__glewTextureLightEXT) -#define glTextureMaterialEXT GLEW_GET_FUN(__glewTextureMaterialEXT) - -#define GLEW_EXT_light_texture GLEW_GET_VAR(__GLEW_EXT_light_texture) - -#endif /* GL_EXT_light_texture */ - -/* ------------------------- GL_EXT_misc_attribute ------------------------- */ - -#ifndef GL_EXT_misc_attribute -#define GL_EXT_misc_attribute 1 - -#define GLEW_EXT_misc_attribute GLEW_GET_VAR(__GLEW_EXT_misc_attribute) - -#endif /* GL_EXT_misc_attribute */ - -/* ------------------------ GL_EXT_multi_draw_arrays ----------------------- */ - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 - -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei* count, GLenum type, const GLvoid **indices, GLsizei primcount); - -#define glMultiDrawArraysEXT GLEW_GET_FUN(__glewMultiDrawArraysEXT) -#define glMultiDrawElementsEXT GLEW_GET_FUN(__glewMultiDrawElementsEXT) - -#define GLEW_EXT_multi_draw_arrays GLEW_GET_VAR(__GLEW_EXT_multi_draw_arrays) - -#endif /* GL_EXT_multi_draw_arrays */ - -/* --------------------------- GL_EXT_multisample -------------------------- */ - -#ifndef GL_EXT_multisample -#define GL_EXT_multisample 1 - -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define GL_SAMPLE_MASK_EXT 0x80A0 -#define GL_1PASS_EXT 0x80A1 -#define GL_2PASS_0_EXT 0x80A2 -#define GL_2PASS_1_EXT 0x80A3 -#define GL_4PASS_0_EXT 0x80A4 -#define GL_4PASS_1_EXT 0x80A5 -#define GL_4PASS_2_EXT 0x80A6 -#define GL_4PASS_3_EXT 0x80A7 -#define GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define GL_SAMPLES_EXT 0x80A9 -#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define GL_SAMPLE_PATTERN_EXT 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 - -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); -typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); - -#define glSampleMaskEXT GLEW_GET_FUN(__glewSampleMaskEXT) -#define glSamplePatternEXT GLEW_GET_FUN(__glewSamplePatternEXT) - -#define GLEW_EXT_multisample GLEW_GET_VAR(__GLEW_EXT_multisample) - -#endif /* GL_EXT_multisample */ - -/* ---------------------- GL_EXT_packed_depth_stencil ---------------------- */ - -#ifndef GL_EXT_packed_depth_stencil -#define GL_EXT_packed_depth_stencil 1 - -#define GL_DEPTH_STENCIL_EXT 0x84F9 -#define GL_UNSIGNED_INT_24_8_EXT 0x84FA -#define GL_DEPTH24_STENCIL8_EXT 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 - -#define GLEW_EXT_packed_depth_stencil GLEW_GET_VAR(__GLEW_EXT_packed_depth_stencil) - -#endif /* GL_EXT_packed_depth_stencil */ - -/* -------------------------- GL_EXT_packed_float -------------------------- */ - -#ifndef GL_EXT_packed_float -#define GL_EXT_packed_float 1 - -#define GL_R11F_G11F_B10F_EXT 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B -#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C - -#define GLEW_EXT_packed_float GLEW_GET_VAR(__GLEW_EXT_packed_float) - -#endif /* GL_EXT_packed_float */ - -/* -------------------------- GL_EXT_packed_pixels ------------------------- */ - -#ifndef GL_EXT_packed_pixels -#define GL_EXT_packed_pixels 1 - -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 - -#define GLEW_EXT_packed_pixels GLEW_GET_VAR(__GLEW_EXT_packed_pixels) - -#endif /* GL_EXT_packed_pixels */ - -/* ------------------------ GL_EXT_paletted_texture ------------------------ */ - -#ifndef GL_EXT_paletted_texture -#define GL_EXT_paletted_texture 1 - -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_COLOR_TABLE_FORMAT_EXT 0x80D8 -#define GL_COLOR_TABLE_WIDTH_EXT 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B - -typedef void (GLAPIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void* data); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void* data); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); - -#define glColorTableEXT GLEW_GET_FUN(__glewColorTableEXT) -#define glGetColorTableEXT GLEW_GET_FUN(__glewGetColorTableEXT) -#define glGetColorTableParameterfvEXT GLEW_GET_FUN(__glewGetColorTableParameterfvEXT) -#define glGetColorTableParameterivEXT GLEW_GET_FUN(__glewGetColorTableParameterivEXT) - -#define GLEW_EXT_paletted_texture GLEW_GET_VAR(__GLEW_EXT_paletted_texture) - -#endif /* GL_EXT_paletted_texture */ - -/* ----------------------- GL_EXT_pixel_buffer_object ---------------------- */ - -#ifndef GL_EXT_pixel_buffer_object -#define GL_EXT_pixel_buffer_object 1 - -#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF - -#define GLEW_EXT_pixel_buffer_object GLEW_GET_VAR(__GLEW_EXT_pixel_buffer_object) - -#endif /* GL_EXT_pixel_buffer_object */ - -/* ------------------------- GL_EXT_pixel_transform ------------------------ */ - -#ifndef GL_EXT_pixel_transform -#define GL_EXT_pixel_transform 1 - -#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define GL_CUBIC_EXT 0x8334 -#define GL_AVERAGE_EXT 0x8335 -#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 - -typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); - -#define glGetPixelTransformParameterfvEXT GLEW_GET_FUN(__glewGetPixelTransformParameterfvEXT) -#define glGetPixelTransformParameterivEXT GLEW_GET_FUN(__glewGetPixelTransformParameterivEXT) -#define glPixelTransformParameterfEXT GLEW_GET_FUN(__glewPixelTransformParameterfEXT) -#define glPixelTransformParameterfvEXT GLEW_GET_FUN(__glewPixelTransformParameterfvEXT) -#define glPixelTransformParameteriEXT GLEW_GET_FUN(__glewPixelTransformParameteriEXT) -#define glPixelTransformParameterivEXT GLEW_GET_FUN(__glewPixelTransformParameterivEXT) - -#define GLEW_EXT_pixel_transform GLEW_GET_VAR(__GLEW_EXT_pixel_transform) - -#endif /* GL_EXT_pixel_transform */ - -/* ------------------- GL_EXT_pixel_transform_color_table ------------------ */ - -#ifndef GL_EXT_pixel_transform_color_table -#define GL_EXT_pixel_transform_color_table 1 - -#define GLEW_EXT_pixel_transform_color_table GLEW_GET_VAR(__GLEW_EXT_pixel_transform_color_table) - -#endif /* GL_EXT_pixel_transform_color_table */ - -/* ------------------------ GL_EXT_point_parameters ------------------------ */ - -#ifndef GL_EXT_point_parameters -#define GL_EXT_point_parameters 1 - -#define GL_POINT_SIZE_MIN_EXT 0x8126 -#define GL_POINT_SIZE_MAX_EXT 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define GL_DISTANCE_ATTENUATION_EXT 0x8129 - -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat* params); - -#define glPointParameterfEXT GLEW_GET_FUN(__glewPointParameterfEXT) -#define glPointParameterfvEXT GLEW_GET_FUN(__glewPointParameterfvEXT) - -#define GLEW_EXT_point_parameters GLEW_GET_VAR(__GLEW_EXT_point_parameters) - -#endif /* GL_EXT_point_parameters */ - -/* ------------------------- GL_EXT_polygon_offset ------------------------- */ - -#ifndef GL_EXT_polygon_offset -#define GL_EXT_polygon_offset 1 - -#define GL_POLYGON_OFFSET_EXT 0x8037 -#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 - -typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); - -#define glPolygonOffsetEXT GLEW_GET_FUN(__glewPolygonOffsetEXT) - -#define GLEW_EXT_polygon_offset GLEW_GET_VAR(__GLEW_EXT_polygon_offset) - -#endif /* GL_EXT_polygon_offset */ - -/* ------------------------ GL_EXT_provoking_vertex ------------------------ */ - -#ifndef GL_EXT_provoking_vertex -#define GL_EXT_provoking_vertex 1 - -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E -#define GL_PROVOKING_VERTEX_EXT 0x8E4F - -typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); - -#define glProvokingVertexEXT GLEW_GET_FUN(__glewProvokingVertexEXT) - -#define GLEW_EXT_provoking_vertex GLEW_GET_VAR(__GLEW_EXT_provoking_vertex) - -#endif /* GL_EXT_provoking_vertex */ - -/* ------------------------- GL_EXT_rescale_normal ------------------------- */ - -#ifndef GL_EXT_rescale_normal -#define GL_EXT_rescale_normal 1 - -#define GL_RESCALE_NORMAL_EXT 0x803A - -#define GLEW_EXT_rescale_normal GLEW_GET_VAR(__GLEW_EXT_rescale_normal) - -#endif /* GL_EXT_rescale_normal */ - -/* -------------------------- GL_EXT_scene_marker -------------------------- */ - -#ifndef GL_EXT_scene_marker -#define GL_EXT_scene_marker 1 - -typedef void (GLAPIENTRY * PFNGLBEGINSCENEEXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLENDSCENEEXTPROC) (void); - -#define glBeginSceneEXT GLEW_GET_FUN(__glewBeginSceneEXT) -#define glEndSceneEXT GLEW_GET_FUN(__glewEndSceneEXT) - -#define GLEW_EXT_scene_marker GLEW_GET_VAR(__GLEW_EXT_scene_marker) - -#endif /* GL_EXT_scene_marker */ - -/* ------------------------- GL_EXT_secondary_color ------------------------ */ - -#ifndef GL_EXT_secondary_color -#define GL_EXT_secondary_color 1 - -#define GL_COLOR_SUM_EXT 0x8458 -#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E - -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); - -#define glSecondaryColor3bEXT GLEW_GET_FUN(__glewSecondaryColor3bEXT) -#define glSecondaryColor3bvEXT GLEW_GET_FUN(__glewSecondaryColor3bvEXT) -#define glSecondaryColor3dEXT GLEW_GET_FUN(__glewSecondaryColor3dEXT) -#define glSecondaryColor3dvEXT GLEW_GET_FUN(__glewSecondaryColor3dvEXT) -#define glSecondaryColor3fEXT GLEW_GET_FUN(__glewSecondaryColor3fEXT) -#define glSecondaryColor3fvEXT GLEW_GET_FUN(__glewSecondaryColor3fvEXT) -#define glSecondaryColor3iEXT GLEW_GET_FUN(__glewSecondaryColor3iEXT) -#define glSecondaryColor3ivEXT GLEW_GET_FUN(__glewSecondaryColor3ivEXT) -#define glSecondaryColor3sEXT GLEW_GET_FUN(__glewSecondaryColor3sEXT) -#define glSecondaryColor3svEXT GLEW_GET_FUN(__glewSecondaryColor3svEXT) -#define glSecondaryColor3ubEXT GLEW_GET_FUN(__glewSecondaryColor3ubEXT) -#define glSecondaryColor3ubvEXT GLEW_GET_FUN(__glewSecondaryColor3ubvEXT) -#define glSecondaryColor3uiEXT GLEW_GET_FUN(__glewSecondaryColor3uiEXT) -#define glSecondaryColor3uivEXT GLEW_GET_FUN(__glewSecondaryColor3uivEXT) -#define glSecondaryColor3usEXT GLEW_GET_FUN(__glewSecondaryColor3usEXT) -#define glSecondaryColor3usvEXT GLEW_GET_FUN(__glewSecondaryColor3usvEXT) -#define glSecondaryColorPointerEXT GLEW_GET_FUN(__glewSecondaryColorPointerEXT) - -#define GLEW_EXT_secondary_color GLEW_GET_VAR(__GLEW_EXT_secondary_color) - -#endif /* GL_EXT_secondary_color */ - -/* --------------------- GL_EXT_separate_shader_objects -------------------- */ - -#ifndef GL_EXT_separate_shader_objects -#define GL_EXT_separate_shader_objects 1 - -#define GL_ACTIVE_PROGRAM_EXT 0x8B8D - -typedef void (GLAPIENTRY * PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); -typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const char* string); -typedef void (GLAPIENTRY * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); - -#define glActiveProgramEXT GLEW_GET_FUN(__glewActiveProgramEXT) -#define glCreateShaderProgramEXT GLEW_GET_FUN(__glewCreateShaderProgramEXT) -#define glUseShaderProgramEXT GLEW_GET_FUN(__glewUseShaderProgramEXT) - -#define GLEW_EXT_separate_shader_objects GLEW_GET_VAR(__GLEW_EXT_separate_shader_objects) - -#endif /* GL_EXT_separate_shader_objects */ - -/* --------------------- GL_EXT_separate_specular_color -------------------- */ - -#ifndef GL_EXT_separate_specular_color -#define GL_EXT_separate_specular_color 1 - -#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define GL_SINGLE_COLOR_EXT 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA - -#define GLEW_EXT_separate_specular_color GLEW_GET_VAR(__GLEW_EXT_separate_specular_color) - -#endif /* GL_EXT_separate_specular_color */ - -/* --------------------- GL_EXT_shader_image_load_store -------------------- */ - -#ifndef GL_EXT_shader_image_load_store -#define GL_EXT_shader_image_load_store 1 - -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 -#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 -#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 -#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A -#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B -#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C -#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D -#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E -#define GL_IMAGE_1D_EXT 0x904C -#define GL_IMAGE_2D_EXT 0x904D -#define GL_IMAGE_3D_EXT 0x904E -#define GL_IMAGE_2D_RECT_EXT 0x904F -#define GL_IMAGE_CUBE_EXT 0x9050 -#define GL_IMAGE_BUFFER_EXT 0x9051 -#define GL_IMAGE_1D_ARRAY_EXT 0x9052 -#define GL_IMAGE_2D_ARRAY_EXT 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 -#define GL_INT_IMAGE_1D_EXT 0x9057 -#define GL_INT_IMAGE_2D_EXT 0x9058 -#define GL_INT_IMAGE_3D_EXT 0x9059 -#define GL_INT_IMAGE_2D_RECT_EXT 0x905A -#define GL_INT_IMAGE_CUBE_EXT 0x905B -#define GL_INT_IMAGE_BUFFER_EXT 0x905C -#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D -#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C -#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D -#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E -#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); - -#define glBindImageTextureEXT GLEW_GET_FUN(__glewBindImageTextureEXT) -#define glMemoryBarrierEXT GLEW_GET_FUN(__glewMemoryBarrierEXT) - -#define GLEW_EXT_shader_image_load_store GLEW_GET_VAR(__GLEW_EXT_shader_image_load_store) - -#endif /* GL_EXT_shader_image_load_store */ - -/* -------------------------- GL_EXT_shadow_funcs -------------------------- */ - -#ifndef GL_EXT_shadow_funcs -#define GL_EXT_shadow_funcs 1 - -#define GLEW_EXT_shadow_funcs GLEW_GET_VAR(__GLEW_EXT_shadow_funcs) - -#endif /* GL_EXT_shadow_funcs */ - -/* --------------------- GL_EXT_shared_texture_palette --------------------- */ - -#ifndef GL_EXT_shared_texture_palette -#define GL_EXT_shared_texture_palette 1 - -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB - -#define GLEW_EXT_shared_texture_palette GLEW_GET_VAR(__GLEW_EXT_shared_texture_palette) - -#endif /* GL_EXT_shared_texture_palette */ - -/* ------------------------ GL_EXT_stencil_clear_tag ----------------------- */ - -#ifndef GL_EXT_stencil_clear_tag -#define GL_EXT_stencil_clear_tag 1 - -#define GL_STENCIL_TAG_BITS_EXT 0x88F2 -#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 - -#define GLEW_EXT_stencil_clear_tag GLEW_GET_VAR(__GLEW_EXT_stencil_clear_tag) - -#endif /* GL_EXT_stencil_clear_tag */ - -/* ------------------------ GL_EXT_stencil_two_side ------------------------ */ - -#ifndef GL_EXT_stencil_two_side -#define GL_EXT_stencil_two_side 1 - -#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 -#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 - -typedef void (GLAPIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); - -#define glActiveStencilFaceEXT GLEW_GET_FUN(__glewActiveStencilFaceEXT) - -#define GLEW_EXT_stencil_two_side GLEW_GET_VAR(__GLEW_EXT_stencil_two_side) - -#endif /* GL_EXT_stencil_two_side */ - -/* -------------------------- GL_EXT_stencil_wrap -------------------------- */ - -#ifndef GL_EXT_stencil_wrap -#define GL_EXT_stencil_wrap 1 - -#define GL_INCR_WRAP_EXT 0x8507 -#define GL_DECR_WRAP_EXT 0x8508 - -#define GLEW_EXT_stencil_wrap GLEW_GET_VAR(__GLEW_EXT_stencil_wrap) - -#endif /* GL_EXT_stencil_wrap */ - -/* --------------------------- GL_EXT_subtexture --------------------------- */ - -#ifndef GL_EXT_subtexture -#define GL_EXT_subtexture 1 - -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); - -#define glTexSubImage1DEXT GLEW_GET_FUN(__glewTexSubImage1DEXT) -#define glTexSubImage2DEXT GLEW_GET_FUN(__glewTexSubImage2DEXT) -#define glTexSubImage3DEXT GLEW_GET_FUN(__glewTexSubImage3DEXT) - -#define GLEW_EXT_subtexture GLEW_GET_VAR(__GLEW_EXT_subtexture) - -#endif /* GL_EXT_subtexture */ - -/* ----------------------------- GL_EXT_texture ---------------------------- */ - -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 - -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 - -#define GLEW_EXT_texture GLEW_GET_VAR(__GLEW_EXT_texture) - -#endif /* GL_EXT_texture */ - -/* ---------------------------- GL_EXT_texture3D --------------------------- */ - -#ifndef GL_EXT_texture3D -#define GL_EXT_texture3D 1 - -#define GL_PACK_SKIP_IMAGES_EXT 0x806B -#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_TEXTURE_DEPTH_EXT 0x8071 -#define GL_TEXTURE_WRAP_R_EXT 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 - -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); - -#define glTexImage3DEXT GLEW_GET_FUN(__glewTexImage3DEXT) - -#define GLEW_EXT_texture3D GLEW_GET_VAR(__GLEW_EXT_texture3D) - -#endif /* GL_EXT_texture3D */ - -/* -------------------------- GL_EXT_texture_array ------------------------- */ - -#ifndef GL_EXT_texture_array -#define GL_EXT_texture_array 1 - -#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E -#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF -#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 -#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); - -#define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT) - -#define GLEW_EXT_texture_array GLEW_GET_VAR(__GLEW_EXT_texture_array) - -#endif /* GL_EXT_texture_array */ - -/* ---------------------- GL_EXT_texture_buffer_object --------------------- */ - -#ifndef GL_EXT_texture_buffer_object -#define GL_EXT_texture_buffer_object 1 - -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E - -typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); - -#define glTexBufferEXT GLEW_GET_FUN(__glewTexBufferEXT) - -#define GLEW_EXT_texture_buffer_object GLEW_GET_VAR(__GLEW_EXT_texture_buffer_object) - -#endif /* GL_EXT_texture_buffer_object */ - -/* -------------------- GL_EXT_texture_compression_dxt1 -------------------- */ - -#ifndef GL_EXT_texture_compression_dxt1 -#define GL_EXT_texture_compression_dxt1 1 - -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 - -#define GLEW_EXT_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_EXT_texture_compression_dxt1) - -#endif /* GL_EXT_texture_compression_dxt1 */ - -/* -------------------- GL_EXT_texture_compression_latc -------------------- */ - -#ifndef GL_EXT_texture_compression_latc -#define GL_EXT_texture_compression_latc 1 - -#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 -#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 -#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 -#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 - -#define GLEW_EXT_texture_compression_latc GLEW_GET_VAR(__GLEW_EXT_texture_compression_latc) - -#endif /* GL_EXT_texture_compression_latc */ - -/* -------------------- GL_EXT_texture_compression_rgtc -------------------- */ - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_EXT_texture_compression_rgtc 1 - -#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC -#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD -#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE - -#define GLEW_EXT_texture_compression_rgtc GLEW_GET_VAR(__GLEW_EXT_texture_compression_rgtc) - -#endif /* GL_EXT_texture_compression_rgtc */ - -/* -------------------- GL_EXT_texture_compression_s3tc -------------------- */ - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_EXT_texture_compression_s3tc 1 - -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 - -#define GLEW_EXT_texture_compression_s3tc GLEW_GET_VAR(__GLEW_EXT_texture_compression_s3tc) - -#endif /* GL_EXT_texture_compression_s3tc */ - -/* ------------------------ GL_EXT_texture_cube_map ------------------------ */ - -#ifndef GL_EXT_texture_cube_map -#define GL_EXT_texture_cube_map 1 - -#define GL_NORMAL_MAP_EXT 0x8511 -#define GL_REFLECTION_MAP_EXT 0x8512 -#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C - -#define GLEW_EXT_texture_cube_map GLEW_GET_VAR(__GLEW_EXT_texture_cube_map) - -#endif /* GL_EXT_texture_cube_map */ - -/* ----------------------- GL_EXT_texture_edge_clamp ----------------------- */ - -#ifndef GL_EXT_texture_edge_clamp -#define GL_EXT_texture_edge_clamp 1 - -#define GL_CLAMP_TO_EDGE_EXT 0x812F - -#define GLEW_EXT_texture_edge_clamp GLEW_GET_VAR(__GLEW_EXT_texture_edge_clamp) - -#endif /* GL_EXT_texture_edge_clamp */ - -/* --------------------------- GL_EXT_texture_env -------------------------- */ - -#ifndef GL_EXT_texture_env -#define GL_EXT_texture_env 1 - -#define GL_TEXTURE_ENV0_EXT 0 -#define GL_ENV_BLEND_EXT 0 -#define GL_TEXTURE_ENV_SHIFT_EXT 0 -#define GL_ENV_REPLACE_EXT 0 -#define GL_ENV_ADD_EXT 0 -#define GL_ENV_SUBTRACT_EXT 0 -#define GL_TEXTURE_ENV_MODE_ALPHA_EXT 0 -#define GL_ENV_REVERSE_SUBTRACT_EXT 0 -#define GL_ENV_REVERSE_BLEND_EXT 0 -#define GL_ENV_COPY_EXT 0 -#define GL_ENV_MODULATE_EXT 0 - -#define GLEW_EXT_texture_env GLEW_GET_VAR(__GLEW_EXT_texture_env) - -#endif /* GL_EXT_texture_env */ - -/* ------------------------- GL_EXT_texture_env_add ------------------------ */ - -#ifndef GL_EXT_texture_env_add -#define GL_EXT_texture_env_add 1 - -#define GLEW_EXT_texture_env_add GLEW_GET_VAR(__GLEW_EXT_texture_env_add) - -#endif /* GL_EXT_texture_env_add */ - -/* ----------------------- GL_EXT_texture_env_combine ---------------------- */ - -#ifndef GL_EXT_texture_env_combine -#define GL_EXT_texture_env_combine 1 - -#define GL_COMBINE_EXT 0x8570 -#define GL_COMBINE_RGB_EXT 0x8571 -#define GL_COMBINE_ALPHA_EXT 0x8572 -#define GL_RGB_SCALE_EXT 0x8573 -#define GL_ADD_SIGNED_EXT 0x8574 -#define GL_INTERPOLATE_EXT 0x8575 -#define GL_CONSTANT_EXT 0x8576 -#define GL_PRIMARY_COLOR_EXT 0x8577 -#define GL_PREVIOUS_EXT 0x8578 -#define GL_SOURCE0_RGB_EXT 0x8580 -#define GL_SOURCE1_RGB_EXT 0x8581 -#define GL_SOURCE2_RGB_EXT 0x8582 -#define GL_SOURCE0_ALPHA_EXT 0x8588 -#define GL_SOURCE1_ALPHA_EXT 0x8589 -#define GL_SOURCE2_ALPHA_EXT 0x858A -#define GL_OPERAND0_RGB_EXT 0x8590 -#define GL_OPERAND1_RGB_EXT 0x8591 -#define GL_OPERAND2_RGB_EXT 0x8592 -#define GL_OPERAND0_ALPHA_EXT 0x8598 -#define GL_OPERAND1_ALPHA_EXT 0x8599 -#define GL_OPERAND2_ALPHA_EXT 0x859A - -#define GLEW_EXT_texture_env_combine GLEW_GET_VAR(__GLEW_EXT_texture_env_combine) - -#endif /* GL_EXT_texture_env_combine */ - -/* ------------------------ GL_EXT_texture_env_dot3 ------------------------ */ - -#ifndef GL_EXT_texture_env_dot3 -#define GL_EXT_texture_env_dot3 1 - -#define GL_DOT3_RGB_EXT 0x8740 -#define GL_DOT3_RGBA_EXT 0x8741 - -#define GLEW_EXT_texture_env_dot3 GLEW_GET_VAR(__GLEW_EXT_texture_env_dot3) - -#endif /* GL_EXT_texture_env_dot3 */ - -/* ------------------- GL_EXT_texture_filter_anisotropic ------------------- */ - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 - -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF - -#define GLEW_EXT_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_EXT_texture_filter_anisotropic) - -#endif /* GL_EXT_texture_filter_anisotropic */ - -/* ------------------------- GL_EXT_texture_integer ------------------------ */ - -#ifndef GL_EXT_texture_integer -#define GL_EXT_texture_integer 1 - -#define GL_RGBA32UI_EXT 0x8D70 -#define GL_RGB32UI_EXT 0x8D71 -#define GL_ALPHA32UI_EXT 0x8D72 -#define GL_INTENSITY32UI_EXT 0x8D73 -#define GL_LUMINANCE32UI_EXT 0x8D74 -#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 -#define GL_RGBA16UI_EXT 0x8D76 -#define GL_RGB16UI_EXT 0x8D77 -#define GL_ALPHA16UI_EXT 0x8D78 -#define GL_INTENSITY16UI_EXT 0x8D79 -#define GL_LUMINANCE16UI_EXT 0x8D7A -#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B -#define GL_RGBA8UI_EXT 0x8D7C -#define GL_RGB8UI_EXT 0x8D7D -#define GL_ALPHA8UI_EXT 0x8D7E -#define GL_INTENSITY8UI_EXT 0x8D7F -#define GL_LUMINANCE8UI_EXT 0x8D80 -#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 -#define GL_RGBA32I_EXT 0x8D82 -#define GL_RGB32I_EXT 0x8D83 -#define GL_ALPHA32I_EXT 0x8D84 -#define GL_INTENSITY32I_EXT 0x8D85 -#define GL_LUMINANCE32I_EXT 0x8D86 -#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 -#define GL_RGBA16I_EXT 0x8D88 -#define GL_RGB16I_EXT 0x8D89 -#define GL_ALPHA16I_EXT 0x8D8A -#define GL_INTENSITY16I_EXT 0x8D8B -#define GL_LUMINANCE16I_EXT 0x8D8C -#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D -#define GL_RGBA8I_EXT 0x8D8E -#define GL_RGB8I_EXT 0x8D8F -#define GL_ALPHA8I_EXT 0x8D90 -#define GL_INTENSITY8I_EXT 0x8D91 -#define GL_LUMINANCE8I_EXT 0x8D92 -#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 -#define GL_RED_INTEGER_EXT 0x8D94 -#define GL_GREEN_INTEGER_EXT 0x8D95 -#define GL_BLUE_INTEGER_EXT 0x8D96 -#define GL_ALPHA_INTEGER_EXT 0x8D97 -#define GL_RGB_INTEGER_EXT 0x8D98 -#define GL_RGBA_INTEGER_EXT 0x8D99 -#define GL_BGR_INTEGER_EXT 0x8D9A -#define GL_BGRA_INTEGER_EXT 0x8D9B -#define GL_LUMINANCE_INTEGER_EXT 0x8D9C -#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D -#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E - -typedef void (GLAPIENTRY * PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); -typedef void (GLAPIENTRY * PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); - -#define glClearColorIiEXT GLEW_GET_FUN(__glewClearColorIiEXT) -#define glClearColorIuiEXT GLEW_GET_FUN(__glewClearColorIuiEXT) -#define glGetTexParameterIivEXT GLEW_GET_FUN(__glewGetTexParameterIivEXT) -#define glGetTexParameterIuivEXT GLEW_GET_FUN(__glewGetTexParameterIuivEXT) -#define glTexParameterIivEXT GLEW_GET_FUN(__glewTexParameterIivEXT) -#define glTexParameterIuivEXT GLEW_GET_FUN(__glewTexParameterIuivEXT) - -#define GLEW_EXT_texture_integer GLEW_GET_VAR(__GLEW_EXT_texture_integer) - -#endif /* GL_EXT_texture_integer */ - -/* ------------------------ GL_EXT_texture_lod_bias ------------------------ */ - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 - -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 - -#define GLEW_EXT_texture_lod_bias GLEW_GET_VAR(__GLEW_EXT_texture_lod_bias) - -#endif /* GL_EXT_texture_lod_bias */ - -/* ---------------------- GL_EXT_texture_mirror_clamp ---------------------- */ - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_EXT_texture_mirror_clamp 1 - -#define GL_MIRROR_CLAMP_EXT 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 - -#define GLEW_EXT_texture_mirror_clamp GLEW_GET_VAR(__GLEW_EXT_texture_mirror_clamp) - -#endif /* GL_EXT_texture_mirror_clamp */ - -/* ------------------------- GL_EXT_texture_object ------------------------- */ - -#ifndef GL_EXT_texture_object -#define GL_EXT_texture_object 1 - -#define GL_TEXTURE_PRIORITY_EXT 0x8066 -#define GL_TEXTURE_RESIDENT_EXT 0x8067 -#define GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define GL_TEXTURE_3D_BINDING_EXT 0x806A - -typedef GLboolean (GLAPIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint* textures, GLboolean* residences); -typedef void (GLAPIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); -typedef void (GLAPIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint* textures); -typedef void (GLAPIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint* textures); -typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture); -typedef void (GLAPIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint* textures, const GLclampf* priorities); - -#define glAreTexturesResidentEXT GLEW_GET_FUN(__glewAreTexturesResidentEXT) -#define glBindTextureEXT GLEW_GET_FUN(__glewBindTextureEXT) -#define glDeleteTexturesEXT GLEW_GET_FUN(__glewDeleteTexturesEXT) -#define glGenTexturesEXT GLEW_GET_FUN(__glewGenTexturesEXT) -#define glIsTextureEXT GLEW_GET_FUN(__glewIsTextureEXT) -#define glPrioritizeTexturesEXT GLEW_GET_FUN(__glewPrioritizeTexturesEXT) - -#define GLEW_EXT_texture_object GLEW_GET_VAR(__GLEW_EXT_texture_object) - -#endif /* GL_EXT_texture_object */ - -/* --------------------- GL_EXT_texture_perturb_normal --------------------- */ - -#ifndef GL_EXT_texture_perturb_normal -#define GL_EXT_texture_perturb_normal 1 - -#define GL_PERTURB_EXT 0x85AE -#define GL_TEXTURE_NORMAL_EXT 0x85AF - -typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); - -#define glTextureNormalEXT GLEW_GET_FUN(__glewTextureNormalEXT) - -#define GLEW_EXT_texture_perturb_normal GLEW_GET_VAR(__GLEW_EXT_texture_perturb_normal) - -#endif /* GL_EXT_texture_perturb_normal */ - -/* ------------------------ GL_EXT_texture_rectangle ----------------------- */ - -#ifndef GL_EXT_texture_rectangle -#define GL_EXT_texture_rectangle 1 - -#define GL_TEXTURE_RECTANGLE_EXT 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8 - -#define GLEW_EXT_texture_rectangle GLEW_GET_VAR(__GLEW_EXT_texture_rectangle) - -#endif /* GL_EXT_texture_rectangle */ - -/* -------------------------- GL_EXT_texture_sRGB -------------------------- */ - -#ifndef GL_EXT_texture_sRGB -#define GL_EXT_texture_sRGB 1 - -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB8_EXT 0x8C41 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 -#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 -#define GL_SLUMINANCE_EXT 0x8C46 -#define GL_SLUMINANCE8_EXT 0x8C47 -#define GL_COMPRESSED_SRGB_EXT 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 -#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F - -#define GLEW_EXT_texture_sRGB GLEW_GET_VAR(__GLEW_EXT_texture_sRGB) - -#endif /* GL_EXT_texture_sRGB */ - -/* ----------------------- GL_EXT_texture_sRGB_decode ---------------------- */ - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_EXT_texture_sRGB_decode 1 - -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A - -#define GLEW_EXT_texture_sRGB_decode GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_decode) - -#endif /* GL_EXT_texture_sRGB_decode */ - -/* --------------------- GL_EXT_texture_shared_exponent -------------------- */ - -#ifndef GL_EXT_texture_shared_exponent -#define GL_EXT_texture_shared_exponent 1 - -#define GL_RGB9_E5_EXT 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E -#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F - -#define GLEW_EXT_texture_shared_exponent GLEW_GET_VAR(__GLEW_EXT_texture_shared_exponent) - -#endif /* GL_EXT_texture_shared_exponent */ - -/* -------------------------- GL_EXT_texture_snorm ------------------------- */ - -#ifndef GL_EXT_texture_snorm -#define GL_EXT_texture_snorm 1 - -#define GL_RED_SNORM 0x8F90 -#define GL_RG_SNORM 0x8F91 -#define GL_RGB_SNORM 0x8F92 -#define GL_RGBA_SNORM 0x8F93 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM 0x8F98 -#define GL_RG16_SNORM 0x8F99 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGBA16_SNORM 0x8F9B -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_ALPHA_SNORM 0x9010 -#define GL_LUMINANCE_SNORM 0x9011 -#define GL_LUMINANCE_ALPHA_SNORM 0x9012 -#define GL_INTENSITY_SNORM 0x9013 -#define GL_ALPHA8_SNORM 0x9014 -#define GL_LUMINANCE8_SNORM 0x9015 -#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 -#define GL_INTENSITY8_SNORM 0x9017 -#define GL_ALPHA16_SNORM 0x9018 -#define GL_LUMINANCE16_SNORM 0x9019 -#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A -#define GL_INTENSITY16_SNORM 0x901B - -#define GLEW_EXT_texture_snorm GLEW_GET_VAR(__GLEW_EXT_texture_snorm) - -#endif /* GL_EXT_texture_snorm */ - -/* ------------------------- GL_EXT_texture_swizzle ------------------------ */ - -#ifndef GL_EXT_texture_swizzle -#define GL_EXT_texture_swizzle 1 - -#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 -#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 -#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 -#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 - -#define GLEW_EXT_texture_swizzle GLEW_GET_VAR(__GLEW_EXT_texture_swizzle) - -#endif /* GL_EXT_texture_swizzle */ - -/* --------------------------- GL_EXT_timer_query -------------------------- */ - -#ifndef GL_EXT_timer_query -#define GL_EXT_timer_query 1 - -#define GL_TIME_ELAPSED_EXT 0x88BF - -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); - -#define glGetQueryObjecti64vEXT GLEW_GET_FUN(__glewGetQueryObjecti64vEXT) -#define glGetQueryObjectui64vEXT GLEW_GET_FUN(__glewGetQueryObjectui64vEXT) - -#define GLEW_EXT_timer_query GLEW_GET_VAR(__GLEW_EXT_timer_query) - -#endif /* GL_EXT_timer_query */ - -/* ----------------------- GL_EXT_transform_feedback ----------------------- */ - -#ifndef GL_EXT_transform_feedback -#define GL_EXT_transform_feedback 1 - -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 -#define GL_RASTERIZER_DISCARD_EXT 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C -#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F - -typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei *size, GLenum *type, char *name); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const char ** varyings, GLenum bufferMode); - -#define glBeginTransformFeedbackEXT GLEW_GET_FUN(__glewBeginTransformFeedbackEXT) -#define glBindBufferBaseEXT GLEW_GET_FUN(__glewBindBufferBaseEXT) -#define glBindBufferOffsetEXT GLEW_GET_FUN(__glewBindBufferOffsetEXT) -#define glBindBufferRangeEXT GLEW_GET_FUN(__glewBindBufferRangeEXT) -#define glEndTransformFeedbackEXT GLEW_GET_FUN(__glewEndTransformFeedbackEXT) -#define glGetTransformFeedbackVaryingEXT GLEW_GET_FUN(__glewGetTransformFeedbackVaryingEXT) -#define glTransformFeedbackVaryingsEXT GLEW_GET_FUN(__glewTransformFeedbackVaryingsEXT) - -#define GLEW_EXT_transform_feedback GLEW_GET_VAR(__GLEW_EXT_transform_feedback) - -#endif /* GL_EXT_transform_feedback */ - -/* -------------------------- GL_EXT_vertex_array -------------------------- */ - -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 - -#define GL_DOUBLE_EXT 0x140A -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 - -typedef void (GLAPIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (GLAPIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean* pointer); -typedef void (GLAPIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void* pointer); -typedef void (GLAPIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void* pointer); -typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); - -#define glArrayElementEXT GLEW_GET_FUN(__glewArrayElementEXT) -#define glColorPointerEXT GLEW_GET_FUN(__glewColorPointerEXT) -#define glDrawArraysEXT GLEW_GET_FUN(__glewDrawArraysEXT) -#define glEdgeFlagPointerEXT GLEW_GET_FUN(__glewEdgeFlagPointerEXT) -#define glIndexPointerEXT GLEW_GET_FUN(__glewIndexPointerEXT) -#define glNormalPointerEXT GLEW_GET_FUN(__glewNormalPointerEXT) -#define glTexCoordPointerEXT GLEW_GET_FUN(__glewTexCoordPointerEXT) -#define glVertexPointerEXT GLEW_GET_FUN(__glewVertexPointerEXT) - -#define GLEW_EXT_vertex_array GLEW_GET_VAR(__GLEW_EXT_vertex_array) - -#endif /* GL_EXT_vertex_array */ - -/* ------------------------ GL_EXT_vertex_array_bgra ----------------------- */ - -#ifndef GL_EXT_vertex_array_bgra -#define GL_EXT_vertex_array_bgra 1 - -#define GL_BGRA 0x80E1 - -#define GLEW_EXT_vertex_array_bgra GLEW_GET_VAR(__GLEW_EXT_vertex_array_bgra) - -#endif /* GL_EXT_vertex_array_bgra */ - -/* ----------------------- GL_EXT_vertex_attrib_64bit ---------------------- */ - -#ifndef GL_EXT_vertex_attrib_64bit -#define GL_EXT_vertex_attrib_64bit 1 - -#define GL_DOUBLE_MAT2_EXT 0x8F46 -#define GL_DOUBLE_MAT3_EXT 0x8F47 -#define GL_DOUBLE_MAT4_EXT 0x8F48 -#define GL_DOUBLE_MAT2x3_EXT 0x8F49 -#define GL_DOUBLE_MAT2x4_EXT 0x8F4A -#define GL_DOUBLE_MAT3x2_EXT 0x8F4B -#define GL_DOUBLE_MAT3x4_EXT 0x8F4C -#define GL_DOUBLE_MAT4x2_EXT 0x8F4D -#define GL_DOUBLE_MAT4x3_EXT 0x8F4E -#define GL_DOUBLE_VEC2_EXT 0x8FFC -#define GL_DOUBLE_VEC3_EXT 0x8FFD -#define GL_DOUBLE_VEC4_EXT 0x8FFE - -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); - -#define glGetVertexAttribLdvEXT GLEW_GET_FUN(__glewGetVertexAttribLdvEXT) -#define glVertexArrayVertexAttribLOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLOffsetEXT) -#define glVertexAttribL1dEXT GLEW_GET_FUN(__glewVertexAttribL1dEXT) -#define glVertexAttribL1dvEXT GLEW_GET_FUN(__glewVertexAttribL1dvEXT) -#define glVertexAttribL2dEXT GLEW_GET_FUN(__glewVertexAttribL2dEXT) -#define glVertexAttribL2dvEXT GLEW_GET_FUN(__glewVertexAttribL2dvEXT) -#define glVertexAttribL3dEXT GLEW_GET_FUN(__glewVertexAttribL3dEXT) -#define glVertexAttribL3dvEXT GLEW_GET_FUN(__glewVertexAttribL3dvEXT) -#define glVertexAttribL4dEXT GLEW_GET_FUN(__glewVertexAttribL4dEXT) -#define glVertexAttribL4dvEXT GLEW_GET_FUN(__glewVertexAttribL4dvEXT) -#define glVertexAttribLPointerEXT GLEW_GET_FUN(__glewVertexAttribLPointerEXT) - -#define GLEW_EXT_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_EXT_vertex_attrib_64bit) - -#endif /* GL_EXT_vertex_attrib_64bit */ - -/* -------------------------- GL_EXT_vertex_shader ------------------------- */ - -#ifndef GL_EXT_vertex_shader -#define GL_EXT_vertex_shader 1 - -#define GL_VERTEX_SHADER_EXT 0x8780 -#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define GL_OP_INDEX_EXT 0x8782 -#define GL_OP_NEGATE_EXT 0x8783 -#define GL_OP_DOT3_EXT 0x8784 -#define GL_OP_DOT4_EXT 0x8785 -#define GL_OP_MUL_EXT 0x8786 -#define GL_OP_ADD_EXT 0x8787 -#define GL_OP_MADD_EXT 0x8788 -#define GL_OP_FRAC_EXT 0x8789 -#define GL_OP_MAX_EXT 0x878A -#define GL_OP_MIN_EXT 0x878B -#define GL_OP_SET_GE_EXT 0x878C -#define GL_OP_SET_LT_EXT 0x878D -#define GL_OP_CLAMP_EXT 0x878E -#define GL_OP_FLOOR_EXT 0x878F -#define GL_OP_ROUND_EXT 0x8790 -#define GL_OP_EXP_BASE_2_EXT 0x8791 -#define GL_OP_LOG_BASE_2_EXT 0x8792 -#define GL_OP_POWER_EXT 0x8793 -#define GL_OP_RECIP_EXT 0x8794 -#define GL_OP_RECIP_SQRT_EXT 0x8795 -#define GL_OP_SUB_EXT 0x8796 -#define GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define GL_OP_MOV_EXT 0x8799 -#define GL_OUTPUT_VERTEX_EXT 0x879A -#define GL_OUTPUT_COLOR0_EXT 0x879B -#define GL_OUTPUT_COLOR1_EXT 0x879C -#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define GL_OUTPUT_FOG_EXT 0x87BD -#define GL_SCALAR_EXT 0x87BE -#define GL_VECTOR_EXT 0x87BF -#define GL_MATRIX_EXT 0x87C0 -#define GL_VARIANT_EXT 0x87C1 -#define GL_INVARIANT_EXT 0x87C2 -#define GL_LOCAL_CONSTANT_EXT 0x87C3 -#define GL_LOCAL_EXT 0x87C4 -#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define GL_X_EXT 0x87D5 -#define GL_Y_EXT 0x87D6 -#define GL_Z_EXT 0x87D7 -#define GL_W_EXT 0x87D8 -#define GL_NEGATIVE_X_EXT 0x87D9 -#define GL_NEGATIVE_Y_EXT 0x87DA -#define GL_NEGATIVE_Z_EXT 0x87DB -#define GL_NEGATIVE_W_EXT 0x87DC -#define GL_ZERO_EXT 0x87DD -#define GL_ONE_EXT 0x87DE -#define GL_NEGATIVE_ONE_EXT 0x87DF -#define GL_NORMALIZED_RANGE_EXT 0x87E0 -#define GL_FULL_RANGE_EXT 0x87E1 -#define GL_CURRENT_VERTEX_EXT 0x87E2 -#define GL_MVP_MATRIX_EXT 0x87E3 -#define GL_VARIANT_VALUE_EXT 0x87E4 -#define GL_VARIANT_DATATYPE_EXT 0x87E5 -#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define GL_VARIANT_ARRAY_EXT 0x87E8 -#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define GL_INVARIANT_VALUE_EXT 0x87EA -#define GL_INVARIANT_DATATYPE_EXT 0x87EB -#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED - -typedef void (GLAPIENTRY * PFNGLBEGINVERTEXSHADEREXTPROC) (void); -typedef GLuint (GLAPIENTRY * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDPARAMETEREXTPROC) (GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); -typedef void (GLAPIENTRY * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENDVERTEXSHADEREXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLuint (GLAPIENTRY * PFNGLGENSYMBOLSEXTPROC) (GLenum dataType, GLenum storageType, GLenum range, GLuint components); -typedef GLuint (GLAPIENTRY * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); -typedef void (GLAPIENTRY * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (GLAPIENTRY * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid **data); -typedef void (GLAPIENTRY * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLboolean (GLAPIENTRY * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); -typedef void (GLAPIENTRY * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, GLvoid *addr); -typedef void (GLAPIENTRY * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, GLvoid *addr); -typedef void (GLAPIENTRY * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); -typedef void (GLAPIENTRY * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -typedef void (GLAPIENTRY * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -typedef void (GLAPIENTRY * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (GLAPIENTRY * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, GLvoid *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTBVEXTPROC) (GLuint id, GLbyte *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTDVEXTPROC) (GLuint id, GLdouble *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTFVEXTPROC) (GLuint id, GLfloat *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTIVEXTPROC) (GLuint id, GLint *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTSVEXTPROC) (GLuint id, GLshort *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTUBVEXTPROC) (GLuint id, GLubyte *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTUIVEXTPROC) (GLuint id, GLuint *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTUSVEXTPROC) (GLuint id, GLushort *addr); -typedef void (GLAPIENTRY * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); - -#define glBeginVertexShaderEXT GLEW_GET_FUN(__glewBeginVertexShaderEXT) -#define glBindLightParameterEXT GLEW_GET_FUN(__glewBindLightParameterEXT) -#define glBindMaterialParameterEXT GLEW_GET_FUN(__glewBindMaterialParameterEXT) -#define glBindParameterEXT GLEW_GET_FUN(__glewBindParameterEXT) -#define glBindTexGenParameterEXT GLEW_GET_FUN(__glewBindTexGenParameterEXT) -#define glBindTextureUnitParameterEXT GLEW_GET_FUN(__glewBindTextureUnitParameterEXT) -#define glBindVertexShaderEXT GLEW_GET_FUN(__glewBindVertexShaderEXT) -#define glDeleteVertexShaderEXT GLEW_GET_FUN(__glewDeleteVertexShaderEXT) -#define glDisableVariantClientStateEXT GLEW_GET_FUN(__glewDisableVariantClientStateEXT) -#define glEnableVariantClientStateEXT GLEW_GET_FUN(__glewEnableVariantClientStateEXT) -#define glEndVertexShaderEXT GLEW_GET_FUN(__glewEndVertexShaderEXT) -#define glExtractComponentEXT GLEW_GET_FUN(__glewExtractComponentEXT) -#define glGenSymbolsEXT GLEW_GET_FUN(__glewGenSymbolsEXT) -#define glGenVertexShadersEXT GLEW_GET_FUN(__glewGenVertexShadersEXT) -#define glGetInvariantBooleanvEXT GLEW_GET_FUN(__glewGetInvariantBooleanvEXT) -#define glGetInvariantFloatvEXT GLEW_GET_FUN(__glewGetInvariantFloatvEXT) -#define glGetInvariantIntegervEXT GLEW_GET_FUN(__glewGetInvariantIntegervEXT) -#define glGetLocalConstantBooleanvEXT GLEW_GET_FUN(__glewGetLocalConstantBooleanvEXT) -#define glGetLocalConstantFloatvEXT GLEW_GET_FUN(__glewGetLocalConstantFloatvEXT) -#define glGetLocalConstantIntegervEXT GLEW_GET_FUN(__glewGetLocalConstantIntegervEXT) -#define glGetVariantBooleanvEXT GLEW_GET_FUN(__glewGetVariantBooleanvEXT) -#define glGetVariantFloatvEXT GLEW_GET_FUN(__glewGetVariantFloatvEXT) -#define glGetVariantIntegervEXT GLEW_GET_FUN(__glewGetVariantIntegervEXT) -#define glGetVariantPointervEXT GLEW_GET_FUN(__glewGetVariantPointervEXT) -#define glInsertComponentEXT GLEW_GET_FUN(__glewInsertComponentEXT) -#define glIsVariantEnabledEXT GLEW_GET_FUN(__glewIsVariantEnabledEXT) -#define glSetInvariantEXT GLEW_GET_FUN(__glewSetInvariantEXT) -#define glSetLocalConstantEXT GLEW_GET_FUN(__glewSetLocalConstantEXT) -#define glShaderOp1EXT GLEW_GET_FUN(__glewShaderOp1EXT) -#define glShaderOp2EXT GLEW_GET_FUN(__glewShaderOp2EXT) -#define glShaderOp3EXT GLEW_GET_FUN(__glewShaderOp3EXT) -#define glSwizzleEXT GLEW_GET_FUN(__glewSwizzleEXT) -#define glVariantPointerEXT GLEW_GET_FUN(__glewVariantPointerEXT) -#define glVariantbvEXT GLEW_GET_FUN(__glewVariantbvEXT) -#define glVariantdvEXT GLEW_GET_FUN(__glewVariantdvEXT) -#define glVariantfvEXT GLEW_GET_FUN(__glewVariantfvEXT) -#define glVariantivEXT GLEW_GET_FUN(__glewVariantivEXT) -#define glVariantsvEXT GLEW_GET_FUN(__glewVariantsvEXT) -#define glVariantubvEXT GLEW_GET_FUN(__glewVariantubvEXT) -#define glVariantuivEXT GLEW_GET_FUN(__glewVariantuivEXT) -#define glVariantusvEXT GLEW_GET_FUN(__glewVariantusvEXT) -#define glWriteMaskEXT GLEW_GET_FUN(__glewWriteMaskEXT) - -#define GLEW_EXT_vertex_shader GLEW_GET_VAR(__GLEW_EXT_vertex_shader) - -#endif /* GL_EXT_vertex_shader */ - -/* ------------------------ GL_EXT_vertex_weighting ------------------------ */ - -#ifndef GL_EXT_vertex_weighting -#define GL_EXT_vertex_weighting 1 - -#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 -#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6 -#define GL_MODELVIEW0_EXT 0x1700 -#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define GL_MODELVIEW1_MATRIX_EXT 0x8506 -#define GL_VERTEX_WEIGHTING_EXT 0x8509 -#define GL_MODELVIEW1_EXT 0x850A -#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 - -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, void* pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight); - -#define glVertexWeightPointerEXT GLEW_GET_FUN(__glewVertexWeightPointerEXT) -#define glVertexWeightfEXT GLEW_GET_FUN(__glewVertexWeightfEXT) -#define glVertexWeightfvEXT GLEW_GET_FUN(__glewVertexWeightfvEXT) - -#define GLEW_EXT_vertex_weighting GLEW_GET_VAR(__GLEW_EXT_vertex_weighting) - -#endif /* GL_EXT_vertex_weighting */ - -/* ------------------------- GL_EXT_x11_sync_object ------------------------ */ - -#ifndef GL_EXT_x11_sync_object -#define GL_EXT_x11_sync_object 1 - -#define GL_SYNC_X11_FENCE_EXT 0x90E1 - -typedef GLsync (GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); - -#define glImportSyncEXT GLEW_GET_FUN(__glewImportSyncEXT) - -#define GLEW_EXT_x11_sync_object GLEW_GET_VAR(__GLEW_EXT_x11_sync_object) - -#endif /* GL_EXT_x11_sync_object */ - -/* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */ - -#ifndef GL_GREMEDY_frame_terminator -#define GL_GREMEDY_frame_terminator 1 - -typedef void (GLAPIENTRY * PFNGLFRAMETERMINATORGREMEDYPROC) (void); - -#define glFrameTerminatorGREMEDY GLEW_GET_FUN(__glewFrameTerminatorGREMEDY) - -#define GLEW_GREMEDY_frame_terminator GLEW_GET_VAR(__GLEW_GREMEDY_frame_terminator) - -#endif /* GL_GREMEDY_frame_terminator */ - -/* ------------------------ GL_GREMEDY_string_marker ----------------------- */ - -#ifndef GL_GREMEDY_string_marker -#define GL_GREMEDY_string_marker 1 - -typedef void (GLAPIENTRY * PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void* string); - -#define glStringMarkerGREMEDY GLEW_GET_FUN(__glewStringMarkerGREMEDY) - -#define GLEW_GREMEDY_string_marker GLEW_GET_VAR(__GLEW_GREMEDY_string_marker) - -#endif /* GL_GREMEDY_string_marker */ - -/* --------------------- GL_HP_convolution_border_modes -------------------- */ - -#ifndef GL_HP_convolution_border_modes -#define GL_HP_convolution_border_modes 1 - -#define GLEW_HP_convolution_border_modes GLEW_GET_VAR(__GLEW_HP_convolution_border_modes) - -#endif /* GL_HP_convolution_border_modes */ - -/* ------------------------- GL_HP_image_transform ------------------------- */ - -#ifndef GL_HP_image_transform -#define GL_HP_image_transform 1 - -typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); - -#define glGetImageTransformParameterfvHP GLEW_GET_FUN(__glewGetImageTransformParameterfvHP) -#define glGetImageTransformParameterivHP GLEW_GET_FUN(__glewGetImageTransformParameterivHP) -#define glImageTransformParameterfHP GLEW_GET_FUN(__glewImageTransformParameterfHP) -#define glImageTransformParameterfvHP GLEW_GET_FUN(__glewImageTransformParameterfvHP) -#define glImageTransformParameteriHP GLEW_GET_FUN(__glewImageTransformParameteriHP) -#define glImageTransformParameterivHP GLEW_GET_FUN(__glewImageTransformParameterivHP) - -#define GLEW_HP_image_transform GLEW_GET_VAR(__GLEW_HP_image_transform) - -#endif /* GL_HP_image_transform */ - -/* -------------------------- GL_HP_occlusion_test ------------------------- */ - -#ifndef GL_HP_occlusion_test -#define GL_HP_occlusion_test 1 - -#define GL_OCCLUSION_TEST_HP 0x8165 -#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 - -#define GLEW_HP_occlusion_test GLEW_GET_VAR(__GLEW_HP_occlusion_test) - -#endif /* GL_HP_occlusion_test */ - -/* ------------------------- GL_HP_texture_lighting ------------------------ */ - -#ifndef GL_HP_texture_lighting -#define GL_HP_texture_lighting 1 - -#define GLEW_HP_texture_lighting GLEW_GET_VAR(__GLEW_HP_texture_lighting) - -#endif /* GL_HP_texture_lighting */ - -/* --------------------------- GL_IBM_cull_vertex -------------------------- */ - -#ifndef GL_IBM_cull_vertex -#define GL_IBM_cull_vertex 1 - -#define GL_CULL_VERTEX_IBM 103050 - -#define GLEW_IBM_cull_vertex GLEW_GET_VAR(__GLEW_IBM_cull_vertex) - -#endif /* GL_IBM_cull_vertex */ - -/* ---------------------- GL_IBM_multimode_draw_arrays --------------------- */ - -#ifndef GL_IBM_multimode_draw_arrays -#define GL_IBM_multimode_draw_arrays 1 - -typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum* mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum* mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, GLint modestride); - -#define glMultiModeDrawArraysIBM GLEW_GET_FUN(__glewMultiModeDrawArraysIBM) -#define glMultiModeDrawElementsIBM GLEW_GET_FUN(__glewMultiModeDrawElementsIBM) - -#define GLEW_IBM_multimode_draw_arrays GLEW_GET_VAR(__GLEW_IBM_multimode_draw_arrays) - -#endif /* GL_IBM_multimode_draw_arrays */ - -/* ------------------------- GL_IBM_rasterpos_clip ------------------------- */ - -#ifndef GL_IBM_rasterpos_clip -#define GL_IBM_rasterpos_clip 1 - -#define GL_RASTER_POSITION_UNCLIPPED_IBM 103010 - -#define GLEW_IBM_rasterpos_clip GLEW_GET_VAR(__GLEW_IBM_rasterpos_clip) - -#endif /* GL_IBM_rasterpos_clip */ - -/* --------------------------- GL_IBM_static_data -------------------------- */ - -#ifndef GL_IBM_static_data -#define GL_IBM_static_data 1 - -#define GL_ALL_STATIC_DATA_IBM 103060 -#define GL_STATIC_VERTEX_ARRAY_IBM 103061 - -#define GLEW_IBM_static_data GLEW_GET_VAR(__GLEW_IBM_static_data) - -#endif /* GL_IBM_static_data */ - -/* --------------------- GL_IBM_texture_mirrored_repeat -------------------- */ - -#ifndef GL_IBM_texture_mirrored_repeat -#define GL_IBM_texture_mirrored_repeat 1 - -#define GL_MIRRORED_REPEAT_IBM 0x8370 - -#define GLEW_IBM_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_IBM_texture_mirrored_repeat) - -#endif /* GL_IBM_texture_mirrored_repeat */ - -/* ----------------------- GL_IBM_vertex_array_lists ----------------------- */ - -#ifndef GL_IBM_vertex_array_lists -#define GL_IBM_vertex_array_lists 1 - -#define GL_VERTEX_ARRAY_LIST_IBM 103070 -#define GL_NORMAL_ARRAY_LIST_IBM 103071 -#define GL_COLOR_ARRAY_LIST_IBM 103072 -#define GL_INDEX_ARRAY_LIST_IBM 103073 -#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 - -typedef void (GLAPIENTRY * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); - -#define glColorPointerListIBM GLEW_GET_FUN(__glewColorPointerListIBM) -#define glEdgeFlagPointerListIBM GLEW_GET_FUN(__glewEdgeFlagPointerListIBM) -#define glFogCoordPointerListIBM GLEW_GET_FUN(__glewFogCoordPointerListIBM) -#define glIndexPointerListIBM GLEW_GET_FUN(__glewIndexPointerListIBM) -#define glNormalPointerListIBM GLEW_GET_FUN(__glewNormalPointerListIBM) -#define glSecondaryColorPointerListIBM GLEW_GET_FUN(__glewSecondaryColorPointerListIBM) -#define glTexCoordPointerListIBM GLEW_GET_FUN(__glewTexCoordPointerListIBM) -#define glVertexPointerListIBM GLEW_GET_FUN(__glewVertexPointerListIBM) - -#define GLEW_IBM_vertex_array_lists GLEW_GET_VAR(__GLEW_IBM_vertex_array_lists) - -#endif /* GL_IBM_vertex_array_lists */ - -/* -------------------------- GL_INGR_color_clamp -------------------------- */ - -#ifndef GL_INGR_color_clamp -#define GL_INGR_color_clamp 1 - -#define GL_RED_MIN_CLAMP_INGR 0x8560 -#define GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define GL_RED_MAX_CLAMP_INGR 0x8564 -#define GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 - -#define GLEW_INGR_color_clamp GLEW_GET_VAR(__GLEW_INGR_color_clamp) - -#endif /* GL_INGR_color_clamp */ - -/* ------------------------- GL_INGR_interlace_read ------------------------ */ - -#ifndef GL_INGR_interlace_read -#define GL_INGR_interlace_read 1 - -#define GL_INTERLACE_READ_INGR 0x8568 - -#define GLEW_INGR_interlace_read GLEW_GET_VAR(__GLEW_INGR_interlace_read) - -#endif /* GL_INGR_interlace_read */ - -/* ------------------------ GL_INTEL_parallel_arrays ----------------------- */ - -#ifndef GL_INTEL_parallel_arrays -#define GL_INTEL_parallel_arrays 1 - -#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 - -typedef void (GLAPIENTRY * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); -typedef void (GLAPIENTRY * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void** pointer); -typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); - -#define glColorPointervINTEL GLEW_GET_FUN(__glewColorPointervINTEL) -#define glNormalPointervINTEL GLEW_GET_FUN(__glewNormalPointervINTEL) -#define glTexCoordPointervINTEL GLEW_GET_FUN(__glewTexCoordPointervINTEL) -#define glVertexPointervINTEL GLEW_GET_FUN(__glewVertexPointervINTEL) - -#define GLEW_INTEL_parallel_arrays GLEW_GET_VAR(__GLEW_INTEL_parallel_arrays) - -#endif /* GL_INTEL_parallel_arrays */ - -/* ------------------------ GL_INTEL_texture_scissor ----------------------- */ - -#ifndef GL_INTEL_texture_scissor -#define GL_INTEL_texture_scissor 1 - -typedef void (GLAPIENTRY * PFNGLTEXSCISSORFUNCINTELPROC) (GLenum target, GLenum lfunc, GLenum hfunc); -typedef void (GLAPIENTRY * PFNGLTEXSCISSORINTELPROC) (GLenum target, GLclampf tlow, GLclampf thigh); - -#define glTexScissorFuncINTEL GLEW_GET_FUN(__glewTexScissorFuncINTEL) -#define glTexScissorINTEL GLEW_GET_FUN(__glewTexScissorINTEL) - -#define GLEW_INTEL_texture_scissor GLEW_GET_VAR(__GLEW_INTEL_texture_scissor) - -#endif /* GL_INTEL_texture_scissor */ - -/* -------------------------- GL_KTX_buffer_region ------------------------- */ - -#ifndef GL_KTX_buffer_region -#define GL_KTX_buffer_region 1 - -#define GL_KTX_FRONT_REGION 0x0 -#define GL_KTX_BACK_REGION 0x1 -#define GL_KTX_Z_REGION 0x2 -#define GL_KTX_STENCIL_REGION 0x3 - -typedef GLuint (GLAPIENTRY * PFNGLBUFFERREGIONENABLEDPROC) (void); -typedef void (GLAPIENTRY * PFNGLDELETEBUFFERREGIONPROC) (GLenum region); -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest); -typedef GLuint (GLAPIENTRY * PFNGLNEWBUFFERREGIONPROC) (GLenum region); -typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height); - -#define glBufferRegionEnabled GLEW_GET_FUN(__glewBufferRegionEnabled) -#define glDeleteBufferRegion GLEW_GET_FUN(__glewDeleteBufferRegion) -#define glDrawBufferRegion GLEW_GET_FUN(__glewDrawBufferRegion) -#define glNewBufferRegion GLEW_GET_FUN(__glewNewBufferRegion) -#define glReadBufferRegion GLEW_GET_FUN(__glewReadBufferRegion) - -#define GLEW_KTX_buffer_region GLEW_GET_VAR(__GLEW_KTX_buffer_region) - -#endif /* GL_KTX_buffer_region */ - -/* ------------------------- GL_MESAX_texture_stack ------------------------ */ - -#ifndef GL_MESAX_texture_stack -#define GL_MESAX_texture_stack 1 - -#define GL_TEXTURE_1D_STACK_MESAX 0x8759 -#define GL_TEXTURE_2D_STACK_MESAX 0x875A -#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B -#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C -#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D -#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E - -#define GLEW_MESAX_texture_stack GLEW_GET_VAR(__GLEW_MESAX_texture_stack) - -#endif /* GL_MESAX_texture_stack */ - -/* -------------------------- GL_MESA_pack_invert -------------------------- */ - -#ifndef GL_MESA_pack_invert -#define GL_MESA_pack_invert 1 - -#define GL_PACK_INVERT_MESA 0x8758 - -#define GLEW_MESA_pack_invert GLEW_GET_VAR(__GLEW_MESA_pack_invert) - -#endif /* GL_MESA_pack_invert */ - -/* ------------------------- GL_MESA_resize_buffers ------------------------ */ - -#ifndef GL_MESA_resize_buffers -#define GL_MESA_resize_buffers 1 - -typedef void (GLAPIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void); - -#define glResizeBuffersMESA GLEW_GET_FUN(__glewResizeBuffersMESA) - -#define GLEW_MESA_resize_buffers GLEW_GET_VAR(__GLEW_MESA_resize_buffers) - -#endif /* GL_MESA_resize_buffers */ - -/* --------------------------- GL_MESA_window_pos -------------------------- */ - -#ifndef GL_MESA_window_pos -#define GL_MESA_window_pos 1 - -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p); - -#define glWindowPos2dMESA GLEW_GET_FUN(__glewWindowPos2dMESA) -#define glWindowPos2dvMESA GLEW_GET_FUN(__glewWindowPos2dvMESA) -#define glWindowPos2fMESA GLEW_GET_FUN(__glewWindowPos2fMESA) -#define glWindowPos2fvMESA GLEW_GET_FUN(__glewWindowPos2fvMESA) -#define glWindowPos2iMESA GLEW_GET_FUN(__glewWindowPos2iMESA) -#define glWindowPos2ivMESA GLEW_GET_FUN(__glewWindowPos2ivMESA) -#define glWindowPos2sMESA GLEW_GET_FUN(__glewWindowPos2sMESA) -#define glWindowPos2svMESA GLEW_GET_FUN(__glewWindowPos2svMESA) -#define glWindowPos3dMESA GLEW_GET_FUN(__glewWindowPos3dMESA) -#define glWindowPos3dvMESA GLEW_GET_FUN(__glewWindowPos3dvMESA) -#define glWindowPos3fMESA GLEW_GET_FUN(__glewWindowPos3fMESA) -#define glWindowPos3fvMESA GLEW_GET_FUN(__glewWindowPos3fvMESA) -#define glWindowPos3iMESA GLEW_GET_FUN(__glewWindowPos3iMESA) -#define glWindowPos3ivMESA GLEW_GET_FUN(__glewWindowPos3ivMESA) -#define glWindowPos3sMESA GLEW_GET_FUN(__glewWindowPos3sMESA) -#define glWindowPos3svMESA GLEW_GET_FUN(__glewWindowPos3svMESA) -#define glWindowPos4dMESA GLEW_GET_FUN(__glewWindowPos4dMESA) -#define glWindowPos4dvMESA GLEW_GET_FUN(__glewWindowPos4dvMESA) -#define glWindowPos4fMESA GLEW_GET_FUN(__glewWindowPos4fMESA) -#define glWindowPos4fvMESA GLEW_GET_FUN(__glewWindowPos4fvMESA) -#define glWindowPos4iMESA GLEW_GET_FUN(__glewWindowPos4iMESA) -#define glWindowPos4ivMESA GLEW_GET_FUN(__glewWindowPos4ivMESA) -#define glWindowPos4sMESA GLEW_GET_FUN(__glewWindowPos4sMESA) -#define glWindowPos4svMESA GLEW_GET_FUN(__glewWindowPos4svMESA) - -#define GLEW_MESA_window_pos GLEW_GET_VAR(__GLEW_MESA_window_pos) - -#endif /* GL_MESA_window_pos */ - -/* ------------------------- GL_MESA_ycbcr_texture ------------------------- */ - -#ifndef GL_MESA_ycbcr_texture -#define GL_MESA_ycbcr_texture 1 - -#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB -#define GL_YCBCR_MESA 0x8757 - -#define GLEW_MESA_ycbcr_texture GLEW_GET_VAR(__GLEW_MESA_ycbcr_texture) - -#endif /* GL_MESA_ycbcr_texture */ - -/* ------------------------- GL_NVX_gpu_memory_info ------------------------ */ - -#ifndef GL_NVX_gpu_memory_info -#define GL_NVX_gpu_memory_info 1 - -#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 -#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 -#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 -#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A -#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B - -#define GLEW_NVX_gpu_memory_info GLEW_GET_VAR(__GLEW_NVX_gpu_memory_info) - -#endif /* GL_NVX_gpu_memory_info */ - -/* --------------------------- GL_NV_blend_square -------------------------- */ - -#ifndef GL_NV_blend_square -#define GL_NV_blend_square 1 - -#define GLEW_NV_blend_square GLEW_GET_VAR(__GLEW_NV_blend_square) - -#endif /* GL_NV_blend_square */ - -/* ------------------------ GL_NV_conditional_render ----------------------- */ - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 - -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 - -typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); -typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVPROC) (void); - -#define glBeginConditionalRenderNV GLEW_GET_FUN(__glewBeginConditionalRenderNV) -#define glEndConditionalRenderNV GLEW_GET_FUN(__glewEndConditionalRenderNV) - -#define GLEW_NV_conditional_render GLEW_GET_VAR(__GLEW_NV_conditional_render) - -#endif /* GL_NV_conditional_render */ - -/* ----------------------- GL_NV_copy_depth_to_color ----------------------- */ - -#ifndef GL_NV_copy_depth_to_color -#define GL_NV_copy_depth_to_color 1 - -#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E -#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F - -#define GLEW_NV_copy_depth_to_color GLEW_GET_VAR(__GLEW_NV_copy_depth_to_color) - -#endif /* GL_NV_copy_depth_to_color */ - -/* ---------------------------- GL_NV_copy_image --------------------------- */ - -#ifndef GL_NV_copy_image -#define GL_NV_copy_image 1 - -typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); - -#define glCopyImageSubDataNV GLEW_GET_FUN(__glewCopyImageSubDataNV) - -#define GLEW_NV_copy_image GLEW_GET_VAR(__GLEW_NV_copy_image) - -#endif /* GL_NV_copy_image */ - -/* ------------------------ GL_NV_depth_buffer_float ----------------------- */ - -#ifndef GL_NV_depth_buffer_float -#define GL_NV_depth_buffer_float 1 - -#define GL_DEPTH_COMPONENT32F_NV 0x8DAB -#define GL_DEPTH32F_STENCIL8_NV 0x8DAC -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD -#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF - -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); -typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); - -#define glClearDepthdNV GLEW_GET_FUN(__glewClearDepthdNV) -#define glDepthBoundsdNV GLEW_GET_FUN(__glewDepthBoundsdNV) -#define glDepthRangedNV GLEW_GET_FUN(__glewDepthRangedNV) - -#define GLEW_NV_depth_buffer_float GLEW_GET_VAR(__GLEW_NV_depth_buffer_float) - -#endif /* GL_NV_depth_buffer_float */ - -/* --------------------------- GL_NV_depth_clamp --------------------------- */ - -#ifndef GL_NV_depth_clamp -#define GL_NV_depth_clamp 1 - -#define GL_DEPTH_CLAMP_NV 0x864F - -#define GLEW_NV_depth_clamp GLEW_GET_VAR(__GLEW_NV_depth_clamp) - -#endif /* GL_NV_depth_clamp */ - -/* ---------------------- GL_NV_depth_range_unclamped ---------------------- */ - -#ifndef GL_NV_depth_range_unclamped -#define GL_NV_depth_range_unclamped 1 - -#define GL_SAMPLE_COUNT_BITS_NV 0x8864 -#define GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865 -#define GL_QUERY_RESULT_NV 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_NV 0x8867 -#define GL_SAMPLE_COUNT_NV 0x8914 - -#define GLEW_NV_depth_range_unclamped GLEW_GET_VAR(__GLEW_NV_depth_range_unclamped) - -#endif /* GL_NV_depth_range_unclamped */ - -/* ---------------------------- GL_NV_evaluators --------------------------- */ - -#ifndef GL_NV_evaluators -#define GL_NV_evaluators 1 - -#define GL_EVAL_2D_NV 0x86C0 -#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define GL_MAP_TESSELLATION_NV 0x86C2 -#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 - -typedef void (GLAPIENTRY * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); -typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void* points); -typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void* points); -typedef void (GLAPIENTRY * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint* params); - -#define glEvalMapsNV GLEW_GET_FUN(__glewEvalMapsNV) -#define glGetMapAttribParameterfvNV GLEW_GET_FUN(__glewGetMapAttribParameterfvNV) -#define glGetMapAttribParameterivNV GLEW_GET_FUN(__glewGetMapAttribParameterivNV) -#define glGetMapControlPointsNV GLEW_GET_FUN(__glewGetMapControlPointsNV) -#define glGetMapParameterfvNV GLEW_GET_FUN(__glewGetMapParameterfvNV) -#define glGetMapParameterivNV GLEW_GET_FUN(__glewGetMapParameterivNV) -#define glMapControlPointsNV GLEW_GET_FUN(__glewMapControlPointsNV) -#define glMapParameterfvNV GLEW_GET_FUN(__glewMapParameterfvNV) -#define glMapParameterivNV GLEW_GET_FUN(__glewMapParameterivNV) - -#define GLEW_NV_evaluators GLEW_GET_VAR(__GLEW_NV_evaluators) - -#endif /* GL_NV_evaluators */ - -/* ----------------------- GL_NV_explicit_multisample ---------------------- */ - -#ifndef GL_NV_explicit_multisample -#define GL_NV_explicit_multisample 1 - -#define GL_SAMPLE_POSITION_NV 0x8E50 -#define GL_SAMPLE_MASK_NV 0x8E51 -#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 -#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 -#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 -#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 -#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 -#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 -#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 -#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 - -typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat* val); -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); - -#define glGetMultisamplefvNV GLEW_GET_FUN(__glewGetMultisamplefvNV) -#define glSampleMaskIndexedNV GLEW_GET_FUN(__glewSampleMaskIndexedNV) -#define glTexRenderbufferNV GLEW_GET_FUN(__glewTexRenderbufferNV) - -#define GLEW_NV_explicit_multisample GLEW_GET_VAR(__GLEW_NV_explicit_multisample) - -#endif /* GL_NV_explicit_multisample */ - -/* ------------------------------ GL_NV_fence ------------------------------ */ - -#ifndef GL_NV_fence -#define GL_NV_fence 1 - -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 - -typedef void (GLAPIENTRY * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint* fences); -typedef void (GLAPIENTRY * PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint* fences); -typedef void (GLAPIENTRY * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISFENCENVPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCENVPROC) (GLuint fence); - -#define glDeleteFencesNV GLEW_GET_FUN(__glewDeleteFencesNV) -#define glFinishFenceNV GLEW_GET_FUN(__glewFinishFenceNV) -#define glGenFencesNV GLEW_GET_FUN(__glewGenFencesNV) -#define glGetFenceivNV GLEW_GET_FUN(__glewGetFenceivNV) -#define glIsFenceNV GLEW_GET_FUN(__glewIsFenceNV) -#define glSetFenceNV GLEW_GET_FUN(__glewSetFenceNV) -#define glTestFenceNV GLEW_GET_FUN(__glewTestFenceNV) - -#define GLEW_NV_fence GLEW_GET_VAR(__GLEW_NV_fence) - -#endif /* GL_NV_fence */ - -/* --------------------------- GL_NV_float_buffer -------------------------- */ - -#ifndef GL_NV_float_buffer -#define GL_NV_float_buffer 1 - -#define GL_FLOAT_R_NV 0x8880 -#define GL_FLOAT_RG_NV 0x8881 -#define GL_FLOAT_RGB_NV 0x8882 -#define GL_FLOAT_RGBA_NV 0x8883 -#define GL_FLOAT_R16_NV 0x8884 -#define GL_FLOAT_R32_NV 0x8885 -#define GL_FLOAT_RG16_NV 0x8886 -#define GL_FLOAT_RG32_NV 0x8887 -#define GL_FLOAT_RGB16_NV 0x8888 -#define GL_FLOAT_RGB32_NV 0x8889 -#define GL_FLOAT_RGBA16_NV 0x888A -#define GL_FLOAT_RGBA32_NV 0x888B -#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define GL_FLOAT_RGBA_MODE_NV 0x888E - -#define GLEW_NV_float_buffer GLEW_GET_VAR(__GLEW_NV_float_buffer) - -#endif /* GL_NV_float_buffer */ - -/* --------------------------- GL_NV_fog_distance -------------------------- */ - -#ifndef GL_NV_fog_distance -#define GL_NV_fog_distance 1 - -#define GL_FOG_DISTANCE_MODE_NV 0x855A -#define GL_EYE_RADIAL_NV 0x855B -#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C - -#define GLEW_NV_fog_distance GLEW_GET_VAR(__GLEW_NV_fog_distance) - -#endif /* GL_NV_fog_distance */ - -/* ------------------------- GL_NV_fragment_program ------------------------ */ - -#ifndef GL_NV_fragment_program -#define GL_NV_fragment_program 1 - -#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 -#define GL_FRAGMENT_PROGRAM_NV 0x8870 -#define GL_MAX_TEXTURE_COORDS_NV 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 -#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 -#define GL_PROGRAM_ERROR_STRING_NV 0x8874 - -typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble *params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLdouble v[]); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLfloat v[]); - -#define glGetProgramNamedParameterdvNV GLEW_GET_FUN(__glewGetProgramNamedParameterdvNV) -#define glGetProgramNamedParameterfvNV GLEW_GET_FUN(__glewGetProgramNamedParameterfvNV) -#define glProgramNamedParameter4dNV GLEW_GET_FUN(__glewProgramNamedParameter4dNV) -#define glProgramNamedParameter4dvNV GLEW_GET_FUN(__glewProgramNamedParameter4dvNV) -#define glProgramNamedParameter4fNV GLEW_GET_FUN(__glewProgramNamedParameter4fNV) -#define glProgramNamedParameter4fvNV GLEW_GET_FUN(__glewProgramNamedParameter4fvNV) - -#define GLEW_NV_fragment_program GLEW_GET_VAR(__GLEW_NV_fragment_program) - -#endif /* GL_NV_fragment_program */ - -/* ------------------------ GL_NV_fragment_program2 ------------------------ */ - -#ifndef GL_NV_fragment_program2 -#define GL_NV_fragment_program2 1 - -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 -#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 -#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 - -#define GLEW_NV_fragment_program2 GLEW_GET_VAR(__GLEW_NV_fragment_program2) - -#endif /* GL_NV_fragment_program2 */ - -/* ------------------------ GL_NV_fragment_program4 ------------------------ */ - -#ifndef GL_NV_fragment_program4 -#define GL_NV_fragment_program4 1 - -#define GLEW_NV_fragment_program4 GLEW_GET_VAR(__GLEW_NV_fragment_program4) - -#endif /* GL_NV_fragment_program4 */ - -/* --------------------- GL_NV_fragment_program_option --------------------- */ - -#ifndef GL_NV_fragment_program_option -#define GL_NV_fragment_program_option 1 - -#define GLEW_NV_fragment_program_option GLEW_GET_VAR(__GLEW_NV_fragment_program_option) - -#endif /* GL_NV_fragment_program_option */ - -/* ----------------- GL_NV_framebuffer_multisample_coverage ---------------- */ - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_NV_framebuffer_multisample_coverage 1 - -#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB -#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 -#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 -#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 - -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); - -#define glRenderbufferStorageMultisampleCoverageNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleCoverageNV) - -#define GLEW_NV_framebuffer_multisample_coverage GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample_coverage) - -#endif /* GL_NV_framebuffer_multisample_coverage */ - -/* ------------------------ GL_NV_geometry_program4 ------------------------ */ - -#ifndef GL_NV_geometry_program4 -#define GL_NV_geometry_program4 1 - -#define GL_GEOMETRY_PROGRAM_NV 0x8C26 -#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 -#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 - -typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); - -#define glProgramVertexLimitNV GLEW_GET_FUN(__glewProgramVertexLimitNV) - -#define GLEW_NV_geometry_program4 GLEW_GET_VAR(__GLEW_NV_geometry_program4) - -#endif /* GL_NV_geometry_program4 */ - -/* ------------------------- GL_NV_geometry_shader4 ------------------------ */ - -#ifndef GL_NV_geometry_shader4 -#define GL_NV_geometry_shader4 1 - -#define GLEW_NV_geometry_shader4 GLEW_GET_VAR(__GLEW_NV_geometry_shader4) - -#endif /* GL_NV_geometry_shader4 */ - -/* --------------------------- GL_NV_gpu_program4 -------------------------- */ - -#ifndef GL_NV_gpu_program4 -#define GL_NV_gpu_program4 1 - -#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 -#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 -#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 -#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 -#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 -#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 -#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 - -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); - -#define glProgramEnvParameterI4iNV GLEW_GET_FUN(__glewProgramEnvParameterI4iNV) -#define glProgramEnvParameterI4ivNV GLEW_GET_FUN(__glewProgramEnvParameterI4ivNV) -#define glProgramEnvParameterI4uiNV GLEW_GET_FUN(__glewProgramEnvParameterI4uiNV) -#define glProgramEnvParameterI4uivNV GLEW_GET_FUN(__glewProgramEnvParameterI4uivNV) -#define glProgramEnvParametersI4ivNV GLEW_GET_FUN(__glewProgramEnvParametersI4ivNV) -#define glProgramEnvParametersI4uivNV GLEW_GET_FUN(__glewProgramEnvParametersI4uivNV) -#define glProgramLocalParameterI4iNV GLEW_GET_FUN(__glewProgramLocalParameterI4iNV) -#define glProgramLocalParameterI4ivNV GLEW_GET_FUN(__glewProgramLocalParameterI4ivNV) -#define glProgramLocalParameterI4uiNV GLEW_GET_FUN(__glewProgramLocalParameterI4uiNV) -#define glProgramLocalParameterI4uivNV GLEW_GET_FUN(__glewProgramLocalParameterI4uivNV) -#define glProgramLocalParametersI4ivNV GLEW_GET_FUN(__glewProgramLocalParametersI4ivNV) -#define glProgramLocalParametersI4uivNV GLEW_GET_FUN(__glewProgramLocalParametersI4uivNV) - -#define GLEW_NV_gpu_program4 GLEW_GET_VAR(__GLEW_NV_gpu_program4) - -#endif /* GL_NV_gpu_program4 */ - -/* --------------------------- GL_NV_gpu_program5 -------------------------- */ - -#ifndef GL_NV_gpu_program5 -#define GL_NV_gpu_program5 1 - -#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C -#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F - -#define GLEW_NV_gpu_program5 GLEW_GET_VAR(__GLEW_NV_gpu_program5) - -#endif /* GL_NV_gpu_program5 */ - -/* ------------------------- GL_NV_gpu_program_fp64 ------------------------ */ - -#ifndef GL_NV_gpu_program_fp64 -#define GL_NV_gpu_program_fp64 1 - -#define GLEW_NV_gpu_program_fp64 GLEW_GET_VAR(__GLEW_NV_gpu_program_fp64) - -#endif /* GL_NV_gpu_program_fp64 */ - -/* --------------------------- GL_NV_gpu_shader5 --------------------------- */ - -#ifndef GL_NV_gpu_shader5 -#define GL_NV_gpu_shader5 1 - -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F -#define GL_INT8_NV 0x8FE0 -#define GL_INT8_VEC2_NV 0x8FE1 -#define GL_INT8_VEC3_NV 0x8FE2 -#define GL_INT8_VEC4_NV 0x8FE3 -#define GL_INT16_NV 0x8FE4 -#define GL_INT16_VEC2_NV 0x8FE5 -#define GL_INT16_VEC3_NV 0x8FE6 -#define GL_INT16_VEC4_NV 0x8FE7 -#define GL_INT64_VEC2_NV 0x8FE9 -#define GL_INT64_VEC3_NV 0x8FEA -#define GL_INT64_VEC4_NV 0x8FEB -#define GL_UNSIGNED_INT8_NV 0x8FEC -#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED -#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE -#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF -#define GL_UNSIGNED_INT16_NV 0x8FF0 -#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 -#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 -#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 -#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 -#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 -#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 -#define GL_FLOAT16_NV 0x8FF8 -#define GL_FLOAT16_VEC2_NV 0x8FF9 -#define GL_FLOAT16_VEC3_NV 0x8FFA -#define GL_FLOAT16_VEC4_NV 0x8FFB - -typedef void (GLAPIENTRY * PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); -typedef void (GLAPIENTRY * PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); -typedef void (GLAPIENTRY * PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GLAPIENTRY * PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GLAPIENTRY * PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); - -#define glGetUniformi64vNV GLEW_GET_FUN(__glewGetUniformi64vNV) -#define glGetUniformui64vNV GLEW_GET_FUN(__glewGetUniformui64vNV) -#define glProgramUniform1i64NV GLEW_GET_FUN(__glewProgramUniform1i64NV) -#define glProgramUniform1i64vNV GLEW_GET_FUN(__glewProgramUniform1i64vNV) -#define glProgramUniform1ui64NV GLEW_GET_FUN(__glewProgramUniform1ui64NV) -#define glProgramUniform1ui64vNV GLEW_GET_FUN(__glewProgramUniform1ui64vNV) -#define glProgramUniform2i64NV GLEW_GET_FUN(__glewProgramUniform2i64NV) -#define glProgramUniform2i64vNV GLEW_GET_FUN(__glewProgramUniform2i64vNV) -#define glProgramUniform2ui64NV GLEW_GET_FUN(__glewProgramUniform2ui64NV) -#define glProgramUniform2ui64vNV GLEW_GET_FUN(__glewProgramUniform2ui64vNV) -#define glProgramUniform3i64NV GLEW_GET_FUN(__glewProgramUniform3i64NV) -#define glProgramUniform3i64vNV GLEW_GET_FUN(__glewProgramUniform3i64vNV) -#define glProgramUniform3ui64NV GLEW_GET_FUN(__glewProgramUniform3ui64NV) -#define glProgramUniform3ui64vNV GLEW_GET_FUN(__glewProgramUniform3ui64vNV) -#define glProgramUniform4i64NV GLEW_GET_FUN(__glewProgramUniform4i64NV) -#define glProgramUniform4i64vNV GLEW_GET_FUN(__glewProgramUniform4i64vNV) -#define glProgramUniform4ui64NV GLEW_GET_FUN(__glewProgramUniform4ui64NV) -#define glProgramUniform4ui64vNV GLEW_GET_FUN(__glewProgramUniform4ui64vNV) -#define glUniform1i64NV GLEW_GET_FUN(__glewUniform1i64NV) -#define glUniform1i64vNV GLEW_GET_FUN(__glewUniform1i64vNV) -#define glUniform1ui64NV GLEW_GET_FUN(__glewUniform1ui64NV) -#define glUniform1ui64vNV GLEW_GET_FUN(__glewUniform1ui64vNV) -#define glUniform2i64NV GLEW_GET_FUN(__glewUniform2i64NV) -#define glUniform2i64vNV GLEW_GET_FUN(__glewUniform2i64vNV) -#define glUniform2ui64NV GLEW_GET_FUN(__glewUniform2ui64NV) -#define glUniform2ui64vNV GLEW_GET_FUN(__glewUniform2ui64vNV) -#define glUniform3i64NV GLEW_GET_FUN(__glewUniform3i64NV) -#define glUniform3i64vNV GLEW_GET_FUN(__glewUniform3i64vNV) -#define glUniform3ui64NV GLEW_GET_FUN(__glewUniform3ui64NV) -#define glUniform3ui64vNV GLEW_GET_FUN(__glewUniform3ui64vNV) -#define glUniform4i64NV GLEW_GET_FUN(__glewUniform4i64NV) -#define glUniform4i64vNV GLEW_GET_FUN(__glewUniform4i64vNV) -#define glUniform4ui64NV GLEW_GET_FUN(__glewUniform4ui64NV) -#define glUniform4ui64vNV GLEW_GET_FUN(__glewUniform4ui64vNV) - -#define GLEW_NV_gpu_shader5 GLEW_GET_VAR(__GLEW_NV_gpu_shader5) - -#endif /* GL_NV_gpu_shader5 */ - -/* ---------------------------- GL_NV_half_float --------------------------- */ - -#ifndef GL_NV_half_float -#define GL_NV_half_float 1 - -#define GL_HALF_FLOAT_NV 0x140B - -typedef unsigned short GLhalf; - -typedef void (GLAPIENTRY * PFNGLCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); -typedef void (GLAPIENTRY * PFNGLCOLOR3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLCOLOR4HNVPROC) (GLhalf red, GLhalf green, GLhalf blue, GLhalf alpha); -typedef void (GLAPIENTRY * PFNGLCOLOR4HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLFOGCOORDHNVPROC) (GLhalf fog); -typedef void (GLAPIENTRY * PFNGLFOGCOORDHVNVPROC) (const GLhalf* fog); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalf s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalf s, GLhalf t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r, GLhalf q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLNORMAL3HNVPROC) (GLhalf nx, GLhalf ny, GLhalf nz); -typedef void (GLAPIENTRY * PFNGLNORMAL3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD1HNVPROC) (GLhalf s); -typedef void (GLAPIENTRY * PFNGLTEXCOORD1HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2HNVPROC) (GLhalf s, GLhalf t); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD3HNVPROC) (GLhalf s, GLhalf t, GLhalf r); -typedef void (GLAPIENTRY * PFNGLTEXCOORD3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4HNVPROC) (GLhalf s, GLhalf t, GLhalf r, GLhalf q); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEX2HNVPROC) (GLhalf x, GLhalf y); -typedef void (GLAPIENTRY * PFNGLVERTEX2HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEX3HNVPROC) (GLhalf x, GLhalf y, GLhalf z); -typedef void (GLAPIENTRY * PFNGLVERTEX3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEX4HNVPROC) (GLhalf x, GLhalf y, GLhalf z, GLhalf w); -typedef void (GLAPIENTRY * PFNGLVERTEX4HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalf x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalf x, GLhalf y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z, GLhalf w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHNVPROC) (GLhalf weight); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalf* weight); - -#define glColor3hNV GLEW_GET_FUN(__glewColor3hNV) -#define glColor3hvNV GLEW_GET_FUN(__glewColor3hvNV) -#define glColor4hNV GLEW_GET_FUN(__glewColor4hNV) -#define glColor4hvNV GLEW_GET_FUN(__glewColor4hvNV) -#define glFogCoordhNV GLEW_GET_FUN(__glewFogCoordhNV) -#define glFogCoordhvNV GLEW_GET_FUN(__glewFogCoordhvNV) -#define glMultiTexCoord1hNV GLEW_GET_FUN(__glewMultiTexCoord1hNV) -#define glMultiTexCoord1hvNV GLEW_GET_FUN(__glewMultiTexCoord1hvNV) -#define glMultiTexCoord2hNV GLEW_GET_FUN(__glewMultiTexCoord2hNV) -#define glMultiTexCoord2hvNV GLEW_GET_FUN(__glewMultiTexCoord2hvNV) -#define glMultiTexCoord3hNV GLEW_GET_FUN(__glewMultiTexCoord3hNV) -#define glMultiTexCoord3hvNV GLEW_GET_FUN(__glewMultiTexCoord3hvNV) -#define glMultiTexCoord4hNV GLEW_GET_FUN(__glewMultiTexCoord4hNV) -#define glMultiTexCoord4hvNV GLEW_GET_FUN(__glewMultiTexCoord4hvNV) -#define glNormal3hNV GLEW_GET_FUN(__glewNormal3hNV) -#define glNormal3hvNV GLEW_GET_FUN(__glewNormal3hvNV) -#define glSecondaryColor3hNV GLEW_GET_FUN(__glewSecondaryColor3hNV) -#define glSecondaryColor3hvNV GLEW_GET_FUN(__glewSecondaryColor3hvNV) -#define glTexCoord1hNV GLEW_GET_FUN(__glewTexCoord1hNV) -#define glTexCoord1hvNV GLEW_GET_FUN(__glewTexCoord1hvNV) -#define glTexCoord2hNV GLEW_GET_FUN(__glewTexCoord2hNV) -#define glTexCoord2hvNV GLEW_GET_FUN(__glewTexCoord2hvNV) -#define glTexCoord3hNV GLEW_GET_FUN(__glewTexCoord3hNV) -#define glTexCoord3hvNV GLEW_GET_FUN(__glewTexCoord3hvNV) -#define glTexCoord4hNV GLEW_GET_FUN(__glewTexCoord4hNV) -#define glTexCoord4hvNV GLEW_GET_FUN(__glewTexCoord4hvNV) -#define glVertex2hNV GLEW_GET_FUN(__glewVertex2hNV) -#define glVertex2hvNV GLEW_GET_FUN(__glewVertex2hvNV) -#define glVertex3hNV GLEW_GET_FUN(__glewVertex3hNV) -#define glVertex3hvNV GLEW_GET_FUN(__glewVertex3hvNV) -#define glVertex4hNV GLEW_GET_FUN(__glewVertex4hNV) -#define glVertex4hvNV GLEW_GET_FUN(__glewVertex4hvNV) -#define glVertexAttrib1hNV GLEW_GET_FUN(__glewVertexAttrib1hNV) -#define glVertexAttrib1hvNV GLEW_GET_FUN(__glewVertexAttrib1hvNV) -#define glVertexAttrib2hNV GLEW_GET_FUN(__glewVertexAttrib2hNV) -#define glVertexAttrib2hvNV GLEW_GET_FUN(__glewVertexAttrib2hvNV) -#define glVertexAttrib3hNV GLEW_GET_FUN(__glewVertexAttrib3hNV) -#define glVertexAttrib3hvNV GLEW_GET_FUN(__glewVertexAttrib3hvNV) -#define glVertexAttrib4hNV GLEW_GET_FUN(__glewVertexAttrib4hNV) -#define glVertexAttrib4hvNV GLEW_GET_FUN(__glewVertexAttrib4hvNV) -#define glVertexAttribs1hvNV GLEW_GET_FUN(__glewVertexAttribs1hvNV) -#define glVertexAttribs2hvNV GLEW_GET_FUN(__glewVertexAttribs2hvNV) -#define glVertexAttribs3hvNV GLEW_GET_FUN(__glewVertexAttribs3hvNV) -#define glVertexAttribs4hvNV GLEW_GET_FUN(__glewVertexAttribs4hvNV) -#define glVertexWeighthNV GLEW_GET_FUN(__glewVertexWeighthNV) -#define glVertexWeighthvNV GLEW_GET_FUN(__glewVertexWeighthvNV) - -#define GLEW_NV_half_float GLEW_GET_VAR(__GLEW_NV_half_float) - -#endif /* GL_NV_half_float */ - -/* ------------------------ GL_NV_light_max_exponent ----------------------- */ - -#ifndef GL_NV_light_max_exponent -#define GL_NV_light_max_exponent 1 - -#define GL_MAX_SHININESS_NV 0x8504 -#define GL_MAX_SPOT_EXPONENT_NV 0x8505 - -#define GLEW_NV_light_max_exponent GLEW_GET_VAR(__GLEW_NV_light_max_exponent) - -#endif /* GL_NV_light_max_exponent */ - -/* ----------------------- GL_NV_multisample_coverage ---------------------- */ - -#ifndef GL_NV_multisample_coverage -#define GL_NV_multisample_coverage 1 - -#define GL_COVERAGE_SAMPLES_NV 0x80A9 -#define GL_COLOR_SAMPLES_NV 0x8E20 - -#define GLEW_NV_multisample_coverage GLEW_GET_VAR(__GLEW_NV_multisample_coverage) - -#endif /* GL_NV_multisample_coverage */ - -/* --------------------- GL_NV_multisample_filter_hint --------------------- */ - -#ifndef GL_NV_multisample_filter_hint -#define GL_NV_multisample_filter_hint 1 - -#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 - -#define GLEW_NV_multisample_filter_hint GLEW_GET_VAR(__GLEW_NV_multisample_filter_hint) - -#endif /* GL_NV_multisample_filter_hint */ - -/* ------------------------- GL_NV_occlusion_query ------------------------- */ - -#ifndef GL_NV_occlusion_query -#define GL_NV_occlusion_query 1 - -#define GL_PIXEL_COUNTER_BITS_NV 0x8864 -#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 -#define GL_PIXEL_COUNT_NV 0x8866 -#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 - -typedef void (GLAPIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); - -#define glBeginOcclusionQueryNV GLEW_GET_FUN(__glewBeginOcclusionQueryNV) -#define glDeleteOcclusionQueriesNV GLEW_GET_FUN(__glewDeleteOcclusionQueriesNV) -#define glEndOcclusionQueryNV GLEW_GET_FUN(__glewEndOcclusionQueryNV) -#define glGenOcclusionQueriesNV GLEW_GET_FUN(__glewGenOcclusionQueriesNV) -#define glGetOcclusionQueryivNV GLEW_GET_FUN(__glewGetOcclusionQueryivNV) -#define glGetOcclusionQueryuivNV GLEW_GET_FUN(__glewGetOcclusionQueryuivNV) -#define glIsOcclusionQueryNV GLEW_GET_FUN(__glewIsOcclusionQueryNV) - -#define GLEW_NV_occlusion_query GLEW_GET_VAR(__GLEW_NV_occlusion_query) - -#endif /* GL_NV_occlusion_query */ - -/* ----------------------- GL_NV_packed_depth_stencil ---------------------- */ - -#ifndef GL_NV_packed_depth_stencil -#define GL_NV_packed_depth_stencil 1 - -#define GL_DEPTH_STENCIL_NV 0x84F9 -#define GL_UNSIGNED_INT_24_8_NV 0x84FA - -#define GLEW_NV_packed_depth_stencil GLEW_GET_VAR(__GLEW_NV_packed_depth_stencil) - -#endif /* GL_NV_packed_depth_stencil */ - -/* --------------------- GL_NV_parameter_buffer_object --------------------- */ - -#ifndef GL_NV_parameter_buffer_object -#define GL_NV_parameter_buffer_object 1 - -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 -#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 -#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 -#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 - -typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); - -#define glProgramBufferParametersIivNV GLEW_GET_FUN(__glewProgramBufferParametersIivNV) -#define glProgramBufferParametersIuivNV GLEW_GET_FUN(__glewProgramBufferParametersIuivNV) -#define glProgramBufferParametersfvNV GLEW_GET_FUN(__glewProgramBufferParametersfvNV) - -#define GLEW_NV_parameter_buffer_object GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object) - -#endif /* GL_NV_parameter_buffer_object */ - -/* --------------------- GL_NV_parameter_buffer_object2 -------------------- */ - -#ifndef GL_NV_parameter_buffer_object2 -#define GL_NV_parameter_buffer_object2 1 - -#define GLEW_NV_parameter_buffer_object2 GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object2) - -#endif /* GL_NV_parameter_buffer_object2 */ - -/* -------------------------- GL_NV_path_rendering ------------------------- */ - -#ifndef GL_NV_path_rendering -#define GL_NV_path_rendering 1 - -#define GL_CLOSE_PATH_NV 0x00 -#define GL_BOLD_BIT_NV 0x01 -#define GL_GLYPH_WIDTH_BIT_NV 0x01 -#define GL_MOVE_TO_NV 0x02 -#define GL_GLYPH_HEIGHT_BIT_NV 0x02 -#define GL_ITALIC_BIT_NV 0x02 -#define GL_RELATIVE_MOVE_TO_NV 0x03 -#define GL_LINE_TO_NV 0x04 -#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 -#define GL_RELATIVE_LINE_TO_NV 0x05 -#define GL_HORIZONTAL_LINE_TO_NV 0x06 -#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 -#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 -#define GL_VERTICAL_LINE_TO_NV 0x08 -#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 -#define GL_QUADRATIC_CURVE_TO_NV 0x0A -#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B -#define GL_CUBIC_CURVE_TO_NV 0x0C -#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D -#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E -#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F -#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 -#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 -#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 -#define GL_SMALL_CCW_ARC_TO_NV 0x12 -#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 -#define GL_SMALL_CW_ARC_TO_NV 0x14 -#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 -#define GL_LARGE_CCW_ARC_TO_NV 0x16 -#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 -#define GL_LARGE_CW_ARC_TO_NV 0x18 -#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 -#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 -#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 -#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 -#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 -#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA -#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC -#define GL_ARC_TO_NV 0xFE -#define GL_RELATIVE_ARC_TO_NV 0xFF -#define GL_GLYPH_HAS_KERNING_NV 0x100 -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PATH_FORMAT_SVG_NV 0x9070 -#define GL_PATH_FORMAT_PS_NV 0x9071 -#define GL_STANDARD_FONT_NAME_NV 0x9072 -#define GL_SYSTEM_FONT_NAME_NV 0x9073 -#define GL_FILE_NAME_NV 0x9074 -#define GL_PATH_STROKE_WIDTH_NV 0x9075 -#define GL_PATH_END_CAPS_NV 0x9076 -#define GL_PATH_INITIAL_END_CAP_NV 0x9077 -#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 -#define GL_PATH_JOIN_STYLE_NV 0x9079 -#define GL_PATH_MITER_LIMIT_NV 0x907A -#define GL_PATH_DASH_CAPS_NV 0x907B -#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C -#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D -#define GL_PATH_DASH_OFFSET_NV 0x907E -#define GL_PATH_CLIENT_LENGTH_NV 0x907F -#define GL_PATH_FILL_MODE_NV 0x9080 -#define GL_PATH_FILL_MASK_NV 0x9081 -#define GL_PATH_FILL_COVER_MODE_NV 0x9082 -#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 -#define GL_PATH_STROKE_MASK_NV 0x9084 -#define GL_COUNT_UP_NV 0x9088 -#define GL_COUNT_DOWN_NV 0x9089 -#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A -#define GL_CONVEX_HULL_NV 0x908B -#define GL_BOUNDING_BOX_NV 0x908D -#define GL_TRANSLATE_X_NV 0x908E -#define GL_TRANSLATE_Y_NV 0x908F -#define GL_TRANSLATE_2D_NV 0x9090 -#define GL_TRANSLATE_3D_NV 0x9091 -#define GL_AFFINE_2D_NV 0x9092 -#define GL_AFFINE_3D_NV 0x9094 -#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 -#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 -#define GL_UTF8_NV 0x909A -#define GL_UTF16_NV 0x909B -#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C -#define GL_PATH_COMMAND_COUNT_NV 0x909D -#define GL_PATH_COORD_COUNT_NV 0x909E -#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F -#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 -#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 -#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 -#define GL_SQUARE_NV 0x90A3 -#define GL_ROUND_NV 0x90A4 -#define GL_TRIANGULAR_NV 0x90A5 -#define GL_BEVEL_NV 0x90A6 -#define GL_MITER_REVERT_NV 0x90A7 -#define GL_MITER_TRUNCATE_NV 0x90A8 -#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 -#define GL_USE_MISSING_GLYPH_NV 0x90AA -#define GL_PATH_ERROR_POSITION_NV 0x90AB -#define GL_PATH_FOG_GEN_MODE_NV 0x90AC -#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD -#define GL_ADJACENT_PAIRS_NV 0x90AE -#define GL_FIRST_TO_REST_NV 0x90AF -#define GL_PATH_GEN_MODE_NV 0x90B0 -#define GL_PATH_GEN_COEFF_NV 0x90B1 -#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2 -#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 -#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 -#define GL_MOVE_TO_RESETS_NV 0x90B5 -#define GL_MOVE_TO_CONTINUES_NV 0x90B6 -#define GL_PATH_STENCIL_FUNC_NV 0x90B7 -#define GL_PATH_STENCIL_REF_NV 0x90B8 -#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 -#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD -#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE -#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF -#define GL_FONT_X_MIN_BOUNDS_NV 0x00010000 -#define GL_FONT_Y_MIN_BOUNDS_NV 0x00020000 -#define GL_FONT_X_MAX_BOUNDS_NV 0x00040000 -#define GL_FONT_Y_MAX_BOUNDS_NV 0x00080000 -#define GL_FONT_UNITS_PER_EM_NV 0x00100000 -#define GL_FONT_ASCENDER_NV 0x00200000 -#define GL_FONT_DESCENDER_NV 0x00400000 -#define GL_FONT_HEIGHT_NV 0x00800000 -#define GL_FONT_MAX_ADVANCE_WIDTH_NV 0x01000000 -#define GL_FONT_MAX_ADVANCE_HEIGHT_NV 0x02000000 -#define GL_FONT_UNDERLINE_POSITION_NV 0x04000000 -#define GL_FONT_UNDERLINE_THICKNESS_NV 0x08000000 -#define GL_FONT_HAS_KERNING_NV 0x10000000 - -typedef void (GLAPIENTRY * PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); -typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHNVPROC) (GLuint name, GLenum coverMode); -typedef void (GLAPIENTRY * PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); -typedef GLuint (GLAPIENTRY * PFNGLGENPATHSNVPROC) (GLsizei range); -typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat* value); -typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint* value); -typedef void (GLAPIENTRY * PFNGLGETPATHCOMMANDSNVPROC) (GLuint name, GLubyte* commands); -typedef void (GLAPIENTRY * PFNGLGETPATHCOORDSNVPROC) (GLuint name, GLfloat* coords); -typedef void (GLAPIENTRY * PFNGLGETPATHDASHARRAYNVPROC) (GLuint name, GLfloat* dashArray); -typedef GLfloat (GLAPIENTRY * PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); -typedef void (GLAPIENTRY * PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint fistPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics); -typedef void (GLAPIENTRY * PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERFVNVPROC) (GLuint name, GLenum param, GLfloat* value); -typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERIVNVPROC) (GLuint name, GLenum param, GLint* value); -typedef void (GLAPIENTRY * PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat* value); -typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint* value); -typedef void (GLAPIENTRY * PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -typedef GLboolean (GLAPIENTRY * PFNGLISPATHNVPROC) (GLuint path); -typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); -typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat* coeffs); -typedef void (GLAPIENTRY * PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const GLvoid*coords); -typedef void (GLAPIENTRY * PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void* coords); -typedef void (GLAPIENTRY * PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum zfunc); -typedef void (GLAPIENTRY * PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat* dashArray); -typedef void (GLAPIENTRY * PFNGLPATHFOGGENNVPROC) (GLenum genMode); -typedef void (GLAPIENTRY * PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void* fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GLAPIENTRY * PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void* fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const GLvoid*charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLint units); -typedef void (GLAPIENTRY * PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GLAPIENTRY * PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void* pathString); -typedef void (GLAPIENTRY * PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const GLvoid*coords); -typedef void (GLAPIENTRY * PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void* coords); -typedef void (GLAPIENTRY * PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat* coeffs); -typedef GLboolean (GLAPIENTRY * PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat* x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); -typedef void (GLAPIENTRY * PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat* transformValues); -typedef void (GLAPIENTRY * PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint paths[], const GLfloat weights[]); - -#define glCopyPathNV GLEW_GET_FUN(__glewCopyPathNV) -#define glCoverFillPathInstancedNV GLEW_GET_FUN(__glewCoverFillPathInstancedNV) -#define glCoverFillPathNV GLEW_GET_FUN(__glewCoverFillPathNV) -#define glCoverStrokePathInstancedNV GLEW_GET_FUN(__glewCoverStrokePathInstancedNV) -#define glCoverStrokePathNV GLEW_GET_FUN(__glewCoverStrokePathNV) -#define glDeletePathsNV GLEW_GET_FUN(__glewDeletePathsNV) -#define glGenPathsNV GLEW_GET_FUN(__glewGenPathsNV) -#define glGetPathColorGenfvNV GLEW_GET_FUN(__glewGetPathColorGenfvNV) -#define glGetPathColorGenivNV GLEW_GET_FUN(__glewGetPathColorGenivNV) -#define glGetPathCommandsNV GLEW_GET_FUN(__glewGetPathCommandsNV) -#define glGetPathCoordsNV GLEW_GET_FUN(__glewGetPathCoordsNV) -#define glGetPathDashArrayNV GLEW_GET_FUN(__glewGetPathDashArrayNV) -#define glGetPathLengthNV GLEW_GET_FUN(__glewGetPathLengthNV) -#define glGetPathMetricRangeNV GLEW_GET_FUN(__glewGetPathMetricRangeNV) -#define glGetPathMetricsNV GLEW_GET_FUN(__glewGetPathMetricsNV) -#define glGetPathParameterfvNV GLEW_GET_FUN(__glewGetPathParameterfvNV) -#define glGetPathParameterivNV GLEW_GET_FUN(__glewGetPathParameterivNV) -#define glGetPathSpacingNV GLEW_GET_FUN(__glewGetPathSpacingNV) -#define glGetPathTexGenfvNV GLEW_GET_FUN(__glewGetPathTexGenfvNV) -#define glGetPathTexGenivNV GLEW_GET_FUN(__glewGetPathTexGenivNV) -#define glInterpolatePathsNV GLEW_GET_FUN(__glewInterpolatePathsNV) -#define glIsPathNV GLEW_GET_FUN(__glewIsPathNV) -#define glIsPointInFillPathNV GLEW_GET_FUN(__glewIsPointInFillPathNV) -#define glIsPointInStrokePathNV GLEW_GET_FUN(__glewIsPointInStrokePathNV) -#define glPathColorGenNV GLEW_GET_FUN(__glewPathColorGenNV) -#define glPathCommandsNV GLEW_GET_FUN(__glewPathCommandsNV) -#define glPathCoordsNV GLEW_GET_FUN(__glewPathCoordsNV) -#define glPathCoverDepthFuncNV GLEW_GET_FUN(__glewPathCoverDepthFuncNV) -#define glPathDashArrayNV GLEW_GET_FUN(__glewPathDashArrayNV) -#define glPathFogGenNV GLEW_GET_FUN(__glewPathFogGenNV) -#define glPathGlyphRangeNV GLEW_GET_FUN(__glewPathGlyphRangeNV) -#define glPathGlyphsNV GLEW_GET_FUN(__glewPathGlyphsNV) -#define glPathParameterfNV GLEW_GET_FUN(__glewPathParameterfNV) -#define glPathParameterfvNV GLEW_GET_FUN(__glewPathParameterfvNV) -#define glPathParameteriNV GLEW_GET_FUN(__glewPathParameteriNV) -#define glPathParameterivNV GLEW_GET_FUN(__glewPathParameterivNV) -#define glPathStencilDepthOffsetNV GLEW_GET_FUN(__glewPathStencilDepthOffsetNV) -#define glPathStencilFuncNV GLEW_GET_FUN(__glewPathStencilFuncNV) -#define glPathStringNV GLEW_GET_FUN(__glewPathStringNV) -#define glPathSubCommandsNV GLEW_GET_FUN(__glewPathSubCommandsNV) -#define glPathSubCoordsNV GLEW_GET_FUN(__glewPathSubCoordsNV) -#define glPathTexGenNV GLEW_GET_FUN(__glewPathTexGenNV) -#define glPointAlongPathNV GLEW_GET_FUN(__glewPointAlongPathNV) -#define glStencilFillPathInstancedNV GLEW_GET_FUN(__glewStencilFillPathInstancedNV) -#define glStencilFillPathNV GLEW_GET_FUN(__glewStencilFillPathNV) -#define glStencilStrokePathInstancedNV GLEW_GET_FUN(__glewStencilStrokePathInstancedNV) -#define glStencilStrokePathNV GLEW_GET_FUN(__glewStencilStrokePathNV) -#define glTransformPathNV GLEW_GET_FUN(__glewTransformPathNV) -#define glWeightPathsNV GLEW_GET_FUN(__glewWeightPathsNV) - -#define GLEW_NV_path_rendering GLEW_GET_VAR(__GLEW_NV_path_rendering) - -#endif /* GL_NV_path_rendering */ - -/* ------------------------- GL_NV_pixel_data_range ------------------------ */ - -#ifndef GL_NV_pixel_data_range -#define GL_NV_pixel_data_range 1 - -#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 -#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 -#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A -#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B -#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C -#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D - -typedef void (GLAPIENTRY * PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, void* pointer); - -#define glFlushPixelDataRangeNV GLEW_GET_FUN(__glewFlushPixelDataRangeNV) -#define glPixelDataRangeNV GLEW_GET_FUN(__glewPixelDataRangeNV) - -#define GLEW_NV_pixel_data_range GLEW_GET_VAR(__GLEW_NV_pixel_data_range) - -#endif /* GL_NV_pixel_data_range */ - -/* --------------------------- GL_NV_point_sprite -------------------------- */ - -#ifndef GL_NV_point_sprite -#define GL_NV_point_sprite 1 - -#define GL_POINT_SPRITE_NV 0x8861 -#define GL_COORD_REPLACE_NV 0x8862 -#define GL_POINT_SPRITE_R_MODE_NV 0x8863 - -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint* params); - -#define glPointParameteriNV GLEW_GET_FUN(__glewPointParameteriNV) -#define glPointParameterivNV GLEW_GET_FUN(__glewPointParameterivNV) - -#define GLEW_NV_point_sprite GLEW_GET_VAR(__GLEW_NV_point_sprite) - -#endif /* GL_NV_point_sprite */ - -/* -------------------------- GL_NV_present_video -------------------------- */ - -#ifndef GL_NV_present_video -#define GL_NV_present_video 1 - -#define GL_FRAME_NV 0x8E26 -#define GL_FIELDS_NV 0x8E27 -#define GL_CURRENT_TIME_NV 0x8E28 -#define GL_NUM_FILL_STREAMS_NV 0x8E29 -#define GL_PRESENT_TIME_NV 0x8E2A -#define GL_PRESENT_DURATION_NV 0x8E2B - -typedef void (GLAPIENTRY * PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); - -#define glGetVideoi64vNV GLEW_GET_FUN(__glewGetVideoi64vNV) -#define glGetVideoivNV GLEW_GET_FUN(__glewGetVideoivNV) -#define glGetVideoui64vNV GLEW_GET_FUN(__glewGetVideoui64vNV) -#define glGetVideouivNV GLEW_GET_FUN(__glewGetVideouivNV) -#define glPresentFrameDualFillNV GLEW_GET_FUN(__glewPresentFrameDualFillNV) -#define glPresentFrameKeyedNV GLEW_GET_FUN(__glewPresentFrameKeyedNV) - -#define GLEW_NV_present_video GLEW_GET_VAR(__GLEW_NV_present_video) - -#endif /* GL_NV_present_video */ - -/* ------------------------ GL_NV_primitive_restart ------------------------ */ - -#ifndef GL_NV_primitive_restart -#define GL_NV_primitive_restart 1 - -#define GL_PRIMITIVE_RESTART_NV 0x8558 -#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 - -typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void); - -#define glPrimitiveRestartIndexNV GLEW_GET_FUN(__glewPrimitiveRestartIndexNV) -#define glPrimitiveRestartNV GLEW_GET_FUN(__glewPrimitiveRestartNV) - -#define GLEW_NV_primitive_restart GLEW_GET_VAR(__GLEW_NV_primitive_restart) - -#endif /* GL_NV_primitive_restart */ - -/* ------------------------ GL_NV_register_combiners ----------------------- */ - -#ifndef GL_NV_register_combiners -#define GL_NV_register_combiners 1 - -#define GL_REGISTER_COMBINERS_NV 0x8522 -#define GL_VARIABLE_A_NV 0x8523 -#define GL_VARIABLE_B_NV 0x8524 -#define GL_VARIABLE_C_NV 0x8525 -#define GL_VARIABLE_D_NV 0x8526 -#define GL_VARIABLE_E_NV 0x8527 -#define GL_VARIABLE_F_NV 0x8528 -#define GL_VARIABLE_G_NV 0x8529 -#define GL_CONSTANT_COLOR0_NV 0x852A -#define GL_CONSTANT_COLOR1_NV 0x852B -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_SPARE0_NV 0x852E -#define GL_SPARE1_NV 0x852F -#define GL_DISCARD_NV 0x8530 -#define GL_E_TIMES_F_NV 0x8531 -#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define GL_UNSIGNED_IDENTITY_NV 0x8536 -#define GL_UNSIGNED_INVERT_NV 0x8537 -#define GL_EXPAND_NORMAL_NV 0x8538 -#define GL_EXPAND_NEGATE_NV 0x8539 -#define GL_HALF_BIAS_NORMAL_NV 0x853A -#define GL_HALF_BIAS_NEGATE_NV 0x853B -#define GL_SIGNED_IDENTITY_NV 0x853C -#define GL_SIGNED_NEGATE_NV 0x853D -#define GL_SCALE_BY_TWO_NV 0x853E -#define GL_SCALE_BY_FOUR_NV 0x853F -#define GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define GL_COMBINER_INPUT_NV 0x8542 -#define GL_COMBINER_MAPPING_NV 0x8543 -#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define GL_COMBINER_MUX_SUM_NV 0x8547 -#define GL_COMBINER_SCALE_NV 0x8548 -#define GL_COMBINER_BIAS_NV 0x8549 -#define GL_COMBINER_AB_OUTPUT_NV 0x854A -#define GL_COMBINER_CD_OUTPUT_NV 0x854B -#define GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define GL_COLOR_SUM_CLAMP_NV 0x854F -#define GL_COMBINER0_NV 0x8550 -#define GL_COMBINER1_NV 0x8551 -#define GL_COMBINER2_NV 0x8552 -#define GL_COMBINER3_NV 0x8553 -#define GL_COMBINER4_NV 0x8554 -#define GL_COMBINER5_NV 0x8555 -#define GL_COMBINER6_NV 0x8556 -#define GL_COMBINER7_NV 0x8557 - -typedef void (GLAPIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (GLAPIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint* params); - -#define glCombinerInputNV GLEW_GET_FUN(__glewCombinerInputNV) -#define glCombinerOutputNV GLEW_GET_FUN(__glewCombinerOutputNV) -#define glCombinerParameterfNV GLEW_GET_FUN(__glewCombinerParameterfNV) -#define glCombinerParameterfvNV GLEW_GET_FUN(__glewCombinerParameterfvNV) -#define glCombinerParameteriNV GLEW_GET_FUN(__glewCombinerParameteriNV) -#define glCombinerParameterivNV GLEW_GET_FUN(__glewCombinerParameterivNV) -#define glFinalCombinerInputNV GLEW_GET_FUN(__glewFinalCombinerInputNV) -#define glGetCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetCombinerInputParameterfvNV) -#define glGetCombinerInputParameterivNV GLEW_GET_FUN(__glewGetCombinerInputParameterivNV) -#define glGetCombinerOutputParameterfvNV GLEW_GET_FUN(__glewGetCombinerOutputParameterfvNV) -#define glGetCombinerOutputParameterivNV GLEW_GET_FUN(__glewGetCombinerOutputParameterivNV) -#define glGetFinalCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterfvNV) -#define glGetFinalCombinerInputParameterivNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterivNV) - -#define GLEW_NV_register_combiners GLEW_GET_VAR(__GLEW_NV_register_combiners) - -#endif /* GL_NV_register_combiners */ - -/* ----------------------- GL_NV_register_combiners2 ----------------------- */ - -#ifndef GL_NV_register_combiners2 -#define GL_NV_register_combiners2 1 - -#define GL_PER_STAGE_CONSTANTS_NV 0x8535 - -typedef void (GLAPIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat* params); - -#define glCombinerStageParameterfvNV GLEW_GET_FUN(__glewCombinerStageParameterfvNV) -#define glGetCombinerStageParameterfvNV GLEW_GET_FUN(__glewGetCombinerStageParameterfvNV) - -#define GLEW_NV_register_combiners2 GLEW_GET_VAR(__GLEW_NV_register_combiners2) - -#endif /* GL_NV_register_combiners2 */ - -/* ------------------------ GL_NV_shader_buffer_load ----------------------- */ - -#ifndef GL_NV_shader_buffer_load -#define GL_NV_shader_buffer_load 1 - -#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D -#define GL_GPU_ADDRESS_NV 0x8F34 -#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 - -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT* result); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT* params); -typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); -typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); -typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); -typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); - -#define glGetBufferParameterui64vNV GLEW_GET_FUN(__glewGetBufferParameterui64vNV) -#define glGetIntegerui64vNV GLEW_GET_FUN(__glewGetIntegerui64vNV) -#define glGetNamedBufferParameterui64vNV GLEW_GET_FUN(__glewGetNamedBufferParameterui64vNV) -#define glIsBufferResidentNV GLEW_GET_FUN(__glewIsBufferResidentNV) -#define glIsNamedBufferResidentNV GLEW_GET_FUN(__glewIsNamedBufferResidentNV) -#define glMakeBufferNonResidentNV GLEW_GET_FUN(__glewMakeBufferNonResidentNV) -#define glMakeBufferResidentNV GLEW_GET_FUN(__glewMakeBufferResidentNV) -#define glMakeNamedBufferNonResidentNV GLEW_GET_FUN(__glewMakeNamedBufferNonResidentNV) -#define glMakeNamedBufferResidentNV GLEW_GET_FUN(__glewMakeNamedBufferResidentNV) -#define glProgramUniformui64NV GLEW_GET_FUN(__glewProgramUniformui64NV) -#define glProgramUniformui64vNV GLEW_GET_FUN(__glewProgramUniformui64vNV) -#define glUniformui64NV GLEW_GET_FUN(__glewUniformui64NV) -#define glUniformui64vNV GLEW_GET_FUN(__glewUniformui64vNV) - -#define GLEW_NV_shader_buffer_load GLEW_GET_VAR(__GLEW_NV_shader_buffer_load) - -#endif /* GL_NV_shader_buffer_load */ - -/* ---------------------- GL_NV_tessellation_program5 ---------------------- */ - -#ifndef GL_NV_tessellation_program5 -#define GL_NV_tessellation_program5 1 - -#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 -#define GL_TESS_CONTROL_PROGRAM_NV 0x891E -#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F -#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 -#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 - -#define GLEW_NV_tessellation_program5 GLEW_GET_VAR(__GLEW_NV_tessellation_program5) - -#endif /* GL_NV_tessellation_program5 */ - -/* -------------------------- GL_NV_texgen_emboss -------------------------- */ - -#ifndef GL_NV_texgen_emboss -#define GL_NV_texgen_emboss 1 - -#define GL_EMBOSS_LIGHT_NV 0x855D -#define GL_EMBOSS_CONSTANT_NV 0x855E -#define GL_EMBOSS_MAP_NV 0x855F - -#define GLEW_NV_texgen_emboss GLEW_GET_VAR(__GLEW_NV_texgen_emboss) - -#endif /* GL_NV_texgen_emboss */ - -/* ------------------------ GL_NV_texgen_reflection ------------------------ */ - -#ifndef GL_NV_texgen_reflection -#define GL_NV_texgen_reflection 1 - -#define GL_NORMAL_MAP_NV 0x8511 -#define GL_REFLECTION_MAP_NV 0x8512 - -#define GLEW_NV_texgen_reflection GLEW_GET_VAR(__GLEW_NV_texgen_reflection) - -#endif /* GL_NV_texgen_reflection */ - -/* ------------------------- GL_NV_texture_barrier ------------------------- */ - -#ifndef GL_NV_texture_barrier -#define GL_NV_texture_barrier 1 - -typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void); - -#define glTextureBarrierNV GLEW_GET_FUN(__glewTextureBarrierNV) - -#define GLEW_NV_texture_barrier GLEW_GET_VAR(__GLEW_NV_texture_barrier) - -#endif /* GL_NV_texture_barrier */ - -/* --------------------- GL_NV_texture_compression_vtc --------------------- */ - -#ifndef GL_NV_texture_compression_vtc -#define GL_NV_texture_compression_vtc 1 - -#define GLEW_NV_texture_compression_vtc GLEW_GET_VAR(__GLEW_NV_texture_compression_vtc) - -#endif /* GL_NV_texture_compression_vtc */ - -/* ----------------------- GL_NV_texture_env_combine4 ---------------------- */ - -#ifndef GL_NV_texture_env_combine4 -#define GL_NV_texture_env_combine4 1 - -#define GL_COMBINE4_NV 0x8503 -#define GL_SOURCE3_RGB_NV 0x8583 -#define GL_SOURCE3_ALPHA_NV 0x858B -#define GL_OPERAND3_RGB_NV 0x8593 -#define GL_OPERAND3_ALPHA_NV 0x859B - -#define GLEW_NV_texture_env_combine4 GLEW_GET_VAR(__GLEW_NV_texture_env_combine4) - -#endif /* GL_NV_texture_env_combine4 */ - -/* ---------------------- GL_NV_texture_expand_normal ---------------------- */ - -#ifndef GL_NV_texture_expand_normal -#define GL_NV_texture_expand_normal 1 - -#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F - -#define GLEW_NV_texture_expand_normal GLEW_GET_VAR(__GLEW_NV_texture_expand_normal) - -#endif /* GL_NV_texture_expand_normal */ - -/* ----------------------- GL_NV_texture_multisample ----------------------- */ - -#ifndef GL_NV_texture_multisample -#define GL_NV_texture_multisample 1 - -#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 -#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 - -typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); - -#define glTexImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage2DMultisampleCoverageNV) -#define glTexImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage3DMultisampleCoverageNV) -#define glTextureImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage2DMultisampleCoverageNV) -#define glTextureImage2DMultisampleNV GLEW_GET_FUN(__glewTextureImage2DMultisampleNV) -#define glTextureImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage3DMultisampleCoverageNV) -#define glTextureImage3DMultisampleNV GLEW_GET_FUN(__glewTextureImage3DMultisampleNV) - -#define GLEW_NV_texture_multisample GLEW_GET_VAR(__GLEW_NV_texture_multisample) - -#endif /* GL_NV_texture_multisample */ - -/* ------------------------ GL_NV_texture_rectangle ------------------------ */ - -#ifndef GL_NV_texture_rectangle -#define GL_NV_texture_rectangle 1 - -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 - -#define GLEW_NV_texture_rectangle GLEW_GET_VAR(__GLEW_NV_texture_rectangle) - -#endif /* GL_NV_texture_rectangle */ - -/* -------------------------- GL_NV_texture_shader ------------------------- */ - -#ifndef GL_NV_texture_shader -#define GL_NV_texture_shader 1 - -#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_SHADER_CONSISTENT_NV 0x86DD -#define GL_TEXTURE_SHADER_NV 0x86DE -#define GL_SHADER_OPERATION_NV 0x86DF -#define GL_CULL_MODES_NV 0x86E0 -#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3 -#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define GL_CONST_EYE_NV 0x86E5 -#define GL_PASS_THROUGH_NV 0x86E6 -#define GL_CULL_FRAGMENT_NV 0x86E7 -#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define GL_DOT_PRODUCT_NV 0x86EC -#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define GL_HI_SCALE_NV 0x870E -#define GL_LO_SCALE_NV 0x870F -#define GL_DS_SCALE_NV 0x8710 -#define GL_DT_SCALE_NV 0x8711 -#define GL_MAGNITUDE_SCALE_NV 0x8712 -#define GL_VIBRANCE_SCALE_NV 0x8713 -#define GL_HI_BIAS_NV 0x8714 -#define GL_LO_BIAS_NV 0x8715 -#define GL_DS_BIAS_NV 0x8716 -#define GL_DT_BIAS_NV 0x8717 -#define GL_MAGNITUDE_BIAS_NV 0x8718 -#define GL_VIBRANCE_BIAS_NV 0x8719 -#define GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define GL_TEXTURE_HI_SIZE_NV 0x871B -#define GL_TEXTURE_LO_SIZE_NV 0x871C -#define GL_TEXTURE_DS_SIZE_NV 0x871D -#define GL_TEXTURE_DT_SIZE_NV 0x871E -#define GL_TEXTURE_MAG_SIZE_NV 0x871F - -#define GLEW_NV_texture_shader GLEW_GET_VAR(__GLEW_NV_texture_shader) - -#endif /* GL_NV_texture_shader */ - -/* ------------------------- GL_NV_texture_shader2 ------------------------- */ - -#ifndef GL_NV_texture_shader2 -#define GL_NV_texture_shader2 1 - -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D - -#define GLEW_NV_texture_shader2 GLEW_GET_VAR(__GLEW_NV_texture_shader2) - -#endif /* GL_NV_texture_shader2 */ - -/* ------------------------- GL_NV_texture_shader3 ------------------------- */ - -#ifndef GL_NV_texture_shader3 -#define GL_NV_texture_shader3 1 - -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 -#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 -#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 -#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 -#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 -#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A -#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B -#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C -#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D -#define GL_HILO8_NV 0x885E -#define GL_SIGNED_HILO8_NV 0x885F -#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 - -#define GLEW_NV_texture_shader3 GLEW_GET_VAR(__GLEW_NV_texture_shader3) - -#endif /* GL_NV_texture_shader3 */ - -/* ------------------------ GL_NV_transform_feedback ----------------------- */ - -#ifndef GL_NV_transform_feedback -#define GL_NV_transform_feedback 1 - -#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 -#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 -#define GL_TEXTURE_COORD_NV 0x8C79 -#define GL_CLIP_DISTANCE_NV 0x8C7A -#define GL_VERTEX_ID_NV 0x8C7B -#define GL_PRIMITIVE_ID_NV 0x8C7C -#define GL_GENERIC_ATTRIB_NV 0x8C7D -#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 -#define GL_ACTIVE_VARYINGS_NV 0x8C81 -#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 -#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 -#define GL_PRIMITIVES_GENERATED_NV 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 -#define GL_RASTERIZER_DISCARD_NV 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C -#define GL_SEPARATE_ATTRIBS_NV 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F - -typedef void (GLAPIENTRY * PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); -typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); -typedef GLint (GLAPIENTRY * PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); - -#define glActiveVaryingNV GLEW_GET_FUN(__glewActiveVaryingNV) -#define glBeginTransformFeedbackNV GLEW_GET_FUN(__glewBeginTransformFeedbackNV) -#define glBindBufferBaseNV GLEW_GET_FUN(__glewBindBufferBaseNV) -#define glBindBufferOffsetNV GLEW_GET_FUN(__glewBindBufferOffsetNV) -#define glBindBufferRangeNV GLEW_GET_FUN(__glewBindBufferRangeNV) -#define glEndTransformFeedbackNV GLEW_GET_FUN(__glewEndTransformFeedbackNV) -#define glGetActiveVaryingNV GLEW_GET_FUN(__glewGetActiveVaryingNV) -#define glGetTransformFeedbackVaryingNV GLEW_GET_FUN(__glewGetTransformFeedbackVaryingNV) -#define glGetVaryingLocationNV GLEW_GET_FUN(__glewGetVaryingLocationNV) -#define glTransformFeedbackAttribsNV GLEW_GET_FUN(__glewTransformFeedbackAttribsNV) -#define glTransformFeedbackVaryingsNV GLEW_GET_FUN(__glewTransformFeedbackVaryingsNV) - -#define GLEW_NV_transform_feedback GLEW_GET_VAR(__GLEW_NV_transform_feedback) - -#endif /* GL_NV_transform_feedback */ - -/* ----------------------- GL_NV_transform_feedback2 ----------------------- */ - -#ifndef GL_NV_transform_feedback2 -#define GL_NV_transform_feedback2 1 - -#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 - -typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); -typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint* ids); -typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); - -#define glBindTransformFeedbackNV GLEW_GET_FUN(__glewBindTransformFeedbackNV) -#define glDeleteTransformFeedbacksNV GLEW_GET_FUN(__glewDeleteTransformFeedbacksNV) -#define glDrawTransformFeedbackNV GLEW_GET_FUN(__glewDrawTransformFeedbackNV) -#define glGenTransformFeedbacksNV GLEW_GET_FUN(__glewGenTransformFeedbacksNV) -#define glIsTransformFeedbackNV GLEW_GET_FUN(__glewIsTransformFeedbackNV) -#define glPauseTransformFeedbackNV GLEW_GET_FUN(__glewPauseTransformFeedbackNV) -#define glResumeTransformFeedbackNV GLEW_GET_FUN(__glewResumeTransformFeedbackNV) - -#define GLEW_NV_transform_feedback2 GLEW_GET_VAR(__GLEW_NV_transform_feedback2) - -#endif /* GL_NV_transform_feedback2 */ - -/* -------------------------- GL_NV_vdpau_interop -------------------------- */ - -#ifndef GL_NV_vdpau_interop -#define GL_NV_vdpau_interop 1 - -#define GL_SURFACE_STATE_NV 0x86EB -#define GL_SURFACE_REGISTERED_NV 0x86FD -#define GL_SURFACE_MAPPED_NV 0x8700 -#define GL_WRITE_DISCARD_NV 0x88BE - -typedef GLintptr GLvdpauSurfaceNV; - -typedef void (GLAPIENTRY * PFNGLVDPAUFININVPROC) (void); -typedef void (GLAPIENTRY * PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values); -typedef void (GLAPIENTRY * PFNGLVDPAUINITNVPROC) (const void* vdpDevice, const GLvoid*getProcAddress); -typedef void (GLAPIENTRY * PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); -typedef void (GLAPIENTRY * PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces); -typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef void (GLAPIENTRY * PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); -typedef void (GLAPIENTRY * PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces); -typedef void (GLAPIENTRY * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); - -#define glVDPAUFiniNV GLEW_GET_FUN(__glewVDPAUFiniNV) -#define glVDPAUGetSurfaceivNV GLEW_GET_FUN(__glewVDPAUGetSurfaceivNV) -#define glVDPAUInitNV GLEW_GET_FUN(__glewVDPAUInitNV) -#define glVDPAUIsSurfaceNV GLEW_GET_FUN(__glewVDPAUIsSurfaceNV) -#define glVDPAUMapSurfacesNV GLEW_GET_FUN(__glewVDPAUMapSurfacesNV) -#define glVDPAURegisterOutputSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterOutputSurfaceNV) -#define glVDPAURegisterVideoSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceNV) -#define glVDPAUSurfaceAccessNV GLEW_GET_FUN(__glewVDPAUSurfaceAccessNV) -#define glVDPAUUnmapSurfacesNV GLEW_GET_FUN(__glewVDPAUUnmapSurfacesNV) -#define glVDPAUUnregisterSurfaceNV GLEW_GET_FUN(__glewVDPAUUnregisterSurfaceNV) - -#define GLEW_NV_vdpau_interop GLEW_GET_VAR(__GLEW_NV_vdpau_interop) - -#endif /* GL_NV_vdpau_interop */ - -/* ------------------------ GL_NV_vertex_array_range ----------------------- */ - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range 1 - -#define GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 - -typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, void* pointer); - -#define glFlushVertexArrayRangeNV GLEW_GET_FUN(__glewFlushVertexArrayRangeNV) -#define glVertexArrayRangeNV GLEW_GET_FUN(__glewVertexArrayRangeNV) - -#define GLEW_NV_vertex_array_range GLEW_GET_VAR(__GLEW_NV_vertex_array_range) - -#endif /* GL_NV_vertex_array_range */ - -/* ----------------------- GL_NV_vertex_array_range2 ----------------------- */ - -#ifndef GL_NV_vertex_array_range2 -#define GL_NV_vertex_array_range2 1 - -#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 - -#define GLEW_NV_vertex_array_range2 GLEW_GET_VAR(__GLEW_NV_vertex_array_range2) - -#endif /* GL_NV_vertex_array_range2 */ - -/* ------------------- GL_NV_vertex_attrib_integer_64bit ------------------- */ - -#ifndef GL_NV_vertex_attrib_integer_64bit -#define GL_NV_vertex_attrib_integer_64bit 1 - -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F - -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); - -#define glGetVertexAttribLi64vNV GLEW_GET_FUN(__glewGetVertexAttribLi64vNV) -#define glGetVertexAttribLui64vNV GLEW_GET_FUN(__glewGetVertexAttribLui64vNV) -#define glVertexAttribL1i64NV GLEW_GET_FUN(__glewVertexAttribL1i64NV) -#define glVertexAttribL1i64vNV GLEW_GET_FUN(__glewVertexAttribL1i64vNV) -#define glVertexAttribL1ui64NV GLEW_GET_FUN(__glewVertexAttribL1ui64NV) -#define glVertexAttribL1ui64vNV GLEW_GET_FUN(__glewVertexAttribL1ui64vNV) -#define glVertexAttribL2i64NV GLEW_GET_FUN(__glewVertexAttribL2i64NV) -#define glVertexAttribL2i64vNV GLEW_GET_FUN(__glewVertexAttribL2i64vNV) -#define glVertexAttribL2ui64NV GLEW_GET_FUN(__glewVertexAttribL2ui64NV) -#define glVertexAttribL2ui64vNV GLEW_GET_FUN(__glewVertexAttribL2ui64vNV) -#define glVertexAttribL3i64NV GLEW_GET_FUN(__glewVertexAttribL3i64NV) -#define glVertexAttribL3i64vNV GLEW_GET_FUN(__glewVertexAttribL3i64vNV) -#define glVertexAttribL3ui64NV GLEW_GET_FUN(__glewVertexAttribL3ui64NV) -#define glVertexAttribL3ui64vNV GLEW_GET_FUN(__glewVertexAttribL3ui64vNV) -#define glVertexAttribL4i64NV GLEW_GET_FUN(__glewVertexAttribL4i64NV) -#define glVertexAttribL4i64vNV GLEW_GET_FUN(__glewVertexAttribL4i64vNV) -#define glVertexAttribL4ui64NV GLEW_GET_FUN(__glewVertexAttribL4ui64NV) -#define glVertexAttribL4ui64vNV GLEW_GET_FUN(__glewVertexAttribL4ui64vNV) -#define glVertexAttribLFormatNV GLEW_GET_FUN(__glewVertexAttribLFormatNV) - -#define GLEW_NV_vertex_attrib_integer_64bit GLEW_GET_VAR(__GLEW_NV_vertex_attrib_integer_64bit) - -#endif /* GL_NV_vertex_attrib_integer_64bit */ - -/* ------------------- GL_NV_vertex_buffer_unified_memory ------------------ */ - -#ifndef GL_NV_vertex_buffer_unified_memory -#define GL_NV_vertex_buffer_unified_memory 1 - -#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E -#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F -#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 -#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 -#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 -#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 -#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 -#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 -#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 -#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 -#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 -#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 -#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A -#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B -#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C -#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D -#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E -#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F -#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 -#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 -#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 -#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 -#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 -#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 -#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 - -typedef void (GLAPIENTRY * PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -typedef void (GLAPIENTRY * PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT result[]); -typedef void (GLAPIENTRY * PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); - -#define glBufferAddressRangeNV GLEW_GET_FUN(__glewBufferAddressRangeNV) -#define glColorFormatNV GLEW_GET_FUN(__glewColorFormatNV) -#define glEdgeFlagFormatNV GLEW_GET_FUN(__glewEdgeFlagFormatNV) -#define glFogCoordFormatNV GLEW_GET_FUN(__glewFogCoordFormatNV) -#define glGetIntegerui64i_vNV GLEW_GET_FUN(__glewGetIntegerui64i_vNV) -#define glIndexFormatNV GLEW_GET_FUN(__glewIndexFormatNV) -#define glNormalFormatNV GLEW_GET_FUN(__glewNormalFormatNV) -#define glSecondaryColorFormatNV GLEW_GET_FUN(__glewSecondaryColorFormatNV) -#define glTexCoordFormatNV GLEW_GET_FUN(__glewTexCoordFormatNV) -#define glVertexAttribFormatNV GLEW_GET_FUN(__glewVertexAttribFormatNV) -#define glVertexAttribIFormatNV GLEW_GET_FUN(__glewVertexAttribIFormatNV) -#define glVertexFormatNV GLEW_GET_FUN(__glewVertexFormatNV) - -#define GLEW_NV_vertex_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_vertex_buffer_unified_memory) - -#endif /* GL_NV_vertex_buffer_unified_memory */ - -/* -------------------------- GL_NV_vertex_program ------------------------- */ - -#ifndef GL_NV_vertex_program -#define GL_NV_vertex_program 1 - -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define GL_CURRENT_ATTRIB_NV 0x8626 -#define GL_PROGRAM_LENGTH_NV 0x8627 -#define GL_PROGRAM_STRING_NV 0x8628 -#define GL_MODELVIEW_PROJECTION_NV 0x8629 -#define GL_IDENTITY_NV 0x862A -#define GL_INVERSE_NV 0x862B -#define GL_TRANSPOSE_NV 0x862C -#define GL_INVERSE_TRANSPOSE_NV 0x862D -#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define GL_MAX_TRACK_MATRICES_NV 0x862F -#define GL_MATRIX0_NV 0x8630 -#define GL_MATRIX1_NV 0x8631 -#define GL_MATRIX2_NV 0x8632 -#define GL_MATRIX3_NV 0x8633 -#define GL_MATRIX4_NV 0x8634 -#define GL_MATRIX5_NV 0x8635 -#define GL_MATRIX6_NV 0x8636 -#define GL_MATRIX7_NV 0x8637 -#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define GL_CURRENT_MATRIX_NV 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define GL_PROGRAM_PARAMETER_NV 0x8644 -#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define GL_PROGRAM_TARGET_NV 0x8646 -#define GL_PROGRAM_RESIDENT_NV 0x8647 -#define GL_TRACK_MATRIX_NV 0x8648 -#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F - -typedef GLboolean (GLAPIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint* ids, GLboolean *residences); -typedef void (GLAPIENTRY * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte* program); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid** pointer); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMNVPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte* program); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei n, const GLubyte* v); - -#define glAreProgramsResidentNV GLEW_GET_FUN(__glewAreProgramsResidentNV) -#define glBindProgramNV GLEW_GET_FUN(__glewBindProgramNV) -#define glDeleteProgramsNV GLEW_GET_FUN(__glewDeleteProgramsNV) -#define glExecuteProgramNV GLEW_GET_FUN(__glewExecuteProgramNV) -#define glGenProgramsNV GLEW_GET_FUN(__glewGenProgramsNV) -#define glGetProgramParameterdvNV GLEW_GET_FUN(__glewGetProgramParameterdvNV) -#define glGetProgramParameterfvNV GLEW_GET_FUN(__glewGetProgramParameterfvNV) -#define glGetProgramStringNV GLEW_GET_FUN(__glewGetProgramStringNV) -#define glGetProgramivNV GLEW_GET_FUN(__glewGetProgramivNV) -#define glGetTrackMatrixivNV GLEW_GET_FUN(__glewGetTrackMatrixivNV) -#define glGetVertexAttribPointervNV GLEW_GET_FUN(__glewGetVertexAttribPointervNV) -#define glGetVertexAttribdvNV GLEW_GET_FUN(__glewGetVertexAttribdvNV) -#define glGetVertexAttribfvNV GLEW_GET_FUN(__glewGetVertexAttribfvNV) -#define glGetVertexAttribivNV GLEW_GET_FUN(__glewGetVertexAttribivNV) -#define glIsProgramNV GLEW_GET_FUN(__glewIsProgramNV) -#define glLoadProgramNV GLEW_GET_FUN(__glewLoadProgramNV) -#define glProgramParameter4dNV GLEW_GET_FUN(__glewProgramParameter4dNV) -#define glProgramParameter4dvNV GLEW_GET_FUN(__glewProgramParameter4dvNV) -#define glProgramParameter4fNV GLEW_GET_FUN(__glewProgramParameter4fNV) -#define glProgramParameter4fvNV GLEW_GET_FUN(__glewProgramParameter4fvNV) -#define glProgramParameters4dvNV GLEW_GET_FUN(__glewProgramParameters4dvNV) -#define glProgramParameters4fvNV GLEW_GET_FUN(__glewProgramParameters4fvNV) -#define glRequestResidentProgramsNV GLEW_GET_FUN(__glewRequestResidentProgramsNV) -#define glTrackMatrixNV GLEW_GET_FUN(__glewTrackMatrixNV) -#define glVertexAttrib1dNV GLEW_GET_FUN(__glewVertexAttrib1dNV) -#define glVertexAttrib1dvNV GLEW_GET_FUN(__glewVertexAttrib1dvNV) -#define glVertexAttrib1fNV GLEW_GET_FUN(__glewVertexAttrib1fNV) -#define glVertexAttrib1fvNV GLEW_GET_FUN(__glewVertexAttrib1fvNV) -#define glVertexAttrib1sNV GLEW_GET_FUN(__glewVertexAttrib1sNV) -#define glVertexAttrib1svNV GLEW_GET_FUN(__glewVertexAttrib1svNV) -#define glVertexAttrib2dNV GLEW_GET_FUN(__glewVertexAttrib2dNV) -#define glVertexAttrib2dvNV GLEW_GET_FUN(__glewVertexAttrib2dvNV) -#define glVertexAttrib2fNV GLEW_GET_FUN(__glewVertexAttrib2fNV) -#define glVertexAttrib2fvNV GLEW_GET_FUN(__glewVertexAttrib2fvNV) -#define glVertexAttrib2sNV GLEW_GET_FUN(__glewVertexAttrib2sNV) -#define glVertexAttrib2svNV GLEW_GET_FUN(__glewVertexAttrib2svNV) -#define glVertexAttrib3dNV GLEW_GET_FUN(__glewVertexAttrib3dNV) -#define glVertexAttrib3dvNV GLEW_GET_FUN(__glewVertexAttrib3dvNV) -#define glVertexAttrib3fNV GLEW_GET_FUN(__glewVertexAttrib3fNV) -#define glVertexAttrib3fvNV GLEW_GET_FUN(__glewVertexAttrib3fvNV) -#define glVertexAttrib3sNV GLEW_GET_FUN(__glewVertexAttrib3sNV) -#define glVertexAttrib3svNV GLEW_GET_FUN(__glewVertexAttrib3svNV) -#define glVertexAttrib4dNV GLEW_GET_FUN(__glewVertexAttrib4dNV) -#define glVertexAttrib4dvNV GLEW_GET_FUN(__glewVertexAttrib4dvNV) -#define glVertexAttrib4fNV GLEW_GET_FUN(__glewVertexAttrib4fNV) -#define glVertexAttrib4fvNV GLEW_GET_FUN(__glewVertexAttrib4fvNV) -#define glVertexAttrib4sNV GLEW_GET_FUN(__glewVertexAttrib4sNV) -#define glVertexAttrib4svNV GLEW_GET_FUN(__glewVertexAttrib4svNV) -#define glVertexAttrib4ubNV GLEW_GET_FUN(__glewVertexAttrib4ubNV) -#define glVertexAttrib4ubvNV GLEW_GET_FUN(__glewVertexAttrib4ubvNV) -#define glVertexAttribPointerNV GLEW_GET_FUN(__glewVertexAttribPointerNV) -#define glVertexAttribs1dvNV GLEW_GET_FUN(__glewVertexAttribs1dvNV) -#define glVertexAttribs1fvNV GLEW_GET_FUN(__glewVertexAttribs1fvNV) -#define glVertexAttribs1svNV GLEW_GET_FUN(__glewVertexAttribs1svNV) -#define glVertexAttribs2dvNV GLEW_GET_FUN(__glewVertexAttribs2dvNV) -#define glVertexAttribs2fvNV GLEW_GET_FUN(__glewVertexAttribs2fvNV) -#define glVertexAttribs2svNV GLEW_GET_FUN(__glewVertexAttribs2svNV) -#define glVertexAttribs3dvNV GLEW_GET_FUN(__glewVertexAttribs3dvNV) -#define glVertexAttribs3fvNV GLEW_GET_FUN(__glewVertexAttribs3fvNV) -#define glVertexAttribs3svNV GLEW_GET_FUN(__glewVertexAttribs3svNV) -#define glVertexAttribs4dvNV GLEW_GET_FUN(__glewVertexAttribs4dvNV) -#define glVertexAttribs4fvNV GLEW_GET_FUN(__glewVertexAttribs4fvNV) -#define glVertexAttribs4svNV GLEW_GET_FUN(__glewVertexAttribs4svNV) -#define glVertexAttribs4ubvNV GLEW_GET_FUN(__glewVertexAttribs4ubvNV) - -#define GLEW_NV_vertex_program GLEW_GET_VAR(__GLEW_NV_vertex_program) - -#endif /* GL_NV_vertex_program */ - -/* ------------------------ GL_NV_vertex_program1_1 ------------------------ */ - -#ifndef GL_NV_vertex_program1_1 -#define GL_NV_vertex_program1_1 1 - -#define GLEW_NV_vertex_program1_1 GLEW_GET_VAR(__GLEW_NV_vertex_program1_1) - -#endif /* GL_NV_vertex_program1_1 */ - -/* ------------------------- GL_NV_vertex_program2 ------------------------- */ - -#ifndef GL_NV_vertex_program2 -#define GL_NV_vertex_program2 1 - -#define GLEW_NV_vertex_program2 GLEW_GET_VAR(__GLEW_NV_vertex_program2) - -#endif /* GL_NV_vertex_program2 */ - -/* ---------------------- GL_NV_vertex_program2_option --------------------- */ - -#ifndef GL_NV_vertex_program2_option -#define GL_NV_vertex_program2_option 1 - -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 - -#define GLEW_NV_vertex_program2_option GLEW_GET_VAR(__GLEW_NV_vertex_program2_option) - -#endif /* GL_NV_vertex_program2_option */ - -/* ------------------------- GL_NV_vertex_program3 ------------------------- */ - -#ifndef GL_NV_vertex_program3 -#define GL_NV_vertex_program3 1 - -#define MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C - -#define GLEW_NV_vertex_program3 GLEW_GET_VAR(__GLEW_NV_vertex_program3) - -#endif /* GL_NV_vertex_program3 */ - -/* ------------------------- GL_NV_vertex_program4 ------------------------- */ - -#ifndef GL_NV_vertex_program4 -#define GL_NV_vertex_program4 1 - -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD - -#define GLEW_NV_vertex_program4 GLEW_GET_VAR(__GLEW_NV_vertex_program4) - -#endif /* GL_NV_vertex_program4 */ - -/* -------------------------- GL_NV_video_capture -------------------------- */ - -#ifndef GL_NV_video_capture -#define GL_NV_video_capture 1 - -#define GL_VIDEO_BUFFER_NV 0x9020 -#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 -#define GL_FIELD_UPPER_NV 0x9022 -#define GL_FIELD_LOWER_NV 0x9023 -#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 -#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 -#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 -#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 -#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 -#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 -#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A -#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B -#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C -#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D -#define GL_PARTIAL_SUCCESS_NV 0x902E -#define GL_SUCCESS_NV 0x902F -#define GL_FAILURE_NV 0x9030 -#define GL_YCBYCR8_422_NV 0x9031 -#define GL_YCBAYCR8A_4224_NV 0x9032 -#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 -#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 -#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 -#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 -#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 -#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 -#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 -#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A -#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B -#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C - -typedef void (GLAPIENTRY * PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -typedef void (GLAPIENTRY * PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint* params); -typedef GLenum (GLAPIENTRY * PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint* sequence_num, GLuint64EXT *capture_time); -typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params); - -#define glBeginVideoCaptureNV GLEW_GET_FUN(__glewBeginVideoCaptureNV) -#define glBindVideoCaptureStreamBufferNV GLEW_GET_FUN(__glewBindVideoCaptureStreamBufferNV) -#define glBindVideoCaptureStreamTextureNV GLEW_GET_FUN(__glewBindVideoCaptureStreamTextureNV) -#define glEndVideoCaptureNV GLEW_GET_FUN(__glewEndVideoCaptureNV) -#define glGetVideoCaptureStreamdvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamdvNV) -#define glGetVideoCaptureStreamfvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamfvNV) -#define glGetVideoCaptureStreamivNV GLEW_GET_FUN(__glewGetVideoCaptureStreamivNV) -#define glGetVideoCaptureivNV GLEW_GET_FUN(__glewGetVideoCaptureivNV) -#define glVideoCaptureNV GLEW_GET_FUN(__glewVideoCaptureNV) -#define glVideoCaptureStreamParameterdvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterdvNV) -#define glVideoCaptureStreamParameterfvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterfvNV) -#define glVideoCaptureStreamParameterivNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterivNV) - -#define GLEW_NV_video_capture GLEW_GET_VAR(__GLEW_NV_video_capture) - -#endif /* GL_NV_video_capture */ - -/* ------------------------ GL_OES_byte_coordinates ------------------------ */ - -#ifndef GL_OES_byte_coordinates -#define GL_OES_byte_coordinates 1 - -#define GL_BYTE 0x1400 - -#define GLEW_OES_byte_coordinates GLEW_GET_VAR(__GLEW_OES_byte_coordinates) - -#endif /* GL_OES_byte_coordinates */ - -/* ------------------- GL_OES_compressed_paletted_texture ------------------ */ - -#ifndef GL_OES_compressed_paletted_texture -#define GL_OES_compressed_paletted_texture 1 - -#define GL_PALETTE4_RGB8_OES 0x8B90 -#define GL_PALETTE4_RGBA8_OES 0x8B91 -#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 -#define GL_PALETTE4_RGBA4_OES 0x8B93 -#define GL_PALETTE4_RGB5_A1_OES 0x8B94 -#define GL_PALETTE8_RGB8_OES 0x8B95 -#define GL_PALETTE8_RGBA8_OES 0x8B96 -#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 -#define GL_PALETTE8_RGBA4_OES 0x8B98 -#define GL_PALETTE8_RGB5_A1_OES 0x8B99 - -#define GLEW_OES_compressed_paletted_texture GLEW_GET_VAR(__GLEW_OES_compressed_paletted_texture) - -#endif /* GL_OES_compressed_paletted_texture */ - -/* --------------------------- GL_OES_read_format -------------------------- */ - -#ifndef GL_OES_read_format -#define GL_OES_read_format 1 - -#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B - -#define GLEW_OES_read_format GLEW_GET_VAR(__GLEW_OES_read_format) - -#endif /* GL_OES_read_format */ - -/* ------------------------ GL_OES_single_precision ------------------------ */ - -#ifndef GL_OES_single_precision -#define GL_OES_single_precision 1 - -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFOESPROC) (GLclampd depth); -typedef void (GLAPIENTRY * PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat* equation); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); -typedef void (GLAPIENTRY * PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat* equation); -typedef void (GLAPIENTRY * PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); - -#define glClearDepthfOES GLEW_GET_FUN(__glewClearDepthfOES) -#define glClipPlanefOES GLEW_GET_FUN(__glewClipPlanefOES) -#define glDepthRangefOES GLEW_GET_FUN(__glewDepthRangefOES) -#define glFrustumfOES GLEW_GET_FUN(__glewFrustumfOES) -#define glGetClipPlanefOES GLEW_GET_FUN(__glewGetClipPlanefOES) -#define glOrthofOES GLEW_GET_FUN(__glewOrthofOES) - -#define GLEW_OES_single_precision GLEW_GET_VAR(__GLEW_OES_single_precision) - -#endif /* GL_OES_single_precision */ - -/* ---------------------------- GL_OML_interlace --------------------------- */ - -#ifndef GL_OML_interlace -#define GL_OML_interlace 1 - -#define GL_INTERLACE_OML 0x8980 -#define GL_INTERLACE_READ_OML 0x8981 - -#define GLEW_OML_interlace GLEW_GET_VAR(__GLEW_OML_interlace) - -#endif /* GL_OML_interlace */ - -/* ---------------------------- GL_OML_resample ---------------------------- */ - -#ifndef GL_OML_resample -#define GL_OML_resample 1 - -#define GL_PACK_RESAMPLE_OML 0x8984 -#define GL_UNPACK_RESAMPLE_OML 0x8985 -#define GL_RESAMPLE_REPLICATE_OML 0x8986 -#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 -#define GL_RESAMPLE_AVERAGE_OML 0x8988 -#define GL_RESAMPLE_DECIMATE_OML 0x8989 - -#define GLEW_OML_resample GLEW_GET_VAR(__GLEW_OML_resample) - -#endif /* GL_OML_resample */ - -/* ---------------------------- GL_OML_subsample --------------------------- */ - -#ifndef GL_OML_subsample -#define GL_OML_subsample 1 - -#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 -#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 - -#define GLEW_OML_subsample GLEW_GET_VAR(__GLEW_OML_subsample) - -#endif /* GL_OML_subsample */ - -/* --------------------------- GL_PGI_misc_hints --------------------------- */ - -#ifndef GL_PGI_misc_hints -#define GL_PGI_misc_hints 1 - -#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 107000 -#define GL_CONSERVE_MEMORY_HINT_PGI 107005 -#define GL_RECLAIM_MEMORY_HINT_PGI 107006 -#define GL_NATIVE_GRAPHICS_HANDLE_PGI 107010 -#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011 -#define GL_NATIVE_GRAPHICS_END_HINT_PGI 107012 -#define GL_ALWAYS_FAST_HINT_PGI 107020 -#define GL_ALWAYS_SOFT_HINT_PGI 107021 -#define GL_ALLOW_DRAW_OBJ_HINT_PGI 107022 -#define GL_ALLOW_DRAW_WIN_HINT_PGI 107023 -#define GL_ALLOW_DRAW_FRG_HINT_PGI 107024 -#define GL_ALLOW_DRAW_MEM_HINT_PGI 107025 -#define GL_STRICT_DEPTHFUNC_HINT_PGI 107030 -#define GL_STRICT_LIGHTING_HINT_PGI 107031 -#define GL_STRICT_SCISSOR_HINT_PGI 107032 -#define GL_FULL_STIPPLE_HINT_PGI 107033 -#define GL_CLIP_NEAR_HINT_PGI 107040 -#define GL_CLIP_FAR_HINT_PGI 107041 -#define GL_WIDE_LINE_HINT_PGI 107042 -#define GL_BACK_NORMALS_HINT_PGI 107043 - -#define GLEW_PGI_misc_hints GLEW_GET_VAR(__GLEW_PGI_misc_hints) - -#endif /* GL_PGI_misc_hints */ - -/* -------------------------- GL_PGI_vertex_hints -------------------------- */ - -#ifndef GL_PGI_vertex_hints -#define GL_PGI_vertex_hints 1 - -#define GL_VERTEX23_BIT_PGI 0x00000004 -#define GL_VERTEX4_BIT_PGI 0x00000008 -#define GL_COLOR3_BIT_PGI 0x00010000 -#define GL_COLOR4_BIT_PGI 0x00020000 -#define GL_EDGEFLAG_BIT_PGI 0x00040000 -#define GL_INDEX_BIT_PGI 0x00080000 -#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define GL_VERTEX_DATA_HINT_PGI 107050 -#define GL_VERTEX_CONSISTENT_HINT_PGI 107051 -#define GL_MATERIAL_SIDE_HINT_PGI 107052 -#define GL_MAX_VERTEX_HINT_PGI 107053 -#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define GL_NORMAL_BIT_PGI 0x08000000 -#define GL_TEXCOORD1_BIT_PGI 0x10000000 -#define GL_TEXCOORD2_BIT_PGI 0x20000000 -#define GL_TEXCOORD3_BIT_PGI 0x40000000 -#define GL_TEXCOORD4_BIT_PGI 0x80000000 - -#define GLEW_PGI_vertex_hints GLEW_GET_VAR(__GLEW_PGI_vertex_hints) - -#endif /* GL_PGI_vertex_hints */ - -/* ----------------------- GL_REND_screen_coordinates ---------------------- */ - -#ifndef GL_REND_screen_coordinates -#define GL_REND_screen_coordinates 1 - -#define GL_SCREEN_COORDINATES_REND 0x8490 -#define GL_INVERTED_SCREEN_W_REND 0x8491 - -#define GLEW_REND_screen_coordinates GLEW_GET_VAR(__GLEW_REND_screen_coordinates) - -#endif /* GL_REND_screen_coordinates */ - -/* ------------------------------- GL_S3_s3tc ------------------------------ */ - -#ifndef GL_S3_s3tc -#define GL_S3_s3tc 1 - -#define GL_RGB_S3TC 0x83A0 -#define GL_RGB4_S3TC 0x83A1 -#define GL_RGBA_S3TC 0x83A2 -#define GL_RGBA4_S3TC 0x83A3 -#define GL_RGBA_DXT5_S3TC 0x83A4 -#define GL_RGBA4_DXT5_S3TC 0x83A5 - -#define GLEW_S3_s3tc GLEW_GET_VAR(__GLEW_S3_s3tc) - -#endif /* GL_S3_s3tc */ - -/* -------------------------- GL_SGIS_color_range -------------------------- */ - -#ifndef GL_SGIS_color_range -#define GL_SGIS_color_range 1 - -#define GL_EXTENDED_RANGE_SGIS 0x85A5 -#define GL_MIN_RED_SGIS 0x85A6 -#define GL_MAX_RED_SGIS 0x85A7 -#define GL_MIN_GREEN_SGIS 0x85A8 -#define GL_MAX_GREEN_SGIS 0x85A9 -#define GL_MIN_BLUE_SGIS 0x85AA -#define GL_MAX_BLUE_SGIS 0x85AB -#define GL_MIN_ALPHA_SGIS 0x85AC -#define GL_MAX_ALPHA_SGIS 0x85AD - -#define GLEW_SGIS_color_range GLEW_GET_VAR(__GLEW_SGIS_color_range) - -#endif /* GL_SGIS_color_range */ - -/* ------------------------- GL_SGIS_detail_texture ------------------------ */ - -#ifndef GL_SGIS_detail_texture -#define GL_SGIS_detail_texture 1 - -typedef void (GLAPIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); -typedef void (GLAPIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat* points); - -#define glDetailTexFuncSGIS GLEW_GET_FUN(__glewDetailTexFuncSGIS) -#define glGetDetailTexFuncSGIS GLEW_GET_FUN(__glewGetDetailTexFuncSGIS) - -#define GLEW_SGIS_detail_texture GLEW_GET_VAR(__GLEW_SGIS_detail_texture) - -#endif /* GL_SGIS_detail_texture */ - -/* -------------------------- GL_SGIS_fog_function ------------------------- */ - -#ifndef GL_SGIS_fog_function -#define GL_SGIS_fog_function 1 - -typedef void (GLAPIENTRY * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat* points); -typedef void (GLAPIENTRY * PFNGLGETFOGFUNCSGISPROC) (GLfloat* points); - -#define glFogFuncSGIS GLEW_GET_FUN(__glewFogFuncSGIS) -#define glGetFogFuncSGIS GLEW_GET_FUN(__glewGetFogFuncSGIS) - -#define GLEW_SGIS_fog_function GLEW_GET_VAR(__GLEW_SGIS_fog_function) - -#endif /* GL_SGIS_fog_function */ - -/* ------------------------ GL_SGIS_generate_mipmap ------------------------ */ - -#ifndef GL_SGIS_generate_mipmap -#define GL_SGIS_generate_mipmap 1 - -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 - -#define GLEW_SGIS_generate_mipmap GLEW_GET_VAR(__GLEW_SGIS_generate_mipmap) - -#endif /* GL_SGIS_generate_mipmap */ - -/* -------------------------- GL_SGIS_multisample -------------------------- */ - -#ifndef GL_SGIS_multisample -#define GL_SGIS_multisample 1 - -#define GL_MULTISAMPLE_SGIS 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define GL_SAMPLE_MASK_SGIS 0x80A0 -#define GL_1PASS_SGIS 0x80A1 -#define GL_2PASS_0_SGIS 0x80A2 -#define GL_2PASS_1_SGIS 0x80A3 -#define GL_4PASS_0_SGIS 0x80A4 -#define GL_4PASS_1_SGIS 0x80A5 -#define GL_4PASS_2_SGIS 0x80A6 -#define GL_4PASS_3_SGIS 0x80A7 -#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define GL_SAMPLES_SGIS 0x80A9 -#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define GL_SAMPLE_PATTERN_SGIS 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 - -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); -typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); - -#define glSampleMaskSGIS GLEW_GET_FUN(__glewSampleMaskSGIS) -#define glSamplePatternSGIS GLEW_GET_FUN(__glewSamplePatternSGIS) - -#define GLEW_SGIS_multisample GLEW_GET_VAR(__GLEW_SGIS_multisample) - -#endif /* GL_SGIS_multisample */ - -/* ------------------------- GL_SGIS_pixel_texture ------------------------- */ - -#ifndef GL_SGIS_pixel_texture -#define GL_SGIS_pixel_texture 1 - -#define GLEW_SGIS_pixel_texture GLEW_GET_VAR(__GLEW_SGIS_pixel_texture) - -#endif /* GL_SGIS_pixel_texture */ - -/* ----------------------- GL_SGIS_point_line_texgen ----------------------- */ - -#ifndef GL_SGIS_point_line_texgen -#define GL_SGIS_point_line_texgen 1 - -#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 -#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 -#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 -#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 -#define GL_EYE_POINT_SGIS 0x81F4 -#define GL_OBJECT_POINT_SGIS 0x81F5 -#define GL_EYE_LINE_SGIS 0x81F6 -#define GL_OBJECT_LINE_SGIS 0x81F7 - -#define GLEW_SGIS_point_line_texgen GLEW_GET_VAR(__GLEW_SGIS_point_line_texgen) - -#endif /* GL_SGIS_point_line_texgen */ - -/* ------------------------ GL_SGIS_sharpen_texture ------------------------ */ - -#ifndef GL_SGIS_sharpen_texture -#define GL_SGIS_sharpen_texture 1 - -typedef void (GLAPIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat* points); -typedef void (GLAPIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); - -#define glGetSharpenTexFuncSGIS GLEW_GET_FUN(__glewGetSharpenTexFuncSGIS) -#define glSharpenTexFuncSGIS GLEW_GET_FUN(__glewSharpenTexFuncSGIS) - -#define GLEW_SGIS_sharpen_texture GLEW_GET_VAR(__GLEW_SGIS_sharpen_texture) - -#endif /* GL_SGIS_sharpen_texture */ - -/* --------------------------- GL_SGIS_texture4D --------------------------- */ - -#ifndef GL_SGIS_texture4D -#define GL_SGIS_texture4D 1 - -typedef void (GLAPIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void* pixels); - -#define glTexImage4DSGIS GLEW_GET_FUN(__glewTexImage4DSGIS) -#define glTexSubImage4DSGIS GLEW_GET_FUN(__glewTexSubImage4DSGIS) - -#define GLEW_SGIS_texture4D GLEW_GET_VAR(__GLEW_SGIS_texture4D) - -#endif /* GL_SGIS_texture4D */ - -/* ---------------------- GL_SGIS_texture_border_clamp --------------------- */ - -#ifndef GL_SGIS_texture_border_clamp -#define GL_SGIS_texture_border_clamp 1 - -#define GL_CLAMP_TO_BORDER_SGIS 0x812D - -#define GLEW_SGIS_texture_border_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_border_clamp) - -#endif /* GL_SGIS_texture_border_clamp */ - -/* ----------------------- GL_SGIS_texture_edge_clamp ---------------------- */ - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_SGIS_texture_edge_clamp 1 - -#define GL_CLAMP_TO_EDGE_SGIS 0x812F - -#define GLEW_SGIS_texture_edge_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_edge_clamp) - -#endif /* GL_SGIS_texture_edge_clamp */ - -/* ------------------------ GL_SGIS_texture_filter4 ------------------------ */ - -#ifndef GL_SGIS_texture_filter4 -#define GL_SGIS_texture_filter4 1 - -typedef void (GLAPIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat* weights); -typedef void (GLAPIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat* weights); - -#define glGetTexFilterFuncSGIS GLEW_GET_FUN(__glewGetTexFilterFuncSGIS) -#define glTexFilterFuncSGIS GLEW_GET_FUN(__glewTexFilterFuncSGIS) - -#define GLEW_SGIS_texture_filter4 GLEW_GET_VAR(__GLEW_SGIS_texture_filter4) - -#endif /* GL_SGIS_texture_filter4 */ - -/* -------------------------- GL_SGIS_texture_lod -------------------------- */ - -#ifndef GL_SGIS_texture_lod -#define GL_SGIS_texture_lod 1 - -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D - -#define GLEW_SGIS_texture_lod GLEW_GET_VAR(__GLEW_SGIS_texture_lod) - -#endif /* GL_SGIS_texture_lod */ - -/* ------------------------- GL_SGIS_texture_select ------------------------ */ - -#ifndef GL_SGIS_texture_select -#define GL_SGIS_texture_select 1 - -#define GLEW_SGIS_texture_select GLEW_GET_VAR(__GLEW_SGIS_texture_select) - -#endif /* GL_SGIS_texture_select */ - -/* ----------------------------- GL_SGIX_async ----------------------------- */ - -#ifndef GL_SGIX_async -#define GL_SGIX_async 1 - -#define GL_ASYNC_MARKER_SGIX 0x8329 - -typedef void (GLAPIENTRY * PFNGLASYNCMARKERSGIXPROC) (GLuint marker); -typedef void (GLAPIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); -typedef GLint (GLAPIENTRY * PFNGLFINISHASYNCSGIXPROC) (GLuint* markerp); -typedef GLuint (GLAPIENTRY * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); -typedef GLboolean (GLAPIENTRY * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); -typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); - -#define glAsyncMarkerSGIX GLEW_GET_FUN(__glewAsyncMarkerSGIX) -#define glDeleteAsyncMarkersSGIX GLEW_GET_FUN(__glewDeleteAsyncMarkersSGIX) -#define glFinishAsyncSGIX GLEW_GET_FUN(__glewFinishAsyncSGIX) -#define glGenAsyncMarkersSGIX GLEW_GET_FUN(__glewGenAsyncMarkersSGIX) -#define glIsAsyncMarkerSGIX GLEW_GET_FUN(__glewIsAsyncMarkerSGIX) -#define glPollAsyncSGIX GLEW_GET_FUN(__glewPollAsyncSGIX) - -#define GLEW_SGIX_async GLEW_GET_VAR(__GLEW_SGIX_async) - -#endif /* GL_SGIX_async */ - -/* ------------------------ GL_SGIX_async_histogram ------------------------ */ - -#ifndef GL_SGIX_async_histogram -#define GL_SGIX_async_histogram 1 - -#define GL_ASYNC_HISTOGRAM_SGIX 0x832C -#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D - -#define GLEW_SGIX_async_histogram GLEW_GET_VAR(__GLEW_SGIX_async_histogram) - -#endif /* GL_SGIX_async_histogram */ - -/* -------------------------- GL_SGIX_async_pixel -------------------------- */ - -#ifndef GL_SGIX_async_pixel -#define GL_SGIX_async_pixel 1 - -#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C -#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D -#define GL_ASYNC_READ_PIXELS_SGIX 0x835E -#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F -#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 -#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 - -#define GLEW_SGIX_async_pixel GLEW_GET_VAR(__GLEW_SGIX_async_pixel) - -#endif /* GL_SGIX_async_pixel */ - -/* ----------------------- GL_SGIX_blend_alpha_minmax ---------------------- */ - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_SGIX_blend_alpha_minmax 1 - -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 - -#define GLEW_SGIX_blend_alpha_minmax GLEW_GET_VAR(__GLEW_SGIX_blend_alpha_minmax) - -#endif /* GL_SGIX_blend_alpha_minmax */ - -/* ---------------------------- GL_SGIX_clipmap ---------------------------- */ - -#ifndef GL_SGIX_clipmap -#define GL_SGIX_clipmap 1 - -#define GLEW_SGIX_clipmap GLEW_GET_VAR(__GLEW_SGIX_clipmap) - -#endif /* GL_SGIX_clipmap */ - -/* ---------------------- GL_SGIX_convolution_accuracy --------------------- */ - -#ifndef GL_SGIX_convolution_accuracy -#define GL_SGIX_convolution_accuracy 1 - -#define GL_CONVOLUTION_HINT_SGIX 0x8316 - -#define GLEW_SGIX_convolution_accuracy GLEW_GET_VAR(__GLEW_SGIX_convolution_accuracy) - -#endif /* GL_SGIX_convolution_accuracy */ - -/* ------------------------- GL_SGIX_depth_texture ------------------------- */ - -#ifndef GL_SGIX_depth_texture -#define GL_SGIX_depth_texture 1 - -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 - -#define GLEW_SGIX_depth_texture GLEW_GET_VAR(__GLEW_SGIX_depth_texture) - -#endif /* GL_SGIX_depth_texture */ - -/* -------------------------- GL_SGIX_flush_raster ------------------------- */ - -#ifndef GL_SGIX_flush_raster -#define GL_SGIX_flush_raster 1 - -typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); - -#define glFlushRasterSGIX GLEW_GET_FUN(__glewFlushRasterSGIX) - -#define GLEW_SGIX_flush_raster GLEW_GET_VAR(__GLEW_SGIX_flush_raster) - -#endif /* GL_SGIX_flush_raster */ - -/* --------------------------- GL_SGIX_fog_offset -------------------------- */ - -#ifndef GL_SGIX_fog_offset -#define GL_SGIX_fog_offset 1 - -#define GL_FOG_OFFSET_SGIX 0x8198 -#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 - -#define GLEW_SGIX_fog_offset GLEW_GET_VAR(__GLEW_SGIX_fog_offset) - -#endif /* GL_SGIX_fog_offset */ - -/* -------------------------- GL_SGIX_fog_texture -------------------------- */ - -#ifndef GL_SGIX_fog_texture -#define GL_SGIX_fog_texture 1 - -#define GL_TEXTURE_FOG_SGIX 0 -#define GL_FOG_PATCHY_FACTOR_SGIX 0 -#define GL_FRAGMENT_FOG_SGIX 0 - -typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname); - -#define glTextureFogSGIX GLEW_GET_FUN(__glewTextureFogSGIX) - -#define GLEW_SGIX_fog_texture GLEW_GET_VAR(__GLEW_SGIX_fog_texture) - -#endif /* GL_SGIX_fog_texture */ - -/* ------------------- GL_SGIX_fragment_specular_lighting ------------------ */ - -#ifndef GL_SGIX_fragment_specular_lighting -#define GL_SGIX_fragment_specular_lighting 1 - -typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum value, GLfloat* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum value, GLint* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* data); - -#define glFragmentColorMaterialSGIX GLEW_GET_FUN(__glewFragmentColorMaterialSGIX) -#define glFragmentLightModelfSGIX GLEW_GET_FUN(__glewFragmentLightModelfSGIX) -#define glFragmentLightModelfvSGIX GLEW_GET_FUN(__glewFragmentLightModelfvSGIX) -#define glFragmentLightModeliSGIX GLEW_GET_FUN(__glewFragmentLightModeliSGIX) -#define glFragmentLightModelivSGIX GLEW_GET_FUN(__glewFragmentLightModelivSGIX) -#define glFragmentLightfSGIX GLEW_GET_FUN(__glewFragmentLightfSGIX) -#define glFragmentLightfvSGIX GLEW_GET_FUN(__glewFragmentLightfvSGIX) -#define glFragmentLightiSGIX GLEW_GET_FUN(__glewFragmentLightiSGIX) -#define glFragmentLightivSGIX GLEW_GET_FUN(__glewFragmentLightivSGIX) -#define glFragmentMaterialfSGIX GLEW_GET_FUN(__glewFragmentMaterialfSGIX) -#define glFragmentMaterialfvSGIX GLEW_GET_FUN(__glewFragmentMaterialfvSGIX) -#define glFragmentMaterialiSGIX GLEW_GET_FUN(__glewFragmentMaterialiSGIX) -#define glFragmentMaterialivSGIX GLEW_GET_FUN(__glewFragmentMaterialivSGIX) -#define glGetFragmentLightfvSGIX GLEW_GET_FUN(__glewGetFragmentLightfvSGIX) -#define glGetFragmentLightivSGIX GLEW_GET_FUN(__glewGetFragmentLightivSGIX) -#define glGetFragmentMaterialfvSGIX GLEW_GET_FUN(__glewGetFragmentMaterialfvSGIX) -#define glGetFragmentMaterialivSGIX GLEW_GET_FUN(__glewGetFragmentMaterialivSGIX) - -#define GLEW_SGIX_fragment_specular_lighting GLEW_GET_VAR(__GLEW_SGIX_fragment_specular_lighting) - -#endif /* GL_SGIX_fragment_specular_lighting */ - -/* --------------------------- GL_SGIX_framezoom --------------------------- */ - -#ifndef GL_SGIX_framezoom -#define GL_SGIX_framezoom 1 - -typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); - -#define glFrameZoomSGIX GLEW_GET_FUN(__glewFrameZoomSGIX) - -#define GLEW_SGIX_framezoom GLEW_GET_VAR(__GLEW_SGIX_framezoom) - -#endif /* GL_SGIX_framezoom */ - -/* --------------------------- GL_SGIX_interlace --------------------------- */ - -#ifndef GL_SGIX_interlace -#define GL_SGIX_interlace 1 - -#define GL_INTERLACE_SGIX 0x8094 - -#define GLEW_SGIX_interlace GLEW_GET_VAR(__GLEW_SGIX_interlace) - -#endif /* GL_SGIX_interlace */ - -/* ------------------------- GL_SGIX_ir_instrument1 ------------------------ */ - -#ifndef GL_SGIX_ir_instrument1 -#define GL_SGIX_ir_instrument1 1 - -#define GLEW_SGIX_ir_instrument1 GLEW_GET_VAR(__GLEW_SGIX_ir_instrument1) - -#endif /* GL_SGIX_ir_instrument1 */ - -/* ------------------------- GL_SGIX_list_priority ------------------------- */ - -#ifndef GL_SGIX_list_priority -#define GL_SGIX_list_priority 1 - -#define GLEW_SGIX_list_priority GLEW_GET_VAR(__GLEW_SGIX_list_priority) - -#endif /* GL_SGIX_list_priority */ - -/* ------------------------- GL_SGIX_pixel_texture ------------------------- */ - -#ifndef GL_SGIX_pixel_texture -#define GL_SGIX_pixel_texture 1 - -typedef void (GLAPIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); - -#define glPixelTexGenSGIX GLEW_GET_FUN(__glewPixelTexGenSGIX) - -#define GLEW_SGIX_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_pixel_texture) - -#endif /* GL_SGIX_pixel_texture */ - -/* ----------------------- GL_SGIX_pixel_texture_bits ---------------------- */ - -#ifndef GL_SGIX_pixel_texture_bits -#define GL_SGIX_pixel_texture_bits 1 - -#define GLEW_SGIX_pixel_texture_bits GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_bits) - -#endif /* GL_SGIX_pixel_texture_bits */ - -/* ------------------------ GL_SGIX_reference_plane ------------------------ */ - -#ifndef GL_SGIX_reference_plane -#define GL_SGIX_reference_plane 1 - -typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equation); - -#define glReferencePlaneSGIX GLEW_GET_FUN(__glewReferencePlaneSGIX) - -#define GLEW_SGIX_reference_plane GLEW_GET_VAR(__GLEW_SGIX_reference_plane) - -#endif /* GL_SGIX_reference_plane */ - -/* ---------------------------- GL_SGIX_resample --------------------------- */ - -#ifndef GL_SGIX_resample -#define GL_SGIX_resample 1 - -#define GL_PACK_RESAMPLE_SGIX 0x842E -#define GL_UNPACK_RESAMPLE_SGIX 0x842F -#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#define GL_RESAMPLE_REPLICATE_SGIX 0x8433 -#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434 - -#define GLEW_SGIX_resample GLEW_GET_VAR(__GLEW_SGIX_resample) - -#endif /* GL_SGIX_resample */ - -/* ----------------------------- GL_SGIX_shadow ---------------------------- */ - -#ifndef GL_SGIX_shadow -#define GL_SGIX_shadow 1 - -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D - -#define GLEW_SGIX_shadow GLEW_GET_VAR(__GLEW_SGIX_shadow) - -#endif /* GL_SGIX_shadow */ - -/* ------------------------- GL_SGIX_shadow_ambient ------------------------ */ - -#ifndef GL_SGIX_shadow_ambient -#define GL_SGIX_shadow_ambient 1 - -#define GL_SHADOW_AMBIENT_SGIX 0x80BF - -#define GLEW_SGIX_shadow_ambient GLEW_GET_VAR(__GLEW_SGIX_shadow_ambient) - -#endif /* GL_SGIX_shadow_ambient */ - -/* ----------------------------- GL_SGIX_sprite ---------------------------- */ - -#ifndef GL_SGIX_sprite -#define GL_SGIX_sprite 1 - -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, GLint* params); - -#define glSpriteParameterfSGIX GLEW_GET_FUN(__glewSpriteParameterfSGIX) -#define glSpriteParameterfvSGIX GLEW_GET_FUN(__glewSpriteParameterfvSGIX) -#define glSpriteParameteriSGIX GLEW_GET_FUN(__glewSpriteParameteriSGIX) -#define glSpriteParameterivSGIX GLEW_GET_FUN(__glewSpriteParameterivSGIX) - -#define GLEW_SGIX_sprite GLEW_GET_VAR(__GLEW_SGIX_sprite) - -#endif /* GL_SGIX_sprite */ - -/* ----------------------- GL_SGIX_tag_sample_buffer ----------------------- */ - -#ifndef GL_SGIX_tag_sample_buffer -#define GL_SGIX_tag_sample_buffer 1 - -typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); - -#define glTagSampleBufferSGIX GLEW_GET_FUN(__glewTagSampleBufferSGIX) - -#define GLEW_SGIX_tag_sample_buffer GLEW_GET_VAR(__GLEW_SGIX_tag_sample_buffer) - -#endif /* GL_SGIX_tag_sample_buffer */ - -/* ------------------------ GL_SGIX_texture_add_env ------------------------ */ - -#ifndef GL_SGIX_texture_add_env -#define GL_SGIX_texture_add_env 1 - -#define GLEW_SGIX_texture_add_env GLEW_GET_VAR(__GLEW_SGIX_texture_add_env) - -#endif /* GL_SGIX_texture_add_env */ - -/* -------------------- GL_SGIX_texture_coordinate_clamp ------------------- */ - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_SGIX_texture_coordinate_clamp 1 - -#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 -#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A -#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B - -#define GLEW_SGIX_texture_coordinate_clamp GLEW_GET_VAR(__GLEW_SGIX_texture_coordinate_clamp) - -#endif /* GL_SGIX_texture_coordinate_clamp */ - -/* ------------------------ GL_SGIX_texture_lod_bias ----------------------- */ - -#ifndef GL_SGIX_texture_lod_bias -#define GL_SGIX_texture_lod_bias 1 - -#define GLEW_SGIX_texture_lod_bias GLEW_GET_VAR(__GLEW_SGIX_texture_lod_bias) - -#endif /* GL_SGIX_texture_lod_bias */ - -/* ---------------------- GL_SGIX_texture_multi_buffer --------------------- */ - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_SGIX_texture_multi_buffer 1 - -#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E - -#define GLEW_SGIX_texture_multi_buffer GLEW_GET_VAR(__GLEW_SGIX_texture_multi_buffer) - -#endif /* GL_SGIX_texture_multi_buffer */ - -/* ------------------------- GL_SGIX_texture_range ------------------------- */ - -#ifndef GL_SGIX_texture_range -#define GL_SGIX_texture_range 1 - -#define GL_RGB_SIGNED_SGIX 0x85E0 -#define GL_RGBA_SIGNED_SGIX 0x85E1 -#define GL_ALPHA_SIGNED_SGIX 0x85E2 -#define GL_LUMINANCE_SIGNED_SGIX 0x85E3 -#define GL_INTENSITY_SIGNED_SGIX 0x85E4 -#define GL_LUMINANCE_ALPHA_SIGNED_SGIX 0x85E5 -#define GL_RGB16_SIGNED_SGIX 0x85E6 -#define GL_RGBA16_SIGNED_SGIX 0x85E7 -#define GL_ALPHA16_SIGNED_SGIX 0x85E8 -#define GL_LUMINANCE16_SIGNED_SGIX 0x85E9 -#define GL_INTENSITY16_SIGNED_SGIX 0x85EA -#define GL_LUMINANCE16_ALPHA16_SIGNED_SGIX 0x85EB -#define GL_RGB_EXTENDED_RANGE_SGIX 0x85EC -#define GL_RGBA_EXTENDED_RANGE_SGIX 0x85ED -#define GL_ALPHA_EXTENDED_RANGE_SGIX 0x85EE -#define GL_LUMINANCE_EXTENDED_RANGE_SGIX 0x85EF -#define GL_INTENSITY_EXTENDED_RANGE_SGIX 0x85F0 -#define GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX 0x85F1 -#define GL_RGB16_EXTENDED_RANGE_SGIX 0x85F2 -#define GL_RGBA16_EXTENDED_RANGE_SGIX 0x85F3 -#define GL_ALPHA16_EXTENDED_RANGE_SGIX 0x85F4 -#define GL_LUMINANCE16_EXTENDED_RANGE_SGIX 0x85F5 -#define GL_INTENSITY16_EXTENDED_RANGE_SGIX 0x85F6 -#define GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85F7 -#define GL_MIN_LUMINANCE_SGIS 0x85F8 -#define GL_MAX_LUMINANCE_SGIS 0x85F9 -#define GL_MIN_INTENSITY_SGIS 0x85FA -#define GL_MAX_INTENSITY_SGIS 0x85FB - -#define GLEW_SGIX_texture_range GLEW_GET_VAR(__GLEW_SGIX_texture_range) - -#endif /* GL_SGIX_texture_range */ - -/* ----------------------- GL_SGIX_texture_scale_bias ---------------------- */ - -#ifndef GL_SGIX_texture_scale_bias -#define GL_SGIX_texture_scale_bias 1 - -#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C - -#define GLEW_SGIX_texture_scale_bias GLEW_GET_VAR(__GLEW_SGIX_texture_scale_bias) - -#endif /* GL_SGIX_texture_scale_bias */ - -/* ------------------------- GL_SGIX_vertex_preclip ------------------------ */ - -#ifndef GL_SGIX_vertex_preclip -#define GL_SGIX_vertex_preclip 1 - -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF - -#define GLEW_SGIX_vertex_preclip GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip) - -#endif /* GL_SGIX_vertex_preclip */ - -/* ---------------------- GL_SGIX_vertex_preclip_hint ---------------------- */ - -#ifndef GL_SGIX_vertex_preclip_hint -#define GL_SGIX_vertex_preclip_hint 1 - -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF - -#define GLEW_SGIX_vertex_preclip_hint GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip_hint) - -#endif /* GL_SGIX_vertex_preclip_hint */ - -/* ----------------------------- GL_SGIX_ycrcb ----------------------------- */ - -#ifndef GL_SGIX_ycrcb -#define GL_SGIX_ycrcb 1 - -#define GLEW_SGIX_ycrcb GLEW_GET_VAR(__GLEW_SGIX_ycrcb) - -#endif /* GL_SGIX_ycrcb */ - -/* -------------------------- GL_SGI_color_matrix -------------------------- */ - -#ifndef GL_SGI_color_matrix -#define GL_SGI_color_matrix 1 - -#define GL_COLOR_MATRIX_SGI 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB - -#define GLEW_SGI_color_matrix GLEW_GET_VAR(__GLEW_SGI_color_matrix) - -#endif /* GL_SGI_color_matrix */ - -/* --------------------------- GL_SGI_color_table -------------------------- */ - -#ifndef GL_SGI_color_table -#define GL_SGI_color_table 1 - -#define GL_COLOR_TABLE_SGI 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF - -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* table); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void* table); - -#define glColorTableParameterfvSGI GLEW_GET_FUN(__glewColorTableParameterfvSGI) -#define glColorTableParameterivSGI GLEW_GET_FUN(__glewColorTableParameterivSGI) -#define glColorTableSGI GLEW_GET_FUN(__glewColorTableSGI) -#define glCopyColorTableSGI GLEW_GET_FUN(__glewCopyColorTableSGI) -#define glGetColorTableParameterfvSGI GLEW_GET_FUN(__glewGetColorTableParameterfvSGI) -#define glGetColorTableParameterivSGI GLEW_GET_FUN(__glewGetColorTableParameterivSGI) -#define glGetColorTableSGI GLEW_GET_FUN(__glewGetColorTableSGI) - -#define GLEW_SGI_color_table GLEW_GET_VAR(__GLEW_SGI_color_table) - -#endif /* GL_SGI_color_table */ - -/* ----------------------- GL_SGI_texture_color_table ---------------------- */ - -#ifndef GL_SGI_texture_color_table -#define GL_SGI_texture_color_table 1 - -#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD - -#define GLEW_SGI_texture_color_table GLEW_GET_VAR(__GLEW_SGI_texture_color_table) - -#endif /* GL_SGI_texture_color_table */ - -/* ------------------------- GL_SUNX_constant_data ------------------------- */ - -#ifndef GL_SUNX_constant_data -#define GL_SUNX_constant_data 1 - -#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 - -typedef void (GLAPIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void); - -#define glFinishTextureSUNX GLEW_GET_FUN(__glewFinishTextureSUNX) - -#define GLEW_SUNX_constant_data GLEW_GET_VAR(__GLEW_SUNX_constant_data) - -#endif /* GL_SUNX_constant_data */ - -/* -------------------- GL_SUN_convolution_border_modes -------------------- */ - -#ifndef GL_SUN_convolution_border_modes -#define GL_SUN_convolution_border_modes 1 - -#define GL_WRAP_BORDER_SUN 0x81D4 - -#define GLEW_SUN_convolution_border_modes GLEW_GET_VAR(__GLEW_SUN_convolution_border_modes) - -#endif /* GL_SUN_convolution_border_modes */ - -/* -------------------------- GL_SUN_global_alpha -------------------------- */ - -#ifndef GL_SUN_global_alpha -#define GL_SUN_global_alpha 1 - -#define GL_GLOBAL_ALPHA_SUN 0x81D9 -#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA - -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); - -#define glGlobalAlphaFactorbSUN GLEW_GET_FUN(__glewGlobalAlphaFactorbSUN) -#define glGlobalAlphaFactordSUN GLEW_GET_FUN(__glewGlobalAlphaFactordSUN) -#define glGlobalAlphaFactorfSUN GLEW_GET_FUN(__glewGlobalAlphaFactorfSUN) -#define glGlobalAlphaFactoriSUN GLEW_GET_FUN(__glewGlobalAlphaFactoriSUN) -#define glGlobalAlphaFactorsSUN GLEW_GET_FUN(__glewGlobalAlphaFactorsSUN) -#define glGlobalAlphaFactorubSUN GLEW_GET_FUN(__glewGlobalAlphaFactorubSUN) -#define glGlobalAlphaFactoruiSUN GLEW_GET_FUN(__glewGlobalAlphaFactoruiSUN) -#define glGlobalAlphaFactorusSUN GLEW_GET_FUN(__glewGlobalAlphaFactorusSUN) - -#define GLEW_SUN_global_alpha GLEW_GET_VAR(__GLEW_SUN_global_alpha) - -#endif /* GL_SUN_global_alpha */ - -/* --------------------------- GL_SUN_mesh_array --------------------------- */ - -#ifndef GL_SUN_mesh_array -#define GL_SUN_mesh_array 1 - -#define GL_QUAD_MESH_SUN 0x8614 -#define GL_TRIANGLE_MESH_SUN 0x8615 - -#define GLEW_SUN_mesh_array GLEW_GET_VAR(__GLEW_SUN_mesh_array) - -#endif /* GL_SUN_mesh_array */ - -/* ------------------------ GL_SUN_read_video_pixels ----------------------- */ - -#ifndef GL_SUN_read_video_pixels -#define GL_SUN_read_video_pixels 1 - -typedef void (GLAPIENTRY * PFNGLREADVIDEOPIXELSSUNPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); - -#define glReadVideoPixelsSUN GLEW_GET_FUN(__glewReadVideoPixelsSUN) - -#define GLEW_SUN_read_video_pixels GLEW_GET_VAR(__GLEW_SUN_read_video_pixels) - -#endif /* GL_SUN_read_video_pixels */ - -/* --------------------------- GL_SUN_slice_accum -------------------------- */ - -#ifndef GL_SUN_slice_accum -#define GL_SUN_slice_accum 1 - -#define GL_SLICE_ACCUM_SUN 0x85CC - -#define GLEW_SUN_slice_accum GLEW_GET_VAR(__GLEW_SUN_slice_accum) - -#endif /* GL_SUN_slice_accum */ - -/* -------------------------- GL_SUN_triangle_list ------------------------- */ - -#ifndef GL_SUN_triangle_list -#define GL_SUN_triangle_list 1 - -#define GL_RESTART_SUN 0x01 -#define GL_REPLACE_MIDDLE_SUN 0x02 -#define GL_REPLACE_OLDEST_SUN 0x03 -#define GL_TRIANGLE_LIST_SUN 0x81D7 -#define GL_REPLACEMENT_CODE_SUN 0x81D8 -#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define GL_R1UI_V3F_SUN 0x85C4 -#define GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define GL_R1UI_C3F_V3F_SUN 0x85C6 -#define GL_R1UI_N3F_V3F_SUN 0x85C7 -#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define GL_R1UI_T2F_V3F_SUN 0x85C9 -#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB - -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void* pointer); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte* code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint* code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort* code); - -#define glReplacementCodePointerSUN GLEW_GET_FUN(__glewReplacementCodePointerSUN) -#define glReplacementCodeubSUN GLEW_GET_FUN(__glewReplacementCodeubSUN) -#define glReplacementCodeubvSUN GLEW_GET_FUN(__glewReplacementCodeubvSUN) -#define glReplacementCodeuiSUN GLEW_GET_FUN(__glewReplacementCodeuiSUN) -#define glReplacementCodeuivSUN GLEW_GET_FUN(__glewReplacementCodeuivSUN) -#define glReplacementCodeusSUN GLEW_GET_FUN(__glewReplacementCodeusSUN) -#define glReplacementCodeusvSUN GLEW_GET_FUN(__glewReplacementCodeusvSUN) - -#define GLEW_SUN_triangle_list GLEW_GET_VAR(__GLEW_SUN_triangle_list) - -#endif /* GL_SUN_triangle_list */ - -/* ----------------------------- GL_SUN_vertex ----------------------------- */ - -#ifndef GL_SUN_vertex -#define GL_SUN_vertex 1 - -typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte* c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte* c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint* rc, const GLubyte *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat* tc, const GLubyte *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *v); - -#define glColor3fVertex3fSUN GLEW_GET_FUN(__glewColor3fVertex3fSUN) -#define glColor3fVertex3fvSUN GLEW_GET_FUN(__glewColor3fVertex3fvSUN) -#define glColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fSUN) -#define glColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fvSUN) -#define glColor4ubVertex2fSUN GLEW_GET_FUN(__glewColor4ubVertex2fSUN) -#define glColor4ubVertex2fvSUN GLEW_GET_FUN(__glewColor4ubVertex2fvSUN) -#define glColor4ubVertex3fSUN GLEW_GET_FUN(__glewColor4ubVertex3fSUN) -#define glColor4ubVertex3fvSUN GLEW_GET_FUN(__glewColor4ubVertex3fvSUN) -#define glNormal3fVertex3fSUN GLEW_GET_FUN(__glewNormal3fVertex3fSUN) -#define glNormal3fVertex3fvSUN GLEW_GET_FUN(__glewNormal3fVertex3fvSUN) -#define glReplacementCodeuiColor3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fSUN) -#define glReplacementCodeuiColor3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fvSUN) -#define glReplacementCodeuiColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fSUN) -#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fvSUN) -#define glReplacementCodeuiColor4ubVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fSUN) -#define glReplacementCodeuiColor4ubVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fvSUN) -#define glReplacementCodeuiNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fSUN) -#define glReplacementCodeuiNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fvSUN) -#define glReplacementCodeuiVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fSUN) -#define glReplacementCodeuiVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fvSUN) -#define glTexCoord2fColor3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fSUN) -#define glTexCoord2fColor3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fvSUN) -#define glTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fSUN) -#define glTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fvSUN) -#define glTexCoord2fColor4ubVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fSUN) -#define glTexCoord2fColor4ubVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fvSUN) -#define glTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fSUN) -#define glTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fvSUN) -#define glTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fSUN) -#define glTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fvSUN) -#define glTexCoord4fColor4fNormal3fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fSUN) -#define glTexCoord4fColor4fNormal3fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fvSUN) -#define glTexCoord4fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fSUN) -#define glTexCoord4fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fvSUN) - -#define GLEW_SUN_vertex GLEW_GET_VAR(__GLEW_SUN_vertex) - -#endif /* GL_SUN_vertex */ - -/* -------------------------- GL_WIN_phong_shading ------------------------- */ - -#ifndef GL_WIN_phong_shading -#define GL_WIN_phong_shading 1 - -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB - -#define GLEW_WIN_phong_shading GLEW_GET_VAR(__GLEW_WIN_phong_shading) - -#endif /* GL_WIN_phong_shading */ - -/* -------------------------- GL_WIN_specular_fog -------------------------- */ - -#ifndef GL_WIN_specular_fog -#define GL_WIN_specular_fog 1 - -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC - -#define GLEW_WIN_specular_fog GLEW_GET_VAR(__GLEW_WIN_specular_fog) - -#endif /* GL_WIN_specular_fog */ - -/* ---------------------------- GL_WIN_swap_hint --------------------------- */ - -#ifndef GL_WIN_swap_hint -#define GL_WIN_swap_hint 1 - -typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height); - -#define glAddSwapHintRectWIN GLEW_GET_FUN(__glewAddSwapHintRectWIN) - -#define GLEW_WIN_swap_hint GLEW_GET_VAR(__GLEW_WIN_swap_hint) - -#endif /* GL_WIN_swap_hint */ - -/* ------------------------------------------------------------------------- */ - -#if defined(GLEW_MX) && defined(_WIN32) -#define GLEW_FUN_EXPORT -#else -#define GLEW_FUN_EXPORT GLEWAPI -#endif /* GLEW_MX */ - -#if defined(GLEW_MX) -#define GLEW_VAR_EXPORT -#else -#define GLEW_VAR_EXPORT GLEWAPI -#endif /* GLEW_MX */ - -#if defined(GLEW_MX) && defined(_WIN32) -struct GLEWContextStruct -{ -#endif /* GLEW_MX */ - -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements; -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DPROC __glewTexImage3D; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D; - -GLEW_FUN_EXPORT PFNGLACTIVETEXTUREPROC __glewActiveTexture; -GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage; -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd; -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv; -GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage; - -GLEW_FUN_EXPORT PFNGLBLENDCOLORPROC __glewBlendColor; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONPROC __glewBlendEquation; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate; -GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer; -GLEW_FUN_EXPORT PFNGLFOGCOORDDPROC __glewFogCoordd; -GLEW_FUN_EXPORT PFNGLFOGCOORDDVPROC __glewFogCoorddv; -GLEW_FUN_EXPORT PFNGLFOGCOORDFPROC __glewFogCoordf; -GLEW_FUN_EXPORT PFNGLFOGCOORDFVPROC __glewFogCoordfv; -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFPROC __glewPointParameterf; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIPROC __glewPointParameteri; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DPROC __glewWindowPos2d; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FPROC __glewWindowPos2f; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IPROC __glewWindowPos2i; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SPROC __glewWindowPos2s; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DPROC __glewWindowPos3d; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FPROC __glewWindowPos3f; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IPROC __glewWindowPos3i; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SPROC __glewWindowPos3s; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYPROC __glewBeginQuery; -GLEW_FUN_EXPORT PFNGLBINDBUFFERPROC __glewBindBuffer; -GLEW_FUN_EXPORT PFNGLBUFFERDATAPROC __glewBufferData; -GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAPROC __glewBufferSubData; -GLEW_FUN_EXPORT PFNGLDELETEBUFFERSPROC __glewDeleteBuffers; -GLEW_FUN_EXPORT PFNGLDELETEQUERIESPROC __glewDeleteQueries; -GLEW_FUN_EXPORT PFNGLENDQUERYPROC __glewEndQuery; -GLEW_FUN_EXPORT PFNGLGENBUFFERSPROC __glewGenBuffers; -GLEW_FUN_EXPORT PFNGLGENQUERIESPROC __glewGenQueries; -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv; -GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv; -GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv; -GLEW_FUN_EXPORT PFNGLGETQUERYIVPROC __glewGetQueryiv; -GLEW_FUN_EXPORT PFNGLISBUFFERPROC __glewIsBuffer; -GLEW_FUN_EXPORT PFNGLISQUERYPROC __glewIsQuery; -GLEW_FUN_EXPORT PFNGLMAPBUFFERPROC __glewMapBuffer; -GLEW_FUN_EXPORT PFNGLUNMAPBUFFERPROC __glewUnmapBuffer; - -GLEW_FUN_EXPORT PFNGLATTACHSHADERPROC __glewAttachShader; -GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEPROC __glewBlendEquationSeparate; -GLEW_FUN_EXPORT PFNGLCOMPILESHADERPROC __glewCompileShader; -GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPROC __glewCreateProgram; -GLEW_FUN_EXPORT PFNGLCREATESHADERPROC __glewCreateShader; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPROC __glewDeleteProgram; -GLEW_FUN_EXPORT PFNGLDELETESHADERPROC __glewDeleteShader; -GLEW_FUN_EXPORT PFNGLDETACHSHADERPROC __glewDetachShader; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYPROC __glewDisableVertexAttribArray; -GLEW_FUN_EXPORT PFNGLDRAWBUFFERSPROC __glewDrawBuffers; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray; -GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBPROC __glewGetActiveAttrib; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMPROC __glewGetActiveUniform; -GLEW_FUN_EXPORT PFNGLGETATTACHEDSHADERSPROC __glewGetAttachedShaders; -GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONPROC __glewGetAttribLocation; -GLEW_FUN_EXPORT PFNGLGETPROGRAMINFOLOGPROC __glewGetProgramInfoLog; -GLEW_FUN_EXPORT PFNGLGETPROGRAMIVPROC __glewGetProgramiv; -GLEW_FUN_EXPORT PFNGLGETSHADERINFOLOGPROC __glewGetShaderInfoLog; -GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEPROC __glewGetShaderSource; -GLEW_FUN_EXPORT PFNGLGETSHADERIVPROC __glewGetShaderiv; -GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONPROC __glewGetUniformLocation; -GLEW_FUN_EXPORT PFNGLGETUNIFORMFVPROC __glewGetUniformfv; -GLEW_FUN_EXPORT PFNGLGETUNIFORMIVPROC __glewGetUniformiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVPROC __glewGetVertexAttribPointerv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVPROC __glewGetVertexAttribdv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVPROC __glewGetVertexAttribfv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVPROC __glewGetVertexAttribiv; -GLEW_FUN_EXPORT PFNGLISPROGRAMPROC __glewIsProgram; -GLEW_FUN_EXPORT PFNGLISSHADERPROC __glewIsShader; -GLEW_FUN_EXPORT PFNGLLINKPROGRAMPROC __glewLinkProgram; -GLEW_FUN_EXPORT PFNGLSHADERSOURCEPROC __glewShaderSource; -GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEPROC __glewStencilFuncSeparate; -GLEW_FUN_EXPORT PFNGLSTENCILMASKSEPARATEPROC __glewStencilMaskSeparate; -GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEPROC __glewStencilOpSeparate; -GLEW_FUN_EXPORT PFNGLUNIFORM1FPROC __glewUniform1f; -GLEW_FUN_EXPORT PFNGLUNIFORM1FVPROC __glewUniform1fv; -GLEW_FUN_EXPORT PFNGLUNIFORM1IPROC __glewUniform1i; -GLEW_FUN_EXPORT PFNGLUNIFORM1IVPROC __glewUniform1iv; -GLEW_FUN_EXPORT PFNGLUNIFORM2FPROC __glewUniform2f; -GLEW_FUN_EXPORT PFNGLUNIFORM2FVPROC __glewUniform2fv; -GLEW_FUN_EXPORT PFNGLUNIFORM2IPROC __glewUniform2i; -GLEW_FUN_EXPORT PFNGLUNIFORM2IVPROC __glewUniform2iv; -GLEW_FUN_EXPORT PFNGLUNIFORM3FPROC __glewUniform3f; -GLEW_FUN_EXPORT PFNGLUNIFORM3FVPROC __glewUniform3fv; -GLEW_FUN_EXPORT PFNGLUNIFORM3IPROC __glewUniform3i; -GLEW_FUN_EXPORT PFNGLUNIFORM3IVPROC __glewUniform3iv; -GLEW_FUN_EXPORT PFNGLUNIFORM4FPROC __glewUniform4f; -GLEW_FUN_EXPORT PFNGLUNIFORM4FVPROC __glewUniform4fv; -GLEW_FUN_EXPORT PFNGLUNIFORM4IPROC __glewUniform4i; -GLEW_FUN_EXPORT PFNGLUNIFORM4IVPROC __glewUniform4iv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVPROC __glewUniformMatrix2fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVPROC __glewUniformMatrix3fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVPROC __glewUniformMatrix4fv; -GLEW_FUN_EXPORT PFNGLUSEPROGRAMPROC __glewUseProgram; -GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPROC __glewValidateProgram; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DPROC __glewVertexAttrib1d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVPROC __glewVertexAttrib1dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FPROC __glewVertexAttrib1f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVPROC __glewVertexAttrib1fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SPROC __glewVertexAttrib1s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVPROC __glewVertexAttrib1sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DPROC __glewVertexAttrib2d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVPROC __glewVertexAttrib2dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FPROC __glewVertexAttrib2f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVPROC __glewVertexAttrib2fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SPROC __glewVertexAttrib2s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVPROC __glewVertexAttrib2sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DPROC __glewVertexAttrib3d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVPROC __glewVertexAttrib3dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FPROC __glewVertexAttrib3f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVPROC __glewVertexAttrib3fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SPROC __glewVertexAttrib3s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVPROC __glewVertexAttrib3sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVPROC __glewVertexAttrib4Nbv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVPROC __glewVertexAttrib4Niv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVPROC __glewVertexAttrib4Nsv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBPROC __glewVertexAttrib4Nub; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVPROC __glewVertexAttrib4Nubv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVPROC __glewVertexAttrib4Nuiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVPROC __glewVertexAttrib4Nusv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVPROC __glewVertexAttrib4bv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DPROC __glewVertexAttrib4d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVPROC __glewVertexAttrib4dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FPROC __glewVertexAttrib4f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVPROC __glewVertexAttrib4fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVPROC __glewVertexAttrib4iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SPROC __glewVertexAttrib4s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVPROC __glewVertexAttrib4sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVPROC __glewVertexAttrib4ubv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVPROC __glewVertexAttrib4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVPROC __glewVertexAttrib4usv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERPROC __glewVertexAttribPointer; - -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVPROC __glewUniformMatrix2x3fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVPROC __glewUniformMatrix2x4fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVPROC __glewUniformMatrix3x2fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv; - -GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender; -GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback; -GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation; -GLEW_FUN_EXPORT PFNGLCLAMPCOLORPROC __glewClampColor; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERFIPROC __glewClearBufferfi; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERFVPROC __glewClearBufferfv; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERIVPROC __glewClearBufferiv; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv; -GLEW_FUN_EXPORT PFNGLCOLORMASKIPROC __glewColorMaski; -GLEW_FUN_EXPORT PFNGLDISABLEIPROC __glewDisablei; -GLEW_FUN_EXPORT PFNGLENABLEIPROC __glewEnablei; -GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender; -GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback; -GLEW_FUN_EXPORT PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v; -GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation; -GLEW_FUN_EXPORT PFNGLGETSTRINGIPROC __glewGetStringi; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying; -GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv; -GLEW_FUN_EXPORT PFNGLISENABLEDIPROC __glewIsEnabledi; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIPROC __glewUniform1ui; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIVPROC __glewUniform1uiv; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIPROC __glewUniform2ui; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIVPROC __glewUniform2uiv; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIPROC __glewUniform3ui; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIVPROC __glewUniform3uiv; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIPROC __glewUniform4ui; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIVPROC __glewUniform4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced; -GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex; -GLEW_FUN_EXPORT PFNGLTEXBUFFERPROC __glewTexBuffer; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture; -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v; -GLEW_FUN_EXPORT PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v; - -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIPROC __glewBlendEquationi; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei; -GLEW_FUN_EXPORT PFNGLBLENDFUNCIPROC __glewBlendFunci; -GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading; - -GLEW_FUN_EXPORT PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX; - -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD; -GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD; -GLEW_FUN_EXPORT PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC __glewMultiDrawElementsIndirectAMD; - -GLEW_FUN_EXPORT PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD; -GLEW_FUN_EXPORT PFNGLGENNAMESAMDPROC __glewGenNamesAMD; -GLEW_FUN_EXPORT PFNGLISNAMEAMDPROC __glewIsNameAMD; - -GLEW_FUN_EXPORT PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD; -GLEW_FUN_EXPORT PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD; -GLEW_FUN_EXPORT PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD; -GLEW_FUN_EXPORT PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD; -GLEW_FUN_EXPORT PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD; - -GLEW_FUN_EXPORT PFNGLSETMULTISAMPLEFVAMDPROC __glewSetMultisamplefvAMD; - -GLEW_FUN_EXPORT PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD; -GLEW_FUN_EXPORT PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD; - -GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE; -GLEW_FUN_EXPORT PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC __glewMultiDrawElementArrayAPPLE; -GLEW_FUN_EXPORT PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC __glewMultiDrawRangeElementArrayAPPLE; - -GLEW_FUN_EXPORT PFNGLDELETEFENCESAPPLEPROC __glewDeleteFencesAPPLE; -GLEW_FUN_EXPORT PFNGLFINISHFENCEAPPLEPROC __glewFinishFenceAPPLE; -GLEW_FUN_EXPORT PFNGLFINISHOBJECTAPPLEPROC __glewFinishObjectAPPLE; -GLEW_FUN_EXPORT PFNGLGENFENCESAPPLEPROC __glewGenFencesAPPLE; -GLEW_FUN_EXPORT PFNGLISFENCEAPPLEPROC __glewIsFenceAPPLE; -GLEW_FUN_EXPORT PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE; -GLEW_FUN_EXPORT PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE; -GLEW_FUN_EXPORT PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE; - -GLEW_FUN_EXPORT PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE; -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE; - -GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE; -GLEW_FUN_EXPORT PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE; -GLEW_FUN_EXPORT PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE; - -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE; -GLEW_FUN_EXPORT PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE; - -GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYAPPLEPROC __glewBindVertexArrayAPPLE; -GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSAPPLEPROC __glewDeleteVertexArraysAPPLE; -GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSAPPLEPROC __glewGenVertexArraysAPPLE; -GLEW_FUN_EXPORT PFNGLISVERTEXARRAYAPPLEPROC __glewIsVertexArrayAPPLE; - -GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeAPPLE; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE; - -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE; -GLEW_FUN_EXPORT PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE; - -GLEW_FUN_EXPORT PFNGLCLEARDEPTHFPROC __glewClearDepthf; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEFPROC __glewDepthRangef; -GLEW_FUN_EXPORT PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat; -GLEW_FUN_EXPORT PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler; -GLEW_FUN_EXPORT PFNGLSHADERBINARYPROC __glewShaderBinary; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC __glewDrawArraysInstancedBaseInstance; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC __glewDrawElementsInstancedBaseInstance; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC __glewDrawElementsInstancedBaseVertexBaseInstance; - -GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed; -GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex; - -GLEW_FUN_EXPORT PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB; - -GLEW_FUN_EXPORT PFNGLCLAMPCOLORARBPROC __glewClampColorARB; - -GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData; - -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB; -GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB; - -GLEW_FUN_EXPORT PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB; -GLEW_FUN_EXPORT PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB; - -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect; - -GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer; -GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer; -GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer; -GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus; -GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers; -GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer; -GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers; -GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers; -GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv; -GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv; -GLEW_FUN_EXPORT PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer; -GLEW_FUN_EXPORT PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer; -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage; -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB; - -GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary; -GLEW_FUN_EXPORT PFNGLPROGRAMBINARYPROC __glewProgramBinary; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri; - -GLEW_FUN_EXPORT PFNGLGETUNIFORMDVPROC __glewGetUniformdv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DEXTPROC __glewProgramUniform1dEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVEXTPROC __glewProgramUniform1dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DEXTPROC __glewProgramUniform2dEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVEXTPROC __glewProgramUniform2dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DEXTPROC __glewProgramUniform3dEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVEXTPROC __glewProgramUniform3dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DEXTPROC __glewProgramUniform4dEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVEXTPROC __glewProgramUniform4dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC __glewProgramUniformMatrix2dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC __glewProgramUniformMatrix2x3dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC __glewProgramUniformMatrix2x4dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC __glewProgramUniformMatrix3dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC __glewProgramUniformMatrix3x2dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC __glewProgramUniformMatrix3x4dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC __glewProgramUniformMatrix4dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC __glewProgramUniformMatrix4x2dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC __glewProgramUniformMatrix4x3dvEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM1DPROC __glewUniform1d; -GLEW_FUN_EXPORT PFNGLUNIFORM1DVPROC __glewUniform1dv; -GLEW_FUN_EXPORT PFNGLUNIFORM2DPROC __glewUniform2d; -GLEW_FUN_EXPORT PFNGLUNIFORM2DVPROC __glewUniform2dv; -GLEW_FUN_EXPORT PFNGLUNIFORM3DPROC __glewUniform3d; -GLEW_FUN_EXPORT PFNGLUNIFORM3DVPROC __glewUniform3dv; -GLEW_FUN_EXPORT PFNGLUNIFORM4DPROC __glewUniform4d; -GLEW_FUN_EXPORT PFNGLUNIFORM4DVPROC __glewUniform4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv; - -GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEPROC __glewColorSubTable; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPROC __glewColorTable; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv; -GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable; -GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPROC __glewGetColorTable; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPROC __glewGetHistogram; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv; -GLEW_FUN_EXPORT PFNGLGETMINMAXPROC __glewGetMinmax; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv; -GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter; -GLEW_FUN_EXPORT PFNGLHISTOGRAMPROC __glewHistogram; -GLEW_FUN_EXPORT PFNGLMINMAXPROC __glewMinmax; -GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMPROC __glewResetHistogram; -GLEW_FUN_EXPORT PFNGLRESETMINMAXPROC __glewResetMinmax; -GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB; - -GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATIVPROC __glewGetInternalformativ; - -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange; -GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange; - -GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXUIVARBPROC __glewMatrixIndexuivARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXUSVARBPROC __glewMatrixIndexusvARB; - -GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEARBPROC __glewSampleCoverageARB; - -GLEW_FUN_EXPORT PFNGLACTIVETEXTUREARBPROC __glewActiveTextureARB; -GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREARBPROC __glewClientActiveTextureARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DARBPROC __glewMultiTexCoord1dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVARBPROC __glewMultiTexCoord1dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FARBPROC __glewMultiTexCoord1fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVARBPROC __glewMultiTexCoord1fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IARBPROC __glewMultiTexCoord1iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVARBPROC __glewMultiTexCoord1ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SARBPROC __glewMultiTexCoord1sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVARBPROC __glewMultiTexCoord1svARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DARBPROC __glewMultiTexCoord2dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVARBPROC __glewMultiTexCoord2dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FARBPROC __glewMultiTexCoord2fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVARBPROC __glewMultiTexCoord2fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IARBPROC __glewMultiTexCoord2iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVARBPROC __glewMultiTexCoord2ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SARBPROC __glewMultiTexCoord2sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVARBPROC __glewMultiTexCoord2svARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DARBPROC __glewMultiTexCoord3dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVARBPROC __glewMultiTexCoord3dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FARBPROC __glewMultiTexCoord3fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVARBPROC __glewMultiTexCoord3fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IARBPROC __glewMultiTexCoord3iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVARBPROC __glewMultiTexCoord3ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SARBPROC __glewMultiTexCoord3sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVARBPROC __glewMultiTexCoord3svARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DARBPROC __glewMultiTexCoord4dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVARBPROC __glewMultiTexCoord4dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FARBPROC __glewMultiTexCoord4fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVARBPROC __glewMultiTexCoord4fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IARBPROC __glewMultiTexCoord4iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVARBPROC __glewMultiTexCoord4ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SARBPROC __glewMultiTexCoord4sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVARBPROC __glewMultiTexCoord4svARB; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYARBPROC __glewBeginQueryARB; -GLEW_FUN_EXPORT PFNGLDELETEQUERIESARBPROC __glewDeleteQueriesARB; -GLEW_FUN_EXPORT PFNGLENDQUERYARBPROC __glewEndQueryARB; -GLEW_FUN_EXPORT PFNGLGENQUERIESARBPROC __glewGenQueriesARB; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVARBPROC __glewGetQueryObjectivARB; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVARBPROC __glewGetQueryObjectuivARB; -GLEW_FUN_EXPORT PFNGLGETQUERYIVARBPROC __glewGetQueryivARB; -GLEW_FUN_EXPORT PFNGLISQUERYARBPROC __glewIsQueryARB; - -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB; - -GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex; - -GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSARBPROC __glewGetGraphicsResetStatusARB; -GLEW_FUN_EXPORT PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB; -GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB; -GLEW_FUN_EXPORT PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB; -GLEW_FUN_EXPORT PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB; -GLEW_FUN_EXPORT PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB; -GLEW_FUN_EXPORT PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB; -GLEW_FUN_EXPORT PFNGLGETNMAPIVARBPROC __glewGetnMapivARB; -GLEW_FUN_EXPORT PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB; -GLEW_FUN_EXPORT PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB; -GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB; -GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB; -GLEW_FUN_EXPORT PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB; -GLEW_FUN_EXPORT PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB; -GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB; -GLEW_FUN_EXPORT PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB; - -GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB; - -GLEW_FUN_EXPORT PFNGLBINDSAMPLERPROC __glewBindSampler; -GLEW_FUN_EXPORT PFNGLDELETESAMPLERSPROC __glewDeleteSamplers; -GLEW_FUN_EXPORT PFNGLGENSAMPLERSPROC __glewGenSamplers; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv; -GLEW_FUN_EXPORT PFNGLISSAMPLERPROC __glewIsSampler; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv; - -GLEW_FUN_EXPORT PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram; -GLEW_FUN_EXPORT PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline; -GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines; -GLEW_FUN_EXPORT PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv; -GLEW_FUN_EXPORT PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv; -GLEW_FUN_EXPORT PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages; -GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline; - -GLEW_FUN_EXPORT PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC __glewGetActiveAtomicCounterBufferiv; - -GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREPROC __glewBindImageTexture; -GLEW_FUN_EXPORT PFNGLMEMORYBARRIERPROC __glewMemoryBarrier; - -GLEW_FUN_EXPORT PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB; -GLEW_FUN_EXPORT PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB; -GLEW_FUN_EXPORT PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB; -GLEW_FUN_EXPORT PFNGLCREATESHADEROBJECTARBPROC __glewCreateShaderObjectARB; -GLEW_FUN_EXPORT PFNGLDELETEOBJECTARBPROC __glewDeleteObjectARB; -GLEW_FUN_EXPORT PFNGLDETACHOBJECTARBPROC __glewDetachObjectARB; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMARBPROC __glewGetActiveUniformARB; -GLEW_FUN_EXPORT PFNGLGETATTACHEDOBJECTSARBPROC __glewGetAttachedObjectsARB; -GLEW_FUN_EXPORT PFNGLGETHANDLEARBPROC __glewGetHandleARB; -GLEW_FUN_EXPORT PFNGLGETINFOLOGARBPROC __glewGetInfoLogARB; -GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERFVARBPROC __glewGetObjectParameterfvARB; -GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVARBPROC __glewGetObjectParameterivARB; -GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEARBPROC __glewGetShaderSourceARB; -GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONARBPROC __glewGetUniformLocationARB; -GLEW_FUN_EXPORT PFNGLGETUNIFORMFVARBPROC __glewGetUniformfvARB; -GLEW_FUN_EXPORT PFNGLGETUNIFORMIVARBPROC __glewGetUniformivARB; -GLEW_FUN_EXPORT PFNGLLINKPROGRAMARBPROC __glewLinkProgramARB; -GLEW_FUN_EXPORT PFNGLSHADERSOURCEARBPROC __glewShaderSourceARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1FARBPROC __glewUniform1fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1FVARBPROC __glewUniform1fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1IARBPROC __glewUniform1iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1IVARBPROC __glewUniform1ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2FARBPROC __glewUniform2fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2FVARBPROC __glewUniform2fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2IARBPROC __glewUniform2iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2IVARBPROC __glewUniform2ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3FARBPROC __glewUniform3fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3FVARBPROC __glewUniform3fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3IARBPROC __glewUniform3iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3IVARBPROC __glewUniform3ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4FARBPROC __glewUniform4fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4FVARBPROC __glewUniform4fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4IARBPROC __glewUniform4iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4IVARBPROC __glewUniform4ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVARBPROC __glewUniformMatrix2fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVARBPROC __glewUniformMatrix3fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB; -GLEW_FUN_EXPORT PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB; -GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB; - -GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName; -GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName; -GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv; -GLEW_FUN_EXPORT PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv; -GLEW_FUN_EXPORT PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex; -GLEW_FUN_EXPORT PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation; -GLEW_FUN_EXPORT PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv; -GLEW_FUN_EXPORT PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv; - -GLEW_FUN_EXPORT PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB; -GLEW_FUN_EXPORT PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB; -GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB; -GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB; -GLEW_FUN_EXPORT PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB; -GLEW_FUN_EXPORT PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB; - -GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync; -GLEW_FUN_EXPORT PFNGLDELETESYNCPROC __glewDeleteSync; -GLEW_FUN_EXPORT PFNGLFENCESYNCPROC __glewFenceSync; -GLEW_FUN_EXPORT PFNGLGETINTEGER64VPROC __glewGetInteger64v; -GLEW_FUN_EXPORT PFNGLGETSYNCIVPROC __glewGetSynciv; -GLEW_FUN_EXPORT PFNGLISSYNCPROC __glewIsSync; -GLEW_FUN_EXPORT PFNGLWAITSYNCPROC __glewWaitSync; - -GLEW_FUN_EXPORT PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv; -GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIPROC __glewPatchParameteri; - -GLEW_FUN_EXPORT PFNGLTEXBUFFERARBPROC __glewTexBufferARB; - -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC __glewCompressedTexSubImage1DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB; - -GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv; -GLEW_FUN_EXPORT PFNGLSAMPLEMASKIPROC __glewSampleMaski; -GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample; -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample; - -GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DPROC __glewTexStorage1D; -GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DPROC __glewTexStorage2D; -GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DPROC __glewTexStorage3D; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT; - -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v; -GLEW_FUN_EXPORT PFNGLQUERYCOUNTERPROC __glewQueryCounter; - -GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback; -GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback; -GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks; -GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback; -GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback; -GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream; -GLEW_FUN_EXPORT PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed; -GLEW_FUN_EXPORT PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv; - -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC __glewDrawTransformFeedbackInstanced; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC __glewDrawTransformFeedbackStreamInstanced; - -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB; -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB; - -GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEPROC __glewBindBufferBase; -GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv; -GLEW_FUN_EXPORT PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v; -GLEW_FUN_EXPORT PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex; -GLEW_FUN_EXPORT PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices; -GLEW_FUN_EXPORT PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding; - -GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray; -GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays; -GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays; -GLEW_FUN_EXPORT PFNGLISVERTEXARRAYPROC __glewIsVertexArray; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer; - -GLEW_FUN_EXPORT PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB; -GLEW_FUN_EXPORT PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB; -GLEW_FUN_EXPORT PFNGLWEIGHTBVARBPROC __glewWeightbvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTDVARBPROC __glewWeightdvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTFVARBPROC __glewWeightfvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTIVARBPROC __glewWeightivARB; -GLEW_FUN_EXPORT PFNGLWEIGHTSVARBPROC __glewWeightsvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTUBVARBPROC __glewWeightubvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTUIVARBPROC __glewWeightuivARB; -GLEW_FUN_EXPORT PFNGLWEIGHTUSVARBPROC __glewWeightusvARB; - -GLEW_FUN_EXPORT PFNGLBINDBUFFERARBPROC __glewBindBufferARB; -GLEW_FUN_EXPORT PFNGLBUFFERDATAARBPROC __glewBufferDataARB; -GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAARBPROC __glewBufferSubDataARB; -GLEW_FUN_EXPORT PFNGLDELETEBUFFERSARBPROC __glewDeleteBuffersARB; -GLEW_FUN_EXPORT PFNGLGENBUFFERSARBPROC __glewGenBuffersARB; -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVARBPROC __glewGetBufferParameterivARB; -GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVARBPROC __glewGetBufferPointervARB; -GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAARBPROC __glewGetBufferSubDataARB; -GLEW_FUN_EXPORT PFNGLISBUFFERARBPROC __glewIsBufferARB; -GLEW_FUN_EXPORT PFNGLMAPBUFFERARBPROC __glewMapBufferARB; -GLEW_FUN_EXPORT PFNGLUNMAPBUFFERARBPROC __glewUnmapBufferARB; - -GLEW_FUN_EXPORT PFNGLBINDPROGRAMARBPROC __glewBindProgramARB; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSARBPROC __glewDeleteProgramsARB; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYARBPROC __glewDisableVertexAttribArrayARB; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYARBPROC __glewEnableVertexAttribArrayARB; -GLEW_FUN_EXPORT PFNGLGENPROGRAMSARBPROC __glewGenProgramsARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERDVARBPROC __glewGetProgramEnvParameterdvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERFVARBPROC __glewGetProgramEnvParameterfvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC __glewGetProgramLocalParameterdvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC __glewGetProgramLocalParameterfvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGARBPROC __glewGetProgramStringARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMIVARBPROC __glewGetProgramivARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVARBPROC __glewGetVertexAttribPointervARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVARBPROC __glewGetVertexAttribdvARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVARBPROC __glewGetVertexAttribfvARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVARBPROC __glewGetVertexAttribivARB; -GLEW_FUN_EXPORT PFNGLISPROGRAMARBPROC __glewIsProgramARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DARBPROC __glewProgramEnvParameter4dARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DVARBPROC __glewProgramEnvParameter4dvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FARBPROC __glewProgramEnvParameter4fARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FVARBPROC __glewProgramEnvParameter4fvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DARBPROC __glewProgramLocalParameter4dARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DVARBPROC __glewProgramLocalParameter4dvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FARBPROC __glewProgramLocalParameter4fARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FVARBPROC __glewProgramLocalParameter4fvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMSTRINGARBPROC __glewProgramStringARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DARBPROC __glewVertexAttrib1dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVARBPROC __glewVertexAttrib1dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FARBPROC __glewVertexAttrib1fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVARBPROC __glewVertexAttrib1fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SARBPROC __glewVertexAttrib1sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVARBPROC __glewVertexAttrib1svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DARBPROC __glewVertexAttrib2dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVARBPROC __glewVertexAttrib2dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FARBPROC __glewVertexAttrib2fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVARBPROC __glewVertexAttrib2fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SARBPROC __glewVertexAttrib2sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVARBPROC __glewVertexAttrib2svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DARBPROC __glewVertexAttrib3dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVARBPROC __glewVertexAttrib3dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FARBPROC __glewVertexAttrib3fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVARBPROC __glewVertexAttrib3fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SARBPROC __glewVertexAttrib3sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVARBPROC __glewVertexAttrib3svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVARBPROC __glewVertexAttrib4NbvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVARBPROC __glewVertexAttrib4NivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVARBPROC __glewVertexAttrib4NsvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBARBPROC __glewVertexAttrib4NubARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVARBPROC __glewVertexAttrib4NubvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVARBPROC __glewVertexAttrib4NuivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVARBPROC __glewVertexAttrib4NusvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVARBPROC __glewVertexAttrib4bvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DARBPROC __glewVertexAttrib4dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVARBPROC __glewVertexAttrib4dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FARBPROC __glewVertexAttrib4fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVARBPROC __glewVertexAttrib4fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVARBPROC __glewVertexAttrib4ivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SARBPROC __glewVertexAttrib4sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVARBPROC __glewVertexAttrib4svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVARBPROC __glewVertexAttrib4ubvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVARBPROC __glewVertexAttrib4uivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVARBPROC __glewVertexAttrib4usvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERARBPROC __glewVertexAttribPointerARB; - -GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB; -GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB; -GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB; - -GLEW_FUN_EXPORT PFNGLCOLORP3UIPROC __glewColorP3ui; -GLEW_FUN_EXPORT PFNGLCOLORP3UIVPROC __glewColorP3uiv; -GLEW_FUN_EXPORT PFNGLCOLORP4UIPROC __glewColorP4ui; -GLEW_FUN_EXPORT PFNGLCOLORP4UIVPROC __glewColorP4uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv; -GLEW_FUN_EXPORT PFNGLNORMALP3UIPROC __glewNormalP3ui; -GLEW_FUN_EXPORT PFNGLNORMALP3UIVPROC __glewNormalP3uiv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXP2UIPROC __glewVertexP2ui; -GLEW_FUN_EXPORT PFNGLVERTEXP2UIVPROC __glewVertexP2uiv; -GLEW_FUN_EXPORT PFNGLVERTEXP3UIPROC __glewVertexP3ui; -GLEW_FUN_EXPORT PFNGLVERTEXP3UIVPROC __glewVertexP3uiv; -GLEW_FUN_EXPORT PFNGLVERTEXP4UIPROC __glewVertexP4ui; -GLEW_FUN_EXPORT PFNGLVERTEXP4UIVPROC __glewVertexP4uiv; - -GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed; -GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v; -GLEW_FUN_EXPORT PFNGLGETFLOATI_VPROC __glewGetFloati_v; -GLEW_FUN_EXPORT PFNGLSCISSORARRAYVPROC __glewScissorArrayv; -GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDPROC __glewScissorIndexed; -GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv; -GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv; -GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf; -GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv; - -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVARBPROC __glewWindowPos2fvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IARBPROC __glewWindowPos2iARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVARBPROC __glewWindowPos2ivARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SARBPROC __glewWindowPos2sARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVARBPROC __glewWindowPos2svARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DARBPROC __glewWindowPos3dARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVARBPROC __glewWindowPos3dvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FARBPROC __glewWindowPos3fARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVARBPROC __glewWindowPos3fvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IARBPROC __glewWindowPos3iARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVARBPROC __glewWindowPos3ivARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SARBPROC __glewWindowPos3sARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVARBPROC __glewWindowPos3svARB; - -GLEW_FUN_EXPORT PFNGLDRAWBUFFERSATIPROC __glewDrawBuffersATI; - -GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYATIPROC __glewDrawElementArrayATI; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYATIPROC __glewDrawRangeElementArrayATI; -GLEW_FUN_EXPORT PFNGLELEMENTPOINTERATIPROC __glewElementPointerATI; - -GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERFVATIPROC __glewGetTexBumpParameterfvATI; -GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERIVATIPROC __glewGetTexBumpParameterivATI; -GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERFVATIPROC __glewTexBumpParameterfvATI; -GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERIVATIPROC __glewTexBumpParameterivATI; - -GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP1ATIPROC __glewAlphaFragmentOp1ATI; -GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP2ATIPROC __glewAlphaFragmentOp2ATI; -GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP3ATIPROC __glewAlphaFragmentOp3ATI; -GLEW_FUN_EXPORT PFNGLBEGINFRAGMENTSHADERATIPROC __glewBeginFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLBINDFRAGMENTSHADERATIPROC __glewBindFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP1ATIPROC __glewColorFragmentOp1ATI; -GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP2ATIPROC __glewColorFragmentOp2ATI; -GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP3ATIPROC __glewColorFragmentOp3ATI; -GLEW_FUN_EXPORT PFNGLDELETEFRAGMENTSHADERATIPROC __glewDeleteFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLENDFRAGMENTSHADERATIPROC __glewEndFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLGENFRAGMENTSHADERSATIPROC __glewGenFragmentShadersATI; -GLEW_FUN_EXPORT PFNGLPASSTEXCOORDATIPROC __glewPassTexCoordATI; -GLEW_FUN_EXPORT PFNGLSAMPLEMAPATIPROC __glewSampleMapATI; -GLEW_FUN_EXPORT PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderConstantATI; - -GLEW_FUN_EXPORT PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI; -GLEW_FUN_EXPORT PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI; - -GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glewPNTrianglesfATI; -GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glewPNTrianglesiATI; - -GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI; -GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI; - -GLEW_FUN_EXPORT PFNGLARRAYOBJECTATIPROC __glewArrayObjectATI; -GLEW_FUN_EXPORT PFNGLFREEOBJECTBUFFERATIPROC __glewFreeObjectBufferATI; -GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTFVATIPROC __glewGetArrayObjectfvATI; -GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTIVATIPROC __glewGetArrayObjectivATI; -GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERFVATIPROC __glewGetObjectBufferfvATI; -GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERIVATIPROC __glewGetObjectBufferivATI; -GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTFVATIPROC __glewGetVariantArrayObjectfvATI; -GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTIVATIPROC __glewGetVariantArrayObjectivATI; -GLEW_FUN_EXPORT PFNGLISOBJECTBUFFERATIPROC __glewIsObjectBufferATI; -GLEW_FUN_EXPORT PFNGLNEWOBJECTBUFFERATIPROC __glewNewObjectBufferATI; -GLEW_FUN_EXPORT PFNGLUPDATEOBJECTBUFFERATIPROC __glewUpdateObjectBufferATI; -GLEW_FUN_EXPORT PFNGLVARIANTARRAYOBJECTATIPROC __glewVariantArrayObjectATI; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC __glewGetVertexAttribArrayObjectfvATI; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC __glewGetVertexAttribArrayObjectivATI; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBARRAYOBJECTATIPROC __glewVertexAttribArrayObjectATI; - -GLEW_FUN_EXPORT PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC __glewClientActiveVertexStreamATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BATIPROC __glewNormalStream3bATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BVATIPROC __glewNormalStream3bvATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DATIPROC __glewNormalStream3dATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DVATIPROC __glewNormalStream3dvATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FATIPROC __glewNormalStream3fATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FVATIPROC __glewNormalStream3fvATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IATIPROC __glewNormalStream3iATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IVATIPROC __glewNormalStream3ivATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SATIPROC __glewNormalStream3sATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SVATIPROC __glewNormalStream3svATI; -GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVFATIPROC __glewVertexBlendEnvfATI; -GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVIATIPROC __glewVertexBlendEnviATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DATIPROC __glewVertexStream2dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DVATIPROC __glewVertexStream2dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FATIPROC __glewVertexStream2fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FVATIPROC __glewVertexStream2fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IATIPROC __glewVertexStream2iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IVATIPROC __glewVertexStream2ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SATIPROC __glewVertexStream2sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SVATIPROC __glewVertexStream2svATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DATIPROC __glewVertexStream3dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DVATIPROC __glewVertexStream3dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FATIPROC __glewVertexStream3fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FVATIPROC __glewVertexStream3fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IATIPROC __glewVertexStream3iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IVATIPROC __glewVertexStream3ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SATIPROC __glewVertexStream3sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SVATIPROC __glewVertexStream3svATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DATIPROC __glewVertexStream4dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DVATIPROC __glewVertexStream4dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FATIPROC __glewVertexStream4fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FVATIPROC __glewVertexStream4fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IATIPROC __glewVertexStream4iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI; - -GLEW_FUN_EXPORT PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT; -GLEW_FUN_EXPORT PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT; -GLEW_FUN_EXPORT PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT; - -GLEW_FUN_EXPORT PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT; - -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT; - -GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT; -GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT; - -GLEW_FUN_EXPORT PFNGLLOCKARRAYSEXTPROC __glewLockArraysEXT; -GLEW_FUN_EXPORT PFNGLUNLOCKARRAYSEXTPROC __glewUnlockArraysEXT; - -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DEXTPROC __glewConvolutionFilter1DEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DEXTPROC __glewConvolutionFilter2DEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFEXTPROC __glewConvolutionParameterfEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVEXTPROC __glewConvolutionParameterfvEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIEXTPROC __glewConvolutionParameteriEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVEXTPROC __glewConvolutionParameterivEXT; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC __glewCopyConvolutionFilter1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC __glewCopyConvolutionFilter2DEXT; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTEREXTPROC __glewGetConvolutionFilterEXT; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC __glewGetConvolutionParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC __glewGetConvolutionParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTEREXTPROC __glewGetSeparableFilterEXT; -GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT; - -GLEW_FUN_EXPORT PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT; -GLEW_FUN_EXPORT PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT; - -GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE2DEXTPROC __glewCopyTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DEXTPROC __glewCopyTexSubImage3DEXT; - -GLEW_FUN_EXPORT PFNGLCULLPARAMETERDVEXTPROC __glewCullParameterdvEXT; -GLEW_FUN_EXPORT PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT; - -GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT; - -GLEW_FUN_EXPORT PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT; -GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT; -GLEW_FUN_EXPORT PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT; -GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT; -GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT; -GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT; -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT; -GLEW_FUN_EXPORT PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT; -GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT; -GLEW_FUN_EXPORT PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT; -GLEW_FUN_EXPORT PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT; -GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT; -GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT; -GLEW_FUN_EXPORT PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT; -GLEW_FUN_EXPORT PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT; -GLEW_FUN_EXPORT PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT; -GLEW_FUN_EXPORT PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT; -GLEW_FUN_EXPORT PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT; -GLEW_FUN_EXPORT PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT; -GLEW_FUN_EXPORT PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT; -GLEW_FUN_EXPORT PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT; -GLEW_FUN_EXPORT PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT; - -GLEW_FUN_EXPORT PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT; -GLEW_FUN_EXPORT PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT; -GLEW_FUN_EXPORT PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT; -GLEW_FUN_EXPORT PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT; -GLEW_FUN_EXPORT PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT; - -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT; - -GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDFEXTPROC __glewFogCoordfEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDFVEXTPROC __glewFogCoordfvEXT; - -GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALEXTPROC __glewFragmentColorMaterialEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFEXTPROC __glewFragmentLightModelfEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVEXTPROC __glewFragmentLightModelfvEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIEXTPROC __glewFragmentLightModeliEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVEXTPROC __glewFragmentLightModelivEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFEXTPROC __glewFragmentLightfEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVEXTPROC __glewFragmentLightfvEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIEXTPROC __glewFragmentLightiEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVEXTPROC __glewFragmentLightivEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFEXTPROC __glewFragmentMaterialfEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVEXTPROC __glewFragmentMaterialfvEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIEXTPROC __glewFragmentMaterialiEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVEXTPROC __glewFragmentMaterialivEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVEXTPROC __glewGetFragmentLightfvEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVEXTPROC __glewGetFragmentLightivEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVEXTPROC __glewGetFragmentMaterialfvEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVEXTPROC __glewGetFragmentMaterialivEXT; -GLEW_FUN_EXPORT PFNGLLIGHTENVIEXTPROC __glewLightEnviEXT; - -GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFEREXTPROC __glewBlitFramebufferEXT; - -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewRenderbufferStorageMultisampleEXT; - -GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEREXTPROC __glewBindFramebufferEXT; -GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEREXTPROC __glewBindRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC __glewCheckFramebufferStatusEXT; -GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSEXTPROC __glewDeleteFramebuffersEXT; -GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSEXTPROC __glewDeleteRenderbuffersEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC __glewFramebufferRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DEXTPROC __glewFramebufferTexture1DEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DEXTPROC __glewFramebufferTexture2DEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DEXTPROC __glewFramebufferTexture3DEXT; -GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSEXTPROC __glewGenFramebuffersEXT; -GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSEXTPROC __glewGenRenderbuffersEXT; -GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPEXTPROC __glewGenerateMipmapEXT; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetFramebufferAttachmentParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC __glewGetRenderbufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEREXTPROC __glewIsFramebufferEXT; -GLEW_FUN_EXPORT PFNGLISRENDERBUFFEREXTPROC __glewIsRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT; - -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC __glewProgramLocalParameters4fvEXT; - -GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONEXTPROC __glewBindFragDataLocationEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONEXTPROC __glewGetFragDataLocationEXT; -GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVEXTPROC __glewGetUniformuivEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVEXTPROC __glewGetVertexAttribIivEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVEXTPROC __glewGetVertexAttribIuivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIEXTPROC __glewUniform1uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIVEXTPROC __glewUniform1uivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIEXTPROC __glewUniform2uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIVEXTPROC __glewUniform2uivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIEXTPROC __glewUniform3uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIVEXTPROC __glewUniform3uivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIEXTPROC __glewUniform4uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIVEXTPROC __glewUniform4uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IEXTPROC __glewVertexAttribI1iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVEXTPROC __glewVertexAttribI1ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIEXTPROC __glewVertexAttribI1uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVEXTPROC __glewVertexAttribI1uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IEXTPROC __glewVertexAttribI2iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVEXTPROC __glewVertexAttribI2ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIEXTPROC __glewVertexAttribI2uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVEXTPROC __glewVertexAttribI2uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IEXTPROC __glewVertexAttribI3iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVEXTPROC __glewVertexAttribI3ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIEXTPROC __glewVertexAttribI3uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVEXTPROC __glewVertexAttribI3uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVEXTPROC __glewVertexAttribI4bvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IEXTPROC __glewVertexAttribI4iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVEXTPROC __glewVertexAttribI4ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVEXTPROC __glewVertexAttribI4svEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVEXTPROC __glewVertexAttribI4ubvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIEXTPROC __glewVertexAttribI4uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVEXTPROC __glewVertexAttribI4uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVEXTPROC __glewVertexAttribI4usvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTEREXTPROC __glewVertexAttribIPointerEXT; - -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMEXTPROC __glewGetHistogramEXT; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVEXTPROC __glewGetHistogramParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVEXTPROC __glewGetHistogramParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETMINMAXEXTPROC __glewGetMinmaxEXT; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVEXTPROC __glewGetMinmaxParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVEXTPROC __glewGetMinmaxParameterivEXT; -GLEW_FUN_EXPORT PFNGLHISTOGRAMEXTPROC __glewHistogramEXT; -GLEW_FUN_EXPORT PFNGLMINMAXEXTPROC __glewMinmaxEXT; -GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMEXTPROC __glewResetHistogramEXT; -GLEW_FUN_EXPORT PFNGLRESETMINMAXEXTPROC __glewResetMinmaxEXT; - -GLEW_FUN_EXPORT PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT; - -GLEW_FUN_EXPORT PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT; - -GLEW_FUN_EXPORT PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT; -GLEW_FUN_EXPORT PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT; - -GLEW_FUN_EXPORT PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT; -GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT; - -GLEW_FUN_EXPORT PFNGLCOLORTABLEEXTPROC __glewColorTableEXT; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVEXTPROC __glewGetColorTableParameterivEXT; - -GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC __glewGetPixelTransformParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC __glewGetPixelTransformParameterivEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFEXTPROC __glewPixelTransformParameterfEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC __glewPixelTransformParameterfvEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIEXTPROC __glewPixelTransformParameteriEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC __glewPixelTransformParameterivEXT; - -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFEXTPROC __glewPointParameterfEXT; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT; - -GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT; - -GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT; - -GLEW_FUN_EXPORT PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT; -GLEW_FUN_EXPORT PFNGLENDSCENEEXTPROC __glewEndSceneEXT; - -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BEXTPROC __glewSecondaryColor3bEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVEXTPROC __glewSecondaryColor3bvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DEXTPROC __glewSecondaryColor3dEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVEXTPROC __glewSecondaryColor3dvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FEXTPROC __glewSecondaryColor3fEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVEXTPROC __glewSecondaryColor3fvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IEXTPROC __glewSecondaryColor3iEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVEXTPROC __glewSecondaryColor3ivEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SEXTPROC __glewSecondaryColor3sEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVEXTPROC __glewSecondaryColor3svEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBEXTPROC __glewSecondaryColor3ubEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVEXTPROC __glewSecondaryColor3ubvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIEXTPROC __glewSecondaryColor3uiEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVEXTPROC __glewSecondaryColor3uivEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT; - -GLEW_FUN_EXPORT PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT; -GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT; -GLEW_FUN_EXPORT PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT; - -GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT; -GLEW_FUN_EXPORT PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT; - -GLEW_FUN_EXPORT PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT; - -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT; - -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT; - -GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT; - -GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT; -GLEW_FUN_EXPORT PFNGLCLEARCOLORIUIEXTPROC __glewClearColorIuiEXT; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVEXTPROC __glewGetTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVEXTPROC __glewGetTexParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVEXTPROC __glewTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVEXTPROC __glewTexParameterIuivEXT; - -GLEW_FUN_EXPORT PFNGLARETEXTURESRESIDENTEXTPROC __glewAreTexturesResidentEXT; -GLEW_FUN_EXPORT PFNGLBINDTEXTUREEXTPROC __glewBindTextureEXT; -GLEW_FUN_EXPORT PFNGLDELETETEXTURESEXTPROC __glewDeleteTexturesEXT; -GLEW_FUN_EXPORT PFNGLGENTEXTURESEXTPROC __glewGenTexturesEXT; -GLEW_FUN_EXPORT PFNGLISTEXTUREEXTPROC __glewIsTextureEXT; -GLEW_FUN_EXPORT PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT; - -GLEW_FUN_EXPORT PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT; - -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT; - -GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT; -GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT; -GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT; -GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT; -GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT; - -GLEW_FUN_EXPORT PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT; -GLEW_FUN_EXPORT PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT; -GLEW_FUN_EXPORT PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT; -GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT; -GLEW_FUN_EXPORT PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT; -GLEW_FUN_EXPORT PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT; -GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT; -GLEW_FUN_EXPORT PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT; - -GLEW_FUN_EXPORT PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDPARAMETEREXTPROC __glewBindParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDTEXGENPARAMETEREXTPROC __glewBindTexGenParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPARAMETEREXTPROC __glewBindTextureUnitParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDVERTEXSHADEREXTPROC __glewBindVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLDELETEVERTEXSHADEREXTPROC __glewDeleteVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC __glewDisableVariantClientStateEXT; -GLEW_FUN_EXPORT PFNGLENABLEVARIANTCLIENTSTATEEXTPROC __glewEnableVariantClientStateEXT; -GLEW_FUN_EXPORT PFNGLENDVERTEXSHADEREXTPROC __glewEndVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLEXTRACTCOMPONENTEXTPROC __glewExtractComponentEXT; -GLEW_FUN_EXPORT PFNGLGENSYMBOLSEXTPROC __glewGenSymbolsEXT; -GLEW_FUN_EXPORT PFNGLGENVERTEXSHADERSEXTPROC __glewGenVertexShadersEXT; -GLEW_FUN_EXPORT PFNGLGETINVARIANTBOOLEANVEXTPROC __glewGetInvariantBooleanvEXT; -GLEW_FUN_EXPORT PFNGLGETINVARIANTFLOATVEXTPROC __glewGetInvariantFloatvEXT; -GLEW_FUN_EXPORT PFNGLGETINVARIANTINTEGERVEXTPROC __glewGetInvariantIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC __glewGetLocalConstantBooleanvEXT; -GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTFLOATVEXTPROC __glewGetLocalConstantFloatvEXT; -GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTINTEGERVEXTPROC __glewGetLocalConstantIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTBOOLEANVEXTPROC __glewGetVariantBooleanvEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTFLOATVEXTPROC __glewGetVariantFloatvEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTINTEGERVEXTPROC __glewGetVariantIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTPOINTERVEXTPROC __glewGetVariantPointervEXT; -GLEW_FUN_EXPORT PFNGLINSERTCOMPONENTEXTPROC __glewInsertComponentEXT; -GLEW_FUN_EXPORT PFNGLISVARIANTENABLEDEXTPROC __glewIsVariantEnabledEXT; -GLEW_FUN_EXPORT PFNGLSETINVARIANTEXTPROC __glewSetInvariantEXT; -GLEW_FUN_EXPORT PFNGLSETLOCALCONSTANTEXTPROC __glewSetLocalConstantEXT; -GLEW_FUN_EXPORT PFNGLSHADEROP1EXTPROC __glewShaderOp1EXT; -GLEW_FUN_EXPORT PFNGLSHADEROP2EXTPROC __glewShaderOp2EXT; -GLEW_FUN_EXPORT PFNGLSHADEROP3EXTPROC __glewShaderOp3EXT; -GLEW_FUN_EXPORT PFNGLSWIZZLEEXTPROC __glewSwizzleEXT; -GLEW_FUN_EXPORT PFNGLVARIANTPOINTEREXTPROC __glewVariantPointerEXT; -GLEW_FUN_EXPORT PFNGLVARIANTBVEXTPROC __glewVariantbvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTDVEXTPROC __glewVariantdvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTFVEXTPROC __glewVariantfvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTIVEXTPROC __glewVariantivEXT; -GLEW_FUN_EXPORT PFNGLVARIANTSVEXTPROC __glewVariantsvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTUBVEXTPROC __glewVariantubvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTUIVEXTPROC __glewVariantuivEXT; -GLEW_FUN_EXPORT PFNGLVARIANTUSVEXTPROC __glewVariantusvEXT; -GLEW_FUN_EXPORT PFNGLWRITEMASKEXTPROC __glewWriteMaskEXT; - -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT; - -GLEW_FUN_EXPORT PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT; - -GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY; - -GLEW_FUN_EXPORT PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY; - -GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP; -GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC __glewGetImageTransformParameterivHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFHPPROC __glewImageTransformParameterfHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFVHPPROC __glewImageTransformParameterfvHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIHPPROC __glewImageTransformParameteriHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIVHPPROC __glewImageTransformParameterivHP; - -GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWARRAYSIBMPROC __glewMultiModeDrawArraysIBM; -GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWELEMENTSIBMPROC __glewMultiModeDrawElementsIBM; - -GLEW_FUN_EXPORT PFNGLCOLORPOINTERLISTIBMPROC __glewColorPointerListIBM; -GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTERLISTIBMPROC __glewEdgeFlagPointerListIBM; -GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERLISTIBMPROC __glewFogCoordPointerListIBM; -GLEW_FUN_EXPORT PFNGLINDEXPOINTERLISTIBMPROC __glewIndexPointerListIBM; -GLEW_FUN_EXPORT PFNGLNORMALPOINTERLISTIBMPROC __glewNormalPointerListIBM; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM; -GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM; -GLEW_FUN_EXPORT PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM; - -GLEW_FUN_EXPORT PFNGLCOLORPOINTERVINTELPROC __glewColorPointervINTEL; -GLEW_FUN_EXPORT PFNGLNORMALPOINTERVINTELPROC __glewNormalPointervINTEL; -GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERVINTELPROC __glewTexCoordPointervINTEL; -GLEW_FUN_EXPORT PFNGLVERTEXPOINTERVINTELPROC __glewVertexPointervINTEL; - -GLEW_FUN_EXPORT PFNGLTEXSCISSORFUNCINTELPROC __glewTexScissorFuncINTEL; -GLEW_FUN_EXPORT PFNGLTEXSCISSORINTELPROC __glewTexScissorINTEL; - -GLEW_FUN_EXPORT PFNGLBUFFERREGIONENABLEDPROC __glewBufferRegionEnabled; -GLEW_FUN_EXPORT PFNGLDELETEBUFFERREGIONPROC __glewDeleteBufferRegion; -GLEW_FUN_EXPORT PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion; -GLEW_FUN_EXPORT PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion; -GLEW_FUN_EXPORT PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion; - -GLEW_FUN_EXPORT PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA; - -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVMESAPROC __glewWindowPos2dvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FMESAPROC __glewWindowPos2fMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVMESAPROC __glewWindowPos2fvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IMESAPROC __glewWindowPos2iMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVMESAPROC __glewWindowPos2ivMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SMESAPROC __glewWindowPos2sMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVMESAPROC __glewWindowPos2svMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DMESAPROC __glewWindowPos3dMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVMESAPROC __glewWindowPos3dvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FMESAPROC __glewWindowPos3fMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVMESAPROC __glewWindowPos3fvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IMESAPROC __glewWindowPos3iMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVMESAPROC __glewWindowPos3ivMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SMESAPROC __glewWindowPos3sMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVMESAPROC __glewWindowPos3svMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4DMESAPROC __glewWindowPos4dMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4DVMESAPROC __glewWindowPos4dvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4FMESAPROC __glewWindowPos4fMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4FVMESAPROC __glewWindowPos4fvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4IMESAPROC __glewWindowPos4iMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA; - -GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV; -GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV; - -GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV; - -GLEW_FUN_EXPORT PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV; -GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV; - -GLEW_FUN_EXPORT PFNGLEVALMAPSNVPROC __glewEvalMapsNV; -GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV; -GLEW_FUN_EXPORT PFNGLGETMAPCONTROLPOINTSNVPROC __glewGetMapControlPointsNV; -GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERFVNVPROC __glewGetMapParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERIVNVPROC __glewGetMapParameterivNV; -GLEW_FUN_EXPORT PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV; -GLEW_FUN_EXPORT PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV; -GLEW_FUN_EXPORT PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV; - -GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV; -GLEW_FUN_EXPORT PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV; -GLEW_FUN_EXPORT PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV; - -GLEW_FUN_EXPORT PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV; -GLEW_FUN_EXPORT PFNGLFINISHFENCENVPROC __glewFinishFenceNV; -GLEW_FUN_EXPORT PFNGLGENFENCESNVPROC __glewGenFencesNV; -GLEW_FUN_EXPORT PFNGLGETFENCEIVNVPROC __glewGetFenceivNV; -GLEW_FUN_EXPORT PFNGLISFENCENVPROC __glewIsFenceNV; -GLEW_FUN_EXPORT PFNGLSETFENCENVPROC __glewSetFenceNV; -GLEW_FUN_EXPORT PFNGLTESTFENCENVPROC __glewTestFenceNV; - -GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC __glewGetProgramNamedParameterdvNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC __glewGetProgramNamedParameterfvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DNVPROC __glewProgramNamedParameter4dNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV; - -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV; - -GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV; - -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UIVNVPROC __glewProgramEnvParameterI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4IVNVPROC __glewProgramEnvParametersI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC __glewProgramEnvParametersI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4INVPROC __glewProgramLocalParameterI4iNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC __glewProgramLocalParameterI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameterI4uiNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV; - -GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV; -GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV; - -GLEW_FUN_EXPORT PFNGLCOLOR3HNVPROC __glewColor3hNV; -GLEW_FUN_EXPORT PFNGLCOLOR3HVNVPROC __glewColor3hvNV; -GLEW_FUN_EXPORT PFNGLCOLOR4HNVPROC __glewColor4hNV; -GLEW_FUN_EXPORT PFNGLCOLOR4HVNVPROC __glewColor4hvNV; -GLEW_FUN_EXPORT PFNGLFOGCOORDHNVPROC __glewFogCoordhNV; -GLEW_FUN_EXPORT PFNGLFOGCOORDHVNVPROC __glewFogCoordhvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HNVPROC __glewMultiTexCoord1hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HVNVPROC __glewMultiTexCoord1hvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HNVPROC __glewMultiTexCoord2hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HVNVPROC __glewMultiTexCoord2hvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HNVPROC __glewMultiTexCoord3hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HVNVPROC __glewMultiTexCoord3hvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HNVPROC __glewMultiTexCoord4hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HVNVPROC __glewMultiTexCoord4hvNV; -GLEW_FUN_EXPORT PFNGLNORMAL3HNVPROC __glewNormal3hNV; -GLEW_FUN_EXPORT PFNGLNORMAL3HVNVPROC __glewNormal3hvNV; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HNVPROC __glewSecondaryColor3hNV; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HVNVPROC __glewSecondaryColor3hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD1HNVPROC __glewTexCoord1hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD1HVNVPROC __glewTexCoord1hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD2HNVPROC __glewTexCoord2hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD2HVNVPROC __glewTexCoord2hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD3HNVPROC __glewTexCoord3hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD3HVNVPROC __glewTexCoord3hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD4HNVPROC __glewTexCoord4hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD4HVNVPROC __glewTexCoord4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEX2HNVPROC __glewVertex2hNV; -GLEW_FUN_EXPORT PFNGLVERTEX2HVNVPROC __glewVertex2hvNV; -GLEW_FUN_EXPORT PFNGLVERTEX3HNVPROC __glewVertex3hNV; -GLEW_FUN_EXPORT PFNGLVERTEX3HVNVPROC __glewVertex3hvNV; -GLEW_FUN_EXPORT PFNGLVERTEX4HNVPROC __glewVertex4hNV; -GLEW_FUN_EXPORT PFNGLVERTEX4HVNVPROC __glewVertex4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HNVPROC __glewVertexAttrib1hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HVNVPROC __glewVertexAttrib1hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HNVPROC __glewVertexAttrib2hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HVNVPROC __glewVertexAttrib2hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HNVPROC __glewVertexAttrib3hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HVNVPROC __glewVertexAttrib3hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HNVPROC __glewVertexAttrib4hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HVNVPROC __glewVertexAttrib4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1HVNVPROC __glewVertexAttribs1hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2HVNVPROC __glewVertexAttribs2hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3HVNVPROC __glewVertexAttribs3hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV; - -GLEW_FUN_EXPORT PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV; -GLEW_FUN_EXPORT PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV; -GLEW_FUN_EXPORT PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV; -GLEW_FUN_EXPORT PFNGLGENOCCLUSIONQUERIESNVPROC __glewGenOcclusionQueriesNV; -GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYIVNVPROC __glewGetOcclusionQueryivNV; -GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYUIVNVPROC __glewGetOcclusionQueryuivNV; -GLEW_FUN_EXPORT PFNGLISOCCLUSIONQUERYNVPROC __glewIsOcclusionQueryNV; - -GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC __glewProgramBufferParametersIivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC __glewProgramBufferParametersIuivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC __glewProgramBufferParametersfvNV; - -GLEW_FUN_EXPORT PFNGLCOPYPATHNVPROC __glewCopyPathNV; -GLEW_FUN_EXPORT PFNGLCOVERFILLPATHINSTANCEDNVPROC __glewCoverFillPathInstancedNV; -GLEW_FUN_EXPORT PFNGLCOVERFILLPATHNVPROC __glewCoverFillPathNV; -GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHINSTANCEDNVPROC __glewCoverStrokePathInstancedNV; -GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHNVPROC __glewCoverStrokePathNV; -GLEW_FUN_EXPORT PFNGLDELETEPATHSNVPROC __glewDeletePathsNV; -GLEW_FUN_EXPORT PFNGLGENPATHSNVPROC __glewGenPathsNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENFVNVPROC __glewGetPathColorGenfvNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENIVNVPROC __glewGetPathColorGenivNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOMMANDSNVPROC __glewGetPathCommandsNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOORDSNVPROC __glewGetPathCoordsNV; -GLEW_FUN_EXPORT PFNGLGETPATHDASHARRAYNVPROC __glewGetPathDashArrayNV; -GLEW_FUN_EXPORT PFNGLGETPATHLENGTHNVPROC __glewGetPathLengthNV; -GLEW_FUN_EXPORT PFNGLGETPATHMETRICRANGENVPROC __glewGetPathMetricRangeNV; -GLEW_FUN_EXPORT PFNGLGETPATHMETRICSNVPROC __glewGetPathMetricsNV; -GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERFVNVPROC __glewGetPathParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERIVNVPROC __glewGetPathParameterivNV; -GLEW_FUN_EXPORT PFNGLGETPATHSPACINGNVPROC __glewGetPathSpacingNV; -GLEW_FUN_EXPORT PFNGLGETPATHTEXGENFVNVPROC __glewGetPathTexGenfvNV; -GLEW_FUN_EXPORT PFNGLGETPATHTEXGENIVNVPROC __glewGetPathTexGenivNV; -GLEW_FUN_EXPORT PFNGLINTERPOLATEPATHSNVPROC __glewInterpolatePathsNV; -GLEW_FUN_EXPORT PFNGLISPATHNVPROC __glewIsPathNV; -GLEW_FUN_EXPORT PFNGLISPOINTINFILLPATHNVPROC __glewIsPointInFillPathNV; -GLEW_FUN_EXPORT PFNGLISPOINTINSTROKEPATHNVPROC __glewIsPointInStrokePathNV; -GLEW_FUN_EXPORT PFNGLPATHCOLORGENNVPROC __glewPathColorGenNV; -GLEW_FUN_EXPORT PFNGLPATHCOMMANDSNVPROC __glewPathCommandsNV; -GLEW_FUN_EXPORT PFNGLPATHCOORDSNVPROC __glewPathCoordsNV; -GLEW_FUN_EXPORT PFNGLPATHCOVERDEPTHFUNCNVPROC __glewPathCoverDepthFuncNV; -GLEW_FUN_EXPORT PFNGLPATHDASHARRAYNVPROC __glewPathDashArrayNV; -GLEW_FUN_EXPORT PFNGLPATHFOGGENNVPROC __glewPathFogGenNV; -GLEW_FUN_EXPORT PFNGLPATHGLYPHRANGENVPROC __glewPathGlyphRangeNV; -GLEW_FUN_EXPORT PFNGLPATHGLYPHSNVPROC __glewPathGlyphsNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERFNVPROC __glewPathParameterfNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERFVNVPROC __glewPathParameterfvNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERINVPROC __glewPathParameteriNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERIVNVPROC __glewPathParameterivNV; -GLEW_FUN_EXPORT PFNGLPATHSTENCILDEPTHOFFSETNVPROC __glewPathStencilDepthOffsetNV; -GLEW_FUN_EXPORT PFNGLPATHSTENCILFUNCNVPROC __glewPathStencilFuncNV; -GLEW_FUN_EXPORT PFNGLPATHSTRINGNVPROC __glewPathStringNV; -GLEW_FUN_EXPORT PFNGLPATHSUBCOMMANDSNVPROC __glewPathSubCommandsNV; -GLEW_FUN_EXPORT PFNGLPATHSUBCOORDSNVPROC __glewPathSubCoordsNV; -GLEW_FUN_EXPORT PFNGLPATHTEXGENNVPROC __glewPathTexGenNV; -GLEW_FUN_EXPORT PFNGLPOINTALONGPATHNVPROC __glewPointAlongPathNV; -GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHINSTANCEDNVPROC __glewStencilFillPathInstancedNV; -GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHNVPROC __glewStencilFillPathNV; -GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC __glewStencilStrokePathInstancedNV; -GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHNVPROC __glewStencilStrokePathNV; -GLEW_FUN_EXPORT PFNGLTRANSFORMPATHNVPROC __glewTransformPathNV; -GLEW_FUN_EXPORT PFNGLWEIGHTPATHSNVPROC __glewWeightPathsNV; - -GLEW_FUN_EXPORT PFNGLFLUSHPIXELDATARANGENVPROC __glewFlushPixelDataRangeNV; -GLEW_FUN_EXPORT PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV; - -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV; - -GLEW_FUN_EXPORT PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV; -GLEW_FUN_EXPORT PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV; -GLEW_FUN_EXPORT PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV; - -GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV; -GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV; - -GLEW_FUN_EXPORT PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV; -GLEW_FUN_EXPORT PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFVNVPROC __glewCombinerParameterfvNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERINVPROC __glewCombinerParameteriNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERIVNVPROC __glewCombinerParameterivNV; -GLEW_FUN_EXPORT PFNGLFINALCOMBINERINPUTNVPROC __glewFinalCombinerInputNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC __glewGetCombinerInputParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC __glewGetCombinerInputParameterivNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC __glewGetCombinerOutputParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC __glewGetCombinerOutputParameterivNV; -GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC __glewGetFinalCombinerInputParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombinerInputParameterivNV; - -GLEW_FUN_EXPORT PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV; - -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV; -GLEW_FUN_EXPORT PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV; -GLEW_FUN_EXPORT PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV; -GLEW_FUN_EXPORT PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV; -GLEW_FUN_EXPORT PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV; -GLEW_FUN_EXPORT PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV; -GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV; -GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORMUI64NVPROC __glewUniformui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV; - -GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV; - -GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTexImage3DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTextureImage2DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC __glewTextureImage2DMultisampleNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTextureImage3DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC __glewTextureImage3DMultisampleNV; - -GLEW_FUN_EXPORT PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV; -GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV; -GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETNVPROC __glewBindBufferOffsetNV; -GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGENVPROC __glewBindBufferRangeNV; -GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKNVPROC __glewEndTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLGETACTIVEVARYINGNVPROC __glewGetActiveVaryingNV; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC __glewGetTransformFeedbackVaryingNV; -GLEW_FUN_EXPORT PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV; - -GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV; -GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV; - -GLEW_FUN_EXPORT PFNGLVDPAUFININVPROC __glewVDPAUFiniNV; -GLEW_FUN_EXPORT PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV; -GLEW_FUN_EXPORT PFNGLVDPAUINITNVPROC __glewVDPAUInitNV; -GLEW_FUN_EXPORT PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV; -GLEW_FUN_EXPORT PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV; -GLEW_FUN_EXPORT PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV; -GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV; -GLEW_FUN_EXPORT PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV; -GLEW_FUN_EXPORT PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV; -GLEW_FUN_EXPORT PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV; - -GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV; - -GLEW_FUN_EXPORT PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV; -GLEW_FUN_EXPORT PFNGLCOLORFORMATNVPROC __glewColorFormatNV; -GLEW_FUN_EXPORT PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV; -GLEW_FUN_EXPORT PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV; -GLEW_FUN_EXPORT PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV; -GLEW_FUN_EXPORT PFNGLINDEXFORMATNVPROC __glewIndexFormatNV; -GLEW_FUN_EXPORT PFNGLNORMALFORMATNVPROC __glewNormalFormatNV; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV; -GLEW_FUN_EXPORT PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV; -GLEW_FUN_EXPORT PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV; - -GLEW_FUN_EXPORT PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV; -GLEW_FUN_EXPORT PFNGLBINDPROGRAMNVPROC __glewBindProgramNV; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV; -GLEW_FUN_EXPORT PFNGLEXECUTEPROGRAMNVPROC __glewExecuteProgramNV; -GLEW_FUN_EXPORT PFNGLGENPROGRAMSNVPROC __glewGenProgramsNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERDVNVPROC __glewGetProgramParameterdvNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERFVNVPROC __glewGetProgramParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGNVPROC __glewGetProgramStringNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMIVNVPROC __glewGetProgramivNV; -GLEW_FUN_EXPORT PFNGLGETTRACKMATRIXIVNVPROC __glewGetTrackMatrixivNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVNVPROC __glewGetVertexAttribPointervNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVNVPROC __glewGetVertexAttribdvNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVNVPROC __glewGetVertexAttribfvNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVNVPROC __glewGetVertexAttribivNV; -GLEW_FUN_EXPORT PFNGLISPROGRAMNVPROC __glewIsProgramNV; -GLEW_FUN_EXPORT PFNGLLOADPROGRAMNVPROC __glewLoadProgramNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DNVPROC __glewProgramParameter4dNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DVNVPROC __glewProgramParameter4dvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FNVPROC __glewProgramParameter4fNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FVNVPROC __glewProgramParameter4fvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4DVNVPROC __glewProgramParameters4dvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4FVNVPROC __glewProgramParameters4fvNV; -GLEW_FUN_EXPORT PFNGLREQUESTRESIDENTPROGRAMSNVPROC __glewRequestResidentProgramsNV; -GLEW_FUN_EXPORT PFNGLTRACKMATRIXNVPROC __glewTrackMatrixNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DNVPROC __glewVertexAttrib1dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVNVPROC __glewVertexAttrib1dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FNVPROC __glewVertexAttrib1fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVNVPROC __glewVertexAttrib1fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SNVPROC __glewVertexAttrib1sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVNVPROC __glewVertexAttrib1svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DNVPROC __glewVertexAttrib2dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVNVPROC __glewVertexAttrib2dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FNVPROC __glewVertexAttrib2fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVNVPROC __glewVertexAttrib2fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SNVPROC __glewVertexAttrib2sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVNVPROC __glewVertexAttrib2svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DNVPROC __glewVertexAttrib3dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVNVPROC __glewVertexAttrib3dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVNVPROC __glewVertexAttrib3fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SNVPROC __glewVertexAttrib3sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVNVPROC __glewVertexAttrib3svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DNVPROC __glewVertexAttrib4dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVNVPROC __glewVertexAttrib4dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FNVPROC __glewVertexAttrib4fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVNVPROC __glewVertexAttrib4fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SNVPROC __glewVertexAttrib4sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVNVPROC __glewVertexAttrib4svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBNVPROC __glewVertexAttrib4ubNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVNVPROC __glewVertexAttrib4ubvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERNVPROC __glewVertexAttribPointerNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1DVNVPROC __glewVertexAttribs1dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1FVNVPROC __glewVertexAttribs1fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1SVNVPROC __glewVertexAttribs1svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2DVNVPROC __glewVertexAttribs2dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2FVNVPROC __glewVertexAttribs2fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2SVNVPROC __glewVertexAttribs2svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3DVNVPROC __glewVertexAttribs3dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3FVNVPROC __glewVertexAttribs3fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3SVNVPROC __glewVertexAttribs3svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4DVNVPROC __glewVertexAttribs4dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV; - -GLEW_FUN_EXPORT PFNGLBEGINVIDEOCAPTURENVPROC __glewBeginVideoCaptureNV; -GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC __glewBindVideoCaptureStreamBufferNV; -GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC __glewBindVideoCaptureStreamTextureNV; -GLEW_FUN_EXPORT PFNGLENDVIDEOCAPTURENVPROC __glewEndVideoCaptureNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMDVNVPROC __glewGetVideoCaptureStreamdvNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMFVNVPROC __glewGetVideoCaptureStreamfvNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMIVNVPROC __glewGetVideoCaptureStreamivNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTUREIVNVPROC __glewGetVideoCaptureivNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURENVPROC __glewVideoCaptureNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV; - -GLEW_FUN_EXPORT PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES; -GLEW_FUN_EXPORT PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES; -GLEW_FUN_EXPORT PFNGLFRUSTUMFOESPROC __glewFrustumfOES; -GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES; -GLEW_FUN_EXPORT PFNGLORTHOFOESPROC __glewOrthofOES; - -GLEW_FUN_EXPORT PFNGLDETAILTEXFUNCSGISPROC __glewDetailTexFuncSGIS; -GLEW_FUN_EXPORT PFNGLGETDETAILTEXFUNCSGISPROC __glewGetDetailTexFuncSGIS; - -GLEW_FUN_EXPORT PFNGLFOGFUNCSGISPROC __glewFogFuncSGIS; -GLEW_FUN_EXPORT PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS; - -GLEW_FUN_EXPORT PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS; -GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS; - -GLEW_FUN_EXPORT PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS; -GLEW_FUN_EXPORT PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS; - -GLEW_FUN_EXPORT PFNGLTEXIMAGE4DSGISPROC __glewTexImage4DSGIS; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE4DSGISPROC __glewTexSubImage4DSGIS; - -GLEW_FUN_EXPORT PFNGLGETTEXFILTERFUNCSGISPROC __glewGetTexFilterFuncSGIS; -GLEW_FUN_EXPORT PFNGLTEXFILTERFUNCSGISPROC __glewTexFilterFuncSGIS; - -GLEW_FUN_EXPORT PFNGLASYNCMARKERSGIXPROC __glewAsyncMarkerSGIX; -GLEW_FUN_EXPORT PFNGLDELETEASYNCMARKERSSGIXPROC __glewDeleteAsyncMarkersSGIX; -GLEW_FUN_EXPORT PFNGLFINISHASYNCSGIXPROC __glewFinishAsyncSGIX; -GLEW_FUN_EXPORT PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX; -GLEW_FUN_EXPORT PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX; -GLEW_FUN_EXPORT PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX; - -GLEW_FUN_EXPORT PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX; - -GLEW_FUN_EXPORT PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX; - -GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX; - -GLEW_FUN_EXPORT PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX; - -GLEW_FUN_EXPORT PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX; - -GLEW_FUN_EXPORT PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX; - -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX; -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFVSGIXPROC __glewSpriteParameterfvSGIX; -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERISGIXPROC __glewSpriteParameteriSGIX; -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX; - -GLEW_FUN_EXPORT PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX; - -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI; -GLEW_FUN_EXPORT PFNGLCOLORTABLESGIPROC __glewColorTableSGI; -GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLESGIPROC __glewCopyColorTableSGI; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI; - -GLEW_FUN_EXPORT PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX; - -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORDSUNPROC __glewGlobalAlphaFactordSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORFSUNPROC __glewGlobalAlphaFactorfSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORISUNPROC __glewGlobalAlphaFactoriSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORSSUNPROC __glewGlobalAlphaFactorsSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUBSUNPROC __glewGlobalAlphaFactorubSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUISUNPROC __glewGlobalAlphaFactoruiSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUSSUNPROC __glewGlobalAlphaFactorusSUN; - -GLEW_FUN_EXPORT PFNGLREADVIDEOPIXELSSUNPROC __glewReadVideoPixelsSUN; - -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEPOINTERSUNPROC __glewReplacementCodePointerSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBSUNPROC __glewReplacementCodeubSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBVSUNPROC __glewReplacementCodeubvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUISUNPROC __glewReplacementCodeuiSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVSUNPROC __glewReplacementCodeuivSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSSUNPROC __glewReplacementCodeusSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSVSUNPROC __glewReplacementCodeusvSUN; - -GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FSUNPROC __glewColor3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FVSUNPROC __glewColor3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FSUNPROC __glewColor4ubVertex2fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FVSUNPROC __glewColor4ubVertex2fvSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FSUNPROC __glewColor4ubVertex3fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FVSUNPROC __glewColor4ubVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FSUNPROC __glewNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FVSUNPROC __glewNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC __glewReplacementCodeuiColor3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC __glewReplacementCodeuiColor4ubVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC __glewReplacementCodeuiColor4ubVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC __glewReplacementCodeuiVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC __glewReplacementCodeuiVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC __glewTexCoord2fColor3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC __glewTexCoord2fColor3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC __glewTexCoord2fColor4ubVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC __glewTexCoord2fColor4ubVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FSUNPROC __glewTexCoord2fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FVSUNPROC __glewTexCoord2fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN; - -GLEW_FUN_EXPORT PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN; - -#if defined(GLEW_MX) && !defined(_WIN32) -struct GLEWContextStruct -{ -#endif /* GLEW_MX */ - -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_3; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_4; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_5; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_0; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_0; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_2; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_3; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_0; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_2; -GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer; -GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_blend_minmax_factor; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_depth_clamp_separate; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_multi_draw_indirect; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sample_positions; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback3_lines_triangles; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_tessellator; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_aux_depth_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_client_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_element_array; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_fence; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_float_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_flush_buffer_range; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_object_purgeable; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_pixel_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_rgb_422; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_row_bytes; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_specular_vector; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_range; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_transform_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_range; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_program_evaluators; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_ycbcr_422; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES2_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_base_instance; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_blend_func_extended; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cl_event; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_color_buffer_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compressed_texture_pixel_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_conservative_depth; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_debug_output; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_buffer_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers_blend; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_elements_base_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_indirect; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_instanced; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_attrib_location; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_coord_conventions; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program_shadow; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_sRGB; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_geometry_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_program_binary; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader5; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_fp64; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_pixel; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_imaging; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_instanced_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_alignment; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_range; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_matrix_palette; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multitexture; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query2; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pixel_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_sprite; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_provoking_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_shading; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sampler_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cube_map; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_separate_shader_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_atomic_counters; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_bit_encoding; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_load_store; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_precision; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_stencil_export; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_subroutine; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_100; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_420pack; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_include; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_packing; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow_ambient; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sync; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_tessellation_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_border_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object_rgb32; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_bptc; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_rgtc; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map_array; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_add; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_combine; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_crossbar; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_dot3; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_gather; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirrored_repeat; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_non_power_of_two; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rg; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rgb10_a2ui; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_swizzle; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_timer_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback2; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback3; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback_instanced; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transpose_matrix; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_uniform_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_bgra; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_64bit; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_blend; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_program; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_viewport_array; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_window_pos; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_point_sprites; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_combine3; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_route; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_vertex_shader_output_point_size; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_draw_buffers; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_element_array; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_envmap_bumpmap; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_fragment_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_map_object_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_meminfo; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_pn_triangles; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_separate_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_shader_texture_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_text_fragment_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_compression_3dc; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_env_combine3; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_mirror_once; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_attrib_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_streams; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_422_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_Cg_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_abgr; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bgra; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bindable_uniform; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_color; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_equation_separate; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_separate; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_logic_op; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_minmax; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_subtract; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_volume_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cmyka; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_subtable; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compiled_vertex_array; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_convolution; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_coordinate_frame; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cull_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_bounds_test; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_direct_state_access; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers2; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_instanced; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_range_elements; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fog_coord; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_lighting; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_blit; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_sRGB; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_program_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_histogram; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_array_formats; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_func; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_material; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_light_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_misc_attribute; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_depth_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_float; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_paletted_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform_color_table; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_point_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_provoking_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_rescale_normal; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_scene_marker; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_secondary_color; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_shader_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_specular_color; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_store; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_funcs; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shared_texture_palette; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_clear_tag; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_two_side; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_wrap; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_subtexture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture3D; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_array; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_dxt1; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_latc; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_rgtc; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_edge_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_add; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_combine; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_dot3; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_anisotropic; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_integer; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_lod_bias; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_perturb_normal; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_decode; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shared_exponent; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_snorm; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_swizzle; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_timer_query; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_transform_feedback; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_x11_sync_object; -GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator; -GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_image_transform; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_occlusion_test; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_texture_lighting; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_cull_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_multimode_draw_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_rasterpos_clip; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_static_data; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_texture_mirrored_repeat; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_vertex_array_lists; -GLEW_VAR_EXPORT GLboolean __GLEW_INGR_color_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_INGR_interlace_read; -GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_parallel_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_texture_scissor; -GLEW_VAR_EXPORT GLboolean __GLEW_KTX_buffer_region; -GLEW_VAR_EXPORT GLboolean __GLEW_MESAX_texture_stack; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_pack_invert; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_resize_buffers; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_window_pos; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_ycbcr_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_conditional_render; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_depth_to_color; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_image; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_buffer_float; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_range_unclamped; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_evaluators; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fence; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_float_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fog_distance; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program_option; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample_coverage; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program_fp64; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_shader5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_half_float; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_light_max_exponent; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_coverage; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_filter_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_occlusion_query; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_depth_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_data_range; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_point_sprite; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_present_video; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_restart; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_tessellation_program5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_emboss; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_reflection; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader3; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_attrib_integer_64bit; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_buffer_unified_memory; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program1_1; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_video_capture; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_paletted_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_read_format; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_single_precision; -GLEW_VAR_EXPORT GLboolean __GLEW_OML_interlace; -GLEW_VAR_EXPORT GLboolean __GLEW_OML_resample; -GLEW_VAR_EXPORT GLboolean __GLEW_OML_subsample; -GLEW_VAR_EXPORT GLboolean __GLEW_PGI_misc_hints; -GLEW_VAR_EXPORT GLboolean __GLEW_PGI_vertex_hints; -GLEW_VAR_EXPORT GLboolean __GLEW_REND_screen_coordinates; -GLEW_VAR_EXPORT GLboolean __GLEW_S3_s3tc; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_color_range; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_detail_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_fog_function; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_generate_mipmap; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_pixel_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_point_line_texgen; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_sharpen_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture4D; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_border_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_edge_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_filter4; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_select; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_histogram; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_pixel; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_alpha_minmax; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_clipmap; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_convolution_accuracy; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_flush_raster; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_offset; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_specular_lighting; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_framezoom; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_interlace; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ir_instrument1; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_list_priority; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_bits; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_reference_plane; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_resample; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow_ambient; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_sprite; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_tag_sample_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_add_env; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_coordinate_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_lod_bias; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_multi_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_range; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_scale_bias; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb; -GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_matrix; -GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_table; -GLEW_VAR_EXPORT GLboolean __GLEW_SGI_texture_color_table; -GLEW_VAR_EXPORT GLboolean __GLEW_SUNX_constant_data; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_convolution_border_modes; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_global_alpha; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_mesh_array; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_read_video_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_slice_accum; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_triangle_list; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_WIN_phong_shading; -GLEW_VAR_EXPORT GLboolean __GLEW_WIN_specular_fog; -GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; - -#ifdef GLEW_MX -}; /* GLEWContextStruct */ -#endif /* GLEW_MX */ - -/* ------------------------------------------------------------------------- */ - -/* error codes */ -#define GLEW_OK 0 -#define GLEW_NO_ERROR 0 -#define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */ -#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */ -#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */ - -/* string codes */ -#define GLEW_VERSION 1 -#define GLEW_VERSION_MAJOR 2 -#define GLEW_VERSION_MINOR 3 -#define GLEW_VERSION_MICRO 4 - -/* API */ -#ifdef GLEW_MX - -typedef struct GLEWContextStruct GLEWContext; -GLEWAPI GLenum glewContextInit (GLEWContext* ctx); -GLEWAPI GLboolean glewContextIsSupported (const GLEWContext* ctx, const char* name); - -#define glewInit() glewContextInit(glewGetContext()) -#define glewIsSupported(x) glewContextIsSupported(glewGetContext(), x) -#define glewIsExtensionSupported(x) glewIsSupported(x) - -#define GLEW_GET_VAR(x) (*(const GLboolean*)&(glewGetContext()->x)) -#ifdef _WIN32 -# define GLEW_GET_FUN(x) glewGetContext()->x -#else -# define GLEW_GET_FUN(x) x -#endif - -#else /* GLEW_MX */ - -GLEWAPI GLenum glewInit (); -GLEWAPI GLboolean glewIsSupported (const char* name); -#define glewIsExtensionSupported(x) glewIsSupported(x) - -#define GLEW_GET_VAR(x) (*(const GLboolean*)&x) -#define GLEW_GET_FUN(x) x - -#endif /* GLEW_MX */ - -GLEWAPI GLboolean glewExperimental; -GLEWAPI GLboolean glewGetExtension (const char* name); -GLEWAPI const GLubyte* glewGetErrorString (GLenum error); -GLEWAPI const GLubyte* glewGetString (GLenum name); - -#ifdef __cplusplus -} -#endif - -#ifdef GLEW_APIENTRY_DEFINED -#undef GLEW_APIENTRY_DEFINED -#undef APIENTRY -#undef GLAPIENTRY -#define GLAPIENTRY -#endif - -#ifdef GLEW_CALLBACK_DEFINED -#undef GLEW_CALLBACK_DEFINED -#undef CALLBACK -#endif - -#ifdef GLEW_WINGDIAPI_DEFINED -#undef GLEW_WINGDIAPI_DEFINED -#undef WINGDIAPI -#endif - -#undef GLAPI -/* #undef GLEWAPI */ - -#endif /* __glew_h__ */ diff --git a/lib/linux/include/GL/glext.h b/lib/linux/include/GL/glext.h deleted file mode 100644 index 0940021..0000000 --- a/lib/linux/include/GL/glext.h +++ /dev/null @@ -1,11488 +0,0 @@ -#ifndef __glext_h_ -#define __glext_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2007-2011 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Header file version number, required by OpenGL ABI for Linux */ -/* glext.h last updated $Date: 2011-08-08 00:34:29 -0700 (Mon, 08 Aug 2011) $ */ -/* Current version at http://www.opengl.org/registry/ */ -#define GL_GLEXT_VERSION 72 -/* Function declaration macros - to move into glplatform.h */ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - -/*************************************************************/ - -#ifndef GL_VERSION_1_2 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#endif - -#ifndef GL_VERSION_1_2_DEPRECATED -#define GL_RESCALE_NORMAL 0x803A -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#endif - -#ifndef GL_ARB_imaging -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_FUNC_ADD 0x8006 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_BLEND_EQUATION 0x8009 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#endif - -#ifndef GL_ARB_imaging_DEPRECATED -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 -#endif - -#ifndef GL_VERSION_1_3 -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_CLAMP_TO_BORDER 0x812D -#endif - -#ifndef GL_VERSION_1_3_DEPRECATED -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_MULTISAMPLE_BIT 0x20000000 -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_SUBTRACT 0x84E7 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -#endif - -#ifndef GL_VERSION_1_4 -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#endif - -#ifndef GL_VERSION_1_4_DEPRECATED -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_COMPARE_R_TO_TEXTURE 0x884E -#endif - -#ifndef GL_VERSION_1_5 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_SAMPLES_PASSED 0x8914 -#endif - -#ifndef GL_VERSION_1_5_DEPRECATED -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_FOG_COORD_SRC 0x8450 -#define GL_FOG_COORD 0x8451 -#define GL_CURRENT_FOG_COORD 0x8453 -#define GL_FOG_COORD_ARRAY_TYPE 0x8454 -#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORD_ARRAY_POINTER 0x8456 -#define GL_FOG_COORD_ARRAY 0x8457 -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D -#define GL_SRC0_RGB 0x8580 -#define GL_SRC1_RGB 0x8581 -#define GL_SRC2_RGB 0x8582 -#define GL_SRC0_ALPHA 0x8588 -#define GL_SRC1_ALPHA 0x8589 -#define GL_SRC2_ALPHA 0x858A -#endif - -#ifndef GL_VERSION_2_0 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_SHADER_TYPE 0x8B4F -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_DELETE_STATUS 0x8B80 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#endif - -#ifndef GL_VERSION_2_0_DEPRECATED -#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define GL_POINT_SPRITE 0x8861 -#define GL_COORD_REPLACE 0x8862 -#define GL_MAX_TEXTURE_COORDS 0x8871 -#endif - -#ifndef GL_VERSION_2_1 -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#endif - -#ifndef GL_VERSION_2_1_DEPRECATED -#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F -#define GL_SLUMINANCE_ALPHA 0x8C44 -#define GL_SLUMINANCE8_ALPHA8 0x8C45 -#define GL_SLUMINANCE 0x8C46 -#define GL_SLUMINANCE8 0x8C47 -#define GL_COMPRESSED_SLUMINANCE 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B -#endif - -#ifndef GL_VERSION_3_0 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_CLIP_DISTANCE0 0x3000 -#define GL_CLIP_DISTANCE1 0x3001 -#define GL_CLIP_DISTANCE2 0x3002 -#define GL_CLIP_DISTANCE3 0x3003 -#define GL_CLIP_DISTANCE4 0x3004 -#define GL_CLIP_DISTANCE5 0x3005 -#define GL_CLIP_DISTANCE6 0x3006 -#define GL_CLIP_DISTANCE7 0x3007 -#define GL_MAX_CLIP_DISTANCES 0x0D32 -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_CONTEXT_FLAGS 0x821E -#define GL_DEPTH_BUFFER 0x8223 -#define GL_STENCIL_BUFFER 0x8224 -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_CLAMP_READ_COLOR 0x891C -#define GL_FIXED_ONLY 0x891D -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_1D_ARRAY 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_GREEN_INTEGER 0x8D95 -#define GL_BLUE_INTEGER 0x8D96 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_BGR_INTEGER 0x8D9A -#define GL_BGRA_INTEGER 0x8D9B -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_QUERY_WAIT 0x8E13 -#define GL_QUERY_NO_WAIT 0x8E14 -#define GL_QUERY_BY_REGION_WAIT 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -/* Reuse tokens from ARB_depth_buffer_float */ -/* reuse GL_DEPTH_COMPONENT32F */ -/* reuse GL_DEPTH32F_STENCIL8 */ -/* reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV */ -/* Reuse tokens from ARB_framebuffer_object */ -/* reuse GL_INVALID_FRAMEBUFFER_OPERATION */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ -/* reuse GL_FRAMEBUFFER_DEFAULT */ -/* reuse GL_FRAMEBUFFER_UNDEFINED */ -/* reuse GL_DEPTH_STENCIL_ATTACHMENT */ -/* reuse GL_INDEX */ -/* reuse GL_MAX_RENDERBUFFER_SIZE */ -/* reuse GL_DEPTH_STENCIL */ -/* reuse GL_UNSIGNED_INT_24_8 */ -/* reuse GL_DEPTH24_STENCIL8 */ -/* reuse GL_TEXTURE_STENCIL_SIZE */ -/* reuse GL_TEXTURE_RED_TYPE */ -/* reuse GL_TEXTURE_GREEN_TYPE */ -/* reuse GL_TEXTURE_BLUE_TYPE */ -/* reuse GL_TEXTURE_ALPHA_TYPE */ -/* reuse GL_TEXTURE_DEPTH_TYPE */ -/* reuse GL_UNSIGNED_NORMALIZED */ -/* reuse GL_FRAMEBUFFER_BINDING */ -/* reuse GL_DRAW_FRAMEBUFFER_BINDING */ -/* reuse GL_RENDERBUFFER_BINDING */ -/* reuse GL_READ_FRAMEBUFFER */ -/* reuse GL_DRAW_FRAMEBUFFER */ -/* reuse GL_READ_FRAMEBUFFER_BINDING */ -/* reuse GL_RENDERBUFFER_SAMPLES */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ -/* reuse GL_FRAMEBUFFER_COMPLETE */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ -/* reuse GL_FRAMEBUFFER_UNSUPPORTED */ -/* reuse GL_MAX_COLOR_ATTACHMENTS */ -/* reuse GL_COLOR_ATTACHMENT0 */ -/* reuse GL_COLOR_ATTACHMENT1 */ -/* reuse GL_COLOR_ATTACHMENT2 */ -/* reuse GL_COLOR_ATTACHMENT3 */ -/* reuse GL_COLOR_ATTACHMENT4 */ -/* reuse GL_COLOR_ATTACHMENT5 */ -/* reuse GL_COLOR_ATTACHMENT6 */ -/* reuse GL_COLOR_ATTACHMENT7 */ -/* reuse GL_COLOR_ATTACHMENT8 */ -/* reuse GL_COLOR_ATTACHMENT9 */ -/* reuse GL_COLOR_ATTACHMENT10 */ -/* reuse GL_COLOR_ATTACHMENT11 */ -/* reuse GL_COLOR_ATTACHMENT12 */ -/* reuse GL_COLOR_ATTACHMENT13 */ -/* reuse GL_COLOR_ATTACHMENT14 */ -/* reuse GL_COLOR_ATTACHMENT15 */ -/* reuse GL_DEPTH_ATTACHMENT */ -/* reuse GL_STENCIL_ATTACHMENT */ -/* reuse GL_FRAMEBUFFER */ -/* reuse GL_RENDERBUFFER */ -/* reuse GL_RENDERBUFFER_WIDTH */ -/* reuse GL_RENDERBUFFER_HEIGHT */ -/* reuse GL_RENDERBUFFER_INTERNAL_FORMAT */ -/* reuse GL_STENCIL_INDEX1 */ -/* reuse GL_STENCIL_INDEX4 */ -/* reuse GL_STENCIL_INDEX8 */ -/* reuse GL_STENCIL_INDEX16 */ -/* reuse GL_RENDERBUFFER_RED_SIZE */ -/* reuse GL_RENDERBUFFER_GREEN_SIZE */ -/* reuse GL_RENDERBUFFER_BLUE_SIZE */ -/* reuse GL_RENDERBUFFER_ALPHA_SIZE */ -/* reuse GL_RENDERBUFFER_DEPTH_SIZE */ -/* reuse GL_RENDERBUFFER_STENCIL_SIZE */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ -/* reuse GL_MAX_SAMPLES */ -/* Reuse tokens from ARB_framebuffer_sRGB */ -/* reuse GL_FRAMEBUFFER_SRGB */ -/* Reuse tokens from ARB_half_float_vertex */ -/* reuse GL_HALF_FLOAT */ -/* Reuse tokens from ARB_map_buffer_range */ -/* reuse GL_MAP_READ_BIT */ -/* reuse GL_MAP_WRITE_BIT */ -/* reuse GL_MAP_INVALIDATE_RANGE_BIT */ -/* reuse GL_MAP_INVALIDATE_BUFFER_BIT */ -/* reuse GL_MAP_FLUSH_EXPLICIT_BIT */ -/* reuse GL_MAP_UNSYNCHRONIZED_BIT */ -/* Reuse tokens from ARB_texture_compression_rgtc */ -/* reuse GL_COMPRESSED_RED_RGTC1 */ -/* reuse GL_COMPRESSED_SIGNED_RED_RGTC1 */ -/* reuse GL_COMPRESSED_RG_RGTC2 */ -/* reuse GL_COMPRESSED_SIGNED_RG_RGTC2 */ -/* Reuse tokens from ARB_texture_rg */ -/* reuse GL_RG */ -/* reuse GL_RG_INTEGER */ -/* reuse GL_R8 */ -/* reuse GL_R16 */ -/* reuse GL_RG8 */ -/* reuse GL_RG16 */ -/* reuse GL_R16F */ -/* reuse GL_R32F */ -/* reuse GL_RG16F */ -/* reuse GL_RG32F */ -/* reuse GL_R8I */ -/* reuse GL_R8UI */ -/* reuse GL_R16I */ -/* reuse GL_R16UI */ -/* reuse GL_R32I */ -/* reuse GL_R32UI */ -/* reuse GL_RG8I */ -/* reuse GL_RG8UI */ -/* reuse GL_RG16I */ -/* reuse GL_RG16UI */ -/* reuse GL_RG32I */ -/* reuse GL_RG32UI */ -/* Reuse tokens from ARB_vertex_array_object */ -/* reuse GL_VERTEX_ARRAY_BINDING */ -#endif - -#ifndef GL_VERSION_3_0_DEPRECATED -#define GL_CLAMP_VERTEX_COLOR 0x891A -#define GL_CLAMP_FRAGMENT_COLOR 0x891B -#define GL_ALPHA_INTEGER 0x8D97 -/* Reuse tokens from ARB_framebuffer_object */ -/* reuse GL_TEXTURE_LUMINANCE_TYPE */ -/* reuse GL_TEXTURE_INTENSITY_TYPE */ -#endif - -#ifndef GL_VERSION_3_1 -#define GL_SAMPLER_2D_RECT 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_2D_RECT 0x8DCD -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT 0x8C2E -#define GL_TEXTURE_RECTANGLE 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 -#define GL_RED_SNORM 0x8F90 -#define GL_RG_SNORM 0x8F91 -#define GL_RGB_SNORM 0x8F92 -#define GL_RGBA_SNORM 0x8F93 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM 0x8F98 -#define GL_RG16_SNORM 0x8F99 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGBA16_SNORM 0x8F9B -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART 0x8F9D -#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E -/* Reuse tokens from ARB_copy_buffer */ -/* reuse GL_COPY_READ_BUFFER */ -/* reuse GL_COPY_WRITE_BUFFER */ -/* Reuse tokens from ARB_draw_instanced (none) */ -/* Reuse tokens from ARB_uniform_buffer_object */ -/* reuse GL_UNIFORM_BUFFER */ -/* reuse GL_UNIFORM_BUFFER_BINDING */ -/* reuse GL_UNIFORM_BUFFER_START */ -/* reuse GL_UNIFORM_BUFFER_SIZE */ -/* reuse GL_MAX_VERTEX_UNIFORM_BLOCKS */ -/* reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS */ -/* reuse GL_MAX_COMBINED_UNIFORM_BLOCKS */ -/* reuse GL_MAX_UNIFORM_BUFFER_BINDINGS */ -/* reuse GL_MAX_UNIFORM_BLOCK_SIZE */ -/* reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS */ -/* reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS */ -/* reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT */ -/* reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */ -/* reuse GL_ACTIVE_UNIFORM_BLOCKS */ -/* reuse GL_UNIFORM_TYPE */ -/* reuse GL_UNIFORM_SIZE */ -/* reuse GL_UNIFORM_NAME_LENGTH */ -/* reuse GL_UNIFORM_BLOCK_INDEX */ -/* reuse GL_UNIFORM_OFFSET */ -/* reuse GL_UNIFORM_ARRAY_STRIDE */ -/* reuse GL_UNIFORM_MATRIX_STRIDE */ -/* reuse GL_UNIFORM_IS_ROW_MAJOR */ -/* reuse GL_UNIFORM_BLOCK_BINDING */ -/* reuse GL_UNIFORM_BLOCK_DATA_SIZE */ -/* reuse GL_UNIFORM_BLOCK_NAME_LENGTH */ -/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS */ -/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES */ -/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER */ -/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER */ -/* reuse GL_INVALID_INDEX */ -#endif - -#ifndef GL_VERSION_3_2 -#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 -#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_PROGRAM_POINT_SIZE 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_CONTEXT_PROFILE_MASK 0x9126 -/* reuse GL_MAX_VARYING_COMPONENTS */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ -/* Reuse tokens from ARB_depth_clamp */ -/* reuse GL_DEPTH_CLAMP */ -/* Reuse tokens from ARB_draw_elements_base_vertex (none) */ -/* Reuse tokens from ARB_fragment_coord_conventions (none) */ -/* Reuse tokens from ARB_provoking_vertex */ -/* reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ -/* reuse GL_FIRST_VERTEX_CONVENTION */ -/* reuse GL_LAST_VERTEX_CONVENTION */ -/* reuse GL_PROVOKING_VERTEX */ -/* Reuse tokens from ARB_seamless_cube_map */ -/* reuse GL_TEXTURE_CUBE_MAP_SEAMLESS */ -/* Reuse tokens from ARB_sync */ -/* reuse GL_MAX_SERVER_WAIT_TIMEOUT */ -/* reuse GL_OBJECT_TYPE */ -/* reuse GL_SYNC_CONDITION */ -/* reuse GL_SYNC_STATUS */ -/* reuse GL_SYNC_FLAGS */ -/* reuse GL_SYNC_FENCE */ -/* reuse GL_SYNC_GPU_COMMANDS_COMPLETE */ -/* reuse GL_UNSIGNALED */ -/* reuse GL_SIGNALED */ -/* reuse GL_ALREADY_SIGNALED */ -/* reuse GL_TIMEOUT_EXPIRED */ -/* reuse GL_CONDITION_SATISFIED */ -/* reuse GL_WAIT_FAILED */ -/* reuse GL_TIMEOUT_IGNORED */ -/* reuse GL_SYNC_FLUSH_COMMANDS_BIT */ -/* reuse GL_TIMEOUT_IGNORED */ -/* Reuse tokens from ARB_texture_multisample */ -/* reuse GL_SAMPLE_POSITION */ -/* reuse GL_SAMPLE_MASK */ -/* reuse GL_SAMPLE_MASK_VALUE */ -/* reuse GL_MAX_SAMPLE_MASK_WORDS */ -/* reuse GL_TEXTURE_2D_MULTISAMPLE */ -/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE */ -/* reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE */ -/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_TEXTURE_SAMPLES */ -/* reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS */ -/* reuse GL_SAMPLER_2D_MULTISAMPLE */ -/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE */ -/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE */ -/* reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_MAX_COLOR_TEXTURE_SAMPLES */ -/* reuse GL_MAX_DEPTH_TEXTURE_SAMPLES */ -/* reuse GL_MAX_INTEGER_SAMPLES */ -/* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */ -#endif - -#ifndef GL_VERSION_3_3 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -/* Reuse tokens from ARB_blend_func_extended */ -/* reuse GL_SRC1_COLOR */ -/* reuse GL_ONE_MINUS_SRC1_COLOR */ -/* reuse GL_ONE_MINUS_SRC1_ALPHA */ -/* reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS */ -/* Reuse tokens from ARB_explicit_attrib_location (none) */ -/* Reuse tokens from ARB_occlusion_query2 */ -/* reuse GL_ANY_SAMPLES_PASSED */ -/* Reuse tokens from ARB_sampler_objects */ -/* reuse GL_SAMPLER_BINDING */ -/* Reuse tokens from ARB_shader_bit_encoding (none) */ -/* Reuse tokens from ARB_texture_rgb10_a2ui */ -/* reuse GL_RGB10_A2UI */ -/* Reuse tokens from ARB_texture_swizzle */ -/* reuse GL_TEXTURE_SWIZZLE_R */ -/* reuse GL_TEXTURE_SWIZZLE_G */ -/* reuse GL_TEXTURE_SWIZZLE_B */ -/* reuse GL_TEXTURE_SWIZZLE_A */ -/* reuse GL_TEXTURE_SWIZZLE_RGBA */ -/* Reuse tokens from ARB_timer_query */ -/* reuse GL_TIME_ELAPSED */ -/* reuse GL_TIMESTAMP */ -/* Reuse tokens from ARB_vertex_type_2_10_10_10_rev */ -/* reuse GL_INT_2_10_10_10_REV */ -#endif - -#ifndef GL_VERSION_4_0 -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F -/* Reuse tokens from ARB_texture_query_lod (none) */ -/* Reuse tokens from ARB_draw_buffers_blend (none) */ -/* Reuse tokens from ARB_draw_indirect */ -/* reuse GL_DRAW_INDIRECT_BUFFER */ -/* reuse GL_DRAW_INDIRECT_BUFFER_BINDING */ -/* Reuse tokens from ARB_gpu_shader5 */ -/* reuse GL_GEOMETRY_SHADER_INVOCATIONS */ -/* reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS */ -/* reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET */ -/* reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET */ -/* reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS */ -/* reuse GL_MAX_VERTEX_STREAMS */ -/* Reuse tokens from ARB_gpu_shader_fp64 */ -/* reuse GL_DOUBLE_VEC2 */ -/* reuse GL_DOUBLE_VEC3 */ -/* reuse GL_DOUBLE_VEC4 */ -/* reuse GL_DOUBLE_MAT2 */ -/* reuse GL_DOUBLE_MAT3 */ -/* reuse GL_DOUBLE_MAT4 */ -/* reuse GL_DOUBLE_MAT2x3 */ -/* reuse GL_DOUBLE_MAT2x4 */ -/* reuse GL_DOUBLE_MAT3x2 */ -/* reuse GL_DOUBLE_MAT3x4 */ -/* reuse GL_DOUBLE_MAT4x2 */ -/* reuse GL_DOUBLE_MAT4x3 */ -/* Reuse tokens from ARB_shader_subroutine */ -/* reuse GL_ACTIVE_SUBROUTINES */ -/* reuse GL_ACTIVE_SUBROUTINE_UNIFORMS */ -/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS */ -/* reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH */ -/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH */ -/* reuse GL_MAX_SUBROUTINES */ -/* reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS */ -/* reuse GL_NUM_COMPATIBLE_SUBROUTINES */ -/* reuse GL_COMPATIBLE_SUBROUTINES */ -/* Reuse tokens from ARB_tessellation_shader */ -/* reuse GL_PATCHES */ -/* reuse GL_PATCH_VERTICES */ -/* reuse GL_PATCH_DEFAULT_INNER_LEVEL */ -/* reuse GL_PATCH_DEFAULT_OUTER_LEVEL */ -/* reuse GL_TESS_CONTROL_OUTPUT_VERTICES */ -/* reuse GL_TESS_GEN_MODE */ -/* reuse GL_TESS_GEN_SPACING */ -/* reuse GL_TESS_GEN_VERTEX_ORDER */ -/* reuse GL_TESS_GEN_POINT_MODE */ -/* reuse GL_ISOLINES */ -/* reuse GL_FRACTIONAL_ODD */ -/* reuse GL_FRACTIONAL_EVEN */ -/* reuse GL_MAX_PATCH_VERTICES */ -/* reuse GL_MAX_TESS_GEN_LEVEL */ -/* reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS */ -/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS */ -/* reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS */ -/* reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS */ -/* reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS */ -/* reuse GL_MAX_TESS_PATCH_COMPONENTS */ -/* reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS */ -/* reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS */ -/* reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS */ -/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS */ -/* reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS */ -/* reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS */ -/* reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS */ -/* reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS */ -/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER */ -/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER */ -/* reuse GL_TESS_EVALUATION_SHADER */ -/* reuse GL_TESS_CONTROL_SHADER */ -/* Reuse tokens from ARB_texture_buffer_object_rgb32 (none) */ -/* Reuse tokens from ARB_transform_feedback2 */ -/* reuse GL_TRANSFORM_FEEDBACK */ -/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */ -/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */ -/* reuse GL_TRANSFORM_FEEDBACK_BINDING */ -/* Reuse tokens from ARB_transform_feedback3 */ -/* reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS */ -/* reuse GL_MAX_VERTEX_STREAMS */ -#endif - -#ifndef GL_VERSION_4_1 -/* Reuse tokens from ARB_ES2_compatibility */ -/* reuse GL_FIXED */ -/* reuse GL_IMPLEMENTATION_COLOR_READ_TYPE */ -/* reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT */ -/* reuse GL_LOW_FLOAT */ -/* reuse GL_MEDIUM_FLOAT */ -/* reuse GL_HIGH_FLOAT */ -/* reuse GL_LOW_INT */ -/* reuse GL_MEDIUM_INT */ -/* reuse GL_HIGH_INT */ -/* reuse GL_SHADER_COMPILER */ -/* reuse GL_NUM_SHADER_BINARY_FORMATS */ -/* reuse GL_MAX_VERTEX_UNIFORM_VECTORS */ -/* reuse GL_MAX_VARYING_VECTORS */ -/* reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS */ -/* Reuse tokens from ARB_get_program_binary */ -/* reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT */ -/* reuse GL_PROGRAM_BINARY_LENGTH */ -/* reuse GL_NUM_PROGRAM_BINARY_FORMATS */ -/* reuse GL_PROGRAM_BINARY_FORMATS */ -/* Reuse tokens from ARB_separate_shader_objects */ -/* reuse GL_VERTEX_SHADER_BIT */ -/* reuse GL_FRAGMENT_SHADER_BIT */ -/* reuse GL_GEOMETRY_SHADER_BIT */ -/* reuse GL_TESS_CONTROL_SHADER_BIT */ -/* reuse GL_TESS_EVALUATION_SHADER_BIT */ -/* reuse GL_ALL_SHADER_BITS */ -/* reuse GL_PROGRAM_SEPARABLE */ -/* reuse GL_ACTIVE_PROGRAM */ -/* reuse GL_PROGRAM_PIPELINE_BINDING */ -/* Reuse tokens from ARB_shader_precision (none) */ -/* Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already */ -/* Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already */ -/* reuse GL_MAX_VIEWPORTS */ -/* reuse GL_VIEWPORT_SUBPIXEL_BITS */ -/* reuse GL_VIEWPORT_BOUNDS_RANGE */ -/* reuse GL_LAYER_PROVOKING_VERTEX */ -/* reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX */ -/* reuse GL_UNDEFINED_VERTEX */ -#endif - -#ifndef GL_VERSION_4_2 -/* Reuse tokens from ARB_base_instance (none) */ -/* Reuse tokens from ARB_shading_language_420pack (none) */ -/* Reuse tokens from ARB_transform_feedback_instanced (none) */ -/* Reuse tokens from ARB_compressed_texture_pixel_storage */ -/* reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH */ -/* reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT */ -/* reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH */ -/* reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE */ -/* reuse GL_PACK_COMPRESSED_BLOCK_WIDTH */ -/* reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT */ -/* reuse GL_PACK_COMPRESSED_BLOCK_DEPTH */ -/* reuse GL_PACK_COMPRESSED_BLOCK_SIZE */ -/* Reuse tokens from ARB_conservative_depth (none) */ -/* Reuse tokens from ARB_internalformat_query */ -/* reuse GL_NUM_SAMPLE_COUNTS */ -/* Reuse tokens from ARB_map_buffer_alignment */ -/* reuse GL_MIN_MAP_BUFFER_ALIGNMENT */ -/* Reuse tokens from ARB_shader_atomic_counters */ -/* reuse GL_ATOMIC_COUNTER_BUFFER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_BINDING */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_START */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_SIZE */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER */ -/* reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_VERTEX_ATOMIC_COUNTERS */ -/* reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS */ -/* reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS */ -/* reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS */ -/* reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS */ -/* reuse GL_MAX_COMBINED_ATOMIC_COUNTERS */ -/* reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE */ -/* reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS */ -/* reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX */ -/* reuse GL_UNSIGNED_INT_ATOMIC_COUNTER */ -/* Reuse tokens from ARB_shader_image_load_store */ -/* reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT */ -/* reuse GL_ELEMENT_ARRAY_BARRIER_BIT */ -/* reuse GL_UNIFORM_BARRIER_BIT */ -/* reuse GL_TEXTURE_FETCH_BARRIER_BIT */ -/* reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT */ -/* reuse GL_COMMAND_BARRIER_BIT */ -/* reuse GL_PIXEL_BUFFER_BARRIER_BIT */ -/* reuse GL_TEXTURE_UPDATE_BARRIER_BIT */ -/* reuse GL_BUFFER_UPDATE_BARRIER_BIT */ -/* reuse GL_FRAMEBUFFER_BARRIER_BIT */ -/* reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT */ -/* reuse GL_ATOMIC_COUNTER_BARRIER_BIT */ -/* reuse GL_ALL_BARRIER_BITS */ -/* reuse GL_MAX_IMAGE_UNITS */ -/* reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS */ -/* reuse GL_IMAGE_BINDING_NAME */ -/* reuse GL_IMAGE_BINDING_LEVEL */ -/* reuse GL_IMAGE_BINDING_LAYERED */ -/* reuse GL_IMAGE_BINDING_LAYER */ -/* reuse GL_IMAGE_BINDING_ACCESS */ -/* reuse GL_IMAGE_1D */ -/* reuse GL_IMAGE_2D */ -/* reuse GL_IMAGE_3D */ -/* reuse GL_IMAGE_2D_RECT */ -/* reuse GL_IMAGE_CUBE */ -/* reuse GL_IMAGE_BUFFER */ -/* reuse GL_IMAGE_1D_ARRAY */ -/* reuse GL_IMAGE_2D_ARRAY */ -/* reuse GL_IMAGE_CUBE_MAP_ARRAY */ -/* reuse GL_IMAGE_2D_MULTISAMPLE */ -/* reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_INT_IMAGE_1D */ -/* reuse GL_INT_IMAGE_2D */ -/* reuse GL_INT_IMAGE_3D */ -/* reuse GL_INT_IMAGE_2D_RECT */ -/* reuse GL_INT_IMAGE_CUBE */ -/* reuse GL_INT_IMAGE_BUFFER */ -/* reuse GL_INT_IMAGE_1D_ARRAY */ -/* reuse GL_INT_IMAGE_2D_ARRAY */ -/* reuse GL_INT_IMAGE_CUBE_MAP_ARRAY */ -/* reuse GL_INT_IMAGE_2D_MULTISAMPLE */ -/* reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_UNSIGNED_INT_IMAGE_1D */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D */ -/* reuse GL_UNSIGNED_INT_IMAGE_3D */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D_RECT */ -/* reuse GL_UNSIGNED_INT_IMAGE_CUBE */ -/* reuse GL_UNSIGNED_INT_IMAGE_BUFFER */ -/* reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY */ -/* reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_MAX_IMAGE_SAMPLES */ -/* reuse GL_IMAGE_BINDING_FORMAT */ -/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE */ -/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE */ -/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS */ -/* reuse GL_MAX_VERTEX_IMAGE_UNIFORMS */ -/* reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS */ -/* reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS */ -/* reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS */ -/* reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS */ -/* reuse GL_MAX_COMBINED_IMAGE_UNIFORMS */ -/* Reuse tokens from ARB_shading_language_packing (none) */ -/* Reuse tokens from ARB_texture_storage */ -/* reuse GL_TEXTURE_IMMUTABLE_FORMAT */ -#endif - -#ifndef GL_ARB_multitexture -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 -#endif - -#ifndef GL_ARB_multisample -#define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define GL_MULTISAMPLE_BIT_ARB 0x20000000 -#endif - -#ifndef GL_ARB_texture_env_add -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_NORMAL_MAP_ARB 0x8511 -#define GL_REFLECTION_MAP_ARB 0x8512 -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C -#endif - -#ifndef GL_ARB_texture_compression -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 -#endif - -#ifndef GL_ARB_texture_border_clamp -#define GL_CLAMP_TO_BORDER_ARB 0x812D -#endif - -#ifndef GL_ARB_point_parameters -#define GL_POINT_SIZE_MIN_ARB 0x8126 -#define GL_POINT_SIZE_MAX_ARB 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 -#endif - -#ifndef GL_ARB_vertex_blend -#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 -#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 -#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 -#define GL_VERTEX_BLEND_ARB 0x86A7 -#define GL_CURRENT_WEIGHT_ARB 0x86A8 -#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 -#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA -#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB -#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC -#define GL_WEIGHT_ARRAY_ARB 0x86AD -#define GL_MODELVIEW0_ARB 0x1700 -#define GL_MODELVIEW1_ARB 0x850A -#define GL_MODELVIEW2_ARB 0x8722 -#define GL_MODELVIEW3_ARB 0x8723 -#define GL_MODELVIEW4_ARB 0x8724 -#define GL_MODELVIEW5_ARB 0x8725 -#define GL_MODELVIEW6_ARB 0x8726 -#define GL_MODELVIEW7_ARB 0x8727 -#define GL_MODELVIEW8_ARB 0x8728 -#define GL_MODELVIEW9_ARB 0x8729 -#define GL_MODELVIEW10_ARB 0x872A -#define GL_MODELVIEW11_ARB 0x872B -#define GL_MODELVIEW12_ARB 0x872C -#define GL_MODELVIEW13_ARB 0x872D -#define GL_MODELVIEW14_ARB 0x872E -#define GL_MODELVIEW15_ARB 0x872F -#define GL_MODELVIEW16_ARB 0x8730 -#define GL_MODELVIEW17_ARB 0x8731 -#define GL_MODELVIEW18_ARB 0x8732 -#define GL_MODELVIEW19_ARB 0x8733 -#define GL_MODELVIEW20_ARB 0x8734 -#define GL_MODELVIEW21_ARB 0x8735 -#define GL_MODELVIEW22_ARB 0x8736 -#define GL_MODELVIEW23_ARB 0x8737 -#define GL_MODELVIEW24_ARB 0x8738 -#define GL_MODELVIEW25_ARB 0x8739 -#define GL_MODELVIEW26_ARB 0x873A -#define GL_MODELVIEW27_ARB 0x873B -#define GL_MODELVIEW28_ARB 0x873C -#define GL_MODELVIEW29_ARB 0x873D -#define GL_MODELVIEW30_ARB 0x873E -#define GL_MODELVIEW31_ARB 0x873F -#endif - -#ifndef GL_ARB_matrix_palette -#define GL_MATRIX_PALETTE_ARB 0x8840 -#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 -#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 -#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 -#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 -#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 -#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 -#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 -#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 -#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 -#endif - -#ifndef GL_ARB_texture_env_combine -#define GL_COMBINE_ARB 0x8570 -#define GL_COMBINE_RGB_ARB 0x8571 -#define GL_COMBINE_ALPHA_ARB 0x8572 -#define GL_SOURCE0_RGB_ARB 0x8580 -#define GL_SOURCE1_RGB_ARB 0x8581 -#define GL_SOURCE2_RGB_ARB 0x8582 -#define GL_SOURCE0_ALPHA_ARB 0x8588 -#define GL_SOURCE1_ALPHA_ARB 0x8589 -#define GL_SOURCE2_ALPHA_ARB 0x858A -#define GL_OPERAND0_RGB_ARB 0x8590 -#define GL_OPERAND1_RGB_ARB 0x8591 -#define GL_OPERAND2_RGB_ARB 0x8592 -#define GL_OPERAND0_ALPHA_ARB 0x8598 -#define GL_OPERAND1_ALPHA_ARB 0x8599 -#define GL_OPERAND2_ALPHA_ARB 0x859A -#define GL_RGB_SCALE_ARB 0x8573 -#define GL_ADD_SIGNED_ARB 0x8574 -#define GL_INTERPOLATE_ARB 0x8575 -#define GL_SUBTRACT_ARB 0x84E7 -#define GL_CONSTANT_ARB 0x8576 -#define GL_PRIMARY_COLOR_ARB 0x8577 -#define GL_PREVIOUS_ARB 0x8578 -#endif - -#ifndef GL_ARB_texture_env_crossbar -#endif - -#ifndef GL_ARB_texture_env_dot3 -#define GL_DOT3_RGB_ARB 0x86AE -#define GL_DOT3_RGBA_ARB 0x86AF -#endif - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_MIRRORED_REPEAT_ARB 0x8370 -#endif - -#ifndef GL_ARB_depth_texture -#define GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B -#endif - -#ifndef GL_ARB_shadow -#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C -#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D -#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E -#endif - -#ifndef GL_ARB_shadow_ambient -#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF -#endif - -#ifndef GL_ARB_window_pos -#endif - -#ifndef GL_ARB_vertex_program -#define GL_COLOR_SUM_ARB 0x8458 -#define GL_VERTEX_PROGRAM_ARB 0x8620 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 -#define GL_PROGRAM_LENGTH_ARB 0x8627 -#define GL_PROGRAM_STRING_ARB 0x8628 -#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define GL_CURRENT_MATRIX_ARB 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B -#define GL_PROGRAM_BINDING_ARB 0x8677 -#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 -#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define GL_PROGRAM_FORMAT_ARB 0x8876 -#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 -#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 -#define GL_MATRIX0_ARB 0x88C0 -#define GL_MATRIX1_ARB 0x88C1 -#define GL_MATRIX2_ARB 0x88C2 -#define GL_MATRIX3_ARB 0x88C3 -#define GL_MATRIX4_ARB 0x88C4 -#define GL_MATRIX5_ARB 0x88C5 -#define GL_MATRIX6_ARB 0x88C6 -#define GL_MATRIX7_ARB 0x88C7 -#define GL_MATRIX8_ARB 0x88C8 -#define GL_MATRIX9_ARB 0x88C9 -#define GL_MATRIX10_ARB 0x88CA -#define GL_MATRIX11_ARB 0x88CB -#define GL_MATRIX12_ARB 0x88CC -#define GL_MATRIX13_ARB 0x88CD -#define GL_MATRIX14_ARB 0x88CE -#define GL_MATRIX15_ARB 0x88CF -#define GL_MATRIX16_ARB 0x88D0 -#define GL_MATRIX17_ARB 0x88D1 -#define GL_MATRIX18_ARB 0x88D2 -#define GL_MATRIX19_ARB 0x88D3 -#define GL_MATRIX20_ARB 0x88D4 -#define GL_MATRIX21_ARB 0x88D5 -#define GL_MATRIX22_ARB 0x88D6 -#define GL_MATRIX23_ARB 0x88D7 -#define GL_MATRIX24_ARB 0x88D8 -#define GL_MATRIX25_ARB 0x88D9 -#define GL_MATRIX26_ARB 0x88DA -#define GL_MATRIX27_ARB 0x88DB -#define GL_MATRIX28_ARB 0x88DC -#define GL_MATRIX29_ARB 0x88DD -#define GL_MATRIX30_ARB 0x88DE -#define GL_MATRIX31_ARB 0x88DF -#endif - -#ifndef GL_ARB_fragment_program -#define GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 -#endif - -#ifndef GL_ARB_vertex_buffer_object -#define GL_BUFFER_SIZE_ARB 0x8764 -#define GL_BUFFER_USAGE_ARB 0x8765 -#define GL_ARRAY_BUFFER_ARB 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define GL_READ_ONLY_ARB 0x88B8 -#define GL_WRITE_ONLY_ARB 0x88B9 -#define GL_READ_WRITE_ARB 0x88BA -#define GL_BUFFER_ACCESS_ARB 0x88BB -#define GL_BUFFER_MAPPED_ARB 0x88BC -#define GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define GL_STREAM_DRAW_ARB 0x88E0 -#define GL_STREAM_READ_ARB 0x88E1 -#define GL_STREAM_COPY_ARB 0x88E2 -#define GL_STATIC_DRAW_ARB 0x88E4 -#define GL_STATIC_READ_ARB 0x88E5 -#define GL_STATIC_COPY_ARB 0x88E6 -#define GL_DYNAMIC_DRAW_ARB 0x88E8 -#define GL_DYNAMIC_READ_ARB 0x88E9 -#define GL_DYNAMIC_COPY_ARB 0x88EA -#endif - -#ifndef GL_ARB_occlusion_query -#define GL_QUERY_COUNTER_BITS_ARB 0x8864 -#define GL_CURRENT_QUERY_ARB 0x8865 -#define GL_QUERY_RESULT_ARB 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define GL_SAMPLES_PASSED_ARB 0x8914 -#endif - -#ifndef GL_ARB_shader_objects -#define GL_PROGRAM_OBJECT_ARB 0x8B40 -#define GL_SHADER_OBJECT_ARB 0x8B48 -#define GL_OBJECT_TYPE_ARB 0x8B4E -#define GL_OBJECT_SUBTYPE_ARB 0x8B4F -#define GL_FLOAT_VEC2_ARB 0x8B50 -#define GL_FLOAT_VEC3_ARB 0x8B51 -#define GL_FLOAT_VEC4_ARB 0x8B52 -#define GL_INT_VEC2_ARB 0x8B53 -#define GL_INT_VEC3_ARB 0x8B54 -#define GL_INT_VEC4_ARB 0x8B55 -#define GL_BOOL_ARB 0x8B56 -#define GL_BOOL_VEC2_ARB 0x8B57 -#define GL_BOOL_VEC3_ARB 0x8B58 -#define GL_BOOL_VEC4_ARB 0x8B59 -#define GL_FLOAT_MAT2_ARB 0x8B5A -#define GL_FLOAT_MAT3_ARB 0x8B5B -#define GL_FLOAT_MAT4_ARB 0x8B5C -#define GL_SAMPLER_1D_ARB 0x8B5D -#define GL_SAMPLER_2D_ARB 0x8B5E -#define GL_SAMPLER_3D_ARB 0x8B5F -#define GL_SAMPLER_CUBE_ARB 0x8B60 -#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 -#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 -#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 -#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 -#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 -#endif - -#ifndef GL_ARB_vertex_shader -#define GL_VERTEX_SHADER_ARB 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B -#endif - -#ifndef GL_ARB_shading_language_100 -#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C -#endif - -#ifndef GL_ARB_texture_non_power_of_two -#endif - -#ifndef GL_ARB_point_sprite -#define GL_POINT_SPRITE_ARB 0x8861 -#define GL_COORD_REPLACE_ARB 0x8862 -#endif - -#ifndef GL_ARB_fragment_program_shadow -#endif - -#ifndef GL_ARB_draw_buffers -#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define GL_DRAW_BUFFER0_ARB 0x8825 -#define GL_DRAW_BUFFER1_ARB 0x8826 -#define GL_DRAW_BUFFER2_ARB 0x8827 -#define GL_DRAW_BUFFER3_ARB 0x8828 -#define GL_DRAW_BUFFER4_ARB 0x8829 -#define GL_DRAW_BUFFER5_ARB 0x882A -#define GL_DRAW_BUFFER6_ARB 0x882B -#define GL_DRAW_BUFFER7_ARB 0x882C -#define GL_DRAW_BUFFER8_ARB 0x882D -#define GL_DRAW_BUFFER9_ARB 0x882E -#define GL_DRAW_BUFFER10_ARB 0x882F -#define GL_DRAW_BUFFER11_ARB 0x8830 -#define GL_DRAW_BUFFER12_ARB 0x8831 -#define GL_DRAW_BUFFER13_ARB 0x8832 -#define GL_DRAW_BUFFER14_ARB 0x8833 -#define GL_DRAW_BUFFER15_ARB 0x8834 -#endif - -#ifndef GL_ARB_texture_rectangle -#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 -#endif - -#ifndef GL_ARB_color_buffer_float -#define GL_RGBA_FLOAT_MODE_ARB 0x8820 -#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A -#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B -#define GL_CLAMP_READ_COLOR_ARB 0x891C -#define GL_FIXED_ONLY_ARB 0x891D -#endif - -#ifndef GL_ARB_half_float_pixel -#define GL_HALF_FLOAT_ARB 0x140B -#endif - -#ifndef GL_ARB_texture_float -#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 -#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 -#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 -#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 -#define GL_RGBA32F_ARB 0x8814 -#define GL_RGB32F_ARB 0x8815 -#define GL_ALPHA32F_ARB 0x8816 -#define GL_INTENSITY32F_ARB 0x8817 -#define GL_LUMINANCE32F_ARB 0x8818 -#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 -#define GL_RGBA16F_ARB 0x881A -#define GL_RGB16F_ARB 0x881B -#define GL_ALPHA16F_ARB 0x881C -#define GL_INTENSITY16F_ARB 0x881D -#define GL_LUMINANCE16F_ARB 0x881E -#define GL_LUMINANCE_ALPHA16F_ARB 0x881F -#endif - -#ifndef GL_ARB_pixel_buffer_object -#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF -#endif - -#ifndef GL_ARB_depth_buffer_float -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#endif - -#ifndef GL_ARB_draw_instanced -#endif - -#ifndef GL_ARB_framebuffer_object -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_STENCIL_INDEX1 0x8D46 -#define GL_STENCIL_INDEX4 0x8D47 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_STENCIL_INDEX16 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#endif - -#ifndef GL_ARB_framebuffer_object_DEPRECATED -#define GL_INDEX 0x8222 -#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 -#endif - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_FRAMEBUFFER_SRGB 0x8DB9 -#endif - -#ifndef GL_ARB_geometry_shader4 -#define GL_LINES_ADJACENCY_ARB 0x000A -#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B -#define GL_TRIANGLES_ADJACENCY_ARB 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D -#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 -#define GL_GEOMETRY_SHADER_ARB 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 -/* reuse GL_MAX_VARYING_COMPONENTS */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ -#endif - -#ifndef GL_ARB_half_float_vertex -#define GL_HALF_FLOAT 0x140B -#endif - -#ifndef GL_ARB_instanced_arrays -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE -#endif - -#ifndef GL_ARB_map_buffer_range -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#endif - -#ifndef GL_ARB_texture_buffer_object -#define GL_TEXTURE_BUFFER_ARB 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E -#endif - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_COMPRESSED_RED_RGTC1 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC -#define GL_COMPRESSED_RG_RGTC2 0x8DBD -#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE -#endif - -#ifndef GL_ARB_texture_rg -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_R16 0x822A -#define GL_RG8 0x822B -#define GL_RG16 0x822C -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#endif - -#ifndef GL_ARB_vertex_array_object -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#endif - -#ifndef GL_ARB_uniform_buffer_object -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#endif - -#ifndef GL_ARB_compatibility -/* ARB_compatibility just defines tokens from core 3.0 */ -#endif - -#ifndef GL_ARB_copy_buffer -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#endif - -#ifndef GL_ARB_shader_texture_lod -#endif - -#ifndef GL_ARB_depth_clamp -#define GL_DEPTH_CLAMP 0x864F -#endif - -#ifndef GL_ARB_draw_elements_base_vertex -#endif - -#ifndef GL_ARB_fragment_coord_conventions -#endif - -#ifndef GL_ARB_provoking_vertex -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F -#endif - -#ifndef GL_ARB_seamless_cube_map -#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F -#endif - -#ifndef GL_ARB_sync -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#endif - -#ifndef GL_ARB_texture_multisample -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#endif - -#ifndef GL_ARB_vertex_array_bgra -/* reuse GL_BGRA */ -#endif - -#ifndef GL_ARB_draw_buffers_blend -#endif - -#ifndef GL_ARB_sample_shading -#define GL_SAMPLE_SHADING_ARB 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 -#endif - -#ifndef GL_ARB_texture_cube_map_array -#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F -#endif - -#ifndef GL_ARB_texture_gather -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F -#endif - -#ifndef GL_ARB_texture_query_lod -#endif - -#ifndef GL_ARB_shading_language_include -#define GL_SHADER_INCLUDE_ARB 0x8DAE -#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 -#define GL_NAMED_STRING_TYPE_ARB 0x8DEA -#endif - -#ifndef GL_ARB_texture_compression_bptc -#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F -#endif - -#ifndef GL_ARB_blend_func_extended -#define GL_SRC1_COLOR 0x88F9 -/* reuse GL_SRC1_ALPHA */ -#define GL_ONE_MINUS_SRC1_COLOR 0x88FA -#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC -#endif - -#ifndef GL_ARB_explicit_attrib_location -#endif - -#ifndef GL_ARB_occlusion_query2 -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#endif - -#ifndef GL_ARB_sampler_objects -#define GL_SAMPLER_BINDING 0x8919 -#endif - -#ifndef GL_ARB_shader_bit_encoding -#endif - -#ifndef GL_ARB_texture_rgb10_a2ui -#define GL_RGB10_A2UI 0x906F -#endif - -#ifndef GL_ARB_texture_swizzle -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 -#endif - -#ifndef GL_ARB_timer_query -#define GL_TIME_ELAPSED 0x88BF -#define GL_TIMESTAMP 0x8E28 -#endif - -#ifndef GL_ARB_vertex_type_2_10_10_10_rev -/* reuse GL_UNSIGNED_INT_2_10_10_10_REV */ -#define GL_INT_2_10_10_10_REV 0x8D9F -#endif - -#ifndef GL_ARB_draw_indirect -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#endif - -#ifndef GL_ARB_gpu_shader5 -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -/* reuse GL_MAX_VERTEX_STREAMS */ -#endif - -#ifndef GL_ARB_gpu_shader_fp64 -/* reuse GL_DOUBLE */ -#define GL_DOUBLE_VEC2 0x8FFC -#define GL_DOUBLE_VEC3 0x8FFD -#define GL_DOUBLE_VEC4 0x8FFE -#define GL_DOUBLE_MAT2 0x8F46 -#define GL_DOUBLE_MAT3 0x8F47 -#define GL_DOUBLE_MAT4 0x8F48 -#define GL_DOUBLE_MAT2x3 0x8F49 -#define GL_DOUBLE_MAT2x4 0x8F4A -#define GL_DOUBLE_MAT3x2 0x8F4B -#define GL_DOUBLE_MAT3x4 0x8F4C -#define GL_DOUBLE_MAT4x2 0x8F4D -#define GL_DOUBLE_MAT4x3 0x8F4E -#endif - -#ifndef GL_ARB_shader_subroutine -#define GL_ACTIVE_SUBROUTINES 0x8DE5 -#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 -#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 -#define GL_MAX_SUBROUTINES 0x8DE7 -#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 -#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A -#define GL_COMPATIBLE_SUBROUTINES 0x8E4B -/* reuse GL_UNIFORM_SIZE */ -/* reuse GL_UNIFORM_NAME_LENGTH */ -#endif - -#ifndef GL_ARB_tessellation_shader -#define GL_PATCHES 0x000E -#define GL_PATCH_VERTICES 0x8E72 -#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 -#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -/* reuse GL_TRIANGLES */ -/* reuse GL_QUADS */ -#define GL_ISOLINES 0x8E7A -/* reuse GL_EQUAL */ -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRACTIONAL_EVEN 0x8E7C -/* reuse GL_CCW */ -/* reuse GL_CW */ -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#endif - -#ifndef GL_ARB_texture_buffer_object_rgb32 -/* reuse GL_RGB32F */ -/* reuse GL_RGB32UI */ -/* reuse GL_RGB32I */ -#endif - -#ifndef GL_ARB_transform_feedback2 -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#endif - -#ifndef GL_ARB_transform_feedback3 -#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 -#define GL_MAX_VERTEX_STREAMS 0x8E71 -#endif - -#ifndef GL_ARB_ES2_compatibility -#define GL_FIXED 0x140C -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#endif - -#ifndef GL_ARB_get_program_binary -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#endif - -#ifndef GL_ARB_separate_shader_objects -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#endif - -#ifndef GL_ARB_shader_precision -#endif - -#ifndef GL_ARB_vertex_attrib_64bit -/* reuse GL_RGB32I */ -/* reuse GL_DOUBLE_VEC2 */ -/* reuse GL_DOUBLE_VEC3 */ -/* reuse GL_DOUBLE_VEC4 */ -/* reuse GL_DOUBLE_MAT2 */ -/* reuse GL_DOUBLE_MAT3 */ -/* reuse GL_DOUBLE_MAT4 */ -/* reuse GL_DOUBLE_MAT2x3 */ -/* reuse GL_DOUBLE_MAT2x4 */ -/* reuse GL_DOUBLE_MAT3x2 */ -/* reuse GL_DOUBLE_MAT3x4 */ -/* reuse GL_DOUBLE_MAT4x2 */ -/* reuse GL_DOUBLE_MAT4x3 */ -#endif - -#ifndef GL_ARB_viewport_array -/* reuse GL_SCISSOR_BOX */ -/* reuse GL_VIEWPORT */ -/* reuse GL_DEPTH_RANGE */ -/* reuse GL_SCISSOR_TEST */ -#define GL_MAX_VIEWPORTS 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE 0x825D -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F -#define GL_UNDEFINED_VERTEX 0x8260 -/* reuse GL_FIRST_VERTEX_CONVENTION */ -/* reuse GL_LAST_VERTEX_CONVENTION */ -/* reuse GL_PROVOKING_VERTEX */ -#endif - -#ifndef GL_ARB_cl_event -#define GL_SYNC_CL_EVENT_ARB 0x8240 -#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 -#endif - -#ifndef GL_ARB_debug_output -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 -#define GL_DEBUG_SOURCE_API_ARB 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A -#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B -#define GL_DEBUG_TYPE_ERROR_ARB 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 -#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 -#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 -#endif - -#ifndef GL_ARB_robustness -/* reuse GL_NO_ERROR */ -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 -#endif - -#ifndef GL_ARB_shader_stencil_export -#endif - -#ifndef GL_ARB_base_instance -#endif - -#ifndef GL_ARB_shading_language_420pack -#endif - -#ifndef GL_ARB_transform_feedback_instanced -#endif - -#ifndef GL_ARB_compressed_texture_pixel_storage -#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 -#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 -#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 -#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A -#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B -#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C -#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D -#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E -#endif - -#ifndef GL_ARB_conservative_depth -#endif - -#ifndef GL_ARB_internalformat_query -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#endif - -#ifndef GL_ARB_map_buffer_alignment -#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC -#endif - -#ifndef GL_ARB_shader_atomic_counters -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#endif - -#ifndef GL_ARB_shader_image_load_store -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_1D 0x904C -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_2D_RECT 0x904F -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_IMAGE_1D_ARRAY 0x9052 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 -#define GL_INT_IMAGE_1D 0x9057 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_2D_RECT 0x905A -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_INT_IMAGE_1D_ARRAY 0x905D -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C -#define GL_MAX_IMAGE_SAMPLES 0x906D -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#endif - -#ifndef GL_ARB_shading_language_packing -#endif - -#ifndef GL_ARB_texture_storage -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#endif - -#ifndef GL_EXT_abgr -#define GL_ABGR_EXT 0x8000 -#endif - -#ifndef GL_EXT_blend_color -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_POLYGON_OFFSET_EXT 0x8037 -#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 -#endif - -#ifndef GL_EXT_texture -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 -#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 -#endif - -#ifndef GL_EXT_texture3D -#define GL_PACK_SKIP_IMAGES_EXT 0x806B -#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_TEXTURE_DEPTH_EXT 0x8071 -#define GL_TEXTURE_WRAP_R_EXT 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_FILTER4_SGIS 0x8146 -#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 -#endif - -#ifndef GL_EXT_subtexture -#endif - -#ifndef GL_EXT_copy_texture -#endif - -#ifndef GL_EXT_histogram -#define GL_HISTOGRAM_EXT 0x8024 -#define GL_PROXY_HISTOGRAM_EXT 0x8025 -#define GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define GL_HISTOGRAM_SINK_EXT 0x802D -#define GL_MINMAX_EXT 0x802E -#define GL_MINMAX_FORMAT_EXT 0x802F -#define GL_MINMAX_SINK_EXT 0x8030 -#define GL_TABLE_TOO_LARGE_EXT 0x8031 -#endif - -#ifndef GL_EXT_convolution -#define GL_CONVOLUTION_1D_EXT 0x8010 -#define GL_CONVOLUTION_2D_EXT 0x8011 -#define GL_SEPARABLE_2D_EXT 0x8012 -#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define GL_REDUCE_EXT 0x8016 -#define GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 -#endif - -#ifndef GL_SGI_color_matrix -#define GL_COLOR_MATRIX_SGI 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB -#endif - -#ifndef GL_SGI_color_table -#define GL_COLOR_TABLE_SGI 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_PIXEL_TEXTURE_SGIS 0x8353 -#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 -#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 -#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_PIXEL_TEX_GEN_SGIX 0x8139 -#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B -#endif - -#ifndef GL_SGIS_texture4D -#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 -#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 -#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 -#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 -#define GL_TEXTURE_4D_SGIS 0x8134 -#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 -#define GL_TEXTURE_4DSIZE_SGIS 0x8136 -#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 -#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 -#define GL_TEXTURE_4D_BINDING_SGIS 0x814F -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD -#endif - -#ifndef GL_EXT_cmyka -#define GL_CMYK_EXT 0x800C -#define GL_CMYKA_EXT 0x800D -#define GL_PACK_CMYK_HINT_EXT 0x800E -#define GL_UNPACK_CMYK_HINT_EXT 0x800F -#endif - -#ifndef GL_EXT_texture_object -#define GL_TEXTURE_PRIORITY_EXT 0x8066 -#define GL_TEXTURE_RESIDENT_EXT 0x8067 -#define GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define GL_TEXTURE_3D_BINDING_EXT 0x806A -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 -#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 -#define GL_LINEAR_DETAIL_SGIS 0x8097 -#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 -#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 -#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A -#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B -#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_LINEAR_SHARPEN_SGIS 0x80AD -#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE -#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF -#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D -#endif - -#ifndef GL_SGIS_multisample -#define GL_MULTISAMPLE_SGIS 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define GL_SAMPLE_MASK_SGIS 0x80A0 -#define GL_1PASS_SGIS 0x80A1 -#define GL_2PASS_0_SGIS 0x80A2 -#define GL_2PASS_1_SGIS 0x80A3 -#define GL_4PASS_0_SGIS 0x80A4 -#define GL_4PASS_1_SGIS 0x80A5 -#define GL_4PASS_2_SGIS 0x80A6 -#define GL_4PASS_3_SGIS 0x80A7 -#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define GL_SAMPLES_SGIS 0x80A9 -#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define GL_SAMPLE_PATTERN_SGIS 0x80AC -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_RESCALE_NORMAL_EXT 0x803A -#endif - -#ifndef GL_EXT_vertex_array -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -#endif - -#ifndef GL_EXT_misc_attribute -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 -#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 -#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 -#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 -#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 -#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 -#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 -#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 -#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 -#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D -#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E -#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F -#endif - -#ifndef GL_SGIX_shadow -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_CLAMP_TO_EDGE_SGIS 0x812F -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_CLAMP_TO_BORDER_SGIS 0x812D -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_BLEND_EQUATION_EXT 0x8009 -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B -#endif - -#ifndef GL_EXT_blend_logic_op -#endif - -#ifndef GL_SGIX_interlace -#define GL_INTERLACE_SGIX 0x8094 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E -#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F -#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 -#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 -#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 -#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 -#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 -#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 -#endif - -#ifndef GL_SGIS_texture_select -#define GL_DUAL_ALPHA4_SGIS 0x8110 -#define GL_DUAL_ALPHA8_SGIS 0x8111 -#define GL_DUAL_ALPHA12_SGIS 0x8112 -#define GL_DUAL_ALPHA16_SGIS 0x8113 -#define GL_DUAL_LUMINANCE4_SGIS 0x8114 -#define GL_DUAL_LUMINANCE8_SGIS 0x8115 -#define GL_DUAL_LUMINANCE12_SGIS 0x8116 -#define GL_DUAL_LUMINANCE16_SGIS 0x8117 -#define GL_DUAL_INTENSITY4_SGIS 0x8118 -#define GL_DUAL_INTENSITY8_SGIS 0x8119 -#define GL_DUAL_INTENSITY12_SGIS 0x811A -#define GL_DUAL_INTENSITY16_SGIS 0x811B -#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C -#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D -#define GL_QUAD_ALPHA4_SGIS 0x811E -#define GL_QUAD_ALPHA8_SGIS 0x811F -#define GL_QUAD_LUMINANCE4_SGIS 0x8120 -#define GL_QUAD_LUMINANCE8_SGIS 0x8121 -#define GL_QUAD_INTENSITY4_SGIS 0x8122 -#define GL_QUAD_INTENSITY8_SGIS 0x8123 -#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 -#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SPRITE_SGIX 0x8148 -#define GL_SPRITE_MODE_SGIX 0x8149 -#define GL_SPRITE_AXIS_SGIX 0x814A -#define GL_SPRITE_TRANSLATION_SGIX 0x814B -#define GL_SPRITE_AXIAL_SGIX 0x814C -#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D -#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E -#endif - -#ifndef GL_EXT_point_parameters -#define GL_POINT_SIZE_MIN_EXT 0x8126 -#define GL_POINT_SIZE_MAX_EXT 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define GL_DISTANCE_ATTENUATION_EXT 0x8129 -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_POINT_SIZE_MIN_SGIS 0x8126 -#define GL_POINT_SIZE_MAX_SGIS 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 -#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 -#endif - -#ifndef GL_SGIX_instruments -#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 -#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C -#endif - -#ifndef GL_SGIX_framezoom -#define GL_FRAMEZOOM_SGIX 0x818B -#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C -#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#endif - -#ifndef GL_FfdMaskSGIX -#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 -#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 -#endif - -#ifndef GL_SGIX_polynomial_ffd -#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 -#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 -#define GL_DEFORMATIONS_MASK_SGIX 0x8196 -#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_REFERENCE_PLANE_SGIX 0x817D -#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E -#endif - -#ifndef GL_SGIX_flush_raster -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_FOG_FUNC_SGIS 0x812A -#define GL_FOG_FUNC_POINTS_SGIS 0x812B -#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_FOG_OFFSET_SGIX 0x8198 -#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 -#endif - -#ifndef GL_HP_image_transform -#define GL_IMAGE_SCALE_X_HP 0x8155 -#define GL_IMAGE_SCALE_Y_HP 0x8156 -#define GL_IMAGE_TRANSLATE_X_HP 0x8157 -#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 -#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 -#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A -#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B -#define GL_IMAGE_MAG_FILTER_HP 0x815C -#define GL_IMAGE_MIN_FILTER_HP 0x815D -#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E -#define GL_CUBIC_HP 0x815F -#define GL_AVERAGE_HP 0x8160 -#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 -#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 -#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_IGNORE_BORDER_HP 0x8150 -#define GL_CONSTANT_BORDER_HP 0x8151 -#define GL_REPLICATE_BORDER_HP 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 -#endif - -#ifndef GL_INGR_palette_buffer -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE -#endif - -#ifndef GL_EXT_color_subtable -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_VERTEX_DATA_HINT_PGI 0x1A22A -#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B -#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C -#define GL_MAX_VERTEX_HINT_PGI 0x1A22D -#define GL_COLOR3_BIT_PGI 0x00010000 -#define GL_COLOR4_BIT_PGI 0x00020000 -#define GL_EDGEFLAG_BIT_PGI 0x00040000 -#define GL_INDEX_BIT_PGI 0x00080000 -#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define GL_NORMAL_BIT_PGI 0x08000000 -#define GL_TEXCOORD1_BIT_PGI 0x10000000 -#define GL_TEXCOORD2_BIT_PGI 0x20000000 -#define GL_TEXCOORD3_BIT_PGI 0x40000000 -#define GL_TEXCOORD4_BIT_PGI 0x80000000 -#define GL_VERTEX23_BIT_PGI 0x00000004 -#define GL_VERTEX4_BIT_PGI 0x00000008 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 -#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD -#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE -#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 -#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 -#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 -#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C -#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D -#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E -#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F -#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 -#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 -#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 -#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 -#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 -#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 -#define GL_CLIP_NEAR_HINT_PGI 0x1A220 -#define GL_CLIP_FAR_HINT_PGI 0x1A221 -#define GL_WIDE_LINE_HINT_PGI 0x1A222 -#define GL_BACK_NORMALS_HINT_PGI 0x1A223 -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_LIST_PRIORITY_SGIX 0x8182 -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_IR_INSTRUMENT1_SGIX 0x817F -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E -#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F -#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SHADOW_AMBIENT_SGIX 0x80BF -#endif - -#ifndef GL_EXT_index_texture -#endif - -#ifndef GL_EXT_index_material -#define GL_INDEX_MATERIAL_EXT 0x81B8 -#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 -#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA -#endif - -#ifndef GL_EXT_index_func -#define GL_INDEX_TEST_EXT 0x81B5 -#define GL_INDEX_TEST_FUNC_EXT 0x81B6 -#define GL_INDEX_TEST_REF_EXT 0x81B7 -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_IUI_V2F_EXT 0x81AD -#define GL_IUI_V3F_EXT 0x81AE -#define GL_IUI_N3F_V2F_EXT 0x81AF -#define GL_IUI_N3F_V3F_EXT 0x81B0 -#define GL_T2F_IUI_V2F_EXT 0x81B1 -#define GL_T2F_IUI_V3F_EXT 0x81B2 -#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 -#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 -#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_CULL_VERTEX_EXT 0x81AA -#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB -#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_YCRCB_422_SGIX 0x81BB -#define GL_YCRCB_444_SGIX 0x81BC -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 -#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 -#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 -#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 -#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 -#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 -#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 -#define GL_LIGHT_ENV_MODE_SGIX 0x8407 -#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 -#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 -#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A -#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B -#define GL_FRAGMENT_LIGHT0_SGIX 0x840C -#define GL_FRAGMENT_LIGHT1_SGIX 0x840D -#define GL_FRAGMENT_LIGHT2_SGIX 0x840E -#define GL_FRAGMENT_LIGHT3_SGIX 0x840F -#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 -#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 -#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 -#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 -#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 -#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 -#endif - -#ifndef GL_WIN_phong_shading -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB -#endif - -#ifndef GL_WIN_specular_fog -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC -#endif - -#ifndef GL_EXT_light_texture -#define GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define GL_FRAGMENT_NORMAL_EXT 0x834A -#define GL_FRAGMENT_COLOR_EXT 0x834C -#define GL_ATTENUATION_EXT 0x834D -#define GL_SHADOW_ATTENUATION_EXT 0x834E -#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define GL_TEXTURE_LIGHT_EXT 0x8350 -#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -/* reuse GL_FRAGMENT_DEPTH_EXT */ -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 -#endif - -#ifndef GL_SGIX_impact_pixel_texture -#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX 0x8184 -#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX 0x8185 -#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX 0x8186 -#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187 -#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188 -#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX 0x8189 -#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX 0x818A -#endif - -#ifndef GL_EXT_bgra -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 -#endif - -#ifndef GL_SGIX_async -#define GL_ASYNC_MARKER_SGIX 0x8329 -#endif - -#ifndef GL_SGIX_async_pixel -#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C -#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D -#define GL_ASYNC_READ_PIXELS_SGIX 0x835E -#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F -#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 -#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 -#endif - -#ifndef GL_SGIX_async_histogram -#define GL_ASYNC_HISTOGRAM_SGIX 0x832C -#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D -#endif - -#ifndef GL_INTEL_texture_scissor -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 -#endif - -#ifndef GL_HP_occlusion_test -#define GL_OCCLUSION_TEST_HP 0x8165 -#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define GL_CUBIC_EXT 0x8334 -#define GL_AVERAGE_EXT 0x8335 -#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define GL_SINGLE_COLOR_EXT 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA -#endif - -#ifndef GL_EXT_secondary_color -#define GL_COLOR_SUM_EXT 0x8458 -#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_PERTURB_EXT 0x85AE -#define GL_TEXTURE_NORMAL_EXT 0x85AF -#endif - -#ifndef GL_EXT_multi_draw_arrays -#endif - -#ifndef GL_EXT_fog_coord -#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define GL_FOG_COORDINATE_EXT 0x8451 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 -#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_SCREEN_COORDINATES_REND 0x8490 -#define GL_INVERTED_SCREEN_W_REND 0x8491 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_TANGENT_ARRAY_EXT 0x8439 -#define GL_BINORMAL_ARRAY_EXT 0x843A -#define GL_CURRENT_TANGENT_EXT 0x843B -#define GL_CURRENT_BINORMAL_EXT 0x843C -#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define GL_MAP1_TANGENT_EXT 0x8444 -#define GL_MAP2_TANGENT_EXT 0x8445 -#define GL_MAP1_BINORMAL_EXT 0x8446 -#define GL_MAP2_BINORMAL_EXT 0x8447 -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_COMBINE_EXT 0x8570 -#define GL_COMBINE_RGB_EXT 0x8571 -#define GL_COMBINE_ALPHA_EXT 0x8572 -#define GL_RGB_SCALE_EXT 0x8573 -#define GL_ADD_SIGNED_EXT 0x8574 -#define GL_INTERPOLATE_EXT 0x8575 -#define GL_CONSTANT_EXT 0x8576 -#define GL_PRIMARY_COLOR_EXT 0x8577 -#define GL_PREVIOUS_EXT 0x8578 -#define GL_SOURCE0_RGB_EXT 0x8580 -#define GL_SOURCE1_RGB_EXT 0x8581 -#define GL_SOURCE2_RGB_EXT 0x8582 -#define GL_SOURCE0_ALPHA_EXT 0x8588 -#define GL_SOURCE1_ALPHA_EXT 0x8589 -#define GL_SOURCE2_ALPHA_EXT 0x858A -#define GL_OPERAND0_RGB_EXT 0x8590 -#define GL_OPERAND1_RGB_EXT 0x8591 -#define GL_OPERAND2_RGB_EXT 0x8592 -#define GL_OPERAND0_ALPHA_EXT 0x8598 -#define GL_OPERAND1_ALPHA_EXT 0x8599 -#define GL_OPERAND2_ALPHA_EXT 0x859A -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_TRANSFORM_HINT_APPLE 0x85B1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_FOG_SCALE_SGIX 0x81FC -#define GL_FOG_SCALE_VALUE_SGIX 0x81FD -#endif - -#ifndef GL_SUNX_constant_data -#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 -#endif - -#ifndef GL_SUN_global_alpha -#define GL_GLOBAL_ALPHA_SUN 0x81D9 -#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA -#endif - -#ifndef GL_SUN_triangle_list -#define GL_RESTART_SUN 0x0001 -#define GL_REPLACE_MIDDLE_SUN 0x0002 -#define GL_REPLACE_OLDEST_SUN 0x0003 -#define GL_TRIANGLE_LIST_SUN 0x81D7 -#define GL_REPLACEMENT_CODE_SUN 0x81D8 -#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define GL_R1UI_V3F_SUN 0x85C4 -#define GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define GL_R1UI_C3F_V3F_SUN 0x85C6 -#define GL_R1UI_N3F_V3F_SUN 0x85C7 -#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define GL_R1UI_T2F_V3F_SUN 0x85C9 -#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB -#endif - -#ifndef GL_SUN_vertex -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB -#endif - -#ifndef GL_INGR_color_clamp -#define GL_RED_MIN_CLAMP_INGR 0x8560 -#define GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define GL_RED_MAX_CLAMP_INGR 0x8564 -#define GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INTERLACE_READ_INGR 0x8568 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_INCR_WRAP_EXT 0x8507 -#define GL_DECR_WRAP_EXT 0x8508 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_422_EXT 0x80CC -#define GL_422_REV_EXT 0x80CD -#define GL_422_AVERAGE_EXT 0x80CE -#define GL_422_REV_AVERAGE_EXT 0x80CF -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NORMAL_MAP_NV 0x8511 -#define GL_REFLECTION_MAP_NV 0x8512 -#endif - -#ifndef GL_EXT_texture_cube_map -#define GL_NORMAL_MAP_EXT 0x8511 -#define GL_REFLECTION_MAP_EXT 0x8512 -#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_WRAP_BORDER_SUN 0x81D4 -#endif - -#ifndef GL_EXT_texture_env_add -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH -#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX -#define GL_MODELVIEW1_MATRIX_EXT 0x8506 -#define GL_VERTEX_WEIGHTING_EXT 0x8509 -#define GL_MODELVIEW0_EXT GL_MODELVIEW -#define GL_MODELVIEW1_EXT 0x850A -#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_MAX_SHININESS_NV 0x8504 -#define GL_MAX_SPOT_EXPONENT_NV 0x8505 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 -#endif - -#ifndef GL_NV_register_combiners -#define GL_REGISTER_COMBINERS_NV 0x8522 -#define GL_VARIABLE_A_NV 0x8523 -#define GL_VARIABLE_B_NV 0x8524 -#define GL_VARIABLE_C_NV 0x8525 -#define GL_VARIABLE_D_NV 0x8526 -#define GL_VARIABLE_E_NV 0x8527 -#define GL_VARIABLE_F_NV 0x8528 -#define GL_VARIABLE_G_NV 0x8529 -#define GL_CONSTANT_COLOR0_NV 0x852A -#define GL_CONSTANT_COLOR1_NV 0x852B -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_SPARE0_NV 0x852E -#define GL_SPARE1_NV 0x852F -#define GL_DISCARD_NV 0x8530 -#define GL_E_TIMES_F_NV 0x8531 -#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define GL_UNSIGNED_IDENTITY_NV 0x8536 -#define GL_UNSIGNED_INVERT_NV 0x8537 -#define GL_EXPAND_NORMAL_NV 0x8538 -#define GL_EXPAND_NEGATE_NV 0x8539 -#define GL_HALF_BIAS_NORMAL_NV 0x853A -#define GL_HALF_BIAS_NEGATE_NV 0x853B -#define GL_SIGNED_IDENTITY_NV 0x853C -#define GL_SIGNED_NEGATE_NV 0x853D -#define GL_SCALE_BY_TWO_NV 0x853E -#define GL_SCALE_BY_FOUR_NV 0x853F -#define GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define GL_COMBINER_INPUT_NV 0x8542 -#define GL_COMBINER_MAPPING_NV 0x8543 -#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define GL_COMBINER_MUX_SUM_NV 0x8547 -#define GL_COMBINER_SCALE_NV 0x8548 -#define GL_COMBINER_BIAS_NV 0x8549 -#define GL_COMBINER_AB_OUTPUT_NV 0x854A -#define GL_COMBINER_CD_OUTPUT_NV 0x854B -#define GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define GL_COLOR_SUM_CLAMP_NV 0x854F -#define GL_COMBINER0_NV 0x8550 -#define GL_COMBINER1_NV 0x8551 -#define GL_COMBINER2_NV 0x8552 -#define GL_COMBINER3_NV 0x8553 -#define GL_COMBINER4_NV 0x8554 -#define GL_COMBINER5_NV 0x8555 -#define GL_COMBINER6_NV 0x8556 -#define GL_COMBINER7_NV 0x8557 -/* reuse GL_TEXTURE0_ARB */ -/* reuse GL_TEXTURE1_ARB */ -/* reuse GL_ZERO */ -/* reuse GL_NONE */ -/* reuse GL_FOG */ -#endif - -#ifndef GL_NV_fog_distance -#define GL_FOG_DISTANCE_MODE_NV 0x855A -#define GL_EYE_RADIAL_NV 0x855B -#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C -/* reuse GL_EYE_PLANE */ -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_EMBOSS_LIGHT_NV 0x855D -#define GL_EMBOSS_CONSTANT_NV 0x855E -#define GL_EMBOSS_MAP_NV 0x855F -#endif - -#ifndef GL_NV_blend_square -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_COMBINE4_NV 0x8503 -#define GL_SOURCE3_RGB_NV 0x8583 -#define GL_SOURCE3_ALPHA_NV 0x858B -#define GL_OPERAND3_RGB_NV 0x8593 -#define GL_OPERAND3_ALPHA_NV 0x859B -#endif - -#ifndef GL_MESA_resize_buffers -#endif - -#ifndef GL_MESA_window_pos -#endif - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_CULL_VERTEX_IBM 103050 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_VERTEX_ARRAY_LIST_IBM 103070 -#define GL_NORMAL_ARRAY_LIST_IBM 103071 -#define GL_COLOR_ARRAY_LIST_IBM 103072 -#define GL_INDEX_ARRAY_LIST_IBM 103073 -#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 -#endif - -#ifndef GL_SGIX_subsample -#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 -#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 -#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 -#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 -#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_YCRCB_SGIX 0x8318 -#define GL_YCRCBA_SGIX 0x8319 -#endif - -#ifndef GL_SGI_depth_pass_instrument -#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 -#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 -#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_MULTISAMPLE_3DFX 0x86B2 -#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define GL_SAMPLES_3DFX 0x86B4 -#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 -#endif - -#ifndef GL_3DFX_tbuffer -#endif - -#ifndef GL_EXT_multisample -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define GL_SAMPLE_MASK_EXT 0x80A0 -#define GL_1PASS_EXT 0x80A1 -#define GL_2PASS_0_EXT 0x80A2 -#define GL_2PASS_1_EXT 0x80A3 -#define GL_4PASS_0_EXT 0x80A4 -#define GL_4PASS_1_EXT 0x80A5 -#define GL_4PASS_2_EXT 0x80A6 -#define GL_4PASS_3_EXT 0x80A7 -#define GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define GL_SAMPLES_EXT 0x80A9 -#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define GL_SAMPLE_PATTERN_EXT 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_CONVOLUTION_HINT_SGIX 0x8316 -#endif - -#ifndef GL_SGIX_resample -#define GL_PACK_RESAMPLE_SGIX 0x842C -#define GL_UNPACK_RESAMPLE_SGIX 0x842D -#define GL_RESAMPLE_REPLICATE_SGIX 0x842E -#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F -#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 -#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 -#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 -#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 -#define GL_EYE_POINT_SGIS 0x81F4 -#define GL_OBJECT_POINT_SGIS 0x81F5 -#define GL_EYE_LINE_SGIS 0x81F6 -#define GL_OBJECT_LINE_SGIS 0x81F7 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF -#endif - -#ifndef GL_EXT_texture_env_dot3 -#define GL_DOT3_RGB_EXT 0x8740 -#define GL_DOT3_RGBA_EXT 0x8741 -#endif - -#ifndef GL_ATI_texture_mirror_once -#define GL_MIRROR_CLAMP_ATI 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 -#endif - -#ifndef GL_NV_fence -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -#endif - -#ifndef GL_IBM_texture_mirrored_repeat -#define GL_MIRRORED_REPEAT_IBM 0x8370 -#endif - -#ifndef GL_NV_evaluators -#define GL_EVAL_2D_NV 0x86C0 -#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define GL_MAP_TESSELLATION_NV 0x86C2 -#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 -#endif - -#ifndef GL_NV_packed_depth_stencil -#define GL_DEPTH_STENCIL_NV 0x84F9 -#define GL_UNSIGNED_INT_24_8_NV 0x84FA -#endif - -#ifndef GL_NV_register_combiners2 -#define GL_PER_STAGE_CONSTANTS_NV 0x8535 -#endif - -#ifndef GL_NV_texture_compression_vtc -#endif - -#ifndef GL_NV_texture_rectangle -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 -#endif - -#ifndef GL_NV_texture_shader -#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_SHADER_CONSISTENT_NV 0x86DD -#define GL_TEXTURE_SHADER_NV 0x86DE -#define GL_SHADER_OPERATION_NV 0x86DF -#define GL_CULL_MODES_NV 0x86E0 -#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV -#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV -#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV -#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define GL_CONST_EYE_NV 0x86E5 -#define GL_PASS_THROUGH_NV 0x86E6 -#define GL_CULL_FRAGMENT_NV 0x86E7 -#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define GL_DOT_PRODUCT_NV 0x86EC -#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define GL_HI_SCALE_NV 0x870E -#define GL_LO_SCALE_NV 0x870F -#define GL_DS_SCALE_NV 0x8710 -#define GL_DT_SCALE_NV 0x8711 -#define GL_MAGNITUDE_SCALE_NV 0x8712 -#define GL_VIBRANCE_SCALE_NV 0x8713 -#define GL_HI_BIAS_NV 0x8714 -#define GL_LO_BIAS_NV 0x8715 -#define GL_DS_BIAS_NV 0x8716 -#define GL_DT_BIAS_NV 0x8717 -#define GL_MAGNITUDE_BIAS_NV 0x8718 -#define GL_VIBRANCE_BIAS_NV 0x8719 -#define GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define GL_TEXTURE_HI_SIZE_NV 0x871B -#define GL_TEXTURE_LO_SIZE_NV 0x871C -#define GL_TEXTURE_DS_SIZE_NV 0x871D -#define GL_TEXTURE_DT_SIZE_NV 0x871E -#define GL_TEXTURE_MAG_SIZE_NV 0x871F -#endif - -#ifndef GL_NV_texture_shader2 -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 -#endif - -#ifndef GL_NV_vertex_program -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define GL_CURRENT_ATTRIB_NV 0x8626 -#define GL_PROGRAM_LENGTH_NV 0x8627 -#define GL_PROGRAM_STRING_NV 0x8628 -#define GL_MODELVIEW_PROJECTION_NV 0x8629 -#define GL_IDENTITY_NV 0x862A -#define GL_INVERSE_NV 0x862B -#define GL_TRANSPOSE_NV 0x862C -#define GL_INVERSE_TRANSPOSE_NV 0x862D -#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define GL_MAX_TRACK_MATRICES_NV 0x862F -#define GL_MATRIX0_NV 0x8630 -#define GL_MATRIX1_NV 0x8631 -#define GL_MATRIX2_NV 0x8632 -#define GL_MATRIX3_NV 0x8633 -#define GL_MATRIX4_NV 0x8634 -#define GL_MATRIX5_NV 0x8635 -#define GL_MATRIX6_NV 0x8636 -#define GL_MATRIX7_NV 0x8637 -#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define GL_CURRENT_MATRIX_NV 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define GL_PROGRAM_PARAMETER_NV 0x8644 -#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define GL_PROGRAM_TARGET_NV 0x8646 -#define GL_PROGRAM_RESIDENT_NV 0x8647 -#define GL_TRACK_MATRIX_NV 0x8648 -#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F -#endif - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 -#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A -#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B -#endif - -#ifndef GL_SGIX_scalebias_hint -#define GL_SCALEBIAS_HINT_SGIX 0x8322 -#endif - -#ifndef GL_OML_interlace -#define GL_INTERLACE_OML 0x8980 -#define GL_INTERLACE_READ_OML 0x8981 -#endif - -#ifndef GL_OML_subsample -#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 -#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 -#endif - -#ifndef GL_OML_resample -#define GL_PACK_RESAMPLE_OML 0x8984 -#define GL_UNPACK_RESAMPLE_OML 0x8985 -#define GL_RESAMPLE_REPLICATE_OML 0x8986 -#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 -#define GL_RESAMPLE_AVERAGE_OML 0x8988 -#define GL_RESAMPLE_DECIMATE_OML 0x8989 -#endif - -#ifndef GL_NV_copy_depth_to_color -#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E -#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F -#endif - -#ifndef GL_ATI_envmap_bumpmap -#define GL_BUMP_ROT_MATRIX_ATI 0x8775 -#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 -#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 -#define GL_BUMP_TEX_UNITS_ATI 0x8778 -#define GL_DUDV_ATI 0x8779 -#define GL_DU8DV8_ATI 0x877A -#define GL_BUMP_ENVMAP_ATI 0x877B -#define GL_BUMP_TARGET_ATI 0x877C -#endif - -#ifndef GL_ATI_fragment_shader -#define GL_FRAGMENT_SHADER_ATI 0x8920 -#define GL_REG_0_ATI 0x8921 -#define GL_REG_1_ATI 0x8922 -#define GL_REG_2_ATI 0x8923 -#define GL_REG_3_ATI 0x8924 -#define GL_REG_4_ATI 0x8925 -#define GL_REG_5_ATI 0x8926 -#define GL_REG_6_ATI 0x8927 -#define GL_REG_7_ATI 0x8928 -#define GL_REG_8_ATI 0x8929 -#define GL_REG_9_ATI 0x892A -#define GL_REG_10_ATI 0x892B -#define GL_REG_11_ATI 0x892C -#define GL_REG_12_ATI 0x892D -#define GL_REG_13_ATI 0x892E -#define GL_REG_14_ATI 0x892F -#define GL_REG_15_ATI 0x8930 -#define GL_REG_16_ATI 0x8931 -#define GL_REG_17_ATI 0x8932 -#define GL_REG_18_ATI 0x8933 -#define GL_REG_19_ATI 0x8934 -#define GL_REG_20_ATI 0x8935 -#define GL_REG_21_ATI 0x8936 -#define GL_REG_22_ATI 0x8937 -#define GL_REG_23_ATI 0x8938 -#define GL_REG_24_ATI 0x8939 -#define GL_REG_25_ATI 0x893A -#define GL_REG_26_ATI 0x893B -#define GL_REG_27_ATI 0x893C -#define GL_REG_28_ATI 0x893D -#define GL_REG_29_ATI 0x893E -#define GL_REG_30_ATI 0x893F -#define GL_REG_31_ATI 0x8940 -#define GL_CON_0_ATI 0x8941 -#define GL_CON_1_ATI 0x8942 -#define GL_CON_2_ATI 0x8943 -#define GL_CON_3_ATI 0x8944 -#define GL_CON_4_ATI 0x8945 -#define GL_CON_5_ATI 0x8946 -#define GL_CON_6_ATI 0x8947 -#define GL_CON_7_ATI 0x8948 -#define GL_CON_8_ATI 0x8949 -#define GL_CON_9_ATI 0x894A -#define GL_CON_10_ATI 0x894B -#define GL_CON_11_ATI 0x894C -#define GL_CON_12_ATI 0x894D -#define GL_CON_13_ATI 0x894E -#define GL_CON_14_ATI 0x894F -#define GL_CON_15_ATI 0x8950 -#define GL_CON_16_ATI 0x8951 -#define GL_CON_17_ATI 0x8952 -#define GL_CON_18_ATI 0x8953 -#define GL_CON_19_ATI 0x8954 -#define GL_CON_20_ATI 0x8955 -#define GL_CON_21_ATI 0x8956 -#define GL_CON_22_ATI 0x8957 -#define GL_CON_23_ATI 0x8958 -#define GL_CON_24_ATI 0x8959 -#define GL_CON_25_ATI 0x895A -#define GL_CON_26_ATI 0x895B -#define GL_CON_27_ATI 0x895C -#define GL_CON_28_ATI 0x895D -#define GL_CON_29_ATI 0x895E -#define GL_CON_30_ATI 0x895F -#define GL_CON_31_ATI 0x8960 -#define GL_MOV_ATI 0x8961 -#define GL_ADD_ATI 0x8963 -#define GL_MUL_ATI 0x8964 -#define GL_SUB_ATI 0x8965 -#define GL_DOT3_ATI 0x8966 -#define GL_DOT4_ATI 0x8967 -#define GL_MAD_ATI 0x8968 -#define GL_LERP_ATI 0x8969 -#define GL_CND_ATI 0x896A -#define GL_CND0_ATI 0x896B -#define GL_DOT2_ADD_ATI 0x896C -#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define GL_NUM_PASSES_ATI 0x8970 -#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define GL_SWIZZLE_STR_ATI 0x8976 -#define GL_SWIZZLE_STQ_ATI 0x8977 -#define GL_SWIZZLE_STR_DR_ATI 0x8978 -#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define GL_SWIZZLE_STRQ_ATI 0x897A -#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B -#define GL_RED_BIT_ATI 0x00000001 -#define GL_GREEN_BIT_ATI 0x00000002 -#define GL_BLUE_BIT_ATI 0x00000004 -#define GL_2X_BIT_ATI 0x00000001 -#define GL_4X_BIT_ATI 0x00000002 -#define GL_8X_BIT_ATI 0x00000004 -#define GL_HALF_BIT_ATI 0x00000008 -#define GL_QUARTER_BIT_ATI 0x00000010 -#define GL_EIGHTH_BIT_ATI 0x00000020 -#define GL_SATURATE_BIT_ATI 0x00000040 -#define GL_COMP_BIT_ATI 0x00000002 -#define GL_NEGATE_BIT_ATI 0x00000004 -#define GL_BIAS_BIT_ATI 0x00000008 -#endif - -#ifndef GL_ATI_pn_triangles -#define GL_PN_TRIANGLES_ATI 0x87F0 -#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 -#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 -#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 -#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 -#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 -#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 -#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 -#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 -#endif - -#ifndef GL_ATI_vertex_array_object -#define GL_STATIC_ATI 0x8760 -#define GL_DYNAMIC_ATI 0x8761 -#define GL_PRESERVE_ATI 0x8762 -#define GL_DISCARD_ATI 0x8763 -#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 -#endif - -#ifndef GL_EXT_vertex_shader -#define GL_VERTEX_SHADER_EXT 0x8780 -#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define GL_OP_INDEX_EXT 0x8782 -#define GL_OP_NEGATE_EXT 0x8783 -#define GL_OP_DOT3_EXT 0x8784 -#define GL_OP_DOT4_EXT 0x8785 -#define GL_OP_MUL_EXT 0x8786 -#define GL_OP_ADD_EXT 0x8787 -#define GL_OP_MADD_EXT 0x8788 -#define GL_OP_FRAC_EXT 0x8789 -#define GL_OP_MAX_EXT 0x878A -#define GL_OP_MIN_EXT 0x878B -#define GL_OP_SET_GE_EXT 0x878C -#define GL_OP_SET_LT_EXT 0x878D -#define GL_OP_CLAMP_EXT 0x878E -#define GL_OP_FLOOR_EXT 0x878F -#define GL_OP_ROUND_EXT 0x8790 -#define GL_OP_EXP_BASE_2_EXT 0x8791 -#define GL_OP_LOG_BASE_2_EXT 0x8792 -#define GL_OP_POWER_EXT 0x8793 -#define GL_OP_RECIP_EXT 0x8794 -#define GL_OP_RECIP_SQRT_EXT 0x8795 -#define GL_OP_SUB_EXT 0x8796 -#define GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define GL_OP_MOV_EXT 0x8799 -#define GL_OUTPUT_VERTEX_EXT 0x879A -#define GL_OUTPUT_COLOR0_EXT 0x879B -#define GL_OUTPUT_COLOR1_EXT 0x879C -#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define GL_OUTPUT_FOG_EXT 0x87BD -#define GL_SCALAR_EXT 0x87BE -#define GL_VECTOR_EXT 0x87BF -#define GL_MATRIX_EXT 0x87C0 -#define GL_VARIANT_EXT 0x87C1 -#define GL_INVARIANT_EXT 0x87C2 -#define GL_LOCAL_CONSTANT_EXT 0x87C3 -#define GL_LOCAL_EXT 0x87C4 -#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define GL_X_EXT 0x87D5 -#define GL_Y_EXT 0x87D6 -#define GL_Z_EXT 0x87D7 -#define GL_W_EXT 0x87D8 -#define GL_NEGATIVE_X_EXT 0x87D9 -#define GL_NEGATIVE_Y_EXT 0x87DA -#define GL_NEGATIVE_Z_EXT 0x87DB -#define GL_NEGATIVE_W_EXT 0x87DC -#define GL_ZERO_EXT 0x87DD -#define GL_ONE_EXT 0x87DE -#define GL_NEGATIVE_ONE_EXT 0x87DF -#define GL_NORMALIZED_RANGE_EXT 0x87E0 -#define GL_FULL_RANGE_EXT 0x87E1 -#define GL_CURRENT_VERTEX_EXT 0x87E2 -#define GL_MVP_MATRIX_EXT 0x87E3 -#define GL_VARIANT_VALUE_EXT 0x87E4 -#define GL_VARIANT_DATATYPE_EXT 0x87E5 -#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define GL_VARIANT_ARRAY_EXT 0x87E8 -#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define GL_INVARIANT_VALUE_EXT 0x87EA -#define GL_INVARIANT_DATATYPE_EXT 0x87EB -#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED -#endif - -#ifndef GL_ATI_vertex_streams -#define GL_MAX_VERTEX_STREAMS_ATI 0x876B -#define GL_VERTEX_STREAM0_ATI 0x876C -#define GL_VERTEX_STREAM1_ATI 0x876D -#define GL_VERTEX_STREAM2_ATI 0x876E -#define GL_VERTEX_STREAM3_ATI 0x876F -#define GL_VERTEX_STREAM4_ATI 0x8770 -#define GL_VERTEX_STREAM5_ATI 0x8771 -#define GL_VERTEX_STREAM6_ATI 0x8772 -#define GL_VERTEX_STREAM7_ATI 0x8773 -#define GL_VERTEX_SOURCE_ATI 0x8774 -#endif - -#ifndef GL_ATI_element_array -#define GL_ELEMENT_ARRAY_ATI 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A -#endif - -#ifndef GL_SUN_mesh_array -#define GL_QUAD_MESH_SUN 0x8614 -#define GL_TRIANGLE_MESH_SUN 0x8615 -#endif - -#ifndef GL_SUN_slice_accum -#define GL_SLICE_ACCUM_SUN 0x85CC -#endif - -#ifndef GL_NV_multisample_filter_hint -#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 -#endif - -#ifndef GL_NV_depth_clamp -#define GL_DEPTH_CLAMP_NV 0x864F -#endif - -#ifndef GL_NV_occlusion_query -#define GL_PIXEL_COUNTER_BITS_NV 0x8864 -#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 -#define GL_PIXEL_COUNT_NV 0x8866 -#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 -#endif - -#ifndef GL_NV_point_sprite -#define GL_POINT_SPRITE_NV 0x8861 -#define GL_COORD_REPLACE_NV 0x8862 -#define GL_POINT_SPRITE_R_MODE_NV 0x8863 -#endif - -#ifndef GL_NV_texture_shader3 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 -#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 -#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 -#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 -#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 -#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A -#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B -#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C -#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D -#define GL_HILO8_NV 0x885E -#define GL_SIGNED_HILO8_NV 0x885F -#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 -#endif - -#ifndef GL_NV_vertex_program1_1 -#endif - -#ifndef GL_EXT_shadow_funcs -#endif - -#ifndef GL_EXT_stencil_two_side -#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 -#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 -#endif - -#ifndef GL_ATI_text_fragment_shader -#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 -#endif - -#ifndef GL_APPLE_client_storage -#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 -#endif - -#ifndef GL_APPLE_element_array -#define GL_ELEMENT_ARRAY_APPLE 0x8A0C -#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D -#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E -#endif - -#ifndef GL_APPLE_fence -#define GL_DRAW_PIXELS_APPLE 0x8A0A -#define GL_FENCE_APPLE 0x8A0B -#endif - -#ifndef GL_APPLE_vertex_array_object -#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 -#endif - -#ifndef GL_APPLE_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E -#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F -#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 -#define GL_STORAGE_CLIENT_APPLE 0x85B4 -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF -#endif - -#ifndef GL_APPLE_ycbcr_422 -#define GL_YCBCR_422_APPLE 0x85B9 -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#endif - -#ifndef GL_S3_s3tc -#define GL_RGB_S3TC 0x83A0 -#define GL_RGB4_S3TC 0x83A1 -#define GL_RGBA_S3TC 0x83A2 -#define GL_RGBA4_S3TC 0x83A3 -#endif - -#ifndef GL_ATI_draw_buffers -#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 -#define GL_DRAW_BUFFER0_ATI 0x8825 -#define GL_DRAW_BUFFER1_ATI 0x8826 -#define GL_DRAW_BUFFER2_ATI 0x8827 -#define GL_DRAW_BUFFER3_ATI 0x8828 -#define GL_DRAW_BUFFER4_ATI 0x8829 -#define GL_DRAW_BUFFER5_ATI 0x882A -#define GL_DRAW_BUFFER6_ATI 0x882B -#define GL_DRAW_BUFFER7_ATI 0x882C -#define GL_DRAW_BUFFER8_ATI 0x882D -#define GL_DRAW_BUFFER9_ATI 0x882E -#define GL_DRAW_BUFFER10_ATI 0x882F -#define GL_DRAW_BUFFER11_ATI 0x8830 -#define GL_DRAW_BUFFER12_ATI 0x8831 -#define GL_DRAW_BUFFER13_ATI 0x8832 -#define GL_DRAW_BUFFER14_ATI 0x8833 -#define GL_DRAW_BUFFER15_ATI 0x8834 -#endif - -#ifndef GL_ATI_pixel_format_float -#define GL_TYPE_RGBA_FLOAT_ATI 0x8820 -#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 -#endif - -#ifndef GL_ATI_texture_env_combine3 -#define GL_MODULATE_ADD_ATI 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 -#define GL_MODULATE_SUBTRACT_ATI 0x8746 -#endif - -#ifndef GL_ATI_texture_float -#define GL_RGBA_FLOAT32_ATI 0x8814 -#define GL_RGB_FLOAT32_ATI 0x8815 -#define GL_ALPHA_FLOAT32_ATI 0x8816 -#define GL_INTENSITY_FLOAT32_ATI 0x8817 -#define GL_LUMINANCE_FLOAT32_ATI 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 -#define GL_RGBA_FLOAT16_ATI 0x881A -#define GL_RGB_FLOAT16_ATI 0x881B -#define GL_ALPHA_FLOAT16_ATI 0x881C -#define GL_INTENSITY_FLOAT16_ATI 0x881D -#define GL_LUMINANCE_FLOAT16_ATI 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F -#endif - -#ifndef GL_NV_float_buffer -#define GL_FLOAT_R_NV 0x8880 -#define GL_FLOAT_RG_NV 0x8881 -#define GL_FLOAT_RGB_NV 0x8882 -#define GL_FLOAT_RGBA_NV 0x8883 -#define GL_FLOAT_R16_NV 0x8884 -#define GL_FLOAT_R32_NV 0x8885 -#define GL_FLOAT_RG16_NV 0x8886 -#define GL_FLOAT_RG32_NV 0x8887 -#define GL_FLOAT_RGB16_NV 0x8888 -#define GL_FLOAT_RGB32_NV 0x8889 -#define GL_FLOAT_RGBA16_NV 0x888A -#define GL_FLOAT_RGBA32_NV 0x888B -#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define GL_FLOAT_RGBA_MODE_NV 0x888E -#endif - -#ifndef GL_NV_fragment_program -#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 -#define GL_FRAGMENT_PROGRAM_NV 0x8870 -#define GL_MAX_TEXTURE_COORDS_NV 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 -#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 -#define GL_PROGRAM_ERROR_STRING_NV 0x8874 -#endif - -#ifndef GL_NV_half_float -#define GL_HALF_FLOAT_NV 0x140B -#endif - -#ifndef GL_NV_pixel_data_range -#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 -#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 -#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A -#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B -#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C -#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D -#endif - -#ifndef GL_NV_primitive_restart -#define GL_PRIMITIVE_RESTART_NV 0x8558 -#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 -#endif - -#ifndef GL_NV_texture_expand_normal -#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F -#endif - -#ifndef GL_NV_vertex_program2 -#endif - -#ifndef GL_ATI_map_object_buffer -#endif - -#ifndef GL_ATI_separate_stencil -#define GL_STENCIL_BACK_FUNC_ATI 0x8800 -#define GL_STENCIL_BACK_FAIL_ATI 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 -#endif - -#ifndef GL_ATI_vertex_attrib_array_object -#endif - -#ifndef GL_OES_read_format -#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B -#endif - -#ifndef GL_EXT_depth_bounds_test -#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 -#define GL_DEPTH_BOUNDS_EXT 0x8891 -#endif - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_MIRROR_CLAMP_EXT 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 -#endif - -#ifndef GL_EXT_blend_equation_separate -#define GL_BLEND_EQUATION_RGB_EXT 0x8009 -#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D -#endif - -#ifndef GL_MESA_pack_invert -#define GL_PACK_INVERT_MESA 0x8758 -#endif - -#ifndef GL_MESA_ycbcr_texture -#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB -#define GL_YCBCR_MESA 0x8757 -#endif - -#ifndef GL_EXT_pixel_buffer_object -#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF -#endif - -#ifndef GL_NV_fragment_program_option -#endif - -#ifndef GL_NV_fragment_program2 -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 -#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 -#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 -#endif - -#ifndef GL_NV_vertex_program2_option -/* reuse GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ -/* reuse GL_MAX_PROGRAM_CALL_DEPTH_NV */ -#endif - -#ifndef GL_NV_vertex_program3 -/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ -#endif - -#ifndef GL_EXT_framebuffer_object -#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 -#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 -#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 -#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 -#define GL_FRAMEBUFFER_EXT 0x8D40 -#define GL_RENDERBUFFER_EXT 0x8D41 -#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 -#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 -#define GL_STENCIL_INDEX1_EXT 0x8D46 -#define GL_STENCIL_INDEX4_EXT 0x8D47 -#define GL_STENCIL_INDEX8_EXT 0x8D48 -#define GL_STENCIL_INDEX16_EXT 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 -#endif - -#ifndef GL_GREMEDY_string_marker -#endif - -#ifndef GL_EXT_packed_depth_stencil -#define GL_DEPTH_STENCIL_EXT 0x84F9 -#define GL_UNSIGNED_INT_24_8_EXT 0x84FA -#define GL_DEPTH24_STENCIL8_EXT 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 -#endif - -#ifndef GL_EXT_stencil_clear_tag -#define GL_STENCIL_TAG_BITS_EXT 0x88F2 -#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 -#endif - -#ifndef GL_EXT_texture_sRGB -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB8_EXT 0x8C41 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 -#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 -#define GL_SLUMINANCE_EXT 0x8C46 -#define GL_SLUMINANCE8_EXT 0x8C47 -#define GL_COMPRESSED_SRGB_EXT 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 -#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#endif - -#ifndef GL_EXT_framebuffer_blit -#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT -#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA -#endif - -#ifndef GL_EXT_framebuffer_multisample -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -#endif - -#ifndef GL_MESAX_texture_stack -#define GL_TEXTURE_1D_STACK_MESAX 0x8759 -#define GL_TEXTURE_2D_STACK_MESAX 0x875A -#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B -#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C -#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D -#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E -#endif - -#ifndef GL_EXT_timer_query -#define GL_TIME_ELAPSED_EXT 0x88BF -#endif - -#ifndef GL_EXT_gpu_program_parameters -#endif - -#ifndef GL_APPLE_flush_buffer_range -#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 -#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 -#endif - -#ifndef GL_NV_gpu_program4 -#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 -#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 -#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 -#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 -#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 -#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 -#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 -#endif - -#ifndef GL_NV_geometry_program4 -#define GL_LINES_ADJACENCY_EXT 0x000A -#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B -#define GL_TRIANGLES_ADJACENCY_EXT 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D -#define GL_GEOMETRY_PROGRAM_NV 0x8C26 -#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 -#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 -#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 -#endif - -#ifndef GL_EXT_geometry_shader4 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -/* reuse GL_GEOMETRY_VERTICES_OUT_EXT */ -/* reuse GL_GEOMETRY_INPUT_TYPE_EXT */ -/* reuse GL_GEOMETRY_OUTPUT_TYPE_EXT */ -/* reuse GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT */ -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE -#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 -/* reuse GL_LINES_ADJACENCY_EXT */ -/* reuse GL_LINE_STRIP_ADJACENCY_EXT */ -/* reuse GL_TRIANGLES_ADJACENCY_EXT */ -/* reuse GL_TRIANGLE_STRIP_ADJACENCY_EXT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ -/* reuse GL_PROGRAM_POINT_SIZE_EXT */ -#endif - -#ifndef GL_NV_vertex_program4 -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD -#endif - -#ifndef GL_EXT_gpu_shader4 -#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 -#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 -#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 -#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 -#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 -#define GL_INT_SAMPLER_1D_EXT 0x8DC9 -#define GL_INT_SAMPLER_2D_EXT 0x8DCA -#define GL_INT_SAMPLER_3D_EXT 0x8DCB -#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC -#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD -#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 -#endif - -#ifndef GL_EXT_draw_instanced -#endif - -#ifndef GL_EXT_packed_float -#define GL_R11F_G11F_B10F_EXT 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B -#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C -#endif - -#ifndef GL_EXT_texture_array -#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 -#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D -#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF -#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ -#endif - -#ifndef GL_EXT_texture_buffer_object -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E -#endif - -#ifndef GL_EXT_texture_compression_latc -#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 -#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 -#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 -#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 -#endif - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC -#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD -#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE -#endif - -#ifndef GL_EXT_texture_shared_exponent -#define GL_RGB9_E5_EXT 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E -#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F -#endif - -#ifndef GL_NV_depth_buffer_float -#define GL_DEPTH_COMPONENT32F_NV 0x8DAB -#define GL_DEPTH32F_STENCIL8_NV 0x8DAC -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD -#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF -#endif - -#ifndef GL_NV_fragment_program4 -#endif - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB -#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 -#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 -#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 -#endif - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA -#endif - -#ifndef GL_NV_geometry_shader4 -#endif - -#ifndef GL_NV_parameter_buffer_object -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 -#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 -#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 -#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 -#endif - -#ifndef GL_EXT_draw_buffers2 -#endif - -#ifndef GL_NV_transform_feedback -#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 -#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 -#define GL_TEXTURE_COORD_NV 0x8C79 -#define GL_CLIP_DISTANCE_NV 0x8C7A -#define GL_VERTEX_ID_NV 0x8C7B -#define GL_PRIMITIVE_ID_NV 0x8C7C -#define GL_GENERIC_ATTRIB_NV 0x8C7D -#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 -#define GL_ACTIVE_VARYINGS_NV 0x8C81 -#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 -#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 -#define GL_PRIMITIVES_GENERATED_NV 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 -#define GL_RASTERIZER_DISCARD_NV 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C -#define GL_SEPARATE_ATTRIBS_NV 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F -#define GL_LAYER_NV 0x8DAA -#define GL_NEXT_BUFFER_NV -2 -#define GL_SKIP_COMPONENTS4_NV -3 -#define GL_SKIP_COMPONENTS3_NV -4 -#define GL_SKIP_COMPONENTS2_NV -5 -#define GL_SKIP_COMPONENTS1_NV -6 -#endif - -#ifndef GL_EXT_bindable_uniform -#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 -#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 -#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 -#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED -#define GL_UNIFORM_BUFFER_EXT 0x8DEE -#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF -#endif - -#ifndef GL_EXT_texture_integer -#define GL_RGBA32UI_EXT 0x8D70 -#define GL_RGB32UI_EXT 0x8D71 -#define GL_ALPHA32UI_EXT 0x8D72 -#define GL_INTENSITY32UI_EXT 0x8D73 -#define GL_LUMINANCE32UI_EXT 0x8D74 -#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 -#define GL_RGBA16UI_EXT 0x8D76 -#define GL_RGB16UI_EXT 0x8D77 -#define GL_ALPHA16UI_EXT 0x8D78 -#define GL_INTENSITY16UI_EXT 0x8D79 -#define GL_LUMINANCE16UI_EXT 0x8D7A -#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B -#define GL_RGBA8UI_EXT 0x8D7C -#define GL_RGB8UI_EXT 0x8D7D -#define GL_ALPHA8UI_EXT 0x8D7E -#define GL_INTENSITY8UI_EXT 0x8D7F -#define GL_LUMINANCE8UI_EXT 0x8D80 -#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 -#define GL_RGBA32I_EXT 0x8D82 -#define GL_RGB32I_EXT 0x8D83 -#define GL_ALPHA32I_EXT 0x8D84 -#define GL_INTENSITY32I_EXT 0x8D85 -#define GL_LUMINANCE32I_EXT 0x8D86 -#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 -#define GL_RGBA16I_EXT 0x8D88 -#define GL_RGB16I_EXT 0x8D89 -#define GL_ALPHA16I_EXT 0x8D8A -#define GL_INTENSITY16I_EXT 0x8D8B -#define GL_LUMINANCE16I_EXT 0x8D8C -#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D -#define GL_RGBA8I_EXT 0x8D8E -#define GL_RGB8I_EXT 0x8D8F -#define GL_ALPHA8I_EXT 0x8D90 -#define GL_INTENSITY8I_EXT 0x8D91 -#define GL_LUMINANCE8I_EXT 0x8D92 -#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 -#define GL_RED_INTEGER_EXT 0x8D94 -#define GL_GREEN_INTEGER_EXT 0x8D95 -#define GL_BLUE_INTEGER_EXT 0x8D96 -#define GL_ALPHA_INTEGER_EXT 0x8D97 -#define GL_RGB_INTEGER_EXT 0x8D98 -#define GL_RGBA_INTEGER_EXT 0x8D99 -#define GL_BGR_INTEGER_EXT 0x8D9A -#define GL_BGRA_INTEGER_EXT 0x8D9B -#define GL_LUMINANCE_INTEGER_EXT 0x8D9C -#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D -#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E -#endif - -#ifndef GL_GREMEDY_frame_terminator -#endif - -#ifndef GL_NV_conditional_render -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 -#endif - -#ifndef GL_NV_present_video -#define GL_FRAME_NV 0x8E26 -#define GL_FIELDS_NV 0x8E27 -#define GL_CURRENT_TIME_NV 0x8E28 -#define GL_NUM_FILL_STREAMS_NV 0x8E29 -#define GL_PRESENT_TIME_NV 0x8E2A -#define GL_PRESENT_DURATION_NV 0x8E2B -#endif - -#ifndef GL_EXT_transform_feedback -#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F -#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C -#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 -#define GL_RASTERIZER_DISCARD_EXT 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 -#endif - -#ifndef GL_EXT_direct_state_access -#define GL_PROGRAM_MATRIX_EXT 0x8E2D -#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E -#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F -#endif - -#ifndef GL_EXT_vertex_array_bgra -/* reuse GL_BGRA */ -#endif - -#ifndef GL_EXT_texture_swizzle -#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 -#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 -#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 -#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 -#endif - -#ifndef GL_NV_explicit_multisample -#define GL_SAMPLE_POSITION_NV 0x8E50 -#define GL_SAMPLE_MASK_NV 0x8E51 -#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 -#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 -#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 -#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 -#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 -#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 -#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 -#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 -#endif - -#ifndef GL_NV_transform_feedback2 -#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 -#endif - -#ifndef GL_ATI_meminfo -#define GL_VBO_FREE_MEMORY_ATI 0x87FB -#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC -#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD -#endif - -#ifndef GL_AMD_performance_monitor -#define GL_COUNTER_TYPE_AMD 0x8BC0 -#define GL_COUNTER_RANGE_AMD 0x8BC1 -#define GL_UNSIGNED_INT64_AMD 0x8BC2 -#define GL_PERCENTAGE_AMD 0x8BC3 -#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 -#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 -#define GL_PERFMON_RESULT_AMD 0x8BC6 -#endif - -#ifndef GL_AMD_texture_texture4 -#endif - -#ifndef GL_AMD_vertex_shader_tesselator -#define GL_SAMPLER_BUFFER_AMD 0x9001 -#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 -#define GL_TESSELLATION_MODE_AMD 0x9004 -#define GL_TESSELLATION_FACTOR_AMD 0x9005 -#define GL_DISCRETE_AMD 0x9006 -#define GL_CONTINUOUS_AMD 0x9007 -#endif - -#ifndef GL_EXT_provoking_vertex -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E -#define GL_PROVOKING_VERTEX_EXT 0x8E4F -#endif - -#ifndef GL_EXT_texture_snorm -#define GL_ALPHA_SNORM 0x9010 -#define GL_LUMINANCE_SNORM 0x9011 -#define GL_LUMINANCE_ALPHA_SNORM 0x9012 -#define GL_INTENSITY_SNORM 0x9013 -#define GL_ALPHA8_SNORM 0x9014 -#define GL_LUMINANCE8_SNORM 0x9015 -#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 -#define GL_INTENSITY8_SNORM 0x9017 -#define GL_ALPHA16_SNORM 0x9018 -#define GL_LUMINANCE16_SNORM 0x9019 -#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A -#define GL_INTENSITY16_SNORM 0x901B -/* reuse GL_RED_SNORM */ -/* reuse GL_RG_SNORM */ -/* reuse GL_RGB_SNORM */ -/* reuse GL_RGBA_SNORM */ -/* reuse GL_R8_SNORM */ -/* reuse GL_RG8_SNORM */ -/* reuse GL_RGB8_SNORM */ -/* reuse GL_RGBA8_SNORM */ -/* reuse GL_R16_SNORM */ -/* reuse GL_RG16_SNORM */ -/* reuse GL_RGB16_SNORM */ -/* reuse GL_RGBA16_SNORM */ -/* reuse GL_SIGNED_NORMALIZED */ -#endif - -#ifndef GL_AMD_draw_buffers_blend -#endif - -#ifndef GL_APPLE_texture_range -#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 -#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 -#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC -#define GL_STORAGE_PRIVATE_APPLE 0x85BD -/* reuse GL_STORAGE_CACHED_APPLE */ -/* reuse GL_STORAGE_SHARED_APPLE */ -#endif - -#ifndef GL_APPLE_float_pixels -#define GL_HALF_APPLE 0x140B -#define GL_RGBA_FLOAT32_APPLE 0x8814 -#define GL_RGB_FLOAT32_APPLE 0x8815 -#define GL_ALPHA_FLOAT32_APPLE 0x8816 -#define GL_INTENSITY_FLOAT32_APPLE 0x8817 -#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 -#define GL_RGBA_FLOAT16_APPLE 0x881A -#define GL_RGB_FLOAT16_APPLE 0x881B -#define GL_ALPHA_FLOAT16_APPLE 0x881C -#define GL_INTENSITY_FLOAT16_APPLE 0x881D -#define GL_LUMINANCE_FLOAT16_APPLE 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F -#define GL_COLOR_FLOAT_APPLE 0x8A0F -#endif - -#ifndef GL_APPLE_vertex_program_evaluators -#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 -#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 -#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 -#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 -#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 -#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 -#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 -#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 -#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 -#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 -#endif - -#ifndef GL_APPLE_aux_depth_stencil -#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 -#endif - -#ifndef GL_APPLE_object_purgeable -#define GL_BUFFER_OBJECT_APPLE 0x85B3 -#define GL_RELEASED_APPLE 0x8A19 -#define GL_VOLATILE_APPLE 0x8A1A -#define GL_RETAINED_APPLE 0x8A1B -#define GL_UNDEFINED_APPLE 0x8A1C -#define GL_PURGEABLE_APPLE 0x8A1D -#endif - -#ifndef GL_APPLE_row_bytes -#define GL_PACK_ROW_BYTES_APPLE 0x8A15 -#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 -#endif - -#ifndef GL_APPLE_rgb_422 -#define GL_RGB_422_APPLE 0x8A1F -/* reuse GL_UNSIGNED_SHORT_8_8_APPLE */ -/* reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE */ -#endif - -#ifndef GL_NV_video_capture -#define GL_VIDEO_BUFFER_NV 0x9020 -#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 -#define GL_FIELD_UPPER_NV 0x9022 -#define GL_FIELD_LOWER_NV 0x9023 -#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 -#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 -#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 -#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 -#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 -#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 -#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A -#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B -#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C -#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D -#define GL_PARTIAL_SUCCESS_NV 0x902E -#define GL_SUCCESS_NV 0x902F -#define GL_FAILURE_NV 0x9030 -#define GL_YCBYCR8_422_NV 0x9031 -#define GL_YCBAYCR8A_4224_NV 0x9032 -#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 -#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 -#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 -#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 -#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 -#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 -#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 -#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A -#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B -#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C -#endif - -#ifndef GL_NV_copy_image -#endif - -#ifndef GL_EXT_separate_shader_objects -#define GL_ACTIVE_PROGRAM_EXT 0x8B8D -#endif - -#ifndef GL_NV_parameter_buffer_object2 -#endif - -#ifndef GL_NV_shader_buffer_load -#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D -#define GL_GPU_ADDRESS_NV 0x8F34 -#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 -#endif - -#ifndef GL_NV_vertex_buffer_unified_memory -#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E -#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F -#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 -#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 -#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 -#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 -#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 -#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 -#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 -#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 -#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 -#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 -#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A -#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B -#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C -#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D -#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E -#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F -#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 -#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 -#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 -#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 -#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 -#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 -#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 -#endif - -#ifndef GL_NV_texture_barrier -#endif - -#ifndef GL_AMD_shader_stencil_export -#endif - -#ifndef GL_AMD_seamless_cubemap_per_texture -/* reuse GL_TEXTURE_CUBE_MAP_SEAMLESS */ -#endif - -#ifndef GL_AMD_conservative_depth -#endif - -#ifndef GL_EXT_shader_image_load_store -#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 -#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A -#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B -#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C -#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D -#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E -#define GL_IMAGE_1D_EXT 0x904C -#define GL_IMAGE_2D_EXT 0x904D -#define GL_IMAGE_3D_EXT 0x904E -#define GL_IMAGE_2D_RECT_EXT 0x904F -#define GL_IMAGE_CUBE_EXT 0x9050 -#define GL_IMAGE_BUFFER_EXT 0x9051 -#define GL_IMAGE_1D_ARRAY_EXT 0x9052 -#define GL_IMAGE_2D_ARRAY_EXT 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 -#define GL_INT_IMAGE_1D_EXT 0x9057 -#define GL_INT_IMAGE_2D_EXT 0x9058 -#define GL_INT_IMAGE_3D_EXT 0x9059 -#define GL_INT_IMAGE_2D_RECT_EXT 0x905A -#define GL_INT_IMAGE_CUBE_EXT 0x905B -#define GL_INT_IMAGE_BUFFER_EXT 0x905C -#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D -#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C -#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D -#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 -#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 -#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF -#endif - -#ifndef GL_EXT_vertex_attrib_64bit -/* reuse GL_DOUBLE */ -#define GL_DOUBLE_VEC2_EXT 0x8FFC -#define GL_DOUBLE_VEC3_EXT 0x8FFD -#define GL_DOUBLE_VEC4_EXT 0x8FFE -#define GL_DOUBLE_MAT2_EXT 0x8F46 -#define GL_DOUBLE_MAT3_EXT 0x8F47 -#define GL_DOUBLE_MAT4_EXT 0x8F48 -#define GL_DOUBLE_MAT2x3_EXT 0x8F49 -#define GL_DOUBLE_MAT2x4_EXT 0x8F4A -#define GL_DOUBLE_MAT3x2_EXT 0x8F4B -#define GL_DOUBLE_MAT3x4_EXT 0x8F4C -#define GL_DOUBLE_MAT4x2_EXT 0x8F4D -#define GL_DOUBLE_MAT4x3_EXT 0x8F4E -#endif - -#ifndef GL_NV_gpu_program5 -#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C -#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F -#define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV 0x8F44 -#define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV 0x8F45 -#endif - -#ifndef GL_NV_gpu_shader5 -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F -#define GL_INT8_NV 0x8FE0 -#define GL_INT8_VEC2_NV 0x8FE1 -#define GL_INT8_VEC3_NV 0x8FE2 -#define GL_INT8_VEC4_NV 0x8FE3 -#define GL_INT16_NV 0x8FE4 -#define GL_INT16_VEC2_NV 0x8FE5 -#define GL_INT16_VEC3_NV 0x8FE6 -#define GL_INT16_VEC4_NV 0x8FE7 -#define GL_INT64_VEC2_NV 0x8FE9 -#define GL_INT64_VEC3_NV 0x8FEA -#define GL_INT64_VEC4_NV 0x8FEB -#define GL_UNSIGNED_INT8_NV 0x8FEC -#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED -#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE -#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF -#define GL_UNSIGNED_INT16_NV 0x8FF0 -#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 -#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 -#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 -#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 -#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 -#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 -#define GL_FLOAT16_NV 0x8FF8 -#define GL_FLOAT16_VEC2_NV 0x8FF9 -#define GL_FLOAT16_VEC3_NV 0x8FFA -#define GL_FLOAT16_VEC4_NV 0x8FFB -/* reuse GL_PATCHES */ -#endif - -#ifndef GL_NV_shader_buffer_store -#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010 -/* reuse GL_READ_WRITE */ -/* reuse GL_WRITE_ONLY */ -#endif - -#ifndef GL_NV_tessellation_program5 -#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 -#define GL_TESS_CONTROL_PROGRAM_NV 0x891E -#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F -#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 -#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 -#endif - -#ifndef GL_NV_vertex_attrib_integer_64bit -/* reuse GL_INT64_NV */ -/* reuse GL_UNSIGNED_INT64_NV */ -#endif - -#ifndef GL_NV_multisample_coverage -#define GL_COVERAGE_SAMPLES_NV 0x80A9 -#define GL_COLOR_SAMPLES_NV 0x8E20 -#endif - -#ifndef GL_AMD_name_gen_delete -#define GL_DATA_BUFFER_AMD 0x9151 -#define GL_PERFORMANCE_MONITOR_AMD 0x9152 -#define GL_QUERY_OBJECT_AMD 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 -#define GL_SAMPLER_OBJECT_AMD 0x9155 -#endif - -#ifndef GL_AMD_debug_output -#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 -#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 -#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 -#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A -#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B -#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C -#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D -#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E -#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F -#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 -#endif - -#ifndef GL_NV_vdpau_interop -#define GL_SURFACE_STATE_NV 0x86EB -#define GL_SURFACE_REGISTERED_NV 0x86FD -#define GL_SURFACE_MAPPED_NV 0x8700 -#define GL_WRITE_DISCARD_NV 0x88BE -#endif - -#ifndef GL_AMD_transform_feedback3_lines_triangles -#endif - -#ifndef GL_AMD_depth_clamp_separate -#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E -#define GL_DEPTH_CLAMP_FAR_AMD 0x901F -#endif - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A -#endif - -#ifndef GL_NV_texture_multisample -#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 -#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 -#endif - -#ifndef GL_AMD_blend_minmax_factor -#define GL_FACTOR_MIN_AMD 0x901C -#define GL_FACTOR_MAX_AMD 0x901D -#endif - -#ifndef GL_AMD_sample_positions -#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F -#endif - -#ifndef GL_EXT_x11_sync_object -#define GL_SYNC_X11_FENCE_EXT 0x90E1 -#endif - -#ifndef GL_AMD_multi_draw_indirect -#endif - -#ifndef GL_EXT_framebuffer_multisample_blit_scaled -#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA -#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB -#endif - - -/*************************************************************/ - -#include -#ifndef GL_VERSION_2_0 -/* GL type for program/shader text */ -typedef char GLchar; -#endif - -#ifndef GL_VERSION_1_5 -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptr; -typedef ptrdiff_t GLsizeiptr; -#endif - -#ifndef GL_ARB_vertex_buffer_object -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptrARB; -typedef ptrdiff_t GLsizeiptrARB; -#endif - -#ifndef GL_ARB_shader_objects -/* GL types for program/shader text and shader object handles */ -typedef char GLcharARB; -typedef unsigned int GLhandleARB; -#endif - -/* GL type for "half" precision (s10e5) float data in host memory */ -#ifndef GL_ARB_half_float_pixel -typedef unsigned short GLhalfARB; -#endif - -#ifndef GL_NV_half_float -typedef unsigned short GLhalfNV; -#endif - -#ifndef GLEXT_64_TYPES_DEFINED -/* This code block is duplicated in glxext.h, so must be protected */ -#define GLEXT_64_TYPES_DEFINED -/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -/* (as used in the GL_EXT_timer_query extension). */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -#include -#elif defined(__sun__) || defined(__digital__) -#include -#if defined(__STDC__) -#if defined(__arch64__) || defined(_LP64) -typedef long int int64_t; -typedef unsigned long int uint64_t; -#else -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#endif /* __arch64__ */ -#endif /* __STDC__ */ -#elif defined( __VMS ) || defined(__sgi) -#include -#elif defined(__SCO__) || defined(__USLC__) -#include -#elif defined(__UNIXOS2__) || defined(__SOL64__) -typedef long int int32_t; -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#elif defined(_WIN32) && defined(__GNUC__) -#include -#elif defined(_WIN32) -typedef __int32 int32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -/* Fallback if nothing above works */ -#include -#endif -#endif - -#ifndef GL_EXT_timer_query -typedef int64_t GLint64EXT; -typedef uint64_t GLuint64EXT; -#endif - -#ifndef GL_ARB_sync -typedef int64_t GLint64; -typedef uint64_t GLuint64; -typedef struct __GLsync *GLsync; -#endif - -#ifndef GL_ARB_cl_event -/* These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event */ -struct _cl_context; -struct _cl_event; -#endif - -#ifndef GL_ARB_debug_output -typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam); -#endif - -#ifndef GL_AMD_debug_output -typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam); -#endif - -#ifndef GL_NV_vdpau_interop -typedef GLintptr GLvdpauSurfaceNV; -#endif - -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -GLAPI void APIENTRY glBlendEquation (GLenum mode); -GLAPI void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -GLAPI void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_VERSION_1_2_DEPRECATED -#define GL_VERSION_1_2_DEPRECATED 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -GLAPI void APIENTRY glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glGetColorTable (GLenum target, GLenum format, GLenum type, GLvoid *table); -GLAPI void APIENTRY glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -GLAPI void APIENTRY glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -GLAPI void APIENTRY glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -GLAPI void APIENTRY glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params); -GLAPI void APIENTRY glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glConvolutionParameteri (GLenum target, GLenum pname, GLint params); -GLAPI void APIENTRY glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, GLvoid *image); -GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSeparableFilter (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -GLAPI void APIENTRY glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -GLAPI void APIENTRY glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -GLAPI void APIENTRY glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glMinmax (GLenum target, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glResetHistogram (GLenum target); -GLAPI void APIENTRY glResetMinmax (GLenum target); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); -#endif - -#ifndef GL_VERSION_1_3 -#define GL_VERSION_1_3 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTexture (GLenum texture); -GLAPI void APIENTRY glSampleCoverage (GLclampf value, GLboolean invert); -GLAPI void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, GLvoid *img); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); -#endif - -#ifndef GL_VERSION_1_3_DEPRECATED -#define GL_VERSION_1_3_DEPRECATED 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClientActiveTexture (GLenum texture); -GLAPI void APIENTRY glMultiTexCoord1d (GLenum target, GLdouble s); -GLAPI void APIENTRY glMultiTexCoord1dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord1f (GLenum target, GLfloat s); -GLAPI void APIENTRY glMultiTexCoord1fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord1i (GLenum target, GLint s); -GLAPI void APIENTRY glMultiTexCoord1iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord1s (GLenum target, GLshort s); -GLAPI void APIENTRY glMultiTexCoord1sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t); -GLAPI void APIENTRY glMultiTexCoord2dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t); -GLAPI void APIENTRY glMultiTexCoord2fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord2i (GLenum target, GLint s, GLint t); -GLAPI void APIENTRY glMultiTexCoord2iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord2s (GLenum target, GLshort s, GLshort t); -GLAPI void APIENTRY glMultiTexCoord2sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void APIENTRY glMultiTexCoord3dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void APIENTRY glMultiTexCoord3fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r); -GLAPI void APIENTRY glMultiTexCoord3iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void APIENTRY glMultiTexCoord3sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void APIENTRY glMultiTexCoord4dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void APIENTRY glMultiTexCoord4fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void APIENTRY glMultiTexCoord4iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void APIENTRY glMultiTexCoord4sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *m); -GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *m); -GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *m); -GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *m); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); -#endif - -#ifndef GL_VERSION_1_4 -#define GL_VERSION_1_4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GLAPI void APIENTRY glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -GLAPI void APIENTRY glPointParameterf (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glPointParameteri (GLenum pname, GLint param); -GLAPI void APIENTRY glPointParameteriv (GLenum pname, const GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_VERSION_1_4_DEPRECATED -#define GL_VERSION_1_4_DEPRECATED 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogCoordf (GLfloat coord); -GLAPI void APIENTRY glFogCoordfv (const GLfloat *coord); -GLAPI void APIENTRY glFogCoordd (GLdouble coord); -GLAPI void APIENTRY glFogCoorddv (const GLdouble *coord); -GLAPI void APIENTRY glFogCoordPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue); -GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *v); -GLAPI void APIENTRY glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue); -GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *v); -GLAPI void APIENTRY glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue); -GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *v); -GLAPI void APIENTRY glSecondaryColor3i (GLint red, GLint green, GLint blue); -GLAPI void APIENTRY glSecondaryColor3iv (const GLint *v); -GLAPI void APIENTRY glSecondaryColor3s (GLshort red, GLshort green, GLshort blue); -GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *v); -GLAPI void APIENTRY glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue); -GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *v); -GLAPI void APIENTRY glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue); -GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *v); -GLAPI void APIENTRY glSecondaryColor3us (GLushort red, GLushort green, GLushort blue); -GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *v); -GLAPI void APIENTRY glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glWindowPos2d (GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dv (const GLdouble *v); -GLAPI void APIENTRY glWindowPos2f (GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fv (const GLfloat *v); -GLAPI void APIENTRY glWindowPos2i (GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2iv (const GLint *v); -GLAPI void APIENTRY glWindowPos2s (GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2sv (const GLshort *v); -GLAPI void APIENTRY glWindowPos3d (GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dv (const GLdouble *v); -GLAPI void APIENTRY glWindowPos3f (GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fv (const GLfloat *v); -GLAPI void APIENTRY glWindowPos3i (GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3iv (const GLint *v); -GLAPI void APIENTRY glWindowPos3s (GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3sv (const GLshort *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); -#endif - -#ifndef GL_VERSION_1_5 -#define GL_VERSION_1_5 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsQuery (GLuint id); -GLAPI void APIENTRY glBeginQuery (GLenum target, GLuint id); -GLAPI void APIENTRY glEndQuery (GLenum target); -GLAPI void APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GLAPI GLboolean APIENTRY glIsBuffer (GLuint buffer); -GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); -GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); -GLAPI void APIENTRY glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); -GLAPI GLvoid* APIENTRY glMapBuffer (GLenum target, GLenum access); -GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum target); -GLAPI void APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, GLvoid* *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params); -#endif - -#ifndef GL_VERSION_2_0 -#define GL_VERSION_2_0 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GLAPI void APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GLAPI void APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GLAPI void APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader); -GLAPI void APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GLAPI void APIENTRY glCompileShader (GLuint shader); -GLAPI GLuint APIENTRY glCreateProgram (void); -GLAPI GLuint APIENTRY glCreateShader (GLenum type); -GLAPI void APIENTRY glDeleteProgram (GLuint program); -GLAPI void APIENTRY glDeleteShader (GLuint shader); -GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader); -GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index); -GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index); -GLAPI void APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); -GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GLAPI void APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GLAPI void APIENTRY glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid* *pointer); -GLAPI GLboolean APIENTRY glIsProgram (GLuint program); -GLAPI GLboolean APIENTRY glIsShader (GLuint shader); -GLAPI void APIENTRY glLinkProgram (GLuint program); -GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length); -GLAPI void APIENTRY glUseProgram (GLuint program); -GLAPI void APIENTRY glUniform1f (GLint location, GLfloat v0); -GLAPI void APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glUniform1i (GLint location, GLint v0); -GLAPI void APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glValidateProgram (GLuint program); -GLAPI void APIENTRY glVertexAttrib1d (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1s (GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2s (GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4Niv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttrib4bv (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubv (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4usv (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length); -typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_VERSION_2_1 -#define GL_VERSION_2_1 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif - -#ifndef GL_VERSION_3_0 -#define GL_VERSION_3_0 1 -/* OpenGL 3.0 also reuses entry points from these extensions: */ -/* ARB_framebuffer_object */ -/* ARB_map_buffer_range */ -/* ARB_vertex_array_object */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GLAPI void APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); -GLAPI void APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GLAPI void APIENTRY glEnablei (GLenum target, GLuint index); -GLAPI void APIENTRY glDisablei (GLenum target, GLuint index); -GLAPI GLboolean APIENTRY glIsEnabledi (GLenum target, GLuint index); -GLAPI void APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedback (void); -GLAPI void APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode); -GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glClampColor (GLenum target, GLenum clamp); -GLAPI void APIENTRY glBeginConditionalRender (GLuint id, GLenum mode); -GLAPI void APIENTRY glEndConditionalRender (void); -GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GLAPI void APIENTRY glVertexAttribI1i (GLuint index, GLint x); -GLAPI void APIENTRY glVertexAttribI2i (GLuint index, GLint x, GLint y); -GLAPI void APIENTRY glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexAttribI1ui (GLuint index, GLuint x); -GLAPI void APIENTRY glVertexAttribI2ui (GLuint index, GLuint x, GLuint y); -GLAPI void APIENTRY glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z); -GLAPI void APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glVertexAttribI1iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI2iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI3iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI1uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI2uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI3uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4bv (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttribI4sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttribI4ubv (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribI4usv (GLuint index, const GLushort *v); -GLAPI void APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GLAPI void APIENTRY glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glUniform1ui (GLint location, GLuint v0); -GLAPI void APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GLAPI void APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GLAPI void APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GLAPI void APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GLAPI const GLubyte * APIENTRY glGetStringi (GLenum name, GLuint index); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -#endif - -#ifndef GL_VERSION_3_1 -#define GL_VERSION_3_1 1 -/* OpenGL 3.1 also reuses entry points from these extensions: */ -/* ARB_copy_buffer */ -/* ARB_uniform_buffer_object */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint index); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index); -#endif - -#ifndef GL_VERSION_3_2 -#define GL_VERSION_3_2 1 -/* OpenGL 3.2 also reuses entry points from these extensions: */ -/* ARB_draw_elements_base_vertex */ -/* ARB_provoking_vertex */ -/* ARB_sync */ -/* ARB_texture_multisample */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -#endif - -#ifndef GL_VERSION_3_3 -#define GL_VERSION_3_3 1 -/* OpenGL 3.3 also reuses entry points from these extensions: */ -/* ARB_blend_func_extended */ -/* ARB_sampler_objects */ -/* ARB_explicit_attrib_location, but it has none */ -/* ARB_occlusion_query2 (no entry points) */ -/* ARB_shader_bit_encoding (no entry points) */ -/* ARB_texture_rgb10_a2ui (no entry points) */ -/* ARB_texture_swizzle (no entry points) */ -/* ARB_timer_query */ -/* ARB_vertex_type_2_10_10_10_rev */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -#endif - -#ifndef GL_VERSION_4_0 -#define GL_VERSION_4_0 1 -/* OpenGL 4.0 also reuses entry points from these extensions: */ -/* ARB_texture_query_lod (no entry points) */ -/* ARB_draw_indirect */ -/* ARB_gpu_shader5 (no entry points) */ -/* ARB_gpu_shader_fp64 */ -/* ARB_shader_subroutine */ -/* ARB_tessellation_shader */ -/* ARB_texture_buffer_object_rgb32 (no entry points) */ -/* ARB_texture_cube_map_array (no entry points) */ -/* ARB_texture_gather (no entry points) */ -/* ARB_transform_feedback2 */ -/* ARB_transform_feedback3 */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMinSampleShading (GLclampf value); -GLAPI void APIENTRY glBlendEquationi (GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLclampf value); -typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif - -#ifndef GL_VERSION_4_1 -#define GL_VERSION_4_1 1 -/* OpenGL 4.1 reuses entry points from these extensions: */ -/* ARB_ES2_compatibility */ -/* ARB_get_program_binary */ -/* ARB_separate_shader_objects */ -/* ARB_shader_precision (no entry points) */ -/* ARB_vertex_attrib_64bit */ -/* ARB_viewport_array */ -#endif - -#ifndef GL_VERSION_4_2 -#define GL_VERSION_4_2 1 -/* OpenGL 4.2 reuses entry points from these extensions: */ -/* ARB_base_instance */ -/* ARB_shading_language_420pack (no entry points) */ -/* ARB_transform_feedback_instanced */ -/* ARB_compressed_texture_pixel_storage (no entry points) */ -/* ARB_conservative_depth (no entry points) */ -/* ARB_internalformat_query */ -/* ARB_map_buffer_alignment (no entry points) */ -/* ARB_shader_atomic_counters */ -/* ARB_shader_image_load_store */ -/* ARB_shading_language_packing (no entry points) */ -/* ARB_texture_storage */ -#endif - -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTextureARB (GLenum texture); -GLAPI void APIENTRY glClientActiveTextureARB (GLenum texture); -GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum target, GLdouble s); -GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum target, GLfloat s); -GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum target, GLint s); -GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum target, GLshort s); -GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t); -GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t); -GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum target, GLint s, GLint t); -GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t); -GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r); -GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum target, const GLshort *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_ARB_transpose_matrix 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *m); -GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *m); -GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *m); -GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *m); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -#endif - -#ifndef GL_ARB_multisample -#define GL_ARB_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleCoverageARB (GLclampf value, GLboolean invert); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); -#endif - -#ifndef GL_ARB_texture_env_add -#define GL_ARB_texture_env_add 1 -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_ARB_texture_cube_map 1 -#endif - -#ifndef GL_ARB_texture_compression -#define GL_ARB_texture_compression 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum target, GLint level, GLvoid *img); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, GLvoid *img); -#endif - -#ifndef GL_ARB_texture_border_clamp -#define GL_ARB_texture_border_clamp 1 -#endif - -#ifndef GL_ARB_point_parameters -#define GL_ARB_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfARB (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvARB (GLenum pname, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_ARB_vertex_blend -#define GL_ARB_vertex_blend 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWeightbvARB (GLint size, const GLbyte *weights); -GLAPI void APIENTRY glWeightsvARB (GLint size, const GLshort *weights); -GLAPI void APIENTRY glWeightivARB (GLint size, const GLint *weights); -GLAPI void APIENTRY glWeightfvARB (GLint size, const GLfloat *weights); -GLAPI void APIENTRY glWeightdvARB (GLint size, const GLdouble *weights); -GLAPI void APIENTRY glWeightubvARB (GLint size, const GLubyte *weights); -GLAPI void APIENTRY glWeightusvARB (GLint size, const GLushort *weights); -GLAPI void APIENTRY glWeightuivARB (GLint size, const GLuint *weights); -GLAPI void APIENTRY glWeightPointerARB (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glVertexBlendARB (GLint count); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); -typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); -typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); -typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); -typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); -typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); -typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); -#endif - -#ifndef GL_ARB_matrix_palette -#define GL_ARB_matrix_palette 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint index); -GLAPI void APIENTRY glMatrixIndexubvARB (GLint size, const GLubyte *indices); -GLAPI void APIENTRY glMatrixIndexusvARB (GLint size, const GLushort *indices); -GLAPI void APIENTRY glMatrixIndexuivARB (GLint size, const GLuint *indices); -GLAPI void APIENTRY glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); -typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_ARB_texture_env_combine -#define GL_ARB_texture_env_combine 1 -#endif - -#ifndef GL_ARB_texture_env_crossbar -#define GL_ARB_texture_env_crossbar 1 -#endif - -#ifndef GL_ARB_texture_env_dot3 -#define GL_ARB_texture_env_dot3 1 -#endif - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_ARB_texture_mirrored_repeat 1 -#endif - -#ifndef GL_ARB_depth_texture -#define GL_ARB_depth_texture 1 -#endif - -#ifndef GL_ARB_shadow -#define GL_ARB_shadow 1 -#endif - -#ifndef GL_ARB_shadow_ambient -#define GL_ARB_shadow_ambient 1 -#endif - -#ifndef GL_ARB_window_pos -#define GL_ARB_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dARB (GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *v); -GLAPI void APIENTRY glWindowPos2fARB (GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *v); -GLAPI void APIENTRY glWindowPos2iARB (GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2ivARB (const GLint *v); -GLAPI void APIENTRY glWindowPos2sARB (GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2svARB (const GLshort *v); -GLAPI void APIENTRY glWindowPos3dARB (GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *v); -GLAPI void APIENTRY glWindowPos3fARB (GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *v); -GLAPI void APIENTRY glWindowPos3iARB (GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3ivARB (const GLint *v); -GLAPI void APIENTRY glWindowPos3sARB (GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3svARB (const GLshort *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); -#endif - -#ifndef GL_ARB_vertex_program -#define GL_ARB_vertex_program 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttrib1dARB (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1fARB (GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1sARB (GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2dARB (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2fARB (GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2sARB (GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3sARB (GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4sARB (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribPointerARB (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint index); -GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint index); -GLAPI void APIENTRY glProgramStringARB (GLenum target, GLenum format, GLsizei len, const GLvoid *string); -GLAPI void APIENTRY glBindProgramARB (GLenum target, GLuint program); -GLAPI void APIENTRY glDeleteProgramsARB (GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glGenProgramsARB (GLsizei n, GLuint *programs); -GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetProgramivARB (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramStringARB (GLenum target, GLenum pname, GLvoid *string); -GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribivARB (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint index, GLenum pname, GLvoid* *pointer); -GLAPI GLboolean APIENTRY glIsProgramARB (GLuint program); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string); -typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); -#endif - -#ifndef GL_ARB_fragment_program -#define GL_ARB_fragment_program 1 -/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */ -#endif - -#ifndef GL_ARB_vertex_buffer_object -#define GL_ARB_vertex_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindBufferARB (GLenum target, GLuint buffer); -GLAPI void APIENTRY glDeleteBuffersARB (GLsizei n, const GLuint *buffers); -GLAPI void APIENTRY glGenBuffersARB (GLsizei n, GLuint *buffers); -GLAPI GLboolean APIENTRY glIsBufferARB (GLuint buffer); -GLAPI void APIENTRY glBufferDataARB (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); -GLAPI void APIENTRY glBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); -GLAPI void APIENTRY glGetBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); -GLAPI GLvoid* APIENTRY glMapBufferARB (GLenum target, GLenum access); -GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum target); -GLAPI void APIENTRY glGetBufferParameterivARB (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetBufferPointervARB (GLenum target, GLenum pname, GLvoid* *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params); -#endif - -#ifndef GL_ARB_occlusion_query -#define GL_ARB_occlusion_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueriesARB (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteQueriesARB (GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsQueryARB (GLuint id); -GLAPI void APIENTRY glBeginQueryARB (GLenum target, GLuint id); -GLAPI void APIENTRY glEndQueryARB (GLenum target); -GLAPI void APIENTRY glGetQueryivARB (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectivARB (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint id, GLenum pname, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); -#endif - -#ifndef GL_ARB_shader_objects -#define GL_ARB_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB obj); -GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum pname); -GLAPI void APIENTRY glDetachObjectARB (GLhandleARB containerObj, GLhandleARB attachedObj); -GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum shaderType); -GLAPI void APIENTRY glShaderSourceARB (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length); -GLAPI void APIENTRY glCompileShaderARB (GLhandleARB shaderObj); -GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); -GLAPI void APIENTRY glAttachObjectARB (GLhandleARB containerObj, GLhandleARB obj); -GLAPI void APIENTRY glLinkProgramARB (GLhandleARB programObj); -GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB programObj); -GLAPI void APIENTRY glValidateProgramARB (GLhandleARB programObj); -GLAPI void APIENTRY glUniform1fARB (GLint location, GLfloat v0); -GLAPI void APIENTRY glUniform2fARB (GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glUniform3fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glUniform4fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glUniform1iARB (GLint location, GLint v0); -GLAPI void APIENTRY glUniform2iARB (GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glUniform3iARB (GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glUniform4iARB (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glUniform1fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform2fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform3fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform4fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform1ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform2ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform3ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform4ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniformMatrix2fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB obj, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB obj, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB programObj, const GLcharARB *name); -GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB programObj, GLint location, GLfloat *params); -GLAPI void APIENTRY glGetUniformivARB (GLhandleARB programObj, GLint location, GLint *params); -GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); -typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); -typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length); -typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); -typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); -typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#endif - -#ifndef GL_ARB_vertex_shader -#define GL_ARB_vertex_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB programObj, GLuint index, const GLcharARB *name); -GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB programObj, const GLcharARB *name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_ARB_fragment_shader 1 -#endif - -#ifndef GL_ARB_shading_language_100 -#define GL_ARB_shading_language_100 1 -#endif - -#ifndef GL_ARB_texture_non_power_of_two -#define GL_ARB_texture_non_power_of_two 1 -#endif - -#ifndef GL_ARB_point_sprite -#define GL_ARB_point_sprite 1 -#endif - -#ifndef GL_ARB_fragment_program_shadow -#define GL_ARB_fragment_program_shadow 1 -#endif - -#ifndef GL_ARB_draw_buffers -#define GL_ARB_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersARB (GLsizei n, const GLenum *bufs); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); -#endif - -#ifndef GL_ARB_texture_rectangle -#define GL_ARB_texture_rectangle 1 -#endif - -#ifndef GL_ARB_color_buffer_float -#define GL_ARB_color_buffer_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClampColorARB (GLenum target, GLenum clamp); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); -#endif - -#ifndef GL_ARB_half_float_pixel -#define GL_ARB_half_float_pixel 1 -#endif - -#ifndef GL_ARB_texture_float -#define GL_ARB_texture_float 1 -#endif - -#ifndef GL_ARB_pixel_buffer_object -#define GL_ARB_pixel_buffer_object 1 -#endif - -#ifndef GL_ARB_depth_buffer_float -#define GL_ARB_depth_buffer_float 1 -#endif - -#ifndef GL_ARB_draw_instanced -#define GL_ARB_draw_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif - -#ifndef GL_ARB_framebuffer_object -#define GL_ARB_framebuffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GLAPI void APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GLAPI void APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GLAPI void APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint framebuffer); -GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum target); -GLAPI void APIENTRY glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateMipmap (GLenum target); -GLAPI void APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -#endif - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_ARB_framebuffer_sRGB 1 -#endif - -#ifndef GL_ARB_geometry_shader4 -#define GL_ARB_geometry_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriARB (GLuint program, GLenum pname, GLint value); -GLAPI void APIENTRY glFramebufferTextureARB (GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif - -#ifndef GL_ARB_half_float_vertex -#define GL_ARB_half_float_vertex 1 -#endif - -#ifndef GL_ARB_instanced_arrays -#define GL_ARB_instanced_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); -#endif - -#ifndef GL_ARB_map_buffer_range -#define GL_ARB_map_buffer_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLvoid* APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GLAPI void APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -#endif - -#ifndef GL_ARB_texture_buffer_object -#define GL_ARB_texture_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferARB (GLenum target, GLenum internalformat, GLuint buffer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); -#endif - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_ARB_texture_compression_rgtc 1 -#endif - -#ifndef GL_ARB_texture_rg -#define GL_ARB_texture_rg 1 -#endif - -#ifndef GL_ARB_vertex_array_object -#define GL_ARB_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindVertexArray (GLuint array); -GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -#endif - -#ifndef GL_ARB_uniform_buffer_object -#define GL_ARB_uniform_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices); -GLAPI void APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); -GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GLAPI void APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); -typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -#endif - -#ifndef GL_ARB_compatibility -#define GL_ARB_compatibility 1 -#endif - -#ifndef GL_ARB_copy_buffer -#define GL_ARB_copy_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -#endif - -#ifndef GL_ARB_shader_texture_lod -#define GL_ARB_shader_texture_lod 1 -#endif - -#ifndef GL_ARB_depth_clamp -#define GL_ARB_depth_clamp 1 -#endif - -#ifndef GL_ARB_draw_elements_base_vertex -#define GL_ARB_draw_elements_base_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); -GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); -GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex); -GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, const GLint *basevertex); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, const GLint *basevertex); -#endif - -#ifndef GL_ARB_fragment_coord_conventions -#define GL_ARB_fragment_coord_conventions 1 -#endif - -#ifndef GL_ARB_provoking_vertex -#define GL_ARB_provoking_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProvokingVertex (GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode); -#endif - -#ifndef GL_ARB_seamless_cube_map -#define GL_ARB_seamless_cube_map 1 -#endif - -#ifndef GL_ARB_sync -#define GL_ARB_sync 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GLAPI GLboolean APIENTRY glIsSync (GLsync sync); -GLAPI void APIENTRY glDeleteSync (GLsync sync); -GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *params); -GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -#endif - -#ifndef GL_ARB_texture_multisample -#define GL_ARB_texture_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); -GLAPI void APIENTRY glSampleMaski (GLuint index, GLbitfield mask); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); -#endif - -#ifndef GL_ARB_vertex_array_bgra -#define GL_ARB_vertex_array_bgra 1 -#endif - -#ifndef GL_ARB_draw_buffers_blend -#define GL_ARB_draw_buffers_blend 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationiARB (GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glBlendFunciARB (GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif - -#ifndef GL_ARB_sample_shading -#define GL_ARB_sample_shading 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMinSampleShadingARB (GLclampf value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); -#endif - -#ifndef GL_ARB_texture_cube_map_array -#define GL_ARB_texture_cube_map_array 1 -#endif - -#ifndef GL_ARB_texture_gather -#define GL_ARB_texture_gather 1 -#endif - -#ifndef GL_ARB_texture_query_lod -#define GL_ARB_texture_query_lod 1 -#endif - -#ifndef GL_ARB_shading_language_include -#define GL_ARB_shading_language_include 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); -GLAPI void APIENTRY glDeleteNamedStringARB (GLint namelen, const GLchar *name); -GLAPI void APIENTRY glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar* *path, const GLint *length); -GLAPI GLboolean APIENTRY glIsNamedStringARB (GLint namelen, const GLchar *name); -GLAPI void APIENTRY glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); -GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); -typedef void (APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); -typedef void (APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* *path, const GLint *length); -typedef GLboolean (APIENTRYP PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); -typedef void (APIENTRYP PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); -typedef void (APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params); -#endif - -#ifndef GL_ARB_texture_compression_bptc -#define GL_ARB_texture_compression_bptc 1 -#endif - -#ifndef GL_ARB_blend_func_extended -#define GL_ARB_blend_func_extended 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataIndex (GLuint program, const GLchar *name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name); -#endif - -#ifndef GL_ARB_explicit_attrib_location -#define GL_ARB_explicit_attrib_location 1 -#endif - -#ifndef GL_ARB_occlusion_query2 -#define GL_ARB_occlusion_query2 1 -#endif - -#ifndef GL_ARB_sampler_objects -#define GL_ARB_sampler_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GLAPI GLboolean APIENTRY glIsSampler (GLuint sampler); -GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GLAPI void APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GLAPI void APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GLAPI void APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GLAPI void APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); -GLAPI void APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); -GLAPI void APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); -#endif - -#ifndef GL_ARB_shader_bit_encoding -#define GL_ARB_shader_bit_encoding 1 -#endif - -#ifndef GL_ARB_texture_rgb10_a2ui -#define GL_ARB_texture_rgb10_a2ui 1 -#endif - -#ifndef GL_ARB_texture_swizzle -#define GL_ARB_texture_swizzle 1 -#endif - -#ifndef GL_ARB_timer_query -#define GL_ARB_timer_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glQueryCounter (GLuint id, GLenum target); -GLAPI void APIENTRY glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params); -#endif - -#ifndef GL_ARB_vertex_type_2_10_10_10_rev -#define GL_ARB_vertex_type_2_10_10_10_rev 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexP2ui (GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP2uiv (GLenum type, const GLuint *value); -GLAPI void APIENTRY glVertexP3ui (GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP3uiv (GLenum type, const GLuint *value); -GLAPI void APIENTRY glVertexP4ui (GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP4uiv (GLenum type, const GLuint *value); -GLAPI void APIENTRY glTexCoordP1ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP1uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP2ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP2uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP3ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP3uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP4ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP4uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP1ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP1uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP2ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP2uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP3ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP3uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP4ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP4uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glNormalP3ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glNormalP3uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glColorP3ui (GLenum type, GLuint color); -GLAPI void APIENTRY glColorP3uiv (GLenum type, const GLuint *color); -GLAPI void APIENTRY glColorP4ui (GLenum type, GLuint color); -GLAPI void APIENTRY glColorP4uiv (GLenum type, const GLuint *color); -GLAPI void APIENTRY glSecondaryColorP3ui (GLenum type, GLuint color); -GLAPI void APIENTRY glSecondaryColorP3uiv (GLenum type, const GLuint *color); -GLAPI void APIENTRY glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint *value); -typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (APIENTRYP PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint *color); -typedef void (APIENTRYP PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); -typedef void (APIENTRYP PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint *color); -typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint *color); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -#endif - -#ifndef GL_ARB_draw_indirect -#define GL_ARB_draw_indirect 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysIndirect (GLenum mode, const GLvoid *indirect); -GLAPI void APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const GLvoid *indirect); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const GLvoid *indirect); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const GLvoid *indirect); -#endif - -#ifndef GL_ARB_gpu_shader5 -#define GL_ARB_gpu_shader5 1 -#endif - -#ifndef GL_ARB_gpu_shader_fp64 -#define GL_ARB_gpu_shader_fp64 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniform1d (GLint location, GLdouble x); -GLAPI void APIENTRY glUniform2d (GLint location, GLdouble x, GLdouble y); -GLAPI void APIENTRY glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glUniform1dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform2dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform3dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform4dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glGetUniformdv (GLuint program, GLint location, GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); -typedef void (APIENTRYP PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params); -#endif - -#ifndef GL_ARB_shader_subroutine -#define GL_ARB_shader_subroutine 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLint APIENTRY glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name); -GLAPI GLuint APIENTRY glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name); -GLAPI void APIENTRY glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); -GLAPI void APIENTRY glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -GLAPI void APIENTRY glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -GLAPI void APIENTRY glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices); -GLAPI void APIENTRY glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params); -GLAPI void APIENTRY glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name); -typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); -typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices); -typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values); -#endif - -#ifndef GL_ARB_tessellation_shader -#define GL_ARB_tessellation_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPatchParameteri (GLenum pname, GLint value); -GLAPI void APIENTRY glPatchParameterfv (GLenum pname, const GLfloat *values); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values); -#endif - -#ifndef GL_ARB_texture_buffer_object_rgb32 -#define GL_ARB_texture_buffer_object_rgb32 1 -#endif - -#ifndef GL_ARB_transform_feedback2 -#define GL_ARB_transform_feedback2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GLAPI void APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GLAPI GLboolean APIENTRY glIsTransformFeedback (GLuint id); -GLAPI void APIENTRY glPauseTransformFeedback (void); -GLAPI void APIENTRY glResumeTransformFeedback (void); -GLAPI void APIENTRY glDrawTransformFeedback (GLenum mode, GLuint id); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); -#endif - -#ifndef GL_ARB_transform_feedback3 -#define GL_ARB_transform_feedback3 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream); -GLAPI void APIENTRY glBeginQueryIndexed (GLenum target, GLuint index, GLuint id); -GLAPI void APIENTRY glEndQueryIndexed (GLenum target, GLuint index); -GLAPI void APIENTRY glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); -typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); -#endif - -#ifndef GL_ARB_ES2_compatibility -#define GL_ARB_ES2_compatibility 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReleaseShaderCompiler (void); -GLAPI void APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); -GLAPI void APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GLAPI void APIENTRY glDepthRangef (GLclampf n, GLclampf f); -GLAPI void APIENTRY glClearDepthf (GLclampf d); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); -typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); -typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC) (GLclampf d); -#endif - -#ifndef GL_ARB_get_program_binary -#define GL_ARB_get_program_binary 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); -GLAPI void APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); -GLAPI void APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); -typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -#endif - -#ifndef GL_ARB_separate_shader_objects -#define GL_ARB_separate_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); -GLAPI void APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); -GLAPI GLuint APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar* *strings); -GLAPI void APIENTRY glBindProgramPipeline (GLuint pipeline); -GLAPI void APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); -GLAPI void APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); -GLAPI GLboolean APIENTRY glIsProgramPipeline (GLuint pipeline); -GLAPI void APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); -GLAPI void APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); -GLAPI void APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); -GLAPI void APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1d (GLuint program, GLint location, GLdouble v0); -GLAPI void APIENTRY glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); -GLAPI void APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1); -GLAPI void APIENTRY glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); -GLAPI void APIENTRY glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); -GLAPI void APIENTRY glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glValidateProgramPipeline (GLuint pipeline); -GLAPI void APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar* *strings); -typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); -typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -#endif - -#ifndef GL_ARB_vertex_attrib_64bit -#define GL_ARB_vertex_attrib_64bit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1d (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttribL1dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL2dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL3dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL4dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params); -#endif - -#ifndef GL_ARB_viewport_array -#define GL_ARB_viewport_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -GLAPI void APIENTRY glViewportIndexedfv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glScissorArrayv (GLuint first, GLsizei count, const GLint *v); -GLAPI void APIENTRY glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -GLAPI void APIENTRY glScissorIndexedv (GLuint index, const GLint *v); -GLAPI void APIENTRY glDepthRangeArrayv (GLuint first, GLsizei count, const GLclampd *v); -GLAPI void APIENTRY glDepthRangeIndexed (GLuint index, GLclampd n, GLclampd f); -GLAPI void APIENTRY glGetFloati_v (GLenum target, GLuint index, GLfloat *data); -GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v); -typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd *v); -typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); -typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data); -#endif - -#ifndef GL_ARB_cl_event -#define GL_ARB_cl_event 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB (struct _cl_context * context, struct _cl_event * event, GLbitfield flags); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLsync (APIENTRYP PFNGLCREATESYNCFROMCLEVENTARBPROC) (struct _cl_context * context, struct _cl_event * event, GLbitfield flags); -#endif - -#ifndef GL_ARB_debug_output -#define GL_ARB_debug_output 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDebugMessageControlARB (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GLAPI void APIENTRY glDebugMessageInsertARB (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GLAPI void APIENTRY glDebugMessageCallbackARB (GLDEBUGPROCARB callback, const GLvoid *userParam); -GLAPI GLuint APIENTRY glGetDebugMessageLogARB (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const GLvoid *userParam); -typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -#endif - -#ifndef GL_ARB_robustness -#define GL_ARB_robustness 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLenum APIENTRY glGetGraphicsResetStatusARB (void); -GLAPI void APIENTRY glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -GLAPI void APIENTRY glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -GLAPI void APIENTRY glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint *v); -GLAPI void APIENTRY glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat *values); -GLAPI void APIENTRY glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint *values); -GLAPI void APIENTRY glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort *values); -GLAPI void APIENTRY glGetnPolygonStippleARB (GLsizei bufSize, GLubyte *pattern); -GLAPI void APIENTRY glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table); -GLAPI void APIENTRY glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image); -GLAPI void APIENTRY glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span); -GLAPI void APIENTRY glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values); -GLAPI void APIENTRY glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values); -GLAPI void APIENTRY glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img); -GLAPI void APIENTRY glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); -GLAPI void APIENTRY glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, GLvoid *img); -GLAPI void APIENTRY glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GLAPI void APIENTRY glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint *params); -GLAPI void APIENTRY glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -GLAPI void APIENTRY glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void); -typedef void (APIENTRYP PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -typedef void (APIENTRYP PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -typedef void (APIENTRYP PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v); -typedef void (APIENTRYP PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat *values); -typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint *values); -typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort *values); -typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte *pattern); -typedef void (APIENTRYP PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table); -typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image); -typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values); -typedef void (APIENTRYP PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values); -typedef void (APIENTRYP PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img); -typedef void (APIENTRYP PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); -typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, GLvoid *img); -typedef void (APIENTRYP PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -#endif - -#ifndef GL_ARB_shader_stencil_export -#define GL_ARB_shader_stencil_export 1 -#endif - -#ifndef GL_ARB_base_instance -#define GL_ARB_base_instance 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); -GLAPI void APIENTRY glDrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance); -GLAPI void APIENTRY glDrawElementsInstancedBaseVertexBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); -#endif - -#ifndef GL_ARB_shading_language_420pack -#define GL_ARB_shading_language_420pack 1 -#endif - -#ifndef GL_ARB_transform_feedback_instanced -#define GL_ARB_transform_feedback_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawTransformFeedbackInstanced (GLenum mode, GLuint id, GLsizei primcount); -GLAPI void APIENTRY glDrawTransformFeedbackStreamInstanced (GLenum mode, GLuint id, GLuint stream, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei primcount); -#endif - -#ifndef GL_ARB_compressed_texture_pixel_storage -#define GL_ARB_compressed_texture_pixel_storage 1 -#endif - -#ifndef GL_ARB_conservative_depth -#define GL_ARB_conservative_depth 1 -#endif - -#ifndef GL_ARB_internalformat_query -#define GL_ARB_internalformat_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif - -#ifndef GL_ARB_map_buffer_alignment -#define GL_ARB_map_buffer_alignment 1 -#endif - -#ifndef GL_ARB_shader_atomic_counters -#define GL_ARB_shader_atomic_counters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetActiveAtomicCounterBufferiv (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); -#endif - -#ifndef GL_ARB_shader_image_load_store -#define GL_ARB_shader_image_load_store 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GLAPI void APIENTRY glMemoryBarrier (GLbitfield barriers); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); -#endif - -#ifndef GL_ARB_shading_language_packing -#define GL_ARB_shading_language_packing 1 -#endif - -#ifndef GL_ARB_texture_storage -#define GL_ARB_texture_storage 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GLAPI void APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GLAPI void APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GLAPI void APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif - -#ifndef GL_EXT_abgr -#define GL_EXT_abgr 1 -#endif - -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColorEXT (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_EXT_polygon_offset 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat factor, GLfloat bias); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); -#endif - -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 -#endif - -#ifndef GL_EXT_texture3D -#define GL_EXT_texture3D 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage3DEXT (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_SGIS_texture_filter4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum target, GLenum filter, GLfloat *weights); -GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); -typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#endif - -#ifndef GL_EXT_subtexture -#define GL_EXT_subtexture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_EXT_copy_texture -#define GL_EXT_copy_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_EXT_histogram -#define GL_EXT_histogram 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetHistogramEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMinmaxEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glHistogramEXT (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glMinmaxEXT (GLenum target, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glResetHistogramEXT (GLenum target); -GLAPI void APIENTRY glResetMinmaxEXT (GLenum target); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); -#endif - -#ifndef GL_EXT_convolution -#define GL_EXT_convolution 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum target, GLenum pname, GLfloat params); -GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum target, GLenum pname, GLint params); -GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum target, GLenum format, GLenum type, GLvoid *image); -GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -#endif - -#ifndef GL_SGI_color_matrix -#define GL_SGI_color_matrix 1 -#endif - -#ifndef GL_SGI_color_table -#define GL_SGI_color_table 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableSGI (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glColorTableParameterivSGI (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyColorTableSGI (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glGetColorTableSGI (GLenum target, GLenum format, GLenum type, GLvoid *table); -GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum target, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_SGIX_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenSGIX (GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_SGIS_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum pname, GLint param); -GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum pname, const GLint *params); -GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum pname, GLint *params); -GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIS_texture4D -#define GL_SGIS_texture4D 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage4DSGIS (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_SGI_texture_color_table 1 -#endif - -#ifndef GL_EXT_cmyka -#define GL_EXT_cmyka 1 -#endif - -#ifndef GL_EXT_texture_object -#define GL_EXT_texture_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei n, const GLuint *textures, GLboolean *residences); -GLAPI void APIENTRY glBindTextureEXT (GLenum target, GLuint texture); -GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei n, const GLuint *textures); -GLAPI void APIENTRY glGenTexturesEXT (GLsizei n, GLuint *textures); -GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint texture); -GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei n, const GLuint *textures, const GLclampf *priorities); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); -typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); -typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); -typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_SGIS_detail_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum target, GLfloat *points); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_SGIS_sharpen_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum target, GLfloat *points); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_EXT_packed_pixels 1 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_SGIS_texture_lod 1 -#endif - -#ifndef GL_SGIS_multisample -#define GL_SGIS_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskSGIS (GLclampf value, GLboolean invert); -GLAPI void APIENTRY glSamplePatternSGIS (GLenum pattern); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_EXT_rescale_normal 1 -#endif - -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glArrayElementEXT (GLint i); -GLAPI void APIENTRY glColorPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -GLAPI void APIENTRY glDrawArraysEXT (GLenum mode, GLint first, GLsizei count); -GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei stride, GLsizei count, const GLboolean *pointer); -GLAPI void APIENTRY glGetPointervEXT (GLenum pname, GLvoid* *params); -GLAPI void APIENTRY glIndexPointerEXT (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -GLAPI void APIENTRY glNormalPointerEXT (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -GLAPI void APIENTRY glTexCoordPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -GLAPI void APIENTRY glVertexPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); -typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); -typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_misc_attribute -#define GL_EXT_misc_attribute 1 -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_SGIS_generate_mipmap 1 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_SGIX_clipmap 1 -#endif - -#ifndef GL_SGIX_shadow -#define GL_SGIX_shadow 1 -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_SGIS_texture_edge_clamp 1 -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_SGIS_texture_border_clamp 1 -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationEXT (GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_EXT_blend_subtract 1 -#endif - -#ifndef GL_EXT_blend_logic_op -#define GL_EXT_blend_logic_op 1 -#endif - -#ifndef GL_SGIX_interlace -#define GL_SGIX_interlace 1 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_SGIX_pixel_tiles 1 -#endif - -#ifndef GL_SGIX_texture_select -#define GL_SGIX_texture_select 1 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SGIX_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum pname, GLfloat param); -GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum pname, GLint param); -GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum pname, const GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_SGIX_texture_multi_buffer 1 -#endif - -#ifndef GL_EXT_point_parameters -#define GL_EXT_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfEXT (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvEXT (GLenum pname, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_SGIS_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfSGIS (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvSGIS (GLenum pname, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIX_instruments -#define GL_SGIX_instruments 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); -GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei size, GLint *buffer); -GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *marker_p); -GLAPI void APIENTRY glReadInstrumentsSGIX (GLint marker); -GLAPI void APIENTRY glStartInstrumentsSGIX (void); -GLAPI void APIENTRY glStopInstrumentsSGIX (GLint marker); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); -typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); -typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); -typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_SGIX_texture_scale_bias 1 -#endif - -#ifndef GL_SGIX_framezoom -#define GL_SGIX_framezoom 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameZoomSGIX (GLint factor); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#define GL_SGIX_tag_sample_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTagSampleBufferSGIX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); -#endif - -#ifndef GL_SGIX_polynomial_ffd -#define GL_SGIX_polynomial_ffd 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -GLAPI void APIENTRY glDeformSGIX (GLbitfield mask); -GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield mask); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_SGIX_reference_plane 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *equation); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); -#endif - -#ifndef GL_SGIX_flush_raster -#define GL_SGIX_flush_raster 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushRasterSGIX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_SGIX_depth_texture 1 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_SGIS_fog_function 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogFuncSGIS (GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *points); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_SGIX_fog_offset 1 -#endif - -#ifndef GL_HP_image_transform -#define GL_HP_image_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glImageTransformParameteriHP (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glImageTransformParameterfHP (GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glImageTransformParameterivHP (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum target, GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_HP_convolution_border_modes 1 -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_SGIX_texture_add_env 1 -#endif - -#ifndef GL_EXT_color_subtable -#define GL_EXT_color_subtable 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorSubTableEXT (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_PGI_vertex_hints 1 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PGI_misc_hints 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glHintPGI (GLenum target, GLint mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_EXT_paletted_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableEXT (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -GLAPI void APIENTRY glGetColorTableEXT (GLenum target, GLenum format, GLenum type, GLvoid *data); -GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_EXT_clip_volume_hint 1 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_SGIX_list_priority 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint list, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetListParameterivSGIX (GLuint list, GLenum pname, GLint *params); -GLAPI void APIENTRY glListParameterfSGIX (GLuint list, GLenum pname, GLfloat param); -GLAPI void APIENTRY glListParameterfvSGIX (GLuint list, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glListParameteriSGIX (GLuint list, GLenum pname, GLint param); -GLAPI void APIENTRY glListParameterivSGIX (GLuint list, GLenum pname, const GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_SGIX_ir_instrument1 1 -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_SGIX_calligraphic_fragment 1 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_SGIX_texture_lod_bias 1 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SGIX_shadow_ambient 1 -#endif - -#ifndef GL_EXT_index_texture -#define GL_EXT_index_texture 1 -#endif - -#ifndef GL_EXT_index_material -#define GL_EXT_index_material 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexMaterialEXT (GLenum face, GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); -#endif - -#ifndef GL_EXT_index_func -#define GL_EXT_index_func 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexFuncEXT (GLenum func, GLclampf ref); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_EXT_compiled_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLockArraysEXT (GLint first, GLsizei count); -GLAPI void APIENTRY glUnlockArraysEXT (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_EXT_cull_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCullParameterdvEXT (GLenum pname, GLdouble *params); -GLAPI void APIENTRY glCullParameterfvEXT (GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_SGIX_ycrcb 1 -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_SGIX_fragment_lighting 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum face, GLenum mode); -GLAPI void APIENTRY glFragmentLightfSGIX (GLenum light, GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum light, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentLightiSGIX (GLenum light, GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentLightivSGIX (GLenum light, GLenum pname, const GLint *params); -GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum pname, const GLint *params); -GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum face, GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum face, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum face, GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum face, GLenum pname, const GLint *params); -GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum light, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum light, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum face, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum face, GLenum pname, GLint *params); -GLAPI void APIENTRY glLightEnviSGIX (GLenum pname, GLint param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_IBM_rasterpos_clip 1 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_HP_texture_lighting 1 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_EXT_draw_range_elements 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -#endif - -#ifndef GL_WIN_phong_shading -#define GL_WIN_phong_shading 1 -#endif - -#ifndef GL_WIN_specular_fog -#define GL_WIN_specular_fog 1 -#endif - -#ifndef GL_EXT_light_texture -#define GL_EXT_light_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glApplyTextureEXT (GLenum mode); -GLAPI void APIENTRY glTextureLightEXT (GLenum pname); -GLAPI void APIENTRY glTextureMaterialEXT (GLenum face, GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_SGIX_blend_alpha_minmax 1 -#endif - -#ifndef GL_EXT_bgra -#define GL_EXT_bgra 1 -#endif - -#ifndef GL_SGIX_async -#define GL_SGIX_async 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint marker); -GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *markerp); -GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *markerp); -GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei range); -GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint marker, GLsizei range); -GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint marker); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); -typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); -typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); -typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); -typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); -typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); -#endif - -#ifndef GL_SGIX_async_pixel -#define GL_SGIX_async_pixel 1 -#endif - -#ifndef GL_SGIX_async_histogram -#define GL_SGIX_async_histogram 1 -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_INTEL_parallel_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexPointervINTEL (GLint size, GLenum type, const GLvoid* *pointer); -GLAPI void APIENTRY glNormalPointervINTEL (GLenum type, const GLvoid* *pointer); -GLAPI void APIENTRY glColorPointervINTEL (GLint size, GLenum type, const GLvoid* *pointer); -GLAPI void APIENTRY glTexCoordPointervINTEL (GLint size, GLenum type, const GLvoid* *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -#endif - -#ifndef GL_HP_occlusion_test -#define GL_HP_occlusion_test 1 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_EXT_pixel_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#define GL_EXT_pixel_transform_color_table 1 -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_EXT_shared_texture_palette 1 -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_EXT_separate_specular_color 1 -#endif - -#ifndef GL_EXT_secondary_color -#define GL_EXT_secondary_color 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue); -GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *v); -GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue); -GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *v); -GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue); -GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *v); -GLAPI void APIENTRY glSecondaryColor3iEXT (GLint red, GLint green, GLint blue); -GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *v); -GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue); -GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *v); -GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue); -GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *v); -GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue); -GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *v); -GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue); -GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *v); -GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_EXT_texture_perturb_normal 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureNormalEXT (GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -#endif - -#ifndef GL_EXT_fog_coord -#define GL_EXT_fog_coord 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogCoordfEXT (GLfloat coord); -GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *coord); -GLAPI void APIENTRY glFogCoorddEXT (GLdouble coord); -GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *coord); -GLAPI void APIENTRY glFogCoordPointerEXT (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_REND_screen_coordinates 1 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_EXT_coordinate_frame 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTangent3bEXT (GLbyte tx, GLbyte ty, GLbyte tz); -GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *v); -GLAPI void APIENTRY glTangent3dEXT (GLdouble tx, GLdouble ty, GLdouble tz); -GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *v); -GLAPI void APIENTRY glTangent3fEXT (GLfloat tx, GLfloat ty, GLfloat tz); -GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *v); -GLAPI void APIENTRY glTangent3iEXT (GLint tx, GLint ty, GLint tz); -GLAPI void APIENTRY glTangent3ivEXT (const GLint *v); -GLAPI void APIENTRY glTangent3sEXT (GLshort tx, GLshort ty, GLshort tz); -GLAPI void APIENTRY glTangent3svEXT (const GLshort *v); -GLAPI void APIENTRY glBinormal3bEXT (GLbyte bx, GLbyte by, GLbyte bz); -GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *v); -GLAPI void APIENTRY glBinormal3dEXT (GLdouble bx, GLdouble by, GLdouble bz); -GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *v); -GLAPI void APIENTRY glBinormal3fEXT (GLfloat bx, GLfloat by, GLfloat bz); -GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *v); -GLAPI void APIENTRY glBinormal3iEXT (GLint bx, GLint by, GLint bz); -GLAPI void APIENTRY glBinormal3ivEXT (const GLint *v); -GLAPI void APIENTRY glBinormal3sEXT (GLshort bx, GLshort by, GLshort bz); -GLAPI void APIENTRY glBinormal3svEXT (const GLshort *v); -GLAPI void APIENTRY glTangentPointerEXT (GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glBinormalPointerEXT (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); -typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); -typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); -typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); -typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); -typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); -typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); -typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); -typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); -typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); -typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_EXT_texture_env_combine 1 -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_APPLE_specular_vector 1 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_APPLE_transform_hint 1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_SGIX_fog_scale 1 -#endif - -#ifndef GL_SUNX_constant_data -#define GL_SUNX_constant_data 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFinishTextureSUNX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); -#endif - -#ifndef GL_SUN_global_alpha -#define GL_SUN_global_alpha 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte factor); -GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort factor); -GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint factor); -GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat factor); -GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble factor); -GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte factor); -GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort factor); -GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint factor); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); -#endif - -#ifndef GL_SUN_triangle_list -#define GL_SUN_triangle_list 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint code); -GLAPI void APIENTRY glReplacementCodeusSUN (GLushort code); -GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte code); -GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *code); -GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *code); -GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *code); -GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum type, GLsizei stride, const GLvoid* *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer); -#endif - -#ifndef GL_SUN_vertex -#define GL_SUN_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *tc, const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *rc, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *rc, const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_blend_func_separate -#define GL_INGR_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_color_clamp -#define GL_INGR_color_clamp 1 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INGR_interlace_read 1 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_EXT_stencil_wrap 1 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_EXT_422_pixels 1 -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NV_texgen_reflection 1 -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_SUN_convolution_border_modes 1 -#endif - -#ifndef GL_EXT_texture_env_add -#define GL_EXT_texture_env_add 1 -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_EXT_vertex_weighting 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexWeightfEXT (GLfloat weight); -GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *weight); -GLAPI void APIENTRY glVertexWeightPointerEXT (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_NV_light_max_exponent 1 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); -GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei length, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer); -#endif - -#ifndef GL_NV_register_combiners -#define GL_NV_register_combiners 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerParameterfvNV (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glCombinerParameterfNV (GLenum pname, GLfloat param); -GLAPI void APIENTRY glCombinerParameterivNV (GLenum pname, const GLint *params); -GLAPI void APIENTRY glCombinerParameteriNV (GLenum pname, GLint param); -GLAPI void APIENTRY glCombinerInputNV (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -GLAPI void APIENTRY glCombinerOutputNV (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -GLAPI void APIENTRY glFinalCombinerInputNV (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum stage, GLenum portion, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum variable, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum variable, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); -#endif - -#ifndef GL_NV_fog_distance -#define GL_NV_fog_distance 1 -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_NV_texgen_emboss 1 -#endif - -#ifndef GL_NV_blend_square -#define GL_NV_blend_square 1 -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_NV_texture_env_combine4 1 -#endif - -#ifndef GL_MESA_resize_buffers -#define GL_MESA_resize_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glResizeBuffersMESA (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); -#endif - -#ifndef GL_MESA_window_pos -#define GL_MESA_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dMESA (GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *v); -GLAPI void APIENTRY glWindowPos2fMESA (GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *v); -GLAPI void APIENTRY glWindowPos2iMESA (GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *v); -GLAPI void APIENTRY glWindowPos2sMESA (GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *v); -GLAPI void APIENTRY glWindowPos3dMESA (GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *v); -GLAPI void APIENTRY glWindowPos3fMESA (GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *v); -GLAPI void APIENTRY glWindowPos3iMESA (GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *v); -GLAPI void APIENTRY glWindowPos3sMESA (GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *v); -GLAPI void APIENTRY glWindowPos4dMESA (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *v); -GLAPI void APIENTRY glWindowPos4fMESA (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *v); -GLAPI void APIENTRY glWindowPos4iMESA (GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *v); -GLAPI void APIENTRY glWindowPos4sMESA (GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_IBM_cull_vertex 1 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#define GL_IBM_multimode_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride); -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_IBM_vertex_array_lists 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorPointerListIBM (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint stride, const GLboolean* *pointer, GLint ptrstride); -GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -GLAPI void APIENTRY glIndexPointerListIBM (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -GLAPI void APIENTRY glNormalPointerListIBM (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -GLAPI void APIENTRY glTexCoordPointerListIBM (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -GLAPI void APIENTRY glVertexPointerListIBM (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -#endif - -#ifndef GL_SGIX_subsample -#define GL_SGIX_subsample 1 -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_SGIX_ycrcba 1 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#define GL_SGIX_ycrcb_subsample 1 -#endif - -#ifndef GL_SGIX_depth_pass_instrument -#define GL_SGIX_depth_pass_instrument 1 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_3DFX_texture_compression_FXT1 1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_3DFX_multisample 1 -#endif - -#ifndef GL_3DFX_tbuffer -#define GL_3DFX_tbuffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTbufferMask3DFX (GLuint mask); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); -#endif - -#ifndef GL_EXT_multisample -#define GL_EXT_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskEXT (GLclampf value, GLboolean invert); -GLAPI void APIENTRY glSamplePatternEXT (GLenum pattern); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_SGIX_vertex_preclip 1 -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_SGIX_convolution_accuracy 1 -#endif - -#ifndef GL_SGIX_resample -#define GL_SGIX_resample 1 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_SGIS_point_line_texgen 1 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_SGIS_texture_color_mask 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#endif - -#ifndef GL_SGIX_igloo_interface -#define GL_SGIX_igloo_interface 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum pname, const GLvoid *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params); -#endif - -#ifndef GL_EXT_texture_env_dot3 -#define GL_EXT_texture_env_dot3 1 -#endif - -#ifndef GL_ATI_texture_mirror_once -#define GL_ATI_texture_mirror_once 1 -#endif - -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); -GLAPI void APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); -GLAPI GLboolean APIENTRY glIsFenceNV (GLuint fence); -GLAPI GLboolean APIENTRY glTestFenceNV (GLuint fence); -GLAPI void APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); -GLAPI void APIENTRY glFinishFenceNV (GLuint fence); -GLAPI void APIENTRY glSetFenceNV (GLuint fence, GLenum condition); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -#endif - -#ifndef GL_NV_evaluators -#define GL_NV_evaluators 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); -GLAPI void APIENTRY glMapParameterivNV (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMapParameterfvNV (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); -GLAPI void APIENTRY glGetMapParameterivNV (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMapParameterfvNV (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum target, GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glEvalMapsNV (GLenum target, GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); -typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); -#endif - -#ifndef GL_NV_packed_depth_stencil -#define GL_NV_packed_depth_stencil 1 -#endif - -#ifndef GL_NV_register_combiners2 -#define GL_NV_register_combiners2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum stage, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_NV_texture_compression_vtc -#define GL_NV_texture_compression_vtc 1 -#endif - -#ifndef GL_NV_texture_rectangle -#define GL_NV_texture_rectangle 1 -#endif - -#ifndef GL_NV_texture_shader -#define GL_NV_texture_shader 1 -#endif - -#ifndef GL_NV_texture_shader2 -#define GL_NV_texture_shader2 1 -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_NV_vertex_array_range2 1 -#endif - -#ifndef GL_NV_vertex_program -#define GL_NV_vertex_program 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei n, const GLuint *programs, GLboolean *residences); -GLAPI void APIENTRY glBindProgramNV (GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteProgramsNV (GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glExecuteProgramNV (GLenum target, GLuint id, const GLfloat *params); -GLAPI void APIENTRY glGenProgramsNV (GLsizei n, GLuint *programs); -GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum target, GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetProgramivNV (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramStringNV (GLuint id, GLenum pname, GLubyte *program); -GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum target, GLuint address, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribivNV (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint index, GLenum pname, GLvoid* *pointer); -GLAPI GLboolean APIENTRY glIsProgramNV (GLuint id); -GLAPI void APIENTRY glLoadProgramNV (GLenum target, GLuint id, GLsizei len, const GLubyte *program); -GLAPI void APIENTRY glProgramParameter4dNV (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramParameter4dvNV (GLenum target, GLuint index, const GLdouble *v); -GLAPI void APIENTRY glProgramParameter4fNV (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramParameter4fvNV (GLenum target, GLuint index, const GLfloat *v); -GLAPI void APIENTRY glProgramParameters4dvNV (GLenum target, GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glProgramParameters4fvNV (GLenum target, GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glTrackMatrixNV (GLenum target, GLuint address, GLenum matrix, GLenum transform); -GLAPI void APIENTRY glVertexAttribPointerNV (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glVertexAttrib1dNV (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1fNV (GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1sNV (GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2dNV (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2fNV (GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2sNV (GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3sNV (GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4sNV (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs1svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs2svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs3svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs4svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint index, GLsizei count, const GLubyte *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); -typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); -typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); -#endif - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_SGIX_texture_coordinate_clamp 1 -#endif - -#ifndef GL_SGIX_scalebias_hint -#define GL_SGIX_scalebias_hint 1 -#endif - -#ifndef GL_OML_interlace -#define GL_OML_interlace 1 -#endif - -#ifndef GL_OML_subsample -#define GL_OML_subsample 1 -#endif - -#ifndef GL_OML_resample -#define GL_OML_resample 1 -#endif - -#ifndef GL_NV_copy_depth_to_color -#define GL_NV_copy_depth_to_color 1 -#endif - -#ifndef GL_ATI_envmap_bumpmap -#define GL_ATI_envmap_bumpmap 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBumpParameterivATI (GLenum pname, const GLint *param); -GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum pname, const GLfloat *param); -GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum pname, GLint *param); -GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -#endif - -#ifndef GL_ATI_fragment_shader -#define GL_ATI_fragment_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint range); -GLAPI void APIENTRY glBindFragmentShaderATI (GLuint id); -GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint id); -GLAPI void APIENTRY glBeginFragmentShaderATI (void); -GLAPI void APIENTRY glEndFragmentShaderATI (void); -GLAPI void APIENTRY glPassTexCoordATI (GLuint dst, GLuint coord, GLenum swizzle); -GLAPI void APIENTRY glSampleMapATI (GLuint dst, GLuint interp, GLenum swizzle); -GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint dst, const GLfloat *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); -typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); -typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); -#endif - -#ifndef GL_ATI_pn_triangles -#define GL_ATI_pn_triangles 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPNTrianglesiATI (GLenum pname, GLint param); -GLAPI void APIENTRY glPNTrianglesfATI (GLenum pname, GLfloat param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); -#endif - -#ifndef GL_ATI_vertex_array_object -#define GL_ATI_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei size, const GLvoid *pointer, GLenum usage); -GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint buffer); -GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); -GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint buffer, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetObjectBufferivATI (GLuint buffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glFreeObjectBufferATI (GLuint buffer); -GLAPI void APIENTRY glArrayObjectATI (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum array, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetArrayObjectivATI (GLenum array, GLenum pname, GLint *params); -GLAPI void APIENTRY glVariantArrayObjectATI (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint id, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint id, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage); -typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); -#endif - -#ifndef GL_EXT_vertex_shader -#define GL_EXT_vertex_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVertexShaderEXT (void); -GLAPI void APIENTRY glEndVertexShaderEXT (void); -GLAPI void APIENTRY glBindVertexShaderEXT (GLuint id); -GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint range); -GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint id); -GLAPI void APIENTRY glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1); -GLAPI void APIENTRY glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -GLAPI void APIENTRY glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -GLAPI void APIENTRY glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -GLAPI void APIENTRY glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -GLAPI void APIENTRY glInsertComponentEXT (GLuint res, GLuint src, GLuint num); -GLAPI void APIENTRY glExtractComponentEXT (GLuint res, GLuint src, GLuint num); -GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -GLAPI void APIENTRY glSetInvariantEXT (GLuint id, GLenum type, const GLvoid *addr); -GLAPI void APIENTRY glSetLocalConstantEXT (GLuint id, GLenum type, const GLvoid *addr); -GLAPI void APIENTRY glVariantbvEXT (GLuint id, const GLbyte *addr); -GLAPI void APIENTRY glVariantsvEXT (GLuint id, const GLshort *addr); -GLAPI void APIENTRY glVariantivEXT (GLuint id, const GLint *addr); -GLAPI void APIENTRY glVariantfvEXT (GLuint id, const GLfloat *addr); -GLAPI void APIENTRY glVariantdvEXT (GLuint id, const GLdouble *addr); -GLAPI void APIENTRY glVariantubvEXT (GLuint id, const GLubyte *addr); -GLAPI void APIENTRY glVariantusvEXT (GLuint id, const GLushort *addr); -GLAPI void APIENTRY glVariantuivEXT (GLuint id, const GLuint *addr); -GLAPI void APIENTRY glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, const GLvoid *addr); -GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint id); -GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint id); -GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum light, GLenum value); -GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum face, GLenum value); -GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value); -GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum unit, GLenum value); -GLAPI GLuint APIENTRY glBindParameterEXT (GLenum value); -GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint id, GLenum cap); -GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); -GLAPI void APIENTRY glGetVariantPointervEXT (GLuint id, GLenum value, GLvoid* *data); -GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); -GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); -typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); -typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); -typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); -typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); -typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); -typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); -typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); -typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); -typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); -typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); -typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); -typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr); -typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); -typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); -typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data); -typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -#endif - -#ifndef GL_ATI_vertex_streams -#define GL_ATI_vertex_streams 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexStream1sATI (GLenum stream, GLshort x); -GLAPI void APIENTRY glVertexStream1svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream1iATI (GLenum stream, GLint x); -GLAPI void APIENTRY glVertexStream1ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream1fATI (GLenum stream, GLfloat x); -GLAPI void APIENTRY glVertexStream1fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream1dATI (GLenum stream, GLdouble x); -GLAPI void APIENTRY glVertexStream1dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream2sATI (GLenum stream, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexStream2svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream2iATI (GLenum stream, GLint x, GLint y); -GLAPI void APIENTRY glVertexStream2ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexStream2fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexStream2dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexStream3svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexStream3ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexStream3fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexStream3dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexStream4svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexStream4ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexStream4fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexStream4dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glNormalStream3bATI (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -GLAPI void APIENTRY glNormalStream3bvATI (GLenum stream, const GLbyte *coords); -GLAPI void APIENTRY glNormalStream3sATI (GLenum stream, GLshort nx, GLshort ny, GLshort nz); -GLAPI void APIENTRY glNormalStream3svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glNormalStream3iATI (GLenum stream, GLint nx, GLint ny, GLint nz); -GLAPI void APIENTRY glNormalStream3ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glNormalStream3fATI (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -GLAPI void APIENTRY glNormalStream3fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glNormalStream3dATI (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -GLAPI void APIENTRY glNormalStream3dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum stream); -GLAPI void APIENTRY glVertexBlendEnviATI (GLenum pname, GLint param); -GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum pname, GLfloat param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); -#endif - -#ifndef GL_ATI_element_array -#define GL_ATI_element_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerATI (GLenum type, const GLvoid *pointer); -GLAPI void APIENTRY glDrawElementArrayATI (GLenum mode, GLsizei count); -GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum mode, GLuint start, GLuint end, GLsizei count); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); -#endif - -#ifndef GL_SUN_mesh_array -#define GL_SUN_mesh_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum mode, GLint first, GLsizei count, GLsizei width); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); -#endif - -#ifndef GL_SUN_slice_accum -#define GL_SUN_slice_accum 1 -#endif - -#ifndef GL_NV_multisample_filter_hint -#define GL_NV_multisample_filter_hint 1 -#endif - -#ifndef GL_NV_depth_clamp -#define GL_NV_depth_clamp 1 -#endif - -#ifndef GL_NV_occlusion_query -#define GL_NV_occlusion_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint id); -GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint id); -GLAPI void APIENTRY glEndOcclusionQueryNV (void); -GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint id, GLenum pname, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); -#endif - -#ifndef GL_NV_point_sprite -#define GL_NV_point_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameteriNV (GLenum pname, GLint param); -GLAPI void APIENTRY glPointParameterivNV (GLenum pname, const GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_NV_texture_shader3 -#define GL_NV_texture_shader3 1 -#endif - -#ifndef GL_NV_vertex_program1_1 -#define GL_NV_vertex_program1_1 1 -#endif - -#ifndef GL_EXT_shadow_funcs -#define GL_EXT_shadow_funcs 1 -#endif - -#ifndef GL_EXT_stencil_two_side -#define GL_EXT_stencil_two_side 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum face); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); -#endif - -#ifndef GL_ATI_text_fragment_shader -#define GL_ATI_text_fragment_shader 1 -#endif - -#ifndef GL_APPLE_client_storage -#define GL_APPLE_client_storage 1 -#endif - -#ifndef GL_APPLE_element_array -#define GL_APPLE_element_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerAPPLE (GLenum type, const GLvoid *pointer); -GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum mode, GLint first, GLsizei count); -GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#endif - -#ifndef GL_APPLE_fence -#define GL_APPLE_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenFencesAPPLE (GLsizei n, GLuint *fences); -GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei n, const GLuint *fences); -GLAPI void APIENTRY glSetFenceAPPLE (GLuint fence); -GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint fence); -GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint fence); -GLAPI void APIENTRY glFinishFenceAPPLE (GLuint fence); -GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum object, GLuint name); -GLAPI void APIENTRY glFinishObjectAPPLE (GLenum object, GLint name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); -typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); -typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); -#endif - -#ifndef GL_APPLE_vertex_array_object -#define GL_APPLE_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint array); -GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei n, const GLuint *arrays); -GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei n, GLuint *arrays); -GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint array); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); -#endif - -#ifndef GL_APPLE_vertex_array_range -#define GL_APPLE_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei length, GLvoid *pointer); -GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei length, GLvoid *pointer); -GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum pname, GLint param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); -#endif - -#ifndef GL_APPLE_ycbcr_422 -#define GL_APPLE_ycbcr_422 1 -#endif - -#ifndef GL_S3_s3tc -#define GL_S3_s3tc 1 -#endif - -#ifndef GL_ATI_draw_buffers -#define GL_ATI_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersATI (GLsizei n, const GLenum *bufs); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); -#endif - -#ifndef GL_ATI_pixel_format_float -#define GL_ATI_pixel_format_float 1 -/* This is really a WGL extension, but defines some associated GL enums. - * ATI does not export "GL_ATI_pixel_format_float" in the GL_EXTENSIONS string. - */ -#endif - -#ifndef GL_ATI_texture_env_combine3 -#define GL_ATI_texture_env_combine3 1 -#endif - -#ifndef GL_ATI_texture_float -#define GL_ATI_texture_float 1 -#endif - -#ifndef GL_NV_float_buffer -#define GL_NV_float_buffer 1 -#endif - -#ifndef GL_NV_fragment_program -#define GL_NV_fragment_program 1 -/* Some NV_fragment_program entry points are shared with ARB_vertex_program. */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#endif - -#ifndef GL_NV_half_float -#define GL_NV_half_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertex2hNV (GLhalfNV x, GLhalfNV y); -GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glVertex3hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z); -GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glVertex4hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glNormal3hNV (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glColor4hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV s); -GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV s, GLhalfNV t); -GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r); -GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum target, GLhalfNV s); -GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum target, GLhalfNV s, GLhalfNV t); -GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glFogCoordhNV (GLhalfNV fog); -GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *fog); -GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV weight); -GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *weight); -GLAPI void APIENTRY glVertexAttrib1hNV (GLuint index, GLhalfNV x); -GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib2hNV (GLuint index, GLhalfNV x, GLhalfNV y); -GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib3hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib4hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); -typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); -typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -#endif - -#ifndef GL_NV_pixel_data_range -#define GL_NV_pixel_data_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelDataRangeNV (GLenum target, GLsizei length, GLvoid *pointer); -GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum target); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); -#endif - -#ifndef GL_NV_primitive_restart -#define GL_NV_primitive_restart 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPrimitiveRestartNV (void); -GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint index); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); -#endif - -#ifndef GL_NV_texture_expand_normal -#define GL_NV_texture_expand_normal 1 -#endif - -#ifndef GL_NV_vertex_program2 -#define GL_NV_vertex_program2 1 -#endif - -#ifndef GL_ATI_map_object_buffer -#define GL_ATI_map_object_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLvoid* APIENTRY glMapObjectBufferATI (GLuint buffer); -GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint buffer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLvoid* (APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); -#endif - -#ifndef GL_ATI_separate_stencil -#define GL_ATI_separate_stencil 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#endif - -#ifndef GL_ATI_vertex_attrib_array_object -#define GL_ATI_vertex_attrib_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint index, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); -#endif - -#ifndef GL_OES_read_format -#define GL_OES_read_format 1 -#endif - -#ifndef GL_EXT_depth_bounds_test -#define GL_EXT_depth_bounds_test 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthBoundsEXT (GLclampd zmin, GLclampd zmax); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); -#endif - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_EXT_texture_mirror_clamp 1 -#endif - -#ifndef GL_EXT_blend_equation_separate -#define GL_EXT_blend_equation_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum modeRGB, GLenum modeAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); -#endif - -#ifndef GL_MESA_pack_invert -#define GL_MESA_pack_invert 1 -#endif - -#ifndef GL_MESA_ycbcr_texture -#define GL_MESA_ycbcr_texture 1 -#endif - -#ifndef GL_EXT_pixel_buffer_object -#define GL_EXT_pixel_buffer_object 1 -#endif - -#ifndef GL_NV_fragment_program_option -#define GL_NV_fragment_program_option 1 -#endif - -#ifndef GL_NV_fragment_program2 -#define GL_NV_fragment_program2 1 -#endif - -#ifndef GL_NV_vertex_program2_option -#define GL_NV_vertex_program2_option 1 -#endif - -#ifndef GL_NV_vertex_program3 -#define GL_NV_vertex_program3 1 -#endif - -#ifndef GL_EXT_framebuffer_object -#define GL_EXT_framebuffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint renderbuffer); -GLAPI void APIENTRY glBindRenderbufferEXT (GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei n, const GLuint *renderbuffers); -GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei n, GLuint *renderbuffers); -GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint framebuffer); -GLAPI void APIENTRY glBindFramebufferEXT (GLenum target, GLuint framebuffer); -GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei n, const GLuint *framebuffers); -GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei n, GLuint *framebuffers); -GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum target); -GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateMipmapEXT (GLenum target); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); -typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); -#endif - -#ifndef GL_GREMEDY_string_marker -#define GL_GREMEDY_string_marker 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei len, const GLvoid *string); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string); -#endif - -#ifndef GL_EXT_packed_depth_stencil -#define GL_EXT_packed_depth_stencil 1 -#endif - -#ifndef GL_EXT_stencil_clear_tag -#define GL_EXT_stencil_clear_tag 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilClearTagEXT (GLsizei stencilTagBits, GLuint stencilClearTag); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag); -#endif - -#ifndef GL_EXT_texture_sRGB -#define GL_EXT_texture_sRGB 1 -#endif - -#ifndef GL_EXT_framebuffer_blit -#define GL_EXT_framebuffer_blit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif - -#ifndef GL_EXT_framebuffer_multisample -#define GL_EXT_framebuffer_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif - -#ifndef GL_MESAX_texture_stack -#define GL_MESAX_texture_stack 1 -#endif - -#ifndef GL_EXT_timer_query -#define GL_EXT_timer_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64EXT *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); -#endif - -#ifndef GL_EXT_gpu_program_parameters -#define GL_EXT_gpu_program_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -#endif - -#ifndef GL_APPLE_flush_buffer_range -#define GL_APPLE_flush_buffer_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum target, GLintptr offset, GLsizeiptr size); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); -#endif - -#ifndef GL_NV_gpu_program4 -#define GL_NV_gpu_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum target, GLuint index, GLuint *params); -GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum target, GLuint index, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); -#endif - -#ifndef GL_NV_geometry_program4 -#define GL_NV_geometry_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramVertexLimitNV (GLenum target, GLint limit); -GLAPI void APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif - -#ifndef GL_EXT_geometry_shader4 -#define GL_EXT_geometry_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); -#endif - -#ifndef GL_NV_vertex_program4 -#define GL_NV_vertex_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint index, GLint x); -GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint index, GLint x, GLint y); -GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint index, GLuint x); -GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y); -GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z); -GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); -#endif - -#ifndef GL_EXT_gpu_shader4 -#define GL_EXT_gpu_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetUniformuivEXT (GLuint program, GLint location, GLuint *params); -GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint program, const GLchar *name); -GLAPI void APIENTRY glUniform1uiEXT (GLint location, GLuint v0); -GLAPI void APIENTRY glUniform2uiEXT (GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -#endif - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif - -#ifndef GL_EXT_packed_float -#define GL_EXT_packed_float 1 -#endif - -#ifndef GL_EXT_texture_array -#define GL_EXT_texture_array 1 -#endif - -#ifndef GL_EXT_texture_buffer_object -#define GL_EXT_texture_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); -#endif - -#ifndef GL_EXT_texture_compression_latc -#define GL_EXT_texture_compression_latc 1 -#endif - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_EXT_texture_compression_rgtc 1 -#endif - -#ifndef GL_EXT_texture_shared_exponent -#define GL_EXT_texture_shared_exponent 1 -#endif - -#ifndef GL_NV_depth_buffer_float -#define GL_NV_depth_buffer_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthRangedNV (GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glClearDepthdNV (GLdouble depth); -GLAPI void APIENTRY glDepthBoundsdNV (GLdouble zmin, GLdouble zmax); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); -typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); -#endif - -#ifndef GL_NV_fragment_program4 -#define GL_NV_fragment_program4 1 -#endif - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_NV_framebuffer_multisample_coverage 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_EXT_framebuffer_sRGB 1 -#endif - -#ifndef GL_NV_geometry_shader4 -#define GL_NV_geometry_shader4 1 -#endif - -#ifndef GL_NV_parameter_buffer_object -#define GL_NV_parameter_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); -#endif - -#ifndef GL_EXT_draw_buffers2 -#define GL_EXT_draw_buffers2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum target, GLuint index, GLboolean *data); -GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum target, GLuint index, GLint *data); -GLAPI void APIENTRY glEnableIndexedEXT (GLenum target, GLuint index); -GLAPI void APIENTRY glDisableIndexedEXT (GLenum target, GLuint index); -GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum target, GLuint index); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); -typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); -#endif - -#ifndef GL_NV_transform_feedback -#define GL_NV_transform_feedback 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedbackNV (void); -GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint count, const GLint *attribs, GLenum bufferMode); -GLAPI void APIENTRY glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -GLAPI void APIENTRY glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -GLAPI void APIENTRY glActiveVaryingNV (GLuint program, const GLchar *name); -GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetActiveVaryingNV (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint program, GLuint index, GLint *location); -GLAPI void APIENTRY glTransformFeedbackStreamAttribsNV (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); -#endif - -#ifndef GL_EXT_bindable_uniform -#define GL_EXT_bindable_uniform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformBufferEXT (GLuint program, GLint location, GLuint buffer); -GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint program, GLint location); -GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint program, GLint location); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); -typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); -typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); -#endif - -#ifndef GL_EXT_texture_integer -#define GL_EXT_texture_integer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha); -GLAPI void APIENTRY glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); -typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); -#endif - -#ifndef GL_GREMEDY_frame_terminator -#define GL_GREMEDY_frame_terminator 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameTerminatorGREMEDY (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void); -#endif - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode); -GLAPI void APIENTRY glEndConditionalRenderNV (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); -#endif - -#ifndef GL_NV_present_video -#define GL_NV_present_video 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPresentFrameKeyedNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); -GLAPI void APIENTRY glPresentFrameDualFillNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -GLAPI void APIENTRY glGetVideoivNV (GLuint video_slot, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint *params); -GLAPI void APIENTRY glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); -typedef void (APIENTRYP PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -typedef void (APIENTRYP PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT *params); -#endif - -#ifndef GL_EXT_transform_feedback -#define GL_EXT_transform_feedback 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackEXT (GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedbackEXT (void); -GLAPI void APIENTRY glBindBufferRangeEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -GLAPI void APIENTRY glBindBufferBaseEXT (GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode); -GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -#endif - -#ifndef GL_EXT_direct_state_access -#define GL_EXT_direct_state_access 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClientAttribDefaultEXT (GLbitfield mask); -GLAPI void APIENTRY glPushClientAttribDefaultEXT (GLbitfield mask); -GLAPI void APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixLoadIdentityEXT (GLenum mode); -GLAPI void APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glMatrixPopEXT (GLenum mode); -GLAPI void APIENTRY glMatrixPushEXT (GLenum mode); -GLAPI void APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glTextureParameterfEXT (GLuint texture, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glTextureParameteriEXT (GLuint texture, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetTextureImageEXT (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -GLAPI void APIENTRY glGetTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTextureLevelParameterfvEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetTextureLevelParameterivEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void APIENTRY glTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glMultiTexParameterfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexParameteriEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -GLAPI void APIENTRY glGetMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void APIENTRY glMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glBindMultiTextureEXT (GLenum texunit, GLenum target, GLuint texture); -GLAPI void APIENTRY glEnableClientStateIndexedEXT (GLenum array, GLuint index); -GLAPI void APIENTRY glDisableClientStateIndexedEXT (GLenum array, GLuint index); -GLAPI void APIENTRY glMultiTexCoordPointerEXT (GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glMultiTexEnvfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexEnviEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexGendEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -GLAPI void APIENTRY glMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); -GLAPI void APIENTRY glMultiTexGenfEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexGeniEXT (GLenum texunit, GLenum coord, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); -GLAPI void APIENTRY glGetMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFloatIndexedvEXT (GLenum target, GLuint index, GLfloat *data); -GLAPI void APIENTRY glGetDoubleIndexedvEXT (GLenum target, GLuint index, GLdouble *data); -GLAPI void APIENTRY glGetPointerIndexedvEXT (GLenum target, GLuint index, GLvoid* *data); -GLAPI void APIENTRY glCompressedTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glGetCompressedTextureImageEXT (GLuint texture, GLenum target, GLint lod, GLvoid *img); -GLAPI void APIENTRY glCompressedMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glGetCompressedMultiTexImageEXT (GLenum texunit, GLenum target, GLint lod, GLvoid *img); -GLAPI void APIENTRY glNamedProgramStringEXT (GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string); -GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT (GLuint program, GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT (GLuint program, GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT (GLuint program, GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT (GLuint program, GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetNamedProgramivEXT (GLuint program, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetNamedProgramStringEXT (GLuint program, GLenum target, GLenum pname, GLvoid *string); -GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT (GLuint program, GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT (GLuint program, GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT (GLuint program, GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT (GLuint program, GLenum target, GLuint index, GLuint *params); -GLAPI void APIENTRY glTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0); -GLAPI void APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0); -GLAPI void APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0); -GLAPI void APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glNamedBufferDataEXT (GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); -GLAPI void APIENTRY glNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data); -GLAPI GLvoid* APIENTRY glMapNamedBufferEXT (GLuint buffer, GLenum access); -GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT (GLuint buffer); -GLAPI GLvoid* APIENTRY glMapNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -GLAPI void APIENTRY glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length); -GLAPI void APIENTRY glNamedCopyBufferSubDataEXT (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GLAPI void APIENTRY glGetNamedBufferParameterivEXT (GLuint buffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetNamedBufferPointervEXT (GLuint buffer, GLenum pname, GLvoid* *params); -GLAPI void APIENTRY glGetNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data); -GLAPI void APIENTRY glTextureBufferEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glMultiTexBufferEXT (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glNamedRenderbufferStorageEXT (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT (GLuint renderbuffer, GLenum pname, GLint *params); -GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT (GLuint framebuffer, GLenum target); -GLAPI void APIENTRY glNamedFramebufferTexture1DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTexture2DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTexture3DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateTextureMipmapEXT (GLuint texture, GLenum target); -GLAPI void APIENTRY glGenerateMultiTexMipmapEXT (GLenum texunit, GLenum target); -GLAPI void APIENTRY glFramebufferDrawBufferEXT (GLuint framebuffer, GLenum mode); -GLAPI void APIENTRY glFramebufferDrawBuffersEXT (GLuint framebuffer, GLsizei n, const GLenum *bufs); -GLAPI void APIENTRY glFramebufferReadBufferEXT (GLuint framebuffer, GLenum mode); -GLAPI void APIENTRY glGetFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glNamedFramebufferTextureEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -GLAPI void APIENTRY glTextureRenderbufferEXT (GLuint texture, GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glMultiTexRenderbufferEXT (GLenum texunit, GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x); -GLAPI void APIENTRY glProgramUniform2dEXT (GLuint program, GLint location, GLdouble x, GLdouble y); -GLAPI void APIENTRY glProgramUniform3dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glProgramUniform4dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramUniform1dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform2dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform3dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform4dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -typedef void (APIENTRYP PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); -typedef void (APIENTRYP PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data); -typedef void (APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid* *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, GLvoid *img); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, GLvoid *img); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, GLvoid *string); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); -typedef GLvoid* (APIENTRYP PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (APIENTRYP PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, GLvoid* *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data); -typedef void (APIENTRYP PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params); -typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); -typedef void (APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); -typedef void (APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -#endif - -#ifndef GL_EXT_vertex_array_bgra -#define GL_EXT_vertex_array_bgra 1 -#endif - -#ifndef GL_EXT_texture_swizzle -#define GL_EXT_texture_swizzle 1 -#endif - -#ifndef GL_NV_explicit_multisample -#define GL_NV_explicit_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetMultisamplefvNV (GLenum pname, GLuint index, GLfloat *val); -GLAPI void APIENTRY glSampleMaskIndexedNV (GLuint index, GLbitfield mask); -GLAPI void APIENTRY glTexRenderbufferNV (GLenum target, GLuint renderbuffer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (APIENTRYP PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); -typedef void (APIENTRYP PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); -#endif - -#ifndef GL_NV_transform_feedback2 -#define GL_NV_transform_feedback2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindTransformFeedbackNV (GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteTransformFeedbacksNV (GLsizei n, const GLuint *ids); -GLAPI void APIENTRY glGenTransformFeedbacksNV (GLsizei n, GLuint *ids); -GLAPI GLboolean APIENTRY glIsTransformFeedbackNV (GLuint id); -GLAPI void APIENTRY glPauseTransformFeedbackNV (void); -GLAPI void APIENTRY glResumeTransformFeedbackNV (void); -GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum mode, GLuint id); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids); -typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); -#endif - -#ifndef GL_ATI_meminfo -#define GL_ATI_meminfo 1 -#endif - -#ifndef GL_AMD_performance_monitor -#define GL_AMD_performance_monitor 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -GLAPI void APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -GLAPI void APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -GLAPI void APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -GLAPI void APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data); -GLAPI void APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); -GLAPI void APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); -GLAPI void APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -GLAPI void APIENTRY glBeginPerfMonitorAMD (GLuint monitor); -GLAPI void APIENTRY glEndPerfMonitorAMD (GLuint monitor); -GLAPI void APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data); -typedef void (APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -typedef void (APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); -typedef void (APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif - -#ifndef GL_AMD_texture_texture4 -#define GL_AMD_texture_texture4 1 -#endif - -#ifndef GL_AMD_vertex_shader_tesselator -#define GL_AMD_vertex_shader_tesselator 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTessellationFactorAMD (GLfloat factor); -GLAPI void APIENTRY glTessellationModeAMD (GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); -typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_provoking_vertex -#define GL_EXT_provoking_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProvokingVertexEXT (GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_texture_snorm -#define GL_EXT_texture_snorm 1 -#endif - -#ifndef GL_AMD_draw_buffers_blend -#define GL_AMD_draw_buffers_blend 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncIndexedAMD (GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparateIndexedAMD (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GLAPI void APIENTRY glBlendEquationIndexedAMD (GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -#endif - -#ifndef GL_APPLE_texture_range -#define GL_APPLE_texture_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureRangeAPPLE (GLenum target, GLsizei length, const GLvoid *pointer); -GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, GLvoid* *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid* *params); -#endif - -#ifndef GL_APPLE_float_pixels -#define GL_APPLE_float_pixels 1 -#endif - -#ifndef GL_APPLE_vertex_program_evaluators -#define GL_APPLE_vertex_program_evaluators 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glEnableVertexAttribAPPLE (GLuint index, GLenum pname); -GLAPI void APIENTRY glDisableVertexAttribAPPLE (GLuint index, GLenum pname); -GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE (GLuint index, GLenum pname); -GLAPI void APIENTRY glMapVertexAttrib1dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -GLAPI void APIENTRY glMapVertexAttrib1fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -GLAPI void APIENTRY glMapVertexAttrib2dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -GLAPI void APIENTRY glMapVertexAttrib2fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef GLboolean (APIENTRYP PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -#endif - -#ifndef GL_APPLE_aux_depth_stencil -#define GL_APPLE_aux_depth_stencil 1 -#endif - -#ifndef GL_APPLE_object_purgeable -#define GL_APPLE_object_purgeable 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); -GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); -GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); -typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params); -#endif - -#ifndef GL_APPLE_row_bytes -#define GL_APPLE_row_bytes 1 -#endif - -#ifndef GL_APPLE_rgb_422 -#define GL_APPLE_rgb_422 1 -#endif - -#ifndef GL_NV_video_capture -#define GL_NV_video_capture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVideoCaptureNV (GLuint video_capture_slot); -GLAPI void APIENTRY glBindVideoCaptureStreamBufferNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -GLAPI void APIENTRY glBindVideoCaptureStreamTextureNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -GLAPI void APIENTRY glEndVideoCaptureNV (GLuint video_capture_slot); -GLAPI void APIENTRY glGetVideoCaptureivNV (GLuint video_capture_slot, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); -GLAPI GLenum APIENTRY glVideoCaptureNV (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); -GLAPI void APIENTRY glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); -GLAPI void APIENTRY glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); -typedef GLenum (APIENTRYP PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); -typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); -#endif - -#ifndef GL_NV_copy_image -#define GL_NV_copy_image 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyImageSubDataNV (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif - -#ifndef GL_EXT_separate_shader_objects -#define GL_EXT_separate_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUseShaderProgramEXT (GLenum type, GLuint program); -GLAPI void APIENTRY glActiveProgramEXT (GLuint program); -GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *string); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); -typedef void (APIENTRYP PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar *string); -#endif - -#ifndef GL_NV_parameter_buffer_object2 -#define GL_NV_parameter_buffer_object2 1 -#endif - -#ifndef GL_NV_shader_buffer_load -#define GL_NV_shader_buffer_load 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMakeBufferResidentNV (GLenum target, GLenum access); -GLAPI void APIENTRY glMakeBufferNonResidentNV (GLenum target); -GLAPI GLboolean APIENTRY glIsBufferResidentNV (GLenum target); -GLAPI void APIENTRY glMakeNamedBufferResidentNV (GLuint buffer, GLenum access); -GLAPI void APIENTRY glMakeNamedBufferNonResidentNV (GLuint buffer); -GLAPI GLboolean APIENTRY glIsNamedBufferResidentNV (GLuint buffer); -GLAPI void APIENTRY glGetBufferParameterui64vNV (GLenum target, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glGetNamedBufferParameterui64vNV (GLuint buffer, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glGetIntegerui64vNV (GLenum value, GLuint64EXT *result); -GLAPI void APIENTRY glUniformui64NV (GLint location, GLuint64EXT value); -GLAPI void APIENTRY glUniformui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glGetUniformui64vNV (GLuint program, GLint location, GLuint64EXT *params); -GLAPI void APIENTRY glProgramUniformui64NV (GLuint program, GLint location, GLuint64EXT value); -GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); -typedef void (APIENTRYP PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); -typedef GLboolean (APIENTRYP PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); -typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); -typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); -typedef GLboolean (APIENTRYP PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT *result); -typedef void (APIENTRYP PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); -typedef void (APIENTRYP PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif - -#ifndef GL_NV_vertex_buffer_unified_memory -#define GL_NV_vertex_buffer_unified_memory 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferAddressRangeNV (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -GLAPI void APIENTRY glVertexFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glNormalFormatNV (GLenum type, GLsizei stride); -GLAPI void APIENTRY glColorFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glIndexFormatNV (GLenum type, GLsizei stride); -GLAPI void APIENTRY glTexCoordFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glEdgeFlagFormatNV (GLsizei stride); -GLAPI void APIENTRY glSecondaryColorFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glFogCoordFormatNV (GLenum type, GLsizei stride); -GLAPI void APIENTRY glVertexAttribFormatNV (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -GLAPI void APIENTRY glVertexAttribIFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glGetIntegerui64i_vNV (GLenum value, GLuint index, GLuint64EXT *result); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -typedef void (APIENTRYP PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); -typedef void (APIENTRYP PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT *result); -#endif - -#ifndef GL_NV_texture_barrier -#define GL_NV_texture_barrier 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureBarrierNV (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTUREBARRIERNVPROC) (void); -#endif - -#ifndef GL_AMD_shader_stencil_export -#define GL_AMD_shader_stencil_export 1 -#endif - -#ifndef GL_AMD_seamless_cubemap_per_texture -#define GL_AMD_seamless_cubemap_per_texture 1 -#endif - -#ifndef GL_AMD_conservative_depth -#define GL_AMD_conservative_depth 1 -#endif - -#ifndef GL_EXT_shader_image_load_store -#define GL_EXT_shader_image_load_store 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindImageTextureEXT (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -GLAPI void APIENTRY glMemoryBarrierEXT (GLbitfield barriers); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -typedef void (APIENTRYP PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); -#endif - -#ifndef GL_EXT_vertex_attrib_64bit -#define GL_EXT_vertex_attrib_64bit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1dEXT (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttribL2dEXT (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttribL3dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttribL4dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttribL1dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL2dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL3dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL4dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribLPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glGetVertexAttribLdvEXT (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glVertexArrayVertexAttribLOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -#endif - -#ifndef GL_NV_gpu_program5 -#define GL_NV_gpu_program5 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramSubroutineParametersuivNV (GLenum target, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetProgramSubroutineParameteruivNV (GLenum target, GLuint index, GLuint *param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC) (GLenum target, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC) (GLenum target, GLuint index, GLuint *param); -#endif - -#ifndef GL_NV_gpu_shader5 -#define GL_NV_gpu_shader5 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniform1i64NV (GLint location, GLint64EXT x); -GLAPI void APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x); -GLAPI void APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params); -GLAPI void APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x); -GLAPI void APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x); -GLAPI void APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); -typedef void (APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); -typedef void (APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); -typedef void (APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif - -#ifndef GL_NV_shader_buffer_store -#define GL_NV_shader_buffer_store 1 -#endif - -#ifndef GL_NV_tessellation_program5 -#define GL_NV_tessellation_program5 1 -#endif - -#ifndef GL_NV_vertex_attrib_integer_64bit -#define GL_NV_vertex_attrib_integer_64bit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1i64NV (GLuint index, GLint64EXT x); -GLAPI void APIENTRY glVertexAttribL2i64NV (GLuint index, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glVertexAttribL3i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glVertexAttribL4i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glVertexAttribL1i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL2i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL3i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL4i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL1ui64NV (GLuint index, GLuint64EXT x); -GLAPI void APIENTRY glVertexAttribL2ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glVertexAttribL3ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glVertexAttribL4ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glVertexAttribL1ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL2ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL3ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL4ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glGetVertexAttribLi64vNV (GLuint index, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetVertexAttribLui64vNV (GLuint index, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glVertexAttribLFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); -#endif - -#ifndef GL_NV_multisample_coverage -#define GL_NV_multisample_coverage 1 -#endif - -#ifndef GL_AMD_name_gen_delete -#define GL_AMD_name_gen_delete 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenNamesAMD (GLenum identifier, GLuint num, GLuint *names); -GLAPI void APIENTRY glDeleteNamesAMD (GLenum identifier, GLuint num, const GLuint *names); -GLAPI GLboolean APIENTRY glIsNameAMD (GLenum identifier, GLuint name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint *names); -typedef void (APIENTRYP PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint *names); -typedef GLboolean (APIENTRYP PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); -#endif - -#ifndef GL_AMD_debug_output -#define GL_AMD_debug_output 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDebugMessageEnableAMD (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GLAPI void APIENTRY glDebugMessageInsertAMD (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); -GLAPI void APIENTRY glDebugMessageCallbackAMD (GLDEBUGPROCAMD callback, GLvoid *userParam); -GLAPI GLuint APIENTRY glGetDebugMessageLogAMD (GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); -typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, GLvoid *userParam); -typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); -#endif - -#ifndef GL_NV_vdpau_interop -#define GL_NV_vdpau_interop 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVDPAUInitNV (const GLvoid *vdpDevice, const GLvoid *getProcAddress); -GLAPI void APIENTRY glVDPAUFiniNV (void); -GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -GLAPI void APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface); -GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface); -GLAPI void APIENTRY glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GLAPI void APIENTRY glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access); -GLAPI void APIENTRY glVDPAUMapSurfacesNV (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); -GLAPI void APIENTRY glVDPAUUnmapSurfacesNV (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVDPAUINITNVPROC) (const GLvoid *vdpDevice, const GLvoid *getProcAddress); -typedef void (APIENTRYP PFNGLVDPAUFININVPROC) (void); -typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef void (APIENTRYP PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); -typedef void (APIENTRYP PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); -typedef void (APIENTRYP PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (APIENTRYP PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); -typedef void (APIENTRYP PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); -typedef void (APIENTRYP PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); -#endif - -#ifndef GL_AMD_transform_feedback3_lines_triangles -#define GL_AMD_transform_feedback3_lines_triangles 1 -#endif - -#ifndef GL_AMD_depth_clamp_separate -#define GL_AMD_depth_clamp_separate 1 -#endif - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_EXT_texture_sRGB_decode 1 -#endif - -#ifndef GL_NV_texture_multisample -#define GL_NV_texture_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage2DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTexImage3DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage2DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage3DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage2DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -#endif - -#ifndef GL_AMD_blend_minmax_factor -#define GL_AMD_blend_minmax_factor 1 -#endif - -#ifndef GL_AMD_sample_positions -#define GL_AMD_sample_positions 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLfloat *val); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat *val); -#endif - -#ifndef GL_EXT_x11_sync_object -#define GL_EXT_x11_sync_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLsync (APIENTRYP PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); -#endif - -#ifndef GL_AMD_multi_draw_indirect -#define GL_AMD_multi_draw_indirect 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysIndirectAMD (GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride); -GLAPI void APIENTRY glMultiDrawElementsIndirectAMD (GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride); -#endif - -#ifndef GL_EXT_framebuffer_multisample_blit_scaled -#define GL_EXT_framebuffer_multisample_blit_scaled 1 -#endif - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/linux/include/GL/glu.h b/lib/linux/include/GL/glu.h deleted file mode 100644 index ba2228d..0000000 --- a/lib/linux/include/GL/glu.h +++ /dev/null @@ -1,353 +0,0 @@ -/* - * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) - * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice including the dates of first publication and - * either this permission notice or a reference to - * http://oss.sgi.com/projects/FreeB/ - * shall be included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF - * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Except as contained in this notice, the name of Silicon Graphics, Inc. - * shall not be used in advertising or otherwise to promote the sale, use or - * other dealings in this Software without prior written authorization from - * Silicon Graphics, Inc. - */ - -#ifndef __glu_h__ -#define __glu_h__ - -#if defined(USE_MGL_NAMESPACE) -#include "glu_mangle.h" -#endif - -#include - -#ifndef GLAPIENTRY -#if defined(_MSC_VER) || defined(__MINGW32__) -#define GLAPIENTRY __stdcall -#else -#define GLAPIENTRY -#endif -#endif - -#ifndef GLAPIENTRYP -#define GLAPIENTRYP GLAPIENTRY * -#endif - -#if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GLU32) -# undef GLAPI -# define GLAPI __declspec(dllexport) -#elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) -/* tag specifying we're building for DLL runtime support */ -# undef GLAPI -# define GLAPI __declspec(dllimport) -#elif !defined(GLAPI) -/* for use with static link lib build of Win32 edition only */ -# define GLAPI extern -#endif /* _STATIC_MESA support */ - -#ifdef __cplusplus -extern "C" { -#endif - -/*************************************************************/ - -/* Extensions */ -#define GLU_EXT_object_space_tess 1 -#define GLU_EXT_nurbs_tessellator 1 - -/* Boolean */ -#define GLU_FALSE 0 -#define GLU_TRUE 1 - -/* Version */ -#define GLU_VERSION_1_1 1 -#define GLU_VERSION_1_2 1 -#define GLU_VERSION_1_3 1 - -/* StringName */ -#define GLU_VERSION 100800 -#define GLU_EXTENSIONS 100801 - -/* ErrorCode */ -#define GLU_INVALID_ENUM 100900 -#define GLU_INVALID_VALUE 100901 -#define GLU_OUT_OF_MEMORY 100902 -#define GLU_INCOMPATIBLE_GL_VERSION 100903 -#define GLU_INVALID_OPERATION 100904 - -/* NurbsDisplay */ -/* GLU_FILL */ -#define GLU_OUTLINE_POLYGON 100240 -#define GLU_OUTLINE_PATCH 100241 - -/* NurbsCallback */ -#define GLU_NURBS_ERROR 100103 -#define GLU_ERROR 100103 -#define GLU_NURBS_BEGIN 100164 -#define GLU_NURBS_BEGIN_EXT 100164 -#define GLU_NURBS_VERTEX 100165 -#define GLU_NURBS_VERTEX_EXT 100165 -#define GLU_NURBS_NORMAL 100166 -#define GLU_NURBS_NORMAL_EXT 100166 -#define GLU_NURBS_COLOR 100167 -#define GLU_NURBS_COLOR_EXT 100167 -#define GLU_NURBS_TEXTURE_COORD 100168 -#define GLU_NURBS_TEX_COORD_EXT 100168 -#define GLU_NURBS_END 100169 -#define GLU_NURBS_END_EXT 100169 -#define GLU_NURBS_BEGIN_DATA 100170 -#define GLU_NURBS_BEGIN_DATA_EXT 100170 -#define GLU_NURBS_VERTEX_DATA 100171 -#define GLU_NURBS_VERTEX_DATA_EXT 100171 -#define GLU_NURBS_NORMAL_DATA 100172 -#define GLU_NURBS_NORMAL_DATA_EXT 100172 -#define GLU_NURBS_COLOR_DATA 100173 -#define GLU_NURBS_COLOR_DATA_EXT 100173 -#define GLU_NURBS_TEXTURE_COORD_DATA 100174 -#define GLU_NURBS_TEX_COORD_DATA_EXT 100174 -#define GLU_NURBS_END_DATA 100175 -#define GLU_NURBS_END_DATA_EXT 100175 - -/* NurbsError */ -#define GLU_NURBS_ERROR1 100251 -#define GLU_NURBS_ERROR2 100252 -#define GLU_NURBS_ERROR3 100253 -#define GLU_NURBS_ERROR4 100254 -#define GLU_NURBS_ERROR5 100255 -#define GLU_NURBS_ERROR6 100256 -#define GLU_NURBS_ERROR7 100257 -#define GLU_NURBS_ERROR8 100258 -#define GLU_NURBS_ERROR9 100259 -#define GLU_NURBS_ERROR10 100260 -#define GLU_NURBS_ERROR11 100261 -#define GLU_NURBS_ERROR12 100262 -#define GLU_NURBS_ERROR13 100263 -#define GLU_NURBS_ERROR14 100264 -#define GLU_NURBS_ERROR15 100265 -#define GLU_NURBS_ERROR16 100266 -#define GLU_NURBS_ERROR17 100267 -#define GLU_NURBS_ERROR18 100268 -#define GLU_NURBS_ERROR19 100269 -#define GLU_NURBS_ERROR20 100270 -#define GLU_NURBS_ERROR21 100271 -#define GLU_NURBS_ERROR22 100272 -#define GLU_NURBS_ERROR23 100273 -#define GLU_NURBS_ERROR24 100274 -#define GLU_NURBS_ERROR25 100275 -#define GLU_NURBS_ERROR26 100276 -#define GLU_NURBS_ERROR27 100277 -#define GLU_NURBS_ERROR28 100278 -#define GLU_NURBS_ERROR29 100279 -#define GLU_NURBS_ERROR30 100280 -#define GLU_NURBS_ERROR31 100281 -#define GLU_NURBS_ERROR32 100282 -#define GLU_NURBS_ERROR33 100283 -#define GLU_NURBS_ERROR34 100284 -#define GLU_NURBS_ERROR35 100285 -#define GLU_NURBS_ERROR36 100286 -#define GLU_NURBS_ERROR37 100287 - -/* NurbsProperty */ -#define GLU_AUTO_LOAD_MATRIX 100200 -#define GLU_CULLING 100201 -#define GLU_SAMPLING_TOLERANCE 100203 -#define GLU_DISPLAY_MODE 100204 -#define GLU_PARAMETRIC_TOLERANCE 100202 -#define GLU_SAMPLING_METHOD 100205 -#define GLU_U_STEP 100206 -#define GLU_V_STEP 100207 -#define GLU_NURBS_MODE 100160 -#define GLU_NURBS_MODE_EXT 100160 -#define GLU_NURBS_TESSELLATOR 100161 -#define GLU_NURBS_TESSELLATOR_EXT 100161 -#define GLU_NURBS_RENDERER 100162 -#define GLU_NURBS_RENDERER_EXT 100162 - -/* NurbsSampling */ -#define GLU_OBJECT_PARAMETRIC_ERROR 100208 -#define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208 -#define GLU_OBJECT_PATH_LENGTH 100209 -#define GLU_OBJECT_PATH_LENGTH_EXT 100209 -#define GLU_PATH_LENGTH 100215 -#define GLU_PARAMETRIC_ERROR 100216 -#define GLU_DOMAIN_DISTANCE 100217 - -/* NurbsTrim */ -#define GLU_MAP1_TRIM_2 100210 -#define GLU_MAP1_TRIM_3 100211 - -/* QuadricDrawStyle */ -#define GLU_POINT 100010 -#define GLU_LINE 100011 -#define GLU_FILL 100012 -#define GLU_SILHOUETTE 100013 - -/* QuadricCallback */ -/* GLU_ERROR */ - -/* QuadricNormal */ -#define GLU_SMOOTH 100000 -#define GLU_FLAT 100001 -#define GLU_NONE 100002 - -/* QuadricOrientation */ -#define GLU_OUTSIDE 100020 -#define GLU_INSIDE 100021 - -/* TessCallback */ -#define GLU_TESS_BEGIN 100100 -#define GLU_BEGIN 100100 -#define GLU_TESS_VERTEX 100101 -#define GLU_VERTEX 100101 -#define GLU_TESS_END 100102 -#define GLU_END 100102 -#define GLU_TESS_ERROR 100103 -#define GLU_TESS_EDGE_FLAG 100104 -#define GLU_EDGE_FLAG 100104 -#define GLU_TESS_COMBINE 100105 -#define GLU_TESS_BEGIN_DATA 100106 -#define GLU_TESS_VERTEX_DATA 100107 -#define GLU_TESS_END_DATA 100108 -#define GLU_TESS_ERROR_DATA 100109 -#define GLU_TESS_EDGE_FLAG_DATA 100110 -#define GLU_TESS_COMBINE_DATA 100111 - -/* TessContour */ -#define GLU_CW 100120 -#define GLU_CCW 100121 -#define GLU_INTERIOR 100122 -#define GLU_EXTERIOR 100123 -#define GLU_UNKNOWN 100124 - -/* TessProperty */ -#define GLU_TESS_WINDING_RULE 100140 -#define GLU_TESS_BOUNDARY_ONLY 100141 -#define GLU_TESS_TOLERANCE 100142 - -/* TessError */ -#define GLU_TESS_ERROR1 100151 -#define GLU_TESS_ERROR2 100152 -#define GLU_TESS_ERROR3 100153 -#define GLU_TESS_ERROR4 100154 -#define GLU_TESS_ERROR5 100155 -#define GLU_TESS_ERROR6 100156 -#define GLU_TESS_ERROR7 100157 -#define GLU_TESS_ERROR8 100158 -#define GLU_TESS_MISSING_BEGIN_POLYGON 100151 -#define GLU_TESS_MISSING_BEGIN_CONTOUR 100152 -#define GLU_TESS_MISSING_END_POLYGON 100153 -#define GLU_TESS_MISSING_END_CONTOUR 100154 -#define GLU_TESS_COORD_TOO_LARGE 100155 -#define GLU_TESS_NEED_COMBINE_CALLBACK 100156 - -/* TessWinding */ -#define GLU_TESS_WINDING_ODD 100130 -#define GLU_TESS_WINDING_NONZERO 100131 -#define GLU_TESS_WINDING_POSITIVE 100132 -#define GLU_TESS_WINDING_NEGATIVE 100133 -#define GLU_TESS_WINDING_ABS_GEQ_TWO 100134 - -/*************************************************************/ - - -#ifdef __cplusplus -class GLUnurbs; -class GLUquadric; -class GLUtesselator; -#else -typedef struct GLUnurbs GLUnurbs; -typedef struct GLUquadric GLUquadric; -typedef struct GLUtesselator GLUtesselator; -#endif - -typedef GLUnurbs GLUnurbsObj; -typedef GLUquadric GLUquadricObj; -typedef GLUtesselator GLUtesselatorObj; -typedef GLUtesselator GLUtriangulatorObj; - -#define GLU_TESS_MAX_COORD 1.0e150 - -/* Internal convenience typedefs */ -typedef void (GLAPIENTRYP _GLUfuncptr)(void); - -GLAPI void GLAPIENTRY gluBeginCurve (GLUnurbs* nurb); -GLAPI void GLAPIENTRY gluBeginPolygon (GLUtesselator* tess); -GLAPI void GLAPIENTRY gluBeginSurface (GLUnurbs* nurb); -GLAPI void GLAPIENTRY gluBeginTrim (GLUnurbs* nurb); -GLAPI GLint GLAPIENTRY gluBuild1DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data); -GLAPI GLint GLAPIENTRY gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data); -GLAPI GLint GLAPIENTRY gluBuild2DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data); -GLAPI GLint GLAPIENTRY gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data); -GLAPI GLint GLAPIENTRY gluBuild3DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data); -GLAPI GLint GLAPIENTRY gluBuild3DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); -GLAPI GLboolean GLAPIENTRY gluCheckExtension (const GLubyte *extName, const GLubyte *extString); -GLAPI void GLAPIENTRY gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks); -GLAPI void GLAPIENTRY gluDeleteNurbsRenderer (GLUnurbs* nurb); -GLAPI void GLAPIENTRY gluDeleteQuadric (GLUquadric* quad); -GLAPI void GLAPIENTRY gluDeleteTess (GLUtesselator* tess); -GLAPI void GLAPIENTRY gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops); -GLAPI void GLAPIENTRY gluEndCurve (GLUnurbs* nurb); -GLAPI void GLAPIENTRY gluEndPolygon (GLUtesselator* tess); -GLAPI void GLAPIENTRY gluEndSurface (GLUnurbs* nurb); -GLAPI void GLAPIENTRY gluEndTrim (GLUnurbs* nurb); -GLAPI const GLubyte * GLAPIENTRY gluErrorString (GLenum error); -GLAPI void GLAPIENTRY gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data); -GLAPI const GLubyte * GLAPIENTRY gluGetString (GLenum name); -GLAPI void GLAPIENTRY gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data); -GLAPI void GLAPIENTRY gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view); -GLAPI void GLAPIENTRY gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ); -GLAPI GLUnurbs* GLAPIENTRY gluNewNurbsRenderer (void); -GLAPI GLUquadric* GLAPIENTRY gluNewQuadric (void); -GLAPI GLUtesselator* GLAPIENTRY gluNewTess (void); -GLAPI void GLAPIENTRY gluNextContour (GLUtesselator* tess, GLenum type); -GLAPI void GLAPIENTRY gluNurbsCallback (GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc); -GLAPI void GLAPIENTRY gluNurbsCallbackData (GLUnurbs* nurb, GLvoid* userData); -GLAPI void GLAPIENTRY gluNurbsCallbackDataEXT (GLUnurbs* nurb, GLvoid* userData); -GLAPI void GLAPIENTRY gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type); -GLAPI void GLAPIENTRY gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value); -GLAPI void GLAPIENTRY gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type); -GLAPI void GLAPIENTRY gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top); -GLAPI void GLAPIENTRY gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep); -GLAPI void GLAPIENTRY gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar); -GLAPI void GLAPIENTRY gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport); -GLAPI GLint GLAPIENTRY gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ); -GLAPI void GLAPIENTRY gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type); -GLAPI void GLAPIENTRY gluQuadricCallback (GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc); -GLAPI void GLAPIENTRY gluQuadricDrawStyle (GLUquadric* quad, GLenum draw); -GLAPI void GLAPIENTRY gluQuadricNormals (GLUquadric* quad, GLenum normal); -GLAPI void GLAPIENTRY gluQuadricOrientation (GLUquadric* quad, GLenum orientation); -GLAPI void GLAPIENTRY gluQuadricTexture (GLUquadric* quad, GLboolean texture); -GLAPI GLint GLAPIENTRY gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut); -GLAPI void GLAPIENTRY gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks); -GLAPI void GLAPIENTRY gluTessBeginContour (GLUtesselator* tess); -GLAPI void GLAPIENTRY gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data); -GLAPI void GLAPIENTRY gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc); -GLAPI void GLAPIENTRY gluTessEndContour (GLUtesselator* tess); -GLAPI void GLAPIENTRY gluTessEndPolygon (GLUtesselator* tess); -GLAPI void GLAPIENTRY gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ); -GLAPI void GLAPIENTRY gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data); -GLAPI void GLAPIENTRY gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data); -GLAPI GLint GLAPIENTRY gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ); -GLAPI GLint GLAPIENTRY gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW); - -#ifdef __cplusplus -} -#endif - -#endif /* __glu_h__ */ diff --git a/lib/linux/include/GL/glu_mangle.h b/lib/linux/include/GL/glu_mangle.h deleted file mode 100644 index 9c25aa8..0000000 --- a/lib/linux/include/GL/glu_mangle.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 3.0 - * Copyright (C) 1995-1998 Brian Paul - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - - -#ifndef GLU_MANGLE_H -#define GLU_MANGLE_H - - -#define gluLookAt mgluLookAt -#define gluOrtho2D mgluOrtho2D -#define gluPerspective mgluPerspective -#define gluPickMatrix mgluPickMatrix -#define gluProject mgluProject -#define gluUnProject mgluUnProject -#define gluErrorString mgluErrorString -#define gluScaleImage mgluScaleImage -#define gluBuild1DMipmaps mgluBuild1DMipmaps -#define gluBuild2DMipmaps mgluBuild2DMipmaps -#define gluNewQuadric mgluNewQuadric -#define gluDeleteQuadric mgluDeleteQuadric -#define gluQuadricDrawStyle mgluQuadricDrawStyle -#define gluQuadricOrientation mgluQuadricOrientation -#define gluQuadricNormals mgluQuadricNormals -#define gluQuadricTexture mgluQuadricTexture -#define gluQuadricCallback mgluQuadricCallback -#define gluCylinder mgluCylinder -#define gluSphere mgluSphere -#define gluDisk mgluDisk -#define gluPartialDisk mgluPartialDisk -#define gluNewNurbsRenderer mgluNewNurbsRenderer -#define gluDeleteNurbsRenderer mgluDeleteNurbsRenderer -#define gluLoadSamplingMatrices mgluLoadSamplingMatrices -#define gluNurbsProperty mgluNurbsProperty -#define gluGetNurbsProperty mgluGetNurbsProperty -#define gluBeginCurve mgluBeginCurve -#define gluEndCurve mgluEndCurve -#define gluNurbsCurve mgluNurbsCurve -#define gluBeginSurface mgluBeginSurface -#define gluEndSurface mgluEndSurface -#define gluNurbsSurface mgluNurbsSurface -#define gluBeginTrim mgluBeginTrim -#define gluEndTrim mgluEndTrim -#define gluPwlCurve mgluPwlCurve -#define gluNurbsCallback mgluNurbsCallback -#define gluNewTess mgluNewTess -#define gluDeleteTess mgluDeleteTess -#define gluTessBeginPolygon mgluTessBeginPolygon -#define gluTessBeginContour mgluTessBeginContour -#define gluTessVertex mgluTessVertex -#define gluTessEndPolygon mgluTessEndPolygon -#define gluTessEndContour mgluTessEndContour -#define gluTessProperty mgluTessProperty -#define gluTessNormal mgluTessNormal -#define gluTessCallback mgluTessCallback -#define gluGetTessProperty mgluGetTessProperty -#define gluBeginPolygon mgluBeginPolygon -#define gluNextContour mgluNextContour -#define gluEndPolygon mgluEndPolygon -#define gluGetString mgluGetString -#define gluBuild1DMipmapLevels mgluBuild1DMipmapLevels -#define gluBuild2DMipmapLevels mgluBuild2DMipmapLevels -#define gluBuild3DMipmapLevels mgluBuild3DMipmapLevels -#define gluBuild3DMipmaps mgluBuild3DMipmaps -#define gluCheckExtension mgluCheckExtension -#define gluUnProject4 mgluUnProject4 -#define gluNurbsCallbackData mgluNurbsCallbackData -#define gluNurbsCallbackDataEXT mgluNurbsCallbackDataEXT - -#endif diff --git a/lib/linux/include/GL/glx.h b/lib/linux/include/GL/glx.h deleted file mode 100644 index a3a7d97..0000000 --- a/lib/linux/include/GL/glx.h +++ /dev/null @@ -1,526 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * - * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#ifndef GLX_H -#define GLX_H - - -#ifdef __VMS -#include -# ifdef __cplusplus -/* VMS Xlib.h gives problems with C++. - * this avoids a bunch of trivial warnings */ -#pragma message disable nosimpint -#endif -#endif -#include -#include -#ifdef __VMS -# ifdef __cplusplus -#pragma message enable nosimpint -#endif -#endif -#include - - -#if defined(USE_MGL_NAMESPACE) -#include "glx_mangle.h" -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -#define GLX_VERSION_1_1 1 -#define GLX_VERSION_1_2 1 -#define GLX_VERSION_1_3 1 -#define GLX_VERSION_1_4 1 - -#define GLX_EXTENSION_NAME "GLX" - - - -/* - * Tokens for glXChooseVisual and glXGetConfig: - */ -#define GLX_USE_GL 1 -#define GLX_BUFFER_SIZE 2 -#define GLX_LEVEL 3 -#define GLX_RGBA 4 -#define GLX_DOUBLEBUFFER 5 -#define GLX_STEREO 6 -#define GLX_AUX_BUFFERS 7 -#define GLX_RED_SIZE 8 -#define GLX_GREEN_SIZE 9 -#define GLX_BLUE_SIZE 10 -#define GLX_ALPHA_SIZE 11 -#define GLX_DEPTH_SIZE 12 -#define GLX_STENCIL_SIZE 13 -#define GLX_ACCUM_RED_SIZE 14 -#define GLX_ACCUM_GREEN_SIZE 15 -#define GLX_ACCUM_BLUE_SIZE 16 -#define GLX_ACCUM_ALPHA_SIZE 17 - - -/* - * Error codes returned by glXGetConfig: - */ -#define GLX_BAD_SCREEN 1 -#define GLX_BAD_ATTRIBUTE 2 -#define GLX_NO_EXTENSION 3 -#define GLX_BAD_VISUAL 4 -#define GLX_BAD_CONTEXT 5 -#define GLX_BAD_VALUE 6 -#define GLX_BAD_ENUM 7 - - -/* - * GLX 1.1 and later: - */ -#define GLX_VENDOR 1 -#define GLX_VERSION 2 -#define GLX_EXTENSIONS 3 - - -/* - * GLX 1.3 and later: - */ -#define GLX_CONFIG_CAVEAT 0x20 -#define GLX_DONT_CARE 0xFFFFFFFF -#define GLX_X_VISUAL_TYPE 0x22 -#define GLX_TRANSPARENT_TYPE 0x23 -#define GLX_TRANSPARENT_INDEX_VALUE 0x24 -#define GLX_TRANSPARENT_RED_VALUE 0x25 -#define GLX_TRANSPARENT_GREEN_VALUE 0x26 -#define GLX_TRANSPARENT_BLUE_VALUE 0x27 -#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 -#define GLX_WINDOW_BIT 0x00000001 -#define GLX_PIXMAP_BIT 0x00000002 -#define GLX_PBUFFER_BIT 0x00000004 -#define GLX_AUX_BUFFERS_BIT 0x00000010 -#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 -#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 -#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 -#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 -#define GLX_DEPTH_BUFFER_BIT 0x00000020 -#define GLX_STENCIL_BUFFER_BIT 0x00000040 -#define GLX_ACCUM_BUFFER_BIT 0x00000080 -#define GLX_NONE 0x8000 -#define GLX_SLOW_CONFIG 0x8001 -#define GLX_TRUE_COLOR 0x8002 -#define GLX_DIRECT_COLOR 0x8003 -#define GLX_PSEUDO_COLOR 0x8004 -#define GLX_STATIC_COLOR 0x8005 -#define GLX_GRAY_SCALE 0x8006 -#define GLX_STATIC_GRAY 0x8007 -#define GLX_TRANSPARENT_RGB 0x8008 -#define GLX_TRANSPARENT_INDEX 0x8009 -#define GLX_VISUAL_ID 0x800B -#define GLX_SCREEN 0x800C -#define GLX_NON_CONFORMANT_CONFIG 0x800D -#define GLX_DRAWABLE_TYPE 0x8010 -#define GLX_RENDER_TYPE 0x8011 -#define GLX_X_RENDERABLE 0x8012 -#define GLX_FBCONFIG_ID 0x8013 -#define GLX_RGBA_TYPE 0x8014 -#define GLX_COLOR_INDEX_TYPE 0x8015 -#define GLX_MAX_PBUFFER_WIDTH 0x8016 -#define GLX_MAX_PBUFFER_HEIGHT 0x8017 -#define GLX_MAX_PBUFFER_PIXELS 0x8018 -#define GLX_PRESERVED_CONTENTS 0x801B -#define GLX_LARGEST_PBUFFER 0x801C -#define GLX_WIDTH 0x801D -#define GLX_HEIGHT 0x801E -#define GLX_EVENT_MASK 0x801F -#define GLX_DAMAGED 0x8020 -#define GLX_SAVED 0x8021 -#define GLX_WINDOW 0x8022 -#define GLX_PBUFFER 0x8023 -#define GLX_PBUFFER_HEIGHT 0x8040 -#define GLX_PBUFFER_WIDTH 0x8041 -#define GLX_RGBA_BIT 0x00000001 -#define GLX_COLOR_INDEX_BIT 0x00000002 -#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 - - -/* - * GLX 1.4 and later: - */ -#define GLX_SAMPLE_BUFFERS 0x186a0 /*100000*/ -#define GLX_SAMPLES 0x186a1 /*100001*/ - - - -typedef struct __GLXcontextRec *GLXContext; -typedef XID GLXPixmap; -typedef XID GLXDrawable; -/* GLX 1.3 and later */ -typedef struct __GLXFBConfigRec *GLXFBConfig; -typedef XID GLXFBConfigID; -typedef XID GLXContextID; -typedef XID GLXWindow; -typedef XID GLXPbuffer; - - -/* -** Events. -** __GLX_NUMBER_EVENTS is set to 17 to account for the BufferClobberSGIX -** event - this helps initialization if the server supports the pbuffer -** extension and the client doesn't. -*/ -#define GLX_PbufferClobber 0 -#define GLX_BufferSwapComplete 1 - -#define __GLX_NUMBER_EVENTS 17 - -extern XVisualInfo* glXChooseVisual( Display *dpy, int screen, - int *attribList ); - -extern GLXContext glXCreateContext( Display *dpy, XVisualInfo *vis, - GLXContext shareList, Bool direct ); - -extern void glXDestroyContext( Display *dpy, GLXContext ctx ); - -extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable, - GLXContext ctx); - -extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, - unsigned long mask ); - -extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable ); - -extern GLXPixmap glXCreateGLXPixmap( Display *dpy, XVisualInfo *visual, - Pixmap pixmap ); - -extern void glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap ); - -extern Bool glXQueryExtension( Display *dpy, int *errorb, int *event ); - -extern Bool glXQueryVersion( Display *dpy, int *maj, int *min ); - -extern Bool glXIsDirect( Display *dpy, GLXContext ctx ); - -extern int glXGetConfig( Display *dpy, XVisualInfo *visual, - int attrib, int *value ); - -extern GLXContext glXGetCurrentContext( void ); - -extern GLXDrawable glXGetCurrentDrawable( void ); - -extern void glXWaitGL( void ); - -extern void glXWaitX( void ); - -extern void glXUseXFont( Font font, int first, int count, int list ); - - - -/* GLX 1.1 and later */ -extern const char *glXQueryExtensionsString( Display *dpy, int screen ); - -extern const char *glXQueryServerString( Display *dpy, int screen, int name ); - -extern const char *glXGetClientString( Display *dpy, int name ); - - -/* GLX 1.2 and later */ -extern Display *glXGetCurrentDisplay( void ); - - -/* GLX 1.3 and later */ -extern GLXFBConfig *glXChooseFBConfig( Display *dpy, int screen, - const int *attribList, int *nitems ); - -extern int glXGetFBConfigAttrib( Display *dpy, GLXFBConfig config, - int attribute, int *value ); - -extern GLXFBConfig *glXGetFBConfigs( Display *dpy, int screen, - int *nelements ); - -extern XVisualInfo *glXGetVisualFromFBConfig( Display *dpy, - GLXFBConfig config ); - -extern GLXWindow glXCreateWindow( Display *dpy, GLXFBConfig config, - Window win, const int *attribList ); - -extern void glXDestroyWindow( Display *dpy, GLXWindow window ); - -extern GLXPixmap glXCreatePixmap( Display *dpy, GLXFBConfig config, - Pixmap pixmap, const int *attribList ); - -extern void glXDestroyPixmap( Display *dpy, GLXPixmap pixmap ); - -extern GLXPbuffer glXCreatePbuffer( Display *dpy, GLXFBConfig config, - const int *attribList ); - -extern void glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf ); - -extern void glXQueryDrawable( Display *dpy, GLXDrawable draw, int attribute, - unsigned int *value ); - -extern GLXContext glXCreateNewContext( Display *dpy, GLXFBConfig config, - int renderType, GLXContext shareList, - Bool direct ); - -extern Bool glXMakeContextCurrent( Display *dpy, GLXDrawable draw, - GLXDrawable read, GLXContext ctx ); - -extern GLXDrawable glXGetCurrentReadDrawable( void ); - -extern int glXQueryContext( Display *dpy, GLXContext ctx, int attribute, - int *value ); - -extern void glXSelectEvent( Display *dpy, GLXDrawable drawable, - unsigned long mask ); - -extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable, - unsigned long *mask ); - -/* GLX 1.3 function pointer typedefs */ -typedef GLXFBConfig * (* PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); -typedef GLXFBConfig * (* PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef int (* PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); -typedef XVisualInfo * (* PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); -typedef GLXWindow (* PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); -typedef void (* PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); -typedef GLXPixmap (* PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); -typedef void (* PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); -typedef GLXPbuffer (* PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); -typedef void (* PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); -typedef void (* PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); -typedef GLXContext (* PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef Bool (* PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); -typedef GLXDrawable (* PFNGLXGETCURRENTREADDRAWABLEPROC) (void); -typedef Display * (* PFNGLXGETCURRENTDISPLAYPROC) (void); -typedef int (* PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); -typedef void (* PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); -typedef void (* PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); - - -/* - * ARB 2. GLX_ARB_get_proc_address - */ -#ifndef GLX_ARB_get_proc_address -#define GLX_ARB_get_proc_address 1 - -typedef void (*__GLXextFuncPtr)(void); -extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); - -#endif /* GLX_ARB_get_proc_address */ - - - -/* GLX 1.4 and later */ -extern void (*glXGetProcAddress(const GLubyte *procname))( void ); - -/* GLX 1.4 function pointer typedefs */ -typedef __GLXextFuncPtr (* PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); - - -#ifndef GLX_GLXEXT_LEGACY - -#include - -#endif /* GLX_GLXEXT_LEGACY */ - - -/** - ** The following aren't in glxext.h yet. - **/ - - -/* - * ???. GLX_NV_vertex_array_range - */ -#ifndef GLX_NV_vertex_array_range -#define GLX_NV_vertex_array_range - -extern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); -extern void glXFreeMemoryNV(GLvoid *pointer); -typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); -typedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer); - -#endif /* GLX_NV_vertex_array_range */ - - -/* - * ARB ?. GLX_ARB_render_texture - * XXX This was never finalized! - */ -#ifndef GLX_ARB_render_texture -#define GLX_ARB_render_texture 1 - -extern Bool glXBindTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer); -extern Bool glXReleaseTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer); -extern Bool glXDrawableAttribARB(Display *dpy, GLXDrawable draw, const int *attribList); - -#endif /* GLX_ARB_render_texture */ - - -/* - * Remove this when glxext.h is updated. - */ -#ifndef GLX_NV_float_buffer -#define GLX_NV_float_buffer 1 - -#define GLX_FLOAT_COMPONENTS_NV 0x20B0 - -#endif /* GLX_NV_float_buffer */ - - - -/* - * #?. GLX_MESA_swap_frame_usage - */ -#ifndef GLX_MESA_swap_frame_usage -#define GLX_MESA_swap_frame_usage 1 - -extern int glXGetFrameUsageMESA(Display *dpy, GLXDrawable drawable, float *usage); -extern int glXBeginFrameTrackingMESA(Display *dpy, GLXDrawable drawable); -extern int glXEndFrameTrackingMESA(Display *dpy, GLXDrawable drawable); -extern int glXQueryFrameTrackingMESA(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage); - -typedef int (*PFNGLXGETFRAMEUSAGEMESAPROC) (Display *dpy, GLXDrawable drawable, float *usage); -typedef int (*PFNGLXBEGINFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable); -typedef int (*PFNGLXENDFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable); -typedef int (*PFNGLXQUERYFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage); - -#endif /* GLX_MESA_swap_frame_usage */ - - - -/* - * #?. GLX_MESA_swap_control - */ -#ifndef GLX_MESA_swap_control -#define GLX_MESA_swap_control 1 - -extern int glXSwapIntervalMESA(unsigned int interval); -extern int glXGetSwapIntervalMESA(void); - -typedef int (*PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval); -typedef int (*PFNGLXGETSWAPINTERVALMESAPROC)(void); - -#endif /* GLX_MESA_swap_control */ - - - -/* - * #?. GLX_EXT_texture_from_pixmap - * XXX not finished? - */ -#ifndef GLX_EXT_texture_from_pixmap -#define GLX_EXT_texture_from_pixmap 1 - -#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 -#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 -#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 -#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 -#define GLX_Y_INVERTED_EXT 0x20D4 - -#define GLX_TEXTURE_FORMAT_EXT 0x20D5 -#define GLX_TEXTURE_TARGET_EXT 0x20D6 -#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 - -#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 -#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 -#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA - -#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 -#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 -#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 - -#define GLX_TEXTURE_1D_EXT 0x20DB -#define GLX_TEXTURE_2D_EXT 0x20DC -#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD - -#define GLX_FRONT_LEFT_EXT 0x20DE -#define GLX_FRONT_RIGHT_EXT 0x20DF -#define GLX_BACK_LEFT_EXT 0x20E0 -#define GLX_BACK_RIGHT_EXT 0x20E1 -#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT -#define GLX_BACK_EXT GLX_BACK_LEFT_EXT -#define GLX_AUX0_EXT 0x20E2 -#define GLX_AUX1_EXT 0x20E3 -#define GLX_AUX2_EXT 0x20E4 -#define GLX_AUX3_EXT 0x20E5 -#define GLX_AUX4_EXT 0x20E6 -#define GLX_AUX5_EXT 0x20E7 -#define GLX_AUX6_EXT 0x20E8 -#define GLX_AUX7_EXT 0x20E9 -#define GLX_AUX8_EXT 0x20EA -#define GLX_AUX9_EXT 0x20EB - -extern void glXBindTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); -extern void glXReleaseTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer); - -#endif /* GLX_EXT_texture_from_pixmap */ - - - - -/*** Should these go here, or in another header? */ -/* -** GLX Events -*/ -typedef struct { - int event_type; /* GLX_DAMAGED or GLX_SAVED */ - int draw_type; /* GLX_WINDOW or GLX_PBUFFER */ - unsigned long serial; /* # of last request processed by server */ - Bool send_event; /* true if this came for SendEvent request */ - Display *display; /* display the event was read from */ - GLXDrawable drawable; /* XID of Drawable */ - unsigned int buffer_mask; /* mask indicating which buffers are affected */ - unsigned int aux_buffer; /* which aux buffer was affected */ - int x, y; - int width, height; - int count; /* if nonzero, at least this many more */ -} GLXPbufferClobberEvent; - -typedef struct { - int type; - unsigned long serial; /* # of last request processed by server */ - Bool send_event; /* true if this came from a SendEvent request */ - Display *display; /* Display the event was read from */ - GLXDrawable drawable; /* drawable on which event was requested in event mask */ - int event_type; - int64_t ust; - int64_t msc; - int64_t sbc; -} GLXBufferSwapComplete; - -typedef union __GLXEvent { - GLXPbufferClobberEvent glxpbufferclobber; - GLXBufferSwapComplete glxbufferswapcomplete; - long pad[24]; -} GLXEvent; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/linux/include/GL/glx_mangle.h b/lib/linux/include/GL/glx_mangle.h deleted file mode 100644 index fa664a7..0000000 --- a/lib/linux/include/GL/glx_mangle.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * - * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#ifndef GLX_MANGLE_H -#define GLX_MANGLE_H - -#define glXChooseVisual mglXChooseVisual -#define glXCreateContext mglXCreateContext -#define glXDestroyContext mglXDestroyContext -#define glXMakeCurrent mglXMakeCurrent -#define glXCopyContext mglXCopyContext -#define glXSwapBuffers mglXSwapBuffers -#define glXCreateGLXPixmap mglXCreateGLXPixmap -#define glXDestroyGLXPixmap mglXDestroyGLXPixmap -#define glXQueryExtension mglXQueryExtension -#define glXQueryVersion mglXQueryVersion -#define glXIsDirect mglXIsDirect -#define glXGetConfig mglXGetConfig -#define glXGetCurrentContext mglXGetCurrentContext -#define glXGetCurrentDrawable mglXGetCurrentDrawable -#define glXWaitGL mglXWaitGL -#define glXWaitX mglXWaitX -#define glXUseXFont mglXUseXFont -#define glXQueryExtensionsString mglXQueryExtensionsString -#define glXQueryServerString mglXQueryServerString -#define glXGetClientString mglXGetClientString -#define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA -#define glXReleaseBuffersMESA mglXReleaseBuffersMESA -#define glXCopySubBufferMESA mglXCopySubBufferMESA -#define glXGetVideoSyncSGI mglXGetVideoSyncSGI -#define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI - -/* GLX 1.2 */ -#define glXGetCurrentDisplay mglXGetCurrentDisplay - -/* GLX 1.3 */ -#define glXChooseFBConfig mglXChooseFBConfig -#define glXGetFBConfigAttrib mglXGetFBConfigAttrib -#define glXGetFBConfigs mglXGetFBConfigs -#define glXGetVisualFromFBConfig mglXGetVisualFromFBConfig -#define glXCreateWindow mglXCreateWindow -#define glXDestroyWindow mglXDestroyWindow -#define glXCreatePixmap mglXCreatePixmap -#define glXDestroyPixmap mglXDestroyPixmap -#define glXCreatePbuffer mglXCreatePbuffer -#define glXDestroyPbuffer mglXDestroyPbuffer -#define glXQueryDrawable mglXQueryDrawable -#define glXCreateNewContext mglXCreateNewContext -#define glXMakeContextCurrent mglXMakeContextCurrent -#define glXGetCurrentReadDrawable mglXGetCurrentReadDrawable -#define glXQueryContext mglXQueryContext -#define glXSelectEvent mglXSelectEvent -#define glXGetSelectedEvent mglXGetSelectedEvent - -/* GLX 1.4 */ -#define glXGetProcAddress mglXGetProcAddress -#define glXGetProcAddressARB mglXGetProcAddressARB - - -#endif diff --git a/lib/linux/include/GL/glxew.h b/lib/linux/include/GL/glxew.h deleted file mode 100644 index 6d249f7..0000000 --- a/lib/linux/include/GL/glxew.h +++ /dev/null @@ -1,1587 +0,0 @@ -/* -** The OpenGL Extension Wrangler Library -** Copyright (C) 2002-2008, Milan Ikits -** Copyright (C) 2002-2008, Marcelo E. Magallon -** Copyright (C) 2002, Lev Povalahev -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are met: -** -** * Redistributions of source code must retain the above copyright notice, -** this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright notice, -** this list of conditions and the following disclaimer in the documentation -** and/or other materials provided with the distribution. -** * The name of the author may be used to endorse or promote products -** derived from this software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -** THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * Mesa 3-D graphics library - * Version: 7.0 - * - * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* -** Copyright (c) 2007 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -#ifndef __glxew_h__ -#define __glxew_h__ -#define __GLXEW_H__ - -#ifdef __glxext_h_ -#error glxext.h included before glxew.h -#endif - -#if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__) -#error glx.h included before glxew.h -#endif - -#define __glxext_h_ - -#define GLX_H -#define __GLX_glx_h__ -#define __glx_h__ - -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ---------------------------- GLX_VERSION_1_0 --------------------------- */ - -#ifndef GLX_VERSION_1_0 -#define GLX_VERSION_1_0 1 - -#define GLX_USE_GL 1 -#define GLX_BUFFER_SIZE 2 -#define GLX_LEVEL 3 -#define GLX_RGBA 4 -#define GLX_DOUBLEBUFFER 5 -#define GLX_STEREO 6 -#define GLX_AUX_BUFFERS 7 -#define GLX_RED_SIZE 8 -#define GLX_GREEN_SIZE 9 -#define GLX_BLUE_SIZE 10 -#define GLX_ALPHA_SIZE 11 -#define GLX_DEPTH_SIZE 12 -#define GLX_STENCIL_SIZE 13 -#define GLX_ACCUM_RED_SIZE 14 -#define GLX_ACCUM_GREEN_SIZE 15 -#define GLX_ACCUM_BLUE_SIZE 16 -#define GLX_ACCUM_ALPHA_SIZE 17 -#define GLX_BAD_SCREEN 1 -#define GLX_BAD_ATTRIBUTE 2 -#define GLX_NO_EXTENSION 3 -#define GLX_BAD_VISUAL 4 -#define GLX_BAD_CONTEXT 5 -#define GLX_BAD_VALUE 6 -#define GLX_BAD_ENUM 7 - -typedef XID GLXDrawable; -typedef XID GLXPixmap; -#ifdef __sun -typedef struct __glXContextRec *GLXContext; -#else -typedef struct __GLXcontextRec *GLXContext; -#endif - -typedef unsigned int GLXVideoDeviceNV; - -extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase); -extern Bool glXQueryVersion (Display *dpy, int *major, int *minor); -extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value); -extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList); -extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap); -extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix); -extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct); -extern void glXDestroyContext (Display *dpy, GLXContext ctx); -extern Bool glXIsDirect (Display *dpy, GLXContext ctx); -extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask); -extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx); -extern GLXContext glXGetCurrentContext (void); -extern GLXDrawable glXGetCurrentDrawable (void); -extern void glXWaitGL (void); -extern void glXWaitX (void); -extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable); -extern void glXUseXFont (Font font, int first, int count, int listBase); - -#define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0) - -#endif /* GLX_VERSION_1_0 */ - -/* ---------------------------- GLX_VERSION_1_1 --------------------------- */ - -#ifndef GLX_VERSION_1_1 -#define GLX_VERSION_1_1 - -#define GLX_VENDOR 0x1 -#define GLX_VERSION 0x2 -#define GLX_EXTENSIONS 0x3 - -extern const char* glXQueryExtensionsString (Display *dpy, int screen); -extern const char* glXGetClientString (Display *dpy, int name); -extern const char* glXQueryServerString (Display *dpy, int screen, int name); - -#define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1) - -#endif /* GLX_VERSION_1_1 */ - -/* ---------------------------- GLX_VERSION_1_2 ---------------------------- */ - -#ifndef GLX_VERSION_1_2 -#define GLX_VERSION_1_2 1 - -typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void); - -#define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay) - -#define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2) - -#endif /* GLX_VERSION_1_2 */ - -/* ---------------------------- GLX_VERSION_1_3 ---------------------------- */ - -#ifndef GLX_VERSION_1_3 -#define GLX_VERSION_1_3 1 - -#define GLX_RGBA_BIT 0x00000001 -#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 -#define GLX_WINDOW_BIT 0x00000001 -#define GLX_COLOR_INDEX_BIT 0x00000002 -#define GLX_PIXMAP_BIT 0x00000002 -#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 -#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 -#define GLX_PBUFFER_BIT 0x00000004 -#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 -#define GLX_AUX_BUFFERS_BIT 0x00000010 -#define GLX_CONFIG_CAVEAT 0x20 -#define GLX_DEPTH_BUFFER_BIT 0x00000020 -#define GLX_X_VISUAL_TYPE 0x22 -#define GLX_TRANSPARENT_TYPE 0x23 -#define GLX_TRANSPARENT_INDEX_VALUE 0x24 -#define GLX_TRANSPARENT_RED_VALUE 0x25 -#define GLX_TRANSPARENT_GREEN_VALUE 0x26 -#define GLX_TRANSPARENT_BLUE_VALUE 0x27 -#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 -#define GLX_STENCIL_BUFFER_BIT 0x00000040 -#define GLX_ACCUM_BUFFER_BIT 0x00000080 -#define GLX_NONE 0x8000 -#define GLX_SLOW_CONFIG 0x8001 -#define GLX_TRUE_COLOR 0x8002 -#define GLX_DIRECT_COLOR 0x8003 -#define GLX_PSEUDO_COLOR 0x8004 -#define GLX_STATIC_COLOR 0x8005 -#define GLX_GRAY_SCALE 0x8006 -#define GLX_STATIC_GRAY 0x8007 -#define GLX_TRANSPARENT_RGB 0x8008 -#define GLX_TRANSPARENT_INDEX 0x8009 -#define GLX_VISUAL_ID 0x800B -#define GLX_SCREEN 0x800C -#define GLX_NON_CONFORMANT_CONFIG 0x800D -#define GLX_DRAWABLE_TYPE 0x8010 -#define GLX_RENDER_TYPE 0x8011 -#define GLX_X_RENDERABLE 0x8012 -#define GLX_FBCONFIG_ID 0x8013 -#define GLX_RGBA_TYPE 0x8014 -#define GLX_COLOR_INDEX_TYPE 0x8015 -#define GLX_MAX_PBUFFER_WIDTH 0x8016 -#define GLX_MAX_PBUFFER_HEIGHT 0x8017 -#define GLX_MAX_PBUFFER_PIXELS 0x8018 -#define GLX_PRESERVED_CONTENTS 0x801B -#define GLX_LARGEST_PBUFFER 0x801C -#define GLX_WIDTH 0x801D -#define GLX_HEIGHT 0x801E -#define GLX_EVENT_MASK 0x801F -#define GLX_DAMAGED 0x8020 -#define GLX_SAVED 0x8021 -#define GLX_WINDOW 0x8022 -#define GLX_PBUFFER 0x8023 -#define GLX_PBUFFER_HEIGHT 0x8040 -#define GLX_PBUFFER_WIDTH 0x8041 -#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 -#define GLX_DONT_CARE 0xFFFFFFFF - -typedef XID GLXFBConfigID; -typedef XID GLXPbuffer; -typedef XID GLXWindow; -typedef struct __GLXFBConfigRec *GLXFBConfig; - -typedef struct { - int event_type; - int draw_type; - unsigned long serial; - Bool send_event; - Display *display; - GLXDrawable drawable; - unsigned int buffer_mask; - unsigned int aux_buffer; - int x, y; - int width, height; - int count; -} GLXPbufferClobberEvent; -typedef union __GLXEvent { - GLXPbufferClobberEvent glxpbufferclobber; - long pad[24]; -} GLXEvent; - -typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); -typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); -typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); -typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); -typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); -typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); -typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); -typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); -typedef GLXFBConfig* ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); -typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); -typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); -typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx); -typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); -typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); -typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); - -#define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig) -#define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext) -#define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer) -#define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap) -#define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow) -#define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer) -#define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap) -#define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow) -#define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable) -#define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib) -#define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs) -#define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent) -#define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig) -#define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent) -#define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext) -#define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable) -#define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent) - -#define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3) - -#endif /* GLX_VERSION_1_3 */ - -/* ---------------------------- GLX_VERSION_1_4 ---------------------------- */ - -#ifndef GLX_VERSION_1_4 -#define GLX_VERSION_1_4 1 - -#define GLX_SAMPLE_BUFFERS 100000 -#define GLX_SAMPLES 100001 - -extern void ( * glXGetProcAddress (const GLubyte *procName)) (void); - -#define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4) - -#endif /* GLX_VERSION_1_4 */ - -/* -------------------------- GLX_3DFX_multisample ------------------------- */ - -#ifndef GLX_3DFX_multisample -#define GLX_3DFX_multisample 1 - -#define GLX_SAMPLE_BUFFERS_3DFX 0x8050 -#define GLX_SAMPLES_3DFX 0x8051 - -#define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample) - -#endif /* GLX_3DFX_multisample */ - -/* ------------------------ GLX_AMD_gpu_association ------------------------ */ - -#ifndef GLX_AMD_gpu_association -#define GLX_AMD_gpu_association 1 - -#define GLX_GPU_VENDOR_AMD 0x1F00 -#define GLX_GPU_RENDERER_STRING_AMD 0x1F01 -#define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 -#define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 -#define GLX_GPU_RAM_AMD 0x21A3 -#define GLX_GPU_CLOCK_AMD 0x21A4 -#define GLX_GPU_NUM_PIPES_AMD 0x21A5 -#define GLX_GPU_NUM_SIMD_AMD 0x21A6 -#define GLX_GPU_NUM_RB_AMD 0x21A7 -#define GLX_GPU_NUM_SPI_AMD 0x21A8 - -#define GLXEW_AMD_gpu_association GLXEW_GET_VAR(__GLXEW_AMD_gpu_association) - -#endif /* GLX_AMD_gpu_association */ - -/* ------------------------- GLX_ARB_create_context ------------------------ */ - -#ifndef GLX_ARB_create_context -#define GLX_ARB_create_context 1 - -#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001 -#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 -#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 -#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 -#define GLX_CONTEXT_FLAGS_ARB 0x2094 - -typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); - -#define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB) - -#define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context) - -#endif /* GLX_ARB_create_context */ - -/* --------------------- GLX_ARB_create_context_profile -------------------- */ - -#ifndef GLX_ARB_create_context_profile -#define GLX_ARB_create_context_profile 1 - -#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 -#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 -#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 - -#define GLXEW_ARB_create_context_profile GLXEW_GET_VAR(__GLXEW_ARB_create_context_profile) - -#endif /* GLX_ARB_create_context_profile */ - -/* ------------------- GLX_ARB_create_context_robustness ------------------- */ - -#ifndef GLX_ARB_create_context_robustness -#define GLX_ARB_create_context_robustness 1 - -#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261 - -#define GLXEW_ARB_create_context_robustness GLXEW_GET_VAR(__GLXEW_ARB_create_context_robustness) - -#endif /* GLX_ARB_create_context_robustness */ - -/* ------------------------- GLX_ARB_fbconfig_float ------------------------ */ - -#ifndef GLX_ARB_fbconfig_float -#define GLX_ARB_fbconfig_float 1 - -#define GLX_RGBA_FLOAT_BIT 0x00000004 -#define GLX_RGBA_FLOAT_TYPE 0x20B9 - -#define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float) - -#endif /* GLX_ARB_fbconfig_float */ - -/* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */ - -#ifndef GLX_ARB_framebuffer_sRGB -#define GLX_ARB_framebuffer_sRGB 1 - -#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2 - -#define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB) - -#endif /* GLX_ARB_framebuffer_sRGB */ - -/* ------------------------ GLX_ARB_get_proc_address ----------------------- */ - -#ifndef GLX_ARB_get_proc_address -#define GLX_ARB_get_proc_address 1 - -extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void); - -#define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address) - -#endif /* GLX_ARB_get_proc_address */ - -/* -------------------------- GLX_ARB_multisample -------------------------- */ - -#ifndef GLX_ARB_multisample -#define GLX_ARB_multisample 1 - -#define GLX_SAMPLE_BUFFERS_ARB 100000 -#define GLX_SAMPLES_ARB 100001 - -#define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample) - -#endif /* GLX_ARB_multisample */ - -/* ---------------------- GLX_ARB_vertex_buffer_object --------------------- */ - -#ifndef GLX_ARB_vertex_buffer_object -#define GLX_ARB_vertex_buffer_object 1 - -#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095 - -#define GLXEW_ARB_vertex_buffer_object GLXEW_GET_VAR(__GLXEW_ARB_vertex_buffer_object) - -#endif /* GLX_ARB_vertex_buffer_object */ - -/* ----------------------- GLX_ATI_pixel_format_float ---------------------- */ - -#ifndef GLX_ATI_pixel_format_float -#define GLX_ATI_pixel_format_float 1 - -#define GLX_RGBA_FLOAT_ATI_BIT 0x00000100 - -#define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float) - -#endif /* GLX_ATI_pixel_format_float */ - -/* ------------------------- GLX_ATI_render_texture ------------------------ */ - -#ifndef GLX_ATI_render_texture -#define GLX_ATI_render_texture 1 - -#define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800 -#define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801 -#define GLX_TEXTURE_FORMAT_ATI 0x9802 -#define GLX_TEXTURE_TARGET_ATI 0x9803 -#define GLX_MIPMAP_TEXTURE_ATI 0x9804 -#define GLX_TEXTURE_RGB_ATI 0x9805 -#define GLX_TEXTURE_RGBA_ATI 0x9806 -#define GLX_NO_TEXTURE_ATI 0x9807 -#define GLX_TEXTURE_CUBE_MAP_ATI 0x9808 -#define GLX_TEXTURE_1D_ATI 0x9809 -#define GLX_TEXTURE_2D_ATI 0x980A -#define GLX_MIPMAP_LEVEL_ATI 0x980B -#define GLX_CUBE_MAP_FACE_ATI 0x980C -#define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D -#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E -#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F -#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810 -#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811 -#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812 -#define GLX_FRONT_LEFT_ATI 0x9813 -#define GLX_FRONT_RIGHT_ATI 0x9814 -#define GLX_BACK_LEFT_ATI 0x9815 -#define GLX_BACK_RIGHT_ATI 0x9816 -#define GLX_AUX0_ATI 0x9817 -#define GLX_AUX1_ATI 0x9818 -#define GLX_AUX2_ATI 0x9819 -#define GLX_AUX3_ATI 0x981A -#define GLX_AUX4_ATI 0x981B -#define GLX_AUX5_ATI 0x981C -#define GLX_AUX6_ATI 0x981D -#define GLX_AUX7_ATI 0x981E -#define GLX_AUX8_ATI 0x981F -#define GLX_AUX9_ATI 0x9820 -#define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821 -#define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822 - -typedef void ( * PFNGLXBINDTEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); -typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC) (Display *dpy, GLXDrawable draw, const int *attrib_list); -typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); - -#define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI) -#define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI) -#define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI) - -#define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture) - -#endif /* GLX_ATI_render_texture */ - -/* ------------------- GLX_EXT_create_context_es2_profile ------------------ */ - -#ifndef GLX_EXT_create_context_es2_profile -#define GLX_EXT_create_context_es2_profile 1 - -#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 - -#define GLXEW_EXT_create_context_es2_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es2_profile) - -#endif /* GLX_EXT_create_context_es2_profile */ - -/* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */ - -#ifndef GLX_EXT_fbconfig_packed_float -#define GLX_EXT_fbconfig_packed_float 1 - -#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 -#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 - -#define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float) - -#endif /* GLX_EXT_fbconfig_packed_float */ - -/* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */ - -#ifndef GLX_EXT_framebuffer_sRGB -#define GLX_EXT_framebuffer_sRGB 1 - -#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 - -#define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB) - -#endif /* GLX_EXT_framebuffer_sRGB */ - -/* ------------------------- GLX_EXT_import_context ------------------------ */ - -#ifndef GLX_EXT_import_context -#define GLX_EXT_import_context 1 - -#define GLX_SHARE_CONTEXT_EXT 0x800A -#define GLX_VISUAL_ID_EXT 0x800B -#define GLX_SCREEN_EXT 0x800C - -typedef XID GLXContextID; - -typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context); -typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); -typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID); -typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute,int *value); - -#define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT) -#define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT) -#define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT) -#define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT) - -#define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context) - -#endif /* GLX_EXT_import_context */ - -/* -------------------------- GLX_EXT_scene_marker ------------------------- */ - -#ifndef GLX_EXT_scene_marker -#define GLX_EXT_scene_marker 1 - -#define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker) - -#endif /* GLX_EXT_scene_marker */ - -/* -------------------------- GLX_EXT_swap_control ------------------------- */ - -#ifndef GLX_EXT_swap_control -#define GLX_EXT_swap_control 1 - -#define GLX_SWAP_INTERVAL_EXT 0x20F1 -#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 - -typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval); - -#define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT) - -#define GLXEW_EXT_swap_control GLXEW_GET_VAR(__GLXEW_EXT_swap_control) - -#endif /* GLX_EXT_swap_control */ - -/* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */ - -#ifndef GLX_EXT_texture_from_pixmap -#define GLX_EXT_texture_from_pixmap 1 - -#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 -#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 -#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 -#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 -#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 -#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 -#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 -#define GLX_Y_INVERTED_EXT 0x20D4 -#define GLX_TEXTURE_FORMAT_EXT 0x20D5 -#define GLX_TEXTURE_TARGET_EXT 0x20D6 -#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 -#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 -#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 -#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA -#define GLX_TEXTURE_1D_EXT 0x20DB -#define GLX_TEXTURE_2D_EXT 0x20DC -#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD -#define GLX_FRONT_LEFT_EXT 0x20DE -#define GLX_FRONT_RIGHT_EXT 0x20DF -#define GLX_BACK_LEFT_EXT 0x20E0 -#define GLX_BACK_RIGHT_EXT 0x20E1 -#define GLX_AUX0_EXT 0x20E2 -#define GLX_AUX1_EXT 0x20E3 -#define GLX_AUX2_EXT 0x20E4 -#define GLX_AUX3_EXT 0x20E5 -#define GLX_AUX4_EXT 0x20E6 -#define GLX_AUX5_EXT 0x20E7 -#define GLX_AUX6_EXT 0x20E8 -#define GLX_AUX7_EXT 0x20E9 -#define GLX_AUX8_EXT 0x20EA -#define GLX_AUX9_EXT 0x20EB - -typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list); -typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer); - -#define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT) -#define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT) - -#define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap) - -#endif /* GLX_EXT_texture_from_pixmap */ - -/* -------------------------- GLX_EXT_visual_info -------------------------- */ - -#ifndef GLX_EXT_visual_info -#define GLX_EXT_visual_info 1 - -#define GLX_X_VISUAL_TYPE_EXT 0x22 -#define GLX_TRANSPARENT_TYPE_EXT 0x23 -#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 -#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 -#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 -#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 -#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 -#define GLX_NONE_EXT 0x8000 -#define GLX_TRUE_COLOR_EXT 0x8002 -#define GLX_DIRECT_COLOR_EXT 0x8003 -#define GLX_PSEUDO_COLOR_EXT 0x8004 -#define GLX_STATIC_COLOR_EXT 0x8005 -#define GLX_GRAY_SCALE_EXT 0x8006 -#define GLX_STATIC_GRAY_EXT 0x8007 -#define GLX_TRANSPARENT_RGB_EXT 0x8008 -#define GLX_TRANSPARENT_INDEX_EXT 0x8009 - -#define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info) - -#endif /* GLX_EXT_visual_info */ - -/* ------------------------- GLX_EXT_visual_rating ------------------------- */ - -#ifndef GLX_EXT_visual_rating -#define GLX_EXT_visual_rating 1 - -#define GLX_VISUAL_CAVEAT_EXT 0x20 -#define GLX_SLOW_VISUAL_EXT 0x8001 -#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D - -#define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating) - -#endif /* GLX_EXT_visual_rating */ - -/* -------------------------- GLX_INTEL_swap_event ------------------------- */ - -#ifndef GLX_INTEL_swap_event -#define GLX_INTEL_swap_event 1 - -#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180 -#define GLX_COPY_COMPLETE_INTEL 0x8181 -#define GLX_FLIP_COMPLETE_INTEL 0x8182 -#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000 - -#define GLXEW_INTEL_swap_event GLXEW_GET_VAR(__GLXEW_INTEL_swap_event) - -#endif /* GLX_INTEL_swap_event */ - -/* -------------------------- GLX_MESA_agp_offset -------------------------- */ - -#ifndef GLX_MESA_agp_offset -#define GLX_MESA_agp_offset 1 - -typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer); - -#define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA) - -#define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset) - -#endif /* GLX_MESA_agp_offset */ - -/* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */ - -#ifndef GLX_MESA_copy_sub_buffer -#define GLX_MESA_copy_sub_buffer 1 - -typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height); - -#define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA) - -#define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer) - -#endif /* GLX_MESA_copy_sub_buffer */ - -/* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */ - -#ifndef GLX_MESA_pixmap_colormap -#define GLX_MESA_pixmap_colormap 1 - -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); - -#define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA) - -#define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap) - -#endif /* GLX_MESA_pixmap_colormap */ - -/* ------------------------ GLX_MESA_release_buffers ----------------------- */ - -#ifndef GLX_MESA_release_buffers -#define GLX_MESA_release_buffers 1 - -typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d); - -#define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA) - -#define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers) - -#endif /* GLX_MESA_release_buffers */ - -/* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */ - -#ifndef GLX_MESA_set_3dfx_mode -#define GLX_MESA_set_3dfx_mode 1 - -#define GLX_3DFX_WINDOW_MODE_MESA 0x1 -#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 - -typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode); - -#define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA) - -#define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode) - -#endif /* GLX_MESA_set_3dfx_mode */ - -/* ------------------------- GLX_MESA_swap_control ------------------------- */ - -#ifndef GLX_MESA_swap_control -#define GLX_MESA_swap_control 1 - -typedef int ( * PFNGLXGETSWAPINTERVALMESAPROC) (void); -typedef int ( * PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval); - -#define glXGetSwapIntervalMESA GLXEW_GET_FUN(__glewXGetSwapIntervalMESA) -#define glXSwapIntervalMESA GLXEW_GET_FUN(__glewXSwapIntervalMESA) - -#define GLXEW_MESA_swap_control GLXEW_GET_VAR(__GLXEW_MESA_swap_control) - -#endif /* GLX_MESA_swap_control */ - -/* --------------------------- GLX_NV_copy_image --------------------------- */ - -#ifndef GLX_NV_copy_image -#define GLX_NV_copy_image 1 - -typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); - -#define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV) - -#define GLXEW_NV_copy_image GLXEW_GET_VAR(__GLXEW_NV_copy_image) - -#endif /* GLX_NV_copy_image */ - -/* -------------------------- GLX_NV_float_buffer -------------------------- */ - -#ifndef GLX_NV_float_buffer -#define GLX_NV_float_buffer 1 - -#define GLX_FLOAT_COMPONENTS_NV 0x20B0 - -#define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer) - -#endif /* GLX_NV_float_buffer */ - -/* ---------------------- GLX_NV_multisample_coverage ---------------------- */ - -#ifndef GLX_NV_multisample_coverage -#define GLX_NV_multisample_coverage 1 - -#define GLX_COLOR_SAMPLES_NV 0x20B3 -#define GLX_COVERAGE_SAMPLES_NV 100001 - -#define GLXEW_NV_multisample_coverage GLXEW_GET_VAR(__GLXEW_NV_multisample_coverage) - -#endif /* GLX_NV_multisample_coverage */ - -/* -------------------------- GLX_NV_present_video ------------------------- */ - -#ifndef GLX_NV_present_video -#define GLX_NV_present_video 1 - -#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 - -typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); -typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); - -#define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV) -#define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV) - -#define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video) - -#endif /* GLX_NV_present_video */ - -/* --------------------------- GLX_NV_swap_group --------------------------- */ - -#ifndef GLX_NV_swap_group -#define GLX_NV_swap_group 1 - -typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier); -typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group); -typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count); -typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); -typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); -typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen); - -#define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV) -#define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV) -#define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV) -#define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV) -#define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV) -#define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV) - -#define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group) - -#endif /* GLX_NV_swap_group */ - -/* ----------------------- GLX_NV_vertex_array_range ----------------------- */ - -#ifndef GLX_NV_vertex_array_range -#define GLX_NV_vertex_array_range 1 - -typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); -typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer); - -#define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV) -#define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV) - -#define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range) - -#endif /* GLX_NV_vertex_array_range */ - -/* -------------------------- GLX_NV_video_capture ------------------------- */ - -#ifndef GLX_NV_video_capture -#define GLX_NV_video_capture 1 - -#define GLX_DEVICE_ID_NV 0x20CD -#define GLX_UNIQUE_ID_NV 0x20CE -#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF - -typedef XID GLXVideoCaptureDeviceNV; - -typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); -typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int *nelements); -typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); -typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); -typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); - -#define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV) -#define glXEnumerateVideoCaptureDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoCaptureDevicesNV) -#define glXLockVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXLockVideoCaptureDeviceNV) -#define glXQueryVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXQueryVideoCaptureDeviceNV) -#define glXReleaseVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoCaptureDeviceNV) - -#define GLXEW_NV_video_capture GLXEW_GET_VAR(__GLXEW_NV_video_capture) - -#endif /* GLX_NV_video_capture */ - -/* -------------------------- GLX_NV_video_output -------------------------- */ - -#ifndef GLX_NV_video_output -#define GLX_NV_video_output 1 - -#define GLX_VIDEO_OUT_COLOR_NV 0x20C3 -#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 -#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 -#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 -#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 -#define GLX_VIDEO_OUT_FRAME_NV 0x20C8 -#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 -#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA -#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB -#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC - -typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); -typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); -typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice); -typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf); -typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); - -#define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV) -#define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV) -#define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV) -#define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV) -#define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV) -#define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV) - -#define GLXEW_NV_video_output GLXEW_GET_VAR(__GLXEW_NV_video_output) - -#endif /* GLX_NV_video_output */ - -/* -------------------------- GLX_OML_swap_method -------------------------- */ - -#ifndef GLX_OML_swap_method -#define GLX_OML_swap_method 1 - -#define GLX_SWAP_METHOD_OML 0x8060 -#define GLX_SWAP_EXCHANGE_OML 0x8061 -#define GLX_SWAP_COPY_OML 0x8062 -#define GLX_SWAP_UNDEFINED_OML 0x8063 - -#define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method) - -#endif /* GLX_OML_swap_method */ - -/* -------------------------- GLX_OML_sync_control ------------------------- */ - -#ifndef GLX_OML_sync_control -#define GLX_OML_sync_control 1 - -typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator); -typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc); -typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); -typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc); -typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc); - -#define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML) -#define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML) -#define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML) -#define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML) -#define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML) - -#define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control) - -#endif /* GLX_OML_sync_control */ - -/* ------------------------ GLX_SGIS_blended_overlay ----------------------- */ - -#ifndef GLX_SGIS_blended_overlay -#define GLX_SGIS_blended_overlay 1 - -#define GLX_BLENDED_RGBA_SGIS 0x8025 - -#define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay) - -#endif /* GLX_SGIS_blended_overlay */ - -/* -------------------------- GLX_SGIS_color_range ------------------------- */ - -#ifndef GLX_SGIS_color_range -#define GLX_SGIS_color_range 1 - -#define GLX_MIN_RED_SGIS 0 -#define GLX_MAX_GREEN_SGIS 0 -#define GLX_MIN_BLUE_SGIS 0 -#define GLX_MAX_ALPHA_SGIS 0 -#define GLX_MIN_GREEN_SGIS 0 -#define GLX_MIN_ALPHA_SGIS 0 -#define GLX_MAX_RED_SGIS 0 -#define GLX_EXTENDED_RANGE_SGIS 0 -#define GLX_MAX_BLUE_SGIS 0 - -#define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range) - -#endif /* GLX_SGIS_color_range */ - -/* -------------------------- GLX_SGIS_multisample ------------------------- */ - -#ifndef GLX_SGIS_multisample -#define GLX_SGIS_multisample 1 - -#define GLX_SAMPLE_BUFFERS_SGIS 100000 -#define GLX_SAMPLES_SGIS 100001 - -#define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample) - -#endif /* GLX_SGIS_multisample */ - -/* ---------------------- GLX_SGIS_shared_multisample ---------------------- */ - -#ifndef GLX_SGIS_shared_multisample -#define GLX_SGIS_shared_multisample 1 - -#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 -#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 - -#define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample) - -#endif /* GLX_SGIS_shared_multisample */ - -/* --------------------------- GLX_SGIX_fbconfig --------------------------- */ - -#ifndef GLX_SGIX_fbconfig -#define GLX_SGIX_fbconfig 1 - -#define GLX_WINDOW_BIT_SGIX 0x00000001 -#define GLX_RGBA_BIT_SGIX 0x00000001 -#define GLX_PIXMAP_BIT_SGIX 0x00000002 -#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 -#define GLX_SCREEN_EXT 0x800C -#define GLX_DRAWABLE_TYPE_SGIX 0x8010 -#define GLX_RENDER_TYPE_SGIX 0x8011 -#define GLX_X_RENDERABLE_SGIX 0x8012 -#define GLX_FBCONFIG_ID_SGIX 0x8013 -#define GLX_RGBA_TYPE_SGIX 0x8014 -#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 - -typedef XID GLXFBConfigIDSGIX; -typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; - -typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, Pixmap pixmap); -typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int *value); -typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo *vis); -typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfig config); - -#define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX) -#define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX) -#define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX) -#define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX) -#define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX) -#define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX) - -#define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig) - -#endif /* GLX_SGIX_fbconfig */ - -/* --------------------------- GLX_SGIX_hyperpipe -------------------------- */ - -#ifndef GLX_SGIX_hyperpipe -#define GLX_SGIX_hyperpipe 1 - -#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 -#define GLX_PIPE_RECT_SGIX 0x00000001 -#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 -#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 -#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 -#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 -#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 -#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 -#define GLX_BAD_HYPERPIPE_SGIX 92 -#define GLX_HYPERPIPE_ID_SGIX 0x8030 - -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int networkId; -} GLXHyperpipeNetworkSGIX; -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int XOrigin; - int YOrigin; - int maxHeight; - int maxWidth; -} GLXPipeRectLimits; -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int channel; - unsigned int participationType; - int timeSlice; -} GLXHyperpipeConfigSGIX; -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int srcXOrigin; - int srcYOrigin; - int srcWidth; - int srcHeight; - int destXOrigin; - int destYOrigin; - int destWidth; - int destHeight; -} GLXPipeRect; - -typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); -typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); -typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); -typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); -typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); -typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); -typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); -typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); - -#define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX) -#define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX) -#define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX) -#define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX) -#define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX) -#define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX) -#define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX) -#define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX) - -#define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe) - -#endif /* GLX_SGIX_hyperpipe */ - -/* ---------------------------- GLX_SGIX_pbuffer --------------------------- */ - -#ifndef GLX_SGIX_pbuffer -#define GLX_SGIX_pbuffer 1 - -#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 -#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 -#define GLX_PBUFFER_BIT_SGIX 0x00000004 -#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 -#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 -#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 -#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 -#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 -#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 -#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 -#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 -#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 -#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 -#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 -#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A -#define GLX_PRESERVED_CONTENTS_SGIX 0x801B -#define GLX_LARGEST_PBUFFER_SGIX 0x801C -#define GLX_WIDTH_SGIX 0x801D -#define GLX_HEIGHT_SGIX 0x801E -#define GLX_EVENT_MASK_SGIX 0x801F -#define GLX_DAMAGED_SGIX 0x8020 -#define GLX_SAVED_SGIX 0x8021 -#define GLX_WINDOW_SGIX 0x8022 -#define GLX_PBUFFER_SGIX 0x8023 -#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 - -typedef XID GLXPbufferSGIX; -typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX; - -typedef GLXPbuffer ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list); -typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf); -typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long *mask); -typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf, int attribute, unsigned int *value); -typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask); - -#define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX) -#define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX) -#define glXGetSelectedEventSGIX GLXEW_GET_FUN(__glewXGetSelectedEventSGIX) -#define glXQueryGLXPbufferSGIX GLXEW_GET_FUN(__glewXQueryGLXPbufferSGIX) -#define glXSelectEventSGIX GLXEW_GET_FUN(__glewXSelectEventSGIX) - -#define GLXEW_SGIX_pbuffer GLXEW_GET_VAR(__GLXEW_SGIX_pbuffer) - -#endif /* GLX_SGIX_pbuffer */ - -/* ------------------------- GLX_SGIX_swap_barrier ------------------------- */ - -#ifndef GLX_SGIX_swap_barrier -#define GLX_SGIX_swap_barrier 1 - -typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); -typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); - -#define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX) -#define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX) - -#define GLXEW_SGIX_swap_barrier GLXEW_GET_VAR(__GLXEW_SGIX_swap_barrier) - -#endif /* GLX_SGIX_swap_barrier */ - -/* -------------------------- GLX_SGIX_swap_group -------------------------- */ - -#ifndef GLX_SGIX_swap_group -#define GLX_SGIX_swap_group 1 - -typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); - -#define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX) - -#define GLXEW_SGIX_swap_group GLXEW_GET_VAR(__GLXEW_SGIX_swap_group) - -#endif /* GLX_SGIX_swap_group */ - -/* ------------------------- GLX_SGIX_video_resize ------------------------- */ - -#ifndef GLX_SGIX_video_resize -#define GLX_SGIX_video_resize 1 - -#define GLX_SYNC_FRAME_SGIX 0x00000000 -#define GLX_SYNC_SWAP_SGIX 0x00000001 - -typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window); -typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h); -typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype); -typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int *x, int *y, int *w, int *h); -typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); - -#define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX) -#define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX) -#define glXChannelRectSyncSGIX GLXEW_GET_FUN(__glewXChannelRectSyncSGIX) -#define glXQueryChannelDeltasSGIX GLXEW_GET_FUN(__glewXQueryChannelDeltasSGIX) -#define glXQueryChannelRectSGIX GLXEW_GET_FUN(__glewXQueryChannelRectSGIX) - -#define GLXEW_SGIX_video_resize GLXEW_GET_VAR(__GLXEW_SGIX_video_resize) - -#endif /* GLX_SGIX_video_resize */ - -/* ---------------------- GLX_SGIX_visual_select_group --------------------- */ - -#ifndef GLX_SGIX_visual_select_group -#define GLX_SGIX_visual_select_group 1 - -#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 - -#define GLXEW_SGIX_visual_select_group GLXEW_GET_VAR(__GLXEW_SGIX_visual_select_group) - -#endif /* GLX_SGIX_visual_select_group */ - -/* ---------------------------- GLX_SGI_cushion ---------------------------- */ - -#ifndef GLX_SGI_cushion -#define GLX_SGI_cushion 1 - -typedef void ( * PFNGLXCUSHIONSGIPROC) (Display* dpy, Window window, float cushion); - -#define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI) - -#define GLXEW_SGI_cushion GLXEW_GET_VAR(__GLXEW_SGI_cushion) - -#endif /* GLX_SGI_cushion */ - -/* ----------------------- GLX_SGI_make_current_read ----------------------- */ - -#ifndef GLX_SGI_make_current_read -#define GLX_SGI_make_current_read 1 - -typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); -typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); - -#define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI) -#define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI) - -#define GLXEW_SGI_make_current_read GLXEW_GET_VAR(__GLXEW_SGI_make_current_read) - -#endif /* GLX_SGI_make_current_read */ - -/* -------------------------- GLX_SGI_swap_control ------------------------- */ - -#ifndef GLX_SGI_swap_control -#define GLX_SGI_swap_control 1 - -typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); - -#define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI) - -#define GLXEW_SGI_swap_control GLXEW_GET_VAR(__GLXEW_SGI_swap_control) - -#endif /* GLX_SGI_swap_control */ - -/* --------------------------- GLX_SGI_video_sync -------------------------- */ - -#ifndef GLX_SGI_video_sync -#define GLX_SGI_video_sync 1 - -typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int* count); -typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int* count); - -#define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI) -#define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI) - -#define GLXEW_SGI_video_sync GLXEW_GET_VAR(__GLXEW_SGI_video_sync) - -#endif /* GLX_SGI_video_sync */ - -/* --------------------- GLX_SUN_get_transparent_index --------------------- */ - -#ifndef GLX_SUN_get_transparent_index -#define GLX_SUN_get_transparent_index 1 - -typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex); - -#define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN) - -#define GLXEW_SUN_get_transparent_index GLXEW_GET_VAR(__GLXEW_SUN_get_transparent_index) - -#endif /* GLX_SUN_get_transparent_index */ - -/* -------------------------- GLX_SUN_video_resize ------------------------- */ - -#ifndef GLX_SUN_video_resize -#define GLX_SUN_video_resize 1 - -#define GLX_VIDEO_RESIZE_SUN 0x8171 -#define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD - -typedef int ( * PFNGLXGETVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float* factor); -typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float factor); - -#define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN) -#define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN) - -#define GLXEW_SUN_video_resize GLXEW_GET_VAR(__GLXEW_SUN_video_resize) - -#endif /* GLX_SUN_video_resize */ - -/* ------------------------------------------------------------------------- */ - -#ifdef GLEW_MX -#define GLXEW_EXPORT -#else -#define GLXEW_EXPORT extern -#endif /* GLEW_MX */ - -extern PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay; - -extern PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig; -extern PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext; -extern PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer; -extern PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap; -extern PFNGLXCREATEWINDOWPROC __glewXCreateWindow; -extern PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer; -extern PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap; -extern PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow; -extern PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable; -extern PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib; -extern PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs; -extern PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent; -extern PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig; -extern PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent; -extern PFNGLXQUERYCONTEXTPROC __glewXQueryContext; -extern PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable; -extern PFNGLXSELECTEVENTPROC __glewXSelectEvent; - -extern PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB; - -extern PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI; -extern PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI; -extern PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI; - -extern PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT; -extern PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT; -extern PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT; -extern PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT; - -extern PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT; - -extern PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT; -extern PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT; - -extern PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA; - -extern PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA; - -extern PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA; - -extern PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA; - -extern PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA; - -extern PFNGLXGETSWAPINTERVALMESAPROC __glewXGetSwapIntervalMESA; -extern PFNGLXSWAPINTERVALMESAPROC __glewXSwapIntervalMESA; - -extern PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV; - -extern PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV; -extern PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV; - -extern PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV; -extern PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV; -extern PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV; -extern PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV; -extern PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV; -extern PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV; - -extern PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV; -extern PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV; - -extern PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV; -extern PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV; -extern PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV; -extern PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV; -extern PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV; - -extern PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV; -extern PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV; -extern PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV; -extern PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV; -extern PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV; -extern PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV; - -extern PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML; -extern PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML; -extern PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML; -extern PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML; -extern PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML; - -extern PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX; -extern PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX; -extern PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX; -extern PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX; -extern PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX; -extern PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX; - -extern PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX; -extern PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX; -extern PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX; -extern PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX; -extern PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX; -extern PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX; -extern PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX; -extern PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX; - -extern PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX; -extern PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX; -extern PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX; -extern PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX; -extern PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX; - -extern PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX; -extern PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX; - -extern PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX; - -extern PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX; -extern PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX; -extern PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX; -extern PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX; -extern PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX; - -extern PFNGLXCUSHIONSGIPROC __glewXCushionSGI; - -extern PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI; -extern PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI; - -extern PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI; - -extern PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI; -extern PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI; - -extern PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN; - -extern PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN; -extern PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN; - -#if defined(GLEW_MX) -struct GLXEWContextStruct -{ -#endif /* GLEW_MX */ - -GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_0; -GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_1; -GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_2; -GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_3; -GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_4; -GLXEW_EXPORT GLboolean __GLXEW_3DFX_multisample; -GLXEW_EXPORT GLboolean __GLXEW_AMD_gpu_association; -GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context; -GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context_profile; -GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context_robustness; -GLXEW_EXPORT GLboolean __GLXEW_ARB_fbconfig_float; -GLXEW_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB; -GLXEW_EXPORT GLboolean __GLXEW_ARB_get_proc_address; -GLXEW_EXPORT GLboolean __GLXEW_ARB_multisample; -GLXEW_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object; -GLXEW_EXPORT GLboolean __GLXEW_ATI_pixel_format_float; -GLXEW_EXPORT GLboolean __GLXEW_ATI_render_texture; -GLXEW_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile; -GLXEW_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float; -GLXEW_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB; -GLXEW_EXPORT GLboolean __GLXEW_EXT_import_context; -GLXEW_EXPORT GLboolean __GLXEW_EXT_scene_marker; -GLXEW_EXPORT GLboolean __GLXEW_EXT_swap_control; -GLXEW_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap; -GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_info; -GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_rating; -GLXEW_EXPORT GLboolean __GLXEW_INTEL_swap_event; -GLXEW_EXPORT GLboolean __GLXEW_MESA_agp_offset; -GLXEW_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer; -GLXEW_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap; -GLXEW_EXPORT GLboolean __GLXEW_MESA_release_buffers; -GLXEW_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode; -GLXEW_EXPORT GLboolean __GLXEW_MESA_swap_control; -GLXEW_EXPORT GLboolean __GLXEW_NV_copy_image; -GLXEW_EXPORT GLboolean __GLXEW_NV_float_buffer; -GLXEW_EXPORT GLboolean __GLXEW_NV_multisample_coverage; -GLXEW_EXPORT GLboolean __GLXEW_NV_present_video; -GLXEW_EXPORT GLboolean __GLXEW_NV_swap_group; -GLXEW_EXPORT GLboolean __GLXEW_NV_vertex_array_range; -GLXEW_EXPORT GLboolean __GLXEW_NV_video_capture; -GLXEW_EXPORT GLboolean __GLXEW_NV_video_output; -GLXEW_EXPORT GLboolean __GLXEW_OML_swap_method; -GLXEW_EXPORT GLboolean __GLXEW_OML_sync_control; -GLXEW_EXPORT GLboolean __GLXEW_SGIS_blended_overlay; -GLXEW_EXPORT GLboolean __GLXEW_SGIS_color_range; -GLXEW_EXPORT GLboolean __GLXEW_SGIS_multisample; -GLXEW_EXPORT GLboolean __GLXEW_SGIS_shared_multisample; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_fbconfig; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_hyperpipe; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_pbuffer; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_barrier; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_group; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_video_resize; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_visual_select_group; -GLXEW_EXPORT GLboolean __GLXEW_SGI_cushion; -GLXEW_EXPORT GLboolean __GLXEW_SGI_make_current_read; -GLXEW_EXPORT GLboolean __GLXEW_SGI_swap_control; -GLXEW_EXPORT GLboolean __GLXEW_SGI_video_sync; -GLXEW_EXPORT GLboolean __GLXEW_SUN_get_transparent_index; -GLXEW_EXPORT GLboolean __GLXEW_SUN_video_resize; - -#ifdef GLEW_MX -}; /* GLXEWContextStruct */ -#endif /* GLEW_MX */ - -/* ------------------------------------------------------------------------ */ - -#ifdef GLEW_MX - -typedef struct GLXEWContextStruct GLXEWContext; -extern GLenum glxewContextInit (GLXEWContext* ctx); -extern GLboolean glxewContextIsSupported (const GLXEWContext* ctx, const char* name); - -#define glxewInit() glxewContextInit(glxewGetContext()) -#define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x) - -#define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x)) -#define GLXEW_GET_FUN(x) x - -#else /* GLEW_MX */ - -#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) -#define GLXEW_GET_FUN(x) x - -extern GLboolean glxewIsSupported (const char* name); - -#endif /* GLEW_MX */ - -extern GLboolean glxewGetExtension (const char* name); - -#ifdef __cplusplus -} -#endif - -#endif /* __glxew_h__ */ diff --git a/lib/linux/include/GL/glxext.h b/lib/linux/include/GL/glxext.h deleted file mode 100644 index 3c47dc3..0000000 --- a/lib/linux/include/GL/glxext.h +++ /dev/null @@ -1,993 +0,0 @@ -#ifndef __glxext_h_ -#define __glxext_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2007-2010 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Function declaration macros - to move into glplatform.h */ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - -/*************************************************************/ - -/* Header file version number, required by OpenGL ABI for Linux */ -/* glxext.h last updated 2010/08/06 */ -/* Current version at http://www.opengl.org/registry/ */ -#define GLX_GLXEXT_VERSION 32 - -#ifndef GLX_VERSION_1_3 -#define GLX_WINDOW_BIT 0x00000001 -#define GLX_PIXMAP_BIT 0x00000002 -#define GLX_PBUFFER_BIT 0x00000004 -#define GLX_RGBA_BIT 0x00000001 -#define GLX_COLOR_INDEX_BIT 0x00000002 -#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 -#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 -#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 -#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 -#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 -#define GLX_AUX_BUFFERS_BIT 0x00000010 -#define GLX_DEPTH_BUFFER_BIT 0x00000020 -#define GLX_STENCIL_BUFFER_BIT 0x00000040 -#define GLX_ACCUM_BUFFER_BIT 0x00000080 -#define GLX_CONFIG_CAVEAT 0x20 -#define GLX_X_VISUAL_TYPE 0x22 -#define GLX_TRANSPARENT_TYPE 0x23 -#define GLX_TRANSPARENT_INDEX_VALUE 0x24 -#define GLX_TRANSPARENT_RED_VALUE 0x25 -#define GLX_TRANSPARENT_GREEN_VALUE 0x26 -#define GLX_TRANSPARENT_BLUE_VALUE 0x27 -#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 -#define GLX_DONT_CARE 0xFFFFFFFF -#define GLX_NONE 0x8000 -#define GLX_SLOW_CONFIG 0x8001 -#define GLX_TRUE_COLOR 0x8002 -#define GLX_DIRECT_COLOR 0x8003 -#define GLX_PSEUDO_COLOR 0x8004 -#define GLX_STATIC_COLOR 0x8005 -#define GLX_GRAY_SCALE 0x8006 -#define GLX_STATIC_GRAY 0x8007 -#define GLX_TRANSPARENT_RGB 0x8008 -#define GLX_TRANSPARENT_INDEX 0x8009 -#define GLX_VISUAL_ID 0x800B -#define GLX_SCREEN 0x800C -#define GLX_NON_CONFORMANT_CONFIG 0x800D -#define GLX_DRAWABLE_TYPE 0x8010 -#define GLX_RENDER_TYPE 0x8011 -#define GLX_X_RENDERABLE 0x8012 -#define GLX_FBCONFIG_ID 0x8013 -#define GLX_RGBA_TYPE 0x8014 -#define GLX_COLOR_INDEX_TYPE 0x8015 -#define GLX_MAX_PBUFFER_WIDTH 0x8016 -#define GLX_MAX_PBUFFER_HEIGHT 0x8017 -#define GLX_MAX_PBUFFER_PIXELS 0x8018 -#define GLX_PRESERVED_CONTENTS 0x801B -#define GLX_LARGEST_PBUFFER 0x801C -#define GLX_WIDTH 0x801D -#define GLX_HEIGHT 0x801E -#define GLX_EVENT_MASK 0x801F -#define GLX_DAMAGED 0x8020 -#define GLX_SAVED 0x8021 -#define GLX_WINDOW 0x8022 -#define GLX_PBUFFER 0x8023 -#define GLX_PBUFFER_HEIGHT 0x8040 -#define GLX_PBUFFER_WIDTH 0x8041 -#endif - -#ifndef GLX_VERSION_1_4 -#define GLX_SAMPLE_BUFFERS 100000 -#define GLX_SAMPLES 100001 -#endif - -#ifndef GLX_ARB_get_proc_address -#endif - -#ifndef GLX_ARB_multisample -#define GLX_SAMPLE_BUFFERS_ARB 100000 -#define GLX_SAMPLES_ARB 100001 -#endif - -#ifndef GLX_ARB_vertex_buffer_object -#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095 -#endif - -#ifndef GLX_ARB_fbconfig_float -#define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9 -#define GLX_RGBA_FLOAT_BIT_ARB 0x00000004 -#endif - -#ifndef GLX_ARB_framebuffer_sRGB -#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2 -#endif - -#ifndef GLX_ARB_create_context -#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001 -#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 -#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 -#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 -#define GLX_CONTEXT_FLAGS_ARB 0x2094 -#endif - -#ifndef GLX_ARB_create_context_profile -#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 -#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 -#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 -#endif - -#ifndef GLX_ARB_create_context_robustness -#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261 -#endif - -#ifndef GLX_SGIS_multisample -#define GLX_SAMPLE_BUFFERS_SGIS 100000 -#define GLX_SAMPLES_SGIS 100001 -#endif - -#ifndef GLX_EXT_visual_info -#define GLX_X_VISUAL_TYPE_EXT 0x22 -#define GLX_TRANSPARENT_TYPE_EXT 0x23 -#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 -#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 -#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 -#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 -#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 -#define GLX_NONE_EXT 0x8000 -#define GLX_TRUE_COLOR_EXT 0x8002 -#define GLX_DIRECT_COLOR_EXT 0x8003 -#define GLX_PSEUDO_COLOR_EXT 0x8004 -#define GLX_STATIC_COLOR_EXT 0x8005 -#define GLX_GRAY_SCALE_EXT 0x8006 -#define GLX_STATIC_GRAY_EXT 0x8007 -#define GLX_TRANSPARENT_RGB_EXT 0x8008 -#define GLX_TRANSPARENT_INDEX_EXT 0x8009 -#endif - -#ifndef GLX_SGI_swap_control -#endif - -#ifndef GLX_SGI_video_sync -#endif - -#ifndef GLX_SGI_make_current_read -#endif - -#ifndef GLX_SGIX_video_source -#endif - -#ifndef GLX_EXT_visual_rating -#define GLX_VISUAL_CAVEAT_EXT 0x20 -#define GLX_SLOW_VISUAL_EXT 0x8001 -#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D -/* reuse GLX_NONE_EXT */ -#endif - -#ifndef GLX_EXT_import_context -#define GLX_SHARE_CONTEXT_EXT 0x800A -#define GLX_VISUAL_ID_EXT 0x800B -#define GLX_SCREEN_EXT 0x800C -#endif - -#ifndef GLX_SGIX_fbconfig -#define GLX_WINDOW_BIT_SGIX 0x00000001 -#define GLX_PIXMAP_BIT_SGIX 0x00000002 -#define GLX_RGBA_BIT_SGIX 0x00000001 -#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 -#define GLX_DRAWABLE_TYPE_SGIX 0x8010 -#define GLX_RENDER_TYPE_SGIX 0x8011 -#define GLX_X_RENDERABLE_SGIX 0x8012 -#define GLX_FBCONFIG_ID_SGIX 0x8013 -#define GLX_RGBA_TYPE_SGIX 0x8014 -#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 -/* reuse GLX_SCREEN_EXT */ -#endif - -#ifndef GLX_SGIX_pbuffer -#define GLX_PBUFFER_BIT_SGIX 0x00000004 -#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 -#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 -#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 -#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 -#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 -#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 -#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 -#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 -#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 -#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 -#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 -#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 -#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 -#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 -#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A -#define GLX_PRESERVED_CONTENTS_SGIX 0x801B -#define GLX_LARGEST_PBUFFER_SGIX 0x801C -#define GLX_WIDTH_SGIX 0x801D -#define GLX_HEIGHT_SGIX 0x801E -#define GLX_EVENT_MASK_SGIX 0x801F -#define GLX_DAMAGED_SGIX 0x8020 -#define GLX_SAVED_SGIX 0x8021 -#define GLX_WINDOW_SGIX 0x8022 -#define GLX_PBUFFER_SGIX 0x8023 -#endif - -#ifndef GLX_SGI_cushion -#endif - -#ifndef GLX_SGIX_video_resize -#define GLX_SYNC_FRAME_SGIX 0x00000000 -#define GLX_SYNC_SWAP_SGIX 0x00000001 -#endif - -#ifndef GLX_SGIX_dmbuffer -#define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024 -#endif - -#ifndef GLX_SGIX_swap_group -#endif - -#ifndef GLX_SGIX_swap_barrier -#endif - -#ifndef GLX_SGIS_blended_overlay -#define GLX_BLENDED_RGBA_SGIS 0x8025 -#endif - -#ifndef GLX_SGIS_shared_multisample -#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 -#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 -#endif - -#ifndef GLX_SUN_get_transparent_index -#endif - -#ifndef GLX_3DFX_multisample -#define GLX_SAMPLE_BUFFERS_3DFX 0x8050 -#define GLX_SAMPLES_3DFX 0x8051 -#endif - -#ifndef GLX_MESA_copy_sub_buffer -#endif - -#ifndef GLX_MESA_pixmap_colormap -#endif - -#ifndef GLX_MESA_release_buffers -#endif - -#ifndef GLX_MESA_set_3dfx_mode -#define GLX_3DFX_WINDOW_MODE_MESA 0x1 -#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 -#endif - -#ifndef GLX_SGIX_visual_select_group -#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 -#endif - -#ifndef GLX_OML_swap_method -#define GLX_SWAP_METHOD_OML 0x8060 -#define GLX_SWAP_EXCHANGE_OML 0x8061 -#define GLX_SWAP_COPY_OML 0x8062 -#define GLX_SWAP_UNDEFINED_OML 0x8063 -#endif - -#ifndef GLX_OML_sync_control -#endif - -#ifndef GLX_NV_float_buffer -#define GLX_FLOAT_COMPONENTS_NV 0x20B0 -#endif - -#ifndef GLX_SGIX_hyperpipe -#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 -#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 -#define GLX_BAD_HYPERPIPE_SGIX 92 -#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 -#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 -#define GLX_PIPE_RECT_SGIX 0x00000001 -#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 -#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 -#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 -#define GLX_HYPERPIPE_ID_SGIX 0x8030 -#endif - -#ifndef GLX_MESA_agp_offset -#endif - -#ifndef GLX_EXT_fbconfig_packed_float -#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 -#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 -#endif - -#ifndef GLX_EXT_framebuffer_sRGB -#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 -#endif - -#ifndef GLX_EXT_texture_from_pixmap -#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 -#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 -#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 -#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 -#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 -#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 -#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 -#define GLX_Y_INVERTED_EXT 0x20D4 -#define GLX_TEXTURE_FORMAT_EXT 0x20D5 -#define GLX_TEXTURE_TARGET_EXT 0x20D6 -#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 -#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 -#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 -#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA -#define GLX_TEXTURE_1D_EXT 0x20DB -#define GLX_TEXTURE_2D_EXT 0x20DC -#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD -#define GLX_FRONT_LEFT_EXT 0x20DE -#define GLX_FRONT_RIGHT_EXT 0x20DF -#define GLX_BACK_LEFT_EXT 0x20E0 -#define GLX_BACK_RIGHT_EXT 0x20E1 -#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT -#define GLX_BACK_EXT GLX_BACK_LEFT_EXT -#define GLX_AUX0_EXT 0x20E2 -#define GLX_AUX1_EXT 0x20E3 -#define GLX_AUX2_EXT 0x20E4 -#define GLX_AUX3_EXT 0x20E5 -#define GLX_AUX4_EXT 0x20E6 -#define GLX_AUX5_EXT 0x20E7 -#define GLX_AUX6_EXT 0x20E8 -#define GLX_AUX7_EXT 0x20E9 -#define GLX_AUX8_EXT 0x20EA -#define GLX_AUX9_EXT 0x20EB -#endif - -#ifndef GLX_NV_present_video -#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 -#endif - -#ifndef GLX_NV_video_out -#define GLX_VIDEO_OUT_COLOR_NV 0x20C3 -#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 -#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 -#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 -#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 -#define GLX_VIDEO_OUT_FRAME_NV 0x20C8 -#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 -#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA -#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB -#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC -#endif - -#ifndef GLX_NV_swap_group -#endif - -#ifndef GLX_NV_video_capture -#define GLX_DEVICE_ID_NV 0x20CD -#define GLX_UNIQUE_ID_NV 0x20CE -#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF -#endif - -#ifndef GLX_EXT_swap_control -#define GLX_SWAP_INTERVAL_EXT 0x20F1 -#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 -#endif - -#ifndef GLX_NV_copy_image -#endif - -#ifndef GLX_INTEL_swap_event -#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000 -#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180 -#define GLX_COPY_COMPLETE_INTEL 0x8181 -#define GLX_FLIP_COMPLETE_INTEL 0x8182 -#endif - -#ifndef GLX_NV_multisample_coverage -#define GLX_COVERAGE_SAMPLES_NV 100001 -#define GLX_COLOR_SAMPLES_NV 0x20B3 -#endif - -#ifndef GLX_AMD_gpu_association -#define GLX_GPU_VENDOR_AMD 0x1F00 -#define GLX_GPU_RENDERER_STRING_AMD 0x1F01 -#define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 -#define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 -#define GLX_GPU_RAM_AMD 0x21A3 -#define GLX_GPU_CLOCK_AMD 0x21A4 -#define GLX_GPU_NUM_PIPES_AMD 0x21A5 -#define GLX_GPU_NUM_SIMD_AMD 0x21A6 -#define GLX_GPU_NUM_RB_AMD 0x21A7 -#define GLX_GPU_NUM_SPI_AMD 0x21A8 -#endif - -#ifndef GLX_EXT_create_context_es2_profile -#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 -#endif - - -/*************************************************************/ - -#ifndef GLX_ARB_get_proc_address -typedef void (*__GLXextFuncPtr)(void); -#endif - -#ifndef GLX_SGIX_video_source -typedef XID GLXVideoSourceSGIX; -#endif - -#ifndef GLX_SGIX_fbconfig -typedef XID GLXFBConfigIDSGIX; -typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; -#endif - -#ifndef GLX_SGIX_pbuffer -typedef XID GLXPbufferSGIX; -typedef struct { - int type; - unsigned long serial; /* # of last request processed by server */ - Bool send_event; /* true if this came for SendEvent request */ - Display *display; /* display the event was read from */ - GLXDrawable drawable; /* i.d. of Drawable */ - int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ - int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ - unsigned int mask; /* mask indicating which buffers are affected*/ - int x, y; - int width, height; - int count; /* if nonzero, at least this many more */ -} GLXBufferClobberEventSGIX; -#endif - -#ifndef GLX_NV_video_output -typedef unsigned int GLXVideoDeviceNV; -#endif - -#ifndef GLX_NV_video_capture -typedef XID GLXVideoCaptureDeviceNV; -#endif - -#ifndef GLEXT_64_TYPES_DEFINED -/* This code block is duplicated in glext.h, so must be protected */ -#define GLEXT_64_TYPES_DEFINED -/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -/* (as used in the GLX_OML_sync_control extension). */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -#include -#elif defined(__sun__) || defined(__digital__) -#include -#if defined(__STDC__) -#if defined(__arch64__) || defined(_LP64) -typedef long int int64_t; -typedef unsigned long int uint64_t; -#else -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#endif /* __arch64__ */ -#endif /* __STDC__ */ -#elif defined( __VMS ) || defined(__sgi) -#include -#elif defined(__SCO__) || defined(__USLC__) -#include -#elif defined(__UNIXOS2__) || defined(__SOL64__) -typedef long int int32_t; -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#elif defined(_WIN32) && defined(__GNUC__) -#include -#elif defined(_WIN32) -typedef __int32 int32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -#include /* Fallback option */ -#endif -#endif - -#ifndef GLX_VERSION_1_3 -#define GLX_VERSION_1_3 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern GLXFBConfig * glXGetFBConfigs (Display *dpy, int screen, int *nelements); -extern GLXFBConfig * glXChooseFBConfig (Display *dpy, int screen, const int *attrib_list, int *nelements); -extern int glXGetFBConfigAttrib (Display *dpy, GLXFBConfig config, int attribute, int *value); -extern XVisualInfo * glXGetVisualFromFBConfig (Display *dpy, GLXFBConfig config); -extern GLXWindow glXCreateWindow (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); -extern void glXDestroyWindow (Display *dpy, GLXWindow win); -extern GLXPixmap glXCreatePixmap (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); -extern void glXDestroyPixmap (Display *dpy, GLXPixmap pixmap); -extern GLXPbuffer glXCreatePbuffer (Display *dpy, GLXFBConfig config, const int *attrib_list); -extern void glXDestroyPbuffer (Display *dpy, GLXPbuffer pbuf); -extern void glXQueryDrawable (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); -extern GLXContext glXCreateNewContext (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -extern Bool glXMakeContextCurrent (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); -extern GLXDrawable glXGetCurrentReadDrawable (void); -extern Display * glXGetCurrentDisplay (void); -extern int glXQueryContext (Display *dpy, GLXContext ctx, int attribute, int *value); -extern void glXSelectEvent (Display *dpy, GLXDrawable draw, unsigned long event_mask); -extern void glXGetSelectedEvent (Display *dpy, GLXDrawable draw, unsigned long *event_mask); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); -typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); -typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); -typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); -typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); -typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); -typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); -typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); -typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); -typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); -typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); -typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); -typedef Display * ( * PFNGLXGETCURRENTDISPLAYPROC) (void); -typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); -typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); -typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); -#endif - -#ifndef GLX_VERSION_1_4 -#define GLX_VERSION_1_4 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *procName); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); -#endif - -#ifndef GLX_ARB_get_proc_address -#define GLX_ARB_get_proc_address 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *procName); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName); -#endif - -#ifndef GLX_ARB_multisample -#define GLX_ARB_multisample 1 -#endif - -#ifndef GLX_ARB_fbconfig_float -#define GLX_ARB_fbconfig_float 1 -#endif - -#ifndef GLX_ARB_framebuffer_sRGB -#define GLX_ARB_framebuffer_sRGB 1 -#endif - -#ifndef GLX_ARB_create_context -#define GLX_ARB_create_context 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern GLXContext glXCreateContextAttribsARB (Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); -#endif - -#ifndef GLX_ARB_create_context_profile -#define GLX_ARB_create_context_profile 1 -#endif - -#ifndef GLX_ARB_create_context_robustness -#define GLX_ARB_create_context_robustness 1 -#endif - -#ifndef GLX_SGIS_multisample -#define GLX_SGIS_multisample 1 -#endif - -#ifndef GLX_EXT_visual_info -#define GLX_EXT_visual_info 1 -#endif - -#ifndef GLX_SGI_swap_control -#define GLX_SGI_swap_control 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXSwapIntervalSGI (int interval); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); -#endif - -#ifndef GLX_SGI_video_sync -#define GLX_SGI_video_sync 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXGetVideoSyncSGI (unsigned int *count); -extern int glXWaitVideoSyncSGI (int divisor, int remainder, unsigned int *count); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count); -typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count); -#endif - -#ifndef GLX_SGI_make_current_read -#define GLX_SGI_make_current_read 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXMakeCurrentReadSGI (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); -extern GLXDrawable glXGetCurrentReadDrawableSGI (void); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); -typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); -#endif - -#ifndef GLX_SGIX_video_source -#define GLX_SGIX_video_source 1 -#ifdef _VL_H -#ifdef GLX_GLXEXT_PROTOTYPES -extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode); -extern void glXDestroyGLXVideoSourceSGIX (Display *dpy, GLXVideoSourceSGIX glxvideosource); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode); -typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource); -#endif /* _VL_H */ -#endif - -#ifndef GLX_EXT_visual_rating -#define GLX_EXT_visual_rating 1 -#endif - -#ifndef GLX_EXT_import_context -#define GLX_EXT_import_context 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Display * glXGetCurrentDisplayEXT (void); -extern int glXQueryContextInfoEXT (Display *dpy, GLXContext context, int attribute, int *value); -extern GLXContextID glXGetContextIDEXT (const GLXContext context); -extern GLXContext glXImportContextEXT (Display *dpy, GLXContextID contextID); -extern void glXFreeContextEXT (Display *dpy, GLXContext context); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); -typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value); -typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); -typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID); -typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context); -#endif - -#ifndef GLX_SGIX_fbconfig -#define GLX_SGIX_fbconfig 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXGetFBConfigAttribSGIX (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value); -extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *dpy, int screen, int *attrib_list, int *nelements); -extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap); -extern GLXContext glXCreateContextWithConfigSGIX (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); -extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *dpy, GLXFBConfigSGIX config); -extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *dpy, XVisualInfo *vis); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value); -typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements); -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap); -typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); -typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config); -typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis); -#endif - -#ifndef GLX_SGIX_pbuffer -#define GLX_SGIX_pbuffer 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list); -extern void glXDestroyGLXPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuf); -extern int glXQueryGLXPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value); -extern void glXSelectEventSGIX (Display *dpy, GLXDrawable drawable, unsigned long mask); -extern void glXGetSelectedEventSGIX (Display *dpy, GLXDrawable drawable, unsigned long *mask); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list); -typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf); -typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value); -typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask); -typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask); -#endif - -#ifndef GLX_SGI_cushion -#define GLX_SGI_cushion 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern void glXCushionSGI (Display *dpy, Window window, float cushion); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion); -#endif - -#ifndef GLX_SGIX_video_resize -#define GLX_SGIX_video_resize 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXBindChannelToWindowSGIX (Display *display, int screen, int channel, Window window); -extern int glXChannelRectSGIX (Display *display, int screen, int channel, int x, int y, int w, int h); -extern int glXQueryChannelRectSGIX (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); -extern int glXQueryChannelDeltasSGIX (Display *display, int screen, int channel, int *x, int *y, int *w, int *h); -extern int glXChannelRectSyncSGIX (Display *display, int screen, int channel, GLenum synctype); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window); -typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h); -typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); -typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h); -typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype); -#endif - -#ifndef GLX_SGIX_dmbuffer -#define GLX_SGIX_dmbuffer 1 -#ifdef _DM_BUFFER_H_ -#ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXAssociateDMPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer); -#endif /* _DM_BUFFER_H_ */ -#endif - -#ifndef GLX_SGIX_swap_group -#define GLX_SGIX_swap_group 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern void glXJoinSwapGroupSGIX (Display *dpy, GLXDrawable drawable, GLXDrawable member); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); -#endif - -#ifndef GLX_SGIX_swap_barrier -#define GLX_SGIX_swap_barrier 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern void glXBindSwapBarrierSGIX (Display *dpy, GLXDrawable drawable, int barrier); -extern Bool glXQueryMaxSwapBarriersSGIX (Display *dpy, int screen, int *max); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); -typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); -#endif - -#ifndef GLX_SUN_get_transparent_index -#define GLX_SUN_get_transparent_index 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Status glXGetTransparentIndexSUN (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex); -#endif - -#ifndef GLX_MESA_copy_sub_buffer -#define GLX_MESA_copy_sub_buffer 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern void glXCopySubBufferMESA (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height); -#endif - -#ifndef GLX_MESA_pixmap_colormap -#define GLX_MESA_pixmap_colormap 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern GLXPixmap glXCreateGLXPixmapMESA (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); -#endif - -#ifndef GLX_MESA_release_buffers -#define GLX_MESA_release_buffers 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXReleaseBuffersMESA (Display *dpy, GLXDrawable drawable); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable); -#endif - -#ifndef GLX_MESA_set_3dfx_mode -#define GLX_MESA_set_3dfx_mode 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXSet3DfxModeMESA (int mode); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode); -#endif - -#ifndef GLX_SGIX_visual_select_group -#define GLX_SGIX_visual_select_group 1 -#endif - -#ifndef GLX_OML_swap_method -#define GLX_OML_swap_method 1 -#endif - -#ifndef GLX_OML_sync_control -#define GLX_OML_sync_control 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXGetSyncValuesOML (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc); -extern Bool glXGetMscRateOML (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator); -extern int64_t glXSwapBuffersMscOML (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); -extern Bool glXWaitForMscOML (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc); -extern Bool glXWaitForSbcOML (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc); -typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator); -typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); -typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc); -typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc); -#endif - -#ifndef GLX_NV_float_buffer -#define GLX_NV_float_buffer 1 -#endif - -#ifndef GLX_SGIX_hyperpipe -#define GLX_SGIX_hyperpipe 1 - -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int networkId; -} GLXHyperpipeNetworkSGIX; - -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int channel; - unsigned int - participationType; - int timeSlice; -} GLXHyperpipeConfigSGIX; - -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int srcXOrigin, srcYOrigin, srcWidth, srcHeight; - int destXOrigin, destYOrigin, destWidth, destHeight; -} GLXPipeRect; - -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int XOrigin, YOrigin, maxHeight, maxWidth; -} GLXPipeRectLimits; - -#ifdef GLX_GLXEXT_PROTOTYPES -extern GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *dpy, int *npipes); -extern int glXHyperpipeConfigSGIX (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); -extern GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *dpy, int hpId, int *npipes); -extern int glXDestroyHyperpipeConfigSGIX (Display *dpy, int hpId); -extern int glXBindHyperpipeSGIX (Display *dpy, int hpId); -extern int glXQueryHyperpipeBestAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); -extern int glXHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList); -extern int glXQueryHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); -typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); -typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); -typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); -typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); -typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); -typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); -typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); -#endif - -#ifndef GLX_MESA_agp_offset -#define GLX_MESA_agp_offset 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern unsigned int glXGetAGPOffsetMESA (const void *pointer); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer); -#endif - -#ifndef GLX_EXT_fbconfig_packed_float -#define GLX_EXT_fbconfig_packed_float 1 -#endif - -#ifndef GLX_EXT_framebuffer_sRGB -#define GLX_EXT_framebuffer_sRGB 1 -#endif - -#ifndef GLX_EXT_texture_from_pixmap -#define GLX_EXT_texture_from_pixmap 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern void glXBindTexImageEXT (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); -extern void glXReleaseTexImageEXT (Display *dpy, GLXDrawable drawable, int buffer); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); -typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer); -#endif - -#ifndef GLX_NV_present_video -#define GLX_NV_present_video 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern unsigned int * glXEnumerateVideoDevicesNV (Display *dpy, int screen, int *nelements); -extern int glXBindVideoDeviceNV (Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef unsigned int * ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); -typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); -#endif - -#ifndef GLX_NV_video_output -#define GLX_NV_video_output 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXGetVideoDeviceNV (Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); -extern int glXReleaseVideoDeviceNV (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice); -extern int glXBindVideoImageNV (Display *dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); -extern int glXReleaseVideoImageNV (Display *dpy, GLXPbuffer pbuf); -extern int glXSendPbufferToVideoNV (Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); -extern int glXGetVideoInfoNV (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); -typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice); -typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display *dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); -typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display *dpy, GLXPbuffer pbuf); -typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); -typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -#endif - -#ifndef GLX_NV_swap_group -#define GLX_NV_swap_group 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXJoinSwapGroupNV (Display *dpy, GLXDrawable drawable, GLuint group); -extern Bool glXBindSwapBarrierNV (Display *dpy, GLuint group, GLuint barrier); -extern Bool glXQuerySwapGroupNV (Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); -extern Bool glXQueryMaxSwapGroupsNV (Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); -extern Bool glXQueryFrameCountNV (Display *dpy, int screen, GLuint *count); -extern Bool glXResetFrameCountNV (Display *dpy, int screen); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint group); -typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display *dpy, GLuint group, GLuint barrier); -typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); -typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); -typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display *dpy, int screen, GLuint *count); -typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display *dpy, int screen); -#endif - -#ifndef GLX_NV_video_capture -#define GLX_NV_video_capture 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXBindVideoCaptureDeviceNV (Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); -extern GLXVideoCaptureDeviceNV * glXEnumerateVideoCaptureDevicesNV (Display *dpy, int screen, int *nelements); -extern void glXLockVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV device); -extern int glXQueryVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); -extern void glXReleaseVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV device); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); -typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display *dpy, int screen, int *nelements); -typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device); -typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); -typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device); -#endif - -#ifndef GLX_EXT_swap_control -#define GLX_EXT_swap_control 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXSwapIntervalEXT (Display *dpy, GLXDrawable drawable, int interval); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXSWAPINTERVALEXTPROC) (Display *dpy, GLXDrawable drawable, int interval); -#endif - -#ifndef GLX_NV_copy_image -#define GLX_NV_copy_image 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern void glXCopyImageSubDataNV (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif - -#ifndef GLX_INTEL_swap_event -#define GLX_INTEL_swap_event 1 -#endif - -#ifndef GLX_NV_multisample_coverage -#define GLX_NV_multisample_coverage 1 -#endif - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/linux/include/GL/internal/dri_interface.h b/lib/linux/include/GL/internal/dri_interface.h deleted file mode 100644 index b21445f..0000000 --- a/lib/linux/include/GL/internal/dri_interface.h +++ /dev/null @@ -1,986 +0,0 @@ -/* - * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. - * Copyright 2007-2008 Red Hat, Inc. - * (C) Copyright IBM Corporation 2004 - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * on the rights to use, copy, modify, merge, publish, distribute, sub - * license, and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDERS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - * USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/** - * \file dri_interface.h - * - * This file contains all the types and functions that define the interface - * between a DRI driver and driver loader. Currently, the most common driver - * loader is the XFree86 libGL.so. However, other loaders do exist, and in - * the future the server-side libglx.a will also be a loader. - * - * \author Kevin E. Martin - * \author Ian Romanick - * \author Kristian Høgsberg - */ - -#ifndef DRI_INTERFACE_H -#define DRI_INTERFACE_H - -/* For archs with no drm.h */ -#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__GNU__) -#ifndef __NOT_HAVE_DRM_H -#define __NOT_HAVE_DRM_H -#endif -#endif - -#ifndef __NOT_HAVE_DRM_H -#include -#else -typedef unsigned int drm_context_t; -typedef unsigned int drm_drawable_t; -typedef struct drm_clip_rect drm_clip_rect_t; -#endif - -/** - * \name DRI interface structures - * - * The following structures define the interface between the GLX client - * side library and the DRI (direct rendering infrastructure). - */ -/*@{*/ -typedef struct __DRIdisplayRec __DRIdisplay; -typedef struct __DRIscreenRec __DRIscreen; -typedef struct __DRIcontextRec __DRIcontext; -typedef struct __DRIdrawableRec __DRIdrawable; -typedef struct __DRIconfigRec __DRIconfig; -typedef struct __DRIframebufferRec __DRIframebuffer; -typedef struct __DRIversionRec __DRIversion; - -typedef struct __DRIcoreExtensionRec __DRIcoreExtension; -typedef struct __DRIextensionRec __DRIextension; -typedef struct __DRIcopySubBufferExtensionRec __DRIcopySubBufferExtension; -typedef struct __DRIswapControlExtensionRec __DRIswapControlExtension; -typedef struct __DRIframeTrackingExtensionRec __DRIframeTrackingExtension; -typedef struct __DRImediaStreamCounterExtensionRec __DRImediaStreamCounterExtension; -typedef struct __DRItexOffsetExtensionRec __DRItexOffsetExtension; -typedef struct __DRItexBufferExtensionRec __DRItexBufferExtension; -typedef struct __DRIlegacyExtensionRec __DRIlegacyExtension; -typedef struct __DRIswrastExtensionRec __DRIswrastExtension; -typedef struct __DRIbufferRec __DRIbuffer; -typedef struct __DRIdri2ExtensionRec __DRIdri2Extension; -typedef struct __DRIdri2LoaderExtensionRec __DRIdri2LoaderExtension; -typedef struct __DRI2flushExtensionRec __DRI2flushExtension; -typedef struct __DRI2throttleExtensionRec __DRI2throttleExtension; - -/*@}*/ - - -/** - * Extension struct. Drivers 'inherit' from this struct by embedding - * it as the first element in the extension struct. - * - * We never break API in for a DRI extension. If we need to change - * the way things work in a non-backwards compatible manner, we - * introduce a new extension. During a transition period, we can - * leave both the old and the new extension in the driver, which - * allows us to move to the new interface without having to update the - * loader(s) in lock step. - * - * However, we can add entry points to an extension over time as long - * as we don't break the old ones. As we add entry points to an - * extension, we increase the version number. The corresponding - * #define can be used to guard code that accesses the new entry - * points at compile time and the version field in the extension - * struct can be used at run-time to determine how to use the - * extension. - */ -struct __DRIextensionRec { - const char *name; - int version; -}; - -/** - * The first set of extension are the screen extensions, returned by - * __DRIcore::getExtensions(). This entry point will return a list of - * extensions and the loader can use the ones it knows about by - * casting them to more specific extensions and advertising any GLX - * extensions the DRI extensions enables. - */ - -/** - * Used by drivers to indicate support for setting the read drawable. - */ -#define __DRI_READ_DRAWABLE "DRI_ReadDrawable" -#define __DRI_READ_DRAWABLE_VERSION 1 - -/** - * Used by drivers that implement the GLX_MESA_copy_sub_buffer extension. - */ -#define __DRI_COPY_SUB_BUFFER "DRI_CopySubBuffer" -#define __DRI_COPY_SUB_BUFFER_VERSION 1 -struct __DRIcopySubBufferExtensionRec { - __DRIextension base; - void (*copySubBuffer)(__DRIdrawable *drawable, int x, int y, int w, int h); -}; - -/** - * Used by drivers that implement the GLX_SGI_swap_control or - * GLX_MESA_swap_control extension. - */ -#define __DRI_SWAP_CONTROL "DRI_SwapControl" -#define __DRI_SWAP_CONTROL_VERSION 1 -struct __DRIswapControlExtensionRec { - __DRIextension base; - void (*setSwapInterval)(__DRIdrawable *drawable, unsigned int inteval); - unsigned int (*getSwapInterval)(__DRIdrawable *drawable); -}; - -/** - * Used by drivers that implement the GLX_MESA_swap_frame_usage extension. - */ -#define __DRI_FRAME_TRACKING "DRI_FrameTracking" -#define __DRI_FRAME_TRACKING_VERSION 1 -struct __DRIframeTrackingExtensionRec { - __DRIextension base; - - /** - * Enable or disable frame usage tracking. - * - * \since Internal API version 20030317. - */ - int (*frameTracking)(__DRIdrawable *drawable, GLboolean enable); - - /** - * Retrieve frame usage information. - * - * \since Internal API version 20030317. - */ - int (*queryFrameTracking)(__DRIdrawable *drawable, - int64_t * sbc, int64_t * missedFrames, - float * lastMissedUsage, float * usage); -}; - - -/** - * Used by drivers that implement the GLX_SGI_video_sync extension. - */ -#define __DRI_MEDIA_STREAM_COUNTER "DRI_MediaStreamCounter" -#define __DRI_MEDIA_STREAM_COUNTER_VERSION 1 -struct __DRImediaStreamCounterExtensionRec { - __DRIextension base; - - /** - * Wait for the MSC to equal target_msc, or, if that has already passed, - * the next time (MSC % divisor) is equal to remainder. If divisor is - * zero, the function will return as soon as MSC is greater than or equal - * to target_msc. - */ - int (*waitForMSC)(__DRIdrawable *drawable, - int64_t target_msc, int64_t divisor, int64_t remainder, - int64_t * msc, int64_t * sbc); - - /** - * Get the number of vertical refreshes since some point in time before - * this function was first called (i.e., system start up). - */ - int (*getDrawableMSC)(__DRIscreen *screen, __DRIdrawable *drawable, - int64_t *msc); -}; - - -#define __DRI_TEX_OFFSET "DRI_TexOffset" -#define __DRI_TEX_OFFSET_VERSION 1 -struct __DRItexOffsetExtensionRec { - __DRIextension base; - - /** - * Method to override base texture image with a driver specific 'offset'. - * The depth passed in allows e.g. to ignore the alpha channel of texture - * images where the non-alpha components don't occupy a whole texel. - * - * For GLX_EXT_texture_from_pixmap with AIGLX. - */ - void (*setTexOffset)(__DRIcontext *pDRICtx, GLint texname, - unsigned long long offset, GLint depth, GLuint pitch); -}; - - -/* Valid values for format in the setTexBuffer2 function below. These - * values match the GLX tokens for compatibility reasons, but we - * define them here since the DRI interface can't depend on GLX. */ -#define __DRI_TEXTURE_FORMAT_NONE 0x20D8 -#define __DRI_TEXTURE_FORMAT_RGB 0x20D9 -#define __DRI_TEXTURE_FORMAT_RGBA 0x20DA - -#define __DRI_TEX_BUFFER "DRI_TexBuffer" -#define __DRI_TEX_BUFFER_VERSION 2 -struct __DRItexBufferExtensionRec { - __DRIextension base; - - /** - * Method to override base texture image with the contents of a - * __DRIdrawable. - * - * For GLX_EXT_texture_from_pixmap with AIGLX. Deprecated in favor of - * setTexBuffer2 in version 2 of this interface - */ - void (*setTexBuffer)(__DRIcontext *pDRICtx, - GLint target, - __DRIdrawable *pDraw); - - /** - * Method to override base texture image with the contents of a - * __DRIdrawable, including the required texture format attribute. - * - * For GLX_EXT_texture_from_pixmap with AIGLX. - */ - void (*setTexBuffer2)(__DRIcontext *pDRICtx, - GLint target, - GLint format, - __DRIdrawable *pDraw); - /** - * Method to release texture buffer in case some special platform - * need this. - * - * For GLX_EXT_texture_from_pixmap with AIGLX. - */ - void (*releaseTexBuffer)(__DRIcontext *pDRICtx, - GLint target, - __DRIdrawable *pDraw); -}; - -/** - * Used by drivers that implement DRI2 - */ -#define __DRI2_FLUSH "DRI2_Flush" -#define __DRI2_FLUSH_VERSION 3 -struct __DRI2flushExtensionRec { - __DRIextension base; - void (*flush)(__DRIdrawable *drawable); - - /** - * Ask the driver to call getBuffers/getBuffersWithFormat before - * it starts rendering again. - * - * \param drawable the drawable to invalidate - * - * \since 3 - */ - void (*invalidate)(__DRIdrawable *drawable); -}; - - -/** - * Extension that the driver uses to request - * throttle callbacks. - */ - -#define __DRI2_THROTTLE "DRI2_Throttle" -#define __DRI2_THROTTLE_VERSION 1 - -enum __DRI2throttleReason { - __DRI2_THROTTLE_SWAPBUFFER, - __DRI2_THROTTLE_COPYSUBBUFFER, - __DRI2_THROTTLE_FLUSHFRONT -}; - -struct __DRI2throttleExtensionRec { - __DRIextension base; - void (*throttle)(__DRIcontext *ctx, - __DRIdrawable *drawable, - enum __DRI2throttleReason reason); -}; - -/** - * XML document describing the configuration options supported by the - * driver. - */ -extern const char __driConfigOptions[]; - -/*@}*/ - -/** - * The following extensions describe loader features that the DRI - * driver can make use of. Some of these are mandatory, such as the - * getDrawableInfo extension for DRI and the DRI Loader extensions for - * DRI2, while others are optional, and if present allow the driver to - * expose certain features. The loader pass in a NULL terminated - * array of these extensions to the driver in the createNewScreen - * constructor. - */ - -typedef struct __DRIgetDrawableInfoExtensionRec __DRIgetDrawableInfoExtension; -typedef struct __DRIsystemTimeExtensionRec __DRIsystemTimeExtension; -typedef struct __DRIdamageExtensionRec __DRIdamageExtension; -typedef struct __DRIloaderExtensionRec __DRIloaderExtension; -typedef struct __DRIswrastLoaderExtensionRec __DRIswrastLoaderExtension; - - -/** - * Callback to getDrawableInfo protocol - */ -#define __DRI_GET_DRAWABLE_INFO "DRI_GetDrawableInfo" -#define __DRI_GET_DRAWABLE_INFO_VERSION 1 -struct __DRIgetDrawableInfoExtensionRec { - __DRIextension base; - - /** - * This function is used to get information about the position, size, and - * clip rects of a drawable. - */ - GLboolean (* getDrawableInfo) ( __DRIdrawable *drawable, - unsigned int * index, unsigned int * stamp, - int * x, int * y, int * width, int * height, - int * numClipRects, drm_clip_rect_t ** pClipRects, - int * backX, int * backY, - int * numBackClipRects, drm_clip_rect_t ** pBackClipRects, - void *loaderPrivate); -}; - -/** - * Callback to get system time for media stream counter extensions. - */ -#define __DRI_SYSTEM_TIME "DRI_SystemTime" -#define __DRI_SYSTEM_TIME_VERSION 1 -struct __DRIsystemTimeExtensionRec { - __DRIextension base; - - /** - * Get the 64-bit unadjusted system time (UST). - */ - int (*getUST)(int64_t * ust); - - /** - * Get the media stream counter (MSC) rate. - * - * Matching the definition in GLX_OML_sync_control, this function returns - * the rate of the "media stream counter". In practical terms, this is - * the frame refresh rate of the display. - */ - GLboolean (*getMSCRate)(__DRIdrawable *draw, - int32_t * numerator, int32_t * denominator, - void *loaderPrivate); -}; - -/** - * Damage reporting - */ -#define __DRI_DAMAGE "DRI_Damage" -#define __DRI_DAMAGE_VERSION 1 -struct __DRIdamageExtensionRec { - __DRIextension base; - - /** - * Reports areas of the given drawable which have been modified by the - * driver. - * - * \param drawable which the drawing was done to. - * \param rects rectangles affected, with the drawable origin as the - * origin. - * \param x X offset of the drawable within the screen (used in the - * front_buffer case) - * \param y Y offset of the drawable within the screen. - * \param front_buffer boolean flag for whether the drawing to the - * drawable was actually done directly to the front buffer (instead - * of backing storage, for example) - * \param loaderPrivate the data passed in at createNewDrawable time - */ - void (*reportDamage)(__DRIdrawable *draw, - int x, int y, - drm_clip_rect_t *rects, int num_rects, - GLboolean front_buffer, - void *loaderPrivate); -}; - -#define __DRI_SWRAST_IMAGE_OP_DRAW 1 -#define __DRI_SWRAST_IMAGE_OP_CLEAR 2 -#define __DRI_SWRAST_IMAGE_OP_SWAP 3 - -/** - * SWRast Loader extension. - */ -#define __DRI_SWRAST_LOADER "DRI_SWRastLoader" -#define __DRI_SWRAST_LOADER_VERSION 1 -struct __DRIswrastLoaderExtensionRec { - __DRIextension base; - - /* - * Drawable position and size - */ - void (*getDrawableInfo)(__DRIdrawable *drawable, - int *x, int *y, int *width, int *height, - void *loaderPrivate); - - /** - * Put image to drawable - */ - void (*putImage)(__DRIdrawable *drawable, int op, - int x, int y, int width, int height, - char *data, void *loaderPrivate); - - /** - * Get image from readable - */ - void (*getImage)(__DRIdrawable *readable, - int x, int y, int width, int height, - char *data, void *loaderPrivate); -}; - -/** - * Invalidate loader extension. The presence of this extension - * indicates to the DRI driver that the loader will call invalidate in - * the __DRI2_FLUSH extension, whenever the needs to query for new - * buffers. This means that the DRI driver can drop the polling in - * glViewport(). - * - * The extension doesn't provide any functionality, it's only use to - * indicate to the driver that it can use the new semantics. A DRI - * driver can use this to switch between the different semantics or - * just refuse to initialize if this extension isn't present. - */ -#define __DRI_USE_INVALIDATE "DRI_UseInvalidate" -#define __DRI_USE_INVALIDATE_VERSION 1 - -typedef struct __DRIuseInvalidateExtensionRec __DRIuseInvalidateExtension; -struct __DRIuseInvalidateExtensionRec { - __DRIextension base; -}; - -/** - * The remaining extensions describe driver extensions, immediately - * available interfaces provided by the driver. To start using the - * driver, dlsym() for the __DRI_DRIVER_EXTENSIONS symbol and look for - * the extension you need in the array. - */ -#define __DRI_DRIVER_EXTENSIONS "__driDriverExtensions" - -/** - * Tokens for __DRIconfig attribs. A number of attributes defined by - * GLX or EGL standards are not in the table, as they must be provided - * by the loader. For example, FBConfig ID or visual ID, drawable type. - */ - -#define __DRI_ATTRIB_BUFFER_SIZE 1 -#define __DRI_ATTRIB_LEVEL 2 -#define __DRI_ATTRIB_RED_SIZE 3 -#define __DRI_ATTRIB_GREEN_SIZE 4 -#define __DRI_ATTRIB_BLUE_SIZE 5 -#define __DRI_ATTRIB_LUMINANCE_SIZE 6 -#define __DRI_ATTRIB_ALPHA_SIZE 7 -#define __DRI_ATTRIB_ALPHA_MASK_SIZE 8 -#define __DRI_ATTRIB_DEPTH_SIZE 9 -#define __DRI_ATTRIB_STENCIL_SIZE 10 -#define __DRI_ATTRIB_ACCUM_RED_SIZE 11 -#define __DRI_ATTRIB_ACCUM_GREEN_SIZE 12 -#define __DRI_ATTRIB_ACCUM_BLUE_SIZE 13 -#define __DRI_ATTRIB_ACCUM_ALPHA_SIZE 14 -#define __DRI_ATTRIB_SAMPLE_BUFFERS 15 -#define __DRI_ATTRIB_SAMPLES 16 -#define __DRI_ATTRIB_RENDER_TYPE 17 -#define __DRI_ATTRIB_CONFIG_CAVEAT 18 -#define __DRI_ATTRIB_CONFORMANT 19 -#define __DRI_ATTRIB_DOUBLE_BUFFER 20 -#define __DRI_ATTRIB_STEREO 21 -#define __DRI_ATTRIB_AUX_BUFFERS 22 -#define __DRI_ATTRIB_TRANSPARENT_TYPE 23 -#define __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE 24 -#define __DRI_ATTRIB_TRANSPARENT_RED_VALUE 25 -#define __DRI_ATTRIB_TRANSPARENT_GREEN_VALUE 26 -#define __DRI_ATTRIB_TRANSPARENT_BLUE_VALUE 27 -#define __DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE 28 -#define __DRI_ATTRIB_FLOAT_MODE 29 -#define __DRI_ATTRIB_RED_MASK 30 -#define __DRI_ATTRIB_GREEN_MASK 31 -#define __DRI_ATTRIB_BLUE_MASK 32 -#define __DRI_ATTRIB_ALPHA_MASK 33 -#define __DRI_ATTRIB_MAX_PBUFFER_WIDTH 34 -#define __DRI_ATTRIB_MAX_PBUFFER_HEIGHT 35 -#define __DRI_ATTRIB_MAX_PBUFFER_PIXELS 36 -#define __DRI_ATTRIB_OPTIMAL_PBUFFER_WIDTH 37 -#define __DRI_ATTRIB_OPTIMAL_PBUFFER_HEIGHT 38 -#define __DRI_ATTRIB_VISUAL_SELECT_GROUP 39 -#define __DRI_ATTRIB_SWAP_METHOD 40 -#define __DRI_ATTRIB_MAX_SWAP_INTERVAL 41 -#define __DRI_ATTRIB_MIN_SWAP_INTERVAL 42 -#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGB 43 -#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGBA 44 -#define __DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE 45 -#define __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS 46 -#define __DRI_ATTRIB_YINVERTED 47 -#define __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE 48 - -/* __DRI_ATTRIB_RENDER_TYPE */ -#define __DRI_ATTRIB_RGBA_BIT 0x01 -#define __DRI_ATTRIB_COLOR_INDEX_BIT 0x02 -#define __DRI_ATTRIB_LUMINANCE_BIT 0x04 - -/* __DRI_ATTRIB_CONFIG_CAVEAT */ -#define __DRI_ATTRIB_SLOW_BIT 0x01 -#define __DRI_ATTRIB_NON_CONFORMANT_CONFIG 0x02 - -/* __DRI_ATTRIB_TRANSPARENT_TYPE */ -#define __DRI_ATTRIB_TRANSPARENT_RGB 0x00 -#define __DRI_ATTRIB_TRANSPARENT_INDEX 0x01 - -/* __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS */ -#define __DRI_ATTRIB_TEXTURE_1D_BIT 0x01 -#define __DRI_ATTRIB_TEXTURE_2D_BIT 0x02 -#define __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT 0x04 - -/** - * This extension defines the core DRI functionality. - */ -#define __DRI_CORE "DRI_Core" -#define __DRI_CORE_VERSION 1 - -struct __DRIcoreExtensionRec { - __DRIextension base; - - __DRIscreen *(*createNewScreen)(int screen, int fd, - unsigned int sarea_handle, - const __DRIextension **extensions, - const __DRIconfig ***driverConfigs, - void *loaderPrivate); - - void (*destroyScreen)(__DRIscreen *screen); - - const __DRIextension **(*getExtensions)(__DRIscreen *screen); - - int (*getConfigAttrib)(const __DRIconfig *config, - unsigned int attrib, - unsigned int *value); - - int (*indexConfigAttrib)(const __DRIconfig *config, int index, - unsigned int *attrib, unsigned int *value); - - __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, - const __DRIconfig *config, - unsigned int drawable_id, - unsigned int head, - void *loaderPrivate); - - void (*destroyDrawable)(__DRIdrawable *drawable); - - void (*swapBuffers)(__DRIdrawable *drawable); - - __DRIcontext *(*createNewContext)(__DRIscreen *screen, - const __DRIconfig *config, - __DRIcontext *shared, - void *loaderPrivate); - - int (*copyContext)(__DRIcontext *dest, - __DRIcontext *src, - unsigned long mask); - - void (*destroyContext)(__DRIcontext *context); - - int (*bindContext)(__DRIcontext *ctx, - __DRIdrawable *pdraw, - __DRIdrawable *pread); - - int (*unbindContext)(__DRIcontext *ctx); -}; - -/** - * Stored version of some component (i.e., server-side DRI module, kernel-side - * DRM, etc.). - * - * \todo - * There are several data structures that explicitly store a major version, - * minor version, and patch level. These structures should be modified to - * have a \c __DRIversionRec instead. - */ -struct __DRIversionRec { - int major; /**< Major version number. */ - int minor; /**< Minor version number. */ - int patch; /**< Patch-level. */ -}; - -/** - * Framebuffer information record. Used by libGL to communicate information - * about the framebuffer to the driver's \c __driCreateNewScreen function. - * - * In XFree86, most of this information is derrived from data returned by - * calling \c XF86DRIGetDeviceInfo. - * - * \sa XF86DRIGetDeviceInfo __DRIdisplayRec::createNewScreen - * __driUtilCreateNewScreen CallCreateNewScreen - * - * \bug This structure could be better named. - */ -struct __DRIframebufferRec { - unsigned char *base; /**< Framebuffer base address in the CPU's - * address space. This value is calculated by - * calling \c drmMap on the framebuffer handle - * returned by \c XF86DRIGetDeviceInfo (or a - * similar function). - */ - int size; /**< Framebuffer size, in bytes. */ - int stride; /**< Number of bytes from one line to the next. */ - int width; /**< Pixel width of the framebuffer. */ - int height; /**< Pixel height of the framebuffer. */ - int dev_priv_size; /**< Size of the driver's dev-priv structure. */ - void *dev_priv; /**< Pointer to the driver's dev-priv structure. */ -}; - - -/** - * This extension provides alternative screen, drawable and context - * constructors for legacy DRI functionality. This is used in - * conjunction with the core extension. - */ -#define __DRI_LEGACY "DRI_Legacy" -#define __DRI_LEGACY_VERSION 1 - -struct __DRIlegacyExtensionRec { - __DRIextension base; - - __DRIscreen *(*createNewScreen)(int screen, - const __DRIversion *ddx_version, - const __DRIversion *dri_version, - const __DRIversion *drm_version, - const __DRIframebuffer *frame_buffer, - void *pSAREA, int fd, - const __DRIextension **extensions, - const __DRIconfig ***driver_configs, - void *loaderPrivate); - - __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, - const __DRIconfig *config, - drm_drawable_t hwDrawable, - int renderType, const int *attrs, - void *loaderPrivate); - - __DRIcontext *(*createNewContext)(__DRIscreen *screen, - const __DRIconfig *config, - int render_type, - __DRIcontext *shared, - drm_context_t hwContext, - void *loaderPrivate); -}; - -/** - * This extension provides alternative screen, drawable and context - * constructors for swrast DRI functionality. This is used in - * conjunction with the core extension. - */ -#define __DRI_SWRAST "DRI_SWRast" -#define __DRI_SWRAST_VERSION 3 - -struct __DRIswrastExtensionRec { - __DRIextension base; - - __DRIscreen *(*createNewScreen)(int screen, - const __DRIextension **extensions, - const __DRIconfig ***driver_configs, - void *loaderPrivate); - - __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, - const __DRIconfig *config, - void *loaderPrivate); - - /* Since version 2 */ - __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen, - int api, - const __DRIconfig *config, - __DRIcontext *shared, - void *data); - - /** - * Create a context for a particular API with a set of attributes - * - * \since version 3 - * - * \sa __DRIdri2ExtensionRec::createContextAttribs - */ - __DRIcontext *(*createContextAttribs)(__DRIscreen *screen, - int api, - const __DRIconfig *config, - __DRIcontext *shared, - unsigned num_attribs, - const uint32_t *attribs, - unsigned *error, - void *loaderPrivate); -}; - -/** - * DRI2 Loader extension. - */ -#define __DRI_BUFFER_FRONT_LEFT 0 -#define __DRI_BUFFER_BACK_LEFT 1 -#define __DRI_BUFFER_FRONT_RIGHT 2 -#define __DRI_BUFFER_BACK_RIGHT 3 -#define __DRI_BUFFER_DEPTH 4 -#define __DRI_BUFFER_STENCIL 5 -#define __DRI_BUFFER_ACCUM 6 -#define __DRI_BUFFER_FAKE_FRONT_LEFT 7 -#define __DRI_BUFFER_FAKE_FRONT_RIGHT 8 -#define __DRI_BUFFER_DEPTH_STENCIL 9 /**< Only available with DRI2 1.1 */ -#define __DRI_BUFFER_HIZ 10 - -/* Inofficial and for internal use. Increase when adding a new buffer token. */ -#define __DRI_BUFFER_COUNT 11 - -struct __DRIbufferRec { - unsigned int attachment; - unsigned int name; - unsigned int pitch; - unsigned int cpp; - unsigned int flags; -}; - -#define __DRI_DRI2_LOADER "DRI_DRI2Loader" -#define __DRI_DRI2_LOADER_VERSION 3 -struct __DRIdri2LoaderExtensionRec { - __DRIextension base; - - __DRIbuffer *(*getBuffers)(__DRIdrawable *driDrawable, - int *width, int *height, - unsigned int *attachments, int count, - int *out_count, void *loaderPrivate); - - /** - * Flush pending front-buffer rendering - * - * Any rendering that has been performed to the - * \c __DRI_BUFFER_FAKE_FRONT_LEFT will be flushed to the - * \c __DRI_BUFFER_FRONT_LEFT. - * - * \param driDrawable Drawable whose front-buffer is to be flushed - * \param loaderPrivate Loader's private data that was previously passed - * into __DRIdri2ExtensionRec::createNewDrawable - */ - void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate); - - - /** - * Get list of buffers from the server - * - * Gets a list of buffer for the specified set of attachments. Unlike - * \c ::getBuffers, this function takes a list of attachments paired with - * opaque \c unsigned \c int value describing the format of the buffer. - * It is the responsibility of the caller to know what the service that - * allocates the buffers will expect to receive for the format. - * - * \param driDrawable Drawable whose buffers are being queried. - * \param width Output where the width of the buffers is stored. - * \param height Output where the height of the buffers is stored. - * \param attachments List of pairs of attachment ID and opaque format - * requested for the drawable. - * \param count Number of attachment / format pairs stored in - * \c attachments. - * \param loaderPrivate Loader's private data that was previously passed - * into __DRIdri2ExtensionRec::createNewDrawable. - */ - __DRIbuffer *(*getBuffersWithFormat)(__DRIdrawable *driDrawable, - int *width, int *height, - unsigned int *attachments, int count, - int *out_count, void *loaderPrivate); -}; - -/** - * This extension provides alternative screen, drawable and context - * constructors for DRI2. - */ -#define __DRI_DRI2 "DRI_DRI2" -#define __DRI_DRI2_VERSION 3 - -#define __DRI_API_OPENGL 0 /**< OpenGL compatibility profile */ -#define __DRI_API_GLES 1 -#define __DRI_API_GLES2 2 -#define __DRI_API_OPENGL_CORE 3 /**< OpenGL 3.2+ core profile */ - -#define __DRI_CTX_ATTRIB_MAJOR_VERSION 0 -#define __DRI_CTX_ATTRIB_MINOR_VERSION 1 -#define __DRI_CTX_ATTRIB_FLAGS 2 - -#define __DRI_CTX_FLAG_DEBUG 0x00000001 -#define __DRI_CTX_FLAG_FORWARD_COMPATIBLE 0x00000002 - -/** - * \name Reasons that __DRIdri2Extension::createContextAttribs might fail - */ -/*@{*/ -/** Success! */ -#define __DRI_CTX_ERROR_SUCCESS 0 - -/** Memory allocation failure */ -#define __DRI_CTX_ERROR_NO_MEMORY 1 - -/** Client requested an API (e.g., OpenGL ES 2.0) that the driver can't do. */ -#define __DRI_CTX_ERROR_BAD_API 2 - -/** Client requested an API version that the driver can't do. */ -#define __DRI_CTX_ERROR_BAD_VERSION 3 - -/** Client requested a flag or combination of flags the driver can't do. */ -#define __DRI_CTX_ERROR_BAD_FLAG 4 - -/** Client requested an attribute the driver doesn't understand. */ -#define __DRI_CTX_ERROR_UNKNOWN_ATTRIBUTE 5 - -/** Client requested a flag the driver doesn't understand. */ -#define __DRI_CTX_ERROR_UNKNOWN_FLAG 6 -/*@}*/ - -struct __DRIdri2ExtensionRec { - __DRIextension base; - - __DRIscreen *(*createNewScreen)(int screen, int fd, - const __DRIextension **extensions, - const __DRIconfig ***driver_configs, - void *loaderPrivate); - - __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, - const __DRIconfig *config, - void *loaderPrivate); - - __DRIcontext *(*createNewContext)(__DRIscreen *screen, - const __DRIconfig *config, - __DRIcontext *shared, - void *loaderPrivate); - - /* Since version 2 */ - unsigned int (*getAPIMask)(__DRIscreen *screen); - - __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen, - int api, - const __DRIconfig *config, - __DRIcontext *shared, - void *data); - - __DRIbuffer *(*allocateBuffer)(__DRIscreen *screen, - unsigned int attachment, - unsigned int format, - int width, - int height); - void (*releaseBuffer)(__DRIscreen *screen, - __DRIbuffer *buffer); - - /** - * Create a context for a particular API with a set of attributes - * - * \since version 3 - * - * \sa __DRIswrastExtensionRec::createContextAttribs - */ - __DRIcontext *(*createContextAttribs)(__DRIscreen *screen, - int api, - const __DRIconfig *config, - __DRIcontext *shared, - unsigned num_attribs, - const uint32_t *attribs, - unsigned *error, - void *loaderPrivate); -}; - - -/** - * This extension provides functionality to enable various EGLImage - * extensions. - */ -#define __DRI_IMAGE "DRI_IMAGE" -#define __DRI_IMAGE_VERSION 1 - -/** - * These formats correspond to the similarly named MESA_FORMAT_* - * tokens, except in the native endian of the CPU. For example, on - * little endian __DRI_IMAGE_FORMAT_XRGB8888 corresponds to - * MESA_FORMAT_XRGB8888, but MESA_FORMAT_XRGB8888_REV on big endian. - */ -#define __DRI_IMAGE_FORMAT_RGB565 0x1001 -#define __DRI_IMAGE_FORMAT_XRGB8888 0x1002 -#define __DRI_IMAGE_FORMAT_ARGB8888 0x1003 -#define __DRI_IMAGE_FORMAT_ABGR8888 0x1004 - -#define __DRI_IMAGE_USE_SHARE 0x0001 -#define __DRI_IMAGE_USE_SCANOUT 0x0002 -#define __DRI_IMAGE_USE_CURSOR 0x0004 - -/** - * queryImage attributes - */ - -#define __DRI_IMAGE_ATTRIB_STRIDE 0x2000 -#define __DRI_IMAGE_ATTRIB_HANDLE 0x2001 -#define __DRI_IMAGE_ATTRIB_NAME 0x2002 - -typedef struct __DRIimageRec __DRIimage; -typedef struct __DRIimageExtensionRec __DRIimageExtension; -struct __DRIimageExtensionRec { - __DRIextension base; - - __DRIimage *(*createImageFromName)(__DRIscreen *screen, - int width, int height, int format, - int name, int pitch, - void *loaderPrivate); - - __DRIimage *(*createImageFromRenderbuffer)(__DRIcontext *context, - int renderbuffer, - void *loaderPrivate); - - void (*destroyImage)(__DRIimage *image); - - __DRIimage *(*createImage)(__DRIscreen *screen, - int width, int height, int format, - unsigned int use, - void *loaderPrivate); - - GLboolean (*queryImage)(__DRIimage *image, int attrib, int *value); - - /** - * The new __DRIimage will share the content with the old one, see dup(2). - */ - __DRIimage *(*dupImage)(__DRIimage *image, void *loaderPrivate); -}; - - -/** - * This extension must be implemented by the loader and passed to the - * driver at screen creation time. The EGLImage entry points in the - * various client APIs take opaque EGLImage handles and use this - * extension to map them to a __DRIimage. At version 1, this - * extensions allows mapping EGLImage pointers to __DRIimage pointers, - * but future versions could support other EGLImage-like, opaque types - * with new lookup functions. - */ -#define __DRI_IMAGE_LOOKUP "DRI_IMAGE_LOOKUP" -#define __DRI_IMAGE_LOOKUP_VERSION 1 - -typedef struct __DRIimageLookupExtensionRec __DRIimageLookupExtension; -struct __DRIimageLookupExtensionRec { - __DRIextension base; - - __DRIimage *(*lookupEGLImage)(__DRIscreen *screen, void *image, - void *loaderPrivate); -}; - -/** - * This extension allows for common DRI2 options - */ -#define __DRI2_CONFIG_QUERY "DRI_CONFIG_QUERY" -#define __DRI2_CONFIG_QUERY_VERSION 1 - -typedef struct __DRI2configQueryExtensionRec __DRI2configQueryExtension; -struct __DRI2configQueryExtensionRec { - __DRIextension base; - - int (*configQueryb)(__DRIscreen *screen, const char *var, GLboolean *val); - int (*configQueryi)(__DRIscreen *screen, const char *var, GLint *val); - int (*configQueryf)(__DRIscreen *screen, const char *var, GLfloat *val); -}; -#endif diff --git a/lib/linux/include/GL/wglew.h b/lib/linux/include/GL/wglew.h deleted file mode 100644 index 05f054f..0000000 --- a/lib/linux/include/GL/wglew.h +++ /dev/null @@ -1,1363 +0,0 @@ -/* -** The OpenGL Extension Wrangler Library -** Copyright (C) 2002-2008, Milan Ikits -** Copyright (C) 2002-2008, Marcelo E. Magallon -** Copyright (C) 2002, Lev Povalahev -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are met: -** -** * Redistributions of source code must retain the above copyright notice, -** this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright notice, -** this list of conditions and the following disclaimer in the documentation -** and/or other materials provided with the distribution. -** * The name of the author may be used to endorse or promote products -** derived from this software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -** THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -** Copyright (c) 2007 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -#ifndef __wglew_h__ -#define __wglew_h__ -#define __WGLEW_H__ - -#ifdef __wglext_h_ -#error wglext.h included before wglew.h -#endif - -#define __wglext_h_ - -#if !defined(WINAPI) -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN 1 -# endif -#include -# undef WIN32_LEAN_AND_MEAN -#endif - -/* - * GLEW_STATIC needs to be set when using the static version. - * GLEW_BUILD is set when building the DLL version. - */ -#ifdef GLEW_STATIC -# define GLEWAPI extern -#else -# ifdef GLEW_BUILD -# define GLEWAPI extern __declspec(dllexport) -# else -# define GLEWAPI extern __declspec(dllimport) -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* -------------------------- WGL_3DFX_multisample ------------------------- */ - -#ifndef WGL_3DFX_multisample -#define WGL_3DFX_multisample 1 - -#define WGL_SAMPLE_BUFFERS_3DFX 0x2060 -#define WGL_SAMPLES_3DFX 0x2061 - -#define WGLEW_3DFX_multisample WGLEW_GET_VAR(__WGLEW_3DFX_multisample) - -#endif /* WGL_3DFX_multisample */ - -/* ------------------------- WGL_3DL_stereo_control ------------------------ */ - -#ifndef WGL_3DL_stereo_control -#define WGL_3DL_stereo_control 1 - -#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055 -#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056 -#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 -#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 - -typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState); - -#define wglSetStereoEmitterState3DL WGLEW_GET_FUN(__wglewSetStereoEmitterState3DL) - -#define WGLEW_3DL_stereo_control WGLEW_GET_VAR(__WGLEW_3DL_stereo_control) - -#endif /* WGL_3DL_stereo_control */ - -/* ------------------------ WGL_AMD_gpu_association ------------------------ */ - -#ifndef WGL_AMD_gpu_association -#define WGL_AMD_gpu_association 1 - -#define WGL_GPU_VENDOR_AMD 0x1F00 -#define WGL_GPU_RENDERER_STRING_AMD 0x1F01 -#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 -#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 -#define WGL_GPU_RAM_AMD 0x21A3 -#define WGL_GPU_CLOCK_AMD 0x21A4 -#define WGL_GPU_NUM_PIPES_AMD 0x21A5 -#define WGL_GPU_NUM_SIMD_AMD 0x21A6 -#define WGL_GPU_NUM_RB_AMD 0x21A7 -#define WGL_GPU_NUM_SPI_AMD 0x21A8 - -typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id); -typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int* attribList); -typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc); -typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc); -typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); -typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT* ids); -typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void* data); -typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc); - -#define wglBlitContextFramebufferAMD WGLEW_GET_FUN(__wglewBlitContextFramebufferAMD) -#define wglCreateAssociatedContextAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAMD) -#define wglCreateAssociatedContextAttribsAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAttribsAMD) -#define wglDeleteAssociatedContextAMD WGLEW_GET_FUN(__wglewDeleteAssociatedContextAMD) -#define wglGetContextGPUIDAMD WGLEW_GET_FUN(__wglewGetContextGPUIDAMD) -#define wglGetCurrentAssociatedContextAMD WGLEW_GET_FUN(__wglewGetCurrentAssociatedContextAMD) -#define wglGetGPUIDsAMD WGLEW_GET_FUN(__wglewGetGPUIDsAMD) -#define wglGetGPUInfoAMD WGLEW_GET_FUN(__wglewGetGPUInfoAMD) -#define wglMakeAssociatedContextCurrentAMD WGLEW_GET_FUN(__wglewMakeAssociatedContextCurrentAMD) - -#define WGLEW_AMD_gpu_association WGLEW_GET_VAR(__WGLEW_AMD_gpu_association) - -#endif /* WGL_AMD_gpu_association */ - -/* ------------------------- WGL_ARB_buffer_region ------------------------- */ - -#ifndef WGL_ARB_buffer_region -#define WGL_ARB_buffer_region 1 - -#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 -#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 -#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 -#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 - -typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); -typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); -typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); -typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); - -#define wglCreateBufferRegionARB WGLEW_GET_FUN(__wglewCreateBufferRegionARB) -#define wglDeleteBufferRegionARB WGLEW_GET_FUN(__wglewDeleteBufferRegionARB) -#define wglRestoreBufferRegionARB WGLEW_GET_FUN(__wglewRestoreBufferRegionARB) -#define wglSaveBufferRegionARB WGLEW_GET_FUN(__wglewSaveBufferRegionARB) - -#define WGLEW_ARB_buffer_region WGLEW_GET_VAR(__WGLEW_ARB_buffer_region) - -#endif /* WGL_ARB_buffer_region */ - -/* ------------------------- WGL_ARB_create_context ------------------------ */ - -#ifndef WGL_ARB_create_context -#define WGL_ARB_create_context 1 - -#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 -#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 -#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 -#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 -#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 -#define WGL_CONTEXT_FLAGS_ARB 0x2094 -#define ERROR_INVALID_VERSION_ARB 0x2095 -#define ERROR_INVALID_PROFILE_ARB 0x2096 - -typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList); - -#define wglCreateContextAttribsARB WGLEW_GET_FUN(__wglewCreateContextAttribsARB) - -#define WGLEW_ARB_create_context WGLEW_GET_VAR(__WGLEW_ARB_create_context) - -#endif /* WGL_ARB_create_context */ - -/* --------------------- WGL_ARB_create_context_profile -------------------- */ - -#ifndef WGL_ARB_create_context_profile -#define WGL_ARB_create_context_profile 1 - -#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 -#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 -#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 - -#define WGLEW_ARB_create_context_profile WGLEW_GET_VAR(__WGLEW_ARB_create_context_profile) - -#endif /* WGL_ARB_create_context_profile */ - -/* ------------------- WGL_ARB_create_context_robustness ------------------- */ - -#ifndef WGL_ARB_create_context_robustness -#define WGL_ARB_create_context_robustness 1 - -#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 - -#define WGLEW_ARB_create_context_robustness WGLEW_GET_VAR(__WGLEW_ARB_create_context_robustness) - -#endif /* WGL_ARB_create_context_robustness */ - -/* ----------------------- WGL_ARB_extensions_string ----------------------- */ - -#ifndef WGL_ARB_extensions_string -#define WGL_ARB_extensions_string 1 - -typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); - -#define wglGetExtensionsStringARB WGLEW_GET_FUN(__wglewGetExtensionsStringARB) - -#define WGLEW_ARB_extensions_string WGLEW_GET_VAR(__WGLEW_ARB_extensions_string) - -#endif /* WGL_ARB_extensions_string */ - -/* ------------------------ WGL_ARB_framebuffer_sRGB ----------------------- */ - -#ifndef WGL_ARB_framebuffer_sRGB -#define WGL_ARB_framebuffer_sRGB 1 - -#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9 - -#define WGLEW_ARB_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_ARB_framebuffer_sRGB) - -#endif /* WGL_ARB_framebuffer_sRGB */ - -/* ----------------------- WGL_ARB_make_current_read ----------------------- */ - -#ifndef WGL_ARB_make_current_read -#define WGL_ARB_make_current_read 1 - -#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 -#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 - -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); - -#define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB) -#define wglMakeContextCurrentARB WGLEW_GET_FUN(__wglewMakeContextCurrentARB) - -#define WGLEW_ARB_make_current_read WGLEW_GET_VAR(__WGLEW_ARB_make_current_read) - -#endif /* WGL_ARB_make_current_read */ - -/* -------------------------- WGL_ARB_multisample -------------------------- */ - -#ifndef WGL_ARB_multisample -#define WGL_ARB_multisample 1 - -#define WGL_SAMPLE_BUFFERS_ARB 0x2041 -#define WGL_SAMPLES_ARB 0x2042 - -#define WGLEW_ARB_multisample WGLEW_GET_VAR(__WGLEW_ARB_multisample) - -#endif /* WGL_ARB_multisample */ - -/* ---------------------------- WGL_ARB_pbuffer ---------------------------- */ - -#ifndef WGL_ARB_pbuffer -#define WGL_ARB_pbuffer 1 - -#define WGL_DRAW_TO_PBUFFER_ARB 0x202D -#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E -#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 -#define WGL_PBUFFER_LARGEST_ARB 0x2033 -#define WGL_PBUFFER_WIDTH_ARB 0x2034 -#define WGL_PBUFFER_HEIGHT_ARB 0x2035 -#define WGL_PBUFFER_LOST_ARB 0x2036 - -DECLARE_HANDLE(HPBUFFERARB); - -typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); -typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); -typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); -typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int* piValue); -typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); - -#define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB) -#define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB) -#define wglGetPbufferDCARB WGLEW_GET_FUN(__wglewGetPbufferDCARB) -#define wglQueryPbufferARB WGLEW_GET_FUN(__wglewQueryPbufferARB) -#define wglReleasePbufferDCARB WGLEW_GET_FUN(__wglewReleasePbufferDCARB) - -#define WGLEW_ARB_pbuffer WGLEW_GET_VAR(__WGLEW_ARB_pbuffer) - -#endif /* WGL_ARB_pbuffer */ - -/* -------------------------- WGL_ARB_pixel_format ------------------------- */ - -#ifndef WGL_ARB_pixel_format -#define WGL_ARB_pixel_format 1 - -#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 -#define WGL_DRAW_TO_WINDOW_ARB 0x2001 -#define WGL_DRAW_TO_BITMAP_ARB 0x2002 -#define WGL_ACCELERATION_ARB 0x2003 -#define WGL_NEED_PALETTE_ARB 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 -#define WGL_SWAP_METHOD_ARB 0x2007 -#define WGL_NUMBER_OVERLAYS_ARB 0x2008 -#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 -#define WGL_TRANSPARENT_ARB 0x200A -#define WGL_SHARE_DEPTH_ARB 0x200C -#define WGL_SHARE_STENCIL_ARB 0x200D -#define WGL_SHARE_ACCUM_ARB 0x200E -#define WGL_SUPPORT_GDI_ARB 0x200F -#define WGL_SUPPORT_OPENGL_ARB 0x2010 -#define WGL_DOUBLE_BUFFER_ARB 0x2011 -#define WGL_STEREO_ARB 0x2012 -#define WGL_PIXEL_TYPE_ARB 0x2013 -#define WGL_COLOR_BITS_ARB 0x2014 -#define WGL_RED_BITS_ARB 0x2015 -#define WGL_RED_SHIFT_ARB 0x2016 -#define WGL_GREEN_BITS_ARB 0x2017 -#define WGL_GREEN_SHIFT_ARB 0x2018 -#define WGL_BLUE_BITS_ARB 0x2019 -#define WGL_BLUE_SHIFT_ARB 0x201A -#define WGL_ALPHA_BITS_ARB 0x201B -#define WGL_ALPHA_SHIFT_ARB 0x201C -#define WGL_ACCUM_BITS_ARB 0x201D -#define WGL_ACCUM_RED_BITS_ARB 0x201E -#define WGL_ACCUM_GREEN_BITS_ARB 0x201F -#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 -#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 -#define WGL_DEPTH_BITS_ARB 0x2022 -#define WGL_STENCIL_BITS_ARB 0x2023 -#define WGL_AUX_BUFFERS_ARB 0x2024 -#define WGL_NO_ACCELERATION_ARB 0x2025 -#define WGL_GENERIC_ACCELERATION_ARB 0x2026 -#define WGL_FULL_ACCELERATION_ARB 0x2027 -#define WGL_SWAP_EXCHANGE_ARB 0x2028 -#define WGL_SWAP_COPY_ARB 0x2029 -#define WGL_SWAP_UNDEFINED_ARB 0x202A -#define WGL_TYPE_RGBA_ARB 0x202B -#define WGL_TYPE_COLORINDEX_ARB 0x202C -#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 -#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 -#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 -#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A -#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B - -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int *piValues); - -#define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB) -#define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB) -#define wglGetPixelFormatAttribivARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribivARB) - -#define WGLEW_ARB_pixel_format WGLEW_GET_VAR(__WGLEW_ARB_pixel_format) - -#endif /* WGL_ARB_pixel_format */ - -/* ----------------------- WGL_ARB_pixel_format_float ---------------------- */ - -#ifndef WGL_ARB_pixel_format_float -#define WGL_ARB_pixel_format_float 1 - -#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 - -#define WGLEW_ARB_pixel_format_float WGLEW_GET_VAR(__WGLEW_ARB_pixel_format_float) - -#endif /* WGL_ARB_pixel_format_float */ - -/* ------------------------- WGL_ARB_render_texture ------------------------ */ - -#ifndef WGL_ARB_render_texture -#define WGL_ARB_render_texture 1 - -#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 -#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 -#define WGL_TEXTURE_FORMAT_ARB 0x2072 -#define WGL_TEXTURE_TARGET_ARB 0x2073 -#define WGL_MIPMAP_TEXTURE_ARB 0x2074 -#define WGL_TEXTURE_RGB_ARB 0x2075 -#define WGL_TEXTURE_RGBA_ARB 0x2076 -#define WGL_NO_TEXTURE_ARB 0x2077 -#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 -#define WGL_TEXTURE_1D_ARB 0x2079 -#define WGL_TEXTURE_2D_ARB 0x207A -#define WGL_MIPMAP_LEVEL_ARB 0x207B -#define WGL_CUBE_MAP_FACE_ARB 0x207C -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 -#define WGL_FRONT_LEFT_ARB 0x2083 -#define WGL_FRONT_RIGHT_ARB 0x2084 -#define WGL_BACK_LEFT_ARB 0x2085 -#define WGL_BACK_RIGHT_ARB 0x2086 -#define WGL_AUX0_ARB 0x2087 -#define WGL_AUX1_ARB 0x2088 -#define WGL_AUX2_ARB 0x2089 -#define WGL_AUX3_ARB 0x208A -#define WGL_AUX4_ARB 0x208B -#define WGL_AUX5_ARB 0x208C -#define WGL_AUX6_ARB 0x208D -#define WGL_AUX7_ARB 0x208E -#define WGL_AUX8_ARB 0x208F -#define WGL_AUX9_ARB 0x2090 - -typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int* piAttribList); - -#define wglBindTexImageARB WGLEW_GET_FUN(__wglewBindTexImageARB) -#define wglReleaseTexImageARB WGLEW_GET_FUN(__wglewReleaseTexImageARB) -#define wglSetPbufferAttribARB WGLEW_GET_FUN(__wglewSetPbufferAttribARB) - -#define WGLEW_ARB_render_texture WGLEW_GET_VAR(__WGLEW_ARB_render_texture) - -#endif /* WGL_ARB_render_texture */ - -/* ----------------------- WGL_ATI_pixel_format_float ---------------------- */ - -#ifndef WGL_ATI_pixel_format_float -#define WGL_ATI_pixel_format_float 1 - -#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 -#define GL_RGBA_FLOAT_MODE_ATI 0x8820 -#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 - -#define WGLEW_ATI_pixel_format_float WGLEW_GET_VAR(__WGLEW_ATI_pixel_format_float) - -#endif /* WGL_ATI_pixel_format_float */ - -/* -------------------- WGL_ATI_render_texture_rectangle ------------------- */ - -#ifndef WGL_ATI_render_texture_rectangle -#define WGL_ATI_render_texture_rectangle 1 - -#define WGL_TEXTURE_RECTANGLE_ATI 0x21A5 - -#define WGLEW_ATI_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_ATI_render_texture_rectangle) - -#endif /* WGL_ATI_render_texture_rectangle */ - -/* ------------------- WGL_EXT_create_context_es2_profile ------------------ */ - -#ifndef WGL_EXT_create_context_es2_profile -#define WGL_EXT_create_context_es2_profile 1 - -#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 - -#define WGLEW_EXT_create_context_es2_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es2_profile) - -#endif /* WGL_EXT_create_context_es2_profile */ - -/* -------------------------- WGL_EXT_depth_float -------------------------- */ - -#ifndef WGL_EXT_depth_float -#define WGL_EXT_depth_float 1 - -#define WGL_DEPTH_FLOAT_EXT 0x2040 - -#define WGLEW_EXT_depth_float WGLEW_GET_VAR(__WGLEW_EXT_depth_float) - -#endif /* WGL_EXT_depth_float */ - -/* ---------------------- WGL_EXT_display_color_table ---------------------- */ - -#ifndef WGL_EXT_display_color_table -#define WGL_EXT_display_color_table 1 - -typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef void (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (GLushort* table, GLuint length); - -#define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT) -#define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT) -#define wglDestroyDisplayColorTableEXT WGLEW_GET_FUN(__wglewDestroyDisplayColorTableEXT) -#define wglLoadDisplayColorTableEXT WGLEW_GET_FUN(__wglewLoadDisplayColorTableEXT) - -#define WGLEW_EXT_display_color_table WGLEW_GET_VAR(__WGLEW_EXT_display_color_table) - -#endif /* WGL_EXT_display_color_table */ - -/* ----------------------- WGL_EXT_extensions_string ----------------------- */ - -#ifndef WGL_EXT_extensions_string -#define WGL_EXT_extensions_string 1 - -typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); - -#define wglGetExtensionsStringEXT WGLEW_GET_FUN(__wglewGetExtensionsStringEXT) - -#define WGLEW_EXT_extensions_string WGLEW_GET_VAR(__WGLEW_EXT_extensions_string) - -#endif /* WGL_EXT_extensions_string */ - -/* ------------------------ WGL_EXT_framebuffer_sRGB ----------------------- */ - -#ifndef WGL_EXT_framebuffer_sRGB -#define WGL_EXT_framebuffer_sRGB 1 - -#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 - -#define WGLEW_EXT_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_EXT_framebuffer_sRGB) - -#endif /* WGL_EXT_framebuffer_sRGB */ - -/* ----------------------- WGL_EXT_make_current_read ----------------------- */ - -#ifndef WGL_EXT_make_current_read -#define WGL_EXT_make_current_read 1 - -#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 - -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); - -#define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT) -#define wglMakeContextCurrentEXT WGLEW_GET_FUN(__wglewMakeContextCurrentEXT) - -#define WGLEW_EXT_make_current_read WGLEW_GET_VAR(__WGLEW_EXT_make_current_read) - -#endif /* WGL_EXT_make_current_read */ - -/* -------------------------- WGL_EXT_multisample -------------------------- */ - -#ifndef WGL_EXT_multisample -#define WGL_EXT_multisample 1 - -#define WGL_SAMPLE_BUFFERS_EXT 0x2041 -#define WGL_SAMPLES_EXT 0x2042 - -#define WGLEW_EXT_multisample WGLEW_GET_VAR(__WGLEW_EXT_multisample) - -#endif /* WGL_EXT_multisample */ - -/* ---------------------------- WGL_EXT_pbuffer ---------------------------- */ - -#ifndef WGL_EXT_pbuffer -#define WGL_EXT_pbuffer 1 - -#define WGL_DRAW_TO_PBUFFER_EXT 0x202D -#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E -#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 -#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 -#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 -#define WGL_PBUFFER_LARGEST_EXT 0x2033 -#define WGL_PBUFFER_WIDTH_EXT 0x2034 -#define WGL_PBUFFER_HEIGHT_EXT 0x2035 - -DECLARE_HANDLE(HPBUFFEREXT); - -typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); -typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); -typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); -typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int* piValue); -typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); - -#define wglCreatePbufferEXT WGLEW_GET_FUN(__wglewCreatePbufferEXT) -#define wglDestroyPbufferEXT WGLEW_GET_FUN(__wglewDestroyPbufferEXT) -#define wglGetPbufferDCEXT WGLEW_GET_FUN(__wglewGetPbufferDCEXT) -#define wglQueryPbufferEXT WGLEW_GET_FUN(__wglewQueryPbufferEXT) -#define wglReleasePbufferDCEXT WGLEW_GET_FUN(__wglewReleasePbufferDCEXT) - -#define WGLEW_EXT_pbuffer WGLEW_GET_VAR(__WGLEW_EXT_pbuffer) - -#endif /* WGL_EXT_pbuffer */ - -/* -------------------------- WGL_EXT_pixel_format ------------------------- */ - -#ifndef WGL_EXT_pixel_format -#define WGL_EXT_pixel_format 1 - -#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 -#define WGL_DRAW_TO_WINDOW_EXT 0x2001 -#define WGL_DRAW_TO_BITMAP_EXT 0x2002 -#define WGL_ACCELERATION_EXT 0x2003 -#define WGL_NEED_PALETTE_EXT 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 -#define WGL_SWAP_METHOD_EXT 0x2007 -#define WGL_NUMBER_OVERLAYS_EXT 0x2008 -#define WGL_NUMBER_UNDERLAYS_EXT 0x2009 -#define WGL_TRANSPARENT_EXT 0x200A -#define WGL_TRANSPARENT_VALUE_EXT 0x200B -#define WGL_SHARE_DEPTH_EXT 0x200C -#define WGL_SHARE_STENCIL_EXT 0x200D -#define WGL_SHARE_ACCUM_EXT 0x200E -#define WGL_SUPPORT_GDI_EXT 0x200F -#define WGL_SUPPORT_OPENGL_EXT 0x2010 -#define WGL_DOUBLE_BUFFER_EXT 0x2011 -#define WGL_STEREO_EXT 0x2012 -#define WGL_PIXEL_TYPE_EXT 0x2013 -#define WGL_COLOR_BITS_EXT 0x2014 -#define WGL_RED_BITS_EXT 0x2015 -#define WGL_RED_SHIFT_EXT 0x2016 -#define WGL_GREEN_BITS_EXT 0x2017 -#define WGL_GREEN_SHIFT_EXT 0x2018 -#define WGL_BLUE_BITS_EXT 0x2019 -#define WGL_BLUE_SHIFT_EXT 0x201A -#define WGL_ALPHA_BITS_EXT 0x201B -#define WGL_ALPHA_SHIFT_EXT 0x201C -#define WGL_ACCUM_BITS_EXT 0x201D -#define WGL_ACCUM_RED_BITS_EXT 0x201E -#define WGL_ACCUM_GREEN_BITS_EXT 0x201F -#define WGL_ACCUM_BLUE_BITS_EXT 0x2020 -#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 -#define WGL_DEPTH_BITS_EXT 0x2022 -#define WGL_STENCIL_BITS_EXT 0x2023 -#define WGL_AUX_BUFFERS_EXT 0x2024 -#define WGL_NO_ACCELERATION_EXT 0x2025 -#define WGL_GENERIC_ACCELERATION_EXT 0x2026 -#define WGL_FULL_ACCELERATION_EXT 0x2027 -#define WGL_SWAP_EXCHANGE_EXT 0x2028 -#define WGL_SWAP_COPY_EXT 0x2029 -#define WGL_SWAP_UNDEFINED_EXT 0x202A -#define WGL_TYPE_RGBA_EXT 0x202B -#define WGL_TYPE_COLORINDEX_EXT 0x202C - -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int *piValues); - -#define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT) -#define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT) -#define wglGetPixelFormatAttribivEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribivEXT) - -#define WGLEW_EXT_pixel_format WGLEW_GET_VAR(__WGLEW_EXT_pixel_format) - -#endif /* WGL_EXT_pixel_format */ - -/* ------------------- WGL_EXT_pixel_format_packed_float ------------------- */ - -#ifndef WGL_EXT_pixel_format_packed_float -#define WGL_EXT_pixel_format_packed_float 1 - -#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 - -#define WGLEW_EXT_pixel_format_packed_float WGLEW_GET_VAR(__WGLEW_EXT_pixel_format_packed_float) - -#endif /* WGL_EXT_pixel_format_packed_float */ - -/* -------------------------- WGL_EXT_swap_control ------------------------- */ - -#ifndef WGL_EXT_swap_control -#define WGL_EXT_swap_control 1 - -typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); -typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); - -#define wglGetSwapIntervalEXT WGLEW_GET_FUN(__wglewGetSwapIntervalEXT) -#define wglSwapIntervalEXT WGLEW_GET_FUN(__wglewSwapIntervalEXT) - -#define WGLEW_EXT_swap_control WGLEW_GET_VAR(__WGLEW_EXT_swap_control) - -#endif /* WGL_EXT_swap_control */ - -/* --------------------- WGL_I3D_digital_video_control --------------------- */ - -#ifndef WGL_I3D_digital_video_control -#define WGL_I3D_digital_video_control 1 - -#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 -#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 -#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 -#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 - -typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); - -#define wglGetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewGetDigitalVideoParametersI3D) -#define wglSetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewSetDigitalVideoParametersI3D) - -#define WGLEW_I3D_digital_video_control WGLEW_GET_VAR(__WGLEW_I3D_digital_video_control) - -#endif /* WGL_I3D_digital_video_control */ - -/* ----------------------------- WGL_I3D_gamma ----------------------------- */ - -#ifndef WGL_I3D_gamma -#define WGL_I3D_gamma 1 - -#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E -#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F - -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT *puGreen, USHORT *puBlue); -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT *puGreen, const USHORT *puBlue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); - -#define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D) -#define wglGetGammaTableParametersI3D WGLEW_GET_FUN(__wglewGetGammaTableParametersI3D) -#define wglSetGammaTableI3D WGLEW_GET_FUN(__wglewSetGammaTableI3D) -#define wglSetGammaTableParametersI3D WGLEW_GET_FUN(__wglewSetGammaTableParametersI3D) - -#define WGLEW_I3D_gamma WGLEW_GET_VAR(__WGLEW_I3D_gamma) - -#endif /* WGL_I3D_gamma */ - -/* ---------------------------- WGL_I3D_genlock ---------------------------- */ - -#ifndef WGL_I3D_genlock -#define WGL_I3D_genlock 1 - -#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 -#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045 -#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046 -#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047 -#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 -#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 -#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A -#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B -#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C - -typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC); -typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC); -typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT* uRate); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDelay); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource); -typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag); -typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT *uMaxPixelDelay); - -#define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D) -#define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D) -#define wglGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGenlockSampleRateI3D) -#define wglGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGenlockSourceDelayI3D) -#define wglGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGenlockSourceEdgeI3D) -#define wglGenlockSourceI3D WGLEW_GET_FUN(__wglewGenlockSourceI3D) -#define wglGetGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGetGenlockSampleRateI3D) -#define wglGetGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGetGenlockSourceDelayI3D) -#define wglGetGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGetGenlockSourceEdgeI3D) -#define wglGetGenlockSourceI3D WGLEW_GET_FUN(__wglewGetGenlockSourceI3D) -#define wglIsEnabledGenlockI3D WGLEW_GET_FUN(__wglewIsEnabledGenlockI3D) -#define wglQueryGenlockMaxSourceDelayI3D WGLEW_GET_FUN(__wglewQueryGenlockMaxSourceDelayI3D) - -#define WGLEW_I3D_genlock WGLEW_GET_VAR(__WGLEW_I3D_genlock) - -#endif /* WGL_I3D_genlock */ - -/* -------------------------- WGL_I3D_image_buffer ------------------------- */ - -#ifndef WGL_I3D_image_buffer -#define WGL_I3D_image_buffer 1 - -#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 -#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 - -typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, HANDLE* pEvent, LPVOID *pAddress, DWORD *pSize, UINT count); -typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); -typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); -typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* pAddress, UINT count); - -#define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D) -#define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D) -#define wglDestroyImageBufferI3D WGLEW_GET_FUN(__wglewDestroyImageBufferI3D) -#define wglReleaseImageBufferEventsI3D WGLEW_GET_FUN(__wglewReleaseImageBufferEventsI3D) - -#define WGLEW_I3D_image_buffer WGLEW_GET_VAR(__WGLEW_I3D_image_buffer) - -#endif /* WGL_I3D_image_buffer */ - -/* ------------------------ WGL_I3D_swap_frame_lock ------------------------ */ - -#ifndef WGL_I3D_swap_frame_lock -#define WGL_I3D_swap_frame_lock 1 - -typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag); - -#define wglDisableFrameLockI3D WGLEW_GET_FUN(__wglewDisableFrameLockI3D) -#define wglEnableFrameLockI3D WGLEW_GET_FUN(__wglewEnableFrameLockI3D) -#define wglIsEnabledFrameLockI3D WGLEW_GET_FUN(__wglewIsEnabledFrameLockI3D) -#define wglQueryFrameLockMasterI3D WGLEW_GET_FUN(__wglewQueryFrameLockMasterI3D) - -#define WGLEW_I3D_swap_frame_lock WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_lock) - -#endif /* WGL_I3D_swap_frame_lock */ - -/* ------------------------ WGL_I3D_swap_frame_usage ----------------------- */ - -#ifndef WGL_I3D_swap_frame_usage -#define WGL_I3D_swap_frame_usage 1 - -typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); - -#define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D) -#define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D) -#define wglGetFrameUsageI3D WGLEW_GET_FUN(__wglewGetFrameUsageI3D) -#define wglQueryFrameTrackingI3D WGLEW_GET_FUN(__wglewQueryFrameTrackingI3D) - -#define WGLEW_I3D_swap_frame_usage WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_usage) - -#endif /* WGL_I3D_swap_frame_usage */ - -/* --------------------------- WGL_NV_DX_interop --------------------------- */ - -#ifndef WGL_NV_DX_interop -#define WGL_NV_DX_interop 1 - -#define WGL_ACCESS_READ_ONLY_NV 0x0000 -#define WGL_ACCESS_READ_WRITE_NV 0x0001 -#define WGL_ACCESS_WRITE_DISCARD_NV 0x0002 - -typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice); -typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); -typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access); -typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void* dxDevice); -typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access); -typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void* dxObject, HANDLE shareHandle); -typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); -typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject); - -#define wglDXCloseDeviceNV WGLEW_GET_FUN(__wglewDXCloseDeviceNV) -#define wglDXLockObjectsNV WGLEW_GET_FUN(__wglewDXLockObjectsNV) -#define wglDXObjectAccessNV WGLEW_GET_FUN(__wglewDXObjectAccessNV) -#define wglDXOpenDeviceNV WGLEW_GET_FUN(__wglewDXOpenDeviceNV) -#define wglDXRegisterObjectNV WGLEW_GET_FUN(__wglewDXRegisterObjectNV) -#define wglDXSetResourceShareHandleNV WGLEW_GET_FUN(__wglewDXSetResourceShareHandleNV) -#define wglDXUnlockObjectsNV WGLEW_GET_FUN(__wglewDXUnlockObjectsNV) -#define wglDXUnregisterObjectNV WGLEW_GET_FUN(__wglewDXUnregisterObjectNV) - -#define WGLEW_NV_DX_interop WGLEW_GET_VAR(__WGLEW_NV_DX_interop) - -#endif /* WGL_NV_DX_interop */ - -/* --------------------------- WGL_NV_copy_image --------------------------- */ - -#ifndef WGL_NV_copy_image -#define WGL_NV_copy_image 1 - -typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); - -#define wglCopyImageSubDataNV WGLEW_GET_FUN(__wglewCopyImageSubDataNV) - -#define WGLEW_NV_copy_image WGLEW_GET_VAR(__WGLEW_NV_copy_image) - -#endif /* WGL_NV_copy_image */ - -/* -------------------------- WGL_NV_float_buffer -------------------------- */ - -#ifndef WGL_NV_float_buffer -#define WGL_NV_float_buffer 1 - -#define WGL_FLOAT_COMPONENTS_NV 0x20B0 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 -#define WGL_TEXTURE_FLOAT_R_NV 0x20B5 -#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 -#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 -#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 - -#define WGLEW_NV_float_buffer WGLEW_GET_VAR(__WGLEW_NV_float_buffer) - -#endif /* WGL_NV_float_buffer */ - -/* -------------------------- WGL_NV_gpu_affinity -------------------------- */ - -#ifndef WGL_NV_gpu_affinity -#define WGL_NV_gpu_affinity 1 - -#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 -#define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 - -DECLARE_HANDLE(HGPUNV); -typedef struct _GPU_DEVICE { - DWORD cb; - CHAR DeviceName[32]; - CHAR DeviceString[128]; - DWORD Flags; - RECT rcVirtualScreen; -} GPU_DEVICE, *PGPU_DEVICE; - -typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList); -typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc); -typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); -typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); -typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); - -#define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV) -#define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV) -#define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV) -#define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV) -#define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV) - -#define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity) - -#endif /* WGL_NV_gpu_affinity */ - -/* ---------------------- WGL_NV_multisample_coverage ---------------------- */ - -#ifndef WGL_NV_multisample_coverage -#define WGL_NV_multisample_coverage 1 - -#define WGL_COVERAGE_SAMPLES_NV 0x2042 -#define WGL_COLOR_SAMPLES_NV 0x20B9 - -#define WGLEW_NV_multisample_coverage WGLEW_GET_VAR(__WGLEW_NV_multisample_coverage) - -#endif /* WGL_NV_multisample_coverage */ - -/* -------------------------- WGL_NV_present_video ------------------------- */ - -#ifndef WGL_NV_present_video -#define WGL_NV_present_video 1 - -#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 - -DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); - -typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int* piAttribList); -typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDc, HVIDEOOUTPUTDEVICENV* phDeviceList); -typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* piValue); - -#define wglBindVideoDeviceNV WGLEW_GET_FUN(__wglewBindVideoDeviceNV) -#define wglEnumerateVideoDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoDevicesNV) -#define wglQueryCurrentContextNV WGLEW_GET_FUN(__wglewQueryCurrentContextNV) - -#define WGLEW_NV_present_video WGLEW_GET_VAR(__WGLEW_NV_present_video) - -#endif /* WGL_NV_present_video */ - -/* ---------------------- WGL_NV_render_depth_texture ---------------------- */ - -#ifndef WGL_NV_render_depth_texture -#define WGL_NV_render_depth_texture 1 - -#define WGL_NO_TEXTURE_ARB 0x2077 -#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 -#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 -#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 -#define WGL_DEPTH_COMPONENT_NV 0x20A7 - -#define WGLEW_NV_render_depth_texture WGLEW_GET_VAR(__WGLEW_NV_render_depth_texture) - -#endif /* WGL_NV_render_depth_texture */ - -/* -------------------- WGL_NV_render_texture_rectangle -------------------- */ - -#ifndef WGL_NV_render_texture_rectangle -#define WGL_NV_render_texture_rectangle 1 - -#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 -#define WGL_TEXTURE_RECTANGLE_NV 0x20A2 - -#define WGLEW_NV_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_NV_render_texture_rectangle) - -#endif /* WGL_NV_render_texture_rectangle */ - -/* --------------------------- WGL_NV_swap_group --------------------------- */ - -#ifndef WGL_NV_swap_group -#define WGL_NV_swap_group 1 - -typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); -typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count); -typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint *maxBarriers); -typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint *barrier); -typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); - -#define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV) -#define wglJoinSwapGroupNV WGLEW_GET_FUN(__wglewJoinSwapGroupNV) -#define wglQueryFrameCountNV WGLEW_GET_FUN(__wglewQueryFrameCountNV) -#define wglQueryMaxSwapGroupsNV WGLEW_GET_FUN(__wglewQueryMaxSwapGroupsNV) -#define wglQuerySwapGroupNV WGLEW_GET_FUN(__wglewQuerySwapGroupNV) -#define wglResetFrameCountNV WGLEW_GET_FUN(__wglewResetFrameCountNV) - -#define WGLEW_NV_swap_group WGLEW_GET_VAR(__WGLEW_NV_swap_group) - -#endif /* WGL_NV_swap_group */ - -/* ----------------------- WGL_NV_vertex_array_range ----------------------- */ - -#ifndef WGL_NV_vertex_array_range -#define WGL_NV_vertex_array_range 1 - -typedef void * (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); -typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); - -#define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV) -#define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV) - -#define WGLEW_NV_vertex_array_range WGLEW_GET_VAR(__WGLEW_NV_vertex_array_range) - -#endif /* WGL_NV_vertex_array_range */ - -/* -------------------------- WGL_NV_video_capture ------------------------- */ - -#ifndef WGL_NV_video_capture -#define WGL_NV_video_capture 1 - -#define WGL_UNIQUE_ID_NV 0x20CE -#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF - -DECLARE_HANDLE(HVIDEOINPUTDEVICENV); - -typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); -typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV* phDeviceList); -typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); -typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); - -#define wglBindVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewBindVideoCaptureDeviceNV) -#define wglEnumerateVideoCaptureDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoCaptureDevicesNV) -#define wglLockVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewLockVideoCaptureDeviceNV) -#define wglQueryVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewQueryVideoCaptureDeviceNV) -#define wglReleaseVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoCaptureDeviceNV) - -#define WGLEW_NV_video_capture WGLEW_GET_VAR(__WGLEW_NV_video_capture) - -#endif /* WGL_NV_video_capture */ - -/* -------------------------- WGL_NV_video_output -------------------------- */ - -#ifndef WGL_NV_video_output -#define WGL_NV_video_output 1 - -#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0 -#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1 -#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2 -#define WGL_VIDEO_OUT_COLOR_NV 0x20C3 -#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4 -#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5 -#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 -#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 -#define WGL_VIDEO_OUT_FRAME 0x20C8 -#define WGL_VIDEO_OUT_FIELD_1 0x20C9 -#define WGL_VIDEO_OUT_FIELD_2 0x20CA -#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB -#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC - -DECLARE_HANDLE(HPVIDEODEV); - -typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); -typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice); -typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); -typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock); - -#define wglBindVideoImageNV WGLEW_GET_FUN(__wglewBindVideoImageNV) -#define wglGetVideoDeviceNV WGLEW_GET_FUN(__wglewGetVideoDeviceNV) -#define wglGetVideoInfoNV WGLEW_GET_FUN(__wglewGetVideoInfoNV) -#define wglReleaseVideoDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoDeviceNV) -#define wglReleaseVideoImageNV WGLEW_GET_FUN(__wglewReleaseVideoImageNV) -#define wglSendPbufferToVideoNV WGLEW_GET_FUN(__wglewSendPbufferToVideoNV) - -#define WGLEW_NV_video_output WGLEW_GET_VAR(__WGLEW_NV_video_output) - -#endif /* WGL_NV_video_output */ - -/* -------------------------- WGL_OML_sync_control ------------------------- */ - -#ifndef WGL_OML_sync_control -#define WGL_OML_sync_control 1 - -typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32 *denominator); -typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64 *msc, INT64 *sbc); -typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64 *msc, INT64 *sbc); -typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64 *msc, INT64 *sbc); - -#define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML) -#define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML) -#define wglSwapBuffersMscOML WGLEW_GET_FUN(__wglewSwapBuffersMscOML) -#define wglSwapLayerBuffersMscOML WGLEW_GET_FUN(__wglewSwapLayerBuffersMscOML) -#define wglWaitForMscOML WGLEW_GET_FUN(__wglewWaitForMscOML) -#define wglWaitForSbcOML WGLEW_GET_FUN(__wglewWaitForSbcOML) - -#define WGLEW_OML_sync_control WGLEW_GET_VAR(__WGLEW_OML_sync_control) - -#endif /* WGL_OML_sync_control */ - -/* ------------------------------------------------------------------------- */ - -#ifdef GLEW_MX -#define WGLEW_EXPORT -#else -#define WGLEW_EXPORT GLEWAPI -#endif /* GLEW_MX */ - -#ifdef GLEW_MX -struct WGLEWContextStruct -{ -#endif /* GLEW_MX */ - -WGLEW_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL; - -WGLEW_EXPORT PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD; -WGLEW_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD; -WGLEW_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD; -WGLEW_EXPORT PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD; -WGLEW_EXPORT PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD; -WGLEW_EXPORT PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD; -WGLEW_EXPORT PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD; -WGLEW_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD; -WGLEW_EXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD; - -WGLEW_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB; -WGLEW_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB; -WGLEW_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB; -WGLEW_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB; - -WGLEW_EXPORT PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB; - -WGLEW_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB; - -WGLEW_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB; -WGLEW_EXPORT PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB; - -WGLEW_EXPORT PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB; -WGLEW_EXPORT PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB; -WGLEW_EXPORT PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB; -WGLEW_EXPORT PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB; -WGLEW_EXPORT PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB; - -WGLEW_EXPORT PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB; -WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB; -WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB; - -WGLEW_EXPORT PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB; -WGLEW_EXPORT PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB; -WGLEW_EXPORT PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB; - -WGLEW_EXPORT PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT; -WGLEW_EXPORT PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT; -WGLEW_EXPORT PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT; -WGLEW_EXPORT PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT; - -WGLEW_EXPORT PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT; - -WGLEW_EXPORT PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT; -WGLEW_EXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT; - -WGLEW_EXPORT PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT; -WGLEW_EXPORT PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT; -WGLEW_EXPORT PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT; -WGLEW_EXPORT PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT; -WGLEW_EXPORT PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT; - -WGLEW_EXPORT PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT; -WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT; -WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT; - -WGLEW_EXPORT PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT; -WGLEW_EXPORT PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT; - -WGLEW_EXPORT PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D; -WGLEW_EXPORT PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D; - -WGLEW_EXPORT PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D; -WGLEW_EXPORT PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D; -WGLEW_EXPORT PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D; -WGLEW_EXPORT PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D; - -WGLEW_EXPORT PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D; -WGLEW_EXPORT PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D; -WGLEW_EXPORT PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D; -WGLEW_EXPORT PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D; -WGLEW_EXPORT PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D; -WGLEW_EXPORT PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D; -WGLEW_EXPORT PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D; -WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D; -WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D; -WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D; -WGLEW_EXPORT PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D; -WGLEW_EXPORT PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D; - -WGLEW_EXPORT PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D; -WGLEW_EXPORT PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D; -WGLEW_EXPORT PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D; -WGLEW_EXPORT PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D; - -WGLEW_EXPORT PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D; -WGLEW_EXPORT PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D; -WGLEW_EXPORT PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D; -WGLEW_EXPORT PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D; - -WGLEW_EXPORT PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D; -WGLEW_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D; -WGLEW_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D; -WGLEW_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D; - -WGLEW_EXPORT PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV; -WGLEW_EXPORT PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV; -WGLEW_EXPORT PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV; -WGLEW_EXPORT PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV; -WGLEW_EXPORT PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV; -WGLEW_EXPORT PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV; -WGLEW_EXPORT PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV; -WGLEW_EXPORT PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV; - -WGLEW_EXPORT PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV; - -WGLEW_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV; -WGLEW_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV; -WGLEW_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV; -WGLEW_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV; -WGLEW_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV; - -WGLEW_EXPORT PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV; -WGLEW_EXPORT PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV; -WGLEW_EXPORT PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV; - -WGLEW_EXPORT PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV; -WGLEW_EXPORT PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV; -WGLEW_EXPORT PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV; -WGLEW_EXPORT PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV; -WGLEW_EXPORT PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV; -WGLEW_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV; - -WGLEW_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV; -WGLEW_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV; - -WGLEW_EXPORT PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV; -WGLEW_EXPORT PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV; -WGLEW_EXPORT PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV; -WGLEW_EXPORT PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV; -WGLEW_EXPORT PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV; - -WGLEW_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV; -WGLEW_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV; -WGLEW_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV; -WGLEW_EXPORT PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV; -WGLEW_EXPORT PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV; -WGLEW_EXPORT PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV; - -WGLEW_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML; -WGLEW_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML; -WGLEW_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML; -WGLEW_EXPORT PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML; -WGLEW_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML; -WGLEW_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML; -WGLEW_EXPORT GLboolean __WGLEW_3DFX_multisample; -WGLEW_EXPORT GLboolean __WGLEW_3DL_stereo_control; -WGLEW_EXPORT GLboolean __WGLEW_AMD_gpu_association; -WGLEW_EXPORT GLboolean __WGLEW_ARB_buffer_region; -WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context; -WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context_profile; -WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context_robustness; -WGLEW_EXPORT GLboolean __WGLEW_ARB_extensions_string; -WGLEW_EXPORT GLboolean __WGLEW_ARB_framebuffer_sRGB; -WGLEW_EXPORT GLboolean __WGLEW_ARB_make_current_read; -WGLEW_EXPORT GLboolean __WGLEW_ARB_multisample; -WGLEW_EXPORT GLboolean __WGLEW_ARB_pbuffer; -WGLEW_EXPORT GLboolean __WGLEW_ARB_pixel_format; -WGLEW_EXPORT GLboolean __WGLEW_ARB_pixel_format_float; -WGLEW_EXPORT GLboolean __WGLEW_ARB_render_texture; -WGLEW_EXPORT GLboolean __WGLEW_ATI_pixel_format_float; -WGLEW_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle; -WGLEW_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile; -WGLEW_EXPORT GLboolean __WGLEW_EXT_depth_float; -WGLEW_EXPORT GLboolean __WGLEW_EXT_display_color_table; -WGLEW_EXPORT GLboolean __WGLEW_EXT_extensions_string; -WGLEW_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB; -WGLEW_EXPORT GLboolean __WGLEW_EXT_make_current_read; -WGLEW_EXPORT GLboolean __WGLEW_EXT_multisample; -WGLEW_EXPORT GLboolean __WGLEW_EXT_pbuffer; -WGLEW_EXPORT GLboolean __WGLEW_EXT_pixel_format; -WGLEW_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float; -WGLEW_EXPORT GLboolean __WGLEW_EXT_swap_control; -WGLEW_EXPORT GLboolean __WGLEW_I3D_digital_video_control; -WGLEW_EXPORT GLboolean __WGLEW_I3D_gamma; -WGLEW_EXPORT GLboolean __WGLEW_I3D_genlock; -WGLEW_EXPORT GLboolean __WGLEW_I3D_image_buffer; -WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock; -WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage; -WGLEW_EXPORT GLboolean __WGLEW_NV_DX_interop; -WGLEW_EXPORT GLboolean __WGLEW_NV_copy_image; -WGLEW_EXPORT GLboolean __WGLEW_NV_float_buffer; -WGLEW_EXPORT GLboolean __WGLEW_NV_gpu_affinity; -WGLEW_EXPORT GLboolean __WGLEW_NV_multisample_coverage; -WGLEW_EXPORT GLboolean __WGLEW_NV_present_video; -WGLEW_EXPORT GLboolean __WGLEW_NV_render_depth_texture; -WGLEW_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle; -WGLEW_EXPORT GLboolean __WGLEW_NV_swap_group; -WGLEW_EXPORT GLboolean __WGLEW_NV_vertex_array_range; -WGLEW_EXPORT GLboolean __WGLEW_NV_video_capture; -WGLEW_EXPORT GLboolean __WGLEW_NV_video_output; -WGLEW_EXPORT GLboolean __WGLEW_OML_sync_control; - -#ifdef GLEW_MX -}; /* WGLEWContextStruct */ -#endif /* GLEW_MX */ - -/* ------------------------------------------------------------------------- */ - -#ifdef GLEW_MX - -typedef struct WGLEWContextStruct WGLEWContext; -GLEWAPI GLenum wglewContextInit (WGLEWContext* ctx); -GLEWAPI GLboolean wglewContextIsSupported (const WGLEWContext* ctx, const char* name); - -#define wglewInit() wglewContextInit(wglewGetContext()) -#define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x) - -#define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x)) -#define WGLEW_GET_FUN(x) wglewGetContext()->x - -#else /* GLEW_MX */ - -#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) -#define WGLEW_GET_FUN(x) x - -GLEWAPI GLboolean wglewIsSupported (const char* name); - -#endif /* GLEW_MX */ - -GLEWAPI GLboolean wglewGetExtension (const char* name); - -#ifdef __cplusplus -} -#endif - -#undef GLEWAPI - -#endif /* __wglew_h__ */ diff --git a/lib/linux/include/config/ftconfig.h b/lib/linux/include/config/ftconfig.h deleted file mode 100644 index 22d70fd..0000000 --- a/lib/linux/include/config/ftconfig.h +++ /dev/null @@ -1,450 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftconfig.h */ -/* */ -/* ANSI-specific configuration file (specification only). */ -/* */ -/* Copyright 1996-2004, 2006-2008, 2010-2011, 2013, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This header file contains a number of macro definitions that are used */ - /* by the rest of the engine. Most of the macros here are automatically */ - /* determined at compile time, and you should not need to change it to */ - /* port FreeType, except to compile the library with a non-ANSI */ - /* compiler. */ - /* */ - /* Note however that if some specific modifications are needed, we */ - /* advise you to place a modified copy in your build directory. */ - /* */ - /* The build directory is usually `builds/', and contains */ - /* system-specific files that are always included first when building */ - /* the library. */ - /* */ - /* This ANSI version should stay in `include/config/'. */ - /* */ - /*************************************************************************/ - -#ifndef __FTCONFIG_H__ -#define __FTCONFIG_H__ - -#include -#include FT_CONFIG_OPTIONS_H -#include FT_CONFIG_STANDARD_LIBRARY_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* PLATFORM-SPECIFIC CONFIGURATION MACROS */ - /* */ - /* These macros can be toggled to suit a specific system. The current */ - /* ones are defaults used to compile FreeType in an ANSI C environment */ - /* (16bit compilers are also supported). Copy this file to your own */ - /* `builds/' directory, and edit it to port the engine. */ - /* */ - /*************************************************************************/ - - - /* There are systems (like the Texas Instruments 'C54x) where a `char' */ - /* has 16 bits. ANSI C says that sizeof(char) is always 1. Since an */ - /* `int' has 16 bits also for this system, sizeof(int) gives 1 which */ - /* is probably unexpected. */ - /* */ - /* `CHAR_BIT' (defined in limits.h) gives the number of bits in a */ - /* `char' type. */ - -#ifndef FT_CHAR_BIT -#define FT_CHAR_BIT CHAR_BIT -#endif - - - /* The size of an `int' type. */ -#if FT_UINT_MAX == 0xFFFFUL -#define FT_SIZEOF_INT (16 / FT_CHAR_BIT) -#elif FT_UINT_MAX == 0xFFFFFFFFUL -#define FT_SIZEOF_INT (32 / FT_CHAR_BIT) -#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL -#define FT_SIZEOF_INT (64 / FT_CHAR_BIT) -#else -#error "Unsupported size of `int' type!" -#endif - - /* The size of a `long' type. A five-byte `long' (as used e.g. on the */ - /* DM642) is recognized but avoided. */ -#if FT_ULONG_MAX == 0xFFFFFFFFUL -#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) -#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL -#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) -#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL -#define FT_SIZEOF_LONG (64 / FT_CHAR_BIT) -#else -#error "Unsupported size of `long' type!" -#endif - - - /* FT_UNUSED is a macro used to indicate that a given parameter is not */ - /* used -- this is only used to get rid of unpleasant compiler warnings */ -#ifndef FT_UNUSED -#define FT_UNUSED( arg ) ( (arg) = (arg) ) -#endif - - - /*************************************************************************/ - /* */ - /* AUTOMATIC CONFIGURATION MACROS */ - /* */ - /* These macros are computed from the ones defined above. Don't touch */ - /* their definition, unless you know precisely what you are doing. No */ - /* porter should need to mess with them. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Mac support */ - /* */ - /* This is the only necessary change, so it is defined here instead */ - /* providing a new configuration file. */ - /* */ -#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) ) - /* no Carbon frameworks for 64bit 10.4.x */ - /* AvailabilityMacros.h is available since Mac OS X 10.2, */ - /* so guess the system version by maximum errno before inclusion */ -#include -#ifdef ECANCELED /* defined since 10.2 */ -#include "AvailabilityMacros.h" -#endif -#if defined( __LP64__ ) && \ - ( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 ) -#undef FT_MACINTOSH -#endif - -#elif defined( __SC__ ) || defined( __MRC__ ) - /* Classic MacOS compilers */ -#include "ConditionalMacros.h" -#if TARGET_OS_MAC -#define FT_MACINTOSH 1 -#endif - -#endif - - - /*************************************************************************/ - /* */ - /*
*/ - /* basic_types */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* */ - /* FT_Int16 */ - /* */ - /* */ - /* A typedef for a 16bit signed integer type. */ - /* */ - typedef signed short FT_Int16; - - - /*************************************************************************/ - /* */ - /* */ - /* FT_UInt16 */ - /* */ - /* */ - /* A typedef for a 16bit unsigned integer type. */ - /* */ - typedef unsigned short FT_UInt16; - - /* */ - - - /* this #if 0 ... #endif clause is for documentation purposes */ -#if 0 - - /*************************************************************************/ - /* */ - /* */ - /* FT_Int32 */ - /* */ - /* */ - /* A typedef for a 32bit signed integer type. The size depends on */ - /* the configuration. */ - /* */ - typedef signed XXX FT_Int32; - - - /*************************************************************************/ - /* */ - /* */ - /* FT_UInt32 */ - /* */ - /* A typedef for a 32bit unsigned integer type. The size depends on */ - /* the configuration. */ - /* */ - typedef unsigned XXX FT_UInt32; - - - /*************************************************************************/ - /* */ - /* */ - /* FT_Int64 */ - /* */ - /* A typedef for a 64bit signed integer type. The size depends on */ - /* the configuration. Only defined if there is real 64bit support; */ - /* otherwise, it gets emulated with a structure (if necessary). */ - /* */ - typedef signed XXX FT_Int64; - - - /*************************************************************************/ - /* */ - /* */ - /* FT_UInt64 */ - /* */ - /* A typedef for a 64bit unsigned integer type. The size depends on */ - /* the configuration. Only defined if there is real 64bit support; */ - /* otherwise, it gets emulated with a structure (if necessary). */ - /* */ - typedef unsigned XXX FT_UInt64; - - /* */ - -#endif - -#if FT_SIZEOF_INT == (32 / FT_CHAR_BIT) - - typedef signed int FT_Int32; - typedef unsigned int FT_UInt32; - -#elif FT_SIZEOF_LONG == (32 / FT_CHAR_BIT) - - typedef signed long FT_Int32; - typedef unsigned long FT_UInt32; - -#else -#error "no 32bit type found -- please check your configuration files" -#endif - - - /* look up an integer type that is at least 32 bits */ -#if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT) - - typedef int FT_Fast; - typedef unsigned int FT_UFast; - -#elif FT_SIZEOF_LONG >= (32 / FT_CHAR_BIT) - - typedef long FT_Fast; - typedef unsigned long FT_UFast; - -#endif - - - /* determine whether we have a 64-bit int type for platforms without */ - /* Autoconf */ -#if FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) - - /* FT_LONG64 must be defined if a 64-bit type is available */ -#define FT_LONG64 -#define FT_INT64 long -#define FT_UINT64 unsigned long - - /*************************************************************************/ - /* */ - /* A 64-bit data type may create compilation problems if you compile */ - /* in strict ANSI mode. To avoid them, we disable other 64-bit data */ - /* types if __STDC__ is defined. You can however ignore this rule */ - /* by defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */ - /* */ -#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 ) - -#if defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ - - /* this compiler provides the __int64 type */ -#define FT_LONG64 -#define FT_INT64 __int64 -#define FT_UINT64 unsigned __int64 - -#elif defined( __BORLANDC__ ) /* Borland C++ */ - - /* XXXX: We should probably check the value of __BORLANDC__ in order */ - /* to test the compiler version. */ - - /* this compiler provides the __int64 type */ -#define FT_LONG64 -#define FT_INT64 __int64 -#define FT_UINT64 unsigned __int64 - -#elif defined( __WATCOMC__ ) /* Watcom C++ */ - - /* Watcom doesn't provide 64-bit data types */ - -#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */ - -#define FT_LONG64 -#define FT_INT64 long long int -#define FT_UINT64 unsigned long long int - -#elif defined( __GNUC__ ) - - /* GCC provides the `long long' type */ -#define FT_LONG64 -#define FT_INT64 long long int -#define FT_UINT64 unsigned long long int - -#endif /* _MSC_VER */ - -#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */ - -#ifdef FT_LONG64 - typedef FT_INT64 FT_Int64; - typedef FT_UINT64 FT_UInt64; -#endif - - -#define FT_BEGIN_STMNT do { -#define FT_END_STMNT } while ( 0 ) -#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT - - -#ifdef FT_MAKE_OPTION_SINGLE_OBJECT - -#define FT_LOCAL( x ) static x -#define FT_LOCAL_DEF( x ) static x - -#else - -#ifdef __cplusplus -#define FT_LOCAL( x ) extern "C" x -#define FT_LOCAL_DEF( x ) extern "C" x -#else -#define FT_LOCAL( x ) extern x -#define FT_LOCAL_DEF( x ) x -#endif - -#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */ - -#define FT_LOCAL_ARRAY( x ) extern const x -#define FT_LOCAL_ARRAY_DEF( x ) const x - - -#ifndef FT_BASE - -#ifdef __cplusplus -#define FT_BASE( x ) extern "C" x -#else -#define FT_BASE( x ) extern x -#endif - -#endif /* !FT_BASE */ - - -#ifndef FT_BASE_DEF - -#ifdef __cplusplus -#define FT_BASE_DEF( x ) x -#else -#define FT_BASE_DEF( x ) x -#endif - -#endif /* !FT_BASE_DEF */ - - -#ifndef FT_EXPORT - -#ifdef __cplusplus -#define FT_EXPORT( x ) extern "C" x -#else -#define FT_EXPORT( x ) extern x -#endif - -#endif /* !FT_EXPORT */ - - -#ifndef FT_EXPORT_DEF - -#ifdef __cplusplus -#define FT_EXPORT_DEF( x ) extern "C" x -#else -#define FT_EXPORT_DEF( x ) extern x -#endif - -#endif /* !FT_EXPORT_DEF */ - - -#ifndef FT_EXPORT_VAR - -#ifdef __cplusplus -#define FT_EXPORT_VAR( x ) extern "C" x -#else -#define FT_EXPORT_VAR( x ) extern x -#endif - -#endif /* !FT_EXPORT_VAR */ - - /* The following macros are needed to compile the library with a */ - /* C++ compiler and with 16bit compilers. */ - /* */ - - /* This is special. Within C++, you must specify `extern "C"' for */ - /* functions which are used via function pointers, and you also */ - /* must do that for structures which contain function pointers to */ - /* assure C linkage -- it's not possible to have (local) anonymous */ - /* functions which are accessed by (global) function pointers. */ - /* */ - /* */ - /* FT_CALLBACK_DEF is used to _define_ a callback function. */ - /* */ - /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */ - /* contains pointers to callback functions. */ - /* */ - /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */ - /* that contains pointers to callback functions. */ - /* */ - /* */ - /* Some 16bit compilers have to redefine these macros to insert */ - /* the infamous `_cdecl' or `__fastcall' declarations. */ - /* */ -#ifndef FT_CALLBACK_DEF -#ifdef __cplusplus -#define FT_CALLBACK_DEF( x ) extern "C" x -#else -#define FT_CALLBACK_DEF( x ) static x -#endif -#endif /* FT_CALLBACK_DEF */ - -#ifndef FT_CALLBACK_TABLE -#ifdef __cplusplus -#define FT_CALLBACK_TABLE extern "C" -#define FT_CALLBACK_TABLE_DEF extern "C" -#else -#define FT_CALLBACK_TABLE extern -#define FT_CALLBACK_TABLE_DEF /* nothing */ -#endif -#endif /* FT_CALLBACK_TABLE */ - - -FT_END_HEADER - - -#endif /* __FTCONFIG_H__ */ - - -/* END */ diff --git a/lib/linux/include/config/ftheader.h b/lib/linux/include/config/ftheader.h deleted file mode 100644 index b623629..0000000 --- a/lib/linux/include/config/ftheader.h +++ /dev/null @@ -1,832 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftheader.h */ -/* */ -/* Build macros of the FreeType 2 library. */ -/* */ -/* Copyright 1996-2008, 2010, 2012, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -#ifndef __FT_HEADER_H__ -#define __FT_HEADER_H__ - - - /*@***********************************************************************/ - /* */ - /* */ - /* FT_BEGIN_HEADER */ - /* */ - /* */ - /* This macro is used in association with @FT_END_HEADER in header */ - /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }' block when included from a */ - /* C++ compiler. */ - /* */ -#ifdef __cplusplus -#define FT_BEGIN_HEADER extern "C" { -#else -#define FT_BEGIN_HEADER /* nothing */ -#endif - - - /*@***********************************************************************/ - /* */ - /* */ - /* FT_END_HEADER */ - /* */ - /* */ - /* This macro is used in association with @FT_BEGIN_HEADER in header */ - /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }' block when included from a */ - /* C++ compiler. */ - /* */ -#ifdef __cplusplus -#define FT_END_HEADER } -#else -#define FT_END_HEADER /* nothing */ -#endif - - - /*************************************************************************/ - /* */ - /* Aliases for the FreeType 2 public and configuration files. */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /*
*/ - /* header_file_macros */ - /* */ - /* */ - /* Header File Macros */ - /* */ - /* <Abstract> */ - /* Macro definitions used to #include specific header files. */ - /* */ - /* <Description> */ - /* The following macros are defined to the name of specific */ - /* FreeType~2 header files. They can be used directly in #include */ - /* statements as in: */ - /* */ - /* { */ - /* #include FT_FREETYPE_H */ - /* #include FT_MULTIPLE_MASTERS_H */ - /* #include FT_GLYPH_H */ - /* } */ - /* */ - /* There are several reasons why we are now using macros to name */ - /* public header files. The first one is that such macros are not */ - /* limited to the infamous 8.3~naming rule required by DOS (and */ - /* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */ - /* */ - /* The second reason is that it allows for more flexibility in the */ - /* way FreeType~2 is installed on a given system. */ - /* */ - /*************************************************************************/ - - - /* configuration files */ - - /************************************************************************* - * - * @macro: - * FT_CONFIG_CONFIG_H - * - * @description: - * A macro used in #include statements to name the file containing - * FreeType~2 configuration data. - * - */ -#ifndef FT_CONFIG_CONFIG_H -#define FT_CONFIG_CONFIG_H <config/ftconfig.h> -#endif - - - /************************************************************************* - * - * @macro: - * FT_CONFIG_STANDARD_LIBRARY_H - * - * @description: - * A macro used in #include statements to name the file containing - * FreeType~2 interface to the standard C library functions. - * - */ -#ifndef FT_CONFIG_STANDARD_LIBRARY_H -#define FT_CONFIG_STANDARD_LIBRARY_H <config/ftstdlib.h> -#endif - - - /************************************************************************* - * - * @macro: - * FT_CONFIG_OPTIONS_H - * - * @description: - * A macro used in #include statements to name the file containing - * FreeType~2 project-specific configuration options. - * - */ -#ifndef FT_CONFIG_OPTIONS_H -#define FT_CONFIG_OPTIONS_H <config/ftoption.h> -#endif - - - /************************************************************************* - * - * @macro: - * FT_CONFIG_MODULES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * list of FreeType~2 modules that are statically linked to new library - * instances in @FT_Init_FreeType. - * - */ -#ifndef FT_CONFIG_MODULES_H -#define FT_CONFIG_MODULES_H <config/ftmodule.h> -#endif - - /* */ - - /* public headers */ - - /************************************************************************* - * - * @macro: - * FT_FREETYPE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * base FreeType~2 API. - * - */ -#define FT_FREETYPE_H <freetype.h> - - - /************************************************************************* - * - * @macro: - * FT_ERRORS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * list of FreeType~2 error codes (and messages). - * - * It is included by @FT_FREETYPE_H. - * - */ -#define FT_ERRORS_H <fterrors.h> - - - /************************************************************************* - * - * @macro: - * FT_MODULE_ERRORS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * list of FreeType~2 module error offsets (and messages). - * - */ -#define FT_MODULE_ERRORS_H <ftmoderr.h> - - - /************************************************************************* - * - * @macro: - * FT_SYSTEM_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 interface to low-level operations (i.e., memory management - * and stream i/o). - * - * It is included by @FT_FREETYPE_H. - * - */ -#define FT_SYSTEM_H <ftsystem.h> - - - /************************************************************************* - * - * @macro: - * FT_IMAGE_H - * - * @description: - * A macro used in #include statements to name the file containing type - * definitions related to glyph images (i.e., bitmaps, outlines, - * scan-converter parameters). - * - * It is included by @FT_FREETYPE_H. - * - */ -#define FT_IMAGE_H <ftimage.h> - - - /************************************************************************* - * - * @macro: - * FT_TYPES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * basic data types defined by FreeType~2. - * - * It is included by @FT_FREETYPE_H. - * - */ -#define FT_TYPES_H <fttypes.h> - - - /************************************************************************* - * - * @macro: - * FT_LIST_H - * - * @description: - * A macro used in #include statements to name the file containing the - * list management API of FreeType~2. - * - * (Most applications will never need to include this file.) - * - */ -#define FT_LIST_H <ftlist.h> - - - /************************************************************************* - * - * @macro: - * FT_OUTLINE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * scalable outline management API of FreeType~2. - * - */ -#define FT_OUTLINE_H <ftoutln.h> - - - /************************************************************************* - * - * @macro: - * FT_SIZES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API which manages multiple @FT_Size objects per face. - * - */ -#define FT_SIZES_H <ftsizes.h> - - - /************************************************************************* - * - * @macro: - * FT_MODULE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * module management API of FreeType~2. - * - */ -#define FT_MODULE_H <ftmodapi.h> - - - /************************************************************************* - * - * @macro: - * FT_RENDER_H - * - * @description: - * A macro used in #include statements to name the file containing the - * renderer module management API of FreeType~2. - * - */ -#define FT_RENDER_H <ftrender.h> - - - /************************************************************************* - * - * @macro: - * FT_AUTOHINTER_H - * - * @description: - * A macro used in #include statements to name the file containing - * structures and macros related to the auto-hinting module. - * - */ -#define FT_AUTOHINTER_H <ftautoh.h> - - - /************************************************************************* - * - * @macro: - * FT_CFF_DRIVER_H - * - * @description: - * A macro used in #include statements to name the file containing - * structures and macros related to the CFF driver module. - * - */ -#define FT_CFF_DRIVER_H <ftcffdrv.h> - - - /************************************************************************* - * - * @macro: - * FT_TRUETYPE_DRIVER_H - * - * @description: - * A macro used in #include statements to name the file containing - * structures and macros related to the TrueType driver module. - * - */ -#define FT_TRUETYPE_DRIVER_H <ftttdrv.h> - - - /************************************************************************* - * - * @macro: - * FT_TYPE1_TABLES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * types and API specific to the Type~1 format. - * - */ -#define FT_TYPE1_TABLES_H <t1tables.h> - - - /************************************************************************* - * - * @macro: - * FT_TRUETYPE_IDS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * enumeration values which identify name strings, languages, encodings, - * etc. This file really contains a _large_ set of constant macro - * definitions, taken from the TrueType and OpenType specifications. - * - */ -#define FT_TRUETYPE_IDS_H <ttnameid.h> - - - /************************************************************************* - * - * @macro: - * FT_TRUETYPE_TABLES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * types and API specific to the TrueType (as well as OpenType) format. - * - */ -#define FT_TRUETYPE_TABLES_H <tttables.h> - - - /************************************************************************* - * - * @macro: - * FT_TRUETYPE_TAGS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of TrueType four-byte `tags' which identify blocks in - * SFNT-based font formats (i.e., TrueType and OpenType). - * - */ -#define FT_TRUETYPE_TAGS_H <tttags.h> - - - /************************************************************************* - * - * @macro: - * FT_BDF_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which accesses BDF-specific strings from a - * face. - * - */ -#define FT_BDF_H <ftbdf.h> - - - /************************************************************************* - * - * @macro: - * FT_CID_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which access CID font information from a - * face. - * - */ -#define FT_CID_H <ftcid.h> - - - /************************************************************************* - * - * @macro: - * FT_GZIP_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which supports gzip-compressed files. - * - */ -#define FT_GZIP_H <ftgzip.h> - - - /************************************************************************* - * - * @macro: - * FT_LZW_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which supports LZW-compressed files. - * - */ -#define FT_LZW_H <ftlzw.h> - - - /************************************************************************* - * - * @macro: - * FT_BZIP2_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which supports bzip2-compressed files. - * - */ -#define FT_BZIP2_H <ftbzip2.h> - - - /************************************************************************* - * - * @macro: - * FT_WINFONTS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which supports Windows FNT files. - * - */ -#define FT_WINFONTS_H <ftwinfnt.h> - - - /************************************************************************* - * - * @macro: - * FT_GLYPH_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API of the optional glyph management component. - * - */ -#define FT_GLYPH_H <ftglyph.h> - - - /************************************************************************* - * - * @macro: - * FT_BITMAP_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API of the optional bitmap conversion component. - * - */ -#define FT_BITMAP_H <ftbitmap.h> - - - /************************************************************************* - * - * @macro: - * FT_BBOX_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API of the optional exact bounding box computation routines. - * - */ -#define FT_BBOX_H <ftbbox.h> - - - /************************************************************************* - * - * @macro: - * FT_CACHE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API of the optional FreeType~2 cache sub-system. - * - */ -#define FT_CACHE_H <ftcache.h> - - - /************************************************************************* - * - * @macro: - * FT_CACHE_IMAGE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * `glyph image' API of the FreeType~2 cache sub-system. - * - * It is used to define a cache for @FT_Glyph elements. You can also - * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to - * store small glyph bitmaps, as it will use less memory. - * - * This macro is deprecated. Simply include @FT_CACHE_H to have all - * glyph image-related cache declarations. - * - */ -#define FT_CACHE_IMAGE_H FT_CACHE_H - - - /************************************************************************* - * - * @macro: - * FT_CACHE_SMALL_BITMAPS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * `small bitmaps' API of the FreeType~2 cache sub-system. - * - * It is used to define a cache for small glyph bitmaps in a relatively - * memory-efficient way. You can also use the API defined in - * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, - * including scalable outlines. - * - * This macro is deprecated. Simply include @FT_CACHE_H to have all - * small bitmaps-related cache declarations. - * - */ -#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H - - - /************************************************************************* - * - * @macro: - * FT_CACHE_CHARMAP_H - * - * @description: - * A macro used in #include statements to name the file containing the - * `charmap' API of the FreeType~2 cache sub-system. - * - * This macro is deprecated. Simply include @FT_CACHE_H to have all - * charmap-based cache declarations. - * - */ -#define FT_CACHE_CHARMAP_H FT_CACHE_H - - - /************************************************************************* - * - * @macro: - * FT_MAC_H - * - * @description: - * A macro used in #include statements to name the file containing the - * Macintosh-specific FreeType~2 API. The latter is used to access - * fonts embedded in resource forks. - * - * This header file must be explicitly included by client applications - * compiled on the Mac (note that the base API still works though). - * - */ -#define FT_MAC_H <ftmac.h> - - - /************************************************************************* - * - * @macro: - * FT_MULTIPLE_MASTERS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * optional multiple-masters management API of FreeType~2. - * - */ -#define FT_MULTIPLE_MASTERS_H <ftmm.h> - - - /************************************************************************* - * - * @macro: - * FT_SFNT_NAMES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * optional FreeType~2 API which accesses embedded `name' strings in - * SFNT-based font formats (i.e., TrueType and OpenType). - * - */ -#define FT_SFNT_NAMES_H <ftsnames.h> - - - /************************************************************************* - * - * @macro: - * FT_OPENTYPE_VALIDATE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * optional FreeType~2 API which validates OpenType tables (BASE, GDEF, - * GPOS, GSUB, JSTF). - * - */ -#define FT_OPENTYPE_VALIDATE_H <ftotval.h> - - - /************************************************************************* - * - * @macro: - * FT_GX_VALIDATE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat, - * mort, morx, bsln, just, kern, opbd, trak, prop). - * - */ -#define FT_GX_VALIDATE_H <ftgxval.h> - - - /************************************************************************* - * - * @macro: - * FT_PFR_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which accesses PFR-specific data. - * - */ -#define FT_PFR_H <ftpfr.h> - - - /************************************************************************* - * - * @macro: - * FT_STROKER_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which provides functions to stroke outline paths. - */ -#define FT_STROKER_H <ftstroke.h> - - - /************************************************************************* - * - * @macro: - * FT_SYNTHESIS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs artificial obliquing and emboldening. - */ -#define FT_SYNTHESIS_H <ftsynth.h> - - - /************************************************************************* - * - * @macro: - * FT_XFREE86_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which provides functions specific to the XFree86 and - * X.Org X11 servers. - */ -#define FT_XFREE86_H <ftxf86.h> - - - /************************************************************************* - * - * @macro: - * FT_TRIGONOMETRY_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs trigonometric computations (e.g., - * cosines and arc tangents). - */ -#define FT_TRIGONOMETRY_H <fttrigon.h> - - - /************************************************************************* - * - * @macro: - * FT_LCD_FILTER_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. - */ -#define FT_LCD_FILTER_H <ftlcdfil.h> - - - /************************************************************************* - * - * @macro: - * FT_UNPATENTED_HINTING_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. - */ -#define FT_UNPATENTED_HINTING_H <ttunpat.h> - - - /************************************************************************* - * - * @macro: - * FT_INCREMENTAL_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. - */ -#define FT_INCREMENTAL_H <ftincrem.h> - - - /************************************************************************* - * - * @macro: - * FT_GASP_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which returns entries from the TrueType GASP table. - */ -#define FT_GASP_H <ftgasp.h> - - - /************************************************************************* - * - * @macro: - * FT_ADVANCES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which returns individual and ranged glyph advances. - */ -#define FT_ADVANCES_H <ftadvanc.h> - - - /* */ - -#define FT_ERROR_DEFINITIONS_H <fterrdef.h> - - - /* The internals of the cache sub-system are no longer exposed. We */ - /* default to FT_CACHE_H at the moment just in case, but we know of */ - /* no rogue client that uses them. */ - /* */ -#define FT_CACHE_MANAGER_H <ftcache.h> -#define FT_CACHE_INTERNAL_MRU_H <ftcache.h> -#define FT_CACHE_INTERNAL_MANAGER_H <ftcache.h> -#define FT_CACHE_INTERNAL_CACHE_H <ftcache.h> -#define FT_CACHE_INTERNAL_GLYPH_H <ftcache.h> -#define FT_CACHE_INTERNAL_IMAGE_H <ftcache.h> -#define FT_CACHE_INTERNAL_SBITS_H <ftcache.h> - - -#define FT_INCREMENTAL_H <ftincrem.h> - -#define FT_TRUETYPE_UNPATENTED_H <ttunpat.h> - - - /* - * Include internal headers definitions from <internal/...> - * only when building the library. - */ -#ifdef FT2_BUILD_LIBRARY -#define FT_INTERNAL_INTERNAL_H <internal/internal.h> -#include FT_INTERNAL_INTERNAL_H -#endif /* FT2_BUILD_LIBRARY */ - - -#endif /* __FT2_BUILD_H__ */ - - -/* END */ diff --git a/lib/linux/include/config/ftmodule.h b/lib/linux/include/config/ftmodule.h deleted file mode 100644 index 76d271a..0000000 --- a/lib/linux/include/config/ftmodule.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * This file registers the FreeType modules compiled into the library. - * - * If you use GNU make, this file IS NOT USED! Instead, it is created in - * the objects directory (normally `<topdir>/objs/') based on information - * from `<topdir>/modules.cfg'. - * - * Please read `docs/INSTALL.ANY' and `docs/CUSTOMIZE' how to compile - * FreeType without GNU make. - * - */ - -FT_USE_MODULE( FT_Module_Class, autofit_module_class ) -FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class ) -FT_USE_MODULE( FT_Module_Class, psaux_module_class ) -FT_USE_MODULE( FT_Module_Class, psnames_module_class ) -FT_USE_MODULE( FT_Module_Class, pshinter_module_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class ) -FT_USE_MODULE( FT_Module_Class, sfnt_module_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class ) -FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class ) - -/* EOF */ diff --git a/lib/linux/include/config/ftoption.h b/lib/linux/include/config/ftoption.h deleted file mode 100644 index 2b0b67e..0000000 --- a/lib/linux/include/config/ftoption.h +++ /dev/null @@ -1,899 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftoption.h */ -/* */ -/* User-selectable configuration macros (specification only). */ -/* */ -/* Copyright 1996-2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTOPTION_H__ -#define __FTOPTION_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* USER-SELECTABLE CONFIGURATION MACROS */ - /* */ - /* This file contains the default configuration macro definitions for */ - /* a standard build of the FreeType library. There are three ways to */ - /* use this file to build project-specific versions of the library: */ - /* */ - /* - You can modify this file by hand, but this is not recommended in */ - /* cases where you would like to build several versions of the */ - /* library from a single source directory. */ - /* */ - /* - You can put a copy of this file in your build directory, more */ - /* precisely in `$BUILD/config/ftoption.h', where `$BUILD' is the */ - /* name of a directory that is included _before_ the FreeType include */ - /* path during compilation. */ - /* */ - /* The default FreeType Makefiles and Jamfiles use the build */ - /* directory `builds/<system>' by default, but you can easily change */ - /* that for your own projects. */ - /* */ - /* - Copy the file <ft2build.h> to `$BUILD/ft2build.h' and modify it */ - /* slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to */ - /* locate this file during the build. For example, */ - /* */ - /* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */ - /* #include <config/ftheader.h> */ - /* */ - /* will use `$BUILD/myftoptions.h' instead of this file for macro */ - /* definitions. */ - /* */ - /* Note also that you can similarly pre-define the macro */ - /* FT_CONFIG_MODULES_H used to locate the file listing of the modules */ - /* that are statically linked to the library at compile time. By */ - /* default, this file is <config/ftmodule.h>. */ - /* */ - /* We highly recommend using the third method whenever possible. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** G E N E R A L F R E E T Y P E 2 C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Uncomment the line below if you want to activate sub-pixel rendering */ - /* (a.k.a. LCD rendering, or ClearType) in this build of the library. */ - /* */ - /* Note that this feature is covered by several Microsoft patents */ - /* and should not be activated in any default build of the library. */ - /* */ - /* This macro has no impact on the FreeType API, only on its */ - /* _implementation_. For example, using FT_RENDER_MODE_LCD when calling */ - /* FT_Render_Glyph still generates a bitmap that is 3 times wider than */ - /* the original size in case this macro isn't defined; however, each */ - /* triplet of subpixels has R=G=B. */ - /* */ - /* This is done to allow FreeType clients to run unmodified, forcing */ - /* them to display normal gray-level anti-aliased glyphs. */ - /* */ -/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ - - - /*************************************************************************/ - /* */ - /* Many compilers provide a non-ANSI 64-bit data type that can be used */ - /* by FreeType to speed up some computations. However, this will create */ - /* some problems when compiling the library in strict ANSI mode. */ - /* */ - /* For this reason, the use of 64-bit integers is normally disabled when */ - /* the __STDC__ macro is defined. You can however disable this by */ - /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here. */ - /* */ - /* For most compilers, this will only create compilation warnings when */ - /* building the library. */ - /* */ - /* ObNote: The compiler-specific 64-bit integers are detected in the */ - /* file `ftconfig.h' either statically or through the */ - /* `configure' script on supported platforms. */ - /* */ -#undef FT_CONFIG_OPTION_FORCE_INT64 - - - /*************************************************************************/ - /* */ - /* If this macro is defined, do not try to use an assembler version of */ - /* performance-critical functions (e.g. FT_MulFix). You should only do */ - /* that to verify that the assembler function works properly, or to */ - /* execute benchmark tests of the various implementations. */ -/* #define FT_CONFIG_OPTION_NO_ASSEMBLER */ - - - /*************************************************************************/ - /* */ - /* If this macro is defined, try to use an inlined assembler version of */ - /* the `FT_MulFix' function, which is a `hotspot' when loading and */ - /* hinting glyphs, and which should be executed as fast as possible. */ - /* */ - /* Note that if your compiler or CPU is not supported, this will default */ - /* to the standard and portable implementation found in `ftcalc.c'. */ - /* */ -#define FT_CONFIG_OPTION_INLINE_MULFIX - - - /*************************************************************************/ - /* */ - /* LZW-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `compress' program. This is mostly used to parse many of the PCF */ - /* files that come with various X11 distributions. The implementation */ - /* uses NetBSD's `zopen' to partially uncompress the file on the fly */ - /* (see src/lzw/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -#define FT_CONFIG_OPTION_USE_LZW - - - /*************************************************************************/ - /* */ - /* Gzip-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `gzip' program. This is mostly used to parse many of the PCF files */ - /* that come with XFree86. The implementation uses `zlib' to */ - /* partially uncompress the file on the fly (see src/gzip/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. See also */ - /* the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below. */ - /* */ -#define FT_CONFIG_OPTION_USE_ZLIB - - - /*************************************************************************/ - /* */ - /* ZLib library selection */ - /* */ - /* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */ - /* It allows FreeType's `ftgzip' component to link to the system's */ - /* installation of the ZLib library. This is useful on systems like */ - /* Unix or VMS where it generally is already available. */ - /* */ - /* If you let it undefined, the component will use its own copy */ - /* of the zlib sources instead. These have been modified to be */ - /* included directly within the component and *not* export external */ - /* function names. This allows you to link any program with FreeType */ - /* _and_ ZLib without linking conflicts. */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ - - - /*************************************************************************/ - /* */ - /* Bzip2-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `bzip2' program. This is mostly used to parse many of the PCF */ - /* files that come with XFree86. The implementation uses `libbz2' to */ - /* partially uncompress the file on the fly (see src/bzip2/ftbzip2.c). */ - /* Contrary to gzip, bzip2 currently is not included and need to use */ - /* the system available bzip2 implementation. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -/* #define FT_CONFIG_OPTION_USE_BZIP2 */ - - - /*************************************************************************/ - /* */ - /* Define to disable the use of file stream functions and types, FILE, */ - /* fopen() etc. Enables the use of smaller system libraries on embedded */ - /* systems that have multiple system libraries, some with or without */ - /* file stream support, in the cases where file stream support is not */ - /* necessary such as memory loading of font files. */ - /* */ -/* #define FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT */ - - - /*************************************************************************/ - /* */ - /* PNG bitmap support. */ - /* */ - /* FreeType now handles loading color bitmap glyphs in the PNG format. */ - /* This requires help from the external libpng library. Uncompressed */ - /* color bitmaps do not need any external libraries and will be */ - /* supported regardless of this configuration. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -/* #define FT_CONFIG_OPTION_USE_PNG */ - - - /*************************************************************************/ - /* */ - /* HarfBuzz support. */ - /* */ - /* FreeType uses the HarfBuzz library to improve auto-hinting of */ - /* OpenType fonts. If available, many glyphs not directly addressable */ - /* by a font's character map will be hinted also. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -/* #define FT_CONFIG_OPTION_USE_HARFBUZZ */ - - - /*************************************************************************/ - /* */ - /* DLL export compilation */ - /* */ - /* When compiling FreeType as a DLL, some systems/compilers need a */ - /* special keyword in front OR after the return type of function */ - /* declarations. */ - /* */ - /* Two macros are used within the FreeType source code to define */ - /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */ - /* */ - /* FT_EXPORT( return_type ) */ - /* */ - /* is used in a function declaration, as in */ - /* */ - /* FT_EXPORT( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ); */ - /* */ - /* */ - /* FT_EXPORT_DEF( return_type ) */ - /* */ - /* is used in a function definition, as in */ - /* */ - /* FT_EXPORT_DEF( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ) */ - /* { */ - /* ... some code ... */ - /* return FT_Err_Ok; */ - /* } */ - /* */ - /* You can provide your own implementation of FT_EXPORT and */ - /* FT_EXPORT_DEF here if you want. If you leave them undefined, they */ - /* will be later automatically defined as `extern return_type' to */ - /* allow normal compilation. */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_EXPORT(x) extern x */ -/* #define FT_EXPORT_DEF(x) x */ - - - /*************************************************************************/ - /* */ - /* Glyph Postscript Names handling */ - /* */ - /* By default, FreeType 2 is compiled with the `psnames' module. This */ - /* module is in charge of converting a glyph name string into a */ - /* Unicode value, or return a Macintosh standard glyph name for the */ - /* use with the TrueType `post' table. */ - /* */ - /* Undefine this macro if you do not want `psnames' compiled in your */ - /* build of FreeType. This has the following effects: */ - /* */ - /* - The TrueType driver will provide its own set of glyph names, */ - /* if you build it to support postscript names in the TrueType */ - /* `post' table. */ - /* */ - /* - The Type 1 driver will not be able to synthesize a Unicode */ - /* charmap out of the glyphs found in the fonts. */ - /* */ - /* You would normally undefine this configuration macro when building */ - /* a version of FreeType that doesn't contain a Type 1 or CFF driver. */ - /* */ -#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES - - - /*************************************************************************/ - /* */ - /* Postscript Names to Unicode Values support */ - /* */ - /* By default, FreeType 2 is built with the `PSNames' module compiled */ - /* in. Among other things, the module is used to convert a glyph name */ - /* into a Unicode value. This is especially useful in order to */ - /* synthesize on the fly a Unicode charmap from the CFF/Type 1 driver */ - /* through a big table named the `Adobe Glyph List' (AGL). */ - /* */ - /* Undefine this macro if you do not want the Adobe Glyph List */ - /* compiled in your `PSNames' module. The Type 1 driver will not be */ - /* able to synthesize a Unicode charmap out of the glyphs found in the */ - /* fonts. */ - /* */ -#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST - - - /*************************************************************************/ - /* */ - /* Support for Mac fonts */ - /* */ - /* Define this macro if you want support for outline fonts in Mac */ - /* format (mac dfont, mac resource, macbinary containing a mac */ - /* resource) on non-Mac platforms. */ - /* */ - /* Note that the `FOND' resource isn't checked. */ - /* */ -#define FT_CONFIG_OPTION_MAC_FONTS - - - /*************************************************************************/ - /* */ - /* Guessing methods to access embedded resource forks */ - /* */ - /* Enable extra Mac fonts support on non-Mac platforms (e.g. */ - /* GNU/Linux). */ - /* */ - /* Resource forks which include fonts data are stored sometimes in */ - /* locations which users or developers don't expected. In some cases, */ - /* resource forks start with some offset from the head of a file. In */ - /* other cases, the actual resource fork is stored in file different */ - /* from what the user specifies. If this option is activated, */ - /* FreeType tries to guess whether such offsets or different file */ - /* names must be used. */ - /* */ - /* Note that normal, direct access of resource forks is controlled via */ - /* the FT_CONFIG_OPTION_MAC_FONTS option. */ - /* */ -#ifdef FT_CONFIG_OPTION_MAC_FONTS -#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK -#endif - - - /*************************************************************************/ - /* */ - /* Allow the use of FT_Incremental_Interface to load typefaces that */ - /* contain no glyph data, but supply it via a callback function. */ - /* This is required by clients supporting document formats which */ - /* supply font data incrementally as the document is parsed, such */ - /* as the Ghostscript interpreter for the PostScript language. */ - /* */ -#define FT_CONFIG_OPTION_INCREMENTAL - - - /*************************************************************************/ - /* */ - /* The size in bytes of the render pool used by the scan-line converter */ - /* to do all of its work. */ - /* */ - /* This must be greater than 4KByte if you use FreeType to rasterize */ - /* glyphs; otherwise, you may set it to zero to avoid unnecessary */ - /* allocation of the render pool. */ - /* */ -#define FT_RENDER_POOL_SIZE 16384L - - - /*************************************************************************/ - /* */ - /* FT_MAX_MODULES */ - /* */ - /* The maximum number of modules that can be registered in a single */ - /* FreeType library object. 32 is the default. */ - /* */ -#define FT_MAX_MODULES 32 - - - /*************************************************************************/ - /* */ - /* Debug level */ - /* */ - /* FreeType can be compiled in debug or trace mode. In debug mode, */ - /* errors are reported through the `ftdebug' component. In trace */ - /* mode, additional messages are sent to the standard output during */ - /* execution. */ - /* */ - /* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */ - /* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */ - /* */ - /* Don't define any of these macros to compile in `release' mode! */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_DEBUG_LEVEL_ERROR */ -/* #define FT_DEBUG_LEVEL_TRACE */ - - - /*************************************************************************/ - /* */ - /* Autofitter debugging */ - /* */ - /* If FT_DEBUG_AUTOFIT is defined, FreeType provides some means to */ - /* control the autofitter behaviour for debugging purposes with global */ - /* boolean variables (consequently, you should *never* enable this */ - /* while compiling in `release' mode): */ - /* */ - /* _af_debug_disable_horz_hints */ - /* _af_debug_disable_vert_hints */ - /* _af_debug_disable_blue_hints */ - /* */ - /* Additionally, the following functions provide dumps of various */ - /* internal autofit structures to stdout (using `printf'): */ - /* */ - /* af_glyph_hints_dump_points */ - /* af_glyph_hints_dump_segments */ - /* af_glyph_hints_dump_edges */ - /* */ - /* As an argument, they use another global variable: */ - /* */ - /* _af_debug_hints */ - /* */ - /* Please have a look at the `ftgrid' demo program to see how those */ - /* variables and macros should be used. */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_DEBUG_AUTOFIT */ - - - /*************************************************************************/ - /* */ - /* Memory Debugging */ - /* */ - /* FreeType now comes with an integrated memory debugger that is */ - /* capable of detecting simple errors like memory leaks or double */ - /* deletes. To compile it within your build of the library, you */ - /* should define FT_DEBUG_MEMORY here. */ - /* */ - /* Note that the memory debugger is only activated at runtime when */ - /* when the _environment_ variable `FT2_DEBUG_MEMORY' is defined also! */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -/* #define FT_DEBUG_MEMORY */ - - - /*************************************************************************/ - /* */ - /* Module errors */ - /* */ - /* If this macro is set (which is _not_ the default), the higher byte */ - /* of an error code gives the module in which the error has occurred, */ - /* while the lower byte is the real error code. */ - /* */ - /* Setting this macro makes sense for debugging purposes only, since */ - /* it would break source compatibility of certain programs that use */ - /* FreeType 2. */ - /* */ - /* More details can be found in the files ftmoderr.h and fterrors.h. */ - /* */ -#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS - - - /*************************************************************************/ - /* */ - /* Position Independent Code */ - /* */ - /* If this macro is set (which is _not_ the default), FreeType2 will */ - /* avoid creating constants that require address fixups. Instead the */ - /* constants will be moved into a struct and additional intialization */ - /* code will be used. */ - /* */ - /* Setting this macro is needed for systems that prohibit address */ - /* fixups, such as BREW. */ - /* */ -/* #define FT_CONFIG_OPTION_PIC */ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** S F N T D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support */ - /* embedded bitmaps in all formats using the SFNT module (namely */ - /* TrueType & OpenType). */ - /* */ -#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to */ - /* load and enumerate the glyph Postscript names in a TrueType or */ - /* OpenType file. */ - /* */ - /* Note that when you do not compile the `PSNames' module by undefining */ - /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will */ - /* contain additional code used to read the PS Names table from a font. */ - /* */ - /* (By default, the module uses `PSNames' to extract glyph names.) */ - /* */ -#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to */ - /* access the internal name table in a SFNT-based format like TrueType */ - /* or OpenType. The name table contains various strings used to */ - /* describe the font, like family name, copyright, version, etc. It */ - /* does not contain any glyph name though. */ - /* */ - /* Accessing SFNT names is done through the functions declared in */ - /* `ftsnames.h'. */ - /* */ -#define TT_CONFIG_OPTION_SFNT_NAMES - - - /*************************************************************************/ - /* */ - /* TrueType CMap support */ - /* */ - /* Here you can fine-tune which TrueType CMap table format shall be */ - /* supported. */ -#define TT_CONFIG_CMAP_FORMAT_0 -#define TT_CONFIG_CMAP_FORMAT_2 -#define TT_CONFIG_CMAP_FORMAT_4 -#define TT_CONFIG_CMAP_FORMAT_6 -#define TT_CONFIG_CMAP_FORMAT_8 -#define TT_CONFIG_CMAP_FORMAT_10 -#define TT_CONFIG_CMAP_FORMAT_12 -#define TT_CONFIG_CMAP_FORMAT_13 -#define TT_CONFIG_CMAP_FORMAT_14 - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** T R U E T Y P E D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */ - /* a bytecode interpreter in the TrueType driver. */ - /* */ - /* By undefining this, you will only compile the code necessary to load */ - /* TrueType glyphs without hinting. */ - /* */ - /* Do not #undef this macro here, since the build system might */ - /* define it for certain configurations only. */ - /* */ -#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_SUBPIXEL_HINTING if you want to compile */ - /* EXPERIMENTAL subpixel hinting support into the TrueType driver. This */ - /* replaces the native TrueType hinting mechanism when anything but */ - /* FT_RENDER_MODE_MONO is requested. */ - /* */ - /* Enabling this causes the TrueType driver to ignore instructions under */ - /* certain conditions. This is done in accordance with the guide here, */ - /* with some minor differences: */ - /* */ - /* http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */ - /* */ - /* By undefining this, you only compile the code necessary to hint */ - /* TrueType glyphs with native TT hinting. */ - /* */ - /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be */ - /* defined. */ - /* */ -/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING */ - - - /*************************************************************************/ - /* */ - /* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */ - /* of the TrueType bytecode interpreter is used that doesn't implement */ - /* any of the patented opcodes and algorithms. The patents related to */ - /* TrueType hinting have expired worldwide since May 2010; this option */ - /* is now deprecated. */ - /* */ - /* Note that the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* */ - /* if you define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, */ - /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */ - /* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */ - /* */ - /* This macro is only useful for a small number of font files (mostly */ - /* for Asian scripts) that require bytecode interpretation to properly */ - /* load glyphs. For all other fonts, this produces unpleasant results, */ - /* thus the unpatented interpreter is never used to load glyphs from */ - /* TrueType fonts unless one of the following two options is used. */ - /* */ - /* - The unpatented interpreter is explicitly activated by the user */ - /* through the FT_PARAM_TAG_UNPATENTED_HINTING parameter tag */ - /* when opening the FT_Face. */ - /* */ - /* - FreeType detects that the FT_Face corresponds to one of the */ - /* `trick' fonts (e.g., `Mingliu') it knows about. The font engine */ - /* contains a hard-coded list of font names and other matching */ - /* parameters (see function `tt_face_init' in file */ - /* `src/truetype/ttobjs.c'). */ - /* */ - /* Here a sample code snippet for using FT_PARAM_TAG_UNPATENTED_HINTING. */ - /* */ - /* { */ - /* FT_Parameter parameter; */ - /* FT_Open_Args open_args; */ - /* */ - /* */ - /* parameter.tag = FT_PARAM_TAG_UNPATENTED_HINTING; */ - /* */ - /* open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; */ - /* open_args.pathname = my_font_pathname; */ - /* open_args.num_params = 1; */ - /* open_args.params = ¶meter; */ - /* */ - /* error = FT_Open_Face( library, &open_args, index, &face ); */ - /* ... */ - /* } */ - /* */ -/* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType */ - /* bytecode interpreter with a huge switch statement, rather than a call */ - /* table. This results in smaller and faster code for a number of */ - /* architectures. */ - /* */ - /* Note however that on some compiler/processor combinations, undefining */ - /* this macro will generate faster, though larger, code. */ - /* */ -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ - /* TrueType glyph loader to use Apple's definition of how to handle */ - /* component offsets in composite glyphs. */ - /* */ - /* Apple and MS disagree on the default behavior of component offsets */ - /* in composites. Apple says that they should be scaled by the scaling */ - /* factors in the transformation matrix (roughly, it's more complex) */ - /* while MS says they should not. OpenType defines two bits in the */ - /* composite flags array which can be used to disambiguate, but old */ - /* fonts will not have them. */ - /* */ - /* http://www.microsoft.com/typography/otspec/glyf.htm */ - /* http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html */ - /* */ -#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_GX_VAR_SUPPORT if you want to include */ - /* support for Apple's distortable font technology (fvar, gvar, cvar, */ - /* and avar tables). This has many similarities to Type 1 Multiple */ - /* Masters support. */ - /* */ -#define TT_CONFIG_OPTION_GX_VAR_SUPPORT - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_BDF if you want to include support for */ - /* an embedded `BDF ' table within SFNT-based bitmap formats. */ - /* */ -#define TT_CONFIG_OPTION_BDF - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* T1_MAX_DICT_DEPTH is the maximum depth of nest dictionaries and */ - /* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is */ - /* required. */ - /* */ -#define T1_MAX_DICT_DEPTH 5 - - - /*************************************************************************/ - /* */ - /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ - /* calls during glyph loading. */ - /* */ -#define T1_MAX_SUBRS_CALLS 16 - - - /*************************************************************************/ - /* */ - /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ - /* minimum of 16 is required. */ - /* */ - /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */ - /* */ -#define T1_MAX_CHARSTRINGS_OPERANDS 256 - - - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of `t1afm', which is in charge of reading Type 1 AFM */ - /* files into an existing face. Note that if set, the T1 driver will be */ - /* unable to produce kerning distances. */ - /* */ -#undef T1_CONFIG_OPTION_NO_AFM - - - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of the Multiple Masters font support in the Type 1 */ - /* driver. */ - /* */ -#undef T1_CONFIG_OPTION_NO_MM_SUPPORT - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** C F F D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Using CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} it is */ - /* possible to set up the default values of the four control points that */ - /* define the stem darkening behaviour of the (new) CFF engine. For */ - /* more details please read the documentation of the */ - /* `darkening-parameters' property of the cff driver module (file */ - /* `ftcffdrv.h'), which allows the control at run-time. */ - /* */ - /* Do *not* undefine these macros! */ - /* */ -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 500 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 400 - -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 1000 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 275 - -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 1667 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 275 - -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 2333 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 0 - - - /*************************************************************************/ - /* */ - /* CFF_CONFIG_OPTION_OLD_ENGINE controls whether the pre-Adobe CFF */ - /* engine gets compiled into FreeType. If defined, it is possible to */ - /* switch between the two engines using the `hinting-engine' property of */ - /* the cff driver module. */ - /* */ -/* #define CFF_CONFIG_OPTION_OLD_ENGINE */ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** A U T O F I T M O D U L E C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Compile autofit module with CJK (Chinese, Japanese, Korean) script */ - /* support. */ - /* */ -#define AF_CONFIG_OPTION_CJK - - /*************************************************************************/ - /* */ - /* Compile autofit module with Indic script support. */ - /* */ -#define AF_CONFIG_OPTION_INDIC - - /*************************************************************************/ - /* */ - /* Compile autofit module with warp hinting. The idea of the warping */ - /* code is to slightly scale and shift a glyph within a single dimension */ - /* so that as much of its segments are aligned (more or less) on the */ - /* grid. To find out the optimal scaling and shifting value, various */ - /* parameter combinations are tried and scored. */ - /* */ - /* This experimental option is only active if the render mode is */ - /* FT_RENDER_MODE_LIGHT. */ - /* */ -/* #define AF_CONFIG_OPTION_USE_WARPER */ - - /* */ - - - /* - * This macro is obsolete. Support has been removed in FreeType - * version 2.5. - */ -/* #define FT_CONFIG_OPTION_OLD_INTERNALS */ - - - /* - * This macro is defined if either unpatented or native TrueType - * hinting is requested by the definitions above. - */ -#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER -#define TT_USE_BYTECODE_INTERPRETER -#undef TT_CONFIG_OPTION_UNPATENTED_HINTING -#elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING -#define TT_USE_BYTECODE_INTERPRETER -#endif - - - /* - * Check CFF darkening parameters. The checks are the same as in function - * `cff_property_set' in file `cffdrivr.c'. - */ -#if CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 < 0 || \ - \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 < 0 || \ - \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 > \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 > \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 > \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 || \ - \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500 -#error "Invalid CFF darkening parameters!" -#endif - -FT_END_HEADER - - -#endif /* __FTOPTION_H__ */ - - -/* END */ diff --git a/lib/linux/include/config/ftstdlib.h b/lib/linux/include/config/ftstdlib.h deleted file mode 100644 index b940efc..0000000 --- a/lib/linux/include/config/ftstdlib.h +++ /dev/null @@ -1,174 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftstdlib.h */ -/* */ -/* ANSI-specific library and header configuration file (specification */ -/* only). */ -/* */ -/* Copyright 2002-2007, 2009, 2011-2012 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file is used to group all #includes to the ANSI C library that */ - /* FreeType normally requires. It also defines macros to rename the */ - /* standard functions within the FreeType source code. */ - /* */ - /* Load a file which defines __FTSTDLIB_H__ before this one to override */ - /* it. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTSTDLIB_H__ -#define __FTSTDLIB_H__ - - -#include <stddef.h> - -#define ft_ptrdiff_t ptrdiff_t - - - /**********************************************************************/ - /* */ - /* integer limits */ - /* */ - /* UINT_MAX and ULONG_MAX are used to automatically compute the size */ - /* of `int' and `long' in bytes at compile-time. So far, this works */ - /* for all platforms the library has been tested on. */ - /* */ - /* Note that on the extremely rare platforms that do not provide */ - /* integer types that are _exactly_ 16 and 32 bits wide (e.g. some */ - /* old Crays where `int' is 36 bits), we do not make any guarantee */ - /* about the correct behaviour of FT2 with all fonts. */ - /* */ - /* In these case, `ftconfig.h' will refuse to compile anyway with a */ - /* message like `couldn't find 32-bit type' or something similar. */ - /* */ - /**********************************************************************/ - - -#include <limits.h> - -#define FT_CHAR_BIT CHAR_BIT -#define FT_USHORT_MAX USHRT_MAX -#define FT_INT_MAX INT_MAX -#define FT_INT_MIN INT_MIN -#define FT_UINT_MAX UINT_MAX -#define FT_ULONG_MAX ULONG_MAX - - - /**********************************************************************/ - /* */ - /* character and string processing */ - /* */ - /**********************************************************************/ - - -#include <string.h> - -#define ft_memchr memchr -#define ft_memcmp memcmp -#define ft_memcpy memcpy -#define ft_memmove memmove -#define ft_memset memset -#define ft_strcat strcat -#define ft_strcmp strcmp -#define ft_strcpy strcpy -#define ft_strlen strlen -#define ft_strncmp strncmp -#define ft_strncpy strncpy -#define ft_strrchr strrchr -#define ft_strstr strstr - - - /**********************************************************************/ - /* */ - /* file handling */ - /* */ - /**********************************************************************/ - - -#include <stdio.h> - -#define FT_FILE FILE -#define ft_fclose fclose -#define ft_fopen fopen -#define ft_fread fread -#define ft_fseek fseek -#define ft_ftell ftell -#define ft_sprintf sprintf - - - /**********************************************************************/ - /* */ - /* sorting */ - /* */ - /**********************************************************************/ - - -#include <stdlib.h> - -#define ft_qsort qsort - - - /**********************************************************************/ - /* */ - /* memory allocation */ - /* */ - /**********************************************************************/ - - -#define ft_scalloc calloc -#define ft_sfree free -#define ft_smalloc malloc -#define ft_srealloc realloc - - - /**********************************************************************/ - /* */ - /* miscellaneous */ - /* */ - /**********************************************************************/ - - -#define ft_atol atol -#define ft_labs labs - - - /**********************************************************************/ - /* */ - /* execution control */ - /* */ - /**********************************************************************/ - - -#include <setjmp.h> - -#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */ - /* jmp_buf is defined as a macro */ - /* on certain platforms */ - -#define ft_longjmp longjmp -#define ft_setjmp( b ) setjmp( *(ft_jmp_buf*) &(b) ) /* same thing here */ - - - /* the following is only used for debugging purposes, i.e., if */ - /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */ - -#include <stdarg.h> - - -#endif /* __FTSTDLIB_H__ */ - - -/* END */ diff --git a/lib/linux/include/freetype.h b/lib/linux/include/freetype.h deleted file mode 100644 index 27fd44b..0000000 --- a/lib/linux/include/freetype.h +++ /dev/null @@ -1,4048 +0,0 @@ -/***************************************************************************/ -/* */ -/* freetype.h */ -/* */ -/* FreeType high-level API and common types (specification only). */ -/* */ -/* Copyright 1996-2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FREETYPE_H__ -#define __FREETYPE_H__ - - -#ifndef FT_FREETYPE_H -#error "`ft2build.h' hasn't been included yet!" -#error "Please always use macros to include FreeType header files." -#error "Example:" -#error " #include <ft2build.h>" -#error " #include FT_FREETYPE_H" -#endif - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_TYPES_H -#include FT_ERRORS_H - - -FT_BEGIN_HEADER - - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* header_inclusion */ - /* */ - /* <Title> */ - /* FreeType's header inclusion scheme */ - /* */ - /* <Abstract> */ - /* How client applications should include FreeType header files. */ - /* */ - /* <Description> */ - /* To be as flexible as possible (and for historical reasons), */ - /* FreeType uses a very special inclusion scheme to load header */ - /* files, for example */ - /* */ - /* { */ - /* #include <ft2build.h> */ - /* */ - /* #include FT_FREETYPE_H */ - /* #include FT_OUTLINE_H */ - /* } */ - /* */ - /* A compiler and its preprocessor only needs an include path to find */ - /* the file `ft2build.h'; the exact locations and names of the other */ - /* FreeType header files are hidden by preprocessor macro names, */ - /* loaded by `ft2build.h'. The API documentation always gives the */ - /* header macro name needed for a particular function. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* user_allocation */ - /* */ - /* <Title> */ - /* User allocation */ - /* */ - /* <Abstract> */ - /* How client applications should allocate FreeType data structures. */ - /* */ - /* <Description> */ - /* FreeType assumes that structures allocated by the user and passed */ - /* as arguments are zeroed out except for the actual data. In other */ - /* words, it is recommended to use `calloc' (or variants of it) */ - /* instead of `malloc' for allocation. */ - /* */ - /*************************************************************************/ - - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* B A S I C T Y P E S */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* base_interface */ - /* */ - /* <Title> */ - /* Base Interface */ - /* */ - /* <Abstract> */ - /* The FreeType~2 base font interface. */ - /* */ - /* <Description> */ - /* This section describes the most important public high-level API */ - /* functions of FreeType~2. */ - /* */ - /* <Order> */ - /* FT_Library */ - /* FT_Face */ - /* FT_Size */ - /* FT_GlyphSlot */ - /* FT_CharMap */ - /* FT_Encoding */ - /* FT_ENC_TAG */ - /* */ - /* FT_FaceRec */ - /* */ - /* FT_FACE_FLAG_SCALABLE */ - /* FT_FACE_FLAG_FIXED_SIZES */ - /* FT_FACE_FLAG_FIXED_WIDTH */ - /* FT_FACE_FLAG_HORIZONTAL */ - /* FT_FACE_FLAG_VERTICAL */ - /* FT_FACE_FLAG_COLOR */ - /* FT_FACE_FLAG_SFNT */ - /* FT_FACE_FLAG_CID_KEYED */ - /* FT_FACE_FLAG_TRICKY */ - /* FT_FACE_FLAG_KERNING */ - /* FT_FACE_FLAG_MULTIPLE_MASTERS */ - /* FT_FACE_FLAG_GLYPH_NAMES */ - /* FT_FACE_FLAG_EXTERNAL_STREAM */ - /* FT_FACE_FLAG_HINTER */ - /* FT_FACE_FLAG_TRICKY */ - /* */ - /* FT_HAS_HORIZONTAL */ - /* FT_HAS_VERTICAL */ - /* FT_HAS_KERNING */ - /* FT_HAS_FIXED_SIZES */ - /* FT_HAS_GLYPH_NAMES */ - /* FT_HAS_MULTIPLE_MASTERS */ - /* FT_HAS_COLOR */ - /* */ - /* FT_IS_SFNT */ - /* FT_IS_SCALABLE */ - /* FT_IS_FIXED_WIDTH */ - /* FT_IS_CID_KEYED */ - /* FT_IS_TRICKY */ - /* */ - /* FT_STYLE_FLAG_BOLD */ - /* FT_STYLE_FLAG_ITALIC */ - /* */ - /* FT_SizeRec */ - /* FT_Size_Metrics */ - /* */ - /* FT_GlyphSlotRec */ - /* FT_Glyph_Metrics */ - /* FT_SubGlyph */ - /* */ - /* FT_Bitmap_Size */ - /* */ - /* FT_Init_FreeType */ - /* FT_Done_FreeType */ - /* */ - /* FT_New_Face */ - /* FT_Done_Face */ - /* FT_Reference_Face */ - /* FT_New_Memory_Face */ - /* FT_Open_Face */ - /* FT_Open_Args */ - /* FT_Parameter */ - /* FT_Attach_File */ - /* FT_Attach_Stream */ - /* */ - /* FT_Set_Char_Size */ - /* FT_Set_Pixel_Sizes */ - /* FT_Request_Size */ - /* FT_Select_Size */ - /* FT_Size_Request_Type */ - /* FT_Size_RequestRec */ - /* FT_Size_Request */ - /* FT_Set_Transform */ - /* FT_Load_Glyph */ - /* FT_Get_Char_Index */ - /* FT_Get_First_Char */ - /* FT_Get_Next_Char */ - /* FT_Get_Name_Index */ - /* FT_Load_Char */ - /* */ - /* FT_OPEN_MEMORY */ - /* FT_OPEN_STREAM */ - /* FT_OPEN_PATHNAME */ - /* FT_OPEN_DRIVER */ - /* FT_OPEN_PARAMS */ - /* */ - /* FT_LOAD_DEFAULT */ - /* FT_LOAD_RENDER */ - /* FT_LOAD_MONOCHROME */ - /* FT_LOAD_LINEAR_DESIGN */ - /* FT_LOAD_NO_SCALE */ - /* FT_LOAD_NO_HINTING */ - /* FT_LOAD_NO_BITMAP */ - /* FT_LOAD_NO_AUTOHINT */ - /* FT_LOAD_COLOR */ - /* */ - /* FT_LOAD_VERTICAL_LAYOUT */ - /* FT_LOAD_IGNORE_TRANSFORM */ - /* FT_LOAD_FORCE_AUTOHINT */ - /* FT_LOAD_NO_RECURSE */ - /* FT_LOAD_PEDANTIC */ - /* */ - /* FT_LOAD_TARGET_NORMAL */ - /* FT_LOAD_TARGET_LIGHT */ - /* FT_LOAD_TARGET_MONO */ - /* FT_LOAD_TARGET_LCD */ - /* FT_LOAD_TARGET_LCD_V */ - /* */ - /* FT_LOAD_TARGET_MODE */ - /* */ - /* FT_Render_Glyph */ - /* FT_Render_Mode */ - /* FT_Get_Kerning */ - /* FT_Kerning_Mode */ - /* FT_Get_Track_Kerning */ - /* FT_Get_Glyph_Name */ - /* FT_Get_Postscript_Name */ - /* */ - /* FT_CharMapRec */ - /* FT_Select_Charmap */ - /* FT_Set_Charmap */ - /* FT_Get_Charmap_Index */ - /* */ - /* FT_Get_FSType_Flags */ - /* FT_Get_SubGlyph_Info */ - /* */ - /* FT_Face_Internal */ - /* FT_Size_Internal */ - /* FT_Slot_Internal */ - /* */ - /* FT_FACE_FLAG_XXX */ - /* FT_STYLE_FLAG_XXX */ - /* FT_OPEN_XXX */ - /* FT_LOAD_XXX */ - /* FT_LOAD_TARGET_XXX */ - /* FT_SUBGLYPH_FLAG_XXX */ - /* FT_FSTYPE_XXX */ - /* */ - /* FT_HAS_FAST_GLYPHS */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Glyph_Metrics */ - /* */ - /* <Description> */ - /* A structure used to model the metrics of a single glyph. The */ - /* values are expressed in 26.6 fractional pixel format; if the flag */ - /* @FT_LOAD_NO_SCALE has been used while loading the glyph, values */ - /* are expressed in font units instead. */ - /* */ - /* <Fields> */ - /* width :: */ - /* The glyph's width. */ - /* */ - /* height :: */ - /* The glyph's height. */ - /* */ - /* horiBearingX :: */ - /* Left side bearing for horizontal layout. */ - /* */ - /* horiBearingY :: */ - /* Top side bearing for horizontal layout. */ - /* */ - /* horiAdvance :: */ - /* Advance width for horizontal layout. */ - /* */ - /* vertBearingX :: */ - /* Left side bearing for vertical layout. */ - /* */ - /* vertBearingY :: */ - /* Top side bearing for vertical layout. Larger positive values */ - /* mean further below the vertical glyph origin. */ - /* */ - /* vertAdvance :: */ - /* Advance height for vertical layout. Positive values mean the */ - /* glyph has a positive advance downward. */ - /* */ - /* <Note> */ - /* If not disabled with @FT_LOAD_NO_HINTING, the values represent */ - /* dimensions of the hinted glyph (in case hinting is applicable). */ - /* */ - /* Stroking a glyph with an outside border does not increase */ - /* `horiAdvance' or `vertAdvance'; you have to manually adjust these */ - /* values to account for the added width and height. */ - /* */ - typedef struct FT_Glyph_Metrics_ - { - FT_Pos width; - FT_Pos height; - - FT_Pos horiBearingX; - FT_Pos horiBearingY; - FT_Pos horiAdvance; - - FT_Pos vertBearingX; - FT_Pos vertBearingY; - FT_Pos vertAdvance; - - } FT_Glyph_Metrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Bitmap_Size */ - /* */ - /* <Description> */ - /* This structure models the metrics of a bitmap strike (i.e., a set */ - /* of glyphs for a given point size and resolution) in a bitmap font. */ - /* It is used for the `available_sizes' field of @FT_Face. */ - /* */ - /* <Fields> */ - /* height :: The vertical distance, in pixels, between two */ - /* consecutive baselines. It is always positive. */ - /* */ - /* width :: The average width, in pixels, of all glyphs in the */ - /* strike. */ - /* */ - /* size :: The nominal size of the strike in 26.6 fractional */ - /* points. This field is not very useful. */ - /* */ - /* x_ppem :: The horizontal ppem (nominal width) in 26.6 fractional */ - /* pixels. */ - /* */ - /* y_ppem :: The vertical ppem (nominal height) in 26.6 fractional */ - /* pixels. */ - /* */ - /* <Note> */ - /* Windows FNT: */ - /* The nominal size given in a FNT font is not reliable. Thus when */ - /* the driver finds it incorrect, it sets `size' to some calculated */ - /* values and sets `x_ppem' and `y_ppem' to the pixel width and */ - /* height given in the font, respectively. */ - /* */ - /* TrueType embedded bitmaps: */ - /* `size', `width', and `height' values are not contained in the */ - /* bitmap strike itself. They are computed from the global font */ - /* parameters. */ - /* */ - typedef struct FT_Bitmap_Size_ - { - FT_Short height; - FT_Short width; - - FT_Pos size; - - FT_Pos x_ppem; - FT_Pos y_ppem; - - } FT_Bitmap_Size; - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* O B J E C T C L A S S E S */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Library */ - /* */ - /* <Description> */ - /* A handle to a FreeType library instance. Each `library' is */ - /* completely independent from the others; it is the `root' of a set */ - /* of objects like fonts, faces, sizes, etc. */ - /* */ - /* It also embeds a memory manager (see @FT_Memory), as well as a */ - /* scan-line converter object (see @FT_Raster). */ - /* */ - /* In multi-threaded applications, make sure that the same FT_Library */ - /* object or any of its children doesn't get accessed in parallel. */ - /* */ - /* <Note> */ - /* Library objects are normally created by @FT_Init_FreeType, and */ - /* destroyed with @FT_Done_FreeType. If you need reference-counting */ - /* (cf. @FT_Reference_Library), use @FT_New_Library and */ - /* @FT_Done_Library. */ - /* */ - typedef struct FT_LibraryRec_ *FT_Library; - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* module_management */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Module */ - /* */ - /* <Description> */ - /* A handle to a given FreeType module object. Each module can be a */ - /* font driver, a renderer, or anything else that provides services */ - /* to the formers. */ - /* */ - typedef struct FT_ModuleRec_* FT_Module; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Driver */ - /* */ - /* <Description> */ - /* A handle to a given FreeType font driver object. Each font driver */ - /* is a special module capable of creating faces from font files. */ - /* */ - typedef struct FT_DriverRec_* FT_Driver; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Renderer */ - /* */ - /* <Description> */ - /* A handle to a given FreeType renderer. A renderer is a special */ - /* module in charge of converting a glyph image to a bitmap, when */ - /* necessary. Each renderer supports a given glyph image format, and */ - /* one or more target surface depths. */ - /* */ - typedef struct FT_RendererRec_* FT_Renderer; - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* base_interface */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Face */ - /* */ - /* <Description> */ - /* A handle to a given typographic face object. A face object models */ - /* a given typeface, in a given style. */ - /* */ - /* <Note> */ - /* Each face object also owns a single @FT_GlyphSlot object, as well */ - /* as one or more @FT_Size objects. */ - /* */ - /* Use @FT_New_Face or @FT_Open_Face to create a new face object from */ - /* a given filepathname or a custom input stream. */ - /* */ - /* Use @FT_Done_Face to destroy it (along with its slot and sizes). */ - /* */ - /* <Also> */ - /* See @FT_FaceRec for the publicly accessible fields of a given face */ - /* object. */ - /* */ - typedef struct FT_FaceRec_* FT_Face; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Size */ - /* */ - /* <Description> */ - /* A handle to an object used to model a face scaled to a given */ - /* character size. */ - /* */ - /* <Note> */ - /* Each @FT_Face has an _active_ @FT_Size object that is used by */ - /* functions like @FT_Load_Glyph to determine the scaling */ - /* transformation that in turn is used to load and hint glyphs and */ - /* metrics. */ - /* */ - /* You can use @FT_Set_Char_Size, @FT_Set_Pixel_Sizes, */ - /* @FT_Request_Size or even @FT_Select_Size to change the content */ - /* (i.e., the scaling values) of the active @FT_Size. */ - /* */ - /* You can use @FT_New_Size to create additional size objects for a */ - /* given @FT_Face, but they won't be used by other functions until */ - /* you activate it through @FT_Activate_Size. Only one size can be */ - /* activated at any given time per face. */ - /* */ - /* <Also> */ - /* See @FT_SizeRec for the publicly accessible fields of a given size */ - /* object. */ - /* */ - typedef struct FT_SizeRec_* FT_Size; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_GlyphSlot */ - /* */ - /* <Description> */ - /* A handle to a given `glyph slot'. A slot is a container where it */ - /* is possible to load any of the glyphs contained in its parent */ - /* face. */ - /* */ - /* In other words, each time you call @FT_Load_Glyph or */ - /* @FT_Load_Char, the slot's content is erased by the new glyph data, */ - /* i.e., the glyph's metrics, its image (bitmap or outline), and */ - /* other control information. */ - /* */ - /* <Also> */ - /* See @FT_GlyphSlotRec for the publicly accessible glyph fields. */ - /* */ - typedef struct FT_GlyphSlotRec_* FT_GlyphSlot; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_CharMap */ - /* */ - /* <Description> */ - /* A handle to a given character map. A charmap is used to translate */ - /* character codes in a given encoding into glyph indexes for its */ - /* parent's face. Some font formats may provide several charmaps per */ - /* font. */ - /* */ - /* Each face object owns zero or more charmaps, but only one of them */ - /* can be `active' and used by @FT_Get_Char_Index or @FT_Load_Char. */ - /* */ - /* The list of available charmaps in a face is available through the */ - /* `face->num_charmaps' and `face->charmaps' fields of @FT_FaceRec. */ - /* */ - /* The currently active charmap is available as `face->charmap'. */ - /* You should call @FT_Set_Charmap to change it. */ - /* */ - /* <Note> */ - /* When a new face is created (either through @FT_New_Face or */ - /* @FT_Open_Face), the library looks for a Unicode charmap within */ - /* the list and automatically activates it. */ - /* */ - /* <Also> */ - /* See @FT_CharMapRec for the publicly accessible fields of a given */ - /* character map. */ - /* */ - typedef struct FT_CharMapRec_* FT_CharMap; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_ENC_TAG */ - /* */ - /* <Description> */ - /* This macro converts four-letter tags into an unsigned long. It is */ - /* used to define `encoding' identifiers (see @FT_Encoding). */ - /* */ - /* <Note> */ - /* Since many 16-bit compilers don't like 32-bit enumerations, you */ - /* should redefine this macro in case of problems to something like */ - /* this: */ - /* */ - /* { */ - /* #define FT_ENC_TAG( value, a, b, c, d ) value */ - /* } */ - /* */ - /* to get a simple enumeration without assigning special numbers. */ - /* */ - -#ifndef FT_ENC_TAG -#define FT_ENC_TAG( value, a, b, c, d ) \ - value = ( ( (FT_UInt32)(a) << 24 ) | \ - ( (FT_UInt32)(b) << 16 ) | \ - ( (FT_UInt32)(c) << 8 ) | \ - (FT_UInt32)(d) ) - -#endif /* FT_ENC_TAG */ - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Encoding */ - /* */ - /* <Description> */ - /* An enumeration used to specify character sets supported by */ - /* charmaps. Used in the @FT_Select_Charmap API function. */ - /* */ - /* <Note> */ - /* Despite the name, this enumeration lists specific character */ - /* repertories (i.e., charsets), and not text encoding methods (e.g., */ - /* UTF-8, UTF-16, etc.). */ - /* */ - /* Other encodings might be defined in the future. */ - /* */ - /* <Values> */ - /* FT_ENCODING_NONE :: */ - /* The encoding value~0 is reserved. */ - /* */ - /* FT_ENCODING_UNICODE :: */ - /* Corresponds to the Unicode character set. This value covers */ - /* all versions of the Unicode repertoire, including ASCII and */ - /* Latin-1. Most fonts include a Unicode charmap, but not all */ - /* of them. */ - /* */ - /* For example, if you want to access Unicode value U+1F028 (and */ - /* the font contains it), use value 0x1F028 as the input value for */ - /* @FT_Get_Char_Index. */ - /* */ - /* FT_ENCODING_MS_SYMBOL :: */ - /* Corresponds to the Microsoft Symbol encoding, used to encode */ - /* mathematical symbols in the 32..255 character code range. For */ - /* more information, see */ - /* `http://www.kostis.net/charsets/symbol.htm'. */ - /* */ - /* FT_ENCODING_SJIS :: */ - /* Corresponds to Japanese SJIS encoding. More info at */ - /* at `http://en.wikipedia.org/wiki/Shift_JIS'. */ - /* See note on multi-byte encodings below. */ - /* */ - /* FT_ENCODING_GB2312 :: */ - /* Corresponds to an encoding system for Simplified Chinese as used */ - /* used in mainland China. */ - /* */ - /* FT_ENCODING_BIG5 :: */ - /* Corresponds to an encoding system for Traditional Chinese as */ - /* used in Taiwan and Hong Kong. */ - /* */ - /* FT_ENCODING_WANSUNG :: */ - /* Corresponds to the Korean encoding system known as Wansung. */ - /* For more information see */ - /* `http://msdn.microsoft.com/en-US/goglobal/cc305154'. */ - /* */ - /* FT_ENCODING_JOHAB :: */ - /* The Korean standard character set (KS~C 5601-1992), which */ - /* corresponds to MS Windows code page 1361. This character set */ - /* includes all possible Hangeul character combinations. */ - /* */ - /* FT_ENCODING_ADOBE_LATIN_1 :: */ - /* Corresponds to a Latin-1 encoding as defined in a Type~1 */ - /* PostScript font. It is limited to 256 character codes. */ - /* */ - /* FT_ENCODING_ADOBE_STANDARD :: */ - /* Corresponds to the Adobe Standard encoding, as found in Type~1, */ - /* CFF, and OpenType/CFF fonts. It is limited to 256 character */ - /* codes. */ - /* */ - /* FT_ENCODING_ADOBE_EXPERT :: */ - /* Corresponds to the Adobe Expert encoding, as found in Type~1, */ - /* CFF, and OpenType/CFF fonts. It is limited to 256 character */ - /* codes. */ - /* */ - /* FT_ENCODING_ADOBE_CUSTOM :: */ - /* Corresponds to a custom encoding, as found in Type~1, CFF, and */ - /* OpenType/CFF fonts. It is limited to 256 character codes. */ - /* */ - /* FT_ENCODING_APPLE_ROMAN :: */ - /* Corresponds to the 8-bit Apple roman encoding. Many TrueType */ - /* and OpenType fonts contain a charmap for this encoding, since */ - /* older versions of Mac OS are able to use it. */ - /* */ - /* FT_ENCODING_OLD_LATIN_2 :: */ - /* This value is deprecated and was never used nor reported by */ - /* FreeType. Don't use or test for it. */ - /* */ - /* FT_ENCODING_MS_SJIS :: */ - /* Same as FT_ENCODING_SJIS. Deprecated. */ - /* */ - /* FT_ENCODING_MS_GB2312 :: */ - /* Same as FT_ENCODING_GB2312. Deprecated. */ - /* */ - /* FT_ENCODING_MS_BIG5 :: */ - /* Same as FT_ENCODING_BIG5. Deprecated. */ - /* */ - /* FT_ENCODING_MS_WANSUNG :: */ - /* Same as FT_ENCODING_WANSUNG. Deprecated. */ - /* */ - /* FT_ENCODING_MS_JOHAB :: */ - /* Same as FT_ENCODING_JOHAB. Deprecated. */ - /* */ - /* <Note> */ - /* By default, FreeType automatically synthesizes a Unicode charmap */ - /* for PostScript fonts, using their glyph names dictionaries. */ - /* However, it also reports the encodings defined explicitly in the */ - /* font file, for the cases when they are needed, with the Adobe */ - /* values as well. */ - /* */ - /* FT_ENCODING_NONE is set by the BDF and PCF drivers if the charmap */ - /* is neither Unicode nor ISO-8859-1 (otherwise it is set to */ - /* FT_ENCODING_UNICODE). Use @FT_Get_BDF_Charset_ID to find out */ - /* which encoding is really present. If, for example, the */ - /* `cs_registry' field is `KOI8' and the `cs_encoding' field is `R', */ - /* the font is encoded in KOI8-R. */ - /* */ - /* FT_ENCODING_NONE is always set (with a single exception) by the */ - /* winfonts driver. Use @FT_Get_WinFNT_Header and examine the */ - /* `charset' field of the @FT_WinFNT_HeaderRec structure to find out */ - /* which encoding is really present. For example, */ - /* @FT_WinFNT_ID_CP1251 (204) means Windows code page 1251 (for */ - /* Russian). */ - /* */ - /* FT_ENCODING_NONE is set if `platform_id' is @TT_PLATFORM_MACINTOSH */ - /* and `encoding_id' is not @TT_MAC_ID_ROMAN (otherwise it is set to */ - /* FT_ENCODING_APPLE_ROMAN). */ - /* */ - /* If `platform_id' is @TT_PLATFORM_MACINTOSH, use the function */ - /* @FT_Get_CMap_Language_ID to query the Mac language ID that may */ - /* be needed to be able to distinguish Apple encoding variants. See */ - /* */ - /* http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt */ - /* */ - /* to get an idea how to do that. Basically, if the language ID */ - /* is~0, don't use it, otherwise subtract 1 from the language ID. */ - /* Then examine `encoding_id'. If, for example, `encoding_id' is */ - /* @TT_MAC_ID_ROMAN and the language ID (minus~1) is */ - /* `TT_MAC_LANGID_GREEK', it is the Greek encoding, not Roman. */ - /* @TT_MAC_ID_ARABIC with `TT_MAC_LANGID_FARSI' means the Farsi */ - /* variant the Arabic encoding. */ - /* */ - typedef enum FT_Encoding_ - { - FT_ENC_TAG( FT_ENCODING_NONE, 0, 0, 0, 0 ), - - FT_ENC_TAG( FT_ENCODING_MS_SYMBOL, 's', 'y', 'm', 'b' ), - FT_ENC_TAG( FT_ENCODING_UNICODE, 'u', 'n', 'i', 'c' ), - - FT_ENC_TAG( FT_ENCODING_SJIS, 's', 'j', 'i', 's' ), - FT_ENC_TAG( FT_ENCODING_GB2312, 'g', 'b', ' ', ' ' ), - FT_ENC_TAG( FT_ENCODING_BIG5, 'b', 'i', 'g', '5' ), - FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ), - FT_ENC_TAG( FT_ENCODING_JOHAB, 'j', 'o', 'h', 'a' ), - - /* for backwards compatibility */ - FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS, - FT_ENCODING_MS_GB2312 = FT_ENCODING_GB2312, - FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5, - FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG, - FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB, - - FT_ENC_TAG( FT_ENCODING_ADOBE_STANDARD, 'A', 'D', 'O', 'B' ), - FT_ENC_TAG( FT_ENCODING_ADOBE_EXPERT, 'A', 'D', 'B', 'E' ), - FT_ENC_TAG( FT_ENCODING_ADOBE_CUSTOM, 'A', 'D', 'B', 'C' ), - FT_ENC_TAG( FT_ENCODING_ADOBE_LATIN_1, 'l', 'a', 't', '1' ), - - FT_ENC_TAG( FT_ENCODING_OLD_LATIN_2, 'l', 'a', 't', '2' ), - - FT_ENC_TAG( FT_ENCODING_APPLE_ROMAN, 'a', 'r', 'm', 'n' ) - - } FT_Encoding; - - - /* these constants are deprecated; use the corresponding `FT_Encoding' */ - /* values instead */ -#define ft_encoding_none FT_ENCODING_NONE -#define ft_encoding_unicode FT_ENCODING_UNICODE -#define ft_encoding_symbol FT_ENCODING_MS_SYMBOL -#define ft_encoding_latin_1 FT_ENCODING_ADOBE_LATIN_1 -#define ft_encoding_latin_2 FT_ENCODING_OLD_LATIN_2 -#define ft_encoding_sjis FT_ENCODING_SJIS -#define ft_encoding_gb2312 FT_ENCODING_GB2312 -#define ft_encoding_big5 FT_ENCODING_BIG5 -#define ft_encoding_wansung FT_ENCODING_WANSUNG -#define ft_encoding_johab FT_ENCODING_JOHAB - -#define ft_encoding_adobe_standard FT_ENCODING_ADOBE_STANDARD -#define ft_encoding_adobe_expert FT_ENCODING_ADOBE_EXPERT -#define ft_encoding_adobe_custom FT_ENCODING_ADOBE_CUSTOM -#define ft_encoding_apple_roman FT_ENCODING_APPLE_ROMAN - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_CharMapRec */ - /* */ - /* <Description> */ - /* The base charmap structure. */ - /* */ - /* <Fields> */ - /* face :: A handle to the parent face object. */ - /* */ - /* encoding :: An @FT_Encoding tag identifying the charmap. Use */ - /* this with @FT_Select_Charmap. */ - /* */ - /* platform_id :: An ID number describing the platform for the */ - /* following encoding ID. This comes directly from */ - /* the TrueType specification and should be emulated */ - /* for other formats. */ - /* */ - /* encoding_id :: A platform specific encoding number. This also */ - /* comes from the TrueType specification and should be */ - /* emulated similarly. */ - /* */ - typedef struct FT_CharMapRec_ - { - FT_Face face; - FT_Encoding encoding; - FT_UShort platform_id; - FT_UShort encoding_id; - - } FT_CharMapRec; - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* B A S E O B J E C T C L A S S E S */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Face_Internal */ - /* */ - /* <Description> */ - /* An opaque handle to an `FT_Face_InternalRec' structure, used to */ - /* model private data of a given @FT_Face object. */ - /* */ - /* This structure might change between releases of FreeType~2 and is */ - /* not generally available to client applications. */ - /* */ - typedef struct FT_Face_InternalRec_* FT_Face_Internal; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_FaceRec */ - /* */ - /* <Description> */ - /* FreeType root face class structure. A face object models a */ - /* typeface in a font file. */ - /* */ - /* <Fields> */ - /* num_faces :: The number of faces in the font file. Some */ - /* font formats can have multiple faces in */ - /* a font file. */ - /* */ - /* face_index :: The index of the face in the font file. It */ - /* is set to~0 if there is only one face in */ - /* the font file. */ - /* */ - /* face_flags :: A set of bit flags that give important */ - /* information about the face; see */ - /* @FT_FACE_FLAG_XXX for the details. */ - /* */ - /* style_flags :: A set of bit flags indicating the style of */ - /* the face; see @FT_STYLE_FLAG_XXX for the */ - /* details. */ - /* */ - /* num_glyphs :: The number of glyphs in the face. If the */ - /* face is scalable and has sbits (see */ - /* `num_fixed_sizes'), it is set to the number */ - /* of outline glyphs. */ - /* */ - /* For CID-keyed fonts, this value gives the */ - /* highest CID used in the font. */ - /* */ - /* family_name :: The face's family name. This is an ASCII */ - /* string, usually in English, that describes */ - /* the typeface's family (like `Times New */ - /* Roman', `Bodoni', `Garamond', etc). This */ - /* is a least common denominator used to list */ - /* fonts. Some formats (TrueType & OpenType) */ - /* provide localized and Unicode versions of */ - /* this string. Applications should use the */ - /* format specific interface to access them. */ - /* Can be NULL (e.g., in fonts embedded in a */ - /* PDF file). */ - /* */ - /* style_name :: The face's style name. This is an ASCII */ - /* string, usually in English, that describes */ - /* the typeface's style (like `Italic', */ - /* `Bold', `Condensed', etc). Not all font */ - /* formats provide a style name, so this field */ - /* is optional, and can be set to NULL. As */ - /* for `family_name', some formats provide */ - /* localized and Unicode versions of this */ - /* string. Applications should use the format */ - /* specific interface to access them. */ - /* */ - /* num_fixed_sizes :: The number of bitmap strikes in the face. */ - /* Even if the face is scalable, there might */ - /* still be bitmap strikes, which are called */ - /* `sbits' in that case. */ - /* */ - /* available_sizes :: An array of @FT_Bitmap_Size for all bitmap */ - /* strikes in the face. It is set to NULL if */ - /* there is no bitmap strike. */ - /* */ - /* num_charmaps :: The number of charmaps in the face. */ - /* */ - /* charmaps :: An array of the charmaps of the face. */ - /* */ - /* generic :: A field reserved for client uses. See the */ - /* @FT_Generic type description. */ - /* */ - /* bbox :: The font bounding box. Coordinates are */ - /* expressed in font units (see */ - /* `units_per_EM'). The box is large enough */ - /* to contain any glyph from the font. Thus, */ - /* `bbox.yMax' can be seen as the `maximum */ - /* ascender', and `bbox.yMin' as the `minimum */ - /* descender'. Only relevant for scalable */ - /* formats. */ - /* */ - /* Note that the bounding box might be off by */ - /* (at least) one pixel for hinted fonts. See */ - /* @FT_Size_Metrics for further discussion. */ - /* */ - /* units_per_EM :: The number of font units per EM square for */ - /* this face. This is typically 2048 for */ - /* TrueType fonts, and 1000 for Type~1 fonts. */ - /* Only relevant for scalable formats. */ - /* */ - /* ascender :: The typographic ascender of the face, */ - /* expressed in font units. For font formats */ - /* not having this information, it is set to */ - /* `bbox.yMax'. Only relevant for scalable */ - /* formats. */ - /* */ - /* descender :: The typographic descender of the face, */ - /* expressed in font units. For font formats */ - /* not having this information, it is set to */ - /* `bbox.yMin'. Note that this field is */ - /* usually negative. Only relevant for */ - /* scalable formats. */ - /* */ - /* height :: This value is the vertical distance */ - /* between two consecutive baselines, */ - /* expressed in font units. It is always */ - /* positive. Only relevant for scalable */ - /* formats. */ - /* */ - /* If you want the global glyph height, use */ - /* `ascender - descender'. */ - /* */ - /* max_advance_width :: The maximum advance width, in font units, */ - /* for all glyphs in this face. This can be */ - /* used to make word wrapping computations */ - /* faster. Only relevant for scalable */ - /* formats. */ - /* */ - /* max_advance_height :: The maximum advance height, in font units, */ - /* for all glyphs in this face. This is only */ - /* relevant for vertical layouts, and is set */ - /* to `height' for fonts that do not provide */ - /* vertical metrics. Only relevant for */ - /* scalable formats. */ - /* */ - /* underline_position :: The position, in font units, of the */ - /* underline line for this face. It is the */ - /* center of the underlining stem. Only */ - /* relevant for scalable formats. */ - /* */ - /* underline_thickness :: The thickness, in font units, of the */ - /* underline for this face. Only relevant for */ - /* scalable formats. */ - /* */ - /* glyph :: The face's associated glyph slot(s). */ - /* */ - /* size :: The current active size for this face. */ - /* */ - /* charmap :: The current active charmap for this face. */ - /* */ - /* <Note> */ - /* Fields may be changed after a call to @FT_Attach_File or */ - /* @FT_Attach_Stream. */ - /* */ - typedef struct FT_FaceRec_ - { - FT_Long num_faces; - FT_Long face_index; - - FT_Long face_flags; - FT_Long style_flags; - - FT_Long num_glyphs; - - FT_String* family_name; - FT_String* style_name; - - FT_Int num_fixed_sizes; - FT_Bitmap_Size* available_sizes; - - FT_Int num_charmaps; - FT_CharMap* charmaps; - - FT_Generic generic; - - /*# The following member variables (down to `underline_thickness') */ - /*# are only relevant to scalable outlines; cf. @FT_Bitmap_Size */ - /*# for bitmap fonts. */ - FT_BBox bbox; - - FT_UShort units_per_EM; - FT_Short ascender; - FT_Short descender; - FT_Short height; - - FT_Short max_advance_width; - FT_Short max_advance_height; - - FT_Short underline_position; - FT_Short underline_thickness; - - FT_GlyphSlot glyph; - FT_Size size; - FT_CharMap charmap; - - /*@private begin */ - - FT_Driver driver; - FT_Memory memory; - FT_Stream stream; - - FT_ListRec sizes_list; - - FT_Generic autohint; /* face-specific auto-hinter data */ - void* extensions; /* unused */ - - FT_Face_Internal internal; - - /*@private end */ - - } FT_FaceRec; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_FACE_FLAG_XXX */ - /* */ - /* <Description> */ - /* A list of bit flags used in the `face_flags' field of the */ - /* @FT_FaceRec structure. They inform client applications of */ - /* properties of the corresponding face. */ - /* */ - /* <Values> */ - /* FT_FACE_FLAG_SCALABLE :: */ - /* Indicates that the face contains outline glyphs. This doesn't */ - /* prevent bitmap strikes, i.e., a face can have both this and */ - /* and @FT_FACE_FLAG_FIXED_SIZES set. */ - /* */ - /* FT_FACE_FLAG_FIXED_SIZES :: */ - /* Indicates that the face contains bitmap strikes. See also the */ - /* `num_fixed_sizes' and `available_sizes' fields of @FT_FaceRec. */ - /* */ - /* FT_FACE_FLAG_FIXED_WIDTH :: */ - /* Indicates that the face contains fixed-width characters (like */ - /* Courier, Lucido, MonoType, etc.). */ - /* */ - /* FT_FACE_FLAG_SFNT :: */ - /* Indicates that the face uses the `sfnt' storage scheme. For */ - /* now, this means TrueType and OpenType. */ - /* */ - /* FT_FACE_FLAG_HORIZONTAL :: */ - /* Indicates that the face contains horizontal glyph metrics. This */ - /* should be set for all common formats. */ - /* */ - /* FT_FACE_FLAG_VERTICAL :: */ - /* Indicates that the face contains vertical glyph metrics. This */ - /* is only available in some formats, not all of them. */ - /* */ - /* FT_FACE_FLAG_KERNING :: */ - /* Indicates that the face contains kerning information. If set, */ - /* the kerning distance can be retrieved through the function */ - /* @FT_Get_Kerning. Otherwise the function always return the */ - /* vector (0,0). Note that FreeType doesn't handle kerning data */ - /* from the `GPOS' table (as present in some OpenType fonts). */ - /* */ - /* FT_FACE_FLAG_FAST_GLYPHS :: */ - /* THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. */ - /* */ - /* FT_FACE_FLAG_MULTIPLE_MASTERS :: */ - /* Indicates that the font contains multiple masters and is capable */ - /* of interpolating between them. See the multiple-masters */ - /* specific API for details. */ - /* */ - /* FT_FACE_FLAG_GLYPH_NAMES :: */ - /* Indicates that the font contains glyph names that can be */ - /* retrieved through @FT_Get_Glyph_Name. Note that some TrueType */ - /* fonts contain broken glyph name tables. Use the function */ - /* @FT_Has_PS_Glyph_Names when needed. */ - /* */ - /* FT_FACE_FLAG_EXTERNAL_STREAM :: */ - /* Used internally by FreeType to indicate that a face's stream was */ - /* provided by the client application and should not be destroyed */ - /* when @FT_Done_Face is called. Don't read or test this flag. */ - /* */ - /* FT_FACE_FLAG_HINTER :: */ - /* Set if the font driver has a hinting machine of its own. For */ - /* example, with TrueType fonts, it makes sense to use data from */ - /* the SFNT `gasp' table only if the native TrueType hinting engine */ - /* (with the bytecode interpreter) is available and active. */ - /* */ - /* FT_FACE_FLAG_CID_KEYED :: */ - /* Set if the font is CID-keyed. In that case, the font is not */ - /* accessed by glyph indices but by CID values. For subsetted */ - /* CID-keyed fonts this has the consequence that not all index */ - /* values are a valid argument to FT_Load_Glyph. Only the CID */ - /* values for which corresponding glyphs in the subsetted font */ - /* exist make FT_Load_Glyph return successfully; in all other cases */ - /* you get an `FT_Err_Invalid_Argument' error. */ - /* */ - /* Note that CID-keyed fonts that are in an SFNT wrapper don't */ - /* have this flag set since the glyphs are accessed in the normal */ - /* way (using contiguous indices); the `CID-ness' isn't visible to */ - /* the application. */ - /* */ - /* FT_FACE_FLAG_TRICKY :: */ - /* Set if the font is `tricky', this is, it always needs the */ - /* font format's native hinting engine to get a reasonable result. */ - /* A typical example is the Chinese font `mingli.ttf' that uses */ - /* TrueType bytecode instructions to move and scale all of its */ - /* subglyphs. */ - /* */ - /* It is not possible to autohint such fonts using */ - /* @FT_LOAD_FORCE_AUTOHINT; it will also ignore */ - /* @FT_LOAD_NO_HINTING. You have to set both @FT_LOAD_NO_HINTING */ - /* and @FT_LOAD_NO_AUTOHINT to really disable hinting; however, you */ - /* probably never want this except for demonstration purposes. */ - /* */ - /* Currently, there are about a dozen TrueType fonts in the list of */ - /* tricky fonts; they are hard-coded in file `ttobjs.c'. */ - /* */ - /* FT_FACE_FLAG_COLOR :: */ - /* Set if the font has color glyph tables. To access color glyphs */ - /* use @FT_LOAD_COLOR. */ - /* */ -#define FT_FACE_FLAG_SCALABLE ( 1L << 0 ) -#define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 ) -#define FT_FACE_FLAG_FIXED_WIDTH ( 1L << 2 ) -#define FT_FACE_FLAG_SFNT ( 1L << 3 ) -#define FT_FACE_FLAG_HORIZONTAL ( 1L << 4 ) -#define FT_FACE_FLAG_VERTICAL ( 1L << 5 ) -#define FT_FACE_FLAG_KERNING ( 1L << 6 ) -#define FT_FACE_FLAG_FAST_GLYPHS ( 1L << 7 ) -#define FT_FACE_FLAG_MULTIPLE_MASTERS ( 1L << 8 ) -#define FT_FACE_FLAG_GLYPH_NAMES ( 1L << 9 ) -#define FT_FACE_FLAG_EXTERNAL_STREAM ( 1L << 10 ) -#define FT_FACE_FLAG_HINTER ( 1L << 11 ) -#define FT_FACE_FLAG_CID_KEYED ( 1L << 12 ) -#define FT_FACE_FLAG_TRICKY ( 1L << 13 ) -#define FT_FACE_FLAG_COLOR ( 1L << 14 ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_HORIZONTAL( face ) - * - * @description: - * A macro that returns true whenever a face object contains - * horizontal metrics (this is true for all font formats though). - * - * @also: - * @FT_HAS_VERTICAL can be used to check for vertical metrics. - * - */ -#define FT_HAS_HORIZONTAL( face ) \ - ( face->face_flags & FT_FACE_FLAG_HORIZONTAL ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_VERTICAL( face ) - * - * @description: - * A macro that returns true whenever a face object contains real - * vertical metrics (and not only synthesized ones). - * - */ -#define FT_HAS_VERTICAL( face ) \ - ( face->face_flags & FT_FACE_FLAG_VERTICAL ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_KERNING( face ) - * - * @description: - * A macro that returns true whenever a face object contains kerning - * data that can be accessed with @FT_Get_Kerning. - * - */ -#define FT_HAS_KERNING( face ) \ - ( face->face_flags & FT_FACE_FLAG_KERNING ) - - - /************************************************************************* - * - * @macro: - * FT_IS_SCALABLE( face ) - * - * @description: - * A macro that returns true whenever a face object contains a scalable - * font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF, - * and PFR font formats. - * - */ -#define FT_IS_SCALABLE( face ) \ - ( face->face_flags & FT_FACE_FLAG_SCALABLE ) - - - /************************************************************************* - * - * @macro: - * FT_IS_SFNT( face ) - * - * @description: - * A macro that returns true whenever a face object contains a font - * whose format is based on the SFNT storage scheme. This usually - * means: TrueType fonts, OpenType fonts, as well as SFNT-based embedded - * bitmap fonts. - * - * If this macro is true, all functions defined in @FT_SFNT_NAMES_H and - * @FT_TRUETYPE_TABLES_H are available. - * - */ -#define FT_IS_SFNT( face ) \ - ( face->face_flags & FT_FACE_FLAG_SFNT ) - - - /************************************************************************* - * - * @macro: - * FT_IS_FIXED_WIDTH( face ) - * - * @description: - * A macro that returns true whenever a face object contains a font face - * that contains fixed-width (or `monospace', `fixed-pitch', etc.) - * glyphs. - * - */ -#define FT_IS_FIXED_WIDTH( face ) \ - ( face->face_flags & FT_FACE_FLAG_FIXED_WIDTH ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_FIXED_SIZES( face ) - * - * @description: - * A macro that returns true whenever a face object contains some - * embedded bitmaps. See the `available_sizes' field of the - * @FT_FaceRec structure. - * - */ -#define FT_HAS_FIXED_SIZES( face ) \ - ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_FAST_GLYPHS( face ) - * - * @description: - * Deprecated. - * - */ -#define FT_HAS_FAST_GLYPHS( face ) 0 - - - /************************************************************************* - * - * @macro: - * FT_HAS_GLYPH_NAMES( face ) - * - * @description: - * A macro that returns true whenever a face object contains some glyph - * names that can be accessed through @FT_Get_Glyph_Name. - * - */ -#define FT_HAS_GLYPH_NAMES( face ) \ - ( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_MULTIPLE_MASTERS( face ) - * - * @description: - * A macro that returns true whenever a face object contains some - * multiple masters. The functions provided by @FT_MULTIPLE_MASTERS_H - * are then available to choose the exact design you want. - * - */ -#define FT_HAS_MULTIPLE_MASTERS( face ) \ - ( face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS ) - - - /************************************************************************* - * - * @macro: - * FT_IS_CID_KEYED( face ) - * - * @description: - * A macro that returns true whenever a face object contains a CID-keyed - * font. See the discussion of @FT_FACE_FLAG_CID_KEYED for more - * details. - * - * If this macro is true, all functions defined in @FT_CID_H are - * available. - * - */ -#define FT_IS_CID_KEYED( face ) \ - ( face->face_flags & FT_FACE_FLAG_CID_KEYED ) - - - /************************************************************************* - * - * @macro: - * FT_IS_TRICKY( face ) - * - * @description: - * A macro that returns true whenever a face represents a `tricky' font. - * See the discussion of @FT_FACE_FLAG_TRICKY for more details. - * - */ -#define FT_IS_TRICKY( face ) \ - ( face->face_flags & FT_FACE_FLAG_TRICKY ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_COLOR( face ) - * - * @description: - * A macro that returns true whenever a face object contains - * tables for color glyphs. - * - */ -#define FT_HAS_COLOR( face ) \ - ( face->face_flags & FT_FACE_FLAG_COLOR ) - - - /*************************************************************************/ - /* */ - /* <Const> */ - /* FT_STYLE_FLAG_XXX */ - /* */ - /* <Description> */ - /* A list of bit-flags used to indicate the style of a given face. */ - /* These are used in the `style_flags' field of @FT_FaceRec. */ - /* */ - /* <Values> */ - /* FT_STYLE_FLAG_ITALIC :: */ - /* Indicates that a given face style is italic or oblique. */ - /* */ - /* FT_STYLE_FLAG_BOLD :: */ - /* Indicates that a given face is bold. */ - /* */ - /* <Note> */ - /* The style information as provided by FreeType is very basic. More */ - /* details are beyond the scope and should be done on a higher level */ - /* (for example, by analyzing various fields of the `OS/2' table in */ - /* SFNT based fonts). */ - /* */ -#define FT_STYLE_FLAG_ITALIC ( 1 << 0 ) -#define FT_STYLE_FLAG_BOLD ( 1 << 1 ) - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Size_Internal */ - /* */ - /* <Description> */ - /* An opaque handle to an `FT_Size_InternalRec' structure, used to */ - /* model private data of a given @FT_Size object. */ - /* */ - typedef struct FT_Size_InternalRec_* FT_Size_Internal; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_Metrics */ - /* */ - /* <Description> */ - /* The size metrics structure gives the metrics of a size object. */ - /* */ - /* <Fields> */ - /* x_ppem :: The width of the scaled EM square in pixels, hence */ - /* the term `ppem' (pixels per EM). It is also */ - /* referred to as `nominal width'. */ - /* */ - /* y_ppem :: The height of the scaled EM square in pixels, */ - /* hence the term `ppem' (pixels per EM). It is also */ - /* referred to as `nominal height'. */ - /* */ - /* x_scale :: A 16.16 fractional scaling value used to convert */ - /* horizontal metrics from font units to 26.6 */ - /* fractional pixels. Only relevant for scalable */ - /* font formats. */ - /* */ - /* y_scale :: A 16.16 fractional scaling value used to convert */ - /* vertical metrics from font units to 26.6 */ - /* fractional pixels. Only relevant for scalable */ - /* font formats. */ - /* */ - /* ascender :: The ascender in 26.6 fractional pixels. See */ - /* @FT_FaceRec for the details. */ - /* */ - /* descender :: The descender in 26.6 fractional pixels. See */ - /* @FT_FaceRec for the details. */ - /* */ - /* height :: The height in 26.6 fractional pixels. See */ - /* @FT_FaceRec for the details. */ - /* */ - /* max_advance :: The maximum advance width in 26.6 fractional */ - /* pixels. See @FT_FaceRec for the details. */ - /* */ - /* <Note> */ - /* The scaling values, if relevant, are determined first during a */ - /* size changing operation. The remaining fields are then set by the */ - /* driver. For scalable formats, they are usually set to scaled */ - /* values of the corresponding fields in @FT_FaceRec. */ - /* */ - /* Note that due to glyph hinting, these values might not be exact */ - /* for certain fonts. Thus they must be treated as unreliable */ - /* with an error margin of at least one pixel! */ - /* */ - /* Indeed, the only way to get the exact metrics is to render _all_ */ - /* glyphs. As this would be a definite performance hit, it is up to */ - /* client applications to perform such computations. */ - /* */ - /* The FT_Size_Metrics structure is valid for bitmap fonts also. */ - /* */ - typedef struct FT_Size_Metrics_ - { - FT_UShort x_ppem; /* horizontal pixels per EM */ - FT_UShort y_ppem; /* vertical pixels per EM */ - - FT_Fixed x_scale; /* scaling values used to convert font */ - FT_Fixed y_scale; /* units to 26.6 fractional pixels */ - - FT_Pos ascender; /* ascender in 26.6 frac. pixels */ - FT_Pos descender; /* descender in 26.6 frac. pixels */ - FT_Pos height; /* text height in 26.6 frac. pixels */ - FT_Pos max_advance; /* max horizontal advance, in 26.6 pixels */ - - } FT_Size_Metrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_SizeRec */ - /* */ - /* <Description> */ - /* FreeType root size class structure. A size object models a face */ - /* object at a given size. */ - /* */ - /* <Fields> */ - /* face :: Handle to the parent face object. */ - /* */ - /* generic :: A typeless pointer, unused by the FreeType library or */ - /* any of its drivers. It can be used by client */ - /* applications to link their own data to each size */ - /* object. */ - /* */ - /* metrics :: Metrics for this size object. This field is read-only. */ - /* */ - typedef struct FT_SizeRec_ - { - FT_Face face; /* parent face object */ - FT_Generic generic; /* generic pointer for client uses */ - FT_Size_Metrics metrics; /* size metrics */ - FT_Size_Internal internal; - - } FT_SizeRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_SubGlyph */ - /* */ - /* <Description> */ - /* The subglyph structure is an internal object used to describe */ - /* subglyphs (for example, in the case of composites). */ - /* */ - /* <Note> */ - /* The subglyph implementation is not part of the high-level API, */ - /* hence the forward structure declaration. */ - /* */ - /* You can however retrieve subglyph information with */ - /* @FT_Get_SubGlyph_Info. */ - /* */ - typedef struct FT_SubGlyphRec_* FT_SubGlyph; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Slot_Internal */ - /* */ - /* <Description> */ - /* An opaque handle to an `FT_Slot_InternalRec' structure, used to */ - /* model private data of a given @FT_GlyphSlot object. */ - /* */ - typedef struct FT_Slot_InternalRec_* FT_Slot_Internal; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_GlyphSlotRec */ - /* */ - /* <Description> */ - /* FreeType root glyph slot class structure. A glyph slot is a */ - /* container where individual glyphs can be loaded, be they in */ - /* outline or bitmap format. */ - /* */ - /* <Fields> */ - /* library :: A handle to the FreeType library instance */ - /* this slot belongs to. */ - /* */ - /* face :: A handle to the parent face object. */ - /* */ - /* next :: In some cases (like some font tools), several */ - /* glyph slots per face object can be a good */ - /* thing. As this is rare, the glyph slots are */ - /* listed through a direct, single-linked list */ - /* using its `next' field. */ - /* */ - /* generic :: A typeless pointer unused by the FreeType */ - /* library or any of its drivers. It can be */ - /* used by client applications to link their own */ - /* data to each glyph slot object. */ - /* */ - /* metrics :: The metrics of the last loaded glyph in the */ - /* slot. The returned values depend on the last */ - /* load flags (see the @FT_Load_Glyph API */ - /* function) and can be expressed either in 26.6 */ - /* fractional pixels or font units. */ - /* */ - /* Note that even when the glyph image is */ - /* transformed, the metrics are not. */ - /* */ - /* linearHoriAdvance :: The advance width of the unhinted glyph. */ - /* Its value is expressed in 16.16 fractional */ - /* pixels, unless @FT_LOAD_LINEAR_DESIGN is set */ - /* when loading the glyph. This field can be */ - /* important to perform correct WYSIWYG layout. */ - /* Only relevant for outline glyphs. */ - /* */ - /* linearVertAdvance :: The advance height of the unhinted glyph. */ - /* Its value is expressed in 16.16 fractional */ - /* pixels, unless @FT_LOAD_LINEAR_DESIGN is set */ - /* when loading the glyph. This field can be */ - /* important to perform correct WYSIWYG layout. */ - /* Only relevant for outline glyphs. */ - /* */ - /* advance :: This shorthand is, depending on */ - /* @FT_LOAD_IGNORE_TRANSFORM, the transformed */ - /* (hinted) advance width for the glyph, in 26.6 */ - /* fractional pixel format. As specified with */ - /* @FT_LOAD_VERTICAL_LAYOUT, it uses either the */ - /* `horiAdvance' or the `vertAdvance' value of */ - /* `metrics' field. */ - /* */ - /* format :: This field indicates the format of the image */ - /* contained in the glyph slot. Typically */ - /* @FT_GLYPH_FORMAT_BITMAP, */ - /* @FT_GLYPH_FORMAT_OUTLINE, or */ - /* @FT_GLYPH_FORMAT_COMPOSITE, but others are */ - /* possible. */ - /* */ - /* bitmap :: This field is used as a bitmap descriptor */ - /* when the slot format is */ - /* @FT_GLYPH_FORMAT_BITMAP. Note that the */ - /* address and content of the bitmap buffer can */ - /* change between calls of @FT_Load_Glyph and a */ - /* few other functions. */ - /* */ - /* bitmap_left :: The bitmap's left bearing expressed in */ - /* integer pixels. Only valid if the format is */ - /* @FT_GLYPH_FORMAT_BITMAP, this is, if the */ - /* glyph slot contains a bitmap. */ - /* */ - /* bitmap_top :: The bitmap's top bearing expressed in integer */ - /* pixels. Remember that this is the distance */ - /* from the baseline to the top-most glyph */ - /* scanline, upwards y~coordinates being */ - /* *positive*. */ - /* */ - /* outline :: The outline descriptor for the current glyph */ - /* image if its format is */ - /* @FT_GLYPH_FORMAT_OUTLINE. Once a glyph is */ - /* loaded, `outline' can be transformed, */ - /* distorted, embolded, etc. However, it must */ - /* not be freed. */ - /* */ - /* num_subglyphs :: The number of subglyphs in a composite glyph. */ - /* This field is only valid for the composite */ - /* glyph format that should normally only be */ - /* loaded with the @FT_LOAD_NO_RECURSE flag. */ - /* */ - /* subglyphs :: An array of subglyph descriptors for */ - /* composite glyphs. There are `num_subglyphs' */ - /* elements in there. Currently internal to */ - /* FreeType. */ - /* */ - /* control_data :: Certain font drivers can also return the */ - /* control data for a given glyph image (e.g. */ - /* TrueType bytecode, Type~1 charstrings, etc.). */ - /* This field is a pointer to such data. */ - /* */ - /* control_len :: This is the length in bytes of the control */ - /* data. */ - /* */ - /* other :: Really wicked formats can use this pointer to */ - /* present their own glyph image to client */ - /* applications. Note that the application */ - /* needs to know about the image format. */ - /* */ - /* lsb_delta :: The difference between hinted and unhinted */ - /* left side bearing while autohinting is */ - /* active. Zero otherwise. */ - /* */ - /* rsb_delta :: The difference between hinted and unhinted */ - /* right side bearing while autohinting is */ - /* active. Zero otherwise. */ - /* */ - /* <Note> */ - /* If @FT_Load_Glyph is called with default flags (see */ - /* @FT_LOAD_DEFAULT) the glyph image is loaded in the glyph slot in */ - /* its native format (e.g., an outline glyph for TrueType and Type~1 */ - /* formats). */ - /* */ - /* This image can later be converted into a bitmap by calling */ - /* @FT_Render_Glyph. This function finds the current renderer for */ - /* the native image's format, then invokes it. */ - /* */ - /* The renderer is in charge of transforming the native image through */ - /* the slot's face transformation fields, then converting it into a */ - /* bitmap that is returned in `slot->bitmap'. */ - /* */ - /* Note that `slot->bitmap_left' and `slot->bitmap_top' are also used */ - /* to specify the position of the bitmap relative to the current pen */ - /* position (e.g., coordinates (0,0) on the baseline). Of course, */ - /* `slot->format' is also changed to @FT_GLYPH_FORMAT_BITMAP. */ - /* */ - /* <Note> */ - /* Here a small pseudo code fragment that shows how to use */ - /* `lsb_delta' and `rsb_delta': */ - /* */ - /* { */ - /* FT_Pos origin_x = 0; */ - /* FT_Pos prev_rsb_delta = 0; */ - /* */ - /* */ - /* for all glyphs do */ - /* <compute kern between current and previous glyph and add it to */ - /* `origin_x'> */ - /* */ - /* <load glyph with `FT_Load_Glyph'> */ - /* */ - /* if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 ) */ - /* origin_x -= 64; */ - /* else if ( prev_rsb_delta - face->glyph->lsb_delta < -32 ) */ - /* origin_x += 64; */ - /* */ - /* prev_rsb_delta = face->glyph->rsb_delta; */ - /* */ - /* <save glyph image, or render glyph, or ...> */ - /* */ - /* origin_x += face->glyph->advance.x; */ - /* endfor */ - /* } */ - /* */ - typedef struct FT_GlyphSlotRec_ - { - FT_Library library; - FT_Face face; - FT_GlyphSlot next; - FT_UInt reserved; /* retained for binary compatibility */ - FT_Generic generic; - - FT_Glyph_Metrics metrics; - FT_Fixed linearHoriAdvance; - FT_Fixed linearVertAdvance; - FT_Vector advance; - - FT_Glyph_Format format; - - FT_Bitmap bitmap; - FT_Int bitmap_left; - FT_Int bitmap_top; - - FT_Outline outline; - - FT_UInt num_subglyphs; - FT_SubGlyph subglyphs; - - void* control_data; - long control_len; - - FT_Pos lsb_delta; - FT_Pos rsb_delta; - - void* other; - - FT_Slot_Internal internal; - - } FT_GlyphSlotRec; - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* F U N C T I O N S */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Init_FreeType */ - /* */ - /* <Description> */ - /* Initialize a new FreeType library object. The set of modules */ - /* that are registered by this function is determined at build time. */ - /* */ - /* <Output> */ - /* alibrary :: A handle to a new library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* In case you want to provide your own memory allocating routines, */ - /* use @FT_New_Library instead, followed by a call to */ - /* @FT_Add_Default_Modules (or a series of calls to @FT_Add_Module). */ - /* */ - /* For multi-threading applications each thread should have its own */ - /* FT_Library object. */ - /* */ - /* If you need reference-counting (cf. @FT_Reference_Library), use */ - /* @FT_New_Library and @FT_Done_Library. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Init_FreeType( FT_Library *alibrary ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_FreeType */ - /* */ - /* <Description> */ - /* Destroy a given FreeType library object and all of its children, */ - /* including resources, drivers, faces, sizes, etc. */ - /* */ - /* <Input> */ - /* library :: A handle to the target library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Done_FreeType( FT_Library library ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_OPEN_XXX */ - /* */ - /* <Description> */ - /* A list of bit-field constants used within the `flags' field of the */ - /* @FT_Open_Args structure. */ - /* */ - /* <Values> */ - /* FT_OPEN_MEMORY :: This is a memory-based stream. */ - /* */ - /* FT_OPEN_STREAM :: Copy the stream from the `stream' field. */ - /* */ - /* FT_OPEN_PATHNAME :: Create a new input stream from a C~path */ - /* name. */ - /* */ - /* FT_OPEN_DRIVER :: Use the `driver' field. */ - /* */ - /* FT_OPEN_PARAMS :: Use the `num_params' and `params' fields. */ - /* */ - /* <Note> */ - /* The `FT_OPEN_MEMORY', `FT_OPEN_STREAM', and `FT_OPEN_PATHNAME' */ - /* flags are mutually exclusive. */ - /* */ -#define FT_OPEN_MEMORY 0x1 -#define FT_OPEN_STREAM 0x2 -#define FT_OPEN_PATHNAME 0x4 -#define FT_OPEN_DRIVER 0x8 -#define FT_OPEN_PARAMS 0x10 - - - /* these constants are deprecated; use the corresponding `FT_OPEN_XXX' */ - /* values instead */ -#define ft_open_memory FT_OPEN_MEMORY -#define ft_open_stream FT_OPEN_STREAM -#define ft_open_pathname FT_OPEN_PATHNAME -#define ft_open_driver FT_OPEN_DRIVER -#define ft_open_params FT_OPEN_PARAMS - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Parameter */ - /* */ - /* <Description> */ - /* A simple structure used to pass more or less generic parameters to */ - /* @FT_Open_Face. */ - /* */ - /* <Fields> */ - /* tag :: A four-byte identification tag. */ - /* */ - /* data :: A pointer to the parameter data. */ - /* */ - /* <Note> */ - /* The ID and function of parameters are driver-specific. See the */ - /* various FT_PARAM_TAG_XXX flags for more information. */ - /* */ - typedef struct FT_Parameter_ - { - FT_ULong tag; - FT_Pointer data; - - } FT_Parameter; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Open_Args */ - /* */ - /* <Description> */ - /* A structure used to indicate how to open a new font file or */ - /* stream. A pointer to such a structure can be used as a parameter */ - /* for the functions @FT_Open_Face and @FT_Attach_Stream. */ - /* */ - /* <Fields> */ - /* flags :: A set of bit flags indicating how to use the */ - /* structure. */ - /* */ - /* memory_base :: The first byte of the file in memory. */ - /* */ - /* memory_size :: The size in bytes of the file in memory. */ - /* */ - /* pathname :: A pointer to an 8-bit file pathname. */ - /* */ - /* stream :: A handle to a source stream object. */ - /* */ - /* driver :: This field is exclusively used by @FT_Open_Face; */ - /* it simply specifies the font driver to use to open */ - /* the face. If set to~0, FreeType tries to load the */ - /* face with each one of the drivers in its list. */ - /* */ - /* num_params :: The number of extra parameters. */ - /* */ - /* params :: Extra parameters passed to the font driver when */ - /* opening a new face. */ - /* */ - /* <Note> */ - /* The stream type is determined by the contents of `flags' that */ - /* are tested in the following order by @FT_Open_Face: */ - /* */ - /* If the @FT_OPEN_MEMORY bit is set, assume that this is a */ - /* memory file of `memory_size' bytes, located at `memory_address'. */ - /* The data are are not copied, and the client is responsible for */ - /* releasing and destroying them _after_ the corresponding call to */ - /* @FT_Done_Face. */ - /* */ - /* Otherwise, if the @FT_OPEN_STREAM bit is set, assume that a */ - /* custom input stream `stream' is used. */ - /* */ - /* Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this */ - /* is a normal file and use `pathname' to open it. */ - /* */ - /* If the @FT_OPEN_DRIVER bit is set, @FT_Open_Face only tries to */ - /* open the file with the driver whose handler is in `driver'. */ - /* */ - /* If the @FT_OPEN_PARAMS bit is set, the parameters given by */ - /* `num_params' and `params' is used. They are ignored otherwise. */ - /* */ - /* Ideally, both the `pathname' and `params' fields should be tagged */ - /* as `const'; this is missing for API backwards compatibility. In */ - /* other words, applications should treat them as read-only. */ - /* */ - typedef struct FT_Open_Args_ - { - FT_UInt flags; - const FT_Byte* memory_base; - FT_Long memory_size; - FT_String* pathname; - FT_Stream stream; - FT_Module driver; - FT_Int num_params; - FT_Parameter* params; - - } FT_Open_Args; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face */ - /* */ - /* <Description> */ - /* This function calls @FT_Open_Face to open a font by its pathname. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* pathname :: A path to the font file. */ - /* */ - /* face_index :: The index of the face within the font. The first */ - /* face has index~0. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. If `face_index' is */ - /* greater than or equal to zero, it must be non-NULL. */ - /* See @FT_Open_Face for more details. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Use @FT_Done_Face to destroy the created @FT_Face object (along */ - /* with its slot and sizes). */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Face( FT_Library library, - const char* filepathname, - FT_Long face_index, - FT_Face *aface ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Memory_Face */ - /* */ - /* <Description> */ - /* This function calls @FT_Open_Face to open a font that has been */ - /* loaded into memory. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* file_base :: A pointer to the beginning of the font data. */ - /* */ - /* file_size :: The size of the memory chunk used by the font data. */ - /* */ - /* face_index :: The index of the face within the font. The first */ - /* face has index~0. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. If `face_index' is */ - /* greater than or equal to zero, it must be non-NULL. */ - /* See @FT_Open_Face for more details. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You must not deallocate the memory before calling @FT_Done_Face. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Memory_Face( FT_Library library, - const FT_Byte* file_base, - FT_Long file_size, - FT_Long face_index, - FT_Face *aface ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Open_Face */ - /* */ - /* <Description> */ - /* Create a face object from a given resource described by */ - /* @FT_Open_Args. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* args :: A pointer to an `FT_Open_Args' structure that must */ - /* be filled by the caller. */ - /* */ - /* face_index :: The index of the face within the font. The first */ - /* face has index~0. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. If `face_index' is */ - /* greater than or equal to zero, it must be non-NULL. */ - /* See note below. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Unlike FreeType 1.x, this function automatically creates a glyph */ - /* slot for the face object that can be accessed directly through */ - /* `face->glyph'. */ - /* */ - /* FT_Open_Face can be used to quickly check whether the font */ - /* format of a given font resource is supported by FreeType. If the */ - /* `face_index' field is negative, the function's return value is~0 */ - /* if the font format is recognized, or non-zero otherwise; */ - /* the function returns a more or less empty face handle in `*aface' */ - /* (if `aface' isn't NULL). The only useful field in this special */ - /* case is `face->num_faces' that gives the number of faces within */ - /* the font file. After examination, the returned @FT_Face structure */ - /* should be deallocated with a call to @FT_Done_Face. */ - /* */ - /* Each new face object created with this function also owns a */ - /* default @FT_Size object, accessible as `face->size'. */ - /* */ - /* One @FT_Library instance can have multiple face objects, this is, */ - /* @FT_Open_Face and its siblings can be called multiple times using */ - /* the same `library' argument. */ - /* */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Face. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Open_Face( FT_Library library, - const FT_Open_Args* args, - FT_Long face_index, - FT_Face *aface ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Attach_File */ - /* */ - /* <Description> */ - /* This function calls @FT_Attach_Stream to attach a file. */ - /* */ - /* <InOut> */ - /* face :: The target face object. */ - /* */ - /* <Input> */ - /* filepathname :: The pathname. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Attach_File( FT_Face face, - const char* filepathname ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Attach_Stream */ - /* */ - /* <Description> */ - /* `Attach' data to a face object. Normally, this is used to read */ - /* additional information for the face object. For example, you can */ - /* attach an AFM file that comes with a Type~1 font to get the */ - /* kerning values and other metrics. */ - /* */ - /* <InOut> */ - /* face :: The target face object. */ - /* */ - /* <Input> */ - /* parameters :: A pointer to @FT_Open_Args that must be filled by */ - /* the caller. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The meaning of the `attach' (i.e., what really happens when the */ - /* new file is read) is not fixed by FreeType itself. It really */ - /* depends on the font format (and thus the font driver). */ - /* */ - /* Client applications are expected to know what they are doing */ - /* when invoking this function. Most drivers simply do not implement */ - /* file attachments. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Attach_Stream( FT_Face face, - FT_Open_Args* parameters ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Reference_Face */ - /* */ - /* <Description> */ - /* A counter gets initialized to~1 at the time an @FT_Face structure */ - /* is created. This function increments the counter. @FT_Done_Face */ - /* then only destroys a face if the counter is~1, otherwise it simply */ - /* decrements the counter. */ - /* */ - /* This function helps in managing life-cycles of structures that */ - /* reference @FT_Face objects. */ - /* */ - /* <Input> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Since> */ - /* 2.4.2 */ - /* */ - FT_EXPORT( FT_Error ) - FT_Reference_Face( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Face */ - /* */ - /* <Description> */ - /* Discard a given face object, as well as all of its child slots and */ - /* sizes. */ - /* */ - /* <Input> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Face. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Done_Face( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Select_Size */ - /* */ - /* <Description> */ - /* Select a bitmap strike. */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Input> */ - /* strike_index :: The index of the bitmap strike in the */ - /* `available_sizes' field of @FT_FaceRec structure. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Select_Size( FT_Face face, - FT_Int strike_index ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Size_Request_Type */ - /* */ - /* <Description> */ - /* An enumeration type that lists the supported size request types. */ - /* */ - /* <Values> */ - /* FT_SIZE_REQUEST_TYPE_NOMINAL :: */ - /* The nominal size. The `units_per_EM' field of @FT_FaceRec is */ - /* used to determine both scaling values. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_REAL_DIM :: */ - /* The real dimension. The sum of the the `ascender' and (minus */ - /* of) the `descender' fields of @FT_FaceRec are used to determine */ - /* both scaling values. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_BBOX :: */ - /* The font bounding box. The width and height of the `bbox' field */ - /* of @FT_FaceRec are used to determine the horizontal and vertical */ - /* scaling value, respectively. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_CELL :: */ - /* The `max_advance_width' field of @FT_FaceRec is used to */ - /* determine the horizontal scaling value; the vertical scaling */ - /* value is determined the same way as */ - /* @FT_SIZE_REQUEST_TYPE_REAL_DIM does. Finally, both scaling */ - /* values are set to the smaller one. This type is useful if you */ - /* want to specify the font size for, say, a window of a given */ - /* dimension and 80x24 cells. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_SCALES :: */ - /* Specify the scaling values directly. */ - /* */ - /* <Note> */ - /* The above descriptions only apply to scalable formats. For bitmap */ - /* formats, the behaviour is up to the driver. */ - /* */ - /* See the note section of @FT_Size_Metrics if you wonder how size */ - /* requesting relates to scaling values. */ - /* */ - typedef enum FT_Size_Request_Type_ - { - FT_SIZE_REQUEST_TYPE_NOMINAL, - FT_SIZE_REQUEST_TYPE_REAL_DIM, - FT_SIZE_REQUEST_TYPE_BBOX, - FT_SIZE_REQUEST_TYPE_CELL, - FT_SIZE_REQUEST_TYPE_SCALES, - - FT_SIZE_REQUEST_TYPE_MAX - - } FT_Size_Request_Type; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_RequestRec */ - /* */ - /* <Description> */ - /* A structure used to model a size request. */ - /* */ - /* <Fields> */ - /* type :: See @FT_Size_Request_Type. */ - /* */ - /* width :: The desired width. */ - /* */ - /* height :: The desired height. */ - /* */ - /* horiResolution :: The horizontal resolution. If set to zero, */ - /* `width' is treated as a 26.6 fractional pixel */ - /* value. */ - /* */ - /* vertResolution :: The vertical resolution. If set to zero, */ - /* `height' is treated as a 26.6 fractional pixel */ - /* value. */ - /* */ - /* <Note> */ - /* If `width' is zero, then the horizontal scaling value is set equal */ - /* to the vertical scaling value, and vice versa. */ - /* */ - typedef struct FT_Size_RequestRec_ - { - FT_Size_Request_Type type; - FT_Long width; - FT_Long height; - FT_UInt horiResolution; - FT_UInt vertResolution; - - } FT_Size_RequestRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_Request */ - /* */ - /* <Description> */ - /* A handle to a size request structure. */ - /* */ - typedef struct FT_Size_RequestRec_ *FT_Size_Request; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Request_Size */ - /* */ - /* <Description> */ - /* Resize the scale of the active @FT_Size object in a face. */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Input> */ - /* req :: A pointer to a @FT_Size_RequestRec. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Although drivers may select the bitmap strike matching the */ - /* request, you should not rely on this if you intend to select a */ - /* particular bitmap strike. Use @FT_Select_Size instead in that */ - /* case. */ - /* */ - /* The relation between the requested size and the resulting glyph */ - /* size is dependent entirely on how the size is defined in the */ - /* source face. The font designer chooses the final size of each */ - /* glyph relative to this size. For more information refer to */ - /* `http://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html' */ - /* */ - /* Don't use this function if you are using the FreeType cache API. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Request_Size( FT_Face face, - FT_Size_Request req ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Char_Size */ - /* */ - /* <Description> */ - /* This function calls @FT_Request_Size to request the nominal size */ - /* (in points). */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Input> */ - /* char_width :: The nominal width, in 26.6 fractional points. */ - /* */ - /* char_height :: The nominal height, in 26.6 fractional points. */ - /* */ - /* horz_resolution :: The horizontal resolution in dpi. */ - /* */ - /* vert_resolution :: The vertical resolution in dpi. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If either the character width or height is zero, it is set equal */ - /* to the other value. */ - /* */ - /* If either the horizontal or vertical resolution is zero, it is set */ - /* equal to the other value. */ - /* */ - /* A character width or height smaller than 1pt is set to 1pt; if */ - /* both resolution values are zero, they are set to 72dpi. */ - /* */ - /* Don't use this function if you are using the FreeType cache API. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Char_Size( FT_Face face, - FT_F26Dot6 char_width, - FT_F26Dot6 char_height, - FT_UInt horz_resolution, - FT_UInt vert_resolution ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Pixel_Sizes */ - /* */ - /* <Description> */ - /* This function calls @FT_Request_Size to request the nominal size */ - /* (in pixels). */ - /* */ - /* <InOut> */ - /* face :: A handle to the target face object. */ - /* */ - /* <Input> */ - /* pixel_width :: The nominal width, in pixels. */ - /* */ - /* pixel_height :: The nominal height, in pixels. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You should not rely on the resulting glyphs matching, or being */ - /* constrained, to this pixel size. Refer to @FT_Request_Size to */ - /* understand how requested sizes relate to actual sizes. */ - /* */ - /* Don't use this function if you are using the FreeType cache API. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Pixel_Sizes( FT_Face face, - FT_UInt pixel_width, - FT_UInt pixel_height ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Load_Glyph */ - /* */ - /* <Description> */ - /* A function used to load a single glyph into the glyph slot of a */ - /* face object. */ - /* */ - /* <InOut> */ - /* face :: A handle to the target face object where the glyph */ - /* is loaded. */ - /* */ - /* <Input> */ - /* glyph_index :: The index of the glyph in the font file. For */ - /* CID-keyed fonts (either in PS or in CFF format) */ - /* this argument specifies the CID value. */ - /* */ - /* load_flags :: A flag indicating what to load for this glyph. The */ - /* @FT_LOAD_XXX constants can be used to control the */ - /* glyph loading process (e.g., whether the outline */ - /* should be scaled, whether to load bitmaps or not, */ - /* whether to hint the outline, etc). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The loaded glyph may be transformed. See @FT_Set_Transform for */ - /* the details. */ - /* */ - /* For subsetted CID-keyed fonts, `FT_Err_Invalid_Argument' is */ - /* returned for invalid CID values (this is, for CID values that */ - /* don't have a corresponding glyph in the font). See the discussion */ - /* of the @FT_FACE_FLAG_CID_KEYED flag for more details. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Load_Glyph( FT_Face face, - FT_UInt glyph_index, - FT_Int32 load_flags ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Load_Char */ - /* */ - /* <Description> */ - /* A function used to load a single glyph into the glyph slot of a */ - /* face object, according to its character code. */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object where the glyph */ - /* is loaded. */ - /* */ - /* <Input> */ - /* char_code :: The glyph's character code, according to the */ - /* current charmap used in the face. */ - /* */ - /* load_flags :: A flag indicating what to load for this glyph. The */ - /* @FT_LOAD_XXX constants can be used to control the */ - /* glyph loading process (e.g., whether the outline */ - /* should be scaled, whether to load bitmaps or not, */ - /* whether to hint the outline, etc). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function simply calls @FT_Get_Char_Index and @FT_Load_Glyph. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Load_Char( FT_Face face, - FT_ULong char_code, - FT_Int32 load_flags ); - - - /************************************************************************* - * - * @enum: - * FT_LOAD_XXX - * - * @description: - * A list of bit-field constants used with @FT_Load_Glyph to indicate - * what kind of operations to perform during glyph loading. - * - * @values: - * FT_LOAD_DEFAULT :: - * Corresponding to~0, this value is used as the default glyph load - * operation. In this case, the following happens: - * - * 1. FreeType looks for a bitmap for the glyph corresponding to the - * face's current size. If one is found, the function returns. - * The bitmap data can be accessed from the glyph slot (see note - * below). - * - * 2. If no embedded bitmap is searched or found, FreeType looks for a - * scalable outline. If one is found, it is loaded from the font - * file, scaled to device pixels, then `hinted' to the pixel grid - * in order to optimize it. The outline data can be accessed from - * the glyph slot (see note below). - * - * Note that by default, the glyph loader doesn't render outlines into - * bitmaps. The following flags are used to modify this default - * behaviour to more specific and useful cases. - * - * FT_LOAD_NO_SCALE :: - * Don't scale the loaded outline glyph but keep it in font units. - * - * This flag implies @FT_LOAD_NO_HINTING and @FT_LOAD_NO_BITMAP, and - * unsets @FT_LOAD_RENDER. - * - * If the font is `tricky' (see @FT_FACE_FLAG_TRICKY for more), using - * FT_LOAD_NO_SCALE usually yields meaningless outlines because the - * subglyphs must be scaled and positioned with hinting instructions. - * This can be solved by loading the font without FT_LOAD_NO_SCALE and - * setting the character size to `font->units_per_EM'. - * - * FT_LOAD_NO_HINTING :: - * Disable hinting. This generally generates `blurrier' bitmap glyphs - * when the glyph are rendered in any of the anti-aliased modes. See - * also the note below. - * - * This flag is implied by @FT_LOAD_NO_SCALE. - * - * FT_LOAD_RENDER :: - * Call @FT_Render_Glyph after the glyph is loaded. By default, the - * glyph is rendered in @FT_RENDER_MODE_NORMAL mode. This can be - * overridden by @FT_LOAD_TARGET_XXX or @FT_LOAD_MONOCHROME. - * - * This flag is unset by @FT_LOAD_NO_SCALE. - * - * FT_LOAD_NO_BITMAP :: - * Ignore bitmap strikes when loading. Bitmap-only fonts ignore this - * flag. - * - * @FT_LOAD_NO_SCALE always sets this flag. - * - * FT_LOAD_VERTICAL_LAYOUT :: - * Load the glyph for vertical text layout. In particular, the - * `advance' value in the @FT_GlyphSlotRec structure is set to the - * `vertAdvance' value of the `metrics' field. - * - * In case @FT_HAS_VERTICAL doesn't return true, you shouldn't use - * this flag currently. Reason is that in this case vertical metrics - * get synthesized, and those values are not always consistent across - * various font formats. - * - * FT_LOAD_FORCE_AUTOHINT :: - * Indicates that the auto-hinter is preferred over the font's native - * hinter. See also the note below. - * - * FT_LOAD_PEDANTIC :: - * Indicates that the font driver should perform pedantic verifications - * during glyph loading. This is mostly used to detect broken glyphs - * in fonts. By default, FreeType tries to handle broken fonts also. - * - * In particular, errors from the TrueType bytecode engine are not - * passed to the application if this flag is not set; this might - * result in partially hinted or distorted glyphs in case a glyph's - * bytecode is buggy. - * - * FT_LOAD_NO_RECURSE :: - * Indicate that the font driver should not load composite glyphs - * recursively. Instead, it should set the `num_subglyph' and - * `subglyphs' values of the glyph slot accordingly, and set - * `glyph->format' to @FT_GLYPH_FORMAT_COMPOSITE. The description of - * subglyphs can then be accessed with @FT_Get_SubGlyph_Info. - * - * This flag implies @FT_LOAD_NO_SCALE and @FT_LOAD_IGNORE_TRANSFORM. - * - * FT_LOAD_IGNORE_TRANSFORM :: - * Indicates that the transform matrix set by @FT_Set_Transform should - * be ignored. - * - * FT_LOAD_MONOCHROME :: - * This flag is used with @FT_LOAD_RENDER to indicate that you want to - * render an outline glyph to a 1-bit monochrome bitmap glyph, with - * 8~pixels packed into each byte of the bitmap data. - * - * Note that this has no effect on the hinting algorithm used. You - * should rather use @FT_LOAD_TARGET_MONO so that the - * monochrome-optimized hinting algorithm is used. - * - * FT_LOAD_LINEAR_DESIGN :: - * Indicates that the `linearHoriAdvance' and `linearVertAdvance' - * fields of @FT_GlyphSlotRec should be kept in font units. See - * @FT_GlyphSlotRec for details. - * - * FT_LOAD_NO_AUTOHINT :: - * Disable auto-hinter. See also the note below. - * - * FT_LOAD_COLOR :: - * This flag is used to request loading of color embedded-bitmap - * images. The resulting color bitmaps, if available, will have the - * @FT_PIXEL_MODE_BGRA format. When the flag is not used and color - * bitmaps are found, they will be converted to 256-level gray - * bitmaps transparently. Those bitmaps will be in the - * @FT_PIXEL_MODE_GRAY format. - * - * FT_LOAD_CROP_BITMAP :: - * Ignored. Deprecated. - * - * FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH :: - * Ignored. Deprecated. - * - * @note: - * By default, hinting is enabled and the font's native hinter (see - * @FT_FACE_FLAG_HINTER) is preferred over the auto-hinter. You can - * disable hinting by setting @FT_LOAD_NO_HINTING or change the - * precedence by setting @FT_LOAD_FORCE_AUTOHINT. You can also set - * @FT_LOAD_NO_AUTOHINT in case you don't want the auto-hinter to be - * used at all. - * - * See the description of @FT_FACE_FLAG_TRICKY for a special exception - * (affecting only a handful of Asian fonts). - * - * Besides deciding which hinter to use, you can also decide which - * hinting algorithm to use. See @FT_LOAD_TARGET_XXX for details. - * - * Note that the auto-hinter needs a valid Unicode cmap (either a native - * one or synthesized by FreeType) for producing correct results. If a - * font provides an incorrect mapping (for example, assigning the - * character code U+005A, LATIN CAPITAL LETTER Z, to a glyph depicting a - * mathematical integral sign), the auto-hinter might produce useless - * results. - * - */ -#define FT_LOAD_DEFAULT 0x0 -#define FT_LOAD_NO_SCALE ( 1L << 0 ) -#define FT_LOAD_NO_HINTING ( 1L << 1 ) -#define FT_LOAD_RENDER ( 1L << 2 ) -#define FT_LOAD_NO_BITMAP ( 1L << 3 ) -#define FT_LOAD_VERTICAL_LAYOUT ( 1L << 4 ) -#define FT_LOAD_FORCE_AUTOHINT ( 1L << 5 ) -#define FT_LOAD_CROP_BITMAP ( 1L << 6 ) -#define FT_LOAD_PEDANTIC ( 1L << 7 ) -#define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ( 1L << 9 ) -#define FT_LOAD_NO_RECURSE ( 1L << 10 ) -#define FT_LOAD_IGNORE_TRANSFORM ( 1L << 11 ) -#define FT_LOAD_MONOCHROME ( 1L << 12 ) -#define FT_LOAD_LINEAR_DESIGN ( 1L << 13 ) -#define FT_LOAD_NO_AUTOHINT ( 1L << 15 ) - /* Bits 16..19 are used by `FT_LOAD_TARGET_' */ -#define FT_LOAD_COLOR ( 1L << 20 ) - - /* */ - - /* used internally only by certain font drivers! */ -#define FT_LOAD_ADVANCE_ONLY ( 1L << 8 ) -#define FT_LOAD_SBITS_ONLY ( 1L << 14 ) - - - /************************************************************************** - * - * @enum: - * FT_LOAD_TARGET_XXX - * - * @description: - * A list of values that are used to select a specific hinting algorithm - * to use by the hinter. You should OR one of these values to your - * `load_flags' when calling @FT_Load_Glyph. - * - * Note that font's native hinters may ignore the hinting algorithm you - * have specified (e.g., the TrueType bytecode interpreter). You can set - * @FT_LOAD_FORCE_AUTOHINT to ensure that the auto-hinter is used. - * - * Also note that @FT_LOAD_TARGET_LIGHT is an exception, in that it - * always implies @FT_LOAD_FORCE_AUTOHINT. - * - * @values: - * FT_LOAD_TARGET_NORMAL :: - * This corresponds to the default hinting algorithm, optimized for - * standard gray-level rendering. For monochrome output, use - * @FT_LOAD_TARGET_MONO instead. - * - * FT_LOAD_TARGET_LIGHT :: - * A lighter hinting algorithm for non-monochrome modes. Many - * generated glyphs are more fuzzy but better resemble its original - * shape. A bit like rendering on Mac OS~X. - * - * As a special exception, this target implies @FT_LOAD_FORCE_AUTOHINT. - * - * FT_LOAD_TARGET_MONO :: - * Strong hinting algorithm that should only be used for monochrome - * output. The result is probably unpleasant if the glyph is rendered - * in non-monochrome modes. - * - * FT_LOAD_TARGET_LCD :: - * A variant of @FT_LOAD_TARGET_NORMAL optimized for horizontally - * decimated LCD displays. - * - * FT_LOAD_TARGET_LCD_V :: - * A variant of @FT_LOAD_TARGET_NORMAL optimized for vertically - * decimated LCD displays. - * - * @note: - * You should use only _one_ of the FT_LOAD_TARGET_XXX values in your - * `load_flags'. They can't be ORed. - * - * If @FT_LOAD_RENDER is also set, the glyph is rendered in the - * corresponding mode (i.e., the mode that matches the used algorithm - * best). An exeption is FT_LOAD_TARGET_MONO since it implies - * @FT_LOAD_MONOCHROME. - * - * You can use a hinting algorithm that doesn't correspond to the same - * rendering mode. As an example, it is possible to use the `light' - * hinting algorithm and have the results rendered in horizontal LCD - * pixel mode, with code like - * - * { - * FT_Load_Glyph( face, glyph_index, - * load_flags | FT_LOAD_TARGET_LIGHT ); - * - * FT_Render_Glyph( face->glyph, FT_RENDER_MODE_LCD ); - * } - * - */ -#define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 15 ) << 16 ) - -#define FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL ) -#define FT_LOAD_TARGET_LIGHT FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT ) -#define FT_LOAD_TARGET_MONO FT_LOAD_TARGET_( FT_RENDER_MODE_MONO ) -#define FT_LOAD_TARGET_LCD FT_LOAD_TARGET_( FT_RENDER_MODE_LCD ) -#define FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V ) - - - /************************************************************************** - * - * @macro: - * FT_LOAD_TARGET_MODE - * - * @description: - * Return the @FT_Render_Mode corresponding to a given - * @FT_LOAD_TARGET_XXX value. - * - */ -#define FT_LOAD_TARGET_MODE( x ) ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) ) - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Transform */ - /* */ - /* <Description> */ - /* A function used to set the transformation that is applied to glyph */ - /* images when they are loaded into a glyph slot through */ - /* @FT_Load_Glyph. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to the transformation's 2x2 matrix. Use~0 for */ - /* the identity matrix. */ - /* delta :: A pointer to the translation vector. Use~0 for the null */ - /* vector. */ - /* */ - /* <Note> */ - /* The transformation is only applied to scalable image formats after */ - /* the glyph has been loaded. It means that hinting is unaltered by */ - /* the transformation and is performed on the character size given in */ - /* the last call to @FT_Set_Char_Size or @FT_Set_Pixel_Sizes. */ - /* */ - /* Note that this also transforms the `face.glyph.advance' field, but */ - /* *not* the values in `face.glyph.metrics'. */ - /* */ - FT_EXPORT( void ) - FT_Set_Transform( FT_Face face, - FT_Matrix* matrix, - FT_Vector* delta ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Render_Mode */ - /* */ - /* <Description> */ - /* An enumeration type that lists the render modes supported by */ - /* FreeType~2. Each mode corresponds to a specific type of scanline */ - /* conversion performed on the outline. */ - /* */ - /* For bitmap fonts and embedded bitmaps the `bitmap->pixel_mode' */ - /* field in the @FT_GlyphSlotRec structure gives the format of the */ - /* returned bitmap. */ - /* */ - /* All modes except @FT_RENDER_MODE_MONO use 256 levels of opacity. */ - /* */ - /* <Values> */ - /* FT_RENDER_MODE_NORMAL :: */ - /* This is the default render mode; it corresponds to 8-bit */ - /* anti-aliased bitmaps. */ - /* */ - /* FT_RENDER_MODE_LIGHT :: */ - /* This is equivalent to @FT_RENDER_MODE_NORMAL. It is only */ - /* defined as a separate value because render modes are also used */ - /* indirectly to define hinting algorithm selectors. See */ - /* @FT_LOAD_TARGET_XXX for details. */ - /* */ - /* FT_RENDER_MODE_MONO :: */ - /* This mode corresponds to 1-bit bitmaps (with 2~levels of */ - /* opacity). */ - /* */ - /* FT_RENDER_MODE_LCD :: */ - /* This mode corresponds to horizontal RGB and BGR sub-pixel */ - /* displays like LCD screens. It produces 8-bit bitmaps that are */ - /* 3~times the width of the original glyph outline in pixels, and */ - /* which use the @FT_PIXEL_MODE_LCD mode. */ - /* */ - /* FT_RENDER_MODE_LCD_V :: */ - /* This mode corresponds to vertical RGB and BGR sub-pixel displays */ - /* (like PDA screens, rotated LCD displays, etc.). It produces */ - /* 8-bit bitmaps that are 3~times the height of the original */ - /* glyph outline in pixels and use the @FT_PIXEL_MODE_LCD_V mode. */ - /* */ - /* <Note> */ - /* The LCD-optimized glyph bitmaps produced by FT_Render_Glyph can be */ - /* filtered to reduce color-fringes by using @FT_Library_SetLcdFilter */ - /* (not active in the default builds). It is up to the caller to */ - /* either call @FT_Library_SetLcdFilter (if available) or do the */ - /* filtering itself. */ - /* */ - /* The selected render mode only affects vector glyphs of a font. */ - /* Embedded bitmaps often have a different pixel mode like */ - /* @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform */ - /* them into 8-bit pixmaps. */ - /* */ - typedef enum FT_Render_Mode_ - { - FT_RENDER_MODE_NORMAL = 0, - FT_RENDER_MODE_LIGHT, - FT_RENDER_MODE_MONO, - FT_RENDER_MODE_LCD, - FT_RENDER_MODE_LCD_V, - - FT_RENDER_MODE_MAX - - } FT_Render_Mode; - - - /* these constants are deprecated; use the corresponding */ - /* `FT_Render_Mode' values instead */ -#define ft_render_mode_normal FT_RENDER_MODE_NORMAL -#define ft_render_mode_mono FT_RENDER_MODE_MONO - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Render_Glyph */ - /* */ - /* <Description> */ - /* Convert a given glyph image to a bitmap. It does so by inspecting */ - /* the glyph image format, finding the relevant renderer, and */ - /* invoking it. */ - /* */ - /* <InOut> */ - /* slot :: A handle to the glyph slot containing the image to */ - /* convert. */ - /* */ - /* <Input> */ - /* render_mode :: This is the render mode used to render the glyph */ - /* image into a bitmap. See @FT_Render_Mode for a */ - /* list of possible values. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* To get meaningful results, font scaling values must be set with */ - /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Render_Glyph( FT_GlyphSlot slot, - FT_Render_Mode render_mode ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Kerning_Mode */ - /* */ - /* <Description> */ - /* An enumeration used to specify which kerning values to return in */ - /* @FT_Get_Kerning. */ - /* */ - /* <Values> */ - /* FT_KERNING_DEFAULT :: Return scaled and grid-fitted kerning */ - /* distances (value is~0). */ - /* */ - /* FT_KERNING_UNFITTED :: Return scaled but un-grid-fitted kerning */ - /* distances. */ - /* */ - /* FT_KERNING_UNSCALED :: Return the kerning vector in original font */ - /* units. */ - /* */ - typedef enum FT_Kerning_Mode_ - { - FT_KERNING_DEFAULT = 0, - FT_KERNING_UNFITTED, - FT_KERNING_UNSCALED - - } FT_Kerning_Mode; - - - /* these constants are deprecated; use the corresponding */ - /* `FT_Kerning_Mode' values instead */ -#define ft_kerning_default FT_KERNING_DEFAULT -#define ft_kerning_unfitted FT_KERNING_UNFITTED -#define ft_kerning_unscaled FT_KERNING_UNSCALED - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Kerning */ - /* */ - /* <Description> */ - /* Return the kerning vector between two glyphs of a same face. */ - /* */ - /* <Input> */ - /* face :: A handle to a source face object. */ - /* */ - /* left_glyph :: The index of the left glyph in the kern pair. */ - /* */ - /* right_glyph :: The index of the right glyph in the kern pair. */ - /* */ - /* kern_mode :: See @FT_Kerning_Mode for more information. */ - /* Determines the scale and dimension of the returned */ - /* kerning vector. */ - /* */ - /* <Output> */ - /* akerning :: The kerning vector. This is either in font units */ - /* or in pixels (26.6 format) for scalable formats, */ - /* and in pixels for fixed-sizes formats. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Only horizontal layouts (left-to-right & right-to-left) are */ - /* supported by this method. Other layouts, or more sophisticated */ - /* kernings, are out of the scope of this API function -- they can be */ - /* implemented through format-specific interfaces. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Kerning( FT_Face face, - FT_UInt left_glyph, - FT_UInt right_glyph, - FT_UInt kern_mode, - FT_Vector *akerning ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Track_Kerning */ - /* */ - /* <Description> */ - /* Return the track kerning for a given face object at a given size. */ - /* */ - /* <Input> */ - /* face :: A handle to a source face object. */ - /* */ - /* point_size :: The point size in 16.16 fractional points. */ - /* */ - /* degree :: The degree of tightness. Increasingly negative */ - /* values represent tighter track kerning, while */ - /* increasingly positive values represent looser track */ - /* kerning. Value zero means no track kerning. */ - /* */ - /* <Output> */ - /* akerning :: The kerning in 16.16 fractional points, to be */ - /* uniformly applied between all glyphs. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Currently, only the Type~1 font driver supports track kerning, */ - /* using data from AFM files (if attached with @FT_Attach_File or */ - /* @FT_Attach_Stream). */ - /* */ - /* Only very few AFM files come with track kerning data; please refer */ - /* to the Adobe's AFM specification for more details. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Track_Kerning( FT_Face face, - FT_Fixed point_size, - FT_Int degree, - FT_Fixed* akerning ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Glyph_Name */ - /* */ - /* <Description> */ - /* Retrieve the ASCII name of a given glyph in a face. This only */ - /* works for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1. */ - /* */ - /* <Input> */ - /* face :: A handle to a source face object. */ - /* */ - /* glyph_index :: The glyph index. */ - /* */ - /* buffer_max :: The maximum number of bytes available in the */ - /* buffer. */ - /* */ - /* <Output> */ - /* buffer :: A pointer to a target buffer where the name is */ - /* copied to. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* An error is returned if the face doesn't provide glyph names or if */ - /* the glyph index is invalid. In all cases of failure, the first */ - /* byte of `buffer' is set to~0 to indicate an empty name. */ - /* */ - /* The glyph name is truncated to fit within the buffer if it is too */ - /* long. The returned string is always zero-terminated. */ - /* */ - /* Be aware that FreeType reorders glyph indices internally so that */ - /* glyph index~0 always corresponds to the `missing glyph' (called */ - /* `.notdef'). */ - /* */ - /* This function always returns an error if the config macro */ - /* `FT_CONFIG_OPTION_NO_GLYPH_NAMES' is not defined in `ftoptions.h'. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Glyph_Name( FT_Face face, - FT_UInt glyph_index, - FT_Pointer buffer, - FT_UInt buffer_max ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Postscript_Name */ - /* */ - /* <Description> */ - /* Retrieve the ASCII PostScript name of a given face, if available. */ - /* This only works with PostScript and TrueType fonts. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Return> */ - /* A pointer to the face's PostScript name. NULL if unavailable. */ - /* */ - /* <Note> */ - /* The returned pointer is owned by the face and is destroyed with */ - /* it. */ - /* */ - FT_EXPORT( const char* ) - FT_Get_Postscript_Name( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Select_Charmap */ - /* */ - /* <Description> */ - /* Select a given charmap by its encoding tag (as listed in */ - /* `freetype.h'). */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Input> */ - /* encoding :: A handle to the selected encoding. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function returns an error if no charmap in the face */ - /* corresponds to the encoding queried here. */ - /* */ - /* Because many fonts contain more than a single cmap for Unicode */ - /* encoding, this function has some special code to select the one */ - /* that covers Unicode best (`best' in the sense that a UCS-4 cmap is */ - /* preferred to a UCS-2 cmap). It is thus preferable to */ - /* @FT_Set_Charmap in this case. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Select_Charmap( FT_Face face, - FT_Encoding encoding ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Charmap */ - /* */ - /* <Description> */ - /* Select a given charmap for character code to glyph index mapping. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Input> */ - /* charmap :: A handle to the selected charmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function returns an error if the charmap is not part of */ - /* the face (i.e., if it is not listed in the `face->charmaps' */ - /* table). */ - /* */ - /* It also fails if a type~14 charmap is selected. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Charmap( FT_Face face, - FT_CharMap charmap ); - - - /************************************************************************* - * - * @function: - * FT_Get_Charmap_Index - * - * @description: - * Retrieve index of a given charmap. - * - * @input: - * charmap :: - * A handle to a charmap. - * - * @return: - * The index into the array of character maps within the face to which - * `charmap' belongs. If an error occurs, -1 is returned. - * - */ - FT_EXPORT( FT_Int ) - FT_Get_Charmap_Index( FT_CharMap charmap ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Char_Index */ - /* */ - /* <Description> */ - /* Return the glyph index of a given character code. This function */ - /* uses a charmap object to do the mapping. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* charcode :: The character code. */ - /* */ - /* <Return> */ - /* The glyph index. 0~means `undefined character code'. */ - /* */ - /* <Note> */ - /* If you use FreeType to manipulate the contents of font files */ - /* directly, be aware that the glyph index returned by this function */ - /* doesn't always correspond to the internal indices used within the */ - /* file. This is done to ensure that value~0 always corresponds to */ - /* the `missing glyph'. If the first glyph is not named `.notdef', */ - /* then for Type~1 and Type~42 fonts, `.notdef' will be moved into */ - /* the glyph ID~0 position, and whatever was there will be moved to */ - /* the position `.notdef' had. For Type~1 fonts, if there is no */ - /* `.notdef' glyph at all, then one will be created at index~0 and */ - /* whatever was there will be moved to the last index -- Type~42 */ - /* fonts are considered invalid under this condition. */ - /* */ - FT_EXPORT( FT_UInt ) - FT_Get_Char_Index( FT_Face face, - FT_ULong charcode ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_First_Char */ - /* */ - /* <Description> */ - /* This function is used to return the first character code in the */ - /* current charmap of a given face. It also returns the */ - /* corresponding glyph index. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Output> */ - /* agindex :: Glyph index of first character code. 0~if charmap is */ - /* empty. */ - /* */ - /* <Return> */ - /* The charmap's first character code. */ - /* */ - /* <Note> */ - /* You should use this function with @FT_Get_Next_Char to be able to */ - /* parse all character codes available in a given charmap. The code */ - /* should look like this: */ - /* */ - /* { */ - /* FT_ULong charcode; */ - /* FT_UInt gindex; */ - /* */ - /* */ - /* charcode = FT_Get_First_Char( face, &gindex ); */ - /* while ( gindex != 0 ) */ - /* { */ - /* ... do something with (charcode,gindex) pair ... */ - /* */ - /* charcode = FT_Get_Next_Char( face, charcode, &gindex ); */ - /* } */ - /* } */ - /* */ - /* Note that `*agindex' is set to~0 if the charmap is empty. The */ - /* result itself can be~0 in two cases: if the charmap is empty or */ - /* if the value~0 is the first valid character code. */ - /* */ - FT_EXPORT( FT_ULong ) - FT_Get_First_Char( FT_Face face, - FT_UInt *agindex ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Next_Char */ - /* */ - /* <Description> */ - /* This function is used to return the next character code in the */ - /* current charmap of a given face following the value `char_code', */ - /* as well as the corresponding glyph index. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* char_code :: The starting character code. */ - /* */ - /* <Output> */ - /* agindex :: Glyph index of next character code. 0~if charmap */ - /* is empty. */ - /* */ - /* <Return> */ - /* The charmap's next character code. */ - /* */ - /* <Note> */ - /* You should use this function with @FT_Get_First_Char to walk */ - /* over all character codes available in a given charmap. See the */ - /* note for this function for a simple code example. */ - /* */ - /* Note that `*agindex' is set to~0 when there are no more codes in */ - /* the charmap. */ - /* */ - FT_EXPORT( FT_ULong ) - FT_Get_Next_Char( FT_Face face, - FT_ULong char_code, - FT_UInt *agindex ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Name_Index */ - /* */ - /* <Description> */ - /* Return the glyph index of a given glyph name. This function uses */ - /* driver specific objects to do the translation. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* glyph_name :: The glyph name. */ - /* */ - /* <Return> */ - /* The glyph index. 0~means `undefined character code'. */ - /* */ - FT_EXPORT( FT_UInt ) - FT_Get_Name_Index( FT_Face face, - FT_String* glyph_name ); - - - /************************************************************************* - * - * @macro: - * FT_SUBGLYPH_FLAG_XXX - * - * @description: - * A list of constants used to describe subglyphs. Please refer to the - * TrueType specification for the meaning of the various flags. - * - * @values: - * FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS :: - * FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES :: - * FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID :: - * FT_SUBGLYPH_FLAG_SCALE :: - * FT_SUBGLYPH_FLAG_XY_SCALE :: - * FT_SUBGLYPH_FLAG_2X2 :: - * FT_SUBGLYPH_FLAG_USE_MY_METRICS :: - * - */ -#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS 1 -#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES 2 -#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID 4 -#define FT_SUBGLYPH_FLAG_SCALE 8 -#define FT_SUBGLYPH_FLAG_XY_SCALE 0x40 -#define FT_SUBGLYPH_FLAG_2X2 0x80 -#define FT_SUBGLYPH_FLAG_USE_MY_METRICS 0x200 - - - /************************************************************************* - * - * @func: - * FT_Get_SubGlyph_Info - * - * @description: - * Retrieve a description of a given subglyph. Only use it if - * `glyph->format' is @FT_GLYPH_FORMAT_COMPOSITE; an error is - * returned otherwise. - * - * @input: - * glyph :: - * The source glyph slot. - * - * sub_index :: - * The index of the subglyph. Must be less than - * `glyph->num_subglyphs'. - * - * @output: - * p_index :: - * The glyph index of the subglyph. - * - * p_flags :: - * The subglyph flags, see @FT_SUBGLYPH_FLAG_XXX. - * - * p_arg1 :: - * The subglyph's first argument (if any). - * - * p_arg2 :: - * The subglyph's second argument (if any). - * - * p_transform :: - * The subglyph transformation (if any). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The values of `*p_arg1', `*p_arg2', and `*p_transform' must be - * interpreted depending on the flags returned in `*p_flags'. See the - * TrueType specification for details. - * - */ - FT_EXPORT( FT_Error ) - FT_Get_SubGlyph_Info( FT_GlyphSlot glyph, - FT_UInt sub_index, - FT_Int *p_index, - FT_UInt *p_flags, - FT_Int *p_arg1, - FT_Int *p_arg2, - FT_Matrix *p_transform ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_FSTYPE_XXX */ - /* */ - /* <Description> */ - /* A list of bit flags used in the `fsType' field of the OS/2 table */ - /* in a TrueType or OpenType font and the `FSType' entry in a */ - /* PostScript font. These bit flags are returned by */ - /* @FT_Get_FSType_Flags; they inform client applications of embedding */ - /* and subsetting restrictions associated with a font. */ - /* */ - /* See http://www.adobe.com/devnet/acrobat/pdfs/FontPolicies.pdf for */ - /* more details. */ - /* */ - /* <Values> */ - /* FT_FSTYPE_INSTALLABLE_EMBEDDING :: */ - /* Fonts with no fsType bit set may be embedded and permanently */ - /* installed on the remote system by an application. */ - /* */ - /* FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING :: */ - /* Fonts that have only this bit set must not be modified, embedded */ - /* or exchanged in any manner without first obtaining permission of */ - /* the font software copyright owner. */ - /* */ - /* FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING :: */ - /* If this bit is set, the font may be embedded and temporarily */ - /* loaded on the remote system. Documents containing Preview & */ - /* Print fonts must be opened `read-only'; no edits can be applied */ - /* to the document. */ - /* */ - /* FT_FSTYPE_EDITABLE_EMBEDDING :: */ - /* If this bit is set, the font may be embedded but must only be */ - /* installed temporarily on other systems. In contrast to Preview */ - /* & Print fonts, documents containing editable fonts may be opened */ - /* for reading, editing is permitted, and changes may be saved. */ - /* */ - /* FT_FSTYPE_NO_SUBSETTING :: */ - /* If this bit is set, the font may not be subsetted prior to */ - /* embedding. */ - /* */ - /* FT_FSTYPE_BITMAP_EMBEDDING_ONLY :: */ - /* If this bit is set, only bitmaps contained in the font may be */ - /* embedded; no outline data may be embedded. If there are no */ - /* bitmaps available in the font, then the font is unembeddable. */ - /* */ - /* <Note> */ - /* While the fsType flags can indicate that a font may be embedded, a */ - /* license with the font vendor may be separately required to use the */ - /* font in this way. */ - /* */ -#define FT_FSTYPE_INSTALLABLE_EMBEDDING 0x0000 -#define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING 0x0002 -#define FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING 0x0004 -#define FT_FSTYPE_EDITABLE_EMBEDDING 0x0008 -#define FT_FSTYPE_NO_SUBSETTING 0x0100 -#define FT_FSTYPE_BITMAP_EMBEDDING_ONLY 0x0200 - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_FSType_Flags */ - /* */ - /* <Description> */ - /* Return the fsType flags for a font. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Return> */ - /* The fsType flags, @FT_FSTYPE_XXX. */ - /* */ - /* <Note> */ - /* Use this function rather than directly reading the `fs_type' field */ - /* in the @PS_FontInfoRec structure, which is only guaranteed to */ - /* return the correct results for Type~1 fonts. */ - /* */ - /* <Since> */ - /* 2.3.8 */ - /* */ - FT_EXPORT( FT_UShort ) - FT_Get_FSType_Flags( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* glyph_variants */ - /* */ - /* <Title> */ - /* Glyph Variants */ - /* */ - /* <Abstract> */ - /* The FreeType~2 interface to Unicode Ideographic Variation */ - /* Sequences (IVS), using the SFNT cmap format~14. */ - /* */ - /* <Description> */ - /* Many CJK characters have variant forms. They are a sort of grey */ - /* area somewhere between being totally irrelevant and semantically */ - /* distinct; for this reason, the Unicode consortium decided to */ - /* introduce Ideographic Variation Sequences (IVS), consisting of a */ - /* Unicode base character and one of 240 variant selectors */ - /* (U+E0100-U+E01EF), instead of further extending the already huge */ - /* code range for CJK characters. */ - /* */ - /* An IVS is registered and unique; for further details please refer */ - /* to Unicode Technical Standard #37, the Ideographic Variation */ - /* Database: */ - /* */ - /* http://www.unicode.org/reports/tr37/ */ - /* */ - /* To date (November 2014), the character with the most variants is */ - /* U+9089, having 32 such IVS. */ - /* */ - /* Adobe and MS decided to support IVS with a new cmap subtable */ - /* (format~14). It is an odd subtable because it is not a mapping of */ - /* input code points to glyphs, but contains lists of all variants */ - /* supported by the font. */ - /* */ - /* A variant may be either `default' or `non-default'. A default */ - /* variant is the one you will get for that code point if you look it */ - /* up in the standard Unicode cmap. A non-default variant is a */ - /* different glyph. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetCharVariantIndex */ - /* */ - /* <Description> */ - /* Return the glyph index of a given character code as modified by */ - /* the variation selector. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* charcode :: */ - /* The character code point in Unicode. */ - /* */ - /* variantSelector :: */ - /* The Unicode code point of the variation selector. */ - /* */ - /* <Return> */ - /* The glyph index. 0~means either `undefined character code', or */ - /* `undefined selector code', or `no variation selector cmap */ - /* subtable', or `current CharMap is not Unicode'. */ - /* */ - /* <Note> */ - /* If you use FreeType to manipulate the contents of font files */ - /* directly, be aware that the glyph index returned by this function */ - /* doesn't always correspond to the internal indices used within */ - /* the file. This is done to ensure that value~0 always corresponds */ - /* to the `missing glyph'. */ - /* */ - /* This function is only meaningful if */ - /* a) the font has a variation selector cmap sub table, */ - /* and */ - /* b) the current charmap has a Unicode encoding. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_UInt ) - FT_Face_GetCharVariantIndex( FT_Face face, - FT_ULong charcode, - FT_ULong variantSelector ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetCharVariantIsDefault */ - /* */ - /* <Description> */ - /* Check whether this variant of this Unicode character is the one to */ - /* be found in the `cmap'. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* charcode :: */ - /* The character codepoint in Unicode. */ - /* */ - /* variantSelector :: */ - /* The Unicode codepoint of the variation selector. */ - /* */ - /* <Return> */ - /* 1~if found in the standard (Unicode) cmap, 0~if found in the */ - /* variation selector cmap, or -1 if it is not a variant. */ - /* */ - /* <Note> */ - /* This function is only meaningful if the font has a variation */ - /* selector cmap subtable. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_Int ) - FT_Face_GetCharVariantIsDefault( FT_Face face, - FT_ULong charcode, - FT_ULong variantSelector ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetVariantSelectors */ - /* */ - /* <Description> */ - /* Return a zero-terminated list of Unicode variant selectors found */ - /* in the font. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* <Return> */ - /* A pointer to an array of selector code points, or NULL if there is */ - /* no valid variant selector cmap subtable. */ - /* */ - /* <Note> */ - /* The last item in the array is~0; the array is owned by the */ - /* @FT_Face object but can be overwritten or released on the next */ - /* call to a FreeType function. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_UInt32* ) - FT_Face_GetVariantSelectors( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetVariantsOfChar */ - /* */ - /* <Description> */ - /* Return a zero-terminated list of Unicode variant selectors found */ - /* for the specified character code. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* charcode :: */ - /* The character codepoint in Unicode. */ - /* */ - /* <Return> */ - /* A pointer to an array of variant selector code points that are */ - /* active for the given character, or NULL if the corresponding list */ - /* is empty. */ - /* */ - /* <Note> */ - /* The last item in the array is~0; the array is owned by the */ - /* @FT_Face object but can be overwritten or released on the next */ - /* call to a FreeType function. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_UInt32* ) - FT_Face_GetVariantsOfChar( FT_Face face, - FT_ULong charcode ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetCharsOfVariant */ - /* */ - /* <Description> */ - /* Return a zero-terminated list of Unicode character codes found for */ - /* the specified variant selector. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* variantSelector :: */ - /* The variant selector code point in Unicode. */ - /* */ - /* <Return> */ - /* A list of all the code points that are specified by this selector */ - /* (both default and non-default codes are returned) or NULL if there */ - /* is no valid cmap or the variant selector is invalid. */ - /* */ - /* <Note> */ - /* The last item in the array is~0; the array is owned by the */ - /* @FT_Face object but can be overwritten or released on the next */ - /* call to a FreeType function. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_UInt32* ) - FT_Face_GetCharsOfVariant( FT_Face face, - FT_ULong variantSelector ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* computations */ - /* */ - /* <Title> */ - /* Computations */ - /* */ - /* <Abstract> */ - /* Crunching fixed numbers and vectors. */ - /* */ - /* <Description> */ - /* This section contains various functions used to perform */ - /* computations on 16.16 fixed-float numbers or 2d vectors. */ - /* */ - /* <Order> */ - /* FT_MulDiv */ - /* FT_MulFix */ - /* FT_DivFix */ - /* FT_RoundFix */ - /* FT_CeilFix */ - /* FT_FloorFix */ - /* FT_Vector_Transform */ - /* FT_Matrix_Multiply */ - /* FT_Matrix_Invert */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_MulDiv */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation `(a*b)/c' */ - /* with maximum accuracy (it uses a 64-bit intermediate integer */ - /* whenever necessary). */ - /* */ - /* This function isn't necessarily as fast as some processor specific */ - /* operations, but is at least completely portable. */ - /* */ - /* <Input> */ - /* a :: The first multiplier. */ - /* b :: The second multiplier. */ - /* c :: The divisor. */ - /* */ - /* <Return> */ - /* The result of `(a*b)/c'. This function never traps when trying to */ - /* divide by zero; it simply returns `MaxInt' or `MinInt' depending */ - /* on the signs of `a' and `b'. */ - /* */ - FT_EXPORT( FT_Long ) - FT_MulDiv( FT_Long a, - FT_Long b, - FT_Long c ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_MulFix */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation */ - /* `(a*b)/0x10000' with maximum accuracy. Most of the time this is */ - /* used to multiply a given value by a 16.16 fixed-point factor. */ - /* */ - /* <Input> */ - /* a :: The first multiplier. */ - /* b :: The second multiplier. Use a 16.16 factor here whenever */ - /* possible (see note below). */ - /* */ - /* <Return> */ - /* The result of `(a*b)/0x10000'. */ - /* */ - /* <Note> */ - /* This function has been optimized for the case where the absolute */ - /* value of `a' is less than 2048, and `b' is a 16.16 scaling factor. */ - /* As this happens mainly when scaling from notional units to */ - /* fractional pixels in FreeType, it resulted in noticeable speed */ - /* improvements between versions 2.x and 1.x. */ - /* */ - /* As a conclusion, always try to place a 16.16 factor as the */ - /* _second_ argument of this function; this can make a great */ - /* difference. */ - /* */ - FT_EXPORT( FT_Long ) - FT_MulFix( FT_Long a, - FT_Long b ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_DivFix */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation */ - /* `(a*0x10000)/b' with maximum accuracy. Most of the time, this is */ - /* used to divide a given value by a 16.16 fixed-point factor. */ - /* */ - /* <Input> */ - /* a :: The numerator. */ - /* b :: The denominator. Use a 16.16 factor here. */ - /* */ - /* <Return> */ - /* The result of `(a*0x10000)/b'. */ - /* */ - FT_EXPORT( FT_Long ) - FT_DivFix( FT_Long a, - FT_Long b ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_RoundFix */ - /* */ - /* <Description> */ - /* A very simple function used to round a 16.16 fixed number. */ - /* */ - /* <Input> */ - /* a :: The number to be rounded. */ - /* */ - /* <Return> */ - /* The result of `(a + 0x8000) & -0x10000'. */ - /* */ - FT_EXPORT( FT_Fixed ) - FT_RoundFix( FT_Fixed a ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_CeilFix */ - /* */ - /* <Description> */ - /* A very simple function used to compute the ceiling function of a */ - /* 16.16 fixed number. */ - /* */ - /* <Input> */ - /* a :: The number for which the ceiling function is to be computed. */ - /* */ - /* <Return> */ - /* The result of `(a + 0x10000 - 1) & -0x10000'. */ - /* */ - FT_EXPORT( FT_Fixed ) - FT_CeilFix( FT_Fixed a ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_FloorFix */ - /* */ - /* <Description> */ - /* A very simple function used to compute the floor function of a */ - /* 16.16 fixed number. */ - /* */ - /* <Input> */ - /* a :: The number for which the floor function is to be computed. */ - /* */ - /* <Return> */ - /* The result of `a & -0x10000'. */ - /* */ - FT_EXPORT( FT_Fixed ) - FT_FloorFix( FT_Fixed a ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Vector_Transform */ - /* */ - /* <Description> */ - /* Transform a single vector through a 2x2 matrix. */ - /* */ - /* <InOut> */ - /* vector :: The target vector to transform. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to the source 2x2 matrix. */ - /* */ - /* <Note> */ - /* The result is undefined if either `vector' or `matrix' is invalid. */ - /* */ - FT_EXPORT( void ) - FT_Vector_Transform( FT_Vector* vec, - const FT_Matrix* matrix ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* version */ - /* */ - /* <Title> */ - /* FreeType Version */ - /* */ - /* <Abstract> */ - /* Functions and macros related to FreeType versions. */ - /* */ - /* <Description> */ - /* Note that those functions and macros are of limited use because */ - /* even a new release of FreeType with only documentation changes */ - /* increases the version number. */ - /* */ - /* <Order> */ - /* FT_Library_Version */ - /* */ - /* FREETYPE_MAJOR */ - /* FREETYPE_MINOR */ - /* FREETYPE_PATCH */ - /* */ - /* FT_Face_CheckTrueTypePatents */ - /* FT_Face_SetUnpatentedHinting */ - /* */ - /* FREETYPE_XXX */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @enum: - * FREETYPE_XXX - * - * @description: - * These three macros identify the FreeType source code version. - * Use @FT_Library_Version to access them at runtime. - * - * @values: - * FREETYPE_MAJOR :: The major version number. - * FREETYPE_MINOR :: The minor version number. - * FREETYPE_PATCH :: The patch level. - * - * @note: - * The version number of FreeType if built as a dynamic link library - * with the `libtool' package is _not_ controlled by these three - * macros. - * - */ -#define FREETYPE_MAJOR 2 -#define FREETYPE_MINOR 5 -#define FREETYPE_PATCH 5 - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Library_Version */ - /* */ - /* <Description> */ - /* Return the version of the FreeType library being used. This is */ - /* useful when dynamically linking to the library, since one cannot */ - /* use the macros @FREETYPE_MAJOR, @FREETYPE_MINOR, and */ - /* @FREETYPE_PATCH. */ - /* */ - /* <Input> */ - /* library :: A source library handle. */ - /* */ - /* <Output> */ - /* amajor :: The major version number. */ - /* */ - /* aminor :: The minor version number. */ - /* */ - /* apatch :: The patch version number. */ - /* */ - /* <Note> */ - /* The reason why this function takes a `library' argument is because */ - /* certain programs implement library initialization in a custom way */ - /* that doesn't use @FT_Init_FreeType. */ - /* */ - /* In such cases, the library version might not be available before */ - /* the library object has been created. */ - /* */ - FT_EXPORT( void ) - FT_Library_Version( FT_Library library, - FT_Int *amajor, - FT_Int *aminor, - FT_Int *apatch ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_CheckTrueTypePatents */ - /* */ - /* <Description> */ - /* Parse all bytecode instructions of a TrueType font file to check */ - /* whether any of the patented opcodes are used. This is only useful */ - /* if you want to be able to use the unpatented hinter with */ - /* fonts that do *not* use these opcodes. */ - /* */ - /* Note that this function parses *all* glyph instructions in the */ - /* font file, which may be slow. */ - /* */ - /* <Input> */ - /* face :: A face handle. */ - /* */ - /* <Return> */ - /* 1~if this is a TrueType font that uses one of the patented */ - /* opcodes, 0~otherwise. */ - /* */ - /* <Note> */ - /* Since May 2010, TrueType hinting is no longer patented. */ - /* */ - /* <Since> */ - /* 2.3.5 */ - /* */ - FT_EXPORT( FT_Bool ) - FT_Face_CheckTrueTypePatents( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_SetUnpatentedHinting */ - /* */ - /* <Description> */ - /* Enable or disable the unpatented hinter for a given face. */ - /* Only enable it if you have determined that the face doesn't */ - /* use any patented opcodes (see @FT_Face_CheckTrueTypePatents). */ - /* */ - /* <Input> */ - /* face :: A face handle. */ - /* */ - /* value :: New boolean setting. */ - /* */ - /* <Return> */ - /* The old setting value. This will always be false if this is not */ - /* an SFNT font, or if the unpatented hinter is not compiled in this */ - /* instance of the library. */ - /* */ - /* <Note> */ - /* Since May 2010, TrueType hinting is no longer patented. */ - /* */ - /* <Since> */ - /* 2.3.5 */ - /* */ - FT_EXPORT( FT_Bool ) - FT_Face_SetUnpatentedHinting( FT_Face face, - FT_Bool value ); - - /* */ - - -FT_END_HEADER - -#endif /* __FREETYPE_H__ */ - - -/* END */ diff --git a/lib/linux/include/ft2build.h b/lib/linux/include/ft2build.h deleted file mode 100644 index 6f8eb7f..0000000 --- a/lib/linux/include/ft2build.h +++ /dev/null @@ -1,42 +0,0 @@ -/***************************************************************************/ -/* */ -/* ft2build.h */ -/* */ -/* FreeType 2 build and setup macros. */ -/* */ -/* Copyright 1996-2001, 2006, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This is the `entry point' for FreeType header file inclusions. It is */ - /* the only header file which should be included directly; all other */ - /* FreeType header files should be accessed with macro names (after */ - /* including `ft2build.h'). */ - /* */ - /* A typical example is */ - /* */ - /* #include <ft2build.h> */ - /* #include FT_FREETYPE_H */ - /* */ - /*************************************************************************/ - - -#ifndef __FT2BUILD_H__ -#define __FT2BUILD_H__ - -#include <config/ftheader.h> - -#endif /* __FT2BUILD_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftadvanc.h b/lib/linux/include/ftadvanc.h deleted file mode 100644 index 955f93f..0000000 --- a/lib/linux/include/ftadvanc.h +++ /dev/null @@ -1,187 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftadvanc.h */ -/* */ -/* Quick computation of advance widths (specification only). */ -/* */ -/* Copyright 2008, 2013, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTADVANC_H__ -#define __FTADVANC_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * quick_advance - * - * @title: - * Quick retrieval of advance values - * - * @abstract: - * Retrieve horizontal and vertical advance values without processing - * glyph outlines, if possible. - * - * @description: - * This section contains functions to quickly extract advance values - * without handling glyph outlines, if possible. - * - * @order: - * FT_Get_Advance - * FT_Get_Advances - * - */ - - - /*************************************************************************/ - /* */ - /* <Const> */ - /* FT_ADVANCE_FLAG_FAST_ONLY */ - /* */ - /* <Description> */ - /* A bit-flag to be OR-ed with the `flags' parameter of the */ - /* @FT_Get_Advance and @FT_Get_Advances functions. */ - /* */ - /* If set, it indicates that you want these functions to fail if the */ - /* corresponding hinting mode or font driver doesn't allow for very */ - /* quick advance computation. */ - /* */ - /* Typically, glyphs that are either unscaled, unhinted, bitmapped, */ - /* or light-hinted can have their advance width computed very */ - /* quickly. */ - /* */ - /* Normal and bytecode hinted modes that require loading, scaling, */ - /* and hinting of the glyph outline, are extremely slow by */ - /* comparison. */ - /* */ -#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000UL - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Advance */ - /* */ - /* <Description> */ - /* Retrieve the advance value of a given glyph outline in an */ - /* @FT_Face. */ - /* */ - /* <Input> */ - /* face :: The source @FT_Face handle. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* load_flags :: A set of bit flags similar to those used when */ - /* calling @FT_Load_Glyph, used to determine what kind */ - /* of advances you need. */ - /* <Output> */ - /* padvance :: The advance value. If scaling is performed (based on */ - /* the value of `load_flags'), the advance value is in */ - /* 16.16 format. Otherwise, it is in font units. */ - /* */ - /* If @FT_LOAD_VERTICAL_LAYOUT is set, this is the */ - /* vertical advance corresponding to a vertical layout. */ - /* Otherwise, it is the horizontal advance in a */ - /* horizontal layout. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ - /* if the corresponding font backend doesn't have a quick way to */ - /* retrieve the advances. */ - /* */ - /* A scaled advance is returned in 16.16 format but isn't transformed */ - /* by the affine transformation specified by @FT_Set_Transform. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Advance( FT_Face face, - FT_UInt gindex, - FT_Int32 load_flags, - FT_Fixed *padvance ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Advances */ - /* */ - /* <Description> */ - /* Retrieve the advance values of several glyph outlines in an */ - /* @FT_Face. */ - /* */ - /* <Input> */ - /* face :: The source @FT_Face handle. */ - /* */ - /* start :: The first glyph index. */ - /* */ - /* count :: The number of advance values you want to retrieve. */ - /* */ - /* load_flags :: A set of bit flags similar to those used when */ - /* calling @FT_Load_Glyph. */ - /* */ - /* <Output> */ - /* padvance :: The advance values. This array, to be provided by the */ - /* caller, must contain at least `count' elements. */ - /* */ - /* If scaling is performed (based on the value of */ - /* `load_flags'), the advance values are in 16.16 format. */ - /* Otherwise, they are in font units. */ - /* */ - /* If @FT_LOAD_VERTICAL_LAYOUT is set, these are the */ - /* vertical advances corresponding to a vertical layout. */ - /* Otherwise, they are the horizontal advances in a */ - /* horizontal layout. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ - /* if the corresponding font backend doesn't have a quick way to */ - /* retrieve the advances. */ - /* */ - /* Scaled advances are returned in 16.16 format but aren't */ - /* transformed by the affine transformation specified by */ - /* @FT_Set_Transform. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Advances( FT_Face face, - FT_UInt start, - FT_UInt count, - FT_Int32 load_flags, - FT_Fixed *padvances ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTADVANC_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftautoh.h b/lib/linux/include/ftautoh.h deleted file mode 100644 index 59191ab..0000000 --- a/lib/linux/include/ftautoh.h +++ /dev/null @@ -1,402 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftautoh.h */ -/* */ -/* FreeType API for controlling the auto-hinter (specification only). */ -/* */ -/* Copyright 2012, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTAUTOH_H__ -#define __FTAUTOH_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * auto_hinter - * - * @title: - * The auto-hinter - * - * @abstract: - * Controlling the auto-hinting module. - * - * @description: - * While FreeType's auto-hinter doesn't expose API functions by itself, - * it is possible to control its behaviour with @FT_Property_Set and - * @FT_Property_Get. The following lists the available properties - * together with the necessary macros and structures. - * - * Note that the auto-hinter's module name is `autofitter' for - * historical reasons. - * - */ - - - /************************************************************************** - * - * @property: - * glyph-to-script-map - * - * @description: - * *Experimental* *only* - * - * The auto-hinter provides various script modules to hint glyphs. - * Examples of supported scripts are Latin or CJK. Before a glyph is - * auto-hinted, the Unicode character map of the font gets examined, and - * the script is then determined based on Unicode character ranges, see - * below. - * - * OpenType fonts, however, often provide much more glyphs than - * character codes (small caps, superscripts, ligatures, swashes, etc.), - * to be controlled by so-called `features'. Handling OpenType features - * can be quite complicated and thus needs a separate library on top of - * FreeType. - * - * The mapping between glyph indices and scripts (in the auto-hinter - * sense, see the @FT_AUTOHINTER_SCRIPT_XXX values) is stored as an - * array with `num_glyphs' elements, as found in the font's @FT_Face - * structure. The `glyph-to-script-map' property returns a pointer to - * this array, which can be modified as needed. Note that the - * modification should happen before the first glyph gets processed by - * the auto-hinter so that the global analysis of the font shapes - * actually uses the modified mapping. - * - * The following example code demonstrates how to access it (omitting - * the error handling). - * - * { - * FT_Library library; - * FT_Face face; - * FT_Prop_GlyphToScriptMap prop; - * - * - * FT_Init_FreeType( &library ); - * FT_New_Face( library, "foo.ttf", 0, &face ); - * - * prop.face = face; - * - * FT_Property_Get( library, "autofitter", - * "glyph-to-script-map", &prop ); - * - * // adjust `prop.map' as needed right here - * - * FT_Load_Glyph( face, ..., FT_LOAD_FORCE_AUTOHINT ); - * } - * - */ - - - /************************************************************************** - * - * @enum: - * FT_AUTOHINTER_SCRIPT_XXX - * - * @description: - * *Experimental* *only* - * - * A list of constants used for the @glyph-to-script-map property to - * specify the script submodule the auto-hinter should use for hinting a - * particular glyph. - * - * @values: - * FT_AUTOHINTER_SCRIPT_NONE :: - * Don't auto-hint this glyph. - * - * FT_AUTOHINTER_SCRIPT_LATIN :: - * Apply the latin auto-hinter. For the auto-hinter, `latin' is a - * very broad term, including Cyrillic and Greek also since characters - * from those scripts share the same design constraints. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * { - * U+0020 - U+007F // Basic Latin (no control characters) - * U+00A0 - U+00FF // Latin-1 Supplement (no control characters) - * U+0100 - U+017F // Latin Extended-A - * U+0180 - U+024F // Latin Extended-B - * U+0250 - U+02AF // IPA Extensions - * U+02B0 - U+02FF // Spacing Modifier Letters - * U+0300 - U+036F // Combining Diacritical Marks - * U+0370 - U+03FF // Greek and Coptic - * U+0400 - U+04FF // Cyrillic - * U+0500 - U+052F // Cyrillic Supplement - * U+1D00 - U+1D7F // Phonetic Extensions - * U+1D80 - U+1DBF // Phonetic Extensions Supplement - * U+1DC0 - U+1DFF // Combining Diacritical Marks Supplement - * U+1E00 - U+1EFF // Latin Extended Additional - * U+1F00 - U+1FFF // Greek Extended - * U+2000 - U+206F // General Punctuation - * U+2070 - U+209F // Superscripts and Subscripts - * U+20A0 - U+20CF // Currency Symbols - * U+2150 - U+218F // Number Forms - * U+2460 - U+24FF // Enclosed Alphanumerics - * U+2C60 - U+2C7F // Latin Extended-C - * U+2DE0 - U+2DFF // Cyrillic Extended-A - * U+2E00 - U+2E7F // Supplemental Punctuation - * U+A640 - U+A69F // Cyrillic Extended-B - * U+A720 - U+A7FF // Latin Extended-D - * U+FB00 - U+FB06 // Alphab. Present. Forms (Latin Ligatures) - * U+1D400 - U+1D7FF // Mathematical Alphanumeric Symbols - * U+1F100 - U+1F1FF // Enclosed Alphanumeric Supplement - * } - * - * FT_AUTOHINTER_SCRIPT_CJK :: - * Apply the CJK auto-hinter, covering Chinese, Japanese, Korean, old - * Vietnamese, and some other scripts. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * { - * U+1100 - U+11FF // Hangul Jamo - * U+2E80 - U+2EFF // CJK Radicals Supplement - * U+2F00 - U+2FDF // Kangxi Radicals - * U+2FF0 - U+2FFF // Ideographic Description Characters - * U+3000 - U+303F // CJK Symbols and Punctuation - * U+3040 - U+309F // Hiragana - * U+30A0 - U+30FF // Katakana - * U+3100 - U+312F // Bopomofo - * U+3130 - U+318F // Hangul Compatibility Jamo - * U+3190 - U+319F // Kanbun - * U+31A0 - U+31BF // Bopomofo Extended - * U+31C0 - U+31EF // CJK Strokes - * U+31F0 - U+31FF // Katakana Phonetic Extensions - * U+3200 - U+32FF // Enclosed CJK Letters and Months - * U+3300 - U+33FF // CJK Compatibility - * U+3400 - U+4DBF // CJK Unified Ideographs Extension A - * U+4DC0 - U+4DFF // Yijing Hexagram Symbols - * U+4E00 - U+9FFF // CJK Unified Ideographs - * U+A960 - U+A97F // Hangul Jamo Extended-A - * U+AC00 - U+D7AF // Hangul Syllables - * U+D7B0 - U+D7FF // Hangul Jamo Extended-B - * U+F900 - U+FAFF // CJK Compatibility Ideographs - * U+FE10 - U+FE1F // Vertical forms - * U+FE30 - U+FE4F // CJK Compatibility Forms - * U+FF00 - U+FFEF // Halfwidth and Fullwidth Forms - * U+1B000 - U+1B0FF // Kana Supplement - * U+1D300 - U+1D35F // Tai Xuan Hing Symbols - * U+1F200 - U+1F2FF // Enclosed Ideographic Supplement - * U+20000 - U+2A6DF // CJK Unified Ideographs Extension B - * U+2A700 - U+2B73F // CJK Unified Ideographs Extension C - * U+2B740 - U+2B81F // CJK Unified Ideographs Extension D - * U+2F800 - U+2FA1F // CJK Compatibility Ideographs Supplement - * } - * - * FT_AUTOHINTER_SCRIPT_INDIC :: - * Apply the indic auto-hinter, covering all major scripts from the - * Indian sub-continent and some other related scripts like Thai, Lao, - * or Tibetan. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * { - * U+0900 - U+0DFF // Indic Range - * U+0F00 - U+0FFF // Tibetan - * U+1900 - U+194F // Limbu - * U+1B80 - U+1BBF // Sundanese - * U+1C80 - U+1CDF // Meetei Mayak - * U+A800 - U+A82F // Syloti Nagri - * U+11800 - U+118DF // Sharada - * } - * - * Note that currently Indic support is rudimentary only, missing blue - * zone support. - * - */ -#define FT_AUTOHINTER_SCRIPT_NONE 0 -#define FT_AUTOHINTER_SCRIPT_LATIN 1 -#define FT_AUTOHINTER_SCRIPT_CJK 2 -#define FT_AUTOHINTER_SCRIPT_INDIC 3 - - - /************************************************************************** - * - * @struct: - * FT_Prop_GlyphToScriptMap - * - * @description: - * *Experimental* *only* - * - * The data exchange structure for the @glyph-to-script-map property. - * - */ - typedef struct FT_Prop_GlyphToScriptMap_ - { - FT_Face face; - FT_Byte* map; - - } FT_Prop_GlyphToScriptMap; - - - /************************************************************************** - * - * @property: - * fallback-script - * - * @description: - * *Experimental* *only* - * - * If no auto-hinter script module can be assigned to a glyph, a - * fallback script gets assigned to it (see also the - * @glyph-to-script-map property). By default, this is - * @FT_AUTOHINTER_SCRIPT_CJK. Using the `fallback-script' property, - * this fallback value can be changed. - * - * { - * FT_Library library; - * FT_UInt fallback_script = FT_AUTOHINTER_SCRIPT_NONE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", - * "fallback-script", &fallback_script ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * It's important to use the right timing for changing this value: The - * creation of the glyph-to-script map that eventually uses the - * fallback script value gets triggered either by setting or reading a - * face-specific property like @glyph-to-script-map, or by auto-hinting - * any glyph from that face. In particular, if you have already created - * an @FT_Face structure but not loaded any glyph (using the - * auto-hinter), a change of the fallback script will affect this face. - * - */ - - - /************************************************************************** - * - * @property: - * default-script - * - * @description: - * *Experimental* *only* - * - * If Freetype gets compiled with FT_CONFIG_OPTION_USE_HARFBUZZ to make - * the HarfBuzz library access OpenType features for getting better - * glyph coverages, this property sets the (auto-fitter) script to be - * used for the default (OpenType) script data of a font's GSUB table. - * Features for the default script are intended for all scripts not - * explicitly handled in GSUB; an example is a `dlig' feature, - * containing the combination of the characters `T', `E', and `L' to - * form a `TEL' ligature. - * - * By default, this is @FT_AUTOHINTER_SCRIPT_LATIN. Using the - * `default-script' property, this default value can be changed. - * - * { - * FT_Library library; - * FT_UInt default_script = FT_AUTOHINTER_SCRIPT_NONE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", - * "default-script", &default_script ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * It's important to use the right timing for changing this value: The - * creation of the glyph-to-script map that eventually uses the - * default script value gets triggered either by setting or reading a - * face-specific property like @glyph-to-script-map, or by auto-hinting - * any glyph from that face. In particular, if you have already created - * an @FT_Face structure but not loaded any glyph (using the - * auto-hinter), a change of the default script will affect this face. - * - */ - - - /************************************************************************** - * - * @property: - * increase-x-height - * - * @description: - * For ppem values in the range 6~<= ppem <= `increase-x-height', round - * up the font's x~height much more often than normally. If the value - * is set to~0, which is the default, this feature is switched off. Use - * this property to improve the legibility of small font sizes if - * necessary. - * - * { - * FT_Library library; - * FT_Face face; - * FT_Prop_IncreaseXHeight prop; - * - * - * FT_Init_FreeType( &library ); - * FT_New_Face( library, "foo.ttf", 0, &face ); - * FT_Set_Char_Size( face, 10 * 64, 0, 72, 0 ); - * - * prop.face = face; - * prop.limit = 14; - * - * FT_Property_Set( library, "autofitter", - * "increase-x-height", &prop ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * Set this value right after calling @FT_Set_Char_Size, but before - * loading any glyph (using the auto-hinter). - * - */ - - - /************************************************************************** - * - * @struct: - * FT_Prop_IncreaseXHeight - * - * @description: - * The data exchange structure for the @increase-x-height property. - * - */ - typedef struct FT_Prop_IncreaseXHeight_ - { - FT_Face face; - FT_UInt limit; - - } FT_Prop_IncreaseXHeight; - - /* */ - - -FT_END_HEADER - -#endif /* __FTAUTOH_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftbbox.h b/lib/linux/include/ftbbox.h deleted file mode 100644 index d6800e2..0000000 --- a/lib/linux/include/ftbbox.h +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftbbox.h */ -/* */ -/* FreeType exact bbox computation (specification). */ -/* */ -/* Copyright 1996-2001, 2003, 2007, 2011, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This component has a _single_ role: to compute exact outline bounding */ - /* boxes. */ - /* */ - /* It is separated from the rest of the engine for various technical */ - /* reasons. It may well be integrated in `ftoutln' later. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTBBOX_H__ -#define __FTBBOX_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* outline_processing */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Get_BBox */ - /* */ - /* <Description> */ - /* Compute the exact bounding box of an outline. This is slower */ - /* than computing the control box. However, it uses an advanced */ - /* algorithm that returns _very_ quickly when the two boxes */ - /* coincide. Otherwise, the outline Bézier arcs are traversed to */ - /* extract their extrema. */ - /* */ - /* <Input> */ - /* outline :: A pointer to the source outline. */ - /* */ - /* <Output> */ - /* abbox :: The outline's exact bounding box. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If the font is tricky and the glyph has been loaded with */ - /* @FT_LOAD_NO_SCALE, the resulting BBox is meaningless. To get */ - /* reasonable values for the BBox it is necessary to load the glyph */ - /* at a large ppem value (so that the hinting instructions can */ - /* properly shift and scale the subglyphs), then extracting the BBox, */ - /* which can be eventually converted back to font units. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Get_BBox( FT_Outline* outline, - FT_BBox *abbox ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTBBOX_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/linux/include/ftbdf.h b/lib/linux/include/ftbdf.h deleted file mode 100644 index 6d262e4..0000000 --- a/lib/linux/include/ftbdf.h +++ /dev/null @@ -1,210 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftbdf.h */ -/* */ -/* FreeType API for accessing BDF-specific strings (specification). */ -/* */ -/* Copyright 2002-2004, 2006, 2009, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTBDF_H__ -#define __FTBDF_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* bdf_fonts */ - /* */ - /* <Title> */ - /* BDF and PCF Files */ - /* */ - /* <Abstract> */ - /* BDF and PCF specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of functions specific to BDF */ - /* and PCF fonts. */ - /* */ - /*************************************************************************/ - - - /********************************************************************** - * - * @enum: - * BDF_PropertyType - * - * @description: - * A list of BDF property types. - * - * @values: - * BDF_PROPERTY_TYPE_NONE :: - * Value~0 is used to indicate a missing property. - * - * BDF_PROPERTY_TYPE_ATOM :: - * Property is a string atom. - * - * BDF_PROPERTY_TYPE_INTEGER :: - * Property is a 32-bit signed integer. - * - * BDF_PROPERTY_TYPE_CARDINAL :: - * Property is a 32-bit unsigned integer. - */ - typedef enum BDF_PropertyType_ - { - BDF_PROPERTY_TYPE_NONE = 0, - BDF_PROPERTY_TYPE_ATOM = 1, - BDF_PROPERTY_TYPE_INTEGER = 2, - BDF_PROPERTY_TYPE_CARDINAL = 3 - - } BDF_PropertyType; - - - /********************************************************************** - * - * @type: - * BDF_Property - * - * @description: - * A handle to a @BDF_PropertyRec structure to model a given - * BDF/PCF property. - */ - typedef struct BDF_PropertyRec_* BDF_Property; - - - /********************************************************************** - * - * @struct: - * BDF_PropertyRec - * - * @description: - * This structure models a given BDF/PCF property. - * - * @fields: - * type :: - * The property type. - * - * u.atom :: - * The atom string, if type is @BDF_PROPERTY_TYPE_ATOM. May be - * NULL, indicating an empty string. - * - * u.integer :: - * A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER. - * - * u.cardinal :: - * An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL. - */ - typedef struct BDF_PropertyRec_ - { - BDF_PropertyType type; - union { - const char* atom; - FT_Int32 integer; - FT_UInt32 cardinal; - - } u; - - } BDF_PropertyRec; - - - /********************************************************************** - * - * @function: - * FT_Get_BDF_Charset_ID - * - * @description: - * Retrieve a BDF font character set identity, according to - * the BDF specification. - * - * @input: - * face :: - * A handle to the input face. - * - * @output: - * acharset_encoding :: - * Charset encoding, as a C~string, owned by the face. - * - * acharset_registry :: - * Charset registry, as a C~string, owned by the face. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with BDF faces, returning an error otherwise. - */ - FT_EXPORT( FT_Error ) - FT_Get_BDF_Charset_ID( FT_Face face, - const char* *acharset_encoding, - const char* *acharset_registry ); - - - /********************************************************************** - * - * @function: - * FT_Get_BDF_Property - * - * @description: - * Retrieve a BDF property from a BDF or PCF font file. - * - * @input: - * face :: A handle to the input face. - * - * name :: The property name. - * - * @output: - * aproperty :: The property. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function works with BDF _and_ PCF fonts. It returns an error - * otherwise. It also returns an error if the property is not in the - * font. - * - * A `property' is a either key-value pair within the STARTPROPERTIES - * ... ENDPROPERTIES block of a BDF font or a key-value pair from the - * `info->props' array within a `FontRec' structure of a PCF font. - * - * Integer properties are always stored as `signed' within PCF fonts; - * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value - * for BDF fonts only. - * - * In case of error, `aproperty->type' is always set to - * @BDF_PROPERTY_TYPE_NONE. - */ - FT_EXPORT( FT_Error ) - FT_Get_BDF_Property( FT_Face face, - const char* prop_name, - BDF_PropertyRec *aproperty ); - - /* */ - -FT_END_HEADER - -#endif /* __FTBDF_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftbitmap.h b/lib/linux/include/ftbitmap.h deleted file mode 100644 index eae7169..0000000 --- a/lib/linux/include/ftbitmap.h +++ /dev/null @@ -1,232 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftbitmap.h */ -/* */ -/* FreeType utility functions for bitmaps (specification). */ -/* */ -/* Copyright 2004-2006, 2008, 2013, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTBITMAP_H__ -#define __FTBITMAP_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* bitmap_handling */ - /* */ - /* <Title> */ - /* Bitmap Handling */ - /* */ - /* <Abstract> */ - /* Handling FT_Bitmap objects. */ - /* */ - /* <Description> */ - /* This section contains functions for handling @FT_Bitmap objects. */ - /* Note that none of the functions changes the bitmap's `flow' (as */ - /* indicated by the sign of the `pitch' field in `FT_Bitmap'). */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_New */ - /* */ - /* <Description> */ - /* Initialize a pointer to an @FT_Bitmap structure. */ - /* */ - /* <InOut> */ - /* abitmap :: A pointer to the bitmap structure. */ - /* */ - FT_EXPORT( void ) - FT_Bitmap_New( FT_Bitmap *abitmap ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Copy */ - /* */ - /* <Description> */ - /* Copy a bitmap into another one. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* source :: A handle to the source bitmap. */ - /* */ - /* <Output> */ - /* target :: A handle to the target bitmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Copy( FT_Library library, - const FT_Bitmap *source, - FT_Bitmap *target); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Embolden */ - /* */ - /* <Description> */ - /* Embolden a bitmap. The new bitmap will be about `xStrength' */ - /* pixels wider and `yStrength' pixels higher. The left and bottom */ - /* borders are kept unchanged. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* xStrength :: How strong the glyph is emboldened horizontally. */ - /* Expressed in 26.6 pixel format. */ - /* */ - /* yStrength :: How strong the glyph is emboldened vertically. */ - /* Expressed in 26.6 pixel format. */ - /* */ - /* <InOut> */ - /* bitmap :: A handle to the target bitmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The current implementation restricts `xStrength' to be less than */ - /* or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. */ - /* */ - /* If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, */ - /* you should call @FT_GlyphSlot_Own_Bitmap on the slot first. */ - /* */ - /* Bitmaps in @FT_PIXEL_MODE_GRAY2 and @FT_PIXEL_MODE_GRAY@ format */ - /* are converted to @FT_PIXEL_MODE_GRAY format (i.e., 8bpp). */ - /* */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Embolden( FT_Library library, - FT_Bitmap* bitmap, - FT_Pos xStrength, - FT_Pos yStrength ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Convert */ - /* */ - /* <Description> */ - /* Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp */ - /* to a bitmap object with depth 8bpp, making the number of used */ - /* bytes line (a.k.a. the `pitch') a multiple of `alignment'. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* source :: The source bitmap. */ - /* */ - /* alignment :: The pitch of the bitmap is a multiple of this */ - /* parameter. Common values are 1, 2, or 4. */ - /* */ - /* <Output> */ - /* target :: The target bitmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* It is possible to call @FT_Bitmap_Convert multiple times without */ - /* calling @FT_Bitmap_Done (the memory is simply reallocated). */ - /* */ - /* Use @FT_Bitmap_Done to finally remove the bitmap object. */ - /* */ - /* The `library' argument is taken to have access to FreeType's */ - /* memory handling functions. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Convert( FT_Library library, - const FT_Bitmap *source, - FT_Bitmap *target, - FT_Int alignment ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GlyphSlot_Own_Bitmap */ - /* */ - /* <Description> */ - /* Make sure that a glyph slot owns `slot->bitmap'. */ - /* */ - /* <Input> */ - /* slot :: The glyph slot. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function is to be used in combination with */ - /* @FT_Bitmap_Embolden. */ - /* */ - FT_EXPORT( FT_Error ) - FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Done */ - /* */ - /* <Description> */ - /* Destroy a bitmap object created with @FT_Bitmap_New. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* bitmap :: The bitmap object to be freed. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The `library' argument is taken to have access to FreeType's */ - /* memory handling functions. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Done( FT_Library library, - FT_Bitmap *bitmap ); - - - /* */ - - -FT_END_HEADER - -#endif /* __FTBITMAP_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftbzip2.h b/lib/linux/include/ftbzip2.h deleted file mode 100644 index 4dce161..0000000 --- a/lib/linux/include/ftbzip2.h +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftbzip2.h */ -/* */ -/* Bzip2-compressed stream support. */ -/* */ -/* Copyright 2010 by */ -/* Joel Klinghed. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTBZIP2_H__ -#define __FTBZIP2_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* <Section> */ - /* bzip2 */ - /* */ - /* <Title> */ - /* BZIP2 Streams */ - /* */ - /* <Abstract> */ - /* Using bzip2-compressed font files. */ - /* */ - /* <Description> */ - /* This section contains the declaration of Bzip2-specific functions. */ - /* */ - /*************************************************************************/ - - - /************************************************************************ - * - * @function: - * FT_Stream_OpenBzip2 - * - * @description: - * Open a new stream to parse bzip2-compressed font files. This is - * mainly used to support the compressed `*.pcf.bz2' fonts that come - * with XFree86. - * - * @input: - * stream :: - * The target embedding stream. - * - * source :: - * The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close' on the new stream will - * *not* call `FT_Stream_Close' on the source stream. None of the stream - * objects will be released to the heap. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream. - * - * In certain builds of the library, bzip2 compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a bzip2 compressed stream - * from it and re-open the face with it. - * - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with bzip2 support. - */ - FT_EXPORT( FT_Error ) - FT_Stream_OpenBzip2( FT_Stream stream, - FT_Stream source ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTBZIP2_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftcache.h b/lib/linux/include/ftcache.h deleted file mode 100644 index a30e925..0000000 --- a/lib/linux/include/ftcache.h +++ /dev/null @@ -1,1057 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcache.h */ -/* */ -/* FreeType Cache subsystem (specification). */ -/* */ -/* Copyright 1996-2008, 2010, 2013, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTCACHE_H__ -#define __FTCACHE_H__ - - -#include <ft2build.h> -#include FT_GLYPH_H - - -FT_BEGIN_HEADER - - - /************************************************************************* - * - * <Section> - * cache_subsystem - * - * <Title> - * Cache Sub-System - * - * <Abstract> - * How to cache face, size, and glyph data with FreeType~2. - * - * <Description> - * This section describes the FreeType~2 cache sub-system, which is used - * to limit the number of concurrently opened @FT_Face and @FT_Size - * objects, as well as caching information like character maps and glyph - * images while limiting their maximum memory usage. - * - * Note that all types and functions begin with the `FTC_' prefix. - * - * The cache is highly portable and thus doesn't know anything about the - * fonts installed on your system, or how to access them. This implies - * the following scheme: - * - * First, available or installed font faces are uniquely identified by - * @FTC_FaceID values, provided to the cache by the client. Note that - * the cache only stores and compares these values, and doesn't try to - * interpret them in any way. - * - * Second, the cache calls, only when needed, a client-provided function - * to convert an @FTC_FaceID into a new @FT_Face object. The latter is - * then completely managed by the cache, including its termination - * through @FT_Done_Face. To monitor termination of face objects, the - * finalizer callback in the `generic' field of the @FT_Face object can - * be used, which might also be used to store the @FTC_FaceID of the - * face. - * - * Clients are free to map face IDs to anything else. The most simple - * usage is to associate them to a (pathname,face_index) pair that is - * used to call @FT_New_Face. However, more complex schemes are also - * possible. - * - * Note that for the cache to work correctly, the face ID values must be - * *persistent*, which means that the contents they point to should not - * change at runtime, or that their value should not become invalid. - * - * If this is unavoidable (e.g., when a font is uninstalled at runtime), - * you should call @FTC_Manager_RemoveFaceID as soon as possible, to let - * the cache get rid of any references to the old @FTC_FaceID it may - * keep internally. Failure to do so will lead to incorrect behaviour - * or even crashes. - * - * To use the cache, start with calling @FTC_Manager_New to create a new - * @FTC_Manager object, which models a single cache instance. You can - * then look up @FT_Face and @FT_Size objects with - * @FTC_Manager_LookupFace and @FTC_Manager_LookupSize, respectively. - * - * If you want to use the charmap caching, call @FTC_CMapCache_New, then - * later use @FTC_CMapCache_Lookup to perform the equivalent of - * @FT_Get_Char_Index, only much faster. - * - * If you want to use the @FT_Glyph caching, call @FTC_ImageCache, then - * later use @FTC_ImageCache_Lookup to retrieve the corresponding - * @FT_Glyph objects from the cache. - * - * If you need lots of small bitmaps, it is much more memory efficient - * to call @FTC_SBitCache_New followed by @FTC_SBitCache_Lookup. This - * returns @FTC_SBitRec structures, which are used to store small - * bitmaps directly. (A small bitmap is one whose metrics and - * dimensions all fit into 8-bit integers). - * - * We hope to also provide a kerning cache in the near future. - * - * - * <Order> - * FTC_Manager - * FTC_FaceID - * FTC_Face_Requester - * - * FTC_Manager_New - * FTC_Manager_Reset - * FTC_Manager_Done - * FTC_Manager_LookupFace - * FTC_Manager_LookupSize - * FTC_Manager_RemoveFaceID - * - * FTC_Node - * FTC_Node_Unref - * - * FTC_ImageCache - * FTC_ImageCache_New - * FTC_ImageCache_Lookup - * - * FTC_SBit - * FTC_SBitCache - * FTC_SBitCache_New - * FTC_SBitCache_Lookup - * - * FTC_CMapCache - * FTC_CMapCache_New - * FTC_CMapCache_Lookup - * - *************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** BASIC TYPE DEFINITIONS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /************************************************************************* - * - * @type: FTC_FaceID - * - * @description: - * An opaque pointer type that is used to identity face objects. The - * contents of such objects is application-dependent. - * - * These pointers are typically used to point to a user-defined - * structure containing a font file path, and face index. - * - * @note: - * Never use NULL as a valid @FTC_FaceID. - * - * Face IDs are passed by the client to the cache manager that calls, - * when needed, the @FTC_Face_Requester to translate them into new - * @FT_Face objects. - * - * If the content of a given face ID changes at runtime, or if the value - * becomes invalid (e.g., when uninstalling a font), you should - * immediately call @FTC_Manager_RemoveFaceID before any other cache - * function. - * - * Failure to do so will result in incorrect behaviour or even - * memory leaks and crashes. - */ - typedef FT_Pointer FTC_FaceID; - - - /************************************************************************ - * - * @functype: - * FTC_Face_Requester - * - * @description: - * A callback function provided by client applications. It is used by - * the cache manager to translate a given @FTC_FaceID into a new valid - * @FT_Face object, on demand. - * - * <Input> - * face_id :: - * The face ID to resolve. - * - * library :: - * A handle to a FreeType library object. - * - * req_data :: - * Application-provided request data (see note below). - * - * <Output> - * aface :: - * A new @FT_Face handle. - * - * <Return> - * FreeType error code. 0~means success. - * - * <Note> - * The third parameter `req_data' is the same as the one passed by the - * client when @FTC_Manager_New is called. - * - * The face requester should not perform funny things on the returned - * face object, like creating a new @FT_Size for it, or setting a - * transformation through @FT_Set_Transform! - */ - typedef FT_Error - (*FTC_Face_Requester)( FTC_FaceID face_id, - FT_Library library, - FT_Pointer req_data, - FT_Face* aface ); - - /* */ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** CACHE MANAGER OBJECT *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_Manager */ - /* */ - /* <Description> */ - /* This object corresponds to one instance of the cache-subsystem. */ - /* It is used to cache one or more @FT_Face objects, along with */ - /* corresponding @FT_Size objects. */ - /* */ - /* The manager intentionally limits the total number of opened */ - /* @FT_Face and @FT_Size objects to control memory usage. See the */ - /* `max_faces' and `max_sizes' parameters of @FTC_Manager_New. */ - /* */ - /* The manager is also used to cache `nodes' of various types while */ - /* limiting their total memory usage. */ - /* */ - /* All limitations are enforced by keeping lists of managed objects */ - /* in most-recently-used order, and flushing old nodes to make room */ - /* for new ones. */ - /* */ - typedef struct FTC_ManagerRec_* FTC_Manager; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_Node */ - /* */ - /* <Description> */ - /* An opaque handle to a cache node object. Each cache node is */ - /* reference-counted. A node with a count of~0 might be flushed */ - /* out of a full cache whenever a lookup request is performed. */ - /* */ - /* If you look up nodes, you have the ability to `acquire' them, */ - /* i.e., to increment their reference count. This will prevent the */ - /* node from being flushed out of the cache until you explicitly */ - /* `release' it (see @FTC_Node_Unref). */ - /* */ - /* See also @FTC_SBitCache_Lookup and @FTC_ImageCache_Lookup. */ - /* */ - typedef struct FTC_NodeRec_* FTC_Node; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_New */ - /* */ - /* <Description> */ - /* Create a new cache manager. */ - /* */ - /* <Input> */ - /* library :: The parent FreeType library handle to use. */ - /* */ - /* max_faces :: Maximum number of opened @FT_Face objects managed by */ - /* this cache instance. Use~0 for defaults. */ - /* */ - /* max_sizes :: Maximum number of opened @FT_Size objects managed by */ - /* this cache instance. Use~0 for defaults. */ - /* */ - /* max_bytes :: Maximum number of bytes to use for cached data nodes. */ - /* Use~0 for defaults. Note that this value does not */ - /* account for managed @FT_Face and @FT_Size objects. */ - /* */ - /* requester :: An application-provided callback used to translate */ - /* face IDs into real @FT_Face objects. */ - /* */ - /* req_data :: A generic pointer that is passed to the requester */ - /* each time it is called (see @FTC_Face_Requester). */ - /* */ - /* <Output> */ - /* amanager :: A handle to a new manager object. 0~in case of */ - /* failure. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_Manager_New( FT_Library library, - FT_UInt max_faces, - FT_UInt max_sizes, - FT_ULong max_bytes, - FTC_Face_Requester requester, - FT_Pointer req_data, - FTC_Manager *amanager ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_Reset */ - /* */ - /* <Description> */ - /* Empty a given cache manager. This simply gets rid of all the */ - /* currently cached @FT_Face and @FT_Size objects within the manager. */ - /* */ - /* <InOut> */ - /* manager :: A handle to the manager. */ - /* */ - FT_EXPORT( void ) - FTC_Manager_Reset( FTC_Manager manager ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_Done */ - /* */ - /* <Description> */ - /* Destroy a given manager after emptying it. */ - /* */ - /* <Input> */ - /* manager :: A handle to the target cache manager object. */ - /* */ - FT_EXPORT( void ) - FTC_Manager_Done( FTC_Manager manager ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_LookupFace */ - /* */ - /* <Description> */ - /* Retrieve the @FT_Face object that corresponds to a given face ID */ - /* through a cache manager. */ - /* */ - /* <Input> */ - /* manager :: A handle to the cache manager. */ - /* */ - /* face_id :: The ID of the face object. */ - /* */ - /* <Output> */ - /* aface :: A handle to the face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned @FT_Face object is always owned by the manager. You */ - /* should never try to discard it yourself. */ - /* */ - /* The @FT_Face object doesn't necessarily have a current size object */ - /* (i.e., face->size can be~0). If you need a specific `font size', */ - /* use @FTC_Manager_LookupSize instead. */ - /* */ - /* Never change the face's transformation matrix (i.e., never call */ - /* the @FT_Set_Transform function) on a returned face! If you need */ - /* to transform glyphs, do it yourself after glyph loading. */ - /* */ - /* When you perform a lookup, out-of-memory errors are detected */ - /* _within_ the lookup and force incremental flushes of the cache */ - /* until enough memory is released for the lookup to succeed. */ - /* */ - /* If a lookup fails with `FT_Err_Out_Of_Memory' the cache has */ - /* already been completely flushed, and still no memory was available */ - /* for the operation. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_Manager_LookupFace( FTC_Manager manager, - FTC_FaceID face_id, - FT_Face *aface ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FTC_ScalerRec */ - /* */ - /* <Description> */ - /* A structure used to describe a given character size in either */ - /* pixels or points to the cache manager. See */ - /* @FTC_Manager_LookupSize. */ - /* */ - /* <Fields> */ - /* face_id :: The source face ID. */ - /* */ - /* width :: The character width. */ - /* */ - /* height :: The character height. */ - /* */ - /* pixel :: A Boolean. If 1, the `width' and `height' fields are */ - /* interpreted as integer pixel character sizes. */ - /* Otherwise, they are expressed as 1/64th of points. */ - /* */ - /* x_res :: Only used when `pixel' is value~0 to indicate the */ - /* horizontal resolution in dpi. */ - /* */ - /* y_res :: Only used when `pixel' is value~0 to indicate the */ - /* vertical resolution in dpi. */ - /* */ - /* <Note> */ - /* This type is mainly used to retrieve @FT_Size objects through the */ - /* cache manager. */ - /* */ - typedef struct FTC_ScalerRec_ - { - FTC_FaceID face_id; - FT_UInt width; - FT_UInt height; - FT_Int pixel; - FT_UInt x_res; - FT_UInt y_res; - - } FTC_ScalerRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FTC_Scaler */ - /* */ - /* <Description> */ - /* A handle to an @FTC_ScalerRec structure. */ - /* */ - typedef struct FTC_ScalerRec_* FTC_Scaler; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_LookupSize */ - /* */ - /* <Description> */ - /* Retrieve the @FT_Size object that corresponds to a given */ - /* @FTC_ScalerRec pointer through a cache manager. */ - /* */ - /* <Input> */ - /* manager :: A handle to the cache manager. */ - /* */ - /* scaler :: A scaler handle. */ - /* */ - /* <Output> */ - /* asize :: A handle to the size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned @FT_Size object is always owned by the manager. You */ - /* should never try to discard it by yourself. */ - /* */ - /* You can access the parent @FT_Face object simply as `size->face' */ - /* if you need it. Note that this object is also owned by the */ - /* manager. */ - /* */ - /* <Note> */ - /* When you perform a lookup, out-of-memory errors are detected */ - /* _within_ the lookup and force incremental flushes of the cache */ - /* until enough memory is released for the lookup to succeed. */ - /* */ - /* If a lookup fails with `FT_Err_Out_Of_Memory' the cache has */ - /* already been completely flushed, and still no memory is available */ - /* for the operation. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_Manager_LookupSize( FTC_Manager manager, - FTC_Scaler scaler, - FT_Size *asize ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Node_Unref */ - /* */ - /* <Description> */ - /* Decrement a cache node's internal reference count. When the count */ - /* reaches 0, it is not destroyed but becomes eligible for subsequent */ - /* cache flushes. */ - /* */ - /* <Input> */ - /* node :: The cache node handle. */ - /* */ - /* manager :: The cache manager handle. */ - /* */ - FT_EXPORT( void ) - FTC_Node_Unref( FTC_Node node, - FTC_Manager manager ); - - - /************************************************************************* - * - * @function: - * FTC_Manager_RemoveFaceID - * - * @description: - * A special function used to indicate to the cache manager that - * a given @FTC_FaceID is no longer valid, either because its - * content changed, or because it was deallocated or uninstalled. - * - * @input: - * manager :: - * The cache manager handle. - * - * face_id :: - * The @FTC_FaceID to be removed. - * - * @note: - * This function flushes all nodes from the cache corresponding to this - * `face_id', with the exception of nodes with a non-null reference - * count. - * - * Such nodes are however modified internally so as to never appear - * in later lookups with the same `face_id' value, and to be immediately - * destroyed when released by all their users. - * - */ - FT_EXPORT( void ) - FTC_Manager_RemoveFaceID( FTC_Manager manager, - FTC_FaceID face_id ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* cache_subsystem */ - /* */ - /*************************************************************************/ - - /************************************************************************* - * - * @type: - * FTC_CMapCache - * - * @description: - * An opaque handle used to model a charmap cache. This cache is to - * hold character codes -> glyph indices mappings. - * - */ - typedef struct FTC_CMapCacheRec_* FTC_CMapCache; - - - /************************************************************************* - * - * @function: - * FTC_CMapCache_New - * - * @description: - * Create a new charmap cache. - * - * @input: - * manager :: - * A handle to the cache manager. - * - * @output: - * acache :: - * A new cache handle. NULL in case of error. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Like all other caches, this one will be destroyed with the cache - * manager. - * - */ - FT_EXPORT( FT_Error ) - FTC_CMapCache_New( FTC_Manager manager, - FTC_CMapCache *acache ); - - - /************************************************************************ - * - * @function: - * FTC_CMapCache_Lookup - * - * @description: - * Translate a character code into a glyph index, using the charmap - * cache. - * - * @input: - * cache :: - * A charmap cache handle. - * - * face_id :: - * The source face ID. - * - * cmap_index :: - * The index of the charmap in the source face. Any negative value - * means to use the cache @FT_Face's default charmap. - * - * char_code :: - * The character code (in the corresponding charmap). - * - * @return: - * Glyph index. 0~means `no glyph'. - * - */ - FT_EXPORT( FT_UInt ) - FTC_CMapCache_Lookup( FTC_CMapCache cache, - FTC_FaceID face_id, - FT_Int cmap_index, - FT_UInt32 char_code ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* cache_subsystem */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** IMAGE CACHE OBJECT *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /************************************************************************* - * - * @struct: - * FTC_ImageTypeRec - * - * @description: - * A structure used to model the type of images in a glyph cache. - * - * @fields: - * face_id :: - * The face ID. - * - * width :: - * The width in pixels. - * - * height :: - * The height in pixels. - * - * flags :: - * The load flags, as in @FT_Load_Glyph. - * - */ - typedef struct FTC_ImageTypeRec_ - { - FTC_FaceID face_id; - FT_Int width; - FT_Int height; - FT_Int32 flags; - - } FTC_ImageTypeRec; - - - /************************************************************************* - * - * @type: - * FTC_ImageType - * - * @description: - * A handle to an @FTC_ImageTypeRec structure. - * - */ - typedef struct FTC_ImageTypeRec_* FTC_ImageType; - - - /* */ - - -#define FTC_IMAGE_TYPE_COMPARE( d1, d2 ) \ - ( (d1)->face_id == (d2)->face_id && \ - (d1)->width == (d2)->width && \ - (d1)->flags == (d2)->flags ) - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_ImageCache */ - /* */ - /* <Description> */ - /* A handle to a glyph image cache object. They are designed to */ - /* hold many distinct glyph images while not exceeding a certain */ - /* memory threshold. */ - /* */ - typedef struct FTC_ImageCacheRec_* FTC_ImageCache; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_ImageCache_New */ - /* */ - /* <Description> */ - /* Create a new glyph image cache. */ - /* */ - /* <Input> */ - /* manager :: The parent manager for the image cache. */ - /* */ - /* <Output> */ - /* acache :: A handle to the new glyph image cache object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_ImageCache_New( FTC_Manager manager, - FTC_ImageCache *acache ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_ImageCache_Lookup */ - /* */ - /* <Description> */ - /* Retrieve a given glyph image from a glyph image cache. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source glyph image cache. */ - /* */ - /* type :: A pointer to a glyph image type descriptor. */ - /* */ - /* gindex :: The glyph index to retrieve. */ - /* */ - /* <Output> */ - /* aglyph :: The corresponding @FT_Glyph object. 0~in case of */ - /* failure. */ - /* */ - /* anode :: Used to return the address of of the corresponding cache */ - /* node after incrementing its reference count (see note */ - /* below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned glyph is owned and managed by the glyph image cache. */ - /* Never try to transform or discard it manually! You can however */ - /* create a copy with @FT_Glyph_Copy and modify the new one. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the glyph image, after increasing its reference */ - /* count. This ensures that the node (as well as the @FT_Glyph) will */ - /* always be kept in the cache until you call @FTC_Node_Unref to */ - /* `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the @FT_Glyph could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - FT_EXPORT( FT_Error ) - FTC_ImageCache_Lookup( FTC_ImageCache cache, - FTC_ImageType type, - FT_UInt gindex, - FT_Glyph *aglyph, - FTC_Node *anode ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_ImageCache_LookupScaler */ - /* */ - /* <Description> */ - /* A variant of @FTC_ImageCache_Lookup that uses an @FTC_ScalerRec */ - /* to specify the face ID and its size. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source glyph image cache. */ - /* */ - /* scaler :: A pointer to a scaler descriptor. */ - /* */ - /* load_flags :: The corresponding load flags. */ - /* */ - /* gindex :: The glyph index to retrieve. */ - /* */ - /* <Output> */ - /* aglyph :: The corresponding @FT_Glyph object. 0~in case of */ - /* failure. */ - /* */ - /* anode :: Used to return the address of of the corresponding */ - /* cache node after incrementing its reference count */ - /* (see note below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned glyph is owned and managed by the glyph image cache. */ - /* Never try to transform or discard it manually! You can however */ - /* create a copy with @FT_Glyph_Copy and modify the new one. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the glyph image, after increasing its reference */ - /* count. This ensures that the node (as well as the @FT_Glyph) will */ - /* always be kept in the cache until you call @FTC_Node_Unref to */ - /* `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the @FT_Glyph could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - /* Calls to @FT_Set_Char_Size and friends have no effect on cached */ - /* glyphs; you should always use the FreeType cache API instead. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_ImageCache_LookupScaler( FTC_ImageCache cache, - FTC_Scaler scaler, - FT_ULong load_flags, - FT_UInt gindex, - FT_Glyph *aglyph, - FTC_Node *anode ); - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_SBit */ - /* */ - /* <Description> */ - /* A handle to a small bitmap descriptor. See the @FTC_SBitRec */ - /* structure for details. */ - /* */ - typedef struct FTC_SBitRec_* FTC_SBit; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FTC_SBitRec */ - /* */ - /* <Description> */ - /* A very compact structure used to describe a small glyph bitmap. */ - /* */ - /* <Fields> */ - /* width :: The bitmap width in pixels. */ - /* */ - /* height :: The bitmap height in pixels. */ - /* */ - /* left :: The horizontal distance from the pen position to the */ - /* left bitmap border (a.k.a. `left side bearing', or */ - /* `lsb'). */ - /* */ - /* top :: The vertical distance from the pen position (on the */ - /* baseline) to the upper bitmap border (a.k.a. `top */ - /* side bearing'). The distance is positive for upwards */ - /* y~coordinates. */ - /* */ - /* format :: The format of the glyph bitmap (monochrome or gray). */ - /* */ - /* max_grays :: Maximum gray level value (in the range 1 to~255). */ - /* */ - /* pitch :: The number of bytes per bitmap line. May be positive */ - /* or negative. */ - /* */ - /* xadvance :: The horizontal advance width in pixels. */ - /* */ - /* yadvance :: The vertical advance height in pixels. */ - /* */ - /* buffer :: A pointer to the bitmap pixels. */ - /* */ - typedef struct FTC_SBitRec_ - { - FT_Byte width; - FT_Byte height; - FT_Char left; - FT_Char top; - - FT_Byte format; - FT_Byte max_grays; - FT_Short pitch; - FT_Char xadvance; - FT_Char yadvance; - - FT_Byte* buffer; - - } FTC_SBitRec; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_SBitCache */ - /* */ - /* <Description> */ - /* A handle to a small bitmap cache. These are special cache objects */ - /* used to store small glyph bitmaps (and anti-aliased pixmaps) in a */ - /* much more efficient way than the traditional glyph image cache */ - /* implemented by @FTC_ImageCache. */ - /* */ - typedef struct FTC_SBitCacheRec_* FTC_SBitCache; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_SBitCache_New */ - /* */ - /* <Description> */ - /* Create a new cache to store small glyph bitmaps. */ - /* */ - /* <Input> */ - /* manager :: A handle to the source cache manager. */ - /* */ - /* <Output> */ - /* acache :: A handle to the new sbit cache. NULL in case of error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_SBitCache_New( FTC_Manager manager, - FTC_SBitCache *acache ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_SBitCache_Lookup */ - /* */ - /* <Description> */ - /* Look up a given small glyph bitmap in a given sbit cache and */ - /* `lock' it to prevent its flushing from the cache until needed. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source sbit cache. */ - /* */ - /* type :: A pointer to the glyph image type descriptor. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* <Output> */ - /* sbit :: A handle to a small bitmap descriptor. */ - /* */ - /* anode :: Used to return the address of of the corresponding cache */ - /* node after incrementing its reference count (see note */ - /* below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The small bitmap descriptor and its bit buffer are owned by the */ - /* cache and should never be freed by the application. They might */ - /* as well disappear from memory on the next cache lookup, so don't */ - /* treat them as persistent data. */ - /* */ - /* The descriptor's `buffer' field is set to~0 to indicate a missing */ - /* glyph bitmap. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the bitmap, after increasing its reference count. */ - /* This ensures that the node (as well as the image) will always be */ - /* kept in the cache until you call @FTC_Node_Unref to `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the bitmap could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - FT_EXPORT( FT_Error ) - FTC_SBitCache_Lookup( FTC_SBitCache cache, - FTC_ImageType type, - FT_UInt gindex, - FTC_SBit *sbit, - FTC_Node *anode ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_SBitCache_LookupScaler */ - /* */ - /* <Description> */ - /* A variant of @FTC_SBitCache_Lookup that uses an @FTC_ScalerRec */ - /* to specify the face ID and its size. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source sbit cache. */ - /* */ - /* scaler :: A pointer to the scaler descriptor. */ - /* */ - /* load_flags :: The corresponding load flags. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* <Output> */ - /* sbit :: A handle to a small bitmap descriptor. */ - /* */ - /* anode :: Used to return the address of of the corresponding */ - /* cache node after incrementing its reference count */ - /* (see note below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The small bitmap descriptor and its bit buffer are owned by the */ - /* cache and should never be freed by the application. They might */ - /* as well disappear from memory on the next cache lookup, so don't */ - /* treat them as persistent data. */ - /* */ - /* The descriptor's `buffer' field is set to~0 to indicate a missing */ - /* glyph bitmap. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the bitmap, after increasing its reference count. */ - /* This ensures that the node (as well as the image) will always be */ - /* kept in the cache until you call @FTC_Node_Unref to `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the bitmap could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - FT_EXPORT( FT_Error ) - FTC_SBitCache_LookupScaler( FTC_SBitCache cache, - FTC_Scaler scaler, - FT_ULong load_flags, - FT_UInt gindex, - FTC_SBit *sbit, - FTC_Node *anode ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTCACHE_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftcffdrv.h b/lib/linux/include/ftcffdrv.h deleted file mode 100644 index f7031bc..0000000 --- a/lib/linux/include/ftcffdrv.h +++ /dev/null @@ -1,262 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcffdrv.h */ -/* */ -/* FreeType API for controlling the CFF driver (specification only). */ -/* */ -/* Copyright 2013, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTCFFDRV_H__ -#define __FTCFFDRV_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * cff_driver - * - * @title: - * The CFF driver - * - * @abstract: - * Controlling the CFF driver module. - * - * @description: - * While FreeType's CFF driver doesn't expose API functions by itself, - * it is possible to control its behaviour with @FT_Property_Set and - * @FT_Property_Get. The list below gives the available properties - * together with the necessary macros and structures. - * - * The CFF driver's module name is `cff'. - * - * *Hinting* *and* *antialiasing* *principles* *of* *the* *new* *engine* - * - * The rasterizer is positioning horizontal features (e.g., ascender - * height & x-height, or crossbars) on the pixel grid and minimizing the - * amount of antialiasing applied to them, while placing vertical - * features (vertical stems) on the pixel grid without hinting, thus - * representing the stem position and weight accurately. Sometimes the - * vertical stems may be only partially black. In this context, - * `antialiasing' means that stems are not positioned exactly on pixel - * borders, causing a fuzzy appearance. - * - * There are two principles behind this approach. - * - * 1) No hinting in the horizontal direction: Unlike `superhinted' - * TrueType, which changes glyph widths to accommodate regular - * inter-glyph spacing, Adobe's approach is `faithful to the design' in - * representing both the glyph width and the inter-glyph spacing - * designed for the font. This makes the screen display as close as it - * can be to the result one would get with infinite resolution, while - * preserving what is considered the key characteristics of each glyph. - * Note that the distances between unhinted and grid-fitted positions at - * small sizes are comparable to kerning values and thus would be - * noticeable (and distracting) while reading if hinting were applied. - * - * One of the reasons to not hint horizontally is antialiasing for LCD - * screens: The pixel geometry of modern displays supplies three - * vertical sub-pixels as the eye moves horizontally across each visible - * pixel. On devices where we can be certain this characteristic is - * present a rasterizer can take advantage of the sub-pixels to add - * increments of weight. In Western writing systems this turns out to - * be the more critical direction anyway; the weights and spacing of - * vertical stems (see above) are central to Armenian, Cyrillic, Greek, - * and Latin type designs. Even when the rasterizer uses greyscale - * antialiasing instead of color (a necessary compromise when one - * doesn't know the screen characteristics), the unhinted vertical - * features preserve the design's weight and spacing much better than - * aliased type would. - * - * 2) Aligment in the vertical direction: Weights and spacing along the - * y~axis are less critical; what is much more important is the visual - * alignment of related features (like cap-height and x-height). The - * sense of alignment for these is enhanced by the sharpness of grid-fit - * edges, while the cruder vertical resolution (full pixels instead of - * 1/3 pixels) is less of a problem. - * - * On the technical side, horizontal alignment zones for ascender, - * x-height, and other important height values (traditionally called - * `blue zones') as defined in the font are positioned independently, - * each being rounded to the nearest pixel edge, taking care of - * overshoot suppression at small sizes, stem darkening, and scaling. - * - * Hstems (this is, hint values defined in the font to help align - * horizontal features) that fall within a blue zone are said to be - * `captured' and are aligned to that zone. Uncaptured stems are moved - * in one of four ways, top edge up or down, bottom edge up or down. - * Unless there are conflicting hstems, the smallest movement is taken - * to minimize distortion. - * - * @order: - * hinting-engine - * no-stem-darkening - * darkening-parameters - * - */ - - - /************************************************************************** - * - * @property: - * hinting-engine - * - * @description: - * Thanks to Adobe, which contributed a new hinting (and parsing) - * engine, an application can select between `freetype' and `adobe' if - * compiled with CFF_CONFIG_OPTION_OLD_ENGINE. If this configuration - * macro isn't defined, `hinting-engine' does nothing. - * - * The default engine is `freetype' if CFF_CONFIG_OPTION_OLD_ENGINE is - * defined, and `adobe' otherwise. - * - * The following example code demonstrates how to select Adobe's hinting - * engine (omitting the error handling). - * - * { - * FT_Library library; - * FT_UInt hinting_engine = FT_CFF_HINTING_ADOBE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "hinting-engine", &hinting_engine ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - - /************************************************************************** - * - * @enum: - * FT_CFF_HINTING_XXX - * - * @description: - * A list of constants used for the @hinting-engine property to select - * the hinting engine for CFF fonts. - * - * @values: - * FT_CFF_HINTING_FREETYPE :: - * Use the old FreeType hinting engine. - * - * FT_CFF_HINTING_ADOBE :: - * Use the hinting engine contributed by Adobe. - * - */ -#define FT_CFF_HINTING_FREETYPE 0 -#define FT_CFF_HINTING_ADOBE 1 - - - /************************************************************************** - * - * @property: - * no-stem-darkening - * - * @description: - * By default, the Adobe CFF engine darkens stems at smaller sizes, - * regardless of hinting, to enhance contrast. This feature requires - * a rendering system with proper gamma correction. Setting this - * property, stem darkening gets switched off. - * - * Note that stem darkening is never applied if @FT_LOAD_NO_SCALE is set. - * - * { - * FT_Library library; - * FT_Bool no_stem_darkening = TRUE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "no-stem-darkening", &no_stem_darkening ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - - /************************************************************************** - * - * @property: - * darkening-parameters - * - * @description: - * By default, the Adobe CFF engine darkens stems as follows (if the - * `no-stem-darkening' property isn't set): - * - * { - * stem width <= 0.5px: darkening amount = 0.4px - * stem width = 1px: darkening amount = 0.275px - * stem width = 1.667px: darkening amount = 0.275px - * stem width >= 2.333px: darkening amount = 0px - * } - * - * and piecewise linear in-between. At configuration time, these four - * control points can be set with the macro - * `CFF_CONFIG_OPTION_DARKENING_PARAMETERS'. At runtime, the control - * points can be changed using the `darkening-parameters' property, as - * the following example demonstrates. - * - * { - * FT_Library library; - * FT_Int darken_params[8] = { 500, 300, // x1, y1 - * 1000, 200, // x2, y2 - * 1500, 100, // x3, y3 - * 2000, 0 }; // x4, y4 - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "darkening-parameters", darken_params ); - * } - * - * The x~values give the stem width, and the y~values the darkening - * amount. The unit is 1000th of pixels. All coordinate values must be - * positive; the x~values must be monotonically increasing; the - * y~values must be monotonically decreasing and smaller than or - * equal to 500 (corresponding to half a pixel); the slope of each - * linear piece must be shallower than -1 (e.g., -.4). - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - /* */ - - -FT_END_HEADER - - -#endif /* __FTCFFDRV_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftchapters.h b/lib/linux/include/ftchapters.h deleted file mode 100644 index d333761..0000000 --- a/lib/linux/include/ftchapters.h +++ /dev/null @@ -1,121 +0,0 @@ -/***************************************************************************/ -/* */ -/* This file defines the structure of the FreeType reference. */ -/* It is used by the python script that generates the HTML files. */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* general_remarks */ -/* */ -/* <Title> */ -/* General Remarks */ -/* */ -/* <Sections> */ -/* header_inclusion */ -/* user_allocation */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* core_api */ -/* */ -/* <Title> */ -/* Core API */ -/* */ -/* <Sections> */ -/* version */ -/* basic_types */ -/* base_interface */ -/* glyph_variants */ -/* glyph_management */ -/* mac_specific */ -/* sizes_management */ -/* header_file_macros */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* format_specific */ -/* */ -/* <Title> */ -/* Format-Specific API */ -/* */ -/* <Sections> */ -/* multiple_masters */ -/* truetype_tables */ -/* type1_tables */ -/* sfnt_names */ -/* bdf_fonts */ -/* cid_fonts */ -/* pfr_fonts */ -/* winfnt_fonts */ -/* font_formats */ -/* gasp_table */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* module_specific */ -/* */ -/* <Title> */ -/* Controlling FreeType Modules */ -/* */ -/* <Sections> */ -/* auto_hinter */ -/* cff_driver */ -/* tt_driver */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* cache_subsystem */ -/* */ -/* <Title> */ -/* Cache Sub-System */ -/* */ -/* <Sections> */ -/* cache_subsystem */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* support_api */ -/* */ -/* <Title> */ -/* Support API */ -/* */ -/* <Sections> */ -/* computations */ -/* list_processing */ -/* outline_processing */ -/* quick_advance */ -/* bitmap_handling */ -/* raster */ -/* glyph_stroker */ -/* system_interface */ -/* module_management */ -/* gzip */ -/* lzw */ -/* bzip2 */ -/* lcd_filtering */ -/* */ -/***************************************************************************/ diff --git a/lib/linux/include/ftcid.h b/lib/linux/include/ftcid.h deleted file mode 100644 index 17550d8..0000000 --- a/lib/linux/include/ftcid.h +++ /dev/null @@ -1,167 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcid.h */ -/* */ -/* FreeType API for accessing CID font information (specification). */ -/* */ -/* Copyright 2007, 2009 by Dereg Clegg, Michael Toftdal. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTCID_H__ -#define __FTCID_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* cid_fonts */ - /* */ - /* <Title> */ - /* CID Fonts */ - /* */ - /* <Abstract> */ - /* CID-keyed font specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of CID-keyed font specific */ - /* functions. */ - /* */ - /*************************************************************************/ - - - /********************************************************************** - * - * @function: - * FT_Get_CID_Registry_Ordering_Supplement - * - * @description: - * Retrieve the Registry/Ordering/Supplement triple (also known as the - * "R/O/S") from a CID-keyed font. - * - * @input: - * face :: - * A handle to the input face. - * - * @output: - * registry :: - * The registry, as a C~string, owned by the face. - * - * ordering :: - * The ordering, as a C~string, owned by the face. - * - * supplement :: - * The supplement. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with CID faces, returning an error - * otherwise. - * - * @since: - * 2.3.6 - */ - FT_EXPORT( FT_Error ) - FT_Get_CID_Registry_Ordering_Supplement( FT_Face face, - const char* *registry, - const char* *ordering, - FT_Int *supplement); - - - /********************************************************************** - * - * @function: - * FT_Get_CID_Is_Internally_CID_Keyed - * - * @description: - * Retrieve the type of the input face, CID keyed or not. In - * constrast to the @FT_IS_CID_KEYED macro this function returns - * successfully also for CID-keyed fonts in an SNFT wrapper. - * - * @input: - * face :: - * A handle to the input face. - * - * @output: - * is_cid :: - * The type of the face as an @FT_Bool. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with CID faces and OpenType fonts, - * returning an error otherwise. - * - * @since: - * 2.3.9 - */ - FT_EXPORT( FT_Error ) - FT_Get_CID_Is_Internally_CID_Keyed( FT_Face face, - FT_Bool *is_cid ); - - - /********************************************************************** - * - * @function: - * FT_Get_CID_From_Glyph_Index - * - * @description: - * Retrieve the CID of the input glyph index. - * - * @input: - * face :: - * A handle to the input face. - * - * glyph_index :: - * The input glyph index. - * - * @output: - * cid :: - * The CID as an @FT_UInt. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with CID faces and OpenType fonts, - * returning an error otherwise. - * - * @since: - * 2.3.9 - */ - FT_EXPORT( FT_Error ) - FT_Get_CID_From_Glyph_Index( FT_Face face, - FT_UInt glyph_index, - FT_UInt *cid ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTCID_H__ */ - - -/* END */ diff --git a/lib/linux/include/fterrdef.h b/lib/linux/include/fterrdef.h deleted file mode 100644 index 99b2fad..0000000 --- a/lib/linux/include/fterrdef.h +++ /dev/null @@ -1,249 +0,0 @@ -/***************************************************************************/ -/* */ -/* fterrdef.h */ -/* */ -/* FreeType error codes (specification). */ -/* */ -/* Copyright 2002, 2004, 2006, 2007, 2010-2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** LIST OF ERROR CODES/MESSAGES *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - - /* You need to define both FT_ERRORDEF_ and FT_NOERRORDEF_ before */ - /* including this file. */ - - - /* generic errors */ - - FT_NOERRORDEF_( Ok, 0x00, - "no error" ) - - FT_ERRORDEF_( Cannot_Open_Resource, 0x01, - "cannot open resource" ) - FT_ERRORDEF_( Unknown_File_Format, 0x02, - "unknown file format" ) - FT_ERRORDEF_( Invalid_File_Format, 0x03, - "broken file" ) - FT_ERRORDEF_( Invalid_Version, 0x04, - "invalid FreeType version" ) - FT_ERRORDEF_( Lower_Module_Version, 0x05, - "module version is too low" ) - FT_ERRORDEF_( Invalid_Argument, 0x06, - "invalid argument" ) - FT_ERRORDEF_( Unimplemented_Feature, 0x07, - "unimplemented feature" ) - FT_ERRORDEF_( Invalid_Table, 0x08, - "broken table" ) - FT_ERRORDEF_( Invalid_Offset, 0x09, - "broken offset within table" ) - FT_ERRORDEF_( Array_Too_Large, 0x0A, - "array allocation size too large" ) - FT_ERRORDEF_( Missing_Module, 0x0B, - "missing module" ) - FT_ERRORDEF_( Missing_Property, 0x0C, - "missing property" ) - - /* glyph/character errors */ - - FT_ERRORDEF_( Invalid_Glyph_Index, 0x10, - "invalid glyph index" ) - FT_ERRORDEF_( Invalid_Character_Code, 0x11, - "invalid character code" ) - FT_ERRORDEF_( Invalid_Glyph_Format, 0x12, - "unsupported glyph image format" ) - FT_ERRORDEF_( Cannot_Render_Glyph, 0x13, - "cannot render this glyph format" ) - FT_ERRORDEF_( Invalid_Outline, 0x14, - "invalid outline" ) - FT_ERRORDEF_( Invalid_Composite, 0x15, - "invalid composite glyph" ) - FT_ERRORDEF_( Too_Many_Hints, 0x16, - "too many hints" ) - FT_ERRORDEF_( Invalid_Pixel_Size, 0x17, - "invalid pixel size" ) - - /* handle errors */ - - FT_ERRORDEF_( Invalid_Handle, 0x20, - "invalid object handle" ) - FT_ERRORDEF_( Invalid_Library_Handle, 0x21, - "invalid library handle" ) - FT_ERRORDEF_( Invalid_Driver_Handle, 0x22, - "invalid module handle" ) - FT_ERRORDEF_( Invalid_Face_Handle, 0x23, - "invalid face handle" ) - FT_ERRORDEF_( Invalid_Size_Handle, 0x24, - "invalid size handle" ) - FT_ERRORDEF_( Invalid_Slot_Handle, 0x25, - "invalid glyph slot handle" ) - FT_ERRORDEF_( Invalid_CharMap_Handle, 0x26, - "invalid charmap handle" ) - FT_ERRORDEF_( Invalid_Cache_Handle, 0x27, - "invalid cache manager handle" ) - FT_ERRORDEF_( Invalid_Stream_Handle, 0x28, - "invalid stream handle" ) - - /* driver errors */ - - FT_ERRORDEF_( Too_Many_Drivers, 0x30, - "too many modules" ) - FT_ERRORDEF_( Too_Many_Extensions, 0x31, - "too many extensions" ) - - /* memory errors */ - - FT_ERRORDEF_( Out_Of_Memory, 0x40, - "out of memory" ) - FT_ERRORDEF_( Unlisted_Object, 0x41, - "unlisted object" ) - - /* stream errors */ - - FT_ERRORDEF_( Cannot_Open_Stream, 0x51, - "cannot open stream" ) - FT_ERRORDEF_( Invalid_Stream_Seek, 0x52, - "invalid stream seek" ) - FT_ERRORDEF_( Invalid_Stream_Skip, 0x53, - "invalid stream skip" ) - FT_ERRORDEF_( Invalid_Stream_Read, 0x54, - "invalid stream read" ) - FT_ERRORDEF_( Invalid_Stream_Operation, 0x55, - "invalid stream operation" ) - FT_ERRORDEF_( Invalid_Frame_Operation, 0x56, - "invalid frame operation" ) - FT_ERRORDEF_( Nested_Frame_Access, 0x57, - "nested frame access" ) - FT_ERRORDEF_( Invalid_Frame_Read, 0x58, - "invalid frame read" ) - - /* raster errors */ - - FT_ERRORDEF_( Raster_Uninitialized, 0x60, - "raster uninitialized" ) - FT_ERRORDEF_( Raster_Corrupted, 0x61, - "raster corrupted" ) - FT_ERRORDEF_( Raster_Overflow, 0x62, - "raster overflow" ) - FT_ERRORDEF_( Raster_Negative_Height, 0x63, - "negative height while rastering" ) - - /* cache errors */ - - FT_ERRORDEF_( Too_Many_Caches, 0x70, - "too many registered caches" ) - - /* TrueType and SFNT errors */ - - FT_ERRORDEF_( Invalid_Opcode, 0x80, - "invalid opcode" ) - FT_ERRORDEF_( Too_Few_Arguments, 0x81, - "too few arguments" ) - FT_ERRORDEF_( Stack_Overflow, 0x82, - "stack overflow" ) - FT_ERRORDEF_( Code_Overflow, 0x83, - "code overflow" ) - FT_ERRORDEF_( Bad_Argument, 0x84, - "bad argument" ) - FT_ERRORDEF_( Divide_By_Zero, 0x85, - "division by zero" ) - FT_ERRORDEF_( Invalid_Reference, 0x86, - "invalid reference" ) - FT_ERRORDEF_( Debug_OpCode, 0x87, - "found debug opcode" ) - FT_ERRORDEF_( ENDF_In_Exec_Stream, 0x88, - "found ENDF opcode in execution stream" ) - FT_ERRORDEF_( Nested_DEFS, 0x89, - "nested DEFS" ) - FT_ERRORDEF_( Invalid_CodeRange, 0x8A, - "invalid code range" ) - FT_ERRORDEF_( Execution_Too_Long, 0x8B, - "execution context too long" ) - FT_ERRORDEF_( Too_Many_Function_Defs, 0x8C, - "too many function definitions" ) - FT_ERRORDEF_( Too_Many_Instruction_Defs, 0x8D, - "too many instruction definitions" ) - FT_ERRORDEF_( Table_Missing, 0x8E, - "SFNT font table missing" ) - FT_ERRORDEF_( Horiz_Header_Missing, 0x8F, - "horizontal header (hhea) table missing" ) - FT_ERRORDEF_( Locations_Missing, 0x90, - "locations (loca) table missing" ) - FT_ERRORDEF_( Name_Table_Missing, 0x91, - "name table missing" ) - FT_ERRORDEF_( CMap_Table_Missing, 0x92, - "character map (cmap) table missing" ) - FT_ERRORDEF_( Hmtx_Table_Missing, 0x93, - "horizontal metrics (hmtx) table missing" ) - FT_ERRORDEF_( Post_Table_Missing, 0x94, - "PostScript (post) table missing" ) - FT_ERRORDEF_( Invalid_Horiz_Metrics, 0x95, - "invalid horizontal metrics" ) - FT_ERRORDEF_( Invalid_CharMap_Format, 0x96, - "invalid character map (cmap) format" ) - FT_ERRORDEF_( Invalid_PPem, 0x97, - "invalid ppem value" ) - FT_ERRORDEF_( Invalid_Vert_Metrics, 0x98, - "invalid vertical metrics" ) - FT_ERRORDEF_( Could_Not_Find_Context, 0x99, - "could not find context" ) - FT_ERRORDEF_( Invalid_Post_Table_Format, 0x9A, - "invalid PostScript (post) table format" ) - FT_ERRORDEF_( Invalid_Post_Table, 0x9B, - "invalid PostScript (post) table" ) - - /* CFF, CID, and Type 1 errors */ - - FT_ERRORDEF_( Syntax_Error, 0xA0, - "opcode syntax error" ) - FT_ERRORDEF_( Stack_Underflow, 0xA1, - "argument stack underflow" ) - FT_ERRORDEF_( Ignore, 0xA2, - "ignore" ) - FT_ERRORDEF_( No_Unicode_Glyph_Name, 0xA3, - "no Unicode glyph name found" ) - FT_ERRORDEF_( Glyph_Too_Big, 0xA4, - "glyph to big for hinting" ) - - /* BDF errors */ - - FT_ERRORDEF_( Missing_Startfont_Field, 0xB0, - "`STARTFONT' field missing" ) - FT_ERRORDEF_( Missing_Font_Field, 0xB1, - "`FONT' field missing" ) - FT_ERRORDEF_( Missing_Size_Field, 0xB2, - "`SIZE' field missing" ) - FT_ERRORDEF_( Missing_Fontboundingbox_Field, 0xB3, - "`FONTBOUNDINGBOX' field missing" ) - FT_ERRORDEF_( Missing_Chars_Field, 0xB4, - "`CHARS' field missing" ) - FT_ERRORDEF_( Missing_Startchar_Field, 0xB5, - "`STARTCHAR' field missing" ) - FT_ERRORDEF_( Missing_Encoding_Field, 0xB6, - "`ENCODING' field missing" ) - FT_ERRORDEF_( Missing_Bbx_Field, 0xB7, - "`BBX' field missing" ) - FT_ERRORDEF_( Bbx_Too_Big, 0xB8, - "`BBX' too big" ) - FT_ERRORDEF_( Corrupted_Font_Header, 0xB9, - "Font header corrupted or missing fields" ) - FT_ERRORDEF_( Corrupted_Font_Glyphs, 0xBA, - "Font glyphs corrupted or missing fields" ) - - -/* END */ diff --git a/lib/linux/include/fterrors.h b/lib/linux/include/fterrors.h deleted file mode 100644 index 0fa3e4d..0000000 --- a/lib/linux/include/fterrors.h +++ /dev/null @@ -1,198 +0,0 @@ -/***************************************************************************/ -/* */ -/* fterrors.h */ -/* */ -/* FreeType error code handling (specification). */ -/* */ -/* Copyright 1996-2002, 2004, 2007, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This special header file is used to define the handling of FT2 */ - /* enumeration constants. It can also be used to generate error message */ - /* strings with a small macro trick explained below. */ - /* */ - /* I - Error Formats */ - /* ----------------- */ - /* */ - /* The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be */ - /* defined in ftoption.h in order to make the higher byte indicate */ - /* the module where the error has happened (this is not compatible */ - /* with standard builds of FreeType 2). See the file `ftmoderr.h' for */ - /* more details. */ - /* */ - /* */ - /* II - Error Message strings */ - /* -------------------------- */ - /* */ - /* The error definitions below are made through special macros that */ - /* allow client applications to build a table of error message strings */ - /* if they need it. The strings are not included in a normal build of */ - /* FreeType 2 to save space (most client applications do not use */ - /* them). */ - /* */ - /* To do so, you have to define the following macros before including */ - /* this file: */ - /* */ - /* FT_ERROR_START_LIST :: */ - /* This macro is called before anything else to define the start of */ - /* the error list. It is followed by several FT_ERROR_DEF calls */ - /* (see below). */ - /* */ - /* FT_ERROR_DEF( e, v, s ) :: */ - /* This macro is called to define one single error. */ - /* `e' is the error code identifier (e.g. FT_Err_Invalid_Argument). */ - /* `v' is the error numerical value. */ - /* `s' is the corresponding error string. */ - /* */ - /* FT_ERROR_END_LIST :: */ - /* This macro ends the list. */ - /* */ - /* Additionally, you have to undefine __FTERRORS_H__ before #including */ - /* this file. */ - /* */ - /* Here is a simple example: */ - /* */ - /* { */ - /* #undef __FTERRORS_H__ */ - /* #define FT_ERRORDEF( e, v, s ) { e, s }, */ - /* #define FT_ERROR_START_LIST { */ - /* #define FT_ERROR_END_LIST { 0, 0 } }; */ - /* */ - /* const struct */ - /* { */ - /* int err_code; */ - /* const char* err_msg; */ - /* } ft_errors[] = */ - /* */ - /* #include FT_ERRORS_H */ - /* } */ - /* */ - /*************************************************************************/ - - -#ifndef __FTERRORS_H__ -#define __FTERRORS_H__ - - - /* include module base error codes */ -#include FT_MODULE_ERRORS_H - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** SETUP MACROS *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - -#undef FT_NEED_EXTERN_C - - - /* FT_ERR_PREFIX is used as a prefix for error identifiers. */ - /* By default, we use `FT_Err_'. */ - /* */ -#ifndef FT_ERR_PREFIX -#define FT_ERR_PREFIX FT_Err_ -#endif - - - /* FT_ERR_BASE is used as the base for module-specific errors. */ - /* */ -#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS - -#ifndef FT_ERR_BASE -#define FT_ERR_BASE FT_Mod_Err_Base -#endif - -#else - -#undef FT_ERR_BASE -#define FT_ERR_BASE 0 - -#endif /* FT_CONFIG_OPTION_USE_MODULE_ERRORS */ - - - /* If FT_ERRORDEF is not defined, we need to define a simple */ - /* enumeration type. */ - /* */ -#ifndef FT_ERRORDEF - -#define FT_ERRORDEF( e, v, s ) e = v, -#define FT_ERROR_START_LIST enum { -#define FT_ERROR_END_LIST FT_ERR_CAT( FT_ERR_PREFIX, Max ) }; - -#ifdef __cplusplus -#define FT_NEED_EXTERN_C - extern "C" { -#endif - -#endif /* !FT_ERRORDEF */ - - - /* this macro is used to define an error */ -#define FT_ERRORDEF_( e, v, s ) \ - FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v + FT_ERR_BASE, s ) - - /* this is only used for <module>_Err_Ok, which must be 0! */ -#define FT_NOERRORDEF_( e, v, s ) \ - FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v, s ) - - -#ifdef FT_ERROR_START_LIST - FT_ERROR_START_LIST -#endif - - - /* now include the error codes */ -#include FT_ERROR_DEFINITIONS_H - - -#ifdef FT_ERROR_END_LIST - FT_ERROR_END_LIST -#endif - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** SIMPLE CLEANUP *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - -#ifdef FT_NEED_EXTERN_C - } -#endif - -#undef FT_ERROR_START_LIST -#undef FT_ERROR_END_LIST - -#undef FT_ERRORDEF -#undef FT_ERRORDEF_ -#undef FT_NOERRORDEF_ - -#undef FT_NEED_EXTERN_C -#undef FT_ERR_BASE - - /* FT_ERR_PREFIX is needed internally */ -#ifndef FT2_BUILD_LIBRARY -#undef FT_ERR_PREFIX -#endif - -#endif /* __FTERRORS_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftgasp.h b/lib/linux/include/ftgasp.h deleted file mode 100644 index 3f3d765..0000000 --- a/lib/linux/include/ftgasp.h +++ /dev/null @@ -1,129 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftgasp.h */ -/* */ -/* Access of TrueType's `gasp' table (specification). */ -/* */ -/* Copyright 2007, 2008, 2011 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef _FT_GASP_H_ -#define _FT_GASP_H_ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - - /*************************************************************************** - * - * @section: - * gasp_table - * - * @title: - * Gasp Table - * - * @abstract: - * Retrieving TrueType `gasp' table entries. - * - * @description: - * The function @FT_Get_Gasp can be used to query a TrueType or OpenType - * font for specific entries in its `gasp' table, if any. This is - * mainly useful when implementing native TrueType hinting with the - * bytecode interpreter to duplicate the Windows text rendering results. - */ - - /************************************************************************* - * - * @enum: - * FT_GASP_XXX - * - * @description: - * A list of values and/or bit-flags returned by the @FT_Get_Gasp - * function. - * - * @values: - * FT_GASP_NO_TABLE :: - * This special value means that there is no GASP table in this face. - * It is up to the client to decide what to do. - * - * FT_GASP_DO_GRIDFIT :: - * Grid-fitting and hinting should be performed at the specified ppem. - * This *really* means TrueType bytecode interpretation. If this bit - * is not set, no hinting gets applied. - * - * FT_GASP_DO_GRAY :: - * Anti-aliased rendering should be performed at the specified ppem. - * If not set, do monochrome rendering. - * - * FT_GASP_SYMMETRIC_SMOOTHING :: - * If set, smoothing along multiple axes must be used with ClearType. - * - * FT_GASP_SYMMETRIC_GRIDFIT :: - * Grid-fitting must be used with ClearType's symmetric smoothing. - * - * @note: - * The bit-flags `FT_GASP_DO_GRIDFIT' and `FT_GASP_DO_GRAY' are to be - * used for standard font rasterization only. Independently of that, - * `FT_GASP_SYMMETRIC_SMOOTHING' and `FT_GASP_SYMMETRIC_GRIDFIT' are to - * be used if ClearType is enabled (and `FT_GASP_DO_GRIDFIT' and - * `FT_GASP_DO_GRAY' are consequently ignored). - * - * `ClearType' is Microsoft's implementation of LCD rendering, partly - * protected by patents. - * - * @since: - * 2.3.0 - */ -#define FT_GASP_NO_TABLE -1 -#define FT_GASP_DO_GRIDFIT 0x01 -#define FT_GASP_DO_GRAY 0x02 -#define FT_GASP_SYMMETRIC_SMOOTHING 0x08 -#define FT_GASP_SYMMETRIC_GRIDFIT 0x10 - - - /************************************************************************* - * - * @func: - * FT_Get_Gasp - * - * @description: - * Read the `gasp' table from a TrueType or OpenType font file and - * return the entry corresponding to a given character pixel size. - * - * @input: - * face :: The source face handle. - * ppem :: The vertical character pixel size. - * - * @return: - * Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no - * `gasp' table in the face. - * - * @since: - * 2.3.0 - */ - FT_EXPORT( FT_Int ) - FT_Get_Gasp( FT_Face face, - FT_UInt ppem ); - - /* */ - - -#endif /* _FT_GASP_H_ */ - - -/* END */ diff --git a/lib/linux/include/ftglyph.h b/lib/linux/include/ftglyph.h deleted file mode 100644 index 15fa6a9..0000000 --- a/lib/linux/include/ftglyph.h +++ /dev/null @@ -1,605 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftglyph.h */ -/* */ -/* FreeType convenience functions to handle glyphs (specification). */ -/* */ -/* Copyright 1996-2003, 2006, 2008, 2009, 2011, 2013, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file contains the definition of several convenience functions */ - /* that can be used by client applications to easily retrieve glyph */ - /* bitmaps and outlines from a given face. */ - /* */ - /* These functions should be optional if you are writing a font server */ - /* or text layout engine on top of FreeType. However, they are pretty */ - /* handy for many other simple uses of the library. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTGLYPH_H__ -#define __FTGLYPH_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* glyph_management */ - /* */ - /* <Title> */ - /* Glyph Management */ - /* */ - /* <Abstract> */ - /* Generic interface to manage individual glyph data. */ - /* */ - /* <Description> */ - /* This section contains definitions used to manage glyph data */ - /* through generic FT_Glyph objects. Each of them can contain a */ - /* bitmap, a vector outline, or even images in other formats. */ - /* */ - /*************************************************************************/ - - - /* forward declaration to a private type */ - typedef struct FT_Glyph_Class_ FT_Glyph_Class; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Glyph */ - /* */ - /* <Description> */ - /* Handle to an object used to model generic glyph images. It is a */ - /* pointer to the @FT_GlyphRec structure and can contain a glyph */ - /* bitmap or pointer. */ - /* */ - /* <Note> */ - /* Glyph objects are not owned by the library. You must thus release */ - /* them manually (through @FT_Done_Glyph) _before_ calling */ - /* @FT_Done_FreeType. */ - /* */ - typedef struct FT_GlyphRec_* FT_Glyph; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_GlyphRec */ - /* */ - /* <Description> */ - /* The root glyph structure contains a given glyph image plus its */ - /* advance width in 16.16 fixed-point format. */ - /* */ - /* <Fields> */ - /* library :: A handle to the FreeType library object. */ - /* */ - /* clazz :: A pointer to the glyph's class. Private. */ - /* */ - /* format :: The format of the glyph's image. */ - /* */ - /* advance :: A 16.16 vector that gives the glyph's advance width. */ - /* */ - typedef struct FT_GlyphRec_ - { - FT_Library library; - const FT_Glyph_Class* clazz; - FT_Glyph_Format format; - FT_Vector advance; - - } FT_GlyphRec; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_BitmapGlyph */ - /* */ - /* <Description> */ - /* A handle to an object used to model a bitmap glyph image. This is */ - /* a sub-class of @FT_Glyph, and a pointer to @FT_BitmapGlyphRec. */ - /* */ - typedef struct FT_BitmapGlyphRec_* FT_BitmapGlyph; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_BitmapGlyphRec */ - /* */ - /* <Description> */ - /* A structure used for bitmap glyph images. This really is a */ - /* `sub-class' of @FT_GlyphRec. */ - /* */ - /* <Fields> */ - /* root :: The root @FT_Glyph fields. */ - /* */ - /* left :: The left-side bearing, i.e., the horizontal distance */ - /* from the current pen position to the left border of the */ - /* glyph bitmap. */ - /* */ - /* top :: The top-side bearing, i.e., the vertical distance from */ - /* the current pen position to the top border of the glyph */ - /* bitmap. This distance is positive for upwards~y! */ - /* */ - /* bitmap :: A descriptor for the bitmap. */ - /* */ - /* <Note> */ - /* You can typecast an @FT_Glyph to @FT_BitmapGlyph if you have */ - /* `glyph->format == FT_GLYPH_FORMAT_BITMAP'. This lets you access */ - /* the bitmap's contents easily. */ - /* */ - /* The corresponding pixel buffer is always owned by @FT_BitmapGlyph */ - /* and is thus created and destroyed with it. */ - /* */ - typedef struct FT_BitmapGlyphRec_ - { - FT_GlyphRec root; - FT_Int left; - FT_Int top; - FT_Bitmap bitmap; - - } FT_BitmapGlyphRec; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_OutlineGlyph */ - /* */ - /* <Description> */ - /* A handle to an object used to model an outline glyph image. This */ - /* is a sub-class of @FT_Glyph, and a pointer to @FT_OutlineGlyphRec. */ - /* */ - typedef struct FT_OutlineGlyphRec_* FT_OutlineGlyph; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_OutlineGlyphRec */ - /* */ - /* <Description> */ - /* A structure used for outline (vectorial) glyph images. This */ - /* really is a `sub-class' of @FT_GlyphRec. */ - /* */ - /* <Fields> */ - /* root :: The root @FT_Glyph fields. */ - /* */ - /* outline :: A descriptor for the outline. */ - /* */ - /* <Note> */ - /* You can typecast an @FT_Glyph to @FT_OutlineGlyph if you have */ - /* `glyph->format == FT_GLYPH_FORMAT_OUTLINE'. This lets you access */ - /* the outline's content easily. */ - /* */ - /* As the outline is extracted from a glyph slot, its coordinates are */ - /* expressed normally in 26.6 pixels, unless the flag */ - /* @FT_LOAD_NO_SCALE was used in @FT_Load_Glyph() or @FT_Load_Char(). */ - /* */ - /* The outline's tables are always owned by the object and are */ - /* destroyed with it. */ - /* */ - typedef struct FT_OutlineGlyphRec_ - { - FT_GlyphRec root; - FT_Outline outline; - - } FT_OutlineGlyphRec; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Glyph */ - /* */ - /* <Description> */ - /* A function used to extract a glyph image from a slot. Note that */ - /* the created @FT_Glyph object must be released with @FT_Done_Glyph. */ - /* */ - /* <Input> */ - /* slot :: A handle to the source glyph slot. */ - /* */ - /* <Output> */ - /* aglyph :: A handle to the glyph object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Glyph( FT_GlyphSlot slot, - FT_Glyph *aglyph ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_Copy */ - /* */ - /* <Description> */ - /* A function used to copy a glyph image. Note that the created */ - /* @FT_Glyph object must be released with @FT_Done_Glyph. */ - /* */ - /* <Input> */ - /* source :: A handle to the source glyph object. */ - /* */ - /* <Output> */ - /* target :: A handle to the target glyph object. 0~in case of */ - /* error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Glyph_Copy( FT_Glyph source, - FT_Glyph *target ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_Transform */ - /* */ - /* <Description> */ - /* Transform a glyph image if its format is scalable. */ - /* */ - /* <InOut> */ - /* glyph :: A handle to the target glyph object. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to a 2x2 matrix to apply. */ - /* */ - /* delta :: A pointer to a 2d vector to apply. Coordinates are */ - /* expressed in 1/64th of a pixel. */ - /* */ - /* <Return> */ - /* FreeType error code (if not 0, the glyph format is not scalable). */ - /* */ - /* <Note> */ - /* The 2x2 transformation matrix is also applied to the glyph's */ - /* advance vector. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Glyph_Transform( FT_Glyph glyph, - FT_Matrix* matrix, - FT_Vector* delta ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Glyph_BBox_Mode */ - /* */ - /* <Description> */ - /* The mode how the values of @FT_Glyph_Get_CBox are returned. */ - /* */ - /* <Values> */ - /* FT_GLYPH_BBOX_UNSCALED :: */ - /* Return unscaled font units. */ - /* */ - /* FT_GLYPH_BBOX_SUBPIXELS :: */ - /* Return unfitted 26.6 coordinates. */ - /* */ - /* FT_GLYPH_BBOX_GRIDFIT :: */ - /* Return grid-fitted 26.6 coordinates. */ - /* */ - /* FT_GLYPH_BBOX_TRUNCATE :: */ - /* Return coordinates in integer pixels. */ - /* */ - /* FT_GLYPH_BBOX_PIXELS :: */ - /* Return grid-fitted pixel coordinates. */ - /* */ - typedef enum FT_Glyph_BBox_Mode_ - { - FT_GLYPH_BBOX_UNSCALED = 0, - FT_GLYPH_BBOX_SUBPIXELS = 0, - FT_GLYPH_BBOX_GRIDFIT = 1, - FT_GLYPH_BBOX_TRUNCATE = 2, - FT_GLYPH_BBOX_PIXELS = 3 - - } FT_Glyph_BBox_Mode; - - - /* these constants are deprecated; use the corresponding */ - /* `FT_Glyph_BBox_Mode' values instead */ -#define ft_glyph_bbox_unscaled FT_GLYPH_BBOX_UNSCALED -#define ft_glyph_bbox_subpixels FT_GLYPH_BBOX_SUBPIXELS -#define ft_glyph_bbox_gridfit FT_GLYPH_BBOX_GRIDFIT -#define ft_glyph_bbox_truncate FT_GLYPH_BBOX_TRUNCATE -#define ft_glyph_bbox_pixels FT_GLYPH_BBOX_PIXELS - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_Get_CBox */ - /* */ - /* <Description> */ - /* Return a glyph's `control box'. The control box encloses all the */ - /* outline's points, including Bézier control points. Though it */ - /* coincides with the exact bounding box for most glyphs, it can be */ - /* slightly larger in some situations (like when rotating an outline */ - /* that contains Bézier outside arcs). */ - /* */ - /* Computing the control box is very fast, while getting the bounding */ - /* box can take much more time as it needs to walk over all segments */ - /* and arcs in the outline. To get the latter, you can use the */ - /* `ftbbox' component, which is dedicated to this single task. */ - /* */ - /* <Input> */ - /* glyph :: A handle to the source glyph object. */ - /* */ - /* mode :: The mode that indicates how to interpret the returned */ - /* bounding box values. */ - /* */ - /* <Output> */ - /* acbox :: The glyph coordinate bounding box. Coordinates are */ - /* expressed in 1/64th of pixels if it is grid-fitted. */ - /* */ - /* <Note> */ - /* Coordinates are relative to the glyph origin, using the y~upwards */ - /* convention. */ - /* */ - /* If the glyph has been loaded with @FT_LOAD_NO_SCALE, `bbox_mode' */ - /* must be set to @FT_GLYPH_BBOX_UNSCALED to get unscaled font */ - /* units in 26.6 pixel format. The value @FT_GLYPH_BBOX_SUBPIXELS */ - /* is another name for this constant. */ - /* */ - /* If the font is tricky and the glyph has been loaded with */ - /* @FT_LOAD_NO_SCALE, the resulting CBox is meaningless. To get */ - /* reasonable values for the CBox it is necessary to load the glyph */ - /* at a large ppem value (so that the hinting instructions can */ - /* properly shift and scale the subglyphs), then extracting the CBox, */ - /* which can be eventually converted back to font units. */ - /* */ - /* Note that the maximum coordinates are exclusive, which means that */ - /* one can compute the width and height of the glyph image (be it in */ - /* integer or 26.6 pixels) as: */ - /* */ - /* { */ - /* width = bbox.xMax - bbox.xMin; */ - /* height = bbox.yMax - bbox.yMin; */ - /* } */ - /* */ - /* Note also that for 26.6 coordinates, if `bbox_mode' is set to */ - /* @FT_GLYPH_BBOX_GRIDFIT, the coordinates will also be grid-fitted, */ - /* which corresponds to: */ - /* */ - /* { */ - /* bbox.xMin = FLOOR(bbox.xMin); */ - /* bbox.yMin = FLOOR(bbox.yMin); */ - /* bbox.xMax = CEILING(bbox.xMax); */ - /* bbox.yMax = CEILING(bbox.yMax); */ - /* } */ - /* */ - /* To get the bbox in pixel coordinates, set `bbox_mode' to */ - /* @FT_GLYPH_BBOX_TRUNCATE. */ - /* */ - /* To get the bbox in grid-fitted pixel coordinates, set `bbox_mode' */ - /* to @FT_GLYPH_BBOX_PIXELS. */ - /* */ - FT_EXPORT( void ) - FT_Glyph_Get_CBox( FT_Glyph glyph, - FT_UInt bbox_mode, - FT_BBox *acbox ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_To_Bitmap */ - /* */ - /* <Description> */ - /* Convert a given glyph object to a bitmap glyph object. */ - /* */ - /* <InOut> */ - /* the_glyph :: A pointer to a handle to the target glyph. */ - /* */ - /* <Input> */ - /* render_mode :: An enumeration that describes how the data is */ - /* rendered. */ - /* */ - /* origin :: A pointer to a vector used to translate the glyph */ - /* image before rendering. Can be~0 (if no */ - /* translation). The origin is expressed in */ - /* 26.6 pixels. */ - /* */ - /* destroy :: A boolean that indicates that the original glyph */ - /* image should be destroyed by this function. It is */ - /* never destroyed in case of error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function does nothing if the glyph format isn't scalable. */ - /* */ - /* The glyph image is translated with the `origin' vector before */ - /* rendering. */ - /* */ - /* The first parameter is a pointer to an @FT_Glyph handle, that will */ - /* be _replaced_ by this function (with newly allocated data). */ - /* Typically, you would use (omitting error handling): */ - /* */ - /* */ - /* { */ - /* FT_Glyph glyph; */ - /* FT_BitmapGlyph glyph_bitmap; */ - /* */ - /* */ - /* // load glyph */ - /* error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAUT ); */ - /* */ - /* // extract glyph image */ - /* error = FT_Get_Glyph( face->glyph, &glyph ); */ - /* */ - /* // convert to a bitmap (default render mode + destroying old) */ - /* if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) */ - /* { */ - /* error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_NORMAL, */ - /* 0, 1 ); */ - /* if ( error ) // `glyph' unchanged */ - /* ... */ - /* } */ - /* */ - /* // access bitmap content by typecasting */ - /* glyph_bitmap = (FT_BitmapGlyph)glyph; */ - /* */ - /* // do funny stuff with it, like blitting/drawing */ - /* ... */ - /* */ - /* // discard glyph image (bitmap or not) */ - /* FT_Done_Glyph( glyph ); */ - /* } */ - /* */ - /* */ - /* Here another example, again without error handling: */ - /* */ - /* */ - /* { */ - /* FT_Glyph glyphs[MAX_GLYPHS] */ - /* */ - /* */ - /* ... */ - /* */ - /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ - /* error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) || */ - /* FT_Get_Glyph ( face->glyph, &glyph[idx] ); */ - /* */ - /* ... */ - /* */ - /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ - /* { */ - /* FT_Glyph bitmap = glyphs[idx]; */ - /* */ - /* */ - /* ... */ - /* */ - /* // after this call, `bitmap' no longer points into */ - /* // the `glyphs' array (and the old value isn't destroyed) */ - /* FT_Glyph_To_Bitmap( &bitmap, FT_RENDER_MODE_MONO, 0, 0 ); */ - /* */ - /* ... */ - /* */ - /* FT_Done_Glyph( bitmap ); */ - /* } */ - /* */ - /* ... */ - /* */ - /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ - /* FT_Done_Glyph( glyphs[idx] ); */ - /* } */ - /* */ - FT_EXPORT( FT_Error ) - FT_Glyph_To_Bitmap( FT_Glyph* the_glyph, - FT_Render_Mode render_mode, - FT_Vector* origin, - FT_Bool destroy ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Glyph */ - /* */ - /* <Description> */ - /* Destroy a given glyph. */ - /* */ - /* <Input> */ - /* glyph :: A handle to the target glyph object. */ - /* */ - FT_EXPORT( void ) - FT_Done_Glyph( FT_Glyph glyph ); - - /* */ - - - /* other helpful functions */ - - /*************************************************************************/ - /* */ - /* <Section> */ - /* computations */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Matrix_Multiply */ - /* */ - /* <Description> */ - /* Perform the matrix operation `b = a*b'. */ - /* */ - /* <Input> */ - /* a :: A pointer to matrix `a'. */ - /* */ - /* <InOut> */ - /* b :: A pointer to matrix `b'. */ - /* */ - /* <Note> */ - /* The result is undefined if either `a' or `b' is zero. */ - /* */ - FT_EXPORT( void ) - FT_Matrix_Multiply( const FT_Matrix* a, - FT_Matrix* b ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Matrix_Invert */ - /* */ - /* <Description> */ - /* Invert a 2x2 matrix. Return an error if it can't be inverted. */ - /* */ - /* <InOut> */ - /* matrix :: A pointer to the target matrix. Remains untouched in */ - /* case of error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Matrix_Invert( FT_Matrix* matrix ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTGLYPH_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/linux/include/ftgxval.h b/lib/linux/include/ftgxval.h deleted file mode 100644 index 88c3d93..0000000 --- a/lib/linux/include/ftgxval.h +++ /dev/null @@ -1,357 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftgxval.h */ -/* */ -/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ -/* */ -/* Copyright 2004-2006, 2013 by */ -/* Masatake YAMATO, Redhat K.K, */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/***************************************************************************/ -/* */ -/* gxvalid is derived from both gxlayout module and otvalid module. */ -/* Development of gxlayout is supported by the Information-technology */ -/* Promotion Agency(IPA), Japan. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTGXVAL_H__ -#define __FTGXVAL_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* gx_validation */ - /* */ - /* <Title> */ - /* TrueTypeGX/AAT Validation */ - /* */ - /* <Abstract> */ - /* An API to validate TrueTypeGX/AAT tables. */ - /* */ - /* <Description> */ - /* This section contains the declaration of functions to validate */ - /* some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, */ - /* trak, prop, lcar). */ - /* */ - /* <Order> */ - /* FT_TrueTypeGX_Validate */ - /* FT_TrueTypeGX_Free */ - /* */ - /* FT_ClassicKern_Validate */ - /* FT_ClassicKern_Free */ - /* */ - /* FT_VALIDATE_GX_LENGTH */ - /* FT_VALIDATE_GXXXX */ - /* FT_VALIDATE_CKERNXXX */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* */ - /* Warning: Use FT_VALIDATE_XXX to validate a table. */ - /* Following definitions are for gxvalid developers. */ - /* */ - /* */ - /*************************************************************************/ - -#define FT_VALIDATE_feat_INDEX 0 -#define FT_VALIDATE_mort_INDEX 1 -#define FT_VALIDATE_morx_INDEX 2 -#define FT_VALIDATE_bsln_INDEX 3 -#define FT_VALIDATE_just_INDEX 4 -#define FT_VALIDATE_kern_INDEX 5 -#define FT_VALIDATE_opbd_INDEX 6 -#define FT_VALIDATE_trak_INDEX 7 -#define FT_VALIDATE_prop_INDEX 8 -#define FT_VALIDATE_lcar_INDEX 9 -#define FT_VALIDATE_GX_LAST_INDEX FT_VALIDATE_lcar_INDEX - - - /************************************************************************* - * - * @macro: - * FT_VALIDATE_GX_LENGTH - * - * @description: - * The number of tables checked in this module. Use it as a parameter - * for the `table-length' argument of function @FT_TrueTypeGX_Validate. - */ -#define FT_VALIDATE_GX_LENGTH (FT_VALIDATE_GX_LAST_INDEX + 1) - - /* */ - - /* Up to 0x1000 is used by otvalid. - Ox2xxx is reserved for feature OT extension. */ -#define FT_VALIDATE_GX_START 0x4000 -#define FT_VALIDATE_GX_BITFIELD( tag ) \ - ( FT_VALIDATE_GX_START << FT_VALIDATE_##tag##_INDEX ) - - - /********************************************************************** - * - * @enum: - * FT_VALIDATE_GXXXX - * - * @description: - * A list of bit-field constants used with @FT_TrueTypeGX_Validate to - * indicate which TrueTypeGX/AAT Type tables should be validated. - * - * @values: - * FT_VALIDATE_feat :: - * Validate `feat' table. - * - * FT_VALIDATE_mort :: - * Validate `mort' table. - * - * FT_VALIDATE_morx :: - * Validate `morx' table. - * - * FT_VALIDATE_bsln :: - * Validate `bsln' table. - * - * FT_VALIDATE_just :: - * Validate `just' table. - * - * FT_VALIDATE_kern :: - * Validate `kern' table. - * - * FT_VALIDATE_opbd :: - * Validate `opbd' table. - * - * FT_VALIDATE_trak :: - * Validate `trak' table. - * - * FT_VALIDATE_prop :: - * Validate `prop' table. - * - * FT_VALIDATE_lcar :: - * Validate `lcar' table. - * - * FT_VALIDATE_GX :: - * Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern, - * opbd, trak, prop and lcar). - * - */ - -#define FT_VALIDATE_feat FT_VALIDATE_GX_BITFIELD( feat ) -#define FT_VALIDATE_mort FT_VALIDATE_GX_BITFIELD( mort ) -#define FT_VALIDATE_morx FT_VALIDATE_GX_BITFIELD( morx ) -#define FT_VALIDATE_bsln FT_VALIDATE_GX_BITFIELD( bsln ) -#define FT_VALIDATE_just FT_VALIDATE_GX_BITFIELD( just ) -#define FT_VALIDATE_kern FT_VALIDATE_GX_BITFIELD( kern ) -#define FT_VALIDATE_opbd FT_VALIDATE_GX_BITFIELD( opbd ) -#define FT_VALIDATE_trak FT_VALIDATE_GX_BITFIELD( trak ) -#define FT_VALIDATE_prop FT_VALIDATE_GX_BITFIELD( prop ) -#define FT_VALIDATE_lcar FT_VALIDATE_GX_BITFIELD( lcar ) - -#define FT_VALIDATE_GX ( FT_VALIDATE_feat | \ - FT_VALIDATE_mort | \ - FT_VALIDATE_morx | \ - FT_VALIDATE_bsln | \ - FT_VALIDATE_just | \ - FT_VALIDATE_kern | \ - FT_VALIDATE_opbd | \ - FT_VALIDATE_trak | \ - FT_VALIDATE_prop | \ - FT_VALIDATE_lcar ) - - - /********************************************************************** - * - * @function: - * FT_TrueTypeGX_Validate - * - * @description: - * Validate various TrueTypeGX tables to assure that all offsets and - * indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without - * error checking (which can be quite time consuming). - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the tables to be validated. See - * @FT_VALIDATE_GXXXX for possible values. - * - * table_length :: - * The size of the `tables' array. Normally, @FT_VALIDATE_GX_LENGTH - * should be passed. - * - * @output: - * tables :: - * The array where all validated sfnt tables are stored. - * The array itself must be allocated by a client. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with TrueTypeGX fonts, returning an error - * otherwise. - * - * After use, the application should deallocate the buffers pointed to by - * each `tables' element, by calling @FT_TrueTypeGX_Free. A NULL value - * indicates that the table either doesn't exist in the font, the - * application hasn't asked for validation, or the validator doesn't have - * the ability to validate the sfnt table. - */ - FT_EXPORT( FT_Error ) - FT_TrueTypeGX_Validate( FT_Face face, - FT_UInt validation_flags, - FT_Bytes tables[FT_VALIDATE_GX_LENGTH], - FT_UInt table_length ); - - - /********************************************************************** - * - * @function: - * FT_TrueTypeGX_Free - * - * @description: - * Free the buffer allocated by TrueTypeGX validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer allocated by - * @FT_TrueTypeGX_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_TrueTypeGX_Validate only. - */ - FT_EXPORT( void ) - FT_TrueTypeGX_Free( FT_Face face, - FT_Bytes table ); - - - /********************************************************************** - * - * @enum: - * FT_VALIDATE_CKERNXXX - * - * @description: - * A list of bit-field constants used with @FT_ClassicKern_Validate - * to indicate the classic kern dialect or dialects. If the selected - * type doesn't fit, @FT_ClassicKern_Validate regards the table as - * invalid. - * - * @values: - * FT_VALIDATE_MS :: - * Handle the `kern' table as a classic Microsoft kern table. - * - * FT_VALIDATE_APPLE :: - * Handle the `kern' table as a classic Apple kern table. - * - * FT_VALIDATE_CKERN :: - * Handle the `kern' as either classic Apple or Microsoft kern table. - */ -#define FT_VALIDATE_MS ( FT_VALIDATE_GX_START << 0 ) -#define FT_VALIDATE_APPLE ( FT_VALIDATE_GX_START << 1 ) - -#define FT_VALIDATE_CKERN ( FT_VALIDATE_MS | FT_VALIDATE_APPLE ) - - - /********************************************************************** - * - * @function: - * FT_ClassicKern_Validate - * - * @description: - * Validate classic (16-bit format) kern table to assure that the offsets - * and indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without error - * checking (which can be quite time consuming). - * - * The `kern' table validator in @FT_TrueTypeGX_Validate deals with both - * the new 32-bit format and the classic 16-bit format, while - * FT_ClassicKern_Validate only supports the classic 16-bit format. - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the dialect to be validated. See - * @FT_VALIDATE_CKERNXXX for possible values. - * - * @output: - * ckern_table :: - * A pointer to the kern table. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * After use, the application should deallocate the buffers pointed to by - * `ckern_table', by calling @FT_ClassicKern_Free. A NULL value - * indicates that the table doesn't exist in the font. - */ - FT_EXPORT( FT_Error ) - FT_ClassicKern_Validate( FT_Face face, - FT_UInt validation_flags, - FT_Bytes *ckern_table ); - - - /********************************************************************** - * - * @function: - * FT_ClassicKern_Free - * - * @description: - * Free the buffer allocated by classic Kern validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer that is allocated by - * @FT_ClassicKern_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_ClassicKern_Validate only. - */ - FT_EXPORT( void ) - FT_ClassicKern_Free( FT_Face face, - FT_Bytes table ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTGXVAL_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftgzip.h b/lib/linux/include/ftgzip.h deleted file mode 100644 index eb346c6..0000000 --- a/lib/linux/include/ftgzip.h +++ /dev/null @@ -1,148 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftgzip.h */ -/* */ -/* Gzip-compressed stream support. */ -/* */ -/* Copyright 2002-2004, 2006, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTGZIP_H__ -#define __FTGZIP_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* <Section> */ - /* gzip */ - /* */ - /* <Title> */ - /* GZIP Streams */ - /* */ - /* <Abstract> */ - /* Using gzip-compressed font files. */ - /* */ - /* <Description> */ - /* This section contains the declaration of Gzip-specific functions. */ - /* */ - /*************************************************************************/ - - - /************************************************************************ - * - * @function: - * FT_Stream_OpenGzip - * - * @description: - * Open a new stream to parse gzip-compressed font files. This is - * mainly used to support the compressed `*.pcf.gz' fonts that come - * with XFree86. - * - * @input: - * stream :: - * The target embedding stream. - * - * source :: - * The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close' on the new stream will - * *not* call `FT_Stream_Close' on the source stream. None of the stream - * objects will be released to the heap. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream. - * - * In certain builds of the library, gzip compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a gzipped stream from - * it and re-open the face with it. - * - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with zlib support. - */ - FT_EXPORT( FT_Error ) - FT_Stream_OpenGzip( FT_Stream stream, - FT_Stream source ); - - - /************************************************************************ - * - * @function: - * FT_Gzip_Uncompress - * - * @description: - * Decompress a zipped input buffer into an output buffer. This function - * is modeled after zlib's `uncompress' function. - * - * @input: - * memory :: - * A FreeType memory handle. - * - * input :: - * The input buffer. - * - * input_len :: - * The length of the input buffer. - * - * @output: - * output:: - * The output buffer. - * - * @inout: - * output_len :: - * Before calling the function, this is the the total size of the - * output buffer, which must be large enough to hold the entire - * uncompressed data (so the size of the uncompressed data must be - * known in advance). After calling the function, `output_len' is the - * size of the used data in `output'. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with zlib support. - */ - FT_EXPORT( FT_Error ) - FT_Gzip_Uncompress( FT_Memory memory, - FT_Byte* output, - FT_ULong* output_len, - const FT_Byte* input, - FT_ULong input_len ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTGZIP_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftimage.h b/lib/linux/include/ftimage.h deleted file mode 100644 index 2f7ca2a..0000000 --- a/lib/linux/include/ftimage.h +++ /dev/null @@ -1,1220 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftimage.h */ -/* */ -/* FreeType glyph image formats and default raster interface */ -/* (specification). */ -/* */ -/* Copyright 1996-2010, 2013, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - /*************************************************************************/ - /* */ - /* Note: A `raster' is simply a scan-line converter, used to render */ - /* FT_Outlines into FT_Bitmaps. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTIMAGE_H__ -#define __FTIMAGE_H__ - - - /* _STANDALONE_ is from ftgrays.c */ -#ifndef _STANDALONE_ -#include <ft2build.h> -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Pos */ - /* */ - /* <Description> */ - /* The type FT_Pos is used to store vectorial coordinates. Depending */ - /* on the context, these can represent distances in integer font */ - /* units, or 16.16, or 26.6 fixed-point pixel coordinates. */ - /* */ - typedef signed long FT_Pos; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Vector */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2D vector; coordinates are of */ - /* the FT_Pos type. */ - /* */ - /* <Fields> */ - /* x :: The horizontal coordinate. */ - /* y :: The vertical coordinate. */ - /* */ - typedef struct FT_Vector_ - { - FT_Pos x; - FT_Pos y; - - } FT_Vector; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_BBox */ - /* */ - /* <Description> */ - /* A structure used to hold an outline's bounding box, i.e., the */ - /* coordinates of its extrema in the horizontal and vertical */ - /* directions. */ - /* */ - /* <Fields> */ - /* xMin :: The horizontal minimum (left-most). */ - /* */ - /* yMin :: The vertical minimum (bottom-most). */ - /* */ - /* xMax :: The horizontal maximum (right-most). */ - /* */ - /* yMax :: The vertical maximum (top-most). */ - /* */ - /* <Note> */ - /* The bounding box is specified with the coordinates of the lower */ - /* left and the upper right corner. In PostScript, those values are */ - /* often called (llx,lly) and (urx,ury), respectively. */ - /* */ - /* If `yMin' is negative, this value gives the glyph's descender. */ - /* Otherwise, the glyph doesn't descend below the baseline. */ - /* Similarly, if `ymax' is positive, this value gives the glyph's */ - /* ascender. */ - /* */ - /* `xMin' gives the horizontal distance from the glyph's origin to */ - /* the left edge of the glyph's bounding box. If `xMin' is negative, */ - /* the glyph extends to the left of the origin. */ - /* */ - typedef struct FT_BBox_ - { - FT_Pos xMin, yMin; - FT_Pos xMax, yMax; - - } FT_BBox; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Pixel_Mode */ - /* */ - /* <Description> */ - /* An enumeration type used to describe the format of pixels in a */ - /* given bitmap. Note that additional formats may be added in the */ - /* future. */ - /* */ - /* <Values> */ - /* FT_PIXEL_MODE_NONE :: */ - /* Value~0 is reserved. */ - /* */ - /* FT_PIXEL_MODE_MONO :: */ - /* A monochrome bitmap, using 1~bit per pixel. Note that pixels */ - /* are stored in most-significant order (MSB), which means that */ - /* the left-most pixel in a byte has value 128. */ - /* */ - /* FT_PIXEL_MODE_GRAY :: */ - /* An 8-bit bitmap, generally used to represent anti-aliased glyph */ - /* images. Each pixel is stored in one byte. Note that the number */ - /* of `gray' levels is stored in the `num_grays' field of the */ - /* @FT_Bitmap structure (it generally is 256). */ - /* */ - /* FT_PIXEL_MODE_GRAY2 :: */ - /* A 2-bit per pixel bitmap, used to represent embedded */ - /* anti-aliased bitmaps in font files according to the OpenType */ - /* specification. We haven't found a single font using this */ - /* format, however. */ - /* */ - /* FT_PIXEL_MODE_GRAY4 :: */ - /* A 4-bit per pixel bitmap, representing embedded anti-aliased */ - /* bitmaps in font files according to the OpenType specification. */ - /* We haven't found a single font using this format, however. */ - /* */ - /* FT_PIXEL_MODE_LCD :: */ - /* An 8-bit bitmap, representing RGB or BGR decimated glyph images */ - /* used for display on LCD displays; the bitmap is three times */ - /* wider than the original glyph image. See also */ - /* @FT_RENDER_MODE_LCD. */ - /* */ - /* FT_PIXEL_MODE_LCD_V :: */ - /* An 8-bit bitmap, representing RGB or BGR decimated glyph images */ - /* used for display on rotated LCD displays; the bitmap is three */ - /* times taller than the original glyph image. See also */ - /* @FT_RENDER_MODE_LCD_V. */ - /* */ - /* FT_PIXEL_MODE_BGRA :: */ - /* An image with four 8-bit channels per pixel, representing a */ - /* color image (such as emoticons) with alpha channel. For each */ - /* pixel, the format is BGRA, which means, the blue channel comes */ - /* first in memory. The color channels are pre-multiplied and in */ - /* the sRGB colorspace. For example, full red at half-translucent */ - /* opacity will be represented as `00,00,80,80', not `00,00,FF,80'. */ - /* See also @FT_LOAD_COLOR. */ - /* */ - typedef enum FT_Pixel_Mode_ - { - FT_PIXEL_MODE_NONE = 0, - FT_PIXEL_MODE_MONO, - FT_PIXEL_MODE_GRAY, - FT_PIXEL_MODE_GRAY2, - FT_PIXEL_MODE_GRAY4, - FT_PIXEL_MODE_LCD, - FT_PIXEL_MODE_LCD_V, - FT_PIXEL_MODE_BGRA, - - FT_PIXEL_MODE_MAX /* do not remove */ - - } FT_Pixel_Mode; - - - /* these constants are deprecated; use the corresponding `FT_Pixel_Mode' */ - /* values instead. */ -#define ft_pixel_mode_none FT_PIXEL_MODE_NONE -#define ft_pixel_mode_mono FT_PIXEL_MODE_MONO -#define ft_pixel_mode_grays FT_PIXEL_MODE_GRAY -#define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2 -#define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4 - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Bitmap */ - /* */ - /* <Description> */ - /* A structure used to describe a bitmap or pixmap to the raster. */ - /* Note that we now manage pixmaps of various depths through the */ - /* `pixel_mode' field. */ - /* */ - /* <Fields> */ - /* rows :: The number of bitmap rows. */ - /* */ - /* width :: The number of pixels in bitmap row. */ - /* */ - /* pitch :: The pitch's absolute value is the number of bytes */ - /* taken by one bitmap row, including padding. */ - /* However, the pitch is positive when the bitmap has */ - /* a `down' flow, and negative when it has an `up' */ - /* flow. In all cases, the pitch is an offset to add */ - /* to a bitmap pointer in order to go down one row. */ - /* */ - /* Note that `padding' means the alignment of a */ - /* bitmap to a byte border, and FreeType functions */ - /* normally align to the smallest possible integer */ - /* value. */ - /* */ - /* For the B/W rasterizer, `pitch' is always an even */ - /* number. */ - /* */ - /* To change the pitch of a bitmap (say, to make it a */ - /* multiple of 4), use @FT_Bitmap_Convert. */ - /* Alternatively, you might use callback functions to */ - /* directly render to the application's surface; see */ - /* the file `example2.cpp' in the tutorial for a */ - /* demonstration. */ - /* */ - /* buffer :: A typeless pointer to the bitmap buffer. This */ - /* value should be aligned on 32-bit boundaries in */ - /* most cases. */ - /* */ - /* num_grays :: This field is only used with */ - /* @FT_PIXEL_MODE_GRAY; it gives the number of gray */ - /* levels used in the bitmap. */ - /* */ - /* pixel_mode :: The pixel mode, i.e., how pixel bits are stored. */ - /* See @FT_Pixel_Mode for possible values. */ - /* */ - /* palette_mode :: This field is intended for paletted pixel modes; */ - /* it indicates how the palette is stored. Not */ - /* used currently. */ - /* */ - /* palette :: A typeless pointer to the bitmap palette; this */ - /* field is intended for paletted pixel modes. Not */ - /* used currently. */ - /* */ - /* <Note> */ - /* For now, the only pixel modes supported by FreeType are mono and */ - /* grays. However, drivers might be added in the future to support */ - /* more `colorful' options. */ - /* */ - typedef struct FT_Bitmap_ - { - unsigned int rows; - unsigned int width; - int pitch; - unsigned char* buffer; - unsigned short num_grays; - unsigned char pixel_mode; - unsigned char palette_mode; - void* palette; - - } FT_Bitmap; - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* outline_processing */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Outline */ - /* */ - /* <Description> */ - /* This structure is used to describe an outline to the scan-line */ - /* converter. */ - /* */ - /* <Fields> */ - /* n_contours :: The number of contours in the outline. */ - /* */ - /* n_points :: The number of points in the outline. */ - /* */ - /* points :: A pointer to an array of `n_points' @FT_Vector */ - /* elements, giving the outline's point coordinates. */ - /* */ - /* tags :: A pointer to an array of `n_points' chars, giving */ - /* each outline point's type. */ - /* */ - /* If bit~0 is unset, the point is `off' the curve, */ - /* i.e., a Bézier control point, while it is `on' if */ - /* set. */ - /* */ - /* Bit~1 is meaningful for `off' points only. If set, */ - /* it indicates a third-order Bézier arc control point; */ - /* and a second-order control point if unset. */ - /* */ - /* If bit~2 is set, bits 5-7 contain the drop-out mode */ - /* (as defined in the OpenType specification; the value */ - /* is the same as the argument to the SCANMODE */ - /* instruction). */ - /* */ - /* Bits 3 and~4 are reserved for internal purposes. */ - /* */ - /* contours :: An array of `n_contours' shorts, giving the end */ - /* point of each contour within the outline. For */ - /* example, the first contour is defined by the points */ - /* `0' to `contours[0]', the second one is defined by */ - /* the points `contours[0]+1' to `contours[1]', etc. */ - /* */ - /* flags :: A set of bit flags used to characterize the outline */ - /* and give hints to the scan-converter and hinter on */ - /* how to convert/grid-fit it. See @FT_OUTLINE_XXX. */ - /* */ - /* <Note> */ - /* The B/W rasterizer only checks bit~2 in the `tags' array for the */ - /* first point of each contour. The drop-out mode as given with */ - /* @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and */ - /* @FT_OUTLINE_INCLUDE_STUBS in `flags' is then overridden. */ - /* */ - typedef struct FT_Outline_ - { - short n_contours; /* number of contours in glyph */ - short n_points; /* number of points in the glyph */ - - FT_Vector* points; /* the outline's points */ - char* tags; /* the points flags */ - short* contours; /* the contour end points */ - - int flags; /* outline masks */ - - } FT_Outline; - - /* */ - - /* Following limits must be consistent with */ - /* FT_Outline.{n_contours,n_points} */ -#define FT_OUTLINE_CONTOURS_MAX SHRT_MAX -#define FT_OUTLINE_POINTS_MAX SHRT_MAX - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_OUTLINE_XXX */ - /* */ - /* <Description> */ - /* A list of bit-field constants use for the flags in an outline's */ - /* `flags' field. */ - /* */ - /* <Values> */ - /* FT_OUTLINE_NONE :: */ - /* Value~0 is reserved. */ - /* */ - /* FT_OUTLINE_OWNER :: */ - /* If set, this flag indicates that the outline's field arrays */ - /* (i.e., `points', `flags', and `contours') are `owned' by the */ - /* outline object, and should thus be freed when it is destroyed. */ - /* */ - /* FT_OUTLINE_EVEN_ODD_FILL :: */ - /* By default, outlines are filled using the non-zero winding rule. */ - /* If set to 1, the outline will be filled using the even-odd fill */ - /* rule (only works with the smooth rasterizer). */ - /* */ - /* FT_OUTLINE_REVERSE_FILL :: */ - /* By default, outside contours of an outline are oriented in */ - /* clock-wise direction, as defined in the TrueType specification. */ - /* This flag is set if the outline uses the opposite direction */ - /* (typically for Type~1 fonts). This flag is ignored by the scan */ - /* converter. */ - /* */ - /* FT_OUTLINE_IGNORE_DROPOUTS :: */ - /* By default, the scan converter will try to detect drop-outs in */ - /* an outline and correct the glyph bitmap to ensure consistent */ - /* shape continuity. If set, this flag hints the scan-line */ - /* converter to ignore such cases. See below for more information. */ - /* */ - /* FT_OUTLINE_SMART_DROPOUTS :: */ - /* Select smart dropout control. If unset, use simple dropout */ - /* control. Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. See */ - /* below for more information. */ - /* */ - /* FT_OUTLINE_INCLUDE_STUBS :: */ - /* If set, turn pixels on for `stubs', otherwise exclude them. */ - /* Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. See below for */ - /* more information. */ - /* */ - /* FT_OUTLINE_HIGH_PRECISION :: */ - /* This flag indicates that the scan-line converter should try to */ - /* convert this outline to bitmaps with the highest possible */ - /* quality. It is typically set for small character sizes. Note */ - /* that this is only a hint that might be completely ignored by a */ - /* given scan-converter. */ - /* */ - /* FT_OUTLINE_SINGLE_PASS :: */ - /* This flag is set to force a given scan-converter to only use a */ - /* single pass over the outline to render a bitmap glyph image. */ - /* Normally, it is set for very large character sizes. It is only */ - /* a hint that might be completely ignored by a given */ - /* scan-converter. */ - /* */ - /* <Note> */ - /* The flags @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, */ - /* and @FT_OUTLINE_INCLUDE_STUBS are ignored by the smooth */ - /* rasterizer. */ - /* */ - /* There exists a second mechanism to pass the drop-out mode to the */ - /* B/W rasterizer; see the `tags' field in @FT_Outline. */ - /* */ - /* Please refer to the description of the `SCANTYPE' instruction in */ - /* the OpenType specification (in file `ttinst1.doc') how simple */ - /* drop-outs, smart drop-outs, and stubs are defined. */ - /* */ -#define FT_OUTLINE_NONE 0x0 -#define FT_OUTLINE_OWNER 0x1 -#define FT_OUTLINE_EVEN_ODD_FILL 0x2 -#define FT_OUTLINE_REVERSE_FILL 0x4 -#define FT_OUTLINE_IGNORE_DROPOUTS 0x8 -#define FT_OUTLINE_SMART_DROPOUTS 0x10 -#define FT_OUTLINE_INCLUDE_STUBS 0x20 - -#define FT_OUTLINE_HIGH_PRECISION 0x100 -#define FT_OUTLINE_SINGLE_PASS 0x200 - - - /* these constants are deprecated; use the corresponding */ - /* `FT_OUTLINE_XXX' values instead */ -#define ft_outline_none FT_OUTLINE_NONE -#define ft_outline_owner FT_OUTLINE_OWNER -#define ft_outline_even_odd_fill FT_OUTLINE_EVEN_ODD_FILL -#define ft_outline_reverse_fill FT_OUTLINE_REVERSE_FILL -#define ft_outline_ignore_dropouts FT_OUTLINE_IGNORE_DROPOUTS -#define ft_outline_high_precision FT_OUTLINE_HIGH_PRECISION -#define ft_outline_single_pass FT_OUTLINE_SINGLE_PASS - - /* */ - -#define FT_CURVE_TAG( flag ) ( flag & 3 ) - -#define FT_CURVE_TAG_ON 1 -#define FT_CURVE_TAG_CONIC 0 -#define FT_CURVE_TAG_CUBIC 2 - -#define FT_CURVE_TAG_HAS_SCANMODE 4 - -#define FT_CURVE_TAG_TOUCH_X 8 /* reserved for the TrueType hinter */ -#define FT_CURVE_TAG_TOUCH_Y 16 /* reserved for the TrueType hinter */ - -#define FT_CURVE_TAG_TOUCH_BOTH ( FT_CURVE_TAG_TOUCH_X | \ - FT_CURVE_TAG_TOUCH_Y ) - -#define FT_Curve_Tag_On FT_CURVE_TAG_ON -#define FT_Curve_Tag_Conic FT_CURVE_TAG_CONIC -#define FT_Curve_Tag_Cubic FT_CURVE_TAG_CUBIC -#define FT_Curve_Tag_Touch_X FT_CURVE_TAG_TOUCH_X -#define FT_Curve_Tag_Touch_Y FT_CURVE_TAG_TOUCH_Y - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_MoveToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `move */ - /* to' function during outline walking/decomposition. */ - /* */ - /* A `move to' is emitted to start a new contour in an outline. */ - /* */ - /* <Input> */ - /* to :: A pointer to the target point of the `move to'. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of the */ - /* decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - typedef int - (*FT_Outline_MoveToFunc)( const FT_Vector* to, - void* user ); - -#define FT_Outline_MoveTo_Func FT_Outline_MoveToFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_LineToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `line */ - /* to' function during outline walking/decomposition. */ - /* */ - /* A `line to' is emitted to indicate a segment in the outline. */ - /* */ - /* <Input> */ - /* to :: A pointer to the target point of the `line to'. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of the */ - /* decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - typedef int - (*FT_Outline_LineToFunc)( const FT_Vector* to, - void* user ); - -#define FT_Outline_LineTo_Func FT_Outline_LineToFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_ConicToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `conic */ - /* to' function during outline walking or decomposition. */ - /* */ - /* A `conic to' is emitted to indicate a second-order Bézier arc in */ - /* the outline. */ - /* */ - /* <Input> */ - /* control :: An intermediate control point between the last position */ - /* and the new target in `to'. */ - /* */ - /* to :: A pointer to the target end point of the conic arc. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of */ - /* the decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - typedef int - (*FT_Outline_ConicToFunc)( const FT_Vector* control, - const FT_Vector* to, - void* user ); - -#define FT_Outline_ConicTo_Func FT_Outline_ConicToFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_CubicToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `cubic */ - /* to' function during outline walking or decomposition. */ - /* */ - /* A `cubic to' is emitted to indicate a third-order Bézier arc. */ - /* */ - /* <Input> */ - /* control1 :: A pointer to the first Bézier control point. */ - /* */ - /* control2 :: A pointer to the second Bézier control point. */ - /* */ - /* to :: A pointer to the target end point. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of */ - /* the decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - typedef int - (*FT_Outline_CubicToFunc)( const FT_Vector* control1, - const FT_Vector* control2, - const FT_Vector* to, - void* user ); - -#define FT_Outline_CubicTo_Func FT_Outline_CubicToFunc - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Outline_Funcs */ - /* */ - /* <Description> */ - /* A structure to hold various function pointers used during outline */ - /* decomposition in order to emit segments, conic, and cubic Béziers. */ - /* */ - /* <Fields> */ - /* move_to :: The `move to' emitter. */ - /* */ - /* line_to :: The segment emitter. */ - /* */ - /* conic_to :: The second-order Bézier arc emitter. */ - /* */ - /* cubic_to :: The third-order Bézier arc emitter. */ - /* */ - /* shift :: The shift that is applied to coordinates before they */ - /* are sent to the emitter. */ - /* */ - /* delta :: The delta that is applied to coordinates before they */ - /* are sent to the emitter, but after the shift. */ - /* */ - /* <Note> */ - /* The point coordinates sent to the emitters are the transformed */ - /* version of the original coordinates (this is important for high */ - /* accuracy during scan-conversion). The transformation is simple: */ - /* */ - /* { */ - /* x' = (x << shift) - delta */ - /* y' = (x << shift) - delta */ - /* } */ - /* */ - /* Set the values of `shift' and `delta' to~0 to get the original */ - /* point coordinates. */ - /* */ - typedef struct FT_Outline_Funcs_ - { - FT_Outline_MoveToFunc move_to; - FT_Outline_LineToFunc line_to; - FT_Outline_ConicToFunc conic_to; - FT_Outline_CubicToFunc cubic_to; - - int shift; - FT_Pos delta; - - } FT_Outline_Funcs; - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_IMAGE_TAG */ - /* */ - /* <Description> */ - /* This macro converts four-letter tags to an unsigned long type. */ - /* */ - /* <Note> */ - /* Since many 16-bit compilers don't like 32-bit enumerations, you */ - /* should redefine this macro in case of problems to something like */ - /* this: */ - /* */ - /* { */ - /* #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value */ - /* } */ - /* */ - /* to get a simple enumeration without assigning special numbers. */ - /* */ -#ifndef FT_IMAGE_TAG -#define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) \ - value = ( ( (unsigned long)_x1 << 24 ) | \ - ( (unsigned long)_x2 << 16 ) | \ - ( (unsigned long)_x3 << 8 ) | \ - (unsigned long)_x4 ) -#endif /* FT_IMAGE_TAG */ - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Glyph_Format */ - /* */ - /* <Description> */ - /* An enumeration type used to describe the format of a given glyph */ - /* image. Note that this version of FreeType only supports two image */ - /* formats, even though future font drivers will be able to register */ - /* their own format. */ - /* */ - /* <Values> */ - /* FT_GLYPH_FORMAT_NONE :: */ - /* The value~0 is reserved. */ - /* */ - /* FT_GLYPH_FORMAT_COMPOSITE :: */ - /* The glyph image is a composite of several other images. This */ - /* format is _only_ used with @FT_LOAD_NO_RECURSE, and is used to */ - /* report compound glyphs (like accented characters). */ - /* */ - /* FT_GLYPH_FORMAT_BITMAP :: */ - /* The glyph image is a bitmap, and can be described as an */ - /* @FT_Bitmap. You generally need to access the `bitmap' field of */ - /* the @FT_GlyphSlotRec structure to read it. */ - /* */ - /* FT_GLYPH_FORMAT_OUTLINE :: */ - /* The glyph image is a vectorial outline made of line segments */ - /* and Bézier arcs; it can be described as an @FT_Outline; you */ - /* generally want to access the `outline' field of the */ - /* @FT_GlyphSlotRec structure to read it. */ - /* */ - /* FT_GLYPH_FORMAT_PLOTTER :: */ - /* The glyph image is a vectorial path with no inside and outside */ - /* contours. Some Type~1 fonts, like those in the Hershey family, */ - /* contain glyphs in this format. These are described as */ - /* @FT_Outline, but FreeType isn't currently capable of rendering */ - /* them correctly. */ - /* */ - typedef enum FT_Glyph_Format_ - { - FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ), - - FT_IMAGE_TAG( FT_GLYPH_FORMAT_COMPOSITE, 'c', 'o', 'm', 'p' ), - FT_IMAGE_TAG( FT_GLYPH_FORMAT_BITMAP, 'b', 'i', 't', 's' ), - FT_IMAGE_TAG( FT_GLYPH_FORMAT_OUTLINE, 'o', 'u', 't', 'l' ), - FT_IMAGE_TAG( FT_GLYPH_FORMAT_PLOTTER, 'p', 'l', 'o', 't' ) - - } FT_Glyph_Format; - - - /* these constants are deprecated; use the corresponding */ - /* `FT_Glyph_Format' values instead. */ -#define ft_glyph_format_none FT_GLYPH_FORMAT_NONE -#define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE -#define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP -#define ft_glyph_format_outline FT_GLYPH_FORMAT_OUTLINE -#define ft_glyph_format_plotter FT_GLYPH_FORMAT_PLOTTER - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** R A S T E R D E F I N I T I O N S *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* A raster is a scan converter, in charge of rendering an outline into */ - /* a a bitmap. This section contains the public API for rasters. */ - /* */ - /* Note that in FreeType 2, all rasters are now encapsulated within */ - /* specific modules called `renderers'. See `ftrender.h' for more */ - /* details on renderers. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* raster */ - /* */ - /* <Title> */ - /* Scanline Converter */ - /* */ - /* <Abstract> */ - /* How vectorial outlines are converted into bitmaps and pixmaps. */ - /* */ - /* <Description> */ - /* This section contains technical definitions. */ - /* */ - /* <Order> */ - /* FT_Raster */ - /* FT_Span */ - /* FT_SpanFunc */ - /* */ - /* FT_Raster_Params */ - /* FT_RASTER_FLAG_XXX */ - /* */ - /* FT_Raster_NewFunc */ - /* FT_Raster_DoneFunc */ - /* FT_Raster_ResetFunc */ - /* FT_Raster_SetModeFunc */ - /* FT_Raster_RenderFunc */ - /* FT_Raster_Funcs */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Raster */ - /* */ - /* <Description> */ - /* An opaque handle (pointer) to a raster object. Each object can be */ - /* used independently to convert an outline into a bitmap or pixmap. */ - /* */ - typedef struct FT_RasterRec_* FT_Raster; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Span */ - /* */ - /* <Description> */ - /* A structure used to model a single span of gray pixels when */ - /* rendering an anti-aliased bitmap. */ - /* */ - /* <Fields> */ - /* x :: The span's horizontal start position. */ - /* */ - /* len :: The span's length in pixels. */ - /* */ - /* coverage :: The span color/coverage, ranging from 0 (background) */ - /* to 255 (foreground). */ - /* */ - /* <Note> */ - /* This structure is used by the span drawing callback type named */ - /* @FT_SpanFunc that takes the y~coordinate of the span as a */ - /* parameter. */ - /* */ - /* The coverage value is always between 0 and 255. If you want less */ - /* gray values, the callback function has to reduce them. */ - /* */ - typedef struct FT_Span_ - { - short x; - unsigned short len; - unsigned char coverage; - - } FT_Span; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_SpanFunc */ - /* */ - /* <Description> */ - /* A function used as a call-back by the anti-aliased renderer in */ - /* order to let client applications draw themselves the gray pixel */ - /* spans on each scan line. */ - /* */ - /* <Input> */ - /* y :: The scanline's y~coordinate. */ - /* */ - /* count :: The number of spans to draw on this scanline. */ - /* */ - /* spans :: A table of `count' spans to draw on the scanline. */ - /* */ - /* user :: User-supplied data that is passed to the callback. */ - /* */ - /* <Note> */ - /* This callback allows client applications to directly render the */ - /* gray spans of the anti-aliased bitmap to any kind of surfaces. */ - /* */ - /* This can be used to write anti-aliased outlines directly to a */ - /* given background bitmap, and even perform translucency. */ - /* */ - /* Note that the `count' field cannot be greater than a fixed value */ - /* defined by the `FT_MAX_GRAY_SPANS' configuration macro in */ - /* `ftoption.h'. By default, this value is set to~32, which means */ - /* that if there are more than 32~spans on a given scanline, the */ - /* callback is called several times with the same `y' parameter in */ - /* order to draw all callbacks. */ - /* */ - /* Otherwise, the callback is only called once per scan-line, and */ - /* only for those scanlines that do have `gray' pixels on them. */ - /* */ - typedef void - (*FT_SpanFunc)( int y, - int count, - const FT_Span* spans, - void* user ); - -#define FT_Raster_Span_Func FT_SpanFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_BitTest_Func */ - /* */ - /* <Description> */ - /* Deprecated, unimplemented. */ - /* */ - typedef int - (*FT_Raster_BitTest_Func)( int y, - int x, - void* user ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_BitSet_Func */ - /* */ - /* <Description> */ - /* Deprecated, unimplemented. */ - /* */ - typedef void - (*FT_Raster_BitSet_Func)( int y, - int x, - void* user ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_RASTER_FLAG_XXX */ - /* */ - /* <Description> */ - /* A list of bit flag constants as used in the `flags' field of a */ - /* @FT_Raster_Params structure. */ - /* */ - /* <Values> */ - /* FT_RASTER_FLAG_DEFAULT :: This value is 0. */ - /* */ - /* FT_RASTER_FLAG_AA :: This flag is set to indicate that an */ - /* anti-aliased glyph image should be */ - /* generated. Otherwise, it will be */ - /* monochrome (1-bit). */ - /* */ - /* FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct */ - /* rendering. In this mode, client */ - /* applications must provide their own span */ - /* callback. This lets them directly */ - /* draw or compose over an existing bitmap. */ - /* If this bit is not set, the target */ - /* pixmap's buffer _must_ be zeroed before */ - /* rendering. */ - /* */ - /* Direct rendering is only possible with */ - /* anti-aliased glyphs. */ - /* */ - /* FT_RASTER_FLAG_CLIP :: This flag is only used in direct */ - /* rendering mode. If set, the output will */ - /* be clipped to a box specified in the */ - /* `clip_box' field of the */ - /* @FT_Raster_Params structure. */ - /* */ - /* Note that by default, the glyph bitmap */ - /* is clipped to the target pixmap, except */ - /* in direct rendering mode where all spans */ - /* are generated if no clipping box is set. */ - /* */ -#define FT_RASTER_FLAG_DEFAULT 0x0 -#define FT_RASTER_FLAG_AA 0x1 -#define FT_RASTER_FLAG_DIRECT 0x2 -#define FT_RASTER_FLAG_CLIP 0x4 - - /* these constants are deprecated; use the corresponding */ - /* `FT_RASTER_FLAG_XXX' values instead */ -#define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT -#define ft_raster_flag_aa FT_RASTER_FLAG_AA -#define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT -#define ft_raster_flag_clip FT_RASTER_FLAG_CLIP - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Raster_Params */ - /* */ - /* <Description> */ - /* A structure to hold the arguments used by a raster's render */ - /* function. */ - /* */ - /* <Fields> */ - /* target :: The target bitmap. */ - /* */ - /* source :: A pointer to the source glyph image (e.g., an */ - /* @FT_Outline). */ - /* */ - /* flags :: The rendering flags. */ - /* */ - /* gray_spans :: The gray span drawing callback. */ - /* */ - /* black_spans :: Unused. */ - /* */ - /* bit_test :: Unused. */ - /* */ - /* bit_set :: Unused. */ - /* */ - /* user :: User-supplied data that is passed to each drawing */ - /* callback. */ - /* */ - /* clip_box :: An optional clipping box. It is only used in */ - /* direct rendering mode. Note that coordinates here */ - /* should be expressed in _integer_ pixels (and not in */ - /* 26.6 fixed-point units). */ - /* */ - /* <Note> */ - /* An anti-aliased glyph bitmap is drawn if the @FT_RASTER_FLAG_AA */ - /* bit flag is set in the `flags' field, otherwise a monochrome */ - /* bitmap is generated. */ - /* */ - /* If the @FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the */ - /* raster will call the `gray_spans' callback to draw gray pixel */ - /* spans. This allows direct composition over a pre-existing bitmap */ - /* through user-provided callbacks to perform the span drawing and */ - /* composition. Not supported by the monochrome rasterizer. */ - /* */ - typedef struct FT_Raster_Params_ - { - const FT_Bitmap* target; - const void* source; - int flags; - FT_SpanFunc gray_spans; - FT_SpanFunc black_spans; /* unused */ - FT_Raster_BitTest_Func bit_test; /* unused */ - FT_Raster_BitSet_Func bit_set; /* unused */ - void* user; - FT_BBox clip_box; - - } FT_Raster_Params; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_NewFunc */ - /* */ - /* <Description> */ - /* A function used to create a new raster object. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory allocator. */ - /* */ - /* <Output> */ - /* raster :: A handle to the new raster object. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - /* <Note> */ - /* The `memory' parameter is a typeless pointer in order to avoid */ - /* un-wanted dependencies on the rest of the FreeType code. In */ - /* practice, it is an @FT_Memory object, i.e., a handle to the */ - /* standard FreeType memory allocator. However, this field can be */ - /* completely ignored by a given raster implementation. */ - /* */ - typedef int - (*FT_Raster_NewFunc)( void* memory, - FT_Raster* raster ); - -#define FT_Raster_New_Func FT_Raster_NewFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_DoneFunc */ - /* */ - /* <Description> */ - /* A function used to destroy a given raster object. */ - /* */ - /* <Input> */ - /* raster :: A handle to the raster object. */ - /* */ - typedef void - (*FT_Raster_DoneFunc)( FT_Raster raster ); - -#define FT_Raster_Done_Func FT_Raster_DoneFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_ResetFunc */ - /* */ - /* <Description> */ - /* FreeType provides an area of memory called the `render pool', */ - /* available to all registered rasters. This pool can be freely used */ - /* during a given scan-conversion but is shared by all rasters. Its */ - /* content is thus transient. */ - /* */ - /* This function is called each time the render pool changes, or just */ - /* after a new raster object is created. */ - /* */ - /* <Input> */ - /* raster :: A handle to the new raster object. */ - /* */ - /* pool_base :: The address in memory of the render pool. */ - /* */ - /* pool_size :: The size in bytes of the render pool. */ - /* */ - /* <Note> */ - /* Rasters can ignore the render pool and rely on dynamic memory */ - /* allocation if they want to (a handle to the memory allocator is */ - /* passed to the raster constructor). However, this is not */ - /* recommended for efficiency purposes. */ - /* */ - typedef void - (*FT_Raster_ResetFunc)( FT_Raster raster, - unsigned char* pool_base, - unsigned long pool_size ); - -#define FT_Raster_Reset_Func FT_Raster_ResetFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_SetModeFunc */ - /* */ - /* <Description> */ - /* This function is a generic facility to change modes or attributes */ - /* in a given raster. This can be used for debugging purposes, or */ - /* simply to allow implementation-specific `features' in a given */ - /* raster module. */ - /* */ - /* <Input> */ - /* raster :: A handle to the new raster object. */ - /* */ - /* mode :: A 4-byte tag used to name the mode or property. */ - /* */ - /* args :: A pointer to the new mode/property to use. */ - /* */ - typedef int - (*FT_Raster_SetModeFunc)( FT_Raster raster, - unsigned long mode, - void* args ); - -#define FT_Raster_Set_Mode_Func FT_Raster_SetModeFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_RenderFunc */ - /* */ - /* <Description> */ - /* Invoke a given raster to scan-convert a given glyph image into a */ - /* target bitmap. */ - /* */ - /* <Input> */ - /* raster :: A handle to the raster object. */ - /* */ - /* params :: A pointer to an @FT_Raster_Params structure used to */ - /* store the rendering parameters. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - /* <Note> */ - /* The exact format of the source image depends on the raster's glyph */ - /* format defined in its @FT_Raster_Funcs structure. It can be an */ - /* @FT_Outline or anything else in order to support a large array of */ - /* glyph formats. */ - /* */ - /* Note also that the render function can fail and return a */ - /* `FT_Err_Unimplemented_Feature' error code if the raster used does */ - /* not support direct composition. */ - /* */ - /* XXX: For now, the standard raster doesn't support direct */ - /* composition but this should change for the final release (see */ - /* the files `demos/src/ftgrays.c' and `demos/src/ftgrays2.c' */ - /* for examples of distinct implementations that support direct */ - /* composition). */ - /* */ - typedef int - (*FT_Raster_RenderFunc)( FT_Raster raster, - const FT_Raster_Params* params ); - -#define FT_Raster_Render_Func FT_Raster_RenderFunc - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Raster_Funcs */ - /* */ - /* <Description> */ - /* A structure used to describe a given raster class to the library. */ - /* */ - /* <Fields> */ - /* glyph_format :: The supported glyph format for this raster. */ - /* */ - /* raster_new :: The raster constructor. */ - /* */ - /* raster_reset :: Used to reset the render pool within the raster. */ - /* */ - /* raster_render :: A function to render a glyph into a given bitmap. */ - /* */ - /* raster_done :: The raster destructor. */ - /* */ - typedef struct FT_Raster_Funcs_ - { - FT_Glyph_Format glyph_format; - FT_Raster_NewFunc raster_new; - FT_Raster_ResetFunc raster_reset; - FT_Raster_SetModeFunc raster_set_mode; - FT_Raster_RenderFunc raster_render; - FT_Raster_DoneFunc raster_done; - - } FT_Raster_Funcs; - - /* */ - - -FT_END_HEADER - -#endif /* __FTIMAGE_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/linux/include/ftincrem.h b/lib/linux/include/ftincrem.h deleted file mode 100644 index 4c0246c..0000000 --- a/lib/linux/include/ftincrem.h +++ /dev/null @@ -1,354 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftincrem.h */ -/* */ -/* FreeType incremental loading (specification). */ -/* */ -/* Copyright 2002, 2003, 2006-2008, 2010, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTINCREM_H__ -#define __FTINCREM_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************** - * - * @section: - * incremental - * - * @title: - * Incremental Loading - * - * @abstract: - * Custom Glyph Loading. - * - * @description: - * This section contains various functions used to perform so-called - * `incremental' glyph loading. This is a mode where all glyphs loaded - * from a given @FT_Face are provided by the client application. - * - * Apart from that, all other tables are loaded normally from the font - * file. This mode is useful when FreeType is used within another - * engine, e.g., a PostScript Imaging Processor. - * - * To enable this mode, you must use @FT_Open_Face, passing an - * @FT_Parameter with the @FT_PARAM_TAG_INCREMENTAL tag and an - * @FT_Incremental_Interface value. See the comments for - * @FT_Incremental_InterfaceRec for an example. - * - */ - - - /*************************************************************************** - * - * @type: - * FT_Incremental - * - * @description: - * An opaque type describing a user-provided object used to implement - * `incremental' glyph loading within FreeType. This is used to support - * embedded fonts in certain environments (e.g., PostScript interpreters), - * where the glyph data isn't in the font file, or must be overridden by - * different values. - * - * @note: - * It is up to client applications to create and implement @FT_Incremental - * objects, as long as they provide implementations for the methods - * @FT_Incremental_GetGlyphDataFunc, @FT_Incremental_FreeGlyphDataFunc - * and @FT_Incremental_GetGlyphMetricsFunc. - * - * See the description of @FT_Incremental_InterfaceRec to understand how - * to use incremental objects with FreeType. - * - */ - typedef struct FT_IncrementalRec_* FT_Incremental; - - - /*************************************************************************** - * - * @struct: - * FT_Incremental_MetricsRec - * - * @description: - * A small structure used to contain the basic glyph metrics returned - * by the @FT_Incremental_GetGlyphMetricsFunc method. - * - * @fields: - * bearing_x :: - * Left bearing, in font units. - * - * bearing_y :: - * Top bearing, in font units. - * - * advance :: - * Horizontal component of glyph advance, in font units. - * - * advance_v :: - * Vertical component of glyph advance, in font units. - * - * @note: - * These correspond to horizontal or vertical metrics depending on the - * value of the `vertical' argument to the function - * @FT_Incremental_GetGlyphMetricsFunc. - * - */ - typedef struct FT_Incremental_MetricsRec_ - { - FT_Long bearing_x; - FT_Long bearing_y; - FT_Long advance; - FT_Long advance_v; /* since 2.3.12 */ - - } FT_Incremental_MetricsRec; - - - /*************************************************************************** - * - * @struct: - * FT_Incremental_Metrics - * - * @description: - * A handle to an @FT_Incremental_MetricsRec structure. - * - */ - typedef struct FT_Incremental_MetricsRec_* FT_Incremental_Metrics; - - - /*************************************************************************** - * - * @type: - * FT_Incremental_GetGlyphDataFunc - * - * @description: - * A function called by FreeType to access a given glyph's data bytes - * during @FT_Load_Glyph or @FT_Load_Char if incremental loading is - * enabled. - * - * Note that the format of the glyph's data bytes depends on the font - * file format. For TrueType, it must correspond to the raw bytes within - * the `glyf' table. For PostScript formats, it must correspond to the - * *unencrypted* charstring bytes, without any `lenIV' header. It is - * undefined for any other format. - * - * @input: - * incremental :: - * Handle to an opaque @FT_Incremental handle provided by the client - * application. - * - * glyph_index :: - * Index of relevant glyph. - * - * @output: - * adata :: - * A structure describing the returned glyph data bytes (which will be - * accessed as a read-only byte block). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If this function returns successfully the method - * @FT_Incremental_FreeGlyphDataFunc will be called later to release - * the data bytes. - * - * Nested calls to @FT_Incremental_GetGlyphDataFunc can happen for - * compound glyphs. - * - */ - typedef FT_Error - (*FT_Incremental_GetGlyphDataFunc)( FT_Incremental incremental, - FT_UInt glyph_index, - FT_Data* adata ); - - - /*************************************************************************** - * - * @type: - * FT_Incremental_FreeGlyphDataFunc - * - * @description: - * A function used to release the glyph data bytes returned by a - * successful call to @FT_Incremental_GetGlyphDataFunc. - * - * @input: - * incremental :: - * A handle to an opaque @FT_Incremental handle provided by the client - * application. - * - * data :: - * A structure describing the glyph data bytes (which will be accessed - * as a read-only byte block). - * - */ - typedef void - (*FT_Incremental_FreeGlyphDataFunc)( FT_Incremental incremental, - FT_Data* data ); - - - /*************************************************************************** - * - * @type: - * FT_Incremental_GetGlyphMetricsFunc - * - * @description: - * A function used to retrieve the basic metrics of a given glyph index - * before accessing its data. This is necessary because, in certain - * formats like TrueType, the metrics are stored in a different place from - * the glyph images proper. - * - * @input: - * incremental :: - * A handle to an opaque @FT_Incremental handle provided by the client - * application. - * - * glyph_index :: - * Index of relevant glyph. - * - * vertical :: - * If true, return vertical metrics. - * - * ametrics :: - * This parameter is used for both input and output. - * The original glyph metrics, if any, in font units. If metrics are - * not available all the values must be set to zero. - * - * @output: - * ametrics :: - * The replacement glyph metrics in font units. - * - */ - typedef FT_Error - (*FT_Incremental_GetGlyphMetricsFunc) - ( FT_Incremental incremental, - FT_UInt glyph_index, - FT_Bool vertical, - FT_Incremental_MetricsRec *ametrics ); - - - /************************************************************************** - * - * @struct: - * FT_Incremental_FuncsRec - * - * @description: - * A table of functions for accessing fonts that load data - * incrementally. Used in @FT_Incremental_InterfaceRec. - * - * @fields: - * get_glyph_data :: - * The function to get glyph data. Must not be null. - * - * free_glyph_data :: - * The function to release glyph data. Must not be null. - * - * get_glyph_metrics :: - * The function to get glyph metrics. May be null if the font does - * not provide overriding glyph metrics. - * - */ - typedef struct FT_Incremental_FuncsRec_ - { - FT_Incremental_GetGlyphDataFunc get_glyph_data; - FT_Incremental_FreeGlyphDataFunc free_glyph_data; - FT_Incremental_GetGlyphMetricsFunc get_glyph_metrics; - - } FT_Incremental_FuncsRec; - - - /*************************************************************************** - * - * @struct: - * FT_Incremental_InterfaceRec - * - * @description: - * A structure to be used with @FT_Open_Face to indicate that the user - * wants to support incremental glyph loading. You should use it with - * @FT_PARAM_TAG_INCREMENTAL as in the following example: - * - * { - * FT_Incremental_InterfaceRec inc_int; - * FT_Parameter parameter; - * FT_Open_Args open_args; - * - * - * // set up incremental descriptor - * inc_int.funcs = my_funcs; - * inc_int.object = my_object; - * - * // set up optional parameter - * parameter.tag = FT_PARAM_TAG_INCREMENTAL; - * parameter.data = &inc_int; - * - * // set up FT_Open_Args structure - * open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; - * open_args.pathname = my_font_pathname; - * open_args.num_params = 1; - * open_args.params = ¶meter; // we use one optional argument - * - * // open the font - * error = FT_Open_Face( library, &open_args, index, &face ); - * ... - * } - * - */ - typedef struct FT_Incremental_InterfaceRec_ - { - const FT_Incremental_FuncsRec* funcs; - FT_Incremental object; - - } FT_Incremental_InterfaceRec; - - - /*************************************************************************** - * - * @type: - * FT_Incremental_Interface - * - * @description: - * A pointer to an @FT_Incremental_InterfaceRec structure. - * - */ - typedef FT_Incremental_InterfaceRec* FT_Incremental_Interface; - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_INCREMENTAL - * - * @description: - * A constant used as the tag of @FT_Parameter structures to indicate - * an incremental loading object to be used by FreeType. - * - */ -#define FT_PARAM_TAG_INCREMENTAL FT_MAKE_TAG( 'i', 'n', 'c', 'r' ) - - /* */ - - -FT_END_HEADER - -#endif /* __FTINCREM_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftlcdfil.h b/lib/linux/include/ftlcdfil.h deleted file mode 100644 index e8679c1..0000000 --- a/lib/linux/include/ftlcdfil.h +++ /dev/null @@ -1,251 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftlcdfil.h */ -/* */ -/* FreeType API for color filtering of subpixel bitmap glyphs */ -/* (specification). */ -/* */ -/* Copyright 2006-2008, 2010, 2013, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FT_LCD_FILTER_H__ -#define __FT_LCD_FILTER_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************** - * - * @section: - * lcd_filtering - * - * @title: - * LCD Filtering - * - * @abstract: - * Reduce color fringes of LCD-optimized bitmaps. - * - * @description: - * The @FT_Library_SetLcdFilter API can be used to specify a low-pass - * filter, which is then applied to LCD-optimized bitmaps generated - * through @FT_Render_Glyph. This is useful to reduce color fringes - * that would occur with unfiltered rendering. - * - * Note that no filter is active by default, and that this function is - * *not* implemented in default builds of the library. You need to - * #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your `ftoption.h' file - * in order to activate it. - * - * FreeType generates alpha coverage maps, which are linear by nature. - * For instance, the value 0x80 in bitmap representation means that - * (within numerical precision) 0x80/0xFF fraction of that pixel is - * covered by the glyph's outline. The blending function for placing - * text over a background is - * - * { - * dst = alpha * src + (1 - alpha) * dst , - * } - * - * which is known as OVER. However, when calculating the output of the - * OVER operator, the source colors should first be transformed to a - * linear color space, then alpha blended in that space, and transformed - * back to the output color space. - * - * When linear light blending is used, the default FIR5 filtering - * weights (as given by FT_LCD_FILTER_DEFAULT) are no longer optimal, as - * they have been designed for black on white rendering while lacking - * gamma correction. To preserve color neutrality, weights for a FIR5 - * filter should be chosen according to two free parameters `a' and `c', - * and the FIR weights should be - * - * { - * [a - c, a + c, 2 * a, a + c, a - c] . - * } - * - * This formula generates equal weights for all the color primaries - * across the filter kernel, which makes it colorless. One suggested - * set of weights is - * - * { - * [0x10, 0x50, 0x60, 0x50, 0x10] , - * } - * - * where `a' has value 0x30 and `b' value 0x20. The weights in filter - * may have a sum larger than 0x100, which increases coloration slightly - * but also improves contrast. - */ - - - /**************************************************************************** - * - * @enum: - * FT_LcdFilter - * - * @description: - * A list of values to identify various types of LCD filters. - * - * @values: - * FT_LCD_FILTER_NONE :: - * Do not perform filtering. When used with subpixel rendering, this - * results in sometimes severe color fringes. - * - * FT_LCD_FILTER_DEFAULT :: - * The default filter reduces color fringes considerably, at the cost - * of a slight blurriness in the output. - * - * FT_LCD_FILTER_LIGHT :: - * The light filter is a variant that produces less blurriness at the - * cost of slightly more color fringes than the default one. It might - * be better, depending on taste, your monitor, or your personal vision. - * - * FT_LCD_FILTER_LEGACY :: - * This filter corresponds to the original libXft color filter. It - * provides high contrast output but can exhibit really bad color - * fringes if glyphs are not extremely well hinted to the pixel grid. - * In other words, it only works well if the TrueType bytecode - * interpreter is enabled *and* high-quality hinted fonts are used. - * - * This filter is only provided for comparison purposes, and might be - * disabled or stay unsupported in the future. - * - * @since: - * 2.3.0 - */ - typedef enum FT_LcdFilter_ - { - FT_LCD_FILTER_NONE = 0, - FT_LCD_FILTER_DEFAULT = 1, - FT_LCD_FILTER_LIGHT = 2, - FT_LCD_FILTER_LEGACY = 16, - - FT_LCD_FILTER_MAX /* do not remove */ - - } FT_LcdFilter; - - - /************************************************************************** - * - * @func: - * FT_Library_SetLcdFilter - * - * @description: - * This function is used to apply color filtering to LCD decimated - * bitmaps, like the ones used when calling @FT_Render_Glyph with - * @FT_RENDER_MODE_LCD or @FT_RENDER_MODE_LCD_V. - * - * @input: - * library :: - * A handle to the target library instance. - * - * filter :: - * The filter type. - * - * You can use @FT_LCD_FILTER_NONE here to disable this feature, or - * @FT_LCD_FILTER_DEFAULT to use a default filter that should work - * well on most LCD screens. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This feature is always disabled by default. Clients must make an - * explicit call to this function with a `filter' value other than - * @FT_LCD_FILTER_NONE in order to enable it. - * - * Due to *PATENTS* covering subpixel rendering, this function doesn't - * do anything except returning `FT_Err_Unimplemented_Feature' if the - * configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not - * defined in your build of the library, which should correspond to all - * default builds of FreeType. - * - * The filter affects glyph bitmaps rendered through @FT_Render_Glyph, - * @FT_Outline_Get_Bitmap, @FT_Load_Glyph, and @FT_Load_Char. - * - * It does _not_ affect the output of @FT_Outline_Render and - * @FT_Outline_Get_Bitmap. - * - * If this feature is activated, the dimensions of LCD glyph bitmaps are - * either larger or taller than the dimensions of the corresponding - * outline with regards to the pixel grid. For example, for - * @FT_RENDER_MODE_LCD, the filter adds up to 3~pixels to the left, and - * up to 3~pixels to the right. - * - * The bitmap offset values are adjusted correctly, so clients shouldn't - * need to modify their layout and glyph positioning code when enabling - * the filter. - * - * @since: - * 2.3.0 - */ - FT_EXPORT( FT_Error ) - FT_Library_SetLcdFilter( FT_Library library, - FT_LcdFilter filter ); - - - /************************************************************************** - * - * @func: - * FT_Library_SetLcdFilterWeights - * - * @description: - * Use this function to override the filter weights selected by - * @FT_Library_SetLcdFilter. By default, FreeType uses the quintuple - * (0x00, 0x55, 0x56, 0x55, 0x00) for FT_LCD_FILTER_LIGHT, and (0x10, - * 0x40, 0x70, 0x40, 0x10) for FT_LCD_FILTER_DEFAULT and - * FT_LCD_FILTER_LEGACY. - * - * @input: - * library :: - * A handle to the target library instance. - * - * weights :: - * A pointer to an array; the function copies the first five bytes and - * uses them to specify the filter weights. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Due to *PATENTS* covering subpixel rendering, this function doesn't - * do anything except returning `FT_Err_Unimplemented_Feature' if the - * configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not - * defined in your build of the library, which should correspond to all - * default builds of FreeType. - * - * This function must be called after @FT_Library_SetLcdFilter to have - * any effect. - * - * @since: - * 2.4.0 - */ - FT_EXPORT( FT_Error ) - FT_Library_SetLcdFilterWeights( FT_Library library, - unsigned char *weights ); - - /* */ - - -FT_END_HEADER - -#endif /* __FT_LCD_FILTER_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftlist.h b/lib/linux/include/ftlist.h deleted file mode 100644 index 9950a27..0000000 --- a/lib/linux/include/ftlist.h +++ /dev/null @@ -1,276 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftlist.h */ -/* */ -/* Generic list support for FreeType (specification). */ -/* */ -/* Copyright 1996-2001, 2003, 2007, 2010, 2013, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file implements functions relative to list processing. Its */ - /* data structures are defined in `freetype.h'. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTLIST_H__ -#define __FTLIST_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* list_processing */ - /* */ - /* <Title> */ - /* List Processing */ - /* */ - /* <Abstract> */ - /* Simple management of lists. */ - /* */ - /* <Description> */ - /* This section contains various definitions related to list */ - /* processing using doubly-linked nodes. */ - /* */ - /* <Order> */ - /* FT_List */ - /* FT_ListNode */ - /* FT_ListRec */ - /* FT_ListNodeRec */ - /* */ - /* FT_List_Add */ - /* FT_List_Insert */ - /* FT_List_Find */ - /* FT_List_Remove */ - /* FT_List_Up */ - /* FT_List_Iterate */ - /* FT_List_Iterator */ - /* FT_List_Finalize */ - /* FT_List_Destructor */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Find */ - /* */ - /* <Description> */ - /* Find the list node for a given listed object. */ - /* */ - /* <Input> */ - /* list :: A pointer to the parent list. */ - /* data :: The address of the listed object. */ - /* */ - /* <Return> */ - /* List node. NULL if it wasn't found. */ - /* */ - FT_EXPORT( FT_ListNode ) - FT_List_Find( FT_List list, - void* data ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Add */ - /* */ - /* <Description> */ - /* Append an element to the end of a list. */ - /* */ - /* <InOut> */ - /* list :: A pointer to the parent list. */ - /* node :: The node to append. */ - /* */ - FT_EXPORT( void ) - FT_List_Add( FT_List list, - FT_ListNode node ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Insert */ - /* */ - /* <Description> */ - /* Insert an element at the head of a list. */ - /* */ - /* <InOut> */ - /* list :: A pointer to parent list. */ - /* node :: The node to insert. */ - /* */ - FT_EXPORT( void ) - FT_List_Insert( FT_List list, - FT_ListNode node ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Remove */ - /* */ - /* <Description> */ - /* Remove a node from a list. This function doesn't check whether */ - /* the node is in the list! */ - /* */ - /* <Input> */ - /* node :: The node to remove. */ - /* */ - /* <InOut> */ - /* list :: A pointer to the parent list. */ - /* */ - FT_EXPORT( void ) - FT_List_Remove( FT_List list, - FT_ListNode node ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Up */ - /* */ - /* <Description> */ - /* Move a node to the head/top of a list. Used to maintain LRU */ - /* lists. */ - /* */ - /* <InOut> */ - /* list :: A pointer to the parent list. */ - /* node :: The node to move. */ - /* */ - FT_EXPORT( void ) - FT_List_Up( FT_List list, - FT_ListNode node ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_List_Iterator */ - /* */ - /* <Description> */ - /* An FT_List iterator function that is called during a list parse */ - /* by @FT_List_Iterate. */ - /* */ - /* <Input> */ - /* node :: The current iteration list node. */ - /* */ - /* user :: A typeless pointer passed to @FT_List_Iterate. */ - /* Can be used to point to the iteration's state. */ - /* */ - typedef FT_Error - (*FT_List_Iterator)( FT_ListNode node, - void* user ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Iterate */ - /* */ - /* <Description> */ - /* Parse a list and calls a given iterator function on each element. */ - /* Note that parsing is stopped as soon as one of the iterator calls */ - /* returns a non-zero value. */ - /* */ - /* <Input> */ - /* list :: A handle to the list. */ - /* iterator :: An iterator function, called on each node of the list. */ - /* user :: A user-supplied field that is passed as the second */ - /* argument to the iterator. */ - /* */ - /* <Return> */ - /* The result (a FreeType error code) of the last iterator call. */ - /* */ - FT_EXPORT( FT_Error ) - FT_List_Iterate( FT_List list, - FT_List_Iterator iterator, - void* user ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_List_Destructor */ - /* */ - /* <Description> */ - /* An @FT_List iterator function that is called during a list */ - /* finalization by @FT_List_Finalize to destroy all elements in a */ - /* given list. */ - /* */ - /* <Input> */ - /* system :: The current system object. */ - /* */ - /* data :: The current object to destroy. */ - /* */ - /* user :: A typeless pointer passed to @FT_List_Iterate. It can */ - /* be used to point to the iteration's state. */ - /* */ - typedef void - (*FT_List_Destructor)( FT_Memory memory, - void* data, - void* user ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Finalize */ - /* */ - /* <Description> */ - /* Destroy all elements in the list as well as the list itself. */ - /* */ - /* <Input> */ - /* list :: A handle to the list. */ - /* */ - /* destroy :: A list destructor that will be applied to each element */ - /* of the list. Set this to NULL if not needed. */ - /* */ - /* memory :: The current memory object that handles deallocation. */ - /* */ - /* user :: A user-supplied field that is passed as the last */ - /* argument to the destructor. */ - /* */ - /* <Note> */ - /* This function expects that all nodes added by @FT_List_Add or */ - /* @FT_List_Insert have been dynamically allocated. */ - /* */ - FT_EXPORT( void ) - FT_List_Finalize( FT_List list, - FT_List_Destructor destroy, - FT_Memory memory, - void* user ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTLIST_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftlzw.h b/lib/linux/include/ftlzw.h deleted file mode 100644 index 857c0c5..0000000 --- a/lib/linux/include/ftlzw.h +++ /dev/null @@ -1,99 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftlzw.h */ -/* */ -/* LZW-compressed stream support. */ -/* */ -/* Copyright 2004, 2006 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTLZW_H__ -#define __FTLZW_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* <Section> */ - /* lzw */ - /* */ - /* <Title> */ - /* LZW Streams */ - /* */ - /* <Abstract> */ - /* Using LZW-compressed font files. */ - /* */ - /* <Description> */ - /* This section contains the declaration of LZW-specific functions. */ - /* */ - /*************************************************************************/ - - /************************************************************************ - * - * @function: - * FT_Stream_OpenLZW - * - * @description: - * Open a new stream to parse LZW-compressed font files. This is - * mainly used to support the compressed `*.pcf.Z' fonts that come - * with XFree86. - * - * @input: - * stream :: The target embedding stream. - * - * source :: The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close' on the new stream will - * *not* call `FT_Stream_Close' on the source stream. None of the stream - * objects will be released to the heap. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream - * - * In certain builds of the library, LZW compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a LZW stream from it - * and re-open the face with it. - * - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with LZW support. - */ - FT_EXPORT( FT_Error ) - FT_Stream_OpenLZW( FT_Stream stream, - FT_Stream source ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTLZW_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftmac.h b/lib/linux/include/ftmac.h deleted file mode 100644 index 42874fe..0000000 --- a/lib/linux/include/ftmac.h +++ /dev/null @@ -1,274 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmac.h */ -/* */ -/* Additional Mac-specific API. */ -/* */ -/* Copyright 1996-2001, 2004, 2006, 2007, 2013 by */ -/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* NOTE: Include this file after FT_FREETYPE_H and after any */ -/* Mac-specific headers (because this header uses Mac types such as */ -/* Handle, FSSpec, FSRef, etc.) */ -/* */ -/***************************************************************************/ - - -#ifndef __FTMAC_H__ -#define __FTMAC_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - -/* gcc-3.4.1 and later can warn about functions tagged as deprecated */ -#ifndef FT_DEPRECATED_ATTRIBUTE -#if defined(__GNUC__) && \ - ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))) -#define FT_DEPRECATED_ATTRIBUTE __attribute__((deprecated)) -#else -#define FT_DEPRECATED_ATTRIBUTE -#endif -#endif - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* mac_specific */ - /* */ - /* <Title> */ - /* Mac Specific Interface */ - /* */ - /* <Abstract> */ - /* Only available on the Macintosh. */ - /* */ - /* <Description> */ - /* The following definitions are only available if FreeType is */ - /* compiled on a Macintosh. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face_From_FOND */ - /* */ - /* <Description> */ - /* Create a new face object from a FOND resource. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* fond :: A FOND resource. */ - /* */ - /* face_index :: Only supported for the -1 `sanity check' special */ - /* case. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Notes> */ - /* This function can be used to create @FT_Face objects from fonts */ - /* that are installed in the system as follows. */ - /* */ - /* { */ - /* fond = GetResource( 'FOND', fontName ); */ - /* error = FT_New_Face_From_FOND( library, fond, 0, &face ); */ - /* } */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Face_From_FOND( FT_Library library, - Handle fond, - FT_Long face_index, - FT_Face *aface ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GetFile_From_Mac_Name */ - /* */ - /* <Description> */ - /* Return an FSSpec for the disk file containing the named font. */ - /* */ - /* <Input> */ - /* fontName :: Mac OS name of the font (e.g., Times New Roman */ - /* Bold). */ - /* */ - /* <Output> */ - /* pathSpec :: FSSpec to the file. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* face_index :: Index of the face. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_GetFile_From_Mac_Name( const char* fontName, - FSSpec* pathSpec, - FT_Long* face_index ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GetFile_From_Mac_ATS_Name */ - /* */ - /* <Description> */ - /* Return an FSSpec for the disk file containing the named font. */ - /* */ - /* <Input> */ - /* fontName :: Mac OS name of the font in ATS framework. */ - /* */ - /* <Output> */ - /* pathSpec :: FSSpec to the file. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* face_index :: Index of the face. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_GetFile_From_Mac_ATS_Name( const char* fontName, - FSSpec* pathSpec, - FT_Long* face_index ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GetFilePath_From_Mac_ATS_Name */ - /* */ - /* <Description> */ - /* Return a pathname of the disk file and face index for given font */ - /* name that is handled by ATS framework. */ - /* */ - /* <Input> */ - /* fontName :: Mac OS name of the font in ATS framework. */ - /* */ - /* <Output> */ - /* path :: Buffer to store pathname of the file. For passing */ - /* to @FT_New_Face. The client must allocate this */ - /* buffer before calling this function. */ - /* */ - /* maxPathSize :: Lengths of the buffer `path' that client allocated. */ - /* */ - /* face_index :: Index of the face. For passing to @FT_New_Face. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_GetFilePath_From_Mac_ATS_Name( const char* fontName, - UInt8* path, - UInt32 maxPathSize, - FT_Long* face_index ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face_From_FSSpec */ - /* */ - /* <Description> */ - /* Create a new face object from a given resource and typeface index */ - /* using an FSSpec to the font file. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* spec :: FSSpec to the font file. */ - /* */ - /* face_index :: The index of the face within the resource. The */ - /* first face has index~0. */ - /* <Output> */ - /* aface :: A handle to a new face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* @FT_New_Face_From_FSSpec is identical to @FT_New_Face except */ - /* it accepts an FSSpec instead of a path. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Face_From_FSSpec( FT_Library library, - const FSSpec *spec, - FT_Long face_index, - FT_Face *aface ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face_From_FSRef */ - /* */ - /* <Description> */ - /* Create a new face object from a given resource and typeface index */ - /* using an FSRef to the font file. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* spec :: FSRef to the font file. */ - /* */ - /* face_index :: The index of the face within the resource. The */ - /* first face has index~0. */ - /* <Output> */ - /* aface :: A handle to a new face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* @FT_New_Face_From_FSRef is identical to @FT_New_Face except */ - /* it accepts an FSRef instead of a path. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Face_From_FSRef( FT_Library library, - const FSRef *ref, - FT_Long face_index, - FT_Face *aface ) - FT_DEPRECATED_ATTRIBUTE; - - /* */ - - -FT_END_HEADER - - -#endif /* __FTMAC_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftmm.h b/lib/linux/include/ftmm.h deleted file mode 100644 index 2dcfd67..0000000 --- a/lib/linux/include/ftmm.h +++ /dev/null @@ -1,373 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmm.h */ -/* */ -/* FreeType Multiple Master font interface (specification). */ -/* */ -/* Copyright 1996-2001, 2003, 2004, 2006, 2009, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTMM_H__ -#define __FTMM_H__ - - -#include <ft2build.h> -#include FT_TYPE1_TABLES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* multiple_masters */ - /* */ - /* <Title> */ - /* Multiple Masters */ - /* */ - /* <Abstract> */ - /* How to manage Multiple Masters fonts. */ - /* */ - /* <Description> */ - /* The following types and functions are used to manage Multiple */ - /* Master fonts, i.e., the selection of specific design instances by */ - /* setting design axis coordinates. */ - /* */ - /* George Williams has extended this interface to make it work with */ - /* both Type~1 Multiple Masters fonts and GX distortable (var) */ - /* fonts. Some of these routines only work with MM fonts, others */ - /* will work with both types. They are similar enough that a */ - /* consistent interface makes sense. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_MM_Axis */ - /* */ - /* <Description> */ - /* A simple structure used to model a given axis in design space for */ - /* Multiple Masters fonts. */ - /* */ - /* This structure can't be used for GX var fonts. */ - /* */ - /* <Fields> */ - /* name :: The axis's name. */ - /* */ - /* minimum :: The axis's minimum design coordinate. */ - /* */ - /* maximum :: The axis's maximum design coordinate. */ - /* */ - typedef struct FT_MM_Axis_ - { - FT_String* name; - FT_Long minimum; - FT_Long maximum; - - } FT_MM_Axis; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Multi_Master */ - /* */ - /* <Description> */ - /* A structure used to model the axes and space of a Multiple Masters */ - /* font. */ - /* */ - /* This structure can't be used for GX var fonts. */ - /* */ - /* <Fields> */ - /* num_axis :: Number of axes. Cannot exceed~4. */ - /* */ - /* num_designs :: Number of designs; should be normally 2^num_axis */ - /* even though the Type~1 specification strangely */ - /* allows for intermediate designs to be present. This */ - /* number cannot exceed~16. */ - /* */ - /* axis :: A table of axis descriptors. */ - /* */ - typedef struct FT_Multi_Master_ - { - FT_UInt num_axis; - FT_UInt num_designs; - FT_MM_Axis axis[T1_MAX_MM_AXIS]; - - } FT_Multi_Master; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Var_Axis */ - /* */ - /* <Description> */ - /* A simple structure used to model a given axis in design space for */ - /* Multiple Masters and GX var fonts. */ - /* */ - /* <Fields> */ - /* name :: The axis's name. */ - /* Not always meaningful for GX. */ - /* */ - /* minimum :: The axis's minimum design coordinate. */ - /* */ - /* def :: The axis's default design coordinate. */ - /* FreeType computes meaningful default values for MM; it */ - /* is then an integer value, not in 16.16 format. */ - /* */ - /* maximum :: The axis's maximum design coordinate. */ - /* */ - /* tag :: The axis's tag (the GX equivalent to `name'). */ - /* FreeType provides default values for MM if possible. */ - /* */ - /* strid :: The entry in `name' table (another GX version of */ - /* `name'). */ - /* Not meaningful for MM. */ - /* */ - typedef struct FT_Var_Axis_ - { - FT_String* name; - - FT_Fixed minimum; - FT_Fixed def; - FT_Fixed maximum; - - FT_ULong tag; - FT_UInt strid; - - } FT_Var_Axis; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Var_Named_Style */ - /* */ - /* <Description> */ - /* A simple structure used to model a named style in a GX var font. */ - /* */ - /* This structure can't be used for MM fonts. */ - /* */ - /* <Fields> */ - /* coords :: The design coordinates for this style. */ - /* This is an array with one entry for each axis. */ - /* */ - /* strid :: The entry in `name' table identifying this style. */ - /* */ - typedef struct FT_Var_Named_Style_ - { - FT_Fixed* coords; - FT_UInt strid; - - } FT_Var_Named_Style; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_MM_Var */ - /* */ - /* <Description> */ - /* A structure used to model the axes and space of a Multiple Masters */ - /* or GX var distortable font. */ - /* */ - /* Some fields are specific to one format and not to the other. */ - /* */ - /* <Fields> */ - /* num_axis :: The number of axes. The maximum value is~4 for */ - /* MM; no limit in GX. */ - /* */ - /* num_designs :: The number of designs; should be normally */ - /* 2^num_axis for MM fonts. Not meaningful for GX */ - /* (where every glyph could have a different */ - /* number of designs). */ - /* */ - /* num_namedstyles :: The number of named styles; only meaningful for */ - /* GX that allows certain design coordinates to */ - /* have a string ID (in the `name' table) */ - /* associated with them. The font can tell the */ - /* user that, for example, Weight=1.5 is `Bold'. */ - /* */ - /* axis :: A table of axis descriptors. */ - /* GX fonts contain slightly more data than MM. */ - /* */ - /* namedstyles :: A table of named styles. */ - /* Only meaningful with GX. */ - /* */ - typedef struct FT_MM_Var_ - { - FT_UInt num_axis; - FT_UInt num_designs; - FT_UInt num_namedstyles; - FT_Var_Axis* axis; - FT_Var_Named_Style* namedstyle; - - } FT_MM_Var; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Multi_Master */ - /* */ - /* <Description> */ - /* Retrieve the Multiple Master descriptor of a given font. */ - /* */ - /* This function can't be used with GX fonts. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* <Output> */ - /* amaster :: The Multiple Masters descriptor. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Multi_Master( FT_Face face, - FT_Multi_Master *amaster ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_MM_Var */ - /* */ - /* <Description> */ - /* Retrieve the Multiple Master/GX var descriptor of a given font. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* <Output> */ - /* amaster :: The Multiple Masters/GX var descriptor. */ - /* Allocates a data structure, which the user must free. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_MM_Var( FT_Face face, - FT_MM_Var* *amaster ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_MM_Design_Coordinates */ - /* */ - /* <Description> */ - /* For Multiple Masters fonts, choose an interpolated font design */ - /* through design coordinates. */ - /* */ - /* This function can't be used with GX fonts. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face. */ - /* */ - /* <Input> */ - /* num_coords :: The number of design coordinates (must be equal to */ - /* the number of axes in the font). */ - /* */ - /* coords :: An array of design coordinates. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_MM_Design_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Long* coords ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Var_Design_Coordinates */ - /* */ - /* <Description> */ - /* For Multiple Master or GX Var fonts, choose an interpolated font */ - /* design through design coordinates. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face. */ - /* */ - /* <Input> */ - /* num_coords :: The number of design coordinates (must be equal to */ - /* the number of axes in the font). */ - /* */ - /* coords :: An array of design coordinates. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Var_Design_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_MM_Blend_Coordinates */ - /* */ - /* <Description> */ - /* For Multiple Masters and GX var fonts, choose an interpolated font */ - /* design through normalized blend coordinates. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face. */ - /* */ - /* <Input> */ - /* num_coords :: The number of design coordinates (must be equal to */ - /* the number of axes in the font). */ - /* */ - /* coords :: The design coordinates array (each element must be */ - /* between 0 and 1.0). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_MM_Blend_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Var_Blend_Coordinates */ - /* */ - /* <Description> */ - /* This is another name of @FT_Set_MM_Blend_Coordinates. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Var_Blend_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTMM_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftmodapi.h b/lib/linux/include/ftmodapi.h deleted file mode 100644 index 980f15d..0000000 --- a/lib/linux/include/ftmodapi.h +++ /dev/null @@ -1,667 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmodapi.h */ -/* */ -/* FreeType modules public interface (specification). */ -/* */ -/* Copyright 1996-2003, 2006, 2008-2010, 2012, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTMODAPI_H__ -#define __FTMODAPI_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* module_management */ - /* */ - /* <Title> */ - /* Module Management */ - /* */ - /* <Abstract> */ - /* How to add, upgrade, remove, and control modules from FreeType. */ - /* */ - /* <Description> */ - /* The definitions below are used to manage modules within FreeType. */ - /* Modules can be added, upgraded, and removed at runtime. */ - /* Additionally, some module properties can be controlled also. */ - /* */ - /* Here is a list of possible values of the `module_name' field in */ - /* the @FT_Module_Class structure. */ - /* */ - /* { */ - /* autofitter */ - /* bdf */ - /* cff */ - /* gxvalid */ - /* otvalid */ - /* pcf */ - /* pfr */ - /* psaux */ - /* pshinter */ - /* psnames */ - /* raster1, raster5 */ - /* sfnt */ - /* smooth, smooth-lcd, smooth-lcdv */ - /* truetype */ - /* type1 */ - /* type42 */ - /* t1cid */ - /* winfonts */ - /* } */ - /* */ - /* Note that the FreeType Cache sub-system is not a FreeType module. */ - /* */ - /* <Order> */ - /* FT_Module */ - /* FT_Module_Constructor */ - /* FT_Module_Destructor */ - /* FT_Module_Requester */ - /* FT_Module_Class */ - /* */ - /* FT_Add_Module */ - /* FT_Get_Module */ - /* FT_Remove_Module */ - /* FT_Add_Default_Modules */ - /* */ - /* FT_Property_Set */ - /* FT_Property_Get */ - /* */ - /* FT_New_Library */ - /* FT_Done_Library */ - /* FT_Reference_Library */ - /* */ - /* FT_Renderer */ - /* FT_Renderer_Class */ - /* */ - /* FT_Get_Renderer */ - /* FT_Set_Renderer */ - /* */ - /* FT_Set_Debug_Hook */ - /* */ - /*************************************************************************/ - - - /* module bit flags */ -#define FT_MODULE_FONT_DRIVER 1 /* this module is a font driver */ -#define FT_MODULE_RENDERER 2 /* this module is a renderer */ -#define FT_MODULE_HINTER 4 /* this module is a glyph hinter */ -#define FT_MODULE_STYLER 8 /* this module is a styler */ - -#define FT_MODULE_DRIVER_SCALABLE 0x100 /* the driver supports */ - /* scalable fonts */ -#define FT_MODULE_DRIVER_NO_OUTLINES 0x200 /* the driver does not */ - /* support vector outlines */ -#define FT_MODULE_DRIVER_HAS_HINTER 0x400 /* the driver provides its */ - /* own hinter */ - - - /* deprecated values */ -#define ft_module_font_driver FT_MODULE_FONT_DRIVER -#define ft_module_renderer FT_MODULE_RENDERER -#define ft_module_hinter FT_MODULE_HINTER -#define ft_module_styler FT_MODULE_STYLER - -#define ft_module_driver_scalable FT_MODULE_DRIVER_SCALABLE -#define ft_module_driver_no_outlines FT_MODULE_DRIVER_NO_OUTLINES -#define ft_module_driver_has_hinter FT_MODULE_DRIVER_HAS_HINTER - - - typedef FT_Pointer FT_Module_Interface; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Constructor */ - /* */ - /* <Description> */ - /* A function used to initialize (not create) a new module object. */ - /* */ - /* <Input> */ - /* module :: The module to initialize. */ - /* */ - typedef FT_Error - (*FT_Module_Constructor)( FT_Module module ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Destructor */ - /* */ - /* <Description> */ - /* A function used to finalize (not destroy) a given module object. */ - /* */ - /* <Input> */ - /* module :: The module to finalize. */ - /* */ - typedef void - (*FT_Module_Destructor)( FT_Module module ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Requester */ - /* */ - /* <Description> */ - /* A function used to query a given module for a specific interface. */ - /* */ - /* <Input> */ - /* module :: The module to be searched. */ - /* */ - /* name :: The name of the interface in the module. */ - /* */ - typedef FT_Module_Interface - (*FT_Module_Requester)( FT_Module module, - const char* name ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Module_Class */ - /* */ - /* <Description> */ - /* The module class descriptor. */ - /* */ - /* <Fields> */ - /* module_flags :: Bit flags describing the module. */ - /* */ - /* module_size :: The size of one module object/instance in */ - /* bytes. */ - /* */ - /* module_name :: The name of the module. */ - /* */ - /* module_version :: The version, as a 16.16 fixed number */ - /* (major.minor). */ - /* */ - /* module_requires :: The version of FreeType this module requires, */ - /* as a 16.16 fixed number (major.minor). Starts */ - /* at version 2.0, i.e., 0x20000. */ - /* */ - /* module_init :: The initializing function. */ - /* */ - /* module_done :: The finalizing function. */ - /* */ - /* get_interface :: The interface requesting function. */ - /* */ - typedef struct FT_Module_Class_ - { - FT_ULong module_flags; - FT_Long module_size; - const FT_String* module_name; - FT_Fixed module_version; - FT_Fixed module_requires; - - const void* module_interface; - - FT_Module_Constructor module_init; - FT_Module_Destructor module_done; - FT_Module_Requester get_interface; - - } FT_Module_Class; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Add_Module */ - /* */ - /* <Description> */ - /* Add a new module to a given library instance. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library object. */ - /* */ - /* <Input> */ - /* clazz :: A pointer to class descriptor for the module. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* An error will be returned if a module already exists by that name, */ - /* or if the module requires a version of FreeType that is too great. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Add_Module( FT_Library library, - const FT_Module_Class* clazz ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Module */ - /* */ - /* <Description> */ - /* Find a module by its name. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object. */ - /* */ - /* module_name :: The module's name (as an ASCII string). */ - /* */ - /* <Return> */ - /* A module handle. 0~if none was found. */ - /* */ - /* <Note> */ - /* FreeType's internal modules aren't documented very well, and you */ - /* should look up the source code for details. */ - /* */ - FT_EXPORT( FT_Module ) - FT_Get_Module( FT_Library library, - const char* module_name ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Remove_Module */ - /* */ - /* <Description> */ - /* Remove a given module from a library instance. */ - /* */ - /* <InOut> */ - /* library :: A handle to a library object. */ - /* */ - /* <Input> */ - /* module :: A handle to a module object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The module object is destroyed by the function in case of success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Remove_Module( FT_Library library, - FT_Module module ); - - - /********************************************************************** - * - * @function: - * FT_Property_Set - * - * @description: - * Set a property for a given module. - * - * @input: - * library :: - * A handle to the library the module is part of. - * - * module_name :: - * The module name. - * - * property_name :: - * The property name. Properties are described in the `Synopsis' - * subsection of the module's documentation. - * - * Note that only a few modules have properties. - * - * value :: - * A generic pointer to a variable or structure that gives the new - * value of the property. The exact definition of `value' is - * dependent on the property; see the `Synopsis' subsection of the - * module's documentation. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If `module_name' isn't a valid module name, or `property_name' - * doesn't specify a valid property, or if `value' doesn't represent a - * valid value for the given property, an error is returned. - * - * The following example sets property `bar' (a simple integer) in - * module `foo' to value~1. - * - * { - * FT_UInt bar; - * - * - * bar = 1; - * FT_Property_Set( library, "foo", "bar", &bar ); - * } - * - * Note that the FreeType Cache sub-system doesn't recognize module - * property changes. To avoid glyph lookup confusion within the cache - * you should call @FTC_Manager_Reset to completely flush the cache if - * a module property gets changed after @FTC_Manager_New has been - * called. - * - * It is not possible to set properties of the FreeType Cache - * sub-system itself with FT_Property_Set; use @FTC_Property_Set - * instead. - * - * @since: - * 2.4.11 - * - */ - FT_EXPORT( FT_Error ) - FT_Property_Set( FT_Library library, - const FT_String* module_name, - const FT_String* property_name, - const void* value ); - - - /********************************************************************** - * - * @function: - * FT_Property_Get - * - * @description: - * Get a module's property value. - * - * @input: - * library :: - * A handle to the library the module is part of. - * - * module_name :: - * The module name. - * - * property_name :: - * The property name. Properties are described in the `Synopsis' - * subsection of the module's documentation. - * - * @inout: - * value :: - * A generic pointer to a variable or structure that gives the - * value of the property. The exact definition of `value' is - * dependent on the property; see the `Synopsis' subsection of the - * module's documentation. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If `module_name' isn't a valid module name, or `property_name' - * doesn't specify a valid property, or if `value' doesn't represent a - * valid value for the given property, an error is returned. - * - * The following example gets property `baz' (a range) in module `foo'. - * - * { - * typedef range_ - * { - * FT_Int32 min; - * FT_Int32 max; - * - * } range; - * - * range baz; - * - * - * FT_Property_Get( library, "foo", "baz", &baz ); - * } - * - * It is not possible to retrieve properties of the FreeType Cache - * sub-system with FT_Property_Get; use @FTC_Property_Get instead. - * - * @since: - * 2.4.11 - * - */ - FT_EXPORT( FT_Error ) - FT_Property_Get( FT_Library library, - const FT_String* module_name, - const FT_String* property_name, - void* value ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Reference_Library */ - /* */ - /* <Description> */ - /* A counter gets initialized to~1 at the time an @FT_Library */ - /* structure is created. This function increments the counter. */ - /* @FT_Done_Library then only destroys a library if the counter is~1, */ - /* otherwise it simply decrements the counter. */ - /* */ - /* This function helps in managing life-cycles of structures that */ - /* reference @FT_Library objects. */ - /* */ - /* <Input> */ - /* library :: A handle to a target library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Since> */ - /* 2.4.2 */ - /* */ - FT_EXPORT( FT_Error ) - FT_Reference_Library( FT_Library library ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Library */ - /* */ - /* <Description> */ - /* This function is used to create a new FreeType library instance */ - /* from a given memory object. It is thus possible to use libraries */ - /* with distinct memory allocators within the same program. */ - /* */ - /* Normally, you would call this function (followed by a call to */ - /* @FT_Add_Default_Modules or a series of calls to @FT_Add_Module) */ - /* instead of @FT_Init_FreeType to initialize the FreeType library. */ - /* */ - /* Don't use @FT_Done_FreeType but @FT_Done_Library to destroy a */ - /* library instance. */ - /* */ - /* <Input> */ - /* memory :: A handle to the original memory object. */ - /* */ - /* <Output> */ - /* alibrary :: A pointer to handle of a new library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Library. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Library( FT_Memory memory, - FT_Library *alibrary ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Library */ - /* */ - /* <Description> */ - /* Discard a given library object. This closes all drivers and */ - /* discards all resource objects. */ - /* */ - /* <Input> */ - /* library :: A handle to the target library. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Library. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Done_Library( FT_Library library ); - - /* */ - - typedef void - (*FT_DebugHook_Func)( void* arg ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Debug_Hook */ - /* */ - /* <Description> */ - /* Set a debug hook function for debugging the interpreter of a font */ - /* format. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library object. */ - /* */ - /* <Input> */ - /* hook_index :: The index of the debug hook. You should use the */ - /* values defined in `ftobjs.h', e.g., */ - /* `FT_DEBUG_HOOK_TRUETYPE'. */ - /* */ - /* debug_hook :: The function used to debug the interpreter. */ - /* */ - /* <Note> */ - /* Currently, four debug hook slots are available, but only two (for */ - /* the TrueType and the Type~1 interpreter) are defined. */ - /* */ - /* Since the internal headers of FreeType are no longer installed, */ - /* the symbol `FT_DEBUG_HOOK_TRUETYPE' isn't available publicly. */ - /* This is a bug and will be fixed in a forthcoming release. */ - /* */ - FT_EXPORT( void ) - FT_Set_Debug_Hook( FT_Library library, - FT_UInt hook_index, - FT_DebugHook_Func debug_hook ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Add_Default_Modules */ - /* */ - /* <Description> */ - /* Add the set of default drivers to a given library object. */ - /* This is only useful when you create a library object with */ - /* @FT_New_Library (usually to plug a custom memory manager). */ - /* */ - /* <InOut> */ - /* library :: A handle to a new library object. */ - /* */ - FT_EXPORT( void ) - FT_Add_Default_Modules( FT_Library library ); - - - - /************************************************************************** - * - * @section: - * truetype_engine - * - * @title: - * The TrueType Engine - * - * @abstract: - * TrueType bytecode support. - * - * @description: - * This section contains a function used to query the level of TrueType - * bytecode support compiled in this version of the library. - * - */ - - - /************************************************************************** - * - * @enum: - * FT_TrueTypeEngineType - * - * @description: - * A list of values describing which kind of TrueType bytecode - * engine is implemented in a given FT_Library instance. It is used - * by the @FT_Get_TrueType_Engine_Type function. - * - * @values: - * FT_TRUETYPE_ENGINE_TYPE_NONE :: - * The library doesn't implement any kind of bytecode interpreter. - * - * FT_TRUETYPE_ENGINE_TYPE_UNPATENTED :: - * The library implements a bytecode interpreter that doesn't - * support the patented operations of the TrueType virtual machine. - * - * Its main use is to load certain Asian fonts that position and - * scale glyph components with bytecode instructions. It produces - * bad output for most other fonts. - * - * FT_TRUETYPE_ENGINE_TYPE_PATENTED :: - * The library implements a bytecode interpreter that covers - * the full instruction set of the TrueType virtual machine (this - * was governed by patents until May 2010, hence the name). - * - * @since: - * 2.2 - * - */ - typedef enum FT_TrueTypeEngineType_ - { - FT_TRUETYPE_ENGINE_TYPE_NONE = 0, - FT_TRUETYPE_ENGINE_TYPE_UNPATENTED, - FT_TRUETYPE_ENGINE_TYPE_PATENTED - - } FT_TrueTypeEngineType; - - - /************************************************************************** - * - * @func: - * FT_Get_TrueType_Engine_Type - * - * @description: - * Return an @FT_TrueTypeEngineType value to indicate which level of - * the TrueType virtual machine a given library instance supports. - * - * @input: - * library :: - * A library instance. - * - * @return: - * A value indicating which level is supported. - * - * @since: - * 2.2 - * - */ - FT_EXPORT( FT_TrueTypeEngineType ) - FT_Get_TrueType_Engine_Type( FT_Library library ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTMODAPI_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftmoderr.h b/lib/linux/include/ftmoderr.h deleted file mode 100644 index 5a27db1..0000000 --- a/lib/linux/include/ftmoderr.h +++ /dev/null @@ -1,194 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmoderr.h */ -/* */ -/* FreeType module error offsets (specification). */ -/* */ -/* Copyright 2001-2005, 2010, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file is used to define the FreeType module error codes. */ - /* */ - /* If the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS in `ftoption.h' is */ - /* set, the lower byte of an error value identifies the error code as */ - /* usual. In addition, the higher byte identifies the module. For */ - /* example, the error `FT_Err_Invalid_File_Format' has value 0x0003, the */ - /* error `TT_Err_Invalid_File_Format' has value 0x1303, the error */ - /* `T1_Err_Invalid_File_Format' has value 0x1403, etc. */ - /* */ - /* Note that `FT_Err_Ok', `TT_Err_Ok', etc. are always equal to zero, */ - /* including the high byte. */ - /* */ - /* If FT_CONFIG_OPTION_USE_MODULE_ERRORS isn't set, the higher byte of */ - /* an error value is set to zero. */ - /* */ - /* To hide the various `XXX_Err_' prefixes in the source code, FreeType */ - /* provides some macros in `fttypes.h'. */ - /* */ - /* FT_ERR( err ) */ - /* Add current error module prefix (as defined with the */ - /* `FT_ERR_PREFIX' macro) to `err'. For example, in the BDF module */ - /* the line */ - /* */ - /* error = FT_ERR( Invalid_Outline ); */ - /* */ - /* expands to */ - /* */ - /* error = BDF_Err_Invalid_Outline; */ - /* */ - /* For simplicity, you can always use `FT_Err_Ok' directly instead */ - /* of `FT_ERR( Ok )'. */ - /* */ - /* FT_ERR_EQ( errcode, err ) */ - /* FT_ERR_NEQ( errcode, err ) */ - /* Compare error code `errcode' with the error `err' for equality */ - /* and inequality, respectively. Example: */ - /* */ - /* if ( FT_ERR_EQ( error, Invalid_Outline ) ) */ - /* ... */ - /* */ - /* Using this macro you don't have to think about error prefixes. */ - /* Of course, if module errors are not active, the above example is */ - /* the same as */ - /* */ - /* if ( error == FT_Err_Invalid_Outline ) */ - /* ... */ - /* */ - /* FT_ERROR_BASE( errcode ) */ - /* FT_ERROR_MODULE( errcode ) */ - /* Get base error and module error code, respectively. */ - /* */ - /* */ - /* It can also be used to create a module error message table easily */ - /* with something like */ - /* */ - /* { */ - /* #undef __FTMODERR_H__ */ - /* #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, */ - /* #define FT_MODERR_START_LIST { */ - /* #define FT_MODERR_END_LIST { 0, 0 } }; */ - /* */ - /* const struct */ - /* { */ - /* int mod_err_offset; */ - /* const char* mod_err_msg */ - /* } ft_mod_errors[] = */ - /* */ - /* #include FT_MODULE_ERRORS_H */ - /* } */ - /* */ - /*************************************************************************/ - - -#ifndef __FTMODERR_H__ -#define __FTMODERR_H__ - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** SETUP MACROS *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - -#undef FT_NEED_EXTERN_C - -#ifndef FT_MODERRDEF - -#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS -#define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = v, -#else -#define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = 0, -#endif - -#define FT_MODERR_START_LIST enum { -#define FT_MODERR_END_LIST FT_Mod_Err_Max }; - -#ifdef __cplusplus -#define FT_NEED_EXTERN_C - extern "C" { -#endif - -#endif /* !FT_MODERRDEF */ - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** LIST MODULE ERROR BASES *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - -#ifdef FT_MODERR_START_LIST - FT_MODERR_START_LIST -#endif - - - FT_MODERRDEF( Base, 0x000, "base module" ) - FT_MODERRDEF( Autofit, 0x100, "autofitter module" ) - FT_MODERRDEF( BDF, 0x200, "BDF module" ) - FT_MODERRDEF( Bzip2, 0x300, "Bzip2 module" ) - FT_MODERRDEF( Cache, 0x400, "cache module" ) - FT_MODERRDEF( CFF, 0x500, "CFF module" ) - FT_MODERRDEF( CID, 0x600, "CID module" ) - FT_MODERRDEF( Gzip, 0x700, "Gzip module" ) - FT_MODERRDEF( LZW, 0x800, "LZW module" ) - FT_MODERRDEF( OTvalid, 0x900, "OpenType validation module" ) - FT_MODERRDEF( PCF, 0xA00, "PCF module" ) - FT_MODERRDEF( PFR, 0xB00, "PFR module" ) - FT_MODERRDEF( PSaux, 0xC00, "PS auxiliary module" ) - FT_MODERRDEF( PShinter, 0xD00, "PS hinter module" ) - FT_MODERRDEF( PSnames, 0xE00, "PS names module" ) - FT_MODERRDEF( Raster, 0xF00, "raster module" ) - FT_MODERRDEF( SFNT, 0x1000, "SFNT module" ) - FT_MODERRDEF( Smooth, 0x1100, "smooth raster module" ) - FT_MODERRDEF( TrueType, 0x1200, "TrueType module" ) - FT_MODERRDEF( Type1, 0x1300, "Type 1 module" ) - FT_MODERRDEF( Type42, 0x1400, "Type 42 module" ) - FT_MODERRDEF( Winfonts, 0x1500, "Windows FON/FNT module" ) - FT_MODERRDEF( GXvalid, 0x1600, "GX validation module" ) - - -#ifdef FT_MODERR_END_LIST - FT_MODERR_END_LIST -#endif - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** CLEANUP *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - -#ifdef FT_NEED_EXTERN_C - } -#endif - -#undef FT_MODERR_START_LIST -#undef FT_MODERR_END_LIST -#undef FT_MODERRDEF -#undef FT_NEED_EXTERN_C - - -#endif /* __FTMODERR_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftotval.h b/lib/linux/include/ftotval.h deleted file mode 100644 index 75ba03e..0000000 --- a/lib/linux/include/ftotval.h +++ /dev/null @@ -1,204 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftotval.h */ -/* */ -/* FreeType API for validating OpenType tables (specification). */ -/* */ -/* Copyright 2004-2007, 2013, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* */ -/* Warning: This module might be moved to a different library in the */ -/* future to avoid a tight dependency between FreeType and the */ -/* OpenType specification. */ -/* */ -/* */ -/***************************************************************************/ - - -#ifndef __FTOTVAL_H__ -#define __FTOTVAL_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* ot_validation */ - /* */ - /* <Title> */ - /* OpenType Validation */ - /* */ - /* <Abstract> */ - /* An API to validate OpenType tables. */ - /* */ - /* <Description> */ - /* This section contains the declaration of functions to validate */ - /* some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). */ - /* */ - /* <Order> */ - /* FT_OpenType_Validate */ - /* FT_OpenType_Free */ - /* */ - /* FT_VALIDATE_OTXXX */ - /* */ - /*************************************************************************/ - - - /********************************************************************** - * - * @enum: - * FT_VALIDATE_OTXXX - * - * @description: - * A list of bit-field constants used with @FT_OpenType_Validate to - * indicate which OpenType tables should be validated. - * - * @values: - * FT_VALIDATE_BASE :: - * Validate BASE table. - * - * FT_VALIDATE_GDEF :: - * Validate GDEF table. - * - * FT_VALIDATE_GPOS :: - * Validate GPOS table. - * - * FT_VALIDATE_GSUB :: - * Validate GSUB table. - * - * FT_VALIDATE_JSTF :: - * Validate JSTF table. - * - * FT_VALIDATE_MATH :: - * Validate MATH table. - * - * FT_VALIDATE_OT :: - * Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). - * - */ -#define FT_VALIDATE_BASE 0x0100 -#define FT_VALIDATE_GDEF 0x0200 -#define FT_VALIDATE_GPOS 0x0400 -#define FT_VALIDATE_GSUB 0x0800 -#define FT_VALIDATE_JSTF 0x1000 -#define FT_VALIDATE_MATH 0x2000 - -#define FT_VALIDATE_OT FT_VALIDATE_BASE | \ - FT_VALIDATE_GDEF | \ - FT_VALIDATE_GPOS | \ - FT_VALIDATE_GSUB | \ - FT_VALIDATE_JSTF | \ - FT_VALIDATE_MATH - - /********************************************************************** - * - * @function: - * FT_OpenType_Validate - * - * @description: - * Validate various OpenType tables to assure that all offsets and - * indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without - * error checking (which can be quite time consuming). - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the tables to be validated. See - * @FT_VALIDATE_OTXXX for possible values. - * - * @output: - * BASE_table :: - * A pointer to the BASE table. - * - * GDEF_table :: - * A pointer to the GDEF table. - * - * GPOS_table :: - * A pointer to the GPOS table. - * - * GSUB_table :: - * A pointer to the GSUB table. - * - * JSTF_table :: - * A pointer to the JSTF table. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with OpenType fonts, returning an error - * otherwise. - * - * After use, the application should deallocate the five tables with - * @FT_OpenType_Free. A NULL value indicates that the table either - * doesn't exist in the font, or the application hasn't asked for - * validation. - */ - FT_EXPORT( FT_Error ) - FT_OpenType_Validate( FT_Face face, - FT_UInt validation_flags, - FT_Bytes *BASE_table, - FT_Bytes *GDEF_table, - FT_Bytes *GPOS_table, - FT_Bytes *GSUB_table, - FT_Bytes *JSTF_table ); - - /********************************************************************** - * - * @function: - * FT_OpenType_Free - * - * @description: - * Free the buffer allocated by OpenType validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer that is allocated by - * @FT_OpenType_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_OpenType_Validate only. - */ - FT_EXPORT( void ) - FT_OpenType_Free( FT_Face face, - FT_Bytes table ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTOTVAL_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftoutln.h b/lib/linux/include/ftoutln.h deleted file mode 100644 index d3b8fbd..0000000 --- a/lib/linux/include/ftoutln.h +++ /dev/null @@ -1,574 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftoutln.h */ -/* */ -/* Support for the FT_Outline type used to store glyph shapes of */ -/* most scalable font formats (specification). */ -/* */ -/* Copyright 1996-2003, 2005-2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTOUTLN_H__ -#define __FTOUTLN_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* outline_processing */ - /* */ - /* <Title> */ - /* Outline Processing */ - /* */ - /* <Abstract> */ - /* Functions to create, transform, and render vectorial glyph images. */ - /* */ - /* <Description> */ - /* This section contains routines used to create and destroy scalable */ - /* glyph images known as `outlines'. These can also be measured, */ - /* transformed, and converted into bitmaps and pixmaps. */ - /* */ - /* <Order> */ - /* FT_Outline */ - /* FT_Outline_New */ - /* FT_Outline_Done */ - /* FT_Outline_Copy */ - /* FT_Outline_Translate */ - /* FT_Outline_Transform */ - /* FT_Outline_Embolden */ - /* FT_Outline_EmboldenXY */ - /* FT_Outline_Reverse */ - /* FT_Outline_Check */ - /* */ - /* FT_Outline_Get_CBox */ - /* FT_Outline_Get_BBox */ - /* */ - /* FT_Outline_Get_Bitmap */ - /* FT_Outline_Render */ - /* FT_Outline_Decompose */ - /* FT_Outline_Funcs */ - /* FT_Outline_MoveToFunc */ - /* FT_Outline_LineToFunc */ - /* FT_Outline_ConicToFunc */ - /* FT_Outline_CubicToFunc */ - /* */ - /* FT_Orientation */ - /* FT_Outline_Get_Orientation */ - /* */ - /* FT_OUTLINE_XXX */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Decompose */ - /* */ - /* <Description> */ - /* Walk over an outline's structure to decompose it into individual */ - /* segments and Bézier arcs. This function also emits `move to' */ - /* operations to indicate the start of new contours in the outline. */ - /* */ - /* <Input> */ - /* outline :: A pointer to the source target. */ - /* */ - /* func_interface :: A table of `emitters', i.e., function pointers */ - /* called during decomposition to indicate path */ - /* operations. */ - /* */ - /* <InOut> */ - /* user :: A typeless pointer that is passed to each */ - /* emitter during the decomposition. It can be */ - /* used to store the state during the */ - /* decomposition. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* A contour that contains a single point only is represented by a */ - /* `move to' operation followed by `line to' to the same point. In */ - /* most cases, it is best to filter this out before using the */ - /* outline for stroking purposes (otherwise it would result in a */ - /* visible dot when round caps are used). */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Decompose( FT_Outline* outline, - const FT_Outline_Funcs* func_interface, - void* user ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_New */ - /* */ - /* <Description> */ - /* Create a new outline of a given size. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object from where the */ - /* outline is allocated. Note however that the new */ - /* outline will *not* necessarily be *freed*, when */ - /* destroying the library, by @FT_Done_FreeType. */ - /* */ - /* numPoints :: The maximum number of points within the outline. */ - /* Must be smaller than or equal to 0xFFFF (65535). */ - /* */ - /* numContours :: The maximum number of contours within the outline. */ - /* This value must be in the range 0 to `numPoints'. */ - /* */ - /* <Output> */ - /* anoutline :: A handle to the new outline. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The reason why this function takes a `library' parameter is simply */ - /* to use the library's memory allocator. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_New( FT_Library library, - FT_UInt numPoints, - FT_Int numContours, - FT_Outline *anoutline ); - - - FT_EXPORT( FT_Error ) - FT_Outline_New_Internal( FT_Memory memory, - FT_UInt numPoints, - FT_Int numContours, - FT_Outline *anoutline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Done */ - /* */ - /* <Description> */ - /* Destroy an outline created with @FT_Outline_New. */ - /* */ - /* <Input> */ - /* library :: A handle of the library object used to allocate the */ - /* outline. */ - /* */ - /* outline :: A pointer to the outline object to be discarded. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If the outline's `owner' field is not set, only the outline */ - /* descriptor will be released. */ - /* */ - /* The reason why this function takes an `library' parameter is */ - /* simply to use ft_mem_free(). */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Done( FT_Library library, - FT_Outline* outline ); - - - FT_EXPORT( FT_Error ) - FT_Outline_Done_Internal( FT_Memory memory, - FT_Outline* outline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Check */ - /* */ - /* <Description> */ - /* Check the contents of an outline descriptor. */ - /* */ - /* <Input> */ - /* outline :: A handle to a source outline. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Check( FT_Outline* outline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Get_CBox */ - /* */ - /* <Description> */ - /* Return an outline's `control box'. The control box encloses all */ - /* the outline's points, including Bézier control points. Though it */ - /* coincides with the exact bounding box for most glyphs, it can be */ - /* slightly larger in some situations (like when rotating an outline */ - /* that contains Bézier outside arcs). */ - /* */ - /* Computing the control box is very fast, while getting the bounding */ - /* box can take much more time as it needs to walk over all segments */ - /* and arcs in the outline. To get the latter, you can use the */ - /* `ftbbox' component, which is dedicated to this single task. */ - /* */ - /* <Input> */ - /* outline :: A pointer to the source outline descriptor. */ - /* */ - /* <Output> */ - /* acbox :: The outline's control box. */ - /* */ - /* <Note> */ - /* See @FT_Glyph_Get_CBox for a discussion of tricky fonts. */ - /* */ - FT_EXPORT( void ) - FT_Outline_Get_CBox( const FT_Outline* outline, - FT_BBox *acbox ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Translate */ - /* */ - /* <Description> */ - /* Apply a simple translation to the points of an outline. */ - /* */ - /* <InOut> */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* <Input> */ - /* xOffset :: The horizontal offset. */ - /* */ - /* yOffset :: The vertical offset. */ - /* */ - FT_EXPORT( void ) - FT_Outline_Translate( const FT_Outline* outline, - FT_Pos xOffset, - FT_Pos yOffset ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Copy */ - /* */ - /* <Description> */ - /* Copy an outline into another one. Both objects must have the */ - /* same sizes (number of points & number of contours) when this */ - /* function is called. */ - /* */ - /* <Input> */ - /* source :: A handle to the source outline. */ - /* */ - /* <Output> */ - /* target :: A handle to the target outline. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Copy( const FT_Outline* source, - FT_Outline *target ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Transform */ - /* */ - /* <Description> */ - /* Apply a simple 2x2 matrix to all of an outline's points. Useful */ - /* for applying rotations, slanting, flipping, etc. */ - /* */ - /* <InOut> */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to the transformation matrix. */ - /* */ - /* <Note> */ - /* You can use @FT_Outline_Translate if you need to translate the */ - /* outline's points. */ - /* */ - FT_EXPORT( void ) - FT_Outline_Transform( const FT_Outline* outline, - const FT_Matrix* matrix ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Embolden */ - /* */ - /* <Description> */ - /* Embolden an outline. The new outline will be at most 4~times */ - /* `strength' pixels wider and higher. You may think of the left and */ - /* bottom borders as unchanged. */ - /* */ - /* Negative `strength' values to reduce the outline thickness are */ - /* possible also. */ - /* */ - /* <InOut> */ - /* outline :: A handle to the target outline. */ - /* */ - /* <Input> */ - /* strength :: How strong the glyph is emboldened. Expressed in */ - /* 26.6 pixel format. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The used algorithm to increase or decrease the thickness of the */ - /* glyph doesn't change the number of points; this means that certain */ - /* situations like acute angles or intersections are sometimes */ - /* handled incorrectly. */ - /* */ - /* If you need `better' metrics values you should call */ - /* @FT_Outline_Get_CBox or @FT_Outline_Get_BBox. */ - /* */ - /* Example call: */ - /* */ - /* { */ - /* FT_Load_Glyph( face, index, FT_LOAD_DEFAULT ); */ - /* if ( face->slot->format == FT_GLYPH_FORMAT_OUTLINE ) */ - /* FT_Outline_Embolden( &face->slot->outline, strength ); */ - /* } */ - /* */ - /* To get meaningful results, font scaling values must be set with */ - /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Embolden( FT_Outline* outline, - FT_Pos strength ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_EmboldenXY */ - /* */ - /* <Description> */ - /* Embolden an outline. The new outline will be `xstrength' pixels */ - /* wider and `ystrength' pixels higher. Otherwise, it is similar to */ - /* @FT_Outline_Embolden, which uses the same strength in both */ - /* directions. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_EmboldenXY( FT_Outline* outline, - FT_Pos xstrength, - FT_Pos ystrength ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Reverse */ - /* */ - /* <Description> */ - /* Reverse the drawing direction of an outline. This is used to */ - /* ensure consistent fill conventions for mirrored glyphs. */ - /* */ - /* <InOut> */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* <Note> */ - /* This function toggles the bit flag @FT_OUTLINE_REVERSE_FILL in */ - /* the outline's `flags' field. */ - /* */ - /* It shouldn't be used by a normal client application, unless it */ - /* knows what it is doing. */ - /* */ - FT_EXPORT( void ) - FT_Outline_Reverse( FT_Outline* outline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Get_Bitmap */ - /* */ - /* <Description> */ - /* Render an outline within a bitmap. The outline's image is simply */ - /* OR-ed to the target bitmap. */ - /* */ - /* <Input> */ - /* library :: A handle to a FreeType library object. */ - /* */ - /* outline :: A pointer to the source outline descriptor. */ - /* */ - /* <InOut> */ - /* abitmap :: A pointer to the target bitmap descriptor. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function does NOT CREATE the bitmap, it only renders an */ - /* outline image within the one you pass to it! Consequently, the */ - /* various fields in `abitmap' should be set accordingly. */ - /* */ - /* It will use the raster corresponding to the default glyph format. */ - /* */ - /* The value of the `num_grays' field in `abitmap' is ignored. If */ - /* you select the gray-level rasterizer, and you want less than 256 */ - /* gray levels, you have to use @FT_Outline_Render directly. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Get_Bitmap( FT_Library library, - FT_Outline* outline, - const FT_Bitmap *abitmap ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Render */ - /* */ - /* <Description> */ - /* Render an outline within a bitmap using the current scan-convert. */ - /* This function uses an @FT_Raster_Params structure as an argument, */ - /* allowing advanced features like direct composition, translucency, */ - /* etc. */ - /* */ - /* <Input> */ - /* library :: A handle to a FreeType library object. */ - /* */ - /* outline :: A pointer to the source outline descriptor. */ - /* */ - /* <InOut> */ - /* params :: A pointer to an @FT_Raster_Params structure used to */ - /* describe the rendering operation. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You should know what you are doing and how @FT_Raster_Params works */ - /* to use this function. */ - /* */ - /* The field `params.source' will be set to `outline' before the scan */ - /* converter is called, which means that the value you give to it is */ - /* actually ignored. */ - /* */ - /* The gray-level rasterizer always uses 256 gray levels. If you */ - /* want less gray levels, you have to provide your own span callback. */ - /* See the @FT_RASTER_FLAG_DIRECT value of the `flags' field in the */ - /* @FT_Raster_Params structure for more details. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Render( FT_Library library, - FT_Outline* outline, - FT_Raster_Params* params ); - - - /************************************************************************** - * - * @enum: - * FT_Orientation - * - * @description: - * A list of values used to describe an outline's contour orientation. - * - * The TrueType and PostScript specifications use different conventions - * to determine whether outline contours should be filled or unfilled. - * - * @values: - * FT_ORIENTATION_TRUETYPE :: - * According to the TrueType specification, clockwise contours must - * be filled, and counter-clockwise ones must be unfilled. - * - * FT_ORIENTATION_POSTSCRIPT :: - * According to the PostScript specification, counter-clockwise contours - * must be filled, and clockwise ones must be unfilled. - * - * FT_ORIENTATION_FILL_RIGHT :: - * This is identical to @FT_ORIENTATION_TRUETYPE, but is used to - * remember that in TrueType, everything that is to the right of - * the drawing direction of a contour must be filled. - * - * FT_ORIENTATION_FILL_LEFT :: - * This is identical to @FT_ORIENTATION_POSTSCRIPT, but is used to - * remember that in PostScript, everything that is to the left of - * the drawing direction of a contour must be filled. - * - * FT_ORIENTATION_NONE :: - * The orientation cannot be determined. That is, different parts of - * the glyph have different orientation. - * - */ - typedef enum FT_Orientation_ - { - FT_ORIENTATION_TRUETYPE = 0, - FT_ORIENTATION_POSTSCRIPT = 1, - FT_ORIENTATION_FILL_RIGHT = FT_ORIENTATION_TRUETYPE, - FT_ORIENTATION_FILL_LEFT = FT_ORIENTATION_POSTSCRIPT, - FT_ORIENTATION_NONE - - } FT_Orientation; - - - /************************************************************************** - * - * @function: - * FT_Outline_Get_Orientation - * - * @description: - * This function analyzes a glyph outline and tries to compute its - * fill orientation (see @FT_Orientation). This is done by integrating - * the total area covered by the outline. The positive integral - * corresponds to the clockwise orientation and @FT_ORIENTATION_POSTSCRIPT - * is returned. The negative integral corresponds to the counter-clockwise - * orientation and @FT_ORIENTATION_TRUETYPE is returned. - * - * Note that this will return @FT_ORIENTATION_TRUETYPE for empty - * outlines. - * - * @input: - * outline :: - * A handle to the source outline. - * - * @return: - * The orientation. - * - */ - FT_EXPORT( FT_Orientation ) - FT_Outline_Get_Orientation( FT_Outline* outline ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTOUTLN_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/linux/include/ftpfr.h b/lib/linux/include/ftpfr.h deleted file mode 100644 index 7d50353..0000000 --- a/lib/linux/include/ftpfr.h +++ /dev/null @@ -1,172 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftpfr.h */ -/* */ -/* FreeType API for accessing PFR-specific data (specification only). */ -/* */ -/* Copyright 2002, 2003, 2004, 2006, 2008, 2009 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTPFR_H__ -#define __FTPFR_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* pfr_fonts */ - /* */ - /* <Title> */ - /* PFR Fonts */ - /* */ - /* <Abstract> */ - /* PFR/TrueDoc specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of PFR-specific functions. */ - /* */ - /*************************************************************************/ - - - /********************************************************************** - * - * @function: - * FT_Get_PFR_Metrics - * - * @description: - * Return the outline and metrics resolutions of a given PFR face. - * - * @input: - * face :: Handle to the input face. It can be a non-PFR face. - * - * @output: - * aoutline_resolution :: - * Outline resolution. This is equivalent to `face->units_per_EM' - * for non-PFR fonts. Optional (parameter can be NULL). - * - * ametrics_resolution :: - * Metrics resolution. This is equivalent to `outline_resolution' - * for non-PFR fonts. Optional (parameter can be NULL). - * - * ametrics_x_scale :: - * A 16.16 fixed-point number used to scale distance expressed - * in metrics units to device sub-pixels. This is equivalent to - * `face->size->x_scale', but for metrics only. Optional (parameter - * can be NULL). - * - * ametrics_y_scale :: - * Same as `ametrics_x_scale' but for the vertical direction. - * optional (parameter can be NULL). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If the input face is not a PFR, this function will return an error. - * However, in all cases, it will return valid values. - */ - FT_EXPORT( FT_Error ) - FT_Get_PFR_Metrics( FT_Face face, - FT_UInt *aoutline_resolution, - FT_UInt *ametrics_resolution, - FT_Fixed *ametrics_x_scale, - FT_Fixed *ametrics_y_scale ); - - - /********************************************************************** - * - * @function: - * FT_Get_PFR_Kerning - * - * @description: - * Return the kerning pair corresponding to two glyphs in a PFR face. - * The distance is expressed in metrics units, unlike the result of - * @FT_Get_Kerning. - * - * @input: - * face :: A handle to the input face. - * - * left :: Index of the left glyph. - * - * right :: Index of the right glyph. - * - * @output: - * avector :: A kerning vector. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function always return distances in original PFR metrics - * units. This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED - * mode, which always returns distances converted to outline units. - * - * You can use the value of the `x_scale' and `y_scale' parameters - * returned by @FT_Get_PFR_Metrics to scale these to device sub-pixels. - */ - FT_EXPORT( FT_Error ) - FT_Get_PFR_Kerning( FT_Face face, - FT_UInt left, - FT_UInt right, - FT_Vector *avector ); - - - /********************************************************************** - * - * @function: - * FT_Get_PFR_Advance - * - * @description: - * Return a given glyph advance, expressed in original metrics units, - * from a PFR font. - * - * @input: - * face :: A handle to the input face. - * - * gindex :: The glyph index. - * - * @output: - * aadvance :: The glyph advance in metrics units. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You can use the `x_scale' or `y_scale' results of @FT_Get_PFR_Metrics - * to convert the advance to device sub-pixels (i.e., 1/64th of pixels). - */ - FT_EXPORT( FT_Error ) - FT_Get_PFR_Advance( FT_Face face, - FT_UInt gindex, - FT_Pos *aadvance ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTPFR_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftrender.h b/lib/linux/include/ftrender.h deleted file mode 100644 index e8d3636..0000000 --- a/lib/linux/include/ftrender.h +++ /dev/null @@ -1,237 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftrender.h */ -/* */ -/* FreeType renderer modules public interface (specification). */ -/* */ -/* Copyright 1996-2001, 2005, 2006, 2010 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTRENDER_H__ -#define __FTRENDER_H__ - - -#include <ft2build.h> -#include FT_MODULE_H -#include FT_GLYPH_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* module_management */ - /* */ - /*************************************************************************/ - - - /* create a new glyph object */ - typedef FT_Error - (*FT_Glyph_InitFunc)( FT_Glyph glyph, - FT_GlyphSlot slot ); - - /* destroys a given glyph object */ - typedef void - (*FT_Glyph_DoneFunc)( FT_Glyph glyph ); - - typedef void - (*FT_Glyph_TransformFunc)( FT_Glyph glyph, - const FT_Matrix* matrix, - const FT_Vector* delta ); - - typedef void - (*FT_Glyph_GetBBoxFunc)( FT_Glyph glyph, - FT_BBox* abbox ); - - typedef FT_Error - (*FT_Glyph_CopyFunc)( FT_Glyph source, - FT_Glyph target ); - - typedef FT_Error - (*FT_Glyph_PrepareFunc)( FT_Glyph glyph, - FT_GlyphSlot slot ); - -/* deprecated */ -#define FT_Glyph_Init_Func FT_Glyph_InitFunc -#define FT_Glyph_Done_Func FT_Glyph_DoneFunc -#define FT_Glyph_Transform_Func FT_Glyph_TransformFunc -#define FT_Glyph_BBox_Func FT_Glyph_GetBBoxFunc -#define FT_Glyph_Copy_Func FT_Glyph_CopyFunc -#define FT_Glyph_Prepare_Func FT_Glyph_PrepareFunc - - - struct FT_Glyph_Class_ - { - FT_Long glyph_size; - FT_Glyph_Format glyph_format; - FT_Glyph_InitFunc glyph_init; - FT_Glyph_DoneFunc glyph_done; - FT_Glyph_CopyFunc glyph_copy; - FT_Glyph_TransformFunc glyph_transform; - FT_Glyph_GetBBoxFunc glyph_bbox; - FT_Glyph_PrepareFunc glyph_prepare; - }; - - - typedef FT_Error - (*FT_Renderer_RenderFunc)( FT_Renderer renderer, - FT_GlyphSlot slot, - FT_UInt mode, - const FT_Vector* origin ); - - typedef FT_Error - (*FT_Renderer_TransformFunc)( FT_Renderer renderer, - FT_GlyphSlot slot, - const FT_Matrix* matrix, - const FT_Vector* delta ); - - - typedef void - (*FT_Renderer_GetCBoxFunc)( FT_Renderer renderer, - FT_GlyphSlot slot, - FT_BBox* cbox ); - - - typedef FT_Error - (*FT_Renderer_SetModeFunc)( FT_Renderer renderer, - FT_ULong mode_tag, - FT_Pointer mode_ptr ); - -/* deprecated identifiers */ -#define FTRenderer_render FT_Renderer_RenderFunc -#define FTRenderer_transform FT_Renderer_TransformFunc -#define FTRenderer_getCBox FT_Renderer_GetCBoxFunc -#define FTRenderer_setMode FT_Renderer_SetModeFunc - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Renderer_Class */ - /* */ - /* <Description> */ - /* The renderer module class descriptor. */ - /* */ - /* <Fields> */ - /* root :: The root @FT_Module_Class fields. */ - /* */ - /* glyph_format :: The glyph image format this renderer handles. */ - /* */ - /* render_glyph :: A method used to render the image that is in a */ - /* given glyph slot into a bitmap. */ - /* */ - /* transform_glyph :: A method used to transform the image that is in */ - /* a given glyph slot. */ - /* */ - /* get_glyph_cbox :: A method used to access the glyph's cbox. */ - /* */ - /* set_mode :: A method used to pass additional parameters. */ - /* */ - /* raster_class :: For @FT_GLYPH_FORMAT_OUTLINE renderers only. */ - /* This is a pointer to its raster's class. */ - /* */ - typedef struct FT_Renderer_Class_ - { - FT_Module_Class root; - - FT_Glyph_Format glyph_format; - - FT_Renderer_RenderFunc render_glyph; - FT_Renderer_TransformFunc transform_glyph; - FT_Renderer_GetCBoxFunc get_glyph_cbox; - FT_Renderer_SetModeFunc set_mode; - - FT_Raster_Funcs* raster_class; - - } FT_Renderer_Class; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Renderer */ - /* */ - /* <Description> */ - /* Retrieve the current renderer for a given glyph format. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object. */ - /* */ - /* format :: The glyph format. */ - /* */ - /* <Return> */ - /* A renderer handle. 0~if none found. */ - /* */ - /* <Note> */ - /* An error will be returned if a module already exists by that name, */ - /* or if the module requires a version of FreeType that is too great. */ - /* */ - /* To add a new renderer, simply use @FT_Add_Module. To retrieve a */ - /* renderer by its name, use @FT_Get_Module. */ - /* */ - FT_EXPORT( FT_Renderer ) - FT_Get_Renderer( FT_Library library, - FT_Glyph_Format format ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Renderer */ - /* */ - /* <Description> */ - /* Set the current renderer to use, and set additional mode. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library object. */ - /* */ - /* <Input> */ - /* renderer :: A handle to the renderer object. */ - /* */ - /* num_params :: The number of additional parameters. */ - /* */ - /* parameters :: Additional parameters. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* In case of success, the renderer will be used to convert glyph */ - /* images in the renderer's known format into bitmaps. */ - /* */ - /* This doesn't change the current renderer for other formats. */ - /* */ - /* Currently, only the B/W renderer, if compiled with */ - /* FT_RASTER_OPTION_ANTI_ALIASING (providing a 5-levels */ - /* anti-aliasing mode; this option must be set directly in */ - /* `ftraster.c' and is undefined by default) accepts a single tag */ - /* `pal5' to set its gray palette as a character string with */ - /* 5~elements. Consequently, the third and fourth argument are zero */ - /* normally. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Renderer( FT_Library library, - FT_Renderer renderer, - FT_UInt num_params, - FT_Parameter* parameters ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTRENDER_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftsizes.h b/lib/linux/include/ftsizes.h deleted file mode 100644 index 4167045..0000000 --- a/lib/linux/include/ftsizes.h +++ /dev/null @@ -1,159 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsizes.h */ -/* */ -/* FreeType size objects management (specification). */ -/* */ -/* Copyright 1996-2001, 2003, 2004, 2006, 2009, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Typical application would normally not need to use these functions. */ - /* However, they have been placed in a public API for the rare cases */ - /* where they are needed. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTSIZES_H__ -#define __FTSIZES_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* sizes_management */ - /* */ - /* <Title> */ - /* Size Management */ - /* */ - /* <Abstract> */ - /* Managing multiple sizes per face. */ - /* */ - /* <Description> */ - /* When creating a new face object (e.g., with @FT_New_Face), an */ - /* @FT_Size object is automatically created and used to store all */ - /* pixel-size dependent information, available in the `face->size' */ - /* field. */ - /* */ - /* It is however possible to create more sizes for a given face, */ - /* mostly in order to manage several character pixel sizes of the */ - /* same font family and style. See @FT_New_Size and @FT_Done_Size. */ - /* */ - /* Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only */ - /* modify the contents of the current `active' size; you thus need */ - /* to use @FT_Activate_Size to change it. */ - /* */ - /* 99% of applications won't need the functions provided here, */ - /* especially if they use the caching sub-system, so be cautious */ - /* when using these. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Size */ - /* */ - /* <Description> */ - /* Create a new size object from a given face object. */ - /* */ - /* <Input> */ - /* face :: A handle to a parent face object. */ - /* */ - /* <Output> */ - /* asize :: A handle to a new size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You need to call @FT_Activate_Size in order to select the new size */ - /* for upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size, */ - /* @FT_Load_Glyph, @FT_Load_Char, etc. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Size( FT_Face face, - FT_Size* size ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Size */ - /* */ - /* <Description> */ - /* Discard a given size object. Note that @FT_Done_Face */ - /* automatically discards all size objects allocated with */ - /* @FT_New_Size. */ - /* */ - /* <Input> */ - /* size :: A handle to a target size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Done_Size( FT_Size size ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Activate_Size */ - /* */ - /* <Description> */ - /* Even though it is possible to create several size objects for a */ - /* given face (see @FT_New_Size for details), functions like */ - /* @FT_Load_Glyph or @FT_Load_Char only use the one that has been */ - /* activated last to determine the `current character pixel size'. */ - /* */ - /* This function can be used to `activate' a previously created size */ - /* object. */ - /* */ - /* <Input> */ - /* size :: A handle to a target size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If `face' is the size's parent face object, this function changes */ - /* the value of `face->size' to the input size handle. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Activate_Size( FT_Size size ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTSIZES_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftsnames.h b/lib/linux/include/ftsnames.h deleted file mode 100644 index 88af440..0000000 --- a/lib/linux/include/ftsnames.h +++ /dev/null @@ -1,200 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsnames.h */ -/* */ -/* Simple interface to access SFNT name tables (which are used */ -/* to hold font names, copyright info, notices, etc.) (specification). */ -/* */ -/* This is _not_ used to retrieve glyph names! */ -/* */ -/* Copyright 1996-2003, 2006, 2009, 2010, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FT_SFNT_NAMES_H__ -#define __FT_SFNT_NAMES_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* sfnt_names */ - /* */ - /* <Title> */ - /* SFNT Names */ - /* */ - /* <Abstract> */ - /* Access the names embedded in TrueType and OpenType files. */ - /* */ - /* <Description> */ - /* The TrueType and OpenType specifications allow the inclusion of */ - /* a special `names table' in font files. This table contains */ - /* textual (and internationalized) information regarding the font, */ - /* like family name, copyright, version, etc. */ - /* */ - /* The definitions below are used to access them if available. */ - /* */ - /* Note that this has nothing to do with glyph names! */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_SfntName */ - /* */ - /* <Description> */ - /* A structure used to model an SFNT `name' table entry. */ - /* */ - /* <Fields> */ - /* platform_id :: The platform ID for `string'. */ - /* */ - /* encoding_id :: The encoding ID for `string'. */ - /* */ - /* language_id :: The language ID for `string'. */ - /* */ - /* name_id :: An identifier for `string'. */ - /* */ - /* string :: The `name' string. Note that its format differs */ - /* depending on the (platform,encoding) pair. It can */ - /* be a Pascal String, a UTF-16 one, etc. */ - /* */ - /* Generally speaking, the string is not */ - /* zero-terminated. Please refer to the TrueType */ - /* specification for details. */ - /* */ - /* string_len :: The length of `string' in bytes. */ - /* */ - /* <Note> */ - /* Possible values for `platform_id', `encoding_id', `language_id', */ - /* and `name_id' are given in the file `ttnameid.h'. For details */ - /* please refer to the TrueType or OpenType specification. */ - /* */ - /* See also @TT_PLATFORM_XXX, @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX, */ - /* @TT_ISO_ID_XXX, and @TT_MS_ID_XXX. */ - /* */ - typedef struct FT_SfntName_ - { - FT_UShort platform_id; - FT_UShort encoding_id; - FT_UShort language_id; - FT_UShort name_id; - - FT_Byte* string; /* this string is *not* null-terminated! */ - FT_UInt string_len; /* in bytes */ - - } FT_SfntName; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Sfnt_Name_Count */ - /* */ - /* <Description> */ - /* Retrieve the number of name strings in the SFNT `name' table. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* <Return> */ - /* The number of strings in the `name' table. */ - /* */ - FT_EXPORT( FT_UInt ) - FT_Get_Sfnt_Name_Count( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Sfnt_Name */ - /* */ - /* <Description> */ - /* Retrieve a string of the SFNT `name' table for a given index. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* idx :: The index of the `name' string. */ - /* */ - /* <Output> */ - /* aname :: The indexed @FT_SfntName structure. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The `string' array returned in the `aname' structure is not */ - /* null-terminated. The application should deallocate it if it is no */ - /* longer in use. */ - /* */ - /* Use @FT_Get_Sfnt_Name_Count to get the total number of available */ - /* `name' table entries, then do a loop until you get the right */ - /* platform, encoding, and name ID. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Sfnt_Name( FT_Face face, - FT_UInt idx, - FT_SfntName *aname ); - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY - * - * @description: - * A constant used as the tag of @FT_Parameter structures to make - * FT_Open_Face() ignore preferred family subfamily names in `name' - * table since OpenType version 1.4. For backwards compatibility with - * legacy systems that have a 4-face-per-family restriction. - * - */ -#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY FT_MAKE_TAG( 'i', 'g', 'p', 'f' ) - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY - * - * @description: - * A constant used as the tag of @FT_Parameter structures to make - * FT_Open_Face() ignore preferred subfamily names in `name' table since - * OpenType version 1.4. For backwards compatibility with legacy - * systems that have a 4-face-per-family restriction. - * - */ -#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY FT_MAKE_TAG( 'i', 'g', 'p', 's' ) - - /* */ - - -FT_END_HEADER - -#endif /* __FT_SFNT_NAMES_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftstroke.h b/lib/linux/include/ftstroke.h deleted file mode 100644 index bd31170..0000000 --- a/lib/linux/include/ftstroke.h +++ /dev/null @@ -1,785 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftstroke.h */ -/* */ -/* FreeType path stroker (specification). */ -/* */ -/* Copyright 2002-2006, 2008, 2009, 2011-2012, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FT_STROKE_H__ -#define __FT_STROKE_H__ - -#include <ft2build.h> -#include FT_OUTLINE_H -#include FT_GLYPH_H - - -FT_BEGIN_HEADER - - - /************************************************************************ - * - * @section: - * glyph_stroker - * - * @title: - * Glyph Stroker - * - * @abstract: - * Generating bordered and stroked glyphs. - * - * @description: - * This component generates stroked outlines of a given vectorial - * glyph. It also allows you to retrieve the `outside' and/or the - * `inside' borders of the stroke. - * - * This can be useful to generate `bordered' glyph, i.e., glyphs - * displayed with a coloured (and anti-aliased) border around their - * shape. - * - * @order: - * FT_Stroker - * - * FT_Stroker_LineJoin - * FT_Stroker_LineCap - * FT_StrokerBorder - * - * FT_Outline_GetInsideBorder - * FT_Outline_GetOutsideBorder - * - * FT_Glyph_Stroke - * FT_Glyph_StrokeBorder - * - * FT_Stroker_New - * FT_Stroker_Set - * FT_Stroker_Rewind - * FT_Stroker_ParseOutline - * FT_Stroker_Done - * - * FT_Stroker_BeginSubPath - * FT_Stroker_EndSubPath - * - * FT_Stroker_LineTo - * FT_Stroker_ConicTo - * FT_Stroker_CubicTo - * - * FT_Stroker_GetBorderCounts - * FT_Stroker_ExportBorder - * FT_Stroker_GetCounts - * FT_Stroker_Export - * - */ - - - /************************************************************** - * - * @type: - * FT_Stroker - * - * @description: - * Opaque handle to a path stroker object. - */ - typedef struct FT_StrokerRec_* FT_Stroker; - - - /************************************************************** - * - * @enum: - * FT_Stroker_LineJoin - * - * @description: - * These values determine how two joining lines are rendered - * in a stroker. - * - * @values: - * FT_STROKER_LINEJOIN_ROUND :: - * Used to render rounded line joins. Circular arcs are used - * to join two lines smoothly. - * - * FT_STROKER_LINEJOIN_BEVEL :: - * Used to render beveled line joins. The outer corner of - * the joined lines is filled by enclosing the triangular - * region of the corner with a straight line between the - * outer corners of each stroke. - * - * FT_STROKER_LINEJOIN_MITER_FIXED :: - * Used to render mitered line joins, with fixed bevels if the - * miter limit is exceeded. The outer edges of the strokes - * for the two segments are extended until they meet at an - * angle. If the segments meet at too sharp an angle (such - * that the miter would extend from the intersection of the - * segments a distance greater than the product of the miter - * limit value and the border radius), then a bevel join (see - * above) is used instead. This prevents long spikes being - * created. FT_STROKER_LINEJOIN_MITER_FIXED generates a miter - * line join as used in PostScript and PDF. - * - * FT_STROKER_LINEJOIN_MITER_VARIABLE :: - * FT_STROKER_LINEJOIN_MITER :: - * Used to render mitered line joins, with variable bevels if - * the miter limit is exceeded. The intersection of the - * strokes is clipped at a line perpendicular to the bisector - * of the angle between the strokes, at the distance from the - * intersection of the segments equal to the product of the - * miter limit value and the border radius. This prevents - * long spikes being created. - * FT_STROKER_LINEJOIN_MITER_VARIABLE generates a mitered line - * join as used in XPS. FT_STROKER_LINEJOIN_MITER is an alias - * for FT_STROKER_LINEJOIN_MITER_VARIABLE, retained for - * backwards compatibility. - */ - typedef enum FT_Stroker_LineJoin_ - { - FT_STROKER_LINEJOIN_ROUND = 0, - FT_STROKER_LINEJOIN_BEVEL = 1, - FT_STROKER_LINEJOIN_MITER_VARIABLE = 2, - FT_STROKER_LINEJOIN_MITER = FT_STROKER_LINEJOIN_MITER_VARIABLE, - FT_STROKER_LINEJOIN_MITER_FIXED = 3 - - } FT_Stroker_LineJoin; - - - /************************************************************** - * - * @enum: - * FT_Stroker_LineCap - * - * @description: - * These values determine how the end of opened sub-paths are - * rendered in a stroke. - * - * @values: - * FT_STROKER_LINECAP_BUTT :: - * The end of lines is rendered as a full stop on the last - * point itself. - * - * FT_STROKER_LINECAP_ROUND :: - * The end of lines is rendered as a half-circle around the - * last point. - * - * FT_STROKER_LINECAP_SQUARE :: - * The end of lines is rendered as a square around the - * last point. - */ - typedef enum FT_Stroker_LineCap_ - { - FT_STROKER_LINECAP_BUTT = 0, - FT_STROKER_LINECAP_ROUND, - FT_STROKER_LINECAP_SQUARE - - } FT_Stroker_LineCap; - - - /************************************************************** - * - * @enum: - * FT_StrokerBorder - * - * @description: - * These values are used to select a given stroke border - * in @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder. - * - * @values: - * FT_STROKER_BORDER_LEFT :: - * Select the left border, relative to the drawing direction. - * - * FT_STROKER_BORDER_RIGHT :: - * Select the right border, relative to the drawing direction. - * - * @note: - * Applications are generally interested in the `inside' and `outside' - * borders. However, there is no direct mapping between these and the - * `left' and `right' ones, since this really depends on the glyph's - * drawing orientation, which varies between font formats. - * - * You can however use @FT_Outline_GetInsideBorder and - * @FT_Outline_GetOutsideBorder to get these. - */ - typedef enum FT_StrokerBorder_ - { - FT_STROKER_BORDER_LEFT = 0, - FT_STROKER_BORDER_RIGHT - - } FT_StrokerBorder; - - - /************************************************************** - * - * @function: - * FT_Outline_GetInsideBorder - * - * @description: - * Retrieve the @FT_StrokerBorder value corresponding to the - * `inside' borders of a given outline. - * - * @input: - * outline :: - * The source outline handle. - * - * @return: - * The border index. @FT_STROKER_BORDER_RIGHT for empty or invalid - * outlines. - */ - FT_EXPORT( FT_StrokerBorder ) - FT_Outline_GetInsideBorder( FT_Outline* outline ); - - - /************************************************************** - * - * @function: - * FT_Outline_GetOutsideBorder - * - * @description: - * Retrieve the @FT_StrokerBorder value corresponding to the - * `outside' borders of a given outline. - * - * @input: - * outline :: - * The source outline handle. - * - * @return: - * The border index. @FT_STROKER_BORDER_LEFT for empty or invalid - * outlines. - */ - FT_EXPORT( FT_StrokerBorder ) - FT_Outline_GetOutsideBorder( FT_Outline* outline ); - - - /************************************************************** - * - * @function: - * FT_Stroker_New - * - * @description: - * Create a new stroker object. - * - * @input: - * library :: - * FreeType library handle. - * - * @output: - * astroker :: - * A new stroker object handle. NULL in case of error. - * - * @return: - * FreeType error code. 0~means success. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_New( FT_Library library, - FT_Stroker *astroker ); - - - /************************************************************** - * - * @function: - * FT_Stroker_Set - * - * @description: - * Reset a stroker object's attributes. - * - * @input: - * stroker :: - * The target stroker handle. - * - * radius :: - * The border radius. - * - * line_cap :: - * The line cap style. - * - * line_join :: - * The line join style. - * - * miter_limit :: - * The miter limit for the FT_STROKER_LINEJOIN_MITER_FIXED and - * FT_STROKER_LINEJOIN_MITER_VARIABLE line join styles, - * expressed as 16.16 fixed-point value. - * - * @note: - * The radius is expressed in the same units as the outline - * coordinates. - * - * This function calls @FT_Stroker_Rewind automatically. - */ - FT_EXPORT( void ) - FT_Stroker_Set( FT_Stroker stroker, - FT_Fixed radius, - FT_Stroker_LineCap line_cap, - FT_Stroker_LineJoin line_join, - FT_Fixed miter_limit ); - - - /************************************************************** - * - * @function: - * FT_Stroker_Rewind - * - * @description: - * Reset a stroker object without changing its attributes. - * You should call this function before beginning a new - * series of calls to @FT_Stroker_BeginSubPath or - * @FT_Stroker_EndSubPath. - * - * @input: - * stroker :: - * The target stroker handle. - */ - FT_EXPORT( void ) - FT_Stroker_Rewind( FT_Stroker stroker ); - - - /************************************************************** - * - * @function: - * FT_Stroker_ParseOutline - * - * @description: - * A convenience function used to parse a whole outline with - * the stroker. The resulting outline(s) can be retrieved - * later by functions like @FT_Stroker_GetCounts and @FT_Stroker_Export. - * - * @input: - * stroker :: - * The target stroker handle. - * - * outline :: - * The source outline. - * - * opened :: - * A boolean. If~1, the outline is treated as an open path instead - * of a closed one. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If `opened' is~0 (the default), the outline is treated as a closed - * path, and the stroker generates two distinct `border' outlines. - * - * If `opened' is~1, the outline is processed as an open path, and the - * stroker generates a single `stroke' outline. - * - * This function calls @FT_Stroker_Rewind automatically. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_ParseOutline( FT_Stroker stroker, - FT_Outline* outline, - FT_Bool opened ); - - - /************************************************************** - * - * @function: - * FT_Stroker_BeginSubPath - * - * @description: - * Start a new sub-path in the stroker. - * - * @input: - * stroker :: - * The target stroker handle. - * - * to :: - * A pointer to the start vector. - * - * open :: - * A boolean. If~1, the sub-path is treated as an open one. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function is useful when you need to stroke a path that is - * not stored as an @FT_Outline object. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_BeginSubPath( FT_Stroker stroker, - FT_Vector* to, - FT_Bool open ); - - - /************************************************************** - * - * @function: - * FT_Stroker_EndSubPath - * - * @description: - * Close the current sub-path in the stroker. - * - * @input: - * stroker :: - * The target stroker handle. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should call this function after @FT_Stroker_BeginSubPath. - * If the subpath was not `opened', this function `draws' a - * single line segment to the start position when needed. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_EndSubPath( FT_Stroker stroker ); - - - /************************************************************** - * - * @function: - * FT_Stroker_LineTo - * - * @description: - * `Draw' a single line segment in the stroker's current sub-path, - * from the last position. - * - * @input: - * stroker :: - * The target stroker handle. - * - * to :: - * A pointer to the destination point. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should call this function between @FT_Stroker_BeginSubPath and - * @FT_Stroker_EndSubPath. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_LineTo( FT_Stroker stroker, - FT_Vector* to ); - - - /************************************************************** - * - * @function: - * FT_Stroker_ConicTo - * - * @description: - * `Draw' a single quadratic Bézier in the stroker's current sub-path, - * from the last position. - * - * @input: - * stroker :: - * The target stroker handle. - * - * control :: - * A pointer to a Bézier control point. - * - * to :: - * A pointer to the destination point. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should call this function between @FT_Stroker_BeginSubPath and - * @FT_Stroker_EndSubPath. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_ConicTo( FT_Stroker stroker, - FT_Vector* control, - FT_Vector* to ); - - - /************************************************************** - * - * @function: - * FT_Stroker_CubicTo - * - * @description: - * `Draw' a single cubic Bézier in the stroker's current sub-path, - * from the last position. - * - * @input: - * stroker :: - * The target stroker handle. - * - * control1 :: - * A pointer to the first Bézier control point. - * - * control2 :: - * A pointer to second Bézier control point. - * - * to :: - * A pointer to the destination point. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should call this function between @FT_Stroker_BeginSubPath and - * @FT_Stroker_EndSubPath. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_CubicTo( FT_Stroker stroker, - FT_Vector* control1, - FT_Vector* control2, - FT_Vector* to ); - - - /************************************************************** - * - * @function: - * FT_Stroker_GetBorderCounts - * - * @description: - * Call this function once you have finished parsing your paths - * with the stroker. It returns the number of points and - * contours necessary to export one of the `border' or `stroke' - * outlines generated by the stroker. - * - * @input: - * stroker :: - * The target stroker handle. - * - * border :: - * The border index. - * - * @output: - * anum_points :: - * The number of points. - * - * anum_contours :: - * The number of contours. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * When an outline, or a sub-path, is `closed', the stroker generates - * two independent `border' outlines, named `left' and `right'. - * - * When the outline, or a sub-path, is `opened', the stroker merges - * the `border' outlines with caps. The `left' border receives all - * points, while the `right' border becomes empty. - * - * Use the function @FT_Stroker_GetCounts instead if you want to - * retrieve the counts associated to both borders. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_GetBorderCounts( FT_Stroker stroker, - FT_StrokerBorder border, - FT_UInt *anum_points, - FT_UInt *anum_contours ); - - - /************************************************************** - * - * @function: - * FT_Stroker_ExportBorder - * - * @description: - * Call this function after @FT_Stroker_GetBorderCounts to - * export the corresponding border to your own @FT_Outline - * structure. - * - * Note that this function appends the border points and - * contours to your outline, but does not try to resize its - * arrays. - * - * @input: - * stroker :: - * The target stroker handle. - * - * border :: - * The border index. - * - * outline :: - * The target outline handle. - * - * @note: - * Always call this function after @FT_Stroker_GetBorderCounts to - * get sure that there is enough room in your @FT_Outline object to - * receive all new data. - * - * When an outline, or a sub-path, is `closed', the stroker generates - * two independent `border' outlines, named `left' and `right'. - * - * When the outline, or a sub-path, is `opened', the stroker merges - * the `border' outlines with caps. The `left' border receives all - * points, while the `right' border becomes empty. - * - * Use the function @FT_Stroker_Export instead if you want to - * retrieve all borders at once. - */ - FT_EXPORT( void ) - FT_Stroker_ExportBorder( FT_Stroker stroker, - FT_StrokerBorder border, - FT_Outline* outline ); - - - /************************************************************** - * - * @function: - * FT_Stroker_GetCounts - * - * @description: - * Call this function once you have finished parsing your paths - * with the stroker. It returns the number of points and - * contours necessary to export all points/borders from the stroked - * outline/path. - * - * @input: - * stroker :: - * The target stroker handle. - * - * @output: - * anum_points :: - * The number of points. - * - * anum_contours :: - * The number of contours. - * - * @return: - * FreeType error code. 0~means success. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_GetCounts( FT_Stroker stroker, - FT_UInt *anum_points, - FT_UInt *anum_contours ); - - - /************************************************************** - * - * @function: - * FT_Stroker_Export - * - * @description: - * Call this function after @FT_Stroker_GetBorderCounts to - * export all borders to your own @FT_Outline structure. - * - * Note that this function appends the border points and - * contours to your outline, but does not try to resize its - * arrays. - * - * @input: - * stroker :: - * The target stroker handle. - * - * outline :: - * The target outline handle. - */ - FT_EXPORT( void ) - FT_Stroker_Export( FT_Stroker stroker, - FT_Outline* outline ); - - - /************************************************************** - * - * @function: - * FT_Stroker_Done - * - * @description: - * Destroy a stroker object. - * - * @input: - * stroker :: - * A stroker handle. Can be NULL. - */ - FT_EXPORT( void ) - FT_Stroker_Done( FT_Stroker stroker ); - - - /************************************************************** - * - * @function: - * FT_Glyph_Stroke - * - * @description: - * Stroke a given outline glyph object with a given stroker. - * - * @inout: - * pglyph :: - * Source glyph handle on input, new glyph handle on output. - * - * @input: - * stroker :: - * A stroker handle. - * - * destroy :: - * A Boolean. If~1, the source glyph object is destroyed - * on success. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source glyph is untouched in case of error. - * - * Adding stroke may yield a significantly wider and taller glyph - * depending on how large of a radius was used to stroke the glyph. You - * may need to manually adjust horizontal and vertical advance amounts - * to account for this added size. - */ - FT_EXPORT( FT_Error ) - FT_Glyph_Stroke( FT_Glyph *pglyph, - FT_Stroker stroker, - FT_Bool destroy ); - - - /************************************************************** - * - * @function: - * FT_Glyph_StrokeBorder - * - * @description: - * Stroke a given outline glyph object with a given stroker, but - * only return either its inside or outside border. - * - * @inout: - * pglyph :: - * Source glyph handle on input, new glyph handle on output. - * - * @input: - * stroker :: - * A stroker handle. - * - * inside :: - * A Boolean. If~1, return the inside border, otherwise - * the outside border. - * - * destroy :: - * A Boolean. If~1, the source glyph object is destroyed - * on success. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source glyph is untouched in case of error. - * - * Adding stroke may yield a significantly wider and taller glyph - * depending on how large of a radius was used to stroke the glyph. You - * may need to manually adjust horizontal and vertical advance amounts - * to account for this added size. - */ - FT_EXPORT( FT_Error ) - FT_Glyph_StrokeBorder( FT_Glyph *pglyph, - FT_Stroker stroker, - FT_Bool inside, - FT_Bool destroy ); - - /* */ - -FT_END_HEADER - -#endif /* __FT_STROKE_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/linux/include/ftsynth.h b/lib/linux/include/ftsynth.h deleted file mode 100644 index d0ea730..0000000 --- a/lib/linux/include/ftsynth.h +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsynth.h */ -/* */ -/* FreeType synthesizing code for emboldening and slanting */ -/* (specification). */ -/* */ -/* Copyright 2000-2001, 2003, 2006, 2008, 2012, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /********* *********/ - /********* WARNING, THIS IS ALPHA CODE! THIS API *********/ - /********* IS DUE TO CHANGE UNTIL STRICTLY NOTIFIED BY THE *********/ - /********* FREETYPE DEVELOPMENT TEAM *********/ - /********* *********/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* Main reason for not lifting the functions in this module to a */ - /* `standard' API is that the used parameters for emboldening and */ - /* slanting are not configurable. Consider the functions as a */ - /* code resource that should be copied into the application and */ - /* adapted to the particular needs. */ - - -#ifndef __FTSYNTH_H__ -#define __FTSYNTH_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /* Embolden a glyph by a `reasonable' value (which is highly a matter of */ - /* taste). This function is actually a convenience function, providing */ - /* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden. */ - /* */ - /* For emboldened outlines the height, width, and advance metrics are */ - /* increased by the strength of the emboldening. You can also call */ - /* @FT_Outline_Get_CBox to get precise values. */ - FT_EXPORT( void ) - FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); - - /* Slant an outline glyph to the right by about 12 degrees. */ - FT_EXPORT( void ) - FT_GlyphSlot_Oblique( FT_GlyphSlot slot ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTSYNTH_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftsystem.h b/lib/linux/include/ftsystem.h deleted file mode 100644 index 7436ed2..0000000 --- a/lib/linux/include/ftsystem.h +++ /dev/null @@ -1,355 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsystem.h */ -/* */ -/* FreeType low-level system interface definition (specification). */ -/* */ -/* Copyright 1996-2001, 2002, 2005, 2010, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTSYSTEM_H__ -#define __FTSYSTEM_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* system_interface */ - /* */ - /* <Title> */ - /* System Interface */ - /* */ - /* <Abstract> */ - /* How FreeType manages memory and i/o. */ - /* */ - /* <Description> */ - /* This section contains various definitions related to memory */ - /* management and i/o access. You need to understand this */ - /* information if you want to use a custom memory manager or you own */ - /* i/o streams. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* M E M O R Y M A N A G E M E N T */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @type: - * FT_Memory - * - * @description: - * A handle to a given memory manager object, defined with an - * @FT_MemoryRec structure. - * - */ - typedef struct FT_MemoryRec_* FT_Memory; - - - /************************************************************************* - * - * @functype: - * FT_Alloc_Func - * - * @description: - * A function used to allocate `size' bytes from `memory'. - * - * @input: - * memory :: - * A handle to the source memory manager. - * - * size :: - * The size in bytes to allocate. - * - * @return: - * Address of new memory block. 0~in case of failure. - * - */ - typedef void* - (*FT_Alloc_Func)( FT_Memory memory, - long size ); - - - /************************************************************************* - * - * @functype: - * FT_Free_Func - * - * @description: - * A function used to release a given block of memory. - * - * @input: - * memory :: - * A handle to the source memory manager. - * - * block :: - * The address of the target memory block. - * - */ - typedef void - (*FT_Free_Func)( FT_Memory memory, - void* block ); - - - /************************************************************************* - * - * @functype: - * FT_Realloc_Func - * - * @description: - * A function used to re-allocate a given block of memory. - * - * @input: - * memory :: - * A handle to the source memory manager. - * - * cur_size :: - * The block's current size in bytes. - * - * new_size :: - * The block's requested new size. - * - * block :: - * The block's current address. - * - * @return: - * New block address. 0~in case of memory shortage. - * - * @note: - * In case of error, the old block must still be available. - * - */ - typedef void* - (*FT_Realloc_Func)( FT_Memory memory, - long cur_size, - long new_size, - void* block ); - - - /************************************************************************* - * - * @struct: - * FT_MemoryRec - * - * @description: - * A structure used to describe a given memory manager to FreeType~2. - * - * @fields: - * user :: - * A generic typeless pointer for user data. - * - * alloc :: - * A pointer type to an allocation function. - * - * free :: - * A pointer type to an memory freeing function. - * - * realloc :: - * A pointer type to a reallocation function. - * - */ - struct FT_MemoryRec_ - { - void* user; - FT_Alloc_Func alloc; - FT_Free_Func free; - FT_Realloc_Func realloc; - }; - - - /*************************************************************************/ - /* */ - /* I / O M A N A G E M E N T */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @type: - * FT_Stream - * - * @description: - * A handle to an input stream. - * - * @also: - * See @FT_StreamRec for the publicly accessible fields of a given - * stream object. - * - */ - typedef struct FT_StreamRec_* FT_Stream; - - - /************************************************************************* - * - * @struct: - * FT_StreamDesc - * - * @description: - * A union type used to store either a long or a pointer. This is used - * to store a file descriptor or a `FILE*' in an input stream. - * - */ - typedef union FT_StreamDesc_ - { - long value; - void* pointer; - - } FT_StreamDesc; - - - /************************************************************************* - * - * @functype: - * FT_Stream_IoFunc - * - * @description: - * A function used to seek and read data from a given input stream. - * - * @input: - * stream :: - * A handle to the source stream. - * - * offset :: - * The offset of read in stream (always from start). - * - * buffer :: - * The address of the read buffer. - * - * count :: - * The number of bytes to read from the stream. - * - * @return: - * The number of bytes effectively read by the stream. - * - * @note: - * This function might be called to perform a seek or skip operation - * with a `count' of~0. A non-zero return value then indicates an - * error. - * - */ - typedef unsigned long - (*FT_Stream_IoFunc)( FT_Stream stream, - unsigned long offset, - unsigned char* buffer, - unsigned long count ); - - - /************************************************************************* - * - * @functype: - * FT_Stream_CloseFunc - * - * @description: - * A function used to close a given input stream. - * - * @input: - * stream :: - * A handle to the target stream. - * - */ - typedef void - (*FT_Stream_CloseFunc)( FT_Stream stream ); - - - /************************************************************************* - * - * @struct: - * FT_StreamRec - * - * @description: - * A structure used to describe an input stream. - * - * @input: - * base :: - * For memory-based streams, this is the address of the first stream - * byte in memory. This field should always be set to NULL for - * disk-based streams. - * - * size :: - * The stream size in bytes. - * - * In case of compressed streams where the size is unknown before - * actually doing the decompression, the value is set to 0x7FFFFFFF. - * (Note that this size value can occur for normal streams also; it is - * thus just a hint.) - * - * pos :: - * The current position within the stream. - * - * descriptor :: - * This field is a union that can hold an integer or a pointer. It is - * used by stream implementations to store file descriptors or `FILE*' - * pointers. - * - * pathname :: - * This field is completely ignored by FreeType. However, it is often - * useful during debugging to use it to store the stream's filename - * (where available). - * - * read :: - * The stream's input function. - * - * close :: - * The stream's close function. - * - * memory :: - * The memory manager to use to preload frames. This is set - * internally by FreeType and shouldn't be touched by stream - * implementations. - * - * cursor :: - * This field is set and used internally by FreeType when parsing - * frames. - * - * limit :: - * This field is set and used internally by FreeType when parsing - * frames. - * - */ - typedef struct FT_StreamRec_ - { - unsigned char* base; - unsigned long size; - unsigned long pos; - - FT_StreamDesc descriptor; - FT_StreamDesc pathname; - FT_Stream_IoFunc read; - FT_Stream_CloseFunc close; - - FT_Memory memory; - unsigned char* cursor; - unsigned char* limit; - - } FT_StreamRec; - - /* */ - - -FT_END_HEADER - -#endif /* __FTSYSTEM_H__ */ - - -/* END */ diff --git a/lib/linux/include/fttrigon.h b/lib/linux/include/fttrigon.h deleted file mode 100644 index 9c7b543..0000000 --- a/lib/linux/include/fttrigon.h +++ /dev/null @@ -1,350 +0,0 @@ -/***************************************************************************/ -/* */ -/* fttrigon.h */ -/* */ -/* FreeType trigonometric functions (specification). */ -/* */ -/* Copyright 2001, 2003, 2005, 2007, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTTRIGON_H__ -#define __FTTRIGON_H__ - -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* computations */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @type: - * FT_Angle - * - * @description: - * This type is used to model angle values in FreeType. Note that the - * angle is a 16.16 fixed-point value expressed in degrees. - * - */ - typedef FT_Fixed FT_Angle; - - - /************************************************************************* - * - * @macro: - * FT_ANGLE_PI - * - * @description: - * The angle pi expressed in @FT_Angle units. - * - */ -#define FT_ANGLE_PI ( 180L << 16 ) - - - /************************************************************************* - * - * @macro: - * FT_ANGLE_2PI - * - * @description: - * The angle 2*pi expressed in @FT_Angle units. - * - */ -#define FT_ANGLE_2PI ( FT_ANGLE_PI * 2 ) - - - /************************************************************************* - * - * @macro: - * FT_ANGLE_PI2 - * - * @description: - * The angle pi/2 expressed in @FT_Angle units. - * - */ -#define FT_ANGLE_PI2 ( FT_ANGLE_PI / 2 ) - - - /************************************************************************* - * - * @macro: - * FT_ANGLE_PI4 - * - * @description: - * The angle pi/4 expressed in @FT_Angle units. - * - */ -#define FT_ANGLE_PI4 ( FT_ANGLE_PI / 4 ) - - - /************************************************************************* - * - * @function: - * FT_Sin - * - * @description: - * Return the sinus of a given angle in fixed-point format. - * - * @input: - * angle :: - * The input angle. - * - * @return: - * The sinus value. - * - * @note: - * If you need both the sinus and cosinus for a given angle, use the - * function @FT_Vector_Unit. - * - */ - FT_EXPORT( FT_Fixed ) - FT_Sin( FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Cos - * - * @description: - * Return the cosinus of a given angle in fixed-point format. - * - * @input: - * angle :: - * The input angle. - * - * @return: - * The cosinus value. - * - * @note: - * If you need both the sinus and cosinus for a given angle, use the - * function @FT_Vector_Unit. - * - */ - FT_EXPORT( FT_Fixed ) - FT_Cos( FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Tan - * - * @description: - * Return the tangent of a given angle in fixed-point format. - * - * @input: - * angle :: - * The input angle. - * - * @return: - * The tangent value. - * - */ - FT_EXPORT( FT_Fixed ) - FT_Tan( FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Atan2 - * - * @description: - * Return the arc-tangent corresponding to a given vector (x,y) in - * the 2d plane. - * - * @input: - * x :: - * The horizontal vector coordinate. - * - * y :: - * The vertical vector coordinate. - * - * @return: - * The arc-tangent value (i.e. angle). - * - */ - FT_EXPORT( FT_Angle ) - FT_Atan2( FT_Fixed x, - FT_Fixed y ); - - - /************************************************************************* - * - * @function: - * FT_Angle_Diff - * - * @description: - * Return the difference between two angles. The result is always - * constrained to the ]-PI..PI] interval. - * - * @input: - * angle1 :: - * First angle. - * - * angle2 :: - * Second angle. - * - * @return: - * Constrained value of `value2-value1'. - * - */ - FT_EXPORT( FT_Angle ) - FT_Angle_Diff( FT_Angle angle1, - FT_Angle angle2 ); - - - /************************************************************************* - * - * @function: - * FT_Vector_Unit - * - * @description: - * Return the unit vector corresponding to a given angle. After the - * call, the value of `vec.x' will be `sin(angle)', and the value of - * `vec.y' will be `cos(angle)'. - * - * This function is useful to retrieve both the sinus and cosinus of a - * given angle quickly. - * - * @output: - * vec :: - * The address of target vector. - * - * @input: - * angle :: - * The input angle. - * - */ - FT_EXPORT( void ) - FT_Vector_Unit( FT_Vector* vec, - FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Vector_Rotate - * - * @description: - * Rotate a vector by a given angle. - * - * @inout: - * vec :: - * The address of target vector. - * - * @input: - * angle :: - * The input angle. - * - */ - FT_EXPORT( void ) - FT_Vector_Rotate( FT_Vector* vec, - FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Vector_Length - * - * @description: - * Return the length of a given vector. - * - * @input: - * vec :: - * The address of target vector. - * - * @return: - * The vector length, expressed in the same units that the original - * vector coordinates. - * - */ - FT_EXPORT( FT_Fixed ) - FT_Vector_Length( FT_Vector* vec ); - - - /************************************************************************* - * - * @function: - * FT_Vector_Polarize - * - * @description: - * Compute both the length and angle of a given vector. - * - * @input: - * vec :: - * The address of source vector. - * - * @output: - * length :: - * The vector length. - * - * angle :: - * The vector angle. - * - */ - FT_EXPORT( void ) - FT_Vector_Polarize( FT_Vector* vec, - FT_Fixed *length, - FT_Angle *angle ); - - - /************************************************************************* - * - * @function: - * FT_Vector_From_Polar - * - * @description: - * Compute vector coordinates from a length and angle. - * - * @output: - * vec :: - * The address of source vector. - * - * @input: - * length :: - * The vector length. - * - * angle :: - * The vector angle. - * - */ - FT_EXPORT( void ) - FT_Vector_From_Polar( FT_Vector* vec, - FT_Fixed length, - FT_Angle angle ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTTRIGON_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftttdrv.h b/lib/linux/include/ftttdrv.h deleted file mode 100644 index 3588413..0000000 --- a/lib/linux/include/ftttdrv.h +++ /dev/null @@ -1,170 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftttdrv.h */ -/* */ -/* FreeType API for controlling the TrueType driver */ -/* (specification only). */ -/* */ -/* Copyright 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTTTDRV_H__ -#define __FTTTDRV_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * tt_driver - * - * @title: - * The TrueType driver - * - * @abstract: - * Controlling the TrueType driver module. - * - * @description: - * While FreeType's TrueType driver doesn't expose API functions by - * itself, it is possible to control its behaviour with @FT_Property_Set - * and @FT_Property_Get. The following lists the available properties - * together with the necessary macros and structures. - * - * The TrueType driver's module name is `truetype'. - * - */ - - - /************************************************************************** - * - * @property: - * interpreter-version - * - * @description: - * Currently, two versions are available, representing the bytecode - * interpreter with and without subpixel hinting support, - * respectively. The default is subpixel support if - * TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel - * support otherwise (since it isn't available then). - * - * If subpixel hinting is on, many TrueType bytecode instructions - * behave differently compared to B/W or grayscale rendering. The - * main idea is to render at a much increased horizontal resolution, - * then sampling down the created output to subpixel precision. - * However, many older fonts are not suited to this and must be - * specially taken care of by applying (hardcoded) font-specific - * tweaks. - * - * Details on subpixel hinting and some of the necessary tweaks can be - * found in Greg Hitchcock's whitepaper at - * `http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'. - * - * The following example code demonstrates how to activate subpixel - * hinting (omitting the error handling). - * - * { - * FT_Library library; - * FT_Face face; - * FT_UInt interpreter_version = TT_INTERPRETER_VERSION_38; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "truetype", - * "interpreter-version", - * &interpreter_version ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - - /************************************************************************** - * - * @enum: - * TT_INTERPRETER_VERSION_XXX - * - * @description: - * A list of constants used for the @interpreter-version property to - * select the hinting engine for Truetype fonts. - * - * The numeric value in the constant names represents the version - * number as returned by the `GETINFO' bytecode instruction. - * - * @values: - * TT_INTERPRETER_VERSION_35 :: - * Version~35 corresponds to MS rasterizer v.1.7 as used e.g. in - * Windows~98; only grayscale and B/W rasterizing is supported. - * - * TT_INTERPRETER_VERSION_38 :: - * Version~38 corresponds to MS rasterizer v.1.9; it is roughly - * equivalent to the hinting provided by DirectWrite ClearType (as - * can be found, for example, in the Internet Explorer~9 running on - * Windows~7). - * - * @note: - * This property controls the behaviour of the bytecode interpreter - * and thus how outlines get hinted. It does *not* control how glyph - * get rasterized! In particular, it does not control subpixel color - * filtering. - * - * If FreeType has not been compiled with configuration option - * FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version~38 causes an - * `FT_Err_Unimplemented_Feature' error. - * - * Depending on the graphics framework, Microsoft uses different - * bytecode engines. As a consequence, the version numbers returned by - * a call to the `GETINFO[1]' bytecode instruction are more convoluted - * than desired. - * - * { - * framework Windows version result of GETINFO[1] - * ---------------------------------------------------- - * GDI before XP 35 - * GDI XP and later 37 - * GDI+ old before Vista 37 - * GDI+ old Vista, 7 38 - * GDI+ after 7 40 - * DWrite before 8 39 - * DWrite 8 and later 40 - * } - * - * Since FreeType doesn't provide all capabilities of DWrite ClearType, - * using version~38 seems justified. - * - */ -#define TT_INTERPRETER_VERSION_35 35 -#define TT_INTERPRETER_VERSION_38 38 - - /* */ - - -FT_END_HEADER - - -#endif /* __FTTTDRV_H__ */ - - -/* END */ diff --git a/lib/linux/include/fttypes.h b/lib/linux/include/fttypes.h deleted file mode 100644 index 2c01e87..0000000 --- a/lib/linux/include/fttypes.h +++ /dev/null @@ -1,602 +0,0 @@ -/***************************************************************************/ -/* */ -/* fttypes.h */ -/* */ -/* FreeType simple types definitions (specification only). */ -/* */ -/* Copyright 1996-2002, 2004, 2006-2009, 2012-2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTTYPES_H__ -#define __FTTYPES_H__ - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_SYSTEM_H -#include FT_IMAGE_H - -#include <stddef.h> - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /* <Title> */ - /* Basic Data Types */ - /* */ - /* <Abstract> */ - /* The basic data types defined by the library. */ - /* */ - /* <Description> */ - /* This section contains the basic data types defined by FreeType~2, */ - /* ranging from simple scalar types to bitmap descriptors. More */ - /* font-specific structures are defined in a different section. */ - /* */ - /* <Order> */ - /* FT_Byte */ - /* FT_Bytes */ - /* FT_Char */ - /* FT_Int */ - /* FT_UInt */ - /* FT_Int16 */ - /* FT_UInt16 */ - /* FT_Int32 */ - /* FT_UInt32 */ - /* FT_Int64 */ - /* FT_UInt64 */ - /* FT_Short */ - /* FT_UShort */ - /* FT_Long */ - /* FT_ULong */ - /* FT_Bool */ - /* FT_Offset */ - /* FT_PtrDist */ - /* FT_String */ - /* FT_Tag */ - /* FT_Error */ - /* FT_Fixed */ - /* FT_Pointer */ - /* FT_Pos */ - /* FT_Vector */ - /* FT_BBox */ - /* FT_Matrix */ - /* FT_FWord */ - /* FT_UFWord */ - /* FT_F2Dot14 */ - /* FT_UnitVector */ - /* FT_F26Dot6 */ - /* FT_Data */ - /* */ - /* FT_MAKE_TAG */ - /* */ - /* FT_Generic */ - /* FT_Generic_Finalizer */ - /* */ - /* FT_Bitmap */ - /* FT_Pixel_Mode */ - /* FT_Palette_Mode */ - /* FT_Glyph_Format */ - /* FT_IMAGE_TAG */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Bool */ - /* */ - /* <Description> */ - /* A typedef of unsigned char, used for simple booleans. As usual, */ - /* values 1 and~0 represent true and false, respectively. */ - /* */ - typedef unsigned char FT_Bool; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_FWord */ - /* */ - /* <Description> */ - /* A signed 16-bit integer used to store a distance in original font */ - /* units. */ - /* */ - typedef signed short FT_FWord; /* distance in FUnits */ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UFWord */ - /* */ - /* <Description> */ - /* An unsigned 16-bit integer used to store a distance in original */ - /* font units. */ - /* */ - typedef unsigned short FT_UFWord; /* unsigned distance */ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Char */ - /* */ - /* <Description> */ - /* A simple typedef for the _signed_ char type. */ - /* */ - typedef signed char FT_Char; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Byte */ - /* */ - /* <Description> */ - /* A simple typedef for the _unsigned_ char type. */ - /* */ - typedef unsigned char FT_Byte; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Bytes */ - /* */ - /* <Description> */ - /* A typedef for constant memory areas. */ - /* */ - typedef const FT_Byte* FT_Bytes; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Tag */ - /* */ - /* <Description> */ - /* A typedef for 32-bit tags (as used in the SFNT format). */ - /* */ - typedef FT_UInt32 FT_Tag; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_String */ - /* */ - /* <Description> */ - /* A simple typedef for the char type, usually used for strings. */ - /* */ - typedef char FT_String; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Short */ - /* */ - /* <Description> */ - /* A typedef for signed short. */ - /* */ - typedef signed short FT_Short; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UShort */ - /* */ - /* <Description> */ - /* A typedef for unsigned short. */ - /* */ - typedef unsigned short FT_UShort; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Int */ - /* */ - /* <Description> */ - /* A typedef for the int type. */ - /* */ - typedef signed int FT_Int; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UInt */ - /* */ - /* <Description> */ - /* A typedef for the unsigned int type. */ - /* */ - typedef unsigned int FT_UInt; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Long */ - /* */ - /* <Description> */ - /* A typedef for signed long. */ - /* */ - typedef signed long FT_Long; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_ULong */ - /* */ - /* <Description> */ - /* A typedef for unsigned long. */ - /* */ - typedef unsigned long FT_ULong; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_F2Dot14 */ - /* */ - /* <Description> */ - /* A signed 2.14 fixed-point type used for unit vectors. */ - /* */ - typedef signed short FT_F2Dot14; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_F26Dot6 */ - /* */ - /* <Description> */ - /* A signed 26.6 fixed-point type used for vectorial pixel */ - /* coordinates. */ - /* */ - typedef signed long FT_F26Dot6; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Fixed */ - /* */ - /* <Description> */ - /* This type is used to store 16.16 fixed-point values, like scaling */ - /* values or matrix coefficients. */ - /* */ - typedef signed long FT_Fixed; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Error */ - /* */ - /* <Description> */ - /* The FreeType error code type. A value of~0 is always interpreted */ - /* as a successful operation. */ - /* */ - typedef int FT_Error; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Pointer */ - /* */ - /* <Description> */ - /* A simple typedef for a typeless pointer. */ - /* */ - typedef void* FT_Pointer; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Offset */ - /* */ - /* <Description> */ - /* This is equivalent to the ANSI~C `size_t' type, i.e., the largest */ - /* _unsigned_ integer type used to express a file size or position, */ - /* or a memory block size. */ - /* */ - typedef size_t FT_Offset; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_PtrDist */ - /* */ - /* <Description> */ - /* This is equivalent to the ANSI~C `ptrdiff_t' type, i.e., the */ - /* largest _signed_ integer type used to express the distance */ - /* between two pointers. */ - /* */ - typedef ft_ptrdiff_t FT_PtrDist; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_UnitVector */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2D vector unit vector. Uses */ - /* FT_F2Dot14 types. */ - /* */ - /* <Fields> */ - /* x :: Horizontal coordinate. */ - /* */ - /* y :: Vertical coordinate. */ - /* */ - typedef struct FT_UnitVector_ - { - FT_F2Dot14 x; - FT_F2Dot14 y; - - } FT_UnitVector; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Matrix */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2x2 matrix. Coefficients are */ - /* in 16.16 fixed-point format. The computation performed is: */ - /* */ - /* { */ - /* x' = x*xx + y*xy */ - /* y' = x*yx + y*yy */ - /* } */ - /* */ - /* <Fields> */ - /* xx :: Matrix coefficient. */ - /* */ - /* xy :: Matrix coefficient. */ - /* */ - /* yx :: Matrix coefficient. */ - /* */ - /* yy :: Matrix coefficient. */ - /* */ - typedef struct FT_Matrix_ - { - FT_Fixed xx, xy; - FT_Fixed yx, yy; - - } FT_Matrix; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Data */ - /* */ - /* <Description> */ - /* Read-only binary data represented as a pointer and a length. */ - /* */ - /* <Fields> */ - /* pointer :: The data. */ - /* */ - /* length :: The length of the data in bytes. */ - /* */ - typedef struct FT_Data_ - { - const FT_Byte* pointer; - FT_Int length; - - } FT_Data; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Generic_Finalizer */ - /* */ - /* <Description> */ - /* Describe a function used to destroy the `client' data of any */ - /* FreeType object. See the description of the @FT_Generic type for */ - /* details of usage. */ - /* */ - /* <Input> */ - /* The address of the FreeType object that is under finalization. */ - /* Its client data is accessed through its `generic' field. */ - /* */ - typedef void (*FT_Generic_Finalizer)(void* object); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Generic */ - /* */ - /* <Description> */ - /* Client applications often need to associate their own data to a */ - /* variety of FreeType core objects. For example, a text layout API */ - /* might want to associate a glyph cache to a given size object. */ - /* */ - /* Some FreeType object contains a `generic' field, of type */ - /* FT_Generic, which usage is left to client applications and font */ - /* servers. */ - /* */ - /* It can be used to store a pointer to client-specific data, as well */ - /* as the address of a `finalizer' function, which will be called by */ - /* FreeType when the object is destroyed (for example, the previous */ - /* client example would put the address of the glyph cache destructor */ - /* in the `finalizer' field). */ - /* */ - /* <Fields> */ - /* data :: A typeless pointer to any client-specified data. This */ - /* field is completely ignored by the FreeType library. */ - /* */ - /* finalizer :: A pointer to a `generic finalizer' function, which */ - /* will be called when the object is destroyed. If this */ - /* field is set to NULL, no code will be called. */ - /* */ - typedef struct FT_Generic_ - { - void* data; - FT_Generic_Finalizer finalizer; - - } FT_Generic; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_MAKE_TAG */ - /* */ - /* <Description> */ - /* This macro converts four-letter tags that are used to label */ - /* TrueType tables into an unsigned long, to be used within FreeType. */ - /* */ - /* <Note> */ - /* The produced values *must* be 32-bit integers. Don't redefine */ - /* this macro. */ - /* */ -#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \ - (FT_Tag) \ - ( ( (FT_ULong)_x1 << 24 ) | \ - ( (FT_ULong)_x2 << 16 ) | \ - ( (FT_ULong)_x3 << 8 ) | \ - (FT_ULong)_x4 ) - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* L I S T M A N A G E M E N T */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* list_processing */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_ListNode */ - /* */ - /* <Description> */ - /* Many elements and objects in FreeType are listed through an */ - /* @FT_List record (see @FT_ListRec). As its name suggests, an */ - /* FT_ListNode is a handle to a single list element. */ - /* */ - typedef struct FT_ListNodeRec_* FT_ListNode; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_List */ - /* */ - /* <Description> */ - /* A handle to a list record (see @FT_ListRec). */ - /* */ - typedef struct FT_ListRec_* FT_List; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ListNodeRec */ - /* */ - /* <Description> */ - /* A structure used to hold a single list element. */ - /* */ - /* <Fields> */ - /* prev :: The previous element in the list. NULL if first. */ - /* */ - /* next :: The next element in the list. NULL if last. */ - /* */ - /* data :: A typeless pointer to the listed object. */ - /* */ - typedef struct FT_ListNodeRec_ - { - FT_ListNode prev; - FT_ListNode next; - void* data; - - } FT_ListNodeRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ListRec */ - /* */ - /* <Description> */ - /* A structure used to hold a simple doubly-linked list. These are */ - /* used in many parts of FreeType. */ - /* */ - /* <Fields> */ - /* head :: The head (first element) of doubly-linked list. */ - /* */ - /* tail :: The tail (last element) of doubly-linked list. */ - /* */ - typedef struct FT_ListRec_ - { - FT_ListNode head; - FT_ListNode tail; - - } FT_ListRec; - - /* */ - - -#define FT_IS_EMPTY( list ) ( (list).head == 0 ) -#define FT_BOOL( x ) ( (FT_Bool)( x ) ) - - /* concatenate C tokens */ -#define FT_ERR_XCAT( x, y ) x ## y -#define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y ) - - /* see `ftmoderr.h' for descriptions of the following macros */ - -#define FT_ERR( e ) FT_ERR_CAT( FT_ERR_PREFIX, e ) - -#define FT_ERROR_BASE( x ) ( (x) & 0xFF ) -#define FT_ERROR_MODULE( x ) ( (x) & 0xFF00U ) - -#define FT_ERR_EQ( x, e ) \ - ( FT_ERROR_BASE( x ) == FT_ERROR_BASE( FT_ERR( e ) ) ) -#define FT_ERR_NEQ( x, e ) \ - ( FT_ERROR_BASE( x ) != FT_ERROR_BASE( FT_ERR( e ) ) ) - - -FT_END_HEADER - -#endif /* __FTTYPES_H__ */ - - -/* END */ diff --git a/lib/linux/include/ftwinfnt.h b/lib/linux/include/ftwinfnt.h deleted file mode 100644 index 5026158..0000000 --- a/lib/linux/include/ftwinfnt.h +++ /dev/null @@ -1,275 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftwinfnt.h */ -/* */ -/* FreeType API for accessing Windows fnt-specific data. */ -/* */ -/* Copyright 2003, 2004, 2008 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTWINFNT_H__ -#define __FTWINFNT_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* winfnt_fonts */ - /* */ - /* <Title> */ - /* Window FNT Files */ - /* */ - /* <Abstract> */ - /* Windows FNT specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of Windows FNT specific */ - /* functions. */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @enum: - * FT_WinFNT_ID_XXX - * - * @description: - * A list of valid values for the `charset' byte in - * @FT_WinFNT_HeaderRec. Exact mapping tables for the various cpXXXX - * encodings (except for cp1361) can be found at - * ftp://ftp.unicode.org/public in the MAPPINGS/VENDORS/MICSFT/WINDOWS - * subdirectory. cp1361 is roughly a superset of - * MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT. - * - * @values: - * FT_WinFNT_ID_DEFAULT :: - * This is used for font enumeration and font creation as a - * `don't care' value. Valid font files don't contain this value. - * When querying for information about the character set of the font - * that is currently selected into a specified device context, this - * return value (of the related Windows API) simply denotes failure. - * - * FT_WinFNT_ID_SYMBOL :: - * There is no known mapping table available. - * - * FT_WinFNT_ID_MAC :: - * Mac Roman encoding. - * - * FT_WinFNT_ID_OEM :: - * From Michael Pöttgen <michael@poettgen.de>: - * - * The `Windows Font Mapping' article says that FT_WinFNT_ID_OEM - * is used for the charset of vector fonts, like `modern.fon', - * `roman.fon', and `script.fon' on Windows. - * - * The `CreateFont' documentation says: The FT_WinFNT_ID_OEM value - * specifies a character set that is operating-system dependent. - * - * The `IFIMETRICS' documentation from the `Windows Driver - * Development Kit' says: This font supports an OEM-specific - * character set. The OEM character set is system dependent. - * - * In general OEM, as opposed to ANSI (i.e., cp1252), denotes the - * second default codepage that most international versions of - * Windows have. It is one of the OEM codepages from - * - * http://www.microsoft.com/globaldev/reference/cphome.mspx, - * - * and is used for the `DOS boxes', to support legacy applications. - * A German Windows version for example usually uses ANSI codepage - * 1252 and OEM codepage 850. - * - * FT_WinFNT_ID_CP874 :: - * A superset of Thai TIS 620 and ISO 8859-11. - * - * FT_WinFNT_ID_CP932 :: - * A superset of Japanese Shift-JIS (with minor deviations). - * - * FT_WinFNT_ID_CP936 :: - * A superset of simplified Chinese GB 2312-1980 (with different - * ordering and minor deviations). - * - * FT_WinFNT_ID_CP949 :: - * A superset of Korean Hangul KS~C 5601-1987 (with different - * ordering and minor deviations). - * - * FT_WinFNT_ID_CP950 :: - * A superset of traditional Chinese Big~5 ETen (with different - * ordering and minor deviations). - * - * FT_WinFNT_ID_CP1250 :: - * A superset of East European ISO 8859-2 (with slightly different - * ordering). - * - * FT_WinFNT_ID_CP1251 :: - * A superset of Russian ISO 8859-5 (with different ordering). - * - * FT_WinFNT_ID_CP1252 :: - * ANSI encoding. A superset of ISO 8859-1. - * - * FT_WinFNT_ID_CP1253 :: - * A superset of Greek ISO 8859-7 (with minor modifications). - * - * FT_WinFNT_ID_CP1254 :: - * A superset of Turkish ISO 8859-9. - * - * FT_WinFNT_ID_CP1255 :: - * A superset of Hebrew ISO 8859-8 (with some modifications). - * - * FT_WinFNT_ID_CP1256 :: - * A superset of Arabic ISO 8859-6 (with different ordering). - * - * FT_WinFNT_ID_CP1257 :: - * A superset of Baltic ISO 8859-13 (with some deviations). - * - * FT_WinFNT_ID_CP1258 :: - * For Vietnamese. This encoding doesn't cover all necessary - * characters. - * - * FT_WinFNT_ID_CP1361 :: - * Korean (Johab). - */ - -#define FT_WinFNT_ID_CP1252 0 -#define FT_WinFNT_ID_DEFAULT 1 -#define FT_WinFNT_ID_SYMBOL 2 -#define FT_WinFNT_ID_MAC 77 -#define FT_WinFNT_ID_CP932 128 -#define FT_WinFNT_ID_CP949 129 -#define FT_WinFNT_ID_CP1361 130 -#define FT_WinFNT_ID_CP936 134 -#define FT_WinFNT_ID_CP950 136 -#define FT_WinFNT_ID_CP1253 161 -#define FT_WinFNT_ID_CP1254 162 -#define FT_WinFNT_ID_CP1258 163 -#define FT_WinFNT_ID_CP1255 177 -#define FT_WinFNT_ID_CP1256 178 -#define FT_WinFNT_ID_CP1257 186 -#define FT_WinFNT_ID_CP1251 204 -#define FT_WinFNT_ID_CP874 222 -#define FT_WinFNT_ID_CP1250 238 -#define FT_WinFNT_ID_OEM 255 - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_WinFNT_HeaderRec */ - /* */ - /* <Description> */ - /* Windows FNT Header info. */ - /* */ - typedef struct FT_WinFNT_HeaderRec_ - { - FT_UShort version; - FT_ULong file_size; - FT_Byte copyright[60]; - FT_UShort file_type; - FT_UShort nominal_point_size; - FT_UShort vertical_resolution; - FT_UShort horizontal_resolution; - FT_UShort ascent; - FT_UShort internal_leading; - FT_UShort external_leading; - FT_Byte italic; - FT_Byte underline; - FT_Byte strike_out; - FT_UShort weight; - FT_Byte charset; - FT_UShort pixel_width; - FT_UShort pixel_height; - FT_Byte pitch_and_family; - FT_UShort avg_width; - FT_UShort max_width; - FT_Byte first_char; - FT_Byte last_char; - FT_Byte default_char; - FT_Byte break_char; - FT_UShort bytes_per_row; - FT_ULong device_offset; - FT_ULong face_name_offset; - FT_ULong bits_pointer; - FT_ULong bits_offset; - FT_Byte reserved; - FT_ULong flags; - FT_UShort A_space; - FT_UShort B_space; - FT_UShort C_space; - FT_UShort color_table_offset; - FT_ULong reserved1[4]; - - } FT_WinFNT_HeaderRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_WinFNT_Header */ - /* */ - /* <Description> */ - /* A handle to an @FT_WinFNT_HeaderRec structure. */ - /* */ - typedef struct FT_WinFNT_HeaderRec_* FT_WinFNT_Header; - - - /********************************************************************** - * - * @function: - * FT_Get_WinFNT_Header - * - * @description: - * Retrieve a Windows FNT font info header. - * - * @input: - * face :: A handle to the input face. - * - * @output: - * aheader :: The WinFNT header. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with Windows FNT faces, returning an error - * otherwise. - */ - FT_EXPORT( FT_Error ) - FT_Get_WinFNT_Header( FT_Face face, - FT_WinFNT_HeaderRec *aheader ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTWINFNT_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/linux/include/ftxf86.h b/lib/linux/include/ftxf86.h deleted file mode 100644 index 89d1993..0000000 --- a/lib/linux/include/ftxf86.h +++ /dev/null @@ -1,84 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftxf86.h */ -/* */ -/* Support functions for X11. */ -/* */ -/* Copyright 2002-2004, 2006, 2007, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTXF86_H__ -#define __FTXF86_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* font_formats */ - /* */ - /* <Title> */ - /* Font Formats */ - /* */ - /* <Abstract> */ - /* Getting the font format. */ - /* */ - /* <Description> */ - /* The single function in this section can be used to get the font */ - /* format. Note that this information is not needed normally; */ - /* however, there are special cases (like in PDF devices) where it is */ - /* important to differentiate, in spite of FreeType's uniform API. */ - /* */ - /* This function is in the X11/xf86 namespace for historical reasons */ - /* and in no way depends on that windowing system. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_X11_Font_Format */ - /* */ - /* <Description> */ - /* Return a string describing the format of a given face, using values */ - /* that can be used as an X11 FONT_PROPERTY. Possible values are */ - /* `TrueType', `Type~1', `BDF', `PCF', `Type~42', `CID~Type~1', `CFF', */ - /* `PFR', and `Windows~FNT'. */ - /* */ - /* <Input> */ - /* face :: */ - /* Input face handle. */ - /* */ - /* <Return> */ - /* Font format string. NULL in case of error. */ - /* */ - FT_EXPORT( const char* ) - FT_Get_X11_Font_Format( FT_Face face ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTXF86_H__ */ diff --git a/lib/linux/include/internal/autohint.h b/lib/linux/include/internal/autohint.h deleted file mode 100644 index 545de93..0000000 --- a/lib/linux/include/internal/autohint.h +++ /dev/null @@ -1,244 +0,0 @@ -/***************************************************************************/ -/* */ -/* autohint.h */ -/* */ -/* High-level `autohint' module-specific interface (specification). */ -/* */ -/* Copyright 1996-2002, 2007, 2009, 2012 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* The auto-hinter is used to load and automatically hint glyphs if a */ - /* format-specific hinter isn't available. */ - /* */ - /*************************************************************************/ - - -#ifndef __AUTOHINT_H__ -#define __AUTOHINT_H__ - - - /*************************************************************************/ - /* */ - /* A small technical note regarding automatic hinting in order to */ - /* clarify this module interface. */ - /* */ - /* An automatic hinter might compute two kinds of data for a given face: */ - /* */ - /* - global hints: Usually some metrics that describe global properties */ - /* of the face. It is computed by scanning more or less */ - /* aggressively the glyphs in the face, and thus can be */ - /* very slow to compute (even if the size of global */ - /* hints is really small). */ - /* */ - /* - glyph hints: These describe some important features of the glyph */ - /* outline, as well as how to align them. They are */ - /* generally much faster to compute than global hints. */ - /* */ - /* The current FreeType auto-hinter does a pretty good job while */ - /* performing fast computations for both global and glyph hints. */ - /* However, we might be interested in introducing more complex and */ - /* powerful algorithms in the future, like the one described in the John */ - /* D. Hobby paper, which unfortunately requires a lot more horsepower. */ - /* */ - /* Because a sufficiently sophisticated font management system would */ - /* typically implement an LRU cache of opened face objects to reduce */ - /* memory usage, it is a good idea to be able to avoid recomputing */ - /* global hints every time the same face is re-opened. */ - /* */ - /* We thus provide the ability to cache global hints outside of the face */ - /* object, in order to speed up font re-opening time. Of course, this */ - /* feature is purely optional, so most client programs won't even notice */ - /* it. */ - /* */ - /* I initially thought that it would be a good idea to cache the glyph */ - /* hints too. However, my general idea now is that if you really need */ - /* to cache these too, you are simply in need of a new font format, */ - /* where all this information could be stored within the font file and */ - /* decoded on the fly. */ - /* */ - /*************************************************************************/ - - -#include <ft2build.h> -#include FT_FREETYPE_H - - -FT_BEGIN_HEADER - - - typedef struct FT_AutoHinterRec_ *FT_AutoHinter; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_AutoHinter_GlobalGetFunc */ - /* */ - /* <Description> */ - /* Retrieve the global hints computed for a given face object. The */ - /* resulting data is dissociated from the face and will survive a */ - /* call to FT_Done_Face(). It must be discarded through the API */ - /* FT_AutoHinter_GlobalDoneFunc(). */ - /* */ - /* <Input> */ - /* hinter :: A handle to the source auto-hinter. */ - /* */ - /* face :: A handle to the source face object. */ - /* */ - /* <Output> */ - /* global_hints :: A typeless pointer to the global hints. */ - /* */ - /* global_len :: The size in bytes of the global hints. */ - /* */ - typedef void - (*FT_AutoHinter_GlobalGetFunc)( FT_AutoHinter hinter, - FT_Face face, - void** global_hints, - long* global_len ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_AutoHinter_GlobalDoneFunc */ - /* */ - /* <Description> */ - /* Discard the global hints retrieved through */ - /* FT_AutoHinter_GlobalGetFunc(). This is the only way these hints */ - /* are freed from memory. */ - /* */ - /* <Input> */ - /* hinter :: A handle to the auto-hinter module. */ - /* */ - /* global :: A pointer to retrieved global hints to discard. */ - /* */ - typedef void - (*FT_AutoHinter_GlobalDoneFunc)( FT_AutoHinter hinter, - void* global ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_AutoHinter_GlobalResetFunc */ - /* */ - /* <Description> */ - /* This function is used to recompute the global metrics in a given */ - /* font. This is useful when global font data changes (e.g. Multiple */ - /* Masters fonts where blend coordinates change). */ - /* */ - /* <Input> */ - /* hinter :: A handle to the source auto-hinter. */ - /* */ - /* face :: A handle to the face. */ - /* */ - typedef void - (*FT_AutoHinter_GlobalResetFunc)( FT_AutoHinter hinter, - FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_AutoHinter_GlyphLoadFunc */ - /* */ - /* <Description> */ - /* This function is used to load, scale, and automatically hint a */ - /* glyph from a given face. */ - /* */ - /* <Input> */ - /* face :: A handle to the face. */ - /* */ - /* glyph_index :: The glyph index. */ - /* */ - /* load_flags :: The load flags. */ - /* */ - /* <Note> */ - /* This function is capable of loading composite glyphs by hinting */ - /* each sub-glyph independently (which improves quality). */ - /* */ - /* It will call the font driver with @FT_Load_Glyph, with */ - /* @FT_LOAD_NO_SCALE set. */ - /* */ - typedef FT_Error - (*FT_AutoHinter_GlyphLoadFunc)( FT_AutoHinter hinter, - FT_GlyphSlot slot, - FT_Size size, - FT_UInt glyph_index, - FT_Int32 load_flags ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_AutoHinter_InterfaceRec */ - /* */ - /* <Description> */ - /* The auto-hinter module's interface. */ - /* */ - typedef struct FT_AutoHinter_InterfaceRec_ - { - FT_AutoHinter_GlobalResetFunc reset_face; - FT_AutoHinter_GlobalGetFunc get_global_hints; - FT_AutoHinter_GlobalDoneFunc done_global_hints; - FT_AutoHinter_GlyphLoadFunc load_glyph; - - } FT_AutoHinter_InterfaceRec, *FT_AutoHinter_Interface; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_AUTOHINTER_INTERFACE( \ - class_, \ - reset_face_, \ - get_global_hints_, \ - done_global_hints_, \ - load_glyph_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_AutoHinter_InterfaceRec class_ = \ - { \ - reset_face_, \ - get_global_hints_, \ - done_global_hints_, \ - load_glyph_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_AUTOHINTER_INTERFACE( \ - class_, \ - reset_face_, \ - get_global_hints_, \ - done_global_hints_, \ - load_glyph_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_AutoHinter_InterfaceRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->reset_face = reset_face_; \ - clazz->get_global_hints = get_global_hints_; \ - clazz->done_global_hints = done_global_hints_; \ - clazz->load_glyph = load_glyph_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - -FT_END_HEADER - -#endif /* __AUTOHINT_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/ftcalc.h b/lib/linux/include/internal/ftcalc.h deleted file mode 100644 index 14ec37b..0000000 --- a/lib/linux/include/internal/ftcalc.h +++ /dev/null @@ -1,406 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcalc.h */ -/* */ -/* Arithmetic computations (specification). */ -/* */ -/* Copyright 1996-2006, 2008, 2009, 2012-2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTCALC_H__ -#define __FTCALC_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* FT_MulDiv() and FT_MulFix() are declared in freetype.h. */ - /* */ - /*************************************************************************/ - -#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER - /* Provide assembler fragments for performance-critical functions. */ - /* These must be defined `static __inline__' with GCC. */ - -#if defined( __CC_ARM ) || defined( __ARMCC__ ) /* RVCT */ - -#define FT_MULFIX_ASSEMBLER FT_MulFix_arm - - /* documentation is in freetype.h */ - - static __inline FT_Int32 - FT_MulFix_arm( FT_Int32 a, - FT_Int32 b ) - { - register FT_Int32 t, t2; - - - __asm - { - smull t2, t, b, a /* (lo=t2,hi=t) = a*b */ - mov a, t, asr #31 /* a = (hi >> 31) */ - add a, a, #0x8000 /* a += 0x8000 */ - adds t2, t2, a /* t2 += a */ - adc t, t, #0 /* t += carry */ - mov a, t2, lsr #16 /* a = t2 >> 16 */ - orr a, a, t, lsl #16 /* a |= t << 16 */ - } - return a; - } - -#endif /* __CC_ARM || __ARMCC__ */ - - -#ifdef __GNUC__ - -#if defined( __arm__ ) && \ - ( !defined( __thumb__ ) || defined( __thumb2__ ) ) && \ - !( defined( __CC_ARM ) || defined( __ARMCC__ ) ) - -#define FT_MULFIX_ASSEMBLER FT_MulFix_arm - - /* documentation is in freetype.h */ - - static __inline__ FT_Int32 - FT_MulFix_arm( FT_Int32 a, - FT_Int32 b ) - { - register FT_Int32 t, t2; - - - __asm__ __volatile__ ( - "smull %1, %2, %4, %3\n\t" /* (lo=%1,hi=%2) = a*b */ - "mov %0, %2, asr #31\n\t" /* %0 = (hi >> 31) */ -#if defined( __clang__ ) && defined( __thumb2__ ) - "add.w %0, %0, #0x8000\n\t" /* %0 += 0x8000 */ -#else - "add %0, %0, #0x8000\n\t" /* %0 += 0x8000 */ -#endif - "adds %1, %1, %0\n\t" /* %1 += %0 */ - "adc %2, %2, #0\n\t" /* %2 += carry */ - "mov %0, %1, lsr #16\n\t" /* %0 = %1 >> 16 */ - "orr %0, %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */ - : "=r"(a), "=&r"(t2), "=&r"(t) - : "r"(a), "r"(b) - : "cc" ); - return a; - } - -#endif /* __arm__ && */ - /* ( __thumb2__ || !__thumb__ ) && */ - /* !( __CC_ARM || __ARMCC__ ) */ - - -#if defined( __i386__ ) - -#define FT_MULFIX_ASSEMBLER FT_MulFix_i386 - - /* documentation is in freetype.h */ - - static __inline__ FT_Int32 - FT_MulFix_i386( FT_Int32 a, - FT_Int32 b ) - { - register FT_Int32 result; - - - __asm__ __volatile__ ( - "imul %%edx\n" - "movl %%edx, %%ecx\n" - "sarl $31, %%ecx\n" - "addl $0x8000, %%ecx\n" - "addl %%ecx, %%eax\n" - "adcl $0, %%edx\n" - "shrl $16, %%eax\n" - "shll $16, %%edx\n" - "addl %%edx, %%eax\n" - : "=a"(result), "=d"(b) - : "a"(a), "d"(b) - : "%ecx", "cc" ); - return result; - } - -#endif /* i386 */ - -#endif /* __GNUC__ */ - - -#ifdef _MSC_VER /* Visual C++ */ - -#ifdef _M_IX86 - -#define FT_MULFIX_ASSEMBLER FT_MulFix_i386 - - /* documentation is in freetype.h */ - - static __inline FT_Int32 - FT_MulFix_i386( FT_Int32 a, - FT_Int32 b ) - { - register FT_Int32 result; - - __asm - { - mov eax, a - mov edx, b - imul edx - mov ecx, edx - sar ecx, 31 - add ecx, 8000h - add eax, ecx - adc edx, 0 - shr eax, 16 - shl edx, 16 - add eax, edx - mov result, eax - } - return result; - } - -#endif /* _M_IX86 */ - -#endif /* _MSC_VER */ - - -#if defined( __GNUC__ ) && defined( __x86_64__ ) - -#define FT_MULFIX_ASSEMBLER FT_MulFix_x86_64 - - static __inline__ FT_Int32 - FT_MulFix_x86_64( FT_Int32 a, - FT_Int32 b ) - { - /* Temporarily disable the warning that C90 doesn't support */ - /* `long long'. */ -#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 ) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wlong-long" -#endif - -#if 1 - /* Technically not an assembly fragment, but GCC does a really good */ - /* job at inlining it and generating good machine code for it. */ - long long ret, tmp; - - - ret = (long long)a * b; - tmp = ret >> 63; - ret += 0x8000 + tmp; - - return (FT_Int32)( ret >> 16 ); -#else - - /* For some reason, GCC 4.6 on Ubuntu 12.04 generates invalid machine */ - /* code from the lines below. The main issue is that `wide_a' is not */ - /* properly initialized by sign-extending `a'. Instead, the generated */ - /* machine code assumes that the register that contains `a' on input */ - /* can be used directly as a 64-bit value, which is wrong most of the */ - /* time. */ - long long wide_a = (long long)a; - long long wide_b = (long long)b; - long long result; - - - __asm__ __volatile__ ( - "imul %2, %1\n" - "mov %1, %0\n" - "sar $63, %0\n" - "lea 0x8000(%1, %0), %0\n" - "sar $16, %0\n" - : "=&r"(result), "=&r"(wide_a) - : "r"(wide_b) - : "cc" ); - - return (FT_Int32)result; -#endif - -#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 ) -#pragma GCC diagnostic pop -#endif - } - -#endif /* __GNUC__ && __x86_64__ */ - -#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */ - - -#ifdef FT_CONFIG_OPTION_INLINE_MULFIX -#ifdef FT_MULFIX_ASSEMBLER -#define FT_MulFix( a, b ) FT_MULFIX_ASSEMBLER( (FT_Int32)(a), (FT_Int32)(b) ) -#endif -#endif - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_MulDiv_No_Round */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation `(a*b)/c' */ - /* (without rounding) with maximum accuracy (it uses a 64-bit */ - /* intermediate integer whenever necessary). */ - /* */ - /* This function isn't necessarily as fast as some processor specific */ - /* operations, but is at least completely portable. */ - /* */ - /* <Input> */ - /* a :: The first multiplier. */ - /* b :: The second multiplier. */ - /* c :: The divisor. */ - /* */ - /* <Return> */ - /* The result of `(a*b)/c'. This function never traps when trying to */ - /* divide by zero; it simply returns `MaxInt' or `MinInt' depending */ - /* on the signs of `a' and `b'. */ - /* */ - FT_BASE( FT_Long ) - FT_MulDiv_No_Round( FT_Long a, - FT_Long b, - FT_Long c ); - - - /* - * A variant of FT_Matrix_Multiply which scales its result afterwards. - * The idea is that both `a' and `b' are scaled by factors of 10 so that - * the values are as precise as possible to get a correct result during - * the 64bit multiplication. Let `sa' and `sb' be the scaling factors of - * `a' and `b', respectively, then the scaling factor of the result is - * `sa*sb'. - */ - FT_BASE( void ) - FT_Matrix_Multiply_Scaled( const FT_Matrix* a, - FT_Matrix *b, - FT_Long scaling ); - - - /* - * A variant of FT_Vector_Transform. See comments for - * FT_Matrix_Multiply_Scaled. - */ - FT_BASE( void ) - FT_Vector_Transform_Scaled( FT_Vector* vector, - const FT_Matrix* matrix, - FT_Long scaling ); - - - /* - * Return -1, 0, or +1, depending on the orientation of a given corner. - * We use the Cartesian coordinate system, with positive vertical values - * going upwards. The function returns +1 if the corner turns to the - * left, -1 to the right, and 0 for undecidable cases. - */ - FT_BASE( FT_Int ) - ft_corner_orientation( FT_Pos in_x, - FT_Pos in_y, - FT_Pos out_x, - FT_Pos out_y ); - - - /* - * Return TRUE if a corner is flat or nearly flat. This is equivalent to - * saying that the corner point is close to its neighbors, or inside an - * ellipse defined by the neighbor focal points to be more precise. - */ - FT_BASE( FT_Int ) - ft_corner_is_flat( FT_Pos in_x, - FT_Pos in_y, - FT_Pos out_x, - FT_Pos out_y ); - - - /* - * Return the most significant bit index. - */ - -#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER -#if defined( __GNUC__ ) && \ - ( __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 4 ) ) - -#if FT_SIZEOF_INT == 4 - -#define FT_MSB( x ) ( 31 - __builtin_clz( x ) ) - -#elif FT_SIZEOF_LONG == 4 - -#define FT_MSB( x ) ( 31 - __builtin_clzl( x ) ) - -#endif - -#endif /* __GNUC__ */ -#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */ - -#ifndef FT_MSB - - FT_BASE( FT_Int ) - FT_MSB( FT_UInt32 z ); - -#endif - - - /* - * Return sqrt(x*x+y*y), which is the same as `FT_Vector_Length' but uses - * two fixed-point arguments instead. - */ - FT_BASE( FT_Fixed ) - FT_Hypot( FT_Fixed x, - FT_Fixed y ); - - -#if 0 - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_SqrtFixed */ - /* */ - /* <Description> */ - /* Computes the square root of a 16.16 fixed-point value. */ - /* */ - /* <Input> */ - /* x :: The value to compute the root for. */ - /* */ - /* <Return> */ - /* The result of `sqrt(x)'. */ - /* */ - /* <Note> */ - /* This function is not very fast. */ - /* */ - FT_BASE( FT_Int32 ) - FT_SqrtFixed( FT_Int32 x ); - -#endif /* 0 */ - - -#define INT_TO_F26DOT6( x ) ( (FT_Long)(x) << 6 ) -#define INT_TO_F2DOT14( x ) ( (FT_Long)(x) << 14 ) -#define INT_TO_FIXED( x ) ( (FT_Long)(x) << 16 ) -#define F2DOT14_TO_FIXED( x ) ( (FT_Long)(x) << 2 ) -#define FLOAT_TO_FIXED( x ) ( (FT_Long)( x * 65536.0 ) ) -#define FIXED_TO_INT( x ) ( FT_RoundFix( x ) >> 16 ) - -#define ROUND_F26DOT6( x ) ( x >= 0 ? ( ( (x) + 32 ) & -64 ) \ - : ( -( ( 32 - (x) ) & -64 ) ) ) - - -FT_END_HEADER - -#endif /* __FTCALC_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/ftdebug.h b/lib/linux/include/internal/ftdebug.h deleted file mode 100644 index 58a3916..0000000 --- a/lib/linux/include/internal/ftdebug.h +++ /dev/null @@ -1,255 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftdebug.h */ -/* */ -/* Debugging and logging component (specification). */ -/* */ -/* Copyright 1996-2002, 2004, 2006-2009, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/* */ -/* IMPORTANT: A description of FreeType's debugging support can be */ -/* found in `docs/DEBUG.TXT'. Read it if you need to use or */ -/* understand this code. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTDEBUG_H__ -#define __FTDEBUG_H__ - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_FREETYPE_H - - -FT_BEGIN_HEADER - - - /* force the definition of FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE */ - /* is already defined; this simplifies the following #ifdefs */ - /* */ -#ifdef FT_DEBUG_LEVEL_TRACE -#undef FT_DEBUG_LEVEL_ERROR -#define FT_DEBUG_LEVEL_ERROR -#endif - - - /*************************************************************************/ - /* */ - /* Define the trace enums as well as the trace levels array when they */ - /* are needed. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_TRACE - -#define FT_TRACE_DEF( x ) trace_ ## x , - - /* defining the enumeration */ - typedef enum FT_Trace_ - { -#include FT_INTERNAL_TRACE_H - trace_count - - } FT_Trace; - - - /* defining the array of trace levels, provided by `src/base/ftdebug.c' */ - extern int ft_trace_levels[trace_count]; - -#undef FT_TRACE_DEF - -#endif /* FT_DEBUG_LEVEL_TRACE */ - - - /*************************************************************************/ - /* */ - /* Define the FT_TRACE macro */ - /* */ - /* IMPORTANT! */ - /* */ - /* Each component must define the macro FT_COMPONENT to a valid FT_Trace */ - /* value before using any TRACE macro. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_TRACE - -#define FT_TRACE( level, varformat ) \ - do \ - { \ - if ( ft_trace_levels[FT_COMPONENT] >= level ) \ - FT_Message varformat; \ - } while ( 0 ) - -#else /* !FT_DEBUG_LEVEL_TRACE */ - -#define FT_TRACE( level, varformat ) do { } while ( 0 ) /* nothing */ - -#endif /* !FT_DEBUG_LEVEL_TRACE */ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Trace_Get_Count */ - /* */ - /* <Description> */ - /* Return the number of available trace components. */ - /* */ - /* <Return> */ - /* The number of trace components. 0 if FreeType 2 is not built with */ - /* FT_DEBUG_LEVEL_TRACE definition. */ - /* */ - /* <Note> */ - /* This function may be useful if you want to access elements of */ - /* the internal `ft_trace_levels' array by an index. */ - /* */ - FT_BASE( FT_Int ) - FT_Trace_Get_Count( void ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Trace_Get_Name */ - /* */ - /* <Description> */ - /* Return the name of a trace component. */ - /* */ - /* <Input> */ - /* The index of the trace component. */ - /* */ - /* <Return> */ - /* The name of the trace component. This is a statically allocated */ - /* C string, so do not free it after use. NULL if FreeType 2 is not */ - /* built with FT_DEBUG_LEVEL_TRACE definition. */ - /* */ - /* <Note> */ - /* Use @FT_Trace_Get_Count to get the number of available trace */ - /* components. */ - /* */ - /* This function may be useful if you want to control FreeType 2's */ - /* debug level in your application. */ - /* */ - FT_BASE( const char * ) - FT_Trace_Get_Name( FT_Int idx ); - - - /*************************************************************************/ - /* */ - /* You need two opening and closing parentheses! */ - /* */ - /* Example: FT_TRACE0(( "Value is %i", foo )) */ - /* */ - /* Output of the FT_TRACEX macros is sent to stderr. */ - /* */ - /*************************************************************************/ - -#define FT_TRACE0( varformat ) FT_TRACE( 0, varformat ) -#define FT_TRACE1( varformat ) FT_TRACE( 1, varformat ) -#define FT_TRACE2( varformat ) FT_TRACE( 2, varformat ) -#define FT_TRACE3( varformat ) FT_TRACE( 3, varformat ) -#define FT_TRACE4( varformat ) FT_TRACE( 4, varformat ) -#define FT_TRACE5( varformat ) FT_TRACE( 5, varformat ) -#define FT_TRACE6( varformat ) FT_TRACE( 6, varformat ) -#define FT_TRACE7( varformat ) FT_TRACE( 7, varformat ) - - - /*************************************************************************/ - /* */ - /* Define the FT_ERROR macro. */ - /* */ - /* Output of this macro is sent to stderr. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_ERROR - -#define FT_ERROR( varformat ) FT_Message varformat - -#else /* !FT_DEBUG_LEVEL_ERROR */ - -#define FT_ERROR( varformat ) do { } while ( 0 ) /* nothing */ - -#endif /* !FT_DEBUG_LEVEL_ERROR */ - - - /*************************************************************************/ - /* */ - /* Define the FT_ASSERT and FT_THROW macros. The call to `FT_Throw' */ - /* makes it possible to easily set a breakpoint at this function. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_ERROR - -#define FT_ASSERT( condition ) \ - do \ - { \ - if ( !( condition ) ) \ - FT_Panic( "assertion failed on line %d of file %s\n", \ - __LINE__, __FILE__ ); \ - } while ( 0 ) - -#define FT_THROW( e ) \ - ( FT_Throw( FT_ERR_CAT( FT_ERR_PREFIX, e ), \ - __LINE__, \ - __FILE__ ) | \ - FT_ERR_CAT( FT_ERR_PREFIX, e ) ) - -#else /* !FT_DEBUG_LEVEL_ERROR */ - -#define FT_ASSERT( condition ) do { } while ( 0 ) - -#define FT_THROW( e ) FT_ERR_CAT( FT_ERR_PREFIX, e ) - -#endif /* !FT_DEBUG_LEVEL_ERROR */ - - - /*************************************************************************/ - /* */ - /* Define `FT_Message' and `FT_Panic' when needed. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_ERROR - -#include "stdio.h" /* for vfprintf() */ - - /* print a message */ - FT_BASE( void ) - FT_Message( const char* fmt, - ... ); - - /* print a message and exit */ - FT_BASE( void ) - FT_Panic( const char* fmt, - ... ); - - /* report file name and line number of an error */ - FT_BASE( int ) - FT_Throw( FT_Error error, - int line, - const char* file ); - -#endif /* FT_DEBUG_LEVEL_ERROR */ - - - FT_BASE( void ) - ft_debug_init( void ); - -FT_END_HEADER - -#endif /* __FTDEBUG_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/ftdriver.h b/lib/linux/include/internal/ftdriver.h deleted file mode 100644 index 940218e..0000000 --- a/lib/linux/include/internal/ftdriver.h +++ /dev/null @@ -1,409 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftdriver.h */ -/* */ -/* FreeType font driver interface (specification). */ -/* */ -/* Copyright 1996-2003, 2006, 2008, 2011-2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTDRIVER_H__ -#define __FTDRIVER_H__ - - -#include <ft2build.h> -#include FT_MODULE_H - - -FT_BEGIN_HEADER - - - typedef FT_Error - (*FT_Face_InitFunc)( FT_Stream stream, - FT_Face face, - FT_Int typeface_index, - FT_Int num_params, - FT_Parameter* parameters ); - - typedef void - (*FT_Face_DoneFunc)( FT_Face face ); - - - typedef FT_Error - (*FT_Size_InitFunc)( FT_Size size ); - - typedef void - (*FT_Size_DoneFunc)( FT_Size size ); - - - typedef FT_Error - (*FT_Slot_InitFunc)( FT_GlyphSlot slot ); - - typedef void - (*FT_Slot_DoneFunc)( FT_GlyphSlot slot ); - - - typedef FT_Error - (*FT_Size_RequestFunc)( FT_Size size, - FT_Size_Request req ); - - typedef FT_Error - (*FT_Size_SelectFunc)( FT_Size size, - FT_ULong size_index ); - - typedef FT_Error - (*FT_Slot_LoadFunc)( FT_GlyphSlot slot, - FT_Size size, - FT_UInt glyph_index, - FT_Int32 load_flags ); - - - typedef FT_UInt - (*FT_CharMap_CharIndexFunc)( FT_CharMap charmap, - FT_Long charcode ); - - typedef FT_Long - (*FT_CharMap_CharNextFunc)( FT_CharMap charmap, - FT_Long charcode ); - - - typedef FT_Error - (*FT_Face_GetKerningFunc)( FT_Face face, - FT_UInt left_glyph, - FT_UInt right_glyph, - FT_Vector* kerning ); - - - typedef FT_Error - (*FT_Face_AttachFunc)( FT_Face face, - FT_Stream stream ); - - - typedef FT_Error - (*FT_Face_GetAdvancesFunc)( FT_Face face, - FT_UInt first, - FT_UInt count, - FT_Int32 flags, - FT_Fixed* advances ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Driver_ClassRec */ - /* */ - /* <Description> */ - /* The font driver class. This structure mostly contains pointers to */ - /* driver methods. */ - /* */ - /* <Fields> */ - /* root :: The parent module. */ - /* */ - /* face_object_size :: The size of a face object in bytes. */ - /* */ - /* size_object_size :: The size of a size object in bytes. */ - /* */ - /* slot_object_size :: The size of a glyph object in bytes. */ - /* */ - /* init_face :: The format-specific face constructor. */ - /* */ - /* done_face :: The format-specific face destructor. */ - /* */ - /* init_size :: The format-specific size constructor. */ - /* */ - /* done_size :: The format-specific size destructor. */ - /* */ - /* init_slot :: The format-specific slot constructor. */ - /* */ - /* done_slot :: The format-specific slot destructor. */ - /* */ - /* */ - /* load_glyph :: A function handle to load a glyph to a slot. */ - /* This field is mandatory! */ - /* */ - /* get_kerning :: A function handle to return the unscaled */ - /* kerning for a given pair of glyphs. Can be */ - /* set to 0 if the format doesn't support */ - /* kerning. */ - /* */ - /* attach_file :: This function handle is used to read */ - /* additional data for a face from another */ - /* file/stream. For example, this can be used to */ - /* add data from AFM or PFM files on a Type 1 */ - /* face, or a CIDMap on a CID-keyed face. */ - /* */ - /* get_advances :: A function handle used to return advance */ - /* widths of `count' glyphs (in font units), */ - /* starting at `first'. The `vertical' flag must */ - /* be set to get vertical advance heights. The */ - /* `advances' buffer is caller-allocated. */ - /* The idea of this function is to be able to */ - /* perform device-independent text layout without */ - /* loading a single glyph image. */ - /* */ - /* request_size :: A handle to a function used to request the new */ - /* character size. Can be set to 0 if the */ - /* scaling done in the base layer suffices. */ - /* */ - /* select_size :: A handle to a function used to select a new */ - /* fixed size. It is used only if */ - /* @FT_FACE_FLAG_FIXED_SIZES is set. Can be set */ - /* to 0 if the scaling done in the base layer */ - /* suffices. */ - /* <Note> */ - /* Most function pointers, with the exception of `load_glyph', can be */ - /* set to 0 to indicate a default behaviour. */ - /* */ - typedef struct FT_Driver_ClassRec_ - { - FT_Module_Class root; - - FT_Long face_object_size; - FT_Long size_object_size; - FT_Long slot_object_size; - - FT_Face_InitFunc init_face; - FT_Face_DoneFunc done_face; - - FT_Size_InitFunc init_size; - FT_Size_DoneFunc done_size; - - FT_Slot_InitFunc init_slot; - FT_Slot_DoneFunc done_slot; - - FT_Slot_LoadFunc load_glyph; - - FT_Face_GetKerningFunc get_kerning; - FT_Face_AttachFunc attach_file; - FT_Face_GetAdvancesFunc get_advances; - - /* since version 2.2 */ - FT_Size_RequestFunc request_size; - FT_Size_SelectFunc select_size; - - } FT_Driver_ClassRec, *FT_Driver_Class; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DECLARE_DRIVER */ - /* */ - /* <Description> */ - /* Used to create a forward declaration of an FT_Driver_ClassRec */ - /* struct instance. */ - /* */ - /* <Macro> */ - /* FT_DEFINE_DRIVER */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Driver_ClassRec struct. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is defined a `create' function has to be */ - /* called with a pointer where the allocated structure is returned. */ - /* And when it is no longer needed a `destroy' function needs to be */ - /* called to release that allocation. */ - /* */ - /* `fcinit.c' (ft_create_default_module_classes) already contains a */ - /* mechanism to call these functions for the default modules */ - /* described in `ftmodule.h'. */ - /* */ - /* Notice that the created `create' and `destroy' functions call */ - /* `pic_init' and `pic_free' to allow you to manually allocate and */ - /* initialize any additional global data, like a module specific */ - /* interface, and put them in the global pic container defined in */ - /* `ftpic.h'. If you don't need them just implement the functions as */ - /* empty to resolve the link error. Also the `pic_init' and */ - /* `pic_free' functions should be declared in `pic.h', to be referred */ - /* by driver definition calling `FT_DEFINE_DRIVER' in following. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro is */ - /* used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DECLARE_DRIVER( class_ ) \ - FT_CALLBACK_TABLE \ - const FT_Driver_ClassRec class_; - -#define FT_DEFINE_DRIVER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - face_object_size_, \ - size_object_size_, \ - slot_object_size_, \ - init_face_, \ - done_face_, \ - init_size_, \ - done_size_, \ - init_slot_, \ - done_slot_, \ - load_glyph_, \ - get_kerning_, \ - attach_file_, \ - get_advances_, \ - request_size_, \ - select_size_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Driver_ClassRec class_ = \ - { \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - \ - face_object_size_, \ - size_object_size_, \ - slot_object_size_, \ - \ - init_face_, \ - done_face_, \ - \ - init_size_, \ - done_size_, \ - \ - init_slot_, \ - done_slot_, \ - \ - load_glyph_, \ - \ - get_kerning_, \ - attach_file_, \ - get_advances_, \ - \ - request_size_, \ - select_size_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DECLARE_DRIVER( class_ ) FT_DECLARE_MODULE( class_ ) - -#define FT_DEFINE_DRIVER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - face_object_size_, \ - size_object_size_, \ - slot_object_size_, \ - init_face_, \ - done_face_, \ - init_size_, \ - done_size_, \ - init_slot_, \ - done_slot_, \ - load_glyph_, \ - get_kerning_, \ - attach_file_, \ - get_advances_, \ - request_size_, \ - select_size_ ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_Module_Class* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - FT_Driver_Class dclazz = (FT_Driver_Class)clazz; \ - \ - \ - class_ ## _pic_free( library ); \ - if ( dclazz ) \ - FT_FREE( dclazz ); \ - } \ - \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_Module_Class** output_class ) \ - { \ - FT_Driver_Class clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \ - return error; \ - \ - error = class_ ## _pic_init( library ); \ - if ( error ) \ - { \ - FT_FREE( clazz ); \ - return error; \ - } \ - \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - \ - clazz->face_object_size = face_object_size_; \ - clazz->size_object_size = size_object_size_; \ - clazz->slot_object_size = slot_object_size_; \ - \ - clazz->init_face = init_face_; \ - clazz->done_face = done_face_; \ - \ - clazz->init_size = init_size_; \ - clazz->done_size = done_size_; \ - \ - clazz->init_slot = init_slot_; \ - clazz->done_slot = done_slot_; \ - \ - clazz->load_glyph = load_glyph_; \ - \ - clazz->get_kerning = get_kerning_; \ - clazz->attach_file = attach_file_; \ - clazz->get_advances = get_advances_; \ - \ - clazz->request_size = request_size_; \ - clazz->select_size = select_size_; \ - \ - *output_class = (FT_Module_Class*)clazz; \ - \ - return FT_Err_Ok; \ - } - - -#endif /* FT_CONFIG_OPTION_PIC */ - -FT_END_HEADER - -#endif /* __FTDRIVER_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/ftgloadr.h b/lib/linux/include/internal/ftgloadr.h deleted file mode 100644 index f70774f..0000000 --- a/lib/linux/include/internal/ftgloadr.h +++ /dev/null @@ -1,170 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftgloadr.h */ -/* */ -/* The FreeType glyph loader (specification). */ -/* */ -/* Copyright 2002, 2003, 2005, 2006 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTGLOADR_H__ -#define __FTGLOADR_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_GlyphLoader */ - /* */ - /* <Description> */ - /* The glyph loader is an internal object used to load several glyphs */ - /* together (for example, in the case of composites). */ - /* */ - /* <Note> */ - /* The glyph loader implementation is not part of the high-level API, */ - /* hence the forward structure declaration. */ - /* */ - typedef struct FT_GlyphLoaderRec_* FT_GlyphLoader ; - - -#if 0 /* moved to freetype.h in version 2.2 */ -#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS 1 -#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES 2 -#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID 4 -#define FT_SUBGLYPH_FLAG_SCALE 8 -#define FT_SUBGLYPH_FLAG_XY_SCALE 0x40 -#define FT_SUBGLYPH_FLAG_2X2 0x80 -#define FT_SUBGLYPH_FLAG_USE_MY_METRICS 0x200 -#endif - - - typedef struct FT_SubGlyphRec_ - { - FT_Int index; - FT_UShort flags; - FT_Int arg1; - FT_Int arg2; - FT_Matrix transform; - - } FT_SubGlyphRec; - - - typedef struct FT_GlyphLoadRec_ - { - FT_Outline outline; /* outline */ - FT_Vector* extra_points; /* extra points table */ - FT_Vector* extra_points2; /* second extra points table */ - FT_UInt num_subglyphs; /* number of subglyphs */ - FT_SubGlyph subglyphs; /* subglyphs */ - - } FT_GlyphLoadRec, *FT_GlyphLoad; - - - typedef struct FT_GlyphLoaderRec_ - { - FT_Memory memory; - FT_UInt max_points; - FT_UInt max_contours; - FT_UInt max_subglyphs; - FT_Bool use_extra; - - FT_GlyphLoadRec base; - FT_GlyphLoadRec current; - - void* other; /* for possible future extension? */ - - } FT_GlyphLoaderRec; - - - /* create new empty glyph loader */ - FT_BASE( FT_Error ) - FT_GlyphLoader_New( FT_Memory memory, - FT_GlyphLoader *aloader ); - - /* add an extra points table to a glyph loader */ - FT_BASE( FT_Error ) - FT_GlyphLoader_CreateExtra( FT_GlyphLoader loader ); - - /* destroy a glyph loader */ - FT_BASE( void ) - FT_GlyphLoader_Done( FT_GlyphLoader loader ); - - /* reset a glyph loader (frees everything int it) */ - FT_BASE( void ) - FT_GlyphLoader_Reset( FT_GlyphLoader loader ); - - /* rewind a glyph loader */ - FT_BASE( void ) - FT_GlyphLoader_Rewind( FT_GlyphLoader loader ); - - /* check that there is enough space to add `n_points' and `n_contours' */ - /* to the glyph loader */ - FT_BASE( FT_Error ) - FT_GlyphLoader_CheckPoints( FT_GlyphLoader loader, - FT_UInt n_points, - FT_UInt n_contours ); - - -#define FT_GLYPHLOADER_CHECK_P( _loader, _count ) \ - ( (_count) == 0 || \ - ( (_loader)->base.outline.n_points + \ - (_loader)->current.outline.n_points + \ - (unsigned long)(_count) ) <= (_loader)->max_points ) - -#define FT_GLYPHLOADER_CHECK_C( _loader, _count ) \ - ( (_count) == 0 || \ - ( (_loader)->base.outline.n_contours + \ - (_loader)->current.outline.n_contours + \ - (unsigned long)(_count)) <= (_loader)->max_contours ) - -#define FT_GLYPHLOADER_CHECK_POINTS( _loader, _points, _contours ) \ - ( ( FT_GLYPHLOADER_CHECK_P( _loader, _points ) && \ - FT_GLYPHLOADER_CHECK_C( _loader, _contours ) ) \ - ? 0 \ - : FT_GlyphLoader_CheckPoints( (_loader), (_points), (_contours) ) ) - - - /* check that there is enough space to add `n_subs' sub-glyphs to */ - /* a glyph loader */ - FT_BASE( FT_Error ) - FT_GlyphLoader_CheckSubGlyphs( FT_GlyphLoader loader, - FT_UInt n_subs ); - - /* prepare a glyph loader, i.e. empty the current glyph */ - FT_BASE( void ) - FT_GlyphLoader_Prepare( FT_GlyphLoader loader ); - - /* add the current glyph to the base glyph */ - FT_BASE( void ) - FT_GlyphLoader_Add( FT_GlyphLoader loader ); - - /* copy points from one glyph loader to another */ - FT_BASE( FT_Error ) - FT_GlyphLoader_CopyPoints( FT_GlyphLoader target, - FT_GlyphLoader source ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTGLOADR_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/ftmemory.h b/lib/linux/include/internal/ftmemory.h deleted file mode 100644 index 3d51aee..0000000 --- a/lib/linux/include/internal/ftmemory.h +++ /dev/null @@ -1,378 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmemory.h */ -/* */ -/* The FreeType memory management macros (specification). */ -/* */ -/* Copyright 1996-2002, 2004-2007, 2010, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTMEMORY_H__ -#define __FTMEMORY_H__ - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_TYPES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_SET_ERROR */ - /* */ - /* <Description> */ - /* This macro is used to set an implicit `error' variable to a given */ - /* expression's value (usually a function call), and convert it to a */ - /* boolean which is set whenever the value is != 0. */ - /* */ -#undef FT_SET_ERROR -#define FT_SET_ERROR( expression ) \ - ( ( error = (expression) ) != 0 ) - - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** M E M O R Y ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* - * C++ refuses to handle statements like p = (void*)anything, with `p' a - * typed pointer. Since we don't have a `typeof' operator in standard - * C++, we have to use a template to emulate it. - */ - -#ifdef __cplusplus - - extern "C++" - template <typename T> inline T* - cplusplus_typeof( T*, - void *v ) - { - return static_cast <T*> ( v ); - } - -#define FT_ASSIGNP( p, val ) (p) = cplusplus_typeof( (p), (val) ) - -#else - -#define FT_ASSIGNP( p, val ) (p) = (val) - -#endif - - - -#ifdef FT_DEBUG_MEMORY - - FT_BASE( const char* ) _ft_debug_file; - FT_BASE( long ) _ft_debug_lineno; - -#define FT_DEBUG_INNER( exp ) ( _ft_debug_file = __FILE__, \ - _ft_debug_lineno = __LINE__, \ - (exp) ) - -#define FT_ASSIGNP_INNER( p, exp ) ( _ft_debug_file = __FILE__, \ - _ft_debug_lineno = __LINE__, \ - FT_ASSIGNP( p, exp ) ) - -#else /* !FT_DEBUG_MEMORY */ - -#define FT_DEBUG_INNER( exp ) (exp) -#define FT_ASSIGNP_INNER( p, exp ) FT_ASSIGNP( p, exp ) - -#endif /* !FT_DEBUG_MEMORY */ - - - /* - * The allocation functions return a pointer, and the error code - * is written to through the `p_error' parameter. See below for - * for documentation. - */ - - FT_BASE( FT_Pointer ) - ft_mem_alloc( FT_Memory memory, - FT_Long size, - FT_Error *p_error ); - - FT_BASE( FT_Pointer ) - ft_mem_qalloc( FT_Memory memory, - FT_Long size, - FT_Error *p_error ); - - FT_BASE( FT_Pointer ) - ft_mem_realloc( FT_Memory memory, - FT_Long item_size, - FT_Long cur_count, - FT_Long new_count, - void* block, - FT_Error *p_error ); - - FT_BASE( FT_Pointer ) - ft_mem_qrealloc( FT_Memory memory, - FT_Long item_size, - FT_Long cur_count, - FT_Long new_count, - void* block, - FT_Error *p_error ); - - FT_BASE( void ) - ft_mem_free( FT_Memory memory, - const void* P ); - - -#define FT_MEM_ALLOC( ptr, size ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_alloc( memory, \ - (FT_Long)(size), \ - &error ) ) - -#define FT_MEM_FREE( ptr ) \ - FT_BEGIN_STMNT \ - ft_mem_free( memory, (ptr) ); \ - (ptr) = NULL; \ - FT_END_STMNT - -#define FT_MEM_NEW( ptr ) \ - FT_MEM_ALLOC( ptr, sizeof ( *(ptr) ) ) - -#define FT_MEM_REALLOC( ptr, cursz, newsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - 1, \ - (FT_Long)(cursz), \ - (FT_Long)(newsz), \ - (ptr), \ - &error ) ) - -#define FT_MEM_QALLOC( ptr, size ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qalloc( memory, \ - (FT_Long)(size), \ - &error ) ) - -#define FT_MEM_QNEW( ptr ) \ - FT_MEM_QALLOC( ptr, sizeof ( *(ptr) ) ) - -#define FT_MEM_QREALLOC( ptr, cursz, newsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - 1, \ - (FT_Long)(cursz), \ - (FT_Long)(newsz), \ - (ptr), \ - &error ) ) - -#define FT_MEM_ALLOC_MULT( ptr, count, item_size ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - (FT_Long)(item_size), \ - 0, \ - (FT_Long)(count), \ - NULL, \ - &error ) ) - -#define FT_MEM_REALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - (FT_Long)(itmsz), \ - (FT_Long)(oldcnt), \ - (FT_Long)(newcnt), \ - (ptr), \ - &error ) ) - -#define FT_MEM_QALLOC_MULT( ptr, count, item_size ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - (FT_Long)(item_size), \ - 0, \ - (FT_Long)(count), \ - NULL, \ - &error ) ) - -#define FT_MEM_QREALLOC_MULT( ptr, oldcnt, newcnt, itmsz) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - (FT_Long)(itmsz), \ - (FT_Long)(oldcnt), \ - (FT_Long)(newcnt), \ - (ptr), \ - &error ) ) - - -#define FT_MEM_SET_ERROR( cond ) ( (cond), error != 0 ) - - -#define FT_MEM_SET( dest, byte, count ) ft_memset( dest, byte, count ) - -#define FT_MEM_COPY( dest, source, count ) ft_memcpy( dest, source, count ) - -#define FT_MEM_MOVE( dest, source, count ) ft_memmove( dest, source, count ) - - -#define FT_MEM_ZERO( dest, count ) FT_MEM_SET( dest, 0, count ) - -#define FT_ZERO( p ) FT_MEM_ZERO( p, sizeof ( *(p) ) ) - - -#define FT_ARRAY_ZERO( dest, count ) \ - FT_MEM_ZERO( dest, (count) * sizeof ( *(dest) ) ) - -#define FT_ARRAY_COPY( dest, source, count ) \ - FT_MEM_COPY( dest, source, (count) * sizeof ( *(dest) ) ) - -#define FT_ARRAY_MOVE( dest, source, count ) \ - FT_MEM_MOVE( dest, source, (count) * sizeof ( *(dest) ) ) - - - /* - * Return the maximum number of addressable elements in an array. - * We limit ourselves to INT_MAX, rather than UINT_MAX, to avoid - * any problems. - */ -#define FT_ARRAY_MAX( ptr ) ( FT_INT_MAX / sizeof ( *(ptr) ) ) - -#define FT_ARRAY_CHECK( ptr, count ) ( (count) <= FT_ARRAY_MAX( ptr ) ) - - - /*************************************************************************/ - /* */ - /* The following functions macros expect that their pointer argument is */ - /* _typed_ in order to automatically compute array element sizes. */ - /* */ - -#define FT_MEM_NEW_ARRAY( ptr, count ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - sizeof ( *(ptr) ), \ - 0, \ - (FT_Long)(count), \ - NULL, \ - &error ) ) - -#define FT_MEM_RENEW_ARRAY( ptr, cursz, newsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - sizeof ( *(ptr) ), \ - (FT_Long)(cursz), \ - (FT_Long)(newsz), \ - (ptr), \ - &error ) ) - -#define FT_MEM_QNEW_ARRAY( ptr, count ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - sizeof ( *(ptr) ), \ - 0, \ - (FT_Long)(count), \ - NULL, \ - &error ) ) - -#define FT_MEM_QRENEW_ARRAY( ptr, cursz, newsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - sizeof ( *(ptr) ), \ - (FT_Long)(cursz), \ - (FT_Long)(newsz), \ - (ptr), \ - &error ) ) - -#define FT_ALLOC( ptr, size ) \ - FT_MEM_SET_ERROR( FT_MEM_ALLOC( ptr, size ) ) - -#define FT_REALLOC( ptr, cursz, newsz ) \ - FT_MEM_SET_ERROR( FT_MEM_REALLOC( ptr, cursz, newsz ) ) - -#define FT_ALLOC_MULT( ptr, count, item_size ) \ - FT_MEM_SET_ERROR( FT_MEM_ALLOC_MULT( ptr, count, item_size ) ) - -#define FT_REALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \ - FT_MEM_SET_ERROR( FT_MEM_REALLOC_MULT( ptr, oldcnt, \ - newcnt, itmsz ) ) - -#define FT_QALLOC( ptr, size ) \ - FT_MEM_SET_ERROR( FT_MEM_QALLOC( ptr, size ) ) - -#define FT_QREALLOC( ptr, cursz, newsz ) \ - FT_MEM_SET_ERROR( FT_MEM_QREALLOC( ptr, cursz, newsz ) ) - -#define FT_QALLOC_MULT( ptr, count, item_size ) \ - FT_MEM_SET_ERROR( FT_MEM_QALLOC_MULT( ptr, count, item_size ) ) - -#define FT_QREALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \ - FT_MEM_SET_ERROR( FT_MEM_QREALLOC_MULT( ptr, oldcnt, \ - newcnt, itmsz ) ) - -#define FT_FREE( ptr ) FT_MEM_FREE( ptr ) - -#define FT_NEW( ptr ) FT_MEM_SET_ERROR( FT_MEM_NEW( ptr ) ) - -#define FT_NEW_ARRAY( ptr, count ) \ - FT_MEM_SET_ERROR( FT_MEM_NEW_ARRAY( ptr, count ) ) - -#define FT_RENEW_ARRAY( ptr, curcnt, newcnt ) \ - FT_MEM_SET_ERROR( FT_MEM_RENEW_ARRAY( ptr, curcnt, newcnt ) ) - -#define FT_QNEW( ptr ) \ - FT_MEM_SET_ERROR( FT_MEM_QNEW( ptr ) ) - -#define FT_QNEW_ARRAY( ptr, count ) \ - FT_MEM_SET_ERROR( FT_MEM_NEW_ARRAY( ptr, count ) ) - -#define FT_QRENEW_ARRAY( ptr, curcnt, newcnt ) \ - FT_MEM_SET_ERROR( FT_MEM_RENEW_ARRAY( ptr, curcnt, newcnt ) ) - - - FT_BASE( FT_Pointer ) - ft_mem_strdup( FT_Memory memory, - const char* str, - FT_Error *p_error ); - - FT_BASE( FT_Pointer ) - ft_mem_dup( FT_Memory memory, - const void* address, - FT_ULong size, - FT_Error *p_error ); - - -#define FT_MEM_STRDUP( dst, str ) \ - (dst) = (char*)ft_mem_strdup( memory, (const char*)(str), &error ) - -#define FT_STRDUP( dst, str ) \ - FT_MEM_SET_ERROR( FT_MEM_STRDUP( dst, str ) ) - -#define FT_MEM_DUP( dst, address, size ) \ - (dst) = ft_mem_dup( memory, (address), (FT_ULong)(size), &error ) - -#define FT_DUP( dst, address, size ) \ - FT_MEM_SET_ERROR( FT_MEM_DUP( dst, address, size ) ) - - - /* Return >= 1 if a truncation occurs. */ - /* Return 0 if the source string fits the buffer. */ - /* This is *not* the same as strlcpy(). */ - FT_BASE( FT_Int ) - ft_mem_strcpyn( char* dst, - const char* src, - FT_ULong size ); - -#define FT_STRCPYN( dst, src, size ) \ - ft_mem_strcpyn( (char*)dst, (const char*)(src), (FT_ULong)(size) ) - - /* */ - - -FT_END_HEADER - -#endif /* __FTMEMORY_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/ftobjs.h b/lib/linux/include/internal/ftobjs.h deleted file mode 100644 index b45a5ed..0000000 --- a/lib/linux/include/internal/ftobjs.h +++ /dev/null @@ -1,1571 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftobjs.h */ -/* */ -/* The FreeType private base classes (specification). */ -/* */ -/* Copyright 1996-2006, 2008, 2010, 2012-2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file contains the definition of all internal FreeType classes. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTOBJS_H__ -#define __FTOBJS_H__ - -#include <ft2build.h> -#include FT_RENDER_H -#include FT_SIZES_H -#include FT_LCD_FILTER_H -#include FT_INTERNAL_MEMORY_H -#include FT_INTERNAL_GLYPH_LOADER_H -#include FT_INTERNAL_DRIVER_H -#include FT_INTERNAL_AUTOHINT_H -#include FT_INTERNAL_SERVICE_H -#include FT_INTERNAL_PIC_H - -#ifdef FT_CONFIG_OPTION_INCREMENTAL -#include FT_INCREMENTAL_H -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* Some generic definitions. */ - /* */ -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef NULL -#define NULL (void*)0 -#endif - - - /*************************************************************************/ - /* */ - /* The min and max functions missing in C. As usual, be careful not to */ - /* write things like FT_MIN( a++, b++ ) to avoid side effects. */ - /* */ -#define FT_MIN( a, b ) ( (a) < (b) ? (a) : (b) ) -#define FT_MAX( a, b ) ( (a) > (b) ? (a) : (b) ) - -#define FT_ABS( a ) ( (a) < 0 ? -(a) : (a) ) - - /* - * Approximate sqrt(x*x+y*y) using the `alpha max plus beta min' - * algorithm. We use alpha = 1, beta = 3/8, giving us results with a - * largest error less than 7% compared to the exact value. - */ -#define FT_HYPOT( x, y ) \ - ( x = FT_ABS( x ), \ - y = FT_ABS( y ), \ - x > y ? x + ( 3 * y >> 3 ) \ - : y + ( 3 * x >> 3 ) ) - -#define FT_PAD_FLOOR( x, n ) ( (x) & ~((n)-1) ) -#define FT_PAD_ROUND( x, n ) FT_PAD_FLOOR( (x) + ((n)/2), n ) -#define FT_PAD_CEIL( x, n ) FT_PAD_FLOOR( (x) + ((n)-1), n ) - -#define FT_PIX_FLOOR( x ) ( (x) & ~63 ) -#define FT_PIX_ROUND( x ) FT_PIX_FLOOR( (x) + 32 ) -#define FT_PIX_CEIL( x ) FT_PIX_FLOOR( (x) + 63 ) - - - /* - * character classification functions -- since these are used to parse - * font files, we must not use those in <ctypes.h> which are - * locale-dependent - */ -#define ft_isdigit( x ) ( ( (unsigned)(x) - '0' ) < 10U ) - -#define ft_isxdigit( x ) ( ( (unsigned)(x) - '0' ) < 10U || \ - ( (unsigned)(x) - 'a' ) < 6U || \ - ( (unsigned)(x) - 'A' ) < 6U ) - - /* the next two macros assume ASCII representation */ -#define ft_isupper( x ) ( ( (unsigned)(x) - 'A' ) < 26U ) -#define ft_islower( x ) ( ( (unsigned)(x) - 'a' ) < 26U ) - -#define ft_isalpha( x ) ( ft_isupper( x ) || ft_islower( x ) ) -#define ft_isalnum( x ) ( ft_isdigit( x ) || ft_isalpha( x ) ) - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** C H A R M A P S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - /* handle to internal charmap object */ - typedef struct FT_CMapRec_* FT_CMap; - - /* handle to charmap class structure */ - typedef const struct FT_CMap_ClassRec_* FT_CMap_Class; - - /* internal charmap object structure */ - typedef struct FT_CMapRec_ - { - FT_CharMapRec charmap; - FT_CMap_Class clazz; - - } FT_CMapRec; - - /* typecase any pointer to a charmap handle */ -#define FT_CMAP( x ) ((FT_CMap)( x )) - - /* obvious macros */ -#define FT_CMAP_PLATFORM_ID( x ) FT_CMAP( x )->charmap.platform_id -#define FT_CMAP_ENCODING_ID( x ) FT_CMAP( x )->charmap.encoding_id -#define FT_CMAP_ENCODING( x ) FT_CMAP( x )->charmap.encoding -#define FT_CMAP_FACE( x ) FT_CMAP( x )->charmap.face - - - /* class method definitions */ - typedef FT_Error - (*FT_CMap_InitFunc)( FT_CMap cmap, - FT_Pointer init_data ); - - typedef void - (*FT_CMap_DoneFunc)( FT_CMap cmap ); - - typedef FT_UInt - (*FT_CMap_CharIndexFunc)( FT_CMap cmap, - FT_UInt32 char_code ); - - typedef FT_UInt - (*FT_CMap_CharNextFunc)( FT_CMap cmap, - FT_UInt32 *achar_code ); - - typedef FT_UInt - (*FT_CMap_CharVarIndexFunc)( FT_CMap cmap, - FT_CMap unicode_cmap, - FT_UInt32 char_code, - FT_UInt32 variant_selector ); - - typedef FT_Bool - (*FT_CMap_CharVarIsDefaultFunc)( FT_CMap cmap, - FT_UInt32 char_code, - FT_UInt32 variant_selector ); - - typedef FT_UInt32 * - (*FT_CMap_VariantListFunc)( FT_CMap cmap, - FT_Memory mem ); - - typedef FT_UInt32 * - (*FT_CMap_CharVariantListFunc)( FT_CMap cmap, - FT_Memory mem, - FT_UInt32 char_code ); - - typedef FT_UInt32 * - (*FT_CMap_VariantCharListFunc)( FT_CMap cmap, - FT_Memory mem, - FT_UInt32 variant_selector ); - - - typedef struct FT_CMap_ClassRec_ - { - FT_ULong size; - FT_CMap_InitFunc init; - FT_CMap_DoneFunc done; - FT_CMap_CharIndexFunc char_index; - FT_CMap_CharNextFunc char_next; - - /* Subsequent entries are special ones for format 14 -- the variant */ - /* selector subtable which behaves like no other */ - - FT_CMap_CharVarIndexFunc char_var_index; - FT_CMap_CharVarIsDefaultFunc char_var_default; - FT_CMap_VariantListFunc variant_list; - FT_CMap_CharVariantListFunc charvariant_list; - FT_CMap_VariantCharListFunc variantchar_list; - - } FT_CMap_ClassRec; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DECLARE_CMAP_CLASS( class_ ) \ - FT_CALLBACK_TABLE const FT_CMap_ClassRec class_; - -#define FT_DEFINE_CMAP_CLASS( \ - class_, \ - size_, \ - init_, \ - done_, \ - char_index_, \ - char_next_, \ - char_var_index_, \ - char_var_default_, \ - variant_list_, \ - charvariant_list_, \ - variantchar_list_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_CMap_ClassRec class_ = \ - { \ - size_, \ - init_, \ - done_, \ - char_index_, \ - char_next_, \ - char_var_index_, \ - char_var_default_, \ - variant_list_, \ - charvariant_list_, \ - variantchar_list_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DECLARE_CMAP_CLASS( class_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_CMap_ClassRec* clazz ); - -#define FT_DEFINE_CMAP_CLASS( \ - class_, \ - size_, \ - init_, \ - done_, \ - char_index_, \ - char_next_, \ - char_var_index_, \ - char_var_default_, \ - variant_list_, \ - charvariant_list_, \ - variantchar_list_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_CMap_ClassRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->size = size_; \ - clazz->init = init_; \ - clazz->done = done_; \ - clazz->char_index = char_index_; \ - clazz->char_next = char_next_; \ - clazz->char_var_index = char_var_index_; \ - clazz->char_var_default = char_var_default_; \ - clazz->variant_list = variant_list_; \ - clazz->charvariant_list = charvariant_list_; \ - clazz->variantchar_list = variantchar_list_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /* create a new charmap and add it to charmap->face */ - FT_BASE( FT_Error ) - FT_CMap_New( FT_CMap_Class clazz, - FT_Pointer init_data, - FT_CharMap charmap, - FT_CMap *acmap ); - - /* destroy a charmap and remove it from face's list */ - FT_BASE( void ) - FT_CMap_Done( FT_CMap cmap ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Face_InternalRec */ - /* */ - /* <Description> */ - /* This structure contains the internal fields of each FT_Face */ - /* object. These fields may change between different releases of */ - /* FreeType. */ - /* */ - /* <Fields> */ - /* max_points :: */ - /* The maximum number of points used to store the vectorial outline */ - /* of any glyph in this face. If this value cannot be known in */ - /* advance, or if the face isn't scalable, this should be set to 0. */ - /* Only relevant for scalable formats. */ - /* */ - /* max_contours :: */ - /* The maximum number of contours used to store the vectorial */ - /* outline of any glyph in this face. If this value cannot be */ - /* known in advance, or if the face isn't scalable, this should be */ - /* set to 0. Only relevant for scalable formats. */ - /* */ - /* transform_matrix :: */ - /* A 2x2 matrix of 16.16 coefficients used to transform glyph */ - /* outlines after they are loaded from the font. Only used by the */ - /* convenience functions. */ - /* */ - /* transform_delta :: */ - /* A translation vector used to transform glyph outlines after they */ - /* are loaded from the font. Only used by the convenience */ - /* functions. */ - /* */ - /* transform_flags :: */ - /* Some flags used to classify the transform. Only used by the */ - /* convenience functions. */ - /* */ - /* services :: */ - /* A cache for frequently used services. It should be only */ - /* accessed with the macro `FT_FACE_LOOKUP_SERVICE'. */ - /* */ - /* incremental_interface :: */ - /* If non-null, the interface through which glyph data and metrics */ - /* are loaded incrementally for faces that do not provide all of */ - /* this data when first opened. This field exists only if */ - /* @FT_CONFIG_OPTION_INCREMENTAL is defined. */ - /* */ - /* ignore_unpatented_hinter :: */ - /* This boolean flag instructs the glyph loader to ignore the */ - /* native font hinter, if one is found. This is exclusively used */ - /* in the case when the unpatented hinter is compiled within the */ - /* library. */ - /* */ - /* refcount :: */ - /* A counter initialized to~1 at the time an @FT_Face structure is */ - /* created. @FT_Reference_Face increments this counter, and */ - /* @FT_Done_Face only destroys a face if the counter is~1, */ - /* otherwise it simply decrements it. */ - /* */ - typedef struct FT_Face_InternalRec_ - { - FT_Matrix transform_matrix; - FT_Vector transform_delta; - FT_Int transform_flags; - - FT_ServiceCacheRec services; - -#ifdef FT_CONFIG_OPTION_INCREMENTAL - FT_Incremental_InterfaceRec* incremental_interface; -#endif - - FT_Bool ignore_unpatented_hinter; - FT_Int refcount; - - } FT_Face_InternalRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Slot_InternalRec */ - /* */ - /* <Description> */ - /* This structure contains the internal fields of each FT_GlyphSlot */ - /* object. These fields may change between different releases of */ - /* FreeType. */ - /* */ - /* <Fields> */ - /* loader :: The glyph loader object used to load outlines */ - /* into the glyph slot. */ - /* */ - /* flags :: Possible values are zero or */ - /* FT_GLYPH_OWN_BITMAP. The latter indicates */ - /* that the FT_GlyphSlot structure owns the */ - /* bitmap buffer. */ - /* */ - /* glyph_transformed :: Boolean. Set to TRUE when the loaded glyph */ - /* must be transformed through a specific */ - /* font transformation. This is _not_ the same */ - /* as the face transform set through */ - /* FT_Set_Transform(). */ - /* */ - /* glyph_matrix :: The 2x2 matrix corresponding to the glyph */ - /* transformation, if necessary. */ - /* */ - /* glyph_delta :: The 2d translation vector corresponding to */ - /* the glyph transformation, if necessary. */ - /* */ - /* glyph_hints :: Format-specific glyph hints management. */ - /* */ - -#define FT_GLYPH_OWN_BITMAP 0x1 - - typedef struct FT_Slot_InternalRec_ - { - FT_GlyphLoader loader; - FT_UInt flags; - FT_Bool glyph_transformed; - FT_Matrix glyph_matrix; - FT_Vector glyph_delta; - void* glyph_hints; - - } FT_GlyphSlot_InternalRec; - - -#if 0 - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_InternalRec */ - /* */ - /* <Description> */ - /* This structure contains the internal fields of each FT_Size */ - /* object. Currently, it's empty. */ - /* */ - /*************************************************************************/ - - typedef struct FT_Size_InternalRec_ - { - /* empty */ - - } FT_Size_InternalRec; - -#endif - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** M O D U L E S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ModuleRec */ - /* */ - /* <Description> */ - /* A module object instance. */ - /* */ - /* <Fields> */ - /* clazz :: A pointer to the module's class. */ - /* */ - /* library :: A handle to the parent library object. */ - /* */ - /* memory :: A handle to the memory manager. */ - /* */ - typedef struct FT_ModuleRec_ - { - FT_Module_Class* clazz; - FT_Library library; - FT_Memory memory; - - } FT_ModuleRec; - - - /* typecast an object to an FT_Module */ -#define FT_MODULE( x ) ((FT_Module)( x )) -#define FT_MODULE_CLASS( x ) FT_MODULE( x )->clazz -#define FT_MODULE_LIBRARY( x ) FT_MODULE( x )->library -#define FT_MODULE_MEMORY( x ) FT_MODULE( x )->memory - - -#define FT_MODULE_IS_DRIVER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_FONT_DRIVER ) - -#define FT_MODULE_IS_RENDERER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_RENDERER ) - -#define FT_MODULE_IS_HINTER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_HINTER ) - -#define FT_MODULE_IS_STYLER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_STYLER ) - -#define FT_DRIVER_IS_SCALABLE( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_DRIVER_SCALABLE ) - -#define FT_DRIVER_USES_OUTLINES( x ) !( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_DRIVER_NO_OUTLINES ) - -#define FT_DRIVER_HAS_HINTER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_DRIVER_HAS_HINTER ) - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Module_Interface */ - /* */ - /* <Description> */ - /* Finds a module and returns its specific interface as a typeless */ - /* pointer. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object. */ - /* */ - /* module_name :: The module's name (as an ASCII string). */ - /* */ - /* <Return> */ - /* A module-specific interface if available, 0 otherwise. */ - /* */ - /* <Note> */ - /* You should better be familiar with FreeType internals to know */ - /* which module to look for, and what its interface is :-) */ - /* */ - FT_BASE( const void* ) - FT_Get_Module_Interface( FT_Library library, - const char* mod_name ); - - FT_BASE( FT_Pointer ) - ft_module_get_service( FT_Module module, - const char* service_id ); - - /* */ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** F A C E, S I Z E & G L Y P H S L O T O B J E C T S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - /* a few macros used to perform easy typecasts with minimal brain damage */ - -#define FT_FACE( x ) ((FT_Face)(x)) -#define FT_SIZE( x ) ((FT_Size)(x)) -#define FT_SLOT( x ) ((FT_GlyphSlot)(x)) - -#define FT_FACE_DRIVER( x ) FT_FACE( x )->driver -#define FT_FACE_LIBRARY( x ) FT_FACE_DRIVER( x )->root.library -#define FT_FACE_MEMORY( x ) FT_FACE( x )->memory -#define FT_FACE_STREAM( x ) FT_FACE( x )->stream - -#define FT_SIZE_FACE( x ) FT_SIZE( x )->face -#define FT_SLOT_FACE( x ) FT_SLOT( x )->face - -#define FT_FACE_SLOT( x ) FT_FACE( x )->glyph -#define FT_FACE_SIZE( x ) FT_FACE( x )->size - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_GlyphSlot */ - /* */ - /* <Description> */ - /* It is sometimes useful to have more than one glyph slot for a */ - /* given face object. This function is used to create additional */ - /* slots. All of them are automatically discarded when the face is */ - /* destroyed. */ - /* */ - /* <Input> */ - /* face :: A handle to a parent face object. */ - /* */ - /* <Output> */ - /* aslot :: A handle to a new glyph slot object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - FT_BASE( FT_Error ) - FT_New_GlyphSlot( FT_Face face, - FT_GlyphSlot *aslot ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_GlyphSlot */ - /* */ - /* <Description> */ - /* Destroys a given glyph slot. Remember however that all slots are */ - /* automatically destroyed with its parent. Using this function is */ - /* not always mandatory. */ - /* */ - /* <Input> */ - /* slot :: A handle to a target glyph slot. */ - /* */ - FT_BASE( void ) - FT_Done_GlyphSlot( FT_GlyphSlot slot ); - - /* */ - -#define FT_REQUEST_WIDTH( req ) \ - ( (req)->horiResolution \ - ? (FT_Pos)( (req)->width * (req)->horiResolution + 36 ) / 72 \ - : (req)->width ) - -#define FT_REQUEST_HEIGHT( req ) \ - ( (req)->vertResolution \ - ? (FT_Pos)( (req)->height * (req)->vertResolution + 36 ) / 72 \ - : (req)->height ) - - - /* Set the metrics according to a bitmap strike. */ - FT_BASE( void ) - FT_Select_Metrics( FT_Face face, - FT_ULong strike_index ); - - - /* Set the metrics according to a size request. */ - FT_BASE( void ) - FT_Request_Metrics( FT_Face face, - FT_Size_Request req ); - - - /* Match a size request against `available_sizes'. */ - FT_BASE( FT_Error ) - FT_Match_Size( FT_Face face, - FT_Size_Request req, - FT_Bool ignore_width, - FT_ULong* size_index ); - - - /* Use the horizontal metrics to synthesize the vertical metrics. */ - /* If `advance' is zero, it is also synthesized. */ - FT_BASE( void ) - ft_synthesize_vertical_metrics( FT_Glyph_Metrics* metrics, - FT_Pos advance ); - - - /* Free the bitmap of a given glyphslot when needed (i.e., only when it */ - /* was allocated with ft_glyphslot_alloc_bitmap). */ - FT_BASE( void ) - ft_glyphslot_free_bitmap( FT_GlyphSlot slot ); - - - /* Allocate a new bitmap buffer in a glyph slot. */ - FT_BASE( FT_Error ) - ft_glyphslot_alloc_bitmap( FT_GlyphSlot slot, - FT_ULong size ); - - - /* Set the bitmap buffer in a glyph slot to a given pointer. The buffer */ - /* will not be freed by a later call to ft_glyphslot_free_bitmap. */ - FT_BASE( void ) - ft_glyphslot_set_bitmap( FT_GlyphSlot slot, - FT_Byte* buffer ); - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** R E N D E R E R S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - -#define FT_RENDERER( x ) ((FT_Renderer)( x )) -#define FT_GLYPH( x ) ((FT_Glyph)( x )) -#define FT_BITMAP_GLYPH( x ) ((FT_BitmapGlyph)( x )) -#define FT_OUTLINE_GLYPH( x ) ((FT_OutlineGlyph)( x )) - - - typedef struct FT_RendererRec_ - { - FT_ModuleRec root; - FT_Renderer_Class* clazz; - FT_Glyph_Format glyph_format; - FT_Glyph_Class glyph_class; - - FT_Raster raster; - FT_Raster_Render_Func raster_render; - FT_Renderer_RenderFunc render; - - } FT_RendererRec; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** F O N T D R I V E R S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* typecast a module into a driver easily */ -#define FT_DRIVER( x ) ((FT_Driver)(x)) - - /* typecast a module as a driver, and get its driver class */ -#define FT_DRIVER_CLASS( x ) FT_DRIVER( x )->clazz - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_DriverRec */ - /* */ - /* <Description> */ - /* The root font driver class. A font driver is responsible for */ - /* managing and loading font files of a given format. */ - /* */ - /* <Fields> */ - /* root :: Contains the fields of the root module class. */ - /* */ - /* clazz :: A pointer to the font driver's class. Note that */ - /* this is NOT root.clazz. `class' wasn't used */ - /* as it is a reserved word in C++. */ - /* */ - /* faces_list :: The list of faces currently opened by this */ - /* driver. */ - /* */ - /* glyph_loader :: The glyph loader for all faces managed by this */ - /* driver. This object isn't defined for unscalable */ - /* formats. */ - /* */ - typedef struct FT_DriverRec_ - { - FT_ModuleRec root; - FT_Driver_Class clazz; - FT_ListRec faces_list; - FT_GlyphLoader glyph_loader; - - } FT_DriverRec; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** L I B R A R I E S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* This hook is used by the TrueType debugger. It must be set to an */ - /* alternate truetype bytecode interpreter function. */ -#define FT_DEBUG_HOOK_TRUETYPE 0 - - - /* Set this debug hook to a non-null pointer to force unpatented hinting */ - /* for all faces when both TT_USE_BYTECODE_INTERPRETER and */ - /* TT_CONFIG_OPTION_UNPATENTED_HINTING are defined. This is only used */ - /* during debugging. */ -#define FT_DEBUG_HOOK_UNPATENTED_HINTING 1 - - - typedef void (*FT_Bitmap_LcdFilterFunc)( FT_Bitmap* bitmap, - FT_Render_Mode render_mode, - FT_Library library ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_LibraryRec */ - /* */ - /* <Description> */ - /* The FreeType library class. This is the root of all FreeType */ - /* data. Use FT_New_Library() to create a library object, and */ - /* FT_Done_Library() to discard it and all child objects. */ - /* */ - /* <Fields> */ - /* memory :: The library's memory object. Manages memory */ - /* allocation. */ - /* */ - /* version_major :: The major version number of the library. */ - /* */ - /* version_minor :: The minor version number of the library. */ - /* */ - /* version_patch :: The current patch level of the library. */ - /* */ - /* num_modules :: The number of modules currently registered */ - /* within this library. This is set to 0 for new */ - /* libraries. New modules are added through the */ - /* FT_Add_Module() API function. */ - /* */ - /* modules :: A table used to store handles to the currently */ - /* registered modules. Note that each font driver */ - /* contains a list of its opened faces. */ - /* */ - /* renderers :: The list of renderers currently registered */ - /* within the library. */ - /* */ - /* cur_renderer :: The current outline renderer. This is a */ - /* shortcut used to avoid parsing the list on */ - /* each call to FT_Outline_Render(). It is a */ - /* handle to the current renderer for the */ - /* FT_GLYPH_FORMAT_OUTLINE format. */ - /* */ - /* auto_hinter :: XXX */ - /* */ - /* raster_pool :: The raster object's render pool. This can */ - /* ideally be changed dynamically at run-time. */ - /* */ - /* raster_pool_size :: The size of the render pool in bytes. */ - /* */ - /* debug_hooks :: XXX */ - /* */ - /* lcd_filter :: If subpixel rendering is activated, the */ - /* selected LCD filter mode. */ - /* */ - /* lcd_extra :: If subpixel rendering is activated, the number */ - /* of extra pixels needed for the LCD filter. */ - /* */ - /* lcd_weights :: If subpixel rendering is activated, the LCD */ - /* filter weights, if any. */ - /* */ - /* lcd_filter_func :: If subpixel rendering is activated, the LCD */ - /* filtering callback function. */ - /* */ - /* pic_container :: Contains global structs and tables, instead */ - /* of defining them globallly. */ - /* */ - /* refcount :: A counter initialized to~1 at the time an */ - /* @FT_Library structure is created. */ - /* @FT_Reference_Library increments this counter, */ - /* and @FT_Done_Library only destroys a library */ - /* if the counter is~1, otherwise it simply */ - /* decrements it. */ - /* */ - typedef struct FT_LibraryRec_ - { - FT_Memory memory; /* library's memory manager */ - - FT_Int version_major; - FT_Int version_minor; - FT_Int version_patch; - - FT_UInt num_modules; - FT_Module modules[FT_MAX_MODULES]; /* module objects */ - - FT_ListRec renderers; /* list of renderers */ - FT_Renderer cur_renderer; /* current outline renderer */ - FT_Module auto_hinter; - - FT_Byte* raster_pool; /* scan-line conversion */ - /* render pool */ - FT_ULong raster_pool_size; /* size of render pool in bytes */ - - FT_DebugHook_Func debug_hooks[4]; - -#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING - FT_LcdFilter lcd_filter; - FT_Int lcd_extra; /* number of extra pixels */ - FT_Byte lcd_weights[7]; /* filter weights, if any */ - FT_Bitmap_LcdFilterFunc lcd_filter_func; /* filtering callback */ -#endif - -#ifdef FT_CONFIG_OPTION_PIC - FT_PIC_Container pic_container; -#endif - - FT_Int refcount; - - } FT_LibraryRec; - - - FT_BASE( FT_Renderer ) - FT_Lookup_Renderer( FT_Library library, - FT_Glyph_Format format, - FT_ListNode* node ); - - FT_BASE( FT_Error ) - FT_Render_Glyph_Internal( FT_Library library, - FT_GlyphSlot slot, - FT_Render_Mode render_mode ); - - typedef const char* - (*FT_Face_GetPostscriptNameFunc)( FT_Face face ); - - typedef FT_Error - (*FT_Face_GetGlyphNameFunc)( FT_Face face, - FT_UInt glyph_index, - FT_Pointer buffer, - FT_UInt buffer_max ); - - typedef FT_UInt - (*FT_Face_GetGlyphNameIndexFunc)( FT_Face face, - FT_String* glyph_name ); - - -#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Memory */ - /* */ - /* <Description> */ - /* Creates a new memory object. */ - /* */ - /* <Return> */ - /* A pointer to the new memory object. 0 in case of error. */ - /* */ - FT_BASE( FT_Memory ) - FT_New_Memory( void ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Memory */ - /* */ - /* <Description> */ - /* Discards memory manager. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory manager. */ - /* */ - FT_BASE( void ) - FT_Done_Memory( FT_Memory memory ); - -#endif /* !FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM */ - - - /* Define default raster's interface. The default raster is located in */ - /* `src/base/ftraster.c'. */ - /* */ - /* Client applications can register new rasters through the */ - /* FT_Set_Raster() API. */ - -#ifndef FT_NO_DEFAULT_RASTER - FT_EXPORT_VAR( FT_Raster_Funcs ) ft_default_raster; -#endif - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** P I C S U P P O R T ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* PIC support macros for ftimage.h */ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DEFINE_OUTLINE_FUNCS */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Outline_Funcs struct. */ - /* When FT_CONFIG_OPTION_PIC is defined an init funtion will need to */ - /* be called with a pre-allocated structure to be filled. */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_OUTLINE_FUNCS( \ - class_, \ - move_to_, \ - line_to_, \ - conic_to_, \ - cubic_to_, \ - shift_, \ - delta_ ) \ - static const FT_Outline_Funcs class_ = \ - { \ - move_to_, \ - line_to_, \ - conic_to_, \ - cubic_to_, \ - shift_, \ - delta_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_OUTLINE_FUNCS( \ - class_, \ - move_to_, \ - line_to_, \ - conic_to_, \ - cubic_to_, \ - shift_, \ - delta_ ) \ - static FT_Error \ - Init_Class_ ## class_( FT_Outline_Funcs* clazz ) \ - { \ - clazz->move_to = move_to_; \ - clazz->line_to = line_to_; \ - clazz->conic_to = conic_to_; \ - clazz->cubic_to = cubic_to_; \ - clazz->shift = shift_; \ - clazz->delta = delta_; \ - \ - return FT_Err_Ok; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DEFINE_RASTER_FUNCS */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Raster_Funcs struct. */ - /* When FT_CONFIG_OPTION_PIC is defined an init funtion will need to */ - /* be called with a pre-allocated structure to be filled. */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_RASTER_FUNCS( \ - class_, \ - glyph_format_, \ - raster_new_, \ - raster_reset_, \ - raster_set_mode_, \ - raster_render_, \ - raster_done_ ) \ - const FT_Raster_Funcs class_ = \ - { \ - glyph_format_, \ - raster_new_, \ - raster_reset_, \ - raster_set_mode_, \ - raster_render_, \ - raster_done_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_RASTER_FUNCS( \ - class_, \ - glyph_format_, \ - raster_new_, \ - raster_reset_, \ - raster_set_mode_, \ - raster_render_, \ - raster_done_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Raster_Funcs* clazz ) \ - { \ - clazz->glyph_format = glyph_format_; \ - clazz->raster_new = raster_new_; \ - clazz->raster_reset = raster_reset_; \ - clazz->raster_set_mode = raster_set_mode_; \ - clazz->raster_render = raster_render_; \ - clazz->raster_done = raster_done_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /* PIC support macros for ftrender.h */ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DEFINE_GLYPH */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Glyph_Class struct. */ - /* When FT_CONFIG_OPTION_PIC is defined an init funtion will need to */ - /* be called with a pre-allocated stcture to be filled. */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_GLYPH( \ - class_, \ - size_, \ - format_, \ - init_, \ - done_, \ - copy_, \ - transform_, \ - bbox_, \ - prepare_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Glyph_Class class_ = \ - { \ - size_, \ - format_, \ - init_, \ - done_, \ - copy_, \ - transform_, \ - bbox_, \ - prepare_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_GLYPH( \ - class_, \ - size_, \ - format_, \ - init_, \ - done_, \ - copy_, \ - transform_, \ - bbox_, \ - prepare_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Glyph_Class* clazz ) \ - { \ - clazz->glyph_size = size_; \ - clazz->glyph_format = format_; \ - clazz->glyph_init = init_; \ - clazz->glyph_done = done_; \ - clazz->glyph_copy = copy_; \ - clazz->glyph_transform = transform_; \ - clazz->glyph_bbox = bbox_; \ - clazz->glyph_prepare = prepare_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DECLARE_RENDERER */ - /* */ - /* <Description> */ - /* Used to create a forward declaration of a */ - /* FT_Renderer_Class struct instance. */ - /* */ - /* <Macro> */ - /* FT_DEFINE_RENDERER */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Renderer_Class struct. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is defined a `create' funtion will need */ - /* to be called with a pointer where the allocated structure is */ - /* returned. And when it is no longer needed a `destroy' function */ - /* needs to be called to release that allocation. */ - /* `fcinit.c' (ft_create_default_module_classes) already contains */ - /* a mechanism to call these functions for the default modules */ - /* described in `ftmodule.h'. */ - /* */ - /* Notice that the created `create' and `destroy' functions call */ - /* `pic_init' and `pic_free' to allow you to manually allocate and */ - /* initialize any additional global data, like a module specific */ - /* interface, and put them in the global pic container defined in */ - /* `ftpic.h'. If you don't need them just implement the functions as */ - /* empty to resolve the link error. Also the `pic_init' and */ - /* `pic_free' functions should be declared in `pic.h', to be referred */ - /* by the renderer definition calling `FT_DEFINE_RENDERER' in the */ - /* following. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DECLARE_RENDERER( class_ ) \ - FT_EXPORT_VAR( const FT_Renderer_Class ) class_; - -#define FT_DEFINE_RENDERER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - glyph_format_, \ - render_glyph_, \ - transform_glyph_, \ - get_glyph_cbox_, \ - set_mode_, \ - raster_class_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Renderer_Class class_ = \ - { \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - glyph_format_, \ - \ - render_glyph_, \ - transform_glyph_, \ - get_glyph_cbox_, \ - set_mode_, \ - \ - raster_class_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DECLARE_RENDERER( class_ ) FT_DECLARE_MODULE( class_ ) - -#define FT_DEFINE_RENDERER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - glyph_format_, \ - render_glyph_, \ - transform_glyph_, \ - get_glyph_cbox_, \ - set_mode_, \ - raster_class_ ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_Module_Class* clazz ) \ - { \ - FT_Renderer_Class* rclazz = (FT_Renderer_Class*)clazz; \ - FT_Memory memory = library->memory; \ - \ - \ - class_ ## _pic_free( library ); \ - if ( rclazz ) \ - FT_FREE( rclazz ); \ - } \ - \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_Module_Class** output_class ) \ - { \ - FT_Renderer_Class* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \ - return error; \ - \ - error = class_ ## _pic_init( library ); \ - if ( error ) \ - { \ - FT_FREE( clazz ); \ - return error; \ - } \ - \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - \ - clazz->glyph_format = glyph_format_; \ - \ - clazz->render_glyph = render_glyph_; \ - clazz->transform_glyph = transform_glyph_; \ - clazz->get_glyph_cbox = get_glyph_cbox_; \ - clazz->set_mode = set_mode_; \ - \ - clazz->raster_class = raster_class_; \ - \ - *output_class = (FT_Module_Class*)clazz; \ - \ - return FT_Err_Ok; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /* PIC support macros for ftmodapi.h **/ - - -#ifdef FT_CONFIG_OPTION_PIC - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Creator */ - /* */ - /* <Description> */ - /* A function used to create (allocate) a new module class object. */ - /* The object's members are initialized, but the module itself is */ - /* not. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory manager. */ - /* output_class :: Initialized with the newly allocated class. */ - /* */ - typedef FT_Error - (*FT_Module_Creator)( FT_Memory memory, - FT_Module_Class** output_class ); - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Destroyer */ - /* */ - /* <Description> */ - /* A function used to destroy (deallocate) a module class object. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory manager. */ - /* clazz :: Module class to destroy. */ - /* */ - typedef void - (*FT_Module_Destroyer)( FT_Memory memory, - FT_Module_Class* clazz ); - -#endif - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DECLARE_MODULE */ - /* */ - /* <Description> */ - /* Used to create a forward declaration of a */ - /* FT_Module_Class struct instance. */ - /* */ - /* <Macro> */ - /* FT_DEFINE_MODULE */ - /* */ - /* <Description> */ - /* Used to initialize an instance of an FT_Module_Class struct. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is defined a `create' funtion needs to */ - /* be called with a pointer where the allocated structure is */ - /* returned. And when it is no longer needed a `destroy' function */ - /* needs to be called to release that allocation. */ - /* `fcinit.c' (ft_create_default_module_classes) already contains */ - /* a mechanism to call these functions for the default modules */ - /* described in `ftmodule.h'. */ - /* */ - /* Notice that the created `create' and `destroy' functions call */ - /* `pic_init' and `pic_free' to allow you to manually allocate and */ - /* initialize any additional global data, like a module specific */ - /* interface, and put them in the global pic container defined in */ - /* `ftpic.h'. If you don't need them just implement the functions as */ - /* empty to resolve the link error. Also the `pic_init' and */ - /* `pic_free' functions should be declared in `pic.h', to be referred */ - /* by the module definition calling `FT_DEFINE_MODULE' in the */ - /* following. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ - /* <Macro> */ - /* FT_DEFINE_ROOT_MODULE */ - /* */ - /* <Description> */ - /* Used to initialize an instance of an FT_Module_Class struct inside */ - /* another struct that contains it or in a function that initializes */ - /* that containing struct. */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DECLARE_MODULE( class_ ) \ - FT_CALLBACK_TABLE \ - const FT_Module_Class class_; - -#define FT_DEFINE_ROOT_MODULE( \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - { \ - flags_, \ - size_, \ - \ - name_, \ - version_, \ - requires_, \ - \ - interface_, \ - \ - init_, \ - done_, \ - get_interface_, \ - }, - -#define FT_DEFINE_MODULE( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Module_Class class_ = \ - { \ - flags_, \ - size_, \ - \ - name_, \ - version_, \ - requires_, \ - \ - interface_, \ - \ - init_, \ - done_, \ - get_interface_, \ - }; - - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DECLARE_MODULE( class_ ) \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_Module_Class** output_class ); \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_Module_Class* clazz ); - -#define FT_DEFINE_ROOT_MODULE( \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - clazz->root.module_flags = flags_; \ - clazz->root.module_size = size_; \ - clazz->root.module_name = name_; \ - clazz->root.module_version = version_; \ - clazz->root.module_requires = requires_; \ - \ - clazz->root.module_interface = interface_; \ - \ - clazz->root.module_init = init_; \ - clazz->root.module_done = done_; \ - clazz->root.get_interface = get_interface_; - -#define FT_DEFINE_MODULE( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_Module_Class* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - class_ ## _pic_free( library ); \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_Module_Class** output_class ) \ - { \ - FT_Memory memory = library->memory; \ - FT_Module_Class* clazz = NULL; \ - FT_Error error; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \ - return error; \ - error = class_ ## _pic_init( library ); \ - if ( error ) \ - { \ - FT_FREE( clazz ); \ - return error; \ - } \ - \ - clazz->module_flags = flags_; \ - clazz->module_size = size_; \ - clazz->module_name = name_; \ - clazz->module_version = version_; \ - clazz->module_requires = requires_; \ - \ - clazz->module_interface = interface_; \ - \ - clazz->module_init = init_; \ - clazz->module_done = done_; \ - clazz->get_interface = get_interface_; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - -FT_END_HEADER - -#endif /* __FTOBJS_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/ftpic.h b/lib/linux/include/internal/ftpic.h deleted file mode 100644 index 485ce7a..0000000 --- a/lib/linux/include/internal/ftpic.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftpic.h */ -/* */ -/* The FreeType position independent code services (declaration). */ -/* */ -/* Copyright 2009, 2012 by */ -/* Oran Agra and Mickey Gabel. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - /*************************************************************************/ - /* */ - /* Modules that ordinarily have const global data that need address */ - /* can instead define pointers here. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTPIC_H__ -#define __FTPIC_H__ - - -FT_BEGIN_HEADER - -#ifdef FT_CONFIG_OPTION_PIC - - typedef struct FT_PIC_Container_ - { - /* pic containers for base */ - void* base; - - /* pic containers for modules */ - void* autofit; - void* cff; - void* pshinter; - void* psnames; - void* raster; - void* sfnt; - void* smooth; - void* truetype; - - } FT_PIC_Container; - - - /* Initialize the various function tables, structs, etc. */ - /* stored in the container. */ - FT_BASE( FT_Error ) - ft_pic_container_init( FT_Library library ); - - - /* Destroy the contents of the container. */ - FT_BASE( void ) - ft_pic_container_destroy( FT_Library library ); - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - -FT_END_HEADER - -#endif /* __FTPIC_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/ftrfork.h b/lib/linux/include/internal/ftrfork.h deleted file mode 100644 index d750cbe..0000000 --- a/lib/linux/include/internal/ftrfork.h +++ /dev/null @@ -1,266 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftrfork.h */ -/* */ -/* Embedded resource forks accessor (specification). */ -/* */ -/* Copyright 2004, 2006, 2007, 2012, 2013 by */ -/* Masatake YAMATO and Redhat K.K. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/***************************************************************************/ -/* Development of the code in this file is support of */ -/* Information-technology Promotion Agency, Japan. */ -/***************************************************************************/ - - -#ifndef __FTRFORK_H__ -#define __FTRFORK_H__ - - -#include <ft2build.h> -#include FT_INTERNAL_OBJECTS_H - - -FT_BEGIN_HEADER - - - /* Number of guessing rules supported in `FT_Raccess_Guess'. */ - /* Don't forget to increment the number if you add a new guessing rule. */ -#define FT_RACCESS_N_RULES 9 - - - /* A structure to describe a reference in a resource by its resource ID */ - /* and internal offset. The `POST' resource expects to be concatenated */ - /* by the order of resource IDs instead of its appearance in the file. */ - - typedef struct FT_RFork_Ref_ - { - FT_UShort res_id; - FT_ULong offset; - - } FT_RFork_Ref; - -#ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK - typedef FT_Error - (*ft_raccess_guess_func)( FT_Library library, - FT_Stream stream, - char *base_file_name, - char **result_file_name, - FT_Long *result_offset ); - - typedef enum FT_RFork_Rule_ { - FT_RFork_Rule_invalid = -2, - FT_RFork_Rule_uknown, /* -1 */ - FT_RFork_Rule_apple_double, - FT_RFork_Rule_apple_single, - FT_RFork_Rule_darwin_ufs_export, - FT_RFork_Rule_darwin_newvfs, - FT_RFork_Rule_darwin_hfsplus, - FT_RFork_Rule_vfat, - FT_RFork_Rule_linux_cap, - FT_RFork_Rule_linux_double, - FT_RFork_Rule_linux_netatalk - } FT_RFork_Rule; - - /* For fast translation between rule index and rule type, - * the macros FT_RFORK_xxx should be kept consistent with - * the raccess_guess_funcs table - */ - typedef struct ft_raccess_guess_rec_ { - ft_raccess_guess_func func; - FT_RFork_Rule type; - } ft_raccess_guess_rec; - -#ifndef FT_CONFIG_OPTION_PIC - - /* this array is a storage in non-PIC mode, so ; is needed in END */ -#define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type ) \ - const type name[] = { -#define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix ) \ - { raccess_guess_ ## func_suffix, \ - FT_RFork_Rule_ ## type_suffix }, -#define CONST_FT_RFORK_RULE_ARRAY_END }; - -#else /* FT_CONFIG_OPTION_PIC */ - - /* this array is a function in PIC mode, so no ; is needed in END */ -#define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type ) \ - void \ - FT_Init_Table_ ## name( type* storage ) \ - { \ - type* local = storage; \ - \ - \ - int i = 0; -#define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix ) \ - local[i].func = raccess_guess_ ## func_suffix; \ - local[i].type = FT_RFork_Rule_ ## type_suffix; \ - i++; -#define CONST_FT_RFORK_RULE_ARRAY_END } - -#endif /* FT_CONFIG_OPTION_PIC */ - -#endif /* FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK */ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Raccess_Guess */ - /* */ - /* <Description> */ - /* Guess a file name and offset where the actual resource fork is */ - /* stored. The macro FT_RACCESS_N_RULES holds the number of */ - /* guessing rules; the guessed result for the Nth rule is */ - /* represented as a triplet: a new file name (new_names[N]), a file */ - /* offset (offsets[N]), and an error code (errors[N]). */ - /* */ - /* <Input> */ - /* library :: */ - /* A FreeType library instance. */ - /* */ - /* stream :: */ - /* A file stream containing the resource fork. */ - /* */ - /* base_name :: */ - /* The (base) file name of the resource fork used for some */ - /* guessing rules. */ - /* */ - /* <Output> */ - /* new_names :: */ - /* An array of guessed file names in which the resource forks may */ - /* exist. If `new_names[N]' is NULL, the guessed file name is */ - /* equal to `base_name'. */ - /* */ - /* offsets :: */ - /* An array of guessed file offsets. `offsets[N]' holds the file */ - /* offset of the possible start of the resource fork in file */ - /* `new_names[N]'. */ - /* */ - /* errors :: */ - /* An array of FreeType error codes. `errors[N]' is the error */ - /* code of Nth guessing rule function. If `errors[N]' is not */ - /* FT_Err_Ok, `new_names[N]' and `offsets[N]' are meaningless. */ - /* */ - FT_BASE( void ) - FT_Raccess_Guess( FT_Library library, - FT_Stream stream, - char* base_name, - char** new_names, - FT_Long* offsets, - FT_Error* errors ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Raccess_Get_HeaderInfo */ - /* */ - /* <Description> */ - /* Get the information from the header of resource fork. The */ - /* information includes the file offset where the resource map */ - /* starts, and the file offset where the resource data starts. */ - /* `FT_Raccess_Get_DataOffsets' requires these two data. */ - /* */ - /* <Input> */ - /* library :: */ - /* A FreeType library instance. */ - /* */ - /* stream :: */ - /* A file stream containing the resource fork. */ - /* */ - /* rfork_offset :: */ - /* The file offset where the resource fork starts. */ - /* */ - /* <Output> */ - /* map_offset :: */ - /* The file offset where the resource map starts. */ - /* */ - /* rdata_pos :: */ - /* The file offset where the resource data starts. */ - /* */ - /* <Return> */ - /* FreeType error code. FT_Err_Ok means success. */ - /* */ - FT_BASE( FT_Error ) - FT_Raccess_Get_HeaderInfo( FT_Library library, - FT_Stream stream, - FT_Long rfork_offset, - FT_Long *map_offset, - FT_Long *rdata_pos ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Raccess_Get_DataOffsets */ - /* */ - /* <Description> */ - /* Get the data offsets for a tag in a resource fork. Offsets are */ - /* stored in an array because, in some cases, resources in a resource */ - /* fork have the same tag. */ - /* */ - /* <Input> */ - /* library :: */ - /* A FreeType library instance. */ - /* */ - /* stream :: */ - /* A file stream containing the resource fork. */ - /* */ - /* map_offset :: */ - /* The file offset where the resource map starts. */ - /* */ - /* rdata_pos :: */ - /* The file offset where the resource data starts. */ - /* */ - /* tag :: */ - /* The resource tag. */ - /* */ - /* sort_by_res_id :: */ - /* A Boolean to sort the fragmented resource by their ids. */ - /* The fragmented resources for `POST' resource should be sorted */ - /* to restore Type1 font properly. For `snft' resources, sorting */ - /* may induce a different order of the faces in comparison to that */ - /* by QuickDraw API. */ - /* */ - /* <Output> */ - /* offsets :: */ - /* The stream offsets for the resource data specified by `tag'. */ - /* This array is allocated by the function, so you have to call */ - /* @ft_mem_free after use. */ - /* */ - /* count :: */ - /* The length of offsets array. */ - /* */ - /* <Return> */ - /* FreeType error code. FT_Err_Ok means success. */ - /* */ - /* <Note> */ - /* Normally you should use `FT_Raccess_Get_HeaderInfo' to get the */ - /* value for `map_offset' and `rdata_pos'. */ - /* */ - FT_BASE( FT_Error ) - FT_Raccess_Get_DataOffsets( FT_Library library, - FT_Stream stream, - FT_Long map_offset, - FT_Long rdata_pos, - FT_Long tag, - FT_Bool sort_by_res_id, - FT_Long **offsets, - FT_Long *count ); - - -FT_END_HEADER - -#endif /* __FTRFORK_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/ftserv.h b/lib/linux/include/internal/ftserv.h deleted file mode 100644 index 1203ec8..0000000 --- a/lib/linux/include/internal/ftserv.h +++ /dev/null @@ -1,763 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftserv.h */ -/* */ -/* The FreeType services (specification only). */ -/* */ -/* Copyright 2003-2007, 2009, 2012, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - /*************************************************************************/ - /* */ - /* Each module can export one or more `services'. Each service is */ - /* identified by a constant string and modeled by a pointer; the latter */ - /* generally corresponds to a structure containing function pointers. */ - /* */ - /* Note that a service's data cannot be a mere function pointer because */ - /* in C it is possible that function pointers might be implemented */ - /* differently than data pointers (e.g. 48 bits instead of 32). */ - /* */ - /*************************************************************************/ - - -#ifndef __FTSERV_H__ -#define __FTSERV_H__ - - -FT_BEGIN_HEADER - - /* - * @macro: - * FT_FACE_FIND_SERVICE - * - * @description: - * This macro is used to look up a service from a face's driver module. - * - * @input: - * face :: - * The source face handle. - * - * id :: - * A string describing the service as defined in the service's - * header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to - * `multi-masters'). It is automatically prefixed with - * `FT_SERVICE_ID_'. - * - * @output: - * ptr :: - * A variable that receives the service pointer. Will be NULL - * if not found. - */ -#ifdef __cplusplus - -#define FT_FACE_FIND_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ - FT_Pointer _tmp_ = NULL; \ - FT_Pointer* _pptr_ = (FT_Pointer*)&(ptr); \ - \ - \ - if ( module->clazz->get_interface ) \ - _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \ - *_pptr_ = _tmp_; \ - FT_END_STMNT - -#else /* !C++ */ - -#define FT_FACE_FIND_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ - FT_Pointer _tmp_ = NULL; \ - \ - if ( module->clazz->get_interface ) \ - _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \ - ptr = _tmp_; \ - FT_END_STMNT - -#endif /* !C++ */ - - - /* - * @macro: - * FT_FACE_FIND_GLOBAL_SERVICE - * - * @description: - * This macro is used to look up a service from all modules. - * - * @input: - * face :: - * The source face handle. - * - * id :: - * A string describing the service as defined in the service's - * header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to - * `multi-masters'). It is automatically prefixed with - * `FT_SERVICE_ID_'. - * - * @output: - * ptr :: - * A variable that receives the service pointer. Will be NULL - * if not found. - */ -#ifdef __cplusplus - -#define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ - FT_Pointer _tmp_; \ - FT_Pointer* _pptr_ = (FT_Pointer*)&(ptr); \ - \ - \ - _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \ - *_pptr_ = _tmp_; \ - FT_END_STMNT - -#else /* !C++ */ - -#define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ - FT_Pointer _tmp_; \ - \ - \ - _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \ - ptr = _tmp_; \ - FT_END_STMNT - -#endif /* !C++ */ - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** S E R V I C E D E S C R I P T O R S *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /* - * The following structure is used to _describe_ a given service - * to the library. This is useful to build simple static service lists. - */ - typedef struct FT_ServiceDescRec_ - { - const char* serv_id; /* service name */ - const void* serv_data; /* service pointer/data */ - - } FT_ServiceDescRec; - - typedef const FT_ServiceDescRec* FT_ServiceDesc; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DEFINE_SERVICEDESCREC1 */ - /* FT_DEFINE_SERVICEDESCREC2 */ - /* FT_DEFINE_SERVICEDESCREC3 */ - /* FT_DEFINE_SERVICEDESCREC4 */ - /* FT_DEFINE_SERVICEDESCREC5 */ - /* FT_DEFINE_SERVICEDESCREC6 */ - /* FT_DEFINE_SERVICEDESCREC7 */ - /* */ - /* <Description> */ - /* Used to initialize an array of FT_ServiceDescRec structures. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is defined a `create' function needs to */ - /* be called with a pointer to return an allocated array. As soon as */ - /* it is no longer needed, a `destroy' function needs to be called to */ - /* release that allocation. */ - /* */ - /* These functions should be manually called from the `pic_init' and */ - /* `pic_free' functions of your module (see FT_DEFINE_MODULE). */ - /* */ - /* When FT_CONFIG_OPTION_PIC is not defined the array will be */ - /* allocated in the global scope (or the scope where the macro is */ - /* used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICEDESCREC1( class_, \ - serv_id_1, serv_data_1 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC2( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC3( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC4( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { serv_id_4, serv_data_4 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC5( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { serv_id_4, serv_data_4 }, \ - { serv_id_5, serv_data_5 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC6( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5, \ - serv_id_6, serv_data_6 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { serv_id_4, serv_data_4 }, \ - { serv_id_5, serv_data_5 }, \ - { serv_id_6, serv_data_6 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC7( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5, \ - serv_id_6, serv_data_6, \ - serv_id_7, serv_data_7 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { serv_id_4, serv_data_4 }, \ - { serv_id_5, serv_data_5 }, \ - { serv_id_6, serv_data_6 }, \ - { serv_id_7, serv_data_7 }, \ - { NULL, NULL } \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICEDESCREC1( class_, \ - serv_id_1, serv_data_1 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 2 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = NULL; \ - clazz[1].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC2( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 3 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = NULL; \ - clazz[2].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC3( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 4 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = NULL; \ - clazz[3].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC4( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 5 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = serv_id_4; \ - clazz[3].serv_data = serv_data_4; \ - clazz[4].serv_id = NULL; \ - clazz[4].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC5( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 6 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = serv_id_4; \ - clazz[3].serv_data = serv_data_4; \ - clazz[4].serv_id = serv_id_5; \ - clazz[4].serv_data = serv_data_5; \ - clazz[5].serv_id = NULL; \ - clazz[5].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC6( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5, \ - serv_id_6, serv_data_6 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 7 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = serv_id_4; \ - clazz[3].serv_data = serv_data_4; \ - clazz[4].serv_id = serv_id_5; \ - clazz[4].serv_data = serv_data_5; \ - clazz[5].serv_id = serv_id_6; \ - clazz[5].serv_data = serv_data_6; \ - clazz[6].serv_id = NULL; \ - clazz[6].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC7( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5, \ - serv_id_6, serv_data_6, \ - serv_id_7, serv_data_7 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 8 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = serv_id_4; \ - clazz[3].serv_data = serv_data_4; \ - clazz[4].serv_id = serv_id_5; \ - clazz[4].serv_data = serv_data_5; \ - clazz[5].serv_id = serv_id_6; \ - clazz[5].serv_data = serv_data_6; \ - clazz[6].serv_id = serv_id_7; \ - clazz[6].serv_data = serv_data_7; \ - clazz[7].serv_id = NULL; \ - clazz[7].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /* - * Parse a list of FT_ServiceDescRec descriptors and look for - * a specific service by ID. Note that the last element in the - * array must be { NULL, NULL }, and that the function should - * return NULL if the service isn't available. - * - * This function can be used by modules to implement their - * `get_service' method. - */ - FT_BASE( FT_Pointer ) - ft_service_list_lookup( FT_ServiceDesc service_descriptors, - const char* service_id ); - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** S E R V I C E S C A C H E *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /* - * This structure is used to store a cache for several frequently used - * services. It is the type of `face->internal->services'. You - * should only use FT_FACE_LOOKUP_SERVICE to access it. - * - * All fields should have the type FT_Pointer to relax compilation - * dependencies. We assume the developer isn't completely stupid. - * - * Each field must be named `service_XXXX' where `XXX' corresponds to - * the correct FT_SERVICE_ID_XXXX macro. See the definition of - * FT_FACE_LOOKUP_SERVICE below how this is implemented. - * - */ - typedef struct FT_ServiceCacheRec_ - { - FT_Pointer service_POSTSCRIPT_FONT_NAME; - FT_Pointer service_MULTI_MASTERS; - FT_Pointer service_GLYPH_DICT; - FT_Pointer service_PFR_METRICS; - FT_Pointer service_WINFNT; - - } FT_ServiceCacheRec, *FT_ServiceCache; - - - /* - * A magic number used within the services cache. - */ - - /* ensure that value `1' has the same width as a pointer */ -#define FT_SERVICE_UNAVAILABLE ((FT_Pointer)~(FT_PtrDist)1) - - - /* - * @macro: - * FT_FACE_LOOKUP_SERVICE - * - * @description: - * This macro is used to lookup a service from a face's driver module - * using its cache. - * - * @input: - * face:: - * The source face handle containing the cache. - * - * field :: - * The field name in the cache. - * - * id :: - * The service ID. - * - * @output: - * ptr :: - * A variable receiving the service data. NULL if not available. - */ -#ifdef __cplusplus - -#define FT_FACE_LOOKUP_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Pointer svc; \ - FT_Pointer* Pptr = (FT_Pointer*)&(ptr); \ - \ - \ - svc = FT_FACE( face )->internal->services. service_ ## id; \ - if ( svc == FT_SERVICE_UNAVAILABLE ) \ - svc = NULL; \ - else if ( svc == NULL ) \ - { \ - FT_FACE_FIND_SERVICE( face, svc, id ); \ - \ - FT_FACE( face )->internal->services. service_ ## id = \ - (FT_Pointer)( svc != NULL ? svc \ - : FT_SERVICE_UNAVAILABLE ); \ - } \ - *Pptr = svc; \ - FT_END_STMNT - -#else /* !C++ */ - -#define FT_FACE_LOOKUP_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Pointer svc; \ - \ - \ - svc = FT_FACE( face )->internal->services. service_ ## id; \ - if ( svc == FT_SERVICE_UNAVAILABLE ) \ - svc = NULL; \ - else if ( svc == NULL ) \ - { \ - FT_FACE_FIND_SERVICE( face, svc, id ); \ - \ - FT_FACE( face )->internal->services. service_ ## id = \ - (FT_Pointer)( svc != NULL ? svc \ - : FT_SERVICE_UNAVAILABLE ); \ - } \ - ptr = svc; \ - FT_END_STMNT - -#endif /* !C++ */ - - /* - * A macro used to define new service structure types. - */ - -#define FT_DEFINE_SERVICE( name ) \ - typedef struct FT_Service_ ## name ## Rec_ \ - FT_Service_ ## name ## Rec ; \ - typedef struct FT_Service_ ## name ## Rec_ \ - const * FT_Service_ ## name ; \ - struct FT_Service_ ## name ## Rec_ - - /* */ - - /* - * The header files containing the services. - */ - -#define FT_SERVICE_BDF_H <internal/services/svbdf.h> -#define FT_SERVICE_CID_H <internal/services/svcid.h> -#define FT_SERVICE_GLYPH_DICT_H <internal/services/svgldict.h> -#define FT_SERVICE_GX_VALIDATE_H <internal/services/svgxval.h> -#define FT_SERVICE_KERNING_H <internal/services/svkern.h> -#define FT_SERVICE_MULTIPLE_MASTERS_H <internal/services/svmm.h> -#define FT_SERVICE_OPENTYPE_VALIDATE_H <internal/services/svotval.h> -#define FT_SERVICE_PFR_H <internal/services/svpfr.h> -#define FT_SERVICE_POSTSCRIPT_CMAPS_H <internal/services/svpscmap.h> -#define FT_SERVICE_POSTSCRIPT_INFO_H <internal/services/svpsinfo.h> -#define FT_SERVICE_POSTSCRIPT_NAME_H <internal/services/svpostnm.h> -#define FT_SERVICE_PROPERTIES_H <internal/services/svprop.h> -#define FT_SERVICE_SFNT_H <internal/services/svsfnt.h> -#define FT_SERVICE_TRUETYPE_ENGINE_H <internal/services/svtteng.h> -#define FT_SERVICE_TT_CMAP_H <internal/services/svttcmap.h> -#define FT_SERVICE_WINFNT_H <internal/services/svwinfnt.h> -#define FT_SERVICE_XFREE86_NAME_H <internal/services/svxf86nm.h> -#define FT_SERVICE_TRUETYPE_GLYF_H <internal/services/svttglyf.h> - - /* */ - -FT_END_HEADER - -#endif /* __FTSERV_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/ftstream.h b/lib/linux/include/internal/ftstream.h deleted file mode 100644 index 2661858..0000000 --- a/lib/linux/include/internal/ftstream.h +++ /dev/null @@ -1,536 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftstream.h */ -/* */ -/* Stream handling (specification). */ -/* */ -/* Copyright 1996-2002, 2004-2006, 2011, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTSTREAM_H__ -#define __FTSTREAM_H__ - - -#include <ft2build.h> -#include FT_SYSTEM_H -#include FT_INTERNAL_OBJECTS_H - - -FT_BEGIN_HEADER - - - /* format of an 8-bit frame_op value: */ - /* */ - /* bit 76543210 */ - /* xxxxxxes */ - /* */ - /* s is set to 1 if the value is signed. */ - /* e is set to 1 if the value is little-endian. */ - /* xxx is a command. */ - -#define FT_FRAME_OP_SHIFT 2 -#define FT_FRAME_OP_SIGNED 1 -#define FT_FRAME_OP_LITTLE 2 -#define FT_FRAME_OP_COMMAND( x ) ( x >> FT_FRAME_OP_SHIFT ) - -#define FT_MAKE_FRAME_OP( command, little, sign ) \ - ( ( command << FT_FRAME_OP_SHIFT ) | ( little << 1 ) | sign ) - -#define FT_FRAME_OP_END 0 -#define FT_FRAME_OP_START 1 /* start a new frame */ -#define FT_FRAME_OP_BYTE 2 /* read 1-byte value */ -#define FT_FRAME_OP_SHORT 3 /* read 2-byte value */ -#define FT_FRAME_OP_LONG 4 /* read 4-byte value */ -#define FT_FRAME_OP_OFF3 5 /* read 3-byte value */ -#define FT_FRAME_OP_BYTES 6 /* read a bytes sequence */ - - - typedef enum FT_Frame_Op_ - { - ft_frame_end = 0, - ft_frame_start = FT_MAKE_FRAME_OP( FT_FRAME_OP_START, 0, 0 ), - - ft_frame_byte = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE, 0, 0 ), - ft_frame_schar = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE, 0, 1 ), - - ft_frame_ushort_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 0 ), - ft_frame_short_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 1 ), - ft_frame_ushort_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 0 ), - ft_frame_short_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 1 ), - - ft_frame_ulong_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 0 ), - ft_frame_long_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 1 ), - ft_frame_ulong_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 1, 0 ), - ft_frame_long_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 1, 1 ), - - ft_frame_uoff3_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 0, 0 ), - ft_frame_off3_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 0, 1 ), - ft_frame_uoff3_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 0 ), - ft_frame_off3_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 1 ), - - ft_frame_bytes = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTES, 0, 0 ), - ft_frame_skip = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTES, 0, 1 ) - - } FT_Frame_Op; - - - typedef struct FT_Frame_Field_ - { - FT_Byte value; - FT_Byte size; - FT_UShort offset; - - } FT_Frame_Field; - - - /* Construct an FT_Frame_Field out of a structure type and a field name. */ - /* The structure type must be set in the FT_STRUCTURE macro before */ - /* calling the FT_FRAME_START() macro. */ - /* */ -#define FT_FIELD_SIZE( f ) \ - (FT_Byte)sizeof ( ((FT_STRUCTURE*)0)->f ) - -#define FT_FIELD_SIZE_DELTA( f ) \ - (FT_Byte)sizeof ( ((FT_STRUCTURE*)0)->f[0] ) - -#define FT_FIELD_OFFSET( f ) \ - (FT_UShort)( offsetof( FT_STRUCTURE, f ) ) - -#define FT_FRAME_FIELD( frame_op, field ) \ - { \ - frame_op, \ - FT_FIELD_SIZE( field ), \ - FT_FIELD_OFFSET( field ) \ - } - -#define FT_MAKE_EMPTY_FIELD( frame_op ) { frame_op, 0, 0 } - -#define FT_FRAME_START( size ) { ft_frame_start, 0, size } -#define FT_FRAME_END { ft_frame_end, 0, 0 } - -#define FT_FRAME_LONG( f ) FT_FRAME_FIELD( ft_frame_long_be, f ) -#define FT_FRAME_ULONG( f ) FT_FRAME_FIELD( ft_frame_ulong_be, f ) -#define FT_FRAME_SHORT( f ) FT_FRAME_FIELD( ft_frame_short_be, f ) -#define FT_FRAME_USHORT( f ) FT_FRAME_FIELD( ft_frame_ushort_be, f ) -#define FT_FRAME_OFF3( f ) FT_FRAME_FIELD( ft_frame_off3_be, f ) -#define FT_FRAME_UOFF3( f ) FT_FRAME_FIELD( ft_frame_uoff3_be, f ) -#define FT_FRAME_BYTE( f ) FT_FRAME_FIELD( ft_frame_byte, f ) -#define FT_FRAME_CHAR( f ) FT_FRAME_FIELD( ft_frame_schar, f ) - -#define FT_FRAME_LONG_LE( f ) FT_FRAME_FIELD( ft_frame_long_le, f ) -#define FT_FRAME_ULONG_LE( f ) FT_FRAME_FIELD( ft_frame_ulong_le, f ) -#define FT_FRAME_SHORT_LE( f ) FT_FRAME_FIELD( ft_frame_short_le, f ) -#define FT_FRAME_USHORT_LE( f ) FT_FRAME_FIELD( ft_frame_ushort_le, f ) -#define FT_FRAME_OFF3_LE( f ) FT_FRAME_FIELD( ft_frame_off3_le, f ) -#define FT_FRAME_UOFF3_LE( f ) FT_FRAME_FIELD( ft_frame_uoff3_le, f ) - -#define FT_FRAME_SKIP_LONG { ft_frame_long_be, 0, 0 } -#define FT_FRAME_SKIP_SHORT { ft_frame_short_be, 0, 0 } -#define FT_FRAME_SKIP_BYTE { ft_frame_byte, 0, 0 } - -#define FT_FRAME_BYTES( field, count ) \ - { \ - ft_frame_bytes, \ - count, \ - FT_FIELD_OFFSET( field ) \ - } - -#define FT_FRAME_SKIP_BYTES( count ) { ft_frame_skip, count, 0 } - - - /*************************************************************************/ - /* */ - /* Integer extraction macros -- the `buffer' parameter must ALWAYS be of */ - /* type `char*' or equivalent (1-byte elements). */ - /* */ - -#define FT_BYTE_( p, i ) ( ((const FT_Byte*)(p))[(i)] ) - -#define FT_INT16( x ) ( (FT_Int16)(x) ) -#define FT_UINT16( x ) ( (FT_UInt16)(x) ) -#define FT_INT32( x ) ( (FT_Int32)(x) ) -#define FT_UINT32( x ) ( (FT_UInt32)(x) ) - - -#define FT_BYTE_U16( p, i, s ) ( FT_UINT16( FT_BYTE_( p, i ) ) << (s) ) -#define FT_BYTE_U32( p, i, s ) ( FT_UINT32( FT_BYTE_( p, i ) ) << (s) ) - - -#define FT_PEEK_SHORT( p ) FT_INT16( FT_BYTE_U16( p, 0, 8) | \ - FT_BYTE_U16( p, 1, 0) ) - -#define FT_PEEK_USHORT( p ) FT_UINT16( FT_BYTE_U16( p, 0, 8 ) | \ - FT_BYTE_U16( p, 1, 0 ) ) - -#define FT_PEEK_LONG( p ) FT_INT32( FT_BYTE_U32( p, 0, 24 ) | \ - FT_BYTE_U32( p, 1, 16 ) | \ - FT_BYTE_U32( p, 2, 8 ) | \ - FT_BYTE_U32( p, 3, 0 ) ) - -#define FT_PEEK_ULONG( p ) FT_UINT32( FT_BYTE_U32( p, 0, 24 ) | \ - FT_BYTE_U32( p, 1, 16 ) | \ - FT_BYTE_U32( p, 2, 8 ) | \ - FT_BYTE_U32( p, 3, 0 ) ) - -#define FT_PEEK_OFF3( p ) FT_INT32( FT_BYTE_U32( p, 0, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 2, 0 ) ) - -#define FT_PEEK_UOFF3( p ) FT_UINT32( FT_BYTE_U32( p, 0, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 2, 0 ) ) - -#define FT_PEEK_SHORT_LE( p ) FT_INT16( FT_BYTE_U16( p, 1, 8 ) | \ - FT_BYTE_U16( p, 0, 0 ) ) - -#define FT_PEEK_USHORT_LE( p ) FT_UINT16( FT_BYTE_U16( p, 1, 8 ) | \ - FT_BYTE_U16( p, 0, 0 ) ) - -#define FT_PEEK_LONG_LE( p ) FT_INT32( FT_BYTE_U32( p, 3, 24 ) | \ - FT_BYTE_U32( p, 2, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 0, 0 ) ) - -#define FT_PEEK_ULONG_LE( p ) FT_UINT32( FT_BYTE_U32( p, 3, 24 ) | \ - FT_BYTE_U32( p, 2, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 0, 0 ) ) - -#define FT_PEEK_OFF3_LE( p ) FT_INT32( FT_BYTE_U32( p, 2, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 0, 0 ) ) - -#define FT_PEEK_UOFF3_LE( p ) FT_UINT32( FT_BYTE_U32( p, 2, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 0, 0 ) ) - - -#define FT_NEXT_CHAR( buffer ) \ - ( (signed char)*buffer++ ) - -#define FT_NEXT_BYTE( buffer ) \ - ( (unsigned char)*buffer++ ) - -#define FT_NEXT_SHORT( buffer ) \ - ( (short)( buffer += 2, FT_PEEK_SHORT( buffer - 2 ) ) ) - -#define FT_NEXT_USHORT( buffer ) \ - ( (unsigned short)( buffer += 2, FT_PEEK_USHORT( buffer - 2 ) ) ) - -#define FT_NEXT_OFF3( buffer ) \ - ( (long)( buffer += 3, FT_PEEK_OFF3( buffer - 3 ) ) ) - -#define FT_NEXT_UOFF3( buffer ) \ - ( (unsigned long)( buffer += 3, FT_PEEK_UOFF3( buffer - 3 ) ) ) - -#define FT_NEXT_LONG( buffer ) \ - ( (long)( buffer += 4, FT_PEEK_LONG( buffer - 4 ) ) ) - -#define FT_NEXT_ULONG( buffer ) \ - ( (unsigned long)( buffer += 4, FT_PEEK_ULONG( buffer - 4 ) ) ) - - -#define FT_NEXT_SHORT_LE( buffer ) \ - ( (short)( buffer += 2, FT_PEEK_SHORT_LE( buffer - 2 ) ) ) - -#define FT_NEXT_USHORT_LE( buffer ) \ - ( (unsigned short)( buffer += 2, FT_PEEK_USHORT_LE( buffer - 2 ) ) ) - -#define FT_NEXT_OFF3_LE( buffer ) \ - ( (long)( buffer += 3, FT_PEEK_OFF3_LE( buffer - 3 ) ) ) - -#define FT_NEXT_UOFF3_LE( buffer ) \ - ( (unsigned long)( buffer += 3, FT_PEEK_UOFF3_LE( buffer - 3 ) ) ) - -#define FT_NEXT_LONG_LE( buffer ) \ - ( (long)( buffer += 4, FT_PEEK_LONG_LE( buffer - 4 ) ) ) - -#define FT_NEXT_ULONG_LE( buffer ) \ - ( (unsigned long)( buffer += 4, FT_PEEK_ULONG_LE( buffer - 4 ) ) ) - - - /*************************************************************************/ - /* */ - /* Each GET_xxxx() macro uses an implicit `stream' variable. */ - /* */ -#if 0 -#define FT_GET_MACRO( type ) FT_NEXT_ ## type ( stream->cursor ) - -#define FT_GET_CHAR() FT_GET_MACRO( CHAR ) -#define FT_GET_BYTE() FT_GET_MACRO( BYTE ) -#define FT_GET_SHORT() FT_GET_MACRO( SHORT ) -#define FT_GET_USHORT() FT_GET_MACRO( USHORT ) -#define FT_GET_OFF3() FT_GET_MACRO( OFF3 ) -#define FT_GET_UOFF3() FT_GET_MACRO( UOFF3 ) -#define FT_GET_LONG() FT_GET_MACRO( LONG ) -#define FT_GET_ULONG() FT_GET_MACRO( ULONG ) -#define FT_GET_TAG4() FT_GET_MACRO( ULONG ) - -#define FT_GET_SHORT_LE() FT_GET_MACRO( SHORT_LE ) -#define FT_GET_USHORT_LE() FT_GET_MACRO( USHORT_LE ) -#define FT_GET_LONG_LE() FT_GET_MACRO( LONG_LE ) -#define FT_GET_ULONG_LE() FT_GET_MACRO( ULONG_LE ) - -#else -#define FT_GET_MACRO( func, type ) ( (type)func( stream ) ) - -#define FT_GET_CHAR() FT_GET_MACRO( FT_Stream_GetChar, FT_Char ) -#define FT_GET_BYTE() FT_GET_MACRO( FT_Stream_GetChar, FT_Byte ) -#define FT_GET_SHORT() FT_GET_MACRO( FT_Stream_GetUShort, FT_Short ) -#define FT_GET_USHORT() FT_GET_MACRO( FT_Stream_GetUShort, FT_UShort ) -#define FT_GET_OFF3() FT_GET_MACRO( FT_Stream_GetUOffset, FT_Long ) -#define FT_GET_UOFF3() FT_GET_MACRO( FT_Stream_GetUOffset, FT_ULong ) -#define FT_GET_LONG() FT_GET_MACRO( FT_Stream_GetULong, FT_Long ) -#define FT_GET_ULONG() FT_GET_MACRO( FT_Stream_GetULong, FT_ULong ) -#define FT_GET_TAG4() FT_GET_MACRO( FT_Stream_GetULong, FT_ULong ) - -#define FT_GET_SHORT_LE() FT_GET_MACRO( FT_Stream_GetUShortLE, FT_Short ) -#define FT_GET_USHORT_LE() FT_GET_MACRO( FT_Stream_GetUShortLE, FT_UShort ) -#define FT_GET_LONG_LE() FT_GET_MACRO( FT_Stream_GetULongLE, FT_Long ) -#define FT_GET_ULONG_LE() FT_GET_MACRO( FT_Stream_GetULongLE, FT_ULong ) -#endif - -#define FT_READ_MACRO( func, type, var ) \ - ( var = (type)func( stream, &error ), \ - error != FT_Err_Ok ) - -#define FT_READ_BYTE( var ) FT_READ_MACRO( FT_Stream_ReadChar, FT_Byte, var ) -#define FT_READ_CHAR( var ) FT_READ_MACRO( FT_Stream_ReadChar, FT_Char, var ) -#define FT_READ_SHORT( var ) FT_READ_MACRO( FT_Stream_ReadUShort, FT_Short, var ) -#define FT_READ_USHORT( var ) FT_READ_MACRO( FT_Stream_ReadUShort, FT_UShort, var ) -#define FT_READ_OFF3( var ) FT_READ_MACRO( FT_Stream_ReadUOffset, FT_Long, var ) -#define FT_READ_UOFF3( var ) FT_READ_MACRO( FT_Stream_ReadUOffset, FT_ULong, var ) -#define FT_READ_LONG( var ) FT_READ_MACRO( FT_Stream_ReadULong, FT_Long, var ) -#define FT_READ_ULONG( var ) FT_READ_MACRO( FT_Stream_ReadULong, FT_ULong, var ) - -#define FT_READ_SHORT_LE( var ) FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_Short, var ) -#define FT_READ_USHORT_LE( var ) FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_UShort, var ) -#define FT_READ_LONG_LE( var ) FT_READ_MACRO( FT_Stream_ReadULongLE, FT_Long, var ) -#define FT_READ_ULONG_LE( var ) FT_READ_MACRO( FT_Stream_ReadULongLE, FT_ULong, var ) - - -#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM - - /* initialize a stream for reading a regular system stream */ - FT_BASE( FT_Error ) - FT_Stream_Open( FT_Stream stream, - const char* filepathname ); - -#endif /* FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM */ - - - /* create a new (input) stream from an FT_Open_Args structure */ - FT_BASE( FT_Error ) - FT_Stream_New( FT_Library library, - const FT_Open_Args* args, - FT_Stream *astream ); - - /* free a stream */ - FT_BASE( void ) - FT_Stream_Free( FT_Stream stream, - FT_Int external ); - - /* initialize a stream for reading in-memory data */ - FT_BASE( void ) - FT_Stream_OpenMemory( FT_Stream stream, - const FT_Byte* base, - FT_ULong size ); - - /* close a stream (does not destroy the stream structure) */ - FT_BASE( void ) - FT_Stream_Close( FT_Stream stream ); - - - /* seek within a stream. position is relative to start of stream */ - FT_BASE( FT_Error ) - FT_Stream_Seek( FT_Stream stream, - FT_ULong pos ); - - /* skip bytes in a stream */ - FT_BASE( FT_Error ) - FT_Stream_Skip( FT_Stream stream, - FT_Long distance ); - - /* return current stream position */ - FT_BASE( FT_Long ) - FT_Stream_Pos( FT_Stream stream ); - - /* read bytes from a stream into a user-allocated buffer, returns an */ - /* error if not all bytes could be read. */ - FT_BASE( FT_Error ) - FT_Stream_Read( FT_Stream stream, - FT_Byte* buffer, - FT_ULong count ); - - /* read bytes from a stream at a given position */ - FT_BASE( FT_Error ) - FT_Stream_ReadAt( FT_Stream stream, - FT_ULong pos, - FT_Byte* buffer, - FT_ULong count ); - - /* try to read bytes at the end of a stream; return number of bytes */ - /* really available */ - FT_BASE( FT_ULong ) - FT_Stream_TryRead( FT_Stream stream, - FT_Byte* buffer, - FT_ULong count ); - - /* Enter a frame of `count' consecutive bytes in a stream. Returns an */ - /* error if the frame could not be read/accessed. The caller can use */ - /* the FT_Stream_Get_XXX functions to retrieve frame data without */ - /* error checks. */ - /* */ - /* You must _always_ call FT_Stream_ExitFrame() once you have entered */ - /* a stream frame! */ - /* */ - FT_BASE( FT_Error ) - FT_Stream_EnterFrame( FT_Stream stream, - FT_ULong count ); - - /* exit a stream frame */ - FT_BASE( void ) - FT_Stream_ExitFrame( FT_Stream stream ); - - /* Extract a stream frame. If the stream is disk-based, a heap block */ - /* is allocated and the frame bytes are read into it. If the stream */ - /* is memory-based, this function simply set a pointer to the data. */ - /* */ - /* Useful to optimize access to memory-based streams transparently. */ - /* */ - /* All extracted frames must be `freed' with a call to the function */ - /* FT_Stream_ReleaseFrame(). */ - /* */ - FT_BASE( FT_Error ) - FT_Stream_ExtractFrame( FT_Stream stream, - FT_ULong count, - FT_Byte** pbytes ); - - /* release an extract frame (see FT_Stream_ExtractFrame) */ - FT_BASE( void ) - FT_Stream_ReleaseFrame( FT_Stream stream, - FT_Byte** pbytes ); - - /* read a byte from an entered frame */ - FT_BASE( FT_Char ) - FT_Stream_GetChar( FT_Stream stream ); - - /* read a 16-bit big-endian unsigned integer from an entered frame */ - FT_BASE( FT_UShort ) - FT_Stream_GetUShort( FT_Stream stream ); - - /* read a 24-bit big-endian unsigned integer from an entered frame */ - FT_BASE( FT_ULong ) - FT_Stream_GetUOffset( FT_Stream stream ); - - /* read a 32-bit big-endian unsigned integer from an entered frame */ - FT_BASE( FT_ULong ) - FT_Stream_GetULong( FT_Stream stream ); - - /* read a 16-bit little-endian unsigned integer from an entered frame */ - FT_BASE( FT_UShort ) - FT_Stream_GetUShortLE( FT_Stream stream ); - - /* read a 32-bit little-endian unsigned integer from an entered frame */ - FT_BASE( FT_ULong ) - FT_Stream_GetULongLE( FT_Stream stream ); - - - /* read a byte from a stream */ - FT_BASE( FT_Char ) - FT_Stream_ReadChar( FT_Stream stream, - FT_Error* error ); - - /* read a 16-bit big-endian unsigned integer from a stream */ - FT_BASE( FT_UShort ) - FT_Stream_ReadUShort( FT_Stream stream, - FT_Error* error ); - - /* read a 24-bit big-endian unsigned integer from a stream */ - FT_BASE( FT_ULong ) - FT_Stream_ReadUOffset( FT_Stream stream, - FT_Error* error ); - - /* read a 32-bit big-endian integer from a stream */ - FT_BASE( FT_ULong ) - FT_Stream_ReadULong( FT_Stream stream, - FT_Error* error ); - - /* read a 16-bit little-endian unsigned integer from a stream */ - FT_BASE( FT_UShort ) - FT_Stream_ReadUShortLE( FT_Stream stream, - FT_Error* error ); - - /* read a 32-bit little-endian unsigned integer from a stream */ - FT_BASE( FT_ULong ) - FT_Stream_ReadULongLE( FT_Stream stream, - FT_Error* error ); - - /* Read a structure from a stream. The structure must be described */ - /* by an array of FT_Frame_Field records. */ - FT_BASE( FT_Error ) - FT_Stream_ReadFields( FT_Stream stream, - const FT_Frame_Field* fields, - void* structure ); - - -#define FT_STREAM_POS() \ - FT_Stream_Pos( stream ) - -#define FT_STREAM_SEEK( position ) \ - FT_SET_ERROR( FT_Stream_Seek( stream, \ - (FT_ULong)(position) ) ) - -#define FT_STREAM_SKIP( distance ) \ - FT_SET_ERROR( FT_Stream_Skip( stream, \ - (FT_Long)(distance) ) ) - -#define FT_STREAM_READ( buffer, count ) \ - FT_SET_ERROR( FT_Stream_Read( stream, \ - (FT_Byte*)(buffer), \ - (FT_ULong)(count) ) ) - -#define FT_STREAM_READ_AT( position, buffer, count ) \ - FT_SET_ERROR( FT_Stream_ReadAt( stream, \ - (FT_ULong)(position), \ - (FT_Byte*)buffer, \ - (FT_ULong)(count) ) ) - -#define FT_STREAM_READ_FIELDS( fields, object ) \ - FT_SET_ERROR( FT_Stream_ReadFields( stream, fields, object ) ) - - -#define FT_FRAME_ENTER( size ) \ - FT_SET_ERROR( \ - FT_DEBUG_INNER( FT_Stream_EnterFrame( stream, \ - (FT_ULong)(size) ) ) ) - -#define FT_FRAME_EXIT() \ - FT_DEBUG_INNER( FT_Stream_ExitFrame( stream ) ) - -#define FT_FRAME_EXTRACT( size, bytes ) \ - FT_SET_ERROR( \ - FT_DEBUG_INNER( FT_Stream_ExtractFrame( stream, \ - (FT_ULong)(size), \ - (FT_Byte**)&(bytes) ) ) ) - -#define FT_FRAME_RELEASE( bytes ) \ - FT_DEBUG_INNER( FT_Stream_ReleaseFrame( stream, \ - (FT_Byte**)&(bytes) ) ) - - -FT_END_HEADER - -#endif /* __FTSTREAM_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/fttrace.h b/lib/linux/include/internal/fttrace.h deleted file mode 100644 index d5253db..0000000 --- a/lib/linux/include/internal/fttrace.h +++ /dev/null @@ -1,154 +0,0 @@ -/***************************************************************************/ -/* */ -/* fttrace.h */ -/* */ -/* Tracing handling (specification only). */ -/* */ -/* Copyright 2002, 2004-2007, 2009, 2011-2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /* definitions of trace levels for FreeType 2 */ - - /* the first level must always be `trace_any' */ -FT_TRACE_DEF( any ) - - /* base components */ -FT_TRACE_DEF( calc ) /* calculations (ftcalc.c) */ -FT_TRACE_DEF( memory ) /* memory manager (ftobjs.c) */ -FT_TRACE_DEF( stream ) /* stream manager (ftstream.c) */ -FT_TRACE_DEF( io ) /* i/o interface (ftsystem.c) */ -FT_TRACE_DEF( list ) /* list management (ftlist.c) */ -FT_TRACE_DEF( init ) /* initialization (ftinit.c) */ -FT_TRACE_DEF( objs ) /* base objects (ftobjs.c) */ -FT_TRACE_DEF( outline ) /* outline management (ftoutln.c) */ -FT_TRACE_DEF( glyph ) /* glyph management (ftglyph.c) */ -FT_TRACE_DEF( gloader ) /* glyph loader (ftgloadr.c) */ - -FT_TRACE_DEF( raster ) /* monochrome rasterizer (ftraster.c) */ -FT_TRACE_DEF( smooth ) /* anti-aliasing raster (ftgrays.c) */ -FT_TRACE_DEF( mm ) /* MM interface (ftmm.c) */ -FT_TRACE_DEF( raccess ) /* resource fork accessor (ftrfork.c) */ -FT_TRACE_DEF( synth ) /* bold/slant synthesizer (ftsynth.c) */ -FT_TRACE_DEF( bitmap ) /* bitmap checksum (ftobjs.c) */ - - /* Cache sub-system */ -FT_TRACE_DEF( cache ) /* cache sub-system (ftcache.c, etc.) */ - - /* SFNT driver components */ -FT_TRACE_DEF( sfdriver ) /* SFNT font driver (sfdriver.c) */ -FT_TRACE_DEF( sfobjs ) /* SFNT object handler (sfobjs.c) */ -FT_TRACE_DEF( ttcmap ) /* charmap handler (ttcmap.c) */ -FT_TRACE_DEF( ttkern ) /* kerning handler (ttkern.c) */ -FT_TRACE_DEF( ttload ) /* basic TrueType tables (ttload.c) */ -FT_TRACE_DEF( ttmtx ) /* metrics-related tables (ttmtx.c) */ -FT_TRACE_DEF( ttpost ) /* PS table processing (ttpost.c) */ -FT_TRACE_DEF( ttsbit ) /* TrueType sbit handling (ttsbit.c) */ -FT_TRACE_DEF( ttbdf ) /* TrueType embedded BDF (ttbdf.c) */ - - /* TrueType driver components */ -FT_TRACE_DEF( ttdriver ) /* TT font driver (ttdriver.c) */ -FT_TRACE_DEF( ttgload ) /* TT glyph loader (ttgload.c) */ -FT_TRACE_DEF( ttinterp ) /* bytecode interpreter (ttinterp.c) */ -FT_TRACE_DEF( ttobjs ) /* TT objects manager (ttobjs.c) */ -FT_TRACE_DEF( ttpload ) /* TT data/program loader (ttpload.c) */ -FT_TRACE_DEF( ttgxvar ) /* TrueType GX var handler (ttgxvar.c) */ - - /* Type 1 driver components */ -FT_TRACE_DEF( t1afm ) -FT_TRACE_DEF( t1driver ) -FT_TRACE_DEF( t1gload ) -FT_TRACE_DEF( t1hint ) -FT_TRACE_DEF( t1load ) -FT_TRACE_DEF( t1objs ) -FT_TRACE_DEF( t1parse ) - - /* PostScript helper module `psaux' */ -FT_TRACE_DEF( t1decode ) -FT_TRACE_DEF( psobjs ) -FT_TRACE_DEF( psconv ) - - /* PostScript hinting module `pshinter' */ -FT_TRACE_DEF( pshrec ) -FT_TRACE_DEF( pshalgo1 ) -FT_TRACE_DEF( pshalgo2 ) - - /* Type 2 driver components */ -FT_TRACE_DEF( cffdriver ) -FT_TRACE_DEF( cffgload ) -FT_TRACE_DEF( cffload ) -FT_TRACE_DEF( cffobjs ) -FT_TRACE_DEF( cffparse ) - -FT_TRACE_DEF( cf2blues ) -FT_TRACE_DEF( cf2hints ) -FT_TRACE_DEF( cf2interp ) - - /* Type 42 driver component */ -FT_TRACE_DEF( t42 ) - - /* CID driver components */ -FT_TRACE_DEF( cidafm ) -FT_TRACE_DEF( ciddriver ) -FT_TRACE_DEF( cidgload ) -FT_TRACE_DEF( cidload ) -FT_TRACE_DEF( cidobjs ) -FT_TRACE_DEF( cidparse ) - - /* Windows font component */ -FT_TRACE_DEF( winfnt ) - - /* PCF font components */ -FT_TRACE_DEF( pcfdriver ) -FT_TRACE_DEF( pcfread ) - - /* BDF font components */ -FT_TRACE_DEF( bdfdriver ) -FT_TRACE_DEF( bdflib ) - - /* PFR font component */ -FT_TRACE_DEF( pfr ) - - /* OpenType validation components */ -FT_TRACE_DEF( otvmodule ) -FT_TRACE_DEF( otvcommon ) -FT_TRACE_DEF( otvbase ) -FT_TRACE_DEF( otvgdef ) -FT_TRACE_DEF( otvgpos ) -FT_TRACE_DEF( otvgsub ) -FT_TRACE_DEF( otvjstf ) -FT_TRACE_DEF( otvmath ) - - /* TrueTypeGX/AAT validation components */ -FT_TRACE_DEF( gxvmodule ) -FT_TRACE_DEF( gxvcommon ) -FT_TRACE_DEF( gxvfeat ) -FT_TRACE_DEF( gxvmort ) -FT_TRACE_DEF( gxvmorx ) -FT_TRACE_DEF( gxvbsln ) -FT_TRACE_DEF( gxvjust ) -FT_TRACE_DEF( gxvkern ) -FT_TRACE_DEF( gxvopbd ) -FT_TRACE_DEF( gxvtrak ) -FT_TRACE_DEF( gxvprop ) -FT_TRACE_DEF( gxvlcar ) - - /* autofit components */ -FT_TRACE_DEF( afmodule ) -FT_TRACE_DEF( afhints ) -FT_TRACE_DEF( afcjk ) -FT_TRACE_DEF( aflatin ) -FT_TRACE_DEF( aflatin2 ) -FT_TRACE_DEF( afwarp ) -FT_TRACE_DEF( afharfbuzz ) -FT_TRACE_DEF( afglobal ) - -/* END */ diff --git a/lib/linux/include/internal/ftvalid.h b/lib/linux/include/internal/ftvalid.h deleted file mode 100644 index c281b14..0000000 --- a/lib/linux/include/internal/ftvalid.h +++ /dev/null @@ -1,159 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftvalid.h */ -/* */ -/* FreeType validation support (specification). */ -/* */ -/* Copyright 2004, 2013, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTVALID_H__ -#define __FTVALID_H__ - -#include <ft2build.h> -#include FT_CONFIG_STANDARD_LIBRARY_H /* for ft_setjmp and ft_longjmp */ - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** V A L I D A T I O N ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - /* handle to a validation object */ - typedef struct FT_ValidatorRec_ volatile* FT_Validator; - - - /*************************************************************************/ - /* */ - /* There are three distinct validation levels defined here: */ - /* */ - /* FT_VALIDATE_DEFAULT :: */ - /* A table that passes this validation level can be used reliably by */ - /* FreeType. It generally means that all offsets have been checked to */ - /* prevent out-of-bound reads, that array counts are correct, etc. */ - /* */ - /* FT_VALIDATE_TIGHT :: */ - /* A table that passes this validation level can be used reliably and */ - /* doesn't contain invalid data. For example, a charmap table that */ - /* returns invalid glyph indices will not pass, even though it can */ - /* be used with FreeType in default mode (the library will simply */ - /* return an error later when trying to load the glyph). */ - /* */ - /* It also checks that fields which must be a multiple of 2, 4, or 8, */ - /* don't have incorrect values, etc. */ - /* */ - /* FT_VALIDATE_PARANOID :: */ - /* Only for font debugging. Checks that a table follows the */ - /* specification by 100%. Very few fonts will be able to pass this */ - /* level anyway but it can be useful for certain tools like font */ - /* editors/converters. */ - /* */ - typedef enum FT_ValidationLevel_ - { - FT_VALIDATE_DEFAULT = 0, - FT_VALIDATE_TIGHT, - FT_VALIDATE_PARANOID - - } FT_ValidationLevel; - - -#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ - /* We disable the warning `structure was padded due to */ - /* __declspec(align())' in order to compile cleanly with */ - /* the maximum level of warnings. */ -#pragma warning( push ) -#pragma warning( disable : 4324 ) -#endif /* _MSC_VER */ - - /* validator structure */ - typedef struct FT_ValidatorRec_ - { - ft_jmp_buf jump_buffer; /* used for exception handling */ - - const FT_Byte* base; /* address of table in memory */ - const FT_Byte* limit; /* `base' + sizeof(table) in memory */ - FT_ValidationLevel level; /* validation level */ - FT_Error error; /* error returned. 0 means success */ - - } FT_ValidatorRec; - -#if defined( _MSC_VER ) -#pragma warning( pop ) -#endif - -#define FT_VALIDATOR( x ) ( (FT_Validator)( x ) ) - - - FT_BASE( void ) - ft_validator_init( FT_Validator valid, - const FT_Byte* base, - const FT_Byte* limit, - FT_ValidationLevel level ); - - /* Do not use this. It's broken and will cause your validator to crash */ - /* if you run it on an invalid font. */ - FT_BASE( FT_Int ) - ft_validator_run( FT_Validator valid ); - - /* Sets the error field in a validator, then calls `longjmp' to return */ - /* to high-level caller. Using `setjmp/longjmp' avoids many stupid */ - /* error checks within the validation routines. */ - /* */ - FT_BASE( void ) - ft_validator_error( FT_Validator valid, - FT_Error error ); - - - /* Calls ft_validate_error. Assumes that the `valid' local variable */ - /* holds a pointer to the current validator object. */ - /* */ -#define FT_INVALID( _error ) FT_INVALID_( _error ) -#define FT_INVALID_( _error ) \ - ft_validator_error( valid, FT_THROW( _error ) ) - - /* called when a broken table is detected */ -#define FT_INVALID_TOO_SHORT \ - FT_INVALID( Invalid_Table ) - - /* called when an invalid offset is detected */ -#define FT_INVALID_OFFSET \ - FT_INVALID( Invalid_Offset ) - - /* called when an invalid format/value is detected */ -#define FT_INVALID_FORMAT \ - FT_INVALID( Invalid_Table ) - - /* called when an invalid glyph index is detected */ -#define FT_INVALID_GLYPH_ID \ - FT_INVALID( Invalid_Glyph_Index ) - - /* called when an invalid field value is detected */ -#define FT_INVALID_DATA \ - FT_INVALID( Invalid_Table ) - - -FT_END_HEADER - -#endif /* __FTVALID_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/internal.h b/lib/linux/include/internal/internal.h deleted file mode 100644 index e0ddb06..0000000 --- a/lib/linux/include/internal/internal.h +++ /dev/null @@ -1,63 +0,0 @@ -/***************************************************************************/ -/* */ -/* internal.h */ -/* */ -/* Internal header files (specification only). */ -/* */ -/* Copyright 1996-2004, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file is automatically included by `ft2build.h'. */ - /* Do not include it manually! */ - /* */ - /*************************************************************************/ - - -#define FT_INTERNAL_OBJECTS_H <internal/ftobjs.h> -#define FT_INTERNAL_PIC_H <internal/ftpic.h> -#define FT_INTERNAL_STREAM_H <internal/ftstream.h> -#define FT_INTERNAL_MEMORY_H <internal/ftmemory.h> -#define FT_INTERNAL_DEBUG_H <internal/ftdebug.h> -#define FT_INTERNAL_CALC_H <internal/ftcalc.h> -#define FT_INTERNAL_DRIVER_H <internal/ftdriver.h> -#define FT_INTERNAL_TRACE_H <internal/fttrace.h> -#define FT_INTERNAL_GLYPH_LOADER_H <internal/ftgloadr.h> -#define FT_INTERNAL_SFNT_H <internal/sfnt.h> -#define FT_INTERNAL_SERVICE_H <internal/ftserv.h> -#define FT_INTERNAL_RFORK_H <internal/ftrfork.h> -#define FT_INTERNAL_VALIDATE_H <internal/ftvalid.h> - -#define FT_INTERNAL_TRUETYPE_TYPES_H <internal/tttypes.h> -#define FT_INTERNAL_TYPE1_TYPES_H <internal/t1types.h> - -#define FT_INTERNAL_POSTSCRIPT_AUX_H <internal/psaux.h> -#define FT_INTERNAL_POSTSCRIPT_HINTS_H <internal/pshints.h> -#define FT_INTERNAL_POSTSCRIPT_GLOBALS_H <internal/psglobal.h> - -#define FT_INTERNAL_AUTOHINT_H <internal/autohint.h> - - -#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ - - /* We disable the warning `conditional expression is constant' here */ - /* in order to compile cleanly with the maximum level of warnings. */ - /* In particular, the warning complains about stuff like `while(0)' */ - /* which is very useful in macro definitions. There is no benefit */ - /* in having it enabled. */ -#pragma warning( disable : 4127 ) - -#endif /* _MSC_VER */ - - -/* END */ diff --git a/lib/linux/include/internal/psaux.h b/lib/linux/include/internal/psaux.h deleted file mode 100644 index e903114..0000000 --- a/lib/linux/include/internal/psaux.h +++ /dev/null @@ -1,877 +0,0 @@ -/***************************************************************************/ -/* */ -/* psaux.h */ -/* */ -/* Auxiliary functions and data structures related to PostScript fonts */ -/* (specification). */ -/* */ -/* Copyright 1996-2004, 2006, 2008, 2009, 2012 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __PSAUX_H__ -#define __PSAUX_H__ - - -#include <ft2build.h> -#include FT_INTERNAL_OBJECTS_H -#include FT_INTERNAL_TYPE1_TYPES_H -#include FT_SERVICE_POSTSCRIPT_CMAPS_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1_TABLE *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - - typedef struct PS_TableRec_* PS_Table; - typedef const struct PS_Table_FuncsRec_* PS_Table_Funcs; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_Table_FuncsRec */ - /* */ - /* <Description> */ - /* A set of function pointers to manage PS_Table objects. */ - /* */ - /* <Fields> */ - /* table_init :: Used to initialize a table. */ - /* */ - /* table_done :: Finalizes resp. destroy a given table. */ - /* */ - /* table_add :: Adds a new object to a table. */ - /* */ - /* table_release :: Releases table data, then finalizes it. */ - /* */ - typedef struct PS_Table_FuncsRec_ - { - FT_Error - (*init)( PS_Table table, - FT_Int count, - FT_Memory memory ); - - void - (*done)( PS_Table table ); - - FT_Error - (*add)( PS_Table table, - FT_Int idx, - void* object, - FT_PtrDist length ); - - void - (*release)( PS_Table table ); - - } PS_Table_FuncsRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_TableRec */ - /* */ - /* <Description> */ - /* A PS_Table is a simple object used to store an array of objects in */ - /* a single memory block. */ - /* */ - /* <Fields> */ - /* block :: The address in memory of the growheap's block. This */ - /* can change between two object adds, due to */ - /* reallocation. */ - /* */ - /* cursor :: The current top of the grow heap within its block. */ - /* */ - /* capacity :: The current size of the heap block. Increments by */ - /* 1kByte chunks. */ - /* */ - /* init :: Set to 0xDEADBEEF if `elements' and `lengths' have */ - /* been allocated. */ - /* */ - /* max_elems :: The maximum number of elements in table. */ - /* */ - /* num_elems :: The current number of elements in table. */ - /* */ - /* elements :: A table of element addresses within the block. */ - /* */ - /* lengths :: A table of element sizes within the block. */ - /* */ - /* memory :: The object used for memory operations */ - /* (alloc/realloc). */ - /* */ - /* funcs :: A table of method pointers for this object. */ - /* */ - typedef struct PS_TableRec_ - { - FT_Byte* block; /* current memory block */ - FT_Offset cursor; /* current cursor in memory block */ - FT_Offset capacity; /* current size of memory block */ - FT_Long init; - - FT_Int max_elems; - FT_Int num_elems; - FT_Byte** elements; /* addresses of table elements */ - FT_PtrDist* lengths; /* lengths of table elements */ - - FT_Memory memory; - PS_Table_FuncsRec funcs; - - } PS_TableRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1 FIELDS & TOKENS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct PS_ParserRec_* PS_Parser; - - typedef struct T1_TokenRec_* T1_Token; - - typedef struct T1_FieldRec_* T1_Field; - - - /* simple enumeration type used to identify token types */ - typedef enum T1_TokenType_ - { - T1_TOKEN_TYPE_NONE = 0, - T1_TOKEN_TYPE_ANY, - T1_TOKEN_TYPE_STRING, - T1_TOKEN_TYPE_ARRAY, - T1_TOKEN_TYPE_KEY, /* aka `name' */ - - /* do not remove */ - T1_TOKEN_TYPE_MAX - - } T1_TokenType; - - - /* a simple structure used to identify tokens */ - typedef struct T1_TokenRec_ - { - FT_Byte* start; /* first character of token in input stream */ - FT_Byte* limit; /* first character after the token */ - T1_TokenType type; /* type of token */ - - } T1_TokenRec; - - - /* enumeration type used to identify object fields */ - typedef enum T1_FieldType_ - { - T1_FIELD_TYPE_NONE = 0, - T1_FIELD_TYPE_BOOL, - T1_FIELD_TYPE_INTEGER, - T1_FIELD_TYPE_FIXED, - T1_FIELD_TYPE_FIXED_1000, - T1_FIELD_TYPE_STRING, - T1_FIELD_TYPE_KEY, - T1_FIELD_TYPE_BBOX, - T1_FIELD_TYPE_MM_BBOX, - T1_FIELD_TYPE_INTEGER_ARRAY, - T1_FIELD_TYPE_FIXED_ARRAY, - T1_FIELD_TYPE_CALLBACK, - - /* do not remove */ - T1_FIELD_TYPE_MAX - - } T1_FieldType; - - - typedef enum T1_FieldLocation_ - { - T1_FIELD_LOCATION_CID_INFO, - T1_FIELD_LOCATION_FONT_DICT, - T1_FIELD_LOCATION_FONT_EXTRA, - T1_FIELD_LOCATION_FONT_INFO, - T1_FIELD_LOCATION_PRIVATE, - T1_FIELD_LOCATION_BBOX, - T1_FIELD_LOCATION_LOADER, - T1_FIELD_LOCATION_FACE, - T1_FIELD_LOCATION_BLEND, - - /* do not remove */ - T1_FIELD_LOCATION_MAX - - } T1_FieldLocation; - - - typedef void - (*T1_Field_ParseFunc)( FT_Face face, - FT_Pointer parser ); - - - /* structure type used to model object fields */ - typedef struct T1_FieldRec_ - { - const char* ident; /* field identifier */ - T1_FieldLocation location; - T1_FieldType type; /* type of field */ - T1_Field_ParseFunc reader; - FT_UInt offset; /* offset of field in object */ - FT_Byte size; /* size of field in bytes */ - FT_UInt array_max; /* maximum number of elements for */ - /* array */ - FT_UInt count_offset; /* offset of element count for */ - /* arrays; must not be zero if in */ - /* use -- in other words, a */ - /* `num_FOO' element must not */ - /* start the used structure if we */ - /* parse a `FOO' array */ - FT_UInt dict; /* where we expect it */ - } T1_FieldRec; - -#define T1_FIELD_DICT_FONTDICT ( 1 << 0 ) /* also FontInfo and FDArray */ -#define T1_FIELD_DICT_PRIVATE ( 1 << 1 ) - - - -#define T1_NEW_SIMPLE_FIELD( _ident, _type, _fname, _dict ) \ - { \ - _ident, T1CODE, _type, \ - 0, \ - FT_FIELD_OFFSET( _fname ), \ - FT_FIELD_SIZE( _fname ), \ - 0, 0, \ - _dict \ - }, - -#define T1_NEW_CALLBACK_FIELD( _ident, _reader, _dict ) \ - { \ - _ident, T1CODE, T1_FIELD_TYPE_CALLBACK, \ - (T1_Field_ParseFunc)_reader, \ - 0, 0, \ - 0, 0, \ - _dict \ - }, - -#define T1_NEW_TABLE_FIELD( _ident, _type, _fname, _max, _dict ) \ - { \ - _ident, T1CODE, _type, \ - 0, \ - FT_FIELD_OFFSET( _fname ), \ - FT_FIELD_SIZE_DELTA( _fname ), \ - _max, \ - FT_FIELD_OFFSET( num_ ## _fname ), \ - _dict \ - }, - -#define T1_NEW_TABLE_FIELD2( _ident, _type, _fname, _max, _dict ) \ - { \ - _ident, T1CODE, _type, \ - 0, \ - FT_FIELD_OFFSET( _fname ), \ - FT_FIELD_SIZE_DELTA( _fname ), \ - _max, 0, \ - _dict \ - }, - - -#define T1_FIELD_BOOL( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_BOOL, _fname, _dict ) - -#define T1_FIELD_NUM( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_INTEGER, _fname, _dict ) - -#define T1_FIELD_FIXED( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_FIXED, _fname, _dict ) - -#define T1_FIELD_FIXED_1000( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_FIXED_1000, _fname, \ - _dict ) - -#define T1_FIELD_STRING( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_STRING, _fname, _dict ) - -#define T1_FIELD_KEY( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_KEY, _fname, _dict ) - -#define T1_FIELD_BBOX( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_BBOX, _fname, _dict ) - - -#define T1_FIELD_NUM_TABLE( _ident, _fname, _fmax, _dict ) \ - T1_NEW_TABLE_FIELD( _ident, T1_FIELD_TYPE_INTEGER_ARRAY, \ - _fname, _fmax, _dict ) - -#define T1_FIELD_FIXED_TABLE( _ident, _fname, _fmax, _dict ) \ - T1_NEW_TABLE_FIELD( _ident, T1_FIELD_TYPE_FIXED_ARRAY, \ - _fname, _fmax, _dict ) - -#define T1_FIELD_NUM_TABLE2( _ident, _fname, _fmax, _dict ) \ - T1_NEW_TABLE_FIELD2( _ident, T1_FIELD_TYPE_INTEGER_ARRAY, \ - _fname, _fmax, _dict ) - -#define T1_FIELD_FIXED_TABLE2( _ident, _fname, _fmax, _dict ) \ - T1_NEW_TABLE_FIELD2( _ident, T1_FIELD_TYPE_FIXED_ARRAY, \ - _fname, _fmax, _dict ) - -#define T1_FIELD_CALLBACK( _ident, _name, _dict ) \ - T1_NEW_CALLBACK_FIELD( _ident, _name, _dict ) - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1 PARSER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef const struct PS_Parser_FuncsRec_* PS_Parser_Funcs; - - typedef struct PS_Parser_FuncsRec_ - { - void - (*init)( PS_Parser parser, - FT_Byte* base, - FT_Byte* limit, - FT_Memory memory ); - - void - (*done)( PS_Parser parser ); - - void - (*skip_spaces)( PS_Parser parser ); - void - (*skip_PS_token)( PS_Parser parser ); - - FT_Long - (*to_int)( PS_Parser parser ); - FT_Fixed - (*to_fixed)( PS_Parser parser, - FT_Int power_ten ); - - FT_Error - (*to_bytes)( PS_Parser parser, - FT_Byte* bytes, - FT_Offset max_bytes, - FT_Long* pnum_bytes, - FT_Bool delimiters ); - - FT_Int - (*to_coord_array)( PS_Parser parser, - FT_Int max_coords, - FT_Short* coords ); - FT_Int - (*to_fixed_array)( PS_Parser parser, - FT_Int max_values, - FT_Fixed* values, - FT_Int power_ten ); - - void - (*to_token)( PS_Parser parser, - T1_Token token ); - void - (*to_token_array)( PS_Parser parser, - T1_Token tokens, - FT_UInt max_tokens, - FT_Int* pnum_tokens ); - - FT_Error - (*load_field)( PS_Parser parser, - const T1_Field field, - void** objects, - FT_UInt max_objects, - FT_ULong* pflags ); - - FT_Error - (*load_field_table)( PS_Parser parser, - const T1_Field field, - void** objects, - FT_UInt max_objects, - FT_ULong* pflags ); - - } PS_Parser_FuncsRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_ParserRec */ - /* */ - /* <Description> */ - /* A PS_Parser is an object used to parse a Type 1 font very quickly. */ - /* */ - /* <Fields> */ - /* cursor :: The current position in the text. */ - /* */ - /* base :: Start of the processed text. */ - /* */ - /* limit :: End of the processed text. */ - /* */ - /* error :: The last error returned. */ - /* */ - /* memory :: The object used for memory operations (alloc/realloc). */ - /* */ - /* funcs :: A table of functions for the parser. */ - /* */ - typedef struct PS_ParserRec_ - { - FT_Byte* cursor; - FT_Byte* base; - FT_Byte* limit; - FT_Error error; - FT_Memory memory; - - PS_Parser_FuncsRec funcs; - - } PS_ParserRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1 BUILDER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - - typedef struct T1_BuilderRec_* T1_Builder; - - - typedef FT_Error - (*T1_Builder_Check_Points_Func)( T1_Builder builder, - FT_Int count ); - - typedef void - (*T1_Builder_Add_Point_Func)( T1_Builder builder, - FT_Pos x, - FT_Pos y, - FT_Byte flag ); - - typedef FT_Error - (*T1_Builder_Add_Point1_Func)( T1_Builder builder, - FT_Pos x, - FT_Pos y ); - - typedef FT_Error - (*T1_Builder_Add_Contour_Func)( T1_Builder builder ); - - typedef FT_Error - (*T1_Builder_Start_Point_Func)( T1_Builder builder, - FT_Pos x, - FT_Pos y ); - - typedef void - (*T1_Builder_Close_Contour_Func)( T1_Builder builder ); - - - typedef const struct T1_Builder_FuncsRec_* T1_Builder_Funcs; - - typedef struct T1_Builder_FuncsRec_ - { - void - (*init)( T1_Builder builder, - FT_Face face, - FT_Size size, - FT_GlyphSlot slot, - FT_Bool hinting ); - - void - (*done)( T1_Builder builder ); - - T1_Builder_Check_Points_Func check_points; - T1_Builder_Add_Point_Func add_point; - T1_Builder_Add_Point1_Func add_point1; - T1_Builder_Add_Contour_Func add_contour; - T1_Builder_Start_Point_Func start_point; - T1_Builder_Close_Contour_Func close_contour; - - } T1_Builder_FuncsRec; - - - /* an enumeration type to handle charstring parsing states */ - typedef enum T1_ParseState_ - { - T1_Parse_Start, - T1_Parse_Have_Width, - T1_Parse_Have_Moveto, - T1_Parse_Have_Path - - } T1_ParseState; - - - /*************************************************************************/ - /* */ - /* <Structure> */ - /* T1_BuilderRec */ - /* */ - /* <Description> */ - /* A structure used during glyph loading to store its outline. */ - /* */ - /* <Fields> */ - /* memory :: The current memory object. */ - /* */ - /* face :: The current face object. */ - /* */ - /* glyph :: The current glyph slot. */ - /* */ - /* loader :: XXX */ - /* */ - /* base :: The base glyph outline. */ - /* */ - /* current :: The current glyph outline. */ - /* */ - /* max_points :: maximum points in builder outline */ - /* */ - /* max_contours :: Maximum number of contours in builder outline. */ - /* */ - /* pos_x :: The horizontal translation (if composite glyph). */ - /* */ - /* pos_y :: The vertical translation (if composite glyph). */ - /* */ - /* left_bearing :: The left side bearing point. */ - /* */ - /* advance :: The horizontal advance vector. */ - /* */ - /* bbox :: Unused. */ - /* */ - /* parse_state :: An enumeration which controls the charstring */ - /* parsing state. */ - /* */ - /* load_points :: If this flag is not set, no points are loaded. */ - /* */ - /* no_recurse :: Set but not used. */ - /* */ - /* metrics_only :: A boolean indicating that we only want to compute */ - /* the metrics of a given glyph, not load all of its */ - /* points. */ - /* */ - /* funcs :: An array of function pointers for the builder. */ - /* */ - typedef struct T1_BuilderRec_ - { - FT_Memory memory; - FT_Face face; - FT_GlyphSlot glyph; - FT_GlyphLoader loader; - FT_Outline* base; - FT_Outline* current; - - FT_Pos pos_x; - FT_Pos pos_y; - - FT_Vector left_bearing; - FT_Vector advance; - - FT_BBox bbox; /* bounding box */ - T1_ParseState parse_state; - FT_Bool load_points; - FT_Bool no_recurse; - - FT_Bool metrics_only; - - void* hints_funcs; /* hinter-specific */ - void* hints_globals; /* hinter-specific */ - - T1_Builder_FuncsRec funcs; - - } T1_BuilderRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1 DECODER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - -#if 0 - - /*************************************************************************/ - /* */ - /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ - /* calls during glyph loading. */ - /* */ -#define T1_MAX_SUBRS_CALLS 8 - - - /*************************************************************************/ - /* */ - /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ - /* minimum of 16 is required. */ - /* */ -#define T1_MAX_CHARSTRINGS_OPERANDS 32 - -#endif /* 0 */ - - - typedef struct T1_Decoder_ZoneRec_ - { - FT_Byte* cursor; - FT_Byte* base; - FT_Byte* limit; - - } T1_Decoder_ZoneRec, *T1_Decoder_Zone; - - - typedef struct T1_DecoderRec_* T1_Decoder; - typedef const struct T1_Decoder_FuncsRec_* T1_Decoder_Funcs; - - - typedef FT_Error - (*T1_Decoder_Callback)( T1_Decoder decoder, - FT_UInt glyph_index ); - - - typedef struct T1_Decoder_FuncsRec_ - { - FT_Error - (*init)( T1_Decoder decoder, - FT_Face face, - FT_Size size, - FT_GlyphSlot slot, - FT_Byte** glyph_names, - PS_Blend blend, - FT_Bool hinting, - FT_Render_Mode hint_mode, - T1_Decoder_Callback callback ); - - void - (*done)( T1_Decoder decoder ); - - FT_Error - (*parse_charstrings)( T1_Decoder decoder, - FT_Byte* base, - FT_UInt len ); - - } T1_Decoder_FuncsRec; - - - typedef struct T1_DecoderRec_ - { - T1_BuilderRec builder; - - FT_Long stack[T1_MAX_CHARSTRINGS_OPERANDS]; - FT_Long* top; - - T1_Decoder_ZoneRec zones[T1_MAX_SUBRS_CALLS + 1]; - T1_Decoder_Zone zone; - - FT_Service_PsCMaps psnames; /* for seac */ - FT_UInt num_glyphs; - FT_Byte** glyph_names; - - FT_Int lenIV; /* internal for sub routine calls */ - FT_UInt num_subrs; - FT_Byte** subrs; - FT_PtrDist* subrs_len; /* array of subrs length (optional) */ - - FT_Matrix font_matrix; - FT_Vector font_offset; - - FT_Int flex_state; - FT_Int num_flex_vectors; - FT_Vector flex_vectors[7]; - - PS_Blend blend; /* for multiple master support */ - - FT_Render_Mode hint_mode; - - T1_Decoder_Callback parse_callback; - T1_Decoder_FuncsRec funcs; - - FT_Long* buildchar; - FT_UInt len_buildchar; - - FT_Bool seac; - - } T1_DecoderRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** AFM PARSER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct AFM_ParserRec_* AFM_Parser; - - typedef struct AFM_Parser_FuncsRec_ - { - FT_Error - (*init)( AFM_Parser parser, - FT_Memory memory, - FT_Byte* base, - FT_Byte* limit ); - - void - (*done)( AFM_Parser parser ); - - FT_Error - (*parse)( AFM_Parser parser ); - - } AFM_Parser_FuncsRec; - - - typedef struct AFM_StreamRec_* AFM_Stream; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* AFM_ParserRec */ - /* */ - /* <Description> */ - /* An AFM_Parser is a parser for the AFM files. */ - /* */ - /* <Fields> */ - /* memory :: The object used for memory operations (alloc and */ - /* realloc). */ - /* */ - /* stream :: This is an opaque object. */ - /* */ - /* FontInfo :: The result will be stored here. */ - /* */ - /* get_index :: A user provided function to get a glyph index by its */ - /* name. */ - /* */ - typedef struct AFM_ParserRec_ - { - FT_Memory memory; - AFM_Stream stream; - - AFM_FontInfo FontInfo; - - FT_Int - (*get_index)( const char* name, - FT_Offset len, - void* user_data ); - - void* user_data; - - } AFM_ParserRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** TYPE1 CHARMAPS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef const struct T1_CMap_ClassesRec_* T1_CMap_Classes; - - typedef struct T1_CMap_ClassesRec_ - { - FT_CMap_Class standard; - FT_CMap_Class expert; - FT_CMap_Class custom; - FT_CMap_Class unicode; - - } T1_CMap_ClassesRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** PSAux Module Interface *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct PSAux_ServiceRec_ - { - /* don't use `PS_Table_Funcs' and friends to avoid compiler warnings */ - const PS_Table_FuncsRec* ps_table_funcs; - const PS_Parser_FuncsRec* ps_parser_funcs; - const T1_Builder_FuncsRec* t1_builder_funcs; - const T1_Decoder_FuncsRec* t1_decoder_funcs; - - void - (*t1_decrypt)( FT_Byte* buffer, - FT_Offset length, - FT_UShort seed ); - - T1_CMap_Classes t1_cmap_classes; - - /* fields after this comment line were added after version 2.1.10 */ - const AFM_Parser_FuncsRec* afm_parser_funcs; - - } PSAux_ServiceRec, *PSAux_Service; - - /* backwards-compatible type definition */ - typedef PSAux_ServiceRec PSAux_Interface; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** Some convenience functions *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - -#define IS_PS_NEWLINE( ch ) \ - ( (ch) == '\r' || \ - (ch) == '\n' ) - -#define IS_PS_SPACE( ch ) \ - ( (ch) == ' ' || \ - IS_PS_NEWLINE( ch ) || \ - (ch) == '\t' || \ - (ch) == '\f' || \ - (ch) == '\0' ) - -#define IS_PS_SPECIAL( ch ) \ - ( (ch) == '/' || \ - (ch) == '(' || (ch) == ')' || \ - (ch) == '<' || (ch) == '>' || \ - (ch) == '[' || (ch) == ']' || \ - (ch) == '{' || (ch) == '}' || \ - (ch) == '%' ) - -#define IS_PS_DELIM( ch ) \ - ( IS_PS_SPACE( ch ) || \ - IS_PS_SPECIAL( ch ) ) - -#define IS_PS_DIGIT( ch ) \ - ( (ch) >= '0' && (ch) <= '9' ) - -#define IS_PS_XDIGIT( ch ) \ - ( IS_PS_DIGIT( ch ) || \ - ( (ch) >= 'A' && (ch) <= 'F' ) || \ - ( (ch) >= 'a' && (ch) <= 'f' ) ) - -#define IS_PS_BASE85( ch ) \ - ( (ch) >= '!' && (ch) <= 'u' ) - -#define IS_PS_TOKEN( cur, limit, token ) \ - ( (char)(cur)[0] == (token)[0] && \ - ( (cur) + sizeof ( (token) ) == (limit) || \ - ( (cur) + sizeof( (token) ) < (limit) && \ - IS_PS_DELIM( (cur)[sizeof ( (token) ) - 1] ) ) ) && \ - ft_strncmp( (char*)(cur), (token), sizeof ( (token) ) - 1 ) == 0 ) - - -FT_END_HEADER - -#endif /* __PSAUX_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/pshints.h b/lib/linux/include/internal/pshints.h deleted file mode 100644 index f05ea68..0000000 --- a/lib/linux/include/internal/pshints.h +++ /dev/null @@ -1,722 +0,0 @@ -/***************************************************************************/ -/* */ -/* pshints.h */ -/* */ -/* Interface to Postscript-specific (Type 1 and Type 2) hints */ -/* recorders (specification only). These are used to support native */ -/* T1/T2 hints in the `type1', `cid', and `cff' font drivers. */ -/* */ -/* Copyright 2001-2003, 2005-2007, 2009, 2012, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __PSHINTS_H__ -#define __PSHINTS_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H -#include FT_TYPE1_TABLES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** INTERNAL REPRESENTATION OF GLOBALS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct PSH_GlobalsRec_* PSH_Globals; - - typedef FT_Error - (*PSH_Globals_NewFunc)( FT_Memory memory, - T1_Private* private_dict, - PSH_Globals* aglobals ); - - typedef void - (*PSH_Globals_SetScaleFunc)( PSH_Globals globals, - FT_Fixed x_scale, - FT_Fixed y_scale, - FT_Fixed x_delta, - FT_Fixed y_delta ); - - typedef void - (*PSH_Globals_DestroyFunc)( PSH_Globals globals ); - - - typedef struct PSH_Globals_FuncsRec_ - { - PSH_Globals_NewFunc create; - PSH_Globals_SetScaleFunc set_scale; - PSH_Globals_DestroyFunc destroy; - - } PSH_Globals_FuncsRec, *PSH_Globals_Funcs; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** PUBLIC TYPE 1 HINTS RECORDER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /************************************************************************* - * - * @type: - * T1_Hints - * - * @description: - * This is a handle to an opaque structure used to record glyph hints - * from a Type 1 character glyph character string. - * - * The methods used to operate on this object are defined by the - * @T1_Hints_FuncsRec structure. Recording glyph hints is normally - * achieved through the following scheme: - * - * - Open a new hint recording session by calling the `open' method. - * This rewinds the recorder and prepare it for new input. - * - * - For each hint found in the glyph charstring, call the corresponding - * method (`stem', `stem3', or `reset'). Note that these functions do - * not return an error code. - * - * - Close the recording session by calling the `close' method. It - * returns an error code if the hints were invalid or something - * strange happened (e.g., memory shortage). - * - * The hints accumulated in the object can later be used by the - * PostScript hinter. - * - */ - typedef struct T1_HintsRec_* T1_Hints; - - - /************************************************************************* - * - * @type: - * T1_Hints_Funcs - * - * @description: - * A pointer to the @T1_Hints_FuncsRec structure that defines the API of - * a given @T1_Hints object. - * - */ - typedef const struct T1_Hints_FuncsRec_* T1_Hints_Funcs; - - - /************************************************************************* - * - * @functype: - * T1_Hints_OpenFunc - * - * @description: - * A method of the @T1_Hints class used to prepare it for a new Type 1 - * hints recording session. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * @note: - * You should always call the @T1_Hints_CloseFunc method in order to - * close an opened recording session. - * - */ - typedef void - (*T1_Hints_OpenFunc)( T1_Hints hints ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_SetStemFunc - * - * @description: - * A method of the @T1_Hints class used to record a new horizontal or - * vertical stem. This corresponds to the Type 1 `hstem' and `vstem' - * operators. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * dimension :: - * 0 for horizontal stems (hstem), 1 for vertical ones (vstem). - * - * coords :: - * Array of 2 coordinates in 16.16 format, used as (position,length) - * stem descriptor. - * - * @note: - * Use vertical coordinates (y) for horizontal stems (dim=0). Use - * horizontal coordinates (x) for vertical stems (dim=1). - * - * `coords[0]' is the absolute stem position (lowest coordinate); - * `coords[1]' is the length. - * - * The length can be negative, in which case it must be either -20 or - * -21. It is interpreted as a `ghost' stem, according to the Type 1 - * specification. - * - * If the length is -21 (corresponding to a bottom ghost stem), then - * the real stem position is `coords[0]+coords[1]'. - * - */ - typedef void - (*T1_Hints_SetStemFunc)( T1_Hints hints, - FT_UInt dimension, - FT_Fixed* coords ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_SetStem3Func - * - * @description: - * A method of the @T1_Hints class used to record three - * counter-controlled horizontal or vertical stems at once. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * dimension :: - * 0 for horizontal stems, 1 for vertical ones. - * - * coords :: - * An array of 6 values in 16.16 format, holding 3 (position,length) - * pairs for the counter-controlled stems. - * - * @note: - * Use vertical coordinates (y) for horizontal stems (dim=0). Use - * horizontal coordinates (x) for vertical stems (dim=1). - * - * The lengths cannot be negative (ghost stems are never - * counter-controlled). - * - */ - typedef void - (*T1_Hints_SetStem3Func)( T1_Hints hints, - FT_UInt dimension, - FT_Fixed* coords ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_ResetFunc - * - * @description: - * A method of the @T1_Hints class used to reset the stems hints in a - * recording session. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * end_point :: - * The index of the last point in the input glyph in which the - * previously defined hints apply. - * - */ - typedef void - (*T1_Hints_ResetFunc)( T1_Hints hints, - FT_UInt end_point ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_CloseFunc - * - * @description: - * A method of the @T1_Hints class used to close a hint recording - * session. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * end_point :: - * The index of the last point in the input glyph. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * The error code is set to indicate that an error occurred during the - * recording session. - * - */ - typedef FT_Error - (*T1_Hints_CloseFunc)( T1_Hints hints, - FT_UInt end_point ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_ApplyFunc - * - * @description: - * A method of the @T1_Hints class used to apply hints to the - * corresponding glyph outline. Must be called once all hints have been - * recorded. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * outline :: - * A pointer to the target outline descriptor. - * - * globals :: - * The hinter globals for this font. - * - * hint_mode :: - * Hinting information. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * On input, all points within the outline are in font coordinates. On - * output, they are in 1/64th of pixels. - * - * The scaling transformation is taken from the `globals' object which - * must correspond to the same font as the glyph. - * - */ - typedef FT_Error - (*T1_Hints_ApplyFunc)( T1_Hints hints, - FT_Outline* outline, - PSH_Globals globals, - FT_Render_Mode hint_mode ); - - - /************************************************************************* - * - * @struct: - * T1_Hints_FuncsRec - * - * @description: - * The structure used to provide the API to @T1_Hints objects. - * - * @fields: - * hints :: - * A handle to the T1 Hints recorder. - * - * open :: - * The function to open a recording session. - * - * close :: - * The function to close a recording session. - * - * stem :: - * The function to set a simple stem. - * - * stem3 :: - * The function to set counter-controlled stems. - * - * reset :: - * The function to reset stem hints. - * - * apply :: - * The function to apply the hints to the corresponding glyph outline. - * - */ - typedef struct T1_Hints_FuncsRec_ - { - T1_Hints hints; - T1_Hints_OpenFunc open; - T1_Hints_CloseFunc close; - T1_Hints_SetStemFunc stem; - T1_Hints_SetStem3Func stem3; - T1_Hints_ResetFunc reset; - T1_Hints_ApplyFunc apply; - - } T1_Hints_FuncsRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** PUBLIC TYPE 2 HINTS RECORDER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /************************************************************************* - * - * @type: - * T2_Hints - * - * @description: - * This is a handle to an opaque structure used to record glyph hints - * from a Type 2 character glyph character string. - * - * The methods used to operate on this object are defined by the - * @T2_Hints_FuncsRec structure. Recording glyph hints is normally - * achieved through the following scheme: - * - * - Open a new hint recording session by calling the `open' method. - * This rewinds the recorder and prepare it for new input. - * - * - For each hint found in the glyph charstring, call the corresponding - * method (`stems', `hintmask', `counters'). Note that these - * functions do not return an error code. - * - * - Close the recording session by calling the `close' method. It - * returns an error code if the hints were invalid or something - * strange happened (e.g., memory shortage). - * - * The hints accumulated in the object can later be used by the - * Postscript hinter. - * - */ - typedef struct T2_HintsRec_* T2_Hints; - - - /************************************************************************* - * - * @type: - * T2_Hints_Funcs - * - * @description: - * A pointer to the @T2_Hints_FuncsRec structure that defines the API of - * a given @T2_Hints object. - * - */ - typedef const struct T2_Hints_FuncsRec_* T2_Hints_Funcs; - - - /************************************************************************* - * - * @functype: - * T2_Hints_OpenFunc - * - * @description: - * A method of the @T2_Hints class used to prepare it for a new Type 2 - * hints recording session. - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * @note: - * You should always call the @T2_Hints_CloseFunc method in order to - * close an opened recording session. - * - */ - typedef void - (*T2_Hints_OpenFunc)( T2_Hints hints ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_StemsFunc - * - * @description: - * A method of the @T2_Hints class used to set the table of stems in - * either the vertical or horizontal dimension. Equivalent to the - * `hstem', `vstem', `hstemhm', and `vstemhm' Type 2 operators. - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * dimension :: - * 0 for horizontal stems (hstem), 1 for vertical ones (vstem). - * - * count :: - * The number of stems. - * - * coords :: - * An array of `count' (position,length) pairs in 16.16 format. - * - * @note: - * Use vertical coordinates (y) for horizontal stems (dim=0). Use - * horizontal coordinates (x) for vertical stems (dim=1). - * - * There are `2*count' elements in the `coords' array. Each even - * element is an absolute position in font units, each odd element is a - * length in font units. - * - * A length can be negative, in which case it must be either -20 or - * -21. It is interpreted as a `ghost' stem, according to the Type 1 - * specification. - * - */ - typedef void - (*T2_Hints_StemsFunc)( T2_Hints hints, - FT_UInt dimension, - FT_UInt count, - FT_Fixed* coordinates ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_MaskFunc - * - * @description: - * A method of the @T2_Hints class used to set a given hintmask (this - * corresponds to the `hintmask' Type 2 operator). - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * end_point :: - * The glyph index of the last point to which the previously defined - * or activated hints apply. - * - * bit_count :: - * The number of bits in the hint mask. - * - * bytes :: - * An array of bytes modelling the hint mask. - * - * @note: - * If the hintmask starts the charstring (before any glyph point - * definition), the value of `end_point' should be 0. - * - * `bit_count' is the number of meaningful bits in the `bytes' array; it - * must be equal to the total number of hints defined so far (i.e., - * horizontal+verticals). - * - * The `bytes' array can come directly from the Type 2 charstring and - * respects the same format. - * - */ - typedef void - (*T2_Hints_MaskFunc)( T2_Hints hints, - FT_UInt end_point, - FT_UInt bit_count, - const FT_Byte* bytes ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_CounterFunc - * - * @description: - * A method of the @T2_Hints class used to set a given counter mask - * (this corresponds to the `hintmask' Type 2 operator). - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * end_point :: - * A glyph index of the last point to which the previously defined or - * active hints apply. - * - * bit_count :: - * The number of bits in the hint mask. - * - * bytes :: - * An array of bytes modelling the hint mask. - * - * @note: - * If the hintmask starts the charstring (before any glyph point - * definition), the value of `end_point' should be 0. - * - * `bit_count' is the number of meaningful bits in the `bytes' array; it - * must be equal to the total number of hints defined so far (i.e., - * horizontal+verticals). - * - * The `bytes' array can come directly from the Type 2 charstring and - * respects the same format. - * - */ - typedef void - (*T2_Hints_CounterFunc)( T2_Hints hints, - FT_UInt bit_count, - const FT_Byte* bytes ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_CloseFunc - * - * @description: - * A method of the @T2_Hints class used to close a hint recording - * session. - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * end_point :: - * The index of the last point in the input glyph. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * The error code is set to indicate that an error occurred during the - * recording session. - * - */ - typedef FT_Error - (*T2_Hints_CloseFunc)( T2_Hints hints, - FT_UInt end_point ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_ApplyFunc - * - * @description: - * A method of the @T2_Hints class used to apply hints to the - * corresponding glyph outline. Must be called after the `close' - * method. - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * outline :: - * A pointer to the target outline descriptor. - * - * globals :: - * The hinter globals for this font. - * - * hint_mode :: - * Hinting information. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * On input, all points within the outline are in font coordinates. On - * output, they are in 1/64th of pixels. - * - * The scaling transformation is taken from the `globals' object which - * must correspond to the same font than the glyph. - * - */ - typedef FT_Error - (*T2_Hints_ApplyFunc)( T2_Hints hints, - FT_Outline* outline, - PSH_Globals globals, - FT_Render_Mode hint_mode ); - - - /************************************************************************* - * - * @struct: - * T2_Hints_FuncsRec - * - * @description: - * The structure used to provide the API to @T2_Hints objects. - * - * @fields: - * hints :: - * A handle to the T2 hints recorder object. - * - * open :: - * The function to open a recording session. - * - * close :: - * The function to close a recording session. - * - * stems :: - * The function to set the dimension's stems table. - * - * hintmask :: - * The function to set hint masks. - * - * counter :: - * The function to set counter masks. - * - * apply :: - * The function to apply the hints on the corresponding glyph outline. - * - */ - typedef struct T2_Hints_FuncsRec_ - { - T2_Hints hints; - T2_Hints_OpenFunc open; - T2_Hints_CloseFunc close; - T2_Hints_StemsFunc stems; - T2_Hints_MaskFunc hintmask; - T2_Hints_CounterFunc counter; - T2_Hints_ApplyFunc apply; - - } T2_Hints_FuncsRec; - - - /* */ - - - typedef struct PSHinter_Interface_ - { - PSH_Globals_Funcs (*get_globals_funcs)( FT_Module module ); - T1_Hints_Funcs (*get_t1_funcs) ( FT_Module module ); - T2_Hints_Funcs (*get_t2_funcs) ( FT_Module module ); - - } PSHinter_Interface; - - typedef PSHinter_Interface* PSHinter_Service; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_PSHINTER_INTERFACE( \ - class_, \ - get_globals_funcs_, \ - get_t1_funcs_, \ - get_t2_funcs_ ) \ - static const PSHinter_Interface class_ = \ - { \ - get_globals_funcs_, \ - get_t1_funcs_, \ - get_t2_funcs_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_PSHINTER_INTERFACE( \ - class_, \ - get_globals_funcs_, \ - get_t1_funcs_, \ - get_t2_funcs_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - PSHinter_Interface* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_globals_funcs = get_globals_funcs_; \ - clazz->get_t1_funcs = get_t1_funcs_; \ - clazz->get_t2_funcs = get_t2_funcs_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - -FT_END_HEADER - -#endif /* __PSHINTS_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svbdf.h b/lib/linux/include/internal/services/svbdf.h deleted file mode 100644 index 0974752..0000000 --- a/lib/linux/include/internal/services/svbdf.h +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************/ -/* */ -/* svbdf.h */ -/* */ -/* The FreeType BDF services (specification). */ -/* */ -/* Copyright 2003, 2009, 2012 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVBDF_H__ -#define __SVBDF_H__ - -#include FT_BDF_H -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_BDF "bdf" - - typedef FT_Error - (*FT_BDF_GetCharsetIdFunc)( FT_Face face, - const char* *acharset_encoding, - const char* *acharset_registry ); - - typedef FT_Error - (*FT_BDF_GetPropertyFunc)( FT_Face face, - const char* prop_name, - BDF_PropertyRec *aproperty ); - - - FT_DEFINE_SERVICE( BDF ) - { - FT_BDF_GetCharsetIdFunc get_charset_id; - FT_BDF_GetPropertyFunc get_property; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_BDFRec( class_, \ - get_charset_id_, \ - get_property_ ) \ - static const FT_Service_BDFRec class_ = \ - { \ - get_charset_id_, get_property_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_BDFRec( class_, \ - get_charset_id_, \ - get_property_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_BDFRec* clazz ) \ - { \ - clazz->get_charset_id = get_charset_id_; \ - clazz->get_property = get_property_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVBDF_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svcid.h b/lib/linux/include/internal/services/svcid.h deleted file mode 100644 index 6be3f93..0000000 --- a/lib/linux/include/internal/services/svcid.h +++ /dev/null @@ -1,89 +0,0 @@ -/***************************************************************************/ -/* */ -/* svcid.h */ -/* */ -/* The FreeType CID font services (specification). */ -/* */ -/* Copyright 2007, 2009, 2012 by Derek Clegg, Michael Toftdal. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVCID_H__ -#define __SVCID_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_CID "CID" - - typedef FT_Error - (*FT_CID_GetRegistryOrderingSupplementFunc)( FT_Face face, - const char* *registry, - const char* *ordering, - FT_Int *supplement ); - typedef FT_Error - (*FT_CID_GetIsInternallyCIDKeyedFunc)( FT_Face face, - FT_Bool *is_cid ); - typedef FT_Error - (*FT_CID_GetCIDFromGlyphIndexFunc)( FT_Face face, - FT_UInt glyph_index, - FT_UInt *cid ); - - FT_DEFINE_SERVICE( CID ) - { - FT_CID_GetRegistryOrderingSupplementFunc get_ros; - FT_CID_GetIsInternallyCIDKeyedFunc get_is_cid; - FT_CID_GetCIDFromGlyphIndexFunc get_cid_from_glyph_index; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_CIDREC( class_, \ - get_ros_, \ - get_is_cid_, \ - get_cid_from_glyph_index_ ) \ - static const FT_Service_CIDRec class_ = \ - { \ - get_ros_, get_is_cid_, get_cid_from_glyph_index_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_CIDREC( class_, \ - get_ros_, \ - get_is_cid_, \ - get_cid_from_glyph_index_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_CIDRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_ros = get_ros_; \ - clazz->get_is_cid = get_is_cid_; \ - clazz->get_cid_from_glyph_index = get_cid_from_glyph_index_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVCID_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svgldict.h b/lib/linux/include/internal/services/svgldict.h deleted file mode 100644 index 1d12534..0000000 --- a/lib/linux/include/internal/services/svgldict.h +++ /dev/null @@ -1,88 +0,0 @@ -/***************************************************************************/ -/* */ -/* svgldict.h */ -/* */ -/* The FreeType glyph dictionary services (specification). */ -/* */ -/* Copyright 2003, 2009, 2012 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVGLDICT_H__ -#define __SVGLDICT_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - - /* - * A service used to retrieve glyph names, as well as to find the - * index of a given glyph name in a font. - * - */ - -#define FT_SERVICE_ID_GLYPH_DICT "glyph-dict" - - - typedef FT_Error - (*FT_GlyphDict_GetNameFunc)( FT_Face face, - FT_UInt glyph_index, - FT_Pointer buffer, - FT_UInt buffer_max ); - - typedef FT_UInt - (*FT_GlyphDict_NameIndexFunc)( FT_Face face, - FT_String* glyph_name ); - - - FT_DEFINE_SERVICE( GlyphDict ) - { - FT_GlyphDict_GetNameFunc get_name; - FT_GlyphDict_NameIndexFunc name_index; /* optional */ - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \ - get_name_, \ - name_index_) \ - static const FT_Service_GlyphDictRec class_ = \ - { \ - get_name_, name_index_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \ - get_name_, \ - name_index_) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_GlyphDictRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_name = get_name_; \ - clazz->name_index = name_index_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVGLDICT_H__ */ diff --git a/lib/linux/include/internal/services/svgxval.h b/lib/linux/include/internal/services/svgxval.h deleted file mode 100644 index 2cdab50..0000000 --- a/lib/linux/include/internal/services/svgxval.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************/ -/* */ -/* svgxval.h */ -/* */ -/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ -/* */ -/* Copyright 2004, 2005 by */ -/* Masatake YAMATO, Red Hat K.K., */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/***************************************************************************/ -/* */ -/* gxvalid is derived from both gxlayout module and otvalid module. */ -/* Development of gxlayout is supported by the Information-technology */ -/* Promotion Agency(IPA), Japan. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVGXVAL_H__ -#define __SVGXVAL_H__ - -#include FT_GX_VALIDATE_H -#include FT_INTERNAL_VALIDATE_H - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_GX_VALIDATE "truetypegx-validate" -#define FT_SERVICE_ID_CLASSICKERN_VALIDATE "classickern-validate" - - typedef FT_Error - (*gxv_validate_func)( FT_Face face, - FT_UInt gx_flags, - FT_Bytes tables[FT_VALIDATE_GX_LENGTH], - FT_UInt table_length ); - - - typedef FT_Error - (*ckern_validate_func)( FT_Face face, - FT_UInt ckern_flags, - FT_Bytes *ckern_table ); - - - FT_DEFINE_SERVICE( GXvalidate ) - { - gxv_validate_func validate; - }; - - FT_DEFINE_SERVICE( CKERNvalidate ) - { - ckern_validate_func validate; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVGXVAL_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svkern.h b/lib/linux/include/internal/services/svkern.h deleted file mode 100644 index 1488adf..0000000 --- a/lib/linux/include/internal/services/svkern.h +++ /dev/null @@ -1,51 +0,0 @@ -/***************************************************************************/ -/* */ -/* svkern.h */ -/* */ -/* The FreeType Kerning service (specification). */ -/* */ -/* Copyright 2006 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVKERN_H__ -#define __SVKERN_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_TRUETYPE_TABLES_H - - -FT_BEGIN_HEADER - -#define FT_SERVICE_ID_KERNING "kerning" - - - typedef FT_Error - (*FT_Kerning_TrackGetFunc)( FT_Face face, - FT_Fixed point_size, - FT_Int degree, - FT_Fixed* akerning ); - - FT_DEFINE_SERVICE( Kerning ) - { - FT_Kerning_TrackGetFunc get_track; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVKERN_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svmm.h b/lib/linux/include/internal/services/svmm.h deleted file mode 100644 index b08a663..0000000 --- a/lib/linux/include/internal/services/svmm.h +++ /dev/null @@ -1,113 +0,0 @@ -/***************************************************************************/ -/* */ -/* svmm.h */ -/* */ -/* The FreeType Multiple Masters and GX var services (specification). */ -/* */ -/* Copyright 2003, 2004, 2009, 2012 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVMM_H__ -#define __SVMM_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - - /* - * A service used to manage multiple-masters data in a given face. - * - * See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H). - * - */ - -#define FT_SERVICE_ID_MULTI_MASTERS "multi-masters" - - - typedef FT_Error - (*FT_Get_MM_Func)( FT_Face face, - FT_Multi_Master* master ); - - typedef FT_Error - (*FT_Get_MM_Var_Func)( FT_Face face, - FT_MM_Var* *master ); - - typedef FT_Error - (*FT_Set_MM_Design_Func)( FT_Face face, - FT_UInt num_coords, - FT_Long* coords ); - - typedef FT_Error - (*FT_Set_Var_Design_Func)( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - typedef FT_Error - (*FT_Set_MM_Blend_Func)( FT_Face face, - FT_UInt num_coords, - FT_Long* coords ); - - - FT_DEFINE_SERVICE( MultiMasters ) - { - FT_Get_MM_Func get_mm; - FT_Set_MM_Design_Func set_mm_design; - FT_Set_MM_Blend_Func set_mm_blend; - FT_Get_MM_Var_Func get_mm_var; - FT_Set_Var_Design_Func set_var_design; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \ - get_mm_, \ - set_mm_design_, \ - set_mm_blend_, \ - get_mm_var_, \ - set_var_design_ ) \ - static const FT_Service_MultiMastersRec class_ = \ - { \ - get_mm_, set_mm_design_, set_mm_blend_, get_mm_var_, set_var_design_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \ - get_mm_, \ - set_mm_design_, \ - set_mm_blend_, \ - get_mm_var_, \ - set_var_design_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_MultiMastersRec* clazz ) \ - { \ - clazz->get_mm = get_mm_; \ - clazz->set_mm_design = set_mm_design_; \ - clazz->set_mm_blend = set_mm_blend_; \ - clazz->get_mm_var = get_mm_var_; \ - clazz->set_var_design = set_var_design_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - -#endif /* __SVMM_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svotval.h b/lib/linux/include/internal/services/svotval.h deleted file mode 100644 index 970bbd5..0000000 --- a/lib/linux/include/internal/services/svotval.h +++ /dev/null @@ -1,55 +0,0 @@ -/***************************************************************************/ -/* */ -/* svotval.h */ -/* */ -/* The FreeType OpenType validation service (specification). */ -/* */ -/* Copyright 2004, 2006 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVOTVAL_H__ -#define __SVOTVAL_H__ - -#include FT_OPENTYPE_VALIDATE_H -#include FT_INTERNAL_VALIDATE_H - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_OPENTYPE_VALIDATE "opentype-validate" - - - typedef FT_Error - (*otv_validate_func)( FT_Face volatile face, - FT_UInt ot_flags, - FT_Bytes *base, - FT_Bytes *gdef, - FT_Bytes *gpos, - FT_Bytes *gsub, - FT_Bytes *jstf ); - - - FT_DEFINE_SERVICE( OTvalidate ) - { - otv_validate_func validate; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVOTVAL_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svpfr.h b/lib/linux/include/internal/services/svpfr.h deleted file mode 100644 index 462786f..0000000 --- a/lib/linux/include/internal/services/svpfr.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************/ -/* */ -/* svpfr.h */ -/* */ -/* Internal PFR service functions (specification). */ -/* */ -/* Copyright 2003, 2006 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPFR_H__ -#define __SVPFR_H__ - -#include FT_PFR_H -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_PFR_METRICS "pfr-metrics" - - - typedef FT_Error - (*FT_PFR_GetMetricsFunc)( FT_Face face, - FT_UInt *aoutline, - FT_UInt *ametrics, - FT_Fixed *ax_scale, - FT_Fixed *ay_scale ); - - typedef FT_Error - (*FT_PFR_GetKerningFunc)( FT_Face face, - FT_UInt left, - FT_UInt right, - FT_Vector *avector ); - - typedef FT_Error - (*FT_PFR_GetAdvanceFunc)( FT_Face face, - FT_UInt gindex, - FT_Pos *aadvance ); - - - FT_DEFINE_SERVICE( PfrMetrics ) - { - FT_PFR_GetMetricsFunc get_metrics; - FT_PFR_GetKerningFunc get_kerning; - FT_PFR_GetAdvanceFunc get_advance; - - }; - - /* */ - -FT_END_HEADER - -#endif /* __SVPFR_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svpostnm.h b/lib/linux/include/internal/services/svpostnm.h deleted file mode 100644 index a76b4fe..0000000 --- a/lib/linux/include/internal/services/svpostnm.h +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************/ -/* */ -/* svpostnm.h */ -/* */ -/* The FreeType PostScript name services (specification). */ -/* */ -/* Copyright 2003, 2007, 2009, 2012 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPOSTNM_H__ -#define __SVPOSTNM_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - /* - * A trivial service used to retrieve the PostScript name of a given - * font when available. The `get_name' field should never be NULL. - * - * The corresponding function can return NULL to indicate that the - * PostScript name is not available. - * - * The name is owned by the face and will be destroyed with it. - */ - -#define FT_SERVICE_ID_POSTSCRIPT_FONT_NAME "postscript-font-name" - - - typedef const char* - (*FT_PsName_GetFunc)( FT_Face face ); - - - FT_DEFINE_SERVICE( PsFontName ) - { - FT_PsName_GetFunc get_ps_font_name; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \ - static const FT_Service_PsFontNameRec class_ = \ - { \ - get_ps_font_name_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_PsFontNameRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_ps_font_name = get_ps_font_name_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVPOSTNM_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svprop.h b/lib/linux/include/internal/services/svprop.h deleted file mode 100644 index 22da0bb..0000000 --- a/lib/linux/include/internal/services/svprop.h +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************/ -/* */ -/* svprop.h */ -/* */ -/* The FreeType property service (specification). */ -/* */ -/* Copyright 2012 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPROP_H__ -#define __SVPROP_H__ - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_PROPERTIES "properties" - - - typedef FT_Error - (*FT_Properties_SetFunc)( FT_Module module, - const char* property_name, - const void* value ); - - typedef FT_Error - (*FT_Properties_GetFunc)( FT_Module module, - const char* property_name, - void* value ); - - - FT_DEFINE_SERVICE( Properties ) - { - FT_Properties_SetFunc set_property; - FT_Properties_GetFunc get_property; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ - set_property_, \ - get_property_ ) \ - static const FT_Service_PropertiesRec class_ = \ - { \ - set_property_, \ - get_property_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ - set_property_, \ - get_property_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_PropertiesRec* clazz ) \ - { \ - clazz->set_property = set_property_; \ - clazz->get_property = get_property_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVPROP_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svpscmap.h b/lib/linux/include/internal/services/svpscmap.h deleted file mode 100644 index 030948e..0000000 --- a/lib/linux/include/internal/services/svpscmap.h +++ /dev/null @@ -1,177 +0,0 @@ -/***************************************************************************/ -/* */ -/* svpscmap.h */ -/* */ -/* The FreeType PostScript charmap service (specification). */ -/* */ -/* Copyright 2003, 2006, 2009, 2012 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPSCMAP_H__ -#define __SVPSCMAP_H__ - -#include FT_INTERNAL_OBJECTS_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_POSTSCRIPT_CMAPS "postscript-cmaps" - - - /* - * Adobe glyph name to unicode value. - */ - typedef FT_UInt32 - (*PS_Unicode_ValueFunc)( const char* glyph_name ); - - /* - * Macintosh name id to glyph name. NULL if invalid index. - */ - typedef const char* - (*PS_Macintosh_NameFunc)( FT_UInt name_index ); - - /* - * Adobe standard string ID to glyph name. NULL if invalid index. - */ - typedef const char* - (*PS_Adobe_Std_StringsFunc)( FT_UInt string_index ); - - - /* - * Simple unicode -> glyph index charmap built from font glyph names - * table. - */ - typedef struct PS_UniMap_ - { - FT_UInt32 unicode; /* bit 31 set: is glyph variant */ - FT_UInt glyph_index; - - } PS_UniMap; - - - typedef struct PS_UnicodesRec_* PS_Unicodes; - - typedef struct PS_UnicodesRec_ - { - FT_CMapRec cmap; - FT_UInt num_maps; - PS_UniMap* maps; - - } PS_UnicodesRec; - - - /* - * A function which returns a glyph name for a given index. Returns - * NULL if invalid index. - */ - typedef const char* - (*PS_GetGlyphNameFunc)( FT_Pointer data, - FT_UInt string_index ); - - /* - * A function used to release the glyph name returned by - * PS_GetGlyphNameFunc, when needed - */ - typedef void - (*PS_FreeGlyphNameFunc)( FT_Pointer data, - const char* name ); - - typedef FT_Error - (*PS_Unicodes_InitFunc)( FT_Memory memory, - PS_Unicodes unicodes, - FT_UInt num_glyphs, - PS_GetGlyphNameFunc get_glyph_name, - PS_FreeGlyphNameFunc free_glyph_name, - FT_Pointer glyph_data ); - - typedef FT_UInt - (*PS_Unicodes_CharIndexFunc)( PS_Unicodes unicodes, - FT_UInt32 unicode ); - - typedef FT_UInt32 - (*PS_Unicodes_CharNextFunc)( PS_Unicodes unicodes, - FT_UInt32 *unicode ); - - - FT_DEFINE_SERVICE( PsCMaps ) - { - PS_Unicode_ValueFunc unicode_value; - - PS_Unicodes_InitFunc unicodes_init; - PS_Unicodes_CharIndexFunc unicodes_char_index; - PS_Unicodes_CharNextFunc unicodes_char_next; - - PS_Macintosh_NameFunc macintosh_name; - PS_Adobe_Std_StringsFunc adobe_std_strings; - const unsigned short* adobe_std_encoding; - const unsigned short* adobe_expert_encoding; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_PSCMAPSREC( class_, \ - unicode_value_, \ - unicodes_init_, \ - unicodes_char_index_, \ - unicodes_char_next_, \ - macintosh_name_, \ - adobe_std_strings_, \ - adobe_std_encoding_, \ - adobe_expert_encoding_ ) \ - static const FT_Service_PsCMapsRec class_ = \ - { \ - unicode_value_, unicodes_init_, \ - unicodes_char_index_, unicodes_char_next_, macintosh_name_, \ - adobe_std_strings_, adobe_std_encoding_, adobe_expert_encoding_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_PSCMAPSREC( class_, \ - unicode_value_, \ - unicodes_init_, \ - unicodes_char_index_, \ - unicodes_char_next_, \ - macintosh_name_, \ - adobe_std_strings_, \ - adobe_std_encoding_, \ - adobe_expert_encoding_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_PsCMapsRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->unicode_value = unicode_value_; \ - clazz->unicodes_init = unicodes_init_; \ - clazz->unicodes_char_index = unicodes_char_index_; \ - clazz->unicodes_char_next = unicodes_char_next_; \ - clazz->macintosh_name = macintosh_name_; \ - clazz->adobe_std_strings = adobe_std_strings_; \ - clazz->adobe_std_encoding = adobe_std_encoding_; \ - clazz->adobe_expert_encoding = adobe_expert_encoding_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVPSCMAP_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svpsinfo.h b/lib/linux/include/internal/services/svpsinfo.h deleted file mode 100644 index 4bfb506..0000000 --- a/lib/linux/include/internal/services/svpsinfo.h +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************/ -/* */ -/* svpsinfo.h */ -/* */ -/* The FreeType PostScript info service (specification). */ -/* */ -/* Copyright 2003, 2004, 2009, 2011, 2012 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPSINFO_H__ -#define __SVPSINFO_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_INTERNAL_TYPE1_TYPES_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_POSTSCRIPT_INFO "postscript-info" - - - typedef FT_Error - (*PS_GetFontInfoFunc)( FT_Face face, - PS_FontInfoRec* afont_info ); - - typedef FT_Error - (*PS_GetFontExtraFunc)( FT_Face face, - PS_FontExtraRec* afont_extra ); - - typedef FT_Int - (*PS_HasGlyphNamesFunc)( FT_Face face ); - - typedef FT_Error - (*PS_GetFontPrivateFunc)( FT_Face face, - PS_PrivateRec* afont_private ); - - typedef FT_Long - (*PS_GetFontValueFunc)( FT_Face face, - PS_Dict_Keys key, - FT_UInt idx, - void *value, - FT_Long value_len ); - - - FT_DEFINE_SERVICE( PsInfo ) - { - PS_GetFontInfoFunc ps_get_font_info; - PS_GetFontExtraFunc ps_get_font_extra; - PS_HasGlyphNamesFunc ps_has_glyph_names; - PS_GetFontPrivateFunc ps_get_font_private; - PS_GetFontValueFunc ps_get_font_value; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_PSINFOREC( class_, \ - get_font_info_, \ - ps_get_font_extra_, \ - has_glyph_names_, \ - get_font_private_, \ - get_font_value_ ) \ - static const FT_Service_PsInfoRec class_ = \ - { \ - get_font_info_, ps_get_font_extra_, has_glyph_names_, \ - get_font_private_, get_font_value_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_PSINFOREC( class_, \ - get_font_info_, \ - ps_get_font_extra_, \ - has_glyph_names_, \ - get_font_private_, \ - get_font_value_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_PsInfoRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->ps_get_font_info = get_font_info_; \ - clazz->ps_get_font_extra = ps_get_font_extra_; \ - clazz->ps_has_glyph_names = has_glyph_names_; \ - clazz->ps_get_font_private = get_font_private_; \ - clazz->ps_get_font_value = get_font_value_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVPSINFO_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svsfnt.h b/lib/linux/include/internal/services/svsfnt.h deleted file mode 100644 index d3835aa..0000000 --- a/lib/linux/include/internal/services/svsfnt.h +++ /dev/null @@ -1,103 +0,0 @@ -/***************************************************************************/ -/* */ -/* svsfnt.h */ -/* */ -/* The FreeType SFNT table loading service (specification). */ -/* */ -/* Copyright 2003, 2004, 2009, 2012 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVSFNT_H__ -#define __SVSFNT_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_TRUETYPE_TABLES_H - - -FT_BEGIN_HEADER - - - /* - * SFNT table loading service. - */ - -#define FT_SERVICE_ID_SFNT_TABLE "sfnt-table" - - - /* - * Used to implement FT_Load_Sfnt_Table(). - */ - typedef FT_Error - (*FT_SFNT_TableLoadFunc)( FT_Face face, - FT_ULong tag, - FT_Long offset, - FT_Byte* buffer, - FT_ULong* length ); - - /* - * Used to implement FT_Get_Sfnt_Table(). - */ - typedef void* - (*FT_SFNT_TableGetFunc)( FT_Face face, - FT_Sfnt_Tag tag ); - - - /* - * Used to implement FT_Sfnt_Table_Info(). - */ - typedef FT_Error - (*FT_SFNT_TableInfoFunc)( FT_Face face, - FT_UInt idx, - FT_ULong *tag, - FT_ULong *offset, - FT_ULong *length ); - - - FT_DEFINE_SERVICE( SFNT_Table ) - { - FT_SFNT_TableLoadFunc load_table; - FT_SFNT_TableGetFunc get_table; - FT_SFNT_TableInfoFunc table_info; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ - static const FT_Service_SFNT_TableRec class_ = \ - { \ - load_, get_, info_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_SFNT_TableRec* clazz ) \ - { \ - clazz->load_table = load_; \ - clazz->get_table = get_; \ - clazz->table_info = info_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVSFNT_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svttcmap.h b/lib/linux/include/internal/services/svttcmap.h deleted file mode 100644 index 4370f4c..0000000 --- a/lib/linux/include/internal/services/svttcmap.h +++ /dev/null @@ -1,107 +0,0 @@ -/***************************************************************************/ -/* */ -/* svttcmap.h */ -/* */ -/* The FreeType TrueType/sfnt cmap extra information service. */ -/* */ -/* Copyright 2003 by */ -/* Masatake YAMATO, Redhat K.K. */ -/* */ -/* Copyright 2003, 2008, 2009, 2012, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/* Development of this service is support of - Information-technology Promotion Agency, Japan. */ - -#ifndef __SVTTCMAP_H__ -#define __SVTTCMAP_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_TRUETYPE_TABLES_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_TT_CMAP "tt-cmaps" - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_CMapInfo */ - /* */ - /* <Description> */ - /* A structure used to store TrueType/sfnt specific cmap information */ - /* which is not covered by the generic @FT_CharMap structure. This */ - /* structure can be accessed with the @FT_Get_TT_CMap_Info function. */ - /* */ - /* <Fields> */ - /* language :: */ - /* The language ID used in Mac fonts. Definitions of values are in */ - /* `ttnameid.h'. */ - /* */ - /* format :: */ - /* The cmap format. OpenType 1.5 defines the formats 0 (byte */ - /* encoding table), 2~(high-byte mapping through table), 4~(segment */ - /* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */ - /* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */ - /* coverage), and 14 (Unicode Variation Sequences). */ - /* */ - typedef struct TT_CMapInfo_ - { - FT_ULong language; - FT_Long format; - - } TT_CMapInfo; - - - typedef FT_Error - (*TT_CMap_Info_GetFunc)( FT_CharMap charmap, - TT_CMapInfo *cmap_info ); - - - FT_DEFINE_SERVICE( TTCMaps ) - { - TT_CMap_Info_GetFunc get_cmap_info; - }; - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ - static const FT_Service_TTCMapsRec class_ = \ - { \ - get_cmap_info_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_TTCMapsRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_cmap_info = get_cmap_info_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - -#endif /* __SVTTCMAP_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svtteng.h b/lib/linux/include/internal/services/svtteng.h deleted file mode 100644 index 58e02a6..0000000 --- a/lib/linux/include/internal/services/svtteng.h +++ /dev/null @@ -1,53 +0,0 @@ -/***************************************************************************/ -/* */ -/* svtteng.h */ -/* */ -/* The FreeType TrueType engine query service (specification). */ -/* */ -/* Copyright 2006 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVTTENG_H__ -#define __SVTTENG_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_MODULE_H - - -FT_BEGIN_HEADER - - - /* - * SFNT table loading service. - */ - -#define FT_SERVICE_ID_TRUETYPE_ENGINE "truetype-engine" - - /* - * Used to implement FT_Get_TrueType_Engine_Type - */ - - FT_DEFINE_SERVICE( TrueTypeEngine ) - { - FT_TrueTypeEngineType engine_type; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVTTENG_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svttglyf.h b/lib/linux/include/internal/services/svttglyf.h deleted file mode 100644 index 369eb84..0000000 --- a/lib/linux/include/internal/services/svttglyf.h +++ /dev/null @@ -1,68 +0,0 @@ -/***************************************************************************/ -/* */ -/* svttglyf.h */ -/* */ -/* The FreeType TrueType glyph service. */ -/* */ -/* Copyright 2007, 2009, 2012 by David Turner. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -#ifndef __SVTTGLYF_H__ -#define __SVTTGLYF_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_TRUETYPE_TABLES_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_TT_GLYF "tt-glyf" - - - typedef FT_ULong - (*TT_Glyf_GetLocationFunc)( FT_Face face, - FT_UInt gindex, - FT_ULong *psize ); - - FT_DEFINE_SERVICE( TTGlyf ) - { - TT_Glyf_GetLocationFunc get_location; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_TTGLYFREC( class_, get_location_ ) \ - static const FT_Service_TTGlyfRec class_ = \ - { \ - get_location_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_TTGLYFREC( class_, get_location_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_TTGlyfRec* clazz ) \ - { \ - clazz->get_location = get_location_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - -#endif /* __SVTTGLYF_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svwinfnt.h b/lib/linux/include/internal/services/svwinfnt.h deleted file mode 100644 index 57f7765..0000000 --- a/lib/linux/include/internal/services/svwinfnt.h +++ /dev/null @@ -1,50 +0,0 @@ -/***************************************************************************/ -/* */ -/* svwinfnt.h */ -/* */ -/* The FreeType Windows FNT/FONT service (specification). */ -/* */ -/* Copyright 2003 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVWINFNT_H__ -#define __SVWINFNT_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_WINFONTS_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_WINFNT "winfonts" - - typedef FT_Error - (*FT_WinFnt_GetHeaderFunc)( FT_Face face, - FT_WinFNT_HeaderRec *aheader ); - - - FT_DEFINE_SERVICE( WinFnt ) - { - FT_WinFnt_GetHeaderFunc get_header; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVWINFNT_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/services/svxf86nm.h b/lib/linux/include/internal/services/svxf86nm.h deleted file mode 100644 index ca5d884..0000000 --- a/lib/linux/include/internal/services/svxf86nm.h +++ /dev/null @@ -1,55 +0,0 @@ -/***************************************************************************/ -/* */ -/* svxf86nm.h */ -/* */ -/* The FreeType XFree86 services (specification only). */ -/* */ -/* Copyright 2003 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVXF86NM_H__ -#define __SVXF86NM_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - - /* - * A trivial service used to return the name of a face's font driver, - * according to the XFree86 nomenclature. Note that the service data - * is a simple constant string pointer. - */ - -#define FT_SERVICE_ID_XF86_NAME "xf86-driver-name" - -#define FT_XF86_FORMAT_TRUETYPE "TrueType" -#define FT_XF86_FORMAT_TYPE_1 "Type 1" -#define FT_XF86_FORMAT_BDF "BDF" -#define FT_XF86_FORMAT_PCF "PCF" -#define FT_XF86_FORMAT_TYPE_42 "Type 42" -#define FT_XF86_FORMAT_CID "CID Type 1" -#define FT_XF86_FORMAT_CFF "CFF" -#define FT_XF86_FORMAT_PFR "PFR" -#define FT_XF86_FORMAT_WINFNT "Windows FNT" - - /* */ - - -FT_END_HEADER - - -#endif /* __SVXF86NM_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/sfnt.h b/lib/linux/include/internal/sfnt.h deleted file mode 100644 index d558e86..0000000 --- a/lib/linux/include/internal/sfnt.h +++ /dev/null @@ -1,711 +0,0 @@ -/***************************************************************************/ -/* */ -/* sfnt.h */ -/* */ -/* High-level `sfnt' driver interface (specification). */ -/* */ -/* Copyright 1996-2006, 2009, 2012-2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SFNT_H__ -#define __SFNT_H__ - - -#include <ft2build.h> -#include FT_INTERNAL_DRIVER_H -#include FT_INTERNAL_TRUETYPE_TYPES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Init_Face_Func */ - /* */ - /* <Description> */ - /* First part of the SFNT face object initialization. This finds */ - /* the face in a SFNT file or collection, and load its format tag in */ - /* face->format_tag. */ - /* */ - /* <Input> */ - /* stream :: The input stream. */ - /* */ - /* face :: A handle to the target face object. */ - /* */ - /* face_index :: The index of the TrueType font, if we are opening a */ - /* collection. */ - /* */ - /* num_params :: The number of additional parameters. */ - /* */ - /* params :: Optional additional parameters. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* The stream cursor must be at the font file's origin. */ - /* */ - /* This function recognizes fonts embedded in a `TrueType */ - /* collection'. */ - /* */ - /* Once the format tag has been validated by the font driver, it */ - /* should then call the TT_Load_Face_Func() callback to read the rest */ - /* of the SFNT tables in the object. */ - /* */ - typedef FT_Error - (*TT_Init_Face_Func)( FT_Stream stream, - TT_Face face, - FT_Int face_index, - FT_Int num_params, - FT_Parameter* params ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Face_Func */ - /* */ - /* <Description> */ - /* Second part of the SFNT face object initialization. This loads */ - /* the common SFNT tables (head, OS/2, maxp, metrics, etc.) in the */ - /* face object. */ - /* */ - /* <Input> */ - /* stream :: The input stream. */ - /* */ - /* face :: A handle to the target face object. */ - /* */ - /* face_index :: The index of the TrueType font, if we are opening a */ - /* collection. */ - /* */ - /* num_params :: The number of additional parameters. */ - /* */ - /* params :: Optional additional parameters. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function must be called after TT_Init_Face_Func(). */ - /* */ - typedef FT_Error - (*TT_Load_Face_Func)( FT_Stream stream, - TT_Face face, - FT_Int face_index, - FT_Int num_params, - FT_Parameter* params ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Done_Face_Func */ - /* */ - /* <Description> */ - /* A callback used to delete the common SFNT data from a face. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* <Note> */ - /* This function does NOT destroy the face object. */ - /* */ - typedef void - (*TT_Done_Face_Func)( TT_Face face ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Any_Func */ - /* */ - /* <Description> */ - /* Load any font table into client memory. */ - /* */ - /* <Input> */ - /* face :: The face object to look for. */ - /* */ - /* tag :: The tag of table to load. Use the value 0 if you want */ - /* to access the whole font file, else set this parameter */ - /* to a valid TrueType table tag that you can forge with */ - /* the MAKE_TT_TAG macro. */ - /* */ - /* offset :: The starting offset in the table (or the file if */ - /* tag == 0). */ - /* */ - /* length :: The address of the decision variable: */ - /* */ - /* If length == NULL: */ - /* Loads the whole table. Returns an error if */ - /* `offset' == 0! */ - /* */ - /* If *length == 0: */ - /* Exits immediately; returning the length of the given */ - /* table or of the font file, depending on the value of */ - /* `tag'. */ - /* */ - /* If *length != 0: */ - /* Loads the next `length' bytes of table or font, */ - /* starting at offset `offset' (in table or font too). */ - /* */ - /* <Output> */ - /* buffer :: The address of target buffer. */ - /* */ - /* <Return> */ - /* TrueType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Load_Any_Func)( TT_Face face, - FT_ULong tag, - FT_Long offset, - FT_Byte *buffer, - FT_ULong* length ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Find_SBit_Image_Func */ - /* */ - /* <Description> */ - /* Check whether an embedded bitmap (an `sbit') exists for a given */ - /* glyph, at a given strike. */ - /* */ - /* <Input> */ - /* face :: The target face object. */ - /* */ - /* glyph_index :: The glyph index. */ - /* */ - /* strike_index :: The current strike index. */ - /* */ - /* <Output> */ - /* arange :: The SBit range containing the glyph index. */ - /* */ - /* astrike :: The SBit strike containing the glyph index. */ - /* */ - /* aglyph_offset :: The offset of the glyph data in `EBDT' table. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. Returns */ - /* SFNT_Err_Invalid_Argument if no sbit exists for the requested */ - /* glyph. */ - /* */ - typedef FT_Error - (*TT_Find_SBit_Image_Func)( TT_Face face, - FT_UInt glyph_index, - FT_ULong strike_index, - TT_SBit_Range *arange, - TT_SBit_Strike *astrike, - FT_ULong *aglyph_offset ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_SBit_Metrics_Func */ - /* */ - /* <Description> */ - /* Get the big metrics for a given embedded bitmap. */ - /* */ - /* <Input> */ - /* stream :: The input stream. */ - /* */ - /* range :: The SBit range containing the glyph. */ - /* */ - /* <Output> */ - /* big_metrics :: A big SBit metrics structure for the glyph. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* The stream cursor must be positioned at the glyph's offset within */ - /* the `EBDT' table before the call. */ - /* */ - /* If the image format uses variable metrics, the stream cursor is */ - /* positioned just after the metrics header in the `EBDT' table on */ - /* function exit. */ - /* */ - typedef FT_Error - (*TT_Load_SBit_Metrics_Func)( FT_Stream stream, - TT_SBit_Range range, - TT_SBit_Metrics metrics ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_SBit_Image_Func */ - /* */ - /* <Description> */ - /* Load a given glyph sbit image from the font resource. This also */ - /* returns its metrics. */ - /* */ - /* <Input> */ - /* face :: */ - /* The target face object. */ - /* */ - /* strike_index :: */ - /* The strike index. */ - /* */ - /* glyph_index :: */ - /* The current glyph index. */ - /* */ - /* load_flags :: */ - /* The current load flags. */ - /* */ - /* stream :: */ - /* The input stream. */ - /* */ - /* <Output> */ - /* amap :: */ - /* The target pixmap. */ - /* */ - /* ametrics :: */ - /* A big sbit metrics structure for the glyph image. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. Returns an error if no */ - /* glyph sbit exists for the index. */ - /* */ - /* <Note> */ - /* The `map.buffer' field is always freed before the glyph is loaded. */ - /* */ - typedef FT_Error - (*TT_Load_SBit_Image_Func)( TT_Face face, - FT_ULong strike_index, - FT_UInt glyph_index, - FT_UInt load_flags, - FT_Stream stream, - FT_Bitmap *amap, - TT_SBit_MetricsRec *ametrics ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Set_SBit_Strike_Func */ - /* */ - /* <Description> */ - /* Select an sbit strike for a given size request. */ - /* */ - /* <Input> */ - /* face :: The target face object. */ - /* */ - /* req :: The size request. */ - /* */ - /* <Output> */ - /* astrike_index :: The index of the sbit strike. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. Returns an error if no */ - /* sbit strike exists for the selected ppem values. */ - /* */ - typedef FT_Error - (*TT_Set_SBit_Strike_Func)( TT_Face face, - FT_Size_Request req, - FT_ULong* astrike_index ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Strike_Metrics_Func */ - /* */ - /* <Description> */ - /* Load the metrics of a given strike. */ - /* */ - /* <Input> */ - /* face :: The target face object. */ - /* */ - /* strike_index :: The strike index. */ - /* */ - /* <Output> */ - /* metrics :: the metrics of the strike. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. Returns an error if no */ - /* such sbit strike exists. */ - /* */ - typedef FT_Error - (*TT_Load_Strike_Metrics_Func)( TT_Face face, - FT_ULong strike_index, - FT_Size_Metrics* metrics ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Get_PS_Name_Func */ - /* */ - /* <Description> */ - /* Get the PostScript glyph name of a glyph. */ - /* */ - /* <Input> */ - /* idx :: The glyph index. */ - /* */ - /* PSname :: The address of a string pointer. Will be NULL in case */ - /* of error, otherwise it is a pointer to the glyph name. */ - /* */ - /* You must not modify the returned string! */ - /* */ - /* <Output> */ - /* FreeType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Get_PS_Name_Func)( TT_Face face, - FT_UInt idx, - FT_String** PSname ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Metrics_Func */ - /* */ - /* <Description> */ - /* Load a metrics table, which is a table with a horizontal and a */ - /* vertical version. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* stream :: The input stream. */ - /* */ - /* vertical :: A boolean flag. If set, load the vertical one. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Load_Metrics_Func)( TT_Face face, - FT_Stream stream, - FT_Bool vertical ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Get_Metrics_Func */ - /* */ - /* <Description> */ - /* Load the horizontal or vertical header in a face object. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* vertical :: A boolean flag. If set, load vertical metrics. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* <Output> */ - /* abearing :: The horizontal (or vertical) bearing. Set to zero in */ - /* case of error. */ - /* */ - /* aadvance :: The horizontal (or vertical) advance. Set to zero in */ - /* case of error. */ - /* */ - typedef void - (*TT_Get_Metrics_Func)( TT_Face face, - FT_Bool vertical, - FT_UInt gindex, - FT_Short* abearing, - FT_UShort* aadvance ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Table_Func */ - /* */ - /* <Description> */ - /* Load a given TrueType table. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* stream :: The input stream. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* The function uses `face->goto_table' to seek the stream to the */ - /* start of the table, except while loading the font directory. */ - /* */ - typedef FT_Error - (*TT_Load_Table_Func)( TT_Face face, - FT_Stream stream ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Free_Table_Func */ - /* */ - /* <Description> */ - /* Free a given TrueType table. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - typedef void - (*TT_Free_Table_Func)( TT_Face face ); - - - /* - * @functype: - * TT_Face_GetKerningFunc - * - * @description: - * Return the horizontal kerning value between two glyphs. - * - * @input: - * face :: A handle to the source face object. - * left_glyph :: The left glyph index. - * right_glyph :: The right glyph index. - * - * @return: - * The kerning value in font units. - */ - typedef FT_Int - (*TT_Face_GetKerningFunc)( TT_Face face, - FT_UInt left_glyph, - FT_UInt right_glyph ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* SFNT_Interface */ - /* */ - /* <Description> */ - /* This structure holds pointers to the functions used to load and */ - /* free the basic tables that are required in a `sfnt' font file. */ - /* */ - /* <Fields> */ - /* Check the various xxx_Func() descriptions for details. */ - /* */ - typedef struct SFNT_Interface_ - { - TT_Loader_GotoTableFunc goto_table; - - TT_Init_Face_Func init_face; - TT_Load_Face_Func load_face; - TT_Done_Face_Func done_face; - FT_Module_Requester get_interface; - - TT_Load_Any_Func load_any; - - /* these functions are called by `load_face' but they can also */ - /* be called from external modules, if there is a need to do so */ - TT_Load_Table_Func load_head; - TT_Load_Metrics_Func load_hhea; - TT_Load_Table_Func load_cmap; - TT_Load_Table_Func load_maxp; - TT_Load_Table_Func load_os2; - TT_Load_Table_Func load_post; - - TT_Load_Table_Func load_name; - TT_Free_Table_Func free_name; - - /* this field was called `load_kerning' up to version 2.1.10 */ - TT_Load_Table_Func load_kern; - - TT_Load_Table_Func load_gasp; - TT_Load_Table_Func load_pclt; - - /* see `ttload.h'; this field was called `load_bitmap_header' up to */ - /* version 2.1.10 */ - TT_Load_Table_Func load_bhed; - - TT_Load_SBit_Image_Func load_sbit_image; - - /* see `ttpost.h' */ - TT_Get_PS_Name_Func get_psname; - TT_Free_Table_Func free_psnames; - - /* starting here, the structure differs from version 2.1.7 */ - - /* this field was introduced in version 2.1.8, named `get_psname' */ - TT_Face_GetKerningFunc get_kerning; - - /* new elements introduced after version 2.1.10 */ - - /* load the font directory, i.e., the offset table and */ - /* the table directory */ - TT_Load_Table_Func load_font_dir; - TT_Load_Metrics_Func load_hmtx; - - TT_Load_Table_Func load_eblc; - TT_Free_Table_Func free_eblc; - - TT_Set_SBit_Strike_Func set_sbit_strike; - TT_Load_Strike_Metrics_Func load_strike_metrics; - - TT_Get_Metrics_Func get_metrics; - - } SFNT_Interface; - - - /* transitional */ - typedef SFNT_Interface* SFNT_Service; - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SFNT_INTERFACE( \ - class_, \ - goto_table_, \ - init_face_, \ - load_face_, \ - done_face_, \ - get_interface_, \ - load_any_, \ - load_head_, \ - load_hhea_, \ - load_cmap_, \ - load_maxp_, \ - load_os2_, \ - load_post_, \ - load_name_, \ - free_name_, \ - load_kern_, \ - load_gasp_, \ - load_pclt_, \ - load_bhed_, \ - load_sbit_image_, \ - get_psname_, \ - free_psnames_, \ - get_kerning_, \ - load_font_dir_, \ - load_hmtx_, \ - load_eblc_, \ - free_eblc_, \ - set_sbit_strike_, \ - load_strike_metrics_, \ - get_metrics_ ) \ - static const SFNT_Interface class_ = \ - { \ - goto_table_, \ - init_face_, \ - load_face_, \ - done_face_, \ - get_interface_, \ - load_any_, \ - load_head_, \ - load_hhea_, \ - load_cmap_, \ - load_maxp_, \ - load_os2_, \ - load_post_, \ - load_name_, \ - free_name_, \ - load_kern_, \ - load_gasp_, \ - load_pclt_, \ - load_bhed_, \ - load_sbit_image_, \ - get_psname_, \ - free_psnames_, \ - get_kerning_, \ - load_font_dir_, \ - load_hmtx_, \ - load_eblc_, \ - free_eblc_, \ - set_sbit_strike_, \ - load_strike_metrics_, \ - get_metrics_, \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_INTERNAL( a, a_ ) \ - clazz->a = a_; - -#define FT_DEFINE_SFNT_INTERFACE( \ - class_, \ - goto_table_, \ - init_face_, \ - load_face_, \ - done_face_, \ - get_interface_, \ - load_any_, \ - load_head_, \ - load_hhea_, \ - load_cmap_, \ - load_maxp_, \ - load_os2_, \ - load_post_, \ - load_name_, \ - free_name_, \ - load_kern_, \ - load_gasp_, \ - load_pclt_, \ - load_bhed_, \ - load_sbit_image_, \ - get_psname_, \ - free_psnames_, \ - get_kerning_, \ - load_font_dir_, \ - load_hmtx_, \ - load_eblc_, \ - free_eblc_, \ - set_sbit_strike_, \ - load_strike_metrics_, \ - get_metrics_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - SFNT_Interface* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->goto_table = goto_table_; \ - clazz->init_face = init_face_; \ - clazz->load_face = load_face_; \ - clazz->done_face = done_face_; \ - clazz->get_interface = get_interface_; \ - clazz->load_any = load_any_; \ - clazz->load_head = load_head_; \ - clazz->load_hhea = load_hhea_; \ - clazz->load_cmap = load_cmap_; \ - clazz->load_maxp = load_maxp_; \ - clazz->load_os2 = load_os2_; \ - clazz->load_post = load_post_; \ - clazz->load_name = load_name_; \ - clazz->free_name = free_name_; \ - clazz->load_kern = load_kern_; \ - clazz->load_gasp = load_gasp_; \ - clazz->load_pclt = load_pclt_; \ - clazz->load_bhed = load_bhed_; \ - clazz->load_sbit_image = load_sbit_image_; \ - clazz->get_psname = get_psname_; \ - clazz->free_psnames = free_psnames_; \ - clazz->get_kerning = get_kerning_; \ - clazz->load_font_dir = load_font_dir_; \ - clazz->load_hmtx = load_hmtx_; \ - clazz->load_eblc = load_eblc_; \ - clazz->free_eblc = free_eblc_; \ - clazz->set_sbit_strike = set_sbit_strike_; \ - clazz->load_strike_metrics = load_strike_metrics_; \ - clazz->get_metrics = get_metrics_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - -FT_END_HEADER - -#endif /* __SFNT_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/t1types.h b/lib/linux/include/internal/t1types.h deleted file mode 100644 index e20237c..0000000 --- a/lib/linux/include/internal/t1types.h +++ /dev/null @@ -1,255 +0,0 @@ -/***************************************************************************/ -/* */ -/* t1types.h */ -/* */ -/* Basic Type1/Type2 type definitions and interface (specification */ -/* only). */ -/* */ -/* Copyright 1996-2004, 2006, 2008, 2009, 2011, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __T1TYPES_H__ -#define __T1TYPES_H__ - - -#include <ft2build.h> -#include FT_TYPE1_TABLES_H -#include FT_INTERNAL_POSTSCRIPT_HINTS_H -#include FT_INTERNAL_SERVICE_H -#include FT_SERVICE_POSTSCRIPT_CMAPS_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** REQUIRED TYPE1/TYPE2 TABLES DEFINITIONS ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_EncodingRec */ - /* */ - /* <Description> */ - /* A structure modeling a custom encoding. */ - /* */ - /* <Fields> */ - /* num_chars :: The number of character codes in the encoding. */ - /* Usually 256. */ - /* */ - /* code_first :: The lowest valid character code in the encoding. */ - /* */ - /* code_last :: The highest valid character code in the encoding */ - /* + 1. When equal to code_first there are no valid */ - /* character codes. */ - /* */ - /* char_index :: An array of corresponding glyph indices. */ - /* */ - /* char_name :: An array of corresponding glyph names. */ - /* */ - typedef struct T1_EncodingRecRec_ - { - FT_Int num_chars; - FT_Int code_first; - FT_Int code_last; - - FT_UShort* char_index; - FT_String** char_name; - - } T1_EncodingRec, *T1_Encoding; - - - /* used to hold extra data of PS_FontInfoRec that - * cannot be stored in the publicly defined structure. - * - * Note these can't be blended with multiple-masters. - */ - typedef struct PS_FontExtraRec_ - { - FT_UShort fs_type; - - } PS_FontExtraRec; - - - typedef struct T1_FontRec_ - { - PS_FontInfoRec font_info; /* font info dictionary */ - PS_FontExtraRec font_extra; /* font info extra fields */ - PS_PrivateRec private_dict; /* private dictionary */ - FT_String* font_name; /* top-level dictionary */ - - T1_EncodingType encoding_type; - T1_EncodingRec encoding; - - FT_Byte* subrs_block; - FT_Byte* charstrings_block; - FT_Byte* glyph_names_block; - - FT_Int num_subrs; - FT_Byte** subrs; - FT_PtrDist* subrs_len; - - FT_Int num_glyphs; - FT_String** glyph_names; /* array of glyph names */ - FT_Byte** charstrings; /* array of glyph charstrings */ - FT_PtrDist* charstrings_len; - - FT_Byte paint_type; - FT_Byte font_type; - FT_Matrix font_matrix; - FT_Vector font_offset; - FT_BBox font_bbox; - FT_Long font_id; - - FT_Fixed stroke_width; - - } T1_FontRec, *T1_Font; - - - typedef struct CID_SubrsRec_ - { - FT_UInt num_subrs; - FT_Byte** code; - - } CID_SubrsRec, *CID_Subrs; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** AFM FONT INFORMATION STRUCTURES ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct AFM_TrackKernRec_ - { - FT_Int degree; - FT_Fixed min_ptsize; - FT_Fixed min_kern; - FT_Fixed max_ptsize; - FT_Fixed max_kern; - - } AFM_TrackKernRec, *AFM_TrackKern; - - typedef struct AFM_KernPairRec_ - { - FT_Int index1; - FT_Int index2; - FT_Int x; - FT_Int y; - - } AFM_KernPairRec, *AFM_KernPair; - - typedef struct AFM_FontInfoRec_ - { - FT_Bool IsCIDFont; - FT_BBox FontBBox; - FT_Fixed Ascender; - FT_Fixed Descender; - AFM_TrackKern TrackKerns; /* free if non-NULL */ - FT_Int NumTrackKern; - AFM_KernPair KernPairs; /* free if non-NULL */ - FT_Int NumKernPair; - - } AFM_FontInfoRec, *AFM_FontInfo; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** ORIGINAL T1_FACE CLASS DEFINITION ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - typedef struct T1_FaceRec_* T1_Face; - typedef struct CID_FaceRec_* CID_Face; - - - typedef struct T1_FaceRec_ - { - FT_FaceRec root; - T1_FontRec type1; - const void* psnames; - const void* psaux; - const void* afm_data; - FT_CharMapRec charmaprecs[2]; - FT_CharMap charmaps[2]; - - /* support for Multiple Masters fonts */ - PS_Blend blend; - - /* undocumented, optional: indices of subroutines that express */ - /* the NormalizeDesignVector and the ConvertDesignVector procedure, */ - /* respectively, as Type 2 charstrings; -1 if keywords not present */ - FT_Int ndv_idx; - FT_Int cdv_idx; - - /* undocumented, optional: has the same meaning as len_buildchar */ - /* for Type 2 fonts; manipulated by othersubrs 19, 24, and 25 */ - FT_UInt len_buildchar; - FT_Long* buildchar; - - /* since version 2.1 - interface to PostScript hinter */ - const void* pshinter; - - } T1_FaceRec; - - - typedef struct CID_FaceRec_ - { - FT_FaceRec root; - void* psnames; - void* psaux; - CID_FaceInfoRec cid; - PS_FontExtraRec font_extra; -#if 0 - void* afm_data; -#endif - CID_Subrs subrs; - - /* since version 2.1 - interface to PostScript hinter */ - void* pshinter; - - /* since version 2.1.8, but was originally positioned after `afm_data' */ - FT_Byte* binary_data; /* used if hex data has been converted */ - FT_Stream cid_stream; - - } CID_FaceRec; - - -FT_END_HEADER - -#endif /* __T1TYPES_H__ */ - - -/* END */ diff --git a/lib/linux/include/internal/tttypes.h b/lib/linux/include/internal/tttypes.h deleted file mode 100644 index ad302b8..0000000 --- a/lib/linux/include/internal/tttypes.h +++ /dev/null @@ -1,1516 +0,0 @@ -/***************************************************************************/ -/* */ -/* tttypes.h */ -/* */ -/* Basic SFNT/TrueType type definitions and interface (specification */ -/* only). */ -/* */ -/* Copyright 1996-2002, 2004-2008, 2012-2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTTYPES_H__ -#define __TTTYPES_H__ - - -#include <ft2build.h> -#include FT_TRUETYPE_TABLES_H -#include FT_INTERNAL_OBJECTS_H - -#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT -#include FT_MULTIPLE_MASTERS_H -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** REQUIRED TRUETYPE/OPENTYPE TABLES DEFINITIONS ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TTC_HeaderRec */ - /* */ - /* <Description> */ - /* TrueType collection header. This table contains the offsets of */ - /* the font headers of each distinct TrueType face in the file. */ - /* */ - /* <Fields> */ - /* tag :: Must be `ttc ' to indicate a TrueType collection. */ - /* */ - /* version :: The version number. */ - /* */ - /* count :: The number of faces in the collection. The */ - /* specification says this should be an unsigned long, but */ - /* we use a signed long since we need the value -1 for */ - /* specific purposes. */ - /* */ - /* offsets :: The offsets of the font headers, one per face. */ - /* */ - typedef struct TTC_HeaderRec_ - { - FT_ULong tag; - FT_Fixed version; - FT_Long count; - FT_ULong* offsets; - - } TTC_HeaderRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* SFNT_HeaderRec */ - /* */ - /* <Description> */ - /* SFNT file format header. */ - /* */ - /* <Fields> */ - /* format_tag :: The font format tag. */ - /* */ - /* num_tables :: The number of tables in file. */ - /* */ - /* search_range :: Must be `16 * (max power of 2 <= num_tables)'. */ - /* */ - /* entry_selector :: Must be log2 of `search_range / 16'. */ - /* */ - /* range_shift :: Must be `num_tables * 16 - search_range'. */ - /* */ - typedef struct SFNT_HeaderRec_ - { - FT_ULong format_tag; - FT_UShort num_tables; - FT_UShort search_range; - FT_UShort entry_selector; - FT_UShort range_shift; - - FT_ULong offset; /* not in file */ - - } SFNT_HeaderRec, *SFNT_Header; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_TableRec */ - /* */ - /* <Description> */ - /* This structure describes a given table of a TrueType font. */ - /* */ - /* <Fields> */ - /* Tag :: A four-bytes tag describing the table. */ - /* */ - /* CheckSum :: The table checksum. This value can be ignored. */ - /* */ - /* Offset :: The offset of the table from the start of the TrueType */ - /* font in its resource. */ - /* */ - /* Length :: The table length (in bytes). */ - /* */ - typedef struct TT_TableRec_ - { - FT_ULong Tag; /* table type */ - FT_ULong CheckSum; /* table checksum */ - FT_ULong Offset; /* table file offset */ - FT_ULong Length; /* table length */ - - } TT_TableRec, *TT_Table; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* WOFF_HeaderRec */ - /* */ - /* <Description> */ - /* WOFF file format header. */ - /* */ - /* <Fields> */ - /* See */ - /* */ - /* http://www.w3.org/TR/WOFF/#WOFFHeader */ - /* */ - typedef struct WOFF_HeaderRec_ - { - FT_ULong signature; - FT_ULong flavor; - FT_ULong length; - FT_UShort num_tables; - FT_UShort reserved; - FT_ULong totalSfntSize; - FT_UShort majorVersion; - FT_UShort minorVersion; - FT_ULong metaOffset; - FT_ULong metaLength; - FT_ULong metaOrigLength; - FT_ULong privOffset; - FT_ULong privLength; - - } WOFF_HeaderRec, *WOFF_Header; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* WOFF_TableRec */ - /* */ - /* <Description> */ - /* This structure describes a given table of a WOFF font. */ - /* */ - /* <Fields> */ - /* Tag :: A four-bytes tag describing the table. */ - /* */ - /* Offset :: The offset of the table from the start of the WOFF */ - /* font in its resource. */ - /* */ - /* CompLength :: Compressed table length (in bytes). */ - /* */ - /* OrigLength :: Unompressed table length (in bytes). */ - /* */ - /* CheckSum :: The table checksum. This value can be ignored. */ - /* */ - /* OrigOffset :: The uncompressed table file offset. This value gets */ - /* computed while constructing the (uncompressed) SFNT */ - /* header. It is not contained in the WOFF file. */ - /* */ - typedef struct WOFF_TableRec_ - { - FT_ULong Tag; /* table ID */ - FT_ULong Offset; /* table file offset */ - FT_ULong CompLength; /* compressed table length */ - FT_ULong OrigLength; /* uncompressed table length */ - FT_ULong CheckSum; /* uncompressed checksum */ - - FT_ULong OrigOffset; /* uncompressed table file offset */ - /* (not in the WOFF file) */ - } WOFF_TableRec, *WOFF_Table; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_LongMetricsRec */ - /* */ - /* <Description> */ - /* A structure modeling the long metrics of the `hmtx' and `vmtx' */ - /* TrueType tables. The values are expressed in font units. */ - /* */ - /* <Fields> */ - /* advance :: The advance width or height for the glyph. */ - /* */ - /* bearing :: The left-side or top-side bearing for the glyph. */ - /* */ - typedef struct TT_LongMetricsRec_ - { - FT_UShort advance; - FT_Short bearing; - - } TT_LongMetricsRec, *TT_LongMetrics; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* TT_ShortMetrics */ - /* */ - /* <Description> */ - /* A simple type to model the short metrics of the `hmtx' and `vmtx' */ - /* tables. */ - /* */ - typedef FT_Short TT_ShortMetrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_NameEntryRec */ - /* */ - /* <Description> */ - /* A structure modeling TrueType name records. Name records are used */ - /* to store important strings like family name, style name, */ - /* copyright, etc. in _localized_ versions (i.e., language, encoding, */ - /* etc). */ - /* */ - /* <Fields> */ - /* platformID :: The ID of the name's encoding platform. */ - /* */ - /* encodingID :: The platform-specific ID for the name's encoding. */ - /* */ - /* languageID :: The platform-specific ID for the name's language. */ - /* */ - /* nameID :: The ID specifying what kind of name this is. */ - /* */ - /* stringLength :: The length of the string in bytes. */ - /* */ - /* stringOffset :: The offset to the string in the `name' table. */ - /* */ - /* string :: A pointer to the string's bytes. Note that these */ - /* are usually UTF-16 encoded characters. */ - /* */ - typedef struct TT_NameEntryRec_ - { - FT_UShort platformID; - FT_UShort encodingID; - FT_UShort languageID; - FT_UShort nameID; - FT_UShort stringLength; - FT_ULong stringOffset; - - /* this last field is not defined in the spec */ - /* but used by the FreeType engine */ - - FT_Byte* string; - - } TT_NameEntryRec, *TT_NameEntry; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_NameTableRec */ - /* */ - /* <Description> */ - /* A structure modeling the TrueType name table. */ - /* */ - /* <Fields> */ - /* format :: The format of the name table. */ - /* */ - /* numNameRecords :: The number of names in table. */ - /* */ - /* storageOffset :: The offset of the name table in the `name' */ - /* TrueType table. */ - /* */ - /* names :: An array of name records. */ - /* */ - /* stream :: the file's input stream. */ - /* */ - typedef struct TT_NameTableRec_ - { - FT_UShort format; - FT_UInt numNameRecords; - FT_UInt storageOffset; - TT_NameEntryRec* names; - FT_Stream stream; - - } TT_NameTableRec, *TT_NameTable; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** OPTIONAL TRUETYPE/OPENTYPE TABLES DEFINITIONS ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_GaspRangeRec */ - /* */ - /* <Description> */ - /* A tiny structure used to model a gasp range according to the */ - /* TrueType specification. */ - /* */ - /* <Fields> */ - /* maxPPEM :: The maximum ppem value to which `gaspFlag' applies. */ - /* */ - /* gaspFlag :: A flag describing the grid-fitting and anti-aliasing */ - /* modes to be used. */ - /* */ - typedef struct TT_GaspRangeRec_ - { - FT_UShort maxPPEM; - FT_UShort gaspFlag; - - } TT_GaspRangeRec, *TT_GaspRange; - - -#define TT_GASP_GRIDFIT 0x01 -#define TT_GASP_DOGRAY 0x02 - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_GaspRec */ - /* */ - /* <Description> */ - /* A structure modeling the TrueType `gasp' table used to specify */ - /* grid-fitting and anti-aliasing behaviour. */ - /* */ - /* <Fields> */ - /* version :: The version number. */ - /* */ - /* numRanges :: The number of gasp ranges in table. */ - /* */ - /* gaspRanges :: An array of gasp ranges. */ - /* */ - typedef struct TT_Gasp_ - { - FT_UShort version; - FT_UShort numRanges; - TT_GaspRange gaspRanges; - - } TT_GaspRec; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** EMBEDDED BITMAPS SUPPORT ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_MetricsRec */ - /* */ - /* <Description> */ - /* A structure used to hold the big metrics of a given glyph bitmap */ - /* in a TrueType or OpenType font. These are usually found in the */ - /* `EBDT' (Microsoft) or `bloc' (Apple) table. */ - /* */ - /* <Fields> */ - /* height :: The glyph height in pixels. */ - /* */ - /* width :: The glyph width in pixels. */ - /* */ - /* horiBearingX :: The horizontal left bearing. */ - /* */ - /* horiBearingY :: The horizontal top bearing. */ - /* */ - /* horiAdvance :: The horizontal advance. */ - /* */ - /* vertBearingX :: The vertical left bearing. */ - /* */ - /* vertBearingY :: The vertical top bearing. */ - /* */ - /* vertAdvance :: The vertical advance. */ - /* */ - typedef struct TT_SBit_MetricsRec_ - { - FT_UShort height; - FT_UShort width; - - FT_Short horiBearingX; - FT_Short horiBearingY; - FT_UShort horiAdvance; - - FT_Short vertBearingX; - FT_Short vertBearingY; - FT_UShort vertAdvance; - - } TT_SBit_MetricsRec, *TT_SBit_Metrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_SmallMetricsRec */ - /* */ - /* <Description> */ - /* A structure used to hold the small metrics of a given glyph bitmap */ - /* in a TrueType or OpenType font. These are usually found in the */ - /* `EBDT' (Microsoft) or the `bdat' (Apple) table. */ - /* */ - /* <Fields> */ - /* height :: The glyph height in pixels. */ - /* */ - /* width :: The glyph width in pixels. */ - /* */ - /* bearingX :: The left-side bearing. */ - /* */ - /* bearingY :: The top-side bearing. */ - /* */ - /* advance :: The advance width or height. */ - /* */ - typedef struct TT_SBit_Small_Metrics_ - { - FT_Byte height; - FT_Byte width; - - FT_Char bearingX; - FT_Char bearingY; - FT_Byte advance; - - } TT_SBit_SmallMetricsRec, *TT_SBit_SmallMetrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_LineMetricsRec */ - /* */ - /* <Description> */ - /* A structure used to describe the text line metrics of a given */ - /* bitmap strike, for either a horizontal or vertical layout. */ - /* */ - /* <Fields> */ - /* ascender :: The ascender in pixels. */ - /* */ - /* descender :: The descender in pixels. */ - /* */ - /* max_width :: The maximum glyph width in pixels. */ - /* */ - /* caret_slope_enumerator :: Rise of the caret slope, typically set */ - /* to 1 for non-italic fonts. */ - /* */ - /* caret_slope_denominator :: Rise of the caret slope, typically set */ - /* to 0 for non-italic fonts. */ - /* */ - /* caret_offset :: Offset in pixels to move the caret for */ - /* proper positioning. */ - /* */ - /* min_origin_SB :: Minimum of horiBearingX (resp. */ - /* vertBearingY). */ - /* min_advance_SB :: Minimum of */ - /* */ - /* horizontal advance - */ - /* ( horiBearingX + width ) */ - /* */ - /* resp. */ - /* */ - /* vertical advance - */ - /* ( vertBearingY + height ) */ - /* */ - /* max_before_BL :: Maximum of horiBearingY (resp. */ - /* vertBearingY). */ - /* */ - /* min_after_BL :: Minimum of */ - /* */ - /* horiBearingY - height */ - /* */ - /* resp. */ - /* */ - /* vertBearingX - width */ - /* */ - /* pads :: Unused (to make the size of the record */ - /* a multiple of 32 bits. */ - /* */ - typedef struct TT_SBit_LineMetricsRec_ - { - FT_Char ascender; - FT_Char descender; - FT_Byte max_width; - FT_Char caret_slope_numerator; - FT_Char caret_slope_denominator; - FT_Char caret_offset; - FT_Char min_origin_SB; - FT_Char min_advance_SB; - FT_Char max_before_BL; - FT_Char min_after_BL; - FT_Char pads[2]; - - } TT_SBit_LineMetricsRec, *TT_SBit_LineMetrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_RangeRec */ - /* */ - /* <Description> */ - /* A TrueType/OpenType subIndexTable as defined in the `EBLC' */ - /* (Microsoft) or `bloc' (Apple) tables. */ - /* */ - /* <Fields> */ - /* first_glyph :: The first glyph index in the range. */ - /* */ - /* last_glyph :: The last glyph index in the range. */ - /* */ - /* index_format :: The format of index table. Valid values are 1 */ - /* to 5. */ - /* */ - /* image_format :: The format of `EBDT' image data. */ - /* */ - /* image_offset :: The offset to image data in `EBDT'. */ - /* */ - /* image_size :: For index formats 2 and 5. This is the size in */ - /* bytes of each glyph bitmap. */ - /* */ - /* big_metrics :: For index formats 2 and 5. This is the big */ - /* metrics for each glyph bitmap. */ - /* */ - /* num_glyphs :: For index formats 4 and 5. This is the number of */ - /* glyphs in the code array. */ - /* */ - /* glyph_offsets :: For index formats 1 and 3. */ - /* */ - /* glyph_codes :: For index formats 4 and 5. */ - /* */ - /* table_offset :: The offset of the index table in the `EBLC' */ - /* table. Only used during strike loading. */ - /* */ - typedef struct TT_SBit_RangeRec_ - { - FT_UShort first_glyph; - FT_UShort last_glyph; - - FT_UShort index_format; - FT_UShort image_format; - FT_ULong image_offset; - - FT_ULong image_size; - TT_SBit_MetricsRec metrics; - FT_ULong num_glyphs; - - FT_ULong* glyph_offsets; - FT_UShort* glyph_codes; - - FT_ULong table_offset; - - } TT_SBit_RangeRec, *TT_SBit_Range; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_StrikeRec */ - /* */ - /* <Description> */ - /* A structure used describe a given bitmap strike in the `EBLC' */ - /* (Microsoft) or `bloc' (Apple) tables. */ - /* */ - /* <Fields> */ - /* num_index_ranges :: The number of index ranges. */ - /* */ - /* index_ranges :: An array of glyph index ranges. */ - /* */ - /* color_ref :: Unused. `color_ref' is put in for future */ - /* enhancements, but these fields are already */ - /* in use by other platforms (e.g. Newton). */ - /* For details, please see */ - /* */ - /* http://fonts.apple.com/ */ - /* TTRefMan/RM06/Chap6bloc.html */ - /* */ - /* hori :: The line metrics for horizontal layouts. */ - /* */ - /* vert :: The line metrics for vertical layouts. */ - /* */ - /* start_glyph :: The lowest glyph index for this strike. */ - /* */ - /* end_glyph :: The highest glyph index for this strike. */ - /* */ - /* x_ppem :: The number of horizontal pixels per EM. */ - /* */ - /* y_ppem :: The number of vertical pixels per EM. */ - /* */ - /* bit_depth :: The bit depth. Valid values are 1, 2, 4, */ - /* and 8. */ - /* */ - /* flags :: Is this a vertical or horizontal strike? For */ - /* details, please see */ - /* */ - /* http://fonts.apple.com/ */ - /* TTRefMan/RM06/Chap6bloc.html */ - /* */ - typedef struct TT_SBit_StrikeRec_ - { - FT_Int num_ranges; - TT_SBit_Range sbit_ranges; - FT_ULong ranges_offset; - - FT_ULong color_ref; - - TT_SBit_LineMetricsRec hori; - TT_SBit_LineMetricsRec vert; - - FT_UShort start_glyph; - FT_UShort end_glyph; - - FT_Byte x_ppem; - FT_Byte y_ppem; - - FT_Byte bit_depth; - FT_Char flags; - - } TT_SBit_StrikeRec, *TT_SBit_Strike; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_ComponentRec */ - /* */ - /* <Description> */ - /* A simple structure to describe a compound sbit element. */ - /* */ - /* <Fields> */ - /* glyph_code :: The element's glyph index. */ - /* */ - /* x_offset :: The element's left bearing. */ - /* */ - /* y_offset :: The element's top bearing. */ - /* */ - typedef struct TT_SBit_ComponentRec_ - { - FT_UShort glyph_code; - FT_Char x_offset; - FT_Char y_offset; - - } TT_SBit_ComponentRec, *TT_SBit_Component; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_ScaleRec */ - /* */ - /* <Description> */ - /* A structure used describe a given bitmap scaling table, as defined */ - /* in the `EBSC' table. */ - /* */ - /* <Fields> */ - /* hori :: The horizontal line metrics. */ - /* */ - /* vert :: The vertical line metrics. */ - /* */ - /* x_ppem :: The number of horizontal pixels per EM. */ - /* */ - /* y_ppem :: The number of vertical pixels per EM. */ - /* */ - /* x_ppem_substitute :: Substitution x_ppem value. */ - /* */ - /* y_ppem_substitute :: Substitution y_ppem value. */ - /* */ - typedef struct TT_SBit_ScaleRec_ - { - TT_SBit_LineMetricsRec hori; - TT_SBit_LineMetricsRec vert; - - FT_Byte x_ppem; - FT_Byte y_ppem; - - FT_Byte x_ppem_substitute; - FT_Byte y_ppem_substitute; - - } TT_SBit_ScaleRec, *TT_SBit_Scale; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** POSTSCRIPT GLYPH NAMES SUPPORT ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Post_20Rec */ - /* */ - /* <Description> */ - /* Postscript names sub-table, format 2.0. Stores the PS name of */ - /* each glyph in the font face. */ - /* */ - /* <Fields> */ - /* num_glyphs :: The number of named glyphs in the table. */ - /* */ - /* num_names :: The number of PS names stored in the table. */ - /* */ - /* glyph_indices :: The indices of the glyphs in the names arrays. */ - /* */ - /* glyph_names :: The PS names not in Mac Encoding. */ - /* */ - typedef struct TT_Post_20Rec_ - { - FT_UShort num_glyphs; - FT_UShort num_names; - FT_UShort* glyph_indices; - FT_Char** glyph_names; - - } TT_Post_20Rec, *TT_Post_20; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Post_25Rec */ - /* */ - /* <Description> */ - /* Postscript names sub-table, format 2.5. Stores the PS name of */ - /* each glyph in the font face. */ - /* */ - /* <Fields> */ - /* num_glyphs :: The number of glyphs in the table. */ - /* */ - /* offsets :: An array of signed offsets in a normal Mac */ - /* Postscript name encoding. */ - /* */ - typedef struct TT_Post_25_ - { - FT_UShort num_glyphs; - FT_Char* offsets; - - } TT_Post_25Rec, *TT_Post_25; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Post_NamesRec */ - /* */ - /* <Description> */ - /* Postscript names table, either format 2.0 or 2.5. */ - /* */ - /* <Fields> */ - /* loaded :: A flag to indicate whether the PS names are loaded. */ - /* */ - /* format_20 :: The sub-table used for format 2.0. */ - /* */ - /* format_25 :: The sub-table used for format 2.5. */ - /* */ - typedef struct TT_Post_NamesRec_ - { - FT_Bool loaded; - - union - { - TT_Post_20Rec format_20; - TT_Post_25Rec format_25; - - } names; - - } TT_Post_NamesRec, *TT_Post_Names; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** GX VARIATION TABLE SUPPORT ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - -#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT - typedef struct GX_BlendRec_ *GX_Blend; -#endif - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** EMBEDDED BDF PROPERTIES TABLE SUPPORT ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - /* - * These types are used to support a `BDF ' table that isn't part of the - * official TrueType specification. It is mainly used in SFNT-based - * bitmap fonts that were generated from a set of BDF fonts. - * - * The format of the table is as follows. - * - * USHORT version `BDF ' table version number, should be 0x0001. - * USHORT strikeCount Number of strikes (bitmap sizes) in this table. - * ULONG stringTable Offset (from start of BDF table) to string - * table. - * - * This is followed by an array of `strikeCount' descriptors, having the - * following format. - * - * USHORT ppem Vertical pixels per EM for this strike. - * USHORT numItems Number of items for this strike (properties and - * atoms). Maximum is 255. - * - * This array in turn is followed by `strikeCount' value sets. Each - * `value set' is an array of `numItems' items with the following format. - * - * ULONG item_name Offset in string table to item name. - * USHORT item_type The item type. Possible values are - * 0 => string (e.g., COMMENT) - * 1 => atom (e.g., FONT or even SIZE) - * 2 => int32 - * 3 => uint32 - * 0x10 => A flag to indicate a properties. This - * is ORed with the above values. - * ULONG item_value For strings => Offset into string table without - * the corresponding double quotes. - * For atoms => Offset into string table. - * For integers => Direct value. - * - * All strings in the string table consist of bytes and are - * zero-terminated. - * - */ - -#ifdef TT_CONFIG_OPTION_BDF - - typedef struct TT_BDFRec_ - { - FT_Byte* table; - FT_Byte* table_end; - FT_Byte* strings; - FT_ULong strings_size; - FT_UInt num_strikes; - FT_Bool loaded; - - } TT_BDFRec, *TT_BDF; - -#endif /* TT_CONFIG_OPTION_BDF */ - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** ORIGINAL TT_FACE CLASS DEFINITION ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This structure/class is defined here because it is common to the */ - /* following formats: TTF, OpenType-TT, and OpenType-CFF. */ - /* */ - /* Note, however, that the classes TT_Size and TT_GlyphSlot are not */ - /* shared between font drivers, and are thus defined in `ttobjs.h'. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* TT_Face */ - /* */ - /* <Description> */ - /* A handle to a TrueType face/font object. A TT_Face encapsulates */ - /* the resolution and scaling independent parts of a TrueType font */ - /* resource. */ - /* */ - /* <Note> */ - /* The TT_Face structure is also used as a `parent class' for the */ - /* OpenType-CFF class (T2_Face). */ - /* */ - typedef struct TT_FaceRec_* TT_Face; - - - /* a function type used for the truetype bytecode interpreter hooks */ - typedef FT_Error - (*TT_Interpreter)( void* exec_context ); - - /* forward declaration */ - typedef struct TT_LoaderRec_* TT_Loader; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Loader_GotoTableFunc */ - /* */ - /* <Description> */ - /* Seeks a stream to the start of a given TrueType table. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* tag :: A 4-byte tag used to name the table. */ - /* */ - /* stream :: The input stream. */ - /* */ - /* <Output> */ - /* length :: The length of the table in bytes. Set to 0 if not */ - /* needed. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* The stream cursor must be at the font file's origin. */ - /* */ - typedef FT_Error - (*TT_Loader_GotoTableFunc)( TT_Face face, - FT_ULong tag, - FT_Stream stream, - FT_ULong* length ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Loader_StartGlyphFunc */ - /* */ - /* <Description> */ - /* Seeks a stream to the start of a given glyph element, and opens a */ - /* frame for it. */ - /* */ - /* <Input> */ - /* loader :: The current TrueType glyph loader object. */ - /* */ - /* glyph index :: The index of the glyph to access. */ - /* */ - /* offset :: The offset of the glyph according to the */ - /* `locations' table. */ - /* */ - /* byte_count :: The size of the frame in bytes. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function is normally equivalent to FT_STREAM_SEEK(offset) */ - /* followed by FT_FRAME_ENTER(byte_count) with the loader's stream, */ - /* but alternative formats (e.g. compressed ones) might use something */ - /* different. */ - /* */ - typedef FT_Error - (*TT_Loader_StartGlyphFunc)( TT_Loader loader, - FT_UInt glyph_index, - FT_ULong offset, - FT_UInt byte_count ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Loader_ReadGlyphFunc */ - /* */ - /* <Description> */ - /* Reads one glyph element (its header, a simple glyph, or a */ - /* composite) from the loader's current stream frame. */ - /* */ - /* <Input> */ - /* loader :: The current TrueType glyph loader object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Loader_ReadGlyphFunc)( TT_Loader loader ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Loader_EndGlyphFunc */ - /* */ - /* <Description> */ - /* Closes the current loader stream frame for the glyph. */ - /* */ - /* <Input> */ - /* loader :: The current TrueType glyph loader object. */ - /* */ - typedef void - (*TT_Loader_EndGlyphFunc)( TT_Loader loader ); - - - typedef enum TT_SbitTableType_ - { - TT_SBIT_TABLE_TYPE_NONE = 0, - TT_SBIT_TABLE_TYPE_EBLC, /* `EBLC' (Microsoft), */ - /* `bloc' (Apple) */ - TT_SBIT_TABLE_TYPE_CBLC, /* `CBLC' (Google) */ - TT_SBIT_TABLE_TYPE_SBIX, /* `sbix' (Apple) */ - - /* do not remove */ - TT_SBIT_TABLE_TYPE_MAX - - } TT_SbitTableType; - - - /*************************************************************************/ - /* */ - /* TrueType Face Type */ - /* */ - /* <Struct> */ - /* TT_Face */ - /* */ - /* <Description> */ - /* The TrueType face class. These objects model the resolution and */ - /* point-size independent data found in a TrueType font file. */ - /* */ - /* <Fields> */ - /* root :: The base FT_Face structure, managed by the */ - /* base layer. */ - /* */ - /* ttc_header :: The TrueType collection header, used when */ - /* the file is a `ttc' rather than a `ttf'. */ - /* For ordinary font files, the field */ - /* `ttc_header.count' is set to 0. */ - /* */ - /* format_tag :: The font format tag. */ - /* */ - /* num_tables :: The number of TrueType tables in this font */ - /* file. */ - /* */ - /* dir_tables :: The directory of TrueType tables for this */ - /* font file. */ - /* */ - /* header :: The font's font header (`head' table). */ - /* Read on font opening. */ - /* */ - /* horizontal :: The font's horizontal header (`hhea' */ - /* table). This field also contains the */ - /* associated horizontal metrics table */ - /* (`hmtx'). */ - /* */ - /* max_profile :: The font's maximum profile table. Read on */ - /* font opening. Note that some maximum */ - /* values cannot be taken directly from this */ - /* table. We thus define additional fields */ - /* below to hold the computed maxima. */ - /* */ - /* vertical_info :: A boolean which is set when the font file */ - /* contains vertical metrics. If not, the */ - /* value of the `vertical' field is */ - /* undefined. */ - /* */ - /* vertical :: The font's vertical header (`vhea' table). */ - /* This field also contains the associated */ - /* vertical metrics table (`vmtx'), if found. */ - /* IMPORTANT: The contents of this field is */ - /* undefined if the `verticalInfo' field is */ - /* unset. */ - /* */ - /* num_names :: The number of name records within this */ - /* TrueType font. */ - /* */ - /* name_table :: The table of name records (`name'). */ - /* */ - /* os2 :: The font's OS/2 table (`OS/2'). */ - /* */ - /* postscript :: The font's PostScript table (`post' */ - /* table). The PostScript glyph names are */ - /* not loaded by the driver on face opening. */ - /* See the `ttpost' module for more details. */ - /* */ - /* cmap_table :: Address of the face's `cmap' SFNT table */ - /* in memory (it's an extracted frame). */ - /* */ - /* cmap_size :: The size in bytes of the `cmap_table' */ - /* described above. */ - /* */ - /* goto_table :: A function called by each TrueType table */ - /* loader to position a stream's cursor to */ - /* the start of a given table according to */ - /* its tag. It defaults to TT_Goto_Face but */ - /* can be different for strange formats (e.g. */ - /* Type 42). */ - /* */ - /* access_glyph_frame :: A function used to access the frame of a */ - /* given glyph within the face's font file. */ - /* */ - /* forget_glyph_frame :: A function used to forget the frame of a */ - /* given glyph when all data has been loaded. */ - /* */ - /* read_glyph_header :: A function used to read a glyph header. */ - /* It must be called between an `access' and */ - /* `forget'. */ - /* */ - /* read_simple_glyph :: A function used to read a simple glyph. */ - /* It must be called after the header was */ - /* read, and before the `forget'. */ - /* */ - /* read_composite_glyph :: A function used to read a composite glyph. */ - /* It must be called after the header was */ - /* read, and before the `forget'. */ - /* */ - /* sfnt :: A pointer to the SFNT service. */ - /* */ - /* psnames :: A pointer to the PostScript names service. */ - /* */ - /* hdmx :: The face's horizontal device metrics */ - /* (`hdmx' table). This table is optional in */ - /* TrueType/OpenType fonts. */ - /* */ - /* gasp :: The grid-fitting and scaling properties */ - /* table (`gasp'). This table is optional in */ - /* TrueType/OpenType fonts. */ - /* */ - /* pclt :: The `pclt' SFNT table. */ - /* */ - /* num_sbit_scales :: The number of sbit scales for this font. */ - /* */ - /* sbit_scales :: Array of sbit scales embedded in this */ - /* font. This table is optional in a */ - /* TrueType/OpenType font. */ - /* */ - /* postscript_names :: A table used to store the Postscript names */ - /* of the glyphs for this font. See the */ - /* file `ttconfig.h' for comments on the */ - /* TT_CONFIG_OPTION_POSTSCRIPT_NAMES option. */ - /* */ - /* num_locations :: The number of glyph locations in this */ - /* TrueType file. This should be */ - /* identical to the number of glyphs. */ - /* Ignored for Type 2 fonts. */ - /* */ - /* glyph_locations :: An array of longs. These are offsets to */ - /* glyph data within the `glyf' table. */ - /* Ignored for Type 2 font faces. */ - /* */ - /* glyf_len :: The length of the `glyf' table. Needed */ - /* for malformed `loca' tables. */ - /* */ - /* font_program_size :: Size in bytecodes of the face's font */ - /* program. 0 if none defined. Ignored for */ - /* Type 2 fonts. */ - /* */ - /* font_program :: The face's font program (bytecode stream) */ - /* executed at load time, also used during */ - /* glyph rendering. Comes from the `fpgm' */ - /* table. Ignored for Type 2 font fonts. */ - /* */ - /* cvt_program_size :: The size in bytecodes of the face's cvt */ - /* program. Ignored for Type 2 fonts. */ - /* */ - /* cvt_program :: The face's cvt program (bytecode stream) */ - /* executed each time an instance/size is */ - /* changed/reset. Comes from the `prep' */ - /* table. Ignored for Type 2 fonts. */ - /* */ - /* cvt_size :: Size of the control value table (in */ - /* entries). Ignored for Type 2 fonts. */ - /* */ - /* cvt :: The face's original control value table. */ - /* Coordinates are expressed in unscaled font */ - /* units. Comes from the `cvt ' table. */ - /* Ignored for Type 2 fonts. */ - /* */ - /* num_kern_pairs :: The number of kerning pairs present in the */ - /* font file. The engine only loads the */ - /* first horizontal format 0 kern table it */ - /* finds in the font file. Ignored for */ - /* Type 2 fonts. */ - /* */ - /* kern_table_index :: The index of the kerning table in the font */ - /* kerning directory. Ignored for Type 2 */ - /* fonts. */ - /* */ - /* interpreter :: A pointer to the TrueType bytecode */ - /* interpreters field is also used to hook */ - /* the debugger in `ttdebug'. */ - /* */ - /* unpatented_hinting :: If true, use only unpatented methods in */ - /* the bytecode interpreter. */ - /* */ - /* doblend :: A boolean which is set if the font should */ - /* be blended (this is for GX var). */ - /* */ - /* blend :: Contains the data needed to control GX */ - /* variation tables (rather like Multiple */ - /* Master data). */ - /* */ - /* extra :: Reserved for third-party font drivers. */ - /* */ - /* postscript_name :: The PS name of the font. Used by the */ - /* postscript name service. */ - /* */ - typedef struct TT_FaceRec_ - { - FT_FaceRec root; - - TTC_HeaderRec ttc_header; - - FT_ULong format_tag; - FT_UShort num_tables; - TT_Table dir_tables; - - TT_Header header; /* TrueType header table */ - TT_HoriHeader horizontal; /* TrueType horizontal header */ - - TT_MaxProfile max_profile; - - FT_Bool vertical_info; - TT_VertHeader vertical; /* TT Vertical header, if present */ - - FT_UShort num_names; /* number of name records */ - TT_NameTableRec name_table; /* name table */ - - TT_OS2 os2; /* TrueType OS/2 table */ - TT_Postscript postscript; /* TrueType Postscript table */ - - FT_Byte* cmap_table; /* extracted `cmap' table */ - FT_ULong cmap_size; - - TT_Loader_GotoTableFunc goto_table; - - TT_Loader_StartGlyphFunc access_glyph_frame; - TT_Loader_EndGlyphFunc forget_glyph_frame; - TT_Loader_ReadGlyphFunc read_glyph_header; - TT_Loader_ReadGlyphFunc read_simple_glyph; - TT_Loader_ReadGlyphFunc read_composite_glyph; - - /* a typeless pointer to the SFNT_Interface table used to load */ - /* the basic TrueType tables in the face object */ - void* sfnt; - - /* a typeless pointer to the FT_Service_PsCMapsRec table used to */ - /* handle glyph names <-> unicode & Mac values */ - void* psnames; - - - /***********************************************************************/ - /* */ - /* Optional TrueType/OpenType tables */ - /* */ - /***********************************************************************/ - - /* grid-fitting and scaling table */ - TT_GaspRec gasp; /* the `gasp' table */ - - /* PCL 5 table */ - TT_PCLT pclt; - - /* embedded bitmaps support */ - FT_ULong num_sbit_scales; - TT_SBit_Scale sbit_scales; - - /* postscript names table */ - TT_Post_NamesRec postscript_names; - - - /***********************************************************************/ - /* */ - /* TrueType-specific fields (ignored by the OTF-Type2 driver) */ - /* */ - /***********************************************************************/ - - /* the font program, if any */ - FT_ULong font_program_size; - FT_Byte* font_program; - - /* the cvt program, if any */ - FT_ULong cvt_program_size; - FT_Byte* cvt_program; - - /* the original, unscaled, control value table */ - FT_ULong cvt_size; - FT_Short* cvt; - - /* A pointer to the bytecode interpreter to use. This is also */ - /* used to hook the debugger for the `ttdebug' utility. */ - TT_Interpreter interpreter; - -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - /* Use unpatented hinting only. */ - FT_Bool unpatented_hinting; -#endif - - /***********************************************************************/ - /* */ - /* Other tables or fields. This is used by derivative formats like */ - /* OpenType. */ - /* */ - /***********************************************************************/ - - FT_Generic extra; - - const char* postscript_name; - - FT_ULong glyf_len; - -#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT - FT_Bool doblend; - GX_Blend blend; -#endif - - /* since version 2.2 */ - - FT_Byte* horz_metrics; - FT_ULong horz_metrics_size; - - FT_Byte* vert_metrics; - FT_ULong vert_metrics_size; - - FT_ULong num_locations; /* in broken TTF, gid > 0xFFFF */ - FT_Byte* glyph_locations; - - FT_Byte* hdmx_table; - FT_ULong hdmx_table_size; - FT_UInt hdmx_record_count; - FT_ULong hdmx_record_size; - FT_Byte* hdmx_record_sizes; - - FT_Byte* sbit_table; - FT_ULong sbit_table_size; - TT_SbitTableType sbit_table_type; - FT_UInt sbit_num_strikes; - - FT_Byte* kern_table; - FT_ULong kern_table_size; - FT_UInt num_kern_tables; - FT_UInt32 kern_avail_bits; - FT_UInt32 kern_order_bits; - -#ifdef TT_CONFIG_OPTION_BDF - TT_BDFRec bdf; -#endif /* TT_CONFIG_OPTION_BDF */ - - /* since 2.3.0 */ - FT_ULong horz_metrics_offset; - FT_ULong vert_metrics_offset; - -#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING - /* since 2.4.12 */ - FT_ULong sph_found_func_flags; /* special functions found */ - /* for this face */ - FT_Bool sph_compatibility_mode; -#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */ - - } TT_FaceRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_GlyphZoneRec */ - /* */ - /* <Description> */ - /* A glyph zone is used to load, scale and hint glyph outline */ - /* coordinates. */ - /* */ - /* <Fields> */ - /* memory :: A handle to the memory manager. */ - /* */ - /* max_points :: The maximum size in points of the zone. */ - /* */ - /* max_contours :: Max size in links contours of the zone. */ - /* */ - /* n_points :: The current number of points in the zone. */ - /* */ - /* n_contours :: The current number of contours in the zone. */ - /* */ - /* org :: The original glyph coordinates (font */ - /* units/scaled). */ - /* */ - /* cur :: The current glyph coordinates (scaled/hinted). */ - /* */ - /* tags :: The point control tags. */ - /* */ - /* contours :: The contours end points. */ - /* */ - /* first_point :: Offset of the current subglyph's first point. */ - /* */ - typedef struct TT_GlyphZoneRec_ - { - FT_Memory memory; - FT_UShort max_points; - FT_UShort max_contours; - FT_UShort n_points; /* number of points in zone */ - FT_Short n_contours; /* number of contours */ - - FT_Vector* org; /* original point coordinates */ - FT_Vector* cur; /* current point coordinates */ - FT_Vector* orus; /* original (unscaled) point coordinates */ - - FT_Byte* tags; /* current touch flags */ - FT_UShort* contours; /* contour end points */ - - FT_UShort first_point; /* offset of first (#0) point */ - - } TT_GlyphZoneRec, *TT_GlyphZone; - - - /* handle to execution context */ - typedef struct TT_ExecContextRec_* TT_ExecContext; - - /* glyph loader structure */ - typedef struct TT_LoaderRec_ - { - FT_Face face; - FT_Size size; - FT_GlyphSlot glyph; - FT_GlyphLoader gloader; - - FT_ULong load_flags; - FT_UInt glyph_index; - - FT_Stream stream; - FT_Int byte_len; - - FT_Short n_contours; - FT_BBox bbox; - FT_Int left_bearing; - FT_Int advance; - FT_Int linear; - FT_Bool linear_def; - FT_Vector pp1; - FT_Vector pp2; - - FT_ULong glyf_offset; - - /* the zone where we load our glyphs */ - TT_GlyphZoneRec base; - TT_GlyphZoneRec zone; - - TT_ExecContext exec; - FT_Byte* instructions; - FT_ULong ins_pos; - - /* for possible extensibility in other formats */ - void* other; - - /* since version 2.1.8 */ - FT_Int top_bearing; - FT_Int vadvance; - FT_Vector pp3; - FT_Vector pp4; - - /* since version 2.2.1 */ - FT_Byte* cursor; - FT_Byte* limit; - - } TT_LoaderRec; - - -FT_END_HEADER - -#endif /* __TTTYPES_H__ */ - - -/* END */ diff --git a/lib/linux/include/ogg/config_types.h b/lib/linux/include/ogg/config_types.h deleted file mode 100644 index 4b00047..0000000 --- a/lib/linux/include/ogg/config_types.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __CONFIG_TYPES_H__ -#define __CONFIG_TYPES_H__ - -/* these are filled in by configure */ -#define INCLUDE_INTTYPES_H 1 -#define INCLUDE_STDINT_H 1 -#define INCLUDE_SYS_TYPES_H 1 - -#if INCLUDE_INTTYPES_H -# include <inttypes.h> -#endif -#if INCLUDE_STDINT_H -# include <stdint.h> -#endif -#if INCLUDE_SYS_TYPES_H -# include <sys/types.h> -#endif - -typedef int16_t ogg_int16_t; -typedef uint16_t ogg_uint16_t; -typedef int32_t ogg_int32_t; -typedef uint32_t ogg_uint32_t; -typedef int64_t ogg_int64_t; - -#endif diff --git a/lib/linux/include/ogg/ogg.h b/lib/linux/include/ogg/ogg.h deleted file mode 100644 index cea4ebe..0000000 --- a/lib/linux/include/ogg/ogg.h +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel libogg include - last mod: $Id: ogg.h 18044 2011-08-01 17:55:20Z gmaxwell $ - - ********************************************************************/ -#ifndef _OGG_H -#define _OGG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <stddef.h> -#include <ogg/os_types.h> - -typedef struct { - void *iov_base; - size_t iov_len; -} ogg_iovec_t; - -typedef struct { - long endbyte; - int endbit; - - unsigned char *buffer; - unsigned char *ptr; - long storage; -} oggpack_buffer; - -/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ - -typedef struct { - unsigned char *header; - long header_len; - unsigned char *body; - long body_len; -} ogg_page; - -/* ogg_stream_state contains the current encode/decode state of a logical - Ogg bitstream **********************************************************/ - -typedef struct { - unsigned char *body_data; /* bytes from packet bodies */ - long body_storage; /* storage elements allocated */ - long body_fill; /* elements stored; fill mark */ - long body_returned; /* elements of fill returned */ - - - int *lacing_vals; /* The values that will go to the segment table */ - ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact - this way, but it is simple coupled to the - lacing fifo */ - long lacing_storage; - long lacing_fill; - long lacing_packet; - long lacing_returned; - - unsigned char header[282]; /* working space for header encode */ - int header_fill; - - int e_o_s; /* set when we have buffered the last packet in the - logical bitstream */ - int b_o_s; /* set after we've written the initial page - of a logical bitstream */ - long serialno; - long pageno; - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a separate abstraction - layer) also knows about the gap */ - ogg_int64_t granulepos; - -} ogg_stream_state; - -/* ogg_packet is used to encapsulate the data and metadata belonging - to a single raw Ogg/Vorbis packet *************************************/ - -typedef struct { - unsigned char *packet; - long bytes; - long b_o_s; - long e_o_s; - - ogg_int64_t granulepos; - - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a separate abstraction - layer) also knows about the gap */ -} ogg_packet; - -typedef struct { - unsigned char *data; - int storage; - int fill; - int returned; - - int unsynced; - int headerbytes; - int bodybytes; -} ogg_sync_state; - -/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ - -extern void oggpack_writeinit(oggpack_buffer *b); -extern int oggpack_writecheck(oggpack_buffer *b); -extern void oggpack_writetrunc(oggpack_buffer *b,long bits); -extern void oggpack_writealign(oggpack_buffer *b); -extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpack_reset(oggpack_buffer *b); -extern void oggpack_writeclear(oggpack_buffer *b); -extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpack_look(oggpack_buffer *b,int bits); -extern long oggpack_look1(oggpack_buffer *b); -extern void oggpack_adv(oggpack_buffer *b,int bits); -extern void oggpack_adv1(oggpack_buffer *b); -extern long oggpack_read(oggpack_buffer *b,int bits); -extern long oggpack_read1(oggpack_buffer *b); -extern long oggpack_bytes(oggpack_buffer *b); -extern long oggpack_bits(oggpack_buffer *b); -extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); - -extern void oggpackB_writeinit(oggpack_buffer *b); -extern int oggpackB_writecheck(oggpack_buffer *b); -extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); -extern void oggpackB_writealign(oggpack_buffer *b); -extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpackB_reset(oggpack_buffer *b); -extern void oggpackB_writeclear(oggpack_buffer *b); -extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpackB_look(oggpack_buffer *b,int bits); -extern long oggpackB_look1(oggpack_buffer *b); -extern void oggpackB_adv(oggpack_buffer *b,int bits); -extern void oggpackB_adv1(oggpack_buffer *b); -extern long oggpackB_read(oggpack_buffer *b,int bits); -extern long oggpackB_read1(oggpack_buffer *b); -extern long oggpackB_bytes(oggpack_buffer *b); -extern long oggpackB_bits(oggpack_buffer *b); -extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); - -/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ - -extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); -extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, - int count, long e_o_s, ogg_int64_t granulepos); -extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); -extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); - -/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ - -extern int ogg_sync_init(ogg_sync_state *oy); -extern int ogg_sync_clear(ogg_sync_state *oy); -extern int ogg_sync_reset(ogg_sync_state *oy); -extern int ogg_sync_destroy(ogg_sync_state *oy); -extern int ogg_sync_check(ogg_sync_state *oy); - -extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); -extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); -extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); -extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); -extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); -extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); - -/* Ogg BITSTREAM PRIMITIVES: general ***************************/ - -extern int ogg_stream_init(ogg_stream_state *os,int serialno); -extern int ogg_stream_clear(ogg_stream_state *os); -extern int ogg_stream_reset(ogg_stream_state *os); -extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); -extern int ogg_stream_destroy(ogg_stream_state *os); -extern int ogg_stream_check(ogg_stream_state *os); -extern int ogg_stream_eos(ogg_stream_state *os); - -extern void ogg_page_checksum_set(ogg_page *og); - -extern int ogg_page_version(const ogg_page *og); -extern int ogg_page_continued(const ogg_page *og); -extern int ogg_page_bos(const ogg_page *og); -extern int ogg_page_eos(const ogg_page *og); -extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); -extern int ogg_page_serialno(const ogg_page *og); -extern long ogg_page_pageno(const ogg_page *og); -extern int ogg_page_packets(const ogg_page *og); - -extern void ogg_packet_clear(ogg_packet *op); - - -#ifdef __cplusplus -} -#endif - -#endif /* _OGG_H */ diff --git a/lib/linux/include/ogg/os_types.h b/lib/linux/include/ogg/os_types.h deleted file mode 100644 index d6691b7..0000000 --- a/lib/linux/include/ogg/os_types.h +++ /dev/null @@ -1,147 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: #ifdef jail to whip a few platforms into the UNIX ideal. - last mod: $Id: os_types.h 17712 2010-12-03 17:10:02Z xiphmont $ - - ********************************************************************/ -#ifndef _OS_TYPES_H -#define _OS_TYPES_H - -/* make it easy on the folks that want to compile the libs with a - different malloc than stdlib */ -#define _ogg_malloc malloc -#define _ogg_calloc calloc -#define _ogg_realloc realloc -#define _ogg_free free - -#if defined(_WIN32) - -# if defined(__CYGWIN__) -# include <stdint.h> - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - typedef uint64_t ogg_uint64_t; -# elif defined(__MINGW32__) -# include <sys/types.h> - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - typedef unsigned long long ogg_uint64_t; -# elif defined(__MWERKS__) - typedef long long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; -# else - /* MSVC/Borland */ - typedef __int64 ogg_int64_t; - typedef __int32 ogg_int32_t; - typedef unsigned __int32 ogg_uint32_t; - typedef __int16 ogg_int16_t; - typedef unsigned __int16 ogg_uint16_t; -# endif - -#elif defined(__MACOS__) - -# include <sys/types.h> - typedef SInt16 ogg_int16_t; - typedef UInt16 ogg_uint16_t; - typedef SInt32 ogg_int32_t; - typedef UInt32 ogg_uint32_t; - typedef SInt64 ogg_int64_t; - -#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ - -# include <inttypes.h> - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined(__HAIKU__) - - /* Haiku */ -# include <sys/types.h> - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(__BEOS__) - - /* Be */ -# include <inttypes.h> - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined (__EMX__) - - /* OS/2 GCC */ - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined (DJGPP) - - /* DJGPP */ - typedef short ogg_int16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(R5900) - - /* PS2 EE */ - typedef long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned ogg_uint32_t; - typedef short ogg_int16_t; - -#elif defined(__SYMBIAN32__) - - /* Symbian GCC */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#elif defined(__TMS320C6X__) - - /* TI C64x compiler */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#else - -# include <ogg/config_types.h> - -#endif - -#endif /* _OS_TYPES_H */ diff --git a/lib/linux/include/png.h b/lib/linux/include/png.h deleted file mode 100644 index 2cdede0..0000000 --- a/lib/linux/include/png.h +++ /dev/null @@ -1,3810 +0,0 @@ -/* png.h - header file for PNG reference library - * - * libpng version 1.2.49 - March 29, 2012 - * Copyright (c) 1998-2012 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) - * - * This code is released under the libpng license (See LICENSE, below) - * - * Authors and maintainers: - * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat - * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.2.49 - March 29, 2012: Glenn - * See also "Contributing Authors", below. - * - * Note about libpng version numbers: - * - * Due to various miscommunications, unforeseen code incompatibilities - * and occasional factors outside the authors' control, version numbering - * on the library has not always been consistent and straightforward. - * The following table summarizes matters since version 0.89c, which was - * the first widely used release: - * - * source png.h png.h shared-lib - * version string int version - * ------- ------ ----- ---------- - * 0.89c "1.0 beta 3" 0.89 89 1.0.89 - * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] - * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] - * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96] - * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97] - * 0.97c 0.97 97 2.0.97 - * 0.98 0.98 98 2.0.98 - * 0.99 0.99 98 2.0.99 - * 0.99a-m 0.99 99 2.0.99 - * 1.00 1.00 100 2.1.0 [100 should be 10000] - * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000] - * 1.0.1 png.h string is 10001 2.1.0 - * 1.0.1a-e identical to the 10002 from here on, the shared library - * 1.0.2 source version) 10002 is 2.V where V is the source code - * 1.0.2a-b 10003 version, except as noted. - * 1.0.3 10003 - * 1.0.3a-d 10004 - * 1.0.4 10004 - * 1.0.4a-f 10005 - * 1.0.5 (+ 2 patches) 10005 - * 1.0.5a-d 10006 - * 1.0.5e-r 10100 (not source compatible) - * 1.0.5s-v 10006 (not binary compatible) - * 1.0.6 (+ 3 patches) 10006 (still binary incompatible) - * 1.0.6d-f 10007 (still binary incompatible) - * 1.0.6g 10007 - * 1.0.6h 10007 10.6h (testing xy.z so-numbering) - * 1.0.6i 10007 10.6i - * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0) - * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible) - * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible) - * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) - * 1.0.7 1 10007 (still compatible) - * 1.0.8beta1-4 1 10008 2.1.0.8beta1-4 - * 1.0.8rc1 1 10008 2.1.0.8rc1 - * 1.0.8 1 10008 2.1.0.8 - * 1.0.9beta1-6 1 10009 2.1.0.9beta1-6 - * 1.0.9rc1 1 10009 2.1.0.9rc1 - * 1.0.9beta7-10 1 10009 2.1.0.9beta7-10 - * 1.0.9rc2 1 10009 2.1.0.9rc2 - * 1.0.9 1 10009 2.1.0.9 - * 1.0.10beta1 1 10010 2.1.0.10beta1 - * 1.0.10rc1 1 10010 2.1.0.10rc1 - * 1.0.10 1 10010 2.1.0.10 - * 1.0.11beta1-3 1 10011 2.1.0.11beta1-3 - * 1.0.11rc1 1 10011 2.1.0.11rc1 - * 1.0.11 1 10011 2.1.0.11 - * 1.0.12beta1-2 2 10012 2.1.0.12beta1-2 - * 1.0.12rc1 2 10012 2.1.0.12rc1 - * 1.0.12 2 10012 2.1.0.12 - * 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned) - * 1.2.0beta1-2 2 10200 2.1.2.0beta1-2 - * 1.2.0beta3-5 3 10200 3.1.2.0beta3-5 - * 1.2.0rc1 3 10200 3.1.2.0rc1 - * 1.2.0 3 10200 3.1.2.0 - * 1.2.1beta1-4 3 10201 3.1.2.1beta1-4 - * 1.2.1rc1-2 3 10201 3.1.2.1rc1-2 - * 1.2.1 3 10201 3.1.2.1 - * 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6 - * 1.0.13beta1 10 10013 10.so.0.1.0.13beta1 - * 1.0.13rc1 10 10013 10.so.0.1.0.13rc1 - * 1.2.2rc1 12 10202 12.so.0.1.2.2rc1 - * 1.0.13 10 10013 10.so.0.1.0.13 - * 1.2.2 12 10202 12.so.0.1.2.2 - * 1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6 - * 1.2.3 12 10203 12.so.0.1.2.3 - * 1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3 - * 1.0.14rc1 13 10014 10.so.0.1.0.14rc1 - * 1.2.4rc1 13 10204 12.so.0.1.2.4rc1 - * 1.0.14 10 10014 10.so.0.1.0.14 - * 1.2.4 13 10204 12.so.0.1.2.4 - * 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2 - * 1.0.15rc1-3 10 10015 10.so.0.1.0.15rc1-3 - * 1.2.5rc1-3 13 10205 12.so.0.1.2.5rc1-3 - * 1.0.15 10 10015 10.so.0.1.0.15 - * 1.2.5 13 10205 12.so.0.1.2.5 - * 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4 - * 1.0.16 10 10016 10.so.0.1.0.16 - * 1.2.6 13 10206 12.so.0.1.2.6 - * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2 - * 1.0.17rc1 10 10017 10.so.0.1.0.17rc1 - * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1 - * 1.0.17 10 10017 10.so.0.1.0.17 - * 1.2.7 13 10207 12.so.0.1.2.7 - * 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5 - * 1.0.18rc1-5 10 10018 10.so.0.1.0.18rc1-5 - * 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5 - * 1.0.18 10 10018 10.so.0.1.0.18 - * 1.2.8 13 10208 12.so.0.1.2.8 - * 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3 - * 1.2.9beta4-11 13 10209 12.so.0.9[.0] - * 1.2.9rc1 13 10209 12.so.0.9[.0] - * 1.2.9 13 10209 12.so.0.9[.0] - * 1.2.10beta1-8 13 10210 12.so.0.10[.0] - * 1.2.10rc1-3 13 10210 12.so.0.10[.0] - * 1.2.10 13 10210 12.so.0.10[.0] - * 1.2.11beta1-4 13 10211 12.so.0.11[.0] - * 1.0.19rc1-5 10 10019 10.so.0.19[.0] - * 1.2.11rc1-5 13 10211 12.so.0.11[.0] - * 1.0.19 10 10019 10.so.0.19[.0] - * 1.2.11 13 10211 12.so.0.11[.0] - * 1.0.20 10 10020 10.so.0.20[.0] - * 1.2.12 13 10212 12.so.0.12[.0] - * 1.2.13beta1 13 10213 12.so.0.13[.0] - * 1.0.21 10 10021 10.so.0.21[.0] - * 1.2.13 13 10213 12.so.0.13[.0] - * 1.2.14beta1-2 13 10214 12.so.0.14[.0] - * 1.0.22rc1 10 10022 10.so.0.22[.0] - * 1.2.14rc1 13 10214 12.so.0.14[.0] - * 1.0.22 10 10022 10.so.0.22[.0] - * 1.2.14 13 10214 12.so.0.14[.0] - * 1.2.15beta1-6 13 10215 12.so.0.15[.0] - * 1.0.23rc1-5 10 10023 10.so.0.23[.0] - * 1.2.15rc1-5 13 10215 12.so.0.15[.0] - * 1.0.23 10 10023 10.so.0.23[.0] - * 1.2.15 13 10215 12.so.0.15[.0] - * 1.2.16beta1-2 13 10216 12.so.0.16[.0] - * 1.2.16rc1 13 10216 12.so.0.16[.0] - * 1.0.24 10 10024 10.so.0.24[.0] - * 1.2.16 13 10216 12.so.0.16[.0] - * 1.2.17beta1-2 13 10217 12.so.0.17[.0] - * 1.0.25rc1 10 10025 10.so.0.25[.0] - * 1.2.17rc1-3 13 10217 12.so.0.17[.0] - * 1.0.25 10 10025 10.so.0.25[.0] - * 1.2.17 13 10217 12.so.0.17[.0] - * 1.0.26 10 10026 10.so.0.26[.0] - * 1.2.18 13 10218 12.so.0.18[.0] - * 1.2.19beta1-31 13 10219 12.so.0.19[.0] - * 1.0.27rc1-6 10 10027 10.so.0.27[.0] - * 1.2.19rc1-6 13 10219 12.so.0.19[.0] - * 1.0.27 10 10027 10.so.0.27[.0] - * 1.2.19 13 10219 12.so.0.19[.0] - * 1.2.20beta01-04 13 10220 12.so.0.20[.0] - * 1.0.28rc1-6 10 10028 10.so.0.28[.0] - * 1.2.20rc1-6 13 10220 12.so.0.20[.0] - * 1.0.28 10 10028 10.so.0.28[.0] - * 1.2.20 13 10220 12.so.0.20[.0] - * 1.2.21beta1-2 13 10221 12.so.0.21[.0] - * 1.2.21rc1-3 13 10221 12.so.0.21[.0] - * 1.0.29 10 10029 10.so.0.29[.0] - * 1.2.21 13 10221 12.so.0.21[.0] - * 1.2.22beta1-4 13 10222 12.so.0.22[.0] - * 1.0.30rc1 10 10030 10.so.0.30[.0] - * 1.2.22rc1 13 10222 12.so.0.22[.0] - * 1.0.30 10 10030 10.so.0.30[.0] - * 1.2.22 13 10222 12.so.0.22[.0] - * 1.2.23beta01-05 13 10223 12.so.0.23[.0] - * 1.2.23rc01 13 10223 12.so.0.23[.0] - * 1.2.23 13 10223 12.so.0.23[.0] - * 1.2.24beta01-02 13 10224 12.so.0.24[.0] - * 1.2.24rc01 13 10224 12.so.0.24[.0] - * 1.2.24 13 10224 12.so.0.24[.0] - * 1.2.25beta01-06 13 10225 12.so.0.25[.0] - * 1.2.25rc01-02 13 10225 12.so.0.25[.0] - * 1.0.31 10 10031 10.so.0.31[.0] - * 1.2.25 13 10225 12.so.0.25[.0] - * 1.2.26beta01-06 13 10226 12.so.0.26[.0] - * 1.2.26rc01 13 10226 12.so.0.26[.0] - * 1.2.26 13 10226 12.so.0.26[.0] - * 1.0.32 10 10032 10.so.0.32[.0] - * 1.2.27beta01-06 13 10227 12.so.0.27[.0] - * 1.2.27rc01 13 10227 12.so.0.27[.0] - * 1.0.33 10 10033 10.so.0.33[.0] - * 1.2.27 13 10227 12.so.0.27[.0] - * 1.0.34 10 10034 10.so.0.34[.0] - * 1.2.28 13 10228 12.so.0.28[.0] - * 1.2.29beta01-03 13 10229 12.so.0.29[.0] - * 1.2.29rc01 13 10229 12.so.0.29[.0] - * 1.0.35 10 10035 10.so.0.35[.0] - * 1.2.29 13 10229 12.so.0.29[.0] - * 1.0.37 10 10037 10.so.0.37[.0] - * 1.2.30beta01-04 13 10230 12.so.0.30[.0] - * 1.0.38rc01-08 10 10038 10.so.0.38[.0] - * 1.2.30rc01-08 13 10230 12.so.0.30[.0] - * 1.0.38 10 10038 10.so.0.38[.0] - * 1.2.30 13 10230 12.so.0.30[.0] - * 1.0.39rc01-03 10 10039 10.so.0.39[.0] - * 1.2.31rc01-03 13 10231 12.so.0.31[.0] - * 1.0.39 10 10039 10.so.0.39[.0] - * 1.2.31 13 10231 12.so.0.31[.0] - * 1.2.32beta01-02 13 10232 12.so.0.32[.0] - * 1.0.40rc01 10 10040 10.so.0.40[.0] - * 1.2.32rc01 13 10232 12.so.0.32[.0] - * 1.0.40 10 10040 10.so.0.40[.0] - * 1.2.32 13 10232 12.so.0.32[.0] - * 1.2.33beta01-02 13 10233 12.so.0.33[.0] - * 1.2.33rc01-02 13 10233 12.so.0.33[.0] - * 1.0.41rc01 10 10041 10.so.0.41[.0] - * 1.2.33 13 10233 12.so.0.33[.0] - * 1.0.41 10 10041 10.so.0.41[.0] - * 1.2.34beta01-07 13 10234 12.so.0.34[.0] - * 1.0.42rc01 10 10042 10.so.0.42[.0] - * 1.2.34rc01 13 10234 12.so.0.34[.0] - * 1.0.42 10 10042 10.so.0.42[.0] - * 1.2.34 13 10234 12.so.0.34[.0] - * 1.2.35beta01-03 13 10235 12.so.0.35[.0] - * 1.0.43rc01-02 10 10043 10.so.0.43[.0] - * 1.2.35rc01-02 13 10235 12.so.0.35[.0] - * 1.0.43 10 10043 10.so.0.43[.0] - * 1.2.35 13 10235 12.so.0.35[.0] - * 1.2.36beta01-05 13 10236 12.so.0.36[.0] - * 1.2.36rc01 13 10236 12.so.0.36[.0] - * 1.0.44 10 10044 10.so.0.44[.0] - * 1.2.36 13 10236 12.so.0.36[.0] - * 1.2.37beta01-03 13 10237 12.so.0.37[.0] - * 1.2.37rc01 13 10237 12.so.0.37[.0] - * 1.2.37 13 10237 12.so.0.37[.0] - * 1.0.45 10 10045 12.so.0.45[.0] - * 1.0.46 10 10046 10.so.0.46[.0] - * 1.2.38beta01 13 10238 12.so.0.38[.0] - * 1.2.38rc01-03 13 10238 12.so.0.38[.0] - * 1.0.47 10 10047 10.so.0.47[.0] - * 1.2.38 13 10238 12.so.0.38[.0] - * 1.2.39beta01-05 13 10239 12.so.0.39[.0] - * 1.2.39rc01 13 10239 12.so.0.39[.0] - * 1.0.48 10 10048 10.so.0.48[.0] - * 1.2.39 13 10239 12.so.0.39[.0] - * 1.2.40beta01 13 10240 12.so.0.40[.0] - * 1.2.40rc01 13 10240 12.so.0.40[.0] - * 1.0.49 10 10049 10.so.0.49[.0] - * 1.2.40 13 10240 12.so.0.40[.0] - * 1.2.41beta01-18 13 10241 12.so.0.41[.0] - * 1.0.51rc01 10 10051 10.so.0.51[.0] - * 1.2.41rc01-03 13 10241 12.so.0.41[.0] - * 1.0.51 10 10051 10.so.0.51[.0] - * 1.2.41 13 10241 12.so.0.41[.0] - * 1.2.42beta01-02 13 10242 12.so.0.42[.0] - * 1.2.42rc01-05 13 10242 12.so.0.42[.0] - * 1.0.52 10 10052 10.so.0.52[.0] - * 1.2.42 13 10242 12.so.0.42[.0] - * 1.2.43beta01-05 13 10243 12.so.0.43[.0] - * 1.0.53rc01-02 10 10053 10.so.0.53[.0] - * 1.2.43rc01-02 13 10243 12.so.0.43[.0] - * 1.0.53 10 10053 10.so.0.53[.0] - * 1.2.43 13 10243 12.so.0.43[.0] - * 1.2.44beta01-03 13 10244 12.so.0.44[.0] - * 1.2.44rc01-03 13 10244 12.so.0.44[.0] - * 1.2.44 13 10244 12.so.0.44[.0] - * 1.2.45beta01-03 13 10245 12.so.0.45[.0] - * 1.0.55rc01 10 10055 10.so.0.55[.0] - * 1.2.45rc01 13 10245 12.so.0.45[.0] - * 1.0.55 10 10055 10.so.0.55[.0] - * 1.2.45 13 10245 12.so.0.45[.0] - * 1.2.46rc01-02 13 10246 12.so.0.46[.0] - * 1.0.56 10 10056 10.so.0.56[.0] - * 1.2.46 13 10246 12.so.0.46[.0] - * 1.2.47beta01 13 10247 12.so.0.47[.0] - * 1.2.47rc01 13 10247 12.so.0.47[.0] - * 1.0.57rc01 10 10057 10.so.0.57[.0] - * 1.2.47 13 10247 12.so.0.47[.0] - * 1.0.57 10 10057 10.so.0.57[.0] - * 1.2.48beta01 13 10248 12.so.0.48[.0] - * 1.2.48rc01-02 13 10248 12.so.0.48[.0] - * 1.0.58 10 10058 10.so.0.58[.0] - * 1.2.48 13 10248 12.so.0.48[.0] - * 1.2.49rc01 13 10249 12.so.0.49[.0] - * 1.0.59 10 10059 10.so.0.59[.0] - * 1.2.49 13 10249 12.so.0.49[.0] - * - * Henceforth the source version will match the shared-library major - * and minor numbers; the shared-library major version number will be - * used for changes in backward compatibility, as it is intended. The - * PNG_LIBPNG_VER macro, which is not used within libpng but is available - * for applications, is an unsigned integer of the form xyyzz corresponding - * to the source version x.y.z (leading zeros in y and z). Beta versions - * were given the previous public release number plus a letter, until - * version 1.0.6j; from then on they were given the upcoming public - * release number plus "betaNN" or "rcNN". - * - * Binary incompatibility exists only when applications make direct access - * to the info_ptr or png_ptr members through png.h, and the compiled - * application is loaded with a different version of the library. - * - * DLLNUM will change each time there are forward or backward changes - * in binary compatibility (e.g., when a new feature is added). - * - * See libpng.txt or libpng.3 for more information. The PNG specification - * is available as a W3C Recommendation and as an ISO Specification, - * <http://www.w3.org/TR/2003/REC-PNG-20031110/ - */ - -/* - * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: - * - * If you modify libpng you may insert additional notices immediately following - * this sentence. - * - * This code is released under the libpng license. - * - * libpng versions 1.2.6, August 15, 2004, through 1.2.49, March 29, 2012, are - * Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are - * distributed according to the same disclaimer and license as libpng-1.2.5 - * with the following individual added to the list of Contributing Authors: - * - * Cosmin Truta - * - * libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are - * Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are - * distributed according to the same disclaimer and license as libpng-1.0.6 - * with the following individuals added to the list of Contributing Authors: - * - * Simon-Pierre Cadieux - * Eric S. Raymond - * Gilles Vollant - * - * and with the following additions to the disclaimer: - * - * There is no warranty against interference with your enjoyment of the - * library or against infringement. There is no warranty that our - * efforts or the library will fulfill any of your particular purposes - * or needs. This library is provided with all faults, and the entire - * risk of satisfactory quality, performance, accuracy, and effort is with - * the user. - * - * libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are - * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson, and are - * distributed according to the same disclaimer and license as libpng-0.96, - * with the following individuals added to the list of Contributing Authors: - * - * Tom Lane - * Glenn Randers-Pehrson - * Willem van Schaik - * - * libpng versions 0.89, June 1996, through 0.96, May 1997, are - * Copyright (c) 1996, 1997 Andreas Dilger - * Distributed according to the same disclaimer and license as libpng-0.88, - * with the following individuals added to the list of Contributing Authors: - * - * John Bowler - * Kevin Bracey - * Sam Bushell - * Magnus Holmgren - * Greg Roelofs - * Tom Tanner - * - * libpng versions 0.5, May 1995, through 0.88, January 1996, are - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * - * For the purposes of this copyright and license, "Contributing Authors" - * is defined as the following set of individuals: - * - * Andreas Dilger - * Dave Martindale - * Guy Eric Schalnat - * Paul Schmidt - * Tim Wegner - * - * The PNG Reference Library is supplied "AS IS". The Contributing Authors - * and Group 42, Inc. disclaim all warranties, expressed or implied, - * including, without limitation, the warranties of merchantability and of - * fitness for any purpose. The Contributing Authors and Group 42, Inc. - * assume no liability for direct, indirect, incidental, special, exemplary, - * or consequential damages, which may result from the use of the PNG - * Reference Library, even if advised of the possibility of such damage. - * - * Permission is hereby granted to use, copy, modify, and distribute this - * source code, or portions hereof, for any purpose, without fee, subject - * to the following restrictions: - * - * 1. The origin of this source code must not be misrepresented. - * - * 2. Altered versions must be plainly marked as such and - * must not be misrepresented as being the original source. - * - * 3. This Copyright notice may not be removed or altered from - * any source or altered source distribution. - * - * The Contributing Authors and Group 42, Inc. specifically permit, without - * fee, and encourage the use of this source code as a component to - * supporting the PNG file format in commercial products. If you use this - * source code in a product, acknowledgment is not required but would be - * appreciated. - */ - -/* - * A "png_get_copyright" function is available, for convenient use in "about" - * boxes and the like: - * - * printf("%s",png_get_copyright(NULL)); - * - * Also, the PNG logo (in PNG format, of course) is supplied in the - * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). - */ - -/* - * Libpng is OSI Certified Open Source Software. OSI Certified is a - * certification mark of the Open Source Initiative. - */ - -/* - * The contributing authors would like to thank all those who helped - * with testing, bug fixes, and patience. This wouldn't have been - * possible without all of you. - * - * Thanks to Frank J. T. Wojcik for helping with the documentation. - */ - -/* - * Y2K compliance in libpng: - * ========================= - * - * March 29, 2012 - * - * Since the PNG Development group is an ad-hoc body, we can't make - * an official declaration. - * - * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.2.49 are Y2K compliant. It is my belief that earlier - * versions were also Y2K compliant. - * - * Libpng only has three year fields. One is a 2-byte unsigned integer - * that will hold years up to 65535. The other two hold the date in text - * format, and will hold years up to 9999. - * - * The integer is - * "png_uint_16 year" in png_time_struct. - * - * The strings are - * "png_charp time_buffer" in png_struct and - * "near_time_buffer", which is a local character string in png.c. - * - * There are seven time-related functions: - * png.c: png_convert_to_rfc_1123() in png.c - * (formerly png_convert_to_rfc_1152() in error) - * png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c - * png_convert_from_time_t() in pngwrite.c - * png_get_tIME() in pngget.c - * png_handle_tIME() in pngrutil.c, called in pngread.c - * png_set_tIME() in pngset.c - * png_write_tIME() in pngwutil.c, called in pngwrite.c - * - * All handle dates properly in a Y2K environment. The - * png_convert_from_time_t() function calls gmtime() to convert from system - * clock time, which returns (year - 1900), which we properly convert to - * the full 4-digit year. There is a possibility that applications using - * libpng are not passing 4-digit years into the png_convert_to_rfc_1123() - * function, or that they are incorrectly passing only a 2-digit year - * instead of "year - 1900" into the png_convert_from_struct_tm() function, - * but this is not under our control. The libpng documentation has always - * stated that it works with 4-digit years, and the APIs have been - * documented as such. - * - * The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned - * integer to hold the year, and can hold years as large as 65535. - * - * zlib, upon which libpng depends, is also Y2K compliant. It contains - * no date-related code. - * - * Glenn Randers-Pehrson - * libpng maintainer - * PNG Development Group - */ - -#ifndef PNG_H -#define PNG_H - -/* This is not the place to learn how to use libpng. The file libpng.txt - * describes how to use libpng, and the file example.c summarizes it - * with some code on which to build. This file is useful for looking - * at the actual function definitions and structure components. - */ - -/* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.2.49" -#define PNG_HEADER_VERSION_STRING \ - " libpng version 1.2.49 - March 29, 2012\n" - -#define PNG_LIBPNG_VER_SONUM 0 -#define PNG_LIBPNG_VER_DLLNUM 13 - -/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ -#define PNG_LIBPNG_VER_MAJOR 1 -#define PNG_LIBPNG_VER_MINOR 2 -#define PNG_LIBPNG_VER_RELEASE 49 -/* This should match the numeric part of the final component of - * PNG_LIBPNG_VER_STRING, omitting any leading zero: - */ - -#define PNG_LIBPNG_VER_BUILD 0 - -/* Release Status */ -#define PNG_LIBPNG_BUILD_ALPHA 1 -#define PNG_LIBPNG_BUILD_BETA 2 -#define PNG_LIBPNG_BUILD_RC 3 -#define PNG_LIBPNG_BUILD_STABLE 4 -#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7 - -/* Release-Specific Flags */ -#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with - PNG_LIBPNG_BUILD_STABLE only */ -#define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with - PNG_LIBPNG_BUILD_SPECIAL */ -#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with - PNG_LIBPNG_BUILD_PRIVATE */ - -#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE - -/* Careful here. At one time, Guy wanted to use 082, but that would be octal. - * We must not include leading zeros. - * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only - * version 1.0.0 was mis-numbered 100 instead of 10000). From - * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release - */ -#define PNG_LIBPNG_VER 10249 /* 1.2.49 */ - -#ifndef PNG_VERSION_INFO_ONLY -/* Include the compression library's header */ -#include "zlib.h" -#endif - -/* Include all user configurable info, including optional assembler routines */ -#include "pngconf.h" - -/* - * Added at libpng-1.2.8 */ -/* Ref MSDN: Private as priority over Special - * VS_FF_PRIVATEBUILD File *was not* built using standard release - * procedures. If this value is given, the StringFileInfo block must - * contain a PrivateBuild string. - * - * VS_FF_SPECIALBUILD File *was* built by the original company using - * standard release procedures but is a variation of the standard - * file of the same version number. If this value is given, the - * StringFileInfo block must contain a SpecialBuild string. - */ - -#ifdef PNG_USER_PRIVATEBUILD -# define PNG_LIBPNG_BUILD_TYPE \ - (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) -#else -# ifdef PNG_LIBPNG_SPECIALBUILD -# define PNG_LIBPNG_BUILD_TYPE \ - (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) -# else -# define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE) -# endif -#endif - -#ifndef PNG_VERSION_INFO_ONLY - -/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* This file is arranged in several sections. The first section contains - * structure and type definitions. The second section contains the external - * library functions, while the third has the internal library functions, - * which applications aren't expected to use directly. - */ - -#ifndef PNG_NO_TYPECAST_NULL -#define int_p_NULL (int *)NULL -#define png_bytep_NULL (png_bytep)NULL -#define png_bytepp_NULL (png_bytepp)NULL -#define png_doublep_NULL (png_doublep)NULL -#define png_error_ptr_NULL (png_error_ptr)NULL -#define png_flush_ptr_NULL (png_flush_ptr)NULL -#define png_free_ptr_NULL (png_free_ptr)NULL -#define png_infopp_NULL (png_infopp)NULL -#define png_malloc_ptr_NULL (png_malloc_ptr)NULL -#define png_read_status_ptr_NULL (png_read_status_ptr)NULL -#define png_rw_ptr_NULL (png_rw_ptr)NULL -#define png_structp_NULL (png_structp)NULL -#define png_uint_16p_NULL (png_uint_16p)NULL -#define png_voidp_NULL (png_voidp)NULL -#define png_write_status_ptr_NULL (png_write_status_ptr)NULL -#else -#define int_p_NULL NULL -#define png_bytep_NULL NULL -#define png_bytepp_NULL NULL -#define png_doublep_NULL NULL -#define png_error_ptr_NULL NULL -#define png_flush_ptr_NULL NULL -#define png_free_ptr_NULL NULL -#define png_infopp_NULL NULL -#define png_malloc_ptr_NULL NULL -#define png_read_status_ptr_NULL NULL -#define png_rw_ptr_NULL NULL -#define png_structp_NULL NULL -#define png_uint_16p_NULL NULL -#define png_voidp_NULL NULL -#define png_write_status_ptr_NULL NULL -#endif - -/* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */ -#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN) -/* Version information for C files, stored in png.c. This had better match - * the version above. - */ -#ifdef PNG_USE_GLOBAL_ARRAYS -PNG_EXPORT_VAR (PNG_CONST char) png_libpng_ver[18]; - /* Need room for 99.99.99beta99z */ -#else -#define png_libpng_ver png_get_header_ver(NULL) -#endif - -#ifdef PNG_USE_GLOBAL_ARRAYS -/* This was removed in version 1.0.5c */ -/* Structures to facilitate easy interlacing. See png.c for more details */ -PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_start[7]; -PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_inc[7]; -PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_ystart[7]; -PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_yinc[7]; -PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_mask[7]; -PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_dsp_mask[7]; -/* This isn't currently used. If you need it, see png.c for more details. -PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_height[7]; -*/ -#endif - -#endif /* PNG_NO_EXTERN */ - -/* Three color definitions. The order of the red, green, and blue, (and the - * exact size) is not important, although the size of the fields need to - * be png_byte or png_uint_16 (as defined below). - */ -typedef struct png_color_struct -{ - png_byte red; - png_byte green; - png_byte blue; -} png_color; -typedef png_color FAR * png_colorp; -typedef png_color FAR * FAR * png_colorpp; - -typedef struct png_color_16_struct -{ - png_byte index; /* used for palette files */ - png_uint_16 red; /* for use in red green blue files */ - png_uint_16 green; - png_uint_16 blue; - png_uint_16 gray; /* for use in grayscale files */ -} png_color_16; -typedef png_color_16 FAR * png_color_16p; -typedef png_color_16 FAR * FAR * png_color_16pp; - -typedef struct png_color_8_struct -{ - png_byte red; /* for use in red green blue files */ - png_byte green; - png_byte blue; - png_byte gray; /* for use in grayscale files */ - png_byte alpha; /* for alpha channel files */ -} png_color_8; -typedef png_color_8 FAR * png_color_8p; -typedef png_color_8 FAR * FAR * png_color_8pp; - -/* - * The following two structures are used for the in-core representation - * of sPLT chunks. - */ -typedef struct png_sPLT_entry_struct -{ - png_uint_16 red; - png_uint_16 green; - png_uint_16 blue; - png_uint_16 alpha; - png_uint_16 frequency; -} png_sPLT_entry; -typedef png_sPLT_entry FAR * png_sPLT_entryp; -typedef png_sPLT_entry FAR * FAR * png_sPLT_entrypp; - -/* When the depth of the sPLT palette is 8 bits, the color and alpha samples - * occupy the LSB of their respective members, and the MSB of each member - * is zero-filled. The frequency member always occupies the full 16 bits. - */ - -typedef struct png_sPLT_struct -{ - png_charp name; /* palette name */ - png_byte depth; /* depth of palette samples */ - png_sPLT_entryp entries; /* palette entries */ - png_int_32 nentries; /* number of palette entries */ -} png_sPLT_t; -typedef png_sPLT_t FAR * png_sPLT_tp; -typedef png_sPLT_t FAR * FAR * png_sPLT_tpp; - -#ifdef PNG_TEXT_SUPPORTED -/* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file, - * and whether that contents is compressed or not. The "key" field - * points to a regular zero-terminated C string. The "text", "lang", and - * "lang_key" fields can be regular C strings, empty strings, or NULL pointers. - * However, the * structure returned by png_get_text() will always contain - * regular zero-terminated C strings (possibly empty), never NULL pointers, - * so they can be safely used in printf() and other string-handling functions. - */ -typedef struct png_text_struct -{ - int compression; /* compression value: - -1: tEXt, none - 0: zTXt, deflate - 1: iTXt, none - 2: iTXt, deflate */ - png_charp key; /* keyword, 1-79 character description of "text" */ - png_charp text; /* comment, may be an empty string (ie "") - or a NULL pointer */ - png_size_t text_length; /* length of the text string */ -#ifdef PNG_iTXt_SUPPORTED - png_size_t itxt_length; /* length of the itxt string */ - png_charp lang; /* language code, 0-79 characters - or a NULL pointer */ - png_charp lang_key; /* keyword translated UTF-8 string, 0 or more - chars or a NULL pointer */ -#endif -} png_text; -typedef png_text FAR * png_textp; -typedef png_text FAR * FAR * png_textpp; -#endif - -/* Supported compression types for text in PNG files (tEXt, and zTXt). - * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. - */ -#define PNG_TEXT_COMPRESSION_NONE_WR -3 -#define PNG_TEXT_COMPRESSION_zTXt_WR -2 -#define PNG_TEXT_COMPRESSION_NONE -1 -#define PNG_TEXT_COMPRESSION_zTXt 0 -#define PNG_ITXT_COMPRESSION_NONE 1 -#define PNG_ITXT_COMPRESSION_zTXt 2 -#define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */ - -/* png_time is a way to hold the time in an machine independent way. - * Two conversions are provided, both from time_t and struct tm. There - * is no portable way to convert to either of these structures, as far - * as I know. If you know of a portable way, send it to me. As a side - * note - PNG has always been Year 2000 compliant! - */ -typedef struct png_time_struct -{ - png_uint_16 year; /* full year, as in, 1995 */ - png_byte month; /* month of year, 1 - 12 */ - png_byte day; /* day of month, 1 - 31 */ - png_byte hour; /* hour of day, 0 - 23 */ - png_byte minute; /* minute of hour, 0 - 59 */ - png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ -} png_time; -typedef png_time FAR * png_timep; -typedef png_time FAR * FAR * png_timepp; - -#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \ - defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) -/* png_unknown_chunk is a structure to hold queued chunks for which there is - * no specific support. The idea is that we can use this to queue - * up private chunks for output even though the library doesn't actually - * know about their semantics. - */ -#define PNG_CHUNK_NAME_LENGTH 5 -typedef struct png_unknown_chunk_t -{ - png_byte name[PNG_CHUNK_NAME_LENGTH]; - png_byte *data; - png_size_t size; - - /* libpng-using applications should NOT directly modify this byte. */ - png_byte location; /* mode of operation at read time */ -} -png_unknown_chunk; -typedef png_unknown_chunk FAR * png_unknown_chunkp; -typedef png_unknown_chunk FAR * FAR * png_unknown_chunkpp; -#endif - -/* png_info is a structure that holds the information in a PNG file so - * that the application can find out the characteristics of the image. - * If you are reading the file, this structure will tell you what is - * in the PNG file. If you are writing the file, fill in the information - * you want to put into the PNG file, then call png_write_info(). - * The names chosen should be very close to the PNG specification, so - * consult that document for information about the meaning of each field. - * - * With libpng < 0.95, it was only possible to directly set and read the - * the values in the png_info_struct, which meant that the contents and - * order of the values had to remain fixed. With libpng 0.95 and later, - * however, there are now functions that abstract the contents of - * png_info_struct from the application, so this makes it easier to use - * libpng with dynamic libraries, and even makes it possible to use - * libraries that don't have all of the libpng ancillary chunk-handing - * functionality. - * - * In any case, the order of the parameters in png_info_struct should NOT - * be changed for as long as possible to keep compatibility with applications - * that use the old direct-access method with png_info_struct. - * - * The following members may have allocated storage attached that should be - * cleaned up before the structure is discarded: palette, trans, text, - * pcal_purpose, pcal_units, pcal_params, hist, iccp_name, iccp_profile, - * splt_palettes, scal_unit, row_pointers, and unknowns. By default, these - * are automatically freed when the info structure is deallocated, if they were - * allocated internally by libpng. This behavior can be changed by means - * of the png_data_freer() function. - * - * More allocation details: all the chunk-reading functions that - * change these members go through the corresponding png_set_* - * functions. A function to clear these members is available: see - * png_free_data(). The png_set_* functions do not depend on being - * able to point info structure members to any of the storage they are - * passed (they make their own copies), EXCEPT that the png_set_text - * functions use the same storage passed to them in the text_ptr or - * itxt_ptr structure argument, and the png_set_rows and png_set_unknowns - * functions do not make their own copies. - */ -typedef struct png_info_struct -{ - /* The following are necessary for every PNG file */ - png_uint_32 width PNG_DEPSTRUCT; /* width of image in pixels (from IHDR) */ - png_uint_32 height PNG_DEPSTRUCT; /* height of image in pixels (from IHDR) */ - png_uint_32 valid PNG_DEPSTRUCT; /* valid chunk data (see PNG_INFO_ below) */ - png_uint_32 rowbytes PNG_DEPSTRUCT; /* bytes needed to hold an untransformed row */ - png_colorp palette PNG_DEPSTRUCT; /* array of color values (valid & PNG_INFO_PLTE) */ - png_uint_16 num_palette PNG_DEPSTRUCT; /* number of color entries in "palette" (PLTE) */ - png_uint_16 num_trans PNG_DEPSTRUCT; /* number of transparent palette color (tRNS) */ - png_byte bit_depth PNG_DEPSTRUCT; /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */ - png_byte color_type PNG_DEPSTRUCT; /* see PNG_COLOR_TYPE_ below (from IHDR) */ - /* The following three should have been named *_method not *_type */ - png_byte compression_type PNG_DEPSTRUCT; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */ - png_byte filter_type PNG_DEPSTRUCT; /* must be PNG_FILTER_TYPE_BASE (from IHDR) */ - png_byte interlace_type PNG_DEPSTRUCT; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ - - /* The following is informational only on read, and not used on writes. */ - png_byte channels PNG_DEPSTRUCT; /* number of data channels per pixel (1, 2, 3, 4) */ - png_byte pixel_depth PNG_DEPSTRUCT; /* number of bits per pixel */ - png_byte spare_byte PNG_DEPSTRUCT; /* to align the data, and for future use */ - png_byte signature[8] PNG_DEPSTRUCT; /* magic bytes read by libpng from start of file */ - - /* The rest of the data is optional. If you are reading, check the - * valid field to see if the information in these are valid. If you - * are writing, set the valid field to those chunks you want written, - * and initialize the appropriate fields below. - */ - -#if defined(PNG_gAMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED) - /* The gAMA chunk describes the gamma characteristics of the system - * on which the image was created, normally in the range [1.0, 2.5]. - * Data is valid if (valid & PNG_INFO_gAMA) is non-zero. - */ - float gamma PNG_DEPSTRUCT; /* gamma value of image, if (valid & PNG_INFO_gAMA) */ -#endif - -#ifdef PNG_sRGB_SUPPORTED - /* GR-P, 0.96a */ - /* Data valid if (valid & PNG_INFO_sRGB) non-zero. */ - png_byte srgb_intent PNG_DEPSTRUCT; /* sRGB rendering intent [0, 1, 2, or 3] */ -#endif - -#ifdef PNG_TEXT_SUPPORTED - /* The tEXt, and zTXt chunks contain human-readable textual data in - * uncompressed, compressed, and optionally compressed forms, respectively. - * The data in "text" is an array of pointers to uncompressed, - * null-terminated C strings. Each chunk has a keyword that describes the - * textual data contained in that chunk. Keywords are not required to be - * unique, and the text string may be empty. Any number of text chunks may - * be in an image. - */ - int num_text PNG_DEPSTRUCT; /* number of comments read/to write */ - int max_text PNG_DEPSTRUCT; /* current size of text array */ - png_textp text PNG_DEPSTRUCT; /* array of comments read/to write */ -#endif /* PNG_TEXT_SUPPORTED */ - -#ifdef PNG_tIME_SUPPORTED - /* The tIME chunk holds the last time the displayed image data was - * modified. See the png_time struct for the contents of this struct. - */ - png_time mod_time PNG_DEPSTRUCT; -#endif - -#ifdef PNG_sBIT_SUPPORTED - /* The sBIT chunk specifies the number of significant high-order bits - * in the pixel data. Values are in the range [1, bit_depth], and are - * only specified for the channels in the pixel data. The contents of - * the low-order bits is not specified. Data is valid if - * (valid & PNG_INFO_sBIT) is non-zero. - */ - png_color_8 sig_bit PNG_DEPSTRUCT; /* significant bits in color channels */ -#endif - -#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \ -defined(PNG_READ_BACKGROUND_SUPPORTED) - /* The tRNS chunk supplies transparency data for paletted images and - * other image types that don't need a full alpha channel. There are - * "num_trans" transparency values for a paletted image, stored in the - * same order as the palette colors, starting from index 0. Values - * for the data are in the range [0, 255], ranging from fully transparent - * to fully opaque, respectively. For non-paletted images, there is a - * single color specified that should be treated as fully transparent. - * Data is valid if (valid & PNG_INFO_tRNS) is non-zero. - */ - png_bytep trans PNG_DEPSTRUCT; /* transparent values for paletted image */ - png_color_16 trans_values PNG_DEPSTRUCT; /* transparent color for non-palette image */ -#endif - -#if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - /* The bKGD chunk gives the suggested image background color if the - * display program does not have its own background color and the image - * is needs to composited onto a background before display. The colors - * in "background" are normally in the same color space/depth as the - * pixel data. Data is valid if (valid & PNG_INFO_bKGD) is non-zero. - */ - png_color_16 background PNG_DEPSTRUCT; -#endif - -#ifdef PNG_oFFs_SUPPORTED - /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards - * and downwards from the top-left corner of the display, page, or other - * application-specific co-ordinate space. See the PNG_OFFSET_ defines - * below for the unit types. Valid if (valid & PNG_INFO_oFFs) non-zero. - */ - png_int_32 x_offset PNG_DEPSTRUCT; /* x offset on page */ - png_int_32 y_offset PNG_DEPSTRUCT; /* y offset on page */ - png_byte offset_unit_type PNG_DEPSTRUCT; /* offset units type */ -#endif - -#ifdef PNG_pHYs_SUPPORTED - /* The pHYs chunk gives the physical pixel density of the image for - * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_ - * defines below). Data is valid if (valid & PNG_INFO_pHYs) is non-zero. - */ - png_uint_32 x_pixels_per_unit PNG_DEPSTRUCT; /* horizontal pixel density */ - png_uint_32 y_pixels_per_unit PNG_DEPSTRUCT; /* vertical pixel density */ - png_byte phys_unit_type PNG_DEPSTRUCT; /* resolution type (see PNG_RESOLUTION_ below) */ -#endif - -#ifdef PNG_hIST_SUPPORTED - /* The hIST chunk contains the relative frequency or importance of the - * various palette entries, so that a viewer can intelligently select a - * reduced-color palette, if required. Data is an array of "num_palette" - * values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST) - * is non-zero. - */ - png_uint_16p hist PNG_DEPSTRUCT; -#endif - -#ifdef PNG_cHRM_SUPPORTED - /* The cHRM chunk describes the CIE color characteristics of the monitor - * on which the PNG was created. This data allows the viewer to do gamut - * mapping of the input image to ensure that the viewer sees the same - * colors in the image as the creator. Values are in the range - * [0.0, 0.8]. Data valid if (valid & PNG_INFO_cHRM) non-zero. - */ -#ifdef PNG_FLOATING_POINT_SUPPORTED - float x_white PNG_DEPSTRUCT; - float y_white PNG_DEPSTRUCT; - float x_red PNG_DEPSTRUCT; - float y_red PNG_DEPSTRUCT; - float x_green PNG_DEPSTRUCT; - float y_green PNG_DEPSTRUCT; - float x_blue PNG_DEPSTRUCT; - float y_blue PNG_DEPSTRUCT; -#endif -#endif - -#ifdef PNG_pCAL_SUPPORTED - /* The pCAL chunk describes a transformation between the stored pixel - * values and original physical data values used to create the image. - * The integer range [0, 2^bit_depth - 1] maps to the floating-point - * range given by [pcal_X0, pcal_X1], and are further transformed by a - * (possibly non-linear) transformation function given by "pcal_type" - * and "pcal_params" into "pcal_units". Please see the PNG_EQUATION_ - * defines below, and the PNG-Group's PNG extensions document for a - * complete description of the transformations and how they should be - * implemented, and for a description of the ASCII parameter strings. - * Data values are valid if (valid & PNG_INFO_pCAL) non-zero. - */ - png_charp pcal_purpose PNG_DEPSTRUCT; /* pCAL chunk description string */ - png_int_32 pcal_X0 PNG_DEPSTRUCT; /* minimum value */ - png_int_32 pcal_X1 PNG_DEPSTRUCT; /* maximum value */ - png_charp pcal_units PNG_DEPSTRUCT; /* Latin-1 string giving physical units */ - png_charpp pcal_params PNG_DEPSTRUCT; /* ASCII strings containing parameter values */ - png_byte pcal_type PNG_DEPSTRUCT; /* equation type (see PNG_EQUATION_ below) */ - png_byte pcal_nparams PNG_DEPSTRUCT; /* number of parameters given in pcal_params */ -#endif - -/* New members added in libpng-1.0.6 */ -#ifdef PNG_FREE_ME_SUPPORTED - png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is responsible for freeing */ -#endif - -#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \ - defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) - /* Storage for unknown chunks that the library doesn't recognize. */ - png_unknown_chunkp unknown_chunks PNG_DEPSTRUCT; - png_size_t unknown_chunks_num PNG_DEPSTRUCT; -#endif - -#ifdef PNG_iCCP_SUPPORTED - /* iCCP chunk data. */ - png_charp iccp_name PNG_DEPSTRUCT; /* profile name */ - png_charp iccp_profile PNG_DEPSTRUCT; /* International Color Consortium profile data */ - /* Note to maintainer: should be png_bytep */ - png_uint_32 iccp_proflen PNG_DEPSTRUCT; /* ICC profile data length */ - png_byte iccp_compression PNG_DEPSTRUCT; /* Always zero */ -#endif - -#ifdef PNG_sPLT_SUPPORTED - /* Data on sPLT chunks (there may be more than one). */ - png_sPLT_tp splt_palettes PNG_DEPSTRUCT; - png_uint_32 splt_palettes_num PNG_DEPSTRUCT; -#endif - -#ifdef PNG_sCAL_SUPPORTED - /* The sCAL chunk describes the actual physical dimensions of the - * subject matter of the graphic. The chunk contains a unit specification - * a byte value, and two ASCII strings representing floating-point - * values. The values are width and height corresponsing to one pixel - * in the image. This external representation is converted to double - * here. Data values are valid if (valid & PNG_INFO_sCAL) is non-zero. - */ - png_byte scal_unit PNG_DEPSTRUCT; /* unit of physical scale */ -#ifdef PNG_FLOATING_POINT_SUPPORTED - double scal_pixel_width PNG_DEPSTRUCT; /* width of one pixel */ - double scal_pixel_height PNG_DEPSTRUCT; /* height of one pixel */ -#endif -#ifdef PNG_FIXED_POINT_SUPPORTED - png_charp scal_s_width PNG_DEPSTRUCT; /* string containing height */ - png_charp scal_s_height PNG_DEPSTRUCT; /* string containing width */ -#endif -#endif - -#ifdef PNG_INFO_IMAGE_SUPPORTED - /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS) non-zero */ - /* Data valid if (valid & PNG_INFO_IDAT) non-zero */ - png_bytepp row_pointers PNG_DEPSTRUCT; /* the image bits */ -#endif - -#if defined(PNG_FIXED_POINT_SUPPORTED) && defined(PNG_gAMA_SUPPORTED) - png_fixed_point int_gamma PNG_DEPSTRUCT; /* gamma of image, if (valid & PNG_INFO_gAMA) */ -#endif - -#if defined(PNG_cHRM_SUPPORTED) && defined(PNG_FIXED_POINT_SUPPORTED) - png_fixed_point int_x_white PNG_DEPSTRUCT; - png_fixed_point int_y_white PNG_DEPSTRUCT; - png_fixed_point int_x_red PNG_DEPSTRUCT; - png_fixed_point int_y_red PNG_DEPSTRUCT; - png_fixed_point int_x_green PNG_DEPSTRUCT; - png_fixed_point int_y_green PNG_DEPSTRUCT; - png_fixed_point int_x_blue PNG_DEPSTRUCT; - png_fixed_point int_y_blue PNG_DEPSTRUCT; -#endif - -} png_info; - -typedef png_info FAR * png_infop; -typedef png_info FAR * FAR * png_infopp; - -/* Maximum positive integer used in PNG is (2^31)-1 */ -#define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) -#define PNG_UINT_32_MAX ((png_uint_32)(-1)) -#define PNG_SIZE_MAX ((png_size_t)(-1)) -#if defined(PNG_1_0_X) || defined (PNG_1_2_X) -/* PNG_MAX_UINT is deprecated; use PNG_UINT_31_MAX instead. */ -#define PNG_MAX_UINT PNG_UINT_31_MAX -#endif - -/* These describe the color_type field in png_info. */ -/* color type masks */ -#define PNG_COLOR_MASK_PALETTE 1 -#define PNG_COLOR_MASK_COLOR 2 -#define PNG_COLOR_MASK_ALPHA 4 - -/* color types. Note that not all combinations are legal */ -#define PNG_COLOR_TYPE_GRAY 0 -#define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE) -#define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR) -#define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA) -#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA) -/* aliases */ -#define PNG_COLOR_TYPE_RGBA PNG_COLOR_TYPE_RGB_ALPHA -#define PNG_COLOR_TYPE_GA PNG_COLOR_TYPE_GRAY_ALPHA - -/* This is for compression type. PNG 1.0-1.2 only define the single type. */ -#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */ -#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE - -/* This is for filter type. PNG 1.0-1.2 only define the single type. */ -#define PNG_FILTER_TYPE_BASE 0 /* Single row per-byte filtering */ -#define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */ -#define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE - -/* These are for the interlacing type. These values should NOT be changed. */ -#define PNG_INTERLACE_NONE 0 /* Non-interlaced image */ -#define PNG_INTERLACE_ADAM7 1 /* Adam7 interlacing */ -#define PNG_INTERLACE_LAST 2 /* Not a valid value */ - -/* These are for the oFFs chunk. These values should NOT be changed. */ -#define PNG_OFFSET_PIXEL 0 /* Offset in pixels */ -#define PNG_OFFSET_MICROMETER 1 /* Offset in micrometers (1/10^6 meter) */ -#define PNG_OFFSET_LAST 2 /* Not a valid value */ - -/* These are for the pCAL chunk. These values should NOT be changed. */ -#define PNG_EQUATION_LINEAR 0 /* Linear transformation */ -#define PNG_EQUATION_BASE_E 1 /* Exponential base e transform */ -#define PNG_EQUATION_ARBITRARY 2 /* Arbitrary base exponential transform */ -#define PNG_EQUATION_HYPERBOLIC 3 /* Hyperbolic sine transformation */ -#define PNG_EQUATION_LAST 4 /* Not a valid value */ - -/* These are for the sCAL chunk. These values should NOT be changed. */ -#define PNG_SCALE_UNKNOWN 0 /* unknown unit (image scale) */ -#define PNG_SCALE_METER 1 /* meters per pixel */ -#define PNG_SCALE_RADIAN 2 /* radians per pixel */ -#define PNG_SCALE_LAST 3 /* Not a valid value */ - -/* These are for the pHYs chunk. These values should NOT be changed. */ -#define PNG_RESOLUTION_UNKNOWN 0 /* pixels/unknown unit (aspect ratio) */ -#define PNG_RESOLUTION_METER 1 /* pixels/meter */ -#define PNG_RESOLUTION_LAST 2 /* Not a valid value */ - -/* These are for the sRGB chunk. These values should NOT be changed. */ -#define PNG_sRGB_INTENT_PERCEPTUAL 0 -#define PNG_sRGB_INTENT_RELATIVE 1 -#define PNG_sRGB_INTENT_SATURATION 2 -#define PNG_sRGB_INTENT_ABSOLUTE 3 -#define PNG_sRGB_INTENT_LAST 4 /* Not a valid value */ - -/* This is for text chunks */ -#define PNG_KEYWORD_MAX_LENGTH 79 - -/* Maximum number of entries in PLTE/sPLT/tRNS arrays */ -#define PNG_MAX_PALETTE_LENGTH 256 - -/* These determine if an ancillary chunk's data has been successfully read - * from the PNG header, or if the application has filled in the corresponding - * data in the info_struct to be written into the output file. The values - * of the PNG_INFO_<chunk> defines should NOT be changed. - */ -#define PNG_INFO_gAMA 0x0001 -#define PNG_INFO_sBIT 0x0002 -#define PNG_INFO_cHRM 0x0004 -#define PNG_INFO_PLTE 0x0008 -#define PNG_INFO_tRNS 0x0010 -#define PNG_INFO_bKGD 0x0020 -#define PNG_INFO_hIST 0x0040 -#define PNG_INFO_pHYs 0x0080 -#define PNG_INFO_oFFs 0x0100 -#define PNG_INFO_tIME 0x0200 -#define PNG_INFO_pCAL 0x0400 -#define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */ -#define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ -#define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ -#define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ -#define PNG_INFO_IDAT 0x8000L /* ESR, 1.0.6 */ - -/* This is used for the transformation routines, as some of them - * change these values for the row. It also should enable using - * the routines for other purposes. - */ -typedef struct png_row_info_struct -{ - png_uint_32 width; /* width of row */ - png_uint_32 rowbytes; /* number of bytes in row */ - png_byte color_type; /* color type of row */ - png_byte bit_depth; /* bit depth of row */ - png_byte channels; /* number of channels (1, 2, 3, or 4) */ - png_byte pixel_depth; /* bits per pixel (depth * channels) */ -} png_row_info; - -typedef png_row_info FAR * png_row_infop; -typedef png_row_info FAR * FAR * png_row_infopp; - -/* These are the function types for the I/O functions and for the functions - * that allow the user to override the default I/O functions with his or her - * own. The png_error_ptr type should match that of user-supplied warning - * and error functions, while the png_rw_ptr type should match that of the - * user read/write data functions. - */ -typedef struct png_struct_def png_struct; -typedef png_struct FAR * png_structp; - -typedef void (PNGAPI *png_error_ptr) PNGARG((png_structp, png_const_charp)); -typedef void (PNGAPI *png_rw_ptr) PNGARG((png_structp, png_bytep, png_size_t)); -typedef void (PNGAPI *png_flush_ptr) PNGARG((png_structp)); -typedef void (PNGAPI *png_read_status_ptr) PNGARG((png_structp, png_uint_32, - int)); -typedef void (PNGAPI *png_write_status_ptr) PNGARG((png_structp, png_uint_32, - int)); - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -typedef void (PNGAPI *png_progressive_info_ptr) PNGARG((png_structp, png_infop)); -typedef void (PNGAPI *png_progressive_end_ptr) PNGARG((png_structp, png_infop)); -typedef void (PNGAPI *png_progressive_row_ptr) PNGARG((png_structp, png_bytep, - png_uint_32, int)); -#endif - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_LEGACY_SUPPORTED) -typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp, - png_row_infop, png_bytep)); -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -typedef int (PNGAPI *png_user_chunk_ptr) PNGARG((png_structp, png_unknown_chunkp)); -#endif -#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED -typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp)); -#endif - -/* Transform masks for the high-level interface */ -#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ -#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ -#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ -#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ -#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ -#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ -#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ -#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ -#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ -#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ -#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ -#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ -#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only, deprecated */ -/* Added to libpng-1.2.34 */ -#define PNG_TRANSFORM_STRIP_FILLER_BEFORE 0x0800 /* write only */ -#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ -/* Added to libpng-1.2.41 */ -#define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ - -/* Flags for MNG supported features */ -#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 -#define PNG_FLAG_MNG_FILTER_64 0x04 -#define PNG_ALL_MNG_FEATURES 0x05 - -typedef png_voidp (*png_malloc_ptr) PNGARG((png_structp, png_size_t)); -typedef void (*png_free_ptr) PNGARG((png_structp, png_voidp)); - -/* The structure that holds the information to read and write PNG files. - * The only people who need to care about what is inside of this are the - * people who will be modifying the library for their own special needs. - * It should NOT be accessed directly by an application, except to store - * the jmp_buf. - */ - -struct png_struct_def -{ -#ifdef PNG_SETJMP_SUPPORTED - jmp_buf jmpbuf; /* used in png_error */ -#endif - png_error_ptr error_fn PNG_DEPSTRUCT; /* function for printing errors and aborting */ - png_error_ptr warning_fn PNG_DEPSTRUCT; /* function for printing warnings */ - png_voidp error_ptr PNG_DEPSTRUCT; /* user supplied struct for error functions */ - png_rw_ptr write_data_fn PNG_DEPSTRUCT; /* function for writing output data */ - png_rw_ptr read_data_fn PNG_DEPSTRUCT; /* function for reading input data */ - png_voidp io_ptr PNG_DEPSTRUCT; /* ptr to application struct for I/O functions */ - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED - png_user_transform_ptr read_user_transform_fn PNG_DEPSTRUCT; /* user read transform */ -#endif - -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED - png_user_transform_ptr write_user_transform_fn PNG_DEPSTRUCT; /* user write transform */ -#endif - -/* These were added in libpng-1.0.2 */ -#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) - png_voidp user_transform_ptr PNG_DEPSTRUCT; /* user supplied struct for user transform */ - png_byte user_transform_depth PNG_DEPSTRUCT; /* bit depth of user transformed pixels */ - png_byte user_transform_channels PNG_DEPSTRUCT; /* channels in user transformed pixels */ -#endif -#endif - - png_uint_32 mode PNG_DEPSTRUCT; /* tells us where we are in the PNG file */ - png_uint_32 flags PNG_DEPSTRUCT; /* flags indicating various things to libpng */ - png_uint_32 transformations PNG_DEPSTRUCT; /* which transformations to perform */ - - z_stream zstream PNG_DEPSTRUCT; /* pointer to decompression structure (below) */ - png_bytep zbuf PNG_DEPSTRUCT; /* buffer for zlib */ - png_size_t zbuf_size PNG_DEPSTRUCT; /* size of zbuf */ - int zlib_level PNG_DEPSTRUCT; /* holds zlib compression level */ - int zlib_method PNG_DEPSTRUCT; /* holds zlib compression method */ - int zlib_window_bits PNG_DEPSTRUCT; /* holds zlib compression window bits */ - int zlib_mem_level PNG_DEPSTRUCT; /* holds zlib compression memory level */ - int zlib_strategy PNG_DEPSTRUCT; /* holds zlib compression strategy */ - - png_uint_32 width PNG_DEPSTRUCT; /* width of image in pixels */ - png_uint_32 height PNG_DEPSTRUCT; /* height of image in pixels */ - png_uint_32 num_rows PNG_DEPSTRUCT; /* number of rows in current pass */ - png_uint_32 usr_width PNG_DEPSTRUCT; /* width of row at start of write */ - png_uint_32 rowbytes PNG_DEPSTRUCT; /* size of row in bytes */ -#if 0 /* Replaced with the following in libpng-1.2.43 */ - png_size_t irowbytes PNG_DEPSTRUCT; -#endif -/* Added in libpng-1.2.43 */ -#ifdef PNG_USER_LIMITS_SUPPORTED - /* Added in libpng-1.4.0: Total number of sPLT, text, and unknown - * chunks that can be stored (0 means unlimited). - */ - png_uint_32 user_chunk_cache_max PNG_DEPSTRUCT; -#endif - png_uint_32 iwidth PNG_DEPSTRUCT; /* width of current interlaced row in pixels */ - png_uint_32 row_number PNG_DEPSTRUCT; /* current row in interlace pass */ - png_bytep prev_row PNG_DEPSTRUCT; /* buffer to save previous (unfiltered) row */ - png_bytep row_buf PNG_DEPSTRUCT; /* buffer to save current (unfiltered) row */ -#ifndef PNG_NO_WRITE_FILTER - png_bytep sub_row PNG_DEPSTRUCT; /* buffer to save "sub" row when filtering */ - png_bytep up_row PNG_DEPSTRUCT; /* buffer to save "up" row when filtering */ - png_bytep avg_row PNG_DEPSTRUCT; /* buffer to save "avg" row when filtering */ - png_bytep paeth_row PNG_DEPSTRUCT; /* buffer to save "Paeth" row when filtering */ -#endif - png_row_info row_info PNG_DEPSTRUCT; /* used for transformation routines */ - - png_uint_32 idat_size PNG_DEPSTRUCT; /* current IDAT size for read */ - png_uint_32 crc PNG_DEPSTRUCT; /* current chunk CRC value */ - png_colorp palette PNG_DEPSTRUCT; /* palette from the input file */ - png_uint_16 num_palette PNG_DEPSTRUCT; /* number of color entries in palette */ - png_uint_16 num_trans PNG_DEPSTRUCT; /* number of transparency values */ - png_byte chunk_name[5] PNG_DEPSTRUCT; /* null-terminated name of current chunk */ - png_byte compression PNG_DEPSTRUCT; /* file compression type (always 0) */ - png_byte filter PNG_DEPSTRUCT; /* file filter type (always 0) */ - png_byte interlaced PNG_DEPSTRUCT; /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ - png_byte pass PNG_DEPSTRUCT; /* current interlace pass (0 - 6) */ - png_byte do_filter PNG_DEPSTRUCT; /* row filter flags (see PNG_FILTER_ below ) */ - png_byte color_type PNG_DEPSTRUCT; /* color type of file */ - png_byte bit_depth PNG_DEPSTRUCT; /* bit depth of file */ - png_byte usr_bit_depth PNG_DEPSTRUCT; /* bit depth of users row */ - png_byte pixel_depth PNG_DEPSTRUCT; /* number of bits per pixel */ - png_byte channels PNG_DEPSTRUCT; /* number of channels in file */ - png_byte usr_channels PNG_DEPSTRUCT; /* channels at start of write */ - png_byte sig_bytes PNG_DEPSTRUCT; /* magic bytes read/written from start of file */ - -#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) -#ifdef PNG_LEGACY_SUPPORTED - png_byte filler PNG_DEPSTRUCT; /* filler byte for pixel expansion */ -#else - png_uint_16 filler PNG_DEPSTRUCT; /* filler bytes for pixel expansion */ -#endif -#endif - -#ifdef PNG_bKGD_SUPPORTED - png_byte background_gamma_type PNG_DEPSTRUCT; -# ifdef PNG_FLOATING_POINT_SUPPORTED - float background_gamma PNG_DEPSTRUCT; -# endif - png_color_16 background PNG_DEPSTRUCT; /* background color in screen gamma space */ -#ifdef PNG_READ_GAMMA_SUPPORTED - png_color_16 background_1 PNG_DEPSTRUCT; /* background normalized to gamma 1.0 */ -#endif -#endif /* PNG_bKGD_SUPPORTED */ - -#ifdef PNG_WRITE_FLUSH_SUPPORTED - png_flush_ptr output_flush_fn PNG_DEPSTRUCT; /* Function for flushing output */ - png_uint_32 flush_dist PNG_DEPSTRUCT; /* how many rows apart to flush, 0 - no flush */ - png_uint_32 flush_rows PNG_DEPSTRUCT; /* number of rows written since last flush */ -#endif - -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - int gamma_shift PNG_DEPSTRUCT; /* number of "insignificant" bits 16-bit gamma */ -#ifdef PNG_FLOATING_POINT_SUPPORTED - float gamma PNG_DEPSTRUCT; /* file gamma value */ - float screen_gamma PNG_DEPSTRUCT; /* screen gamma value (display_exponent) */ -#endif -#endif - -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - png_bytep gamma_table PNG_DEPSTRUCT; /* gamma table for 8-bit depth files */ - png_bytep gamma_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to screen */ - png_bytep gamma_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */ - png_uint_16pp gamma_16_table PNG_DEPSTRUCT; /* gamma table for 16-bit depth files */ - png_uint_16pp gamma_16_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to screen */ - png_uint_16pp gamma_16_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */ -#endif - -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED) - png_color_8 sig_bit PNG_DEPSTRUCT; /* significant bits in each available channel */ -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) - png_color_8 shift PNG_DEPSTRUCT; /* shift for significant bit tranformation */ -#endif - -#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \ - || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - png_bytep trans PNG_DEPSTRUCT; /* transparency values for paletted files */ - png_color_16 trans_values PNG_DEPSTRUCT; /* transparency values for non-paletted files */ -#endif - - png_read_status_ptr read_row_fn PNG_DEPSTRUCT; /* called after each row is decoded */ - png_write_status_ptr write_row_fn PNG_DEPSTRUCT; /* called after each row is encoded */ -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED - png_progressive_info_ptr info_fn PNG_DEPSTRUCT; /* called after header data fully read */ - png_progressive_row_ptr row_fn PNG_DEPSTRUCT; /* called after each prog. row is decoded */ - png_progressive_end_ptr end_fn PNG_DEPSTRUCT; /* called after image is complete */ - png_bytep save_buffer_ptr PNG_DEPSTRUCT; /* current location in save_buffer */ - png_bytep save_buffer PNG_DEPSTRUCT; /* buffer for previously read data */ - png_bytep current_buffer_ptr PNG_DEPSTRUCT; /* current location in current_buffer */ - png_bytep current_buffer PNG_DEPSTRUCT; /* buffer for recently used data */ - png_uint_32 push_length PNG_DEPSTRUCT; /* size of current input chunk */ - png_uint_32 skip_length PNG_DEPSTRUCT; /* bytes to skip in input data */ - png_size_t save_buffer_size PNG_DEPSTRUCT; /* amount of data now in save_buffer */ - png_size_t save_buffer_max PNG_DEPSTRUCT; /* total size of save_buffer */ - png_size_t buffer_size PNG_DEPSTRUCT; /* total amount of available input data */ - png_size_t current_buffer_size PNG_DEPSTRUCT; /* amount of data now in current_buffer */ - int process_mode PNG_DEPSTRUCT; /* what push library is currently doing */ - int cur_palette PNG_DEPSTRUCT; /* current push library palette index */ - -# ifdef PNG_TEXT_SUPPORTED - png_size_t current_text_size PNG_DEPSTRUCT; /* current size of text input data */ - png_size_t current_text_left PNG_DEPSTRUCT; /* how much text left to read in input */ - png_charp current_text PNG_DEPSTRUCT; /* current text chunk buffer */ - png_charp current_text_ptr PNG_DEPSTRUCT; /* current location in current_text */ -# endif /* PNG_TEXT_SUPPORTED */ -#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ - -#if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__) -/* for the Borland special 64K segment handler */ - png_bytepp offset_table_ptr PNG_DEPSTRUCT; - png_bytep offset_table PNG_DEPSTRUCT; - png_uint_16 offset_table_number PNG_DEPSTRUCT; - png_uint_16 offset_table_count PNG_DEPSTRUCT; - png_uint_16 offset_table_count_free PNG_DEPSTRUCT; -#endif - -#ifdef PNG_READ_DITHER_SUPPORTED - png_bytep palette_lookup PNG_DEPSTRUCT; /* lookup table for dithering */ - png_bytep dither_index PNG_DEPSTRUCT; /* index translation for palette files */ -#endif - -#if defined(PNG_READ_DITHER_SUPPORTED) || defined(PNG_hIST_SUPPORTED) - png_uint_16p hist PNG_DEPSTRUCT; /* histogram */ -#endif - -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - png_byte heuristic_method PNG_DEPSTRUCT; /* heuristic for row filter selection */ - png_byte num_prev_filters PNG_DEPSTRUCT; /* number of weights for previous rows */ - png_bytep prev_filters PNG_DEPSTRUCT; /* filter type(s) of previous row(s) */ - png_uint_16p filter_weights PNG_DEPSTRUCT; /* weight(s) for previous line(s) */ - png_uint_16p inv_filter_weights PNG_DEPSTRUCT; /* 1/weight(s) for previous line(s) */ - png_uint_16p filter_costs PNG_DEPSTRUCT; /* relative filter calculation cost */ - png_uint_16p inv_filter_costs PNG_DEPSTRUCT; /* 1/relative filter calculation cost */ -#endif - -#ifdef PNG_TIME_RFC1123_SUPPORTED - png_charp time_buffer PNG_DEPSTRUCT; /* String to hold RFC 1123 time text */ -#endif - -/* New members added in libpng-1.0.6 */ - -#ifdef PNG_FREE_ME_SUPPORTED - png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is responsible for freeing */ -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED - png_voidp user_chunk_ptr PNG_DEPSTRUCT; - png_user_chunk_ptr read_user_chunk_fn PNG_DEPSTRUCT; /* user read chunk handler */ -#endif - -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED - int num_chunk_list PNG_DEPSTRUCT; - png_bytep chunk_list PNG_DEPSTRUCT; -#endif - -/* New members added in libpng-1.0.3 */ -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED - png_byte rgb_to_gray_status PNG_DEPSTRUCT; - /* These were changed from png_byte in libpng-1.0.6 */ - png_uint_16 rgb_to_gray_red_coeff PNG_DEPSTRUCT; - png_uint_16 rgb_to_gray_green_coeff PNG_DEPSTRUCT; - png_uint_16 rgb_to_gray_blue_coeff PNG_DEPSTRUCT; -#endif - -/* New member added in libpng-1.0.4 (renamed in 1.0.9) */ -#if defined(PNG_MNG_FEATURES_SUPPORTED) || \ - defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \ - defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED) -/* Changed from png_byte to png_uint_32 at version 1.2.0 */ -#ifdef PNG_1_0_X - png_byte mng_features_permitted PNG_DEPSTRUCT; -#else - png_uint_32 mng_features_permitted PNG_DEPSTRUCT; -#endif /* PNG_1_0_X */ -#endif - -/* New member added in libpng-1.0.7 */ -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - png_fixed_point int_gamma PNG_DEPSTRUCT; -#endif - -/* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */ -#ifdef PNG_MNG_FEATURES_SUPPORTED - png_byte filter_type PNG_DEPSTRUCT; -#endif - -#ifdef PNG_1_0_X -/* New member added in libpng-1.0.10, ifdef'ed out in 1.2.0 */ - png_uint_32 row_buf_size PNG_DEPSTRUCT; -#endif - -/* New members added in libpng-1.2.0 */ -#ifdef PNG_ASSEMBLER_CODE_SUPPORTED -# ifndef PNG_1_0_X -# ifdef PNG_MMX_CODE_SUPPORTED - png_byte mmx_bitdepth_threshold PNG_DEPSTRUCT; - png_uint_32 mmx_rowbytes_threshold PNG_DEPSTRUCT; -# endif - png_uint_32 asm_flags PNG_DEPSTRUCT; -# endif -#endif - -/* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */ -#ifdef PNG_USER_MEM_SUPPORTED - png_voidp mem_ptr PNG_DEPSTRUCT; /* user supplied struct for mem functions */ - png_malloc_ptr malloc_fn PNG_DEPSTRUCT; /* function for allocating memory */ - png_free_ptr free_fn PNG_DEPSTRUCT; /* function for freeing memory */ -#endif - -/* New member added in libpng-1.0.13 and 1.2.0 */ - png_bytep big_row_buf PNG_DEPSTRUCT; /* buffer to save current (unfiltered) row */ - -#ifdef PNG_READ_DITHER_SUPPORTED -/* The following three members were added at version 1.0.14 and 1.2.4 */ - png_bytep dither_sort PNG_DEPSTRUCT; /* working sort array */ - png_bytep index_to_palette PNG_DEPSTRUCT; /* where the original index currently is */ - /* in the palette */ - png_bytep palette_to_index PNG_DEPSTRUCT; /* which original index points to this */ - /* palette color */ -#endif - -/* New members added in libpng-1.0.16 and 1.2.6 */ - png_byte compression_type PNG_DEPSTRUCT; - -#ifdef PNG_USER_LIMITS_SUPPORTED - png_uint_32 user_width_max PNG_DEPSTRUCT; - png_uint_32 user_height_max PNG_DEPSTRUCT; -#endif - -/* New member added in libpng-1.0.25 and 1.2.17 */ -#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED - /* Storage for unknown chunk that the library doesn't recognize. */ - png_unknown_chunk unknown_chunk PNG_DEPSTRUCT; -#endif - -/* New members added in libpng-1.2.26 */ - png_uint_32 old_big_row_buf_size PNG_DEPSTRUCT; - png_uint_32 old_prev_row_size PNG_DEPSTRUCT; - -/* New member added in libpng-1.2.30 */ - png_charp chunkdata PNG_DEPSTRUCT; /* buffer for reading chunk data */ - - -}; - - -/* This triggers a compiler error in png.c, if png.c and png.h - * do not agree upon the version number. - */ -typedef png_structp version_1_2_49; - -typedef png_struct FAR * FAR * png_structpp; - -/* Here are the function definitions most commonly used. This is not - * the place to find out how to use libpng. See libpng.txt for the - * full explanation, see example.c for the summary. This just provides - * a simple one line description of the use of each function. - */ - -/* Returns the version number of the library */ -extern PNG_EXPORT(png_uint_32,png_access_version_number) PNGARG((void)); - -/* Tell lib we have already handled the first <num_bytes> magic bytes. - * Handling more than 8 bytes from the beginning of the file is an error. - */ -extern PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr, - int num_bytes)); - -/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a - * PNG file. Returns zero if the supplied bytes match the 8-byte PNG - * signature, and non-zero otherwise. Having num_to_check == 0 or - * start > 7 will always fail (ie return non-zero). - */ -extern PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start, - png_size_t num_to_check)); - -/* Simple signature checking function. This is the same as calling - * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). - */ -extern PNG_EXPORT(int,png_check_sig) PNGARG((png_bytep sig, int num)) PNG_DEPRECATED; - -/* Allocate and initialize png_ptr struct for reading, and any other memory. */ -extern PNG_EXPORT(png_structp,png_create_read_struct) - PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED; - -/* Allocate and initialize png_ptr struct for writing, and any other memory */ -extern PNG_EXPORT(png_structp,png_create_write_struct) - PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED; - -#ifdef PNG_WRITE_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_compression_buffer_size) - PNGARG((png_structp png_ptr)); -#endif - -#ifdef PNG_WRITE_SUPPORTED -extern PNG_EXPORT(void,png_set_compression_buffer_size) - PNGARG((png_structp png_ptr, png_uint_32 size)); -#endif - -/* Reset the compression stream */ -extern PNG_EXPORT(int,png_reset_zstream) PNGARG((png_structp png_ptr)); - -/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ -#ifdef PNG_USER_MEM_SUPPORTED -extern PNG_EXPORT(png_structp,png_create_read_struct_2) - PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED; -extern PNG_EXPORT(png_structp,png_create_write_struct_2) - PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED; -#endif - -/* Write a PNG chunk - size, type, (optional) data, CRC. */ -extern PNG_EXPORT(void,png_write_chunk) PNGARG((png_structp png_ptr, - png_bytep chunk_name, png_bytep data, png_size_t length)); - -/* Write the start of a PNG chunk - length and chunk name. */ -extern PNG_EXPORT(void,png_write_chunk_start) PNGARG((png_structp png_ptr, - png_bytep chunk_name, png_uint_32 length)); - -/* Write the data of a PNG chunk started with png_write_chunk_start(). */ -extern PNG_EXPORT(void,png_write_chunk_data) PNGARG((png_structp png_ptr, - png_bytep data, png_size_t length)); - -/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ -extern PNG_EXPORT(void,png_write_chunk_end) PNGARG((png_structp png_ptr)); - -/* Allocate and initialize the info structure */ -extern PNG_EXPORT(png_infop,png_create_info_struct) - PNGARG((png_structp png_ptr)) PNG_ALLOCATED; - -#if defined(PNG_1_0_X) || defined (PNG_1_2_X) -/* Initialize the info structure (old interface - DEPRECATED) */ -extern PNG_EXPORT(void,png_info_init) PNGARG((png_infop info_ptr)) - PNG_DEPRECATED; -#undef png_info_init -#define png_info_init(info_ptr) png_info_init_3(&info_ptr,\ - png_sizeof(png_info)); -#endif - -extern PNG_EXPORT(void,png_info_init_3) PNGARG((png_infopp info_ptr, - png_size_t png_info_struct_size)); - -/* Writes all the PNG information before the image. */ -extern PNG_EXPORT(void,png_write_info_before_PLTE) PNGARG((png_structp png_ptr, - png_infop info_ptr)); -extern PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the information before the actual image data. */ -extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr, - png_infop info_ptr)); -#endif - -#ifdef PNG_TIME_RFC1123_SUPPORTED -extern PNG_EXPORT(png_charp,png_convert_to_rfc1123) - PNGARG((png_structp png_ptr, png_timep ptime)); -#endif - -#ifdef PNG_CONVERT_tIME_SUPPORTED -/* Convert from a struct tm to png_time */ -extern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime, - struct tm FAR * ttime)); - -/* Convert from time_t to png_time. Uses gmtime() */ -extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime, - time_t ttime)); -#endif /* PNG_CONVERT_tIME_SUPPORTED */ - -#ifdef PNG_READ_EXPAND_SUPPORTED -/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ -extern PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr)); -#ifndef PNG_1_0_X -extern PNG_EXPORT(void,png_set_expand_gray_1_2_4_to_8) PNGARG((png_structp - png_ptr)); -#endif -extern PNG_EXPORT(void,png_set_palette_to_rgb) PNGARG((png_structp png_ptr)); -extern PNG_EXPORT(void,png_set_tRNS_to_alpha) PNGARG((png_structp png_ptr)); -#if defined(PNG_1_0_X) || defined (PNG_1_2_X) -/* Deprecated */ -extern PNG_EXPORT(void,png_set_gray_1_2_4_to_8) PNGARG((png_structp - png_ptr)) PNG_DEPRECATED; -#endif -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -/* Use blue, green, red order for pixels. */ -extern PNG_EXPORT(void,png_set_bgr) PNGARG((png_structp png_ptr)); -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED -/* Expand the grayscale to 24-bit RGB if necessary. */ -extern PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr)); -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -/* Reduce RGB to grayscale. */ -#ifdef PNG_FLOATING_POINT_SUPPORTED -extern PNG_EXPORT(void,png_set_rgb_to_gray) PNGARG((png_structp png_ptr, - int error_action, double red, double green )); -#endif -extern PNG_EXPORT(void,png_set_rgb_to_gray_fixed) PNGARG((png_structp png_ptr, - int error_action, png_fixed_point red, png_fixed_point green )); -extern PNG_EXPORT(png_byte,png_get_rgb_to_gray_status) PNGARG((png_structp - png_ptr)); -#endif - -extern PNG_EXPORT(void,png_build_grayscale_palette) PNGARG((int bit_depth, - png_colorp palette)); - -#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED -extern PNG_EXPORT(void,png_set_strip_alpha) PNGARG((png_structp png_ptr)); -#endif - -#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) -extern PNG_EXPORT(void,png_set_swap_alpha) PNGARG((png_structp png_ptr)); -#endif - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) -extern PNG_EXPORT(void,png_set_invert_alpha) PNGARG((png_structp png_ptr)); -#endif - -#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) -/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ -extern PNG_EXPORT(void,png_set_filler) PNGARG((png_structp png_ptr, - png_uint_32 filler, int flags)); -/* The values of the PNG_FILLER_ defines should NOT be changed */ -#define PNG_FILLER_BEFORE 0 -#define PNG_FILLER_AFTER 1 -/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ -#ifndef PNG_1_0_X -extern PNG_EXPORT(void,png_set_add_alpha) PNGARG((png_structp png_ptr, - png_uint_32 filler, int flags)); -#endif -#endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */ - -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -/* Swap bytes in 16-bit depth files. */ -extern PNG_EXPORT(void,png_set_swap) PNGARG((png_structp png_ptr)); -#endif - -#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) -/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ -extern PNG_EXPORT(void,png_set_packing) PNGARG((png_structp png_ptr)); -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED) -/* Swap packing order of pixels in bytes. */ -extern PNG_EXPORT(void,png_set_packswap) PNGARG((png_structp png_ptr)); -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) -/* Converts files to legal bit depths. */ -extern PNG_EXPORT(void,png_set_shift) PNGARG((png_structp png_ptr, - png_color_8p true_bits)); -#endif - -#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ - defined(PNG_WRITE_INTERLACING_SUPPORTED) -/* Have the code handle the interlacing. Returns the number of passes. */ -extern PNG_EXPORT(int,png_set_interlace_handling) PNGARG((png_structp png_ptr)); -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -/* Invert monochrome files */ -extern PNG_EXPORT(void,png_set_invert_mono) PNGARG((png_structp png_ptr)); -#endif - -#ifdef PNG_READ_BACKGROUND_SUPPORTED -/* Handle alpha and tRNS by replacing with a background color. */ -#ifdef PNG_FLOATING_POINT_SUPPORTED -extern PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr, - png_color_16p background_color, int background_gamma_code, - int need_expand, double background_gamma)); -#endif -#define PNG_BACKGROUND_GAMMA_UNKNOWN 0 -#define PNG_BACKGROUND_GAMMA_SCREEN 1 -#define PNG_BACKGROUND_GAMMA_FILE 2 -#define PNG_BACKGROUND_GAMMA_UNIQUE 3 -#endif - -#ifdef PNG_READ_16_TO_8_SUPPORTED -/* Strip the second byte of information from a 16-bit depth file. */ -extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr)); -#endif - -#ifdef PNG_READ_DITHER_SUPPORTED -/* Turn on dithering, and reduce the palette to the number of colors available. */ -extern PNG_EXPORT(void,png_set_dither) PNGARG((png_structp png_ptr, - png_colorp palette, int num_palette, int maximum_colors, - png_uint_16p histogram, int full_dither)); -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED -/* Handle gamma correction. Screen_gamma=(display_exponent) */ -#ifdef PNG_FLOATING_POINT_SUPPORTED -extern PNG_EXPORT(void,png_set_gamma) PNGARG((png_structp png_ptr, - double screen_gamma, double default_file_gamma)); -#endif -#endif - -#if defined(PNG_1_0_X) || defined (PNG_1_2_X) -#if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \ - defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED) -/* Permit or disallow empty PLTE (0: not permitted, 1: permitted) */ -/* Deprecated and will be removed. Use png_permit_mng_features() instead. */ -extern PNG_EXPORT(void,png_permit_empty_plte) PNGARG((png_structp png_ptr, - int empty_plte_permitted)) PNG_DEPRECATED; -#endif -#endif - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -/* Set how many lines between output flushes - 0 for no flushing */ -extern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows)); -/* Flush the current PNG output buffer */ -extern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr)); -#endif - -/* Optional update palette with requested transformations */ -extern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr)); - -/* Optional call to update the users info structure */ -extern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED -/* Read one or more rows of image data. */ -extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr, - png_bytepp row, png_bytepp display_row, png_uint_32 num_rows)); -#endif - -#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED -/* Read a row of data. */ -extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr, - png_bytep row, - png_bytep display_row)); -#endif - -#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED -/* Read the whole image into memory at once. */ -extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr, - png_bytepp image)); -#endif - -/* Write a row of image data */ -extern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr, - png_bytep row)); - -/* Write a few rows of image data */ -extern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr, - png_bytepp row, png_uint_32 num_rows)); - -/* Write the image data */ -extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr, - png_bytepp image)); - -/* Writes the end of the PNG file. */ -extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED -/* Read the end of the PNG file. */ -extern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr, - png_infop info_ptr)); -#endif - -/* Free any memory associated with the png_info_struct */ -extern PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr, - png_infopp info_ptr_ptr)); - -/* Free any memory associated with the png_struct and the png_info_structs */ -extern PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp - png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); - -/* Free all memory used by the read (old method - NOT DLL EXPORTED) */ -/* Debian note: exporting as it is required by legacy applications */ -extern PNG_EXPORT(void,png_read_destroy) PNGARG((png_structp png_ptr, png_infop info_ptr, - png_infop end_info_ptr)); - -/* Free any memory associated with the png_struct and the png_info_structs */ -extern PNG_EXPORT(void,png_destroy_write_struct) - PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)); - -/* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */ -/* Debian note: exporting as it is required by legacy applications */ -extern PNG_EXPORT(void,png_write_destroy) PNGARG((png_structp png_ptr)); - -/* Set the libpng method of handling chunk CRC errors */ -extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr, - int crit_action, int ancil_action)); - -/* Values for png_set_crc_action() to say how to handle CRC errors in - * ancillary and critical chunks, and whether to use the data contained - * therein. Note that it is impossible to "discard" data in a critical - * chunk. For versions prior to 0.90, the action was always error/quit, - * whereas in version 0.90 and later, the action for CRC errors in ancillary - * chunks is warn/discard. These values should NOT be changed. - * - * value action:critical action:ancillary - */ -#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ -#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ -#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ -#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ -#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ -#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ - -/* These functions give the user control over the scan-line filtering in - * libpng and the compression methods used by zlib. These functions are - * mainly useful for testing, as the defaults should work with most users. - * Those users who are tight on memory or want faster performance at the - * expense of compression can modify them. See the compression library - * header file (zlib.h) for an explination of the compression functions. - */ - -/* Set the filtering method(s) used by libpng. Currently, the only valid - * value for "method" is 0. - */ -extern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method, - int filters)); - -/* Flags for png_set_filter() to say which filters to use. The flags - * are chosen so that they don't conflict with real filter types - * below, in case they are supplied instead of the #defined constants. - * These values should NOT be changed. - */ -#define PNG_NO_FILTERS 0x00 -#define PNG_FILTER_NONE 0x08 -#define PNG_FILTER_SUB 0x10 -#define PNG_FILTER_UP 0x20 -#define PNG_FILTER_AVG 0x40 -#define PNG_FILTER_PAETH 0x80 -#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \ - PNG_FILTER_AVG | PNG_FILTER_PAETH) - -/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. - * These defines should NOT be changed. - */ -#define PNG_FILTER_VALUE_NONE 0 -#define PNG_FILTER_VALUE_SUB 1 -#define PNG_FILTER_VALUE_UP 2 -#define PNG_FILTER_VALUE_AVG 3 -#define PNG_FILTER_VALUE_PAETH 4 -#define PNG_FILTER_VALUE_LAST 5 - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) /* EXPERIMENTAL */ -/* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_ - * defines, either the default (minimum-sum-of-absolute-differences), or - * the experimental method (weighted-minimum-sum-of-absolute-differences). - * - * Weights are factors >= 1.0, indicating how important it is to keep the - * filter type consistent between rows. Larger numbers mean the current - * filter is that many times as likely to be the same as the "num_weights" - * previous filters. This is cumulative for each previous row with a weight. - * There needs to be "num_weights" values in "filter_weights", or it can be - * NULL if the weights aren't being specified. Weights have no influence on - * the selection of the first row filter. Well chosen weights can (in theory) - * improve the compression for a given image. - * - * Costs are factors >= 1.0 indicating the relative decoding costs of a - * filter type. Higher costs indicate more decoding expense, and are - * therefore less likely to be selected over a filter with lower computational - * costs. There needs to be a value in "filter_costs" for each valid filter - * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't - * setting the costs. Costs try to improve the speed of decompression without - * unduly increasing the compressed image size. - * - * A negative weight or cost indicates the default value is to be used, and - * values in the range [0.0, 1.0) indicate the value is to remain unchanged. - * The default values for both weights and costs are currently 1.0, but may - * change if good general weighting/cost heuristics can be found. If both - * the weights and costs are set to 1.0, this degenerates the WEIGHTED method - * to the UNWEIGHTED method, but with added encoding time/computation. - */ -#ifdef PNG_FLOATING_POINT_SUPPORTED -extern PNG_EXPORT(void,png_set_filter_heuristics) PNGARG((png_structp png_ptr, - int heuristic_method, int num_weights, png_doublep filter_weights, - png_doublep filter_costs)); -#endif -#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ - -/* Heuristic used for row filter selection. These defines should NOT be - * changed. - */ -#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ -#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ -#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ -#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ - -/* Set the library compression level. Currently, valid values range from - * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 - * (0 - no compression, 9 - "maximal" compression). Note that tests have - * shown that zlib compression levels 3-6 usually perform as well as level 9 - * for PNG images, and do considerably fewer caclulations. In the future, - * these values may not correspond directly to the zlib compression levels. - */ -extern PNG_EXPORT(void,png_set_compression_level) PNGARG((png_structp png_ptr, - int level)); - -extern PNG_EXPORT(void,png_set_compression_mem_level) - PNGARG((png_structp png_ptr, int mem_level)); - -extern PNG_EXPORT(void,png_set_compression_strategy) - PNGARG((png_structp png_ptr, int strategy)); - -extern PNG_EXPORT(void,png_set_compression_window_bits) - PNGARG((png_structp png_ptr, int window_bits)); - -extern PNG_EXPORT(void,png_set_compression_method) PNGARG((png_structp png_ptr, - int method)); - -/* These next functions are called for input/output, memory, and error - * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, - * and call standard C I/O routines such as fread(), fwrite(), and - * fprintf(). These functions can be made to use other I/O routines - * at run time for those applications that need to handle I/O in a - * different manner by calling png_set_???_fn(). See libpng.txt for - * more information. - */ - -#ifdef PNG_STDIO_SUPPORTED -/* Initialize the input/output for the PNG file to the default functions. */ -extern PNG_EXPORT(void,png_init_io) PNGARG((png_structp png_ptr, png_FILE_p fp)); -#endif - -/* Replace the (error and abort), and warning functions with user - * supplied functions. If no messages are to be printed you must still - * write and use replacement functions. The replacement error_fn should - * still do a longjmp to the last setjmp location if you are using this - * method of error handling. If error_fn or warning_fn is NULL, the - * default function will be used. - */ - -extern PNG_EXPORT(void,png_set_error_fn) PNGARG((png_structp png_ptr, - png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); - -/* Return the user pointer associated with the error functions */ -extern PNG_EXPORT(png_voidp,png_get_error_ptr) PNGARG((png_structp png_ptr)); - -/* Replace the default data output functions with a user supplied one(s). - * If buffered output is not used, then output_flush_fn can be set to NULL. - * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time - * output_flush_fn will be ignored (and thus can be NULL). - * It is probably a mistake to use NULL for output_flush_fn if - * write_data_fn is not also NULL unless you have built libpng with - * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's - * default flush function, which uses the standard *FILE structure, will - * be used. - */ -extern PNG_EXPORT(void,png_set_write_fn) PNGARG((png_structp png_ptr, - png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); - -/* Replace the default data input function with a user supplied one. */ -extern PNG_EXPORT(void,png_set_read_fn) PNGARG((png_structp png_ptr, - png_voidp io_ptr, png_rw_ptr read_data_fn)); - -/* Return the user pointer associated with the I/O functions */ -extern PNG_EXPORT(png_voidp,png_get_io_ptr) PNGARG((png_structp png_ptr)); - -extern PNG_EXPORT(void,png_set_read_status_fn) PNGARG((png_structp png_ptr, - png_read_status_ptr read_row_fn)); - -extern PNG_EXPORT(void,png_set_write_status_fn) PNGARG((png_structp png_ptr, - png_write_status_ptr write_row_fn)); - -#ifdef PNG_USER_MEM_SUPPORTED -/* Replace the default memory allocation functions with user supplied one(s). */ -extern PNG_EXPORT(void,png_set_mem_fn) PNGARG((png_structp png_ptr, - png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn)); -/* Return the user pointer associated with the memory functions */ -extern PNG_EXPORT(png_voidp,png_get_mem_ptr) PNGARG((png_structp png_ptr)); -#endif - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_LEGACY_SUPPORTED) -extern PNG_EXPORT(void,png_set_read_user_transform_fn) PNGARG((png_structp - png_ptr, png_user_transform_ptr read_user_transform_fn)); -#endif - -#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_LEGACY_SUPPORTED) -extern PNG_EXPORT(void,png_set_write_user_transform_fn) PNGARG((png_structp - png_ptr, png_user_transform_ptr write_user_transform_fn)); -#endif - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_LEGACY_SUPPORTED) -extern PNG_EXPORT(void,png_set_user_transform_info) PNGARG((png_structp - png_ptr, png_voidp user_transform_ptr, int user_transform_depth, - int user_transform_channels)); -/* Return the user pointer associated with the user transform functions */ -extern PNG_EXPORT(png_voidp,png_get_user_transform_ptr) - PNGARG((png_structp png_ptr)); -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -extern PNG_EXPORT(void,png_set_read_user_chunk_fn) PNGARG((png_structp png_ptr, - png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); -extern PNG_EXPORT(png_voidp,png_get_user_chunk_ptr) PNGARG((png_structp - png_ptr)); -#endif - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -/* Sets the function callbacks for the push reader, and a pointer to a - * user-defined structure available to the callback functions. - */ -extern PNG_EXPORT(void,png_set_progressive_read_fn) PNGARG((png_structp png_ptr, - png_voidp progressive_ptr, - png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, - png_progressive_end_ptr end_fn)); - -/* Returns the user pointer associated with the push read functions */ -extern PNG_EXPORT(png_voidp,png_get_progressive_ptr) - PNGARG((png_structp png_ptr)); - -/* Function to be called when data becomes available */ -extern PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_bytep buffer, png_size_t buffer_size)); - -/* Function that combines rows. Not very much different than the - * png_combine_row() call. Is this even used????? - */ -extern PNG_EXPORT(void,png_progressive_combine_row) PNGARG((png_structp png_ptr, - png_bytep old_row, png_bytep new_row)); -#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ - -extern PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr, - png_uint_32 size)) PNG_ALLOCATED; - -#ifdef PNG_1_0_X -# define png_malloc_warn png_malloc -#else -/* Added at libpng version 1.2.4 */ -extern PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr, - png_uint_32 size)) PNG_ALLOCATED; -#endif - -/* Frees a pointer allocated by png_malloc() */ -extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr)); - -#ifdef PNG_1_0_X -/* Function to allocate memory for zlib. */ -extern PNG_EXPORT(voidpf,png_zalloc) PNGARG((voidpf png_ptr, uInt items, - uInt size)); - -/* Function to free memory for zlib */ -extern PNG_EXPORT(void,png_zfree) PNGARG((voidpf png_ptr, voidpf ptr)); -#endif - -/* Free data that was allocated internally */ -extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 free_me, int num)); -#ifdef PNG_FREE_ME_SUPPORTED -/* Reassign responsibility for freeing existing data, whether allocated - * by libpng or by the application - */ -extern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr, - png_infop info_ptr, int freer, png_uint_32 mask)); -#endif -/* Assignments for png_data_freer */ -#define PNG_DESTROY_WILL_FREE_DATA 1 -#define PNG_SET_WILL_FREE_DATA 1 -#define PNG_USER_WILL_FREE_DATA 2 -/* Flags for png_ptr->free_me and info_ptr->free_me */ -#define PNG_FREE_HIST 0x0008 -#define PNG_FREE_ICCP 0x0010 -#define PNG_FREE_SPLT 0x0020 -#define PNG_FREE_ROWS 0x0040 -#define PNG_FREE_PCAL 0x0080 -#define PNG_FREE_SCAL 0x0100 -#define PNG_FREE_UNKN 0x0200 -#define PNG_FREE_LIST 0x0400 -#define PNG_FREE_PLTE 0x1000 -#define PNG_FREE_TRNS 0x2000 -#define PNG_FREE_TEXT 0x4000 -#define PNG_FREE_ALL 0x7fff -#define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ - -#ifdef PNG_USER_MEM_SUPPORTED -extern PNG_EXPORT(png_voidp,png_malloc_default) PNGARG((png_structp png_ptr, - png_uint_32 size)) PNG_ALLOCATED; -extern PNG_EXPORT(void,png_free_default) PNGARG((png_structp png_ptr, - png_voidp ptr)); -#endif - -extern PNG_EXPORT(png_voidp,png_memcpy_check) PNGARG((png_structp png_ptr, - png_voidp s1, png_voidp s2, png_uint_32 size)) PNG_DEPRECATED; - -extern PNG_EXPORT(png_voidp,png_memset_check) PNGARG((png_structp png_ptr, - png_voidp s1, int value, png_uint_32 size)) PNG_DEPRECATED; - -#if defined(USE_FAR_KEYWORD) /* memory model conversion function */ -extern void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr, - int check)); -#endif /* USE_FAR_KEYWORD */ - -#ifndef PNG_NO_ERROR_TEXT -/* Fatal error in PNG image of libpng - can't continue */ -extern PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr, - png_const_charp error_message)) PNG_NORETURN; - -/* The same, but the chunk name is prepended to the error string. */ -extern PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr, - png_const_charp error_message)) PNG_NORETURN; -#else -/* Fatal error in PNG image of libpng - can't continue */ -extern PNG_EXPORT(void,png_err) PNGARG((png_structp png_ptr)) PNG_NORETURN; -#endif - -#ifndef PNG_NO_WARNINGS -/* Non-fatal error in libpng. Can continue, but may have a problem. */ -extern PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr, - png_const_charp warning_message)); - -#ifdef PNG_READ_SUPPORTED -/* Non-fatal error in libpng, chunk name is prepended to message. */ -extern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr, - png_const_charp warning_message)); -#endif /* PNG_READ_SUPPORTED */ -#endif /* PNG_NO_WARNINGS */ - -/* The png_set_<chunk> functions are for storing values in the png_info_struct. - * Similarly, the png_get_<chunk> calls are used to read values from the - * png_info_struct, either storing the parameters in the passed variables, or - * setting pointers into the png_info_struct where the data is stored. The - * png_get_<chunk> functions return a non-zero value if the data was available - * in info_ptr, or return zero and do not change any of the parameters if the - * data was not available. - * - * These functions should be used instead of directly accessing png_info - * to avoid problems with future changes in the size and internal layout of - * png_info_struct. - */ -/* Returns "flag" if chunk data is valid in info_ptr. */ -extern PNG_EXPORT(png_uint_32,png_get_valid) PNGARG((png_structp png_ptr, -png_infop info_ptr, png_uint_32 flag)); - -/* Returns number of bytes needed to hold a transformed row. */ -extern PNG_EXPORT(png_uint_32,png_get_rowbytes) PNGARG((png_structp png_ptr, -png_infop info_ptr)); - -#ifdef PNG_INFO_IMAGE_SUPPORTED -/* Returns row_pointers, which is an array of pointers to scanlines that was - * returned from png_read_png(). - */ -extern PNG_EXPORT(png_bytepp,png_get_rows) PNGARG((png_structp png_ptr, -png_infop info_ptr)); -/* Set row_pointers, which is an array of pointers to scanlines for use - * by png_write_png(). - */ -extern PNG_EXPORT(void,png_set_rows) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_bytepp row_pointers)); -#endif - -/* Returns number of color channels in image. */ -extern PNG_EXPORT(png_byte,png_get_channels) PNGARG((png_structp png_ptr, -png_infop info_ptr)); - -#ifdef PNG_EASY_ACCESS_SUPPORTED -/* Returns image width in pixels. */ -extern PNG_EXPORT(png_uint_32, png_get_image_width) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image height in pixels. */ -extern PNG_EXPORT(png_uint_32, png_get_image_height) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image bit_depth. */ -extern PNG_EXPORT(png_byte, png_get_bit_depth) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image color_type. */ -extern PNG_EXPORT(png_byte, png_get_color_type) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image filter_type. */ -extern PNG_EXPORT(png_byte, png_get_filter_type) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image interlace_type. */ -extern PNG_EXPORT(png_byte, png_get_interlace_type) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image compression_type. */ -extern PNG_EXPORT(png_byte, png_get_compression_type) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image resolution in pixels per meter, from pHYs chunk data. */ -extern PNG_EXPORT(png_uint_32, png_get_pixels_per_meter) PNGARG((png_structp -png_ptr, png_infop info_ptr)); -extern PNG_EXPORT(png_uint_32, png_get_x_pixels_per_meter) PNGARG((png_structp -png_ptr, png_infop info_ptr)); -extern PNG_EXPORT(png_uint_32, png_get_y_pixels_per_meter) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns pixel aspect ratio, computed from pHYs chunk data. */ -#ifdef PNG_FLOATING_POINT_SUPPORTED -extern PNG_EXPORT(float, png_get_pixel_aspect_ratio) PNGARG((png_structp -png_ptr, png_infop info_ptr)); -#endif - -/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ -extern PNG_EXPORT(png_int_32, png_get_x_offset_pixels) PNGARG((png_structp -png_ptr, png_infop info_ptr)); -extern PNG_EXPORT(png_int_32, png_get_y_offset_pixels) PNGARG((png_structp -png_ptr, png_infop info_ptr)); -extern PNG_EXPORT(png_int_32, png_get_x_offset_microns) PNGARG((png_structp -png_ptr, png_infop info_ptr)); -extern PNG_EXPORT(png_int_32, png_get_y_offset_microns) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -#endif /* PNG_EASY_ACCESS_SUPPORTED */ - -/* Returns pointer to signature string read from PNG header */ -extern PNG_EXPORT(png_bytep,png_get_signature) PNGARG((png_structp png_ptr, -png_infop info_ptr)); - -#ifdef PNG_bKGD_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_bKGD) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_color_16p *background)); -#endif - -#ifdef PNG_bKGD_SUPPORTED -extern PNG_EXPORT(void,png_set_bKGD) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_color_16p background)); -#endif - -#ifdef PNG_cHRM_SUPPORTED -#ifdef PNG_FLOATING_POINT_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_cHRM) PNGARG((png_structp png_ptr, - png_infop info_ptr, double *white_x, double *white_y, double *red_x, - double *red_y, double *green_x, double *green_y, double *blue_x, - double *blue_y)); -#endif -#ifdef PNG_FIXED_POINT_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_cHRM_fixed) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_fixed_point *int_white_x, png_fixed_point - *int_white_y, png_fixed_point *int_red_x, png_fixed_point *int_red_y, - png_fixed_point *int_green_x, png_fixed_point *int_green_y, png_fixed_point - *int_blue_x, png_fixed_point *int_blue_y)); -#endif -#endif - -#ifdef PNG_cHRM_SUPPORTED -#ifdef PNG_FLOATING_POINT_SUPPORTED -extern PNG_EXPORT(void,png_set_cHRM) PNGARG((png_structp png_ptr, - png_infop info_ptr, double white_x, double white_y, double red_x, - double red_y, double green_x, double green_y, double blue_x, double blue_y)); -#endif -#ifdef PNG_FIXED_POINT_SUPPORTED -extern PNG_EXPORT(void,png_set_cHRM_fixed) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_fixed_point int_white_x, png_fixed_point int_white_y, - png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point - int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, - png_fixed_point int_blue_y)); -#endif -#endif - -#ifdef PNG_gAMA_SUPPORTED -#ifdef PNG_FLOATING_POINT_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_gAMA) PNGARG((png_structp png_ptr, - png_infop info_ptr, double *file_gamma)); -#endif -extern PNG_EXPORT(png_uint_32,png_get_gAMA_fixed) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_fixed_point *int_file_gamma)); -#endif - -#ifdef PNG_gAMA_SUPPORTED -#ifdef PNG_FLOATING_POINT_SUPPORTED -extern PNG_EXPORT(void,png_set_gAMA) PNGARG((png_structp png_ptr, - png_infop info_ptr, double file_gamma)); -#endif -extern PNG_EXPORT(void,png_set_gAMA_fixed) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_fixed_point int_file_gamma)); -#endif - -#ifdef PNG_hIST_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_hIST) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_16p *hist)); -#endif - -#ifdef PNG_hIST_SUPPORTED -extern PNG_EXPORT(void,png_set_hIST) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_16p hist)); -#endif - -extern PNG_EXPORT(png_uint_32,png_get_IHDR) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 *width, png_uint_32 *height, - int *bit_depth, int *color_type, int *interlace_method, - int *compression_method, int *filter_method)); - -extern PNG_EXPORT(void,png_set_IHDR) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, - int color_type, int interlace_method, int compression_method, - int filter_method)); - -#ifdef PNG_oFFs_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_oFFs) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, - int *unit_type)); -#endif - -#ifdef PNG_oFFs_SUPPORTED -extern PNG_EXPORT(void,png_set_oFFs) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, - int unit_type)); -#endif - -#ifdef PNG_pCAL_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_pCAL) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1, - int *type, int *nparams, png_charp *units, png_charpp *params)); -#endif - -#ifdef PNG_pCAL_SUPPORTED -extern PNG_EXPORT(void,png_set_pCAL) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1, - int type, int nparams, png_charp units, png_charpp params)); -#endif - -#ifdef PNG_pHYs_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_pHYs) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); -#endif - -#ifdef PNG_pHYs_SUPPORTED -extern PNG_EXPORT(void,png_set_pHYs) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); -#endif - -extern PNG_EXPORT(png_uint_32,png_get_PLTE) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_colorp *palette, int *num_palette)); - -extern PNG_EXPORT(void,png_set_PLTE) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_colorp palette, int num_palette)); - -#ifdef PNG_sBIT_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_sBIT) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_color_8p *sig_bit)); -#endif - -#ifdef PNG_sBIT_SUPPORTED -extern PNG_EXPORT(void,png_set_sBIT) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_color_8p sig_bit)); -#endif - -#ifdef PNG_sRGB_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_sRGB) PNGARG((png_structp png_ptr, - png_infop info_ptr, int *intent)); -#endif - -#ifdef PNG_sRGB_SUPPORTED -extern PNG_EXPORT(void,png_set_sRGB) PNGARG((png_structp png_ptr, - png_infop info_ptr, int intent)); -extern PNG_EXPORT(void,png_set_sRGB_gAMA_and_cHRM) PNGARG((png_structp png_ptr, - png_infop info_ptr, int intent)); -#endif - -#ifdef PNG_iCCP_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_iCCP) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_charpp name, int *compression_type, - png_charpp profile, png_uint_32 *proflen)); - /* Note to maintainer: profile should be png_bytepp */ -#endif - -#ifdef PNG_iCCP_SUPPORTED -extern PNG_EXPORT(void,png_set_iCCP) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_charp name, int compression_type, - png_charp profile, png_uint_32 proflen)); - /* Note to maintainer: profile should be png_bytep */ -#endif - -#ifdef PNG_sPLT_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_sPLT) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_sPLT_tpp entries)); -#endif - -#ifdef PNG_sPLT_SUPPORTED -extern PNG_EXPORT(void,png_set_sPLT) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_sPLT_tp entries, int nentries)); -#endif - -#ifdef PNG_TEXT_SUPPORTED -/* png_get_text also returns the number of text chunks in *num_text */ -extern PNG_EXPORT(png_uint_32,png_get_text) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_textp *text_ptr, int *num_text)); -#endif - -/* - * Note while png_set_text() will accept a structure whose text, - * language, and translated keywords are NULL pointers, the structure - * returned by png_get_text will always contain regular - * zero-terminated C strings. They might be empty strings but - * they will never be NULL pointers. - */ - -#ifdef PNG_TEXT_SUPPORTED -extern PNG_EXPORT(void,png_set_text) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_textp text_ptr, int num_text)); -#endif - -#ifdef PNG_tIME_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_tIME) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_timep *mod_time)); -#endif - -#ifdef PNG_tIME_SUPPORTED -extern PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_timep mod_time)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_bytep *trans, int *num_trans, - png_color_16p *trans_values)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_bytep trans, int num_trans, - png_color_16p trans_values)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -#endif - -#ifdef PNG_sCAL_SUPPORTED -#ifdef PNG_FLOATING_POINT_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_sCAL) PNGARG((png_structp png_ptr, - png_infop info_ptr, int *unit, double *width, double *height)); -#else -#ifdef PNG_FIXED_POINT_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_get_sCAL_s) PNGARG((png_structp png_ptr, - png_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight)); -#endif -#endif -#endif /* PNG_sCAL_SUPPORTED */ - -#ifdef PNG_sCAL_SUPPORTED -#ifdef PNG_FLOATING_POINT_SUPPORTED -extern PNG_EXPORT(void,png_set_sCAL) PNGARG((png_structp png_ptr, - png_infop info_ptr, int unit, double width, double height)); -#else -#ifdef PNG_FIXED_POINT_SUPPORTED -extern PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr, - png_infop info_ptr, int unit, png_charp swidth, png_charp sheight)); -#endif -#endif -#endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */ - -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED -/* Provide a list of chunks and how they are to be handled, if the built-in - handling or default unknown chunk handling is not desired. Any chunks not - listed will be handled in the default manner. The IHDR and IEND chunks - must not be listed. - keep = 0: follow default behaviour - = 1: do not keep - = 2: keep only if safe-to-copy - = 3: keep even if unsafe-to-copy -*/ -extern PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp - png_ptr, int keep, png_bytep chunk_list, int num_chunks)); -PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep - chunk_name)); -#endif -#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED -extern PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns)); -extern PNG_EXPORT(void, png_set_unknown_chunk_location) - PNGARG((png_structp png_ptr, png_infop info_ptr, int chunk, int location)); -extern PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp - png_ptr, png_infop info_ptr, png_unknown_chunkpp entries)); -#endif - -/* Png_free_data() will turn off the "valid" flag for anything it frees. - * If you need to turn it off for a chunk that your application has freed, - * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); - */ -extern PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr, - png_infop info_ptr, int mask)); - -#ifdef PNG_INFO_IMAGE_SUPPORTED -/* The "params" pointer is currently not used and is for future expansion. */ -extern PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr, - png_infop info_ptr, - int transforms, - png_voidp params)); -extern PNG_EXPORT(void, png_write_png) PNGARG((png_structp png_ptr, - png_infop info_ptr, - int transforms, - png_voidp params)); -#endif - -/* Define PNG_DEBUG at compile time for debugging information. Higher - * numbers for PNG_DEBUG mean more debugging information. This has - * only been added since version 0.95 so it is not implemented throughout - * libpng yet, but more support will be added as needed. - */ -#ifdef PNG_DEBUG -#if (PNG_DEBUG > 0) -#if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER) -#include <crtdbg.h> -#if (PNG_DEBUG > 1) -#ifndef _DEBUG -# define _DEBUG -#endif -#ifndef png_debug -#define png_debug(l,m) _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE) -#endif -#ifndef png_debug1 -#define png_debug1(l,m,p1) _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1) -#endif -#ifndef png_debug2 -#define png_debug2(l,m,p1,p2) _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2) -#endif -#endif -#else /* PNG_DEBUG_FILE || !_MSC_VER */ -#ifndef PNG_DEBUG_FILE -#define PNG_DEBUG_FILE stderr -#endif /* PNG_DEBUG_FILE */ - -#if (PNG_DEBUG > 1) -/* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on non-ISO - * compilers. - */ -# ifdef __STDC__ -# ifndef png_debug -# define png_debug(l,m) \ - { \ - int num_tabs=l; \ - fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ - (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \ - } -# endif -# ifndef png_debug1 -# define png_debug1(l,m,p1) \ - { \ - int num_tabs=l; \ - fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ - (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \ - } -# endif -# ifndef png_debug2 -# define png_debug2(l,m,p1,p2) \ - { \ - int num_tabs=l; \ - fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ - (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \ - } -# endif -# else /* __STDC __ */ -# ifndef png_debug -# define png_debug(l,m) \ - { \ - int num_tabs=l; \ - char format[256]; \ - snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ - (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ - m,PNG_STRING_NEWLINE); \ - fprintf(PNG_DEBUG_FILE,format); \ - } -# endif -# ifndef png_debug1 -# define png_debug1(l,m,p1) \ - { \ - int num_tabs=l; \ - char format[256]; \ - snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ - (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ - m,PNG_STRING_NEWLINE); \ - fprintf(PNG_DEBUG_FILE,format,p1); \ - } -# endif -# ifndef png_debug2 -# define png_debug2(l,m,p1,p2) \ - { \ - int num_tabs=l; \ - char format[256]; \ - snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ - (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ - m,PNG_STRING_NEWLINE); \ - fprintf(PNG_DEBUG_FILE,format,p1,p2); \ - } -# endif -# endif /* __STDC __ */ -#endif /* (PNG_DEBUG > 1) */ - -#endif /* _MSC_VER */ -#endif /* (PNG_DEBUG > 0) */ -#endif /* PNG_DEBUG */ -#ifndef png_debug -#define png_debug(l, m) -#endif -#ifndef png_debug1 -#define png_debug1(l, m, p1) -#endif -#ifndef png_debug2 -#define png_debug2(l, m, p1, p2) -#endif - -extern PNG_EXPORT(png_charp,png_get_copyright) PNGARG((png_structp png_ptr)); -extern PNG_EXPORT(png_charp,png_get_header_ver) PNGARG((png_structp png_ptr)); -extern PNG_EXPORT(png_charp,png_get_header_version) PNGARG((png_structp png_ptr)); -extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr)); - -#ifdef PNG_MNG_FEATURES_SUPPORTED -extern PNG_EXPORT(png_uint_32,png_permit_mng_features) PNGARG((png_structp - png_ptr, png_uint_32 mng_features_permitted)); -#endif - -/* For use in png_set_keep_unknown, added to version 1.2.6 */ -#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 -#define PNG_HANDLE_CHUNK_NEVER 1 -#define PNG_HANDLE_CHUNK_IF_SAFE 2 -#define PNG_HANDLE_CHUNK_ALWAYS 3 - -/* Added to version 1.2.0 */ -#ifdef PNG_ASSEMBLER_CODE_SUPPORTED -#ifdef PNG_MMX_CODE_SUPPORTED -#define PNG_ASM_FLAG_MMX_SUPPORT_COMPILED 0x01 /* not user-settable */ -#define PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU 0x02 /* not user-settable */ -#define PNG_ASM_FLAG_MMX_READ_COMBINE_ROW 0x04 -#define PNG_ASM_FLAG_MMX_READ_INTERLACE 0x08 -#define PNG_ASM_FLAG_MMX_READ_FILTER_SUB 0x10 -#define PNG_ASM_FLAG_MMX_READ_FILTER_UP 0x20 -#define PNG_ASM_FLAG_MMX_READ_FILTER_AVG 0x40 -#define PNG_ASM_FLAG_MMX_READ_FILTER_PAETH 0x80 -#define PNG_ASM_FLAGS_INITIALIZED 0x80000000 /* not user-settable */ - -#define PNG_MMX_READ_FLAGS ( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \ - | PNG_ASM_FLAG_MMX_READ_INTERLACE \ - | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \ - | PNG_ASM_FLAG_MMX_READ_FILTER_UP \ - | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \ - | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ) -#define PNG_MMX_WRITE_FLAGS ( 0 ) - -#define PNG_MMX_FLAGS ( PNG_ASM_FLAG_MMX_SUPPORT_COMPILED \ - | PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU \ - | PNG_MMX_READ_FLAGS \ - | PNG_MMX_WRITE_FLAGS ) - -#define PNG_SELECT_READ 1 -#define PNG_SELECT_WRITE 2 -#endif /* PNG_MMX_CODE_SUPPORTED */ - -#ifndef PNG_1_0_X -/* pngget.c */ -extern PNG_EXPORT(png_uint_32,png_get_mmx_flagmask) - PNGARG((int flag_select, int *compilerID)); - -/* pngget.c */ -extern PNG_EXPORT(png_uint_32,png_get_asm_flagmask) - PNGARG((int flag_select)); - -/* pngget.c */ -extern PNG_EXPORT(png_uint_32,png_get_asm_flags) - PNGARG((png_structp png_ptr)); - -/* pngget.c */ -extern PNG_EXPORT(png_byte,png_get_mmx_bitdepth_threshold) - PNGARG((png_structp png_ptr)); - -/* pngget.c */ -extern PNG_EXPORT(png_uint_32,png_get_mmx_rowbytes_threshold) - PNGARG((png_structp png_ptr)); - -/* pngset.c */ -extern PNG_EXPORT(void,png_set_asm_flags) - PNGARG((png_structp png_ptr, png_uint_32 asm_flags)); - -/* pngset.c */ -extern PNG_EXPORT(void,png_set_mmx_thresholds) - PNGARG((png_structp png_ptr, png_byte mmx_bitdepth_threshold, - png_uint_32 mmx_rowbytes_threshold)); - -#endif /* PNG_1_0_X */ - -#ifndef PNG_1_0_X -/* png.c, pnggccrd.c, or pngvcrd.c */ -extern PNG_EXPORT(int,png_mmx_support) PNGARG((void)); -#endif /* PNG_1_0_X */ -#endif /* PNG_ASSEMBLER_CODE_SUPPORTED */ - -/* Strip the prepended error numbers ("#nnn ") from error and warning - * messages before passing them to the error or warning handler. - */ -#ifdef PNG_ERROR_NUMBERS_SUPPORTED -extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp - png_ptr, png_uint_32 strip_mode)); -#endif - -/* Added at libpng-1.2.6 */ -#ifdef PNG_SET_USER_LIMITS_SUPPORTED -extern PNG_EXPORT(void,png_set_user_limits) PNGARG((png_structp - png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max)); -extern PNG_EXPORT(png_uint_32,png_get_user_width_max) PNGARG((png_structp - png_ptr)); -extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp - png_ptr)); -#endif -/* Maintainer: Put new public prototypes here ^, in libpng.3, and in - * project defs - */ - -#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED -/* With these routines we avoid an integer divide, which will be slower on - * most machines. However, it does take more operations than the corresponding - * divide method, so it may be slower on a few RISC systems. There are two - * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. - * - * Note that the rounding factors are NOT supposed to be the same! 128 and - * 32768 are correct for the NODIV code; 127 and 32767 are correct for the - * standard method. - * - * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] - */ - - /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ - -# define png_composite(composite, fg, alpha, bg) \ - { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) * (png_uint_16)(alpha) \ - + (png_uint_16)(bg)*(png_uint_16)(255 - \ - (png_uint_16)(alpha)) + (png_uint_16)128); \ - (composite) = (png_byte)((temp + (temp >> 8)) >> 8); } - -# define png_composite_16(composite, fg, alpha, bg) \ - { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) * (png_uint_32)(alpha) \ - + (png_uint_32)(bg)*(png_uint_32)(65535L - \ - (png_uint_32)(alpha)) + (png_uint_32)32768L); \ - (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); } - -#else /* Standard method using integer division */ - -# define png_composite(composite, fg, alpha, bg) \ - (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \ - (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ - (png_uint_16)127) / 255) - -# define png_composite_16(composite, fg, alpha, bg) \ - (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \ - (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) + \ - (png_uint_32)32767) / (png_uint_32)65535L) - -#endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */ - -/* Inline macros to do direct reads of bytes from the input buffer. These - * require that you are using an architecture that uses PNG byte ordering - * (MSB first) and supports unaligned data storage. I think that PowerPC - * in big-endian mode and 680x0 are the only ones that will support this. - * The x86 line of processors definitely do not. The png_get_int_32() - * routine also assumes we are using two's complement format for negative - * values, which is almost certainly true. - */ -#ifdef PNG_READ_BIG_ENDIAN_SUPPORTED -# define png_get_uint_32(buf) ( *((png_uint_32p) (buf))) -# define png_get_uint_16(buf) ( *((png_uint_16p) (buf))) -# define png_get_int_32(buf) ( *((png_int_32p) (buf))) -#else -extern PNG_EXPORT(png_uint_32,png_get_uint_32) PNGARG((png_bytep buf)); -extern PNG_EXPORT(png_uint_16,png_get_uint_16) PNGARG((png_bytep buf)); -extern PNG_EXPORT(png_int_32,png_get_int_32) PNGARG((png_bytep buf)); -#endif /* !PNG_READ_BIG_ENDIAN_SUPPORTED */ -extern PNG_EXPORT(png_uint_32,png_get_uint_31) - PNGARG((png_structp png_ptr, png_bytep buf)); -/* No png_get_int_16 -- may be added if there's a real need for it. */ - -/* Place a 32-bit number into a buffer in PNG byte order (big-endian). - */ -extern PNG_EXPORT(void,png_save_uint_32) - PNGARG((png_bytep buf, png_uint_32 i)); -extern PNG_EXPORT(void,png_save_int_32) - PNGARG((png_bytep buf, png_int_32 i)); - -/* Place a 16-bit number into a buffer in PNG byte order. - * The parameter is declared unsigned int, not png_uint_16, - * just to avoid potential problems on pre-ANSI C compilers. - */ -extern PNG_EXPORT(void,png_save_uint_16) - PNGARG((png_bytep buf, unsigned int i)); -/* No png_save_int_16 -- may be added if there's a real need for it. */ - -/* ************************************************************************* */ - -/* These next functions are used internally in the code. They generally - * shouldn't be used unless you are writing code to add or replace some - * functionality in libpng. More information about most functions can - * be found in the files where the functions are located. - */ - - -/* Various modes of operation, that are visible to applications because - * they are used for unknown chunk location. - */ -#define PNG_HAVE_IHDR 0x01 -#define PNG_HAVE_PLTE 0x02 -#define PNG_HAVE_IDAT 0x04 -#define PNG_AFTER_IDAT 0x08 /* Have complete zlib datastream */ -#define PNG_HAVE_IEND 0x10 - -#ifdef PNG_INTERNAL - -/* More modes of operation. Note that after an init, mode is set to - * zero automatically when the structure is created. - */ -#define PNG_HAVE_gAMA 0x20 -#define PNG_HAVE_cHRM 0x40 -#define PNG_HAVE_sRGB 0x80 -#define PNG_HAVE_CHUNK_HEADER 0x100 -#define PNG_WROTE_tIME 0x200 -#define PNG_WROTE_INFO_BEFORE_PLTE 0x400 -#define PNG_BACKGROUND_IS_GRAY 0x800 -#define PNG_HAVE_PNG_SIGNATURE 0x1000 -#define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */ - -/* Flags for the transformations the PNG library does on the image data */ -#define PNG_BGR 0x0001 -#define PNG_INTERLACE 0x0002 -#define PNG_PACK 0x0004 -#define PNG_SHIFT 0x0008 -#define PNG_SWAP_BYTES 0x0010 -#define PNG_INVERT_MONO 0x0020 -#define PNG_DITHER 0x0040 -#define PNG_BACKGROUND 0x0080 -#define PNG_BACKGROUND_EXPAND 0x0100 - /* 0x0200 unused */ -#define PNG_16_TO_8 0x0400 -#define PNG_RGBA 0x0800 -#define PNG_EXPAND 0x1000 -#define PNG_GAMMA 0x2000 -#define PNG_GRAY_TO_RGB 0x4000 -#define PNG_FILLER 0x8000L -#define PNG_PACKSWAP 0x10000L -#define PNG_SWAP_ALPHA 0x20000L -#define PNG_STRIP_ALPHA 0x40000L -#define PNG_INVERT_ALPHA 0x80000L -#define PNG_USER_TRANSFORM 0x100000L -#define PNG_RGB_TO_GRAY_ERR 0x200000L -#define PNG_RGB_TO_GRAY_WARN 0x400000L -#define PNG_RGB_TO_GRAY 0x600000L /* two bits, RGB_TO_GRAY_ERR|WARN */ - /* 0x800000L Unused */ -#define PNG_ADD_ALPHA 0x1000000L /* Added to libpng-1.2.7 */ -#define PNG_EXPAND_tRNS 0x2000000L /* Added to libpng-1.2.9 */ -#define PNG_PREMULTIPLY_ALPHA 0x4000000L /* Added to libpng-1.2.41 */ - /* by volker */ - /* 0x8000000L unused */ - /* 0x10000000L unused */ - /* 0x20000000L unused */ - /* 0x40000000L unused */ - -/* Flags for png_create_struct */ -#define PNG_STRUCT_PNG 0x0001 -#define PNG_STRUCT_INFO 0x0002 - -/* Scaling factor for filter heuristic weighting calculations */ -#define PNG_WEIGHT_SHIFT 8 -#define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT)) -#define PNG_COST_SHIFT 3 -#define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT)) - -/* Flags for the png_ptr->flags rather than declaring a byte for each one */ -#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001 -#define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x0002 -#define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x0004 -#define PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS 0x0008 -#define PNG_FLAG_ZLIB_CUSTOM_METHOD 0x0010 -#define PNG_FLAG_ZLIB_FINISHED 0x0020 -#define PNG_FLAG_ROW_INIT 0x0040 -#define PNG_FLAG_FILLER_AFTER 0x0080 -#define PNG_FLAG_CRC_ANCILLARY_USE 0x0100 -#define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200 -#define PNG_FLAG_CRC_CRITICAL_USE 0x0400 -#define PNG_FLAG_CRC_CRITICAL_IGNORE 0x0800 -#define PNG_FLAG_FREE_PLTE 0x1000 -#define PNG_FLAG_FREE_TRNS 0x2000 -#define PNG_FLAG_FREE_HIST 0x4000 -#define PNG_FLAG_KEEP_UNKNOWN_CHUNKS 0x8000L -#define PNG_FLAG_KEEP_UNSAFE_CHUNKS 0x10000L -#define PNG_FLAG_LIBRARY_MISMATCH 0x20000L -#define PNG_FLAG_STRIP_ERROR_NUMBERS 0x40000L -#define PNG_FLAG_STRIP_ERROR_TEXT 0x80000L -#define PNG_FLAG_MALLOC_NULL_MEM_OK 0x100000L -#define PNG_FLAG_ADD_ALPHA 0x200000L /* Added to libpng-1.2.8 */ -#define PNG_FLAG_STRIP_ALPHA 0x400000L /* Added to libpng-1.2.8 */ - /* 0x800000L unused */ - /* 0x1000000L unused */ - /* 0x2000000L unused */ - /* 0x4000000L unused */ - /* 0x8000000L unused */ - /* 0x10000000L unused */ - /* 0x20000000L unused */ - /* 0x40000000L unused */ - -#define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \ - PNG_FLAG_CRC_ANCILLARY_NOWARN) - -#define PNG_FLAG_CRC_CRITICAL_MASK (PNG_FLAG_CRC_CRITICAL_USE | \ - PNG_FLAG_CRC_CRITICAL_IGNORE) - -#define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \ - PNG_FLAG_CRC_CRITICAL_MASK) - -/* Save typing and make code easier to understand */ - -#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \ - abs((int)((c1).green) - (int)((c2).green)) + \ - abs((int)((c1).blue) - (int)((c2).blue))) - -/* Added to libpng-1.2.6 JB */ -#define PNG_ROWBYTES(pixel_bits, width) \ - ((pixel_bits) >= 8 ? \ - ((width) * (((png_uint_32)(pixel_bits)) >> 3)) : \ - (( ((width) * ((png_uint_32)(pixel_bits))) + 7) >> 3) ) - -/* PNG_OUT_OF_RANGE returns true if value is outside the range - * ideal-delta..ideal+delta. Each argument is evaluated twice. - * "ideal" and "delta" should be constants, normally simple - * integers, "value" a variable. Added to libpng-1.2.6 JB - */ -#define PNG_OUT_OF_RANGE(value, ideal, delta) \ - ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) ) - -/* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */ -#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN) -/* Place to hold the signature string for a PNG file. */ -#ifdef PNG_USE_GLOBAL_ARRAYS - PNG_EXPORT_VAR (PNG_CONST png_byte FARDATA) png_sig[8]; -#else -#endif -#endif /* PNG_NO_EXTERN */ - -/* Constant strings for known chunk types. If you need to add a chunk, - * define the name here, and add an invocation of the macro in png.c and - * wherever it's needed. - */ -#define PNG_IHDR png_byte png_IHDR[5] = { 73, 72, 68, 82, '\0'} -#define PNG_IDAT png_byte png_IDAT[5] = { 73, 68, 65, 84, '\0'} -#define PNG_IEND png_byte png_IEND[5] = { 73, 69, 78, 68, '\0'} -#define PNG_PLTE png_byte png_PLTE[5] = { 80, 76, 84, 69, '\0'} -#define PNG_bKGD png_byte png_bKGD[5] = { 98, 75, 71, 68, '\0'} -#define PNG_cHRM png_byte png_cHRM[5] = { 99, 72, 82, 77, '\0'} -#define PNG_gAMA png_byte png_gAMA[5] = {103, 65, 77, 65, '\0'} -#define PNG_hIST png_byte png_hIST[5] = {104, 73, 83, 84, '\0'} -#define PNG_iCCP png_byte png_iCCP[5] = {105, 67, 67, 80, '\0'} -#define PNG_iTXt png_byte png_iTXt[5] = {105, 84, 88, 116, '\0'} -#define PNG_oFFs png_byte png_oFFs[5] = {111, 70, 70, 115, '\0'} -#define PNG_pCAL png_byte png_pCAL[5] = {112, 67, 65, 76, '\0'} -#define PNG_sCAL png_byte png_sCAL[5] = {115, 67, 65, 76, '\0'} -#define PNG_pHYs png_byte png_pHYs[5] = {112, 72, 89, 115, '\0'} -#define PNG_sBIT png_byte png_sBIT[5] = {115, 66, 73, 84, '\0'} -#define PNG_sPLT png_byte png_sPLT[5] = {115, 80, 76, 84, '\0'} -#define PNG_sRGB png_byte png_sRGB[5] = {115, 82, 71, 66, '\0'} -#define PNG_tEXt png_byte png_tEXt[5] = {116, 69, 88, 116, '\0'} -#define PNG_tIME png_byte png_tIME[5] = {116, 73, 77, 69, '\0'} -#define PNG_tRNS png_byte png_tRNS[5] = {116, 82, 78, 83, '\0'} -#define PNG_zTXt png_byte png_zTXt[5] = {122, 84, 88, 116, '\0'} - -#ifdef PNG_USE_GLOBAL_ARRAYS -PNG_EXPORT_VAR (png_byte FARDATA) png_IHDR[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_IDAT[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_IEND[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_PLTE[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_bKGD[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_cHRM[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_gAMA[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_hIST[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_iCCP[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_iTXt[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_oFFs[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_pCAL[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_sCAL[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_pHYs[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_sBIT[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_sPLT[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_sRGB[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_tEXt[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_tIME[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_tRNS[5]; -PNG_EXPORT_VAR (png_byte FARDATA) png_zTXt[5]; -#endif /* PNG_USE_GLOBAL_ARRAYS */ - -#if defined(PNG_1_0_X) || defined (PNG_1_2_X) -/* Initialize png_ptr struct for reading, and allocate any other memory. - * (old interface - DEPRECATED - use png_create_read_struct instead). - */ -extern PNG_EXPORT(void,png_read_init) PNGARG((png_structp png_ptr)) - PNG_DEPRECATED; -#undef png_read_init -#define png_read_init(png_ptr) png_read_init_3(&png_ptr, \ - PNG_LIBPNG_VER_STRING, png_sizeof(png_struct)); -#endif - -extern PNG_EXPORT(void,png_read_init_3) PNGARG((png_structpp ptr_ptr, - png_const_charp user_png_ver, png_size_t png_struct_size)); -#if defined(PNG_1_0_X) || defined (PNG_1_2_X) -extern PNG_EXPORT(void,png_read_init_2) PNGARG((png_structp png_ptr, - png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t - png_info_size)); -#endif - -#if defined(PNG_1_0_X) || defined (PNG_1_2_X) -/* Initialize png_ptr struct for writing, and allocate any other memory. - * (old interface - DEPRECATED - use png_create_write_struct instead). - */ -extern PNG_EXPORT(void,png_write_init) PNGARG((png_structp png_ptr)) - PNG_DEPRECATED; -#undef png_write_init -#define png_write_init(png_ptr) png_write_init_3(&png_ptr, \ - PNG_LIBPNG_VER_STRING, png_sizeof(png_struct)); -#endif - -extern PNG_EXPORT(void,png_write_init_3) PNGARG((png_structpp ptr_ptr, - png_const_charp user_png_ver, png_size_t png_struct_size)); -extern PNG_EXPORT(void,png_write_init_2) PNGARG((png_structp png_ptr, - png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t - png_info_size)); - -/* Allocate memory for an internal libpng struct */ -PNG_EXTERN png_voidp png_create_struct PNGARG((int type)) PNG_PRIVATE; - -/* Free memory from internal libpng struct */ -PNG_EXTERN void png_destroy_struct PNGARG((png_voidp struct_ptr)) PNG_PRIVATE; - -PNG_EXTERN png_voidp png_create_struct_2 PNGARG((int type, png_malloc_ptr - malloc_fn, png_voidp mem_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr, - png_free_ptr free_fn, png_voidp mem_ptr)) PNG_PRIVATE; - -/* Free any memory that info_ptr points to and reset struct. */ -PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr, - png_infop info_ptr)) PNG_PRIVATE; - -#ifndef PNG_1_0_X -/* Function to allocate memory for zlib. */ -PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, - uInt size)) PNG_PRIVATE; - -/* Function to free memory for zlib */ -PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr)) PNG_PRIVATE; - -#ifdef PNG_SIZE_T -/* Function to convert a sizeof an item to png_sizeof item */ - PNG_EXTERN png_size_t PNGAPI png_convert_size PNGARG((size_t size)) - PNG_PRIVATE; -#endif - -/* Next four functions are used internally as callbacks. PNGAPI is required - * but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3. - */ - -PNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr, - png_bytep data, png_size_t length)) PNG_PRIVATE; - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -PNG_EXTERN void PNGAPI png_push_fill_buffer PNGARG((png_structp png_ptr, - png_bytep buffer, png_size_t length)) PNG_PRIVATE; -#endif - -PNG_EXTERN void PNGAPI png_default_write_data PNGARG((png_structp png_ptr, - png_bytep data, png_size_t length)) PNG_PRIVATE; - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -#ifdef PNG_STDIO_SUPPORTED -PNG_EXTERN void PNGAPI png_default_flush PNGARG((png_structp png_ptr)) - PNG_PRIVATE; -#endif -#endif -#else /* PNG_1_0_X */ -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -PNG_EXTERN void png_push_fill_buffer PNGARG((png_structp png_ptr, - png_bytep buffer, png_size_t length)) PNG_PRIVATE; -#endif -#endif /* PNG_1_0_X */ - -/* Reset the CRC variable */ -PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr)) PNG_PRIVATE; - -/* Write the "data" buffer to whatever output you are using. */ -PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, png_bytep data, - png_size_t length)) PNG_PRIVATE; - -/* Read data from whatever input you are using into the "data" buffer */ -PNG_EXTERN void png_read_data PNGARG((png_structp png_ptr, png_bytep data, - png_size_t length)) PNG_PRIVATE; - -/* Read bytes into buf, and update png_ptr->crc */ -PNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf, - png_size_t length)) PNG_PRIVATE; - -/* Decompress data in a chunk that uses compression */ -#if defined(PNG_zTXt_SUPPORTED) || defined(PNG_iTXt_SUPPORTED) || \ - defined(PNG_iCCP_SUPPORTED) || defined(PNG_sPLT_SUPPORTED) -PNG_EXTERN void png_decompress_chunk PNGARG((png_structp png_ptr, - int comp_type, png_size_t chunklength, - png_size_t prefix_length, png_size_t *data_length)) PNG_PRIVATE; -#endif - -/* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */ -PNG_EXTERN int png_crc_finish PNGARG((png_structp png_ptr, png_uint_32 skip) - PNG_PRIVATE); - -/* Read the CRC from the file and compare it to the libpng calculated CRC */ -PNG_EXTERN int png_crc_error PNGARG((png_structp png_ptr)) PNG_PRIVATE; - -/* Calculate the CRC over a section of data. Note that we are only - * passing a maximum of 64K on systems that have this as a memory limit, - * since this is the maximum buffer size we can specify. - */ -PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, png_bytep ptr, - png_size_t length)) PNG_PRIVATE; - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -PNG_EXTERN void png_flush PNGARG((png_structp png_ptr)) PNG_PRIVATE; -#endif - -/* Simple function to write the signature */ -PNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr)) PNG_PRIVATE; - -/* Write various chunks */ - -/* Write the IHDR chunk, and update the png_struct with the necessary - * information. - */ -PNG_EXTERN void png_write_IHDR PNGARG((png_structp png_ptr, png_uint_32 width, - png_uint_32 height, - int bit_depth, int color_type, int compression_method, int filter_method, - int interlace_method)) PNG_PRIVATE; - -PNG_EXTERN void png_write_PLTE PNGARG((png_structp png_ptr, png_colorp palette, - png_uint_32 num_pal)) PNG_PRIVATE; - -PNG_EXTERN void png_write_IDAT PNGARG((png_structp png_ptr, png_bytep data, - png_size_t length)) PNG_PRIVATE; - -PNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr)) PNG_PRIVATE; - -#ifdef PNG_WRITE_gAMA_SUPPORTED -#ifdef PNG_FLOATING_POINT_SUPPORTED -PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma)) - PNG_PRIVATE; -#endif -#ifdef PNG_FIXED_POINT_SUPPORTED -PNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr, - png_fixed_point file_gamma)) PNG_PRIVATE; -#endif -#endif - -#ifdef PNG_WRITE_sBIT_SUPPORTED -PNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr, png_color_8p sbit, - int color_type)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_cHRM_SUPPORTED -#ifdef PNG_FLOATING_POINT_SUPPORTED -PNG_EXTERN void png_write_cHRM PNGARG((png_structp png_ptr, - double white_x, double white_y, - double red_x, double red_y, double green_x, double green_y, - double blue_x, double blue_y)) PNG_PRIVATE; -#endif -#ifdef PNG_FIXED_POINT_SUPPORTED -PNG_EXTERN void png_write_cHRM_fixed PNGARG((png_structp png_ptr, - png_fixed_point int_white_x, png_fixed_point int_white_y, - png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point - int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, - png_fixed_point int_blue_y)) PNG_PRIVATE; -#endif -#endif - -#ifdef PNG_WRITE_sRGB_SUPPORTED -PNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr, - int intent)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_iCCP_SUPPORTED -PNG_EXTERN void png_write_iCCP PNGARG((png_structp png_ptr, - png_charp name, int compression_type, - png_charp profile, int proflen)) PNG_PRIVATE; - /* Note to maintainer: profile should be png_bytep */ -#endif - -#ifdef PNG_WRITE_sPLT_SUPPORTED -PNG_EXTERN void png_write_sPLT PNGARG((png_structp png_ptr, - png_sPLT_tp palette)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_tRNS_SUPPORTED -PNG_EXTERN void png_write_tRNS PNGARG((png_structp png_ptr, png_bytep trans, - png_color_16p values, int number, int color_type)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_bKGD_SUPPORTED -PNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr, - png_color_16p values, int color_type)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_hIST_SUPPORTED -PNG_EXTERN void png_write_hIST PNGARG((png_structp png_ptr, png_uint_16p hist, - int num_hist)) PNG_PRIVATE; -#endif - -#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \ - defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED) -PNG_EXTERN png_size_t png_check_keyword PNGARG((png_structp png_ptr, - png_charp key, png_charpp new_key)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_tEXt_SUPPORTED -PNG_EXTERN void png_write_tEXt PNGARG((png_structp png_ptr, png_charp key, - png_charp text, png_size_t text_len)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_zTXt_SUPPORTED -PNG_EXTERN void png_write_zTXt PNGARG((png_structp png_ptr, png_charp key, - png_charp text, png_size_t text_len, int compression)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_iTXt_SUPPORTED -PNG_EXTERN void png_write_iTXt PNGARG((png_structp png_ptr, - int compression, png_charp key, png_charp lang, png_charp lang_key, - png_charp text)) PNG_PRIVATE; -#endif - -#ifdef PNG_TEXT_SUPPORTED /* Added at version 1.0.14 and 1.2.4 */ -PNG_EXTERN int png_set_text_2 PNGARG((png_structp png_ptr, - png_infop info_ptr, png_textp text_ptr, int num_text)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_oFFs_SUPPORTED -PNG_EXTERN void png_write_oFFs PNGARG((png_structp png_ptr, - png_int_32 x_offset, png_int_32 y_offset, int unit_type)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_pCAL_SUPPORTED -PNG_EXTERN void png_write_pCAL PNGARG((png_structp png_ptr, png_charp purpose, - png_int_32 X0, png_int_32 X1, int type, int nparams, - png_charp units, png_charpp params)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_pHYs_SUPPORTED -PNG_EXTERN void png_write_pHYs PNGARG((png_structp png_ptr, - png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit, - int unit_type)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_tIME_SUPPORTED -PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr, - png_timep mod_time)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_sCAL_SUPPORTED -#if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO) -PNG_EXTERN void png_write_sCAL PNGARG((png_structp png_ptr, - int unit, double width, double height)) PNG_PRIVATE; -#else -#ifdef PNG_FIXED_POINT_SUPPORTED -PNG_EXTERN void png_write_sCAL_s PNGARG((png_structp png_ptr, - int unit, png_charp width, png_charp height)) PNG_PRIVATE; -#endif -#endif -#endif - -/* Called when finished processing a row of data */ -PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr)) PNG_PRIVATE; - -/* Internal use only. Called before first row of data */ -PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr)) PNG_PRIVATE; - -#ifdef PNG_READ_GAMMA_SUPPORTED -PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr)) PNG_PRIVATE; -#endif - -/* Combine a row of data, dealing with alpha, etc. if requested */ -PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row, - int mask)) PNG_PRIVATE; - -#ifdef PNG_READ_INTERLACING_SUPPORTED -/* Expand an interlaced row */ -/* OLD pre-1.0.9 interface: -PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info, - png_bytep row, int pass, png_uint_32 transformations)) PNG_PRIVATE; - */ -PNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr)) PNG_PRIVATE; -#endif - -/* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */ - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED -/* Grab pixels out of a row for an interlaced pass */ -PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info, - png_bytep row, int pass)) PNG_PRIVATE; -#endif - -/* Unfilter a row */ -PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr, - png_row_infop row_info, png_bytep row, png_bytep prev_row, - int filter)) PNG_PRIVATE; - -/* Choose the best filter to use and filter the row data */ -PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr, - png_row_infop row_info)) PNG_PRIVATE; - -/* Write out the filtered row. */ -PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr, - png_bytep filtered_row)) PNG_PRIVATE; -/* Finish a row while reading, dealing with interlacing passes, etc. */ -PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr)); - -/* Initialize the row buffers, etc. */ -PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr)) PNG_PRIVATE; -/* Optional call to update the users info structure */ -PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr, - png_infop info_ptr)) PNG_PRIVATE; - -/* These are the functions that do the transformations */ -#ifdef PNG_READ_FILLER_SUPPORTED -PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info, - png_bytep row, png_uint_32 filler, png_uint_32 flags)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED -PNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED -PNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED -PNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED -PNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -#endif - -#if defined(PNG_WRITE_FILLER_SUPPORTED) || \ - defined(PNG_READ_STRIP_ALPHA_SUPPORTED) -PNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info, - png_bytep row, png_uint_32 flags)) PNG_PRIVATE; -#endif - -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED) -PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -PNG_EXTERN int png_do_rgb_to_gray PNGARG((png_structp png_ptr, png_row_infop - row_info, png_bytep row)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED -PNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_PACK_SUPPORTED -PNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_SHIFT_SUPPORTED -PNG_EXTERN void png_do_unshift PNGARG((png_row_infop row_info, png_bytep row, - png_color_8p sig_bits)) PNG_PRIVATE; -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_16_TO_8_SUPPORTED -PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_DITHER_SUPPORTED -PNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info, - png_bytep row, png_bytep palette_lookup, - png_bytep dither_lookup)) PNG_PRIVATE; - -# ifdef PNG_CORRECT_PALETTE_SUPPORTED -PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr, - png_colorp palette, int num_palette)) PNG_PRIVATE; -# endif -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -PNG_EXTERN void png_do_bgr PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_PACK_SUPPORTED -PNG_EXTERN void png_do_pack PNGARG((png_row_infop row_info, - png_bytep row, png_uint_32 bit_depth)) PNG_PRIVATE; -#endif - -#ifdef PNG_WRITE_SHIFT_SUPPORTED -PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, png_bytep row, - png_color_8p bit_depth)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_BACKGROUND_SUPPORTED -#ifdef PNG_READ_GAMMA_SUPPORTED -PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, - png_color_16p trans_values, png_color_16p background, - png_color_16p background_1, - png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1, - png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1, - png_uint_16pp gamma_16_to_1, int gamma_shift)) PNG_PRIVATE; -#else -PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, - png_color_16p trans_values, png_color_16p background)) PNG_PRIVATE; -#endif -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED -PNG_EXTERN void png_do_gamma PNGARG((png_row_infop row_info, png_bytep row, - png_bytep gamma_table, png_uint_16pp gamma_16_table, - int gamma_shift)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_EXPAND_SUPPORTED -PNG_EXTERN void png_do_expand_palette PNGARG((png_row_infop row_info, - png_bytep row, png_colorp palette, png_bytep trans, - int num_trans)) PNG_PRIVATE; -PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info, - png_bytep row, png_color_16p trans_value)) PNG_PRIVATE; -#endif - -/* The following decodes the appropriate chunks, and does error correction, - * then calls the appropriate callback for the chunk if it is valid. - */ - -/* Decode the IHDR chunk */ -PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -PNG_EXTERN void png_handle_IEND PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); - -#ifdef PNG_READ_bKGD_SUPPORTED -PNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_cHRM_SUPPORTED -PNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_gAMA_SUPPORTED -PNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_hIST_SUPPORTED -PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_iCCP_SUPPORTED -extern void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif /* PNG_READ_iCCP_SUPPORTED */ - -#ifdef PNG_READ_iTXt_SUPPORTED -PNG_EXTERN void png_handle_iTXt PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_oFFs_SUPPORTED -PNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_pCAL_SUPPORTED -PNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_pHYs_SUPPORTED -PNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_sBIT_SUPPORTED -PNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_sCAL_SUPPORTED -PNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_sPLT_SUPPORTED -extern void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif /* PNG_READ_sPLT_SUPPORTED */ - -#ifdef PNG_READ_sRGB_SUPPORTED -PNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_tEXt_SUPPORTED -PNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_tIME_SUPPORTED -PNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_tRNS_SUPPORTED -PNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -#ifdef PNG_READ_zTXt_SUPPORTED -PNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)) PNG_PRIVATE; -#endif - -PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE; - -PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr, - png_bytep chunk_name)) PNG_PRIVATE; - -/* Handle the transformations for reading and writing */ -PNG_EXTERN void png_do_read_transformations - PNGARG((png_structp png_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_do_write_transformations - PNGARG((png_structp png_ptr)) PNG_PRIVATE; - -PNG_EXTERN void png_init_read_transformations - PNGARG((png_structp png_ptr)) PNG_PRIVATE; - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -PNG_EXTERN void png_push_read_chunk PNGARG((png_structp png_ptr, - png_infop info_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_push_read_sig PNGARG((png_structp png_ptr, - png_infop info_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_push_check_crc PNGARG((png_structp png_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr, - png_uint_32 length)) PNG_PRIVATE; -PNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr, - png_bytep buffer, png_size_t buffer_length)) PNG_PRIVATE; -PNG_EXTERN void png_push_read_IDAT PNGARG((png_structp png_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_process_IDAT_data PNGARG((png_structp png_ptr, - png_bytep buffer, png_size_t buffer_length)) PNG_PRIVATE; -PNG_EXTERN void png_push_process_row PNGARG((png_structp png_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_push_handle_unknown PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE; -PNG_EXTERN void png_push_have_info PNGARG((png_structp png_ptr, - png_infop info_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_push_have_end PNGARG((png_structp png_ptr, - png_infop info_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_push_have_row PNGARG((png_structp png_ptr, - png_bytep row)) PNG_PRIVATE; -PNG_EXTERN void png_push_read_end PNGARG((png_structp png_ptr, - png_infop info_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_process_some_data PNGARG((png_structp png_ptr, - png_infop info_ptr)) PNG_PRIVATE; -PNG_EXTERN void png_read_push_finish_row - PNGARG((png_structp png_ptr)) PNG_PRIVATE; -#ifdef PNG_READ_tEXt_SUPPORTED -PNG_EXTERN void png_push_handle_tEXt PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE; -PNG_EXTERN void png_push_read_tEXt PNGARG((png_structp png_ptr, - png_infop info_ptr)) PNG_PRIVATE; -#endif -#ifdef PNG_READ_zTXt_SUPPORTED -PNG_EXTERN void png_push_handle_zTXt PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE; -PNG_EXTERN void png_push_read_zTXt PNGARG((png_structp png_ptr, - png_infop info_ptr)) PNG_PRIVATE; -#endif -#ifdef PNG_READ_iTXt_SUPPORTED -PNG_EXTERN void png_push_handle_iTXt PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE; -PNG_EXTERN void png_push_read_iTXt PNGARG((png_structp png_ptr, - png_infop info_ptr)) PNG_PRIVATE; -#endif - -#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ - -#ifdef PNG_MNG_FEATURES_SUPPORTED -PNG_EXTERN void png_do_read_intrapixel PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -PNG_EXTERN void png_do_write_intrapixel PNGARG((png_row_infop row_info, - png_bytep row)) PNG_PRIVATE; -#endif - -#ifdef PNG_ASSEMBLER_CODE_SUPPORTED -#ifdef PNG_MMX_CODE_SUPPORTED -/* png.c */ /* PRIVATE */ -PNG_EXTERN void png_init_mmx_flags PNGARG((png_structp png_ptr)) PNG_PRIVATE; -#endif -#endif - - -/* The following six functions will be exported in libpng-1.4.0. */ -#if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED) -PNG_EXTERN png_uint_32 png_get_pixels_per_inch PNGARG((png_structp png_ptr, -png_infop info_ptr)); - -PNG_EXTERN png_uint_32 png_get_x_pixels_per_inch PNGARG((png_structp png_ptr, -png_infop info_ptr)); - -PNG_EXTERN png_uint_32 png_get_y_pixels_per_inch PNGARG((png_structp png_ptr, -png_infop info_ptr)); - -PNG_EXTERN float png_get_x_offset_inches PNGARG((png_structp png_ptr, -png_infop info_ptr)); - -PNG_EXTERN float png_get_y_offset_inches PNGARG((png_structp png_ptr, -png_infop info_ptr)); - -#ifdef PNG_pHYs_SUPPORTED -PNG_EXTERN png_uint_32 png_get_pHYs_dpi PNGARG((png_structp png_ptr, -png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); -#endif /* PNG_pHYs_SUPPORTED */ -#endif /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */ - -/* Read the chunk header (length + type name) */ -PNG_EXTERN png_uint_32 png_read_chunk_header - PNGARG((png_structp png_ptr)) PNG_PRIVATE; - -/* Added at libpng version 1.2.34 */ -#ifdef PNG_cHRM_SUPPORTED -PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr, - png_fixed_point int_white_x, png_fixed_point int_white_y, - png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point - int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, - png_fixed_point int_blue_y)) PNG_PRIVATE; -#endif - -#ifdef PNG_cHRM_SUPPORTED -#ifdef PNG_CHECK_cHRM_SUPPORTED -/* Added at libpng version 1.2.34 */ -PNG_EXTERN void png_64bit_product PNGARG((long v1, long v2, - unsigned long *hi_product, unsigned long *lo_product)) PNG_PRIVATE; -#endif -#endif - -/* Added at libpng version 1.2.41 */ -PNG_EXTERN void png_check_IHDR PNGARG((png_structp png_ptr, - png_uint_32 width, png_uint_32 height, int bit_depth, - int color_type, int interlace_type, int compression_type, - int filter_type)) PNG_PRIVATE; - -/* Added at libpng version 1.2.41 */ -PNG_EXTERN png_voidp png_calloc PNGARG((png_structp png_ptr, - png_uint_32 size)); - -/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */ - -#endif /* PNG_INTERNAL */ - -#ifdef __cplusplus -} -#endif - -#endif /* PNG_VERSION_INFO_ONLY */ -/* Do not put anything past this line */ -#endif /* PNG_H */ diff --git a/lib/linux/include/pngconf.h b/lib/linux/include/pngconf.h deleted file mode 100644 index 85d9b2a..0000000 --- a/lib/linux/include/pngconf.h +++ /dev/null @@ -1,1665 +0,0 @@ - -/* pngconf.h - machine configurable file for libpng - * - * libpng version 1.2.49 - March 29, 2012 - * Copyright (c) 1998-2012 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -/* Any machine specific code is near the front of this file, so if you - * are configuring libpng for a machine, you may want to read the section - * starting here down to where it starts to typedef png_color, png_text, - * and png_info. - */ - -#ifndef PNGCONF_H -#define PNGCONF_H - -#define PNG_1_2_X - -/* - * PNG_USER_CONFIG has to be defined on the compiler command line. This - * includes the resource compiler for Windows DLL configurations. - */ -#ifdef PNG_USER_CONFIG -# ifndef PNG_USER_PRIVATEBUILD -# define PNG_USER_PRIVATEBUILD -# endif -#include "pngusr.h" -#endif - -/* PNG_CONFIGURE_LIBPNG is set by the "configure" script. */ -#ifdef PNG_CONFIGURE_LIBPNG -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#endif - -/* - * Added at libpng-1.2.8 - * - * If you create a private DLL you need to define in "pngusr.h" the followings: - * #define PNG_USER_PRIVATEBUILD <Describes by whom and why this version of - * the DLL was built> - * e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons." - * #define PNG_USER_DLLFNAME_POSTFIX <two-letter postfix that serve to - * distinguish your DLL from those of the official release. These - * correspond to the trailing letters that come after the version - * number and must match your private DLL name> - * e.g. // private DLL "libpng13gx.dll" - * #define PNG_USER_DLLFNAME_POSTFIX "gx" - * - * The following macros are also at your disposal if you want to complete the - * DLL VERSIONINFO structure. - * - PNG_USER_VERSIONINFO_COMMENTS - * - PNG_USER_VERSIONINFO_COMPANYNAME - * - PNG_USER_VERSIONINFO_LEGALTRADEMARKS - */ - -#ifdef __STDC__ -#ifdef SPECIALBUILD -# pragma message("PNG_LIBPNG_SPECIALBUILD (and deprecated SPECIALBUILD)\ - are now LIBPNG reserved macros. Use PNG_USER_PRIVATEBUILD instead.") -#endif - -#ifdef PRIVATEBUILD -# pragma message("PRIVATEBUILD is deprecated.\ - Use PNG_USER_PRIVATEBUILD instead.") -# define PNG_USER_PRIVATEBUILD PRIVATEBUILD -#endif -#endif /* __STDC__ */ - -#ifndef PNG_VERSION_INFO_ONLY - -/* End of material added to libpng-1.2.8 */ - -/* Added at libpng-1.2.19, removed at libpng-1.2.20 because it caused trouble - Restored at libpng-1.2.21 */ -#if !defined(PNG_NO_WARN_UNINITIALIZED_ROW) && \ - !defined(PNG_WARN_UNINITIALIZED_ROW) -# define PNG_WARN_UNINITIALIZED_ROW 1 -#endif -/* End of material added at libpng-1.2.19/1.2.21 */ - -/* This is the size of the compression buffer, and thus the size of - * an IDAT chunk. Make this whatever size you feel is best for your - * machine. One of these will be allocated per png_struct. When this - * is full, it writes the data to the disk, and does some other - * calculations. Making this an extremely small size will slow - * the library down, but you may want to experiment to determine - * where it becomes significant, if you are concerned with memory - * usage. Note that zlib allocates at least 32Kb also. For readers, - * this describes the size of the buffer available to read the data in. - * Unless this gets smaller than the size of a row (compressed), - * it should not make much difference how big this is. - */ - -#ifndef PNG_ZBUF_SIZE -# define PNG_ZBUF_SIZE 8192 -#endif - -/* Enable if you want a write-only libpng */ - -#ifndef PNG_NO_READ_SUPPORTED -# define PNG_READ_SUPPORTED -#endif - -/* Enable if you want a read-only libpng */ - -#ifndef PNG_NO_WRITE_SUPPORTED -# define PNG_WRITE_SUPPORTED -#endif - -/* Enabled in 1.2.41. */ -#ifdef PNG_ALLOW_BENIGN_ERRORS -# define png_benign_error png_warning -# define png_chunk_benign_error png_chunk_warning -#else -# ifndef PNG_BENIGN_ERRORS_SUPPORTED -# define png_benign_error png_error -# define png_chunk_benign_error png_chunk_error -# endif -#endif - -/* Added in libpng-1.2.41 */ -#if !defined(PNG_NO_WARNINGS) && !defined(PNG_WARNINGS_SUPPORTED) -# define PNG_WARNINGS_SUPPORTED -#endif - -#if !defined(PNG_NO_ERROR_TEXT) && !defined(PNG_ERROR_TEXT_SUPPORTED) -# define PNG_ERROR_TEXT_SUPPORTED -#endif - -#if !defined(PNG_NO_CHECK_cHRM) && !defined(PNG_CHECK_cHRM_SUPPORTED) -# define PNG_CHECK_cHRM_SUPPORTED -#endif - -/* Enabled by default in 1.2.0. You can disable this if you don't need to - * support PNGs that are embedded in MNG datastreams - */ -#if !defined(PNG_1_0_X) && !defined(PNG_NO_MNG_FEATURES) -# ifndef PNG_MNG_FEATURES_SUPPORTED -# define PNG_MNG_FEATURES_SUPPORTED -# endif -#endif - -#ifndef PNG_NO_FLOATING_POINT_SUPPORTED -# ifndef PNG_FLOATING_POINT_SUPPORTED -# define PNG_FLOATING_POINT_SUPPORTED -# endif -#endif - -/* If you are running on a machine where you cannot allocate more - * than 64K of memory at once, uncomment this. While libpng will not - * normally need that much memory in a chunk (unless you load up a very - * large file), zlib needs to know how big of a chunk it can use, and - * libpng thus makes sure to check any memory allocation to verify it - * will fit into memory. -#define PNG_MAX_MALLOC_64K - */ -#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K) -# define PNG_MAX_MALLOC_64K -#endif - -/* Special munging to support doing things the 'cygwin' way: - * 'Normal' png-on-win32 defines/defaults: - * PNG_BUILD_DLL -- building dll - * PNG_USE_DLL -- building an application, linking to dll - * (no define) -- building static library, or building an - * application and linking to the static lib - * 'Cygwin' defines/defaults: - * PNG_BUILD_DLL -- (ignored) building the dll - * (no define) -- (ignored) building an application, linking to the dll - * PNG_STATIC -- (ignored) building the static lib, or building an - * application that links to the static lib. - * ALL_STATIC -- (ignored) building various static libs, or building an - * application that links to the static libs. - * Thus, - * a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and - * this bit of #ifdefs will define the 'correct' config variables based on - * that. If a cygwin user *wants* to define 'PNG_USE_DLL' that's okay, but - * unnecessary. - * - * Also, the precedence order is: - * ALL_STATIC (since we can't #undef something outside our namespace) - * PNG_BUILD_DLL - * PNG_STATIC - * (nothing) == PNG_USE_DLL - * - * CYGWIN (2002-01-20): The preceding is now obsolete. With the advent - * of auto-import in binutils, we no longer need to worry about - * __declspec(dllexport) / __declspec(dllimport) and friends. Therefore, - * we don't need to worry about PNG_STATIC or ALL_STATIC when it comes - * to __declspec() stuff. However, we DO need to worry about - * PNG_BUILD_DLL and PNG_STATIC because those change some defaults - * such as CONSOLE_IO and whether GLOBAL_ARRAYS are allowed. - */ -#ifdef __CYGWIN__ -# ifdef ALL_STATIC -# ifdef PNG_BUILD_DLL -# undef PNG_BUILD_DLL -# endif -# ifdef PNG_USE_DLL -# undef PNG_USE_DLL -# endif -# ifdef PNG_DLL -# undef PNG_DLL -# endif -# ifndef PNG_STATIC -# define PNG_STATIC -# endif -# else -# ifdef PNG_BUILD_DLL -# ifdef PNG_STATIC -# undef PNG_STATIC -# endif -# ifdef PNG_USE_DLL -# undef PNG_USE_DLL -# endif -# ifndef PNG_DLL -# define PNG_DLL -# endif -# else -# ifdef PNG_STATIC -# ifdef PNG_USE_DLL -# undef PNG_USE_DLL -# endif -# ifdef PNG_DLL -# undef PNG_DLL -# endif -# else -# ifndef PNG_USE_DLL -# define PNG_USE_DLL -# endif -# ifndef PNG_DLL -# define PNG_DLL -# endif -# endif -# endif -# endif -#endif - -/* This protects us against compilers that run on a windowing system - * and thus don't have or would rather us not use the stdio types: - * stdin, stdout, and stderr. The only one currently used is stderr - * in png_error() and png_warning(). #defining PNG_NO_CONSOLE_IO will - * prevent these from being compiled and used. #defining PNG_NO_STDIO - * will also prevent these, plus will prevent the entire set of stdio - * macros and functions (FILE *, printf, etc.) from being compiled and used, - * unless (PNG_DEBUG > 0) has been #defined. - * - * #define PNG_NO_CONSOLE_IO - * #define PNG_NO_STDIO - */ - -#if !defined(PNG_NO_STDIO) && !defined(PNG_STDIO_SUPPORTED) -# define PNG_STDIO_SUPPORTED -#endif - -#ifdef _WIN32_WCE -# include <windows.h> - /* Console I/O functions are not supported on WindowsCE */ -# define PNG_NO_CONSOLE_IO - /* abort() may not be supported on some/all Windows CE platforms */ -# define PNG_ABORT() exit(-1) -# ifdef PNG_DEBUG -# undef PNG_DEBUG -# endif -#endif - -#ifdef PNG_BUILD_DLL -# ifndef PNG_CONSOLE_IO_SUPPORTED -# ifndef PNG_NO_CONSOLE_IO -# define PNG_NO_CONSOLE_IO -# endif -# endif -#endif - -# ifdef PNG_NO_STDIO -# ifndef PNG_NO_CONSOLE_IO -# define PNG_NO_CONSOLE_IO -# endif -# ifdef PNG_DEBUG -# if (PNG_DEBUG > 0) -# include <stdio.h> -# endif -# endif -# else -# ifndef _WIN32_WCE -/* "stdio.h" functions are not supported on WindowsCE */ -# include <stdio.h> -# endif -# endif - -#if !(defined PNG_NO_CONSOLE_IO) && !defined(PNG_CONSOLE_IO_SUPPORTED) -# define PNG_CONSOLE_IO_SUPPORTED -#endif - -/* This macro protects us against machines that don't have function - * prototypes (ie K&R style headers). If your compiler does not handle - * function prototypes, define this macro and use the included ansi2knr. - * I've always been able to use _NO_PROTO as the indicator, but you may - * need to drag the empty declaration out in front of here, or change the - * ifdef to suit your own needs. - */ -#ifndef PNGARG - -#ifdef OF /* zlib prototype munger */ -# define PNGARG(arglist) OF(arglist) -#else - -#ifdef _NO_PROTO -# define PNGARG(arglist) () -# ifndef PNG_TYPECAST_NULL -# define PNG_TYPECAST_NULL -# endif -#else -# define PNGARG(arglist) arglist -#endif /* _NO_PROTO */ - - -#endif /* OF */ - -#endif /* PNGARG */ - -/* Try to determine if we are compiling on a Mac. Note that testing for - * just __MWERKS__ is not good enough, because the Codewarrior is now used - * on non-Mac platforms. - */ -#ifndef MACOS -# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \ - defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC) -# define MACOS -# endif -#endif - -/* enough people need this for various reasons to include it here */ -#if !defined(MACOS) && !defined(RISCOS) && !defined(_WIN32_WCE) -# include <sys/types.h> -#endif - -#if !defined(PNG_SETJMP_NOT_SUPPORTED) && !defined(PNG_NO_SETJMP_SUPPORTED) -# define PNG_SETJMP_SUPPORTED -#endif - -#ifdef PNG_SETJMP_SUPPORTED -/* This is an attempt to force a single setjmp behaviour on Linux. If - * the X config stuff didn't define _BSD_SOURCE we wouldn't need this. - * - * You can bypass this test if you know that your application uses exactly - * the same setjmp.h that was included when libpng was built. Only define - * PNG_SKIP_SETJMP_CHECK while building your application, prior to the - * application's '#include "png.h"'. Don't define PNG_SKIP_SETJMP_CHECK - * while building a separate libpng library for general use. - */ - -# ifndef PNG_SKIP_SETJMP_CHECK -# ifdef __linux__ -# ifdef _BSD_SOURCE -# define PNG_SAVE_BSD_SOURCE -# undef _BSD_SOURCE -# endif -# ifdef _SETJMP_H - /* If you encounter a compiler error here, see the explanation - * near the end of INSTALL. - */ - __pngconf.h__ in libpng already includes setjmp.h; - __dont__ include it again.; -# endif -# endif /* __linux__ */ -# endif /* PNG_SKIP_SETJMP_CHECK */ - - /* include setjmp.h for error handling */ -# include <setjmp.h> - -# ifdef __linux__ -# ifdef PNG_SAVE_BSD_SOURCE -# ifndef _BSD_SOURCE -# define _BSD_SOURCE -# endif -# undef PNG_SAVE_BSD_SOURCE -# endif -# endif /* __linux__ */ -#endif /* PNG_SETJMP_SUPPORTED */ - -#ifdef BSD -# include <strings.h> -#else -# include <string.h> -#endif - -/* Other defines for things like memory and the like can go here. */ -#ifdef PNG_INTERNAL - -#include <stdlib.h> - -/* The functions exported by PNG_EXTERN are PNG_INTERNAL functions, which - * aren't usually used outside the library (as far as I know), so it is - * debatable if they should be exported at all. In the future, when it is - * possible to have run-time registry of chunk-handling functions, some of - * these will be made available again. -#define PNG_EXTERN extern - */ -#define PNG_EXTERN - -/* Other defines specific to compilers can go here. Try to keep - * them inside an appropriate ifdef/endif pair for portability. - */ - -#ifdef PNG_FLOATING_POINT_SUPPORTED -# ifdef MACOS - /* We need to check that <math.h> hasn't already been included earlier - * as it seems it doesn't agree with <fp.h>, yet we should really use - * <fp.h> if possible. - */ -# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__) -# include <fp.h> -# endif -# else -# include <math.h> -# endif -# if defined(_AMIGA) && defined(__SASC) && defined(_M68881) - /* Amiga SAS/C: We must include builtin FPU functions when compiling using - * MATH=68881 - */ -# include <m68881.h> -# endif -#endif - -/* Codewarrior on NT has linking problems without this. */ -#if (defined(__MWERKS__) && defined(WIN32)) || defined(__STDC__) -# define PNG_ALWAYS_EXTERN -#endif - -/* This provides the non-ANSI (far) memory allocation routines. */ -#if defined(__TURBOC__) && defined(__MSDOS__) -# include <mem.h> -# include <alloc.h> -#endif - -/* I have no idea why is this necessary... */ -#if defined(_MSC_VER) && (defined(WIN32) || defined(_Windows) || \ - defined(_WINDOWS) || defined(_WIN32) || defined(__WIN32__)) -# include <malloc.h> -#endif - -/* This controls how fine the dithering gets. As this allocates - * a largish chunk of memory (32K), those who are not as concerned - * with dithering quality can decrease some or all of these. - */ -#ifndef PNG_DITHER_RED_BITS -# define PNG_DITHER_RED_BITS 5 -#endif -#ifndef PNG_DITHER_GREEN_BITS -# define PNG_DITHER_GREEN_BITS 5 -#endif -#ifndef PNG_DITHER_BLUE_BITS -# define PNG_DITHER_BLUE_BITS 5 -#endif - -/* This controls how fine the gamma correction becomes when you - * are only interested in 8 bits anyway. Increasing this value - * results in more memory being used, and more pow() functions - * being called to fill in the gamma tables. Don't set this value - * less then 8, and even that may not work (I haven't tested it). - */ - -#ifndef PNG_MAX_GAMMA_8 -# define PNG_MAX_GAMMA_8 11 -#endif - -/* This controls how much a difference in gamma we can tolerate before - * we actually start doing gamma conversion. - */ -#ifndef PNG_GAMMA_THRESHOLD -# define PNG_GAMMA_THRESHOLD 0.05 -#endif - -#endif /* PNG_INTERNAL */ - -/* The following uses const char * instead of char * for error - * and warning message functions, so some compilers won't complain. - * If you do not want to use const, define PNG_NO_CONST here. - */ - -#ifndef PNG_NO_CONST -# define PNG_CONST const -#else -# define PNG_CONST -#endif - -/* The following defines give you the ability to remove code from the - * library that you will not be using. I wish I could figure out how to - * automate this, but I can't do that without making it seriously hard - * on the users. So if you are not using an ability, change the #define - * to and #undef, and that part of the library will not be compiled. If - * your linker can't find a function, you may want to make sure the - * ability is defined here. Some of these depend upon some others being - * defined. I haven't figured out all the interactions here, so you may - * have to experiment awhile to get everything to compile. If you are - * creating or using a shared library, you probably shouldn't touch this, - * as it will affect the size of the structures, and this will cause bad - * things to happen if the library and/or application ever change. - */ - -/* Any features you will not be using can be undef'ed here */ - -/* GR-P, 0.96a: Set "*TRANSFORMS_SUPPORTED as default but allow user - * to turn it off with "*TRANSFORMS_NOT_SUPPORTED" or *PNG_NO_*_TRANSFORMS - * on the compile line, then pick and choose which ones to define without - * having to edit this file. It is safe to use the *TRANSFORMS_NOT_SUPPORTED - * if you only want to have a png-compliant reader/writer but don't need - * any of the extra transformations. This saves about 80 kbytes in a - * typical installation of the library. (PNG_NO_* form added in version - * 1.0.1c, for consistency) - */ - -/* The size of the png_text structure changed in libpng-1.0.6 when - * iTXt support was added. iTXt support was turned off by default through - * libpng-1.2.x, to support old apps that malloc the png_text structure - * instead of calling png_set_text() and letting libpng malloc it. It - * will be turned on by default in libpng-1.4.0. - */ - -#if defined(PNG_1_0_X) || defined (PNG_1_2_X) -# ifndef PNG_NO_iTXt_SUPPORTED -# define PNG_NO_iTXt_SUPPORTED -# endif -# ifndef PNG_NO_READ_iTXt -# define PNG_NO_READ_iTXt -# endif -# ifndef PNG_NO_WRITE_iTXt -# define PNG_NO_WRITE_iTXt -# endif -#endif - -#if !defined(PNG_NO_iTXt_SUPPORTED) -# if !defined(PNG_READ_iTXt_SUPPORTED) && !defined(PNG_NO_READ_iTXt) -# define PNG_READ_iTXt -# endif -# if !defined(PNG_WRITE_iTXt_SUPPORTED) && !defined(PNG_NO_WRITE_iTXt) -# define PNG_WRITE_iTXt -# endif -#endif - -/* The following support, added after version 1.0.0, can be turned off here en - * masse by defining PNG_LEGACY_SUPPORTED in case you need binary compatibility - * with old applications that require the length of png_struct and png_info - * to remain unchanged. - */ - -#ifdef PNG_LEGACY_SUPPORTED -# define PNG_NO_FREE_ME -# define PNG_NO_READ_UNKNOWN_CHUNKS -# define PNG_NO_WRITE_UNKNOWN_CHUNKS -# define PNG_NO_HANDLE_AS_UNKNOWN -# define PNG_NO_READ_USER_CHUNKS -# define PNG_NO_READ_iCCP -# define PNG_NO_WRITE_iCCP -# define PNG_NO_READ_iTXt -# define PNG_NO_WRITE_iTXt -# define PNG_NO_READ_sCAL -# define PNG_NO_WRITE_sCAL -# define PNG_NO_READ_sPLT -# define PNG_NO_WRITE_sPLT -# define PNG_NO_INFO_IMAGE -# define PNG_NO_READ_RGB_TO_GRAY -# define PNG_NO_READ_USER_TRANSFORM -# define PNG_NO_WRITE_USER_TRANSFORM -# define PNG_NO_USER_MEM -# define PNG_NO_READ_EMPTY_PLTE -# define PNG_NO_MNG_FEATURES -# define PNG_NO_FIXED_POINT_SUPPORTED -#endif - -/* Ignore attempt to turn off both floating and fixed point support */ -#if !defined(PNG_FLOATING_POINT_SUPPORTED) || \ - !defined(PNG_NO_FIXED_POINT_SUPPORTED) -# define PNG_FIXED_POINT_SUPPORTED -#endif - -#ifndef PNG_NO_FREE_ME -# define PNG_FREE_ME_SUPPORTED -#endif - -#ifdef PNG_READ_SUPPORTED - -#if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \ - !defined(PNG_NO_READ_TRANSFORMS) -# define PNG_READ_TRANSFORMS_SUPPORTED -#endif - -#ifdef PNG_READ_TRANSFORMS_SUPPORTED -# ifndef PNG_NO_READ_EXPAND -# define PNG_READ_EXPAND_SUPPORTED -# endif -# ifndef PNG_NO_READ_SHIFT -# define PNG_READ_SHIFT_SUPPORTED -# endif -# ifndef PNG_NO_READ_PACK -# define PNG_READ_PACK_SUPPORTED -# endif -# ifndef PNG_NO_READ_BGR -# define PNG_READ_BGR_SUPPORTED -# endif -# ifndef PNG_NO_READ_SWAP -# define PNG_READ_SWAP_SUPPORTED -# endif -# ifndef PNG_NO_READ_PACKSWAP -# define PNG_READ_PACKSWAP_SUPPORTED -# endif -# ifndef PNG_NO_READ_INVERT -# define PNG_READ_INVERT_SUPPORTED -# endif -# ifndef PNG_NO_READ_DITHER -# define PNG_READ_DITHER_SUPPORTED -# endif -# ifndef PNG_NO_READ_BACKGROUND -# define PNG_READ_BACKGROUND_SUPPORTED -# endif -# ifndef PNG_NO_READ_16_TO_8 -# define PNG_READ_16_TO_8_SUPPORTED -# endif -# ifndef PNG_NO_READ_FILLER -# define PNG_READ_FILLER_SUPPORTED -# endif -# ifndef PNG_NO_READ_GAMMA -# define PNG_READ_GAMMA_SUPPORTED -# endif -# ifndef PNG_NO_READ_GRAY_TO_RGB -# define PNG_READ_GRAY_TO_RGB_SUPPORTED -# endif -# ifndef PNG_NO_READ_SWAP_ALPHA -# define PNG_READ_SWAP_ALPHA_SUPPORTED -# endif -# ifndef PNG_NO_READ_INVERT_ALPHA -# define PNG_READ_INVERT_ALPHA_SUPPORTED -# endif -# ifndef PNG_NO_READ_STRIP_ALPHA -# define PNG_READ_STRIP_ALPHA_SUPPORTED -# endif -# ifndef PNG_NO_READ_USER_TRANSFORM -# define PNG_READ_USER_TRANSFORM_SUPPORTED -# endif -# ifndef PNG_NO_READ_RGB_TO_GRAY -# define PNG_READ_RGB_TO_GRAY_SUPPORTED -# endif -#endif /* PNG_READ_TRANSFORMS_SUPPORTED */ - -/* PNG_PROGRESSIVE_READ_NOT_SUPPORTED is deprecated. */ -#if !defined(PNG_NO_PROGRESSIVE_READ) && \ - !defined(PNG_PROGRESSIVE_READ_NOT_SUPPORTED) /* if you don't do progressive */ -# define PNG_PROGRESSIVE_READ_SUPPORTED /* reading. This is not talking */ -#endif /* about interlacing capability! You'll */ - /* still have interlacing unless you change the following define: */ -#define PNG_READ_INTERLACING_SUPPORTED /* required for PNG-compliant decoders */ - -/* PNG_NO_SEQUENTIAL_READ_SUPPORTED is deprecated. */ -#if !defined(PNG_NO_SEQUENTIAL_READ) && \ - !defined(PNG_SEQUENTIAL_READ_SUPPORTED) && \ - !defined(PNG_NO_SEQUENTIAL_READ_SUPPORTED) -# define PNG_SEQUENTIAL_READ_SUPPORTED -#endif - -#define PNG_READ_INTERLACING_SUPPORTED /* required in PNG-compliant decoders */ - -#ifndef PNG_NO_READ_COMPOSITE_NODIV -# ifndef PNG_NO_READ_COMPOSITED_NODIV /* libpng-1.0.x misspelling */ -# define PNG_READ_COMPOSITE_NODIV_SUPPORTED /* well tested on Intel, SGI */ -# endif -#endif - -#if defined(PNG_1_0_X) || defined (PNG_1_2_X) -/* Deprecated, will be removed from version 2.0.0. - Use PNG_MNG_FEATURES_SUPPORTED instead. */ -#ifndef PNG_NO_READ_EMPTY_PLTE -# define PNG_READ_EMPTY_PLTE_SUPPORTED -#endif -#endif - -#endif /* PNG_READ_SUPPORTED */ - -#ifdef PNG_WRITE_SUPPORTED - -# if !defined(PNG_WRITE_TRANSFORMS_NOT_SUPPORTED) && \ - !defined(PNG_NO_WRITE_TRANSFORMS) -# define PNG_WRITE_TRANSFORMS_SUPPORTED -#endif - -#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED -# ifndef PNG_NO_WRITE_SHIFT -# define PNG_WRITE_SHIFT_SUPPORTED -# endif -# ifndef PNG_NO_WRITE_PACK -# define PNG_WRITE_PACK_SUPPORTED -# endif -# ifndef PNG_NO_WRITE_BGR -# define PNG_WRITE_BGR_SUPPORTED -# endif -# ifndef PNG_NO_WRITE_SWAP -# define PNG_WRITE_SWAP_SUPPORTED -# endif -# ifndef PNG_NO_WRITE_PACKSWAP -# define PNG_WRITE_PACKSWAP_SUPPORTED -# endif -# ifndef PNG_NO_WRITE_INVERT -# define PNG_WRITE_INVERT_SUPPORTED -# endif -# ifndef PNG_NO_WRITE_FILLER -# define PNG_WRITE_FILLER_SUPPORTED /* same as WRITE_STRIP_ALPHA */ -# endif -# ifndef PNG_NO_WRITE_SWAP_ALPHA -# define PNG_WRITE_SWAP_ALPHA_SUPPORTED -# endif -#ifndef PNG_1_0_X -# ifndef PNG_NO_WRITE_INVERT_ALPHA -# define PNG_WRITE_INVERT_ALPHA_SUPPORTED -# endif -#endif -# ifndef PNG_NO_WRITE_USER_TRANSFORM -# define PNG_WRITE_USER_TRANSFORM_SUPPORTED -# endif -#endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */ - -#if !defined(PNG_NO_WRITE_INTERLACING_SUPPORTED) && \ - !defined(PNG_WRITE_INTERLACING_SUPPORTED) -#define PNG_WRITE_INTERLACING_SUPPORTED /* not required for PNG-compliant - encoders, but can cause trouble - if left undefined */ -#endif - -#if !defined(PNG_NO_WRITE_WEIGHTED_FILTER) && \ - !defined(PNG_WRITE_WEIGHTED_FILTER) && \ - defined(PNG_FLOATING_POINT_SUPPORTED) -# define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED -#endif - -#ifndef PNG_NO_WRITE_FLUSH -# define PNG_WRITE_FLUSH_SUPPORTED -#endif - -#if defined(PNG_1_0_X) || defined (PNG_1_2_X) -/* Deprecated, see PNG_MNG_FEATURES_SUPPORTED, above */ -#ifndef PNG_NO_WRITE_EMPTY_PLTE -# define PNG_WRITE_EMPTY_PLTE_SUPPORTED -#endif -#endif - -#endif /* PNG_WRITE_SUPPORTED */ - -#ifndef PNG_1_0_X -# ifndef PNG_NO_ERROR_NUMBERS -# define PNG_ERROR_NUMBERS_SUPPORTED -# endif -#endif /* PNG_1_0_X */ - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) -# ifndef PNG_NO_USER_TRANSFORM_PTR -# define PNG_USER_TRANSFORM_PTR_SUPPORTED -# endif -#endif - -#ifndef PNG_NO_STDIO -# define PNG_TIME_RFC1123_SUPPORTED -#endif - -/* This adds extra functions in pngget.c for accessing data from the - * info pointer (added in version 0.99) - * png_get_image_width() - * png_get_image_height() - * png_get_bit_depth() - * png_get_color_type() - * png_get_compression_type() - * png_get_filter_type() - * png_get_interlace_type() - * png_get_pixel_aspect_ratio() - * png_get_pixels_per_meter() - * png_get_x_offset_pixels() - * png_get_y_offset_pixels() - * png_get_x_offset_microns() - * png_get_y_offset_microns() - */ -#if !defined(PNG_NO_EASY_ACCESS) && !defined(PNG_EASY_ACCESS_SUPPORTED) -# define PNG_EASY_ACCESS_SUPPORTED -#endif - -/* PNG_ASSEMBLER_CODE was enabled by default in version 1.2.0 - * and removed from version 1.2.20. The following will be removed - * from libpng-1.4.0 -*/ - -#if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_OPTIMIZED_CODE) -# ifndef PNG_OPTIMIZED_CODE_SUPPORTED -# define PNG_OPTIMIZED_CODE_SUPPORTED -# endif -#endif - -#if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_ASSEMBLER_CODE) -# ifndef PNG_ASSEMBLER_CODE_SUPPORTED -# define PNG_ASSEMBLER_CODE_SUPPORTED -# endif - -# if defined(__GNUC__) && defined(__x86_64__) && (__GNUC__ < 4) - /* work around 64-bit gcc compiler bugs in gcc-3.x */ -# if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) -# define PNG_NO_MMX_CODE -# endif -# endif - -# ifdef __APPLE__ -# if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) -# define PNG_NO_MMX_CODE -# endif -# endif - -# if (defined(__MWERKS__) && ((__MWERKS__ < 0x0900) || macintosh)) -# if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) -# define PNG_NO_MMX_CODE -# endif -# endif - -# if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) -# define PNG_MMX_CODE_SUPPORTED -# endif - -#endif -/* end of obsolete code to be removed from libpng-1.4.0 */ - -/* Added at libpng-1.2.0 */ -#ifndef PNG_1_0_X -#if !defined(PNG_NO_USER_MEM) && !defined(PNG_USER_MEM_SUPPORTED) -# define PNG_USER_MEM_SUPPORTED -#endif -#endif /* PNG_1_0_X */ - -/* Added at libpng-1.2.6 */ -#ifndef PNG_1_0_X -# ifndef PNG_SET_USER_LIMITS_SUPPORTED -# ifndef PNG_NO_SET_USER_LIMITS -# define PNG_SET_USER_LIMITS_SUPPORTED -# endif -# endif -#endif /* PNG_1_0_X */ - -/* Added at libpng-1.0.53 and 1.2.43 */ -#ifndef PNG_USER_LIMITS_SUPPORTED -# ifndef PNG_NO_USER_LIMITS -# define PNG_USER_LIMITS_SUPPORTED -# endif -#endif - -/* Added at libpng-1.0.16 and 1.2.6. To accept all valid PNGS no matter - * how large, set these limits to 0x7fffffffL - */ -#ifndef PNG_USER_WIDTH_MAX -# define PNG_USER_WIDTH_MAX 1000000L -#endif -#ifndef PNG_USER_HEIGHT_MAX -# define PNG_USER_HEIGHT_MAX 1000000L -#endif - -/* Added at libpng-1.2.43. To accept all valid PNGs no matter - * how large, set these two limits to 0. - */ -#ifndef PNG_USER_CHUNK_CACHE_MAX -# define PNG_USER_CHUNK_CACHE_MAX 0 -#endif - -/* Added at libpng-1.2.43 */ -#ifndef PNG_USER_CHUNK_MALLOC_MAX -# define PNG_USER_CHUNK_MALLOC_MAX 0 -#endif - -#ifndef PNG_LITERAL_SHARP -# define PNG_LITERAL_SHARP 0x23 -#endif -#ifndef PNG_LITERAL_LEFT_SQUARE_BRACKET -# define PNG_LITERAL_LEFT_SQUARE_BRACKET 0x5b -#endif -#ifndef PNG_LITERAL_RIGHT_SQUARE_BRACKET -# define PNG_LITERAL_RIGHT_SQUARE_BRACKET 0x5d -#endif - -/* Added at libpng-1.2.34 */ -#ifndef PNG_STRING_NEWLINE -#define PNG_STRING_NEWLINE "\n" -#endif - -/* These are currently experimental features, define them if you want */ - -/* very little testing */ -/* -#ifdef PNG_READ_SUPPORTED -# ifndef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED -# define PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED -# endif -#endif -*/ - -/* This is only for PowerPC big-endian and 680x0 systems */ -/* some testing */ -/* -#ifndef PNG_READ_BIG_ENDIAN_SUPPORTED -# define PNG_READ_BIG_ENDIAN_SUPPORTED -#endif -*/ - -/* Buggy compilers (e.g., gcc 2.7.2.2) need this */ -/* -#define PNG_NO_POINTER_INDEXING -*/ - -#if !defined(PNG_NO_POINTER_INDEXING) && \ - !defined(PNG_POINTER_INDEXING_SUPPORTED) -# define PNG_POINTER_INDEXING_SUPPORTED -#endif - -/* These functions are turned off by default, as they will be phased out. */ -/* -#define PNG_USELESS_TESTS_SUPPORTED -#define PNG_CORRECT_PALETTE_SUPPORTED -*/ - -/* Any chunks you are not interested in, you can undef here. The - * ones that allocate memory may be expecially important (hIST, - * tEXt, zTXt, tRNS, pCAL). Others will just save time and make png_info - * a bit smaller. - */ - -#if defined(PNG_READ_SUPPORTED) && \ - !defined(PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \ - !defined(PNG_NO_READ_ANCILLARY_CHUNKS) -# define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED -#endif - -#if defined(PNG_WRITE_SUPPORTED) && \ - !defined(PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \ - !defined(PNG_NO_WRITE_ANCILLARY_CHUNKS) -# define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED -#endif - -#ifdef PNG_READ_ANCILLARY_CHUNKS_SUPPORTED - -#ifdef PNG_NO_READ_TEXT -# define PNG_NO_READ_iTXt -# define PNG_NO_READ_tEXt -# define PNG_NO_READ_zTXt -#endif -#ifndef PNG_NO_READ_bKGD -# define PNG_READ_bKGD_SUPPORTED -# define PNG_bKGD_SUPPORTED -#endif -#ifndef PNG_NO_READ_cHRM -# define PNG_READ_cHRM_SUPPORTED -# define PNG_cHRM_SUPPORTED -#endif -#ifndef PNG_NO_READ_gAMA -# define PNG_READ_gAMA_SUPPORTED -# define PNG_gAMA_SUPPORTED -#endif -#ifndef PNG_NO_READ_hIST -# define PNG_READ_hIST_SUPPORTED -# define PNG_hIST_SUPPORTED -#endif -#ifndef PNG_NO_READ_iCCP -# define PNG_READ_iCCP_SUPPORTED -# define PNG_iCCP_SUPPORTED -#endif -#ifndef PNG_NO_READ_iTXt -# ifndef PNG_READ_iTXt_SUPPORTED -# define PNG_READ_iTXt_SUPPORTED -# endif -# ifndef PNG_iTXt_SUPPORTED -# define PNG_iTXt_SUPPORTED -# endif -#endif -#ifndef PNG_NO_READ_oFFs -# define PNG_READ_oFFs_SUPPORTED -# define PNG_oFFs_SUPPORTED -#endif -#ifndef PNG_NO_READ_pCAL -# define PNG_READ_pCAL_SUPPORTED -# define PNG_pCAL_SUPPORTED -#endif -#ifndef PNG_NO_READ_sCAL -# define PNG_READ_sCAL_SUPPORTED -# define PNG_sCAL_SUPPORTED -#endif -#ifndef PNG_NO_READ_pHYs -# define PNG_READ_pHYs_SUPPORTED -# define PNG_pHYs_SUPPORTED -#endif -#ifndef PNG_NO_READ_sBIT -# define PNG_READ_sBIT_SUPPORTED -# define PNG_sBIT_SUPPORTED -#endif -#ifndef PNG_NO_READ_sPLT -# define PNG_READ_sPLT_SUPPORTED -# define PNG_sPLT_SUPPORTED -#endif -#ifndef PNG_NO_READ_sRGB -# define PNG_READ_sRGB_SUPPORTED -# define PNG_sRGB_SUPPORTED -#endif -#ifndef PNG_NO_READ_tEXt -# define PNG_READ_tEXt_SUPPORTED -# define PNG_tEXt_SUPPORTED -#endif -#ifndef PNG_NO_READ_tIME -# define PNG_READ_tIME_SUPPORTED -# define PNG_tIME_SUPPORTED -#endif -#ifndef PNG_NO_READ_tRNS -# define PNG_READ_tRNS_SUPPORTED -# define PNG_tRNS_SUPPORTED -#endif -#ifndef PNG_NO_READ_zTXt -# define PNG_READ_zTXt_SUPPORTED -# define PNG_zTXt_SUPPORTED -#endif -#ifndef PNG_NO_READ_OPT_PLTE -# define PNG_READ_OPT_PLTE_SUPPORTED /* only affects support of the */ -#endif /* optional PLTE chunk in RGB and RGBA images */ -#if defined(PNG_READ_iTXt_SUPPORTED) || defined(PNG_READ_tEXt_SUPPORTED) || \ - defined(PNG_READ_zTXt_SUPPORTED) -# define PNG_READ_TEXT_SUPPORTED -# define PNG_TEXT_SUPPORTED -#endif - -#endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */ - -#ifndef PNG_NO_READ_UNKNOWN_CHUNKS -# define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED -# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED -# define PNG_UNKNOWN_CHUNKS_SUPPORTED -# endif -#endif -#if !defined(PNG_NO_READ_USER_CHUNKS) && \ - defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) -# define PNG_READ_USER_CHUNKS_SUPPORTED -# define PNG_USER_CHUNKS_SUPPORTED -# ifdef PNG_NO_READ_UNKNOWN_CHUNKS -# undef PNG_NO_READ_UNKNOWN_CHUNKS -# endif -# ifdef PNG_NO_HANDLE_AS_UNKNOWN -# undef PNG_NO_HANDLE_AS_UNKNOWN -# endif -#endif - -#ifndef PNG_NO_HANDLE_AS_UNKNOWN -# ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED -# define PNG_HANDLE_AS_UNKNOWN_SUPPORTED -# endif -#endif - -#ifdef PNG_WRITE_SUPPORTED -#ifdef PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED - -#ifdef PNG_NO_WRITE_TEXT -# define PNG_NO_WRITE_iTXt -# define PNG_NO_WRITE_tEXt -# define PNG_NO_WRITE_zTXt -#endif -#ifndef PNG_NO_WRITE_bKGD -# define PNG_WRITE_bKGD_SUPPORTED -# ifndef PNG_bKGD_SUPPORTED -# define PNG_bKGD_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_cHRM -# define PNG_WRITE_cHRM_SUPPORTED -# ifndef PNG_cHRM_SUPPORTED -# define PNG_cHRM_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_gAMA -# define PNG_WRITE_gAMA_SUPPORTED -# ifndef PNG_gAMA_SUPPORTED -# define PNG_gAMA_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_hIST -# define PNG_WRITE_hIST_SUPPORTED -# ifndef PNG_hIST_SUPPORTED -# define PNG_hIST_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_iCCP -# define PNG_WRITE_iCCP_SUPPORTED -# ifndef PNG_iCCP_SUPPORTED -# define PNG_iCCP_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_iTXt -# ifndef PNG_WRITE_iTXt_SUPPORTED -# define PNG_WRITE_iTXt_SUPPORTED -# endif -# ifndef PNG_iTXt_SUPPORTED -# define PNG_iTXt_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_oFFs -# define PNG_WRITE_oFFs_SUPPORTED -# ifndef PNG_oFFs_SUPPORTED -# define PNG_oFFs_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_pCAL -# define PNG_WRITE_pCAL_SUPPORTED -# ifndef PNG_pCAL_SUPPORTED -# define PNG_pCAL_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_sCAL -# define PNG_WRITE_sCAL_SUPPORTED -# ifndef PNG_sCAL_SUPPORTED -# define PNG_sCAL_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_pHYs -# define PNG_WRITE_pHYs_SUPPORTED -# ifndef PNG_pHYs_SUPPORTED -# define PNG_pHYs_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_sBIT -# define PNG_WRITE_sBIT_SUPPORTED -# ifndef PNG_sBIT_SUPPORTED -# define PNG_sBIT_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_sPLT -# define PNG_WRITE_sPLT_SUPPORTED -# ifndef PNG_sPLT_SUPPORTED -# define PNG_sPLT_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_sRGB -# define PNG_WRITE_sRGB_SUPPORTED -# ifndef PNG_sRGB_SUPPORTED -# define PNG_sRGB_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_tEXt -# define PNG_WRITE_tEXt_SUPPORTED -# ifndef PNG_tEXt_SUPPORTED -# define PNG_tEXt_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_tIME -# define PNG_WRITE_tIME_SUPPORTED -# ifndef PNG_tIME_SUPPORTED -# define PNG_tIME_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_tRNS -# define PNG_WRITE_tRNS_SUPPORTED -# ifndef PNG_tRNS_SUPPORTED -# define PNG_tRNS_SUPPORTED -# endif -#endif -#ifndef PNG_NO_WRITE_zTXt -# define PNG_WRITE_zTXt_SUPPORTED -# ifndef PNG_zTXt_SUPPORTED -# define PNG_zTXt_SUPPORTED -# endif -#endif -#if defined(PNG_WRITE_iTXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \ - defined(PNG_WRITE_zTXt_SUPPORTED) -# define PNG_WRITE_TEXT_SUPPORTED -# ifndef PNG_TEXT_SUPPORTED -# define PNG_TEXT_SUPPORTED -# endif -#endif - -#ifdef PNG_WRITE_tIME_SUPPORTED -# ifndef PNG_NO_CONVERT_tIME -# ifndef _WIN32_WCE -/* The "tm" structure is not supported on WindowsCE */ -# ifndef PNG_CONVERT_tIME_SUPPORTED -# define PNG_CONVERT_tIME_SUPPORTED -# endif -# endif -# endif -#endif - -#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */ - -#if !defined(PNG_NO_WRITE_FILTER) && !defined(PNG_WRITE_FILTER_SUPPORTED) -# define PNG_WRITE_FILTER_SUPPORTED -#endif - -#ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS -# define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED -# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED -# define PNG_UNKNOWN_CHUNKS_SUPPORTED -# endif -#endif - -#ifndef PNG_NO_HANDLE_AS_UNKNOWN -# ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED -# define PNG_HANDLE_AS_UNKNOWN_SUPPORTED -# endif -#endif -#endif /* PNG_WRITE_SUPPORTED */ - -/* Turn this off to disable png_read_png() and - * png_write_png() and leave the row_pointers member - * out of the info structure. - */ -#ifndef PNG_NO_INFO_IMAGE -# define PNG_INFO_IMAGE_SUPPORTED -#endif - -/* Need the time information for converting tIME chunks */ -#ifdef PNG_CONVERT_tIME_SUPPORTED - /* "time.h" functions are not supported on WindowsCE */ -# include <time.h> -#endif - -/* Some typedefs to get us started. These should be safe on most of the - * common platforms. The typedefs should be at least as large as the - * numbers suggest (a png_uint_32 must be at least 32 bits long), but they - * don't have to be exactly that size. Some compilers dislike passing - * unsigned shorts as function parameters, so you may be better off using - * unsigned int for png_uint_16. Likewise, for 64-bit systems, you may - * want to have unsigned int for png_uint_32 instead of unsigned long. - */ - -typedef unsigned long png_uint_32; -typedef long png_int_32; -typedef unsigned short png_uint_16; -typedef short png_int_16; -typedef unsigned char png_byte; - -/* This is usually size_t. It is typedef'ed just in case you need it to - change (I'm not sure if you will or not, so I thought I'd be safe) */ -#ifdef PNG_SIZE_T - typedef PNG_SIZE_T png_size_t; -# define png_sizeof(x) png_convert_size(sizeof(x)) -#else - typedef size_t png_size_t; -# define png_sizeof(x) sizeof(x) -#endif - -/* The following is needed for medium model support. It cannot be in the - * PNG_INTERNAL section. Needs modification for other compilers besides - * MSC. Model independent support declares all arrays and pointers to be - * large using the far keyword. The zlib version used must also support - * model independent data. As of version zlib 1.0.4, the necessary changes - * have been made in zlib. The USE_FAR_KEYWORD define triggers other - * changes that are needed. (Tim Wegner) - */ - -/* Separate compiler dependencies (problem here is that zlib.h always - defines FAR. (SJT) */ -#ifdef __BORLANDC__ -# if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__) -# define LDATA 1 -# else -# define LDATA 0 -# endif - /* GRR: why is Cygwin in here? Cygwin is not Borland C... */ -# if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__) -# define PNG_MAX_MALLOC_64K -# if (LDATA != 1) -# ifndef FAR -# define FAR __far -# endif -# define USE_FAR_KEYWORD -# endif /* LDATA != 1 */ - /* Possibly useful for moving data out of default segment. - * Uncomment it if you want. Could also define FARDATA as - * const if your compiler supports it. (SJT) -# define FARDATA FAR - */ -# endif /* __WIN32__, __FLAT__, __CYGWIN__ */ -#endif /* __BORLANDC__ */ - - -/* Suggest testing for specific compiler first before testing for - * FAR. The Watcom compiler defines both __MEDIUM__ and M_I86MM, - * making reliance oncertain keywords suspect. (SJT) - */ - -/* MSC Medium model */ -#ifdef FAR -# ifdef M_I86MM -# define USE_FAR_KEYWORD -# define FARDATA FAR -# include <dos.h> -# endif -#endif - -/* SJT: default case */ -#ifndef FAR -# define FAR -#endif - -/* At this point FAR is always defined */ -#ifndef FARDATA -# define FARDATA -#endif - -/* Typedef for floating-point numbers that are converted - to fixed-point with a multiple of 100,000, e.g., int_gamma */ -typedef png_int_32 png_fixed_point; - -/* Add typedefs for pointers */ -typedef void FAR * png_voidp; -typedef png_byte FAR * png_bytep; -typedef png_uint_32 FAR * png_uint_32p; -typedef png_int_32 FAR * png_int_32p; -typedef png_uint_16 FAR * png_uint_16p; -typedef png_int_16 FAR * png_int_16p; -typedef PNG_CONST char FAR * png_const_charp; -typedef char FAR * png_charp; -typedef png_fixed_point FAR * png_fixed_point_p; - -#ifndef PNG_NO_STDIO -#ifdef _WIN32_WCE -typedef HANDLE png_FILE_p; -#else -typedef FILE * png_FILE_p; -#endif -#endif - -#ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double FAR * png_doublep; -#endif - -/* Pointers to pointers; i.e. arrays */ -typedef png_byte FAR * FAR * png_bytepp; -typedef png_uint_32 FAR * FAR * png_uint_32pp; -typedef png_int_32 FAR * FAR * png_int_32pp; -typedef png_uint_16 FAR * FAR * png_uint_16pp; -typedef png_int_16 FAR * FAR * png_int_16pp; -typedef PNG_CONST char FAR * FAR * png_const_charpp; -typedef char FAR * FAR * png_charpp; -typedef png_fixed_point FAR * FAR * png_fixed_point_pp; -#ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double FAR * FAR * png_doublepp; -#endif - -/* Pointers to pointers to pointers; i.e., pointer to array */ -typedef char FAR * FAR * FAR * png_charppp; - -#if defined(PNG_1_0_X) || defined(PNG_1_2_X) -/* SPC - Is this stuff deprecated? */ -/* It'll be removed as of libpng-1.4.0 - GR-P */ -/* libpng typedefs for types in zlib. If zlib changes - * or another compression library is used, then change these. - * Eliminates need to change all the source files. - */ -typedef charf * png_zcharp; -typedef charf * FAR * png_zcharpp; -typedef z_stream FAR * png_zstreamp; -#endif /* (PNG_1_0_X) || defined(PNG_1_2_X) */ - -/* - * Define PNG_BUILD_DLL if the module being built is a Windows - * LIBPNG DLL. - * - * Define PNG_USE_DLL if you want to *link* to the Windows LIBPNG DLL. - * It is equivalent to Microsoft predefined macro _DLL that is - * automatically defined when you compile using the share - * version of the CRT (C Run-Time library) - * - * The cygwin mods make this behavior a little different: - * Define PNG_BUILD_DLL if you are building a dll for use with cygwin - * Define PNG_STATIC if you are building a static library for use with cygwin, - * -or- if you are building an application that you want to link to the - * static library. - * PNG_USE_DLL is defined by default (no user action needed) unless one of - * the other flags is defined. - */ - -#if !defined(PNG_DLL) && (defined(PNG_BUILD_DLL) || defined(PNG_USE_DLL)) -# define PNG_DLL -#endif -/* If CYGWIN, then disallow GLOBAL ARRAYS unless building a static lib. - * When building a static lib, default to no GLOBAL ARRAYS, but allow - * command-line override - */ -#ifdef __CYGWIN__ -# ifndef PNG_STATIC -# ifdef PNG_USE_GLOBAL_ARRAYS -# undef PNG_USE_GLOBAL_ARRAYS -# endif -# ifndef PNG_USE_LOCAL_ARRAYS -# define PNG_USE_LOCAL_ARRAYS -# endif -# else -# if defined(PNG_USE_LOCAL_ARRAYS) || defined(PNG_NO_GLOBAL_ARRAYS) -# ifdef PNG_USE_GLOBAL_ARRAYS -# undef PNG_USE_GLOBAL_ARRAYS -# endif -# endif -# endif -# if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS) -# define PNG_USE_LOCAL_ARRAYS -# endif -#endif - -/* Do not use global arrays (helps with building DLL's) - * They are no longer used in libpng itself, since version 1.0.5c, - * but might be required for some pre-1.0.5c applications. - */ -#if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS) -# if defined(PNG_NO_GLOBAL_ARRAYS) || \ - (defined(__GNUC__) && defined(PNG_DLL)) || defined(_MSC_VER) -# define PNG_USE_LOCAL_ARRAYS -# else -# define PNG_USE_GLOBAL_ARRAYS -# endif -#endif - -#ifdef __CYGWIN__ -# undef PNGAPI -# define PNGAPI __cdecl -# undef PNG_IMPEXP -# define PNG_IMPEXP -#endif - -/* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall", - * you may get warnings regarding the linkage of png_zalloc and png_zfree. - * Don't ignore those warnings; you must also reset the default calling - * convention in your compiler to match your PNGAPI, and you must build - * zlib and your applications the same way you build libpng. - */ - -#if defined(__MINGW32__) && !defined(PNG_MODULEDEF) -# ifndef PNG_NO_MODULEDEF -# define PNG_NO_MODULEDEF -# endif -#endif - -#if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF) -# define PNG_IMPEXP -#endif - -#if defined(PNG_DLL) || defined(_DLL) || defined(__DLL__ ) || \ - (( defined(_Windows) || defined(_WINDOWS) || \ - defined(WIN32) || defined(_WIN32) || defined(__WIN32__) )) - -# ifndef PNGAPI -# if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800)) -# define PNGAPI __cdecl -# else -# define PNGAPI _cdecl -# endif -# endif - -# if !defined(PNG_IMPEXP) && (!defined(PNG_DLL) || \ - 0 /* WINCOMPILER_WITH_NO_SUPPORT_FOR_DECLIMPEXP */) -# define PNG_IMPEXP -# endif - -# ifndef PNG_IMPEXP - -# define PNG_EXPORT_TYPE1(type,symbol) PNG_IMPEXP type PNGAPI symbol -# define PNG_EXPORT_TYPE2(type,symbol) type PNG_IMPEXP PNGAPI symbol - - /* Borland/Microsoft */ -# if defined(_MSC_VER) || defined(__BORLANDC__) -# if (_MSC_VER >= 800) || (__BORLANDC__ >= 0x500) -# define PNG_EXPORT PNG_EXPORT_TYPE1 -# else -# define PNG_EXPORT PNG_EXPORT_TYPE2 -# ifdef PNG_BUILD_DLL -# define PNG_IMPEXP __export -# else -# define PNG_IMPEXP /*__import */ /* doesn't exist AFAIK in - VC++ */ -# endif /* Exists in Borland C++ for - C++ classes (== huge) */ -# endif -# endif - -# ifndef PNG_IMPEXP -# ifdef PNG_BUILD_DLL -# define PNG_IMPEXP __declspec(dllexport) -# else -# define PNG_IMPEXP __declspec(dllimport) -# endif -# endif -# endif /* PNG_IMPEXP */ -#else /* !(DLL || non-cygwin WINDOWS) */ -# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) -# ifndef PNGAPI -# define PNGAPI _System -# endif -# else -# if 0 /* ... other platforms, with other meanings */ -# endif -# endif -#endif - -#ifndef PNGAPI -# define PNGAPI -#endif -#ifndef PNG_IMPEXP -# define PNG_IMPEXP -#endif - -#ifdef PNG_BUILDSYMS -# ifndef PNG_EXPORT -# define PNG_EXPORT(type,symbol) PNG_FUNCTION_EXPORT symbol END -# endif -# ifdef PNG_USE_GLOBAL_ARRAYS -# ifndef PNG_EXPORT_VAR -# define PNG_EXPORT_VAR(type) PNG_DATA_EXPORT -# endif -# endif -#endif - -#ifndef PNG_EXPORT -# define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol -#endif - -#ifdef PNG_USE_GLOBAL_ARRAYS -# ifndef PNG_EXPORT_VAR -# define PNG_EXPORT_VAR(type) extern PNG_IMPEXP type -# endif -#endif - -#ifdef PNG_PEDANTIC_WARNINGS -# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED -# define PNG_PEDANTIC_WARNINGS_SUPPORTED -# endif -#endif - -#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED -/* Support for compiler specific function attributes. These are used - * so that where compiler support is available incorrect use of API - * functions in png.h will generate compiler warnings. Added at libpng - * version 1.2.41. - */ -# ifdef __GNUC__ -# ifndef PNG_USE_RESULT -# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) -# endif -# ifndef PNG_NORETURN -# define PNG_NORETURN __attribute__((__noreturn__)) -# endif -# ifndef PNG_ALLOCATED -# define PNG_ALLOCATED __attribute__((__malloc__)) -# endif - - /* This specifically protects structure members that should only be - * accessed from within the library, therefore should be empty during - * a library build. - */ -# ifndef PNG_DEPRECATED -# define PNG_DEPRECATED __attribute__((__deprecated__)) -# endif -# ifndef PNG_DEPSTRUCT -# define PNG_DEPSTRUCT __attribute__((__deprecated__)) -# endif -# ifndef PNG_PRIVATE -# if 0 /* Doesn't work so we use deprecated instead*/ -# define PNG_PRIVATE \ - __attribute__((warning("This function is not exported by libpng."))) -# else -# define PNG_PRIVATE \ - __attribute__((__deprecated__)) -# endif -# endif /* PNG_PRIVATE */ -# endif /* __GNUC__ */ -#endif /* PNG_PEDANTIC_WARNINGS */ - -#ifndef PNG_DEPRECATED -# define PNG_DEPRECATED /* Use of this function is deprecated */ -#endif -#ifndef PNG_USE_RESULT -# define PNG_USE_RESULT /* The result of this function must be checked */ -#endif -#ifndef PNG_NORETURN -# define PNG_NORETURN /* This function does not return */ -#endif -#ifndef PNG_ALLOCATED -# define PNG_ALLOCATED /* The result of the function is new memory */ -#endif -#ifndef PNG_DEPSTRUCT -# define PNG_DEPSTRUCT /* Access to this struct member is deprecated */ -#endif -#ifndef PNG_PRIVATE -# define PNG_PRIVATE /* This is a private libpng function */ -#endif - -/* User may want to use these so they are not in PNG_INTERNAL. Any library - * functions that are passed far data must be model independent. - */ - -#ifndef PNG_ABORT -# define PNG_ABORT() abort() -#endif - -#ifdef PNG_SETJMP_SUPPORTED -# define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf) -#else -# define png_jmpbuf(png_ptr) \ - (LIBPNG_WAS_COMPILED_WITH__PNG_SETJMP_NOT_SUPPORTED) -#endif - -#ifdef USE_FAR_KEYWORD /* memory model independent fns */ -/* Use this to make far-to-near assignments */ -# define CHECK 1 -# define NOCHECK 0 -# define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK)) -# define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK)) -# define png_snprintf _fsnprintf /* Added to v 1.2.19 */ -# define png_strlen _fstrlen -# define png_memcmp _fmemcmp /* SJT: added */ -# define png_memcpy _fmemcpy -# define png_memset _fmemset -#else /* Use the usual functions */ -# define CVT_PTR(ptr) (ptr) -# define CVT_PTR_NOCHECK(ptr) (ptr) -# ifndef PNG_NO_SNPRINTF -# ifdef _MSC_VER -# define png_snprintf _snprintf /* Added to v 1.2.19 */ -# define png_snprintf2 _snprintf -# define png_snprintf6 _snprintf -# else -# define png_snprintf snprintf /* Added to v 1.2.19 */ -# define png_snprintf2 snprintf -# define png_snprintf6 snprintf -# endif -# else - /* You don't have or don't want to use snprintf(). Caution: Using - * sprintf instead of snprintf exposes your application to accidental - * or malevolent buffer overflows. If you don't have snprintf() - * as a general rule you should provide one (you can get one from - * Portable OpenSSH). - */ -# define png_snprintf(s1,n,fmt,x1) sprintf(s1,fmt,x1) -# define png_snprintf2(s1,n,fmt,x1,x2) sprintf(s1,fmt,x1,x2) -# define png_snprintf6(s1,n,fmt,x1,x2,x3,x4,x5,x6) \ - sprintf(s1,fmt,x1,x2,x3,x4,x5,x6) -# endif -# define png_strlen strlen -# define png_memcmp memcmp /* SJT: added */ -# define png_memcpy memcpy -# define png_memset memset -#endif -/* End of memory model independent support */ - -/* Just a little check that someone hasn't tried to define something - * contradictory. - */ -#if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K) -# undef PNG_ZBUF_SIZE -# define PNG_ZBUF_SIZE 65536L -#endif - -/* Added at libpng-1.2.8 */ -#endif /* PNG_VERSION_INFO_ONLY */ - -#endif /* PNGCONF_H */ diff --git a/lib/linux/include/steam/isteamapplist.h b/lib/linux/include/steam/isteamapplist.h deleted file mode 100644 index d678909..0000000 --- a/lib/linux/include/steam/isteamapplist.h +++ /dev/null @@ -1,63 +0,0 @@ -//====== Copyright © 1996-2008, Valve Corporation, All rights reserved. ======= -// -// Purpose: interface to app data in Steam -// -//============================================================================= - -#ifndef ISTEAMAPPLIST_H -#define ISTEAMAPPLIST_H -#ifdef _WIN32 -#pragma once -#endif - -#include "isteamclient.h" -#include "steamtypes.h" - -//----------------------------------------------------------------------------- -// Purpose: This is a restricted interface that can only be used by previously approved apps, -// contact your Steam Account Manager if you believe you need access to this API. -// This interface lets you detect installed apps for the local Steam client, useful for debugging tools -// to offer lists of apps to debug via Steam. -//----------------------------------------------------------------------------- -class ISteamAppList -{ -public: - virtual uint32 GetNumInstalledApps() = 0; - virtual uint32 GetInstalledApps( AppId_t *pvecAppID, uint32 unMaxAppIDs ) = 0; - - virtual int GetAppName( AppId_t nAppID, OUT_STRING() char *pchName, int cchNameMax ) = 0; // returns -1 if no name was found - virtual int GetAppInstallDir( AppId_t nAppID, char *pchDirectory, int cchNameMax ) = 0; // returns -1 if no dir was found - - virtual int GetAppBuildId( AppId_t nAppID ) = 0; // return the buildid of this app, may change at any time based on backend updates to the game -}; - -#define STEAMAPPLIST_INTERFACE_VERSION "STEAMAPPLIST_INTERFACE_VERSION001" - -// callbacks -#if defined( VALVE_CALLBACK_PACK_SMALL ) -#pragma pack( push, 4 ) -#elif defined( VALVE_CALLBACK_PACK_LARGE ) -#pragma pack( push, 8 ) -#else -#error isteamclient.h must be included -#endif - - -//--------------------------------------------------------------------------------- -// Purpose: Sent when a new app is installed -//--------------------------------------------------------------------------------- -DEFINE_CALLBACK( SteamAppInstalled_t, k_iSteamAppListCallbacks + 1 ); - CALLBACK_MEMBER( 0, AppId_t, m_nAppID ) // ID of the app that installs -END_DEFINE_CALLBACK_1() - - -//--------------------------------------------------------------------------------- -// Purpose: Sent when an app is uninstalled -//--------------------------------------------------------------------------------- -DEFINE_CALLBACK( SteamAppUninstalled_t, k_iSteamAppListCallbacks + 2 ); - CALLBACK_MEMBER( 0, AppId_t, m_nAppID ) // ID of the app that installs -END_DEFINE_CALLBACK_1() - - -#pragma pack( pop ) -#endif // ISTEAMAPPLIST_H diff --git a/lib/linux/include/steam/isteamapps.h b/lib/linux/include/steam/isteamapps.h index 9a97b4a..8a2197e 100644 --- a/lib/linux/include/steam/isteamapps.h +++ b/lib/linux/include/steam/isteamapps.h @@ -10,6 +10,8 @@ #pragma once #endif +#include "steam_api_common.h" + const int k_cubAppProofOfPurchaseKeyMax = 240; // max supported length of a legacy cd key @@ -65,13 +67,16 @@ public: virtual uint32 GetAppInstallDir( AppId_t appID, char *pchFolder, uint32 cchFolderBufferSize ) = 0; virtual bool BIsAppInstalled( AppId_t appID ) = 0; // returns true if that app is installed (not necessarily owned) - virtual CSteamID GetAppOwner() = 0; // returns the SteamID of the original owner. If different from current user, it's borrowed + // returns the SteamID of the original owner. If this CSteamID is different from ISteamUser::GetSteamID(), + // the user has a temporary license borrowed via Family Sharing + virtual CSteamID GetAppOwner() = 0; - // Returns the associated launch param if the game is run via steam://run/<appid>//?param1=value1;param2=value2;param3=value3 etc. + // Returns the associated launch param if the game is run via steam://run/<appid>//?param1=value1¶m2=value2¶m3=value3 etc. // Parameter names starting with the character '@' are reserved for internal use and will always return and empty string. // Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, // but it is advised that you not param names beginning with an underscore for your own features. - virtual const char *GetLaunchQueryParam( const char *pchKey ) = 0; + // Check for new launch parameters on callback NewUrlLaunchParameters_t + virtual const char *GetLaunchQueryParam( const char *pchKey ) = 0; // get download progress for optional DLC virtual bool GetDlcDownloadProgress( AppId_t nAppID, uint64 *punBytesDownloaded, uint64 *punBytesTotal ) = 0; @@ -85,19 +90,42 @@ public: // member is k_uAppIdInvalid (zero). virtual void RequestAllProofOfPurchaseKeys() = 0; - CALL_RESULT( FileDetailsResult_t ) + STEAM_CALL_RESULT( FileDetailsResult_t ) virtual SteamAPICall_t GetFileDetails( const char* pszFileName ) = 0; + + // Get command line if game was launched via Steam URL, e.g. steam://run/<appid>//<command line>/. + // This method of passing a connect string (used when joining via rich presence, accepting an + // invite, etc) is preferable to passing the connect string on the operating system command + // line, which is a security risk. In order for rich presence joins to go through this + // path and not be placed on the OS command line, you must set a value in your app's + // configuration on Steam. Ask Valve for help with this. + // + // If game was already running and launched again, the NewUrlLaunchParameters_t will be fired. + virtual int GetLaunchCommandLine( char *pszCommandLine, int cubCommandLine ) = 0; + + // Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + virtual bool BIsSubscribedFromFamilySharing() = 0; + + // check if game is a timed trial with limited playtime + virtual bool BIsTimedTrial( uint32* punSecondsAllowed, uint32* punSecondsPlayed ) = 0; + + // set current DLC AppID being played (or 0 if none). Allows Steam to track usage of major DLC extensions + virtual bool SetDlcContext( AppId_t nAppID ) = 0; }; #define STEAMAPPS_INTERFACE_VERSION "STEAMAPPS_INTERFACE_VERSION008" +// Global interface accessor +inline ISteamApps *SteamApps(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamApps *, SteamApps, STEAMAPPS_INTERFACE_VERSION ); + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- // Purpose: posted after the user gains ownership of DLC & that DLC is installed @@ -109,37 +137,13 @@ struct DlcInstalled_t }; -//----------------------------------------------------------------------------- -// Purpose: possible results when registering an activation code -//----------------------------------------------------------------------------- -enum ERegisterActivationCodeResult -{ - k_ERegisterActivationCodeResultOK = 0, - k_ERegisterActivationCodeResultFail = 1, - k_ERegisterActivationCodeResultAlreadyRegistered = 2, - k_ERegisterActivationCodeResultTimeout = 3, - k_ERegisterActivationCodeAlreadyOwned = 4, -}; - - -//----------------------------------------------------------------------------- -// Purpose: response to RegisterActivationCode() -//----------------------------------------------------------------------------- -struct RegisterActivationCodeResponse_t -{ - enum { k_iCallback = k_iSteamAppsCallbacks + 8 }; - ERegisterActivationCodeResult m_eResult; - uint32 m_unPackageRegistered; // package that was registered. Only set on success -}; - - //--------------------------------------------------------------------------------- -// Purpose: posted after the user gains executes a steam url with query parameters -// such as steam://run/<appid>//?param1=value1;param2=value2;param3=value3; etc +// Purpose: posted after the user gains executes a Steam URL with command line or query parameters +// such as steam://run/<appid>//-commandline/?param1=value1¶m2=value2¶m3=value3 etc // while the game is already running. The new params can be queried -// with GetLaunchQueryParam. +// with GetLaunchQueryParam and GetLaunchCommandLine //--------------------------------------------------------------------------------- -struct NewLaunchQueryParameters_t +struct NewUrlLaunchParameters_t { enum { k_iCallback = k_iSteamAppsCallbacks + 14 }; }; @@ -172,5 +176,17 @@ struct FileDetailsResult_t }; +//----------------------------------------------------------------------------- +// Purpose: called for games in Timed Trial mode +//----------------------------------------------------------------------------- +struct TimedTrialStatus_t +{ + enum { k_iCallback = k_iSteamAppsCallbacks + 30 }; + AppId_t m_unAppID; // appID + bool m_bIsOffline; // if true, time allowed / played refers to offline time, not total time + uint32 m_unSecondsAllowed; // how many seconds the app can be played in total + uint32 m_unSecondsPlayed; // how many seconds the app was already played +}; + #pragma pack( pop ) #endif // ISTEAMAPPS_H diff --git a/lib/linux/include/steam/isteamclient.h b/lib/linux/include/steam/isteamclient.h index 45d707d..e457e87 100644 --- a/lib/linux/include/steam/isteamclient.h +++ b/lib/linux/include/steam/isteamclient.h @@ -1,8 +1,9 @@ -//====== Copyright � 1996-2008, Valve Corporation, All rights reserved. ======= +//====== Copyright Valve Corporation, All rights reserved. ==================== // -// Purpose: Main interface for loading and accessing Steamworks API's from the -// Steam client. -// For most uses, this code is wrapped inside of SteamAPI_Init() +// Internal low-level access to Steamworks interfaces. +// +// Most users of the Steamworks SDK do not need to include this file. +// You should only include this if you are doing something special. //============================================================================= #ifndef ISTEAMCLIENT_H @@ -11,102 +12,7 @@ #pragma once #endif -#include "steamtypes.h" -#include "steamclientpublic.h" - -// Define compile time assert macros to let us validate the structure sizes. -#define VALVE_COMPILE_TIME_ASSERT( pred ) typedef char compile_time_assert_type[(pred) ? 1 : -1]; - -#ifndef REFERENCE -#define REFERENCE(arg) ((void)arg) -#endif - -#if defined(STEAM_API_EXPORTS) && !defined(API_GEN) -#define STEAM_PRIVATE_API( ... ) __VA_ARGS__ -#elif defined(STEAM_API_EXPORTS) && defined(API_GEN) -#define STEAM_PRIVATE_API( ... ) -#else -#define STEAM_PRIVATE_API( ... ) protected: __VA_ARGS__ public: -#endif - -#if defined(__linux__) || defined(__APPLE__) -// The 32-bit version of gcc has the alignment requirement for uint64 and double set to -// 4 meaning that even with #pragma pack(8) these types will only be four-byte aligned. -// The 64-bit version of gcc has the alignment requirement for these types set to -// 8 meaning that unless we use #pragma pack(4) our structures will get bigger. -// The 64-bit structure packing has to match the 32-bit structure packing for each platform. -#define VALVE_CALLBACK_PACK_SMALL -#else -#define VALVE_CALLBACK_PACK_LARGE -#endif - -#if defined( VALVE_CALLBACK_PACK_SMALL ) -#pragma pack( push, 4 ) -#elif defined( VALVE_CALLBACK_PACK_LARGE ) -#pragma pack( push, 8 ) -#else -#error ??? -#endif - -typedef struct ValvePackingSentinel_t -{ - uint32 m_u32; - uint64 m_u64; - uint16 m_u16; - double m_d; -} ValvePackingSentinel_t; - -#pragma pack( pop ) - - -#if defined(VALVE_CALLBACK_PACK_SMALL) -VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 24 ) -#elif defined(VALVE_CALLBACK_PACK_LARGE) -VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 32 ) -#else -#error ??? -#endif - - -// handle to a communication pipe to the Steam client -typedef int32 HSteamPipe; -// handle to single instance of a steam user -typedef int32 HSteamUser; -// function prototype -#if defined( POSIX ) -#define __cdecl -#endif -extern "C" typedef void (__cdecl *SteamAPIWarningMessageHook_t)(int, const char *); -extern "C" typedef uint32 ( *SteamAPI_CheckCallbackRegistered_t )( int iCallbackNum ); -#if defined( __SNC__ ) - #pragma diag_suppress=1700 // warning 1700: class "%s" has virtual functions but non-virtual destructor -#endif - -// interface predec -class ISteamUser; -class ISteamGameServer; -class ISteamFriends; -class ISteamUtils; -class ISteamMatchmaking; -class ISteamContentServer; -class ISteamMatchmakingServers; -class ISteamUserStats; -class ISteamApps; -class ISteamNetworking; -class ISteamRemoteStorage; -class ISteamScreenshots; -class ISteamMusic; -class ISteamMusicRemote; -class ISteamGameServerStats; -class ISteamPS3OverlayRender; -class ISteamHTTP; -class ISteamUnifiedMessages; -class ISteamController; -class ISteamUGC; -class ISteamAppList; -class ISteamHTMLSurface; -class ISteamInventory; -class ISteamVideo; +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: Interface to creating a new steam instance, or to @@ -150,7 +56,7 @@ public: // set the local IP and Port to bind to // this must be set before CreateLocalUser() - virtual void SetLocalIPBinding( uint32 unIP, uint16 usPort ) = 0; + virtual void SetLocalIPBinding( const SteamIPAddress_t &unIP, uint16 usPort ) = 0; // returns the ISteamFriends interface virtual ISteamFriends *GetISteamFriends( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; @@ -185,6 +91,9 @@ public: // user screenshots virtual ISteamScreenshots *GetISteamScreenshots( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + // game search + virtual ISteamGameSearch *GetISteamGameSearch( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + // Deprecated. Applications should use SteamAPI_RunCallbacks() or SteamGameServer_RunCallbacks() instead. STEAM_PRIVATE_API( virtual void RunFrame() = 0; ) @@ -206,18 +115,12 @@ public: // Expose HTTP interface virtual ISteamHTTP *GetISteamHTTP( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; - // Exposes the ISteamUnifiedMessages interface - virtual ISteamUnifiedMessages *GetISteamUnifiedMessages( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; - - // Exposes the ISteamController interface + // Exposes the ISteamController interface - deprecated in favor of Steam Input virtual ISteamController *GetISteamController( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; // Exposes the ISteamUGC interface virtual ISteamUGC *GetISteamUGC( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; - // returns app list interface, only available on specially registered apps - virtual ISteamAppList *GetISteamAppList( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; - // Music Player virtual ISteamMusic *GetISteamMusic( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; @@ -237,284 +140,34 @@ public: // Video virtual ISteamVideo *GetISteamVideo( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Parental controls + virtual ISteamParentalSettings *GetISteamParentalSettings( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Exposes the Steam Input interface for controller support + virtual ISteamInput *GetISteamInput( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Steam Parties interface + virtual ISteamParties *GetISteamParties( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Steam Remote Play interface + virtual ISteamRemotePlay *GetISteamRemotePlay( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + STEAM_PRIVATE_API( virtual void DestroyAllInterfaces() = 0; ) + }; +#define STEAMCLIENT_INTERFACE_VERSION "SteamClient021" +#ifndef STEAM_API_EXPORTS -#define STEAMCLIENT_INTERFACE_VERSION "SteamClient017" +// Global ISteamClient interface accessor +inline ISteamClient *SteamClient(); +STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamClient *, SteamClient, SteamInternal_CreateInterface( STEAMCLIENT_INTERFACE_VERSION ), "global", STEAMCLIENT_INTERFACE_VERSION ); -//----------------------------------------------------------------------------- -// Purpose: Base values for callback identifiers, each callback must -// have a unique ID. -//----------------------------------------------------------------------------- -enum { k_iSteamUserCallbacks = 100 }; -enum { k_iSteamGameServerCallbacks = 200 }; -enum { k_iSteamFriendsCallbacks = 300 }; -enum { k_iSteamBillingCallbacks = 400 }; -enum { k_iSteamMatchmakingCallbacks = 500 }; -enum { k_iSteamContentServerCallbacks = 600 }; -enum { k_iSteamUtilsCallbacks = 700 }; -enum { k_iClientFriendsCallbacks = 800 }; -enum { k_iClientUserCallbacks = 900 }; -enum { k_iSteamAppsCallbacks = 1000 }; -enum { k_iSteamUserStatsCallbacks = 1100 }; -enum { k_iSteamNetworkingCallbacks = 1200 }; -enum { k_iClientRemoteStorageCallbacks = 1300 }; -enum { k_iClientDepotBuilderCallbacks = 1400 }; -enum { k_iSteamGameServerItemsCallbacks = 1500 }; -enum { k_iClientUtilsCallbacks = 1600 }; -enum { k_iSteamGameCoordinatorCallbacks = 1700 }; -enum { k_iSteamGameServerStatsCallbacks = 1800 }; -enum { k_iSteam2AsyncCallbacks = 1900 }; -enum { k_iSteamGameStatsCallbacks = 2000 }; -enum { k_iClientHTTPCallbacks = 2100 }; -enum { k_iClientScreenshotsCallbacks = 2200 }; -enum { k_iSteamScreenshotsCallbacks = 2300 }; -enum { k_iClientAudioCallbacks = 2400 }; -enum { k_iClientUnifiedMessagesCallbacks = 2500 }; -enum { k_iSteamStreamLauncherCallbacks = 2600 }; -enum { k_iClientControllerCallbacks = 2700 }; -enum { k_iSteamControllerCallbacks = 2800 }; -enum { k_iClientParentalSettingsCallbacks = 2900 }; -enum { k_iClientDeviceAuthCallbacks = 3000 }; -enum { k_iClientNetworkDeviceManagerCallbacks = 3100 }; -enum { k_iClientMusicCallbacks = 3200 }; -enum { k_iClientRemoteClientManagerCallbacks = 3300 }; -enum { k_iClientUGCCallbacks = 3400 }; -enum { k_iSteamStreamClientCallbacks = 3500 }; -enum { k_IClientProductBuilderCallbacks = 3600 }; -enum { k_iClientShortcutsCallbacks = 3700 }; -enum { k_iClientRemoteControlManagerCallbacks = 3800 }; -enum { k_iSteamAppListCallbacks = 3900 }; -enum { k_iSteamMusicCallbacks = 4000 }; -enum { k_iSteamMusicRemoteCallbacks = 4100 }; -enum { k_iClientVRCallbacks = 4200 }; -enum { k_iClientGameNotificationCallbacks = 4300 }; -enum { k_iSteamGameNotificationCallbacks = 4400 }; -enum { k_iSteamHTMLSurfaceCallbacks = 4500 }; -enum { k_iClientVideoCallbacks = 4600 }; -enum { k_iClientInventoryCallbacks = 4700 }; -enum { k_iClientBluetoothManagerCallbacks = 4800 }; - -//----------------------------------------------------------------------------- -// The CALLBACK macros are for client side callback logging enabled with -// log_callback <first callnbackID> <last callbackID> -// Do not change any of these. -//----------------------------------------------------------------------------- - -#ifdef STEAM_CALLBACK_INSPECTION_ENABLED - -#define DEFINE_CALLBACK( callbackname, callbackid ) \ -struct callbackname { \ - typedef callbackname SteamCallback_t; \ - enum { k_iCallback = callbackid }; \ - static callbackname *GetNullPointer() { return 0; } \ - static const char *GetCallbackName() { return #callbackname; } \ - static uint32 GetCallbackID() { return callbackname::k_iCallback; } - -#define CALLBACK_MEMBER( varidx, vartype, varname ) \ - public: vartype varname ; \ - static void GetMemberVar_##varidx( unsigned int &varOffset, unsigned int &varSize, uint32 &varCount, const char **pszName, const char **pszType ) { \ - varOffset = (unsigned int)(size_t)&GetNullPointer()->varname; \ - varSize = sizeof( vartype ); \ - varCount = 1; \ - *pszName = #varname; *pszType = #vartype; } - -#define CALLBACK_ARRAY( varidx, vartype, varname, varcount ) \ - public: vartype varname [ varcount ]; \ - static void GetMemberVar_##varidx( unsigned int &varOffset, unsigned int &varSize, uint32 &varCount, const char **pszName, const char **pszType ) { \ - varOffset = (unsigned int)(size_t)&GetNullPointer()->varname[0]; \ - varSize = sizeof( vartype ); \ - varCount = varcount; \ - *pszName = #varname; *pszType = #vartype; } - - -#define END_CALLBACK_INTERNAL_BEGIN( numvars ) \ - static uint32 GetNumMemberVariables() { return numvars; } \ - static bool GetMemberVariable( uint32 index, uint32 &varOffset, uint32 &varSize, uint32 &varCount, const char **pszName, const char **pszType ) { \ - switch ( index ) { default : return false; - - -#define END_CALLBACK_INTERNAL_SWITCH( varidx ) case varidx : GetMemberVar_##varidx( varOffset, varSize, varCount, pszName, pszType ); return true; - -#define END_CALLBACK_INTERNAL_END() }; } }; - -#define END_DEFINE_CALLBACK_0() \ - static uint32 GetNumMemberVariables() { return 0; } \ - static bool GetMemberVariable( uint32 index, uint32 &varOffset, uint32 &varSize, uint32 &varCount, const char **pszName, const char **pszType ) { REFERENCE( pszType ); REFERENCE( pszName ); REFERENCE( varCount ); REFERENCE( varSize ); REFERENCE( varOffset ); REFERENCE( index ); return false; } \ - }; - -#else - -#define DEFINE_CALLBACK( callbackname, callbackid ) struct callbackname { typedef callbackname SteamCallback_t; enum { k_iCallback = callbackid }; -#define CALLBACK_MEMBER( varidx, vartype, varname ) public: vartype varname ; -#define CALLBACK_ARRAY( varidx, vartype, varname, varcount ) public: vartype varname [ varcount ]; -#define END_CALLBACK_INTERNAL_BEGIN( numvars ) -#define END_CALLBACK_INTERNAL_SWITCH( varidx ) -#define END_CALLBACK_INTERNAL_END() }; -#define END_DEFINE_CALLBACK_0() }; +// The internal ISteamClient used for the gameserver interface. +// (This is actually the same thing. You really shouldn't need to access any of this stuff directly.) +inline ISteamClient *SteamGameServerClient() { return SteamClient(); } #endif -#define END_DEFINE_CALLBACK_1() \ - END_CALLBACK_INTERNAL_BEGIN( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_2() \ - END_CALLBACK_INTERNAL_BEGIN( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_3() \ - END_CALLBACK_INTERNAL_BEGIN( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_4() \ - END_CALLBACK_INTERNAL_BEGIN( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_5() \ - END_CALLBACK_INTERNAL_BEGIN( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_END() - - -#define END_DEFINE_CALLBACK_6() \ - END_CALLBACK_INTERNAL_BEGIN( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_7() \ - END_CALLBACK_INTERNAL_BEGIN( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_8() \ - END_CALLBACK_INTERNAL_BEGIN( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_9() \ - END_CALLBACK_INTERNAL_BEGIN( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_10() \ - END_CALLBACK_INTERNAL_BEGIN( 10 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_11() \ - END_CALLBACK_INTERNAL_BEGIN( 11 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 10 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_12() \ - END_CALLBACK_INTERNAL_BEGIN( 12 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 10 ) \ - END_CALLBACK_INTERNAL_SWITCH( 11 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_13() \ - END_CALLBACK_INTERNAL_BEGIN( 13 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 10 ) \ - END_CALLBACK_INTERNAL_SWITCH( 11 ) \ - END_CALLBACK_INTERNAL_SWITCH( 12 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_14() \ - END_CALLBACK_INTERNAL_BEGIN( 14 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 10 ) \ - END_CALLBACK_INTERNAL_SWITCH( 11 ) \ - END_CALLBACK_INTERNAL_SWITCH( 12 ) \ - END_CALLBACK_INTERNAL_SWITCH( 13 ) \ - END_CALLBACK_INTERNAL_END() - #endif // ISTEAMCLIENT_H diff --git a/lib/linux/include/steam/isteamcontroller.h b/lib/linux/include/steam/isteamcontroller.h index 68f7af6..057606c 100644 --- a/lib/linux/include/steam/isteamcontroller.h +++ b/lib/linux/include/steam/isteamcontroller.h @@ -1,6 +1,12 @@ -//====== Copyright 1996-2013, Valve Corporation, All rights reserved. ======= +//====== Copyright 1996-2018, Valve Corporation, All rights reserved. ======= +// Note: The older ISteamController interface has been deprecated in favor of ISteamInput - this interface +// was updated in this SDK but will be removed from future SDK's. The Steam Client will retain +// compatibility with the older interfaces so your any existing integrations should be unaffected. // -// Purpose: interface to valve controller +// Purpose: Steam Input is a flexible input API that supports over three hundred devices including all +// common variants of Xbox, Playstation, Nintendo Switch Pro, and Steam Controllers. +// For more info including a getting started guide for developers +// please visit: https://partner.steamgames.com/doc/features/steam_controller // //============================================================================= @@ -10,63 +16,40 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" +#include "isteaminput.h" #define STEAM_CONTROLLER_MAX_COUNT 16 -#define STEAM_CONTROLLER_MAX_ANALOG_ACTIONS 16 +#define STEAM_CONTROLLER_MAX_ANALOG_ACTIONS 24 -#define STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS 128 +#define STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS 256 #define STEAM_CONTROLLER_MAX_ORIGINS 8 +#define STEAM_CONTROLLER_MAX_ACTIVE_LAYERS 16 + // When sending an option to a specific controller handle, you can send to all controllers via this command #define STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS UINT64_MAX #define STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATA -1.0f #define STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATA 1.0f +#ifndef ISTEAMINPUT_H enum ESteamControllerPad { k_ESteamControllerPad_Left, k_ESteamControllerPad_Right }; +#endif -enum EControllerSource -{ - k_EControllerSource_None, - k_EControllerSource_LeftTrackpad, - k_EControllerSource_RightTrackpad, - k_EControllerSource_Joystick, - k_EControllerSource_ABXY, - k_EControllerSource_Switch, - k_EControllerSource_LeftTrigger, - k_EControllerSource_RightTrigger, - k_EControllerSource_Gyro, - k_EControllerSource_Count -}; - -enum EControllerSourceMode -{ - k_EControllerSourceMode_None, - k_EControllerSourceMode_Dpad, - k_EControllerSourceMode_Buttons, - k_EControllerSourceMode_FourButtons, - k_EControllerSourceMode_AbsoluteMouse, - k_EControllerSourceMode_RelativeMouse, - k_EControllerSourceMode_JoystickMove, - k_EControllerSourceMode_JoystickCamera, - k_EControllerSourceMode_ScrollWheel, - k_EControllerSourceMode_Trigger, - k_EControllerSourceMode_TouchMenu, - k_EControllerSourceMode_MouseJoystick, - k_EControllerSourceMode_MouseRegion, - k_EControllerSourceMode_RadialMenu, - k_EControllerSourceMode_Switches -}; - +// Note: Please do not use action origins as a way to identify controller types. There is no +// guarantee that they will be added in a contiguous manner - use GetInputTypeForHandle instead +// Versions of Steam that add new controller types in the future will extend this enum if you're +// using a lookup table please check the bounds of any origins returned by Steam. enum EControllerActionOrigin { + // Steam Controller k_EControllerActionOrigin_None, k_EControllerActionOrigin_A, k_EControllerActionOrigin_B, @@ -107,7 +90,436 @@ enum EControllerActionOrigin k_EControllerActionOrigin_Gyro_Yaw, k_EControllerActionOrigin_Gyro_Roll, - k_EControllerActionOrigin_Count + // PS4 Dual Shock + k_EControllerActionOrigin_PS4_X, + k_EControllerActionOrigin_PS4_Circle, + k_EControllerActionOrigin_PS4_Triangle, + k_EControllerActionOrigin_PS4_Square, + k_EControllerActionOrigin_PS4_LeftBumper, + k_EControllerActionOrigin_PS4_RightBumper, + k_EControllerActionOrigin_PS4_Options, //Start + k_EControllerActionOrigin_PS4_Share, //Back + k_EControllerActionOrigin_PS4_LeftPad_Touch, + k_EControllerActionOrigin_PS4_LeftPad_Swipe, + k_EControllerActionOrigin_PS4_LeftPad_Click, + k_EControllerActionOrigin_PS4_LeftPad_DPadNorth, + k_EControllerActionOrigin_PS4_LeftPad_DPadSouth, + k_EControllerActionOrigin_PS4_LeftPad_DPadWest, + k_EControllerActionOrigin_PS4_LeftPad_DPadEast, + k_EControllerActionOrigin_PS4_RightPad_Touch, + k_EControllerActionOrigin_PS4_RightPad_Swipe, + k_EControllerActionOrigin_PS4_RightPad_Click, + k_EControllerActionOrigin_PS4_RightPad_DPadNorth, + k_EControllerActionOrigin_PS4_RightPad_DPadSouth, + k_EControllerActionOrigin_PS4_RightPad_DPadWest, + k_EControllerActionOrigin_PS4_RightPad_DPadEast, + k_EControllerActionOrigin_PS4_CenterPad_Touch, + k_EControllerActionOrigin_PS4_CenterPad_Swipe, + k_EControllerActionOrigin_PS4_CenterPad_Click, + k_EControllerActionOrigin_PS4_CenterPad_DPadNorth, + k_EControllerActionOrigin_PS4_CenterPad_DPadSouth, + k_EControllerActionOrigin_PS4_CenterPad_DPadWest, + k_EControllerActionOrigin_PS4_CenterPad_DPadEast, + k_EControllerActionOrigin_PS4_LeftTrigger_Pull, + k_EControllerActionOrigin_PS4_LeftTrigger_Click, + k_EControllerActionOrigin_PS4_RightTrigger_Pull, + k_EControllerActionOrigin_PS4_RightTrigger_Click, + k_EControllerActionOrigin_PS4_LeftStick_Move, + k_EControllerActionOrigin_PS4_LeftStick_Click, + k_EControllerActionOrigin_PS4_LeftStick_DPadNorth, + k_EControllerActionOrigin_PS4_LeftStick_DPadSouth, + k_EControllerActionOrigin_PS4_LeftStick_DPadWest, + k_EControllerActionOrigin_PS4_LeftStick_DPadEast, + k_EControllerActionOrigin_PS4_RightStick_Move, + k_EControllerActionOrigin_PS4_RightStick_Click, + k_EControllerActionOrigin_PS4_RightStick_DPadNorth, + k_EControllerActionOrigin_PS4_RightStick_DPadSouth, + k_EControllerActionOrigin_PS4_RightStick_DPadWest, + k_EControllerActionOrigin_PS4_RightStick_DPadEast, + k_EControllerActionOrigin_PS4_DPad_North, + k_EControllerActionOrigin_PS4_DPad_South, + k_EControllerActionOrigin_PS4_DPad_West, + k_EControllerActionOrigin_PS4_DPad_East, + k_EControllerActionOrigin_PS4_Gyro_Move, + k_EControllerActionOrigin_PS4_Gyro_Pitch, + k_EControllerActionOrigin_PS4_Gyro_Yaw, + k_EControllerActionOrigin_PS4_Gyro_Roll, + + // XBox One + k_EControllerActionOrigin_XBoxOne_A, + k_EControllerActionOrigin_XBoxOne_B, + k_EControllerActionOrigin_XBoxOne_X, + k_EControllerActionOrigin_XBoxOne_Y, + k_EControllerActionOrigin_XBoxOne_LeftBumper, + k_EControllerActionOrigin_XBoxOne_RightBumper, + k_EControllerActionOrigin_XBoxOne_Menu, //Start + k_EControllerActionOrigin_XBoxOne_View, //Back + k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull, + k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click, + k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull, + k_EControllerActionOrigin_XBoxOne_RightTrigger_Click, + k_EControllerActionOrigin_XBoxOne_LeftStick_Move, + k_EControllerActionOrigin_XBoxOne_LeftStick_Click, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast, + k_EControllerActionOrigin_XBoxOne_RightStick_Move, + k_EControllerActionOrigin_XBoxOne_RightStick_Click, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast, + k_EControllerActionOrigin_XBoxOne_DPad_North, + k_EControllerActionOrigin_XBoxOne_DPad_South, + k_EControllerActionOrigin_XBoxOne_DPad_West, + k_EControllerActionOrigin_XBoxOne_DPad_East, + + // XBox 360 + k_EControllerActionOrigin_XBox360_A, + k_EControllerActionOrigin_XBox360_B, + k_EControllerActionOrigin_XBox360_X, + k_EControllerActionOrigin_XBox360_Y, + k_EControllerActionOrigin_XBox360_LeftBumper, + k_EControllerActionOrigin_XBox360_RightBumper, + k_EControllerActionOrigin_XBox360_Start, //Start + k_EControllerActionOrigin_XBox360_Back, //Back + k_EControllerActionOrigin_XBox360_LeftTrigger_Pull, + k_EControllerActionOrigin_XBox360_LeftTrigger_Click, + k_EControllerActionOrigin_XBox360_RightTrigger_Pull, + k_EControllerActionOrigin_XBox360_RightTrigger_Click, + k_EControllerActionOrigin_XBox360_LeftStick_Move, + k_EControllerActionOrigin_XBox360_LeftStick_Click, + k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth, + k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth, + k_EControllerActionOrigin_XBox360_LeftStick_DPadWest, + k_EControllerActionOrigin_XBox360_LeftStick_DPadEast, + k_EControllerActionOrigin_XBox360_RightStick_Move, + k_EControllerActionOrigin_XBox360_RightStick_Click, + k_EControllerActionOrigin_XBox360_RightStick_DPadNorth, + k_EControllerActionOrigin_XBox360_RightStick_DPadSouth, + k_EControllerActionOrigin_XBox360_RightStick_DPadWest, + k_EControllerActionOrigin_XBox360_RightStick_DPadEast, + k_EControllerActionOrigin_XBox360_DPad_North, + k_EControllerActionOrigin_XBox360_DPad_South, + k_EControllerActionOrigin_XBox360_DPad_West, + k_EControllerActionOrigin_XBox360_DPad_East, + + // SteamController V2 + k_EControllerActionOrigin_SteamV2_A, + k_EControllerActionOrigin_SteamV2_B, + k_EControllerActionOrigin_SteamV2_X, + k_EControllerActionOrigin_SteamV2_Y, + k_EControllerActionOrigin_SteamV2_LeftBumper, + k_EControllerActionOrigin_SteamV2_RightBumper, + k_EControllerActionOrigin_SteamV2_LeftGrip_Lower, + k_EControllerActionOrigin_SteamV2_LeftGrip_Upper, + k_EControllerActionOrigin_SteamV2_RightGrip_Lower, + k_EControllerActionOrigin_SteamV2_RightGrip_Upper, + k_EControllerActionOrigin_SteamV2_LeftBumper_Pressure, + k_EControllerActionOrigin_SteamV2_RightBumper_Pressure, + k_EControllerActionOrigin_SteamV2_LeftGrip_Pressure, + k_EControllerActionOrigin_SteamV2_RightGrip_Pressure, + k_EControllerActionOrigin_SteamV2_LeftGrip_Upper_Pressure, + k_EControllerActionOrigin_SteamV2_RightGrip_Upper_Pressure, + k_EControllerActionOrigin_SteamV2_Start, + k_EControllerActionOrigin_SteamV2_Back, + k_EControllerActionOrigin_SteamV2_LeftPad_Touch, + k_EControllerActionOrigin_SteamV2_LeftPad_Swipe, + k_EControllerActionOrigin_SteamV2_LeftPad_Click, + k_EControllerActionOrigin_SteamV2_LeftPad_Pressure, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast, + k_EControllerActionOrigin_SteamV2_RightPad_Touch, + k_EControllerActionOrigin_SteamV2_RightPad_Swipe, + k_EControllerActionOrigin_SteamV2_RightPad_Click, + k_EControllerActionOrigin_SteamV2_RightPad_Pressure, + k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth, + k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth, + k_EControllerActionOrigin_SteamV2_RightPad_DPadWest, + k_EControllerActionOrigin_SteamV2_RightPad_DPadEast, + k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull, + k_EControllerActionOrigin_SteamV2_LeftTrigger_Click, + k_EControllerActionOrigin_SteamV2_RightTrigger_Pull, + k_EControllerActionOrigin_SteamV2_RightTrigger_Click, + k_EControllerActionOrigin_SteamV2_LeftStick_Move, + k_EControllerActionOrigin_SteamV2_LeftStick_Click, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast, + k_EControllerActionOrigin_SteamV2_Gyro_Move, + k_EControllerActionOrigin_SteamV2_Gyro_Pitch, + k_EControllerActionOrigin_SteamV2_Gyro_Yaw, + k_EControllerActionOrigin_SteamV2_Gyro_Roll, + + // Switch - Pro or Joycons used as a single input device. + // This does not apply to a single joycon + k_EControllerActionOrigin_Switch_A, + k_EControllerActionOrigin_Switch_B, + k_EControllerActionOrigin_Switch_X, + k_EControllerActionOrigin_Switch_Y, + k_EControllerActionOrigin_Switch_LeftBumper, + k_EControllerActionOrigin_Switch_RightBumper, + k_EControllerActionOrigin_Switch_Plus, //Start + k_EControllerActionOrigin_Switch_Minus, //Back + k_EControllerActionOrigin_Switch_Capture, + k_EControllerActionOrigin_Switch_LeftTrigger_Pull, + k_EControllerActionOrigin_Switch_LeftTrigger_Click, + k_EControllerActionOrigin_Switch_RightTrigger_Pull, + k_EControllerActionOrigin_Switch_RightTrigger_Click, + k_EControllerActionOrigin_Switch_LeftStick_Move, + k_EControllerActionOrigin_Switch_LeftStick_Click, + k_EControllerActionOrigin_Switch_LeftStick_DPadNorth, + k_EControllerActionOrigin_Switch_LeftStick_DPadSouth, + k_EControllerActionOrigin_Switch_LeftStick_DPadWest, + k_EControllerActionOrigin_Switch_LeftStick_DPadEast, + k_EControllerActionOrigin_Switch_RightStick_Move, + k_EControllerActionOrigin_Switch_RightStick_Click, + k_EControllerActionOrigin_Switch_RightStick_DPadNorth, + k_EControllerActionOrigin_Switch_RightStick_DPadSouth, + k_EControllerActionOrigin_Switch_RightStick_DPadWest, + k_EControllerActionOrigin_Switch_RightStick_DPadEast, + k_EControllerActionOrigin_Switch_DPad_North, + k_EControllerActionOrigin_Switch_DPad_South, + k_EControllerActionOrigin_Switch_DPad_West, + k_EControllerActionOrigin_Switch_DPad_East, + k_EControllerActionOrigin_Switch_ProGyro_Move, // Primary Gyro in Pro Controller, or Right JoyCon + k_EControllerActionOrigin_Switch_ProGyro_Pitch, // Primary Gyro in Pro Controller, or Right JoyCon + k_EControllerActionOrigin_Switch_ProGyro_Yaw, // Primary Gyro in Pro Controller, or Right JoyCon + k_EControllerActionOrigin_Switch_ProGyro_Roll, // Primary Gyro in Pro Controller, or Right JoyCon + // Switch JoyCon Specific + k_EControllerActionOrigin_Switch_RightGyro_Move, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_RightGyro_Pitch, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_RightGyro_Yaw, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_RightGyro_Roll, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_LeftGyro_Move, + k_EControllerActionOrigin_Switch_LeftGyro_Pitch, + k_EControllerActionOrigin_Switch_LeftGyro_Yaw, + k_EControllerActionOrigin_Switch_LeftGyro_Roll, + k_EControllerActionOrigin_Switch_LeftGrip_Lower, // Left JoyCon SR Button + k_EControllerActionOrigin_Switch_LeftGrip_Upper, // Left JoyCon SL Button + k_EControllerActionOrigin_Switch_RightGrip_Lower, // Right JoyCon SL Button + k_EControllerActionOrigin_Switch_RightGrip_Upper, // Right JoyCon SR Button + + // Added in SDK 1.45 + k_EControllerActionOrigin_PS4_DPad_Move, + k_EControllerActionOrigin_XBoxOne_DPad_Move, + k_EControllerActionOrigin_XBox360_DPad_Move, + k_EControllerActionOrigin_Switch_DPad_Move, + + // Added in SDK 1.51 + k_EControllerActionOrigin_PS5_X, + k_EControllerActionOrigin_PS5_Circle, + k_EControllerActionOrigin_PS5_Triangle, + k_EControllerActionOrigin_PS5_Square, + k_EControllerActionOrigin_PS5_LeftBumper, + k_EControllerActionOrigin_PS5_RightBumper, + k_EControllerActionOrigin_PS5_Option, //Start + k_EControllerActionOrigin_PS5_Create, //Back + k_EControllerActionOrigin_PS5_Mute, + k_EControllerActionOrigin_PS5_LeftPad_Touch, + k_EControllerActionOrigin_PS5_LeftPad_Swipe, + k_EControllerActionOrigin_PS5_LeftPad_Click, + k_EControllerActionOrigin_PS5_LeftPad_DPadNorth, + k_EControllerActionOrigin_PS5_LeftPad_DPadSouth, + k_EControllerActionOrigin_PS5_LeftPad_DPadWest, + k_EControllerActionOrigin_PS5_LeftPad_DPadEast, + k_EControllerActionOrigin_PS5_RightPad_Touch, + k_EControllerActionOrigin_PS5_RightPad_Swipe, + k_EControllerActionOrigin_PS5_RightPad_Click, + k_EControllerActionOrigin_PS5_RightPad_DPadNorth, + k_EControllerActionOrigin_PS5_RightPad_DPadSouth, + k_EControllerActionOrigin_PS5_RightPad_DPadWest, + k_EControllerActionOrigin_PS5_RightPad_DPadEast, + k_EControllerActionOrigin_PS5_CenterPad_Touch, + k_EControllerActionOrigin_PS5_CenterPad_Swipe, + k_EControllerActionOrigin_PS5_CenterPad_Click, + k_EControllerActionOrigin_PS5_CenterPad_DPadNorth, + k_EControllerActionOrigin_PS5_CenterPad_DPadSouth, + k_EControllerActionOrigin_PS5_CenterPad_DPadWest, + k_EControllerActionOrigin_PS5_CenterPad_DPadEast, + k_EControllerActionOrigin_PS5_LeftTrigger_Pull, + k_EControllerActionOrigin_PS5_LeftTrigger_Click, + k_EControllerActionOrigin_PS5_RightTrigger_Pull, + k_EControllerActionOrigin_PS5_RightTrigger_Click, + k_EControllerActionOrigin_PS5_LeftStick_Move, + k_EControllerActionOrigin_PS5_LeftStick_Click, + k_EControllerActionOrigin_PS5_LeftStick_DPadNorth, + k_EControllerActionOrigin_PS5_LeftStick_DPadSouth, + k_EControllerActionOrigin_PS5_LeftStick_DPadWest, + k_EControllerActionOrigin_PS5_LeftStick_DPadEast, + k_EControllerActionOrigin_PS5_RightStick_Move, + k_EControllerActionOrigin_PS5_RightStick_Click, + k_EControllerActionOrigin_PS5_RightStick_DPadNorth, + k_EControllerActionOrigin_PS5_RightStick_DPadSouth, + k_EControllerActionOrigin_PS5_RightStick_DPadWest, + k_EControllerActionOrigin_PS5_RightStick_DPadEast, + k_EControllerActionOrigin_PS5_DPad_Move, + k_EControllerActionOrigin_PS5_DPad_North, + k_EControllerActionOrigin_PS5_DPad_South, + k_EControllerActionOrigin_PS5_DPad_West, + k_EControllerActionOrigin_PS5_DPad_East, + k_EControllerActionOrigin_PS5_Gyro_Move, + k_EControllerActionOrigin_PS5_Gyro_Pitch, + k_EControllerActionOrigin_PS5_Gyro_Yaw, + k_EControllerActionOrigin_PS5_Gyro_Roll, + + k_EControllerActionOrigin_XBoxOne_LeftGrip_Lower, + k_EControllerActionOrigin_XBoxOne_LeftGrip_Upper, + k_EControllerActionOrigin_XBoxOne_RightGrip_Lower, + k_EControllerActionOrigin_XBoxOne_RightGrip_Upper, + k_EControllerActionOrigin_XBoxOne_Share, + + // Added in SDK 1.53 + k_EControllerActionOrigin_SteamDeck_A, + k_EControllerActionOrigin_SteamDeck_B, + k_EControllerActionOrigin_SteamDeck_X, + k_EControllerActionOrigin_SteamDeck_Y, + k_EControllerActionOrigin_SteamDeck_L1, + k_EControllerActionOrigin_SteamDeck_R1, + k_EControllerActionOrigin_SteamDeck_Menu, + k_EControllerActionOrigin_SteamDeck_View, + k_EControllerActionOrigin_SteamDeck_LeftPad_Touch, + k_EControllerActionOrigin_SteamDeck_LeftPad_Swipe, + k_EControllerActionOrigin_SteamDeck_LeftPad_Click, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadNorth, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadSouth, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadWest, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadEast, + k_EControllerActionOrigin_SteamDeck_RightPad_Touch, + k_EControllerActionOrigin_SteamDeck_RightPad_Swipe, + k_EControllerActionOrigin_SteamDeck_RightPad_Click, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadNorth, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadSouth, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadWest, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadEast, + k_EControllerActionOrigin_SteamDeck_L2_SoftPull, + k_EControllerActionOrigin_SteamDeck_L2, + k_EControllerActionOrigin_SteamDeck_R2_SoftPull, + k_EControllerActionOrigin_SteamDeck_R2, + k_EControllerActionOrigin_SteamDeck_LeftStick_Move, + k_EControllerActionOrigin_SteamDeck_L3, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadNorth, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadSouth, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadWest, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadEast, + k_EControllerActionOrigin_SteamDeck_LeftStick_Touch, + k_EControllerActionOrigin_SteamDeck_RightStick_Move, + k_EControllerActionOrigin_SteamDeck_R3, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadNorth, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadSouth, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadWest, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadEast, + k_EControllerActionOrigin_SteamDeck_RightStick_Touch, + k_EControllerActionOrigin_SteamDeck_L4, + k_EControllerActionOrigin_SteamDeck_R4, + k_EControllerActionOrigin_SteamDeck_L5, + k_EControllerActionOrigin_SteamDeck_R5, + k_EControllerActionOrigin_SteamDeck_DPad_Move, + k_EControllerActionOrigin_SteamDeck_DPad_North, + k_EControllerActionOrigin_SteamDeck_DPad_South, + k_EControllerActionOrigin_SteamDeck_DPad_West, + k_EControllerActionOrigin_SteamDeck_DPad_East, + k_EControllerActionOrigin_SteamDeck_Gyro_Move, + k_EControllerActionOrigin_SteamDeck_Gyro_Pitch, + k_EControllerActionOrigin_SteamDeck_Gyro_Yaw, + k_EControllerActionOrigin_SteamDeck_Gyro_Roll, + k_EControllerActionOrigin_SteamDeck_Reserved1, + k_EControllerActionOrigin_SteamDeck_Reserved2, + k_EControllerActionOrigin_SteamDeck_Reserved3, + k_EControllerActionOrigin_SteamDeck_Reserved4, + k_EControllerActionOrigin_SteamDeck_Reserved5, + k_EControllerActionOrigin_SteamDeck_Reserved6, + k_EControllerActionOrigin_SteamDeck_Reserved7, + k_EControllerActionOrigin_SteamDeck_Reserved8, + k_EControllerActionOrigin_SteamDeck_Reserved9, + k_EControllerActionOrigin_SteamDeck_Reserved10, + k_EControllerActionOrigin_SteamDeck_Reserved11, + k_EControllerActionOrigin_SteamDeck_Reserved12, + k_EControllerActionOrigin_SteamDeck_Reserved13, + k_EControllerActionOrigin_SteamDeck_Reserved14, + k_EControllerActionOrigin_SteamDeck_Reserved15, + k_EControllerActionOrigin_SteamDeck_Reserved16, + k_EControllerActionOrigin_SteamDeck_Reserved17, + k_EControllerActionOrigin_SteamDeck_Reserved18, + k_EControllerActionOrigin_SteamDeck_Reserved19, + k_EControllerActionOrigin_SteamDeck_Reserved20, + + k_EControllerActionOrigin_Switch_JoyConButton_N, // With a Horizontal JoyCon this will be Y or what would be Dpad Right when vertical + k_EControllerActionOrigin_Switch_JoyConButton_E, // X + k_EControllerActionOrigin_Switch_JoyConButton_S, // A + k_EControllerActionOrigin_Switch_JoyConButton_W, // B + + k_EControllerActionOrigin_PS5_LeftGrip, + k_EControllerActionOrigin_PS5_RightGrip, + k_EControllerActionOrigin_PS5_LeftFn, + k_EControllerActionOrigin_PS5_RightFn, + + k_EControllerActionOrigin_Count, // If Steam has added support for new controllers origins will go here. + k_EControllerActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits. +}; + +#ifndef ISTEAMINPUT_H +enum EXboxOrigin +{ + k_EXboxOrigin_A, + k_EXboxOrigin_B, + k_EXboxOrigin_X, + k_EXboxOrigin_Y, + k_EXboxOrigin_LeftBumper, + k_EXboxOrigin_RightBumper, + k_EXboxOrigin_Menu, //Start + k_EXboxOrigin_View, //Back + k_EXboxOrigin_LeftTrigger_Pull, + k_EXboxOrigin_LeftTrigger_Click, + k_EXboxOrigin_RightTrigger_Pull, + k_EXboxOrigin_RightTrigger_Click, + k_EXboxOrigin_LeftStick_Move, + k_EXboxOrigin_LeftStick_Click, + k_EXboxOrigin_LeftStick_DPadNorth, + k_EXboxOrigin_LeftStick_DPadSouth, + k_EXboxOrigin_LeftStick_DPadWest, + k_EXboxOrigin_LeftStick_DPadEast, + k_EXboxOrigin_RightStick_Move, + k_EXboxOrigin_RightStick_Click, + k_EXboxOrigin_RightStick_DPadNorth, + k_EXboxOrigin_RightStick_DPadSouth, + k_EXboxOrigin_RightStick_DPadWest, + k_EXboxOrigin_RightStick_DPadEast, + k_EXboxOrigin_DPad_North, + k_EXboxOrigin_DPad_South, + k_EXboxOrigin_DPad_West, + k_EXboxOrigin_DPad_East, +}; + +enum ESteamInputType +{ + k_ESteamInputType_Unknown, + k_ESteamInputType_SteamController, + k_ESteamInputType_XBox360Controller, + k_ESteamInputType_XBoxOneController, + k_ESteamInputType_GenericGamepad, // DirectInput controllers + k_ESteamInputType_PS4Controller, + k_ESteamInputType_AppleMFiController, // Unused + k_ESteamInputType_AndroidController, // Unused + k_ESteamInputType_SwitchJoyConPair, // Unused + k_ESteamInputType_SwitchJoyConSingle, // Unused + k_ESteamInputType_SwitchProController, + k_ESteamInputType_MobileTouch, // Steam Link App On-screen Virtual Controller + k_ESteamInputType_PS3Controller, // Currently uses PS4 Origins + k_ESteamInputType_PS5Controller, // Added in SDK 151 + k_ESteamInputType_Count, + k_ESteamInputType_MaximumPossibleValue = 255, +}; +#endif + +enum ESteamControllerLEDFlag +{ + k_ESteamControllerLEDFlag_SetColor, + k_ESteamControllerLEDFlag_RestoreUserDefault }; // ControllerHandle_t is used to refer to a specific controller. @@ -123,6 +535,11 @@ typedef uint64 ControllerAnalogActionHandle_t; #pragma pack( push, 1 ) +#ifdef ISTEAMINPUT_H +#define ControllerAnalogActionData_t InputAnalogActionData_t +#define ControllerDigitalActionData_t InputDigitalActionData_t +#define ControllerMotionData_t InputMotionData_t +#else struct ControllerAnalogActionData_t { // Type of data coming from this action, this will match what got specified in the action set @@ -162,12 +579,12 @@ struct ControllerMotionData_t float rotVelY; float rotVelZ; }; - +#endif #pragma pack( pop ) //----------------------------------------------------------------------------- -// Purpose: Native Steam controller support API +// Purpose: Steam Input API //----------------------------------------------------------------------------- class ISteamController { @@ -179,19 +596,19 @@ public: // Synchronize API state with the latest Steam Controller inputs available. This // is performed automatically by SteamAPI_RunCallbacks, but for the absolute lowest - // possible latency, you call this directly before reading controller state. + // possible latency, you call this directly before reading controller state. This must + // be called from somewhere before GetConnectedControllers will return any handles virtual void RunFrame() = 0; // Enumerate currently connected controllers // handlesOut should point to a STEAM_CONTROLLER_MAX_COUNT sized array of ControllerHandle_t handles // Returns the number of handles written to handlesOut - virtual int GetConnectedControllers( ControllerHandle_t *handlesOut ) = 0; - - // Invokes the Steam overlay and brings up the binding screen - // Returns false is overlay is disabled / unavailable, or the user is not in Big Picture mode - virtual bool ShowBindingPanel( ControllerHandle_t controllerHandle ) = 0; + virtual int GetConnectedControllers( STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_COUNT, Receives list of connected controllers ) ControllerHandle_t *handlesOut ) = 0; + //----------------------------------------------------------------------------- // ACTION SETS + //----------------------------------------------------------------------------- + // Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls. virtual ControllerActionSetHandle_t GetActionSetHandle( const char *pszActionSetName ) = 0; @@ -200,8 +617,20 @@ public: // your state loops, instead of trying to place it in all of your state transitions. virtual void ActivateActionSet( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle ) = 0; virtual ControllerActionSetHandle_t GetCurrentActionSet( ControllerHandle_t controllerHandle ) = 0; - + + // ACTION SET LAYERS + virtual void ActivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle ) = 0; + // Enumerate currently active layers + // handlesOut should point to a STEAM_CONTROLLER_MAX_ACTIVE_LAYERS sized array of ControllerActionSetHandle_t handles. + // Returns the number of handles written to handlesOut + virtual int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ACTIVE_LAYERS, Receives list of active layers ) ControllerActionSetHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- // ACTIONS + //----------------------------------------------------------------------------- + // Lookup the handle for a digital action. Best to do this once on startup, and store the handles for all future API calls. virtual ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName ) = 0; @@ -209,8 +638,9 @@ public: virtual ControllerDigitalActionData_t GetDigitalActionData( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle ) = 0; // Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. - // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles - virtual int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin *originsOut ) = 0; + // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles. The EControllerActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ORIGINS, Receives list of aciton origins ) EControllerActionOrigin *originsOut ) = 0; // Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls. virtual ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName ) = 0; @@ -219,11 +649,25 @@ public: virtual ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle ) = 0; // Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. - // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles - virtual int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin *originsOut ) = 0; - - virtual void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction ) = 0; + // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles. The EControllerActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ORIGINS, Receives list of action origins ) EControllerActionOrigin *originsOut ) = 0; + // Get a local path to art for on-screen glyph for a particular origin - this call is cheap + virtual const char *GetGlyphForActionOrigin( EControllerActionOrigin eOrigin ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified origin - this call is serialized + virtual const char *GetStringForActionOrigin( EControllerActionOrigin eOrigin ) = 0; + + virtual void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction ) = 0; + + // Returns raw motion data from the specified controller + virtual ControllerMotionData_t GetMotionData( ControllerHandle_t controllerHandle ) = 0; + + //----------------------------------------------------------------------------- + // OUTPUTS + //----------------------------------------------------------------------------- + // Trigger a haptic pulse on a controller virtual void TriggerHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ) = 0; @@ -231,21 +675,52 @@ public: // nFlags is currently unused and reserved for future use. virtual void TriggerRepeatedHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ) = 0; - // Returns the associated gamepad index for the specified controller, if emulating a gamepad + // Trigger a vibration event on supported controllers. + virtual void TriggerVibration( ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ) = 0; + + // Set the controller LED color on supported controllers. + virtual void SetLEDColor( ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ) = 0; + + //----------------------------------------------------------------------------- + // Utility functions available without using the rest of Steam Input API + //----------------------------------------------------------------------------- + + // Invokes the Steam overlay and brings up the binding screen if the user is using Big Picture Mode + // If the user is not in Big Picture Mode it will open up the binding in a new window + virtual bool ShowBindingPanel( ControllerHandle_t controllerHandle ) = 0; + + // Returns the input type for a particular handle - unlike EControllerActionOrigin which update with Steam and may return unrecognized values + // ESteamInputType will remain static and only return valid values from your SDK version + virtual ESteamInputType GetInputTypeForHandle( ControllerHandle_t controllerHandle ) = 0; + + // Returns the associated controller handle for the specified emulated gamepad - can be used with the above 2 functions + // to identify controllers presented to your game over Xinput. Returns 0 if the Xinput index isn't associated with Steam Input + virtual ControllerHandle_t GetControllerForGamepadIndex( int nIndex ) = 0; + + // Returns the associated gamepad index for the specified controller, if emulating a gamepad or -1 if not associated with an Xinput index virtual int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle ) = 0; - // Returns the associated controller handle for the specified emulated gamepad - virtual ControllerHandle_t GetControllerForGamepadIndex( int nIndex ) = 0; - - // Returns raw motion data from the specified controller - virtual ControllerMotionData_t GetMotionData( ControllerHandle_t controllerHandle ) = 0; - - // Attempt to display origins of given action in the controller HUD, for the currently active action set - // Returns false is overlay is disabled / unavailable, or the user is not in Big Picture mode - virtual bool ShowDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition ) = 0; - virtual bool ShowAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle, float flScale, float flXPosition, float flYPosition ) = 0; + // Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. + virtual const char *GetStringForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get a local path to art for on-screen glyph for a particular Xbox controller origin. + virtual const char *GetGlyphForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get the equivalent ActionOrigin for a given Xbox controller origin this can be chained with GetGlyphForActionOrigin to provide future proof glyphs for + // non-Steam Input API action games. Note - this only translates the buttons directly and doesn't take into account any remapping a user has made in their configuration + virtual EControllerActionOrigin GetActionOriginFromXboxOrigin( ControllerHandle_t controllerHandle, EXboxOrigin eOrigin ) = 0; + + // Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EControllerActionOrigin_None + virtual EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin ) = 0; + + // Get the binding revision for a given device. Returns false if the handle was not valid or if a mapping is not yet loaded for the device + virtual bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor ) = 0; }; -#define STEAMCONTROLLER_INTERFACE_VERSION "SteamController004" +#define STEAMCONTROLLER_INTERFACE_VERSION "SteamController008" + +// Global interface accessor +inline ISteamController *SteamController(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamController *, SteamController, STEAMCONTROLLER_INTERFACE_VERSION ); #endif // ISTEAMCONTROLLER_H diff --git a/lib/linux/include/steam/isteamdualsense.h b/lib/linux/include/steam/isteamdualsense.h new file mode 100644 index 0000000..5acc857 --- /dev/null +++ b/lib/linux/include/steam/isteamdualsense.h @@ -0,0 +1,169 @@ +/* SIE CONFIDENTIAL + * $PSLibId$ + * Copyright (C) 2019 Sony Interactive Entertainment Inc. + * All Rights Reserved. + */ + + +#ifndef _SCE_PAD_TRIGGER_EFFECT_H +#define _SCE_PAD_TRIGGER_EFFECT_H + + +#define SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_L2 0x01 +#define SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_R2 0x02 + +#define SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_L2 0 +#define SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_R2 1 + +#define SCE_PAD_TRIGGER_EFFECT_TRIGGER_NUM 2 + +/* Definition of control point num */ +#define SCE_PAD_TRIGGER_EFFECT_CONTROL_POINT_NUM 10 + +typedef enum ScePadTriggerEffectMode{ + SCE_PAD_TRIGGER_EFFECT_MODE_OFF, + SCE_PAD_TRIGGER_EFFECT_MODE_FEEDBACK, + SCE_PAD_TRIGGER_EFFECT_MODE_WEAPON, + SCE_PAD_TRIGGER_EFFECT_MODE_VIBRATION, + SCE_PAD_TRIGGER_EFFECT_MODE_MULTIPLE_POSITION_FEEDBACK, + SCE_PAD_TRIGGER_EFFECT_MODE_SLOPE_FEEDBACK, + SCE_PAD_TRIGGER_EFFECT_MODE_MULTIPLE_POSITION_VIBRATION, +} ScePadTriggerEffectMode; + +/** + *E + * @brief parameter for setting the trigger effect to off mode. + * Off Mode: Stop trigger effect. + **/ +typedef struct ScePadTriggerEffectOffParam{ + uint8_t padding[48]; +} ScePadTriggerEffectOffParam; + +/** + *E + * @brief parameter for setting the trigger effect to Feedback mode. + * Feedback Mode: The motor arm pushes back trigger. + * Trigger obtains stiffness at specified position. + **/ +typedef struct ScePadTriggerEffectFeedbackParam{ + uint8_t position; /*E position where the strength of target trigger start changing(0~9). */ + uint8_t strength; /*E strength that the motor arm pushes back target trigger(0~8 (0: Same as Off mode)). */ + uint8_t padding[46]; +} ScePadTriggerEffectFeedbackParam; + +/** + *E + * @brief parameter for setting the trigger effect to Weapon mode. + * Weapon Mode: Emulate weapon like gun trigger. + **/ +typedef struct ScePadTriggerEffectWeaponParam{ + uint8_t startPosition; /*E position where the stiffness of trigger start changing(2~7). */ + uint8_t endPosition; /*E position where the stiffness of trigger finish changing(startPosition+1~8). */ + uint8_t strength; /*E strength of gun trigger(0~8 (0: Same as Off mode)). */ + uint8_t padding[45]; +} ScePadTriggerEffectWeaponParam; + +/** + *E + * @brief parameter for setting the trigger effect to Vibration mode. + * Vibration Mode: Vibrates motor arm around specified position. + **/ +typedef struct ScePadTriggerEffectVibrationParam{ + uint8_t position; /*E position where the motor arm start vibrating(0~9). */ + uint8_t amplitude; /*E vibration amplitude(0~8 (0: Same as Off mode)). */ + uint8_t frequency; /*E vibration frequency(0~255[Hz] (0: Same as Off mode)). */ + uint8_t padding[45]; +} ScePadTriggerEffectVibrationParam; + +/** + *E + * @brief parameter for setting the trigger effect to ScePadTriggerEffectMultiplePositionFeedbackParam mode. + * Multi Position Feedback Mode: The motor arm pushes back trigger. + * Trigger obtains specified stiffness at each control point. + **/ +typedef struct ScePadTriggerEffectMultiplePositionFeedbackParam{ + uint8_t strength[SCE_PAD_TRIGGER_EFFECT_CONTROL_POINT_NUM]; /*E strength that the motor arm pushes back target trigger at position(0~8 (0: Same as Off mode)). + * strength[0] means strength of motor arm at position0. + * strength[1] means strength of motor arm at position1. + * ... + * */ + uint8_t padding[38]; +} ScePadTriggerEffectMultiplePositionFeedbackParam; + +/** + *E + * @brief parameter for setting the trigger effect to Feedback3 mode. + * Slope Feedback Mode: The motor arm pushes back trigger between two spedified control points. + * Stiffness of the trigger is changing depending on the set place. + **/ +typedef struct ScePadTriggerEffectSlopeFeedbackParam{ + + uint8_t startPosition; /*E position where the strength of target trigger start changing(0~endPosition). */ + uint8_t endPosition; /*E position where the strength of target trigger finish changing(startPosition+1~9). */ + uint8_t startStrength; /*E strength when trigger's position is startPosition(1~8) */ + uint8_t endStrength; /*E strength when trigger's position is endPosition(1~8) */ + uint8_t padding[44]; +} ScePadTriggerEffectSlopeFeedbackParam; + +/** + *E + * @brief parameter for setting the trigger effect to Vibration2 mode. + * Multi Position Vibration Mode: Vibrates motor arm around specified control point. + * Trigger vibrates specified amplitude at each control point. + **/ +typedef struct ScePadTriggerEffectMultiplePositionVibrationParam{ + uint8_t frequency; /*E vibration frequency(0~255 (0: Same as Off mode)) */ + uint8_t amplitude[SCE_PAD_TRIGGER_EFFECT_CONTROL_POINT_NUM]; /*E vibration amplitude at position(0~8 (0: Same as Off mode)). + * amplitude[0] means amplitude of vibration at position0. + * amplitude[1] means amplitude of vibration at position1. + * ... + * */ + uint8_t padding[37]; +} ScePadTriggerEffectMultiplePositionVibrationParam; + +/** + *E + * @brief parameter for setting the trigger effect mode. + **/ +typedef union ScePadTriggerEffectCommandData{ + ScePadTriggerEffectOffParam offParam; + ScePadTriggerEffectFeedbackParam feedbackParam; + ScePadTriggerEffectWeaponParam weaponParam; + ScePadTriggerEffectVibrationParam vibrationParam; + ScePadTriggerEffectMultiplePositionFeedbackParam multiplePositionFeedbackParam; + ScePadTriggerEffectSlopeFeedbackParam slopeFeedbackParam; + ScePadTriggerEffectMultiplePositionVibrationParam multiplePositionVibrationParam; +} ScePadTriggerEffectCommandData; + +/** + *E + * @brief parameter for setting the trigger effect. + **/ +typedef struct ScePadTriggerEffectCommand{ + ScePadTriggerEffectMode mode; + uint8_t padding[4]; + ScePadTriggerEffectCommandData commandData; +} ScePadTriggerEffectCommand; + +/** + *E + * @brief parameter for the scePadSetTriggerEffect function. + **/ +typedef struct ScePadTriggerEffectParam{ + + uint8_t triggerMask; /*E Set trigger mask to activate trigger effect commands. + * SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_L2 : 0x01 + * SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_R2 : 0x02 + * */ + uint8_t padding[7]; + + ScePadTriggerEffectCommand command[SCE_PAD_TRIGGER_EFFECT_TRIGGER_NUM]; /*E command[SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_L2] is for L2 trigger setting + * and param[SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_R2] is for R2 trgger setting. + * */ +} ScePadTriggerEffectParam; + +#if defined(__cplusplus) && __cplusplus >= 201103L +static_assert( sizeof( ScePadTriggerEffectParam ) == 120, "ScePadTriggerEffectParam has incorrect size" ); +#endif + +#endif /* _SCE_PAD_TRIGGER_EFFECT_H */ diff --git a/lib/linux/include/steam/isteamfriends.h b/lib/linux/include/steam/isteamfriends.h index 8013356..26351ee 100644 --- a/lib/linux/include/steam/isteamfriends.h +++ b/lib/linux/include/steam/isteamfriends.h @@ -1,4 +1,4 @@ -//====== Copyright (C) 1996-2008, Valve Corporation, All rights reserved. ===== +//====== Copyright Valve Corporation, All rights reserved. ==================== // // Purpose: interface to both friends list data and general information about users // @@ -10,9 +10,7 @@ #pragma once #endif -#include "isteamclient.h" -#include "steamclientpublic.h" - +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: set of relationships to other users @@ -59,6 +57,7 @@ enum EPersonaState k_EPersonaStateSnooze = 4, // auto-away for a long time k_EPersonaStateLookingToTrade = 5, // Online, trading k_EPersonaStateLookingToPlay = 6, // Online, wanting to play + k_EPersonaStateInvisible = 7, // Online, but appears offline to friends. This status is never published to clients. k_EPersonaStateMax, }; @@ -80,7 +79,7 @@ enum EFriendFlags k_EFriendFlagRequestingInfo = 0x100, k_EFriendFlagIgnored = 0x200, k_EFriendFlagIgnoredFriend = 0x400, - k_EFriendFlagSuggested = 0x800, + // k_EFriendFlagSuggested = 0x800, // not used k_EFriendFlagChatMember = 0x1000, k_EFriendFlagAll = 0xFFFF, }; @@ -92,7 +91,7 @@ enum EFriendFlags #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct FriendGameInfo_t { @@ -104,6 +103,10 @@ struct FriendGameInfo_t }; #pragma pack( pop ) +// special values for FriendGameInfo_t::m_usQueryPort +const uint16 k_usFriendGameInfoQueryPort_NotInitialized = 0xFFFF; // We haven't asked the GS for this query port's actual value yet. Was #define QUERY_PORT_NOT_INITIALIZED in older versions of Steamworks SDK. +const uint16 k_usFriendGameInfoQueryPort_Error = 0xFFFE; // We were unable to get the query port for this server. Was #define QUERY_PORT_ERROR in older versions of Steamworks SDK. + // maximum number of characters in a user's name. Two flavors; one for UTF-8 and one for UTF-16. // The UTF-8 version has to be very generous to accomodate characters that get large when encoded // in UTF-8. @@ -128,22 +131,11 @@ enum EUserRestriction k_nUserRestrictionTrading = 64, // user cannot participate in trading (console, mobile) }; -//----------------------------------------------------------------------------- -// Purpose: information about user sessions -//----------------------------------------------------------------------------- -struct FriendSessionStateInfo_t -{ - uint32 m_uiOnlineSessionInstances; - uint8 m_uiPublishedToFriendsSessionInstance; -}; - - - // size limit on chat room or member metadata const uint32 k_cubChatMetadataMax = 8192; // size limits on Rich Presence data -enum { k_cchMaxRichPresenceKeys = 20 }; +enum { k_cchMaxRichPresenceKeys = 30 }; enum { k_cchMaxRichPresenceKeyLength = 64 }; enum { k_cchMaxRichPresenceValueLength = 256 }; @@ -155,6 +147,47 @@ enum EOverlayToStoreFlag k_EOverlayToStoreFlag_AddToCartAndShow = 2, }; + +//----------------------------------------------------------------------------- +// Purpose: Tells Steam where to place the browser window inside the overlay +//----------------------------------------------------------------------------- +enum EActivateGameOverlayToWebPageMode +{ + k_EActivateGameOverlayToWebPageMode_Default = 0, // Browser will open next to all other windows that the user has open in the overlay. + // The window will remain open, even if the user closes then re-opens the overlay. + + k_EActivateGameOverlayToWebPageMode_Modal = 1 // Browser will be opened in a special overlay configuration which hides all other windows + // that the user has open in the overlay. When the user closes the overlay, the browser window + // will also close. When the user closes the browser window, the overlay will automatically close. +}; + +//----------------------------------------------------------------------------- +// Purpose: See GetProfileItemPropertyString and GetProfileItemPropertyUint +//----------------------------------------------------------------------------- +enum ECommunityProfileItemType +{ + k_ECommunityProfileItemType_AnimatedAvatar = 0, + k_ECommunityProfileItemType_AvatarFrame = 1, + k_ECommunityProfileItemType_ProfileModifier = 2, + k_ECommunityProfileItemType_ProfileBackground = 3, + k_ECommunityProfileItemType_MiniProfileBackground = 4, +}; +enum ECommunityProfileItemProperty +{ + k_ECommunityProfileItemProperty_ImageSmall = 0, // string + k_ECommunityProfileItemProperty_ImageLarge = 1, // string + k_ECommunityProfileItemProperty_InternalName = 2, // string + k_ECommunityProfileItemProperty_Title = 3, // string + k_ECommunityProfileItemProperty_Description = 4, // string + k_ECommunityProfileItemProperty_AppID = 5, // uint32 + k_ECommunityProfileItemProperty_TypeID = 6, // uint32 + k_ECommunityProfileItemProperty_Class = 7, // uint32 + k_ECommunityProfileItemProperty_MovieWebM = 8, // string + k_ECommunityProfileItemProperty_MovieMP4 = 9, // string + k_ECommunityProfileItemProperty_MovieWebMSmall = 10, // string + k_ECommunityProfileItemProperty_MovieMP4Small = 11, // string +}; + //----------------------------------------------------------------------------- // Purpose: interface to accessing information about individual users, // that can be a friend, in a group, on a game server or in a lobby with the local user @@ -176,7 +209,7 @@ public: // // If the name change fails to happen on the server, then an additional global PersonaStateChange_t will be posted // to change the name back, in addition to the SetPersonaNameResponse_t callback. - CALL_RESULT( SetPersonaNameResponse_t ) + STEAM_CALL_RESULT( SetPersonaNameResponse_t ) virtual SteamAPICall_t SetPersonaName( const char *pchPersonaName ) = 0; // gets the status of the current user @@ -207,13 +240,14 @@ public: virtual const char *GetFriendPersonaName( CSteamID steamIDFriend ) = 0; // returns true if the friend is actually in a game, and fills in pFriendGameInfo with an extra details - virtual bool GetFriendGamePlayed( CSteamID steamIDFriend, OUT_STRUCT() FriendGameInfo_t *pFriendGameInfo ) = 0; + virtual bool GetFriendGamePlayed( CSteamID steamIDFriend, STEAM_OUT_STRUCT() FriendGameInfo_t *pFriendGameInfo ) = 0; // accesses old friends names - returns an empty string when their are no more items in the history virtual const char *GetFriendPersonaNameHistory( CSteamID steamIDFriend, int iPersonaName ) = 0; // friends steam level virtual int GetFriendSteamLevel( CSteamID steamIDFriend ) = 0; // Returns nickname the current user has set for the specified player. Returns NULL if the no nickname has been set for that player. + // DEPRECATED: GetPersonaName follows the Steam nickname preferences, so apps shouldn't need to care about nicknames explicitly. virtual const char *GetPlayerNickname( CSteamID steamIDPlayer ) = 0; // friend grouping (tag) apis @@ -226,7 +260,7 @@ public: // returns the number of members in a given friends group virtual int GetFriendsGroupMembersCount( FriendsGroupID_t friendsGroupID ) = 0; // gets up to nMembersCount members of the given friends group, if fewer exist than requested those positions' SteamIDs will be invalid - virtual void GetFriendsGroupMembersList( FriendsGroupID_t friendsGroupID, OUT_ARRAY_CALL(nMembersCount, GetFriendsGroupMembersCount, friendsGroupID ) CSteamID *pOutSteamIDMembers, int nMembersCount ) = 0; + virtual void GetFriendsGroupMembersList( FriendsGroupID_t friendsGroupID, STEAM_OUT_ARRAY_CALL(nMembersCount, GetFriendsGroupMembersCount, friendsGroupID ) CSteamID *pOutSteamIDMembers, int nMembersCount ) = 0; // returns true if the specified user meets any of the criteria specified in iFriendFlags // iFriendFlags can be the union (binary or, |) of one or more k_EFriendFlags values @@ -239,8 +273,10 @@ public: virtual const char *GetClanTag( CSteamID steamIDClan ) = 0; // returns the most recent information we have about what's happening in a clan virtual bool GetClanActivityCounts( CSteamID steamIDClan, int *pnOnline, int *pnInGame, int *pnChatting ) = 0; + // for clans a user is a member of, they will have reasonably up-to-date information, but for others you'll have to download the info to have the latest - virtual SteamAPICall_t DownloadClanActivityCounts( ARRAY_COUNT(cClansToRequest) CSteamID *psteamIDClans, int cClansToRequest ) = 0; + STEAM_CALL_RESULT( DownloadClanActivityCountsResult_t ) + virtual SteamAPICall_t DownloadClanActivityCounts( STEAM_ARRAY_COUNT(cClansToRequest) CSteamID *psteamIDClans, int cClansToRequest ) = 0; // iterators for getting users in a chat room, lobby, game server or clan // note that large clans that cannot be iterated by the local user @@ -256,7 +292,8 @@ public: virtual void SetInGameVoiceSpeaking( CSteamID steamIDUser, bool bSpeaking ) = 0; // activates the game overlay, with an optional dialog to open - // valid options are "Friends", "Community", "Players", "Settings", "OfficialGameGroup", "Stats", "Achievements" + // valid options include "Friends", "Community", "Players", "Settings", "OfficialGameGroup", "Stats", "Achievements", + // "chatroomgroup/nnnn" virtual void ActivateGameOverlay( const char *pchDialog ) = 0; // activates game overlay to a specific place @@ -274,7 +311,7 @@ public: // activates game overlay web browser directly to the specified URL // full address with protocol type is required, e.g. http://www.steamgames.com/ - virtual void ActivateGameOverlayToWebPage( const char *pchURL ) = 0; + virtual void ActivateGameOverlayToWebPage( const char *pchURL, EActivateGameOverlayToWebPageMode eMode = k_EActivateGameOverlayToWebPageMode_Default ) = 0; // activates game overlay to store page for app virtual void ActivateGameOverlayToStore( AppId_t nAppID, EOverlayToStoreFlag eFlag ) = 0; @@ -309,7 +346,7 @@ public: // you can only ask about clans that a user is a member of // note that this won't download avatars automatically; if you get an officer, // and no avatar image is available, call RequestUserInformation( steamID, false ) to download the avatar - CALL_RESULT( ClanOfficerListResponse_t ) + STEAM_CALL_RESULT( ClanOfficerListResponse_t ) virtual SteamAPICall_t RequestClanOfficerList( CSteamID steamIDClan ) = 0; // iteration of clan officers - can only be done when a RequestClanOfficerList() call has completed @@ -328,9 +365,15 @@ public: // Rich Presence data is automatically shared between friends who are in the same game // Each user has a set of Key/Value pairs // Note the following limits: k_cchMaxRichPresenceKeys, k_cchMaxRichPresenceKeyLength, k_cchMaxRichPresenceValueLength - // There are two magic keys: + // There are five magic keys: // "status" - a UTF-8 string that will show up in the 'view game info' dialog in the Steam friends list // "connect" - a UTF-8 string that contains the command-line for how a friend can connect to a game + // "steam_display" - Names a rich presence localization token that will be displayed in the viewing user's selected language + // in the Steam client UI. For more info: https://partner.steamgames.com/doc/api/ISteamFriends#richpresencelocalization + // "steam_player_group" - When set, indicates to the Steam client that the player is a member of a particular group. Players in the same group + // may be organized together in various places in the Steam UI. + // "steam_player_group_size" - When set, indicates the total number of players in the steam_player_group. The Steam client may use this number to + // display additional information about a group when all of the members are not part of a user's friends list. // GetFriendRichPresence() returns an empty string "" if no value is set // SetRichPresence() to a NULL or an empty string deletes the key // You can iterate the current set of keys for a friend with GetFriendRichPresenceKeyCount() @@ -343,10 +386,9 @@ public: // Requests rich presence for a specific user. virtual void RequestFriendRichPresence( CSteamID steamIDFriend ) = 0; - // rich invite support - // if the target accepts the invite, the pchConnectString gets added to the command-line for launching the game - // if the game is already running, a GameRichPresenceJoinRequested_t callback is posted containing the connect string - // invites can only be sent to friends + // Rich invite support. + // If the target accepts the invite, a GameRichPresenceJoinRequested_t callback is posted containing the connect string. + // (Or you can configure your game so that it is passed on the command line instead. This is a deprecated path; ask us if you really need this.) virtual bool InviteUserToGame( CSteamID steamIDFriend, const char *pchConnectString ) = 0; // recently-played-with friends iteration @@ -361,13 +403,13 @@ public: // this allows in-game access to group (clan) chats from in the game // the behavior is somewhat sophisticated, because the user may or may not be already in the group chat from outside the game or in the overlay // use ActivateGameOverlayToUser( "chat", steamIDClan ) to open the in-game overlay version of the chat - CALL_RESULT( JoinClanChatRoomCompletionResult_t ) + STEAM_CALL_RESULT( JoinClanChatRoomCompletionResult_t ) virtual SteamAPICall_t JoinClanChatRoom( CSteamID steamIDClan ) = 0; virtual bool LeaveClanChatRoom( CSteamID steamIDClan ) = 0; virtual int GetClanChatMemberCount( CSteamID steamIDClan ) = 0; virtual CSteamID GetChatMemberByIndex( CSteamID steamIDClan, int iUser ) = 0; virtual bool SendClanChatMessage( CSteamID steamIDClanChat, const char *pchText ) = 0; - virtual int GetClanChatMessage( CSteamID steamIDClanChat, int iMessage, void *prgchText, int cchTextMax, EChatEntryType *peChatEntryType, OUT_STRUCT() CSteamID *psteamidChatter ) = 0; + virtual int GetClanChatMessage( CSteamID steamIDClanChat, int iMessage, void *prgchText, int cchTextMax, EChatEntryType *peChatEntryType, STEAM_OUT_STRUCT() CSteamID *psteamidChatter ) = 0; virtual bool IsClanChatAdmin( CSteamID steamIDClanChat, CSteamID steamIDUser ) = 0; // interact with the Steam (game overlay / desktop) @@ -382,15 +424,49 @@ public: virtual int GetFriendMessage( CSteamID steamIDFriend, int iMessageID, void *pvData, int cubData, EChatEntryType *peChatEntryType ) = 0; // following apis - CALL_RESULT( FriendsGetFollowerCount_t ) + STEAM_CALL_RESULT( FriendsGetFollowerCount_t ) virtual SteamAPICall_t GetFollowerCount( CSteamID steamID ) = 0; - CALL_RESULT( FriendsIsFollowing_t ) + STEAM_CALL_RESULT( FriendsIsFollowing_t ) virtual SteamAPICall_t IsFollowing( CSteamID steamID ) = 0; - CALL_RESULT( FriendsEnumerateFollowingList_t ) + STEAM_CALL_RESULT( FriendsEnumerateFollowingList_t ) virtual SteamAPICall_t EnumerateFollowingList( uint32 unStartIndex ) = 0; + + virtual bool IsClanPublic( CSteamID steamIDClan ) = 0; + virtual bool IsClanOfficialGameGroup( CSteamID steamIDClan ) = 0; + + /// Return the number of chats (friends or chat rooms) with unread messages. + /// A "priority" message is one that would generate some sort of toast or + /// notification, and depends on user settings. + /// + /// You can register for UnreadChatMessagesChanged_t callbacks to know when this + /// has potentially changed. + virtual int GetNumChatsWithUnreadPriorityMessages() = 0; + + // activates game overlay to open the remote play together invite dialog. Invitations will be sent for remote play together + virtual void ActivateGameOverlayRemotePlayTogetherInviteDialog( CSteamID steamIDLobby ) = 0; + + // Call this before calling ActivateGameOverlayToWebPage() to have the Steam Overlay Browser block navigations + // to your specified protocol (scheme) uris and instead dispatch a OverlayBrowserProtocolNavigation_t callback to your game. + // ActivateGameOverlayToWebPage() must have been called with k_EActivateGameOverlayToWebPageMode_Modal + virtual bool RegisterProtocolInOverlayBrowser( const char *pchProtocol ) = 0; + + // Activates the game overlay to open an invite dialog that will send the provided Rich Presence connect string to selected friends + virtual void ActivateGameOverlayInviteDialogConnectString( const char *pchConnectString ) = 0; + + // Steam Community items equipped by a user on their profile + // You can register for EquippedProfileItemsChanged_t to know when a friend has changed their equipped profile items + STEAM_CALL_RESULT( EquippedProfileItems_t ) + virtual SteamAPICall_t RequestEquippedProfileItems( CSteamID steamID ) = 0; + virtual bool BHasEquippedProfileItem( CSteamID steamID, ECommunityProfileItemType itemType ) = 0; + virtual const char *GetProfileItemPropertyString( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ) = 0; + virtual uint32 GetProfileItemPropertyUint( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ) = 0; }; -#define STEAMFRIENDS_INTERFACE_VERSION "SteamFriends015" +#define STEAMFRIENDS_INTERFACE_VERSION "SteamFriends017" + +// Global interface accessor +inline ISteamFriends *SteamFriends(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamFriends *, SteamFriends, STEAMFRIENDS_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -398,7 +474,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- @@ -428,9 +504,10 @@ enum EPersonaChange k_EPersonaChangeLeftSource = 0x0100, k_EPersonaChangeRelationshipChanged = 0x0200, k_EPersonaChangeNameFirstSet = 0x0400, - k_EPersonaChangeFacebookInfo = 0x0800, + k_EPersonaChangeBroadcast = 0x0800, k_EPersonaChangeNickname = 0x1000, k_EPersonaChangeSteamLevel = 0x2000, + k_EPersonaChangeRichPresence = 0x4000, }; @@ -441,7 +518,10 @@ enum EPersonaChange struct GameOverlayActivated_t { enum { k_iCallback = k_iSteamFriendsCallbacks + 31 }; - uint8 m_bActive; // true if it's just been activated, false otherwise + uint8 m_bActive; // true if it's just been activated, false otherwise + bool m_bUserInitiated; // true if the user asked for the overlay to be activated/deactivated + AppId_t m_nAppID; // the appID of the game (should always be the current game) + uint32 m_dwOverlayPID; // used internally }; @@ -630,6 +710,47 @@ struct SetPersonaNameResponse_t EResult m_result; // detailed result code }; +//----------------------------------------------------------------------------- +// Purpose: Invoked when the status of unread messages changes +//----------------------------------------------------------------------------- +struct UnreadChatMessagesChanged_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 48 }; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Dispatched when an overlay browser instance is navigated to a protocol/scheme registered by RegisterProtocolInOverlayBrowser() +//----------------------------------------------------------------------------- +struct OverlayBrowserProtocolNavigation_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 49 }; + char rgchURI[ 1024 ]; +}; + +//----------------------------------------------------------------------------- +// Purpose: A user's equipped profile items have changed +//----------------------------------------------------------------------------- +struct EquippedProfileItemsChanged_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 50 }; + CSteamID m_steamID; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +struct EquippedProfileItems_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 51 }; + EResult m_eResult; + CSteamID m_steamID; + bool m_bHasAnimatedAvatar; + bool m_bHasAvatarFrame; + bool m_bHasProfileModifier; + bool m_bHasProfileBackground; + bool m_bHasMiniProfileBackground; +}; #pragma pack( pop ) diff --git a/lib/linux/include/steam/isteamgamecoordinator.h b/lib/linux/include/steam/isteamgamecoordinator.h index 5ab0637..89b740d 100644 --- a/lib/linux/include/steam/isteamgamecoordinator.h +++ b/lib/linux/include/steam/isteamgamecoordinator.h @@ -10,8 +10,7 @@ #pragma once #endif -#include "steamtypes.h" -#include "steamclientpublic.h" +#include "steam_api_common.h" // list of possible return values from the ISteamGameCoordinator API @@ -54,7 +53,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif // callback notification - A new message is available for reading from the message queue diff --git a/lib/linux/include/steam/isteamgameserver.h b/lib/linux/include/steam/isteamgameserver.h index e19f1dd..ba4d125 100644 --- a/lib/linux/include/steam/isteamgameserver.h +++ b/lib/linux/include/steam/isteamgameserver.h @@ -10,9 +10,7 @@ #pragma once #endif -#include "isteamclient.h" - -#define MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE ((uint16)-1) +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: Functions for authenticating users via Steam to play on a game server @@ -27,7 +25,7 @@ public: // /// This is called by SteamGameServer_Init, and you will usually not need to call it directly - virtual bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString ) = 0; + STEAM_PRIVATE_API( virtual bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString ) = 0; ) /// Game product identifier. This is currently used by the master server for version checking purposes. /// It's a required field, but will eventually will go away, and the AppID will be used for this purpose. @@ -93,14 +91,23 @@ public: /// Set name of map to report in the server browser /// - /// @see k_cbMaxGameServerName + /// @see k_cbMaxGameServerMapName virtual void SetMapName( const char *pszMapName ) = 0; /// Let people know if your server will require a password virtual void SetPasswordProtected( bool bPasswordProtected ) = 0; - /// Spectator server. The default value is zero, meaning the service - /// is not used. + /// Spectator server port to advertise. The default value is zero, meaning the + /// service is not used. If your server receives any info requests on the LAN, + /// this is the value that will be placed into the reply for such local queries. + /// + /// This is also the value that will be advertised by the master server. + /// The only exception is if your server is using a FakeIP. Then then the second + /// fake port number (index 1) assigned to your server will be listed on the master + /// server as the spectator port, if you set this value to any nonzero value. + /// + /// This function merely controls the values that are advertised -- it's up to you to + /// configure the server to actually listen on this port and handle any spectator traffic virtual void SetSpectatorPort( uint16 unSpectatorPort ) = 0; /// Name of the spectator server. (Only used if spectator port is nonzero.) @@ -122,8 +129,6 @@ public: /// Sets a string defining the "gamedata" for this server, this is optional, but if it is set /// it allows users to filter in the matchmaking/server-browser interfaces based on the value - /// don't set this unless it actually changes, its only uploaded to the master once (when - /// acknowledged) /// /// @see k_cbMaxGameServerGameData virtual void SetGameData( const char *pchGameData ) = 0; @@ -131,45 +136,25 @@ public: /// Region identifier. This is an optional field, the default value is empty, meaning the "world" region virtual void SetRegion( const char *pszRegion ) = 0; + /// Indicate whether you wish to be listed on the master server list + /// and/or respond to server browser / LAN discovery packets. + /// The server starts with this value set to false. You should set all + /// relevant server parameters before enabling advertisement on the server. + /// + /// (This function used to be named EnableHeartbeats, so if you are wondering + /// where that function went, it's right here. It does the same thing as before, + /// the old name was just confusing.) + virtual void SetAdvertiseServerActive( bool bActive ) = 0; + // -// Player list management / authentication +// Player list management / authentication. // - // Handles receiving a new connection from a Steam user. This call will ask the Steam - // servers to validate the users identity, app ownership, and VAC status. If the Steam servers - // are off-line, then it will validate the cached ticket itself which will validate app ownership - // and identity. The AuthBlob here should be acquired on the game client using SteamUser()->InitiateGameConnection() - // and must then be sent up to the game server for authentication. - // - // Return Value: returns true if the users ticket passes basic checks. pSteamIDUser will contain the Steam ID of this user. pSteamIDUser must NOT be NULL - // If the call succeeds then you should expect a GSClientApprove_t or GSClientDeny_t callback which will tell you whether authentication - // for the user has succeeded or failed (the steamid in the callback will match the one returned by this call) - virtual bool SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser ) = 0; - - // Creates a fake user (ie, a bot) which will be listed as playing on the server, but skips validation. - // - // Return Value: Returns a SteamID for the user to be tracked with, you should call HandleUserDisconnect() - // when this user leaves the server just like you would for a real user. - virtual CSteamID CreateUnauthenticatedUserConnection() = 0; - - // Should be called whenever a user leaves our game server, this lets Steam internally - // track which users are currently on which servers for the purposes of preventing a single - // account being logged into multiple servers, showing who is currently on a server, etc. - virtual void SendUserDisconnect( CSteamID steamIDUser ) = 0; - - // Update the data to be displayed in the server browser and matchmaking interfaces for a user - // currently connected to the server. For regular users you must call this after you receive a - // GSUserValidationSuccess callback. - // - // Return Value: true if successful, false if failure (ie, steamIDUser wasn't for an active player) - virtual bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore ) = 0; - - // New auth system APIs - do not mix with the old auth system APIs. - // ---------------------------------------------------------------- - // Retrieve ticket to be sent to the entity who wishes to authenticate you ( using BeginAuthSession API ). // pcbTicket retrieves the length of the actual ticket. - virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket ) = 0; + // SteamNetworkingIdentity is an optional parameter to hold the public IP address of the entity you are connecting to + // if an IP address is passed Steam will only allow the ticket to be used by an entity with that IP address + virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket, const SteamNetworkingIdentity *pSnid ) = 0; // Authenticate ticket ( from GetAuthSessionTicket ) from entity steamID to be sure it is valid and isnt reused // Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse ) @@ -193,21 +178,18 @@ public: // these two functions s are deprecated, and will not return results // they will be removed in a future version of the SDK virtual void GetGameplayStats( ) = 0; - CALL_RESULT( GSReputation_t ) + STEAM_CALL_RESULT( GSReputation_t ) virtual SteamAPICall_t GetServerReputation() = 0; // Returns the public IP of the server according to Steam, useful when the server is // behind NAT and you want to advertise its IP in a lobby for other clients to directly // connect to - virtual uint32 GetPublicIP() = 0; + virtual SteamIPAddress_t GetPublicIP() = 0; + +// Server browser related query packet processing for shared socket mode. These are used +// when you pass STEAMGAMESERVER_QUERY_PORT_SHARED as the query port to SteamGameServer_Init. +// IP address and port are in host order, i.e 127.0.0.1 == 0x7f000001 -// These are in GameSocketShare mode, where instead of ISteamGameServer creating its own -// socket to talk to the master server on, it lets the game use its socket to forward messages -// back and forth. This prevents us from requiring server ops to open up yet another port -// in their firewalls. -// -// the IP address and port should be in host order, i.e 127.0.0.1 == 0x7f000001 - // These are used when you've elected to multiplex the game server's UDP socket // rather than having the master server updater use its own sockets. // @@ -225,45 +207,70 @@ public: virtual int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort ) = 0; // -// Control heartbeats / advertisement with master server +// Server clan association // - // Call this as often as you like to tell the master server updater whether or not - // you want it to be active (default: off). - virtual void EnableHeartbeats( bool bActive ) = 0; - - // You usually don't need to modify this. - // Pass -1 to use the default value for iHeartbeatInterval. - // Some mods change this. - virtual void SetHeartbeatInterval( int iHeartbeatInterval ) = 0; - - // Force a heartbeat to steam at the next opportunity - virtual void ForceHeartbeat() = 0; - // associate this game server with this clan for the purposes of computing player compat - CALL_RESULT( AssociateWithClanResult_t ) + STEAM_CALL_RESULT( AssociateWithClanResult_t ) virtual SteamAPICall_t AssociateWithClan( CSteamID steamIDClan ) = 0; // ask if any of the current players dont want to play with this new player - or vice versa - CALL_RESULT( ComputeNewPlayerCompatibilityResult_t ) + STEAM_CALL_RESULT( ComputeNewPlayerCompatibilityResult_t ) virtual SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer ) = 0; + + + + // Handles receiving a new connection from a Steam user. This call will ask the Steam + // servers to validate the users identity, app ownership, and VAC status. If the Steam servers + // are off-line, then it will validate the cached ticket itself which will validate app ownership + // and identity. The AuthBlob here should be acquired on the game client using SteamUser()->InitiateGameConnection() + // and must then be sent up to the game server for authentication. + // + // Return Value: returns true if the users ticket passes basic checks. pSteamIDUser will contain the Steam ID of this user. pSteamIDUser must NOT be NULL + // If the call succeeds then you should expect a GSClientApprove_t or GSClientDeny_t callback which will tell you whether authentication + // for the user has succeeded or failed (the steamid in the callback will match the one returned by this call) + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual bool SendUserConnectAndAuthenticate_DEPRECATED( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser ) = 0; + + // Creates a fake user (ie, a bot) which will be listed as playing on the server, but skips validation. + // + // Return Value: Returns a SteamID for the user to be tracked with, you should call EndAuthSession() + // when this user leaves the server just like you would for a real user. + virtual CSteamID CreateUnauthenticatedUserConnection() = 0; + + // Should be called whenever a user leaves our game server, this lets Steam internally + // track which users are currently on which servers for the purposes of preventing a single + // account being logged into multiple servers, showing who is currently on a server, etc. + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual void SendUserDisconnect_DEPRECATED( CSteamID steamIDUser ) = 0; + + // Update the data to be displayed in the server browser and matchmaking interfaces for a user + // currently connected to the server. For regular users you must call this after you receive a + // GSUserValidationSuccess callback. + // + // Return Value: true if successful, false if failure (ie, steamIDUser wasn't for an active player) + virtual bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore ) = 0; + +// Deprecated functions. These will be removed in a future version of the SDK. +// If you really need these, please contact us and help us understand what you are +// using them for. + + STEAM_PRIVATE_API( + virtual void SetMasterServerHeartbeatInterval_DEPRECATED( int iHeartbeatInterval ) = 0; + virtual void ForceMasterServerHeartbeat_DEPRECATED() = 0; + ) }; -#define STEAMGAMESERVER_INTERFACE_VERSION "SteamGameServer012" - -// game server flags -const uint32 k_unServerFlagNone = 0x00; -const uint32 k_unServerFlagActive = 0x01; // server has users playing -const uint32 k_unServerFlagSecure = 0x02; // server wants to be secure -const uint32 k_unServerFlagDedicated = 0x04; // server is dedicated -const uint32 k_unServerFlagLinux = 0x08; // linux build -const uint32 k_unServerFlagPassworded = 0x10; // password protected -const uint32 k_unServerFlagPrivate = 0x20; // server shouldn't list on master server and - // won't enforce authentication of users that connect to the server. - // Useful when you run a server where the clients may not - // be connected to the internet but you want them to play (i.e LANs) +#define STEAMGAMESERVER_INTERFACE_VERSION "SteamGameServer015" +// Global accessor +inline ISteamGameServer *SteamGameServer(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamGameServer *, SteamGameServer, STEAMGAMESERVER_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -271,7 +278,7 @@ const uint32 k_unServerFlagPrivate = 0x20; // server shouldn't list on master #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif diff --git a/lib/linux/include/steam/isteamgameserverstats.h b/lib/linux/include/steam/isteamgameserverstats.h index e7922c9..5019279 100644 --- a/lib/linux/include/steam/isteamgameserverstats.h +++ b/lib/linux/include/steam/isteamgameserverstats.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: Functions for authenticating users via Steam to play on a game server @@ -23,20 +23,29 @@ public: // if the user has no stats, GSStatsReceived_t.m_eResult will be set to k_EResultFail // these stats will only be auto-updated for clients playing on the server. For other // users you'll need to call RequestUserStats() again to refresh any data - CALL_RESULT( GSStatsReceived_t ) + STEAM_CALL_RESULT( GSStatsReceived_t ) virtual SteamAPICall_t RequestUserStats( CSteamID steamIDUser ) = 0; // requests stat information for a user, usable after a successful call to RequestUserStats() + STEAM_FLAT_NAME( GetUserStatInt32 ) virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, int32 *pData ) = 0; + + STEAM_FLAT_NAME( GetUserStatFloat ) virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, float *pData ) = 0; + virtual bool GetUserAchievement( CSteamID steamIDUser, const char *pchName, bool *pbAchieved ) = 0; // Set / update stats and achievements. // Note: These updates will work only on stats game servers are allowed to edit and only for // game servers that have been declared as officially controlled by the game creators. // Set the IP range of your official servers on the Steamworks page + + STEAM_FLAT_NAME( SetUserStatInt32 ) virtual bool SetUserStat( CSteamID steamIDUser, const char *pchName, int32 nData ) = 0; + + STEAM_FLAT_NAME( SetUserStatFloat ) virtual bool SetUserStat( CSteamID steamIDUser, const char *pchName, float fData ) = 0; + virtual bool UpdateUserAvgRateStat( CSteamID steamIDUser, const char *pchName, float flCountThisSession, double dSessionLength ) = 0; virtual bool SetUserAchievement( CSteamID steamIDUser, const char *pchName ) = 0; @@ -48,19 +57,23 @@ public: // uploaded has been rejected, either because they broke constraints // or were out of date. In this case the server sends back updated values. // The stats should be re-iterated to keep in sync. - CALL_RESULT( GSStatsStored_t ) + STEAM_CALL_RESULT( GSStatsStored_t ) virtual SteamAPICall_t StoreUserStats( CSteamID steamIDUser ) = 0; }; - #define STEAMGAMESERVERSTATS_INTERFACE_VERSION "SteamGameServerStats001" +// Global accessor +inline ISteamGameServerStats *SteamGameServerStats(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamGameServerStats *, SteamGameServerStats, STEAMGAMESERVERSTATS_INTERFACE_VERSION ); + + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- diff --git a/lib/linux/include/steam/isteamhtmlsurface.h b/lib/linux/include/steam/isteamhtmlsurface.h index ccfc6af..dd30fe2 100644 --- a/lib/linux/include/steam/isteamhtmlsurface.h +++ b/lib/linux/include/steam/isteamhtmlsurface.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" typedef uint32 HHTMLBrowser; const uint32 INVALID_HTMLBROWSER = 0; @@ -40,7 +40,7 @@ public: // not implement these callback handlers, the browser may appear to hang instead of // navigating to new pages or triggering javascript popups. // - CALL_RESULT( HTML_BrowserReady_t ) + STEAM_CALL_RESULT( HTML_BrowserReady_t ) virtual SteamAPICall_t CreateBrowser( const char *pchUserAgent, const char *pchUserCSS ) = 0; // Call this when you are done with a html surface, this lets us free the resources being used by it @@ -137,8 +137,9 @@ public: k_eHTMLKeyModifier_ShiftDown = 1 << 2, }; - // keyboard interactions, native keycode is the virtual key code value from your OS - virtual void KeyDown( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0; + // keyboard interactions, native keycode is the virtual key code value from your OS, system key flags the key to not + // be sent as a typed character as well as a key down + virtual void KeyDown( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers, bool bIsSystemKey = false ) = 0; virtual void KeyUp( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0; // cUnicodeChar is the unicode character point for this keypress (and potentially multiple chars per press) virtual void KeyChar( HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0; @@ -177,6 +178,13 @@ public: // When background mode is disabled, any video or audio objects with that property will resume with ".play()". virtual void SetBackgroundMode( HHTMLBrowser unBrowserHandle, bool bBackgroundMode ) = 0; + // Scale the output display space by this factor, this is useful when displaying content on high dpi devices. + // Specifies the ratio between physical and logical pixels. + virtual void SetDPIScalingFactor( HHTMLBrowser unBrowserHandle, float flDPIScaling ) = 0; + + // Open HTML/JS developer tools + virtual void OpenDeveloperTools( HHTMLBrowser unBrowserHandle ) = 0; + // CALLBACKS // // These set of functions are used as responses to callback requests @@ -193,11 +201,14 @@ public: virtual void JSDialogResponse( HHTMLBrowser unBrowserHandle, bool bResult ) = 0; // You MUST call this in response to a HTML_FileOpenDialog_t callback - IGNOREATTR() virtual void FileLoadDialogResponse( HHTMLBrowser unBrowserHandle, const char **pchSelectedFiles ) = 0; }; -#define STEAMHTMLSURFACE_INTERFACE_VERSION "STEAMHTMLSURFACE_INTERFACE_VERSION_003" +#define STEAMHTMLSURFACE_INTERFACE_VERSION "STEAMHTMLSURFACE_INTERFACE_VERSION_005" + +// Global interface accessor +inline ISteamHTMLSurface *SteamHTMLSurface(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamHTMLSurface *, SteamHTMLSurface, STEAMHTMLSURFACE_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -205,156 +216,156 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- // Purpose: The browser is ready for use //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_BrowserReady_t, k_iSteamHTMLSurfaceCallbacks + 1 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // this browser is now fully created and ready to navigate to pages -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( HTML_BrowserReady_t, k_iSteamHTMLSurfaceCallbacks + 1 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // this browser is now fully created and ready to navigate to pages +STEAM_CALLBACK_END(1) //----------------------------------------------------------------------------- // Purpose: the browser has a pending paint //----------------------------------------------------------------------------- -DEFINE_CALLBACK(HTML_NeedsPaint_t, k_iSteamHTMLSurfaceCallbacks + 2) -CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the browser that needs the paint -CALLBACK_MEMBER(1, const char *, pBGRA ) // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called -CALLBACK_MEMBER(2, uint32, unWide) // the total width of the pBGRA texture -CALLBACK_MEMBER(3, uint32, unTall) // the total height of the pBGRA texture -CALLBACK_MEMBER(4, uint32, unUpdateX) // the offset in X for the damage rect for this update -CALLBACK_MEMBER(5, uint32, unUpdateY) // the offset in Y for the damage rect for this update -CALLBACK_MEMBER(6, uint32, unUpdateWide) // the width of the damage rect for this update -CALLBACK_MEMBER(7, uint32, unUpdateTall) // the height of the damage rect for this update -CALLBACK_MEMBER(8, uint32, unScrollX) // the page scroll the browser was at when this texture was rendered -CALLBACK_MEMBER(9, uint32, unScrollY) // the page scroll the browser was at when this texture was rendered -CALLBACK_MEMBER(10, float, flPageScale) // the page scale factor on this page when rendered -CALLBACK_MEMBER(11, uint32, unPageSerial) // incremented on each new page load, you can use this to reject draws while navigating to new pages -END_DEFINE_CALLBACK_12() +STEAM_CALLBACK_BEGIN(HTML_NeedsPaint_t, k_iSteamHTMLSurfaceCallbacks + 2) +STEAM_CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the browser that needs the paint +STEAM_CALLBACK_MEMBER(1, const char *, pBGRA ) // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called +STEAM_CALLBACK_MEMBER(2, uint32, unWide) // the total width of the pBGRA texture +STEAM_CALLBACK_MEMBER(3, uint32, unTall) // the total height of the pBGRA texture +STEAM_CALLBACK_MEMBER(4, uint32, unUpdateX) // the offset in X for the damage rect for this update +STEAM_CALLBACK_MEMBER(5, uint32, unUpdateY) // the offset in Y for the damage rect for this update +STEAM_CALLBACK_MEMBER(6, uint32, unUpdateWide) // the width of the damage rect for this update +STEAM_CALLBACK_MEMBER(7, uint32, unUpdateTall) // the height of the damage rect for this update +STEAM_CALLBACK_MEMBER(8, uint32, unScrollX) // the page scroll the browser was at when this texture was rendered +STEAM_CALLBACK_MEMBER(9, uint32, unScrollY) // the page scroll the browser was at when this texture was rendered +STEAM_CALLBACK_MEMBER(10, float, flPageScale) // the page scale factor on this page when rendered +STEAM_CALLBACK_MEMBER(11, uint32, unPageSerial) // incremented on each new page load, you can use this to reject draws while navigating to new pages +STEAM_CALLBACK_END(12) //----------------------------------------------------------------------------- // Purpose: The browser wanted to navigate to a new page // NOTE - you MUST call AllowStartRequest in response to this callback //----------------------------------------------------------------------------- -DEFINE_CALLBACK(HTML_StartRequest_t, k_iSteamHTMLSurfaceCallbacks + 3) -CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface navigating -CALLBACK_MEMBER(1, const char *, pchURL) // the url they wish to navigate to -CALLBACK_MEMBER(2, const char *, pchTarget) // the html link target type (i.e _blank, _self, _parent, _top ) -CALLBACK_MEMBER(3, const char *, pchPostData ) // any posted data for the request -CALLBACK_MEMBER(4, bool, bIsRedirect) // true if this was a http/html redirect from the last load request -END_DEFINE_CALLBACK_5() +STEAM_CALLBACK_BEGIN(HTML_StartRequest_t, k_iSteamHTMLSurfaceCallbacks + 3) +STEAM_CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface navigating +STEAM_CALLBACK_MEMBER(1, const char *, pchURL) // the url they wish to navigate to +STEAM_CALLBACK_MEMBER(2, const char *, pchTarget) // the html link target type (i.e _blank, _self, _parent, _top ) +STEAM_CALLBACK_MEMBER(3, const char *, pchPostData ) // any posted data for the request +STEAM_CALLBACK_MEMBER(4, bool, bIsRedirect) // true if this was a http/html redirect from the last load request +STEAM_CALLBACK_END(5) //----------------------------------------------------------------------------- // Purpose: The browser has been requested to close due to user interaction (usually from a javascript window.close() call) //----------------------------------------------------------------------------- -DEFINE_CALLBACK(HTML_CloseBrowser_t, k_iSteamHTMLSurfaceCallbacks + 4) -CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN(HTML_CloseBrowser_t, k_iSteamHTMLSurfaceCallbacks + 4) +STEAM_CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface +STEAM_CALLBACK_END(1) //----------------------------------------------------------------------------- // Purpose: the browser is navigating to a new url //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_URLChanged_t, k_iSteamHTMLSurfaceCallbacks + 5 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface navigating -CALLBACK_MEMBER( 1, const char *, pchURL ) // the url they wish to navigate to -CALLBACK_MEMBER( 2, const char *, pchPostData ) // any posted data for the request -CALLBACK_MEMBER( 3, bool, bIsRedirect ) // true if this was a http/html redirect from the last load request -CALLBACK_MEMBER( 4, const char *, pchPageTitle ) // the title of the page -CALLBACK_MEMBER( 5, bool, bNewNavigation ) // true if this was from a fresh tab and not a click on an existing page -END_DEFINE_CALLBACK_6() +STEAM_CALLBACK_BEGIN( HTML_URLChanged_t, k_iSteamHTMLSurfaceCallbacks + 5 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface navigating +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // the url they wish to navigate to +STEAM_CALLBACK_MEMBER( 2, const char *, pchPostData ) // any posted data for the request +STEAM_CALLBACK_MEMBER( 3, bool, bIsRedirect ) // true if this was a http/html redirect from the last load request +STEAM_CALLBACK_MEMBER( 4, const char *, pchPageTitle ) // the title of the page +STEAM_CALLBACK_MEMBER( 5, bool, bNewNavigation ) // true if this was from a fresh tab and not a click on an existing page +STEAM_CALLBACK_END(6) //----------------------------------------------------------------------------- // Purpose: A page is finished loading //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_FinishedRequest_t, k_iSteamHTMLSurfaceCallbacks + 6 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchURL ) // -CALLBACK_MEMBER( 2, const char *, pchPageTitle ) // -END_DEFINE_CALLBACK_3() +STEAM_CALLBACK_BEGIN( HTML_FinishedRequest_t, k_iSteamHTMLSurfaceCallbacks + 6 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // +STEAM_CALLBACK_MEMBER( 2, const char *, pchPageTitle ) // +STEAM_CALLBACK_END(3) //----------------------------------------------------------------------------- // Purpose: a request to load this url in a new tab //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_OpenLinkInNewTab_t, k_iSteamHTMLSurfaceCallbacks + 7 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchURL ) // -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_OpenLinkInNewTab_t, k_iSteamHTMLSurfaceCallbacks + 7 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: the page has a new title now //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_ChangedTitle_t, k_iSteamHTMLSurfaceCallbacks + 8 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchTitle ) // -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_ChangedTitle_t, k_iSteamHTMLSurfaceCallbacks + 8 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchTitle ) // +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: results from a search //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_SearchResults_t, k_iSteamHTMLSurfaceCallbacks + 9 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, unResults ) // -CALLBACK_MEMBER( 2, uint32, unCurrentMatch ) // -END_DEFINE_CALLBACK_3() +STEAM_CALLBACK_BEGIN( HTML_SearchResults_t, k_iSteamHTMLSurfaceCallbacks + 9 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, unResults ) // +STEAM_CALLBACK_MEMBER( 2, uint32, unCurrentMatch ) // +STEAM_CALLBACK_END(3) //----------------------------------------------------------------------------- // Purpose: page history status changed on the ability to go backwards and forward //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_CanGoBackAndForward_t, k_iSteamHTMLSurfaceCallbacks + 10 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, bool, bCanGoBack ) // -CALLBACK_MEMBER( 2, bool, bCanGoForward ) // -END_DEFINE_CALLBACK_3() +STEAM_CALLBACK_BEGIN( HTML_CanGoBackAndForward_t, k_iSteamHTMLSurfaceCallbacks + 10 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, bool, bCanGoBack ) // +STEAM_CALLBACK_MEMBER( 2, bool, bCanGoForward ) // +STEAM_CALLBACK_END(3) //----------------------------------------------------------------------------- // Purpose: details on the visibility and size of the horizontal scrollbar //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_HorizontalScroll_t, k_iSteamHTMLSurfaceCallbacks + 11 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, unScrollMax ) // -CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // -CALLBACK_MEMBER( 3, float, flPageScale ) // -CALLBACK_MEMBER( 4, bool , bVisible ) // -CALLBACK_MEMBER( 5, uint32, unPageSize ) // -END_DEFINE_CALLBACK_6() +STEAM_CALLBACK_BEGIN( HTML_HorizontalScroll_t, k_iSteamHTMLSurfaceCallbacks + 11 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, unScrollMax ) // +STEAM_CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // +STEAM_CALLBACK_MEMBER( 3, float, flPageScale ) // +STEAM_CALLBACK_MEMBER( 4, bool , bVisible ) // +STEAM_CALLBACK_MEMBER( 5, uint32, unPageSize ) // +STEAM_CALLBACK_END(6) //----------------------------------------------------------------------------- // Purpose: details on the visibility and size of the vertical scrollbar //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_VerticalScroll_t, k_iSteamHTMLSurfaceCallbacks + 12 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, unScrollMax ) // -CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // -CALLBACK_MEMBER( 3, float, flPageScale ) // -CALLBACK_MEMBER( 4, bool, bVisible ) // -CALLBACK_MEMBER( 5, uint32, unPageSize ) // -END_DEFINE_CALLBACK_6() +STEAM_CALLBACK_BEGIN( HTML_VerticalScroll_t, k_iSteamHTMLSurfaceCallbacks + 12 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, unScrollMax ) // +STEAM_CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // +STEAM_CALLBACK_MEMBER( 3, float, flPageScale ) // +STEAM_CALLBACK_MEMBER( 4, bool, bVisible ) // +STEAM_CALLBACK_MEMBER( 5, uint32, unPageSize ) // +STEAM_CALLBACK_END(6) //----------------------------------------------------------------------------- // Purpose: response to GetLinkAtPosition call //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_LinkAtPosition_t, k_iSteamHTMLSurfaceCallbacks + 13 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, x ) // NOTE - Not currently set -CALLBACK_MEMBER( 2, uint32, y ) // NOTE - Not currently set -CALLBACK_MEMBER( 3, const char *, pchURL ) // -CALLBACK_MEMBER( 4, bool, bInput ) // -CALLBACK_MEMBER( 5, bool, bLiveLink ) // -END_DEFINE_CALLBACK_6() +STEAM_CALLBACK_BEGIN( HTML_LinkAtPosition_t, k_iSteamHTMLSurfaceCallbacks + 13 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, x ) // NOTE - Not currently set +STEAM_CALLBACK_MEMBER( 2, uint32, y ) // NOTE - Not currently set +STEAM_CALLBACK_MEMBER( 3, const char *, pchURL ) // +STEAM_CALLBACK_MEMBER( 4, bool, bInput ) // +STEAM_CALLBACK_MEMBER( 5, bool, bLiveLink ) // +STEAM_CALLBACK_END(6) @@ -362,89 +373,104 @@ END_DEFINE_CALLBACK_6() // Purpose: show a Javascript alert dialog, call JSDialogResponse // when the user dismisses this dialog (or right away to ignore it) //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_JSAlert_t, k_iSteamHTMLSurfaceCallbacks + 14 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMessage ) // -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_JSAlert_t, k_iSteamHTMLSurfaceCallbacks + 14 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMessage ) // +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: show a Javascript confirmation dialog, call JSDialogResponse // when the user dismisses this dialog (or right away to ignore it) //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_JSConfirm_t, k_iSteamHTMLSurfaceCallbacks + 15 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMessage ) // -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_JSConfirm_t, k_iSteamHTMLSurfaceCallbacks + 15 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMessage ) // +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: when received show a file open dialog // then call FileLoadDialogResponse with the file(s) the user selected. //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_FileOpenDialog_t, k_iSteamHTMLSurfaceCallbacks + 16 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchTitle ) // -CALLBACK_MEMBER( 2, const char *, pchInitialFile ) // -END_DEFINE_CALLBACK_3() +STEAM_CALLBACK_BEGIN( HTML_FileOpenDialog_t, k_iSteamHTMLSurfaceCallbacks + 16 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchTitle ) // +STEAM_CALLBACK_MEMBER( 2, const char *, pchInitialFile ) // +STEAM_CALLBACK_END(3) //----------------------------------------------------------------------------- -// Purpose: a new html window has been created +// Purpose: a new html window is being created. +// +// IMPORTANT NOTE: at this time, the API does not allow you to acknowledge or +// render the contents of this new window, so the new window is always destroyed +// immediately. The URL and other parameters of the new window are passed here +// to give your application the opportunity to call CreateBrowser and set up +// a new browser in response to the attempted popup, if you wish to do so. //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_NewWindow_t, k_iSteamHTMLSurfaceCallbacks + 21 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the current surface -CALLBACK_MEMBER( 1, const char *, pchURL ) // the page to load -CALLBACK_MEMBER( 2, uint32, unX ) // the x pos into the page to display the popup -CALLBACK_MEMBER( 3, uint32, unY ) // the y pos into the page to display the popup -CALLBACK_MEMBER( 4, uint32, unWide ) // the total width of the pBGRA texture -CALLBACK_MEMBER( 5, uint32, unTall ) // the total height of the pBGRA texture -CALLBACK_MEMBER( 6, HHTMLBrowser, unNewWindow_BrowserHandle ) // the handle of the new window surface -END_DEFINE_CALLBACK_7() +STEAM_CALLBACK_BEGIN( HTML_NewWindow_t, k_iSteamHTMLSurfaceCallbacks + 21 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the current surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // the page to load +STEAM_CALLBACK_MEMBER( 2, uint32, unX ) // the x pos into the page to display the popup +STEAM_CALLBACK_MEMBER( 3, uint32, unY ) // the y pos into the page to display the popup +STEAM_CALLBACK_MEMBER( 4, uint32, unWide ) // the total width of the pBGRA texture +STEAM_CALLBACK_MEMBER( 5, uint32, unTall ) // the total height of the pBGRA texture +STEAM_CALLBACK_MEMBER( 6, HHTMLBrowser, unNewWindow_BrowserHandle_IGNORE ) +STEAM_CALLBACK_END(7) //----------------------------------------------------------------------------- // Purpose: change the cursor to display //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_SetCursor_t, k_iSteamHTMLSurfaceCallbacks + 22 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, eMouseCursor ) // the EMouseCursor to display -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_SetCursor_t, k_iSteamHTMLSurfaceCallbacks + 22 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, eMouseCursor ) // the EMouseCursor to display +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: informational message from the browser //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_StatusText_t, k_iSteamHTMLSurfaceCallbacks + 23 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_StatusText_t, k_iSteamHTMLSurfaceCallbacks + 23 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: show a tooltip //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_ShowToolTip_t, k_iSteamHTMLSurfaceCallbacks + 24 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_ShowToolTip_t, k_iSteamHTMLSurfaceCallbacks + 24 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: update the text of an existing tooltip //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_UpdateToolTip_t, k_iSteamHTMLSurfaceCallbacks + 25 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_UpdateToolTip_t, k_iSteamHTMLSurfaceCallbacks + 25 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: hide the tooltip you are showing //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_HideToolTip_t, k_iSteamHTMLSurfaceCallbacks + 26 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( HTML_HideToolTip_t, k_iSteamHTMLSurfaceCallbacks + 26 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_END(1) + + +//----------------------------------------------------------------------------- +// Purpose: The browser has restarted due to an internal failure, use this new handle value +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_BrowserRestarted_t, k_iSteamHTMLSurfaceCallbacks + 27 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // this is the new browser handle after the restart +STEAM_CALLBACK_MEMBER( 1, HHTMLBrowser, unOldBrowserHandle ) // the handle for the browser before the restart, if your handle was this then switch to using unBrowserHandle for API calls +STEAM_CALLBACK_END(2) #pragma pack( pop ) diff --git a/lib/linux/include/steam/isteamhttp.h b/lib/linux/include/steam/isteamhttp.h index 8fab537..fb034ca 100644 --- a/lib/linux/include/steam/isteamhttp.h +++ b/lib/linux/include/steam/isteamhttp.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" #include "steamhttpenums.h" // Handle to a HTTP Request handle @@ -128,7 +128,8 @@ public: // Set the extra user agent info for a request, this doesn't clobber the normal user agent, it just adds the extra info on the end virtual bool SetHTTPRequestUserAgentInfo( HTTPRequestHandle hRequest, const char *pchUserAgentInfo ) = 0; - // Set that https request should require verified SSL certificate via machines certificate trust store + // Disable or re-enable verification of SSL/TLS certificates. + // By default, certificates are checked for all HTTPS requests. virtual bool SetHTTPRequestRequiresVerifiedCertificate( HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate ) = 0; // Set an absolute timeout on the HTTP request, this is just a total time timeout different than the network activity timeout @@ -139,7 +140,15 @@ public: virtual bool GetHTTPRequestWasTimedOut( HTTPRequestHandle hRequest, bool *pbWasTimedOut ) = 0; }; -#define STEAMHTTP_INTERFACE_VERSION "STEAMHTTP_INTERFACE_VERSION002" +#define STEAMHTTP_INTERFACE_VERSION "STEAMHTTP_INTERFACE_VERSION003" + +// Global interface accessor +inline ISteamHTTP *SteamHTTP(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamHTTP *, SteamHTTP, STEAMHTTP_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamHTTP *SteamGameServerHTTP(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamHTTP *, SteamGameServerHTTP, STEAMHTTP_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -147,12 +156,12 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct HTTPRequestCompleted_t { - enum { k_iCallback = k_iClientHTTPCallbacks + 1 }; + enum { k_iCallback = k_iSteamHTTPCallbacks + 1 }; // Handle value for the request that has completed. HTTPRequestHandle m_hRequest; @@ -175,7 +184,7 @@ struct HTTPRequestCompleted_t struct HTTPRequestHeadersReceived_t { - enum { k_iCallback = k_iClientHTTPCallbacks + 2 }; + enum { k_iCallback = k_iSteamHTTPCallbacks + 2 }; // Handle value for the request that has received headers. HTTPRequestHandle m_hRequest; @@ -187,7 +196,7 @@ struct HTTPRequestHeadersReceived_t struct HTTPRequestDataReceived_t { - enum { k_iCallback = k_iClientHTTPCallbacks + 3 }; + enum { k_iCallback = k_iSteamHTTPCallbacks + 3 }; // Handle value for the request that has received data. HTTPRequestHandle m_hRequest; diff --git a/lib/linux/include/steam/isteaminput.h b/lib/linux/include/steam/isteaminput.h new file mode 100644 index 0000000..335f23f --- /dev/null +++ b/lib/linux/include/steam/isteaminput.h @@ -0,0 +1,982 @@ +//====== Copyright 1996-2018, Valve Corporation, All rights reserved. ======= +// +// Purpose: Steam Input is a flexible input API that supports over three hundred devices including all +// common variants of Xbox, Playstation, Nintendo Switch Pro, and Steam Controllers. +// For more info including a getting started guide for developers +// please visit: https://partner.steamgames.com/doc/features/steam_controller +// +//============================================================================= + +#ifndef ISTEAMINPUT_H +#define ISTEAMINPUT_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +#define STEAM_INPUT_MAX_COUNT 16 + +#define STEAM_INPUT_MAX_ANALOG_ACTIONS 24 + +#define STEAM_INPUT_MAX_DIGITAL_ACTIONS 256 + +#define STEAM_INPUT_MAX_ORIGINS 8 + +#define STEAM_INPUT_MAX_ACTIVE_LAYERS 16 + +// When sending an option to a specific controller handle, you can send to all devices via this command +#define STEAM_INPUT_HANDLE_ALL_CONTROLLERS UINT64_MAX + +#define STEAM_INPUT_MIN_ANALOG_ACTION_DATA -1.0f +#define STEAM_INPUT_MAX_ANALOG_ACTION_DATA 1.0f + +enum EInputSourceMode +{ + k_EInputSourceMode_None, + k_EInputSourceMode_Dpad, + k_EInputSourceMode_Buttons, + k_EInputSourceMode_FourButtons, + k_EInputSourceMode_AbsoluteMouse, + k_EInputSourceMode_RelativeMouse, + k_EInputSourceMode_JoystickMove, + k_EInputSourceMode_JoystickMouse, + k_EInputSourceMode_JoystickCamera, + k_EInputSourceMode_ScrollWheel, + k_EInputSourceMode_Trigger, + k_EInputSourceMode_TouchMenu, + k_EInputSourceMode_MouseJoystick, + k_EInputSourceMode_MouseRegion, + k_EInputSourceMode_RadialMenu, + k_EInputSourceMode_SingleButton, + k_EInputSourceMode_Switches +}; + +// Note: Please do not use action origins as a way to identify controller types. There is no +// guarantee that they will be added in a contiguous manner - use GetInputTypeForHandle instead. +// Versions of Steam that add new controller types in the future will extend this enum so if you're +// using a lookup table please check the bounds of any origins returned by Steam. +enum EInputActionOrigin +{ + // Steam Controller + k_EInputActionOrigin_None, + k_EInputActionOrigin_SteamController_A, + k_EInputActionOrigin_SteamController_B, + k_EInputActionOrigin_SteamController_X, + k_EInputActionOrigin_SteamController_Y, + k_EInputActionOrigin_SteamController_LeftBumper, + k_EInputActionOrigin_SteamController_RightBumper, + k_EInputActionOrigin_SteamController_LeftGrip, + k_EInputActionOrigin_SteamController_RightGrip, + k_EInputActionOrigin_SteamController_Start, + k_EInputActionOrigin_SteamController_Back, + k_EInputActionOrigin_SteamController_LeftPad_Touch, + k_EInputActionOrigin_SteamController_LeftPad_Swipe, + k_EInputActionOrigin_SteamController_LeftPad_Click, + k_EInputActionOrigin_SteamController_LeftPad_DPadNorth, + k_EInputActionOrigin_SteamController_LeftPad_DPadSouth, + k_EInputActionOrigin_SteamController_LeftPad_DPadWest, + k_EInputActionOrigin_SteamController_LeftPad_DPadEast, + k_EInputActionOrigin_SteamController_RightPad_Touch, + k_EInputActionOrigin_SteamController_RightPad_Swipe, + k_EInputActionOrigin_SteamController_RightPad_Click, + k_EInputActionOrigin_SteamController_RightPad_DPadNorth, + k_EInputActionOrigin_SteamController_RightPad_DPadSouth, + k_EInputActionOrigin_SteamController_RightPad_DPadWest, + k_EInputActionOrigin_SteamController_RightPad_DPadEast, + k_EInputActionOrigin_SteamController_LeftTrigger_Pull, + k_EInputActionOrigin_SteamController_LeftTrigger_Click, + k_EInputActionOrigin_SteamController_RightTrigger_Pull, + k_EInputActionOrigin_SteamController_RightTrigger_Click, + k_EInputActionOrigin_SteamController_LeftStick_Move, + k_EInputActionOrigin_SteamController_LeftStick_Click, + k_EInputActionOrigin_SteamController_LeftStick_DPadNorth, + k_EInputActionOrigin_SteamController_LeftStick_DPadSouth, + k_EInputActionOrigin_SteamController_LeftStick_DPadWest, + k_EInputActionOrigin_SteamController_LeftStick_DPadEast, + k_EInputActionOrigin_SteamController_Gyro_Move, + k_EInputActionOrigin_SteamController_Gyro_Pitch, + k_EInputActionOrigin_SteamController_Gyro_Yaw, + k_EInputActionOrigin_SteamController_Gyro_Roll, + k_EInputActionOrigin_SteamController_Reserved0, + k_EInputActionOrigin_SteamController_Reserved1, + k_EInputActionOrigin_SteamController_Reserved2, + k_EInputActionOrigin_SteamController_Reserved3, + k_EInputActionOrigin_SteamController_Reserved4, + k_EInputActionOrigin_SteamController_Reserved5, + k_EInputActionOrigin_SteamController_Reserved6, + k_EInputActionOrigin_SteamController_Reserved7, + k_EInputActionOrigin_SteamController_Reserved8, + k_EInputActionOrigin_SteamController_Reserved9, + k_EInputActionOrigin_SteamController_Reserved10, + + // PS4 Dual Shock + k_EInputActionOrigin_PS4_X, + k_EInputActionOrigin_PS4_Circle, + k_EInputActionOrigin_PS4_Triangle, + k_EInputActionOrigin_PS4_Square, + k_EInputActionOrigin_PS4_LeftBumper, + k_EInputActionOrigin_PS4_RightBumper, + k_EInputActionOrigin_PS4_Options, //Start + k_EInputActionOrigin_PS4_Share, //Back + k_EInputActionOrigin_PS4_LeftPad_Touch, + k_EInputActionOrigin_PS4_LeftPad_Swipe, + k_EInputActionOrigin_PS4_LeftPad_Click, + k_EInputActionOrigin_PS4_LeftPad_DPadNorth, + k_EInputActionOrigin_PS4_LeftPad_DPadSouth, + k_EInputActionOrigin_PS4_LeftPad_DPadWest, + k_EInputActionOrigin_PS4_LeftPad_DPadEast, + k_EInputActionOrigin_PS4_RightPad_Touch, + k_EInputActionOrigin_PS4_RightPad_Swipe, + k_EInputActionOrigin_PS4_RightPad_Click, + k_EInputActionOrigin_PS4_RightPad_DPadNorth, + k_EInputActionOrigin_PS4_RightPad_DPadSouth, + k_EInputActionOrigin_PS4_RightPad_DPadWest, + k_EInputActionOrigin_PS4_RightPad_DPadEast, + k_EInputActionOrigin_PS4_CenterPad_Touch, + k_EInputActionOrigin_PS4_CenterPad_Swipe, + k_EInputActionOrigin_PS4_CenterPad_Click, + k_EInputActionOrigin_PS4_CenterPad_DPadNorth, + k_EInputActionOrigin_PS4_CenterPad_DPadSouth, + k_EInputActionOrigin_PS4_CenterPad_DPadWest, + k_EInputActionOrigin_PS4_CenterPad_DPadEast, + k_EInputActionOrigin_PS4_LeftTrigger_Pull, + k_EInputActionOrigin_PS4_LeftTrigger_Click, + k_EInputActionOrigin_PS4_RightTrigger_Pull, + k_EInputActionOrigin_PS4_RightTrigger_Click, + k_EInputActionOrigin_PS4_LeftStick_Move, + k_EInputActionOrigin_PS4_LeftStick_Click, + k_EInputActionOrigin_PS4_LeftStick_DPadNorth, + k_EInputActionOrigin_PS4_LeftStick_DPadSouth, + k_EInputActionOrigin_PS4_LeftStick_DPadWest, + k_EInputActionOrigin_PS4_LeftStick_DPadEast, + k_EInputActionOrigin_PS4_RightStick_Move, + k_EInputActionOrigin_PS4_RightStick_Click, + k_EInputActionOrigin_PS4_RightStick_DPadNorth, + k_EInputActionOrigin_PS4_RightStick_DPadSouth, + k_EInputActionOrigin_PS4_RightStick_DPadWest, + k_EInputActionOrigin_PS4_RightStick_DPadEast, + k_EInputActionOrigin_PS4_DPad_North, + k_EInputActionOrigin_PS4_DPad_South, + k_EInputActionOrigin_PS4_DPad_West, + k_EInputActionOrigin_PS4_DPad_East, + k_EInputActionOrigin_PS4_Gyro_Move, + k_EInputActionOrigin_PS4_Gyro_Pitch, + k_EInputActionOrigin_PS4_Gyro_Yaw, + k_EInputActionOrigin_PS4_Gyro_Roll, + k_EInputActionOrigin_PS4_DPad_Move, + k_EInputActionOrigin_PS4_Reserved1, + k_EInputActionOrigin_PS4_Reserved2, + k_EInputActionOrigin_PS4_Reserved3, + k_EInputActionOrigin_PS4_Reserved4, + k_EInputActionOrigin_PS4_Reserved5, + k_EInputActionOrigin_PS4_Reserved6, + k_EInputActionOrigin_PS4_Reserved7, + k_EInputActionOrigin_PS4_Reserved8, + k_EInputActionOrigin_PS4_Reserved9, + k_EInputActionOrigin_PS4_Reserved10, + + // XBox One + k_EInputActionOrigin_XBoxOne_A, + k_EInputActionOrigin_XBoxOne_B, + k_EInputActionOrigin_XBoxOne_X, + k_EInputActionOrigin_XBoxOne_Y, + k_EInputActionOrigin_XBoxOne_LeftBumper, + k_EInputActionOrigin_XBoxOne_RightBumper, + k_EInputActionOrigin_XBoxOne_Menu, //Start + k_EInputActionOrigin_XBoxOne_View, //Back + k_EInputActionOrigin_XBoxOne_LeftTrigger_Pull, + k_EInputActionOrigin_XBoxOne_LeftTrigger_Click, + k_EInputActionOrigin_XBoxOne_RightTrigger_Pull, + k_EInputActionOrigin_XBoxOne_RightTrigger_Click, + k_EInputActionOrigin_XBoxOne_LeftStick_Move, + k_EInputActionOrigin_XBoxOne_LeftStick_Click, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadNorth, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadSouth, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadWest, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadEast, + k_EInputActionOrigin_XBoxOne_RightStick_Move, + k_EInputActionOrigin_XBoxOne_RightStick_Click, + k_EInputActionOrigin_XBoxOne_RightStick_DPadNorth, + k_EInputActionOrigin_XBoxOne_RightStick_DPadSouth, + k_EInputActionOrigin_XBoxOne_RightStick_DPadWest, + k_EInputActionOrigin_XBoxOne_RightStick_DPadEast, + k_EInputActionOrigin_XBoxOne_DPad_North, + k_EInputActionOrigin_XBoxOne_DPad_South, + k_EInputActionOrigin_XBoxOne_DPad_West, + k_EInputActionOrigin_XBoxOne_DPad_East, + k_EInputActionOrigin_XBoxOne_DPad_Move, + k_EInputActionOrigin_XBoxOne_LeftGrip_Lower, + k_EInputActionOrigin_XBoxOne_LeftGrip_Upper, + k_EInputActionOrigin_XBoxOne_RightGrip_Lower, + k_EInputActionOrigin_XBoxOne_RightGrip_Upper, + k_EInputActionOrigin_XBoxOne_Share, // Xbox Series X controllers only + k_EInputActionOrigin_XBoxOne_Reserved6, + k_EInputActionOrigin_XBoxOne_Reserved7, + k_EInputActionOrigin_XBoxOne_Reserved8, + k_EInputActionOrigin_XBoxOne_Reserved9, + k_EInputActionOrigin_XBoxOne_Reserved10, + + // XBox 360 + k_EInputActionOrigin_XBox360_A, + k_EInputActionOrigin_XBox360_B, + k_EInputActionOrigin_XBox360_X, + k_EInputActionOrigin_XBox360_Y, + k_EInputActionOrigin_XBox360_LeftBumper, + k_EInputActionOrigin_XBox360_RightBumper, + k_EInputActionOrigin_XBox360_Start, //Start + k_EInputActionOrigin_XBox360_Back, //Back + k_EInputActionOrigin_XBox360_LeftTrigger_Pull, + k_EInputActionOrigin_XBox360_LeftTrigger_Click, + k_EInputActionOrigin_XBox360_RightTrigger_Pull, + k_EInputActionOrigin_XBox360_RightTrigger_Click, + k_EInputActionOrigin_XBox360_LeftStick_Move, + k_EInputActionOrigin_XBox360_LeftStick_Click, + k_EInputActionOrigin_XBox360_LeftStick_DPadNorth, + k_EInputActionOrigin_XBox360_LeftStick_DPadSouth, + k_EInputActionOrigin_XBox360_LeftStick_DPadWest, + k_EInputActionOrigin_XBox360_LeftStick_DPadEast, + k_EInputActionOrigin_XBox360_RightStick_Move, + k_EInputActionOrigin_XBox360_RightStick_Click, + k_EInputActionOrigin_XBox360_RightStick_DPadNorth, + k_EInputActionOrigin_XBox360_RightStick_DPadSouth, + k_EInputActionOrigin_XBox360_RightStick_DPadWest, + k_EInputActionOrigin_XBox360_RightStick_DPadEast, + k_EInputActionOrigin_XBox360_DPad_North, + k_EInputActionOrigin_XBox360_DPad_South, + k_EInputActionOrigin_XBox360_DPad_West, + k_EInputActionOrigin_XBox360_DPad_East, + k_EInputActionOrigin_XBox360_DPad_Move, + k_EInputActionOrigin_XBox360_Reserved1, + k_EInputActionOrigin_XBox360_Reserved2, + k_EInputActionOrigin_XBox360_Reserved3, + k_EInputActionOrigin_XBox360_Reserved4, + k_EInputActionOrigin_XBox360_Reserved5, + k_EInputActionOrigin_XBox360_Reserved6, + k_EInputActionOrigin_XBox360_Reserved7, + k_EInputActionOrigin_XBox360_Reserved8, + k_EInputActionOrigin_XBox360_Reserved9, + k_EInputActionOrigin_XBox360_Reserved10, + + + // Switch - Pro or Joycons used as a single input device. + // This does not apply to a single joycon + k_EInputActionOrigin_Switch_A, + k_EInputActionOrigin_Switch_B, + k_EInputActionOrigin_Switch_X, + k_EInputActionOrigin_Switch_Y, + k_EInputActionOrigin_Switch_LeftBumper, + k_EInputActionOrigin_Switch_RightBumper, + k_EInputActionOrigin_Switch_Plus, //Start + k_EInputActionOrigin_Switch_Minus, //Back + k_EInputActionOrigin_Switch_Capture, + k_EInputActionOrigin_Switch_LeftTrigger_Pull, + k_EInputActionOrigin_Switch_LeftTrigger_Click, + k_EInputActionOrigin_Switch_RightTrigger_Pull, + k_EInputActionOrigin_Switch_RightTrigger_Click, + k_EInputActionOrigin_Switch_LeftStick_Move, + k_EInputActionOrigin_Switch_LeftStick_Click, + k_EInputActionOrigin_Switch_LeftStick_DPadNorth, + k_EInputActionOrigin_Switch_LeftStick_DPadSouth, + k_EInputActionOrigin_Switch_LeftStick_DPadWest, + k_EInputActionOrigin_Switch_LeftStick_DPadEast, + k_EInputActionOrigin_Switch_RightStick_Move, + k_EInputActionOrigin_Switch_RightStick_Click, + k_EInputActionOrigin_Switch_RightStick_DPadNorth, + k_EInputActionOrigin_Switch_RightStick_DPadSouth, + k_EInputActionOrigin_Switch_RightStick_DPadWest, + k_EInputActionOrigin_Switch_RightStick_DPadEast, + k_EInputActionOrigin_Switch_DPad_North, + k_EInputActionOrigin_Switch_DPad_South, + k_EInputActionOrigin_Switch_DPad_West, + k_EInputActionOrigin_Switch_DPad_East, + k_EInputActionOrigin_Switch_ProGyro_Move, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_ProGyro_Pitch, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_ProGyro_Yaw, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_ProGyro_Roll, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_DPad_Move, + k_EInputActionOrigin_Switch_Reserved1, + k_EInputActionOrigin_Switch_Reserved2, + k_EInputActionOrigin_Switch_Reserved3, + k_EInputActionOrigin_Switch_Reserved4, + k_EInputActionOrigin_Switch_Reserved5, + k_EInputActionOrigin_Switch_Reserved6, + k_EInputActionOrigin_Switch_Reserved7, + k_EInputActionOrigin_Switch_Reserved8, + k_EInputActionOrigin_Switch_Reserved9, + k_EInputActionOrigin_Switch_Reserved10, + + // Switch JoyCon Specific + k_EInputActionOrigin_Switch_RightGyro_Move, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_RightGyro_Pitch, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_RightGyro_Yaw, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_RightGyro_Roll, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_LeftGyro_Move, + k_EInputActionOrigin_Switch_LeftGyro_Pitch, + k_EInputActionOrigin_Switch_LeftGyro_Yaw, + k_EInputActionOrigin_Switch_LeftGyro_Roll, + k_EInputActionOrigin_Switch_LeftGrip_Lower, // Left JoyCon SR Button + k_EInputActionOrigin_Switch_LeftGrip_Upper, // Left JoyCon SL Button + k_EInputActionOrigin_Switch_RightGrip_Lower, // Right JoyCon SL Button + k_EInputActionOrigin_Switch_RightGrip_Upper, // Right JoyCon SR Button + k_EInputActionOrigin_Switch_JoyConButton_N, // With a Horizontal JoyCon this will be Y or what would be Dpad Right when vertical + k_EInputActionOrigin_Switch_JoyConButton_E, // X + k_EInputActionOrigin_Switch_JoyConButton_S, // A + k_EInputActionOrigin_Switch_JoyConButton_W, // B + k_EInputActionOrigin_Switch_Reserved15, + k_EInputActionOrigin_Switch_Reserved16, + k_EInputActionOrigin_Switch_Reserved17, + k_EInputActionOrigin_Switch_Reserved18, + k_EInputActionOrigin_Switch_Reserved19, + k_EInputActionOrigin_Switch_Reserved20, + + // Added in SDK 1.51 + k_EInputActionOrigin_PS5_X, + k_EInputActionOrigin_PS5_Circle, + k_EInputActionOrigin_PS5_Triangle, + k_EInputActionOrigin_PS5_Square, + k_EInputActionOrigin_PS5_LeftBumper, + k_EInputActionOrigin_PS5_RightBumper, + k_EInputActionOrigin_PS5_Option, //Start + k_EInputActionOrigin_PS5_Create, //Back + k_EInputActionOrigin_PS5_Mute, + k_EInputActionOrigin_PS5_LeftPad_Touch, + k_EInputActionOrigin_PS5_LeftPad_Swipe, + k_EInputActionOrigin_PS5_LeftPad_Click, + k_EInputActionOrigin_PS5_LeftPad_DPadNorth, + k_EInputActionOrigin_PS5_LeftPad_DPadSouth, + k_EInputActionOrigin_PS5_LeftPad_DPadWest, + k_EInputActionOrigin_PS5_LeftPad_DPadEast, + k_EInputActionOrigin_PS5_RightPad_Touch, + k_EInputActionOrigin_PS5_RightPad_Swipe, + k_EInputActionOrigin_PS5_RightPad_Click, + k_EInputActionOrigin_PS5_RightPad_DPadNorth, + k_EInputActionOrigin_PS5_RightPad_DPadSouth, + k_EInputActionOrigin_PS5_RightPad_DPadWest, + k_EInputActionOrigin_PS5_RightPad_DPadEast, + k_EInputActionOrigin_PS5_CenterPad_Touch, + k_EInputActionOrigin_PS5_CenterPad_Swipe, + k_EInputActionOrigin_PS5_CenterPad_Click, + k_EInputActionOrigin_PS5_CenterPad_DPadNorth, + k_EInputActionOrigin_PS5_CenterPad_DPadSouth, + k_EInputActionOrigin_PS5_CenterPad_DPadWest, + k_EInputActionOrigin_PS5_CenterPad_DPadEast, + k_EInputActionOrigin_PS5_LeftTrigger_Pull, + k_EInputActionOrigin_PS5_LeftTrigger_Click, + k_EInputActionOrigin_PS5_RightTrigger_Pull, + k_EInputActionOrigin_PS5_RightTrigger_Click, + k_EInputActionOrigin_PS5_LeftStick_Move, + k_EInputActionOrigin_PS5_LeftStick_Click, + k_EInputActionOrigin_PS5_LeftStick_DPadNorth, + k_EInputActionOrigin_PS5_LeftStick_DPadSouth, + k_EInputActionOrigin_PS5_LeftStick_DPadWest, + k_EInputActionOrigin_PS5_LeftStick_DPadEast, + k_EInputActionOrigin_PS5_RightStick_Move, + k_EInputActionOrigin_PS5_RightStick_Click, + k_EInputActionOrigin_PS5_RightStick_DPadNorth, + k_EInputActionOrigin_PS5_RightStick_DPadSouth, + k_EInputActionOrigin_PS5_RightStick_DPadWest, + k_EInputActionOrigin_PS5_RightStick_DPadEast, + k_EInputActionOrigin_PS5_DPad_North, + k_EInputActionOrigin_PS5_DPad_South, + k_EInputActionOrigin_PS5_DPad_West, + k_EInputActionOrigin_PS5_DPad_East, + k_EInputActionOrigin_PS5_Gyro_Move, + k_EInputActionOrigin_PS5_Gyro_Pitch, + k_EInputActionOrigin_PS5_Gyro_Yaw, + k_EInputActionOrigin_PS5_Gyro_Roll, + k_EInputActionOrigin_PS5_DPad_Move, + k_EInputActionOrigin_PS5_LeftGrip, + k_EInputActionOrigin_PS5_RightGrip, + k_EInputActionOrigin_PS5_LeftFn, + k_EInputActionOrigin_PS5_RightFn, + k_EInputActionOrigin_PS5_Reserved5, + k_EInputActionOrigin_PS5_Reserved6, + k_EInputActionOrigin_PS5_Reserved7, + k_EInputActionOrigin_PS5_Reserved8, + k_EInputActionOrigin_PS5_Reserved9, + k_EInputActionOrigin_PS5_Reserved10, + k_EInputActionOrigin_PS5_Reserved11, + k_EInputActionOrigin_PS5_Reserved12, + k_EInputActionOrigin_PS5_Reserved13, + k_EInputActionOrigin_PS5_Reserved14, + k_EInputActionOrigin_PS5_Reserved15, + k_EInputActionOrigin_PS5_Reserved16, + k_EInputActionOrigin_PS5_Reserved17, + k_EInputActionOrigin_PS5_Reserved18, + k_EInputActionOrigin_PS5_Reserved19, + k_EInputActionOrigin_PS5_Reserved20, + + // Added in SDK 1.53 + k_EInputActionOrigin_SteamDeck_A, + k_EInputActionOrigin_SteamDeck_B, + k_EInputActionOrigin_SteamDeck_X, + k_EInputActionOrigin_SteamDeck_Y, + k_EInputActionOrigin_SteamDeck_L1, + k_EInputActionOrigin_SteamDeck_R1, + k_EInputActionOrigin_SteamDeck_Menu, + k_EInputActionOrigin_SteamDeck_View, + k_EInputActionOrigin_SteamDeck_LeftPad_Touch, + k_EInputActionOrigin_SteamDeck_LeftPad_Swipe, + k_EInputActionOrigin_SteamDeck_LeftPad_Click, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadNorth, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadSouth, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadWest, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadEast, + k_EInputActionOrigin_SteamDeck_RightPad_Touch, + k_EInputActionOrigin_SteamDeck_RightPad_Swipe, + k_EInputActionOrigin_SteamDeck_RightPad_Click, + k_EInputActionOrigin_SteamDeck_RightPad_DPadNorth, + k_EInputActionOrigin_SteamDeck_RightPad_DPadSouth, + k_EInputActionOrigin_SteamDeck_RightPad_DPadWest, + k_EInputActionOrigin_SteamDeck_RightPad_DPadEast, + k_EInputActionOrigin_SteamDeck_L2_SoftPull, + k_EInputActionOrigin_SteamDeck_L2, + k_EInputActionOrigin_SteamDeck_R2_SoftPull, + k_EInputActionOrigin_SteamDeck_R2, + k_EInputActionOrigin_SteamDeck_LeftStick_Move, + k_EInputActionOrigin_SteamDeck_L3, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadNorth, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadSouth, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadWest, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadEast, + k_EInputActionOrigin_SteamDeck_LeftStick_Touch, + k_EInputActionOrigin_SteamDeck_RightStick_Move, + k_EInputActionOrigin_SteamDeck_R3, + k_EInputActionOrigin_SteamDeck_RightStick_DPadNorth, + k_EInputActionOrigin_SteamDeck_RightStick_DPadSouth, + k_EInputActionOrigin_SteamDeck_RightStick_DPadWest, + k_EInputActionOrigin_SteamDeck_RightStick_DPadEast, + k_EInputActionOrigin_SteamDeck_RightStick_Touch, + k_EInputActionOrigin_SteamDeck_L4, + k_EInputActionOrigin_SteamDeck_R4, + k_EInputActionOrigin_SteamDeck_L5, + k_EInputActionOrigin_SteamDeck_R5, + k_EInputActionOrigin_SteamDeck_DPad_Move, + k_EInputActionOrigin_SteamDeck_DPad_North, + k_EInputActionOrigin_SteamDeck_DPad_South, + k_EInputActionOrigin_SteamDeck_DPad_West, + k_EInputActionOrigin_SteamDeck_DPad_East, + k_EInputActionOrigin_SteamDeck_Gyro_Move, + k_EInputActionOrigin_SteamDeck_Gyro_Pitch, + k_EInputActionOrigin_SteamDeck_Gyro_Yaw, + k_EInputActionOrigin_SteamDeck_Gyro_Roll, + k_EInputActionOrigin_SteamDeck_Reserved1, + k_EInputActionOrigin_SteamDeck_Reserved2, + k_EInputActionOrigin_SteamDeck_Reserved3, + k_EInputActionOrigin_SteamDeck_Reserved4, + k_EInputActionOrigin_SteamDeck_Reserved5, + k_EInputActionOrigin_SteamDeck_Reserved6, + k_EInputActionOrigin_SteamDeck_Reserved7, + k_EInputActionOrigin_SteamDeck_Reserved8, + k_EInputActionOrigin_SteamDeck_Reserved9, + k_EInputActionOrigin_SteamDeck_Reserved10, + k_EInputActionOrigin_SteamDeck_Reserved11, + k_EInputActionOrigin_SteamDeck_Reserved12, + k_EInputActionOrigin_SteamDeck_Reserved13, + k_EInputActionOrigin_SteamDeck_Reserved14, + k_EInputActionOrigin_SteamDeck_Reserved15, + k_EInputActionOrigin_SteamDeck_Reserved16, + k_EInputActionOrigin_SteamDeck_Reserved17, + k_EInputActionOrigin_SteamDeck_Reserved18, + k_EInputActionOrigin_SteamDeck_Reserved19, + k_EInputActionOrigin_SteamDeck_Reserved20, + + k_EInputActionOrigin_Count, // If Steam has added support for new controllers origins will go here. + k_EInputActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits. +}; + +enum EXboxOrigin +{ + k_EXboxOrigin_A, + k_EXboxOrigin_B, + k_EXboxOrigin_X, + k_EXboxOrigin_Y, + k_EXboxOrigin_LeftBumper, + k_EXboxOrigin_RightBumper, + k_EXboxOrigin_Menu, //Start + k_EXboxOrigin_View, //Back + k_EXboxOrigin_LeftTrigger_Pull, + k_EXboxOrigin_LeftTrigger_Click, + k_EXboxOrigin_RightTrigger_Pull, + k_EXboxOrigin_RightTrigger_Click, + k_EXboxOrigin_LeftStick_Move, + k_EXboxOrigin_LeftStick_Click, + k_EXboxOrigin_LeftStick_DPadNorth, + k_EXboxOrigin_LeftStick_DPadSouth, + k_EXboxOrigin_LeftStick_DPadWest, + k_EXboxOrigin_LeftStick_DPadEast, + k_EXboxOrigin_RightStick_Move, + k_EXboxOrigin_RightStick_Click, + k_EXboxOrigin_RightStick_DPadNorth, + k_EXboxOrigin_RightStick_DPadSouth, + k_EXboxOrigin_RightStick_DPadWest, + k_EXboxOrigin_RightStick_DPadEast, + k_EXboxOrigin_DPad_North, + k_EXboxOrigin_DPad_South, + k_EXboxOrigin_DPad_West, + k_EXboxOrigin_DPad_East, + k_EXboxOrigin_Count, +}; + +enum ESteamControllerPad +{ + k_ESteamControllerPad_Left, + k_ESteamControllerPad_Right +}; + +enum EControllerHapticLocation +{ + k_EControllerHapticLocation_Left = ( 1 << k_ESteamControllerPad_Left ), + k_EControllerHapticLocation_Right = ( 1 << k_ESteamControllerPad_Right ), + k_EControllerHapticLocation_Both = ( 1 << k_ESteamControllerPad_Left | 1 << k_ESteamControllerPad_Right ), +}; + +enum EControllerHapticType +{ + k_EControllerHapticType_Off, + k_EControllerHapticType_Tick, + k_EControllerHapticType_Click, +}; + +enum ESteamInputType +{ + k_ESteamInputType_Unknown, + k_ESteamInputType_SteamController, + k_ESteamInputType_XBox360Controller, + k_ESteamInputType_XBoxOneController, + k_ESteamInputType_GenericGamepad, // DirectInput controllers + k_ESteamInputType_PS4Controller, + k_ESteamInputType_AppleMFiController, // Unused + k_ESteamInputType_AndroidController, // Unused + k_ESteamInputType_SwitchJoyConPair, // Unused + k_ESteamInputType_SwitchJoyConSingle, // Unused + k_ESteamInputType_SwitchProController, + k_ESteamInputType_MobileTouch, // Steam Link App On-screen Virtual Controller + k_ESteamInputType_PS3Controller, // Currently uses PS4 Origins + k_ESteamInputType_PS5Controller, // Added in SDK 151 + k_ESteamInputType_SteamDeckController, // Added in SDK 153 + k_ESteamInputType_Count, + k_ESteamInputType_MaximumPossibleValue = 255, +}; + +// Individual values are used by the GetSessionInputConfigurationSettings bitmask +enum ESteamInputConfigurationEnableType +{ + k_ESteamInputConfigurationEnableType_None = 0x0000, + k_ESteamInputConfigurationEnableType_Playstation = 0x0001, + k_ESteamInputConfigurationEnableType_Xbox = 0x0002, + k_ESteamInputConfigurationEnableType_Generic = 0x0004, + k_ESteamInputConfigurationEnableType_Switch = 0x0008, +}; + +// These values are passed into SetLEDColor +enum ESteamInputLEDFlag +{ + k_ESteamInputLEDFlag_SetColor, + // Restore the LED color to the user's preference setting as set in the controller personalization menu. + // This also happens automatically on exit of your game. + k_ESteamInputLEDFlag_RestoreUserDefault +}; + +// These values are passed into GetGlyphPNGForActionOrigin +enum ESteamInputGlyphSize +{ + k_ESteamInputGlyphSize_Small, // 32x32 pixels + k_ESteamInputGlyphSize_Medium, // 128x128 pixels + k_ESteamInputGlyphSize_Large, // 256x256 pixels + k_ESteamInputGlyphSize_Count, +}; + +enum ESteamInputGlyphStyle +{ + // Base-styles - cannot mix + ESteamInputGlyphStyle_Knockout = 0x0, // Face buttons will have colored labels/outlines on a knocked out background + // Rest of inputs will have white detail/borders on a knocked out background + ESteamInputGlyphStyle_Light = 0x1, // Black detail/borders on a white background + ESteamInputGlyphStyle_Dark = 0x2, // White detail/borders on a black background + + // Modifiers + // Default ABXY/PS equivalent glyphs have a solid fill w/ color matching the physical buttons on the device + ESteamInputGlyphStyle_NeutralColorABXY = 0x10, // ABXY Buttons will match the base style color instead of their normal associated color + ESteamInputGlyphStyle_SolidABXY = 0x20, // ABXY Buttons will have a solid fill +}; + +enum ESteamInputActionEventType +{ + ESteamInputActionEventType_DigitalAction, + ESteamInputActionEventType_AnalogAction, +}; + +// InputHandle_t is used to refer to a specific controller. +// This handle will consistently identify a controller, even if it is disconnected and re-connected +typedef uint64 InputHandle_t; + +// These handles are used to refer to a specific in-game action or action set +// All action handles should be queried during initialization for performance reasons +typedef uint64 InputActionSetHandle_t; +typedef uint64 InputDigitalActionHandle_t; +typedef uint64 InputAnalogActionHandle_t; + +#pragma pack( push, 1 ) + +struct InputAnalogActionData_t +{ + // Type of data coming from this action, this will match what got specified in the action set + EInputSourceMode eMode; + + // The current state of this action; will be delta updates for mouse actions + float x, y; + + // Whether or not this action is currently available to be bound in the active action set + bool bActive; +}; + +struct InputDigitalActionData_t +{ + // The current state of this action; will be true if currently pressed + bool bState; + + // Whether or not this action is currently available to be bound in the active action set + bool bActive; +}; + +struct InputMotionData_t +{ + // Sensor-fused absolute rotation; will drift in heading toward average + float rotQuatX; + float rotQuatY; + float rotQuatZ; + float rotQuatW; + + // Positional acceleration + float posAccelX; + float posAccelY; + float posAccelZ; + + // Angular velocity + float rotVelX; + float rotVelY; + float rotVelZ; +}; + +//----------------------------------------------------------------------------- +// Purpose: when callbacks are enabled this fires each time a controller action +// state changes +//----------------------------------------------------------------------------- +struct SteamInputActionEvent_t +{ + InputHandle_t controllerHandle; + ESteamInputActionEventType eEventType; + struct AnalogAction_t { + InputAnalogActionHandle_t actionHandle; + InputAnalogActionData_t analogActionData; + }; + struct DigitalAction_t { + InputDigitalActionHandle_t actionHandle; + InputDigitalActionData_t digitalActionData; + }; + union { + AnalogAction_t analogAction; + DigitalAction_t digitalAction; + }; +}; + +//----------------------------------------------------------------------------- +// Forward declaration for ScePadTriggerEffectParam, defined in isteamdualsense.h +//----------------------------------------------------------------------------- +struct ScePadTriggerEffectParam; + +#pragma pack( pop ) + +typedef void ( *SteamInputActionEventCallbackPointer )( SteamInputActionEvent_t * ); + +//----------------------------------------------------------------------------- +// Purpose: Steam Input API +//----------------------------------------------------------------------------- +class ISteamInput +{ +public: + + // Init and Shutdown must be called when starting/ending use of this interface. + // if bExplicitlyCallRunFrame is called then you will need to manually call RunFrame + // each frame, otherwise Steam Input will updated when SteamAPI_RunCallbacks() is called + virtual bool Init( bool bExplicitlyCallRunFrame ) = 0; + virtual bool Shutdown() = 0; + + // Set the absolute path to the Input Action Manifest file containing the in-game actions + // and file paths to the official configurations. Used in games that bundle Steam Input + // configurations inside of the game depot instead of using the Steam Workshop + virtual bool SetInputActionManifestFilePath( const char *pchInputActionManifestAbsolutePath ) = 0; + + // Synchronize API state with the latest Steam Input action data available. This + // is performed automatically by SteamAPI_RunCallbacks, but for the absolute lowest + // possible latency, you call this directly before reading controller state. + // Note: This must be called from somewhere before GetConnectedControllers will + // return any handles + virtual void RunFrame( bool bReservedValue = true ) = 0; + + // Waits on an IPC event from Steam sent when there is new data to be fetched from + // the data drop. Returns true when data was recievied before the timeout expires. + // Useful for games with a dedicated input thread + virtual bool BWaitForData( bool bWaitForever, uint32 unTimeout ) = 0; + + // Returns true if new data has been received since the last time action data was accessed + // via GetDigitalActionData or GetAnalogActionData. The game will still need to call + // SteamInput()->RunFrame() or SteamAPI_RunCallbacks() before this to update the data stream + virtual bool BNewDataAvailable() = 0; + + // Enumerate currently connected Steam Input enabled devices - developers can opt in controller by type (ex: Xbox/Playstation/etc) via + // the Steam Input settings in the Steamworks site or users can opt-in in their controller settings in Steam. + // handlesOut should point to a STEAM_INPUT_MAX_COUNT sized array of InputHandle_t handles + // Returns the number of handles written to handlesOut + virtual int GetConnectedControllers( STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_COUNT, Receives list of connected controllers ) InputHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- + // CALLBACKS + //----------------------------------------------------------------------------- + + // Controller configuration loaded - these callbacks will always fire if you have + // a handler. Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + STEAM_CALL_BACK( SteamInputConfigurationLoaded_t ) + + // Enable SteamInputDeviceConnected_t and SteamInputDeviceDisconnected_t callbacks. + // Each controller that is already connected will generate a device connected + // callback when you enable them + virtual void EnableDeviceCallbacks() = 0; + + // Controller Connected - provides info about a single newly connected controller + // Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + STEAM_CALL_BACK( SteamInputDeviceConnected_t ) + + // Controller Disconnected - provides info about a single disconnected controller + // Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + STEAM_CALL_BACK( SteamInputDeviceDisconnected_t ) + + // Controllers using Gamepad emulation (XInput, DirectInput, etc) will be seated in the order that + // input is sent by the device. This callback will fire on first input for each device and when the + // a user has manually changed the order via the Steam overlay. This also has the device type info + // so that you can change out glyph sets without making additional API calls + STEAM_CALL_BACK( SteamInputGamepadSlotChange_t ) + + // Enable SteamInputActionEvent_t callbacks. Directly calls your callback function + // for lower latency than standard Steam callbacks. Supports one callback at a time. + // Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + virtual void EnableActionEventCallbacks( SteamInputActionEventCallbackPointer pCallback ) = 0; + + //----------------------------------------------------------------------------- + // ACTION SETS + //----------------------------------------------------------------------------- + + // Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls. + virtual InputActionSetHandle_t GetActionSetHandle( const char *pszActionSetName ) = 0; + + // Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + // This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + // your state loops, instead of trying to place it in all of your state transitions. + virtual void ActivateActionSet( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle ) = 0; + virtual InputActionSetHandle_t GetCurrentActionSet( InputHandle_t inputHandle ) = 0; + + // ACTION SET LAYERS + virtual void ActivateActionSetLayer( InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateActionSetLayer( InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateAllActionSetLayers( InputHandle_t inputHandle ) = 0; + + // Enumerate currently active layers. + // handlesOut should point to a STEAM_INPUT_MAX_ACTIVE_LAYERS sized array of InputActionSetHandle_t handles + // Returns the number of handles written to handlesOut + virtual int GetActiveActionSetLayers( InputHandle_t inputHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ACTIVE_LAYERS, Receives list of active layers ) InputActionSetHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- + // ACTIONS + //----------------------------------------------------------------------------- + + // Lookup the handle for a digital action. Best to do this once on startup, and store the handles for all future API calls. + virtual InputDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName ) = 0; + + // Returns the current state of the supplied digital game action + virtual InputDigitalActionData_t GetDigitalActionData( InputHandle_t inputHandle, InputDigitalActionHandle_t digitalActionHandle ) = 0; + + // Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. + // originsOut should point to a STEAM_INPUT_MAX_ORIGINS sized array of EInputActionOrigin handles. The EInputActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetDigitalActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ORIGINS, Receives list of action origins ) EInputActionOrigin *originsOut ) = 0; + + // Returns a localized string (from Steam's language setting) for the user-facing action name corresponding to the specified handle + virtual const char *GetStringForDigitalActionName( InputDigitalActionHandle_t eActionHandle ) = 0; + + // Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls. + virtual InputAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName ) = 0; + + // Returns the current state of these supplied analog game action + virtual InputAnalogActionData_t GetAnalogActionData( InputHandle_t inputHandle, InputAnalogActionHandle_t analogActionHandle ) = 0; + + // Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. + // originsOut should point to a STEAM_INPUT_MAX_ORIGINS sized array of EInputActionOrigin handles. The EInputActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetAnalogActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ORIGINS, Receives list of action origins ) EInputActionOrigin *originsOut ) = 0; + + // Get a local path to a PNG file for the provided origin's glyph. + virtual const char *GetGlyphPNGForActionOrigin( EInputActionOrigin eOrigin, ESteamInputGlyphSize eSize, uint32 unFlags ) = 0; + + // Get a local path to a SVG file for the provided origin's glyph. + virtual const char *GetGlyphSVGForActionOrigin( EInputActionOrigin eOrigin, uint32 unFlags ) = 0; + + // Get a local path to an older, Big Picture Mode-style PNG file for a particular origin + virtual const char *GetGlyphForActionOrigin_Legacy( EInputActionOrigin eOrigin ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified origin. + virtual const char *GetStringForActionOrigin( EInputActionOrigin eOrigin ) = 0; + + // Returns a localized string (from Steam's language setting) for the user-facing action name corresponding to the specified handle + virtual const char *GetStringForAnalogActionName( InputAnalogActionHandle_t eActionHandle ) = 0; + + // Stop analog momentum for the action if it is a mouse action in trackball mode + virtual void StopAnalogActionMomentum( InputHandle_t inputHandle, InputAnalogActionHandle_t eAction ) = 0; + + // Returns raw motion data from the specified device + virtual InputMotionData_t GetMotionData( InputHandle_t inputHandle ) = 0; + + //----------------------------------------------------------------------------- + // OUTPUTS + //----------------------------------------------------------------------------- + + // Trigger a vibration event on supported controllers - Steam will translate these commands into haptic pulses for Steam Controllers + virtual void TriggerVibration( InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ) = 0; + + // Trigger a vibration event on supported controllers including Xbox trigger impulse rumble - Steam will translate these commands into haptic pulses for Steam Controllers + virtual void TriggerVibrationExtended( InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed, unsigned short usLeftTriggerSpeed, unsigned short usRightTriggerSpeed ) = 0; + + // Send a haptic pulse, works on Steam Deck and Steam Controller devices + virtual void TriggerSimpleHapticEvent( InputHandle_t inputHandle, EControllerHapticLocation eHapticLocation, uint8 nIntensity, char nGainDB, uint8 nOtherIntensity, char nOtherGainDB ) = 0; + + // Set the controller LED color on supported controllers. nFlags is a bitmask of values from ESteamInputLEDFlag - 0 will default to setting a color. Steam will handle + // the behavior on exit of your program so you don't need to try restore the default as you are shutting down + virtual void SetLEDColor( InputHandle_t inputHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ) = 0; + + // Trigger a haptic pulse on a Steam Controller - if you are approximating rumble you may want to use TriggerVibration instead. + // Good uses for Haptic pulses include chimes, noises, or directional gameplay feedback (taking damage, footstep locations, etc). + virtual void Legacy_TriggerHapticPulse( InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ) = 0; + + // Trigger a haptic pulse with a duty cycle of usDurationMicroSec / usOffMicroSec, unRepeat times. If you are approximating rumble you may want to use TriggerVibration instead. + // nFlags is currently unused and reserved for future use. + virtual void Legacy_TriggerRepeatedHapticPulse( InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ) = 0; + + //----------------------------------------------------------------------------- + // Utility functions available without using the rest of Steam Input API + //----------------------------------------------------------------------------- + + // Invokes the Steam overlay and brings up the binding screen if the user is using Big Picture Mode + // If the user is not in Big Picture Mode it will open up the binding in a new window + virtual bool ShowBindingPanel( InputHandle_t inputHandle ) = 0; + + // Returns the input type for a particular handle - unlike EInputActionOrigin which update with Steam and may return unrecognized values + // ESteamInputType will remain static and only return valid values from your SDK version + virtual ESteamInputType GetInputTypeForHandle( InputHandle_t inputHandle ) = 0; + + // Returns the associated controller handle for the specified emulated gamepad - can be used with the above 2 functions + // to identify controllers presented to your game over Xinput. Returns 0 if the Xinput index isn't associated with Steam Input + virtual InputHandle_t GetControllerForGamepadIndex( int nIndex ) = 0; + + // Returns the associated gamepad index for the specified controller, if emulating a gamepad or -1 if not associated with an Xinput index + virtual int GetGamepadIndexForController( InputHandle_t ulinputHandle ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. + virtual const char *GetStringForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get a local path to art for on-screen glyph for a particular Xbox controller origin + virtual const char *GetGlyphForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get the equivalent ActionOrigin for a given Xbox controller origin this can be chained with GetGlyphForActionOrigin to provide future proof glyphs for + // non-Steam Input API action games. Note - this only translates the buttons directly and doesn't take into account any remapping a user has made in their configuration + virtual EInputActionOrigin GetActionOriginFromXboxOrigin( InputHandle_t inputHandle, EXboxOrigin eOrigin ) = 0; + + // Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EInputActionOrigin_None + // When a new input type is added you will be able to pass in k_ESteamInputType_Unknown and the closest origin that your version of the SDK recognized will be returned + // ex: if a Playstation 5 controller was released this function would return Playstation 4 origins. + virtual EInputActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin ) = 0; + + // Get the binding revision for a given device. Returns false if the handle was not valid or if a mapping is not yet loaded for the device + virtual bool GetDeviceBindingRevision( InputHandle_t inputHandle, int *pMajor, int *pMinor ) = 0; + + // Get the Steam Remote Play session ID associated with a device, or 0 if there is no session associated with it + // See isteamremoteplay.h for more information on Steam Remote Play sessions + virtual uint32 GetRemotePlaySessionID( InputHandle_t inputHandle ) = 0; + + // Get a bitmask of the Steam Input Configuration types opted in for the current session. Returns ESteamInputConfigurationEnableType values. + // Note: user can override the settings from the Steamworks Partner site so the returned values may not exactly match your default configuration + virtual uint16 GetSessionInputConfigurationSettings() = 0; + + // Set the trigger effect for a DualSense controller + virtual void SetDualSenseTriggerEffect( InputHandle_t inputHandle, const ScePadTriggerEffectParam *pParam ) = 0; +}; + +#define STEAMINPUT_INTERFACE_VERSION "SteamInput006" + +// Global interface accessor +inline ISteamInput *SteamInput(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamInput *, SteamInput, STEAMINPUT_INTERFACE_VERSION ); + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +//----------------------------------------------------------------------------- +// Purpose: called when a new controller has been connected, will fire once +// per controller if multiple new controllers connect in the same frame +//----------------------------------------------------------------------------- +struct SteamInputDeviceConnected_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 1 }; + InputHandle_t m_ulConnectedDeviceHandle; // Handle for device +}; + +//----------------------------------------------------------------------------- +// Purpose: called when a new controller has been connected, will fire once +// per controller if multiple new controllers connect in the same frame +//----------------------------------------------------------------------------- +struct SteamInputDeviceDisconnected_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 2 }; + InputHandle_t m_ulDisconnectedDeviceHandle; // Handle for device +}; + +//----------------------------------------------------------------------------- +// Purpose: called when a controller configuration has been loaded, will fire once +// per controller per focus change for Steam Input enabled controllers +//----------------------------------------------------------------------------- +struct SteamInputConfigurationLoaded_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 3 }; + AppId_t m_unAppID; + InputHandle_t m_ulDeviceHandle; // Handle for device + CSteamID m_ulMappingCreator; // May differ from local user when using + // an unmodified community or official config + uint32 m_unMajorRevision; // Binding revision from In-game Action File. + // Same value as queried by GetDeviceBindingRevision + uint32 m_unMinorRevision; + bool m_bUsesSteamInputAPI; // Does the configuration contain any Analog/Digital actions? + bool m_bUsesGamepadAPI; // Does the configuration contain any Xinput bindings? +}; + +//----------------------------------------------------------------------------- +// Purpose: called when controller gamepad slots change - on Linux/macOS these +// slots are shared for all running apps. +//----------------------------------------------------------------------------- +struct SteamInputGamepadSlotChange_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 4 }; + AppId_t m_unAppID; + InputHandle_t m_ulDeviceHandle; // Handle for device + ESteamInputType m_eDeviceType; // Type of device + int m_nOldGamepadSlot; // Previous GamepadSlot - can be -1 controller doesn't uses gamepad bindings + int m_nNewGamepadSlot; // New Gamepad Slot - can be -1 controller doesn't uses gamepad bindings +}; + +#pragma pack( pop ) + +#endif // ISTEAMINPUT_H diff --git a/lib/linux/include/steam/isteaminventory.h b/lib/linux/include/steam/isteaminventory.h index 5d236a5..7066592 100644 --- a/lib/linux/include/steam/isteaminventory.h +++ b/lib/linux/include/steam/isteaminventory.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -18,7 +18,7 @@ #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif @@ -61,6 +61,8 @@ typedef int32 SteamInventoryResult_t; static const SteamInventoryResult_t k_SteamInventoryResultInvalid = -1; +typedef uint64 SteamInventoryUpdateHandle_t; +const SteamInventoryUpdateHandle_t k_SteamInventoryUpdateHandleInvalid = 0xffffffffffffffffull; //----------------------------------------------------------------------------- // Purpose: Steam Inventory query and manipulation API @@ -84,29 +86,41 @@ public: // k_EResultServiceUnavailable - ERROR: service temporarily down, you may retry later // k_EResultLimitExceeded - ERROR: operation would exceed per-user inventory limits // k_EResultFail - ERROR: unknown / generic error - METHOD_DESC(Find out the status of an asynchronous inventory result handle.) virtual EResult GetResultStatus( SteamInventoryResult_t resultHandle ) = 0; // Copies the contents of a result set into a flat array. The specific // contents of the result set depend on which query which was used. - METHOD_DESC(Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used.) virtual bool GetResultItems( SteamInventoryResult_t resultHandle, - OUT_ARRAY_COUNT( punOutItemsArraySize,Output array) SteamItemDetails_t *pOutItemsArray, + STEAM_OUT_ARRAY_COUNT( punOutItemsArraySize,Output array) SteamItemDetails_t *pOutItemsArray, uint32 *punOutItemsArraySize ) = 0; + // In combination with GetResultItems, you can use GetResultItemProperty to retrieve + // dynamic string properties for a given item returned in the result set. + // + // Property names are always composed of ASCII letters, numbers, and/or underscores. + // + // Pass a NULL pointer for pchPropertyName to get a comma - separated list of available + // property names. + // + // If pchValueBuffer is NULL, *punValueBufferSize will contain the + // suggested buffer size. Otherwise it will be the number of bytes actually copied + // to pchValueBuffer. If the results do not fit in the given buffer, partial + // results may be copied. + virtual bool GetResultItemProperty( SteamInventoryResult_t resultHandle, + uint32 unItemIndex, + const char *pchPropertyName, + STEAM_OUT_STRING_COUNT( punValueBufferSizeOut ) char *pchValueBuffer, uint32 *punValueBufferSizeOut ) = 0; + // Returns the server time at which the result was generated. Compare against // the value of IClientUtils::GetServerRealTime() to determine age. - METHOD_DESC(Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age.) virtual uint32 GetResultTimestamp( SteamInventoryResult_t resultHandle ) = 0; // Returns true if the result belongs to the target steam ID, false if the // result does not. This is important when using DeserializeResult, to verify // that a remote player is not pretending to have a different user's inventory. - METHOD_DESC(Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory.) virtual bool CheckResultSteamID( SteamInventoryResult_t resultHandle, CSteamID steamIDExpected ) = 0; // Destroys a result handle and frees all associated memory. - METHOD_DESC(Destroys a result handle and frees all associated memory.) virtual void DestroyResult( SteamInventoryResult_t resultHandle ) = 0; @@ -120,7 +134,6 @@ public: // cached results if called too frequently. It is suggested that you call // this function only when you are about to display the user's full inventory, // or if you expect that the inventory may have changed. - METHOD_DESC(Captures the entire state of the current users Steam inventory.) virtual bool GetAllItems( SteamInventoryResult_t *pResultHandle ) = 0; @@ -131,8 +144,7 @@ public: // For example, you could call GetItemsByID with the IDs of the user's // currently equipped cosmetic items and serialize this to a buffer, and // then transmit this buffer to other players upon joining a game. - METHOD_DESC(Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs.) - virtual bool GetItemsByID( SteamInventoryResult_t *pResultHandle, ARRAY_COUNT( unCountInstanceIDs ) const SteamItemInstanceID_t *pInstanceIDs, uint32 unCountInstanceIDs ) = 0; + virtual bool GetItemsByID( SteamInventoryResult_t *pResultHandle, STEAM_ARRAY_COUNT( unCountInstanceIDs ) const SteamItemInstanceID_t *pInstanceIDs, uint32 unCountInstanceIDs ) = 0; // RESULT SERIALIZATION AND AUTHENTICATION @@ -150,7 +162,7 @@ public: // recommended to use "GetItemsByID" first to create a minimal result set. // Results have a built-in timestamp which will be considered "expired" after // an hour has elapsed. See DeserializeResult for expiration handling. - virtual bool SerializeResult( SteamInventoryResult_t resultHandle, OUT_BUFFER_COUNT(punOutBufferSize) void *pOutBuffer, uint32 *punOutBufferSize ) = 0; + virtual bool SerializeResult( SteamInventoryResult_t resultHandle, STEAM_OUT_BUFFER_COUNT(punOutBufferSize) void *pOutBuffer, uint32 *punOutBufferSize ) = 0; // Deserializes a result set and verifies the signature bytes. Returns false // if bRequireFullOnlineVerify is set but Steam is running in Offline mode. @@ -168,26 +180,24 @@ public: // ISteamUtils::GetServerRealTime() to determine how old the data is. You could // simply ignore the "expired" result code and continue as normal, or you // could challenge the player with expired data to send an updated result set. - virtual bool DeserializeResult( SteamInventoryResult_t *pOutResultHandle, BUFFER_COUNT(punOutBufferSize) const void *pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE = false ) = 0; + virtual bool DeserializeResult( SteamInventoryResult_t *pOutResultHandle, STEAM_BUFFER_COUNT(punOutBufferSize) const void *pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE = false ) = 0; // INVENTORY ASYNC MODIFICATION // // GenerateItems() creates one or more items and then generates a SteamInventoryCallback_t - // notification with a matching nCallbackContext parameter. This API is insecure, and could - // be abused by hacked clients. It is, however, very useful as a development cheat or as - // a means of prototyping item-related features for your game. The use of GenerateItems can - // be restricted to certain item definitions or fully blocked via the Steamworks website. + // notification with a matching nCallbackContext parameter. This API is only intended + // for prototyping - it is only usable by Steam accounts that belong to the publisher group + // for your game. // If punArrayQuantity is not NULL, it should be the same length as pArrayItems and should // describe the quantity of each item to generate. - virtual bool GenerateItems( SteamInventoryResult_t *pResultHandle, ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, ARRAY_COUNT(unArrayLength) const uint32 *punArrayQuantity, uint32 unArrayLength ) = 0; + virtual bool GenerateItems( SteamInventoryResult_t *pResultHandle, STEAM_ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, STEAM_ARRAY_COUNT(unArrayLength) const uint32 *punArrayQuantity, uint32 unArrayLength ) = 0; // GrantPromoItems() checks the list of promotional items for which the user may be eligible // and grants the items (one time only). On success, the result set will include items which // were granted, if any. If no items were granted because the user isn't eligible for any // promotions, this is still considered a success. - METHOD_DESC(GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only).) virtual bool GrantPromoItems( SteamInventoryResult_t *pResultHandle ) = 0; // AddPromoItem() / AddPromoItems() are restricted versions of GrantPromoItems(). Instead of @@ -195,29 +205,24 @@ public: // definition or set of item definitions. This can be useful if your game has custom UI for // showing a specific promo item to the user. virtual bool AddPromoItem( SteamInventoryResult_t *pResultHandle, SteamItemDef_t itemDef ) = 0; - virtual bool AddPromoItems( SteamInventoryResult_t *pResultHandle, ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, uint32 unArrayLength ) = 0; + virtual bool AddPromoItems( SteamInventoryResult_t *pResultHandle, STEAM_ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, uint32 unArrayLength ) = 0; // ConsumeItem() removes items from the inventory, permanently. They cannot be recovered. // Not for the faint of heart - if your game implements item removal at all, a high-friction - // UI confirmation process is highly recommended. Similar to GenerateItems, punArrayQuantity - // can be NULL or else an array of the same length as pArrayItems which describe the quantity - // of each item to destroy. ConsumeItem can be restricted to certain item definitions or - // fully blocked via the Steamworks website to minimize support/abuse issues such as the - // clasic "my brother borrowed my laptop and deleted all of my rare items". - METHOD_DESC(ConsumeItem() removes items from the inventory permanently.) + // UI confirmation process is highly recommended. virtual bool ConsumeItem( SteamInventoryResult_t *pResultHandle, SteamItemInstanceID_t itemConsume, uint32 unQuantity ) = 0; - // ExchangeItems() is an atomic combination of GenerateItems and DestroyItems. It can be - // used to implement crafting recipes or transmutations, or items which unpack themselves - // into other items. Like GenerateItems, this is a flexible and dangerous API which is - // meant for rapid prototyping. You can configure restrictions on ExchangeItems via the - // Steamworks website, such as limiting it to a whitelist of input/output combinations - // corresponding to recipes. - // (Note: although GenerateItems may be hard or impossible to use securely in your game, - // ExchangeItems is perfectly reasonable to use once the whitelists are set accordingly.) + // ExchangeItems() is an atomic combination of item generation and consumption. + // It can be used to implement crafting recipes or transmutations, or items which unpack + // themselves into other items (e.g., a chest). + // Exchange recipes are defined in the ItemDef, and explicitly list the required item + // types and resulting generated type. + // Exchange recipes are evaluated atomically by the Inventory Service; if the supplied + // components do not match the recipe, or do not contain sufficient quantity, the + // exchange will fail. virtual bool ExchangeItems( SteamInventoryResult_t *pResultHandle, - ARRAY_COUNT(unArrayGenerateLength) const SteamItemDef_t *pArrayGenerate, ARRAY_COUNT(unArrayGenerateLength) const uint32 *punArrayGenerateQuantity, uint32 unArrayGenerateLength, - ARRAY_COUNT(unArrayDestroyLength) const SteamItemInstanceID_t *pArrayDestroy, ARRAY_COUNT(unArrayDestroyLength) const uint32 *punArrayDestroyQuantity, uint32 unArrayDestroyLength ) = 0; + STEAM_ARRAY_COUNT(unArrayGenerateLength) const SteamItemDef_t *pArrayGenerate, STEAM_ARRAY_COUNT(unArrayGenerateLength) const uint32 *punArrayGenerateQuantity, uint32 unArrayGenerateLength, + STEAM_ARRAY_COUNT(unArrayDestroyLength) const SteamItemInstanceID_t *pArrayDestroy, STEAM_ARRAY_COUNT(unArrayDestroyLength) const uint32 *punArrayDestroyQuantity, uint32 unArrayDestroyLength ) = 0; // TransferItemQuantity() is intended for use with items which are "stackable" (can have @@ -230,21 +235,7 @@ public: // TIMED DROPS AND PLAYTIME CREDIT // - // Applications which use timed-drop mechanics should call SendItemDropHeartbeat() when - // active gameplay begins, and at least once every two minutes afterwards. The backend - // performs its own time calculations, so the precise timing of the heartbeat is not - // critical as long as you send at least one heartbeat every two minutes. Calling the - // function more often than that is not harmful, it will simply have no effect. Note: - // players may be able to spoof this message by hacking their client, so you should not - // attempt to use this as a mechanism to restrict playtime credits. It is simply meant - // to distinguish between being in any kind of gameplay situation vs the main menu or - // a pre-game launcher window. (If you are stingy with handing out playtime credit, it - // will only encourage players to run bots or use mouse/kb event simulators.) - // - // Playtime credit accumulation can be capped on a daily or weekly basis through your - // Steamworks configuration. - // - METHOD_DESC(Applications which use timed-drop mechanics should call SendItemDropHeartbeat() when active gameplay begins and at least once every two minutes afterwards.) + // Deprecated. Calling this method is not required for proper playtime accounting. virtual void SendItemDropHeartbeat() = 0; // Playtime credit must be consumed and turned into item drops by your game. Only item @@ -253,26 +244,16 @@ public: // Your game should call TriggerItemDrop at an appropriate time for the user to receive // new items, such as between rounds or while the player is dead. Note that players who // hack their clients could modify the value of "dropListDefinition", so do not use it - // to directly control rarity. It is primarily useful during testing and development, - // where you may wish to perform experiments with different types of drops. - METHOD_DESC(Playtime credit must be consumed and turned into item drops by your game.) + // to directly control rarity. + // See your Steamworks configuration to set playtime drop rates for individual itemdefs. + // The client library will suppress too-frequent calls to this method. virtual bool TriggerItemDrop( SteamInventoryResult_t *pResultHandle, SteamItemDef_t dropListDefinition ) = 0; - // IN-GAME TRADING - // - // TradeItems() implements limited in-game trading of items, if you prefer not to use - // the overlay or an in-game web browser to perform Steam Trading through the website. - // You should implement a UI where both players can see and agree to a trade, and then - // each client should call TradeItems simultaneously (+/- 5 seconds) with matching - // (but reversed) parameters. The result is the same as if both players performed a - // Steam Trading transaction through the web. Each player will get an inventory result - // confirming the removal or quantity changes of the items given away, and the new - // item instance id numbers and quantities of the received items. - // (Note: new item instance IDs are generated whenever an item changes ownership.) + // Deprecated. This method is not supported. virtual bool TradeItems( SteamInventoryResult_t *pResultHandle, CSteamID steamIDTradePartner, - ARRAY_COUNT(nArrayGiveLength) const SteamItemInstanceID_t *pArrayGive, ARRAY_COUNT(nArrayGiveLength) const uint32 *pArrayGiveQuantity, uint32 nArrayGiveLength, - ARRAY_COUNT(nArrayGetLength) const SteamItemInstanceID_t *pArrayGet, ARRAY_COUNT(nArrayGetLength) const uint32 *pArrayGetQuantity, uint32 nArrayGetLength ) = 0; + STEAM_ARRAY_COUNT(nArrayGiveLength) const SteamItemInstanceID_t *pArrayGive, STEAM_ARRAY_COUNT(nArrayGiveLength) const uint32 *pArrayGiveQuantity, uint32 nArrayGiveLength, + STEAM_ARRAY_COUNT(nArrayGetLength) const SteamItemInstanceID_t *pArrayGet, STEAM_ARRAY_COUNT(nArrayGetLength) const uint32 *pArrayGetQuantity, uint32 nArrayGetLength ) = 0; // ITEM DEFINITIONS @@ -289,7 +270,6 @@ public: // Every time new item definitions are available (eg, from the dynamic addition of new // item types while players are still in-game), a SteamInventoryDefinitionUpdate_t // callback will be fired. - METHOD_DESC(LoadItemDefinitions triggers the automatic load and refresh of item definitions.) virtual bool LoadItemDefinitions() = 0; // GetItemDefinitionIDs returns the set of all defined item definition IDs (which are @@ -298,8 +278,8 @@ public: // contain the total size necessary for a subsequent call. Otherwise, the call will // return false if and only if there is not enough space in the output array. virtual bool GetItemDefinitionIDs( - OUT_ARRAY_COUNT(punItemDefIDsArraySize,List of item definition IDs) SteamItemDef_t *pItemDefIDs, - DESC(Size of array is passed in and actual size used is returned in this param) uint32 *punItemDefIDsArraySize ) = 0; + STEAM_OUT_ARRAY_COUNT(punItemDefIDsArraySize,List of item definition IDs) SteamItemDef_t *pItemDefIDs, + STEAM_DESC(Size of array is passed in and actual size used is returned in this param) uint32 *punItemDefIDsArraySize ) = 0; // GetItemDefinitionProperty returns a string property from a given item definition. // Note that some properties (for example, "name") may be localized and will depend @@ -311,18 +291,88 @@ public: // to pchValueBuffer. If the results do not fit in the given buffer, partial // results may be copied. virtual bool GetItemDefinitionProperty( SteamItemDef_t iDefinition, const char *pchPropertyName, - OUT_STRING_COUNT(punValueBufferSizeOut) char *pchValueBuffer, uint32 *punValueBufferSizeOut ) = 0; + STEAM_OUT_STRING_COUNT(punValueBufferSizeOut) char *pchValueBuffer, uint32 *punValueBufferSizeOut ) = 0; + + // Request the list of "eligible" promo items that can be manually granted to the given + // user. These are promo items of type "manual" that won't be granted automatically. + // An example usage of this is an item that becomes available every week. + STEAM_CALL_RESULT( SteamInventoryEligiblePromoItemDefIDs_t ) + virtual SteamAPICall_t RequestEligiblePromoItemDefinitionsIDs( CSteamID steamID ) = 0; + + // After handling a SteamInventoryEligiblePromoItemDefIDs_t call result, use this + // function to pull out the list of item definition ids that the user can be + // manually granted via the AddPromoItems() call. + virtual bool GetEligiblePromoItemDefinitionIDs( + CSteamID steamID, + STEAM_OUT_ARRAY_COUNT(punItemDefIDsArraySize,List of item definition IDs) SteamItemDef_t *pItemDefIDs, + STEAM_DESC(Size of array is passed in and actual size used is returned in this param) uint32 *punItemDefIDsArraySize ) = 0; + + // Starts the purchase process for the given item definitions. The callback SteamInventoryStartPurchaseResult_t + // will be posted if Steam was able to initialize the transaction. + // + // Once the purchase has been authorized and completed by the user, the callback SteamInventoryResultReady_t + // will be posted. + STEAM_CALL_RESULT( SteamInventoryStartPurchaseResult_t ) + virtual SteamAPICall_t StartPurchase( STEAM_ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, STEAM_ARRAY_COUNT(unArrayLength) const uint32 *punArrayQuantity, uint32 unArrayLength ) = 0; + + // Request current prices for all applicable item definitions + STEAM_CALL_RESULT( SteamInventoryRequestPricesResult_t ) + virtual SteamAPICall_t RequestPrices() = 0; + + // Returns the number of items with prices. Need to call RequestPrices() first. + virtual uint32 GetNumItemsWithPrices() = 0; + + // Returns item definition ids and their prices in the user's local currency. + // Need to call RequestPrices() first. + virtual bool GetItemsWithPrices( STEAM_ARRAY_COUNT(unArrayLength) STEAM_OUT_ARRAY_COUNT(pArrayItemDefs, Items with prices) SteamItemDef_t *pArrayItemDefs, + STEAM_ARRAY_COUNT(unArrayLength) STEAM_OUT_ARRAY_COUNT(pPrices, List of prices for the given item defs) uint64 *pCurrentPrices, + STEAM_ARRAY_COUNT(unArrayLength) STEAM_OUT_ARRAY_COUNT(pPrices, List of prices for the given item defs) uint64 *pBasePrices, + uint32 unArrayLength ) = 0; + + // Retrieves the price for the item definition id + // Returns false if there is no price stored for the item definition. + virtual bool GetItemPrice( SteamItemDef_t iDefinition, uint64 *pCurrentPrice, uint64 *pBasePrice ) = 0; + + // Create a request to update properties on items + virtual SteamInventoryUpdateHandle_t StartUpdateProperties() = 0; + // Remove the property on the item + virtual bool RemoveProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName ) = 0; + // Accessor methods to set properties on items + + STEAM_FLAT_NAME( SetPropertyString ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, const char *pchPropertyValue ) = 0; + + STEAM_FLAT_NAME( SetPropertyBool ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, bool bValue ) = 0; + + STEAM_FLAT_NAME( SetPropertyInt64 ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, int64 nValue ) = 0; + + STEAM_FLAT_NAME( SetPropertyFloat ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, float flValue ) = 0; + + // Submit the update request by handle + virtual bool SubmitUpdateProperties( SteamInventoryUpdateHandle_t handle, SteamInventoryResult_t * pResultHandle ) = 0; + + virtual bool InspectItem( SteamInventoryResult_t *pResultHandle, const char *pchItemToken ) = 0; }; -#define STEAMINVENTORY_INTERFACE_VERSION "STEAMINVENTORY_INTERFACE_V001" +#define STEAMINVENTORY_INTERFACE_VERSION "STEAMINVENTORY_INTERFACE_V003" +// Global interface accessor +inline ISteamInventory *SteamInventory(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamInventory *, SteamInventory, STEAMINVENTORY_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamInventory *SteamGameServerInventory(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamInventory *, SteamGameServerInventory, STEAMINVENTORY_INTERFACE_VERSION ); // SteamInventoryResultReady_t callbacks are fired whenever asynchronous // results transition from "Pending" to "OK" or an error state. There will // always be exactly one callback per handle. struct SteamInventoryResultReady_t { - enum { k_iCallback = k_iClientInventoryCallbacks + 0 }; + enum { k_iCallback = k_iSteamInventoryCallbacks + 0 }; SteamInventoryResult_t m_handle; EResult m_result; }; @@ -337,7 +387,7 @@ struct SteamInventoryResultReady_t // afterwards; this is an additional notification for your convenience. struct SteamInventoryFullUpdate_t { - enum { k_iCallback = k_iClientInventoryCallbacks + 1 }; + enum { k_iCallback = k_iSteamInventoryCallbacks + 1 }; SteamInventoryResult_t m_handle; }; @@ -348,7 +398,35 @@ struct SteamInventoryFullUpdate_t // a definition update in order to process results from the server. struct SteamInventoryDefinitionUpdate_t { - enum { k_iCallback = k_iClientInventoryCallbacks + 2 }; + enum { k_iCallback = k_iSteamInventoryCallbacks + 2 }; +}; + +// Returned +struct SteamInventoryEligiblePromoItemDefIDs_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 3 }; + EResult m_result; + CSteamID m_steamID; + int m_numEligiblePromoItemDefs; + bool m_bCachedData; // indicates that the data was retrieved from the cache and not the server +}; + +// Triggered from StartPurchase call +struct SteamInventoryStartPurchaseResult_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 4 }; + EResult m_result; + uint64 m_ulOrderID; + uint64 m_ulTransID; +}; + + +// Triggered from RequestPrices +struct SteamInventoryRequestPricesResult_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 5 }; + EResult m_result; + char m_rgchCurrency[4]; }; #pragma pack( pop ) diff --git a/lib/linux/include/steam/isteammasterserverupdater.h b/lib/linux/include/steam/isteammasterserverupdater.h deleted file mode 100644 index 4be0ca5..0000000 --- a/lib/linux/include/steam/isteammasterserverupdater.h +++ /dev/null @@ -1 +0,0 @@ -#error "This file isn't used any more" diff --git a/lib/linux/include/steam/isteammatchmaking.h b/lib/linux/include/steam/isteammatchmaking.h index 837d98b..12189c7 100644 --- a/lib/linux/include/steam/isteammatchmaking.h +++ b/lib/linux/include/steam/isteammatchmaking.h @@ -10,10 +10,8 @@ #pragma once #endif -#include "steamtypes.h" -#include "steamclientpublic.h" +#include "steam_api_common.h" #include "matchmakingtypes.h" -#include "isteamclient.h" #include "isteamfriends.h" // lobby type description @@ -25,6 +23,8 @@ enum ELobbyType k_ELobbyTypeInvisible = 3, // returned by search, but not visible to other friends // useful if you want a user in two lobbies, for example matching groups together // a user can be in only one regular lobby, and up to two invisible lobbies + k_ELobbyTypePrivateUnique = 4, // private, unique and does not delete when empty - only one of these may exist per unique keypair set + // can only create from webapi }; // lobby search filter tools @@ -103,7 +103,7 @@ public: } */ // - CALL_RESULT( LobbyMatchList_t ) + STEAM_CALL_RESULT( LobbyMatchList_t ) virtual SteamAPICall_t RequestLobbyList() = 0; // filters for lobbies // this needs to be called before RequestLobbyList() to take effect @@ -134,14 +134,14 @@ public: // this is an asynchronous request // results will be returned by LobbyCreated_t callback and call result; lobby is joined & ready to use at this point // a LobbyEnter_t callback will also be received (since the local user is joining their own lobby) - CALL_RESULT( LobbyCreated_t ) + STEAM_CALL_RESULT( LobbyCreated_t ) virtual SteamAPICall_t CreateLobby( ELobbyType eLobbyType, int cMaxMembers ) = 0; // Joins an existing lobby // this is an asynchronous request // results will be returned by LobbyEnter_t callback & call result, check m_EChatRoomEnterResponse to see if was successful // lobby metadata is available to use immediately on this call completing - CALL_RESULT( LobbyEnter_t ) + STEAM_CALL_RESULT( LobbyEnter_t ) virtual SteamAPICall_t JoinLobby( CSteamID steamIDLobby ) = 0; // Leave a lobby; this will take effect immediately on the client side @@ -204,7 +204,7 @@ public: // *pSteamIDUser is filled in with the CSteamID of the member // *pvData is filled in with the message itself // return value is the number of bytes written into the buffer - virtual int GetLobbyChatEntry( CSteamID steamIDLobby, int iChatID, OUT_STRUCT() CSteamID *pSteamIDUser, void *pvData, int cubData, EChatEntryType *peChatEntryType ) = 0; + virtual int GetLobbyChatEntry( CSteamID steamIDLobby, int iChatID, STEAM_OUT_STRUCT() CSteamID *pSteamIDUser, void *pvData, int cubData, EChatEntryType *peChatEntryType ) = 0; // Refreshes metadata for a lobby you're not necessarily in right now // you never do this for lobbies you're a member of, only if your @@ -220,7 +220,7 @@ public: // either the IP/Port or the steamID of the game server has to be valid, depending on how you want the clients to be able to connect virtual void SetLobbyGameServer( CSteamID steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, CSteamID steamIDGameServer ) = 0; // returns the details of a game server set in a lobby - returns false if there is no game server set, or that lobby doesn't exist - virtual bool GetLobbyGameServer( CSteamID steamIDLobby, uint32 *punGameServerIP, uint16 *punGameServerPort, OUT_STRUCT() CSteamID *psteamIDGameServer ) = 0; + virtual bool GetLobbyGameServer( CSteamID steamIDLobby, uint32 *punGameServerIP, uint16 *punGameServerPort, STEAM_OUT_STRUCT() CSteamID *psteamIDGameServer ) = 0; // set the limit on the # of users who can join the lobby virtual bool SetLobbyMemberLimit( CSteamID steamIDLobby, int cMaxMembers ) = 0; @@ -256,10 +256,12 @@ public: // after completion, the local user will no longer be the owner virtual void CheckForPSNGameBootInvite( unsigned int iGameBootAttributes ) = 0; #endif - CALL_BACK( LobbyChatUpdate_t ) }; #define STEAMMATCHMAKING_INTERFACE_VERSION "SteamMatchMaking009" +// Global interface accessor +inline ISteamMatchmaking *SteamMatchmaking(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMatchmaking *, SteamMatchmaking, STEAMMATCHMAKING_INTERFACE_VERSION ); //----------------------------------------------------------------------------- // Callback interfaces for server list functions (see ISteamMatchmakingServers below) @@ -391,12 +393,12 @@ public: // Request a new list of servers of a particular type. These calls each correspond to one of the EMatchMakingType values. // Each call allocates a new asynchronous request object. // Request object must be released by calling ReleaseRequest( hServerListRequest ) - virtual HServerListRequest RequestInternetServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestInternetServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; virtual HServerListRequest RequestLANServerList( AppId_t iApp, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; - virtual HServerListRequest RequestFriendsServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; - virtual HServerListRequest RequestFavoritesServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; - virtual HServerListRequest RequestHistoryServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; - virtual HServerListRequest RequestSpectatorServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestFriendsServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestFavoritesServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestHistoryServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestSpectatorServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; // Releases the asynchronous request object and cancels any pending query on it if there's a pending query in progress. // RefreshComplete callback is not posted when request is released. @@ -522,6 +524,10 @@ public: }; #define STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION "SteamMatchMakingServers002" +// Global interface accessor +inline ISteamMatchmakingServers *SteamMatchmakingServers(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMatchmakingServers *, SteamMatchmakingServers, STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION ); + // game server flags const uint32 k_unFavoriteFlagNone = 0x00; const uint32 k_unFavoriteFlagFavorite = 0x01; // this game favorite entry is for the favorites list @@ -545,16 +551,181 @@ enum EChatMemberStateChange #define BChatMemberStateChangeRemoved( rgfChatMemberStateChangeFlags ) ( rgfChatMemberStateChangeFlags & ( k_EChatMemberStateChangeDisconnected | k_EChatMemberStateChangeLeft | k_EChatMemberStateChangeKicked | k_EChatMemberStateChangeBanned ) ) + //----------------------------------------------------------------------------- -// Callbacks for ISteamMatchmaking (which go through the regular Steam callback registration system) +// Purpose: Functions for match making services for clients to get to favorites +// and to operate on game lobbies. +//----------------------------------------------------------------------------- +class ISteamGameSearch +{ +public: + // ============================================================================================= + // Game Player APIs + + // a keyname and a list of comma separated values: one of which is must be found in order for the match to qualify + // fails if a search is currently in progress + virtual EGameSearchErrorCode_t AddGameSearchParams( const char *pchKeyToFind, const char *pchValuesToFind ) = 0; + + // all players in lobby enter the queue and await a SearchForGameNotificationCallback_t callback. fails if another search is currently in progress + // if not the owner of the lobby or search already in progress this call fails + // periodic callbacks will be sent as queue time estimates change + virtual EGameSearchErrorCode_t SearchForGameWithLobby( CSteamID steamIDLobby, int nPlayerMin, int nPlayerMax ) = 0; + + // user enter the queue and await a SearchForGameNotificationCallback_t callback. fails if another search is currently in progress + // periodic callbacks will be sent as queue time estimates change + virtual EGameSearchErrorCode_t SearchForGameSolo( int nPlayerMin, int nPlayerMax ) = 0; + + // after receiving SearchForGameResultCallback_t, accept or decline the game + // multiple SearchForGameResultCallback_t will follow as players accept game until the host starts or cancels the game + virtual EGameSearchErrorCode_t AcceptGame() = 0; + virtual EGameSearchErrorCode_t DeclineGame() = 0; + + // after receiving GameStartedByHostCallback_t get connection details to server + virtual EGameSearchErrorCode_t RetrieveConnectionDetails( CSteamID steamIDHost, char *pchConnectionDetails, int cubConnectionDetails ) = 0; + + // leaves queue if still waiting + virtual EGameSearchErrorCode_t EndGameSearch() = 0; + + // ============================================================================================= + // Game Host APIs + + // a keyname and a list of comma separated values: all the values you allow + virtual EGameSearchErrorCode_t SetGameHostParams( const char *pchKey, const char *pchValue ) = 0; + + // set connection details for players once game is found so they can connect to this server + virtual EGameSearchErrorCode_t SetConnectionDetails( const char *pchConnectionDetails, int cubConnectionDetails ) = 0; + + // mark server as available for more players with nPlayerMin,nPlayerMax desired + // accept no lobbies with playercount greater than nMaxTeamSize + // the set of lobbies returned must be partitionable into teams of no more than nMaxTeamSize + // RequestPlayersForGameNotificationCallback_t callback will be sent when the search has started + // multple RequestPlayersForGameResultCallback_t callbacks will follow when players are found + virtual EGameSearchErrorCode_t RequestPlayersForGame( int nPlayerMin, int nPlayerMax, int nMaxTeamSize ) = 0; + + // accept the player list and release connection details to players + // players will only be given connection details and host steamid when this is called + // ( allows host to accept after all players confirm, some confirm, or none confirm. decision is entirely up to the host ) + virtual EGameSearchErrorCode_t HostConfirmGameStart( uint64 ullUniqueGameID ) = 0; + + // cancel request and leave the pool of game hosts looking for players + // if a set of players has already been sent to host, all players will receive SearchForGameHostFailedToConfirm_t + virtual EGameSearchErrorCode_t CancelRequestPlayersForGame() = 0; + + // submit a result for one player. does not end the game. ullUniqueGameID continues to describe this game + virtual EGameSearchErrorCode_t SubmitPlayerResult( uint64 ullUniqueGameID, CSteamID steamIDPlayer, EPlayerResult_t EPlayerResult ) = 0; + + // ends the game. no further SubmitPlayerResults for ullUniqueGameID will be accepted + // any future requests will provide a new ullUniqueGameID + virtual EGameSearchErrorCode_t EndGame( uint64 ullUniqueGameID ) = 0; + +}; +#define STEAMGAMESEARCH_INTERFACE_VERSION "SteamMatchGameSearch001" + +// Global interface accessor +inline ISteamGameSearch *SteamGameSearch(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamGameSearch *, SteamGameSearch, STEAMGAMESEARCH_INTERFACE_VERSION ); + + +//----------------------------------------------------------------------------- +// Purpose: Functions for quickly creating a Party with friends or acquaintances, +// EG from chat rooms. +//----------------------------------------------------------------------------- +enum ESteamPartyBeaconLocationType +{ + k_ESteamPartyBeaconLocationType_Invalid = 0, + k_ESteamPartyBeaconLocationType_ChatGroup = 1, + + k_ESteamPartyBeaconLocationType_Max, +}; + + #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif + +struct SteamPartyBeaconLocation_t +{ + ESteamPartyBeaconLocationType m_eType; + uint64 m_ulLocationID; +}; + +enum ESteamPartyBeaconLocationData +{ + k_ESteamPartyBeaconLocationDataInvalid = 0, + k_ESteamPartyBeaconLocationDataName = 1, + k_ESteamPartyBeaconLocationDataIconURLSmall = 2, + k_ESteamPartyBeaconLocationDataIconURLMedium = 3, + k_ESteamPartyBeaconLocationDataIconURLLarge = 4, +}; + +class ISteamParties +{ +public: + + // ============================================================================================= + // Party Client APIs + + // Enumerate any active beacons for parties you may wish to join + virtual uint32 GetNumActiveBeacons() = 0; + virtual PartyBeaconID_t GetBeaconByIndex( uint32 unIndex ) = 0; + virtual bool GetBeaconDetails( PartyBeaconID_t ulBeaconID, CSteamID *pSteamIDBeaconOwner, STEAM_OUT_STRUCT() SteamPartyBeaconLocation_t *pLocation, STEAM_OUT_STRING_COUNT(cchMetadata) char *pchMetadata, int cchMetadata ) = 0; + + // Join an open party. Steam will reserve one beacon slot for your SteamID, + // and return the necessary JoinGame string for you to use to connect + STEAM_CALL_RESULT( JoinPartyCallback_t ) + virtual SteamAPICall_t JoinParty( PartyBeaconID_t ulBeaconID ) = 0; + + // ============================================================================================= + // Party Host APIs + + // Get a list of possible beacon locations + virtual bool GetNumAvailableBeaconLocations( uint32 *puNumLocations ) = 0; + virtual bool GetAvailableBeaconLocations( SteamPartyBeaconLocation_t *pLocationList, uint32 uMaxNumLocations ) = 0; + + // Create a new party beacon and activate it in the selected location. + // unOpenSlots is the maximum number of users that Steam will send to you. + // When people begin responding to your beacon, Steam will send you + // PartyReservationCallback_t callbacks to let you know who is on the way. + STEAM_CALL_RESULT( CreateBeaconCallback_t ) + virtual SteamAPICall_t CreateBeacon( uint32 unOpenSlots, SteamPartyBeaconLocation_t *pBeaconLocation, const char *pchConnectString, const char *pchMetadata ) = 0; + + // Call this function when a user that had a reservation (see callback below) + // has successfully joined your party. + // Steam will manage the remaining open slots automatically. + virtual void OnReservationCompleted( PartyBeaconID_t ulBeacon, CSteamID steamIDUser ) = 0; + + // To cancel a reservation (due to timeout or user input), call this. + // Steam will open a new reservation slot. + // Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + virtual void CancelReservation( PartyBeaconID_t ulBeacon, CSteamID steamIDUser ) = 0; + + // Change the number of open beacon reservation slots. + // Call this if, for example, someone without a reservation joins your party (eg a friend, or via your own matchmaking system). + STEAM_CALL_RESULT( ChangeNumOpenSlotsCallback_t ) + virtual SteamAPICall_t ChangeNumOpenSlots( PartyBeaconID_t ulBeacon, uint32 unOpenSlots ) = 0; + + // Turn off the beacon. + virtual bool DestroyBeacon( PartyBeaconID_t ulBeacon ) = 0; + + // Utils + virtual bool GetBeaconLocationData( SteamPartyBeaconLocation_t BeaconLocation, ESteamPartyBeaconLocationData eData, STEAM_OUT_STRING_COUNT(cchDataStringOut) char *pchDataStringOut, int cchDataStringOut ) = 0; + +}; +#define STEAMPARTIES_INTERFACE_VERSION "SteamParties002" + +// Global interface accessor +inline ISteamParties *SteamParties(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamParties *, SteamParties, STEAMPARTIES_INTERFACE_VERSION ); + + +//----------------------------------------------------------------------------- +// Callbacks for ISteamMatchmaking (which go through the regular Steam callback registration system) + //----------------------------------------------------------------------------- // Purpose: a server was added/removed from the favorites list, you should refresh now //----------------------------------------------------------------------------- @@ -745,6 +916,171 @@ struct FavoritesListAccountsUpdated_t EResult m_eResult; }; + + +//----------------------------------------------------------------------------- +// Callbacks for ISteamGameSearch (which go through the regular Steam callback registration system) + +struct SearchForGameProgressCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 1 }; + + uint64 m_ullSearchID; // all future callbacks referencing this search will include this Search ID + + EResult m_eResult; // if search has started this result will be k_EResultOK, any other value indicates search has failed to start or has terminated + CSteamID m_lobbyID; // lobby ID if lobby search, invalid steamID otherwise + CSteamID m_steamIDEndedSearch; // if search was terminated, steamID that terminated search + + int32 m_nSecondsRemainingEstimate; + int32 m_cPlayersSearching; +}; + +// notification to all players searching that a game has been found +struct SearchForGameResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 2 }; + + uint64 m_ullSearchID; + + EResult m_eResult; // if game/host was lost this will be an error value + + // if m_bGameFound is true the following are non-zero + int32 m_nCountPlayersInGame; + int32 m_nCountAcceptedGame; + // if m_steamIDHost is valid the host has started the game + CSteamID m_steamIDHost; + bool m_bFinalCallback; +}; + + +//----------------------------------------------------------------------------- +// ISteamGameSearch : Game Host API callbacks + +// callback from RequestPlayersForGame when the matchmaking service has started or ended search +// callback will also follow a call from CancelRequestPlayersForGame - m_bSearchInProgress will be false +struct RequestPlayersForGameProgressCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 11 }; + + EResult m_eResult; // m_ullSearchID will be non-zero if this is k_EResultOK + uint64 m_ullSearchID; // all future callbacks referencing this search will include this Search ID +}; + +// callback from RequestPlayersForGame +// one of these will be sent per player +// followed by additional callbacks when players accept or decline the game +struct RequestPlayersForGameResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 12 }; + + EResult m_eResult; // m_ullSearchID will be non-zero if this is k_EResultOK + uint64 m_ullSearchID; + + CSteamID m_SteamIDPlayerFound; // player steamID + CSteamID m_SteamIDLobby; // if the player is in a lobby, the lobby ID + enum PlayerAcceptState_t + { + k_EStateUnknown = 0, + k_EStatePlayerAccepted = 1, + k_EStatePlayerDeclined = 2, + }; + PlayerAcceptState_t m_ePlayerAcceptState; + int32 m_nPlayerIndex; + int32 m_nTotalPlayersFound; // expect this many callbacks at minimum + int32 m_nTotalPlayersAcceptedGame; + int32 m_nSuggestedTeamIndex; + uint64 m_ullUniqueGameID; +}; + + +struct RequestPlayersForGameFinalResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 13 }; + + EResult m_eResult; + uint64 m_ullSearchID; + uint64 m_ullUniqueGameID; +}; + + + +// this callback confirms that results were received by the matchmaking service for this player +struct SubmitPlayerResultResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 14 }; + + EResult m_eResult; + uint64 ullUniqueGameID; + CSteamID steamIDPlayer; +}; + + +// this callback confirms that the game is recorded as complete on the matchmaking service +// the next call to RequestPlayersForGame will generate a new unique game ID +struct EndGameResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 15 }; + + EResult m_eResult; + uint64 ullUniqueGameID; +}; + + +// Steam has responded to the user request to join a party via the given Beacon ID. +// If successful, the connect string contains game-specific instructions to connect +// to the game with that party. +struct JoinPartyCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 1 }; + + EResult m_eResult; + PartyBeaconID_t m_ulBeaconID; + CSteamID m_SteamIDBeaconOwner; + char m_rgchConnectString[256]; +}; + +// Response to CreateBeacon request. If successful, the beacon ID is provided. +struct CreateBeaconCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 2 }; + + EResult m_eResult; + PartyBeaconID_t m_ulBeaconID; +}; + +// Someone has used the beacon to join your party - they are in-flight now +// and we've reserved one of the open slots for them. +// You should confirm when they join your party by calling OnReservationCompleted(). +// Otherwise, Steam may timeout their reservation eventually. +struct ReservationNotificationCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 3 }; + + PartyBeaconID_t m_ulBeaconID; + CSteamID m_steamIDJoiner; +}; + +// Response to ChangeNumOpenSlots call +struct ChangeNumOpenSlotsCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 4 }; + + EResult m_eResult; +}; + +// The list of possible Party beacon locations has changed +struct AvailableBeaconLocationsUpdated_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 5 }; +}; + +// The list of active beacons may have changed +struct ActiveBeaconsUpdated_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 6 }; +}; + + #pragma pack( pop ) diff --git a/lib/linux/include/steam/isteammusic.h b/lib/linux/include/steam/isteammusic.h index 779a4c2..ffa49a0 100644 --- a/lib/linux/include/steam/isteammusic.h +++ b/lib/linux/include/steam/isteammusic.h @@ -6,7 +6,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: @@ -44,22 +44,26 @@ public: #define STEAMMUSIC_INTERFACE_VERSION "STEAMMUSIC_INTERFACE_VERSION001" +// Global interface accessor +inline ISteamMusic *SteamMusic(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMusic *, SteamMusic, STEAMMUSIC_INTERFACE_VERSION ); + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif -DEFINE_CALLBACK( PlaybackStatusHasChanged_t, k_iSteamMusicCallbacks + 1 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( PlaybackStatusHasChanged_t, k_iSteamMusicCallbacks + 1 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( VolumeHasChanged_t, k_iSteamMusicCallbacks + 2 ) - CALLBACK_MEMBER( 0, float, m_flNewVolume ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( VolumeHasChanged_t, k_iSteamMusicCallbacks + 2 ) + STEAM_CALLBACK_MEMBER( 0, float, m_flNewVolume ) +STEAM_CALLBACK_END(1) #pragma pack( pop ) diff --git a/lib/linux/include/steam/isteammusicremote.h b/lib/linux/include/steam/isteammusicremote.h index ea29a7d..a36f4f8 100644 --- a/lib/linux/include/steam/isteammusicremote.h +++ b/lib/linux/include/steam/isteammusicremote.h @@ -6,7 +6,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" #include "isteammusic.h" #define k_SteamMusicNameMaxLength 255 @@ -64,63 +64,67 @@ public: #define STEAMMUSICREMOTE_INTERFACE_VERSION "STEAMMUSICREMOTE_INTERFACE_VERSION001" +// Global interface accessor +inline ISteamMusicRemote *SteamMusicRemote(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMusicRemote *, SteamMusicRemote, STEAMMUSICREMOTE_INTERFACE_VERSION ); + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif -DEFINE_CALLBACK( MusicPlayerRemoteWillActivate_t, k_iSteamMusicRemoteCallbacks + 1) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerRemoteWillActivate_t, k_iSteamMusicRemoteCallbacks + 1) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerRemoteWillDeactivate_t, k_iSteamMusicRemoteCallbacks + 2 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerRemoteWillDeactivate_t, k_iSteamMusicRemoteCallbacks + 2 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerRemoteToFront_t, k_iSteamMusicRemoteCallbacks + 3 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerRemoteToFront_t, k_iSteamMusicRemoteCallbacks + 3 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWillQuit_t, k_iSteamMusicRemoteCallbacks + 4 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWillQuit_t, k_iSteamMusicRemoteCallbacks + 4 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsPlay_t, k_iSteamMusicRemoteCallbacks + 5 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPlay_t, k_iSteamMusicRemoteCallbacks + 5 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsPause_t, k_iSteamMusicRemoteCallbacks + 6 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPause_t, k_iSteamMusicRemoteCallbacks + 6 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsPlayPrevious_t, k_iSteamMusicRemoteCallbacks + 7 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPlayPrevious_t, k_iSteamMusicRemoteCallbacks + 7 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsPlayNext_t, k_iSteamMusicRemoteCallbacks + 8 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPlayNext_t, k_iSteamMusicRemoteCallbacks + 8 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsShuffled_t, k_iSteamMusicRemoteCallbacks + 9 ) - CALLBACK_MEMBER( 0, bool, m_bShuffled ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsShuffled_t, k_iSteamMusicRemoteCallbacks + 9 ) + STEAM_CALLBACK_MEMBER( 0, bool, m_bShuffled ) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerWantsLooped_t, k_iSteamMusicRemoteCallbacks + 10 ) - CALLBACK_MEMBER(0, bool, m_bLooped ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsLooped_t, k_iSteamMusicRemoteCallbacks + 10 ) + STEAM_CALLBACK_MEMBER(0, bool, m_bLooped ) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerWantsVolume_t, k_iSteamMusicCallbacks + 11 ) - CALLBACK_MEMBER(0, float, m_flNewVolume) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsVolume_t, k_iSteamMusicCallbacks + 11 ) + STEAM_CALLBACK_MEMBER(0, float, m_flNewVolume) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerSelectsQueueEntry_t, k_iSteamMusicCallbacks + 12 ) - CALLBACK_MEMBER(0, int, nID ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerSelectsQueueEntry_t, k_iSteamMusicCallbacks + 12 ) + STEAM_CALLBACK_MEMBER(0, int, nID ) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerSelectsPlaylistEntry_t, k_iSteamMusicCallbacks + 13 ) - CALLBACK_MEMBER(0, int, nID ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerSelectsPlaylistEntry_t, k_iSteamMusicCallbacks + 13 ) + STEAM_CALLBACK_MEMBER(0, int, nID ) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerWantsPlayingRepeatStatus_t, k_iSteamMusicRemoteCallbacks + 14 ) - CALLBACK_MEMBER(0, int, m_nPlayingRepeatStatus ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPlayingRepeatStatus_t, k_iSteamMusicRemoteCallbacks + 14 ) + STEAM_CALLBACK_MEMBER(0, int, m_nPlayingRepeatStatus ) +STEAM_CALLBACK_END(1) #pragma pack( pop ) diff --git a/lib/linux/include/steam/isteamnetworking.h b/lib/linux/include/steam/isteamnetworking.h index 8f70819..b7e077a 100644 --- a/lib/linux/include/steam/isteamnetworking.h +++ b/lib/linux/include/steam/isteamnetworking.h @@ -10,21 +10,23 @@ #pragma once #endif -#include "steamtypes.h" -#include "steamclientpublic.h" - +#include "steam_api_common.h" // list of possible errors returned by SendP2PPacket() API // these will be posted in the P2PSessionConnectFail_t callback enum EP2PSessionError { k_EP2PSessionErrorNone = 0, - k_EP2PSessionErrorNotRunningApp = 1, // target is not running the same game k_EP2PSessionErrorNoRightsToApp = 2, // local user doesn't own the app that is running - k_EP2PSessionErrorDestinationNotLoggedIn = 3, // target user isn't connected to Steam k_EP2PSessionErrorTimeout = 4, // target isn't responding, perhaps not calling AcceptP2PSessionWithUser() // corporate firewalls can also block this (NAT traversal is not firewall traversal) // make sure that UDP ports 3478, 4379, and 4380 are open in an outbound direction + + // The following error codes were removed and will never be sent. + // For privacy reasons, there is no reply if the user is offline or playing another game. + k_EP2PSessionErrorNotRunningApp_DELETED = 1, + k_EP2PSessionErrorDestinationNotLoggedIn_DELETED = 3, + k_EP2PSessionErrorMax = 5 }; @@ -63,7 +65,7 @@ enum EP2PSend #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct P2PSessionState_t { @@ -122,13 +124,26 @@ enum ESNetSocketConnectionType //----------------------------------------------------------------------------- // Purpose: Functions for making connections and sending data between clients, // traversing NAT's where possible +// +// NOTE: This interface is deprecated and may be removed in a future release of +/// the Steamworks SDK. Please see ISteamNetworkingSockets and +/// ISteamNetworkingMessages //----------------------------------------------------------------------------- class ISteamNetworking { public: //////////////////////////////////////////////////////////////////////////////////////////// - // Session-less connection functions - // automatically establishes NAT-traversing or Relay server connections + // + // UDP-style (connectionless) networking interface. These functions send messages using + // an API organized around the destination. Reliable and unreliable messages are supported. + // + // For a more TCP-style interface (meaning you have a connection handle), see the functions below. + // Both interface styles can send both reliable and unreliable messages. + // + // Automatically establishes NAT-traversing or Relay server connections + // + // These APIs are deprecated, and may be removed in a future version of the Steamworks + // SDK. See ISteamNetworkingMessages. // Sends a P2P packet to the specified user // UDP-like, unreliable and a max packet size of 1200 bytes @@ -177,15 +192,29 @@ public: // or to existing connections that need to automatically reconnect after this value is set. // // P2P packet relay is allowed by default + // + // NOTE: This function is deprecated and may be removed in a future version of the SDK. For + // security purposes, we may decide to relay the traffic to certain peers, even if you pass false + // to this function, to prevent revealing the client's IP address top another peer. virtual bool AllowP2PPacketRelay( bool bAllow ) = 0; //////////////////////////////////////////////////////////////////////////////////////////// - // LISTEN / CONNECT style interface functions // - // This is an older set of functions designed around the Berkeley TCP sockets model - // it's preferential that you use the above P2P functions, they're more robust - // and these older functions will be removed eventually + // LISTEN / CONNECT connection-oriented interface functions + // + // These functions are more like a client-server TCP API. One side is the "server" + // and "listens" for incoming connections, which then must be "accepted." The "client" + // initiates a connection by "connecting." Sending and receiving is done through a + // connection handle. + // + // For a more UDP-style interface, where you do not track connection handles but + // simply send messages to a SteamID, use the UDP-style functions above. + // + // Both methods can send both reliable and unreliable methods. + // + // These APIs are deprecated, and may be removed in a future version of the Steamworks + // SDK. See ISteamNetworkingSockets. // //////////////////////////////////////////////////////////////////////////////////////////// @@ -198,14 +227,14 @@ public: // pass in 0 if you just want the default local IP // unPort is the port to use // pass in 0 if you don't want users to be able to connect via IP/Port, but expect to be always peer-to-peer connections only - virtual SNetListenSocket_t CreateListenSocket( int nVirtualP2PPort, uint32 nIP, uint16 nPort, bool bAllowUseOfPacketRelay ) = 0; + virtual SNetListenSocket_t CreateListenSocket( int nVirtualP2PPort, SteamIPAddress_t nIP, uint16 nPort, bool bAllowUseOfPacketRelay ) = 0; // creates a socket and begin connection to a remote destination // can connect via a known steamID (client or game server), or directly to an IP // on success will trigger a SocketStatusCallback_t callback // on failure or timeout will trigger a SocketStatusCallback_t callback with a failure code in m_eSNetSocketState virtual SNetSocket_t CreateP2PConnectionSocket( CSteamID steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay ) = 0; - virtual SNetSocket_t CreateConnectionSocket( uint32 nIP, uint16 nPort, int nTimeoutSec ) = 0; + virtual SNetSocket_t CreateConnectionSocket( SteamIPAddress_t nIP, uint16 nPort, int nTimeoutSec ) = 0; // disconnects the connection to the socket, if any, and invalidates the handle // any unread data on the socket will be thrown away @@ -247,11 +276,11 @@ public: virtual bool RetrieveData( SNetListenSocket_t hListenSocket, void *pubDest, uint32 cubDest, uint32 *pcubMsgSize, SNetSocket_t *phSocket ) = 0; // returns information about the specified socket, filling out the contents of the pointers - virtual bool GetSocketInfo( SNetSocket_t hSocket, CSteamID *pSteamIDRemote, int *peSocketStatus, uint32 *punIPRemote, uint16 *punPortRemote ) = 0; + virtual bool GetSocketInfo( SNetSocket_t hSocket, CSteamID *pSteamIDRemote, int *peSocketStatus, SteamIPAddress_t *punIPRemote, uint16 *punPortRemote ) = 0; // returns which local port the listen socket is bound to // *pnIP and *pnPort will be 0 if the socket is set to listen for P2P connections only - virtual bool GetListenSocketInfo( SNetListenSocket_t hListenSocket, uint32 *pnIP, uint16 *pnPort ) = 0; + virtual bool GetListenSocketInfo( SNetListenSocket_t hListenSocket, SteamIPAddress_t *pnIP, uint16 *pnPort ) = 0; // returns true to describe how the socket ended up connecting virtual ESNetSocketConnectionType GetSocketConnectionType( SNetSocket_t hSocket ) = 0; @@ -259,7 +288,15 @@ public: // max packet size, in bytes virtual int GetMaxPacketSize( SNetSocket_t hSocket ) = 0; }; -#define STEAMNETWORKING_INTERFACE_VERSION "SteamNetworking005" +#define STEAMNETWORKING_INTERFACE_VERSION "SteamNetworking006" + +// Global interface accessor +inline ISteamNetworking *SteamNetworking(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworking *, SteamNetworking, STEAMNETWORKING_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamNetworking *SteamGameServerNetworking(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworking *, SteamGameServerNetworking, STEAMNETWORKING_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -267,7 +304,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif // callback notification - a user wants to talk to us over the P2P channel via the SendP2PPacket() API diff --git a/lib/linux/include/steam/isteamnetworkingmessages.h b/lib/linux/include/steam/isteamnetworkingmessages.h new file mode 100644 index 0000000..b7a2cd0 --- /dev/null +++ b/lib/linux/include/steam/isteamnetworkingmessages.h @@ -0,0 +1,198 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== + +#ifndef ISTEAMNETWORKINGMESSAGES +#define ISTEAMNETWORKINGMESSAGES +#pragma once + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +//----------------------------------------------------------------------------- +/// The non-connection-oriented interface to send and receive messages +/// (whether they be "clients" or "servers"). +/// +/// ISteamNetworkingSockets is connection-oriented (like TCP), meaning you +/// need to listen and connect, and then you send messages using a connection +/// handle. ISteamNetworkingMessages is more like UDP, in that you can just send +/// messages to arbitrary peers at any time. The underlying connections are +/// established implicitly. +/// +/// Under the hood ISteamNetworkingMessages works on top of the ISteamNetworkingSockets +/// code, so you get the same routing and messaging efficiency. The difference is +/// mainly in your responsibility to explicitly establish a connection and +/// the type of feedback you get about the state of the connection. Both +/// interfaces can do "P2P" communications, and both support both unreliable +/// and reliable messages, fragmentation and reassembly. +/// +/// The primary purpose of this interface is to be "like UDP", so that UDP-based code +/// can be ported easily to take advantage of relayed connections. If you find +/// yourself needing more low level information or control, or to be able to better +/// handle failure, then you probably need to use ISteamNetworkingSockets directly. +/// Also, note that if your main goal is to obtain a connection between two peers +/// without concerning yourself with assigning roles of "client" and "server", +/// you may find the symmetric connection mode of ISteamNetworkingSockets useful. +/// (See k_ESteamNetworkingConfig_SymmetricConnect.) +/// +class ISteamNetworkingMessages +{ +public: + /// Sends a message to the specified host. If we don't already have a session with that user, + /// a session is implicitly created. There might be some handshaking that needs to happen + /// before we can actually begin sending message data. If this handshaking fails and we can't + /// get through, an error will be posted via the callback SteamNetworkingMessagesSessionFailed_t. + /// There is no notification when the operation succeeds. (You should have the peer send a reply + /// for this purpose.) + /// + /// Sending a message to a host will also implicitly accept any incoming connection from that host. + /// + /// nSendFlags is a bitmask of k_nSteamNetworkingSend_xxx options + /// + /// nRemoteChannel is a routing number you can use to help route message to different systems. + /// You'll have to call ReceiveMessagesOnChannel() with the same channel number in order to retrieve + /// the data on the other end. + /// + /// Using different channels to talk to the same user will still use the same underlying + /// connection, saving on resources. If you don't need this feature, use 0. + /// Otherwise, small integers are the most efficient. + /// + /// It is guaranteed that reliable messages to the same host on the same channel + /// will be be received by the remote host (if they are received at all) exactly once, + /// and in the same order that they were sent. + /// + /// NO other order guarantees exist! In particular, unreliable messages may be dropped, + /// received out of order with respect to each other and with respect to reliable data, + /// or may be received multiple times. Messages on different channels are *not* guaranteed + /// to be received in the order they were sent. + /// + /// A note for those familiar with TCP/IP ports, or converting an existing codebase that + /// opened multiple sockets: You might notice that there is only one channel, and with + /// TCP/IP each endpoint has a port number. You can think of the channel number as the + /// *destination* port. If you need each message to also include a "source port" (so the + /// recipient can route the reply), then just put that in your message. That is essentially + /// how UDP works! + /// + /// Returns: + /// - k_EREsultOK on success. + /// - k_EResultNoConnection, if the session has failed or was closed by the peer and + /// k_nSteamNetworkingSend_AutoRestartBrokenSession was not specified. (You can + /// use GetSessionConnectionInfo to get the details.) In order to acknowledge the + /// broken session and start a new one, you must call CloseSessionWithUser, or you may + /// repeat the call with k_nSteamNetworkingSend_AutoRestartBrokenSession. See + /// k_nSteamNetworkingSend_AutoRestartBrokenSession for more details. + /// - See ISteamNetworkingSockets::SendMessageToConnection for more possible return values + virtual EResult SendMessageToUser( const SteamNetworkingIdentity &identityRemote, const void *pubData, uint32 cubData, int nSendFlags, int nRemoteChannel ) = 0; + + /// Reads the next message that has been sent from another user via SendMessageToUser() on the given channel. + /// Returns number of messages returned into your list. (0 if no message are available on that channel.) + /// + /// When you're done with the message object(s), make sure and call SteamNetworkingMessage_t::Release()! + virtual int ReceiveMessagesOnChannel( int nLocalChannel, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + /// Call this in response to a SteamNetworkingMessagesSessionRequest_t callback. + /// SteamNetworkingMessagesSessionRequest_t are posted when a user tries to send you a message, + /// and you haven't tried to talk to them first. If you don't want to talk to them, just ignore + /// the request. If the user continues to send you messages, SteamNetworkingMessagesSessionRequest_t + /// callbacks will continue to be posted periodically. + /// + /// Returns false if there is no session with the user pending or otherwise. If there is an + /// existing active session, this function will return true, even if it is not pending. + /// + /// Calling SendMessageToUser() will implicitly accepts any pending session request to that user. + virtual bool AcceptSessionWithUser( const SteamNetworkingIdentity &identityRemote ) = 0; + + /// Call this when you're done talking to a user to immediately free up resources under-the-hood. + /// If the remote user tries to send data to you again, another SteamNetworkingMessagesSessionRequest_t + /// callback will be posted. + /// + /// Note that sessions that go unused for a few minutes are automatically timed out. + virtual bool CloseSessionWithUser( const SteamNetworkingIdentity &identityRemote ) = 0; + + /// Call this when you're done talking to a user on a specific channel. Once all + /// open channels to a user have been closed, the open session to the user will be + /// closed, and any new data from this user will trigger a + /// SteamSteamNetworkingMessagesSessionRequest_t callback + virtual bool CloseChannelWithUser( const SteamNetworkingIdentity &identityRemote, int nLocalChannel ) = 0; + + /// Returns information about the latest state of a connection, if any, with the given peer. + /// Primarily intended for debugging purposes, but can also be used to get more detailed + /// failure information. (See SendMessageToUser and k_nSteamNetworkingSend_AutoRestartBrokenSession.) + /// + /// Returns the value of SteamNetConnectionInfo_t::m_eState, or k_ESteamNetworkingConnectionState_None + /// if no connection exists with specified peer. You may pass nullptr for either parameter if + /// you do not need the corresponding details. Note that sessions time out after a while, + /// so if a connection fails, or SendMessageToUser returns k_EResultNoConnection, you cannot wait + /// indefinitely to obtain the reason for failure. + virtual ESteamNetworkingConnectionState GetSessionConnectionInfo( const SteamNetworkingIdentity &identityRemote, SteamNetConnectionInfo_t *pConnectionInfo, SteamNetConnectionRealTimeStatus_t *pQuickStatus ) = 0; +}; +#define STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "SteamNetworkingMessages002" + +// +// Callbacks +// + +#pragma pack( push, 1 ) + +/// Posted when a remote host is sending us a message, and we do not already have a session with them +struct SteamNetworkingMessagesSessionRequest_t +{ + enum { k_iCallback = k_iSteamNetworkingMessagesCallbacks + 1 }; + SteamNetworkingIdentity m_identityRemote; // user who wants to talk to us +}; + +/// Posted when we fail to establish a connection, or we detect that communications +/// have been disrupted it an unusual way. There is no notification when a peer proactively +/// closes the session. ("Closed by peer" is not a concept of UDP-style communications, and +/// SteamNetworkingMessages is primarily intended to make porting UDP code easy.) +/// +/// Remember: callbacks are asynchronous. See notes on SendMessageToUser, +/// and k_nSteamNetworkingSend_AutoRestartBrokenSession in particular. +/// +/// Also, if a session times out due to inactivity, no callbacks will be posted. The only +/// way to detect that this is happening is that querying the session state may return +/// none, connecting, and findingroute again. +struct SteamNetworkingMessagesSessionFailed_t +{ + enum { k_iCallback = k_iSteamNetworkingMessagesCallbacks + 2 }; + + /// Detailed info about the session that failed. + /// SteamNetConnectionInfo_t::m_identityRemote indicates who this session + /// was with. + SteamNetConnectionInfo_t m_info; +}; + +#pragma pack(pop) + +// Global accessors + +// Using standalone lib +#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB + + static_assert( STEAMNETWORKINGMESSAGES_INTERFACE_VERSION[25] == '2', "Version mismatch" ); + + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamNetworkingMessages_LibV2(); + inline ISteamNetworkingMessages *SteamNetworkingMessages_Lib() { return SteamNetworkingMessages_LibV2(); } + + // If running in context of steam, we also define a gameserver instance. + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamGameServerNetworkingMessages_LibV2(); + inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages_Lib() { return SteamGameServerNetworkingMessages_LibV2(); } + + #ifndef STEAMNETWORKINGSOCKETS_STEAMAPI + inline ISteamNetworkingMessages *SteamNetworkingMessages() { return SteamNetworkingMessages_LibV2(); } + inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages() { return SteamGameServerNetworkingMessages_LibV2(); } + #endif +#endif + +// Using Steamworks SDK +#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI + + // Steamworks SDK + STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworkingMessages *, SteamNetworkingMessages_SteamAPI, STEAMNETWORKINGMESSAGES_INTERFACE_VERSION ); + STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingMessages *, SteamGameServerNetworkingMessages_SteamAPI, STEAMNETWORKINGMESSAGES_INTERFACE_VERSION ); + + #ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB + inline ISteamNetworkingMessages *SteamNetworkingMessages() { return SteamNetworkingMessages_SteamAPI(); } + inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages() { return SteamGameServerNetworkingMessages_SteamAPI(); } + #endif +#endif + +#endif // ISTEAMNETWORKINGMESSAGES diff --git a/lib/linux/include/steam/isteamnetworkingsockets.h b/lib/linux/include/steam/isteamnetworkingsockets.h new file mode 100644 index 0000000..427727a --- /dev/null +++ b/lib/linux/include/steam/isteamnetworkingsockets.h @@ -0,0 +1,1030 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== + +#ifndef ISTEAMNETWORKINGSOCKETS +#define ISTEAMNETWORKINGSOCKETS +#pragma once + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +struct SteamNetAuthenticationStatus_t; +struct SteamNetworkingFakeIPResult_t; +class ISteamNetworkingConnectionSignaling; +class ISteamNetworkingSignalingRecvContext; +class ISteamNetworkingFakeUDPPort; + +//----------------------------------------------------------------------------- +/// Lower level networking API. +/// +/// - Connection-oriented API (like TCP, not UDP). When sending and receiving +/// messages, a connection handle is used. (For a UDP-style interface, where +/// the peer is identified by their address with each send/recv call, see +/// ISteamNetworkingMessages.) The typical pattern is for a "server" to "listen" +/// on a "listen socket." A "client" will "connect" to the server, and the +/// server will "accept" the connection. If you have a symmetric situation +/// where either peer may initiate the connection and server/client roles are +/// not clearly defined, check out k_ESteamNetworkingConfig_SymmetricConnect. +/// - But unlike TCP, it's message-oriented, not stream-oriented. +/// - Mix of reliable and unreliable messages +/// - Fragmentation and reassembly +/// - Supports connectivity over plain UDP +/// - Also supports SDR ("Steam Datagram Relay") connections, which are +/// addressed by the identity of the peer. There is a "P2P" use case and +/// a "hosted dedicated server" use case. +/// +/// Note that neither of the terms "connection" nor "socket" necessarily correspond +/// one-to-one with an underlying UDP socket. An attempt has been made to +/// keep the semantics as similar to the standard socket model when appropriate, +/// but some deviations do exist. +/// +/// See also: ISteamNetworkingMessages, the UDP-style interface. This API might be +/// easier to use, especially when porting existing UDP code. +class ISteamNetworkingSockets +{ +public: + + /// Creates a "server" socket that listens for clients to connect to by + /// calling ConnectByIPAddress, over ordinary UDP (IPv4 or IPv6) + /// + /// You must select a specific local port to listen on and set it + /// the port field of the local address. + /// + /// Usually you will set the IP portion of the address to zero (SteamNetworkingIPAddr::Clear()). + /// This means that you will not bind to any particular local interface (i.e. the same + /// as INADDR_ANY in plain socket code). Furthermore, if possible the socket will be bound + /// in "dual stack" mode, which means that it can accept both IPv4 and IPv6 client connections. + /// If you really do wish to bind a particular interface, then set the local address to the + /// appropriate IPv4 or IPv6 IP. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + /// + /// When a client attempts to connect, a SteamNetConnectionStatusChangedCallback_t + /// will be posted. The connection will be in the connecting state. + virtual HSteamListenSocket CreateListenSocketIP( const SteamNetworkingIPAddr &localAddress, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Creates a connection and begins talking to a "server" over UDP at the + /// given IPv4 or IPv6 address. The remote host must be listening with a + /// matching call to CreateListenSocketIP on the specified port. + /// + /// A SteamNetConnectionStatusChangedCallback_t callback will be triggered when we start + /// connecting, and then another one on either timeout or successful connection. + /// + /// If the server does not have any identity configured, then their network address + /// will be the only identity in use. Or, the network host may provide a platform-specific + /// identity with or without a valid certificate to authenticate that identity. (These + /// details will be contained in the SteamNetConnectionStatusChangedCallback_t.) It's + /// up to your application to decide whether to allow the connection. + /// + /// By default, all connections will get basic encryption sufficient to prevent + /// casual eavesdropping. But note that without certificates (or a shared secret + /// distributed through some other out-of-band mechanism), you don't have any + /// way of knowing who is actually on the other end, and thus are vulnerable to + /// man-in-the-middle attacks. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamNetConnection ConnectByIPAddress( const SteamNetworkingIPAddr &address, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Like CreateListenSocketIP, but clients will connect using ConnectP2P. + /// + /// nLocalVirtualPort specifies how clients can connect to this socket using + /// ConnectP2P. It's very common for applications to only have one listening socket; + /// in that case, use zero. If you need to open multiple listen sockets and have clients + /// be able to connect to one or the other, then nLocalVirtualPort should be a small + /// integer (<1000) unique to each listen socket you create. + /// + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() + /// when your app initializes. + /// + /// If you are listening on a dedicated servers in known data center, + /// then you can listen using this function instead of CreateHostedDedicatedServerListenSocket, + /// to allow clients to connect without a ticket. Any user that owns + /// the app and is signed into Steam will be able to attempt to connect to + /// your server. Also, a connection attempt may require the client to + /// be connected to Steam, which is one more moving part that may fail. When + /// tickets are used, then once a ticket is obtained, a client can connect to + /// your server even if they got disconnected from Steam or Steam is offline. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamListenSocket CreateListenSocketP2P( int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Begin connecting to a peer that is identified using a platform-specific identifier. + /// This uses the default rendezvous service, which depends on the platform and library + /// configuration. (E.g. on Steam, it goes through the steam backend.) + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + /// + /// To use your own signaling service, see: + /// - ConnectP2PCustomSignaling + /// - k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling + virtual HSteamNetConnection ConnectP2P( const SteamNetworkingIdentity &identityRemote, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Accept an incoming connection that has been received on a listen socket. + /// + /// When a connection attempt is received (perhaps after a few basic handshake + /// packets have been exchanged to prevent trivial spoofing), a connection interface + /// object is created in the k_ESteamNetworkingConnectionState_Connecting state + /// and a SteamNetConnectionStatusChangedCallback_t is posted. At this point, your + /// application MUST either accept or close the connection. (It may not ignore it.) + /// Accepting the connection will transition it either into the connected state, + /// or the finding route state, depending on the connection type. + /// + /// You should take action within a second or two, because accepting the connection is + /// what actually sends the reply notifying the client that they are connected. If you + /// delay taking action, from the client's perspective it is the same as the network + /// being unresponsive, and the client may timeout the connection attempt. In other + /// words, the client cannot distinguish between a delay caused by network problems + /// and a delay caused by the application. + /// + /// This means that if your application goes for more than a few seconds without + /// processing callbacks (for example, while loading a map), then there is a chance + /// that a client may attempt to connect in that interval and fail due to timeout. + /// + /// If the application does not respond to the connection attempt in a timely manner, + /// and we stop receiving communication from the client, the connection attempt will + /// be timed out locally, transitioning the connection to the + /// k_ESteamNetworkingConnectionState_ProblemDetectedLocally state. The client may also + /// close the connection before it is accepted, and a transition to the + /// k_ESteamNetworkingConnectionState_ClosedByPeer is also possible depending the exact + /// sequence of events. + /// + /// Returns k_EResultInvalidParam if the handle is invalid. + /// Returns k_EResultInvalidState if the connection is not in the appropriate state. + /// (Remember that the connection state could change in between the time that the + /// notification being posted to the queue and when it is received by the application.) + /// + /// A note about connection configuration options. If you need to set any configuration + /// options that are common to all connections accepted through a particular listen + /// socket, consider setting the options on the listen socket, since such options are + /// inherited automatically. If you really do need to set options that are connection + /// specific, it is safe to set them on the connection before accepting the connection. + virtual EResult AcceptConnection( HSteamNetConnection hConn ) = 0; + + /// Disconnects from the remote host and invalidates the connection handle. + /// Any unread data on the connection is discarded. + /// + /// nReason is an application defined code that will be received on the other + /// end and recorded (when possible) in backend analytics. The value should + /// come from a restricted range. (See ESteamNetConnectionEnd.) If you don't need + /// to communicate any information to the remote host, and do not want analytics to + /// be able to distinguish "normal" connection terminations from "exceptional" ones, + /// You may pass zero, in which case the generic value of + /// k_ESteamNetConnectionEnd_App_Generic will be used. + /// + /// pszDebug is an optional human-readable diagnostic string that will be received + /// by the remote host and recorded (when possible) in backend analytics. + /// + /// If you wish to put the socket into a "linger" state, where an attempt is made to + /// flush any remaining sent data, use bEnableLinger=true. Otherwise reliable data + /// is not flushed. + /// + /// If the connection has already ended and you are just freeing up the + /// connection interface, the reason code, debug string, and linger flag are + /// ignored. + virtual bool CloseConnection( HSteamNetConnection hPeer, int nReason, const char *pszDebug, bool bEnableLinger ) = 0; + + /// Destroy a listen socket. All the connections that were accepting on the listen + /// socket are closed ungracefully. + virtual bool CloseListenSocket( HSteamListenSocket hSocket ) = 0; + + /// Set connection user data. the data is returned in the following places + /// - You can query it using GetConnectionUserData. + /// - The SteamNetworkingmessage_t structure. + /// - The SteamNetConnectionInfo_t structure. + /// (Which is a member of SteamNetConnectionStatusChangedCallback_t -- but see WARNINGS below!!!!) + /// + /// Do you need to set this atomically when the connection is created? + /// See k_ESteamNetworkingConfig_ConnectionUserData. + /// + /// WARNING: Be *very careful* when using the value provided in callbacks structs. + /// Callbacks are queued, and the value that you will receive in your + /// callback is the userdata that was effective at the time the callback + /// was queued. There are subtle race conditions that can happen if you + /// don't understand this! + /// + /// If any incoming messages for this connection are queued, the userdata + /// field is updated, so that when when you receive messages (e.g. with + /// ReceiveMessagesOnConnection), they will always have the very latest + /// userdata. So the tricky race conditions that can happen with callbacks + /// do not apply to retrieving messages. + /// + /// Returns false if the handle is invalid. + virtual bool SetConnectionUserData( HSteamNetConnection hPeer, int64 nUserData ) = 0; + + /// Fetch connection user data. Returns -1 if handle is invalid + /// or if you haven't set any userdata on the connection. + virtual int64 GetConnectionUserData( HSteamNetConnection hPeer ) = 0; + + /// Set a name for the connection, used mostly for debugging + virtual void SetConnectionName( HSteamNetConnection hPeer, const char *pszName ) = 0; + + /// Fetch connection name. Returns false if handle is invalid + virtual bool GetConnectionName( HSteamNetConnection hPeer, char *pszName, int nMaxLen ) = 0; + + /// Send a message to the remote host on the specified connection. + /// + /// nSendFlags determines the delivery guarantees that will be provided, + /// when data should be buffered, etc. E.g. k_nSteamNetworkingSend_Unreliable + /// + /// Note that the semantics we use for messages are not precisely + /// the same as the semantics of a standard "stream" socket. + /// (SOCK_STREAM) For an ordinary stream socket, the boundaries + /// between chunks are not considered relevant, and the sizes of + /// the chunks of data written will not necessarily match up to + /// the sizes of the chunks that are returned by the reads on + /// the other end. The remote host might read a partial chunk, + /// or chunks might be coalesced. For the message semantics + /// used here, however, the sizes WILL match. Each send call + /// will match a successful read call on the remote host + /// one-for-one. If you are porting existing stream-oriented + /// code to the semantics of reliable messages, your code should + /// work the same, since reliable message semantics are more + /// strict than stream semantics. The only caveat is related to + /// performance: there is per-message overhead to retain the + /// message sizes, and so if your code sends many small chunks + /// of data, performance will suffer. Any code based on stream + /// sockets that does not write excessively small chunks will + /// work without any changes. + /// + /// The pOutMessageNumber is an optional pointer to receive the + /// message number assigned to the message, if sending was successful. + /// + /// Returns: + /// - k_EResultInvalidParam: invalid connection handle, or the individual message is too big. + /// (See k_cbMaxSteamNetworkingSocketsMessageSizeSend) + /// - k_EResultInvalidState: connection is in an invalid state + /// - k_EResultNoConnection: connection has ended + /// - k_EResultIgnored: You used k_nSteamNetworkingSend_NoDelay, and the message was dropped because + /// we were not ready to send it. + /// - k_EResultLimitExceeded: there was already too much data queued to be sent. + /// (See k_ESteamNetworkingConfig_SendBufferSize) + virtual EResult SendMessageToConnection( HSteamNetConnection hConn, const void *pData, uint32 cbData, int nSendFlags, int64 *pOutMessageNumber ) = 0; + + /// Send one or more messages without copying the message payload. + /// This is the most efficient way to send messages. To use this + /// function, you must first allocate a message object using + /// ISteamNetworkingUtils::AllocateMessage. (Do not declare one + /// on the stack or allocate your own.) + /// + /// You should fill in the message payload. You can either let + /// it allocate the buffer for you and then fill in the payload, + /// or if you already have a buffer allocated, you can just point + /// m_pData at your buffer and set the callback to the appropriate function + /// to free it. Note that if you use your own buffer, it MUST remain valid + /// until the callback is executed. And also note that your callback can be + /// invoked at any time from any thread (perhaps even before SendMessages + /// returns!), so it MUST be fast and threadsafe. + /// + /// You MUST also fill in: + /// - m_conn - the handle of the connection to send the message to + /// - m_nFlags - bitmask of k_nSteamNetworkingSend_xxx flags. + /// + /// All other fields are currently reserved and should not be modified. + /// + /// The library will take ownership of the message structures. They may + /// be modified or become invalid at any time, so you must not read them + /// after passing them to this function. + /// + /// pOutMessageNumberOrResult is an optional array that will receive, + /// for each message, the message number that was assigned to the message + /// if sending was successful. If sending failed, then a negative EResult + /// value is placed into the array. For example, the array will hold + /// -k_EResultInvalidState if the connection was in an invalid state. + /// See ISteamNetworkingSockets::SendMessageToConnection for possible + /// failure codes. + virtual void SendMessages( int nMessages, SteamNetworkingMessage_t *const *pMessages, int64 *pOutMessageNumberOrResult ) = 0; + + /// Flush any messages waiting on the Nagle timer and send them + /// at the next transmission opportunity (often that means right now). + /// + /// If Nagle is enabled (it's on by default) then when calling + /// SendMessageToConnection the message will be buffered, up to the Nagle time + /// before being sent, to merge small messages into the same packet. + /// (See k_ESteamNetworkingConfig_NagleTime) + /// + /// Returns: + /// k_EResultInvalidParam: invalid connection handle + /// k_EResultInvalidState: connection is in an invalid state + /// k_EResultNoConnection: connection has ended + /// k_EResultIgnored: We weren't (yet) connected, so this operation has no effect. + virtual EResult FlushMessagesOnConnection( HSteamNetConnection hConn ) = 0; + + /// Fetch the next available message(s) from the connection, if any. + /// Returns the number of messages returned into your array, up to nMaxMessages. + /// If the connection handle is invalid, -1 is returned. + /// + /// The order of the messages returned in the array is relevant. + /// Reliable messages will be received in the order they were sent (and with the + /// same sizes --- see SendMessageToConnection for on this subtle difference from a stream socket). + /// + /// Unreliable messages may be dropped, or delivered out of order with respect to + /// each other or with respect to reliable messages. The same unreliable message + /// may be received multiple times. + /// + /// If any messages are returned, you MUST call SteamNetworkingMessage_t::Release() on each + /// of them free up resources after you are done. It is safe to keep the object alive for + /// a little while (put it into some queue, etc), and you may call Release() from any thread. + virtual int ReceiveMessagesOnConnection( HSteamNetConnection hConn, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + /// Returns basic information about the high-level state of the connection. + virtual bool GetConnectionInfo( HSteamNetConnection hConn, SteamNetConnectionInfo_t *pInfo ) = 0; + + /// Returns a small set of information about the real-time state of the connection + /// and the queue status of each lane. + /// + /// - pStatus may be NULL if the information is not desired. (E.g. you are only interested + /// in the lane information.) + /// - On entry, nLanes specifies the length of the pLanes array. This may be 0 + /// if you do not wish to receive any lane data. It's OK for this to be smaller than + /// the total number of configured lanes. + /// - pLanes points to an array that will receive lane-specific info. It can be NULL + /// if this is not needed. + /// + /// Return value: + /// - k_EResultNoConnection - connection handle is invalid or connection has been closed. + /// - k_EResultInvalidParam - nLanes is bad + virtual EResult GetConnectionRealTimeStatus( HSteamNetConnection hConn, SteamNetConnectionRealTimeStatus_t *pStatus, + int nLanes, SteamNetConnectionRealTimeLaneStatus_t *pLanes ) = 0; + + /// Returns detailed connection stats in text format. Useful + /// for dumping to a log, etc. + /// + /// Returns: + /// -1 failure (bad connection handle) + /// 0 OK, your buffer was filled in and '\0'-terminated + /// >0 Your buffer was either nullptr, or it was too small and the text got truncated. + /// Try again with a buffer of at least N bytes. + virtual int GetDetailedConnectionStatus( HSteamNetConnection hConn, char *pszBuf, int cbBuf ) = 0; + + /// Returns local IP and port that a listen socket created using CreateListenSocketIP is bound to. + /// + /// An IPv6 address of ::0 means "any IPv4 or IPv6" + /// An IPv6 address of ::ffff:0000:0000 means "any IPv4" + virtual bool GetListenSocketAddress( HSteamListenSocket hSocket, SteamNetworkingIPAddr *address ) = 0; + + /// Create a pair of connections that are talking to each other, e.g. a loopback connection. + /// This is very useful for testing, or so that your client/server code can work the same + /// even when you are running a local "server". + /// + /// The two connections will immediately be placed into the connected state, and no callbacks + /// will be posted immediately. After this, if you close either connection, the other connection + /// will receive a callback, exactly as if they were communicating over the network. You must + /// close *both* sides in order to fully clean up the resources! + /// + /// By default, internal buffers are used, completely bypassing the network, the chopping up of + /// messages into packets, encryption, copying the payload, etc. This means that loopback + /// packets, by default, will not simulate lag or loss. Passing true for bUseNetworkLoopback will + /// cause the socket pair to send packets through the local network loopback device (127.0.0.1) + /// on ephemeral ports. Fake lag and loss are supported in this case, and CPU time is expended + /// to encrypt and decrypt. + /// + /// If you wish to assign a specific identity to either connection, you may pass a particular + /// identity. Otherwise, if you pass nullptr, the respective connection will assume a generic + /// "localhost" identity. If you use real network loopback, this might be translated to the + /// actual bound loopback port. Otherwise, the port will be zero. + virtual bool CreateSocketPair( HSteamNetConnection *pOutConnection1, HSteamNetConnection *pOutConnection2, bool bUseNetworkLoopback, const SteamNetworkingIdentity *pIdentity1, const SteamNetworkingIdentity *pIdentity2 ) = 0; + + /// Configure multiple outbound messages streams ("lanes") on a connection, and + /// control head-of-line blocking between them. Messages within a given lane + /// are always sent in the order they are queued, but messages from different + /// lanes may be sent out of order. Each lane has its own message number + /// sequence. The first message sent on each lane will be assigned the number 1. + /// + /// Each lane has a "priority". Lanes with higher numeric values will only be processed + /// when all lanes with lower number values are empty. The magnitudes of the priority + /// values are not relevant, only their sort order. + /// + /// Each lane also is assigned a weight, which controls the approximate proportion + /// of the bandwidth that will be consumed by the lane, relative to other lanes + /// of the same priority. (This is assuming the lane stays busy. An idle lane + /// does not build up "credits" to be be spent once a message is queued.) + /// This value is only meaningful as a proportion, relative to other lanes with + /// the same priority. For lanes with different priorities, the strict priority + /// order will prevail, and their weights relative to each other are not relevant. + /// Thus, if a lane has a unique priority value, the weight value for that lane is + /// not relevant. + /// + /// Example: 3 lanes, with priorities [ 0, 10, 10 ] and weights [ (NA), 20, 5 ]. + /// Messages sent on the first will always be sent first, before messages in the + /// other two lanes. Its weight value is irrelevant, since there are no other + /// lanes with priority=0. The other two lanes will share bandwidth, with the second + /// and third lanes sharing bandwidth using a ratio of approximately 4:1. + /// (The weights [ NA, 4, 1 ] would be equivalent.) + /// + /// Notes: + /// - At the time of this writing, some code has performance cost that is linear + /// in the number of lanes, so keep the number of lanes to an absolute minimum. + /// 3 or so is fine; >8 is a lot. The max number of lanes on Steam is 255, + /// which is a very large number and not recommended! If you are compiling this + /// library from source, see STEAMNETWORKINGSOCKETS_MAX_LANES.) + /// - Lane priority values may be any int. Their absolute value is not relevant, + /// only the order matters. + /// - Weights must be positive, and due to implementation details, they are restricted + /// to 16-bit values. The absolute magnitudes don't matter, just the proportions. + /// - Messages sent on a lane index other than 0 have a small overhead on the wire, + /// so for maximum wire efficiency, lane 0 should be the "most common" lane, regardless + /// of priorities or weights. + /// - A connection has a single lane by default. Calling this function with + /// nNumLanes=1 is legal, but pointless, since the priority and weight values are + /// irrelevant in that case. + /// - You may reconfigure connection lanes at any time, however reducing the number of + /// lanes is not allowed. + /// - Reconfiguring lanes might restart any bandwidth sharing balancing. Usually you + /// will call this function once, near the start of the connection, perhaps after + /// exchanging a few messages. + /// - To assign all lanes the same priority, you may use pLanePriorities=NULL. + /// - If you wish all lanes with the same priority to share bandwidth equally (or + /// if no two lanes have the same priority value, and thus priority values are + /// irrelevant), you may use pLaneWeights=NULL + /// - Priorities and weights determine the order that messages are SENT on the wire. + /// There are NO GUARANTEES on the order that messages are RECEIVED! Due to packet + /// loss, out-of-order delivery, and subtle details of packet serialization, messages + /// might still be received slightly out-of-order! The *only* strong guarantee is that + /// *reliable* messages on the *same lane* will be delivered in the order they are sent. + /// - Each host configures the lanes for the packets they send; the lanes for the flow + /// in one direction are completely unrelated to the lanes in the opposite direction. + /// + /// Return value: + /// - k_EResultNoConnection - bad hConn + /// - k_EResultInvalidParam - Invalid number of lanes, bad weights, or you tried to reduce the number of lanes + /// - k_EResultInvalidState - Connection is already dead, etc + /// + /// See also: + /// SteamNetworkingMessage_t::m_idxLane + virtual EResult ConfigureConnectionLanes( HSteamNetConnection hConn, int nNumLanes, const int *pLanePriorities, const uint16 *pLaneWeights ) = 0; + + // + // Identity and authentication + // + + /// Get the identity assigned to this interface. + /// E.g. on Steam, this is the user's SteamID, or for the gameserver interface, the SteamID assigned + /// to the gameserver. Returns false and sets the result to an invalid identity if we don't know + /// our identity yet. (E.g. GameServer has not logged in. On Steam, the user will know their SteamID + /// even if they are not signed into Steam.) + virtual bool GetIdentity( SteamNetworkingIdentity *pIdentity ) = 0; + + /// Indicate our desire to be ready participate in authenticated communications. + /// If we are currently not ready, then steps will be taken to obtain the necessary + /// certificates. (This includes a certificate for us, as well as any CA certificates + /// needed to authenticate peers.) + /// + /// You can call this at program init time if you know that you are going to + /// be making authenticated connections, so that we will be ready immediately when + /// those connections are attempted. (Note that essentially all connections require + /// authentication, with the exception of ordinary UDP connections with authentication + /// disabled using k_ESteamNetworkingConfig_IP_AllowWithoutAuth.) If you don't call + /// this function, we will wait until a feature is utilized that that necessitates + /// these resources. + /// + /// You can also call this function to force a retry, if failure has occurred. + /// Once we make an attempt and fail, we will not automatically retry. + /// In this respect, the behavior of the system after trying and failing is the same + /// as before the first attempt: attempting authenticated communication or calling + /// this function will call the system to attempt to acquire the necessary resources. + /// + /// You can use GetAuthenticationStatus or listen for SteamNetAuthenticationStatus_t + /// to monitor the status. + /// + /// Returns the current value that would be returned from GetAuthenticationStatus. + virtual ESteamNetworkingAvailability InitAuthentication() = 0; + + /// Query our readiness to participate in authenticated communications. A + /// SteamNetAuthenticationStatus_t callback is posted any time this status changes, + /// but you can use this function to query it at any time. + /// + /// The value of SteamNetAuthenticationStatus_t::m_eAvail is returned. If you only + /// want this high level status, you can pass NULL for pDetails. If you want further + /// details, pass non-NULL to receive them. + virtual ESteamNetworkingAvailability GetAuthenticationStatus( SteamNetAuthenticationStatus_t *pDetails ) = 0; + + // + // Poll groups. A poll group is a set of connections that can be polled efficiently. + // (In our API, to "poll" a connection means to retrieve all pending messages. We + // actually don't have an API to "poll" the connection *state*, like BSD sockets.) + // + + /// Create a new poll group. + /// + /// You should destroy the poll group when you are done using DestroyPollGroup + virtual HSteamNetPollGroup CreatePollGroup() = 0; + + /// Destroy a poll group created with CreatePollGroup(). + /// + /// If there are any connections in the poll group, they are removed from the group, + /// and left in a state where they are not part of any poll group. + /// Returns false if passed an invalid poll group handle. + virtual bool DestroyPollGroup( HSteamNetPollGroup hPollGroup ) = 0; + + /// Assign a connection to a poll group. Note that a connection may only belong to a + /// single poll group. Adding a connection to a poll group implicitly removes it from + /// any other poll group it is in. + /// + /// You can pass k_HSteamNetPollGroup_Invalid to remove a connection from its current + /// poll group without adding it to a new poll group. + /// + /// If there are received messages currently pending on the connection, an attempt + /// is made to add them to the queue of messages for the poll group in approximately + /// the order that would have applied if the connection was already part of the poll + /// group at the time that the messages were received. + /// + /// Returns false if the connection handle is invalid, or if the poll group handle + /// is invalid (and not k_HSteamNetPollGroup_Invalid). + virtual bool SetConnectionPollGroup( HSteamNetConnection hConn, HSteamNetPollGroup hPollGroup ) = 0; + + /// Same as ReceiveMessagesOnConnection, but will return the next messages available + /// on any connection in the poll group. Examine SteamNetworkingMessage_t::m_conn + /// to know which connection. (SteamNetworkingMessage_t::m_nConnUserData might also + /// be useful.) + /// + /// Delivery order of messages among different connections will usually match the + /// order that the last packet was received which completed the message. But this + /// is not a strong guarantee, especially for packets received right as a connection + /// is being assigned to poll group. + /// + /// Delivery order of messages on the same connection is well defined and the + /// same guarantees are present as mentioned in ReceiveMessagesOnConnection. + /// (But the messages are not grouped by connection, so they will not necessarily + /// appear consecutively in the list; they may be interleaved with messages for + /// other connections.) + virtual int ReceiveMessagesOnPollGroup( HSteamNetPollGroup hPollGroup, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + // + // Clients connecting to dedicated servers hosted in a data center, + // using tickets issued by your game coordinator. If you are not + // issuing your own tickets to restrict who can attempt to connect + // to your server, then you won't use these functions. + // + + /// Call this when you receive a ticket from your backend / matchmaking system. Puts the + /// ticket into a persistent cache, and optionally returns the parsed ticket. + /// + /// See stamdatagram_ticketgen.h for more details. + virtual bool ReceivedRelayAuthTicket( const void *pvTicket, int cbTicket, SteamDatagramRelayAuthTicket *pOutParsedTicket ) = 0; + + /// Search cache for a ticket to talk to the server on the specified virtual port. + /// If found, returns the number of seconds until the ticket expires, and optionally + /// the complete cracked ticket. Returns 0 if we don't have a ticket. + /// + /// Typically this is useful just to confirm that you have a ticket, before you + /// call ConnectToHostedDedicatedServer to connect to the server. + virtual int FindRelayAuthTicketForServer( const SteamNetworkingIdentity &identityGameServer, int nRemoteVirtualPort, SteamDatagramRelayAuthTicket *pOutParsedTicket ) = 0; + + /// Client call to connect to a server hosted in a Valve data center, on the specified virtual + /// port. You must have placed a ticket for this server into the cache, or else this connect + /// attempt will fail! If you are not issuing your own tickets, then to connect to a dedicated + /// server via SDR in auto-ticket mode, use ConnectP2P. (The server must be configured to allow + /// this type of connection by listening using CreateListenSocketP2P.) + /// + /// You may wonder why tickets are stored in a cache, instead of simply being passed as an argument + /// here. The reason is to make reconnection to a gameserver robust, even if the client computer loses + /// connection to Steam or the central backend, or the app is restarted or crashes, etc. + /// + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() + /// when your app initializes + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamNetConnection ConnectToHostedDedicatedServer( const SteamNetworkingIdentity &identityTarget, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + // + // Servers hosted in data centers known to the Valve relay network + // + + /// Returns the value of the SDR_LISTEN_PORT environment variable. This + /// is the UDP server your server will be listening on. This will + /// configured automatically for you in production environments. + /// + /// In development, you'll need to set it yourself. See + /// https://partner.steamgames.com/doc/api/ISteamNetworkingSockets + /// for more information on how to configure dev environments. + virtual uint16 GetHostedDedicatedServerPort() = 0; + + /// Returns 0 if SDR_LISTEN_PORT is not set. Otherwise, returns the data center the server + /// is running in. This will be k_SteamDatagramPOPID_dev in non-production environment. + virtual SteamNetworkingPOPID GetHostedDedicatedServerPOPID() = 0; + + /// Return info about the hosted server. This contains the PoPID of the server, + /// and opaque routing information that can be used by the relays to send traffic + /// to your server. + /// + /// You will need to send this information to your backend, and put it in tickets, + /// so that the relays will know how to forward traffic from + /// clients to your server. See SteamDatagramRelayAuthTicket for more info. + /// + /// Also, note that the routing information is contained in SteamDatagramGameCoordinatorServerLogin, + /// so if possible, it's preferred to use GetGameCoordinatorServerLogin to send this info + /// to your game coordinator service, and also login securely at the same time. + /// + /// On a successful exit, k_EResultOK is returned + /// + /// Unsuccessful exit: + /// - Something other than k_EResultOK is returned. + /// - k_EResultInvalidState: We are not configured to listen for SDR (SDR_LISTEN_SOCKET + /// is not set.) + /// - k_EResultPending: we do not (yet) have the authentication information needed. + /// (See GetAuthenticationStatus.) If you use environment variables to pre-fetch + /// the network config, this data should always be available immediately. + /// - A non-localized diagnostic debug message will be placed in m_data that describes + /// the cause of the failure. + /// + /// NOTE: The returned blob is not encrypted. Send it to your backend, but don't + /// directly share it with clients. + virtual EResult GetHostedDedicatedServerAddress( SteamDatagramHostedAddress *pRouting ) = 0; + + /// Create a listen socket on the specified virtual port. The physical UDP port to use + /// will be determined by the SDR_LISTEN_PORT environment variable. If a UDP port is not + /// configured, this call will fail. + /// + /// This call MUST be made through the SteamGameServerNetworkingSockets() interface. + /// + /// This function should be used when you are using the ticket generator library + /// to issue your own tickets. Clients connecting to the server on this virtual + /// port will need a ticket, and they must connect using ConnectToHostedDedicatedServer. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamListenSocket CreateHostedDedicatedServerListenSocket( int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Generate an authentication blob that can be used to securely login with + /// your backend, using SteamDatagram_ParseHostedServerLogin. (See + /// steamdatagram_gamecoordinator.h) + /// + /// Before calling the function: + /// - Populate the app data in pLoginInfo (m_cbAppData and m_appData). You can leave + /// all other fields uninitialized. + /// - *pcbSignedBlob contains the size of the buffer at pBlob. (It should be + /// at least k_cbMaxSteamDatagramGameCoordinatorServerLoginSerialized.) + /// + /// On a successful exit: + /// - k_EResultOK is returned + /// - All of the remaining fields of pLoginInfo will be filled out. + /// - *pcbSignedBlob contains the size of the serialized blob that has been + /// placed into pBlob. + /// + /// Unsuccessful exit: + /// - Something other than k_EResultOK is returned. + /// - k_EResultNotLoggedOn: you are not logged in (yet) + /// - See GetHostedDedicatedServerAddress for more potential failure return values. + /// - A non-localized diagnostic debug message will be placed in pBlob that describes + /// the cause of the failure. + /// + /// This works by signing the contents of the SteamDatagramGameCoordinatorServerLogin + /// with the cert that is issued to this server. In dev environments, it's OK if you do + /// not have a cert. (You will need to enable insecure dev login in SteamDatagram_ParseHostedServerLogin.) + /// Otherwise, you will need a signed cert. + /// + /// NOTE: The routing blob returned here is not encrypted. Send it to your backend + /// and don't share it directly with clients. + virtual EResult GetGameCoordinatorServerLogin( SteamDatagramGameCoordinatorServerLogin *pLoginInfo, int *pcbSignedBlob, void *pBlob ) = 0; + + + // + // Relayed connections using custom signaling protocol + // + // This is used if you have your own method of sending out-of-band + // signaling / rendezvous messages through a mutually trusted channel. + // + + /// Create a P2P "client" connection that does signaling over a custom + /// rendezvous/signaling channel. + /// + /// pSignaling points to a new object that you create just for this connection. + /// It must stay valid until Release() is called. Once you pass the + /// object to this function, it assumes ownership. Release() will be called + /// from within the function call if the call fails. Furthermore, until Release() + /// is called, you should be prepared for methods to be invoked on your + /// object from any thread! You need to make sure your object is threadsafe! + /// Furthermore, you should make sure that dispatching the methods is done + /// as quickly as possible. + /// + /// This function will immediately construct a connection in the "connecting" + /// state. Soon after (perhaps before this function returns, perhaps in another thread), + /// the connection will begin sending signaling messages by calling + /// ISteamNetworkingConnectionSignaling::SendSignal. + /// + /// When the remote peer accepts the connection (See + /// ISteamNetworkingSignalingRecvContext::OnConnectRequest), + /// it will begin sending signaling messages. When these messages are received, + /// you can pass them to the connection using ReceivedP2PCustomSignal. + /// + /// If you know the identity of the peer that you expect to be on the other end, + /// you can pass their identity to improve debug output or just detect bugs. + /// If you don't know their identity yet, you can pass NULL, and their + /// identity will be established in the connection handshake. + /// + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() + /// when your app initializes + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamNetConnection ConnectP2PCustomSignaling( ISteamNetworkingConnectionSignaling *pSignaling, const SteamNetworkingIdentity *pPeerIdentity, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Called when custom signaling has received a message. When your + /// signaling channel receives a message, it should save off whatever + /// routing information was in the envelope into the context object, + /// and then pass the payload to this function. + /// + /// A few different things can happen next, depending on the message: + /// + /// - If the signal is associated with existing connection, it is dealt + /// with immediately. If any replies need to be sent, they will be + /// dispatched using the ISteamNetworkingConnectionSignaling + /// associated with the connection. + /// - If the message represents a connection request (and the request + /// is not redundant for an existing connection), a new connection + /// will be created, and ReceivedConnectRequest will be called on your + /// context object to determine how to proceed. + /// - Otherwise, the message is for a connection that does not + /// exist (anymore). In this case, we *may* call SendRejectionReply + /// on your context object. + /// + /// In any case, we will not save off pContext or access it after this + /// function returns. + /// + /// Returns true if the message was parsed and dispatched without anything + /// unusual or suspicious happening. Returns false if there was some problem + /// with the message that prevented ordinary handling. (Debug output will + /// usually have more information.) + /// + /// If you expect to be using relayed connections, then you probably want + /// to call ISteamNetworkingUtils::InitRelayNetworkAccess() when your app initializes + virtual bool ReceivedP2PCustomSignal( const void *pMsg, int cbMsg, ISteamNetworkingSignalingRecvContext *pContext ) = 0; + + // + // Certificate provision by the application. On Steam, we normally handle all this automatically + // and you will not need to use these advanced functions. + // + + /// Get blob that describes a certificate request. You can send this to your game coordinator. + /// Upon entry, *pcbBlob should contain the size of the buffer. On successful exit, it will + /// return the number of bytes that were populated. You can pass pBlob=NULL to query for the required + /// size. (512 bytes is a conservative estimate.) + /// + /// Pass this blob to your game coordinator and call SteamDatagram_CreateCert. + virtual bool GetCertificateRequest( int *pcbBlob, void *pBlob, SteamNetworkingErrMsg &errMsg ) = 0; + + /// Set the certificate. The certificate blob should be the output of + /// SteamDatagram_CreateCert. + virtual bool SetCertificate( const void *pCertificate, int cbCertificate, SteamNetworkingErrMsg &errMsg ) = 0; + + /// Reset the identity associated with this instance. + /// Any open connections are closed. Any previous certificates, etc are discarded. + /// You can pass a specific identity that you want to use, or you can pass NULL, + /// in which case the identity will be invalid until you set it using SetCertificate + /// + /// NOTE: This function is not actually supported on Steam! It is included + /// for use on other platforms where the active user can sign out and + /// a new user can sign in. + virtual void ResetIdentity( const SteamNetworkingIdentity *pIdentity ) = 0; + + // + // Misc + // + + /// Invoke all callback functions queued for this interface. + /// See k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, etc + /// + /// You don't need to call this if you are using Steam's callback dispatch + /// mechanism (SteamAPI_RunCallbacks and SteamGameserver_RunCallbacks). + virtual void RunCallbacks() = 0; + + // + // "FakeIP" system. + // + // A FakeIP is essentially a temporary, arbitrary identifier that + // happens to be a valid IPv4 address. The purpose of this system is to make it + // easy to integrate with existing code that identifies hosts using IPv4 addresses. + // The FakeIP address will never actually be used to send or receive any packets + // on the Internet, it is strictly an identifier. + // + // FakeIP addresses are designed to (hopefully) pass through existing code as + // transparently as possible, while conflicting with "real" addresses that might + // be in use on networks (both the Internet and LANs) in the same code as little + // as possible. At the time this comment is being written, they come from the + // 169.254.0.0/16 range, and the port number will always be >1024. HOWEVER, + // this is subject to change! Do not make assumptions about these addresses, + // or your code might break in the future. In particular, you should use + // functions such as ISteamNetworkingUtils::IsFakeIP to determine if an IP + // address is a "fake" one used by this system. + // + + /// Begin asynchronous process of allocating a fake IPv4 address that other + /// peers can use to contact us via P2P. IP addresses returned by this + /// function are globally unique for a given appid. + /// + /// nNumPorts is the numbers of ports you wish to reserve. This is useful + /// for the same reason that listening on multiple UDP ports is useful for + /// different types of traffic. Because these allocations come from a global + /// namespace, there is a relatively strict limit on the maximum number of + /// ports you may request. (At the time of this writing, the limit is 4.) + /// The port assignments are *not* guaranteed to have any particular order + /// or relationship! Do *not* assume they are contiguous, even though that + /// may often occur in practice. + /// + /// Returns false if a request was already in progress, true if a new request + /// was started. A SteamNetworkingFakeIPResult_t will be posted when the request + /// completes. + /// + /// For gameservers, you *must* call this after initializing the SDK but before + /// beginning login. Steam needs to know in advance that FakeIP will be used. + /// Everywhere your public IP would normally appear (such as the server browser) will be + /// replaced by the FakeIP, and the fake port at index 0. The request is actually queued + /// until the logon completes, so you must not wait until the allocation completes + /// before logging in. Except for trivial failures that can be detected locally + /// (e.g. invalid parameter), a SteamNetworkingFakeIPResult_t callback (whether success or + /// failure) will not be posted until after we have logged in. Furthermore, it is assumed + /// that FakeIP allocation is essential for your application to function, and so failure + /// will not be reported until *several* retries have been attempted. This process may + /// last several minutes. It is *highly* recommended to treat failure as fatal. + /// + /// To communicate using a connection-oriented (TCP-style) API: + /// - Server creates a listen socket using CreateListenSocketP2PFakeIP + /// - Client connects using ConnectByIPAddress, passing in the FakeIP address. + /// - The connection will behave mostly like a P2P connection. The identities + /// that appear in SteamNetConnectionInfo_t will be the FakeIP identity until + /// we know the real identity. Then it will be the real identity. If the + /// SteamNetConnectionInfo_t::m_addrRemote is valid, it will be a real IPv4 + /// address of a NAT-punched connection. Otherwise, it will not be valid. + /// + /// To communicate using an ad-hoc sendto/recv from (UDP-style) API, + /// use CreateFakeUDPPort. + virtual bool BeginAsyncRequestFakeIP( int nNumPorts ) = 0; + + /// Return info about the FakeIP and port(s) that we have been assigned, + /// if any. idxFirstPort is currently reserved and must be zero. + /// Make sure and check SteamNetworkingFakeIPResult_t::m_eResult + virtual void GetFakeIP( int idxFirstPort, SteamNetworkingFakeIPResult_t *pInfo ) = 0; + + /// Create a listen socket that will listen for P2P connections sent + /// to our FakeIP. A peer can initiate connections to this listen + /// socket by calling ConnectByIPAddress. + /// + /// idxFakePort refers to the *index* of the fake port requested, + /// not the actual port number. For example, pass 0 to refer to the + /// first port in the reservation. You must call this only after calling + /// BeginAsyncRequestFakeIP. However, you do not need to wait for the + /// request to complete before creating the listen socket. + virtual HSteamListenSocket CreateListenSocketP2PFakeIP( int idxFakePort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// If the connection was initiated using the "FakeIP" system, then we + /// we can get an IP address for the remote host. If the remote host had + /// a global FakeIP at the time the connection was established, this + /// function will return that global IP. Otherwise, a FakeIP that is + /// unique locally will be allocated from the local FakeIP address space, + /// and that will be returned. + /// + /// The allocation of local FakeIPs attempts to assign addresses in + /// a consistent manner. If multiple connections are made to the + /// same remote host, they *probably* will return the same FakeIP. + /// However, since the namespace is limited, this cannot be guaranteed. + /// + /// On failure, returns: + /// - k_EResultInvalidParam: invalid connection handle + /// - k_EResultIPNotFound: This connection wasn't made using FakeIP system + virtual EResult GetRemoteFakeIPForConnection( HSteamNetConnection hConn, SteamNetworkingIPAddr *pOutAddr ) = 0; + + /// Get an interface that can be used like a UDP port to send/receive + /// datagrams to a FakeIP address. This is intended to make it easy + /// to port existing UDP-based code to take advantage of SDR. + /// + /// idxFakeServerPort refers to the *index* of the port allocated using + /// BeginAsyncRequestFakeIP and is used to create "server" ports. You may + /// call this before the allocation has completed. However, any attempts + /// to send packets will fail until the allocation has succeeded. When + /// the peer receives packets sent from this interface, the from address + /// of the packet will be the globally-unique FakeIP. If you call this + /// function multiple times and pass the same (nonnegative) fake port index, + /// the same object will be returned, and this object is not reference counted. + /// + /// To create a "client" port (e.g. the equivalent of an ephemeral UDP port) + /// pass -1. In this case, a distinct object will be returned for each call. + /// When the peer receives packets sent from this interface, the peer will + /// assign a FakeIP from its own locally-controlled namespace. + virtual ISteamNetworkingFakeUDPPort *CreateFakeUDPPort( int idxFakeServerPort ) = 0; + +protected: + ~ISteamNetworkingSockets(); // Silence some warnings +}; +#define STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "SteamNetworkingSockets012" + +// Global accessors + +// Using standalone lib +#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB + + static_assert( STEAMNETWORKINGSOCKETS_INTERFACE_VERSION[24] == '2', "Version mismatch" ); + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamNetworkingSockets_LibV12(); + inline ISteamNetworkingSockets *SteamNetworkingSockets_Lib() { return SteamNetworkingSockets_LibV12(); } + + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamGameServerNetworkingSockets_LibV12(); + inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets_Lib() { return SteamGameServerNetworkingSockets_LibV12(); } + + #ifndef STEAMNETWORKINGSOCKETS_STEAMAPI + inline ISteamNetworkingSockets *SteamNetworkingSockets() { return SteamNetworkingSockets_LibV12(); } + inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets() { return SteamGameServerNetworkingSockets_LibV12(); } + #endif +#endif + +// Using Steamworks SDK +#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI + STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamNetworkingSockets_SteamAPI, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION ); + STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamGameServerNetworkingSockets_SteamAPI, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION ); + + #ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB + inline ISteamNetworkingSockets *SteamNetworkingSockets() { return SteamNetworkingSockets_SteamAPI(); } + inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets() { return SteamGameServerNetworkingSockets_SteamAPI(); } + #endif +#endif + +/// Callback struct used to notify when a connection has changed state +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error "Must define VALVE_CALLBACK_PACK_SMALL or VALVE_CALLBACK_PACK_LARGE" +#endif + +/// This callback is posted whenever a connection is created, destroyed, or changes state. +/// The m_info field will contain a complete description of the connection at the time the +/// change occurred and the callback was posted. In particular, m_eState will have the +/// new connection state. +/// +/// You will usually need to listen for this callback to know when: +/// - A new connection arrives on a listen socket. +/// m_info.m_hListenSocket will be set, m_eOldState = k_ESteamNetworkingConnectionState_None, +/// and m_info.m_eState = k_ESteamNetworkingConnectionState_Connecting. +/// See ISteamNetworkigSockets::AcceptConnection. +/// - A connection you initiated has been accepted by the remote host. +/// m_eOldState = k_ESteamNetworkingConnectionState_Connecting, and +/// m_info.m_eState = k_ESteamNetworkingConnectionState_Connected. +/// Some connections might transition to k_ESteamNetworkingConnectionState_FindingRoute first. +/// - A connection has been actively rejected or closed by the remote host. +/// m_eOldState = k_ESteamNetworkingConnectionState_Connecting or k_ESteamNetworkingConnectionState_Connected, +/// and m_info.m_eState = k_ESteamNetworkingConnectionState_ClosedByPeer. m_info.m_eEndReason +/// and m_info.m_szEndDebug will have for more details. +/// NOTE: upon receiving this callback, you must still destroy the connection using +/// ISteamNetworkingSockets::CloseConnection to free up local resources. (The details +/// passed to the function are not used in this case, since the connection is already closed.) +/// - A problem was detected with the connection, and it has been closed by the local host. +/// The most common failure is timeout, but other configuration or authentication failures +/// can cause this. m_eOldState = k_ESteamNetworkingConnectionState_Connecting or +/// k_ESteamNetworkingConnectionState_Connected, and m_info.m_eState = k_ESteamNetworkingConnectionState_ProblemDetectedLocally. +/// m_info.m_eEndReason and m_info.m_szEndDebug will have for more details. +/// NOTE: upon receiving this callback, you must still destroy the connection using +/// ISteamNetworkingSockets::CloseConnection to free up local resources. (The details +/// passed to the function are not used in this case, since the connection is already closed.) +/// +/// Remember that callbacks are posted to a queue, and networking connections can +/// change at any time. It is possible that the connection has already changed +/// state by the time you process this callback. +/// +/// Also note that callbacks will be posted when connections are created and destroyed by your own API calls. +struct SteamNetConnectionStatusChangedCallback_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 1 }; + + /// Connection handle + HSteamNetConnection m_hConn; + + /// Full connection info + SteamNetConnectionInfo_t m_info; + + /// Previous state. (Current state is in m_info.m_eState) + ESteamNetworkingConnectionState m_eOldState; +}; + +/// A struct used to describe our readiness to participate in authenticated, +/// encrypted communication. In order to do this we need: +/// +/// - The list of trusted CA certificates that might be relevant for this +/// app. +/// - A valid certificate issued by a CA. +/// +/// This callback is posted whenever the state of our readiness changes. +struct SteamNetAuthenticationStatus_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 2 }; + + /// Status + ESteamNetworkingAvailability m_eAvail; + + /// Non-localized English language status. For diagnostic/debugging + /// purposes only. + char m_debugMsg[ 256 ]; +}; + +#pragma pack( pop ) + +#endif // ISTEAMNETWORKINGSOCKETS diff --git a/lib/linux/include/steam/isteamnetworkingutils.h b/lib/linux/include/steam/isteamnetworkingutils.h new file mode 100644 index 0000000..626efed --- /dev/null +++ b/lib/linux/include/steam/isteamnetworkingutils.h @@ -0,0 +1,500 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Purpose: misc networking utilities +// +//============================================================================= + +#ifndef ISTEAMNETWORKINGUTILS +#define ISTEAMNETWORKINGUTILS +#pragma once + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +struct SteamDatagramRelayAuthTicket; +struct SteamRelayNetworkStatus_t; + +//----------------------------------------------------------------------------- +/// Misc networking utilities for checking the local networking environment +/// and estimating pings. +class ISteamNetworkingUtils +{ +public: + // + // Efficient message sending + // + + /// Allocate and initialize a message object. Usually the reason + /// you call this is to pass it to ISteamNetworkingSockets::SendMessages. + /// The returned object will have all of the relevant fields cleared to zero. + /// + /// Optionally you can also request that this system allocate space to + /// hold the payload itself. If cbAllocateBuffer is nonzero, the system + /// will allocate memory to hold a payload of at least cbAllocateBuffer bytes. + /// m_pData will point to the allocated buffer, m_cbSize will be set to the + /// size, and m_pfnFreeData will be set to the proper function to free up + /// the buffer. + /// + /// If cbAllocateBuffer=0, then no buffer is allocated. m_pData will be NULL, + /// m_cbSize will be zero, and m_pfnFreeData will be NULL. You will need to + /// set each of these. + virtual SteamNetworkingMessage_t *AllocateMessage( int cbAllocateBuffer ) = 0; + + // + // Access to Steam Datagram Relay (SDR) network + // + + // + // Initialization and status check + // + + /// If you know that you are going to be using the relay network (for example, + /// because you anticipate making P2P connections), call this to initialize the + /// relay network. If you do not call this, the initialization will + /// be delayed until the first time you use a feature that requires access + /// to the relay network, which will delay that first access. + /// + /// You can also call this to force a retry if the previous attempt has failed. + /// Performing any action that requires access to the relay network will also + /// trigger a retry, and so calling this function is never strictly necessary, + /// but it can be useful to call it a program launch time, if access to the + /// relay network is anticipated. + /// + /// Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + /// callbacks to know when initialization has completed. + /// Typically initialization completes in a few seconds. + /// + /// Note: dedicated servers hosted in known data centers do *not* need + /// to call this, since they do not make routing decisions. However, if + /// the dedicated server will be using P2P functionality, it will act as + /// a "client" and this should be called. + inline void InitRelayNetworkAccess(); + + /// Fetch current status of the relay network. + /// + /// SteamRelayNetworkStatus_t is also a callback. It will be triggered on + /// both the user and gameserver interfaces any time the status changes, or + /// ping measurement starts or stops. + /// + /// SteamRelayNetworkStatus_t::m_eAvail is returned. If you want + /// more details, you can pass a non-NULL value. + virtual ESteamNetworkingAvailability GetRelayNetworkStatus( SteamRelayNetworkStatus_t *pDetails ) = 0; + + // + // "Ping location" functions + // + // We use the ping times to the valve relays deployed worldwide to + // generate a "marker" that describes the location of an Internet host. + // Given two such markers, we can estimate the network latency between + // two hosts, without sending any packets. The estimate is based on the + // optimal route that is found through the Valve network. If you are + // using the Valve network to carry the traffic, then this is precisely + // the ping you want. If you are not, then the ping time will probably + // still be a reasonable estimate. + // + // This is extremely useful to select peers for matchmaking! + // + // The markers can also be converted to a string, so they can be transmitted. + // We have a separate library you can use on your app's matchmaking/coordinating + // server to manipulate these objects. (See steamdatagram_gamecoordinator.h) + + /// Return location info for the current host. Returns the approximate + /// age of the data, in seconds, or -1 if no data is available. + /// + /// It takes a few seconds to initialize access to the relay network. If + /// you call this very soon after calling InitRelayNetworkAccess, + /// the data may not be available yet. + /// + /// This always return the most up-to-date information we have available + /// right now, even if we are in the middle of re-calculating ping times. + virtual float GetLocalPingLocation( SteamNetworkPingLocation_t &result ) = 0; + + /// Estimate the round-trip latency between two arbitrary locations, in + /// milliseconds. This is a conservative estimate, based on routing through + /// the relay network. For most basic relayed connections, this ping time + /// will be pretty accurate, since it will be based on the route likely to + /// be actually used. + /// + /// If a direct IP route is used (perhaps via NAT traversal), then the route + /// will be different, and the ping time might be better. Or it might actually + /// be a bit worse! Standard IP routing is frequently suboptimal! + /// + /// But even in this case, the estimate obtained using this method is a + /// reasonable upper bound on the ping time. (Also it has the advantage + /// of returning immediately and not sending any packets.) + /// + /// In a few cases we might not able to estimate the route. In this case + /// a negative value is returned. k_nSteamNetworkingPing_Failed means + /// the reason was because of some networking difficulty. (Failure to + /// ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + /// currently answer the question for some other reason. + /// + /// Do you need to be able to do this from a backend/matchmaking server? + /// You are looking for the "game coordinator" library. + virtual int EstimatePingTimeBetweenTwoLocations( const SteamNetworkPingLocation_t &location1, const SteamNetworkPingLocation_t &location2 ) = 0; + + /// Same as EstimatePingTime, but assumes that one location is the local host. + /// This is a bit faster, especially if you need to calculate a bunch of + /// these in a loop to find the fastest one. + /// + /// In rare cases this might return a slightly different estimate than combining + /// GetLocalPingLocation with EstimatePingTimeBetweenTwoLocations. That's because + /// this function uses a slightly more complete set of information about what + /// route would be taken. + virtual int EstimatePingTimeFromLocalHost( const SteamNetworkPingLocation_t &remoteLocation ) = 0; + + /// Convert a ping location into a text format suitable for sending over the wire. + /// The format is a compact and human readable. However, it is subject to change + /// so please do not parse it yourself. Your buffer must be at least + /// k_cchMaxSteamNetworkingPingLocationString bytes. + virtual void ConvertPingLocationToString( const SteamNetworkPingLocation_t &location, char *pszBuf, int cchBufSize ) = 0; + + /// Parse back SteamNetworkPingLocation_t string. Returns false if we couldn't understand + /// the string. + virtual bool ParsePingLocationString( const char *pszString, SteamNetworkPingLocation_t &result ) = 0; + + /// Check if the ping data of sufficient recency is available, and if + /// it's too old, start refreshing it. + /// + /// Please only call this function when you *really* do need to force an + /// immediate refresh of the data. (For example, in response to a specific + /// user input to refresh this information.) Don't call it "just in case", + /// before every connection, etc. That will cause extra traffic to be sent + /// for no benefit. The library will automatically refresh the information + /// as needed. + /// + /// Returns true if sufficiently recent data is already available. + /// + /// Returns false if sufficiently recent data is not available. In this + /// case, ping measurement is initiated, if it is not already active. + /// (You cannot restart a measurement already in progress.) + /// + /// You can use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + /// to know when ping measurement completes. + virtual bool CheckPingDataUpToDate( float flMaxAgeSeconds ) = 0; + + // + // List of Valve data centers, and ping times to them. This might + // be useful to you if you are use our hosting, or just need to measure + // latency to a cloud data center where we are running relays. + // + + /// Fetch ping time of best available relayed route from this host to + /// the specified data center. + virtual int GetPingToDataCenter( SteamNetworkingPOPID popID, SteamNetworkingPOPID *pViaRelayPoP ) = 0; + + /// Get *direct* ping time to the relays at the data center. + virtual int GetDirectPingToPOP( SteamNetworkingPOPID popID ) = 0; + + /// Get number of network points of presence in the config + virtual int GetPOPCount() = 0; + + /// Get list of all POP IDs. Returns the number of entries that were filled into + /// your list. + virtual int GetPOPList( SteamNetworkingPOPID *list, int nListSz ) = 0; + + // + // Misc + // + + /// Fetch current timestamp. This timer has the following properties: + /// + /// - Monotonicity is guaranteed. + /// - The initial value will be at least 24*3600*30*1e6, i.e. about + /// 30 days worth of microseconds. In this way, the timestamp value of + /// 0 will always be at least "30 days ago". Also, negative numbers + /// will never be returned. + /// - Wraparound / overflow is not a practical concern. + /// + /// If you are running under the debugger and stop the process, the clock + /// might not advance the full wall clock time that has elapsed between + /// calls. If the process is not blocked from normal operation, the + /// timestamp values will track wall clock time, even if you don't call + /// the function frequently. + /// + /// The value is only meaningful for this run of the process. Don't compare + /// it to values obtained on another computer, or other runs of the same process. + virtual SteamNetworkingMicroseconds GetLocalTimestamp() = 0; + + /// Set a function to receive network-related information that is useful for debugging. + /// This can be very useful during development, but it can also be useful for troubleshooting + /// problems with tech savvy end users. If you have a console or other log that customers + /// can examine, these log messages can often be helpful to troubleshoot network issues. + /// (Especially any warning/error messages.) + /// + /// The detail level indicates what message to invoke your callback on. Lower numeric + /// value means more important, and the value you pass is the lowest priority (highest + /// numeric value) you wish to receive callbacks for. + /// + /// The value here controls the detail level for most messages. You can control the + /// detail level for various subsystems (perhaps only for certain connections) by + /// adjusting the configuration values k_ESteamNetworkingConfig_LogLevel_Xxxxx. + /// + /// Except when debugging, you should only use k_ESteamNetworkingSocketsDebugOutputType_Msg + /// or k_ESteamNetworkingSocketsDebugOutputType_Warning. For best performance, do NOT + /// request a high detail level and then filter out messages in your callback. This incurs + /// all of the expense of formatting the messages, which are then discarded. Setting a high + /// priority value (low numeric value) here allows the library to avoid doing this work. + /// + /// IMPORTANT: This may be called from a service thread, while we own a mutex, etc. + /// Your output function must be threadsafe and fast! Do not make any other + /// Steamworks calls from within the handler. + virtual void SetDebugOutputFunction( ESteamNetworkingSocketsDebugOutputType eDetailLevel, FSteamNetworkingSocketsDebugOutput pfnFunc ) = 0; + + // + // Fake IP + // + // Useful for interfacing with code that assumes peers are identified using an IPv4 address + // + + /// Return true if an IPv4 address is one that might be used as a "fake" one. + /// This function is fast; it just does some logical tests on the IP and does + /// not need to do any lookup operations. + inline bool IsFakeIPv4( uint32 nIPv4 ) { return GetIPv4FakeIPType( nIPv4 ) > k_ESteamNetworkingFakeIPType_NotFake; } + virtual ESteamNetworkingFakeIPType GetIPv4FakeIPType( uint32 nIPv4 ) = 0; + + /// Get the real identity associated with a given FakeIP. + /// + /// On failure, returns: + /// - k_EResultInvalidParam: the IP is not a FakeIP. + /// - k_EResultNoMatch: we don't recognize that FakeIP and don't know the corresponding identity. + /// + /// FakeIP's used by active connections, or the FakeIPs assigned to local identities, + /// will always work. FakeIPs for recently destroyed connections will continue to + /// return results for a little while, but not forever. At some point, we will forget + /// FakeIPs to save space. It's reasonably safe to assume that you can read back the + /// real identity of a connection very soon after it is destroyed. But do not wait + /// indefinitely. + virtual EResult GetRealIdentityForFakeIP( const SteamNetworkingIPAddr &fakeIP, SteamNetworkingIdentity *pOutRealIdentity ) = 0; + + // + // Set and get configuration values, see ESteamNetworkingConfigValue for individual descriptions. + // + + // Shortcuts for common cases. (Implemented as inline functions below) + bool SetGlobalConfigValueInt32( ESteamNetworkingConfigValue eValue, int32 val ); + bool SetGlobalConfigValueFloat( ESteamNetworkingConfigValue eValue, float val ); + bool SetGlobalConfigValueString( ESteamNetworkingConfigValue eValue, const char *val ); + bool SetGlobalConfigValuePtr( ESteamNetworkingConfigValue eValue, void *val ); + bool SetConnectionConfigValueInt32( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ); + bool SetConnectionConfigValueFloat( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ); + bool SetConnectionConfigValueString( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char *val ); + + // + // Set global callbacks. If you do not want to use Steam's callback dispatch mechanism and you + // want to use the same callback on all (or most) listen sockets and connections, then + // simply install these callbacks first thing, and you are good to go. + // See ISteamNetworkingSockets::RunCallbacks + // + bool SetGlobalCallback_SteamNetConnectionStatusChanged( FnSteamNetConnectionStatusChanged fnCallback ); + bool SetGlobalCallback_SteamNetAuthenticationStatusChanged( FnSteamNetAuthenticationStatusChanged fnCallback ); + bool SetGlobalCallback_SteamRelayNetworkStatusChanged( FnSteamRelayNetworkStatusChanged fnCallback ); + bool SetGlobalCallback_FakeIPResult( FnSteamNetworkingFakeIPResult fnCallback ); + bool SetGlobalCallback_MessagesSessionRequest( FnSteamNetworkingMessagesSessionRequest fnCallback ); + bool SetGlobalCallback_MessagesSessionFailed( FnSteamNetworkingMessagesSessionFailed fnCallback ); + + /// Set a configuration value. + /// - eValue: which value is being set + /// - eScope: Onto what type of object are you applying the setting? + /// - scopeArg: Which object you want to change? (Ignored for global scope). E.g. connection handle, listen socket handle, interface pointer, etc. + /// - eDataType: What type of data is in the buffer at pValue? This must match the type of the variable exactly! + /// - pArg: Value to set it to. You can pass NULL to remove a non-global setting at this scope, + /// causing the value for that object to use global defaults. Or at global scope, passing NULL + /// will reset any custom value and restore it to the system default. + /// NOTE: When setting pointers (e.g. callback functions), do not pass the function pointer directly. + /// Your argument should be a pointer to a function pointer. + virtual bool SetConfigValue( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, + ESteamNetworkingConfigDataType eDataType, const void *pArg ) = 0; + + /// Set a configuration value, using a struct to pass the value. + /// (This is just a convenience shortcut; see below for the implementation and + /// a little insight into how SteamNetworkingConfigValue_t is used when + /// setting config options during listen socket and connection creation.) + bool SetConfigValueStruct( const SteamNetworkingConfigValue_t &opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj ); + + /// Get a configuration value. + /// - eValue: which value to fetch + /// - eScopeType: query setting on what type of object + /// - eScopeArg: the object to query the setting for + /// - pOutDataType: If non-NULL, the data type of the value is returned. + /// - pResult: Where to put the result. Pass NULL to query the required buffer size. (k_ESteamNetworkingGetConfigValue_BufferTooSmall will be returned.) + /// - cbResult: IN: the size of your buffer. OUT: the number of bytes filled in or required. + virtual ESteamNetworkingGetConfigValueResult GetConfigValue( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, + ESteamNetworkingConfigDataType *pOutDataType, void *pResult, size_t *cbResult ) = 0; + + /// Get info about a configuration value. Returns the name of the value, + /// or NULL if the value doesn't exist. Other output parameters can be NULL + /// if you do not need them. + virtual const char *GetConfigValueInfo( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigDataType *pOutDataType, + ESteamNetworkingConfigScope *pOutScope ) = 0; + + /// Iterate the list of all configuration values in the current environment that it might + /// be possible to display or edit using a generic UI. To get the first iterable value, + /// pass k_ESteamNetworkingConfig_Invalid. Returns k_ESteamNetworkingConfig_Invalid + /// to signal end of list. + /// + /// The bEnumerateDevVars argument can be used to include "dev" vars. These are vars that + /// are recommended to only be editable in "debug" or "dev" mode and typically should not be + /// shown in a retail environment where a malicious local user might use this to cheat. + virtual ESteamNetworkingConfigValue IterateGenericEditableConfigValues( ESteamNetworkingConfigValue eCurrent, bool bEnumerateDevVars ) = 0; + + // + // String conversions. You'll usually access these using the respective + // inline methods. + // + virtual void SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr &addr, char *buf, size_t cbBuf, bool bWithPort ) = 0; + virtual bool SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr ) = 0; + virtual ESteamNetworkingFakeIPType SteamNetworkingIPAddr_GetFakeIPType( const SteamNetworkingIPAddr &addr ) = 0; + virtual void SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity &identity, char *buf, size_t cbBuf ) = 0; + virtual bool SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, const char *pszStr ) = 0; + +protected: + ~ISteamNetworkingUtils(); // Silence some warnings +}; +#define STEAMNETWORKINGUTILS_INTERFACE_VERSION "SteamNetworkingUtils004" + +// Global accessors +// Using standalone lib +#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB + + // Standalone lib + static_assert( STEAMNETWORKINGUTILS_INTERFACE_VERSION[22] == '4', "Version mismatch" ); + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingUtils *SteamNetworkingUtils_LibV4(); + inline ISteamNetworkingUtils *SteamNetworkingUtils_Lib() { return SteamNetworkingUtils_LibV4(); } + + #ifndef STEAMNETWORKINGSOCKETS_STEAMAPI + inline ISteamNetworkingUtils *SteamNetworkingUtils() { return SteamNetworkingUtils_LibV4(); } + #endif +#endif + +// Using Steamworks SDK +#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI + STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamNetworkingUtils *, SteamNetworkingUtils_SteamAPI, + /* Prefer user version of the interface. But if it isn't found, then use + gameserver one. Yes, this is a completely terrible hack */ + SteamInternal_FindOrCreateUserInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ) ? + SteamInternal_FindOrCreateUserInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ) : + SteamInternal_FindOrCreateGameServerInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ), + "global", + STEAMNETWORKINGUTILS_INTERFACE_VERSION + ) + + #ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB + inline ISteamNetworkingUtils *SteamNetworkingUtils() { return SteamNetworkingUtils_SteamAPI(); } + #endif +#endif + +/// A struct used to describe our readiness to use the relay network. +/// To do this we first need to fetch the network configuration, +/// which describes what POPs are available. +struct SteamRelayNetworkStatus_t +{ + enum { k_iCallback = k_iSteamNetworkingUtilsCallbacks + 1 }; + + /// Summary status. When this is "current", initialization has + /// completed. Anything else means you are not ready yet, or + /// there is a significant problem. + ESteamNetworkingAvailability m_eAvail; + + /// Nonzero if latency measurement is in progress (or pending, + /// awaiting a prerequisite). + int m_bPingMeasurementInProgress; + + /// Status obtaining the network config. This is a prerequisite + /// for relay network access. + /// + /// Failure to obtain the network config almost always indicates + /// a problem with the local internet connection. + ESteamNetworkingAvailability m_eAvailNetworkConfig; + + /// Current ability to communicate with ANY relay. Note that + /// the complete failure to communicate with any relays almost + /// always indicates a problem with the local Internet connection. + /// (However, just because you can reach a single relay doesn't + /// mean that the local connection is in perfect health.) + ESteamNetworkingAvailability m_eAvailAnyRelay; + + /// Non-localized English language status. For diagnostic/debugging + /// purposes only. + char m_debugMsg[ 256 ]; +}; + +#ifndef API_GEN + +/// Utility class for printing a SteamNetworkingIdentity. +/// E.g. printf( "Identity is '%s'\n", SteamNetworkingIdentityRender( identity ).c_str() ); +struct SteamNetworkingIdentityRender +{ + SteamNetworkingIdentityRender( const SteamNetworkingIdentity &x ) { x.ToString( buf, sizeof(buf) ); } + inline const char *c_str() const { return buf; } +private: + char buf[ SteamNetworkingIdentity::k_cchMaxString ]; +}; + +/// Utility class for printing a SteamNetworkingIPAddrRender. +struct SteamNetworkingIPAddrRender +{ + SteamNetworkingIPAddrRender( const SteamNetworkingIPAddr &x, bool bWithPort = true ) { x.ToString( buf, sizeof(buf), bWithPort ); } + inline const char *c_str() const { return buf; } +private: + char buf[ SteamNetworkingIPAddr::k_cchMaxString ]; +}; + +#endif + +/////////////////////////////////////////////////////////////////////////////// +// +// Internal stuff + +inline void ISteamNetworkingUtils::InitRelayNetworkAccess() { CheckPingDataUpToDate( 1e10f ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValueInt32( ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Int32, &val ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValueFloat( ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Float, &val ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValueString( ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_String, val ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValuePtr( ESteamNetworkingConfigValue eValue, void *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Ptr, &val ); } // Note: passing pointer to pointer. +inline bool ISteamNetworkingUtils::SetConnectionConfigValueInt32( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Int32, &val ); } +inline bool ISteamNetworkingUtils::SetConnectionConfigValueFloat( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Float, &val ); } +inline bool ISteamNetworkingUtils::SetConnectionConfigValueString( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_String, val ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_SteamNetConnectionStatusChanged( FnSteamNetConnectionStatusChanged fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_SteamNetAuthenticationStatusChanged( FnSteamNetAuthenticationStatusChanged fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_AuthStatusChanged, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_SteamRelayNetworkStatusChanged( FnSteamRelayNetworkStatusChanged fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_FakeIPResult( FnSteamNetworkingFakeIPResult fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_FakeIPResult, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionRequest( FnSteamNetworkingMessagesSessionRequest fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_MessagesSessionRequest, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionFailed( FnSteamNetworkingMessagesSessionFailed fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_MessagesSessionFailed, (void*)fnCallback ); } + +inline bool ISteamNetworkingUtils::SetConfigValueStruct( const SteamNetworkingConfigValue_t &opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj ) +{ + // Locate the argument. Strings are a special case, since the + // "value" (the whole string buffer) doesn't fit in the struct + // NOTE: for pointer values, we pass a pointer to the pointer, + // we do not pass the pointer directly. + const void *pVal = ( opt.m_eDataType == k_ESteamNetworkingConfig_String ) ? (const void *)opt.m_val.m_string : (const void *)&opt.m_val; + return SetConfigValue( opt.m_eValue, eScopeType, scopeObj, opt.m_eDataType, pVal ); +} + +// How to get helper functions. +#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) || defined(STEAMNETWORKINGSOCKETS_FOREXPORT) || defined( STEAMNETWORKINGSOCKETS_STANDALONELIB ) + + // Call direct to static functions + STEAMNETWORKINGSOCKETS_INTERFACE void SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr *pAddr, char *buf, size_t cbBuf, bool bWithPort ); + STEAMNETWORKINGSOCKETS_INTERFACE bool SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr ); + STEAMNETWORKINGSOCKETS_INTERFACE ESteamNetworkingFakeIPType SteamNetworkingIPAddr_GetFakeIPType( const SteamNetworkingIPAddr *pAddr ); + STEAMNETWORKINGSOCKETS_INTERFACE void SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity *pIdentity, char *buf, size_t cbBuf ); + STEAMNETWORKINGSOCKETS_INTERFACE bool SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, size_t sizeofIdentity, const char *pszStr ); + inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingIPAddr_ToString( this, buf, cbBuf, bWithPort ); } + inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingIPAddr_ParseString( this, pszStr ); } + inline ESteamNetworkingFakeIPType SteamNetworkingIPAddr::GetFakeIPType() const { return SteamNetworkingIPAddr_GetFakeIPType( this ); } + inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingIdentity_ToString( this, buf, cbBuf ); } + inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingIdentity_ParseString( this, sizeof(*this), pszStr ); } + +#elif defined( STEAMNETWORKINGSOCKETS_STEAMAPI ) + // Using steamworks SDK - go through SteamNetworkingUtils() + inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingUtils()->SteamNetworkingIPAddr_ToString( *this, buf, cbBuf, bWithPort ); } + inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIPAddr_ParseString( this, pszStr ); } + inline ESteamNetworkingFakeIPType SteamNetworkingIPAddr::GetFakeIPType() const { return SteamNetworkingUtils()->SteamNetworkingIPAddr_GetFakeIPType( *this ); } + inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingUtils()->SteamNetworkingIdentity_ToString( *this, buf, cbBuf ); } + inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIdentity_ParseString( this, pszStr ); } +#else + #error "Invalid config" +#endif + +#endif // ISTEAMNETWORKINGUTILS diff --git a/lib/linux/include/steam/isteamparentalsettings.h b/lib/linux/include/steam/isteamparentalsettings.h new file mode 100644 index 0000000..bf3d0c6 --- /dev/null +++ b/lib/linux/include/steam/isteamparentalsettings.h @@ -0,0 +1,64 @@ +//====== Copyright � 2013-, Valve Corporation, All rights reserved. ======= +// +// Purpose: Interface to Steam parental settings (Family View) +// +//============================================================================= + +#ifndef ISTEAMPARENTALSETTINGS_H +#define ISTEAMPARENTALSETTINGS_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +// Feature types for parental settings +enum EParentalFeature +{ + k_EFeatureInvalid = 0, + k_EFeatureStore = 1, + k_EFeatureCommunity = 2, + k_EFeatureProfile = 3, + k_EFeatureFriends = 4, + k_EFeatureNews = 5, + k_EFeatureTrading = 6, + k_EFeatureSettings = 7, + k_EFeatureConsole = 8, + k_EFeatureBrowser = 9, + k_EFeatureParentalSetup = 10, + k_EFeatureLibrary = 11, + k_EFeatureTest = 12, + k_EFeatureSiteLicense = 13, + k_EFeatureKioskMode_Deprecated = 14, + k_EFeatureMax +}; + +class ISteamParentalSettings +{ +public: + virtual bool BIsParentalLockEnabled() = 0; + virtual bool BIsParentalLockLocked() = 0; + + virtual bool BIsAppBlocked( AppId_t nAppID ) = 0; + virtual bool BIsAppInBlockList( AppId_t nAppID ) = 0; + + virtual bool BIsFeatureBlocked( EParentalFeature eFeature ) = 0; + virtual bool BIsFeatureInBlockList( EParentalFeature eFeature ) = 0; +}; + +#define STEAMPARENTALSETTINGS_INTERFACE_VERSION "STEAMPARENTALSETTINGS_INTERFACE_VERSION001" + +// Global interface accessor +inline ISteamParentalSettings *SteamParentalSettings(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamParentalSettings *, SteamParentalSettings, STEAMPARENTALSETTINGS_INTERFACE_VERSION ); + +//----------------------------------------------------------------------------- +// Purpose: Callback for querying UGC +//----------------------------------------------------------------------------- +struct SteamParentalSettingsChanged_t +{ + enum { k_iCallback = k_ISteamParentalSettingsCallbacks + 1 }; +}; + + +#endif // ISTEAMPARENTALSETTINGS_H diff --git a/lib/linux/include/steam/isteamremoteplay.h b/lib/linux/include/steam/isteamremoteplay.h new file mode 100644 index 0000000..df5ca3f --- /dev/null +++ b/lib/linux/include/steam/isteamremoteplay.h @@ -0,0 +1,99 @@ +//============ Copyright (c) Valve Corporation, All rights reserved. ============ + +#ifndef ISTEAMREMOTEPLAY_H +#define ISTEAMREMOTEPLAY_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + + +//----------------------------------------------------------------------------- +// Purpose: The form factor of a device +//----------------------------------------------------------------------------- +enum ESteamDeviceFormFactor +{ + k_ESteamDeviceFormFactorUnknown = 0, + k_ESteamDeviceFormFactorPhone = 1, + k_ESteamDeviceFormFactorTablet = 2, + k_ESteamDeviceFormFactorComputer = 3, + k_ESteamDeviceFormFactorTV = 4, + k_ESteamDeviceFormFactorVRHeadset = 5, +}; + +// Steam Remote Play session ID +typedef uint32 RemotePlaySessionID_t; + + +//----------------------------------------------------------------------------- +// Purpose: Functions to provide information about Steam Remote Play sessions +//----------------------------------------------------------------------------- +class ISteamRemotePlay +{ +public: + // Get the number of currently connected Steam Remote Play sessions + virtual uint32 GetSessionCount() = 0; + + // Get the currently connected Steam Remote Play session ID at the specified index. Returns zero if index is out of bounds. + virtual RemotePlaySessionID_t GetSessionID( int iSessionIndex ) = 0; + + // Get the SteamID of the connected user + virtual CSteamID GetSessionSteamID( RemotePlaySessionID_t unSessionID ) = 0; + + // Get the name of the session client device + // This returns NULL if the sessionID is not valid + virtual const char *GetSessionClientName( RemotePlaySessionID_t unSessionID ) = 0; + + // Get the form factor of the session client device + virtual ESteamDeviceFormFactor GetSessionClientFormFactor( RemotePlaySessionID_t unSessionID ) = 0; + + // Get the resolution, in pixels, of the session client device + // This is set to 0x0 if the resolution is not available + virtual bool BGetSessionClientResolution( RemotePlaySessionID_t unSessionID, int *pnResolutionX, int *pnResolutionY ) = 0; + + // Start Remote Play Together and optionally show the UI in the overlay + // This returns false if Remote Play Together can't be started or your game is not configured for Remote Play Together + virtual bool BStartRemotePlayTogether( bool bShowOverlay = true ) = 0; + + // Invite a friend to Remote Play Together, or create a guest invite if steamIDFriend is empty + // This will automatically start Remote Play Together if it hasn't already been started + // This returns false if the invite can't be sent or your game is not configured for Remote Play Together + virtual bool BSendRemotePlayTogetherInvite( CSteamID steamIDFriend ) = 0; +}; + +#define STEAMREMOTEPLAY_INTERFACE_VERSION "STEAMREMOTEPLAY_INTERFACE_VERSION002" + +// Global interface accessor +inline ISteamRemotePlay *SteamRemotePlay(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamRemotePlay *, SteamRemotePlay, STEAMREMOTEPLAY_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + + +STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionConnected_t, k_iSteamRemotePlayCallbacks + 1 ) + STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID ) +STEAM_CALLBACK_END( 0 ) + + +STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionDisconnected_t, k_iSteamRemotePlayCallbacks + 2 ) + STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID ) +STEAM_CALLBACK_END( 0 ) + + +STEAM_CALLBACK_BEGIN( SteamRemotePlayTogetherGuestInvite_t, k_iSteamRemotePlayCallbacks + 3 ) + STEAM_CALLBACK_MEMBER_ARRAY( 0, char, m_szConnectURL, 1024 ) +STEAM_CALLBACK_END( 0 ) + + +#pragma pack( pop ) + + +#endif // #define ISTEAMREMOTEPLAY_H diff --git a/lib/linux/include/steam/isteamremotestorage.h b/lib/linux/include/steam/isteamremotestorage.h index 3ac2871..c0da367 100644 --- a/lib/linux/include/steam/isteamremotestorage.h +++ b/lib/linux/include/steam/isteamremotestorage.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" //----------------------------------------------------------------------------- @@ -28,7 +28,7 @@ const uint32 k_unMaxCloudFileChunkSize = 100 * 1024 * 1024; #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct SteamParamStringArray_t { @@ -65,7 +65,10 @@ enum ERemoteStoragePlatform k_ERemoteStoragePlatformOSX = (1 << 1), k_ERemoteStoragePlatformPS3 = (1 << 2), k_ERemoteStoragePlatformLinux = (1 << 3), - k_ERemoteStoragePlatformReserved2 = (1 << 4), + k_ERemoteStoragePlatformSwitch = (1 << 4), + k_ERemoteStoragePlatformAndroid = (1 << 5), + k_ERemoteStoragePlatformIOS = (1 << 6), + // NB we get one more before we need to widen some things k_ERemoteStoragePlatformAll = 0xffffffff }; @@ -75,6 +78,7 @@ enum ERemoteStoragePublishedFileVisibility k_ERemoteStoragePublishedFileVisibilityPublic = 0, k_ERemoteStoragePublishedFileVisibilityFriendsOnly = 1, k_ERemoteStoragePublishedFileVisibilityPrivate = 2, + k_ERemoteStoragePublishedFileVisibilityUnlisted = 3, }; @@ -98,9 +102,10 @@ enum EWorkshopFileType k_EWorkshopFileTypeSteamworksAccessInvite = 13, // internal k_EWorkshopFileTypeSteamVideo = 14, // Steam video k_EWorkshopFileTypeGameManagedItem = 15, // managed completely by the game, not the user, and not shown on the web + k_EWorkshopFileTypeClip = 16, // internal // Update k_EWorkshopFileTypeMax if you add values. - k_EWorkshopFileTypeMax = 16 + k_EWorkshopFileTypeMax = 17 }; @@ -152,6 +157,28 @@ enum EUGCReadAction k_EUGCRead_Close = 2, }; +enum ERemoteStorageLocalFileChange +{ + k_ERemoteStorageLocalFileChange_Invalid = 0, + + // The file was updated from another device + k_ERemoteStorageLocalFileChange_FileUpdated = 1, + + // The file was deleted by another device + k_ERemoteStorageLocalFileChange_FileDeleted = 2, +}; + +enum ERemoteStorageFilePathType +{ + k_ERemoteStorageFilePathType_Invalid = 0, + + // The file is directly accessed by the game and this is the full path + k_ERemoteStorageFilePathType_Absolute = 1, + + // The file is accessed via the ISteamRemoteStorage API and this is the filename + k_ERemoteStorageFilePathType_APIFilename = 2, +}; + //----------------------------------------------------------------------------- // Purpose: Functions for accessing, reading and writing files stored remotely @@ -171,16 +198,16 @@ class ISteamRemoteStorage virtual bool FileWrite( const char *pchFile, const void *pvData, int32 cubData ) = 0; virtual int32 FileRead( const char *pchFile, void *pvData, int32 cubDataToRead ) = 0; - CALL_RESULT( RemoteStorageFileWriteAsyncComplete_t ) + STEAM_CALL_RESULT( RemoteStorageFileWriteAsyncComplete_t ) virtual SteamAPICall_t FileWriteAsync( const char *pchFile, const void *pvData, uint32 cubData ) = 0; - CALL_RESULT( RemoteStorageFileReadAsyncComplete_t ) + STEAM_CALL_RESULT( RemoteStorageFileReadAsyncComplete_t ) virtual SteamAPICall_t FileReadAsync( const char *pchFile, uint32 nOffset, uint32 cubToRead ) = 0; virtual bool FileReadAsyncComplete( SteamAPICall_t hReadCall, void *pvBuffer, uint32 cubToRead ) = 0; virtual bool FileForget( const char *pchFile ) = 0; virtual bool FileDelete( const char *pchFile ) = 0; - CALL_RESULT( RemoteStorageFileShareResult_t ) + STEAM_CALL_RESULT( RemoteStorageFileShareResult_t ) virtual SteamAPICall_t FileShare( const char *pchFile ) = 0; virtual bool SetSyncPlatforms( const char *pchFile, ERemoteStoragePlatform eRemoteStoragePlatform ) = 0; @@ -212,7 +239,7 @@ class ISteamRemoteStorage // Downloads a UGC file. A priority value of 0 will download the file immediately, // otherwise it will wait to download the file until all downloads with a lower priority // value are completed. Downloads with equal priority will occur simultaneously. - CALL_RESULT( RemoteStorageDownloadUGCResult_t ) + STEAM_CALL_RESULT( RemoteStorageDownloadUGCResult_t ) virtual SteamAPICall_t UGCDownload( UGCHandle_t hContent, uint32 unPriority ) = 0; // Gets the amount of data downloaded so far for a piece of content. pnBytesExpected can be 0 if function returns false @@ -220,7 +247,7 @@ class ISteamRemoteStorage virtual bool GetUGCDownloadProgress( UGCHandle_t hContent, int32 *pnBytesDownloaded, int32 *pnBytesExpected ) = 0; // Gets metadata for a file after it has been downloaded. This is the same metadata given in the RemoteStorageDownloadUGCResult_t call result - virtual bool GetUGCDetails( UGCHandle_t hContent, AppId_t *pnAppID, OUT_STRING() char **ppchName, int32 *pnFileSizeInBytes, OUT_STRUCT() CSteamID *pSteamIDOwner ) = 0; + virtual bool GetUGCDetails( UGCHandle_t hContent, AppId_t *pnAppID, STEAM_OUT_STRING() char **ppchName, int32 *pnFileSizeInBytes, STEAM_OUT_STRUCT() CSteamID *pSteamIDOwner ) = 0; // After download, gets the content of the file. // Small files can be read all at once by calling this function with an offset of 0 and cubDataToRead equal to the size of the file. @@ -234,26 +261,8 @@ class ISteamRemoteStorage virtual int32 GetCachedUGCCount() = 0; virtual UGCHandle_t GetCachedUGCHandle( int32 iCachedContent ) = 0; - // The following functions are only necessary on the Playstation 3. On PC & Mac, the Steam client will handle these operations for you - // On Playstation 3, the game controls which files are stored in the cloud, via FilePersist, FileFetch, and FileForget. - -#if defined(_PS3) || defined(_SERVER) - // Connect to Steam and get a list of files in the Cloud - results in a RemoteStorageAppSyncStatusCheck_t callback - virtual void GetFileListFromServer() = 0; - // Indicate this file should be downloaded in the next sync - virtual bool FileFetch( const char *pchFile ) = 0; - // Indicate this file should be persisted in the next sync - virtual bool FilePersist( const char *pchFile ) = 0; - // Pull any requested files down from the Cloud - results in a RemoteStorageAppSyncedClient_t callback - virtual bool SynchronizeToClient() = 0; - // Upload any requested files to the Cloud - results in a RemoteStorageAppSyncedServer_t callback - virtual bool SynchronizeToServer() = 0; - // Reset any fetch/persist/etc requests - virtual bool ResetFileRequestState() = 0; -#endif - // publishing UGC - CALL_RESULT( RemoteStoragePublishFileProgress_t ) + STEAM_CALL_RESULT( RemoteStoragePublishFileProgress_t ) virtual SteamAPICall_t PublishWorkshopFile( const char *pchFile, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags, EWorkshopFileType eWorkshopFileType ) = 0; virtual PublishedFileUpdateHandle_t CreatePublishedFileUpdateRequest( PublishedFileId_t unPublishedFileId ) = 0; virtual bool UpdatePublishedFileFile( PublishedFileUpdateHandle_t updateHandle, const char *pchFile ) = 0; @@ -262,49 +271,61 @@ class ISteamRemoteStorage virtual bool UpdatePublishedFileDescription( PublishedFileUpdateHandle_t updateHandle, const char *pchDescription ) = 0; virtual bool UpdatePublishedFileVisibility( PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility ) = 0; virtual bool UpdatePublishedFileTags( PublishedFileUpdateHandle_t updateHandle, SteamParamStringArray_t *pTags ) = 0; - CALL_RESULT( RemoteStorageUpdatePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageUpdatePublishedFileResult_t ) virtual SteamAPICall_t CommitPublishedFileUpdate( PublishedFileUpdateHandle_t updateHandle ) = 0; // Gets published file details for the given publishedfileid. If unMaxSecondsOld is greater than 0, // cached data may be returned, depending on how long ago it was cached. A value of 0 will force a refresh. // A value of k_WorkshopForceLoadPublishedFileDetailsFromCache will use cached data if it exists, no matter how old it is. - CALL_RESULT( RemoteStorageGetPublishedFileDetailsResult_t ) + STEAM_CALL_RESULT( RemoteStorageGetPublishedFileDetailsResult_t ) virtual SteamAPICall_t GetPublishedFileDetails( PublishedFileId_t unPublishedFileId, uint32 unMaxSecondsOld ) = 0; - CALL_RESULT( RemoteStorageDeletePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageDeletePublishedFileResult_t ) virtual SteamAPICall_t DeletePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; // enumerate the files that the current user published with this app - CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) virtual SteamAPICall_t EnumerateUserPublishedFiles( uint32 unStartIndex ) = 0; - CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) virtual SteamAPICall_t SubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; - CALL_RESULT( RemoteStorageEnumerateUserSubscribedFilesResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumerateUserSubscribedFilesResult_t ) virtual SteamAPICall_t EnumerateUserSubscribedFiles( uint32 unStartIndex ) = 0; - CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) virtual SteamAPICall_t UnsubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; virtual bool UpdatePublishedFileSetChangeDescription( PublishedFileUpdateHandle_t updateHandle, const char *pchChangeDescription ) = 0; - CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) + STEAM_CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) virtual SteamAPICall_t GetPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0; - CALL_RESULT( RemoteStorageUpdateUserPublishedItemVoteResult_t ) + STEAM_CALL_RESULT( RemoteStorageUpdateUserPublishedItemVoteResult_t ) virtual SteamAPICall_t UpdateUserPublishedItemVote( PublishedFileId_t unPublishedFileId, bool bVoteUp ) = 0; - CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) + STEAM_CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) virtual SteamAPICall_t GetUserPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0; - CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) virtual SteamAPICall_t EnumerateUserSharedWorkshopFiles( CSteamID steamId, uint32 unStartIndex, SteamParamStringArray_t *pRequiredTags, SteamParamStringArray_t *pExcludedTags ) = 0; - CALL_RESULT( RemoteStoragePublishFileProgress_t ) + STEAM_CALL_RESULT( RemoteStoragePublishFileProgress_t ) virtual SteamAPICall_t PublishVideo( EWorkshopVideoProvider eVideoProvider, const char *pchVideoAccount, const char *pchVideoIdentifier, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags ) = 0; - CALL_RESULT( RemoteStorageSetUserPublishedFileActionResult_t ) + STEAM_CALL_RESULT( RemoteStorageSetUserPublishedFileActionResult_t ) virtual SteamAPICall_t SetUserPublishedFileAction( PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction ) = 0; - CALL_RESULT( RemoteStorageEnumeratePublishedFilesByUserActionResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumeratePublishedFilesByUserActionResult_t ) virtual SteamAPICall_t EnumeratePublishedFilesByUserAction( EWorkshopFileAction eAction, uint32 unStartIndex ) = 0; // this method enumerates the public view of workshop files - CALL_RESULT( RemoteStorageEnumerateWorkshopFilesResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumerateWorkshopFilesResult_t ) virtual SteamAPICall_t EnumeratePublishedWorkshopFiles( EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, SteamParamStringArray_t *pTags, SteamParamStringArray_t *pUserTags ) = 0; - CALL_RESULT( RemoteStorageDownloadUGCResult_t ) + STEAM_CALL_RESULT( RemoteStorageDownloadUGCResult_t ) virtual SteamAPICall_t UGCDownloadToLocation( UGCHandle_t hContent, const char *pchLocation, uint32 unPriority ) = 0; + + // Cloud dynamic state change notification + virtual int32 GetLocalFileChangeCount() = 0; + virtual const char *GetLocalFileChange( int iFile, ERemoteStorageLocalFileChange *pEChangeType, ERemoteStorageFilePathType *pEFilePathType ) = 0; + + // Indicate to Steam the beginning / end of a set of local file + // operations - for example, writing a game save that requires updating two files. + virtual bool BeginFileWriteBatch() = 0; + virtual bool EndFileWriteBatch() = 0; }; -#define STEAMREMOTESTORAGE_INTERFACE_VERSION "STEAMREMOTESTORAGE_INTERFACE_VERSION014" +#define STEAMREMOTESTORAGE_INTERFACE_VERSION "STEAMREMOTESTORAGE_INTERFACE_VERSION016" +// Global interface accessor +inline ISteamRemoteStorage *SteamRemoteStorage(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamRemoteStorage *, SteamRemoteStorage, STEAMREMOTESTORAGE_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -312,62 +333,10 @@ class ISteamRemoteStorage #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif -//----------------------------------------------------------------------------- -// Purpose: sent when the local file cache is fully synced with the server for an app -// That means that an application can be started and has all latest files -//----------------------------------------------------------------------------- -struct RemoteStorageAppSyncedClient_t -{ - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 1 }; - AppId_t m_nAppID; - EResult m_eResult; - int m_unNumDownloads; -}; -//----------------------------------------------------------------------------- -// Purpose: sent when the server is fully synced with the local file cache for an app -// That means that we can shutdown Steam and our data is stored on the server -//----------------------------------------------------------------------------- -struct RemoteStorageAppSyncedServer_t -{ - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 2 }; - AppId_t m_nAppID; - EResult m_eResult; - int m_unNumUploads; -}; - -//----------------------------------------------------------------------------- -// Purpose: Status of up and downloads during a sync session -// -//----------------------------------------------------------------------------- -struct RemoteStorageAppSyncProgress_t -{ - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 3 }; - char m_rgchCurrentFile[k_cchFilenameMax]; // Current file being transferred - AppId_t m_nAppID; // App this info relates to - uint32 m_uBytesTransferredThisChunk; // Bytes transferred this chunk - double m_dAppPercentComplete; // Percent complete that this app's transfers are - bool m_bUploading; // if false, downloading -}; - -// -// IMPORTANT! k_iClientRemoteStorageCallbacks + 4 is used, see iclientremotestorage.h -// - - -//----------------------------------------------------------------------------- -// Purpose: Sent after we've determined the list of files that are out of sync -// with the server. -//----------------------------------------------------------------------------- -struct RemoteStorageAppSyncStatusCheck_t -{ - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 5 }; - AppId_t m_nAppID; - EResult m_eResult; -}; //----------------------------------------------------------------------------- @@ -375,14 +344,14 @@ struct RemoteStorageAppSyncStatusCheck_t //----------------------------------------------------------------------------- struct RemoteStorageFileShareResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 7 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 7 }; EResult m_eResult; // The result of the operation UGCHandle_t m_hFile; // The handle that can be shared with users and features char m_rgchFilename[k_cchFilenameMax]; // The name of the file that was shared }; -// k_iClientRemoteStorageCallbacks + 8 is deprecated! Do not reuse +// k_iSteamRemoteStorageCallbacks + 8 is deprecated! Do not reuse //----------------------------------------------------------------------------- @@ -390,19 +359,22 @@ struct RemoteStorageFileShareResult_t //----------------------------------------------------------------------------- struct RemoteStoragePublishFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 9 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 9 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; bool m_bUserNeedsToAcceptWorkshopLegalAgreement; }; +// k_iSteamRemoteStorageCallbacks + 10 is deprecated! Do not reuse + + //----------------------------------------------------------------------------- // Purpose: The result of a call to DeletePublishedFile() //----------------------------------------------------------------------------- struct RemoteStorageDeletePublishedFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 11 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 11 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; }; @@ -413,7 +385,7 @@ struct RemoteStorageDeletePublishedFileResult_t //----------------------------------------------------------------------------- struct RemoteStorageEnumerateUserPublishedFilesResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 12 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 12 }; EResult m_eResult; // The result of the operation. int32 m_nResultsReturned; int32 m_nTotalResultCount; @@ -426,7 +398,7 @@ struct RemoteStorageEnumerateUserPublishedFilesResult_t //----------------------------------------------------------------------------- struct RemoteStorageSubscribePublishedFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 13 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 13 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; }; @@ -437,7 +409,7 @@ struct RemoteStorageSubscribePublishedFileResult_t //----------------------------------------------------------------------------- struct RemoteStorageEnumerateUserSubscribedFilesResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 14 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 14 }; EResult m_eResult; // The result of the operation. int32 m_nResultsReturned; int32 m_nTotalResultCount; @@ -450,7 +422,7 @@ struct RemoteStorageEnumerateUserSubscribedFilesResult_t #elif defined(VALVE_CALLBACK_PACK_LARGE) VALVE_COMPILE_TIME_ASSERT( sizeof( RemoteStorageEnumerateUserSubscribedFilesResult_t ) == (1 + 1 + 1 + 50 + 100) * 4 + 4 ); #else -#warning You must first include isteamclient.h +#warning You must first include steam_api_common.h #endif //----------------------------------------------------------------------------- @@ -458,7 +430,7 @@ struct RemoteStorageEnumerateUserSubscribedFilesResult_t //----------------------------------------------------------------------------- struct RemoteStorageUnsubscribePublishedFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 15 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 15 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; }; @@ -469,7 +441,7 @@ struct RemoteStorageUnsubscribePublishedFileResult_t //----------------------------------------------------------------------------- struct RemoteStorageUpdatePublishedFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 16 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 16 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; bool m_bUserNeedsToAcceptWorkshopLegalAgreement; @@ -481,7 +453,7 @@ struct RemoteStorageUpdatePublishedFileResult_t //----------------------------------------------------------------------------- struct RemoteStorageDownloadUGCResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 17 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 17 }; EResult m_eResult; // The result of the operation. UGCHandle_t m_hFile; // The handle to the file that was attempted to be downloaded. AppId_t m_nAppID; // ID of the app that created this file. @@ -496,7 +468,7 @@ struct RemoteStorageDownloadUGCResult_t //----------------------------------------------------------------------------- struct RemoteStorageGetPublishedFileDetailsResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 18 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 18 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; AppId_t m_nCreatorAppID; // ID of the app that created this file. @@ -523,7 +495,7 @@ struct RemoteStorageGetPublishedFileDetailsResult_t struct RemoteStorageEnumerateWorkshopFilesResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 19 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 19 }; EResult m_eResult; int32 m_nResultsReturned; int32 m_nTotalResultCount; @@ -539,7 +511,7 @@ struct RemoteStorageEnumerateWorkshopFilesResult_t //----------------------------------------------------------------------------- struct RemoteStorageGetPublishedItemVoteDetailsResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 20 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 20 }; EResult m_eResult; PublishedFileId_t m_unPublishedFileId; int32 m_nVotesFor; @@ -554,7 +526,7 @@ struct RemoteStorageGetPublishedItemVoteDetailsResult_t //----------------------------------------------------------------------------- struct RemoteStoragePublishedFileSubscribed_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 21 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 21 }; PublishedFileId_t m_nPublishedFileId; // The published file id AppId_t m_nAppID; // ID of the app that will consume this file. }; @@ -564,7 +536,7 @@ struct RemoteStoragePublishedFileSubscribed_t //----------------------------------------------------------------------------- struct RemoteStoragePublishedFileUnsubscribed_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 22 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 22 }; PublishedFileId_t m_nPublishedFileId; // The published file id AppId_t m_nAppID; // ID of the app that will consume this file. }; @@ -575,7 +547,7 @@ struct RemoteStoragePublishedFileUnsubscribed_t //----------------------------------------------------------------------------- struct RemoteStoragePublishedFileDeleted_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 23 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 23 }; PublishedFileId_t m_nPublishedFileId; // The published file id AppId_t m_nAppID; // ID of the app that will consume this file. }; @@ -586,7 +558,7 @@ struct RemoteStoragePublishedFileDeleted_t //----------------------------------------------------------------------------- struct RemoteStorageUpdateUserPublishedItemVoteResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 24 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 24 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; // The published file id }; @@ -597,7 +569,7 @@ struct RemoteStorageUpdateUserPublishedItemVoteResult_t //----------------------------------------------------------------------------- struct RemoteStorageUserVoteDetails_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 25 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 25 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; // The published file id EWorkshopVote m_eVote; // what the user voted @@ -605,7 +577,7 @@ struct RemoteStorageUserVoteDetails_t struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 26 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 26 }; EResult m_eResult; // The result of the operation. int32 m_nResultsReturned; int32 m_nTotalResultCount; @@ -614,7 +586,7 @@ struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t struct RemoteStorageSetUserPublishedFileActionResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 27 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 27 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; // The published file id EWorkshopFileAction m_eAction; // the action that was attempted @@ -622,7 +594,7 @@ struct RemoteStorageSetUserPublishedFileActionResult_t struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 28 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 28 }; EResult m_eResult; // The result of the operation. EWorkshopFileAction m_eAction; // the action that was filtered on int32 m_nResultsReturned; @@ -637,7 +609,7 @@ struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t //----------------------------------------------------------------------------- struct RemoteStoragePublishFileProgress_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 29 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 29 }; double m_dPercentFile; bool m_bPreview; }; @@ -648,7 +620,7 @@ struct RemoteStoragePublishFileProgress_t //----------------------------------------------------------------------------- struct RemoteStoragePublishedFileUpdated_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 30 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 30 }; PublishedFileId_t m_nPublishedFileId; // The published file id AppId_t m_nAppID; // ID of the app that will consume this file. uint64 m_ulUnused; // not used anymore @@ -659,7 +631,7 @@ struct RemoteStoragePublishedFileUpdated_t //----------------------------------------------------------------------------- struct RemoteStorageFileWriteAsyncComplete_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 31 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 31 }; EResult m_eResult; // result }; @@ -668,13 +640,21 @@ struct RemoteStorageFileWriteAsyncComplete_t //----------------------------------------------------------------------------- struct RemoteStorageFileReadAsyncComplete_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 32 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 32 }; SteamAPICall_t m_hFileReadAsync; // call handle of the async read which was made EResult m_eResult; // result uint32 m_nOffset; // offset in the file this read was at uint32 m_cubRead; // amount read - will the <= the amount requested }; +//----------------------------------------------------------------------------- +// Purpose: one or more files for this app have changed locally after syncing +// to remote session changes +// Note: only posted if this happens DURING the local app session +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( RemoteStorageLocalFileChange_t, k_iSteamRemoteStorageCallbacks + 33 ) +STEAM_CALLBACK_END( 0 ) + #pragma pack( pop ) diff --git a/lib/linux/include/steam/isteamscreenshots.h b/lib/linux/include/steam/isteamscreenshots.h index 6095705..1824268 100644 --- a/lib/linux/include/steam/isteamscreenshots.h +++ b/lib/linux/include/steam/isteamscreenshots.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" const uint32 k_nScreenshotMaxTaggedUsers = 32; const uint32 k_nScreenshotMaxTaggedPublishedFiles = 32; @@ -81,13 +81,17 @@ public: #define STEAMSCREENSHOTS_INTERFACE_VERSION "STEAMSCREENSHOTS_INTERFACE_VERSION003" +// Global interface accessor +inline ISteamScreenshots *SteamScreenshots(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamScreenshots *, SteamScreenshots, STEAMSCREENSHOTS_INTERFACE_VERSION ); + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- // Purpose: Screenshot successfully written or otherwise added to the library diff --git a/lib/linux/include/steam/isteamugc.h b/lib/linux/include/steam/isteamugc.h index 1827fc6..96e9b9d 100644 --- a/lib/linux/include/steam/isteamugc.h +++ b/lib/linux/include/steam/isteamugc.h @@ -10,7 +10,8 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" +#include "isteamremotestorage.h" // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -18,7 +19,7 @@ #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif @@ -46,7 +47,7 @@ enum EUGCMatchingUGCType k_EUGCMatchingUGCType_UsableInGame = 10, // ready-to-use items and integrated guides k_EUGCMatchingUGCType_ControllerBindings = 11, k_EUGCMatchingUGCType_GameManagedItems = 12, // game managed items (not managed by users) - k_EUGCMatchingUGCType_All = ~0, // return everything + k_EUGCMatchingUGCType_All = ~0, // @note: will only be valid for CreateQueryUserUGCRequest requests }; // Different lists of published UGC for a user. @@ -98,6 +99,7 @@ enum EUGCQuery k_EUGCQuery_RankedByLifetimeAveragePlaytime = 16, k_EUGCQuery_RankedByPlaytimeSessionsTrend = 17, k_EUGCQuery_RankedByLifetimePlaytimeSessions = 18, + k_EUGCQuery_RankedByLastUpdatedDate = 19, }; enum EItemUpdateStatus @@ -119,21 +121,24 @@ enum EItemState k_EItemStateNeedsUpdate = 8, // items needs an update. Either because it's not installed yet or creator updated content k_EItemStateDownloading = 16, // item update is currently downloading k_EItemStateDownloadPending = 32, // DownloadItem() was called for this item, content isn't available until DownloadItemResult_t is fired + k_EItemStateDisabledLocally = 64, // Item is disabled locally, so it shouldn't be considered subscribed }; enum EItemStatistic { - k_EItemStatistic_NumSubscriptions = 0, - k_EItemStatistic_NumFavorites = 1, - k_EItemStatistic_NumFollowers = 2, - k_EItemStatistic_NumUniqueSubscriptions = 3, - k_EItemStatistic_NumUniqueFavorites = 4, - k_EItemStatistic_NumUniqueFollowers = 5, - k_EItemStatistic_NumUniqueWebsiteViews = 6, - k_EItemStatistic_ReportScore = 7, - k_EItemStatistic_NumSecondsPlayed = 8, - k_EItemStatistic_NumPlaytimeSessions = 9, - k_EItemStatistic_NumComments = 10, + k_EItemStatistic_NumSubscriptions = 0, + k_EItemStatistic_NumFavorites = 1, + k_EItemStatistic_NumFollowers = 2, + k_EItemStatistic_NumUniqueSubscriptions = 3, + k_EItemStatistic_NumUniqueFavorites = 4, + k_EItemStatistic_NumUniqueFollowers = 5, + k_EItemStatistic_NumUniqueWebsiteViews = 6, + k_EItemStatistic_ReportScore = 7, + k_EItemStatistic_NumSecondsPlayed = 8, + k_EItemStatistic_NumPlaytimeSessions = 9, + k_EItemStatistic_NumComments = 10, + k_EItemStatistic_NumSecondsPlayedDuringTimePeriod = 11, + k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod = 12, }; enum EItemPreviewType @@ -150,9 +155,19 @@ enum EItemPreviewType // | |Dn | | // +---+---+---+---+ k_EItemPreviewType_EnvironmentMap_LatLong = 4, // standard image file expected + k_EItemPreviewType_Clip = 5, // clip id is stored k_EItemPreviewType_ReservedMax = 255, // you can specify your own types above this value }; +enum EUGCContentDescriptorID +{ + k_EUGCContentDescriptor_NudityOrSexualContent = 1, + k_EUGCContentDescriptor_FrequentViolenceOrGore = 2, + k_EUGCContentDescriptor_AdultOnlySexualContent = 3, + k_EUGCContentDescriptor_GratuitousSexualContent = 4, + k_EUGCContentDescriptor_AnyMatureContent = 5, +}; + const uint32 kNumUGCResultsPerPage = 50; const uint32 k_cchDeveloperMetadataMax = 5000; @@ -201,31 +216,46 @@ public: virtual UGCQueryHandle_t CreateQueryUserUGCRequest( AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ) = 0; // Query for all matching UGC. Creator app id or consumer app id must be valid and be set to the current running app. unPage should start at 1. + STEAM_FLAT_NAME( CreateQueryAllUGCRequestPage ) virtual UGCQueryHandle_t CreateQueryAllUGCRequest( EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ) = 0; + // Query for all matching UGC using the new deep paging interface. Creator app id or consumer app id must be valid and be set to the current running app. pchCursor should be set to NULL or "*" to get the first result set. + STEAM_FLAT_NAME( CreateQueryAllUGCRequestCursor ) + virtual UGCQueryHandle_t CreateQueryAllUGCRequest( EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, const char *pchCursor = NULL ) = 0; + // Query for the details of the given published file ids (the RequestUGCDetails call is deprecated and replaced with this) virtual UGCQueryHandle_t CreateQueryUGCDetailsRequest( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0; // Send the query to Steam - CALL_RESULT( SteamUGCQueryCompleted_t ) + STEAM_CALL_RESULT( SteamUGCQueryCompleted_t ) virtual SteamAPICall_t SendQueryUGCRequest( UGCQueryHandle_t handle ) = 0; // Retrieve an individual result after receiving the callback for querying UGC virtual bool GetQueryUGCResult( UGCQueryHandle_t handle, uint32 index, SteamUGCDetails_t *pDetails ) = 0; - virtual bool GetQueryUGCPreviewURL( UGCQueryHandle_t handle, uint32 index, OUT_STRING_COUNT(cchURLSize) char *pchURL, uint32 cchURLSize ) = 0; - virtual bool GetQueryUGCMetadata( UGCQueryHandle_t handle, uint32 index, OUT_STRING_COUNT(cchMetadatasize) char *pchMetadata, uint32 cchMetadatasize ) = 0; + virtual uint32 GetQueryUGCNumTags( UGCQueryHandle_t handle, uint32 index ) = 0; + virtual bool GetQueryUGCTag( UGCQueryHandle_t handle, uint32 index, uint32 indexTag, STEAM_OUT_STRING_COUNT( cchValueSize ) char* pchValue, uint32 cchValueSize ) = 0; + virtual bool GetQueryUGCTagDisplayName( UGCQueryHandle_t handle, uint32 index, uint32 indexTag, STEAM_OUT_STRING_COUNT( cchValueSize ) char* pchValue, uint32 cchValueSize ) = 0; + virtual bool GetQueryUGCPreviewURL( UGCQueryHandle_t handle, uint32 index, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchURL, uint32 cchURLSize ) = 0; + virtual bool GetQueryUGCMetadata( UGCQueryHandle_t handle, uint32 index, STEAM_OUT_STRING_COUNT(cchMetadatasize) char *pchMetadata, uint32 cchMetadatasize ) = 0; virtual bool GetQueryUGCChildren( UGCQueryHandle_t handle, uint32 index, PublishedFileId_t* pvecPublishedFileID, uint32 cMaxEntries ) = 0; virtual bool GetQueryUGCStatistic( UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 *pStatValue ) = 0; virtual uint32 GetQueryUGCNumAdditionalPreviews( UGCQueryHandle_t handle, uint32 index ) = 0; - virtual bool GetQueryUGCAdditionalPreview( UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, OUT_STRING_COUNT(cchURLSize) char *pchURLOrVideoID, uint32 cchURLSize, OUT_STRING_COUNT(cchURLSize) char *pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType *pPreviewType ) = 0; + virtual bool GetQueryUGCAdditionalPreview( UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchURLOrVideoID, uint32 cchURLSize, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType *pPreviewType ) = 0; virtual uint32 GetQueryUGCNumKeyValueTags( UGCQueryHandle_t handle, uint32 index ) = 0; - virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, OUT_STRING_COUNT(cchKeySize) char *pchKey, uint32 cchKeySize, OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; + virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, STEAM_OUT_STRING_COUNT(cchKeySize) char *pchKey, uint32 cchKeySize, STEAM_OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; + // Return the first value matching the pchKey. Note that a key may map to multiple values. Returns false if there was an error or no matching value was found. + STEAM_FLAT_NAME( GetQueryFirstUGCKeyValueTag ) + virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, const char *pchKey, STEAM_OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; + + virtual uint32 GetQueryUGCContentDescriptors( UGCQueryHandle_t handle, uint32 index, EUGCContentDescriptorID *pvecDescriptors, uint32 cMaxEntries ) = 0; + // Release the request to free up memory, after retrieving results virtual bool ReleaseQueryUGCRequest( UGCQueryHandle_t handle ) = 0; // Options to set for querying UGC virtual bool AddRequiredTag( UGCQueryHandle_t handle, const char *pTagName ) = 0; + virtual bool AddRequiredTagGroup( UGCQueryHandle_t handle, const SteamParamStringArray_t *pTagGroups ) = 0; // match any of the tags in this group virtual bool AddExcludedTag( UGCQueryHandle_t handle, const char *pTagName ) = 0; virtual bool SetReturnOnlyIDs( UGCQueryHandle_t handle, bool bReturnOnlyIDs ) = 0; virtual bool SetReturnKeyValueTags( UGCQueryHandle_t handle, bool bReturnKeyValueTags ) = 0; @@ -234,6 +264,7 @@ public: virtual bool SetReturnChildren( UGCQueryHandle_t handle, bool bReturnChildren ) = 0; virtual bool SetReturnAdditionalPreviews( UGCQueryHandle_t handle, bool bReturnAdditionalPreviews ) = 0; virtual bool SetReturnTotalOnly( UGCQueryHandle_t handle, bool bReturnTotalOnly ) = 0; + virtual bool SetReturnPlaytimeStats( UGCQueryHandle_t handle, uint32 unDays ) = 0; virtual bool SetLanguage( UGCQueryHandle_t handle, const char *pchLanguage ) = 0; virtual bool SetAllowCachedResponse( UGCQueryHandle_t handle, uint32 unMaxAgeSeconds ) = 0; @@ -244,13 +275,16 @@ public: virtual bool SetMatchAnyTag( UGCQueryHandle_t handle, bool bMatchAnyTag ) = 0; virtual bool SetSearchText( UGCQueryHandle_t handle, const char *pSearchText ) = 0; virtual bool SetRankedByTrendDays( UGCQueryHandle_t handle, uint32 unDays ) = 0; + virtual bool SetTimeCreatedDateRange( UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ) = 0; + virtual bool SetTimeUpdatedDateRange( UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ) = 0; virtual bool AddRequiredKeyValueTag( UGCQueryHandle_t handle, const char *pKey, const char *pValue ) = 0; // DEPRECATED - Use CreateQueryUGCDetailsRequest call above instead! + STEAM_CALL_RESULT( SteamUGCRequestUGCDetailsResult_t ) virtual SteamAPICall_t RequestUGCDetails( PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds ) = 0; // Steam Workshop Creator API - CALL_RESULT( CreateItemResult_t ) + STEAM_CALL_RESULT( CreateItemResult_t ) virtual SteamAPICall_t CreateItem( AppId_t nConsumerAppId, EWorkshopFileType eFileType ) = 0; // create new item for this app with no content attached yet virtual UGCUpdateHandle_t StartItemUpdate( AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID ) = 0; // start an UGC item update. Set changed properties before commiting update with CommitItemUpdate() @@ -260,9 +294,11 @@ public: virtual bool SetItemUpdateLanguage( UGCUpdateHandle_t handle, const char *pchLanguage ) = 0; // specify the language of the title or description that will be set virtual bool SetItemMetadata( UGCUpdateHandle_t handle, const char *pchMetaData ) = 0; // change the metadata of an UGC item (max = k_cchDeveloperMetadataMax) virtual bool SetItemVisibility( UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility ) = 0; // change the visibility of an UGC item - virtual bool SetItemTags( UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t *pTags ) = 0; // change the tags of an UGC item + virtual bool SetItemTags( UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t *pTags, bool bAllowAdminTags = false ) = 0; // change the tags of an UGC item virtual bool SetItemContent( UGCUpdateHandle_t handle, const char *pszContentFolder ) = 0; // update item content from this local folder virtual bool SetItemPreview( UGCUpdateHandle_t handle, const char *pszPreviewFile ) = 0; // change preview image file for this item. pszPreviewFile points to local image file, which must be under 1MB in size + virtual bool SetAllowLegacyUpload( UGCUpdateHandle_t handle, bool bAllowLegacyUpload ) = 0; // use legacy upload for a single small file. The parameter to SetItemContent() should either be a directory with one file or the full path to the file. The file must also be less than 10MB in size. + virtual bool RemoveAllItemKeyValueTags( UGCUpdateHandle_t handle ) = 0; // remove all existing key-value tags (you can add new ones via the AddItemKeyValueTag function) virtual bool RemoveItemKeyValueTags( UGCUpdateHandle_t handle, const char *pchKey ) = 0; // remove any existing key-value tags with the specified key virtual bool AddItemKeyValueTag( UGCUpdateHandle_t handle, const char *pchKey, const char *pchValue ) = 0; // add new key-value tags for the item. Note that there can be multiple values for a tag. virtual bool AddItemPreviewFile( UGCUpdateHandle_t handle, const char *pszPreviewFile, EItemPreviewType type ) = 0; // add preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size @@ -270,23 +306,25 @@ public: virtual bool UpdateItemPreviewFile( UGCUpdateHandle_t handle, uint32 index, const char *pszPreviewFile ) = 0; // updates an existing preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size virtual bool UpdateItemPreviewVideo( UGCUpdateHandle_t handle, uint32 index, const char *pszVideoID ) = 0; // updates an existing preview video for this item virtual bool RemoveItemPreview( UGCUpdateHandle_t handle, uint32 index ) = 0; // remove a preview by index starting at 0 (previews are sorted) + virtual bool AddContentDescriptor( UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ) = 0; + virtual bool RemoveContentDescriptor( UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ) = 0; - CALL_RESULT( SubmitItemUpdateResult_t ) + STEAM_CALL_RESULT( SubmitItemUpdateResult_t ) virtual SteamAPICall_t SubmitItemUpdate( UGCUpdateHandle_t handle, const char *pchChangeNote ) = 0; // commit update process started with StartItemUpdate() virtual EItemUpdateStatus GetItemUpdateProgress( UGCUpdateHandle_t handle, uint64 *punBytesProcessed, uint64* punBytesTotal ) = 0; // Steam Workshop Consumer API - CALL_RESULT( SetUserItemVoteResult_t ) + STEAM_CALL_RESULT( SetUserItemVoteResult_t ) virtual SteamAPICall_t SetUserItemVote( PublishedFileId_t nPublishedFileID, bool bVoteUp ) = 0; - CALL_RESULT( GetUserItemVoteResult_t ) + STEAM_CALL_RESULT( GetUserItemVoteResult_t ) virtual SteamAPICall_t GetUserItemVote( PublishedFileId_t nPublishedFileID ) = 0; - CALL_RESULT( UserFavoriteItemsListChanged_t ) + STEAM_CALL_RESULT( UserFavoriteItemsListChanged_t ) virtual SteamAPICall_t AddItemToFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID ) = 0; - CALL_RESULT( UserFavoriteItemsListChanged_t ) + STEAM_CALL_RESULT( UserFavoriteItemsListChanged_t ) virtual SteamAPICall_t RemoveItemFromFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID ) = 0; - CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) virtual SteamAPICall_t SubscribeItem( PublishedFileId_t nPublishedFileID ) = 0; // subscribe to this item, will be installed ASAP - CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) virtual SteamAPICall_t UnsubscribeItem( PublishedFileId_t nPublishedFileID ) = 0; // unsubscribe from this item, will be uninstalled after game quits virtual uint32 GetNumSubscribedItems() = 0; // number of subscribed items virtual uint32 GetSubscribedItems( PublishedFileId_t* pvecPublishedFileID, uint32 cMaxEntries ) = 0; // all subscribed item PublishFileIDs @@ -296,7 +334,7 @@ public: // get info about currently installed content on disc for items that have k_EItemStateInstalled set // if k_EItemStateLegacyItem is set, pchFolder contains the path to the legacy file itself (not a folder) - virtual bool GetItemInstallInfo( PublishedFileId_t nPublishedFileID, uint64 *punSizeOnDisk, OUT_STRING_COUNT( cchFolderSize ) char *pchFolder, uint32 cchFolderSize, uint32 *punTimeStamp ) = 0; + virtual bool GetItemInstallInfo( PublishedFileId_t nPublishedFileID, uint64 *punSizeOnDisk, STEAM_OUT_STRING_COUNT( cchFolderSize ) char *pchFolder, uint32 cchFolderSize, uint32 *punTimeStamp ) = 0; // get info about pending update for items that have k_EItemStateNeedsUpdate set. punBytesTotal will be valid after download started once virtual bool GetItemDownloadInfo( PublishedFileId_t nPublishedFileID, uint64 *punBytesDownloaded, uint64 *punBytesTotal ) = 0; @@ -314,27 +352,65 @@ public: virtual void SuspendDownloads( bool bSuspend ) = 0; // usage tracking - CALL_RESULT( StartPlaytimeTrackingResult_t ); + STEAM_CALL_RESULT( StartPlaytimeTrackingResult_t ) virtual SteamAPICall_t StartPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0; - CALL_RESULT( StopPlaytimeTrackingResult_t ); + STEAM_CALL_RESULT( StopPlaytimeTrackingResult_t ) virtual SteamAPICall_t StopPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0; - CALL_RESULT( StopPlaytimeTrackingResult_t ); + STEAM_CALL_RESULT( StopPlaytimeTrackingResult_t ) virtual SteamAPICall_t StopPlaytimeTrackingForAllItems() = 0; + + // parent-child relationship or dependency management + STEAM_CALL_RESULT( AddUGCDependencyResult_t ) + virtual SteamAPICall_t AddDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ) = 0; + STEAM_CALL_RESULT( RemoveUGCDependencyResult_t ) + virtual SteamAPICall_t RemoveDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ) = 0; + + // add/remove app dependence/requirements (usually DLC) + STEAM_CALL_RESULT( AddAppDependencyResult_t ) + virtual SteamAPICall_t AddAppDependency( PublishedFileId_t nPublishedFileID, AppId_t nAppID ) = 0; + STEAM_CALL_RESULT( RemoveAppDependencyResult_t ) + virtual SteamAPICall_t RemoveAppDependency( PublishedFileId_t nPublishedFileID, AppId_t nAppID ) = 0; + // request app dependencies. note that whatever callback you register for GetAppDependenciesResult_t may be called multiple times + // until all app dependencies have been returned + STEAM_CALL_RESULT( GetAppDependenciesResult_t ) + virtual SteamAPICall_t GetAppDependencies( PublishedFileId_t nPublishedFileID ) = 0; + + // delete the item without prompting the user + STEAM_CALL_RESULT( DeleteItemResult_t ) + virtual SteamAPICall_t DeleteItem( PublishedFileId_t nPublishedFileID ) = 0; + + // Show the app's latest Workshop EULA to the user in an overlay window, where they can accept it or not + virtual bool ShowWorkshopEULA() = 0; + // Retrieve information related to the user's acceptance or not of the app's specific Workshop EULA + STEAM_CALL_RESULT( WorkshopEULAStatus_t ) + virtual SteamAPICall_t GetWorkshopEULAStatus() = 0; + + // Return the user's community content descriptor preferences + virtual uint32 GetUserContentDescriptorPreferences( EUGCContentDescriptorID *pvecDescriptors, uint32 cMaxEntries ) = 0; }; -#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION009" +#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION018" + +// Global interface accessor +inline ISteamUGC *SteamUGC(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamUGC *, SteamUGC, STEAMUGC_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamUGC *SteamGameServerUGC(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamUGC *, SteamGameServerUGC, STEAMUGC_INTERFACE_VERSION ); //----------------------------------------------------------------------------- // Purpose: Callback for querying UGC //----------------------------------------------------------------------------- struct SteamUGCQueryCompleted_t { - enum { k_iCallback = k_iClientUGCCallbacks + 1 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 1 }; UGCQueryHandle_t m_handle; EResult m_eResult; uint32 m_unNumResultsReturned; uint32 m_unTotalMatchingResults; bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache + char m_rgchNextCursor[k_cchPublishedFileURLMax]; // If a paging cursor was used, then this will be the next cursor to get the next result set. }; @@ -343,7 +419,7 @@ struct SteamUGCQueryCompleted_t //----------------------------------------------------------------------------- struct SteamUGCRequestUGCDetailsResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 2 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 2 }; SteamUGCDetails_t m_details; bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache }; @@ -354,7 +430,7 @@ struct SteamUGCRequestUGCDetailsResult_t //----------------------------------------------------------------------------- struct CreateItemResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 3 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 3 }; EResult m_eResult; PublishedFileId_t m_nPublishedFileId; // new item got this UGC PublishFileID bool m_bUserNeedsToAcceptWorkshopLegalAgreement; @@ -366,9 +442,10 @@ struct CreateItemResult_t //----------------------------------------------------------------------------- struct SubmitItemUpdateResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 4 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 4 }; EResult m_eResult; bool m_bUserNeedsToAcceptWorkshopLegalAgreement; + PublishedFileId_t m_nPublishedFileId; }; @@ -377,7 +454,7 @@ struct SubmitItemUpdateResult_t //----------------------------------------------------------------------------- struct ItemInstalled_t { - enum { k_iCallback = k_iClientUGCCallbacks + 5 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 5 }; AppId_t m_unAppID; PublishedFileId_t m_nPublishedFileId; }; @@ -388,7 +465,7 @@ struct ItemInstalled_t //----------------------------------------------------------------------------- struct DownloadItemResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 6 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 6 }; AppId_t m_unAppID; PublishedFileId_t m_nPublishedFileId; EResult m_eResult; @@ -399,7 +476,7 @@ struct DownloadItemResult_t //----------------------------------------------------------------------------- struct UserFavoriteItemsListChanged_t { - enum { k_iCallback = k_iClientUGCCallbacks + 7 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 7 }; PublishedFileId_t m_nPublishedFileId; EResult m_eResult; bool m_bWasAddRequest; @@ -410,7 +487,7 @@ struct UserFavoriteItemsListChanged_t //----------------------------------------------------------------------------- struct SetUserItemVoteResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 8 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 8 }; PublishedFileId_t m_nPublishedFileId; EResult m_eResult; bool m_bVoteUp; @@ -421,7 +498,7 @@ struct SetUserItemVoteResult_t //----------------------------------------------------------------------------- struct GetUserItemVoteResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 9 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 9 }; PublishedFileId_t m_nPublishedFileId; EResult m_eResult; bool m_bVotedUp; @@ -434,7 +511,7 @@ struct GetUserItemVoteResult_t //----------------------------------------------------------------------------- struct StartPlaytimeTrackingResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 10 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 10 }; EResult m_eResult; }; @@ -443,10 +520,103 @@ struct StartPlaytimeTrackingResult_t //----------------------------------------------------------------------------- struct StopPlaytimeTrackingResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 11 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 11 }; EResult m_eResult; }; +//----------------------------------------------------------------------------- +// Purpose: The result of a call to AddDependency +//----------------------------------------------------------------------------- +struct AddUGCDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 12 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + PublishedFileId_t m_nChildPublishedFileId; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to RemoveDependency +//----------------------------------------------------------------------------- +struct RemoveUGCDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 13 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + PublishedFileId_t m_nChildPublishedFileId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to AddAppDependency +//----------------------------------------------------------------------------- +struct AddAppDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 14 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + AppId_t m_nAppID; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to RemoveAppDependency +//----------------------------------------------------------------------------- +struct RemoveAppDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 15 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + AppId_t m_nAppID; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to GetAppDependencies. Callback may be called +// multiple times until all app dependencies have been returned. +//----------------------------------------------------------------------------- +struct GetAppDependenciesResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 16 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + AppId_t m_rgAppIDs[32]; + uint32 m_nNumAppDependencies; // number returned in this struct + uint32 m_nTotalNumAppDependencies; // total found +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to DeleteItem +//----------------------------------------------------------------------------- +struct DeleteItemResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 17 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: signal that the list of subscribed items changed +//----------------------------------------------------------------------------- +struct UserSubscribedItemsListChanged_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 18 }; + AppId_t m_nAppID; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Status of the user's acceptable/rejection of the app's specific Workshop EULA +//----------------------------------------------------------------------------- +struct WorkshopEULAStatus_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 20 }; + EResult m_eResult; + AppId_t m_nAppID; + uint32 m_unVersion; + RTime32 m_rtAction; + bool m_bAccepted; + bool m_bNeedsAction; +}; #pragma pack( pop ) diff --git a/lib/linux/include/steam/isteamunifiedmessages.h b/lib/linux/include/steam/isteamunifiedmessages.h deleted file mode 100644 index 684f4e8..0000000 --- a/lib/linux/include/steam/isteamunifiedmessages.h +++ /dev/null @@ -1,63 +0,0 @@ -//====== Copyright � 1996-2007, Valve Corporation, All rights reserved. ======= -// -// Purpose: Interface to unified messages client -// -// You should not need to use this interface except if your product is using a language other than C++. -// Contact your Steam Tech contact for more details. -// -//============================================================================= - -#ifndef ISTEAMUNIFIEDMESSAGES_H -#define ISTEAMUNIFIEDMESSAGES_H -#ifdef _WIN32 -#pragma once -#endif - -typedef uint64 ClientUnifiedMessageHandle; - -class ISteamUnifiedMessages -{ -public: - static const ClientUnifiedMessageHandle k_InvalidUnifiedMessageHandle = 0; - - // Sends a service method (in binary serialized form) using the Steam Client. - // Returns a unified message handle (k_InvalidUnifiedMessageHandle if could not send the message). - virtual ClientUnifiedMessageHandle SendMethod( const char *pchServiceMethod, const void *pRequestBuffer, uint32 unRequestBufferSize, uint64 unContext ) = 0; - - // Gets the size of the response and the EResult. Returns false if the response is not ready yet. - virtual bool GetMethodResponseInfo( ClientUnifiedMessageHandle hHandle, uint32 *punResponseSize, EResult *peResult ) = 0; - - // Gets a response in binary serialized form (and optionally release the corresponding allocated memory). - virtual bool GetMethodResponseData( ClientUnifiedMessageHandle hHandle, void *pResponseBuffer, uint32 unResponseBufferSize, bool bAutoRelease ) = 0; - - // Releases the message and its corresponding allocated memory. - virtual bool ReleaseMethod( ClientUnifiedMessageHandle hHandle ) = 0; - - // Sends a service notification (in binary serialized form) using the Steam Client. - // Returns true if the notification was sent successfully. - virtual bool SendNotification( const char *pchServiceNotification, const void *pNotificationBuffer, uint32 unNotificationBufferSize ) = 0; -}; - -#define STEAMUNIFIEDMESSAGES_INTERFACE_VERSION "STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001" - -// callbacks -#if defined( VALVE_CALLBACK_PACK_SMALL ) -#pragma pack( push, 4 ) -#elif defined( VALVE_CALLBACK_PACK_LARGE ) -#pragma pack( push, 8 ) -#else -#error isteamclient.h must be included -#endif - -struct SteamUnifiedMessagesSendMethodResult_t -{ - enum { k_iCallback = k_iClientUnifiedMessagesCallbacks + 1 }; - ClientUnifiedMessageHandle m_hHandle; // The handle returned by SendMethod(). - uint64 m_unContext; // Context provided when calling SendMethod(). - EResult m_eResult; // The result of the method call. - uint32 m_unResponseSize; // The size of the response. -}; - -#pragma pack( pop ) - -#endif // ISTEAMUNIFIEDMESSAGES_H diff --git a/lib/linux/include/steam/isteamuser.h b/lib/linux/include/steam/isteamuser.h index f97a057..182f02e 100644 --- a/lib/linux/include/steam/isteamuser.h +++ b/lib/linux/include/steam/isteamuser.h @@ -10,26 +10,7 @@ #pragma once #endif -#include "isteamclient.h" - -// structure that contains client callback data -// see callbacks documentation for more details -#if defined( VALVE_CALLBACK_PACK_SMALL ) -#pragma pack( push, 4 ) -#elif defined( VALVE_CALLBACK_PACK_LARGE ) -#pragma pack( push, 8 ) -#else -#error isteamclient.h must be included -#endif -struct CallbackMsg_t -{ - HSteamUser m_hSteamUser; - int m_iCallback; - uint8 *m_pubParam; - int m_cubParam; -}; -#pragma pack( pop ) - +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: Functions for accessing and manipulating a steam account @@ -66,11 +47,17 @@ public: // // return value - returns the number of bytes written to pBlob. If the return is 0, then the buffer passed in was too small, and the call has failed // The contents of pBlob should then be sent to the game server, for it to use to complete the authentication process. - virtual int InitiateGameConnection( void *pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure ) = 0; + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual int InitiateGameConnection_DEPRECATED( void *pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure ) = 0; // notify of disconnect // needs to occur when the game client leaves the specified game server, needs to match with the InitiateGameConnection() call - virtual void TerminateGameConnection( uint32 unIPServer, uint16 usPortServer ) = 0; + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual void TerminateGameConnection_DEPRECATED( uint32 unIPServer, uint16 usPortServer ) = 0; // Legacy functions @@ -89,41 +76,64 @@ public: // k_eVoiceResultNotRecording virtual void StopVoiceRecording( ) = 0; - // Determine the amount of captured audio data that is available in bytes. - // This provides both the compressed and uncompressed data. Please note that the uncompressed - // data is not the raw feed from the microphone: data may only be available if audible - // levels of speech are detected. - // nUncompressedVoiceDesiredSampleRate is necessary to know the number of bytes to return in pcbUncompressed - can be set to 0 if you don't need uncompressed (the usual case) - // If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nUncompressedVoiceDesiredSampleRate - virtual EVoiceResult GetAvailableVoice( uint32 *pcbCompressed, uint32 *pcbUncompressed, uint32 nUncompressedVoiceDesiredSampleRate ) = 0; + // Determine the size of captured audio data that is available from GetVoice. + // Most applications will only use compressed data and should ignore the other + // parameters, which exist primarily for backwards compatibility. See comments + // below for further explanation of "uncompressed" data. + virtual EVoiceResult GetAvailableVoice( uint32 *pcbCompressed, uint32 *pcbUncompressed_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 ) = 0; - // Gets the latest voice data from the microphone. Compressed data is an arbitrary format, and is meant to be handed back to - // DecompressVoice() for playback later as a binary blob. Uncompressed data is 16-bit, signed integer, 11025Hz PCM format. - // Please note that the uncompressed data is not the raw feed from the microphone: data may only be available if audible - // levels of speech are detected, and may have passed through denoising filters, etc. - // This function should be called as often as possible once recording has started; once per frame at least. - // nBytesWritten is set to the number of bytes written to pDestBuffer. - // nUncompressedBytesWritten is set to the number of bytes written to pUncompressedDestBuffer. - // You must grab both compressed and uncompressed here at the same time, if you want both. - // Matching data that is not read during this call will be thrown away. - // GetAvailableVoice() can be used to determine how much data is actually available. - // If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nUncompressedVoiceDesiredSampleRate - virtual EVoiceResult GetVoice( bool bWantCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, bool bWantUncompressed, void *pUncompressedDestBuffer, uint32 cbUncompressedDestBufferSize, uint32 *nUncompressBytesWritten, uint32 nUncompressedVoiceDesiredSampleRate ) = 0; + // --------------------------------------------------------------------------- + // NOTE: "uncompressed" audio is a deprecated feature and should not be used + // by most applications. It is raw single-channel 16-bit PCM wave data which + // may have been run through preprocessing filters and/or had silence removed, + // so the uncompressed audio could have a shorter duration than you expect. + // There may be no data at all during long periods of silence. Also, fetching + // uncompressed audio will cause GetVoice to discard any leftover compressed + // audio, so you must fetch both types at once. Finally, GetAvailableVoice is + // not precisely accurate when the uncompressed size is requested. So if you + // really need to use uncompressed audio, you should call GetVoice frequently + // with two very large (20kb+) output buffers instead of trying to allocate + // perfectly-sized buffers. But most applications should ignore all of these + // details and simply leave the "uncompressed" parameters as NULL/zero. + // --------------------------------------------------------------------------- - // Decompresses a chunk of compressed data produced by GetVoice(). - // nBytesWritten is set to the number of bytes written to pDestBuffer unless the return value is k_EVoiceResultBufferTooSmall. - // In that case, nBytesWritten is set to the size of the buffer required to decompress the given - // data. The suggested buffer size for the destination buffer is 22 kilobytes. - // The output format of the data is 16-bit signed at the requested samples per second. - // If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nDesiredSampleRate + // Read captured audio data from the microphone buffer. This should be called + // at least once per frame, and preferably every few milliseconds, to keep the + // microphone input delay as low as possible. Most applications will only use + // compressed data and should pass NULL/zero for the "uncompressed" parameters. + // Compressed data can be transmitted by your application and decoded into raw + // using the DecompressVoice function below. + virtual EVoiceResult GetVoice( bool bWantCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, bool bWantUncompressed_Deprecated = false, void *pUncompressedDestBuffer_Deprecated = 0, uint32 cbUncompressedDestBufferSize_Deprecated = 0, uint32 *nUncompressBytesWritten_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 ) = 0; + + // Decodes the compressed voice data returned by GetVoice. The output data is + // raw single-channel 16-bit PCM audio. The decoder supports any sample rate + // from 11025 to 48000; see GetVoiceOptimalSampleRate() below for details. + // If the output buffer is not large enough, then *nBytesWritten will be set + // to the required buffer size, and k_EVoiceResultBufferTooSmall is returned. + // It is suggested to start with a 20kb buffer and reallocate as necessary. virtual EVoiceResult DecompressVoice( const void *pCompressed, uint32 cbCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, uint32 nDesiredSampleRate ) = 0; - // This returns the frequency of the voice data as it's stored internally; calling DecompressVoice() with this size will yield the best results + // This returns the native sample rate of the Steam voice decompressor; using + // this sample rate for DecompressVoice will perform the least CPU processing. + // However, the final audio quality will depend on how well the audio device + // (and/or your application's audio output SDK) deals with lower sample rates. + // You may find that you get the best audio output quality when you ignore + // this function and use the native sample rate of your audio output device, + // which is usually 48000 or 44100. virtual uint32 GetVoiceOptimalSampleRate() = 0; // Retrieve ticket to be sent to the entity who wishes to authenticate you. // pcbTicket retrieves the length of the actual ticket. - virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket ) = 0; + // SteamNetworkingIdentity is an optional input parameter to hold the public IP address or SteamID of the entity you are connecting to + // if an IP address is passed Steam will only allow the ticket to be used by an entity with that IP address + // if a Steam ID is passed Steam will only allow the ticket to be used by that Steam ID + // not to be used for "ISteamUserAuth\AuthenticateUserTicket" - it will fail + virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket, const SteamNetworkingIdentity *pSteamNetworkingIdentity ) = 0; + + // Request a ticket which will be used for webapi "ISteamUserAuth\AuthenticateUserTicket" + // pchIdentity is an optional input parameter to identify the service the ticket will be sent to + // the ticket will be returned in callback GetTicketForWebApiResponse_t + virtual HAuthTicket GetAuthTicketForWebApi( const char *pchIdentity ) = 0; // Authenticate ticket from entity steamID to be sure it is valid and isnt reused // Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse ) @@ -151,10 +161,15 @@ public: // Requests a ticket encrypted with an app specific shared key // pDataToInclude, cbDataToInclude will be encrypted into the ticket // ( This is asynchronous, you must wait for the ticket to be completed by the server ) - CALL_RESULT( EncryptedAppTicketResponse_t ) + STEAM_CALL_RESULT( EncryptedAppTicketResponse_t ) virtual SteamAPICall_t RequestEncryptedAppTicket( void *pDataToInclude, int cbDataToInclude ) = 0; - // retrieve a finished ticket + // Retrieves a finished ticket. + // If no ticket is available, or your buffer is too small, returns false. + // Upon exit, *pcbTicket will be either the size of the ticket copied into your buffer + // (if true was returned), or the size needed (if false was returned). To determine the + // proper size of the ticket, you can pass pTicket=NULL and cbMaxTicket=0; if a ticket + // is available, *pcbTicket will contain the size needed, otherwise it will be zero. virtual bool GetEncryptedAppTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket ) = 0; // Trading Card badges data access @@ -175,7 +190,7 @@ public: // or else immediately navigate to the result URL using a hidden browser window. // NOTE 2: The resulting authorization cookie has an expiration time of one day, // so it would be a good idea to request and visit a new auth URL every 12 hours. - CALL_RESULT( StoreAuthURLResponse_t ) + STEAM_CALL_RESULT( StoreAuthURLResponse_t ) virtual SteamAPICall_t RequestStoreAuthURL( const char *pchRedirectURL ) = 0; // gets whether the users phone number is verified @@ -190,10 +205,25 @@ public: // gets whether the users phone number is awaiting (re)verification virtual bool BIsPhoneRequiringVerification() = 0; + STEAM_CALL_RESULT( MarketEligibilityResponse_t ) + virtual SteamAPICall_t GetMarketEligibility() = 0; + + // Retrieves anti indulgence / duration control for current user + STEAM_CALL_RESULT( DurationControl_t ) + virtual SteamAPICall_t GetDurationControl() = 0; + + // Advise steam china duration control system about the online state of the game. + // This will prevent offline gameplay time from counting against a user's + // playtime limits. + virtual bool BSetDurationControlOnlineState( EDurationControlOnlineState eNewState ) = 0; + }; -#define STEAMUSER_INTERFACE_VERSION "SteamUser019" +#define STEAMUSER_INTERFACE_VERSION "SteamUser023" +// Global interface accessor +inline ISteamUser *SteamUser(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamUser *, SteamUser, STEAMUSER_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -201,15 +231,16 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif + //----------------------------------------------------------------------------- -// Purpose: called when a connections to the Steam back-end has been established -// this means the Steam client now has a working connection to the Steam servers -// usually this will have occurred before the game has launched, and should +// Purpose: Called when an authenticated connection to the Steam back-end has been established. +// This means the Steam client now has a working connection to the Steam servers. +// Usually this will have occurred before the game has launched, and should // only be seen if the user has dropped connection due to a networking issue -// or a Steam server update +// or a Steam server update. //----------------------------------------------------------------------------- struct SteamServersConnected_t { @@ -329,7 +360,6 @@ struct GetAuthSessionTicketResponse_t EResult m_eResult; }; - //----------------------------------------------------------------------------- // Purpose: sent to your game in response to a steam://gamewebcallback/ command //----------------------------------------------------------------------------- @@ -349,6 +379,60 @@ struct StoreAuthURLResponse_t }; +//----------------------------------------------------------------------------- +// Purpose: sent in response to ISteamUser::GetMarketEligibility +//----------------------------------------------------------------------------- +struct MarketEligibilityResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 66 }; + bool m_bAllowed; + EMarketNotAllowedReasonFlags m_eNotAllowedReason; + RTime32 m_rtAllowedAtTime; + + int m_cdaySteamGuardRequiredDays; // The number of days any user is required to have had Steam Guard before they can use the market + int m_cdayNewDeviceCooldown; // The number of days after initial device authorization a user must wait before using the market on that device +}; + + +//----------------------------------------------------------------------------- +// Purpose: sent for games with enabled anti indulgence / duration control, for +// enabled users. Lets the game know whether the user can keep playing or +// whether the game should exit, and returns info about remaining gameplay time. +// +// This callback is fired asynchronously in response to timers triggering. +// It is also fired in response to calls to GetDurationControl(). +//----------------------------------------------------------------------------- +struct DurationControl_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 67 }; + + EResult m_eResult; // result of call (always k_EResultOK for asynchronous timer-based notifications) + AppId_t m_appid; // appid generating playtime + + bool m_bApplicable; // is duration control applicable to user + game combination + int32 m_csecsLast5h; // playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + + EDurationControlProgress m_progress; // recommended progress (either everything is fine, or please exit game) + EDurationControlNotification m_notification; // notification to show, if any (always k_EDurationControlNotification_None for API calls) + + int32 m_csecsToday; // playtime on current calendar day + int32 m_csecsRemaining; // playtime remaining until the user hits a regulatory limit +}; + + +//----------------------------------------------------------------------------- +// callback for GetTicketForWebApi +//----------------------------------------------------------------------------- +struct GetTicketForWebApiResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 68 }; + HAuthTicket m_hAuthTicket; + EResult m_eResult; + int m_cubTicket; + static const int k_nCubTicketMaxLength = 2560; + uint8 m_rgubTicket[k_nCubTicketMaxLength]; +}; + #pragma pack( pop ) diff --git a/lib/linux/include/steam/isteamuserstats.h b/lib/linux/include/steam/isteamuserstats.h index 29ae38b..8bb0c90 100644 --- a/lib/linux/include/steam/isteamuserstats.h +++ b/lib/linux/include/steam/isteamuserstats.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" #include "isteamremotestorage.h" // size limit on stat or achievement name (UTF-8 encoded) @@ -67,7 +67,7 @@ enum ELeaderboardUploadScoreMethod #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct LeaderboardEntry_t @@ -89,16 +89,23 @@ class ISteamUserStats { public: // Ask the server to send down this user's data and achievements for this game - CALL_BACK( UserStatsReceived_t ) + STEAM_CALL_BACK( UserStatsReceived_t ) virtual bool RequestCurrentStats() = 0; // Data accessors + STEAM_FLAT_NAME( GetStatInt32 ) virtual bool GetStat( const char *pchName, int32 *pData ) = 0; + + STEAM_FLAT_NAME( GetStatFloat ) virtual bool GetStat( const char *pchName, float *pData ) = 0; // Set / update data + STEAM_FLAT_NAME( SetStatInt32 ) virtual bool SetStat( const char *pchName, int32 nData ) = 0; + + STEAM_FLAT_NAME( SetStatFloat ) virtual bool SetStat( const char *pchName, float fData ) = 0; + virtual bool UpdateAvgRateStat( const char *pchName, float flCountThisSession, double dSessionLength ) = 0; // Achievement flag accessors @@ -149,12 +156,16 @@ public: // returns a UserStatsReceived_t received when completed // if the other user has no stats, UserStatsReceived_t.m_eResult will be set to k_EResultFail // these stats won't be auto-updated; you'll need to call RequestUserStats() again to refresh any data - CALL_RESULT( UserStatsReceived_t ) + STEAM_CALL_RESULT( UserStatsReceived_t ) virtual SteamAPICall_t RequestUserStats( CSteamID steamIDUser ) = 0; // requests stat information for a user, usable after a successful call to RequestUserStats() + STEAM_FLAT_NAME( GetUserStatInt32 ) virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, int32 *pData ) = 0; + + STEAM_FLAT_NAME( GetUserStatFloat ) virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, float *pData ) = 0; + virtual bool GetUserAchievement( CSteamID steamIDUser, const char *pchName, bool *pbAchieved ) = 0; // See notes for GetAchievementAndUnlockTime above virtual bool GetUserAchievementAndUnlockTime( CSteamID steamIDUser, const char *pchName, bool *pbAchieved, uint32 *punUnlockTime ) = 0; @@ -166,12 +177,12 @@ public: // asks the Steam back-end for a leaderboard by name, and will create it if it's not yet // This call is asynchronous, with the result returned in LeaderboardFindResult_t - CALL_RESULT(LeaderboardFindResult_t) + STEAM_CALL_RESULT(LeaderboardFindResult_t) virtual SteamAPICall_t FindOrCreateLeaderboard( const char *pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType ) = 0; // as above, but won't create the leaderboard if it's not found // This call is asynchronous, with the result returned in LeaderboardFindResult_t - CALL_RESULT( LeaderboardFindResult_t ) + STEAM_CALL_RESULT( LeaderboardFindResult_t ) virtual SteamAPICall_t FindLeaderboard( const char *pchLeaderboardName ) = 0; // returns the name of a leaderboard @@ -194,15 +205,14 @@ public: // k_ELeaderboardDataRequestGlobalAroundUser requests rows around the current user, nRangeStart being negate // e.g. DownloadLeaderboardEntries( hLeaderboard, k_ELeaderboardDataRequestGlobalAroundUser, -3, 3 ) will return 7 rows, 3 before the user, 3 after // k_ELeaderboardDataRequestFriends requests all the rows for friends of the current user - CALL_RESULT( LeaderboardScoresDownloaded_t ) + STEAM_CALL_RESULT( LeaderboardScoresDownloaded_t ) virtual SteamAPICall_t DownloadLeaderboardEntries( SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd ) = 0; // as above, but downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers // if a user doesn't have a leaderboard entry, they won't be included in the result // a max of 100 users can be downloaded at a time, with only one outstanding call at a time - METHOD_DESC(Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers) - CALL_RESULT( LeaderboardScoresDownloaded_t ) + STEAM_CALL_RESULT( LeaderboardScoresDownloaded_t ) virtual SteamAPICall_t DownloadLeaderboardEntriesForUsers( SteamLeaderboard_t hSteamLeaderboard, - ARRAY_COUNT_D(cUsers, Array of users to retrieve) CSteamID *prgUsers, int cUsers ) = 0; + STEAM_ARRAY_COUNT_D(cUsers, Array of users to retrieve) CSteamID *prgUsers, int cUsers ) = 0; // Returns data about a single leaderboard entry // use a for loop from 0 to LeaderboardScoresDownloaded_t::m_cEntryCount to get all the downloaded entries @@ -224,24 +234,24 @@ public: // This call is asynchronous, with the result returned in LeaderboardScoreUploaded_t // Details are extra game-defined information regarding how the user got that score // pScoreDetails points to an array of int32's, cScoreDetailsCount is the number of int32's in the list - CALL_RESULT( LeaderboardScoreUploaded_t ) + STEAM_CALL_RESULT( LeaderboardScoreUploaded_t ) virtual SteamAPICall_t UploadLeaderboardScore( SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32 *pScoreDetails, int cScoreDetailsCount ) = 0; // Attaches a piece of user generated content the user's entry on a leaderboard. // hContent is a handle to a piece of user generated content that was shared using ISteamUserRemoteStorage::FileShare(). // This call is asynchronous, with the result returned in LeaderboardUGCSet_t. - CALL_RESULT( LeaderboardUGCSet_t ) + STEAM_CALL_RESULT( LeaderboardUGCSet_t ) virtual SteamAPICall_t AttachLeaderboardUGC( SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC ) = 0; // Retrieves the number of players currently playing your game (online + offline) // This call is asynchronous, with the result returned in NumberOfCurrentPlayers_t - CALL_RESULT( NumberOfCurrentPlayers_t ) + STEAM_CALL_RESULT( NumberOfCurrentPlayers_t ) virtual SteamAPICall_t GetNumberOfCurrentPlayers() = 0; // Requests that Steam fetch data on the percentage of players who have received each achievement // for the game globally. // This call is asynchronous, with the result returned in GlobalAchievementPercentagesReady_t. - CALL_RESULT( GlobalAchievementPercentagesReady_t ) + STEAM_CALL_RESULT( GlobalAchievementPercentagesReady_t ) virtual SteamAPICall_t RequestGlobalAchievementPercentages() = 0; // Get the info on the most achieved achievement for the game, returns an iterator index you can use to fetch @@ -261,42 +271,43 @@ public: // This call is asynchronous, with the results returned in GlobalStatsReceived_t. // nHistoryDays specifies how many days of day-by-day history to retrieve in addition // to the overall totals. The limit is 60. - CALL_RESULT( GlobalStatsReceived_t ) + STEAM_CALL_RESULT( GlobalStatsReceived_t ) virtual SteamAPICall_t RequestGlobalStats( int nHistoryDays ) = 0; // Gets the lifetime totals for an aggregated stat + STEAM_FLAT_NAME( GetGlobalStatInt64 ) virtual bool GetGlobalStat( const char *pchStatName, int64 *pData ) = 0; + + STEAM_FLAT_NAME( GetGlobalStatDouble ) virtual bool GetGlobalStat( const char *pchStatName, double *pData ) = 0; // Gets history for an aggregated stat. pData will be filled with daily values, starting with today. // So when called, pData[0] will be today, pData[1] will be yesterday, and pData[2] will be two days ago, // etc. cubData is the size in bytes of the pubData buffer. Returns the number of // elements actually set. - virtual int32 GetGlobalStatHistory( const char *pchStatName, ARRAY_COUNT(cubData) int64 *pData, uint32 cubData ) = 0; - virtual int32 GetGlobalStatHistory( const char *pchStatName, ARRAY_COUNT(cubData) double *pData, uint32 cubData ) = 0; -#ifdef _PS3 - // Call to kick off installation of the PS3 trophies. This call is asynchronous, and the results will be returned in a PS3TrophiesInstalled_t - // callback. - virtual bool InstallPS3Trophies() = 0; + STEAM_FLAT_NAME( GetGlobalStatHistoryInt64 ) + virtual int32 GetGlobalStatHistory( const char *pchStatName, STEAM_ARRAY_COUNT(cubData) int64 *pData, uint32 cubData ) = 0; - // Returns the amount of space required at boot to install trophies. This value can be used when comparing the amount of space needed - // by the game to the available space value passed to the game at boot. The value is set during InstallPS3Trophies(). - virtual uint64 GetTrophySpaceRequiredBeforeInstall() = 0; + STEAM_FLAT_NAME( GetGlobalStatHistoryDouble ) + virtual int32 GetGlobalStatHistory( const char *pchStatName, STEAM_ARRAY_COUNT(cubData) double *pData, uint32 cubData ) = 0; - // On PS3, user stats & achievement progress through Steam must be stored with the user's saved game data. - // At startup, before calling RequestCurrentStats(), you must pass the user's stats data to Steam via this method. - // If you do not have any user data, call this function with pvData = NULL and cubData = 0 - virtual bool SetUserStatsData( const void *pvData, uint32 cubData ) = 0; + // For achievements that have related Progress stats, use this to query what the bounds of that progress are. + // You may want this info to selectively call IndicateAchievementProgress when appropriate milestones of progress + // have been made, to show a progress notification to the user. + STEAM_FLAT_NAME( GetAchievementProgressLimitsInt32 ) + virtual bool GetAchievementProgressLimits( const char *pchName, int32 *pnMinProgress, int32 *pnMaxProgress ) = 0; + + STEAM_FLAT_NAME( GetAchievementProgressLimitsFloat ) + virtual bool GetAchievementProgressLimits( const char *pchName, float *pfMinProgress, float *pfMaxProgress ) = 0; - // Call to get the user's current stats data. You should retrieve this data after receiving successful UserStatsReceived_t & UserStatsStored_t - // callbacks, and store the data with the user's save game data. You can call this method with pvData = NULL and cubData = 0 to get the required - // buffer size. - virtual bool GetUserStatsData( void *pvData, uint32 cubData, uint32 *pcubWritten ) = 0; -#endif }; -#define STEAMUSERSTATS_INTERFACE_VERSION "STEAMUSERSTATS_INTERFACE_VERSION011" +#define STEAMUSERSTATS_INTERFACE_VERSION "STEAMUSERSTATS_INTERFACE_VERSION012" + +// Global interface accessor +inline ISteamUserStats *SteamUserStats(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamUserStats *, SteamUserStats, STEAMUSERSTATS_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -304,7 +315,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- diff --git a/lib/linux/include/steam/isteamutils.h b/lib/linux/include/steam/isteamutils.h index aaf839f..be5acb2 100644 --- a/lib/linux/include/steam/isteamutils.h +++ b/lib/linux/include/steam/isteamutils.h @@ -6,11 +6,8 @@ #ifndef ISTEAMUTILS_H #define ISTEAMUTILS_H -#ifdef _WIN32 -#pragma once -#endif -#include "isteamclient.h" +#include "steam_api_common.h" // Steam API call failure results @@ -41,12 +38,24 @@ enum EGamepadTextInputLineMode k_EGamepadTextInputLineModeMultipleLines = 1 }; +enum EFloatingGamepadTextInputMode +{ + k_EFloatingGamepadTextInputModeModeSingleLine = 0, // Enter dismisses the keyboard + k_EFloatingGamepadTextInputModeModeMultipleLines = 1, // User needs to explictly close the keyboard + k_EFloatingGamepadTextInputModeModeEmail = 2, // Keyboard layout is email, enter dismisses the keyboard + k_EFloatingGamepadTextInputModeModeNumeric = 3, // Keyboard layout is numeric, enter dismisses the keyboard + +}; + +// The context where text filtering is being done +enum ETextFilteringContext +{ + k_ETextFilteringContextUnknown = 0, // Unknown context + k_ETextFilteringContextGameContent = 1, // Game content, only legally required filtering is performed + k_ETextFilteringContextChat = 2, // Chat from another player + k_ETextFilteringContextName = 3, // Character or item name +}; -// function prototype for warning message hook -#if defined( POSIX ) -#define __cdecl -#endif -extern "C" typedef void (__cdecl *SteamAPIWarningMessageHook_t)(int, const char *); //----------------------------------------------------------------------------- // Purpose: interface to user independent utility functions @@ -76,8 +85,8 @@ public: // the destination buffer size should be 4 * height * width * sizeof(char) virtual bool GetImageRGBA( int iImage, uint8 *pubDest, int nDestBufferSize ) = 0; - // returns the IP of the reporting server for valve - currently only used in Source engine games - virtual bool GetCSERIPPort( uint32 *unIP, uint16 *usPort ) = 0; + // Deprecated. Do not call this. + STEAM_PRIVATE_API( virtual bool GetCSERIPPort( uint32 *unIP, uint16 *usPort ) = 0; ) // return the amount of battery power left in the current system in % [0..100], 255 for being on AC power virtual uint8 GetCurrentBatteryPower() = 0; @@ -133,10 +142,10 @@ public: // k_ECheckFileSignatureFileNotFound - The file does not exist on disk. // k_ECheckFileSignatureInvalidSignature - The file exists, and the signing tab has been set for this file, but the file is either not signed or the signature does not match. // k_ECheckFileSignatureValidSignature - The file is signed and the signature is valid. - CALL_RESULT( CheckFileSignature_t ) + STEAM_CALL_RESULT( CheckFileSignature_t ) virtual SteamAPICall_t CheckFileSignature( const char *szFileName ) = 0; - // Activates the Big Picture text input dialog which only supports gamepad input + // Activates the full-screen text input dialog which takes a initial text string and returns the text the user has typed virtual bool ShowGamepadTextInput( EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char *pchDescription, uint32 unCharMax, const char *pchExistingText ) = 0; // Returns previously entered text & length @@ -159,10 +168,67 @@ public: // ask SteamUI to create and render its OpenVR dashboard virtual void StartVRDashboard() = 0; + + // Returns true if the HMD content will be streamed via Steam Remote Play + virtual bool IsVRHeadsetStreamingEnabled() = 0; + + // Set whether the HMD content will be streamed via Steam Remote Play + // If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + // If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + // The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + // (this is useful for games that have asymmetric multiplayer gameplay) + virtual void SetVRHeadsetStreamingEnabled( bool bEnabled ) = 0; + + // Returns whether this steam client is a Steam China specific client, vs the global client. + virtual bool IsSteamChinaLauncher() = 0; + + // Initializes text filtering, loading dictionaries for the language the game is running in. + // unFilterOptions are reserved for future use and should be set to 0 + // Returns false if filtering is unavailable for the game's language, in which case FilterText() will act as a passthrough. + // + // Users can customize the text filter behavior in their Steam Account preferences: + // https://store.steampowered.com/account/preferences#CommunityContentPreferences + virtual bool InitFilterText( uint32 unFilterOptions = 0 ) = 0; + + // Filters the provided input message and places the filtered result into pchOutFilteredText, using legally required filtering and additional filtering based on the context and user settings + // eContext is the type of content in the input string + // sourceSteamID is the Steam ID that is the source of the input string (e.g. the player with the name, or who said the chat text) + // pchInputText is the input string that should be filtered, which can be ASCII or UTF-8 + // pchOutFilteredText is where the output will be placed, even if no filtering is performed + // nByteSizeOutFilteredText is the size (in bytes) of pchOutFilteredText, should be at least strlen(pchInputText)+1 + // Returns the number of characters (not bytes) filtered + virtual int FilterText( ETextFilteringContext eContext, CSteamID sourceSteamID, const char *pchInputMessage, char *pchOutFilteredText, uint32 nByteSizeOutFilteredText ) = 0; + + // Return what we believe your current ipv6 connectivity to "the internet" is on the specified protocol. + // This does NOT tell you if the Steam client is currently connected to Steam via ipv6. + virtual ESteamIPv6ConnectivityState GetIPv6ConnectivityState( ESteamIPv6ConnectivityProtocol eProtocol ) = 0; + + // returns true if currently running on the Steam Deck device + virtual bool IsSteamRunningOnSteamDeck() = 0; + + // Opens a floating keyboard over the game content and sends OS keyboard keys directly to the game. + // The text field position is specified in pixels relative the origin of the game window and is used to position the floating keyboard in a way that doesn't cover the text field + virtual bool ShowFloatingGamepadTextInput( EFloatingGamepadTextInputMode eKeyboardMode, int nTextFieldXPosition, int nTextFieldYPosition, int nTextFieldWidth, int nTextFieldHeight ) = 0; + + // In game launchers that don't have controller support you can call this to have Steam Input translate the controller input into mouse/kb to navigate the launcher + virtual void SetGameLauncherMode( bool bLauncherMode ) = 0; + + // Dismisses the floating keyboard. + virtual bool DismissFloatingGamepadTextInput() = 0; + + // Dismisses the full-screen text input dialog. + virtual bool DismissGamepadTextInput() = 0; }; -#define STEAMUTILS_INTERFACE_VERSION "SteamUtils008" +#define STEAMUTILS_INTERFACE_VERSION "SteamUtils010" +// Global interface accessor +inline ISteamUtils *SteamUtils(); +STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamUtils *, SteamUtils, SteamInternal_FindOrCreateUserInterface( 0, STEAMUTILS_INTERFACE_VERSION ), "user", STEAMUTILS_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamUtils *SteamGameServerUtils(); +STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamUtils *, SteamGameServerUtils, SteamInternal_FindOrCreateGameServerInterface( 0, STEAMUTILS_INTERFACE_VERSION ), "gameserver", STEAMUTILS_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -170,7 +236,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- @@ -183,7 +249,7 @@ struct IPCountry_t //----------------------------------------------------------------------------- -// Purpose: Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute +// Purpose: Fired when running on a handheld PC or laptop with less than 10 minutes of battery is left, fires then every minute //----------------------------------------------------------------------------- struct LowBatteryPower_t { @@ -238,16 +304,39 @@ struct CheckFileSignature_t //----------------------------------------------------------------------------- -// Big Picture gamepad text input has been closed +// Full Screen gamepad text input has been closed //----------------------------------------------------------------------------- struct GamepadTextInputDismissed_t { enum { k_iCallback = k_iSteamUtilsCallbacks + 14 }; bool m_bSubmitted; // true if user entered & accepted text (Call ISteamUtils::GetEnteredGamepadTextInput() for text), false if canceled input uint32 m_unSubmittedText; + AppId_t m_unAppID; }; -// k_iSteamUtilsCallbacks + 15 is taken +// k_iSteamUtilsCallbacks + 15 through 35 are taken + +STEAM_CALLBACK_BEGIN( AppResumingFromSuspend_t, k_iSteamUtilsCallbacks + 36 ) +STEAM_CALLBACK_END(0) + +// k_iSteamUtilsCallbacks + 37 is taken + +//----------------------------------------------------------------------------- +// The floating on-screen keyboard has been closed +//----------------------------------------------------------------------------- +struct FloatingGamepadTextInputDismissed_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 38 }; +}; + +//----------------------------------------------------------------------------- +// The text filtering dictionary has changed +//----------------------------------------------------------------------------- +struct FilterTextDictionaryChanged_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 39 }; + int m_eLanguage; // One of ELanguage, or k_LegallyRequiredFiltering +}; #pragma pack( pop ) diff --git a/lib/linux/include/steam/isteamvideo.h b/lib/linux/include/steam/isteamvideo.h index 6893f0b..4832d7b 100644 --- a/lib/linux/include/steam/isteamvideo.h +++ b/lib/linux/include/steam/isteamvideo.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -18,7 +18,7 @@ #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif @@ -36,22 +36,30 @@ public: // returns true if user is uploading a live broadcast virtual bool IsBroadcasting( int *pnNumViewers ) = 0; + + // Get the OPF Details for 360 Video Playback + STEAM_CALL_BACK( GetOPFSettingsResult_t ) + virtual void GetOPFSettings( AppId_t unVideoAppID ) = 0; + virtual bool GetOPFStringForApp( AppId_t unVideoAppID, char *pchBuffer, int32 *pnBufferSize ) = 0; }; -#define STEAMVIDEO_INTERFACE_VERSION "STEAMVIDEO_INTERFACE_V001" +#define STEAMVIDEO_INTERFACE_VERSION "STEAMVIDEO_INTERFACE_V002" -DEFINE_CALLBACK( BroadcastUploadStart_t, k_iClientVideoCallbacks + 4 ) -END_DEFINE_CALLBACK_0() +// Global interface accessor +inline ISteamVideo *SteamVideo(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamVideo *, SteamVideo, STEAMVIDEO_INTERFACE_VERSION ); -DEFINE_CALLBACK( BroadcastUploadStop_t, k_iClientVideoCallbacks + 5 ) - CALLBACK_MEMBER( 0, EBroadcastUploadResult, m_eResult ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( GetVideoURLResult_t, k_iSteamVideoCallbacks + 11 ) + STEAM_CALLBACK_MEMBER( 0, EResult, m_eResult ) + STEAM_CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID ) + STEAM_CALLBACK_MEMBER( 2, char, m_rgchURL[256] ) +STEAM_CALLBACK_END(3) -DEFINE_CALLBACK( GetVideoURLResult_t, k_iClientVideoCallbacks + 11 ) - CALLBACK_MEMBER( 0, EResult, m_eResult ) - CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID ) - CALLBACK_MEMBER( 2, char, m_rgchURL[256] ) -END_DEFINE_CALLBACK_1() + +STEAM_CALLBACK_BEGIN( GetOPFSettingsResult_t, k_iSteamVideoCallbacks + 24 ) + STEAM_CALLBACK_MEMBER( 0, EResult, m_eResult ) + STEAM_CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID ) +STEAM_CALLBACK_END(2) #pragma pack( pop ) diff --git a/lib/linux/include/steam/matchmakingtypes.h b/lib/linux/include/steam/matchmakingtypes.h index e52cfc6..791802a 100644 --- a/lib/linux/include/steam/matchmakingtypes.h +++ b/lib/linux/include/steam/matchmakingtypes.h @@ -8,16 +8,6 @@ #ifndef MATCHMAKINGTYPES_H #define MATCHMAKINGTYPES_H -#ifdef _WIN32 -#pragma once -#endif - -#ifdef POSIX -#ifndef _snprintf -#define _snprintf snprintf -#endif -#endif - #include <stdio.h> #include <string.h> @@ -68,9 +58,6 @@ public: servernetadr_t() : m_usConnectionPort( 0 ), m_usQueryPort( 0 ), m_unIP( 0 ) {} void Init( unsigned int ip, uint16 usQueryPort, uint16 usConnectionPort ); -#ifdef NETADR_H - netadr_t GetIPAndQueryPort(); -#endif // Access the query port. uint16 GetQueryPort() const; @@ -82,7 +69,7 @@ public: // Access the IP uint32 GetIP() const; - void SetIP( uint32 ); + void SetIP( uint32 unIP ); // This gets the 'a.b.c.d:port' string with the connection port (instead of the query port). const char *GetConnectionAddressString() const; @@ -113,13 +100,6 @@ inline void servernetadr_t::Init( unsigned int ip, uint16 usQueryPort, uint16 us m_usConnectionPort = usConnectionPort; } -#ifdef NETADR_H -inline netadr_t servernetadr_t::GetIPAndQueryPort() -{ - return netadr_t( m_unIP, m_usQueryPort ); -} -#endif - inline uint16 servernetadr_t::GetQueryPort() const { return m_usQueryPort; @@ -156,9 +136,9 @@ inline const char *servernetadr_t::ToString( uint32 unIP, uint16 usPort ) const static int nBuf = 0; unsigned char *ipByte = (unsigned char *)&unIP; #ifdef VALVE_BIG_ENDIAN - _snprintf (s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[0]), (int)(ipByte[1]), (int)(ipByte[2]), (int)(ipByte[3]), usPort ); + snprintf(s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[0]), (int)(ipByte[1]), (int)(ipByte[2]), (int)(ipByte[3]), usPort ); #else - _snprintf (s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[3]), (int)(ipByte[2]), (int)(ipByte[1]), (int)(ipByte[0]), usPort ); + snprintf(s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[3]), (int)(ipByte[2]), (int)(ipByte[1]), (int)(ipByte[0]), usPort ); #endif const char *pchRet = s[nBuf]; ++nBuf; diff --git a/lib/linux/include/steam/steam_api.h b/lib/linux/include/steam/steam_api.h index e3a31ae..55d90e4 100644 --- a/lib/linux/include/steam/steam_api.h +++ b/lib/linux/include/steam/steam_api.h @@ -1,6 +1,13 @@ -//====== Copyright 1996-2008, Valve Corporation, All rights reserved. ======= +//====== Copyright Valve Corporation, All rights reserved. ==================== // -// Purpose: +// This header includes *all* of the interfaces and callback structures +// in the Steamworks SDK, and some high level functions to control the SDK +// (init, shutdown, etc) that you probably only need in one or two files. +// +// To save your compile times, we recommend that you not include this file +// in header files. Instead, include the specific headers for the interfaces +// and callback structures you need. The one file you might consider including +// in your precompiled header (e.g. stdafx.h) is steam_api_common.h // //============================================================================= @@ -10,6 +17,10 @@ #pragma once #endif +// Basic stuff +#include "steam_api_common.h" + +// All of the interfaces #include "isteamclient.h" #include "isteamuser.h" #include "isteamfriends.h" @@ -23,38 +34,19 @@ #include "isteammusic.h" #include "isteammusicremote.h" #include "isteamhttp.h" -#include "isteamunifiedmessages.h" #include "isteamcontroller.h" #include "isteamugc.h" -#include "isteamapplist.h" #include "isteamhtmlsurface.h" #include "isteaminventory.h" #include "isteamvideo.h" +#include "isteamparentalsettings.h" +#include "isteaminput.h" +#include "isteamremoteplay.h" +#include "isteamnetworkingmessages.h" +#include "isteamnetworkingsockets.h" +#include "isteamnetworkingutils.h" -// Steam API export macro -#if defined( _WIN32 ) && !defined( _X360 ) - #if defined( STEAM_API_EXPORTS ) - #define S_API extern "C" __declspec( dllexport ) - #elif defined( STEAM_API_NODLL ) - #define S_API extern "C" - #else - #define S_API extern "C" __declspec( dllimport ) - #endif // STEAM_API_EXPORTS -#elif defined( GNUC ) - #if defined( STEAM_API_EXPORTS ) - #define S_API extern "C" __attribute__ ((visibility("default"))) - #else - #define S_API extern "C" - #endif // STEAM_API_EXPORTS -#else // !WIN32 - #if defined( STEAM_API_EXPORTS ) - #define S_API extern "C" - #else - #define S_API extern "C" - #endif // STEAM_API_EXPORTS -#endif - //----------------------------------------------------------------------------------------------------------------------------------------------------------// // Steam API setup & shutdown // @@ -62,10 +54,54 @@ // //----------------------------------------------------------------------------------------------------------------------------------------------------------// +enum ESteamAPIInitResult +{ + k_ESteamAPIInitResult_OK = 0, + k_ESteamAPIInitResult_FailedGeneric = 1, // Some other failure + k_ESteamAPIInitResult_NoSteamClient = 2, // We cannot connect to Steam, steam probably isn't running + k_ESteamAPIInitResult_VersionMismatch = 3, // Steam client appears to be out of date +}; -// SteamAPI_Init must be called before using any other API functions. If it fails, an -// error message will be output to the debugger (or stderr) with further information. -S_API bool S_CALLTYPE SteamAPI_Init(); +// Initializing the Steamworks SDK +// ----------------------------- +// +// There are three different methods you can use to initialize the Steamworks SDK, depending on +// your project's environment. You should only use one method in your project. +// +// If you are able to include this C++ header in your project, we recommend using the following +// initialization methods. They will ensure that all ISteam* interfaces defined in other +// C++ header files have versions that are supported by the user's Steam Client: +// - SteamAPI_InitEx() for new projects so you can show a detailed error message to the user +// - SteamAPI_Init() for existing projects that only display a generic error message +// +// If you are unable to include this C++ header in your project and are dynamically loading +// Steamworks SDK methods from dll/so, you can use the following method: +// - SteamAPI_InitFlat() + + +// See "Initializing the Steamworks SDK" above for how to choose an init method. +// On success k_ESteamAPIInitResult_OK is returned. Otherwise, returns a value that can be used +// to create a localized error message for the user. If pOutErrMsg is non-NULL, +// it will receive an example error message, in English, that explains the reason for the failure. +// +// Example usage: +// +// SteamErrMsg errMsg; +// if ( SteamAPI_Init(&errMsg) != k_ESteamAPIInitResult_OK ) +// FatalError( "Failed to init Steam. %s", errMsg ); +inline ESteamAPIInitResult SteamAPI_InitEx( SteamErrMsg *pOutErrMsg ); + +// See "Initializing the Steamworks SDK" above for how to choose an init method. +// Returns true on success +inline bool SteamAPI_Init() +{ + return SteamAPI_InitEx( NULL ) == k_ESteamAPIInitResult_OK; +} + +// See "Initializing the Steamworks SDK" above for how to choose an init method. +// Same usage as SteamAPI_InitEx(), however does not verify ISteam* interfaces are +// supported by the user's client and is exported from the dll +S_API ESteamAPIInitResult S_CALLTYPE SteamAPI_InitFlat( SteamErrMsg *pOutErrMsg ); // SteamAPI_Shutdown should be called during process shutdown if possible. S_API void S_CALLTYPE SteamAPI_Shutdown(); @@ -93,263 +129,6 @@ S_API void S_CALLTYPE SteamAPI_ReleaseCurrentThreadMemory(); S_API void S_CALLTYPE SteamAPI_WriteMiniDump( uint32 uStructuredExceptionCode, void* pvExceptionInfo, uint32 uBuildID ); S_API void S_CALLTYPE SteamAPI_SetMiniDumpComment( const char *pchMsg ); - -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -// Global accessors for Steamworks C++ APIs. See individual isteam*.h files for details. -// You should not cache the results of these accessors or pass the result pointers across -// modules! Different modules may be compiled against different SDK header versions, and -// the interface pointers could therefore be different across modules. Every line of code -// which calls into a Steamworks API should retrieve the interface from a global accessor. -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -#if !defined( STEAM_API_EXPORTS ) -inline ISteamClient *SteamClient(); -inline ISteamUser *SteamUser(); -inline ISteamFriends *SteamFriends(); -inline ISteamUtils *SteamUtils(); -inline ISteamMatchmaking *SteamMatchmaking(); -inline ISteamUserStats *SteamUserStats(); -inline ISteamApps *SteamApps(); -inline ISteamNetworking *SteamNetworking(); -inline ISteamMatchmakingServers *SteamMatchmakingServers(); -inline ISteamRemoteStorage *SteamRemoteStorage(); -inline ISteamScreenshots *SteamScreenshots(); -inline ISteamHTTP *SteamHTTP(); -inline ISteamUnifiedMessages *SteamUnifiedMessages(); -inline ISteamController *SteamController(); -inline ISteamUGC *SteamUGC(); -inline ISteamAppList *SteamAppList(); -inline ISteamMusic *SteamMusic(); -inline ISteamMusicRemote *SteamMusicRemote(); -inline ISteamHTMLSurface *SteamHTMLSurface(); -inline ISteamInventory *SteamInventory(); -inline ISteamVideo *SteamVideo(); -#endif // VERSION_SAFE_STEAM_API_INTERFACES - - -// CSteamAPIContext encapsulates the Steamworks API global accessors into -// a single object. This is DEPRECATED and only remains for compatibility. -class CSteamAPIContext -{ -public: - // DEPRECATED - there is no benefit to using this over the global accessors - CSteamAPIContext() { Clear(); } - void Clear(); - bool Init(); - ISteamClient* SteamClient() const { return m_pSteamClient; } - ISteamUser* SteamUser() const { return m_pSteamUser; } - ISteamFriends* SteamFriends() const { return m_pSteamFriends; } - ISteamUtils* SteamUtils() const { return m_pSteamUtils; } - ISteamMatchmaking* SteamMatchmaking() const { return m_pSteamMatchmaking; } - ISteamUserStats* SteamUserStats() const { return m_pSteamUserStats; } - ISteamApps* SteamApps() const { return m_pSteamApps; } - ISteamMatchmakingServers* SteamMatchmakingServers() const { return m_pSteamMatchmakingServers; } - ISteamNetworking* SteamNetworking() const { return m_pSteamNetworking; } - ISteamRemoteStorage* SteamRemoteStorage() const { return m_pSteamRemoteStorage; } - ISteamScreenshots* SteamScreenshots() const { return m_pSteamScreenshots; } - ISteamHTTP* SteamHTTP() const { return m_pSteamHTTP; } - ISteamUnifiedMessages* SteamUnifiedMessages() const { return m_pSteamUnifiedMessages; } - ISteamController* SteamController() const { return m_pController; } - ISteamUGC* SteamUGC() const { return m_pSteamUGC; } - ISteamAppList* SteamAppList() const { return m_pSteamAppList; } - ISteamMusic* SteamMusic() const { return m_pSteamMusic; } - ISteamMusicRemote* SteamMusicRemote() const { return m_pSteamMusicRemote; } - ISteamHTMLSurface* SteamHTMLSurface() const { return m_pSteamHTMLSurface; } - ISteamInventory* SteamInventory() const { return m_pSteamInventory; } - ISteamVideo* SteamVideo() const { return m_pSteamVideo; } - // DEPRECATED - there is no benefit to using this over the global accessors -private: - ISteamClient *m_pSteamClient; - ISteamUser *m_pSteamUser; - ISteamFriends *m_pSteamFriends; - ISteamUtils *m_pSteamUtils; - ISteamMatchmaking *m_pSteamMatchmaking; - ISteamUserStats *m_pSteamUserStats; - ISteamApps *m_pSteamApps; - ISteamMatchmakingServers *m_pSteamMatchmakingServers; - ISteamNetworking *m_pSteamNetworking; - ISteamRemoteStorage *m_pSteamRemoteStorage; - ISteamScreenshots *m_pSteamScreenshots; - ISteamHTTP *m_pSteamHTTP; - ISteamUnifiedMessages *m_pSteamUnifiedMessages; - ISteamController *m_pController; - ISteamUGC *m_pSteamUGC; - ISteamAppList *m_pSteamAppList; - ISteamMusic *m_pSteamMusic; - ISteamMusicRemote *m_pSteamMusicRemote; - ISteamHTMLSurface *m_pSteamHTMLSurface; - ISteamInventory *m_pSteamInventory; - ISteamVideo *m_pSteamVideo; -}; - - -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -// steam callback and call-result helpers -// -// The following macros and classes are used to register your application for -// callbacks and call-results, which are delivered in a predictable manner. -// -// STEAM_CALLBACK macros are meant for use inside of a C++ class definition. -// They map a Steam notification callback directly to a class member function -// which is automatically prototyped as "void func( callback_type *pParam )". -// -// CCallResult is used with specific Steam APIs that return "result handles". -// The handle can be passed to a CCallResult object's Set function, along with -// an object pointer and member-function pointer. The member function will -// be executed once the results of the Steam API call are available. -// -// CCallback and CCallbackManual classes can be used instead of STEAM_CALLBACK -// macros if you require finer control over registration and unregistration. -// -// Callbacks and call-results are queued automatically and are only -// delivered/executed when your application calls SteamAPI_RunCallbacks(). -//----------------------------------------------------------------------------------------------------------------------------------------------------------// - -// SteamAPI_RunCallbacks is safe to call from multiple threads simultaneously, -// but if you choose to do this, callback code could be executed on any thread. -// One alternative is to call SteamAPI_RunCallbacks from the main thread only, -// and call SteamAPI_ReleaseCurrentThreadMemory regularly on other threads. -S_API void S_CALLTYPE SteamAPI_RunCallbacks(); - - -// Declares a callback member function plus a helper member variable which -// registers the callback on object creation and unregisters on destruction. -// The optional fourth 'var' param exists only for backwards-compatibility -// and can be ignored. -#define STEAM_CALLBACK( thisclass, func, .../*callback_type, [deprecated] var*/ ) \ - _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, 4, 3 ), ( /**/, thisclass, func, __VA_ARGS__ ) ) - -// Declares a callback function and a named CCallbackManual variable which -// has Register and Unregister functions instead of automatic registration. -#define STEAM_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ - CCallbackManual< thisclass, callback_type > var; void func( callback_type *pParam ) - - -// Internal functions used by the utility CCallback objects to receive callbacks -S_API void S_CALLTYPE SteamAPI_RegisterCallback( class CCallbackBase *pCallback, int iCallback ); -S_API void S_CALLTYPE SteamAPI_UnregisterCallback( class CCallbackBase *pCallback ); -// Internal functions used by the utility CCallResult objects to receive async call results -S_API void S_CALLTYPE SteamAPI_RegisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); -S_API void S_CALLTYPE SteamAPI_UnregisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); - - -//----------------------------------------------------------------------------- -// Purpose: base for callbacks and call results - internal implementation detail -//----------------------------------------------------------------------------- -class CCallbackBase -{ -public: - CCallbackBase() { m_nCallbackFlags = 0; m_iCallback = 0; } - // don't add a virtual destructor because we export this binary interface across dll's - virtual void Run( void *pvParam ) = 0; - virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ) = 0; - int GetICallback() { return m_iCallback; } - virtual int GetCallbackSizeBytes() = 0; - -protected: - enum { k_ECallbackFlagsRegistered = 0x01, k_ECallbackFlagsGameServer = 0x02 }; - uint8 m_nCallbackFlags; - int m_iCallback; - friend class CCallbackMgr; - -private: - CCallbackBase( const CCallbackBase& ); - CCallbackBase& operator=( const CCallbackBase& ); -}; - -//----------------------------------------------------------------------------- -// Purpose: templated base for callbacks - internal implementation detail -//----------------------------------------------------------------------------- -template< int sizeof_P > -class CCallbackImpl : protected CCallbackBase -{ -public: - ~CCallbackImpl() { if ( m_nCallbackFlags & k_ECallbackFlagsRegistered ) SteamAPI_UnregisterCallback( this ); } - void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } - -protected: - virtual void Run( void *pvParam ) = 0; - virtual void Run( void *pvParam, bool /*bIOFailure*/, SteamAPICall_t /*hSteamAPICall*/ ) { Run( pvParam ); } - virtual int GetCallbackSizeBytes() { return sizeof_P; } -}; - - -//----------------------------------------------------------------------------- -// Purpose: maps a steam async call result to a class member function -// template params: T = local class, P = parameter struct -//----------------------------------------------------------------------------- -template< class T, class P > -class CCallResult : private CCallbackBase -{ -public: - typedef void (T::*func_t)( P*, bool ); - - CCallResult(); - ~CCallResult(); - - void Set( SteamAPICall_t hAPICall, T *p, func_t func ); - bool IsActive() const; - void Cancel(); - - void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } -private: - virtual void Run( void *pvParam ); - virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ); - virtual int GetCallbackSizeBytes() { return sizeof( P ); } - - SteamAPICall_t m_hAPICall; - T *m_pObj; - func_t m_Func; -}; - - - -//----------------------------------------------------------------------------- -// Purpose: maps a steam callback to a class member function -// template params: T = local class, P = parameter struct, -// bGameserver = listen for gameserver callbacks instead of client callbacks -//----------------------------------------------------------------------------- -template< class T, class P, bool bGameserver = false > -class CCallback : public CCallbackImpl< sizeof( P ) > -{ -public: - typedef void (T::*func_t)(P*); - - // NOTE: If you can't provide the correct parameters at construction time, you should - // use the CCallbackManual callback object (STEAM_CALLBACK_MANUAL macro) instead. - CCallback( T *pObj, func_t func ); - - void Register( T *pObj, func_t func ); - void Unregister(); - -protected: - virtual void Run( void *pvParam ); - - T *m_pObj; - func_t m_Func; -}; - - -//----------------------------------------------------------------------------- -// Purpose: subclass of CCallback which allows default-construction in -// an unregistered state; you must call Register manually -//----------------------------------------------------------------------------- -template< class T, class P, bool bGameServer = false > -class CCallbackManual : public CCallback< T, P, bGameServer > -{ -public: - CCallbackManual() : CCallback< T, P, bGameServer >( NULL, NULL ) {} - - // Inherits public Register and Unregister functions from base class -}; - - - -#ifdef _WIN32 -// disable this warning; this pattern need for steam callback registration -#pragma warning( disable: 4355 ) // 'this' : used in base member initializer list -#endif - - //----------------------------------------------------------------------------------------------------------------------------------------------------------// // steamclient.dll private wrapper functions // @@ -359,36 +138,237 @@ public: // SteamAPI_IsSteamRunning() returns true if Steam is currently running S_API bool S_CALLTYPE SteamAPI_IsSteamRunning(); -// Pumps out all the steam messages, calling registered callbacks. -// NOT THREADSAFE - do not call from multiple threads simultaneously. -S_API void Steam_RunCallbacks( HSteamPipe hSteamPipe, bool bGameServerCallbacks ); - -// register the callback funcs to use to interact with the steam dll -S_API void Steam_RegisterInterfaceFuncs( void *hModule ); - -// returns the HSteamUser of the last user to dispatch a callback -S_API HSteamUser Steam_GetHSteamUserCurrent(); - // returns the filename path of the current running Steam process, used if you need to load an explicit steam dll by name. // DEPRECATED - implementation is Windows only, and the path returned is a UTF-8 string which must be converted to UTF-16 for use with Win32 APIs S_API const char *SteamAPI_GetSteamInstallPath(); -// returns the pipe we are communicating to Steam with -S_API HSteamPipe SteamAPI_GetHSteamPipe(); - // sets whether or not Steam_RunCallbacks() should do a try {} catch (...) {} around calls to issuing callbacks +// This is ignored if you are using the manual callback dispatch method S_API void SteamAPI_SetTryCatchCallbacks( bool bTryCatchCallbacks ); -// backwards compat export, passes through to SteamAPI_ variants -S_API HSteamPipe GetHSteamPipe(); -S_API HSteamUser GetHSteamUser(); - - #if defined( VERSION_SAFE_STEAM_API_INTERFACES ) // exists only for backwards compat with code written against older SDKs S_API bool S_CALLTYPE SteamAPI_InitSafe(); #endif -#include "steam_api_internal.h" +#if defined(USE_BREAKPAD_HANDLER) || defined(STEAM_API_EXPORTS) +// this should be called before the game initialized the steam APIs +// pchDate should be of the format "Mmm dd yyyy" (such as from the __ DATE __ macro ) +// pchTime should be of the format "hh:mm:ss" (such as from the __ TIME __ macro ) +// bFullMemoryDumps (Win32 only) -- writes out a uuid-full.dmp in the client/dumps folder +// pvContext-- can be NULL, will be the void * context passed into m_pfnPreMinidumpCallback +// PFNPreMinidumpCallback m_pfnPreMinidumpCallback -- optional callback which occurs just before a .dmp file is written during a crash. Applications can hook this to allow adding additional information into the .dmp comment stream. +S_API void S_CALLTYPE SteamAPI_UseBreakpadCrashHandler( char const *pchVersion, char const *pchDate, char const *pchTime, bool bFullMemoryDumps, void *pvContext, PFNPreMinidumpCallback m_pfnPreMinidumpCallback ); +S_API void S_CALLTYPE SteamAPI_SetBreakpadAppID( uint32 unAppID ); +#endif + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// +// Manual callback loop +// +// An alternative method for dispatching callbacks. Similar to a windows message loop. +// +// If you use the manual callback dispatch, you must NOT use: +// +// - SteamAPI_RunCallbacks or SteamGameServer_RunCallbacks +// - STEAM_CALLBACK, CCallResult, CCallback, or CCallbackManual +// +// Here is the basic template for replacing SteamAPI_RunCallbacks() with manual dispatch +/* + + HSteamPipe hSteamPipe = SteamAPI_GetHSteamPipe(); // See also SteamGameServer_GetHSteamPipe() + SteamAPI_ManualDispatch_RunFrame( hSteamPipe ) + CallbackMsg_t callback; + while ( SteamAPI_ManualDispatch_GetNextCallback( hSteamPipe, &callback ) ) + { + // Check for dispatching API call results + if ( callback.m_iCallback == SteamAPICallCompleted_t::k_iCallback ) + { + SteamAPICallCompleted_t *pCallCompleted = (SteamAPICallCompleted_t *)callback. + void *pTmpCallResult = malloc( pCallback->m_cubParam ); + bool bFailed; + if ( SteamAPI_ManualDispatch_GetAPICallResult( hSteamPipe, pCallCompleted->m_hAsyncCall, pTmpCallResult, pCallback->m_cubParam, pCallback->m_iCallback, &bFailed ) ) + { + // Dispatch the call result to the registered handler(s) for the + // call identified by pCallCompleted->m_hAsyncCall + } + free( pTmpCallResult ); + } + else + { + // Look at callback.m_iCallback to see what kind of callback it is, + // and dispatch to appropriate handler(s) + } + SteamAPI_ManualDispatch_FreeLastCallback( hSteamPipe ); + } + +*/ +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +/// Inform the API that you wish to use manual event dispatch. This must be called after SteamAPI_Init, but before +/// you use any of the other manual dispatch functions below. +S_API void S_CALLTYPE SteamAPI_ManualDispatch_Init(); + +/// Perform certain periodic actions that need to be performed. +S_API void S_CALLTYPE SteamAPI_ManualDispatch_RunFrame( HSteamPipe hSteamPipe ); + +/// Fetch the next pending callback on the given pipe, if any. If a callback is available, true is returned +/// and the structure is populated. In this case, you MUST call SteamAPI_ManualDispatch_FreeLastCallback +/// (after dispatching the callback) before calling SteamAPI_ManualDispatch_GetNextCallback again. +S_API bool S_CALLTYPE SteamAPI_ManualDispatch_GetNextCallback( HSteamPipe hSteamPipe, CallbackMsg_t *pCallbackMsg ); + +/// You must call this after dispatching the callback, if SteamAPI_ManualDispatch_GetNextCallback returns true. +S_API void S_CALLTYPE SteamAPI_ManualDispatch_FreeLastCallback( HSteamPipe hSteamPipe ); + +/// Return the call result for the specified call on the specified pipe. You really should +/// only call this in a handler for SteamAPICallCompleted_t callback. +S_API bool S_CALLTYPE SteamAPI_ManualDispatch_GetAPICallResult( HSteamPipe hSteamPipe, SteamAPICall_t hSteamAPICall, void *pCallback, int cubCallback, int iCallbackExpected, bool *pbFailed ); + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// +// CSteamAPIContext +// +// Deprecated! This is not necessary any more. Please use the global accessors directly +// +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +#ifndef STEAM_API_EXPORTS + +inline bool CSteamAPIContext::Init() +{ + m_pSteamClient = ::SteamClient(); + if ( !m_pSteamClient ) + return false; + + m_pSteamUser = ::SteamUser(); + if ( !m_pSteamUser ) + return false; + + m_pSteamFriends = ::SteamFriends(); + if ( !m_pSteamFriends ) + return false; + + m_pSteamUtils = ::SteamUtils(); + if ( !m_pSteamUtils ) + return false; + + m_pSteamMatchmaking = ::SteamMatchmaking(); + if ( !m_pSteamMatchmaking ) + return false; + + m_pSteamGameSearch = ::SteamGameSearch(); + if ( !m_pSteamGameSearch ) + return false; + +#if !defined( IOSALL) // Not yet supported on iOS. + m_pSteamMatchmakingServers = ::SteamMatchmakingServers(); + if ( !m_pSteamMatchmakingServers ) + return false; +#endif + + m_pSteamUserStats = ::SteamUserStats(); + if ( !m_pSteamUserStats ) + return false; + + m_pSteamApps = ::SteamApps(); + if ( !m_pSteamApps ) + return false; + + m_pSteamNetworking = ::SteamNetworking(); + if ( !m_pSteamNetworking ) + return false; + + m_pSteamRemoteStorage = ::SteamRemoteStorage(); + if ( !m_pSteamRemoteStorage ) + return false; + + m_pSteamScreenshots = ::SteamScreenshots(); + if ( !m_pSteamScreenshots ) + return false; + + m_pSteamHTTP = ::SteamHTTP(); + if ( !m_pSteamHTTP ) + return false; + + m_pController = ::SteamController(); + if ( !m_pController ) + return false; + + m_pSteamUGC = ::SteamUGC(); + if ( !m_pSteamUGC ) + return false; + + m_pSteamMusic = ::SteamMusic(); + if ( !m_pSteamMusic ) + return false; + + m_pSteamMusicRemote = ::SteamMusicRemote(); + if ( !m_pSteamMusicRemote ) + return false; + +#if !defined( ANDROID ) && !defined( IOSALL) // Not yet supported on Android or ios. + m_pSteamHTMLSurface = ::SteamHTMLSurface(); + if ( !m_pSteamHTMLSurface ) + return false; +#endif + + m_pSteamInventory = ::SteamInventory(); + if ( !m_pSteamInventory ) + return false; + + m_pSteamVideo = ::SteamVideo(); + if ( !m_pSteamVideo ) + return false; + + m_pSteamParentalSettings = ::SteamParentalSettings(); + if ( !m_pSteamParentalSettings ) + return false; + + m_pSteamInput = ::SteamInput(); + if ( !m_pSteamInput ) + return false; + + return true; +} + +#endif + +// Internal implementation of SteamAPI_InitEx. This is done in a way that checks +// all of the versions of interfaces from headers being compiled into this code. +S_API ESteamAPIInitResult S_CALLTYPE SteamInternal_SteamAPI_Init( const char *pszInternalCheckInterfaceVersions, SteamErrMsg *pOutErrMsg ); +inline ESteamAPIInitResult SteamAPI_InitEx( SteamErrMsg *pOutErrMsg ) +{ + const char *pszInternalCheckInterfaceVersions = + STEAMUTILS_INTERFACE_VERSION "\0" + STEAMNETWORKINGUTILS_INTERFACE_VERSION "\0" + STEAMAPPS_INTERFACE_VERSION "\0" + STEAMCONTROLLER_INTERFACE_VERSION "\0" + STEAMFRIENDS_INTERFACE_VERSION "\0" + STEAMGAMESEARCH_INTERFACE_VERSION "\0" + STEAMHTMLSURFACE_INTERFACE_VERSION "\0" + STEAMHTTP_INTERFACE_VERSION "\0" + STEAMINPUT_INTERFACE_VERSION "\0" + STEAMINVENTORY_INTERFACE_VERSION "\0" + STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION "\0" + STEAMMATCHMAKING_INTERFACE_VERSION "\0" + STEAMMUSICREMOTE_INTERFACE_VERSION "\0" + STEAMMUSIC_INTERFACE_VERSION "\0" + STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "\0" + STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "\0" + STEAMNETWORKING_INTERFACE_VERSION "\0" + STEAMPARENTALSETTINGS_INTERFACE_VERSION "\0" + STEAMPARTIES_INTERFACE_VERSION "\0" + STEAMREMOTEPLAY_INTERFACE_VERSION "\0" + STEAMREMOTESTORAGE_INTERFACE_VERSION "\0" + STEAMSCREENSHOTS_INTERFACE_VERSION "\0" + STEAMUGC_INTERFACE_VERSION "\0" + STEAMUSERSTATS_INTERFACE_VERSION "\0" + STEAMUSER_INTERFACE_VERSION "\0" + STEAMVIDEO_INTERFACE_VERSION "\0" + + "\0"; + + return SteamInternal_SteamAPI_Init( pszInternalCheckInterfaceVersions, pOutErrMsg ); +} #endif // STEAM_API_H diff --git a/lib/linux/include/steam/steam_api.json b/lib/linux/include/steam/steam_api.json index 09adb0c..7acd8ff 100644 --- a/lib/linux/include/steam/steam_api.json +++ b/lib/linux/include/steam/steam_api.json @@ -1,7576 +1,14042 @@ -{"typedefs":[{"typedef": "uint8","type": "unsigned char"} -,{"typedef": "uint8","type": "unsigned char"} -,{"typedef": "int8","type": "signed char"} -,{"typedef": "int16","type": "short"} -,{"typedef": "uint16","type": "unsigned short"} -,{"typedef": "int32","type": "int"} -,{"typedef": "uint32","type": "unsigned int"} -,{"typedef": "int64","type": "long long"} -,{"typedef": "uint64","type": "unsigned long long"} -,{"typedef": "lint64","type": "int64"} -,{"typedef": "ulint64","type": "uint64"} -,{"typedef": "intp","type": "long long"} -,{"typedef": "uintp","type": "unsigned long long"} -,{"typedef": "Salt_t","type": "uint8 [8]"} -,{"typedef": "GID_t","type": "uint64"} -,{"typedef": "JobID_t","type": "uint64"} -,{"typedef": "TxnID_t","type": "GID_t"} -,{"typedef": "PackageId_t","type": "uint32"} -,{"typedef": "BundleId_t","type": "uint32"} -,{"typedef": "AppId_t","type": "uint32"} -,{"typedef": "AssetClassId_t","type": "uint64"} -,{"typedef": "PhysicalItemId_t","type": "uint32"} -,{"typedef": "DepotId_t","type": "uint32"} -,{"typedef": "RTime32","type": "uint32"} -,{"typedef": "CellID_t","type": "uint32"} -,{"typedef": "SteamAPICall_t","type": "uint64"} -,{"typedef": "AccountID_t","type": "uint32"} -,{"typedef": "PartnerId_t","type": "uint32"} -,{"typedef": "ManifestId_t","type": "uint64"} -,{"typedef": "HAuthTicket","type": "uint32"} -,{"typedef": "PFNLegacyKeyRegistration","type": "void (*)(const char *, const char *)"} -,{"typedef": "PFNLegacyKeyInstalled","type": "_Bool (*)(void)"} -,{"typedef": "PFNPreMinidumpCallback","type": "void (*)(void *)"} -,{"typedef": "BREAKPAD_HANDLE","type": "void *"} -,{"typedef": "ValvePackingSentinel_t","type": "struct ValvePackingSentinel_t"} -,{"typedef": "compile_time_assert_type","type": "char [1]"} -,{"typedef": "HSteamPipe","type": "int32"} -,{"typedef": "HSteamUser","type": "int32"} -,{"typedef": "SteamAPIWarningMessageHook_t","type": "void (*)(int, const char *) __attribute__((cdecl))"} -,{"typedef": "SteamAPI_CheckCallbackRegistered_t","type": "uint32 (*)(int)"} -,{"typedef": "FriendsGroupID_t","type": "int16"} -,{"typedef": "SteamAPIWarningMessageHook_t","type": "void (*)(int, const char *) __attribute__((cdecl))"} -,{"typedef": "HServerListRequest","type": "void *"} -,{"typedef": "HServerQuery","type": "int"} -,{"typedef": "UGCHandle_t","type": "uint64"} -,{"typedef": "PublishedFileUpdateHandle_t","type": "uint64"} -,{"typedef": "PublishedFileId_t","type": "uint64"} -,{"typedef": "UGCFileWriteStreamHandle_t","type": "uint64"} -,{"typedef": "compile_time_assert_type","type": "char [1]"} -,{"typedef": "SteamLeaderboard_t","type": "uint64"} -,{"typedef": "SteamLeaderboardEntries_t","type": "uint64"} -,{"typedef": "SNetSocket_t","type": "uint32"} -,{"typedef": "SNetListenSocket_t","type": "uint32"} -,{"typedef": "ScreenshotHandle","type": "uint32"} -,{"typedef": "PlaybackStatusHasChanged_t::SteamCallback_t","type": "struct PlaybackStatusHasChanged_t"} -,{"typedef": "VolumeHasChanged_t::SteamCallback_t","type": "struct VolumeHasChanged_t"} -,{"typedef": "MusicPlayerRemoteWillActivate_t::SteamCallback_t","type": "struct MusicPlayerRemoteWillActivate_t"} -,{"typedef": "MusicPlayerRemoteWillDeactivate_t::SteamCallback_t","type": "struct MusicPlayerRemoteWillDeactivate_t"} -,{"typedef": "MusicPlayerRemoteToFront_t::SteamCallback_t","type": "struct MusicPlayerRemoteToFront_t"} -,{"typedef": "MusicPlayerWillQuit_t::SteamCallback_t","type": "struct MusicPlayerWillQuit_t"} -,{"typedef": "MusicPlayerWantsPlay_t::SteamCallback_t","type": "struct MusicPlayerWantsPlay_t"} -,{"typedef": "MusicPlayerWantsPause_t::SteamCallback_t","type": "struct MusicPlayerWantsPause_t"} -,{"typedef": "MusicPlayerWantsPlayPrevious_t::SteamCallback_t","type": "struct MusicPlayerWantsPlayPrevious_t"} -,{"typedef": "MusicPlayerWantsPlayNext_t::SteamCallback_t","type": "struct MusicPlayerWantsPlayNext_t"} -,{"typedef": "MusicPlayerWantsShuffled_t::SteamCallback_t","type": "struct MusicPlayerWantsShuffled_t"} -,{"typedef": "MusicPlayerWantsLooped_t::SteamCallback_t","type": "struct MusicPlayerWantsLooped_t"} -,{"typedef": "MusicPlayerWantsVolume_t::SteamCallback_t","type": "struct MusicPlayerWantsVolume_t"} -,{"typedef": "MusicPlayerSelectsQueueEntry_t::SteamCallback_t","type": "struct MusicPlayerSelectsQueueEntry_t"} -,{"typedef": "MusicPlayerSelectsPlaylistEntry_t::SteamCallback_t","type": "struct MusicPlayerSelectsPlaylistEntry_t"} -,{"typedef": "MusicPlayerWantsPlayingRepeatStatus_t::SteamCallback_t","type": "struct MusicPlayerWantsPlayingRepeatStatus_t"} -,{"typedef": "HTTPRequestHandle","type": "uint32"} -,{"typedef": "HTTPCookieContainerHandle","type": "uint32"} -,{"typedef": "ClientUnifiedMessageHandle","type": "uint64"} -,{"typedef": "ControllerHandle_t","type": "uint64"} -,{"typedef": "ControllerActionSetHandle_t","type": "uint64"} -,{"typedef": "ControllerDigitalActionHandle_t","type": "uint64"} -,{"typedef": "ControllerAnalogActionHandle_t","type": "uint64"} -,{"typedef": "UGCQueryHandle_t","type": "uint64"} -,{"typedef": "UGCUpdateHandle_t","type": "uint64"} -,{"typedef": "SteamAppInstalled_t::SteamCallback_t","type": "struct SteamAppInstalled_t"} -,{"typedef": "SteamAppUninstalled_t::SteamCallback_t","type": "struct SteamAppUninstalled_t"} -,{"typedef": "HHTMLBrowser","type": "uint32"} -,{"typedef": "HTML_BrowserReady_t::SteamCallback_t","type": "struct HTML_BrowserReady_t"} -,{"typedef": "HTML_NeedsPaint_t::SteamCallback_t","type": "struct HTML_NeedsPaint_t"} -,{"typedef": "HTML_StartRequest_t::SteamCallback_t","type": "struct HTML_StartRequest_t"} -,{"typedef": "HTML_CloseBrowser_t::SteamCallback_t","type": "struct HTML_CloseBrowser_t"} -,{"typedef": "HTML_URLChanged_t::SteamCallback_t","type": "struct HTML_URLChanged_t"} -,{"typedef": "HTML_FinishedRequest_t::SteamCallback_t","type": "struct HTML_FinishedRequest_t"} -,{"typedef": "HTML_OpenLinkInNewTab_t::SteamCallback_t","type": "struct HTML_OpenLinkInNewTab_t"} -,{"typedef": "HTML_ChangedTitle_t::SteamCallback_t","type": "struct HTML_ChangedTitle_t"} -,{"typedef": "HTML_SearchResults_t::SteamCallback_t","type": "struct HTML_SearchResults_t"} -,{"typedef": "HTML_CanGoBackAndForward_t::SteamCallback_t","type": "struct HTML_CanGoBackAndForward_t"} -,{"typedef": "HTML_HorizontalScroll_t::SteamCallback_t","type": "struct HTML_HorizontalScroll_t"} -,{"typedef": "HTML_VerticalScroll_t::SteamCallback_t","type": "struct HTML_VerticalScroll_t"} -,{"typedef": "HTML_LinkAtPosition_t::SteamCallback_t","type": "struct HTML_LinkAtPosition_t"} -,{"typedef": "HTML_JSAlert_t::SteamCallback_t","type": "struct HTML_JSAlert_t"} -,{"typedef": "HTML_JSConfirm_t::SteamCallback_t","type": "struct HTML_JSConfirm_t"} -,{"typedef": "HTML_FileOpenDialog_t::SteamCallback_t","type": "struct HTML_FileOpenDialog_t"} -,{"typedef": "HTML_NewWindow_t::SteamCallback_t","type": "struct HTML_NewWindow_t"} -,{"typedef": "HTML_SetCursor_t::SteamCallback_t","type": "struct HTML_SetCursor_t"} -,{"typedef": "HTML_StatusText_t::SteamCallback_t","type": "struct HTML_StatusText_t"} -,{"typedef": "HTML_ShowToolTip_t::SteamCallback_t","type": "struct HTML_ShowToolTip_t"} -,{"typedef": "HTML_UpdateToolTip_t::SteamCallback_t","type": "struct HTML_UpdateToolTip_t"} -,{"typedef": "HTML_HideToolTip_t::SteamCallback_t","type": "struct HTML_HideToolTip_t"} -,{"typedef": "SteamItemInstanceID_t","type": "uint64"} -,{"typedef": "SteamItemDef_t","type": "int32"} -,{"typedef": "SteamInventoryResult_t","type": "int32"} -,{"typedef": "BroadcastUploadStart_t::SteamCallback_t","type": "struct BroadcastUploadStart_t"} -,{"typedef": "BroadcastUploadStop_t::SteamCallback_t","type": "struct BroadcastUploadStop_t"} -,{"typedef": "GetVideoURLResult_t::SteamCallback_t","type": "struct GetVideoURLResult_t"} -,{"typedef": "CCallResult::func_t","type": "void (T::*)(P *, _Bool)"} -,{"typedef": "CCallback::func_t","type": "void (T::*)(P *)"} -], -"enums":[ - {"enumname": "EUniverse","values": [ - {"name": "k_EUniverseInvalid","value": "0"} - ,{"name": "k_EUniversePublic","value": "1"} - ,{"name": "k_EUniverseBeta","value": "2"} - ,{"name": "k_EUniverseInternal","value": "3"} - ,{"name": "k_EUniverseDev","value": "4"} - ,{"name": "k_EUniverseMax","value": "5"} -]} -, {"enumname": "EResult","values": [ - {"name": "k_EResultOK","value": "1"} - ,{"name": "k_EResultFail","value": "2"} - ,{"name": "k_EResultNoConnection","value": "3"} - ,{"name": "k_EResultInvalidPassword","value": "5"} - ,{"name": "k_EResultLoggedInElsewhere","value": "6"} - ,{"name": "k_EResultInvalidProtocolVer","value": "7"} - ,{"name": "k_EResultInvalidParam","value": "8"} - ,{"name": "k_EResultFileNotFound","value": "9"} - ,{"name": "k_EResultBusy","value": "10"} - ,{"name": "k_EResultInvalidState","value": "11"} - ,{"name": "k_EResultInvalidName","value": "12"} - ,{"name": "k_EResultInvalidEmail","value": "13"} - ,{"name": "k_EResultDuplicateName","value": "14"} - ,{"name": "k_EResultAccessDenied","value": "15"} - ,{"name": "k_EResultTimeout","value": "16"} - ,{"name": "k_EResultBanned","value": "17"} - ,{"name": "k_EResultAccountNotFound","value": "18"} - ,{"name": "k_EResultInvalidSteamID","value": "19"} - ,{"name": "k_EResultServiceUnavailable","value": "20"} - ,{"name": "k_EResultNotLoggedOn","value": "21"} - ,{"name": "k_EResultPending","value": "22"} - ,{"name": "k_EResultEncryptionFailure","value": "23"} - ,{"name": "k_EResultInsufficientPrivilege","value": "24"} - ,{"name": "k_EResultLimitExceeded","value": "25"} - ,{"name": "k_EResultRevoked","value": "26"} - ,{"name": "k_EResultExpired","value": "27"} - ,{"name": "k_EResultAlreadyRedeemed","value": "28"} - ,{"name": "k_EResultDuplicateRequest","value": "29"} - ,{"name": "k_EResultAlreadyOwned","value": "30"} - ,{"name": "k_EResultIPNotFound","value": "31"} - ,{"name": "k_EResultPersistFailed","value": "32"} - ,{"name": "k_EResultLockingFailed","value": "33"} - ,{"name": "k_EResultLogonSessionReplaced","value": "34"} - ,{"name": "k_EResultConnectFailed","value": "35"} - ,{"name": "k_EResultHandshakeFailed","value": "36"} - ,{"name": "k_EResultIOFailure","value": "37"} - ,{"name": "k_EResultRemoteDisconnect","value": "38"} - ,{"name": "k_EResultShoppingCartNotFound","value": "39"} - ,{"name": "k_EResultBlocked","value": "40"} - ,{"name": "k_EResultIgnored","value": "41"} - ,{"name": "k_EResultNoMatch","value": "42"} - ,{"name": "k_EResultAccountDisabled","value": "43"} - ,{"name": "k_EResultServiceReadOnly","value": "44"} - ,{"name": "k_EResultAccountNotFeatured","value": "45"} - ,{"name": "k_EResultAdministratorOK","value": "46"} - ,{"name": "k_EResultContentVersion","value": "47"} - ,{"name": "k_EResultTryAnotherCM","value": "48"} - ,{"name": "k_EResultPasswordRequiredToKickSession","value": "49"} - ,{"name": "k_EResultAlreadyLoggedInElsewhere","value": "50"} - ,{"name": "k_EResultSuspended","value": "51"} - ,{"name": "k_EResultCancelled","value": "52"} - ,{"name": "k_EResultDataCorruption","value": "53"} - ,{"name": "k_EResultDiskFull","value": "54"} - ,{"name": "k_EResultRemoteCallFailed","value": "55"} - ,{"name": "k_EResultPasswordUnset","value": "56"} - ,{"name": "k_EResultExternalAccountUnlinked","value": "57"} - ,{"name": "k_EResultPSNTicketInvalid","value": "58"} - ,{"name": "k_EResultExternalAccountAlreadyLinked","value": "59"} - ,{"name": "k_EResultRemoteFileConflict","value": "60"} - ,{"name": "k_EResultIllegalPassword","value": "61"} - ,{"name": "k_EResultSameAsPreviousValue","value": "62"} - ,{"name": "k_EResultAccountLogonDenied","value": "63"} - ,{"name": "k_EResultCannotUseOldPassword","value": "64"} - ,{"name": "k_EResultInvalidLoginAuthCode","value": "65"} - ,{"name": "k_EResultAccountLogonDeniedNoMail","value": "66"} - ,{"name": "k_EResultHardwareNotCapableOfIPT","value": "67"} - ,{"name": "k_EResultIPTInitError","value": "68"} - ,{"name": "k_EResultParentalControlRestricted","value": "69"} - ,{"name": "k_EResultFacebookQueryError","value": "70"} - ,{"name": "k_EResultExpiredLoginAuthCode","value": "71"} - ,{"name": "k_EResultIPLoginRestrictionFailed","value": "72"} - ,{"name": "k_EResultAccountLockedDown","value": "73"} - ,{"name": "k_EResultAccountLogonDeniedVerifiedEmailRequired","value": "74"} - ,{"name": "k_EResultNoMatchingURL","value": "75"} - ,{"name": "k_EResultBadResponse","value": "76"} - ,{"name": "k_EResultRequirePasswordReEntry","value": "77"} - ,{"name": "k_EResultValueOutOfRange","value": "78"} - ,{"name": "k_EResultUnexpectedError","value": "79"} - ,{"name": "k_EResultDisabled","value": "80"} - ,{"name": "k_EResultInvalidCEGSubmission","value": "81"} - ,{"name": "k_EResultRestrictedDevice","value": "82"} - ,{"name": "k_EResultRegionLocked","value": "83"} - ,{"name": "k_EResultRateLimitExceeded","value": "84"} - ,{"name": "k_EResultAccountLoginDeniedNeedTwoFactor","value": "85"} - ,{"name": "k_EResultItemDeleted","value": "86"} - ,{"name": "k_EResultAccountLoginDeniedThrottle","value": "87"} - ,{"name": "k_EResultTwoFactorCodeMismatch","value": "88"} - ,{"name": "k_EResultTwoFactorActivationCodeMismatch","value": "89"} - ,{"name": "k_EResultAccountAssociatedToMultiplePartners","value": "90"} - ,{"name": "k_EResultNotModified","value": "91"} - ,{"name": "k_EResultNoMobileDevice","value": "92"} - ,{"name": "k_EResultTimeNotSynced","value": "93"} - ,{"name": "k_EResultSmsCodeFailed","value": "94"} - ,{"name": "k_EResultAccountLimitExceeded","value": "95"} - ,{"name": "k_EResultAccountActivityLimitExceeded","value": "96"} - ,{"name": "k_EResultPhoneActivityLimitExceeded","value": "97"} - ,{"name": "k_EResultRefundToWallet","value": "98"} - ,{"name": "k_EResultEmailSendFailure","value": "99"} - ,{"name": "k_EResultNotSettled","value": "100"} - ,{"name": "k_EResultNeedCaptcha","value": "101"} - ,{"name": "k_EResultGSLTDenied","value": "102"} - ,{"name": "k_EResultGSOwnerDenied","value": "103"} - ,{"name": "k_EResultInvalidItemType","value": "104"} - ,{"name": "k_EResultIPBanned","value": "105"} - ,{"name": "k_EResultGSLTExpired","value": "106"} -]} -, {"enumname": "EVoiceResult","values": [ - {"name": "k_EVoiceResultOK","value": "0"} - ,{"name": "k_EVoiceResultNotInitialized","value": "1"} - ,{"name": "k_EVoiceResultNotRecording","value": "2"} - ,{"name": "k_EVoiceResultNoData","value": "3"} - ,{"name": "k_EVoiceResultBufferTooSmall","value": "4"} - ,{"name": "k_EVoiceResultDataCorrupted","value": "5"} - ,{"name": "k_EVoiceResultRestricted","value": "6"} - ,{"name": "k_EVoiceResultUnsupportedCodec","value": "7"} - ,{"name": "k_EVoiceResultReceiverOutOfDate","value": "8"} - ,{"name": "k_EVoiceResultReceiverDidNotAnswer","value": "9"} -]} -, {"enumname": "EDenyReason","values": [ - {"name": "k_EDenyInvalid","value": "0"} - ,{"name": "k_EDenyInvalidVersion","value": "1"} - ,{"name": "k_EDenyGeneric","value": "2"} - ,{"name": "k_EDenyNotLoggedOn","value": "3"} - ,{"name": "k_EDenyNoLicense","value": "4"} - ,{"name": "k_EDenyCheater","value": "5"} - ,{"name": "k_EDenyLoggedInElseWhere","value": "6"} - ,{"name": "k_EDenyUnknownText","value": "7"} - ,{"name": "k_EDenyIncompatibleAnticheat","value": "8"} - ,{"name": "k_EDenyMemoryCorruption","value": "9"} - ,{"name": "k_EDenyIncompatibleSoftware","value": "10"} - ,{"name": "k_EDenySteamConnectionLost","value": "11"} - ,{"name": "k_EDenySteamConnectionError","value": "12"} - ,{"name": "k_EDenySteamResponseTimedOut","value": "13"} - ,{"name": "k_EDenySteamValidationStalled","value": "14"} - ,{"name": "k_EDenySteamOwnerLeftGuestUser","value": "15"} -]} -, {"enumname": "EBeginAuthSessionResult","values": [ - {"name": "k_EBeginAuthSessionResultOK","value": "0"} - ,{"name": "k_EBeginAuthSessionResultInvalidTicket","value": "1"} - ,{"name": "k_EBeginAuthSessionResultDuplicateRequest","value": "2"} - ,{"name": "k_EBeginAuthSessionResultInvalidVersion","value": "3"} - ,{"name": "k_EBeginAuthSessionResultGameMismatch","value": "4"} - ,{"name": "k_EBeginAuthSessionResultExpiredTicket","value": "5"} -]} -, {"enumname": "EAuthSessionResponse","values": [ - {"name": "k_EAuthSessionResponseOK","value": "0"} - ,{"name": "k_EAuthSessionResponseUserNotConnectedToSteam","value": "1"} - ,{"name": "k_EAuthSessionResponseNoLicenseOrExpired","value": "2"} - ,{"name": "k_EAuthSessionResponseVACBanned","value": "3"} - ,{"name": "k_EAuthSessionResponseLoggedInElseWhere","value": "4"} - ,{"name": "k_EAuthSessionResponseVACCheckTimedOut","value": "5"} - ,{"name": "k_EAuthSessionResponseAuthTicketCanceled","value": "6"} - ,{"name": "k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed","value": "7"} - ,{"name": "k_EAuthSessionResponseAuthTicketInvalid","value": "8"} - ,{"name": "k_EAuthSessionResponsePublisherIssuedBan","value": "9"} -]} -, {"enumname": "EUserHasLicenseForAppResult","values": [ - {"name": "k_EUserHasLicenseResultHasLicense","value": "0"} - ,{"name": "k_EUserHasLicenseResultDoesNotHaveLicense","value": "1"} - ,{"name": "k_EUserHasLicenseResultNoAuth","value": "2"} -]} -, {"enumname": "EAccountType","values": [ - {"name": "k_EAccountTypeInvalid","value": "0"} - ,{"name": "k_EAccountTypeIndividual","value": "1"} - ,{"name": "k_EAccountTypeMultiseat","value": "2"} - ,{"name": "k_EAccountTypeGameServer","value": "3"} - ,{"name": "k_EAccountTypeAnonGameServer","value": "4"} - ,{"name": "k_EAccountTypePending","value": "5"} - ,{"name": "k_EAccountTypeContentServer","value": "6"} - ,{"name": "k_EAccountTypeClan","value": "7"} - ,{"name": "k_EAccountTypeChat","value": "8"} - ,{"name": "k_EAccountTypeConsoleUser","value": "9"} - ,{"name": "k_EAccountTypeAnonUser","value": "10"} - ,{"name": "k_EAccountTypeMax","value": "11"} -]} -, {"enumname": "EAppReleaseState","values": [ - {"name": "k_EAppReleaseState_Unknown","value": "0"} - ,{"name": "k_EAppReleaseState_Unavailable","value": "1"} - ,{"name": "k_EAppReleaseState_Prerelease","value": "2"} - ,{"name": "k_EAppReleaseState_PreloadOnly","value": "3"} - ,{"name": "k_EAppReleaseState_Released","value": "4"} -]} -, {"enumname": "EAppOwnershipFlags","values": [ - {"name": "k_EAppOwnershipFlags_None","value": "0"} - ,{"name": "k_EAppOwnershipFlags_OwnsLicense","value": "1"} - ,{"name": "k_EAppOwnershipFlags_FreeLicense","value": "2"} - ,{"name": "k_EAppOwnershipFlags_RegionRestricted","value": "4"} - ,{"name": "k_EAppOwnershipFlags_LowViolence","value": "8"} - ,{"name": "k_EAppOwnershipFlags_InvalidPlatform","value": "16"} - ,{"name": "k_EAppOwnershipFlags_SharedLicense","value": "32"} - ,{"name": "k_EAppOwnershipFlags_FreeWeekend","value": "64"} - ,{"name": "k_EAppOwnershipFlags_RetailLicense","value": "128"} - ,{"name": "k_EAppOwnershipFlags_LicenseLocked","value": "256"} - ,{"name": "k_EAppOwnershipFlags_LicensePending","value": "512"} - ,{"name": "k_EAppOwnershipFlags_LicenseExpired","value": "1024"} - ,{"name": "k_EAppOwnershipFlags_LicensePermanent","value": "2048"} - ,{"name": "k_EAppOwnershipFlags_LicenseRecurring","value": "4096"} - ,{"name": "k_EAppOwnershipFlags_LicenseCanceled","value": "8192"} - ,{"name": "k_EAppOwnershipFlags_AutoGrant","value": "16384"} - ,{"name": "k_EAppOwnershipFlags_PendingGift","value": "32768"} - ,{"name": "k_EAppOwnershipFlags_RentalNotActivated","value": "65536"} - ,{"name": "k_EAppOwnershipFlags_Rental","value": "131072"} -]} -, {"enumname": "EAppType","values": [ - {"name": "k_EAppType_Invalid","value": "0"} - ,{"name": "k_EAppType_Game","value": "1"} - ,{"name": "k_EAppType_Application","value": "2"} - ,{"name": "k_EAppType_Tool","value": "4"} - ,{"name": "k_EAppType_Demo","value": "8"} - ,{"name": "k_EAppType_Media_DEPRECATED","value": "16"} - ,{"name": "k_EAppType_DLC","value": "32"} - ,{"name": "k_EAppType_Guide","value": "64"} - ,{"name": "k_EAppType_Driver","value": "128"} - ,{"name": "k_EAppType_Config","value": "256"} - ,{"name": "k_EAppType_Hardware","value": "512"} - ,{"name": "k_EAppType_Franchise","value": "1024"} - ,{"name": "k_EAppType_Video","value": "2048"} - ,{"name": "k_EAppType_Plugin","value": "4096"} - ,{"name": "k_EAppType_Music","value": "8192"} - ,{"name": "k_EAppType_Series","value": "16384"} - ,{"name": "k_EAppType_Shortcut","value": "1073741824"} - ,{"name": "k_EAppType_DepotOnly","value": "-2147483648"} -]} -, {"enumname": "ESteamUserStatType","values": [ - {"name": "k_ESteamUserStatTypeINVALID","value": "0"} - ,{"name": "k_ESteamUserStatTypeINT","value": "1"} - ,{"name": "k_ESteamUserStatTypeFLOAT","value": "2"} - ,{"name": "k_ESteamUserStatTypeAVGRATE","value": "3"} - ,{"name": "k_ESteamUserStatTypeACHIEVEMENTS","value": "4"} - ,{"name": "k_ESteamUserStatTypeGROUPACHIEVEMENTS","value": "5"} - ,{"name": "k_ESteamUserStatTypeMAX","value": "6"} -]} -, {"enumname": "EChatEntryType","values": [ - {"name": "k_EChatEntryTypeInvalid","value": "0"} - ,{"name": "k_EChatEntryTypeChatMsg","value": "1"} - ,{"name": "k_EChatEntryTypeTyping","value": "2"} - ,{"name": "k_EChatEntryTypeInviteGame","value": "3"} - ,{"name": "k_EChatEntryTypeEmote","value": "4"} - ,{"name": "k_EChatEntryTypeLeftConversation","value": "6"} - ,{"name": "k_EChatEntryTypeEntered","value": "7"} - ,{"name": "k_EChatEntryTypeWasKicked","value": "8"} - ,{"name": "k_EChatEntryTypeWasBanned","value": "9"} - ,{"name": "k_EChatEntryTypeDisconnected","value": "10"} - ,{"name": "k_EChatEntryTypeHistoricalChat","value": "11"} - ,{"name": "k_EChatEntryTypeLinkBlocked","value": "14"} -]} -, {"enumname": "EChatRoomEnterResponse","values": [ - {"name": "k_EChatRoomEnterResponseSuccess","value": "1"} - ,{"name": "k_EChatRoomEnterResponseDoesntExist","value": "2"} - ,{"name": "k_EChatRoomEnterResponseNotAllowed","value": "3"} - ,{"name": "k_EChatRoomEnterResponseFull","value": "4"} - ,{"name": "k_EChatRoomEnterResponseError","value": "5"} - ,{"name": "k_EChatRoomEnterResponseBanned","value": "6"} - ,{"name": "k_EChatRoomEnterResponseLimited","value": "7"} - ,{"name": "k_EChatRoomEnterResponseClanDisabled","value": "8"} - ,{"name": "k_EChatRoomEnterResponseCommunityBan","value": "9"} - ,{"name": "k_EChatRoomEnterResponseMemberBlockedYou","value": "10"} - ,{"name": "k_EChatRoomEnterResponseYouBlockedMember","value": "11"} -]} -, {"enumname": "EChatSteamIDInstanceFlags","values": [ - {"name": "k_EChatAccountInstanceMask","value": "4095"} - ,{"name": "k_EChatInstanceFlagClan","value": "524288"} - ,{"name": "k_EChatInstanceFlagLobby","value": "262144"} - ,{"name": "k_EChatInstanceFlagMMSLobby","value": "131072"} -]} -, {"enumname": "EMarketingMessageFlags","values": [ - {"name": "k_EMarketingMessageFlagsNone","value": "0"} - ,{"name": "k_EMarketingMessageFlagsHighPriority","value": "1"} - ,{"name": "k_EMarketingMessageFlagsPlatformWindows","value": "2"} - ,{"name": "k_EMarketingMessageFlagsPlatformMac","value": "4"} - ,{"name": "k_EMarketingMessageFlagsPlatformLinux","value": "8"} - ,{"name": "k_EMarketingMessageFlagsPlatformRestrictions","value": "14"} -]} -, {"enumname": "ENotificationPosition","values": [ - {"name": "k_EPositionTopLeft","value": "0"} - ,{"name": "k_EPositionTopRight","value": "1"} - ,{"name": "k_EPositionBottomLeft","value": "2"} - ,{"name": "k_EPositionBottomRight","value": "3"} -]} -, {"enumname": "EBroadcastUploadResult","values": [ - {"name": "k_EBroadcastUploadResultNone","value": "0"} - ,{"name": "k_EBroadcastUploadResultOK","value": "1"} - ,{"name": "k_EBroadcastUploadResultInitFailed","value": "2"} - ,{"name": "k_EBroadcastUploadResultFrameFailed","value": "3"} - ,{"name": "k_EBroadcastUploadResultTimeout","value": "4"} - ,{"name": "k_EBroadcastUploadResultBandwidthExceeded","value": "5"} - ,{"name": "k_EBroadcastUploadResultLowFPS","value": "6"} - ,{"name": "k_EBroadcastUploadResultMissingKeyFrames","value": "7"} - ,{"name": "k_EBroadcastUploadResultNoConnection","value": "8"} - ,{"name": "k_EBroadcastUploadResultRelayFailed","value": "9"} - ,{"name": "k_EBroadcastUploadResultSettingsChanged","value": "10"} - ,{"name": "k_EBroadcastUploadResultMissingAudio","value": "11"} - ,{"name": "k_EBroadcastUploadResultTooFarBehind","value": "12"} - ,{"name": "k_EBroadcastUploadResultTranscodeBehind","value": "13"} -]} -, {"enumname": "ELaunchOptionType","values": [ - {"name": "k_ELaunchOptionType_None","value": "0"} - ,{"name": "k_ELaunchOptionType_Default","value": "1"} - ,{"name": "k_ELaunchOptionType_SafeMode","value": "2"} - ,{"name": "k_ELaunchOptionType_Multiplayer","value": "3"} - ,{"name": "k_ELaunchOptionType_Config","value": "4"} - ,{"name": "k_ELaunchOptionType_OpenVR","value": "5"} - ,{"name": "k_ELaunchOptionType_Server","value": "6"} - ,{"name": "k_ELaunchOptionType_Editor","value": "7"} - ,{"name": "k_ELaunchOptionType_Manual","value": "8"} - ,{"name": "k_ELaunchOptionType_Benchmark","value": "9"} - ,{"name": "k_ELaunchOptionType_Option1","value": "10"} - ,{"name": "k_ELaunchOptionType_Option2","value": "11"} - ,{"name": "k_ELaunchOptionType_Option3","value": "12"} - ,{"name": "k_ELaunchOptionType_OculusVR","value": "13"} - ,{"name": "k_ELaunchOptionType_OpenVROverlay","value": "14"} - ,{"name": "k_ELaunchOptionType_OSVR","value": "15"} - ,{"name": "k_ELaunchOptionType_Dialog","value": "1000"} -]} -, {"enumname": "EVRHMDType","values": [ - {"name": "k_eEVRHMDType_None","value": "-1"} - ,{"name": "k_eEVRHMDType_Unknown","value": "0"} - ,{"name": "k_eEVRHMDType_HTC_Dev","value": "1"} - ,{"name": "k_eEVRHMDType_HTC_VivePre","value": "2"} - ,{"name": "k_eEVRHMDType_HTC_Vive","value": "3"} - ,{"name": "k_eEVRHMDType_HTC_Unknown","value": "20"} - ,{"name": "k_eEVRHMDType_Oculus_DK1","value": "21"} - ,{"name": "k_eEVRHMDType_Oculus_DK2","value": "22"} - ,{"name": "k_eEVRHMDType_Oculus_Rift","value": "23"} - ,{"name": "k_eEVRHMDType_Oculus_Unknown","value": "40"} -]} -, {"enumname": "EControllerType","values": [ - {"name": "k_eControllerType_None","value": "-1"} - ,{"name": "k_eControllerType_Unknown","value": "0"} - ,{"name": "k_eControllerType_UnknownSteamController","value": "1"} - ,{"name": "k_eControllerType_SteamController","value": "2"} - ,{"name": "k_eControllerType_UnknownNonSteamController","value": "30"} - ,{"name": "k_eControllerType_XBox360Controller","value": "31"} - ,{"name": "k_eControllerType_XBoxOneController","value": "32"} - ,{"name": "k_eControllerType_PS3Controller","value": "33"} - ,{"name": "k_eControllerType_PS4Controller","value": "34"} - ,{"name": "k_eControllerType_WiiController","value": "35"} - ,{"name": "k_eControllerType_AppleController","value": "36"} -]} -, {"enumname": "CGameID::EGameIDType","values": [ - {"name": "k_EGameIDTypeApp","value": "0"} - ,{"name": "k_EGameIDTypeGameMod","value": "1"} - ,{"name": "k_EGameIDTypeShortcut","value": "2"} - ,{"name": "k_EGameIDTypeP2P","value": "3"} -]} -, {"enumname": "IPCFailure_t::EFailureType","values": [ - {"name": "k_EFailureFlushedCallbackQueue","value": "0"} - ,{"name": "k_EFailurePipeFail","value": "1"} -]} -, {"enumname": "EFriendRelationship","values": [ - {"name": "k_EFriendRelationshipNone","value": "0"} - ,{"name": "k_EFriendRelationshipBlocked","value": "1"} - ,{"name": "k_EFriendRelationshipRequestRecipient","value": "2"} - ,{"name": "k_EFriendRelationshipFriend","value": "3"} - ,{"name": "k_EFriendRelationshipRequestInitiator","value": "4"} - ,{"name": "k_EFriendRelationshipIgnored","value": "5"} - ,{"name": "k_EFriendRelationshipIgnoredFriend","value": "6"} - ,{"name": "k_EFriendRelationshipSuggested_DEPRECATED","value": "7"} - ,{"name": "k_EFriendRelationshipMax","value": "8"} -]} -, {"enumname": "EPersonaState","values": [ - {"name": "k_EPersonaStateOffline","value": "0"} - ,{"name": "k_EPersonaStateOnline","value": "1"} - ,{"name": "k_EPersonaStateBusy","value": "2"} - ,{"name": "k_EPersonaStateAway","value": "3"} - ,{"name": "k_EPersonaStateSnooze","value": "4"} - ,{"name": "k_EPersonaStateLookingToTrade","value": "5"} - ,{"name": "k_EPersonaStateLookingToPlay","value": "6"} - ,{"name": "k_EPersonaStateMax","value": "7"} -]} -, {"enumname": "EFriendFlags","values": [ - {"name": "k_EFriendFlagNone","value": "0"} - ,{"name": "k_EFriendFlagBlocked","value": "1"} - ,{"name": "k_EFriendFlagFriendshipRequested","value": "2"} - ,{"name": "k_EFriendFlagImmediate","value": "4"} - ,{"name": "k_EFriendFlagClanMember","value": "8"} - ,{"name": "k_EFriendFlagOnGameServer","value": "16"} - ,{"name": "k_EFriendFlagRequestingFriendship","value": "128"} - ,{"name": "k_EFriendFlagRequestingInfo","value": "256"} - ,{"name": "k_EFriendFlagIgnored","value": "512"} - ,{"name": "k_EFriendFlagIgnoredFriend","value": "1024"} - ,{"name": "k_EFriendFlagSuggested","value": "2048"} - ,{"name": "k_EFriendFlagChatMember","value": "4096"} - ,{"name": "k_EFriendFlagAll","value": "65535"} -]} -, {"enumname": "EUserRestriction","values": [ - {"name": "k_nUserRestrictionNone","value": "0"} - ,{"name": "k_nUserRestrictionUnknown","value": "1"} - ,{"name": "k_nUserRestrictionAnyChat","value": "2"} - ,{"name": "k_nUserRestrictionVoiceChat","value": "4"} - ,{"name": "k_nUserRestrictionGroupChat","value": "8"} - ,{"name": "k_nUserRestrictionRating","value": "16"} - ,{"name": "k_nUserRestrictionGameInvites","value": "32"} - ,{"name": "k_nUserRestrictionTrading","value": "64"} -]} -, {"enumname": "EOverlayToStoreFlag","values": [ - {"name": "k_EOverlayToStoreFlag_None","value": "0"} - ,{"name": "k_EOverlayToStoreFlag_AddToCart","value": "1"} - ,{"name": "k_EOverlayToStoreFlag_AddToCartAndShow","value": "2"} -]} -, {"enumname": "EPersonaChange","values": [ - {"name": "k_EPersonaChangeName","value": "1"} - ,{"name": "k_EPersonaChangeStatus","value": "2"} - ,{"name": "k_EPersonaChangeComeOnline","value": "4"} - ,{"name": "k_EPersonaChangeGoneOffline","value": "8"} - ,{"name": "k_EPersonaChangeGamePlayed","value": "16"} - ,{"name": "k_EPersonaChangeGameServer","value": "32"} - ,{"name": "k_EPersonaChangeAvatar","value": "64"} - ,{"name": "k_EPersonaChangeJoinedSource","value": "128"} - ,{"name": "k_EPersonaChangeLeftSource","value": "256"} - ,{"name": "k_EPersonaChangeRelationshipChanged","value": "512"} - ,{"name": "k_EPersonaChangeNameFirstSet","value": "1024"} - ,{"name": "k_EPersonaChangeFacebookInfo","value": "2048"} - ,{"name": "k_EPersonaChangeNickname","value": "4096"} - ,{"name": "k_EPersonaChangeSteamLevel","value": "8192"} -]} -, {"enumname": "ESteamAPICallFailure","values": [ - {"name": "k_ESteamAPICallFailureNone","value": "-1"} - ,{"name": "k_ESteamAPICallFailureSteamGone","value": "0"} - ,{"name": "k_ESteamAPICallFailureNetworkFailure","value": "1"} - ,{"name": "k_ESteamAPICallFailureInvalidHandle","value": "2"} - ,{"name": "k_ESteamAPICallFailureMismatchedCallback","value": "3"} -]} -, {"enumname": "EGamepadTextInputMode","values": [ - {"name": "k_EGamepadTextInputModeNormal","value": "0"} - ,{"name": "k_EGamepadTextInputModePassword","value": "1"} -]} -, {"enumname": "EGamepadTextInputLineMode","values": [ - {"name": "k_EGamepadTextInputLineModeSingleLine","value": "0"} - ,{"name": "k_EGamepadTextInputLineModeMultipleLines","value": "1"} -]} -, {"enumname": "ECheckFileSignature","values": [ - {"name": "k_ECheckFileSignatureInvalidSignature","value": "0"} - ,{"name": "k_ECheckFileSignatureValidSignature","value": "1"} - ,{"name": "k_ECheckFileSignatureFileNotFound","value": "2"} - ,{"name": "k_ECheckFileSignatureNoSignaturesFoundForThisApp","value": "3"} - ,{"name": "k_ECheckFileSignatureNoSignaturesFoundForThisFile","value": "4"} -]} -, {"enumname": "EMatchMakingServerResponse","values": [ - {"name": "eServerResponded","value": "0"} - ,{"name": "eServerFailedToRespond","value": "1"} - ,{"name": "eNoServersListedOnMasterServer","value": "2"} -]} -, {"enumname": "ELobbyType","values": [ - {"name": "k_ELobbyTypePrivate","value": "0"} - ,{"name": "k_ELobbyTypeFriendsOnly","value": "1"} - ,{"name": "k_ELobbyTypePublic","value": "2"} - ,{"name": "k_ELobbyTypeInvisible","value": "3"} -]} -, {"enumname": "ELobbyComparison","values": [ - {"name": "k_ELobbyComparisonEqualToOrLessThan","value": "-2"} - ,{"name": "k_ELobbyComparisonLessThan","value": "-1"} - ,{"name": "k_ELobbyComparisonEqual","value": "0"} - ,{"name": "k_ELobbyComparisonGreaterThan","value": "1"} - ,{"name": "k_ELobbyComparisonEqualToOrGreaterThan","value": "2"} - ,{"name": "k_ELobbyComparisonNotEqual","value": "3"} -]} -, {"enumname": "ELobbyDistanceFilter","values": [ - {"name": "k_ELobbyDistanceFilterClose","value": "0"} - ,{"name": "k_ELobbyDistanceFilterDefault","value": "1"} - ,{"name": "k_ELobbyDistanceFilterFar","value": "2"} - ,{"name": "k_ELobbyDistanceFilterWorldwide","value": "3"} -]} -, {"enumname": "EChatMemberStateChange","values": [ - {"name": "k_EChatMemberStateChangeEntered","value": "1"} - ,{"name": "k_EChatMemberStateChangeLeft","value": "2"} - ,{"name": "k_EChatMemberStateChangeDisconnected","value": "4"} - ,{"name": "k_EChatMemberStateChangeKicked","value": "8"} - ,{"name": "k_EChatMemberStateChangeBanned","value": "16"} -]} -, {"enumname": "ERemoteStoragePlatform","values": [ - {"name": "k_ERemoteStoragePlatformNone","value": "0"} - ,{"name": "k_ERemoteStoragePlatformWindows","value": "1"} - ,{"name": "k_ERemoteStoragePlatformOSX","value": "2"} - ,{"name": "k_ERemoteStoragePlatformPS3","value": "4"} - ,{"name": "k_ERemoteStoragePlatformLinux","value": "8"} - ,{"name": "k_ERemoteStoragePlatformReserved2","value": "16"} - ,{"name": "k_ERemoteStoragePlatformAll","value": "-1"} -]} -, {"enumname": "ERemoteStoragePublishedFileVisibility","values": [ - {"name": "k_ERemoteStoragePublishedFileVisibilityPublic","value": "0"} - ,{"name": "k_ERemoteStoragePublishedFileVisibilityFriendsOnly","value": "1"} - ,{"name": "k_ERemoteStoragePublishedFileVisibilityPrivate","value": "2"} -]} -, {"enumname": "EWorkshopFileType","values": [ - {"name": "k_EWorkshopFileTypeFirst","value": "0"} - ,{"name": "k_EWorkshopFileTypeCommunity","value": "0"} - ,{"name": "k_EWorkshopFileTypeMicrotransaction","value": "1"} - ,{"name": "k_EWorkshopFileTypeCollection","value": "2"} - ,{"name": "k_EWorkshopFileTypeArt","value": "3"} - ,{"name": "k_EWorkshopFileTypeVideo","value": "4"} - ,{"name": "k_EWorkshopFileTypeScreenshot","value": "5"} - ,{"name": "k_EWorkshopFileTypeGame","value": "6"} - ,{"name": "k_EWorkshopFileTypeSoftware","value": "7"} - ,{"name": "k_EWorkshopFileTypeConcept","value": "8"} - ,{"name": "k_EWorkshopFileTypeWebGuide","value": "9"} - ,{"name": "k_EWorkshopFileTypeIntegratedGuide","value": "10"} - ,{"name": "k_EWorkshopFileTypeMerch","value": "11"} - ,{"name": "k_EWorkshopFileTypeControllerBinding","value": "12"} - ,{"name": "k_EWorkshopFileTypeSteamworksAccessInvite","value": "13"} - ,{"name": "k_EWorkshopFileTypeSteamVideo","value": "14"} - ,{"name": "k_EWorkshopFileTypeGameManagedItem","value": "15"} - ,{"name": "k_EWorkshopFileTypeMax","value": "16"} -]} -, {"enumname": "EWorkshopVote","values": [ - {"name": "k_EWorkshopVoteUnvoted","value": "0"} - ,{"name": "k_EWorkshopVoteFor","value": "1"} - ,{"name": "k_EWorkshopVoteAgainst","value": "2"} - ,{"name": "k_EWorkshopVoteLater","value": "3"} -]} -, {"enumname": "EWorkshopFileAction","values": [ - {"name": "k_EWorkshopFileActionPlayed","value": "0"} - ,{"name": "k_EWorkshopFileActionCompleted","value": "1"} -]} -, {"enumname": "EWorkshopEnumerationType","values": [ - {"name": "k_EWorkshopEnumerationTypeRankedByVote","value": "0"} - ,{"name": "k_EWorkshopEnumerationTypeRecent","value": "1"} - ,{"name": "k_EWorkshopEnumerationTypeTrending","value": "2"} - ,{"name": "k_EWorkshopEnumerationTypeFavoritesOfFriends","value": "3"} - ,{"name": "k_EWorkshopEnumerationTypeVotedByFriends","value": "4"} - ,{"name": "k_EWorkshopEnumerationTypeContentByFriends","value": "5"} - ,{"name": "k_EWorkshopEnumerationTypeRecentFromFollowedUsers","value": "6"} -]} -, {"enumname": "EWorkshopVideoProvider","values": [ - {"name": "k_EWorkshopVideoProviderNone","value": "0"} - ,{"name": "k_EWorkshopVideoProviderYoutube","value": "1"} -]} -, {"enumname": "EUGCReadAction","values": [ - {"name": "k_EUGCRead_ContinueReadingUntilFinished","value": "0"} - ,{"name": "k_EUGCRead_ContinueReading","value": "1"} - ,{"name": "k_EUGCRead_Close","value": "2"} -]} -, {"enumname": "ELeaderboardDataRequest","values": [ - {"name": "k_ELeaderboardDataRequestGlobal","value": "0"} - ,{"name": "k_ELeaderboardDataRequestGlobalAroundUser","value": "1"} - ,{"name": "k_ELeaderboardDataRequestFriends","value": "2"} - ,{"name": "k_ELeaderboardDataRequestUsers","value": "3"} -]} -, {"enumname": "ELeaderboardSortMethod","values": [ - {"name": "k_ELeaderboardSortMethodNone","value": "0"} - ,{"name": "k_ELeaderboardSortMethodAscending","value": "1"} - ,{"name": "k_ELeaderboardSortMethodDescending","value": "2"} -]} -, {"enumname": "ELeaderboardDisplayType","values": [ - {"name": "k_ELeaderboardDisplayTypeNone","value": "0"} - ,{"name": "k_ELeaderboardDisplayTypeNumeric","value": "1"} - ,{"name": "k_ELeaderboardDisplayTypeTimeSeconds","value": "2"} - ,{"name": "k_ELeaderboardDisplayTypeTimeMilliSeconds","value": "3"} -]} -, {"enumname": "ELeaderboardUploadScoreMethod","values": [ - {"name": "k_ELeaderboardUploadScoreMethodNone","value": "0"} - ,{"name": "k_ELeaderboardUploadScoreMethodKeepBest","value": "1"} - ,{"name": "k_ELeaderboardUploadScoreMethodForceUpdate","value": "2"} -]} -, {"enumname": "ERegisterActivationCodeResult","values": [ - {"name": "k_ERegisterActivationCodeResultOK","value": "0"} - ,{"name": "k_ERegisterActivationCodeResultFail","value": "1"} - ,{"name": "k_ERegisterActivationCodeResultAlreadyRegistered","value": "2"} - ,{"name": "k_ERegisterActivationCodeResultTimeout","value": "3"} - ,{"name": "k_ERegisterActivationCodeAlreadyOwned","value": "4"} -]} -, {"enumname": "EP2PSessionError","values": [ - {"name": "k_EP2PSessionErrorNone","value": "0"} - ,{"name": "k_EP2PSessionErrorNotRunningApp","value": "1"} - ,{"name": "k_EP2PSessionErrorNoRightsToApp","value": "2"} - ,{"name": "k_EP2PSessionErrorDestinationNotLoggedIn","value": "3"} - ,{"name": "k_EP2PSessionErrorTimeout","value": "4"} - ,{"name": "k_EP2PSessionErrorMax","value": "5"} -]} -, {"enumname": "EP2PSend","values": [ - {"name": "k_EP2PSendUnreliable","value": "0"} - ,{"name": "k_EP2PSendUnreliableNoDelay","value": "1"} - ,{"name": "k_EP2PSendReliable","value": "2"} - ,{"name": "k_EP2PSendReliableWithBuffering","value": "3"} -]} -, {"enumname": "ESNetSocketState","values": [ - {"name": "k_ESNetSocketStateInvalid","value": "0"} - ,{"name": "k_ESNetSocketStateConnected","value": "1"} - ,{"name": "k_ESNetSocketStateInitiated","value": "10"} - ,{"name": "k_ESNetSocketStateLocalCandidatesFound","value": "11"} - ,{"name": "k_ESNetSocketStateReceivedRemoteCandidates","value": "12"} - ,{"name": "k_ESNetSocketStateChallengeHandshake","value": "15"} - ,{"name": "k_ESNetSocketStateDisconnecting","value": "21"} - ,{"name": "k_ESNetSocketStateLocalDisconnect","value": "22"} - ,{"name": "k_ESNetSocketStateTimeoutDuringConnect","value": "23"} - ,{"name": "k_ESNetSocketStateRemoteEndDisconnected","value": "24"} - ,{"name": "k_ESNetSocketStateConnectionBroken","value": "25"} -]} -, {"enumname": "ESNetSocketConnectionType","values": [ - {"name": "k_ESNetSocketConnectionTypeNotConnected","value": "0"} - ,{"name": "k_ESNetSocketConnectionTypeUDP","value": "1"} - ,{"name": "k_ESNetSocketConnectionTypeUDPRelay","value": "2"} -]} -, {"enumname": "EVRScreenshotType","values": [ - {"name": "k_EVRScreenshotType_None","value": "0"} - ,{"name": "k_EVRScreenshotType_Mono","value": "1"} - ,{"name": "k_EVRScreenshotType_Stereo","value": "2"} - ,{"name": "k_EVRScreenshotType_MonoCubemap","value": "3"} - ,{"name": "k_EVRScreenshotType_MonoPanorama","value": "4"} - ,{"name": "k_EVRScreenshotType_StereoPanorama","value": "5"} -]} -, {"enumname": "AudioPlayback_Status","values": [ - {"name": "AudioPlayback_Undefined","value": "0"} - ,{"name": "AudioPlayback_Playing","value": "1"} - ,{"name": "AudioPlayback_Paused","value": "2"} - ,{"name": "AudioPlayback_Idle","value": "3"} -]} -, {"enumname": "EHTTPMethod","values": [ - {"name": "k_EHTTPMethodInvalid","value": "0"} - ,{"name": "k_EHTTPMethodGET","value": "1"} - ,{"name": "k_EHTTPMethodHEAD","value": "2"} - ,{"name": "k_EHTTPMethodPOST","value": "3"} - ,{"name": "k_EHTTPMethodPUT","value": "4"} - ,{"name": "k_EHTTPMethodDELETE","value": "5"} - ,{"name": "k_EHTTPMethodOPTIONS","value": "6"} - ,{"name": "k_EHTTPMethodPATCH","value": "7"} -]} -, {"enumname": "EHTTPStatusCode","values": [ - {"name": "k_EHTTPStatusCodeInvalid","value": "0"} - ,{"name": "k_EHTTPStatusCode100Continue","value": "100"} - ,{"name": "k_EHTTPStatusCode101SwitchingProtocols","value": "101"} - ,{"name": "k_EHTTPStatusCode200OK","value": "200"} - ,{"name": "k_EHTTPStatusCode201Created","value": "201"} - ,{"name": "k_EHTTPStatusCode202Accepted","value": "202"} - ,{"name": "k_EHTTPStatusCode203NonAuthoritative","value": "203"} - ,{"name": "k_EHTTPStatusCode204NoContent","value": "204"} - ,{"name": "k_EHTTPStatusCode205ResetContent","value": "205"} - ,{"name": "k_EHTTPStatusCode206PartialContent","value": "206"} - ,{"name": "k_EHTTPStatusCode300MultipleChoices","value": "300"} - ,{"name": "k_EHTTPStatusCode301MovedPermanently","value": "301"} - ,{"name": "k_EHTTPStatusCode302Found","value": "302"} - ,{"name": "k_EHTTPStatusCode303SeeOther","value": "303"} - ,{"name": "k_EHTTPStatusCode304NotModified","value": "304"} - ,{"name": "k_EHTTPStatusCode305UseProxy","value": "305"} - ,{"name": "k_EHTTPStatusCode307TemporaryRedirect","value": "307"} - ,{"name": "k_EHTTPStatusCode400BadRequest","value": "400"} - ,{"name": "k_EHTTPStatusCode401Unauthorized","value": "401"} - ,{"name": "k_EHTTPStatusCode402PaymentRequired","value": "402"} - ,{"name": "k_EHTTPStatusCode403Forbidden","value": "403"} - ,{"name": "k_EHTTPStatusCode404NotFound","value": "404"} - ,{"name": "k_EHTTPStatusCode405MethodNotAllowed","value": "405"} - ,{"name": "k_EHTTPStatusCode406NotAcceptable","value": "406"} - ,{"name": "k_EHTTPStatusCode407ProxyAuthRequired","value": "407"} - ,{"name": "k_EHTTPStatusCode408RequestTimeout","value": "408"} - ,{"name": "k_EHTTPStatusCode409Conflict","value": "409"} - ,{"name": "k_EHTTPStatusCode410Gone","value": "410"} - ,{"name": "k_EHTTPStatusCode411LengthRequired","value": "411"} - ,{"name": "k_EHTTPStatusCode412PreconditionFailed","value": "412"} - ,{"name": "k_EHTTPStatusCode413RequestEntityTooLarge","value": "413"} - ,{"name": "k_EHTTPStatusCode414RequestURITooLong","value": "414"} - ,{"name": "k_EHTTPStatusCode415UnsupportedMediaType","value": "415"} - ,{"name": "k_EHTTPStatusCode416RequestedRangeNotSatisfiable","value": "416"} - ,{"name": "k_EHTTPStatusCode417ExpectationFailed","value": "417"} - ,{"name": "k_EHTTPStatusCode4xxUnknown","value": "418"} - ,{"name": "k_EHTTPStatusCode429TooManyRequests","value": "429"} - ,{"name": "k_EHTTPStatusCode500InternalServerError","value": "500"} - ,{"name": "k_EHTTPStatusCode501NotImplemented","value": "501"} - ,{"name": "k_EHTTPStatusCode502BadGateway","value": "502"} - ,{"name": "k_EHTTPStatusCode503ServiceUnavailable","value": "503"} - ,{"name": "k_EHTTPStatusCode504GatewayTimeout","value": "504"} - ,{"name": "k_EHTTPStatusCode505HTTPVersionNotSupported","value": "505"} - ,{"name": "k_EHTTPStatusCode5xxUnknown","value": "599"} -]} -, {"enumname": "ESteamControllerPad","values": [ - {"name": "k_ESteamControllerPad_Left","value": "0"} - ,{"name": "k_ESteamControllerPad_Right","value": "1"} -]} -, {"enumname": "EControllerSource","values": [ - {"name": "k_EControllerSource_None","value": "0"} - ,{"name": "k_EControllerSource_LeftTrackpad","value": "1"} - ,{"name": "k_EControllerSource_RightTrackpad","value": "2"} - ,{"name": "k_EControllerSource_Joystick","value": "3"} - ,{"name": "k_EControllerSource_ABXY","value": "4"} - ,{"name": "k_EControllerSource_Switch","value": "5"} - ,{"name": "k_EControllerSource_LeftTrigger","value": "6"} - ,{"name": "k_EControllerSource_RightTrigger","value": "7"} - ,{"name": "k_EControllerSource_Gyro","value": "8"} - ,{"name": "k_EControllerSource_Count","value": "9"} -]} -, {"enumname": "EControllerSourceMode","values": [ - {"name": "k_EControllerSourceMode_None","value": "0"} - ,{"name": "k_EControllerSourceMode_Dpad","value": "1"} - ,{"name": "k_EControllerSourceMode_Buttons","value": "2"} - ,{"name": "k_EControllerSourceMode_FourButtons","value": "3"} - ,{"name": "k_EControllerSourceMode_AbsoluteMouse","value": "4"} - ,{"name": "k_EControllerSourceMode_RelativeMouse","value": "5"} - ,{"name": "k_EControllerSourceMode_JoystickMove","value": "6"} - ,{"name": "k_EControllerSourceMode_JoystickCamera","value": "7"} - ,{"name": "k_EControllerSourceMode_ScrollWheel","value": "8"} - ,{"name": "k_EControllerSourceMode_Trigger","value": "9"} - ,{"name": "k_EControllerSourceMode_TouchMenu","value": "10"} - ,{"name": "k_EControllerSourceMode_MouseJoystick","value": "11"} - ,{"name": "k_EControllerSourceMode_MouseRegion","value": "12"} - ,{"name": "k_EControllerSourceMode_RadialMenu","value": "13"} - ,{"name": "k_EControllerSourceMode_Switches","value": "14"} -]} -, {"enumname": "EControllerActionOrigin","values": [ - {"name": "k_EControllerActionOrigin_None","value": "0"} - ,{"name": "k_EControllerActionOrigin_A","value": "1"} - ,{"name": "k_EControllerActionOrigin_B","value": "2"} - ,{"name": "k_EControllerActionOrigin_X","value": "3"} - ,{"name": "k_EControllerActionOrigin_Y","value": "4"} - ,{"name": "k_EControllerActionOrigin_LeftBumper","value": "5"} - ,{"name": "k_EControllerActionOrigin_RightBumper","value": "6"} - ,{"name": "k_EControllerActionOrigin_LeftGrip","value": "7"} - ,{"name": "k_EControllerActionOrigin_RightGrip","value": "8"} - ,{"name": "k_EControllerActionOrigin_Start","value": "9"} - ,{"name": "k_EControllerActionOrigin_Back","value": "10"} - ,{"name": "k_EControllerActionOrigin_LeftPad_Touch","value": "11"} - ,{"name": "k_EControllerActionOrigin_LeftPad_Swipe","value": "12"} - ,{"name": "k_EControllerActionOrigin_LeftPad_Click","value": "13"} - ,{"name": "k_EControllerActionOrigin_LeftPad_DPadNorth","value": "14"} - ,{"name": "k_EControllerActionOrigin_LeftPad_DPadSouth","value": "15"} - ,{"name": "k_EControllerActionOrigin_LeftPad_DPadWest","value": "16"} - ,{"name": "k_EControllerActionOrigin_LeftPad_DPadEast","value": "17"} - ,{"name": "k_EControllerActionOrigin_RightPad_Touch","value": "18"} - ,{"name": "k_EControllerActionOrigin_RightPad_Swipe","value": "19"} - ,{"name": "k_EControllerActionOrigin_RightPad_Click","value": "20"} - ,{"name": "k_EControllerActionOrigin_RightPad_DPadNorth","value": "21"} - ,{"name": "k_EControllerActionOrigin_RightPad_DPadSouth","value": "22"} - ,{"name": "k_EControllerActionOrigin_RightPad_DPadWest","value": "23"} - ,{"name": "k_EControllerActionOrigin_RightPad_DPadEast","value": "24"} - ,{"name": "k_EControllerActionOrigin_LeftTrigger_Pull","value": "25"} - ,{"name": "k_EControllerActionOrigin_LeftTrigger_Click","value": "26"} - ,{"name": "k_EControllerActionOrigin_RightTrigger_Pull","value": "27"} - ,{"name": "k_EControllerActionOrigin_RightTrigger_Click","value": "28"} - ,{"name": "k_EControllerActionOrigin_LeftStick_Move","value": "29"} - ,{"name": "k_EControllerActionOrigin_LeftStick_Click","value": "30"} - ,{"name": "k_EControllerActionOrigin_LeftStick_DPadNorth","value": "31"} - ,{"name": "k_EControllerActionOrigin_LeftStick_DPadSouth","value": "32"} - ,{"name": "k_EControllerActionOrigin_LeftStick_DPadWest","value": "33"} - ,{"name": "k_EControllerActionOrigin_LeftStick_DPadEast","value": "34"} - ,{"name": "k_EControllerActionOrigin_Gyro_Move","value": "35"} - ,{"name": "k_EControllerActionOrigin_Gyro_Pitch","value": "36"} - ,{"name": "k_EControllerActionOrigin_Gyro_Yaw","value": "37"} - ,{"name": "k_EControllerActionOrigin_Gyro_Roll","value": "38"} - ,{"name": "k_EControllerActionOrigin_Count","value": "39"} -]} -, {"enumname": "EControllerActivationType","values": [ - {"name": "k_EControllerActivationType_None","value": "0"} - ,{"name": "k_EControllerActivationType_FullPress","value": "1"} - ,{"name": "k_EControllerActivationType_SoftPress","value": "2"} - ,{"name": "k_EControllerActivationType_StartPress","value": "3"} - ,{"name": "k_EControllerActivationType_Release","value": "4"} - ,{"name": "k_EControllerActivationType_LongPress","value": "5"} - ,{"name": "k_EControllerActivationType_DoublePress","value": "6"} - ,{"name": "k_EControllerActivationType_Analog","value": "7"} -]} -, {"enumname": "EControllerPressureButton","values": [ - {"name": "k_EControllerPressureButton_LeftTrackPad","value": "0"} - ,{"name": "k_EControllerPressureButton_RightTrackPad","value": "1"} - ,{"name": "k_EControllerPressureButton_LeftBumper","value": "2"} - ,{"name": "k_EControllerPressureButton_RightBumper","value": "3"} - ,{"name": "k_EControllerPressureButton_LeftGripLower","value": "4"} - ,{"name": "k_EControllerPressureButton_RightGripLower","value": "5"} - ,{"name": "k_EControllerPressureButton_LeftGripUpper","value": "6"} - ,{"name": "k_EControllerPressureButton_RightGripUpper","value": "7"} - ,{"name": "k_EControllerPressureButton_Invalid","value": "8"} -]} -, {"enumname": "EControllerActivatorOutputAxis","values": [ - {"name": "k_EOutputAxisLeftTrigger","value": "0"} - ,{"name": "k_EOutputAxisRightTrigger","value": "1"} - ,{"name": "k_EOutputAxisLeftThumbXPos","value": "2"} - ,{"name": "k_EOutputAxisLeftThumbXNeg","value": "3"} - ,{"name": "k_EOutputAxisLeftThumbYPos","value": "4"} - ,{"name": "k_EOutputAxisLeftThumbYNeg","value": "5"} - ,{"name": "k_EOutputAxisRightThumbXPos","value": "6"} - ,{"name": "k_EOutputAxisRightThumbXNeg","value": "7"} - ,{"name": "k_EOutputAxisRightThumbYPos","value": "8"} - ,{"name": "k_EOutputAxisRightThumbYNeg","value": "9"} -]} -, {"enumname": "EControllerConfigFeature","values": [ - {"name": "k_EControllerConfigFeature_None","value": "0"} - ,{"name": "k_EControllerConfigFeature_Gamepad","value": "1"} - ,{"name": "k_EControllerConfigFeature_Keyboard","value": "2"} - ,{"name": "k_EControllerConfigFeature_Mouse","value": "3"} - ,{"name": "k_EControllerConfigFeature_Gyro","value": "4"} - ,{"name": "k_EControllerConfigFeature_TouchMenu","value": "5"} - ,{"name": "k_EControllerConfigFeature_ModeShift","value": "6"} - ,{"name": "k_EControllerConfigFeature_ActionSet","value": "7"} - ,{"name": "k_EControllerConfigFeature_Activator","value": "8"} -]} -, {"enumname": "EControllerPopupMenuActivationType","values": [ - {"name": "k_EMenuButtonPress","value": "0"} - ,{"name": "k_EMenuButtonRelease","value": "1"} - ,{"name": "k_EMenuTouchRelease","value": "2"} - ,{"name": "k_EMenuTouchAlways","value": "3"} -]} -, {"enumname": "EUGCMatchingUGCType","values": [ - {"name": "k_EUGCMatchingUGCType_Items","value": "0"} - ,{"name": "k_EUGCMatchingUGCType_Items_Mtx","value": "1"} - ,{"name": "k_EUGCMatchingUGCType_Items_ReadyToUse","value": "2"} - ,{"name": "k_EUGCMatchingUGCType_Collections","value": "3"} - ,{"name": "k_EUGCMatchingUGCType_Artwork","value": "4"} - ,{"name": "k_EUGCMatchingUGCType_Videos","value": "5"} - ,{"name": "k_EUGCMatchingUGCType_Screenshots","value": "6"} - ,{"name": "k_EUGCMatchingUGCType_AllGuides","value": "7"} - ,{"name": "k_EUGCMatchingUGCType_WebGuides","value": "8"} - ,{"name": "k_EUGCMatchingUGCType_IntegratedGuides","value": "9"} - ,{"name": "k_EUGCMatchingUGCType_UsableInGame","value": "10"} - ,{"name": "k_EUGCMatchingUGCType_ControllerBindings","value": "11"} - ,{"name": "k_EUGCMatchingUGCType_GameManagedItems","value": "12"} - ,{"name": "k_EUGCMatchingUGCType_All","value": "-1"} -]} -, {"enumname": "EUserUGCList","values": [ - {"name": "k_EUserUGCList_Published","value": "0"} - ,{"name": "k_EUserUGCList_VotedOn","value": "1"} - ,{"name": "k_EUserUGCList_VotedUp","value": "2"} - ,{"name": "k_EUserUGCList_VotedDown","value": "3"} - ,{"name": "k_EUserUGCList_WillVoteLater","value": "4"} - ,{"name": "k_EUserUGCList_Favorited","value": "5"} - ,{"name": "k_EUserUGCList_Subscribed","value": "6"} - ,{"name": "k_EUserUGCList_UsedOrPlayed","value": "7"} - ,{"name": "k_EUserUGCList_Followed","value": "8"} -]} -, {"enumname": "EUserUGCListSortOrder","values": [ - {"name": "k_EUserUGCListSortOrder_CreationOrderDesc","value": "0"} - ,{"name": "k_EUserUGCListSortOrder_CreationOrderAsc","value": "1"} - ,{"name": "k_EUserUGCListSortOrder_TitleAsc","value": "2"} - ,{"name": "k_EUserUGCListSortOrder_LastUpdatedDesc","value": "3"} - ,{"name": "k_EUserUGCListSortOrder_SubscriptionDateDesc","value": "4"} - ,{"name": "k_EUserUGCListSortOrder_VoteScoreDesc","value": "5"} - ,{"name": "k_EUserUGCListSortOrder_ForModeration","value": "6"} -]} -, {"enumname": "EUGCQuery","values": [ - {"name": "k_EUGCQuery_RankedByVote","value": "0"} - ,{"name": "k_EUGCQuery_RankedByPublicationDate","value": "1"} - ,{"name": "k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate","value": "2"} - ,{"name": "k_EUGCQuery_RankedByTrend","value": "3"} - ,{"name": "k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate","value": "4"} - ,{"name": "k_EUGCQuery_CreatedByFriendsRankedByPublicationDate","value": "5"} - ,{"name": "k_EUGCQuery_RankedByNumTimesReported","value": "6"} - ,{"name": "k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate","value": "7"} - ,{"name": "k_EUGCQuery_NotYetRated","value": "8"} - ,{"name": "k_EUGCQuery_RankedByTotalVotesAsc","value": "9"} - ,{"name": "k_EUGCQuery_RankedByVotesUp","value": "10"} - ,{"name": "k_EUGCQuery_RankedByTextSearch","value": "11"} - ,{"name": "k_EUGCQuery_RankedByTotalUniqueSubscriptions","value": "12"} - ,{"name": "k_EUGCQuery_RankedByPlaytimeTrend","value": "13"} - ,{"name": "k_EUGCQuery_RankedByTotalPlaytime","value": "14"} - ,{"name": "k_EUGCQuery_RankedByAveragePlaytimeTrend","value": "15"} - ,{"name": "k_EUGCQuery_RankedByLifetimeAveragePlaytime","value": "16"} - ,{"name": "k_EUGCQuery_RankedByPlaytimeSessionsTrend","value": "17"} - ,{"name": "k_EUGCQuery_RankedByLifetimePlaytimeSessions","value": "18"} -]} -, {"enumname": "EItemUpdateStatus","values": [ - {"name": "k_EItemUpdateStatusInvalid","value": "0"} - ,{"name": "k_EItemUpdateStatusPreparingConfig","value": "1"} - ,{"name": "k_EItemUpdateStatusPreparingContent","value": "2"} - ,{"name": "k_EItemUpdateStatusUploadingContent","value": "3"} - ,{"name": "k_EItemUpdateStatusUploadingPreviewFile","value": "4"} - ,{"name": "k_EItemUpdateStatusCommittingChanges","value": "5"} -]} -, {"enumname": "EItemState","values": [ - {"name": "k_EItemStateNone","value": "0"} - ,{"name": "k_EItemStateSubscribed","value": "1"} - ,{"name": "k_EItemStateLegacyItem","value": "2"} - ,{"name": "k_EItemStateInstalled","value": "4"} - ,{"name": "k_EItemStateNeedsUpdate","value": "8"} - ,{"name": "k_EItemStateDownloading","value": "16"} - ,{"name": "k_EItemStateDownloadPending","value": "32"} -]} -, {"enumname": "EItemStatistic","values": [ - {"name": "k_EItemStatistic_NumSubscriptions","value": "0"} - ,{"name": "k_EItemStatistic_NumFavorites","value": "1"} - ,{"name": "k_EItemStatistic_NumFollowers","value": "2"} - ,{"name": "k_EItemStatistic_NumUniqueSubscriptions","value": "3"} - ,{"name": "k_EItemStatistic_NumUniqueFavorites","value": "4"} - ,{"name": "k_EItemStatistic_NumUniqueFollowers","value": "5"} - ,{"name": "k_EItemStatistic_NumUniqueWebsiteViews","value": "6"} - ,{"name": "k_EItemStatistic_ReportScore","value": "7"} - ,{"name": "k_EItemStatistic_NumSecondsPlayed","value": "8"} - ,{"name": "k_EItemStatistic_NumPlaytimeSessions","value": "9"} - ,{"name": "k_EItemStatistic_NumComments","value": "10"} -]} -, {"enumname": "EItemPreviewType","values": [ - {"name": "k_EItemPreviewType_Image","value": "0"} - ,{"name": "k_EItemPreviewType_YouTubeVideo","value": "1"} - ,{"name": "k_EItemPreviewType_Sketchfab","value": "2"} - ,{"name": "k_EItemPreviewType_EnvironmentMap_HorizontalCross","value": "3"} - ,{"name": "k_EItemPreviewType_EnvironmentMap_LatLong","value": "4"} - ,{"name": "k_EItemPreviewType_ReservedMax","value": "255"} -]} -, {"enumname": "ISteamHTMLSurface::EHTMLMouseButton","values": [ - {"name": "eHTMLMouseButton_Left","value": "0"} - ,{"name": "eHTMLMouseButton_Right","value": "1"} - ,{"name": "eHTMLMouseButton_Middle","value": "2"} -]} -, {"enumname": "ISteamHTMLSurface::EMouseCursor","values": [ - {"name": "dc_user","value": "0"} - ,{"name": "dc_none","value": "1"} - ,{"name": "dc_arrow","value": "2"} - ,{"name": "dc_ibeam","value": "3"} - ,{"name": "dc_hourglass","value": "4"} - ,{"name": "dc_waitarrow","value": "5"} - ,{"name": "dc_crosshair","value": "6"} - ,{"name": "dc_up","value": "7"} - ,{"name": "dc_sizenw","value": "8"} - ,{"name": "dc_sizese","value": "9"} - ,{"name": "dc_sizene","value": "10"} - ,{"name": "dc_sizesw","value": "11"} - ,{"name": "dc_sizew","value": "12"} - ,{"name": "dc_sizee","value": "13"} - ,{"name": "dc_sizen","value": "14"} - ,{"name": "dc_sizes","value": "15"} - ,{"name": "dc_sizewe","value": "16"} - ,{"name": "dc_sizens","value": "17"} - ,{"name": "dc_sizeall","value": "18"} - ,{"name": "dc_no","value": "19"} - ,{"name": "dc_hand","value": "20"} - ,{"name": "dc_blank","value": "21"} - ,{"name": "dc_middle_pan","value": "22"} - ,{"name": "dc_north_pan","value": "23"} - ,{"name": "dc_north_east_pan","value": "24"} - ,{"name": "dc_east_pan","value": "25"} - ,{"name": "dc_south_east_pan","value": "26"} - ,{"name": "dc_south_pan","value": "27"} - ,{"name": "dc_south_west_pan","value": "28"} - ,{"name": "dc_west_pan","value": "29"} - ,{"name": "dc_north_west_pan","value": "30"} - ,{"name": "dc_alias","value": "31"} - ,{"name": "dc_cell","value": "32"} - ,{"name": "dc_colresize","value": "33"} - ,{"name": "dc_copycur","value": "34"} - ,{"name": "dc_verticaltext","value": "35"} - ,{"name": "dc_rowresize","value": "36"} - ,{"name": "dc_zoomin","value": "37"} - ,{"name": "dc_zoomout","value": "38"} - ,{"name": "dc_help","value": "39"} - ,{"name": "dc_custom","value": "40"} - ,{"name": "dc_last","value": "41"} -]} -, {"enumname": "ISteamHTMLSurface::EHTMLKeyModifiers","values": [ - {"name": "k_eHTMLKeyModifier_None","value": "0"} - ,{"name": "k_eHTMLKeyModifier_AltDown","value": "1"} - ,{"name": "k_eHTMLKeyModifier_CtrlDown","value": "2"} - ,{"name": "k_eHTMLKeyModifier_ShiftDown","value": "4"} -]} -, {"enumname": "ESteamItemFlags","values": [ - {"name": "k_ESteamItemNoTrade","value": "1"} - ,{"name": "k_ESteamItemRemoved","value": "256"} - ,{"name": "k_ESteamItemConsumed","value": "512"} -]} -], -"consts":[{ - "constname": "k_iSteamUserCallbacks","consttype": "int", "constval": "100"} -,{ - "constname": "k_iSteamGameServerCallbacks","consttype": "int", "constval": "200"} -,{ - "constname": "k_iSteamFriendsCallbacks","consttype": "int", "constval": "300"} -,{ - "constname": "k_iSteamBillingCallbacks","consttype": "int", "constval": "400"} -,{ - "constname": "k_iSteamMatchmakingCallbacks","consttype": "int", "constval": "500"} -,{ - "constname": "k_iSteamContentServerCallbacks","consttype": "int", "constval": "600"} -,{ - "constname": "k_iSteamUtilsCallbacks","consttype": "int", "constval": "700"} -,{ - "constname": "k_iClientFriendsCallbacks","consttype": "int", "constval": "800"} -,{ - "constname": "k_iClientUserCallbacks","consttype": "int", "constval": "900"} -,{ - "constname": "k_iSteamAppsCallbacks","consttype": "int", "constval": "1000"} -,{ - "constname": "k_iSteamUserStatsCallbacks","consttype": "int", "constval": "1100"} -,{ - "constname": "k_iSteamNetworkingCallbacks","consttype": "int", "constval": "1200"} -,{ - "constname": "k_iClientRemoteStorageCallbacks","consttype": "int", "constval": "1300"} -,{ - "constname": "k_iClientDepotBuilderCallbacks","consttype": "int", "constval": "1400"} -,{ - "constname": "k_iSteamGameServerItemsCallbacks","consttype": "int", "constval": "1500"} -,{ - "constname": "k_iClientUtilsCallbacks","consttype": "int", "constval": "1600"} -,{ - "constname": "k_iSteamGameCoordinatorCallbacks","consttype": "int", "constval": "1700"} -,{ - "constname": "k_iSteamGameServerStatsCallbacks","consttype": "int", "constval": "1800"} -,{ - "constname": "k_iSteam2AsyncCallbacks","consttype": "int", "constval": "1900"} -,{ - "constname": "k_iSteamGameStatsCallbacks","consttype": "int", "constval": "2000"} -,{ - "constname": "k_iClientHTTPCallbacks","consttype": "int", "constval": "2100"} -,{ - "constname": "k_iClientScreenshotsCallbacks","consttype": "int", "constval": "2200"} -,{ - "constname": "k_iSteamScreenshotsCallbacks","consttype": "int", "constval": "2300"} -,{ - "constname": "k_iClientAudioCallbacks","consttype": "int", "constval": "2400"} -,{ - "constname": "k_iClientUnifiedMessagesCallbacks","consttype": "int", "constval": "2500"} -,{ - "constname": "k_iSteamStreamLauncherCallbacks","consttype": "int", "constval": "2600"} -,{ - "constname": "k_iClientControllerCallbacks","consttype": "int", "constval": "2700"} -,{ - "constname": "k_iSteamControllerCallbacks","consttype": "int", "constval": "2800"} -,{ - "constname": "k_iClientParentalSettingsCallbacks","consttype": "int", "constval": "2900"} -,{ - "constname": "k_iClientDeviceAuthCallbacks","consttype": "int", "constval": "3000"} -,{ - "constname": "k_iClientNetworkDeviceManagerCallbacks","consttype": "int", "constval": "3100"} -,{ - "constname": "k_iClientMusicCallbacks","consttype": "int", "constval": "3200"} -,{ - "constname": "k_iClientRemoteClientManagerCallbacks","consttype": "int", "constval": "3300"} -,{ - "constname": "k_iClientUGCCallbacks","consttype": "int", "constval": "3400"} -,{ - "constname": "k_iSteamStreamClientCallbacks","consttype": "int", "constval": "3500"} -,{ - "constname": "k_IClientProductBuilderCallbacks","consttype": "int", "constval": "3600"} -,{ - "constname": "k_iClientShortcutsCallbacks","consttype": "int", "constval": "3700"} -,{ - "constname": "k_iClientRemoteControlManagerCallbacks","consttype": "int", "constval": "3800"} -,{ - "constname": "k_iSteamAppListCallbacks","consttype": "int", "constval": "3900"} -,{ - "constname": "k_iSteamMusicCallbacks","consttype": "int", "constval": "4000"} -,{ - "constname": "k_iSteamMusicRemoteCallbacks","consttype": "int", "constval": "4100"} -,{ - "constname": "k_iClientVRCallbacks","consttype": "int", "constval": "4200"} -,{ - "constname": "k_iClientGameNotificationCallbacks","consttype": "int", "constval": "4300"} -,{ - "constname": "k_iSteamGameNotificationCallbacks","consttype": "int", "constval": "4400"} -,{ - "constname": "k_iSteamHTMLSurfaceCallbacks","consttype": "int", "constval": "4500"} -,{ - "constname": "k_iClientVideoCallbacks","consttype": "int", "constval": "4600"} -,{ - "constname": "k_iClientInventoryCallbacks","consttype": "int", "constval": "4700"} -,{ - "constname": "k_iClientBluetoothManagerCallbacks","consttype": "int", "constval": "4800"} -,{ - "constname": "k_cchPersonaNameMax","consttype": "int", "constval": "128"} -,{ - "constname": "k_cwchPersonaNameMax","consttype": "int", "constval": "32"} -,{ - "constname": "k_cchMaxRichPresenceKeys","consttype": "int", "constval": "20"} -,{ - "constname": "k_cchMaxRichPresenceKeyLength","consttype": "int", "constval": "64"} -,{ - "constname": "k_cchMaxRichPresenceValueLength","consttype": "int", "constval": "256"} -,{ - "constname": "k_cchStatNameMax","consttype": "int", "constval": "128"} -,{ - "constname": "k_cchLeaderboardNameMax","consttype": "int", "constval": "128"} -,{ - "constname": "k_cLeaderboardDetailsMax","consttype": "int", "constval": "64"} -,{ - "constname": "k_InvalidUnifiedMessageHandle","consttype": "const ClientUnifiedMessageHandle", "constval": "0"} -,{ - "constname": "k_SteamItemInstanceIDInvalid","consttype": "const SteamItemInstanceID_t", "constval": "18446744073709551615"} -,{ - "constname": "k_SteamInventoryResultInvalid","consttype": "const SteamInventoryResult_t", "constval": "-1"} -], -"structs":[{"struct": "CSteamID","fields": [ -{ "fieldname": "m_steamid", "fieldtype": "union SteamID_t"}]} -,{"struct": "CSteamID::SteamID_t","fields": [ -{ "fieldname": "m_comp", "fieldtype": "struct SteamIDComponent_t"}, -{ "fieldname": "m_unAll64Bits", "fieldtype": "uint64"}]} -,{"struct": "CSteamID::SteamID_t::SteamIDComponent_t","fields": [ -{ "fieldname": "m_unAccountID", "fieldtype": "uint32"}, -{ "fieldname": "m_unAccountInstance", "fieldtype": "unsigned int"}, -{ "fieldname": "m_EAccountType", "fieldtype": "unsigned int"}, -{ "fieldname": "m_EUniverse", "fieldtype": "enum EUniverse"}]} -,{"struct": "CGameID::GameID_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "unsigned int"}, -{ "fieldname": "m_nType", "fieldtype": "unsigned int"}, -{ "fieldname": "m_nModID", "fieldtype": "unsigned int"}]} -,{"struct": "CGameID::(anonymous)","fields": [ -{ "fieldname": "m_ulGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_gameID", "fieldtype": "struct CGameID::GameID_t"}]} -,{"struct": "ValvePackingSentinel_t","fields": [ -{ "fieldname": "m_u32", "fieldtype": "uint32"}, -{ "fieldname": "m_u64", "fieldtype": "uint64"}, -{ "fieldname": "m_u16", "fieldtype": "uint16"}, -{ "fieldname": "m_d", "fieldtype": "double"}]} -,{"struct": "CallbackMsg_t","fields": [ -{ "fieldname": "m_hSteamUser", "fieldtype": "HSteamUser"}, -{ "fieldname": "m_iCallback", "fieldtype": "int"}, -{ "fieldname": "m_pubParam", "fieldtype": "uint8 *"}, -{ "fieldname": "m_cubParam", "fieldtype": "int"}]} -,{"struct": "SteamServerConnectFailure_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bStillRetrying", "fieldtype": "_Bool"}]} -,{"struct": "SteamServersDisconnected_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "ClientGameServerDeny_t","fields": [ -{ "fieldname": "m_uAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_unGameServerIP", "fieldtype": "uint32"}, -{ "fieldname": "m_usGameServerPort", "fieldtype": "uint16"}, -{ "fieldname": "m_bSecure", "fieldtype": "uint16"}, -{ "fieldname": "m_uReason", "fieldtype": "uint32"}]} -,{"struct": "ValidateAuthTicketResponse_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eAuthSessionResponse", "fieldtype": "enum EAuthSessionResponse"}, -{ "fieldname": "m_OwnerSteamID", "fieldtype": "class CSteamID"}]} -,{"struct": "MicroTxnAuthorizationResponse_t","fields": [ -{ "fieldname": "m_unAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_ulOrderID", "fieldtype": "uint64"}, -{ "fieldname": "m_bAuthorized", "fieldtype": "uint8"}]} -,{"struct": "EncryptedAppTicketResponse_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "GetAuthSessionTicketResponse_t","fields": [ -{ "fieldname": "m_hAuthTicket", "fieldtype": "HAuthTicket"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "GameWebCallback_t","fields": [ -{ "fieldname": "m_szURL", "fieldtype": "char [256]"}]} -,{"struct": "StoreAuthURLResponse_t","fields": [ -{ "fieldname": "m_szURL", "fieldtype": "char [512]"}]} -,{"struct": "FriendGameInfo_t","fields": [ -{ "fieldname": "m_gameID", "fieldtype": "class CGameID"}, -{ "fieldname": "m_unGameIP", "fieldtype": "uint32"}, -{ "fieldname": "m_usGamePort", "fieldtype": "uint16"}, -{ "fieldname": "m_usQueryPort", "fieldtype": "uint16"}, -{ "fieldname": "m_steamIDLobby", "fieldtype": "class CSteamID"}]} -,{"struct": "FriendSessionStateInfo_t","fields": [ -{ "fieldname": "m_uiOnlineSessionInstances", "fieldtype": "uint32"}, -{ "fieldname": "m_uiPublishedToFriendsSessionInstance", "fieldtype": "uint8"}]} -,{"struct": "PersonaStateChange_t","fields": [ -{ "fieldname": "m_ulSteamID", "fieldtype": "uint64"}, -{ "fieldname": "m_nChangeFlags", "fieldtype": "int"}]} -,{"struct": "GameOverlayActivated_t","fields": [ -{ "fieldname": "m_bActive", "fieldtype": "uint8"}]} -,{"struct": "GameServerChangeRequested_t","fields": [ -{ "fieldname": "m_rgchServer", "fieldtype": "char [64]"}, -{ "fieldname": "m_rgchPassword", "fieldtype": "char [64]"}]} -,{"struct": "GameLobbyJoinRequested_t","fields": [ -{ "fieldname": "m_steamIDLobby", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_steamIDFriend", "fieldtype": "class CSteamID"}]} -,{"struct": "AvatarImageLoaded_t","fields": [ -{ "fieldname": "m_steamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_iImage", "fieldtype": "int"}, -{ "fieldname": "m_iWide", "fieldtype": "int"}, -{ "fieldname": "m_iTall", "fieldtype": "int"}]} -,{"struct": "ClanOfficerListResponse_t","fields": [ -{ "fieldname": "m_steamIDClan", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_cOfficers", "fieldtype": "int"}, -{ "fieldname": "m_bSuccess", "fieldtype": "uint8"}]} -,{"struct": "FriendRichPresenceUpdate_t","fields": [ -{ "fieldname": "m_steamIDFriend", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "GameRichPresenceJoinRequested_t","fields": [ -{ "fieldname": "m_steamIDFriend", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_rgchConnect", "fieldtype": "char [256]"}]} -,{"struct": "GameConnectedClanChatMsg_t","fields": [ -{ "fieldname": "m_steamIDClanChat", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_iMessageID", "fieldtype": "int"}]} -,{"struct": "GameConnectedChatJoin_t","fields": [ -{ "fieldname": "m_steamIDClanChat", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "GameConnectedChatLeave_t","fields": [ -{ "fieldname": "m_steamIDClanChat", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_bKicked", "fieldtype": "_Bool"}, -{ "fieldname": "m_bDropped", "fieldtype": "_Bool"}]} -,{"struct": "DownloadClanActivityCountsResult_t","fields": [ -{ "fieldname": "m_bSuccess", "fieldtype": "_Bool"}]} -,{"struct": "JoinClanChatRoomCompletionResult_t","fields": [ -{ "fieldname": "m_steamIDClanChat", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eChatRoomEnterResponse", "fieldtype": "enum EChatRoomEnterResponse"}]} -,{"struct": "GameConnectedFriendChatMsg_t","fields": [ -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_iMessageID", "fieldtype": "int"}]} -,{"struct": "FriendsGetFollowerCount_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_nCount", "fieldtype": "int"}]} -,{"struct": "FriendsIsFollowing_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_bIsFollowing", "fieldtype": "_Bool"}]} -,{"struct": "FriendsEnumerateFollowingList_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_rgSteamID", "fieldtype": "class CSteamID [50]"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}]} -,{"struct": "SetPersonaNameResponse_t","fields": [ -{ "fieldname": "m_bSuccess", "fieldtype": "_Bool"}, -{ "fieldname": "m_bLocalSuccess", "fieldtype": "_Bool"}, -{ "fieldname": "m_result", "fieldtype": "enum EResult"}]} -,{"struct": "LowBatteryPower_t","fields": [ -{ "fieldname": "m_nMinutesBatteryLeft", "fieldtype": "uint8"}]} -,{"struct": "SteamAPICallCompleted_t","fields": [ -{ "fieldname": "m_hAsyncCall", "fieldtype": "SteamAPICall_t"}, -{ "fieldname": "m_iCallback", "fieldtype": "int"}, -{ "fieldname": "m_cubParam", "fieldtype": "uint32"}]} -,{"struct": "CheckFileSignature_t","fields": [ -{ "fieldname": "m_eCheckFileSignature", "fieldtype": "enum ECheckFileSignature"}]} -,{"struct": "GamepadTextInputDismissed_t","fields": [ -{ "fieldname": "m_bSubmitted", "fieldtype": "_Bool"}, -{ "fieldname": "m_unSubmittedText", "fieldtype": "uint32"}]} -,{"struct": "MatchMakingKeyValuePair_t","fields": [ -{ "fieldname": "m_szKey", "fieldtype": "char [256]"}, -{ "fieldname": "m_szValue", "fieldtype": "char [256]"}]} -,{"struct": "servernetadr_t","fields": [ -{ "fieldname": "m_usConnectionPort", "fieldtype": "uint16"}, -{ "fieldname": "m_usQueryPort", "fieldtype": "uint16"}, -{ "fieldname": "m_unIP", "fieldtype": "uint32"}]} -,{"struct": "gameserveritem_t","fields": [ -{ "fieldname": "m_NetAdr", "fieldtype": "class servernetadr_t"}, -{ "fieldname": "m_nPing", "fieldtype": "int"}, -{ "fieldname": "m_bHadSuccessfulResponse", "fieldtype": "_Bool"}, -{ "fieldname": "m_bDoNotRefresh", "fieldtype": "_Bool"}, -{ "fieldname": "m_szGameDir", "fieldtype": "char [32]"}, -{ "fieldname": "m_szMap", "fieldtype": "char [32]"}, -{ "fieldname": "m_szGameDescription", "fieldtype": "char [64]"}, -{ "fieldname": "m_nAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_nPlayers", "fieldtype": "int"}, -{ "fieldname": "m_nMaxPlayers", "fieldtype": "int"}, -{ "fieldname": "m_nBotPlayers", "fieldtype": "int"}, -{ "fieldname": "m_bPassword", "fieldtype": "_Bool"}, -{ "fieldname": "m_bSecure", "fieldtype": "_Bool"}, -{ "fieldname": "m_ulTimeLastPlayed", "fieldtype": "uint32"}, -{ "fieldname": "m_nServerVersion", "fieldtype": "int"}, -{ "fieldname": "m_szServerName", "fieldtype": "char [64]"}, -{ "fieldname": "m_szGameTags", "fieldtype": "char [128]"}, -{ "fieldname": "m_steamID", "fieldtype": "class CSteamID"}]} -,{"struct": "FavoritesListChanged_t","fields": [ -{ "fieldname": "m_nIP", "fieldtype": "uint32"}, -{ "fieldname": "m_nQueryPort", "fieldtype": "uint32"}, -{ "fieldname": "m_nConnPort", "fieldtype": "uint32"}, -{ "fieldname": "m_nAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_nFlags", "fieldtype": "uint32"}, -{ "fieldname": "m_bAdd", "fieldtype": "_Bool"}, -{ "fieldname": "m_unAccountId", "fieldtype": "AccountID_t"}]} -,{"struct": "LobbyInvite_t","fields": [ -{ "fieldname": "m_ulSteamIDUser", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulGameID", "fieldtype": "uint64"}]} -,{"struct": "LobbyEnter_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_rgfChatPermissions", "fieldtype": "uint32"}, -{ "fieldname": "m_bLocked", "fieldtype": "_Bool"}, -{ "fieldname": "m_EChatRoomEnterResponse", "fieldtype": "uint32"}]} -,{"struct": "LobbyDataUpdate_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDMember", "fieldtype": "uint64"}, -{ "fieldname": "m_bSuccess", "fieldtype": "uint8"}]} -,{"struct": "LobbyChatUpdate_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDUserChanged", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDMakingChange", "fieldtype": "uint64"}, -{ "fieldname": "m_rgfChatMemberStateChange", "fieldtype": "uint32"}]} -,{"struct": "LobbyChatMsg_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDUser", "fieldtype": "uint64"}, -{ "fieldname": "m_eChatEntryType", "fieldtype": "uint8"}, -{ "fieldname": "m_iChatID", "fieldtype": "uint32"}]} -,{"struct": "LobbyGameCreated_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDGameServer", "fieldtype": "uint64"}, -{ "fieldname": "m_unIP", "fieldtype": "uint32"}, -{ "fieldname": "m_usPort", "fieldtype": "uint16"}]} -,{"struct": "LobbyMatchList_t","fields": [ -{ "fieldname": "m_nLobbiesMatching", "fieldtype": "uint32"}]} -,{"struct": "LobbyKicked_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDAdmin", "fieldtype": "uint64"}, -{ "fieldname": "m_bKickedDueToDisconnect", "fieldtype": "uint8"}]} -,{"struct": "LobbyCreated_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}]} -,{"struct": "PSNGameBootInviteResult_t","fields": [ -{ "fieldname": "m_bGameBootInviteExists", "fieldtype": "_Bool"}, -{ "fieldname": "m_steamIDLobby", "fieldtype": "class CSteamID"}]} -,{"struct": "FavoritesListAccountsUpdated_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "SteamParamStringArray_t","fields": [ -{ "fieldname": "m_ppStrings", "fieldtype": "const char **"}, -{ "fieldname": "m_nNumStrings", "fieldtype": "int32"}]} -,{"struct": "RemoteStorageAppSyncedClient_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unNumDownloads", "fieldtype": "int"}]} -,{"struct": "RemoteStorageAppSyncedServer_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unNumUploads", "fieldtype": "int"}]} -,{"struct": "RemoteStorageAppSyncProgress_t","fields": [ -{ "fieldname": "m_rgchCurrentFile", "fieldtype": "char [260]"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_uBytesTransferredThisChunk", "fieldtype": "uint32"}, -{ "fieldname": "m_dAppPercentComplete", "fieldtype": "double"}, -{ "fieldname": "m_bUploading", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStorageAppSyncStatusCheck_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "RemoteStorageFileShareResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_hFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_rgchFilename", "fieldtype": "char [260]"}]} -,{"struct": "RemoteStoragePublishFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStorageDeletePublishedFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}]} -,{"struct": "RemoteStorageEnumerateUserPublishedFilesResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}]} -,{"struct": "RemoteStorageSubscribePublishedFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}]} -,{"struct": "RemoteStorageEnumerateUserSubscribedFilesResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}, -{ "fieldname": "m_rgRTimeSubscribed", "fieldtype": "uint32 [50]"}]} -,{"struct": "RemoteStorageUnsubscribePublishedFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}]} -,{"struct": "RemoteStorageUpdatePublishedFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStorageDownloadUGCResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_hFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_nSizeInBytes", "fieldtype": "int32"}, -{ "fieldname": "m_pchFileName", "fieldtype": "char [260]"}, -{ "fieldname": "m_ulSteamIDOwner", "fieldtype": "uint64"}]} -,{"struct": "RemoteStorageGetPublishedFileDetailsResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nCreatorAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_nConsumerAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_rgchTitle", "fieldtype": "char [129]"}, -{ "fieldname": "m_rgchDescription", "fieldtype": "char [8000]"}, -{ "fieldname": "m_hFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_hPreviewFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_ulSteamIDOwner", "fieldtype": "uint64"}, -{ "fieldname": "m_rtimeCreated", "fieldtype": "uint32"}, -{ "fieldname": "m_rtimeUpdated", "fieldtype": "uint32"}, -{ "fieldname": "m_eVisibility", "fieldtype": "enum ERemoteStoragePublishedFileVisibility"}, -{ "fieldname": "m_bBanned", "fieldtype": "_Bool"}, -{ "fieldname": "m_rgchTags", "fieldtype": "char [1025]"}, -{ "fieldname": "m_bTagsTruncated", "fieldtype": "_Bool"}, -{ "fieldname": "m_pchFileName", "fieldtype": "char [260]"}, -{ "fieldname": "m_nFileSize", "fieldtype": "int32"}, -{ "fieldname": "m_nPreviewFileSize", "fieldtype": "int32"}, -{ "fieldname": "m_rgchURL", "fieldtype": "char [256]"}, -{ "fieldname": "m_eFileType", "fieldtype": "enum EWorkshopFileType"}, -{ "fieldname": "m_bAcceptedForUse", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStorageEnumerateWorkshopFilesResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}, -{ "fieldname": "m_rgScore", "fieldtype": "float [50]"}, -{ "fieldname": "m_nAppId", "fieldtype": "AppId_t"}, -{ "fieldname": "m_unStartIndex", "fieldtype": "uint32"}]} -,{"struct": "RemoteStorageGetPublishedItemVoteDetailsResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nVotesFor", "fieldtype": "int32"}, -{ "fieldname": "m_nVotesAgainst", "fieldtype": "int32"}, -{ "fieldname": "m_nReports", "fieldtype": "int32"}, -{ "fieldname": "m_fScore", "fieldtype": "float"}]} -,{"struct": "RemoteStoragePublishedFileSubscribed_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "RemoteStoragePublishedFileUnsubscribed_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "RemoteStoragePublishedFileDeleted_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "RemoteStorageUpdateUserPublishedItemVoteResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}]} -,{"struct": "RemoteStorageUserVoteDetails_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eVote", "fieldtype": "enum EWorkshopVote"}]} -,{"struct": "RemoteStorageEnumerateUserSharedWorkshopFilesResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}]} -,{"struct": "RemoteStorageSetUserPublishedFileActionResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eAction", "fieldtype": "enum EWorkshopFileAction"}]} -,{"struct": "RemoteStorageEnumeratePublishedFilesByUserActionResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_eAction", "fieldtype": "enum EWorkshopFileAction"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}, -{ "fieldname": "m_rgRTimeUpdated", "fieldtype": "uint32 [50]"}]} -,{"struct": "RemoteStoragePublishFileProgress_t","fields": [ -{ "fieldname": "m_dPercentFile", "fieldtype": "double"}, -{ "fieldname": "m_bPreview", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStoragePublishedFileUpdated_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_ulUnused", "fieldtype": "uint64"}]} -,{"struct": "RemoteStorageFileWriteAsyncComplete_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "RemoteStorageFileReadAsyncComplete_t","fields": [ -{ "fieldname": "m_hFileReadAsync", "fieldtype": "SteamAPICall_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nOffset", "fieldtype": "uint32"}, -{ "fieldname": "m_cubRead", "fieldtype": "uint32"}]} -,{"struct": "LeaderboardEntry_t","fields": [ -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_nGlobalRank", "fieldtype": "int32"}, -{ "fieldname": "m_nScore", "fieldtype": "int32"}, -{ "fieldname": "m_cDetails", "fieldtype": "int32"}, -{ "fieldname": "m_hUGC", "fieldtype": "UGCHandle_t"}]} -,{"struct": "UserStatsReceived_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "UserStatsStored_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "UserAchievementStored_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_bGroupAchievement", "fieldtype": "_Bool"}, -{ "fieldname": "m_rgchAchievementName", "fieldtype": "char [128]"}, -{ "fieldname": "m_nCurProgress", "fieldtype": "uint32"}, -{ "fieldname": "m_nMaxProgress", "fieldtype": "uint32"}]} -,{"struct": "LeaderboardFindResult_t","fields": [ -{ "fieldname": "m_hSteamLeaderboard", "fieldtype": "SteamLeaderboard_t"}, -{ "fieldname": "m_bLeaderboardFound", "fieldtype": "uint8"}]} -,{"struct": "LeaderboardScoresDownloaded_t","fields": [ -{ "fieldname": "m_hSteamLeaderboard", "fieldtype": "SteamLeaderboard_t"}, -{ "fieldname": "m_hSteamLeaderboardEntries", "fieldtype": "SteamLeaderboardEntries_t"}, -{ "fieldname": "m_cEntryCount", "fieldtype": "int"}]} -,{"struct": "LeaderboardScoreUploaded_t","fields": [ -{ "fieldname": "m_bSuccess", "fieldtype": "uint8"}, -{ "fieldname": "m_hSteamLeaderboard", "fieldtype": "SteamLeaderboard_t"}, -{ "fieldname": "m_nScore", "fieldtype": "int32"}, -{ "fieldname": "m_bScoreChanged", "fieldtype": "uint8"}, -{ "fieldname": "m_nGlobalRankNew", "fieldtype": "int"}, -{ "fieldname": "m_nGlobalRankPrevious", "fieldtype": "int"}]} -,{"struct": "NumberOfCurrentPlayers_t","fields": [ -{ "fieldname": "m_bSuccess", "fieldtype": "uint8"}, -{ "fieldname": "m_cPlayers", "fieldtype": "int32"}]} -,{"struct": "UserStatsUnloaded_t","fields": [ -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "UserAchievementIconFetched_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "class CGameID"}, -{ "fieldname": "m_rgchAchievementName", "fieldtype": "char [128]"}, -{ "fieldname": "m_bAchieved", "fieldtype": "_Bool"}, -{ "fieldname": "m_nIconHandle", "fieldtype": "int"}]} -,{"struct": "GlobalAchievementPercentagesReady_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "LeaderboardUGCSet_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_hSteamLeaderboard", "fieldtype": "SteamLeaderboard_t"}]} -,{"struct": "PS3TrophiesInstalled_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_ulRequiredDiskSpace", "fieldtype": "uint64"}]} -,{"struct": "GlobalStatsReceived_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "DlcInstalled_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "RegisterActivationCodeResponse_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum ERegisterActivationCodeResult"}, -{ "fieldname": "m_unPackageRegistered", "fieldtype": "uint32"}]} -,{"struct": "AppProofOfPurchaseKeyResponse_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_cchKeyLength", "fieldtype": "uint32"}, -{ "fieldname": "m_rgchKey", "fieldtype": "char [240]"}]} -,{"struct": "FileDetailsResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_ulFileSize", "fieldtype": "uint64"}, -{ "fieldname": "m_FileSHA", "fieldtype": "uint8 [20]"}, -{ "fieldname": "m_unFlags", "fieldtype": "uint32"}]} -,{"struct": "P2PSessionState_t","fields": [ -{ "fieldname": "m_bConnectionActive", "fieldtype": "uint8"}, -{ "fieldname": "m_bConnecting", "fieldtype": "uint8"}, -{ "fieldname": "m_eP2PSessionError", "fieldtype": "uint8"}, -{ "fieldname": "m_bUsingRelay", "fieldtype": "uint8"}, -{ "fieldname": "m_nBytesQueuedForSend", "fieldtype": "int32"}, -{ "fieldname": "m_nPacketsQueuedForSend", "fieldtype": "int32"}, -{ "fieldname": "m_nRemoteIP", "fieldtype": "uint32"}, -{ "fieldname": "m_nRemotePort", "fieldtype": "uint16"}]} -,{"struct": "P2PSessionRequest_t","fields": [ -{ "fieldname": "m_steamIDRemote", "fieldtype": "class CSteamID"}]} -,{"struct": "P2PSessionConnectFail_t","fields": [ -{ "fieldname": "m_steamIDRemote", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eP2PSessionError", "fieldtype": "uint8"}]} -,{"struct": "SocketStatusCallback_t","fields": [ -{ "fieldname": "m_hSocket", "fieldtype": "SNetSocket_t"}, -{ "fieldname": "m_hListenSocket", "fieldtype": "SNetListenSocket_t"}, -{ "fieldname": "m_steamIDRemote", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eSNetSocketState", "fieldtype": "int"}]} -,{"struct": "ScreenshotReady_t","fields": [ -{ "fieldname": "m_hLocal", "fieldtype": "ScreenshotHandle"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "VolumeHasChanged_t","fields": [ -{ "fieldname": "m_flNewVolume", "fieldtype": "float"}]} -,{"struct": "MusicPlayerWantsShuffled_t","fields": [ -{ "fieldname": "m_bShuffled", "fieldtype": "_Bool"}]} -,{"struct": "MusicPlayerWantsLooped_t","fields": [ -{ "fieldname": "m_bLooped", "fieldtype": "_Bool"}]} -,{"struct": "MusicPlayerWantsVolume_t","fields": [ -{ "fieldname": "m_flNewVolume", "fieldtype": "float"}]} -,{"struct": "MusicPlayerSelectsQueueEntry_t","fields": [ -{ "fieldname": "nID", "fieldtype": "int"}]} -,{"struct": "MusicPlayerSelectsPlaylistEntry_t","fields": [ -{ "fieldname": "nID", "fieldtype": "int"}]} -,{"struct": "MusicPlayerWantsPlayingRepeatStatus_t","fields": [ -{ "fieldname": "m_nPlayingRepeatStatus", "fieldtype": "int"}]} -,{"struct": "HTTPRequestCompleted_t","fields": [ -{ "fieldname": "m_hRequest", "fieldtype": "HTTPRequestHandle"}, -{ "fieldname": "m_ulContextValue", "fieldtype": "uint64"}, -{ "fieldname": "m_bRequestSuccessful", "fieldtype": "_Bool"}, -{ "fieldname": "m_eStatusCode", "fieldtype": "enum EHTTPStatusCode"}, -{ "fieldname": "m_unBodySize", "fieldtype": "uint32"}]} -,{"struct": "HTTPRequestHeadersReceived_t","fields": [ -{ "fieldname": "m_hRequest", "fieldtype": "HTTPRequestHandle"}, -{ "fieldname": "m_ulContextValue", "fieldtype": "uint64"}]} -,{"struct": "HTTPRequestDataReceived_t","fields": [ -{ "fieldname": "m_hRequest", "fieldtype": "HTTPRequestHandle"}, -{ "fieldname": "m_ulContextValue", "fieldtype": "uint64"}, -{ "fieldname": "m_cOffset", "fieldtype": "uint32"}, -{ "fieldname": "m_cBytesReceived", "fieldtype": "uint32"}]} -,{"struct": "SteamUnifiedMessagesSendMethodResult_t","fields": [ -{ "fieldname": "m_hHandle", "fieldtype": "ClientUnifiedMessageHandle"}, -{ "fieldname": "m_unContext", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unResponseSize", "fieldtype": "uint32"}]} -,{"struct": "ControllerAnalogActionData_t","fields": [ -{ "fieldname": "eMode", "fieldtype": "enum EControllerSourceMode"}, -{ "fieldname": "x", "fieldtype": "float"}, -{ "fieldname": "y", "fieldtype": "float"}, -{ "fieldname": "bActive", "fieldtype": "_Bool"}]} -,{"struct": "ControllerDigitalActionData_t","fields": [ -{ "fieldname": "bState", "fieldtype": "_Bool"}, -{ "fieldname": "bActive", "fieldtype": "_Bool"}]} -,{"struct": "ControllerMotionData_t","fields": [ -{ "fieldname": "rotQuatX", "fieldtype": "float"}, -{ "fieldname": "rotQuatY", "fieldtype": "float"}, -{ "fieldname": "rotQuatZ", "fieldtype": "float"}, -{ "fieldname": "rotQuatW", "fieldtype": "float"}, -{ "fieldname": "posAccelX", "fieldtype": "float"}, -{ "fieldname": "posAccelY", "fieldtype": "float"}, -{ "fieldname": "posAccelZ", "fieldtype": "float"}, -{ "fieldname": "rotVelX", "fieldtype": "float"}, -{ "fieldname": "rotVelY", "fieldtype": "float"}, -{ "fieldname": "rotVelZ", "fieldtype": "float"}]} -,{"struct": "SteamUGCDetails_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_eFileType", "fieldtype": "enum EWorkshopFileType"}, -{ "fieldname": "m_nCreatorAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_nConsumerAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_rgchTitle", "fieldtype": "char [129]"}, -{ "fieldname": "m_rgchDescription", "fieldtype": "char [8000]"}, -{ "fieldname": "m_ulSteamIDOwner", "fieldtype": "uint64"}, -{ "fieldname": "m_rtimeCreated", "fieldtype": "uint32"}, -{ "fieldname": "m_rtimeUpdated", "fieldtype": "uint32"}, -{ "fieldname": "m_rtimeAddedToUserList", "fieldtype": "uint32"}, -{ "fieldname": "m_eVisibility", "fieldtype": "enum ERemoteStoragePublishedFileVisibility"}, -{ "fieldname": "m_bBanned", "fieldtype": "_Bool"}, -{ "fieldname": "m_bAcceptedForUse", "fieldtype": "_Bool"}, -{ "fieldname": "m_bTagsTruncated", "fieldtype": "_Bool"}, -{ "fieldname": "m_rgchTags", "fieldtype": "char [1025]"}, -{ "fieldname": "m_hFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_hPreviewFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_pchFileName", "fieldtype": "char [260]"}, -{ "fieldname": "m_nFileSize", "fieldtype": "int32"}, -{ "fieldname": "m_nPreviewFileSize", "fieldtype": "int32"}, -{ "fieldname": "m_rgchURL", "fieldtype": "char [256]"}, -{ "fieldname": "m_unVotesUp", "fieldtype": "uint32"}, -{ "fieldname": "m_unVotesDown", "fieldtype": "uint32"}, -{ "fieldname": "m_flScore", "fieldtype": "float"}, -{ "fieldname": "m_unNumChildren", "fieldtype": "uint32"}]} -,{"struct": "SteamUGCQueryCompleted_t","fields": [ -{ "fieldname": "m_handle", "fieldtype": "UGCQueryHandle_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unNumResultsReturned", "fieldtype": "uint32"}, -{ "fieldname": "m_unTotalMatchingResults", "fieldtype": "uint32"}, -{ "fieldname": "m_bCachedData", "fieldtype": "_Bool"}]} -,{"struct": "SteamUGCRequestUGCDetailsResult_t","fields": [ -{ "fieldname": "m_details", "fieldtype": "struct SteamUGCDetails_t"}, -{ "fieldname": "m_bCachedData", "fieldtype": "_Bool"}]} -,{"struct": "CreateItemResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype": "_Bool"}]} -,{"struct": "SubmitItemUpdateResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype": "_Bool"}]} -,{"struct": "DownloadItemResult_t","fields": [ -{ "fieldname": "m_unAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "UserFavoriteItemsListChanged_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bWasAddRequest", "fieldtype": "_Bool"}]} -,{"struct": "SetUserItemVoteResult_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bVoteUp", "fieldtype": "_Bool"}]} -,{"struct": "GetUserItemVoteResult_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bVotedUp", "fieldtype": "_Bool"}, -{ "fieldname": "m_bVotedDown", "fieldtype": "_Bool"}, -{ "fieldname": "m_bVoteSkipped", "fieldtype": "_Bool"}]} -,{"struct": "StartPlaytimeTrackingResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "StopPlaytimeTrackingResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "SteamAppInstalled_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "SteamAppUninstalled_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "HTML_BrowserReady_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}]} -,{"struct": "HTML_NeedsPaint_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pBGRA", "fieldtype": "const char *"}, -{ "fieldname": "unWide", "fieldtype": "uint32"}, -{ "fieldname": "unTall", "fieldtype": "uint32"}, -{ "fieldname": "unUpdateX", "fieldtype": "uint32"}, -{ "fieldname": "unUpdateY", "fieldtype": "uint32"}, -{ "fieldname": "unUpdateWide", "fieldtype": "uint32"}, -{ "fieldname": "unUpdateTall", "fieldtype": "uint32"}, -{ "fieldname": "unScrollX", "fieldtype": "uint32"}, -{ "fieldname": "unScrollY", "fieldtype": "uint32"}, -{ "fieldname": "flPageScale", "fieldtype": "float"}, -{ "fieldname": "unPageSerial", "fieldtype": "uint32"}]} -,{"struct": "HTML_StartRequest_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "pchTarget", "fieldtype": "const char *"}, -{ "fieldname": "pchPostData", "fieldtype": "const char *"}, -{ "fieldname": "bIsRedirect", "fieldtype": "_Bool"}]} -,{"struct": "HTML_CloseBrowser_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}]} -,{"struct": "HTML_URLChanged_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "pchPostData", "fieldtype": "const char *"}, -{ "fieldname": "bIsRedirect", "fieldtype": "_Bool"}, -{ "fieldname": "pchPageTitle", "fieldtype": "const char *"}, -{ "fieldname": "bNewNavigation", "fieldtype": "_Bool"}]} -,{"struct": "HTML_FinishedRequest_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "pchPageTitle", "fieldtype": "const char *"}]} -,{"struct": "HTML_OpenLinkInNewTab_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}]} -,{"struct": "HTML_ChangedTitle_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchTitle", "fieldtype": "const char *"}]} -,{"struct": "HTML_SearchResults_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "unResults", "fieldtype": "uint32"}, -{ "fieldname": "unCurrentMatch", "fieldtype": "uint32"}]} -,{"struct": "HTML_CanGoBackAndForward_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "bCanGoBack", "fieldtype": "_Bool"}, -{ "fieldname": "bCanGoForward", "fieldtype": "_Bool"}]} -,{"struct": "HTML_HorizontalScroll_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "unScrollMax", "fieldtype": "uint32"}, -{ "fieldname": "unScrollCurrent", "fieldtype": "uint32"}, -{ "fieldname": "flPageScale", "fieldtype": "float"}, -{ "fieldname": "bVisible", "fieldtype": "_Bool"}, -{ "fieldname": "unPageSize", "fieldtype": "uint32"}]} -,{"struct": "HTML_VerticalScroll_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "unScrollMax", "fieldtype": "uint32"}, -{ "fieldname": "unScrollCurrent", "fieldtype": "uint32"}, -{ "fieldname": "flPageScale", "fieldtype": "float"}, -{ "fieldname": "bVisible", "fieldtype": "_Bool"}, -{ "fieldname": "unPageSize", "fieldtype": "uint32"}]} -,{"struct": "HTML_LinkAtPosition_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "x", "fieldtype": "uint32"}, -{ "fieldname": "y", "fieldtype": "uint32"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "bInput", "fieldtype": "_Bool"}, -{ "fieldname": "bLiveLink", "fieldtype": "_Bool"}]} -,{"struct": "HTML_JSAlert_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMessage", "fieldtype": "const char *"}]} -,{"struct": "HTML_JSConfirm_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMessage", "fieldtype": "const char *"}]} -,{"struct": "HTML_FileOpenDialog_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchTitle", "fieldtype": "const char *"}, -{ "fieldname": "pchInitialFile", "fieldtype": "const char *"}]} -,{"struct": "HTML_NewWindow_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "unX", "fieldtype": "uint32"}, -{ "fieldname": "unY", "fieldtype": "uint32"}, -{ "fieldname": "unWide", "fieldtype": "uint32"}, -{ "fieldname": "unTall", "fieldtype": "uint32"}, -{ "fieldname": "unNewWindow_BrowserHandle", "fieldtype": "HHTMLBrowser"}]} -,{"struct": "HTML_SetCursor_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "eMouseCursor", "fieldtype": "uint32"}]} -,{"struct": "HTML_StatusText_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMsg", "fieldtype": "const char *"}]} -,{"struct": "HTML_ShowToolTip_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMsg", "fieldtype": "const char *"}]} -,{"struct": "HTML_UpdateToolTip_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMsg", "fieldtype": "const char *"}]} -,{"struct": "HTML_HideToolTip_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}]} -,{"struct": "SteamItemDetails_t","fields": [ -{ "fieldname": "m_itemId", "fieldtype": "SteamItemInstanceID_t"}, -{ "fieldname": "m_iDefinition", "fieldtype": "SteamItemDef_t"}, -{ "fieldname": "m_unQuantity", "fieldtype": "uint16"}, -{ "fieldname": "m_unFlags", "fieldtype": "uint16"}]} -,{"struct": "SteamInventoryResultReady_t","fields": [ -{ "fieldname": "m_handle", "fieldtype": "SteamInventoryResult_t"}, -{ "fieldname": "m_result", "fieldtype": "enum EResult"}]} -,{"struct": "SteamInventoryFullUpdate_t","fields": [ -{ "fieldname": "m_handle", "fieldtype": "SteamInventoryResult_t"}]} -,{"struct": "BroadcastUploadStop_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EBroadcastUploadResult"}]} -,{"struct": "GetVideoURLResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unVideoAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_rgchURL", "fieldtype": "char [256]"}]} -,{"struct": "CSteamAPIContext","fields": [ -{ "fieldname": "m_pSteamClient", "fieldtype": "class ISteamClient *"}, -{ "fieldname": "m_pSteamUser", "fieldtype": "class ISteamUser *"}, -{ "fieldname": "m_pSteamFriends", "fieldtype": "class ISteamFriends *"}, -{ "fieldname": "m_pSteamUtils", "fieldtype": "class ISteamUtils *"}, -{ "fieldname": "m_pSteamMatchmaking", "fieldtype": "class ISteamMatchmaking *"}, -{ "fieldname": "m_pSteamUserStats", "fieldtype": "class ISteamUserStats *"}, -{ "fieldname": "m_pSteamApps", "fieldtype": "class ISteamApps *"}, -{ "fieldname": "m_pSteamMatchmakingServers", "fieldtype": "class ISteamMatchmakingServers *"}, -{ "fieldname": "m_pSteamNetworking", "fieldtype": "class ISteamNetworking *"}, -{ "fieldname": "m_pSteamRemoteStorage", "fieldtype": "class ISteamRemoteStorage *"}, -{ "fieldname": "m_pSteamScreenshots", "fieldtype": "class ISteamScreenshots *"}, -{ "fieldname": "m_pSteamHTTP", "fieldtype": "class ISteamHTTP *"}, -{ "fieldname": "m_pSteamUnifiedMessages", "fieldtype": "class ISteamUnifiedMessages *"}, -{ "fieldname": "m_pController", "fieldtype": "class ISteamController *"}, -{ "fieldname": "m_pSteamUGC", "fieldtype": "class ISteamUGC *"}, -{ "fieldname": "m_pSteamAppList", "fieldtype": "class ISteamAppList *"}, -{ "fieldname": "m_pSteamMusic", "fieldtype": "class ISteamMusic *"}, -{ "fieldname": "m_pSteamMusicRemote", "fieldtype": "class ISteamMusicRemote *"}, -{ "fieldname": "m_pSteamHTMLSurface", "fieldtype": "class ISteamHTMLSurface *"}, -{ "fieldname": "m_pSteamInventory", "fieldtype": "class ISteamInventory *"}, -{ "fieldname": "m_pSteamVideo", "fieldtype": "class ISteamVideo *"}]} -,{"struct": "CCallbackBase","fields": [ -{ "fieldname": "m_nCallbackFlags", "fieldtype": "uint8"}, -{ "fieldname": "m_iCallback", "fieldtype": "int"}]} -,{"struct": "CCallResult","fields": [ -{ "fieldname": "m_hAPICall", "fieldtype": "SteamAPICall_t"}, -{ "fieldname": "m_pObj", "fieldtype": "T *"}, -{ "fieldname": "m_Func", "fieldtype": "func_t"}]} -,{"struct": "CCallback","fields": [ -{ "fieldname": "m_pObj", "fieldtype": "T *"}, -{ "fieldname": "m_Func", "fieldtype": "func_t"}]} -,{"struct": "GSClientApprove_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_OwnerSteamID", "fieldtype": "class CSteamID"}]} -,{"struct": "GSClientDeny_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eDenyReason", "fieldtype": "enum EDenyReason"}, -{ "fieldname": "m_rgchOptionalText", "fieldtype": "char [128]"}]} -,{"struct": "GSClientKick_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eDenyReason", "fieldtype": "enum EDenyReason"}]} -,{"struct": "GSClientAchievementStatus_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "uint64"}, -{ "fieldname": "m_pchAchievement", "fieldtype": "char [128]"}, -{ "fieldname": "m_bUnlocked", "fieldtype": "_Bool"}]} -,{"struct": "GSPolicyResponse_t","fields": [ -{ "fieldname": "m_bSecure", "fieldtype": "uint8"}]} -,{"struct": "GSGameplayStats_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nRank", "fieldtype": "int32"}, -{ "fieldname": "m_unTotalConnects", "fieldtype": "uint32"}, -{ "fieldname": "m_unTotalMinutesPlayed", "fieldtype": "uint32"}]} -,{"struct": "GSClientGroupStatus_t","fields": [ -{ "fieldname": "m_SteamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_SteamIDGroup", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_bMember", "fieldtype": "_Bool"}, -{ "fieldname": "m_bOfficer", "fieldtype": "_Bool"}]} -,{"struct": "GSReputation_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unReputationScore", "fieldtype": "uint32"}, -{ "fieldname": "m_bBanned", "fieldtype": "_Bool"}, -{ "fieldname": "m_unBannedIP", "fieldtype": "uint32"}, -{ "fieldname": "m_usBannedPort", "fieldtype": "uint16"}, -{ "fieldname": "m_ulBannedGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_unBanExpires", "fieldtype": "uint32"}]} -,{"struct": "AssociateWithClanResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "ComputeNewPlayerCompatibilityResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_cPlayersThatDontLikeCandidate", "fieldtype": "int"}, -{ "fieldname": "m_cPlayersThatCandidateDoesntLike", "fieldtype": "int"}, -{ "fieldname": "m_cClanPlayersThatDontLikeCandidate", "fieldtype": "int"}, -{ "fieldname": "m_SteamIDCandidate", "fieldtype": "class CSteamID"}]} -,{"struct": "GSStatsReceived_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "GSStatsStored_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "GSStatsUnloaded_t","fields": [ -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -], -"methods":[{ - "classname": "ISteamClient", - "methodname": "CreateSteamPipe", - "returntype": "HSteamPipe" +{ + "callback_structs": [ + { + "callback_id": 101, + "fields": [], + "struct": "SteamServersConnected_t" + }, + { + "callback_id": 102, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bStillRetrying", "fieldtype":"bool" } + ], + "struct": "SteamServerConnectFailure_t" + }, + { + "callback_id": 103, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "SteamServersDisconnected_t" + }, + { + "callback_id": 113, + "fields": [ + { "fieldname":"m_uAppID", "fieldtype":"uint32" }, + { "fieldname":"m_unGameServerIP", "fieldtype":"uint32" }, + { "fieldname":"m_usGameServerPort", "fieldtype":"uint16" }, + { "fieldname":"m_bSecure", "fieldtype":"uint16" }, + { "fieldname":"m_uReason", "fieldtype":"uint32" } + ], + "struct": "ClientGameServerDeny_t" + }, + { + "callback_id": 117, + "enums": [ + { + "enumname": "EFailureType", + "fqname": "IPCFailure_t::EFailureType", + "values": [ + { "name":"k_EFailureFlushedCallbackQueue", "value":"0" }, + { "name":"k_EFailurePipeFail", "value":"1" } + ] + } + ], + "fields": [ + { "fieldname":"m_eFailureType", "fieldtype":"uint8" } + ], + "struct": "IPCFailure_t" + }, + { + "callback_id": 125, + "fields": [], + "struct": "LicensesUpdated_t" + }, + { + "callback_id": 143, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_eAuthSessionResponse", "fieldtype":"EAuthSessionResponse" }, + { "fieldname":"m_OwnerSteamID", "fieldtype":"CSteamID" } + ], + "struct": "ValidateAuthTicketResponse_t" + }, + { + "callback_id": 152, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"uint32" }, + { "fieldname":"m_ulOrderID", "fieldtype":"uint64" }, + { "fieldname":"m_bAuthorized", "fieldtype":"uint8" } + ], + "struct": "MicroTxnAuthorizationResponse_t" + }, + { + "callback_id": 154, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "EncryptedAppTicketResponse_t" + }, + { + "callback_id": 163, + "fields": [ + { "fieldname":"m_hAuthTicket", "fieldtype":"HAuthTicket" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "GetAuthSessionTicketResponse_t" + }, + { + "callback_id": 164, + "fields": [ + { "fieldname":"m_szURL", "fieldtype":"char [256]" } + ], + "struct": "GameWebCallback_t" + }, + { + "callback_id": 165, + "fields": [ + { "fieldname":"m_szURL", "fieldtype":"char [512]" } + ], + "struct": "StoreAuthURLResponse_t" + }, + { + "callback_id": 166, + "fields": [ + { "fieldname":"m_bAllowed", "fieldtype":"bool" }, + { "fieldname":"m_eNotAllowedReason", "fieldtype":"EMarketNotAllowedReasonFlags" }, + { "fieldname":"m_rtAllowedAtTime", "fieldtype":"RTime32" }, + { "fieldname":"m_cdaySteamGuardRequiredDays", "fieldtype":"int" }, + { "fieldname":"m_cdayNewDeviceCooldown", "fieldtype":"int" } + ], + "struct": "MarketEligibilityResponse_t" + }, + { + "callback_id": 167, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_appid", "fieldtype":"AppId_t" }, + { "fieldname":"m_bApplicable", "fieldtype":"bool" }, + { "fieldname":"m_csecsLast5h", "fieldtype":"int32" }, + { "fieldname":"m_progress", "fieldtype":"EDurationControlProgress" }, + { "fieldname":"m_notification", "fieldtype":"EDurationControlNotification" }, + { "fieldname":"m_csecsToday", "fieldtype":"int32" }, + { "fieldname":"m_csecsRemaining", "fieldtype":"int32" } + ], + "struct": "DurationControl_t" + }, + { + "callback_id": 168, + "fields": [ + { "fieldname":"m_hAuthTicket", "fieldtype":"HAuthTicket" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_cubTicket", "fieldtype":"int" }, + { "fieldname":"m_rgubTicket", "fieldtype":"uint8 [2560]" } + ], + "struct": "GetTicketForWebApiResponse_t" + }, + { + "callback_id": 304, + "fields": [ + { "fieldname":"m_ulSteamID", "fieldtype":"uint64" }, + { "fieldname":"m_nChangeFlags", "fieldtype":"int" } + ], + "struct": "PersonaStateChange_t" + }, + { + "callback_id": 331, + "fields": [ + { "fieldname":"m_bActive", "fieldtype":"uint8" }, + { "fieldname":"m_bUserInitiated", "fieldtype":"bool" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_dwOverlayPID", "fieldtype":"uint32" } + ], + "struct": "GameOverlayActivated_t" + }, + { + "callback_id": 332, + "fields": [ + { "fieldname":"m_rgchServer", "fieldtype":"char [64]" }, + { "fieldname":"m_rgchPassword", "fieldtype":"char [64]" } + ], + "struct": "GameServerChangeRequested_t" + }, + { + "callback_id": 333, + "fields": [ + { "fieldname":"m_steamIDLobby", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDFriend", "fieldtype":"CSteamID" } + ], + "struct": "GameLobbyJoinRequested_t" + }, + { + "callback_id": 334, + "fields": [ + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_iImage", "fieldtype":"int" }, + { "fieldname":"m_iWide", "fieldtype":"int" }, + { "fieldname":"m_iTall", "fieldtype":"int" } + ], + "struct": "AvatarImageLoaded_t" + }, + { + "callback_id": 335, + "fields": [ + { "fieldname":"m_steamIDClan", "fieldtype":"CSteamID" }, + { "fieldname":"m_cOfficers", "fieldtype":"int" }, + { "fieldname":"m_bSuccess", "fieldtype":"uint8" } + ], + "struct": "ClanOfficerListResponse_t" + }, + { + "callback_id": 336, + "fields": [ + { "fieldname":"m_steamIDFriend", "fieldtype":"CSteamID" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "FriendRichPresenceUpdate_t" + }, + { + "callback_id": 337, + "fields": [ + { "fieldname":"m_steamIDFriend", "fieldtype":"CSteamID" }, + { "fieldname":"m_rgchConnect", "fieldtype":"char [256]" } + ], + "struct": "GameRichPresenceJoinRequested_t" + }, + { + "callback_id": 338, + "fields": [ + { "fieldname":"m_steamIDClanChat", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_iMessageID", "fieldtype":"int" } + ], + "struct": "GameConnectedClanChatMsg_t" + }, + { + "callback_id": 339, + "fields": [ + { "fieldname":"m_steamIDClanChat", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "GameConnectedChatJoin_t" + }, + { + "callback_id": 340, + "fields": [ + { "fieldname":"m_steamIDClanChat", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_bKicked", "fieldtype":"bool" }, + { "fieldname":"m_bDropped", "fieldtype":"bool" } + ], + "struct": "GameConnectedChatLeave_t" + }, + { + "callback_id": 341, + "fields": [ + { "fieldname":"m_bSuccess", "fieldtype":"bool" } + ], + "struct": "DownloadClanActivityCountsResult_t" + }, + { + "callback_id": 342, + "fields": [ + { "fieldname":"m_steamIDClanChat", "fieldtype":"CSteamID" }, + { "fieldname":"m_eChatRoomEnterResponse", "fieldtype":"EChatRoomEnterResponse" } + ], + "struct": "JoinClanChatRoomCompletionResult_t" + }, + { + "callback_id": 343, + "fields": [ + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_iMessageID", "fieldtype":"int" } + ], + "struct": "GameConnectedFriendChatMsg_t" + }, + { + "callback_id": 344, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_nCount", "fieldtype":"int" } + ], + "struct": "FriendsGetFollowerCount_t" + }, + { + "callback_id": 345, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_bIsFollowing", "fieldtype":"bool" } + ], + "struct": "FriendsIsFollowing_t" + }, + { + "callback_id": 346, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_rgSteamID", "fieldtype":"CSteamID [50]" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" } + ], + "struct": "FriendsEnumerateFollowingList_t" + }, + { + "callback_id": 347, + "fields": [ + { "fieldname":"m_bSuccess", "fieldtype":"bool" }, + { "fieldname":"m_bLocalSuccess", "fieldtype":"bool" }, + { "fieldname":"m_result", "fieldtype":"EResult" } + ], + "struct": "SetPersonaNameResponse_t" + }, + { + "callback_id": 348, + "fields": [], + "struct": "UnreadChatMessagesChanged_t" + }, + { + "callback_id": 349, + "fields": [ + { "fieldname":"rgchURI", "fieldtype":"char [1024]" } + ], + "struct": "OverlayBrowserProtocolNavigation_t" + }, + { + "callback_id": 350, + "fields": [ + { "fieldname":"m_steamID", "fieldtype":"CSteamID" } + ], + "struct": "EquippedProfileItemsChanged_t" + }, + { + "callback_id": 351, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_bHasAnimatedAvatar", "fieldtype":"bool" }, + { "fieldname":"m_bHasAvatarFrame", "fieldtype":"bool" }, + { "fieldname":"m_bHasProfileModifier", "fieldtype":"bool" }, + { "fieldname":"m_bHasProfileBackground", "fieldtype":"bool" }, + { "fieldname":"m_bHasMiniProfileBackground", "fieldtype":"bool" } + ], + "struct": "EquippedProfileItems_t" + }, + { + "callback_id": 701, + "fields": [], + "struct": "IPCountry_t" + }, + { + "callback_id": 702, + "fields": [ + { "fieldname":"m_nMinutesBatteryLeft", "fieldtype":"uint8" } + ], + "struct": "LowBatteryPower_t" + }, + { + "callback_id": 703, + "fields": [ + { "fieldname":"m_hAsyncCall", "fieldtype":"SteamAPICall_t" }, + { "fieldname":"m_iCallback", "fieldtype":"int" }, + { "fieldname":"m_cubParam", "fieldtype":"uint32" } + ], + "struct": "SteamAPICallCompleted_t" + }, + { + "callback_id": 704, + "fields": [], + "struct": "SteamShutdown_t" + }, + { + "callback_id": 705, + "fields": [ + { "fieldname":"m_eCheckFileSignature", "fieldtype":"ECheckFileSignature" } + ], + "struct": "CheckFileSignature_t" + }, + { + "callback_id": 714, + "fields": [ + { "fieldname":"m_bSubmitted", "fieldtype":"bool" }, + { "fieldname":"m_unSubmittedText", "fieldtype":"uint32" }, + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" } + ], + "struct": "GamepadTextInputDismissed_t" + }, + { + "callback_id": 736, + "fields": [], + "struct": "AppResumingFromSuspend_t" + }, + { + "callback_id": 738, + "fields": [], + "struct": "FloatingGamepadTextInputDismissed_t" + }, + { + "callback_id": 739, + "fields": [ + { "fieldname":"m_eLanguage", "fieldtype":"int" } + ], + "struct": "FilterTextDictionaryChanged_t" + }, + { + "callback_id": 502, + "fields": [ + { "fieldname":"m_nIP", "fieldtype":"uint32" }, + { "fieldname":"m_nQueryPort", "fieldtype":"uint32" }, + { "fieldname":"m_nConnPort", "fieldtype":"uint32" }, + { "fieldname":"m_nAppID", "fieldtype":"uint32" }, + { "fieldname":"m_nFlags", "fieldtype":"uint32" }, + { "fieldname":"m_bAdd", "fieldtype":"bool" }, + { "fieldname":"m_unAccountId", "fieldtype":"AccountID_t" } + ], + "struct": "FavoritesListChanged_t" + }, + { + "callback_id": 503, + "fields": [ + { "fieldname":"m_ulSteamIDUser", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulGameID", "fieldtype":"uint64" } + ], + "struct": "LobbyInvite_t" + }, + { + "callback_id": 504, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_rgfChatPermissions", "fieldtype":"uint32" }, + { "fieldname":"m_bLocked", "fieldtype":"bool" }, + { "fieldname":"m_EChatRoomEnterResponse", "fieldtype":"uint32" } + ], + "struct": "LobbyEnter_t" + }, + { + "callback_id": 505, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDMember", "fieldtype":"uint64" }, + { "fieldname":"m_bSuccess", "fieldtype":"uint8" } + ], + "struct": "LobbyDataUpdate_t" + }, + { + "callback_id": 506, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDUserChanged", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDMakingChange", "fieldtype":"uint64" }, + { "fieldname":"m_rgfChatMemberStateChange", "fieldtype":"uint32" } + ], + "struct": "LobbyChatUpdate_t" + }, + { + "callback_id": 507, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDUser", "fieldtype":"uint64" }, + { "fieldname":"m_eChatEntryType", "fieldtype":"uint8" }, + { "fieldname":"m_iChatID", "fieldtype":"uint32" } + ], + "struct": "LobbyChatMsg_t" + }, + { + "callback_id": 509, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDGameServer", "fieldtype":"uint64" }, + { "fieldname":"m_unIP", "fieldtype":"uint32" }, + { "fieldname":"m_usPort", "fieldtype":"uint16" } + ], + "struct": "LobbyGameCreated_t" + }, + { + "callback_id": 510, + "fields": [ + { "fieldname":"m_nLobbiesMatching", "fieldtype":"uint32" } + ], + "struct": "LobbyMatchList_t" + }, + { + "callback_id": 512, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDAdmin", "fieldtype":"uint64" }, + { "fieldname":"m_bKickedDueToDisconnect", "fieldtype":"uint8" } + ], + "struct": "LobbyKicked_t" + }, + { + "callback_id": 513, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" } + ], + "struct": "LobbyCreated_t" + }, + { + "callback_id": 515, + "fields": [ + { "fieldname":"m_bGameBootInviteExists", "fieldtype":"bool" }, + { "fieldname":"m_steamIDLobby", "fieldtype":"CSteamID" } + ], + "struct": "PSNGameBootInviteResult_t" + }, + { + "callback_id": 516, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "FavoritesListAccountsUpdated_t" + }, + { + "callback_id": 5201, + "fields": [ + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_lobbyID", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDEndedSearch", "fieldtype":"CSteamID" }, + { "fieldname":"m_nSecondsRemainingEstimate", "fieldtype":"int32" }, + { "fieldname":"m_cPlayersSearching", "fieldtype":"int32" } + ], + "struct": "SearchForGameProgressCallback_t" + }, + { + "callback_id": 5202, + "fields": [ + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nCountPlayersInGame", "fieldtype":"int32" }, + { "fieldname":"m_nCountAcceptedGame", "fieldtype":"int32" }, + { "fieldname":"m_steamIDHost", "fieldtype":"CSteamID" }, + { "fieldname":"m_bFinalCallback", "fieldtype":"bool" } + ], + "struct": "SearchForGameResultCallback_t" + }, + { + "callback_id": 5211, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" } + ], + "struct": "RequestPlayersForGameProgressCallback_t" + }, + { + "callback_id": 5212, + "enums": [ + { + "enumname": "PlayerAcceptState_t", + "fqname": "RequestPlayersForGameResultCallback_t::PlayerAcceptState_t", + "values": [ + { "name":"k_EStateUnknown", "value":"0" }, + { "name":"k_EStatePlayerAccepted", "value":"1" }, + { "name":"k_EStatePlayerDeclined", "value":"2" } + ] + } + ], + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" }, + { "fieldname":"m_SteamIDPlayerFound", "fieldtype":"CSteamID" }, + { "fieldname":"m_SteamIDLobby", "fieldtype":"CSteamID" }, + { "fieldname":"m_ePlayerAcceptState", "fieldtype":"RequestPlayersForGameResultCallback_t::PlayerAcceptState_t" }, + { "fieldname":"m_nPlayerIndex", "fieldtype":"int32" }, + { "fieldname":"m_nTotalPlayersFound", "fieldtype":"int32" }, + { "fieldname":"m_nTotalPlayersAcceptedGame", "fieldtype":"int32" }, + { "fieldname":"m_nSuggestedTeamIndex", "fieldtype":"int32" }, + { "fieldname":"m_ullUniqueGameID", "fieldtype":"uint64" } + ], + "struct": "RequestPlayersForGameResultCallback_t" + }, + { + "callback_id": 5213, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" }, + { "fieldname":"m_ullUniqueGameID", "fieldtype":"uint64" } + ], + "struct": "RequestPlayersForGameFinalResultCallback_t" + }, + { + "callback_id": 5214, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"ullUniqueGameID", "fieldtype":"uint64" }, + { "fieldname":"steamIDPlayer", "fieldtype":"CSteamID" } + ], + "struct": "SubmitPlayerResultResultCallback_t" + }, + { + "callback_id": 5215, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"ullUniqueGameID", "fieldtype":"uint64" } + ], + "struct": "EndGameResultCallback_t" + }, + { + "callback_id": 5301, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulBeaconID", "fieldtype":"PartyBeaconID_t" }, + { "fieldname":"m_SteamIDBeaconOwner", "fieldtype":"CSteamID" }, + { "fieldname":"m_rgchConnectString", "fieldtype":"char [256]" } + ], + "struct": "JoinPartyCallback_t" + }, + { + "callback_id": 5302, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulBeaconID", "fieldtype":"PartyBeaconID_t" } + ], + "struct": "CreateBeaconCallback_t" + }, + { + "callback_id": 5303, + "fields": [ + { "fieldname":"m_ulBeaconID", "fieldtype":"PartyBeaconID_t" }, + { "fieldname":"m_steamIDJoiner", "fieldtype":"CSteamID" } + ], + "struct": "ReservationNotificationCallback_t" + }, + { + "callback_id": 5304, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "ChangeNumOpenSlotsCallback_t" + }, + { + "callback_id": 5305, + "fields": [], + "struct": "AvailableBeaconLocationsUpdated_t" + }, + { + "callback_id": 5306, + "fields": [], + "struct": "ActiveBeaconsUpdated_t" + }, + { + "callback_id": 1307, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_hFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_rgchFilename", "fieldtype":"char [260]" } + ], + "struct": "RemoteStorageFileShareResult_t" + }, + { + "callback_id": 1309, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype":"bool" } + ], + "struct": "RemoteStoragePublishFileResult_t" + }, + { + "callback_id": 1311, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoteStorageDeletePublishedFileResult_t" + }, + { + "callback_id": 1312, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" } + ], + "struct": "RemoteStorageEnumerateUserPublishedFilesResult_t" + }, + { + "callback_id": 1313, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoteStorageSubscribePublishedFileResult_t" + }, + { + "callback_id": 1314, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" }, + { "fieldname":"m_rgRTimeSubscribed", "fieldtype":"uint32 [50]" } + ], + "struct": "RemoteStorageEnumerateUserSubscribedFilesResult_t" + }, + { + "callback_id": 1315, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoteStorageUnsubscribePublishedFileResult_t" + }, + { + "callback_id": 1316, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype":"bool" } + ], + "struct": "RemoteStorageUpdatePublishedFileResult_t" + }, + { + "callback_id": 1317, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_hFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nSizeInBytes", "fieldtype":"int32" }, + { "fieldname":"m_pchFileName", "fieldtype":"char [260]" }, + { "fieldname":"m_ulSteamIDOwner", "fieldtype":"uint64" } + ], + "struct": "RemoteStorageDownloadUGCResult_t" + }, + { + "callback_id": 1318, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nCreatorAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nConsumerAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_rgchTitle", "fieldtype":"char [129]" }, + { "fieldname":"m_rgchDescription", "fieldtype":"char [8000]" }, + { "fieldname":"m_hFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_hPreviewFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_ulSteamIDOwner", "fieldtype":"uint64" }, + { "fieldname":"m_rtimeCreated", "fieldtype":"uint32" }, + { "fieldname":"m_rtimeUpdated", "fieldtype":"uint32" }, + { "fieldname":"m_eVisibility", "fieldtype":"ERemoteStoragePublishedFileVisibility" }, + { "fieldname":"m_bBanned", "fieldtype":"bool" }, + { "fieldname":"m_rgchTags", "fieldtype":"char [1025]" }, + { "fieldname":"m_bTagsTruncated", "fieldtype":"bool" }, + { "fieldname":"m_pchFileName", "fieldtype":"char [260]" }, + { "fieldname":"m_nFileSize", "fieldtype":"int32" }, + { "fieldname":"m_nPreviewFileSize", "fieldtype":"int32" }, + { "fieldname":"m_rgchURL", "fieldtype":"char [256]" }, + { "fieldname":"m_eFileType", "fieldtype":"EWorkshopFileType" }, + { "fieldname":"m_bAcceptedForUse", "fieldtype":"bool" } + ], + "struct": "RemoteStorageGetPublishedFileDetailsResult_t" + }, + { + "callback_id": 1319, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" }, + { "fieldname":"m_rgScore", "fieldtype":"float [50]" }, + { "fieldname":"m_nAppId", "fieldtype":"AppId_t" }, + { "fieldname":"m_unStartIndex", "fieldtype":"uint32" } + ], + "struct": "RemoteStorageEnumerateWorkshopFilesResult_t" + }, + { + "callback_id": 1320, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nVotesFor", "fieldtype":"int32" }, + { "fieldname":"m_nVotesAgainst", "fieldtype":"int32" }, + { "fieldname":"m_nReports", "fieldtype":"int32" }, + { "fieldname":"m_fScore", "fieldtype":"float" } + ], + "struct": "RemoteStorageGetPublishedItemVoteDetailsResult_t" + }, + { + "callback_id": 1321, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "RemoteStoragePublishedFileSubscribed_t" + }, + { + "callback_id": 1322, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "RemoteStoragePublishedFileUnsubscribed_t" + }, + { + "callback_id": 1323, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "RemoteStoragePublishedFileDeleted_t" + }, + { + "callback_id": 1324, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoteStorageUpdateUserPublishedItemVoteResult_t" + }, + { + "callback_id": 1325, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eVote", "fieldtype":"EWorkshopVote" } + ], + "struct": "RemoteStorageUserVoteDetails_t" + }, + { + "callback_id": 1326, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" } + ], + "struct": "RemoteStorageEnumerateUserSharedWorkshopFilesResult_t" + }, + { + "callback_id": 1327, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eAction", "fieldtype":"EWorkshopFileAction" } + ], + "struct": "RemoteStorageSetUserPublishedFileActionResult_t" + }, + { + "callback_id": 1328, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_eAction", "fieldtype":"EWorkshopFileAction" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" }, + { "fieldname":"m_rgRTimeUpdated", "fieldtype":"uint32 [50]" } + ], + "struct": "RemoteStorageEnumeratePublishedFilesByUserActionResult_t" + }, + { + "callback_id": 1329, + "fields": [ + { "fieldname":"m_dPercentFile", "fieldtype":"double" }, + { "fieldname":"m_bPreview", "fieldtype":"bool" } + ], + "struct": "RemoteStoragePublishFileProgress_t" + }, + { + "callback_id": 1330, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_ulUnused", "fieldtype":"uint64" } + ], + "struct": "RemoteStoragePublishedFileUpdated_t" + }, + { + "callback_id": 1331, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "RemoteStorageFileWriteAsyncComplete_t" + }, + { + "callback_id": 1332, + "fields": [ + { "fieldname":"m_hFileReadAsync", "fieldtype":"SteamAPICall_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nOffset", "fieldtype":"uint32" }, + { "fieldname":"m_cubRead", "fieldtype":"uint32" } + ], + "struct": "RemoteStorageFileReadAsyncComplete_t" + }, + { + "callback_id": 1333, + "fields": [], + "struct": "RemoteStorageLocalFileChange_t" + }, + { + "callback_id": 1101, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "UserStatsReceived_t" + }, + { + "callback_id": 1102, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "UserStatsStored_t" + }, + { + "callback_id": 1103, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_bGroupAchievement", "fieldtype":"bool" }, + { "fieldname":"m_rgchAchievementName", "fieldtype":"char [128]" }, + { "fieldname":"m_nCurProgress", "fieldtype":"uint32" }, + { "fieldname":"m_nMaxProgress", "fieldtype":"uint32" } + ], + "struct": "UserAchievementStored_t" + }, + { + "callback_id": 1104, + "fields": [ + { "fieldname":"m_hSteamLeaderboard", "fieldtype":"SteamLeaderboard_t" }, + { "fieldname":"m_bLeaderboardFound", "fieldtype":"uint8" } + ], + "struct": "LeaderboardFindResult_t" + }, + { + "callback_id": 1105, + "fields": [ + { "fieldname":"m_hSteamLeaderboard", "fieldtype":"SteamLeaderboard_t" }, + { "fieldname":"m_hSteamLeaderboardEntries", "fieldtype":"SteamLeaderboardEntries_t" }, + { "fieldname":"m_cEntryCount", "fieldtype":"int" } + ], + "struct": "LeaderboardScoresDownloaded_t" + }, + { + "callback_id": 1106, + "fields": [ + { "fieldname":"m_bSuccess", "fieldtype":"uint8" }, + { "fieldname":"m_hSteamLeaderboard", "fieldtype":"SteamLeaderboard_t" }, + { "fieldname":"m_nScore", "fieldtype":"int32" }, + { "fieldname":"m_bScoreChanged", "fieldtype":"uint8" }, + { "fieldname":"m_nGlobalRankNew", "fieldtype":"int" }, + { "fieldname":"m_nGlobalRankPrevious", "fieldtype":"int" } + ], + "struct": "LeaderboardScoreUploaded_t" + }, + { + "callback_id": 1107, + "fields": [ + { "fieldname":"m_bSuccess", "fieldtype":"uint8" }, + { "fieldname":"m_cPlayers", "fieldtype":"int32" } + ], + "struct": "NumberOfCurrentPlayers_t" + }, + { + "callback_id": 1108, + "fields": [ + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "UserStatsUnloaded_t" + }, + { + "callback_id": 1109, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"CGameID" }, + { "fieldname":"m_rgchAchievementName", "fieldtype":"char [128]" }, + { "fieldname":"m_bAchieved", "fieldtype":"bool" }, + { "fieldname":"m_nIconHandle", "fieldtype":"int" } + ], + "struct": "UserAchievementIconFetched_t" + }, + { + "callback_id": 1110, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "GlobalAchievementPercentagesReady_t" + }, + { + "callback_id": 1111, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_hSteamLeaderboard", "fieldtype":"SteamLeaderboard_t" } + ], + "struct": "LeaderboardUGCSet_t" + }, + { + "callback_id": 1112, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulRequiredDiskSpace", "fieldtype":"uint64" } + ], + "struct": "PS3TrophiesInstalled_t" + }, + { + "callback_id": 1112, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "GlobalStatsReceived_t" + }, + { + "callback_id": 1005, + "fields": [ + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "DlcInstalled_t" + }, + { + "callback_id": 1014, + "fields": [], + "struct": "NewUrlLaunchParameters_t" + }, + { + "callback_id": 1021, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nAppID", "fieldtype":"uint32" }, + { "fieldname":"m_cchKeyLength", "fieldtype":"uint32" }, + { "fieldname":"m_rgchKey", "fieldtype":"char [240]" } + ], + "struct": "AppProofOfPurchaseKeyResponse_t" + }, + { + "callback_id": 1023, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulFileSize", "fieldtype":"uint64" }, + { "fieldname":"m_FileSHA", "fieldtype":"uint8 [20]" }, + { "fieldname":"m_unFlags", "fieldtype":"uint32" } + ], + "struct": "FileDetailsResult_t" + }, + { + "callback_id": 1030, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_bIsOffline", "fieldtype":"bool" }, + { "fieldname":"m_unSecondsAllowed", "fieldtype":"uint32" }, + { "fieldname":"m_unSecondsPlayed", "fieldtype":"uint32" } + ], + "struct": "TimedTrialStatus_t" + }, + { + "callback_id": 1202, + "fields": [ + { "fieldname":"m_steamIDRemote", "fieldtype":"CSteamID" } + ], + "struct": "P2PSessionRequest_t" + }, + { + "callback_id": 1203, + "fields": [ + { "fieldname":"m_steamIDRemote", "fieldtype":"CSteamID" }, + { "fieldname":"m_eP2PSessionError", "fieldtype":"uint8" } + ], + "struct": "P2PSessionConnectFail_t" + }, + { + "callback_id": 1201, + "fields": [ + { "fieldname":"m_hSocket", "fieldtype":"SNetSocket_t" }, + { "fieldname":"m_hListenSocket", "fieldtype":"SNetListenSocket_t" }, + { "fieldname":"m_steamIDRemote", "fieldtype":"CSteamID" }, + { "fieldname":"m_eSNetSocketState", "fieldtype":"int" } + ], + "struct": "SocketStatusCallback_t" + }, + { + "callback_id": 2301, + "fields": [ + { "fieldname":"m_hLocal", "fieldtype":"ScreenshotHandle" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "ScreenshotReady_t" + }, + { + "callback_id": 2302, + "fields": [], + "struct": "ScreenshotRequested_t" + }, + { + "callback_id": 4001, + "fields": [], + "struct": "PlaybackStatusHasChanged_t" + }, + { + "callback_id": 4002, + "fields": [ + { "fieldname":"m_flNewVolume", "fieldtype":"float" } + ], + "struct": "VolumeHasChanged_t" + }, + { + "callback_id": 4101, + "fields": [], + "struct": "MusicPlayerRemoteWillActivate_t" + }, + { + "callback_id": 4102, + "fields": [], + "struct": "MusicPlayerRemoteWillDeactivate_t" + }, + { + "callback_id": 4103, + "fields": [], + "struct": "MusicPlayerRemoteToFront_t" + }, + { + "callback_id": 4104, + "fields": [], + "struct": "MusicPlayerWillQuit_t" + }, + { + "callback_id": 4105, + "fields": [], + "struct": "MusicPlayerWantsPlay_t" + }, + { + "callback_id": 4106, + "fields": [], + "struct": "MusicPlayerWantsPause_t" + }, + { + "callback_id": 4107, + "fields": [], + "struct": "MusicPlayerWantsPlayPrevious_t" + }, + { + "callback_id": 4108, + "fields": [], + "struct": "MusicPlayerWantsPlayNext_t" + }, + { + "callback_id": 4109, + "fields": [ + { "fieldname":"m_bShuffled", "fieldtype":"bool" } + ], + "struct": "MusicPlayerWantsShuffled_t" + }, + { + "callback_id": 4110, + "fields": [ + { "fieldname":"m_bLooped", "fieldtype":"bool" } + ], + "struct": "MusicPlayerWantsLooped_t" + }, + { + "callback_id": 4011, + "fields": [ + { "fieldname":"m_flNewVolume", "fieldtype":"float" } + ], + "struct": "MusicPlayerWantsVolume_t" + }, + { + "callback_id": 4012, + "fields": [ + { "fieldname":"nID", "fieldtype":"int" } + ], + "struct": "MusicPlayerSelectsQueueEntry_t" + }, + { + "callback_id": 4013, + "fields": [ + { "fieldname":"nID", "fieldtype":"int" } + ], + "struct": "MusicPlayerSelectsPlaylistEntry_t" + }, + { + "callback_id": 4114, + "fields": [ + { "fieldname":"m_nPlayingRepeatStatus", "fieldtype":"int" } + ], + "struct": "MusicPlayerWantsPlayingRepeatStatus_t" + }, + { + "callback_id": 2101, + "fields": [ + { "fieldname":"m_hRequest", "fieldtype":"HTTPRequestHandle" }, + { "fieldname":"m_ulContextValue", "fieldtype":"uint64" }, + { "fieldname":"m_bRequestSuccessful", "fieldtype":"bool" }, + { "fieldname":"m_eStatusCode", "fieldtype":"EHTTPStatusCode" }, + { "fieldname":"m_unBodySize", "fieldtype":"uint32" } + ], + "struct": "HTTPRequestCompleted_t" + }, + { + "callback_id": 2102, + "fields": [ + { "fieldname":"m_hRequest", "fieldtype":"HTTPRequestHandle" }, + { "fieldname":"m_ulContextValue", "fieldtype":"uint64" } + ], + "struct": "HTTPRequestHeadersReceived_t" + }, + { + "callback_id": 2103, + "fields": [ + { "fieldname":"m_hRequest", "fieldtype":"HTTPRequestHandle" }, + { "fieldname":"m_ulContextValue", "fieldtype":"uint64" }, + { "fieldname":"m_cOffset", "fieldtype":"uint32" }, + { "fieldname":"m_cBytesReceived", "fieldtype":"uint32" } + ], + "struct": "HTTPRequestDataReceived_t" + }, + { + "callback_id": 2801, + "fields": [ + { "fieldname":"m_ulConnectedDeviceHandle", "fieldtype":"InputHandle_t" } + ], + "struct": "SteamInputDeviceConnected_t" + }, + { + "callback_id": 2802, + "fields": [ + { "fieldname":"m_ulDisconnectedDeviceHandle", "fieldtype":"InputHandle_t" } + ], + "struct": "SteamInputDeviceDisconnected_t" + }, + { + "callback_id": 2803, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_ulDeviceHandle", "fieldtype":"InputHandle_t" }, + { "fieldname":"m_ulMappingCreator", "fieldtype":"CSteamID" }, + { "fieldname":"m_unMajorRevision", "fieldtype":"uint32" }, + { "fieldname":"m_unMinorRevision", "fieldtype":"uint32" }, + { "fieldname":"m_bUsesSteamInputAPI", "fieldtype":"bool" }, + { "fieldname":"m_bUsesGamepadAPI", "fieldtype":"bool" } + ], + "struct": "SteamInputConfigurationLoaded_t" + }, + { + "callback_id": 2804, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_ulDeviceHandle", "fieldtype":"InputHandle_t" }, + { "fieldname":"m_eDeviceType", "fieldtype":"ESteamInputType" }, + { "fieldname":"m_nOldGamepadSlot", "fieldtype":"int" }, + { "fieldname":"m_nNewGamepadSlot", "fieldtype":"int" } + ], + "struct": "SteamInputGamepadSlotChange_t" + }, + { + "callback_id": 3401, + "fields": [ + { "fieldname":"m_handle", "fieldtype":"UGCQueryHandle_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unNumResultsReturned", "fieldtype":"uint32" }, + { "fieldname":"m_unTotalMatchingResults", "fieldtype":"uint32" }, + { "fieldname":"m_bCachedData", "fieldtype":"bool" }, + { "fieldname":"m_rgchNextCursor", "fieldtype":"char [256]" } + ], + "struct": "SteamUGCQueryCompleted_t" + }, + { + "callback_id": 3402, + "fields": [ + { "fieldname":"m_details", "fieldtype":"SteamUGCDetails_t" }, + { "fieldname":"m_bCachedData", "fieldtype":"bool" } + ], + "struct": "SteamUGCRequestUGCDetailsResult_t" + }, + { + "callback_id": 3403, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype":"bool" } + ], + "struct": "CreateItemResult_t" + }, + { + "callback_id": 3404, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype":"bool" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "SubmitItemUpdateResult_t" + }, + { + "callback_id": 3405, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "ItemInstalled_t" + }, + { + "callback_id": 3406, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "DownloadItemResult_t" + }, + { + "callback_id": 3407, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bWasAddRequest", "fieldtype":"bool" } + ], + "struct": "UserFavoriteItemsListChanged_t" + }, + { + "callback_id": 3408, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bVoteUp", "fieldtype":"bool" } + ], + "struct": "SetUserItemVoteResult_t" + }, + { + "callback_id": 3409, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bVotedUp", "fieldtype":"bool" }, + { "fieldname":"m_bVotedDown", "fieldtype":"bool" }, + { "fieldname":"m_bVoteSkipped", "fieldtype":"bool" } + ], + "struct": "GetUserItemVoteResult_t" + }, + { + "callback_id": 3410, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "StartPlaytimeTrackingResult_t" + }, + { + "callback_id": 3411, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "StopPlaytimeTrackingResult_t" + }, + { + "callback_id": 3412, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nChildPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "AddUGCDependencyResult_t" + }, + { + "callback_id": 3413, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nChildPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoveUGCDependencyResult_t" + }, + { + "callback_id": 3414, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "AddAppDependencyResult_t" + }, + { + "callback_id": 3415, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "RemoveAppDependencyResult_t" + }, + { + "callback_id": 3416, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_rgAppIDs", "fieldtype":"AppId_t [32]" }, + { "fieldname":"m_nNumAppDependencies", "fieldtype":"uint32" }, + { "fieldname":"m_nTotalNumAppDependencies", "fieldtype":"uint32" } + ], + "struct": "GetAppDependenciesResult_t" + }, + { + "callback_id": 3417, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "DeleteItemResult_t" + }, + { + "callback_id": 3418, + "fields": [ + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "UserSubscribedItemsListChanged_t" + }, + { + "callback_id": 3420, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_unVersion", "fieldtype":"uint32" }, + { "fieldname":"m_rtAction", "fieldtype":"RTime32" }, + { "fieldname":"m_bAccepted", "fieldtype":"bool" }, + { "fieldname":"m_bNeedsAction", "fieldtype":"bool" } + ], + "struct": "WorkshopEULAStatus_t" + }, + { + "callback_id": 4501, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_BrowserReady_t" + }, + { + "callback_id": 4502, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pBGRA", "fieldtype":"const char *" }, + { "fieldname":"unWide", "fieldtype":"uint32" }, + { "fieldname":"unTall", "fieldtype":"uint32" }, + { "fieldname":"unUpdateX", "fieldtype":"uint32" }, + { "fieldname":"unUpdateY", "fieldtype":"uint32" }, + { "fieldname":"unUpdateWide", "fieldtype":"uint32" }, + { "fieldname":"unUpdateTall", "fieldtype":"uint32" }, + { "fieldname":"unScrollX", "fieldtype":"uint32" }, + { "fieldname":"unScrollY", "fieldtype":"uint32" }, + { "fieldname":"flPageScale", "fieldtype":"float" }, + { "fieldname":"unPageSerial", "fieldtype":"uint32" } + ], + "struct": "HTML_NeedsPaint_t" + }, + { + "callback_id": 4503, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"pchTarget", "fieldtype":"const char *" }, + { "fieldname":"pchPostData", "fieldtype":"const char *" }, + { "fieldname":"bIsRedirect", "fieldtype":"bool" } + ], + "struct": "HTML_StartRequest_t" + }, + { + "callback_id": 4504, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_CloseBrowser_t" + }, + { + "callback_id": 4505, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"pchPostData", "fieldtype":"const char *" }, + { "fieldname":"bIsRedirect", "fieldtype":"bool" }, + { "fieldname":"pchPageTitle", "fieldtype":"const char *" }, + { "fieldname":"bNewNavigation", "fieldtype":"bool" } + ], + "struct": "HTML_URLChanged_t" + }, + { + "callback_id": 4506, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"pchPageTitle", "fieldtype":"const char *" } + ], + "struct": "HTML_FinishedRequest_t" + }, + { + "callback_id": 4507, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" } + ], + "struct": "HTML_OpenLinkInNewTab_t" + }, + { + "callback_id": 4508, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchTitle", "fieldtype":"const char *" } + ], + "struct": "HTML_ChangedTitle_t" + }, + { + "callback_id": 4509, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"unResults", "fieldtype":"uint32" }, + { "fieldname":"unCurrentMatch", "fieldtype":"uint32" } + ], + "struct": "HTML_SearchResults_t" + }, + { + "callback_id": 4510, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"bCanGoBack", "fieldtype":"bool" }, + { "fieldname":"bCanGoForward", "fieldtype":"bool" } + ], + "struct": "HTML_CanGoBackAndForward_t" + }, + { + "callback_id": 4511, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"unScrollMax", "fieldtype":"uint32" }, + { "fieldname":"unScrollCurrent", "fieldtype":"uint32" }, + { "fieldname":"flPageScale", "fieldtype":"float" }, + { "fieldname":"bVisible", "fieldtype":"bool" }, + { "fieldname":"unPageSize", "fieldtype":"uint32" } + ], + "struct": "HTML_HorizontalScroll_t" + }, + { + "callback_id": 4512, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"unScrollMax", "fieldtype":"uint32" }, + { "fieldname":"unScrollCurrent", "fieldtype":"uint32" }, + { "fieldname":"flPageScale", "fieldtype":"float" }, + { "fieldname":"bVisible", "fieldtype":"bool" }, + { "fieldname":"unPageSize", "fieldtype":"uint32" } + ], + "struct": "HTML_VerticalScroll_t" + }, + { + "callback_id": 4513, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"x", "fieldtype":"uint32" }, + { "fieldname":"y", "fieldtype":"uint32" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"bInput", "fieldtype":"bool" }, + { "fieldname":"bLiveLink", "fieldtype":"bool" } + ], + "struct": "HTML_LinkAtPosition_t" + }, + { + "callback_id": 4514, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMessage", "fieldtype":"const char *" } + ], + "struct": "HTML_JSAlert_t" + }, + { + "callback_id": 4515, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMessage", "fieldtype":"const char *" } + ], + "struct": "HTML_JSConfirm_t" + }, + { + "callback_id": 4516, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchTitle", "fieldtype":"const char *" }, + { "fieldname":"pchInitialFile", "fieldtype":"const char *" } + ], + "struct": "HTML_FileOpenDialog_t" + }, + { + "callback_id": 4521, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"unX", "fieldtype":"uint32" }, + { "fieldname":"unY", "fieldtype":"uint32" }, + { "fieldname":"unWide", "fieldtype":"uint32" }, + { "fieldname":"unTall", "fieldtype":"uint32" }, + { "fieldname":"unNewWindow_BrowserHandle_IGNORE", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_NewWindow_t" + }, + { + "callback_id": 4522, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"eMouseCursor", "fieldtype":"uint32" } + ], + "struct": "HTML_SetCursor_t" + }, + { + "callback_id": 4523, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMsg", "fieldtype":"const char *" } + ], + "struct": "HTML_StatusText_t" + }, + { + "callback_id": 4524, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMsg", "fieldtype":"const char *" } + ], + "struct": "HTML_ShowToolTip_t" + }, + { + "callback_id": 4525, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMsg", "fieldtype":"const char *" } + ], + "struct": "HTML_UpdateToolTip_t" + }, + { + "callback_id": 4526, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_HideToolTip_t" + }, + { + "callback_id": 4527, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"unOldBrowserHandle", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_BrowserRestarted_t" + }, + { + "callback_id": 4700, + "fields": [ + { "fieldname":"m_handle", "fieldtype":"SteamInventoryResult_t" }, + { "fieldname":"m_result", "fieldtype":"EResult" } + ], + "struct": "SteamInventoryResultReady_t" + }, + { + "callback_id": 4701, + "fields": [ + { "fieldname":"m_handle", "fieldtype":"SteamInventoryResult_t" } + ], + "struct": "SteamInventoryFullUpdate_t" + }, + { + "callback_id": 4702, + "fields": [], + "struct": "SteamInventoryDefinitionUpdate_t" + }, + { + "callback_id": 4703, + "fields": [ + { "fieldname":"m_result", "fieldtype":"EResult" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_numEligiblePromoItemDefs", "fieldtype":"int" }, + { "fieldname":"m_bCachedData", "fieldtype":"bool" } + ], + "struct": "SteamInventoryEligiblePromoItemDefIDs_t" + }, + { + "callback_id": 4704, + "fields": [ + { "fieldname":"m_result", "fieldtype":"EResult" }, + { "fieldname":"m_ulOrderID", "fieldtype":"uint64" }, + { "fieldname":"m_ulTransID", "fieldtype":"uint64" } + ], + "struct": "SteamInventoryStartPurchaseResult_t" + }, + { + "callback_id": 4705, + "fields": [ + { "fieldname":"m_result", "fieldtype":"EResult" }, + { "fieldname":"m_rgchCurrency", "fieldtype":"char [4]" } + ], + "struct": "SteamInventoryRequestPricesResult_t" + }, + { + "callback_id": 4611, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unVideoAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_rgchURL", "fieldtype":"char [256]" } + ], + "struct": "GetVideoURLResult_t" + }, + { + "callback_id": 4624, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unVideoAppID", "fieldtype":"AppId_t" } + ], + "struct": "GetOPFSettingsResult_t" + }, + { + "callback_id": 5001, + "fields": [], + "struct": "SteamParentalSettingsChanged_t" + }, + { + "callback_id": 5701, + "fields": [ + { "fieldname":"m_unSessionID", "fieldtype":"RemotePlaySessionID_t" } + ], + "struct": "SteamRemotePlaySessionConnected_t" + }, + { + "callback_id": 5702, + "fields": [ + { "fieldname":"m_unSessionID", "fieldtype":"RemotePlaySessionID_t" } + ], + "struct": "SteamRemotePlaySessionDisconnected_t" + }, + { + "callback_id": 5703, + "fields": [ + { "fieldname":"m_szConnectURL", "fieldtype":"char [1024]" } + ], + "struct": "SteamRemotePlayTogetherGuestInvite_t" + }, + { + "callback_id": 1251, + "fields": [ + { "fieldname":"m_identityRemote", "fieldtype":"SteamNetworkingIdentity" } + ], + "struct": "SteamNetworkingMessagesSessionRequest_t" + }, + { + "callback_id": 1252, + "fields": [ + { "fieldname":"m_info", "fieldtype":"SteamNetConnectionInfo_t" } + ], + "struct": "SteamNetworkingMessagesSessionFailed_t" + }, + { + "callback_id": 1221, + "fields": [ + { "fieldname":"m_hConn", "fieldtype":"HSteamNetConnection" }, + { "fieldname":"m_info", "fieldtype":"SteamNetConnectionInfo_t" }, + { "fieldname":"m_eOldState", "fieldtype":"ESteamNetworkingConnectionState" } + ], + "struct": "SteamNetConnectionStatusChangedCallback_t" + }, + { + "callback_id": 1222, + "fields": [ + { "fieldname":"m_eAvail", "fieldtype":"ESteamNetworkingAvailability" }, + { "fieldname":"m_debugMsg", "fieldtype":"char [256]" } + ], + "struct": "SteamNetAuthenticationStatus_t" + }, + { + "callback_id": 1281, + "fields": [ + { "fieldname":"m_eAvail", "fieldtype":"ESteamNetworkingAvailability" }, + { "fieldname":"m_bPingMeasurementInProgress", "fieldtype":"int" }, + { "fieldname":"m_eAvailNetworkConfig", "fieldtype":"ESteamNetworkingAvailability" }, + { "fieldname":"m_eAvailAnyRelay", "fieldtype":"ESteamNetworkingAvailability" }, + { "fieldname":"m_debugMsg", "fieldtype":"char [256]" } + ], + "struct": "SteamRelayNetworkStatus_t" + }, + { + "callback_id": 201, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_OwnerSteamID", "fieldtype":"CSteamID" } + ], + "struct": "GSClientApprove_t" + }, + { + "callback_id": 202, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_eDenyReason", "fieldtype":"EDenyReason" }, + { "fieldname":"m_rgchOptionalText", "fieldtype":"char [128]" } + ], + "struct": "GSClientDeny_t" + }, + { + "callback_id": 203, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_eDenyReason", "fieldtype":"EDenyReason" } + ], + "struct": "GSClientKick_t" + }, + { + "callback_id": 206, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"uint64" }, + { "fieldname":"m_pchAchievement", "fieldtype":"char [128]" }, + { "fieldname":"m_bUnlocked", "fieldtype":"bool" } + ], + "struct": "GSClientAchievementStatus_t" + }, + { + "callback_id": 115, + "fields": [ + { "fieldname":"m_bSecure", "fieldtype":"uint8" } + ], + "struct": "GSPolicyResponse_t" + }, + { + "callback_id": 207, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nRank", "fieldtype":"int32" }, + { "fieldname":"m_unTotalConnects", "fieldtype":"uint32" }, + { "fieldname":"m_unTotalMinutesPlayed", "fieldtype":"uint32" } + ], + "struct": "GSGameplayStats_t" + }, + { + "callback_id": 208, + "fields": [ + { "fieldname":"m_SteamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_SteamIDGroup", "fieldtype":"CSteamID" }, + { "fieldname":"m_bMember", "fieldtype":"bool" }, + { "fieldname":"m_bOfficer", "fieldtype":"bool" } + ], + "struct": "GSClientGroupStatus_t" + }, + { + "callback_id": 209, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unReputationScore", "fieldtype":"uint32" }, + { "fieldname":"m_bBanned", "fieldtype":"bool" }, + { "fieldname":"m_unBannedIP", "fieldtype":"uint32" }, + { "fieldname":"m_usBannedPort", "fieldtype":"uint16" }, + { "fieldname":"m_ulBannedGameID", "fieldtype":"uint64" }, + { "fieldname":"m_unBanExpires", "fieldtype":"uint32" } + ], + "struct": "GSReputation_t" + }, + { + "callback_id": 210, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "AssociateWithClanResult_t" + }, + { + "callback_id": 211, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_cPlayersThatDontLikeCandidate", "fieldtype":"int" }, + { "fieldname":"m_cPlayersThatCandidateDoesntLike", "fieldtype":"int" }, + { "fieldname":"m_cClanPlayersThatDontLikeCandidate", "fieldtype":"int" }, + { "fieldname":"m_SteamIDCandidate", "fieldtype":"CSteamID" } + ], + "struct": "ComputeNewPlayerCompatibilityResult_t" + }, + { + "callback_id": 1800, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "GSStatsReceived_t" + }, + { + "callback_id": 1801, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "GSStatsStored_t" + }, + { + "callback_id": 1108, + "fields": [ + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "GSStatsUnloaded_t" + }, + { + "callback_id": 1223, + "consts": [ + { "constname":"k_nMaxReturnPorts", "consttype":"int", "constval":"8" } + ], + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_identity", "fieldtype":"SteamNetworkingIdentity" }, + { "fieldname":"m_unIP", "fieldtype":"uint32" }, + { "fieldname":"m_unPorts", "fieldtype":"uint16 [8]" } + ], + "struct": "SteamNetworkingFakeIPResult_t" + } + ], + "consts": [ + { "constname":"k_uAppIdInvalid", "consttype":"AppId_t", "constval":"0x0" }, + { "constname":"k_uDepotIdInvalid", "consttype":"DepotId_t", "constval":"0x0" }, + { "constname":"k_uAPICallInvalid", "consttype":"SteamAPICall_t", "constval":"0x0" }, + { "constname":"k_uAccountIdInvalid", "consttype":"AccountID_t", "constval":"0" }, + { "constname":"k_ulPartyBeaconIdInvalid", "consttype":"PartyBeaconID_t", "constval":"0" }, + { "constname":"k_HAuthTicketInvalid", "consttype":"HAuthTicket", "constval":"0" }, + { "constname":"k_unSteamAccountIDMask", "consttype":"unsigned int", "constval":"0xFFFFFFFF" }, + { "constname":"k_unSteamAccountInstanceMask", "consttype":"unsigned int", "constval":"0x000FFFFF" }, + { "constname":"k_unSteamUserDefaultInstance", "consttype":"unsigned int", "constval":"1" }, + { "constname":"k_cchGameExtraInfoMax", "consttype":"int", "constval":"64" }, + { "constname":"k_cchMaxSteamErrMsg", "consttype":"int", "constval":"1024" }, + { "constname":"k_cchMaxFriendsGroupName", "consttype":"int", "constval":"64" }, + { "constname":"k_cFriendsGroupLimit", "consttype":"int", "constval":"100" }, + { "constname":"k_FriendsGroupID_Invalid", "consttype":"FriendsGroupID_t", "constval":"- 1" }, + { "constname":"k_cEnumerateFollowersMax", "consttype":"int", "constval":"50" }, + { "constname":"k_usFriendGameInfoQueryPort_NotInitialized", "consttype":"uint16", "constval":"0xFFFF" }, + { "constname":"k_usFriendGameInfoQueryPort_Error", "consttype":"uint16", "constval":"0xFFFE" }, + { "constname":"k_cubChatMetadataMax", "consttype":"uint32", "constval":"8192" }, + { "constname":"k_cbMaxGameServerGameDir", "consttype":"int", "constval":"32" }, + { "constname":"k_cbMaxGameServerMapName", "consttype":"int", "constval":"32" }, + { "constname":"k_cbMaxGameServerGameDescription", "consttype":"int", "constval":"64" }, + { "constname":"k_cbMaxGameServerName", "consttype":"int", "constval":"64" }, + { "constname":"k_cbMaxGameServerTags", "consttype":"int", "constval":"128" }, + { "constname":"k_cbMaxGameServerGameData", "consttype":"int", "constval":"2048" }, + { "constname":"HSERVERQUERY_INVALID", "consttype":"int", "constval":"0xffffffff" }, + { "constname":"k_unFavoriteFlagNone", "consttype":"uint32", "constval":"0x00" }, + { "constname":"k_unFavoriteFlagFavorite", "consttype":"uint32", "constval":"0x01" }, + { "constname":"k_unFavoriteFlagHistory", "consttype":"uint32", "constval":"0x02" }, + { "constname":"k_unMaxCloudFileChunkSize", "consttype":"uint32", "constval":"100 * 1024 * 1024" }, + { "constname":"k_PublishedFileIdInvalid", "consttype":"PublishedFileId_t", "constval":"0" }, + { "constname":"k_UGCHandleInvalid", "consttype":"UGCHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_PublishedFileUpdateHandleInvalid", "consttype":"PublishedFileUpdateHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_UGCFileStreamHandleInvalid", "consttype":"UGCFileWriteStreamHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_cchPublishedDocumentTitleMax", "consttype":"uint32", "constval":"128 + 1" }, + { "constname":"k_cchPublishedDocumentDescriptionMax", "consttype":"uint32", "constval":"8000" }, + { "constname":"k_cchPublishedDocumentChangeDescriptionMax", "consttype":"uint32", "constval":"8000" }, + { "constname":"k_unEnumeratePublishedFilesMaxResults", "consttype":"uint32", "constval":"50" }, + { "constname":"k_cchTagListMax", "consttype":"uint32", "constval":"1024 + 1" }, + { "constname":"k_cchFilenameMax", "consttype":"uint32", "constval":"260" }, + { "constname":"k_cchPublishedFileURLMax", "consttype":"uint32", "constval":"256" }, + { "constname":"k_cubAppProofOfPurchaseKeyMax", "consttype":"int", "constval":"240" }, + { "constname":"k_nScreenshotMaxTaggedUsers", "consttype":"uint32", "constval":"32" }, + { "constname":"k_nScreenshotMaxTaggedPublishedFiles", "consttype":"uint32", "constval":"32" }, + { "constname":"k_cubUFSTagTypeMax", "consttype":"int", "constval":"255" }, + { "constname":"k_cubUFSTagValueMax", "consttype":"int", "constval":"255" }, + { "constname":"k_ScreenshotThumbWidth", "consttype":"int", "constval":"200" }, + { "constname":"k_UGCQueryHandleInvalid", "consttype":"UGCQueryHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_UGCUpdateHandleInvalid", "consttype":"UGCUpdateHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"kNumUGCResultsPerPage", "consttype":"uint32", "constval":"50" }, + { "constname":"k_cchDeveloperMetadataMax", "consttype":"uint32", "constval":"5000" }, + { "constname":"INVALID_HTMLBROWSER", "consttype":"uint32", "constval":"0" }, + { "constname":"k_SteamItemInstanceIDInvalid", "consttype":"SteamItemInstanceID_t", "constval":"( SteamItemInstanceID_t ) ~ 0" }, + { "constname":"k_SteamInventoryResultInvalid", "consttype":"SteamInventoryResult_t", "constval":"- 1" }, + { "constname":"k_SteamInventoryUpdateHandleInvalid", "consttype":"SteamInventoryUpdateHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_nMaxTimelineRangeIDLength", "consttype":"int", "constval":"64" }, + { "constname":"k_HSteamNetConnection_Invalid", "consttype":"HSteamNetConnection", "constval":"0" }, + { "constname":"k_HSteamListenSocket_Invalid", "consttype":"HSteamListenSocket", "constval":"0" }, + { "constname":"k_HSteamNetPollGroup_Invalid", "consttype":"HSteamNetPollGroup", "constval":"0" }, + { "constname":"k_cchMaxSteamNetworkingErrMsg", "consttype":"int", "constval":"1024" }, + { "constname":"k_cchSteamNetworkingMaxConnectionCloseReason", "consttype":"int", "constval":"128" }, + { "constname":"k_cchSteamNetworkingMaxConnectionDescription", "consttype":"int", "constval":"128" }, + { "constname":"k_cchSteamNetworkingMaxConnectionAppName", "consttype":"int", "constval":"32" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_Unauthenticated", "consttype":"int", "constval":"1" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_Unencrypted", "consttype":"int", "constval":"2" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_LoopbackBuffers", "consttype":"int", "constval":"4" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_Fast", "consttype":"int", "constval":"8" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_Relayed", "consttype":"int", "constval":"16" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_DualWifi", "consttype":"int", "constval":"32" }, + { "constname":"k_cbMaxSteamNetworkingSocketsMessageSizeSend", "consttype":"int", "constval":"512 * 1024" }, + { "constname":"k_nSteamNetworkingSend_Unreliable", "consttype":"int", "constval":"0" }, + { "constname":"k_nSteamNetworkingSend_NoNagle", "consttype":"int", "constval":"1" }, + { "constname":"k_nSteamNetworkingSend_UnreliableNoNagle", "consttype":"int", "constval":"k_nSteamNetworkingSend_Unreliable | k_nSteamNetworkingSend_NoNagle" }, + { "constname":"k_nSteamNetworkingSend_NoDelay", "consttype":"int", "constval":"4" }, + { "constname":"k_nSteamNetworkingSend_UnreliableNoDelay", "consttype":"int", "constval":"k_nSteamNetworkingSend_Unreliable | k_nSteamNetworkingSend_NoDelay | k_nSteamNetworkingSend_NoNagle" }, + { "constname":"k_nSteamNetworkingSend_Reliable", "consttype":"int", "constval":"8" }, + { "constname":"k_nSteamNetworkingSend_ReliableNoNagle", "consttype":"int", "constval":"k_nSteamNetworkingSend_Reliable | k_nSteamNetworkingSend_NoNagle" }, + { "constname":"k_nSteamNetworkingSend_UseCurrentThread", "consttype":"int", "constval":"16" }, + { "constname":"k_nSteamNetworkingSend_AutoRestartBrokenSession", "consttype":"int", "constval":"32" }, + { "constname":"k_cchMaxSteamNetworkingPingLocationString", "consttype":"int", "constval":"1024" }, + { "constname":"k_nSteamNetworkingPing_Failed", "consttype":"int", "constval":"- 1" }, + { "constname":"k_nSteamNetworkingPing_Unknown", "consttype":"int", "constval":"- 2" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Default", "consttype":"int", "constval":"- 1" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Disable", "consttype":"int", "constval":"0" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Relay", "consttype":"int", "constval":"1" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Private", "consttype":"int", "constval":"2" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Public", "consttype":"int", "constval":"4" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_All", "consttype":"int", "constval":"0x7fffffff" }, + { "constname":"k_SteamDatagramPOPID_dev", "consttype":"SteamNetworkingPOPID", "constval":"( ( uint32 ) 'd' << 16U ) | ( ( uint32 ) 'e' << 8U ) | ( uint32 ) 'v'" }, + { "constname":"STEAMGAMESERVER_QUERY_PORT_SHARED", "consttype":"uint16", "constval":"0xffff" }, + { "constname":"MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE", "consttype":"uint16", "constval":"STEAMGAMESERVER_QUERY_PORT_SHARED" }, + { "constname":"k_cbSteamDatagramMaxSerializedTicket", "consttype":"uint32", "constval":"512" }, + { "constname":"k_cbMaxSteamDatagramGameCoordinatorServerLoginAppData", "consttype":"uint32", "constval":"2048" }, + { "constname":"k_cbMaxSteamDatagramGameCoordinatorServerLoginSerialized", "consttype":"uint32", "constval":"4096" }, + { "constname":"k_cbSteamNetworkingSocketsFakeUDPPortRecommendedMTU", "consttype":"int", "constval":"1200" }, + { "constname":"k_cbSteamNetworkingSocketsFakeUDPPortMaxMessageSize", "consttype":"int", "constval":"4096" } + ], + "enums": [ + { + "enumname": "ESteamIPType", + "values": [ + { "name":"k_ESteamIPTypeIPv4", "value":"0" }, + { "name":"k_ESteamIPTypeIPv6", "value":"1" } + ] + }, + { + "enumname": "EUniverse", + "values": [ + { "name":"k_EUniverseInvalid", "value":"0" }, + { "name":"k_EUniversePublic", "value":"1" }, + { "name":"k_EUniverseBeta", "value":"2" }, + { "name":"k_EUniverseInternal", "value":"3" }, + { "name":"k_EUniverseDev", "value":"4" }, + { "name":"k_EUniverseMax", "value":"5" } + ] + }, + { + "enumname": "EResult", + "values": [ + { "name":"k_EResultNone", "value":"0" }, + { "name":"k_EResultOK", "value":"1" }, + { "name":"k_EResultFail", "value":"2" }, + { "name":"k_EResultNoConnection", "value":"3" }, + { "name":"k_EResultInvalidPassword", "value":"5" }, + { "name":"k_EResultLoggedInElsewhere", "value":"6" }, + { "name":"k_EResultInvalidProtocolVer", "value":"7" }, + { "name":"k_EResultInvalidParam", "value":"8" }, + { "name":"k_EResultFileNotFound", "value":"9" }, + { "name":"k_EResultBusy", "value":"10" }, + { "name":"k_EResultInvalidState", "value":"11" }, + { "name":"k_EResultInvalidName", "value":"12" }, + { "name":"k_EResultInvalidEmail", "value":"13" }, + { "name":"k_EResultDuplicateName", "value":"14" }, + { "name":"k_EResultAccessDenied", "value":"15" }, + { "name":"k_EResultTimeout", "value":"16" }, + { "name":"k_EResultBanned", "value":"17" }, + { "name":"k_EResultAccountNotFound", "value":"18" }, + { "name":"k_EResultInvalidSteamID", "value":"19" }, + { "name":"k_EResultServiceUnavailable", "value":"20" }, + { "name":"k_EResultNotLoggedOn", "value":"21" }, + { "name":"k_EResultPending", "value":"22" }, + { "name":"k_EResultEncryptionFailure", "value":"23" }, + { "name":"k_EResultInsufficientPrivilege", "value":"24" }, + { "name":"k_EResultLimitExceeded", "value":"25" }, + { "name":"k_EResultRevoked", "value":"26" }, + { "name":"k_EResultExpired", "value":"27" }, + { "name":"k_EResultAlreadyRedeemed", "value":"28" }, + { "name":"k_EResultDuplicateRequest", "value":"29" }, + { "name":"k_EResultAlreadyOwned", "value":"30" }, + { "name":"k_EResultIPNotFound", "value":"31" }, + { "name":"k_EResultPersistFailed", "value":"32" }, + { "name":"k_EResultLockingFailed", "value":"33" }, + { "name":"k_EResultLogonSessionReplaced", "value":"34" }, + { "name":"k_EResultConnectFailed", "value":"35" }, + { "name":"k_EResultHandshakeFailed", "value":"36" }, + { "name":"k_EResultIOFailure", "value":"37" }, + { "name":"k_EResultRemoteDisconnect", "value":"38" }, + { "name":"k_EResultShoppingCartNotFound", "value":"39" }, + { "name":"k_EResultBlocked", "value":"40" }, + { "name":"k_EResultIgnored", "value":"41" }, + { "name":"k_EResultNoMatch", "value":"42" }, + { "name":"k_EResultAccountDisabled", "value":"43" }, + { "name":"k_EResultServiceReadOnly", "value":"44" }, + { "name":"k_EResultAccountNotFeatured", "value":"45" }, + { "name":"k_EResultAdministratorOK", "value":"46" }, + { "name":"k_EResultContentVersion", "value":"47" }, + { "name":"k_EResultTryAnotherCM", "value":"48" }, + { "name":"k_EResultPasswordRequiredToKickSession", "value":"49" }, + { "name":"k_EResultAlreadyLoggedInElsewhere", "value":"50" }, + { "name":"k_EResultSuspended", "value":"51" }, + { "name":"k_EResultCancelled", "value":"52" }, + { "name":"k_EResultDataCorruption", "value":"53" }, + { "name":"k_EResultDiskFull", "value":"54" }, + { "name":"k_EResultRemoteCallFailed", "value":"55" }, + { "name":"k_EResultPasswordUnset", "value":"56" }, + { "name":"k_EResultExternalAccountUnlinked", "value":"57" }, + { "name":"k_EResultPSNTicketInvalid", "value":"58" }, + { "name":"k_EResultExternalAccountAlreadyLinked", "value":"59" }, + { "name":"k_EResultRemoteFileConflict", "value":"60" }, + { "name":"k_EResultIllegalPassword", "value":"61" }, + { "name":"k_EResultSameAsPreviousValue", "value":"62" }, + { "name":"k_EResultAccountLogonDenied", "value":"63" }, + { "name":"k_EResultCannotUseOldPassword", "value":"64" }, + { "name":"k_EResultInvalidLoginAuthCode", "value":"65" }, + { "name":"k_EResultAccountLogonDeniedNoMail", "value":"66" }, + { "name":"k_EResultHardwareNotCapableOfIPT", "value":"67" }, + { "name":"k_EResultIPTInitError", "value":"68" }, + { "name":"k_EResultParentalControlRestricted", "value":"69" }, + { "name":"k_EResultFacebookQueryError", "value":"70" }, + { "name":"k_EResultExpiredLoginAuthCode", "value":"71" }, + { "name":"k_EResultIPLoginRestrictionFailed", "value":"72" }, + { "name":"k_EResultAccountLockedDown", "value":"73" }, + { "name":"k_EResultAccountLogonDeniedVerifiedEmailRequired", "value":"74" }, + { "name":"k_EResultNoMatchingURL", "value":"75" }, + { "name":"k_EResultBadResponse", "value":"76" }, + { "name":"k_EResultRequirePasswordReEntry", "value":"77" }, + { "name":"k_EResultValueOutOfRange", "value":"78" }, + { "name":"k_EResultUnexpectedError", "value":"79" }, + { "name":"k_EResultDisabled", "value":"80" }, + { "name":"k_EResultInvalidCEGSubmission", "value":"81" }, + { "name":"k_EResultRestrictedDevice", "value":"82" }, + { "name":"k_EResultRegionLocked", "value":"83" }, + { "name":"k_EResultRateLimitExceeded", "value":"84" }, + { "name":"k_EResultAccountLoginDeniedNeedTwoFactor", "value":"85" }, + { "name":"k_EResultItemDeleted", "value":"86" }, + { "name":"k_EResultAccountLoginDeniedThrottle", "value":"87" }, + { "name":"k_EResultTwoFactorCodeMismatch", "value":"88" }, + { "name":"k_EResultTwoFactorActivationCodeMismatch", "value":"89" }, + { "name":"k_EResultAccountAssociatedToMultiplePartners", "value":"90" }, + { "name":"k_EResultNotModified", "value":"91" }, + { "name":"k_EResultNoMobileDevice", "value":"92" }, + { "name":"k_EResultTimeNotSynced", "value":"93" }, + { "name":"k_EResultSmsCodeFailed", "value":"94" }, + { "name":"k_EResultAccountLimitExceeded", "value":"95" }, + { "name":"k_EResultAccountActivityLimitExceeded", "value":"96" }, + { "name":"k_EResultPhoneActivityLimitExceeded", "value":"97" }, + { "name":"k_EResultRefundToWallet", "value":"98" }, + { "name":"k_EResultEmailSendFailure", "value":"99" }, + { "name":"k_EResultNotSettled", "value":"100" }, + { "name":"k_EResultNeedCaptcha", "value":"101" }, + { "name":"k_EResultGSLTDenied", "value":"102" }, + { "name":"k_EResultGSOwnerDenied", "value":"103" }, + { "name":"k_EResultInvalidItemType", "value":"104" }, + { "name":"k_EResultIPBanned", "value":"105" }, + { "name":"k_EResultGSLTExpired", "value":"106" }, + { "name":"k_EResultInsufficientFunds", "value":"107" }, + { "name":"k_EResultTooManyPending", "value":"108" }, + { "name":"k_EResultNoSiteLicensesFound", "value":"109" }, + { "name":"k_EResultWGNetworkSendExceeded", "value":"110" }, + { "name":"k_EResultAccountNotFriends", "value":"111" }, + { "name":"k_EResultLimitedUserAccount", "value":"112" }, + { "name":"k_EResultCantRemoveItem", "value":"113" }, + { "name":"k_EResultAccountDeleted", "value":"114" }, + { "name":"k_EResultExistingUserCancelledLicense", "value":"115" }, + { "name":"k_EResultCommunityCooldown", "value":"116" }, + { "name":"k_EResultNoLauncherSpecified", "value":"117" }, + { "name":"k_EResultMustAgreeToSSA", "value":"118" }, + { "name":"k_EResultLauncherMigrated", "value":"119" }, + { "name":"k_EResultSteamRealmMismatch", "value":"120" }, + { "name":"k_EResultInvalidSignature", "value":"121" }, + { "name":"k_EResultParseFailure", "value":"122" }, + { "name":"k_EResultNoVerifiedPhone", "value":"123" }, + { "name":"k_EResultInsufficientBattery", "value":"124" }, + { "name":"k_EResultChargerRequired", "value":"125" }, + { "name":"k_EResultCachedCredentialInvalid", "value":"126" }, + { "name":"K_EResultPhoneNumberIsVOIP", "value":"127" }, + { "name":"k_EResultNotSupported", "value":"128" }, + { "name":"k_EResultFamilySizeLimitExceeded", "value":"129" } + ] + }, + { + "enumname": "EVoiceResult", + "values": [ + { "name":"k_EVoiceResultOK", "value":"0" }, + { "name":"k_EVoiceResultNotInitialized", "value":"1" }, + { "name":"k_EVoiceResultNotRecording", "value":"2" }, + { "name":"k_EVoiceResultNoData", "value":"3" }, + { "name":"k_EVoiceResultBufferTooSmall", "value":"4" }, + { "name":"k_EVoiceResultDataCorrupted", "value":"5" }, + { "name":"k_EVoiceResultRestricted", "value":"6" }, + { "name":"k_EVoiceResultUnsupportedCodec", "value":"7" }, + { "name":"k_EVoiceResultReceiverOutOfDate", "value":"8" }, + { "name":"k_EVoiceResultReceiverDidNotAnswer", "value":"9" } + ] + }, + { + "enumname": "EDenyReason", + "values": [ + { "name":"k_EDenyInvalid", "value":"0" }, + { "name":"k_EDenyInvalidVersion", "value":"1" }, + { "name":"k_EDenyGeneric", "value":"2" }, + { "name":"k_EDenyNotLoggedOn", "value":"3" }, + { "name":"k_EDenyNoLicense", "value":"4" }, + { "name":"k_EDenyCheater", "value":"5" }, + { "name":"k_EDenyLoggedInElseWhere", "value":"6" }, + { "name":"k_EDenyUnknownText", "value":"7" }, + { "name":"k_EDenyIncompatibleAnticheat", "value":"8" }, + { "name":"k_EDenyMemoryCorruption", "value":"9" }, + { "name":"k_EDenyIncompatibleSoftware", "value":"10" }, + { "name":"k_EDenySteamConnectionLost", "value":"11" }, + { "name":"k_EDenySteamConnectionError", "value":"12" }, + { "name":"k_EDenySteamResponseTimedOut", "value":"13" }, + { "name":"k_EDenySteamValidationStalled", "value":"14" }, + { "name":"k_EDenySteamOwnerLeftGuestUser", "value":"15" } + ] + }, + { + "enumname": "EBeginAuthSessionResult", + "values": [ + { "name":"k_EBeginAuthSessionResultOK", "value":"0" }, + { "name":"k_EBeginAuthSessionResultInvalidTicket", "value":"1" }, + { "name":"k_EBeginAuthSessionResultDuplicateRequest", "value":"2" }, + { "name":"k_EBeginAuthSessionResultInvalidVersion", "value":"3" }, + { "name":"k_EBeginAuthSessionResultGameMismatch", "value":"4" }, + { "name":"k_EBeginAuthSessionResultExpiredTicket", "value":"5" } + ] + }, + { + "enumname": "EAuthSessionResponse", + "values": [ + { "name":"k_EAuthSessionResponseOK", "value":"0" }, + { "name":"k_EAuthSessionResponseUserNotConnectedToSteam", "value":"1" }, + { "name":"k_EAuthSessionResponseNoLicenseOrExpired", "value":"2" }, + { "name":"k_EAuthSessionResponseVACBanned", "value":"3" }, + { "name":"k_EAuthSessionResponseLoggedInElseWhere", "value":"4" }, + { "name":"k_EAuthSessionResponseVACCheckTimedOut", "value":"5" }, + { "name":"k_EAuthSessionResponseAuthTicketCanceled", "value":"6" }, + { "name":"k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed", "value":"7" }, + { "name":"k_EAuthSessionResponseAuthTicketInvalid", "value":"8" }, + { "name":"k_EAuthSessionResponsePublisherIssuedBan", "value":"9" }, + { "name":"k_EAuthSessionResponseAuthTicketNetworkIdentityFailure", "value":"10" } + ] + }, + { + "enumname": "EUserHasLicenseForAppResult", + "values": [ + { "name":"k_EUserHasLicenseResultHasLicense", "value":"0" }, + { "name":"k_EUserHasLicenseResultDoesNotHaveLicense", "value":"1" }, + { "name":"k_EUserHasLicenseResultNoAuth", "value":"2" } + ] + }, + { + "enumname": "EAccountType", + "values": [ + { "name":"k_EAccountTypeInvalid", "value":"0" }, + { "name":"k_EAccountTypeIndividual", "value":"1" }, + { "name":"k_EAccountTypeMultiseat", "value":"2" }, + { "name":"k_EAccountTypeGameServer", "value":"3" }, + { "name":"k_EAccountTypeAnonGameServer", "value":"4" }, + { "name":"k_EAccountTypePending", "value":"5" }, + { "name":"k_EAccountTypeContentServer", "value":"6" }, + { "name":"k_EAccountTypeClan", "value":"7" }, + { "name":"k_EAccountTypeChat", "value":"8" }, + { "name":"k_EAccountTypeConsoleUser", "value":"9" }, + { "name":"k_EAccountTypeAnonUser", "value":"10" }, + { "name":"k_EAccountTypeMax", "value":"11" } + ] + }, + { + "enumname": "EChatEntryType", + "values": [ + { "name":"k_EChatEntryTypeInvalid", "value":"0" }, + { "name":"k_EChatEntryTypeChatMsg", "value":"1" }, + { "name":"k_EChatEntryTypeTyping", "value":"2" }, + { "name":"k_EChatEntryTypeInviteGame", "value":"3" }, + { "name":"k_EChatEntryTypeEmote", "value":"4" }, + { "name":"k_EChatEntryTypeLeftConversation", "value":"6" }, + { "name":"k_EChatEntryTypeEntered", "value":"7" }, + { "name":"k_EChatEntryTypeWasKicked", "value":"8" }, + { "name":"k_EChatEntryTypeWasBanned", "value":"9" }, + { "name":"k_EChatEntryTypeDisconnected", "value":"10" }, + { "name":"k_EChatEntryTypeHistoricalChat", "value":"11" }, + { "name":"k_EChatEntryTypeLinkBlocked", "value":"14" } + ] + }, + { + "enumname": "EChatRoomEnterResponse", + "values": [ + { "name":"k_EChatRoomEnterResponseSuccess", "value":"1" }, + { "name":"k_EChatRoomEnterResponseDoesntExist", "value":"2" }, + { "name":"k_EChatRoomEnterResponseNotAllowed", "value":"3" }, + { "name":"k_EChatRoomEnterResponseFull", "value":"4" }, + { "name":"k_EChatRoomEnterResponseError", "value":"5" }, + { "name":"k_EChatRoomEnterResponseBanned", "value":"6" }, + { "name":"k_EChatRoomEnterResponseLimited", "value":"7" }, + { "name":"k_EChatRoomEnterResponseClanDisabled", "value":"8" }, + { "name":"k_EChatRoomEnterResponseCommunityBan", "value":"9" }, + { "name":"k_EChatRoomEnterResponseMemberBlockedYou", "value":"10" }, + { "name":"k_EChatRoomEnterResponseYouBlockedMember", "value":"11" }, + { "name":"k_EChatRoomEnterResponseRatelimitExceeded", "value":"15" } + ] + }, + { + "enumname": "EChatSteamIDInstanceFlags", + "values": [ + { "name":"k_EChatAccountInstanceMask", "value":"4095" }, + { "name":"k_EChatInstanceFlagClan", "value":"524288" }, + { "name":"k_EChatInstanceFlagLobby", "value":"262144" }, + { "name":"k_EChatInstanceFlagMMSLobby", "value":"131072" } + ] + }, + { + "enumname": "ENotificationPosition", + "values": [ + { "name":"k_EPositionInvalid", "value":"-1" }, + { "name":"k_EPositionTopLeft", "value":"0" }, + { "name":"k_EPositionTopRight", "value":"1" }, + { "name":"k_EPositionBottomLeft", "value":"2" }, + { "name":"k_EPositionBottomRight", "value":"3" } + ] + }, + { + "enumname": "EBroadcastUploadResult", + "values": [ + { "name":"k_EBroadcastUploadResultNone", "value":"0" }, + { "name":"k_EBroadcastUploadResultOK", "value":"1" }, + { "name":"k_EBroadcastUploadResultInitFailed", "value":"2" }, + { "name":"k_EBroadcastUploadResultFrameFailed", "value":"3" }, + { "name":"k_EBroadcastUploadResultTimeout", "value":"4" }, + { "name":"k_EBroadcastUploadResultBandwidthExceeded", "value":"5" }, + { "name":"k_EBroadcastUploadResultLowFPS", "value":"6" }, + { "name":"k_EBroadcastUploadResultMissingKeyFrames", "value":"7" }, + { "name":"k_EBroadcastUploadResultNoConnection", "value":"8" }, + { "name":"k_EBroadcastUploadResultRelayFailed", "value":"9" }, + { "name":"k_EBroadcastUploadResultSettingsChanged", "value":"10" }, + { "name":"k_EBroadcastUploadResultMissingAudio", "value":"11" }, + { "name":"k_EBroadcastUploadResultTooFarBehind", "value":"12" }, + { "name":"k_EBroadcastUploadResultTranscodeBehind", "value":"13" }, + { "name":"k_EBroadcastUploadResultNotAllowedToPlay", "value":"14" }, + { "name":"k_EBroadcastUploadResultBusy", "value":"15" }, + { "name":"k_EBroadcastUploadResultBanned", "value":"16" }, + { "name":"k_EBroadcastUploadResultAlreadyActive", "value":"17" }, + { "name":"k_EBroadcastUploadResultForcedOff", "value":"18" }, + { "name":"k_EBroadcastUploadResultAudioBehind", "value":"19" }, + { "name":"k_EBroadcastUploadResultShutdown", "value":"20" }, + { "name":"k_EBroadcastUploadResultDisconnect", "value":"21" }, + { "name":"k_EBroadcastUploadResultVideoInitFailed", "value":"22" }, + { "name":"k_EBroadcastUploadResultAudioInitFailed", "value":"23" } + ] + }, + { + "enumname": "EMarketNotAllowedReasonFlags", + "values": [ + { "name":"k_EMarketNotAllowedReason_None", "value":"0" }, + { "name":"k_EMarketNotAllowedReason_TemporaryFailure", "value":"1" }, + { "name":"k_EMarketNotAllowedReason_AccountDisabled", "value":"2" }, + { "name":"k_EMarketNotAllowedReason_AccountLockedDown", "value":"4" }, + { "name":"k_EMarketNotAllowedReason_AccountLimited", "value":"8" }, + { "name":"k_EMarketNotAllowedReason_TradeBanned", "value":"16" }, + { "name":"k_EMarketNotAllowedReason_AccountNotTrusted", "value":"32" }, + { "name":"k_EMarketNotAllowedReason_SteamGuardNotEnabled", "value":"64" }, + { "name":"k_EMarketNotAllowedReason_SteamGuardOnlyRecentlyEnabled", "value":"128" }, + { "name":"k_EMarketNotAllowedReason_RecentPasswordReset", "value":"256" }, + { "name":"k_EMarketNotAllowedReason_NewPaymentMethod", "value":"512" }, + { "name":"k_EMarketNotAllowedReason_InvalidCookie", "value":"1024" }, + { "name":"k_EMarketNotAllowedReason_UsingNewDevice", "value":"2048" }, + { "name":"k_EMarketNotAllowedReason_RecentSelfRefund", "value":"4096" }, + { "name":"k_EMarketNotAllowedReason_NewPaymentMethodCannotBeVerified", "value":"8192" }, + { "name":"k_EMarketNotAllowedReason_NoRecentPurchases", "value":"16384" }, + { "name":"k_EMarketNotAllowedReason_AcceptedWalletGift", "value":"32768" } + ] + }, + { + "enumname": "EDurationControlProgress", + "values": [ + { "name":"k_EDurationControlProgress_Full", "value":"0" }, + { "name":"k_EDurationControlProgress_Half", "value":"1" }, + { "name":"k_EDurationControlProgress_None", "value":"2" }, + { "name":"k_EDurationControl_ExitSoon_3h", "value":"3" }, + { "name":"k_EDurationControl_ExitSoon_5h", "value":"4" }, + { "name":"k_EDurationControl_ExitSoon_Night", "value":"5" } + ] + }, + { + "enumname": "EDurationControlNotification", + "values": [ + { "name":"k_EDurationControlNotification_None", "value":"0" }, + { "name":"k_EDurationControlNotification_1Hour", "value":"1" }, + { "name":"k_EDurationControlNotification_3Hours", "value":"2" }, + { "name":"k_EDurationControlNotification_HalfProgress", "value":"3" }, + { "name":"k_EDurationControlNotification_NoProgress", "value":"4" }, + { "name":"k_EDurationControlNotification_ExitSoon_3h", "value":"5" }, + { "name":"k_EDurationControlNotification_ExitSoon_5h", "value":"6" }, + { "name":"k_EDurationControlNotification_ExitSoon_Night", "value":"7" } + ] + }, + { + "enumname": "EDurationControlOnlineState", + "values": [ + { "name":"k_EDurationControlOnlineState_Invalid", "value":"0" }, + { "name":"k_EDurationControlOnlineState_Offline", "value":"1" }, + { "name":"k_EDurationControlOnlineState_Online", "value":"2" }, + { "name":"k_EDurationControlOnlineState_OnlineHighPri", "value":"3" } + ] + }, + { + "enumname": "EGameSearchErrorCode_t", + "values": [ + { "name":"k_EGameSearchErrorCode_OK", "value":"1" }, + { "name":"k_EGameSearchErrorCode_Failed_Search_Already_In_Progress", "value":"2" }, + { "name":"k_EGameSearchErrorCode_Failed_No_Search_In_Progress", "value":"3" }, + { "name":"k_EGameSearchErrorCode_Failed_Not_Lobby_Leader", "value":"4" }, + { "name":"k_EGameSearchErrorCode_Failed_No_Host_Available", "value":"5" }, + { "name":"k_EGameSearchErrorCode_Failed_Search_Params_Invalid", "value":"6" }, + { "name":"k_EGameSearchErrorCode_Failed_Offline", "value":"7" }, + { "name":"k_EGameSearchErrorCode_Failed_NotAuthorized", "value":"8" }, + { "name":"k_EGameSearchErrorCode_Failed_Unknown_Error", "value":"9" } + ] + }, + { + "enumname": "EPlayerResult_t", + "values": [ + { "name":"k_EPlayerResultFailedToConnect", "value":"1" }, + { "name":"k_EPlayerResultAbandoned", "value":"2" }, + { "name":"k_EPlayerResultKicked", "value":"3" }, + { "name":"k_EPlayerResultIncomplete", "value":"4" }, + { "name":"k_EPlayerResultCompleted", "value":"5" } + ] + }, + { + "enumname": "ESteamIPv6ConnectivityProtocol", + "values": [ + { "name":"k_ESteamIPv6ConnectivityProtocol_Invalid", "value":"0" }, + { "name":"k_ESteamIPv6ConnectivityProtocol_HTTP", "value":"1" }, + { "name":"k_ESteamIPv6ConnectivityProtocol_UDP", "value":"2" } + ] + }, + { + "enumname": "ESteamIPv6ConnectivityState", + "values": [ + { "name":"k_ESteamIPv6ConnectivityState_Unknown", "value":"0" }, + { "name":"k_ESteamIPv6ConnectivityState_Good", "value":"1" }, + { "name":"k_ESteamIPv6ConnectivityState_Bad", "value":"2" } + ] + }, + { + "enumname": "EFriendRelationship", + "values": [ + { "name":"k_EFriendRelationshipNone", "value":"0" }, + { "name":"k_EFriendRelationshipBlocked", "value":"1" }, + { "name":"k_EFriendRelationshipRequestRecipient", "value":"2" }, + { "name":"k_EFriendRelationshipFriend", "value":"3" }, + { "name":"k_EFriendRelationshipRequestInitiator", "value":"4" }, + { "name":"k_EFriendRelationshipIgnored", "value":"5" }, + { "name":"k_EFriendRelationshipIgnoredFriend", "value":"6" }, + { "name":"k_EFriendRelationshipSuggested_DEPRECATED", "value":"7" }, + { "name":"k_EFriendRelationshipMax", "value":"8" } + ] + }, + { + "enumname": "EPersonaState", + "values": [ + { "name":"k_EPersonaStateOffline", "value":"0" }, + { "name":"k_EPersonaStateOnline", "value":"1" }, + { "name":"k_EPersonaStateBusy", "value":"2" }, + { "name":"k_EPersonaStateAway", "value":"3" }, + { "name":"k_EPersonaStateSnooze", "value":"4" }, + { "name":"k_EPersonaStateLookingToTrade", "value":"5" }, + { "name":"k_EPersonaStateLookingToPlay", "value":"6" }, + { "name":"k_EPersonaStateInvisible", "value":"7" }, + { "name":"k_EPersonaStateMax", "value":"8" } + ] + }, + { + "enumname": "EFriendFlags", + "values": [ + { "name":"k_EFriendFlagNone", "value":"0" }, + { "name":"k_EFriendFlagBlocked", "value":"1" }, + { "name":"k_EFriendFlagFriendshipRequested", "value":"2" }, + { "name":"k_EFriendFlagImmediate", "value":"4" }, + { "name":"k_EFriendFlagClanMember", "value":"8" }, + { "name":"k_EFriendFlagOnGameServer", "value":"16" }, + { "name":"k_EFriendFlagRequestingFriendship", "value":"128" }, + { "name":"k_EFriendFlagRequestingInfo", "value":"256" }, + { "name":"k_EFriendFlagIgnored", "value":"512" }, + { "name":"k_EFriendFlagIgnoredFriend", "value":"1024" }, + { "name":"k_EFriendFlagChatMember", "value":"4096" }, + { "name":"k_EFriendFlagAll", "value":"65535" } + ] + }, + { + "enumname": "EUserRestriction", + "values": [ + { "name":"k_nUserRestrictionNone", "value":"0" }, + { "name":"k_nUserRestrictionUnknown", "value":"1" }, + { "name":"k_nUserRestrictionAnyChat", "value":"2" }, + { "name":"k_nUserRestrictionVoiceChat", "value":"4" }, + { "name":"k_nUserRestrictionGroupChat", "value":"8" }, + { "name":"k_nUserRestrictionRating", "value":"16" }, + { "name":"k_nUserRestrictionGameInvites", "value":"32" }, + { "name":"k_nUserRestrictionTrading", "value":"64" } + ] + }, + { + "enumname": "EOverlayToStoreFlag", + "values": [ + { "name":"k_EOverlayToStoreFlag_None", "value":"0" }, + { "name":"k_EOverlayToStoreFlag_AddToCart", "value":"1" }, + { "name":"k_EOverlayToStoreFlag_AddToCartAndShow", "value":"2" } + ] + }, + { + "enumname": "EActivateGameOverlayToWebPageMode", + "values": [ + { "name":"k_EActivateGameOverlayToWebPageMode_Default", "value":"0" }, + { "name":"k_EActivateGameOverlayToWebPageMode_Modal", "value":"1" } + ] + }, + { + "enumname": "ECommunityProfileItemType", + "values": [ + { "name":"k_ECommunityProfileItemType_AnimatedAvatar", "value":"0" }, + { "name":"k_ECommunityProfileItemType_AvatarFrame", "value":"1" }, + { "name":"k_ECommunityProfileItemType_ProfileModifier", "value":"2" }, + { "name":"k_ECommunityProfileItemType_ProfileBackground", "value":"3" }, + { "name":"k_ECommunityProfileItemType_MiniProfileBackground", "value":"4" } + ] + }, + { + "enumname": "ECommunityProfileItemProperty", + "values": [ + { "name":"k_ECommunityProfileItemProperty_ImageSmall", "value":"0" }, + { "name":"k_ECommunityProfileItemProperty_ImageLarge", "value":"1" }, + { "name":"k_ECommunityProfileItemProperty_InternalName", "value":"2" }, + { "name":"k_ECommunityProfileItemProperty_Title", "value":"3" }, + { "name":"k_ECommunityProfileItemProperty_Description", "value":"4" }, + { "name":"k_ECommunityProfileItemProperty_AppID", "value":"5" }, + { "name":"k_ECommunityProfileItemProperty_TypeID", "value":"6" }, + { "name":"k_ECommunityProfileItemProperty_Class", "value":"7" }, + { "name":"k_ECommunityProfileItemProperty_MovieWebM", "value":"8" }, + { "name":"k_ECommunityProfileItemProperty_MovieMP4", "value":"9" }, + { "name":"k_ECommunityProfileItemProperty_MovieWebMSmall", "value":"10" }, + { "name":"k_ECommunityProfileItemProperty_MovieMP4Small", "value":"11" } + ] + }, + { + "enumname": "EPersonaChange", + "values": [ + { "name":"k_EPersonaChangeName", "value":"1" }, + { "name":"k_EPersonaChangeStatus", "value":"2" }, + { "name":"k_EPersonaChangeComeOnline", "value":"4" }, + { "name":"k_EPersonaChangeGoneOffline", "value":"8" }, + { "name":"k_EPersonaChangeGamePlayed", "value":"16" }, + { "name":"k_EPersonaChangeGameServer", "value":"32" }, + { "name":"k_EPersonaChangeAvatar", "value":"64" }, + { "name":"k_EPersonaChangeJoinedSource", "value":"128" }, + { "name":"k_EPersonaChangeLeftSource", "value":"256" }, + { "name":"k_EPersonaChangeRelationshipChanged", "value":"512" }, + { "name":"k_EPersonaChangeNameFirstSet", "value":"1024" }, + { "name":"k_EPersonaChangeBroadcast", "value":"2048" }, + { "name":"k_EPersonaChangeNickname", "value":"4096" }, + { "name":"k_EPersonaChangeSteamLevel", "value":"8192" }, + { "name":"k_EPersonaChangeRichPresence", "value":"16384" } + ] + }, + { + "enumname": "ESteamAPICallFailure", + "values": [ + { "name":"k_ESteamAPICallFailureNone", "value":"-1" }, + { "name":"k_ESteamAPICallFailureSteamGone", "value":"0" }, + { "name":"k_ESteamAPICallFailureNetworkFailure", "value":"1" }, + { "name":"k_ESteamAPICallFailureInvalidHandle", "value":"2" }, + { "name":"k_ESteamAPICallFailureMismatchedCallback", "value":"3" } + ] + }, + { + "enumname": "EGamepadTextInputMode", + "values": [ + { "name":"k_EGamepadTextInputModeNormal", "value":"0" }, + { "name":"k_EGamepadTextInputModePassword", "value":"1" } + ] + }, + { + "enumname": "EGamepadTextInputLineMode", + "values": [ + { "name":"k_EGamepadTextInputLineModeSingleLine", "value":"0" }, + { "name":"k_EGamepadTextInputLineModeMultipleLines", "value":"1" } + ] + }, + { + "enumname": "EFloatingGamepadTextInputMode", + "values": [ + { "name":"k_EFloatingGamepadTextInputModeModeSingleLine", "value":"0" }, + { "name":"k_EFloatingGamepadTextInputModeModeMultipleLines", "value":"1" }, + { "name":"k_EFloatingGamepadTextInputModeModeEmail", "value":"2" }, + { "name":"k_EFloatingGamepadTextInputModeModeNumeric", "value":"3" } + ] + }, + { + "enumname": "ETextFilteringContext", + "values": [ + { "name":"k_ETextFilteringContextUnknown", "value":"0" }, + { "name":"k_ETextFilteringContextGameContent", "value":"1" }, + { "name":"k_ETextFilteringContextChat", "value":"2" }, + { "name":"k_ETextFilteringContextName", "value":"3" } + ] + }, + { + "enumname": "ECheckFileSignature", + "values": [ + { "name":"k_ECheckFileSignatureInvalidSignature", "value":"0" }, + { "name":"k_ECheckFileSignatureValidSignature", "value":"1" }, + { "name":"k_ECheckFileSignatureFileNotFound", "value":"2" }, + { "name":"k_ECheckFileSignatureNoSignaturesFoundForThisApp", "value":"3" }, + { "name":"k_ECheckFileSignatureNoSignaturesFoundForThisFile", "value":"4" } + ] + }, + { + "enumname": "EMatchMakingServerResponse", + "values": [ + { "name":"eServerResponded", "value":"0" }, + { "name":"eServerFailedToRespond", "value":"1" }, + { "name":"eNoServersListedOnMasterServer", "value":"2" } + ] + }, + { + "enumname": "ELobbyType", + "values": [ + { "name":"k_ELobbyTypePrivate", "value":"0" }, + { "name":"k_ELobbyTypeFriendsOnly", "value":"1" }, + { "name":"k_ELobbyTypePublic", "value":"2" }, + { "name":"k_ELobbyTypeInvisible", "value":"3" }, + { "name":"k_ELobbyTypePrivateUnique", "value":"4" } + ] + }, + { + "enumname": "ELobbyComparison", + "values": [ + { "name":"k_ELobbyComparisonEqualToOrLessThan", "value":"-2" }, + { "name":"k_ELobbyComparisonLessThan", "value":"-1" }, + { "name":"k_ELobbyComparisonEqual", "value":"0" }, + { "name":"k_ELobbyComparisonGreaterThan", "value":"1" }, + { "name":"k_ELobbyComparisonEqualToOrGreaterThan", "value":"2" }, + { "name":"k_ELobbyComparisonNotEqual", "value":"3" } + ] + }, + { + "enumname": "ELobbyDistanceFilter", + "values": [ + { "name":"k_ELobbyDistanceFilterClose", "value":"0" }, + { "name":"k_ELobbyDistanceFilterDefault", "value":"1" }, + { "name":"k_ELobbyDistanceFilterFar", "value":"2" }, + { "name":"k_ELobbyDistanceFilterWorldwide", "value":"3" } + ] + }, + { + "enumname": "EChatMemberStateChange", + "values": [ + { "name":"k_EChatMemberStateChangeEntered", "value":"1" }, + { "name":"k_EChatMemberStateChangeLeft", "value":"2" }, + { "name":"k_EChatMemberStateChangeDisconnected", "value":"4" }, + { "name":"k_EChatMemberStateChangeKicked", "value":"8" }, + { "name":"k_EChatMemberStateChangeBanned", "value":"16" } + ] + }, + { + "enumname": "ESteamPartyBeaconLocationType", + "values": [ + { "name":"k_ESteamPartyBeaconLocationType_Invalid", "value":"0" }, + { "name":"k_ESteamPartyBeaconLocationType_ChatGroup", "value":"1" }, + { "name":"k_ESteamPartyBeaconLocationType_Max", "value":"2" } + ] + }, + { + "enumname": "ESteamPartyBeaconLocationData", + "values": [ + { "name":"k_ESteamPartyBeaconLocationDataInvalid", "value":"0" }, + { "name":"k_ESteamPartyBeaconLocationDataName", "value":"1" }, + { "name":"k_ESteamPartyBeaconLocationDataIconURLSmall", "value":"2" }, + { "name":"k_ESteamPartyBeaconLocationDataIconURLMedium", "value":"3" }, + { "name":"k_ESteamPartyBeaconLocationDataIconURLLarge", "value":"4" } + ] + }, + { + "enumname": "ERemoteStoragePlatform", + "values": [ + { "name":"k_ERemoteStoragePlatformNone", "value":"0" }, + { "name":"k_ERemoteStoragePlatformWindows", "value":"1" }, + { "name":"k_ERemoteStoragePlatformOSX", "value":"2" }, + { "name":"k_ERemoteStoragePlatformPS3", "value":"4" }, + { "name":"k_ERemoteStoragePlatformLinux", "value":"8" }, + { "name":"k_ERemoteStoragePlatformSwitch", "value":"16" }, + { "name":"k_ERemoteStoragePlatformAndroid", "value":"32" }, + { "name":"k_ERemoteStoragePlatformIOS", "value":"64" }, + { "name":"k_ERemoteStoragePlatformAll", "value":"-1" } + ] + }, + { + "enumname": "ERemoteStoragePublishedFileVisibility", + "values": [ + { "name":"k_ERemoteStoragePublishedFileVisibilityPublic", "value":"0" }, + { "name":"k_ERemoteStoragePublishedFileVisibilityFriendsOnly", "value":"1" }, + { "name":"k_ERemoteStoragePublishedFileVisibilityPrivate", "value":"2" }, + { "name":"k_ERemoteStoragePublishedFileVisibilityUnlisted", "value":"3" } + ] + }, + { + "enumname": "EWorkshopFileType", + "values": [ + { "name":"k_EWorkshopFileTypeFirst", "value":"0" }, + { "name":"k_EWorkshopFileTypeCommunity", "value":"0" }, + { "name":"k_EWorkshopFileTypeMicrotransaction", "value":"1" }, + { "name":"k_EWorkshopFileTypeCollection", "value":"2" }, + { "name":"k_EWorkshopFileTypeArt", "value":"3" }, + { "name":"k_EWorkshopFileTypeVideo", "value":"4" }, + { "name":"k_EWorkshopFileTypeScreenshot", "value":"5" }, + { "name":"k_EWorkshopFileTypeGame", "value":"6" }, + { "name":"k_EWorkshopFileTypeSoftware", "value":"7" }, + { "name":"k_EWorkshopFileTypeConcept", "value":"8" }, + { "name":"k_EWorkshopFileTypeWebGuide", "value":"9" }, + { "name":"k_EWorkshopFileTypeIntegratedGuide", "value":"10" }, + { "name":"k_EWorkshopFileTypeMerch", "value":"11" }, + { "name":"k_EWorkshopFileTypeControllerBinding", "value":"12" }, + { "name":"k_EWorkshopFileTypeSteamworksAccessInvite", "value":"13" }, + { "name":"k_EWorkshopFileTypeSteamVideo", "value":"14" }, + { "name":"k_EWorkshopFileTypeGameManagedItem", "value":"15" }, + { "name":"k_EWorkshopFileTypeClip", "value":"16" }, + { "name":"k_EWorkshopFileTypeMax", "value":"17" } + ] + }, + { + "enumname": "EWorkshopVote", + "values": [ + { "name":"k_EWorkshopVoteUnvoted", "value":"0" }, + { "name":"k_EWorkshopVoteFor", "value":"1" }, + { "name":"k_EWorkshopVoteAgainst", "value":"2" }, + { "name":"k_EWorkshopVoteLater", "value":"3" } + ] + }, + { + "enumname": "EWorkshopFileAction", + "values": [ + { "name":"k_EWorkshopFileActionPlayed", "value":"0" }, + { "name":"k_EWorkshopFileActionCompleted", "value":"1" } + ] + }, + { + "enumname": "EWorkshopEnumerationType", + "values": [ + { "name":"k_EWorkshopEnumerationTypeRankedByVote", "value":"0" }, + { "name":"k_EWorkshopEnumerationTypeRecent", "value":"1" }, + { "name":"k_EWorkshopEnumerationTypeTrending", "value":"2" }, + { "name":"k_EWorkshopEnumerationTypeFavoritesOfFriends", "value":"3" }, + { "name":"k_EWorkshopEnumerationTypeVotedByFriends", "value":"4" }, + { "name":"k_EWorkshopEnumerationTypeContentByFriends", "value":"5" }, + { "name":"k_EWorkshopEnumerationTypeRecentFromFollowedUsers", "value":"6" } + ] + }, + { + "enumname": "EWorkshopVideoProvider", + "values": [ + { "name":"k_EWorkshopVideoProviderNone", "value":"0" }, + { "name":"k_EWorkshopVideoProviderYoutube", "value":"1" } + ] + }, + { + "enumname": "EUGCReadAction", + "values": [ + { "name":"k_EUGCRead_ContinueReadingUntilFinished", "value":"0" }, + { "name":"k_EUGCRead_ContinueReading", "value":"1" }, + { "name":"k_EUGCRead_Close", "value":"2" } + ] + }, + { + "enumname": "ERemoteStorageLocalFileChange", + "values": [ + { "name":"k_ERemoteStorageLocalFileChange_Invalid", "value":"0" }, + { "name":"k_ERemoteStorageLocalFileChange_FileUpdated", "value":"1" }, + { "name":"k_ERemoteStorageLocalFileChange_FileDeleted", "value":"2" } + ] + }, + { + "enumname": "ERemoteStorageFilePathType", + "values": [ + { "name":"k_ERemoteStorageFilePathType_Invalid", "value":"0" }, + { "name":"k_ERemoteStorageFilePathType_Absolute", "value":"1" }, + { "name":"k_ERemoteStorageFilePathType_APIFilename", "value":"2" } + ] + }, + { + "enumname": "ELeaderboardDataRequest", + "values": [ + { "name":"k_ELeaderboardDataRequestGlobal", "value":"0" }, + { "name":"k_ELeaderboardDataRequestGlobalAroundUser", "value":"1" }, + { "name":"k_ELeaderboardDataRequestFriends", "value":"2" }, + { "name":"k_ELeaderboardDataRequestUsers", "value":"3" } + ] + }, + { + "enumname": "ELeaderboardSortMethod", + "values": [ + { "name":"k_ELeaderboardSortMethodNone", "value":"0" }, + { "name":"k_ELeaderboardSortMethodAscending", "value":"1" }, + { "name":"k_ELeaderboardSortMethodDescending", "value":"2" } + ] + }, + { + "enumname": "ELeaderboardDisplayType", + "values": [ + { "name":"k_ELeaderboardDisplayTypeNone", "value":"0" }, + { "name":"k_ELeaderboardDisplayTypeNumeric", "value":"1" }, + { "name":"k_ELeaderboardDisplayTypeTimeSeconds", "value":"2" }, + { "name":"k_ELeaderboardDisplayTypeTimeMilliSeconds", "value":"3" } + ] + }, + { + "enumname": "ELeaderboardUploadScoreMethod", + "values": [ + { "name":"k_ELeaderboardUploadScoreMethodNone", "value":"0" }, + { "name":"k_ELeaderboardUploadScoreMethodKeepBest", "value":"1" }, + { "name":"k_ELeaderboardUploadScoreMethodForceUpdate", "value":"2" } + ] + }, + { + "enumname": "EP2PSessionError", + "values": [ + { "name":"k_EP2PSessionErrorNone", "value":"0" }, + { "name":"k_EP2PSessionErrorNoRightsToApp", "value":"2" }, + { "name":"k_EP2PSessionErrorTimeout", "value":"4" }, + { "name":"k_EP2PSessionErrorNotRunningApp_DELETED", "value":"1" }, + { "name":"k_EP2PSessionErrorDestinationNotLoggedIn_DELETED", "value":"3" }, + { "name":"k_EP2PSessionErrorMax", "value":"5" } + ] + }, + { + "enumname": "EP2PSend", + "values": [ + { "name":"k_EP2PSendUnreliable", "value":"0" }, + { "name":"k_EP2PSendUnreliableNoDelay", "value":"1" }, + { "name":"k_EP2PSendReliable", "value":"2" }, + { "name":"k_EP2PSendReliableWithBuffering", "value":"3" } + ] + }, + { + "enumname": "ESNetSocketState", + "values": [ + { "name":"k_ESNetSocketStateInvalid", "value":"0" }, + { "name":"k_ESNetSocketStateConnected", "value":"1" }, + { "name":"k_ESNetSocketStateInitiated", "value":"10" }, + { "name":"k_ESNetSocketStateLocalCandidatesFound", "value":"11" }, + { "name":"k_ESNetSocketStateReceivedRemoteCandidates", "value":"12" }, + { "name":"k_ESNetSocketStateChallengeHandshake", "value":"15" }, + { "name":"k_ESNetSocketStateDisconnecting", "value":"21" }, + { "name":"k_ESNetSocketStateLocalDisconnect", "value":"22" }, + { "name":"k_ESNetSocketStateTimeoutDuringConnect", "value":"23" }, + { "name":"k_ESNetSocketStateRemoteEndDisconnected", "value":"24" }, + { "name":"k_ESNetSocketStateConnectionBroken", "value":"25" } + ] + }, + { + "enumname": "ESNetSocketConnectionType", + "values": [ + { "name":"k_ESNetSocketConnectionTypeNotConnected", "value":"0" }, + { "name":"k_ESNetSocketConnectionTypeUDP", "value":"1" }, + { "name":"k_ESNetSocketConnectionTypeUDPRelay", "value":"2" } + ] + }, + { + "enumname": "EVRScreenshotType", + "values": [ + { "name":"k_EVRScreenshotType_None", "value":"0" }, + { "name":"k_EVRScreenshotType_Mono", "value":"1" }, + { "name":"k_EVRScreenshotType_Stereo", "value":"2" }, + { "name":"k_EVRScreenshotType_MonoCubemap", "value":"3" }, + { "name":"k_EVRScreenshotType_MonoPanorama", "value":"4" }, + { "name":"k_EVRScreenshotType_StereoPanorama", "value":"5" } + ] + }, + { + "enumname": "AudioPlayback_Status", + "values": [ + { "name":"AudioPlayback_Undefined", "value":"0" }, + { "name":"AudioPlayback_Playing", "value":"1" }, + { "name":"AudioPlayback_Paused", "value":"2" }, + { "name":"AudioPlayback_Idle", "value":"3" } + ] + }, + { + "enumname": "EHTTPMethod", + "values": [ + { "name":"k_EHTTPMethodInvalid", "value":"0" }, + { "name":"k_EHTTPMethodGET", "value":"1" }, + { "name":"k_EHTTPMethodHEAD", "value":"2" }, + { "name":"k_EHTTPMethodPOST", "value":"3" }, + { "name":"k_EHTTPMethodPUT", "value":"4" }, + { "name":"k_EHTTPMethodDELETE", "value":"5" }, + { "name":"k_EHTTPMethodOPTIONS", "value":"6" }, + { "name":"k_EHTTPMethodPATCH", "value":"7" } + ] + }, + { + "enumname": "EHTTPStatusCode", + "values": [ + { "name":"k_EHTTPStatusCodeInvalid", "value":"0" }, + { "name":"k_EHTTPStatusCode100Continue", "value":"100" }, + { "name":"k_EHTTPStatusCode101SwitchingProtocols", "value":"101" }, + { "name":"k_EHTTPStatusCode200OK", "value":"200" }, + { "name":"k_EHTTPStatusCode201Created", "value":"201" }, + { "name":"k_EHTTPStatusCode202Accepted", "value":"202" }, + { "name":"k_EHTTPStatusCode203NonAuthoritative", "value":"203" }, + { "name":"k_EHTTPStatusCode204NoContent", "value":"204" }, + { "name":"k_EHTTPStatusCode205ResetContent", "value":"205" }, + { "name":"k_EHTTPStatusCode206PartialContent", "value":"206" }, + { "name":"k_EHTTPStatusCode300MultipleChoices", "value":"300" }, + { "name":"k_EHTTPStatusCode301MovedPermanently", "value":"301" }, + { "name":"k_EHTTPStatusCode302Found", "value":"302" }, + { "name":"k_EHTTPStatusCode303SeeOther", "value":"303" }, + { "name":"k_EHTTPStatusCode304NotModified", "value":"304" }, + { "name":"k_EHTTPStatusCode305UseProxy", "value":"305" }, + { "name":"k_EHTTPStatusCode307TemporaryRedirect", "value":"307" }, + { "name":"k_EHTTPStatusCode308PermanentRedirect", "value":"308" }, + { "name":"k_EHTTPStatusCode400BadRequest", "value":"400" }, + { "name":"k_EHTTPStatusCode401Unauthorized", "value":"401" }, + { "name":"k_EHTTPStatusCode402PaymentRequired", "value":"402" }, + { "name":"k_EHTTPStatusCode403Forbidden", "value":"403" }, + { "name":"k_EHTTPStatusCode404NotFound", "value":"404" }, + { "name":"k_EHTTPStatusCode405MethodNotAllowed", "value":"405" }, + { "name":"k_EHTTPStatusCode406NotAcceptable", "value":"406" }, + { "name":"k_EHTTPStatusCode407ProxyAuthRequired", "value":"407" }, + { "name":"k_EHTTPStatusCode408RequestTimeout", "value":"408" }, + { "name":"k_EHTTPStatusCode409Conflict", "value":"409" }, + { "name":"k_EHTTPStatusCode410Gone", "value":"410" }, + { "name":"k_EHTTPStatusCode411LengthRequired", "value":"411" }, + { "name":"k_EHTTPStatusCode412PreconditionFailed", "value":"412" }, + { "name":"k_EHTTPStatusCode413RequestEntityTooLarge", "value":"413" }, + { "name":"k_EHTTPStatusCode414RequestURITooLong", "value":"414" }, + { "name":"k_EHTTPStatusCode415UnsupportedMediaType", "value":"415" }, + { "name":"k_EHTTPStatusCode416RequestedRangeNotSatisfiable", "value":"416" }, + { "name":"k_EHTTPStatusCode417ExpectationFailed", "value":"417" }, + { "name":"k_EHTTPStatusCode4xxUnknown", "value":"418" }, + { "name":"k_EHTTPStatusCode429TooManyRequests", "value":"429" }, + { "name":"k_EHTTPStatusCode444ConnectionClosed", "value":"444" }, + { "name":"k_EHTTPStatusCode500InternalServerError", "value":"500" }, + { "name":"k_EHTTPStatusCode501NotImplemented", "value":"501" }, + { "name":"k_EHTTPStatusCode502BadGateway", "value":"502" }, + { "name":"k_EHTTPStatusCode503ServiceUnavailable", "value":"503" }, + { "name":"k_EHTTPStatusCode504GatewayTimeout", "value":"504" }, + { "name":"k_EHTTPStatusCode505HTTPVersionNotSupported", "value":"505" }, + { "name":"k_EHTTPStatusCode5xxUnknown", "value":"599" } + ] + }, + { + "enumname": "EInputSourceMode", + "values": [ + { "name":"k_EInputSourceMode_None", "value":"0" }, + { "name":"k_EInputSourceMode_Dpad", "value":"1" }, + { "name":"k_EInputSourceMode_Buttons", "value":"2" }, + { "name":"k_EInputSourceMode_FourButtons", "value":"3" }, + { "name":"k_EInputSourceMode_AbsoluteMouse", "value":"4" }, + { "name":"k_EInputSourceMode_RelativeMouse", "value":"5" }, + { "name":"k_EInputSourceMode_JoystickMove", "value":"6" }, + { "name":"k_EInputSourceMode_JoystickMouse", "value":"7" }, + { "name":"k_EInputSourceMode_JoystickCamera", "value":"8" }, + { "name":"k_EInputSourceMode_ScrollWheel", "value":"9" }, + { "name":"k_EInputSourceMode_Trigger", "value":"10" }, + { "name":"k_EInputSourceMode_TouchMenu", "value":"11" }, + { "name":"k_EInputSourceMode_MouseJoystick", "value":"12" }, + { "name":"k_EInputSourceMode_MouseRegion", "value":"13" }, + { "name":"k_EInputSourceMode_RadialMenu", "value":"14" }, + { "name":"k_EInputSourceMode_SingleButton", "value":"15" }, + { "name":"k_EInputSourceMode_Switches", "value":"16" } + ] + }, + { + "enumname": "EInputActionOrigin", + "values": [ + { "name":"k_EInputActionOrigin_None", "value":"0" }, + { "name":"k_EInputActionOrigin_SteamController_A", "value":"1" }, + { "name":"k_EInputActionOrigin_SteamController_B", "value":"2" }, + { "name":"k_EInputActionOrigin_SteamController_X", "value":"3" }, + { "name":"k_EInputActionOrigin_SteamController_Y", "value":"4" }, + { "name":"k_EInputActionOrigin_SteamController_LeftBumper", "value":"5" }, + { "name":"k_EInputActionOrigin_SteamController_RightBumper", "value":"6" }, + { "name":"k_EInputActionOrigin_SteamController_LeftGrip", "value":"7" }, + { "name":"k_EInputActionOrigin_SteamController_RightGrip", "value":"8" }, + { "name":"k_EInputActionOrigin_SteamController_Start", "value":"9" }, + { "name":"k_EInputActionOrigin_SteamController_Back", "value":"10" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_Touch", "value":"11" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_Swipe", "value":"12" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_Click", "value":"13" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_DPadNorth", "value":"14" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_DPadSouth", "value":"15" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_DPadWest", "value":"16" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_DPadEast", "value":"17" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_Touch", "value":"18" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_Swipe", "value":"19" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_Click", "value":"20" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_DPadNorth", "value":"21" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_DPadSouth", "value":"22" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_DPadWest", "value":"23" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_DPadEast", "value":"24" }, + { "name":"k_EInputActionOrigin_SteamController_LeftTrigger_Pull", "value":"25" }, + { "name":"k_EInputActionOrigin_SteamController_LeftTrigger_Click", "value":"26" }, + { "name":"k_EInputActionOrigin_SteamController_RightTrigger_Pull", "value":"27" }, + { "name":"k_EInputActionOrigin_SteamController_RightTrigger_Click", "value":"28" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_Move", "value":"29" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_Click", "value":"30" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_DPadNorth", "value":"31" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_DPadSouth", "value":"32" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_DPadWest", "value":"33" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_DPadEast", "value":"34" }, + { "name":"k_EInputActionOrigin_SteamController_Gyro_Move", "value":"35" }, + { "name":"k_EInputActionOrigin_SteamController_Gyro_Pitch", "value":"36" }, + { "name":"k_EInputActionOrigin_SteamController_Gyro_Yaw", "value":"37" }, + { "name":"k_EInputActionOrigin_SteamController_Gyro_Roll", "value":"38" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved0", "value":"39" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved1", "value":"40" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved2", "value":"41" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved3", "value":"42" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved4", "value":"43" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved5", "value":"44" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved6", "value":"45" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved7", "value":"46" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved8", "value":"47" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved9", "value":"48" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved10", "value":"49" }, + { "name":"k_EInputActionOrigin_PS4_X", "value":"50" }, + { "name":"k_EInputActionOrigin_PS4_Circle", "value":"51" }, + { "name":"k_EInputActionOrigin_PS4_Triangle", "value":"52" }, + { "name":"k_EInputActionOrigin_PS4_Square", "value":"53" }, + { "name":"k_EInputActionOrigin_PS4_LeftBumper", "value":"54" }, + { "name":"k_EInputActionOrigin_PS4_RightBumper", "value":"55" }, + { "name":"k_EInputActionOrigin_PS4_Options", "value":"56" }, + { "name":"k_EInputActionOrigin_PS4_Share", "value":"57" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_Touch", "value":"58" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_Swipe", "value":"59" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_Click", "value":"60" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_DPadNorth", "value":"61" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_DPadSouth", "value":"62" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_DPadWest", "value":"63" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_DPadEast", "value":"64" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_Touch", "value":"65" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_Swipe", "value":"66" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_Click", "value":"67" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_DPadNorth", "value":"68" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_DPadSouth", "value":"69" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_DPadWest", "value":"70" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_DPadEast", "value":"71" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_Touch", "value":"72" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_Swipe", "value":"73" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_Click", "value":"74" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_DPadNorth", "value":"75" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_DPadSouth", "value":"76" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_DPadWest", "value":"77" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_DPadEast", "value":"78" }, + { "name":"k_EInputActionOrigin_PS4_LeftTrigger_Pull", "value":"79" }, + { "name":"k_EInputActionOrigin_PS4_LeftTrigger_Click", "value":"80" }, + { "name":"k_EInputActionOrigin_PS4_RightTrigger_Pull", "value":"81" }, + { "name":"k_EInputActionOrigin_PS4_RightTrigger_Click", "value":"82" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_Move", "value":"83" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_Click", "value":"84" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_DPadNorth", "value":"85" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_DPadSouth", "value":"86" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_DPadWest", "value":"87" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_DPadEast", "value":"88" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_Move", "value":"89" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_Click", "value":"90" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_DPadNorth", "value":"91" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_DPadSouth", "value":"92" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_DPadWest", "value":"93" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_DPadEast", "value":"94" }, + { "name":"k_EInputActionOrigin_PS4_DPad_North", "value":"95" }, + { "name":"k_EInputActionOrigin_PS4_DPad_South", "value":"96" }, + { "name":"k_EInputActionOrigin_PS4_DPad_West", "value":"97" }, + { "name":"k_EInputActionOrigin_PS4_DPad_East", "value":"98" }, + { "name":"k_EInputActionOrigin_PS4_Gyro_Move", "value":"99" }, + { "name":"k_EInputActionOrigin_PS4_Gyro_Pitch", "value":"100" }, + { "name":"k_EInputActionOrigin_PS4_Gyro_Yaw", "value":"101" }, + { "name":"k_EInputActionOrigin_PS4_Gyro_Roll", "value":"102" }, + { "name":"k_EInputActionOrigin_PS4_DPad_Move", "value":"103" }, + { "name":"k_EInputActionOrigin_PS4_Reserved1", "value":"104" }, + { "name":"k_EInputActionOrigin_PS4_Reserved2", "value":"105" }, + { "name":"k_EInputActionOrigin_PS4_Reserved3", "value":"106" }, + { "name":"k_EInputActionOrigin_PS4_Reserved4", "value":"107" }, + { "name":"k_EInputActionOrigin_PS4_Reserved5", "value":"108" }, + { "name":"k_EInputActionOrigin_PS4_Reserved6", "value":"109" }, + { "name":"k_EInputActionOrigin_PS4_Reserved7", "value":"110" }, + { "name":"k_EInputActionOrigin_PS4_Reserved8", "value":"111" }, + { "name":"k_EInputActionOrigin_PS4_Reserved9", "value":"112" }, + { "name":"k_EInputActionOrigin_PS4_Reserved10", "value":"113" }, + { "name":"k_EInputActionOrigin_XBoxOne_A", "value":"114" }, + { "name":"k_EInputActionOrigin_XBoxOne_B", "value":"115" }, + { "name":"k_EInputActionOrigin_XBoxOne_X", "value":"116" }, + { "name":"k_EInputActionOrigin_XBoxOne_Y", "value":"117" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftBumper", "value":"118" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightBumper", "value":"119" }, + { "name":"k_EInputActionOrigin_XBoxOne_Menu", "value":"120" }, + { "name":"k_EInputActionOrigin_XBoxOne_View", "value":"121" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftTrigger_Pull", "value":"122" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftTrigger_Click", "value":"123" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightTrigger_Pull", "value":"124" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightTrigger_Click", "value":"125" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_Move", "value":"126" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_Click", "value":"127" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_DPadNorth", "value":"128" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_DPadSouth", "value":"129" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_DPadWest", "value":"130" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_DPadEast", "value":"131" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_Move", "value":"132" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_Click", "value":"133" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_DPadNorth", "value":"134" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_DPadSouth", "value":"135" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_DPadWest", "value":"136" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_DPadEast", "value":"137" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_North", "value":"138" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_South", "value":"139" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_West", "value":"140" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_East", "value":"141" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_Move", "value":"142" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftGrip_Lower", "value":"143" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftGrip_Upper", "value":"144" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightGrip_Lower", "value":"145" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightGrip_Upper", "value":"146" }, + { "name":"k_EInputActionOrigin_XBoxOne_Share", "value":"147" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved6", "value":"148" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved7", "value":"149" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved8", "value":"150" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved9", "value":"151" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved10", "value":"152" }, + { "name":"k_EInputActionOrigin_XBox360_A", "value":"153" }, + { "name":"k_EInputActionOrigin_XBox360_B", "value":"154" }, + { "name":"k_EInputActionOrigin_XBox360_X", "value":"155" }, + { "name":"k_EInputActionOrigin_XBox360_Y", "value":"156" }, + { "name":"k_EInputActionOrigin_XBox360_LeftBumper", "value":"157" }, + { "name":"k_EInputActionOrigin_XBox360_RightBumper", "value":"158" }, + { "name":"k_EInputActionOrigin_XBox360_Start", "value":"159" }, + { "name":"k_EInputActionOrigin_XBox360_Back", "value":"160" }, + { "name":"k_EInputActionOrigin_XBox360_LeftTrigger_Pull", "value":"161" }, + { "name":"k_EInputActionOrigin_XBox360_LeftTrigger_Click", "value":"162" }, + { "name":"k_EInputActionOrigin_XBox360_RightTrigger_Pull", "value":"163" }, + { "name":"k_EInputActionOrigin_XBox360_RightTrigger_Click", "value":"164" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_Move", "value":"165" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_Click", "value":"166" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_DPadNorth", "value":"167" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_DPadSouth", "value":"168" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_DPadWest", "value":"169" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_DPadEast", "value":"170" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_Move", "value":"171" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_Click", "value":"172" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_DPadNorth", "value":"173" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_DPadSouth", "value":"174" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_DPadWest", "value":"175" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_DPadEast", "value":"176" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_North", "value":"177" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_South", "value":"178" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_West", "value":"179" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_East", "value":"180" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_Move", "value":"181" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved1", "value":"182" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved2", "value":"183" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved3", "value":"184" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved4", "value":"185" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved5", "value":"186" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved6", "value":"187" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved7", "value":"188" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved8", "value":"189" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved9", "value":"190" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved10", "value":"191" }, + { "name":"k_EInputActionOrigin_Switch_A", "value":"192" }, + { "name":"k_EInputActionOrigin_Switch_B", "value":"193" }, + { "name":"k_EInputActionOrigin_Switch_X", "value":"194" }, + { "name":"k_EInputActionOrigin_Switch_Y", "value":"195" }, + { "name":"k_EInputActionOrigin_Switch_LeftBumper", "value":"196" }, + { "name":"k_EInputActionOrigin_Switch_RightBumper", "value":"197" }, + { "name":"k_EInputActionOrigin_Switch_Plus", "value":"198" }, + { "name":"k_EInputActionOrigin_Switch_Minus", "value":"199" }, + { "name":"k_EInputActionOrigin_Switch_Capture", "value":"200" }, + { "name":"k_EInputActionOrigin_Switch_LeftTrigger_Pull", "value":"201" }, + { "name":"k_EInputActionOrigin_Switch_LeftTrigger_Click", "value":"202" }, + { "name":"k_EInputActionOrigin_Switch_RightTrigger_Pull", "value":"203" }, + { "name":"k_EInputActionOrigin_Switch_RightTrigger_Click", "value":"204" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_Move", "value":"205" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_Click", "value":"206" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_DPadNorth", "value":"207" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_DPadSouth", "value":"208" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_DPadWest", "value":"209" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_DPadEast", "value":"210" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_Move", "value":"211" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_Click", "value":"212" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_DPadNorth", "value":"213" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_DPadSouth", "value":"214" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_DPadWest", "value":"215" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_DPadEast", "value":"216" }, + { "name":"k_EInputActionOrigin_Switch_DPad_North", "value":"217" }, + { "name":"k_EInputActionOrigin_Switch_DPad_South", "value":"218" }, + { "name":"k_EInputActionOrigin_Switch_DPad_West", "value":"219" }, + { "name":"k_EInputActionOrigin_Switch_DPad_East", "value":"220" }, + { "name":"k_EInputActionOrigin_Switch_ProGyro_Move", "value":"221" }, + { "name":"k_EInputActionOrigin_Switch_ProGyro_Pitch", "value":"222" }, + { "name":"k_EInputActionOrigin_Switch_ProGyro_Yaw", "value":"223" }, + { "name":"k_EInputActionOrigin_Switch_ProGyro_Roll", "value":"224" }, + { "name":"k_EInputActionOrigin_Switch_DPad_Move", "value":"225" }, + { "name":"k_EInputActionOrigin_Switch_Reserved1", "value":"226" }, + { "name":"k_EInputActionOrigin_Switch_Reserved2", "value":"227" }, + { "name":"k_EInputActionOrigin_Switch_Reserved3", "value":"228" }, + { "name":"k_EInputActionOrigin_Switch_Reserved4", "value":"229" }, + { "name":"k_EInputActionOrigin_Switch_Reserved5", "value":"230" }, + { "name":"k_EInputActionOrigin_Switch_Reserved6", "value":"231" }, + { "name":"k_EInputActionOrigin_Switch_Reserved7", "value":"232" }, + { "name":"k_EInputActionOrigin_Switch_Reserved8", "value":"233" }, + { "name":"k_EInputActionOrigin_Switch_Reserved9", "value":"234" }, + { "name":"k_EInputActionOrigin_Switch_Reserved10", "value":"235" }, + { "name":"k_EInputActionOrigin_Switch_RightGyro_Move", "value":"236" }, + { "name":"k_EInputActionOrigin_Switch_RightGyro_Pitch", "value":"237" }, + { "name":"k_EInputActionOrigin_Switch_RightGyro_Yaw", "value":"238" }, + { "name":"k_EInputActionOrigin_Switch_RightGyro_Roll", "value":"239" }, + { "name":"k_EInputActionOrigin_Switch_LeftGyro_Move", "value":"240" }, + { "name":"k_EInputActionOrigin_Switch_LeftGyro_Pitch", "value":"241" }, + { "name":"k_EInputActionOrigin_Switch_LeftGyro_Yaw", "value":"242" }, + { "name":"k_EInputActionOrigin_Switch_LeftGyro_Roll", "value":"243" }, + { "name":"k_EInputActionOrigin_Switch_LeftGrip_Lower", "value":"244" }, + { "name":"k_EInputActionOrigin_Switch_LeftGrip_Upper", "value":"245" }, + { "name":"k_EInputActionOrigin_Switch_RightGrip_Lower", "value":"246" }, + { "name":"k_EInputActionOrigin_Switch_RightGrip_Upper", "value":"247" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_N", "value":"248" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_E", "value":"249" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_S", "value":"250" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_W", "value":"251" }, + { "name":"k_EInputActionOrigin_Switch_Reserved15", "value":"252" }, + { "name":"k_EInputActionOrigin_Switch_Reserved16", "value":"253" }, + { "name":"k_EInputActionOrigin_Switch_Reserved17", "value":"254" }, + { "name":"k_EInputActionOrigin_Switch_Reserved18", "value":"255" }, + { "name":"k_EInputActionOrigin_Switch_Reserved19", "value":"256" }, + { "name":"k_EInputActionOrigin_Switch_Reserved20", "value":"257" }, + { "name":"k_EInputActionOrigin_PS5_X", "value":"258" }, + { "name":"k_EInputActionOrigin_PS5_Circle", "value":"259" }, + { "name":"k_EInputActionOrigin_PS5_Triangle", "value":"260" }, + { "name":"k_EInputActionOrigin_PS5_Square", "value":"261" }, + { "name":"k_EInputActionOrigin_PS5_LeftBumper", "value":"262" }, + { "name":"k_EInputActionOrigin_PS5_RightBumper", "value":"263" }, + { "name":"k_EInputActionOrigin_PS5_Option", "value":"264" }, + { "name":"k_EInputActionOrigin_PS5_Create", "value":"265" }, + { "name":"k_EInputActionOrigin_PS5_Mute", "value":"266" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_Touch", "value":"267" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_Swipe", "value":"268" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_Click", "value":"269" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_DPadNorth", "value":"270" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_DPadSouth", "value":"271" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_DPadWest", "value":"272" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_DPadEast", "value":"273" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_Touch", "value":"274" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_Swipe", "value":"275" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_Click", "value":"276" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_DPadNorth", "value":"277" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_DPadSouth", "value":"278" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_DPadWest", "value":"279" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_DPadEast", "value":"280" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_Touch", "value":"281" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_Swipe", "value":"282" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_Click", "value":"283" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_DPadNorth", "value":"284" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_DPadSouth", "value":"285" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_DPadWest", "value":"286" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_DPadEast", "value":"287" }, + { "name":"k_EInputActionOrigin_PS5_LeftTrigger_Pull", "value":"288" }, + { "name":"k_EInputActionOrigin_PS5_LeftTrigger_Click", "value":"289" }, + { "name":"k_EInputActionOrigin_PS5_RightTrigger_Pull", "value":"290" }, + { "name":"k_EInputActionOrigin_PS5_RightTrigger_Click", "value":"291" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_Move", "value":"292" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_Click", "value":"293" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_DPadNorth", "value":"294" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_DPadSouth", "value":"295" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_DPadWest", "value":"296" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_DPadEast", "value":"297" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_Move", "value":"298" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_Click", "value":"299" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_DPadNorth", "value":"300" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_DPadSouth", "value":"301" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_DPadWest", "value":"302" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_DPadEast", "value":"303" }, + { "name":"k_EInputActionOrigin_PS5_DPad_North", "value":"304" }, + { "name":"k_EInputActionOrigin_PS5_DPad_South", "value":"305" }, + { "name":"k_EInputActionOrigin_PS5_DPad_West", "value":"306" }, + { "name":"k_EInputActionOrigin_PS5_DPad_East", "value":"307" }, + { "name":"k_EInputActionOrigin_PS5_Gyro_Move", "value":"308" }, + { "name":"k_EInputActionOrigin_PS5_Gyro_Pitch", "value":"309" }, + { "name":"k_EInputActionOrigin_PS5_Gyro_Yaw", "value":"310" }, + { "name":"k_EInputActionOrigin_PS5_Gyro_Roll", "value":"311" }, + { "name":"k_EInputActionOrigin_PS5_DPad_Move", "value":"312" }, + { "name":"k_EInputActionOrigin_PS5_LeftGrip", "value":"313" }, + { "name":"k_EInputActionOrigin_PS5_RightGrip", "value":"314" }, + { "name":"k_EInputActionOrigin_PS5_LeftFn", "value":"315" }, + { "name":"k_EInputActionOrigin_PS5_RightFn", "value":"316" }, + { "name":"k_EInputActionOrigin_PS5_Reserved5", "value":"317" }, + { "name":"k_EInputActionOrigin_PS5_Reserved6", "value":"318" }, + { "name":"k_EInputActionOrigin_PS5_Reserved7", "value":"319" }, + { "name":"k_EInputActionOrigin_PS5_Reserved8", "value":"320" }, + { "name":"k_EInputActionOrigin_PS5_Reserved9", "value":"321" }, + { "name":"k_EInputActionOrigin_PS5_Reserved10", "value":"322" }, + { "name":"k_EInputActionOrigin_PS5_Reserved11", "value":"323" }, + { "name":"k_EInputActionOrigin_PS5_Reserved12", "value":"324" }, + { "name":"k_EInputActionOrigin_PS5_Reserved13", "value":"325" }, + { "name":"k_EInputActionOrigin_PS5_Reserved14", "value":"326" }, + { "name":"k_EInputActionOrigin_PS5_Reserved15", "value":"327" }, + { "name":"k_EInputActionOrigin_PS5_Reserved16", "value":"328" }, + { "name":"k_EInputActionOrigin_PS5_Reserved17", "value":"329" }, + { "name":"k_EInputActionOrigin_PS5_Reserved18", "value":"330" }, + { "name":"k_EInputActionOrigin_PS5_Reserved19", "value":"331" }, + { "name":"k_EInputActionOrigin_PS5_Reserved20", "value":"332" }, + { "name":"k_EInputActionOrigin_SteamDeck_A", "value":"333" }, + { "name":"k_EInputActionOrigin_SteamDeck_B", "value":"334" }, + { "name":"k_EInputActionOrigin_SteamDeck_X", "value":"335" }, + { "name":"k_EInputActionOrigin_SteamDeck_Y", "value":"336" }, + { "name":"k_EInputActionOrigin_SteamDeck_L1", "value":"337" }, + { "name":"k_EInputActionOrigin_SteamDeck_R1", "value":"338" }, + { "name":"k_EInputActionOrigin_SteamDeck_Menu", "value":"339" }, + { "name":"k_EInputActionOrigin_SteamDeck_View", "value":"340" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_Touch", "value":"341" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_Swipe", "value":"342" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_Click", "value":"343" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_DPadNorth", "value":"344" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_DPadSouth", "value":"345" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_DPadWest", "value":"346" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_DPadEast", "value":"347" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_Touch", "value":"348" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_Swipe", "value":"349" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_Click", "value":"350" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_DPadNorth", "value":"351" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_DPadSouth", "value":"352" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_DPadWest", "value":"353" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_DPadEast", "value":"354" }, + { "name":"k_EInputActionOrigin_SteamDeck_L2_SoftPull", "value":"355" }, + { "name":"k_EInputActionOrigin_SteamDeck_L2", "value":"356" }, + { "name":"k_EInputActionOrigin_SteamDeck_R2_SoftPull", "value":"357" }, + { "name":"k_EInputActionOrigin_SteamDeck_R2", "value":"358" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_Move", "value":"359" }, + { "name":"k_EInputActionOrigin_SteamDeck_L3", "value":"360" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_DPadNorth", "value":"361" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_DPadSouth", "value":"362" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_DPadWest", "value":"363" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_DPadEast", "value":"364" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_Touch", "value":"365" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_Move", "value":"366" }, + { "name":"k_EInputActionOrigin_SteamDeck_R3", "value":"367" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_DPadNorth", "value":"368" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_DPadSouth", "value":"369" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_DPadWest", "value":"370" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_DPadEast", "value":"371" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_Touch", "value":"372" }, + { "name":"k_EInputActionOrigin_SteamDeck_L4", "value":"373" }, + { "name":"k_EInputActionOrigin_SteamDeck_R4", "value":"374" }, + { "name":"k_EInputActionOrigin_SteamDeck_L5", "value":"375" }, + { "name":"k_EInputActionOrigin_SteamDeck_R5", "value":"376" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_Move", "value":"377" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_North", "value":"378" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_South", "value":"379" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_West", "value":"380" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_East", "value":"381" }, + { "name":"k_EInputActionOrigin_SteamDeck_Gyro_Move", "value":"382" }, + { "name":"k_EInputActionOrigin_SteamDeck_Gyro_Pitch", "value":"383" }, + { "name":"k_EInputActionOrigin_SteamDeck_Gyro_Yaw", "value":"384" }, + { "name":"k_EInputActionOrigin_SteamDeck_Gyro_Roll", "value":"385" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved1", "value":"386" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved2", "value":"387" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved3", "value":"388" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved4", "value":"389" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved5", "value":"390" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved6", "value":"391" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved7", "value":"392" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved8", "value":"393" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved9", "value":"394" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved10", "value":"395" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved11", "value":"396" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved12", "value":"397" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved13", "value":"398" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved14", "value":"399" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved15", "value":"400" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved16", "value":"401" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved17", "value":"402" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved18", "value":"403" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved19", "value":"404" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved20", "value":"405" }, + { "name":"k_EInputActionOrigin_Count", "value":"406" }, + { "name":"k_EInputActionOrigin_MaximumPossibleValue", "value":"32767" } + ] + }, + { + "enumname": "EXboxOrigin", + "values": [ + { "name":"k_EXboxOrigin_A", "value":"0" }, + { "name":"k_EXboxOrigin_B", "value":"1" }, + { "name":"k_EXboxOrigin_X", "value":"2" }, + { "name":"k_EXboxOrigin_Y", "value":"3" }, + { "name":"k_EXboxOrigin_LeftBumper", "value":"4" }, + { "name":"k_EXboxOrigin_RightBumper", "value":"5" }, + { "name":"k_EXboxOrigin_Menu", "value":"6" }, + { "name":"k_EXboxOrigin_View", "value":"7" }, + { "name":"k_EXboxOrigin_LeftTrigger_Pull", "value":"8" }, + { "name":"k_EXboxOrigin_LeftTrigger_Click", "value":"9" }, + { "name":"k_EXboxOrigin_RightTrigger_Pull", "value":"10" }, + { "name":"k_EXboxOrigin_RightTrigger_Click", "value":"11" }, + { "name":"k_EXboxOrigin_LeftStick_Move", "value":"12" }, + { "name":"k_EXboxOrigin_LeftStick_Click", "value":"13" }, + { "name":"k_EXboxOrigin_LeftStick_DPadNorth", "value":"14" }, + { "name":"k_EXboxOrigin_LeftStick_DPadSouth", "value":"15" }, + { "name":"k_EXboxOrigin_LeftStick_DPadWest", "value":"16" }, + { "name":"k_EXboxOrigin_LeftStick_DPadEast", "value":"17" }, + { "name":"k_EXboxOrigin_RightStick_Move", "value":"18" }, + { "name":"k_EXboxOrigin_RightStick_Click", "value":"19" }, + { "name":"k_EXboxOrigin_RightStick_DPadNorth", "value":"20" }, + { "name":"k_EXboxOrigin_RightStick_DPadSouth", "value":"21" }, + { "name":"k_EXboxOrigin_RightStick_DPadWest", "value":"22" }, + { "name":"k_EXboxOrigin_RightStick_DPadEast", "value":"23" }, + { "name":"k_EXboxOrigin_DPad_North", "value":"24" }, + { "name":"k_EXboxOrigin_DPad_South", "value":"25" }, + { "name":"k_EXboxOrigin_DPad_West", "value":"26" }, + { "name":"k_EXboxOrigin_DPad_East", "value":"27" }, + { "name":"k_EXboxOrigin_Count", "value":"28" } + ] + }, + { + "enumname": "ESteamControllerPad", + "values": [ + { "name":"k_ESteamControllerPad_Left", "value":"0" }, + { "name":"k_ESteamControllerPad_Right", "value":"1" } + ] + }, + { + "enumname": "EControllerHapticLocation", + "values": [ + { "name":"k_EControllerHapticLocation_Left", "value":"1" }, + { "name":"k_EControllerHapticLocation_Right", "value":"2" }, + { "name":"k_EControllerHapticLocation_Both", "value":"3" } + ] + }, + { + "enumname": "EControllerHapticType", + "values": [ + { "name":"k_EControllerHapticType_Off", "value":"0" }, + { "name":"k_EControllerHapticType_Tick", "value":"1" }, + { "name":"k_EControllerHapticType_Click", "value":"2" } + ] + }, + { + "enumname": "ESteamInputType", + "values": [ + { "name":"k_ESteamInputType_Unknown", "value":"0" }, + { "name":"k_ESteamInputType_SteamController", "value":"1" }, + { "name":"k_ESteamInputType_XBox360Controller", "value":"2" }, + { "name":"k_ESteamInputType_XBoxOneController", "value":"3" }, + { "name":"k_ESteamInputType_GenericGamepad", "value":"4" }, + { "name":"k_ESteamInputType_PS4Controller", "value":"5" }, + { "name":"k_ESteamInputType_AppleMFiController", "value":"6" }, + { "name":"k_ESteamInputType_AndroidController", "value":"7" }, + { "name":"k_ESteamInputType_SwitchJoyConPair", "value":"8" }, + { "name":"k_ESteamInputType_SwitchJoyConSingle", "value":"9" }, + { "name":"k_ESteamInputType_SwitchProController", "value":"10" }, + { "name":"k_ESteamInputType_MobileTouch", "value":"11" }, + { "name":"k_ESteamInputType_PS3Controller", "value":"12" }, + { "name":"k_ESteamInputType_PS5Controller", "value":"13" }, + { "name":"k_ESteamInputType_SteamDeckController", "value":"14" }, + { "name":"k_ESteamInputType_Count", "value":"15" }, + { "name":"k_ESteamInputType_MaximumPossibleValue", "value":"255" } + ] + }, + { + "enumname": "ESteamInputConfigurationEnableType", + "values": [ + { "name":"k_ESteamInputConfigurationEnableType_None", "value":"0" }, + { "name":"k_ESteamInputConfigurationEnableType_Playstation", "value":"1" }, + { "name":"k_ESteamInputConfigurationEnableType_Xbox", "value":"2" }, + { "name":"k_ESteamInputConfigurationEnableType_Generic", "value":"4" }, + { "name":"k_ESteamInputConfigurationEnableType_Switch", "value":"8" } + ] + }, + { + "enumname": "ESteamInputLEDFlag", + "values": [ + { "name":"k_ESteamInputLEDFlag_SetColor", "value":"0" }, + { "name":"k_ESteamInputLEDFlag_RestoreUserDefault", "value":"1" } + ] + }, + { + "enumname": "ESteamInputGlyphSize", + "values": [ + { "name":"k_ESteamInputGlyphSize_Small", "value":"0" }, + { "name":"k_ESteamInputGlyphSize_Medium", "value":"1" }, + { "name":"k_ESteamInputGlyphSize_Large", "value":"2" }, + { "name":"k_ESteamInputGlyphSize_Count", "value":"3" } + ] + }, + { + "enumname": "ESteamInputGlyphStyle", + "values": [ + { "name":"ESteamInputGlyphStyle_Knockout", "value":"0" }, + { "name":"ESteamInputGlyphStyle_Light", "value":"1" }, + { "name":"ESteamInputGlyphStyle_Dark", "value":"2" }, + { "name":"ESteamInputGlyphStyle_NeutralColorABXY", "value":"16" }, + { "name":"ESteamInputGlyphStyle_SolidABXY", "value":"32" } + ] + }, + { + "enumname": "ESteamInputActionEventType", + "values": [ + { "name":"ESteamInputActionEventType_DigitalAction", "value":"0" }, + { "name":"ESteamInputActionEventType_AnalogAction", "value":"1" } + ] + }, + { + "enumname": "EControllerActionOrigin", + "values": [ + { "name":"k_EControllerActionOrigin_None", "value":"0" }, + { "name":"k_EControllerActionOrigin_A", "value":"1" }, + { "name":"k_EControllerActionOrigin_B", "value":"2" }, + { "name":"k_EControllerActionOrigin_X", "value":"3" }, + { "name":"k_EControllerActionOrigin_Y", "value":"4" }, + { "name":"k_EControllerActionOrigin_LeftBumper", "value":"5" }, + { "name":"k_EControllerActionOrigin_RightBumper", "value":"6" }, + { "name":"k_EControllerActionOrigin_LeftGrip", "value":"7" }, + { "name":"k_EControllerActionOrigin_RightGrip", "value":"8" }, + { "name":"k_EControllerActionOrigin_Start", "value":"9" }, + { "name":"k_EControllerActionOrigin_Back", "value":"10" }, + { "name":"k_EControllerActionOrigin_LeftPad_Touch", "value":"11" }, + { "name":"k_EControllerActionOrigin_LeftPad_Swipe", "value":"12" }, + { "name":"k_EControllerActionOrigin_LeftPad_Click", "value":"13" }, + { "name":"k_EControllerActionOrigin_LeftPad_DPadNorth", "value":"14" }, + { "name":"k_EControllerActionOrigin_LeftPad_DPadSouth", "value":"15" }, + { "name":"k_EControllerActionOrigin_LeftPad_DPadWest", "value":"16" }, + { "name":"k_EControllerActionOrigin_LeftPad_DPadEast", "value":"17" }, + { "name":"k_EControllerActionOrigin_RightPad_Touch", "value":"18" }, + { "name":"k_EControllerActionOrigin_RightPad_Swipe", "value":"19" }, + { "name":"k_EControllerActionOrigin_RightPad_Click", "value":"20" }, + { "name":"k_EControllerActionOrigin_RightPad_DPadNorth", "value":"21" }, + { "name":"k_EControllerActionOrigin_RightPad_DPadSouth", "value":"22" }, + { "name":"k_EControllerActionOrigin_RightPad_DPadWest", "value":"23" }, + { "name":"k_EControllerActionOrigin_RightPad_DPadEast", "value":"24" }, + { "name":"k_EControllerActionOrigin_LeftTrigger_Pull", "value":"25" }, + { "name":"k_EControllerActionOrigin_LeftTrigger_Click", "value":"26" }, + { "name":"k_EControllerActionOrigin_RightTrigger_Pull", "value":"27" }, + { "name":"k_EControllerActionOrigin_RightTrigger_Click", "value":"28" }, + { "name":"k_EControllerActionOrigin_LeftStick_Move", "value":"29" }, + { "name":"k_EControllerActionOrigin_LeftStick_Click", "value":"30" }, + { "name":"k_EControllerActionOrigin_LeftStick_DPadNorth", "value":"31" }, + { "name":"k_EControllerActionOrigin_LeftStick_DPadSouth", "value":"32" }, + { "name":"k_EControllerActionOrigin_LeftStick_DPadWest", "value":"33" }, + { "name":"k_EControllerActionOrigin_LeftStick_DPadEast", "value":"34" }, + { "name":"k_EControllerActionOrigin_Gyro_Move", "value":"35" }, + { "name":"k_EControllerActionOrigin_Gyro_Pitch", "value":"36" }, + { "name":"k_EControllerActionOrigin_Gyro_Yaw", "value":"37" }, + { "name":"k_EControllerActionOrigin_Gyro_Roll", "value":"38" }, + { "name":"k_EControllerActionOrigin_PS4_X", "value":"39" }, + { "name":"k_EControllerActionOrigin_PS4_Circle", "value":"40" }, + { "name":"k_EControllerActionOrigin_PS4_Triangle", "value":"41" }, + { "name":"k_EControllerActionOrigin_PS4_Square", "value":"42" }, + { "name":"k_EControllerActionOrigin_PS4_LeftBumper", "value":"43" }, + { "name":"k_EControllerActionOrigin_PS4_RightBumper", "value":"44" }, + { "name":"k_EControllerActionOrigin_PS4_Options", "value":"45" }, + { "name":"k_EControllerActionOrigin_PS4_Share", "value":"46" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_Touch", "value":"47" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_Swipe", "value":"48" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_Click", "value":"49" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_DPadNorth", "value":"50" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_DPadSouth", "value":"51" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_DPadWest", "value":"52" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_DPadEast", "value":"53" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_Touch", "value":"54" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_Swipe", "value":"55" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_Click", "value":"56" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_DPadNorth", "value":"57" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_DPadSouth", "value":"58" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_DPadWest", "value":"59" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_DPadEast", "value":"60" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_Touch", "value":"61" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_Swipe", "value":"62" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_Click", "value":"63" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_DPadNorth", "value":"64" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_DPadSouth", "value":"65" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_DPadWest", "value":"66" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_DPadEast", "value":"67" }, + { "name":"k_EControllerActionOrigin_PS4_LeftTrigger_Pull", "value":"68" }, + { "name":"k_EControllerActionOrigin_PS4_LeftTrigger_Click", "value":"69" }, + { "name":"k_EControllerActionOrigin_PS4_RightTrigger_Pull", "value":"70" }, + { "name":"k_EControllerActionOrigin_PS4_RightTrigger_Click", "value":"71" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_Move", "value":"72" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_Click", "value":"73" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_DPadNorth", "value":"74" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_DPadSouth", "value":"75" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_DPadWest", "value":"76" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_DPadEast", "value":"77" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_Move", "value":"78" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_Click", "value":"79" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_DPadNorth", "value":"80" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_DPadSouth", "value":"81" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_DPadWest", "value":"82" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_DPadEast", "value":"83" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_North", "value":"84" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_South", "value":"85" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_West", "value":"86" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_East", "value":"87" }, + { "name":"k_EControllerActionOrigin_PS4_Gyro_Move", "value":"88" }, + { "name":"k_EControllerActionOrigin_PS4_Gyro_Pitch", "value":"89" }, + { "name":"k_EControllerActionOrigin_PS4_Gyro_Yaw", "value":"90" }, + { "name":"k_EControllerActionOrigin_PS4_Gyro_Roll", "value":"91" }, + { "name":"k_EControllerActionOrigin_XBoxOne_A", "value":"92" }, + { "name":"k_EControllerActionOrigin_XBoxOne_B", "value":"93" }, + { "name":"k_EControllerActionOrigin_XBoxOne_X", "value":"94" }, + { "name":"k_EControllerActionOrigin_XBoxOne_Y", "value":"95" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftBumper", "value":"96" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightBumper", "value":"97" }, + { "name":"k_EControllerActionOrigin_XBoxOne_Menu", "value":"98" }, + { "name":"k_EControllerActionOrigin_XBoxOne_View", "value":"99" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull", "value":"100" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click", "value":"101" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull", "value":"102" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightTrigger_Click", "value":"103" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_Move", "value":"104" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_Click", "value":"105" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth", "value":"106" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth", "value":"107" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest", "value":"108" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast", "value":"109" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_Move", "value":"110" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_Click", "value":"111" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth", "value":"112" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth", "value":"113" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest", "value":"114" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast", "value":"115" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_North", "value":"116" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_South", "value":"117" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_West", "value":"118" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_East", "value":"119" }, + { "name":"k_EControllerActionOrigin_XBox360_A", "value":"120" }, + { "name":"k_EControllerActionOrigin_XBox360_B", "value":"121" }, + { "name":"k_EControllerActionOrigin_XBox360_X", "value":"122" }, + { "name":"k_EControllerActionOrigin_XBox360_Y", "value":"123" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftBumper", "value":"124" }, + { "name":"k_EControllerActionOrigin_XBox360_RightBumper", "value":"125" }, + { "name":"k_EControllerActionOrigin_XBox360_Start", "value":"126" }, + { "name":"k_EControllerActionOrigin_XBox360_Back", "value":"127" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftTrigger_Pull", "value":"128" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftTrigger_Click", "value":"129" }, + { "name":"k_EControllerActionOrigin_XBox360_RightTrigger_Pull", "value":"130" }, + { "name":"k_EControllerActionOrigin_XBox360_RightTrigger_Click", "value":"131" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_Move", "value":"132" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_Click", "value":"133" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth", "value":"134" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth", "value":"135" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_DPadWest", "value":"136" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_DPadEast", "value":"137" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_Move", "value":"138" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_Click", "value":"139" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_DPadNorth", "value":"140" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_DPadSouth", "value":"141" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_DPadWest", "value":"142" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_DPadEast", "value":"143" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_North", "value":"144" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_South", "value":"145" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_West", "value":"146" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_East", "value":"147" }, + { "name":"k_EControllerActionOrigin_SteamV2_A", "value":"148" }, + { "name":"k_EControllerActionOrigin_SteamV2_B", "value":"149" }, + { "name":"k_EControllerActionOrigin_SteamV2_X", "value":"150" }, + { "name":"k_EControllerActionOrigin_SteamV2_Y", "value":"151" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftBumper", "value":"152" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightBumper", "value":"153" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftGrip_Lower", "value":"154" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftGrip_Upper", "value":"155" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightGrip_Lower", "value":"156" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightGrip_Upper", "value":"157" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftBumper_Pressure", "value":"158" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightBumper_Pressure", "value":"159" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftGrip_Pressure", "value":"160" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightGrip_Pressure", "value":"161" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftGrip_Upper_Pressure", "value":"162" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightGrip_Upper_Pressure", "value":"163" }, + { "name":"k_EControllerActionOrigin_SteamV2_Start", "value":"164" }, + { "name":"k_EControllerActionOrigin_SteamV2_Back", "value":"165" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_Touch", "value":"166" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_Swipe", "value":"167" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_Click", "value":"168" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_Pressure", "value":"169" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth", "value":"170" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth", "value":"171" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest", "value":"172" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast", "value":"173" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_Touch", "value":"174" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_Swipe", "value":"175" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_Click", "value":"176" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_Pressure", "value":"177" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth", "value":"178" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth", "value":"179" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_DPadWest", "value":"180" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_DPadEast", "value":"181" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull", "value":"182" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftTrigger_Click", "value":"183" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightTrigger_Pull", "value":"184" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightTrigger_Click", "value":"185" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_Move", "value":"186" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_Click", "value":"187" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth", "value":"188" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth", "value":"189" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest", "value":"190" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast", "value":"191" }, + { "name":"k_EControllerActionOrigin_SteamV2_Gyro_Move", "value":"192" }, + { "name":"k_EControllerActionOrigin_SteamV2_Gyro_Pitch", "value":"193" }, + { "name":"k_EControllerActionOrigin_SteamV2_Gyro_Yaw", "value":"194" }, + { "name":"k_EControllerActionOrigin_SteamV2_Gyro_Roll", "value":"195" }, + { "name":"k_EControllerActionOrigin_Switch_A", "value":"196" }, + { "name":"k_EControllerActionOrigin_Switch_B", "value":"197" }, + { "name":"k_EControllerActionOrigin_Switch_X", "value":"198" }, + { "name":"k_EControllerActionOrigin_Switch_Y", "value":"199" }, + { "name":"k_EControllerActionOrigin_Switch_LeftBumper", "value":"200" }, + { "name":"k_EControllerActionOrigin_Switch_RightBumper", "value":"201" }, + { "name":"k_EControllerActionOrigin_Switch_Plus", "value":"202" }, + { "name":"k_EControllerActionOrigin_Switch_Minus", "value":"203" }, + { "name":"k_EControllerActionOrigin_Switch_Capture", "value":"204" }, + { "name":"k_EControllerActionOrigin_Switch_LeftTrigger_Pull", "value":"205" }, + { "name":"k_EControllerActionOrigin_Switch_LeftTrigger_Click", "value":"206" }, + { "name":"k_EControllerActionOrigin_Switch_RightTrigger_Pull", "value":"207" }, + { "name":"k_EControllerActionOrigin_Switch_RightTrigger_Click", "value":"208" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_Move", "value":"209" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_Click", "value":"210" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_DPadNorth", "value":"211" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_DPadSouth", "value":"212" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_DPadWest", "value":"213" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_DPadEast", "value":"214" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_Move", "value":"215" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_Click", "value":"216" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_DPadNorth", "value":"217" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_DPadSouth", "value":"218" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_DPadWest", "value":"219" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_DPadEast", "value":"220" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_North", "value":"221" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_South", "value":"222" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_West", "value":"223" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_East", "value":"224" }, + { "name":"k_EControllerActionOrigin_Switch_ProGyro_Move", "value":"225" }, + { "name":"k_EControllerActionOrigin_Switch_ProGyro_Pitch", "value":"226" }, + { "name":"k_EControllerActionOrigin_Switch_ProGyro_Yaw", "value":"227" }, + { "name":"k_EControllerActionOrigin_Switch_ProGyro_Roll", "value":"228" }, + { "name":"k_EControllerActionOrigin_Switch_RightGyro_Move", "value":"229" }, + { "name":"k_EControllerActionOrigin_Switch_RightGyro_Pitch", "value":"230" }, + { "name":"k_EControllerActionOrigin_Switch_RightGyro_Yaw", "value":"231" }, + { "name":"k_EControllerActionOrigin_Switch_RightGyro_Roll", "value":"232" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGyro_Move", "value":"233" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGyro_Pitch", "value":"234" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGyro_Yaw", "value":"235" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGyro_Roll", "value":"236" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGrip_Lower", "value":"237" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGrip_Upper", "value":"238" }, + { "name":"k_EControllerActionOrigin_Switch_RightGrip_Lower", "value":"239" }, + { "name":"k_EControllerActionOrigin_Switch_RightGrip_Upper", "value":"240" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_Move", "value":"241" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_Move", "value":"242" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_Move", "value":"243" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_Move", "value":"244" }, + { "name":"k_EControllerActionOrigin_PS5_X", "value":"245" }, + { "name":"k_EControllerActionOrigin_PS5_Circle", "value":"246" }, + { "name":"k_EControllerActionOrigin_PS5_Triangle", "value":"247" }, + { "name":"k_EControllerActionOrigin_PS5_Square", "value":"248" }, + { "name":"k_EControllerActionOrigin_PS5_LeftBumper", "value":"249" }, + { "name":"k_EControllerActionOrigin_PS5_RightBumper", "value":"250" }, + { "name":"k_EControllerActionOrigin_PS5_Option", "value":"251" }, + { "name":"k_EControllerActionOrigin_PS5_Create", "value":"252" }, + { "name":"k_EControllerActionOrigin_PS5_Mute", "value":"253" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_Touch", "value":"254" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_Swipe", "value":"255" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_Click", "value":"256" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadNorth", "value":"257" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadSouth", "value":"258" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadWest", "value":"259" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadEast", "value":"260" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_Touch", "value":"261" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_Swipe", "value":"262" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_Click", "value":"263" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_DPadNorth", "value":"264" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_DPadSouth", "value":"265" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_DPadWest", "value":"266" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_DPadEast", "value":"267" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_Touch", "value":"268" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_Swipe", "value":"269" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_Click", "value":"270" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadNorth", "value":"271" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadSouth", "value":"272" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadWest", "value":"273" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadEast", "value":"274" }, + { "name":"k_EControllerActionOrigin_PS5_LeftTrigger_Pull", "value":"275" }, + { "name":"k_EControllerActionOrigin_PS5_LeftTrigger_Click", "value":"276" }, + { "name":"k_EControllerActionOrigin_PS5_RightTrigger_Pull", "value":"277" }, + { "name":"k_EControllerActionOrigin_PS5_RightTrigger_Click", "value":"278" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_Move", "value":"279" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_Click", "value":"280" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadNorth", "value":"281" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadSouth", "value":"282" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadWest", "value":"283" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadEast", "value":"284" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_Move", "value":"285" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_Click", "value":"286" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_DPadNorth", "value":"287" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_DPadSouth", "value":"288" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_DPadWest", "value":"289" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_DPadEast", "value":"290" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_Move", "value":"291" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_North", "value":"292" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_South", "value":"293" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_West", "value":"294" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_East", "value":"295" }, + { "name":"k_EControllerActionOrigin_PS5_Gyro_Move", "value":"296" }, + { "name":"k_EControllerActionOrigin_PS5_Gyro_Pitch", "value":"297" }, + { "name":"k_EControllerActionOrigin_PS5_Gyro_Yaw", "value":"298" }, + { "name":"k_EControllerActionOrigin_PS5_Gyro_Roll", "value":"299" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftGrip_Lower", "value":"300" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftGrip_Upper", "value":"301" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightGrip_Lower", "value":"302" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightGrip_Upper", "value":"303" }, + { "name":"k_EControllerActionOrigin_XBoxOne_Share", "value":"304" }, + { "name":"k_EControllerActionOrigin_SteamDeck_A", "value":"305" }, + { "name":"k_EControllerActionOrigin_SteamDeck_B", "value":"306" }, + { "name":"k_EControllerActionOrigin_SteamDeck_X", "value":"307" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Y", "value":"308" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L1", "value":"309" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R1", "value":"310" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Menu", "value":"311" }, + { "name":"k_EControllerActionOrigin_SteamDeck_View", "value":"312" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_Touch", "value":"313" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_Swipe", "value":"314" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_Click", "value":"315" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_DPadNorth", "value":"316" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_DPadSouth", "value":"317" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_DPadWest", "value":"318" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_DPadEast", "value":"319" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_Touch", "value":"320" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_Swipe", "value":"321" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_Click", "value":"322" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_DPadNorth", "value":"323" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_DPadSouth", "value":"324" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_DPadWest", "value":"325" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_DPadEast", "value":"326" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L2_SoftPull", "value":"327" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L2", "value":"328" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R2_SoftPull", "value":"329" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R2", "value":"330" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_Move", "value":"331" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L3", "value":"332" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_DPadNorth", "value":"333" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_DPadSouth", "value":"334" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_DPadWest", "value":"335" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_DPadEast", "value":"336" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_Touch", "value":"337" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_Move", "value":"338" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R3", "value":"339" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_DPadNorth", "value":"340" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_DPadSouth", "value":"341" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_DPadWest", "value":"342" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_DPadEast", "value":"343" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_Touch", "value":"344" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L4", "value":"345" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R4", "value":"346" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L5", "value":"347" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R5", "value":"348" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_Move", "value":"349" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_North", "value":"350" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_South", "value":"351" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_West", "value":"352" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_East", "value":"353" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Gyro_Move", "value":"354" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Gyro_Pitch", "value":"355" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Gyro_Yaw", "value":"356" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Gyro_Roll", "value":"357" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved1", "value":"358" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved2", "value":"359" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved3", "value":"360" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved4", "value":"361" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved5", "value":"362" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved6", "value":"363" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved7", "value":"364" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved8", "value":"365" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved9", "value":"366" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved10", "value":"367" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved11", "value":"368" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved12", "value":"369" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved13", "value":"370" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved14", "value":"371" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved15", "value":"372" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved16", "value":"373" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved17", "value":"374" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved18", "value":"375" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved19", "value":"376" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved20", "value":"377" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_N", "value":"378" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_E", "value":"379" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_S", "value":"380" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_W", "value":"381" }, + { "name":"k_EControllerActionOrigin_PS5_LeftGrip", "value":"382" }, + { "name":"k_EControllerActionOrigin_PS5_RightGrip", "value":"383" }, + { "name":"k_EControllerActionOrigin_PS5_LeftFn", "value":"384" }, + { "name":"k_EControllerActionOrigin_PS5_RightFn", "value":"385" }, + { "name":"k_EControllerActionOrigin_Count", "value":"386" }, + { "name":"k_EControllerActionOrigin_MaximumPossibleValue", "value":"32767" } + ] + }, + { + "enumname": "ESteamControllerLEDFlag", + "values": [ + { "name":"k_ESteamControllerLEDFlag_SetColor", "value":"0" }, + { "name":"k_ESteamControllerLEDFlag_RestoreUserDefault", "value":"1" } + ] + }, + { + "enumname": "EUGCMatchingUGCType", + "values": [ + { "name":"k_EUGCMatchingUGCType_Items", "value":"0" }, + { "name":"k_EUGCMatchingUGCType_Items_Mtx", "value":"1" }, + { "name":"k_EUGCMatchingUGCType_Items_ReadyToUse", "value":"2" }, + { "name":"k_EUGCMatchingUGCType_Collections", "value":"3" }, + { "name":"k_EUGCMatchingUGCType_Artwork", "value":"4" }, + { "name":"k_EUGCMatchingUGCType_Videos", "value":"5" }, + { "name":"k_EUGCMatchingUGCType_Screenshots", "value":"6" }, + { "name":"k_EUGCMatchingUGCType_AllGuides", "value":"7" }, + { "name":"k_EUGCMatchingUGCType_WebGuides", "value":"8" }, + { "name":"k_EUGCMatchingUGCType_IntegratedGuides", "value":"9" }, + { "name":"k_EUGCMatchingUGCType_UsableInGame", "value":"10" }, + { "name":"k_EUGCMatchingUGCType_ControllerBindings", "value":"11" }, + { "name":"k_EUGCMatchingUGCType_GameManagedItems", "value":"12" }, + { "name":"k_EUGCMatchingUGCType_All", "value":"-1" } + ] + }, + { + "enumname": "EUserUGCList", + "values": [ + { "name":"k_EUserUGCList_Published", "value":"0" }, + { "name":"k_EUserUGCList_VotedOn", "value":"1" }, + { "name":"k_EUserUGCList_VotedUp", "value":"2" }, + { "name":"k_EUserUGCList_VotedDown", "value":"3" }, + { "name":"k_EUserUGCList_WillVoteLater", "value":"4" }, + { "name":"k_EUserUGCList_Favorited", "value":"5" }, + { "name":"k_EUserUGCList_Subscribed", "value":"6" }, + { "name":"k_EUserUGCList_UsedOrPlayed", "value":"7" }, + { "name":"k_EUserUGCList_Followed", "value":"8" } + ] + }, + { + "enumname": "EUserUGCListSortOrder", + "values": [ + { "name":"k_EUserUGCListSortOrder_CreationOrderDesc", "value":"0" }, + { "name":"k_EUserUGCListSortOrder_CreationOrderAsc", "value":"1" }, + { "name":"k_EUserUGCListSortOrder_TitleAsc", "value":"2" }, + { "name":"k_EUserUGCListSortOrder_LastUpdatedDesc", "value":"3" }, + { "name":"k_EUserUGCListSortOrder_SubscriptionDateDesc", "value":"4" }, + { "name":"k_EUserUGCListSortOrder_VoteScoreDesc", "value":"5" }, + { "name":"k_EUserUGCListSortOrder_ForModeration", "value":"6" } + ] + }, + { + "enumname": "EUGCQuery", + "values": [ + { "name":"k_EUGCQuery_RankedByVote", "value":"0" }, + { "name":"k_EUGCQuery_RankedByPublicationDate", "value":"1" }, + { "name":"k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate", "value":"2" }, + { "name":"k_EUGCQuery_RankedByTrend", "value":"3" }, + { "name":"k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate", "value":"4" }, + { "name":"k_EUGCQuery_CreatedByFriendsRankedByPublicationDate", "value":"5" }, + { "name":"k_EUGCQuery_RankedByNumTimesReported", "value":"6" }, + { "name":"k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate", "value":"7" }, + { "name":"k_EUGCQuery_NotYetRated", "value":"8" }, + { "name":"k_EUGCQuery_RankedByTotalVotesAsc", "value":"9" }, + { "name":"k_EUGCQuery_RankedByVotesUp", "value":"10" }, + { "name":"k_EUGCQuery_RankedByTextSearch", "value":"11" }, + { "name":"k_EUGCQuery_RankedByTotalUniqueSubscriptions", "value":"12" }, + { "name":"k_EUGCQuery_RankedByPlaytimeTrend", "value":"13" }, + { "name":"k_EUGCQuery_RankedByTotalPlaytime", "value":"14" }, + { "name":"k_EUGCQuery_RankedByAveragePlaytimeTrend", "value":"15" }, + { "name":"k_EUGCQuery_RankedByLifetimeAveragePlaytime", "value":"16" }, + { "name":"k_EUGCQuery_RankedByPlaytimeSessionsTrend", "value":"17" }, + { "name":"k_EUGCQuery_RankedByLifetimePlaytimeSessions", "value":"18" }, + { "name":"k_EUGCQuery_RankedByLastUpdatedDate", "value":"19" } + ] + }, + { + "enumname": "EItemUpdateStatus", + "values": [ + { "name":"k_EItemUpdateStatusInvalid", "value":"0" }, + { "name":"k_EItemUpdateStatusPreparingConfig", "value":"1" }, + { "name":"k_EItemUpdateStatusPreparingContent", "value":"2" }, + { "name":"k_EItemUpdateStatusUploadingContent", "value":"3" }, + { "name":"k_EItemUpdateStatusUploadingPreviewFile", "value":"4" }, + { "name":"k_EItemUpdateStatusCommittingChanges", "value":"5" } + ] + }, + { + "enumname": "EItemState", + "values": [ + { "name":"k_EItemStateNone", "value":"0" }, + { "name":"k_EItemStateSubscribed", "value":"1" }, + { "name":"k_EItemStateLegacyItem", "value":"2" }, + { "name":"k_EItemStateInstalled", "value":"4" }, + { "name":"k_EItemStateNeedsUpdate", "value":"8" }, + { "name":"k_EItemStateDownloading", "value":"16" }, + { "name":"k_EItemStateDownloadPending", "value":"32" }, + { "name":"k_EItemStateDisabledLocally", "value":"64" } + ] + }, + { + "enumname": "EItemStatistic", + "values": [ + { "name":"k_EItemStatistic_NumSubscriptions", "value":"0" }, + { "name":"k_EItemStatistic_NumFavorites", "value":"1" }, + { "name":"k_EItemStatistic_NumFollowers", "value":"2" }, + { "name":"k_EItemStatistic_NumUniqueSubscriptions", "value":"3" }, + { "name":"k_EItemStatistic_NumUniqueFavorites", "value":"4" }, + { "name":"k_EItemStatistic_NumUniqueFollowers", "value":"5" }, + { "name":"k_EItemStatistic_NumUniqueWebsiteViews", "value":"6" }, + { "name":"k_EItemStatistic_ReportScore", "value":"7" }, + { "name":"k_EItemStatistic_NumSecondsPlayed", "value":"8" }, + { "name":"k_EItemStatistic_NumPlaytimeSessions", "value":"9" }, + { "name":"k_EItemStatistic_NumComments", "value":"10" }, + { "name":"k_EItemStatistic_NumSecondsPlayedDuringTimePeriod", "value":"11" }, + { "name":"k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod", "value":"12" } + ] + }, + { + "enumname": "EItemPreviewType", + "values": [ + { "name":"k_EItemPreviewType_Image", "value":"0" }, + { "name":"k_EItemPreviewType_YouTubeVideo", "value":"1" }, + { "name":"k_EItemPreviewType_Sketchfab", "value":"2" }, + { "name":"k_EItemPreviewType_EnvironmentMap_HorizontalCross", "value":"3" }, + { "name":"k_EItemPreviewType_EnvironmentMap_LatLong", "value":"4" }, + { "name":"k_EItemPreviewType_Clip", "value":"5" }, + { "name":"k_EItemPreviewType_ReservedMax", "value":"255" } + ] + }, + { + "enumname": "EUGCContentDescriptorID", + "values": [ + { "name":"k_EUGCContentDescriptor_NudityOrSexualContent", "value":"1" }, + { "name":"k_EUGCContentDescriptor_FrequentViolenceOrGore", "value":"2" }, + { "name":"k_EUGCContentDescriptor_AdultOnlySexualContent", "value":"3" }, + { "name":"k_EUGCContentDescriptor_GratuitousSexualContent", "value":"4" }, + { "name":"k_EUGCContentDescriptor_AnyMatureContent", "value":"5" } + ] + }, + { + "enumname": "ESteamItemFlags", + "values": [ + { "name":"k_ESteamItemNoTrade", "value":"1" }, + { "name":"k_ESteamItemRemoved", "value":"256" }, + { "name":"k_ESteamItemConsumed", "value":"512" } + ] + }, + { + "enumname": "ETimelineGameMode", + "values": [ + { "name":"k_ETimelineGameMode_Invalid", "value":"0" }, + { "name":"k_ETimelineGameMode_Playing", "value":"1" }, + { "name":"k_ETimelineGameMode_Staging", "value":"2" }, + { "name":"k_ETimelineGameMode_Menus", "value":"3" }, + { "name":"k_ETimelineGameMode_LoadingScreen", "value":"4" }, + { "name":"k_ETimelineGameMode_Max", "value":"5" } + ] + }, + { + "enumname": "EParentalFeature", + "values": [ + { "name":"k_EFeatureInvalid", "value":"0" }, + { "name":"k_EFeatureStore", "value":"1" }, + { "name":"k_EFeatureCommunity", "value":"2" }, + { "name":"k_EFeatureProfile", "value":"3" }, + { "name":"k_EFeatureFriends", "value":"4" }, + { "name":"k_EFeatureNews", "value":"5" }, + { "name":"k_EFeatureTrading", "value":"6" }, + { "name":"k_EFeatureSettings", "value":"7" }, + { "name":"k_EFeatureConsole", "value":"8" }, + { "name":"k_EFeatureBrowser", "value":"9" }, + { "name":"k_EFeatureParentalSetup", "value":"10" }, + { "name":"k_EFeatureLibrary", "value":"11" }, + { "name":"k_EFeatureTest", "value":"12" }, + { "name":"k_EFeatureSiteLicense", "value":"13" }, + { "name":"k_EFeatureKioskMode_Deprecated", "value":"14" }, + { "name":"k_EFeatureMax", "value":"15" } + ] + }, + { + "enumname": "ESteamDeviceFormFactor", + "values": [ + { "name":"k_ESteamDeviceFormFactorUnknown", "value":"0" }, + { "name":"k_ESteamDeviceFormFactorPhone", "value":"1" }, + { "name":"k_ESteamDeviceFormFactorTablet", "value":"2" }, + { "name":"k_ESteamDeviceFormFactorComputer", "value":"3" }, + { "name":"k_ESteamDeviceFormFactorTV", "value":"4" }, + { "name":"k_ESteamDeviceFormFactorVRHeadset", "value":"5" } + ] + }, + { + "enumname": "ESteamNetworkingAvailability", + "values": [ + { "name":"k_ESteamNetworkingAvailability_CannotTry", "value":"-102" }, + { "name":"k_ESteamNetworkingAvailability_Failed", "value":"-101" }, + { "name":"k_ESteamNetworkingAvailability_Previously", "value":"-100" }, + { "name":"k_ESteamNetworkingAvailability_Retrying", "value":"-10" }, + { "name":"k_ESteamNetworkingAvailability_NeverTried", "value":"1" }, + { "name":"k_ESteamNetworkingAvailability_Waiting", "value":"2" }, + { "name":"k_ESteamNetworkingAvailability_Attempting", "value":"3" }, + { "name":"k_ESteamNetworkingAvailability_Current", "value":"100" }, + { "name":"k_ESteamNetworkingAvailability_Unknown", "value":"0" }, + { "name":"k_ESteamNetworkingAvailability__Force32bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingIdentityType", + "values": [ + { "name":"k_ESteamNetworkingIdentityType_Invalid", "value":"0" }, + { "name":"k_ESteamNetworkingIdentityType_SteamID", "value":"16" }, + { "name":"k_ESteamNetworkingIdentityType_XboxPairwiseID", "value":"17" }, + { "name":"k_ESteamNetworkingIdentityType_SonyPSN", "value":"18" }, + { "name":"k_ESteamNetworkingIdentityType_GoogleStadia", "value":"19" }, + { "name":"k_ESteamNetworkingIdentityType_IPAddress", "value":"1" }, + { "name":"k_ESteamNetworkingIdentityType_GenericString", "value":"2" }, + { "name":"k_ESteamNetworkingIdentityType_GenericBytes", "value":"3" }, + { "name":"k_ESteamNetworkingIdentityType_UnknownType", "value":"4" }, + { "name":"k_ESteamNetworkingIdentityType__Force32bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingFakeIPType", + "values": [ + { "name":"k_ESteamNetworkingFakeIPType_Invalid", "value":"0" }, + { "name":"k_ESteamNetworkingFakeIPType_NotFake", "value":"1" }, + { "name":"k_ESteamNetworkingFakeIPType_GlobalIPv4", "value":"2" }, + { "name":"k_ESteamNetworkingFakeIPType_LocalIPv4", "value":"3" }, + { "name":"k_ESteamNetworkingFakeIPType__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingConnectionState", + "values": [ + { "name":"k_ESteamNetworkingConnectionState_None", "value":"0" }, + { "name":"k_ESteamNetworkingConnectionState_Connecting", "value":"1" }, + { "name":"k_ESteamNetworkingConnectionState_FindingRoute", "value":"2" }, + { "name":"k_ESteamNetworkingConnectionState_Connected", "value":"3" }, + { "name":"k_ESteamNetworkingConnectionState_ClosedByPeer", "value":"4" }, + { "name":"k_ESteamNetworkingConnectionState_ProblemDetectedLocally", "value":"5" }, + { "name":"k_ESteamNetworkingConnectionState_FinWait", "value":"-1" }, + { "name":"k_ESteamNetworkingConnectionState_Linger", "value":"-2" }, + { "name":"k_ESteamNetworkingConnectionState_Dead", "value":"-3" }, + { "name":"k_ESteamNetworkingConnectionState__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetConnectionEnd", + "values": [ + { "name":"k_ESteamNetConnectionEnd_Invalid", "value":"0" }, + { "name":"k_ESteamNetConnectionEnd_App_Min", "value":"1000" }, + { "name":"k_ESteamNetConnectionEnd_App_Generic", "value":"1000" }, + { "name":"k_ESteamNetConnectionEnd_App_Max", "value":"1999" }, + { "name":"k_ESteamNetConnectionEnd_AppException_Min", "value":"2000" }, + { "name":"k_ESteamNetConnectionEnd_AppException_Generic", "value":"2000" }, + { "name":"k_ESteamNetConnectionEnd_AppException_Max", "value":"2999" }, + { "name":"k_ESteamNetConnectionEnd_Local_Min", "value":"3000" }, + { "name":"k_ESteamNetConnectionEnd_Local_OfflineMode", "value":"3001" }, + { "name":"k_ESteamNetConnectionEnd_Local_ManyRelayConnectivity", "value":"3002" }, + { "name":"k_ESteamNetConnectionEnd_Local_HostedServerPrimaryRelay", "value":"3003" }, + { "name":"k_ESteamNetConnectionEnd_Local_NetworkConfig", "value":"3004" }, + { "name":"k_ESteamNetConnectionEnd_Local_Rights", "value":"3005" }, + { "name":"k_ESteamNetConnectionEnd_Local_P2P_ICE_NoPublicAddresses", "value":"3006" }, + { "name":"k_ESteamNetConnectionEnd_Local_Max", "value":"3999" }, + { "name":"k_ESteamNetConnectionEnd_Remote_Min", "value":"4000" }, + { "name":"k_ESteamNetConnectionEnd_Remote_Timeout", "value":"4001" }, + { "name":"k_ESteamNetConnectionEnd_Remote_BadCrypt", "value":"4002" }, + { "name":"k_ESteamNetConnectionEnd_Remote_BadCert", "value":"4003" }, + { "name":"k_ESteamNetConnectionEnd_Remote_BadProtocolVersion", "value":"4006" }, + { "name":"k_ESteamNetConnectionEnd_Remote_P2P_ICE_NoPublicAddresses", "value":"4007" }, + { "name":"k_ESteamNetConnectionEnd_Remote_Max", "value":"4999" }, + { "name":"k_ESteamNetConnectionEnd_Misc_Min", "value":"5000" }, + { "name":"k_ESteamNetConnectionEnd_Misc_Generic", "value":"5001" }, + { "name":"k_ESteamNetConnectionEnd_Misc_InternalError", "value":"5002" }, + { "name":"k_ESteamNetConnectionEnd_Misc_Timeout", "value":"5003" }, + { "name":"k_ESteamNetConnectionEnd_Misc_SteamConnectivity", "value":"5005" }, + { "name":"k_ESteamNetConnectionEnd_Misc_NoRelaySessionsToClient", "value":"5006" }, + { "name":"k_ESteamNetConnectionEnd_Misc_P2P_Rendezvous", "value":"5008" }, + { "name":"k_ESteamNetConnectionEnd_Misc_P2P_NAT_Firewall", "value":"5009" }, + { "name":"k_ESteamNetConnectionEnd_Misc_PeerSentNoConnection", "value":"5010" }, + { "name":"k_ESteamNetConnectionEnd_Misc_Max", "value":"5999" }, + { "name":"k_ESteamNetConnectionEnd__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingConfigScope", + "values": [ + { "name":"k_ESteamNetworkingConfig_Global", "value":"1" }, + { "name":"k_ESteamNetworkingConfig_SocketsInterface", "value":"2" }, + { "name":"k_ESteamNetworkingConfig_ListenSocket", "value":"3" }, + { "name":"k_ESteamNetworkingConfig_Connection", "value":"4" }, + { "name":"k_ESteamNetworkingConfigScope__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingConfigDataType", + "values": [ + { "name":"k_ESteamNetworkingConfig_Int32", "value":"1" }, + { "name":"k_ESteamNetworkingConfig_Int64", "value":"2" }, + { "name":"k_ESteamNetworkingConfig_Float", "value":"3" }, + { "name":"k_ESteamNetworkingConfig_String", "value":"4" }, + { "name":"k_ESteamNetworkingConfig_Ptr", "value":"5" }, + { "name":"k_ESteamNetworkingConfigDataType__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingConfigValue", + "values": [ + { "name":"k_ESteamNetworkingConfig_Invalid", "value":"0" }, + { "name":"k_ESteamNetworkingConfig_TimeoutInitial", "value":"24" }, + { "name":"k_ESteamNetworkingConfig_TimeoutConnected", "value":"25" }, + { "name":"k_ESteamNetworkingConfig_SendBufferSize", "value":"9" }, + { "name":"k_ESteamNetworkingConfig_RecvBufferSize", "value":"47" }, + { "name":"k_ESteamNetworkingConfig_RecvBufferMessages", "value":"48" }, + { "name":"k_ESteamNetworkingConfig_RecvMaxMessageSize", "value":"49" }, + { "name":"k_ESteamNetworkingConfig_RecvMaxSegmentsPerPacket", "value":"50" }, + { "name":"k_ESteamNetworkingConfig_ConnectionUserData", "value":"40" }, + { "name":"k_ESteamNetworkingConfig_SendRateMin", "value":"10" }, + { "name":"k_ESteamNetworkingConfig_SendRateMax", "value":"11" }, + { "name":"k_ESteamNetworkingConfig_NagleTime", "value":"12" }, + { "name":"k_ESteamNetworkingConfig_IP_AllowWithoutAuth", "value":"23" }, + { "name":"k_ESteamNetworkingConfig_MTU_PacketSize", "value":"32" }, + { "name":"k_ESteamNetworkingConfig_MTU_DataSize", "value":"33" }, + { "name":"k_ESteamNetworkingConfig_Unencrypted", "value":"34" }, + { "name":"k_ESteamNetworkingConfig_SymmetricConnect", "value":"37" }, + { "name":"k_ESteamNetworkingConfig_LocalVirtualPort", "value":"38" }, + { "name":"k_ESteamNetworkingConfig_DualWifi_Enable", "value":"39" }, + { "name":"k_ESteamNetworkingConfig_EnableDiagnosticsUI", "value":"46" }, + { "name":"k_ESteamNetworkingConfig_FakePacketLoss_Send", "value":"2" }, + { "name":"k_ESteamNetworkingConfig_FakePacketLoss_Recv", "value":"3" }, + { "name":"k_ESteamNetworkingConfig_FakePacketLag_Send", "value":"4" }, + { "name":"k_ESteamNetworkingConfig_FakePacketLag_Recv", "value":"5" }, + { "name":"k_ESteamNetworkingConfig_FakePacketReorder_Send", "value":"6" }, + { "name":"k_ESteamNetworkingConfig_FakePacketReorder_Recv", "value":"7" }, + { "name":"k_ESteamNetworkingConfig_FakePacketReorder_Time", "value":"8" }, + { "name":"k_ESteamNetworkingConfig_FakePacketDup_Send", "value":"26" }, + { "name":"k_ESteamNetworkingConfig_FakePacketDup_Recv", "value":"27" }, + { "name":"k_ESteamNetworkingConfig_FakePacketDup_TimeMax", "value":"28" }, + { "name":"k_ESteamNetworkingConfig_PacketTraceMaxBytes", "value":"41" }, + { "name":"k_ESteamNetworkingConfig_FakeRateLimit_Send_Rate", "value":"42" }, + { "name":"k_ESteamNetworkingConfig_FakeRateLimit_Send_Burst", "value":"43" }, + { "name":"k_ESteamNetworkingConfig_FakeRateLimit_Recv_Rate", "value":"44" }, + { "name":"k_ESteamNetworkingConfig_FakeRateLimit_Recv_Burst", "value":"45" }, + { "name":"k_ESteamNetworkingConfig_OutOfOrderCorrectionWindowMicroseconds", "value":"51" }, + { "name":"k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged", "value":"201" }, + { "name":"k_ESteamNetworkingConfig_Callback_AuthStatusChanged", "value":"202" }, + { "name":"k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged", "value":"203" }, + { "name":"k_ESteamNetworkingConfig_Callback_MessagesSessionRequest", "value":"204" }, + { "name":"k_ESteamNetworkingConfig_Callback_MessagesSessionFailed", "value":"205" }, + { "name":"k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling", "value":"206" }, + { "name":"k_ESteamNetworkingConfig_Callback_FakeIPResult", "value":"207" }, + { "name":"k_ESteamNetworkingConfig_P2P_STUN_ServerList", "value":"103" }, + { "name":"k_ESteamNetworkingConfig_P2P_Transport_ICE_Enable", "value":"104" }, + { "name":"k_ESteamNetworkingConfig_P2P_Transport_ICE_Penalty", "value":"105" }, + { "name":"k_ESteamNetworkingConfig_P2P_Transport_SDR_Penalty", "value":"106" }, + { "name":"k_ESteamNetworkingConfig_P2P_TURN_ServerList", "value":"107" }, + { "name":"k_ESteamNetworkingConfig_P2P_TURN_UserList", "value":"108" }, + { "name":"k_ESteamNetworkingConfig_P2P_TURN_PassList", "value":"109" }, + { "name":"k_ESteamNetworkingConfig_P2P_Transport_ICE_Implementation", "value":"110" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFailInitial", "value":"19" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFail", "value":"20" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_MinPingsBeforePingAccurate", "value":"21" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_SingleSocket", "value":"22" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_ForceRelayCluster", "value":"29" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_DevTicket", "value":"30" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_ForceProxyAddr", "value":"31" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_FakeClusterPing", "value":"36" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_LimitPingProbesToNearestN", "value":"60" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_AckRTT", "value":"13" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_PacketDecode", "value":"14" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_Message", "value":"15" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_PacketGaps", "value":"16" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_P2PRendezvous", "value":"17" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_SDRRelayPings", "value":"18" }, + { "name":"k_ESteamNetworkingConfig_ECN", "value":"999" }, + { "name":"k_ESteamNetworkingConfig_DELETED_EnumerateDevVars", "value":"35" }, + { "name":"k_ESteamNetworkingConfigValue__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingGetConfigValueResult", + "values": [ + { "name":"k_ESteamNetworkingGetConfigValue_BadValue", "value":"-1" }, + { "name":"k_ESteamNetworkingGetConfigValue_BadScopeObj", "value":"-2" }, + { "name":"k_ESteamNetworkingGetConfigValue_BufferTooSmall", "value":"-3" }, + { "name":"k_ESteamNetworkingGetConfigValue_OK", "value":"1" }, + { "name":"k_ESteamNetworkingGetConfigValue_OKInherited", "value":"2" }, + { "name":"k_ESteamNetworkingGetConfigValueResult__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingSocketsDebugOutputType", + "values": [ + { "name":"k_ESteamNetworkingSocketsDebugOutputType_None", "value":"0" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Bug", "value":"1" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Error", "value":"2" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Important", "value":"3" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Warning", "value":"4" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Msg", "value":"5" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Verbose", "value":"6" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Debug", "value":"7" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Everything", "value":"8" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamAPIInitResult", + "values": [ + { "name":"k_ESteamAPIInitResult_OK", "value":"0" }, + { "name":"k_ESteamAPIInitResult_FailedGeneric", "value":"1" }, + { "name":"k_ESteamAPIInitResult_NoSteamClient", "value":"2" }, + { "name":"k_ESteamAPIInitResult_VersionMismatch", "value":"3" } + ] + }, + { + "enumname": "EServerMode", + "values": [ + { "name":"eServerModeInvalid", "value":"0" }, + { "name":"eServerModeNoAuthentication", "value":"1" }, + { "name":"eServerModeAuthentication", "value":"2" }, + { "name":"eServerModeAuthenticationAndSecure", "value":"3" } + ] + } + ], + "interfaces": [ + { + "classname": "ISteamClient", + "fields": [], + "methods": [ + { + "methodname": "CreateSteamPipe", + "methodname_flat": "SteamAPI_ISteamClient_CreateSteamPipe", + "params": [], + "returntype": "HSteamPipe" + }, + { + "methodname": "BReleaseSteamPipe", + "methodname_flat": "SteamAPI_ISteamClient_BReleaseSteamPipe", + "params": [ + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" } + ], + "returntype": "bool" + }, + { + "methodname": "ConnectToGlobalUser", + "methodname_flat": "SteamAPI_ISteamClient_ConnectToGlobalUser", + "params": [ + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" } + ], + "returntype": "HSteamUser" + }, + { + "methodname": "CreateLocalUser", + "methodname_flat": "SteamAPI_ISteamClient_CreateLocalUser", + "params": [ + { "paramname":"phSteamPipe", "paramtype":"HSteamPipe *" }, + { "paramname":"eAccountType", "paramtype":"EAccountType" } + ], + "returntype": "HSteamUser" + }, + { + "methodname": "ReleaseUser", + "methodname_flat": "SteamAPI_ISteamClient_ReleaseUser", + "params": [ + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"hUser", "paramtype":"HSteamUser" } + ], + "returntype": "void" + }, + { + "methodname": "GetISteamUser", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamUser", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamUser *" + }, + { + "methodname": "GetISteamGameServer", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamGameServer", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamGameServer *" + }, + { + "methodname": "SetLocalIPBinding", + "methodname_flat": "SteamAPI_ISteamClient_SetLocalIPBinding", + "params": [ + { "paramname":"unIP", "paramtype":"const SteamIPAddress_t &" }, + { "paramname":"usPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetISteamFriends", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamFriends", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamFriends *" + }, + { + "methodname": "GetISteamUtils", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamUtils", + "params": [ + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamUtils *" + }, + { + "methodname": "GetISteamMatchmaking", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamMatchmaking", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamMatchmaking *" + }, + { + "methodname": "GetISteamMatchmakingServers", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamMatchmakingServers", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamMatchmakingServers *" + }, + { + "methodname": "GetISteamGenericInterface", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamGenericInterface", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "void *" + }, + { + "methodname": "GetISteamUserStats", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamUserStats", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamUserStats *" + }, + { + "methodname": "GetISteamGameServerStats", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamGameServerStats", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamGameServerStats *" + }, + { + "methodname": "GetISteamApps", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamApps", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamApps *" + }, + { + "methodname": "GetISteamNetworking", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamNetworking", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamNetworking *" + }, + { + "methodname": "GetISteamRemoteStorage", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamRemoteStorage", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamRemoteStorage *" + }, + { + "methodname": "GetISteamScreenshots", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamScreenshots", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamScreenshots *" + }, + { + "methodname": "GetISteamGameSearch", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamGameSearch", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamGameSearch *" + }, + { + "methodname": "GetIPCCallCount", + "methodname_flat": "SteamAPI_ISteamClient_GetIPCCallCount", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetWarningMessageHook", + "methodname_flat": "SteamAPI_ISteamClient_SetWarningMessageHook", + "params": [ + { "paramname":"pFunction", "paramtype":"SteamAPIWarningMessageHook_t" } + ], + "returntype": "void" + }, + { + "methodname": "BShutdownIfAllPipesClosed", + "methodname_flat": "SteamAPI_ISteamClient_BShutdownIfAllPipesClosed", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetISteamHTTP", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamHTTP", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamHTTP *" + }, + { + "methodname": "GetISteamController", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamController", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamController *" + }, + { + "methodname": "GetISteamUGC", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamUGC", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamUGC *" + }, + { + "methodname": "GetISteamMusic", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamMusic", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamMusic *" + }, + { + "methodname": "GetISteamMusicRemote", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamMusicRemote", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamMusicRemote *" + }, + { + "methodname": "GetISteamHTMLSurface", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamHTMLSurface", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamHTMLSurface *" + }, + { + "methodname": "GetISteamInventory", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamInventory", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamInventory *" + }, + { + "methodname": "GetISteamParentalSettings", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamParentalSettings", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamParentalSettings *" + }, + { + "methodname": "GetISteamInput", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamInput", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamInput *" + }, + { + "methodname": "GetISteamParties", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamParties", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamParties *" + }, + { + "methodname": "GetISteamRemotePlay", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamRemotePlay", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamRemotePlay *" + } + ] + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamUser", + "name_flat": "SteamAPI_SteamUser_v023" + } + ], + "classname": "ISteamUser", + "fields": [], + "methods": [ + { + "methodname": "GetHSteamUser", + "methodname_flat": "SteamAPI_ISteamUser_GetHSteamUser", + "params": [], + "returntype": "HSteamUser" + }, + { + "methodname": "BLoggedOn", + "methodname_flat": "SteamAPI_ISteamUser_BLoggedOn", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetSteamID", + "methodname_flat": "SteamAPI_ISteamUser_GetSteamID", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "InitiateGameConnection_DEPRECATED", + "methodname_flat": "SteamAPI_ISteamUser_InitiateGameConnection_DEPRECATED", + "params": [ + { "paramname":"pAuthBlob", "paramtype":"void *" }, + { "paramname":"cbMaxAuthBlob", "paramtype":"int" }, + { "paramname":"steamIDGameServer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"unIPServer", "paramtype":"uint32" }, + { "paramname":"usPortServer", "paramtype":"uint16" }, + { "paramname":"bSecure", "paramtype":"bool" } + ], + "returntype": "int" + }, + { + "methodname": "TerminateGameConnection_DEPRECATED", + "methodname_flat": "SteamAPI_ISteamUser_TerminateGameConnection_DEPRECATED", + "params": [ + { "paramname":"unIPServer", "paramtype":"uint32" }, + { "paramname":"usPortServer", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "TrackAppUsageEvent", + "methodname_flat": "SteamAPI_ISteamUser_TrackAppUsageEvent", + "params": [ + { "paramname":"gameID", "paramtype":"CGameID", "paramtype_flat":"uint64_gameid" }, + { "paramname":"eAppUsageEvent", "paramtype":"int" }, + { "paramname":"pchExtraInfo", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "GetUserDataFolder", + "methodname_flat": "SteamAPI_ISteamUser_GetUserDataFolder", + "params": [ + { "paramname":"pchBuffer", "paramtype":"char *" }, + { "paramname":"cubBuffer", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "StartVoiceRecording", + "methodname_flat": "SteamAPI_ISteamUser_StartVoiceRecording", + "params": [], + "returntype": "void" + }, + { + "methodname": "StopVoiceRecording", + "methodname_flat": "SteamAPI_ISteamUser_StopVoiceRecording", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetAvailableVoice", + "methodname_flat": "SteamAPI_ISteamUser_GetAvailableVoice", + "params": [ + { "paramname":"pcbCompressed", "paramtype":"uint32 *" }, + { "paramname":"pcbUncompressed_Deprecated", "paramtype":"uint32 *" }, + { "paramname":"nUncompressedVoiceDesiredSampleRate_Deprecated", "paramtype":"uint32" } + ], + "returntype": "EVoiceResult" + }, + { + "methodname": "GetVoice", + "methodname_flat": "SteamAPI_ISteamUser_GetVoice", + "params": [ + { "paramname":"bWantCompressed", "paramtype":"bool" }, + { "paramname":"pDestBuffer", "paramtype":"void *" }, + { "paramname":"cbDestBufferSize", "paramtype":"uint32" }, + { "paramname":"nBytesWritten", "paramtype":"uint32 *" }, + { "paramname":"bWantUncompressed_Deprecated", "paramtype":"bool" }, + { "paramname":"pUncompressedDestBuffer_Deprecated", "paramtype":"void *" }, + { "paramname":"cbUncompressedDestBufferSize_Deprecated", "paramtype":"uint32" }, + { "paramname":"nUncompressBytesWritten_Deprecated", "paramtype":"uint32 *" }, + { "paramname":"nUncompressedVoiceDesiredSampleRate_Deprecated", "paramtype":"uint32" } + ], + "returntype": "EVoiceResult" + }, + { + "methodname": "DecompressVoice", + "methodname_flat": "SteamAPI_ISteamUser_DecompressVoice", + "params": [ + { "paramname":"pCompressed", "paramtype":"const void *" }, + { "paramname":"cbCompressed", "paramtype":"uint32" }, + { "paramname":"pDestBuffer", "paramtype":"void *" }, + { "paramname":"cbDestBufferSize", "paramtype":"uint32" }, + { "paramname":"nBytesWritten", "paramtype":"uint32 *" }, + { "paramname":"nDesiredSampleRate", "paramtype":"uint32" } + ], + "returntype": "EVoiceResult" + }, + { + "methodname": "GetVoiceOptimalSampleRate", + "methodname_flat": "SteamAPI_ISteamUser_GetVoiceOptimalSampleRate", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetAuthSessionTicket", + "methodname_flat": "SteamAPI_ISteamUser_GetAuthSessionTicket", + "params": [ + { "paramname":"pTicket", "paramtype":"void *" }, + { "paramname":"cbMaxTicket", "paramtype":"int" }, + { "paramname":"pcbTicket", "paramtype":"uint32 *" }, + { "paramname":"pSteamNetworkingIdentity", "paramtype":"const SteamNetworkingIdentity *" } + ], + "returntype": "HAuthTicket" + }, + { + "methodname": "GetAuthTicketForWebApi", + "methodname_flat": "SteamAPI_ISteamUser_GetAuthTicketForWebApi", + "params": [ + { "paramname":"pchIdentity", "paramtype":"const char *" } + ], + "returntype": "HAuthTicket" + }, + { + "methodname": "BeginAuthSession", + "methodname_flat": "SteamAPI_ISteamUser_BeginAuthSession", + "params": [ + { "paramname":"pAuthTicket", "paramtype":"const void *" }, + { "paramname":"cbAuthTicket", "paramtype":"int" }, + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "EBeginAuthSessionResult" + }, + { + "methodname": "EndAuthSession", + "methodname_flat": "SteamAPI_ISteamUser_EndAuthSession", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "CancelAuthTicket", + "methodname_flat": "SteamAPI_ISteamUser_CancelAuthTicket", + "params": [ + { "paramname":"hAuthTicket", "paramtype":"HAuthTicket" } + ], + "returntype": "void" + }, + { + "methodname": "UserHasLicenseForApp", + "methodname_flat": "SteamAPI_ISteamUser_UserHasLicenseForApp", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "EUserHasLicenseForAppResult" + }, + { + "methodname": "BIsBehindNAT", + "methodname_flat": "SteamAPI_ISteamUser_BIsBehindNAT", + "params": [], + "returntype": "bool" + }, + { + "methodname": "AdvertiseGame", + "methodname_flat": "SteamAPI_ISteamUser_AdvertiseGame", + "params": [ + { "paramname":"steamIDGameServer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"unIPServer", "paramtype":"uint32" }, + { "paramname":"usPortServer", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "callresult": "EncryptedAppTicketResponse_t", + "methodname": "RequestEncryptedAppTicket", + "methodname_flat": "SteamAPI_ISteamUser_RequestEncryptedAppTicket", + "params": [ + { "paramname":"pDataToInclude", "paramtype":"void *" }, + { "paramname":"cbDataToInclude", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetEncryptedAppTicket", + "methodname_flat": "SteamAPI_ISteamUser_GetEncryptedAppTicket", + "params": [ + { "paramname":"pTicket", "paramtype":"void *" }, + { "paramname":"cbMaxTicket", "paramtype":"int" }, + { "paramname":"pcbTicket", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGameBadgeLevel", + "methodname_flat": "SteamAPI_ISteamUser_GetGameBadgeLevel", + "params": [ + { "paramname":"nSeries", "paramtype":"int" }, + { "paramname":"bFoil", "paramtype":"bool" } + ], + "returntype": "int" + }, + { + "methodname": "GetPlayerSteamLevel", + "methodname_flat": "SteamAPI_ISteamUser_GetPlayerSteamLevel", + "params": [], + "returntype": "int" + }, + { + "callresult": "StoreAuthURLResponse_t", + "methodname": "RequestStoreAuthURL", + "methodname_flat": "SteamAPI_ISteamUser_RequestStoreAuthURL", + "params": [ + { "paramname":"pchRedirectURL", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "BIsPhoneVerified", + "methodname_flat": "SteamAPI_ISteamUser_BIsPhoneVerified", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsTwoFactorEnabled", + "methodname_flat": "SteamAPI_ISteamUser_BIsTwoFactorEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsPhoneIdentifying", + "methodname_flat": "SteamAPI_ISteamUser_BIsPhoneIdentifying", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsPhoneRequiringVerification", + "methodname_flat": "SteamAPI_ISteamUser_BIsPhoneRequiringVerification", + "params": [], + "returntype": "bool" + }, + { + "callresult": "MarketEligibilityResponse_t", + "methodname": "GetMarketEligibility", + "methodname_flat": "SteamAPI_ISteamUser_GetMarketEligibility", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "DurationControl_t", + "methodname": "GetDurationControl", + "methodname_flat": "SteamAPI_ISteamUser_GetDurationControl", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "BSetDurationControlOnlineState", + "methodname_flat": "SteamAPI_ISteamUser_BSetDurationControlOnlineState", + "params": [ + { "paramname":"eNewState", "paramtype":"EDurationControlOnlineState" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamUser023" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamFriends", + "name_flat": "SteamAPI_SteamFriends_v017" + } + ], + "classname": "ISteamFriends", + "fields": [], + "methods": [ + { + "methodname": "GetPersonaName", + "methodname_flat": "SteamAPI_ISteamFriends_GetPersonaName", + "params": [], + "returntype": "const char *" + }, + { + "callresult": "SetPersonaNameResponse_t", + "methodname": "SetPersonaName", + "methodname_flat": "SteamAPI_ISteamFriends_SetPersonaName", + "params": [ + { "paramname":"pchPersonaName", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetPersonaState", + "methodname_flat": "SteamAPI_ISteamFriends_GetPersonaState", + "params": [], + "returntype": "EPersonaState" + }, + { + "methodname": "GetFriendCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendCount", + "params": [ + { "paramname":"iFriendFlags", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendByIndex", + "params": [ + { "paramname":"iFriend", "paramtype":"int" }, + { "paramname":"iFriendFlags", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetFriendRelationship", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendRelationship", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "EFriendRelationship" + }, + { + "methodname": "GetFriendPersonaState", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendPersonaState", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "EPersonaState" + }, + { + "methodname": "GetFriendPersonaName", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendPersonaName", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendGamePlayed", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendGamePlayed", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { + "out_struct": "", + "paramname": "pFriendGameInfo", + "paramtype": "FriendGameInfo_t *" + } + ], + "returntype": "bool" + }, + { + "methodname": "GetFriendPersonaNameHistory", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendPersonaNameHistory", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iPersonaName", "paramtype":"int" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendSteamLevel", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendSteamLevel", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetPlayerNickname", + "methodname_flat": "SteamAPI_ISteamFriends_GetPlayerNickname", + "params": [ + { "paramname":"steamIDPlayer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendsGroupCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetFriendsGroupIDByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex", + "params": [ + { "paramname":"iFG", "paramtype":"int" } + ], + "returntype": "FriendsGroupID_t" + }, + { + "methodname": "GetFriendsGroupName", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupName", + "params": [ + { "paramname":"friendsGroupID", "paramtype":"FriendsGroupID_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendsGroupMembersCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupMembersCount", + "params": [ + { "paramname":"friendsGroupID", "paramtype":"FriendsGroupID_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendsGroupMembersList", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupMembersList", + "params": [ + { "paramname":"friendsGroupID", "paramtype":"FriendsGroupID_t" }, + { + "out_array_call": "nMembersCount,GetFriendsGroupMembersCount,friendsGroupID", + "paramname": "pOutSteamIDMembers", + "paramtype": "CSteamID *" + }, + { "paramname":"nMembersCount", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "HasFriend", + "methodname_flat": "SteamAPI_ISteamFriends_HasFriend", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iFriendFlags", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetClanCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetClanByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanByIndex", + "params": [ + { "paramname":"iClan", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetClanName", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanName", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetClanTag", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanTag", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetClanActivityCounts", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanActivityCounts", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pnOnline", "paramtype":"int *" }, + { "paramname":"pnInGame", "paramtype":"int *" }, + { "paramname":"pnChatting", "paramtype":"int *" } + ], + "returntype": "bool" + }, + { + "callresult": "DownloadClanActivityCountsResult_t", + "methodname": "DownloadClanActivityCounts", + "methodname_flat": "SteamAPI_ISteamFriends_DownloadClanActivityCounts", + "params": [ + { + "array_count": "cClansToRequest", + "paramname": "psteamIDClans", + "paramtype": "CSteamID *" + }, + { "paramname":"cClansToRequest", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetFriendCountFromSource", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendCountFromSource", + "params": [ + { "paramname":"steamIDSource", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendFromSourceByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendFromSourceByIndex", + "params": [ + { "paramname":"steamIDSource", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iFriend", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "IsUserInSource", + "methodname_flat": "SteamAPI_ISteamFriends_IsUserInSource", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDSource", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "SetInGameVoiceSpeaking", + "methodname_flat": "SteamAPI_ISteamFriends_SetInGameVoiceSpeaking", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"bSpeaking", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlay", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlay", + "params": [ + { "paramname":"pchDialog", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlayToUser", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayToUser", + "params": [ + { "paramname":"pchDialog", "paramtype":"const char *" }, + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlayToWebPage", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage", + "params": [ + { "paramname":"pchURL", "paramtype":"const char *" }, + { "paramname":"eMode", "paramtype":"EActivateGameOverlayToWebPageMode" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlayToStore", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayToStore", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" }, + { "paramname":"eFlag", "paramtype":"EOverlayToStoreFlag" } + ], + "returntype": "void" + }, + { + "methodname": "SetPlayedWith", + "methodname_flat": "SteamAPI_ISteamFriends_SetPlayedWith", + "params": [ + { "paramname":"steamIDUserPlayedWith", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlayInviteDialog", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "GetSmallFriendAvatar", + "methodname_flat": "SteamAPI_ISteamFriends_GetSmallFriendAvatar", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetMediumFriendAvatar", + "methodname_flat": "SteamAPI_ISteamFriends_GetMediumFriendAvatar", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetLargeFriendAvatar", + "methodname_flat": "SteamAPI_ISteamFriends_GetLargeFriendAvatar", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "RequestUserInformation", + "methodname_flat": "SteamAPI_ISteamFriends_RequestUserInformation", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"bRequireNameOnly", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "callresult": "ClanOfficerListResponse_t", + "methodname": "RequestClanOfficerList", + "methodname_flat": "SteamAPI_ISteamFriends_RequestClanOfficerList", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetClanOwner", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanOwner", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetClanOfficerCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanOfficerCount", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetClanOfficerByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanOfficerByIndex", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iOfficer", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetUserRestrictions", + "methodname_flat": "SteamAPI_ISteamFriends_GetUserRestrictions", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetRichPresence", + "methodname_flat": "SteamAPI_ISteamFriends_SetRichPresence", + "params": [ + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "ClearRichPresence", + "methodname_flat": "SteamAPI_ISteamFriends_ClearRichPresence", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetFriendRichPresence", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendRichPresence", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendRichPresenceKeyCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendRichPresenceKeyByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iKey", "paramtype":"int" } + ], + "returntype": "const char *" + }, + { + "methodname": "RequestFriendRichPresence", + "methodname_flat": "SteamAPI_ISteamFriends_RequestFriendRichPresence", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "InviteUserToGame", + "methodname_flat": "SteamAPI_ISteamFriends_InviteUserToGame", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchConnectString", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetCoplayFriendCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetCoplayFriendCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetCoplayFriend", + "methodname_flat": "SteamAPI_ISteamFriends_GetCoplayFriend", + "params": [ + { "paramname":"iCoplayFriend", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetFriendCoplayTime", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendCoplayTime", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendCoplayGame", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendCoplayGame", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "AppId_t" + }, + { + "callresult": "JoinClanChatRoomCompletionResult_t", + "methodname": "JoinClanChatRoom", + "methodname_flat": "SteamAPI_ISteamFriends_JoinClanChatRoom", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "LeaveClanChatRoom", + "methodname_flat": "SteamAPI_ISteamFriends_LeaveClanChatRoom", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "GetClanChatMemberCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanChatMemberCount", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetChatMemberByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetChatMemberByIndex", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iUser", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "SendClanChatMessage", + "methodname_flat": "SteamAPI_ISteamFriends_SendClanChatMessage", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetClanChatMessage", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanChatMessage", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iMessage", "paramtype":"int" }, + { "paramname":"prgchText", "paramtype":"void *" }, + { "paramname":"cchTextMax", "paramtype":"int" }, + { "paramname":"peChatEntryType", "paramtype":"EChatEntryType *" }, + { + "out_struct": "", + "paramname": "psteamidChatter", + "paramtype": "CSteamID *" + } + ], + "returntype": "int" + }, + { + "methodname": "IsClanChatAdmin", + "methodname_flat": "SteamAPI_ISteamFriends_IsClanChatAdmin", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "IsClanChatWindowOpenInSteam", + "methodname_flat": "SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "OpenClanChatWindowInSteam", + "methodname_flat": "SteamAPI_ISteamFriends_OpenClanChatWindowInSteam", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseClanChatWindowInSteam", + "methodname_flat": "SteamAPI_ISteamFriends_CloseClanChatWindowInSteam", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "SetListenForFriendsMessages", + "methodname_flat": "SteamAPI_ISteamFriends_SetListenForFriendsMessages", + "params": [ + { "paramname":"bInterceptEnabled", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "ReplyToFriendMessage", + "methodname_flat": "SteamAPI_ISteamFriends_ReplyToFriendMessage", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchMsgToSend", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetFriendMessage", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendMessage", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iMessageID", "paramtype":"int" }, + { "paramname":"pvData", "paramtype":"void *" }, + { "paramname":"cubData", "paramtype":"int" }, + { "paramname":"peChatEntryType", "paramtype":"EChatEntryType *" } + ], + "returntype": "int" + }, + { + "callresult": "FriendsGetFollowerCount_t", + "methodname": "GetFollowerCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFollowerCount", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "FriendsIsFollowing_t", + "methodname": "IsFollowing", + "methodname_flat": "SteamAPI_ISteamFriends_IsFollowing", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "FriendsEnumerateFollowingList_t", + "methodname": "EnumerateFollowingList", + "methodname_flat": "SteamAPI_ISteamFriends_EnumerateFollowingList", + "params": [ + { "paramname":"unStartIndex", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "IsClanPublic", + "methodname_flat": "SteamAPI_ISteamFriends_IsClanPublic", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "IsClanOfficialGameGroup", + "methodname_flat": "SteamAPI_ISteamFriends_IsClanOfficialGameGroup", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNumChatsWithUnreadPriorityMessages", + "methodname_flat": "SteamAPI_ISteamFriends_GetNumChatsWithUnreadPriorityMessages", + "params": [], + "returntype": "int" + }, + { + "methodname": "ActivateGameOverlayRemotePlayTogetherInviteDialog", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "RegisterProtocolInOverlayBrowser", + "methodname_flat": "SteamAPI_ISteamFriends_RegisterProtocolInOverlayBrowser", + "params": [ + { "paramname":"pchProtocol", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "ActivateGameOverlayInviteDialogConnectString", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialogConnectString", + "params": [ + { "paramname":"pchConnectString", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "callresult": "EquippedProfileItems_t", + "methodname": "RequestEquippedProfileItems", + "methodname_flat": "SteamAPI_ISteamFriends_RequestEquippedProfileItems", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "BHasEquippedProfileItem", + "methodname_flat": "SteamAPI_ISteamFriends_BHasEquippedProfileItem", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"itemType", "paramtype":"ECommunityProfileItemType" } + ], + "returntype": "bool" + }, + { + "methodname": "GetProfileItemPropertyString", + "methodname_flat": "SteamAPI_ISteamFriends_GetProfileItemPropertyString", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"itemType", "paramtype":"ECommunityProfileItemType" }, + { "paramname":"prop", "paramtype":"ECommunityProfileItemProperty" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetProfileItemPropertyUint", + "methodname_flat": "SteamAPI_ISteamFriends_GetProfileItemPropertyUint", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"itemType", "paramtype":"ECommunityProfileItemType" }, + { "paramname":"prop", "paramtype":"ECommunityProfileItemProperty" } + ], + "returntype": "uint32" + } + ], + "version_string": "SteamFriends017" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamUtils", + "name_flat": "SteamAPI_SteamUtils_v010" + }, + { + "kind": "gameserver", + "name": "SteamGameServerUtils", + "name_flat": "SteamAPI_SteamGameServerUtils_v010" + } + ], + "classname": "ISteamUtils", + "fields": [], + "methods": [ + { + "methodname": "GetSecondsSinceAppActive", + "methodname_flat": "SteamAPI_ISteamUtils_GetSecondsSinceAppActive", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetSecondsSinceComputerActive", + "methodname_flat": "SteamAPI_ISteamUtils_GetSecondsSinceComputerActive", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetConnectedUniverse", + "methodname_flat": "SteamAPI_ISteamUtils_GetConnectedUniverse", + "params": [], + "returntype": "EUniverse" + }, + { + "methodname": "GetServerRealTime", + "methodname_flat": "SteamAPI_ISteamUtils_GetServerRealTime", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetIPCountry", + "methodname_flat": "SteamAPI_ISteamUtils_GetIPCountry", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "GetImageSize", + "methodname_flat": "SteamAPI_ISteamUtils_GetImageSize", + "params": [ + { "paramname":"iImage", "paramtype":"int" }, + { "paramname":"pnWidth", "paramtype":"uint32 *" }, + { "paramname":"pnHeight", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetImageRGBA", + "methodname_flat": "SteamAPI_ISteamUtils_GetImageRGBA", + "params": [ + { "paramname":"iImage", "paramtype":"int" }, + { "paramname":"pubDest", "paramtype":"uint8 *" }, + { "paramname":"nDestBufferSize", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetCurrentBatteryPower", + "methodname_flat": "SteamAPI_ISteamUtils_GetCurrentBatteryPower", + "params": [], + "returntype": "uint8" + }, + { + "methodname": "GetAppID", + "methodname_flat": "SteamAPI_ISteamUtils_GetAppID", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetOverlayNotificationPosition", + "methodname_flat": "SteamAPI_ISteamUtils_SetOverlayNotificationPosition", + "params": [ + { "paramname":"eNotificationPosition", "paramtype":"ENotificationPosition" } + ], + "returntype": "void" + }, + { + "methodname": "IsAPICallCompleted", + "methodname_flat": "SteamAPI_ISteamUtils_IsAPICallCompleted", + "params": [ + { "paramname":"hSteamAPICall", "paramtype":"SteamAPICall_t" }, + { "paramname":"pbFailed", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAPICallFailureReason", + "methodname_flat": "SteamAPI_ISteamUtils_GetAPICallFailureReason", + "params": [ + { "paramname":"hSteamAPICall", "paramtype":"SteamAPICall_t" } + ], + "returntype": "ESteamAPICallFailure" + }, + { + "methodname": "GetAPICallResult", + "methodname_flat": "SteamAPI_ISteamUtils_GetAPICallResult", + "params": [ + { "paramname":"hSteamAPICall", "paramtype":"SteamAPICall_t" }, + { "paramname":"pCallback", "paramtype":"void *" }, + { "paramname":"cubCallback", "paramtype":"int" }, + { "paramname":"iCallbackExpected", "paramtype":"int" }, + { "paramname":"pbFailed", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetIPCCallCount", + "methodname_flat": "SteamAPI_ISteamUtils_GetIPCCallCount", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetWarningMessageHook", + "methodname_flat": "SteamAPI_ISteamUtils_SetWarningMessageHook", + "params": [ + { "paramname":"pFunction", "paramtype":"SteamAPIWarningMessageHook_t" } + ], + "returntype": "void" + }, + { + "methodname": "IsOverlayEnabled", + "methodname_flat": "SteamAPI_ISteamUtils_IsOverlayEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BOverlayNeedsPresent", + "methodname_flat": "SteamAPI_ISteamUtils_BOverlayNeedsPresent", + "params": [], + "returntype": "bool" + }, + { + "callresult": "CheckFileSignature_t", + "methodname": "CheckFileSignature", + "methodname_flat": "SteamAPI_ISteamUtils_CheckFileSignature", + "params": [ + { "paramname":"szFileName", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "ShowGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_ShowGamepadTextInput", + "params": [ + { "paramname":"eInputMode", "paramtype":"EGamepadTextInputMode" }, + { "paramname":"eLineInputMode", "paramtype":"EGamepadTextInputLineMode" }, + { "paramname":"pchDescription", "paramtype":"const char *" }, + { "paramname":"unCharMax", "paramtype":"uint32" }, + { "paramname":"pchExistingText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetEnteredGamepadTextLength", + "methodname_flat": "SteamAPI_ISteamUtils_GetEnteredGamepadTextLength", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetEnteredGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_GetEnteredGamepadTextInput", + "params": [ + { "paramname":"pchText", "paramtype":"char *" }, + { "paramname":"cchText", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetSteamUILanguage", + "methodname_flat": "SteamAPI_ISteamUtils_GetSteamUILanguage", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "IsSteamRunningInVR", + "methodname_flat": "SteamAPI_ISteamUtils_IsSteamRunningInVR", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetOverlayNotificationInset", + "methodname_flat": "SteamAPI_ISteamUtils_SetOverlayNotificationInset", + "params": [ + { "paramname":"nHorizontalInset", "paramtype":"int" }, + { "paramname":"nVerticalInset", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "IsSteamInBigPictureMode", + "methodname_flat": "SteamAPI_ISteamUtils_IsSteamInBigPictureMode", + "params": [], + "returntype": "bool" + }, + { + "methodname": "StartVRDashboard", + "methodname_flat": "SteamAPI_ISteamUtils_StartVRDashboard", + "params": [], + "returntype": "void" + }, + { + "methodname": "IsVRHeadsetStreamingEnabled", + "methodname_flat": "SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetVRHeadsetStreamingEnabled", + "methodname_flat": "SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled", + "params": [ + { "paramname":"bEnabled", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "IsSteamChinaLauncher", + "methodname_flat": "SteamAPI_ISteamUtils_IsSteamChinaLauncher", + "params": [], + "returntype": "bool" + }, + { + "methodname": "InitFilterText", + "methodname_flat": "SteamAPI_ISteamUtils_InitFilterText", + "params": [ + { "paramname":"unFilterOptions", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "FilterText", + "methodname_flat": "SteamAPI_ISteamUtils_FilterText", + "params": [ + { "paramname":"eContext", "paramtype":"ETextFilteringContext" }, + { "paramname":"sourceSteamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchInputMessage", "paramtype":"const char *" }, + { "paramname":"pchOutFilteredText", "paramtype":"char *" }, + { "paramname":"nByteSizeOutFilteredText", "paramtype":"uint32" } + ], + "returntype": "int" + }, + { + "methodname": "GetIPv6ConnectivityState", + "methodname_flat": "SteamAPI_ISteamUtils_GetIPv6ConnectivityState", + "params": [ + { "paramname":"eProtocol", "paramtype":"ESteamIPv6ConnectivityProtocol" } + ], + "returntype": "ESteamIPv6ConnectivityState" + }, + { + "methodname": "IsSteamRunningOnSteamDeck", + "methodname_flat": "SteamAPI_ISteamUtils_IsSteamRunningOnSteamDeck", + "params": [], + "returntype": "bool" + }, + { + "methodname": "ShowFloatingGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_ShowFloatingGamepadTextInput", + "params": [ + { "paramname":"eKeyboardMode", "paramtype":"EFloatingGamepadTextInputMode" }, + { "paramname":"nTextFieldXPosition", "paramtype":"int" }, + { "paramname":"nTextFieldYPosition", "paramtype":"int" }, + { "paramname":"nTextFieldWidth", "paramtype":"int" }, + { "paramname":"nTextFieldHeight", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGameLauncherMode", + "methodname_flat": "SteamAPI_ISteamUtils_SetGameLauncherMode", + "params": [ + { "paramname":"bLauncherMode", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "DismissFloatingGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_DismissFloatingGamepadTextInput", + "params": [], + "returntype": "bool" + }, + { + "methodname": "DismissGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_DismissGamepadTextInput", + "params": [], + "returntype": "bool" + } + ], + "version_string": "SteamUtils010" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamMatchmaking", + "name_flat": "SteamAPI_SteamMatchmaking_v009" + } + ], + "classname": "ISteamMatchmaking", + "fields": [], + "methods": [ + { + "methodname": "GetFavoriteGameCount", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetFavoriteGameCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetFavoriteGame", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetFavoriteGame", + "params": [ + { "paramname":"iGame", "paramtype":"int" }, + { "paramname":"pnAppID", "paramtype":"AppId_t *" }, + { "paramname":"pnIP", "paramtype":"uint32 *" }, + { "paramname":"pnConnPort", "paramtype":"uint16 *" }, + { "paramname":"pnQueryPort", "paramtype":"uint16 *" }, + { "paramname":"punFlags", "paramtype":"uint32 *" }, + { "paramname":"pRTime32LastPlayedOnServer", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddFavoriteGame", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddFavoriteGame", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" }, + { "paramname":"nIP", "paramtype":"uint32" }, + { "paramname":"nConnPort", "paramtype":"uint16" }, + { "paramname":"nQueryPort", "paramtype":"uint16" }, + { "paramname":"unFlags", "paramtype":"uint32" }, + { "paramname":"rTime32LastPlayedOnServer", "paramtype":"uint32" } + ], + "returntype": "int" + }, + { + "methodname": "RemoveFavoriteGame", + "methodname_flat": "SteamAPI_ISteamMatchmaking_RemoveFavoriteGame", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" }, + { "paramname":"nIP", "paramtype":"uint32" }, + { "paramname":"nConnPort", "paramtype":"uint16" }, + { "paramname":"nQueryPort", "paramtype":"uint16" }, + { "paramname":"unFlags", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "callresult": "LobbyMatchList_t", + "methodname": "RequestLobbyList", + "methodname_flat": "SteamAPI_ISteamMatchmaking_RequestLobbyList", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "AddRequestLobbyListStringFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter", + "params": [ + { "paramname":"pchKeyToMatch", "paramtype":"const char *" }, + { "paramname":"pchValueToMatch", "paramtype":"const char *" }, + { "paramname":"eComparisonType", "paramtype":"ELobbyComparison" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListNumericalFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter", + "params": [ + { "paramname":"pchKeyToMatch", "paramtype":"const char *" }, + { "paramname":"nValueToMatch", "paramtype":"int" }, + { "paramname":"eComparisonType", "paramtype":"ELobbyComparison" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListNearValueFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter", + "params": [ + { "paramname":"pchKeyToMatch", "paramtype":"const char *" }, + { "paramname":"nValueToBeCloseTo", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListFilterSlotsAvailable", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable", + "params": [ + { "paramname":"nSlotsAvailable", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListDistanceFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter", + "params": [ + { "paramname":"eLobbyDistanceFilter", "paramtype":"ELobbyDistanceFilter" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListResultCountFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter", + "params": [ + { "paramname":"cMaxResults", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListCompatibleMembersFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "GetLobbyByIndex", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyByIndex", + "params": [ + { "paramname":"iLobby", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "callresult": "LobbyCreated_t", + "methodname": "CreateLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_CreateLobby", + "params": [ + { "paramname":"eLobbyType", "paramtype":"ELobbyType" }, + { "paramname":"cMaxMembers", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "LobbyEnter_t", + "methodname": "JoinLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_JoinLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "LeaveLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_LeaveLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "InviteUserToLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_InviteUserToLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDInvitee", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNumLobbyMembers", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetNumLobbyMembers", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetLobbyMemberByIndex", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iMember", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetLobbyData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "SetLobbyData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyDataCount", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyDataCount", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetLobbyDataByIndex", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iLobbyData", "paramtype":"int" }, + { "paramname":"pchKey", "paramtype":"char *" }, + { "paramname":"cchKeyBufferSize", "paramtype":"int" }, + { "paramname":"pchValue", "paramtype":"char *" }, + { "paramname":"cchValueBufferSize", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "DeleteLobbyData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_DeleteLobbyData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyMemberData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyMemberData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "SetLobbyMemberData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyMemberData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SendLobbyChatMsg", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SendLobbyChatMsg", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pvMsgBody", "paramtype":"const void *" }, + { "paramname":"cubMsgBody", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyChatEntry", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyChatEntry", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iChatID", "paramtype":"int" }, + { + "out_struct": "", + "paramname": "pSteamIDUser", + "paramtype": "CSteamID *" + }, + { "paramname":"pvData", "paramtype":"void *" }, + { "paramname":"cubData", "paramtype":"int" }, + { "paramname":"peChatEntryType", "paramtype":"EChatEntryType *" } + ], + "returntype": "int" + }, + { + "methodname": "RequestLobbyData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_RequestLobbyData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "SetLobbyGameServer", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyGameServer", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"unGameServerIP", "paramtype":"uint32" }, + { "paramname":"unGameServerPort", "paramtype":"uint16" }, + { "paramname":"steamIDGameServer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "GetLobbyGameServer", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyGameServer", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"punGameServerIP", "paramtype":"uint32 *" }, + { "paramname":"punGameServerPort", "paramtype":"uint16 *" }, + { + "out_struct": "", + "paramname": "psteamIDGameServer", + "paramtype": "CSteamID *" + } + ], + "returntype": "bool" + }, + { + "methodname": "SetLobbyMemberLimit", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"cMaxMembers", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyMemberLimit", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "SetLobbyType", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyType", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"eLobbyType", "paramtype":"ELobbyType" } + ], + "returntype": "bool" + }, + { + "methodname": "SetLobbyJoinable", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyJoinable", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"bLobbyJoinable", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyOwner", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyOwner", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "SetLobbyOwner", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyOwner", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDNewOwner", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "SetLinkedLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLinkedLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDLobbyDependent", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamMatchMaking009" + }, + { + "classname": "ISteamMatchmakingServerListResponse", + "fields": [], + "methods": [ + { + "methodname": "ServerResponded", + "methodname_flat": "SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"iServer", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "ServerFailedToRespond", + "methodname_flat": "SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"iServer", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "RefreshComplete", + "methodname_flat": "SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"response", "paramtype":"EMatchMakingServerResponse" } + ], + "returntype": "void" + } + ] + }, + { + "classname": "ISteamMatchmakingPingResponse", + "fields": [], + "methods": [ + { + "methodname": "ServerResponded", + "methodname_flat": "SteamAPI_ISteamMatchmakingPingResponse_ServerResponded", + "params": [ + { "paramname":"server", "paramtype":"gameserveritem_t &" } + ], + "returntype": "void" + }, + { + "methodname": "ServerFailedToRespond", + "methodname_flat": "SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond", + "params": [], + "returntype": "void" + } + ] + }, + { + "classname": "ISteamMatchmakingPlayersResponse", + "fields": [], + "methods": [ + { + "methodname": "AddPlayerToList", + "methodname_flat": "SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"nScore", "paramtype":"int" }, + { "paramname":"flTimePlayed", "paramtype":"float" } + ], + "returntype": "void" + }, + { + "methodname": "PlayersFailedToRespond", + "methodname_flat": "SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond", + "params": [], + "returntype": "void" + }, + { + "methodname": "PlayersRefreshComplete", + "methodname_flat": "SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete", + "params": [], + "returntype": "void" + } + ] + }, + { + "classname": "ISteamMatchmakingRulesResponse", + "fields": [], + "methods": [ + { + "methodname": "RulesResponded", + "methodname_flat": "SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded", + "params": [ + { "paramname":"pchRule", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "RulesFailedToRespond", + "methodname_flat": "SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond", + "params": [], + "returntype": "void" + }, + { + "methodname": "RulesRefreshComplete", + "methodname_flat": "SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete", + "params": [], + "returntype": "void" + } + ] + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamMatchmakingServers", + "name_flat": "SteamAPI_SteamMatchmakingServers_v002" + } + ], + "classname": "ISteamMatchmakingServers", + "fields": [], + "methods": [ + { + "methodname": "RequestInternetServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestInternetServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestLANServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestLANServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestFriendsServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestFavoritesServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestHistoryServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestSpectatorServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "ReleaseRequest", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_ReleaseRequest", + "params": [ + { "paramname":"hServerListRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "void" + }, + { + "methodname": "GetServerDetails", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_GetServerDetails", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"iServer", "paramtype":"int" } + ], + "returntype": "gameserveritem_t *" + }, + { + "methodname": "CancelQuery", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_CancelQuery", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "void" + }, + { + "methodname": "RefreshQuery", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RefreshQuery", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "void" + }, + { + "methodname": "IsRefreshing", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_IsRefreshing", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "bool" + }, + { + "methodname": "GetServerCount", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_GetServerCount", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "int" + }, + { + "methodname": "RefreshServer", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RefreshServer", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"iServer", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "PingServer", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_PingServer", + "params": [ + { "paramname":"unIP", "paramtype":"uint32" }, + { "paramname":"usPort", "paramtype":"uint16" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingPingResponse *" } + ], + "returntype": "HServerQuery" + }, + { + "methodname": "PlayerDetails", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_PlayerDetails", + "params": [ + { "paramname":"unIP", "paramtype":"uint32" }, + { "paramname":"usPort", "paramtype":"uint16" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingPlayersResponse *" } + ], + "returntype": "HServerQuery" + }, + { + "methodname": "ServerRules", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_ServerRules", + "params": [ + { "paramname":"unIP", "paramtype":"uint32" }, + { "paramname":"usPort", "paramtype":"uint16" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingRulesResponse *" } + ], + "returntype": "HServerQuery" + }, + { + "methodname": "CancelServerQuery", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_CancelServerQuery", + "params": [ + { "paramname":"hServerQuery", "paramtype":"HServerQuery" } + ], + "returntype": "void" + } + ], + "version_string": "SteamMatchMakingServers002" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamGameSearch", + "name_flat": "SteamAPI_SteamGameSearch_v001" + } + ], + "classname": "ISteamGameSearch", + "fields": [], + "methods": [ + { + "methodname": "AddGameSearchParams", + "methodname_flat": "SteamAPI_ISteamGameSearch_AddGameSearchParams", + "params": [ + { "paramname":"pchKeyToFind", "paramtype":"const char *" }, + { "paramname":"pchValuesToFind", "paramtype":"const char *" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SearchForGameWithLobby", + "methodname_flat": "SteamAPI_ISteamGameSearch_SearchForGameWithLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"nPlayerMin", "paramtype":"int" }, + { "paramname":"nPlayerMax", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SearchForGameSolo", + "methodname_flat": "SteamAPI_ISteamGameSearch_SearchForGameSolo", + "params": [ + { "paramname":"nPlayerMin", "paramtype":"int" }, + { "paramname":"nPlayerMax", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "AcceptGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_AcceptGame", + "params": [], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "DeclineGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_DeclineGame", + "params": [], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "RetrieveConnectionDetails", + "methodname_flat": "SteamAPI_ISteamGameSearch_RetrieveConnectionDetails", + "params": [ + { "paramname":"steamIDHost", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchConnectionDetails", "paramtype":"char *" }, + { "paramname":"cubConnectionDetails", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "EndGameSearch", + "methodname_flat": "SteamAPI_ISteamGameSearch_EndGameSearch", + "params": [], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SetGameHostParams", + "methodname_flat": "SteamAPI_ISteamGameSearch_SetGameHostParams", + "params": [ + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SetConnectionDetails", + "methodname_flat": "SteamAPI_ISteamGameSearch_SetConnectionDetails", + "params": [ + { "paramname":"pchConnectionDetails", "paramtype":"const char *" }, + { "paramname":"cubConnectionDetails", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "RequestPlayersForGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_RequestPlayersForGame", + "params": [ + { "paramname":"nPlayerMin", "paramtype":"int" }, + { "paramname":"nPlayerMax", "paramtype":"int" }, + { "paramname":"nMaxTeamSize", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "HostConfirmGameStart", + "methodname_flat": "SteamAPI_ISteamGameSearch_HostConfirmGameStart", + "params": [ + { "paramname":"ullUniqueGameID", "paramtype":"uint64" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "CancelRequestPlayersForGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_CancelRequestPlayersForGame", + "params": [], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SubmitPlayerResult", + "methodname_flat": "SteamAPI_ISteamGameSearch_SubmitPlayerResult", + "params": [ + { "paramname":"ullUniqueGameID", "paramtype":"uint64" }, + { "paramname":"steamIDPlayer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"EPlayerResult", "paramtype":"EPlayerResult_t" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "EndGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_EndGame", + "params": [ + { "paramname":"ullUniqueGameID", "paramtype":"uint64" } + ], + "returntype": "EGameSearchErrorCode_t" + } + ], + "version_string": "SteamMatchGameSearch001" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamParties", + "name_flat": "SteamAPI_SteamParties_v002" + } + ], + "classname": "ISteamParties", + "fields": [], + "methods": [ + { + "methodname": "GetNumActiveBeacons", + "methodname_flat": "SteamAPI_ISteamParties_GetNumActiveBeacons", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetBeaconByIndex", + "methodname_flat": "SteamAPI_ISteamParties_GetBeaconByIndex", + "params": [ + { "paramname":"unIndex", "paramtype":"uint32" } + ], + "returntype": "PartyBeaconID_t" + }, + { + "methodname": "GetBeaconDetails", + "methodname_flat": "SteamAPI_ISteamParties_GetBeaconDetails", + "params": [ + { "paramname":"ulBeaconID", "paramtype":"PartyBeaconID_t" }, + { "paramname":"pSteamIDBeaconOwner", "paramtype":"CSteamID *" }, + { + "out_struct": "", + "paramname": "pLocation", + "paramtype": "SteamPartyBeaconLocation_t *" + }, + { + "out_string_count": "cchMetadata", + "paramname": "pchMetadata", + "paramtype": "char *" + }, + { "paramname":"cchMetadata", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "callresult": "JoinPartyCallback_t", + "methodname": "JoinParty", + "methodname_flat": "SteamAPI_ISteamParties_JoinParty", + "params": [ + { "paramname":"ulBeaconID", "paramtype":"PartyBeaconID_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetNumAvailableBeaconLocations", + "methodname_flat": "SteamAPI_ISteamParties_GetNumAvailableBeaconLocations", + "params": [ + { "paramname":"puNumLocations", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAvailableBeaconLocations", + "methodname_flat": "SteamAPI_ISteamParties_GetAvailableBeaconLocations", + "params": [ + { "paramname":"pLocationList", "paramtype":"SteamPartyBeaconLocation_t *" }, + { "paramname":"uMaxNumLocations", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "callresult": "CreateBeaconCallback_t", + "methodname": "CreateBeacon", + "methodname_flat": "SteamAPI_ISteamParties_CreateBeacon", + "params": [ + { "paramname":"unOpenSlots", "paramtype":"uint32" }, + { "paramname":"pBeaconLocation", "paramtype":"SteamPartyBeaconLocation_t *" }, + { "paramname":"pchConnectString", "paramtype":"const char *" }, + { "paramname":"pchMetadata", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "OnReservationCompleted", + "methodname_flat": "SteamAPI_ISteamParties_OnReservationCompleted", + "params": [ + { "paramname":"ulBeacon", "paramtype":"PartyBeaconID_t" }, + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "CancelReservation", + "methodname_flat": "SteamAPI_ISteamParties_CancelReservation", + "params": [ + { "paramname":"ulBeacon", "paramtype":"PartyBeaconID_t" }, + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "callresult": "ChangeNumOpenSlotsCallback_t", + "methodname": "ChangeNumOpenSlots", + "methodname_flat": "SteamAPI_ISteamParties_ChangeNumOpenSlots", + "params": [ + { "paramname":"ulBeacon", "paramtype":"PartyBeaconID_t" }, + { "paramname":"unOpenSlots", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "DestroyBeacon", + "methodname_flat": "SteamAPI_ISteamParties_DestroyBeacon", + "params": [ + { "paramname":"ulBeacon", "paramtype":"PartyBeaconID_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetBeaconLocationData", + "methodname_flat": "SteamAPI_ISteamParties_GetBeaconLocationData", + "params": [ + { "paramname":"BeaconLocation", "paramtype":"SteamPartyBeaconLocation_t" }, + { "paramname":"eData", "paramtype":"ESteamPartyBeaconLocationData" }, + { + "out_string_count": "cchDataStringOut", + "paramname": "pchDataStringOut", + "paramtype": "char *" + }, + { "paramname":"cchDataStringOut", "paramtype":"int" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamParties002" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamRemoteStorage", + "name_flat": "SteamAPI_SteamRemoteStorage_v016" + } + ], + "classname": "ISteamRemoteStorage", + "fields": [], + "methods": [ + { + "methodname": "FileWrite", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWrite", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"pvData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "FileRead", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileRead", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"pvData", "paramtype":"void *" }, + { "paramname":"cubDataToRead", "paramtype":"int32" } + ], + "returntype": "int32" + }, + { + "callresult": "RemoteStorageFileWriteAsyncComplete_t", + "methodname": "FileWriteAsync", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteAsync", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"pvData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageFileReadAsyncComplete_t", + "methodname": "FileReadAsync", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileReadAsync", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"nOffset", "paramtype":"uint32" }, + { "paramname":"cubToRead", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "FileReadAsyncComplete", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete", + "params": [ + { "paramname":"hReadCall", "paramtype":"SteamAPICall_t" }, + { "paramname":"pvBuffer", "paramtype":"void *" }, + { "paramname":"cubToRead", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "FileForget", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileForget", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "FileDelete", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileDelete", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "callresult": "RemoteStorageFileShareResult_t", + "methodname": "FileShare", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileShare", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "SetSyncPlatforms", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_SetSyncPlatforms", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"eRemoteStoragePlatform", "paramtype":"ERemoteStoragePlatform" } + ], + "returntype": "bool" + }, + { + "methodname": "FileWriteStreamOpen", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "UGCFileWriteStreamHandle_t" + }, + { + "methodname": "FileWriteStreamWriteChunk", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk", + "params": [ + { "paramname":"writeHandle", "paramtype":"UGCFileWriteStreamHandle_t" }, + { "paramname":"pvData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "FileWriteStreamClose", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteStreamClose", + "params": [ + { "paramname":"writeHandle", "paramtype":"UGCFileWriteStreamHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "FileWriteStreamCancel", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel", + "params": [ + { "paramname":"writeHandle", "paramtype":"UGCFileWriteStreamHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "FileExists", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileExists", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "FilePersisted", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FilePersisted", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetFileSize", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetFileSize", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "int32" + }, + { + "methodname": "GetFileTimestamp", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetFileTimestamp", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "int64" + }, + { + "methodname": "GetSyncPlatforms", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetSyncPlatforms", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "ERemoteStoragePlatform" + }, + { + "methodname": "GetFileCount", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetFileCount", + "params": [], + "returntype": "int32" + }, + { + "methodname": "GetFileNameAndSize", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetFileNameAndSize", + "params": [ + { "paramname":"iFile", "paramtype":"int" }, + { "paramname":"pnFileSizeInBytes", "paramtype":"int32 *" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetQuota", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetQuota", + "params": [ + { "paramname":"pnTotalBytes", "paramtype":"uint64 *" }, + { "paramname":"puAvailableBytes", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "IsCloudEnabledForAccount", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount", + "params": [], + "returntype": "bool" + }, + { + "methodname": "IsCloudEnabledForApp", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetCloudEnabledForApp", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp", + "params": [ + { "paramname":"bEnabled", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "callresult": "RemoteStorageDownloadUGCResult_t", + "methodname": "UGCDownload", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UGCDownload", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"unPriority", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetUGCDownloadProgress", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"pnBytesDownloaded", "paramtype":"int32 *" }, + { "paramname":"pnBytesExpected", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUGCDetails", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetUGCDetails", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"pnAppID", "paramtype":"AppId_t *" }, + { + "out_string": "", + "paramname": "ppchName", + "paramtype": "char **" + }, + { "paramname":"pnFileSizeInBytes", "paramtype":"int32 *" }, + { + "out_struct": "", + "paramname": "pSteamIDOwner", + "paramtype": "CSteamID *" + } + ], + "returntype": "bool" + }, + { + "methodname": "UGCRead", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UGCRead", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"pvData", "paramtype":"void *" }, + { "paramname":"cubDataToRead", "paramtype":"int32" }, + { "paramname":"cOffset", "paramtype":"uint32" }, + { "paramname":"eAction", "paramtype":"EUGCReadAction" } + ], + "returntype": "int32" + }, + { + "methodname": "GetCachedUGCCount", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetCachedUGCCount", + "params": [], + "returntype": "int32" + }, + { + "methodname": "GetCachedUGCHandle", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle", + "params": [ + { "paramname":"iCachedContent", "paramtype":"int32" } + ], + "returntype": "UGCHandle_t" + }, + { + "callresult": "RemoteStoragePublishFileProgress_t", + "methodname": "PublishWorkshopFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_PublishWorkshopFile", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"pchPreviewFile", "paramtype":"const char *" }, + { "paramname":"nConsumerAppId", "paramtype":"AppId_t" }, + { "paramname":"pchTitle", "paramtype":"const char *" }, + { "paramname":"pchDescription", "paramtype":"const char *" }, + { "paramname":"eVisibility", "paramtype":"ERemoteStoragePublishedFileVisibility" }, + { "paramname":"pTags", "paramtype":"SteamParamStringArray_t *" }, + { "paramname":"eWorkshopFileType", "paramtype":"EWorkshopFileType" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "CreatePublishedFileUpdateRequest", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "PublishedFileUpdateHandle_t" + }, + { + "methodname": "UpdatePublishedFileFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFilePreviewFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchPreviewFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFileTitle", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchTitle", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFileDescription", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchDescription", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFileVisibility", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"eVisibility", "paramtype":"ERemoteStoragePublishedFileVisibility" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFileTags", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pTags", "paramtype":"SteamParamStringArray_t *" } + ], + "returntype": "bool" + }, + { + "callresult": "RemoteStorageUpdatePublishedFileResult_t", + "methodname": "CommitPublishedFileUpdate", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageGetPublishedFileDetailsResult_t", + "methodname": "GetPublishedFileDetails", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" }, + { "paramname":"unMaxSecondsOld", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageDeletePublishedFileResult_t", + "methodname": "DeletePublishedFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_DeletePublishedFile", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumerateUserPublishedFilesResult_t", + "methodname": "EnumerateUserPublishedFiles", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles", + "params": [ + { "paramname":"unStartIndex", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageSubscribePublishedFileResult_t", + "methodname": "SubscribePublishedFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_SubscribePublishedFile", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumerateUserSubscribedFilesResult_t", + "methodname": "EnumerateUserSubscribedFiles", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles", + "params": [ + { "paramname":"unStartIndex", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageUnsubscribePublishedFileResult_t", + "methodname": "UnsubscribePublishedFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "UpdatePublishedFileSetChangeDescription", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchChangeDescription", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "callresult": "RemoteStorageGetPublishedItemVoteDetailsResult_t", + "methodname": "GetPublishedItemVoteDetails", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageUpdateUserPublishedItemVoteResult_t", + "methodname": "UpdateUserPublishedItemVote", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" }, + { "paramname":"bVoteUp", "paramtype":"bool" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageGetPublishedItemVoteDetailsResult_t", + "methodname": "GetUserPublishedItemVoteDetails", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumerateUserPublishedFilesResult_t", + "methodname": "EnumerateUserSharedWorkshopFiles", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles", + "params": [ + { "paramname":"steamId", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"unStartIndex", "paramtype":"uint32" }, + { "paramname":"pRequiredTags", "paramtype":"SteamParamStringArray_t *" }, + { "paramname":"pExcludedTags", "paramtype":"SteamParamStringArray_t *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStoragePublishFileProgress_t", + "methodname": "PublishVideo", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_PublishVideo", + "params": [ + { "paramname":"eVideoProvider", "paramtype":"EWorkshopVideoProvider" }, + { "paramname":"pchVideoAccount", "paramtype":"const char *" }, + { "paramname":"pchVideoIdentifier", "paramtype":"const char *" }, + { "paramname":"pchPreviewFile", "paramtype":"const char *" }, + { "paramname":"nConsumerAppId", "paramtype":"AppId_t" }, + { "paramname":"pchTitle", "paramtype":"const char *" }, + { "paramname":"pchDescription", "paramtype":"const char *" }, + { "paramname":"eVisibility", "paramtype":"ERemoteStoragePublishedFileVisibility" }, + { "paramname":"pTags", "paramtype":"SteamParamStringArray_t *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageSetUserPublishedFileActionResult_t", + "methodname": "SetUserPublishedFileAction", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" }, + { "paramname":"eAction", "paramtype":"EWorkshopFileAction" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumeratePublishedFilesByUserActionResult_t", + "methodname": "EnumeratePublishedFilesByUserAction", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction", + "params": [ + { "paramname":"eAction", "paramtype":"EWorkshopFileAction" }, + { "paramname":"unStartIndex", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumerateWorkshopFilesResult_t", + "methodname": "EnumeratePublishedWorkshopFiles", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles", + "params": [ + { "paramname":"eEnumerationType", "paramtype":"EWorkshopEnumerationType" }, + { "paramname":"unStartIndex", "paramtype":"uint32" }, + { "paramname":"unCount", "paramtype":"uint32" }, + { "paramname":"unDays", "paramtype":"uint32" }, + { "paramname":"pTags", "paramtype":"SteamParamStringArray_t *" }, + { "paramname":"pUserTags", "paramtype":"SteamParamStringArray_t *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageDownloadUGCResult_t", + "methodname": "UGCDownloadToLocation", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"pchLocation", "paramtype":"const char *" }, + { "paramname":"unPriority", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetLocalFileChangeCount", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetLocalFileChangeCount", + "params": [], + "returntype": "int32" + }, + { + "methodname": "GetLocalFileChange", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetLocalFileChange", + "params": [ + { "paramname":"iFile", "paramtype":"int" }, + { "paramname":"pEChangeType", "paramtype":"ERemoteStorageLocalFileChange *" }, + { "paramname":"pEFilePathType", "paramtype":"ERemoteStorageFilePathType *" } + ], + "returntype": "const char *" + }, + { + "methodname": "BeginFileWriteBatch", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_BeginFileWriteBatch", + "params": [], + "returntype": "bool" + }, + { + "methodname": "EndFileWriteBatch", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EndFileWriteBatch", + "params": [], + "returntype": "bool" + } + ], + "version_string": "STEAMREMOTESTORAGE_INTERFACE_VERSION016" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamUserStats", + "name_flat": "SteamAPI_SteamUserStats_v012" + } + ], + "classname": "ISteamUserStats", + "fields": [], + "methods": [ + { + "callback": "UserStatsReceived_t", + "methodname": "RequestCurrentStats", + "methodname_flat": "SteamAPI_ISteamUserStats_RequestCurrentStats", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetStatInt32", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetStatFloat", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetStat", + "methodname_flat": "SteamAPI_ISteamUserStats_SetStatInt32", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"nData", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetStat", + "methodname_flat": "SteamAPI_ISteamUserStats_SetStatFloat", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"fData", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateAvgRateStat", + "methodname_flat": "SteamAPI_ISteamUserStats_UpdateAvgRateStat", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"flCountThisSession", "paramtype":"float" }, + { "paramname":"dSessionLength", "paramtype":"double" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAchievement", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievement", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetAchievement", + "methodname_flat": "SteamAPI_ISteamUserStats_SetAchievement", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "ClearAchievement", + "methodname_flat": "SteamAPI_ISteamUserStats_ClearAchievement", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAchievementAndUnlockTime", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" }, + { "paramname":"punUnlockTime", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "StoreStats", + "methodname_flat": "SteamAPI_ISteamUserStats_StoreStats", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetAchievementIcon", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementIcon", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "int" + }, + { + "methodname": "GetAchievementDisplayAttribute", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "IndicateAchievementProgress", + "methodname_flat": "SteamAPI_ISteamUserStats_IndicateAchievementProgress", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"nCurProgress", "paramtype":"uint32" }, + { "paramname":"nMaxProgress", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNumAchievements", + "methodname_flat": "SteamAPI_ISteamUserStats_GetNumAchievements", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetAchievementName", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementName", + "params": [ + { "paramname":"iAchievement", "paramtype":"uint32" } + ], + "returntype": "const char *" + }, + { + "callresult": "UserStatsReceived_t", + "methodname": "RequestUserStats", + "methodname_flat": "SteamAPI_ISteamUserStats_RequestUserStats", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetUserStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetUserStatInt32", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetUserStatFloat", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserAchievement", + "methodname_flat": "SteamAPI_ISteamUserStats_GetUserAchievement", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserAchievementAndUnlockTime", + "methodname_flat": "SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" }, + { "paramname":"punUnlockTime", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "ResetAllStats", + "methodname_flat": "SteamAPI_ISteamUserStats_ResetAllStats", + "params": [ + { "paramname":"bAchievementsToo", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "callresult": "LeaderboardFindResult_t", + "methodname": "FindOrCreateLeaderboard", + "methodname_flat": "SteamAPI_ISteamUserStats_FindOrCreateLeaderboard", + "params": [ + { "paramname":"pchLeaderboardName", "paramtype":"const char *" }, + { "paramname":"eLeaderboardSortMethod", "paramtype":"ELeaderboardSortMethod" }, + { "paramname":"eLeaderboardDisplayType", "paramtype":"ELeaderboardDisplayType" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "LeaderboardFindResult_t", + "methodname": "FindLeaderboard", + "methodname_flat": "SteamAPI_ISteamUserStats_FindLeaderboard", + "params": [ + { "paramname":"pchLeaderboardName", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetLeaderboardName", + "methodname_flat": "SteamAPI_ISteamUserStats_GetLeaderboardName", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetLeaderboardEntryCount", + "methodname_flat": "SteamAPI_ISteamUserStats_GetLeaderboardEntryCount", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetLeaderboardSortMethod", + "methodname_flat": "SteamAPI_ISteamUserStats_GetLeaderboardSortMethod", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" } + ], + "returntype": "ELeaderboardSortMethod" + }, + { + "methodname": "GetLeaderboardDisplayType", + "methodname_flat": "SteamAPI_ISteamUserStats_GetLeaderboardDisplayType", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" } + ], + "returntype": "ELeaderboardDisplayType" + }, + { + "callresult": "LeaderboardScoresDownloaded_t", + "methodname": "DownloadLeaderboardEntries", + "methodname_flat": "SteamAPI_ISteamUserStats_DownloadLeaderboardEntries", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" }, + { "paramname":"eLeaderboardDataRequest", "paramtype":"ELeaderboardDataRequest" }, + { "paramname":"nRangeStart", "paramtype":"int" }, + { "paramname":"nRangeEnd", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "LeaderboardScoresDownloaded_t", + "methodname": "DownloadLeaderboardEntriesForUsers", + "methodname_flat": "SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" }, + { + "array_count": "cUsers", + "desc": "Array of users to retrieve", + "paramname": "prgUsers", + "paramtype": "CSteamID *" + }, + { "paramname":"cUsers", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetDownloadedLeaderboardEntry", + "methodname_flat": "SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry", + "params": [ + { "paramname":"hSteamLeaderboardEntries", "paramtype":"SteamLeaderboardEntries_t" }, + { "paramname":"index", "paramtype":"int" }, + { "paramname":"pLeaderboardEntry", "paramtype":"LeaderboardEntry_t *" }, + { "paramname":"pDetails", "paramtype":"int32 *" }, + { "paramname":"cDetailsMax", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "callresult": "LeaderboardScoreUploaded_t", + "methodname": "UploadLeaderboardScore", + "methodname_flat": "SteamAPI_ISteamUserStats_UploadLeaderboardScore", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" }, + { "paramname":"eLeaderboardUploadScoreMethod", "paramtype":"ELeaderboardUploadScoreMethod" }, + { "paramname":"nScore", "paramtype":"int32" }, + { "paramname":"pScoreDetails", "paramtype":"const int32 *" }, + { "paramname":"cScoreDetailsCount", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "LeaderboardUGCSet_t", + "methodname": "AttachLeaderboardUGC", + "methodname_flat": "SteamAPI_ISteamUserStats_AttachLeaderboardUGC", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" }, + { "paramname":"hUGC", "paramtype":"UGCHandle_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "NumberOfCurrentPlayers_t", + "methodname": "GetNumberOfCurrentPlayers", + "methodname_flat": "SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "GlobalAchievementPercentagesReady_t", + "methodname": "RequestGlobalAchievementPercentages", + "methodname_flat": "SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetMostAchievedAchievementInfo", + "methodname_flat": "SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo", + "params": [ + { "paramname":"pchName", "paramtype":"char *" }, + { "paramname":"unNameBufLen", "paramtype":"uint32" }, + { "paramname":"pflPercent", "paramtype":"float *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "int" + }, + { + "methodname": "GetNextMostAchievedAchievementInfo", + "methodname_flat": "SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo", + "params": [ + { "paramname":"iIteratorPrevious", "paramtype":"int" }, + { "paramname":"pchName", "paramtype":"char *" }, + { "paramname":"unNameBufLen", "paramtype":"uint32" }, + { "paramname":"pflPercent", "paramtype":"float *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "int" + }, + { + "methodname": "GetAchievementAchievedPercent", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementAchievedPercent", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pflPercent", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "callresult": "GlobalStatsReceived_t", + "methodname": "RequestGlobalStats", + "methodname_flat": "SteamAPI_ISteamUserStats_RequestGlobalStats", + "params": [ + { "paramname":"nHistoryDays", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetGlobalStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetGlobalStatInt64", + "params": [ + { "paramname":"pchStatName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"int64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGlobalStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetGlobalStatDouble", + "params": [ + { "paramname":"pchStatName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"double *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGlobalStatHistory", + "methodname_flat": "SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64", + "params": [ + { "paramname":"pchStatName", "paramtype":"const char *" }, + { + "array_count": "cubData", + "paramname": "pData", + "paramtype": "int64 *" + }, + { "paramname":"cubData", "paramtype":"uint32" } + ], + "returntype": "int32" + }, + { + "methodname": "GetGlobalStatHistory", + "methodname_flat": "SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble", + "params": [ + { "paramname":"pchStatName", "paramtype":"const char *" }, + { + "array_count": "cubData", + "paramname": "pData", + "paramtype": "double *" + }, + { "paramname":"cubData", "paramtype":"uint32" } + ], + "returntype": "int32" + }, + { + "methodname": "GetAchievementProgressLimits", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementProgressLimitsInt32", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pnMinProgress", "paramtype":"int32 *" }, + { "paramname":"pnMaxProgress", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAchievementProgressLimits", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementProgressLimitsFloat", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pfMinProgress", "paramtype":"float *" }, + { "paramname":"pfMaxProgress", "paramtype":"float *" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMUSERSTATS_INTERFACE_VERSION012" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamApps", + "name_flat": "SteamAPI_SteamApps_v008" + } + ], + "classname": "ISteamApps", + "fields": [], + "methods": [ + { + "methodname": "BIsSubscribed", + "methodname_flat": "SteamAPI_ISteamApps_BIsSubscribed", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsLowViolence", + "methodname_flat": "SteamAPI_ISteamApps_BIsLowViolence", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsCybercafe", + "methodname_flat": "SteamAPI_ISteamApps_BIsCybercafe", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsVACBanned", + "methodname_flat": "SteamAPI_ISteamApps_BIsVACBanned", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetCurrentGameLanguage", + "methodname_flat": "SteamAPI_ISteamApps_GetCurrentGameLanguage", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "GetAvailableGameLanguages", + "methodname_flat": "SteamAPI_ISteamApps_GetAvailableGameLanguages", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "BIsSubscribedApp", + "methodname_flat": "SteamAPI_ISteamApps_BIsSubscribedApp", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "BIsDlcInstalled", + "methodname_flat": "SteamAPI_ISteamApps_BIsDlcInstalled", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetEarliestPurchaseUnixTime", + "methodname_flat": "SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "BIsSubscribedFromFreeWeekend", + "methodname_flat": "SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetDLCCount", + "methodname_flat": "SteamAPI_ISteamApps_GetDLCCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "BGetDLCDataByIndex", + "methodname_flat": "SteamAPI_ISteamApps_BGetDLCDataByIndex", + "params": [ + { "paramname":"iDLC", "paramtype":"int" }, + { "paramname":"pAppID", "paramtype":"AppId_t *" }, + { "paramname":"pbAvailable", "paramtype":"bool *" }, + { "paramname":"pchName", "paramtype":"char *" }, + { "paramname":"cchNameBufferSize", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "InstallDLC", + "methodname_flat": "SteamAPI_ISteamApps_InstallDLC", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "void" + }, + { + "methodname": "UninstallDLC", + "methodname_flat": "SteamAPI_ISteamApps_UninstallDLC", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "void" + }, + { + "methodname": "RequestAppProofOfPurchaseKey", + "methodname_flat": "SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetCurrentBetaName", + "methodname_flat": "SteamAPI_ISteamApps_GetCurrentBetaName", + "params": [ + { "paramname":"pchName", "paramtype":"char *" }, + { "paramname":"cchNameBufferSize", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "MarkContentCorrupt", + "methodname_flat": "SteamAPI_ISteamApps_MarkContentCorrupt", + "params": [ + { "paramname":"bMissingFilesOnly", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "GetInstalledDepots", + "methodname_flat": "SteamAPI_ISteamApps_GetInstalledDepots", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" }, + { "paramname":"pvecDepots", "paramtype":"DepotId_t *" }, + { "paramname":"cMaxDepots", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetAppInstallDir", + "methodname_flat": "SteamAPI_ISteamApps_GetAppInstallDir", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" }, + { "paramname":"pchFolder", "paramtype":"char *" }, + { "paramname":"cchFolderBufferSize", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "BIsAppInstalled", + "methodname_flat": "SteamAPI_ISteamApps_BIsAppInstalled", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAppOwner", + "methodname_flat": "SteamAPI_ISteamApps_GetAppOwner", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetLaunchQueryParam", + "methodname_flat": "SteamAPI_ISteamApps_GetLaunchQueryParam", + "params": [ + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetDlcDownloadProgress", + "methodname_flat": "SteamAPI_ISteamApps_GetDlcDownloadProgress", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" }, + { "paramname":"punBytesDownloaded", "paramtype":"uint64 *" }, + { "paramname":"punBytesTotal", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAppBuildId", + "methodname_flat": "SteamAPI_ISteamApps_GetAppBuildId", + "params": [], + "returntype": "int" + }, + { + "methodname": "RequestAllProofOfPurchaseKeys", + "methodname_flat": "SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys", + "params": [], + "returntype": "void" + }, + { + "callresult": "FileDetailsResult_t", + "methodname": "GetFileDetails", + "methodname_flat": "SteamAPI_ISteamApps_GetFileDetails", + "params": [ + { "paramname":"pszFileName", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetLaunchCommandLine", + "methodname_flat": "SteamAPI_ISteamApps_GetLaunchCommandLine", + "params": [ + { "paramname":"pszCommandLine", "paramtype":"char *" }, + { "paramname":"cubCommandLine", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "BIsSubscribedFromFamilySharing", + "methodname_flat": "SteamAPI_ISteamApps_BIsSubscribedFromFamilySharing", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsTimedTrial", + "methodname_flat": "SteamAPI_ISteamApps_BIsTimedTrial", + "params": [ + { "paramname":"punSecondsAllowed", "paramtype":"uint32 *" }, + { "paramname":"punSecondsPlayed", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetDlcContext", + "methodname_flat": "SteamAPI_ISteamApps_SetDlcContext", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMAPPS_INTERFACE_VERSION008" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamNetworking", + "name_flat": "SteamAPI_SteamNetworking_v006" + }, + { + "kind": "gameserver", + "name": "SteamGameServerNetworking", + "name_flat": "SteamAPI_SteamGameServerNetworking_v006" + } + ], + "classname": "ISteamNetworking", + "fields": [], + "methods": [ + { + "methodname": "SendP2PPacket", + "methodname_flat": "SteamAPI_ISteamNetworking_SendP2PPacket", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pubData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"uint32" }, + { "paramname":"eP2PSendType", "paramtype":"EP2PSend" }, + { "paramname":"nChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "IsP2PPacketAvailable", + "methodname_flat": "SteamAPI_ISteamNetworking_IsP2PPacketAvailable", + "params": [ + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" }, + { "paramname":"nChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "ReadP2PPacket", + "methodname_flat": "SteamAPI_ISteamNetworking_ReadP2PPacket", + "params": [ + { "paramname":"pubDest", "paramtype":"void *" }, + { "paramname":"cubDest", "paramtype":"uint32" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" }, + { "paramname":"psteamIDRemote", "paramtype":"CSteamID *" }, + { "paramname":"nChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "AcceptP2PSessionWithUser", + "methodname_flat": "SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseP2PSessionWithUser", + "methodname_flat": "SteamAPI_ISteamNetworking_CloseP2PSessionWithUser", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseP2PChannelWithUser", + "methodname_flat": "SteamAPI_ISteamNetworking_CloseP2PChannelWithUser", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"nChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetP2PSessionState", + "methodname_flat": "SteamAPI_ISteamNetworking_GetP2PSessionState", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pConnectionState", "paramtype":"P2PSessionState_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "AllowP2PPacketRelay", + "methodname_flat": "SteamAPI_ISteamNetworking_AllowP2PPacketRelay", + "params": [ + { "paramname":"bAllow", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "CreateListenSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_CreateListenSocket", + "params": [ + { "paramname":"nVirtualP2PPort", "paramtype":"int" }, + { "paramname":"nIP", "paramtype":"SteamIPAddress_t" }, + { "paramname":"nPort", "paramtype":"uint16" }, + { "paramname":"bAllowUseOfPacketRelay", "paramtype":"bool" } + ], + "returntype": "SNetListenSocket_t" + }, + { + "methodname": "CreateP2PConnectionSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_CreateP2PConnectionSocket", + "params": [ + { "paramname":"steamIDTarget", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"nVirtualPort", "paramtype":"int" }, + { "paramname":"nTimeoutSec", "paramtype":"int" }, + { "paramname":"bAllowUseOfPacketRelay", "paramtype":"bool" } + ], + "returntype": "SNetSocket_t" + }, + { + "methodname": "CreateConnectionSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_CreateConnectionSocket", + "params": [ + { "paramname":"nIP", "paramtype":"SteamIPAddress_t" }, + { "paramname":"nPort", "paramtype":"uint16" }, + { "paramname":"nTimeoutSec", "paramtype":"int" } + ], + "returntype": "SNetSocket_t" + }, + { + "methodname": "DestroySocket", + "methodname_flat": "SteamAPI_ISteamNetworking_DestroySocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"bNotifyRemoteEnd", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "DestroyListenSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_DestroyListenSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetListenSocket_t" }, + { "paramname":"bNotifyRemoteEnd", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SendDataOnSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_SendDataOnSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"pubData", "paramtype":"void *" }, + { "paramname":"cubData", "paramtype":"uint32" }, + { "paramname":"bReliable", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "IsDataAvailableOnSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_IsDataAvailableOnSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "RetrieveDataFromSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_RetrieveDataFromSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"pubDest", "paramtype":"void *" }, + { "paramname":"cubDest", "paramtype":"uint32" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "IsDataAvailable", + "methodname_flat": "SteamAPI_ISteamNetworking_IsDataAvailable", + "params": [ + { "paramname":"hListenSocket", "paramtype":"SNetListenSocket_t" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" }, + { "paramname":"phSocket", "paramtype":"SNetSocket_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "RetrieveData", + "methodname_flat": "SteamAPI_ISteamNetworking_RetrieveData", + "params": [ + { "paramname":"hListenSocket", "paramtype":"SNetListenSocket_t" }, + { "paramname":"pubDest", "paramtype":"void *" }, + { "paramname":"cubDest", "paramtype":"uint32" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" }, + { "paramname":"phSocket", "paramtype":"SNetSocket_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetSocketInfo", + "methodname_flat": "SteamAPI_ISteamNetworking_GetSocketInfo", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"pSteamIDRemote", "paramtype":"CSteamID *" }, + { "paramname":"peSocketStatus", "paramtype":"int *" }, + { "paramname":"punIPRemote", "paramtype":"SteamIPAddress_t *" }, + { "paramname":"punPortRemote", "paramtype":"uint16 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetListenSocketInfo", + "methodname_flat": "SteamAPI_ISteamNetworking_GetListenSocketInfo", + "params": [ + { "paramname":"hListenSocket", "paramtype":"SNetListenSocket_t" }, + { "paramname":"pnIP", "paramtype":"SteamIPAddress_t *" }, + { "paramname":"pnPort", "paramtype":"uint16 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetSocketConnectionType", + "methodname_flat": "SteamAPI_ISteamNetworking_GetSocketConnectionType", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" } + ], + "returntype": "ESNetSocketConnectionType" + }, + { + "methodname": "GetMaxPacketSize", + "methodname_flat": "SteamAPI_ISteamNetworking_GetMaxPacketSize", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" } + ], + "returntype": "int" + } + ], + "version_string": "SteamNetworking006" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamScreenshots", + "name_flat": "SteamAPI_SteamScreenshots_v003" + } + ], + "classname": "ISteamScreenshots", + "fields": [], + "methods": [ + { + "methodname": "WriteScreenshot", + "methodname_flat": "SteamAPI_ISteamScreenshots_WriteScreenshot", + "params": [ + { "paramname":"pubRGB", "paramtype":"void *" }, + { "paramname":"cubRGB", "paramtype":"uint32" }, + { "paramname":"nWidth", "paramtype":"int" }, + { "paramname":"nHeight", "paramtype":"int" } + ], + "returntype": "ScreenshotHandle" + }, + { + "methodname": "AddScreenshotToLibrary", + "methodname_flat": "SteamAPI_ISteamScreenshots_AddScreenshotToLibrary", + "params": [ + { "paramname":"pchFilename", "paramtype":"const char *" }, + { "paramname":"pchThumbnailFilename", "paramtype":"const char *" }, + { "paramname":"nWidth", "paramtype":"int" }, + { "paramname":"nHeight", "paramtype":"int" } + ], + "returntype": "ScreenshotHandle" + }, + { + "methodname": "TriggerScreenshot", + "methodname_flat": "SteamAPI_ISteamScreenshots_TriggerScreenshot", + "params": [], + "returntype": "void" + }, + { + "methodname": "HookScreenshots", + "methodname_flat": "SteamAPI_ISteamScreenshots_HookScreenshots", + "params": [ + { "paramname":"bHook", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SetLocation", + "methodname_flat": "SteamAPI_ISteamScreenshots_SetLocation", + "params": [ + { "paramname":"hScreenshot", "paramtype":"ScreenshotHandle" }, + { "paramname":"pchLocation", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "TagUser", + "methodname_flat": "SteamAPI_ISteamScreenshots_TagUser", + "params": [ + { "paramname":"hScreenshot", "paramtype":"ScreenshotHandle" }, + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "TagPublishedFile", + "methodname_flat": "SteamAPI_ISteamScreenshots_TagPublishedFile", + "params": [ + { "paramname":"hScreenshot", "paramtype":"ScreenshotHandle" }, + { "paramname":"unPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "IsScreenshotsHooked", + "methodname_flat": "SteamAPI_ISteamScreenshots_IsScreenshotsHooked", + "params": [], + "returntype": "bool" + }, + { + "methodname": "AddVRScreenshotToLibrary", + "methodname_flat": "SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary", + "params": [ + { "paramname":"eType", "paramtype":"EVRScreenshotType" }, + { "paramname":"pchFilename", "paramtype":"const char *" }, + { "paramname":"pchVRFilename", "paramtype":"const char *" } + ], + "returntype": "ScreenshotHandle" + } + ], + "version_string": "STEAMSCREENSHOTS_INTERFACE_VERSION003" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamMusic", + "name_flat": "SteamAPI_SteamMusic_v001" + } + ], + "classname": "ISteamMusic", + "fields": [], + "methods": [ + { + "methodname": "BIsEnabled", + "methodname_flat": "SteamAPI_ISteamMusic_BIsEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsPlaying", + "methodname_flat": "SteamAPI_ISteamMusic_BIsPlaying", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetPlaybackStatus", + "methodname_flat": "SteamAPI_ISteamMusic_GetPlaybackStatus", + "params": [], + "returntype": "AudioPlayback_Status" + }, + { + "methodname": "Play", + "methodname_flat": "SteamAPI_ISteamMusic_Play", + "params": [], + "returntype": "void" + }, + { + "methodname": "Pause", + "methodname_flat": "SteamAPI_ISteamMusic_Pause", + "params": [], + "returntype": "void" + }, + { + "methodname": "PlayPrevious", + "methodname_flat": "SteamAPI_ISteamMusic_PlayPrevious", + "params": [], + "returntype": "void" + }, + { + "methodname": "PlayNext", + "methodname_flat": "SteamAPI_ISteamMusic_PlayNext", + "params": [], + "returntype": "void" + }, + { + "methodname": "SetVolume", + "methodname_flat": "SteamAPI_ISteamMusic_SetVolume", + "params": [ + { "paramname":"flVolume", "paramtype":"float" } + ], + "returntype": "void" + }, + { + "methodname": "GetVolume", + "methodname_flat": "SteamAPI_ISteamMusic_GetVolume", + "params": [], + "returntype": "float" + } + ], + "version_string": "STEAMMUSIC_INTERFACE_VERSION001" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamMusicRemote", + "name_flat": "SteamAPI_SteamMusicRemote_v001" + } + ], + "classname": "ISteamMusicRemote", + "fields": [], + "methods": [ + { + "methodname": "RegisterSteamMusicRemote", + "methodname_flat": "SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "DeregisterSteamMusicRemote", + "methodname_flat": "SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsCurrentMusicRemote", + "methodname_flat": "SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BActivationSuccess", + "methodname_flat": "SteamAPI_ISteamMusicRemote_BActivationSuccess", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetDisplayName", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetDisplayName", + "params": [ + { "paramname":"pchDisplayName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetPNGIcon_64x64", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64", + "params": [ + { "paramname":"pvBuffer", "paramtype":"void *" }, + { "paramname":"cbBufferLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "EnablePlayPrevious", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnablePlayPrevious", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnablePlayNext", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnablePlayNext", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnableShuffled", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnableShuffled", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnableLooped", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnableLooped", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnableQueue", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnableQueue", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnablePlaylists", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnablePlaylists", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePlaybackStatus", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus", + "params": [ + { "paramname":"nStatus", "paramtype":"AudioPlayback_Status" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateShuffled", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateShuffled", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateLooped", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateLooped", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateVolume", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateVolume", + "params": [ + { "paramname":"flValue", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "CurrentEntryWillChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_CurrentEntryWillChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "CurrentEntryIsAvailable", + "methodname_flat": "SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable", + "params": [ + { "paramname":"bAvailable", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateCurrentEntryText", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText", + "params": [ + { "paramname":"pchText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateCurrentEntryElapsedSeconds", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds", + "params": [ + { "paramname":"nValue", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateCurrentEntryCoverArt", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt", + "params": [ + { "paramname":"pvBuffer", "paramtype":"void *" }, + { "paramname":"cbBufferLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "CurrentEntryDidChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_CurrentEntryDidChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "QueueWillChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_QueueWillChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "ResetQueueEntries", + "methodname_flat": "SteamAPI_ISteamMusicRemote_ResetQueueEntries", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetQueueEntry", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetQueueEntry", + "params": [ + { "paramname":"nID", "paramtype":"int" }, + { "paramname":"nPosition", "paramtype":"int" }, + { "paramname":"pchEntryText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCurrentQueueEntry", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry", + "params": [ + { "paramname":"nID", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "QueueDidChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_QueueDidChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "PlaylistWillChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_PlaylistWillChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "ResetPlaylistEntries", + "methodname_flat": "SteamAPI_ISteamMusicRemote_ResetPlaylistEntries", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetPlaylistEntry", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetPlaylistEntry", + "params": [ + { "paramname":"nID", "paramtype":"int" }, + { "paramname":"nPosition", "paramtype":"int" }, + { "paramname":"pchEntryText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCurrentPlaylistEntry", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry", + "params": [ + { "paramname":"nID", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "PlaylistDidChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_PlaylistDidChange", + "params": [], + "returntype": "bool" + } + ], + "version_string": "STEAMMUSICREMOTE_INTERFACE_VERSION001" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamHTTP", + "name_flat": "SteamAPI_SteamHTTP_v003" + }, + { + "kind": "gameserver", + "name": "SteamGameServerHTTP", + "name_flat": "SteamAPI_SteamGameServerHTTP_v003" + } + ], + "classname": "ISteamHTTP", + "fields": [], + "methods": [ + { + "methodname": "CreateHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_CreateHTTPRequest", + "params": [ + { "paramname":"eHTTPRequestMethod", "paramtype":"EHTTPMethod" }, + { "paramname":"pchAbsoluteURL", "paramtype":"const char *" } + ], + "returntype": "HTTPRequestHandle" + }, + { + "methodname": "SetHTTPRequestContextValue", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestContextValue", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"ulContextValue", "paramtype":"uint64" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestNetworkActivityTimeout", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"unTimeoutSeconds", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestHeaderValue", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchHeaderName", "paramtype":"const char *" }, + { "paramname":"pchHeaderValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestGetOrPostParameter", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchParamName", "paramtype":"const char *" }, + { "paramname":"pchParamValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SendHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_SendHTTPRequest", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pCallHandle", "paramtype":"SteamAPICall_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "SendHTTPRequestAndStreamResponse", + "methodname_flat": "SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pCallHandle", "paramtype":"SteamAPICall_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "DeferHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_DeferHTTPRequest", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "PrioritizeHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_PrioritizeHTTPRequest", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPResponseHeaderSize", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchHeaderName", "paramtype":"const char *" }, + { "paramname":"unResponseHeaderSize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPResponseHeaderValue", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchHeaderName", "paramtype":"const char *" }, + { "paramname":"pHeaderValueBuffer", "paramtype":"uint8 *" }, + { "paramname":"unBufferSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPResponseBodySize", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPResponseBodySize", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"unBodySize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPResponseBodyData", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPResponseBodyData", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pBodyDataBuffer", "paramtype":"uint8 *" }, + { "paramname":"unBufferSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPStreamingResponseBodyData", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"cOffset", "paramtype":"uint32" }, + { "paramname":"pBodyDataBuffer", "paramtype":"uint8 *" }, + { "paramname":"unBufferSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "ReleaseHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_ReleaseHTTPRequest", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPDownloadProgressPct", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pflPercentOut", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestRawPostBody", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchContentType", "paramtype":"const char *" }, + { "paramname":"pubBody", "paramtype":"uint8 *" }, + { "paramname":"unBodyLen", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "CreateCookieContainer", + "methodname_flat": "SteamAPI_ISteamHTTP_CreateCookieContainer", + "params": [ + { "paramname":"bAllowResponsesToModify", "paramtype":"bool" } + ], + "returntype": "HTTPCookieContainerHandle" + }, + { + "methodname": "ReleaseCookieContainer", + "methodname_flat": "SteamAPI_ISteamHTTP_ReleaseCookieContainer", + "params": [ + { "paramname":"hCookieContainer", "paramtype":"HTTPCookieContainerHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCookie", + "methodname_flat": "SteamAPI_ISteamHTTP_SetCookie", + "params": [ + { "paramname":"hCookieContainer", "paramtype":"HTTPCookieContainerHandle" }, + { "paramname":"pchHost", "paramtype":"const char *" }, + { "paramname":"pchUrl", "paramtype":"const char *" }, + { "paramname":"pchCookie", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestCookieContainer", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"hCookieContainer", "paramtype":"HTTPCookieContainerHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestUserAgentInfo", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchUserAgentInfo", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestRequiresVerifiedCertificate", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"bRequireVerifiedCertificate", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestAbsoluteTimeoutMS", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"unMilliseconds", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPRequestWasTimedOut", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pbWasTimedOut", "paramtype":"bool *" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMHTTP_INTERFACE_VERSION003" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamInput", + "name_flat": "SteamAPI_SteamInput_v006" + } + ], + "classname": "ISteamInput", + "fields": [], + "methods": [ + { + "methodname": "Init", + "methodname_flat": "SteamAPI_ISteamInput_Init", + "params": [ + { "paramname":"bExplicitlyCallRunFrame", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "Shutdown", + "methodname_flat": "SteamAPI_ISteamInput_Shutdown", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetInputActionManifestFilePath", + "methodname_flat": "SteamAPI_ISteamInput_SetInputActionManifestFilePath", + "params": [ + { "paramname":"pchInputActionManifestAbsolutePath", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "RunFrame", + "methodname_flat": "SteamAPI_ISteamInput_RunFrame", + "params": [ + { "paramname":"bReservedValue", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "BWaitForData", + "methodname_flat": "SteamAPI_ISteamInput_BWaitForData", + "params": [ + { "paramname":"bWaitForever", "paramtype":"bool" }, + { "paramname":"unTimeout", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "BNewDataAvailable", + "methodname_flat": "SteamAPI_ISteamInput_BNewDataAvailable", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetConnectedControllers", + "methodname_flat": "SteamAPI_ISteamInput_GetConnectedControllers", + "params": [ + { + "desc": "Receives list of connected controllers", + "out_array_count": "STEAM_INPUT_MAX_COUNT", + "paramname": "handlesOut", + "paramtype": "InputHandle_t *" + } + ], + "returntype": "int" + }, + { + "callback": "SteamInputConfigurationLoaded_t", + "methodname": "EnableDeviceCallbacks", + "methodname_flat": "SteamAPI_ISteamInput_EnableDeviceCallbacks", + "params": [], + "returntype": "void" + }, + { + "callback": "SteamInputGamepadSlotChange_t", + "methodname": "EnableActionEventCallbacks", + "methodname_flat": "SteamAPI_ISteamInput_EnableActionEventCallbacks", + "params": [ + { "paramname":"pCallback", "paramtype":"SteamInputActionEventCallbackPointer" } + ], + "returntype": "void" + }, + { + "methodname": "GetActionSetHandle", + "methodname_flat": "SteamAPI_ISteamInput_GetActionSetHandle", + "params": [ + { "paramname":"pszActionSetName", "paramtype":"const char *" } + ], + "returntype": "InputActionSetHandle_t" + }, + { + "methodname": "ActivateActionSet", + "methodname_flat": "SteamAPI_ISteamInput_ActivateActionSet", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"InputActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetCurrentActionSet", + "methodname_flat": "SteamAPI_ISteamInput_GetCurrentActionSet", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "InputActionSetHandle_t" + }, + { + "methodname": "ActivateActionSetLayer", + "methodname_flat": "SteamAPI_ISteamInput_ActivateActionSetLayer", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetLayerHandle", "paramtype":"InputActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "DeactivateActionSetLayer", + "methodname_flat": "SteamAPI_ISteamInput_DeactivateActionSetLayer", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetLayerHandle", "paramtype":"InputActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "DeactivateAllActionSetLayers", + "methodname_flat": "SteamAPI_ISteamInput_DeactivateAllActionSetLayers", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetActiveActionSetLayers", + "methodname_flat": "SteamAPI_ISteamInput_GetActiveActionSetLayers", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { + "desc": "Receives list of active layers", + "out_array_count": "STEAM_INPUT_MAX_ACTIVE_LAYERS", + "paramname": "handlesOut", + "paramtype": "InputActionSetHandle_t *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetDigitalActionHandle", + "methodname_flat": "SteamAPI_ISteamInput_GetDigitalActionHandle", + "params": [ + { "paramname":"pszActionName", "paramtype":"const char *" } + ], + "returntype": "InputDigitalActionHandle_t" + }, + { + "methodname": "GetDigitalActionData", + "methodname_flat": "SteamAPI_ISteamInput_GetDigitalActionData", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"digitalActionHandle", "paramtype":"InputDigitalActionHandle_t" } + ], + "returntype": "InputDigitalActionData_t" + }, + { + "methodname": "GetDigitalActionOrigins", + "methodname_flat": "SteamAPI_ISteamInput_GetDigitalActionOrigins", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"InputActionSetHandle_t" }, + { "paramname":"digitalActionHandle", "paramtype":"InputDigitalActionHandle_t" }, + { + "desc": "Receives list of action origins", + "out_array_count": "STEAM_INPUT_MAX_ORIGINS", + "paramname": "originsOut", + "paramtype": "EInputActionOrigin *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetStringForDigitalActionName", + "methodname_flat": "SteamAPI_ISteamInput_GetStringForDigitalActionName", + "params": [ + { "paramname":"eActionHandle", "paramtype":"InputDigitalActionHandle_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetAnalogActionHandle", + "methodname_flat": "SteamAPI_ISteamInput_GetAnalogActionHandle", + "params": [ + { "paramname":"pszActionName", "paramtype":"const char *" } + ], + "returntype": "InputAnalogActionHandle_t" + }, + { + "methodname": "GetAnalogActionData", + "methodname_flat": "SteamAPI_ISteamInput_GetAnalogActionData", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"analogActionHandle", "paramtype":"InputAnalogActionHandle_t" } + ], + "returntype": "InputAnalogActionData_t" + }, + { + "methodname": "GetAnalogActionOrigins", + "methodname_flat": "SteamAPI_ISteamInput_GetAnalogActionOrigins", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"InputActionSetHandle_t" }, + { "paramname":"analogActionHandle", "paramtype":"InputAnalogActionHandle_t" }, + { + "desc": "Receives list of action origins", + "out_array_count": "STEAM_INPUT_MAX_ORIGINS", + "paramname": "originsOut", + "paramtype": "EInputActionOrigin *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetGlyphPNGForActionOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetGlyphPNGForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EInputActionOrigin" }, + { "paramname":"eSize", "paramtype":"ESteamInputGlyphSize" }, + { "paramname":"unFlags", "paramtype":"uint32" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetGlyphSVGForActionOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetGlyphSVGForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EInputActionOrigin" }, + { "paramname":"unFlags", "paramtype":"uint32" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetGlyphForActionOrigin_Legacy", + "methodname_flat": "SteamAPI_ISteamInput_GetGlyphForActionOrigin_Legacy", + "params": [ + { "paramname":"eOrigin", "paramtype":"EInputActionOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetStringForActionOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetStringForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EInputActionOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetStringForAnalogActionName", + "methodname_flat": "SteamAPI_ISteamInput_GetStringForAnalogActionName", + "params": [ + { "paramname":"eActionHandle", "paramtype":"InputAnalogActionHandle_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "StopAnalogActionMomentum", + "methodname_flat": "SteamAPI_ISteamInput_StopAnalogActionMomentum", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eAction", "paramtype":"InputAnalogActionHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetMotionData", + "methodname_flat": "SteamAPI_ISteamInput_GetMotionData", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "InputMotionData_t" + }, + { + "methodname": "TriggerVibration", + "methodname_flat": "SteamAPI_ISteamInput_TriggerVibration", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"usLeftSpeed", "paramtype":"unsigned short" }, + { "paramname":"usRightSpeed", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "TriggerVibrationExtended", + "methodname_flat": "SteamAPI_ISteamInput_TriggerVibrationExtended", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"usLeftSpeed", "paramtype":"unsigned short" }, + { "paramname":"usRightSpeed", "paramtype":"unsigned short" }, + { "paramname":"usLeftTriggerSpeed", "paramtype":"unsigned short" }, + { "paramname":"usRightTriggerSpeed", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "TriggerSimpleHapticEvent", + "methodname_flat": "SteamAPI_ISteamInput_TriggerSimpleHapticEvent", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eHapticLocation", "paramtype":"EControllerHapticLocation" }, + { "paramname":"nIntensity", "paramtype":"uint8" }, + { "paramname":"nGainDB", "paramtype":"char" }, + { "paramname":"nOtherIntensity", "paramtype":"uint8" }, + { "paramname":"nOtherGainDB", "paramtype":"char" } + ], + "returntype": "void" + }, + { + "methodname": "SetLEDColor", + "methodname_flat": "SteamAPI_ISteamInput_SetLEDColor", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"nColorR", "paramtype":"uint8" }, + { "paramname":"nColorG", "paramtype":"uint8" }, + { "paramname":"nColorB", "paramtype":"uint8" }, + { "paramname":"nFlags", "paramtype":"unsigned int" } + ], + "returntype": "void" + }, + { + "methodname": "Legacy_TriggerHapticPulse", + "methodname_flat": "SteamAPI_ISteamInput_Legacy_TriggerHapticPulse", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eTargetPad", "paramtype":"ESteamControllerPad" }, + { "paramname":"usDurationMicroSec", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "Legacy_TriggerRepeatedHapticPulse", + "methodname_flat": "SteamAPI_ISteamInput_Legacy_TriggerRepeatedHapticPulse", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eTargetPad", "paramtype":"ESteamControllerPad" }, + { "paramname":"usDurationMicroSec", "paramtype":"unsigned short" }, + { "paramname":"usOffMicroSec", "paramtype":"unsigned short" }, + { "paramname":"unRepeat", "paramtype":"unsigned short" }, + { "paramname":"nFlags", "paramtype":"unsigned int" } + ], + "returntype": "void" + }, + { + "methodname": "ShowBindingPanel", + "methodname_flat": "SteamAPI_ISteamInput_ShowBindingPanel", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetInputTypeForHandle", + "methodname_flat": "SteamAPI_ISteamInput_GetInputTypeForHandle", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "ESteamInputType" + }, + { + "methodname": "GetControllerForGamepadIndex", + "methodname_flat": "SteamAPI_ISteamInput_GetControllerForGamepadIndex", + "params": [ + { "paramname":"nIndex", "paramtype":"int" } + ], + "returntype": "InputHandle_t" + }, + { + "methodname": "GetGamepadIndexForController", + "methodname_flat": "SteamAPI_ISteamInput_GetGamepadIndexForController", + "params": [ + { "paramname":"ulinputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetStringForXboxOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetStringForXboxOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetGlyphForXboxOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetGlyphForXboxOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetActionOriginFromXboxOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetActionOriginFromXboxOrigin", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "EInputActionOrigin" + }, + { + "methodname": "TranslateActionOrigin", + "methodname_flat": "SteamAPI_ISteamInput_TranslateActionOrigin", + "params": [ + { "paramname":"eDestinationInputType", "paramtype":"ESteamInputType" }, + { "paramname":"eSourceOrigin", "paramtype":"EInputActionOrigin" } + ], + "returntype": "EInputActionOrigin" + }, + { + "methodname": "GetDeviceBindingRevision", + "methodname_flat": "SteamAPI_ISteamInput_GetDeviceBindingRevision", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"pMajor", "paramtype":"int *" }, + { "paramname":"pMinor", "paramtype":"int *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetRemotePlaySessionID", + "methodname_flat": "SteamAPI_ISteamInput_GetRemotePlaySessionID", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetSessionInputConfigurationSettings", + "methodname_flat": "SteamAPI_ISteamInput_GetSessionInputConfigurationSettings", + "params": [], + "returntype": "uint16" + }, + { + "methodname": "SetDualSenseTriggerEffect", + "methodname_flat": "SteamAPI_ISteamInput_SetDualSenseTriggerEffect", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"pParam", "paramtype":"const ScePadTriggerEffectParam *" } + ], + "returntype": "void" + } + ], + "version_string": "SteamInput006" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamController", + "name_flat": "SteamAPI_SteamController_v008" + } + ], + "classname": "ISteamController", + "fields": [], + "methods": [ + { + "methodname": "Init", + "methodname_flat": "SteamAPI_ISteamController_Init", + "params": [], + "returntype": "bool" + }, + { + "methodname": "Shutdown", + "methodname_flat": "SteamAPI_ISteamController_Shutdown", + "params": [], + "returntype": "bool" + }, + { + "methodname": "RunFrame", + "methodname_flat": "SteamAPI_ISteamController_RunFrame", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetConnectedControllers", + "methodname_flat": "SteamAPI_ISteamController_GetConnectedControllers", + "params": [ + { + "desc": "Receives list of connected controllers", + "out_array_count": "STEAM_CONTROLLER_MAX_COUNT", + "paramname": "handlesOut", + "paramtype": "ControllerHandle_t *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetActionSetHandle", + "methodname_flat": "SteamAPI_ISteamController_GetActionSetHandle", + "params": [ + { "paramname":"pszActionSetName", "paramtype":"const char *" } + ], + "returntype": "ControllerActionSetHandle_t" + }, + { + "methodname": "ActivateActionSet", + "methodname_flat": "SteamAPI_ISteamController_ActivateActionSet", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"ControllerActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetCurrentActionSet", + "methodname_flat": "SteamAPI_ISteamController_GetCurrentActionSet", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "ControllerActionSetHandle_t" + }, + { + "methodname": "ActivateActionSetLayer", + "methodname_flat": "SteamAPI_ISteamController_ActivateActionSetLayer", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetLayerHandle", "paramtype":"ControllerActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "DeactivateActionSetLayer", + "methodname_flat": "SteamAPI_ISteamController_DeactivateActionSetLayer", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetLayerHandle", "paramtype":"ControllerActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "DeactivateAllActionSetLayers", + "methodname_flat": "SteamAPI_ISteamController_DeactivateAllActionSetLayers", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetActiveActionSetLayers", + "methodname_flat": "SteamAPI_ISteamController_GetActiveActionSetLayers", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { + "desc": "Receives list of active layers", + "out_array_count": "STEAM_CONTROLLER_MAX_ACTIVE_LAYERS", + "paramname": "handlesOut", + "paramtype": "ControllerActionSetHandle_t *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetDigitalActionHandle", + "methodname_flat": "SteamAPI_ISteamController_GetDigitalActionHandle", + "params": [ + { "paramname":"pszActionName", "paramtype":"const char *" } + ], + "returntype": "ControllerDigitalActionHandle_t" + }, + { + "methodname": "GetDigitalActionData", + "methodname_flat": "SteamAPI_ISteamController_GetDigitalActionData", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"digitalActionHandle", "paramtype":"ControllerDigitalActionHandle_t" } + ], + "returntype": "InputDigitalActionData_t" + }, + { + "methodname": "GetDigitalActionOrigins", + "methodname_flat": "SteamAPI_ISteamController_GetDigitalActionOrigins", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"ControllerActionSetHandle_t" }, + { "paramname":"digitalActionHandle", "paramtype":"ControllerDigitalActionHandle_t" }, + { + "desc": "Receives list of aciton origins", + "out_array_count": "STEAM_CONTROLLER_MAX_ORIGINS", + "paramname": "originsOut", + "paramtype": "EControllerActionOrigin *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetAnalogActionHandle", + "methodname_flat": "SteamAPI_ISteamController_GetAnalogActionHandle", + "params": [ + { "paramname":"pszActionName", "paramtype":"const char *" } + ], + "returntype": "ControllerAnalogActionHandle_t" + }, + { + "methodname": "GetAnalogActionData", + "methodname_flat": "SteamAPI_ISteamController_GetAnalogActionData", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"analogActionHandle", "paramtype":"ControllerAnalogActionHandle_t" } + ], + "returntype": "InputAnalogActionData_t" + }, + { + "methodname": "GetAnalogActionOrigins", + "methodname_flat": "SteamAPI_ISteamController_GetAnalogActionOrigins", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"ControllerActionSetHandle_t" }, + { "paramname":"analogActionHandle", "paramtype":"ControllerAnalogActionHandle_t" }, + { + "desc": "Receives list of action origins", + "out_array_count": "STEAM_CONTROLLER_MAX_ORIGINS", + "paramname": "originsOut", + "paramtype": "EControllerActionOrigin *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetGlyphForActionOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetGlyphForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EControllerActionOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetStringForActionOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetStringForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EControllerActionOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "StopAnalogActionMomentum", + "methodname_flat": "SteamAPI_ISteamController_StopAnalogActionMomentum", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"eAction", "paramtype":"ControllerAnalogActionHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetMotionData", + "methodname_flat": "SteamAPI_ISteamController_GetMotionData", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "InputMotionData_t" + }, + { + "methodname": "TriggerHapticPulse", + "methodname_flat": "SteamAPI_ISteamController_TriggerHapticPulse", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"eTargetPad", "paramtype":"ESteamControllerPad" }, + { "paramname":"usDurationMicroSec", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "TriggerRepeatedHapticPulse", + "methodname_flat": "SteamAPI_ISteamController_TriggerRepeatedHapticPulse", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"eTargetPad", "paramtype":"ESteamControllerPad" }, + { "paramname":"usDurationMicroSec", "paramtype":"unsigned short" }, + { "paramname":"usOffMicroSec", "paramtype":"unsigned short" }, + { "paramname":"unRepeat", "paramtype":"unsigned short" }, + { "paramname":"nFlags", "paramtype":"unsigned int" } + ], + "returntype": "void" + }, + { + "methodname": "TriggerVibration", + "methodname_flat": "SteamAPI_ISteamController_TriggerVibration", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"usLeftSpeed", "paramtype":"unsigned short" }, + { "paramname":"usRightSpeed", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "SetLEDColor", + "methodname_flat": "SteamAPI_ISteamController_SetLEDColor", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"nColorR", "paramtype":"uint8" }, + { "paramname":"nColorG", "paramtype":"uint8" }, + { "paramname":"nColorB", "paramtype":"uint8" }, + { "paramname":"nFlags", "paramtype":"unsigned int" } + ], + "returntype": "void" + }, + { + "methodname": "ShowBindingPanel", + "methodname_flat": "SteamAPI_ISteamController_ShowBindingPanel", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetInputTypeForHandle", + "methodname_flat": "SteamAPI_ISteamController_GetInputTypeForHandle", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "ESteamInputType" + }, + { + "methodname": "GetControllerForGamepadIndex", + "methodname_flat": "SteamAPI_ISteamController_GetControllerForGamepadIndex", + "params": [ + { "paramname":"nIndex", "paramtype":"int" } + ], + "returntype": "ControllerHandle_t" + }, + { + "methodname": "GetGamepadIndexForController", + "methodname_flat": "SteamAPI_ISteamController_GetGamepadIndexForController", + "params": [ + { "paramname":"ulControllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetStringForXboxOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetStringForXboxOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetGlyphForXboxOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetGlyphForXboxOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetActionOriginFromXboxOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetActionOriginFromXboxOrigin", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "EControllerActionOrigin" + }, + { + "methodname": "TranslateActionOrigin", + "methodname_flat": "SteamAPI_ISteamController_TranslateActionOrigin", + "params": [ + { "paramname":"eDestinationInputType", "paramtype":"ESteamInputType" }, + { "paramname":"eSourceOrigin", "paramtype":"EControllerActionOrigin" } + ], + "returntype": "EControllerActionOrigin" + }, + { + "methodname": "GetControllerBindingRevision", + "methodname_flat": "SteamAPI_ISteamController_GetControllerBindingRevision", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"pMajor", "paramtype":"int *" }, + { "paramname":"pMinor", "paramtype":"int *" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamController008" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamUGC", + "name_flat": "SteamAPI_SteamUGC_v018" + }, + { + "kind": "gameserver", + "name": "SteamGameServerUGC", + "name_flat": "SteamAPI_SteamGameServerUGC_v018" + } + ], + "classname": "ISteamUGC", + "fields": [], + "methods": [ + { + "methodname": "CreateQueryUserUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_CreateQueryUserUGCRequest", + "params": [ + { "paramname":"unAccountID", "paramtype":"AccountID_t" }, + { "paramname":"eListType", "paramtype":"EUserUGCList" }, + { "paramname":"eMatchingUGCType", "paramtype":"EUGCMatchingUGCType" }, + { "paramname":"eSortOrder", "paramtype":"EUserUGCListSortOrder" }, + { "paramname":"nCreatorAppID", "paramtype":"AppId_t" }, + { "paramname":"nConsumerAppID", "paramtype":"AppId_t" }, + { "paramname":"unPage", "paramtype":"uint32" } + ], + "returntype": "UGCQueryHandle_t" + }, + { + "methodname": "CreateQueryAllUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage", + "params": [ + { "paramname":"eQueryType", "paramtype":"EUGCQuery" }, + { "paramname":"eMatchingeMatchingUGCTypeFileType", "paramtype":"EUGCMatchingUGCType" }, + { "paramname":"nCreatorAppID", "paramtype":"AppId_t" }, + { "paramname":"nConsumerAppID", "paramtype":"AppId_t" }, + { "paramname":"unPage", "paramtype":"uint32" } + ], + "returntype": "UGCQueryHandle_t" + }, + { + "methodname": "CreateQueryAllUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor", + "params": [ + { "paramname":"eQueryType", "paramtype":"EUGCQuery" }, + { "paramname":"eMatchingeMatchingUGCTypeFileType", "paramtype":"EUGCMatchingUGCType" }, + { "paramname":"nCreatorAppID", "paramtype":"AppId_t" }, + { "paramname":"nConsumerAppID", "paramtype":"AppId_t" }, + { "paramname":"pchCursor", "paramtype":"const char *" } + ], + "returntype": "UGCQueryHandle_t" + }, + { + "methodname": "CreateQueryUGCDetailsRequest", + "methodname_flat": "SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest", + "params": [ + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"unNumPublishedFileIDs", "paramtype":"uint32" } + ], + "returntype": "UGCQueryHandle_t" + }, + { + "callresult": "SteamUGCQueryCompleted_t", + "methodname": "SendQueryUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_SendQueryUGCRequest", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetQueryUGCResult", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCResult", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pDetails", "paramtype":"SteamUGCDetails_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCNumTags", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCNumTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetQueryUGCTag", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"indexTag", "paramtype":"uint32" }, + { + "out_string_count": "cchValueSize", + "paramname": "pchValue", + "paramtype": "char *" + }, + { "paramname":"cchValueSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCTagDisplayName", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"indexTag", "paramtype":"uint32" }, + { + "out_string_count": "cchValueSize", + "paramname": "pchValue", + "paramtype": "char *" + }, + { "paramname":"cchValueSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCPreviewURL", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCPreviewURL", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { + "out_string_count": "cchURLSize", + "paramname": "pchURL", + "paramtype": "char *" + }, + { "paramname":"cchURLSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCMetadata", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCMetadata", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { + "out_string_count": "cchMetadatasize", + "paramname": "pchMetadata", + "paramtype": "char *" + }, + { "paramname":"cchMetadatasize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCChildren", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCChildren", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCStatistic", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCStatistic", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"eStatType", "paramtype":"EItemStatistic" }, + { "paramname":"pStatValue", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCNumAdditionalPreviews", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetQueryUGCAdditionalPreview", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"previewIndex", "paramtype":"uint32" }, + { + "out_string_count": "cchURLSize", + "paramname": "pchURLOrVideoID", + "paramtype": "char *" + }, + { "paramname":"cchURLSize", "paramtype":"uint32" }, + { + "out_string_count": "cchURLSize", + "paramname": "pchOriginalFileName", + "paramtype": "char *" + }, + { "paramname":"cchOriginalFileNameSize", "paramtype":"uint32" }, + { "paramname":"pPreviewType", "paramtype":"EItemPreviewType *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCNumKeyValueTags", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetQueryUGCKeyValueTag", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"keyValueTagIndex", "paramtype":"uint32" }, + { + "out_string_count": "cchKeySize", + "paramname": "pchKey", + "paramtype": "char *" + }, + { "paramname":"cchKeySize", "paramtype":"uint32" }, + { + "out_string_count": "cchValueSize", + "paramname": "pchValue", + "paramtype": "char *" + }, + { "paramname":"cchValueSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCKeyValueTag", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryFirstUGCKeyValueTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { + "out_string_count": "cchValueSize", + "paramname": "pchValue", + "paramtype": "char *" + }, + { "paramname":"cchValueSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCContentDescriptors", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCContentDescriptors", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pvecDescriptors", "paramtype":"EUGCContentDescriptorID *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "ReleaseQueryUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_ReleaseQueryUGCRequest", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "AddRequiredTag", + "methodname_flat": "SteamAPI_ISteamUGC_AddRequiredTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pTagName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddRequiredTagGroup", + "methodname_flat": "SteamAPI_ISteamUGC_AddRequiredTagGroup", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pTagGroups", "paramtype":"const SteamParamStringArray_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddExcludedTag", + "methodname_flat": "SteamAPI_ISteamUGC_AddExcludedTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pTagName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnOnlyIDs", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnOnlyIDs", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnOnlyIDs", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnKeyValueTags", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnKeyValueTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnKeyValueTags", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnLongDescription", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnLongDescription", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnLongDescription", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnMetadata", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnMetadata", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnMetadata", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnChildren", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnChildren", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnChildren", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnAdditionalPreviews", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnAdditionalPreviews", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnAdditionalPreviews", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnTotalOnly", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnTotalOnly", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnTotalOnly", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnPlaytimeStats", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnPlaytimeStats", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"unDays", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetLanguage", + "methodname_flat": "SteamAPI_ISteamUGC_SetLanguage", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pchLanguage", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetAllowCachedResponse", + "methodname_flat": "SteamAPI_ISteamUGC_SetAllowCachedResponse", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"unMaxAgeSeconds", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCloudFileNameFilter", + "methodname_flat": "SteamAPI_ISteamUGC_SetCloudFileNameFilter", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pMatchCloudFileName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetMatchAnyTag", + "methodname_flat": "SteamAPI_ISteamUGC_SetMatchAnyTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bMatchAnyTag", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetSearchText", + "methodname_flat": "SteamAPI_ISteamUGC_SetSearchText", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pSearchText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetRankedByTrendDays", + "methodname_flat": "SteamAPI_ISteamUGC_SetRankedByTrendDays", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"unDays", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetTimeCreatedDateRange", + "methodname_flat": "SteamAPI_ISteamUGC_SetTimeCreatedDateRange", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"rtStart", "paramtype":"RTime32" }, + { "paramname":"rtEnd", "paramtype":"RTime32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetTimeUpdatedDateRange", + "methodname_flat": "SteamAPI_ISteamUGC_SetTimeUpdatedDateRange", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"rtStart", "paramtype":"RTime32" }, + { "paramname":"rtEnd", "paramtype":"RTime32" } + ], + "returntype": "bool" + }, + { + "methodname": "AddRequiredKeyValueTag", + "methodname_flat": "SteamAPI_ISteamUGC_AddRequiredKeyValueTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pKey", "paramtype":"const char *" }, + { "paramname":"pValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "callresult": "SteamUGCRequestUGCDetailsResult_t", + "methodname": "RequestUGCDetails", + "methodname_flat": "SteamAPI_ISteamUGC_RequestUGCDetails", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"unMaxAgeSeconds", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "CreateItemResult_t", + "methodname": "CreateItem", + "methodname_flat": "SteamAPI_ISteamUGC_CreateItem", + "params": [ + { "paramname":"nConsumerAppId", "paramtype":"AppId_t" }, + { "paramname":"eFileType", "paramtype":"EWorkshopFileType" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "StartItemUpdate", + "methodname_flat": "SteamAPI_ISteamUGC_StartItemUpdate", + "params": [ + { "paramname":"nConsumerAppId", "paramtype":"AppId_t" }, + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "UGCUpdateHandle_t" + }, + { + "methodname": "SetItemTitle", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemTitle", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchTitle", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemDescription", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemDescription", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchDescription", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemUpdateLanguage", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemUpdateLanguage", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchLanguage", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemMetadata", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemMetadata", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchMetaData", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemVisibility", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemVisibility", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"eVisibility", "paramtype":"ERemoteStoragePublishedFileVisibility" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemTags", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemTags", + "params": [ + { "paramname":"updateHandle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pTags", "paramtype":"const SteamParamStringArray_t *" }, + { "paramname":"bAllowAdminTags", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemContent", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemContent", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pszContentFolder", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemPreview", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemPreview", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pszPreviewFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetAllowLegacyUpload", + "methodname_flat": "SteamAPI_ISteamUGC_SetAllowLegacyUpload", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"bAllowLegacyUpload", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveAllItemKeyValueTags", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveItemKeyValueTags", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveItemKeyValueTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddItemKeyValueTag", + "methodname_flat": "SteamAPI_ISteamUGC_AddItemKeyValueTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddItemPreviewFile", + "methodname_flat": "SteamAPI_ISteamUGC_AddItemPreviewFile", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pszPreviewFile", "paramtype":"const char *" }, + { "paramname":"type", "paramtype":"EItemPreviewType" } + ], + "returntype": "bool" + }, + { + "methodname": "AddItemPreviewVideo", + "methodname_flat": "SteamAPI_ISteamUGC_AddItemPreviewVideo", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pszVideoID", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateItemPreviewFile", + "methodname_flat": "SteamAPI_ISteamUGC_UpdateItemPreviewFile", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pszPreviewFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateItemPreviewVideo", + "methodname_flat": "SteamAPI_ISteamUGC_UpdateItemPreviewVideo", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pszVideoID", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveItemPreview", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveItemPreview", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"index", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "AddContentDescriptor", + "methodname_flat": "SteamAPI_ISteamUGC_AddContentDescriptor", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"descid", "paramtype":"EUGCContentDescriptorID" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveContentDescriptor", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveContentDescriptor", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"descid", "paramtype":"EUGCContentDescriptorID" } + ], + "returntype": "bool" + }, + { + "callresult": "SubmitItemUpdateResult_t", + "methodname": "SubmitItemUpdate", + "methodname_flat": "SteamAPI_ISteamUGC_SubmitItemUpdate", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchChangeNote", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetItemUpdateProgress", + "methodname_flat": "SteamAPI_ISteamUGC_GetItemUpdateProgress", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"punBytesProcessed", "paramtype":"uint64 *" }, + { "paramname":"punBytesTotal", "paramtype":"uint64 *" } + ], + "returntype": "EItemUpdateStatus" + }, + { + "callresult": "SetUserItemVoteResult_t", + "methodname": "SetUserItemVote", + "methodname_flat": "SteamAPI_ISteamUGC_SetUserItemVote", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"bVoteUp", "paramtype":"bool" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "GetUserItemVoteResult_t", + "methodname": "GetUserItemVote", + "methodname_flat": "SteamAPI_ISteamUGC_GetUserItemVote", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "UserFavoriteItemsListChanged_t", + "methodname": "AddItemToFavorites", + "methodname_flat": "SteamAPI_ISteamUGC_AddItemToFavorites", + "params": [ + { "paramname":"nAppId", "paramtype":"AppId_t" }, + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "UserFavoriteItemsListChanged_t", + "methodname": "RemoveItemFromFavorites", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveItemFromFavorites", + "params": [ + { "paramname":"nAppId", "paramtype":"AppId_t" }, + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageSubscribePublishedFileResult_t", + "methodname": "SubscribeItem", + "methodname_flat": "SteamAPI_ISteamUGC_SubscribeItem", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageUnsubscribePublishedFileResult_t", + "methodname": "UnsubscribeItem", + "methodname_flat": "SteamAPI_ISteamUGC_UnsubscribeItem", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetNumSubscribedItems", + "methodname_flat": "SteamAPI_ISteamUGC_GetNumSubscribedItems", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetSubscribedItems", + "methodname_flat": "SteamAPI_ISteamUGC_GetSubscribedItems", + "params": [ + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetItemState", + "methodname_flat": "SteamAPI_ISteamUGC_GetItemState", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetItemInstallInfo", + "methodname_flat": "SteamAPI_ISteamUGC_GetItemInstallInfo", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"punSizeOnDisk", "paramtype":"uint64 *" }, + { + "out_string_count": "cchFolderSize", + "paramname": "pchFolder", + "paramtype": "char *" + }, + { "paramname":"cchFolderSize", "paramtype":"uint32" }, + { "paramname":"punTimeStamp", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetItemDownloadInfo", + "methodname_flat": "SteamAPI_ISteamUGC_GetItemDownloadInfo", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"punBytesDownloaded", "paramtype":"uint64 *" }, + { "paramname":"punBytesTotal", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "DownloadItem", + "methodname_flat": "SteamAPI_ISteamUGC_DownloadItem", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"bHighPriority", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "BInitWorkshopForGameServer", + "methodname_flat": "SteamAPI_ISteamUGC_BInitWorkshopForGameServer", + "params": [ + { "paramname":"unWorkshopDepotID", "paramtype":"DepotId_t" }, + { "paramname":"pszFolder", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SuspendDownloads", + "methodname_flat": "SteamAPI_ISteamUGC_SuspendDownloads", + "params": [ + { "paramname":"bSuspend", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "callresult": "StartPlaytimeTrackingResult_t", + "methodname": "StartPlaytimeTracking", + "methodname_flat": "SteamAPI_ISteamUGC_StartPlaytimeTracking", + "params": [ + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"unNumPublishedFileIDs", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "StopPlaytimeTrackingResult_t", + "methodname": "StopPlaytimeTracking", + "methodname_flat": "SteamAPI_ISteamUGC_StopPlaytimeTracking", + "params": [ + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"unNumPublishedFileIDs", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "StopPlaytimeTrackingResult_t", + "methodname": "StopPlaytimeTrackingForAllItems", + "methodname_flat": "SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "AddUGCDependencyResult_t", + "methodname": "AddDependency", + "methodname_flat": "SteamAPI_ISteamUGC_AddDependency", + "params": [ + { "paramname":"nParentPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"nChildPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoveUGCDependencyResult_t", + "methodname": "RemoveDependency", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveDependency", + "params": [ + { "paramname":"nParentPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"nChildPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "AddAppDependencyResult_t", + "methodname": "AddAppDependency", + "methodname_flat": "SteamAPI_ISteamUGC_AddAppDependency", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoveAppDependencyResult_t", + "methodname": "RemoveAppDependency", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveAppDependency", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "GetAppDependenciesResult_t", + "methodname": "GetAppDependencies", + "methodname_flat": "SteamAPI_ISteamUGC_GetAppDependencies", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "DeleteItemResult_t", + "methodname": "DeleteItem", + "methodname_flat": "SteamAPI_ISteamUGC_DeleteItem", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "ShowWorkshopEULA", + "methodname_flat": "SteamAPI_ISteamUGC_ShowWorkshopEULA", + "params": [], + "returntype": "bool" + }, + { + "callresult": "WorkshopEULAStatus_t", + "methodname": "GetWorkshopEULAStatus", + "methodname_flat": "SteamAPI_ISteamUGC_GetWorkshopEULAStatus", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetUserContentDescriptorPreferences", + "methodname_flat": "SteamAPI_ISteamUGC_GetUserContentDescriptorPreferences", + "params": [ + { "paramname":"pvecDescriptors", "paramtype":"EUGCContentDescriptorID *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "uint32" + } + ], + "version_string": "STEAMUGC_INTERFACE_VERSION018" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamHTMLSurface", + "name_flat": "SteamAPI_SteamHTMLSurface_v005" + } + ], + "classname": "ISteamHTMLSurface", + "enums": [ + { + "enumname": "EHTMLMouseButton", + "fqname": "ISteamHTMLSurface::EHTMLMouseButton", + "values": [ + { "name":"eHTMLMouseButton_Left", "value":"0" }, + { "name":"eHTMLMouseButton_Right", "value":"1" }, + { "name":"eHTMLMouseButton_Middle", "value":"2" } + ] + }, + { + "enumname": "EMouseCursor", + "fqname": "ISteamHTMLSurface::EMouseCursor", + "values": [ + { "name":"dc_user", "value":"0" }, + { "name":"dc_none", "value":"1" }, + { "name":"dc_arrow", "value":"2" }, + { "name":"dc_ibeam", "value":"3" }, + { "name":"dc_hourglass", "value":"4" }, + { "name":"dc_waitarrow", "value":"5" }, + { "name":"dc_crosshair", "value":"6" }, + { "name":"dc_up", "value":"7" }, + { "name":"dc_sizenw", "value":"8" }, + { "name":"dc_sizese", "value":"9" }, + { "name":"dc_sizene", "value":"10" }, + { "name":"dc_sizesw", "value":"11" }, + { "name":"dc_sizew", "value":"12" }, + { "name":"dc_sizee", "value":"13" }, + { "name":"dc_sizen", "value":"14" }, + { "name":"dc_sizes", "value":"15" }, + { "name":"dc_sizewe", "value":"16" }, + { "name":"dc_sizens", "value":"17" }, + { "name":"dc_sizeall", "value":"18" }, + { "name":"dc_no", "value":"19" }, + { "name":"dc_hand", "value":"20" }, + { "name":"dc_blank", "value":"21" }, + { "name":"dc_middle_pan", "value":"22" }, + { "name":"dc_north_pan", "value":"23" }, + { "name":"dc_north_east_pan", "value":"24" }, + { "name":"dc_east_pan", "value":"25" }, + { "name":"dc_south_east_pan", "value":"26" }, + { "name":"dc_south_pan", "value":"27" }, + { "name":"dc_south_west_pan", "value":"28" }, + { "name":"dc_west_pan", "value":"29" }, + { "name":"dc_north_west_pan", "value":"30" }, + { "name":"dc_alias", "value":"31" }, + { "name":"dc_cell", "value":"32" }, + { "name":"dc_colresize", "value":"33" }, + { "name":"dc_copycur", "value":"34" }, + { "name":"dc_verticaltext", "value":"35" }, + { "name":"dc_rowresize", "value":"36" }, + { "name":"dc_zoomin", "value":"37" }, + { "name":"dc_zoomout", "value":"38" }, + { "name":"dc_help", "value":"39" }, + { "name":"dc_custom", "value":"40" }, + { "name":"dc_last", "value":"41" } + ] + }, + { + "enumname": "EHTMLKeyModifiers", + "fqname": "ISteamHTMLSurface::EHTMLKeyModifiers", + "values": [ + { "name":"k_eHTMLKeyModifier_None", "value":"0" }, + { "name":"k_eHTMLKeyModifier_AltDown", "value":"1" }, + { "name":"k_eHTMLKeyModifier_CtrlDown", "value":"2" }, + { "name":"k_eHTMLKeyModifier_ShiftDown", "value":"4" } + ] + } + ], + "fields": [], + "methods": [ + { + "methodname": "Init", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_Init", + "params": [], + "returntype": "bool" + }, + { + "methodname": "Shutdown", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_Shutdown", + "params": [], + "returntype": "bool" + }, + { + "callresult": "HTML_BrowserReady_t", + "methodname": "CreateBrowser", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_CreateBrowser", + "params": [ + { "paramname":"pchUserAgent", "paramtype":"const char *" }, + { "paramname":"pchUserCSS", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "RemoveBrowser", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_RemoveBrowser", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "LoadURL", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_LoadURL", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchURL", "paramtype":"const char *" }, + { "paramname":"pchPostData", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetSize", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetSize", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"unWidth", "paramtype":"uint32" }, + { "paramname":"unHeight", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "StopLoad", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_StopLoad", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "Reload", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_Reload", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "GoBack", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_GoBack", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "GoForward", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_GoForward", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "AddHeader", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_AddHeader", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "ExecuteJavascript", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_ExecuteJavascript", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchScript", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "MouseUp", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseUp", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"eMouseButton", "paramtype":"ISteamHTMLSurface::EHTMLMouseButton" } + ], + "returntype": "void" + }, + { + "methodname": "MouseDown", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseDown", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"eMouseButton", "paramtype":"ISteamHTMLSurface::EHTMLMouseButton" } + ], + "returntype": "void" + }, + { + "methodname": "MouseDoubleClick", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseDoubleClick", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"eMouseButton", "paramtype":"ISteamHTMLSurface::EHTMLMouseButton" } + ], + "returntype": "void" + }, + { + "methodname": "MouseMove", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseMove", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"x", "paramtype":"int" }, + { "paramname":"y", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "MouseWheel", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseWheel", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nDelta", "paramtype":"int32" } + ], + "returntype": "void" + }, + { + "methodname": "KeyDown", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_KeyDown", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nNativeKeyCode", "paramtype":"uint32" }, + { "paramname":"eHTMLKeyModifiers", "paramtype":"ISteamHTMLSurface::EHTMLKeyModifiers" }, + { "paramname":"bIsSystemKey", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "KeyUp", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_KeyUp", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nNativeKeyCode", "paramtype":"uint32" }, + { "paramname":"eHTMLKeyModifiers", "paramtype":"ISteamHTMLSurface::EHTMLKeyModifiers" } + ], + "returntype": "void" + }, + { + "methodname": "KeyChar", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_KeyChar", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"cUnicodeChar", "paramtype":"uint32" }, + { "paramname":"eHTMLKeyModifiers", "paramtype":"ISteamHTMLSurface::EHTMLKeyModifiers" } + ], + "returntype": "void" + }, + { + "methodname": "SetHorizontalScroll", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetHorizontalScroll", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nAbsolutePixelScroll", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "SetVerticalScroll", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetVerticalScroll", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nAbsolutePixelScroll", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "SetKeyFocus", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetKeyFocus", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"bHasKeyFocus", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "ViewSource", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_ViewSource", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "CopyToClipboard", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_CopyToClipboard", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "PasteFromClipboard", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_PasteFromClipboard", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "Find", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_Find", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchSearchStr", "paramtype":"const char *" }, + { "paramname":"bCurrentlyInFind", "paramtype":"bool" }, + { "paramname":"bReverse", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "StopFind", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_StopFind", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "GetLinkAtPosition", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_GetLinkAtPosition", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"x", "paramtype":"int" }, + { "paramname":"y", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "SetCookie", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetCookie", + "params": [ + { "paramname":"pchHostname", "paramtype":"const char *" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" }, + { "paramname":"pchPath", "paramtype":"const char *" }, + { "paramname":"nExpires", "paramtype":"RTime32" }, + { "paramname":"bSecure", "paramtype":"bool" }, + { "paramname":"bHTTPOnly", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SetPageScaleFactor", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetPageScaleFactor", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"flZoom", "paramtype":"float" }, + { "paramname":"nPointX", "paramtype":"int" }, + { "paramname":"nPointY", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "SetBackgroundMode", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetBackgroundMode", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"bBackgroundMode", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SetDPIScalingFactor", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetDPIScalingFactor", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"flDPIScaling", "paramtype":"float" } + ], + "returntype": "void" + }, + { + "methodname": "OpenDeveloperTools", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_OpenDeveloperTools", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "AllowStartRequest", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_AllowStartRequest", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"bAllowed", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "JSDialogResponse", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_JSDialogResponse", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"bResult", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "FileLoadDialogResponse", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_FileLoadDialogResponse", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchSelectedFiles", "paramtype":"const char **" } + ], + "returntype": "void" + } + ], + "version_string": "STEAMHTMLSURFACE_INTERFACE_VERSION_005" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamInventory", + "name_flat": "SteamAPI_SteamInventory_v003" + }, + { + "kind": "gameserver", + "name": "SteamGameServerInventory", + "name_flat": "SteamAPI_SteamGameServerInventory_v003" + } + ], + "classname": "ISteamInventory", + "fields": [], + "methods": [ + { + "methodname": "GetResultStatus", + "methodname_flat": "SteamAPI_ISteamInventory_GetResultStatus", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" } + ], + "returntype": "EResult" + }, + { + "methodname": "GetResultItems", + "methodname_flat": "SteamAPI_ISteamInventory_GetResultItems", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" }, + { + "desc": "Output array", + "out_array_count": "punOutItemsArraySize", + "paramname": "pOutItemsArray", + "paramtype": "SteamItemDetails_t *" + }, + { "paramname":"punOutItemsArraySize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetResultItemProperty", + "methodname_flat": "SteamAPI_ISteamInventory_GetResultItemProperty", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" }, + { "paramname":"unItemIndex", "paramtype":"uint32" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { + "out_string_count": "punValueBufferSizeOut", + "paramname": "pchValueBuffer", + "paramtype": "char *" + }, + { "paramname":"punValueBufferSizeOut", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetResultTimestamp", + "methodname_flat": "SteamAPI_ISteamInventory_GetResultTimestamp", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "CheckResultSteamID", + "methodname_flat": "SteamAPI_ISteamInventory_CheckResultSteamID", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" }, + { "paramname":"steamIDExpected", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "DestroyResult", + "methodname_flat": "SteamAPI_ISteamInventory_DestroyResult", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetAllItems", + "methodname_flat": "SteamAPI_ISteamInventory_GetAllItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetItemsByID", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemsByID", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "array_count": "unCountInstanceIDs", + "paramname": "pInstanceIDs", + "paramtype": "const SteamItemInstanceID_t *" + }, + { "paramname":"unCountInstanceIDs", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SerializeResult", + "methodname_flat": "SteamAPI_ISteamInventory_SerializeResult", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" }, + { + "out_buffer_count": "punOutBufferSize", + "paramname": "pOutBuffer", + "paramtype": "void *" + }, + { "paramname":"punOutBufferSize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "DeserializeResult", + "methodname_flat": "SteamAPI_ISteamInventory_DeserializeResult", + "params": [ + { "paramname":"pOutResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "buffer_count": "punOutBufferSize", + "paramname": "pBuffer", + "paramtype": "const void *" + }, + { "paramname":"unBufferSize", "paramtype":"uint32" }, + { "paramname":"bRESERVED_MUST_BE_FALSE", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "GenerateItems", + "methodname_flat": "SteamAPI_ISteamInventory_GenerateItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "array_count": "unArrayLength", + "paramname": "pArrayItemDefs", + "paramtype": "const SteamItemDef_t *" + }, + { + "array_count": "unArrayLength", + "paramname": "punArrayQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"unArrayLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GrantPromoItems", + "methodname_flat": "SteamAPI_ISteamInventory_GrantPromoItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddPromoItem", + "methodname_flat": "SteamAPI_ISteamInventory_AddPromoItem", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"itemDef", "paramtype":"SteamItemDef_t" } + ], + "returntype": "bool" + }, + { + "methodname": "AddPromoItems", + "methodname_flat": "SteamAPI_ISteamInventory_AddPromoItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "array_count": "unArrayLength", + "paramname": "pArrayItemDefs", + "paramtype": "const SteamItemDef_t *" + }, + { "paramname":"unArrayLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "ConsumeItem", + "methodname_flat": "SteamAPI_ISteamInventory_ConsumeItem", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"itemConsume", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"unQuantity", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "ExchangeItems", + "methodname_flat": "SteamAPI_ISteamInventory_ExchangeItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "array_count": "unArrayGenerateLength", + "paramname": "pArrayGenerate", + "paramtype": "const SteamItemDef_t *" + }, + { + "array_count": "unArrayGenerateLength", + "paramname": "punArrayGenerateQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"unArrayGenerateLength", "paramtype":"uint32" }, + { + "array_count": "unArrayDestroyLength", + "paramname": "pArrayDestroy", + "paramtype": "const SteamItemInstanceID_t *" + }, + { + "array_count": "unArrayDestroyLength", + "paramname": "punArrayDestroyQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"unArrayDestroyLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "TransferItemQuantity", + "methodname_flat": "SteamAPI_ISteamInventory_TransferItemQuantity", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"itemIdSource", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"unQuantity", "paramtype":"uint32" }, + { "paramname":"itemIdDest", "paramtype":"SteamItemInstanceID_t" } + ], + "returntype": "bool" + }, + { + "methodname": "SendItemDropHeartbeat", + "methodname_flat": "SteamAPI_ISteamInventory_SendItemDropHeartbeat", + "params": [], + "returntype": "void" + }, + { + "methodname": "TriggerItemDrop", + "methodname_flat": "SteamAPI_ISteamInventory_TriggerItemDrop", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"dropListDefinition", "paramtype":"SteamItemDef_t" } + ], + "returntype": "bool" + }, + { + "methodname": "TradeItems", + "methodname_flat": "SteamAPI_ISteamInventory_TradeItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"steamIDTradePartner", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { + "array_count": "nArrayGiveLength", + "paramname": "pArrayGive", + "paramtype": "const SteamItemInstanceID_t *" + }, + { + "array_count": "nArrayGiveLength", + "paramname": "pArrayGiveQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"nArrayGiveLength", "paramtype":"uint32" }, + { + "array_count": "nArrayGetLength", + "paramname": "pArrayGet", + "paramtype": "const SteamItemInstanceID_t *" + }, + { + "array_count": "nArrayGetLength", + "paramname": "pArrayGetQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"nArrayGetLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "LoadItemDefinitions", + "methodname_flat": "SteamAPI_ISteamInventory_LoadItemDefinitions", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetItemDefinitionIDs", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemDefinitionIDs", + "params": [ + { + "desc": "List of item definition IDs", + "out_array_count": "punItemDefIDsArraySize", + "paramname": "pItemDefIDs", + "paramtype": "SteamItemDef_t *" + }, + { + "desc": "Size of array is passed in and actual size used is returned in this param", + "paramname": "punItemDefIDsArraySize", + "paramtype": "uint32 *" + } + ], + "returntype": "bool" + }, + { + "methodname": "GetItemDefinitionProperty", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemDefinitionProperty", + "params": [ + { "paramname":"iDefinition", "paramtype":"SteamItemDef_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { + "out_string_count": "punValueBufferSizeOut", + "paramname": "pchValueBuffer", + "paramtype": "char *" + }, + { "paramname":"punValueBufferSizeOut", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "callresult": "SteamInventoryEligiblePromoItemDefIDs_t", + "methodname": "RequestEligiblePromoItemDefinitionsIDs", + "methodname_flat": "SteamAPI_ISteamInventory_RequestEligiblePromoItemDefinitionsIDs", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetEligiblePromoItemDefinitionIDs", + "methodname_flat": "SteamAPI_ISteamInventory_GetEligiblePromoItemDefinitionIDs", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { + "desc": "List of item definition IDs", + "out_array_count": "punItemDefIDsArraySize", + "paramname": "pItemDefIDs", + "paramtype": "SteamItemDef_t *" + }, + { + "desc": "Size of array is passed in and actual size used is returned in this param", + "paramname": "punItemDefIDsArraySize", + "paramtype": "uint32 *" + } + ], + "returntype": "bool" + }, + { + "callresult": "SteamInventoryStartPurchaseResult_t", + "methodname": "StartPurchase", + "methodname_flat": "SteamAPI_ISteamInventory_StartPurchase", + "params": [ + { + "array_count": "unArrayLength", + "paramname": "pArrayItemDefs", + "paramtype": "const SteamItemDef_t *" + }, + { + "array_count": "unArrayLength", + "paramname": "punArrayQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"unArrayLength", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "SteamInventoryRequestPricesResult_t", + "methodname": "RequestPrices", + "methodname_flat": "SteamAPI_ISteamInventory_RequestPrices", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetNumItemsWithPrices", + "methodname_flat": "SteamAPI_ISteamInventory_GetNumItemsWithPrices", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetItemsWithPrices", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemsWithPrices", + "params": [ + { + "array_count": "unArrayLength", + "desc": "Items with prices", + "out_array_count": "pArrayItemDefs", + "paramname": "pArrayItemDefs", + "paramtype": "SteamItemDef_t *" + }, + { + "array_count": "unArrayLength", + "desc": "List of prices for the given item defs", + "out_array_count": "pPrices", + "paramname": "pCurrentPrices", + "paramtype": "uint64 *" + }, + { + "array_count": "unArrayLength", + "desc": "List of prices for the given item defs", + "out_array_count": "pPrices", + "paramname": "pBasePrices", + "paramtype": "uint64 *" + }, + { "paramname":"unArrayLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetItemPrice", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemPrice", + "params": [ + { "paramname":"iDefinition", "paramtype":"SteamItemDef_t" }, + { "paramname":"pCurrentPrice", "paramtype":"uint64 *" }, + { "paramname":"pBasePrice", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "StartUpdateProperties", + "methodname_flat": "SteamAPI_ISteamInventory_StartUpdateProperties", + "params": [], + "returntype": "SteamInventoryUpdateHandle_t" + }, + { + "methodname": "RemoveProperty", + "methodname_flat": "SteamAPI_ISteamInventory_RemoveProperty", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetProperty", + "methodname_flat": "SteamAPI_ISteamInventory_SetPropertyString", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { "paramname":"pchPropertyValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetProperty", + "methodname_flat": "SteamAPI_ISteamInventory_SetPropertyBool", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetProperty", + "methodname_flat": "SteamAPI_ISteamInventory_SetPropertyInt64", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { "paramname":"nValue", "paramtype":"int64" } + ], + "returntype": "bool" + }, + { + "methodname": "SetProperty", + "methodname_flat": "SteamAPI_ISteamInventory_SetPropertyFloat", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { "paramname":"flValue", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "SubmitUpdateProperties", + "methodname_flat": "SteamAPI_ISteamInventory_SubmitUpdateProperties", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "InspectItem", + "methodname_flat": "SteamAPI_ISteamInventory_InspectItem", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"pchItemToken", "paramtype":"const char *" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMINVENTORY_INTERFACE_V003" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamParentalSettings", + "name_flat": "SteamAPI_SteamParentalSettings_v001" + } + ], + "classname": "ISteamParentalSettings", + "fields": [], + "methods": [ + { + "methodname": "BIsParentalLockEnabled", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsParentalLockEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsParentalLockLocked", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsParentalLockLocked", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsAppBlocked", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsAppBlocked", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "BIsAppInBlockList", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsAppInBlockList", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "BIsFeatureBlocked", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsFeatureBlocked", + "params": [ + { "paramname":"eFeature", "paramtype":"EParentalFeature" } + ], + "returntype": "bool" + }, + { + "methodname": "BIsFeatureInBlockList", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsFeatureInBlockList", + "params": [ + { "paramname":"eFeature", "paramtype":"EParentalFeature" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMPARENTALSETTINGS_INTERFACE_VERSION001" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamRemotePlay", + "name_flat": "SteamAPI_SteamRemotePlay_v002" + } + ], + "classname": "ISteamRemotePlay", + "fields": [], + "methods": [ + { + "methodname": "GetSessionCount", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionCount", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetSessionID", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionID", + "params": [ + { "paramname":"iSessionIndex", "paramtype":"int" } + ], + "returntype": "RemotePlaySessionID_t" + }, + { + "methodname": "GetSessionSteamID", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionSteamID", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetSessionClientName", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionClientName", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetSessionClientFormFactor", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionClientFormFactor", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "ESteamDeviceFormFactor" + }, + { + "methodname": "BGetSessionClientResolution", + "methodname_flat": "SteamAPI_ISteamRemotePlay_BGetSessionClientResolution", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" }, + { "paramname":"pnResolutionX", "paramtype":"int *" }, + { "paramname":"pnResolutionY", "paramtype":"int *" } + ], + "returntype": "bool" + }, + { + "methodname": "BStartRemotePlayTogether", + "methodname_flat": "SteamAPI_ISteamRemotePlay_BStartRemotePlayTogether", + "params": [ + { "paramname":"bShowOverlay", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "BSendRemotePlayTogetherInvite", + "methodname_flat": "SteamAPI_ISteamRemotePlay_BSendRemotePlayTogetherInvite", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMREMOTEPLAY_INTERFACE_VERSION002" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamNetworkingMessages_SteamAPI", + "name_flat": "SteamAPI_SteamNetworkingMessages_SteamAPI_v002" + }, + { + "kind": "gameserver", + "name": "SteamGameServerNetworkingMessages_SteamAPI", + "name_flat": "SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002" + } + ], + "classname": "ISteamNetworkingMessages", + "fields": [], + "methods": [ + { + "methodname": "SendMessageToUser", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_SendMessageToUser", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"pubData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"uint32" }, + { "paramname":"nSendFlags", "paramtype":"int" }, + { "paramname":"nRemoteChannel", "paramtype":"int" } + ], + "returntype": "EResult" + }, + { + "methodname": "ReceiveMessagesOnChannel", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_ReceiveMessagesOnChannel", + "params": [ + { "paramname":"nLocalChannel", "paramtype":"int" }, + { "paramname":"ppOutMessages", "paramtype":"SteamNetworkingMessage_t **" }, + { "paramname":"nMaxMessages", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "AcceptSessionWithUser", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_AcceptSessionWithUser", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseSessionWithUser", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_CloseSessionWithUser", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseChannelWithUser", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_CloseChannelWithUser", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"nLocalChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetSessionConnectionInfo", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_GetSessionConnectionInfo", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"pConnectionInfo", "paramtype":"SteamNetConnectionInfo_t *" }, + { "paramname":"pQuickStatus", "paramtype":"SteamNetConnectionRealTimeStatus_t *" } + ], + "returntype": "ESteamNetworkingConnectionState" + } + ], + "version_string": "SteamNetworkingMessages002" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamNetworkingSockets_SteamAPI", + "name_flat": "SteamAPI_SteamNetworkingSockets_SteamAPI_v012" + }, + { + "kind": "gameserver", + "name": "SteamGameServerNetworkingSockets_SteamAPI", + "name_flat": "SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v012" + } + ], + "classname": "ISteamNetworkingSockets", + "fields": [], + "methods": [ + { + "methodname": "CreateListenSocketIP", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateListenSocketIP", + "params": [ + { "paramname":"localAddress", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamListenSocket" + }, + { + "methodname": "ConnectByIPAddress", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectByIPAddress", + "params": [ + { "paramname":"address", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamNetConnection" + }, + { + "methodname": "CreateListenSocketP2P", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2P", + "params": [ + { "paramname":"nLocalVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamListenSocket" + }, + { + "methodname": "ConnectP2P", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectP2P", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"nRemoteVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamNetConnection" + }, + { + "methodname": "AcceptConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_AcceptConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" } + ], + "returntype": "EResult" + }, + { + "methodname": "CloseConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CloseConnection", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" }, + { "paramname":"nReason", "paramtype":"int" }, + { "paramname":"pszDebug", "paramtype":"const char *" }, + { "paramname":"bEnableLinger", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseListenSocket", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CloseListenSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"HSteamListenSocket" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionUserData", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SetConnectionUserData", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" }, + { "paramname":"nUserData", "paramtype":"int64" } + ], + "returntype": "bool" + }, + { + "methodname": "GetConnectionUserData", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetConnectionUserData", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" } + ], + "returntype": "int64" + }, + { + "methodname": "SetConnectionName", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SetConnectionName", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" }, + { "paramname":"pszName", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "GetConnectionName", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetConnectionName", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" }, + { "paramname":"pszName", "paramtype":"char *" }, + { "paramname":"nMaxLen", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "SendMessageToConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SendMessageToConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pData", "paramtype":"const void *" }, + { "paramname":"cbData", "paramtype":"uint32" }, + { "paramname":"nSendFlags", "paramtype":"int" }, + { "paramname":"pOutMessageNumber", "paramtype":"int64 *" } + ], + "returntype": "EResult" + }, + { + "methodname": "SendMessages", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SendMessages", + "params": [ + { "paramname":"nMessages", "paramtype":"int" }, + { "paramname":"pMessages", "paramtype":"SteamNetworkingMessage_t *const *" }, + { "paramname":"pOutMessageNumberOrResult", "paramtype":"int64 *" } + ], + "returntype": "void" + }, + { + "methodname": "FlushMessagesOnConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_FlushMessagesOnConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" } + ], + "returntype": "EResult" + }, + { + "methodname": "ReceiveMessagesOnConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"ppOutMessages", "paramtype":"SteamNetworkingMessage_t **" }, + { "paramname":"nMaxMessages", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "GetConnectionInfo", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetConnectionInfo", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pInfo", "paramtype":"SteamNetConnectionInfo_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetConnectionRealTimeStatus", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetConnectionRealTimeStatus", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pStatus", "paramtype":"SteamNetConnectionRealTimeStatus_t *" }, + { "paramname":"nLanes", "paramtype":"int" }, + { "paramname":"pLanes", "paramtype":"SteamNetConnectionRealTimeLaneStatus_t *" } + ], + "returntype": "EResult" + }, + { + "methodname": "GetDetailedConnectionStatus", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetDetailedConnectionStatus", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pszBuf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "GetListenSocketAddress", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetListenSocketAddress", + "params": [ + { "paramname":"hSocket", "paramtype":"HSteamListenSocket" }, + { "paramname":"address", "paramtype":"SteamNetworkingIPAddr *" } + ], + "returntype": "bool" + }, + { + "methodname": "CreateSocketPair", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateSocketPair", + "params": [ + { "paramname":"pOutConnection1", "paramtype":"HSteamNetConnection *" }, + { "paramname":"pOutConnection2", "paramtype":"HSteamNetConnection *" }, + { "paramname":"bUseNetworkLoopback", "paramtype":"bool" }, + { "paramname":"pIdentity1", "paramtype":"const SteamNetworkingIdentity *" }, + { "paramname":"pIdentity2", "paramtype":"const SteamNetworkingIdentity *" } + ], + "returntype": "bool" + }, + { + "methodname": "ConfigureConnectionLanes", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConfigureConnectionLanes", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"nNumLanes", "paramtype":"int" }, + { "paramname":"pLanePriorities", "paramtype":"const int *" }, + { "paramname":"pLaneWeights", "paramtype":"const uint16 *" } + ], + "returntype": "EResult" + }, + { + "methodname": "GetIdentity", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetIdentity", + "params": [ + { "paramname":"pIdentity", "paramtype":"SteamNetworkingIdentity *" } + ], + "returntype": "bool" + }, + { + "methodname": "InitAuthentication", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_InitAuthentication", + "params": [], + "returntype": "ESteamNetworkingAvailability" + }, + { + "methodname": "GetAuthenticationStatus", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetAuthenticationStatus", + "params": [ + { "paramname":"pDetails", "paramtype":"SteamNetAuthenticationStatus_t *" } + ], + "returntype": "ESteamNetworkingAvailability" + }, + { + "methodname": "CreatePollGroup", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreatePollGroup", + "params": [], + "returntype": "HSteamNetPollGroup" + }, + { + "methodname": "DestroyPollGroup", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_DestroyPollGroup", + "params": [ + { "paramname":"hPollGroup", "paramtype":"HSteamNetPollGroup" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionPollGroup", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SetConnectionPollGroup", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"hPollGroup", "paramtype":"HSteamNetPollGroup" } + ], + "returntype": "bool" + }, + { + "methodname": "ReceiveMessagesOnPollGroup", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnPollGroup", + "params": [ + { "paramname":"hPollGroup", "paramtype":"HSteamNetPollGroup" }, + { "paramname":"ppOutMessages", "paramtype":"SteamNetworkingMessage_t **" }, + { "paramname":"nMaxMessages", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "ReceivedRelayAuthTicket", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ReceivedRelayAuthTicket", + "params": [ + { "paramname":"pvTicket", "paramtype":"const void *" }, + { "paramname":"cbTicket", "paramtype":"int" }, + { "paramname":"pOutParsedTicket", "paramtype":"SteamDatagramRelayAuthTicket *" } + ], + "returntype": "bool" + }, + { + "methodname": "FindRelayAuthTicketForServer", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_FindRelayAuthTicketForServer", + "params": [ + { "paramname":"identityGameServer", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"nRemoteVirtualPort", "paramtype":"int" }, + { "paramname":"pOutParsedTicket", "paramtype":"SteamDatagramRelayAuthTicket *" } + ], + "returntype": "int" + }, + { + "methodname": "ConnectToHostedDedicatedServer", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectToHostedDedicatedServer", + "params": [ + { "paramname":"identityTarget", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"nRemoteVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamNetConnection" + }, + { + "methodname": "GetHostedDedicatedServerPort", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPort", + "params": [], + "returntype": "uint16" + }, + { + "methodname": "GetHostedDedicatedServerPOPID", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPOPID", + "params": [], + "returntype": "SteamNetworkingPOPID" + }, + { + "methodname": "GetHostedDedicatedServerAddress", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerAddress", + "params": [ + { "paramname":"pRouting", "paramtype":"SteamDatagramHostedAddress *" } + ], + "returntype": "EResult" + }, + { + "methodname": "CreateHostedDedicatedServerListenSocket", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket", + "params": [ + { "paramname":"nLocalVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamListenSocket" + }, + { + "methodname": "GetGameCoordinatorServerLogin", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetGameCoordinatorServerLogin", + "params": [ + { "paramname":"pLoginInfo", "paramtype":"SteamDatagramGameCoordinatorServerLogin *" }, + { "paramname":"pcbSignedBlob", "paramtype":"int *" }, + { "paramname":"pBlob", "paramtype":"void *" } + ], + "returntype": "EResult" + }, + { + "methodname": "ConnectP2PCustomSignaling", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectP2PCustomSignaling", + "params": [ + { "paramname":"pSignaling", "paramtype":"ISteamNetworkingConnectionSignaling *" }, + { "paramname":"pPeerIdentity", "paramtype":"const SteamNetworkingIdentity *" }, + { "paramname":"nRemoteVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamNetConnection" + }, + { + "methodname": "ReceivedP2PCustomSignal", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ReceivedP2PCustomSignal", + "params": [ + { "paramname":"pMsg", "paramtype":"const void *" }, + { "paramname":"cbMsg", "paramtype":"int" }, + { "paramname":"pContext", "paramtype":"ISteamNetworkingSignalingRecvContext *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetCertificateRequest", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetCertificateRequest", + "params": [ + { "paramname":"pcbBlob", "paramtype":"int *" }, + { "paramname":"pBlob", "paramtype":"void *" }, + { "paramname":"errMsg", "paramtype":"SteamNetworkingErrMsg &" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCertificate", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SetCertificate", + "params": [ + { "paramname":"pCertificate", "paramtype":"const void *" }, + { "paramname":"cbCertificate", "paramtype":"int" }, + { "paramname":"errMsg", "paramtype":"SteamNetworkingErrMsg &" } + ], + "returntype": "bool" + }, + { + "methodname": "ResetIdentity", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ResetIdentity", + "params": [ + { "paramname":"pIdentity", "paramtype":"const SteamNetworkingIdentity *" } + ], + "returntype": "void" + }, + { + "methodname": "RunCallbacks", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_RunCallbacks", + "params": [], + "returntype": "void" + }, + { + "methodname": "BeginAsyncRequestFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_BeginAsyncRequestFakeIP", + "params": [ + { "paramname":"nNumPorts", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetFakeIP", + "params": [ + { "paramname":"idxFirstPort", "paramtype":"int" }, + { "paramname":"pInfo", "paramtype":"SteamNetworkingFakeIPResult_t *" } + ], + "returntype": "void" + }, + { + "methodname": "CreateListenSocketP2PFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2PFakeIP", + "params": [ + { "paramname":"idxFakePort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamListenSocket" + }, + { + "methodname": "GetRemoteFakeIPForConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetRemoteFakeIPForConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pOutAddr", "paramtype":"SteamNetworkingIPAddr *" } + ], + "returntype": "EResult" + }, + { + "methodname": "CreateFakeUDPPort", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateFakeUDPPort", + "params": [ + { "paramname":"idxFakeServerPort", "paramtype":"int" } + ], + "returntype": "ISteamNetworkingFakeUDPPort *" + } + ], + "version_string": "SteamNetworkingSockets012" + }, + { + "accessors": [ + { + "kind": "global", + "name": "SteamNetworkingUtils_SteamAPI", + "name_flat": "SteamAPI_SteamNetworkingUtils_SteamAPI_v004" + } + ], + "classname": "ISteamNetworkingUtils", + "fields": [], + "methods": [ + { + "methodname": "AllocateMessage", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_AllocateMessage", + "params": [ + { "paramname":"cbAllocateBuffer", "paramtype":"int" } + ], + "returntype": "SteamNetworkingMessage_t *" + }, + { + "methodname": "InitRelayNetworkAccess", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_InitRelayNetworkAccess", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetRelayNetworkStatus", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetRelayNetworkStatus", + "params": [ + { "paramname":"pDetails", "paramtype":"SteamRelayNetworkStatus_t *" } + ], + "returntype": "ESteamNetworkingAvailability" + }, + { + "methodname": "GetLocalPingLocation", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetLocalPingLocation", + "params": [ + { "paramname":"result", "paramtype":"SteamNetworkPingLocation_t &" } + ], + "returntype": "float" + }, + { + "methodname": "EstimatePingTimeBetweenTwoLocations", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_EstimatePingTimeBetweenTwoLocations", + "params": [ + { "paramname":"location1", "paramtype":"const SteamNetworkPingLocation_t &" }, + { "paramname":"location2", "paramtype":"const SteamNetworkPingLocation_t &" } + ], + "returntype": "int" + }, + { + "methodname": "EstimatePingTimeFromLocalHost", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_EstimatePingTimeFromLocalHost", + "params": [ + { "paramname":"remoteLocation", "paramtype":"const SteamNetworkPingLocation_t &" } + ], + "returntype": "int" + }, + { + "methodname": "ConvertPingLocationToString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_ConvertPingLocationToString", + "params": [ + { "paramname":"location", "paramtype":"const SteamNetworkPingLocation_t &" }, + { "paramname":"pszBuf", "paramtype":"char *" }, + { "paramname":"cchBufSize", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "ParsePingLocationString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_ParsePingLocationString", + "params": [ + { "paramname":"pszString", "paramtype":"const char *" }, + { "paramname":"result", "paramtype":"SteamNetworkPingLocation_t &" } + ], + "returntype": "bool" + }, + { + "methodname": "CheckPingDataUpToDate", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_CheckPingDataUpToDate", + "params": [ + { "paramname":"flMaxAgeSeconds", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "GetPingToDataCenter", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetPingToDataCenter", + "params": [ + { "paramname":"popID", "paramtype":"SteamNetworkingPOPID" }, + { "paramname":"pViaRelayPoP", "paramtype":"SteamNetworkingPOPID *" } + ], + "returntype": "int" + }, + { + "methodname": "GetDirectPingToPOP", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetDirectPingToPOP", + "params": [ + { "paramname":"popID", "paramtype":"SteamNetworkingPOPID" } + ], + "returntype": "int" + }, + { + "methodname": "GetPOPCount", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetPOPCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetPOPList", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetPOPList", + "params": [ + { "paramname":"list", "paramtype":"SteamNetworkingPOPID *" }, + { "paramname":"nListSz", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "GetLocalTimestamp", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetLocalTimestamp", + "params": [], + "returntype": "SteamNetworkingMicroseconds" + }, + { + "methodname": "SetDebugOutputFunction", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetDebugOutputFunction", + "params": [ + { "paramname":"eDetailLevel", "paramtype":"ESteamNetworkingSocketsDebugOutputType" }, + { "paramname":"pfnFunc", "paramtype":"FSteamNetworkingSocketsDebugOutput" } + ], + "returntype": "void" + }, + { + "methodname": "IsFakeIPv4", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_IsFakeIPv4", + "params": [ + { "paramname":"nIPv4", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetIPv4FakeIPType", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetIPv4FakeIPType", + "params": [ + { "paramname":"nIPv4", "paramtype":"uint32" } + ], + "returntype": "ESteamNetworkingFakeIPType" + }, + { + "methodname": "GetRealIdentityForFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetRealIdentityForFakeIP", + "params": [ + { "paramname":"fakeIP", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"pOutRealIdentity", "paramtype":"SteamNetworkingIdentity *" } + ], + "returntype": "EResult" + }, + { + "methodname": "SetGlobalConfigValueInt32", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueInt32", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalConfigValueFloat", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueFloat", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalConfigValueString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueString", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalConfigValuePtr", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValuePtr", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"void *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionConfigValueInt32", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueInt32", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionConfigValueFloat", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueFloat", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionConfigValueString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueString", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_SteamNetConnectionStatusChanged", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetConnectionStatusChanged", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetConnectionStatusChanged" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_SteamNetAuthenticationStatusChanged", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetAuthenticationStatusChanged", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetAuthenticationStatusChanged" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_SteamRelayNetworkStatusChanged", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamRelayNetworkStatusChanged", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamRelayNetworkStatusChanged" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_FakeIPResult", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_FakeIPResult", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetworkingFakeIPResult" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_MessagesSessionRequest", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionRequest", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetworkingMessagesSessionRequest" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_MessagesSessionFailed", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionFailed", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetworkingMessagesSessionFailed" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConfigValue", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConfigValue", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"eScopeType", "paramtype":"ESteamNetworkingConfigScope" }, + { "paramname":"scopeObj", "paramtype":"intptr_t" }, + { "paramname":"eDataType", "paramtype":"ESteamNetworkingConfigDataType" }, + { "paramname":"pArg", "paramtype":"const void *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConfigValueStruct", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConfigValueStruct", + "params": [ + { "paramname":"opt", "paramtype":"const SteamNetworkingConfigValue_t &" }, + { "paramname":"eScopeType", "paramtype":"ESteamNetworkingConfigScope" }, + { "paramname":"scopeObj", "paramtype":"intptr_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetConfigValue", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetConfigValue", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"eScopeType", "paramtype":"ESteamNetworkingConfigScope" }, + { "paramname":"scopeObj", "paramtype":"intptr_t" }, + { "paramname":"pOutDataType", "paramtype":"ESteamNetworkingConfigDataType *" }, + { "paramname":"pResult", "paramtype":"void *" }, + { "paramname":"cbResult", "paramtype":"size_t *" } + ], + "returntype": "ESteamNetworkingGetConfigValueResult" + }, + { + "methodname": "GetConfigValueInfo", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetConfigValueInfo", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"pOutDataType", "paramtype":"ESteamNetworkingConfigDataType *" }, + { "paramname":"pOutScope", "paramtype":"ESteamNetworkingConfigScope *" } + ], + "returntype": "const char *" + }, + { + "methodname": "IterateGenericEditableConfigValues", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_IterateGenericEditableConfigValues", + "params": [ + { "paramname":"eCurrent", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"bEnumerateDevVars", "paramtype":"bool" } + ], + "returntype": "ESteamNetworkingConfigValue" + }, + { + "methodname": "SteamNetworkingIPAddr_ToString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ToString", + "params": [ + { "paramname":"addr", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"buf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"uint32" }, + { "paramname":"bWithPort", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SteamNetworkingIPAddr_ParseString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ParseString", + "params": [ + { "paramname":"pAddr", "paramtype":"SteamNetworkingIPAddr *" }, + { "paramname":"pszStr", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SteamNetworkingIPAddr_GetFakeIPType", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_GetFakeIPType", + "params": [ + { "paramname":"addr", "paramtype":"const SteamNetworkingIPAddr &" } + ], + "returntype": "ESteamNetworkingFakeIPType" + }, + { + "methodname": "SteamNetworkingIdentity_ToString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ToString", + "params": [ + { "paramname":"identity", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"buf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "SteamNetworkingIdentity_ParseString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString", + "params": [ + { "paramname":"pIdentity", "paramtype":"SteamNetworkingIdentity *" }, + { "paramname":"pszStr", "paramtype":"const char *" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamNetworkingUtils004" + }, + { + "accessors": [ + { + "kind": "gameserver", + "name": "SteamGameServer", + "name_flat": "SteamAPI_SteamGameServer_v015" + } + ], + "classname": "ISteamGameServer", + "fields": [], + "methods": [ + { + "methodname": "SetProduct", + "methodname_flat": "SteamAPI_ISteamGameServer_SetProduct", + "params": [ + { "paramname":"pszProduct", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetGameDescription", + "methodname_flat": "SteamAPI_ISteamGameServer_SetGameDescription", + "params": [ + { "paramname":"pszGameDescription", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetModDir", + "methodname_flat": "SteamAPI_ISteamGameServer_SetModDir", + "params": [ + { "paramname":"pszModDir", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetDedicatedServer", + "methodname_flat": "SteamAPI_ISteamGameServer_SetDedicatedServer", + "params": [ + { "paramname":"bDedicated", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "LogOn", + "methodname_flat": "SteamAPI_ISteamGameServer_LogOn", + "params": [ + { "paramname":"pszToken", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "LogOnAnonymous", + "methodname_flat": "SteamAPI_ISteamGameServer_LogOnAnonymous", + "params": [], + "returntype": "void" + }, + { + "methodname": "LogOff", + "methodname_flat": "SteamAPI_ISteamGameServer_LogOff", + "params": [], + "returntype": "void" + }, + { + "methodname": "BLoggedOn", + "methodname_flat": "SteamAPI_ISteamGameServer_BLoggedOn", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BSecure", + "methodname_flat": "SteamAPI_ISteamGameServer_BSecure", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetSteamID", + "methodname_flat": "SteamAPI_ISteamGameServer_GetSteamID", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "WasRestartRequested", + "methodname_flat": "SteamAPI_ISteamGameServer_WasRestartRequested", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetMaxPlayerCount", + "methodname_flat": "SteamAPI_ISteamGameServer_SetMaxPlayerCount", + "params": [ + { "paramname":"cPlayersMax", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "SetBotPlayerCount", + "methodname_flat": "SteamAPI_ISteamGameServer_SetBotPlayerCount", + "params": [ + { "paramname":"cBotplayers", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "SetServerName", + "methodname_flat": "SteamAPI_ISteamGameServer_SetServerName", + "params": [ + { "paramname":"pszServerName", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetMapName", + "methodname_flat": "SteamAPI_ISteamGameServer_SetMapName", + "params": [ + { "paramname":"pszMapName", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetPasswordProtected", + "methodname_flat": "SteamAPI_ISteamGameServer_SetPasswordProtected", + "params": [ + { "paramname":"bPasswordProtected", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SetSpectatorPort", + "methodname_flat": "SteamAPI_ISteamGameServer_SetSpectatorPort", + "params": [ + { "paramname":"unSpectatorPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "SetSpectatorServerName", + "methodname_flat": "SteamAPI_ISteamGameServer_SetSpectatorServerName", + "params": [ + { "paramname":"pszSpectatorServerName", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "ClearAllKeyValues", + "methodname_flat": "SteamAPI_ISteamGameServer_ClearAllKeyValues", + "params": [], + "returntype": "void" + }, + { + "methodname": "SetKeyValue", + "methodname_flat": "SteamAPI_ISteamGameServer_SetKeyValue", + "params": [ + { "paramname":"pKey", "paramtype":"const char *" }, + { "paramname":"pValue", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetGameTags", + "methodname_flat": "SteamAPI_ISteamGameServer_SetGameTags", + "params": [ + { "paramname":"pchGameTags", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetGameData", + "methodname_flat": "SteamAPI_ISteamGameServer_SetGameData", + "params": [ + { "paramname":"pchGameData", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetRegion", + "methodname_flat": "SteamAPI_ISteamGameServer_SetRegion", + "params": [ + { "paramname":"pszRegion", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetAdvertiseServerActive", + "methodname_flat": "SteamAPI_ISteamGameServer_SetAdvertiseServerActive", + "params": [ + { "paramname":"bActive", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "GetAuthSessionTicket", + "methodname_flat": "SteamAPI_ISteamGameServer_GetAuthSessionTicket", + "params": [ + { "paramname":"pTicket", "paramtype":"void *" }, + { "paramname":"cbMaxTicket", "paramtype":"int" }, + { "paramname":"pcbTicket", "paramtype":"uint32 *" }, + { "paramname":"pSnid", "paramtype":"const SteamNetworkingIdentity *" } + ], + "returntype": "HAuthTicket" + }, + { + "methodname": "BeginAuthSession", + "methodname_flat": "SteamAPI_ISteamGameServer_BeginAuthSession", + "params": [ + { "paramname":"pAuthTicket", "paramtype":"const void *" }, + { "paramname":"cbAuthTicket", "paramtype":"int" }, + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "EBeginAuthSessionResult" + }, + { + "methodname": "EndAuthSession", + "methodname_flat": "SteamAPI_ISteamGameServer_EndAuthSession", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "CancelAuthTicket", + "methodname_flat": "SteamAPI_ISteamGameServer_CancelAuthTicket", + "params": [ + { "paramname":"hAuthTicket", "paramtype":"HAuthTicket" } + ], + "returntype": "void" + }, + { + "methodname": "UserHasLicenseForApp", + "methodname_flat": "SteamAPI_ISteamGameServer_UserHasLicenseForApp", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "EUserHasLicenseForAppResult" + }, + { + "methodname": "RequestUserGroupStatus", + "methodname_flat": "SteamAPI_ISteamGameServer_RequestUserGroupStatus", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDGroup", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGameplayStats", + "methodname_flat": "SteamAPI_ISteamGameServer_GetGameplayStats", + "params": [], + "returntype": "void" + }, + { + "callresult": "GSReputation_t", + "methodname": "GetServerReputation", + "methodname_flat": "SteamAPI_ISteamGameServer_GetServerReputation", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetPublicIP", + "methodname_flat": "SteamAPI_ISteamGameServer_GetPublicIP", + "params": [], + "returntype": "SteamIPAddress_t" + }, + { + "methodname": "HandleIncomingPacket", + "methodname_flat": "SteamAPI_ISteamGameServer_HandleIncomingPacket", + "params": [ + { "paramname":"pData", "paramtype":"const void *" }, + { "paramname":"cbData", "paramtype":"int" }, + { "paramname":"srcIP", "paramtype":"uint32" }, + { "paramname":"srcPort", "paramtype":"uint16" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNextOutgoingPacket", + "methodname_flat": "SteamAPI_ISteamGameServer_GetNextOutgoingPacket", + "params": [ + { "paramname":"pOut", "paramtype":"void *" }, + { "paramname":"cbMaxOut", "paramtype":"int" }, + { "paramname":"pNetAdr", "paramtype":"uint32 *" }, + { "paramname":"pPort", "paramtype":"uint16 *" } + ], + "returntype": "int" + }, + { + "callresult": "AssociateWithClanResult_t", + "methodname": "AssociateWithClan", + "methodname_flat": "SteamAPI_ISteamGameServer_AssociateWithClan", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "ComputeNewPlayerCompatibilityResult_t", + "methodname": "ComputeNewPlayerCompatibility", + "methodname_flat": "SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility", + "params": [ + { "paramname":"steamIDNewPlayer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "SendUserConnectAndAuthenticate_DEPRECATED", + "methodname_flat": "SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate_DEPRECATED", + "params": [ + { "paramname":"unIPClient", "paramtype":"uint32" }, + { "paramname":"pvAuthBlob", "paramtype":"const void *" }, + { "paramname":"cubAuthBlobSize", "paramtype":"uint32" }, + { "paramname":"pSteamIDUser", "paramtype":"CSteamID *" } + ], + "returntype": "bool" + }, + { + "methodname": "CreateUnauthenticatedUserConnection", + "methodname_flat": "SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "SendUserDisconnect_DEPRECATED", + "methodname_flat": "SteamAPI_ISteamGameServer_SendUserDisconnect_DEPRECATED", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "BUpdateUserData", + "methodname_flat": "SteamAPI_ISteamGameServer_BUpdateUserData", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchPlayerName", "paramtype":"const char *" }, + { "paramname":"uScore", "paramtype":"uint32" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamGameServer015" + }, + { + "accessors": [ + { + "kind": "gameserver", + "name": "SteamGameServerStats", + "name_flat": "SteamAPI_SteamGameServerStats_v001" + } + ], + "classname": "ISteamGameServerStats", + "fields": [], + "methods": [ + { + "callresult": "GSStatsReceived_t", + "methodname": "RequestUserStats", + "methodname_flat": "SteamAPI_ISteamGameServerStats_RequestUserStats", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetUserStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_GetUserStatInt32", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_GetUserStatFloat", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserAchievement", + "methodname_flat": "SteamAPI_ISteamGameServerStats_GetUserAchievement", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetUserStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_SetUserStatInt32", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"nData", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetUserStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_SetUserStatFloat", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"fData", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateUserAvgRateStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"flCountThisSession", "paramtype":"float" }, + { "paramname":"dSessionLength", "paramtype":"double" } + ], + "returntype": "bool" + }, + { + "methodname": "SetUserAchievement", + "methodname_flat": "SteamAPI_ISteamGameServerStats_SetUserAchievement", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "ClearUserAchievement", + "methodname_flat": "SteamAPI_ISteamGameServerStats_ClearUserAchievement", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "callresult": "GSStatsStored_t", + "methodname": "StoreUserStats", + "methodname_flat": "SteamAPI_ISteamGameServerStats_StoreUserStats", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + } + ], + "version_string": "SteamGameServerStats001" + }, + { + "classname": "ISteamNetworkingFakeUDPPort", + "fields": [], + "methods": [ + { + "methodname": "DestroyFakeUDPPort", + "methodname_flat": "SteamAPI_ISteamNetworkingFakeUDPPort_DestroyFakeUDPPort", + "params": [], + "returntype": "void" + }, + { + "methodname": "SendMessageToFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingFakeUDPPort_SendMessageToFakeIP", + "params": [ + { "paramname":"remoteAddress", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"pData", "paramtype":"const void *" }, + { "paramname":"cbData", "paramtype":"uint32" }, + { "paramname":"nSendFlags", "paramtype":"int" } + ], + "returntype": "EResult" + }, + { + "methodname": "ReceiveMessages", + "methodname_flat": "SteamAPI_ISteamNetworkingFakeUDPPort_ReceiveMessages", + "params": [ + { "paramname":"ppOutMessages", "paramtype":"SteamNetworkingMessage_t **" }, + { "paramname":"nMaxMessages", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "ScheduleCleanup", + "methodname_flat": "SteamAPI_ISteamNetworkingFakeUDPPort_ScheduleCleanup", + "params": [ + { "paramname":"remoteAddress", "paramtype":"const SteamNetworkingIPAddr &" } + ], + "returntype": "void" + } + ] + } + ], + "structs": [ + { + "fields": [ + { "fieldname":"m_rgubIPv6", "fieldtype":"uint8 [16]" }, + { "fieldname":"m_eType", "fieldtype":"ESteamIPType" } + ], + "methods": [ + { + "methodname": "IsSet", + "methodname_flat": "SteamAPI_SteamIPAddress_t_IsSet", + "params": [], + "returntype": "bool" + } + ], + "struct": "SteamIPAddress_t" + }, + { + "fields": [ + { "fieldname":"m_gameID", "fieldtype":"CGameID" }, + { "fieldname":"m_unGameIP", "fieldtype":"uint32" }, + { "fieldname":"m_usGamePort", "fieldtype":"uint16" }, + { "fieldname":"m_usQueryPort", "fieldtype":"uint16" }, + { "fieldname":"m_steamIDLobby", "fieldtype":"CSteamID" } + ], + "struct": "FriendGameInfo_t" + }, + { + "fields": [ + { "fieldname":"m_szKey", "fieldtype":"char [256]" }, + { "fieldname":"m_szValue", "fieldtype":"char [256]" } + ], + "methods": [ + { + "methodname": "Construct", + "methodname_flat": "SteamAPI_MatchMakingKeyValuePair_t_Construct", + "params": [], + "returntype": "void" + } + ], + "struct": "MatchMakingKeyValuePair_t" + }, + { + "fields": [ + { + "fieldname": "m_usConnectionPort", + "fieldtype": "uint16", + "private": true + }, + { + "fieldname": "m_usQueryPort", + "fieldtype": "uint16", + "private": true + }, + { + "fieldname": "m_unIP", + "fieldtype": "uint32", + "private": true + } + ], + "methods": [ + { + "methodname": "Construct", + "methodname_flat": "SteamAPI_servernetadr_t_Construct", + "params": [], + "returntype": "void" + }, + { + "methodname": "Init", + "methodname_flat": "SteamAPI_servernetadr_t_Init", + "params": [ + { "paramname":"ip", "paramtype":"unsigned int" }, + { "paramname":"usQueryPort", "paramtype":"uint16" }, + { "paramname":"usConnectionPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetQueryPort", + "methodname_flat": "SteamAPI_servernetadr_t_GetQueryPort", + "params": [], + "returntype": "uint16" + }, + { + "methodname": "SetQueryPort", + "methodname_flat": "SteamAPI_servernetadr_t_SetQueryPort", + "params": [ + { "paramname":"usPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetConnectionPort", + "methodname_flat": "SteamAPI_servernetadr_t_GetConnectionPort", + "params": [], + "returntype": "uint16" + }, + { + "methodname": "SetConnectionPort", + "methodname_flat": "SteamAPI_servernetadr_t_SetConnectionPort", + "params": [ + { "paramname":"usPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetIP", + "methodname_flat": "SteamAPI_servernetadr_t_GetIP", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetIP", + "methodname_flat": "SteamAPI_servernetadr_t_SetIP", + "params": [ + { "paramname":"unIP", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "GetConnectionAddressString", + "methodname_flat": "SteamAPI_servernetadr_t_GetConnectionAddressString", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "GetQueryAddressString", + "methodname_flat": "SteamAPI_servernetadr_t_GetQueryAddressString", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "operator<", + "methodname_flat": "SteamAPI_servernetadr_t_IsLessThan", + "params": [ + { "paramname":"netadr", "paramtype":"const servernetadr_t &" } + ], + "returntype": "bool" + }, + { + "methodname": "operator=", + "methodname_flat": "SteamAPI_servernetadr_t_Assign", + "params": [ + { "paramname":"that", "paramtype":"const servernetadr_t &" } + ], + "returntype": "void" + } + ], + "struct": "servernetadr_t" + }, + { + "fields": [ + { "fieldname":"m_NetAdr", "fieldtype":"servernetadr_t" }, + { "fieldname":"m_nPing", "fieldtype":"int" }, + { "fieldname":"m_bHadSuccessfulResponse", "fieldtype":"bool" }, + { "fieldname":"m_bDoNotRefresh", "fieldtype":"bool" }, + { "fieldname":"m_szGameDir", "fieldtype":"char [32]" }, + { "fieldname":"m_szMap", "fieldtype":"char [32]" }, + { "fieldname":"m_szGameDescription", "fieldtype":"char [64]" }, + { "fieldname":"m_nAppID", "fieldtype":"uint32" }, + { "fieldname":"m_nPlayers", "fieldtype":"int" }, + { "fieldname":"m_nMaxPlayers", "fieldtype":"int" }, + { "fieldname":"m_nBotPlayers", "fieldtype":"int" }, + { "fieldname":"m_bPassword", "fieldtype":"bool" }, + { "fieldname":"m_bSecure", "fieldtype":"bool" }, + { "fieldname":"m_ulTimeLastPlayed", "fieldtype":"uint32" }, + { "fieldname":"m_nServerVersion", "fieldtype":"int" }, + { + "fieldname": "m_szServerName", + "fieldtype": "char [64]", + "private": true + }, + { "fieldname":"m_szGameTags", "fieldtype":"char [128]" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" } + ], + "methods": [ + { + "methodname": "Construct", + "methodname_flat": "SteamAPI_gameserveritem_t_Construct", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetName", + "methodname_flat": "SteamAPI_gameserveritem_t_GetName", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "SetName", + "methodname_flat": "SteamAPI_gameserveritem_t_SetName", + "params": [ + { "paramname":"pName", "paramtype":"const char *" } + ], + "returntype": "void" + } + ], + "struct": "gameserveritem_t" + }, + { + "fields": [ + { "fieldname":"m_eType", "fieldtype":"ESteamPartyBeaconLocationType" }, + { "fieldname":"m_ulLocationID", "fieldtype":"uint64" } + ], + "struct": "SteamPartyBeaconLocation_t" + }, + { + "fields": [ + { "fieldname":"m_ppStrings", "fieldtype":"const char **" }, + { "fieldname":"m_nNumStrings", "fieldtype":"int32" } + ], + "struct": "SteamParamStringArray_t" + }, + { + "fields": [ + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_nGlobalRank", "fieldtype":"int32" }, + { "fieldname":"m_nScore", "fieldtype":"int32" }, + { "fieldname":"m_cDetails", "fieldtype":"int32" }, + { "fieldname":"m_hUGC", "fieldtype":"UGCHandle_t" } + ], + "struct": "LeaderboardEntry_t" + }, + { + "fields": [ + { "fieldname":"m_bConnectionActive", "fieldtype":"uint8" }, + { "fieldname":"m_bConnecting", "fieldtype":"uint8" }, + { "fieldname":"m_eP2PSessionError", "fieldtype":"uint8" }, + { "fieldname":"m_bUsingRelay", "fieldtype":"uint8" }, + { "fieldname":"m_nBytesQueuedForSend", "fieldtype":"int32" }, + { "fieldname":"m_nPacketsQueuedForSend", "fieldtype":"int32" }, + { "fieldname":"m_nRemoteIP", "fieldtype":"uint32" }, + { "fieldname":"m_nRemotePort", "fieldtype":"uint16" } + ], + "struct": "P2PSessionState_t" + }, + { + "fields": [ + { "fieldname":"eMode", "fieldtype":"EInputSourceMode" }, + { "fieldname":"x", "fieldtype":"float" }, + { "fieldname":"y", "fieldtype":"float" }, + { "fieldname":"bActive", "fieldtype":"bool" } + ], + "struct": "InputAnalogActionData_t" + }, + { + "fields": [ + { "fieldname":"bState", "fieldtype":"bool" }, + { "fieldname":"bActive", "fieldtype":"bool" } + ], + "struct": "InputDigitalActionData_t" + }, + { + "fields": [ + { "fieldname":"rotQuatX", "fieldtype":"float" }, + { "fieldname":"rotQuatY", "fieldtype":"float" }, + { "fieldname":"rotQuatZ", "fieldtype":"float" }, + { "fieldname":"rotQuatW", "fieldtype":"float" }, + { "fieldname":"posAccelX", "fieldtype":"float" }, + { "fieldname":"posAccelY", "fieldtype":"float" }, + { "fieldname":"posAccelZ", "fieldtype":"float" }, + { "fieldname":"rotVelX", "fieldtype":"float" }, + { "fieldname":"rotVelY", "fieldtype":"float" }, + { "fieldname":"rotVelZ", "fieldtype":"float" } + ], + "struct": "InputMotionData_t" + }, + { + "fields": [ + { "fieldname":"controllerHandle", "fieldtype":"InputHandle_t" }, + { "fieldname":"eEventType", "fieldtype":"ESteamInputActionEventType" }, + { "fieldname":"analogAction", "fieldtype":"SteamInputActionEvent_t::AnalogAction_t" } + ], + "struct": "SteamInputActionEvent_t" + }, + { + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_eFileType", "fieldtype":"EWorkshopFileType" }, + { "fieldname":"m_nCreatorAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nConsumerAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_rgchTitle", "fieldtype":"char [129]" }, + { "fieldname":"m_rgchDescription", "fieldtype":"char [8000]" }, + { "fieldname":"m_ulSteamIDOwner", "fieldtype":"uint64" }, + { "fieldname":"m_rtimeCreated", "fieldtype":"uint32" }, + { "fieldname":"m_rtimeUpdated", "fieldtype":"uint32" }, + { "fieldname":"m_rtimeAddedToUserList", "fieldtype":"uint32" }, + { "fieldname":"m_eVisibility", "fieldtype":"ERemoteStoragePublishedFileVisibility" }, + { "fieldname":"m_bBanned", "fieldtype":"bool" }, + { "fieldname":"m_bAcceptedForUse", "fieldtype":"bool" }, + { "fieldname":"m_bTagsTruncated", "fieldtype":"bool" }, + { "fieldname":"m_rgchTags", "fieldtype":"char [1025]" }, + { "fieldname":"m_hFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_hPreviewFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_pchFileName", "fieldtype":"char [260]" }, + { "fieldname":"m_nFileSize", "fieldtype":"int32" }, + { "fieldname":"m_nPreviewFileSize", "fieldtype":"int32" }, + { "fieldname":"m_rgchURL", "fieldtype":"char [256]" }, + { "fieldname":"m_unVotesUp", "fieldtype":"uint32" }, + { "fieldname":"m_unVotesDown", "fieldtype":"uint32" }, + { "fieldname":"m_flScore", "fieldtype":"float" }, + { "fieldname":"m_unNumChildren", "fieldtype":"uint32" } + ], + "struct": "SteamUGCDetails_t" + }, + { + "fields": [ + { "fieldname":"m_itemId", "fieldtype":"SteamItemInstanceID_t" }, + { "fieldname":"m_iDefinition", "fieldtype":"SteamItemDef_t" }, + { "fieldname":"m_unQuantity", "fieldtype":"uint16" }, + { "fieldname":"m_unFlags", "fieldtype":"uint16" } + ], + "struct": "SteamItemDetails_t" + }, + { + "consts": [ + { "constname":"k_cchMaxString", "consttype":"int", "constval":"48" } + ], + "fields": [ + { "fieldname":"m_ipv6", "fieldtype":"uint8 [16]" }, + { "fieldname":"m_port", "fieldtype":"uint16" } + ], + "methods": [ + { + "methodname": "Clear", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_Clear", + "params": [], + "returntype": "void" + }, + { + "methodname": "IsIPv6AllZeros", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsIPv6AllZeros", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetIPv6", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_SetIPv6", + "params": [ + { "paramname":"ipv6", "paramtype":"const uint8 *" }, + { "paramname":"nPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "SetIPv4", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_SetIPv4", + "params": [ + { "paramname":"nIP", "paramtype":"uint32" }, + { "paramname":"nPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "IsIPv4", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsIPv4", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetIPv4", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_GetIPv4", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetIPv6LocalHost", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_SetIPv6LocalHost", + "params": [ + { "paramname":"nPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "IsLocalHost", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsLocalHost", + "params": [], + "returntype": "bool" + }, + { + "methodname": "ToString", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_ToString", + "params": [ + { "paramname":"buf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"uint32" }, + { "paramname":"bWithPort", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "ParseString", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_ParseString", + "params": [ + { "paramname":"pszStr", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "operator==", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsEqualTo", + "params": [ + { "paramname":"x", "paramtype":"const SteamNetworkingIPAddr &" } + ], + "returntype": "bool" + }, + { + "methodname": "GetFakeIPType", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_GetFakeIPType", + "params": [], + "returntype": "ESteamNetworkingFakeIPType" + }, + { + "methodname": "IsFakeIP", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsFakeIP", + "params": [], + "returntype": "bool" + } + ], + "struct": "SteamNetworkingIPAddr" + }, + { + "consts": [ + { "constname":"k_cchMaxString", "consttype":"int", "constval":"128" }, + { "constname":"k_cchMaxGenericString", "consttype":"int", "constval":"32" }, + { "constname":"k_cchMaxXboxPairwiseID", "consttype":"int", "constval":"33" }, + { "constname":"k_cbMaxGenericBytes", "consttype":"int", "constval":"32" } + ], + "fields": [ + { "fieldname":"m_eType", "fieldtype":"ESteamNetworkingIdentityType" }, + { "fieldname":"m_cbSize", "fieldtype":"int" }, + { "fieldname":"m_szUnknownRawString", "fieldtype":"char [128]" } + ], + "methods": [ + { + "methodname": "Clear", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_Clear", + "params": [], + "returntype": "void" + }, + { + "methodname": "IsInvalid", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_IsInvalid", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetSteamID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetSteamID", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "GetSteamID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetSteamID", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "SetSteamID64", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetSteamID64", + "params": [ + { "paramname":"steamID", "paramtype":"uint64" } + ], + "returntype": "void" + }, + { + "methodname": "GetSteamID64", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetSteamID64", + "params": [], + "returntype": "uint64" + }, + { + "methodname": "SetXboxPairwiseID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetXboxPairwiseID", + "params": [ + { "paramname":"pszString", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetXboxPairwiseID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetXboxPairwiseID", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "SetPSNID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetPSNID", + "params": [ + { "paramname":"id", "paramtype":"uint64" } + ], + "returntype": "void" + }, + { + "methodname": "GetPSNID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetPSNID", + "params": [], + "returntype": "uint64" + }, + { + "methodname": "SetStadiaID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetStadiaID", + "params": [ + { "paramname":"id", "paramtype":"uint64" } + ], + "returntype": "void" + }, + { + "methodname": "GetStadiaID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetStadiaID", + "params": [], + "returntype": "uint64" + }, + { + "methodname": "SetIPAddr", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetIPAddr", + "params": [ + { "paramname":"addr", "paramtype":"const SteamNetworkingIPAddr &" } + ], + "returntype": "void" + }, + { + "methodname": "GetIPAddr", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetIPAddr", + "params": [], + "returntype": "const SteamNetworkingIPAddr *" + }, + { + "methodname": "SetIPv4Addr", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetIPv4Addr", + "params": [ + { "paramname":"nIPv4", "paramtype":"uint32" }, + { "paramname":"nPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetIPv4", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetIPv4", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetFakeIPType", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetFakeIPType", + "params": [], + "returntype": "ESteamNetworkingFakeIPType" + }, + { + "methodname": "IsFakeIP", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_IsFakeIP", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetLocalHost", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetLocalHost", + "params": [], + "returntype": "void" + }, + { + "methodname": "IsLocalHost", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_IsLocalHost", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetGenericString", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetGenericString", + "params": [ + { "paramname":"pszString", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGenericString", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetGenericString", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "SetGenericBytes", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetGenericBytes", + "params": [ + { "paramname":"data", "paramtype":"const void *" }, + { "paramname":"cbLen", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGenericBytes", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetGenericBytes", + "params": [ + { "paramname":"cbLen", "paramtype":"int &" } + ], + "returntype": "const uint8 *" + }, + { + "methodname": "operator==", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_IsEqualTo", + "params": [ + { "paramname":"x", "paramtype":"const SteamNetworkingIdentity &" } + ], + "returntype": "bool" + }, + { + "methodname": "ToString", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_ToString", + "params": [ + { "paramname":"buf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "ParseString", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_ParseString", + "params": [ + { "paramname":"pszStr", "paramtype":"const char *" } + ], + "returntype": "bool" + } + ], + "struct": "SteamNetworkingIdentity" + }, + { + "fields": [ + { "fieldname":"m_identityRemote", "fieldtype":"SteamNetworkingIdentity" }, + { "fieldname":"m_nUserData", "fieldtype":"int64" }, + { "fieldname":"m_hListenSocket", "fieldtype":"HSteamListenSocket" }, + { "fieldname":"m_addrRemote", "fieldtype":"SteamNetworkingIPAddr" }, + { "fieldname":"m__pad1", "fieldtype":"uint16" }, + { "fieldname":"m_idPOPRemote", "fieldtype":"SteamNetworkingPOPID" }, + { "fieldname":"m_idPOPRelay", "fieldtype":"SteamNetworkingPOPID" }, + { "fieldname":"m_eState", "fieldtype":"ESteamNetworkingConnectionState" }, + { "fieldname":"m_eEndReason", "fieldtype":"int" }, + { "fieldname":"m_szEndDebug", "fieldtype":"char [128]" }, + { "fieldname":"m_szConnectionDescription", "fieldtype":"char [128]" }, + { "fieldname":"m_nFlags", "fieldtype":"int" }, + { "fieldname":"reserved", "fieldtype":"uint32 [63]" } + ], + "struct": "SteamNetConnectionInfo_t" + }, + { + "fields": [ + { "fieldname":"m_eState", "fieldtype":"ESteamNetworkingConnectionState" }, + { "fieldname":"m_nPing", "fieldtype":"int" }, + { "fieldname":"m_flConnectionQualityLocal", "fieldtype":"float" }, + { "fieldname":"m_flConnectionQualityRemote", "fieldtype":"float" }, + { "fieldname":"m_flOutPacketsPerSec", "fieldtype":"float" }, + { "fieldname":"m_flOutBytesPerSec", "fieldtype":"float" }, + { "fieldname":"m_flInPacketsPerSec", "fieldtype":"float" }, + { "fieldname":"m_flInBytesPerSec", "fieldtype":"float" }, + { "fieldname":"m_nSendRateBytesPerSecond", "fieldtype":"int" }, + { "fieldname":"m_cbPendingUnreliable", "fieldtype":"int" }, + { "fieldname":"m_cbPendingReliable", "fieldtype":"int" }, + { "fieldname":"m_cbSentUnackedReliable", "fieldtype":"int" }, + { "fieldname":"m_usecQueueTime", "fieldtype":"SteamNetworkingMicroseconds" }, + { "fieldname":"reserved", "fieldtype":"uint32 [16]" } + ], + "struct": "SteamNetConnectionRealTimeStatus_t" + }, + { + "fields": [ + { "fieldname":"m_cbPendingUnreliable", "fieldtype":"int" }, + { "fieldname":"m_cbPendingReliable", "fieldtype":"int" }, + { "fieldname":"m_cbSentUnackedReliable", "fieldtype":"int" }, + { "fieldname":"_reservePad1", "fieldtype":"int" }, + { "fieldname":"m_usecQueueTime", "fieldtype":"SteamNetworkingMicroseconds" }, + { "fieldname":"reserved", "fieldtype":"uint32 [10]" } + ], + "struct": "SteamNetConnectionRealTimeLaneStatus_t" + }, + { + "fields": [ + { "fieldname":"m_pData", "fieldtype":"void *" }, + { "fieldname":"m_cbSize", "fieldtype":"int" }, + { "fieldname":"m_conn", "fieldtype":"HSteamNetConnection" }, + { "fieldname":"m_identityPeer", "fieldtype":"SteamNetworkingIdentity" }, + { "fieldname":"m_nConnUserData", "fieldtype":"int64" }, + { "fieldname":"m_usecTimeReceived", "fieldtype":"SteamNetworkingMicroseconds" }, + { "fieldname":"m_nMessageNumber", "fieldtype":"int64" }, + { "fieldname":"m_pfnFreeData", "fieldtype":"void (*)(SteamNetworkingMessage_t *)" }, + { "fieldname":"m_pfnRelease", "fieldtype":"void (*)(SteamNetworkingMessage_t *)" }, + { "fieldname":"m_nChannel", "fieldtype":"int" }, + { "fieldname":"m_nFlags", "fieldtype":"int" }, + { "fieldname":"m_nUserData", "fieldtype":"int64" }, + { "fieldname":"m_idxLane", "fieldtype":"uint16" }, + { "fieldname":"_pad1__", "fieldtype":"uint16" } + ], + "methods": [ + { + "methodname": "Release", + "methodname_flat": "SteamAPI_SteamNetworkingMessage_t_Release", + "params": [], + "returntype": "void" + } + ], + "struct": "SteamNetworkingMessage_t" + }, + { + "fields": [ + { "fieldname":"m_data", "fieldtype":"uint8 [512]" } + ], + "struct": "SteamNetworkPingLocation_t" + }, + { + "fields": [ + { "fieldname":"m_eValue", "fieldtype":"ESteamNetworkingConfigValue" }, + { "fieldname":"m_eDataType", "fieldtype":"ESteamNetworkingConfigDataType" }, + { "fieldname":"m_int64", "fieldtype":"int64_t" } + ], + "methods": [ + { + "methodname": "SetInt32", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetInt32", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"int32_t" } + ], + "returntype": "void" + }, + { + "methodname": "SetInt64", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetInt64", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"int64_t" } + ], + "returntype": "void" + }, + { + "methodname": "SetFloat", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetFloat", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"float" } + ], + "returntype": "void" + }, + { + "methodname": "SetPtr", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetPtr", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"void *" } + ], + "returntype": "void" + }, + { + "methodname": "SetString", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetString", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"const char *" } + ], + "returntype": "void" + } + ], + "struct": "SteamNetworkingConfigValue_t" + }, + { + "fields": [ + { "fieldname":"m_cbSize", "fieldtype":"int" }, + { "fieldname":"m_data", "fieldtype":"char [128]" } + ], + "methods": [ + { + "methodname": "Clear", + "methodname_flat": "SteamAPI_SteamDatagramHostedAddress_Clear", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetPopID", + "methodname_flat": "SteamAPI_SteamDatagramHostedAddress_GetPopID", + "params": [], + "returntype": "SteamNetworkingPOPID" + }, + { + "methodname": "SetDevAddress", + "methodname_flat": "SteamAPI_SteamDatagramHostedAddress_SetDevAddress", + "params": [ + { "paramname":"nIP", "paramtype":"uint32" }, + { "paramname":"nPort", "paramtype":"uint16" }, + { "paramname":"popid", "paramtype":"SteamNetworkingPOPID" } + ], + "returntype": "void" + } + ], + "struct": "SteamDatagramHostedAddress" + }, + { + "fields": [ + { "fieldname":"m_identity", "fieldtype":"SteamNetworkingIdentity" }, + { "fieldname":"m_routing", "fieldtype":"SteamDatagramHostedAddress" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_rtime", "fieldtype":"RTime32" }, + { "fieldname":"m_cbAppData", "fieldtype":"int" }, + { "fieldname":"m_appData", "fieldtype":"char [2048]" } + ], + "struct": "SteamDatagramGameCoordinatorServerLogin" + } + ], + "typedefs": [ + { "typedef":"uint8", "type":"unsigned char" }, + { "typedef":"int8", "type":"signed char" }, + { "typedef":"int16", "type":"short" }, + { "typedef":"uint16", "type":"unsigned short" }, + { "typedef":"int32", "type":"int" }, + { "typedef":"uint32", "type":"unsigned int" }, + { "typedef":"int64", "type":"long long" }, + { "typedef":"uint64", "type":"unsigned long long" }, + { "typedef":"lint64", "type":"long long" }, + { "typedef":"ulint64", "type":"unsigned long long" }, + { "typedef":"intp", "type":"long long" }, + { "typedef":"uintp", "type":"unsigned long long" }, + { "typedef":"AppId_t", "type":"unsigned int" }, + { "typedef":"DepotId_t", "type":"unsigned int" }, + { "typedef":"RTime32", "type":"unsigned int" }, + { "typedef":"SteamAPICall_t", "type":"unsigned long long" }, + { "typedef":"AccountID_t", "type":"unsigned int" }, + { "typedef":"PartyBeaconID_t", "type":"unsigned long long" }, + { "typedef":"HAuthTicket", "type":"unsigned int" }, + { "typedef":"PFNPreMinidumpCallback", "type":"void (*)(void *)" }, + { "typedef":"HSteamPipe", "type":"int" }, + { "typedef":"HSteamUser", "type":"int" }, + { "typedef":"SteamErrMsg", "type":"char [1024]" }, + { "typedef":"FriendsGroupID_t", "type":"short" }, + { "typedef":"HServerListRequest", "type":"void *" }, + { "typedef":"HServerQuery", "type":"int" }, + { "typedef":"UGCHandle_t", "type":"unsigned long long" }, + { "typedef":"PublishedFileUpdateHandle_t", "type":"unsigned long long" }, + { "typedef":"PublishedFileId_t", "type":"unsigned long long" }, + { "typedef":"UGCFileWriteStreamHandle_t", "type":"unsigned long long" }, + { "typedef":"SteamLeaderboard_t", "type":"unsigned long long" }, + { "typedef":"SteamLeaderboardEntries_t", "type":"unsigned long long" }, + { "typedef":"SNetSocket_t", "type":"unsigned int" }, + { "typedef":"SNetListenSocket_t", "type":"unsigned int" }, + { "typedef":"ScreenshotHandle", "type":"unsigned int" }, + { "typedef":"HTTPRequestHandle", "type":"unsigned int" }, + { "typedef":"HTTPCookieContainerHandle", "type":"unsigned int" }, + { "typedef":"InputHandle_t", "type":"unsigned long long" }, + { "typedef":"InputActionSetHandle_t", "type":"unsigned long long" }, + { "typedef":"InputDigitalActionHandle_t", "type":"unsigned long long" }, + { "typedef":"InputAnalogActionHandle_t", "type":"unsigned long long" }, + { "typedef":"SteamInputActionEventCallbackPointer", "type":"void (*)(SteamInputActionEvent_t *)" }, + { "typedef":"ControllerHandle_t", "type":"unsigned long long" }, + { "typedef":"ControllerActionSetHandle_t", "type":"unsigned long long" }, + { "typedef":"ControllerDigitalActionHandle_t", "type":"unsigned long long" }, + { "typedef":"ControllerAnalogActionHandle_t", "type":"unsigned long long" }, + { "typedef":"UGCQueryHandle_t", "type":"unsigned long long" }, + { "typedef":"UGCUpdateHandle_t", "type":"unsigned long long" }, + { "typedef":"HHTMLBrowser", "type":"unsigned int" }, + { "typedef":"SteamItemInstanceID_t", "type":"unsigned long long" }, + { "typedef":"SteamItemDef_t", "type":"int" }, + { "typedef":"SteamInventoryResult_t", "type":"int" }, + { "typedef":"SteamInventoryUpdateHandle_t", "type":"unsigned long long" }, + { "typedef":"RemotePlaySessionID_t", "type":"unsigned int" }, + { "typedef":"FnSteamNetConnectionStatusChanged", "type":"void (*)(SteamNetConnectionStatusChangedCallback_t *)" }, + { "typedef":"FnSteamNetAuthenticationStatusChanged", "type":"void (*)(SteamNetAuthenticationStatus_t *)" }, + { "typedef":"FnSteamRelayNetworkStatusChanged", "type":"void (*)(SteamRelayNetworkStatus_t *)" }, + { "typedef":"FnSteamNetworkingMessagesSessionRequest", "type":"void (*)(SteamNetworkingMessagesSessionRequest_t *)" }, + { "typedef":"FnSteamNetworkingMessagesSessionFailed", "type":"void (*)(SteamNetworkingMessagesSessionFailed_t *)" }, + { "typedef":"FnSteamNetworkingFakeIPResult", "type":"void (*)(SteamNetworkingFakeIPResult_t *)" }, + { "typedef":"HSteamNetConnection", "type":"unsigned int" }, + { "typedef":"HSteamListenSocket", "type":"unsigned int" }, + { "typedef":"HSteamNetPollGroup", "type":"unsigned int" }, + { "typedef":"SteamNetworkingErrMsg", "type":"char [1024]" }, + { "typedef":"SteamNetworkingPOPID", "type":"unsigned int" }, + { "typedef":"SteamNetworkingMicroseconds", "type":"long long" }, + { "typedef":"FSteamNetworkingSocketsDebugOutput", "type":"void (*)(ESteamNetworkingSocketsDebugOutputType, const char *)" } + ] } -,{ - "classname": "ISteamClient", - "methodname": "BReleaseSteamPipe", - "returntype": "bool", - "params": [ -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "ConnectToGlobalUser", - "returntype": "HSteamUser", - "params": [ -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "CreateLocalUser", - "returntype": "HSteamUser", - "params": [ -{ "paramname": "phSteamPipe" ,"paramtype": "HSteamPipe *"}, -{ "paramname": "eAccountType" ,"paramtype": "EAccountType"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "ReleaseUser", - "returntype": "void", - "params": [ -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "hUser" ,"paramtype": "HSteamUser"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUser", - "returntype": "class ISteamUser *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamGameServer", - "returntype": "class ISteamGameServer *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "SetLocalIPBinding", - "returntype": "void", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usPort" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamFriends", - "returntype": "class ISteamFriends *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUtils", - "returntype": "class ISteamUtils *", - "params": [ -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamMatchmaking", - "returntype": "class ISteamMatchmaking *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamMatchmakingServers", - "returntype": "class ISteamMatchmakingServers *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamGenericInterface", - "returntype": "void *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUserStats", - "returntype": "class ISteamUserStats *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamGameServerStats", - "returntype": "class ISteamGameServerStats *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamApps", - "returntype": "class ISteamApps *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamNetworking", - "returntype": "class ISteamNetworking *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamRemoteStorage", - "returntype": "class ISteamRemoteStorage *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamScreenshots", - "returntype": "class ISteamScreenshots *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetIPCCallCount", - "returntype": "uint32" -} -,{ - "classname": "ISteamClient", - "methodname": "SetWarningMessageHook", - "returntype": "void", - "params": [ -{ "paramname": "pFunction" ,"paramtype": "SteamAPIWarningMessageHook_t"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "BShutdownIfAllPipesClosed", - "returntype": "bool" -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamHTTP", - "returntype": "class ISteamHTTP *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUnifiedMessages", - "returntype": "class ISteamUnifiedMessages *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamController", - "returntype": "class ISteamController *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUGC", - "returntype": "class ISteamUGC *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamAppList", - "returntype": "class ISteamAppList *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamMusic", - "returntype": "class ISteamMusic *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamMusicRemote", - "returntype": "class ISteamMusicRemote *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamHTMLSurface", - "returntype": "class ISteamHTMLSurface *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamInventory", - "returntype": "class ISteamInventory *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamVideo", - "returntype": "class ISteamVideo *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetHSteamUser", - "returntype": "HSteamUser" -} -,{ - "classname": "ISteamUser", - "methodname": "BLoggedOn", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "GetSteamID", - "returntype": "class CSteamID" -} -,{ - "classname": "ISteamUser", - "methodname": "InitiateGameConnection", - "returntype": "int", - "params": [ -{ "paramname": "pAuthBlob" ,"paramtype": "void *"}, -{ "paramname": "cbMaxAuthBlob" ,"paramtype": "int"}, -{ "paramname": "steamIDGameServer" ,"paramtype": "class CSteamID"}, -{ "paramname": "unIPServer" ,"paramtype": "uint32"}, -{ "paramname": "usPortServer" ,"paramtype": "uint16"}, -{ "paramname": "bSecure" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "TerminateGameConnection", - "returntype": "void", - "params": [ -{ "paramname": "unIPServer" ,"paramtype": "uint32"}, -{ "paramname": "usPortServer" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "TrackAppUsageEvent", - "returntype": "void", - "params": [ -{ "paramname": "gameID" ,"paramtype": "class CGameID"}, -{ "paramname": "eAppUsageEvent" ,"paramtype": "int"}, -{ "paramname": "pchExtraInfo" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetUserDataFolder", - "returntype": "bool", - "params": [ -{ "paramname": "pchBuffer" ,"paramtype": "char *"}, -{ "paramname": "cubBuffer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "StartVoiceRecording", - "returntype": "void" -} -,{ - "classname": "ISteamUser", - "methodname": "StopVoiceRecording", - "returntype": "void" -} -,{ - "classname": "ISteamUser", - "methodname": "GetAvailableVoice", - "returntype": "EVoiceResult", - "params": [ -{ "paramname": "pcbCompressed" ,"paramtype": "uint32 *"}, -{ "paramname": "pcbUncompressed" ,"paramtype": "uint32 *"}, -{ "paramname": "nUncompressedVoiceDesiredSampleRate" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetVoice", - "returntype": "EVoiceResult", - "params": [ -{ "paramname": "bWantCompressed" ,"paramtype": "bool"}, -{ "paramname": "pDestBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbDestBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "nBytesWritten" ,"paramtype": "uint32 *"}, -{ "paramname": "bWantUncompressed" ,"paramtype": "bool"}, -{ "paramname": "pUncompressedDestBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbUncompressedDestBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "nUncompressBytesWritten" ,"paramtype": "uint32 *"}, -{ "paramname": "nUncompressedVoiceDesiredSampleRate" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "DecompressVoice", - "returntype": "EVoiceResult", - "params": [ -{ "paramname": "pCompressed" ,"paramtype": "const void *"}, -{ "paramname": "cbCompressed" ,"paramtype": "uint32"}, -{ "paramname": "pDestBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbDestBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "nBytesWritten" ,"paramtype": "uint32 *"}, -{ "paramname": "nDesiredSampleRate" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetVoiceOptimalSampleRate", - "returntype": "uint32" -} -,{ - "classname": "ISteamUser", - "methodname": "GetAuthSessionTicket", - "returntype": "HAuthTicket", - "params": [ -{ "paramname": "pTicket" ,"paramtype": "void *"}, -{ "paramname": "cbMaxTicket" ,"paramtype": "int"}, -{ "paramname": "pcbTicket" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "BeginAuthSession", - "returntype": "EBeginAuthSessionResult", - "params": [ -{ "paramname": "pAuthTicket" ,"paramtype": "const void *"}, -{ "paramname": "cbAuthTicket" ,"paramtype": "int"}, -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "EndAuthSession", - "returntype": "void", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "CancelAuthTicket", - "returntype": "void", - "params": [ -{ "paramname": "hAuthTicket" ,"paramtype": "HAuthTicket"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "UserHasLicenseForApp", - "returntype": "EUserHasLicenseForAppResult", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"}, -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "BIsBehindNAT", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "AdvertiseGame", - "returntype": "void", - "params": [ -{ "paramname": "steamIDGameServer" ,"paramtype": "class CSteamID"}, -{ "paramname": "unIPServer" ,"paramtype": "uint32"}, -{ "paramname": "usPortServer" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "RequestEncryptedAppTicket", "callresult": "EncryptedAppTicketResponse_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pDataToInclude" ,"paramtype": "void *"}, -{ "paramname": "cbDataToInclude" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetEncryptedAppTicket", - "returntype": "bool", - "params": [ -{ "paramname": "pTicket" ,"paramtype": "void *"}, -{ "paramname": "cbMaxTicket" ,"paramtype": "int"}, -{ "paramname": "pcbTicket" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetGameBadgeLevel", - "returntype": "int", - "params": [ -{ "paramname": "nSeries" ,"paramtype": "int"}, -{ "paramname": "bFoil" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetPlayerSteamLevel", - "returntype": "int" -} -,{ - "classname": "ISteamUser", - "methodname": "RequestStoreAuthURL", "callresult": "StoreAuthURLResponse_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchRedirectURL" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "BIsPhoneVerified", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "BIsTwoFactorEnabled", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "BIsPhoneIdentifying", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "BIsPhoneRequiringVerification", - "returntype": "bool" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetPersonaName", - "returntype": "const char *" -} -,{ - "classname": "ISteamFriends", - "methodname": "SetPersonaName", "callresult": "SetPersonaNameResponse_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchPersonaName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetPersonaState", - "returntype": "EPersonaState" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendCount", - "returntype": "int", - "params": [ -{ "paramname": "iFriendFlags" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "iFriend" ,"paramtype": "int"}, -{ "paramname": "iFriendFlags" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendRelationship", - "returntype": "EFriendRelationship", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendPersonaState", - "returntype": "EPersonaState", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendPersonaName", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendGamePlayed", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "pFriendGameInfo" ,"out_struct": " " ,"paramtype": "struct FriendGameInfo_t *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendPersonaNameHistory", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "iPersonaName" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendSteamLevel", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetPlayerNickname", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDPlayer" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupCount", - "returntype": "int" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupIDByIndex", - "returntype": "FriendsGroupID_t", - "params": [ -{ "paramname": "iFG" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupName", - "returntype": "const char *", - "params": [ -{ "paramname": "friendsGroupID" ,"paramtype": "FriendsGroupID_t"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupMembersCount", - "returntype": "int", - "params": [ -{ "paramname": "friendsGroupID" ,"paramtype": "FriendsGroupID_t"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupMembersList", - "returntype": "void", - "params": [ -{ "paramname": "friendsGroupID" ,"paramtype": "FriendsGroupID_t"}, -{ "paramname": "pOutSteamIDMembers" ,"out_array_call": "nMembersCount,GetFriendsGroupMembersCount,friendsGroupID" ,"paramtype": "class CSteamID *"}, -{ "paramname": "nMembersCount" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "HasFriend", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "iFriendFlags" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanCount", - "returntype": "int" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "iClan" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanName", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanTag", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanActivityCounts", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"}, -{ "paramname": "pnOnline" ,"paramtype": "int *"}, -{ "paramname": "pnInGame" ,"paramtype": "int *"}, -{ "paramname": "pnChatting" ,"paramtype": "int *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "DownloadClanActivityCounts", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "psteamIDClans" ,"array_count": "cClansToRequest" ,"paramtype": "class CSteamID *"}, -{ "paramname": "cClansToRequest" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendCountFromSource", - "returntype": "int", - "params": [ -{ "paramname": "steamIDSource" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendFromSourceByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDSource" ,"paramtype": "class CSteamID"}, -{ "paramname": "iFriend" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "IsUserInSource", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDSource" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "SetInGameVoiceSpeaking", - "returntype": "void", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "bSpeaking" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlay", - "returntype": "void", - "params": [ -{ "paramname": "pchDialog" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlayToUser", - "returntype": "void", - "params": [ -{ "paramname": "pchDialog" ,"paramtype": "const char *"}, -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlayToWebPage", - "returntype": "void", - "params": [ -{ "paramname": "pchURL" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlayToStore", - "returntype": "void", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "eFlag" ,"paramtype": "EOverlayToStoreFlag"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "SetPlayedWith", - "returntype": "void", - "params": [ -{ "paramname": "steamIDUserPlayedWith" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlayInviteDialog", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetSmallFriendAvatar", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetMediumFriendAvatar", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetLargeFriendAvatar", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "RequestUserInformation", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "bRequireNameOnly" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "RequestClanOfficerList", "callresult": "ClanOfficerListResponse_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanOwner", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanOfficerCount", - "returntype": "int", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanOfficerByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"}, -{ "paramname": "iOfficer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetUserRestrictions", - "returntype": "uint32" -} -,{ - "classname": "ISteamFriends", - "methodname": "SetRichPresence", - "returntype": "bool", - "params": [ -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ClearRichPresence", - "returntype": "void" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendRichPresence", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendRichPresenceKeyCount", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendRichPresenceKeyByIndex", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "iKey" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "RequestFriendRichPresence", - "returntype": "void", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "InviteUserToGame", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchConnectString" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetCoplayFriendCount", - "returntype": "int" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetCoplayFriend", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "iCoplayFriend" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendCoplayTime", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendCoplayGame", - "returntype": "AppId_t", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "JoinClanChatRoom", "callresult": "JoinClanChatRoomCompletionResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "LeaveClanChatRoom", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanChatMemberCount", - "returntype": "int", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetChatMemberByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"}, -{ "paramname": "iUser" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "SendClanChatMessage", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanChatMessage", - "returntype": "int", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"}, -{ "paramname": "iMessage" ,"paramtype": "int"}, -{ "paramname": "prgchText" ,"paramtype": "void *"}, -{ "paramname": "cchTextMax" ,"paramtype": "int"}, -{ "paramname": "peChatEntryType" ,"paramtype": "EChatEntryType *"}, -{ "paramname": "psteamidChatter" ,"out_struct": " " ,"paramtype": "class CSteamID *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "IsClanChatAdmin", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "IsClanChatWindowOpenInSteam", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "OpenClanChatWindowInSteam", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "CloseClanChatWindowInSteam", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "SetListenForFriendsMessages", - "returntype": "bool", - "params": [ -{ "paramname": "bInterceptEnabled" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ReplyToFriendMessage", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchMsgToSend" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendMessage", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "iMessageID" ,"paramtype": "int"}, -{ "paramname": "pvData" ,"paramtype": "void *"}, -{ "paramname": "cubData" ,"paramtype": "int"}, -{ "paramname": "peChatEntryType" ,"paramtype": "EChatEntryType *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFollowerCount", "callresult": "FriendsGetFollowerCount_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "IsFollowing", "callresult": "FriendsIsFollowing_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "EnumerateFollowingList", "callresult": "FriendsEnumerateFollowingList_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unStartIndex" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetSecondsSinceAppActive", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetSecondsSinceComputerActive", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetConnectedUniverse", - "returntype": "EUniverse" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetServerRealTime", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetIPCountry", - "returntype": "const char *" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetImageSize", - "returntype": "bool", - "params": [ -{ "paramname": "iImage" ,"paramtype": "int"}, -{ "paramname": "pnWidth" ,"paramtype": "uint32 *"}, -{ "paramname": "pnHeight" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetImageRGBA", - "returntype": "bool", - "params": [ -{ "paramname": "iImage" ,"paramtype": "int"}, -{ "paramname": "pubDest" ,"paramtype": "uint8 *"}, -{ "paramname": "nDestBufferSize" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetCSERIPPort", - "returntype": "bool", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32 *"}, -{ "paramname": "usPort" ,"paramtype": "uint16 *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetCurrentBatteryPower", - "returntype": "uint8" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetAppID", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "SetOverlayNotificationPosition", - "returntype": "void", - "params": [ -{ "paramname": "eNotificationPosition" ,"paramtype": "ENotificationPosition"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "IsAPICallCompleted", - "returntype": "bool", - "params": [ -{ "paramname": "hSteamAPICall" ,"paramtype": "SteamAPICall_t"}, -{ "paramname": "pbFailed" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetAPICallFailureReason", - "returntype": "ESteamAPICallFailure", - "params": [ -{ "paramname": "hSteamAPICall" ,"paramtype": "SteamAPICall_t"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetAPICallResult", - "returntype": "bool", - "params": [ -{ "paramname": "hSteamAPICall" ,"paramtype": "SteamAPICall_t"}, -{ "paramname": "pCallback" ,"paramtype": "void *"}, -{ "paramname": "cubCallback" ,"paramtype": "int"}, -{ "paramname": "iCallbackExpected" ,"paramtype": "int"}, -{ "paramname": "pbFailed" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetIPCCallCount", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "SetWarningMessageHook", - "returntype": "void", - "params": [ -{ "paramname": "pFunction" ,"paramtype": "SteamAPIWarningMessageHook_t"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "IsOverlayEnabled", - "returntype": "bool" -} -,{ - "classname": "ISteamUtils", - "methodname": "BOverlayNeedsPresent", - "returntype": "bool" -} -,{ - "classname": "ISteamUtils", - "methodname": "CheckFileSignature", "callresult": "CheckFileSignature_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "szFileName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "ShowGamepadTextInput", - "returntype": "bool", - "params": [ -{ "paramname": "eInputMode" ,"paramtype": "EGamepadTextInputMode"}, -{ "paramname": "eLineInputMode" ,"paramtype": "EGamepadTextInputLineMode"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"}, -{ "paramname": "unCharMax" ,"paramtype": "uint32"}, -{ "paramname": "pchExistingText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetEnteredGamepadTextLength", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetEnteredGamepadTextInput", - "returntype": "bool", - "params": [ -{ "paramname": "pchText" ,"paramtype": "char *"}, -{ "paramname": "cchText" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetSteamUILanguage", - "returntype": "const char *" -} -,{ - "classname": "ISteamUtils", - "methodname": "IsSteamRunningInVR", - "returntype": "bool" -} -,{ - "classname": "ISteamUtils", - "methodname": "SetOverlayNotificationInset", - "returntype": "void", - "params": [ -{ "paramname": "nHorizontalInset" ,"paramtype": "int"}, -{ "paramname": "nVerticalInset" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "IsSteamInBigPictureMode", - "returntype": "bool" -} -,{ - "classname": "ISteamUtils", - "methodname": "StartVRDashboard", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetFavoriteGameCount", - "returntype": "int" -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetFavoriteGame", - "returntype": "bool", - "params": [ -{ "paramname": "iGame" ,"paramtype": "int"}, -{ "paramname": "pnAppID" ,"paramtype": "AppId_t *"}, -{ "paramname": "pnIP" ,"paramtype": "uint32 *"}, -{ "paramname": "pnConnPort" ,"paramtype": "uint16 *"}, -{ "paramname": "pnQueryPort" ,"paramtype": "uint16 *"}, -{ "paramname": "punFlags" ,"paramtype": "uint32 *"}, -{ "paramname": "pRTime32LastPlayedOnServer" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddFavoriteGame", - "returntype": "int", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "nIP" ,"paramtype": "uint32"}, -{ "paramname": "nConnPort" ,"paramtype": "uint16"}, -{ "paramname": "nQueryPort" ,"paramtype": "uint16"}, -{ "paramname": "unFlags" ,"paramtype": "uint32"}, -{ "paramname": "rTime32LastPlayedOnServer" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "RemoveFavoriteGame", - "returntype": "bool", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "nIP" ,"paramtype": "uint32"}, -{ "paramname": "nConnPort" ,"paramtype": "uint16"}, -{ "paramname": "nQueryPort" ,"paramtype": "uint16"}, -{ "paramname": "unFlags" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "RequestLobbyList", "callresult": "LobbyMatchList_t", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListStringFilter", - "returntype": "void", - "params": [ -{ "paramname": "pchKeyToMatch" ,"paramtype": "const char *"}, -{ "paramname": "pchValueToMatch" ,"paramtype": "const char *"}, -{ "paramname": "eComparisonType" ,"paramtype": "ELobbyComparison"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListNumericalFilter", - "returntype": "void", - "params": [ -{ "paramname": "pchKeyToMatch" ,"paramtype": "const char *"}, -{ "paramname": "nValueToMatch" ,"paramtype": "int"}, -{ "paramname": "eComparisonType" ,"paramtype": "ELobbyComparison"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListNearValueFilter", - "returntype": "void", - "params": [ -{ "paramname": "pchKeyToMatch" ,"paramtype": "const char *"}, -{ "paramname": "nValueToBeCloseTo" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListFilterSlotsAvailable", - "returntype": "void", - "params": [ -{ "paramname": "nSlotsAvailable" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListDistanceFilter", - "returntype": "void", - "params": [ -{ "paramname": "eLobbyDistanceFilter" ,"paramtype": "ELobbyDistanceFilter"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListResultCountFilter", - "returntype": "void", - "params": [ -{ "paramname": "cMaxResults" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListCompatibleMembersFilter", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "iLobby" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "CreateLobby", "callresult": "LobbyCreated_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "eLobbyType" ,"paramtype": "ELobbyType"}, -{ "paramname": "cMaxMembers" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "JoinLobby", "callresult": "LobbyEnter_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "LeaveLobby", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "InviteUserToLobby", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDInvitee" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetNumLobbyMembers", - "returntype": "int", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyMemberByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "iMember" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyData", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyData", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyDataCount", - "returntype": "int", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyDataByIndex", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "iLobbyData" ,"paramtype": "int"}, -{ "paramname": "pchKey" ,"paramtype": "char *"}, -{ "paramname": "cchKeyBufferSize" ,"paramtype": "int"}, -{ "paramname": "pchValue" ,"paramtype": "char *"}, -{ "paramname": "cchValueBufferSize" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "DeleteLobbyData", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyMemberData", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyMemberData", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SendLobbyChatMsg", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pvMsgBody" ,"paramtype": "const void *"}, -{ "paramname": "cubMsgBody" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyChatEntry", - "returntype": "int", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "iChatID" ,"paramtype": "int"}, -{ "paramname": "pSteamIDUser" ,"out_struct": " " ,"paramtype": "class CSteamID *"}, -{ "paramname": "pvData" ,"paramtype": "void *"}, -{ "paramname": "cubData" ,"paramtype": "int"}, -{ "paramname": "peChatEntryType" ,"paramtype": "EChatEntryType *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "RequestLobbyData", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyGameServer", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "unGameServerIP" ,"paramtype": "uint32"}, -{ "paramname": "unGameServerPort" ,"paramtype": "uint16"}, -{ "paramname": "steamIDGameServer" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyGameServer", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "punGameServerIP" ,"paramtype": "uint32 *"}, -{ "paramname": "punGameServerPort" ,"paramtype": "uint16 *"}, -{ "paramname": "psteamIDGameServer" ,"out_struct": " " ,"paramtype": "class CSteamID *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyMemberLimit", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "cMaxMembers" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyMemberLimit", - "returntype": "int", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyType", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "eLobbyType" ,"paramtype": "ELobbyType"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyJoinable", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "bLobbyJoinable" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyOwner", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyOwner", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDNewOwner" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLinkedLobby", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDLobbyDependent" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmakingServerListResponse", - "methodname": "ServerResponded", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "iServer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmakingServerListResponse", - "methodname": "ServerFailedToRespond", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "iServer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmakingServerListResponse", - "methodname": "RefreshComplete", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "response" ,"paramtype": "EMatchMakingServerResponse"} - ] -} -,{ - "classname": "ISteamMatchmakingPingResponse", - "methodname": "ServerResponded", - "returntype": "void", - "params": [ -{ "paramname": "server" ,"paramtype": "class gameserveritem_t &"} - ] -} -,{ - "classname": "ISteamMatchmakingPingResponse", - "methodname": "ServerFailedToRespond", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingPlayersResponse", - "methodname": "AddPlayerToList", - "returntype": "void", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "nScore" ,"paramtype": "int"}, -{ "paramname": "flTimePlayed" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamMatchmakingPlayersResponse", - "methodname": "PlayersFailedToRespond", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingPlayersResponse", - "methodname": "PlayersRefreshComplete", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingRulesResponse", - "methodname": "RulesResponded", - "returntype": "void", - "params": [ -{ "paramname": "pchRule" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmakingRulesResponse", - "methodname": "RulesFailedToRespond", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingRulesResponse", - "methodname": "RulesRefreshComplete", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestInternetServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestLANServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestFriendsServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestFavoritesServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestHistoryServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestSpectatorServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "ReleaseRequest", - "returntype": "void", - "params": [ -{ "paramname": "hServerListRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "GetServerDetails", - "returntype": "class gameserveritem_t *", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "iServer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "CancelQuery", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RefreshQuery", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "IsRefreshing", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "GetServerCount", - "returntype": "int", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RefreshServer", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "iServer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "PingServer", - "returntype": "HServerQuery", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usPort" ,"paramtype": "uint16"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingPingResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "PlayerDetails", - "returntype": "HServerQuery", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usPort" ,"paramtype": "uint16"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingPlayersResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "ServerRules", - "returntype": "HServerQuery", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usPort" ,"paramtype": "uint16"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingRulesResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "CancelServerQuery", - "returntype": "void", - "params": [ -{ "paramname": "hServerQuery" ,"paramtype": "HServerQuery"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWrite", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "pvData" ,"paramtype": "const void *"}, -{ "paramname": "cubData" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileRead", - "returntype": "int32", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "pvData" ,"paramtype": "void *"}, -{ "paramname": "cubDataToRead" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteAsync", "callresult": "RemoteStorageFileWriteAsyncComplete_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "pvData" ,"paramtype": "const void *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileReadAsync", "callresult": "RemoteStorageFileReadAsyncComplete_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "nOffset" ,"paramtype": "uint32"}, -{ "paramname": "cubToRead" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileReadAsyncComplete", - "returntype": "bool", - "params": [ -{ "paramname": "hReadCall" ,"paramtype": "SteamAPICall_t"}, -{ "paramname": "pvBuffer" ,"paramtype": "void *"}, -{ "paramname": "cubToRead" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileForget", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileDelete", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileShare", "callresult": "RemoteStorageFileShareResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "SetSyncPlatforms", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "eRemoteStoragePlatform" ,"paramtype": "ERemoteStoragePlatform"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteStreamOpen", - "returntype": "UGCFileWriteStreamHandle_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteStreamWriteChunk", - "returntype": "bool", - "params": [ -{ "paramname": "writeHandle" ,"paramtype": "UGCFileWriteStreamHandle_t"}, -{ "paramname": "pvData" ,"paramtype": "const void *"}, -{ "paramname": "cubData" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteStreamClose", - "returntype": "bool", - "params": [ -{ "paramname": "writeHandle" ,"paramtype": "UGCFileWriteStreamHandle_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteStreamCancel", - "returntype": "bool", - "params": [ -{ "paramname": "writeHandle" ,"paramtype": "UGCFileWriteStreamHandle_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileExists", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FilePersisted", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetFileSize", - "returntype": "int32", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetFileTimestamp", - "returntype": "int64", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetSyncPlatforms", - "returntype": "ERemoteStoragePlatform", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetFileCount", - "returntype": "int32" -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetFileNameAndSize", - "returntype": "const char *", - "params": [ -{ "paramname": "iFile" ,"paramtype": "int"}, -{ "paramname": "pnFileSizeInBytes" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetQuota", - "returntype": "bool", - "params": [ -{ "paramname": "pnTotalBytes" ,"paramtype": "uint64 *"}, -{ "paramname": "puAvailableBytes" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "IsCloudEnabledForAccount", - "returntype": "bool" -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "IsCloudEnabledForApp", - "returntype": "bool" -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "SetCloudEnabledForApp", - "returntype": "void", - "params": [ -{ "paramname": "bEnabled" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UGCDownload", "callresult": "RemoteStorageDownloadUGCResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "unPriority" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetUGCDownloadProgress", - "returntype": "bool", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "pnBytesDownloaded" ,"paramtype": "int32 *"}, -{ "paramname": "pnBytesExpected" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetUGCDetails", - "returntype": "bool", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "pnAppID" ,"paramtype": "AppId_t *"}, -{ "paramname": "ppchName" ,"out_string": " " ,"paramtype": "char **"}, -{ "paramname": "pnFileSizeInBytes" ,"paramtype": "int32 *"}, -{ "paramname": "pSteamIDOwner" ,"out_struct": " " ,"paramtype": "class CSteamID *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UGCRead", - "returntype": "int32", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "pvData" ,"paramtype": "void *"}, -{ "paramname": "cubDataToRead" ,"paramtype": "int32"}, -{ "paramname": "cOffset" ,"paramtype": "uint32"}, -{ "paramname": "eAction" ,"paramtype": "EUGCReadAction"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetCachedUGCCount", - "returntype": "int32" -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetCachedUGCHandle", - "returntype": "UGCHandle_t", - "params": [ -{ "paramname": "iCachedContent" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "PublishWorkshopFile", "callresult": "RemoteStoragePublishFileProgress_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "pchPreviewFile" ,"paramtype": "const char *"}, -{ "paramname": "nConsumerAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "pchTitle" ,"paramtype": "const char *"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"}, -{ "paramname": "eVisibility" ,"paramtype": "ERemoteStoragePublishedFileVisibility"}, -{ "paramname": "pTags" ,"paramtype": "struct SteamParamStringArray_t *"}, -{ "paramname": "eWorkshopFileType" ,"paramtype": "EWorkshopFileType"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "CreatePublishedFileUpdateRequest", - "returntype": "PublishedFileUpdateHandle_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileFile", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFilePreviewFile", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchPreviewFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileTitle", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchTitle" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileDescription", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileVisibility", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "eVisibility" ,"paramtype": "ERemoteStoragePublishedFileVisibility"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileTags", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pTags" ,"paramtype": "struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "CommitPublishedFileUpdate", "callresult": "RemoteStorageUpdatePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetPublishedFileDetails", "callresult": "RemoteStorageGetPublishedFileDetailsResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "unMaxSecondsOld" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "DeletePublishedFile", "callresult": "RemoteStorageDeletePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumerateUserPublishedFiles", "callresult": "RemoteStorageEnumerateUserPublishedFilesResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unStartIndex" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "SubscribePublishedFile", "callresult": "RemoteStorageSubscribePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumerateUserSubscribedFiles", "callresult": "RemoteStorageEnumerateUserSubscribedFilesResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unStartIndex" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UnsubscribePublishedFile", "callresult": "RemoteStorageUnsubscribePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileSetChangeDescription", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchChangeDescription" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetPublishedItemVoteDetails", "callresult": "RemoteStorageGetPublishedItemVoteDetailsResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdateUserPublishedItemVote", "callresult": "RemoteStorageUpdateUserPublishedItemVoteResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "bVoteUp" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetUserPublishedItemVoteDetails", "callresult": "RemoteStorageGetPublishedItemVoteDetailsResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumerateUserSharedWorkshopFiles", "callresult": "RemoteStorageEnumerateUserPublishedFilesResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamId" ,"paramtype": "class CSteamID"}, -{ "paramname": "unStartIndex" ,"paramtype": "uint32"}, -{ "paramname": "pRequiredTags" ,"paramtype": "struct SteamParamStringArray_t *"}, -{ "paramname": "pExcludedTags" ,"paramtype": "struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "PublishVideo", "callresult": "RemoteStoragePublishFileProgress_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "eVideoProvider" ,"paramtype": "EWorkshopVideoProvider"}, -{ "paramname": "pchVideoAccount" ,"paramtype": "const char *"}, -{ "paramname": "pchVideoIdentifier" ,"paramtype": "const char *"}, -{ "paramname": "pchPreviewFile" ,"paramtype": "const char *"}, -{ "paramname": "nConsumerAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "pchTitle" ,"paramtype": "const char *"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"}, -{ "paramname": "eVisibility" ,"paramtype": "ERemoteStoragePublishedFileVisibility"}, -{ "paramname": "pTags" ,"paramtype": "struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "SetUserPublishedFileAction", "callresult": "RemoteStorageSetUserPublishedFileActionResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "eAction" ,"paramtype": "EWorkshopFileAction"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumeratePublishedFilesByUserAction", "callresult": "RemoteStorageEnumeratePublishedFilesByUserActionResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "eAction" ,"paramtype": "EWorkshopFileAction"}, -{ "paramname": "unStartIndex" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumeratePublishedWorkshopFiles", "callresult": "RemoteStorageEnumerateWorkshopFilesResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "eEnumerationType" ,"paramtype": "EWorkshopEnumerationType"}, -{ "paramname": "unStartIndex" ,"paramtype": "uint32"}, -{ "paramname": "unCount" ,"paramtype": "uint32"}, -{ "paramname": "unDays" ,"paramtype": "uint32"}, -{ "paramname": "pTags" ,"paramtype": "struct SteamParamStringArray_t *"}, -{ "paramname": "pUserTags" ,"paramtype": "struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UGCDownloadToLocation", "callresult": "RemoteStorageDownloadUGCResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "pchLocation" ,"paramtype": "const char *"}, -{ "paramname": "unPriority" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "RequestCurrentStats", "callback": "UserStatsReceived_t", - "returntype": "bool" -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "SetStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "nData" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "SetStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "fData" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "UpdateAvgRateStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "flCountThisSession" ,"paramtype": "float"}, -{ "paramname": "dSessionLength" ,"paramtype": "double"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "SetAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "ClearAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementAndUnlockTime", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"}, -{ "paramname": "punUnlockTime" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "StoreStats", - "returntype": "bool" -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementIcon", - "returntype": "int", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementDisplayAttribute", - "returntype": "const char *", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "IndicateAchievementProgress", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "nCurProgress" ,"paramtype": "uint32"}, -{ "paramname": "nMaxProgress" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetNumAchievements", - "returntype": "uint32" -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementName", - "returntype": "const char *", - "params": [ -{ "paramname": "iAchievement" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "RequestUserStats", "callresult": "UserStatsReceived_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetUserAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetUserAchievementAndUnlockTime", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"}, -{ "paramname": "punUnlockTime" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "ResetAllStats", - "returntype": "bool", - "params": [ -{ "paramname": "bAchievementsToo" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "FindOrCreateLeaderboard", "callresult": "LeaderboardFindResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchLeaderboardName" ,"paramtype": "const char *"}, -{ "paramname": "eLeaderboardSortMethod" ,"paramtype": "ELeaderboardSortMethod"}, -{ "paramname": "eLeaderboardDisplayType" ,"paramtype": "ELeaderboardDisplayType"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "FindLeaderboard", "callresult": "LeaderboardFindResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchLeaderboardName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetLeaderboardName", - "returntype": "const char *", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetLeaderboardEntryCount", - "returntype": "int", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetLeaderboardSortMethod", - "returntype": "ELeaderboardSortMethod", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetLeaderboardDisplayType", - "returntype": "ELeaderboardDisplayType", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "DownloadLeaderboardEntries", "callresult": "LeaderboardScoresDownloaded_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"}, -{ "paramname": "eLeaderboardDataRequest" ,"paramtype": "ELeaderboardDataRequest"}, -{ "paramname": "nRangeStart" ,"paramtype": "int"}, -{ "paramname": "nRangeEnd" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "DownloadLeaderboardEntriesForUsers", "callresult": "LeaderboardScoresDownloaded_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"}, -{ "paramname": "prgUsers" ,"array_count": "cUsers" ,"desc": "Array of users to retrieve" ,"paramtype": "class CSteamID *"}, -{ "paramname": "cUsers" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetDownloadedLeaderboardEntry", - "returntype": "bool", - "params": [ -{ "paramname": "hSteamLeaderboardEntries" ,"paramtype": "SteamLeaderboardEntries_t"}, -{ "paramname": "index" ,"paramtype": "int"}, -{ "paramname": "pLeaderboardEntry" ,"paramtype": "struct LeaderboardEntry_t *"}, -{ "paramname": "pDetails" ,"paramtype": "int32 *"}, -{ "paramname": "cDetailsMax" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "UploadLeaderboardScore", "callresult": "LeaderboardScoreUploaded_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"}, -{ "paramname": "eLeaderboardUploadScoreMethod" ,"paramtype": "ELeaderboardUploadScoreMethod"}, -{ "paramname": "nScore" ,"paramtype": "int32"}, -{ "paramname": "pScoreDetails" ,"paramtype": "const int32 *"}, -{ "paramname": "cScoreDetailsCount" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "AttachLeaderboardUGC", "callresult": "LeaderboardUGCSet_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"}, -{ "paramname": "hUGC" ,"paramtype": "UGCHandle_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetNumberOfCurrentPlayers", "callresult": "NumberOfCurrentPlayers_t", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamUserStats", - "methodname": "RequestGlobalAchievementPercentages", "callresult": "GlobalAchievementPercentagesReady_t", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetMostAchievedAchievementInfo", - "returntype": "int", - "params": [ -{ "paramname": "pchName" ,"paramtype": "char *"}, -{ "paramname": "unNameBufLen" ,"paramtype": "uint32"}, -{ "paramname": "pflPercent" ,"paramtype": "float *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetNextMostAchievedAchievementInfo", - "returntype": "int", - "params": [ -{ "paramname": "iIteratorPrevious" ,"paramtype": "int"}, -{ "paramname": "pchName" ,"paramtype": "char *"}, -{ "paramname": "unNameBufLen" ,"paramtype": "uint32"}, -{ "paramname": "pflPercent" ,"paramtype": "float *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementAchievedPercent", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pflPercent" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "RequestGlobalStats", "callresult": "GlobalStatsReceived_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nHistoryDays" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetGlobalStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchStatName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "int64 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetGlobalStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchStatName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "double *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetGlobalStatHistory", - "returntype": "int32", - "params": [ -{ "paramname": "pchStatName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"array_count": "cubData" ,"paramtype": "int64 *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetGlobalStatHistory", - "returntype": "int32", - "params": [ -{ "paramname": "pchStatName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"array_count": "cubData" ,"paramtype": "double *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "BIsSubscribed", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "BIsLowViolence", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "BIsCybercafe", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "BIsVACBanned", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "GetCurrentGameLanguage", - "returntype": "const char *" -} -,{ - "classname": "ISteamApps", - "methodname": "GetAvailableGameLanguages", - "returntype": "const char *" -} -,{ - "classname": "ISteamApps", - "methodname": "BIsSubscribedApp", - "returntype": "bool", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "BIsDlcInstalled", - "returntype": "bool", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetEarliestPurchaseUnixTime", - "returntype": "uint32", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "BIsSubscribedFromFreeWeekend", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "GetDLCCount", - "returntype": "int" -} -,{ - "classname": "ISteamApps", - "methodname": "BGetDLCDataByIndex", - "returntype": "bool", - "params": [ -{ "paramname": "iDLC" ,"paramtype": "int"}, -{ "paramname": "pAppID" ,"paramtype": "AppId_t *"}, -{ "paramname": "pbAvailable" ,"paramtype": "bool *"}, -{ "paramname": "pchName" ,"paramtype": "char *"}, -{ "paramname": "cchNameBufferSize" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "InstallDLC", - "returntype": "void", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "UninstallDLC", - "returntype": "void", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "RequestAppProofOfPurchaseKey", - "returntype": "void", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetCurrentBetaName", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "char *"}, -{ "paramname": "cchNameBufferSize" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "MarkContentCorrupt", - "returntype": "bool", - "params": [ -{ "paramname": "bMissingFilesOnly" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetInstalledDepots", - "returntype": "uint32", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"}, -{ "paramname": "pvecDepots" ,"paramtype": "DepotId_t *"}, -{ "paramname": "cMaxDepots" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetAppInstallDir", - "returntype": "uint32", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"}, -{ "paramname": "pchFolder" ,"paramtype": "char *"}, -{ "paramname": "cchFolderBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "BIsAppInstalled", - "returntype": "bool", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetAppOwner", - "returntype": "class CSteamID" -} -,{ - "classname": "ISteamApps", - "methodname": "GetLaunchQueryParam", - "returntype": "const char *", - "params": [ -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetDlcDownloadProgress", - "returntype": "bool", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "punBytesDownloaded" ,"paramtype": "uint64 *"}, -{ "paramname": "punBytesTotal" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetAppBuildId", - "returntype": "int" -} -,{ - "classname": "ISteamApps", - "methodname": "RequestAllProofOfPurchaseKeys", - "returntype": "void" -} -,{ - "classname": "ISteamApps", - "methodname": "GetFileDetails", "callresult": "FileDetailsResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pszFileName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "SendP2PPacket", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"}, -{ "paramname": "pubData" ,"paramtype": "const void *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"}, -{ "paramname": "eP2PSendType" ,"paramtype": "EP2PSend"}, -{ "paramname": "nChannel" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "IsP2PPacketAvailable", - "returntype": "bool", - "params": [ -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"}, -{ "paramname": "nChannel" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "ReadP2PPacket", - "returntype": "bool", - "params": [ -{ "paramname": "pubDest" ,"paramtype": "void *"}, -{ "paramname": "cubDest" ,"paramtype": "uint32"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"}, -{ "paramname": "psteamIDRemote" ,"paramtype": "class CSteamID *"}, -{ "paramname": "nChannel" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "AcceptP2PSessionWithUser", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CloseP2PSessionWithUser", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CloseP2PChannelWithUser", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"}, -{ "paramname": "nChannel" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetP2PSessionState", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"}, -{ "paramname": "pConnectionState" ,"paramtype": "struct P2PSessionState_t *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "AllowP2PPacketRelay", - "returntype": "bool", - "params": [ -{ "paramname": "bAllow" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CreateListenSocket", - "returntype": "SNetListenSocket_t", - "params": [ -{ "paramname": "nVirtualP2PPort" ,"paramtype": "int"}, -{ "paramname": "nIP" ,"paramtype": "uint32"}, -{ "paramname": "nPort" ,"paramtype": "uint16"}, -{ "paramname": "bAllowUseOfPacketRelay" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CreateP2PConnectionSocket", - "returntype": "SNetSocket_t", - "params": [ -{ "paramname": "steamIDTarget" ,"paramtype": "class CSteamID"}, -{ "paramname": "nVirtualPort" ,"paramtype": "int"}, -{ "paramname": "nTimeoutSec" ,"paramtype": "int"}, -{ "paramname": "bAllowUseOfPacketRelay" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CreateConnectionSocket", - "returntype": "SNetSocket_t", - "params": [ -{ "paramname": "nIP" ,"paramtype": "uint32"}, -{ "paramname": "nPort" ,"paramtype": "uint16"}, -{ "paramname": "nTimeoutSec" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "DestroySocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "bNotifyRemoteEnd" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "DestroyListenSocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetListenSocket_t"}, -{ "paramname": "bNotifyRemoteEnd" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "SendDataOnSocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "pubData" ,"paramtype": "void *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"}, -{ "paramname": "bReliable" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "IsDataAvailableOnSocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "RetrieveDataFromSocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "pubDest" ,"paramtype": "void *"}, -{ "paramname": "cubDest" ,"paramtype": "uint32"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "IsDataAvailable", - "returntype": "bool", - "params": [ -{ "paramname": "hListenSocket" ,"paramtype": "SNetListenSocket_t"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"}, -{ "paramname": "phSocket" ,"paramtype": "SNetSocket_t *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "RetrieveData", - "returntype": "bool", - "params": [ -{ "paramname": "hListenSocket" ,"paramtype": "SNetListenSocket_t"}, -{ "paramname": "pubDest" ,"paramtype": "void *"}, -{ "paramname": "cubDest" ,"paramtype": "uint32"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"}, -{ "paramname": "phSocket" ,"paramtype": "SNetSocket_t *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetSocketInfo", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "pSteamIDRemote" ,"paramtype": "class CSteamID *"}, -{ "paramname": "peSocketStatus" ,"paramtype": "int *"}, -{ "paramname": "punIPRemote" ,"paramtype": "uint32 *"}, -{ "paramname": "punPortRemote" ,"paramtype": "uint16 *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetListenSocketInfo", - "returntype": "bool", - "params": [ -{ "paramname": "hListenSocket" ,"paramtype": "SNetListenSocket_t"}, -{ "paramname": "pnIP" ,"paramtype": "uint32 *"}, -{ "paramname": "pnPort" ,"paramtype": "uint16 *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetSocketConnectionType", - "returntype": "ESNetSocketConnectionType", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetMaxPacketSize", - "returntype": "int", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "WriteScreenshot", - "returntype": "ScreenshotHandle", - "params": [ -{ "paramname": "pubRGB" ,"paramtype": "void *"}, -{ "paramname": "cubRGB" ,"paramtype": "uint32"}, -{ "paramname": "nWidth" ,"paramtype": "int"}, -{ "paramname": "nHeight" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "AddScreenshotToLibrary", - "returntype": "ScreenshotHandle", - "params": [ -{ "paramname": "pchFilename" ,"paramtype": "const char *"}, -{ "paramname": "pchThumbnailFilename" ,"paramtype": "const char *"}, -{ "paramname": "nWidth" ,"paramtype": "int"}, -{ "paramname": "nHeight" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "TriggerScreenshot", - "returntype": "void" -} -,{ - "classname": "ISteamScreenshots", - "methodname": "HookScreenshots", - "returntype": "void", - "params": [ -{ "paramname": "bHook" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "SetLocation", - "returntype": "bool", - "params": [ -{ "paramname": "hScreenshot" ,"paramtype": "ScreenshotHandle"}, -{ "paramname": "pchLocation" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "TagUser", - "returntype": "bool", - "params": [ -{ "paramname": "hScreenshot" ,"paramtype": "ScreenshotHandle"}, -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "TagPublishedFile", - "returntype": "bool", - "params": [ -{ "paramname": "hScreenshot" ,"paramtype": "ScreenshotHandle"}, -{ "paramname": "unPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "IsScreenshotsHooked", - "returntype": "bool" -} -,{ - "classname": "ISteamScreenshots", - "methodname": "AddVRScreenshotToLibrary", - "returntype": "ScreenshotHandle", - "params": [ -{ "paramname": "eType" ,"paramtype": "EVRScreenshotType"}, -{ "paramname": "pchFilename" ,"paramtype": "const char *"}, -{ "paramname": "pchVRFilename" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusic", - "methodname": "BIsEnabled", - "returntype": "bool" -} -,{ - "classname": "ISteamMusic", - "methodname": "BIsPlaying", - "returntype": "bool" -} -,{ - "classname": "ISteamMusic", - "methodname": "GetPlaybackStatus", - "returntype": "AudioPlayback_Status" -} -,{ - "classname": "ISteamMusic", - "methodname": "Play", - "returntype": "void" -} -,{ - "classname": "ISteamMusic", - "methodname": "Pause", - "returntype": "void" -} -,{ - "classname": "ISteamMusic", - "methodname": "PlayPrevious", - "returntype": "void" -} -,{ - "classname": "ISteamMusic", - "methodname": "PlayNext", - "returntype": "void" -} -,{ - "classname": "ISteamMusic", - "methodname": "SetVolume", - "returntype": "void", - "params": [ -{ "paramname": "flVolume" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamMusic", - "methodname": "GetVolume", - "returntype": "float" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "RegisterSteamMusicRemote", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "DeregisterSteamMusicRemote", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "BIsCurrentMusicRemote", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "BActivationSuccess", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetDisplayName", - "returntype": "bool", - "params": [ -{ "paramname": "pchDisplayName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetPNGIcon_64x64", - "returntype": "bool", - "params": [ -{ "paramname": "pvBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbBufferLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnablePlayPrevious", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnablePlayNext", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnableShuffled", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnableLooped", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnableQueue", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnablePlaylists", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdatePlaybackStatus", - "returntype": "bool", - "params": [ -{ "paramname": "nStatus" ,"paramtype": "AudioPlayback_Status"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateShuffled", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateLooped", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateVolume", - "returntype": "bool", - "params": [ -{ "paramname": "flValue" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "CurrentEntryWillChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "CurrentEntryIsAvailable", - "returntype": "bool", - "params": [ -{ "paramname": "bAvailable" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateCurrentEntryText", - "returntype": "bool", - "params": [ -{ "paramname": "pchText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateCurrentEntryElapsedSeconds", - "returntype": "bool", - "params": [ -{ "paramname": "nValue" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateCurrentEntryCoverArt", - "returntype": "bool", - "params": [ -{ "paramname": "pvBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbBufferLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "CurrentEntryDidChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "QueueWillChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "ResetQueueEntries", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetQueueEntry", - "returntype": "bool", - "params": [ -{ "paramname": "nID" ,"paramtype": "int"}, -{ "paramname": "nPosition" ,"paramtype": "int"}, -{ "paramname": "pchEntryText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetCurrentQueueEntry", - "returntype": "bool", - "params": [ -{ "paramname": "nID" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "QueueDidChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "PlaylistWillChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "ResetPlaylistEntries", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetPlaylistEntry", - "returntype": "bool", - "params": [ -{ "paramname": "nID" ,"paramtype": "int"}, -{ "paramname": "nPosition" ,"paramtype": "int"}, -{ "paramname": "pchEntryText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetCurrentPlaylistEntry", - "returntype": "bool", - "params": [ -{ "paramname": "nID" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "PlaylistDidChange", - "returntype": "bool" -} -,{ - "classname": "ISteamHTTP", - "methodname": "CreateHTTPRequest", - "returntype": "HTTPRequestHandle", - "params": [ -{ "paramname": "eHTTPRequestMethod" ,"paramtype": "EHTTPMethod"}, -{ "paramname": "pchAbsoluteURL" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestContextValue", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "ulContextValue" ,"paramtype": "uint64"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestNetworkActivityTimeout", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "unTimeoutSeconds" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestHeaderValue", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchHeaderName" ,"paramtype": "const char *"}, -{ "paramname": "pchHeaderValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestGetOrPostParameter", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchParamName" ,"paramtype": "const char *"}, -{ "paramname": "pchParamValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SendHTTPRequest", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pCallHandle" ,"paramtype": "SteamAPICall_t *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SendHTTPRequestAndStreamResponse", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pCallHandle" ,"paramtype": "SteamAPICall_t *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "DeferHTTPRequest", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "PrioritizeHTTPRequest", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPResponseHeaderSize", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchHeaderName" ,"paramtype": "const char *"}, -{ "paramname": "unResponseHeaderSize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPResponseHeaderValue", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchHeaderName" ,"paramtype": "const char *"}, -{ "paramname": "pHeaderValueBuffer" ,"paramtype": "uint8 *"}, -{ "paramname": "unBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPResponseBodySize", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "unBodySize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPResponseBodyData", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pBodyDataBuffer" ,"paramtype": "uint8 *"}, -{ "paramname": "unBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPStreamingResponseBodyData", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "cOffset" ,"paramtype": "uint32"}, -{ "paramname": "pBodyDataBuffer" ,"paramtype": "uint8 *"}, -{ "paramname": "unBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "ReleaseHTTPRequest", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPDownloadProgressPct", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pflPercentOut" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestRawPostBody", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchContentType" ,"paramtype": "const char *"}, -{ "paramname": "pubBody" ,"paramtype": "uint8 *"}, -{ "paramname": "unBodyLen" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "CreateCookieContainer", - "returntype": "HTTPCookieContainerHandle", - "params": [ -{ "paramname": "bAllowResponsesToModify" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "ReleaseCookieContainer", - "returntype": "bool", - "params": [ -{ "paramname": "hCookieContainer" ,"paramtype": "HTTPCookieContainerHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetCookie", - "returntype": "bool", - "params": [ -{ "paramname": "hCookieContainer" ,"paramtype": "HTTPCookieContainerHandle"}, -{ "paramname": "pchHost" ,"paramtype": "const char *"}, -{ "paramname": "pchUrl" ,"paramtype": "const char *"}, -{ "paramname": "pchCookie" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestCookieContainer", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "hCookieContainer" ,"paramtype": "HTTPCookieContainerHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestUserAgentInfo", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchUserAgentInfo" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestRequiresVerifiedCertificate", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "bRequireVerifiedCertificate" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestAbsoluteTimeoutMS", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "unMilliseconds" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPRequestWasTimedOut", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pbWasTimedOut" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "SendMethod", - "returntype": "ClientUnifiedMessageHandle", - "params": [ -{ "paramname": "pchServiceMethod" ,"paramtype": "const char *"}, -{ "paramname": "pRequestBuffer" ,"paramtype": "const void *"}, -{ "paramname": "unRequestBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "unContext" ,"paramtype": "uint64"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "GetMethodResponseInfo", - "returntype": "bool", - "params": [ -{ "paramname": "hHandle" ,"paramtype": "ClientUnifiedMessageHandle"}, -{ "paramname": "punResponseSize" ,"paramtype": "uint32 *"}, -{ "paramname": "peResult" ,"paramtype": "EResult *"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "GetMethodResponseData", - "returntype": "bool", - "params": [ -{ "paramname": "hHandle" ,"paramtype": "ClientUnifiedMessageHandle"}, -{ "paramname": "pResponseBuffer" ,"paramtype": "void *"}, -{ "paramname": "unResponseBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "bAutoRelease" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "ReleaseMethod", - "returntype": "bool", - "params": [ -{ "paramname": "hHandle" ,"paramtype": "ClientUnifiedMessageHandle"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "SendNotification", - "returntype": "bool", - "params": [ -{ "paramname": "pchServiceNotification" ,"paramtype": "const char *"}, -{ "paramname": "pNotificationBuffer" ,"paramtype": "const void *"}, -{ "paramname": "unNotificationBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "Init", - "returntype": "bool" -} -,{ - "classname": "ISteamController", - "methodname": "Shutdown", - "returntype": "bool" -} -,{ - "classname": "ISteamController", - "methodname": "RunFrame", - "returntype": "void" -} -,{ - "classname": "ISteamController", - "methodname": "GetConnectedControllers", - "returntype": "int", - "params": [ -{ "paramname": "handlesOut" ,"paramtype": "ControllerHandle_t *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "ShowBindingPanel", - "returntype": "bool", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetActionSetHandle", - "returntype": "ControllerActionSetHandle_t", - "params": [ -{ "paramname": "pszActionSetName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "ActivateActionSet", - "returntype": "void", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "actionSetHandle" ,"paramtype": "ControllerActionSetHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetCurrentActionSet", - "returntype": "ControllerActionSetHandle_t", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetDigitalActionHandle", - "returntype": "ControllerDigitalActionHandle_t", - "params": [ -{ "paramname": "pszActionName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetDigitalActionData", - "returntype": "struct ControllerDigitalActionData_t", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "digitalActionHandle" ,"paramtype": "ControllerDigitalActionHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetDigitalActionOrigins", - "returntype": "int", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "actionSetHandle" ,"paramtype": "ControllerActionSetHandle_t"}, -{ "paramname": "digitalActionHandle" ,"paramtype": "ControllerDigitalActionHandle_t"}, -{ "paramname": "originsOut" ,"paramtype": "EControllerActionOrigin *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetAnalogActionHandle", - "returntype": "ControllerAnalogActionHandle_t", - "params": [ -{ "paramname": "pszActionName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetAnalogActionData", - "returntype": "struct ControllerAnalogActionData_t", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "analogActionHandle" ,"paramtype": "ControllerAnalogActionHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetAnalogActionOrigins", - "returntype": "int", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "actionSetHandle" ,"paramtype": "ControllerActionSetHandle_t"}, -{ "paramname": "analogActionHandle" ,"paramtype": "ControllerAnalogActionHandle_t"}, -{ "paramname": "originsOut" ,"paramtype": "EControllerActionOrigin *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "StopAnalogActionMomentum", - "returntype": "void", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "eAction" ,"paramtype": "ControllerAnalogActionHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "TriggerHapticPulse", - "returntype": "void", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "eTargetPad" ,"paramtype": "ESteamControllerPad"}, -{ "paramname": "usDurationMicroSec" ,"paramtype": "unsigned short"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "TriggerRepeatedHapticPulse", - "returntype": "void", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "eTargetPad" ,"paramtype": "ESteamControllerPad"}, -{ "paramname": "usDurationMicroSec" ,"paramtype": "unsigned short"}, -{ "paramname": "usOffMicroSec" ,"paramtype": "unsigned short"}, -{ "paramname": "unRepeat" ,"paramtype": "unsigned short"}, -{ "paramname": "nFlags" ,"paramtype": "unsigned int"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetGamepadIndexForController", - "returntype": "int", - "params": [ -{ "paramname": "ulControllerHandle" ,"paramtype": "ControllerHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetControllerForGamepadIndex", - "returntype": "ControllerHandle_t", - "params": [ -{ "paramname": "nIndex" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetMotionData", - "returntype": "struct ControllerMotionData_t", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "ShowDigitalActionOrigins", - "returntype": "bool", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "digitalActionHandle" ,"paramtype": "ControllerDigitalActionHandle_t"}, -{ "paramname": "flScale" ,"paramtype": "float"}, -{ "paramname": "flXPosition" ,"paramtype": "float"}, -{ "paramname": "flYPosition" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "ShowAnalogActionOrigins", - "returntype": "bool", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "analogActionHandle" ,"paramtype": "ControllerAnalogActionHandle_t"}, -{ "paramname": "flScale" ,"paramtype": "float"}, -{ "paramname": "flXPosition" ,"paramtype": "float"}, -{ "paramname": "flYPosition" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "CreateQueryUserUGCRequest", - "returntype": "UGCQueryHandle_t", - "params": [ -{ "paramname": "unAccountID" ,"paramtype": "AccountID_t"}, -{ "paramname": "eListType" ,"paramtype": "EUserUGCList"}, -{ "paramname": "eMatchingUGCType" ,"paramtype": "EUGCMatchingUGCType"}, -{ "paramname": "eSortOrder" ,"paramtype": "EUserUGCListSortOrder"}, -{ "paramname": "nCreatorAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "nConsumerAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "unPage" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "CreateQueryAllUGCRequest", - "returntype": "UGCQueryHandle_t", - "params": [ -{ "paramname": "eQueryType" ,"paramtype": "EUGCQuery"}, -{ "paramname": "eMatchingeMatchingUGCTypeFileType" ,"paramtype": "EUGCMatchingUGCType"}, -{ "paramname": "nCreatorAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "nConsumerAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "unPage" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "CreateQueryUGCDetailsRequest", - "returntype": "UGCQueryHandle_t", - "params": [ -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "unNumPublishedFileIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SendQueryUGCRequest", "callresult": "SteamUGCQueryCompleted_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCResult", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pDetails" ,"paramtype": "struct SteamUGCDetails_t *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCPreviewURL", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pchURL" ,"out_string_count": "cchURLSize" ,"paramtype": "char *"}, -{ "paramname": "cchURLSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCMetadata", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pchMetadata" ,"out_string_count": "cchMetadatasize" ,"paramtype": "char *"}, -{ "paramname": "cchMetadatasize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCChildren", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "cMaxEntries" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCStatistic", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "eStatType" ,"paramtype": "EItemStatistic"}, -{ "paramname": "pStatValue" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCNumAdditionalPreviews", - "returntype": "uint32", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCAdditionalPreview", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "previewIndex" ,"paramtype": "uint32"}, -{ "paramname": "pchURLOrVideoID" ,"out_string_count": "cchURLSize" ,"paramtype": "char *"}, -{ "paramname": "cchURLSize" ,"paramtype": "uint32"}, -{ "paramname": "pchOriginalFileName" ,"out_string_count": "cchURLSize" ,"paramtype": "char *"}, -{ "paramname": "cchOriginalFileNameSize" ,"paramtype": "uint32"}, -{ "paramname": "pPreviewType" ,"paramtype": "EItemPreviewType *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCNumKeyValueTags", - "returntype": "uint32", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCKeyValueTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "keyValueTagIndex" ,"paramtype": "uint32"}, -{ "paramname": "pchKey" ,"out_string_count": "cchKeySize" ,"paramtype": "char *"}, -{ "paramname": "cchKeySize" ,"paramtype": "uint32"}, -{ "paramname": "pchValue" ,"out_string_count": "cchValueSize" ,"paramtype": "char *"}, -{ "paramname": "cchValueSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "ReleaseQueryUGCRequest", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddRequiredTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pTagName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddExcludedTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pTagName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnOnlyIDs", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnOnlyIDs" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnKeyValueTags", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnKeyValueTags" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnLongDescription", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnLongDescription" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnMetadata", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnMetadata" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnChildren", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnChildren" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnAdditionalPreviews", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnAdditionalPreviews" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnTotalOnly", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnTotalOnly" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetLanguage", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pchLanguage" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetAllowCachedResponse", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "unMaxAgeSeconds" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetCloudFileNameFilter", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pMatchCloudFileName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetMatchAnyTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bMatchAnyTag" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetSearchText", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pSearchText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetRankedByTrendDays", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "unDays" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddRequiredKeyValueTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pKey" ,"paramtype": "const char *"}, -{ "paramname": "pValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "RequestUGCDetails", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "unMaxAgeSeconds" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "CreateItem", "callresult": "CreateItemResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nConsumerAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "eFileType" ,"paramtype": "EWorkshopFileType"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "StartItemUpdate", - "returntype": "UGCUpdateHandle_t", - "params": [ -{ "paramname": "nConsumerAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemTitle", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchTitle" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemDescription", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemUpdateLanguage", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchLanguage" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemMetadata", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchMetaData" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemVisibility", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "eVisibility" ,"paramtype": "ERemoteStoragePublishedFileVisibility"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemTags", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pTags" ,"paramtype": "const struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemContent", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pszContentFolder" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemPreview", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pszPreviewFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "RemoveItemKeyValueTags", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddItemKeyValueTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddItemPreviewFile", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pszPreviewFile" ,"paramtype": "const char *"}, -{ "paramname": "type" ,"paramtype": "EItemPreviewType"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddItemPreviewVideo", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pszVideoID" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "UpdateItemPreviewFile", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pszPreviewFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "UpdateItemPreviewVideo", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pszVideoID" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "RemoveItemPreview", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SubmitItemUpdate", "callresult": "SubmitItemUpdateResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchChangeNote" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetItemUpdateProgress", - "returntype": "EItemUpdateStatus", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "punBytesProcessed" ,"paramtype": "uint64 *"}, -{ "paramname": "punBytesTotal" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetUserItemVote", "callresult": "SetUserItemVoteResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "bVoteUp" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetUserItemVote", "callresult": "GetUserItemVoteResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddItemToFavorites", "callresult": "UserFavoriteItemsListChanged_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "RemoveItemFromFavorites", "callresult": "UserFavoriteItemsListChanged_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SubscribeItem", "callresult": "RemoteStorageSubscribePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "UnsubscribeItem", "callresult": "RemoteStorageUnsubscribePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetNumSubscribedItems", - "returntype": "uint32" -} -,{ - "classname": "ISteamUGC", - "methodname": "GetSubscribedItems", - "returntype": "uint32", - "params": [ -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "cMaxEntries" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetItemState", - "returntype": "uint32", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetItemInstallInfo", - "returntype": "bool", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "punSizeOnDisk" ,"paramtype": "uint64 *"}, -{ "paramname": "pchFolder" ,"out_string_count": "cchFolderSize" ,"paramtype": "char *"}, -{ "paramname": "cchFolderSize" ,"paramtype": "uint32"}, -{ "paramname": "punTimeStamp" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetItemDownloadInfo", - "returntype": "bool", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "punBytesDownloaded" ,"paramtype": "uint64 *"}, -{ "paramname": "punBytesTotal" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "DownloadItem", - "returntype": "bool", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "bHighPriority" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "BInitWorkshopForGameServer", - "returntype": "bool", - "params": [ -{ "paramname": "unWorkshopDepotID" ,"paramtype": "DepotId_t"}, -{ "paramname": "pszFolder" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SuspendDownloads", - "returntype": "void", - "params": [ -{ "paramname": "bSuspend" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "StartPlaytimeTracking", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "unNumPublishedFileIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "StopPlaytimeTracking", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "unNumPublishedFileIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "StopPlaytimeTrackingForAllItems", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamAppList", - "methodname": "GetNumInstalledApps", - "returntype": "uint32" -} -,{ - "classname": "ISteamAppList", - "methodname": "GetInstalledApps", - "returntype": "uint32", - "params": [ -{ "paramname": "pvecAppID" ,"paramtype": "AppId_t *"}, -{ "paramname": "unMaxAppIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamAppList", - "methodname": "GetAppName", - "returntype": "int", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "pchName" ,"out_string": " " ,"paramtype": "char *"}, -{ "paramname": "cchNameMax" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamAppList", - "methodname": "GetAppInstallDir", - "returntype": "int", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "pchDirectory" ,"paramtype": "char *"}, -{ "paramname": "cchNameMax" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamAppList", - "methodname": "GetAppBuildId", - "returntype": "int", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "DestructISteamHTMLSurface", - "returntype": "void" -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "Init", - "returntype": "bool" -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "Shutdown", - "returntype": "bool" -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "CreateBrowser", "callresult": "HTML_BrowserReady_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchUserAgent" ,"paramtype": "const char *"}, -{ "paramname": "pchUserCSS" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "RemoveBrowser", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "LoadURL", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "pchURL" ,"paramtype": "const char *"}, -{ "paramname": "pchPostData" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetSize", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "unWidth" ,"paramtype": "uint32"}, -{ "paramname": "unHeight" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "StopLoad", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "Reload", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "GoBack", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "GoForward", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "AddHeader", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "ExecuteJavascript", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "pchScript" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseUp", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "eMouseButton" ,"paramtype": "ISteamHTMLSurface::EHTMLMouseButton"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseDown", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "eMouseButton" ,"paramtype": "ISteamHTMLSurface::EHTMLMouseButton"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseDoubleClick", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "eMouseButton" ,"paramtype": "ISteamHTMLSurface::EHTMLMouseButton"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseMove", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "x" ,"paramtype": "int"}, -{ "paramname": "y" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseWheel", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nDelta" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "KeyDown", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nNativeKeyCode" ,"paramtype": "uint32"}, -{ "paramname": "eHTMLKeyModifiers" ,"paramtype": "ISteamHTMLSurface::EHTMLKeyModifiers"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "KeyUp", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nNativeKeyCode" ,"paramtype": "uint32"}, -{ "paramname": "eHTMLKeyModifiers" ,"paramtype": "ISteamHTMLSurface::EHTMLKeyModifiers"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "KeyChar", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "cUnicodeChar" ,"paramtype": "uint32"}, -{ "paramname": "eHTMLKeyModifiers" ,"paramtype": "ISteamHTMLSurface::EHTMLKeyModifiers"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetHorizontalScroll", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nAbsolutePixelScroll" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetVerticalScroll", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nAbsolutePixelScroll" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetKeyFocus", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "bHasKeyFocus" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "ViewSource", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "CopyToClipboard", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "PasteFromClipboard", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "Find", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "pchSearchStr" ,"paramtype": "const char *"}, -{ "paramname": "bCurrentlyInFind" ,"paramtype": "bool"}, -{ "paramname": "bReverse" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "StopFind", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "GetLinkAtPosition", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "x" ,"paramtype": "int"}, -{ "paramname": "y" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetCookie", - "returntype": "void", - "params": [ -{ "paramname": "pchHostname" ,"paramtype": "const char *"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"}, -{ "paramname": "pchPath" ,"paramtype": "const char *"}, -{ "paramname": "nExpires" ,"paramtype": "RTime32"}, -{ "paramname": "bSecure" ,"paramtype": "bool"}, -{ "paramname": "bHTTPOnly" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetPageScaleFactor", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "flZoom" ,"paramtype": "float"}, -{ "paramname": "nPointX" ,"paramtype": "int"}, -{ "paramname": "nPointY" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetBackgroundMode", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "bBackgroundMode" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "AllowStartRequest", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "bAllowed" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "JSDialogResponse", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "bResult" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetResultStatus", "desc": "Find out the status of an asynchronous inventory result handle.", - "returntype": "EResult", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetResultItems", "desc": "Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used.", - "returntype": "bool", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"}, -{ "paramname": "pOutItemsArray" ,"out_array_count": "punOutItemsArraySize" ,"desc": "Output array" ,"paramtype": "struct SteamItemDetails_t *"}, -{ "paramname": "punOutItemsArraySize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetResultTimestamp", "desc": "Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age.", - "returntype": "uint32", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "CheckResultSteamID", "desc": "Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory.", - "returntype": "bool", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"}, -{ "paramname": "steamIDExpected" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "DestroyResult", "desc": "Destroys a result handle and frees all associated memory.", - "returntype": "void", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetAllItems", "desc": "Captures the entire state of the current users Steam inventory.", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetItemsByID", "desc": "Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs.", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pInstanceIDs" ,"array_count": "unCountInstanceIDs" ,"paramtype": "const SteamItemInstanceID_t *"}, -{ "paramname": "unCountInstanceIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "SerializeResult", - "returntype": "bool", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"}, -{ "paramname": "pOutBuffer" ,"out_buffer_count": "punOutBufferSize" ,"paramtype": "void *"}, -{ "paramname": "punOutBufferSize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "DeserializeResult", - "returntype": "bool", - "params": [ -{ "paramname": "pOutResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pBuffer" ,"buffer_count": "punOutBufferSize" ,"paramtype": "const void *"}, -{ "paramname": "unBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "bRESERVED_MUST_BE_FALSE" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GenerateItems", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pArrayItemDefs" ,"array_count": "unArrayLength" ,"paramtype": "const SteamItemDef_t *"}, -{ "paramname": "punArrayQuantity" ,"array_count": "unArrayLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "unArrayLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GrantPromoItems", "desc": "GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only).", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "AddPromoItem", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "itemDef" ,"paramtype": "SteamItemDef_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "AddPromoItems", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pArrayItemDefs" ,"array_count": "unArrayLength" ,"paramtype": "const SteamItemDef_t *"}, -{ "paramname": "unArrayLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "ConsumeItem", "desc": "ConsumeItem() removes items from the inventory permanently.", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "itemConsume" ,"paramtype": "SteamItemInstanceID_t"}, -{ "paramname": "unQuantity" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "ExchangeItems", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pArrayGenerate" ,"array_count": "unArrayGenerateLength" ,"paramtype": "const SteamItemDef_t *"}, -{ "paramname": "punArrayGenerateQuantity" ,"array_count": "unArrayGenerateLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "unArrayGenerateLength" ,"paramtype": "uint32"}, -{ "paramname": "pArrayDestroy" ,"array_count": "unArrayDestroyLength" ,"paramtype": "const SteamItemInstanceID_t *"}, -{ "paramname": "punArrayDestroyQuantity" ,"array_count": "unArrayDestroyLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "unArrayDestroyLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "TransferItemQuantity", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "itemIdSource" ,"paramtype": "SteamItemInstanceID_t"}, -{ "paramname": "unQuantity" ,"paramtype": "uint32"}, -{ "paramname": "itemIdDest" ,"paramtype": "SteamItemInstanceID_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "SendItemDropHeartbeat", "desc": "Applications which use timed-drop mechanics should call SendItemDropHeartbeat() when active gameplay begins and at least once every two minutes afterwards.", - "returntype": "void" -} -,{ - "classname": "ISteamInventory", - "methodname": "TriggerItemDrop", "desc": "Playtime credit must be consumed and turned into item drops by your game.", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "dropListDefinition" ,"paramtype": "SteamItemDef_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "TradeItems", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "steamIDTradePartner" ,"paramtype": "class CSteamID"}, -{ "paramname": "pArrayGive" ,"array_count": "nArrayGiveLength" ,"paramtype": "const SteamItemInstanceID_t *"}, -{ "paramname": "pArrayGiveQuantity" ,"array_count": "nArrayGiveLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "nArrayGiveLength" ,"paramtype": "uint32"}, -{ "paramname": "pArrayGet" ,"array_count": "nArrayGetLength" ,"paramtype": "const SteamItemInstanceID_t *"}, -{ "paramname": "pArrayGetQuantity" ,"array_count": "nArrayGetLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "nArrayGetLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "LoadItemDefinitions", "desc": "LoadItemDefinitions triggers the automatic load and refresh of item definitions.", - "returntype": "bool" -} -,{ - "classname": "ISteamInventory", - "methodname": "GetItemDefinitionIDs", - "returntype": "bool", - "params": [ -{ "paramname": "pItemDefIDs" ,"out_array_count": "punItemDefIDsArraySize" ,"desc": "List of item definition IDs" ,"paramtype": "SteamItemDef_t *"}, -{ "paramname": "punItemDefIDsArraySize" ,"desc": "Size of array is passed in and actual size used is returned in this param" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetItemDefinitionProperty", - "returntype": "bool", - "params": [ -{ "paramname": "iDefinition" ,"paramtype": "SteamItemDef_t"}, -{ "paramname": "pchPropertyName" ,"paramtype": "const char *"}, -{ "paramname": "pchValueBuffer" ,"out_string_count": "punValueBufferSizeOut" ,"paramtype": "char *"}, -{ "paramname": "punValueBufferSizeOut" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamVideo", - "methodname": "GetVideoURL", - "returntype": "void", - "params": [ -{ "paramname": "unVideoAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamVideo", - "methodname": "IsBroadcasting", - "returntype": "bool", - "params": [ -{ "paramname": "pnNumViewers" ,"paramtype": "int *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "InitGameServer", - "returntype": "bool", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usGamePort" ,"paramtype": "uint16"}, -{ "paramname": "usQueryPort" ,"paramtype": "uint16"}, -{ "paramname": "unFlags" ,"paramtype": "uint32"}, -{ "paramname": "nGameAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "pchVersionString" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetProduct", - "returntype": "void", - "params": [ -{ "paramname": "pszProduct" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetGameDescription", - "returntype": "void", - "params": [ -{ "paramname": "pszGameDescription" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetModDir", - "returntype": "void", - "params": [ -{ "paramname": "pszModDir" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetDedicatedServer", - "returntype": "void", - "params": [ -{ "paramname": "bDedicated" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "LogOn", - "returntype": "void", - "params": [ -{ "paramname": "pszToken" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "LogOnAnonymous", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "LogOff", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "BLoggedOn", - "returntype": "bool" -} -,{ - "classname": "ISteamGameServer", - "methodname": "BSecure", - "returntype": "bool" -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetSteamID", - "returntype": "class CSteamID" -} -,{ - "classname": "ISteamGameServer", - "methodname": "WasRestartRequested", - "returntype": "bool" -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetMaxPlayerCount", - "returntype": "void", - "params": [ -{ "paramname": "cPlayersMax" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetBotPlayerCount", - "returntype": "void", - "params": [ -{ "paramname": "cBotplayers" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetServerName", - "returntype": "void", - "params": [ -{ "paramname": "pszServerName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetMapName", - "returntype": "void", - "params": [ -{ "paramname": "pszMapName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetPasswordProtected", - "returntype": "void", - "params": [ -{ "paramname": "bPasswordProtected" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetSpectatorPort", - "returntype": "void", - "params": [ -{ "paramname": "unSpectatorPort" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetSpectatorServerName", - "returntype": "void", - "params": [ -{ "paramname": "pszSpectatorServerName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "ClearAllKeyValues", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetKeyValue", - "returntype": "void", - "params": [ -{ "paramname": "pKey" ,"paramtype": "const char *"}, -{ "paramname": "pValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetGameTags", - "returntype": "void", - "params": [ -{ "paramname": "pchGameTags" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetGameData", - "returntype": "void", - "params": [ -{ "paramname": "pchGameData" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetRegion", - "returntype": "void", - "params": [ -{ "paramname": "pszRegion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SendUserConnectAndAuthenticate", - "returntype": "bool", - "params": [ -{ "paramname": "unIPClient" ,"paramtype": "uint32"}, -{ "paramname": "pvAuthBlob" ,"paramtype": "const void *"}, -{ "paramname": "cubAuthBlobSize" ,"paramtype": "uint32"}, -{ "paramname": "pSteamIDUser" ,"paramtype": "class CSteamID *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "CreateUnauthenticatedUserConnection", - "returntype": "class CSteamID" -} -,{ - "classname": "ISteamGameServer", - "methodname": "SendUserDisconnect", - "returntype": "void", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "BUpdateUserData", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchPlayerName" ,"paramtype": "const char *"}, -{ "paramname": "uScore" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetAuthSessionTicket", - "returntype": "HAuthTicket", - "params": [ -{ "paramname": "pTicket" ,"paramtype": "void *"}, -{ "paramname": "cbMaxTicket" ,"paramtype": "int"}, -{ "paramname": "pcbTicket" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "BeginAuthSession", - "returntype": "EBeginAuthSessionResult", - "params": [ -{ "paramname": "pAuthTicket" ,"paramtype": "const void *"}, -{ "paramname": "cbAuthTicket" ,"paramtype": "int"}, -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "EndAuthSession", - "returntype": "void", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "CancelAuthTicket", - "returntype": "void", - "params": [ -{ "paramname": "hAuthTicket" ,"paramtype": "HAuthTicket"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "UserHasLicenseForApp", - "returntype": "EUserHasLicenseForAppResult", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"}, -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "RequestUserGroupStatus", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDGroup" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetGameplayStats", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetServerReputation", "callresult": "GSReputation_t", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetPublicIP", - "returntype": "uint32" -} -,{ - "classname": "ISteamGameServer", - "methodname": "HandleIncomingPacket", - "returntype": "bool", - "params": [ -{ "paramname": "pData" ,"paramtype": "const void *"}, -{ "paramname": "cbData" ,"paramtype": "int"}, -{ "paramname": "srcIP" ,"paramtype": "uint32"}, -{ "paramname": "srcPort" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetNextOutgoingPacket", - "returntype": "int", - "params": [ -{ "paramname": "pOut" ,"paramtype": "void *"}, -{ "paramname": "cbMaxOut" ,"paramtype": "int"}, -{ "paramname": "pNetAdr" ,"paramtype": "uint32 *"}, -{ "paramname": "pPort" ,"paramtype": "uint16 *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "EnableHeartbeats", - "returntype": "void", - "params": [ -{ "paramname": "bActive" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetHeartbeatInterval", - "returntype": "void", - "params": [ -{ "paramname": "iHeartbeatInterval" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "ForceHeartbeat", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "AssociateWithClan", "callresult": "AssociateWithClanResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "ComputeNewPlayerCompatibility", "callresult": "ComputeNewPlayerCompatibilityResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDNewPlayer" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "RequestUserStats", "callresult": "GSStatsReceived_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "GetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "GetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "GetUserAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "SetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "nData" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "SetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "fData" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "UpdateUserAvgRateStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "flCountThisSession" ,"paramtype": "float"}, -{ "paramname": "dSessionLength" ,"paramtype": "double"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "SetUserAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "ClearUserAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "StoreUserStats", "callresult": "GSStatsStored_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -] -} \ No newline at end of file diff --git a/lib/linux/include/steam/steam_api_common.h b/lib/linux/include/steam/steam_api_common.h new file mode 100644 index 0000000..cb8e6b7 --- /dev/null +++ b/lib/linux/include/steam/steam_api_common.h @@ -0,0 +1,249 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Steamworks SDK minimal include +// +// Defines the minimal set of things we need to use any single interface +// or register for any callback. +// +//============================================================================= + +#ifndef STEAM_API_COMMON_H +#define STEAM_API_COMMON_H + +#include "steamtypes.h" +#include "steamclientpublic.h" + +// S_API defines the linkage and calling conventions for steam_api.dll exports +#if defined( _WIN32 ) && !defined( _X360 ) + #if defined( STEAM_API_EXPORTS ) + #define S_API extern "C" __declspec( dllexport ) + #elif defined( STEAM_API_NODLL ) + #define S_API extern "C" + #else + #define S_API extern "C" __declspec( dllimport ) + #endif // STEAM_API_EXPORTS +#elif defined( __GNUC__ ) + #if defined( STEAM_API_EXPORTS ) + #define S_API extern "C" __attribute__ ((visibility("default"))) + #else + #define S_API extern "C" + #endif // STEAM_API_EXPORTS +#else // !WIN32 + #if defined( STEAM_API_EXPORTS ) + #define S_API extern "C" + #else + #define S_API extern "C" + #endif // STEAM_API_EXPORTS +#endif + +#if defined( __cplusplus ) && ( __cplusplus >= 201103L ) + #define S_OVERRIDE override +#else + #define S_OVERRIDE +#endif + +#if ( defined(STEAM_API_EXPORTS) || defined(STEAM_API_NODLL) ) && !defined(API_GEN) +#define STEAM_PRIVATE_API( ... ) __VA_ARGS__ +#elif defined(STEAM_API_EXPORTS) && defined(API_GEN) +#define STEAM_PRIVATE_API( ... ) +#else +#define STEAM_PRIVATE_API( ... ) protected: __VA_ARGS__ public: +#endif + +// handle to a communication pipe to the Steam client +typedef int32 HSteamPipe; +// handle to single instance of a steam user +typedef int32 HSteamUser; + +// A fixed size buffer to receive an error message that is returned by some API +// calls. +const int k_cchMaxSteamErrMsg = 1024; +typedef char SteamErrMsg[ k_cchMaxSteamErrMsg ]; + +// #define away __cdecl on posix. +// This is really, really bad. We're sorry. But it's been this way for +// a long time now and it's scary to change it, as there may be others that +// depend on it. +#ifndef _WIN32 + #define __cdecl +#endif + +// function prototype +extern "C" typedef void ( S_CALLTYPE *SteamAPIWarningMessageHook_t )( int, const char * ); +extern "C" typedef uint32 ( S_CALLTYPE *SteamAPI_CheckCallbackRegistered_t )( int iCallbackNum ); +#if defined( __SNC__ ) + #pragma diag_suppress=1700 // warning 1700: class "%s" has virtual functions but non-virtual destructor +#endif + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// steam callback and call-result helpers +// +// The following macros and classes are used to register your application for +// callbacks and call-results, which are delivered in a predictable manner. +// +// STEAM_CALLBACK macros are meant for use inside of a C++ class definition. +// They map a Steam notification callback directly to a class member function +// which is automatically prototyped as "void func( callback_type *pParam )". +// +// CCallResult is used with specific Steam APIs that return "result handles". +// The handle can be passed to a CCallResult object's Set function, along with +// an object pointer and member-function pointer. The member function will +// be executed once the results of the Steam API call are available. +// +// CCallback and CCallbackManual classes can be used instead of STEAM_CALLBACK +// macros if you require finer control over registration and unregistration. +// +// Callbacks and call-results are queued automatically and are only +// delivered/executed when your application calls SteamAPI_RunCallbacks(). +// +// Note that there is an alternative, lower level callback dispatch mechanism. +// See SteamAPI_ManualDispatch_Init +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +// Dispatch all queued Steamworks callbacks. +// +// This is safe to call from multiple threads simultaneously, +// but if you choose to do this, callback code could be executed on any thread. +// One alternative is to call SteamAPI_RunCallbacks from the main thread only, +// and call SteamAPI_ReleaseCurrentThreadMemory regularly on other threads. +S_API void S_CALLTYPE SteamAPI_RunCallbacks(); + +// Declares a callback member function plus a helper member variable which +// registers the callback on object creation and unregisters on destruction. +// The optional fourth 'var' param exists only for backwards-compatibility +// and can be ignored. +#define STEAM_CALLBACK( thisclass, func, .../*callback_type, [deprecated] var*/ ) \ + _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, 4, 3 ), ( /**/, thisclass, func, __VA_ARGS__ ) ) + +// Declares a callback function and a named CCallbackManual variable which +// has Register and Unregister functions instead of automatic registration. +#define STEAM_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ + CCallbackManual< thisclass, callback_type > var; void func( callback_type *pParam ) + +// Dispatch callbacks relevant to the gameserver client and interfaces. +// To register for these, you need to use STEAM_GAMESERVER_CALLBACK. +// (Or call SetGameserverFlag on your CCallbackBase object.) +S_API void S_CALLTYPE SteamGameServer_RunCallbacks(); + +// Same as STEAM_CALLBACK, but for callbacks on the gameserver interface. +// These will be dispatched during SteamGameServer_RunCallbacks +#define STEAM_GAMESERVER_CALLBACK( thisclass, func, /*callback_type, [deprecated] var*/... ) \ + _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, GS, 3 ), ( this->SetGameserverFlag();, thisclass, func, __VA_ARGS__ ) ) +#define STEAM_GAMESERVER_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ + CCallbackManual< thisclass, callback_type, true > var; void func( callback_type *pParam ) + +//----------------------------------------------------------------------------- +// Purpose: base for callbacks and call results - internal implementation detail +//----------------------------------------------------------------------------- +class CCallbackBase +{ +public: + CCallbackBase() { m_nCallbackFlags = 0; m_iCallback = 0; } + // don't add a virtual destructor because we export this binary interface across dll's + virtual void Run( void *pvParam ) = 0; + virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ) = 0; + int GetICallback() { return m_iCallback; } + virtual int GetCallbackSizeBytes() = 0; + +protected: + enum { k_ECallbackFlagsRegistered = 0x01, k_ECallbackFlagsGameServer = 0x02 }; + uint8 m_nCallbackFlags; + int m_iCallback; + friend class CCallbackMgr; + +private: + CCallbackBase( const CCallbackBase& ); + CCallbackBase& operator=( const CCallbackBase& ); +}; + +//----------------------------------------------------------------------------- +// Purpose: templated base for callbacks - internal implementation detail +//----------------------------------------------------------------------------- +template< int sizeof_P > +class CCallbackImpl : protected CCallbackBase +{ +public: + virtual ~CCallbackImpl() { if ( m_nCallbackFlags & k_ECallbackFlagsRegistered ) SteamAPI_UnregisterCallback( this ); } + void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } + +protected: + friend class CCallbackMgr; + virtual void Run( void *pvParam ) S_OVERRIDE = 0; + virtual void Run( void *pvParam, bool /*bIOFailure*/, SteamAPICall_t /*hSteamAPICall*/ ) S_OVERRIDE { Run( pvParam ); } + virtual int GetCallbackSizeBytes() S_OVERRIDE { return sizeof_P; } +}; + + +//----------------------------------------------------------------------------- +// Purpose: maps a steam async call result to a class member function +// template params: T = local class, P = parameter struct +//----------------------------------------------------------------------------- +template< class T, class P > +class CCallResult : private CCallbackBase +{ +public: + typedef void (T::*func_t)( P*, bool ); + + CCallResult(); + ~CCallResult(); + + void Set( SteamAPICall_t hAPICall, T *p, func_t func ); + bool IsActive() const; + void Cancel(); + + void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } +private: + virtual void Run( void *pvParam ) S_OVERRIDE; + virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ) S_OVERRIDE; + virtual int GetCallbackSizeBytes() S_OVERRIDE { return sizeof( P ); } + + SteamAPICall_t m_hAPICall; + T *m_pObj; + func_t m_Func; +}; + + + +//----------------------------------------------------------------------------- +// Purpose: maps a steam callback to a class member function +// template params: T = local class, P = parameter struct, +// bGameserver = listen for gameserver callbacks instead of client callbacks +//----------------------------------------------------------------------------- +template< class T, class P, bool bGameserver = false > +class CCallback : public CCallbackImpl< sizeof( P ) > +{ +public: + typedef void (T::*func_t)(P*); + + // NOTE: If you can't provide the correct parameters at construction time, you should + // use the CCallbackManual callback object (STEAM_CALLBACK_MANUAL macro) instead. + CCallback( T *pObj, func_t func ); + + void Register( T *pObj, func_t func ); + void Unregister(); + +protected: + virtual void Run( void *pvParam ) S_OVERRIDE; + + T *m_pObj; + func_t m_Func; +}; + + +//----------------------------------------------------------------------------- +// Purpose: subclass of CCallback which allows default-construction in +// an unregistered state; you must call Register manually +//----------------------------------------------------------------------------- +template< class T, class P, bool bGameServer = false > +class CCallbackManual : public CCallback< T, P, bGameServer > +{ +public: + CCallbackManual() : CCallback< T, P, bGameServer >( nullptr, nullptr ) {} + + // Inherits public Register and Unregister functions from base class +}; + +// Internal implementation details for all of the above +#include "steam_api_internal.h" + +#endif // STEAM_API_COMMON_H diff --git a/lib/linux/include/steam/steam_api_flat.h b/lib/linux/include/steam/steam_api_flat.h index e77e4cb..a0e7ce4 100644 --- a/lib/linux/include/steam/steam_api_flat.h +++ b/lib/linux/include/steam/steam_api_flat.h @@ -1,802 +1,1268 @@ -//====== Copyright (c) 1996-2014, Valve Corporation, All rights reserved. ======= +//====== Copyright Valve Corporation, All rights reserved. ==================== // -// Purpose: Header for flatted SteamAPI. Use this for binding to other languages. +// Purpose: Header for "flat" SteamAPI. Use this for binding to other languages. // This file is auto-generated, do not edit it. // //============================================================================= #ifndef STEAMAPIFLAT_H #define STEAMAPIFLAT_H -#ifdef _WIN32 -#pragma once -#endif -#include <stdint.h> +#include "steam/steam_api.h" +#include "steam/isteamgameserver.h" +#include "steam/isteamgameserverstats.h" - -typedef unsigned char uint8; -typedef unsigned char uint8; -typedef signed char int8; -typedef short int16; -typedef unsigned short uint16; -typedef int int32; -typedef unsigned int uint32; -typedef long long int64; -typedef unsigned long long uint64; -typedef int64 lint64; -typedef uint64 ulint64; -typedef uint8 Salt_t[8]; -typedef uint64 GID_t; -typedef uint64 JobID_t; -typedef GID_t TxnID_t; -typedef uint32 PackageId_t; -typedef uint32 BundleId_t; -typedef uint32 AppId_t; -typedef uint64 AssetClassId_t; -typedef uint32 PhysicalItemId_t; -typedef uint32 DepotId_t; -typedef uint32 RTime32; -typedef uint32 CellID_t; -typedef uint64 SteamAPICall_t; -typedef uint32 AccountID_t; -typedef uint32 PartnerId_t; -typedef uint64 ManifestId_t; -typedef uint32 HAuthTicket; -typedef void * BREAKPAD_HANDLE; -typedef char compile_time_assert_type[1]; -typedef int32 HSteamPipe; -typedef int32 HSteamUser; -typedef int16 FriendsGroupID_t; -typedef void * HServerListRequest; -typedef int HServerQuery; -typedef uint64 UGCHandle_t; -typedef uint64 PublishedFileUpdateHandle_t; -typedef uint64 PublishedFileId_t; -typedef uint64 UGCFileWriteStreamHandle_t; -typedef char compile_time_assert_type[1]; -typedef uint64 SteamLeaderboard_t; -typedef uint64 SteamLeaderboardEntries_t; -typedef uint32 SNetSocket_t; -typedef uint32 SNetListenSocket_t; -typedef uint32 ScreenshotHandle; -typedef uint32 HTTPRequestHandle; -typedef uint32 HTTPCookieContainerHandle; -typedef uint64 ClientUnifiedMessageHandle; -typedef uint64 ControllerHandle_t; -typedef uint64 ControllerActionSetHandle_t; -typedef uint64 ControllerDigitalActionHandle_t; -typedef uint64 ControllerAnalogActionHandle_t; -typedef uint64 UGCQueryHandle_t; -typedef uint64 UGCUpdateHandle_t; -typedef uint32 HHTMLBrowser; -typedef uint64 SteamItemInstanceID_t; -typedef int32 SteamItemDef_t; -typedef int32 SteamInventoryResult_t; -// OpenVR Constants -int const_k_iSteamUserCallbacks = 100; -int const_k_iSteamGameServerCallbacks = 200; -int const_k_iSteamFriendsCallbacks = 300; -int const_k_iSteamBillingCallbacks = 400; -int const_k_iSteamMatchmakingCallbacks = 500; -int const_k_iSteamContentServerCallbacks = 600; -int const_k_iSteamUtilsCallbacks = 700; -int const_k_iClientFriendsCallbacks = 800; -int const_k_iClientUserCallbacks = 900; -int const_k_iSteamAppsCallbacks = 1000; -int const_k_iSteamUserStatsCallbacks = 1100; -int const_k_iSteamNetworkingCallbacks = 1200; -int const_k_iClientRemoteStorageCallbacks = 1300; -int const_k_iClientDepotBuilderCallbacks = 1400; -int const_k_iSteamGameServerItemsCallbacks = 1500; -int const_k_iClientUtilsCallbacks = 1600; -int const_k_iSteamGameCoordinatorCallbacks = 1700; -int const_k_iSteamGameServerStatsCallbacks = 1800; -int const_k_iSteam2AsyncCallbacks = 1900; -int const_k_iSteamGameStatsCallbacks = 2000; -int const_k_iClientHTTPCallbacks = 2100; -int const_k_iClientScreenshotsCallbacks = 2200; -int const_k_iSteamScreenshotsCallbacks = 2300; -int const_k_iClientAudioCallbacks = 2400; -int const_k_iClientUnifiedMessagesCallbacks = 2500; -int const_k_iSteamStreamLauncherCallbacks = 2600; -int const_k_iClientControllerCallbacks = 2700; -int const_k_iSteamControllerCallbacks = 2800; -int const_k_iClientParentalSettingsCallbacks = 2900; -int const_k_iClientDeviceAuthCallbacks = 3000; -int const_k_iClientNetworkDeviceManagerCallbacks = 3100; -int const_k_iClientMusicCallbacks = 3200; -int const_k_iClientRemoteClientManagerCallbacks = 3300; -int const_k_iClientUGCCallbacks = 3400; -int const_k_iSteamStreamClientCallbacks = 3500; -int const_k_IClientProductBuilderCallbacks = 3600; -int const_k_iClientShortcutsCallbacks = 3700; -int const_k_iClientRemoteControlManagerCallbacks = 3800; -int const_k_iSteamAppListCallbacks = 3900; -int const_k_iSteamMusicCallbacks = 4000; -int const_k_iSteamMusicRemoteCallbacks = 4100; -int const_k_iClientVRCallbacks = 4200; -int const_k_iClientGameNotificationCallbacks = 4300; -int const_k_iSteamGameNotificationCallbacks = 4400; -int const_k_iSteamHTMLSurfaceCallbacks = 4500; -int const_k_iClientVideoCallbacks = 4600; -int const_k_iClientInventoryCallbacks = 4700; -int const_k_iClientBluetoothManagerCallbacks = 4800; -int const_k_cchPersonaNameMax = 128; -int const_k_cwchPersonaNameMax = 32; -int const_k_cchMaxRichPresenceKeys = 20; -int const_k_cchMaxRichPresenceKeyLength = 64; -int const_k_cchMaxRichPresenceValueLength = 256; -int const_k_cchStatNameMax = 128; -int const_k_cchLeaderboardNameMax = 128; -int const_k_cLeaderboardDetailsMax = 64; -unsigned long const_k_InvalidUnifiedMessageHandle = 0; -unsigned long const_k_SteamItemInstanceIDInvalid = 0xffffffff; -int const_k_SteamInventoryResultInvalid = -1; +typedef uint64 uint64_steamid; // Used when passing or returning CSteamID +typedef uint64 uint64_gameid; // Used when passing or return CGameID -// OpenVR Enums -// OpenVR Structs +// ISteamClient +S_API HSteamPipe SteamAPI_ISteamClient_CreateSteamPipe( ISteamClient* self ); +S_API bool SteamAPI_ISteamClient_BReleaseSteamPipe( ISteamClient* self, HSteamPipe hSteamPipe ); +S_API HSteamUser SteamAPI_ISteamClient_ConnectToGlobalUser( ISteamClient* self, HSteamPipe hSteamPipe ); +S_API HSteamUser SteamAPI_ISteamClient_CreateLocalUser( ISteamClient* self, HSteamPipe * phSteamPipe, EAccountType eAccountType ); +S_API void SteamAPI_ISteamClient_ReleaseUser( ISteamClient* self, HSteamPipe hSteamPipe, HSteamUser hUser ); +S_API ISteamUser * SteamAPI_ISteamClient_GetISteamUser( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamGameServer * SteamAPI_ISteamClient_GetISteamGameServer( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API void SteamAPI_ISteamClient_SetLocalIPBinding( ISteamClient* self, const SteamIPAddress_t & unIP, uint16 usPort ); +S_API ISteamFriends * SteamAPI_ISteamClient_GetISteamFriends( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamUtils * SteamAPI_ISteamClient_GetISteamUtils( ISteamClient* self, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMatchmaking * SteamAPI_ISteamClient_GetISteamMatchmaking( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMatchmakingServers * SteamAPI_ISteamClient_GetISteamMatchmakingServers( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API void * SteamAPI_ISteamClient_GetISteamGenericInterface( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamUserStats * SteamAPI_ISteamClient_GetISteamUserStats( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamGameServerStats * SteamAPI_ISteamClient_GetISteamGameServerStats( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamApps * SteamAPI_ISteamClient_GetISteamApps( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamNetworking * SteamAPI_ISteamClient_GetISteamNetworking( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamRemoteStorage * SteamAPI_ISteamClient_GetISteamRemoteStorage( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamScreenshots * SteamAPI_ISteamClient_GetISteamScreenshots( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamGameSearch * SteamAPI_ISteamClient_GetISteamGameSearch( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API uint32 SteamAPI_ISteamClient_GetIPCCallCount( ISteamClient* self ); +S_API void SteamAPI_ISteamClient_SetWarningMessageHook( ISteamClient* self, SteamAPIWarningMessageHook_t pFunction ); +S_API bool SteamAPI_ISteamClient_BShutdownIfAllPipesClosed( ISteamClient* self ); +S_API ISteamHTTP * SteamAPI_ISteamClient_GetISteamHTTP( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamController * SteamAPI_ISteamClient_GetISteamController( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamUGC * SteamAPI_ISteamClient_GetISteamUGC( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMusic * SteamAPI_ISteamClient_GetISteamMusic( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMusicRemote * SteamAPI_ISteamClient_GetISteamMusicRemote( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamHTMLSurface * SteamAPI_ISteamClient_GetISteamHTMLSurface( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamInventory * SteamAPI_ISteamClient_GetISteamInventory( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamVideo * SteamAPI_ISteamClient_GetISteamVideo( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamParentalSettings * SteamAPI_ISteamClient_GetISteamParentalSettings( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamInput * SteamAPI_ISteamClient_GetISteamInput( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamParties * SteamAPI_ISteamClient_GetISteamParties( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamRemotePlay * SteamAPI_ISteamClient_GetISteamRemotePlay( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +// ISteamUser +// A versioned accessor is exported by the library +S_API ISteamUser *SteamAPI_SteamUser_v023(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUser(), but using this ensures that you are using a matching library. +inline ISteamUser *SteamAPI_SteamUser() { return SteamAPI_SteamUser_v023(); } +S_API HSteamUser SteamAPI_ISteamUser_GetHSteamUser( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BLoggedOn( ISteamUser* self ); +S_API uint64_steamid SteamAPI_ISteamUser_GetSteamID( ISteamUser* self ); +S_API int SteamAPI_ISteamUser_InitiateGameConnection_DEPRECATED( ISteamUser* self, void * pAuthBlob, int cbMaxAuthBlob, uint64_steamid steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure ); +S_API void SteamAPI_ISteamUser_TerminateGameConnection_DEPRECATED( ISteamUser* self, uint32 unIPServer, uint16 usPortServer ); +S_API void SteamAPI_ISteamUser_TrackAppUsageEvent( ISteamUser* self, uint64_gameid gameID, int eAppUsageEvent, const char * pchExtraInfo ); +S_API bool SteamAPI_ISteamUser_GetUserDataFolder( ISteamUser* self, char * pchBuffer, int cubBuffer ); +S_API void SteamAPI_ISteamUser_StartVoiceRecording( ISteamUser* self ); +S_API void SteamAPI_ISteamUser_StopVoiceRecording( ISteamUser* self ); +S_API EVoiceResult SteamAPI_ISteamUser_GetAvailableVoice( ISteamUser* self, uint32 * pcbCompressed, uint32 * pcbUncompressed_Deprecated, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated ); +S_API EVoiceResult SteamAPI_ISteamUser_GetVoice( ISteamUser* self, bool bWantCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, bool bWantUncompressed_Deprecated, void * pUncompressedDestBuffer_Deprecated, uint32 cbUncompressedDestBufferSize_Deprecated, uint32 * nUncompressBytesWritten_Deprecated, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated ); +S_API EVoiceResult SteamAPI_ISteamUser_DecompressVoice( ISteamUser* self, const void * pCompressed, uint32 cbCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, uint32 nDesiredSampleRate ); +S_API uint32 SteamAPI_ISteamUser_GetVoiceOptimalSampleRate( ISteamUser* self ); +S_API HAuthTicket SteamAPI_ISteamUser_GetAuthSessionTicket( ISteamUser* self, void * pTicket, int cbMaxTicket, uint32 * pcbTicket, const SteamNetworkingIdentity * pSteamNetworkingIdentity ); +S_API HAuthTicket SteamAPI_ISteamUser_GetAuthTicketForWebApi( ISteamUser* self, const char * pchIdentity ); +S_API EBeginAuthSessionResult SteamAPI_ISteamUser_BeginAuthSession( ISteamUser* self, const void * pAuthTicket, int cbAuthTicket, uint64_steamid steamID ); +S_API void SteamAPI_ISteamUser_EndAuthSession( ISteamUser* self, uint64_steamid steamID ); +S_API void SteamAPI_ISteamUser_CancelAuthTicket( ISteamUser* self, HAuthTicket hAuthTicket ); +S_API EUserHasLicenseForAppResult SteamAPI_ISteamUser_UserHasLicenseForApp( ISteamUser* self, uint64_steamid steamID, AppId_t appID ); +S_API bool SteamAPI_ISteamUser_BIsBehindNAT( ISteamUser* self ); +S_API void SteamAPI_ISteamUser_AdvertiseGame( ISteamUser* self, uint64_steamid steamIDGameServer, uint32 unIPServer, uint16 usPortServer ); +S_API SteamAPICall_t SteamAPI_ISteamUser_RequestEncryptedAppTicket( ISteamUser* self, void * pDataToInclude, int cbDataToInclude ); +S_API bool SteamAPI_ISteamUser_GetEncryptedAppTicket( ISteamUser* self, void * pTicket, int cbMaxTicket, uint32 * pcbTicket ); +S_API int SteamAPI_ISteamUser_GetGameBadgeLevel( ISteamUser* self, int nSeries, bool bFoil ); +S_API int SteamAPI_ISteamUser_GetPlayerSteamLevel( ISteamUser* self ); +S_API SteamAPICall_t SteamAPI_ISteamUser_RequestStoreAuthURL( ISteamUser* self, const char * pchRedirectURL ); +S_API bool SteamAPI_ISteamUser_BIsPhoneVerified( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BIsTwoFactorEnabled( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BIsPhoneIdentifying( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BIsPhoneRequiringVerification( ISteamUser* self ); +S_API SteamAPICall_t SteamAPI_ISteamUser_GetMarketEligibility( ISteamUser* self ); +S_API SteamAPICall_t SteamAPI_ISteamUser_GetDurationControl( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BSetDurationControlOnlineState( ISteamUser* self, EDurationControlOnlineState eNewState ); -S_API HSteamPipe SteamAPI_ISteamClient_CreateSteamPipe(intptr_t instancePtr); -S_API bool SteamAPI_ISteamClient_BReleaseSteamPipe(intptr_t instancePtr, HSteamPipe hSteamPipe); -S_API HSteamUser SteamAPI_ISteamClient_ConnectToGlobalUser(intptr_t instancePtr, HSteamPipe hSteamPipe); -S_API HSteamUser SteamAPI_ISteamClient_CreateLocalUser(intptr_t instancePtr, HSteamPipe * phSteamPipe, EAccountType eAccountType); -S_API void SteamAPI_ISteamClient_ReleaseUser(intptr_t instancePtr, HSteamPipe hSteamPipe, HSteamUser hUser); -S_API class ISteamUser * SteamAPI_ISteamClient_GetISteamUser(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamGameServer * SteamAPI_ISteamClient_GetISteamGameServer(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API void SteamAPI_ISteamClient_SetLocalIPBinding(intptr_t instancePtr, uint32 unIP, uint16 usPort); -S_API class ISteamFriends * SteamAPI_ISteamClient_GetISteamFriends(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamUtils * SteamAPI_ISteamClient_GetISteamUtils(intptr_t instancePtr, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamMatchmaking * SteamAPI_ISteamClient_GetISteamMatchmaking(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamMatchmakingServers * SteamAPI_ISteamClient_GetISteamMatchmakingServers(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API void * SteamAPI_ISteamClient_GetISteamGenericInterface(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamUserStats * SteamAPI_ISteamClient_GetISteamUserStats(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamGameServerStats * SteamAPI_ISteamClient_GetISteamGameServerStats(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamApps * SteamAPI_ISteamClient_GetISteamApps(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamNetworking * SteamAPI_ISteamClient_GetISteamNetworking(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamRemoteStorage * SteamAPI_ISteamClient_GetISteamRemoteStorage(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamScreenshots * SteamAPI_ISteamClient_GetISteamScreenshots(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API uint32 SteamAPI_ISteamClient_GetIPCCallCount(intptr_t instancePtr); -S_API void SteamAPI_ISteamClient_SetWarningMessageHook(intptr_t instancePtr, SteamAPIWarningMessageHook_t pFunction); -S_API bool SteamAPI_ISteamClient_BShutdownIfAllPipesClosed(intptr_t instancePtr); -S_API class ISteamHTTP * SteamAPI_ISteamClient_GetISteamHTTP(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamUnifiedMessages * SteamAPI_ISteamClient_GetISteamUnifiedMessages(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamController * SteamAPI_ISteamClient_GetISteamController(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamUGC * SteamAPI_ISteamClient_GetISteamUGC(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamAppList * SteamAPI_ISteamClient_GetISteamAppList(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamMusic * SteamAPI_ISteamClient_GetISteamMusic(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamMusicRemote * SteamAPI_ISteamClient_GetISteamMusicRemote(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamHTMLSurface * SteamAPI_ISteamClient_GetISteamHTMLSurface(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamInventory * SteamAPI_ISteamClient_GetISteamInventory(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamVideo * SteamAPI_ISteamClient_GetISteamVideo(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API HSteamUser SteamAPI_ISteamUser_GetHSteamUser(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUser_BLoggedOn(intptr_t instancePtr); -S_API uint64 SteamAPI_ISteamUser_GetSteamID(intptr_t instancePtr); -S_API int SteamAPI_ISteamUser_InitiateGameConnection(intptr_t instancePtr, void * pAuthBlob, int cbMaxAuthBlob, class CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure); -S_API void SteamAPI_ISteamUser_TerminateGameConnection(intptr_t instancePtr, uint32 unIPServer, uint16 usPortServer); -S_API void SteamAPI_ISteamUser_TrackAppUsageEvent(intptr_t instancePtr, class CGameID gameID, int eAppUsageEvent, const char * pchExtraInfo); -S_API bool SteamAPI_ISteamUser_GetUserDataFolder(intptr_t instancePtr, char * pchBuffer, int cubBuffer); -S_API void SteamAPI_ISteamUser_StartVoiceRecording(intptr_t instancePtr); -S_API void SteamAPI_ISteamUser_StopVoiceRecording(intptr_t instancePtr); -S_API EVoiceResult SteamAPI_ISteamUser_GetAvailableVoice(intptr_t instancePtr, uint32 * pcbCompressed, uint32 * pcbUncompressed, uint32 nUncompressedVoiceDesiredSampleRate); -S_API EVoiceResult SteamAPI_ISteamUser_GetVoice(intptr_t instancePtr, bool bWantCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, bool bWantUncompressed, void * pUncompressedDestBuffer, uint32 cbUncompressedDestBufferSize, uint32 * nUncompressBytesWritten, uint32 nUncompressedVoiceDesiredSampleRate); -S_API EVoiceResult SteamAPI_ISteamUser_DecompressVoice(intptr_t instancePtr, const void * pCompressed, uint32 cbCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, uint32 nDesiredSampleRate); -S_API uint32 SteamAPI_ISteamUser_GetVoiceOptimalSampleRate(intptr_t instancePtr); -S_API HAuthTicket SteamAPI_ISteamUser_GetAuthSessionTicket(intptr_t instancePtr, void * pTicket, int cbMaxTicket, uint32 * pcbTicket); -S_API EBeginAuthSessionResult SteamAPI_ISteamUser_BeginAuthSession(intptr_t instancePtr, const void * pAuthTicket, int cbAuthTicket, class CSteamID steamID); -S_API void SteamAPI_ISteamUser_EndAuthSession(intptr_t instancePtr, class CSteamID steamID); -S_API void SteamAPI_ISteamUser_CancelAuthTicket(intptr_t instancePtr, HAuthTicket hAuthTicket); -S_API EUserHasLicenseForAppResult SteamAPI_ISteamUser_UserHasLicenseForApp(intptr_t instancePtr, class CSteamID steamID, AppId_t appID); -S_API bool SteamAPI_ISteamUser_BIsBehindNAT(intptr_t instancePtr); -S_API void SteamAPI_ISteamUser_AdvertiseGame(intptr_t instancePtr, class CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer); -S_API SteamAPICall_t SteamAPI_ISteamUser_RequestEncryptedAppTicket(intptr_t instancePtr, void * pDataToInclude, int cbDataToInclude); -S_API bool SteamAPI_ISteamUser_GetEncryptedAppTicket(intptr_t instancePtr, void * pTicket, int cbMaxTicket, uint32 * pcbTicket); -S_API int SteamAPI_ISteamUser_GetGameBadgeLevel(intptr_t instancePtr, int nSeries, bool bFoil); -S_API int SteamAPI_ISteamUser_GetPlayerSteamLevel(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamUser_RequestStoreAuthURL(intptr_t instancePtr, const char * pchRedirectURL); -S_API bool SteamAPI_ISteamUser_BIsPhoneVerified(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUser_BIsTwoFactorEnabled(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUser_BIsPhoneIdentifying(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUser_BIsPhoneRequiringVerification(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamFriends_GetPersonaName(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamFriends_SetPersonaName(intptr_t instancePtr, const char * pchPersonaName); -S_API EPersonaState SteamAPI_ISteamFriends_GetPersonaState(intptr_t instancePtr); -S_API int SteamAPI_ISteamFriends_GetFriendCount(intptr_t instancePtr, int iFriendFlags); -S_API uint64 SteamAPI_ISteamFriends_GetFriendByIndex(intptr_t instancePtr, int iFriend, int iFriendFlags); -S_API EFriendRelationship SteamAPI_ISteamFriends_GetFriendRelationship(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API EPersonaState SteamAPI_ISteamFriends_GetFriendPersonaState(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaName(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API bool SteamAPI_ISteamFriends_GetFriendGamePlayed(intptr_t instancePtr, class CSteamID steamIDFriend, struct FriendGameInfo_t * pFriendGameInfo); -S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaNameHistory(intptr_t instancePtr, class CSteamID steamIDFriend, int iPersonaName); -S_API int SteamAPI_ISteamFriends_GetFriendSteamLevel(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API const char * SteamAPI_ISteamFriends_GetPlayerNickname(intptr_t instancePtr, class CSteamID steamIDPlayer); -S_API int SteamAPI_ISteamFriends_GetFriendsGroupCount(intptr_t instancePtr); -S_API FriendsGroupID_t SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex(intptr_t instancePtr, int iFG); -S_API const char * SteamAPI_ISteamFriends_GetFriendsGroupName(intptr_t instancePtr, FriendsGroupID_t friendsGroupID); -S_API int SteamAPI_ISteamFriends_GetFriendsGroupMembersCount(intptr_t instancePtr, FriendsGroupID_t friendsGroupID); -S_API void SteamAPI_ISteamFriends_GetFriendsGroupMembersList(intptr_t instancePtr, FriendsGroupID_t friendsGroupID, class CSteamID * pOutSteamIDMembers, int nMembersCount); -S_API bool SteamAPI_ISteamFriends_HasFriend(intptr_t instancePtr, class CSteamID steamIDFriend, int iFriendFlags); -S_API int SteamAPI_ISteamFriends_GetClanCount(intptr_t instancePtr); -S_API uint64 SteamAPI_ISteamFriends_GetClanByIndex(intptr_t instancePtr, int iClan); -S_API const char * SteamAPI_ISteamFriends_GetClanName(intptr_t instancePtr, class CSteamID steamIDClan); -S_API const char * SteamAPI_ISteamFriends_GetClanTag(intptr_t instancePtr, class CSteamID steamIDClan); -S_API bool SteamAPI_ISteamFriends_GetClanActivityCounts(intptr_t instancePtr, class CSteamID steamIDClan, int * pnOnline, int * pnInGame, int * pnChatting); -S_API SteamAPICall_t SteamAPI_ISteamFriends_DownloadClanActivityCounts(intptr_t instancePtr, class CSteamID * psteamIDClans, int cClansToRequest); -S_API int SteamAPI_ISteamFriends_GetFriendCountFromSource(intptr_t instancePtr, class CSteamID steamIDSource); -S_API uint64 SteamAPI_ISteamFriends_GetFriendFromSourceByIndex(intptr_t instancePtr, class CSteamID steamIDSource, int iFriend); -S_API bool SteamAPI_ISteamFriends_IsUserInSource(intptr_t instancePtr, class CSteamID steamIDUser, class CSteamID steamIDSource); -S_API void SteamAPI_ISteamFriends_SetInGameVoiceSpeaking(intptr_t instancePtr, class CSteamID steamIDUser, bool bSpeaking); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlay(intptr_t instancePtr, const char * pchDialog); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToUser(intptr_t instancePtr, const char * pchDialog, class CSteamID steamID); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage(intptr_t instancePtr, const char * pchURL); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToStore(intptr_t instancePtr, AppId_t nAppID, EOverlayToStoreFlag eFlag); -S_API void SteamAPI_ISteamFriends_SetPlayedWith(intptr_t instancePtr, class CSteamID steamIDUserPlayedWith); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API int SteamAPI_ISteamFriends_GetSmallFriendAvatar(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API int SteamAPI_ISteamFriends_GetMediumFriendAvatar(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API int SteamAPI_ISteamFriends_GetLargeFriendAvatar(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API bool SteamAPI_ISteamFriends_RequestUserInformation(intptr_t instancePtr, class CSteamID steamIDUser, bool bRequireNameOnly); -S_API SteamAPICall_t SteamAPI_ISteamFriends_RequestClanOfficerList(intptr_t instancePtr, class CSteamID steamIDClan); -S_API uint64 SteamAPI_ISteamFriends_GetClanOwner(intptr_t instancePtr, class CSteamID steamIDClan); -S_API int SteamAPI_ISteamFriends_GetClanOfficerCount(intptr_t instancePtr, class CSteamID steamIDClan); -S_API uint64 SteamAPI_ISteamFriends_GetClanOfficerByIndex(intptr_t instancePtr, class CSteamID steamIDClan, int iOfficer); -S_API uint32 SteamAPI_ISteamFriends_GetUserRestrictions(intptr_t instancePtr); -S_API bool SteamAPI_ISteamFriends_SetRichPresence(intptr_t instancePtr, const char * pchKey, const char * pchValue); -S_API void SteamAPI_ISteamFriends_ClearRichPresence(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresence(intptr_t instancePtr, class CSteamID steamIDFriend, const char * pchKey); -S_API int SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex(intptr_t instancePtr, class CSteamID steamIDFriend, int iKey); -S_API void SteamAPI_ISteamFriends_RequestFriendRichPresence(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API bool SteamAPI_ISteamFriends_InviteUserToGame(intptr_t instancePtr, class CSteamID steamIDFriend, const char * pchConnectString); -S_API int SteamAPI_ISteamFriends_GetCoplayFriendCount(intptr_t instancePtr); -S_API uint64 SteamAPI_ISteamFriends_GetCoplayFriend(intptr_t instancePtr, int iCoplayFriend); -S_API int SteamAPI_ISteamFriends_GetFriendCoplayTime(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API AppId_t SteamAPI_ISteamFriends_GetFriendCoplayGame(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API SteamAPICall_t SteamAPI_ISteamFriends_JoinClanChatRoom(intptr_t instancePtr, class CSteamID steamIDClan); -S_API bool SteamAPI_ISteamFriends_LeaveClanChatRoom(intptr_t instancePtr, class CSteamID steamIDClan); -S_API int SteamAPI_ISteamFriends_GetClanChatMemberCount(intptr_t instancePtr, class CSteamID steamIDClan); -S_API uint64 SteamAPI_ISteamFriends_GetChatMemberByIndex(intptr_t instancePtr, class CSteamID steamIDClan, int iUser); -S_API bool SteamAPI_ISteamFriends_SendClanChatMessage(intptr_t instancePtr, class CSteamID steamIDClanChat, const char * pchText); -S_API int SteamAPI_ISteamFriends_GetClanChatMessage(intptr_t instancePtr, class CSteamID steamIDClanChat, int iMessage, void * prgchText, int cchTextMax, EChatEntryType * peChatEntryType, class CSteamID * psteamidChatter); -S_API bool SteamAPI_ISteamFriends_IsClanChatAdmin(intptr_t instancePtr, class CSteamID steamIDClanChat, class CSteamID steamIDUser); -S_API bool SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam(intptr_t instancePtr, class CSteamID steamIDClanChat); -S_API bool SteamAPI_ISteamFriends_OpenClanChatWindowInSteam(intptr_t instancePtr, class CSteamID steamIDClanChat); -S_API bool SteamAPI_ISteamFriends_CloseClanChatWindowInSteam(intptr_t instancePtr, class CSteamID steamIDClanChat); -S_API bool SteamAPI_ISteamFriends_SetListenForFriendsMessages(intptr_t instancePtr, bool bInterceptEnabled); -S_API bool SteamAPI_ISteamFriends_ReplyToFriendMessage(intptr_t instancePtr, class CSteamID steamIDFriend, const char * pchMsgToSend); -S_API int SteamAPI_ISteamFriends_GetFriendMessage(intptr_t instancePtr, class CSteamID steamIDFriend, int iMessageID, void * pvData, int cubData, EChatEntryType * peChatEntryType); -S_API SteamAPICall_t SteamAPI_ISteamFriends_GetFollowerCount(intptr_t instancePtr, class CSteamID steamID); -S_API SteamAPICall_t SteamAPI_ISteamFriends_IsFollowing(intptr_t instancePtr, class CSteamID steamID); -S_API SteamAPICall_t SteamAPI_ISteamFriends_EnumerateFollowingList(intptr_t instancePtr, uint32 unStartIndex); -S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceAppActive(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceComputerActive(intptr_t instancePtr); -S_API EUniverse SteamAPI_ISteamUtils_GetConnectedUniverse(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamUtils_GetServerRealTime(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamUtils_GetIPCountry(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUtils_GetImageSize(intptr_t instancePtr, int iImage, uint32 * pnWidth, uint32 * pnHeight); -S_API bool SteamAPI_ISteamUtils_GetImageRGBA(intptr_t instancePtr, int iImage, uint8 * pubDest, int nDestBufferSize); -S_API bool SteamAPI_ISteamUtils_GetCSERIPPort(intptr_t instancePtr, uint32 * unIP, uint16 * usPort); -S_API uint8 SteamAPI_ISteamUtils_GetCurrentBatteryPower(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamUtils_GetAppID(intptr_t instancePtr); -S_API void SteamAPI_ISteamUtils_SetOverlayNotificationPosition(intptr_t instancePtr, ENotificationPosition eNotificationPosition); -S_API bool SteamAPI_ISteamUtils_IsAPICallCompleted(intptr_t instancePtr, SteamAPICall_t hSteamAPICall, bool * pbFailed); -S_API ESteamAPICallFailure SteamAPI_ISteamUtils_GetAPICallFailureReason(intptr_t instancePtr, SteamAPICall_t hSteamAPICall); -S_API bool SteamAPI_ISteamUtils_GetAPICallResult(intptr_t instancePtr, SteamAPICall_t hSteamAPICall, void * pCallback, int cubCallback, int iCallbackExpected, bool * pbFailed); -S_API uint32 SteamAPI_ISteamUtils_GetIPCCallCount(intptr_t instancePtr); -S_API void SteamAPI_ISteamUtils_SetWarningMessageHook(intptr_t instancePtr, SteamAPIWarningMessageHook_t pFunction); -S_API bool SteamAPI_ISteamUtils_IsOverlayEnabled(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUtils_BOverlayNeedsPresent(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamUtils_CheckFileSignature(intptr_t instancePtr, const char * szFileName); -S_API bool SteamAPI_ISteamUtils_ShowGamepadTextInput(intptr_t instancePtr, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32 unCharMax, const char * pchExistingText); -S_API uint32 SteamAPI_ISteamUtils_GetEnteredGamepadTextLength(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUtils_GetEnteredGamepadTextInput(intptr_t instancePtr, char * pchText, uint32 cchText); -S_API const char * SteamAPI_ISteamUtils_GetSteamUILanguage(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUtils_IsSteamRunningInVR(intptr_t instancePtr); -S_API void SteamAPI_ISteamUtils_SetOverlayNotificationInset(intptr_t instancePtr, int nHorizontalInset, int nVerticalInset); -S_API bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode(intptr_t instancePtr); -S_API void SteamAPI_ISteamUtils_StartVRDashboard(intptr_t instancePtr); -S_API int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMatchmaking_GetFavoriteGame(intptr_t instancePtr, int iGame, AppId_t * pnAppID, uint32 * pnIP, uint16 * pnConnPort, uint16 * pnQueryPort, uint32 * punFlags, uint32 * pRTime32LastPlayedOnServer); -S_API int SteamAPI_ISteamMatchmaking_AddFavoriteGame(intptr_t instancePtr, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer); -S_API bool SteamAPI_ISteamMatchmaking_RemoveFavoriteGame(intptr_t instancePtr, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags); -S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_RequestLobbyList(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter(intptr_t instancePtr, const char * pchKeyToMatch, const char * pchValueToMatch, ELobbyComparison eComparisonType); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter(intptr_t instancePtr, const char * pchKeyToMatch, int nValueToMatch, ELobbyComparison eComparisonType); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter(intptr_t instancePtr, const char * pchKeyToMatch, int nValueToBeCloseTo); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(intptr_t instancePtr, int nSlotsAvailable); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter(intptr_t instancePtr, ELobbyDistanceFilter eLobbyDistanceFilter); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter(intptr_t instancePtr, int cMaxResults); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API uint64 SteamAPI_ISteamMatchmaking_GetLobbyByIndex(intptr_t instancePtr, int iLobby); -S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_CreateLobby(intptr_t instancePtr, ELobbyType eLobbyType, int cMaxMembers); -S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_JoinLobby(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API void SteamAPI_ISteamMatchmaking_LeaveLobby(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API bool SteamAPI_ISteamMatchmaking_InviteUserToLobby(intptr_t instancePtr, class CSteamID steamIDLobby, class CSteamID steamIDInvitee); -S_API int SteamAPI_ISteamMatchmaking_GetNumLobbyMembers(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API uint64 SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex(intptr_t instancePtr, class CSteamID steamIDLobby, int iMember); -S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyData(intptr_t instancePtr, class CSteamID steamIDLobby, const char * pchKey); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyData(intptr_t instancePtr, class CSteamID steamIDLobby, const char * pchKey, const char * pchValue); -S_API int SteamAPI_ISteamMatchmaking_GetLobbyDataCount(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API bool SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex(intptr_t instancePtr, class CSteamID steamIDLobby, int iLobbyData, char * pchKey, int cchKeyBufferSize, char * pchValue, int cchValueBufferSize); -S_API bool SteamAPI_ISteamMatchmaking_DeleteLobbyData(intptr_t instancePtr, class CSteamID steamIDLobby, const char * pchKey); -S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyMemberData(intptr_t instancePtr, class CSteamID steamIDLobby, class CSteamID steamIDUser, const char * pchKey); -S_API void SteamAPI_ISteamMatchmaking_SetLobbyMemberData(intptr_t instancePtr, class CSteamID steamIDLobby, const char * pchKey, const char * pchValue); -S_API bool SteamAPI_ISteamMatchmaking_SendLobbyChatMsg(intptr_t instancePtr, class CSteamID steamIDLobby, const void * pvMsgBody, int cubMsgBody); -S_API int SteamAPI_ISteamMatchmaking_GetLobbyChatEntry(intptr_t instancePtr, class CSteamID steamIDLobby, int iChatID, class CSteamID * pSteamIDUser, void * pvData, int cubData, EChatEntryType * peChatEntryType); -S_API bool SteamAPI_ISteamMatchmaking_RequestLobbyData(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API void SteamAPI_ISteamMatchmaking_SetLobbyGameServer(intptr_t instancePtr, class CSteamID steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, class CSteamID steamIDGameServer); -S_API bool SteamAPI_ISteamMatchmaking_GetLobbyGameServer(intptr_t instancePtr, class CSteamID steamIDLobby, uint32 * punGameServerIP, uint16 * punGameServerPort, class CSteamID * psteamIDGameServer); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit(intptr_t instancePtr, class CSteamID steamIDLobby, int cMaxMembers); -S_API int SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyType(intptr_t instancePtr, class CSteamID steamIDLobby, ELobbyType eLobbyType); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyJoinable(intptr_t instancePtr, class CSteamID steamIDLobby, bool bLobbyJoinable); -S_API uint64 SteamAPI_ISteamMatchmaking_GetLobbyOwner(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyOwner(intptr_t instancePtr, class CSteamID steamIDLobby, class CSteamID steamIDNewOwner); -S_API bool SteamAPI_ISteamMatchmaking_SetLinkedLobby(intptr_t instancePtr, class CSteamID steamIDLobby, class CSteamID steamIDLobbyDependent); -S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded(intptr_t instancePtr, HServerListRequest hRequest, int iServer); -S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond(intptr_t instancePtr, HServerListRequest hRequest, int iServer); -S_API void SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete(intptr_t instancePtr, HServerListRequest hRequest, EMatchMakingServerResponse response); -S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerResponded(intptr_t instancePtr, class gameserveritem_t & server); -S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList(intptr_t instancePtr, const char * pchName, int nScore, float flTimePlayed); -S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded(intptr_t instancePtr, const char * pchRule, const char * pchValue); -S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete(intptr_t instancePtr); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestInternetServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestLANServerList(intptr_t instancePtr, AppId_t iApp, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API void SteamAPI_ISteamMatchmakingServers_ReleaseRequest(intptr_t instancePtr, HServerListRequest hServerListRequest); -S_API class gameserveritem_t * SteamAPI_ISteamMatchmakingServers_GetServerDetails(intptr_t instancePtr, HServerListRequest hRequest, int iServer); -S_API void SteamAPI_ISteamMatchmakingServers_CancelQuery(intptr_t instancePtr, HServerListRequest hRequest); -S_API void SteamAPI_ISteamMatchmakingServers_RefreshQuery(intptr_t instancePtr, HServerListRequest hRequest); -S_API bool SteamAPI_ISteamMatchmakingServers_IsRefreshing(intptr_t instancePtr, HServerListRequest hRequest); -S_API int SteamAPI_ISteamMatchmakingServers_GetServerCount(intptr_t instancePtr, HServerListRequest hRequest); -S_API void SteamAPI_ISteamMatchmakingServers_RefreshServer(intptr_t instancePtr, HServerListRequest hRequest, int iServer); -S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PingServer(intptr_t instancePtr, uint32 unIP, uint16 usPort, class ISteamMatchmakingPingResponse * pRequestServersResponse); -S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PlayerDetails(intptr_t instancePtr, uint32 unIP, uint16 usPort, class ISteamMatchmakingPlayersResponse * pRequestServersResponse); -S_API HServerQuery SteamAPI_ISteamMatchmakingServers_ServerRules(intptr_t instancePtr, uint32 unIP, uint16 usPort, class ISteamMatchmakingRulesResponse * pRequestServersResponse); -S_API void SteamAPI_ISteamMatchmakingServers_CancelServerQuery(intptr_t instancePtr, HServerQuery hServerQuery); -S_API bool SteamAPI_ISteamRemoteStorage_FileWrite(intptr_t instancePtr, const char * pchFile, const void * pvData, int32 cubData); -S_API int32 SteamAPI_ISteamRemoteStorage_FileRead(intptr_t instancePtr, const char * pchFile, void * pvData, int32 cubDataToRead); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileWriteAsync(intptr_t instancePtr, const char * pchFile, const void * pvData, uint32 cubData); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileReadAsync(intptr_t instancePtr, const char * pchFile, uint32 nOffset, uint32 cubToRead); -S_API bool SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete(intptr_t instancePtr, SteamAPICall_t hReadCall, void * pvBuffer, uint32 cubToRead); -S_API bool SteamAPI_ISteamRemoteStorage_FileForget(intptr_t instancePtr, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_FileDelete(intptr_t instancePtr, const char * pchFile); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileShare(intptr_t instancePtr, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_SetSyncPlatforms(intptr_t instancePtr, const char * pchFile, ERemoteStoragePlatform eRemoteStoragePlatform); -S_API UGCFileWriteStreamHandle_t SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen(intptr_t instancePtr, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk(intptr_t instancePtr, UGCFileWriteStreamHandle_t writeHandle, const void * pvData, int32 cubData); -S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamClose(intptr_t instancePtr, UGCFileWriteStreamHandle_t writeHandle); -S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel(intptr_t instancePtr, UGCFileWriteStreamHandle_t writeHandle); -S_API bool SteamAPI_ISteamRemoteStorage_FileExists(intptr_t instancePtr, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_FilePersisted(intptr_t instancePtr, const char * pchFile); -S_API int32 SteamAPI_ISteamRemoteStorage_GetFileSize(intptr_t instancePtr, const char * pchFile); -S_API int64 SteamAPI_ISteamRemoteStorage_GetFileTimestamp(intptr_t instancePtr, const char * pchFile); -S_API ERemoteStoragePlatform SteamAPI_ISteamRemoteStorage_GetSyncPlatforms(intptr_t instancePtr, const char * pchFile); -S_API int32 SteamAPI_ISteamRemoteStorage_GetFileCount(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamRemoteStorage_GetFileNameAndSize(intptr_t instancePtr, int iFile, int32 * pnFileSizeInBytes); -S_API bool SteamAPI_ISteamRemoteStorage_GetQuota(intptr_t instancePtr, uint64 * pnTotalBytes, uint64 * puAvailableBytes); -S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount(intptr_t instancePtr); -S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp(intptr_t instancePtr); -S_API void SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp(intptr_t instancePtr, bool bEnabled); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownload(intptr_t instancePtr, UGCHandle_t hContent, uint32 unPriority); -S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress(intptr_t instancePtr, UGCHandle_t hContent, int32 * pnBytesDownloaded, int32 * pnBytesExpected); -S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDetails(intptr_t instancePtr, UGCHandle_t hContent, AppId_t * pnAppID, char ** ppchName, int32 * pnFileSizeInBytes, class CSteamID * pSteamIDOwner); -S_API int32 SteamAPI_ISteamRemoteStorage_UGCRead(intptr_t instancePtr, UGCHandle_t hContent, void * pvData, int32 cubDataToRead, uint32 cOffset, EUGCReadAction eAction); -S_API int32 SteamAPI_ISteamRemoteStorage_GetCachedUGCCount(intptr_t instancePtr); -S_API UGCHandle_t SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle(intptr_t instancePtr, int32 iCachedContent); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishWorkshopFile(intptr_t instancePtr, const char * pchFile, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, struct SteamParamStringArray_t * pTags, EWorkshopFileType eWorkshopFileType); -S_API PublishedFileUpdateHandle_t SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchPreviewFile); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchTitle); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchDescription); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, struct SteamParamStringArray_t * pTags); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails(intptr_t instancePtr, PublishedFileId_t unPublishedFileId, uint32 unMaxSecondsOld); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_DeletePublishedFile(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles(intptr_t instancePtr, uint32 unStartIndex); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SubscribePublishedFile(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles(intptr_t instancePtr, uint32 unStartIndex); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchChangeDescription); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote(intptr_t instancePtr, PublishedFileId_t unPublishedFileId, bool bVoteUp); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(intptr_t instancePtr, class CSteamID steamId, uint32 unStartIndex, struct SteamParamStringArray_t * pRequiredTags, struct SteamParamStringArray_t * pExcludedTags); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishVideo(intptr_t instancePtr, EWorkshopVideoProvider eVideoProvider, const char * pchVideoAccount, const char * pchVideoIdentifier, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, struct SteamParamStringArray_t * pTags); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction(intptr_t instancePtr, PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(intptr_t instancePtr, EWorkshopFileAction eAction, uint32 unStartIndex); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(intptr_t instancePtr, EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, struct SteamParamStringArray_t * pTags, struct SteamParamStringArray_t * pUserTags); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation(intptr_t instancePtr, UGCHandle_t hContent, const char * pchLocation, uint32 unPriority); -S_API bool SteamAPI_ISteamUserStats_RequestCurrentStats(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUserStats_GetStat(intptr_t instancePtr, const char * pchName, int32 * pData); -S_API bool SteamAPI_ISteamUserStats_GetStat0(intptr_t instancePtr, const char * pchName, float * pData); -S_API bool SteamAPI_ISteamUserStats_SetStat(intptr_t instancePtr, const char * pchName, int32 nData); -S_API bool SteamAPI_ISteamUserStats_SetStat0(intptr_t instancePtr, const char * pchName, float fData); -S_API bool SteamAPI_ISteamUserStats_UpdateAvgRateStat(intptr_t instancePtr, const char * pchName, float flCountThisSession, double dSessionLength); -S_API bool SteamAPI_ISteamUserStats_GetAchievement(intptr_t instancePtr, const char * pchName, bool * pbAchieved); -S_API bool SteamAPI_ISteamUserStats_SetAchievement(intptr_t instancePtr, const char * pchName); -S_API bool SteamAPI_ISteamUserStats_ClearAchievement(intptr_t instancePtr, const char * pchName); -S_API bool SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime(intptr_t instancePtr, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime); -S_API bool SteamAPI_ISteamUserStats_StoreStats(intptr_t instancePtr); -S_API int SteamAPI_ISteamUserStats_GetAchievementIcon(intptr_t instancePtr, const char * pchName); -S_API const char * SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute(intptr_t instancePtr, const char * pchName, const char * pchKey); -S_API bool SteamAPI_ISteamUserStats_IndicateAchievementProgress(intptr_t instancePtr, const char * pchName, uint32 nCurProgress, uint32 nMaxProgress); -S_API uint32 SteamAPI_ISteamUserStats_GetNumAchievements(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamUserStats_GetAchievementName(intptr_t instancePtr, uint32 iAchievement); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestUserStats(intptr_t instancePtr, class CSteamID steamIDUser); -S_API bool SteamAPI_ISteamUserStats_GetUserStat(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, int32 * pData); -S_API bool SteamAPI_ISteamUserStats_GetUserStat0(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, float * pData); -S_API bool SteamAPI_ISteamUserStats_GetUserAchievement(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, bool * pbAchieved); -S_API bool SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime); -S_API bool SteamAPI_ISteamUserStats_ResetAllStats(intptr_t instancePtr, bool bAchievementsToo); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindOrCreateLeaderboard(intptr_t instancePtr, const char * pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindLeaderboard(intptr_t instancePtr, const char * pchLeaderboardName); -S_API const char * SteamAPI_ISteamUserStats_GetLeaderboardName(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard); -S_API int SteamAPI_ISteamUserStats_GetLeaderboardEntryCount(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard); -S_API ELeaderboardSortMethod SteamAPI_ISteamUserStats_GetLeaderboardSortMethod(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard); -S_API ELeaderboardDisplayType SteamAPI_ISteamUserStats_GetLeaderboardDisplayType(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntries(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard, class CSteamID * prgUsers, int cUsers); -S_API bool SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry(intptr_t instancePtr, SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, struct LeaderboardEntry_t * pLeaderboardEntry, int32 * pDetails, int cDetailsMax); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_UploadLeaderboardScore(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32 * pScoreDetails, int cScoreDetailsCount); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_AttachLeaderboardUGC(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages(intptr_t instancePtr); -S_API int SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo(intptr_t instancePtr, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved); -S_API int SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo(intptr_t instancePtr, int iIteratorPrevious, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved); -S_API bool SteamAPI_ISteamUserStats_GetAchievementAchievedPercent(intptr_t instancePtr, const char * pchName, float * pflPercent); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalStats(intptr_t instancePtr, int nHistoryDays); -S_API bool SteamAPI_ISteamUserStats_GetGlobalStat(intptr_t instancePtr, const char * pchStatName, int64 * pData); -S_API bool SteamAPI_ISteamUserStats_GetGlobalStat0(intptr_t instancePtr, const char * pchStatName, double * pData); -S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistory(intptr_t instancePtr, const char * pchStatName, int64 * pData, uint32 cubData); -S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistory0(intptr_t instancePtr, const char * pchStatName, double * pData, uint32 cubData); -S_API bool SteamAPI_ISteamApps_BIsSubscribed(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BIsLowViolence(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BIsCybercafe(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BIsVACBanned(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamApps_GetCurrentGameLanguage(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamApps_GetAvailableGameLanguages(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BIsSubscribedApp(intptr_t instancePtr, AppId_t appID); -S_API bool SteamAPI_ISteamApps_BIsDlcInstalled(intptr_t instancePtr, AppId_t appID); -S_API uint32 SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime(intptr_t instancePtr, AppId_t nAppID); -S_API bool SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend(intptr_t instancePtr); -S_API int SteamAPI_ISteamApps_GetDLCCount(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BGetDLCDataByIndex(intptr_t instancePtr, int iDLC, AppId_t * pAppID, bool * pbAvailable, char * pchName, int cchNameBufferSize); -S_API void SteamAPI_ISteamApps_InstallDLC(intptr_t instancePtr, AppId_t nAppID); -S_API void SteamAPI_ISteamApps_UninstallDLC(intptr_t instancePtr, AppId_t nAppID); -S_API void SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey(intptr_t instancePtr, AppId_t nAppID); -S_API bool SteamAPI_ISteamApps_GetCurrentBetaName(intptr_t instancePtr, char * pchName, int cchNameBufferSize); -S_API bool SteamAPI_ISteamApps_MarkContentCorrupt(intptr_t instancePtr, bool bMissingFilesOnly); -S_API uint32 SteamAPI_ISteamApps_GetInstalledDepots(intptr_t instancePtr, AppId_t appID, DepotId_t * pvecDepots, uint32 cMaxDepots); -S_API uint32 SteamAPI_ISteamApps_GetAppInstallDir(intptr_t instancePtr, AppId_t appID, char * pchFolder, uint32 cchFolderBufferSize); -S_API bool SteamAPI_ISteamApps_BIsAppInstalled(intptr_t instancePtr, AppId_t appID); -S_API uint64 SteamAPI_ISteamApps_GetAppOwner(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamApps_GetLaunchQueryParam(intptr_t instancePtr, const char * pchKey); -S_API bool SteamAPI_ISteamApps_GetDlcDownloadProgress(intptr_t instancePtr, AppId_t nAppID, uint64 * punBytesDownloaded, uint64 * punBytesTotal); -S_API int SteamAPI_ISteamApps_GetAppBuildId(intptr_t instancePtr); -S_API void SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamApps_GetFileDetails(intptr_t instancePtr, const char * pszFileName); -S_API bool SteamAPI_ISteamNetworking_SendP2PPacket(intptr_t instancePtr, class CSteamID steamIDRemote, const void * pubData, uint32 cubData, EP2PSend eP2PSendType, int nChannel); -S_API bool SteamAPI_ISteamNetworking_IsP2PPacketAvailable(intptr_t instancePtr, uint32 * pcubMsgSize, int nChannel); -S_API bool SteamAPI_ISteamNetworking_ReadP2PPacket(intptr_t instancePtr, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, class CSteamID * psteamIDRemote, int nChannel); -S_API bool SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser(intptr_t instancePtr, class CSteamID steamIDRemote); -S_API bool SteamAPI_ISteamNetworking_CloseP2PSessionWithUser(intptr_t instancePtr, class CSteamID steamIDRemote); -S_API bool SteamAPI_ISteamNetworking_CloseP2PChannelWithUser(intptr_t instancePtr, class CSteamID steamIDRemote, int nChannel); -S_API bool SteamAPI_ISteamNetworking_GetP2PSessionState(intptr_t instancePtr, class CSteamID steamIDRemote, struct P2PSessionState_t * pConnectionState); -S_API bool SteamAPI_ISteamNetworking_AllowP2PPacketRelay(intptr_t instancePtr, bool bAllow); -S_API SNetListenSocket_t SteamAPI_ISteamNetworking_CreateListenSocket(intptr_t instancePtr, int nVirtualP2PPort, uint32 nIP, uint16 nPort, bool bAllowUseOfPacketRelay); -S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateP2PConnectionSocket(intptr_t instancePtr, class CSteamID steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay); -S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateConnectionSocket(intptr_t instancePtr, uint32 nIP, uint16 nPort, int nTimeoutSec); -S_API bool SteamAPI_ISteamNetworking_DestroySocket(intptr_t instancePtr, SNetSocket_t hSocket, bool bNotifyRemoteEnd); -S_API bool SteamAPI_ISteamNetworking_DestroyListenSocket(intptr_t instancePtr, SNetListenSocket_t hSocket, bool bNotifyRemoteEnd); -S_API bool SteamAPI_ISteamNetworking_SendDataOnSocket(intptr_t instancePtr, SNetSocket_t hSocket, void * pubData, uint32 cubData, bool bReliable); -S_API bool SteamAPI_ISteamNetworking_IsDataAvailableOnSocket(intptr_t instancePtr, SNetSocket_t hSocket, uint32 * pcubMsgSize); -S_API bool SteamAPI_ISteamNetworking_RetrieveDataFromSocket(intptr_t instancePtr, SNetSocket_t hSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize); -S_API bool SteamAPI_ISteamNetworking_IsDataAvailable(intptr_t instancePtr, SNetListenSocket_t hListenSocket, uint32 * pcubMsgSize, SNetSocket_t * phSocket); -S_API bool SteamAPI_ISteamNetworking_RetrieveData(intptr_t instancePtr, SNetListenSocket_t hListenSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, SNetSocket_t * phSocket); -S_API bool SteamAPI_ISteamNetworking_GetSocketInfo(intptr_t instancePtr, SNetSocket_t hSocket, class CSteamID * pSteamIDRemote, int * peSocketStatus, uint32 * punIPRemote, uint16 * punPortRemote); -S_API bool SteamAPI_ISteamNetworking_GetListenSocketInfo(intptr_t instancePtr, SNetListenSocket_t hListenSocket, uint32 * pnIP, uint16 * pnPort); -S_API ESNetSocketConnectionType SteamAPI_ISteamNetworking_GetSocketConnectionType(intptr_t instancePtr, SNetSocket_t hSocket); -S_API int SteamAPI_ISteamNetworking_GetMaxPacketSize(intptr_t instancePtr, SNetSocket_t hSocket); -S_API ScreenshotHandle SteamAPI_ISteamScreenshots_WriteScreenshot(intptr_t instancePtr, void * pubRGB, uint32 cubRGB, int nWidth, int nHeight); -S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddScreenshotToLibrary(intptr_t instancePtr, const char * pchFilename, const char * pchThumbnailFilename, int nWidth, int nHeight); -S_API void SteamAPI_ISteamScreenshots_TriggerScreenshot(intptr_t instancePtr); -S_API void SteamAPI_ISteamScreenshots_HookScreenshots(intptr_t instancePtr, bool bHook); -S_API bool SteamAPI_ISteamScreenshots_SetLocation(intptr_t instancePtr, ScreenshotHandle hScreenshot, const char * pchLocation); -S_API bool SteamAPI_ISteamScreenshots_TagUser(intptr_t instancePtr, ScreenshotHandle hScreenshot, class CSteamID steamID); -S_API bool SteamAPI_ISteamScreenshots_TagPublishedFile(intptr_t instancePtr, ScreenshotHandle hScreenshot, PublishedFileId_t unPublishedFileID); -S_API bool SteamAPI_ISteamScreenshots_IsScreenshotsHooked(intptr_t instancePtr); -S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary(intptr_t instancePtr, EVRScreenshotType eType, const char * pchFilename, const char * pchVRFilename); -S_API bool SteamAPI_ISteamMusic_BIsEnabled(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusic_BIsPlaying(intptr_t instancePtr); -S_API AudioPlayback_Status SteamAPI_ISteamMusic_GetPlaybackStatus(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_Play(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_Pause(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_PlayPrevious(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_PlayNext(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_SetVolume(intptr_t instancePtr, float flVolume); -S_API float SteamAPI_ISteamMusic_GetVolume(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote(intptr_t instancePtr, const char * pchName); -S_API bool SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_BActivationSuccess(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_SetDisplayName(intptr_t instancePtr, const char * pchDisplayName); -S_API bool SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64(intptr_t instancePtr, void * pvBuffer, uint32 cbBufferLength); -S_API bool SteamAPI_ISteamMusicRemote_EnablePlayPrevious(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnablePlayNext(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnableShuffled(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnableLooped(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnableQueue(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnablePlaylists(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus(intptr_t instancePtr, AudioPlayback_Status nStatus); -S_API bool SteamAPI_ISteamMusicRemote_UpdateShuffled(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_UpdateLooped(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_UpdateVolume(intptr_t instancePtr, float flValue); -S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryWillChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable(intptr_t instancePtr, bool bAvailable); -S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText(intptr_t instancePtr, const char * pchText); -S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds(intptr_t instancePtr, int nValue); -S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt(intptr_t instancePtr, void * pvBuffer, uint32 cbBufferLength); -S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryDidChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_QueueWillChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_ResetQueueEntries(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_SetQueueEntry(intptr_t instancePtr, int nID, int nPosition, const char * pchEntryText); -S_API bool SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry(intptr_t instancePtr, int nID); -S_API bool SteamAPI_ISteamMusicRemote_QueueDidChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_PlaylistWillChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_ResetPlaylistEntries(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_SetPlaylistEntry(intptr_t instancePtr, int nID, int nPosition, const char * pchEntryText); -S_API bool SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry(intptr_t instancePtr, int nID); -S_API bool SteamAPI_ISteamMusicRemote_PlaylistDidChange(intptr_t instancePtr); -S_API HTTPRequestHandle SteamAPI_ISteamHTTP_CreateHTTPRequest(intptr_t instancePtr, EHTTPMethod eHTTPRequestMethod, const char * pchAbsoluteURL); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestContextValue(intptr_t instancePtr, HTTPRequestHandle hRequest, uint64 ulContextValue); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(intptr_t instancePtr, HTTPRequestHandle hRequest, uint32 unTimeoutSeconds); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchHeaderName, const char * pchHeaderValue); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchParamName, const char * pchParamValue); -S_API bool SteamAPI_ISteamHTTP_SendHTTPRequest(intptr_t instancePtr, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle); -S_API bool SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse(intptr_t instancePtr, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle); -S_API bool SteamAPI_ISteamHTTP_DeferHTTPRequest(intptr_t instancePtr, HTTPRequestHandle hRequest); -S_API bool SteamAPI_ISteamHTTP_PrioritizeHTTPRequest(intptr_t instancePtr, HTTPRequestHandle hRequest); -S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchHeaderName, uint32 * unResponseHeaderSize); -S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchHeaderName, uint8 * pHeaderValueBuffer, uint32 unBufferSize); -S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodySize(intptr_t instancePtr, HTTPRequestHandle hRequest, uint32 * unBodySize); -S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodyData(intptr_t instancePtr, HTTPRequestHandle hRequest, uint8 * pBodyDataBuffer, uint32 unBufferSize); -S_API bool SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData(intptr_t instancePtr, HTTPRequestHandle hRequest, uint32 cOffset, uint8 * pBodyDataBuffer, uint32 unBufferSize); -S_API bool SteamAPI_ISteamHTTP_ReleaseHTTPRequest(intptr_t instancePtr, HTTPRequestHandle hRequest); -S_API bool SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct(intptr_t instancePtr, HTTPRequestHandle hRequest, float * pflPercentOut); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchContentType, uint8 * pubBody, uint32 unBodyLen); -S_API HTTPCookieContainerHandle SteamAPI_ISteamHTTP_CreateCookieContainer(intptr_t instancePtr, bool bAllowResponsesToModify); -S_API bool SteamAPI_ISteamHTTP_ReleaseCookieContainer(intptr_t instancePtr, HTTPCookieContainerHandle hCookieContainer); -S_API bool SteamAPI_ISteamHTTP_SetCookie(intptr_t instancePtr, HTTPCookieContainerHandle hCookieContainer, const char * pchHost, const char * pchUrl, const char * pchCookie); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer(intptr_t instancePtr, HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchUserAgentInfo); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(intptr_t instancePtr, HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(intptr_t instancePtr, HTTPRequestHandle hRequest, uint32 unMilliseconds); -S_API bool SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut(intptr_t instancePtr, HTTPRequestHandle hRequest, bool * pbWasTimedOut); -S_API ClientUnifiedMessageHandle SteamAPI_ISteamUnifiedMessages_SendMethod(intptr_t instancePtr, const char * pchServiceMethod, const void * pRequestBuffer, uint32 unRequestBufferSize, uint64 unContext); -S_API bool SteamAPI_ISteamUnifiedMessages_GetMethodResponseInfo(intptr_t instancePtr, ClientUnifiedMessageHandle hHandle, uint32 * punResponseSize, EResult * peResult); -S_API bool SteamAPI_ISteamUnifiedMessages_GetMethodResponseData(intptr_t instancePtr, ClientUnifiedMessageHandle hHandle, void * pResponseBuffer, uint32 unResponseBufferSize, bool bAutoRelease); -S_API bool SteamAPI_ISteamUnifiedMessages_ReleaseMethod(intptr_t instancePtr, ClientUnifiedMessageHandle hHandle); -S_API bool SteamAPI_ISteamUnifiedMessages_SendNotification(intptr_t instancePtr, const char * pchServiceNotification, const void * pNotificationBuffer, uint32 unNotificationBufferSize); -S_API bool SteamAPI_ISteamController_Init(intptr_t instancePtr); -S_API bool SteamAPI_ISteamController_Shutdown(intptr_t instancePtr); -S_API void SteamAPI_ISteamController_RunFrame(intptr_t instancePtr); -S_API int SteamAPI_ISteamController_GetConnectedControllers(intptr_t instancePtr, ControllerHandle_t * handlesOut); -S_API bool SteamAPI_ISteamController_ShowBindingPanel(intptr_t instancePtr, ControllerHandle_t controllerHandle); -S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetActionSetHandle(intptr_t instancePtr, const char * pszActionSetName); -S_API void SteamAPI_ISteamController_ActivateActionSet(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle); -S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetCurrentActionSet(intptr_t instancePtr, ControllerHandle_t controllerHandle); -S_API ControllerDigitalActionHandle_t SteamAPI_ISteamController_GetDigitalActionHandle(intptr_t instancePtr, const char * pszActionName); -S_API struct ControllerDigitalActionData_t SteamAPI_ISteamController_GetDigitalActionData(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle); -S_API int SteamAPI_ISteamController_GetDigitalActionOrigins(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin * originsOut); -S_API ControllerAnalogActionHandle_t SteamAPI_ISteamController_GetAnalogActionHandle(intptr_t instancePtr, const char * pszActionName); -S_API struct ControllerAnalogActionData_t SteamAPI_ISteamController_GetAnalogActionData(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle); -S_API int SteamAPI_ISteamController_GetAnalogActionOrigins(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin * originsOut); -S_API void SteamAPI_ISteamController_StopAnalogActionMomentum(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction); -S_API void SteamAPI_ISteamController_TriggerHapticPulse(intptr_t instancePtr, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec); -S_API void SteamAPI_ISteamController_TriggerRepeatedHapticPulse(intptr_t instancePtr, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags); -S_API int SteamAPI_ISteamController_GetGamepadIndexForController(intptr_t instancePtr, ControllerHandle_t ulControllerHandle); -S_API ControllerHandle_t SteamAPI_ISteamController_GetControllerForGamepadIndex(intptr_t instancePtr, int nIndex); -S_API struct ControllerMotionData_t SteamAPI_ISteamController_GetMotionData(intptr_t instancePtr, ControllerHandle_t controllerHandle); -S_API bool SteamAPI_ISteamController_ShowDigitalActionOrigins(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition); -S_API bool SteamAPI_ISteamController_ShowAnalogActionOrigins(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle, float flScale, float flXPosition, float flYPosition); -S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(intptr_t instancePtr, AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage); -S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequest(intptr_t instancePtr, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage); -S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs); -S_API SteamAPICall_t SteamAPI_ISteamUGC_SendQueryUGCRequest(intptr_t instancePtr, UGCQueryHandle_t handle); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCResult(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, struct SteamUGCDetails_t * pDetails); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCPreviewURL(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, char * pchURL, uint32 cchURLSize); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCMetadata(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, char * pchMetadata, uint32 cchMetadatasize); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCChildren(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCStatistic(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 * pStatValue); -S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, char * pchURLOrVideoID, uint32 cchURLSize, char * pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType * pPreviewType); -S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, char * pchKey, uint32 cchKeySize, char * pchValue, uint32 cchValueSize); -S_API bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(intptr_t instancePtr, UGCQueryHandle_t handle); -S_API bool SteamAPI_ISteamUGC_AddRequiredTag(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pTagName); -S_API bool SteamAPI_ISteamUGC_AddExcludedTag(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pTagName); -S_API bool SteamAPI_ISteamUGC_SetReturnOnlyIDs(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnOnlyIDs); -S_API bool SteamAPI_ISteamUGC_SetReturnKeyValueTags(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnKeyValueTags); -S_API bool SteamAPI_ISteamUGC_SetReturnLongDescription(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnLongDescription); -S_API bool SteamAPI_ISteamUGC_SetReturnMetadata(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnMetadata); -S_API bool SteamAPI_ISteamUGC_SetReturnChildren(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnChildren); -S_API bool SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnAdditionalPreviews); -S_API bool SteamAPI_ISteamUGC_SetReturnTotalOnly(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnTotalOnly); -S_API bool SteamAPI_ISteamUGC_SetLanguage(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pchLanguage); -S_API bool SteamAPI_ISteamUGC_SetAllowCachedResponse(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 unMaxAgeSeconds); -S_API bool SteamAPI_ISteamUGC_SetCloudFileNameFilter(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pMatchCloudFileName); -S_API bool SteamAPI_ISteamUGC_SetMatchAnyTag(intptr_t instancePtr, UGCQueryHandle_t handle, bool bMatchAnyTag); -S_API bool SteamAPI_ISteamUGC_SetSearchText(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pSearchText); -S_API bool SteamAPI_ISteamUGC_SetRankedByTrendDays(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 unDays); -S_API bool SteamAPI_ISteamUGC_AddRequiredKeyValueTag(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pKey, const char * pValue); -S_API SteamAPICall_t SteamAPI_ISteamUGC_RequestUGCDetails(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds); -S_API SteamAPICall_t SteamAPI_ISteamUGC_CreateItem(intptr_t instancePtr, AppId_t nConsumerAppId, EWorkshopFileType eFileType); -S_API UGCUpdateHandle_t SteamAPI_ISteamUGC_StartItemUpdate(intptr_t instancePtr, AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID); -S_API bool SteamAPI_ISteamUGC_SetItemTitle(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchTitle); -S_API bool SteamAPI_ISteamUGC_SetItemDescription(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchDescription); -S_API bool SteamAPI_ISteamUGC_SetItemUpdateLanguage(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchLanguage); -S_API bool SteamAPI_ISteamUGC_SetItemMetadata(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchMetaData); -S_API bool SteamAPI_ISteamUGC_SetItemVisibility(intptr_t instancePtr, UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility); -S_API bool SteamAPI_ISteamUGC_SetItemTags(intptr_t instancePtr, UGCUpdateHandle_t updateHandle, const struct SteamParamStringArray_t * pTags); -S_API bool SteamAPI_ISteamUGC_SetItemContent(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszContentFolder); -S_API bool SteamAPI_ISteamUGC_SetItemPreview(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszPreviewFile); -S_API bool SteamAPI_ISteamUGC_RemoveItemKeyValueTags(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchKey); -S_API bool SteamAPI_ISteamUGC_AddItemKeyValueTag(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchKey, const char * pchValue); -S_API bool SteamAPI_ISteamUGC_AddItemPreviewFile(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszPreviewFile, EItemPreviewType type); -S_API bool SteamAPI_ISteamUGC_AddItemPreviewVideo(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszVideoID); -S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewFile(intptr_t instancePtr, UGCUpdateHandle_t handle, uint32 index, const char * pszPreviewFile); -S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewVideo(intptr_t instancePtr, UGCUpdateHandle_t handle, uint32 index, const char * pszVideoID); -S_API bool SteamAPI_ISteamUGC_RemoveItemPreview(intptr_t instancePtr, UGCUpdateHandle_t handle, uint32 index); -S_API SteamAPICall_t SteamAPI_ISteamUGC_SubmitItemUpdate(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchChangeNote); -S_API EItemUpdateStatus SteamAPI_ISteamUGC_GetItemUpdateProgress(intptr_t instancePtr, UGCUpdateHandle_t handle, uint64 * punBytesProcessed, uint64 * punBytesTotal); -S_API SteamAPICall_t SteamAPI_ISteamUGC_SetUserItemVote(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, bool bVoteUp); -S_API SteamAPICall_t SteamAPI_ISteamUGC_GetUserItemVote(intptr_t instancePtr, PublishedFileId_t nPublishedFileID); -S_API SteamAPICall_t SteamAPI_ISteamUGC_AddItemToFavorites(intptr_t instancePtr, AppId_t nAppId, PublishedFileId_t nPublishedFileID); -S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveItemFromFavorites(intptr_t instancePtr, AppId_t nAppId, PublishedFileId_t nPublishedFileID); -S_API SteamAPICall_t SteamAPI_ISteamUGC_SubscribeItem(intptr_t instancePtr, PublishedFileId_t nPublishedFileID); -S_API SteamAPICall_t SteamAPI_ISteamUGC_UnsubscribeItem(intptr_t instancePtr, PublishedFileId_t nPublishedFileID); -S_API uint32 SteamAPI_ISteamUGC_GetNumSubscribedItems(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamUGC_GetSubscribedItems(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries); -S_API uint32 SteamAPI_ISteamUGC_GetItemState(intptr_t instancePtr, PublishedFileId_t nPublishedFileID); -S_API bool SteamAPI_ISteamUGC_GetItemInstallInfo(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, uint64 * punSizeOnDisk, char * pchFolder, uint32 cchFolderSize, uint32 * punTimeStamp); -S_API bool SteamAPI_ISteamUGC_GetItemDownloadInfo(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, uint64 * punBytesDownloaded, uint64 * punBytesTotal); -S_API bool SteamAPI_ISteamUGC_DownloadItem(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, bool bHighPriority); -S_API bool SteamAPI_ISteamUGC_BInitWorkshopForGameServer(intptr_t instancePtr, DepotId_t unWorkshopDepotID, const char * pszFolder); -S_API void SteamAPI_ISteamUGC_SuspendDownloads(intptr_t instancePtr, bool bSuspend); -S_API SteamAPICall_t SteamAPI_ISteamUGC_StartPlaytimeTracking(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs); -S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTracking(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs); -S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamAppList_GetNumInstalledApps(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamAppList_GetInstalledApps(intptr_t instancePtr, AppId_t * pvecAppID, uint32 unMaxAppIDs); -S_API int SteamAPI_ISteamAppList_GetAppName(intptr_t instancePtr, AppId_t nAppID, char * pchName, int cchNameMax); -S_API int SteamAPI_ISteamAppList_GetAppInstallDir(intptr_t instancePtr, AppId_t nAppID, char * pchDirectory, int cchNameMax); -S_API int SteamAPI_ISteamAppList_GetAppBuildId(intptr_t instancePtr, AppId_t nAppID); -S_API void SteamAPI_ISteamHTMLSurface_DestructISteamHTMLSurface(intptr_t instancePtr); -S_API bool SteamAPI_ISteamHTMLSurface_Init(intptr_t instancePtr); -S_API bool SteamAPI_ISteamHTMLSurface_Shutdown(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamHTMLSurface_CreateBrowser(intptr_t instancePtr, const char * pchUserAgent, const char * pchUserCSS); -S_API void SteamAPI_ISteamHTMLSurface_RemoveBrowser(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_LoadURL(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, const char * pchURL, const char * pchPostData); -S_API void SteamAPI_ISteamHTMLSurface_SetSize(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 unWidth, uint32 unHeight); -S_API void SteamAPI_ISteamHTMLSurface_StopLoad(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_Reload(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_GoBack(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_GoForward(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_AddHeader(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, const char * pchKey, const char * pchValue); -S_API void SteamAPI_ISteamHTMLSurface_ExecuteJavascript(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, const char * pchScript); -S_API void SteamAPI_ISteamHTMLSurface_MouseUp(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton); -S_API void SteamAPI_ISteamHTMLSurface_MouseDown(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton); -S_API void SteamAPI_ISteamHTMLSurface_MouseDoubleClick(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton); -S_API void SteamAPI_ISteamHTMLSurface_MouseMove(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, int x, int y); -S_API void SteamAPI_ISteamHTMLSurface_MouseWheel(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, int32 nDelta); -S_API void SteamAPI_ISteamHTMLSurface_KeyDown(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers); -S_API void SteamAPI_ISteamHTMLSurface_KeyUp(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers); -S_API void SteamAPI_ISteamHTMLSurface_KeyChar(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers); -S_API void SteamAPI_ISteamHTMLSurface_SetHorizontalScroll(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll); -S_API void SteamAPI_ISteamHTMLSurface_SetVerticalScroll(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll); -S_API void SteamAPI_ISteamHTMLSurface_SetKeyFocus(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bHasKeyFocus); -S_API void SteamAPI_ISteamHTMLSurface_ViewSource(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_CopyToClipboard(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_PasteFromClipboard(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_Find(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, const char * pchSearchStr, bool bCurrentlyInFind, bool bReverse); -S_API void SteamAPI_ISteamHTMLSurface_StopFind(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_GetLinkAtPosition(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, int x, int y); -S_API void SteamAPI_ISteamHTMLSurface_SetCookie(intptr_t instancePtr, const char * pchHostname, const char * pchKey, const char * pchValue, const char * pchPath, RTime32 nExpires, bool bSecure, bool bHTTPOnly); -S_API void SteamAPI_ISteamHTMLSurface_SetPageScaleFactor(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY); -S_API void SteamAPI_ISteamHTMLSurface_SetBackgroundMode(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bBackgroundMode); -S_API void SteamAPI_ISteamHTMLSurface_AllowStartRequest(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bAllowed); -S_API void SteamAPI_ISteamHTMLSurface_JSDialogResponse(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bResult); -S_API EResult SteamAPI_ISteamInventory_GetResultStatus(intptr_t instancePtr, SteamInventoryResult_t resultHandle); -S_API bool SteamAPI_ISteamInventory_GetResultItems(intptr_t instancePtr, SteamInventoryResult_t resultHandle, struct SteamItemDetails_t * pOutItemsArray, uint32 * punOutItemsArraySize); -S_API uint32 SteamAPI_ISteamInventory_GetResultTimestamp(intptr_t instancePtr, SteamInventoryResult_t resultHandle); -S_API bool SteamAPI_ISteamInventory_CheckResultSteamID(intptr_t instancePtr, SteamInventoryResult_t resultHandle, class CSteamID steamIDExpected); -S_API void SteamAPI_ISteamInventory_DestroyResult(intptr_t instancePtr, SteamInventoryResult_t resultHandle); -S_API bool SteamAPI_ISteamInventory_GetAllItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle); -S_API bool SteamAPI_ISteamInventory_GetItemsByID(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, const SteamItemInstanceID_t * pInstanceIDs, uint32 unCountInstanceIDs); -S_API bool SteamAPI_ISteamInventory_SerializeResult(intptr_t instancePtr, SteamInventoryResult_t resultHandle, void * pOutBuffer, uint32 * punOutBufferSize); -S_API bool SteamAPI_ISteamInventory_DeserializeResult(intptr_t instancePtr, SteamInventoryResult_t * pOutResultHandle, const void * pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE); -S_API bool SteamAPI_ISteamInventory_GenerateItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, const uint32 * punArrayQuantity, uint32 unArrayLength); -S_API bool SteamAPI_ISteamInventory_GrantPromoItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle); -S_API bool SteamAPI_ISteamInventory_AddPromoItem(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, SteamItemDef_t itemDef); -S_API bool SteamAPI_ISteamInventory_AddPromoItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, uint32 unArrayLength); -S_API bool SteamAPI_ISteamInventory_ConsumeItem(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemConsume, uint32 unQuantity); -S_API bool SteamAPI_ISteamInventory_ExchangeItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayGenerate, const uint32 * punArrayGenerateQuantity, uint32 unArrayGenerateLength, const SteamItemInstanceID_t * pArrayDestroy, const uint32 * punArrayDestroyQuantity, uint32 unArrayDestroyLength); -S_API bool SteamAPI_ISteamInventory_TransferItemQuantity(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemIdSource, uint32 unQuantity, SteamItemInstanceID_t itemIdDest); -S_API void SteamAPI_ISteamInventory_SendItemDropHeartbeat(intptr_t instancePtr); -S_API bool SteamAPI_ISteamInventory_TriggerItemDrop(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, SteamItemDef_t dropListDefinition); -S_API bool SteamAPI_ISteamInventory_TradeItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, class CSteamID steamIDTradePartner, const SteamItemInstanceID_t * pArrayGive, const uint32 * pArrayGiveQuantity, uint32 nArrayGiveLength, const SteamItemInstanceID_t * pArrayGet, const uint32 * pArrayGetQuantity, uint32 nArrayGetLength); -S_API bool SteamAPI_ISteamInventory_LoadItemDefinitions(intptr_t instancePtr); -S_API bool SteamAPI_ISteamInventory_GetItemDefinitionIDs(intptr_t instancePtr, SteamItemDef_t * pItemDefIDs, uint32 * punItemDefIDsArraySize); -S_API bool SteamAPI_ISteamInventory_GetItemDefinitionProperty(intptr_t instancePtr, SteamItemDef_t iDefinition, const char * pchPropertyName, char * pchValueBuffer, uint32 * punValueBufferSizeOut); -S_API void SteamAPI_ISteamVideo_GetVideoURL(intptr_t instancePtr, AppId_t unVideoAppID); -S_API bool SteamAPI_ISteamVideo_IsBroadcasting(intptr_t instancePtr, int * pnNumViewers); -S_API bool SteamAPI_ISteamGameServer_InitGameServer(intptr_t instancePtr, uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char * pchVersionString); -S_API void SteamAPI_ISteamGameServer_SetProduct(intptr_t instancePtr, const char * pszProduct); -S_API void SteamAPI_ISteamGameServer_SetGameDescription(intptr_t instancePtr, const char * pszGameDescription); -S_API void SteamAPI_ISteamGameServer_SetModDir(intptr_t instancePtr, const char * pszModDir); -S_API void SteamAPI_ISteamGameServer_SetDedicatedServer(intptr_t instancePtr, bool bDedicated); -S_API void SteamAPI_ISteamGameServer_LogOn(intptr_t instancePtr, const char * pszToken); -S_API void SteamAPI_ISteamGameServer_LogOnAnonymous(intptr_t instancePtr); -S_API void SteamAPI_ISteamGameServer_LogOff(intptr_t instancePtr); -S_API bool SteamAPI_ISteamGameServer_BLoggedOn(intptr_t instancePtr); -S_API bool SteamAPI_ISteamGameServer_BSecure(intptr_t instancePtr); -S_API uint64 SteamAPI_ISteamGameServer_GetSteamID(intptr_t instancePtr); -S_API bool SteamAPI_ISteamGameServer_WasRestartRequested(intptr_t instancePtr); -S_API void SteamAPI_ISteamGameServer_SetMaxPlayerCount(intptr_t instancePtr, int cPlayersMax); -S_API void SteamAPI_ISteamGameServer_SetBotPlayerCount(intptr_t instancePtr, int cBotplayers); -S_API void SteamAPI_ISteamGameServer_SetServerName(intptr_t instancePtr, const char * pszServerName); -S_API void SteamAPI_ISteamGameServer_SetMapName(intptr_t instancePtr, const char * pszMapName); -S_API void SteamAPI_ISteamGameServer_SetPasswordProtected(intptr_t instancePtr, bool bPasswordProtected); -S_API void SteamAPI_ISteamGameServer_SetSpectatorPort(intptr_t instancePtr, uint16 unSpectatorPort); -S_API void SteamAPI_ISteamGameServer_SetSpectatorServerName(intptr_t instancePtr, const char * pszSpectatorServerName); -S_API void SteamAPI_ISteamGameServer_ClearAllKeyValues(intptr_t instancePtr); -S_API void SteamAPI_ISteamGameServer_SetKeyValue(intptr_t instancePtr, const char * pKey, const char * pValue); -S_API void SteamAPI_ISteamGameServer_SetGameTags(intptr_t instancePtr, const char * pchGameTags); -S_API void SteamAPI_ISteamGameServer_SetGameData(intptr_t instancePtr, const char * pchGameData); -S_API void SteamAPI_ISteamGameServer_SetRegion(intptr_t instancePtr, const char * pszRegion); -S_API bool SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate(intptr_t instancePtr, uint32 unIPClient, const void * pvAuthBlob, uint32 cubAuthBlobSize, class CSteamID * pSteamIDUser); -S_API uint64 SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection(intptr_t instancePtr); -S_API void SteamAPI_ISteamGameServer_SendUserDisconnect(intptr_t instancePtr, class CSteamID steamIDUser); -S_API bool SteamAPI_ISteamGameServer_BUpdateUserData(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchPlayerName, uint32 uScore); -S_API HAuthTicket SteamAPI_ISteamGameServer_GetAuthSessionTicket(intptr_t instancePtr, void * pTicket, int cbMaxTicket, uint32 * pcbTicket); -S_API EBeginAuthSessionResult SteamAPI_ISteamGameServer_BeginAuthSession(intptr_t instancePtr, const void * pAuthTicket, int cbAuthTicket, class CSteamID steamID); -S_API void SteamAPI_ISteamGameServer_EndAuthSession(intptr_t instancePtr, class CSteamID steamID); -S_API void SteamAPI_ISteamGameServer_CancelAuthTicket(intptr_t instancePtr, HAuthTicket hAuthTicket); -S_API EUserHasLicenseForAppResult SteamAPI_ISteamGameServer_UserHasLicenseForApp(intptr_t instancePtr, class CSteamID steamID, AppId_t appID); -S_API bool SteamAPI_ISteamGameServer_RequestUserGroupStatus(intptr_t instancePtr, class CSteamID steamIDUser, class CSteamID steamIDGroup); -S_API void SteamAPI_ISteamGameServer_GetGameplayStats(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamGameServer_GetServerReputation(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamGameServer_GetPublicIP(intptr_t instancePtr); -S_API bool SteamAPI_ISteamGameServer_HandleIncomingPacket(intptr_t instancePtr, const void * pData, int cbData, uint32 srcIP, uint16 srcPort); -S_API int SteamAPI_ISteamGameServer_GetNextOutgoingPacket(intptr_t instancePtr, void * pOut, int cbMaxOut, uint32 * pNetAdr, uint16 * pPort); -S_API void SteamAPI_ISteamGameServer_EnableHeartbeats(intptr_t instancePtr, bool bActive); -S_API void SteamAPI_ISteamGameServer_SetHeartbeatInterval(intptr_t instancePtr, int iHeartbeatInterval); -S_API void SteamAPI_ISteamGameServer_ForceHeartbeat(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamGameServer_AssociateWithClan(intptr_t instancePtr, class CSteamID steamIDClan); -S_API SteamAPICall_t SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility(intptr_t instancePtr, class CSteamID steamIDNewPlayer); -S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_RequestUserStats(intptr_t instancePtr, class CSteamID steamIDUser); -S_API bool SteamAPI_ISteamGameServerStats_GetUserStat(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, int32 * pData); -S_API bool SteamAPI_ISteamGameServerStats_GetUserStat0(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, float * pData); -S_API bool SteamAPI_ISteamGameServerStats_GetUserAchievement(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, bool * pbAchieved); -S_API bool SteamAPI_ISteamGameServerStats_SetUserStat(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, int32 nData); -S_API bool SteamAPI_ISteamGameServerStats_SetUserStat0(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, float fData); -S_API bool SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, float flCountThisSession, double dSessionLength); -S_API bool SteamAPI_ISteamGameServerStats_SetUserAchievement(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName); -S_API bool SteamAPI_ISteamGameServerStats_ClearUserAchievement(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName); -S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_StoreUserStats(intptr_t instancePtr, class CSteamID steamIDUser); +// ISteamFriends + +// A versioned accessor is exported by the library +S_API ISteamFriends *SteamAPI_SteamFriends_v017(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamFriends(), but using this ensures that you are using a matching library. +inline ISteamFriends *SteamAPI_SteamFriends() { return SteamAPI_SteamFriends_v017(); } +S_API const char * SteamAPI_ISteamFriends_GetPersonaName( ISteamFriends* self ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_SetPersonaName( ISteamFriends* self, const char * pchPersonaName ); +S_API EPersonaState SteamAPI_ISteamFriends_GetPersonaState( ISteamFriends* self ); +S_API int SteamAPI_ISteamFriends_GetFriendCount( ISteamFriends* self, int iFriendFlags ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetFriendByIndex( ISteamFriends* self, int iFriend, int iFriendFlags ); +S_API EFriendRelationship SteamAPI_ISteamFriends_GetFriendRelationship( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API EPersonaState SteamAPI_ISteamFriends_GetFriendPersonaState( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaName( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamFriends_GetFriendGamePlayed( ISteamFriends* self, uint64_steamid steamIDFriend, FriendGameInfo_t * pFriendGameInfo ); +S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaNameHistory( ISteamFriends* self, uint64_steamid steamIDFriend, int iPersonaName ); +S_API int SteamAPI_ISteamFriends_GetFriendSteamLevel( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API const char * SteamAPI_ISteamFriends_GetPlayerNickname( ISteamFriends* self, uint64_steamid steamIDPlayer ); +S_API int SteamAPI_ISteamFriends_GetFriendsGroupCount( ISteamFriends* self ); +S_API FriendsGroupID_t SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex( ISteamFriends* self, int iFG ); +S_API const char * SteamAPI_ISteamFriends_GetFriendsGroupName( ISteamFriends* self, FriendsGroupID_t friendsGroupID ); +S_API int SteamAPI_ISteamFriends_GetFriendsGroupMembersCount( ISteamFriends* self, FriendsGroupID_t friendsGroupID ); +S_API void SteamAPI_ISteamFriends_GetFriendsGroupMembersList( ISteamFriends* self, FriendsGroupID_t friendsGroupID, CSteamID * pOutSteamIDMembers, int nMembersCount ); +S_API bool SteamAPI_ISteamFriends_HasFriend( ISteamFriends* self, uint64_steamid steamIDFriend, int iFriendFlags ); +S_API int SteamAPI_ISteamFriends_GetClanCount( ISteamFriends* self ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetClanByIndex( ISteamFriends* self, int iClan ); +S_API const char * SteamAPI_ISteamFriends_GetClanName( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API const char * SteamAPI_ISteamFriends_GetClanTag( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API bool SteamAPI_ISteamFriends_GetClanActivityCounts( ISteamFriends* self, uint64_steamid steamIDClan, int * pnOnline, int * pnInGame, int * pnChatting ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_DownloadClanActivityCounts( ISteamFriends* self, CSteamID * psteamIDClans, int cClansToRequest ); +S_API int SteamAPI_ISteamFriends_GetFriendCountFromSource( ISteamFriends* self, uint64_steamid steamIDSource ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetFriendFromSourceByIndex( ISteamFriends* self, uint64_steamid steamIDSource, int iFriend ); +S_API bool SteamAPI_ISteamFriends_IsUserInSource( ISteamFriends* self, uint64_steamid steamIDUser, uint64_steamid steamIDSource ); +S_API void SteamAPI_ISteamFriends_SetInGameVoiceSpeaking( ISteamFriends* self, uint64_steamid steamIDUser, bool bSpeaking ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlay( ISteamFriends* self, const char * pchDialog ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToUser( ISteamFriends* self, const char * pchDialog, uint64_steamid steamID ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage( ISteamFriends* self, const char * pchURL, EActivateGameOverlayToWebPageMode eMode ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToStore( ISteamFriends* self, AppId_t nAppID, EOverlayToStoreFlag eFlag ); +S_API void SteamAPI_ISteamFriends_SetPlayedWith( ISteamFriends* self, uint64_steamid steamIDUserPlayedWith ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog( ISteamFriends* self, uint64_steamid steamIDLobby ); +S_API int SteamAPI_ISteamFriends_GetSmallFriendAvatar( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API int SteamAPI_ISteamFriends_GetMediumFriendAvatar( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API int SteamAPI_ISteamFriends_GetLargeFriendAvatar( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamFriends_RequestUserInformation( ISteamFriends* self, uint64_steamid steamIDUser, bool bRequireNameOnly ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_RequestClanOfficerList( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetClanOwner( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API int SteamAPI_ISteamFriends_GetClanOfficerCount( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetClanOfficerByIndex( ISteamFriends* self, uint64_steamid steamIDClan, int iOfficer ); +S_API uint32 SteamAPI_ISteamFriends_GetUserRestrictions( ISteamFriends* self ); +S_API bool SteamAPI_ISteamFriends_SetRichPresence( ISteamFriends* self, const char * pchKey, const char * pchValue ); +S_API void SteamAPI_ISteamFriends_ClearRichPresence( ISteamFriends* self ); +S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresence( ISteamFriends* self, uint64_steamid steamIDFriend, const char * pchKey ); +S_API int SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex( ISteamFriends* self, uint64_steamid steamIDFriend, int iKey ); +S_API void SteamAPI_ISteamFriends_RequestFriendRichPresence( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamFriends_InviteUserToGame( ISteamFriends* self, uint64_steamid steamIDFriend, const char * pchConnectString ); +S_API int SteamAPI_ISteamFriends_GetCoplayFriendCount( ISteamFriends* self ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetCoplayFriend( ISteamFriends* self, int iCoplayFriend ); +S_API int SteamAPI_ISteamFriends_GetFriendCoplayTime( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API AppId_t SteamAPI_ISteamFriends_GetFriendCoplayGame( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_JoinClanChatRoom( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API bool SteamAPI_ISteamFriends_LeaveClanChatRoom( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API int SteamAPI_ISteamFriends_GetClanChatMemberCount( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetChatMemberByIndex( ISteamFriends* self, uint64_steamid steamIDClan, int iUser ); +S_API bool SteamAPI_ISteamFriends_SendClanChatMessage( ISteamFriends* self, uint64_steamid steamIDClanChat, const char * pchText ); +S_API int SteamAPI_ISteamFriends_GetClanChatMessage( ISteamFriends* self, uint64_steamid steamIDClanChat, int iMessage, void * prgchText, int cchTextMax, EChatEntryType * peChatEntryType, CSteamID * psteamidChatter ); +S_API bool SteamAPI_ISteamFriends_IsClanChatAdmin( ISteamFriends* self, uint64_steamid steamIDClanChat, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam( ISteamFriends* self, uint64_steamid steamIDClanChat ); +S_API bool SteamAPI_ISteamFriends_OpenClanChatWindowInSteam( ISteamFriends* self, uint64_steamid steamIDClanChat ); +S_API bool SteamAPI_ISteamFriends_CloseClanChatWindowInSteam( ISteamFriends* self, uint64_steamid steamIDClanChat ); +S_API bool SteamAPI_ISteamFriends_SetListenForFriendsMessages( ISteamFriends* self, bool bInterceptEnabled ); +S_API bool SteamAPI_ISteamFriends_ReplyToFriendMessage( ISteamFriends* self, uint64_steamid steamIDFriend, const char * pchMsgToSend ); +S_API int SteamAPI_ISteamFriends_GetFriendMessage( ISteamFriends* self, uint64_steamid steamIDFriend, int iMessageID, void * pvData, int cubData, EChatEntryType * peChatEntryType ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_GetFollowerCount( ISteamFriends* self, uint64_steamid steamID ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_IsFollowing( ISteamFriends* self, uint64_steamid steamID ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_EnumerateFollowingList( ISteamFriends* self, uint32 unStartIndex ); +S_API bool SteamAPI_ISteamFriends_IsClanPublic( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API bool SteamAPI_ISteamFriends_IsClanOfficialGameGroup( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API int SteamAPI_ISteamFriends_GetNumChatsWithUnreadPriorityMessages( ISteamFriends* self ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog( ISteamFriends* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamFriends_RegisterProtocolInOverlayBrowser( ISteamFriends* self, const char * pchProtocol ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialogConnectString( ISteamFriends* self, const char * pchConnectString ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_RequestEquippedProfileItems( ISteamFriends* self, uint64_steamid steamID ); +S_API bool SteamAPI_ISteamFriends_BHasEquippedProfileItem( ISteamFriends* self, uint64_steamid steamID, ECommunityProfileItemType itemType ); +S_API const char * SteamAPI_ISteamFriends_GetProfileItemPropertyString( ISteamFriends* self, uint64_steamid steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ); +S_API uint32 SteamAPI_ISteamFriends_GetProfileItemPropertyUint( ISteamFriends* self, uint64_steamid steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ); + +// ISteamUtils + +// A versioned accessor is exported by the library +S_API ISteamUtils *SteamAPI_SteamUtils_v010(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUtils(), but using this ensures that you are using a matching library. +inline ISteamUtils *SteamAPI_SteamUtils() { return SteamAPI_SteamUtils_v010(); } + +// A versioned accessor is exported by the library +S_API ISteamUtils *SteamAPI_SteamGameServerUtils_v010(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerUtils(), but using this ensures that you are using a matching library. +inline ISteamUtils *SteamAPI_SteamGameServerUtils() { return SteamAPI_SteamGameServerUtils_v010(); } +S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceAppActive( ISteamUtils* self ); +S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceComputerActive( ISteamUtils* self ); +S_API EUniverse SteamAPI_ISteamUtils_GetConnectedUniverse( ISteamUtils* self ); +S_API uint32 SteamAPI_ISteamUtils_GetServerRealTime( ISteamUtils* self ); +S_API const char * SteamAPI_ISteamUtils_GetIPCountry( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_GetImageSize( ISteamUtils* self, int iImage, uint32 * pnWidth, uint32 * pnHeight ); +S_API bool SteamAPI_ISteamUtils_GetImageRGBA( ISteamUtils* self, int iImage, uint8 * pubDest, int nDestBufferSize ); +S_API uint8 SteamAPI_ISteamUtils_GetCurrentBatteryPower( ISteamUtils* self ); +S_API uint32 SteamAPI_ISteamUtils_GetAppID( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetOverlayNotificationPosition( ISteamUtils* self, ENotificationPosition eNotificationPosition ); +S_API bool SteamAPI_ISteamUtils_IsAPICallCompleted( ISteamUtils* self, SteamAPICall_t hSteamAPICall, bool * pbFailed ); +S_API ESteamAPICallFailure SteamAPI_ISteamUtils_GetAPICallFailureReason( ISteamUtils* self, SteamAPICall_t hSteamAPICall ); +S_API bool SteamAPI_ISteamUtils_GetAPICallResult( ISteamUtils* self, SteamAPICall_t hSteamAPICall, void * pCallback, int cubCallback, int iCallbackExpected, bool * pbFailed ); +S_API uint32 SteamAPI_ISteamUtils_GetIPCCallCount( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetWarningMessageHook( ISteamUtils* self, SteamAPIWarningMessageHook_t pFunction ); +S_API bool SteamAPI_ISteamUtils_IsOverlayEnabled( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_BOverlayNeedsPresent( ISteamUtils* self ); +S_API SteamAPICall_t SteamAPI_ISteamUtils_CheckFileSignature( ISteamUtils* self, const char * szFileName ); +S_API bool SteamAPI_ISteamUtils_ShowGamepadTextInput( ISteamUtils* self, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32 unCharMax, const char * pchExistingText ); +S_API uint32 SteamAPI_ISteamUtils_GetEnteredGamepadTextLength( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_GetEnteredGamepadTextInput( ISteamUtils* self, char * pchText, uint32 cchText ); +S_API const char * SteamAPI_ISteamUtils_GetSteamUILanguage( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_IsSteamRunningInVR( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetOverlayNotificationInset( ISteamUtils* self, int nHorizontalInset, int nVerticalInset ); +S_API bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_StartVRDashboard( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled( ISteamUtils* self, bool bEnabled ); +S_API bool SteamAPI_ISteamUtils_IsSteamChinaLauncher( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_InitFilterText( ISteamUtils* self, uint32 unFilterOptions ); +S_API int SteamAPI_ISteamUtils_FilterText( ISteamUtils* self, ETextFilteringContext eContext, uint64_steamid sourceSteamID, const char * pchInputMessage, char * pchOutFilteredText, uint32 nByteSizeOutFilteredText ); +S_API ESteamIPv6ConnectivityState SteamAPI_ISteamUtils_GetIPv6ConnectivityState( ISteamUtils* self, ESteamIPv6ConnectivityProtocol eProtocol ); +S_API bool SteamAPI_ISteamUtils_IsSteamRunningOnSteamDeck( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_ShowFloatingGamepadTextInput( ISteamUtils* self, EFloatingGamepadTextInputMode eKeyboardMode, int nTextFieldXPosition, int nTextFieldYPosition, int nTextFieldWidth, int nTextFieldHeight ); +S_API void SteamAPI_ISteamUtils_SetGameLauncherMode( ISteamUtils* self, bool bLauncherMode ); +S_API bool SteamAPI_ISteamUtils_DismissFloatingGamepadTextInput( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_DismissGamepadTextInput( ISteamUtils* self ); + +// ISteamMatchmaking + +// A versioned accessor is exported by the library +S_API ISteamMatchmaking *SteamAPI_SteamMatchmaking_v009(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMatchmaking(), but using this ensures that you are using a matching library. +inline ISteamMatchmaking *SteamAPI_SteamMatchmaking() { return SteamAPI_SteamMatchmaking_v009(); } +S_API int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount( ISteamMatchmaking* self ); +S_API bool SteamAPI_ISteamMatchmaking_GetFavoriteGame( ISteamMatchmaking* self, int iGame, AppId_t * pnAppID, uint32 * pnIP, uint16 * pnConnPort, uint16 * pnQueryPort, uint32 * punFlags, uint32 * pRTime32LastPlayedOnServer ); +S_API int SteamAPI_ISteamMatchmaking_AddFavoriteGame( ISteamMatchmaking* self, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer ); +S_API bool SteamAPI_ISteamMatchmaking_RemoveFavoriteGame( ISteamMatchmaking* self, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags ); +S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_RequestLobbyList( ISteamMatchmaking* self ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter( ISteamMatchmaking* self, const char * pchKeyToMatch, const char * pchValueToMatch, ELobbyComparison eComparisonType ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter( ISteamMatchmaking* self, const char * pchKeyToMatch, int nValueToMatch, ELobbyComparison eComparisonType ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter( ISteamMatchmaking* self, const char * pchKeyToMatch, int nValueToBeCloseTo ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable( ISteamMatchmaking* self, int nSlotsAvailable ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter( ISteamMatchmaking* self, ELobbyDistanceFilter eLobbyDistanceFilter ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter( ISteamMatchmaking* self, int cMaxResults ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API uint64_steamid SteamAPI_ISteamMatchmaking_GetLobbyByIndex( ISteamMatchmaking* self, int iLobby ); +S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_CreateLobby( ISteamMatchmaking* self, ELobbyType eLobbyType, int cMaxMembers ); +S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_JoinLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API void SteamAPI_ISteamMatchmaking_LeaveLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_InviteUserToLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDInvitee ); +S_API int SteamAPI_ISteamMatchmaking_GetNumLobbyMembers( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API uint64_steamid SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int iMember ); +S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey, const char * pchValue ); +S_API int SteamAPI_ISteamMatchmaking_GetLobbyDataCount( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int iLobbyData, char * pchKey, int cchKeyBufferSize, char * pchValue, int cchValueBufferSize ); +S_API bool SteamAPI_ISteamMatchmaking_DeleteLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey ); +S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyMemberData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDUser, const char * pchKey ); +S_API void SteamAPI_ISteamMatchmaking_SetLobbyMemberData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey, const char * pchValue ); +S_API bool SteamAPI_ISteamMatchmaking_SendLobbyChatMsg( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const void * pvMsgBody, int cubMsgBody ); +S_API int SteamAPI_ISteamMatchmaking_GetLobbyChatEntry( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int iChatID, CSteamID * pSteamIDUser, void * pvData, int cubData, EChatEntryType * peChatEntryType ); +S_API bool SteamAPI_ISteamMatchmaking_RequestLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API void SteamAPI_ISteamMatchmaking_SetLobbyGameServer( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, uint64_steamid steamIDGameServer ); +S_API bool SteamAPI_ISteamMatchmaking_GetLobbyGameServer( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint32 * punGameServerIP, uint16 * punGameServerPort, CSteamID * psteamIDGameServer ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int cMaxMembers ); +S_API int SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyType( ISteamMatchmaking* self, uint64_steamid steamIDLobby, ELobbyType eLobbyType ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyJoinable( ISteamMatchmaking* self, uint64_steamid steamIDLobby, bool bLobbyJoinable ); +S_API uint64_steamid SteamAPI_ISteamMatchmaking_GetLobbyOwner( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyOwner( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDNewOwner ); +S_API bool SteamAPI_ISteamMatchmaking_SetLinkedLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDLobbyDependent ); + +// ISteamMatchmakingServerListResponse +S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded( ISteamMatchmakingServerListResponse* self, HServerListRequest hRequest, int iServer ); +S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond( ISteamMatchmakingServerListResponse* self, HServerListRequest hRequest, int iServer ); +S_API void SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete( ISteamMatchmakingServerListResponse* self, HServerListRequest hRequest, EMatchMakingServerResponse response ); + +// ISteamMatchmakingPingResponse +S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerResponded( ISteamMatchmakingPingResponse* self, gameserveritem_t & server ); +S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond( ISteamMatchmakingPingResponse* self ); + +// ISteamMatchmakingPlayersResponse +S_API void SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList( ISteamMatchmakingPlayersResponse* self, const char * pchName, int nScore, float flTimePlayed ); +S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond( ISteamMatchmakingPlayersResponse* self ); +S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete( ISteamMatchmakingPlayersResponse* self ); + +// ISteamMatchmakingRulesResponse +S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded( ISteamMatchmakingRulesResponse* self, const char * pchRule, const char * pchValue ); +S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond( ISteamMatchmakingRulesResponse* self ); +S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete( ISteamMatchmakingRulesResponse* self ); + +// ISteamMatchmakingServers + +// A versioned accessor is exported by the library +S_API ISteamMatchmakingServers *SteamAPI_SteamMatchmakingServers_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMatchmakingServers(), but using this ensures that you are using a matching library. +inline ISteamMatchmakingServers *SteamAPI_SteamMatchmakingServers() { return SteamAPI_SteamMatchmakingServers_v002(); } +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestInternetServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestLANServerList( ISteamMatchmakingServers* self, AppId_t iApp, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API void SteamAPI_ISteamMatchmakingServers_ReleaseRequest( ISteamMatchmakingServers* self, HServerListRequest hServerListRequest ); +S_API gameserveritem_t * SteamAPI_ISteamMatchmakingServers_GetServerDetails( ISteamMatchmakingServers* self, HServerListRequest hRequest, int iServer ); +S_API void SteamAPI_ISteamMatchmakingServers_CancelQuery( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API void SteamAPI_ISteamMatchmakingServers_RefreshQuery( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API bool SteamAPI_ISteamMatchmakingServers_IsRefreshing( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API int SteamAPI_ISteamMatchmakingServers_GetServerCount( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API void SteamAPI_ISteamMatchmakingServers_RefreshServer( ISteamMatchmakingServers* self, HServerListRequest hRequest, int iServer ); +S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PingServer( ISteamMatchmakingServers* self, uint32 unIP, uint16 usPort, ISteamMatchmakingPingResponse * pRequestServersResponse ); +S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PlayerDetails( ISteamMatchmakingServers* self, uint32 unIP, uint16 usPort, ISteamMatchmakingPlayersResponse * pRequestServersResponse ); +S_API HServerQuery SteamAPI_ISteamMatchmakingServers_ServerRules( ISteamMatchmakingServers* self, uint32 unIP, uint16 usPort, ISteamMatchmakingRulesResponse * pRequestServersResponse ); +S_API void SteamAPI_ISteamMatchmakingServers_CancelServerQuery( ISteamMatchmakingServers* self, HServerQuery hServerQuery ); + +// ISteamGameSearch + +// A versioned accessor is exported by the library +S_API ISteamGameSearch *SteamAPI_SteamGameSearch_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameSearch(), but using this ensures that you are using a matching library. +inline ISteamGameSearch *SteamAPI_SteamGameSearch() { return SteamAPI_SteamGameSearch_v001(); } +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_AddGameSearchParams( ISteamGameSearch* self, const char * pchKeyToFind, const char * pchValuesToFind ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SearchForGameWithLobby( ISteamGameSearch* self, uint64_steamid steamIDLobby, int nPlayerMin, int nPlayerMax ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SearchForGameSolo( ISteamGameSearch* self, int nPlayerMin, int nPlayerMax ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_AcceptGame( ISteamGameSearch* self ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_DeclineGame( ISteamGameSearch* self ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_RetrieveConnectionDetails( ISteamGameSearch* self, uint64_steamid steamIDHost, char * pchConnectionDetails, int cubConnectionDetails ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_EndGameSearch( ISteamGameSearch* self ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SetGameHostParams( ISteamGameSearch* self, const char * pchKey, const char * pchValue ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SetConnectionDetails( ISteamGameSearch* self, const char * pchConnectionDetails, int cubConnectionDetails ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_RequestPlayersForGame( ISteamGameSearch* self, int nPlayerMin, int nPlayerMax, int nMaxTeamSize ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_HostConfirmGameStart( ISteamGameSearch* self, uint64 ullUniqueGameID ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_CancelRequestPlayersForGame( ISteamGameSearch* self ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SubmitPlayerResult( ISteamGameSearch* self, uint64 ullUniqueGameID, uint64_steamid steamIDPlayer, EPlayerResult_t EPlayerResult ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_EndGame( ISteamGameSearch* self, uint64 ullUniqueGameID ); + +// ISteamParties + +// A versioned accessor is exported by the library +S_API ISteamParties *SteamAPI_SteamParties_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamParties(), but using this ensures that you are using a matching library. +inline ISteamParties *SteamAPI_SteamParties() { return SteamAPI_SteamParties_v002(); } +S_API uint32 SteamAPI_ISteamParties_GetNumActiveBeacons( ISteamParties* self ); +S_API PartyBeaconID_t SteamAPI_ISteamParties_GetBeaconByIndex( ISteamParties* self, uint32 unIndex ); +S_API bool SteamAPI_ISteamParties_GetBeaconDetails( ISteamParties* self, PartyBeaconID_t ulBeaconID, CSteamID * pSteamIDBeaconOwner, SteamPartyBeaconLocation_t * pLocation, char * pchMetadata, int cchMetadata ); +S_API SteamAPICall_t SteamAPI_ISteamParties_JoinParty( ISteamParties* self, PartyBeaconID_t ulBeaconID ); +S_API bool SteamAPI_ISteamParties_GetNumAvailableBeaconLocations( ISteamParties* self, uint32 * puNumLocations ); +S_API bool SteamAPI_ISteamParties_GetAvailableBeaconLocations( ISteamParties* self, SteamPartyBeaconLocation_t * pLocationList, uint32 uMaxNumLocations ); +S_API SteamAPICall_t SteamAPI_ISteamParties_CreateBeacon( ISteamParties* self, uint32 unOpenSlots, SteamPartyBeaconLocation_t * pBeaconLocation, const char * pchConnectString, const char * pchMetadata ); +S_API void SteamAPI_ISteamParties_OnReservationCompleted( ISteamParties* self, PartyBeaconID_t ulBeacon, uint64_steamid steamIDUser ); +S_API void SteamAPI_ISteamParties_CancelReservation( ISteamParties* self, PartyBeaconID_t ulBeacon, uint64_steamid steamIDUser ); +S_API SteamAPICall_t SteamAPI_ISteamParties_ChangeNumOpenSlots( ISteamParties* self, PartyBeaconID_t ulBeacon, uint32 unOpenSlots ); +S_API bool SteamAPI_ISteamParties_DestroyBeacon( ISteamParties* self, PartyBeaconID_t ulBeacon ); +S_API bool SteamAPI_ISteamParties_GetBeaconLocationData( ISteamParties* self, SteamPartyBeaconLocation_t BeaconLocation, ESteamPartyBeaconLocationData eData, char * pchDataStringOut, int cchDataStringOut ); + +// ISteamRemoteStorage + +// A versioned accessor is exported by the library +S_API ISteamRemoteStorage *SteamAPI_SteamRemoteStorage_v016(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamRemoteStorage(), but using this ensures that you are using a matching library. +inline ISteamRemoteStorage *SteamAPI_SteamRemoteStorage() { return SteamAPI_SteamRemoteStorage_v016(); } +S_API bool SteamAPI_ISteamRemoteStorage_FileWrite( ISteamRemoteStorage* self, const char * pchFile, const void * pvData, int32 cubData ); +S_API int32 SteamAPI_ISteamRemoteStorage_FileRead( ISteamRemoteStorage* self, const char * pchFile, void * pvData, int32 cubDataToRead ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileWriteAsync( ISteamRemoteStorage* self, const char * pchFile, const void * pvData, uint32 cubData ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileReadAsync( ISteamRemoteStorage* self, const char * pchFile, uint32 nOffset, uint32 cubToRead ); +S_API bool SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete( ISteamRemoteStorage* self, SteamAPICall_t hReadCall, void * pvBuffer, uint32 cubToRead ); +S_API bool SteamAPI_ISteamRemoteStorage_FileForget( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_FileDelete( ISteamRemoteStorage* self, const char * pchFile ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileShare( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_SetSyncPlatforms( ISteamRemoteStorage* self, const char * pchFile, ERemoteStoragePlatform eRemoteStoragePlatform ); +S_API UGCFileWriteStreamHandle_t SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk( ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle, const void * pvData, int32 cubData ); +S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamClose( ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle ); +S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel( ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle ); +S_API bool SteamAPI_ISteamRemoteStorage_FileExists( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_FilePersisted( ISteamRemoteStorage* self, const char * pchFile ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetFileSize( ISteamRemoteStorage* self, const char * pchFile ); +S_API int64 SteamAPI_ISteamRemoteStorage_GetFileTimestamp( ISteamRemoteStorage* self, const char * pchFile ); +S_API ERemoteStoragePlatform SteamAPI_ISteamRemoteStorage_GetSyncPlatforms( ISteamRemoteStorage* self, const char * pchFile ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetFileCount( ISteamRemoteStorage* self ); +S_API const char * SteamAPI_ISteamRemoteStorage_GetFileNameAndSize( ISteamRemoteStorage* self, int iFile, int32 * pnFileSizeInBytes ); +S_API bool SteamAPI_ISteamRemoteStorage_GetQuota( ISteamRemoteStorage* self, uint64 * pnTotalBytes, uint64 * puAvailableBytes ); +S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount( ISteamRemoteStorage* self ); +S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp( ISteamRemoteStorage* self ); +S_API void SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp( ISteamRemoteStorage* self, bool bEnabled ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownload( ISteamRemoteStorage* self, UGCHandle_t hContent, uint32 unPriority ); +S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress( ISteamRemoteStorage* self, UGCHandle_t hContent, int32 * pnBytesDownloaded, int32 * pnBytesExpected ); +S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDetails( ISteamRemoteStorage* self, UGCHandle_t hContent, AppId_t * pnAppID, char ** ppchName, int32 * pnFileSizeInBytes, CSteamID * pSteamIDOwner ); +S_API int32 SteamAPI_ISteamRemoteStorage_UGCRead( ISteamRemoteStorage* self, UGCHandle_t hContent, void * pvData, int32 cubDataToRead, uint32 cOffset, EUGCReadAction eAction ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetCachedUGCCount( ISteamRemoteStorage* self ); +S_API UGCHandle_t SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle( ISteamRemoteStorage* self, int32 iCachedContent ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishWorkshopFile( ISteamRemoteStorage* self, const char * pchFile, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t * pTags, EWorkshopFileType eWorkshopFileType ); +S_API PublishedFileUpdateHandle_t SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchPreviewFile ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchTitle ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchDescription ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, SteamParamStringArray_t * pTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, uint32 unMaxSecondsOld ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_DeletePublishedFile( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles( ISteamRemoteStorage* self, uint32 unStartIndex ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SubscribePublishedFile( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles( ISteamRemoteStorage* self, uint32 unStartIndex ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchChangeDescription ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, bool bVoteUp ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles( ISteamRemoteStorage* self, uint64_steamid steamId, uint32 unStartIndex, SteamParamStringArray_t * pRequiredTags, SteamParamStringArray_t * pExcludedTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishVideo( ISteamRemoteStorage* self, EWorkshopVideoProvider eVideoProvider, const char * pchVideoAccount, const char * pchVideoIdentifier, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t * pTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction( ISteamRemoteStorage* self, EWorkshopFileAction eAction, uint32 unStartIndex ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles( ISteamRemoteStorage* self, EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, SteamParamStringArray_t * pTags, SteamParamStringArray_t * pUserTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation( ISteamRemoteStorage* self, UGCHandle_t hContent, const char * pchLocation, uint32 unPriority ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetLocalFileChangeCount( ISteamRemoteStorage* self ); +S_API const char * SteamAPI_ISteamRemoteStorage_GetLocalFileChange( ISteamRemoteStorage* self, int iFile, ERemoteStorageLocalFileChange * pEChangeType, ERemoteStorageFilePathType * pEFilePathType ); +S_API bool SteamAPI_ISteamRemoteStorage_BeginFileWriteBatch( ISteamRemoteStorage* self ); +S_API bool SteamAPI_ISteamRemoteStorage_EndFileWriteBatch( ISteamRemoteStorage* self ); + +// ISteamUserStats + +// A versioned accessor is exported by the library +S_API ISteamUserStats *SteamAPI_SteamUserStats_v012(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUserStats(), but using this ensures that you are using a matching library. +inline ISteamUserStats *SteamAPI_SteamUserStats() { return SteamAPI_SteamUserStats_v012(); } +S_API bool SteamAPI_ISteamUserStats_RequestCurrentStats( ISteamUserStats* self ); +S_API bool SteamAPI_ISteamUserStats_GetStatInt32( ISteamUserStats* self, const char * pchName, int32 * pData ); +S_API bool SteamAPI_ISteamUserStats_GetStatFloat( ISteamUserStats* self, const char * pchName, float * pData ); +S_API bool SteamAPI_ISteamUserStats_SetStatInt32( ISteamUserStats* self, const char * pchName, int32 nData ); +S_API bool SteamAPI_ISteamUserStats_SetStatFloat( ISteamUserStats* self, const char * pchName, float fData ); +S_API bool SteamAPI_ISteamUserStats_UpdateAvgRateStat( ISteamUserStats* self, const char * pchName, float flCountThisSession, double dSessionLength ); +S_API bool SteamAPI_ISteamUserStats_GetAchievement( ISteamUserStats* self, const char * pchName, bool * pbAchieved ); +S_API bool SteamAPI_ISteamUserStats_SetAchievement( ISteamUserStats* self, const char * pchName ); +S_API bool SteamAPI_ISteamUserStats_ClearAchievement( ISteamUserStats* self, const char * pchName ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime( ISteamUserStats* self, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime ); +S_API bool SteamAPI_ISteamUserStats_StoreStats( ISteamUserStats* self ); +S_API int SteamAPI_ISteamUserStats_GetAchievementIcon( ISteamUserStats* self, const char * pchName ); +S_API const char * SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute( ISteamUserStats* self, const char * pchName, const char * pchKey ); +S_API bool SteamAPI_ISteamUserStats_IndicateAchievementProgress( ISteamUserStats* self, const char * pchName, uint32 nCurProgress, uint32 nMaxProgress ); +S_API uint32 SteamAPI_ISteamUserStats_GetNumAchievements( ISteamUserStats* self ); +S_API const char * SteamAPI_ISteamUserStats_GetAchievementName( ISteamUserStats* self, uint32 iAchievement ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestUserStats( ISteamUserStats* self, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamUserStats_GetUserStatInt32( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, int32 * pData ); +S_API bool SteamAPI_ISteamUserStats_GetUserStatFloat( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, float * pData ); +S_API bool SteamAPI_ISteamUserStats_GetUserAchievement( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, bool * pbAchieved ); +S_API bool SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime ); +S_API bool SteamAPI_ISteamUserStats_ResetAllStats( ISteamUserStats* self, bool bAchievementsToo ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindOrCreateLeaderboard( ISteamUserStats* self, const char * pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindLeaderboard( ISteamUserStats* self, const char * pchLeaderboardName ); +S_API const char * SteamAPI_ISteamUserStats_GetLeaderboardName( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API int SteamAPI_ISteamUserStats_GetLeaderboardEntryCount( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API ELeaderboardSortMethod SteamAPI_ISteamUserStats_GetLeaderboardSortMethod( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API ELeaderboardDisplayType SteamAPI_ISteamUserStats_GetLeaderboardDisplayType( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntries( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, CSteamID * prgUsers, int cUsers ); +S_API bool SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry( ISteamUserStats* self, SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, LeaderboardEntry_t * pLeaderboardEntry, int32 * pDetails, int cDetailsMax ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_UploadLeaderboardScore( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32 * pScoreDetails, int cScoreDetailsCount ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_AttachLeaderboardUGC( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers( ISteamUserStats* self ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages( ISteamUserStats* self ); +S_API int SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo( ISteamUserStats* self, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved ); +S_API int SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo( ISteamUserStats* self, int iIteratorPrevious, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementAchievedPercent( ISteamUserStats* self, const char * pchName, float * pflPercent ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalStats( ISteamUserStats* self, int nHistoryDays ); +S_API bool SteamAPI_ISteamUserStats_GetGlobalStatInt64( ISteamUserStats* self, const char * pchStatName, int64 * pData ); +S_API bool SteamAPI_ISteamUserStats_GetGlobalStatDouble( ISteamUserStats* self, const char * pchStatName, double * pData ); +S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64( ISteamUserStats* self, const char * pchStatName, int64 * pData, uint32 cubData ); +S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble( ISteamUserStats* self, const char * pchStatName, double * pData, uint32 cubData ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementProgressLimitsInt32( ISteamUserStats* self, const char * pchName, int32 * pnMinProgress, int32 * pnMaxProgress ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementProgressLimitsFloat( ISteamUserStats* self, const char * pchName, float * pfMinProgress, float * pfMaxProgress ); + +// ISteamApps + +// A versioned accessor is exported by the library +S_API ISteamApps *SteamAPI_SteamApps_v008(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamApps(), but using this ensures that you are using a matching library. +inline ISteamApps *SteamAPI_SteamApps() { return SteamAPI_SteamApps_v008(); } +S_API bool SteamAPI_ISteamApps_BIsSubscribed( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsLowViolence( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsCybercafe( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsVACBanned( ISteamApps* self ); +S_API const char * SteamAPI_ISteamApps_GetCurrentGameLanguage( ISteamApps* self ); +S_API const char * SteamAPI_ISteamApps_GetAvailableGameLanguages( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsSubscribedApp( ISteamApps* self, AppId_t appID ); +S_API bool SteamAPI_ISteamApps_BIsDlcInstalled( ISteamApps* self, AppId_t appID ); +S_API uint32 SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime( ISteamApps* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend( ISteamApps* self ); +S_API int SteamAPI_ISteamApps_GetDLCCount( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BGetDLCDataByIndex( ISteamApps* self, int iDLC, AppId_t * pAppID, bool * pbAvailable, char * pchName, int cchNameBufferSize ); +S_API void SteamAPI_ISteamApps_InstallDLC( ISteamApps* self, AppId_t nAppID ); +S_API void SteamAPI_ISteamApps_UninstallDLC( ISteamApps* self, AppId_t nAppID ); +S_API void SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey( ISteamApps* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamApps_GetCurrentBetaName( ISteamApps* self, char * pchName, int cchNameBufferSize ); +S_API bool SteamAPI_ISteamApps_MarkContentCorrupt( ISteamApps* self, bool bMissingFilesOnly ); +S_API uint32 SteamAPI_ISteamApps_GetInstalledDepots( ISteamApps* self, AppId_t appID, DepotId_t * pvecDepots, uint32 cMaxDepots ); +S_API uint32 SteamAPI_ISteamApps_GetAppInstallDir( ISteamApps* self, AppId_t appID, char * pchFolder, uint32 cchFolderBufferSize ); +S_API bool SteamAPI_ISteamApps_BIsAppInstalled( ISteamApps* self, AppId_t appID ); +S_API uint64_steamid SteamAPI_ISteamApps_GetAppOwner( ISteamApps* self ); +S_API const char * SteamAPI_ISteamApps_GetLaunchQueryParam( ISteamApps* self, const char * pchKey ); +S_API bool SteamAPI_ISteamApps_GetDlcDownloadProgress( ISteamApps* self, AppId_t nAppID, uint64 * punBytesDownloaded, uint64 * punBytesTotal ); +S_API int SteamAPI_ISteamApps_GetAppBuildId( ISteamApps* self ); +S_API void SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys( ISteamApps* self ); +S_API SteamAPICall_t SteamAPI_ISteamApps_GetFileDetails( ISteamApps* self, const char * pszFileName ); +S_API int SteamAPI_ISteamApps_GetLaunchCommandLine( ISteamApps* self, char * pszCommandLine, int cubCommandLine ); +S_API bool SteamAPI_ISteamApps_BIsSubscribedFromFamilySharing( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsTimedTrial( ISteamApps* self, uint32 * punSecondsAllowed, uint32 * punSecondsPlayed ); +S_API bool SteamAPI_ISteamApps_SetDlcContext( ISteamApps* self, AppId_t nAppID ); + +// ISteamNetworking + +// A versioned accessor is exported by the library +S_API ISteamNetworking *SteamAPI_SteamNetworking_v006(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworking(), but using this ensures that you are using a matching library. +inline ISteamNetworking *SteamAPI_SteamNetworking() { return SteamAPI_SteamNetworking_v006(); } + +// A versioned accessor is exported by the library +S_API ISteamNetworking *SteamAPI_SteamGameServerNetworking_v006(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerNetworking(), but using this ensures that you are using a matching library. +inline ISteamNetworking *SteamAPI_SteamGameServerNetworking() { return SteamAPI_SteamGameServerNetworking_v006(); } +S_API bool SteamAPI_ISteamNetworking_SendP2PPacket( ISteamNetworking* self, uint64_steamid steamIDRemote, const void * pubData, uint32 cubData, EP2PSend eP2PSendType, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_IsP2PPacketAvailable( ISteamNetworking* self, uint32 * pcubMsgSize, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_ReadP2PPacket( ISteamNetworking* self, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, CSteamID * psteamIDRemote, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser( ISteamNetworking* self, uint64_steamid steamIDRemote ); +S_API bool SteamAPI_ISteamNetworking_CloseP2PSessionWithUser( ISteamNetworking* self, uint64_steamid steamIDRemote ); +S_API bool SteamAPI_ISteamNetworking_CloseP2PChannelWithUser( ISteamNetworking* self, uint64_steamid steamIDRemote, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_GetP2PSessionState( ISteamNetworking* self, uint64_steamid steamIDRemote, P2PSessionState_t * pConnectionState ); +S_API bool SteamAPI_ISteamNetworking_AllowP2PPacketRelay( ISteamNetworking* self, bool bAllow ); +S_API SNetListenSocket_t SteamAPI_ISteamNetworking_CreateListenSocket( ISteamNetworking* self, int nVirtualP2PPort, SteamIPAddress_t nIP, uint16 nPort, bool bAllowUseOfPacketRelay ); +S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateP2PConnectionSocket( ISteamNetworking* self, uint64_steamid steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay ); +S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateConnectionSocket( ISteamNetworking* self, SteamIPAddress_t nIP, uint16 nPort, int nTimeoutSec ); +S_API bool SteamAPI_ISteamNetworking_DestroySocket( ISteamNetworking* self, SNetSocket_t hSocket, bool bNotifyRemoteEnd ); +S_API bool SteamAPI_ISteamNetworking_DestroyListenSocket( ISteamNetworking* self, SNetListenSocket_t hSocket, bool bNotifyRemoteEnd ); +S_API bool SteamAPI_ISteamNetworking_SendDataOnSocket( ISteamNetworking* self, SNetSocket_t hSocket, void * pubData, uint32 cubData, bool bReliable ); +S_API bool SteamAPI_ISteamNetworking_IsDataAvailableOnSocket( ISteamNetworking* self, SNetSocket_t hSocket, uint32 * pcubMsgSize ); +S_API bool SteamAPI_ISteamNetworking_RetrieveDataFromSocket( ISteamNetworking* self, SNetSocket_t hSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize ); +S_API bool SteamAPI_ISteamNetworking_IsDataAvailable( ISteamNetworking* self, SNetListenSocket_t hListenSocket, uint32 * pcubMsgSize, SNetSocket_t * phSocket ); +S_API bool SteamAPI_ISteamNetworking_RetrieveData( ISteamNetworking* self, SNetListenSocket_t hListenSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, SNetSocket_t * phSocket ); +S_API bool SteamAPI_ISteamNetworking_GetSocketInfo( ISteamNetworking* self, SNetSocket_t hSocket, CSteamID * pSteamIDRemote, int * peSocketStatus, SteamIPAddress_t * punIPRemote, uint16 * punPortRemote ); +S_API bool SteamAPI_ISteamNetworking_GetListenSocketInfo( ISteamNetworking* self, SNetListenSocket_t hListenSocket, SteamIPAddress_t * pnIP, uint16 * pnPort ); +S_API ESNetSocketConnectionType SteamAPI_ISteamNetworking_GetSocketConnectionType( ISteamNetworking* self, SNetSocket_t hSocket ); +S_API int SteamAPI_ISteamNetworking_GetMaxPacketSize( ISteamNetworking* self, SNetSocket_t hSocket ); + +// ISteamScreenshots + +// A versioned accessor is exported by the library +S_API ISteamScreenshots *SteamAPI_SteamScreenshots_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamScreenshots(), but using this ensures that you are using a matching library. +inline ISteamScreenshots *SteamAPI_SteamScreenshots() { return SteamAPI_SteamScreenshots_v003(); } +S_API ScreenshotHandle SteamAPI_ISteamScreenshots_WriteScreenshot( ISteamScreenshots* self, void * pubRGB, uint32 cubRGB, int nWidth, int nHeight ); +S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddScreenshotToLibrary( ISteamScreenshots* self, const char * pchFilename, const char * pchThumbnailFilename, int nWidth, int nHeight ); +S_API void SteamAPI_ISteamScreenshots_TriggerScreenshot( ISteamScreenshots* self ); +S_API void SteamAPI_ISteamScreenshots_HookScreenshots( ISteamScreenshots* self, bool bHook ); +S_API bool SteamAPI_ISteamScreenshots_SetLocation( ISteamScreenshots* self, ScreenshotHandle hScreenshot, const char * pchLocation ); +S_API bool SteamAPI_ISteamScreenshots_TagUser( ISteamScreenshots* self, ScreenshotHandle hScreenshot, uint64_steamid steamID ); +S_API bool SteamAPI_ISteamScreenshots_TagPublishedFile( ISteamScreenshots* self, ScreenshotHandle hScreenshot, PublishedFileId_t unPublishedFileID ); +S_API bool SteamAPI_ISteamScreenshots_IsScreenshotsHooked( ISteamScreenshots* self ); +S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary( ISteamScreenshots* self, EVRScreenshotType eType, const char * pchFilename, const char * pchVRFilename ); + +// ISteamMusic + +// A versioned accessor is exported by the library +S_API ISteamMusic *SteamAPI_SteamMusic_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMusic(), but using this ensures that you are using a matching library. +inline ISteamMusic *SteamAPI_SteamMusic() { return SteamAPI_SteamMusic_v001(); } +S_API bool SteamAPI_ISteamMusic_BIsEnabled( ISteamMusic* self ); +S_API bool SteamAPI_ISteamMusic_BIsPlaying( ISteamMusic* self ); +S_API AudioPlayback_Status SteamAPI_ISteamMusic_GetPlaybackStatus( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_Play( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_Pause( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_PlayPrevious( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_PlayNext( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_SetVolume( ISteamMusic* self, float flVolume ); +S_API float SteamAPI_ISteamMusic_GetVolume( ISteamMusic* self ); + +// ISteamMusicRemote + +// A versioned accessor is exported by the library +S_API ISteamMusicRemote *SteamAPI_SteamMusicRemote_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMusicRemote(), but using this ensures that you are using a matching library. +inline ISteamMusicRemote *SteamAPI_SteamMusicRemote() { return SteamAPI_SteamMusicRemote_v001(); } +S_API bool SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote( ISteamMusicRemote* self, const char * pchName ); +S_API bool SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_BActivationSuccess( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_SetDisplayName( ISteamMusicRemote* self, const char * pchDisplayName ); +S_API bool SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64( ISteamMusicRemote* self, void * pvBuffer, uint32 cbBufferLength ); +S_API bool SteamAPI_ISteamMusicRemote_EnablePlayPrevious( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnablePlayNext( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnableShuffled( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnableLooped( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnableQueue( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnablePlaylists( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus( ISteamMusicRemote* self, AudioPlayback_Status nStatus ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateShuffled( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateLooped( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateVolume( ISteamMusicRemote* self, float flValue ); +S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryWillChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable( ISteamMusicRemote* self, bool bAvailable ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText( ISteamMusicRemote* self, const char * pchText ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds( ISteamMusicRemote* self, int nValue ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt( ISteamMusicRemote* self, void * pvBuffer, uint32 cbBufferLength ); +S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryDidChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_QueueWillChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_ResetQueueEntries( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_SetQueueEntry( ISteamMusicRemote* self, int nID, int nPosition, const char * pchEntryText ); +S_API bool SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry( ISteamMusicRemote* self, int nID ); +S_API bool SteamAPI_ISteamMusicRemote_QueueDidChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_PlaylistWillChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_ResetPlaylistEntries( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_SetPlaylistEntry( ISteamMusicRemote* self, int nID, int nPosition, const char * pchEntryText ); +S_API bool SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry( ISteamMusicRemote* self, int nID ); +S_API bool SteamAPI_ISteamMusicRemote_PlaylistDidChange( ISteamMusicRemote* self ); + +// ISteamHTTP + +// A versioned accessor is exported by the library +S_API ISteamHTTP *SteamAPI_SteamHTTP_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamHTTP(), but using this ensures that you are using a matching library. +inline ISteamHTTP *SteamAPI_SteamHTTP() { return SteamAPI_SteamHTTP_v003(); } + +// A versioned accessor is exported by the library +S_API ISteamHTTP *SteamAPI_SteamGameServerHTTP_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerHTTP(), but using this ensures that you are using a matching library. +inline ISteamHTTP *SteamAPI_SteamGameServerHTTP() { return SteamAPI_SteamGameServerHTTP_v003(); } +S_API HTTPRequestHandle SteamAPI_ISteamHTTP_CreateHTTPRequest( ISteamHTTP* self, EHTTPMethod eHTTPRequestMethod, const char * pchAbsoluteURL ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestContextValue( ISteamHTTP* self, HTTPRequestHandle hRequest, uint64 ulContextValue ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 unTimeoutSeconds ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchHeaderName, const char * pchHeaderValue ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchParamName, const char * pchParamValue ); +S_API bool SteamAPI_ISteamHTTP_SendHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle ); +S_API bool SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse( ISteamHTTP* self, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle ); +S_API bool SteamAPI_ISteamHTTP_DeferHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest ); +S_API bool SteamAPI_ISteamHTTP_PrioritizeHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchHeaderName, uint32 * unResponseHeaderSize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchHeaderName, uint8 * pHeaderValueBuffer, uint32 unBufferSize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodySize( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 * unBodySize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodyData( ISteamHTTP* self, HTTPRequestHandle hRequest, uint8 * pBodyDataBuffer, uint32 unBufferSize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 cOffset, uint8 * pBodyDataBuffer, uint32 unBufferSize ); +S_API bool SteamAPI_ISteamHTTP_ReleaseHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct( ISteamHTTP* self, HTTPRequestHandle hRequest, float * pflPercentOut ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchContentType, uint8 * pubBody, uint32 unBodyLen ); +S_API HTTPCookieContainerHandle SteamAPI_ISteamHTTP_CreateCookieContainer( ISteamHTTP* self, bool bAllowResponsesToModify ); +S_API bool SteamAPI_ISteamHTTP_ReleaseCookieContainer( ISteamHTTP* self, HTTPCookieContainerHandle hCookieContainer ); +S_API bool SteamAPI_ISteamHTTP_SetCookie( ISteamHTTP* self, HTTPCookieContainerHandle hCookieContainer, const char * pchHost, const char * pchUrl, const char * pchCookie ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer( ISteamHTTP* self, HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchUserAgentInfo ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate( ISteamHTTP* self, HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 unMilliseconds ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut( ISteamHTTP* self, HTTPRequestHandle hRequest, bool * pbWasTimedOut ); + +// ISteamInput + +// A versioned accessor is exported by the library +S_API ISteamInput *SteamAPI_SteamInput_v006(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamInput(), but using this ensures that you are using a matching library. +inline ISteamInput *SteamAPI_SteamInput() { return SteamAPI_SteamInput_v006(); } +S_API bool SteamAPI_ISteamInput_Init( ISteamInput* self, bool bExplicitlyCallRunFrame ); +S_API bool SteamAPI_ISteamInput_Shutdown( ISteamInput* self ); +S_API bool SteamAPI_ISteamInput_SetInputActionManifestFilePath( ISteamInput* self, const char * pchInputActionManifestAbsolutePath ); +S_API void SteamAPI_ISteamInput_RunFrame( ISteamInput* self, bool bReservedValue ); +S_API bool SteamAPI_ISteamInput_BWaitForData( ISteamInput* self, bool bWaitForever, uint32 unTimeout ); +S_API bool SteamAPI_ISteamInput_BNewDataAvailable( ISteamInput* self ); +S_API int SteamAPI_ISteamInput_GetConnectedControllers( ISteamInput* self, InputHandle_t * handlesOut ); +S_API void SteamAPI_ISteamInput_EnableDeviceCallbacks( ISteamInput* self ); +S_API void SteamAPI_ISteamInput_EnableActionEventCallbacks( ISteamInput* self, SteamInputActionEventCallbackPointer pCallback ); +S_API InputActionSetHandle_t SteamAPI_ISteamInput_GetActionSetHandle( ISteamInput* self, const char * pszActionSetName ); +S_API void SteamAPI_ISteamInput_ActivateActionSet( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle ); +S_API InputActionSetHandle_t SteamAPI_ISteamInput_GetCurrentActionSet( ISteamInput* self, InputHandle_t inputHandle ); +S_API void SteamAPI_ISteamInput_ActivateActionSetLayer( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamInput_DeactivateActionSetLayer( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamInput_DeactivateAllActionSetLayers( ISteamInput* self, InputHandle_t inputHandle ); +S_API int SteamAPI_ISteamInput_GetActiveActionSetLayers( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t * handlesOut ); +S_API InputDigitalActionHandle_t SteamAPI_ISteamInput_GetDigitalActionHandle( ISteamInput* self, const char * pszActionName ); +S_API InputDigitalActionData_t SteamAPI_ISteamInput_GetDigitalActionData( ISteamInput* self, InputHandle_t inputHandle, InputDigitalActionHandle_t digitalActionHandle ); +S_API int SteamAPI_ISteamInput_GetDigitalActionOrigins( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, EInputActionOrigin * originsOut ); +S_API const char * SteamAPI_ISteamInput_GetStringForDigitalActionName( ISteamInput* self, InputDigitalActionHandle_t eActionHandle ); +S_API InputAnalogActionHandle_t SteamAPI_ISteamInput_GetAnalogActionHandle( ISteamInput* self, const char * pszActionName ); +S_API InputAnalogActionData_t SteamAPI_ISteamInput_GetAnalogActionData( ISteamInput* self, InputHandle_t inputHandle, InputAnalogActionHandle_t analogActionHandle ); +S_API int SteamAPI_ISteamInput_GetAnalogActionOrigins( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, EInputActionOrigin * originsOut ); +S_API const char * SteamAPI_ISteamInput_GetGlyphPNGForActionOrigin( ISteamInput* self, EInputActionOrigin eOrigin, ESteamInputGlyphSize eSize, uint32 unFlags ); +S_API const char * SteamAPI_ISteamInput_GetGlyphSVGForActionOrigin( ISteamInput* self, EInputActionOrigin eOrigin, uint32 unFlags ); +S_API const char * SteamAPI_ISteamInput_GetGlyphForActionOrigin_Legacy( ISteamInput* self, EInputActionOrigin eOrigin ); +S_API const char * SteamAPI_ISteamInput_GetStringForActionOrigin( ISteamInput* self, EInputActionOrigin eOrigin ); +S_API const char * SteamAPI_ISteamInput_GetStringForAnalogActionName( ISteamInput* self, InputAnalogActionHandle_t eActionHandle ); +S_API void SteamAPI_ISteamInput_StopAnalogActionMomentum( ISteamInput* self, InputHandle_t inputHandle, InputAnalogActionHandle_t eAction ); +S_API InputMotionData_t SteamAPI_ISteamInput_GetMotionData( ISteamInput* self, InputHandle_t inputHandle ); +S_API void SteamAPI_ISteamInput_TriggerVibration( ISteamInput* self, InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ); +S_API void SteamAPI_ISteamInput_TriggerVibrationExtended( ISteamInput* self, InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed, unsigned short usLeftTriggerSpeed, unsigned short usRightTriggerSpeed ); +S_API void SteamAPI_ISteamInput_TriggerSimpleHapticEvent( ISteamInput* self, InputHandle_t inputHandle, EControllerHapticLocation eHapticLocation, uint8 nIntensity, char nGainDB, uint8 nOtherIntensity, char nOtherGainDB ); +S_API void SteamAPI_ISteamInput_SetLEDColor( ISteamInput* self, InputHandle_t inputHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ); +S_API void SteamAPI_ISteamInput_Legacy_TriggerHapticPulse( ISteamInput* self, InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ); +S_API void SteamAPI_ISteamInput_Legacy_TriggerRepeatedHapticPulse( ISteamInput* self, InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ); +S_API bool SteamAPI_ISteamInput_ShowBindingPanel( ISteamInput* self, InputHandle_t inputHandle ); +S_API ESteamInputType SteamAPI_ISteamInput_GetInputTypeForHandle( ISteamInput* self, InputHandle_t inputHandle ); +S_API InputHandle_t SteamAPI_ISteamInput_GetControllerForGamepadIndex( ISteamInput* self, int nIndex ); +S_API int SteamAPI_ISteamInput_GetGamepadIndexForController( ISteamInput* self, InputHandle_t ulinputHandle ); +S_API const char * SteamAPI_ISteamInput_GetStringForXboxOrigin( ISteamInput* self, EXboxOrigin eOrigin ); +S_API const char * SteamAPI_ISteamInput_GetGlyphForXboxOrigin( ISteamInput* self, EXboxOrigin eOrigin ); +S_API EInputActionOrigin SteamAPI_ISteamInput_GetActionOriginFromXboxOrigin( ISteamInput* self, InputHandle_t inputHandle, EXboxOrigin eOrigin ); +S_API EInputActionOrigin SteamAPI_ISteamInput_TranslateActionOrigin( ISteamInput* self, ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin ); +S_API bool SteamAPI_ISteamInput_GetDeviceBindingRevision( ISteamInput* self, InputHandle_t inputHandle, int * pMajor, int * pMinor ); +S_API uint32 SteamAPI_ISteamInput_GetRemotePlaySessionID( ISteamInput* self, InputHandle_t inputHandle ); +S_API uint16 SteamAPI_ISteamInput_GetSessionInputConfigurationSettings( ISteamInput* self ); +S_API void SteamAPI_ISteamInput_SetDualSenseTriggerEffect( ISteamInput* self, InputHandle_t inputHandle, const ScePadTriggerEffectParam * pParam ); + +// ISteamController + +// A versioned accessor is exported by the library +S_API ISteamController *SteamAPI_SteamController_v008(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamController(), but using this ensures that you are using a matching library. +inline ISteamController *SteamAPI_SteamController() { return SteamAPI_SteamController_v008(); } +S_API bool SteamAPI_ISteamController_Init( ISteamController* self ); +S_API bool SteamAPI_ISteamController_Shutdown( ISteamController* self ); +S_API void SteamAPI_ISteamController_RunFrame( ISteamController* self ); +S_API int SteamAPI_ISteamController_GetConnectedControllers( ISteamController* self, ControllerHandle_t * handlesOut ); +S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetActionSetHandle( ISteamController* self, const char * pszActionSetName ); +S_API void SteamAPI_ISteamController_ActivateActionSet( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle ); +S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetCurrentActionSet( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API void SteamAPI_ISteamController_ActivateActionSetLayer( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamController_DeactivateActionSetLayer( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamController_DeactivateAllActionSetLayers( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API int SteamAPI_ISteamController_GetActiveActionSetLayers( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t * handlesOut ); +S_API ControllerDigitalActionHandle_t SteamAPI_ISteamController_GetDigitalActionHandle( ISteamController* self, const char * pszActionName ); +S_API InputDigitalActionData_t SteamAPI_ISteamController_GetDigitalActionData( ISteamController* self, ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle ); +S_API int SteamAPI_ISteamController_GetDigitalActionOrigins( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin * originsOut ); +S_API ControllerAnalogActionHandle_t SteamAPI_ISteamController_GetAnalogActionHandle( ISteamController* self, const char * pszActionName ); +S_API InputAnalogActionData_t SteamAPI_ISteamController_GetAnalogActionData( ISteamController* self, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle ); +S_API int SteamAPI_ISteamController_GetAnalogActionOrigins( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin * originsOut ); +S_API const char * SteamAPI_ISteamController_GetGlyphForActionOrigin( ISteamController* self, EControllerActionOrigin eOrigin ); +S_API const char * SteamAPI_ISteamController_GetStringForActionOrigin( ISteamController* self, EControllerActionOrigin eOrigin ); +S_API void SteamAPI_ISteamController_StopAnalogActionMomentum( ISteamController* self, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction ); +S_API InputMotionData_t SteamAPI_ISteamController_GetMotionData( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API void SteamAPI_ISteamController_TriggerHapticPulse( ISteamController* self, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ); +S_API void SteamAPI_ISteamController_TriggerRepeatedHapticPulse( ISteamController* self, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ); +S_API void SteamAPI_ISteamController_TriggerVibration( ISteamController* self, ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ); +S_API void SteamAPI_ISteamController_SetLEDColor( ISteamController* self, ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ); +S_API bool SteamAPI_ISteamController_ShowBindingPanel( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API ESteamInputType SteamAPI_ISteamController_GetInputTypeForHandle( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API ControllerHandle_t SteamAPI_ISteamController_GetControllerForGamepadIndex( ISteamController* self, int nIndex ); +S_API int SteamAPI_ISteamController_GetGamepadIndexForController( ISteamController* self, ControllerHandle_t ulControllerHandle ); +S_API const char * SteamAPI_ISteamController_GetStringForXboxOrigin( ISteamController* self, EXboxOrigin eOrigin ); +S_API const char * SteamAPI_ISteamController_GetGlyphForXboxOrigin( ISteamController* self, EXboxOrigin eOrigin ); +S_API EControllerActionOrigin SteamAPI_ISteamController_GetActionOriginFromXboxOrigin( ISteamController* self, ControllerHandle_t controllerHandle, EXboxOrigin eOrigin ); +S_API EControllerActionOrigin SteamAPI_ISteamController_TranslateActionOrigin( ISteamController* self, ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin ); +S_API bool SteamAPI_ISteamController_GetControllerBindingRevision( ISteamController* self, ControllerHandle_t controllerHandle, int * pMajor, int * pMinor ); + +// ISteamUGC + +// A versioned accessor is exported by the library +S_API ISteamUGC *SteamAPI_SteamUGC_v018(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUGC(), but using this ensures that you are using a matching library. +inline ISteamUGC *SteamAPI_SteamUGC() { return SteamAPI_SteamUGC_v018(); } + +// A versioned accessor is exported by the library +S_API ISteamUGC *SteamAPI_SteamGameServerUGC_v018(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerUGC(), but using this ensures that you are using a matching library. +inline ISteamUGC *SteamAPI_SteamGameServerUGC() { return SteamAPI_SteamGameServerUGC_v018(); } +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUserUGCRequest( ISteamUGC* self, AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ); +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage( ISteamUGC* self, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ); +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor( ISteamUGC* self, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, const char * pchCursor ); +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SendQueryUGCRequest( ISteamUGC* self, UGCQueryHandle_t handle ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCResult( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, SteamUGCDetails_t * pDetails ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumTags( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 indexTag, char * pchValue, uint32 cchValueSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 indexTag, char * pchValue, uint32 cchValueSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCPreviewURL( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, char * pchURL, uint32 cchURLSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCMetadata( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, char * pchMetadata, uint32 cchMetadatasize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCChildren( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCStatistic( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 * pStatValue ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, char * pchURLOrVideoID, uint32 cchURLSize, char * pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType * pPreviewType ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, char * pchKey, uint32 cchKeySize, char * pchValue, uint32 cchValueSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryFirstUGCKeyValueTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, const char * pchKey, char * pchValue, uint32 cchValueSize ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCContentDescriptors( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, EUGCContentDescriptorID * pvecDescriptors, uint32 cMaxEntries ); +S_API bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest( ISteamUGC* self, UGCQueryHandle_t handle ); +S_API bool SteamAPI_ISteamUGC_AddRequiredTag( ISteamUGC* self, UGCQueryHandle_t handle, const char * pTagName ); +S_API bool SteamAPI_ISteamUGC_AddRequiredTagGroup( ISteamUGC* self, UGCQueryHandle_t handle, const SteamParamStringArray_t * pTagGroups ); +S_API bool SteamAPI_ISteamUGC_AddExcludedTag( ISteamUGC* self, UGCQueryHandle_t handle, const char * pTagName ); +S_API bool SteamAPI_ISteamUGC_SetReturnOnlyIDs( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnOnlyIDs ); +S_API bool SteamAPI_ISteamUGC_SetReturnKeyValueTags( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnKeyValueTags ); +S_API bool SteamAPI_ISteamUGC_SetReturnLongDescription( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnLongDescription ); +S_API bool SteamAPI_ISteamUGC_SetReturnMetadata( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnMetadata ); +S_API bool SteamAPI_ISteamUGC_SetReturnChildren( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnChildren ); +S_API bool SteamAPI_ISteamUGC_SetReturnAdditionalPreviews( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnAdditionalPreviews ); +S_API bool SteamAPI_ISteamUGC_SetReturnTotalOnly( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnTotalOnly ); +S_API bool SteamAPI_ISteamUGC_SetReturnPlaytimeStats( ISteamUGC* self, UGCQueryHandle_t handle, uint32 unDays ); +S_API bool SteamAPI_ISteamUGC_SetLanguage( ISteamUGC* self, UGCQueryHandle_t handle, const char * pchLanguage ); +S_API bool SteamAPI_ISteamUGC_SetAllowCachedResponse( ISteamUGC* self, UGCQueryHandle_t handle, uint32 unMaxAgeSeconds ); +S_API bool SteamAPI_ISteamUGC_SetCloudFileNameFilter( ISteamUGC* self, UGCQueryHandle_t handle, const char * pMatchCloudFileName ); +S_API bool SteamAPI_ISteamUGC_SetMatchAnyTag( ISteamUGC* self, UGCQueryHandle_t handle, bool bMatchAnyTag ); +S_API bool SteamAPI_ISteamUGC_SetSearchText( ISteamUGC* self, UGCQueryHandle_t handle, const char * pSearchText ); +S_API bool SteamAPI_ISteamUGC_SetRankedByTrendDays( ISteamUGC* self, UGCQueryHandle_t handle, uint32 unDays ); +S_API bool SteamAPI_ISteamUGC_SetTimeCreatedDateRange( ISteamUGC* self, UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ); +S_API bool SteamAPI_ISteamUGC_SetTimeUpdatedDateRange( ISteamUGC* self, UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ); +S_API bool SteamAPI_ISteamUGC_AddRequiredKeyValueTag( ISteamUGC* self, UGCQueryHandle_t handle, const char * pKey, const char * pValue ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RequestUGCDetails( ISteamUGC* self, PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_CreateItem( ISteamUGC* self, AppId_t nConsumerAppId, EWorkshopFileType eFileType ); +S_API UGCUpdateHandle_t SteamAPI_ISteamUGC_StartItemUpdate( ISteamUGC* self, AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID ); +S_API bool SteamAPI_ISteamUGC_SetItemTitle( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchTitle ); +S_API bool SteamAPI_ISteamUGC_SetItemDescription( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchDescription ); +S_API bool SteamAPI_ISteamUGC_SetItemUpdateLanguage( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchLanguage ); +S_API bool SteamAPI_ISteamUGC_SetItemMetadata( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchMetaData ); +S_API bool SteamAPI_ISteamUGC_SetItemVisibility( ISteamUGC* self, UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility ); +S_API bool SteamAPI_ISteamUGC_SetItemTags( ISteamUGC* self, UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t * pTags, bool bAllowAdminTags ); +S_API bool SteamAPI_ISteamUGC_SetItemContent( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszContentFolder ); +S_API bool SteamAPI_ISteamUGC_SetItemPreview( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszPreviewFile ); +S_API bool SteamAPI_ISteamUGC_SetAllowLegacyUpload( ISteamUGC* self, UGCUpdateHandle_t handle, bool bAllowLegacyUpload ); +S_API bool SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags( ISteamUGC* self, UGCUpdateHandle_t handle ); +S_API bool SteamAPI_ISteamUGC_RemoveItemKeyValueTags( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchKey ); +S_API bool SteamAPI_ISteamUGC_AddItemKeyValueTag( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchKey, const char * pchValue ); +S_API bool SteamAPI_ISteamUGC_AddItemPreviewFile( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszPreviewFile, EItemPreviewType type ); +S_API bool SteamAPI_ISteamUGC_AddItemPreviewVideo( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszVideoID ); +S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewFile( ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index, const char * pszPreviewFile ); +S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewVideo( ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index, const char * pszVideoID ); +S_API bool SteamAPI_ISteamUGC_RemoveItemPreview( ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_AddContentDescriptor( ISteamUGC* self, UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ); +S_API bool SteamAPI_ISteamUGC_RemoveContentDescriptor( ISteamUGC* self, UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SubmitItemUpdate( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchChangeNote ); +S_API EItemUpdateStatus SteamAPI_ISteamUGC_GetItemUpdateProgress( ISteamUGC* self, UGCUpdateHandle_t handle, uint64 * punBytesProcessed, uint64 * punBytesTotal ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SetUserItemVote( ISteamUGC* self, PublishedFileId_t nPublishedFileID, bool bVoteUp ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_GetUserItemVote( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_AddItemToFavorites( ISteamUGC* self, AppId_t nAppId, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveItemFromFavorites( ISteamUGC* self, AppId_t nAppId, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SubscribeItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_UnsubscribeItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API uint32 SteamAPI_ISteamUGC_GetNumSubscribedItems( ISteamUGC* self ); +S_API uint32 SteamAPI_ISteamUGC_GetSubscribedItems( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries ); +S_API uint32 SteamAPI_ISteamUGC_GetItemState( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API bool SteamAPI_ISteamUGC_GetItemInstallInfo( ISteamUGC* self, PublishedFileId_t nPublishedFileID, uint64 * punSizeOnDisk, char * pchFolder, uint32 cchFolderSize, uint32 * punTimeStamp ); +S_API bool SteamAPI_ISteamUGC_GetItemDownloadInfo( ISteamUGC* self, PublishedFileId_t nPublishedFileID, uint64 * punBytesDownloaded, uint64 * punBytesTotal ); +S_API bool SteamAPI_ISteamUGC_DownloadItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID, bool bHighPriority ); +S_API bool SteamAPI_ISteamUGC_BInitWorkshopForGameServer( ISteamUGC* self, DepotId_t unWorkshopDepotID, const char * pszFolder ); +S_API void SteamAPI_ISteamUGC_SuspendDownloads( ISteamUGC* self, bool bSuspend ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_StartPlaytimeTracking( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTracking( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems( ISteamUGC* self ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_AddDependency( ISteamUGC* self, PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveDependency( ISteamUGC* self, PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_AddAppDependency( ISteamUGC* self, PublishedFileId_t nPublishedFileID, AppId_t nAppID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveAppDependency( ISteamUGC* self, PublishedFileId_t nPublishedFileID, AppId_t nAppID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_GetAppDependencies( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_DeleteItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API bool SteamAPI_ISteamUGC_ShowWorkshopEULA( ISteamUGC* self ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_GetWorkshopEULAStatus( ISteamUGC* self ); +S_API uint32 SteamAPI_ISteamUGC_GetUserContentDescriptorPreferences( ISteamUGC* self, EUGCContentDescriptorID * pvecDescriptors, uint32 cMaxEntries ); + +// ISteamHTMLSurface + +// A versioned accessor is exported by the library +S_API ISteamHTMLSurface *SteamAPI_SteamHTMLSurface_v005(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamHTMLSurface(), but using this ensures that you are using a matching library. +inline ISteamHTMLSurface *SteamAPI_SteamHTMLSurface() { return SteamAPI_SteamHTMLSurface_v005(); } +S_API bool SteamAPI_ISteamHTMLSurface_Init( ISteamHTMLSurface* self ); +S_API bool SteamAPI_ISteamHTMLSurface_Shutdown( ISteamHTMLSurface* self ); +S_API SteamAPICall_t SteamAPI_ISteamHTMLSurface_CreateBrowser( ISteamHTMLSurface* self, const char * pchUserAgent, const char * pchUserCSS ); +S_API void SteamAPI_ISteamHTMLSurface_RemoveBrowser( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_LoadURL( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchURL, const char * pchPostData ); +S_API void SteamAPI_ISteamHTMLSurface_SetSize( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 unWidth, uint32 unHeight ); +S_API void SteamAPI_ISteamHTMLSurface_StopLoad( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_Reload( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_GoBack( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_GoForward( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_AddHeader( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchKey, const char * pchValue ); +S_API void SteamAPI_ISteamHTMLSurface_ExecuteJavascript( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchScript ); +S_API void SteamAPI_ISteamHTMLSurface_MouseUp( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton ); +S_API void SteamAPI_ISteamHTMLSurface_MouseDown( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton ); +S_API void SteamAPI_ISteamHTMLSurface_MouseDoubleClick( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton ); +S_API void SteamAPI_ISteamHTMLSurface_MouseMove( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, int x, int y ); +S_API void SteamAPI_ISteamHTMLSurface_MouseWheel( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, int32 nDelta ); +S_API void SteamAPI_ISteamHTMLSurface_KeyDown( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers, bool bIsSystemKey ); +S_API void SteamAPI_ISteamHTMLSurface_KeyUp( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers ); +S_API void SteamAPI_ISteamHTMLSurface_KeyChar( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers ); +S_API void SteamAPI_ISteamHTMLSurface_SetHorizontalScroll( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll ); +S_API void SteamAPI_ISteamHTMLSurface_SetVerticalScroll( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll ); +S_API void SteamAPI_ISteamHTMLSurface_SetKeyFocus( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bHasKeyFocus ); +S_API void SteamAPI_ISteamHTMLSurface_ViewSource( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_CopyToClipboard( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_PasteFromClipboard( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_Find( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchSearchStr, bool bCurrentlyInFind, bool bReverse ); +S_API void SteamAPI_ISteamHTMLSurface_StopFind( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_GetLinkAtPosition( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, int x, int y ); +S_API void SteamAPI_ISteamHTMLSurface_SetCookie( ISteamHTMLSurface* self, const char * pchHostname, const char * pchKey, const char * pchValue, const char * pchPath, RTime32 nExpires, bool bSecure, bool bHTTPOnly ); +S_API void SteamAPI_ISteamHTMLSurface_SetPageScaleFactor( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY ); +S_API void SteamAPI_ISteamHTMLSurface_SetBackgroundMode( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bBackgroundMode ); +S_API void SteamAPI_ISteamHTMLSurface_SetDPIScalingFactor( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, float flDPIScaling ); +S_API void SteamAPI_ISteamHTMLSurface_OpenDeveloperTools( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_AllowStartRequest( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bAllowed ); +S_API void SteamAPI_ISteamHTMLSurface_JSDialogResponse( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bResult ); +S_API void SteamAPI_ISteamHTMLSurface_FileLoadDialogResponse( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char ** pchSelectedFiles ); + +// ISteamInventory + +// A versioned accessor is exported by the library +S_API ISteamInventory *SteamAPI_SteamInventory_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamInventory(), but using this ensures that you are using a matching library. +inline ISteamInventory *SteamAPI_SteamInventory() { return SteamAPI_SteamInventory_v003(); } + +// A versioned accessor is exported by the library +S_API ISteamInventory *SteamAPI_SteamGameServerInventory_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerInventory(), but using this ensures that you are using a matching library. +inline ISteamInventory *SteamAPI_SteamGameServerInventory() { return SteamAPI_SteamGameServerInventory_v003(); } +S_API EResult SteamAPI_ISteamInventory_GetResultStatus( ISteamInventory* self, SteamInventoryResult_t resultHandle ); +S_API bool SteamAPI_ISteamInventory_GetResultItems( ISteamInventory* self, SteamInventoryResult_t resultHandle, SteamItemDetails_t * pOutItemsArray, uint32 * punOutItemsArraySize ); +S_API bool SteamAPI_ISteamInventory_GetResultItemProperty( ISteamInventory* self, SteamInventoryResult_t resultHandle, uint32 unItemIndex, const char * pchPropertyName, char * pchValueBuffer, uint32 * punValueBufferSizeOut ); +S_API uint32 SteamAPI_ISteamInventory_GetResultTimestamp( ISteamInventory* self, SteamInventoryResult_t resultHandle ); +S_API bool SteamAPI_ISteamInventory_CheckResultSteamID( ISteamInventory* self, SteamInventoryResult_t resultHandle, uint64_steamid steamIDExpected ); +S_API void SteamAPI_ISteamInventory_DestroyResult( ISteamInventory* self, SteamInventoryResult_t resultHandle ); +S_API bool SteamAPI_ISteamInventory_GetAllItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle ); +S_API bool SteamAPI_ISteamInventory_GetItemsByID( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemInstanceID_t * pInstanceIDs, uint32 unCountInstanceIDs ); +S_API bool SteamAPI_ISteamInventory_SerializeResult( ISteamInventory* self, SteamInventoryResult_t resultHandle, void * pOutBuffer, uint32 * punOutBufferSize ); +S_API bool SteamAPI_ISteamInventory_DeserializeResult( ISteamInventory* self, SteamInventoryResult_t * pOutResultHandle, const void * pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE ); +S_API bool SteamAPI_ISteamInventory_GenerateItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, const uint32 * punArrayQuantity, uint32 unArrayLength ); +S_API bool SteamAPI_ISteamInventory_GrantPromoItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle ); +S_API bool SteamAPI_ISteamInventory_AddPromoItem( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemDef_t itemDef ); +S_API bool SteamAPI_ISteamInventory_AddPromoItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, uint32 unArrayLength ); +S_API bool SteamAPI_ISteamInventory_ConsumeItem( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemConsume, uint32 unQuantity ); +S_API bool SteamAPI_ISteamInventory_ExchangeItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayGenerate, const uint32 * punArrayGenerateQuantity, uint32 unArrayGenerateLength, const SteamItemInstanceID_t * pArrayDestroy, const uint32 * punArrayDestroyQuantity, uint32 unArrayDestroyLength ); +S_API bool SteamAPI_ISteamInventory_TransferItemQuantity( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemIdSource, uint32 unQuantity, SteamItemInstanceID_t itemIdDest ); +S_API void SteamAPI_ISteamInventory_SendItemDropHeartbeat( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_TriggerItemDrop( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemDef_t dropListDefinition ); +S_API bool SteamAPI_ISteamInventory_TradeItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, uint64_steamid steamIDTradePartner, const SteamItemInstanceID_t * pArrayGive, const uint32 * pArrayGiveQuantity, uint32 nArrayGiveLength, const SteamItemInstanceID_t * pArrayGet, const uint32 * pArrayGetQuantity, uint32 nArrayGetLength ); +S_API bool SteamAPI_ISteamInventory_LoadItemDefinitions( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_GetItemDefinitionIDs( ISteamInventory* self, SteamItemDef_t * pItemDefIDs, uint32 * punItemDefIDsArraySize ); +S_API bool SteamAPI_ISteamInventory_GetItemDefinitionProperty( ISteamInventory* self, SteamItemDef_t iDefinition, const char * pchPropertyName, char * pchValueBuffer, uint32 * punValueBufferSizeOut ); +S_API SteamAPICall_t SteamAPI_ISteamInventory_RequestEligiblePromoItemDefinitionsIDs( ISteamInventory* self, uint64_steamid steamID ); +S_API bool SteamAPI_ISteamInventory_GetEligiblePromoItemDefinitionIDs( ISteamInventory* self, uint64_steamid steamID, SteamItemDef_t * pItemDefIDs, uint32 * punItemDefIDsArraySize ); +S_API SteamAPICall_t SteamAPI_ISteamInventory_StartPurchase( ISteamInventory* self, const SteamItemDef_t * pArrayItemDefs, const uint32 * punArrayQuantity, uint32 unArrayLength ); +S_API SteamAPICall_t SteamAPI_ISteamInventory_RequestPrices( ISteamInventory* self ); +S_API uint32 SteamAPI_ISteamInventory_GetNumItemsWithPrices( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_GetItemsWithPrices( ISteamInventory* self, SteamItemDef_t * pArrayItemDefs, uint64 * pCurrentPrices, uint64 * pBasePrices, uint32 unArrayLength ); +S_API bool SteamAPI_ISteamInventory_GetItemPrice( ISteamInventory* self, SteamItemDef_t iDefinition, uint64 * pCurrentPrice, uint64 * pBasePrice ); +S_API SteamInventoryUpdateHandle_t SteamAPI_ISteamInventory_StartUpdateProperties( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_RemoveProperty( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName ); +S_API bool SteamAPI_ISteamInventory_SetPropertyString( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, const char * pchPropertyValue ); +S_API bool SteamAPI_ISteamInventory_SetPropertyBool( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, bool bValue ); +S_API bool SteamAPI_ISteamInventory_SetPropertyInt64( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, int64 nValue ); +S_API bool SteamAPI_ISteamInventory_SetPropertyFloat( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, float flValue ); +S_API bool SteamAPI_ISteamInventory_SubmitUpdateProperties( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamInventoryResult_t * pResultHandle ); +S_API bool SteamAPI_ISteamInventory_InspectItem( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const char * pchItemToken ); + +// ISteamVideo + +// A versioned accessor is exported by the library +S_API ISteamVideo *SteamAPI_SteamVideo_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamVideo(), but using this ensures that you are using a matching library. +inline ISteamVideo *SteamAPI_SteamVideo() { return SteamAPI_SteamVideo_v002(); } +S_API void SteamAPI_ISteamVideo_GetVideoURL( ISteamVideo* self, AppId_t unVideoAppID ); +S_API bool SteamAPI_ISteamVideo_IsBroadcasting( ISteamVideo* self, int * pnNumViewers ); +S_API void SteamAPI_ISteamVideo_GetOPFSettings( ISteamVideo* self, AppId_t unVideoAppID ); +S_API bool SteamAPI_ISteamVideo_GetOPFStringForApp( ISteamVideo* self, AppId_t unVideoAppID, char * pchBuffer, int32 * pnBufferSize ); + +// ISteamParentalSettings + +// A versioned accessor is exported by the library +S_API ISteamParentalSettings *SteamAPI_SteamParentalSettings_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamParentalSettings(), but using this ensures that you are using a matching library. +inline ISteamParentalSettings *SteamAPI_SteamParentalSettings() { return SteamAPI_SteamParentalSettings_v001(); } +S_API bool SteamAPI_ISteamParentalSettings_BIsParentalLockEnabled( ISteamParentalSettings* self ); +S_API bool SteamAPI_ISteamParentalSettings_BIsParentalLockLocked( ISteamParentalSettings* self ); +S_API bool SteamAPI_ISteamParentalSettings_BIsAppBlocked( ISteamParentalSettings* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamParentalSettings_BIsAppInBlockList( ISteamParentalSettings* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamParentalSettings_BIsFeatureBlocked( ISteamParentalSettings* self, EParentalFeature eFeature ); +S_API bool SteamAPI_ISteamParentalSettings_BIsFeatureInBlockList( ISteamParentalSettings* self, EParentalFeature eFeature ); + +// ISteamRemotePlay + +// A versioned accessor is exported by the library +S_API ISteamRemotePlay *SteamAPI_SteamRemotePlay_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamRemotePlay(), but using this ensures that you are using a matching library. +inline ISteamRemotePlay *SteamAPI_SteamRemotePlay() { return SteamAPI_SteamRemotePlay_v002(); } +S_API uint32 SteamAPI_ISteamRemotePlay_GetSessionCount( ISteamRemotePlay* self ); +S_API RemotePlaySessionID_t SteamAPI_ISteamRemotePlay_GetSessionID( ISteamRemotePlay* self, int iSessionIndex ); +S_API uint64_steamid SteamAPI_ISteamRemotePlay_GetSessionSteamID( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API const char * SteamAPI_ISteamRemotePlay_GetSessionClientName( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API ESteamDeviceFormFactor SteamAPI_ISteamRemotePlay_GetSessionClientFormFactor( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API bool SteamAPI_ISteamRemotePlay_BGetSessionClientResolution( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID, int * pnResolutionX, int * pnResolutionY ); +S_API bool SteamAPI_ISteamRemotePlay_BStartRemotePlayTogether( ISteamRemotePlay* self, bool bShowOverlay ); +S_API bool SteamAPI_ISteamRemotePlay_BSendRemotePlayTogetherInvite( ISteamRemotePlay* self, uint64_steamid steamIDFriend ); + +// ISteamNetworkingMessages + +// A versioned accessor is exported by the library +S_API ISteamNetworkingMessages *SteamAPI_SteamNetworkingMessages_SteamAPI_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworkingMessages_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingMessages *SteamAPI_SteamNetworkingMessages_SteamAPI() { return SteamAPI_SteamNetworkingMessages_SteamAPI_v002(); } + +// A versioned accessor is exported by the library +S_API ISteamNetworkingMessages *SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerNetworkingMessages_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingMessages *SteamAPI_SteamGameServerNetworkingMessages_SteamAPI() { return SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002(); } +S_API EResult SteamAPI_ISteamNetworkingMessages_SendMessageToUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, const void * pubData, uint32 cubData, int nSendFlags, int nRemoteChannel ); +S_API int SteamAPI_ISteamNetworkingMessages_ReceiveMessagesOnChannel( ISteamNetworkingMessages* self, int nLocalChannel, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API bool SteamAPI_ISteamNetworkingMessages_AcceptSessionWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote ); +S_API bool SteamAPI_ISteamNetworkingMessages_CloseSessionWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote ); +S_API bool SteamAPI_ISteamNetworkingMessages_CloseChannelWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, int nLocalChannel ); +S_API ESteamNetworkingConnectionState SteamAPI_ISteamNetworkingMessages_GetSessionConnectionInfo( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, SteamNetConnectionInfo_t * pConnectionInfo, SteamNetConnectionRealTimeStatus_t * pQuickStatus ); + +// ISteamNetworkingSockets + +// A versioned accessor is exported by the library +S_API ISteamNetworkingSockets *SteamAPI_SteamNetworkingSockets_SteamAPI_v012(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworkingSockets_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingSockets *SteamAPI_SteamNetworkingSockets_SteamAPI() { return SteamAPI_SteamNetworkingSockets_SteamAPI_v012(); } + +// A versioned accessor is exported by the library +S_API ISteamNetworkingSockets *SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v012(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerNetworkingSockets_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingSockets *SteamAPI_SteamGameServerNetworkingSockets_SteamAPI() { return SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v012(); } +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketIP( ISteamNetworkingSockets* self, const SteamNetworkingIPAddr & localAddress, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectByIPAddress( ISteamNetworkingSockets* self, const SteamNetworkingIPAddr & address, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2P( ISteamNetworkingSockets* self, int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectP2P( ISteamNetworkingSockets* self, const SteamNetworkingIdentity & identityRemote, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API EResult SteamAPI_ISteamNetworkingSockets_AcceptConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn ); +S_API bool SteamAPI_ISteamNetworkingSockets_CloseConnection( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, int nReason, const char * pszDebug, bool bEnableLinger ); +S_API bool SteamAPI_ISteamNetworkingSockets_CloseListenSocket( ISteamNetworkingSockets* self, HSteamListenSocket hSocket ); +S_API bool SteamAPI_ISteamNetworkingSockets_SetConnectionUserData( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, int64 nUserData ); +S_API int64 SteamAPI_ISteamNetworkingSockets_GetConnectionUserData( ISteamNetworkingSockets* self, HSteamNetConnection hPeer ); +S_API void SteamAPI_ISteamNetworkingSockets_SetConnectionName( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, const char * pszName ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetConnectionName( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, char * pszName, int nMaxLen ); +S_API EResult SteamAPI_ISteamNetworkingSockets_SendMessageToConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn, const void * pData, uint32 cbData, int nSendFlags, int64 * pOutMessageNumber ); +S_API void SteamAPI_ISteamNetworkingSockets_SendMessages( ISteamNetworkingSockets* self, int nMessages, SteamNetworkingMessage_t *const * pMessages, int64 * pOutMessageNumberOrResult ); +S_API EResult SteamAPI_ISteamNetworkingSockets_FlushMessagesOnConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn ); +S_API int SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetConnectionInfo( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetConnectionInfo_t * pInfo ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetConnectionRealTimeStatus( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetConnectionRealTimeStatus_t * pStatus, int nLanes, SteamNetConnectionRealTimeLaneStatus_t * pLanes ); +S_API int SteamAPI_ISteamNetworkingSockets_GetDetailedConnectionStatus( ISteamNetworkingSockets* self, HSteamNetConnection hConn, char * pszBuf, int cbBuf ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetListenSocketAddress( ISteamNetworkingSockets* self, HSteamListenSocket hSocket, SteamNetworkingIPAddr * address ); +S_API bool SteamAPI_ISteamNetworkingSockets_CreateSocketPair( ISteamNetworkingSockets* self, HSteamNetConnection * pOutConnection1, HSteamNetConnection * pOutConnection2, bool bUseNetworkLoopback, const SteamNetworkingIdentity * pIdentity1, const SteamNetworkingIdentity * pIdentity2 ); +S_API EResult SteamAPI_ISteamNetworkingSockets_ConfigureConnectionLanes( ISteamNetworkingSockets* self, HSteamNetConnection hConn, int nNumLanes, const int * pLanePriorities, const uint16 * pLaneWeights ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetIdentity( ISteamNetworkingSockets* self, SteamNetworkingIdentity * pIdentity ); +S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingSockets_InitAuthentication( ISteamNetworkingSockets* self ); +S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingSockets_GetAuthenticationStatus( ISteamNetworkingSockets* self, SteamNetAuthenticationStatus_t * pDetails ); +S_API HSteamNetPollGroup SteamAPI_ISteamNetworkingSockets_CreatePollGroup( ISteamNetworkingSockets* self ); +S_API bool SteamAPI_ISteamNetworkingSockets_DestroyPollGroup( ISteamNetworkingSockets* self, HSteamNetPollGroup hPollGroup ); +S_API bool SteamAPI_ISteamNetworkingSockets_SetConnectionPollGroup( ISteamNetworkingSockets* self, HSteamNetConnection hConn, HSteamNetPollGroup hPollGroup ); +S_API int SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnPollGroup( ISteamNetworkingSockets* self, HSteamNetPollGroup hPollGroup, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API bool SteamAPI_ISteamNetworkingSockets_ReceivedRelayAuthTicket( ISteamNetworkingSockets* self, const void * pvTicket, int cbTicket, SteamDatagramRelayAuthTicket * pOutParsedTicket ); +S_API int SteamAPI_ISteamNetworkingSockets_FindRelayAuthTicketForServer( ISteamNetworkingSockets* self, const SteamNetworkingIdentity & identityGameServer, int nRemoteVirtualPort, SteamDatagramRelayAuthTicket * pOutParsedTicket ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectToHostedDedicatedServer( ISteamNetworkingSockets* self, const SteamNetworkingIdentity & identityTarget, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API uint16 SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPort( ISteamNetworkingSockets* self ); +S_API SteamNetworkingPOPID SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPOPID( ISteamNetworkingSockets* self ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerAddress( ISteamNetworkingSockets* self, SteamDatagramHostedAddress * pRouting ); +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket( ISteamNetworkingSockets* self, int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetGameCoordinatorServerLogin( ISteamNetworkingSockets* self, SteamDatagramGameCoordinatorServerLogin * pLoginInfo, int * pcbSignedBlob, void * pBlob ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectP2PCustomSignaling( ISteamNetworkingSockets* self, ISteamNetworkingConnectionSignaling * pSignaling, const SteamNetworkingIdentity * pPeerIdentity, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API bool SteamAPI_ISteamNetworkingSockets_ReceivedP2PCustomSignal( ISteamNetworkingSockets* self, const void * pMsg, int cbMsg, ISteamNetworkingSignalingRecvContext * pContext ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetCertificateRequest( ISteamNetworkingSockets* self, int * pcbBlob, void * pBlob, SteamNetworkingErrMsg & errMsg ); +S_API bool SteamAPI_ISteamNetworkingSockets_SetCertificate( ISteamNetworkingSockets* self, const void * pCertificate, int cbCertificate, SteamNetworkingErrMsg & errMsg ); +S_API void SteamAPI_ISteamNetworkingSockets_ResetIdentity( ISteamNetworkingSockets* self, const SteamNetworkingIdentity * pIdentity ); +S_API void SteamAPI_ISteamNetworkingSockets_RunCallbacks( ISteamNetworkingSockets* self ); +S_API bool SteamAPI_ISteamNetworkingSockets_BeginAsyncRequestFakeIP( ISteamNetworkingSockets* self, int nNumPorts ); +S_API void SteamAPI_ISteamNetworkingSockets_GetFakeIP( ISteamNetworkingSockets* self, int idxFirstPort, SteamNetworkingFakeIPResult_t * pInfo ); +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2PFakeIP( ISteamNetworkingSockets* self, int idxFakePort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetRemoteFakeIPForConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetworkingIPAddr * pOutAddr ); +S_API ISteamNetworkingFakeUDPPort * SteamAPI_ISteamNetworkingSockets_CreateFakeUDPPort( ISteamNetworkingSockets* self, int idxFakeServerPort ); + +// ISteamNetworkingUtils + +// A versioned accessor is exported by the library +S_API ISteamNetworkingUtils *SteamAPI_SteamNetworkingUtils_SteamAPI_v004(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworkingUtils_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingUtils *SteamAPI_SteamNetworkingUtils_SteamAPI() { return SteamAPI_SteamNetworkingUtils_SteamAPI_v004(); } +S_API SteamNetworkingMessage_t * SteamAPI_ISteamNetworkingUtils_AllocateMessage( ISteamNetworkingUtils* self, int cbAllocateBuffer ); +S_API void SteamAPI_ISteamNetworkingUtils_InitRelayNetworkAccess( ISteamNetworkingUtils* self ); +S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingUtils_GetRelayNetworkStatus( ISteamNetworkingUtils* self, SteamRelayNetworkStatus_t * pDetails ); +S_API float SteamAPI_ISteamNetworkingUtils_GetLocalPingLocation( ISteamNetworkingUtils* self, SteamNetworkPingLocation_t & result ); +S_API int SteamAPI_ISteamNetworkingUtils_EstimatePingTimeBetweenTwoLocations( ISteamNetworkingUtils* self, const SteamNetworkPingLocation_t & location1, const SteamNetworkPingLocation_t & location2 ); +S_API int SteamAPI_ISteamNetworkingUtils_EstimatePingTimeFromLocalHost( ISteamNetworkingUtils* self, const SteamNetworkPingLocation_t & remoteLocation ); +S_API void SteamAPI_ISteamNetworkingUtils_ConvertPingLocationToString( ISteamNetworkingUtils* self, const SteamNetworkPingLocation_t & location, char * pszBuf, int cchBufSize ); +S_API bool SteamAPI_ISteamNetworkingUtils_ParsePingLocationString( ISteamNetworkingUtils* self, const char * pszString, SteamNetworkPingLocation_t & result ); +S_API bool SteamAPI_ISteamNetworkingUtils_CheckPingDataUpToDate( ISteamNetworkingUtils* self, float flMaxAgeSeconds ); +S_API int SteamAPI_ISteamNetworkingUtils_GetPingToDataCenter( ISteamNetworkingUtils* self, SteamNetworkingPOPID popID, SteamNetworkingPOPID * pViaRelayPoP ); +S_API int SteamAPI_ISteamNetworkingUtils_GetDirectPingToPOP( ISteamNetworkingUtils* self, SteamNetworkingPOPID popID ); +S_API int SteamAPI_ISteamNetworkingUtils_GetPOPCount( ISteamNetworkingUtils* self ); +S_API int SteamAPI_ISteamNetworkingUtils_GetPOPList( ISteamNetworkingUtils* self, SteamNetworkingPOPID * list, int nListSz ); +S_API SteamNetworkingMicroseconds SteamAPI_ISteamNetworkingUtils_GetLocalTimestamp( ISteamNetworkingUtils* self ); +S_API void SteamAPI_ISteamNetworkingUtils_SetDebugOutputFunction( ISteamNetworkingUtils* self, ESteamNetworkingSocketsDebugOutputType eDetailLevel, FSteamNetworkingSocketsDebugOutput pfnFunc ); +S_API bool SteamAPI_ISteamNetworkingUtils_IsFakeIPv4( ISteamNetworkingUtils* self, uint32 nIPv4 ); +S_API ESteamNetworkingFakeIPType SteamAPI_ISteamNetworkingUtils_GetIPv4FakeIPType( ISteamNetworkingUtils* self, uint32 nIPv4 ); +S_API EResult SteamAPI_ISteamNetworkingUtils_GetRealIdentityForFakeIP( ISteamNetworkingUtils* self, const SteamNetworkingIPAddr & fakeIP, SteamNetworkingIdentity * pOutRealIdentity ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueInt32( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, int32 val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueFloat( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, float val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueString( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, const char * val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValuePtr( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, void * val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueInt32( ISteamNetworkingUtils* self, HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueFloat( ISteamNetworkingUtils* self, HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueString( ISteamNetworkingUtils* self, HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char * val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetConnectionStatusChanged( ISteamNetworkingUtils* self, FnSteamNetConnectionStatusChanged fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetAuthenticationStatusChanged( ISteamNetworkingUtils* self, FnSteamNetAuthenticationStatusChanged fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamRelayNetworkStatusChanged( ISteamNetworkingUtils* self, FnSteamRelayNetworkStatusChanged fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_FakeIPResult( ISteamNetworkingUtils* self, FnSteamNetworkingFakeIPResult fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionRequest( ISteamNetworkingUtils* self, FnSteamNetworkingMessagesSessionRequest fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionFailed( ISteamNetworkingUtils* self, FnSteamNetworkingMessagesSessionFailed fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConfigValue( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, ESteamNetworkingConfigDataType eDataType, const void * pArg ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConfigValueStruct( ISteamNetworkingUtils* self, const SteamNetworkingConfigValue_t & opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj ); +S_API ESteamNetworkingGetConfigValueResult SteamAPI_ISteamNetworkingUtils_GetConfigValue( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, ESteamNetworkingConfigDataType * pOutDataType, void * pResult, size_t * cbResult ); +S_API const char * SteamAPI_ISteamNetworkingUtils_GetConfigValueInfo( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigDataType * pOutDataType, ESteamNetworkingConfigScope * pOutScope ); +S_API ESteamNetworkingConfigValue SteamAPI_ISteamNetworkingUtils_IterateGenericEditableConfigValues( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eCurrent, bool bEnumerateDevVars ); +S_API void SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ToString( ISteamNetworkingUtils* self, const SteamNetworkingIPAddr & addr, char * buf, uint32 cbBuf, bool bWithPort ); +S_API bool SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ParseString( ISteamNetworkingUtils* self, SteamNetworkingIPAddr * pAddr, const char * pszStr ); +S_API ESteamNetworkingFakeIPType SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_GetFakeIPType( ISteamNetworkingUtils* self, const SteamNetworkingIPAddr & addr ); +S_API void SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ToString( ISteamNetworkingUtils* self, const SteamNetworkingIdentity & identity, char * buf, uint32 cbBuf ); +S_API bool SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString( ISteamNetworkingUtils* self, SteamNetworkingIdentity * pIdentity, const char * pszStr ); + +// ISteamGameServer + +// A versioned accessor is exported by the library +S_API ISteamGameServer *SteamAPI_SteamGameServer_v015(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServer(), but using this ensures that you are using a matching library. +inline ISteamGameServer *SteamAPI_SteamGameServer() { return SteamAPI_SteamGameServer_v015(); } +S_API void SteamAPI_ISteamGameServer_SetProduct( ISteamGameServer* self, const char * pszProduct ); +S_API void SteamAPI_ISteamGameServer_SetGameDescription( ISteamGameServer* self, const char * pszGameDescription ); +S_API void SteamAPI_ISteamGameServer_SetModDir( ISteamGameServer* self, const char * pszModDir ); +S_API void SteamAPI_ISteamGameServer_SetDedicatedServer( ISteamGameServer* self, bool bDedicated ); +S_API void SteamAPI_ISteamGameServer_LogOn( ISteamGameServer* self, const char * pszToken ); +S_API void SteamAPI_ISteamGameServer_LogOnAnonymous( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_LogOff( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_BLoggedOn( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_BSecure( ISteamGameServer* self ); +S_API uint64_steamid SteamAPI_ISteamGameServer_GetSteamID( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_WasRestartRequested( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_SetMaxPlayerCount( ISteamGameServer* self, int cPlayersMax ); +S_API void SteamAPI_ISteamGameServer_SetBotPlayerCount( ISteamGameServer* self, int cBotplayers ); +S_API void SteamAPI_ISteamGameServer_SetServerName( ISteamGameServer* self, const char * pszServerName ); +S_API void SteamAPI_ISteamGameServer_SetMapName( ISteamGameServer* self, const char * pszMapName ); +S_API void SteamAPI_ISteamGameServer_SetPasswordProtected( ISteamGameServer* self, bool bPasswordProtected ); +S_API void SteamAPI_ISteamGameServer_SetSpectatorPort( ISteamGameServer* self, uint16 unSpectatorPort ); +S_API void SteamAPI_ISteamGameServer_SetSpectatorServerName( ISteamGameServer* self, const char * pszSpectatorServerName ); +S_API void SteamAPI_ISteamGameServer_ClearAllKeyValues( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_SetKeyValue( ISteamGameServer* self, const char * pKey, const char * pValue ); +S_API void SteamAPI_ISteamGameServer_SetGameTags( ISteamGameServer* self, const char * pchGameTags ); +S_API void SteamAPI_ISteamGameServer_SetGameData( ISteamGameServer* self, const char * pchGameData ); +S_API void SteamAPI_ISteamGameServer_SetRegion( ISteamGameServer* self, const char * pszRegion ); +S_API void SteamAPI_ISteamGameServer_SetAdvertiseServerActive( ISteamGameServer* self, bool bActive ); +S_API HAuthTicket SteamAPI_ISteamGameServer_GetAuthSessionTicket( ISteamGameServer* self, void * pTicket, int cbMaxTicket, uint32 * pcbTicket, const SteamNetworkingIdentity * pSnid ); +S_API EBeginAuthSessionResult SteamAPI_ISteamGameServer_BeginAuthSession( ISteamGameServer* self, const void * pAuthTicket, int cbAuthTicket, uint64_steamid steamID ); +S_API void SteamAPI_ISteamGameServer_EndAuthSession( ISteamGameServer* self, uint64_steamid steamID ); +S_API void SteamAPI_ISteamGameServer_CancelAuthTicket( ISteamGameServer* self, HAuthTicket hAuthTicket ); +S_API EUserHasLicenseForAppResult SteamAPI_ISteamGameServer_UserHasLicenseForApp( ISteamGameServer* self, uint64_steamid steamID, AppId_t appID ); +S_API bool SteamAPI_ISteamGameServer_RequestUserGroupStatus( ISteamGameServer* self, uint64_steamid steamIDUser, uint64_steamid steamIDGroup ); +S_API void SteamAPI_ISteamGameServer_GetGameplayStats( ISteamGameServer* self ); +S_API SteamAPICall_t SteamAPI_ISteamGameServer_GetServerReputation( ISteamGameServer* self ); +S_API SteamIPAddress_t SteamAPI_ISteamGameServer_GetPublicIP( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_HandleIncomingPacket( ISteamGameServer* self, const void * pData, int cbData, uint32 srcIP, uint16 srcPort ); +S_API int SteamAPI_ISteamGameServer_GetNextOutgoingPacket( ISteamGameServer* self, void * pOut, int cbMaxOut, uint32 * pNetAdr, uint16 * pPort ); +S_API SteamAPICall_t SteamAPI_ISteamGameServer_AssociateWithClan( ISteamGameServer* self, uint64_steamid steamIDClan ); +S_API SteamAPICall_t SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility( ISteamGameServer* self, uint64_steamid steamIDNewPlayer ); +S_API bool SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate_DEPRECATED( ISteamGameServer* self, uint32 unIPClient, const void * pvAuthBlob, uint32 cubAuthBlobSize, CSteamID * pSteamIDUser ); +S_API uint64_steamid SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_SendUserDisconnect_DEPRECATED( ISteamGameServer* self, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamGameServer_BUpdateUserData( ISteamGameServer* self, uint64_steamid steamIDUser, const char * pchPlayerName, uint32 uScore ); + +// ISteamGameServerStats + +// A versioned accessor is exported by the library +S_API ISteamGameServerStats *SteamAPI_SteamGameServerStats_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerStats(), but using this ensures that you are using a matching library. +inline ISteamGameServerStats *SteamAPI_SteamGameServerStats() { return SteamAPI_SteamGameServerStats_v001(); } +S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_RequestUserStats( ISteamGameServerStats* self, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamGameServerStats_GetUserStatInt32( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, int32 * pData ); +S_API bool SteamAPI_ISteamGameServerStats_GetUserStatFloat( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, float * pData ); +S_API bool SteamAPI_ISteamGameServerStats_GetUserAchievement( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, bool * pbAchieved ); +S_API bool SteamAPI_ISteamGameServerStats_SetUserStatInt32( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, int32 nData ); +S_API bool SteamAPI_ISteamGameServerStats_SetUserStatFloat( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, float fData ); +S_API bool SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, float flCountThisSession, double dSessionLength ); +S_API bool SteamAPI_ISteamGameServerStats_SetUserAchievement( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName ); +S_API bool SteamAPI_ISteamGameServerStats_ClearUserAchievement( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName ); +S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_StoreUserStats( ISteamGameServerStats* self, uint64_steamid steamIDUser ); + +// ISteamNetworkingFakeUDPPort +S_API void SteamAPI_ISteamNetworkingFakeUDPPort_DestroyFakeUDPPort( ISteamNetworkingFakeUDPPort* self ); +S_API EResult SteamAPI_ISteamNetworkingFakeUDPPort_SendMessageToFakeIP( ISteamNetworkingFakeUDPPort* self, const SteamNetworkingIPAddr & remoteAddress, const void * pData, uint32 cbData, int nSendFlags ); +S_API int SteamAPI_ISteamNetworkingFakeUDPPort_ReceiveMessages( ISteamNetworkingFakeUDPPort* self, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API void SteamAPI_ISteamNetworkingFakeUDPPort_ScheduleCleanup( ISteamNetworkingFakeUDPPort* self, const SteamNetworkingIPAddr & remoteAddress ); + +// SteamIPAddress_t +S_API bool SteamAPI_SteamIPAddress_t_IsSet( SteamIPAddress_t* self ); + +// MatchMakingKeyValuePair_t +S_API void SteamAPI_MatchMakingKeyValuePair_t_Construct( MatchMakingKeyValuePair_t* self ); + +// servernetadr_t +S_API void SteamAPI_servernetadr_t_Construct( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_Init( servernetadr_t* self, unsigned int ip, uint16 usQueryPort, uint16 usConnectionPort ); +S_API uint16 SteamAPI_servernetadr_t_GetQueryPort( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_SetQueryPort( servernetadr_t* self, uint16 usPort ); +S_API uint16 SteamAPI_servernetadr_t_GetConnectionPort( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_SetConnectionPort( servernetadr_t* self, uint16 usPort ); +S_API uint32 SteamAPI_servernetadr_t_GetIP( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_SetIP( servernetadr_t* self, uint32 unIP ); +S_API const char * SteamAPI_servernetadr_t_GetConnectionAddressString( servernetadr_t* self ); +S_API const char * SteamAPI_servernetadr_t_GetQueryAddressString( servernetadr_t* self ); +S_API bool SteamAPI_servernetadr_t_IsLessThan( servernetadr_t* self, const servernetadr_t & netadr ); +S_API void SteamAPI_servernetadr_t_Assign( servernetadr_t* self, const servernetadr_t & that ); + +// gameserveritem_t +S_API void SteamAPI_gameserveritem_t_Construct( gameserveritem_t* self ); +S_API const char * SteamAPI_gameserveritem_t_GetName( gameserveritem_t* self ); +S_API void SteamAPI_gameserveritem_t_SetName( gameserveritem_t* self, const char * pName ); + +// SteamNetworkingIPAddr +S_API void SteamAPI_SteamNetworkingIPAddr_Clear( SteamNetworkingIPAddr* self ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsIPv6AllZeros( SteamNetworkingIPAddr* self ); +S_API void SteamAPI_SteamNetworkingIPAddr_SetIPv6( SteamNetworkingIPAddr* self, const uint8 * ipv6, uint16 nPort ); +S_API void SteamAPI_SteamNetworkingIPAddr_SetIPv4( SteamNetworkingIPAddr* self, uint32 nIP, uint16 nPort ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsIPv4( SteamNetworkingIPAddr* self ); +S_API uint32 SteamAPI_SteamNetworkingIPAddr_GetIPv4( SteamNetworkingIPAddr* self ); +S_API void SteamAPI_SteamNetworkingIPAddr_SetIPv6LocalHost( SteamNetworkingIPAddr* self, uint16 nPort ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsLocalHost( SteamNetworkingIPAddr* self ); +S_API void SteamAPI_SteamNetworkingIPAddr_ToString( SteamNetworkingIPAddr* self, char * buf, uint32 cbBuf, bool bWithPort ); +S_API bool SteamAPI_SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr* self, const char * pszStr ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsEqualTo( SteamNetworkingIPAddr* self, const SteamNetworkingIPAddr & x ); +S_API ESteamNetworkingFakeIPType SteamAPI_SteamNetworkingIPAddr_GetFakeIPType( SteamNetworkingIPAddr* self ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsFakeIP( SteamNetworkingIPAddr* self ); + +// SteamNetworkingIdentity +S_API void SteamAPI_SteamNetworkingIdentity_Clear( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsInvalid( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetSteamID( SteamNetworkingIdentity* self, uint64_steamid steamID ); +S_API uint64_steamid SteamAPI_SteamNetworkingIdentity_GetSteamID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetSteamID64( SteamNetworkingIdentity* self, uint64 steamID ); +S_API uint64 SteamAPI_SteamNetworkingIdentity_GetSteamID64( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_SetXboxPairwiseID( SteamNetworkingIdentity* self, const char * pszString ); +S_API const char * SteamAPI_SteamNetworkingIdentity_GetXboxPairwiseID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetPSNID( SteamNetworkingIdentity* self, uint64 id ); +S_API uint64 SteamAPI_SteamNetworkingIdentity_GetPSNID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetStadiaID( SteamNetworkingIdentity* self, uint64 id ); +S_API uint64 SteamAPI_SteamNetworkingIdentity_GetStadiaID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetIPAddr( SteamNetworkingIdentity* self, const SteamNetworkingIPAddr & addr ); +S_API const SteamNetworkingIPAddr * SteamAPI_SteamNetworkingIdentity_GetIPAddr( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetIPv4Addr( SteamNetworkingIdentity* self, uint32 nIPv4, uint16 nPort ); +S_API uint32 SteamAPI_SteamNetworkingIdentity_GetIPv4( SteamNetworkingIdentity* self ); +S_API ESteamNetworkingFakeIPType SteamAPI_SteamNetworkingIdentity_GetFakeIPType( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsFakeIP( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetLocalHost( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsLocalHost( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_SetGenericString( SteamNetworkingIdentity* self, const char * pszString ); +S_API const char * SteamAPI_SteamNetworkingIdentity_GetGenericString( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_SetGenericBytes( SteamNetworkingIdentity* self, const void * data, uint32 cbLen ); +S_API const uint8 * SteamAPI_SteamNetworkingIdentity_GetGenericBytes( SteamNetworkingIdentity* self, int & cbLen ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsEqualTo( SteamNetworkingIdentity* self, const SteamNetworkingIdentity & x ); +S_API void SteamAPI_SteamNetworkingIdentity_ToString( SteamNetworkingIdentity* self, char * buf, uint32 cbBuf ); +S_API bool SteamAPI_SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity* self, const char * pszStr ); + +// SteamNetworkingMessage_t +S_API void SteamAPI_SteamNetworkingMessage_t_Release( SteamNetworkingMessage_t* self ); + +// SteamNetworkingConfigValue_t +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetInt32( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, int32_t data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetInt64( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, int64_t data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetFloat( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, float data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetPtr( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, void * data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetString( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, const char * data ); + +// SteamDatagramHostedAddress +S_API void SteamAPI_SteamDatagramHostedAddress_Clear( SteamDatagramHostedAddress* self ); +S_API SteamNetworkingPOPID SteamAPI_SteamDatagramHostedAddress_GetPopID( SteamDatagramHostedAddress* self ); +S_API void SteamAPI_SteamDatagramHostedAddress_SetDevAddress( SteamDatagramHostedAddress* self, uint32 nIP, uint16 nPort, SteamNetworkingPOPID popid ); #endif // STEAMAPIFLAT_H - - diff --git a/lib/linux/include/steam/steam_api_internal.h b/lib/linux/include/steam/steam_api_internal.h index ed0423b..e3aa18f 100644 --- a/lib/linux/include/steam/steam_api_internal.h +++ b/lib/linux/include/steam/steam_api_internal.h @@ -1,187 +1,60 @@ -//====== Copyright 1996-2015, Valve Corporation, All rights reserved. ======= +//====== Copyright Valve Corporation, All rights reserved. ==================== // -// Purpose: Internal private Steamworks API declarations and definitions +// Internal implementation details of the steamworks SDK. // -//============================================================================= - -#ifndef STEAM_API_INTERNAL_H -#define STEAM_API_INTERNAL_H - -S_API HSteamUser SteamAPI_GetHSteamUser(); -S_API void * S_CALLTYPE SteamInternal_ContextInit( void *pContextInitData ); -S_API void * S_CALLTYPE SteamInternal_CreateInterface( const char *ver ); - -#if !defined( STEAM_API_EXPORTS ) - -inline void S_CALLTYPE SteamInternal_OnContextInit( void* p ) -{ - ((CSteamAPIContext*)p)->Clear(); - if ( SteamAPI_GetHSteamPipe() ) - ((CSteamAPIContext*)p)->Init(); -} -inline CSteamAPIContext& SteamInternal_ModuleContext() -{ - // SteamInternal_ContextInit takes a base pointer for the equivalent of - // struct { void (*pFn)(void* pCtx); uintp counter; CSteamAPIContext ctx; } - // Do not change layout of 2 + sizeof... or add non-pointer aligned data! - // NOTE: declaring "static CSteamAPIConext" creates a large function - // which queries the initialization status of the object. We know that - // it is pointer-aligned and fully memset with zeros, so just alias a - // static buffer of the appropriate size and call it a CSteamAPIContext. - static void* s_CallbackCounterAndContext[ 2 + sizeof(CSteamAPIContext)/sizeof(void*) ] = { (void*)&SteamInternal_OnContextInit, 0 }; - return *(CSteamAPIContext*)SteamInternal_ContextInit( s_CallbackCounterAndContext ); -} - -inline ISteamClient *SteamClient() { return SteamInternal_ModuleContext().SteamClient(); } -inline ISteamUser *SteamUser() { return SteamInternal_ModuleContext().SteamUser(); } -inline ISteamFriends *SteamFriends() { return SteamInternal_ModuleContext().SteamFriends(); } -inline ISteamUtils *SteamUtils() { return SteamInternal_ModuleContext().SteamUtils(); } -inline ISteamMatchmaking *SteamMatchmaking() { return SteamInternal_ModuleContext().SteamMatchmaking(); } -inline ISteamUserStats *SteamUserStats() { return SteamInternal_ModuleContext().SteamUserStats(); } -inline ISteamApps *SteamApps() { return SteamInternal_ModuleContext().SteamApps(); } -inline ISteamMatchmakingServers *SteamMatchmakingServers() { return SteamInternal_ModuleContext().SteamMatchmakingServers(); } -inline ISteamNetworking *SteamNetworking() { return SteamInternal_ModuleContext().SteamNetworking(); } -inline ISteamRemoteStorage *SteamRemoteStorage() { return SteamInternal_ModuleContext().SteamRemoteStorage(); } -inline ISteamScreenshots *SteamScreenshots() { return SteamInternal_ModuleContext().SteamScreenshots(); } -inline ISteamHTTP *SteamHTTP() { return SteamInternal_ModuleContext().SteamHTTP(); } -inline ISteamUnifiedMessages *SteamUnifiedMessages() { return SteamInternal_ModuleContext().SteamUnifiedMessages(); } -inline ISteamController *SteamController() { return SteamInternal_ModuleContext().SteamController(); } -inline ISteamUGC *SteamUGC() { return SteamInternal_ModuleContext().SteamUGC(); } -inline ISteamAppList *SteamAppList() { return SteamInternal_ModuleContext().SteamAppList(); } -inline ISteamMusic *SteamMusic() { return SteamInternal_ModuleContext().SteamMusic(); } -inline ISteamMusicRemote *SteamMusicRemote() { return SteamInternal_ModuleContext().SteamMusicRemote(); } -inline ISteamHTMLSurface *SteamHTMLSurface() { return SteamInternal_ModuleContext().SteamHTMLSurface(); } -inline ISteamInventory *SteamInventory() { return SteamInternal_ModuleContext().SteamInventory(); } -inline ISteamVideo *SteamVideo() { return SteamInternal_ModuleContext().SteamVideo(); } - -#endif // !defined( STEAM_API_EXPORTS ) - - -inline void CSteamAPIContext::Clear() -{ - m_pSteamClient = NULL; - m_pSteamUser = NULL; - m_pSteamFriends = NULL; - m_pSteamUtils = NULL; - m_pSteamMatchmaking = NULL; - m_pSteamUserStats = NULL; - m_pSteamApps = NULL; - m_pSteamMatchmakingServers = NULL; - m_pSteamNetworking = NULL; - m_pSteamRemoteStorage = NULL; - m_pSteamHTTP = NULL; - m_pSteamScreenshots = NULL; - m_pSteamMusic = NULL; - m_pSteamUnifiedMessages = NULL; - m_pController = NULL; - m_pSteamUGC = NULL; - m_pSteamAppList = NULL; - m_pSteamMusic = NULL; - m_pSteamMusicRemote = NULL; - m_pSteamHTMLSurface = NULL; - m_pSteamInventory = NULL; -} - - -// This function must be declared inline in the header so the module using steam_api.dll gets the version names they want. -inline bool CSteamAPIContext::Init() -{ - HSteamUser hSteamUser = SteamAPI_GetHSteamUser(); - HSteamPipe hSteamPipe = SteamAPI_GetHSteamPipe(); - if ( !hSteamPipe ) - return false; - - m_pSteamClient = (ISteamClient*) SteamInternal_CreateInterface( STEAMCLIENT_INTERFACE_VERSION ); - if ( !m_pSteamClient ) - return false; - - m_pSteamUser = m_pSteamClient->GetISteamUser( hSteamUser, hSteamPipe, STEAMUSER_INTERFACE_VERSION ); - if ( !m_pSteamUser ) - return false; - - m_pSteamFriends = m_pSteamClient->GetISteamFriends( hSteamUser, hSteamPipe, STEAMFRIENDS_INTERFACE_VERSION ); - if ( !m_pSteamFriends ) - return false; - - m_pSteamUtils = m_pSteamClient->GetISteamUtils( hSteamPipe, STEAMUTILS_INTERFACE_VERSION ); - if ( !m_pSteamUtils ) - return false; - - m_pSteamMatchmaking = m_pSteamClient->GetISteamMatchmaking( hSteamUser, hSteamPipe, STEAMMATCHMAKING_INTERFACE_VERSION ); - if ( !m_pSteamMatchmaking ) - return false; - - m_pSteamMatchmakingServers = m_pSteamClient->GetISteamMatchmakingServers( hSteamUser, hSteamPipe, STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION ); - if ( !m_pSteamMatchmakingServers ) - return false; - - m_pSteamUserStats = m_pSteamClient->GetISteamUserStats( hSteamUser, hSteamPipe, STEAMUSERSTATS_INTERFACE_VERSION ); - if ( !m_pSteamUserStats ) - return false; - - m_pSteamApps = m_pSteamClient->GetISteamApps( hSteamUser, hSteamPipe, STEAMAPPS_INTERFACE_VERSION ); - if ( !m_pSteamApps ) - return false; - - m_pSteamNetworking = m_pSteamClient->GetISteamNetworking( hSteamUser, hSteamPipe, STEAMNETWORKING_INTERFACE_VERSION ); - if ( !m_pSteamNetworking ) - return false; - - m_pSteamRemoteStorage = m_pSteamClient->GetISteamRemoteStorage( hSteamUser, hSteamPipe, STEAMREMOTESTORAGE_INTERFACE_VERSION ); - if ( !m_pSteamRemoteStorage ) - return false; - - m_pSteamScreenshots = m_pSteamClient->GetISteamScreenshots( hSteamUser, hSteamPipe, STEAMSCREENSHOTS_INTERFACE_VERSION ); - if ( !m_pSteamScreenshots ) - return false; - - m_pSteamHTTP = m_pSteamClient->GetISteamHTTP( hSteamUser, hSteamPipe, STEAMHTTP_INTERFACE_VERSION ); - if ( !m_pSteamHTTP ) - return false; - - m_pSteamUnifiedMessages = m_pSteamClient->GetISteamUnifiedMessages( hSteamUser, hSteamPipe, STEAMUNIFIEDMESSAGES_INTERFACE_VERSION ); - if ( !m_pSteamUnifiedMessages ) - return false; - - m_pController = m_pSteamClient->GetISteamController( hSteamUser, hSteamPipe, STEAMCONTROLLER_INTERFACE_VERSION ); - if ( !m_pController ) - return false; - - m_pSteamUGC = m_pSteamClient->GetISteamUGC( hSteamUser, hSteamPipe, STEAMUGC_INTERFACE_VERSION ); - if ( !m_pSteamUGC ) - return false; - - m_pSteamAppList = m_pSteamClient->GetISteamAppList( hSteamUser, hSteamPipe, STEAMAPPLIST_INTERFACE_VERSION ); - if ( !m_pSteamAppList ) - return false; - - m_pSteamMusic = m_pSteamClient->GetISteamMusic( hSteamUser, hSteamPipe, STEAMMUSIC_INTERFACE_VERSION ); - if ( !m_pSteamMusic ) - return false; - - m_pSteamMusicRemote = m_pSteamClient->GetISteamMusicRemote( hSteamUser, hSteamPipe, STEAMMUSICREMOTE_INTERFACE_VERSION ); - if ( !m_pSteamMusicRemote ) - return false; - - m_pSteamHTMLSurface = m_pSteamClient->GetISteamHTMLSurface( hSteamUser, hSteamPipe, STEAMHTMLSURFACE_INTERFACE_VERSION ); - if ( !m_pSteamHTMLSurface ) - return false; - - m_pSteamInventory = m_pSteamClient->GetISteamInventory( hSteamUser, hSteamPipe, STEAMINVENTORY_INTERFACE_VERSION ); - if ( !m_pSteamInventory ) - return false; - - m_pSteamVideo = m_pSteamClient->GetISteamVideo( hSteamUser, hSteamPipe, STEAMVIDEO_INTERFACE_VERSION ); - if ( !m_pSteamVideo ) - return false; - - return true; -} - - -//----------------------------------------------------------------------------- -// The following macros are implementation details, not intended for public use +// You should be able to figure out how to use the SDK by reading +// steam_api_common.h, and should not need to understand anything in here. +// //----------------------------------------------------------------------------- + +#ifdef STEAM_CALLBACK_BEGIN +#error "This file should only be included from steam_api_common.h" +#endif + +#include <string.h> + +// Internal functions used to locate/create interfaces +S_API HSteamPipe S_CALLTYPE SteamAPI_GetHSteamPipe(); +S_API HSteamUser S_CALLTYPE SteamAPI_GetHSteamUser(); +S_API HSteamPipe S_CALLTYPE SteamGameServer_GetHSteamPipe(); +S_API HSteamUser S_CALLTYPE SteamGameServer_GetHSteamUser(); +S_API void *S_CALLTYPE SteamInternal_ContextInit( void *pContextInitData ); +S_API void *S_CALLTYPE SteamInternal_CreateInterface( const char *ver ); +S_API void *S_CALLTYPE SteamInternal_FindOrCreateUserInterface( HSteamUser hSteamUser, const char *pszVersion ); +S_API void *S_CALLTYPE SteamInternal_FindOrCreateGameServerInterface( HSteamUser hSteamUser, const char *pszVersion ); + +// Macro used to define a type-safe accessor that will always return the version +// of the interface of the *header file* you are compiling with! We also bounce +// through a safety function that checks for interfaces being created or destroyed. +// +// SteamInternal_ContextInit takes a base pointer for the equivalent of +// struct { void (*pFn)(void* pCtx); uintptr_t counter; void *ptr; } +// Do not change layout or add non-pointer aligned data! +#define STEAM_DEFINE_INTERFACE_ACCESSOR( type, name, expr, kind, version ) \ + inline void S_CALLTYPE SteamInternal_Init_ ## name( type *p ) { *p = (type)( expr ); } \ + STEAM_CLANG_ATTR( "interface_accessor_kind:" kind ";interface_accessor_version:" version ";" ) \ + inline type name() { \ + static void* s_CallbackCounterAndContext[ 3 ] = { (void*)&SteamInternal_Init_ ## name, 0, 0 }; \ + return *(type*)SteamInternal_ContextInit( s_CallbackCounterAndContext ); \ + } + +#define STEAM_DEFINE_USER_INTERFACE_ACCESSOR( type, name, version ) \ + STEAM_DEFINE_INTERFACE_ACCESSOR( type, name, SteamInternal_FindOrCreateUserInterface( SteamAPI_GetHSteamUser(), version ), "user", version ) +#define STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( type, name, version ) \ + STEAM_DEFINE_INTERFACE_ACCESSOR( type, name, SteamInternal_FindOrCreateGameServerInterface( SteamGameServer_GetHSteamUser(), version ), "gameserver", version ) + +// +// Internal stuff used for the standard, higher-level callback mechanism +// + +// Internal functions used by the utility CCallback objects to receive callbacks +S_API void S_CALLTYPE SteamAPI_RegisterCallback( class CCallbackBase *pCallback, int iCallback ); +S_API void S_CALLTYPE SteamAPI_UnregisterCallback( class CCallbackBase *pCallback ); +// Internal functions used by the utility CCallResult objects to receive async call results +S_API void S_CALLTYPE SteamAPI_RegisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); +S_API void S_CALLTYPE SteamAPI_UnregisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); + +#define _STEAM_CALLBACK_OFFSETOF( type, member ) ( (size_t)( (char *)&( (type *)0 )->member ) ) #define _STEAM_CALLBACK_AUTO_HOOK( thisclass, func, param ) #define _STEAM_CALLBACK_HELPER( _1, _2, SELECTED, ... ) _STEAM_CALLBACK_##SELECTED #define _STEAM_CALLBACK_SELECT( X, Y ) _STEAM_CALLBACK_HELPER X Y @@ -190,25 +63,24 @@ inline bool CSteamAPIContext::Init() CCallbackInternal_ ## func () { extra_code SteamAPI_RegisterCallback( this, param::k_iCallback ); } \ CCallbackInternal_ ## func ( const CCallbackInternal_ ## func & ) { extra_code SteamAPI_RegisterCallback( this, param::k_iCallback ); } \ CCallbackInternal_ ## func & operator=( const CCallbackInternal_ ## func & ) { return *this; } \ - private: virtual void Run( void *pvParam ) { _STEAM_CALLBACK_AUTO_HOOK( thisclass, func, param ) \ - thisclass *pOuter = reinterpret_cast<thisclass*>( reinterpret_cast<char*>(this) - offsetof( thisclass, m_steamcallback_ ## func ) ); \ + private: virtual void Run( void *pvParam ) S_OVERRIDE { _STEAM_CALLBACK_AUTO_HOOK( thisclass, func, param ) \ + thisclass *pOuter = reinterpret_cast<thisclass*>( reinterpret_cast<char*>(this) - _STEAM_CALLBACK_OFFSETOF( thisclass, m_steamcallback_ ## func ) ); \ pOuter->func( reinterpret_cast<param*>( pvParam ) ); \ } \ } m_steamcallback_ ## func ; void func( param *pParam ) #define _STEAM_CALLBACK_4( _, thisclass, func, param, var ) \ CCallback< thisclass, param > var; void func( param *pParam ) +#define _STEAM_CALLBACK_GS( _, thisclass, func, param, var ) \ + CCallback< thisclass, param, true > var; void func( param *pParam ) +#ifndef API_GEN -//----------------------------------------------------------------------------- -// Purpose: maps a steam async call result to a class member function -// template params: T = local class, P = parameter struct -//----------------------------------------------------------------------------- template< class T, class P > inline CCallResult<T, P>::CCallResult() { m_hAPICall = k_uAPICallInvalid; - m_pObj = NULL; - m_Func = NULL; + m_pObj = nullptr; + m_Func = nullptr; m_iCallback = P::k_iCallback; } @@ -240,7 +112,6 @@ inline void CCallResult<T, P>::Cancel() SteamAPI_UnregisterCallResult( this, m_hAPICall ); m_hAPICall = k_uAPICallInvalid; } - } template< class T, class P > @@ -266,15 +137,9 @@ inline void CCallResult<T, P>::Run( void *pvParam, bool bIOFailure, SteamAPICall } } - -//----------------------------------------------------------------------------- -// Purpose: maps a steam callback to a class member function -// template params: T = local class, P = parameter struct, -// bGameserver = listen for gameserver callbacks instead of client callbacks -//----------------------------------------------------------------------------- template< class T, class P, bool bGameserver > inline CCallback< T, P, bGameserver >::CCallback( T *pObj, func_t func ) - : m_pObj( NULL ), m_Func( NULL ) + : m_pObj( nullptr ), m_Func( nullptr ) { if ( bGameserver ) { @@ -311,17 +176,221 @@ inline void CCallback< T, P, bGameserver >::Run( void *pvParam ) (m_pObj->*m_Func)((P *)pvParam); } +#endif // #ifndef API_GEN -#if defined(USE_BREAKPAD_HANDLER) || defined(STEAM_API_EXPORTS) -// this should be called before the game initialized the steam APIs -// pchDate should be of the format "Mmm dd yyyy" (such as from the __ DATE __ macro ) -// pchTime should be of the format "hh:mm:ss" (such as from the __ TIME __ macro ) -// bFullMemoryDumps (Win32 only) -- writes out a uuid-full.dmp in the client/dumps folder -// pvContext-- can be NULL, will be the void * context passed into m_pfnPreMinidumpCallback -// PFNPreMinidumpCallback m_pfnPreMinidumpCallback -- optional callback which occurs just before a .dmp file is written during a crash. Applications can hook this to allow adding additional information into the .dmp comment stream. -S_API void S_CALLTYPE SteamAPI_UseBreakpadCrashHandler( char const *pchVersion, char const *pchDate, char const *pchTime, bool bFullMemoryDumps, void *pvContext, PFNPreMinidumpCallback m_pfnPreMinidumpCallback ); -S_API void S_CALLTYPE SteamAPI_SetBreakpadAppID( uint32 unAppID ); +// structure that contains client callback data +// see callbacks documentation for more details +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +/// Internal structure used in manual callback dispatch +struct CallbackMsg_t +{ + HSteamUser m_hSteamUser; // Specific user to whom this callback applies. + int m_iCallback; // Callback identifier. (Corresponds to the k_iCallback enum in the callback structure.) + uint8 *m_pubParam; // Points to the callback structure + int m_cubParam; // Size of the data pointed to by m_pubParam +}; +#pragma pack( pop ) + +// Macros to define steam callback structures. Used internally for debugging +#ifdef STEAM_CALLBACK_INSPECTION_ENABLED + #include "../../clientdll/steam_api_callback_inspection.h" +#else + #define STEAM_CALLBACK_BEGIN( callbackname, callbackid ) struct callbackname { enum { k_iCallback = callbackid }; + #define STEAM_CALLBACK_MEMBER( varidx, vartype, varname ) vartype varname ; + #define STEAM_CALLBACK_MEMBER_ARRAY( varidx, vartype, varname, varcount ) vartype varname [ varcount ]; + #define STEAM_CALLBACK_END(nArgs) }; #endif +// Forward declare all of the Steam interfaces. (Do we really need to do this?) +class ISteamClient; +class ISteamUser; +class ISteamGameServer; +class ISteamFriends; +class ISteamUtils; +class ISteamMatchmaking; +class ISteamContentServer; +class ISteamMatchmakingServers; +class ISteamUserStats; +class ISteamApps; +class ISteamNetworking; +class ISteamRemoteStorage; +class ISteamScreenshots; +class ISteamMusic; +class ISteamMusicRemote; +class ISteamGameServerStats; +class ISteamPS3OverlayRender; +class ISteamHTTP; +class ISteamController; +class ISteamUGC; +class ISteamHTMLSurface; +class ISteamInventory; +class ISteamVideo; +class ISteamParentalSettings; +class ISteamGameSearch; +class ISteamInput; +class ISteamParties; +class ISteamRemotePlay; + +// Forward declare types +struct SteamNetworkingIdentity; + +//----------------------------------------------------------------------------- +// Purpose: Base values for callback identifiers, each callback must +// have a unique ID. +//----------------------------------------------------------------------------- +enum { k_iSteamUserCallbacks = 100 }; +enum { k_iSteamGameServerCallbacks = 200 }; +enum { k_iSteamFriendsCallbacks = 300 }; +enum { k_iSteamBillingCallbacks = 400 }; +enum { k_iSteamMatchmakingCallbacks = 500 }; +enum { k_iSteamContentServerCallbacks = 600 }; +enum { k_iSteamUtilsCallbacks = 700 }; +enum { k_iSteamAppsCallbacks = 1000 }; +enum { k_iSteamUserStatsCallbacks = 1100 }; +enum { k_iSteamNetworkingCallbacks = 1200 }; +enum { k_iSteamNetworkingSocketsCallbacks = 1220 }; +enum { k_iSteamNetworkingMessagesCallbacks = 1250 }; +enum { k_iSteamNetworkingUtilsCallbacks = 1280 }; +enum { k_iSteamRemoteStorageCallbacks = 1300 }; +enum { k_iSteamGameServerItemsCallbacks = 1500 }; +enum { k_iSteamGameCoordinatorCallbacks = 1700 }; +enum { k_iSteamGameServerStatsCallbacks = 1800 }; +enum { k_iSteam2AsyncCallbacks = 1900 }; +enum { k_iSteamGameStatsCallbacks = 2000 }; +enum { k_iSteamHTTPCallbacks = 2100 }; +enum { k_iSteamScreenshotsCallbacks = 2300 }; +// NOTE: 2500-2599 are reserved +enum { k_iSteamStreamLauncherCallbacks = 2600 }; +enum { k_iSteamControllerCallbacks = 2800 }; +enum { k_iSteamUGCCallbacks = 3400 }; +enum { k_iSteamStreamClientCallbacks = 3500 }; +enum { k_iSteamMusicCallbacks = 4000 }; +enum { k_iSteamMusicRemoteCallbacks = 4100 }; +enum { k_iSteamGameNotificationCallbacks = 4400 }; +enum { k_iSteamHTMLSurfaceCallbacks = 4500 }; +enum { k_iSteamVideoCallbacks = 4600 }; +enum { k_iSteamInventoryCallbacks = 4700 }; +enum { k_ISteamParentalSettingsCallbacks = 5000 }; +enum { k_iSteamGameSearchCallbacks = 5200 }; +enum { k_iSteamPartiesCallbacks = 5300 }; +enum { k_iSteamSTARCallbacks = 5500 }; +enum { k_iSteamRemotePlayCallbacks = 5700 }; +enum { k_iSteamChatCallbacks = 5900 }; +// NOTE: Internal "IClientXxx" callback IDs go in clientenums.h + +// Macros used to annotate various Steamworks interfaces to generate the +// flat API +#ifdef API_GEN +# define STEAM_CLANG_ATTR(ATTR) __attribute__((annotate( ATTR ))) +#else +# define STEAM_CLANG_ATTR(ATTR) +#endif + +#define STEAM_OUT_STRUCT() STEAM_CLANG_ATTR( "out_struct: ;" ) +#define STEAM_OUT_STRING() STEAM_CLANG_ATTR( "out_string: ;" ) +#define STEAM_OUT_ARRAY_CALL(COUNTER,FUNCTION,PARAMS) STEAM_CLANG_ATTR( "out_array_call:" #COUNTER "," #FUNCTION "," #PARAMS ";" ) +#define STEAM_OUT_ARRAY_COUNT(COUNTER, DESC) STEAM_CLANG_ATTR( "out_array_count:" #COUNTER ";desc:" #DESC ) +#define STEAM_ARRAY_COUNT(COUNTER) STEAM_CLANG_ATTR( "array_count:" #COUNTER ";" ) +#define STEAM_ARRAY_COUNT_D(COUNTER, DESC) STEAM_CLANG_ATTR( "array_count:" #COUNTER ";desc:" #DESC ) +#define STEAM_BUFFER_COUNT(COUNTER) STEAM_CLANG_ATTR( "buffer_count:" #COUNTER ";" ) +#define STEAM_OUT_BUFFER_COUNT(COUNTER) STEAM_CLANG_ATTR( "out_buffer_count:" #COUNTER ";" ) +#define STEAM_OUT_STRING_COUNT(COUNTER) STEAM_CLANG_ATTR( "out_string_count:" #COUNTER ";" ) +#define STEAM_DESC(DESC) STEAM_CLANG_ATTR("desc:" #DESC ";") +#define STEAM_CALL_RESULT(RESULT_TYPE) STEAM_CLANG_ATTR("callresult:" #RESULT_TYPE ";") +#define STEAM_CALL_BACK(RESULT_TYPE) STEAM_CLANG_ATTR("callback:" #RESULT_TYPE ";") +#define STEAM_FLAT_NAME(NAME) STEAM_CLANG_ATTR("flat_name:" #NAME ";") + +// CSteamAPIContext encapsulates the Steamworks API global accessors into +// a single object. +// +// DEPRECATED: Used the global interface accessors instead! +// +// This will be removed in a future iteration of the SDK +class CSteamAPIContext +{ +public: + CSteamAPIContext() { Clear(); } + inline void Clear() { memset( this, 0, sizeof(*this) ); } + inline bool Init(); // NOTE: This is defined in steam_api.h, to avoid this file having to include everything + ISteamClient* SteamClient() const { return m_pSteamClient; } + ISteamUser* SteamUser() const { return m_pSteamUser; } + ISteamFriends* SteamFriends() const { return m_pSteamFriends; } + ISteamUtils* SteamUtils() const { return m_pSteamUtils; } + ISteamMatchmaking* SteamMatchmaking() const { return m_pSteamMatchmaking; } + ISteamGameSearch* SteamGameSearch() const { return m_pSteamGameSearch; } + ISteamUserStats* SteamUserStats() const { return m_pSteamUserStats; } + ISteamApps* SteamApps() const { return m_pSteamApps; } + ISteamMatchmakingServers* SteamMatchmakingServers() const { return m_pSteamMatchmakingServers; } + ISteamNetworking* SteamNetworking() const { return m_pSteamNetworking; } + ISteamRemoteStorage* SteamRemoteStorage() const { return m_pSteamRemoteStorage; } + ISteamScreenshots* SteamScreenshots() const { return m_pSteamScreenshots; } + ISteamHTTP* SteamHTTP() const { return m_pSteamHTTP; } + ISteamController* SteamController() const { return m_pController; } + ISteamUGC* SteamUGC() const { return m_pSteamUGC; } + ISteamMusic* SteamMusic() const { return m_pSteamMusic; } + ISteamMusicRemote* SteamMusicRemote() const { return m_pSteamMusicRemote; } + ISteamHTMLSurface* SteamHTMLSurface() const { return m_pSteamHTMLSurface; } + ISteamInventory* SteamInventory() const { return m_pSteamInventory; } + ISteamVideo* SteamVideo() const { return m_pSteamVideo; } + ISteamParentalSettings* SteamParentalSettings() const { return m_pSteamParentalSettings; } + ISteamInput* SteamInput() const { return m_pSteamInput; } +private: + ISteamClient *m_pSteamClient; + ISteamUser *m_pSteamUser; + ISteamFriends *m_pSteamFriends; + ISteamUtils *m_pSteamUtils; + ISteamMatchmaking *m_pSteamMatchmaking; + ISteamGameSearch *m_pSteamGameSearch; + ISteamUserStats *m_pSteamUserStats; + ISteamApps *m_pSteamApps; + ISteamMatchmakingServers *m_pSteamMatchmakingServers; + ISteamNetworking *m_pSteamNetworking; + ISteamRemoteStorage *m_pSteamRemoteStorage; + ISteamScreenshots *m_pSteamScreenshots; + ISteamHTTP *m_pSteamHTTP; + ISteamController *m_pController; + ISteamUGC *m_pSteamUGC; + ISteamMusic *m_pSteamMusic; + ISteamMusicRemote *m_pSteamMusicRemote; + ISteamHTMLSurface *m_pSteamHTMLSurface; + ISteamInventory *m_pSteamInventory; + ISteamVideo *m_pSteamVideo; + ISteamParentalSettings *m_pSteamParentalSettings; + ISteamInput *m_pSteamInput; +}; + +class CSteamGameServerAPIContext +{ +public: + CSteamGameServerAPIContext() { Clear(); } + inline void Clear() { memset( this, 0, sizeof(*this) ); } + inline bool Init(); // NOTE: This is defined in steam_gameserver.h, to avoid this file having to include everything + + ISteamClient *SteamClient() const { return m_pSteamClient; } + ISteamGameServer *SteamGameServer() const { return m_pSteamGameServer; } + ISteamUtils *SteamGameServerUtils() const { return m_pSteamGameServerUtils; } + ISteamNetworking *SteamGameServerNetworking() const { return m_pSteamGameServerNetworking; } + ISteamGameServerStats *SteamGameServerStats() const { return m_pSteamGameServerStats; } + ISteamHTTP *SteamHTTP() const { return m_pSteamHTTP; } + ISteamInventory *SteamInventory() const { return m_pSteamInventory; } + ISteamUGC *SteamUGC() const { return m_pSteamUGC; } + +private: + ISteamClient *m_pSteamClient; + ISteamGameServer *m_pSteamGameServer; + ISteamUtils *m_pSteamGameServerUtils; + ISteamNetworking *m_pSteamGameServerNetworking; + ISteamGameServerStats *m_pSteamGameServerStats; + ISteamHTTP *m_pSteamHTTP; + ISteamInventory *m_pSteamInventory; + ISteamUGC *m_pSteamUGC; +}; + -#endif // STEAM_API_INTERNAL_H diff --git a/lib/linux/include/steam/steam_api_interop.cs b/lib/linux/include/steam/steam_api_interop.cs deleted file mode 100644 index f7a6775..0000000 --- a/lib/linux/include/steam/steam_api_interop.cs +++ /dev/null @@ -1,10470 +0,0 @@ -//====== Copyright 1996-2016, Valve Corporation, All rights reserved. ======= -// -// Purpose: This file contains C#/managed code bindings for the SteamAPI interfaces -// This file is auto-generated, do not edit it. -// -//============================================================================= - -using System; -using System.Runtime.InteropServices; -using Valve.Steamworks; -using Valve.Interop; - -namespace Valve.Interop -{ - -public class NativeEntrypoints -{ - - -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_CreateSteamPipe")] -internal static extern uint SteamAPI_ISteamClient_CreateSteamPipe(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_BReleaseSteamPipe")] -internal static extern bool SteamAPI_ISteamClient_BReleaseSteamPipe(IntPtr instancePtr, uint hSteamPipe); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_ConnectToGlobalUser")] -internal static extern uint SteamAPI_ISteamClient_ConnectToGlobalUser(IntPtr instancePtr, uint hSteamPipe); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_CreateLocalUser")] -internal static extern uint SteamAPI_ISteamClient_CreateLocalUser(IntPtr instancePtr, ref uint phSteamPipe, uint eAccountType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_ReleaseUser")] -internal static extern void SteamAPI_ISteamClient_ReleaseUser(IntPtr instancePtr, uint hSteamPipe, uint hUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUser")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUser(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamGameServer")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamGameServer(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_SetLocalIPBinding")] -internal static extern void SteamAPI_ISteamClient_SetLocalIPBinding(IntPtr instancePtr, uint unIP, char usPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamFriends")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamFriends(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUtils")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUtils(IntPtr instancePtr, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamMatchmaking")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamMatchmaking(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamMatchmakingServers")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamMatchmakingServers(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamGenericInterface")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamGenericInterface(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUserStats")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUserStats(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamGameServerStats")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamGameServerStats(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamApps")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamApps(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamNetworking")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamNetworking(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamRemoteStorage")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamRemoteStorage(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamScreenshots")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamScreenshots(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetIPCCallCount")] -internal static extern uint SteamAPI_ISteamClient_GetIPCCallCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_SetWarningMessageHook")] -internal static extern void SteamAPI_ISteamClient_SetWarningMessageHook(IntPtr instancePtr, IntPtr pFunction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_BShutdownIfAllPipesClosed")] -internal static extern bool SteamAPI_ISteamClient_BShutdownIfAllPipesClosed(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamHTTP")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamHTTP(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUnifiedMessages")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUnifiedMessages(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamController")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamController(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUGC")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUGC(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamAppList")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamAppList(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamMusic")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamMusic(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamMusicRemote")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamMusicRemote(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamHTMLSurface")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamHTMLSurface(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamInventory")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamInventory(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamVideo")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamVideo(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetHSteamUser")] -internal static extern uint SteamAPI_ISteamUser_GetHSteamUser(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BLoggedOn")] -internal static extern bool SteamAPI_ISteamUser_BLoggedOn(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetSteamID")] -internal static extern ulong SteamAPI_ISteamUser_GetSteamID(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_InitiateGameConnection")] -internal static extern int SteamAPI_ISteamUser_InitiateGameConnection(IntPtr instancePtr, IntPtr pAuthBlob, int cbMaxAuthBlob, ulong steamIDGameServer, uint unIPServer, char usPortServer, bool bSecure); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_TerminateGameConnection")] -internal static extern void SteamAPI_ISteamUser_TerminateGameConnection(IntPtr instancePtr, uint unIPServer, char usPortServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_TrackAppUsageEvent")] -internal static extern void SteamAPI_ISteamUser_TrackAppUsageEvent(IntPtr instancePtr, ulong gameID, int eAppUsageEvent, string pchExtraInfo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetUserDataFolder")] -internal static extern bool SteamAPI_ISteamUser_GetUserDataFolder(IntPtr instancePtr, string pchBuffer, int cubBuffer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_StartVoiceRecording")] -internal static extern void SteamAPI_ISteamUser_StartVoiceRecording(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_StopVoiceRecording")] -internal static extern void SteamAPI_ISteamUser_StopVoiceRecording(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetAvailableVoice")] -internal static extern uint SteamAPI_ISteamUser_GetAvailableVoice(IntPtr instancePtr, ref uint pcbCompressed, ref uint pcbUncompressed, uint nUncompressedVoiceDesiredSampleRate); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetVoice")] -internal static extern uint SteamAPI_ISteamUser_GetVoice(IntPtr instancePtr, bool bWantCompressed, IntPtr pDestBuffer, uint cbDestBufferSize, ref uint nBytesWritten, bool bWantUncompressed, IntPtr pUncompressedDestBuffer, uint cbUncompressedDestBufferSize, ref uint nUncompressBytesWritten, uint nUncompressedVoiceDesiredSampleRate); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_DecompressVoice")] -internal static extern uint SteamAPI_ISteamUser_DecompressVoice(IntPtr instancePtr, IntPtr pCompressed, uint cbCompressed, IntPtr pDestBuffer, uint cbDestBufferSize, ref uint nBytesWritten, uint nDesiredSampleRate); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetVoiceOptimalSampleRate")] -internal static extern uint SteamAPI_ISteamUser_GetVoiceOptimalSampleRate(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetAuthSessionTicket")] -internal static extern uint SteamAPI_ISteamUser_GetAuthSessionTicket(IntPtr instancePtr, IntPtr pTicket, int cbMaxTicket, ref uint pcbTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BeginAuthSession")] -internal static extern uint SteamAPI_ISteamUser_BeginAuthSession(IntPtr instancePtr, IntPtr pAuthTicket, int cbAuthTicket, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_EndAuthSession")] -internal static extern void SteamAPI_ISteamUser_EndAuthSession(IntPtr instancePtr, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_CancelAuthTicket")] -internal static extern void SteamAPI_ISteamUser_CancelAuthTicket(IntPtr instancePtr, uint hAuthTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_UserHasLicenseForApp")] -internal static extern uint SteamAPI_ISteamUser_UserHasLicenseForApp(IntPtr instancePtr, ulong steamID, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsBehindNAT")] -internal static extern bool SteamAPI_ISteamUser_BIsBehindNAT(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_AdvertiseGame")] -internal static extern void SteamAPI_ISteamUser_AdvertiseGame(IntPtr instancePtr, ulong steamIDGameServer, uint unIPServer, char usPortServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_RequestEncryptedAppTicket")] -internal static extern ulong SteamAPI_ISteamUser_RequestEncryptedAppTicket(IntPtr instancePtr, IntPtr pDataToInclude, int cbDataToInclude); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetEncryptedAppTicket")] -internal static extern bool SteamAPI_ISteamUser_GetEncryptedAppTicket(IntPtr instancePtr, IntPtr pTicket, int cbMaxTicket, ref uint pcbTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetGameBadgeLevel")] -internal static extern int SteamAPI_ISteamUser_GetGameBadgeLevel(IntPtr instancePtr, int nSeries, bool bFoil); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetPlayerSteamLevel")] -internal static extern int SteamAPI_ISteamUser_GetPlayerSteamLevel(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_RequestStoreAuthURL")] -internal static extern ulong SteamAPI_ISteamUser_RequestStoreAuthURL(IntPtr instancePtr, string pchRedirectURL); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsPhoneVerified")] -internal static extern bool SteamAPI_ISteamUser_BIsPhoneVerified(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsTwoFactorEnabled")] -internal static extern bool SteamAPI_ISteamUser_BIsTwoFactorEnabled(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsPhoneIdentifying")] -internal static extern bool SteamAPI_ISteamUser_BIsPhoneIdentifying(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsPhoneRequiringVerification")] -internal static extern bool SteamAPI_ISteamUser_BIsPhoneRequiringVerification(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetPersonaName")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetPersonaName(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetPersonaName")] -internal static extern ulong SteamAPI_ISteamFriends_SetPersonaName(IntPtr instancePtr, string pchPersonaName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetPersonaState")] -internal static extern uint SteamAPI_ISteamFriends_GetPersonaState(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendCount")] -internal static extern int SteamAPI_ISteamFriends_GetFriendCount(IntPtr instancePtr, int iFriendFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetFriendByIndex(IntPtr instancePtr, int iFriend, int iFriendFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendRelationship")] -internal static extern uint SteamAPI_ISteamFriends_GetFriendRelationship(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendPersonaState")] -internal static extern uint SteamAPI_ISteamFriends_GetFriendPersonaState(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendPersonaName")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendPersonaName(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendGamePlayed")] -internal static extern bool SteamAPI_ISteamFriends_GetFriendGamePlayed(IntPtr instancePtr, ulong steamIDFriend, ref FriendGameInfo_t pFriendGameInfo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendPersonaNameHistory")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendPersonaNameHistory(IntPtr instancePtr, ulong steamIDFriend, int iPersonaName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendSteamLevel")] -internal static extern int SteamAPI_ISteamFriends_GetFriendSteamLevel(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetPlayerNickname")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetPlayerNickname(IntPtr instancePtr, ulong steamIDPlayer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupCount")] -internal static extern int SteamAPI_ISteamFriends_GetFriendsGroupCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex")] -internal static extern char SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex(IntPtr instancePtr, int iFG); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupName")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendsGroupName(IntPtr instancePtr, char friendsGroupID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupMembersCount")] -internal static extern int SteamAPI_ISteamFriends_GetFriendsGroupMembersCount(IntPtr instancePtr, char friendsGroupID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupMembersList")] -internal static extern void SteamAPI_ISteamFriends_GetFriendsGroupMembersList(IntPtr instancePtr, char friendsGroupID, [In, Out] CSteamID[] pOutSteamIDMembers, int nMembersCount); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_HasFriend")] -internal static extern bool SteamAPI_ISteamFriends_HasFriend(IntPtr instancePtr, ulong steamIDFriend, int iFriendFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanCount")] -internal static extern int SteamAPI_ISteamFriends_GetClanCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetClanByIndex(IntPtr instancePtr, int iClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanName")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetClanName(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanTag")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetClanTag(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanActivityCounts")] -internal static extern bool SteamAPI_ISteamFriends_GetClanActivityCounts(IntPtr instancePtr, ulong steamIDClan, ref int pnOnline, ref int pnInGame, ref int pnChatting); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_DownloadClanActivityCounts")] -internal static extern ulong SteamAPI_ISteamFriends_DownloadClanActivityCounts(IntPtr instancePtr, [In, Out] CSteamID[] psteamIDClans, int cClansToRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendCountFromSource")] -internal static extern int SteamAPI_ISteamFriends_GetFriendCountFromSource(IntPtr instancePtr, ulong steamIDSource); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendFromSourceByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetFriendFromSourceByIndex(IntPtr instancePtr, ulong steamIDSource, int iFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_IsUserInSource")] -internal static extern bool SteamAPI_ISteamFriends_IsUserInSource(IntPtr instancePtr, ulong steamIDUser, ulong steamIDSource); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetInGameVoiceSpeaking")] -internal static extern void SteamAPI_ISteamFriends_SetInGameVoiceSpeaking(IntPtr instancePtr, ulong steamIDUser, bool bSpeaking); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlay")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlay(IntPtr instancePtr, string pchDialog); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayToUser")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlayToUser(IntPtr instancePtr, string pchDialog, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage(IntPtr instancePtr, string pchURL); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayToStore")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlayToStore(IntPtr instancePtr, uint nAppID, char eFlag); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetPlayedWith")] -internal static extern void SteamAPI_ISteamFriends_SetPlayedWith(IntPtr instancePtr, ulong steamIDUserPlayedWith); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetSmallFriendAvatar")] -internal static extern int SteamAPI_ISteamFriends_GetSmallFriendAvatar(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetMediumFriendAvatar")] -internal static extern int SteamAPI_ISteamFriends_GetMediumFriendAvatar(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetLargeFriendAvatar")] -internal static extern int SteamAPI_ISteamFriends_GetLargeFriendAvatar(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_RequestUserInformation")] -internal static extern bool SteamAPI_ISteamFriends_RequestUserInformation(IntPtr instancePtr, ulong steamIDUser, bool bRequireNameOnly); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_RequestClanOfficerList")] -internal static extern ulong SteamAPI_ISteamFriends_RequestClanOfficerList(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanOwner")] -internal static extern ulong SteamAPI_ISteamFriends_GetClanOwner(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanOfficerCount")] -internal static extern int SteamAPI_ISteamFriends_GetClanOfficerCount(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanOfficerByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetClanOfficerByIndex(IntPtr instancePtr, ulong steamIDClan, int iOfficer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetUserRestrictions")] -internal static extern uint SteamAPI_ISteamFriends_GetUserRestrictions(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetRichPresence")] -internal static extern bool SteamAPI_ISteamFriends_SetRichPresence(IntPtr instancePtr, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ClearRichPresence")] -internal static extern void SteamAPI_ISteamFriends_ClearRichPresence(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendRichPresence")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendRichPresence(IntPtr instancePtr, ulong steamIDFriend, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount")] -internal static extern int SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex(IntPtr instancePtr, ulong steamIDFriend, int iKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_RequestFriendRichPresence")] -internal static extern void SteamAPI_ISteamFriends_RequestFriendRichPresence(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_InviteUserToGame")] -internal static extern bool SteamAPI_ISteamFriends_InviteUserToGame(IntPtr instancePtr, ulong steamIDFriend, string pchConnectString); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetCoplayFriendCount")] -internal static extern int SteamAPI_ISteamFriends_GetCoplayFriendCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetCoplayFriend")] -internal static extern ulong SteamAPI_ISteamFriends_GetCoplayFriend(IntPtr instancePtr, int iCoplayFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendCoplayTime")] -internal static extern int SteamAPI_ISteamFriends_GetFriendCoplayTime(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendCoplayGame")] -internal static extern uint SteamAPI_ISteamFriends_GetFriendCoplayGame(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_JoinClanChatRoom")] -internal static extern ulong SteamAPI_ISteamFriends_JoinClanChatRoom(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_LeaveClanChatRoom")] -internal static extern bool SteamAPI_ISteamFriends_LeaveClanChatRoom(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanChatMemberCount")] -internal static extern int SteamAPI_ISteamFriends_GetClanChatMemberCount(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetChatMemberByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetChatMemberByIndex(IntPtr instancePtr, ulong steamIDClan, int iUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SendClanChatMessage")] -internal static extern bool SteamAPI_ISteamFriends_SendClanChatMessage(IntPtr instancePtr, ulong steamIDClanChat, string pchText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanChatMessage")] -internal static extern int SteamAPI_ISteamFriends_GetClanChatMessage(IntPtr instancePtr, ulong steamIDClanChat, int iMessage, IntPtr prgchText, int cchTextMax, ref uint peChatEntryType, ref CSteamID psteamidChatter); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_IsClanChatAdmin")] -internal static extern bool SteamAPI_ISteamFriends_IsClanChatAdmin(IntPtr instancePtr, ulong steamIDClanChat, ulong steamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam")] -internal static extern bool SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam(IntPtr instancePtr, ulong steamIDClanChat); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_OpenClanChatWindowInSteam")] -internal static extern bool SteamAPI_ISteamFriends_OpenClanChatWindowInSteam(IntPtr instancePtr, ulong steamIDClanChat); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_CloseClanChatWindowInSteam")] -internal static extern bool SteamAPI_ISteamFriends_CloseClanChatWindowInSteam(IntPtr instancePtr, ulong steamIDClanChat); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetListenForFriendsMessages")] -internal static extern bool SteamAPI_ISteamFriends_SetListenForFriendsMessages(IntPtr instancePtr, bool bInterceptEnabled); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ReplyToFriendMessage")] -internal static extern bool SteamAPI_ISteamFriends_ReplyToFriendMessage(IntPtr instancePtr, ulong steamIDFriend, string pchMsgToSend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendMessage")] -internal static extern int SteamAPI_ISteamFriends_GetFriendMessage(IntPtr instancePtr, ulong steamIDFriend, int iMessageID, IntPtr pvData, int cubData, ref uint peChatEntryType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFollowerCount")] -internal static extern ulong SteamAPI_ISteamFriends_GetFollowerCount(IntPtr instancePtr, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_IsFollowing")] -internal static extern ulong SteamAPI_ISteamFriends_IsFollowing(IntPtr instancePtr, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_EnumerateFollowingList")] -internal static extern ulong SteamAPI_ISteamFriends_EnumerateFollowingList(IntPtr instancePtr, uint unStartIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetSecondsSinceAppActive")] -internal static extern uint SteamAPI_ISteamUtils_GetSecondsSinceAppActive(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetSecondsSinceComputerActive")] -internal static extern uint SteamAPI_ISteamUtils_GetSecondsSinceComputerActive(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetConnectedUniverse")] -internal static extern int SteamAPI_ISteamUtils_GetConnectedUniverse(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetServerRealTime")] -internal static extern uint SteamAPI_ISteamUtils_GetServerRealTime(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetIPCountry")] -internal static extern IntPtr SteamAPI_ISteamUtils_GetIPCountry(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetImageSize")] -internal static extern bool SteamAPI_ISteamUtils_GetImageSize(IntPtr instancePtr, int iImage, ref uint pnWidth, ref uint pnHeight); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetImageRGBA")] -internal static extern bool SteamAPI_ISteamUtils_GetImageRGBA(IntPtr instancePtr, int iImage, IntPtr pubDest, int nDestBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetCSERIPPort")] -internal static extern bool SteamAPI_ISteamUtils_GetCSERIPPort(IntPtr instancePtr, ref uint unIP, ref char usPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetCurrentBatteryPower")] -internal static extern byte SteamAPI_ISteamUtils_GetCurrentBatteryPower(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetAppID")] -internal static extern uint SteamAPI_ISteamUtils_GetAppID(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_SetOverlayNotificationPosition")] -internal static extern void SteamAPI_ISteamUtils_SetOverlayNotificationPosition(IntPtr instancePtr, uint eNotificationPosition); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsAPICallCompleted")] -internal static extern bool SteamAPI_ISteamUtils_IsAPICallCompleted(IntPtr instancePtr, ulong hSteamAPICall, ref bool pbFailed); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetAPICallFailureReason")] -internal static extern int SteamAPI_ISteamUtils_GetAPICallFailureReason(IntPtr instancePtr, ulong hSteamAPICall); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetAPICallResult")] -internal static extern bool SteamAPI_ISteamUtils_GetAPICallResult(IntPtr instancePtr, ulong hSteamAPICall, IntPtr pCallback, int cubCallback, int iCallbackExpected, ref bool pbFailed); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetIPCCallCount")] -internal static extern uint SteamAPI_ISteamUtils_GetIPCCallCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_SetWarningMessageHook")] -internal static extern void SteamAPI_ISteamUtils_SetWarningMessageHook(IntPtr instancePtr, IntPtr pFunction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsOverlayEnabled")] -internal static extern bool SteamAPI_ISteamUtils_IsOverlayEnabled(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_BOverlayNeedsPresent")] -internal static extern bool SteamAPI_ISteamUtils_BOverlayNeedsPresent(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_CheckFileSignature")] -internal static extern ulong SteamAPI_ISteamUtils_CheckFileSignature(IntPtr instancePtr, string szFileName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_ShowGamepadTextInput")] -internal static extern bool SteamAPI_ISteamUtils_ShowGamepadTextInput(IntPtr instancePtr, int eInputMode, int eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetEnteredGamepadTextLength")] -internal static extern uint SteamAPI_ISteamUtils_GetEnteredGamepadTextLength(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetEnteredGamepadTextInput")] -internal static extern bool SteamAPI_ISteamUtils_GetEnteredGamepadTextInput(IntPtr instancePtr, string pchText, uint cchText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetSteamUILanguage")] -internal static extern IntPtr SteamAPI_ISteamUtils_GetSteamUILanguage(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsSteamRunningInVR")] -internal static extern bool SteamAPI_ISteamUtils_IsSteamRunningInVR(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_SetOverlayNotificationInset")] -internal static extern void SteamAPI_ISteamUtils_SetOverlayNotificationInset(IntPtr instancePtr, int nHorizontalInset, int nVerticalInset); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsSteamInBigPictureMode")] -internal static extern bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_StartVRDashboard")] -internal static extern void SteamAPI_ISteamUtils_StartVRDashboard(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetFavoriteGameCount")] -internal static extern int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetFavoriteGame")] -internal static extern bool SteamAPI_ISteamMatchmaking_GetFavoriteGame(IntPtr instancePtr, int iGame, ref uint pnAppID, ref uint pnIP, ref char pnConnPort, ref char pnQueryPort, ref uint punFlags, ref uint pRTime32LastPlayedOnServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddFavoriteGame")] -internal static extern int SteamAPI_ISteamMatchmaking_AddFavoriteGame(IntPtr instancePtr, uint nAppID, uint nIP, char nConnPort, char nQueryPort, uint unFlags, uint rTime32LastPlayedOnServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_RemoveFavoriteGame")] -internal static extern bool SteamAPI_ISteamMatchmaking_RemoveFavoriteGame(IntPtr instancePtr, uint nAppID, uint nIP, char nConnPort, char nQueryPort, uint unFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_RequestLobbyList")] -internal static extern ulong SteamAPI_ISteamMatchmaking_RequestLobbyList(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter(IntPtr instancePtr, string pchKeyToMatch, string pchValueToMatch, uint eComparisonType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter(IntPtr instancePtr, string pchKeyToMatch, int nValueToMatch, uint eComparisonType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter(IntPtr instancePtr, string pchKeyToMatch, int nValueToBeCloseTo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(IntPtr instancePtr, int nSlotsAvailable); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter(IntPtr instancePtr, uint eLobbyDistanceFilter); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter(IntPtr instancePtr, int cMaxResults); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyByIndex")] -internal static extern ulong SteamAPI_ISteamMatchmaking_GetLobbyByIndex(IntPtr instancePtr, int iLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_CreateLobby")] -internal static extern ulong SteamAPI_ISteamMatchmaking_CreateLobby(IntPtr instancePtr, uint eLobbyType, int cMaxMembers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_JoinLobby")] -internal static extern ulong SteamAPI_ISteamMatchmaking_JoinLobby(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_LeaveLobby")] -internal static extern void SteamAPI_ISteamMatchmaking_LeaveLobby(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_InviteUserToLobby")] -internal static extern bool SteamAPI_ISteamMatchmaking_InviteUserToLobby(IntPtr instancePtr, ulong steamIDLobby, ulong steamIDInvitee); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetNumLobbyMembers")] -internal static extern int SteamAPI_ISteamMatchmaking_GetNumLobbyMembers(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex")] -internal static extern ulong SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex(IntPtr instancePtr, ulong steamIDLobby, int iMember); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyData")] -internal static extern IntPtr SteamAPI_ISteamMatchmaking_GetLobbyData(IntPtr instancePtr, ulong steamIDLobby, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyData")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyData(IntPtr instancePtr, ulong steamIDLobby, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyDataCount")] -internal static extern int SteamAPI_ISteamMatchmaking_GetLobbyDataCount(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex")] -internal static extern bool SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex(IntPtr instancePtr, ulong steamIDLobby, int iLobbyData, string pchKey, int cchKeyBufferSize, string pchValue, int cchValueBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_DeleteLobbyData")] -internal static extern bool SteamAPI_ISteamMatchmaking_DeleteLobbyData(IntPtr instancePtr, ulong steamIDLobby, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyMemberData")] -internal static extern IntPtr SteamAPI_ISteamMatchmaking_GetLobbyMemberData(IntPtr instancePtr, ulong steamIDLobby, ulong steamIDUser, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyMemberData")] -internal static extern void SteamAPI_ISteamMatchmaking_SetLobbyMemberData(IntPtr instancePtr, ulong steamIDLobby, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SendLobbyChatMsg")] -internal static extern bool SteamAPI_ISteamMatchmaking_SendLobbyChatMsg(IntPtr instancePtr, ulong steamIDLobby, IntPtr pvMsgBody, int cubMsgBody); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyChatEntry")] -internal static extern int SteamAPI_ISteamMatchmaking_GetLobbyChatEntry(IntPtr instancePtr, ulong steamIDLobby, int iChatID, ref CSteamID pSteamIDUser, IntPtr pvData, int cubData, ref uint peChatEntryType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_RequestLobbyData")] -internal static extern bool SteamAPI_ISteamMatchmaking_RequestLobbyData(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyGameServer")] -internal static extern void SteamAPI_ISteamMatchmaking_SetLobbyGameServer(IntPtr instancePtr, ulong steamIDLobby, uint unGameServerIP, char unGameServerPort, ulong steamIDGameServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyGameServer")] -internal static extern bool SteamAPI_ISteamMatchmaking_GetLobbyGameServer(IntPtr instancePtr, ulong steamIDLobby, ref uint punGameServerIP, ref char punGameServerPort, ref CSteamID psteamIDGameServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit(IntPtr instancePtr, ulong steamIDLobby, int cMaxMembers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit")] -internal static extern int SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyType")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyType(IntPtr instancePtr, ulong steamIDLobby, uint eLobbyType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyJoinable")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyJoinable(IntPtr instancePtr, ulong steamIDLobby, bool bLobbyJoinable); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyOwner")] -internal static extern ulong SteamAPI_ISteamMatchmaking_GetLobbyOwner(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyOwner")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyOwner(IntPtr instancePtr, ulong steamIDLobby, ulong steamIDNewOwner); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLinkedLobby")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLinkedLobby(IntPtr instancePtr, ulong steamIDLobby, ulong steamIDLobbyDependent); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded")] -internal static extern void SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded(IntPtr instancePtr, uint hRequest, int iServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond")] -internal static extern void SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond(IntPtr instancePtr, uint hRequest, int iServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete")] -internal static extern void SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete(IntPtr instancePtr, uint hRequest, uint response); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPingResponse_ServerResponded")] -internal static extern void SteamAPI_ISteamMatchmakingPingResponse_ServerResponded(IntPtr instancePtr, IntPtr server); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond")] -internal static extern void SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList")] -internal static extern void SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList(IntPtr instancePtr, string pchName, int nScore, float flTimePlayed); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond")] -internal static extern void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete")] -internal static extern void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded")] -internal static extern void SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded(IntPtr instancePtr, string pchRule, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond")] -internal static extern void SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete")] -internal static extern void SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestInternetServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestInternetServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestLANServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestLANServerList(IntPtr instancePtr, uint iApp, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_ReleaseRequest")] -internal static extern void SteamAPI_ISteamMatchmakingServers_ReleaseRequest(IntPtr instancePtr, uint hServerListRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_GetServerDetails")] -internal static extern IntPtr SteamAPI_ISteamMatchmakingServers_GetServerDetails(IntPtr instancePtr, uint hRequest, int iServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_CancelQuery")] -internal static extern void SteamAPI_ISteamMatchmakingServers_CancelQuery(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RefreshQuery")] -internal static extern void SteamAPI_ISteamMatchmakingServers_RefreshQuery(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_IsRefreshing")] -internal static extern bool SteamAPI_ISteamMatchmakingServers_IsRefreshing(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_GetServerCount")] -internal static extern int SteamAPI_ISteamMatchmakingServers_GetServerCount(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RefreshServer")] -internal static extern void SteamAPI_ISteamMatchmakingServers_RefreshServer(IntPtr instancePtr, uint hRequest, int iServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_PingServer")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_PingServer(IntPtr instancePtr, uint unIP, char usPort, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_PlayerDetails")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_PlayerDetails(IntPtr instancePtr, uint unIP, char usPort, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_ServerRules")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_ServerRules(IntPtr instancePtr, uint unIP, char usPort, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_CancelServerQuery")] -internal static extern void SteamAPI_ISteamMatchmakingServers_CancelServerQuery(IntPtr instancePtr, uint hServerQuery); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWrite")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileWrite(IntPtr instancePtr, string pchFile, IntPtr pvData, int cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileRead")] -internal static extern int SteamAPI_ISteamRemoteStorage_FileRead(IntPtr instancePtr, string pchFile, IntPtr pvData, int cubDataToRead); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteAsync")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_FileWriteAsync(IntPtr instancePtr, string pchFile, IntPtr pvData, uint cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileReadAsync")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_FileReadAsync(IntPtr instancePtr, string pchFile, uint nOffset, uint cubToRead); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete(IntPtr instancePtr, ulong hReadCall, IntPtr pvBuffer, uint cubToRead); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileForget")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileForget(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileDelete")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileDelete(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileShare")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_FileShare(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_SetSyncPlatforms")] -internal static extern bool SteamAPI_ISteamRemoteStorage_SetSyncPlatforms(IntPtr instancePtr, string pchFile, uint eRemoteStoragePlatform); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk(IntPtr instancePtr, ulong writeHandle, IntPtr pvData, int cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamClose")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileWriteStreamClose(IntPtr instancePtr, ulong writeHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel(IntPtr instancePtr, ulong writeHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileExists")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileExists(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FilePersisted")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FilePersisted(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileSize")] -internal static extern int SteamAPI_ISteamRemoteStorage_GetFileSize(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileTimestamp")] -internal static extern long SteamAPI_ISteamRemoteStorage_GetFileTimestamp(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetSyncPlatforms")] -internal static extern uint SteamAPI_ISteamRemoteStorage_GetSyncPlatforms(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileCount")] -internal static extern int SteamAPI_ISteamRemoteStorage_GetFileCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileNameAndSize")] -internal static extern IntPtr SteamAPI_ISteamRemoteStorage_GetFileNameAndSize(IntPtr instancePtr, int iFile, ref int pnFileSizeInBytes); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetQuota")] -internal static extern bool SteamAPI_ISteamRemoteStorage_GetQuota(IntPtr instancePtr, ref ulong pnTotalBytes, ref ulong puAvailableBytes); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount")] -internal static extern bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp")] -internal static extern bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp")] -internal static extern void SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp(IntPtr instancePtr, bool bEnabled); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UGCDownload")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_UGCDownload(IntPtr instancePtr, ulong hContent, uint unPriority); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress")] -internal static extern bool SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress(IntPtr instancePtr, ulong hContent, ref int pnBytesDownloaded, ref int pnBytesExpected); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetUGCDetails")] -internal static extern bool SteamAPI_ISteamRemoteStorage_GetUGCDetails(IntPtr instancePtr, ulong hContent, ref uint pnAppID, System.Text.StringBuilder ppchName, ref int pnFileSizeInBytes, ref CSteamID pSteamIDOwner); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UGCRead")] -internal static extern int SteamAPI_ISteamRemoteStorage_UGCRead(IntPtr instancePtr, ulong hContent, IntPtr pvData, int cubDataToRead, uint cOffset, uint eAction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetCachedUGCCount")] -internal static extern int SteamAPI_ISteamRemoteStorage_GetCachedUGCCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle(IntPtr instancePtr, int iCachedContent); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_PublishWorkshopFile")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_PublishWorkshopFile(IntPtr instancePtr, string pchFile, string pchPreviewFile, uint nConsumerAppId, string pchTitle, string pchDescription, uint eVisibility, ref SteamParamStringArray_t pTags, uint eWorkshopFileType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile(IntPtr instancePtr, ulong updateHandle, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile(IntPtr instancePtr, ulong updateHandle, string pchPreviewFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle(IntPtr instancePtr, ulong updateHandle, string pchTitle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription(IntPtr instancePtr, ulong updateHandle, string pchDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility(IntPtr instancePtr, ulong updateHandle, uint eVisibility); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags(IntPtr instancePtr, ulong updateHandle, ref SteamParamStringArray_t pTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate(IntPtr instancePtr, ulong updateHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails(IntPtr instancePtr, ulong unPublishedFileId, uint unMaxSecondsOld); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_DeletePublishedFile")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_DeletePublishedFile(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles(IntPtr instancePtr, uint unStartIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_SubscribePublishedFile")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_SubscribePublishedFile(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles(IntPtr instancePtr, uint unStartIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(IntPtr instancePtr, ulong updateHandle, string pchChangeDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote(IntPtr instancePtr, ulong unPublishedFileId, bool bVoteUp); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(IntPtr instancePtr, ulong steamId, uint unStartIndex, ref SteamParamStringArray_t pRequiredTags, ref SteamParamStringArray_t pExcludedTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_PublishVideo")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_PublishVideo(IntPtr instancePtr, uint eVideoProvider, string pchVideoAccount, string pchVideoIdentifier, string pchPreviewFile, uint nConsumerAppId, string pchTitle, string pchDescription, uint eVisibility, ref SteamParamStringArray_t pTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction(IntPtr instancePtr, ulong unPublishedFileId, uint eAction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(IntPtr instancePtr, uint eAction, uint unStartIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(IntPtr instancePtr, uint eEnumerationType, uint unStartIndex, uint unCount, uint unDays, ref SteamParamStringArray_t pTags, ref SteamParamStringArray_t pUserTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation(IntPtr instancePtr, ulong hContent, string pchLocation, uint unPriority); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_RequestCurrentStats")] -internal static extern bool SteamAPI_ISteamUserStats_RequestCurrentStats(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetStat")] -internal static extern bool SteamAPI_ISteamUserStats_GetStat(IntPtr instancePtr, string pchName, ref int pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetStat0")] -internal static extern bool SteamAPI_ISteamUserStats_GetStat0(IntPtr instancePtr, string pchName, ref float pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_SetStat")] -internal static extern bool SteamAPI_ISteamUserStats_SetStat(IntPtr instancePtr, string pchName, int nData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_SetStat0")] -internal static extern bool SteamAPI_ISteamUserStats_SetStat0(IntPtr instancePtr, string pchName, float fData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_UpdateAvgRateStat")] -internal static extern bool SteamAPI_ISteamUserStats_UpdateAvgRateStat(IntPtr instancePtr, string pchName, float flCountThisSession, double dSessionLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievement")] -internal static extern bool SteamAPI_ISteamUserStats_GetAchievement(IntPtr instancePtr, string pchName, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_SetAchievement")] -internal static extern bool SteamAPI_ISteamUserStats_SetAchievement(IntPtr instancePtr, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_ClearAchievement")] -internal static extern bool SteamAPI_ISteamUserStats_ClearAchievement(IntPtr instancePtr, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime")] -internal static extern bool SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime(IntPtr instancePtr, string pchName, ref bool pbAchieved, ref uint punUnlockTime); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_StoreStats")] -internal static extern bool SteamAPI_ISteamUserStats_StoreStats(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementIcon")] -internal static extern int SteamAPI_ISteamUserStats_GetAchievementIcon(IntPtr instancePtr, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute")] -internal static extern IntPtr SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute(IntPtr instancePtr, string pchName, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_IndicateAchievementProgress")] -internal static extern bool SteamAPI_ISteamUserStats_IndicateAchievementProgress(IntPtr instancePtr, string pchName, uint nCurProgress, uint nMaxProgress); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetNumAchievements")] -internal static extern uint SteamAPI_ISteamUserStats_GetNumAchievements(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementName")] -internal static extern IntPtr SteamAPI_ISteamUserStats_GetAchievementName(IntPtr instancePtr, uint iAchievement); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_RequestUserStats")] -internal static extern ulong SteamAPI_ISteamUserStats_RequestUserStats(IntPtr instancePtr, ulong steamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetUserStat")] -internal static extern bool SteamAPI_ISteamUserStats_GetUserStat(IntPtr instancePtr, ulong steamIDUser, string pchName, ref int pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetUserStat0")] -internal static extern bool SteamAPI_ISteamUserStats_GetUserStat0(IntPtr instancePtr, ulong steamIDUser, string pchName, ref float pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetUserAchievement")] -internal static extern bool SteamAPI_ISteamUserStats_GetUserAchievement(IntPtr instancePtr, ulong steamIDUser, string pchName, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime")] -internal static extern bool SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime(IntPtr instancePtr, ulong steamIDUser, string pchName, ref bool pbAchieved, ref uint punUnlockTime); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_ResetAllStats")] -internal static extern bool SteamAPI_ISteamUserStats_ResetAllStats(IntPtr instancePtr, bool bAchievementsToo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_FindOrCreateLeaderboard")] -internal static extern ulong SteamAPI_ISteamUserStats_FindOrCreateLeaderboard(IntPtr instancePtr, string pchLeaderboardName, uint eLeaderboardSortMethod, uint eLeaderboardDisplayType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_FindLeaderboard")] -internal static extern ulong SteamAPI_ISteamUserStats_FindLeaderboard(IntPtr instancePtr, string pchLeaderboardName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardName")] -internal static extern IntPtr SteamAPI_ISteamUserStats_GetLeaderboardName(IntPtr instancePtr, ulong hSteamLeaderboard); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardEntryCount")] -internal static extern int SteamAPI_ISteamUserStats_GetLeaderboardEntryCount(IntPtr instancePtr, ulong hSteamLeaderboard); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardSortMethod")] -internal static extern uint SteamAPI_ISteamUserStats_GetLeaderboardSortMethod(IntPtr instancePtr, ulong hSteamLeaderboard); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardDisplayType")] -internal static extern uint SteamAPI_ISteamUserStats_GetLeaderboardDisplayType(IntPtr instancePtr, ulong hSteamLeaderboard); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_DownloadLeaderboardEntries")] -internal static extern ulong SteamAPI_ISteamUserStats_DownloadLeaderboardEntries(IntPtr instancePtr, ulong hSteamLeaderboard, uint eLeaderboardDataRequest, int nRangeStart, int nRangeEnd); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers")] -internal static extern ulong SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers(IntPtr instancePtr, ulong hSteamLeaderboard, [In, Out] CSteamID[] prgUsers, int cUsers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry")] -internal static extern bool SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry(IntPtr instancePtr, ulong hSteamLeaderboardEntries, int index, ref LeaderboardEntry_t pLeaderboardEntry, ref int pDetails, int cDetailsMax); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_UploadLeaderboardScore")] -internal static extern ulong SteamAPI_ISteamUserStats_UploadLeaderboardScore(IntPtr instancePtr, ulong hSteamLeaderboard, uint eLeaderboardUploadScoreMethod, int nScore, ref int pScoreDetails, int cScoreDetailsCount); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_AttachLeaderboardUGC")] -internal static extern ulong SteamAPI_ISteamUserStats_AttachLeaderboardUGC(IntPtr instancePtr, ulong hSteamLeaderboard, ulong hUGC); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers")] -internal static extern ulong SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages")] -internal static extern ulong SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo")] -internal static extern int SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo(IntPtr instancePtr, string pchName, uint unNameBufLen, ref float pflPercent, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo")] -internal static extern int SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo(IntPtr instancePtr, int iIteratorPrevious, string pchName, uint unNameBufLen, ref float pflPercent, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementAchievedPercent")] -internal static extern bool SteamAPI_ISteamUserStats_GetAchievementAchievedPercent(IntPtr instancePtr, string pchName, ref float pflPercent); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_RequestGlobalStats")] -internal static extern ulong SteamAPI_ISteamUserStats_RequestGlobalStats(IntPtr instancePtr, int nHistoryDays); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStat")] -internal static extern bool SteamAPI_ISteamUserStats_GetGlobalStat(IntPtr instancePtr, string pchStatName, ref long pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStat0")] -internal static extern bool SteamAPI_ISteamUserStats_GetGlobalStat0(IntPtr instancePtr, string pchStatName, ref double pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStatHistory")] -internal static extern int SteamAPI_ISteamUserStats_GetGlobalStatHistory(IntPtr instancePtr, string pchStatName, [In, Out] long[] pData, uint cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStatHistory0")] -internal static extern int SteamAPI_ISteamUserStats_GetGlobalStatHistory0(IntPtr instancePtr, string pchStatName, [In, Out] double[] pData, uint cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsSubscribed")] -internal static extern bool SteamAPI_ISteamApps_BIsSubscribed(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsLowViolence")] -internal static extern bool SteamAPI_ISteamApps_BIsLowViolence(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsCybercafe")] -internal static extern bool SteamAPI_ISteamApps_BIsCybercafe(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsVACBanned")] -internal static extern bool SteamAPI_ISteamApps_BIsVACBanned(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetCurrentGameLanguage")] -internal static extern IntPtr SteamAPI_ISteamApps_GetCurrentGameLanguage(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetAvailableGameLanguages")] -internal static extern IntPtr SteamAPI_ISteamApps_GetAvailableGameLanguages(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsSubscribedApp")] -internal static extern bool SteamAPI_ISteamApps_BIsSubscribedApp(IntPtr instancePtr, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsDlcInstalled")] -internal static extern bool SteamAPI_ISteamApps_BIsDlcInstalled(IntPtr instancePtr, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime")] -internal static extern uint SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend")] -internal static extern bool SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetDLCCount")] -internal static extern int SteamAPI_ISteamApps_GetDLCCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BGetDLCDataByIndex")] -internal static extern bool SteamAPI_ISteamApps_BGetDLCDataByIndex(IntPtr instancePtr, int iDLC, ref uint pAppID, ref bool pbAvailable, string pchName, int cchNameBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_InstallDLC")] -internal static extern void SteamAPI_ISteamApps_InstallDLC(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_UninstallDLC")] -internal static extern void SteamAPI_ISteamApps_UninstallDLC(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey")] -internal static extern void SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetCurrentBetaName")] -internal static extern bool SteamAPI_ISteamApps_GetCurrentBetaName(IntPtr instancePtr, string pchName, int cchNameBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_MarkContentCorrupt")] -internal static extern bool SteamAPI_ISteamApps_MarkContentCorrupt(IntPtr instancePtr, bool bMissingFilesOnly); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetInstalledDepots")] -internal static extern uint SteamAPI_ISteamApps_GetInstalledDepots(IntPtr instancePtr, uint appID, ref uint pvecDepots, uint cMaxDepots); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetAppInstallDir")] -internal static extern uint SteamAPI_ISteamApps_GetAppInstallDir(IntPtr instancePtr, uint appID, string pchFolder, uint cchFolderBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsAppInstalled")] -internal static extern bool SteamAPI_ISteamApps_BIsAppInstalled(IntPtr instancePtr, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetAppOwner")] -internal static extern ulong SteamAPI_ISteamApps_GetAppOwner(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetLaunchQueryParam")] -internal static extern IntPtr SteamAPI_ISteamApps_GetLaunchQueryParam(IntPtr instancePtr, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetDlcDownloadProgress")] -internal static extern bool SteamAPI_ISteamApps_GetDlcDownloadProgress(IntPtr instancePtr, uint nAppID, ref ulong punBytesDownloaded, ref ulong punBytesTotal); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetAppBuildId")] -internal static extern int SteamAPI_ISteamApps_GetAppBuildId(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys")] -internal static extern void SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetFileDetails")] -internal static extern ulong SteamAPI_ISteamApps_GetFileDetails(IntPtr instancePtr, string pszFileName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_SendP2PPacket")] -internal static extern bool SteamAPI_ISteamNetworking_SendP2PPacket(IntPtr instancePtr, ulong steamIDRemote, IntPtr pubData, uint cubData, uint eP2PSendType, int nChannel); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_IsP2PPacketAvailable")] -internal static extern bool SteamAPI_ISteamNetworking_IsP2PPacketAvailable(IntPtr instancePtr, ref uint pcubMsgSize, int nChannel); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_ReadP2PPacket")] -internal static extern bool SteamAPI_ISteamNetworking_ReadP2PPacket(IntPtr instancePtr, IntPtr pubDest, uint cubDest, ref uint pcubMsgSize, ref CSteamID psteamIDRemote, int nChannel); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser")] -internal static extern bool SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser(IntPtr instancePtr, ulong steamIDRemote); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CloseP2PSessionWithUser")] -internal static extern bool SteamAPI_ISteamNetworking_CloseP2PSessionWithUser(IntPtr instancePtr, ulong steamIDRemote); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CloseP2PChannelWithUser")] -internal static extern bool SteamAPI_ISteamNetworking_CloseP2PChannelWithUser(IntPtr instancePtr, ulong steamIDRemote, int nChannel); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetP2PSessionState")] -internal static extern bool SteamAPI_ISteamNetworking_GetP2PSessionState(IntPtr instancePtr, ulong steamIDRemote, ref P2PSessionState_t pConnectionState); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_AllowP2PPacketRelay")] -internal static extern bool SteamAPI_ISteamNetworking_AllowP2PPacketRelay(IntPtr instancePtr, bool bAllow); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CreateListenSocket")] -internal static extern uint SteamAPI_ISteamNetworking_CreateListenSocket(IntPtr instancePtr, int nVirtualP2PPort, uint nIP, char nPort, bool bAllowUseOfPacketRelay); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CreateP2PConnectionSocket")] -internal static extern uint SteamAPI_ISteamNetworking_CreateP2PConnectionSocket(IntPtr instancePtr, ulong steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CreateConnectionSocket")] -internal static extern uint SteamAPI_ISteamNetworking_CreateConnectionSocket(IntPtr instancePtr, uint nIP, char nPort, int nTimeoutSec); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_DestroySocket")] -internal static extern bool SteamAPI_ISteamNetworking_DestroySocket(IntPtr instancePtr, uint hSocket, bool bNotifyRemoteEnd); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_DestroyListenSocket")] -internal static extern bool SteamAPI_ISteamNetworking_DestroyListenSocket(IntPtr instancePtr, uint hSocket, bool bNotifyRemoteEnd); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_SendDataOnSocket")] -internal static extern bool SteamAPI_ISteamNetworking_SendDataOnSocket(IntPtr instancePtr, uint hSocket, IntPtr pubData, uint cubData, bool bReliable); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_IsDataAvailableOnSocket")] -internal static extern bool SteamAPI_ISteamNetworking_IsDataAvailableOnSocket(IntPtr instancePtr, uint hSocket, ref uint pcubMsgSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_RetrieveDataFromSocket")] -internal static extern bool SteamAPI_ISteamNetworking_RetrieveDataFromSocket(IntPtr instancePtr, uint hSocket, IntPtr pubDest, uint cubDest, ref uint pcubMsgSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_IsDataAvailable")] -internal static extern bool SteamAPI_ISteamNetworking_IsDataAvailable(IntPtr instancePtr, uint hListenSocket, ref uint pcubMsgSize, ref uint phSocket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_RetrieveData")] -internal static extern bool SteamAPI_ISteamNetworking_RetrieveData(IntPtr instancePtr, uint hListenSocket, IntPtr pubDest, uint cubDest, ref uint pcubMsgSize, ref uint phSocket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetSocketInfo")] -internal static extern bool SteamAPI_ISteamNetworking_GetSocketInfo(IntPtr instancePtr, uint hSocket, ref CSteamID pSteamIDRemote, ref int peSocketStatus, ref uint punIPRemote, ref char punPortRemote); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetListenSocketInfo")] -internal static extern bool SteamAPI_ISteamNetworking_GetListenSocketInfo(IntPtr instancePtr, uint hListenSocket, ref uint pnIP, ref char pnPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetSocketConnectionType")] -internal static extern uint SteamAPI_ISteamNetworking_GetSocketConnectionType(IntPtr instancePtr, uint hSocket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetMaxPacketSize")] -internal static extern int SteamAPI_ISteamNetworking_GetMaxPacketSize(IntPtr instancePtr, uint hSocket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_WriteScreenshot")] -internal static extern uint SteamAPI_ISteamScreenshots_WriteScreenshot(IntPtr instancePtr, IntPtr pubRGB, uint cubRGB, int nWidth, int nHeight); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_AddScreenshotToLibrary")] -internal static extern uint SteamAPI_ISteamScreenshots_AddScreenshotToLibrary(IntPtr instancePtr, string pchFilename, string pchThumbnailFilename, int nWidth, int nHeight); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_TriggerScreenshot")] -internal static extern void SteamAPI_ISteamScreenshots_TriggerScreenshot(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_HookScreenshots")] -internal static extern void SteamAPI_ISteamScreenshots_HookScreenshots(IntPtr instancePtr, bool bHook); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_SetLocation")] -internal static extern bool SteamAPI_ISteamScreenshots_SetLocation(IntPtr instancePtr, uint hScreenshot, string pchLocation); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_TagUser")] -internal static extern bool SteamAPI_ISteamScreenshots_TagUser(IntPtr instancePtr, uint hScreenshot, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_TagPublishedFile")] -internal static extern bool SteamAPI_ISteamScreenshots_TagPublishedFile(IntPtr instancePtr, uint hScreenshot, ulong unPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_IsScreenshotsHooked")] -internal static extern bool SteamAPI_ISteamScreenshots_IsScreenshotsHooked(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary")] -internal static extern uint SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary(IntPtr instancePtr, uint eType, string pchFilename, string pchVRFilename); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_BIsEnabled")] -internal static extern bool SteamAPI_ISteamMusic_BIsEnabled(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_BIsPlaying")] -internal static extern bool SteamAPI_ISteamMusic_BIsPlaying(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_GetPlaybackStatus")] -internal static extern int SteamAPI_ISteamMusic_GetPlaybackStatus(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_Play")] -internal static extern void SteamAPI_ISteamMusic_Play(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_Pause")] -internal static extern void SteamAPI_ISteamMusic_Pause(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_PlayPrevious")] -internal static extern void SteamAPI_ISteamMusic_PlayPrevious(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_PlayNext")] -internal static extern void SteamAPI_ISteamMusic_PlayNext(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_SetVolume")] -internal static extern void SteamAPI_ISteamMusic_SetVolume(IntPtr instancePtr, float flVolume); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_GetVolume")] -internal static extern float SteamAPI_ISteamMusic_GetVolume(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote")] -internal static extern bool SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote(IntPtr instancePtr, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote")] -internal static extern bool SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote")] -internal static extern bool SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_BActivationSuccess")] -internal static extern bool SteamAPI_ISteamMusicRemote_BActivationSuccess(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetDisplayName")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetDisplayName(IntPtr instancePtr, string pchDisplayName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64(IntPtr instancePtr, IntPtr pvBuffer, uint cbBufferLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnablePlayPrevious")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnablePlayPrevious(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnablePlayNext")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnablePlayNext(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnableShuffled")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnableShuffled(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnableLooped")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnableLooped(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnableQueue")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnableQueue(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnablePlaylists")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnablePlaylists(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus(IntPtr instancePtr, int nStatus); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateShuffled")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateShuffled(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateLooped")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateLooped(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateVolume")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateVolume(IntPtr instancePtr, float flValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_CurrentEntryWillChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_CurrentEntryWillChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable")] -internal static extern bool SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable(IntPtr instancePtr, bool bAvailable); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText(IntPtr instancePtr, string pchText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds(IntPtr instancePtr, int nValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt(IntPtr instancePtr, IntPtr pvBuffer, uint cbBufferLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_CurrentEntryDidChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_CurrentEntryDidChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_QueueWillChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_QueueWillChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_ResetQueueEntries")] -internal static extern bool SteamAPI_ISteamMusicRemote_ResetQueueEntries(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetQueueEntry")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetQueueEntry(IntPtr instancePtr, int nID, int nPosition, string pchEntryText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry(IntPtr instancePtr, int nID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_QueueDidChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_QueueDidChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_PlaylistWillChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_PlaylistWillChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_ResetPlaylistEntries")] -internal static extern bool SteamAPI_ISteamMusicRemote_ResetPlaylistEntries(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetPlaylistEntry")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetPlaylistEntry(IntPtr instancePtr, int nID, int nPosition, string pchEntryText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry(IntPtr instancePtr, int nID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_PlaylistDidChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_PlaylistDidChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_CreateHTTPRequest")] -internal static extern uint SteamAPI_ISteamHTTP_CreateHTTPRequest(IntPtr instancePtr, uint eHTTPRequestMethod, string pchAbsoluteURL); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestContextValue")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestContextValue(IntPtr instancePtr, uint hRequest, ulong ulContextValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(IntPtr instancePtr, uint hRequest, uint unTimeoutSeconds); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue(IntPtr instancePtr, uint hRequest, string pchHeaderName, string pchHeaderValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter(IntPtr instancePtr, uint hRequest, string pchParamName, string pchParamValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SendHTTPRequest")] -internal static extern bool SteamAPI_ISteamHTTP_SendHTTPRequest(IntPtr instancePtr, uint hRequest, ref ulong pCallHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse")] -internal static extern bool SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse(IntPtr instancePtr, uint hRequest, ref ulong pCallHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_DeferHTTPRequest")] -internal static extern bool SteamAPI_ISteamHTTP_DeferHTTPRequest(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_PrioritizeHTTPRequest")] -internal static extern bool SteamAPI_ISteamHTTP_PrioritizeHTTPRequest(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize(IntPtr instancePtr, uint hRequest, string pchHeaderName, ref uint unResponseHeaderSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue(IntPtr instancePtr, uint hRequest, string pchHeaderName, IntPtr pHeaderValueBuffer, uint unBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseBodySize")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPResponseBodySize(IntPtr instancePtr, uint hRequest, ref uint unBodySize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseBodyData")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPResponseBodyData(IntPtr instancePtr, uint hRequest, IntPtr pBodyDataBuffer, uint unBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData(IntPtr instancePtr, uint hRequest, uint cOffset, IntPtr pBodyDataBuffer, uint unBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_ReleaseHTTPRequest")] -internal static extern bool SteamAPI_ISteamHTTP_ReleaseHTTPRequest(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct(IntPtr instancePtr, uint hRequest, ref float pflPercentOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody(IntPtr instancePtr, uint hRequest, string pchContentType, IntPtr pubBody, uint unBodyLen); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_CreateCookieContainer")] -internal static extern uint SteamAPI_ISteamHTTP_CreateCookieContainer(IntPtr instancePtr, bool bAllowResponsesToModify); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_ReleaseCookieContainer")] -internal static extern bool SteamAPI_ISteamHTTP_ReleaseCookieContainer(IntPtr instancePtr, uint hCookieContainer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetCookie")] -internal static extern bool SteamAPI_ISteamHTTP_SetCookie(IntPtr instancePtr, uint hCookieContainer, string pchHost, string pchUrl, string pchCookie); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer(IntPtr instancePtr, uint hRequest, uint hCookieContainer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo(IntPtr instancePtr, uint hRequest, string pchUserAgentInfo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(IntPtr instancePtr, uint hRequest, bool bRequireVerifiedCertificate); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(IntPtr instancePtr, uint hRequest, uint unMilliseconds); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut(IntPtr instancePtr, uint hRequest, ref bool pbWasTimedOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_SendMethod")] -internal static extern ulong SteamAPI_ISteamUnifiedMessages_SendMethod(IntPtr instancePtr, string pchServiceMethod, IntPtr pRequestBuffer, uint unRequestBufferSize, ulong unContext); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_GetMethodResponseInfo")] -internal static extern bool SteamAPI_ISteamUnifiedMessages_GetMethodResponseInfo(IntPtr instancePtr, ulong hHandle, ref uint punResponseSize, ref uint peResult); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_GetMethodResponseData")] -internal static extern bool SteamAPI_ISteamUnifiedMessages_GetMethodResponseData(IntPtr instancePtr, ulong hHandle, IntPtr pResponseBuffer, uint unResponseBufferSize, bool bAutoRelease); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_ReleaseMethod")] -internal static extern bool SteamAPI_ISteamUnifiedMessages_ReleaseMethod(IntPtr instancePtr, ulong hHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_SendNotification")] -internal static extern bool SteamAPI_ISteamUnifiedMessages_SendNotification(IntPtr instancePtr, string pchServiceNotification, IntPtr pNotificationBuffer, uint unNotificationBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_Init")] -internal static extern bool SteamAPI_ISteamController_Init(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_Shutdown")] -internal static extern bool SteamAPI_ISteamController_Shutdown(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_RunFrame")] -internal static extern void SteamAPI_ISteamController_RunFrame(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetConnectedControllers")] -internal static extern int SteamAPI_ISteamController_GetConnectedControllers(IntPtr instancePtr, ref ulong handlesOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ShowBindingPanel")] -internal static extern bool SteamAPI_ISteamController_ShowBindingPanel(IntPtr instancePtr, ulong controllerHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetActionSetHandle")] -internal static extern ulong SteamAPI_ISteamController_GetActionSetHandle(IntPtr instancePtr, string pszActionSetName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ActivateActionSet")] -internal static extern void SteamAPI_ISteamController_ActivateActionSet(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetCurrentActionSet")] -internal static extern ulong SteamAPI_ISteamController_GetCurrentActionSet(IntPtr instancePtr, ulong controllerHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetDigitalActionHandle")] -internal static extern ulong SteamAPI_ISteamController_GetDigitalActionHandle(IntPtr instancePtr, string pszActionName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetDigitalActionData")] -internal static extern ControllerDigitalActionData_t SteamAPI_ISteamController_GetDigitalActionData(IntPtr instancePtr, ulong controllerHandle, ulong digitalActionHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetDigitalActionOrigins")] -internal static extern int SteamAPI_ISteamController_GetDigitalActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle, ulong digitalActionHandle, ref uint originsOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetAnalogActionHandle")] -internal static extern ulong SteamAPI_ISteamController_GetAnalogActionHandle(IntPtr instancePtr, string pszActionName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetAnalogActionData")] -internal static extern ControllerAnalogActionData_t SteamAPI_ISteamController_GetAnalogActionData(IntPtr instancePtr, ulong controllerHandle, ulong analogActionHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetAnalogActionOrigins")] -internal static extern int SteamAPI_ISteamController_GetAnalogActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle, ulong analogActionHandle, ref uint originsOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_StopAnalogActionMomentum")] -internal static extern void SteamAPI_ISteamController_StopAnalogActionMomentum(IntPtr instancePtr, ulong controllerHandle, ulong eAction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_TriggerHapticPulse")] -internal static extern void SteamAPI_ISteamController_TriggerHapticPulse(IntPtr instancePtr, ulong controllerHandle, uint eTargetPad, char usDurationMicroSec); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_TriggerRepeatedHapticPulse")] -internal static extern void SteamAPI_ISteamController_TriggerRepeatedHapticPulse(IntPtr instancePtr, ulong controllerHandle, uint eTargetPad, char usDurationMicroSec, char usOffMicroSec, char unRepeat, uint nFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetGamepadIndexForController")] -internal static extern int SteamAPI_ISteamController_GetGamepadIndexForController(IntPtr instancePtr, ulong ulControllerHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetControllerForGamepadIndex")] -internal static extern ulong SteamAPI_ISteamController_GetControllerForGamepadIndex(IntPtr instancePtr, int nIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetMotionData")] -internal static extern ControllerMotionData_t SteamAPI_ISteamController_GetMotionData(IntPtr instancePtr, ulong controllerHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ShowDigitalActionOrigins")] -internal static extern bool SteamAPI_ISteamController_ShowDigitalActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong digitalActionHandle, float flScale, float flXPosition, float flYPosition); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ShowAnalogActionOrigins")] -internal static extern bool SteamAPI_ISteamController_ShowAnalogActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong analogActionHandle, float flScale, float flXPosition, float flYPosition); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateQueryUserUGCRequest")] -internal static extern ulong SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(IntPtr instancePtr, uint unAccountID, uint eListType, uint eMatchingUGCType, uint eSortOrder, uint nCreatorAppID, uint nConsumerAppID, uint unPage); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateQueryAllUGCRequest")] -internal static extern ulong SteamAPI_ISteamUGC_CreateQueryAllUGCRequest(IntPtr instancePtr, uint eQueryType, uint eMatchingeMatchingUGCTypeFileType, uint nCreatorAppID, uint nConsumerAppID, uint unPage); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest")] -internal static extern ulong SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint unNumPublishedFileIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SendQueryUGCRequest")] -internal static extern ulong SteamAPI_ISteamUGC_SendQueryUGCRequest(IntPtr instancePtr, ulong handle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCResult")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCResult(IntPtr instancePtr, ulong handle, uint index, ref SteamUGCDetails_t pDetails); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCPreviewURL")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCPreviewURL(IntPtr instancePtr, ulong handle, uint index, System.Text.StringBuilder pchURL, uint cchURLSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCMetadata")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCMetadata(IntPtr instancePtr, ulong handle, uint index, System.Text.StringBuilder pchMetadata, uint cchMetadatasize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCChildren")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCChildren(IntPtr instancePtr, ulong handle, uint index, ref ulong pvecPublishedFileID, uint cMaxEntries); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCStatistic")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCStatistic(IntPtr instancePtr, ulong handle, uint index, uint eStatType, ref ulong pStatValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews")] -internal static extern uint SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews(IntPtr instancePtr, ulong handle, uint index); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(IntPtr instancePtr, ulong handle, uint index, uint previewIndex, System.Text.StringBuilder pchURLOrVideoID, uint cchURLSize, System.Text.StringBuilder pchOriginalFileName, uint cchOriginalFileNameSize, ref uint pPreviewType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags")] -internal static extern uint SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(IntPtr instancePtr, ulong handle, uint index); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(IntPtr instancePtr, ulong handle, uint index, uint keyValueTagIndex, System.Text.StringBuilder pchKey, uint cchKeySize, System.Text.StringBuilder pchValue, uint cchValueSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_ReleaseQueryUGCRequest")] -internal static extern bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(IntPtr instancePtr, ulong handle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddRequiredTag")] -internal static extern bool SteamAPI_ISteamUGC_AddRequiredTag(IntPtr instancePtr, ulong handle, string pTagName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddExcludedTag")] -internal static extern bool SteamAPI_ISteamUGC_AddExcludedTag(IntPtr instancePtr, ulong handle, string pTagName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnOnlyIDs")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnOnlyIDs(IntPtr instancePtr, ulong handle, bool bReturnOnlyIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnKeyValueTags")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnKeyValueTags(IntPtr instancePtr, ulong handle, bool bReturnKeyValueTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnLongDescription")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnLongDescription(IntPtr instancePtr, ulong handle, bool bReturnLongDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnMetadata")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnMetadata(IntPtr instancePtr, ulong handle, bool bReturnMetadata); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnChildren")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnChildren(IntPtr instancePtr, ulong handle, bool bReturnChildren); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnAdditionalPreviews")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(IntPtr instancePtr, ulong handle, bool bReturnAdditionalPreviews); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnTotalOnly")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnTotalOnly(IntPtr instancePtr, ulong handle, bool bReturnTotalOnly); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetLanguage")] -internal static extern bool SteamAPI_ISteamUGC_SetLanguage(IntPtr instancePtr, ulong handle, string pchLanguage); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetAllowCachedResponse")] -internal static extern bool SteamAPI_ISteamUGC_SetAllowCachedResponse(IntPtr instancePtr, ulong handle, uint unMaxAgeSeconds); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetCloudFileNameFilter")] -internal static extern bool SteamAPI_ISteamUGC_SetCloudFileNameFilter(IntPtr instancePtr, ulong handle, string pMatchCloudFileName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetMatchAnyTag")] -internal static extern bool SteamAPI_ISteamUGC_SetMatchAnyTag(IntPtr instancePtr, ulong handle, bool bMatchAnyTag); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetSearchText")] -internal static extern bool SteamAPI_ISteamUGC_SetSearchText(IntPtr instancePtr, ulong handle, string pSearchText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetRankedByTrendDays")] -internal static extern bool SteamAPI_ISteamUGC_SetRankedByTrendDays(IntPtr instancePtr, ulong handle, uint unDays); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddRequiredKeyValueTag")] -internal static extern bool SteamAPI_ISteamUGC_AddRequiredKeyValueTag(IntPtr instancePtr, ulong handle, string pKey, string pValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RequestUGCDetails")] -internal static extern ulong SteamAPI_ISteamUGC_RequestUGCDetails(IntPtr instancePtr, ulong nPublishedFileID, uint unMaxAgeSeconds); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateItem")] -internal static extern ulong SteamAPI_ISteamUGC_CreateItem(IntPtr instancePtr, uint nConsumerAppId, uint eFileType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StartItemUpdate")] -internal static extern ulong SteamAPI_ISteamUGC_StartItemUpdate(IntPtr instancePtr, uint nConsumerAppId, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemTitle")] -internal static extern bool SteamAPI_ISteamUGC_SetItemTitle(IntPtr instancePtr, ulong handle, string pchTitle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemDescription")] -internal static extern bool SteamAPI_ISteamUGC_SetItemDescription(IntPtr instancePtr, ulong handle, string pchDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemUpdateLanguage")] -internal static extern bool SteamAPI_ISteamUGC_SetItemUpdateLanguage(IntPtr instancePtr, ulong handle, string pchLanguage); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemMetadata")] -internal static extern bool SteamAPI_ISteamUGC_SetItemMetadata(IntPtr instancePtr, ulong handle, string pchMetaData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemVisibility")] -internal static extern bool SteamAPI_ISteamUGC_SetItemVisibility(IntPtr instancePtr, ulong handle, uint eVisibility); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemTags")] -internal static extern bool SteamAPI_ISteamUGC_SetItemTags(IntPtr instancePtr, ulong updateHandle, ref SteamParamStringArray_t pTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemContent")] -internal static extern bool SteamAPI_ISteamUGC_SetItemContent(IntPtr instancePtr, ulong handle, string pszContentFolder); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemPreview")] -internal static extern bool SteamAPI_ISteamUGC_SetItemPreview(IntPtr instancePtr, ulong handle, string pszPreviewFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RemoveItemKeyValueTags")] -internal static extern bool SteamAPI_ISteamUGC_RemoveItemKeyValueTags(IntPtr instancePtr, ulong handle, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemKeyValueTag")] -internal static extern bool SteamAPI_ISteamUGC_AddItemKeyValueTag(IntPtr instancePtr, ulong handle, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemPreviewFile")] -internal static extern bool SteamAPI_ISteamUGC_AddItemPreviewFile(IntPtr instancePtr, ulong handle, string pszPreviewFile, uint type); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemPreviewVideo")] -internal static extern bool SteamAPI_ISteamUGC_AddItemPreviewVideo(IntPtr instancePtr, ulong handle, string pszVideoID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_UpdateItemPreviewFile")] -internal static extern bool SteamAPI_ISteamUGC_UpdateItemPreviewFile(IntPtr instancePtr, ulong handle, uint index, string pszPreviewFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_UpdateItemPreviewVideo")] -internal static extern bool SteamAPI_ISteamUGC_UpdateItemPreviewVideo(IntPtr instancePtr, ulong handle, uint index, string pszVideoID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RemoveItemPreview")] -internal static extern bool SteamAPI_ISteamUGC_RemoveItemPreview(IntPtr instancePtr, ulong handle, uint index); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SubmitItemUpdate")] -internal static extern ulong SteamAPI_ISteamUGC_SubmitItemUpdate(IntPtr instancePtr, ulong handle, string pchChangeNote); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetItemUpdateProgress")] -internal static extern uint SteamAPI_ISteamUGC_GetItemUpdateProgress(IntPtr instancePtr, ulong handle, ref ulong punBytesProcessed, ref ulong punBytesTotal); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetUserItemVote")] -internal static extern ulong SteamAPI_ISteamUGC_SetUserItemVote(IntPtr instancePtr, ulong nPublishedFileID, bool bVoteUp); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetUserItemVote")] -internal static extern ulong SteamAPI_ISteamUGC_GetUserItemVote(IntPtr instancePtr, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemToFavorites")] -internal static extern ulong SteamAPI_ISteamUGC_AddItemToFavorites(IntPtr instancePtr, uint nAppId, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RemoveItemFromFavorites")] -internal static extern ulong SteamAPI_ISteamUGC_RemoveItemFromFavorites(IntPtr instancePtr, uint nAppId, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SubscribeItem")] -internal static extern ulong SteamAPI_ISteamUGC_SubscribeItem(IntPtr instancePtr, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_UnsubscribeItem")] -internal static extern ulong SteamAPI_ISteamUGC_UnsubscribeItem(IntPtr instancePtr, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetNumSubscribedItems")] -internal static extern uint SteamAPI_ISteamUGC_GetNumSubscribedItems(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetSubscribedItems")] -internal static extern uint SteamAPI_ISteamUGC_GetSubscribedItems(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint cMaxEntries); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetItemState")] -internal static extern uint SteamAPI_ISteamUGC_GetItemState(IntPtr instancePtr, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetItemInstallInfo")] -internal static extern bool SteamAPI_ISteamUGC_GetItemInstallInfo(IntPtr instancePtr, ulong nPublishedFileID, ref ulong punSizeOnDisk, System.Text.StringBuilder pchFolder, uint cchFolderSize, ref uint punTimeStamp); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetItemDownloadInfo")] -internal static extern bool SteamAPI_ISteamUGC_GetItemDownloadInfo(IntPtr instancePtr, ulong nPublishedFileID, ref ulong punBytesDownloaded, ref ulong punBytesTotal); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_DownloadItem")] -internal static extern bool SteamAPI_ISteamUGC_DownloadItem(IntPtr instancePtr, ulong nPublishedFileID, bool bHighPriority); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_BInitWorkshopForGameServer")] -internal static extern bool SteamAPI_ISteamUGC_BInitWorkshopForGameServer(IntPtr instancePtr, uint unWorkshopDepotID, string pszFolder); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SuspendDownloads")] -internal static extern void SteamAPI_ISteamUGC_SuspendDownloads(IntPtr instancePtr, bool bSuspend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StartPlaytimeTracking")] -internal static extern ulong SteamAPI_ISteamUGC_StartPlaytimeTracking(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint unNumPublishedFileIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StopPlaytimeTracking")] -internal static extern ulong SteamAPI_ISteamUGC_StopPlaytimeTracking(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint unNumPublishedFileIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems")] -internal static extern ulong SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetNumInstalledApps")] -internal static extern uint SteamAPI_ISteamAppList_GetNumInstalledApps(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetInstalledApps")] -internal static extern uint SteamAPI_ISteamAppList_GetInstalledApps(IntPtr instancePtr, ref uint pvecAppID, uint unMaxAppIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetAppName")] -internal static extern int SteamAPI_ISteamAppList_GetAppName(IntPtr instancePtr, uint nAppID, System.Text.StringBuilder pchName, int cchNameMax); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetAppInstallDir")] -internal static extern int SteamAPI_ISteamAppList_GetAppInstallDir(IntPtr instancePtr, uint nAppID, string pchDirectory, int cchNameMax); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetAppBuildId")] -internal static extern int SteamAPI_ISteamAppList_GetAppBuildId(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_DestructISteamHTMLSurface")] -internal static extern void SteamAPI_ISteamHTMLSurface_DestructISteamHTMLSurface(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_Init")] -internal static extern bool SteamAPI_ISteamHTMLSurface_Init(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_Shutdown")] -internal static extern bool SteamAPI_ISteamHTMLSurface_Shutdown(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_CreateBrowser")] -internal static extern ulong SteamAPI_ISteamHTMLSurface_CreateBrowser(IntPtr instancePtr, string pchUserAgent, string pchUserCSS); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_RemoveBrowser")] -internal static extern void SteamAPI_ISteamHTMLSurface_RemoveBrowser(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_LoadURL")] -internal static extern void SteamAPI_ISteamHTMLSurface_LoadURL(IntPtr instancePtr, uint unBrowserHandle, string pchURL, string pchPostData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetSize")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetSize(IntPtr instancePtr, uint unBrowserHandle, uint unWidth, uint unHeight); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_StopLoad")] -internal static extern void SteamAPI_ISteamHTMLSurface_StopLoad(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_Reload")] -internal static extern void SteamAPI_ISteamHTMLSurface_Reload(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_GoBack")] -internal static extern void SteamAPI_ISteamHTMLSurface_GoBack(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_GoForward")] -internal static extern void SteamAPI_ISteamHTMLSurface_GoForward(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_AddHeader")] -internal static extern void SteamAPI_ISteamHTMLSurface_AddHeader(IntPtr instancePtr, uint unBrowserHandle, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_ExecuteJavascript")] -internal static extern void SteamAPI_ISteamHTMLSurface_ExecuteJavascript(IntPtr instancePtr, uint unBrowserHandle, string pchScript); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseUp")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseUp(IntPtr instancePtr, uint unBrowserHandle, uint eMouseButton); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseDown")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseDown(IntPtr instancePtr, uint unBrowserHandle, uint eMouseButton); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseDoubleClick")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseDoubleClick(IntPtr instancePtr, uint unBrowserHandle, uint eMouseButton); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseMove")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseMove(IntPtr instancePtr, uint unBrowserHandle, int x, int y); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseWheel")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseWheel(IntPtr instancePtr, uint unBrowserHandle, int nDelta); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_KeyDown")] -internal static extern void SteamAPI_ISteamHTMLSurface_KeyDown(IntPtr instancePtr, uint unBrowserHandle, uint nNativeKeyCode, uint eHTMLKeyModifiers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_KeyUp")] -internal static extern void SteamAPI_ISteamHTMLSurface_KeyUp(IntPtr instancePtr, uint unBrowserHandle, uint nNativeKeyCode, uint eHTMLKeyModifiers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_KeyChar")] -internal static extern void SteamAPI_ISteamHTMLSurface_KeyChar(IntPtr instancePtr, uint unBrowserHandle, uint cUnicodeChar, uint eHTMLKeyModifiers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetHorizontalScroll")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetHorizontalScroll(IntPtr instancePtr, uint unBrowserHandle, uint nAbsolutePixelScroll); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetVerticalScroll")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetVerticalScroll(IntPtr instancePtr, uint unBrowserHandle, uint nAbsolutePixelScroll); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetKeyFocus")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetKeyFocus(IntPtr instancePtr, uint unBrowserHandle, bool bHasKeyFocus); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_ViewSource")] -internal static extern void SteamAPI_ISteamHTMLSurface_ViewSource(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_CopyToClipboard")] -internal static extern void SteamAPI_ISteamHTMLSurface_CopyToClipboard(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_PasteFromClipboard")] -internal static extern void SteamAPI_ISteamHTMLSurface_PasteFromClipboard(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_Find")] -internal static extern void SteamAPI_ISteamHTMLSurface_Find(IntPtr instancePtr, uint unBrowserHandle, string pchSearchStr, bool bCurrentlyInFind, bool bReverse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_StopFind")] -internal static extern void SteamAPI_ISteamHTMLSurface_StopFind(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_GetLinkAtPosition")] -internal static extern void SteamAPI_ISteamHTMLSurface_GetLinkAtPosition(IntPtr instancePtr, uint unBrowserHandle, int x, int y); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetCookie")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetCookie(IntPtr instancePtr, string pchHostname, string pchKey, string pchValue, string pchPath, ulong nExpires, bool bSecure, bool bHTTPOnly); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetPageScaleFactor")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetPageScaleFactor(IntPtr instancePtr, uint unBrowserHandle, float flZoom, int nPointX, int nPointY); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetBackgroundMode")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetBackgroundMode(IntPtr instancePtr, uint unBrowserHandle, bool bBackgroundMode); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_AllowStartRequest")] -internal static extern void SteamAPI_ISteamHTMLSurface_AllowStartRequest(IntPtr instancePtr, uint unBrowserHandle, bool bAllowed); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_JSDialogResponse")] -internal static extern void SteamAPI_ISteamHTMLSurface_JSDialogResponse(IntPtr instancePtr, uint unBrowserHandle, bool bResult); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetResultStatus")] -internal static extern uint SteamAPI_ISteamInventory_GetResultStatus(IntPtr instancePtr, int resultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetResultItems")] -internal static extern bool SteamAPI_ISteamInventory_GetResultItems(IntPtr instancePtr, int resultHandle, [In, Out] SteamItemDetails_t[] pOutItemsArray, ref uint punOutItemsArraySize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetResultTimestamp")] -internal static extern uint SteamAPI_ISteamInventory_GetResultTimestamp(IntPtr instancePtr, int resultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_CheckResultSteamID")] -internal static extern bool SteamAPI_ISteamInventory_CheckResultSteamID(IntPtr instancePtr, int resultHandle, ulong steamIDExpected); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_DestroyResult")] -internal static extern void SteamAPI_ISteamInventory_DestroyResult(IntPtr instancePtr, int resultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetAllItems")] -internal static extern bool SteamAPI_ISteamInventory_GetAllItems(IntPtr instancePtr, ref int pResultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetItemsByID")] -internal static extern bool SteamAPI_ISteamInventory_GetItemsByID(IntPtr instancePtr, ref int pResultHandle, [In, Out] ulong[] pInstanceIDs, uint unCountInstanceIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_SerializeResult")] -internal static extern bool SteamAPI_ISteamInventory_SerializeResult(IntPtr instancePtr, int resultHandle, IntPtr pOutBuffer, ref uint punOutBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_DeserializeResult")] -internal static extern bool SteamAPI_ISteamInventory_DeserializeResult(IntPtr instancePtr, ref int pOutResultHandle, IntPtr pBuffer, uint unBufferSize, bool bRESERVED_MUST_BE_FALSE); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GenerateItems")] -internal static extern bool SteamAPI_ISteamInventory_GenerateItems(IntPtr instancePtr, ref int pResultHandle, [In, Out] int[] pArrayItemDefs, [In, Out] uint[] punArrayQuantity, uint unArrayLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GrantPromoItems")] -internal static extern bool SteamAPI_ISteamInventory_GrantPromoItems(IntPtr instancePtr, ref int pResultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_AddPromoItem")] -internal static extern bool SteamAPI_ISteamInventory_AddPromoItem(IntPtr instancePtr, ref int pResultHandle, int itemDef); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_AddPromoItems")] -internal static extern bool SteamAPI_ISteamInventory_AddPromoItems(IntPtr instancePtr, ref int pResultHandle, [In, Out] int[] pArrayItemDefs, uint unArrayLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_ConsumeItem")] -internal static extern bool SteamAPI_ISteamInventory_ConsumeItem(IntPtr instancePtr, ref int pResultHandle, ulong itemConsume, uint unQuantity); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_ExchangeItems")] -internal static extern bool SteamAPI_ISteamInventory_ExchangeItems(IntPtr instancePtr, ref int pResultHandle, [In, Out] int[] pArrayGenerate, [In, Out] uint[] punArrayGenerateQuantity, uint unArrayGenerateLength, [In, Out] ulong[] pArrayDestroy, [In, Out] uint[] punArrayDestroyQuantity, uint unArrayDestroyLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_TransferItemQuantity")] -internal static extern bool SteamAPI_ISteamInventory_TransferItemQuantity(IntPtr instancePtr, ref int pResultHandle, ulong itemIdSource, uint unQuantity, ulong itemIdDest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_SendItemDropHeartbeat")] -internal static extern void SteamAPI_ISteamInventory_SendItemDropHeartbeat(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_TriggerItemDrop")] -internal static extern bool SteamAPI_ISteamInventory_TriggerItemDrop(IntPtr instancePtr, ref int pResultHandle, int dropListDefinition); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_TradeItems")] -internal static extern bool SteamAPI_ISteamInventory_TradeItems(IntPtr instancePtr, ref int pResultHandle, ulong steamIDTradePartner, [In, Out] ulong[] pArrayGive, [In, Out] uint[] pArrayGiveQuantity, uint nArrayGiveLength, [In, Out] ulong[] pArrayGet, [In, Out] uint[] pArrayGetQuantity, uint nArrayGetLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_LoadItemDefinitions")] -internal static extern bool SteamAPI_ISteamInventory_LoadItemDefinitions(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetItemDefinitionIDs")] -internal static extern bool SteamAPI_ISteamInventory_GetItemDefinitionIDs(IntPtr instancePtr, [In, Out] int[] pItemDefIDs, ref uint punItemDefIDsArraySize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetItemDefinitionProperty")] -internal static extern bool SteamAPI_ISteamInventory_GetItemDefinitionProperty(IntPtr instancePtr, int iDefinition, string pchPropertyName, System.Text.StringBuilder pchValueBuffer, ref uint punValueBufferSizeOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamVideo_GetVideoURL")] -internal static extern void SteamAPI_ISteamVideo_GetVideoURL(IntPtr instancePtr, uint unVideoAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamVideo_IsBroadcasting")] -internal static extern bool SteamAPI_ISteamVideo_IsBroadcasting(IntPtr instancePtr, ref int pnNumViewers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_InitGameServer")] -internal static extern bool SteamAPI_ISteamGameServer_InitGameServer(IntPtr instancePtr, uint unIP, char usGamePort, char usQueryPort, uint unFlags, uint nGameAppId, string pchVersionString); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetProduct")] -internal static extern void SteamAPI_ISteamGameServer_SetProduct(IntPtr instancePtr, string pszProduct); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetGameDescription")] -internal static extern void SteamAPI_ISteamGameServer_SetGameDescription(IntPtr instancePtr, string pszGameDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetModDir")] -internal static extern void SteamAPI_ISteamGameServer_SetModDir(IntPtr instancePtr, string pszModDir); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetDedicatedServer")] -internal static extern void SteamAPI_ISteamGameServer_SetDedicatedServer(IntPtr instancePtr, bool bDedicated); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_LogOn")] -internal static extern void SteamAPI_ISteamGameServer_LogOn(IntPtr instancePtr, string pszToken); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_LogOnAnonymous")] -internal static extern void SteamAPI_ISteamGameServer_LogOnAnonymous(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_LogOff")] -internal static extern void SteamAPI_ISteamGameServer_LogOff(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_BLoggedOn")] -internal static extern bool SteamAPI_ISteamGameServer_BLoggedOn(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_BSecure")] -internal static extern bool SteamAPI_ISteamGameServer_BSecure(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetSteamID")] -internal static extern ulong SteamAPI_ISteamGameServer_GetSteamID(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_WasRestartRequested")] -internal static extern bool SteamAPI_ISteamGameServer_WasRestartRequested(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetMaxPlayerCount")] -internal static extern void SteamAPI_ISteamGameServer_SetMaxPlayerCount(IntPtr instancePtr, int cPlayersMax); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetBotPlayerCount")] -internal static extern void SteamAPI_ISteamGameServer_SetBotPlayerCount(IntPtr instancePtr, int cBotplayers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetServerName")] -internal static extern void SteamAPI_ISteamGameServer_SetServerName(IntPtr instancePtr, string pszServerName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetMapName")] -internal static extern void SteamAPI_ISteamGameServer_SetMapName(IntPtr instancePtr, string pszMapName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetPasswordProtected")] -internal static extern void SteamAPI_ISteamGameServer_SetPasswordProtected(IntPtr instancePtr, bool bPasswordProtected); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetSpectatorPort")] -internal static extern void SteamAPI_ISteamGameServer_SetSpectatorPort(IntPtr instancePtr, char unSpectatorPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetSpectatorServerName")] -internal static extern void SteamAPI_ISteamGameServer_SetSpectatorServerName(IntPtr instancePtr, string pszSpectatorServerName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_ClearAllKeyValues")] -internal static extern void SteamAPI_ISteamGameServer_ClearAllKeyValues(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetKeyValue")] -internal static extern void SteamAPI_ISteamGameServer_SetKeyValue(IntPtr instancePtr, string pKey, string pValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetGameTags")] -internal static extern void SteamAPI_ISteamGameServer_SetGameTags(IntPtr instancePtr, string pchGameTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetGameData")] -internal static extern void SteamAPI_ISteamGameServer_SetGameData(IntPtr instancePtr, string pchGameData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetRegion")] -internal static extern void SteamAPI_ISteamGameServer_SetRegion(IntPtr instancePtr, string pszRegion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate")] -internal static extern bool SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate(IntPtr instancePtr, uint unIPClient, IntPtr pvAuthBlob, uint cubAuthBlobSize, ref CSteamID pSteamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection")] -internal static extern ulong SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SendUserDisconnect")] -internal static extern void SteamAPI_ISteamGameServer_SendUserDisconnect(IntPtr instancePtr, ulong steamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_BUpdateUserData")] -internal static extern bool SteamAPI_ISteamGameServer_BUpdateUserData(IntPtr instancePtr, ulong steamIDUser, string pchPlayerName, uint uScore); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetAuthSessionTicket")] -internal static extern uint SteamAPI_ISteamGameServer_GetAuthSessionTicket(IntPtr instancePtr, IntPtr pTicket, int cbMaxTicket, ref uint pcbTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_BeginAuthSession")] -internal static extern uint SteamAPI_ISteamGameServer_BeginAuthSession(IntPtr instancePtr, IntPtr pAuthTicket, int cbAuthTicket, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_EndAuthSession")] -internal static extern void SteamAPI_ISteamGameServer_EndAuthSession(IntPtr instancePtr, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_CancelAuthTicket")] -internal static extern void SteamAPI_ISteamGameServer_CancelAuthTicket(IntPtr instancePtr, uint hAuthTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_UserHasLicenseForApp")] -internal static extern uint SteamAPI_ISteamGameServer_UserHasLicenseForApp(IntPtr instancePtr, ulong steamID, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_RequestUserGroupStatus")] -internal static extern bool SteamAPI_ISteamGameServer_RequestUserGroupStatus(IntPtr instancePtr, ulong steamIDUser, ulong steamIDGroup); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetGameplayStats")] -internal static extern void SteamAPI_ISteamGameServer_GetGameplayStats(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetServerReputation")] -internal static extern ulong SteamAPI_ISteamGameServer_GetServerReputation(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetPublicIP")] -internal static extern uint SteamAPI_ISteamGameServer_GetPublicIP(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_HandleIncomingPacket")] -internal static extern bool SteamAPI_ISteamGameServer_HandleIncomingPacket(IntPtr instancePtr, IntPtr pData, int cbData, uint srcIP, char srcPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetNextOutgoingPacket")] -internal static extern int SteamAPI_ISteamGameServer_GetNextOutgoingPacket(IntPtr instancePtr, IntPtr pOut, int cbMaxOut, ref uint pNetAdr, ref char pPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_EnableHeartbeats")] -internal static extern void SteamAPI_ISteamGameServer_EnableHeartbeats(IntPtr instancePtr, bool bActive); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetHeartbeatInterval")] -internal static extern void SteamAPI_ISteamGameServer_SetHeartbeatInterval(IntPtr instancePtr, int iHeartbeatInterval); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_ForceHeartbeat")] -internal static extern void SteamAPI_ISteamGameServer_ForceHeartbeat(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_AssociateWithClan")] -internal static extern ulong SteamAPI_ISteamGameServer_AssociateWithClan(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility")] -internal static extern ulong SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility(IntPtr instancePtr, ulong steamIDNewPlayer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_RequestUserStats")] -internal static extern ulong SteamAPI_ISteamGameServerStats_RequestUserStats(IntPtr instancePtr, ulong steamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_GetUserStat")] -internal static extern bool SteamAPI_ISteamGameServerStats_GetUserStat(IntPtr instancePtr, ulong steamIDUser, string pchName, ref int pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_GetUserStat0")] -internal static extern bool SteamAPI_ISteamGameServerStats_GetUserStat0(IntPtr instancePtr, ulong steamIDUser, string pchName, ref float pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_GetUserAchievement")] -internal static extern bool SteamAPI_ISteamGameServerStats_GetUserAchievement(IntPtr instancePtr, ulong steamIDUser, string pchName, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_SetUserStat")] -internal static extern bool SteamAPI_ISteamGameServerStats_SetUserStat(IntPtr instancePtr, ulong steamIDUser, string pchName, int nData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_SetUserStat0")] -internal static extern bool SteamAPI_ISteamGameServerStats_SetUserStat0(IntPtr instancePtr, ulong steamIDUser, string pchName, float fData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat")] -internal static extern bool SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat(IntPtr instancePtr, ulong steamIDUser, string pchName, float flCountThisSession, double dSessionLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_SetUserAchievement")] -internal static extern bool SteamAPI_ISteamGameServerStats_SetUserAchievement(IntPtr instancePtr, ulong steamIDUser, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_ClearUserAchievement")] -internal static extern bool SteamAPI_ISteamGameServerStats_ClearUserAchievement(IntPtr instancePtr, ulong steamIDUser, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_StoreUserStats")] -internal static extern ulong SteamAPI_ISteamGameServerStats_StoreUserStats(IntPtr instancePtr, ulong steamIDUser); -public delegate void SteamAPI_UserStatsReceived_t_Callback(UserStatsReceived_t pUserStatsReceived_t); -[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_SetCallback")] -public static extern ulong CUserStatsReceived_t_SetCallback(SteamAPI_UserStatsReceived_t_Callback func); -[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_RemoveCallback")] -public static extern ulong CUserStatsReceived_t_RemoveCallback(ulong handle); -public delegate void SteamAPI_RemoteStorageFileReadAsyncComplete_t_CallResult(RemoteStorageFileReadAsyncComplete_t pRemoteStorageFileReadAsyncComplete_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileReadAsyncComplete_t_SetCallResult")] -public static extern ulong CRemoteStorageFileReadAsyncComplete_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageFileReadAsyncComplete_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileReadAsyncComplete_t_RemoveCallResult")] -public static extern ulong CRemoteStorageFileReadAsyncComplete_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult(RemoteStorageGetPublishedItemVoteDetailsResult_t pRemoteStorageGetPublishedItemVoteDetailsResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedItemVoteDetailsResult_t_SetCallResult")] -public static extern ulong CRemoteStorageGetPublishedItemVoteDetailsResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedItemVoteDetailsResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageGetPublishedItemVoteDetailsResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_FileDetailsResult_t_CallResult(FileDetailsResult_t pFileDetailsResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CFileDetailsResult_t_SetCallResult")] -public static extern ulong CFileDetailsResult_t_SetCallResult(ulong hAPICall, SteamAPI_FileDetailsResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CFileDetailsResult_t_RemoveCallResult")] -public static extern ulong CFileDetailsResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GSStatsStored_t_CallResult(GSStatsStored_t pGSStatsStored_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGSStatsStored_t_SetCallResult")] -public static extern ulong CGSStatsStored_t_SetCallResult(ulong hAPICall, SteamAPI_GSStatsStored_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGSStatsStored_t_RemoveCallResult")] -public static extern ulong CGSStatsStored_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_HTML_BrowserReady_t_CallResult(HTML_BrowserReady_t pHTML_BrowserReady_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CHTML_BrowserReady_t_SetCallResult")] -public static extern ulong CHTML_BrowserReady_t_SetCallResult(ulong hAPICall, SteamAPI_HTML_BrowserReady_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CHTML_BrowserReady_t_RemoveCallResult")] -public static extern ulong CHTML_BrowserReady_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_FriendsGetFollowerCount_t_CallResult(FriendsGetFollowerCount_t pFriendsGetFollowerCount_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsGetFollowerCount_t_SetCallResult")] -public static extern ulong CFriendsGetFollowerCount_t_SetCallResult(ulong hAPICall, SteamAPI_FriendsGetFollowerCount_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsGetFollowerCount_t_RemoveCallResult")] -public static extern ulong CFriendsGetFollowerCount_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_FriendsIsFollowing_t_CallResult(FriendsIsFollowing_t pFriendsIsFollowing_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsIsFollowing_t_SetCallResult")] -public static extern ulong CFriendsIsFollowing_t_SetCallResult(ulong hAPICall, SteamAPI_FriendsIsFollowing_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsIsFollowing_t_RemoveCallResult")] -public static extern ulong CFriendsIsFollowing_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LobbyMatchList_t_CallResult(LobbyMatchList_t pLobbyMatchList_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyMatchList_t_SetCallResult")] -public static extern ulong CLobbyMatchList_t_SetCallResult(ulong hAPICall, SteamAPI_LobbyMatchList_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyMatchList_t_RemoveCallResult")] -public static extern ulong CLobbyMatchList_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageUpdatePublishedFileResult_t_CallResult(RemoteStorageUpdatePublishedFileResult_t pRemoteStorageUpdatePublishedFileResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUpdatePublishedFileResult_t_SetCallResult")] -public static extern ulong CRemoteStorageUpdatePublishedFileResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageUpdatePublishedFileResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUpdatePublishedFileResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageUpdatePublishedFileResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_StoreAuthURLResponse_t_CallResult(StoreAuthURLResponse_t pStoreAuthURLResponse_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CStoreAuthURLResponse_t_SetCallResult")] -public static extern ulong CStoreAuthURLResponse_t_SetCallResult(ulong hAPICall, SteamAPI_StoreAuthURLResponse_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CStoreAuthURLResponse_t_RemoveCallResult")] -public static extern ulong CStoreAuthURLResponse_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LobbyCreated_t_CallResult(LobbyCreated_t pLobbyCreated_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyCreated_t_SetCallResult")] -public static extern ulong CLobbyCreated_t_SetCallResult(ulong hAPICall, SteamAPI_LobbyCreated_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyCreated_t_RemoveCallResult")] -public static extern ulong CLobbyCreated_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageFileWriteAsyncComplete_t_CallResult(RemoteStorageFileWriteAsyncComplete_t pRemoteStorageFileWriteAsyncComplete_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileWriteAsyncComplete_t_SetCallResult")] -public static extern ulong CRemoteStorageFileWriteAsyncComplete_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageFileWriteAsyncComplete_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileWriteAsyncComplete_t_RemoveCallResult")] -public static extern ulong CRemoteStorageFileWriteAsyncComplete_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageDeletePublishedFileResult_t_CallResult(RemoteStorageDeletePublishedFileResult_t pRemoteStorageDeletePublishedFileResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDeletePublishedFileResult_t_SetCallResult")] -public static extern ulong CRemoteStorageDeletePublishedFileResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageDeletePublishedFileResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDeletePublishedFileResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageDeletePublishedFileResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageGetPublishedFileDetailsResult_t_CallResult(RemoteStorageGetPublishedFileDetailsResult_t pRemoteStorageGetPublishedFileDetailsResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedFileDetailsResult_t_SetCallResult")] -public static extern ulong CRemoteStorageGetPublishedFileDetailsResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageGetPublishedFileDetailsResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageDownloadUGCResult_t_CallResult(RemoteStorageDownloadUGCResult_t pRemoteStorageDownloadUGCResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDownloadUGCResult_t_SetCallResult")] -public static extern ulong CRemoteStorageDownloadUGCResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageDownloadUGCResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDownloadUGCResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageDownloadUGCResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_SteamUGCQueryCompleted_t_CallResult(SteamUGCQueryCompleted_t pSteamUGCQueryCompleted_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CSteamUGCQueryCompleted_t_SetCallResult")] -public static extern ulong CSteamUGCQueryCompleted_t_SetCallResult(ulong hAPICall, SteamAPI_SteamUGCQueryCompleted_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CSteamUGCQueryCompleted_t_RemoveCallResult")] -public static extern ulong CSteamUGCQueryCompleted_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageFileShareResult_t_CallResult(RemoteStorageFileShareResult_t pRemoteStorageFileShareResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileShareResult_t_SetCallResult")] -public static extern ulong CRemoteStorageFileShareResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageFileShareResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileShareResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageFileShareResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LobbyEnter_t_CallResult(LobbyEnter_t pLobbyEnter_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyEnter_t_SetCallResult")] -public static extern ulong CLobbyEnter_t_SetCallResult(ulong hAPICall, SteamAPI_LobbyEnter_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyEnter_t_RemoveCallResult")] -public static extern ulong CLobbyEnter_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_SubmitItemUpdateResult_t_CallResult(SubmitItemUpdateResult_t pSubmitItemUpdateResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CSubmitItemUpdateResult_t_SetCallResult")] -public static extern ulong CSubmitItemUpdateResult_t_SetCallResult(ulong hAPICall, SteamAPI_SubmitItemUpdateResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CSubmitItemUpdateResult_t_RemoveCallResult")] -public static extern ulong CSubmitItemUpdateResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_NumberOfCurrentPlayers_t_CallResult(NumberOfCurrentPlayers_t pNumberOfCurrentPlayers_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CNumberOfCurrentPlayers_t_SetCallResult")] -public static extern ulong CNumberOfCurrentPlayers_t_SetCallResult(ulong hAPICall, SteamAPI_NumberOfCurrentPlayers_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CNumberOfCurrentPlayers_t_RemoveCallResult")] -public static extern ulong CNumberOfCurrentPlayers_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GSStatsReceived_t_CallResult(GSStatsReceived_t pGSStatsReceived_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGSStatsReceived_t_SetCallResult")] -public static extern ulong CGSStatsReceived_t_SetCallResult(ulong hAPICall, SteamAPI_GSStatsReceived_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGSStatsReceived_t_RemoveCallResult")] -public static extern ulong CGSStatsReceived_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LeaderboardScoresDownloaded_t_CallResult(LeaderboardScoresDownloaded_t pLeaderboardScoresDownloaded_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardScoresDownloaded_t_SetCallResult")] -public static extern ulong CLeaderboardScoresDownloaded_t_SetCallResult(ulong hAPICall, SteamAPI_LeaderboardScoresDownloaded_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardScoresDownloaded_t_RemoveCallResult")] -public static extern ulong CLeaderboardScoresDownloaded_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult(RemoteStorageUpdateUserPublishedItemVoteResult_t pRemoteStorageUpdateUserPublishedItemVoteResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUpdateUserPublishedItemVoteResult_t_SetCallResult")] -public static extern ulong CRemoteStorageUpdateUserPublishedItemVoteResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUpdateUserPublishedItemVoteResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageUpdateUserPublishedItemVoteResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult(RemoteStorageEnumerateUserSubscribedFilesResult_t pRemoteStorageEnumerateUserSubscribedFilesResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateUserSubscribedFilesResult_t_SetCallResult")] -public static extern ulong CRemoteStorageEnumerateUserSubscribedFilesResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateUserSubscribedFilesResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageEnumerateUserSubscribedFilesResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_CreateItemResult_t_CallResult(CreateItemResult_t pCreateItemResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CCreateItemResult_t_SetCallResult")] -public static extern ulong CCreateItemResult_t_SetCallResult(ulong hAPICall, SteamAPI_CreateItemResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CCreateItemResult_t_RemoveCallResult")] -public static extern ulong CCreateItemResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_SetUserItemVoteResult_t_CallResult(SetUserItemVoteResult_t pSetUserItemVoteResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CSetUserItemVoteResult_t_SetCallResult")] -public static extern ulong CSetUserItemVoteResult_t_SetCallResult(ulong hAPICall, SteamAPI_SetUserItemVoteResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CSetUserItemVoteResult_t_RemoveCallResult")] -public static extern ulong CSetUserItemVoteResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_ComputeNewPlayerCompatibilityResult_t_CallResult(ComputeNewPlayerCompatibilityResult_t pComputeNewPlayerCompatibilityResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CComputeNewPlayerCompatibilityResult_t_SetCallResult")] -public static extern ulong CComputeNewPlayerCompatibilityResult_t_SetCallResult(ulong hAPICall, SteamAPI_ComputeNewPlayerCompatibilityResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CComputeNewPlayerCompatibilityResult_t_RemoveCallResult")] -public static extern ulong CComputeNewPlayerCompatibilityResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LeaderboardScoreUploaded_t_CallResult(LeaderboardScoreUploaded_t pLeaderboardScoreUploaded_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardScoreUploaded_t_SetCallResult")] -public static extern ulong CLeaderboardScoreUploaded_t_SetCallResult(ulong hAPICall, SteamAPI_LeaderboardScoreUploaded_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardScoreUploaded_t_RemoveCallResult")] -public static extern ulong CLeaderboardScoreUploaded_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GlobalAchievementPercentagesReady_t_CallResult(GlobalAchievementPercentagesReady_t pGlobalAchievementPercentagesReady_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGlobalAchievementPercentagesReady_t_SetCallResult")] -public static extern ulong CGlobalAchievementPercentagesReady_t_SetCallResult(ulong hAPICall, SteamAPI_GlobalAchievementPercentagesReady_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGlobalAchievementPercentagesReady_t_RemoveCallResult")] -public static extern ulong CGlobalAchievementPercentagesReady_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GlobalStatsReceived_t_CallResult(GlobalStatsReceived_t pGlobalStatsReceived_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGlobalStatsReceived_t_SetCallResult")] -public static extern ulong CGlobalStatsReceived_t_SetCallResult(ulong hAPICall, SteamAPI_GlobalStatsReceived_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGlobalStatsReceived_t_RemoveCallResult")] -public static extern ulong CGlobalStatsReceived_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult(RemoteStorageEnumeratePublishedFilesByUserActionResult_t pRemoteStorageEnumeratePublishedFilesByUserActionResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_SetCallResult")] -public static extern ulong CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_ClanOfficerListResponse_t_CallResult(ClanOfficerListResponse_t pClanOfficerListResponse_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CClanOfficerListResponse_t_SetCallResult")] -public static extern ulong CClanOfficerListResponse_t_SetCallResult(ulong hAPICall, SteamAPI_ClanOfficerListResponse_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CClanOfficerListResponse_t_RemoveCallResult")] -public static extern ulong CClanOfficerListResponse_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStoragePublishFileProgress_t_CallResult(RemoteStoragePublishFileProgress_t pRemoteStoragePublishFileProgress_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStoragePublishFileProgress_t_SetCallResult")] -public static extern ulong CRemoteStoragePublishFileProgress_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStoragePublishFileProgress_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStoragePublishFileProgress_t_RemoveCallResult")] -public static extern ulong CRemoteStoragePublishFileProgress_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallResult(RemoteStorageEnumerateWorkshopFilesResult_t pRemoteStorageEnumerateWorkshopFilesResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult")] -public static extern ulong CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GSReputation_t_CallResult(GSReputation_t pGSReputation_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGSReputation_t_SetCallResult")] -public static extern ulong CGSReputation_t_SetCallResult(ulong hAPICall, SteamAPI_GSReputation_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGSReputation_t_RemoveCallResult")] -public static extern ulong CGSReputation_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_UserFavoriteItemsListChanged_t_CallResult(UserFavoriteItemsListChanged_t pUserFavoriteItemsListChanged_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CUserFavoriteItemsListChanged_t_SetCallResult")] -public static extern ulong CUserFavoriteItemsListChanged_t_SetCallResult(ulong hAPICall, SteamAPI_UserFavoriteItemsListChanged_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CUserFavoriteItemsListChanged_t_RemoveCallResult")] -public static extern ulong CUserFavoriteItemsListChanged_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_EncryptedAppTicketResponse_t_CallResult(EncryptedAppTicketResponse_t pEncryptedAppTicketResponse_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CEncryptedAppTicketResponse_t_SetCallResult")] -public static extern ulong CEncryptedAppTicketResponse_t_SetCallResult(ulong hAPICall, SteamAPI_EncryptedAppTicketResponse_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CEncryptedAppTicketResponse_t_RemoveCallResult")] -public static extern ulong CEncryptedAppTicketResponse_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageSetUserPublishedFileActionResult_t_CallResult(RemoteStorageSetUserPublishedFileActionResult_t pRemoteStorageSetUserPublishedFileActionResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageSetUserPublishedFileActionResult_t_SetCallResult")] -public static extern ulong CRemoteStorageSetUserPublishedFileActionResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageSetUserPublishedFileActionResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageSetUserPublishedFileActionResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageSetUserPublishedFileActionResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageEnumerateUserPublishedFilesResult_t_CallResult(RemoteStorageEnumerateUserPublishedFilesResult_t pRemoteStorageEnumerateUserPublishedFilesResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateUserPublishedFilesResult_t_SetCallResult")] -public static extern ulong CRemoteStorageEnumerateUserPublishedFilesResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumerateUserPublishedFilesResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateUserPublishedFilesResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageEnumerateUserPublishedFilesResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_FriendsEnumerateFollowingList_t_CallResult(FriendsEnumerateFollowingList_t pFriendsEnumerateFollowingList_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsEnumerateFollowingList_t_SetCallResult")] -public static extern ulong CFriendsEnumerateFollowingList_t_SetCallResult(ulong hAPICall, SteamAPI_FriendsEnumerateFollowingList_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsEnumerateFollowingList_t_RemoveCallResult")] -public static extern ulong CFriendsEnumerateFollowingList_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageSubscribePublishedFileResult_t_CallResult(RemoteStorageSubscribePublishedFileResult_t pRemoteStorageSubscribePublishedFileResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageSubscribePublishedFileResult_t_SetCallResult")] -public static extern ulong CRemoteStorageSubscribePublishedFileResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageSubscribePublishedFileResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageSubscribePublishedFileResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageSubscribePublishedFileResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GetUserItemVoteResult_t_CallResult(GetUserItemVoteResult_t pGetUserItemVoteResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGetUserItemVoteResult_t_SetCallResult")] -public static extern ulong CGetUserItemVoteResult_t_SetCallResult(ulong hAPICall, SteamAPI_GetUserItemVoteResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGetUserItemVoteResult_t_RemoveCallResult")] -public static extern ulong CGetUserItemVoteResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_AssociateWithClanResult_t_CallResult(AssociateWithClanResult_t pAssociateWithClanResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CAssociateWithClanResult_t_SetCallResult")] -public static extern ulong CAssociateWithClanResult_t_SetCallResult(ulong hAPICall, SteamAPI_AssociateWithClanResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CAssociateWithClanResult_t_RemoveCallResult")] -public static extern ulong CAssociateWithClanResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LeaderboardUGCSet_t_CallResult(LeaderboardUGCSet_t pLeaderboardUGCSet_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardUGCSet_t_SetCallResult")] -public static extern ulong CLeaderboardUGCSet_t_SetCallResult(ulong hAPICall, SteamAPI_LeaderboardUGCSet_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardUGCSet_t_RemoveCallResult")] -public static extern ulong CLeaderboardUGCSet_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_CheckFileSignature_t_CallResult(CheckFileSignature_t pCheckFileSignature_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CCheckFileSignature_t_SetCallResult")] -public static extern ulong CCheckFileSignature_t_SetCallResult(ulong hAPICall, SteamAPI_CheckFileSignature_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CCheckFileSignature_t_RemoveCallResult")] -public static extern ulong CCheckFileSignature_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageUnsubscribePublishedFileResult_t_CallResult(RemoteStorageUnsubscribePublishedFileResult_t pRemoteStorageUnsubscribePublishedFileResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUnsubscribePublishedFileResult_t_SetCallResult")] -public static extern ulong CRemoteStorageUnsubscribePublishedFileResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageUnsubscribePublishedFileResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUnsubscribePublishedFileResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageUnsubscribePublishedFileResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_SetPersonaNameResponse_t_CallResult(SetPersonaNameResponse_t pSetPersonaNameResponse_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CSetPersonaNameResponse_t_SetCallResult")] -public static extern ulong CSetPersonaNameResponse_t_SetCallResult(ulong hAPICall, SteamAPI_SetPersonaNameResponse_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CSetPersonaNameResponse_t_RemoveCallResult")] -public static extern ulong CSetPersonaNameResponse_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_UserStatsReceived_t_CallResult(UserStatsReceived_t pUserStatsReceived_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_SetCallResult")] -public static extern ulong CUserStatsReceived_t_SetCallResult(ulong hAPICall, SteamAPI_UserStatsReceived_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_RemoveCallResult")] -public static extern ulong CUserStatsReceived_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_JoinClanChatRoomCompletionResult_t_CallResult(JoinClanChatRoomCompletionResult_t pJoinClanChatRoomCompletionResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CJoinClanChatRoomCompletionResult_t_SetCallResult")] -public static extern ulong CJoinClanChatRoomCompletionResult_t_SetCallResult(ulong hAPICall, SteamAPI_JoinClanChatRoomCompletionResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CJoinClanChatRoomCompletionResult_t_RemoveCallResult")] -public static extern ulong CJoinClanChatRoomCompletionResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LeaderboardFindResult_t_CallResult(LeaderboardFindResult_t pLeaderboardFindResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardFindResult_t_SetCallResult")] -public static extern ulong CLeaderboardFindResult_t_SetCallResult(ulong hAPICall, SteamAPI_LeaderboardFindResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardFindResult_t_RemoveCallResult")] -public static extern ulong CLeaderboardFindResult_t_RemoveCallResult(ulong handle); - -} - -} - -namespace Valve.Steamworks -{ - - public abstract class ISteamClient - { - public abstract IntPtr GetIntPtr(); - public abstract uint CreateSteamPipe(); - public abstract bool BReleaseSteamPipe(uint hSteamPipe); - public abstract uint ConnectToGlobalUser(uint hSteamPipe); - public abstract uint CreateLocalUser(ref uint phSteamPipe,uint eAccountType); - public abstract void ReleaseUser(uint hSteamPipe,uint hUser); - public abstract ISteamUser GetISteamUser(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamGameServer GetISteamGameServer(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract void SetLocalIPBinding(uint unIP,char usPort); - public abstract ISteamFriends GetISteamFriends(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamUtils GetISteamUtils(uint hSteamPipe,string pchVersion); - public abstract ISteamMatchmaking GetISteamMatchmaking(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamMatchmakingServers GetISteamMatchmakingServers(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract IntPtr GetISteamGenericInterface(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamUserStats GetISteamUserStats(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamGameServerStats GetISteamGameServerStats(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamApps GetISteamApps(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamNetworking GetISteamNetworking(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamRemoteStorage GetISteamRemoteStorage(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamScreenshots GetISteamScreenshots(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract uint GetIPCCallCount(); - public abstract void SetWarningMessageHook(IntPtr pFunction); - public abstract bool BShutdownIfAllPipesClosed(); - public abstract ISteamHTTP GetISteamHTTP(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamUnifiedMessages GetISteamUnifiedMessages(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamController GetISteamController(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamUGC GetISteamUGC(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamAppList GetISteamAppList(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamMusic GetISteamMusic(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamMusicRemote GetISteamMusicRemote(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamHTMLSurface GetISteamHTMLSurface(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamInventory GetISteamInventory(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamVideo GetISteamVideo(uint hSteamuser,uint hSteamPipe,string pchVersion); - } - - - public abstract class ISteamUser - { - public abstract IntPtr GetIntPtr(); - public abstract uint GetHSteamUser(); - public abstract bool BLoggedOn(); - public abstract ulong GetSteamID(); - public abstract int InitiateGameConnection(IntPtr pAuthBlob,int cbMaxAuthBlob,ulong steamIDGameServer,uint unIPServer,char usPortServer,bool bSecure); - public abstract void TerminateGameConnection(uint unIPServer,char usPortServer); - public abstract void TrackAppUsageEvent(ulong gameID,int eAppUsageEvent,string pchExtraInfo); - public abstract bool GetUserDataFolder(string pchBuffer,int cubBuffer); - public abstract void StartVoiceRecording(); - public abstract void StopVoiceRecording(); - public abstract uint GetAvailableVoice(ref uint pcbCompressed,ref uint pcbUncompressed,uint nUncompressedVoiceDesiredSampleRate); - public abstract uint GetVoice(bool bWantCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,bool bWantUncompressed,IntPtr pUncompressedDestBuffer,uint cbUncompressedDestBufferSize,ref uint nUncompressBytesWritten,uint nUncompressedVoiceDesiredSampleRate); - public abstract uint DecompressVoice(IntPtr pCompressed,uint cbCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,uint nDesiredSampleRate); - public abstract uint GetVoiceOptimalSampleRate(); - public abstract uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket); - public abstract uint BeginAuthSession(IntPtr pAuthTicket,int cbAuthTicket,ulong steamID); - public abstract void EndAuthSession(ulong steamID); - public abstract void CancelAuthTicket(uint hAuthTicket); - public abstract uint UserHasLicenseForApp(ulong steamID,uint appID); - public abstract bool BIsBehindNAT(); - public abstract void AdvertiseGame(ulong steamIDGameServer,uint unIPServer,char usPortServer); - public abstract ulong RequestEncryptedAppTicket(IntPtr pDataToInclude,int cbDataToInclude); - public abstract bool GetEncryptedAppTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket); - public abstract int GetGameBadgeLevel(int nSeries,bool bFoil); - public abstract int GetPlayerSteamLevel(); - public abstract ulong RequestStoreAuthURL(string pchRedirectURL); - public abstract bool BIsPhoneVerified(); - public abstract bool BIsTwoFactorEnabled(); - public abstract bool BIsPhoneIdentifying(); - public abstract bool BIsPhoneRequiringVerification(); - } - - - public abstract class ISteamFriends - { - public abstract IntPtr GetIntPtr(); - public abstract string GetPersonaName(); - public abstract ulong SetPersonaName(string pchPersonaName); - public abstract uint GetPersonaState(); - public abstract int GetFriendCount(int iFriendFlags); - public abstract ulong GetFriendByIndex(int iFriend,int iFriendFlags); - public abstract uint GetFriendRelationship(ulong steamIDFriend); - public abstract uint GetFriendPersonaState(ulong steamIDFriend); - public abstract string GetFriendPersonaName(ulong steamIDFriend); - public abstract bool GetFriendGamePlayed(ulong steamIDFriend,out FriendGameInfo_t pFriendGameInfo); - public abstract string GetFriendPersonaNameHistory(ulong steamIDFriend,int iPersonaName); - public abstract int GetFriendSteamLevel(ulong steamIDFriend); - public abstract string GetPlayerNickname(ulong steamIDPlayer); - public abstract int GetFriendsGroupCount(); - public abstract char GetFriendsGroupIDByIndex(int iFG); - public abstract string GetFriendsGroupName(char friendsGroupID); - public abstract int GetFriendsGroupMembersCount(char friendsGroupID); - public abstract void GetFriendsGroupMembersList(char friendsGroupID,out CSteamID [] pOutSteamIDMembers); - public abstract bool HasFriend(ulong steamIDFriend,int iFriendFlags); - public abstract int GetClanCount(); - public abstract ulong GetClanByIndex(int iClan); - public abstract string GetClanName(ulong steamIDClan); - public abstract string GetClanTag(ulong steamIDClan); - public abstract bool GetClanActivityCounts(ulong steamIDClan,ref int pnOnline,ref int pnInGame,ref int pnChatting); - public abstract ulong DownloadClanActivityCounts(CSteamID [] psteamIDClans); - public abstract int GetFriendCountFromSource(ulong steamIDSource); - public abstract ulong GetFriendFromSourceByIndex(ulong steamIDSource,int iFriend); - public abstract bool IsUserInSource(ulong steamIDUser,ulong steamIDSource); - public abstract void SetInGameVoiceSpeaking(ulong steamIDUser,bool bSpeaking); - public abstract void ActivateGameOverlay(string pchDialog); - public abstract void ActivateGameOverlayToUser(string pchDialog,ulong steamID); - public abstract void ActivateGameOverlayToWebPage(string pchURL); - public abstract void ActivateGameOverlayToStore(uint nAppID,char eFlag); - public abstract void SetPlayedWith(ulong steamIDUserPlayedWith); - public abstract void ActivateGameOverlayInviteDialog(ulong steamIDLobby); - public abstract int GetSmallFriendAvatar(ulong steamIDFriend); - public abstract int GetMediumFriendAvatar(ulong steamIDFriend); - public abstract int GetLargeFriendAvatar(ulong steamIDFriend); - public abstract bool RequestUserInformation(ulong steamIDUser,bool bRequireNameOnly); - public abstract ulong RequestClanOfficerList(ulong steamIDClan); - public abstract ulong GetClanOwner(ulong steamIDClan); - public abstract int GetClanOfficerCount(ulong steamIDClan); - public abstract ulong GetClanOfficerByIndex(ulong steamIDClan,int iOfficer); - public abstract uint GetUserRestrictions(); - public abstract bool SetRichPresence(string pchKey,string pchValue); - public abstract void ClearRichPresence(); - public abstract string GetFriendRichPresence(ulong steamIDFriend,string pchKey); - public abstract int GetFriendRichPresenceKeyCount(ulong steamIDFriend); - public abstract string GetFriendRichPresenceKeyByIndex(ulong steamIDFriend,int iKey); - public abstract void RequestFriendRichPresence(ulong steamIDFriend); - public abstract bool InviteUserToGame(ulong steamIDFriend,string pchConnectString); - public abstract int GetCoplayFriendCount(); - public abstract ulong GetCoplayFriend(int iCoplayFriend); - public abstract int GetFriendCoplayTime(ulong steamIDFriend); - public abstract uint GetFriendCoplayGame(ulong steamIDFriend); - public abstract ulong JoinClanChatRoom(ulong steamIDClan); - public abstract bool LeaveClanChatRoom(ulong steamIDClan); - public abstract int GetClanChatMemberCount(ulong steamIDClan); - public abstract ulong GetChatMemberByIndex(ulong steamIDClan,int iUser); - public abstract bool SendClanChatMessage(ulong steamIDClanChat,string pchText); - public abstract int GetClanChatMessage(ulong steamIDClanChat,int iMessage,IntPtr prgchText,int cchTextMax,ref uint peChatEntryType,out CSteamID psteamidChatter); - public abstract bool IsClanChatAdmin(ulong steamIDClanChat,ulong steamIDUser); - public abstract bool IsClanChatWindowOpenInSteam(ulong steamIDClanChat); - public abstract bool OpenClanChatWindowInSteam(ulong steamIDClanChat); - public abstract bool CloseClanChatWindowInSteam(ulong steamIDClanChat); - public abstract bool SetListenForFriendsMessages(bool bInterceptEnabled); - public abstract bool ReplyToFriendMessage(ulong steamIDFriend,string pchMsgToSend); - public abstract int GetFriendMessage(ulong steamIDFriend,int iMessageID,IntPtr pvData,int cubData,ref uint peChatEntryType); - public abstract ulong GetFollowerCount(ulong steamID); - public abstract ulong IsFollowing(ulong steamID); - public abstract ulong EnumerateFollowingList(uint unStartIndex); - } - - - public abstract class ISteamUtils - { - public abstract IntPtr GetIntPtr(); - public abstract uint GetSecondsSinceAppActive(); - public abstract uint GetSecondsSinceComputerActive(); - public abstract int GetConnectedUniverse(); - public abstract uint GetServerRealTime(); - public abstract string GetIPCountry(); - public abstract bool GetImageSize(int iImage,ref uint pnWidth,ref uint pnHeight); - public abstract bool GetImageRGBA(int iImage,IntPtr pubDest,int nDestBufferSize); - public abstract bool GetCSERIPPort(ref uint unIP,ref char usPort); - public abstract byte GetCurrentBatteryPower(); - public abstract uint GetAppID(); - public abstract void SetOverlayNotificationPosition(uint eNotificationPosition); - public abstract bool IsAPICallCompleted(ulong hSteamAPICall,ref bool pbFailed); - public abstract int GetAPICallFailureReason(ulong hSteamAPICall); - public abstract bool GetAPICallResult(ulong hSteamAPICall,IntPtr pCallback,int cubCallback,int iCallbackExpected,ref bool pbFailed); - public abstract uint GetIPCCallCount(); - public abstract void SetWarningMessageHook(IntPtr pFunction); - public abstract bool IsOverlayEnabled(); - public abstract bool BOverlayNeedsPresent(); - public abstract ulong CheckFileSignature(string szFileName); - public abstract bool ShowGamepadTextInput(int eInputMode,int eLineInputMode,string pchDescription,uint unCharMax,string pchExistingText); - public abstract uint GetEnteredGamepadTextLength(); - public abstract bool GetEnteredGamepadTextInput(string pchText,uint cchText); - public abstract string GetSteamUILanguage(); - public abstract bool IsSteamRunningInVR(); - public abstract void SetOverlayNotificationInset(int nHorizontalInset,int nVerticalInset); - public abstract bool IsSteamInBigPictureMode(); - public abstract void StartVRDashboard(); - } - - - public abstract class ISteamMatchmaking - { - public abstract IntPtr GetIntPtr(); - public abstract int GetFavoriteGameCount(); - public abstract bool GetFavoriteGame(int iGame,ref uint pnAppID,ref uint pnIP,ref char pnConnPort,ref char pnQueryPort,ref uint punFlags,ref uint pRTime32LastPlayedOnServer); - public abstract int AddFavoriteGame(uint nAppID,uint nIP,char nConnPort,char nQueryPort,uint unFlags,uint rTime32LastPlayedOnServer); - public abstract bool RemoveFavoriteGame(uint nAppID,uint nIP,char nConnPort,char nQueryPort,uint unFlags); - public abstract ulong RequestLobbyList(); - public abstract void AddRequestLobbyListStringFilter(string pchKeyToMatch,string pchValueToMatch,uint eComparisonType); - public abstract void AddRequestLobbyListNumericalFilter(string pchKeyToMatch,int nValueToMatch,uint eComparisonType); - public abstract void AddRequestLobbyListNearValueFilter(string pchKeyToMatch,int nValueToBeCloseTo); - public abstract void AddRequestLobbyListFilterSlotsAvailable(int nSlotsAvailable); - public abstract void AddRequestLobbyListDistanceFilter(uint eLobbyDistanceFilter); - public abstract void AddRequestLobbyListResultCountFilter(int cMaxResults); - public abstract void AddRequestLobbyListCompatibleMembersFilter(ulong steamIDLobby); - public abstract ulong GetLobbyByIndex(int iLobby); - public abstract ulong CreateLobby(uint eLobbyType,int cMaxMembers); - public abstract ulong JoinLobby(ulong steamIDLobby); - public abstract void LeaveLobby(ulong steamIDLobby); - public abstract bool InviteUserToLobby(ulong steamIDLobby,ulong steamIDInvitee); - public abstract int GetNumLobbyMembers(ulong steamIDLobby); - public abstract ulong GetLobbyMemberByIndex(ulong steamIDLobby,int iMember); - public abstract string GetLobbyData(ulong steamIDLobby,string pchKey); - public abstract bool SetLobbyData(ulong steamIDLobby,string pchKey,string pchValue); - public abstract int GetLobbyDataCount(ulong steamIDLobby); - public abstract bool GetLobbyDataByIndex(ulong steamIDLobby,int iLobbyData,string pchKey,int cchKeyBufferSize,string pchValue,int cchValueBufferSize); - public abstract bool DeleteLobbyData(ulong steamIDLobby,string pchKey); - public abstract string GetLobbyMemberData(ulong steamIDLobby,ulong steamIDUser,string pchKey); - public abstract void SetLobbyMemberData(ulong steamIDLobby,string pchKey,string pchValue); - public abstract bool SendLobbyChatMsg(ulong steamIDLobby,IntPtr pvMsgBody,int cubMsgBody); - public abstract int GetLobbyChatEntry(ulong steamIDLobby,int iChatID,out CSteamID pSteamIDUser,IntPtr pvData,int cubData,ref uint peChatEntryType); - public abstract bool RequestLobbyData(ulong steamIDLobby); - public abstract void SetLobbyGameServer(ulong steamIDLobby,uint unGameServerIP,char unGameServerPort,ulong steamIDGameServer); - public abstract bool GetLobbyGameServer(ulong steamIDLobby,ref uint punGameServerIP,ref char punGameServerPort,out CSteamID psteamIDGameServer); - public abstract bool SetLobbyMemberLimit(ulong steamIDLobby,int cMaxMembers); - public abstract int GetLobbyMemberLimit(ulong steamIDLobby); - public abstract bool SetLobbyType(ulong steamIDLobby,uint eLobbyType); - public abstract bool SetLobbyJoinable(ulong steamIDLobby,bool bLobbyJoinable); - public abstract ulong GetLobbyOwner(ulong steamIDLobby); - public abstract bool SetLobbyOwner(ulong steamIDLobby,ulong steamIDNewOwner); - public abstract bool SetLinkedLobby(ulong steamIDLobby,ulong steamIDLobbyDependent); - } - - - public abstract class ISteamMatchmakingServerListResponse - { - public abstract IntPtr GetIntPtr(); - public abstract void ServerResponded(uint hRequest,int iServer); - public abstract void ServerFailedToRespond(uint hRequest,int iServer); - public abstract void RefreshComplete(uint hRequest,uint response); - } - - - public abstract class ISteamMatchmakingPingResponse - { - public abstract IntPtr GetIntPtr(); - public abstract void ServerResponded(IntPtr server); - public abstract void ServerFailedToRespond(); - } - - - public abstract class ISteamMatchmakingPlayersResponse - { - public abstract IntPtr GetIntPtr(); - public abstract void AddPlayerToList(string pchName,int nScore,float flTimePlayed); - public abstract void PlayersFailedToRespond(); - public abstract void PlayersRefreshComplete(); - } - - - public abstract class ISteamMatchmakingRulesResponse - { - public abstract IntPtr GetIntPtr(); - public abstract void RulesResponded(string pchRule,string pchValue); - public abstract void RulesFailedToRespond(); - public abstract void RulesRefreshComplete(); - } - - - public abstract class ISteamMatchmakingServers - { - public abstract IntPtr GetIntPtr(); - public abstract uint RequestInternetServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestLANServerList(uint iApp,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestFriendsServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestFavoritesServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestHistoryServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestSpectatorServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract void ReleaseRequest(uint hServerListRequest); - public abstract gameserveritem_t GetServerDetails(uint hRequest,int iServer); - public abstract void CancelQuery(uint hRequest); - public abstract void RefreshQuery(uint hRequest); - public abstract bool IsRefreshing(uint hRequest); - public abstract int GetServerCount(uint hRequest); - public abstract void RefreshServer(uint hRequest,int iServer); - public abstract uint PingServer(uint unIP,char usPort,ISteamMatchmakingPingResponse pRequestServersResponse); - public abstract uint PlayerDetails(uint unIP,char usPort,ISteamMatchmakingPlayersResponse pRequestServersResponse); - public abstract uint ServerRules(uint unIP,char usPort,ISteamMatchmakingRulesResponse pRequestServersResponse); - public abstract void CancelServerQuery(uint hServerQuery); - } - - - public abstract class ISteamRemoteStorage - { - public abstract IntPtr GetIntPtr(); - public abstract bool FileWrite(string pchFile,IntPtr pvData,int cubData); - public abstract int FileRead(string pchFile,IntPtr pvData,int cubDataToRead); - public abstract ulong FileWriteAsync(string pchFile,IntPtr pvData,uint cubData); - public abstract ulong FileReadAsync(string pchFile,uint nOffset,uint cubToRead); - public abstract bool FileReadAsyncComplete(ulong hReadCall,IntPtr pvBuffer,uint cubToRead); - public abstract bool FileForget(string pchFile); - public abstract bool FileDelete(string pchFile); - public abstract ulong FileShare(string pchFile); - public abstract bool SetSyncPlatforms(string pchFile,uint eRemoteStoragePlatform); - public abstract ulong FileWriteStreamOpen(string pchFile); - public abstract bool FileWriteStreamWriteChunk(ulong writeHandle,IntPtr pvData,int cubData); - public abstract bool FileWriteStreamClose(ulong writeHandle); - public abstract bool FileWriteStreamCancel(ulong writeHandle); - public abstract bool FileExists(string pchFile); - public abstract bool FilePersisted(string pchFile); - public abstract int GetFileSize(string pchFile); - public abstract long GetFileTimestamp(string pchFile); - public abstract uint GetSyncPlatforms(string pchFile); - public abstract int GetFileCount(); - public abstract string GetFileNameAndSize(int iFile,ref int pnFileSizeInBytes); - public abstract bool GetQuota(ref ulong pnTotalBytes,ref ulong puAvailableBytes); - public abstract bool IsCloudEnabledForAccount(); - public abstract bool IsCloudEnabledForApp(); - public abstract void SetCloudEnabledForApp(bool bEnabled); - public abstract ulong UGCDownload(ulong hContent,uint unPriority); - public abstract bool GetUGCDownloadProgress(ulong hContent,ref int pnBytesDownloaded,ref int pnBytesExpected); - public abstract bool GetUGCDetails(ulong hContent,ref uint pnAppID,System.Text.StringBuilder ppchName,ref int pnFileSizeInBytes,out CSteamID pSteamIDOwner); - public abstract int UGCRead(ulong hContent,IntPtr pvData,int cubDataToRead,uint cOffset,uint eAction); - public abstract int GetCachedUGCCount(); - public abstract ulong GetCachedUGCHandle(int iCachedContent); - public abstract ulong PublishWorkshopFile(string pchFile,string pchPreviewFile,uint nConsumerAppId,string pchTitle,string pchDescription,uint eVisibility,ref SteamParamStringArray_t pTags,uint eWorkshopFileType); - public abstract ulong CreatePublishedFileUpdateRequest(ulong unPublishedFileId); - public abstract bool UpdatePublishedFileFile(ulong updateHandle,string pchFile); - public abstract bool UpdatePublishedFilePreviewFile(ulong updateHandle,string pchPreviewFile); - public abstract bool UpdatePublishedFileTitle(ulong updateHandle,string pchTitle); - public abstract bool UpdatePublishedFileDescription(ulong updateHandle,string pchDescription); - public abstract bool UpdatePublishedFileVisibility(ulong updateHandle,uint eVisibility); - public abstract bool UpdatePublishedFileTags(ulong updateHandle,ref SteamParamStringArray_t pTags); - public abstract ulong CommitPublishedFileUpdate(ulong updateHandle); - public abstract ulong GetPublishedFileDetails(ulong unPublishedFileId,uint unMaxSecondsOld); - public abstract ulong DeletePublishedFile(ulong unPublishedFileId); - public abstract ulong EnumerateUserPublishedFiles(uint unStartIndex); - public abstract ulong SubscribePublishedFile(ulong unPublishedFileId); - public abstract ulong EnumerateUserSubscribedFiles(uint unStartIndex); - public abstract ulong UnsubscribePublishedFile(ulong unPublishedFileId); - public abstract bool UpdatePublishedFileSetChangeDescription(ulong updateHandle,string pchChangeDescription); - public abstract ulong GetPublishedItemVoteDetails(ulong unPublishedFileId); - public abstract ulong UpdateUserPublishedItemVote(ulong unPublishedFileId,bool bVoteUp); - public abstract ulong GetUserPublishedItemVoteDetails(ulong unPublishedFileId); - public abstract ulong EnumerateUserSharedWorkshopFiles(ulong steamId,uint unStartIndex,ref SteamParamStringArray_t pRequiredTags,ref SteamParamStringArray_t pExcludedTags); - public abstract ulong PublishVideo(uint eVideoProvider,string pchVideoAccount,string pchVideoIdentifier,string pchPreviewFile,uint nConsumerAppId,string pchTitle,string pchDescription,uint eVisibility,ref SteamParamStringArray_t pTags); - public abstract ulong SetUserPublishedFileAction(ulong unPublishedFileId,uint eAction); - public abstract ulong EnumeratePublishedFilesByUserAction(uint eAction,uint unStartIndex); - public abstract ulong EnumeratePublishedWorkshopFiles(uint eEnumerationType,uint unStartIndex,uint unCount,uint unDays,ref SteamParamStringArray_t pTags,ref SteamParamStringArray_t pUserTags); - public abstract ulong UGCDownloadToLocation(ulong hContent,string pchLocation,uint unPriority); - } - - - public abstract class ISteamUserStats - { - public abstract IntPtr GetIntPtr(); - public abstract bool RequestCurrentStats(); - public abstract bool GetStat(string pchName,ref int pData); - public abstract bool GetStat0(string pchName,ref float pData); - public abstract bool SetStat(string pchName,int nData); - public abstract bool SetStat0(string pchName,float fData); - public abstract bool UpdateAvgRateStat(string pchName,float flCountThisSession,double dSessionLength); - public abstract bool GetAchievement(string pchName,ref bool pbAchieved); - public abstract bool SetAchievement(string pchName); - public abstract bool ClearAchievement(string pchName); - public abstract bool GetAchievementAndUnlockTime(string pchName,ref bool pbAchieved,ref uint punUnlockTime); - public abstract bool StoreStats(); - public abstract int GetAchievementIcon(string pchName); - public abstract string GetAchievementDisplayAttribute(string pchName,string pchKey); - public abstract bool IndicateAchievementProgress(string pchName,uint nCurProgress,uint nMaxProgress); - public abstract uint GetNumAchievements(); - public abstract string GetAchievementName(uint iAchievement); - public abstract ulong RequestUserStats(ulong steamIDUser); - public abstract bool GetUserStat(ulong steamIDUser,string pchName,ref int pData); - public abstract bool GetUserStat0(ulong steamIDUser,string pchName,ref float pData); - public abstract bool GetUserAchievement(ulong steamIDUser,string pchName,ref bool pbAchieved); - public abstract bool GetUserAchievementAndUnlockTime(ulong steamIDUser,string pchName,ref bool pbAchieved,ref uint punUnlockTime); - public abstract bool ResetAllStats(bool bAchievementsToo); - public abstract ulong FindOrCreateLeaderboard(string pchLeaderboardName,uint eLeaderboardSortMethod,uint eLeaderboardDisplayType); - public abstract ulong FindLeaderboard(string pchLeaderboardName); - public abstract string GetLeaderboardName(ulong hSteamLeaderboard); - public abstract int GetLeaderboardEntryCount(ulong hSteamLeaderboard); - public abstract uint GetLeaderboardSortMethod(ulong hSteamLeaderboard); - public abstract uint GetLeaderboardDisplayType(ulong hSteamLeaderboard); - public abstract ulong DownloadLeaderboardEntries(ulong hSteamLeaderboard,uint eLeaderboardDataRequest,int nRangeStart,int nRangeEnd); - public abstract ulong DownloadLeaderboardEntriesForUsers(ulong hSteamLeaderboard,CSteamID [] prgUsers); - public abstract bool GetDownloadedLeaderboardEntry(ulong hSteamLeaderboardEntries,int index,ref LeaderboardEntry_t pLeaderboardEntry,ref int pDetails,int cDetailsMax); - public abstract ulong UploadLeaderboardScore(ulong hSteamLeaderboard,uint eLeaderboardUploadScoreMethod,int nScore,ref int pScoreDetails,int cScoreDetailsCount); - public abstract ulong AttachLeaderboardUGC(ulong hSteamLeaderboard,ulong hUGC); - public abstract ulong GetNumberOfCurrentPlayers(); - public abstract ulong RequestGlobalAchievementPercentages(); - public abstract int GetMostAchievedAchievementInfo(string pchName,uint unNameBufLen,ref float pflPercent,ref bool pbAchieved); - public abstract int GetNextMostAchievedAchievementInfo(int iIteratorPrevious,string pchName,uint unNameBufLen,ref float pflPercent,ref bool pbAchieved); - public abstract bool GetAchievementAchievedPercent(string pchName,ref float pflPercent); - public abstract ulong RequestGlobalStats(int nHistoryDays); - public abstract bool GetGlobalStat(string pchStatName,ref long pData); - public abstract bool GetGlobalStat0(string pchStatName,ref double pData); - public abstract int GetGlobalStatHistory(string pchStatName,long [] pData); - public abstract int GetGlobalStatHistory0(string pchStatName,double [] pData); - } - - - public abstract class ISteamApps - { - public abstract IntPtr GetIntPtr(); - public abstract bool BIsSubscribed(); - public abstract bool BIsLowViolence(); - public abstract bool BIsCybercafe(); - public abstract bool BIsVACBanned(); - public abstract string GetCurrentGameLanguage(); - public abstract string GetAvailableGameLanguages(); - public abstract bool BIsSubscribedApp(uint appID); - public abstract bool BIsDlcInstalled(uint appID); - public abstract uint GetEarliestPurchaseUnixTime(uint nAppID); - public abstract bool BIsSubscribedFromFreeWeekend(); - public abstract int GetDLCCount(); - public abstract bool BGetDLCDataByIndex(int iDLC,ref uint pAppID,ref bool pbAvailable,string pchName,int cchNameBufferSize); - public abstract void InstallDLC(uint nAppID); - public abstract void UninstallDLC(uint nAppID); - public abstract void RequestAppProofOfPurchaseKey(uint nAppID); - public abstract bool GetCurrentBetaName(string pchName,int cchNameBufferSize); - public abstract bool MarkContentCorrupt(bool bMissingFilesOnly); - public abstract uint GetInstalledDepots(uint appID,ref uint pvecDepots,uint cMaxDepots); - public abstract uint GetAppInstallDir(uint appID,string pchFolder,uint cchFolderBufferSize); - public abstract bool BIsAppInstalled(uint appID); - public abstract ulong GetAppOwner(); - public abstract string GetLaunchQueryParam(string pchKey); - public abstract bool GetDlcDownloadProgress(uint nAppID,ref ulong punBytesDownloaded,ref ulong punBytesTotal); - public abstract int GetAppBuildId(); - public abstract void RequestAllProofOfPurchaseKeys(); - public abstract ulong GetFileDetails(string pszFileName); - } - - - public abstract class ISteamNetworking - { - public abstract IntPtr GetIntPtr(); - public abstract bool SendP2PPacket(ulong steamIDRemote,IntPtr pubData,uint cubData,uint eP2PSendType,int nChannel); - public abstract bool IsP2PPacketAvailable(ref uint pcubMsgSize,int nChannel); - public abstract bool ReadP2PPacket(IntPtr pubDest,uint cubDest,ref uint pcubMsgSize,ref CSteamID psteamIDRemote,int nChannel); - public abstract bool AcceptP2PSessionWithUser(ulong steamIDRemote); - public abstract bool CloseP2PSessionWithUser(ulong steamIDRemote); - public abstract bool CloseP2PChannelWithUser(ulong steamIDRemote,int nChannel); - public abstract bool GetP2PSessionState(ulong steamIDRemote,ref P2PSessionState_t pConnectionState); - public abstract bool AllowP2PPacketRelay(bool bAllow); - public abstract uint CreateListenSocket(int nVirtualP2PPort,uint nIP,char nPort,bool bAllowUseOfPacketRelay); - public abstract uint CreateP2PConnectionSocket(ulong steamIDTarget,int nVirtualPort,int nTimeoutSec,bool bAllowUseOfPacketRelay); - public abstract uint CreateConnectionSocket(uint nIP,char nPort,int nTimeoutSec); - public abstract bool DestroySocket(uint hSocket,bool bNotifyRemoteEnd); - public abstract bool DestroyListenSocket(uint hSocket,bool bNotifyRemoteEnd); - public abstract bool SendDataOnSocket(uint hSocket,IntPtr pubData,uint cubData,bool bReliable); - public abstract bool IsDataAvailableOnSocket(uint hSocket,ref uint pcubMsgSize); - public abstract bool RetrieveDataFromSocket(uint hSocket,IntPtr pubDest,uint cubDest,ref uint pcubMsgSize); - public abstract bool IsDataAvailable(uint hListenSocket,ref uint pcubMsgSize,ref uint phSocket); - public abstract bool RetrieveData(uint hListenSocket,IntPtr pubDest,uint cubDest,ref uint pcubMsgSize,ref uint phSocket); - public abstract bool GetSocketInfo(uint hSocket,ref CSteamID pSteamIDRemote,ref int peSocketStatus,ref uint punIPRemote,ref char punPortRemote); - public abstract bool GetListenSocketInfo(uint hListenSocket,ref uint pnIP,ref char pnPort); - public abstract uint GetSocketConnectionType(uint hSocket); - public abstract int GetMaxPacketSize(uint hSocket); - } - - - public abstract class ISteamScreenshots - { - public abstract IntPtr GetIntPtr(); - public abstract uint WriteScreenshot(IntPtr pubRGB,uint cubRGB,int nWidth,int nHeight); - public abstract uint AddScreenshotToLibrary(string pchFilename,string pchThumbnailFilename,int nWidth,int nHeight); - public abstract void TriggerScreenshot(); - public abstract void HookScreenshots(bool bHook); - public abstract bool SetLocation(uint hScreenshot,string pchLocation); - public abstract bool TagUser(uint hScreenshot,ulong steamID); - public abstract bool TagPublishedFile(uint hScreenshot,ulong unPublishedFileID); - public abstract bool IsScreenshotsHooked(); - public abstract uint AddVRScreenshotToLibrary(uint eType,string pchFilename,string pchVRFilename); - } - - - public abstract class ISteamMusic - { - public abstract IntPtr GetIntPtr(); - public abstract bool BIsEnabled(); - public abstract bool BIsPlaying(); - public abstract int GetPlaybackStatus(); - public abstract void Play(); - public abstract void Pause(); - public abstract void PlayPrevious(); - public abstract void PlayNext(); - public abstract void SetVolume(float flVolume); - public abstract float GetVolume(); - } - - - public abstract class ISteamMusicRemote - { - public abstract IntPtr GetIntPtr(); - public abstract bool RegisterSteamMusicRemote(string pchName); - public abstract bool DeregisterSteamMusicRemote(); - public abstract bool BIsCurrentMusicRemote(); - public abstract bool BActivationSuccess(bool bValue); - public abstract bool SetDisplayName(string pchDisplayName); - public abstract bool SetPNGIcon_64x64(IntPtr pvBuffer,uint cbBufferLength); - public abstract bool EnablePlayPrevious(bool bValue); - public abstract bool EnablePlayNext(bool bValue); - public abstract bool EnableShuffled(bool bValue); - public abstract bool EnableLooped(bool bValue); - public abstract bool EnableQueue(bool bValue); - public abstract bool EnablePlaylists(bool bValue); - public abstract bool UpdatePlaybackStatus(int nStatus); - public abstract bool UpdateShuffled(bool bValue); - public abstract bool UpdateLooped(bool bValue); - public abstract bool UpdateVolume(float flValue); - public abstract bool CurrentEntryWillChange(); - public abstract bool CurrentEntryIsAvailable(bool bAvailable); - public abstract bool UpdateCurrentEntryText(string pchText); - public abstract bool UpdateCurrentEntryElapsedSeconds(int nValue); - public abstract bool UpdateCurrentEntryCoverArt(IntPtr pvBuffer,uint cbBufferLength); - public abstract bool CurrentEntryDidChange(); - public abstract bool QueueWillChange(); - public abstract bool ResetQueueEntries(); - public abstract bool SetQueueEntry(int nID,int nPosition,string pchEntryText); - public abstract bool SetCurrentQueueEntry(int nID); - public abstract bool QueueDidChange(); - public abstract bool PlaylistWillChange(); - public abstract bool ResetPlaylistEntries(); - public abstract bool SetPlaylistEntry(int nID,int nPosition,string pchEntryText); - public abstract bool SetCurrentPlaylistEntry(int nID); - public abstract bool PlaylistDidChange(); - } - - - public abstract class ISteamHTTP - { - public abstract IntPtr GetIntPtr(); - public abstract uint CreateHTTPRequest(uint eHTTPRequestMethod,string pchAbsoluteURL); - public abstract bool SetHTTPRequestContextValue(uint hRequest,ulong ulContextValue); - public abstract bool SetHTTPRequestNetworkActivityTimeout(uint hRequest,uint unTimeoutSeconds); - public abstract bool SetHTTPRequestHeaderValue(uint hRequest,string pchHeaderName,string pchHeaderValue); - public abstract bool SetHTTPRequestGetOrPostParameter(uint hRequest,string pchParamName,string pchParamValue); - public abstract bool SendHTTPRequest(uint hRequest,ref ulong pCallHandle); - public abstract bool SendHTTPRequestAndStreamResponse(uint hRequest,ref ulong pCallHandle); - public abstract bool DeferHTTPRequest(uint hRequest); - public abstract bool PrioritizeHTTPRequest(uint hRequest); - public abstract bool GetHTTPResponseHeaderSize(uint hRequest,string pchHeaderName,ref uint unResponseHeaderSize); - public abstract bool GetHTTPResponseHeaderValue(uint hRequest,string pchHeaderName,IntPtr pHeaderValueBuffer,uint unBufferSize); - public abstract bool GetHTTPResponseBodySize(uint hRequest,ref uint unBodySize); - public abstract bool GetHTTPResponseBodyData(uint hRequest,IntPtr pBodyDataBuffer,uint unBufferSize); - public abstract bool GetHTTPStreamingResponseBodyData(uint hRequest,uint cOffset,IntPtr pBodyDataBuffer,uint unBufferSize); - public abstract bool ReleaseHTTPRequest(uint hRequest); - public abstract bool GetHTTPDownloadProgressPct(uint hRequest,ref float pflPercentOut); - public abstract bool SetHTTPRequestRawPostBody(uint hRequest,string pchContentType,IntPtr pubBody,uint unBodyLen); - public abstract uint CreateCookieContainer(bool bAllowResponsesToModify); - public abstract bool ReleaseCookieContainer(uint hCookieContainer); - public abstract bool SetCookie(uint hCookieContainer,string pchHost,string pchUrl,string pchCookie); - public abstract bool SetHTTPRequestCookieContainer(uint hRequest,uint hCookieContainer); - public abstract bool SetHTTPRequestUserAgentInfo(uint hRequest,string pchUserAgentInfo); - public abstract bool SetHTTPRequestRequiresVerifiedCertificate(uint hRequest,bool bRequireVerifiedCertificate); - public abstract bool SetHTTPRequestAbsoluteTimeoutMS(uint hRequest,uint unMilliseconds); - public abstract bool GetHTTPRequestWasTimedOut(uint hRequest,ref bool pbWasTimedOut); - } - - - public abstract class ISteamUnifiedMessages - { - public abstract IntPtr GetIntPtr(); - public abstract ulong SendMethod(string pchServiceMethod,IntPtr pRequestBuffer,uint unRequestBufferSize,ulong unContext); - public abstract bool GetMethodResponseInfo(ulong hHandle,ref uint punResponseSize,ref uint peResult); - public abstract bool GetMethodResponseData(ulong hHandle,IntPtr pResponseBuffer,uint unResponseBufferSize,bool bAutoRelease); - public abstract bool ReleaseMethod(ulong hHandle); - public abstract bool SendNotification(string pchServiceNotification,IntPtr pNotificationBuffer,uint unNotificationBufferSize); - } - - - public abstract class ISteamController - { - public abstract IntPtr GetIntPtr(); - public abstract bool Init(); - public abstract bool Shutdown(); - public abstract void RunFrame(); - public abstract int GetConnectedControllers(ref ulong handlesOut); - public abstract bool ShowBindingPanel(ulong controllerHandle); - public abstract ulong GetActionSetHandle(string pszActionSetName); - public abstract void ActivateActionSet(ulong controllerHandle,ulong actionSetHandle); - public abstract ulong GetCurrentActionSet(ulong controllerHandle); - public abstract ulong GetDigitalActionHandle(string pszActionName); - public abstract ControllerDigitalActionData_t GetDigitalActionData(ulong controllerHandle,ulong digitalActionHandle); - public abstract int GetDigitalActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong digitalActionHandle,ref uint originsOut); - public abstract ulong GetAnalogActionHandle(string pszActionName); - public abstract ControllerAnalogActionData_t GetAnalogActionData(ulong controllerHandle,ulong analogActionHandle); - public abstract int GetAnalogActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong analogActionHandle,ref uint originsOut); - public abstract void StopAnalogActionMomentum(ulong controllerHandle,ulong eAction); - public abstract void TriggerHapticPulse(ulong controllerHandle,uint eTargetPad,char usDurationMicroSec); - public abstract void TriggerRepeatedHapticPulse(ulong controllerHandle,uint eTargetPad,char usDurationMicroSec,char usOffMicroSec,char unRepeat,uint nFlags); - public abstract int GetGamepadIndexForController(ulong ulControllerHandle); - public abstract ulong GetControllerForGamepadIndex(int nIndex); - public abstract ControllerMotionData_t GetMotionData(ulong controllerHandle); - public abstract bool ShowDigitalActionOrigins(ulong controllerHandle,ulong digitalActionHandle,float flScale,float flXPosition,float flYPosition); - public abstract bool ShowAnalogActionOrigins(ulong controllerHandle,ulong analogActionHandle,float flScale,float flXPosition,float flYPosition); - } - - - public abstract class ISteamUGC - { - public abstract IntPtr GetIntPtr(); - public abstract ulong CreateQueryUserUGCRequest(uint unAccountID,uint eListType,uint eMatchingUGCType,uint eSortOrder,uint nCreatorAppID,uint nConsumerAppID,uint unPage); - public abstract ulong CreateQueryAllUGCRequest(uint eQueryType,uint eMatchingeMatchingUGCTypeFileType,uint nCreatorAppID,uint nConsumerAppID,uint unPage); - public abstract ulong CreateQueryUGCDetailsRequest(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs); - public abstract ulong SendQueryUGCRequest(ulong handle); - public abstract bool GetQueryUGCResult(ulong handle,uint index,ref SteamUGCDetails_t pDetails); - public abstract bool GetQueryUGCPreviewURL(ulong handle,uint index,out string pchURL); - public abstract bool GetQueryUGCMetadata(ulong handle,uint index,out string pchMetadata); - public abstract bool GetQueryUGCChildren(ulong handle,uint index,ref ulong pvecPublishedFileID,uint cMaxEntries); - public abstract bool GetQueryUGCStatistic(ulong handle,uint index,uint eStatType,ref ulong pStatValue); - public abstract uint GetQueryUGCNumAdditionalPreviews(ulong handle,uint index); - public abstract bool GetQueryUGCAdditionalPreview(ulong handle,uint index,uint previewIndex,out string pchURLOrVideoID,out string pchOriginalFileName,uint cchOriginalFileNameSize,ref uint pPreviewType); - public abstract uint GetQueryUGCNumKeyValueTags(ulong handle,uint index); - public abstract bool GetQueryUGCKeyValueTag(ulong handle,uint index,uint keyValueTagIndex,out string pchKey,out string pchValue); - public abstract bool ReleaseQueryUGCRequest(ulong handle); - public abstract bool AddRequiredTag(ulong handle,string pTagName); - public abstract bool AddExcludedTag(ulong handle,string pTagName); - public abstract bool SetReturnOnlyIDs(ulong handle,bool bReturnOnlyIDs); - public abstract bool SetReturnKeyValueTags(ulong handle,bool bReturnKeyValueTags); - public abstract bool SetReturnLongDescription(ulong handle,bool bReturnLongDescription); - public abstract bool SetReturnMetadata(ulong handle,bool bReturnMetadata); - public abstract bool SetReturnChildren(ulong handle,bool bReturnChildren); - public abstract bool SetReturnAdditionalPreviews(ulong handle,bool bReturnAdditionalPreviews); - public abstract bool SetReturnTotalOnly(ulong handle,bool bReturnTotalOnly); - public abstract bool SetLanguage(ulong handle,string pchLanguage); - public abstract bool SetAllowCachedResponse(ulong handle,uint unMaxAgeSeconds); - public abstract bool SetCloudFileNameFilter(ulong handle,string pMatchCloudFileName); - public abstract bool SetMatchAnyTag(ulong handle,bool bMatchAnyTag); - public abstract bool SetSearchText(ulong handle,string pSearchText); - public abstract bool SetRankedByTrendDays(ulong handle,uint unDays); - public abstract bool AddRequiredKeyValueTag(ulong handle,string pKey,string pValue); - public abstract ulong RequestUGCDetails(ulong nPublishedFileID,uint unMaxAgeSeconds); - public abstract ulong CreateItem(uint nConsumerAppId,uint eFileType); - public abstract ulong StartItemUpdate(uint nConsumerAppId,ulong nPublishedFileID); - public abstract bool SetItemTitle(ulong handle,string pchTitle); - public abstract bool SetItemDescription(ulong handle,string pchDescription); - public abstract bool SetItemUpdateLanguage(ulong handle,string pchLanguage); - public abstract bool SetItemMetadata(ulong handle,string pchMetaData); - public abstract bool SetItemVisibility(ulong handle,uint eVisibility); - public abstract bool SetItemTags(ulong updateHandle,ref SteamParamStringArray_t pTags); - public abstract bool SetItemContent(ulong handle,string pszContentFolder); - public abstract bool SetItemPreview(ulong handle,string pszPreviewFile); - public abstract bool RemoveItemKeyValueTags(ulong handle,string pchKey); - public abstract bool AddItemKeyValueTag(ulong handle,string pchKey,string pchValue); - public abstract bool AddItemPreviewFile(ulong handle,string pszPreviewFile,uint type); - public abstract bool AddItemPreviewVideo(ulong handle,string pszVideoID); - public abstract bool UpdateItemPreviewFile(ulong handle,uint index,string pszPreviewFile); - public abstract bool UpdateItemPreviewVideo(ulong handle,uint index,string pszVideoID); - public abstract bool RemoveItemPreview(ulong handle,uint index); - public abstract ulong SubmitItemUpdate(ulong handle,string pchChangeNote); - public abstract uint GetItemUpdateProgress(ulong handle,ref ulong punBytesProcessed,ref ulong punBytesTotal); - public abstract ulong SetUserItemVote(ulong nPublishedFileID,bool bVoteUp); - public abstract ulong GetUserItemVote(ulong nPublishedFileID); - public abstract ulong AddItemToFavorites(uint nAppId,ulong nPublishedFileID); - public abstract ulong RemoveItemFromFavorites(uint nAppId,ulong nPublishedFileID); - public abstract ulong SubscribeItem(ulong nPublishedFileID); - public abstract ulong UnsubscribeItem(ulong nPublishedFileID); - public abstract uint GetNumSubscribedItems(); - public abstract uint GetSubscribedItems(ref ulong pvecPublishedFileID,uint cMaxEntries); - public abstract uint GetItemState(ulong nPublishedFileID); - public abstract bool GetItemInstallInfo(ulong nPublishedFileID,ref ulong punSizeOnDisk,out string pchFolder,ref uint punTimeStamp); - public abstract bool GetItemDownloadInfo(ulong nPublishedFileID,ref ulong punBytesDownloaded,ref ulong punBytesTotal); - public abstract bool DownloadItem(ulong nPublishedFileID,bool bHighPriority); - public abstract bool BInitWorkshopForGameServer(uint unWorkshopDepotID,string pszFolder); - public abstract void SuspendDownloads(bool bSuspend); - public abstract ulong StartPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs); - public abstract ulong StopPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs); - public abstract ulong StopPlaytimeTrackingForAllItems(); - } - - - public abstract class ISteamAppList - { - public abstract IntPtr GetIntPtr(); - public abstract uint GetNumInstalledApps(); - public abstract uint GetInstalledApps(ref uint pvecAppID,uint unMaxAppIDs); - public abstract int GetAppName(uint nAppID,System.Text.StringBuilder pchName,int cchNameMax); - public abstract int GetAppInstallDir(uint nAppID,string pchDirectory,int cchNameMax); - public abstract int GetAppBuildId(uint nAppID); - } - - - public abstract class ISteamHTMLSurface - { - public abstract IntPtr GetIntPtr(); - public abstract void DestructISteamHTMLSurface(); - public abstract bool Init(); - public abstract bool Shutdown(); - public abstract ulong CreateBrowser(string pchUserAgent,string pchUserCSS); - public abstract void RemoveBrowser(uint unBrowserHandle); - public abstract void LoadURL(uint unBrowserHandle,string pchURL,string pchPostData); - public abstract void SetSize(uint unBrowserHandle,uint unWidth,uint unHeight); - public abstract void StopLoad(uint unBrowserHandle); - public abstract void Reload(uint unBrowserHandle); - public abstract void GoBack(uint unBrowserHandle); - public abstract void GoForward(uint unBrowserHandle); - public abstract void AddHeader(uint unBrowserHandle,string pchKey,string pchValue); - public abstract void ExecuteJavascript(uint unBrowserHandle,string pchScript); - public abstract void MouseUp(uint unBrowserHandle,uint eMouseButton); - public abstract void MouseDown(uint unBrowserHandle,uint eMouseButton); - public abstract void MouseDoubleClick(uint unBrowserHandle,uint eMouseButton); - public abstract void MouseMove(uint unBrowserHandle,int x,int y); - public abstract void MouseWheel(uint unBrowserHandle,int nDelta); - public abstract void KeyDown(uint unBrowserHandle,uint nNativeKeyCode,uint eHTMLKeyModifiers); - public abstract void KeyUp(uint unBrowserHandle,uint nNativeKeyCode,uint eHTMLKeyModifiers); - public abstract void KeyChar(uint unBrowserHandle,uint cUnicodeChar,uint eHTMLKeyModifiers); - public abstract void SetHorizontalScroll(uint unBrowserHandle,uint nAbsolutePixelScroll); - public abstract void SetVerticalScroll(uint unBrowserHandle,uint nAbsolutePixelScroll); - public abstract void SetKeyFocus(uint unBrowserHandle,bool bHasKeyFocus); - public abstract void ViewSource(uint unBrowserHandle); - public abstract void CopyToClipboard(uint unBrowserHandle); - public abstract void PasteFromClipboard(uint unBrowserHandle); - public abstract void Find(uint unBrowserHandle,string pchSearchStr,bool bCurrentlyInFind,bool bReverse); - public abstract void StopFind(uint unBrowserHandle); - public abstract void GetLinkAtPosition(uint unBrowserHandle,int x,int y); - public abstract void SetCookie(string pchHostname,string pchKey,string pchValue,string pchPath,ulong nExpires,bool bSecure,bool bHTTPOnly); - public abstract void SetPageScaleFactor(uint unBrowserHandle,float flZoom,int nPointX,int nPointY); - public abstract void SetBackgroundMode(uint unBrowserHandle,bool bBackgroundMode); - public abstract void AllowStartRequest(uint unBrowserHandle,bool bAllowed); - public abstract void JSDialogResponse(uint unBrowserHandle,bool bResult); - } - - - public abstract class ISteamInventory - { - public abstract IntPtr GetIntPtr(); - public abstract uint GetResultStatus(int resultHandle); - public abstract bool GetResultItems(int resultHandle,out SteamItemDetails_t [] pOutItemsArray); - public abstract uint GetResultTimestamp(int resultHandle); - public abstract bool CheckResultSteamID(int resultHandle,ulong steamIDExpected); - public abstract void DestroyResult(int resultHandle); - public abstract bool GetAllItems(ref int pResultHandle); - public abstract bool GetItemsByID(ref int pResultHandle,ulong [] pInstanceIDs); - public abstract bool SerializeResult(int resultHandle,IntPtr pOutBuffer,ref uint punOutBufferSize); - public abstract bool DeserializeResult(ref int pOutResultHandle,IntPtr pBuffer,uint unBufferSize,bool bRESERVED_MUST_BE_FALSE); - public abstract bool GenerateItems(ref int pResultHandle,int [] pArrayItemDefs,uint [] punArrayQuantity); - public abstract bool GrantPromoItems(ref int pResultHandle); - public abstract bool AddPromoItem(ref int pResultHandle,int itemDef); - public abstract bool AddPromoItems(ref int pResultHandle,int [] pArrayItemDefs); - public abstract bool ConsumeItem(ref int pResultHandle,ulong itemConsume,uint unQuantity); - public abstract bool ExchangeItems(ref int pResultHandle,int [] pArrayGenerate,uint [] punArrayGenerateQuantity,ulong [] pArrayDestroy,uint [] punArrayDestroyQuantity); - public abstract bool TransferItemQuantity(ref int pResultHandle,ulong itemIdSource,uint unQuantity,ulong itemIdDest); - public abstract void SendItemDropHeartbeat(); - public abstract bool TriggerItemDrop(ref int pResultHandle,int dropListDefinition); - public abstract bool TradeItems(ref int pResultHandle,ulong steamIDTradePartner,ulong [] pArrayGive,uint [] pArrayGiveQuantity,ulong [] pArrayGet,uint [] pArrayGetQuantity); - public abstract bool LoadItemDefinitions(); - public abstract bool GetItemDefinitionIDs(out int [] pItemDefIDs); - public abstract bool GetItemDefinitionProperty(int iDefinition,string pchPropertyName,out string pchValueBuffer); - } - - - public abstract class ISteamVideo - { - public abstract IntPtr GetIntPtr(); - public abstract void GetVideoURL(uint unVideoAppID); - public abstract bool IsBroadcasting(ref int pnNumViewers); - } - - - public abstract class ISteamGameServer - { - public abstract IntPtr GetIntPtr(); - public abstract bool InitGameServer(uint unIP,char usGamePort,char usQueryPort,uint unFlags,uint nGameAppId,string pchVersionString); - public abstract void SetProduct(string pszProduct); - public abstract void SetGameDescription(string pszGameDescription); - public abstract void SetModDir(string pszModDir); - public abstract void SetDedicatedServer(bool bDedicated); - public abstract void LogOn(string pszToken); - public abstract void LogOnAnonymous(); - public abstract void LogOff(); - public abstract bool BLoggedOn(); - public abstract bool BSecure(); - public abstract ulong GetSteamID(); - public abstract bool WasRestartRequested(); - public abstract void SetMaxPlayerCount(int cPlayersMax); - public abstract void SetBotPlayerCount(int cBotplayers); - public abstract void SetServerName(string pszServerName); - public abstract void SetMapName(string pszMapName); - public abstract void SetPasswordProtected(bool bPasswordProtected); - public abstract void SetSpectatorPort(char unSpectatorPort); - public abstract void SetSpectatorServerName(string pszSpectatorServerName); - public abstract void ClearAllKeyValues(); - public abstract void SetKeyValue(string pKey,string pValue); - public abstract void SetGameTags(string pchGameTags); - public abstract void SetGameData(string pchGameData); - public abstract void SetRegion(string pszRegion); - public abstract bool SendUserConnectAndAuthenticate(uint unIPClient,IntPtr pvAuthBlob,uint cubAuthBlobSize,ref CSteamID pSteamIDUser); - public abstract ulong CreateUnauthenticatedUserConnection(); - public abstract void SendUserDisconnect(ulong steamIDUser); - public abstract bool BUpdateUserData(ulong steamIDUser,string pchPlayerName,uint uScore); - public abstract uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket); - public abstract uint BeginAuthSession(IntPtr pAuthTicket,int cbAuthTicket,ulong steamID); - public abstract void EndAuthSession(ulong steamID); - public abstract void CancelAuthTicket(uint hAuthTicket); - public abstract uint UserHasLicenseForApp(ulong steamID,uint appID); - public abstract bool RequestUserGroupStatus(ulong steamIDUser,ulong steamIDGroup); - public abstract void GetGameplayStats(); - public abstract ulong GetServerReputation(); - public abstract uint GetPublicIP(); - public abstract bool HandleIncomingPacket(IntPtr pData,int cbData,uint srcIP,char srcPort); - public abstract int GetNextOutgoingPacket(IntPtr pOut,int cbMaxOut,ref uint pNetAdr,ref char pPort); - public abstract void EnableHeartbeats(bool bActive); - public abstract void SetHeartbeatInterval(int iHeartbeatInterval); - public abstract void ForceHeartbeat(); - public abstract ulong AssociateWithClan(ulong steamIDClan); - public abstract ulong ComputeNewPlayerCompatibility(ulong steamIDNewPlayer); - } - - - public abstract class ISteamGameServerStats - { - public abstract IntPtr GetIntPtr(); - public abstract ulong RequestUserStats(ulong steamIDUser); - public abstract bool GetUserStat(ulong steamIDUser,string pchName,ref int pData); - public abstract bool GetUserStat0(ulong steamIDUser,string pchName,ref float pData); - public abstract bool GetUserAchievement(ulong steamIDUser,string pchName,ref bool pbAchieved); - public abstract bool SetUserStat(ulong steamIDUser,string pchName,int nData); - public abstract bool SetUserStat0(ulong steamIDUser,string pchName,float fData); - public abstract bool UpdateUserAvgRateStat(ulong steamIDUser,string pchName,float flCountThisSession,double dSessionLength); - public abstract bool SetUserAchievement(ulong steamIDUser,string pchName); - public abstract bool ClearUserAchievement(ulong steamIDUser,string pchName); - public abstract ulong StoreUserStats(ulong steamIDUser); - } - - -public class CSteamClient : ISteamClient -{ -public CSteamClient(IntPtr SteamClient) -{ - m_pSteamClient = SteamClient; -} -IntPtr m_pSteamClient; - -public override IntPtr GetIntPtr() { return m_pSteamClient; } - -private void CheckIfUsable() -{ - if (m_pSteamClient == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint CreateSteamPipe() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamClient_CreateSteamPipe(m_pSteamClient); - return result; -} -public override bool BReleaseSteamPipe(uint hSteamPipe) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamClient_BReleaseSteamPipe(m_pSteamClient,hSteamPipe); - return result; -} -public override uint ConnectToGlobalUser(uint hSteamPipe) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamClient_ConnectToGlobalUser(m_pSteamClient,hSteamPipe); - return result; -} -public override uint CreateLocalUser(ref uint phSteamPipe,uint eAccountType) -{ - CheckIfUsable(); - phSteamPipe = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamClient_CreateLocalUser(m_pSteamClient,ref phSteamPipe,eAccountType); - return result; -} -public override void ReleaseUser(uint hSteamPipe,uint hUser) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamClient_ReleaseUser(m_pSteamClient,hSteamPipe,hUser); -} -public override ISteamUser GetISteamUser(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUser(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamUser) Marshal.PtrToStructure(result, typeof(ISteamUser)); -} -public override ISteamGameServer GetISteamGameServer(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamGameServer(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamGameServer) Marshal.PtrToStructure(result, typeof(ISteamGameServer)); -} -public override void SetLocalIPBinding(uint unIP,char usPort) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamClient_SetLocalIPBinding(m_pSteamClient,unIP,usPort); -} -public override ISteamFriends GetISteamFriends(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamFriends(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamFriends) Marshal.PtrToStructure(result, typeof(ISteamFriends)); -} -public override ISteamUtils GetISteamUtils(uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUtils(m_pSteamClient,hSteamPipe,pchVersion); - return (ISteamUtils) Marshal.PtrToStructure(result, typeof(ISteamUtils)); -} -public override ISteamMatchmaking GetISteamMatchmaking(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamMatchmaking(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamMatchmaking) Marshal.PtrToStructure(result, typeof(ISteamMatchmaking)); -} -public override ISteamMatchmakingServers GetISteamMatchmakingServers(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamMatchmakingServers(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamMatchmakingServers) Marshal.PtrToStructure(result, typeof(ISteamMatchmakingServers)); -} -public override IntPtr GetISteamGenericInterface(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamGenericInterface(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (IntPtr) Marshal.PtrToStructure(result, typeof(IntPtr)); -} -public override ISteamUserStats GetISteamUserStats(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUserStats(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamUserStats) Marshal.PtrToStructure(result, typeof(ISteamUserStats)); -} -public override ISteamGameServerStats GetISteamGameServerStats(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamGameServerStats(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamGameServerStats) Marshal.PtrToStructure(result, typeof(ISteamGameServerStats)); -} -public override ISteamApps GetISteamApps(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamApps(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamApps) Marshal.PtrToStructure(result, typeof(ISteamApps)); -} -public override ISteamNetworking GetISteamNetworking(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamNetworking(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamNetworking) Marshal.PtrToStructure(result, typeof(ISteamNetworking)); -} -public override ISteamRemoteStorage GetISteamRemoteStorage(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamRemoteStorage(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamRemoteStorage) Marshal.PtrToStructure(result, typeof(ISteamRemoteStorage)); -} -public override ISteamScreenshots GetISteamScreenshots(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamScreenshots(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamScreenshots) Marshal.PtrToStructure(result, typeof(ISteamScreenshots)); -} -public override uint GetIPCCallCount() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamClient_GetIPCCallCount(m_pSteamClient); - return result; -} -public override void SetWarningMessageHook(IntPtr pFunction) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamClient_SetWarningMessageHook(m_pSteamClient,pFunction); -} -public override bool BShutdownIfAllPipesClosed() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamClient_BShutdownIfAllPipesClosed(m_pSteamClient); - return result; -} -public override ISteamHTTP GetISteamHTTP(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamHTTP(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamHTTP) Marshal.PtrToStructure(result, typeof(ISteamHTTP)); -} -public override ISteamUnifiedMessages GetISteamUnifiedMessages(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUnifiedMessages(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamUnifiedMessages) Marshal.PtrToStructure(result, typeof(ISteamUnifiedMessages)); -} -public override ISteamController GetISteamController(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamController(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamController) Marshal.PtrToStructure(result, typeof(ISteamController)); -} -public override ISteamUGC GetISteamUGC(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUGC(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamUGC) Marshal.PtrToStructure(result, typeof(ISteamUGC)); -} -public override ISteamAppList GetISteamAppList(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamAppList(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamAppList) Marshal.PtrToStructure(result, typeof(ISteamAppList)); -} -public override ISteamMusic GetISteamMusic(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamMusic(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamMusic) Marshal.PtrToStructure(result, typeof(ISteamMusic)); -} -public override ISteamMusicRemote GetISteamMusicRemote(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamMusicRemote(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamMusicRemote) Marshal.PtrToStructure(result, typeof(ISteamMusicRemote)); -} -public override ISteamHTMLSurface GetISteamHTMLSurface(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamHTMLSurface(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamHTMLSurface) Marshal.PtrToStructure(result, typeof(ISteamHTMLSurface)); -} -public override ISteamInventory GetISteamInventory(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamInventory(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamInventory) Marshal.PtrToStructure(result, typeof(ISteamInventory)); -} -public override ISteamVideo GetISteamVideo(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamVideo(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamVideo) Marshal.PtrToStructure(result, typeof(ISteamVideo)); -} -} - - -public class CSteamUser : ISteamUser -{ -public CSteamUser(IntPtr SteamUser) -{ - m_pSteamUser = SteamUser; -} -IntPtr m_pSteamUser; - -public override IntPtr GetIntPtr() { return m_pSteamUser; } - -private void CheckIfUsable() -{ - if (m_pSteamUser == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint GetHSteamUser() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetHSteamUser(m_pSteamUser); - return result; -} -public override bool BLoggedOn() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BLoggedOn(m_pSteamUser); - return result; -} -public override ulong GetSteamID() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUser_GetSteamID(m_pSteamUser); - return result; -} -public override int InitiateGameConnection(IntPtr pAuthBlob,int cbMaxAuthBlob,ulong steamIDGameServer,uint unIPServer,char usPortServer,bool bSecure) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUser_InitiateGameConnection(m_pSteamUser,pAuthBlob,cbMaxAuthBlob,steamIDGameServer,unIPServer,usPortServer,bSecure); - return result; -} -public override void TerminateGameConnection(uint unIPServer,char usPortServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_TerminateGameConnection(m_pSteamUser,unIPServer,usPortServer); -} -public override void TrackAppUsageEvent(ulong gameID,int eAppUsageEvent,string pchExtraInfo) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_TrackAppUsageEvent(m_pSteamUser,gameID,eAppUsageEvent,pchExtraInfo); -} -public override bool GetUserDataFolder(string pchBuffer,int cubBuffer) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_GetUserDataFolder(m_pSteamUser,pchBuffer,cubBuffer); - return result; -} -public override void StartVoiceRecording() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_StartVoiceRecording(m_pSteamUser); -} -public override void StopVoiceRecording() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_StopVoiceRecording(m_pSteamUser); -} -public override uint GetAvailableVoice(ref uint pcbCompressed,ref uint pcbUncompressed,uint nUncompressedVoiceDesiredSampleRate) -{ - CheckIfUsable(); - pcbCompressed = 0; - pcbUncompressed = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetAvailableVoice(m_pSteamUser,ref pcbCompressed,ref pcbUncompressed,nUncompressedVoiceDesiredSampleRate); - return result; -} -public override uint GetVoice(bool bWantCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,bool bWantUncompressed,IntPtr pUncompressedDestBuffer,uint cbUncompressedDestBufferSize,ref uint nUncompressBytesWritten,uint nUncompressedVoiceDesiredSampleRate) -{ - CheckIfUsable(); - nBytesWritten = 0; - nUncompressBytesWritten = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetVoice(m_pSteamUser,bWantCompressed,pDestBuffer,cbDestBufferSize,ref nBytesWritten,bWantUncompressed,pUncompressedDestBuffer,cbUncompressedDestBufferSize,ref nUncompressBytesWritten,nUncompressedVoiceDesiredSampleRate); - return result; -} -public override uint DecompressVoice(IntPtr pCompressed,uint cbCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,uint nDesiredSampleRate) -{ - CheckIfUsable(); - nBytesWritten = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUser_DecompressVoice(m_pSteamUser,pCompressed,cbCompressed,pDestBuffer,cbDestBufferSize,ref nBytesWritten,nDesiredSampleRate); - return result; -} -public override uint GetVoiceOptimalSampleRate() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetVoiceOptimalSampleRate(m_pSteamUser); - return result; -} -public override uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket) -{ - CheckIfUsable(); - pcbTicket = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetAuthSessionTicket(m_pSteamUser,pTicket,cbMaxTicket,ref pcbTicket); - return result; -} -public override uint BeginAuthSession(IntPtr pAuthTicket,int cbAuthTicket,ulong steamID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUser_BeginAuthSession(m_pSteamUser,pAuthTicket,cbAuthTicket,steamID); - return result; -} -public override void EndAuthSession(ulong steamID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_EndAuthSession(m_pSteamUser,steamID); -} -public override void CancelAuthTicket(uint hAuthTicket) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_CancelAuthTicket(m_pSteamUser,hAuthTicket); -} -public override uint UserHasLicenseForApp(ulong steamID,uint appID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUser_UserHasLicenseForApp(m_pSteamUser,steamID,appID); - return result; -} -public override bool BIsBehindNAT() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsBehindNAT(m_pSteamUser); - return result; -} -public override void AdvertiseGame(ulong steamIDGameServer,uint unIPServer,char usPortServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_AdvertiseGame(m_pSteamUser,steamIDGameServer,unIPServer,usPortServer); -} -public override ulong RequestEncryptedAppTicket(IntPtr pDataToInclude,int cbDataToInclude) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUser_RequestEncryptedAppTicket(m_pSteamUser,pDataToInclude,cbDataToInclude); - return result; -} -public override bool GetEncryptedAppTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket) -{ - CheckIfUsable(); - pcbTicket = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUser_GetEncryptedAppTicket(m_pSteamUser,pTicket,cbMaxTicket,ref pcbTicket); - return result; -} -public override int GetGameBadgeLevel(int nSeries,bool bFoil) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUser_GetGameBadgeLevel(m_pSteamUser,nSeries,bFoil); - return result; -} -public override int GetPlayerSteamLevel() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUser_GetPlayerSteamLevel(m_pSteamUser); - return result; -} -public override ulong RequestStoreAuthURL(string pchRedirectURL) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUser_RequestStoreAuthURL(m_pSteamUser,pchRedirectURL); - return result; -} -public override bool BIsPhoneVerified() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsPhoneVerified(m_pSteamUser); - return result; -} -public override bool BIsTwoFactorEnabled() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsTwoFactorEnabled(m_pSteamUser); - return result; -} -public override bool BIsPhoneIdentifying() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsPhoneIdentifying(m_pSteamUser); - return result; -} -public override bool BIsPhoneRequiringVerification() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsPhoneRequiringVerification(m_pSteamUser); - return result; -} -} - - -public class CSteamFriends : ISteamFriends -{ -public CSteamFriends(IntPtr SteamFriends) -{ - m_pSteamFriends = SteamFriends; -} -IntPtr m_pSteamFriends; - -public override IntPtr GetIntPtr() { return m_pSteamFriends; } - -private void CheckIfUsable() -{ - if (m_pSteamFriends == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override string GetPersonaName() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetPersonaName(m_pSteamFriends); - return Marshal.PtrToStringAnsi(result); -} -public override ulong SetPersonaName(string pchPersonaName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_SetPersonaName(m_pSteamFriends,pchPersonaName); - return result; -} -public override uint GetPersonaState() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetPersonaState(m_pSteamFriends); - return result; -} -public override int GetFriendCount(int iFriendFlags) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendCount(m_pSteamFriends,iFriendFlags); - return result; -} -public override ulong GetFriendByIndex(int iFriend,int iFriendFlags) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendByIndex(m_pSteamFriends,iFriend,iFriendFlags); - return result; -} -public override uint GetFriendRelationship(ulong steamIDFriend) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendRelationship(m_pSteamFriends,steamIDFriend); - return result; -} -public override uint GetFriendPersonaState(ulong steamIDFriend) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendPersonaState(m_pSteamFriends,steamIDFriend); - return result; -} -public override string GetFriendPersonaName(ulong steamIDFriend) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendPersonaName(m_pSteamFriends,steamIDFriend); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetFriendGamePlayed(ulong steamIDFriend,out FriendGameInfo_t pFriendGameInfo) -{ - CheckIfUsable(); - pFriendGameInfo = new FriendGameInfo_t(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendGamePlayed(m_pSteamFriends,steamIDFriend,ref pFriendGameInfo); - return result; -} -public override string GetFriendPersonaNameHistory(ulong steamIDFriend,int iPersonaName) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendPersonaNameHistory(m_pSteamFriends,steamIDFriend,iPersonaName); - return Marshal.PtrToStringAnsi(result); -} -public override int GetFriendSteamLevel(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendSteamLevel(m_pSteamFriends,steamIDFriend); - return result; -} -public override string GetPlayerNickname(ulong steamIDPlayer) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetPlayerNickname(m_pSteamFriends,steamIDPlayer); - return Marshal.PtrToStringAnsi(result); -} -public override int GetFriendsGroupCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupCount(m_pSteamFriends); - return result; -} -public override char GetFriendsGroupIDByIndex(int iFG) -{ - CheckIfUsable(); - char result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex(m_pSteamFriends,iFG); - return result; -} -public override string GetFriendsGroupName(char friendsGroupID) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupName(m_pSteamFriends,friendsGroupID); - return Marshal.PtrToStringAnsi(result); -} -public override int GetFriendsGroupMembersCount(char friendsGroupID) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupMembersCount(m_pSteamFriends,friendsGroupID); - return result; -} -public override void GetFriendsGroupMembersList(char friendsGroupID,out CSteamID [] pOutSteamIDMembers) -{ - CheckIfUsable(); - int nMembersCount = GetFriendsGroupMembersCount (friendsGroupID); - pOutSteamIDMembers = new CSteamID[nMembersCount]; - NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupMembersList(m_pSteamFriends,friendsGroupID,pOutSteamIDMembers,nMembersCount); -} -public override bool HasFriend(ulong steamIDFriend,int iFriendFlags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_HasFriend(m_pSteamFriends,steamIDFriend,iFriendFlags); - return result; -} -public override int GetClanCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanCount(m_pSteamFriends); - return result; -} -public override ulong GetClanByIndex(int iClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanByIndex(m_pSteamFriends,iClan); - return result; -} -public override string GetClanName(ulong steamIDClan) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanName(m_pSteamFriends,steamIDClan); - return Marshal.PtrToStringAnsi(result); -} -public override string GetClanTag(ulong steamIDClan) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanTag(m_pSteamFriends,steamIDClan); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetClanActivityCounts(ulong steamIDClan,ref int pnOnline,ref int pnInGame,ref int pnChatting) -{ - CheckIfUsable(); - pnOnline = 0; - pnInGame = 0; - pnChatting = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanActivityCounts(m_pSteamFriends,steamIDClan,ref pnOnline,ref pnInGame,ref pnChatting); - return result; -} -public override ulong DownloadClanActivityCounts(CSteamID [] psteamIDClans) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_DownloadClanActivityCounts(m_pSteamFriends,psteamIDClans,(int) psteamIDClans.Length); - return result; -} -public override int GetFriendCountFromSource(ulong steamIDSource) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendCountFromSource(m_pSteamFriends,steamIDSource); - return result; -} -public override ulong GetFriendFromSourceByIndex(ulong steamIDSource,int iFriend) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendFromSourceByIndex(m_pSteamFriends,steamIDSource,iFriend); - return result; -} -public override bool IsUserInSource(ulong steamIDUser,ulong steamIDSource) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_IsUserInSource(m_pSteamFriends,steamIDUser,steamIDSource); - return result; -} -public override void SetInGameVoiceSpeaking(ulong steamIDUser,bool bSpeaking) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_SetInGameVoiceSpeaking(m_pSteamFriends,steamIDUser,bSpeaking); -} -public override void ActivateGameOverlay(string pchDialog) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlay(m_pSteamFriends,pchDialog); -} -public override void ActivateGameOverlayToUser(string pchDialog,ulong steamID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlayToUser(m_pSteamFriends,pchDialog,steamID); -} -public override void ActivateGameOverlayToWebPage(string pchURL) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage(m_pSteamFriends,pchURL); -} -public override void ActivateGameOverlayToStore(uint nAppID,char eFlag) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlayToStore(m_pSteamFriends,nAppID,eFlag); -} -public override void SetPlayedWith(ulong steamIDUserPlayedWith) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_SetPlayedWith(m_pSteamFriends,steamIDUserPlayedWith); -} -public override void ActivateGameOverlayInviteDialog(ulong steamIDLobby) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(m_pSteamFriends,steamIDLobby); -} -public override int GetSmallFriendAvatar(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetSmallFriendAvatar(m_pSteamFriends,steamIDFriend); - return result; -} -public override int GetMediumFriendAvatar(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetMediumFriendAvatar(m_pSteamFriends,steamIDFriend); - return result; -} -public override int GetLargeFriendAvatar(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetLargeFriendAvatar(m_pSteamFriends,steamIDFriend); - return result; -} -public override bool RequestUserInformation(ulong steamIDUser,bool bRequireNameOnly) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_RequestUserInformation(m_pSteamFriends,steamIDUser,bRequireNameOnly); - return result; -} -public override ulong RequestClanOfficerList(ulong steamIDClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_RequestClanOfficerList(m_pSteamFriends,steamIDClan); - return result; -} -public override ulong GetClanOwner(ulong steamIDClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanOwner(m_pSteamFriends,steamIDClan); - return result; -} -public override int GetClanOfficerCount(ulong steamIDClan) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanOfficerCount(m_pSteamFriends,steamIDClan); - return result; -} -public override ulong GetClanOfficerByIndex(ulong steamIDClan,int iOfficer) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanOfficerByIndex(m_pSteamFriends,steamIDClan,iOfficer); - return result; -} -public override uint GetUserRestrictions() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetUserRestrictions(m_pSteamFriends); - return result; -} -public override bool SetRichPresence(string pchKey,string pchValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_SetRichPresence(m_pSteamFriends,pchKey,pchValue); - return result; -} -public override void ClearRichPresence() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ClearRichPresence(m_pSteamFriends); -} -public override string GetFriendRichPresence(ulong steamIDFriend,string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendRichPresence(m_pSteamFriends,steamIDFriend,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override int GetFriendRichPresenceKeyCount(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount(m_pSteamFriends,steamIDFriend); - return result; -} -public override string GetFriendRichPresenceKeyByIndex(ulong steamIDFriend,int iKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex(m_pSteamFriends,steamIDFriend,iKey); - return Marshal.PtrToStringAnsi(result); -} -public override void RequestFriendRichPresence(ulong steamIDFriend) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_RequestFriendRichPresence(m_pSteamFriends,steamIDFriend); -} -public override bool InviteUserToGame(ulong steamIDFriend,string pchConnectString) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_InviteUserToGame(m_pSteamFriends,steamIDFriend,pchConnectString); - return result; -} -public override int GetCoplayFriendCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetCoplayFriendCount(m_pSteamFriends); - return result; -} -public override ulong GetCoplayFriend(int iCoplayFriend) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetCoplayFriend(m_pSteamFriends,iCoplayFriend); - return result; -} -public override int GetFriendCoplayTime(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendCoplayTime(m_pSteamFriends,steamIDFriend); - return result; -} -public override uint GetFriendCoplayGame(ulong steamIDFriend) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendCoplayGame(m_pSteamFriends,steamIDFriend); - return result; -} -public override ulong JoinClanChatRoom(ulong steamIDClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_JoinClanChatRoom(m_pSteamFriends,steamIDClan); - return result; -} -public override bool LeaveClanChatRoom(ulong steamIDClan) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_LeaveClanChatRoom(m_pSteamFriends,steamIDClan); - return result; -} -public override int GetClanChatMemberCount(ulong steamIDClan) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanChatMemberCount(m_pSteamFriends,steamIDClan); - return result; -} -public override ulong GetChatMemberByIndex(ulong steamIDClan,int iUser) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetChatMemberByIndex(m_pSteamFriends,steamIDClan,iUser); - return result; -} -public override bool SendClanChatMessage(ulong steamIDClanChat,string pchText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_SendClanChatMessage(m_pSteamFriends,steamIDClanChat,pchText); - return result; -} -public override int GetClanChatMessage(ulong steamIDClanChat,int iMessage,IntPtr prgchText,int cchTextMax,ref uint peChatEntryType,out CSteamID psteamidChatter) -{ - CheckIfUsable(); - peChatEntryType = 0; - psteamidChatter = new CSteamID(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanChatMessage(m_pSteamFriends,steamIDClanChat,iMessage,prgchText,cchTextMax,ref peChatEntryType,ref psteamidChatter); - return result; -} -public override bool IsClanChatAdmin(ulong steamIDClanChat,ulong steamIDUser) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_IsClanChatAdmin(m_pSteamFriends,steamIDClanChat,steamIDUser); - return result; -} -public override bool IsClanChatWindowOpenInSteam(ulong steamIDClanChat) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam(m_pSteamFriends,steamIDClanChat); - return result; -} -public override bool OpenClanChatWindowInSteam(ulong steamIDClanChat) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_OpenClanChatWindowInSteam(m_pSteamFriends,steamIDClanChat); - return result; -} -public override bool CloseClanChatWindowInSteam(ulong steamIDClanChat) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_CloseClanChatWindowInSteam(m_pSteamFriends,steamIDClanChat); - return result; -} -public override bool SetListenForFriendsMessages(bool bInterceptEnabled) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_SetListenForFriendsMessages(m_pSteamFriends,bInterceptEnabled); - return result; -} -public override bool ReplyToFriendMessage(ulong steamIDFriend,string pchMsgToSend) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_ReplyToFriendMessage(m_pSteamFriends,steamIDFriend,pchMsgToSend); - return result; -} -public override int GetFriendMessage(ulong steamIDFriend,int iMessageID,IntPtr pvData,int cubData,ref uint peChatEntryType) -{ - CheckIfUsable(); - peChatEntryType = 0; - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendMessage(m_pSteamFriends,steamIDFriend,iMessageID,pvData,cubData,ref peChatEntryType); - return result; -} -public override ulong GetFollowerCount(ulong steamID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFollowerCount(m_pSteamFriends,steamID); - return result; -} -public override ulong IsFollowing(ulong steamID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_IsFollowing(m_pSteamFriends,steamID); - return result; -} -public override ulong EnumerateFollowingList(uint unStartIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_EnumerateFollowingList(m_pSteamFriends,unStartIndex); - return result; -} -} - - -public class CSteamUtils : ISteamUtils -{ -public CSteamUtils(IntPtr SteamUtils) -{ - m_pSteamUtils = SteamUtils; -} -IntPtr m_pSteamUtils; - -public override IntPtr GetIntPtr() { return m_pSteamUtils; } - -private void CheckIfUsable() -{ - if (m_pSteamUtils == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint GetSecondsSinceAppActive() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetSecondsSinceAppActive(m_pSteamUtils); - return result; -} -public override uint GetSecondsSinceComputerActive() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetSecondsSinceComputerActive(m_pSteamUtils); - return result; -} -public override int GetConnectedUniverse() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUtils_GetConnectedUniverse(m_pSteamUtils); - return result; -} -public override uint GetServerRealTime() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetServerRealTime(m_pSteamUtils); - return result; -} -public override string GetIPCountry() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUtils_GetIPCountry(m_pSteamUtils); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetImageSize(int iImage,ref uint pnWidth,ref uint pnHeight) -{ - CheckIfUsable(); - pnWidth = 0; - pnHeight = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetImageSize(m_pSteamUtils,iImage,ref pnWidth,ref pnHeight); - return result; -} -public override bool GetImageRGBA(int iImage,IntPtr pubDest,int nDestBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetImageRGBA(m_pSteamUtils,iImage,pubDest,nDestBufferSize); - return result; -} -public override bool GetCSERIPPort(ref uint unIP,ref char usPort) -{ - CheckIfUsable(); - unIP = 0; - usPort = (char) 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetCSERIPPort(m_pSteamUtils,ref unIP,ref usPort); - return result; -} -public override byte GetCurrentBatteryPower() -{ - CheckIfUsable(); - byte result = NativeEntrypoints.SteamAPI_ISteamUtils_GetCurrentBatteryPower(m_pSteamUtils); - return result; -} -public override uint GetAppID() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetAppID(m_pSteamUtils); - return result; -} -public override void SetOverlayNotificationPosition(uint eNotificationPosition) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUtils_SetOverlayNotificationPosition(m_pSteamUtils,eNotificationPosition); -} -public override bool IsAPICallCompleted(ulong hSteamAPICall,ref bool pbFailed) -{ - CheckIfUsable(); - pbFailed = false; - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsAPICallCompleted(m_pSteamUtils,hSteamAPICall,ref pbFailed); - return result; -} -public override int GetAPICallFailureReason(ulong hSteamAPICall) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUtils_GetAPICallFailureReason(m_pSteamUtils,hSteamAPICall); - return result; -} -public override bool GetAPICallResult(ulong hSteamAPICall,IntPtr pCallback,int cubCallback,int iCallbackExpected,ref bool pbFailed) -{ - CheckIfUsable(); - pbFailed = false; - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetAPICallResult(m_pSteamUtils,hSteamAPICall,pCallback,cubCallback,iCallbackExpected,ref pbFailed); - return result; -} -public override uint GetIPCCallCount() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetIPCCallCount(m_pSteamUtils); - return result; -} -public override void SetWarningMessageHook(IntPtr pFunction) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUtils_SetWarningMessageHook(m_pSteamUtils,pFunction); -} -public override bool IsOverlayEnabled() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsOverlayEnabled(m_pSteamUtils); - return result; -} -public override bool BOverlayNeedsPresent() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_BOverlayNeedsPresent(m_pSteamUtils); - return result; -} -public override ulong CheckFileSignature(string szFileName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUtils_CheckFileSignature(m_pSteamUtils,szFileName); - return result; -} -public override bool ShowGamepadTextInput(int eInputMode,int eLineInputMode,string pchDescription,uint unCharMax,string pchExistingText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_ShowGamepadTextInput(m_pSteamUtils,eInputMode,eLineInputMode,pchDescription,unCharMax,pchExistingText); - return result; -} -public override uint GetEnteredGamepadTextLength() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetEnteredGamepadTextLength(m_pSteamUtils); - return result; -} -public override bool GetEnteredGamepadTextInput(string pchText,uint cchText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetEnteredGamepadTextInput(m_pSteamUtils,pchText,cchText); - return result; -} -public override string GetSteamUILanguage() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUtils_GetSteamUILanguage(m_pSteamUtils); - return Marshal.PtrToStringAnsi(result); -} -public override bool IsSteamRunningInVR() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsSteamRunningInVR(m_pSteamUtils); - return result; -} -public override void SetOverlayNotificationInset(int nHorizontalInset,int nVerticalInset) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUtils_SetOverlayNotificationInset(m_pSteamUtils,nHorizontalInset,nVerticalInset); -} -public override bool IsSteamInBigPictureMode() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsSteamInBigPictureMode(m_pSteamUtils); - return result; -} -public override void StartVRDashboard() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUtils_StartVRDashboard(m_pSteamUtils); -} -} - - -public class CSteamMatchmaking : ISteamMatchmaking -{ -public CSteamMatchmaking(IntPtr SteamMatchmaking) -{ - m_pSteamMatchmaking = SteamMatchmaking; -} -IntPtr m_pSteamMatchmaking; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmaking; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmaking == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override int GetFavoriteGameCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(m_pSteamMatchmaking); - return result; -} -public override bool GetFavoriteGame(int iGame,ref uint pnAppID,ref uint pnIP,ref char pnConnPort,ref char pnQueryPort,ref uint punFlags,ref uint pRTime32LastPlayedOnServer) -{ - CheckIfUsable(); - pnAppID = 0; - pnIP = 0; - pnConnPort = (char) 0; - pnQueryPort = (char) 0; - punFlags = 0; - pRTime32LastPlayedOnServer = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetFavoriteGame(m_pSteamMatchmaking,iGame,ref pnAppID,ref pnIP,ref pnConnPort,ref pnQueryPort,ref punFlags,ref pRTime32LastPlayedOnServer); - return result; -} -public override int AddFavoriteGame(uint nAppID,uint nIP,char nConnPort,char nQueryPort,uint unFlags,uint rTime32LastPlayedOnServer) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddFavoriteGame(m_pSteamMatchmaking,nAppID,nIP,nConnPort,nQueryPort,unFlags,rTime32LastPlayedOnServer); - return result; -} -public override bool RemoveFavoriteGame(uint nAppID,uint nIP,char nConnPort,char nQueryPort,uint unFlags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_RemoveFavoriteGame(m_pSteamMatchmaking,nAppID,nIP,nConnPort,nQueryPort,unFlags); - return result; -} -public override ulong RequestLobbyList() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_RequestLobbyList(m_pSteamMatchmaking); - return result; -} -public override void AddRequestLobbyListStringFilter(string pchKeyToMatch,string pchValueToMatch,uint eComparisonType) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter(m_pSteamMatchmaking,pchKeyToMatch,pchValueToMatch,eComparisonType); -} -public override void AddRequestLobbyListNumericalFilter(string pchKeyToMatch,int nValueToMatch,uint eComparisonType) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter(m_pSteamMatchmaking,pchKeyToMatch,nValueToMatch,eComparisonType); -} -public override void AddRequestLobbyListNearValueFilter(string pchKeyToMatch,int nValueToBeCloseTo) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter(m_pSteamMatchmaking,pchKeyToMatch,nValueToBeCloseTo); -} -public override void AddRequestLobbyListFilterSlotsAvailable(int nSlotsAvailable) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(m_pSteamMatchmaking,nSlotsAvailable); -} -public override void AddRequestLobbyListDistanceFilter(uint eLobbyDistanceFilter) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter(m_pSteamMatchmaking,eLobbyDistanceFilter); -} -public override void AddRequestLobbyListResultCountFilter(int cMaxResults) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter(m_pSteamMatchmaking,cMaxResults); -} -public override void AddRequestLobbyListCompatibleMembersFilter(ulong steamIDLobby) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(m_pSteamMatchmaking,steamIDLobby); -} -public override ulong GetLobbyByIndex(int iLobby) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyByIndex(m_pSteamMatchmaking,iLobby); - return result; -} -public override ulong CreateLobby(uint eLobbyType,int cMaxMembers) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_CreateLobby(m_pSteamMatchmaking,eLobbyType,cMaxMembers); - return result; -} -public override ulong JoinLobby(ulong steamIDLobby) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_JoinLobby(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override void LeaveLobby(ulong steamIDLobby) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_LeaveLobby(m_pSteamMatchmaking,steamIDLobby); -} -public override bool InviteUserToLobby(ulong steamIDLobby,ulong steamIDInvitee) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_InviteUserToLobby(m_pSteamMatchmaking,steamIDLobby,steamIDInvitee); - return result; -} -public override int GetNumLobbyMembers(ulong steamIDLobby) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetNumLobbyMembers(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override ulong GetLobbyMemberByIndex(ulong steamIDLobby,int iMember) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex(m_pSteamMatchmaking,steamIDLobby,iMember); - return result; -} -public override string GetLobbyData(ulong steamIDLobby,string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyData(m_pSteamMatchmaking,steamIDLobby,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override bool SetLobbyData(ulong steamIDLobby,string pchKey,string pchValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyData(m_pSteamMatchmaking,steamIDLobby,pchKey,pchValue); - return result; -} -public override int GetLobbyDataCount(ulong steamIDLobby) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyDataCount(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override bool GetLobbyDataByIndex(ulong steamIDLobby,int iLobbyData,string pchKey,int cchKeyBufferSize,string pchValue,int cchValueBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex(m_pSteamMatchmaking,steamIDLobby,iLobbyData,pchKey,cchKeyBufferSize,pchValue,cchValueBufferSize); - return result; -} -public override bool DeleteLobbyData(ulong steamIDLobby,string pchKey) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_DeleteLobbyData(m_pSteamMatchmaking,steamIDLobby,pchKey); - return result; -} -public override string GetLobbyMemberData(ulong steamIDLobby,ulong steamIDUser,string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyMemberData(m_pSteamMatchmaking,steamIDLobby,steamIDUser,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override void SetLobbyMemberData(ulong steamIDLobby,string pchKey,string pchValue) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyMemberData(m_pSteamMatchmaking,steamIDLobby,pchKey,pchValue); -} -public override bool SendLobbyChatMsg(ulong steamIDLobby,IntPtr pvMsgBody,int cubMsgBody) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SendLobbyChatMsg(m_pSteamMatchmaking,steamIDLobby,pvMsgBody,cubMsgBody); - return result; -} -public override int GetLobbyChatEntry(ulong steamIDLobby,int iChatID,out CSteamID pSteamIDUser,IntPtr pvData,int cubData,ref uint peChatEntryType) -{ - CheckIfUsable(); - pSteamIDUser = new CSteamID(); - peChatEntryType = 0; - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyChatEntry(m_pSteamMatchmaking,steamIDLobby,iChatID,ref pSteamIDUser,pvData,cubData,ref peChatEntryType); - return result; -} -public override bool RequestLobbyData(ulong steamIDLobby) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_RequestLobbyData(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override void SetLobbyGameServer(ulong steamIDLobby,uint unGameServerIP,char unGameServerPort,ulong steamIDGameServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyGameServer(m_pSteamMatchmaking,steamIDLobby,unGameServerIP,unGameServerPort,steamIDGameServer); -} -public override bool GetLobbyGameServer(ulong steamIDLobby,ref uint punGameServerIP,ref char punGameServerPort,out CSteamID psteamIDGameServer) -{ - CheckIfUsable(); - punGameServerIP = 0; - punGameServerPort = (char) 0; - psteamIDGameServer = new CSteamID(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyGameServer(m_pSteamMatchmaking,steamIDLobby,ref punGameServerIP,ref punGameServerPort,ref psteamIDGameServer); - return result; -} -public override bool SetLobbyMemberLimit(ulong steamIDLobby,int cMaxMembers) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit(m_pSteamMatchmaking,steamIDLobby,cMaxMembers); - return result; -} -public override int GetLobbyMemberLimit(ulong steamIDLobby) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override bool SetLobbyType(ulong steamIDLobby,uint eLobbyType) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyType(m_pSteamMatchmaking,steamIDLobby,eLobbyType); - return result; -} -public override bool SetLobbyJoinable(ulong steamIDLobby,bool bLobbyJoinable) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyJoinable(m_pSteamMatchmaking,steamIDLobby,bLobbyJoinable); - return result; -} -public override ulong GetLobbyOwner(ulong steamIDLobby) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyOwner(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override bool SetLobbyOwner(ulong steamIDLobby,ulong steamIDNewOwner) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyOwner(m_pSteamMatchmaking,steamIDLobby,steamIDNewOwner); - return result; -} -public override bool SetLinkedLobby(ulong steamIDLobby,ulong steamIDLobbyDependent) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLinkedLobby(m_pSteamMatchmaking,steamIDLobby,steamIDLobbyDependent); - return result; -} -} - - -public class CSteamMatchmakingServerListResponse : ISteamMatchmakingServerListResponse -{ -public CSteamMatchmakingServerListResponse(IntPtr SteamMatchmakingServerListResponse) -{ - m_pSteamMatchmakingServerListResponse = SteamMatchmakingServerListResponse; -} -IntPtr m_pSteamMatchmakingServerListResponse; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingServerListResponse; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingServerListResponse == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void ServerResponded(uint hRequest,int iServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded(m_pSteamMatchmakingServerListResponse,hRequest,iServer); -} -public override void ServerFailedToRespond(uint hRequest,int iServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond(m_pSteamMatchmakingServerListResponse,hRequest,iServer); -} -public override void RefreshComplete(uint hRequest,uint response) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete(m_pSteamMatchmakingServerListResponse,hRequest,response); -} -} - - -public class CSteamMatchmakingPingResponse : ISteamMatchmakingPingResponse -{ -public CSteamMatchmakingPingResponse(IntPtr SteamMatchmakingPingResponse) -{ - m_pSteamMatchmakingPingResponse = SteamMatchmakingPingResponse; -} -IntPtr m_pSteamMatchmakingPingResponse; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingPingResponse; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingPingResponse == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void ServerResponded(IntPtr server) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPingResponse_ServerResponded(m_pSteamMatchmakingPingResponse,server); -} -public override void ServerFailedToRespond() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond(m_pSteamMatchmakingPingResponse); -} -} - - -public class CSteamMatchmakingPlayersResponse : ISteamMatchmakingPlayersResponse -{ -public CSteamMatchmakingPlayersResponse(IntPtr SteamMatchmakingPlayersResponse) -{ - m_pSteamMatchmakingPlayersResponse = SteamMatchmakingPlayersResponse; -} -IntPtr m_pSteamMatchmakingPlayersResponse; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingPlayersResponse; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingPlayersResponse == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void AddPlayerToList(string pchName,int nScore,float flTimePlayed) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList(m_pSteamMatchmakingPlayersResponse,pchName,nScore,flTimePlayed); -} -public override void PlayersFailedToRespond() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond(m_pSteamMatchmakingPlayersResponse); -} -public override void PlayersRefreshComplete() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete(m_pSteamMatchmakingPlayersResponse); -} -} - - -public class CSteamMatchmakingRulesResponse : ISteamMatchmakingRulesResponse -{ -public CSteamMatchmakingRulesResponse(IntPtr SteamMatchmakingRulesResponse) -{ - m_pSteamMatchmakingRulesResponse = SteamMatchmakingRulesResponse; -} -IntPtr m_pSteamMatchmakingRulesResponse; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingRulesResponse; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingRulesResponse == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void RulesResponded(string pchRule,string pchValue) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded(m_pSteamMatchmakingRulesResponse,pchRule,pchValue); -} -public override void RulesFailedToRespond() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond(m_pSteamMatchmakingRulesResponse); -} -public override void RulesRefreshComplete() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete(m_pSteamMatchmakingRulesResponse); -} -} - - -public class CSteamMatchmakingServers : ISteamMatchmakingServers -{ -public CSteamMatchmakingServers(IntPtr SteamMatchmakingServers) -{ - m_pSteamMatchmakingServers = SteamMatchmakingServers; -} -IntPtr m_pSteamMatchmakingServers; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingServers; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingServers == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint RequestInternetServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestInternetServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestLANServerList(uint iApp,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestLANServerList(m_pSteamMatchmakingServers,iApp,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestFriendsServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestFavoritesServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestHistoryServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestSpectatorServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override void ReleaseRequest(uint hServerListRequest) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_ReleaseRequest(m_pSteamMatchmakingServers,hServerListRequest); -} -public override gameserveritem_t GetServerDetails(uint hRequest,int iServer) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_GetServerDetails(m_pSteamMatchmakingServers,hRequest,iServer); - return (gameserveritem_t) Marshal.PtrToStructure(result, typeof(gameserveritem_t)); -} -public override void CancelQuery(uint hRequest) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_CancelQuery(m_pSteamMatchmakingServers,hRequest); -} -public override void RefreshQuery(uint hRequest) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RefreshQuery(m_pSteamMatchmakingServers,hRequest); -} -public override bool IsRefreshing(uint hRequest) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_IsRefreshing(m_pSteamMatchmakingServers,hRequest); - return result; -} -public override int GetServerCount(uint hRequest) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_GetServerCount(m_pSteamMatchmakingServers,hRequest); - return result; -} -public override void RefreshServer(uint hRequest,int iServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RefreshServer(m_pSteamMatchmakingServers,hRequest,iServer); -} -public override uint PingServer(uint unIP,char usPort,ISteamMatchmakingPingResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_PingServer(m_pSteamMatchmakingServers,unIP,usPort,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint PlayerDetails(uint unIP,char usPort,ISteamMatchmakingPlayersResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_PlayerDetails(m_pSteamMatchmakingServers,unIP,usPort,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint ServerRules(uint unIP,char usPort,ISteamMatchmakingRulesResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_ServerRules(m_pSteamMatchmakingServers,unIP,usPort,pRequestServersResponse.GetIntPtr()); - return result; -} -public override void CancelServerQuery(uint hServerQuery) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_CancelServerQuery(m_pSteamMatchmakingServers,hServerQuery); -} -} - - -public class CSteamRemoteStorage : ISteamRemoteStorage -{ -public CSteamRemoteStorage(IntPtr SteamRemoteStorage) -{ - m_pSteamRemoteStorage = SteamRemoteStorage; -} -IntPtr m_pSteamRemoteStorage; - -public override IntPtr GetIntPtr() { return m_pSteamRemoteStorage; } - -private void CheckIfUsable() -{ - if (m_pSteamRemoteStorage == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool FileWrite(string pchFile,IntPtr pvData,int cubData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWrite(m_pSteamRemoteStorage,pchFile,pvData,cubData); - return result; -} -public override int FileRead(string pchFile,IntPtr pvData,int cubDataToRead) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileRead(m_pSteamRemoteStorage,pchFile,pvData,cubDataToRead); - return result; -} -public override ulong FileWriteAsync(string pchFile,IntPtr pvData,uint cubData) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteAsync(m_pSteamRemoteStorage,pchFile,pvData,cubData); - return result; -} -public override ulong FileReadAsync(string pchFile,uint nOffset,uint cubToRead) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileReadAsync(m_pSteamRemoteStorage,pchFile,nOffset,cubToRead); - return result; -} -public override bool FileReadAsyncComplete(ulong hReadCall,IntPtr pvBuffer,uint cubToRead) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete(m_pSteamRemoteStorage,hReadCall,pvBuffer,cubToRead); - return result; -} -public override bool FileForget(string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileForget(m_pSteamRemoteStorage,pchFile); - return result; -} -public override bool FileDelete(string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileDelete(m_pSteamRemoteStorage,pchFile); - return result; -} -public override ulong FileShare(string pchFile) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileShare(m_pSteamRemoteStorage,pchFile); - return result; -} -public override bool SetSyncPlatforms(string pchFile,uint eRemoteStoragePlatform) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_SetSyncPlatforms(m_pSteamRemoteStorage,pchFile,eRemoteStoragePlatform); - return result; -} -public override ulong FileWriteStreamOpen(string pchFile) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen(m_pSteamRemoteStorage,pchFile); - return result; -} -public override bool FileWriteStreamWriteChunk(ulong writeHandle,IntPtr pvData,int cubData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk(m_pSteamRemoteStorage,writeHandle,pvData,cubData); - return result; -} -public override bool FileWriteStreamClose(ulong writeHandle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteStreamClose(m_pSteamRemoteStorage,writeHandle); - return result; -} -public override bool FileWriteStreamCancel(ulong writeHandle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel(m_pSteamRemoteStorage,writeHandle); - return result; -} -public override bool FileExists(string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileExists(m_pSteamRemoteStorage,pchFile); - return result; -} -public override bool FilePersisted(string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FilePersisted(m_pSteamRemoteStorage,pchFile); - return result; -} -public override int GetFileSize(string pchFile) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetFileSize(m_pSteamRemoteStorage,pchFile); - return result; -} -public override long GetFileTimestamp(string pchFile) -{ - CheckIfUsable(); - long result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetFileTimestamp(m_pSteamRemoteStorage,pchFile); - return result; -} -public override uint GetSyncPlatforms(string pchFile) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetSyncPlatforms(m_pSteamRemoteStorage,pchFile); - return result; -} -public override int GetFileCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetFileCount(m_pSteamRemoteStorage); - return result; -} -public override string GetFileNameAndSize(int iFile,ref int pnFileSizeInBytes) -{ - CheckIfUsable(); - pnFileSizeInBytes = 0; - IntPtr result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetFileNameAndSize(m_pSteamRemoteStorage,iFile,ref pnFileSizeInBytes); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetQuota(ref ulong pnTotalBytes,ref ulong puAvailableBytes) -{ - CheckIfUsable(); - pnTotalBytes = 0; - puAvailableBytes = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetQuota(m_pSteamRemoteStorage,ref pnTotalBytes,ref puAvailableBytes); - return result; -} -public override bool IsCloudEnabledForAccount() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount(m_pSteamRemoteStorage); - return result; -} -public override bool IsCloudEnabledForApp() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp(m_pSteamRemoteStorage); - return result; -} -public override void SetCloudEnabledForApp(bool bEnabled) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp(m_pSteamRemoteStorage,bEnabled); -} -public override ulong UGCDownload(ulong hContent,uint unPriority) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UGCDownload(m_pSteamRemoteStorage,hContent,unPriority); - return result; -} -public override bool GetUGCDownloadProgress(ulong hContent,ref int pnBytesDownloaded,ref int pnBytesExpected) -{ - CheckIfUsable(); - pnBytesDownloaded = 0; - pnBytesExpected = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress(m_pSteamRemoteStorage,hContent,ref pnBytesDownloaded,ref pnBytesExpected); - return result; -} -public override bool GetUGCDetails(ulong hContent,ref uint pnAppID,System.Text.StringBuilder ppchName,ref int pnFileSizeInBytes,out CSteamID pSteamIDOwner) -{ - CheckIfUsable(); - pnAppID = 0; - pnFileSizeInBytes = 0; - pSteamIDOwner = new CSteamID(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetUGCDetails(m_pSteamRemoteStorage,hContent,ref pnAppID,ppchName,ref pnFileSizeInBytes,ref pSteamIDOwner); - return result; -} -public override int UGCRead(ulong hContent,IntPtr pvData,int cubDataToRead,uint cOffset,uint eAction) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UGCRead(m_pSteamRemoteStorage,hContent,pvData,cubDataToRead,cOffset,eAction); - return result; -} -public override int GetCachedUGCCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetCachedUGCCount(m_pSteamRemoteStorage); - return result; -} -public override ulong GetCachedUGCHandle(int iCachedContent) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle(m_pSteamRemoteStorage,iCachedContent); - return result; -} -public override ulong PublishWorkshopFile(string pchFile,string pchPreviewFile,uint nConsumerAppId,string pchTitle,string pchDescription,uint eVisibility,ref SteamParamStringArray_t pTags,uint eWorkshopFileType) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_PublishWorkshopFile(m_pSteamRemoteStorage,pchFile,pchPreviewFile,nConsumerAppId,pchTitle,pchDescription,eVisibility,ref pTags,eWorkshopFileType); - return result; -} -public override ulong CreatePublishedFileUpdateRequest(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override bool UpdatePublishedFileFile(ulong updateHandle,string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile(m_pSteamRemoteStorage,updateHandle,pchFile); - return result; -} -public override bool UpdatePublishedFilePreviewFile(ulong updateHandle,string pchPreviewFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile(m_pSteamRemoteStorage,updateHandle,pchPreviewFile); - return result; -} -public override bool UpdatePublishedFileTitle(ulong updateHandle,string pchTitle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle(m_pSteamRemoteStorage,updateHandle,pchTitle); - return result; -} -public override bool UpdatePublishedFileDescription(ulong updateHandle,string pchDescription) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription(m_pSteamRemoteStorage,updateHandle,pchDescription); - return result; -} -public override bool UpdatePublishedFileVisibility(ulong updateHandle,uint eVisibility) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility(m_pSteamRemoteStorage,updateHandle,eVisibility); - return result; -} -public override bool UpdatePublishedFileTags(ulong updateHandle,ref SteamParamStringArray_t pTags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags(m_pSteamRemoteStorage,updateHandle,ref pTags); - return result; -} -public override ulong CommitPublishedFileUpdate(ulong updateHandle) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate(m_pSteamRemoteStorage,updateHandle); - return result; -} -public override ulong GetPublishedFileDetails(ulong unPublishedFileId,uint unMaxSecondsOld) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails(m_pSteamRemoteStorage,unPublishedFileId,unMaxSecondsOld); - return result; -} -public override ulong DeletePublishedFile(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_DeletePublishedFile(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override ulong EnumerateUserPublishedFiles(uint unStartIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles(m_pSteamRemoteStorage,unStartIndex); - return result; -} -public override ulong SubscribePublishedFile(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_SubscribePublishedFile(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override ulong EnumerateUserSubscribedFiles(uint unStartIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles(m_pSteamRemoteStorage,unStartIndex); - return result; -} -public override ulong UnsubscribePublishedFile(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override bool UpdatePublishedFileSetChangeDescription(ulong updateHandle,string pchChangeDescription) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(m_pSteamRemoteStorage,updateHandle,pchChangeDescription); - return result; -} -public override ulong GetPublishedItemVoteDetails(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override ulong UpdateUserPublishedItemVote(ulong unPublishedFileId,bool bVoteUp) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote(m_pSteamRemoteStorage,unPublishedFileId,bVoteUp); - return result; -} -public override ulong GetUserPublishedItemVoteDetails(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override ulong EnumerateUserSharedWorkshopFiles(ulong steamId,uint unStartIndex,ref SteamParamStringArray_t pRequiredTags,ref SteamParamStringArray_t pExcludedTags) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(m_pSteamRemoteStorage,steamId,unStartIndex,ref pRequiredTags,ref pExcludedTags); - return result; -} -public override ulong PublishVideo(uint eVideoProvider,string pchVideoAccount,string pchVideoIdentifier,string pchPreviewFile,uint nConsumerAppId,string pchTitle,string pchDescription,uint eVisibility,ref SteamParamStringArray_t pTags) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_PublishVideo(m_pSteamRemoteStorage,eVideoProvider,pchVideoAccount,pchVideoIdentifier,pchPreviewFile,nConsumerAppId,pchTitle,pchDescription,eVisibility,ref pTags); - return result; -} -public override ulong SetUserPublishedFileAction(ulong unPublishedFileId,uint eAction) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction(m_pSteamRemoteStorage,unPublishedFileId,eAction); - return result; -} -public override ulong EnumeratePublishedFilesByUserAction(uint eAction,uint unStartIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(m_pSteamRemoteStorage,eAction,unStartIndex); - return result; -} -public override ulong EnumeratePublishedWorkshopFiles(uint eEnumerationType,uint unStartIndex,uint unCount,uint unDays,ref SteamParamStringArray_t pTags,ref SteamParamStringArray_t pUserTags) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(m_pSteamRemoteStorage,eEnumerationType,unStartIndex,unCount,unDays,ref pTags,ref pUserTags); - return result; -} -public override ulong UGCDownloadToLocation(ulong hContent,string pchLocation,uint unPriority) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation(m_pSteamRemoteStorage,hContent,pchLocation,unPriority); - return result; -} -} - - -public class CSteamUserStats : ISteamUserStats -{ -public CSteamUserStats(IntPtr SteamUserStats) -{ - m_pSteamUserStats = SteamUserStats; -} -IntPtr m_pSteamUserStats; - -public override IntPtr GetIntPtr() { return m_pSteamUserStats; } - -private void CheckIfUsable() -{ - if (m_pSteamUserStats == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool RequestCurrentStats() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_RequestCurrentStats(m_pSteamUserStats); - return result; -} -public override bool GetStat(string pchName,ref int pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetStat(m_pSteamUserStats,pchName,ref pData); - return result; -} -public override bool GetStat0(string pchName,ref float pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetStat0(m_pSteamUserStats,pchName,ref pData); - return result; -} -public override bool SetStat(string pchName,int nData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_SetStat(m_pSteamUserStats,pchName,nData); - return result; -} -public override bool SetStat0(string pchName,float fData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_SetStat0(m_pSteamUserStats,pchName,fData); - return result; -} -public override bool UpdateAvgRateStat(string pchName,float flCountThisSession,double dSessionLength) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_UpdateAvgRateStat(m_pSteamUserStats,pchName,flCountThisSession,dSessionLength); - return result; -} -public override bool GetAchievement(string pchName,ref bool pbAchieved) -{ - CheckIfUsable(); - pbAchieved = false; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievement(m_pSteamUserStats,pchName,ref pbAchieved); - return result; -} -public override bool SetAchievement(string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_SetAchievement(m_pSteamUserStats,pchName); - return result; -} -public override bool ClearAchievement(string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_ClearAchievement(m_pSteamUserStats,pchName); - return result; -} -public override bool GetAchievementAndUnlockTime(string pchName,ref bool pbAchieved,ref uint punUnlockTime) -{ - CheckIfUsable(); - pbAchieved = false; - punUnlockTime = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime(m_pSteamUserStats,pchName,ref pbAchieved,ref punUnlockTime); - return result; -} -public override bool StoreStats() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_StoreStats(m_pSteamUserStats); - return result; -} -public override int GetAchievementIcon(string pchName) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementIcon(m_pSteamUserStats,pchName); - return result; -} -public override string GetAchievementDisplayAttribute(string pchName,string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute(m_pSteamUserStats,pchName,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override bool IndicateAchievementProgress(string pchName,uint nCurProgress,uint nMaxProgress) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_IndicateAchievementProgress(m_pSteamUserStats,pchName,nCurProgress,nMaxProgress); - return result; -} -public override uint GetNumAchievements() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetNumAchievements(m_pSteamUserStats); - return result; -} -public override string GetAchievementName(uint iAchievement) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementName(m_pSteamUserStats,iAchievement); - return Marshal.PtrToStringAnsi(result); -} -public override ulong RequestUserStats(ulong steamIDUser) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_RequestUserStats(m_pSteamUserStats,steamIDUser); - return result; -} -public override bool GetUserStat(ulong steamIDUser,string pchName,ref int pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetUserStat(m_pSteamUserStats,steamIDUser,pchName,ref pData); - return result; -} -public override bool GetUserStat0(ulong steamIDUser,string pchName,ref float pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetUserStat0(m_pSteamUserStats,steamIDUser,pchName,ref pData); - return result; -} -public override bool GetUserAchievement(ulong steamIDUser,string pchName,ref bool pbAchieved) -{ - CheckIfUsable(); - pbAchieved = false; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetUserAchievement(m_pSteamUserStats,steamIDUser,pchName,ref pbAchieved); - return result; -} -public override bool GetUserAchievementAndUnlockTime(ulong steamIDUser,string pchName,ref bool pbAchieved,ref uint punUnlockTime) -{ - CheckIfUsable(); - pbAchieved = false; - punUnlockTime = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime(m_pSteamUserStats,steamIDUser,pchName,ref pbAchieved,ref punUnlockTime); - return result; -} -public override bool ResetAllStats(bool bAchievementsToo) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_ResetAllStats(m_pSteamUserStats,bAchievementsToo); - return result; -} -public override ulong FindOrCreateLeaderboard(string pchLeaderboardName,uint eLeaderboardSortMethod,uint eLeaderboardDisplayType) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_FindOrCreateLeaderboard(m_pSteamUserStats,pchLeaderboardName,eLeaderboardSortMethod,eLeaderboardDisplayType); - return result; -} -public override ulong FindLeaderboard(string pchLeaderboardName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_FindLeaderboard(m_pSteamUserStats,pchLeaderboardName); - return result; -} -public override string GetLeaderboardName(ulong hSteamLeaderboard) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetLeaderboardName(m_pSteamUserStats,hSteamLeaderboard); - return Marshal.PtrToStringAnsi(result); -} -public override int GetLeaderboardEntryCount(ulong hSteamLeaderboard) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetLeaderboardEntryCount(m_pSteamUserStats,hSteamLeaderboard); - return result; -} -public override uint GetLeaderboardSortMethod(ulong hSteamLeaderboard) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetLeaderboardSortMethod(m_pSteamUserStats,hSteamLeaderboard); - return result; -} -public override uint GetLeaderboardDisplayType(ulong hSteamLeaderboard) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetLeaderboardDisplayType(m_pSteamUserStats,hSteamLeaderboard); - return result; -} -public override ulong DownloadLeaderboardEntries(ulong hSteamLeaderboard,uint eLeaderboardDataRequest,int nRangeStart,int nRangeEnd) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_DownloadLeaderboardEntries(m_pSteamUserStats,hSteamLeaderboard,eLeaderboardDataRequest,nRangeStart,nRangeEnd); - return result; -} -public override ulong DownloadLeaderboardEntriesForUsers(ulong hSteamLeaderboard,CSteamID [] prgUsers) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers(m_pSteamUserStats,hSteamLeaderboard,prgUsers,(int) prgUsers.Length); - return result; -} -public override bool GetDownloadedLeaderboardEntry(ulong hSteamLeaderboardEntries,int index,ref LeaderboardEntry_t pLeaderboardEntry,ref int pDetails,int cDetailsMax) -{ - CheckIfUsable(); - pDetails = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry(m_pSteamUserStats,hSteamLeaderboardEntries,index,ref pLeaderboardEntry,ref pDetails,cDetailsMax); - return result; -} -public override ulong UploadLeaderboardScore(ulong hSteamLeaderboard,uint eLeaderboardUploadScoreMethod,int nScore,ref int pScoreDetails,int cScoreDetailsCount) -{ - CheckIfUsable(); - pScoreDetails = 0; - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_UploadLeaderboardScore(m_pSteamUserStats,hSteamLeaderboard,eLeaderboardUploadScoreMethod,nScore,ref pScoreDetails,cScoreDetailsCount); - return result; -} -public override ulong AttachLeaderboardUGC(ulong hSteamLeaderboard,ulong hUGC) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_AttachLeaderboardUGC(m_pSteamUserStats,hSteamLeaderboard,hUGC); - return result; -} -public override ulong GetNumberOfCurrentPlayers() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers(m_pSteamUserStats); - return result; -} -public override ulong RequestGlobalAchievementPercentages() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages(m_pSteamUserStats); - return result; -} -public override int GetMostAchievedAchievementInfo(string pchName,uint unNameBufLen,ref float pflPercent,ref bool pbAchieved) -{ - CheckIfUsable(); - pflPercent = 0; - pbAchieved = false; - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo(m_pSteamUserStats,pchName,unNameBufLen,ref pflPercent,ref pbAchieved); - return result; -} -public override int GetNextMostAchievedAchievementInfo(int iIteratorPrevious,string pchName,uint unNameBufLen,ref float pflPercent,ref bool pbAchieved) -{ - CheckIfUsable(); - pflPercent = 0; - pbAchieved = false; - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo(m_pSteamUserStats,iIteratorPrevious,pchName,unNameBufLen,ref pflPercent,ref pbAchieved); - return result; -} -public override bool GetAchievementAchievedPercent(string pchName,ref float pflPercent) -{ - CheckIfUsable(); - pflPercent = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementAchievedPercent(m_pSteamUserStats,pchName,ref pflPercent); - return result; -} -public override ulong RequestGlobalStats(int nHistoryDays) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_RequestGlobalStats(m_pSteamUserStats,nHistoryDays); - return result; -} -public override bool GetGlobalStat(string pchStatName,ref long pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetGlobalStat(m_pSteamUserStats,pchStatName,ref pData); - return result; -} -public override bool GetGlobalStat0(string pchStatName,ref double pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetGlobalStat0(m_pSteamUserStats,pchStatName,ref pData); - return result; -} -public override int GetGlobalStatHistory(string pchStatName,long [] pData) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetGlobalStatHistory(m_pSteamUserStats,pchStatName,pData,(uint) pData.Length); - return result; -} -public override int GetGlobalStatHistory0(string pchStatName,double [] pData) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetGlobalStatHistory0(m_pSteamUserStats,pchStatName,pData,(uint) pData.Length); - return result; -} -} - - -public class CSteamApps : ISteamApps -{ -public CSteamApps(IntPtr SteamApps) -{ - m_pSteamApps = SteamApps; -} -IntPtr m_pSteamApps; - -public override IntPtr GetIntPtr() { return m_pSteamApps; } - -private void CheckIfUsable() -{ - if (m_pSteamApps == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool BIsSubscribed() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsSubscribed(m_pSteamApps); - return result; -} -public override bool BIsLowViolence() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsLowViolence(m_pSteamApps); - return result; -} -public override bool BIsCybercafe() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsCybercafe(m_pSteamApps); - return result; -} -public override bool BIsVACBanned() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsVACBanned(m_pSteamApps); - return result; -} -public override string GetCurrentGameLanguage() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamApps_GetCurrentGameLanguage(m_pSteamApps); - return Marshal.PtrToStringAnsi(result); -} -public override string GetAvailableGameLanguages() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamApps_GetAvailableGameLanguages(m_pSteamApps); - return Marshal.PtrToStringAnsi(result); -} -public override bool BIsSubscribedApp(uint appID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsSubscribedApp(m_pSteamApps,appID); - return result; -} -public override bool BIsDlcInstalled(uint appID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsDlcInstalled(m_pSteamApps,appID); - return result; -} -public override uint GetEarliestPurchaseUnixTime(uint nAppID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime(m_pSteamApps,nAppID); - return result; -} -public override bool BIsSubscribedFromFreeWeekend() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend(m_pSteamApps); - return result; -} -public override int GetDLCCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamApps_GetDLCCount(m_pSteamApps); - return result; -} -public override bool BGetDLCDataByIndex(int iDLC,ref uint pAppID,ref bool pbAvailable,string pchName,int cchNameBufferSize) -{ - CheckIfUsable(); - pAppID = 0; - pbAvailable = false; - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BGetDLCDataByIndex(m_pSteamApps,iDLC,ref pAppID,ref pbAvailable,pchName,cchNameBufferSize); - return result; -} -public override void InstallDLC(uint nAppID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamApps_InstallDLC(m_pSteamApps,nAppID); -} -public override void UninstallDLC(uint nAppID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamApps_UninstallDLC(m_pSteamApps,nAppID); -} -public override void RequestAppProofOfPurchaseKey(uint nAppID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey(m_pSteamApps,nAppID); -} -public override bool GetCurrentBetaName(string pchName,int cchNameBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_GetCurrentBetaName(m_pSteamApps,pchName,cchNameBufferSize); - return result; -} -public override bool MarkContentCorrupt(bool bMissingFilesOnly) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_MarkContentCorrupt(m_pSteamApps,bMissingFilesOnly); - return result; -} -public override uint GetInstalledDepots(uint appID,ref uint pvecDepots,uint cMaxDepots) -{ - CheckIfUsable(); - pvecDepots = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamApps_GetInstalledDepots(m_pSteamApps,appID,ref pvecDepots,cMaxDepots); - return result; -} -public override uint GetAppInstallDir(uint appID,string pchFolder,uint cchFolderBufferSize) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamApps_GetAppInstallDir(m_pSteamApps,appID,pchFolder,cchFolderBufferSize); - return result; -} -public override bool BIsAppInstalled(uint appID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsAppInstalled(m_pSteamApps,appID); - return result; -} -public override ulong GetAppOwner() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamApps_GetAppOwner(m_pSteamApps); - return result; -} -public override string GetLaunchQueryParam(string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamApps_GetLaunchQueryParam(m_pSteamApps,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetDlcDownloadProgress(uint nAppID,ref ulong punBytesDownloaded,ref ulong punBytesTotal) -{ - CheckIfUsable(); - punBytesDownloaded = 0; - punBytesTotal = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamApps_GetDlcDownloadProgress(m_pSteamApps,nAppID,ref punBytesDownloaded,ref punBytesTotal); - return result; -} -public override int GetAppBuildId() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamApps_GetAppBuildId(m_pSteamApps); - return result; -} -public override void RequestAllProofOfPurchaseKeys() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys(m_pSteamApps); -} -public override ulong GetFileDetails(string pszFileName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamApps_GetFileDetails(m_pSteamApps,pszFileName); - return result; -} -} - - -public class CSteamNetworking : ISteamNetworking -{ -public CSteamNetworking(IntPtr SteamNetworking) -{ - m_pSteamNetworking = SteamNetworking; -} -IntPtr m_pSteamNetworking; - -public override IntPtr GetIntPtr() { return m_pSteamNetworking; } - -private void CheckIfUsable() -{ - if (m_pSteamNetworking == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool SendP2PPacket(ulong steamIDRemote,IntPtr pubData,uint cubData,uint eP2PSendType,int nChannel) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_SendP2PPacket(m_pSteamNetworking,steamIDRemote,pubData,cubData,eP2PSendType,nChannel); - return result; -} -public override bool IsP2PPacketAvailable(ref uint pcubMsgSize,int nChannel) -{ - CheckIfUsable(); - pcubMsgSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_IsP2PPacketAvailable(m_pSteamNetworking,ref pcubMsgSize,nChannel); - return result; -} -public override bool ReadP2PPacket(IntPtr pubDest,uint cubDest,ref uint pcubMsgSize,ref CSteamID psteamIDRemote,int nChannel) -{ - CheckIfUsable(); - pcubMsgSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_ReadP2PPacket(m_pSteamNetworking,pubDest,cubDest,ref pcubMsgSize,ref psteamIDRemote,nChannel); - return result; -} -public override bool AcceptP2PSessionWithUser(ulong steamIDRemote) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser(m_pSteamNetworking,steamIDRemote); - return result; -} -public override bool CloseP2PSessionWithUser(ulong steamIDRemote) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_CloseP2PSessionWithUser(m_pSteamNetworking,steamIDRemote); - return result; -} -public override bool CloseP2PChannelWithUser(ulong steamIDRemote,int nChannel) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_CloseP2PChannelWithUser(m_pSteamNetworking,steamIDRemote,nChannel); - return result; -} -public override bool GetP2PSessionState(ulong steamIDRemote,ref P2PSessionState_t pConnectionState) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetP2PSessionState(m_pSteamNetworking,steamIDRemote,ref pConnectionState); - return result; -} -public override bool AllowP2PPacketRelay(bool bAllow) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_AllowP2PPacketRelay(m_pSteamNetworking,bAllow); - return result; -} -public override uint CreateListenSocket(int nVirtualP2PPort,uint nIP,char nPort,bool bAllowUseOfPacketRelay) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamNetworking_CreateListenSocket(m_pSteamNetworking,nVirtualP2PPort,nIP,nPort,bAllowUseOfPacketRelay); - return result; -} -public override uint CreateP2PConnectionSocket(ulong steamIDTarget,int nVirtualPort,int nTimeoutSec,bool bAllowUseOfPacketRelay) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamNetworking_CreateP2PConnectionSocket(m_pSteamNetworking,steamIDTarget,nVirtualPort,nTimeoutSec,bAllowUseOfPacketRelay); - return result; -} -public override uint CreateConnectionSocket(uint nIP,char nPort,int nTimeoutSec) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamNetworking_CreateConnectionSocket(m_pSteamNetworking,nIP,nPort,nTimeoutSec); - return result; -} -public override bool DestroySocket(uint hSocket,bool bNotifyRemoteEnd) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_DestroySocket(m_pSteamNetworking,hSocket,bNotifyRemoteEnd); - return result; -} -public override bool DestroyListenSocket(uint hSocket,bool bNotifyRemoteEnd) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_DestroyListenSocket(m_pSteamNetworking,hSocket,bNotifyRemoteEnd); - return result; -} -public override bool SendDataOnSocket(uint hSocket,IntPtr pubData,uint cubData,bool bReliable) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_SendDataOnSocket(m_pSteamNetworking,hSocket,pubData,cubData,bReliable); - return result; -} -public override bool IsDataAvailableOnSocket(uint hSocket,ref uint pcubMsgSize) -{ - CheckIfUsable(); - pcubMsgSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_IsDataAvailableOnSocket(m_pSteamNetworking,hSocket,ref pcubMsgSize); - return result; -} -public override bool RetrieveDataFromSocket(uint hSocket,IntPtr pubDest,uint cubDest,ref uint pcubMsgSize) -{ - CheckIfUsable(); - pcubMsgSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_RetrieveDataFromSocket(m_pSteamNetworking,hSocket,pubDest,cubDest,ref pcubMsgSize); - return result; -} -public override bool IsDataAvailable(uint hListenSocket,ref uint pcubMsgSize,ref uint phSocket) -{ - CheckIfUsable(); - pcubMsgSize = 0; - phSocket = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_IsDataAvailable(m_pSteamNetworking,hListenSocket,ref pcubMsgSize,ref phSocket); - return result; -} -public override bool RetrieveData(uint hListenSocket,IntPtr pubDest,uint cubDest,ref uint pcubMsgSize,ref uint phSocket) -{ - CheckIfUsable(); - pcubMsgSize = 0; - phSocket = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_RetrieveData(m_pSteamNetworking,hListenSocket,pubDest,cubDest,ref pcubMsgSize,ref phSocket); - return result; -} -public override bool GetSocketInfo(uint hSocket,ref CSteamID pSteamIDRemote,ref int peSocketStatus,ref uint punIPRemote,ref char punPortRemote) -{ - CheckIfUsable(); - peSocketStatus = 0; - punIPRemote = 0; - punPortRemote = (char) 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetSocketInfo(m_pSteamNetworking,hSocket,ref pSteamIDRemote,ref peSocketStatus,ref punIPRemote,ref punPortRemote); - return result; -} -public override bool GetListenSocketInfo(uint hListenSocket,ref uint pnIP,ref char pnPort) -{ - CheckIfUsable(); - pnIP = 0; - pnPort = (char) 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetListenSocketInfo(m_pSteamNetworking,hListenSocket,ref pnIP,ref pnPort); - return result; -} -public override uint GetSocketConnectionType(uint hSocket) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetSocketConnectionType(m_pSteamNetworking,hSocket); - return result; -} -public override int GetMaxPacketSize(uint hSocket) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetMaxPacketSize(m_pSteamNetworking,hSocket); - return result; -} -} - - -public class CSteamScreenshots : ISteamScreenshots -{ -public CSteamScreenshots(IntPtr SteamScreenshots) -{ - m_pSteamScreenshots = SteamScreenshots; -} -IntPtr m_pSteamScreenshots; - -public override IntPtr GetIntPtr() { return m_pSteamScreenshots; } - -private void CheckIfUsable() -{ - if (m_pSteamScreenshots == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint WriteScreenshot(IntPtr pubRGB,uint cubRGB,int nWidth,int nHeight) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamScreenshots_WriteScreenshot(m_pSteamScreenshots,pubRGB,cubRGB,nWidth,nHeight); - return result; -} -public override uint AddScreenshotToLibrary(string pchFilename,string pchThumbnailFilename,int nWidth,int nHeight) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamScreenshots_AddScreenshotToLibrary(m_pSteamScreenshots,pchFilename,pchThumbnailFilename,nWidth,nHeight); - return result; -} -public override void TriggerScreenshot() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamScreenshots_TriggerScreenshot(m_pSteamScreenshots); -} -public override void HookScreenshots(bool bHook) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamScreenshots_HookScreenshots(m_pSteamScreenshots,bHook); -} -public override bool SetLocation(uint hScreenshot,string pchLocation) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamScreenshots_SetLocation(m_pSteamScreenshots,hScreenshot,pchLocation); - return result; -} -public override bool TagUser(uint hScreenshot,ulong steamID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamScreenshots_TagUser(m_pSteamScreenshots,hScreenshot,steamID); - return result; -} -public override bool TagPublishedFile(uint hScreenshot,ulong unPublishedFileID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamScreenshots_TagPublishedFile(m_pSteamScreenshots,hScreenshot,unPublishedFileID); - return result; -} -public override bool IsScreenshotsHooked() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamScreenshots_IsScreenshotsHooked(m_pSteamScreenshots); - return result; -} -public override uint AddVRScreenshotToLibrary(uint eType,string pchFilename,string pchVRFilename) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary(m_pSteamScreenshots,eType,pchFilename,pchVRFilename); - return result; -} -} - - -public class CSteamMusic : ISteamMusic -{ -public CSteamMusic(IntPtr SteamMusic) -{ - m_pSteamMusic = SteamMusic; -} -IntPtr m_pSteamMusic; - -public override IntPtr GetIntPtr() { return m_pSteamMusic; } - -private void CheckIfUsable() -{ - if (m_pSteamMusic == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool BIsEnabled() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusic_BIsEnabled(m_pSteamMusic); - return result; -} -public override bool BIsPlaying() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusic_BIsPlaying(m_pSteamMusic); - return result; -} -public override int GetPlaybackStatus() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMusic_GetPlaybackStatus(m_pSteamMusic); - return result; -} -public override void Play() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_Play(m_pSteamMusic); -} -public override void Pause() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_Pause(m_pSteamMusic); -} -public override void PlayPrevious() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_PlayPrevious(m_pSteamMusic); -} -public override void PlayNext() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_PlayNext(m_pSteamMusic); -} -public override void SetVolume(float flVolume) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_SetVolume(m_pSteamMusic,flVolume); -} -public override float GetVolume() -{ - CheckIfUsable(); - float result = NativeEntrypoints.SteamAPI_ISteamMusic_GetVolume(m_pSteamMusic); - return result; -} -} - - -public class CSteamMusicRemote : ISteamMusicRemote -{ -public CSteamMusicRemote(IntPtr SteamMusicRemote) -{ - m_pSteamMusicRemote = SteamMusicRemote; -} -IntPtr m_pSteamMusicRemote; - -public override IntPtr GetIntPtr() { return m_pSteamMusicRemote; } - -private void CheckIfUsable() -{ - if (m_pSteamMusicRemote == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool RegisterSteamMusicRemote(string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote(m_pSteamMusicRemote,pchName); - return result; -} -public override bool DeregisterSteamMusicRemote() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote(m_pSteamMusicRemote); - return result; -} -public override bool BIsCurrentMusicRemote() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote(m_pSteamMusicRemote); - return result; -} -public override bool BActivationSuccess(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_BActivationSuccess(m_pSteamMusicRemote,bValue); - return result; -} -public override bool SetDisplayName(string pchDisplayName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetDisplayName(m_pSteamMusicRemote,pchDisplayName); - return result; -} -public override bool SetPNGIcon_64x64(IntPtr pvBuffer,uint cbBufferLength) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64(m_pSteamMusicRemote,pvBuffer,cbBufferLength); - return result; -} -public override bool EnablePlayPrevious(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnablePlayPrevious(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnablePlayNext(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnablePlayNext(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnableShuffled(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnableShuffled(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnableLooped(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnableLooped(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnableQueue(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnableQueue(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnablePlaylists(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnablePlaylists(m_pSteamMusicRemote,bValue); - return result; -} -public override bool UpdatePlaybackStatus(int nStatus) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus(m_pSteamMusicRemote,nStatus); - return result; -} -public override bool UpdateShuffled(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateShuffled(m_pSteamMusicRemote,bValue); - return result; -} -public override bool UpdateLooped(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateLooped(m_pSteamMusicRemote,bValue); - return result; -} -public override bool UpdateVolume(float flValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateVolume(m_pSteamMusicRemote,flValue); - return result; -} -public override bool CurrentEntryWillChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_CurrentEntryWillChange(m_pSteamMusicRemote); - return result; -} -public override bool CurrentEntryIsAvailable(bool bAvailable) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable(m_pSteamMusicRemote,bAvailable); - return result; -} -public override bool UpdateCurrentEntryText(string pchText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText(m_pSteamMusicRemote,pchText); - return result; -} -public override bool UpdateCurrentEntryElapsedSeconds(int nValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds(m_pSteamMusicRemote,nValue); - return result; -} -public override bool UpdateCurrentEntryCoverArt(IntPtr pvBuffer,uint cbBufferLength) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt(m_pSteamMusicRemote,pvBuffer,cbBufferLength); - return result; -} -public override bool CurrentEntryDidChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_CurrentEntryDidChange(m_pSteamMusicRemote); - return result; -} -public override bool QueueWillChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_QueueWillChange(m_pSteamMusicRemote); - return result; -} -public override bool ResetQueueEntries() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_ResetQueueEntries(m_pSteamMusicRemote); - return result; -} -public override bool SetQueueEntry(int nID,int nPosition,string pchEntryText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetQueueEntry(m_pSteamMusicRemote,nID,nPosition,pchEntryText); - return result; -} -public override bool SetCurrentQueueEntry(int nID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry(m_pSteamMusicRemote,nID); - return result; -} -public override bool QueueDidChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_QueueDidChange(m_pSteamMusicRemote); - return result; -} -public override bool PlaylistWillChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_PlaylistWillChange(m_pSteamMusicRemote); - return result; -} -public override bool ResetPlaylistEntries() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_ResetPlaylistEntries(m_pSteamMusicRemote); - return result; -} -public override bool SetPlaylistEntry(int nID,int nPosition,string pchEntryText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetPlaylistEntry(m_pSteamMusicRemote,nID,nPosition,pchEntryText); - return result; -} -public override bool SetCurrentPlaylistEntry(int nID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry(m_pSteamMusicRemote,nID); - return result; -} -public override bool PlaylistDidChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_PlaylistDidChange(m_pSteamMusicRemote); - return result; -} -} - - -public class CSteamHTTP : ISteamHTTP -{ -public CSteamHTTP(IntPtr SteamHTTP) -{ - m_pSteamHTTP = SteamHTTP; -} -IntPtr m_pSteamHTTP; - -public override IntPtr GetIntPtr() { return m_pSteamHTTP; } - -private void CheckIfUsable() -{ - if (m_pSteamHTTP == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint CreateHTTPRequest(uint eHTTPRequestMethod,string pchAbsoluteURL) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamHTTP_CreateHTTPRequest(m_pSteamHTTP,eHTTPRequestMethod,pchAbsoluteURL); - return result; -} -public override bool SetHTTPRequestContextValue(uint hRequest,ulong ulContextValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestContextValue(m_pSteamHTTP,hRequest,ulContextValue); - return result; -} -public override bool SetHTTPRequestNetworkActivityTimeout(uint hRequest,uint unTimeoutSeconds) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(m_pSteamHTTP,hRequest,unTimeoutSeconds); - return result; -} -public override bool SetHTTPRequestHeaderValue(uint hRequest,string pchHeaderName,string pchHeaderValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue(m_pSteamHTTP,hRequest,pchHeaderName,pchHeaderValue); - return result; -} -public override bool SetHTTPRequestGetOrPostParameter(uint hRequest,string pchParamName,string pchParamValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter(m_pSteamHTTP,hRequest,pchParamName,pchParamValue); - return result; -} -public override bool SendHTTPRequest(uint hRequest,ref ulong pCallHandle) -{ - CheckIfUsable(); - pCallHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SendHTTPRequest(m_pSteamHTTP,hRequest,ref pCallHandle); - return result; -} -public override bool SendHTTPRequestAndStreamResponse(uint hRequest,ref ulong pCallHandle) -{ - CheckIfUsable(); - pCallHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse(m_pSteamHTTP,hRequest,ref pCallHandle); - return result; -} -public override bool DeferHTTPRequest(uint hRequest) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_DeferHTTPRequest(m_pSteamHTTP,hRequest); - return result; -} -public override bool PrioritizeHTTPRequest(uint hRequest) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_PrioritizeHTTPRequest(m_pSteamHTTP,hRequest); - return result; -} -public override bool GetHTTPResponseHeaderSize(uint hRequest,string pchHeaderName,ref uint unResponseHeaderSize) -{ - CheckIfUsable(); - unResponseHeaderSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize(m_pSteamHTTP,hRequest,pchHeaderName,ref unResponseHeaderSize); - return result; -} -public override bool GetHTTPResponseHeaderValue(uint hRequest,string pchHeaderName,IntPtr pHeaderValueBuffer,uint unBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue(m_pSteamHTTP,hRequest,pchHeaderName,pHeaderValueBuffer,unBufferSize); - return result; -} -public override bool GetHTTPResponseBodySize(uint hRequest,ref uint unBodySize) -{ - CheckIfUsable(); - unBodySize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPResponseBodySize(m_pSteamHTTP,hRequest,ref unBodySize); - return result; -} -public override bool GetHTTPResponseBodyData(uint hRequest,IntPtr pBodyDataBuffer,uint unBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPResponseBodyData(m_pSteamHTTP,hRequest,pBodyDataBuffer,unBufferSize); - return result; -} -public override bool GetHTTPStreamingResponseBodyData(uint hRequest,uint cOffset,IntPtr pBodyDataBuffer,uint unBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData(m_pSteamHTTP,hRequest,cOffset,pBodyDataBuffer,unBufferSize); - return result; -} -public override bool ReleaseHTTPRequest(uint hRequest) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_ReleaseHTTPRequest(m_pSteamHTTP,hRequest); - return result; -} -public override bool GetHTTPDownloadProgressPct(uint hRequest,ref float pflPercentOut) -{ - CheckIfUsable(); - pflPercentOut = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct(m_pSteamHTTP,hRequest,ref pflPercentOut); - return result; -} -public override bool SetHTTPRequestRawPostBody(uint hRequest,string pchContentType,IntPtr pubBody,uint unBodyLen) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody(m_pSteamHTTP,hRequest,pchContentType,pubBody,unBodyLen); - return result; -} -public override uint CreateCookieContainer(bool bAllowResponsesToModify) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamHTTP_CreateCookieContainer(m_pSteamHTTP,bAllowResponsesToModify); - return result; -} -public override bool ReleaseCookieContainer(uint hCookieContainer) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_ReleaseCookieContainer(m_pSteamHTTP,hCookieContainer); - return result; -} -public override bool SetCookie(uint hCookieContainer,string pchHost,string pchUrl,string pchCookie) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetCookie(m_pSteamHTTP,hCookieContainer,pchHost,pchUrl,pchCookie); - return result; -} -public override bool SetHTTPRequestCookieContainer(uint hRequest,uint hCookieContainer) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer(m_pSteamHTTP,hRequest,hCookieContainer); - return result; -} -public override bool SetHTTPRequestUserAgentInfo(uint hRequest,string pchUserAgentInfo) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo(m_pSteamHTTP,hRequest,pchUserAgentInfo); - return result; -} -public override bool SetHTTPRequestRequiresVerifiedCertificate(uint hRequest,bool bRequireVerifiedCertificate) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(m_pSteamHTTP,hRequest,bRequireVerifiedCertificate); - return result; -} -public override bool SetHTTPRequestAbsoluteTimeoutMS(uint hRequest,uint unMilliseconds) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(m_pSteamHTTP,hRequest,unMilliseconds); - return result; -} -public override bool GetHTTPRequestWasTimedOut(uint hRequest,ref bool pbWasTimedOut) -{ - CheckIfUsable(); - pbWasTimedOut = false; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut(m_pSteamHTTP,hRequest,ref pbWasTimedOut); - return result; -} -} - - -public class CSteamUnifiedMessages : ISteamUnifiedMessages -{ -public CSteamUnifiedMessages(IntPtr SteamUnifiedMessages) -{ - m_pSteamUnifiedMessages = SteamUnifiedMessages; -} -IntPtr m_pSteamUnifiedMessages; - -public override IntPtr GetIntPtr() { return m_pSteamUnifiedMessages; } - -private void CheckIfUsable() -{ - if (m_pSteamUnifiedMessages == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override ulong SendMethod(string pchServiceMethod,IntPtr pRequestBuffer,uint unRequestBufferSize,ulong unContext) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_SendMethod(m_pSteamUnifiedMessages,pchServiceMethod,pRequestBuffer,unRequestBufferSize,unContext); - return result; -} -public override bool GetMethodResponseInfo(ulong hHandle,ref uint punResponseSize,ref uint peResult) -{ - CheckIfUsable(); - punResponseSize = 0; - peResult = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_GetMethodResponseInfo(m_pSteamUnifiedMessages,hHandle,ref punResponseSize,ref peResult); - return result; -} -public override bool GetMethodResponseData(ulong hHandle,IntPtr pResponseBuffer,uint unResponseBufferSize,bool bAutoRelease) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_GetMethodResponseData(m_pSteamUnifiedMessages,hHandle,pResponseBuffer,unResponseBufferSize,bAutoRelease); - return result; -} -public override bool ReleaseMethod(ulong hHandle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_ReleaseMethod(m_pSteamUnifiedMessages,hHandle); - return result; -} -public override bool SendNotification(string pchServiceNotification,IntPtr pNotificationBuffer,uint unNotificationBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_SendNotification(m_pSteamUnifiedMessages,pchServiceNotification,pNotificationBuffer,unNotificationBufferSize); - return result; -} -} - - -public class CSteamController : ISteamController -{ -public CSteamController(IntPtr SteamController) -{ - m_pSteamController = SteamController; -} -IntPtr m_pSteamController; - -public override IntPtr GetIntPtr() { return m_pSteamController; } - -private void CheckIfUsable() -{ - if (m_pSteamController == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool Init() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_Init(m_pSteamController); - return result; -} -public override bool Shutdown() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_Shutdown(m_pSteamController); - return result; -} -public override void RunFrame() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_RunFrame(m_pSteamController); -} -public override int GetConnectedControllers(ref ulong handlesOut) -{ - CheckIfUsable(); - handlesOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetConnectedControllers(m_pSteamController,ref handlesOut); - return result; -} -public override bool ShowBindingPanel(ulong controllerHandle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_ShowBindingPanel(m_pSteamController,controllerHandle); - return result; -} -public override ulong GetActionSetHandle(string pszActionSetName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetActionSetHandle(m_pSteamController,pszActionSetName); - return result; -} -public override void ActivateActionSet(ulong controllerHandle,ulong actionSetHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_ActivateActionSet(m_pSteamController,controllerHandle,actionSetHandle); -} -public override ulong GetCurrentActionSet(ulong controllerHandle) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetCurrentActionSet(m_pSteamController,controllerHandle); - return result; -} -public override ulong GetDigitalActionHandle(string pszActionName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionHandle(m_pSteamController,pszActionName); - return result; -} -public override ControllerDigitalActionData_t GetDigitalActionData(ulong controllerHandle,ulong digitalActionHandle) -{ - CheckIfUsable(); - ControllerDigitalActionData_t result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionData(m_pSteamController,controllerHandle,digitalActionHandle); - return result; -} -public override int GetDigitalActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong digitalActionHandle,ref uint originsOut) -{ - CheckIfUsable(); - originsOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionOrigins(m_pSteamController,controllerHandle,actionSetHandle,digitalActionHandle,ref originsOut); - return result; -} -public override ulong GetAnalogActionHandle(string pszActionName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionHandle(m_pSteamController,pszActionName); - return result; -} -public override ControllerAnalogActionData_t GetAnalogActionData(ulong controllerHandle,ulong analogActionHandle) -{ - CheckIfUsable(); - ControllerAnalogActionData_t result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionData(m_pSteamController,controllerHandle,analogActionHandle); - return result; -} -public override int GetAnalogActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong analogActionHandle,ref uint originsOut) -{ - CheckIfUsable(); - originsOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionOrigins(m_pSteamController,controllerHandle,actionSetHandle,analogActionHandle,ref originsOut); - return result; -} -public override void StopAnalogActionMomentum(ulong controllerHandle,ulong eAction) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_StopAnalogActionMomentum(m_pSteamController,controllerHandle,eAction); -} -public override void TriggerHapticPulse(ulong controllerHandle,uint eTargetPad,char usDurationMicroSec) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_TriggerHapticPulse(m_pSteamController,controllerHandle,eTargetPad,usDurationMicroSec); -} -public override void TriggerRepeatedHapticPulse(ulong controllerHandle,uint eTargetPad,char usDurationMicroSec,char usOffMicroSec,char unRepeat,uint nFlags) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_TriggerRepeatedHapticPulse(m_pSteamController,controllerHandle,eTargetPad,usDurationMicroSec,usOffMicroSec,unRepeat,nFlags); -} -public override int GetGamepadIndexForController(ulong ulControllerHandle) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamController_GetGamepadIndexForController(m_pSteamController,ulControllerHandle); - return result; -} -public override ulong GetControllerForGamepadIndex(int nIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetControllerForGamepadIndex(m_pSteamController,nIndex); - return result; -} -public override ControllerMotionData_t GetMotionData(ulong controllerHandle) -{ - CheckIfUsable(); - ControllerMotionData_t result = NativeEntrypoints.SteamAPI_ISteamController_GetMotionData(m_pSteamController,controllerHandle); - return result; -} -public override bool ShowDigitalActionOrigins(ulong controllerHandle,ulong digitalActionHandle,float flScale,float flXPosition,float flYPosition) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_ShowDigitalActionOrigins(m_pSteamController,controllerHandle,digitalActionHandle,flScale,flXPosition,flYPosition); - return result; -} -public override bool ShowAnalogActionOrigins(ulong controllerHandle,ulong analogActionHandle,float flScale,float flXPosition,float flYPosition) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_ShowAnalogActionOrigins(m_pSteamController,controllerHandle,analogActionHandle,flScale,flXPosition,flYPosition); - return result; -} -} - - -public class CSteamUGC : ISteamUGC -{ -public CSteamUGC(IntPtr SteamUGC) -{ - m_pSteamUGC = SteamUGC; -} -IntPtr m_pSteamUGC; - -public override IntPtr GetIntPtr() { return m_pSteamUGC; } - -private void CheckIfUsable() -{ - if (m_pSteamUGC == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override ulong CreateQueryUserUGCRequest(uint unAccountID,uint eListType,uint eMatchingUGCType,uint eSortOrder,uint nCreatorAppID,uint nConsumerAppID,uint unPage) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(m_pSteamUGC,unAccountID,eListType,eMatchingUGCType,eSortOrder,nCreatorAppID,nConsumerAppID,unPage); - return result; -} -public override ulong CreateQueryAllUGCRequest(uint eQueryType,uint eMatchingeMatchingUGCTypeFileType,uint nCreatorAppID,uint nConsumerAppID,uint unPage) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_CreateQueryAllUGCRequest(m_pSteamUGC,eQueryType,eMatchingeMatchingUGCTypeFileType,nCreatorAppID,nConsumerAppID,unPage); - return result; -} -public override ulong CreateQueryUGCDetailsRequest(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest(m_pSteamUGC,ref pvecPublishedFileID,unNumPublishedFileIDs); - return result; -} -public override ulong SendQueryUGCRequest(ulong handle) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_SendQueryUGCRequest(m_pSteamUGC,handle); - return result; -} -public override bool GetQueryUGCResult(ulong handle,uint index,ref SteamUGCDetails_t pDetails) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCResult(m_pSteamUGC,handle,index,ref pDetails); - return result; -} -public override bool GetQueryUGCPreviewURL(ulong handle,uint index,out string pchURL) -{ - CheckIfUsable(); - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCPreviewURL(m_pSteamUGC,handle,index,pStrBuffer1,2048); - pchURL = pStrBuffer1.ToString(); - return result; -} -public override bool GetQueryUGCMetadata(ulong handle,uint index,out string pchMetadata) -{ - CheckIfUsable(); - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCMetadata(m_pSteamUGC,handle,index,pStrBuffer1,2048); - pchMetadata = pStrBuffer1.ToString(); - return result; -} -public override bool GetQueryUGCChildren(ulong handle,uint index,ref ulong pvecPublishedFileID,uint cMaxEntries) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCChildren(m_pSteamUGC,handle,index,ref pvecPublishedFileID,cMaxEntries); - return result; -} -public override bool GetQueryUGCStatistic(ulong handle,uint index,uint eStatType,ref ulong pStatValue) -{ - CheckIfUsable(); - pStatValue = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCStatistic(m_pSteamUGC,handle,index,eStatType,ref pStatValue); - return result; -} -public override uint GetQueryUGCNumAdditionalPreviews(ulong handle,uint index) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews(m_pSteamUGC,handle,index); - return result; -} -public override bool GetQueryUGCAdditionalPreview(ulong handle,uint index,uint previewIndex,out string pchURLOrVideoID,out string pchOriginalFileName,uint cchOriginalFileNameSize,ref uint pPreviewType) -{ - CheckIfUsable(); - pPreviewType = 0; - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - System.Text.StringBuilder pStrBuffer2 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(m_pSteamUGC,handle,index,previewIndex,pStrBuffer1,2048,pStrBuffer2,cchOriginalFileNameSize,ref pPreviewType); - pchURLOrVideoID = pStrBuffer1.ToString(); - pchOriginalFileName = pStrBuffer2.ToString(); - return result; -} -public override uint GetQueryUGCNumKeyValueTags(ulong handle,uint index) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(m_pSteamUGC,handle,index); - return result; -} -public override bool GetQueryUGCKeyValueTag(ulong handle,uint index,uint keyValueTagIndex,out string pchKey,out string pchValue) -{ - CheckIfUsable(); - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - System.Text.StringBuilder pStrBuffer2 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(m_pSteamUGC,handle,index,keyValueTagIndex,pStrBuffer1,2048,pStrBuffer2,2048); - pchKey = pStrBuffer1.ToString(); - pchValue = pStrBuffer2.ToString(); - return result; -} -public override bool ReleaseQueryUGCRequest(ulong handle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(m_pSteamUGC,handle); - return result; -} -public override bool AddRequiredTag(ulong handle,string pTagName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddRequiredTag(m_pSteamUGC,handle,pTagName); - return result; -} -public override bool AddExcludedTag(ulong handle,string pTagName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddExcludedTag(m_pSteamUGC,handle,pTagName); - return result; -} -public override bool SetReturnOnlyIDs(ulong handle,bool bReturnOnlyIDs) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnOnlyIDs(m_pSteamUGC,handle,bReturnOnlyIDs); - return result; -} -public override bool SetReturnKeyValueTags(ulong handle,bool bReturnKeyValueTags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnKeyValueTags(m_pSteamUGC,handle,bReturnKeyValueTags); - return result; -} -public override bool SetReturnLongDescription(ulong handle,bool bReturnLongDescription) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnLongDescription(m_pSteamUGC,handle,bReturnLongDescription); - return result; -} -public override bool SetReturnMetadata(ulong handle,bool bReturnMetadata) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnMetadata(m_pSteamUGC,handle,bReturnMetadata); - return result; -} -public override bool SetReturnChildren(ulong handle,bool bReturnChildren) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnChildren(m_pSteamUGC,handle,bReturnChildren); - return result; -} -public override bool SetReturnAdditionalPreviews(ulong handle,bool bReturnAdditionalPreviews) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(m_pSteamUGC,handle,bReturnAdditionalPreviews); - return result; -} -public override bool SetReturnTotalOnly(ulong handle,bool bReturnTotalOnly) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnTotalOnly(m_pSteamUGC,handle,bReturnTotalOnly); - return result; -} -public override bool SetLanguage(ulong handle,string pchLanguage) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetLanguage(m_pSteamUGC,handle,pchLanguage); - return result; -} -public override bool SetAllowCachedResponse(ulong handle,uint unMaxAgeSeconds) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetAllowCachedResponse(m_pSteamUGC,handle,unMaxAgeSeconds); - return result; -} -public override bool SetCloudFileNameFilter(ulong handle,string pMatchCloudFileName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetCloudFileNameFilter(m_pSteamUGC,handle,pMatchCloudFileName); - return result; -} -public override bool SetMatchAnyTag(ulong handle,bool bMatchAnyTag) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetMatchAnyTag(m_pSteamUGC,handle,bMatchAnyTag); - return result; -} -public override bool SetSearchText(ulong handle,string pSearchText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetSearchText(m_pSteamUGC,handle,pSearchText); - return result; -} -public override bool SetRankedByTrendDays(ulong handle,uint unDays) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetRankedByTrendDays(m_pSteamUGC,handle,unDays); - return result; -} -public override bool AddRequiredKeyValueTag(ulong handle,string pKey,string pValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddRequiredKeyValueTag(m_pSteamUGC,handle,pKey,pValue); - return result; -} -public override ulong RequestUGCDetails(ulong nPublishedFileID,uint unMaxAgeSeconds) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_RequestUGCDetails(m_pSteamUGC,nPublishedFileID,unMaxAgeSeconds); - return result; -} -public override ulong CreateItem(uint nConsumerAppId,uint eFileType) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_CreateItem(m_pSteamUGC,nConsumerAppId,eFileType); - return result; -} -public override ulong StartItemUpdate(uint nConsumerAppId,ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StartItemUpdate(m_pSteamUGC,nConsumerAppId,nPublishedFileID); - return result; -} -public override bool SetItemTitle(ulong handle,string pchTitle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemTitle(m_pSteamUGC,handle,pchTitle); - return result; -} -public override bool SetItemDescription(ulong handle,string pchDescription) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemDescription(m_pSteamUGC,handle,pchDescription); - return result; -} -public override bool SetItemUpdateLanguage(ulong handle,string pchLanguage) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemUpdateLanguage(m_pSteamUGC,handle,pchLanguage); - return result; -} -public override bool SetItemMetadata(ulong handle,string pchMetaData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemMetadata(m_pSteamUGC,handle,pchMetaData); - return result; -} -public override bool SetItemVisibility(ulong handle,uint eVisibility) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemVisibility(m_pSteamUGC,handle,eVisibility); - return result; -} -public override bool SetItemTags(ulong updateHandle,ref SteamParamStringArray_t pTags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemTags(m_pSteamUGC,updateHandle,ref pTags); - return result; -} -public override bool SetItemContent(ulong handle,string pszContentFolder) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemContent(m_pSteamUGC,handle,pszContentFolder); - return result; -} -public override bool SetItemPreview(ulong handle,string pszPreviewFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemPreview(m_pSteamUGC,handle,pszPreviewFile); - return result; -} -public override bool RemoveItemKeyValueTags(ulong handle,string pchKey) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_RemoveItemKeyValueTags(m_pSteamUGC,handle,pchKey); - return result; -} -public override bool AddItemKeyValueTag(ulong handle,string pchKey,string pchValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddItemKeyValueTag(m_pSteamUGC,handle,pchKey,pchValue); - return result; -} -public override bool AddItemPreviewFile(ulong handle,string pszPreviewFile,uint type) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddItemPreviewFile(m_pSteamUGC,handle,pszPreviewFile,type); - return result; -} -public override bool AddItemPreviewVideo(ulong handle,string pszVideoID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddItemPreviewVideo(m_pSteamUGC,handle,pszVideoID); - return result; -} -public override bool UpdateItemPreviewFile(ulong handle,uint index,string pszPreviewFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_UpdateItemPreviewFile(m_pSteamUGC,handle,index,pszPreviewFile); - return result; -} -public override bool UpdateItemPreviewVideo(ulong handle,uint index,string pszVideoID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_UpdateItemPreviewVideo(m_pSteamUGC,handle,index,pszVideoID); - return result; -} -public override bool RemoveItemPreview(ulong handle,uint index) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_RemoveItemPreview(m_pSteamUGC,handle,index); - return result; -} -public override ulong SubmitItemUpdate(ulong handle,string pchChangeNote) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_SubmitItemUpdate(m_pSteamUGC,handle,pchChangeNote); - return result; -} -public override uint GetItemUpdateProgress(ulong handle,ref ulong punBytesProcessed,ref ulong punBytesTotal) -{ - CheckIfUsable(); - punBytesProcessed = 0; - punBytesTotal = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetItemUpdateProgress(m_pSteamUGC,handle,ref punBytesProcessed,ref punBytesTotal); - return result; -} -public override ulong SetUserItemVote(ulong nPublishedFileID,bool bVoteUp) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_SetUserItemVote(m_pSteamUGC,nPublishedFileID,bVoteUp); - return result; -} -public override ulong GetUserItemVote(ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_GetUserItemVote(m_pSteamUGC,nPublishedFileID); - return result; -} -public override ulong AddItemToFavorites(uint nAppId,ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_AddItemToFavorites(m_pSteamUGC,nAppId,nPublishedFileID); - return result; -} -public override ulong RemoveItemFromFavorites(uint nAppId,ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_RemoveItemFromFavorites(m_pSteamUGC,nAppId,nPublishedFileID); - return result; -} -public override ulong SubscribeItem(ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_SubscribeItem(m_pSteamUGC,nPublishedFileID); - return result; -} -public override ulong UnsubscribeItem(ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_UnsubscribeItem(m_pSteamUGC,nPublishedFileID); - return result; -} -public override uint GetNumSubscribedItems() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetNumSubscribedItems(m_pSteamUGC); - return result; -} -public override uint GetSubscribedItems(ref ulong pvecPublishedFileID,uint cMaxEntries) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetSubscribedItems(m_pSteamUGC,ref pvecPublishedFileID,cMaxEntries); - return result; -} -public override uint GetItemState(ulong nPublishedFileID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetItemState(m_pSteamUGC,nPublishedFileID); - return result; -} -public override bool GetItemInstallInfo(ulong nPublishedFileID,ref ulong punSizeOnDisk,out string pchFolder,ref uint punTimeStamp) -{ - CheckIfUsable(); - punSizeOnDisk = 0; - punTimeStamp = 0; - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetItemInstallInfo(m_pSteamUGC,nPublishedFileID,ref punSizeOnDisk,pStrBuffer1,2048,ref punTimeStamp); - pchFolder = pStrBuffer1.ToString(); - return result; -} -public override bool GetItemDownloadInfo(ulong nPublishedFileID,ref ulong punBytesDownloaded,ref ulong punBytesTotal) -{ - CheckIfUsable(); - punBytesDownloaded = 0; - punBytesTotal = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetItemDownloadInfo(m_pSteamUGC,nPublishedFileID,ref punBytesDownloaded,ref punBytesTotal); - return result; -} -public override bool DownloadItem(ulong nPublishedFileID,bool bHighPriority) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_DownloadItem(m_pSteamUGC,nPublishedFileID,bHighPriority); - return result; -} -public override bool BInitWorkshopForGameServer(uint unWorkshopDepotID,string pszFolder) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_BInitWorkshopForGameServer(m_pSteamUGC,unWorkshopDepotID,pszFolder); - return result; -} -public override void SuspendDownloads(bool bSuspend) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUGC_SuspendDownloads(m_pSteamUGC,bSuspend); -} -public override ulong StartPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StartPlaytimeTracking(m_pSteamUGC,ref pvecPublishedFileID,unNumPublishedFileIDs); - return result; -} -public override ulong StopPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StopPlaytimeTracking(m_pSteamUGC,ref pvecPublishedFileID,unNumPublishedFileIDs); - return result; -} -public override ulong StopPlaytimeTrackingForAllItems() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(m_pSteamUGC); - return result; -} -} - - -public class CSteamAppList : ISteamAppList -{ -public CSteamAppList(IntPtr SteamAppList) -{ - m_pSteamAppList = SteamAppList; -} -IntPtr m_pSteamAppList; - -public override IntPtr GetIntPtr() { return m_pSteamAppList; } - -private void CheckIfUsable() -{ - if (m_pSteamAppList == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint GetNumInstalledApps() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamAppList_GetNumInstalledApps(m_pSteamAppList); - return result; -} -public override uint GetInstalledApps(ref uint pvecAppID,uint unMaxAppIDs) -{ - CheckIfUsable(); - pvecAppID = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamAppList_GetInstalledApps(m_pSteamAppList,ref pvecAppID,unMaxAppIDs); - return result; -} -public override int GetAppName(uint nAppID,System.Text.StringBuilder pchName,int cchNameMax) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamAppList_GetAppName(m_pSteamAppList,nAppID,pchName,cchNameMax); - return result; -} -public override int GetAppInstallDir(uint nAppID,string pchDirectory,int cchNameMax) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamAppList_GetAppInstallDir(m_pSteamAppList,nAppID,pchDirectory,cchNameMax); - return result; -} -public override int GetAppBuildId(uint nAppID) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamAppList_GetAppBuildId(m_pSteamAppList,nAppID); - return result; -} -} - - -public class CSteamHTMLSurface : ISteamHTMLSurface -{ -public CSteamHTMLSurface(IntPtr SteamHTMLSurface) -{ - m_pSteamHTMLSurface = SteamHTMLSurface; -} -IntPtr m_pSteamHTMLSurface; - -public override IntPtr GetIntPtr() { return m_pSteamHTMLSurface; } - -private void CheckIfUsable() -{ - if (m_pSteamHTMLSurface == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void DestructISteamHTMLSurface() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_DestructISteamHTMLSurface(m_pSteamHTMLSurface); -} -public override bool Init() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTMLSurface_Init(m_pSteamHTMLSurface); - return result; -} -public override bool Shutdown() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTMLSurface_Shutdown(m_pSteamHTMLSurface); - return result; -} -public override ulong CreateBrowser(string pchUserAgent,string pchUserCSS) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamHTMLSurface_CreateBrowser(m_pSteamHTMLSurface,pchUserAgent,pchUserCSS); - return result; -} -public override void RemoveBrowser(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_RemoveBrowser(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void LoadURL(uint unBrowserHandle,string pchURL,string pchPostData) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_LoadURL(m_pSteamHTMLSurface,unBrowserHandle,pchURL,pchPostData); -} -public override void SetSize(uint unBrowserHandle,uint unWidth,uint unHeight) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetSize(m_pSteamHTMLSurface,unBrowserHandle,unWidth,unHeight); -} -public override void StopLoad(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_StopLoad(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void Reload(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_Reload(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void GoBack(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_GoBack(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void GoForward(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_GoForward(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void AddHeader(uint unBrowserHandle,string pchKey,string pchValue) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_AddHeader(m_pSteamHTMLSurface,unBrowserHandle,pchKey,pchValue); -} -public override void ExecuteJavascript(uint unBrowserHandle,string pchScript) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_ExecuteJavascript(m_pSteamHTMLSurface,unBrowserHandle,pchScript); -} -public override void MouseUp(uint unBrowserHandle,uint eMouseButton) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseUp(m_pSteamHTMLSurface,unBrowserHandle,eMouseButton); -} -public override void MouseDown(uint unBrowserHandle,uint eMouseButton) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseDown(m_pSteamHTMLSurface,unBrowserHandle,eMouseButton); -} -public override void MouseDoubleClick(uint unBrowserHandle,uint eMouseButton) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseDoubleClick(m_pSteamHTMLSurface,unBrowserHandle,eMouseButton); -} -public override void MouseMove(uint unBrowserHandle,int x,int y) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseMove(m_pSteamHTMLSurface,unBrowserHandle,x,y); -} -public override void MouseWheel(uint unBrowserHandle,int nDelta) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseWheel(m_pSteamHTMLSurface,unBrowserHandle,nDelta); -} -public override void KeyDown(uint unBrowserHandle,uint nNativeKeyCode,uint eHTMLKeyModifiers) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_KeyDown(m_pSteamHTMLSurface,unBrowserHandle,nNativeKeyCode,eHTMLKeyModifiers); -} -public override void KeyUp(uint unBrowserHandle,uint nNativeKeyCode,uint eHTMLKeyModifiers) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_KeyUp(m_pSteamHTMLSurface,unBrowserHandle,nNativeKeyCode,eHTMLKeyModifiers); -} -public override void KeyChar(uint unBrowserHandle,uint cUnicodeChar,uint eHTMLKeyModifiers) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_KeyChar(m_pSteamHTMLSurface,unBrowserHandle,cUnicodeChar,eHTMLKeyModifiers); -} -public override void SetHorizontalScroll(uint unBrowserHandle,uint nAbsolutePixelScroll) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetHorizontalScroll(m_pSteamHTMLSurface,unBrowserHandle,nAbsolutePixelScroll); -} -public override void SetVerticalScroll(uint unBrowserHandle,uint nAbsolutePixelScroll) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetVerticalScroll(m_pSteamHTMLSurface,unBrowserHandle,nAbsolutePixelScroll); -} -public override void SetKeyFocus(uint unBrowserHandle,bool bHasKeyFocus) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetKeyFocus(m_pSteamHTMLSurface,unBrowserHandle,bHasKeyFocus); -} -public override void ViewSource(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_ViewSource(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void CopyToClipboard(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_CopyToClipboard(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void PasteFromClipboard(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_PasteFromClipboard(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void Find(uint unBrowserHandle,string pchSearchStr,bool bCurrentlyInFind,bool bReverse) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_Find(m_pSteamHTMLSurface,unBrowserHandle,pchSearchStr,bCurrentlyInFind,bReverse); -} -public override void StopFind(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_StopFind(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void GetLinkAtPosition(uint unBrowserHandle,int x,int y) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_GetLinkAtPosition(m_pSteamHTMLSurface,unBrowserHandle,x,y); -} -public override void SetCookie(string pchHostname,string pchKey,string pchValue,string pchPath,ulong nExpires,bool bSecure,bool bHTTPOnly) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetCookie(m_pSteamHTMLSurface,pchHostname,pchKey,pchValue,pchPath,nExpires,bSecure,bHTTPOnly); -} -public override void SetPageScaleFactor(uint unBrowserHandle,float flZoom,int nPointX,int nPointY) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetPageScaleFactor(m_pSteamHTMLSurface,unBrowserHandle,flZoom,nPointX,nPointY); -} -public override void SetBackgroundMode(uint unBrowserHandle,bool bBackgroundMode) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetBackgroundMode(m_pSteamHTMLSurface,unBrowserHandle,bBackgroundMode); -} -public override void AllowStartRequest(uint unBrowserHandle,bool bAllowed) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_AllowStartRequest(m_pSteamHTMLSurface,unBrowserHandle,bAllowed); -} -public override void JSDialogResponse(uint unBrowserHandle,bool bResult) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_JSDialogResponse(m_pSteamHTMLSurface,unBrowserHandle,bResult); -} -} - - -public class CSteamInventory : ISteamInventory -{ -public CSteamInventory(IntPtr SteamInventory) -{ - m_pSteamInventory = SteamInventory; -} -IntPtr m_pSteamInventory; - -public override IntPtr GetIntPtr() { return m_pSteamInventory; } - -private void CheckIfUsable() -{ - if (m_pSteamInventory == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint GetResultStatus(int resultHandle) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultStatus(m_pSteamInventory,resultHandle); - return result; -} -public override bool GetResultItems(int resultHandle,out SteamItemDetails_t [] pOutItemsArray) -{ - CheckIfUsable(); - uint punOutItemsArraySize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultItems(m_pSteamInventory,resultHandle,null,ref punOutItemsArraySize); - pOutItemsArray= new SteamItemDetails_t[punOutItemsArraySize]; - result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultItems(m_pSteamInventory,resultHandle,pOutItemsArray,ref punOutItemsArraySize); - return result; -} -public override uint GetResultTimestamp(int resultHandle) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultTimestamp(m_pSteamInventory,resultHandle); - return result; -} -public override bool CheckResultSteamID(int resultHandle,ulong steamIDExpected) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_CheckResultSteamID(m_pSteamInventory,resultHandle,steamIDExpected); - return result; -} -public override void DestroyResult(int resultHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamInventory_DestroyResult(m_pSteamInventory,resultHandle); -} -public override bool GetAllItems(ref int pResultHandle) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetAllItems(m_pSteamInventory,ref pResultHandle); - return result; -} -public override bool GetItemsByID(ref int pResultHandle,ulong [] pInstanceIDs) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemsByID(m_pSteamInventory,ref pResultHandle,pInstanceIDs,(uint) pInstanceIDs.Length); - return result; -} -public override bool SerializeResult(int resultHandle,IntPtr pOutBuffer,ref uint punOutBufferSize) -{ - CheckIfUsable(); - punOutBufferSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_SerializeResult(m_pSteamInventory,resultHandle,pOutBuffer,ref punOutBufferSize); - return result; -} -public override bool DeserializeResult(ref int pOutResultHandle,IntPtr pBuffer,uint unBufferSize,bool bRESERVED_MUST_BE_FALSE) -{ - CheckIfUsable(); - pOutResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_DeserializeResult(m_pSteamInventory,ref pOutResultHandle,pBuffer,unBufferSize,bRESERVED_MUST_BE_FALSE); - return result; -} -public override bool GenerateItems(ref int pResultHandle,int [] pArrayItemDefs,uint [] punArrayQuantity) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GenerateItems(m_pSteamInventory,ref pResultHandle,pArrayItemDefs,punArrayQuantity,(uint) punArrayQuantity.Length); - return result; -} -public override bool GrantPromoItems(ref int pResultHandle) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GrantPromoItems(m_pSteamInventory,ref pResultHandle); - return result; -} -public override bool AddPromoItem(ref int pResultHandle,int itemDef) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_AddPromoItem(m_pSteamInventory,ref pResultHandle,itemDef); - return result; -} -public override bool AddPromoItems(ref int pResultHandle,int [] pArrayItemDefs) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_AddPromoItems(m_pSteamInventory,ref pResultHandle,pArrayItemDefs,(uint) pArrayItemDefs.Length); - return result; -} -public override bool ConsumeItem(ref int pResultHandle,ulong itemConsume,uint unQuantity) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_ConsumeItem(m_pSteamInventory,ref pResultHandle,itemConsume,unQuantity); - return result; -} -public override bool ExchangeItems(ref int pResultHandle,int [] pArrayGenerate,uint [] punArrayGenerateQuantity,ulong [] pArrayDestroy,uint [] punArrayDestroyQuantity) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_ExchangeItems(m_pSteamInventory,ref pResultHandle,pArrayGenerate,punArrayGenerateQuantity,(uint) punArrayGenerateQuantity.Length,pArrayDestroy,punArrayDestroyQuantity,(uint) punArrayDestroyQuantity.Length); - return result; -} -public override bool TransferItemQuantity(ref int pResultHandle,ulong itemIdSource,uint unQuantity,ulong itemIdDest) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_TransferItemQuantity(m_pSteamInventory,ref pResultHandle,itemIdSource,unQuantity,itemIdDest); - return result; -} -public override void SendItemDropHeartbeat() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamInventory_SendItemDropHeartbeat(m_pSteamInventory); -} -public override bool TriggerItemDrop(ref int pResultHandle,int dropListDefinition) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_TriggerItemDrop(m_pSteamInventory,ref pResultHandle,dropListDefinition); - return result; -} -public override bool TradeItems(ref int pResultHandle,ulong steamIDTradePartner,ulong [] pArrayGive,uint [] pArrayGiveQuantity,ulong [] pArrayGet,uint [] pArrayGetQuantity) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_TradeItems(m_pSteamInventory,ref pResultHandle,steamIDTradePartner,pArrayGive,pArrayGiveQuantity,(uint) pArrayGiveQuantity.Length,pArrayGet,pArrayGetQuantity,(uint) pArrayGetQuantity.Length); - return result; -} -public override bool LoadItemDefinitions() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_LoadItemDefinitions(m_pSteamInventory); - return result; -} -public override bool GetItemDefinitionIDs(out int [] pItemDefIDs) -{ - CheckIfUsable(); - uint punItemDefIDsArraySize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemDefinitionIDs(m_pSteamInventory,null,ref punItemDefIDsArraySize); - pItemDefIDs= new int[punItemDefIDsArraySize]; - result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemDefinitionIDs(m_pSteamInventory,pItemDefIDs,ref punItemDefIDsArraySize); - return result; -} -public override bool GetItemDefinitionProperty(int iDefinition,string pchPropertyName,out string pchValueBuffer) -{ - CheckIfUsable(); - uint punValueBufferSizeOut = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemDefinitionProperty(m_pSteamInventory,iDefinition,pchPropertyName,null,ref punValueBufferSizeOut); - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder((int)punValueBufferSizeOut); - result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemDefinitionProperty(m_pSteamInventory,iDefinition,pchPropertyName,pStrBuffer1,ref punValueBufferSizeOut); - pchValueBuffer = pStrBuffer1.ToString(); - return result; -} -} - - -public class CSteamVideo : ISteamVideo -{ -public CSteamVideo(IntPtr SteamVideo) -{ - m_pSteamVideo = SteamVideo; -} -IntPtr m_pSteamVideo; - -public override IntPtr GetIntPtr() { return m_pSteamVideo; } - -private void CheckIfUsable() -{ - if (m_pSteamVideo == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void GetVideoURL(uint unVideoAppID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamVideo_GetVideoURL(m_pSteamVideo,unVideoAppID); -} -public override bool IsBroadcasting(ref int pnNumViewers) -{ - CheckIfUsable(); - pnNumViewers = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamVideo_IsBroadcasting(m_pSteamVideo,ref pnNumViewers); - return result; -} -} - - -public class CSteamGameServer : ISteamGameServer -{ -public CSteamGameServer(IntPtr SteamGameServer) -{ - m_pSteamGameServer = SteamGameServer; -} -IntPtr m_pSteamGameServer; - -public override IntPtr GetIntPtr() { return m_pSteamGameServer; } - -private void CheckIfUsable() -{ - if (m_pSteamGameServer == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool InitGameServer(uint unIP,char usGamePort,char usQueryPort,uint unFlags,uint nGameAppId,string pchVersionString) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_InitGameServer(m_pSteamGameServer,unIP,usGamePort,usQueryPort,unFlags,nGameAppId,pchVersionString); - return result; -} -public override void SetProduct(string pszProduct) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetProduct(m_pSteamGameServer,pszProduct); -} -public override void SetGameDescription(string pszGameDescription) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetGameDescription(m_pSteamGameServer,pszGameDescription); -} -public override void SetModDir(string pszModDir) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetModDir(m_pSteamGameServer,pszModDir); -} -public override void SetDedicatedServer(bool bDedicated) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetDedicatedServer(m_pSteamGameServer,bDedicated); -} -public override void LogOn(string pszToken) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_LogOn(m_pSteamGameServer,pszToken); -} -public override void LogOnAnonymous() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_LogOnAnonymous(m_pSteamGameServer); -} -public override void LogOff() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_LogOff(m_pSteamGameServer); -} -public override bool BLoggedOn() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_BLoggedOn(m_pSteamGameServer); - return result; -} -public override bool BSecure() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_BSecure(m_pSteamGameServer); - return result; -} -public override ulong GetSteamID() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetSteamID(m_pSteamGameServer); - return result; -} -public override bool WasRestartRequested() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_WasRestartRequested(m_pSteamGameServer); - return result; -} -public override void SetMaxPlayerCount(int cPlayersMax) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetMaxPlayerCount(m_pSteamGameServer,cPlayersMax); -} -public override void SetBotPlayerCount(int cBotplayers) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetBotPlayerCount(m_pSteamGameServer,cBotplayers); -} -public override void SetServerName(string pszServerName) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetServerName(m_pSteamGameServer,pszServerName); -} -public override void SetMapName(string pszMapName) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetMapName(m_pSteamGameServer,pszMapName); -} -public override void SetPasswordProtected(bool bPasswordProtected) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetPasswordProtected(m_pSteamGameServer,bPasswordProtected); -} -public override void SetSpectatorPort(char unSpectatorPort) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetSpectatorPort(m_pSteamGameServer,unSpectatorPort); -} -public override void SetSpectatorServerName(string pszSpectatorServerName) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetSpectatorServerName(m_pSteamGameServer,pszSpectatorServerName); -} -public override void ClearAllKeyValues() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_ClearAllKeyValues(m_pSteamGameServer); -} -public override void SetKeyValue(string pKey,string pValue) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetKeyValue(m_pSteamGameServer,pKey,pValue); -} -public override void SetGameTags(string pchGameTags) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetGameTags(m_pSteamGameServer,pchGameTags); -} -public override void SetGameData(string pchGameData) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetGameData(m_pSteamGameServer,pchGameData); -} -public override void SetRegion(string pszRegion) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetRegion(m_pSteamGameServer,pszRegion); -} -public override bool SendUserConnectAndAuthenticate(uint unIPClient,IntPtr pvAuthBlob,uint cubAuthBlobSize,ref CSteamID pSteamIDUser) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate(m_pSteamGameServer,unIPClient,pvAuthBlob,cubAuthBlobSize,ref pSteamIDUser); - return result; -} -public override ulong CreateUnauthenticatedUserConnection() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection(m_pSteamGameServer); - return result; -} -public override void SendUserDisconnect(ulong steamIDUser) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SendUserDisconnect(m_pSteamGameServer,steamIDUser); -} -public override bool BUpdateUserData(ulong steamIDUser,string pchPlayerName,uint uScore) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_BUpdateUserData(m_pSteamGameServer,steamIDUser,pchPlayerName,uScore); - return result; -} -public override uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket) -{ - CheckIfUsable(); - pcbTicket = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetAuthSessionTicket(m_pSteamGameServer,pTicket,cbMaxTicket,ref pcbTicket); - return result; -} -public override uint BeginAuthSession(IntPtr pAuthTicket,int cbAuthTicket,ulong steamID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamGameServer_BeginAuthSession(m_pSteamGameServer,pAuthTicket,cbAuthTicket,steamID); - return result; -} -public override void EndAuthSession(ulong steamID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_EndAuthSession(m_pSteamGameServer,steamID); -} -public override void CancelAuthTicket(uint hAuthTicket) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_CancelAuthTicket(m_pSteamGameServer,hAuthTicket); -} -public override uint UserHasLicenseForApp(ulong steamID,uint appID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamGameServer_UserHasLicenseForApp(m_pSteamGameServer,steamID,appID); - return result; -} -public override bool RequestUserGroupStatus(ulong steamIDUser,ulong steamIDGroup) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_RequestUserGroupStatus(m_pSteamGameServer,steamIDUser,steamIDGroup); - return result; -} -public override void GetGameplayStats() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_GetGameplayStats(m_pSteamGameServer); -} -public override ulong GetServerReputation() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetServerReputation(m_pSteamGameServer); - return result; -} -public override uint GetPublicIP() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetPublicIP(m_pSteamGameServer); - return result; -} -public override bool HandleIncomingPacket(IntPtr pData,int cbData,uint srcIP,char srcPort) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_HandleIncomingPacket(m_pSteamGameServer,pData,cbData,srcIP,srcPort); - return result; -} -public override int GetNextOutgoingPacket(IntPtr pOut,int cbMaxOut,ref uint pNetAdr,ref char pPort) -{ - CheckIfUsable(); - pNetAdr = 0; - pPort = (char) 0; - int result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetNextOutgoingPacket(m_pSteamGameServer,pOut,cbMaxOut,ref pNetAdr,ref pPort); - return result; -} -public override void EnableHeartbeats(bool bActive) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_EnableHeartbeats(m_pSteamGameServer,bActive); -} -public override void SetHeartbeatInterval(int iHeartbeatInterval) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetHeartbeatInterval(m_pSteamGameServer,iHeartbeatInterval); -} -public override void ForceHeartbeat() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_ForceHeartbeat(m_pSteamGameServer); -} -public override ulong AssociateWithClan(ulong steamIDClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_AssociateWithClan(m_pSteamGameServer,steamIDClan); - return result; -} -public override ulong ComputeNewPlayerCompatibility(ulong steamIDNewPlayer) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility(m_pSteamGameServer,steamIDNewPlayer); - return result; -} -} - - -public class CSteamGameServerStats : ISteamGameServerStats -{ -public CSteamGameServerStats(IntPtr SteamGameServerStats) -{ - m_pSteamGameServerStats = SteamGameServerStats; -} -IntPtr m_pSteamGameServerStats; - -public override IntPtr GetIntPtr() { return m_pSteamGameServerStats; } - -private void CheckIfUsable() -{ - if (m_pSteamGameServerStats == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override ulong RequestUserStats(ulong steamIDUser) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_RequestUserStats(m_pSteamGameServerStats,steamIDUser); - return result; -} -public override bool GetUserStat(ulong steamIDUser,string pchName,ref int pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_GetUserStat(m_pSteamGameServerStats,steamIDUser,pchName,ref pData); - return result; -} -public override bool GetUserStat0(ulong steamIDUser,string pchName,ref float pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_GetUserStat0(m_pSteamGameServerStats,steamIDUser,pchName,ref pData); - return result; -} -public override bool GetUserAchievement(ulong steamIDUser,string pchName,ref bool pbAchieved) -{ - CheckIfUsable(); - pbAchieved = false; - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_GetUserAchievement(m_pSteamGameServerStats,steamIDUser,pchName,ref pbAchieved); - return result; -} -public override bool SetUserStat(ulong steamIDUser,string pchName,int nData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_SetUserStat(m_pSteamGameServerStats,steamIDUser,pchName,nData); - return result; -} -public override bool SetUserStat0(ulong steamIDUser,string pchName,float fData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_SetUserStat0(m_pSteamGameServerStats,steamIDUser,pchName,fData); - return result; -} -public override bool UpdateUserAvgRateStat(ulong steamIDUser,string pchName,float flCountThisSession,double dSessionLength) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat(m_pSteamGameServerStats,steamIDUser,pchName,flCountThisSession,dSessionLength); - return result; -} -public override bool SetUserAchievement(ulong steamIDUser,string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_SetUserAchievement(m_pSteamGameServerStats,steamIDUser,pchName); - return result; -} -public override bool ClearUserAchievement(ulong steamIDUser,string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_ClearUserAchievement(m_pSteamGameServerStats,steamIDUser,pchName); - return result; -} -public override ulong StoreUserStats(ulong steamIDUser) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_StoreUserStats(m_pSteamGameServerStats,steamIDUser); - return result; -} -} - - -public class CUserStatsReceived_t_Callback -{ - public CUserStatsReceived_t_Callback() { } - ~CUserStatsReceived_t_Callback() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_RemoveCallback(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(Valve.Interop.NativeEntrypoints.SteamAPI_UserStatsReceived_t_Callback func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_RemoveCallback(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_SetCallback(func); - } -} -public class CRemoteStorageFileReadAsyncComplete_t_CallResult -{ - public CRemoteStorageFileReadAsyncComplete_t_CallResult() { } - ~CRemoteStorageFileReadAsyncComplete_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileReadAsyncComplete_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageFileReadAsyncComplete_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileReadAsyncComplete_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageFileReadAsyncComplete_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult -{ - public CRemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult() { } - ~CRemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedItemVoteDetailsResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedItemVoteDetailsResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedItemVoteDetailsResult_t_SetCallResult(hAPICall, func); - } -} -public class CFileDetailsResult_t_CallResult -{ - public CFileDetailsResult_t_CallResult() { } - ~CFileDetailsResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFileDetailsResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_FileDetailsResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFileDetailsResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CFileDetailsResult_t_SetCallResult(hAPICall, func); - } -} -public class CGSStatsStored_t_CallResult -{ - public CGSStatsStored_t_CallResult() { } - ~CGSStatsStored_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSStatsStored_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GSStatsStored_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSStatsStored_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGSStatsStored_t_SetCallResult(hAPICall, func); - } -} -public class CHTML_BrowserReady_t_CallResult -{ - public CHTML_BrowserReady_t_CallResult() { } - ~CHTML_BrowserReady_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CHTML_BrowserReady_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_HTML_BrowserReady_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CHTML_BrowserReady_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CHTML_BrowserReady_t_SetCallResult(hAPICall, func); - } -} -public class CFriendsGetFollowerCount_t_CallResult -{ - public CFriendsGetFollowerCount_t_CallResult() { } - ~CFriendsGetFollowerCount_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsGetFollowerCount_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_FriendsGetFollowerCount_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsGetFollowerCount_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CFriendsGetFollowerCount_t_SetCallResult(hAPICall, func); - } -} -public class CFriendsIsFollowing_t_CallResult -{ - public CFriendsIsFollowing_t_CallResult() { } - ~CFriendsIsFollowing_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsIsFollowing_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_FriendsIsFollowing_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsIsFollowing_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CFriendsIsFollowing_t_SetCallResult(hAPICall, func); - } -} -public class CLobbyMatchList_t_CallResult -{ - public CLobbyMatchList_t_CallResult() { } - ~CLobbyMatchList_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyMatchList_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LobbyMatchList_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyMatchList_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLobbyMatchList_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageUpdatePublishedFileResult_t_CallResult -{ - public CRemoteStorageUpdatePublishedFileResult_t_CallResult() { } - ~CRemoteStorageUpdatePublishedFileResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUpdatePublishedFileResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageUpdatePublishedFileResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUpdatePublishedFileResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageUpdatePublishedFileResult_t_SetCallResult(hAPICall, func); - } -} -public class CStoreAuthURLResponse_t_CallResult -{ - public CStoreAuthURLResponse_t_CallResult() { } - ~CStoreAuthURLResponse_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CStoreAuthURLResponse_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_StoreAuthURLResponse_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CStoreAuthURLResponse_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CStoreAuthURLResponse_t_SetCallResult(hAPICall, func); - } -} -public class CLobbyCreated_t_CallResult -{ - public CLobbyCreated_t_CallResult() { } - ~CLobbyCreated_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyCreated_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LobbyCreated_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyCreated_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLobbyCreated_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageFileWriteAsyncComplete_t_CallResult -{ - public CRemoteStorageFileWriteAsyncComplete_t_CallResult() { } - ~CRemoteStorageFileWriteAsyncComplete_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileWriteAsyncComplete_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageFileWriteAsyncComplete_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileWriteAsyncComplete_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageFileWriteAsyncComplete_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageDeletePublishedFileResult_t_CallResult -{ - public CRemoteStorageDeletePublishedFileResult_t_CallResult() { } - ~CRemoteStorageDeletePublishedFileResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageDeletePublishedFileResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageDeletePublishedFileResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageDeletePublishedFileResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageDeletePublishedFileResult_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageGetPublishedFileDetailsResult_t_CallResult -{ - public CRemoteStorageGetPublishedFileDetailsResult_t_CallResult() { } - ~CRemoteStorageGetPublishedFileDetailsResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageGetPublishedFileDetailsResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedFileDetailsResult_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageDownloadUGCResult_t_CallResult -{ - public CRemoteStorageDownloadUGCResult_t_CallResult() { } - ~CRemoteStorageDownloadUGCResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageDownloadUGCResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageDownloadUGCResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageDownloadUGCResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageDownloadUGCResult_t_SetCallResult(hAPICall, func); - } -} -public class CSteamUGCQueryCompleted_t_CallResult -{ - public CSteamUGCQueryCompleted_t_CallResult() { } - ~CSteamUGCQueryCompleted_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSteamUGCQueryCompleted_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_SteamUGCQueryCompleted_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSteamUGCQueryCompleted_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CSteamUGCQueryCompleted_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageFileShareResult_t_CallResult -{ - public CRemoteStorageFileShareResult_t_CallResult() { } - ~CRemoteStorageFileShareResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileShareResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageFileShareResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileShareResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageFileShareResult_t_SetCallResult(hAPICall, func); - } -} -public class CLobbyEnter_t_CallResult -{ - public CLobbyEnter_t_CallResult() { } - ~CLobbyEnter_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyEnter_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LobbyEnter_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyEnter_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLobbyEnter_t_SetCallResult(hAPICall, func); - } -} -public class CSubmitItemUpdateResult_t_CallResult -{ - public CSubmitItemUpdateResult_t_CallResult() { } - ~CSubmitItemUpdateResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSubmitItemUpdateResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_SubmitItemUpdateResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSubmitItemUpdateResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CSubmitItemUpdateResult_t_SetCallResult(hAPICall, func); - } -} -public class CNumberOfCurrentPlayers_t_CallResult -{ - public CNumberOfCurrentPlayers_t_CallResult() { } - ~CNumberOfCurrentPlayers_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CNumberOfCurrentPlayers_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_NumberOfCurrentPlayers_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CNumberOfCurrentPlayers_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CNumberOfCurrentPlayers_t_SetCallResult(hAPICall, func); - } -} -public class CGSStatsReceived_t_CallResult -{ - public CGSStatsReceived_t_CallResult() { } - ~CGSStatsReceived_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSStatsReceived_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GSStatsReceived_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSStatsReceived_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGSStatsReceived_t_SetCallResult(hAPICall, func); - } -} -public class CLeaderboardScoresDownloaded_t_CallResult -{ - public CLeaderboardScoresDownloaded_t_CallResult() { } - ~CLeaderboardScoresDownloaded_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardScoresDownloaded_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LeaderboardScoresDownloaded_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardScoresDownloaded_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLeaderboardScoresDownloaded_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult -{ - public CRemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult() { } - ~CRemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUpdateUserPublishedItemVoteResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUpdateUserPublishedItemVoteResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageUpdateUserPublishedItemVoteResult_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult -{ - public CRemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult() { } - ~CRemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserSubscribedFilesResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserSubscribedFilesResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserSubscribedFilesResult_t_SetCallResult(hAPICall, func); - } -} -public class CCreateItemResult_t_CallResult -{ - public CCreateItemResult_t_CallResult() { } - ~CCreateItemResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CCreateItemResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_CreateItemResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CCreateItemResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CCreateItemResult_t_SetCallResult(hAPICall, func); - } -} -public class CSetUserItemVoteResult_t_CallResult -{ - public CSetUserItemVoteResult_t_CallResult() { } - ~CSetUserItemVoteResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSetUserItemVoteResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_SetUserItemVoteResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSetUserItemVoteResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CSetUserItemVoteResult_t_SetCallResult(hAPICall, func); - } -} -public class CComputeNewPlayerCompatibilityResult_t_CallResult -{ - public CComputeNewPlayerCompatibilityResult_t_CallResult() { } - ~CComputeNewPlayerCompatibilityResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CComputeNewPlayerCompatibilityResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_ComputeNewPlayerCompatibilityResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CComputeNewPlayerCompatibilityResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CComputeNewPlayerCompatibilityResult_t_SetCallResult(hAPICall, func); - } -} -public class CLeaderboardScoreUploaded_t_CallResult -{ - public CLeaderboardScoreUploaded_t_CallResult() { } - ~CLeaderboardScoreUploaded_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardScoreUploaded_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LeaderboardScoreUploaded_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardScoreUploaded_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLeaderboardScoreUploaded_t_SetCallResult(hAPICall, func); - } -} -public class CGlobalAchievementPercentagesReady_t_CallResult -{ - public CGlobalAchievementPercentagesReady_t_CallResult() { } - ~CGlobalAchievementPercentagesReady_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGlobalAchievementPercentagesReady_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GlobalAchievementPercentagesReady_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGlobalAchievementPercentagesReady_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGlobalAchievementPercentagesReady_t_SetCallResult(hAPICall, func); - } -} -public class CGlobalStatsReceived_t_CallResult -{ - public CGlobalStatsReceived_t_CallResult() { } - ~CGlobalStatsReceived_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGlobalStatsReceived_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GlobalStatsReceived_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGlobalStatsReceived_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGlobalStatsReceived_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult -{ - public CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult() { } - ~CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_SetCallResult(hAPICall, func); - } -} -public class CClanOfficerListResponse_t_CallResult -{ - public CClanOfficerListResponse_t_CallResult() { } - ~CClanOfficerListResponse_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CClanOfficerListResponse_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_ClanOfficerListResponse_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CClanOfficerListResponse_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CClanOfficerListResponse_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStoragePublishFileProgress_t_CallResult -{ - public CRemoteStoragePublishFileProgress_t_CallResult() { } - ~CRemoteStoragePublishFileProgress_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStoragePublishFileProgress_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStoragePublishFileProgress_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStoragePublishFileProgress_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStoragePublishFileProgress_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageEnumerateWorkshopFilesResult_t_CallResult -{ - public CRemoteStorageEnumerateWorkshopFilesResult_t_CallResult() { } - ~CRemoteStorageEnumerateWorkshopFilesResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult(hAPICall, func); - } -} -public class CGSReputation_t_CallResult -{ - public CGSReputation_t_CallResult() { } - ~CGSReputation_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSReputation_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GSReputation_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSReputation_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGSReputation_t_SetCallResult(hAPICall, func); - } -} -public class CUserFavoriteItemsListChanged_t_CallResult -{ - public CUserFavoriteItemsListChanged_t_CallResult() { } - ~CUserFavoriteItemsListChanged_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserFavoriteItemsListChanged_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_UserFavoriteItemsListChanged_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserFavoriteItemsListChanged_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CUserFavoriteItemsListChanged_t_SetCallResult(hAPICall, func); - } -} -public class CEncryptedAppTicketResponse_t_CallResult -{ - public CEncryptedAppTicketResponse_t_CallResult() { } - ~CEncryptedAppTicketResponse_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CEncryptedAppTicketResponse_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_EncryptedAppTicketResponse_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CEncryptedAppTicketResponse_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CEncryptedAppTicketResponse_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageSetUserPublishedFileActionResult_t_CallResult -{ - public CRemoteStorageSetUserPublishedFileActionResult_t_CallResult() { } - ~CRemoteStorageSetUserPublishedFileActionResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageSetUserPublishedFileActionResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageSetUserPublishedFileActionResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageSetUserPublishedFileActionResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageSetUserPublishedFileActionResult_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageEnumerateUserPublishedFilesResult_t_CallResult -{ - public CRemoteStorageEnumerateUserPublishedFilesResult_t_CallResult() { } - ~CRemoteStorageEnumerateUserPublishedFilesResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserPublishedFilesResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageEnumerateUserPublishedFilesResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserPublishedFilesResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserPublishedFilesResult_t_SetCallResult(hAPICall, func); - } -} -public class CFriendsEnumerateFollowingList_t_CallResult -{ - public CFriendsEnumerateFollowingList_t_CallResult() { } - ~CFriendsEnumerateFollowingList_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsEnumerateFollowingList_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_FriendsEnumerateFollowingList_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsEnumerateFollowingList_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CFriendsEnumerateFollowingList_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageSubscribePublishedFileResult_t_CallResult -{ - public CRemoteStorageSubscribePublishedFileResult_t_CallResult() { } - ~CRemoteStorageSubscribePublishedFileResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageSubscribePublishedFileResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageSubscribePublishedFileResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageSubscribePublishedFileResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageSubscribePublishedFileResult_t_SetCallResult(hAPICall, func); - } -} -public class CGetUserItemVoteResult_t_CallResult -{ - public CGetUserItemVoteResult_t_CallResult() { } - ~CGetUserItemVoteResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGetUserItemVoteResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GetUserItemVoteResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGetUserItemVoteResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGetUserItemVoteResult_t_SetCallResult(hAPICall, func); - } -} -public class CAssociateWithClanResult_t_CallResult -{ - public CAssociateWithClanResult_t_CallResult() { } - ~CAssociateWithClanResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CAssociateWithClanResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_AssociateWithClanResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CAssociateWithClanResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CAssociateWithClanResult_t_SetCallResult(hAPICall, func); - } -} -public class CLeaderboardUGCSet_t_CallResult -{ - public CLeaderboardUGCSet_t_CallResult() { } - ~CLeaderboardUGCSet_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardUGCSet_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LeaderboardUGCSet_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardUGCSet_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLeaderboardUGCSet_t_SetCallResult(hAPICall, func); - } -} -public class CCheckFileSignature_t_CallResult -{ - public CCheckFileSignature_t_CallResult() { } - ~CCheckFileSignature_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CCheckFileSignature_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_CheckFileSignature_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CCheckFileSignature_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CCheckFileSignature_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageUnsubscribePublishedFileResult_t_CallResult -{ - public CRemoteStorageUnsubscribePublishedFileResult_t_CallResult() { } - ~CRemoteStorageUnsubscribePublishedFileResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUnsubscribePublishedFileResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageUnsubscribePublishedFileResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUnsubscribePublishedFileResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageUnsubscribePublishedFileResult_t_SetCallResult(hAPICall, func); - } -} -public class CSetPersonaNameResponse_t_CallResult -{ - public CSetPersonaNameResponse_t_CallResult() { } - ~CSetPersonaNameResponse_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSetPersonaNameResponse_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_SetPersonaNameResponse_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSetPersonaNameResponse_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CSetPersonaNameResponse_t_SetCallResult(hAPICall, func); - } -} -public class CUserStatsReceived_t_CallResult -{ - public CUserStatsReceived_t_CallResult() { } - ~CUserStatsReceived_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_UserStatsReceived_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_SetCallResult(hAPICall, func); - } -} -public class CJoinClanChatRoomCompletionResult_t_CallResult -{ - public CJoinClanChatRoomCompletionResult_t_CallResult() { } - ~CJoinClanChatRoomCompletionResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CJoinClanChatRoomCompletionResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_JoinClanChatRoomCompletionResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CJoinClanChatRoomCompletionResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CJoinClanChatRoomCompletionResult_t_SetCallResult(hAPICall, func); - } -} -public class CLeaderboardFindResult_t_CallResult -{ - public CLeaderboardFindResult_t_CallResult() { } - ~CLeaderboardFindResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardFindResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LeaderboardFindResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardFindResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLeaderboardFindResult_t_SetCallResult(hAPICall, func); - } -} -public class SteamAPIInterop -{ -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_RestartAppIfNecessary")] -internal static extern void SteamAPI_RestartAppIfNecessary(uint unOwnAppID ); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_Init")] -internal static extern void SteamAPI_Init(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_RunCallbacks")] -internal static extern void SteamAPI_RunCallbacks(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_RegisterCallback")] -internal static extern void SteamAPI_RegisterCallback(IntPtr pCallback, int iCallback); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_UnregisterCallback")] -internal static extern void SteamAPI_UnregisterCallback(IntPtr pCallback); -[DllImportAttribute("Steam_api", EntryPoint = "SteamClient")] -internal static extern IntPtr SteamClient(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUser")] -internal static extern IntPtr SteamUser(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamFriends")] -internal static extern IntPtr SteamFriends(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUtils")] -internal static extern IntPtr SteamUtils(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmaking")] -internal static extern IntPtr SteamMatchmaking(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingServerListResponse")] -internal static extern IntPtr SteamMatchmakingServerListResponse(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingPingResponse")] -internal static extern IntPtr SteamMatchmakingPingResponse(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingPlayersResponse")] -internal static extern IntPtr SteamMatchmakingPlayersResponse(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingRulesResponse")] -internal static extern IntPtr SteamMatchmakingRulesResponse(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingServers")] -internal static extern IntPtr SteamMatchmakingServers(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamRemoteStorage")] -internal static extern IntPtr SteamRemoteStorage(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUserStats")] -internal static extern IntPtr SteamUserStats(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamApps")] -internal static extern IntPtr SteamApps(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamNetworking")] -internal static extern IntPtr SteamNetworking(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamScreenshots")] -internal static extern IntPtr SteamScreenshots(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMusic")] -internal static extern IntPtr SteamMusic(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMusicRemote")] -internal static extern IntPtr SteamMusicRemote(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamHTTP")] -internal static extern IntPtr SteamHTTP(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUnifiedMessages")] -internal static extern IntPtr SteamUnifiedMessages(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamController")] -internal static extern IntPtr SteamController(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUGC")] -internal static extern IntPtr SteamUGC(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAppList")] -internal static extern IntPtr SteamAppList(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamHTMLSurface")] -internal static extern IntPtr SteamHTMLSurface(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamInventory")] -internal static extern IntPtr SteamInventory(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamVideo")] -internal static extern IntPtr SteamVideo(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamGameServer")] -internal static extern IntPtr SteamGameServer(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamGameServerStats")] -internal static extern IntPtr SteamGameServerStats(); -} - - -public enum EUniverse -{ - k_EUniverseInvalid = 0, - k_EUniversePublic = 1, - k_EUniverseBeta = 2, - k_EUniverseInternal = 3, - k_EUniverseDev = 4, - k_EUniverseMax = 5, -} -public enum EResult -{ - k_EResultOK = 1, - k_EResultFail = 2, - k_EResultNoConnection = 3, - k_EResultInvalidPassword = 5, - k_EResultLoggedInElsewhere = 6, - k_EResultInvalidProtocolVer = 7, - k_EResultInvalidParam = 8, - k_EResultFileNotFound = 9, - k_EResultBusy = 10, - k_EResultInvalidState = 11, - k_EResultInvalidName = 12, - k_EResultInvalidEmail = 13, - k_EResultDuplicateName = 14, - k_EResultAccessDenied = 15, - k_EResultTimeout = 16, - k_EResultBanned = 17, - k_EResultAccountNotFound = 18, - k_EResultInvalidSteamID = 19, - k_EResultServiceUnavailable = 20, - k_EResultNotLoggedOn = 21, - k_EResultPending = 22, - k_EResultEncryptionFailure = 23, - k_EResultInsufficientPrivilege = 24, - k_EResultLimitExceeded = 25, - k_EResultRevoked = 26, - k_EResultExpired = 27, - k_EResultAlreadyRedeemed = 28, - k_EResultDuplicateRequest = 29, - k_EResultAlreadyOwned = 30, - k_EResultIPNotFound = 31, - k_EResultPersistFailed = 32, - k_EResultLockingFailed = 33, - k_EResultLogonSessionReplaced = 34, - k_EResultConnectFailed = 35, - k_EResultHandshakeFailed = 36, - k_EResultIOFailure = 37, - k_EResultRemoteDisconnect = 38, - k_EResultShoppingCartNotFound = 39, - k_EResultBlocked = 40, - k_EResultIgnored = 41, - k_EResultNoMatch = 42, - k_EResultAccountDisabled = 43, - k_EResultServiceReadOnly = 44, - k_EResultAccountNotFeatured = 45, - k_EResultAdministratorOK = 46, - k_EResultContentVersion = 47, - k_EResultTryAnotherCM = 48, - k_EResultPasswordRequiredToKickSession = 49, - k_EResultAlreadyLoggedInElsewhere = 50, - k_EResultSuspended = 51, - k_EResultCancelled = 52, - k_EResultDataCorruption = 53, - k_EResultDiskFull = 54, - k_EResultRemoteCallFailed = 55, - k_EResultPasswordUnset = 56, - k_EResultExternalAccountUnlinked = 57, - k_EResultPSNTicketInvalid = 58, - k_EResultExternalAccountAlreadyLinked = 59, - k_EResultRemoteFileConflict = 60, - k_EResultIllegalPassword = 61, - k_EResultSameAsPreviousValue = 62, - k_EResultAccountLogonDenied = 63, - k_EResultCannotUseOldPassword = 64, - k_EResultInvalidLoginAuthCode = 65, - k_EResultAccountLogonDeniedNoMail = 66, - k_EResultHardwareNotCapableOfIPT = 67, - k_EResultIPTInitError = 68, - k_EResultParentalControlRestricted = 69, - k_EResultFacebookQueryError = 70, - k_EResultExpiredLoginAuthCode = 71, - k_EResultIPLoginRestrictionFailed = 72, - k_EResultAccountLockedDown = 73, - k_EResultAccountLogonDeniedVerifiedEmailRequired = 74, - k_EResultNoMatchingURL = 75, - k_EResultBadResponse = 76, - k_EResultRequirePasswordReEntry = 77, - k_EResultValueOutOfRange = 78, - k_EResultUnexpectedError = 79, - k_EResultDisabled = 80, - k_EResultInvalidCEGSubmission = 81, - k_EResultRestrictedDevice = 82, - k_EResultRegionLocked = 83, - k_EResultRateLimitExceeded = 84, - k_EResultAccountLoginDeniedNeedTwoFactor = 85, - k_EResultItemDeleted = 86, - k_EResultAccountLoginDeniedThrottle = 87, - k_EResultTwoFactorCodeMismatch = 88, - k_EResultTwoFactorActivationCodeMismatch = 89, - k_EResultAccountAssociatedToMultiplePartners = 90, - k_EResultNotModified = 91, - k_EResultNoMobileDevice = 92, - k_EResultTimeNotSynced = 93, - k_EResultSmsCodeFailed = 94, - k_EResultAccountLimitExceeded = 95, - k_EResultAccountActivityLimitExceeded = 96, - k_EResultPhoneActivityLimitExceeded = 97, - k_EResultRefundToWallet = 98, - k_EResultEmailSendFailure = 99, - k_EResultNotSettled = 100, - k_EResultNeedCaptcha = 101, - k_EResultGSLTDenied = 102, - k_EResultGSOwnerDenied = 103, - k_EResultInvalidItemType = 104, - k_EResultIPBanned = 105, - k_EResultGSLTExpired = 106, -} -public enum EVoiceResult -{ - k_EVoiceResultOK = 0, - k_EVoiceResultNotInitialized = 1, - k_EVoiceResultNotRecording = 2, - k_EVoiceResultNoData = 3, - k_EVoiceResultBufferTooSmall = 4, - k_EVoiceResultDataCorrupted = 5, - k_EVoiceResultRestricted = 6, - k_EVoiceResultUnsupportedCodec = 7, - k_EVoiceResultReceiverOutOfDate = 8, - k_EVoiceResultReceiverDidNotAnswer = 9, -} -public enum EDenyReason -{ - k_EDenyInvalid = 0, - k_EDenyInvalidVersion = 1, - k_EDenyGeneric = 2, - k_EDenyNotLoggedOn = 3, - k_EDenyNoLicense = 4, - k_EDenyCheater = 5, - k_EDenyLoggedInElseWhere = 6, - k_EDenyUnknownText = 7, - k_EDenyIncompatibleAnticheat = 8, - k_EDenyMemoryCorruption = 9, - k_EDenyIncompatibleSoftware = 10, - k_EDenySteamConnectionLost = 11, - k_EDenySteamConnectionError = 12, - k_EDenySteamResponseTimedOut = 13, - k_EDenySteamValidationStalled = 14, - k_EDenySteamOwnerLeftGuestUser = 15, -} -public enum EBeginAuthSessionResult -{ - k_EBeginAuthSessionResultOK = 0, - k_EBeginAuthSessionResultInvalidTicket = 1, - k_EBeginAuthSessionResultDuplicateRequest = 2, - k_EBeginAuthSessionResultInvalidVersion = 3, - k_EBeginAuthSessionResultGameMismatch = 4, - k_EBeginAuthSessionResultExpiredTicket = 5, -} -public enum EAuthSessionResponse -{ - k_EAuthSessionResponseOK = 0, - k_EAuthSessionResponseUserNotConnectedToSteam = 1, - k_EAuthSessionResponseNoLicenseOrExpired = 2, - k_EAuthSessionResponseVACBanned = 3, - k_EAuthSessionResponseLoggedInElseWhere = 4, - k_EAuthSessionResponseVACCheckTimedOut = 5, - k_EAuthSessionResponseAuthTicketCanceled = 6, - k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed = 7, - k_EAuthSessionResponseAuthTicketInvalid = 8, - k_EAuthSessionResponsePublisherIssuedBan = 9, -} -public enum EUserHasLicenseForAppResult -{ - k_EUserHasLicenseResultHasLicense = 0, - k_EUserHasLicenseResultDoesNotHaveLicense = 1, - k_EUserHasLicenseResultNoAuth = 2, -} -public enum EAccountType -{ - k_EAccountTypeInvalid = 0, - k_EAccountTypeIndividual = 1, - k_EAccountTypeMultiseat = 2, - k_EAccountTypeGameServer = 3, - k_EAccountTypeAnonGameServer = 4, - k_EAccountTypePending = 5, - k_EAccountTypeContentServer = 6, - k_EAccountTypeClan = 7, - k_EAccountTypeChat = 8, - k_EAccountTypeConsoleUser = 9, - k_EAccountTypeAnonUser = 10, - k_EAccountTypeMax = 11, -} -public enum EAppReleaseState -{ - k_EAppReleaseState_Unknown = 0, - k_EAppReleaseState_Unavailable = 1, - k_EAppReleaseState_Prerelease = 2, - k_EAppReleaseState_PreloadOnly = 3, - k_EAppReleaseState_Released = 4, -} -public enum EAppOwnershipFlags -{ - k_EAppOwnershipFlags_None = 0, - k_EAppOwnershipFlags_OwnsLicense = 1, - k_EAppOwnershipFlags_FreeLicense = 2, - k_EAppOwnershipFlags_RegionRestricted = 4, - k_EAppOwnershipFlags_LowViolence = 8, - k_EAppOwnershipFlags_InvalidPlatform = 16, - k_EAppOwnershipFlags_SharedLicense = 32, - k_EAppOwnershipFlags_FreeWeekend = 64, - k_EAppOwnershipFlags_RetailLicense = 128, - k_EAppOwnershipFlags_LicenseLocked = 256, - k_EAppOwnershipFlags_LicensePending = 512, - k_EAppOwnershipFlags_LicenseExpired = 1024, - k_EAppOwnershipFlags_LicensePermanent = 2048, - k_EAppOwnershipFlags_LicenseRecurring = 4096, - k_EAppOwnershipFlags_LicenseCanceled = 8192, - k_EAppOwnershipFlags_AutoGrant = 16384, - k_EAppOwnershipFlags_PendingGift = 32768, - k_EAppOwnershipFlags_RentalNotActivated = 65536, - k_EAppOwnershipFlags_Rental = 131072, -} -public enum EAppType -{ - k_EAppType_Invalid = 0, - k_EAppType_Game = 1, - k_EAppType_Application = 2, - k_EAppType_Tool = 4, - k_EAppType_Demo = 8, - k_EAppType_Media_DEPRECATED = 16, - k_EAppType_DLC = 32, - k_EAppType_Guide = 64, - k_EAppType_Driver = 128, - k_EAppType_Config = 256, - k_EAppType_Hardware = 512, - k_EAppType_Franchise = 1024, - k_EAppType_Video = 2048, - k_EAppType_Plugin = 4096, - k_EAppType_Music = 8192, - k_EAppType_Series = 16384, - k_EAppType_Shortcut = 1073741824, - k_EAppType_DepotOnly = -2147483648, -} -public enum ESteamUserStatType -{ - k_ESteamUserStatTypeINVALID = 0, - k_ESteamUserStatTypeINT = 1, - k_ESteamUserStatTypeFLOAT = 2, - k_ESteamUserStatTypeAVGRATE = 3, - k_ESteamUserStatTypeACHIEVEMENTS = 4, - k_ESteamUserStatTypeGROUPACHIEVEMENTS = 5, - k_ESteamUserStatTypeMAX = 6, -} -public enum EChatEntryType -{ - k_EChatEntryTypeInvalid = 0, - k_EChatEntryTypeChatMsg = 1, - k_EChatEntryTypeTyping = 2, - k_EChatEntryTypeInviteGame = 3, - k_EChatEntryTypeEmote = 4, - k_EChatEntryTypeLeftConversation = 6, - k_EChatEntryTypeEntered = 7, - k_EChatEntryTypeWasKicked = 8, - k_EChatEntryTypeWasBanned = 9, - k_EChatEntryTypeDisconnected = 10, - k_EChatEntryTypeHistoricalChat = 11, - k_EChatEntryTypeLinkBlocked = 14, -} -public enum EChatRoomEnterResponse -{ - k_EChatRoomEnterResponseSuccess = 1, - k_EChatRoomEnterResponseDoesntExist = 2, - k_EChatRoomEnterResponseNotAllowed = 3, - k_EChatRoomEnterResponseFull = 4, - k_EChatRoomEnterResponseError = 5, - k_EChatRoomEnterResponseBanned = 6, - k_EChatRoomEnterResponseLimited = 7, - k_EChatRoomEnterResponseClanDisabled = 8, - k_EChatRoomEnterResponseCommunityBan = 9, - k_EChatRoomEnterResponseMemberBlockedYou = 10, - k_EChatRoomEnterResponseYouBlockedMember = 11, -} -public enum EChatSteamIDInstanceFlags -{ - k_EChatAccountInstanceMask = 4095, - k_EChatInstanceFlagClan = 524288, - k_EChatInstanceFlagLobby = 262144, - k_EChatInstanceFlagMMSLobby = 131072, -} -public enum EMarketingMessageFlags -{ - k_EMarketingMessageFlagsNone = 0, - k_EMarketingMessageFlagsHighPriority = 1, - k_EMarketingMessageFlagsPlatformWindows = 2, - k_EMarketingMessageFlagsPlatformMac = 4, - k_EMarketingMessageFlagsPlatformLinux = 8, - k_EMarketingMessageFlagsPlatformRestrictions = 14, -} -public enum ENotificationPosition -{ - k_EPositionTopLeft = 0, - k_EPositionTopRight = 1, - k_EPositionBottomLeft = 2, - k_EPositionBottomRight = 3, -} -public enum EBroadcastUploadResult -{ - k_EBroadcastUploadResultNone = 0, - k_EBroadcastUploadResultOK = 1, - k_EBroadcastUploadResultInitFailed = 2, - k_EBroadcastUploadResultFrameFailed = 3, - k_EBroadcastUploadResultTimeout = 4, - k_EBroadcastUploadResultBandwidthExceeded = 5, - k_EBroadcastUploadResultLowFPS = 6, - k_EBroadcastUploadResultMissingKeyFrames = 7, - k_EBroadcastUploadResultNoConnection = 8, - k_EBroadcastUploadResultRelayFailed = 9, - k_EBroadcastUploadResultSettingsChanged = 10, - k_EBroadcastUploadResultMissingAudio = 11, - k_EBroadcastUploadResultTooFarBehind = 12, - k_EBroadcastUploadResultTranscodeBehind = 13, -} -public enum ELaunchOptionType -{ - k_ELaunchOptionType_None = 0, - k_ELaunchOptionType_Default = 1, - k_ELaunchOptionType_SafeMode = 2, - k_ELaunchOptionType_Multiplayer = 3, - k_ELaunchOptionType_Config = 4, - k_ELaunchOptionType_OpenVR = 5, - k_ELaunchOptionType_Server = 6, - k_ELaunchOptionType_Editor = 7, - k_ELaunchOptionType_Manual = 8, - k_ELaunchOptionType_Benchmark = 9, - k_ELaunchOptionType_Option1 = 10, - k_ELaunchOptionType_Option2 = 11, - k_ELaunchOptionType_Option3 = 12, - k_ELaunchOptionType_OculusVR = 13, - k_ELaunchOptionType_OpenVROverlay = 14, - k_ELaunchOptionType_OSVR = 15, - k_ELaunchOptionType_Dialog = 1000, -} -public enum EVRHMDType -{ - k_eEVRHMDType_None = -1, - k_eEVRHMDType_Unknown = 0, - k_eEVRHMDType_HTC_Dev = 1, - k_eEVRHMDType_HTC_VivePre = 2, - k_eEVRHMDType_HTC_Vive = 3, - k_eEVRHMDType_HTC_Unknown = 20, - k_eEVRHMDType_Oculus_DK1 = 21, - k_eEVRHMDType_Oculus_DK2 = 22, - k_eEVRHMDType_Oculus_Rift = 23, - k_eEVRHMDType_Oculus_Unknown = 40, -} -public enum EControllerType -{ - k_eControllerType_None = -1, - k_eControllerType_Unknown = 0, - k_eControllerType_UnknownSteamController = 1, - k_eControllerType_SteamController = 2, - k_eControllerType_UnknownNonSteamController = 30, - k_eControllerType_XBox360Controller = 31, - k_eControllerType_XBoxOneController = 32, - k_eControllerType_PS3Controller = 33, - k_eControllerType_PS4Controller = 34, - k_eControllerType_WiiController = 35, - k_eControllerType_AppleController = 36, -} -public enum EFailureType -{ - k_EFailureFlushedCallbackQueue = 0, - k_EFailurePipeFail = 1, -} -public enum EFriendRelationship -{ - k_EFriendRelationshipNone = 0, - k_EFriendRelationshipBlocked = 1, - k_EFriendRelationshipRequestRecipient = 2, - k_EFriendRelationshipFriend = 3, - k_EFriendRelationshipRequestInitiator = 4, - k_EFriendRelationshipIgnored = 5, - k_EFriendRelationshipIgnoredFriend = 6, - k_EFriendRelationshipSuggested_DEPRECATED = 7, - k_EFriendRelationshipMax = 8, -} -public enum EPersonaState -{ - k_EPersonaStateOffline = 0, - k_EPersonaStateOnline = 1, - k_EPersonaStateBusy = 2, - k_EPersonaStateAway = 3, - k_EPersonaStateSnooze = 4, - k_EPersonaStateLookingToTrade = 5, - k_EPersonaStateLookingToPlay = 6, - k_EPersonaStateMax = 7, -} -public enum EFriendFlags -{ - k_EFriendFlagNone = 0, - k_EFriendFlagBlocked = 1, - k_EFriendFlagFriendshipRequested = 2, - k_EFriendFlagImmediate = 4, - k_EFriendFlagClanMember = 8, - k_EFriendFlagOnGameServer = 16, - k_EFriendFlagRequestingFriendship = 128, - k_EFriendFlagRequestingInfo = 256, - k_EFriendFlagIgnored = 512, - k_EFriendFlagIgnoredFriend = 1024, - k_EFriendFlagSuggested = 2048, - k_EFriendFlagChatMember = 4096, - k_EFriendFlagAll = 65535, -} -public enum EUserRestriction -{ - k_nUserRestrictionNone = 0, - k_nUserRestrictionUnknown = 1, - k_nUserRestrictionAnyChat = 2, - k_nUserRestrictionVoiceChat = 4, - k_nUserRestrictionGroupChat = 8, - k_nUserRestrictionRating = 16, - k_nUserRestrictionGameInvites = 32, - k_nUserRestrictionTrading = 64, -} -public enum EOverlayToStoreFlag -{ - k_EOverlayToStoreFlag_None = 0, - k_EOverlayToStoreFlag_AddToCart = 1, - k_EOverlayToStoreFlag_AddToCartAndShow = 2, -} -public enum EPersonaChange -{ - k_EPersonaChangeName = 1, - k_EPersonaChangeStatus = 2, - k_EPersonaChangeComeOnline = 4, - k_EPersonaChangeGoneOffline = 8, - k_EPersonaChangeGamePlayed = 16, - k_EPersonaChangeGameServer = 32, - k_EPersonaChangeAvatar = 64, - k_EPersonaChangeJoinedSource = 128, - k_EPersonaChangeLeftSource = 256, - k_EPersonaChangeRelationshipChanged = 512, - k_EPersonaChangeNameFirstSet = 1024, - k_EPersonaChangeFacebookInfo = 2048, - k_EPersonaChangeNickname = 4096, - k_EPersonaChangeSteamLevel = 8192, -} -public enum ESteamAPICallFailure -{ - k_ESteamAPICallFailureNone = -1, - k_ESteamAPICallFailureSteamGone = 0, - k_ESteamAPICallFailureNetworkFailure = 1, - k_ESteamAPICallFailureInvalidHandle = 2, - k_ESteamAPICallFailureMismatchedCallback = 3, -} -public enum EGamepadTextInputMode -{ - k_EGamepadTextInputModeNormal = 0, - k_EGamepadTextInputModePassword = 1, -} -public enum EGamepadTextInputLineMode -{ - k_EGamepadTextInputLineModeSingleLine = 0, - k_EGamepadTextInputLineModeMultipleLines = 1, -} -public enum ECheckFileSignature -{ - k_ECheckFileSignatureInvalidSignature = 0, - k_ECheckFileSignatureValidSignature = 1, - k_ECheckFileSignatureFileNotFound = 2, - k_ECheckFileSignatureNoSignaturesFoundForThisApp = 3, - k_ECheckFileSignatureNoSignaturesFoundForThisFile = 4, -} -public enum EMatchMakingServerResponse -{ - eServerResponded = 0, - eServerFailedToRespond = 1, - eNoServersListedOnMasterServer = 2, -} -public enum ELobbyType -{ - k_ELobbyTypePrivate = 0, - k_ELobbyTypeFriendsOnly = 1, - k_ELobbyTypePublic = 2, - k_ELobbyTypeInvisible = 3, -} -public enum ELobbyComparison -{ - k_ELobbyComparisonEqualToOrLessThan = -2, - k_ELobbyComparisonLessThan = -1, - k_ELobbyComparisonEqual = 0, - k_ELobbyComparisonGreaterThan = 1, - k_ELobbyComparisonEqualToOrGreaterThan = 2, - k_ELobbyComparisonNotEqual = 3, -} -public enum ELobbyDistanceFilter -{ - k_ELobbyDistanceFilterClose = 0, - k_ELobbyDistanceFilterDefault = 1, - k_ELobbyDistanceFilterFar = 2, - k_ELobbyDistanceFilterWorldwide = 3, -} -public enum EChatMemberStateChange -{ - k_EChatMemberStateChangeEntered = 1, - k_EChatMemberStateChangeLeft = 2, - k_EChatMemberStateChangeDisconnected = 4, - k_EChatMemberStateChangeKicked = 8, - k_EChatMemberStateChangeBanned = 16, -} -public enum ERemoteStoragePlatform -{ - k_ERemoteStoragePlatformNone = 0, - k_ERemoteStoragePlatformWindows = 1, - k_ERemoteStoragePlatformOSX = 2, - k_ERemoteStoragePlatformPS3 = 4, - k_ERemoteStoragePlatformLinux = 8, - k_ERemoteStoragePlatformReserved2 = 16, - k_ERemoteStoragePlatformAll = -1, -} -public enum ERemoteStoragePublishedFileVisibility -{ - k_ERemoteStoragePublishedFileVisibilityPublic = 0, - k_ERemoteStoragePublishedFileVisibilityFriendsOnly = 1, - k_ERemoteStoragePublishedFileVisibilityPrivate = 2, -} -public enum EWorkshopFileType -{ - k_EWorkshopFileTypeFirst = 0, - k_EWorkshopFileTypeCommunity = 0, - k_EWorkshopFileTypeMicrotransaction = 1, - k_EWorkshopFileTypeCollection = 2, - k_EWorkshopFileTypeArt = 3, - k_EWorkshopFileTypeVideo = 4, - k_EWorkshopFileTypeScreenshot = 5, - k_EWorkshopFileTypeGame = 6, - k_EWorkshopFileTypeSoftware = 7, - k_EWorkshopFileTypeConcept = 8, - k_EWorkshopFileTypeWebGuide = 9, - k_EWorkshopFileTypeIntegratedGuide = 10, - k_EWorkshopFileTypeMerch = 11, - k_EWorkshopFileTypeControllerBinding = 12, - k_EWorkshopFileTypeSteamworksAccessInvite = 13, - k_EWorkshopFileTypeSteamVideo = 14, - k_EWorkshopFileTypeGameManagedItem = 15, - k_EWorkshopFileTypeMax = 16, -} -public enum EWorkshopVote -{ - k_EWorkshopVoteUnvoted = 0, - k_EWorkshopVoteFor = 1, - k_EWorkshopVoteAgainst = 2, - k_EWorkshopVoteLater = 3, -} -public enum EWorkshopFileAction -{ - k_EWorkshopFileActionPlayed = 0, - k_EWorkshopFileActionCompleted = 1, -} -public enum EWorkshopEnumerationType -{ - k_EWorkshopEnumerationTypeRankedByVote = 0, - k_EWorkshopEnumerationTypeRecent = 1, - k_EWorkshopEnumerationTypeTrending = 2, - k_EWorkshopEnumerationTypeFavoritesOfFriends = 3, - k_EWorkshopEnumerationTypeVotedByFriends = 4, - k_EWorkshopEnumerationTypeContentByFriends = 5, - k_EWorkshopEnumerationTypeRecentFromFollowedUsers = 6, -} -public enum EWorkshopVideoProvider -{ - k_EWorkshopVideoProviderNone = 0, - k_EWorkshopVideoProviderYoutube = 1, -} -public enum EUGCReadAction -{ - k_EUGCRead_ContinueReadingUntilFinished = 0, - k_EUGCRead_ContinueReading = 1, - k_EUGCRead_Close = 2, -} -public enum ELeaderboardDataRequest -{ - k_ELeaderboardDataRequestGlobal = 0, - k_ELeaderboardDataRequestGlobalAroundUser = 1, - k_ELeaderboardDataRequestFriends = 2, - k_ELeaderboardDataRequestUsers = 3, -} -public enum ELeaderboardSortMethod -{ - k_ELeaderboardSortMethodNone = 0, - k_ELeaderboardSortMethodAscending = 1, - k_ELeaderboardSortMethodDescending = 2, -} -public enum ELeaderboardDisplayType -{ - k_ELeaderboardDisplayTypeNone = 0, - k_ELeaderboardDisplayTypeNumeric = 1, - k_ELeaderboardDisplayTypeTimeSeconds = 2, - k_ELeaderboardDisplayTypeTimeMilliSeconds = 3, -} -public enum ELeaderboardUploadScoreMethod -{ - k_ELeaderboardUploadScoreMethodNone = 0, - k_ELeaderboardUploadScoreMethodKeepBest = 1, - k_ELeaderboardUploadScoreMethodForceUpdate = 2, -} -public enum ERegisterActivationCodeResult -{ - k_ERegisterActivationCodeResultOK = 0, - k_ERegisterActivationCodeResultFail = 1, - k_ERegisterActivationCodeResultAlreadyRegistered = 2, - k_ERegisterActivationCodeResultTimeout = 3, - k_ERegisterActivationCodeAlreadyOwned = 4, -} -public enum EP2PSessionError -{ - k_EP2PSessionErrorNone = 0, - k_EP2PSessionErrorNotRunningApp = 1, - k_EP2PSessionErrorNoRightsToApp = 2, - k_EP2PSessionErrorDestinationNotLoggedIn = 3, - k_EP2PSessionErrorTimeout = 4, - k_EP2PSessionErrorMax = 5, -} -public enum EP2PSend -{ - k_EP2PSendUnreliable = 0, - k_EP2PSendUnreliableNoDelay = 1, - k_EP2PSendReliable = 2, - k_EP2PSendReliableWithBuffering = 3, -} -public enum ESNetSocketState -{ - k_ESNetSocketStateInvalid = 0, - k_ESNetSocketStateConnected = 1, - k_ESNetSocketStateInitiated = 10, - k_ESNetSocketStateLocalCandidatesFound = 11, - k_ESNetSocketStateReceivedRemoteCandidates = 12, - k_ESNetSocketStateChallengeHandshake = 15, - k_ESNetSocketStateDisconnecting = 21, - k_ESNetSocketStateLocalDisconnect = 22, - k_ESNetSocketStateTimeoutDuringConnect = 23, - k_ESNetSocketStateRemoteEndDisconnected = 24, - k_ESNetSocketStateConnectionBroken = 25, -} -public enum ESNetSocketConnectionType -{ - k_ESNetSocketConnectionTypeNotConnected = 0, - k_ESNetSocketConnectionTypeUDP = 1, - k_ESNetSocketConnectionTypeUDPRelay = 2, -} -public enum EVRScreenshotType -{ - k_EVRScreenshotType_None = 0, - k_EVRScreenshotType_Mono = 1, - k_EVRScreenshotType_Stereo = 2, - k_EVRScreenshotType_MonoCubemap = 3, - k_EVRScreenshotType_MonoPanorama = 4, - k_EVRScreenshotType_StereoPanorama = 5, -} -public enum AudioPlayback_Status -{ - AudioPlayback_Undefined = 0, - AudioPlayback_Playing = 1, - AudioPlayback_Paused = 2, - AudioPlayback_Idle = 3, -} -public enum EHTTPMethod -{ - k_EHTTPMethodInvalid = 0, - k_EHTTPMethodGET = 1, - k_EHTTPMethodHEAD = 2, - k_EHTTPMethodPOST = 3, - k_EHTTPMethodPUT = 4, - k_EHTTPMethodDELETE = 5, - k_EHTTPMethodOPTIONS = 6, - k_EHTTPMethodPATCH = 7, -} -public enum EHTTPStatusCode -{ - k_EHTTPStatusCodeInvalid = 0, - k_EHTTPStatusCode100Continue = 100, - k_EHTTPStatusCode101SwitchingProtocols = 101, - k_EHTTPStatusCode200OK = 200, - k_EHTTPStatusCode201Created = 201, - k_EHTTPStatusCode202Accepted = 202, - k_EHTTPStatusCode203NonAuthoritative = 203, - k_EHTTPStatusCode204NoContent = 204, - k_EHTTPStatusCode205ResetContent = 205, - k_EHTTPStatusCode206PartialContent = 206, - k_EHTTPStatusCode300MultipleChoices = 300, - k_EHTTPStatusCode301MovedPermanently = 301, - k_EHTTPStatusCode302Found = 302, - k_EHTTPStatusCode303SeeOther = 303, - k_EHTTPStatusCode304NotModified = 304, - k_EHTTPStatusCode305UseProxy = 305, - k_EHTTPStatusCode307TemporaryRedirect = 307, - k_EHTTPStatusCode400BadRequest = 400, - k_EHTTPStatusCode401Unauthorized = 401, - k_EHTTPStatusCode402PaymentRequired = 402, - k_EHTTPStatusCode403Forbidden = 403, - k_EHTTPStatusCode404NotFound = 404, - k_EHTTPStatusCode405MethodNotAllowed = 405, - k_EHTTPStatusCode406NotAcceptable = 406, - k_EHTTPStatusCode407ProxyAuthRequired = 407, - k_EHTTPStatusCode408RequestTimeout = 408, - k_EHTTPStatusCode409Conflict = 409, - k_EHTTPStatusCode410Gone = 410, - k_EHTTPStatusCode411LengthRequired = 411, - k_EHTTPStatusCode412PreconditionFailed = 412, - k_EHTTPStatusCode413RequestEntityTooLarge = 413, - k_EHTTPStatusCode414RequestURITooLong = 414, - k_EHTTPStatusCode415UnsupportedMediaType = 415, - k_EHTTPStatusCode416RequestedRangeNotSatisfiable = 416, - k_EHTTPStatusCode417ExpectationFailed = 417, - k_EHTTPStatusCode4xxUnknown = 418, - k_EHTTPStatusCode429TooManyRequests = 429, - k_EHTTPStatusCode500InternalServerError = 500, - k_EHTTPStatusCode501NotImplemented = 501, - k_EHTTPStatusCode502BadGateway = 502, - k_EHTTPStatusCode503ServiceUnavailable = 503, - k_EHTTPStatusCode504GatewayTimeout = 504, - k_EHTTPStatusCode505HTTPVersionNotSupported = 505, - k_EHTTPStatusCode5xxUnknown = 599, -} -public enum ESteamControllerPad -{ - k_ESteamControllerPad_Left = 0, - k_ESteamControllerPad_Right = 1, -} -public enum EControllerSource -{ - k_EControllerSource_None = 0, - k_EControllerSource_LeftTrackpad = 1, - k_EControllerSource_RightTrackpad = 2, - k_EControllerSource_Joystick = 3, - k_EControllerSource_ABXY = 4, - k_EControllerSource_Switch = 5, - k_EControllerSource_LeftTrigger = 6, - k_EControllerSource_RightTrigger = 7, - k_EControllerSource_Gyro = 8, - k_EControllerSource_Count = 9, -} -public enum EControllerSourceMode -{ - k_EControllerSourceMode_None = 0, - k_EControllerSourceMode_Dpad = 1, - k_EControllerSourceMode_Buttons = 2, - k_EControllerSourceMode_FourButtons = 3, - k_EControllerSourceMode_AbsoluteMouse = 4, - k_EControllerSourceMode_RelativeMouse = 5, - k_EControllerSourceMode_JoystickMove = 6, - k_EControllerSourceMode_JoystickCamera = 7, - k_EControllerSourceMode_ScrollWheel = 8, - k_EControllerSourceMode_Trigger = 9, - k_EControllerSourceMode_TouchMenu = 10, - k_EControllerSourceMode_MouseJoystick = 11, - k_EControllerSourceMode_MouseRegion = 12, - k_EControllerSourceMode_RadialMenu = 13, - k_EControllerSourceMode_Switches = 14, -} -public enum EControllerActionOrigin -{ - k_EControllerActionOrigin_None = 0, - k_EControllerActionOrigin_A = 1, - k_EControllerActionOrigin_B = 2, - k_EControllerActionOrigin_X = 3, - k_EControllerActionOrigin_Y = 4, - k_EControllerActionOrigin_LeftBumper = 5, - k_EControllerActionOrigin_RightBumper = 6, - k_EControllerActionOrigin_LeftGrip = 7, - k_EControllerActionOrigin_RightGrip = 8, - k_EControllerActionOrigin_Start = 9, - k_EControllerActionOrigin_Back = 10, - k_EControllerActionOrigin_LeftPad_Touch = 11, - k_EControllerActionOrigin_LeftPad_Swipe = 12, - k_EControllerActionOrigin_LeftPad_Click = 13, - k_EControllerActionOrigin_LeftPad_DPadNorth = 14, - k_EControllerActionOrigin_LeftPad_DPadSouth = 15, - k_EControllerActionOrigin_LeftPad_DPadWest = 16, - k_EControllerActionOrigin_LeftPad_DPadEast = 17, - k_EControllerActionOrigin_RightPad_Touch = 18, - k_EControllerActionOrigin_RightPad_Swipe = 19, - k_EControllerActionOrigin_RightPad_Click = 20, - k_EControllerActionOrigin_RightPad_DPadNorth = 21, - k_EControllerActionOrigin_RightPad_DPadSouth = 22, - k_EControllerActionOrigin_RightPad_DPadWest = 23, - k_EControllerActionOrigin_RightPad_DPadEast = 24, - k_EControllerActionOrigin_LeftTrigger_Pull = 25, - k_EControllerActionOrigin_LeftTrigger_Click = 26, - k_EControllerActionOrigin_RightTrigger_Pull = 27, - k_EControllerActionOrigin_RightTrigger_Click = 28, - k_EControllerActionOrigin_LeftStick_Move = 29, - k_EControllerActionOrigin_LeftStick_Click = 30, - k_EControllerActionOrigin_LeftStick_DPadNorth = 31, - k_EControllerActionOrigin_LeftStick_DPadSouth = 32, - k_EControllerActionOrigin_LeftStick_DPadWest = 33, - k_EControllerActionOrigin_LeftStick_DPadEast = 34, - k_EControllerActionOrigin_Gyro_Move = 35, - k_EControllerActionOrigin_Gyro_Pitch = 36, - k_EControllerActionOrigin_Gyro_Yaw = 37, - k_EControllerActionOrigin_Gyro_Roll = 38, - k_EControllerActionOrigin_Count = 39, -} -public enum EControllerActivationType -{ - k_EControllerActivationType_None = 0, - k_EControllerActivationType_FullPress = 1, - k_EControllerActivationType_SoftPress = 2, - k_EControllerActivationType_StartPress = 3, - k_EControllerActivationType_Release = 4, - k_EControllerActivationType_LongPress = 5, - k_EControllerActivationType_DoublePress = 6, - k_EControllerActivationType_Analog = 7, -} -public enum EControllerPressureButton -{ - k_EControllerPressureButton_LeftTrackPad = 0, - k_EControllerPressureButton_RightTrackPad = 1, - k_EControllerPressureButton_LeftBumper = 2, - k_EControllerPressureButton_RightBumper = 3, - k_EControllerPressureButton_LeftGripLower = 4, - k_EControllerPressureButton_RightGripLower = 5, - k_EControllerPressureButton_LeftGripUpper = 6, - k_EControllerPressureButton_RightGripUpper = 7, - k_EControllerPressureButton_Invalid = 8, -} -public enum EControllerActivatorOutputAxis -{ - k_EOutputAxisLeftTrigger = 0, - k_EOutputAxisRightTrigger = 1, - k_EOutputAxisLeftThumbXPos = 2, - k_EOutputAxisLeftThumbXNeg = 3, - k_EOutputAxisLeftThumbYPos = 4, - k_EOutputAxisLeftThumbYNeg = 5, - k_EOutputAxisRightThumbXPos = 6, - k_EOutputAxisRightThumbXNeg = 7, - k_EOutputAxisRightThumbYPos = 8, - k_EOutputAxisRightThumbYNeg = 9, -} -public enum EControllerConfigFeature -{ - k_EControllerConfigFeature_None = 0, - k_EControllerConfigFeature_Gamepad = 1, - k_EControllerConfigFeature_Keyboard = 2, - k_EControllerConfigFeature_Mouse = 3, - k_EControllerConfigFeature_Gyro = 4, - k_EControllerConfigFeature_TouchMenu = 5, - k_EControllerConfigFeature_ModeShift = 6, - k_EControllerConfigFeature_ActionSet = 7, - k_EControllerConfigFeature_Activator = 8, -} -public enum EControllerPopupMenuActivationType -{ - k_EMenuButtonPress = 0, - k_EMenuButtonRelease = 1, - k_EMenuTouchRelease = 2, - k_EMenuTouchAlways = 3, -} -public enum EUGCMatchingUGCType -{ - k_EUGCMatchingUGCType_Items = 0, - k_EUGCMatchingUGCType_Items_Mtx = 1, - k_EUGCMatchingUGCType_Items_ReadyToUse = 2, - k_EUGCMatchingUGCType_Collections = 3, - k_EUGCMatchingUGCType_Artwork = 4, - k_EUGCMatchingUGCType_Videos = 5, - k_EUGCMatchingUGCType_Screenshots = 6, - k_EUGCMatchingUGCType_AllGuides = 7, - k_EUGCMatchingUGCType_WebGuides = 8, - k_EUGCMatchingUGCType_IntegratedGuides = 9, - k_EUGCMatchingUGCType_UsableInGame = 10, - k_EUGCMatchingUGCType_ControllerBindings = 11, - k_EUGCMatchingUGCType_GameManagedItems = 12, - k_EUGCMatchingUGCType_All = -1, -} -public enum EUserUGCList -{ - k_EUserUGCList_Published = 0, - k_EUserUGCList_VotedOn = 1, - k_EUserUGCList_VotedUp = 2, - k_EUserUGCList_VotedDown = 3, - k_EUserUGCList_WillVoteLater = 4, - k_EUserUGCList_Favorited = 5, - k_EUserUGCList_Subscribed = 6, - k_EUserUGCList_UsedOrPlayed = 7, - k_EUserUGCList_Followed = 8, -} -public enum EUserUGCListSortOrder -{ - k_EUserUGCListSortOrder_CreationOrderDesc = 0, - k_EUserUGCListSortOrder_CreationOrderAsc = 1, - k_EUserUGCListSortOrder_TitleAsc = 2, - k_EUserUGCListSortOrder_LastUpdatedDesc = 3, - k_EUserUGCListSortOrder_SubscriptionDateDesc = 4, - k_EUserUGCListSortOrder_VoteScoreDesc = 5, - k_EUserUGCListSortOrder_ForModeration = 6, -} -public enum EUGCQuery -{ - k_EUGCQuery_RankedByVote = 0, - k_EUGCQuery_RankedByPublicationDate = 1, - k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate = 2, - k_EUGCQuery_RankedByTrend = 3, - k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate = 4, - k_EUGCQuery_CreatedByFriendsRankedByPublicationDate = 5, - k_EUGCQuery_RankedByNumTimesReported = 6, - k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate = 7, - k_EUGCQuery_NotYetRated = 8, - k_EUGCQuery_RankedByTotalVotesAsc = 9, - k_EUGCQuery_RankedByVotesUp = 10, - k_EUGCQuery_RankedByTextSearch = 11, - k_EUGCQuery_RankedByTotalUniqueSubscriptions = 12, - k_EUGCQuery_RankedByPlaytimeTrend = 13, - k_EUGCQuery_RankedByTotalPlaytime = 14, - k_EUGCQuery_RankedByAveragePlaytimeTrend = 15, - k_EUGCQuery_RankedByLifetimeAveragePlaytime = 16, - k_EUGCQuery_RankedByPlaytimeSessionsTrend = 17, - k_EUGCQuery_RankedByLifetimePlaytimeSessions = 18, -} -public enum EItemUpdateStatus -{ - k_EItemUpdateStatusInvalid = 0, - k_EItemUpdateStatusPreparingConfig = 1, - k_EItemUpdateStatusPreparingContent = 2, - k_EItemUpdateStatusUploadingContent = 3, - k_EItemUpdateStatusUploadingPreviewFile = 4, - k_EItemUpdateStatusCommittingChanges = 5, -} -public enum EItemState -{ - k_EItemStateNone = 0, - k_EItemStateSubscribed = 1, - k_EItemStateLegacyItem = 2, - k_EItemStateInstalled = 4, - k_EItemStateNeedsUpdate = 8, - k_EItemStateDownloading = 16, - k_EItemStateDownloadPending = 32, -} -public enum EItemStatistic -{ - k_EItemStatistic_NumSubscriptions = 0, - k_EItemStatistic_NumFavorites = 1, - k_EItemStatistic_NumFollowers = 2, - k_EItemStatistic_NumUniqueSubscriptions = 3, - k_EItemStatistic_NumUniqueFavorites = 4, - k_EItemStatistic_NumUniqueFollowers = 5, - k_EItemStatistic_NumUniqueWebsiteViews = 6, - k_EItemStatistic_ReportScore = 7, - k_EItemStatistic_NumSecondsPlayed = 8, - k_EItemStatistic_NumPlaytimeSessions = 9, - k_EItemStatistic_NumComments = 10, -} -public enum EItemPreviewType -{ - k_EItemPreviewType_Image = 0, - k_EItemPreviewType_YouTubeVideo = 1, - k_EItemPreviewType_Sketchfab = 2, - k_EItemPreviewType_EnvironmentMap_HorizontalCross = 3, - k_EItemPreviewType_EnvironmentMap_LatLong = 4, - k_EItemPreviewType_ReservedMax = 255, -} -public enum EHTMLMouseButton -{ - eHTMLMouseButton_Left = 0, - eHTMLMouseButton_Right = 1, - eHTMLMouseButton_Middle = 2, -} -public enum EMouseCursor -{ - dc_user = 0, - dc_none = 1, - dc_arrow = 2, - dc_ibeam = 3, - dc_hourglass = 4, - dc_waitarrow = 5, - dc_crosshair = 6, - dc_up = 7, - dc_sizenw = 8, - dc_sizese = 9, - dc_sizene = 10, - dc_sizesw = 11, - dc_sizew = 12, - dc_sizee = 13, - dc_sizen = 14, - dc_sizes = 15, - dc_sizewe = 16, - dc_sizens = 17, - dc_sizeall = 18, - dc_no = 19, - dc_hand = 20, - dc_blank = 21, - dc_middle_pan = 22, - dc_north_pan = 23, - dc_north_east_pan = 24, - dc_east_pan = 25, - dc_south_east_pan = 26, - dc_south_pan = 27, - dc_south_west_pan = 28, - dc_west_pan = 29, - dc_north_west_pan = 30, - dc_alias = 31, - dc_cell = 32, - dc_colresize = 33, - dc_copycur = 34, - dc_verticaltext = 35, - dc_rowresize = 36, - dc_zoomin = 37, - dc_zoomout = 38, - dc_help = 39, - dc_custom = 40, - dc_last = 41, -} -public enum EHTMLKeyModifiers -{ - k_eHTMLKeyModifier_None = 0, - k_eHTMLKeyModifier_AltDown = 1, - k_eHTMLKeyModifier_CtrlDown = 2, - k_eHTMLKeyModifier_ShiftDown = 4, -} -public enum ESteamItemFlags -{ - k_ESteamItemNoTrade = 1, - k_ESteamItemRemoved = 256, - k_ESteamItemConsumed = 512, -} -[StructLayout(LayoutKind.Sequential)] public struct CSteamID -{ - public SteamID_t m_steamid; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamID_t -{ - public SteamIDComponent_t m_comp; - public ulong m_unAll64Bits; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamIDComponent_t -{ - public uint m_unAccountID; - public uint m_unAccountInstance; - public uint m_EAccountType; - public EUniverse m_EUniverse; -} -[StructLayout(LayoutKind.Sequential)] public struct GameID_t -{ - public uint m_nAppID; - public uint m_nType; - public uint m_nModID; -} -[StructLayout(LayoutKind.Sequential)] public struct ValvePackingSentinel_t -{ - public uint m_u32; - public ulong m_u64; - public char m_u16; - public double m_d; -} -[StructLayout(LayoutKind.Sequential)] public struct CallbackMsg_t -{ - public uint m_hSteamUser; - public int m_iCallback; - public IntPtr m_pubParam; // uint8 * - public int m_cubParam; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamServerConnectFailure_t -{ - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bStillRetrying; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamServersDisconnected_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct ClientGameServerDeny_t -{ - public uint m_uAppID; - public uint m_unGameServerIP; - public char m_usGameServerPort; - public char m_bSecure; - public uint m_uReason; -} -[StructLayout(LayoutKind.Sequential)] public struct ValidateAuthTicketResponse_t -{ - public ulong m_SteamID; - public EAuthSessionResponse m_eAuthSessionResponse; - public ulong m_OwnerSteamID; -} -[StructLayout(LayoutKind.Sequential)] public struct MicroTxnAuthorizationResponse_t -{ - public uint m_unAppID; - public ulong m_ulOrderID; - public byte m_bAuthorized; -} -[StructLayout(LayoutKind.Sequential)] public struct EncryptedAppTicketResponse_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct GetAuthSessionTicketResponse_t -{ - public uint m_hAuthTicket; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct GameWebCallback_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_szURL; //char[256] -} -[StructLayout(LayoutKind.Sequential)] public struct StoreAuthURLResponse_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)] - public string m_szURL; //char[512] -} -[StructLayout(LayoutKind.Sequential)] public struct FriendGameInfo_t -{ - public ulong m_gameID; - public uint m_unGameIP; - public char m_usGamePort; - public char m_usQueryPort; - public ulong m_steamIDLobby; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendSessionStateInfo_t -{ - public uint m_uiOnlineSessionInstances; - public byte m_uiPublishedToFriendsSessionInstance; -} -[StructLayout(LayoutKind.Sequential)] public struct PersonaStateChange_t -{ - public ulong m_ulSteamID; - public int m_nChangeFlags; -} -[StructLayout(LayoutKind.Sequential)] public struct GameOverlayActivated_t -{ - public byte m_bActive; -} -[StructLayout(LayoutKind.Sequential)] public struct GameServerChangeRequested_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string m_rgchServer; //char[64] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string m_rgchPassword; //char[64] -} -[StructLayout(LayoutKind.Sequential)] public struct GameLobbyJoinRequested_t -{ - public ulong m_steamIDLobby; - public ulong m_steamIDFriend; -} -[StructLayout(LayoutKind.Sequential)] public struct AvatarImageLoaded_t -{ - public ulong m_steamID; - public int m_iImage; - public int m_iWide; - public int m_iTall; -} -[StructLayout(LayoutKind.Sequential)] public struct ClanOfficerListResponse_t -{ - public ulong m_steamIDClan; - public int m_cOfficers; - public byte m_bSuccess; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendRichPresenceUpdate_t -{ - public ulong m_steamIDFriend; - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct GameRichPresenceJoinRequested_t -{ - public ulong m_steamIDFriend; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_rgchConnect; //char[256] -} -[StructLayout(LayoutKind.Sequential)] public struct GameConnectedClanChatMsg_t -{ - public ulong m_steamIDClanChat; - public ulong m_steamIDUser; - public int m_iMessageID; -} -[StructLayout(LayoutKind.Sequential)] public struct GameConnectedChatJoin_t -{ - public ulong m_steamIDClanChat; - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct GameConnectedChatLeave_t -{ - public ulong m_steamIDClanChat; - public ulong m_steamIDUser; - [MarshalAs(UnmanagedType.I1)] - public bool m_bKicked; - [MarshalAs(UnmanagedType.I1)] - public bool m_bDropped; -} -[StructLayout(LayoutKind.Sequential)] public struct DownloadClanActivityCountsResult_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bSuccess; -} -[StructLayout(LayoutKind.Sequential)] public struct JoinClanChatRoomCompletionResult_t -{ - public ulong m_steamIDClanChat; - public EChatRoomEnterResponse m_eChatRoomEnterResponse; -} -[StructLayout(LayoutKind.Sequential)] public struct GameConnectedFriendChatMsg_t -{ - public ulong m_steamIDUser; - public int m_iMessageID; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendsGetFollowerCount_t -{ - public EResult m_eResult; - public ulong m_steamID; - public int m_nCount; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendsIsFollowing_t -{ - public EResult m_eResult; - public ulong m_steamID; - [MarshalAs(UnmanagedType.I1)] - public bool m_bIsFollowing; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendsEnumerateFollowingList_t -{ - public EResult m_eResult; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public CSteamID[] m_rgSteamID; //CSteamID[50] - public int m_nResultsReturned; - public int m_nTotalResultCount; -} -[StructLayout(LayoutKind.Sequential)] public struct SetPersonaNameResponse_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bSuccess; - [MarshalAs(UnmanagedType.I1)] - public bool m_bLocalSuccess; - public EResult m_result; -} -[StructLayout(LayoutKind.Sequential)] public struct LowBatteryPower_t -{ - public byte m_nMinutesBatteryLeft; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamAPICallCompleted_t -{ - public ulong m_hAsyncCall; - public int m_iCallback; - public uint m_cubParam; -} -[StructLayout(LayoutKind.Sequential)] public struct CheckFileSignature_t -{ - public ECheckFileSignature m_eCheckFileSignature; -} -[StructLayout(LayoutKind.Sequential)] public struct GamepadTextInputDismissed_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bSubmitted; - public uint m_unSubmittedText; -} -[StructLayout(LayoutKind.Sequential)] public struct MatchMakingKeyValuePair_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_szKey; //char[256] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_szValue; //char[256] -} -[StructLayout(LayoutKind.Sequential)] public struct servernetadr_t -{ - public char m_usConnectionPort; - public char m_usQueryPort; - public uint m_unIP; -} -[StructLayout(LayoutKind.Sequential)] public struct gameserveritem_t -{ - public servernetadr_t m_NetAdr; - public int m_nPing; - [MarshalAs(UnmanagedType.I1)] - public bool m_bHadSuccessfulResponse; - [MarshalAs(UnmanagedType.I1)] - public bool m_bDoNotRefresh; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] - public string m_szGameDir; //char[32] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] - public string m_szMap; //char[32] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string m_szGameDescription; //char[64] - public uint m_nAppID; - public int m_nPlayers; - public int m_nMaxPlayers; - public int m_nBotPlayers; - [MarshalAs(UnmanagedType.I1)] - public bool m_bPassword; - [MarshalAs(UnmanagedType.I1)] - public bool m_bSecure; - public uint m_ulTimeLastPlayed; - public int m_nServerVersion; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string m_szServerName; //char[64] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_szGameTags; //char[128] - public ulong m_steamID; -} -[StructLayout(LayoutKind.Sequential)] public struct FavoritesListChanged_t -{ - public uint m_nIP; - public uint m_nQueryPort; - public uint m_nConnPort; - public uint m_nAppID; - public uint m_nFlags; - [MarshalAs(UnmanagedType.I1)] - public bool m_bAdd; - public uint m_unAccountId; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyInvite_t -{ - public ulong m_ulSteamIDUser; - public ulong m_ulSteamIDLobby; - public ulong m_ulGameID; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyEnter_t -{ - public ulong m_ulSteamIDLobby; - public uint m_rgfChatPermissions; - [MarshalAs(UnmanagedType.I1)] - public bool m_bLocked; - public uint m_EChatRoomEnterResponse; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyDataUpdate_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDMember; - public byte m_bSuccess; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyChatUpdate_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDUserChanged; - public ulong m_ulSteamIDMakingChange; - public uint m_rgfChatMemberStateChange; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyChatMsg_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDUser; - public byte m_eChatEntryType; - public uint m_iChatID; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyGameCreated_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDGameServer; - public uint m_unIP; - public char m_usPort; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyMatchList_t -{ - public uint m_nLobbiesMatching; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyKicked_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDAdmin; - public byte m_bKickedDueToDisconnect; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyCreated_t -{ - public EResult m_eResult; - public ulong m_ulSteamIDLobby; -} -[StructLayout(LayoutKind.Sequential)] public struct PSNGameBootInviteResult_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bGameBootInviteExists; - public ulong m_steamIDLobby; -} -[StructLayout(LayoutKind.Sequential)] public struct FavoritesListAccountsUpdated_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamParamStringArray_t -{ - public IntPtr m_ppStrings; // const char ** - public int m_nNumStrings; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageAppSyncedClient_t -{ - public uint m_nAppID; - public EResult m_eResult; - public int m_unNumDownloads; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageAppSyncedServer_t -{ - public uint m_nAppID; - public EResult m_eResult; - public int m_unNumUploads; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageAppSyncProgress_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_rgchCurrentFile; //char[260] - public uint m_nAppID; - public uint m_uBytesTransferredThisChunk; - public double m_dAppPercentComplete; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUploading; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageAppSyncStatusCheck_t -{ - public uint m_nAppID; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageFileShareResult_t -{ - public EResult m_eResult; - public ulong m_hFile; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_rgchFilename; //char[260] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageDeletePublishedFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumerateUserPublishedFilesResult_t -{ - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageSubscribePublishedFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumerateUserSubscribedFilesResult_t -{ - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U4)] - public uint[] m_rgRTimeSubscribed; //uint[50] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageUnsubscribePublishedFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageUpdatePublishedFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageDownloadUGCResult_t -{ - public EResult m_eResult; - public ulong m_hFile; - public uint m_nAppID; - public int m_nSizeInBytes; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_pchFileName; //char[260] - public ulong m_ulSteamIDOwner; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageGetPublishedFileDetailsResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - public uint m_nCreatorAppID; - public uint m_nConsumerAppID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] - public string m_rgchTitle; //char[129] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8000)] - public string m_rgchDescription; //char[8000] - public ulong m_hFile; - public ulong m_hPreviewFile; - public ulong m_ulSteamIDOwner; - public uint m_rtimeCreated; - public uint m_rtimeUpdated; - public ERemoteStoragePublishedFileVisibility m_eVisibility; - [MarshalAs(UnmanagedType.I1)] - public bool m_bBanned; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1025)] - public string m_rgchTags; //char[1025] - [MarshalAs(UnmanagedType.I1)] - public bool m_bTagsTruncated; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_pchFileName; //char[260] - public int m_nFileSize; - public int m_nPreviewFileSize; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_rgchURL; //char[256] - public EWorkshopFileType m_eFileType; - [MarshalAs(UnmanagedType.I1)] - public bool m_bAcceptedForUse; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumerateWorkshopFilesResult_t -{ - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.R4)] - public float[] m_rgScore; //float[50] - public uint m_nAppId; - public uint m_unStartIndex; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageGetPublishedItemVoteDetailsResult_t -{ - public EResult m_eResult; - public ulong m_unPublishedFileId; - public int m_nVotesFor; - public int m_nVotesAgainst; - public int m_nReports; - public float m_fScore; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishedFileSubscribed_t -{ - public ulong m_nPublishedFileId; - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishedFileUnsubscribed_t -{ - public ulong m_nPublishedFileId; - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishedFileDeleted_t -{ - public ulong m_nPublishedFileId; - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageUpdateUserPublishedItemVoteResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageUserVoteDetails_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - public EWorkshopVote m_eVote; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t -{ - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageSetUserPublishedFileActionResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - public EWorkshopFileAction m_eAction; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t -{ - public EResult m_eResult; - public EWorkshopFileAction m_eAction; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U4)] - public uint[] m_rgRTimeUpdated; //uint[50] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishFileProgress_t -{ - public double m_dPercentFile; - [MarshalAs(UnmanagedType.I1)] - public bool m_bPreview; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishedFileUpdated_t -{ - public ulong m_nPublishedFileId; - public uint m_nAppID; - public ulong m_ulUnused; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageFileWriteAsyncComplete_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageFileReadAsyncComplete_t -{ - public ulong m_hFileReadAsync; - public EResult m_eResult; - public uint m_nOffset; - public uint m_cubRead; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardEntry_t -{ - public ulong m_steamIDUser; - public int m_nGlobalRank; - public int m_nScore; - public int m_cDetails; - public ulong m_hUGC; -} -[StructLayout(LayoutKind.Sequential)] public struct UserStatsReceived_t -{ - public ulong m_nGameID; - public EResult m_eResult; - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct UserStatsStored_t -{ - public ulong m_nGameID; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct UserAchievementStored_t -{ - public ulong m_nGameID; - [MarshalAs(UnmanagedType.I1)] - public bool m_bGroupAchievement; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_rgchAchievementName; //char[128] - public uint m_nCurProgress; - public uint m_nMaxProgress; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardFindResult_t -{ - public ulong m_hSteamLeaderboard; - public byte m_bLeaderboardFound; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardScoresDownloaded_t -{ - public ulong m_hSteamLeaderboard; - public ulong m_hSteamLeaderboardEntries; - public int m_cEntryCount; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardScoreUploaded_t -{ - public byte m_bSuccess; - public ulong m_hSteamLeaderboard; - public int m_nScore; - public byte m_bScoreChanged; - public int m_nGlobalRankNew; - public int m_nGlobalRankPrevious; -} -[StructLayout(LayoutKind.Sequential)] public struct NumberOfCurrentPlayers_t -{ - public byte m_bSuccess; - public int m_cPlayers; -} -[StructLayout(LayoutKind.Sequential)] public struct UserStatsUnloaded_t -{ - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct UserAchievementIconFetched_t -{ - public ulong m_nGameID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_rgchAchievementName; //char[128] - [MarshalAs(UnmanagedType.I1)] - public bool m_bAchieved; - public int m_nIconHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct GlobalAchievementPercentagesReady_t -{ - public ulong m_nGameID; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardUGCSet_t -{ - public EResult m_eResult; - public ulong m_hSteamLeaderboard; -} -[StructLayout(LayoutKind.Sequential)] public struct PS3TrophiesInstalled_t -{ - public ulong m_nGameID; - public EResult m_eResult; - public ulong m_ulRequiredDiskSpace; -} -[StructLayout(LayoutKind.Sequential)] public struct GlobalStatsReceived_t -{ - public ulong m_nGameID; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct DlcInstalled_t -{ - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct RegisterActivationCodeResponse_t -{ - public ERegisterActivationCodeResult m_eResult; - public uint m_unPackageRegistered; -} -[StructLayout(LayoutKind.Sequential)] public struct AppProofOfPurchaseKeyResponse_t -{ - public EResult m_eResult; - public uint m_nAppID; - public uint m_cchKeyLength; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 240)] - public string m_rgchKey; //char[240] -} -[StructLayout(LayoutKind.Sequential)] public struct FileDetailsResult_t -{ - public EResult m_eResult; - public ulong m_ulFileSize; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.U1)] - public byte[] m_FileSHA; //byte[20] - public uint m_unFlags; -} -[StructLayout(LayoutKind.Sequential)] public struct P2PSessionState_t -{ - public byte m_bConnectionActive; - public byte m_bConnecting; - public byte m_eP2PSessionError; - public byte m_bUsingRelay; - public int m_nBytesQueuedForSend; - public int m_nPacketsQueuedForSend; - public uint m_nRemoteIP; - public char m_nRemotePort; -} -[StructLayout(LayoutKind.Sequential)] public struct P2PSessionRequest_t -{ - public ulong m_steamIDRemote; -} -[StructLayout(LayoutKind.Sequential)] public struct P2PSessionConnectFail_t -{ - public ulong m_steamIDRemote; - public byte m_eP2PSessionError; -} -[StructLayout(LayoutKind.Sequential)] public struct SocketStatusCallback_t -{ - public uint m_hSocket; - public uint m_hListenSocket; - public ulong m_steamIDRemote; - public int m_eSNetSocketState; -} -[StructLayout(LayoutKind.Sequential)] public struct ScreenshotReady_t -{ - public uint m_hLocal; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public float m_flNewVolume; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bShuffled; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bLooped; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public float m_flNewVolume; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public int nID; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public int nID; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public int m_nPlayingRepeatStatus; -} -[StructLayout(LayoutKind.Sequential)] public struct HTTPRequestCompleted_t -{ - public uint m_hRequest; - public ulong m_ulContextValue; - [MarshalAs(UnmanagedType.I1)] - public bool m_bRequestSuccessful; - public EHTTPStatusCode m_eStatusCode; - public uint m_unBodySize; -} -[StructLayout(LayoutKind.Sequential)] public struct HTTPRequestHeadersReceived_t -{ - public uint m_hRequest; - public ulong m_ulContextValue; -} -[StructLayout(LayoutKind.Sequential)] public struct HTTPRequestDataReceived_t -{ - public uint m_hRequest; - public ulong m_ulContextValue; - public uint m_cOffset; - public uint m_cBytesReceived; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamUnifiedMessagesSendMethodResult_t -{ - public ulong m_hHandle; - public ulong m_unContext; - public EResult m_eResult; - public uint m_unResponseSize; -} -[StructLayout(LayoutKind.Sequential)] public struct ControllerAnalogActionData_t -{ - public EControllerSourceMode eMode; - public float x; - public float y; - [MarshalAs(UnmanagedType.I1)] - public bool bActive; -} -[StructLayout(LayoutKind.Sequential)] public struct ControllerDigitalActionData_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool bState; - [MarshalAs(UnmanagedType.I1)] - public bool bActive; -} -[StructLayout(LayoutKind.Sequential)] public struct ControllerMotionData_t -{ - public float rotQuatX; - public float rotQuatY; - public float rotQuatZ; - public float rotQuatW; - public float posAccelX; - public float posAccelY; - public float posAccelZ; - public float rotVelX; - public float rotVelY; - public float rotVelZ; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamUGCDetails_t -{ - public ulong m_nPublishedFileId; - public EResult m_eResult; - public EWorkshopFileType m_eFileType; - public uint m_nCreatorAppID; - public uint m_nConsumerAppID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] - public string m_rgchTitle; //char[129] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8000)] - public string m_rgchDescription; //char[8000] - public ulong m_ulSteamIDOwner; - public uint m_rtimeCreated; - public uint m_rtimeUpdated; - public uint m_rtimeAddedToUserList; - public ERemoteStoragePublishedFileVisibility m_eVisibility; - [MarshalAs(UnmanagedType.I1)] - public bool m_bBanned; - [MarshalAs(UnmanagedType.I1)] - public bool m_bAcceptedForUse; - [MarshalAs(UnmanagedType.I1)] - public bool m_bTagsTruncated; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1025)] - public string m_rgchTags; //char[1025] - public ulong m_hFile; - public ulong m_hPreviewFile; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_pchFileName; //char[260] - public int m_nFileSize; - public int m_nPreviewFileSize; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_rgchURL; //char[256] - public uint m_unVotesUp; - public uint m_unVotesDown; - public float m_flScore; - public uint m_unNumChildren; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamUGCQueryCompleted_t -{ - public ulong m_handle; - public EResult m_eResult; - public uint m_unNumResultsReturned; - public uint m_unTotalMatchingResults; - [MarshalAs(UnmanagedType.I1)] - public bool m_bCachedData; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamUGCRequestUGCDetailsResult_t -{ - public SteamUGCDetails_t m_details; - [MarshalAs(UnmanagedType.I1)] - public bool m_bCachedData; -} -[StructLayout(LayoutKind.Sequential)] public struct CreateItemResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; -} -[StructLayout(LayoutKind.Sequential)] public struct SubmitItemUpdateResult_t -{ - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; -} -[StructLayout(LayoutKind.Sequential)] public struct DownloadItemResult_t -{ - public uint m_unAppID; - public ulong m_nPublishedFileId; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct UserFavoriteItemsListChanged_t -{ - public ulong m_nPublishedFileId; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bWasAddRequest; -} -[StructLayout(LayoutKind.Sequential)] public struct SetUserItemVoteResult_t -{ - public ulong m_nPublishedFileId; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVoteUp; -} -[StructLayout(LayoutKind.Sequential)] public struct GetUserItemVoteResult_t -{ - public ulong m_nPublishedFileId; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVotedUp; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVotedDown; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVoteSkipped; -} -[StructLayout(LayoutKind.Sequential)] public struct StartPlaytimeTrackingResult_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct StopPlaytimeTrackingResult_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_BrowserReady_t -{ - public uint unBrowserHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_NeedsPaint_t -{ - public uint unBrowserHandle; - public IntPtr pBGRA; // const char * - public uint unWide; - public uint unTall; - public uint unUpdateX; - public uint unUpdateY; - public uint unUpdateWide; - public uint unUpdateTall; - public uint unScrollX; - public uint unScrollY; - public float flPageScale; - public uint unPageSerial; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_StartRequest_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * - public IntPtr pchTarget; // const char * - public IntPtr pchPostData; // const char * - [MarshalAs(UnmanagedType.I1)] - public bool bIsRedirect; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_CloseBrowser_t -{ - public uint unBrowserHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_URLChanged_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * - public IntPtr pchPostData; // const char * - [MarshalAs(UnmanagedType.I1)] - public bool bIsRedirect; - public IntPtr pchPageTitle; // const char * - [MarshalAs(UnmanagedType.I1)] - public bool bNewNavigation; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_FinishedRequest_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * - public IntPtr pchPageTitle; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_OpenLinkInNewTab_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_ChangedTitle_t -{ - public uint unBrowserHandle; - public IntPtr pchTitle; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_SearchResults_t -{ - public uint unBrowserHandle; - public uint unResults; - public uint unCurrentMatch; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_CanGoBackAndForward_t -{ - public uint unBrowserHandle; - [MarshalAs(UnmanagedType.I1)] - public bool bCanGoBack; - [MarshalAs(UnmanagedType.I1)] - public bool bCanGoForward; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_HorizontalScroll_t -{ - public uint unBrowserHandle; - public uint unScrollMax; - public uint unScrollCurrent; - public float flPageScale; - [MarshalAs(UnmanagedType.I1)] - public bool bVisible; - public uint unPageSize; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_VerticalScroll_t -{ - public uint unBrowserHandle; - public uint unScrollMax; - public uint unScrollCurrent; - public float flPageScale; - [MarshalAs(UnmanagedType.I1)] - public bool bVisible; - public uint unPageSize; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_LinkAtPosition_t -{ - public uint unBrowserHandle; - public uint x; - public uint y; - public IntPtr pchURL; // const char * - [MarshalAs(UnmanagedType.I1)] - public bool bInput; - [MarshalAs(UnmanagedType.I1)] - public bool bLiveLink; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_JSAlert_t -{ - public uint unBrowserHandle; - public IntPtr pchMessage; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_JSConfirm_t -{ - public uint unBrowserHandle; - public IntPtr pchMessage; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_FileOpenDialog_t -{ - public uint unBrowserHandle; - public IntPtr pchTitle; // const char * - public IntPtr pchInitialFile; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_NewWindow_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * - public uint unX; - public uint unY; - public uint unWide; - public uint unTall; - public uint unNewWindow_BrowserHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_SetCursor_t -{ - public uint unBrowserHandle; - public uint eMouseCursor; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_StatusText_t -{ - public uint unBrowserHandle; - public IntPtr pchMsg; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_ShowToolTip_t -{ - public uint unBrowserHandle; - public IntPtr pchMsg; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_UpdateToolTip_t -{ - public uint unBrowserHandle; - public IntPtr pchMsg; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_HideToolTip_t -{ - public uint unBrowserHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamItemDetails_t -{ - public ulong m_itemId; - public int m_iDefinition; - public char m_unQuantity; - public char m_unFlags; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamInventoryResultReady_t -{ - public int m_handle; - public EResult m_result; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamInventoryFullUpdate_t -{ - public int m_handle; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public EBroadcastUploadResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public EResult m_eResult; - public uint m_unVideoAppID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_rgchURL; //char[256] -} -[StructLayout(LayoutKind.Sequential)] public struct CSteamAPIContext -{ - public IntPtr m_pSteamClient; // class ISteamClient * - public IntPtr m_pSteamUser; // class ISteamUser * - public IntPtr m_pSteamFriends; // class ISteamFriends * - public IntPtr m_pSteamUtils; // class ISteamUtils * - public IntPtr m_pSteamMatchmaking; // class ISteamMatchmaking * - public IntPtr m_pSteamUserStats; // class ISteamUserStats * - public IntPtr m_pSteamApps; // class ISteamApps * - public IntPtr m_pSteamMatchmakingServers; // class ISteamMatchmakingServers * - public IntPtr m_pSteamNetworking; // class ISteamNetworking * - public IntPtr m_pSteamRemoteStorage; // class ISteamRemoteStorage * - public IntPtr m_pSteamScreenshots; // class ISteamScreenshots * - public IntPtr m_pSteamHTTP; // class ISteamHTTP * - public IntPtr m_pSteamUnifiedMessages; // class ISteamUnifiedMessages * - public IntPtr m_pController; // class ISteamController * - public IntPtr m_pSteamUGC; // class ISteamUGC * - public IntPtr m_pSteamAppList; // class ISteamAppList * - public IntPtr m_pSteamMusic; // class ISteamMusic * - public IntPtr m_pSteamMusicRemote; // class ISteamMusicRemote * - public IntPtr m_pSteamHTMLSurface; // class ISteamHTMLSurface * - public IntPtr m_pSteamInventory; // class ISteamInventory * - public IntPtr m_pSteamVideo; // class ISteamVideo * -} -[StructLayout(LayoutKind.Sequential)] public struct CCallbackBase -{ - public byte m_nCallbackFlags; - public int m_iCallback; -} -[StructLayout(LayoutKind.Sequential)] public struct CCallResult -{ - public ulong m_hAPICall; - public IntPtr m_pObj; // T * - public IntPtr m_Func; -} -[StructLayout(LayoutKind.Sequential)] public struct CCallback -{ - public IntPtr m_pObj; // T * - public IntPtr m_Func; -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientApprove_t -{ - public ulong m_SteamID; - public ulong m_OwnerSteamID; -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientDeny_t -{ - public ulong m_SteamID; - public EDenyReason m_eDenyReason; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_rgchOptionalText; //char[128] -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientKick_t -{ - public ulong m_SteamID; - public EDenyReason m_eDenyReason; -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientAchievementStatus_t -{ - public ulong m_SteamID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_pchAchievement; //char[128] - [MarshalAs(UnmanagedType.I1)] - public bool m_bUnlocked; -} -[StructLayout(LayoutKind.Sequential)] public struct GSPolicyResponse_t -{ - public byte m_bSecure; -} -[StructLayout(LayoutKind.Sequential)] public struct GSGameplayStats_t -{ - public EResult m_eResult; - public int m_nRank; - public uint m_unTotalConnects; - public uint m_unTotalMinutesPlayed; -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientGroupStatus_t -{ - public ulong m_SteamIDUser; - public ulong m_SteamIDGroup; - [MarshalAs(UnmanagedType.I1)] - public bool m_bMember; - [MarshalAs(UnmanagedType.I1)] - public bool m_bOfficer; -} -[StructLayout(LayoutKind.Sequential)] public struct GSReputation_t -{ - public EResult m_eResult; - public uint m_unReputationScore; - [MarshalAs(UnmanagedType.I1)] - public bool m_bBanned; - public uint m_unBannedIP; - public char m_usBannedPort; - public ulong m_ulBannedGameID; - public uint m_unBanExpires; -} -[StructLayout(LayoutKind.Sequential)] public struct AssociateWithClanResult_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct ComputeNewPlayerCompatibilityResult_t -{ - public EResult m_eResult; - public int m_cPlayersThatDontLikeCandidate; - public int m_cPlayersThatCandidateDoesntLike; - public int m_cClanPlayersThatDontLikeCandidate; - public ulong m_SteamIDCandidate; -} -[StructLayout(LayoutKind.Sequential)] public struct GSStatsReceived_t -{ - public EResult m_eResult; - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct GSStatsStored_t -{ - public EResult m_eResult; - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct GSStatsUnloaded_t -{ - public ulong m_steamIDUser; -} - -public class SteamAPI -{ -public static void Init(uint appId) -{ -SteamAPIInterop.SteamAPI_RestartAppIfNecessary (appId); -SteamAPIInterop.SteamAPI_Init (); -} - -public static void RunCallbacks() -{ -SteamAPIInterop.SteamAPI_RunCallbacks (); -} - -public static void RegisterCallback(IntPtr pCallback, int iCallback) -{ -SteamAPIInterop.SteamAPI_RegisterCallback (pCallback, iCallback); -} - -public static void UnregisterCallback(IntPtr pCallback) -{ -SteamAPIInterop.SteamAPI_UnregisterCallback (pCallback); -} - -public const int k_iSteamUserCallbacks = 100; -public const int k_iSteamGameServerCallbacks = 200; -public const int k_iSteamFriendsCallbacks = 300; -public const int k_iSteamBillingCallbacks = 400; -public const int k_iSteamMatchmakingCallbacks = 500; -public const int k_iSteamContentServerCallbacks = 600; -public const int k_iSteamUtilsCallbacks = 700; -public const int k_iClientFriendsCallbacks = 800; -public const int k_iClientUserCallbacks = 900; -public const int k_iSteamAppsCallbacks = 1000; -public const int k_iSteamUserStatsCallbacks = 1100; -public const int k_iSteamNetworkingCallbacks = 1200; -public const int k_iClientRemoteStorageCallbacks = 1300; -public const int k_iClientDepotBuilderCallbacks = 1400; -public const int k_iSteamGameServerItemsCallbacks = 1500; -public const int k_iClientUtilsCallbacks = 1600; -public const int k_iSteamGameCoordinatorCallbacks = 1700; -public const int k_iSteamGameServerStatsCallbacks = 1800; -public const int k_iSteam2AsyncCallbacks = 1900; -public const int k_iSteamGameStatsCallbacks = 2000; -public const int k_iClientHTTPCallbacks = 2100; -public const int k_iClientScreenshotsCallbacks = 2200; -public const int k_iSteamScreenshotsCallbacks = 2300; -public const int k_iClientAudioCallbacks = 2400; -public const int k_iClientUnifiedMessagesCallbacks = 2500; -public const int k_iSteamStreamLauncherCallbacks = 2600; -public const int k_iClientControllerCallbacks = 2700; -public const int k_iSteamControllerCallbacks = 2800; -public const int k_iClientParentalSettingsCallbacks = 2900; -public const int k_iClientDeviceAuthCallbacks = 3000; -public const int k_iClientNetworkDeviceManagerCallbacks = 3100; -public const int k_iClientMusicCallbacks = 3200; -public const int k_iClientRemoteClientManagerCallbacks = 3300; -public const int k_iClientUGCCallbacks = 3400; -public const int k_iSteamStreamClientCallbacks = 3500; -public const int k_IClientProductBuilderCallbacks = 3600; -public const int k_iClientShortcutsCallbacks = 3700; -public const int k_iClientRemoteControlManagerCallbacks = 3800; -public const int k_iSteamAppListCallbacks = 3900; -public const int k_iSteamMusicCallbacks = 4000; -public const int k_iSteamMusicRemoteCallbacks = 4100; -public const int k_iClientVRCallbacks = 4200; -public const int k_iClientGameNotificationCallbacks = 4300; -public const int k_iSteamGameNotificationCallbacks = 4400; -public const int k_iSteamHTMLSurfaceCallbacks = 4500; -public const int k_iClientVideoCallbacks = 4600; -public const int k_iClientInventoryCallbacks = 4700; -public const int k_iClientBluetoothManagerCallbacks = 4800; -public const int k_cchPersonaNameMax = 128; -public const int k_cwchPersonaNameMax = 32; -public const int k_cchMaxRichPresenceKeys = 20; -public const int k_cchMaxRichPresenceKeyLength = 64; -public const int k_cchMaxRichPresenceValueLength = 256; -public const int k_cchStatNameMax = 128; -public const int k_cchLeaderboardNameMax = 128; -public const int k_cLeaderboardDetailsMax = 64; -public const ulong k_InvalidUnifiedMessageHandle = 0; -public const ulong k_SteamItemInstanceIDInvalid = 0xffffffffffffffff; -public const int k_SteamInventoryResultInvalid = -1; -public static ISteamClient SteamClient() -{ -return new CSteamClient(SteamAPIInterop.SteamClient()); -} - -public static ISteamUser SteamUser() -{ -return new CSteamUser(SteamAPIInterop.SteamUser()); -} - -public static ISteamFriends SteamFriends() -{ -return new CSteamFriends(SteamAPIInterop.SteamFriends()); -} - -public static ISteamUtils SteamUtils() -{ -return new CSteamUtils(SteamAPIInterop.SteamUtils()); -} - -public static ISteamMatchmaking SteamMatchmaking() -{ -return new CSteamMatchmaking(SteamAPIInterop.SteamMatchmaking()); -} - -public static ISteamMatchmakingServerListResponse SteamMatchmakingServerListResponse() -{ -return new CSteamMatchmakingServerListResponse(SteamAPIInterop.SteamMatchmakingServerListResponse()); -} - -public static ISteamMatchmakingPingResponse SteamMatchmakingPingResponse() -{ -return new CSteamMatchmakingPingResponse(SteamAPIInterop.SteamMatchmakingPingResponse()); -} - -public static ISteamMatchmakingPlayersResponse SteamMatchmakingPlayersResponse() -{ -return new CSteamMatchmakingPlayersResponse(SteamAPIInterop.SteamMatchmakingPlayersResponse()); -} - -public static ISteamMatchmakingRulesResponse SteamMatchmakingRulesResponse() -{ -return new CSteamMatchmakingRulesResponse(SteamAPIInterop.SteamMatchmakingRulesResponse()); -} - -public static ISteamMatchmakingServers SteamMatchmakingServers() -{ -return new CSteamMatchmakingServers(SteamAPIInterop.SteamMatchmakingServers()); -} - -public static ISteamRemoteStorage SteamRemoteStorage() -{ -return new CSteamRemoteStorage(SteamAPIInterop.SteamRemoteStorage()); -} - -public static ISteamUserStats SteamUserStats() -{ -return new CSteamUserStats(SteamAPIInterop.SteamUserStats()); -} - -public static ISteamApps SteamApps() -{ -return new CSteamApps(SteamAPIInterop.SteamApps()); -} - -public static ISteamNetworking SteamNetworking() -{ -return new CSteamNetworking(SteamAPIInterop.SteamNetworking()); -} - -public static ISteamScreenshots SteamScreenshots() -{ -return new CSteamScreenshots(SteamAPIInterop.SteamScreenshots()); -} - -public static ISteamMusic SteamMusic() -{ -return new CSteamMusic(SteamAPIInterop.SteamMusic()); -} - -public static ISteamMusicRemote SteamMusicRemote() -{ -return new CSteamMusicRemote(SteamAPIInterop.SteamMusicRemote()); -} - -public static ISteamHTTP SteamHTTP() -{ -return new CSteamHTTP(SteamAPIInterop.SteamHTTP()); -} - -public static ISteamUnifiedMessages SteamUnifiedMessages() -{ -return new CSteamUnifiedMessages(SteamAPIInterop.SteamUnifiedMessages()); -} - -public static ISteamController SteamController() -{ -return new CSteamController(SteamAPIInterop.SteamController()); -} - -public static ISteamUGC SteamUGC() -{ -return new CSteamUGC(SteamAPIInterop.SteamUGC()); -} - -public static ISteamAppList SteamAppList() -{ -return new CSteamAppList(SteamAPIInterop.SteamAppList()); -} - -public static ISteamHTMLSurface SteamHTMLSurface() -{ -return new CSteamHTMLSurface(SteamAPIInterop.SteamHTMLSurface()); -} - -public static ISteamInventory SteamInventory() -{ -return new CSteamInventory(SteamAPIInterop.SteamInventory()); -} - -public static ISteamVideo SteamVideo() -{ -return new CSteamVideo(SteamAPIInterop.SteamVideo()); -} - -public static ISteamGameServer SteamGameServer() -{ -return new CSteamGameServer(SteamAPIInterop.SteamGameServer()); -} - -public static ISteamGameServerStats SteamGameServerStats() -{ -return new CSteamGameServerStats(SteamAPIInterop.SteamGameServerStats()); -} - -} - - - -} - diff --git a/lib/linux/include/steam/steam_gameserver.h b/lib/linux/include/steam/steam_gameserver.h index f2d2847..f3873db 100644 --- a/lib/linux/include/steam/steam_gameserver.h +++ b/lib/linux/include/steam/steam_gameserver.h @@ -22,24 +22,46 @@ enum EServerMode eServerModeAuthenticationAndSecure = 3, // Authenticate users, list on the server list and VAC protect clients }; -// Initialize ISteamGameServer interface object, and set server properties which may not be changed. +/// Pass to SteamGameServer_Init to indicate that the same UDP port will be used for game traffic +/// UDP queries for server browser pings and LAN discovery. In this case, Steam will not open up a +/// socket to handle server browser queries, and you must use ISteamGameServer::HandleIncomingPacket +/// and ISteamGameServer::GetNextOutgoingPacket to handle packets related to server discovery on your socket. +const uint16 STEAMGAMESERVER_QUERY_PORT_SHARED = 0xffff; + +// DEPRECATED: This old name was really confusing. +const uint16 MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE = STEAMGAMESERVER_QUERY_PORT_SHARED; + +// Initialize SteamGameServer client and interface objects, and set server properties which may not be changed. // // After calling this function, you should set any additional server parameters, and then // call ISteamGameServer::LogOnAnonymous() or ISteamGameServer::LogOn() // -// - usSteamPort is the local port used to communicate with the steam servers. -// - usGamePort is the port that clients will connect to for gameplay. +// - unIP will usually be zero. If you are on a machine with multiple IP addresses, you can pass a non-zero +// value here and the relevant sockets will be bound to that IP. This can be used to ensure that +// the IP you desire is the one used in the server browser. +// - usGamePort is the port that clients will connect to for gameplay. You will usually open up your +// own socket bound to this port. // - usQueryPort is the port that will manage server browser related duties and info -// pings from clients. If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE for usQueryPort, then it +// pings from clients. If you pass STEAMGAMESERVER_QUERY_PORT_SHARED for usQueryPort, then it // will use "GameSocketShare" mode, which means that the game is responsible for sending and receiving -// UDP packets for the master server updater. See references to GameSocketShare in isteamgameserver.h. -// - The version string is usually in the form x.x.x.x, and is used by the master server to detect when the +// UDP packets for the master server updater. (See ISteamGameServer::HandleIncomingPacket and +// ISteamGameServer::GetNextOutgoingPacket.) +// - The version string should be in the form x.x.x.x, and is used by the master server to detect when the // server is out of date. (Only servers with the latest version will be listed.) +// +// On success k_ESteamAPIInitResult_OK is returned. Otherwise, if pOutErrMsg is non-NULL, +// it will receive a non-localized message that explains the reason for the failure +inline ESteamAPIInitResult SteamGameServer_InitEx( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString, SteamErrMsg *pOutErrMsg ); -inline bool SteamGameServer_Init( uint32 unIP, uint16 usSteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ); +// This function is included for compatibility with older SDK. +// You can use it if you don't care about decent error handling +inline bool SteamGameServer_Init( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ) +{ + return SteamGameServer_InitEx( unIP, usGamePort, usQueryPort, eServerMode, pchVersionString, NULL ) == k_ESteamAPIInitResult_OK; +} +// Shutdown SteamGameSeverXxx interfaces, log out, and free resources. S_API void SteamGameServer_Shutdown(); -S_API void SteamGameServer_RunCallbacks(); // Most Steam API functions allocate some amount of thread-local memory for // parameter storage. Calling SteamGameServer_ReleaseCurrentThreadMemory() @@ -51,52 +73,6 @@ inline void SteamGameServer_ReleaseCurrentThreadMemory(); S_API bool SteamGameServer_BSecure(); S_API uint64 SteamGameServer_GetSteamID(); -// If your application contains modules which could be built against different Steamworks SDK -// versions, then you should define VERSION_SAFE_STEAM_API_INTERFACES to enforce that you cannot -// use the version-less global accessors. Instead, create and use CSteamGameServerAPIContext -// objects to retrieve interface pointers which are appropriate for your Steamworks SDK headers. -#if !defined( VERSION_SAFE_STEAM_API_INTERFACES ) && !defined( STEAM_API_EXPORTS ) -inline ISteamClient *SteamGameServerClient(); -inline ISteamGameServer *SteamGameServer(); -inline ISteamUtils *SteamGameServerUtils(); -inline ISteamNetworking *SteamGameServerNetworking(); -inline ISteamGameServerStats *SteamGameServerStats(); -inline ISteamHTTP *SteamGameServerHTTP(); -inline ISteamInventory *SteamGameServerInventory(); -inline ISteamUGC *SteamGameServerUGC(); -inline ISteamApps *SteamGameServerApps(); -#endif - -class CSteamGameServerAPIContext -{ -public: - CSteamGameServerAPIContext() { Clear(); } - inline void Clear(); - inline bool Init(); - - ISteamClient *SteamClient() const { return m_pSteamClient; } - ISteamGameServer *SteamGameServer() const { return m_pSteamGameServer; } - ISteamUtils *SteamGameServerUtils() const { return m_pSteamGameServerUtils; } - ISteamNetworking *SteamGameServerNetworking() const { return m_pSteamGameServerNetworking; } - ISteamGameServerStats *SteamGameServerStats() const { return m_pSteamGameServerStats; } - ISteamHTTP *SteamHTTP() const { return m_pSteamHTTP; } - ISteamInventory *SteamInventory() const { return m_pSteamInventory; } - ISteamUGC *SteamUGC() const { return m_pSteamUGC; } - ISteamApps *SteamApps() const { return m_pSteamApps; } - -private: - ISteamClient *m_pSteamClient; - ISteamGameServer *m_pSteamGameServer; - ISteamUtils *m_pSteamGameServerUtils; - ISteamNetworking *m_pSteamGameServerNetworking; - ISteamGameServerStats *m_pSteamGameServerStats; - ISteamHTTP *m_pSteamHTTP; - ISteamInventory *m_pSteamInventory; - ISteamUGC *m_pSteamUGC; - ISteamApps *m_pSteamApps; -}; - - // Older SDKs exported this global pointer, but it is no longer supported. // You should use SteamGameServerClient() or CSteamGameServerAPIContext to // safely access the ISteamClient APIs from your game server application. @@ -106,129 +82,53 @@ private: // is no longer supported. Use SteamGameServer_Init instead. //S_API void S_CALLTYPE SteamGameServer_InitSafe(); - -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -// These macros are similar to the STEAM_CALLBACK_* macros in steam_api.h, but only trigger for gameserver callbacks -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -#define STEAM_GAMESERVER_CALLBACK( thisclass, func, /*callback_type, [deprecated] var*/... ) \ - _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, GS, 3 ), ( this->SetGameserverFlag();, thisclass, func, __VA_ARGS__ ) ) - -#define STEAM_GAMESERVER_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ - CCallbackManual< thisclass, callback_type, true > var; void func( callback_type *pParam ) - - -#define _STEAM_CALLBACK_GS( _, thisclass, func, param, var ) \ - CCallback< thisclass, param, true > var; void func( param *pParam ) - -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -// steamclient.dll private wrapper functions +//============================================================================= // -// The following functions are part of abstracting API access to the steamclient.dll, but should only be used in very specific cases -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -S_API HSteamPipe S_CALLTYPE SteamGameServer_GetHSteamPipe(); -S_API HSteamUser S_CALLTYPE SteamGameServer_GetHSteamUser(); -S_API bool S_CALLTYPE SteamInternal_GameServer_Init( uint32 unIP, uint16 usPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ); - - -#if !defined( VERSION_SAFE_STEAM_API_INTERFACES ) && !defined( STEAM_API_EXPORTS ) -inline CSteamGameServerAPIContext& SteamGameServerInternal_ModuleContext() -{ - // NOTE: declaring "static CSteamAPIConext" creates a large function - // which queries the initialization status of the object. We know that - // it is pointer-aligned and fully memset with zeros, so just alias a - // static buffer of the appropriate size and call it a CSteamAPIContext. - static void* ctx[ sizeof(CSteamGameServerAPIContext)/sizeof(void*) ]; - return *(CSteamGameServerAPIContext*)ctx; -} -#define _STEAMINTERNAL_ACCESSOR_BODY( AccessFunc ) \ - if ( !SteamGameServer_GetHSteamPipe() ) return 0; \ - CSteamGameServerAPIContext &ctx = SteamGameServerInternal_ModuleContext(); \ - if ( !ctx.AccessFunc() ) ctx.Init(); \ - return ctx.AccessFunc(); - -inline ISteamClient *SteamGameServerClient() { _STEAMINTERNAL_ACCESSOR_BODY( SteamClient ) } -inline ISteamGameServer *SteamGameServer() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServer ) } -inline ISteamUtils *SteamGameServerUtils() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServerUtils ) } -inline ISteamNetworking *SteamGameServerNetworking() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServerNetworking ) } -inline ISteamGameServerStats *SteamGameServerStats() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServerStats ) } -inline ISteamHTTP *SteamGameServerHTTP() { _STEAMINTERNAL_ACCESSOR_BODY( SteamHTTP ) } -inline ISteamInventory *SteamGameServerInventory() { _STEAMINTERNAL_ACCESSOR_BODY( SteamInventory ) } -inline ISteamUGC *SteamGameServerUGC() { _STEAMINTERNAL_ACCESSOR_BODY( SteamUGC ) } -inline ISteamApps *SteamGameServerApps() { _STEAMINTERNAL_ACCESSOR_BODY( SteamApps ) } -#undef _STEAMINTERNAL_ACCESSOR_BODY -#endif // !defined( VERSION_SAFE_STEAM_API_INTERFACES ) && !defined( STEAM_API_EXPORTS ) - - -inline void CSteamGameServerAPIContext::Clear() -{ - m_pSteamClient = NULL; - m_pSteamGameServer = NULL; - m_pSteamGameServerUtils = NULL; - m_pSteamGameServerNetworking = NULL; - m_pSteamGameServerStats = NULL; - m_pSteamHTTP = NULL; - m_pSteamInventory = NULL; - m_pSteamUGC = NULL; - m_pSteamApps = NULL; -} +// Internal implementation details below +// +//============================================================================= +#ifndef STEAM_API_EXPORTS // This function must be declared inline in the header so the module using steam_api.dll gets the version names they want. inline bool CSteamGameServerAPIContext::Init() { - HSteamUser hSteamUser = SteamGameServer_GetHSteamUser(); - HSteamPipe hSteamPipe = SteamGameServer_GetHSteamPipe(); - if ( !hSteamPipe ) - return false; - - m_pSteamClient = (ISteamClient*) SteamInternal_CreateInterface( STEAMCLIENT_INTERFACE_VERSION ); + m_pSteamClient = ::SteamGameServerClient(); if ( !m_pSteamClient ) return false; - - m_pSteamGameServer = m_pSteamClient->GetISteamGameServer( hSteamUser, hSteamPipe, STEAMGAMESERVER_INTERFACE_VERSION ); - if ( !m_pSteamGameServer ) - return false; - m_pSteamGameServerUtils = m_pSteamClient->GetISteamUtils( hSteamPipe, STEAMUTILS_INTERFACE_VERSION ); - if ( !m_pSteamGameServerUtils ) - return false; - - m_pSteamGameServerNetworking = m_pSteamClient->GetISteamNetworking( hSteamUser, hSteamPipe, STEAMNETWORKING_INTERFACE_VERSION ); - if ( !m_pSteamGameServerNetworking ) - return false; - - m_pSteamGameServerStats = m_pSteamClient->GetISteamGameServerStats( hSteamUser, hSteamPipe, STEAMGAMESERVERSTATS_INTERFACE_VERSION ); - if ( !m_pSteamGameServerStats ) - return false; - - m_pSteamHTTP = m_pSteamClient->GetISteamHTTP( hSteamUser, hSteamPipe, STEAMHTTP_INTERFACE_VERSION ); - if ( !m_pSteamHTTP ) - return false; - - m_pSteamInventory = m_pSteamClient->GetISteamInventory( hSteamUser, hSteamPipe, STEAMINVENTORY_INTERFACE_VERSION ); - if ( !m_pSteamInventory ) - return false; - - m_pSteamUGC = m_pSteamClient->GetISteamUGC( hSteamUser, hSteamPipe, STEAMUGC_INTERFACE_VERSION ); - if ( !m_pSteamUGC ) - return false; - - m_pSteamApps = m_pSteamClient->GetISteamApps( hSteamUser, hSteamPipe, STEAMAPPS_INTERFACE_VERSION ); - if ( !m_pSteamApps ) + m_pSteamGameServer = ::SteamGameServer(); + m_pSteamGameServerUtils = ::SteamGameServerUtils(); + m_pSteamGameServerNetworking = ::SteamGameServerNetworking(); + m_pSteamGameServerStats = ::SteamGameServerStats(); + m_pSteamHTTP = ::SteamGameServerHTTP(); + m_pSteamInventory = ::SteamGameServerInventory(); + m_pSteamUGC = ::SteamGameServerUGC(); + if ( !m_pSteamGameServer || !m_pSteamGameServerUtils || !m_pSteamGameServerNetworking || !m_pSteamGameServerStats + || !m_pSteamHTTP || !m_pSteamInventory || !m_pSteamUGC ) return false; return true; } +#endif - -inline bool SteamGameServer_Init( uint32 unIP, uint16 usSteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ) +S_API ESteamAPIInitResult S_CALLTYPE SteamInternal_GameServer_Init_V2( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString, const char *pszInternalCheckInterfaceVersions, SteamErrMsg *pOutErrMsg ); +inline ESteamAPIInitResult SteamGameServer_InitEx( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString, SteamErrMsg *pOutErrMsg ) { - if ( !SteamInternal_GameServer_Init( unIP, usSteamPort, usGamePort, usQueryPort, eServerMode, pchVersionString ) ) - return false; + const char *pszInternalCheckInterfaceVersions = + STEAMUTILS_INTERFACE_VERSION "\0" + STEAMNETWORKINGUTILS_INTERFACE_VERSION "\0" - return true; + STEAMGAMESERVER_INTERFACE_VERSION "\0" + STEAMGAMESERVERSTATS_INTERFACE_VERSION "\0" + STEAMHTTP_INTERFACE_VERSION "\0" + STEAMINVENTORY_INTERFACE_VERSION "\0" + STEAMNETWORKING_INTERFACE_VERSION "\0" + STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "\0" + STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "\0" + STEAMUGC_INTERFACE_VERSION "\0" + "\0"; + return SteamInternal_GameServer_Init_V2( unIP, usGamePort, usQueryPort, eServerMode, pchVersionString, pszInternalCheckInterfaceVersions, pOutErrMsg ); } - - inline void SteamGameServer_ReleaseCurrentThreadMemory() { SteamAPI_ReleaseCurrentThreadMemory(); diff --git a/lib/linux/include/steam/steamclientpublic.h b/lib/linux/include/steam/steamclientpublic.h index 8d89376..5cf5d4d 100644 --- a/lib/linux/include/steam/steamclientpublic.h +++ b/lib/linux/include/steam/steamclientpublic.h @@ -1,23 +1,11 @@ //========= Copyright � 1996-2008, Valve LLC, All rights reserved. ============ // -// Purpose: +// Declare common types used by the Steamworks SDK. // //============================================================================= #ifndef STEAMCLIENTPUBLIC_H #define STEAMCLIENTPUBLIC_H -#ifdef _WIN32 -#pragma once -#endif -//lint -save -e1931 -e1927 -e1924 -e613 -e726 - -// This header file defines the interface between the calling application and the code that -// knows how to communicate with the connection manager (CM) from the Steam service - -// This header file is intended to be portable; ideally this 1 header file plus a lib or dll -// is all you need to integrate the client library into some other tree. So please avoid -// including or requiring other header files if possible. This header should only describe the -// interface layer, no need to include anything about the implementation. #include "steamtypes.h" #include "steamuniverse.h" @@ -25,6 +13,7 @@ // General result codes enum EResult { + k_EResultNone = 0, // no result k_EResultOK = 1, // success k_EResultFail = 2, // generic failure k_EResultNoConnection = 3, // no/failed network connection @@ -90,7 +79,7 @@ enum EResult k_EResultAccountLogonDenied = 63, // account login denied due to 2nd factor authentication failure k_EResultCannotUseOldPassword = 64, // The requested new password is not legal k_EResultInvalidLoginAuthCode = 65, // account login denied due to auth code invalid - k_EResultAccountLogonDeniedNoMail = 66, // account login denied due to 2nd factor auth failure - and no mail has been sent + k_EResultAccountLogonDeniedNoMail = 66, // account login denied due to 2nd factor auth failure - and no mail has been sent - partner site specific k_EResultHardwareNotCapableOfIPT = 67, // k_EResultIPTInitError = 68, // k_EResultParentalControlRestricted = 69, // operation failed due to parental control restrictions for current user @@ -131,6 +120,29 @@ enum EResult k_EResultInvalidItemType = 104, // the type of thing we were requested to act on is invalid k_EResultIPBanned = 105, // the ip address has been banned from taking this action k_EResultGSLTExpired = 106, // this token has expired from disuse; can be reset for use + k_EResultInsufficientFunds = 107, // user doesn't have enough wallet funds to complete the action + k_EResultTooManyPending = 108, // There are too many of this thing pending already + k_EResultNoSiteLicensesFound = 109, // No site licenses found + k_EResultWGNetworkSendExceeded = 110, // the WG couldn't send a response because we exceeded max network send size + k_EResultAccountNotFriends = 111, // the user is not mutually friends + k_EResultLimitedUserAccount = 112, // the user is limited + k_EResultCantRemoveItem = 113, // item can't be removed + k_EResultAccountDeleted = 114, // account has been deleted + k_EResultExistingUserCancelledLicense = 115, // A license for this already exists, but cancelled + k_EResultCommunityCooldown = 116, // access is denied because of a community cooldown (probably from support profile data resets) + k_EResultNoLauncherSpecified = 117, // No launcher was specified, but a launcher was needed to choose correct realm for operation. + k_EResultMustAgreeToSSA = 118, // User must agree to china SSA or global SSA before login + k_EResultLauncherMigrated = 119, // The specified launcher type is no longer supported; the user should be directed elsewhere + k_EResultSteamRealmMismatch = 120, // The user's realm does not match the realm of the requested resource + k_EResultInvalidSignature = 121, // signature check did not match + k_EResultParseFailure = 122, // Failed to parse input + k_EResultNoVerifiedPhone = 123, // account does not have a verified phone number + k_EResultInsufficientBattery = 124, // user device doesn't have enough battery charge currently to complete the action + k_EResultChargerRequired = 125, // The operation requires a charger to be plugged in, which wasn't present + k_EResultCachedCredentialInvalid = 126, // Cached credential was invalid - user must reauthenticate + K_EResultPhoneNumberIsVOIP = 127, // The phone number provided is a Voice Over IP number + k_EResultNotSupported = 128, // The data being accessed is not supported by this API + k_EResultFamilySizeLimitExceeded = 129, // Reached the maximum size of the family }; // Error codes for use with the voice functions @@ -198,6 +210,7 @@ enum EAuthSessionResponse k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed = 7, // This ticket has already been used, it is not valid. k_EAuthSessionResponseAuthTicketInvalid = 8, // This ticket is not from a user instance currently connected to steam. k_EAuthSessionResponsePublisherIssuedBan = 9, // The user is banned for this game. The ban came via the web api and not VAC + k_EAuthSessionResponseAuthTicketNetworkIdentityFailure = 10, // The network identity in the ticket does not match the server authenticating the ticket }; // results from UserHasLicenseForApp @@ -230,93 +243,6 @@ enum EAccountType -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -enum EAppReleaseState -{ - k_EAppReleaseState_Unknown = 0, // unknown, required appinfo or license info is missing - k_EAppReleaseState_Unavailable = 1, // even if user 'just' owns it, can see game at all - k_EAppReleaseState_Prerelease = 2, // can be purchased and is visible in games list, nothing else. Common appInfo section released - k_EAppReleaseState_PreloadOnly = 3, // owners can preload app, not play it. AppInfo fully released. - k_EAppReleaseState_Released = 4, // owners can download and play app. -}; - - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -enum EAppOwnershipFlags -{ - k_EAppOwnershipFlags_None = 0x0000, // unknown - k_EAppOwnershipFlags_OwnsLicense = 0x0001, // owns license for this game - k_EAppOwnershipFlags_FreeLicense = 0x0002, // not paid for game - k_EAppOwnershipFlags_RegionRestricted = 0x0004, // owns app, but not allowed to play in current region - k_EAppOwnershipFlags_LowViolence = 0x0008, // only low violence version - k_EAppOwnershipFlags_InvalidPlatform = 0x0010, // app not supported on current platform - k_EAppOwnershipFlags_SharedLicense = 0x0020, // license was granted by authorized local device - k_EAppOwnershipFlags_FreeWeekend = 0x0040, // owned by a free weekend licenses - k_EAppOwnershipFlags_RetailLicense = 0x0080, // has a retail license for game, (CD-Key etc) - k_EAppOwnershipFlags_LicenseLocked = 0x0100, // shared license is locked (in use) by other user - k_EAppOwnershipFlags_LicensePending = 0x0200, // owns app, but transaction is still pending. Can't install or play - k_EAppOwnershipFlags_LicenseExpired = 0x0400, // doesn't own app anymore since license expired - k_EAppOwnershipFlags_LicensePermanent = 0x0800, // permanent license, not borrowed, or guest or freeweekend etc - k_EAppOwnershipFlags_LicenseRecurring = 0x1000, // Recurring license, user is charged periodically - k_EAppOwnershipFlags_LicenseCanceled = 0x2000, // Mark as canceled, but might be still active if recurring - k_EAppOwnershipFlags_AutoGrant = 0x4000, // Ownership is based on any kind of autogrant license - k_EAppOwnershipFlags_PendingGift = 0x8000, // user has pending gift to redeem - k_EAppOwnershipFlags_RentalNotActivated = 0x10000, // Rental hasn't been activated yet - k_EAppOwnershipFlags_Rental = 0x20000, // Is a rental -}; - - -//----------------------------------------------------------------------------- -// Purpose: designed as flags to allow filters masks -//----------------------------------------------------------------------------- -enum EAppType -{ - k_EAppType_Invalid = 0x000, // unknown / invalid - k_EAppType_Game = 0x001, // playable game, default type - k_EAppType_Application = 0x002, // software application - k_EAppType_Tool = 0x004, // SDKs, editors & dedicated servers - k_EAppType_Demo = 0x008, // game demo - k_EAppType_Media_DEPRECATED = 0x010, // legacy - was used for game trailers, which are now just videos on the web - k_EAppType_DLC = 0x020, // down loadable content - k_EAppType_Guide = 0x040, // game guide, PDF etc - k_EAppType_Driver = 0x080, // hardware driver updater (ATI, Razor etc) - k_EAppType_Config = 0x100, // hidden app used to config Steam features (backpack, sales, etc) - k_EAppType_Hardware = 0x200, // a hardware device (Steam Machine, Steam Controller, Steam Link, etc.) - k_EAppType_Franchise = 0x400, // A hub for collections of multiple apps, eg films, series, games - k_EAppType_Video = 0x800, // A video component of either a Film or TVSeries (may be the feature, an episode, preview, making-of, etc) - k_EAppType_Plugin = 0x1000, // Plug-in types for other Apps - k_EAppType_Music = 0x2000, // Music files - k_EAppType_Series = 0x4000, // Container app for video series - - k_EAppType_Shortcut = 0x40000000, // just a shortcut, client side only - k_EAppType_DepotOnly = 0x80000000, // placeholder since depots and apps share the same namespace -}; - - - -//----------------------------------------------------------------------------- -// types of user game stats fields -// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE -//----------------------------------------------------------------------------- -enum ESteamUserStatType -{ - k_ESteamUserStatTypeINVALID = 0, - k_ESteamUserStatTypeINT = 1, - k_ESteamUserStatTypeFLOAT = 2, - // Read as FLOAT, set with count / session length - k_ESteamUserStatTypeAVGRATE = 3, - k_ESteamUserStatTypeACHIEVEMENTS = 4, - k_ESteamUserStatTypeGROUPACHIEVEMENTS = 5, - - // max, for sanity checks - k_ESteamUserStatTypeMAX -}; - - //----------------------------------------------------------------------------- // Purpose: Chat Entry Types (previously was only friend-to-friend message types) //----------------------------------------------------------------------------- @@ -360,18 +286,13 @@ enum EChatRoomEnterResponse // k_EChatRoomEnterResponseNoRankingDataLobby = 12, // No longer used // k_EChatRoomEnterResponseNoRankingDataUser = 13, // No longer used // k_EChatRoomEnterResponseRankOutOfRange = 14, // No longer used + k_EChatRoomEnterResponseRatelimitExceeded = 15, // Join failed - to many join attempts in a very short period of time }; -typedef void (*PFNLegacyKeyRegistration)( const char *pchCDKey, const char *pchInstallPath ); -typedef bool (*PFNLegacyKeyInstalled)(); - const unsigned int k_unSteamAccountIDMask = 0xFFFFFFFF; const unsigned int k_unSteamAccountInstanceMask = 0x000FFFFF; -// we allow 3 simultaneous user account instances right now, 1= desktop, 2 = console, 4 = web, 0 = all -const unsigned int k_unSteamUserDesktopInstance = 1; -const unsigned int k_unSteamUserConsoleInstance = 2; -const unsigned int k_unSteamUserWebInstance = 4; +const unsigned int k_unSteamUserDefaultInstance = 1; // fixed instance for all individual users // Special flags for Chat accounts - they go in the top 8 bits // of the steam ID's "instance", leaving 12 for the actual instances @@ -387,31 +308,12 @@ enum EChatSteamIDInstanceFlags }; -//----------------------------------------------------------------------------- -// Purpose: Marketing message flags that change how a client should handle them -//----------------------------------------------------------------------------- -enum EMarketingMessageFlags -{ - k_EMarketingMessageFlagsNone = 0, - k_EMarketingMessageFlagsHighPriority = 1 << 0, - k_EMarketingMessageFlagsPlatformWindows = 1 << 1, - k_EMarketingMessageFlagsPlatformMac = 1 << 2, - k_EMarketingMessageFlagsPlatformLinux = 1 << 3, - - //aggregate flags - k_EMarketingMessageFlagsPlatformRestrictions = - k_EMarketingMessageFlagsPlatformWindows | - k_EMarketingMessageFlagsPlatformMac | - k_EMarketingMessageFlagsPlatformLinux, -}; - - - //----------------------------------------------------------------------------- // Purpose: Possible positions to tell the overlay to show notifications in //----------------------------------------------------------------------------- enum ENotificationPosition { + k_EPositionInvalid = -1, k_EPositionTopLeft = 0, k_EPositionTopRight = 1, k_EPositionBottomLeft = 2, @@ -438,113 +340,127 @@ enum EBroadcastUploadResult k_EBroadcastUploadResultMissingAudio = 11, // client failed to send audio data k_EBroadcastUploadResultTooFarBehind = 12, // clients was too slow uploading k_EBroadcastUploadResultTranscodeBehind = 13, // server failed to keep up with transcode + k_EBroadcastUploadResultNotAllowedToPlay = 14, // Broadcast does not have permissions to play game + k_EBroadcastUploadResultBusy = 15, // RTMP host to busy to take new broadcast stream, choose another + k_EBroadcastUploadResultBanned = 16, // Account banned from community broadcast + k_EBroadcastUploadResultAlreadyActive = 17, // We already already have an stream running. + k_EBroadcastUploadResultForcedOff = 18, // We explicitly shutting down a broadcast + k_EBroadcastUploadResultAudioBehind = 19, // Audio stream was too far behind video + k_EBroadcastUploadResultShutdown = 20, // Broadcast Server was shut down + k_EBroadcastUploadResultDisconnect = 21, // broadcast uploader TCP disconnected + k_EBroadcastUploadResultVideoInitFailed = 22, // invalid video settings + k_EBroadcastUploadResultAudioInitFailed = 23, // invalid audio settings }; //----------------------------------------------------------------------------- -// Purpose: codes for well defined launch options +// Purpose: Reasons a user may not use the Community Market. +// Used in MarketEligibilityResponse_t. //----------------------------------------------------------------------------- -enum ELaunchOptionType +enum EMarketNotAllowedReasonFlags { - k_ELaunchOptionType_None = 0, // unknown what launch option does - k_ELaunchOptionType_Default = 1, // runs the game, app, whatever in default mode - k_ELaunchOptionType_SafeMode = 2, // runs the game in safe mode - k_ELaunchOptionType_Multiplayer = 3, // runs the game in multiplayer mode - k_ELaunchOptionType_Config = 4, // runs config tool for this game - k_ELaunchOptionType_OpenVR = 5, // runs game in VR mode using OpenVR - k_ELaunchOptionType_Server = 6, // runs dedicated server for this game - k_ELaunchOptionType_Editor = 7, // runs game editor - k_ELaunchOptionType_Manual = 8, // shows game manual - k_ELaunchOptionType_Benchmark = 9, // runs game benchmark - k_ELaunchOptionType_Option1 = 10, // generic run option, uses description field for game name - k_ELaunchOptionType_Option2 = 11, // generic run option, uses description field for game name - k_ELaunchOptionType_Option3 = 12, // generic run option, uses description field for game name - k_ELaunchOptionType_OculusVR = 13, // runs game in VR mode using the Oculus SDK - k_ELaunchOptionType_OpenVROverlay = 14, // runs an OpenVR dashboard overlay - k_ELaunchOptionType_OSVR = 15, // runs game in VR mode using the OSVR SDK + k_EMarketNotAllowedReason_None = 0, + // A back-end call failed or something that might work again on retry + k_EMarketNotAllowedReason_TemporaryFailure = (1 << 0), + + // Disabled account + k_EMarketNotAllowedReason_AccountDisabled = (1 << 1), + + // Locked account + k_EMarketNotAllowedReason_AccountLockedDown = (1 << 2), + + // Limited account (no purchases) + k_EMarketNotAllowedReason_AccountLimited = (1 << 3), + + // The account is banned from trading items + k_EMarketNotAllowedReason_TradeBanned = (1 << 4), + + // Wallet funds aren't tradable because the user has had no purchase + // activity in the last year or has had no purchases prior to last month + k_EMarketNotAllowedReason_AccountNotTrusted = (1 << 5), + + // The user doesn't have Steam Guard enabled + k_EMarketNotAllowedReason_SteamGuardNotEnabled = (1 << 6), + + // The user has Steam Guard, but it hasn't been enabled for the required + // number of days + k_EMarketNotAllowedReason_SteamGuardOnlyRecentlyEnabled = (1 << 7), + + // The user has recently forgotten their password and reset it + k_EMarketNotAllowedReason_RecentPasswordReset = (1 << 8), + + // The user has recently funded his or her wallet with a new payment method + k_EMarketNotAllowedReason_NewPaymentMethod = (1 << 9), + + // An invalid cookie was sent by the user + k_EMarketNotAllowedReason_InvalidCookie = (1 << 10), + + // The user has Steam Guard, but is using a new computer or web browser + k_EMarketNotAllowedReason_UsingNewDevice = (1 << 11), + + // The user has recently refunded a store purchase by his or herself + k_EMarketNotAllowedReason_RecentSelfRefund = (1 << 12), + + // The user has recently funded his or her wallet with a new payment method that cannot be verified + k_EMarketNotAllowedReason_NewPaymentMethodCannotBeVerified = (1 << 13), + + // Not only is the account not trusted, but they have no recent purchases at all + k_EMarketNotAllowedReason_NoRecentPurchases = (1 << 14), + + // User accepted a wallet gift that was recently purchased + k_EMarketNotAllowedReason_AcceptedWalletGift = (1 << 15), +}; + + +// +// describes XP / progress restrictions to apply for games with duration control / +// anti-indulgence enabled for minor Steam China users. +// +// WARNING: DO NOT RENUMBER +enum EDurationControlProgress +{ + k_EDurationControlProgress_Full = 0, // Full progress + k_EDurationControlProgress_Half = 1, // deprecated - XP or persistent rewards should be halved + k_EDurationControlProgress_None = 2, // deprecated - XP or persistent rewards should be stopped + + k_EDurationControl_ExitSoon_3h = 3, // allowed 3h time since 5h gap/break has elapsed, game should exit - steam will terminate the game soon + k_EDurationControl_ExitSoon_5h = 4, // allowed 5h time in calendar day has elapsed, game should exit - steam will terminate the game soon + k_EDurationControl_ExitSoon_Night = 5, // game running after day period, game should exit - steam will terminate the game soon +}; + + +// +// describes which notification timer has expired, for steam china duration control feature +// +// WARNING: DO NOT RENUMBER +enum EDurationControlNotification +{ + k_EDurationControlNotification_None = 0, // just informing you about progress, no notification to show + k_EDurationControlNotification_1Hour = 1, // "you've been playing for N hours" - k_ELaunchOptionType_Dialog = 1000, // show launch options dialog + k_EDurationControlNotification_3Hours = 2, // deprecated - "you've been playing for 3 hours; take a break" + k_EDurationControlNotification_HalfProgress = 3,// deprecated - "your XP / progress is half normal" + k_EDurationControlNotification_NoProgress = 4, // deprecated - "your XP / progress is zero" + + k_EDurationControlNotification_ExitSoon_3h = 5, // allowed 3h time since 5h gap/break has elapsed, game should exit - steam will terminate the game soon + k_EDurationControlNotification_ExitSoon_5h = 6, // allowed 5h time in calendar day has elapsed, game should exit - steam will terminate the game soon + k_EDurationControlNotification_ExitSoon_Night = 7,// game running after day period, game should exit - steam will terminate the game soon }; -//----------------------------------------------------------------------------- -// Purpose: true if this launch option is any of the vr launching types -//----------------------------------------------------------------------------- -static inline bool BIsVRLaunchOptionType( const ELaunchOptionType eType ) +// +// Specifies a game's online state in relation to duration control +// +enum EDurationControlOnlineState { - return eType == k_ELaunchOptionType_OpenVR - || eType == k_ELaunchOptionType_OpenVROverlay - || eType == k_ELaunchOptionType_OculusVR - || eType == k_ELaunchOptionType_OSVR; -} - - -//----------------------------------------------------------------------------- -// Purpose: code points for VR HMD vendors and models -// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN A DATABASE -//----------------------------------------------------------------------------- -enum EVRHMDType -{ - k_eEVRHMDType_None = -1, // unknown vendor and model - - k_eEVRHMDType_Unknown = 0, // unknown vendor and model - - k_eEVRHMDType_HTC_Dev = 1, // original HTC dev kits - k_eEVRHMDType_HTC_VivePre = 2, // htc vive pre - k_eEVRHMDType_HTC_Vive = 3, // htc vive consumer release - - k_eEVRHMDType_HTC_Unknown = 20, // unknown htc hmd - - k_eEVRHMDType_Oculus_DK1 = 21, // Oculus DK1 - k_eEVRHMDType_Oculus_DK2 = 22, // Oculus DK2 - k_eEVRHMDType_Oculus_Rift = 23, // Oculus rift - - k_eEVRHMDType_Oculus_Unknown = 40, // // Oculus unknown HMD + k_EDurationControlOnlineState_Invalid = 0, // nil value + k_EDurationControlOnlineState_Offline = 1, // currently in offline play - single-player, offline co-op, etc. + k_EDurationControlOnlineState_Online = 2, // currently in online play + k_EDurationControlOnlineState_OnlineHighPri = 3, // currently in online play and requests not to be interrupted }; -//----------------------------------------------------------------------------- -// Purpose: Steam Controller models -// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN A DATABASE -//----------------------------------------------------------------------------- -enum EControllerType -{ - k_eControllerType_None = -1, - k_eControllerType_Unknown = 0, - - // Steam Controllers - k_eControllerType_UnknownSteamController = 1, - k_eControllerType_SteamController = 2, - - // Other Controllers - k_eControllerType_UnknownNonSteamController = 30, - k_eControllerType_XBox360Controller = 31, - k_eControllerType_XBoxOneController = 32, - k_eControllerType_PS3Controller = 33, - k_eControllerType_PS4Controller = 34, - k_eControllerType_WiiController = 35, - k_eControllerType_AppleController = 36 -}; - -//----------------------------------------------------------------------------- -// Purpose: true if this is from an Oculus HMD -//----------------------------------------------------------------------------- -static inline bool BIsOculusHMD( EVRHMDType eType ) -{ - return eType == k_eEVRHMDType_Oculus_DK1 || eType == k_eEVRHMDType_Oculus_DK2 || eType == k_eEVRHMDType_Oculus_Rift || eType == k_eEVRHMDType_Oculus_Unknown; -} - - -//----------------------------------------------------------------------------- -// Purpose: true if this is from an Vive HMD -//----------------------------------------------------------------------------- -static inline bool BIsViveHMD( EVRHMDType eType ) -{ - return eType == k_eEVRHMDType_HTC_Dev || eType == k_eEVRHMDType_HTC_VivePre || eType == k_eEVRHMDType_HTC_Vive || eType == k_eEVRHMDType_HTC_Unknown; -} - - #pragma pack( push, 1 ) #define CSTEAMID_DEFINED @@ -588,7 +504,7 @@ public: CSteamID( uint32 unAccountID, unsigned int unAccountInstance, EUniverse eUniverse, EAccountType eAccountType ) { #if defined(_SERVER) && defined(Assert) - Assert( ! ( ( k_EAccountTypeIndividual == eAccountType ) && ( unAccountInstance > k_unSteamUserWebInstance ) ) ); // enforce that for individual accounts, instance is always 1 + Assert( ( k_EAccountTypeIndividual != eAccountType ) || ( unAccountInstance == k_unSteamUserDefaultInstance ) ); // enforce that for individual accounts, instance is always 1 #endif // _SERVER InstancedSet( unAccountID, unAccountInstance, eUniverse, eAccountType ); } @@ -630,8 +546,7 @@ public: } else { - // by default we pick the desktop instance - m_steamid.m_comp.m_unAccountInstance = k_unSteamUserDesktopInstance; + m_steamid.m_comp.m_unAccountInstance = k_unSteamUserDefaultInstance; } } @@ -685,37 +600,6 @@ public: m_steamid.m_comp.m_unAccountInstance = 0; } - -#if defined( INCLUDED_STEAM2_USERID_STRUCTS ) - //----------------------------------------------------------------------------- - // Purpose: Initializes a steam ID from a Steam2 ID structure - // Input: pTSteamGlobalUserID - Steam2 ID to convert - // eUniverse - universe this ID belongs to - //----------------------------------------------------------------------------- - void SetFromSteam2( TSteamGlobalUserID *pTSteamGlobalUserID, EUniverse eUniverse ) - { - m_steamid.m_comp.m_unAccountID = pTSteamGlobalUserID->m_SteamLocalUserID.Split.Low32bits * 2 + - pTSteamGlobalUserID->m_SteamLocalUserID.Split.High32bits; - m_steamid.m_comp.m_EUniverse = eUniverse; // set the universe - m_steamid.m_comp.m_EAccountType = k_EAccountTypeIndividual; // Steam 2 accounts always map to account type of individual - m_steamid.m_comp.m_unAccountInstance = k_unSteamUserDesktopInstance; // Steam2 only knew desktop instances - } - - //----------------------------------------------------------------------------- - // Purpose: Fills out a Steam2 ID structure - // Input: pTSteamGlobalUserID - Steam2 ID to write to - //----------------------------------------------------------------------------- - void ConvertToSteam2( TSteamGlobalUserID *pTSteamGlobalUserID ) const - { - // only individual accounts have any meaning in Steam 2, only they can be mapped - // Assert( m_steamid.m_comp.m_EAccountType == k_EAccountTypeIndividual ); - - pTSteamGlobalUserID->m_SteamInstanceID = 0; - pTSteamGlobalUserID->m_SteamLocalUserID.Split.High32bits = m_steamid.m_comp.m_unAccountID % 2; - pTSteamGlobalUserID->m_SteamLocalUserID.Split.Low32bits = m_steamid.m_comp.m_unAccountID / 2; - } -#endif // defined( INCLUDED_STEAM_COMMON_STEAMCOMMON_H ) - //----------------------------------------------------------------------------- // Purpose: Converts steam ID to its 64-bit representation // Output : 64-bit representation of a Steam ID @@ -867,8 +751,7 @@ public: // simple accessors void SetAccountID( uint32 unAccountID ) { m_steamid.m_comp.m_unAccountID = unAccountID; } void SetAccountInstance( uint32 unInstance ){ m_steamid.m_comp.m_unAccountInstance = unInstance; } - void ClearIndividualInstance() { if ( BIndividualAccount() ) m_steamid.m_comp.m_unAccountInstance = 0; } - bool HasNoIndividualInstance() const { return BIndividualAccount() && (m_steamid.m_comp.m_unAccountInstance==0); } + AccountID_t GetAccountID() const { return m_steamid.m_comp.m_unAccountID; } uint32 GetUnAccountInstance() const { return m_steamid.m_comp.m_unAccountInstance; } EAccountType GetEAccountType() const { return ( EAccountType ) m_steamid.m_comp.m_EAccountType; } @@ -888,7 +771,6 @@ public: // and is preferred when the caller knows it's safe to be strict. // Returns whether the string parsed correctly. bool SetFromStringStrict( const char *pchSteamID, EUniverse eDefaultUniverse ); - bool SetFromSteam2String( const char *pchSteam2ID, EUniverse eUniverse ); inline bool operator==( const CSteamID &val ) const { return m_steamid.m_unAll64Bits == val.m_steamid.m_unAll64Bits; } inline bool operator!=( const CSteamID &val ) const { return !operator==( val ); } @@ -938,7 +820,7 @@ inline bool CSteamID::IsValid() const if ( m_steamid.m_comp.m_EAccountType == k_EAccountTypeIndividual ) { - if ( m_steamid.m_comp.m_unAccountID == 0 || m_steamid.m_comp.m_unAccountInstance > k_unSteamUserWebInstance ) + if ( m_steamid.m_comp.m_unAccountID == 0 || m_steamid.m_comp.m_unAccountInstance != k_unSteamUserDefaultInstance ) return false; } @@ -957,6 +839,41 @@ inline bool CSteamID::IsValid() const return true; } +#if defined( INCLUDED_STEAM2_USERID_STRUCTS ) + +//----------------------------------------------------------------------------- +// Purpose: Initializes a steam ID from a Steam2 ID structure +// Input: pTSteamGlobalUserID - Steam2 ID to convert +// eUniverse - universe this ID belongs to +//----------------------------------------------------------------------------- +inline CSteamID SteamIDFromSteam2UserID( TSteamGlobalUserID *pTSteamGlobalUserID, EUniverse eUniverse ) +{ + uint32 unAccountID = pTSteamGlobalUserID->m_SteamLocalUserID.Split.Low32bits * 2 + + pTSteamGlobalUserID->m_SteamLocalUserID.Split.High32bits; + + return CSteamID( unAccountID, k_unSteamUserDefaultInstance, eUniverse, k_EAccountTypeIndividual ); +} + +bool SteamIDFromSteam2String( const char *pchSteam2ID, EUniverse eUniverse, CSteamID *pSteamIDOut ); + +//----------------------------------------------------------------------------- +// Purpose: Fills out a Steam2 ID structure +// Input: pTSteamGlobalUserID - Steam2 ID to write to +//----------------------------------------------------------------------------- +inline TSteamGlobalUserID SteamIDToSteam2UserID( CSteamID steamID ) +{ + TSteamGlobalUserID steamGlobalUserID; + + steamGlobalUserID.m_SteamInstanceID = 0; + steamGlobalUserID.m_SteamLocalUserID.Split.High32bits = steamID.GetAccountID() % 2; + steamGlobalUserID.m_SteamLocalUserID.Split.Low32bits = steamID.GetAccountID() / 2; + + return steamGlobalUserID; +} + + +#endif + // generic invalid CSteamID #define k_steamIDNil CSteamID() @@ -995,6 +912,14 @@ class CGameID { public: + enum EGameIDType + { + k_EGameIDTypeApp = 0, + k_EGameIDTypeGameMod = 1, + k_EGameIDTypeShortcut = 2, + k_EGameIDTypeP2P = 3, + }; + CGameID() { m_gameID.m_nType = k_EGameIDTypeApp; @@ -1025,12 +950,23 @@ public: m_gameID.m_nAppID = nAppID; } - CGameID( uint32 nAppID, uint32 nModID ) + // Not validating anything .. use IsValid() + explicit CGameID( uint32 nAppID, uint32 nModID, CGameID::EGameIDType nType ) { - m_ulGameID = 0; m_gameID.m_nAppID = nAppID; m_gameID.m_nModID = nModID; - m_gameID.m_nType = k_EGameIDTypeGameMod; + m_gameID.m_nType = nType; + } + + CGameID( const CGameID &that ) + { + m_ulGameID = that.m_ulGameID; + } + + CGameID& operator=( const CGameID & that ) + { + m_ulGameID = that.m_ulGameID; + return *this; } // Hidden functions used only by Steam @@ -1038,72 +974,6 @@ public: const char *Render() const; // render this Game ID to string static const char *Render( uint64 ulGameID ); // static method to render a uint64 representation of a Game ID to a string - // must include checksum_crc.h first to get this functionality -#if defined( CHECKSUM_CRC_H ) - CGameID( uint32 nAppID, const char *pchModPath ) - { - m_ulGameID = 0; - m_gameID.m_nAppID = nAppID; - m_gameID.m_nType = k_EGameIDTypeGameMod; - - char rgchModDir[MAX_PATH]; - V_FileBase( pchModPath, rgchModDir, sizeof( rgchModDir ) ); - CRC32_t crc32; - CRC32_Init( &crc32 ); - CRC32_ProcessBuffer( &crc32, rgchModDir, V_strlen( rgchModDir ) ); - CRC32_Final( &crc32 ); - - // set the high-bit on the mod-id - // reduces crc32 to 31bits, but lets us use the modID as a guaranteed unique - // replacement for appID's - m_gameID.m_nModID = crc32 | (0x80000000); - } - - CGameID( const char *pchExePath, const char *pchAppName ) - { - m_ulGameID = 0; - m_gameID.m_nAppID = k_uAppIdInvalid; - m_gameID.m_nType = k_EGameIDTypeShortcut; - - CRC32_t crc32; - CRC32_Init( &crc32 ); - if ( pchExePath ) - CRC32_ProcessBuffer( &crc32, pchExePath, V_strlen( pchExePath ) ); - if ( pchAppName ) - CRC32_ProcessBuffer( &crc32, pchAppName, V_strlen( pchAppName ) ); - CRC32_Final( &crc32 ); - - // set the high-bit on the mod-id - // reduces crc32 to 31bits, but lets us use the modID as a guaranteed unique - // replacement for appID's - m_gameID.m_nModID = crc32 | (0x80000000); - } - -#if defined( VSTFILEID_H ) - - CGameID( VstFileID vstFileID ) - { - m_ulGameID = 0; - m_gameID.m_nAppID = k_uAppIdInvalid; - m_gameID.m_nType = k_EGameIDTypeP2P; - - CRC32_t crc32; - CRC32_Init( &crc32 ); - const char *pchFileId = vstFileID.Render(); - CRC32_ProcessBuffer( &crc32, pchFileId, V_strlen( pchFileId ) ); - CRC32_Final( &crc32 ); - - // set the high-bit on the mod-id - // reduces crc32 to 31bits, but lets us use the modID as a guaranteed unique - // replacement for appID's - m_gameID.m_nModID = crc32 | (0x80000000); - } - -#endif /* VSTFILEID_H */ - -#endif /* CHECKSUM_CRC_H */ - - uint64 ToUint64() const { return m_ulGameID; @@ -1144,10 +1014,14 @@ public: return m_gameID.m_nModID; } - uint32 AppID() const +#if !defined(VALVE_SHORTCUT_DEBUG) + uint32 AppID( bool = false ) const { return m_gameID.m_nAppID; } +#else + uint32 AppID( bool bShortcutOK = false ) const; +#endif bool operator == ( const CGameID &rhs ) const { @@ -1173,18 +1047,17 @@ public: return m_gameID.m_nAppID != k_uAppIdInvalid; case k_EGameIDTypeGameMod: - return m_gameID.m_nAppID != k_uAppIdInvalid && m_gameID.m_nModID & 0x80000000; + return m_gameID.m_nAppID != k_uAppIdInvalid && (m_gameID.m_nModID & 0x80000000); case k_EGameIDTypeShortcut: - return (m_gameID.m_nModID & 0x80000000) != 0; + return m_gameID.m_nAppID == k_uAppIdInvalid + && (m_gameID.m_nModID & 0x80000000) + && m_gameID.m_nModID >= (5000 | 0x80000000); // k_unMaxExpectedLocalAppId - shortcuts are pushed beyond that range case k_EGameIDTypeP2P: - return m_gameID.m_nAppID == k_uAppIdInvalid && m_gameID.m_nModID & 0x80000000; + return m_gameID.m_nAppID == k_uAppIdInvalid && (m_gameID.m_nModID & 0x80000000); default: -#if defined(Assert) - Assert(false); -#endif return false; } @@ -1195,17 +1068,9 @@ public: m_ulGameID = 0; } - - -private: - - enum EGameIDType - { - k_EGameIDTypeApp = 0, - k_EGameIDTypeGameMod = 1, - k_EGameIDTypeShortcut = 2, - k_EGameIDTypeP2P = 3, - }; +// +// Internal stuff. Use the accessors above if possible +// struct GameID_t { @@ -1225,6 +1090,8 @@ private: uint64 m_ulGameID; GameID_t m_gameID; }; + + friend CGameID GameIDFromAppAndModPath( uint32 nAppID, const char *pchModPath ); }; #pragma pack( pop ) @@ -1232,24 +1099,90 @@ private: const int k_cchGameExtraInfoMax = 64; -//----------------------------------------------------------------------------- -// Constants used for query ports. -//----------------------------------------------------------------------------- - -#define QUERY_PORT_NOT_INITIALIZED 0xFFFF // We haven't asked the GS for this query port's actual value yet. -#define QUERY_PORT_ERROR 0xFFFE // We were unable to get the query port for this server. - - //----------------------------------------------------------------------------- // Purpose: Passed as argument to SteamAPI_UseBreakpadCrashHandler to enable optional callback // just before minidump file is captured after a crash has occurred. (Allows app to append additional comment data to the dump, etc.) //----------------------------------------------------------------------------- typedef void (*PFNPreMinidumpCallback)(void *context); -//----------------------------------------------------------------------------- -// Purpose: Used by ICrashHandler interfaces to reference particular installed crash handlers -//----------------------------------------------------------------------------- -typedef void *BREAKPAD_HANDLE; -#define BREAKPAD_INVALID_HANDLE (BREAKPAD_HANDLE)0 +enum EGameSearchErrorCode_t +{ + k_EGameSearchErrorCode_OK = 1, + k_EGameSearchErrorCode_Failed_Search_Already_In_Progress = 2, + k_EGameSearchErrorCode_Failed_No_Search_In_Progress = 3, + k_EGameSearchErrorCode_Failed_Not_Lobby_Leader = 4, // if not the lobby leader can not call SearchForGameWithLobby + k_EGameSearchErrorCode_Failed_No_Host_Available = 5, // no host is available that matches those search params + k_EGameSearchErrorCode_Failed_Search_Params_Invalid = 6, // search params are invalid + k_EGameSearchErrorCode_Failed_Offline = 7, // offline, could not communicate with server + k_EGameSearchErrorCode_Failed_NotAuthorized = 8, // either the user or the application does not have priveledges to do this + k_EGameSearchErrorCode_Failed_Unknown_Error = 9, // unknown error +}; + +enum EPlayerResult_t +{ + k_EPlayerResultFailedToConnect = 1, // failed to connect after confirming + k_EPlayerResultAbandoned = 2, // quit game without completing it + k_EPlayerResultKicked = 3, // kicked by other players/moderator/server rules + k_EPlayerResultIncomplete = 4, // player stayed to end but game did not conclude successfully ( nofault to player ) + k_EPlayerResultCompleted = 5, // player completed game +}; + + +enum ESteamIPv6ConnectivityProtocol +{ + k_ESteamIPv6ConnectivityProtocol_Invalid = 0, + k_ESteamIPv6ConnectivityProtocol_HTTP = 1, // because a proxy may make this different than other protocols + k_ESteamIPv6ConnectivityProtocol_UDP = 2, // test UDP connectivity. Uses a port that is commonly needed for other Steam stuff. If UDP works, TCP probably works. +}; + +// For the above transport protocol, what do we think the local machine's connectivity to the internet over ipv6 is like +enum ESteamIPv6ConnectivityState +{ + k_ESteamIPv6ConnectivityState_Unknown = 0, // We haven't run a test yet + k_ESteamIPv6ConnectivityState_Good = 1, // We have recently been able to make a request on ipv6 for the given protocol + k_ESteamIPv6ConnectivityState_Bad = 2, // We failed to make a request, either because this machine has no ipv6 address assigned, or it has no upstream connectivity +}; + + +// Define compile time assert macros to let us validate the structure sizes. +#define VALVE_COMPILE_TIME_ASSERT( pred ) typedef char compile_time_assert_type[(pred) ? 1 : -1]; + +#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) +// The 32-bit version of gcc has the alignment requirement for uint64 and double set to +// 4 meaning that even with #pragma pack(8) these types will only be four-byte aligned. +// The 64-bit version of gcc has the alignment requirement for these types set to +// 8 meaning that unless we use #pragma pack(4) our structures will get bigger. +// The 64-bit structure packing has to match the 32-bit structure packing for each platform. +#define VALVE_CALLBACK_PACK_SMALL +#else +#define VALVE_CALLBACK_PACK_LARGE +#endif + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error ??? +#endif + +typedef struct ValvePackingSentinel_t +{ + uint32 m_u32; + uint64 m_u64; + uint16 m_u16; + double m_d; +} ValvePackingSentinel_t; + +#pragma pack( pop ) + + +#if defined(VALVE_CALLBACK_PACK_SMALL) +VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 24 ) +#elif defined(VALVE_CALLBACK_PACK_LARGE) +VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 32 ) +#else +#error ??? +#endif #endif // STEAMCLIENTPUBLIC_H diff --git a/lib/linux/include/steam/steamencryptedappticket.h b/lib/linux/include/steam/steamencryptedappticket.h index 48c63b4..4419a0b 100644 --- a/lib/linux/include/steam/steamencryptedappticket.h +++ b/lib/linux/include/steam/steamencryptedappticket.h @@ -29,4 +29,12 @@ S_API bool SteamEncryptedAppTicket_BUserOwnsAppInTicket( uint8 *rgubTicketDecryp S_API bool SteamEncryptedAppTicket_BUserIsVacBanned( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); -S_API const uint8 *SteamEncryptedAppTicket_GetUserVariableData( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pcubUserData ); \ No newline at end of file +S_API bool SteamEncryptedAppTicket_BGetAppDefinedValue( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pValue ); + +S_API const uint8 *SteamEncryptedAppTicket_GetUserVariableData( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pcubUserData ); + +S_API bool SteamEncryptedAppTicket_BIsTicketSigned( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, const uint8 *pubRSAKey, uint32 cubRSAKey ); + +S_API bool SteamEncryptedAppTicket_BIsLicenseBorrowed( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); + +S_API bool SteamEncryptedAppTicket_BIsLicenseTemporary( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); diff --git a/lib/linux/include/steam/steamhttpenums.h b/lib/linux/include/steam/steamhttpenums.h index d95f195..3592116 100644 --- a/lib/linux/include/steam/steamhttpenums.h +++ b/lib/linux/include/steam/steamhttpenums.h @@ -62,6 +62,7 @@ enum EHTTPStatusCode k_EHTTPStatusCode305UseProxy = 305, //k_EHTTPStatusCode306Unused = 306, (used in old HTTP spec, now unused in 1.1) k_EHTTPStatusCode307TemporaryRedirect = 307, + k_EHTTPStatusCode308PermanentRedirect = 308, // Error codes k_EHTTPStatusCode400BadRequest = 400, @@ -84,6 +85,7 @@ enum EHTTPStatusCode k_EHTTPStatusCode417ExpectationFailed = 417, k_EHTTPStatusCode4xxUnknown = 418, // 418 is reserved, so we'll use it to mean unknown k_EHTTPStatusCode429TooManyRequests = 429, + k_EHTTPStatusCode444ConnectionClosed = 444, // nginx only? // Server error codes k_EHTTPStatusCode500InternalServerError = 500, @@ -95,4 +97,9 @@ enum EHTTPStatusCode k_EHTTPStatusCode5xxUnknown = 599, }; +inline bool BIsHTTPStatusSuccess( EHTTPStatusCode eStatus ) +{ + return eStatus >= 200 && eStatus <= 299; +} + #endif // STEAMHTTPENUMS_H \ No newline at end of file diff --git a/lib/linux/include/steam/steamnetworkingfakeip.h b/lib/linux/include/steam/steamnetworkingfakeip.h new file mode 100644 index 0000000..89ebd10 --- /dev/null +++ b/lib/linux/include/steam/steamnetworkingfakeip.h @@ -0,0 +1,135 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== + +#ifndef STEAMNETWORKINGFAKEIP_H +#define STEAMNETWORKINGFAKEIP_H +#pragma once + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +// It is HIGHLY recommended to limit messages sent via Fake UDP port to this +// value. The purpose of a Fake UDP port is to make porting ordinary ad-hoc UDP +// code easier. Although the real MTU might be higher than this, this particular +// conservative value is chosen so that fragmentation won't be occurring and +// hiding performance problems from you. +constexpr int k_cbSteamNetworkingSocketsFakeUDPPortRecommendedMTU = 1200; + +// Messages larger than this size are not allowed and cannot be sent +// via Fake UDP port. +constexpr int k_cbSteamNetworkingSocketsFakeUDPPortMaxMessageSize = 4096; + +//----------------------------------------------------------------------------- +/// ISteamNetworkingFakeUDPPort +/// +/// Acts like a UDP port, sending and receiving datagrams addressed using +/// FakeIP addresses. +/// +/// See: ISteamNetworkingSockets::CreateFakeUDPPort + +class ISteamNetworkingFakeUDPPort +{ +public: + /// Destroy the object and cleanup any internal connections. + /// Note that this function call is not threadsafe with respect + /// to any other method of this interface. (However, in general + /// all other operations are threadsafe with respect to each other.) + virtual void DestroyFakeUDPPort() = 0; + + /// Send a datagram to the specified FakeIP. + /// + /// See ISteamNetworkingSockets::SendMessageToConnection for the meaning of + /// nSendFlags and possible return codes. + /// + /// Notes: + /// - datagrams larger than the underlying MTU are supported, but + /// reliable messages (k_nSteamNetworkingSend_Reliable) are not supported. + /// - You will usually want to use k_nSteamNetworkingSend_NoNagle + /// - k_EResultBusy is returned if this is a "server" port and the global + /// allocation has not yet completed. + /// - k_EResultIPNotFound will be returned if the address is a local/ephemeral + /// address and no existing connection can be found. This can happen if + /// the remote host contacted us without having a global address, and we + /// assigned them a random local address, and then the session with + /// that host timed out. + /// - When initiating communications, the first messages may be sent + /// via backend signaling, or otherwise delayed, while a route is found. + /// Expect the ping time to fluctuate during this period, and it's possible + /// that messages will be delivered out of order (which is also possible with + /// ordinary UDP). + virtual EResult SendMessageToFakeIP( const SteamNetworkingIPAddr &remoteAddress, const void *pData, uint32 cbData, int nSendFlags ) = 0; + + /// Receive messages on the port. + /// + /// Returns the number of messages returned into your array, up to nMaxMessages. + /// + /// SteamNetworkingMessage_t::m_identity in the returned message(s) will always contain + /// a FakeIP. See ISteamNetworkingUtils::GetRealIdentityForFakeIP. + virtual int ReceiveMessages( SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + /// Schedule the internal connection for a given peer to be cleaned up in a few seconds. + /// + /// Idle connections automatically time out, and so this is not strictly *necessary*, + /// but if you have reason to believe that you are done talking to a given peer for + /// a while, you can call this to speed up the timeout. If any remaining packets are + /// sent or received from the peer, the cleanup is canceled and the usual timeout + /// value is restored. Thus you will usually call this immediately after sending + /// or receiving application-layer "close connection" packets. + virtual void ScheduleCleanup( const SteamNetworkingIPAddr &remoteAddress ) = 0; +}; + +/// Callback struct used to notify when a connection has changed state +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error "Must define VALVE_CALLBACK_PACK_SMALL or VALVE_CALLBACK_PACK_LARGE" +#endif + +/// A struct used to describe a "fake IP" we have been assigned to +/// use as an identifier. This callback is posted when +/// ISteamNetworkingSoockets::BeginAsyncRequestFakeIP completes. +/// See also ISteamNetworkingSockets::GetFakeIP +struct SteamNetworkingFakeIPResult_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 3 }; + + /// Status/result of the allocation request. Possible failure values are: + /// - k_EResultBusy - you called GetFakeIP but the request has not completed. + /// - k_EResultInvalidParam - you called GetFakeIP with an invalid port index + /// - k_EResultLimitExceeded - You asked for too many ports, or made an + /// additional request after one had already succeeded + /// - k_EResultNoMatch - GetFakeIP was called, but no request has been made + /// + /// Note that, with the exception of k_EResultBusy (if you are polling), + /// it is highly recommended to treat all failures as fatal. + EResult m_eResult; + + /// Local identity of the ISteamNetworkingSockets object that made + /// this request and is assigned the IP. This is needed in the callback + /// in the case where there are multiple ISteamNetworkingSockets objects. + /// (E.g. one for the user, and another for the local gameserver). + SteamNetworkingIdentity m_identity; + + /// Fake IPv4 IP address that we have been assigned. NOTE: this + /// IP address is not exclusively ours! Steam tries to avoid sharing + /// IP addresses, but this may not always be possible. The IP address + /// may be currently in use by another host, but with different port(s). + /// The exact same IP:port address may have been used previously. + /// Steam tries to avoid reusing ports until they have not been in use for + /// some time, but this may not always be possible. + uint32 m_unIP; + + /// Port number(s) assigned to us. Only the first entries will contain + /// nonzero values. Entries corresponding to ports beyond what was + /// allocated for you will be zero. + /// + /// (NOTE: At the time of this writing, the maximum number of ports you may + /// request is 4.) + enum { k_nMaxReturnPorts = 8 }; + uint16 m_unPorts[k_nMaxReturnPorts]; +}; + +#pragma pack( pop ) + +#endif // _H diff --git a/lib/linux/include/steam/steamnetworkingtypes.h b/lib/linux/include/steam/steamnetworkingtypes.h new file mode 100644 index 0000000..e8c38df --- /dev/null +++ b/lib/linux/include/steam/steamnetworkingtypes.h @@ -0,0 +1,1870 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Purpose: misc networking utilities +// +//============================================================================= + +#ifndef STEAMNETWORKINGTYPES +#define STEAMNETWORKINGTYPES +#pragma once + +#include <string.h> +#include <stdint.h> +#include "steamtypes.h" +#include "steamclientpublic.h" + +//----------------------------------------------------------------------------- +// SteamNetworkingSockets config. +#if !defined(STEAMNETWORKINGSOCKETS_STANDALONELIB) && !defined(STEAMNETWORKINGSOCKETS_STEAMAPI) + #define STEAMNETWORKINGSOCKETS_STEAMAPI +#endif +//----------------------------------------------------------------------------- + +#ifdef NN_NINTENDO_SDK // We always static link on Nintendo + #define STEAMNETWORKINGSOCKETS_STATIC_LINK +#endif +#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" +#elif defined( STEAMNETWORKINGSOCKETS_FOREXPORT ) + #if defined( _WIN32 ) || defined( __ORBIS__ ) || defined( __PROSPERO__ ) + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __declspec( dllexport ) + #else + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __attribute__((visibility("default"))) + #endif +#else + #ifdef _WIN32 + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __declspec( dllimport ) + #else + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" + #endif +#endif + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error "Must define VALVE_CALLBACK_PACK_SMALL or VALVE_CALLBACK_PACK_LARGE" +#endif + +struct SteamDatagramRelayAuthTicket; +struct SteamDatagramHostedAddress; +struct SteamDatagramGameCoordinatorServerLogin; +struct SteamNetConnectionStatusChangedCallback_t; +struct SteamNetAuthenticationStatus_t; +struct SteamRelayNetworkStatus_t; +struct SteamNetworkingMessagesSessionRequest_t; +struct SteamNetworkingMessagesSessionFailed_t; +struct SteamNetworkingFakeIPResult_t; + +typedef void (*FnSteamNetConnectionStatusChanged)( SteamNetConnectionStatusChangedCallback_t * ); +typedef void (*FnSteamNetAuthenticationStatusChanged)( SteamNetAuthenticationStatus_t * ); +typedef void (*FnSteamRelayNetworkStatusChanged)(SteamRelayNetworkStatus_t *); +typedef void (*FnSteamNetworkingMessagesSessionRequest)(SteamNetworkingMessagesSessionRequest_t *); +typedef void (*FnSteamNetworkingMessagesSessionFailed)(SteamNetworkingMessagesSessionFailed_t *); +typedef void (*FnSteamNetworkingFakeIPResult)(SteamNetworkingFakeIPResult_t *); + +/// Handle used to identify a connection to a remote host. +typedef uint32 HSteamNetConnection; +const HSteamNetConnection k_HSteamNetConnection_Invalid = 0; + +/// Handle used to identify a "listen socket". Unlike traditional +/// Berkeley sockets, a listen socket and a connection are two +/// different abstractions. +typedef uint32 HSteamListenSocket; +const HSteamListenSocket k_HSteamListenSocket_Invalid = 0; + +/// Handle used to identify a poll group, used to query many +/// connections at once efficiently. +typedef uint32 HSteamNetPollGroup; +const HSteamNetPollGroup k_HSteamNetPollGroup_Invalid = 0; + +/// Max length of diagnostic error message +const int k_cchMaxSteamNetworkingErrMsg = 1024; + +/// Used to return English-language diagnostic error messages to caller. +/// (For debugging or spewing to a console, etc. Not intended for UI.) +typedef char SteamNetworkingErrMsg[ k_cchMaxSteamNetworkingErrMsg ]; + +/// Identifier used for a network location point of presence. (E.g. a Valve data center.) +/// Typically you won't need to directly manipulate these. +typedef uint32 SteamNetworkingPOPID; + +/// A local timestamp. You can subtract two timestamps to get the number of elapsed +/// microseconds. This is guaranteed to increase over time during the lifetime +/// of a process, but not globally across runs. You don't need to worry about +/// the value wrapping around. Note that the underlying clock might not actually have +/// microsecond resolution. +typedef int64 SteamNetworkingMicroseconds; + +/// Describe the status of a particular network resource +enum ESteamNetworkingAvailability +{ + // Negative values indicate a problem. + // + // In general, we will not automatically retry unless you take some action that + // depends on of requests this resource, such as querying the status, attempting + // to initiate a connection, receive a connection, etc. If you do not take any + // action at all, we do not automatically retry in the background. + k_ESteamNetworkingAvailability_CannotTry = -102, // A dependent resource is missing, so this service is unavailable. (E.g. we cannot talk to routers because Internet is down or we don't have the network config.) + k_ESteamNetworkingAvailability_Failed = -101, // We have tried for enough time that we would expect to have been successful by now. We have never been successful + k_ESteamNetworkingAvailability_Previously = -100, // We tried and were successful at one time, but now it looks like we have a problem + + k_ESteamNetworkingAvailability_Retrying = -10, // We previously failed and are currently retrying + + // Not a problem, but not ready either + k_ESteamNetworkingAvailability_NeverTried = 1, // We don't know because we haven't ever checked/tried + k_ESteamNetworkingAvailability_Waiting = 2, // We're waiting on a dependent resource to be acquired. (E.g. we cannot obtain a cert until we are logged into Steam. We cannot measure latency to relays until we have the network config.) + k_ESteamNetworkingAvailability_Attempting = 3, // We're actively trying now, but are not yet successful. + + k_ESteamNetworkingAvailability_Current = 100, // Resource is online/available + + + k_ESteamNetworkingAvailability_Unknown = 0, // Internal dummy/sentinel, or value is not applicable in this context + k_ESteamNetworkingAvailability__Force32bit = 0x7fffffff, +}; + +// +// Describing network hosts +// + +/// Different methods of describing the identity of a network host +enum ESteamNetworkingIdentityType +{ + // Dummy/empty/invalid. + // Please note that if we parse a string that we don't recognize + // but that appears reasonable, we will NOT use this type. Instead + // we'll use k_ESteamNetworkingIdentityType_UnknownType. + k_ESteamNetworkingIdentityType_Invalid = 0, + + // + // Basic platform-specific identifiers. + // + k_ESteamNetworkingIdentityType_SteamID = 16, // 64-bit CSteamID + k_ESteamNetworkingIdentityType_XboxPairwiseID = 17, // Publisher-specific user identity, as string + k_ESteamNetworkingIdentityType_SonyPSN = 18, // 64-bit ID + k_ESteamNetworkingIdentityType_GoogleStadia = 19, // 64-bit ID + //k_ESteamNetworkingIdentityType_NintendoNetworkServiceAccount, + //k_ESteamNetworkingIdentityType_EpicGameStore + //k_ESteamNetworkingIdentityType_WeGame + + // + // Special identifiers. + // + + // Use their IP address (and port) as their "identity". + // These types of identities are always unauthenticated. + // They are useful for porting plain sockets code, and other + // situations where you don't care about authentication. In this + // case, the local identity will be "localhost", + // and the remote address will be their network address. + // + // We use the same type for either IPv4 or IPv6, and + // the address is always store as IPv6. We use IPv4 + // mapped addresses to handle IPv4. + k_ESteamNetworkingIdentityType_IPAddress = 1, + + // Generic string/binary blobs. It's up to your app to interpret this. + // This library can tell you if the remote host presented a certificate + // signed by somebody you have chosen to trust, with this identity on it. + // It's up to you to ultimately decide what this identity means. + k_ESteamNetworkingIdentityType_GenericString = 2, + k_ESteamNetworkingIdentityType_GenericBytes = 3, + + // This identity type is used when we parse a string that looks like is a + // valid identity, just of a kind that we don't recognize. In this case, we + // can often still communicate with the peer! Allowing such identities + // for types we do not recognize useful is very useful for forward + // compatibility. + k_ESteamNetworkingIdentityType_UnknownType = 4, + + // Make sure this enum is stored in an int. + k_ESteamNetworkingIdentityType__Force32bit = 0x7fffffff, +}; + +/// "Fake IPs" are assigned to hosts, to make it easier to interface with +/// older code that assumed all hosts will have an IPv4 address +enum ESteamNetworkingFakeIPType +{ + k_ESteamNetworkingFakeIPType_Invalid, // Error, argument was not even an IP address, etc. + k_ESteamNetworkingFakeIPType_NotFake, // Argument was a valid IP, but was not from the reserved "fake" range + k_ESteamNetworkingFakeIPType_GlobalIPv4, // Globally unique (for a given app) IPv4 address. Address space managed by Steam + k_ESteamNetworkingFakeIPType_LocalIPv4, // Locally unique IPv4 address. Address space managed by the local process. For internal use only; should not be shared! + + k_ESteamNetworkingFakeIPType__Force32Bit = 0x7fffffff +}; + +#pragma pack(push,1) + +/// Store an IP and port. IPv6 is always used; IPv4 is represented using +/// "IPv4-mapped" addresses: IPv4 aa.bb.cc.dd => IPv6 ::ffff:aabb:ccdd +/// (RFC 4291 section 2.5.5.2.) +struct SteamNetworkingIPAddr +{ + void Clear(); // Set everything to zero. E.g. [::]:0 + bool IsIPv6AllZeros() const; // Return true if the IP is ::0. (Doesn't check port.) + void SetIPv6( const uint8 *ipv6, uint16 nPort ); // Set IPv6 address. IP is interpreted as bytes, so there are no endian issues. (Same as inaddr_in6.) The IP can be a mapped IPv4 address + void SetIPv4( uint32 nIP, uint16 nPort ); // Sets to IPv4 mapped address. IP and port are in host byte order. + bool IsIPv4() const; // Return true if IP is mapped IPv4 + uint32 GetIPv4() const; // Returns IP in host byte order (e.g. aa.bb.cc.dd as 0xaabbccdd). Returns 0 if IP is not mapped IPv4. + void SetIPv6LocalHost( uint16 nPort = 0); // Set to the IPv6 localhost address ::1, and the specified port. + bool IsLocalHost() const; // Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + + // Max length of the buffer needed to hold IP formatted using ToString, including '\0' + // ([0123:4567:89ab:cdef:0123:4567:89ab:cdef]:12345) + enum { k_cchMaxString = 48 }; + + /// Print to a string, with or without the port. Mapped IPv4 addresses are printed + /// as dotted decimal (12.34.56.78), otherwise this will print the canonical + /// form according to RFC5952. If you include the port, IPv6 will be surrounded by + /// brackets, e.g. [::1:2]:80. Your buffer should be at least k_cchMaxString bytes + /// to avoid truncation + /// + /// See also SteamNetworkingIdentityRender + inline void ToString( char *buf, size_t cbBuf, bool bWithPort ) const; + + /// Parse an IP address and optional port. If a port is not present, it is set to 0. + /// (This means that you cannot tell if a zero port was explicitly specified.) + inline bool ParseString( const char *pszStr ); + + /// RFC4038, section 4.2 + struct IPv4MappedAddress { + uint64 m_8zeros; + uint16 m_0000; + uint16 m_ffff; + uint8 m_ip[ 4 ]; // NOTE: As bytes, i.e. network byte order + }; + + union + { + uint8 m_ipv6[ 16 ]; + IPv4MappedAddress m_ipv4; + }; + uint16 m_port; // Host byte order + + /// See if two addresses are identical + bool operator==(const SteamNetworkingIPAddr &x ) const; + + /// Classify address as FakeIP. This function never returns + /// k_ESteamNetworkingFakeIPType_Invalid. + ESteamNetworkingFakeIPType GetFakeIPType() const; + + /// Return true if we are a FakeIP + bool IsFakeIP() const { return GetFakeIPType() > k_ESteamNetworkingFakeIPType_NotFake; } +}; + +/// An abstract way to represent the identity of a network host. All identities can +/// be represented as simple string. Furthermore, this string representation is actually +/// used on the wire in several places, even though it is less efficient, in order to +/// facilitate forward compatibility. (Old client code can handle an identity type that +/// it doesn't understand.) +struct SteamNetworkingIdentity +{ + /// Type of identity. + ESteamNetworkingIdentityType m_eType; + + // + // Get/Set in various formats. + // + + void Clear(); + bool IsInvalid() const; // Return true if we are the invalid type. Does not make any other validity checks (e.g. is SteamID actually valid) + + void SetSteamID( CSteamID steamID ); + CSteamID GetSteamID() const; // Return black CSteamID (!IsValid()) if identity is not a SteamID + void SetSteamID64( uint64 steamID ); // Takes SteamID as raw 64-bit number + uint64 GetSteamID64() const; // Returns 0 if identity is not SteamID + + bool SetXboxPairwiseID( const char *pszString ); // Returns false if invalid length + const char *GetXboxPairwiseID() const; // Returns nullptr if not Xbox ID + + void SetPSNID( uint64 id ); + uint64 GetPSNID() const; // Returns 0 if not PSN + + void SetStadiaID( uint64 id ); + uint64 GetStadiaID() const; // Returns 0 if not Stadia + + void SetIPAddr( const SteamNetworkingIPAddr &addr ); // Set to specified IP:port + const SteamNetworkingIPAddr *GetIPAddr() const; // returns null if we are not an IP address. + void SetIPv4Addr( uint32 nIPv4, uint16 nPort ); // Set to specified IPv4:port + uint32 GetIPv4() const; // returns 0 if we are not an IPv4 address. + + ESteamNetworkingFakeIPType GetFakeIPType() const; + bool IsFakeIP() const { return GetFakeIPType() > k_ESteamNetworkingFakeIPType_NotFake; } + + // "localhost" is equivalent for many purposes to "anonymous." Our remote + // will identify us by the network address we use. + void SetLocalHost(); // Set to localhost. (We always use IPv6 ::1 for this, not 127.0.0.1) + bool IsLocalHost() const; // Return true if this identity is localhost. + + bool SetGenericString( const char *pszString ); // Returns false if invalid length + const char *GetGenericString() const; // Returns nullptr if not generic string type + + bool SetGenericBytes( const void *data, size_t cbLen ); // Returns false if invalid size. + const uint8 *GetGenericBytes( int &cbLen ) const; // Returns null if not generic bytes type + + /// See if two identities are identical + bool operator==(const SteamNetworkingIdentity &x ) const; + + /// Print to a human-readable string. This is suitable for debug messages + /// or any other time you need to encode the identity as a string. It has a + /// URL-like format (type:<type-data>). Your buffer should be at least + /// k_cchMaxString bytes big to avoid truncation. + /// + /// See also SteamNetworkingIPAddrRender + void ToString( char *buf, size_t cbBuf ) const; + + /// Parse back a string that was generated using ToString. If we don't understand the + /// string, but it looks "reasonable" (it matches the pattern type:<type-data> and doesn't + /// have any funky characters, etc), then we will return true, and the type is set to + /// k_ESteamNetworkingIdentityType_UnknownType. false will only be returned if the string + /// looks invalid. + bool ParseString( const char *pszStr ); + + // Max sizes + enum { + k_cchMaxString = 128, // Max length of the buffer needed to hold any identity, formatted in string format by ToString + k_cchMaxGenericString = 32, // Max length of the string for generic string identities. Including terminating '\0' + k_cchMaxXboxPairwiseID = 33, // Including terminating '\0' + k_cbMaxGenericBytes = 32, + }; + + // + // Internal representation. Don't access this directly, use the accessors! + // + // Number of bytes that are relevant below. This MUST ALWAYS be + // set. (Use the accessors!) This is important to enable old code to work + // with new identity types. + int m_cbSize; + union { + uint64 m_steamID64; + uint64 m_PSNID; + uint64 m_stadiaID; + char m_szGenericString[ k_cchMaxGenericString ]; + char m_szXboxPairwiseID[ k_cchMaxXboxPairwiseID ]; + uint8 m_genericBytes[ k_cbMaxGenericBytes ]; + char m_szUnknownRawString[ k_cchMaxString ]; + SteamNetworkingIPAddr m_ip; + uint32 m_reserved[ 32 ]; // Pad structure to leave easy room for future expansion + }; +}; +#pragma pack(pop) + +// +// Connection status +// + +/// High level connection status +enum ESteamNetworkingConnectionState +{ + + /// Dummy value used to indicate an error condition in the API. + /// Specified connection doesn't exist or has already been closed. + k_ESteamNetworkingConnectionState_None = 0, + + /// We are trying to establish whether peers can talk to each other, + /// whether they WANT to talk to each other, perform basic auth, + /// and exchange crypt keys. + /// + /// - For connections on the "client" side (initiated locally): + /// We're in the process of trying to establish a connection. + /// Depending on the connection type, we might not know who they are. + /// Note that it is not possible to tell if we are waiting on the + /// network to complete handshake packets, or for the application layer + /// to accept the connection. + /// + /// - For connections on the "server" side (accepted through listen socket): + /// We have completed some basic handshake and the client has presented + /// some proof of identity. The connection is ready to be accepted + /// using AcceptConnection(). + /// + /// In either case, any unreliable packets sent now are almost certain + /// to be dropped. Attempts to receive packets are guaranteed to fail. + /// You may send messages if the send mode allows for them to be queued. + /// but if you close the connection before the connection is actually + /// established, any queued messages will be discarded immediately. + /// (We will not attempt to flush the queue and confirm delivery to the + /// remote host, which ordinarily happens when a connection is closed.) + k_ESteamNetworkingConnectionState_Connecting = 1, + + /// Some connection types use a back channel or trusted 3rd party + /// for earliest communication. If the server accepts the connection, + /// then these connections switch into the rendezvous state. During this + /// state, we still have not yet established an end-to-end route (through + /// the relay network), and so if you send any messages unreliable, they + /// are going to be discarded. + k_ESteamNetworkingConnectionState_FindingRoute = 2, + + /// We've received communications from our peer (and we know + /// who they are) and are all good. If you close the connection now, + /// we will make our best effort to flush out any reliable sent data that + /// has not been acknowledged by the peer. (But note that this happens + /// from within the application process, so unlike a TCP connection, you are + /// not totally handing it off to the operating system to deal with it.) + k_ESteamNetworkingConnectionState_Connected = 3, + + /// Connection has been closed by our peer, but not closed locally. + /// The connection still exists from an API perspective. You must close the + /// handle to free up resources. If there are any messages in the inbound queue, + /// you may retrieve them. Otherwise, nothing may be done with the connection + /// except to close it. + /// + /// This stats is similar to CLOSE_WAIT in the TCP state machine. + k_ESteamNetworkingConnectionState_ClosedByPeer = 4, + + /// A disruption in the connection has been detected locally. (E.g. timeout, + /// local internet connection disrupted, etc.) + /// + /// The connection still exists from an API perspective. You must close the + /// handle to free up resources. + /// + /// Attempts to send further messages will fail. Any remaining received messages + /// in the queue are available. + k_ESteamNetworkingConnectionState_ProblemDetectedLocally = 5, + +// +// The following values are used internally and will not be returned by any API. +// We document them here to provide a little insight into the state machine that is used +// under the hood. +// + + /// We've disconnected on our side, and from an API perspective the connection is closed. + /// No more data may be sent or received. All reliable data has been flushed, or else + /// we've given up and discarded it. We do not yet know for sure that the peer knows + /// the connection has been closed, however, so we're just hanging around so that if we do + /// get a packet from them, we can send them the appropriate packets so that they can + /// know why the connection was closed (and not have to rely on a timeout, which makes + /// it appear as if something is wrong). + k_ESteamNetworkingConnectionState_FinWait = -1, + + /// We've disconnected on our side, and from an API perspective the connection is closed. + /// No more data may be sent or received. From a network perspective, however, on the wire, + /// we have not yet given any indication to the peer that the connection is closed. + /// We are in the process of flushing out the last bit of reliable data. Once that is done, + /// we will inform the peer that the connection has been closed, and transition to the + /// FinWait state. + /// + /// Note that no indication is given to the remote host that we have closed the connection, + /// until the data has been flushed. If the remote host attempts to send us data, we will + /// do whatever is necessary to keep the connection alive until it can be closed properly. + /// But in fact the data will be discarded, since there is no way for the application to + /// read it back. Typically this is not a problem, as application protocols that utilize + /// the lingering functionality are designed for the remote host to wait for the response + /// before sending any more data. + k_ESteamNetworkingConnectionState_Linger = -2, + + /// Connection is completely inactive and ready to be destroyed + k_ESteamNetworkingConnectionState_Dead = -3, + + k_ESteamNetworkingConnectionState__Force32Bit = 0x7fffffff +}; + +/// Enumerate various causes of connection termination. These are designed to work similar +/// to HTTP error codes: the numeric range gives you a rough classification as to the source +/// of the problem. +enum ESteamNetConnectionEnd +{ + // Invalid/sentinel value + k_ESteamNetConnectionEnd_Invalid = 0, + + // + // Application codes. These are the values you will pass to + // ISteamNetworkingSockets::CloseConnection. You can use these codes if + // you want to plumb through application-specific reason codes. If you don't + // need this facility, feel free to always pass + // k_ESteamNetConnectionEnd_App_Generic. + // + // The distinction between "normal" and "exceptional" termination is + // one you may use if you find useful, but it's not necessary for you + // to do so. The only place where we distinguish between normal and + // exceptional is in connection analytics. If a significant + // proportion of connections terminates in an exceptional manner, + // this can trigger an alert. + // + + // 1xxx: Application ended the connection in a "usual" manner. + // E.g.: user intentionally disconnected from the server, + // gameplay ended normally, etc + k_ESteamNetConnectionEnd_App_Min = 1000, + k_ESteamNetConnectionEnd_App_Generic = k_ESteamNetConnectionEnd_App_Min, + // Use codes in this range for "normal" disconnection + k_ESteamNetConnectionEnd_App_Max = 1999, + + // 2xxx: Application ended the connection in some sort of exceptional + // or unusual manner that might indicate a bug or configuration + // issue. + // + k_ESteamNetConnectionEnd_AppException_Min = 2000, + k_ESteamNetConnectionEnd_AppException_Generic = k_ESteamNetConnectionEnd_AppException_Min, + // Use codes in this range for "unusual" disconnection + k_ESteamNetConnectionEnd_AppException_Max = 2999, + + // + // System codes. These will be returned by the system when + // the connection state is k_ESteamNetworkingConnectionState_ClosedByPeer + // or k_ESteamNetworkingConnectionState_ProblemDetectedLocally. It is + // illegal to pass a code in this range to ISteamNetworkingSockets::CloseConnection + // + + // 3xxx: Connection failed or ended because of problem with the + // local host or their connection to the Internet. + k_ESteamNetConnectionEnd_Local_Min = 3000, + + // You cannot do what you want to do because you're running in offline mode. + k_ESteamNetConnectionEnd_Local_OfflineMode = 3001, + + // We're having trouble contacting many (perhaps all) relays. + // Since it's unlikely that they all went offline at once, the best + // explanation is that we have a problem on our end. Note that we don't + // bother distinguishing between "many" and "all", because in practice, + // it takes time to detect a connection problem, and by the time + // the connection has timed out, we might not have been able to + // actively probe all of the relay clusters, even if we were able to + // contact them at one time. So this code just means that: + // + // * We don't have any recent successful communication with any relay. + // * We have evidence of recent failures to communicate with multiple relays. + k_ESteamNetConnectionEnd_Local_ManyRelayConnectivity = 3002, + + // A hosted server is having trouble talking to the relay + // that the client was using, so the problem is most likely + // on our end + k_ESteamNetConnectionEnd_Local_HostedServerPrimaryRelay = 3003, + + // We're not able to get the SDR network config. This is + // *almost* always a local issue, since the network config + // comes from the CDN, which is pretty darn reliable. + k_ESteamNetConnectionEnd_Local_NetworkConfig = 3004, + + // Steam rejected our request because we don't have rights + // to do this. + k_ESteamNetConnectionEnd_Local_Rights = 3005, + + // ICE P2P rendezvous failed because we were not able to + // determine our "public" address (e.g. reflexive address via STUN) + // + // If relay fallback is available (it always is on Steam), then + // this is only used internally and will not be returned as a high + // level failure. + k_ESteamNetConnectionEnd_Local_P2P_ICE_NoPublicAddresses = 3006, + + k_ESteamNetConnectionEnd_Local_Max = 3999, + + // 4xxx: Connection failed or ended, and it appears that the + // cause does NOT have to do with the local host or their + // connection to the Internet. It could be caused by the + // remote host, or it could be somewhere in between. + k_ESteamNetConnectionEnd_Remote_Min = 4000, + + // The connection was lost, and as far as we can tell our connection + // to relevant services (relays) has not been disrupted. This doesn't + // mean that the problem is "their fault", it just means that it doesn't + // appear that we are having network issues on our end. + k_ESteamNetConnectionEnd_Remote_Timeout = 4001, + + // Something was invalid with the cert or crypt handshake + // info you gave me, I don't understand or like your key types, + // etc. + k_ESteamNetConnectionEnd_Remote_BadCrypt = 4002, + + // You presented me with a cert that was I was able to parse + // and *technically* we could use encrypted communication. + // But there was a problem that prevents me from checking your identity + // or ensuring that somebody int he middle can't observe our communication. + // E.g.: - the CA key was missing (and I don't accept unsigned certs) + // - The CA key isn't one that I trust, + // - The cert doesn't was appropriately restricted by app, user, time, data center, etc. + // - The cert wasn't issued to you. + // - etc + k_ESteamNetConnectionEnd_Remote_BadCert = 4003, + + // These will never be returned + //k_ESteamNetConnectionEnd_Remote_NotLoggedIn_DEPRECATED = 4004, + //k_ESteamNetConnectionEnd_Remote_NotRunningApp_DEPRECATED = 4005, + + // Something wrong with the protocol version you are using. + // (Probably the code you are running is too old.) + k_ESteamNetConnectionEnd_Remote_BadProtocolVersion = 4006, + + // NAT punch failed failed because we never received any public + // addresses from the remote host. (But we did receive some + // signals form them.) + // + // If relay fallback is available (it always is on Steam), then + // this is only used internally and will not be returned as a high + // level failure. + k_ESteamNetConnectionEnd_Remote_P2P_ICE_NoPublicAddresses = 4007, + + k_ESteamNetConnectionEnd_Remote_Max = 4999, + + // 5xxx: Connection failed for some other reason. + k_ESteamNetConnectionEnd_Misc_Min = 5000, + + // A failure that isn't necessarily the result of a software bug, + // but that should happen rarely enough that it isn't worth specifically + // writing UI or making a localized message for. + // The debug string should contain further details. + k_ESteamNetConnectionEnd_Misc_Generic = 5001, + + // Generic failure that is most likely a software bug. + k_ESteamNetConnectionEnd_Misc_InternalError = 5002, + + // The connection to the remote host timed out, but we + // don't know if the problem is on our end, in the middle, + // or on their end. + k_ESteamNetConnectionEnd_Misc_Timeout = 5003, + + //k_ESteamNetConnectionEnd_Misc_RelayConnectivity_DEPRECATED = 5004, + + // There's some trouble talking to Steam. + k_ESteamNetConnectionEnd_Misc_SteamConnectivity = 5005, + + // A server in a dedicated hosting situation has no relay sessions + // active with which to talk back to a client. (It's the client's + // job to open and maintain those sessions.) + k_ESteamNetConnectionEnd_Misc_NoRelaySessionsToClient = 5006, + + // While trying to initiate a connection, we never received + // *any* communication from the peer. + //k_ESteamNetConnectionEnd_Misc_ServerNeverReplied = 5007, + + // P2P rendezvous failed in a way that we don't have more specific + // information + k_ESteamNetConnectionEnd_Misc_P2P_Rendezvous = 5008, + + // NAT punch failed, probably due to NAT/firewall configuration. + // + // If relay fallback is available (it always is on Steam), then + // this is only used internally and will not be returned as a high + // level failure. + k_ESteamNetConnectionEnd_Misc_P2P_NAT_Firewall = 5009, + + // Our peer replied that it has no record of the connection. + // This should not happen ordinarily, but can happen in a few + // exception cases: + // + // - This is an old connection, and the peer has already cleaned + // up and forgotten about it. (Perhaps it timed out and they + // closed it and were not able to communicate this to us.) + // - A bug or internal protocol error has caused us to try to + // talk to the peer about the connection before we received + // confirmation that the peer has accepted the connection. + // - The peer thinks that we have closed the connection for some + // reason (perhaps a bug), and believes that is it is + // acknowledging our closure. + k_ESteamNetConnectionEnd_Misc_PeerSentNoConnection = 5010, + + k_ESteamNetConnectionEnd_Misc_Max = 5999, + + k_ESteamNetConnectionEnd__Force32Bit = 0x7fffffff +}; + +/// Max length, in bytes (including null terminator) of the reason string +/// when a connection is closed. +const int k_cchSteamNetworkingMaxConnectionCloseReason = 128; + +/// Max length, in bytes (include null terminator) of debug description +/// of a connection. +const int k_cchSteamNetworkingMaxConnectionDescription = 128; + +/// Max length of the app's part of the description +const int k_cchSteamNetworkingMaxConnectionAppName = 32; + +const int k_nSteamNetworkConnectionInfoFlags_Unauthenticated = 1; // We don't have a certificate for the remote host. +const int k_nSteamNetworkConnectionInfoFlags_Unencrypted = 2; // Information is being sent out over a wire unencrypted (by this library) +const int k_nSteamNetworkConnectionInfoFlags_LoopbackBuffers = 4; // Internal loopback buffers. Won't be true for localhost. (You can check the address to determine that.) This implies k_nSteamNetworkConnectionInfoFlags_FastLAN +const int k_nSteamNetworkConnectionInfoFlags_Fast = 8; // The connection is "fast" and "reliable". Either internal/localhost (check the address to find out), or the peer is on the same LAN. (Probably. It's based on the address and the ping time, this is actually hard to determine unambiguously). +const int k_nSteamNetworkConnectionInfoFlags_Relayed = 16; // The connection is relayed somehow (SDR or TURN). +const int k_nSteamNetworkConnectionInfoFlags_DualWifi = 32; // We're taking advantage of dual-wifi multi-path + +/// Describe the state of a connection. +struct SteamNetConnectionInfo_t +{ + + /// Who is on the other end? Depending on the connection type and phase of the connection, we might not know + SteamNetworkingIdentity m_identityRemote; + + /// Arbitrary user data set by the local application code + int64 m_nUserData; + + /// Handle to listen socket this was connected on, or k_HSteamListenSocket_Invalid if we initiated the connection + HSteamListenSocket m_hListenSocket; + + /// Remote address. Might be all 0's if we don't know it, or if this is N/A. + /// (E.g. Basically everything except direct UDP connection.) + SteamNetworkingIPAddr m_addrRemote; + uint16 m__pad1; + + /// What data center is the remote host in? (0 if we don't know.) + SteamNetworkingPOPID m_idPOPRemote; + + /// What relay are we using to communicate with the remote host? + /// (0 if not applicable.) + SteamNetworkingPOPID m_idPOPRelay; + + /// High level state of the connection + ESteamNetworkingConnectionState m_eState; + + /// Basic cause of the connection termination or problem. + /// See ESteamNetConnectionEnd for the values used + int m_eEndReason; + + /// Human-readable, but non-localized explanation for connection + /// termination or problem. This is intended for debugging / + /// diagnostic purposes only, not to display to users. It might + /// have some details specific to the issue. + char m_szEndDebug[ k_cchSteamNetworkingMaxConnectionCloseReason ]; + + /// Debug description. This includes the internal connection ID, + /// connection type (and peer information), and any name + /// given to the connection by the app. This string is used in various + /// internal logging messages. + /// + /// Note that the connection ID *usually* matches the HSteamNetConnection + /// handle, but in certain cases with symmetric connections it might not. + char m_szConnectionDescription[ k_cchSteamNetworkingMaxConnectionDescription ]; + + /// Misc flags. Bitmask of k_nSteamNetworkConnectionInfoFlags_Xxxx + int m_nFlags; + + /// Internal stuff, room to change API easily + uint32 reserved[63]; +}; + +/// Quick connection state, pared down to something you could call +/// more frequently without it being too big of a perf hit. +struct SteamNetConnectionRealTimeStatus_t +{ + + /// High level state of the connection + ESteamNetworkingConnectionState m_eState; + + /// Current ping (ms) + int m_nPing; + + /// Connection quality measured locally, 0...1. (Percentage of packets delivered + /// end-to-end in order). + float m_flConnectionQualityLocal; + + /// Packet delivery success rate as observed from remote host + float m_flConnectionQualityRemote; + + /// Current data rates from recent history. + float m_flOutPacketsPerSec; + float m_flOutBytesPerSec; + float m_flInPacketsPerSec; + float m_flInBytesPerSec; + + /// Estimate rate that we believe that we can send data to our peer. + /// Note that this could be significantly higher than m_flOutBytesPerSec, + /// meaning the capacity of the channel is higher than you are sending data. + /// (That's OK!) + int m_nSendRateBytesPerSecond; + + /// Number of bytes pending to be sent. This is data that you have recently + /// requested to be sent but has not yet actually been put on the wire. The + /// reliable number ALSO includes data that was previously placed on the wire, + /// but has now been scheduled for re-transmission. Thus, it's possible to + /// observe m_cbPendingReliable increasing between two checks, even if no + /// calls were made to send reliable data between the checks. Data that is + /// awaiting the Nagle delay will appear in these numbers. + int m_cbPendingUnreliable; + int m_cbPendingReliable; + + /// Number of bytes of reliable data that has been placed the wire, but + /// for which we have not yet received an acknowledgment, and thus we may + /// have to re-transmit. + int m_cbSentUnackedReliable; + + /// If you queued a message right now, approximately how long would that message + /// wait in the queue before we actually started putting its data on the wire in + /// a packet? + /// + /// In general, data that is sent by the application is limited by the bandwidth + /// of the channel. If you send data faster than this, it must be queued and + /// put on the wire at a metered rate. Even sending a small amount of data (e.g. + /// a few MTU, say ~3k) will require some of the data to be delayed a bit. + /// + /// Ignoring multiple lanes, the estimated delay will be approximately equal to + /// + /// ( m_cbPendingUnreliable+m_cbPendingReliable ) / m_nSendRateBytesPerSecond + /// + /// plus or minus one MTU. It depends on how much time has elapsed since the last + /// packet was put on the wire. For example, the queue might have *just* been emptied, + /// and the last packet placed on the wire, and we are exactly up against the send + /// rate limit. In that case we might need to wait for one packet's worth of time to + /// elapse before we can send again. On the other extreme, the queue might have data + /// in it waiting for Nagle. (This will always be less than one packet, because as + /// soon as we have a complete packet we would send it.) In that case, we might be + /// ready to send data now, and this value will be 0. + /// + /// This value is only valid if multiple lanes are not used. If multiple lanes are + /// in use, then the queue time will be different for each lane, and you must use + /// the value in SteamNetConnectionRealTimeLaneStatus_t. + /// + /// Nagle delay is ignored for the purposes of this calculation. + SteamNetworkingMicroseconds m_usecQueueTime; + + // Internal stuff, room to change API easily + uint32 reserved[16]; +}; + +/// Quick status of a particular lane +struct SteamNetConnectionRealTimeLaneStatus_t +{ + // Counters for this particular lane. See the corresponding variables + // in SteamNetConnectionRealTimeStatus_t + int m_cbPendingUnreliable; + int m_cbPendingReliable; + int m_cbSentUnackedReliable; + int _reservePad1; // Reserved for future use + + /// Lane-specific queue time. This value takes into consideration lane priorities + /// and weights, and how much data is queued in each lane, and attempts to predict + /// how any data currently queued will be sent out. + SteamNetworkingMicroseconds m_usecQueueTime; + + // Internal stuff, room to change API easily + uint32 reserved[10]; +}; + +#pragma pack( pop ) + +// +// Network messages +// + +/// Max size of a single message that we can SEND. +/// Note: We might be wiling to receive larger messages, +/// and our peer might, too. +const int k_cbMaxSteamNetworkingSocketsMessageSizeSend = 512 * 1024; + +/// A message that has been received. +struct SteamNetworkingMessage_t +{ + + /// Message payload + void *m_pData; + + /// Size of the payload. + int m_cbSize; + + /// For messages received on connections: what connection did this come from? + /// For outgoing messages: what connection to send it to? + /// Not used when using the ISteamNetworkingMessages interface + HSteamNetConnection m_conn; + + /// For inbound messages: Who sent this to us? + /// For outbound messages on connections: not used. + /// For outbound messages on the ad-hoc ISteamNetworkingMessages interface: who should we send this to? + SteamNetworkingIdentity m_identityPeer; + + /// For messages received on connections, this is the user data + /// associated with the connection. + /// + /// This is *usually* the same as calling GetConnection() and then + /// fetching the user data associated with that connection, but for + /// the following subtle differences: + /// + /// - This user data will match the connection's user data at the time + /// is captured at the time the message is returned by the API. + /// If you subsequently change the userdata on the connection, + /// this won't be updated. + /// - This is an inline call, so it's *much* faster. + /// - You might have closed the connection, so fetching the user data + /// would not be possible. + /// + /// Not used when sending messages. + int64 m_nConnUserData; + + /// Local timestamp when the message was received + /// Not used for outbound messages. + SteamNetworkingMicroseconds m_usecTimeReceived; + + /// Message number assigned by the sender. This is not used for outbound + /// messages. Note that if multiple lanes are used, each lane has its own + /// message numbers, which are assigned sequentially, so messages from + /// different lanes will share the same numbers. + int64 m_nMessageNumber; + + /// Function used to free up m_pData. This mechanism exists so that + /// apps can create messages with buffers allocated from their own + /// heap, and pass them into the library. This function will + /// usually be something like: + /// + /// free( pMsg->m_pData ); + void (*m_pfnFreeData)( SteamNetworkingMessage_t *pMsg ); + + /// Function to used to decrement the internal reference count and, if + /// it's zero, release the message. You should not set this function pointer, + /// or need to access this directly! Use the Release() function instead! + void (*m_pfnRelease)( SteamNetworkingMessage_t *pMsg ); + + /// When using ISteamNetworkingMessages, the channel number the message was received on + /// (Not used for messages sent or received on "connections") + int m_nChannel; + + /// Bitmask of k_nSteamNetworkingSend_xxx flags. + /// For received messages, only the k_nSteamNetworkingSend_Reliable bit is valid. + /// For outbound messages, all bits are relevant + int m_nFlags; + + /// Arbitrary user data that you can use when sending messages using + /// ISteamNetworkingUtils::AllocateMessage and ISteamNetworkingSockets::SendMessage. + /// (The callback you set in m_pfnFreeData might use this field.) + /// + /// Not used for received messages. + int64 m_nUserData; + + /// For outbound messages, which lane to use? See ISteamNetworkingSockets::ConfigureConnectionLanes. + /// For inbound messages, what lane was the message received on? + uint16 m_idxLane; + uint16 _pad1__; + + /// You MUST call this when you're done with the object, + /// to free up memory, etc. + inline void Release(); + + // For code compatibility, some accessors +#ifndef API_GEN + inline uint32 GetSize() const { return m_cbSize; } + inline const void *GetData() const { return m_pData; } + inline int GetChannel() const { return m_nChannel; } + inline HSteamNetConnection GetConnection() const { return m_conn; } + inline int64 GetConnectionUserData() const { return m_nConnUserData; } + inline SteamNetworkingMicroseconds GetTimeReceived() const { return m_usecTimeReceived; } + inline int64 GetMessageNumber() const { return m_nMessageNumber; } +#endif +protected: + // Declare destructor protected. You should never need to declare a message + // object on the stack or create one yourself. + // - You will receive a pointer to a message object when you receive messages (e.g. ISteamNetworkingSockets::ReceiveMessagesOnConnection) + // - You can allocate a message object for efficient sending using ISteamNetworkingUtils::AllocateMessage + // - Call Release() to free the object + inline ~SteamNetworkingMessage_t() {} +}; + +// +// Flags used to set options for message sending +// + +// Send the message unreliably. Can be lost. Messages *can* be larger than a +// single MTU (UDP packet), but there is no retransmission, so if any piece +// of the message is lost, the entire message will be dropped. +// +// The sending API does have some knowledge of the underlying connection, so +// if there is no NAT-traversal accomplished or there is a recognized adjustment +// happening on the connection, the packet will be batched until the connection +// is open again. +// +// Migration note: This is not exactly the same as k_EP2PSendUnreliable! You +// probably want k_ESteamNetworkingSendType_UnreliableNoNagle +const int k_nSteamNetworkingSend_Unreliable = 0; + +// Disable Nagle's algorithm. +// By default, Nagle's algorithm is applied to all outbound messages. This means +// that the message will NOT be sent immediately, in case further messages are +// sent soon after you send this, which can be grouped together. Any time there +// is enough buffered data to fill a packet, the packets will be pushed out immediately, +// but partially-full packets not be sent until the Nagle timer expires. See +// ISteamNetworkingSockets::FlushMessagesOnConnection, ISteamNetworkingMessages::FlushMessagesToUser +// +// NOTE: Don't just send every message without Nagle because you want packets to get there +// quicker. Make sure you understand the problem that Nagle is solving before disabling it. +// If you are sending small messages, often many at the same time, then it is very likely that +// it will be more efficient to leave Nagle enabled. A typical proper use of this flag is +// when you are sending what you know will be the last message sent for a while (e.g. the last +// in the server simulation tick to a particular client), and you use this flag to flush all +// messages. +const int k_nSteamNetworkingSend_NoNagle = 1; + +// Send a message unreliably, bypassing Nagle's algorithm for this message and any messages +// currently pending on the Nagle timer. This is equivalent to using k_ESteamNetworkingSend_Unreliable +// and then immediately flushing the messages using ISteamNetworkingSockets::FlushMessagesOnConnection +// or ISteamNetworkingMessages::FlushMessagesToUser. (But using this flag is more efficient since you +// only make one API call.) +const int k_nSteamNetworkingSend_UnreliableNoNagle = k_nSteamNetworkingSend_Unreliable|k_nSteamNetworkingSend_NoNagle; + +// If the message cannot be sent very soon (because the connection is still doing some initial +// handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable +// messages. Using this flag on reliable messages is invalid. +const int k_nSteamNetworkingSend_NoDelay = 4; + +// Send an unreliable message, but if it cannot be sent relatively quickly, just drop it instead of queuing it. +// This is useful for messages that are not useful if they are excessively delayed, such as voice data. +// NOTE: The Nagle algorithm is not used, and if the message is not dropped, any messages waiting on the +// Nagle timer are immediately flushed. +// +// A message will be dropped under the following circumstances: +// - the connection is not fully connected. (E.g. the "Connecting" or "FindingRoute" states) +// - there is a sufficiently large number of messages queued up already such that the current message +// will not be placed on the wire in the next ~200ms or so. +// +// If a message is dropped for these reasons, k_EResultIgnored will be returned. +const int k_nSteamNetworkingSend_UnreliableNoDelay = k_nSteamNetworkingSend_Unreliable|k_nSteamNetworkingSend_NoDelay|k_nSteamNetworkingSend_NoNagle; + +// Reliable message send. Can send up to k_cbMaxSteamNetworkingSocketsMessageSizeSend bytes in a single message. +// Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for +// efficient sends of large chunks of data. +// +// The Nagle algorithm is used. See notes on k_ESteamNetworkingSendType_Unreliable for more details. +// See k_ESteamNetworkingSendType_ReliableNoNagle, ISteamNetworkingSockets::FlushMessagesOnConnection, +// ISteamNetworkingMessages::FlushMessagesToUser +// +// Migration note: This is NOT the same as k_EP2PSendReliable, it's more like k_EP2PSendReliableWithBuffering +const int k_nSteamNetworkingSend_Reliable = 8; + +// Send a message reliably, but bypass Nagle's algorithm. +// +// Migration note: This is equivalent to k_EP2PSendReliable +const int k_nSteamNetworkingSend_ReliableNoNagle = k_nSteamNetworkingSend_Reliable|k_nSteamNetworkingSend_NoNagle; + +// By default, message sending is queued, and the work of encryption and talking to +// the operating system sockets, etc is done on a service thread. This is usually a +// a performance win when messages are sent from the "main thread". However, if this +// flag is set, and data is ready to be sent immediately (either from this message +// or earlier queued data), then that work will be done in the current thread, before +// the current call returns. If data is not ready to be sent (due to rate limiting +// or Nagle), then this flag has no effect. +// +// This is an advanced flag used to control performance at a very low level. For +// most applications running on modern hardware with more than one CPU core, doing +// the work of sending on a service thread will yield the best performance. Only +// use this flag if you have a really good reason and understand what you are doing. +// Otherwise you will probably just make performance worse. +const int k_nSteamNetworkingSend_UseCurrentThread = 16; + +// When sending a message using ISteamNetworkingMessages, automatically re-establish +// a broken session, without returning k_EResultNoConnection. Without this flag, +// if you attempt to send a message, and the session was proactively closed by the +// peer, or an error occurred that disrupted communications, then you must close the +// session using ISteamNetworkingMessages::CloseSessionWithUser before attempting to +// send another message. (Or you can simply add this flag and retry.) In this way, +// the disruption cannot go unnoticed, and a more clear order of events can be +// ascertained. This is especially important when reliable messages are used, since +// if the connection is disrupted, some of those messages will not have been delivered, +// and it is in general not possible to know which. Although a +// SteamNetworkingMessagesSessionFailed_t callback will be posted when an error occurs +// to notify you that a failure has happened, callbacks are asynchronous, so it is not +// possible to tell exactly when it happened. And because the primary purpose of +// ISteamNetworkingMessages is to be like UDP, there is no notification when a peer closes +// the session. +// +// If you are not using any reliable messages (e.g. you are using ISteamNetworkingMessages +// exactly as a transport replacement for UDP-style datagrams only), you may not need to +// know when an underlying connection fails, and so you may not need this notification. +const int k_nSteamNetworkingSend_AutoRestartBrokenSession = 32; + +// +// Ping location / measurement +// + +/// Object that describes a "location" on the Internet with sufficient +/// detail that we can reasonably estimate an upper bound on the ping between +/// the two hosts, even if a direct route between the hosts is not possible, +/// and the connection must be routed through the Steam Datagram Relay network. +/// This does not contain any information that identifies the host. Indeed, +/// if two hosts are in the same building or otherwise have nearly identical +/// networking characteristics, then it's valid to use the same location +/// object for both of them. +/// +/// NOTE: This object should only be used in the same process! Do not serialize it, +/// send it over the wire, or persist it in a file or database! If you need +/// to do that, convert it to a string representation using the methods in +/// ISteamNetworkingUtils(). +struct SteamNetworkPingLocation_t +{ + uint8 m_data[ 512 ]; +}; + +/// Max possible length of a ping location, in string format. This is +/// an extremely conservative worst case value which leaves room for future +/// syntax enhancements. Most strings in practice are a lot shorter. +/// If you are storing many of these, you will very likely benefit from +/// using dynamic memory. +const int k_cchMaxSteamNetworkingPingLocationString = 1024; + +/// Special values that are returned by some functions that return a ping. +const int k_nSteamNetworkingPing_Failed = -1; +const int k_nSteamNetworkingPing_Unknown = -2; + +// +// Configuration values +// + +/// Configuration values can be applied to different types of objects. +enum ESteamNetworkingConfigScope +{ + + /// Get/set global option, or defaults. Even options that apply to more specific scopes + /// have global scope, and you may be able to just change the global defaults. If you + /// need different settings per connection (for example), then you will need to set those + /// options at the more specific scope. + k_ESteamNetworkingConfig_Global = 1, + + /// Some options are specific to a particular interface. Note that all connection + /// and listen socket settings can also be set at the interface level, and they will + /// apply to objects created through those interfaces. + k_ESteamNetworkingConfig_SocketsInterface = 2, + + /// Options for a listen socket. Listen socket options can be set at the interface layer, + /// if you have multiple listen sockets and they all use the same options. + /// You can also set connection options on a listen socket, and they set the defaults + /// for all connections accepted through this listen socket. (They will be used if you don't + /// set a connection option.) + k_ESteamNetworkingConfig_ListenSocket = 3, + + /// Options for a specific connection. + k_ESteamNetworkingConfig_Connection = 4, + + k_ESteamNetworkingConfigScope__Force32Bit = 0x7fffffff +}; + +// Different configuration values have different data types +enum ESteamNetworkingConfigDataType +{ + k_ESteamNetworkingConfig_Int32 = 1, + k_ESteamNetworkingConfig_Int64 = 2, + k_ESteamNetworkingConfig_Float = 3, + k_ESteamNetworkingConfig_String = 4, + k_ESteamNetworkingConfig_Ptr = 5, + + k_ESteamNetworkingConfigDataType__Force32Bit = 0x7fffffff +}; + +/// Configuration options +enum ESteamNetworkingConfigValue +{ + k_ESteamNetworkingConfig_Invalid = 0, + +// +// Connection options +// + + /// [connection int32] Timeout value (in ms) to use when first connecting + k_ESteamNetworkingConfig_TimeoutInitial = 24, + + /// [connection int32] Timeout value (in ms) to use after connection is established + k_ESteamNetworkingConfig_TimeoutConnected = 25, + + /// [connection int32] Upper limit of buffered pending bytes to be sent, + /// if this is reached SendMessage will return k_EResultLimitExceeded + /// Default is 512k (524288 bytes) + k_ESteamNetworkingConfig_SendBufferSize = 9, + + /// [connection int32] Upper limit on total size (in bytes) of received messages + /// that will be buffered waiting to be processed by the application. If this limit + /// is exceeded, packets will be dropped. This is to protect us from a malicious + /// peer flooding us with messages faster than we can process them. + /// + /// This must be bigger than k_ESteamNetworkingConfig_RecvMaxMessageSize + k_ESteamNetworkingConfig_RecvBufferSize = 47, + + /// [connection int32] Upper limit on the number of received messages that will + /// that will be buffered waiting to be processed by the application. If this limit + /// is exceeded, packets will be dropped. This is to protect us from a malicious + /// peer flooding us with messages faster than we can pull them off the wire. + k_ESteamNetworkingConfig_RecvBufferMessages = 48, + + /// [connection int32] Maximum message size that we are willing to receive. + /// if a client attempts to send us a message larger than this, the connection + /// will be immediately closed. + /// + /// Default is 512k (524288 bytes). Note that the peer needs to be able to + /// send a message this big. (See k_cbMaxSteamNetworkingSocketsMessageSizeSend.) + k_ESteamNetworkingConfig_RecvMaxMessageSize = 49, + + /// [connection int32] Max number of message segments that can be received + /// in a single UDP packet. While decoding a packet, if the number of segments + /// exceeds this, we will abort further packet processing. + /// + /// The default is effectively unlimited. If you know that you very rarely + /// send small packets, you can protect yourself from malicious senders by + /// lowering this number. + /// + /// In particular, if you are NOT using the reliability layer and are only using + /// SteamNetworkingSockets for datagram transport, setting this to a very low + /// number may be beneficial. (We recommend a value of 2.) Make sure your sender + /// disables Nagle! + k_ESteamNetworkingConfig_RecvMaxSegmentsPerPacket = 50, + + /// [connection int64] Get/set userdata as a configuration option. + /// The default value is -1. You may want to set the user data as + /// a config value, instead of using ISteamNetworkingSockets::SetConnectionUserData + /// in two specific instances: + /// + /// - You wish to set the userdata atomically when creating + /// an outbound connection, so that the userdata is filled in properly + /// for any callbacks that happen. However, note that this trick + /// only works for connections initiated locally! For incoming + /// connections, multiple state transitions may happen and + /// callbacks be queued, before you are able to service the first + /// callback! Be careful! + /// + /// - You can set the default userdata for all newly created connections + /// by setting this value at a higher level (e.g. on the listen + /// socket or at the global level.) Then this default + /// value will be inherited when the connection is created. + /// This is useful in case -1 is a valid userdata value, and you + /// wish to use something else as the default value so you can + /// tell if it has been set or not. + /// + /// HOWEVER: once a connection is created, the effective value is + /// then bound to the connection. Unlike other connection options, + /// if you change it again at a higher level, the new value will not + /// be inherited by connections. + /// + /// Using the userdata field in callback structs is not advised because + /// of tricky race conditions. Instead, you might try one of these methods: + /// + /// - Use a separate map with the HSteamNetConnection as the key. + /// - Fetch the userdata from the connection in your callback + /// using ISteamNetworkingSockets::GetConnectionUserData, to + // ensure you have the current value. + k_ESteamNetworkingConfig_ConnectionUserData = 40, + + /// [connection int32] Minimum/maximum send rate clamp, in bytes/sec. + /// At the time of this writing these two options should always be set to + /// the same value, to manually configure a specific send rate. The default + /// value is 256K. Eventually we hope to have the library estimate the bandwidth + /// of the channel and set the send rate to that estimated bandwidth, and these + /// values will only set limits on that send rate. + k_ESteamNetworkingConfig_SendRateMin = 10, + k_ESteamNetworkingConfig_SendRateMax = 11, + + /// [connection int32] Nagle time, in microseconds. When SendMessage is called, if + /// the outgoing message is less than the size of the MTU, it will be + /// queued for a delay equal to the Nagle timer value. This is to ensure + /// that if the application sends several small messages rapidly, they are + /// coalesced into a single packet. + /// See historical RFC 896. Value is in microseconds. + /// Default is 5000us (5ms). + k_ESteamNetworkingConfig_NagleTime = 12, + + /// [connection int32] Don't automatically fail IP connections that don't have + /// strong auth. On clients, this means we will attempt the connection even if + /// we don't know our identity or can't get a cert. On the server, it means that + /// we won't automatically reject a connection due to a failure to authenticate. + /// (You can examine the incoming connection and decide whether to accept it.) + /// + /// This is a dev configuration value, and you should not let users modify it in + /// production. + k_ESteamNetworkingConfig_IP_AllowWithoutAuth = 23, + + /// [connection int32] Do not send UDP packets with a payload of + /// larger than N bytes. If you set this, k_ESteamNetworkingConfig_MTU_DataSize + /// is automatically adjusted + k_ESteamNetworkingConfig_MTU_PacketSize = 32, + + /// [connection int32] (read only) Maximum message size you can send that + /// will not fragment, based on k_ESteamNetworkingConfig_MTU_PacketSize + k_ESteamNetworkingConfig_MTU_DataSize = 33, + + /// [connection int32] Allow unencrypted (and unauthenticated) communication. + /// 0: Not allowed (the default) + /// 1: Allowed, but prefer encrypted + /// 2: Allowed, and preferred + /// 3: Required. (Fail the connection if the peer requires encryption.) + /// + /// This is a dev configuration value, since its purpose is to disable encryption. + /// You should not let users modify it in production. (But note that it requires + /// the peer to also modify their value in order for encryption to be disabled.) + k_ESteamNetworkingConfig_Unencrypted = 34, + + /// [connection int32] Set this to 1 on outbound connections and listen sockets, + /// to enable "symmetric connect mode", which is useful in the following + /// common peer-to-peer use case: + /// + /// - The two peers are "equal" to each other. (Neither is clearly the "client" + /// or "server".) + /// - Either peer may initiate the connection, and indeed they may do this + /// at the same time + /// - The peers only desire a single connection to each other, and if both + /// peers initiate connections simultaneously, a protocol is needed for them + /// to resolve the conflict, so that we end up with a single connection. + /// + /// This use case is both common, and involves subtle race conditions and tricky + /// pitfalls, which is why the API has support for dealing with it. + /// + /// If an incoming connection arrives on a listen socket or via custom signaling, + /// and the application has not attempted to make a matching outbound connection + /// in symmetric mode, then the incoming connection can be accepted as usual. + /// A "matching" connection means that the relevant endpoint information matches. + /// (At the time this comment is being written, this is only supported for P2P + /// connections, which means that the peer identities must match, and the virtual + /// port must match. At a later time, symmetric mode may be supported for other + /// connection types.) + /// + /// If connections are initiated by both peers simultaneously, race conditions + /// can arise, but fortunately, most of them are handled internally and do not + /// require any special awareness from the application. However, there + /// is one important case that application code must be aware of: + /// If application code attempts an outbound connection using a ConnectXxx + /// function in symmetric mode, and a matching incoming connection is already + /// waiting on a listen socket, then instead of forming a new connection, + /// the ConnectXxx call will accept the existing incoming connection, and return + /// a connection handle to this accepted connection. + /// IMPORTANT: in this case, a SteamNetConnectionStatusChangedCallback_t + /// has probably *already* been posted to the queue for the incoming connection! + /// (Once callbacks are posted to the queue, they are not modified.) It doesn't + /// matter if the callback has not been consumed by the app. Thus, application + /// code that makes use of symmetric connections must be aware that, when processing a + /// SteamNetConnectionStatusChangedCallback_t for an incoming connection, the + /// m_hConn may refer to a new connection that the app has has not + /// seen before (the usual case), but it may also refer to a connection that + /// has already been accepted implicitly through a call to Connect()! In this + /// case, AcceptConnection() will return k_EResultDuplicateRequest. + /// + /// Only one symmetric connection to a given peer (on a given virtual port) + /// may exist at any given time. If client code attempts to create a connection, + /// and a (live) connection already exists on the local host, then either the + /// existing connection will be accepted as described above, or the attempt + /// to create a new connection will fail. Furthermore, linger mode functionality + /// is not supported on symmetric connections. + /// + /// A more complicated race condition can arise if both peers initiate a connection + /// at roughly the same time. In this situation, each peer will receive an incoming + /// connection from the other peer, when the application code has already initiated + /// an outgoing connection to that peer. The peers must resolve this conflict and + /// decide who is going to act as the "server" and who will act as the "client". + /// Typically the application does not need to be aware of this case as it is handled + /// internally. On both sides, the will observe their outbound connection being + /// "accepted", although one of them one have been converted internally to act + /// as the "server". + /// + /// In general, symmetric mode should be all-or-nothing: do not mix symmetric + /// connections with a non-symmetric connection that it might possible "match" + /// with. If you use symmetric mode on any connections, then both peers should + /// use it on all connections, and the corresponding listen socket, if any. The + /// behaviour when symmetric and ordinary connections are mixed is not defined by + /// this API, and you should not rely on it. (This advice only applies when connections + /// might possibly "match". For example, it's OK to use all symmetric mode + /// connections on one virtual port, and all ordinary, non-symmetric connections + /// on a different virtual port, as there is no potential for ambiguity.) + /// + /// When using the feature, you should set it in the following situations on + /// applicable objects: + /// + /// - When creating an outbound connection using ConnectXxx function + /// - When creating a listen socket. (Note that this will automatically cause + /// any accepted connections to inherit the flag.) + /// - When using custom signaling, before accepting an incoming connection. + /// + /// Setting the flag on listen socket and accepted connections will enable the + /// API to automatically deal with duplicate incoming connections, even if the + /// local host has not made any outbound requests. (In general, such duplicate + /// requests from a peer are ignored internally and will not be visible to the + /// application code. The previous connection must be closed or resolved first.) + k_ESteamNetworkingConfig_SymmetricConnect = 37, + + /// [connection int32] For connection types that use "virtual ports", this can be used + /// to assign a local virtual port. For incoming connections, this will always be the + /// virtual port of the listen socket (or the port requested by the remote host if custom + /// signaling is used and the connection is accepted), and cannot be changed. For + /// connections initiated locally, the local virtual port will default to the same as the + /// requested remote virtual port, if you do not specify a different option when creating + /// the connection. The local port is only relevant for symmetric connections, when + /// determining if two connections "match." In this case, if you need the local and remote + /// port to differ, you can set this value. + /// + /// You can also read back this value on listen sockets. + /// + /// This value should not be read or written in any other context. + k_ESteamNetworkingConfig_LocalVirtualPort = 38, + + /// [connection int32] Enable Dual wifi band support for this connection + /// 0 = no, 1 = yes, 2 = simulate it for debugging, even if dual wifi not available + k_ESteamNetworkingConfig_DualWifi_Enable = 39, + + /// [connection int32] True to enable diagnostics reporting through + /// generic platform UI. (Only available on Steam.) + k_ESteamNetworkingConfig_EnableDiagnosticsUI = 46, + +// +// Simulating network conditions +// +// These are global (not per-connection) because they apply at +// a relatively low UDP layer. +// + + /// [global float, 0--100] Randomly discard N pct of packets instead of sending/recv + /// This is a global option only, since it is applied at a low level + /// where we don't have much context + k_ESteamNetworkingConfig_FakePacketLoss_Send = 2, + k_ESteamNetworkingConfig_FakePacketLoss_Recv = 3, + + /// [global int32]. Delay all outbound/inbound packets by N ms + k_ESteamNetworkingConfig_FakePacketLag_Send = 4, + k_ESteamNetworkingConfig_FakePacketLag_Recv = 5, + + /// [global float] 0-100 Percentage of packets we will add additional delay + /// to (causing them to be reordered) + k_ESteamNetworkingConfig_FakePacketReorder_Send = 6, + k_ESteamNetworkingConfig_FakePacketReorder_Recv = 7, + + /// [global int32] Extra delay, in ms, to apply to reordered packets. + k_ESteamNetworkingConfig_FakePacketReorder_Time = 8, + + /// [global float 0--100] Globally duplicate some percentage of packets we send + k_ESteamNetworkingConfig_FakePacketDup_Send = 26, + k_ESteamNetworkingConfig_FakePacketDup_Recv = 27, + + /// [global int32] Amount of delay, in ms, to delay duplicated packets. + /// (We chose a random delay between 0 and this value) + k_ESteamNetworkingConfig_FakePacketDup_TimeMax = 28, + + /// [global int32] Trace every UDP packet, similar to Wireshark or tcpdump. + /// Value is max number of bytes to dump. -1 disables tracing. + // 0 only traces the info but no actual data bytes + k_ESteamNetworkingConfig_PacketTraceMaxBytes = 41, + + + // [global int32] Global UDP token bucket rate limits. + // "Rate" refers to the steady state rate. (Bytes/sec, the + // rate that tokens are put into the bucket.) "Burst" + // refers to the max amount that could be sent in a single + // burst. (In bytes, the max capacity of the bucket.) + // Rate=0 disables the limiter entirely, which is the default. + // Burst=0 disables burst. (This is not realistic. A + // burst of at least 4K is recommended; the default is higher.) + k_ESteamNetworkingConfig_FakeRateLimit_Send_Rate = 42, + k_ESteamNetworkingConfig_FakeRateLimit_Send_Burst = 43, + k_ESteamNetworkingConfig_FakeRateLimit_Recv_Rate = 44, + k_ESteamNetworkingConfig_FakeRateLimit_Recv_Burst = 45, + + // Timeout used for out-of-order correction. This is used when we see a small + // gap in the sequence number on a packet flow. For example let's say we are + // processing packet 105 when the most recent one was 103. 104 might have dropped, + // but there is also a chance that packets are simply being reordered. It is very + // common on certain types of connections for packet 104 to arrive very soon after 105, + // especially if 104 was large and 104 was small. In this case, when we see packet 105 + // we will shunt it aside and pend it, in the hopes of seeing 104 soon after. If 104 + // arrives before the a timeout occurs, then we can deliver the packets in order to the + // remainder of packet processing, and we will record this as a "correctable" out-of-order + // situation. If the timer expires, then we will process packet 105, and assume for now + // that 104 has dropped. (If 104 later arrives, we will process it, but that will be + // accounted for as uncorrected.) + // + // The default value is 1000 microseconds. Note that the Windows scheduler does not + // have microsecond precision. + // + // Set the value to 0 to disable out of order correction at the packet layer. + // In many cases we are still effectively able to correct the situation because + // reassembly of message fragments is tolerant of fragments packets arriving out of + // order. Also, when messages are decoded and inserted into the queue for the app + // to receive them, we will correct out of order messages that have not been + // dequeued by the app yet. However, when out-of-order packets are corrected + // at the packet layer, they will not reduce the connection quality measure. + // (E.g. SteamNetConnectionRealTimeStatus_t::m_flConnectionQualityLocal) + k_ESteamNetworkingConfig_OutOfOrderCorrectionWindowMicroseconds = 51, + +// +// Callbacks +// + + // On Steam, you may use the default Steam callback dispatch mechanism. If you prefer + // to not use this dispatch mechanism (or you are not running with Steam), or you want + // to associate specific functions with specific listen sockets or connections, you can + // register them as configuration values. + // + // Note also that ISteamNetworkingUtils has some helpers to set these globally. + + /// [connection FnSteamNetConnectionStatusChanged] Callback that will be invoked + /// when the state of a connection changes. + /// + /// IMPORTANT: callbacks are dispatched to the handler that is in effect at the time + /// the event occurs, which might be in another thread. For example, immediately after + /// creating a listen socket, you may receive an incoming connection. And then immediately + /// after this, the remote host may close the connection. All of this could happen + /// before the function to create the listen socket has returned. For this reason, + /// callbacks usually must be in effect at the time of object creation. This means + /// you should set them when you are creating the listen socket or connection, or have + /// them in effect so they will be inherited at the time of object creation. + /// + /// For example: + /// + /// exterm void MyStatusChangedFunc( SteamNetConnectionStatusChangedCallback_t *info ); + /// SteamNetworkingConfigValue_t opt; opt.SetPtr( k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, MyStatusChangedFunc ); + /// SteamNetworkingIPAddr localAddress; localAddress.Clear(); + /// HSteamListenSocket hListenSock = SteamNetworkingSockets()->CreateListenSocketIP( localAddress, 1, &opt ); + /// + /// When accepting an incoming connection, there is no atomic way to switch the + /// callback. However, if the connection is DOA, AcceptConnection() will fail, and + /// you can fetch the state of the connection at that time. + /// + /// If all connections and listen sockets can use the same callback, the simplest + /// method is to set it globally before you create any listen sockets or connections. + k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged = 201, + + /// [global FnSteamNetAuthenticationStatusChanged] Callback that will be invoked + /// when our auth state changes. If you use this, install the callback before creating + /// any connections or listen sockets, and don't change it. + /// See: ISteamNetworkingUtils::SetGlobalCallback_SteamNetAuthenticationStatusChanged + k_ESteamNetworkingConfig_Callback_AuthStatusChanged = 202, + + /// [global FnSteamRelayNetworkStatusChanged] Callback that will be invoked + /// when our auth state changes. If you use this, install the callback before creating + /// any connections or listen sockets, and don't change it. + /// See: ISteamNetworkingUtils::SetGlobalCallback_SteamRelayNetworkStatusChanged + k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged = 203, + + /// [global FnSteamNetworkingMessagesSessionRequest] Callback that will be invoked + /// when a peer wants to initiate a SteamNetworkingMessagesSessionRequest. + /// See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionRequest + k_ESteamNetworkingConfig_Callback_MessagesSessionRequest = 204, + + /// [global FnSteamNetworkingMessagesSessionFailed] Callback that will be invoked + /// when a session you have initiated, or accepted either fails to connect, or loses + /// connection in some unexpected way. + /// See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionFailed + k_ESteamNetworkingConfig_Callback_MessagesSessionFailed = 205, + + /// [global FnSteamNetworkingSocketsCreateConnectionSignaling] Callback that will + /// be invoked when we need to create a signaling object for a connection + /// initiated locally. See: ISteamNetworkingSockets::ConnectP2P, + /// ISteamNetworkingMessages. + k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling = 206, + + /// [global FnSteamNetworkingFakeIPResult] Callback that's invoked when + /// a FakeIP allocation finishes. See: ISteamNetworkingSockets::BeginAsyncRequestFakeIP, + /// ISteamNetworkingUtils::SetGlobalCallback_FakeIPResult + k_ESteamNetworkingConfig_Callback_FakeIPResult = 207, + +// +// P2P connection settings +// + +// /// [listen socket int32] When you create a P2P listen socket, we will automatically +// /// open up a UDP port to listen for LAN connections. LAN connections can be made +// /// without any signaling: both sides can be disconnected from the Internet. +// /// +// /// This value can be set to zero to disable the feature. +// k_ESteamNetworkingConfig_P2P_Discovery_Server_LocalPort = 101, +// +// /// [connection int32] P2P connections can perform broadcasts looking for the peer +// /// on the LAN. +// k_ESteamNetworkingConfig_P2P_Discovery_Client_RemotePort = 102, + + /// [connection string] Comma-separated list of STUN servers that can be used + /// for NAT piercing. If you set this to an empty string, NAT piercing will + /// not be attempted. Also if "public" candidates are not allowed for + /// P2P_Transport_ICE_Enable, then this is ignored. + k_ESteamNetworkingConfig_P2P_STUN_ServerList = 103, + + /// [connection int32] What types of ICE candidates to share with the peer. + /// See k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_xxx values + k_ESteamNetworkingConfig_P2P_Transport_ICE_Enable = 104, + + /// [connection int32] When selecting P2P transport, add various + /// penalties to the scores for selected transports. (Route selection + /// scores are on a scale of milliseconds. The score begins with the + /// route ping time and is then adjusted.) + k_ESteamNetworkingConfig_P2P_Transport_ICE_Penalty = 105, + k_ESteamNetworkingConfig_P2P_Transport_SDR_Penalty = 106, + k_ESteamNetworkingConfig_P2P_TURN_ServerList = 107, + k_ESteamNetworkingConfig_P2P_TURN_UserList = 108, + k_ESteamNetworkingConfig_P2P_TURN_PassList = 109, + //k_ESteamNetworkingConfig_P2P_Transport_LANBeacon_Penalty = 107, + k_ESteamNetworkingConfig_P2P_Transport_ICE_Implementation = 110, + +// +// Settings for SDR relayed connections +// + + /// [global int32] If the first N pings to a port all fail, mark that port as unavailable for + /// a while, and try a different one. Some ISPs and routers may drop the first + /// packet, so setting this to 1 may greatly disrupt communications. + k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFailInitial = 19, + + /// [global int32] If N consecutive pings to a port fail, after having received successful + /// communication, mark that port as unavailable for a while, and try a + /// different one. + k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFail = 20, + + /// [global int32] Minimum number of lifetime pings we need to send, before we think our estimate + /// is solid. The first ping to each cluster is very often delayed because of NAT, + /// routers not having the best route, etc. Until we've sent a sufficient number + /// of pings, our estimate is often inaccurate. Keep pinging until we get this + /// many pings. + k_ESteamNetworkingConfig_SDRClient_MinPingsBeforePingAccurate = 21, + + /// [global int32] Set all steam datagram traffic to originate from the same + /// local port. By default, we open up a new UDP socket (on a different local + /// port) for each relay. This is slightly less optimal, but it works around + /// some routers that don't implement NAT properly. If you have intermittent + /// problems talking to relays that might be NAT related, try toggling + /// this flag + k_ESteamNetworkingConfig_SDRClient_SingleSocket = 22, + + /// [global string] Code of relay cluster to force use. If not empty, we will + /// only use relays in that cluster. E.g. 'iad' + k_ESteamNetworkingConfig_SDRClient_ForceRelayCluster = 29, + + /// [connection string] For development, a base-64 encoded ticket generated + /// using the cert tool. This can be used to connect to a gameserver via SDR + /// without a ticket generated using the game coordinator. (You will still + /// need a key that is trusted for your app, however.) + /// + /// This can also be passed using the SDR_DEVTICKET environment variable + k_ESteamNetworkingConfig_SDRClient_DevTicket = 30, + + /// [global string] For debugging. Override list of relays from the config with + /// this set (maybe just one). Comma-separated list. + k_ESteamNetworkingConfig_SDRClient_ForceProxyAddr = 31, + + /// [global string] For debugging. Force ping times to clusters to be the specified + /// values. A comma separated list of <cluster>=<ms> values. E.g. "sto=32,iad=100" + /// + /// This is a dev configuration value, you probably should not let users modify it + /// in production. + k_ESteamNetworkingConfig_SDRClient_FakeClusterPing = 36, + + /// [global int32] When probing the SteamDatagram network, we limit exploration + /// to the closest N POPs, based on our current best approximated ping to that POP. + k_ESteamNetworkingConfig_SDRClient_LimitPingProbesToNearestN = 60, + +// +// Log levels for debugging information of various subsystems. +// Higher numeric values will cause more stuff to be printed. +// See ISteamNetworkingUtils::SetDebugOutputFunction for more +// information +// +// The default for all values is k_ESteamNetworkingSocketsDebugOutputType_Warning. +// + k_ESteamNetworkingConfig_LogLevel_AckRTT = 13, // [connection int32] RTT calculations for inline pings and replies + k_ESteamNetworkingConfig_LogLevel_PacketDecode = 14, // [connection int32] log SNP packets send/recv + k_ESteamNetworkingConfig_LogLevel_Message = 15, // [connection int32] log each message send/recv + k_ESteamNetworkingConfig_LogLevel_PacketGaps = 16, // [connection int32] dropped packets + k_ESteamNetworkingConfig_LogLevel_P2PRendezvous = 17, // [connection int32] P2P rendezvous messages + k_ESteamNetworkingConfig_LogLevel_SDRRelayPings = 18, // [global int32] Ping relays + + // Experimental. Set the ECN header field on all outbound UDP packets + // -1 = the default, and means "don't set anything". + // 0..3 = set that value. (Even though 0 is the default UDP ECN value, a 0 here means "explicitly set a 0".) + k_ESteamNetworkingConfig_ECN = 999, + + // Deleted, do not use + k_ESteamNetworkingConfig_DELETED_EnumerateDevVars = 35, + + k_ESteamNetworkingConfigValue__Force32Bit = 0x7fffffff +}; + +// Bitmask of types to share +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Default = -1; // Special value - use user defaults +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Disable = 0; // Do not do any ICE work at all or share any IP addresses with peer +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Relay = 1; // Relayed connection via TURN server. +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Private = 2; // host addresses that appear to be link-local or RFC1918 addresses +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Public = 4; // STUN reflexive addresses, or host address that isn't a "private" address +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_All = 0x7fffffff; + +/// In a few places we need to set configuration options on listen sockets and connections, and +/// have them take effect *before* the listen socket or connection really starts doing anything. +/// Creating the object and then setting the options "immediately" after creation doesn't work +/// completely, because network packets could be received between the time the object is created and +/// when the options are applied. To set options at creation time in a reliable way, they must be +/// passed to the creation function. This structure is used to pass those options. +/// +/// For the meaning of these fields, see ISteamNetworkingUtils::SetConfigValue. Basically +/// when the object is created, we just iterate over the list of options and call +/// ISteamNetworkingUtils::SetConfigValueStruct, where the scope arguments are supplied by the +/// object being created. +struct SteamNetworkingConfigValue_t +{ + /// Which option is being set + ESteamNetworkingConfigValue m_eValue; + + /// Which field below did you fill in? + ESteamNetworkingConfigDataType m_eDataType; + + /// Option value + union + { + int32_t m_int32; + int64_t m_int64; + float m_float; + const char *m_string; // Points to your '\0'-terminated buffer + void *m_ptr; + } m_val; + + // + // Shortcut helpers to set the type and value in a single call + // + inline void SetInt32( ESteamNetworkingConfigValue eVal, int32_t data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Int32; + m_val.m_int32 = data; + } + inline void SetInt64( ESteamNetworkingConfigValue eVal, int64_t data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Int64; + m_val.m_int64 = data; + } + inline void SetFloat( ESteamNetworkingConfigValue eVal, float data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Float; + m_val.m_float = data; + } + inline void SetPtr( ESteamNetworkingConfigValue eVal, void *data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Ptr; + m_val.m_ptr = data; + } + inline void SetString( ESteamNetworkingConfigValue eVal, const char *data ) // WARNING - Just saves your pointer. Does NOT make a copy of the string + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Ptr; + m_val.m_string = data; + } +}; + +/// Return value of ISteamNetworkintgUtils::GetConfigValue +enum ESteamNetworkingGetConfigValueResult +{ + k_ESteamNetworkingGetConfigValue_BadValue = -1, // No such configuration value + k_ESteamNetworkingGetConfigValue_BadScopeObj = -2, // Bad connection handle, etc + k_ESteamNetworkingGetConfigValue_BufferTooSmall = -3, // Couldn't fit the result in your buffer + k_ESteamNetworkingGetConfigValue_OK = 1, + k_ESteamNetworkingGetConfigValue_OKInherited = 2, // A value was not set at this level, but the effective (inherited) value was returned. + + k_ESteamNetworkingGetConfigValueResult__Force32Bit = 0x7fffffff +}; + +// +// Debug output +// + +/// Detail level for diagnostic output callback. +/// See ISteamNetworkingUtils::SetDebugOutputFunction +enum ESteamNetworkingSocketsDebugOutputType +{ + k_ESteamNetworkingSocketsDebugOutputType_None = 0, + k_ESteamNetworkingSocketsDebugOutputType_Bug = 1, // You used the API incorrectly, or an internal error happened + k_ESteamNetworkingSocketsDebugOutputType_Error = 2, // Run-time error condition that isn't the result of a bug. (E.g. we are offline, cannot bind a port, etc) + k_ESteamNetworkingSocketsDebugOutputType_Important = 3, // Nothing is wrong, but this is an important notification + k_ESteamNetworkingSocketsDebugOutputType_Warning = 4, + k_ESteamNetworkingSocketsDebugOutputType_Msg = 5, // Recommended amount + k_ESteamNetworkingSocketsDebugOutputType_Verbose = 6, // Quite a bit + k_ESteamNetworkingSocketsDebugOutputType_Debug = 7, // Practically everything + k_ESteamNetworkingSocketsDebugOutputType_Everything = 8, // Wall of text, detailed packet contents breakdown, etc + + k_ESteamNetworkingSocketsDebugOutputType__Force32Bit = 0x7fffffff +}; + +/// Setup callback for debug output, and the desired verbosity you want. +typedef void (*FSteamNetworkingSocketsDebugOutput)( ESteamNetworkingSocketsDebugOutputType nType, const char *pszMsg ); + +// +// Valve data centers +// + +/// Convert 3- or 4-character ID to 32-bit int. +inline SteamNetworkingPOPID CalculateSteamNetworkingPOPIDFromString( const char *pszCode ) +{ + // OK we made a bad decision when we decided how to pack 3-character codes into a uint32. We'd like to support + // 4-character codes, but we don't want to break compatibility. The migration path has some subtleties that make + // this nontrivial, and there are already some IDs stored in SQL. Ug, so the 4 character code "abcd" will + // be encoded with the digits like "0xddaabbcc". + // + // Also: we don't currently use 1- or 2-character codes, but if ever do in the future, let's make sure don't read + // past the end of the string and access uninitialized memory. (And if the string is empty, we always want + // to return 0 and not read bytes past the '\0'.) + // + // There is also extra paranoia to make sure the bytes are not treated as signed. + SteamNetworkingPOPID result = (uint32)(uint8)pszCode[0] << 16U; + if ( result && pszCode[1] ) + { + result |= ( (uint32)(uint8)pszCode[1] << 8U ); + if ( pszCode[2] ) + { + result |= (uint32)(uint8)pszCode[2] | ( (uint32)(uint8)pszCode[3] << 24U ); + } + } + return result; +} + +/// Unpack integer to string representation, including terminating '\0' +/// +/// See also SteamNetworkingPOPIDRender +template <int N> +inline void GetSteamNetworkingLocationPOPStringFromID( SteamNetworkingPOPID id, char (&szCode)[N] ) +{ + static_assert( N >= 5, "Fixed-size buffer not big enough to hold SDR POP ID" ); + szCode[0] = char( id >> 16U ); + szCode[1] = char( id >> 8U ); + szCode[2] = char( id ); + szCode[3] = char( id >> 24U ); // See comment above about deep regret and sadness + szCode[4] = 0; +} + +/// The POPID "dev" is used in non-production environments for testing. +const SteamNetworkingPOPID k_SteamDatagramPOPID_dev = ( (uint32)'d' << 16U ) | ( (uint32)'e' << 8U ) | (uint32)'v'; + +#ifndef API_GEN + +/// Utility class for printing a SteamNetworkingPOPID. +struct SteamNetworkingPOPIDRender +{ + SteamNetworkingPOPIDRender( SteamNetworkingPOPID x ) { GetSteamNetworkingLocationPOPStringFromID( x, buf ); } + inline const char *c_str() const { return buf; } +private: + char buf[ 8 ]; +}; + +#endif + +/////////////////////////////////////////////////////////////////////////////// +// +// Internal stuff +#ifndef API_GEN + +// For code compatibility +typedef SteamNetworkingMessage_t ISteamNetworkingMessage; +typedef SteamNetworkingErrMsg SteamDatagramErrMsg; + +inline void SteamNetworkingIPAddr::Clear() { memset( this, 0, sizeof(*this) ); } +inline bool SteamNetworkingIPAddr::IsIPv6AllZeros() const { const uint64 *q = (const uint64 *)m_ipv6; return q[0] == 0 && q[1] == 0; } +inline void SteamNetworkingIPAddr::SetIPv6( const uint8 *ipv6, uint16 nPort ) { memcpy( m_ipv6, ipv6, 16 ); m_port = nPort; } +inline void SteamNetworkingIPAddr::SetIPv4( uint32 nIP, uint16 nPort ) { m_ipv4.m_8zeros = 0; m_ipv4.m_0000 = 0; m_ipv4.m_ffff = 0xffff; m_ipv4.m_ip[0] = uint8(nIP>>24); m_ipv4.m_ip[1] = uint8(nIP>>16); m_ipv4.m_ip[2] = uint8(nIP>>8); m_ipv4.m_ip[3] = uint8(nIP); m_port = nPort; } +inline bool SteamNetworkingIPAddr::IsIPv4() const { return m_ipv4.m_8zeros == 0 && m_ipv4.m_0000 == 0 && m_ipv4.m_ffff == 0xffff; } +inline uint32 SteamNetworkingIPAddr::GetIPv4() const { return IsIPv4() ? ( (uint32(m_ipv4.m_ip[0])<<24) | (uint32(m_ipv4.m_ip[1])<<16) | (uint32(m_ipv4.m_ip[2])<<8) | uint32(m_ipv4.m_ip[3]) ) : 0; } +inline void SteamNetworkingIPAddr::SetIPv6LocalHost( uint16 nPort ) { m_ipv4.m_8zeros = 0; m_ipv4.m_0000 = 0; m_ipv4.m_ffff = 0; m_ipv6[12] = 0; m_ipv6[13] = 0; m_ipv6[14] = 0; m_ipv6[15] = 1; m_port = nPort; } +inline bool SteamNetworkingIPAddr::IsLocalHost() const { return ( m_ipv4.m_8zeros == 0 && m_ipv4.m_0000 == 0 && m_ipv4.m_ffff == 0 && m_ipv6[12] == 0 && m_ipv6[13] == 0 && m_ipv6[14] == 0 && m_ipv6[15] == 1 ) || ( GetIPv4() == 0x7f000001 ); } +inline bool SteamNetworkingIPAddr::operator==(const SteamNetworkingIPAddr &x ) const { return memcmp( this, &x, sizeof(SteamNetworkingIPAddr) ) == 0; } + +inline void SteamNetworkingIdentity::Clear() { memset( this, 0, sizeof(*this) ); } +inline bool SteamNetworkingIdentity::IsInvalid() const { return m_eType == k_ESteamNetworkingIdentityType_Invalid; } +inline void SteamNetworkingIdentity::SetSteamID( CSteamID steamID ) { SetSteamID64( steamID.ConvertToUint64() ); } +inline CSteamID SteamNetworkingIdentity::GetSteamID() const { return CSteamID( GetSteamID64() ); } +inline void SteamNetworkingIdentity::SetSteamID64( uint64 steamID ) { m_eType = k_ESteamNetworkingIdentityType_SteamID; m_cbSize = sizeof( m_steamID64 ); m_steamID64 = steamID; } +inline uint64 SteamNetworkingIdentity::GetSteamID64() const { return m_eType == k_ESteamNetworkingIdentityType_SteamID ? m_steamID64 : 0; } +inline bool SteamNetworkingIdentity::SetXboxPairwiseID( const char *pszString ) { size_t l = strlen( pszString ); if ( l < 1 || l >= sizeof(m_szXboxPairwiseID) ) return false; + m_eType = k_ESteamNetworkingIdentityType_XboxPairwiseID; m_cbSize = int(l+1); memcpy( m_szXboxPairwiseID, pszString, m_cbSize ); return true; } +inline const char *SteamNetworkingIdentity::GetXboxPairwiseID() const { return m_eType == k_ESteamNetworkingIdentityType_XboxPairwiseID ? m_szXboxPairwiseID : NULL; } +inline void SteamNetworkingIdentity::SetPSNID( uint64 id ) { m_eType = k_ESteamNetworkingIdentityType_SonyPSN; m_cbSize = sizeof( m_PSNID ); m_PSNID = id; } +inline uint64 SteamNetworkingIdentity::GetPSNID() const { return m_eType == k_ESteamNetworkingIdentityType_SonyPSN ? m_PSNID : 0; } +inline void SteamNetworkingIdentity::SetStadiaID( uint64 id ) { m_eType = k_ESteamNetworkingIdentityType_GoogleStadia; m_cbSize = sizeof( m_stadiaID ); m_stadiaID = id; } +inline uint64 SteamNetworkingIdentity::GetStadiaID() const { return m_eType == k_ESteamNetworkingIdentityType_GoogleStadia ? m_stadiaID : 0; } +inline void SteamNetworkingIdentity::SetIPAddr( const SteamNetworkingIPAddr &addr ) { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip = addr; } +inline const SteamNetworkingIPAddr *SteamNetworkingIdentity::GetIPAddr() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? &m_ip : NULL; } +inline void SteamNetworkingIdentity::SetIPv4Addr( uint32 nIPv4, uint16 nPort ) { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip.SetIPv4( nIPv4, nPort ); } +inline uint32 SteamNetworkingIdentity::GetIPv4() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? m_ip.GetIPv4() : 0; } +inline ESteamNetworkingFakeIPType SteamNetworkingIdentity::GetFakeIPType() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? m_ip.GetFakeIPType() : k_ESteamNetworkingFakeIPType_Invalid; } +inline void SteamNetworkingIdentity::SetLocalHost() { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip.SetIPv6LocalHost(); } +inline bool SteamNetworkingIdentity::IsLocalHost() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress && m_ip.IsLocalHost(); } +inline bool SteamNetworkingIdentity::SetGenericString( const char *pszString ) { size_t l = strlen( pszString ); if ( l >= sizeof(m_szGenericString) ) return false; + m_eType = k_ESteamNetworkingIdentityType_GenericString; m_cbSize = int(l+1); memcpy( m_szGenericString, pszString, m_cbSize ); return true; } +inline const char *SteamNetworkingIdentity::GetGenericString() const { return m_eType == k_ESteamNetworkingIdentityType_GenericString ? m_szGenericString : NULL; } +inline bool SteamNetworkingIdentity::SetGenericBytes( const void *data, size_t cbLen ) { if ( cbLen > sizeof(m_genericBytes) ) return false; + m_eType = k_ESteamNetworkingIdentityType_GenericBytes; m_cbSize = int(cbLen); memcpy( m_genericBytes, data, m_cbSize ); return true; } +inline const uint8 *SteamNetworkingIdentity::GetGenericBytes( int &cbLen ) const { if ( m_eType != k_ESteamNetworkingIdentityType_GenericBytes ) return NULL; + cbLen = m_cbSize; return m_genericBytes; } +inline bool SteamNetworkingIdentity::operator==(const SteamNetworkingIdentity &x ) const { return m_eType == x.m_eType && m_cbSize == x.m_cbSize && memcmp( m_genericBytes, x.m_genericBytes, m_cbSize ) == 0; } +inline void SteamNetworkingMessage_t::Release() { (*m_pfnRelease)( this ); } + +#endif // #ifndef API_GEN + +#endif // #ifndef STEAMNETWORKINGTYPES diff --git a/lib/linux/include/steam/steamtypes.h b/lib/linux/include/steam/steamtypes.h index f74df1a..657f5b3 100644 --- a/lib/linux/include/steam/steamtypes.h +++ b/lib/linux/include/steam/steamtypes.h @@ -1,42 +1,40 @@ -//========= Copyright © 1996-2008, Valve LLC, All rights reserved. ============ -// -// Purpose: -// -//============================================================================= +//========= Copyright 1996-2022, Valve LLC, All rights reserved. ============ #ifndef STEAMTYPES_H #define STEAMTYPES_H -#ifdef _WIN32 -#pragma once -#endif #define S_CALLTYPE __cdecl +// WARNING: __cdecl is potentially #defined away in steam_api_common.h // Steam-specific types. Defined here so this header file can be included in other code bases. #ifndef WCHARTYPES_H typedef unsigned char uint8; #endif -#if defined( __GNUC__ ) && !defined(POSIX) +#ifdef __GNUC__ #if __GNUC__ < 4 #error "Steamworks requires GCC 4.X (4.2 or 4.4 have been tested)" #endif - #define POSIX 1 #endif -#if defined(__x86_64__) || defined(_WIN64) +#if defined(__LP64__) || defined(__x86_64__) || defined(_WIN64) || defined(__aarch64__) || defined(__s390x__) #define X64BITS #endif +#if !defined(VALVE_BIG_ENDIAN) +#if defined(_PS3) // Make sure VALVE_BIG_ENDIAN gets set on PS3, may already be set previously in Valve internal code. -#if !defined(VALVE_BIG_ENDIAN) && defined(_PS3) -#define VALVE_BIG_ENDIAN +#define VALVE_BIG_ENDIAN 1 +#endif +#if defined( __GNUC__ ) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#define VALVE_BIG_ENDIAN 1 +#endif #endif typedef unsigned char uint8; typedef signed char int8; -#if defined( _WIN32 ) +#if defined( _WIN32 ) && !defined( __GNUC__ ) typedef __int16 int16; typedef unsigned __int16 uint16; @@ -84,98 +82,101 @@ typedef unsigned int uintp; #endif // else _WIN32 -#ifdef API_GEN -# define CLANG_ATTR(ATTR) __attribute__((annotate( ATTR ))) -#else -# define CLANG_ATTR(ATTR) -#endif - -#define METHOD_DESC(DESC) CLANG_ATTR( "desc:" #DESC ";" ) -#define IGNOREATTR() CLANG_ATTR( "ignore" ) -#define OUT_STRUCT() CLANG_ATTR( "out_struct: ;" ) -#define OUT_STRING() CLANG_ATTR( "out_string: ;" ) -#define OUT_ARRAY_CALL(COUNTER,FUNCTION,PARAMS) CLANG_ATTR( "out_array_call:" #COUNTER "," #FUNCTION "," #PARAMS ";" ) -#define OUT_ARRAY_COUNT(COUNTER, DESC) CLANG_ATTR( "out_array_count:" #COUNTER ";desc:" #DESC ) -#define ARRAY_COUNT(COUNTER) CLANG_ATTR( "array_count:" #COUNTER ";" ) -#define ARRAY_COUNT_D(COUNTER, DESC) CLANG_ATTR( "array_count:" #COUNTER ";desc:" #DESC ) -#define BUFFER_COUNT(COUNTER) CLANG_ATTR( "buffer_count:" #COUNTER ";" ) -#define OUT_BUFFER_COUNT(COUNTER) CLANG_ATTR( "out_buffer_count:" #COUNTER ";" ) -#define OUT_STRING_COUNT(COUNTER) CLANG_ATTR( "out_string_count:" #COUNTER ";" ) -#define DESC(DESC) CLANG_ATTR("desc:" #DESC ";") -#define CALL_RESULT(RESULT_TYPE) CLANG_ATTR("callresult:" #RESULT_TYPE ";") -#define CALL_BACK(RESULT_TYPE) CLANG_ATTR("callback:" #RESULT_TYPE ";") - -const int k_cubSaltSize = 8; -typedef uint8 Salt_t[ k_cubSaltSize ]; - -//----------------------------------------------------------------------------- -// GID (GlobalID) stuff -// This is a globally unique identifier. It's guaranteed to be unique across all -// racks and servers for as long as a given universe persists. -//----------------------------------------------------------------------------- -// NOTE: for GID parsing/rendering and other utils, see gid.h -typedef uint64 GID_t; - -const GID_t k_GIDNil = 0xffffffffffffffffull; - -// For convenience, we define a number of types that are just new names for GIDs -typedef uint64 JobID_t; // Each Job has a unique ID -typedef GID_t TxnID_t; // Each financial transaction has a unique ID - -const GID_t k_TxnIDNil = k_GIDNil; -const GID_t k_TxnIDUnknown = 0; - -const JobID_t k_JobIDNil = 0xffffffffffffffffull; - -// this is baked into client messages and interfaces as an int, -// make sure we never break this. -typedef uint32 PackageId_t; -const PackageId_t k_uPackageIdFreeSub = 0x0; -const PackageId_t k_uPackageIdInvalid = 0xFFFFFFFF; - -typedef uint32 BundleId_t; -const BundleId_t k_uBundleIdInvalid = 0; - -// this is baked into client messages and interfaces as an int, -// make sure we never break this. typedef uint32 AppId_t; const AppId_t k_uAppIdInvalid = 0x0; -typedef uint64 AssetClassId_t; -const AssetClassId_t k_ulAssetClassIdInvalid = 0x0; - -typedef uint32 PhysicalItemId_t; -const PhysicalItemId_t k_uPhysicalItemIdInvalid = 0x0; - - -// this is baked into client messages and interfaces as an int, -// make sure we never break this. AppIds and DepotIDs also presently -// share the same namespace, but since we'd like to change that in the future -// I've defined it seperately here. +// AppIds and DepotIDs also presently share the same namespace typedef uint32 DepotId_t; const DepotId_t k_uDepotIdInvalid = 0x0; -// RTime32 -// We use this 32 bit time representing real world time. -// It offers 1 second resolution beginning on January 1, 1970 (Unix time) +// RTime32. Seconds elapsed since Jan 1 1970, i.e. unix timestamp. +// It's the same as time_t, but it is always 32-bit and unsigned. typedef uint32 RTime32; -typedef uint32 CellID_t; -const CellID_t k_uCellIDInvalid = 0xFFFFFFFF; - // handle to a Steam API call typedef uint64 SteamAPICall_t; const SteamAPICall_t k_uAPICallInvalid = 0x0; typedef uint32 AccountID_t; +const AccountID_t k_uAccountIdInvalid = 0; -typedef uint32 PartnerId_t; -const PartnerId_t k_uPartnerIdInvalid = 0; +// Party Beacon ID +typedef uint64 PartyBeaconID_t; +const PartyBeaconID_t k_ulPartyBeaconIdInvalid = 0; -// ID for a depot content manifest -typedef uint64 ManifestId_t; -const ManifestId_t k_uManifestIdInvalid = 0; +enum ESteamIPType +{ + k_ESteamIPTypeIPv4 = 0, + k_ESteamIPTypeIPv6 = 1, +}; +#pragma pack( push, 1 ) +struct SteamIPAddress_t +{ + union { + + uint32 m_unIPv4; // Host order + uint8 m_rgubIPv6[16]; // Network order! Same as inaddr_in6. (0011:2233:4455:6677:8899:aabb:ccdd:eeff) + + // Internal use only + uint64 m_ipv6Qword[2]; // big endian + }; + + ESteamIPType m_eType; + + bool IsSet() const + { + if ( k_ESteamIPTypeIPv4 == m_eType ) + { + return m_unIPv4 != 0; + } + else + { + return m_ipv6Qword[0] !=0 || m_ipv6Qword[1] != 0; + } + } + + static SteamIPAddress_t IPv4Any() + { + SteamIPAddress_t ipOut; + ipOut.m_eType = k_ESteamIPTypeIPv4; + ipOut.m_unIPv4 = 0; + + return ipOut; + } + + static SteamIPAddress_t IPv6Any() + { + SteamIPAddress_t ipOut; + ipOut.m_eType = k_ESteamIPTypeIPv6; + ipOut.m_ipv6Qword[0] = 0; + ipOut.m_ipv6Qword[1] = 0; + + return ipOut; + } + + static SteamIPAddress_t IPv4Loopback() + { + SteamIPAddress_t ipOut; + ipOut.m_eType = k_ESteamIPTypeIPv4; + ipOut.m_unIPv4 = 0x7f000001; + + return ipOut; + } + + static SteamIPAddress_t IPv6Loopback() + { + SteamIPAddress_t ipOut; + ipOut.m_eType = k_ESteamIPTypeIPv6; + ipOut.m_ipv6Qword[0] = 0; + ipOut.m_ipv6Qword[1] = 0; + ipOut.m_rgubIPv6[15] = 1; + + return ipOut; + } +}; + +#pragma pack( pop ) #endif // STEAMTYPES_H diff --git a/lib/linux/include/t1tables.h b/lib/linux/include/t1tables.h deleted file mode 100644 index 61aefdd..0000000 --- a/lib/linux/include/t1tables.h +++ /dev/null @@ -1,760 +0,0 @@ -/***************************************************************************/ -/* */ -/* t1tables.h */ -/* */ -/* Basic Type 1/Type 2 tables definitions and interface (specification */ -/* only). */ -/* */ -/* Copyright 1996-2004, 2006, 2008, 2009, 2011, 2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __T1TABLES_H__ -#define __T1TABLES_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* type1_tables */ - /* */ - /* <Title> */ - /* Type 1 Tables */ - /* */ - /* <Abstract> */ - /* Type~1 (PostScript) specific font tables. */ - /* */ - /* <Description> */ - /* This section contains the definition of Type 1-specific tables, */ - /* including structures related to other PostScript font formats. */ - /* */ - /* <Order> */ - /* PS_FontInfoRec */ - /* PS_FontInfo */ - /* PS_PrivateRec */ - /* PS_Private */ - /* */ - /* CID_FaceDictRec */ - /* CID_FaceDict */ - /* CID_FaceInfoRec */ - /* CID_FaceInfo */ - /* */ - /* FT_Has_PS_Glyph_Names */ - /* FT_Get_PS_Font_Info */ - /* FT_Get_PS_Font_Private */ - /* FT_Get_PS_Font_Value */ - /* */ - /* T1_Blend_Flags */ - /* T1_EncodingType */ - /* PS_Dict_Keys */ - /* */ - /*************************************************************************/ - - - /* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */ - /* structures in order to support Multiple Master fonts. */ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_FontInfoRec */ - /* */ - /* <Description> */ - /* A structure used to model a Type~1 or Type~2 FontInfo dictionary. */ - /* Note that for Multiple Master fonts, each instance has its own */ - /* FontInfo dictionary. */ - /* */ - typedef struct PS_FontInfoRec_ - { - FT_String* version; - FT_String* notice; - FT_String* full_name; - FT_String* family_name; - FT_String* weight; - FT_Long italic_angle; - FT_Bool is_fixed_pitch; - FT_Short underline_position; - FT_UShort underline_thickness; - - } PS_FontInfoRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_FontInfo */ - /* */ - /* <Description> */ - /* A handle to a @PS_FontInfoRec structure. */ - /* */ - typedef struct PS_FontInfoRec_* PS_FontInfo; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_FontInfo */ - /* */ - /* <Description> */ - /* This type is equivalent to @PS_FontInfoRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef PS_FontInfoRec T1_FontInfo; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_PrivateRec */ - /* */ - /* <Description> */ - /* A structure used to model a Type~1 or Type~2 private dictionary. */ - /* Note that for Multiple Master fonts, each instance has its own */ - /* Private dictionary. */ - /* */ - typedef struct PS_PrivateRec_ - { - FT_Int unique_id; - FT_Int lenIV; - - FT_Byte num_blue_values; - FT_Byte num_other_blues; - FT_Byte num_family_blues; - FT_Byte num_family_other_blues; - - FT_Short blue_values[14]; - FT_Short other_blues[10]; - - FT_Short family_blues [14]; - FT_Short family_other_blues[10]; - - FT_Fixed blue_scale; - FT_Int blue_shift; - FT_Int blue_fuzz; - - FT_UShort standard_width[1]; - FT_UShort standard_height[1]; - - FT_Byte num_snap_widths; - FT_Byte num_snap_heights; - FT_Bool force_bold; - FT_Bool round_stem_up; - - FT_Short snap_widths [13]; /* including std width */ - FT_Short snap_heights[13]; /* including std height */ - - FT_Fixed expansion_factor; - - FT_Long language_group; - FT_Long password; - - FT_Short min_feature[2]; - - } PS_PrivateRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_Private */ - /* */ - /* <Description> */ - /* A handle to a @PS_PrivateRec structure. */ - /* */ - typedef struct PS_PrivateRec_* PS_Private; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_Private */ - /* */ - /* <Description> */ - /* This type is equivalent to @PS_PrivateRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef PS_PrivateRec T1_Private; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* T1_Blend_Flags */ - /* */ - /* <Description> */ - /* A set of flags used to indicate which fields are present in a */ - /* given blend dictionary (font info or private). Used to support */ - /* Multiple Masters fonts. */ - /* */ - /* <Values> */ - /* T1_BLEND_UNDERLINE_POSITION :: */ - /* T1_BLEND_UNDERLINE_THICKNESS :: */ - /* T1_BLEND_ITALIC_ANGLE :: */ - /* T1_BLEND_BLUE_VALUES :: */ - /* T1_BLEND_OTHER_BLUES :: */ - /* T1_BLEND_STANDARD_WIDTH :: */ - /* T1_BLEND_STANDARD_HEIGHT :: */ - /* T1_BLEND_STEM_SNAP_WIDTHS :: */ - /* T1_BLEND_STEM_SNAP_HEIGHTS :: */ - /* T1_BLEND_BLUE_SCALE :: */ - /* T1_BLEND_BLUE_SHIFT :: */ - /* T1_BLEND_FAMILY_BLUES :: */ - /* T1_BLEND_FAMILY_OTHER_BLUES :: */ - /* T1_BLEND_FORCE_BOLD :: */ - /* */ - typedef enum T1_Blend_Flags_ - { - /* required fields in a FontInfo blend dictionary */ - T1_BLEND_UNDERLINE_POSITION = 0, - T1_BLEND_UNDERLINE_THICKNESS, - T1_BLEND_ITALIC_ANGLE, - - /* required fields in a Private blend dictionary */ - T1_BLEND_BLUE_VALUES, - T1_BLEND_OTHER_BLUES, - T1_BLEND_STANDARD_WIDTH, - T1_BLEND_STANDARD_HEIGHT, - T1_BLEND_STEM_SNAP_WIDTHS, - T1_BLEND_STEM_SNAP_HEIGHTS, - T1_BLEND_BLUE_SCALE, - T1_BLEND_BLUE_SHIFT, - T1_BLEND_FAMILY_BLUES, - T1_BLEND_FAMILY_OTHER_BLUES, - T1_BLEND_FORCE_BOLD, - - T1_BLEND_MAX /* do not remove */ - - } T1_Blend_Flags; - - - /* these constants are deprecated; use the corresponding */ - /* `T1_Blend_Flags' values instead */ -#define t1_blend_underline_position T1_BLEND_UNDERLINE_POSITION -#define t1_blend_underline_thickness T1_BLEND_UNDERLINE_THICKNESS -#define t1_blend_italic_angle T1_BLEND_ITALIC_ANGLE -#define t1_blend_blue_values T1_BLEND_BLUE_VALUES -#define t1_blend_other_blues T1_BLEND_OTHER_BLUES -#define t1_blend_standard_widths T1_BLEND_STANDARD_WIDTH -#define t1_blend_standard_height T1_BLEND_STANDARD_HEIGHT -#define t1_blend_stem_snap_widths T1_BLEND_STEM_SNAP_WIDTHS -#define t1_blend_stem_snap_heights T1_BLEND_STEM_SNAP_HEIGHTS -#define t1_blend_blue_scale T1_BLEND_BLUE_SCALE -#define t1_blend_blue_shift T1_BLEND_BLUE_SHIFT -#define t1_blend_family_blues T1_BLEND_FAMILY_BLUES -#define t1_blend_family_other_blues T1_BLEND_FAMILY_OTHER_BLUES -#define t1_blend_force_bold T1_BLEND_FORCE_BOLD -#define t1_blend_max T1_BLEND_MAX - - /* */ - - - /* maximum number of Multiple Masters designs, as defined in the spec */ -#define T1_MAX_MM_DESIGNS 16 - - /* maximum number of Multiple Masters axes, as defined in the spec */ -#define T1_MAX_MM_AXIS 4 - - /* maximum number of elements in a design map */ -#define T1_MAX_MM_MAP_POINTS 20 - - - /* this structure is used to store the BlendDesignMap entry for an axis */ - typedef struct PS_DesignMap_ - { - FT_Byte num_points; - FT_Long* design_points; - FT_Fixed* blend_points; - - } PS_DesignMapRec, *PS_DesignMap; - - /* backwards-compatible definition */ - typedef PS_DesignMapRec T1_DesignMap; - - - typedef struct PS_BlendRec_ - { - FT_UInt num_designs; - FT_UInt num_axis; - - FT_String* axis_names[T1_MAX_MM_AXIS]; - FT_Fixed* design_pos[T1_MAX_MM_DESIGNS]; - PS_DesignMapRec design_map[T1_MAX_MM_AXIS]; - - FT_Fixed* weight_vector; - FT_Fixed* default_weight_vector; - - PS_FontInfo font_infos[T1_MAX_MM_DESIGNS + 1]; - PS_Private privates [T1_MAX_MM_DESIGNS + 1]; - - FT_ULong blend_bitflags; - - FT_BBox* bboxes [T1_MAX_MM_DESIGNS + 1]; - - /* since 2.3.0 */ - - /* undocumented, optional: the default design instance; */ - /* corresponds to default_weight_vector -- */ - /* num_default_design_vector == 0 means it is not present */ - /* in the font and associated metrics files */ - FT_UInt default_design_vector[T1_MAX_MM_DESIGNS]; - FT_UInt num_default_design_vector; - - } PS_BlendRec, *PS_Blend; - - - /* backwards-compatible definition */ - typedef PS_BlendRec T1_Blend; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceDictRec */ - /* */ - /* <Description> */ - /* A structure used to represent data in a CID top-level dictionary. */ - /* */ - typedef struct CID_FaceDictRec_ - { - PS_PrivateRec private_dict; - - FT_UInt len_buildchar; - FT_Fixed forcebold_threshold; - FT_Pos stroke_width; - FT_Fixed expansion_factor; - - FT_Byte paint_type; - FT_Byte font_type; - FT_Matrix font_matrix; - FT_Vector font_offset; - - FT_UInt num_subrs; - FT_ULong subrmap_offset; - FT_Int sd_bytes; - - } CID_FaceDictRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceDict */ - /* */ - /* <Description> */ - /* A handle to a @CID_FaceDictRec structure. */ - /* */ - typedef struct CID_FaceDictRec_* CID_FaceDict; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FontDict */ - /* */ - /* <Description> */ - /* This type is equivalent to @CID_FaceDictRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef CID_FaceDictRec CID_FontDict; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceInfoRec */ - /* */ - /* <Description> */ - /* A structure used to represent CID Face information. */ - /* */ - typedef struct CID_FaceInfoRec_ - { - FT_String* cid_font_name; - FT_Fixed cid_version; - FT_Int cid_font_type; - - FT_String* registry; - FT_String* ordering; - FT_Int supplement; - - PS_FontInfoRec font_info; - FT_BBox font_bbox; - FT_ULong uid_base; - - FT_Int num_xuid; - FT_ULong xuid[16]; - - FT_ULong cidmap_offset; - FT_Int fd_bytes; - FT_Int gd_bytes; - FT_ULong cid_count; - - FT_Int num_dicts; - CID_FaceDict font_dicts; - - FT_ULong data_offset; - - } CID_FaceInfoRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceInfo */ - /* */ - /* <Description> */ - /* A handle to a @CID_FaceInfoRec structure. */ - /* */ - typedef struct CID_FaceInfoRec_* CID_FaceInfo; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_Info */ - /* */ - /* <Description> */ - /* This type is equivalent to @CID_FaceInfoRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef CID_FaceInfoRec CID_Info; - - - /************************************************************************ - * - * @function: - * FT_Has_PS_Glyph_Names - * - * @description: - * Return true if a given face provides reliable PostScript glyph - * names. This is similar to using the @FT_HAS_GLYPH_NAMES macro, - * except that certain fonts (mostly TrueType) contain incorrect - * glyph name tables. - * - * When this function returns true, the caller is sure that the glyph - * names returned by @FT_Get_Glyph_Name are reliable. - * - * @input: - * face :: - * face handle - * - * @return: - * Boolean. True if glyph names are reliable. - * - */ - FT_EXPORT( FT_Int ) - FT_Has_PS_Glyph_Names( FT_Face face ); - - - /************************************************************************ - * - * @function: - * FT_Get_PS_Font_Info - * - * @description: - * Retrieve the @PS_FontInfoRec structure corresponding to a given - * PostScript font. - * - * @input: - * face :: - * PostScript face handle. - * - * @output: - * afont_info :: - * Output font info structure pointer. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The string pointers within the font info structure are owned by - * the face and don't need to be freed by the caller. - * - * If the font's format is not PostScript-based, this function will - * return the `FT_Err_Invalid_Argument' error code. - * - */ - FT_EXPORT( FT_Error ) - FT_Get_PS_Font_Info( FT_Face face, - PS_FontInfo afont_info ); - - - /************************************************************************ - * - * @function: - * FT_Get_PS_Font_Private - * - * @description: - * Retrieve the @PS_PrivateRec structure corresponding to a given - * PostScript font. - * - * @input: - * face :: - * PostScript face handle. - * - * @output: - * afont_private :: - * Output private dictionary structure pointer. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The string pointers within the @PS_PrivateRec structure are owned by - * the face and don't need to be freed by the caller. - * - * If the font's format is not PostScript-based, this function returns - * the `FT_Err_Invalid_Argument' error code. - * - */ - FT_EXPORT( FT_Error ) - FT_Get_PS_Font_Private( FT_Face face, - PS_Private afont_private ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* T1_EncodingType */ - /* */ - /* <Description> */ - /* An enumeration describing the `Encoding' entry in a Type 1 */ - /* dictionary. */ - /* */ - /* <Values> */ - /* T1_ENCODING_TYPE_NONE :: */ - /* T1_ENCODING_TYPE_ARRAY :: */ - /* T1_ENCODING_TYPE_STANDARD :: */ - /* T1_ENCODING_TYPE_ISOLATIN1 :: */ - /* T1_ENCODING_TYPE_EXPERT :: */ - /* */ - typedef enum T1_EncodingType_ - { - T1_ENCODING_TYPE_NONE = 0, - T1_ENCODING_TYPE_ARRAY, - T1_ENCODING_TYPE_STANDARD, - T1_ENCODING_TYPE_ISOLATIN1, - T1_ENCODING_TYPE_EXPERT - - } T1_EncodingType; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* PS_Dict_Keys */ - /* */ - /* <Description> */ - /* An enumeration used in calls to @FT_Get_PS_Font_Value to identify */ - /* the Type~1 dictionary entry to retrieve. */ - /* */ - /* <Values> */ - /* PS_DICT_FONT_TYPE :: */ - /* PS_DICT_FONT_MATRIX :: */ - /* PS_DICT_FONT_BBOX :: */ - /* PS_DICT_PAINT_TYPE :: */ - /* PS_DICT_FONT_NAME :: */ - /* PS_DICT_UNIQUE_ID :: */ - /* PS_DICT_NUM_CHAR_STRINGS :: */ - /* PS_DICT_CHAR_STRING_KEY :: */ - /* PS_DICT_CHAR_STRING :: */ - /* PS_DICT_ENCODING_TYPE :: */ - /* PS_DICT_ENCODING_ENTRY :: */ - /* PS_DICT_NUM_SUBRS :: */ - /* PS_DICT_SUBR :: */ - /* PS_DICT_STD_HW :: */ - /* PS_DICT_STD_VW :: */ - /* PS_DICT_NUM_BLUE_VALUES :: */ - /* PS_DICT_BLUE_VALUE :: */ - /* PS_DICT_BLUE_FUZZ :: */ - /* PS_DICT_NUM_OTHER_BLUES :: */ - /* PS_DICT_OTHER_BLUE :: */ - /* PS_DICT_NUM_FAMILY_BLUES :: */ - /* PS_DICT_FAMILY_BLUE :: */ - /* PS_DICT_NUM_FAMILY_OTHER_BLUES :: */ - /* PS_DICT_FAMILY_OTHER_BLUE :: */ - /* PS_DICT_BLUE_SCALE :: */ - /* PS_DICT_BLUE_SHIFT :: */ - /* PS_DICT_NUM_STEM_SNAP_H :: */ - /* PS_DICT_STEM_SNAP_H :: */ - /* PS_DICT_NUM_STEM_SNAP_V :: */ - /* PS_DICT_STEM_SNAP_V :: */ - /* PS_DICT_FORCE_BOLD :: */ - /* PS_DICT_RND_STEM_UP :: */ - /* PS_DICT_MIN_FEATURE :: */ - /* PS_DICT_LEN_IV :: */ - /* PS_DICT_PASSWORD :: */ - /* PS_DICT_LANGUAGE_GROUP :: */ - /* PS_DICT_VERSION :: */ - /* PS_DICT_NOTICE :: */ - /* PS_DICT_FULL_NAME :: */ - /* PS_DICT_FAMILY_NAME :: */ - /* PS_DICT_WEIGHT :: */ - /* PS_DICT_IS_FIXED_PITCH :: */ - /* PS_DICT_UNDERLINE_POSITION :: */ - /* PS_DICT_UNDERLINE_THICKNESS :: */ - /* PS_DICT_FS_TYPE :: */ - /* PS_DICT_ITALIC_ANGLE :: */ - /* */ - typedef enum PS_Dict_Keys_ - { - /* conventionally in the font dictionary */ - PS_DICT_FONT_TYPE, /* FT_Byte */ - PS_DICT_FONT_MATRIX, /* FT_Fixed */ - PS_DICT_FONT_BBOX, /* FT_Fixed */ - PS_DICT_PAINT_TYPE, /* FT_Byte */ - PS_DICT_FONT_NAME, /* FT_String* */ - PS_DICT_UNIQUE_ID, /* FT_Int */ - PS_DICT_NUM_CHAR_STRINGS, /* FT_Int */ - PS_DICT_CHAR_STRING_KEY, /* FT_String* */ - PS_DICT_CHAR_STRING, /* FT_String* */ - PS_DICT_ENCODING_TYPE, /* T1_EncodingType */ - PS_DICT_ENCODING_ENTRY, /* FT_String* */ - - /* conventionally in the font Private dictionary */ - PS_DICT_NUM_SUBRS, /* FT_Int */ - PS_DICT_SUBR, /* FT_String* */ - PS_DICT_STD_HW, /* FT_UShort */ - PS_DICT_STD_VW, /* FT_UShort */ - PS_DICT_NUM_BLUE_VALUES, /* FT_Byte */ - PS_DICT_BLUE_VALUE, /* FT_Short */ - PS_DICT_BLUE_FUZZ, /* FT_Int */ - PS_DICT_NUM_OTHER_BLUES, /* FT_Byte */ - PS_DICT_OTHER_BLUE, /* FT_Short */ - PS_DICT_NUM_FAMILY_BLUES, /* FT_Byte */ - PS_DICT_FAMILY_BLUE, /* FT_Short */ - PS_DICT_NUM_FAMILY_OTHER_BLUES, /* FT_Byte */ - PS_DICT_FAMILY_OTHER_BLUE, /* FT_Short */ - PS_DICT_BLUE_SCALE, /* FT_Fixed */ - PS_DICT_BLUE_SHIFT, /* FT_Int */ - PS_DICT_NUM_STEM_SNAP_H, /* FT_Byte */ - PS_DICT_STEM_SNAP_H, /* FT_Short */ - PS_DICT_NUM_STEM_SNAP_V, /* FT_Byte */ - PS_DICT_STEM_SNAP_V, /* FT_Short */ - PS_DICT_FORCE_BOLD, /* FT_Bool */ - PS_DICT_RND_STEM_UP, /* FT_Bool */ - PS_DICT_MIN_FEATURE, /* FT_Short */ - PS_DICT_LEN_IV, /* FT_Int */ - PS_DICT_PASSWORD, /* FT_Long */ - PS_DICT_LANGUAGE_GROUP, /* FT_Long */ - - /* conventionally in the font FontInfo dictionary */ - PS_DICT_VERSION, /* FT_String* */ - PS_DICT_NOTICE, /* FT_String* */ - PS_DICT_FULL_NAME, /* FT_String* */ - PS_DICT_FAMILY_NAME, /* FT_String* */ - PS_DICT_WEIGHT, /* FT_String* */ - PS_DICT_IS_FIXED_PITCH, /* FT_Bool */ - PS_DICT_UNDERLINE_POSITION, /* FT_Short */ - PS_DICT_UNDERLINE_THICKNESS, /* FT_UShort */ - PS_DICT_FS_TYPE, /* FT_UShort */ - PS_DICT_ITALIC_ANGLE, /* FT_Long */ - - PS_DICT_MAX = PS_DICT_ITALIC_ANGLE - - } PS_Dict_Keys; - - - /************************************************************************ - * - * @function: - * FT_Get_PS_Font_Value - * - * @description: - * Retrieve the value for the supplied key from a PostScript font. - * - * @input: - * face :: - * PostScript face handle. - * - * key :: - * An enumeration value representing the dictionary key to retrieve. - * - * idx :: - * For array values, this specifies the index to be returned. - * - * value :: - * A pointer to memory into which to write the value. - * - * valen_len :: - * The size, in bytes, of the memory supplied for the value. - * - * @output: - * value :: - * The value matching the above key, if it exists. - * - * @return: - * The amount of memory (in bytes) required to hold the requested - * value (if it exists, -1 otherwise). - * - * @note: - * The values returned are not pointers into the internal structures of - * the face, but are `fresh' copies, so that the memory containing them - * belongs to the calling application. This also enforces the - * `read-only' nature of these values, i.e., this function cannot be - * used to manipulate the face. - * - * `value' is a void pointer because the values returned can be of - * various types. - * - * If either `value' is NULL or `value_len' is too small, just the - * required memory size for the requested entry is returned. - * - * The `idx' parameter is used, not only to retrieve elements of, for - * example, the FontMatrix or FontBBox, but also to retrieve name keys - * from the CharStrings dictionary, and the charstrings themselves. It - * is ignored for atomic values. - * - * PS_DICT_BLUE_SCALE returns a value that is scaled up by 1000. To - * get the value as in the font stream, you need to divide by - * 65536000.0 (to remove the FT_Fixed scale, and the x1000 scale). - * - * IMPORTANT: Only key/value pairs read by the FreeType interpreter can - * be retrieved. So, for example, PostScript procedures such as NP, - * ND, and RD are not available. Arbitrary keys are, obviously, not be - * available either. - * - * If the font's format is not PostScript-based, this function returns - * the `FT_Err_Invalid_Argument' error code. - * - */ - FT_EXPORT( FT_Long ) - FT_Get_PS_Font_Value( FT_Face face, - PS_Dict_Keys key, - FT_UInt idx, - void *value, - FT_Long value_len ); - - /* */ - -FT_END_HEADER - -#endif /* __T1TABLES_H__ */ - - -/* END */ diff --git a/lib/linux/include/ttnameid.h b/lib/linux/include/ttnameid.h deleted file mode 100644 index e65b558..0000000 --- a/lib/linux/include/ttnameid.h +++ /dev/null @@ -1,1237 +0,0 @@ -/***************************************************************************/ -/* */ -/* ttnameid.h */ -/* */ -/* TrueType name ID definitions (specification only). */ -/* */ -/* Copyright 1996-2004, 2006-2008, 2012-2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTNAMEID_H__ -#define __TTNAMEID_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* truetype_tables */ - /* */ - - - /*************************************************************************/ - /* */ - /* Possible values for the `platform' identifier code in the name */ - /* records of the TTF `name' table. */ - /* */ - /*************************************************************************/ - - - /*********************************************************************** - * - * @enum: - * TT_PLATFORM_XXX - * - * @description: - * A list of valid values for the `platform_id' identifier code in - * @FT_CharMapRec and @FT_SfntName structures. - * - * @values: - * TT_PLATFORM_APPLE_UNICODE :: - * Used by Apple to indicate a Unicode character map and/or name entry. - * See @TT_APPLE_ID_XXX for corresponding `encoding_id' values. Note - * that name entries in this format are coded as big-endian UCS-2 - * character codes _only_. - * - * TT_PLATFORM_MACINTOSH :: - * Used by Apple to indicate a MacOS-specific charmap and/or name entry. - * See @TT_MAC_ID_XXX for corresponding `encoding_id' values. Note that - * most TrueType fonts contain an Apple roman charmap to be usable on - * MacOS systems (even if they contain a Microsoft charmap as well). - * - * TT_PLATFORM_ISO :: - * This value was used to specify ISO/IEC 10646 charmaps. It is however - * now deprecated. See @TT_ISO_ID_XXX for a list of corresponding - * `encoding_id' values. - * - * TT_PLATFORM_MICROSOFT :: - * Used by Microsoft to indicate Windows-specific charmaps. See - * @TT_MS_ID_XXX for a list of corresponding `encoding_id' values. - * Note that most fonts contain a Unicode charmap using - * (TT_PLATFORM_MICROSOFT, @TT_MS_ID_UNICODE_CS). - * - * TT_PLATFORM_CUSTOM :: - * Used to indicate application-specific charmaps. - * - * TT_PLATFORM_ADOBE :: - * This value isn't part of any font format specification, but is used - * by FreeType to report Adobe-specific charmaps in an @FT_CharMapRec - * structure. See @TT_ADOBE_ID_XXX. - */ - -#define TT_PLATFORM_APPLE_UNICODE 0 -#define TT_PLATFORM_MACINTOSH 1 -#define TT_PLATFORM_ISO 2 /* deprecated */ -#define TT_PLATFORM_MICROSOFT 3 -#define TT_PLATFORM_CUSTOM 4 -#define TT_PLATFORM_ADOBE 7 /* artificial */ - - - /*********************************************************************** - * - * @enum: - * TT_APPLE_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_APPLE_UNICODE charmaps and name entries. - * - * @values: - * TT_APPLE_ID_DEFAULT :: - * Unicode version 1.0. - * - * TT_APPLE_ID_UNICODE_1_1 :: - * Unicode 1.1; specifies Hangul characters starting at U+34xx. - * - * TT_APPLE_ID_ISO_10646 :: - * Deprecated (identical to preceding). - * - * TT_APPLE_ID_UNICODE_2_0 :: - * Unicode 2.0 and beyond (UTF-16 BMP only). - * - * TT_APPLE_ID_UNICODE_32 :: - * Unicode 3.1 and beyond, using UTF-32. - * - * TT_APPLE_ID_VARIANT_SELECTOR :: - * From Adobe, not Apple. Not a normal cmap. Specifies variations - * on a real cmap. - */ - -#define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */ -#define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */ -#define TT_APPLE_ID_ISO_10646 2 /* deprecated */ -#define TT_APPLE_ID_UNICODE_2_0 3 /* or later */ -#define TT_APPLE_ID_UNICODE_32 4 /* 2.0 or later, full repertoire */ -#define TT_APPLE_ID_VARIANT_SELECTOR 5 /* variation selector data */ - - - /*********************************************************************** - * - * @enum: - * TT_MAC_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_MACINTOSH charmaps and name entries. - * - * @values: - * TT_MAC_ID_ROMAN :: - * TT_MAC_ID_JAPANESE :: - * TT_MAC_ID_TRADITIONAL_CHINESE :: - * TT_MAC_ID_KOREAN :: - * TT_MAC_ID_ARABIC :: - * TT_MAC_ID_HEBREW :: - * TT_MAC_ID_GREEK :: - * TT_MAC_ID_RUSSIAN :: - * TT_MAC_ID_RSYMBOL :: - * TT_MAC_ID_DEVANAGARI :: - * TT_MAC_ID_GURMUKHI :: - * TT_MAC_ID_GUJARATI :: - * TT_MAC_ID_ORIYA :: - * TT_MAC_ID_BENGALI :: - * TT_MAC_ID_TAMIL :: - * TT_MAC_ID_TELUGU :: - * TT_MAC_ID_KANNADA :: - * TT_MAC_ID_MALAYALAM :: - * TT_MAC_ID_SINHALESE :: - * TT_MAC_ID_BURMESE :: - * TT_MAC_ID_KHMER :: - * TT_MAC_ID_THAI :: - * TT_MAC_ID_LAOTIAN :: - * TT_MAC_ID_GEORGIAN :: - * TT_MAC_ID_ARMENIAN :: - * TT_MAC_ID_MALDIVIAN :: - * TT_MAC_ID_SIMPLIFIED_CHINESE :: - * TT_MAC_ID_TIBETAN :: - * TT_MAC_ID_MONGOLIAN :: - * TT_MAC_ID_GEEZ :: - * TT_MAC_ID_SLAVIC :: - * TT_MAC_ID_VIETNAMESE :: - * TT_MAC_ID_SINDHI :: - * TT_MAC_ID_UNINTERP :: - */ - -#define TT_MAC_ID_ROMAN 0 -#define TT_MAC_ID_JAPANESE 1 -#define TT_MAC_ID_TRADITIONAL_CHINESE 2 -#define TT_MAC_ID_KOREAN 3 -#define TT_MAC_ID_ARABIC 4 -#define TT_MAC_ID_HEBREW 5 -#define TT_MAC_ID_GREEK 6 -#define TT_MAC_ID_RUSSIAN 7 -#define TT_MAC_ID_RSYMBOL 8 -#define TT_MAC_ID_DEVANAGARI 9 -#define TT_MAC_ID_GURMUKHI 10 -#define TT_MAC_ID_GUJARATI 11 -#define TT_MAC_ID_ORIYA 12 -#define TT_MAC_ID_BENGALI 13 -#define TT_MAC_ID_TAMIL 14 -#define TT_MAC_ID_TELUGU 15 -#define TT_MAC_ID_KANNADA 16 -#define TT_MAC_ID_MALAYALAM 17 -#define TT_MAC_ID_SINHALESE 18 -#define TT_MAC_ID_BURMESE 19 -#define TT_MAC_ID_KHMER 20 -#define TT_MAC_ID_THAI 21 -#define TT_MAC_ID_LAOTIAN 22 -#define TT_MAC_ID_GEORGIAN 23 -#define TT_MAC_ID_ARMENIAN 24 -#define TT_MAC_ID_MALDIVIAN 25 -#define TT_MAC_ID_SIMPLIFIED_CHINESE 25 -#define TT_MAC_ID_TIBETAN 26 -#define TT_MAC_ID_MONGOLIAN 27 -#define TT_MAC_ID_GEEZ 28 -#define TT_MAC_ID_SLAVIC 29 -#define TT_MAC_ID_VIETNAMESE 30 -#define TT_MAC_ID_SINDHI 31 -#define TT_MAC_ID_UNINTERP 32 - - - /*********************************************************************** - * - * @enum: - * TT_ISO_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_ISO charmaps and name entries. - * - * Their use is now deprecated. - * - * @values: - * TT_ISO_ID_7BIT_ASCII :: - * ASCII. - * TT_ISO_ID_10646 :: - * ISO/10646. - * TT_ISO_ID_8859_1 :: - * Also known as Latin-1. - */ - -#define TT_ISO_ID_7BIT_ASCII 0 -#define TT_ISO_ID_10646 1 -#define TT_ISO_ID_8859_1 2 - - - /*********************************************************************** - * - * @enum: - * TT_MS_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_MICROSOFT charmaps and name entries. - * - * @values: - * TT_MS_ID_SYMBOL_CS :: - * Corresponds to Microsoft symbol encoding. See - * @FT_ENCODING_MS_SYMBOL. - * - * TT_MS_ID_UNICODE_CS :: - * Corresponds to a Microsoft WGL4 charmap, matching Unicode. See - * @FT_ENCODING_UNICODE. - * - * TT_MS_ID_SJIS :: - * Corresponds to SJIS Japanese encoding. See @FT_ENCODING_SJIS. - * - * TT_MS_ID_GB2312 :: - * Corresponds to Simplified Chinese as used in Mainland China. See - * @FT_ENCODING_GB2312. - * - * TT_MS_ID_BIG_5 :: - * Corresponds to Traditional Chinese as used in Taiwan and Hong Kong. - * See @FT_ENCODING_BIG5. - * - * TT_MS_ID_WANSUNG :: - * Corresponds to Korean Wansung encoding. See @FT_ENCODING_WANSUNG. - * - * TT_MS_ID_JOHAB :: - * Corresponds to Johab encoding. See @FT_ENCODING_JOHAB. - * - * TT_MS_ID_UCS_4 :: - * Corresponds to UCS-4 or UTF-32 charmaps. This has been added to - * the OpenType specification version 1.4 (mid-2001.) - */ - -#define TT_MS_ID_SYMBOL_CS 0 -#define TT_MS_ID_UNICODE_CS 1 -#define TT_MS_ID_SJIS 2 -#define TT_MS_ID_GB2312 3 -#define TT_MS_ID_BIG_5 4 -#define TT_MS_ID_WANSUNG 5 -#define TT_MS_ID_JOHAB 6 -#define TT_MS_ID_UCS_4 10 - - - /*********************************************************************** - * - * @enum: - * TT_ADOBE_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_ADOBE charmaps. This is a FreeType-specific extension! - * - * @values: - * TT_ADOBE_ID_STANDARD :: - * Adobe standard encoding. - * TT_ADOBE_ID_EXPERT :: - * Adobe expert encoding. - * TT_ADOBE_ID_CUSTOM :: - * Adobe custom encoding. - * TT_ADOBE_ID_LATIN_1 :: - * Adobe Latin~1 encoding. - */ - -#define TT_ADOBE_ID_STANDARD 0 -#define TT_ADOBE_ID_EXPERT 1 -#define TT_ADOBE_ID_CUSTOM 2 -#define TT_ADOBE_ID_LATIN_1 3 - - - /*************************************************************************/ - /* */ - /* Possible values of the language identifier field in the name records */ - /* of the TTF `name' table if the `platform' identifier code is */ - /* TT_PLATFORM_MACINTOSH. These values are also used as return values */ - /* for function @FT_Get_CMap_Language_ID. */ - /* */ - /* The canonical source for the Apple assigned Language ID's is at */ - /* */ - /* https://developer.apple.com/fonts/TTRefMan/RM06/Chap6name.html */ - /* */ -#define TT_MAC_LANGID_ENGLISH 0 -#define TT_MAC_LANGID_FRENCH 1 -#define TT_MAC_LANGID_GERMAN 2 -#define TT_MAC_LANGID_ITALIAN 3 -#define TT_MAC_LANGID_DUTCH 4 -#define TT_MAC_LANGID_SWEDISH 5 -#define TT_MAC_LANGID_SPANISH 6 -#define TT_MAC_LANGID_DANISH 7 -#define TT_MAC_LANGID_PORTUGUESE 8 -#define TT_MAC_LANGID_NORWEGIAN 9 -#define TT_MAC_LANGID_HEBREW 10 -#define TT_MAC_LANGID_JAPANESE 11 -#define TT_MAC_LANGID_ARABIC 12 -#define TT_MAC_LANGID_FINNISH 13 -#define TT_MAC_LANGID_GREEK 14 -#define TT_MAC_LANGID_ICELANDIC 15 -#define TT_MAC_LANGID_MALTESE 16 -#define TT_MAC_LANGID_TURKISH 17 -#define TT_MAC_LANGID_CROATIAN 18 -#define TT_MAC_LANGID_CHINESE_TRADITIONAL 19 -#define TT_MAC_LANGID_URDU 20 -#define TT_MAC_LANGID_HINDI 21 -#define TT_MAC_LANGID_THAI 22 -#define TT_MAC_LANGID_KOREAN 23 -#define TT_MAC_LANGID_LITHUANIAN 24 -#define TT_MAC_LANGID_POLISH 25 -#define TT_MAC_LANGID_HUNGARIAN 26 -#define TT_MAC_LANGID_ESTONIAN 27 -#define TT_MAC_LANGID_LETTISH 28 -#define TT_MAC_LANGID_SAAMISK 29 -#define TT_MAC_LANGID_FAEROESE 30 -#define TT_MAC_LANGID_FARSI 31 -#define TT_MAC_LANGID_RUSSIAN 32 -#define TT_MAC_LANGID_CHINESE_SIMPLIFIED 33 -#define TT_MAC_LANGID_FLEMISH 34 -#define TT_MAC_LANGID_IRISH 35 -#define TT_MAC_LANGID_ALBANIAN 36 -#define TT_MAC_LANGID_ROMANIAN 37 -#define TT_MAC_LANGID_CZECH 38 -#define TT_MAC_LANGID_SLOVAK 39 -#define TT_MAC_LANGID_SLOVENIAN 40 -#define TT_MAC_LANGID_YIDDISH 41 -#define TT_MAC_LANGID_SERBIAN 42 -#define TT_MAC_LANGID_MACEDONIAN 43 -#define TT_MAC_LANGID_BULGARIAN 44 -#define TT_MAC_LANGID_UKRAINIAN 45 -#define TT_MAC_LANGID_BYELORUSSIAN 46 -#define TT_MAC_LANGID_UZBEK 47 -#define TT_MAC_LANGID_KAZAKH 48 -#define TT_MAC_LANGID_AZERBAIJANI 49 -#define TT_MAC_LANGID_AZERBAIJANI_CYRILLIC_SCRIPT 49 -#define TT_MAC_LANGID_AZERBAIJANI_ARABIC_SCRIPT 50 -#define TT_MAC_LANGID_ARMENIAN 51 -#define TT_MAC_LANGID_GEORGIAN 52 -#define TT_MAC_LANGID_MOLDAVIAN 53 -#define TT_MAC_LANGID_KIRGHIZ 54 -#define TT_MAC_LANGID_TAJIKI 55 -#define TT_MAC_LANGID_TURKMEN 56 -#define TT_MAC_LANGID_MONGOLIAN 57 -#define TT_MAC_LANGID_MONGOLIAN_MONGOLIAN_SCRIPT 57 -#define TT_MAC_LANGID_MONGOLIAN_CYRILLIC_SCRIPT 58 -#define TT_MAC_LANGID_PASHTO 59 -#define TT_MAC_LANGID_KURDISH 60 -#define TT_MAC_LANGID_KASHMIRI 61 -#define TT_MAC_LANGID_SINDHI 62 -#define TT_MAC_LANGID_TIBETAN 63 -#define TT_MAC_LANGID_NEPALI 64 -#define TT_MAC_LANGID_SANSKRIT 65 -#define TT_MAC_LANGID_MARATHI 66 -#define TT_MAC_LANGID_BENGALI 67 -#define TT_MAC_LANGID_ASSAMESE 68 -#define TT_MAC_LANGID_GUJARATI 69 -#define TT_MAC_LANGID_PUNJABI 70 -#define TT_MAC_LANGID_ORIYA 71 -#define TT_MAC_LANGID_MALAYALAM 72 -#define TT_MAC_LANGID_KANNADA 73 -#define TT_MAC_LANGID_TAMIL 74 -#define TT_MAC_LANGID_TELUGU 75 -#define TT_MAC_LANGID_SINHALESE 76 -#define TT_MAC_LANGID_BURMESE 77 -#define TT_MAC_LANGID_KHMER 78 -#define TT_MAC_LANGID_LAO 79 -#define TT_MAC_LANGID_VIETNAMESE 80 -#define TT_MAC_LANGID_INDONESIAN 81 -#define TT_MAC_LANGID_TAGALOG 82 -#define TT_MAC_LANGID_MALAY_ROMAN_SCRIPT 83 -#define TT_MAC_LANGID_MALAY_ARABIC_SCRIPT 84 -#define TT_MAC_LANGID_AMHARIC 85 -#define TT_MAC_LANGID_TIGRINYA 86 -#define TT_MAC_LANGID_GALLA 87 -#define TT_MAC_LANGID_SOMALI 88 -#define TT_MAC_LANGID_SWAHILI 89 -#define TT_MAC_LANGID_RUANDA 90 -#define TT_MAC_LANGID_RUNDI 91 -#define TT_MAC_LANGID_CHEWA 92 -#define TT_MAC_LANGID_MALAGASY 93 -#define TT_MAC_LANGID_ESPERANTO 94 -#define TT_MAC_LANGID_WELSH 128 -#define TT_MAC_LANGID_BASQUE 129 -#define TT_MAC_LANGID_CATALAN 130 -#define TT_MAC_LANGID_LATIN 131 -#define TT_MAC_LANGID_QUECHUA 132 -#define TT_MAC_LANGID_GUARANI 133 -#define TT_MAC_LANGID_AYMARA 134 -#define TT_MAC_LANGID_TATAR 135 -#define TT_MAC_LANGID_UIGHUR 136 -#define TT_MAC_LANGID_DZONGKHA 137 -#define TT_MAC_LANGID_JAVANESE 138 -#define TT_MAC_LANGID_SUNDANESE 139 - - -#if 0 /* these seem to be errors that have been dropped */ - -#define TT_MAC_LANGID_SCOTTISH_GAELIC 140 -#define TT_MAC_LANGID_IRISH_GAELIC 141 - -#endif - - - /* The following codes are new as of 2000-03-10 */ -#define TT_MAC_LANGID_GALICIAN 140 -#define TT_MAC_LANGID_AFRIKAANS 141 -#define TT_MAC_LANGID_BRETON 142 -#define TT_MAC_LANGID_INUKTITUT 143 -#define TT_MAC_LANGID_SCOTTISH_GAELIC 144 -#define TT_MAC_LANGID_MANX_GAELIC 145 -#define TT_MAC_LANGID_IRISH_GAELIC 146 -#define TT_MAC_LANGID_TONGAN 147 -#define TT_MAC_LANGID_GREEK_POLYTONIC 148 -#define TT_MAC_LANGID_GREELANDIC 149 -#define TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT 150 - - - /*************************************************************************/ - /* */ - /* Possible values of the language identifier field in the name records */ - /* of the TTF `name' table if the `platform' identifier code is */ - /* TT_PLATFORM_MICROSOFT. */ - /* */ - /* The canonical source for the MS assigned LCIDs is */ - /* */ - /* http://www.microsoft.com/globaldev/reference/lcid-all.mspx */ - /* */ - -#define TT_MS_LANGID_ARABIC_GENERAL 0x0001 -#define TT_MS_LANGID_ARABIC_SAUDI_ARABIA 0x0401 -#define TT_MS_LANGID_ARABIC_IRAQ 0x0801 -#define TT_MS_LANGID_ARABIC_EGYPT 0x0C01 -#define TT_MS_LANGID_ARABIC_LIBYA 0x1001 -#define TT_MS_LANGID_ARABIC_ALGERIA 0x1401 -#define TT_MS_LANGID_ARABIC_MOROCCO 0x1801 -#define TT_MS_LANGID_ARABIC_TUNISIA 0x1C01 -#define TT_MS_LANGID_ARABIC_OMAN 0x2001 -#define TT_MS_LANGID_ARABIC_YEMEN 0x2401 -#define TT_MS_LANGID_ARABIC_SYRIA 0x2801 -#define TT_MS_LANGID_ARABIC_JORDAN 0x2C01 -#define TT_MS_LANGID_ARABIC_LEBANON 0x3001 -#define TT_MS_LANGID_ARABIC_KUWAIT 0x3401 -#define TT_MS_LANGID_ARABIC_UAE 0x3801 -#define TT_MS_LANGID_ARABIC_BAHRAIN 0x3C01 -#define TT_MS_LANGID_ARABIC_QATAR 0x4001 -#define TT_MS_LANGID_BULGARIAN_BULGARIA 0x0402 -#define TT_MS_LANGID_CATALAN_SPAIN 0x0403 -#define TT_MS_LANGID_CHINESE_GENERAL 0x0004 -#define TT_MS_LANGID_CHINESE_TAIWAN 0x0404 -#define TT_MS_LANGID_CHINESE_PRC 0x0804 -#define TT_MS_LANGID_CHINESE_HONG_KONG 0x0C04 -#define TT_MS_LANGID_CHINESE_SINGAPORE 0x1004 - -#if 1 /* this looks like the correct value */ -#define TT_MS_LANGID_CHINESE_MACAU 0x1404 -#else /* but beware, Microsoft may change its mind... - the most recent Word reference has the following: */ -#define TT_MS_LANGID_CHINESE_MACAU TT_MS_LANGID_CHINESE_HONG_KONG -#endif - -#if 0 /* used only with .NET `cultures'; commented out */ -#define TT_MS_LANGID_CHINESE_TRADITIONAL 0x7C04 -#endif - -#define TT_MS_LANGID_CZECH_CZECH_REPUBLIC 0x0405 -#define TT_MS_LANGID_DANISH_DENMARK 0x0406 -#define TT_MS_LANGID_GERMAN_GERMANY 0x0407 -#define TT_MS_LANGID_GERMAN_SWITZERLAND 0x0807 -#define TT_MS_LANGID_GERMAN_AUSTRIA 0x0C07 -#define TT_MS_LANGID_GERMAN_LUXEMBOURG 0x1007 -#define TT_MS_LANGID_GERMAN_LIECHTENSTEI 0x1407 -#define TT_MS_LANGID_GREEK_GREECE 0x0408 - - /* don't ask what this one means... It is commented out currently. */ -#if 0 -#define TT_MS_LANGID_GREEK_GREECE2 0x2008 -#endif - -#define TT_MS_LANGID_ENGLISH_GENERAL 0x0009 -#define TT_MS_LANGID_ENGLISH_UNITED_STATES 0x0409 -#define TT_MS_LANGID_ENGLISH_UNITED_KINGDOM 0x0809 -#define TT_MS_LANGID_ENGLISH_AUSTRALIA 0x0C09 -#define TT_MS_LANGID_ENGLISH_CANADA 0x1009 -#define TT_MS_LANGID_ENGLISH_NEW_ZEALAND 0x1409 -#define TT_MS_LANGID_ENGLISH_IRELAND 0x1809 -#define TT_MS_LANGID_ENGLISH_SOUTH_AFRICA 0x1C09 -#define TT_MS_LANGID_ENGLISH_JAMAICA 0x2009 -#define TT_MS_LANGID_ENGLISH_CARIBBEAN 0x2409 -#define TT_MS_LANGID_ENGLISH_BELIZE 0x2809 -#define TT_MS_LANGID_ENGLISH_TRINIDAD 0x2C09 -#define TT_MS_LANGID_ENGLISH_ZIMBABWE 0x3009 -#define TT_MS_LANGID_ENGLISH_PHILIPPINES 0x3409 -#define TT_MS_LANGID_ENGLISH_INDONESIA 0x3809 -#define TT_MS_LANGID_ENGLISH_HONG_KONG 0x3C09 -#define TT_MS_LANGID_ENGLISH_INDIA 0x4009 -#define TT_MS_LANGID_ENGLISH_MALAYSIA 0x4409 -#define TT_MS_LANGID_ENGLISH_SINGAPORE 0x4809 -#define TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT 0x040A -#define TT_MS_LANGID_SPANISH_MEXICO 0x080A -#define TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT 0x0C0A -#define TT_MS_LANGID_SPANISH_GUATEMALA 0x100A -#define TT_MS_LANGID_SPANISH_COSTA_RICA 0x140A -#define TT_MS_LANGID_SPANISH_PANAMA 0x180A -#define TT_MS_LANGID_SPANISH_DOMINICAN_REPUBLIC 0x1C0A -#define TT_MS_LANGID_SPANISH_VENEZUELA 0x200A -#define TT_MS_LANGID_SPANISH_COLOMBIA 0x240A -#define TT_MS_LANGID_SPANISH_PERU 0x280A -#define TT_MS_LANGID_SPANISH_ARGENTINA 0x2C0A -#define TT_MS_LANGID_SPANISH_ECUADOR 0x300A -#define TT_MS_LANGID_SPANISH_CHILE 0x340A -#define TT_MS_LANGID_SPANISH_URUGUAY 0x380A -#define TT_MS_LANGID_SPANISH_PARAGUAY 0x3C0A -#define TT_MS_LANGID_SPANISH_BOLIVIA 0x400A -#define TT_MS_LANGID_SPANISH_EL_SALVADOR 0x440A -#define TT_MS_LANGID_SPANISH_HONDURAS 0x480A -#define TT_MS_LANGID_SPANISH_NICARAGUA 0x4C0A -#define TT_MS_LANGID_SPANISH_PUERTO_RICO 0x500A -#define TT_MS_LANGID_SPANISH_UNITED_STATES 0x540A - /* The following ID blatantly violate MS specs by using a */ - /* sublanguage > 0x1F. */ -#define TT_MS_LANGID_SPANISH_LATIN_AMERICA 0xE40AU -#define TT_MS_LANGID_FINNISH_FINLAND 0x040B -#define TT_MS_LANGID_FRENCH_FRANCE 0x040C -#define TT_MS_LANGID_FRENCH_BELGIUM 0x080C -#define TT_MS_LANGID_FRENCH_CANADA 0x0C0C -#define TT_MS_LANGID_FRENCH_SWITZERLAND 0x100C -#define TT_MS_LANGID_FRENCH_LUXEMBOURG 0x140C -#define TT_MS_LANGID_FRENCH_MONACO 0x180C -#define TT_MS_LANGID_FRENCH_WEST_INDIES 0x1C0C -#define TT_MS_LANGID_FRENCH_REUNION 0x200C -#define TT_MS_LANGID_FRENCH_CONGO 0x240C - /* which was formerly: */ -#define TT_MS_LANGID_FRENCH_ZAIRE TT_MS_LANGID_FRENCH_CONGO -#define TT_MS_LANGID_FRENCH_SENEGAL 0x280C -#define TT_MS_LANGID_FRENCH_CAMEROON 0x2C0C -#define TT_MS_LANGID_FRENCH_COTE_D_IVOIRE 0x300C -#define TT_MS_LANGID_FRENCH_MALI 0x340C -#define TT_MS_LANGID_FRENCH_MOROCCO 0x380C -#define TT_MS_LANGID_FRENCH_HAITI 0x3C0C - /* and another violation of the spec (see 0xE40AU) */ -#define TT_MS_LANGID_FRENCH_NORTH_AFRICA 0xE40CU -#define TT_MS_LANGID_HEBREW_ISRAEL 0x040D -#define TT_MS_LANGID_HUNGARIAN_HUNGARY 0x040E -#define TT_MS_LANGID_ICELANDIC_ICELAND 0x040F -#define TT_MS_LANGID_ITALIAN_ITALY 0x0410 -#define TT_MS_LANGID_ITALIAN_SWITZERLAND 0x0810 -#define TT_MS_LANGID_JAPANESE_JAPAN 0x0411 -#define TT_MS_LANGID_KOREAN_EXTENDED_WANSUNG_KOREA 0x0412 -#define TT_MS_LANGID_KOREAN_JOHAB_KOREA 0x0812 -#define TT_MS_LANGID_DUTCH_NETHERLANDS 0x0413 -#define TT_MS_LANGID_DUTCH_BELGIUM 0x0813 -#define TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL 0x0414 -#define TT_MS_LANGID_NORWEGIAN_NORWAY_NYNORSK 0x0814 -#define TT_MS_LANGID_POLISH_POLAND 0x0415 -#define TT_MS_LANGID_PORTUGUESE_BRAZIL 0x0416 -#define TT_MS_LANGID_PORTUGUESE_PORTUGAL 0x0816 -#define TT_MS_LANGID_RHAETO_ROMANIC_SWITZERLAND 0x0417 -#define TT_MS_LANGID_ROMANIAN_ROMANIA 0x0418 -#define TT_MS_LANGID_MOLDAVIAN_MOLDAVIA 0x0818 -#define TT_MS_LANGID_RUSSIAN_RUSSIA 0x0419 -#define TT_MS_LANGID_RUSSIAN_MOLDAVIA 0x0819 -#define TT_MS_LANGID_CROATIAN_CROATIA 0x041A -#define TT_MS_LANGID_SERBIAN_SERBIA_LATIN 0x081A -#define TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC 0x0C1A - -#if 0 /* this used to be this value, but it looks like we were wrong */ -#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x101A -#else /* current sources say */ -#define TT_MS_LANGID_CROATIAN_BOSNIA_HERZEGOVINA 0x101A -#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x141A - /* and XPsp2 Platform SDK added (2004-07-26) */ - /* Names are shortened to be significant within 40 chars. */ -#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_LATIN 0x181A -#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC 0x181A -#endif - -#define TT_MS_LANGID_SLOVAK_SLOVAKIA 0x041B -#define TT_MS_LANGID_ALBANIAN_ALBANIA 0x041C -#define TT_MS_LANGID_SWEDISH_SWEDEN 0x041D -#define TT_MS_LANGID_SWEDISH_FINLAND 0x081D -#define TT_MS_LANGID_THAI_THAILAND 0x041E -#define TT_MS_LANGID_TURKISH_TURKEY 0x041F -#define TT_MS_LANGID_URDU_PAKISTAN 0x0420 -#define TT_MS_LANGID_URDU_INDIA 0x0820 -#define TT_MS_LANGID_INDONESIAN_INDONESIA 0x0421 -#define TT_MS_LANGID_UKRAINIAN_UKRAINE 0x0422 -#define TT_MS_LANGID_BELARUSIAN_BELARUS 0x0423 -#define TT_MS_LANGID_SLOVENE_SLOVENIA 0x0424 -#define TT_MS_LANGID_ESTONIAN_ESTONIA 0x0425 -#define TT_MS_LANGID_LATVIAN_LATVIA 0x0426 -#define TT_MS_LANGID_LITHUANIAN_LITHUANIA 0x0427 -#define TT_MS_LANGID_CLASSIC_LITHUANIAN_LITHUANIA 0x0827 -#define TT_MS_LANGID_TAJIK_TAJIKISTAN 0x0428 -#define TT_MS_LANGID_FARSI_IRAN 0x0429 -#define TT_MS_LANGID_VIETNAMESE_VIET_NAM 0x042A -#define TT_MS_LANGID_ARMENIAN_ARMENIA 0x042B -#define TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN 0x042C -#define TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC 0x082C -#define TT_MS_LANGID_BASQUE_SPAIN 0x042D -#define TT_MS_LANGID_SORBIAN_GERMANY 0x042E -#define TT_MS_LANGID_MACEDONIAN_MACEDONIA 0x042F -#define TT_MS_LANGID_SUTU_SOUTH_AFRICA 0x0430 -#define TT_MS_LANGID_TSONGA_SOUTH_AFRICA 0x0431 -#define TT_MS_LANGID_TSWANA_SOUTH_AFRICA 0x0432 -#define TT_MS_LANGID_VENDA_SOUTH_AFRICA 0x0433 -#define TT_MS_LANGID_XHOSA_SOUTH_AFRICA 0x0434 -#define TT_MS_LANGID_ZULU_SOUTH_AFRICA 0x0435 -#define TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA 0x0436 -#define TT_MS_LANGID_GEORGIAN_GEORGIA 0x0437 -#define TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS 0x0438 -#define TT_MS_LANGID_HINDI_INDIA 0x0439 -#define TT_MS_LANGID_MALTESE_MALTA 0x043A - /* Added by XPsp2 Platform SDK (2004-07-26) */ -#define TT_MS_LANGID_SAMI_NORTHERN_NORWAY 0x043B -#define TT_MS_LANGID_SAMI_NORTHERN_SWEDEN 0x083B -#define TT_MS_LANGID_SAMI_NORTHERN_FINLAND 0x0C3B -#define TT_MS_LANGID_SAMI_LULE_NORWAY 0x103B -#define TT_MS_LANGID_SAMI_LULE_SWEDEN 0x143B -#define TT_MS_LANGID_SAMI_SOUTHERN_NORWAY 0x183B -#define TT_MS_LANGID_SAMI_SOUTHERN_SWEDEN 0x1C3B -#define TT_MS_LANGID_SAMI_SKOLT_FINLAND 0x203B -#define TT_MS_LANGID_SAMI_INARI_FINLAND 0x243B - /* ... and we also keep our old identifier... */ -#define TT_MS_LANGID_SAAMI_LAPONIA 0x043B - -#if 0 /* this seems to be a previous inversion */ -#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C -#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C -#else -#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C -#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C -#endif - -#define TT_MS_LANGID_YIDDISH_GERMANY 0x043D -#define TT_MS_LANGID_MALAY_MALAYSIA 0x043E -#define TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM 0x083E -#define TT_MS_LANGID_KAZAK_KAZAKSTAN 0x043F -#define TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN /* Cyrillic*/ 0x0440 - /* alias declared in Windows 2000 */ -#define TT_MS_LANGID_KIRGHIZ_KIRGHIZ_REPUBLIC \ - TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN - -#define TT_MS_LANGID_SWAHILI_KENYA 0x0441 -#define TT_MS_LANGID_TURKMEN_TURKMENISTAN 0x0442 -#define TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN 0x0443 -#define TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC 0x0843 -#define TT_MS_LANGID_TATAR_TATARSTAN 0x0444 -#define TT_MS_LANGID_BENGALI_INDIA 0x0445 -#define TT_MS_LANGID_BENGALI_BANGLADESH 0x0845 -#define TT_MS_LANGID_PUNJABI_INDIA 0x0446 -#define TT_MS_LANGID_PUNJABI_ARABIC_PAKISTAN 0x0846 -#define TT_MS_LANGID_GUJARATI_INDIA 0x0447 -#define TT_MS_LANGID_ORIYA_INDIA 0x0448 -#define TT_MS_LANGID_TAMIL_INDIA 0x0449 -#define TT_MS_LANGID_TELUGU_INDIA 0x044A -#define TT_MS_LANGID_KANNADA_INDIA 0x044B -#define TT_MS_LANGID_MALAYALAM_INDIA 0x044C -#define TT_MS_LANGID_ASSAMESE_INDIA 0x044D -#define TT_MS_LANGID_MARATHI_INDIA 0x044E -#define TT_MS_LANGID_SANSKRIT_INDIA 0x044F -#define TT_MS_LANGID_MONGOLIAN_MONGOLIA /* Cyrillic */ 0x0450 -#define TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN 0x0850 -#define TT_MS_LANGID_TIBETAN_CHINA 0x0451 - /* Don't use the next constant! It has */ - /* (1) the wrong spelling (Dzonghka) */ - /* (2) Microsoft doesn't officially define it -- */ - /* at least it is not in the List of Local */ - /* ID Values. */ - /* (3) Dzongkha is not the same language as */ - /* Tibetan, so merging it is wrong anyway. */ - /* */ - /* TT_MS_LANGID_TIBETAN_BHUTAN is correct, BTW. */ -#define TT_MS_LANGID_DZONGHKA_BHUTAN 0x0851 - -#if 0 - /* the following used to be defined */ -#define TT_MS_LANGID_TIBETAN_BHUTAN 0x0451 - /* ... but it was changed; */ -#else - /* So we will continue to #define it, but with the correct value */ -#define TT_MS_LANGID_TIBETAN_BHUTAN TT_MS_LANGID_DZONGHKA_BHUTAN -#endif - -#define TT_MS_LANGID_WELSH_WALES 0x0452 -#define TT_MS_LANGID_KHMER_CAMBODIA 0x0453 -#define TT_MS_LANGID_LAO_LAOS 0x0454 -#define TT_MS_LANGID_BURMESE_MYANMAR 0x0455 -#define TT_MS_LANGID_GALICIAN_SPAIN 0x0456 -#define TT_MS_LANGID_KONKANI_INDIA 0x0457 -#define TT_MS_LANGID_MANIPURI_INDIA /* Bengali */ 0x0458 -#define TT_MS_LANGID_SINDHI_INDIA /* Arabic */ 0x0459 -#define TT_MS_LANGID_SINDHI_PAKISTAN 0x0859 - /* Missing a LCID for Sindhi in Devanagari script */ -#define TT_MS_LANGID_SYRIAC_SYRIA 0x045A -#define TT_MS_LANGID_SINHALESE_SRI_LANKA 0x045B -#define TT_MS_LANGID_CHEROKEE_UNITED_STATES 0x045C -#define TT_MS_LANGID_INUKTITUT_CANADA 0x045D -#define TT_MS_LANGID_AMHARIC_ETHIOPIA 0x045E -#define TT_MS_LANGID_TAMAZIGHT_MOROCCO /* Arabic */ 0x045F -#define TT_MS_LANGID_TAMAZIGHT_MOROCCO_LATIN 0x085F - /* Missing a LCID for Tifinagh script */ -#define TT_MS_LANGID_KASHMIRI_PAKISTAN /* Arabic */ 0x0460 - /* Spelled this way by XPsp2 Platform SDK (2004-07-26) */ - /* script is yet unclear... might be Arabic, Nagari or Sharada */ -#define TT_MS_LANGID_KASHMIRI_SASIA 0x0860 - /* ... and aliased (by MS) for compatibility reasons. */ -#define TT_MS_LANGID_KASHMIRI_INDIA TT_MS_LANGID_KASHMIRI_SASIA -#define TT_MS_LANGID_NEPALI_NEPAL 0x0461 -#define TT_MS_LANGID_NEPALI_INDIA 0x0861 -#define TT_MS_LANGID_FRISIAN_NETHERLANDS 0x0462 -#define TT_MS_LANGID_PASHTO_AFGHANISTAN 0x0463 -#define TT_MS_LANGID_FILIPINO_PHILIPPINES 0x0464 -#define TT_MS_LANGID_DHIVEHI_MALDIVES 0x0465 - /* alias declared in Windows 2000 */ -#define TT_MS_LANGID_DIVEHI_MALDIVES TT_MS_LANGID_DHIVEHI_MALDIVES -#define TT_MS_LANGID_EDO_NIGERIA 0x0466 -#define TT_MS_LANGID_FULFULDE_NIGERIA 0x0467 -#define TT_MS_LANGID_HAUSA_NIGERIA 0x0468 -#define TT_MS_LANGID_IBIBIO_NIGERIA 0x0469 -#define TT_MS_LANGID_YORUBA_NIGERIA 0x046A -#define TT_MS_LANGID_QUECHUA_BOLIVIA 0x046B -#define TT_MS_LANGID_QUECHUA_ECUADOR 0x086B -#define TT_MS_LANGID_QUECHUA_PERU 0x0C6B -#define TT_MS_LANGID_SEPEDI_SOUTH_AFRICA 0x046C - /* Also spelled by XPsp2 Platform SDK (2004-07-26) */ -#define TT_MS_LANGID_SOTHO_SOUTHERN_SOUTH_AFRICA \ - TT_MS_LANGID_SEPEDI_SOUTH_AFRICA - /* language codes 0x046D, 0x046E and 0x046F are (still) unknown. */ -#define TT_MS_LANGID_IGBO_NIGERIA 0x0470 -#define TT_MS_LANGID_KANURI_NIGERIA 0x0471 -#define TT_MS_LANGID_OROMO_ETHIOPIA 0x0472 -#define TT_MS_LANGID_TIGRIGNA_ETHIOPIA 0x0473 -#define TT_MS_LANGID_TIGRIGNA_ERYTHREA 0x0873 - /* also spelled in the `Passport SDK' list as: */ -#define TT_MS_LANGID_TIGRIGNA_ERYTREA TT_MS_LANGID_TIGRIGNA_ERYTHREA -#define TT_MS_LANGID_GUARANI_PARAGUAY 0x0474 -#define TT_MS_LANGID_HAWAIIAN_UNITED_STATES 0x0475 -#define TT_MS_LANGID_LATIN 0x0476 -#define TT_MS_LANGID_SOMALI_SOMALIA 0x0477 - /* Note: Yi does not have a (proper) ISO 639-2 code, since it is mostly */ - /* not written (but OTOH the peculiar writing system is worth */ - /* studying). */ -#define TT_MS_LANGID_YI_CHINA 0x0478 -#define TT_MS_LANGID_PAPIAMENTU_NETHERLANDS_ANTILLES 0x0479 - /* language codes from 0x047A to 0x047F are (still) unknown. */ -#define TT_MS_LANGID_UIGHUR_CHINA 0x0480 -#define TT_MS_LANGID_MAORI_NEW_ZEALAND 0x0481 - -#if 0 /* not deemed useful for fonts */ -#define TT_MS_LANGID_HUMAN_INTERFACE_DEVICE 0x04FF -#endif - - - /*************************************************************************/ - /* */ - /* Possible values of the `name' identifier field in the name records of */ - /* the TTF `name' table. These values are platform independent. */ - /* */ -#define TT_NAME_ID_COPYRIGHT 0 -#define TT_NAME_ID_FONT_FAMILY 1 -#define TT_NAME_ID_FONT_SUBFAMILY 2 -#define TT_NAME_ID_UNIQUE_ID 3 -#define TT_NAME_ID_FULL_NAME 4 -#define TT_NAME_ID_VERSION_STRING 5 -#define TT_NAME_ID_PS_NAME 6 -#define TT_NAME_ID_TRADEMARK 7 - - /* the following values are from the OpenType spec */ -#define TT_NAME_ID_MANUFACTURER 8 -#define TT_NAME_ID_DESIGNER 9 -#define TT_NAME_ID_DESCRIPTION 10 -#define TT_NAME_ID_VENDOR_URL 11 -#define TT_NAME_ID_DESIGNER_URL 12 -#define TT_NAME_ID_LICENSE 13 -#define TT_NAME_ID_LICENSE_URL 14 - /* number 15 is reserved */ -#define TT_NAME_ID_PREFERRED_FAMILY 16 -#define TT_NAME_ID_PREFERRED_SUBFAMILY 17 -#define TT_NAME_ID_MAC_FULL_NAME 18 - - /* The following code is new as of 2000-01-21 */ -#define TT_NAME_ID_SAMPLE_TEXT 19 - - /* This is new in OpenType 1.3 */ -#define TT_NAME_ID_CID_FINDFONT_NAME 20 - - /* This is new in OpenType 1.5 */ -#define TT_NAME_ID_WWS_FAMILY 21 -#define TT_NAME_ID_WWS_SUBFAMILY 22 - - - /*************************************************************************/ - /* */ - /* Bit mask values for the Unicode Ranges from the TTF `OS2 ' table. */ - /* */ - /* Updated 08-Nov-2008. */ - /* */ - - /* Bit 0 Basic Latin */ -#define TT_UCR_BASIC_LATIN (1L << 0) /* U+0020-U+007E */ - /* Bit 1 C1 Controls and Latin-1 Supplement */ -#define TT_UCR_LATIN1_SUPPLEMENT (1L << 1) /* U+0080-U+00FF */ - /* Bit 2 Latin Extended-A */ -#define TT_UCR_LATIN_EXTENDED_A (1L << 2) /* U+0100-U+017F */ - /* Bit 3 Latin Extended-B */ -#define TT_UCR_LATIN_EXTENDED_B (1L << 3) /* U+0180-U+024F */ - /* Bit 4 IPA Extensions */ - /* Phonetic Extensions */ - /* Phonetic Extensions Supplement */ -#define TT_UCR_IPA_EXTENSIONS (1L << 4) /* U+0250-U+02AF */ - /* U+1D00-U+1D7F */ - /* U+1D80-U+1DBF */ - /* Bit 5 Spacing Modifier Letters */ - /* Modifier Tone Letters */ -#define TT_UCR_SPACING_MODIFIER (1L << 5) /* U+02B0-U+02FF */ - /* U+A700-U+A71F */ - /* Bit 6 Combining Diacritical Marks */ - /* Combining Diacritical Marks Supplement */ -#define TT_UCR_COMBINING_DIACRITICS (1L << 6) /* U+0300-U+036F */ - /* U+1DC0-U+1DFF */ - /* Bit 7 Greek and Coptic */ -#define TT_UCR_GREEK (1L << 7) /* U+0370-U+03FF */ - /* Bit 8 Coptic */ -#define TT_UCR_COPTIC (1L << 8) /* U+2C80-U+2CFF */ - /* Bit 9 Cyrillic */ - /* Cyrillic Supplement */ - /* Cyrillic Extended-A */ - /* Cyrillic Extended-B */ -#define TT_UCR_CYRILLIC (1L << 9) /* U+0400-U+04FF */ - /* U+0500-U+052F */ - /* U+2DE0-U+2DFF */ - /* U+A640-U+A69F */ - /* Bit 10 Armenian */ -#define TT_UCR_ARMENIAN (1L << 10) /* U+0530-U+058F */ - /* Bit 11 Hebrew */ -#define TT_UCR_HEBREW (1L << 11) /* U+0590-U+05FF */ - /* Bit 12 Vai */ -#define TT_UCR_VAI (1L << 12) /* U+A500-U+A63F */ - /* Bit 13 Arabic */ - /* Arabic Supplement */ -#define TT_UCR_ARABIC (1L << 13) /* U+0600-U+06FF */ - /* U+0750-U+077F */ - /* Bit 14 NKo */ -#define TT_UCR_NKO (1L << 14) /* U+07C0-U+07FF */ - /* Bit 15 Devanagari */ -#define TT_UCR_DEVANAGARI (1L << 15) /* U+0900-U+097F */ - /* Bit 16 Bengali */ -#define TT_UCR_BENGALI (1L << 16) /* U+0980-U+09FF */ - /* Bit 17 Gurmukhi */ -#define TT_UCR_GURMUKHI (1L << 17) /* U+0A00-U+0A7F */ - /* Bit 18 Gujarati */ -#define TT_UCR_GUJARATI (1L << 18) /* U+0A80-U+0AFF */ - /* Bit 19 Oriya */ -#define TT_UCR_ORIYA (1L << 19) /* U+0B00-U+0B7F */ - /* Bit 20 Tamil */ -#define TT_UCR_TAMIL (1L << 20) /* U+0B80-U+0BFF */ - /* Bit 21 Telugu */ -#define TT_UCR_TELUGU (1L << 21) /* U+0C00-U+0C7F */ - /* Bit 22 Kannada */ -#define TT_UCR_KANNADA (1L << 22) /* U+0C80-U+0CFF */ - /* Bit 23 Malayalam */ -#define TT_UCR_MALAYALAM (1L << 23) /* U+0D00-U+0D7F */ - /* Bit 24 Thai */ -#define TT_UCR_THAI (1L << 24) /* U+0E00-U+0E7F */ - /* Bit 25 Lao */ -#define TT_UCR_LAO (1L << 25) /* U+0E80-U+0EFF */ - /* Bit 26 Georgian */ - /* Georgian Supplement */ -#define TT_UCR_GEORGIAN (1L << 26) /* U+10A0-U+10FF */ - /* U+2D00-U+2D2F */ - /* Bit 27 Balinese */ -#define TT_UCR_BALINESE (1L << 27) /* U+1B00-U+1B7F */ - /* Bit 28 Hangul Jamo */ -#define TT_UCR_HANGUL_JAMO (1L << 28) /* U+1100-U+11FF */ - /* Bit 29 Latin Extended Additional */ - /* Latin Extended-C */ - /* Latin Extended-D */ -#define TT_UCR_LATIN_EXTENDED_ADDITIONAL (1L << 29) /* U+1E00-U+1EFF */ - /* U+2C60-U+2C7F */ - /* U+A720-U+A7FF */ - /* Bit 30 Greek Extended */ -#define TT_UCR_GREEK_EXTENDED (1L << 30) /* U+1F00-U+1FFF */ - /* Bit 31 General Punctuation */ - /* Supplemental Punctuation */ -#define TT_UCR_GENERAL_PUNCTUATION (1L << 31) /* U+2000-U+206F */ - /* U+2E00-U+2E7F */ - /* Bit 32 Superscripts And Subscripts */ -#define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS (1L << 0) /* U+2070-U+209F */ - /* Bit 33 Currency Symbols */ -#define TT_UCR_CURRENCY_SYMBOLS (1L << 1) /* U+20A0-U+20CF */ - /* Bit 34 Combining Diacritical Marks For Symbols */ -#define TT_UCR_COMBINING_DIACRITICS_SYMB (1L << 2) /* U+20D0-U+20FF */ - /* Bit 35 Letterlike Symbols */ -#define TT_UCR_LETTERLIKE_SYMBOLS (1L << 3) /* U+2100-U+214F */ - /* Bit 36 Number Forms */ -#define TT_UCR_NUMBER_FORMS (1L << 4) /* U+2150-U+218F */ - /* Bit 37 Arrows */ - /* Supplemental Arrows-A */ - /* Supplemental Arrows-B */ - /* Miscellaneous Symbols and Arrows */ -#define TT_UCR_ARROWS (1L << 5) /* U+2190-U+21FF */ - /* U+27F0-U+27FF */ - /* U+2900-U+297F */ - /* U+2B00-U+2BFF */ - /* Bit 38 Mathematical Operators */ - /* Supplemental Mathematical Operators */ - /* Miscellaneous Mathematical Symbols-A */ - /* Miscellaneous Mathematical Symbols-B */ -#define TT_UCR_MATHEMATICAL_OPERATORS (1L << 6) /* U+2200-U+22FF */ - /* U+2A00-U+2AFF */ - /* U+27C0-U+27EF */ - /* U+2980-U+29FF */ - /* Bit 39 Miscellaneous Technical */ -#define TT_UCR_MISCELLANEOUS_TECHNICAL (1L << 7) /* U+2300-U+23FF */ - /* Bit 40 Control Pictures */ -#define TT_UCR_CONTROL_PICTURES (1L << 8) /* U+2400-U+243F */ - /* Bit 41 Optical Character Recognition */ -#define TT_UCR_OCR (1L << 9) /* U+2440-U+245F */ - /* Bit 42 Enclosed Alphanumerics */ -#define TT_UCR_ENCLOSED_ALPHANUMERICS (1L << 10) /* U+2460-U+24FF */ - /* Bit 43 Box Drawing */ -#define TT_UCR_BOX_DRAWING (1L << 11) /* U+2500-U+257F */ - /* Bit 44 Block Elements */ -#define TT_UCR_BLOCK_ELEMENTS (1L << 12) /* U+2580-U+259F */ - /* Bit 45 Geometric Shapes */ -#define TT_UCR_GEOMETRIC_SHAPES (1L << 13) /* U+25A0-U+25FF */ - /* Bit 46 Miscellaneous Symbols */ -#define TT_UCR_MISCELLANEOUS_SYMBOLS (1L << 14) /* U+2600-U+26FF */ - /* Bit 47 Dingbats */ -#define TT_UCR_DINGBATS (1L << 15) /* U+2700-U+27BF */ - /* Bit 48 CJK Symbols and Punctuation */ -#define TT_UCR_CJK_SYMBOLS (1L << 16) /* U+3000-U+303F */ - /* Bit 49 Hiragana */ -#define TT_UCR_HIRAGANA (1L << 17) /* U+3040-U+309F */ - /* Bit 50 Katakana */ - /* Katakana Phonetic Extensions */ -#define TT_UCR_KATAKANA (1L << 18) /* U+30A0-U+30FF */ - /* U+31F0-U+31FF */ - /* Bit 51 Bopomofo */ - /* Bopomofo Extended */ -#define TT_UCR_BOPOMOFO (1L << 19) /* U+3100-U+312F */ - /* U+31A0-U+31BF */ - /* Bit 52 Hangul Compatibility Jamo */ -#define TT_UCR_HANGUL_COMPATIBILITY_JAMO (1L << 20) /* U+3130-U+318F */ - /* Bit 53 Phags-Pa */ -#define TT_UCR_CJK_MISC (1L << 21) /* U+A840-U+A87F */ -#define TT_UCR_KANBUN TT_UCR_CJK_MISC /* deprecated */ -#define TT_UCR_PHAGSPA - /* Bit 54 Enclosed CJK Letters and Months */ -#define TT_UCR_ENCLOSED_CJK_LETTERS_MONTHS (1L << 22) /* U+3200-U+32FF */ - /* Bit 55 CJK Compatibility */ -#define TT_UCR_CJK_COMPATIBILITY (1L << 23) /* U+3300-U+33FF */ - /* Bit 56 Hangul Syllables */ -#define TT_UCR_HANGUL (1L << 24) /* U+AC00-U+D7A3 */ - /* Bit 57 High Surrogates */ - /* High Private Use Surrogates */ - /* Low Surrogates */ - /* */ - /* According to OpenType specs v.1.3+, */ - /* setting bit 57 implies that there is */ - /* at least one codepoint beyond the */ - /* Basic Multilingual Plane that is */ - /* supported by this font. So it really */ - /* means >= U+10000 */ -#define TT_UCR_SURROGATES (1L << 25) /* U+D800-U+DB7F */ - /* U+DB80-U+DBFF */ - /* U+DC00-U+DFFF */ -#define TT_UCR_NON_PLANE_0 TT_UCR_SURROGATES - /* Bit 58 Phoenician */ -#define TT_UCR_PHOENICIAN (1L << 26) /*U+10900-U+1091F*/ - /* Bit 59 CJK Unified Ideographs */ - /* CJK Radicals Supplement */ - /* Kangxi Radicals */ - /* Ideographic Description Characters */ - /* CJK Unified Ideographs Extension A */ - /* CJK Unified Ideographs Extension B */ - /* Kanbun */ -#define TT_UCR_CJK_UNIFIED_IDEOGRAPHS (1L << 27) /* U+4E00-U+9FFF */ - /* U+2E80-U+2EFF */ - /* U+2F00-U+2FDF */ - /* U+2FF0-U+2FFF */ - /* U+3400-U+4DB5 */ - /*U+20000-U+2A6DF*/ - /* U+3190-U+319F */ - /* Bit 60 Private Use */ -#define TT_UCR_PRIVATE_USE (1L << 28) /* U+E000-U+F8FF */ - /* Bit 61 CJK Strokes */ - /* CJK Compatibility Ideographs */ - /* CJK Compatibility Ideographs Supplement */ -#define TT_UCR_CJK_COMPATIBILITY_IDEOGRAPHS (1L << 29) /* U+31C0-U+31EF */ - /* U+F900-U+FAFF */ - /*U+2F800-U+2FA1F*/ - /* Bit 62 Alphabetic Presentation Forms */ -#define TT_UCR_ALPHABETIC_PRESENTATION_FORMS (1L << 30) /* U+FB00-U+FB4F */ - /* Bit 63 Arabic Presentation Forms-A */ -#define TT_UCR_ARABIC_PRESENTATIONS_A (1L << 31) /* U+FB50-U+FDFF */ - /* Bit 64 Combining Half Marks */ -#define TT_UCR_COMBINING_HALF_MARKS (1L << 0) /* U+FE20-U+FE2F */ - /* Bit 65 Vertical forms */ - /* CJK Compatibility Forms */ -#define TT_UCR_CJK_COMPATIBILITY_FORMS (1L << 1) /* U+FE10-U+FE1F */ - /* U+FE30-U+FE4F */ - /* Bit 66 Small Form Variants */ -#define TT_UCR_SMALL_FORM_VARIANTS (1L << 2) /* U+FE50-U+FE6F */ - /* Bit 67 Arabic Presentation Forms-B */ -#define TT_UCR_ARABIC_PRESENTATIONS_B (1L << 3) /* U+FE70-U+FEFE */ - /* Bit 68 Halfwidth and Fullwidth Forms */ -#define TT_UCR_HALFWIDTH_FULLWIDTH_FORMS (1L << 4) /* U+FF00-U+FFEF */ - /* Bit 69 Specials */ -#define TT_UCR_SPECIALS (1L << 5) /* U+FFF0-U+FFFD */ - /* Bit 70 Tibetan */ -#define TT_UCR_TIBETAN (1L << 6) /* U+0F00-U+0FFF */ - /* Bit 71 Syriac */ -#define TT_UCR_SYRIAC (1L << 7) /* U+0700-U+074F */ - /* Bit 72 Thaana */ -#define TT_UCR_THAANA (1L << 8) /* U+0780-U+07BF */ - /* Bit 73 Sinhala */ -#define TT_UCR_SINHALA (1L << 9) /* U+0D80-U+0DFF */ - /* Bit 74 Myanmar */ -#define TT_UCR_MYANMAR (1L << 10) /* U+1000-U+109F */ - /* Bit 75 Ethiopic */ - /* Ethiopic Supplement */ - /* Ethiopic Extended */ -#define TT_UCR_ETHIOPIC (1L << 11) /* U+1200-U+137F */ - /* U+1380-U+139F */ - /* U+2D80-U+2DDF */ - /* Bit 76 Cherokee */ -#define TT_UCR_CHEROKEE (1L << 12) /* U+13A0-U+13FF */ - /* Bit 77 Unified Canadian Aboriginal Syllabics */ -#define TT_UCR_CANADIAN_ABORIGINAL_SYLLABICS (1L << 13) /* U+1400-U+167F */ - /* Bit 78 Ogham */ -#define TT_UCR_OGHAM (1L << 14) /* U+1680-U+169F */ - /* Bit 79 Runic */ -#define TT_UCR_RUNIC (1L << 15) /* U+16A0-U+16FF */ - /* Bit 80 Khmer */ - /* Khmer Symbols */ -#define TT_UCR_KHMER (1L << 16) /* U+1780-U+17FF */ - /* U+19E0-U+19FF */ - /* Bit 81 Mongolian */ -#define TT_UCR_MONGOLIAN (1L << 17) /* U+1800-U+18AF */ - /* Bit 82 Braille Patterns */ -#define TT_UCR_BRAILLE (1L << 18) /* U+2800-U+28FF */ - /* Bit 83 Yi Syllables */ - /* Yi Radicals */ -#define TT_UCR_YI (1L << 19) /* U+A000-U+A48F */ - /* U+A490-U+A4CF */ - /* Bit 84 Tagalog */ - /* Hanunoo */ - /* Buhid */ - /* Tagbanwa */ -#define TT_UCR_PHILIPPINE (1L << 20) /* U+1700-U+171F */ - /* U+1720-U+173F */ - /* U+1740-U+175F */ - /* U+1760-U+177F */ - /* Bit 85 Old Italic */ -#define TT_UCR_OLD_ITALIC (1L << 21) /*U+10300-U+1032F*/ - /* Bit 86 Gothic */ -#define TT_UCR_GOTHIC (1L << 22) /*U+10330-U+1034F*/ - /* Bit 87 Deseret */ -#define TT_UCR_DESERET (1L << 23) /*U+10400-U+1044F*/ - /* Bit 88 Byzantine Musical Symbols */ - /* Musical Symbols */ - /* Ancient Greek Musical Notation */ -#define TT_UCR_MUSICAL_SYMBOLS (1L << 24) /*U+1D000-U+1D0FF*/ - /*U+1D100-U+1D1FF*/ - /*U+1D200-U+1D24F*/ - /* Bit 89 Mathematical Alphanumeric Symbols */ -#define TT_UCR_MATH_ALPHANUMERIC_SYMBOLS (1L << 25) /*U+1D400-U+1D7FF*/ - /* Bit 90 Private Use (plane 15) */ - /* Private Use (plane 16) */ -#define TT_UCR_PRIVATE_USE_SUPPLEMENTARY (1L << 26) /*U+F0000-U+FFFFD*/ - /*U+100000-U+10FFFD*/ - /* Bit 91 Variation Selectors */ - /* Variation Selectors Supplement */ -#define TT_UCR_VARIATION_SELECTORS (1L << 27) /* U+FE00-U+FE0F */ - /*U+E0100-U+E01EF*/ - /* Bit 92 Tags */ -#define TT_UCR_TAGS (1L << 28) /*U+E0000-U+E007F*/ - /* Bit 93 Limbu */ -#define TT_UCR_LIMBU (1L << 29) /* U+1900-U+194F */ - /* Bit 94 Tai Le */ -#define TT_UCR_TAI_LE (1L << 30) /* U+1950-U+197F */ - /* Bit 95 New Tai Lue */ -#define TT_UCR_NEW_TAI_LUE (1L << 31) /* U+1980-U+19DF */ - /* Bit 96 Buginese */ -#define TT_UCR_BUGINESE (1L << 0) /* U+1A00-U+1A1F */ - /* Bit 97 Glagolitic */ -#define TT_UCR_GLAGOLITIC (1L << 1) /* U+2C00-U+2C5F */ - /* Bit 98 Tifinagh */ -#define TT_UCR_TIFINAGH (1L << 2) /* U+2D30-U+2D7F */ - /* Bit 99 Yijing Hexagram Symbols */ -#define TT_UCR_YIJING (1L << 3) /* U+4DC0-U+4DFF */ - /* Bit 100 Syloti Nagri */ -#define TT_UCR_SYLOTI_NAGRI (1L << 4) /* U+A800-U+A82F */ - /* Bit 101 Linear B Syllabary */ - /* Linear B Ideograms */ - /* Aegean Numbers */ -#define TT_UCR_LINEAR_B (1L << 5) /*U+10000-U+1007F*/ - /*U+10080-U+100FF*/ - /*U+10100-U+1013F*/ - /* Bit 102 Ancient Greek Numbers */ -#define TT_UCR_ANCIENT_GREEK_NUMBERS (1L << 6) /*U+10140-U+1018F*/ - /* Bit 103 Ugaritic */ -#define TT_UCR_UGARITIC (1L << 7) /*U+10380-U+1039F*/ - /* Bit 104 Old Persian */ -#define TT_UCR_OLD_PERSIAN (1L << 8) /*U+103A0-U+103DF*/ - /* Bit 105 Shavian */ -#define TT_UCR_SHAVIAN (1L << 9) /*U+10450-U+1047F*/ - /* Bit 106 Osmanya */ -#define TT_UCR_OSMANYA (1L << 10) /*U+10480-U+104AF*/ - /* Bit 107 Cypriot Syllabary */ -#define TT_UCR_CYPRIOT_SYLLABARY (1L << 11) /*U+10800-U+1083F*/ - /* Bit 108 Kharoshthi */ -#define TT_UCR_KHAROSHTHI (1L << 12) /*U+10A00-U+10A5F*/ - /* Bit 109 Tai Xuan Jing Symbols */ -#define TT_UCR_TAI_XUAN_JING (1L << 13) /*U+1D300-U+1D35F*/ - /* Bit 110 Cuneiform */ - /* Cuneiform Numbers and Punctuation */ -#define TT_UCR_CUNEIFORM (1L << 14) /*U+12000-U+123FF*/ - /*U+12400-U+1247F*/ - /* Bit 111 Counting Rod Numerals */ -#define TT_UCR_COUNTING_ROD_NUMERALS (1L << 15) /*U+1D360-U+1D37F*/ - /* Bit 112 Sundanese */ -#define TT_UCR_SUNDANESE (1L << 16) /* U+1B80-U+1BBF */ - /* Bit 113 Lepcha */ -#define TT_UCR_LEPCHA (1L << 17) /* U+1C00-U+1C4F */ - /* Bit 114 Ol Chiki */ -#define TT_UCR_OL_CHIKI (1L << 18) /* U+1C50-U+1C7F */ - /* Bit 115 Saurashtra */ -#define TT_UCR_SAURASHTRA (1L << 19) /* U+A880-U+A8DF */ - /* Bit 116 Kayah Li */ -#define TT_UCR_KAYAH_LI (1L << 20) /* U+A900-U+A92F */ - /* Bit 117 Rejang */ -#define TT_UCR_REJANG (1L << 21) /* U+A930-U+A95F */ - /* Bit 118 Cham */ -#define TT_UCR_CHAM (1L << 22) /* U+AA00-U+AA5F */ - /* Bit 119 Ancient Symbols */ -#define TT_UCR_ANCIENT_SYMBOLS (1L << 23) /*U+10190-U+101CF*/ - /* Bit 120 Phaistos Disc */ -#define TT_UCR_PHAISTOS_DISC (1L << 24) /*U+101D0-U+101FF*/ - /* Bit 121 Carian */ - /* Lycian */ - /* Lydian */ -#define TT_UCR_OLD_ANATOLIAN (1L << 25) /*U+102A0-U+102DF*/ - /*U+10280-U+1029F*/ - /*U+10920-U+1093F*/ - /* Bit 122 Domino Tiles */ - /* Mahjong Tiles */ -#define TT_UCR_GAME_TILES (1L << 26) /*U+1F030-U+1F09F*/ - /*U+1F000-U+1F02F*/ - /* Bit 123-127 Reserved for process-internal usage */ - - - /*************************************************************************/ - /* */ - /* Some compilers have a very limited length of identifiers. */ - /* */ -#if defined( __TURBOC__ ) && __TURBOC__ < 0x0410 || defined( __PACIFIC__ ) -#define HAVE_LIMIT_ON_IDENTS -#endif - - -#ifndef HAVE_LIMIT_ON_IDENTS - - - /*************************************************************************/ - /* */ - /* Here some alias #defines in order to be clearer. */ - /* */ - /* These are not always #defined to stay within the 31~character limit, */ - /* which some compilers have. */ - /* */ - /* Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern */ - /* Borland compilers (read: from BC++ 3.1 on) can increase this limit. */ - /* If you get a warning with such a compiler, use the -i40 switch. */ - /* */ -#define TT_UCR_ARABIC_PRESENTATION_FORMS_A \ - TT_UCR_ARABIC_PRESENTATIONS_A -#define TT_UCR_ARABIC_PRESENTATION_FORMS_B \ - TT_UCR_ARABIC_PRESENTATIONS_B - -#define TT_UCR_COMBINING_DIACRITICAL_MARKS \ - TT_UCR_COMBINING_DIACRITICS -#define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \ - TT_UCR_COMBINING_DIACRITICS_SYMB - - -#endif /* !HAVE_LIMIT_ON_IDENTS */ - - -FT_END_HEADER - -#endif /* __TTNAMEID_H__ */ - - -/* END */ diff --git a/lib/linux/include/tttables.h b/lib/linux/include/tttables.h deleted file mode 100644 index e1d8b05..0000000 --- a/lib/linux/include/tttables.h +++ /dev/null @@ -1,829 +0,0 @@ -/***************************************************************************/ -/* */ -/* tttables.h */ -/* */ -/* Basic SFNT/TrueType tables definitions and interface */ -/* (specification only). */ -/* */ -/* Copyright 1996-2005, 2008-2014 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTTABLES_H__ -#define __TTTABLES_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* <Section> */ - /* truetype_tables */ - /* */ - /* <Title> */ - /* TrueType Tables */ - /* */ - /* <Abstract> */ - /* TrueType specific table types and functions. */ - /* */ - /* <Description> */ - /* This section contains the definition of TrueType-specific tables */ - /* as well as some routines used to access and process them. */ - /* */ - /* <Order> */ - /* TT_Header */ - /* TT_HoriHeader */ - /* TT_VertHeader */ - /* TT_OS2 */ - /* TT_Postscript */ - /* TT_PCLT */ - /* TT_MaxProfile */ - /* */ - /* FT_Sfnt_Tag */ - /* FT_Get_Sfnt_Table */ - /* FT_Load_Sfnt_Table */ - /* FT_Sfnt_Table_Info */ - /* */ - /* FT_Get_CMap_Language_ID */ - /* FT_Get_CMap_Format */ - /* */ - /* FT_PARAM_TAG_UNPATENTED_HINTING */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Header */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType font header table. All */ - /* fields follow the TrueType specification. */ - /* */ - typedef struct TT_Header_ - { - FT_Fixed Table_Version; - FT_Fixed Font_Revision; - - FT_Long CheckSum_Adjust; - FT_Long Magic_Number; - - FT_UShort Flags; - FT_UShort Units_Per_EM; - - FT_Long Created [2]; - FT_Long Modified[2]; - - FT_Short xMin; - FT_Short yMin; - FT_Short xMax; - FT_Short yMax; - - FT_UShort Mac_Style; - FT_UShort Lowest_Rec_PPEM; - - FT_Short Font_Direction; - FT_Short Index_To_Loc_Format; - FT_Short Glyph_Data_Format; - - } TT_Header; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_HoriHeader */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType horizontal header, the `hhea' */ - /* table, as well as the corresponding horizontal metrics table, */ - /* i.e., the `hmtx' table. */ - /* */ - /* <Fields> */ - /* Version :: The table version. */ - /* */ - /* Ascender :: The font's ascender, i.e., the distance */ - /* from the baseline to the top-most of all */ - /* glyph points found in the font. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of the */ - /* glyphs found in the font (maybe ASCII). */ - /* */ - /* You should use the `sTypoAscender' field */ - /* of the OS/2 table instead if you want */ - /* the correct one. */ - /* */ - /* Descender :: The font's descender, i.e., the distance */ - /* from the baseline to the bottom-most of */ - /* all glyph points found in the font. It */ - /* is negative. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of the */ - /* glyphs found in the font (maybe ASCII). */ - /* */ - /* You should use the `sTypoDescender' */ - /* field of the OS/2 table instead if you */ - /* want the correct one. */ - /* */ - /* Line_Gap :: The font's line gap, i.e., the distance */ - /* to add to the ascender and descender to */ - /* get the BTB, i.e., the */ - /* baseline-to-baseline distance for the */ - /* font. */ - /* */ - /* advance_Width_Max :: This field is the maximum of all advance */ - /* widths found in the font. It can be */ - /* used to compute the maximum width of an */ - /* arbitrary string of text. */ - /* */ - /* min_Left_Side_Bearing :: The minimum left side bearing of all */ - /* glyphs within the font. */ - /* */ - /* min_Right_Side_Bearing :: The minimum right side bearing of all */ - /* glyphs within the font. */ - /* */ - /* xMax_Extent :: The maximum horizontal extent (i.e., the */ - /* `width' of a glyph's bounding box) for */ - /* all glyphs in the font. */ - /* */ - /* caret_Slope_Rise :: The rise coefficient of the cursor's */ - /* slope of the cursor (slope=rise/run). */ - /* */ - /* caret_Slope_Run :: The run coefficient of the cursor's */ - /* slope. */ - /* */ - /* Reserved :: 8~reserved bytes. */ - /* */ - /* metric_Data_Format :: Always~0. */ - /* */ - /* number_Of_HMetrics :: Number of HMetrics entries in the `hmtx' */ - /* table -- this value can be smaller than */ - /* the total number of glyphs in the font. */ - /* */ - /* long_metrics :: A pointer into the `hmtx' table. */ - /* */ - /* short_metrics :: A pointer into the `hmtx' table. */ - /* */ - /* <Note> */ - /* IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should */ - /* be identical except for the names of their fields, */ - /* which are different. */ - /* */ - /* This ensures that a single function in the `ttload' */ - /* module is able to read both the horizontal and vertical */ - /* headers. */ - /* */ - typedef struct TT_HoriHeader_ - { - FT_Fixed Version; - FT_Short Ascender; - FT_Short Descender; - FT_Short Line_Gap; - - FT_UShort advance_Width_Max; /* advance width maximum */ - - FT_Short min_Left_Side_Bearing; /* minimum left-sb */ - FT_Short min_Right_Side_Bearing; /* minimum right-sb */ - FT_Short xMax_Extent; /* xmax extents */ - FT_Short caret_Slope_Rise; - FT_Short caret_Slope_Run; - FT_Short caret_Offset; - - FT_Short Reserved[4]; - - FT_Short metric_Data_Format; - FT_UShort number_Of_HMetrics; - - /* The following fields are not defined by the TrueType specification */ - /* but they are used to connect the metrics header to the relevant */ - /* `HMTX' table. */ - - void* long_metrics; - void* short_metrics; - - } TT_HoriHeader; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_VertHeader */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType vertical header, the `vhea' */ - /* table, as well as the corresponding vertical metrics table, i.e., */ - /* the `vmtx' table. */ - /* */ - /* <Fields> */ - /* Version :: The table version. */ - /* */ - /* Ascender :: The font's ascender, i.e., the distance */ - /* from the baseline to the top-most of */ - /* all glyph points found in the font. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of */ - /* the glyphs found in the font (maybe */ - /* ASCII). */ - /* */ - /* You should use the `sTypoAscender' */ - /* field of the OS/2 table instead if you */ - /* want the correct one. */ - /* */ - /* Descender :: The font's descender, i.e., the */ - /* distance from the baseline to the */ - /* bottom-most of all glyph points found */ - /* in the font. It is negative. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of */ - /* the glyphs found in the font (maybe */ - /* ASCII). */ - /* */ - /* You should use the `sTypoDescender' */ - /* field of the OS/2 table instead if you */ - /* want the correct one. */ - /* */ - /* Line_Gap :: The font's line gap, i.e., the distance */ - /* to add to the ascender and descender to */ - /* get the BTB, i.e., the */ - /* baseline-to-baseline distance for the */ - /* font. */ - /* */ - /* advance_Height_Max :: This field is the maximum of all */ - /* advance heights found in the font. It */ - /* can be used to compute the maximum */ - /* height of an arbitrary string of text. */ - /* */ - /* min_Top_Side_Bearing :: The minimum top side bearing of all */ - /* glyphs within the font. */ - /* */ - /* min_Bottom_Side_Bearing :: The minimum bottom side bearing of all */ - /* glyphs within the font. */ - /* */ - /* yMax_Extent :: The maximum vertical extent (i.e., the */ - /* `height' of a glyph's bounding box) for */ - /* all glyphs in the font. */ - /* */ - /* caret_Slope_Rise :: The rise coefficient of the cursor's */ - /* slope of the cursor (slope=rise/run). */ - /* */ - /* caret_Slope_Run :: The run coefficient of the cursor's */ - /* slope. */ - /* */ - /* caret_Offset :: The cursor's offset for slanted fonts. */ - /* This value is `reserved' in vmtx */ - /* version 1.0. */ - /* */ - /* Reserved :: 8~reserved bytes. */ - /* */ - /* metric_Data_Format :: Always~0. */ - /* */ - /* number_Of_HMetrics :: Number of VMetrics entries in the */ - /* `vmtx' table -- this value can be */ - /* smaller than the total number of glyphs */ - /* in the font. */ - /* */ - /* long_metrics :: A pointer into the `vmtx' table. */ - /* */ - /* short_metrics :: A pointer into the `vmtx' table. */ - /* */ - /* <Note> */ - /* IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should */ - /* be identical except for the names of their fields, */ - /* which are different. */ - /* */ - /* This ensures that a single function in the `ttload' */ - /* module is able to read both the horizontal and vertical */ - /* headers. */ - /* */ - typedef struct TT_VertHeader_ - { - FT_Fixed Version; - FT_Short Ascender; - FT_Short Descender; - FT_Short Line_Gap; - - FT_UShort advance_Height_Max; /* advance height maximum */ - - FT_Short min_Top_Side_Bearing; /* minimum left-sb or top-sb */ - FT_Short min_Bottom_Side_Bearing; /* minimum right-sb or bottom-sb */ - FT_Short yMax_Extent; /* xmax or ymax extents */ - FT_Short caret_Slope_Rise; - FT_Short caret_Slope_Run; - FT_Short caret_Offset; - - FT_Short Reserved[4]; - - FT_Short metric_Data_Format; - FT_UShort number_Of_VMetrics; - - /* The following fields are not defined by the TrueType specification */ - /* but they're used to connect the metrics header to the relevant */ - /* `HMTX' or `VMTX' table. */ - - void* long_metrics; - void* short_metrics; - - } TT_VertHeader; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_OS2 */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType OS/2 table. All fields */ - /* comply to the OpenType specification. */ - /* */ - /* Note that we now support old Mac fonts that do not include an OS/2 */ - /* table. In this case, the `version' field is always set to 0xFFFF. */ - /* */ - typedef struct TT_OS2_ - { - FT_UShort version; /* 0x0001 - more or 0xFFFF */ - FT_Short xAvgCharWidth; - FT_UShort usWeightClass; - FT_UShort usWidthClass; - FT_Short fsType; - FT_Short ySubscriptXSize; - FT_Short ySubscriptYSize; - FT_Short ySubscriptXOffset; - FT_Short ySubscriptYOffset; - FT_Short ySuperscriptXSize; - FT_Short ySuperscriptYSize; - FT_Short ySuperscriptXOffset; - FT_Short ySuperscriptYOffset; - FT_Short yStrikeoutSize; - FT_Short yStrikeoutPosition; - FT_Short sFamilyClass; - - FT_Byte panose[10]; - - FT_ULong ulUnicodeRange1; /* Bits 0-31 */ - FT_ULong ulUnicodeRange2; /* Bits 32-63 */ - FT_ULong ulUnicodeRange3; /* Bits 64-95 */ - FT_ULong ulUnicodeRange4; /* Bits 96-127 */ - - FT_Char achVendID[4]; - - FT_UShort fsSelection; - FT_UShort usFirstCharIndex; - FT_UShort usLastCharIndex; - FT_Short sTypoAscender; - FT_Short sTypoDescender; - FT_Short sTypoLineGap; - FT_UShort usWinAscent; - FT_UShort usWinDescent; - - /* only version 1 and higher: */ - - FT_ULong ulCodePageRange1; /* Bits 0-31 */ - FT_ULong ulCodePageRange2; /* Bits 32-63 */ - - /* only version 2 and higher: */ - - FT_Short sxHeight; - FT_Short sCapHeight; - FT_UShort usDefaultChar; - FT_UShort usBreakChar; - FT_UShort usMaxContext; - - /* only version 5 and higher: */ - - FT_UShort usLowerOpticalPointSize; /* in twips (1/20th points) */ - FT_UShort usUpperOpticalPointSize; /* in twips (1/20th points) */ - - } TT_OS2; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Postscript */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType PostScript table. All fields */ - /* comply to the TrueType specification. This structure does not */ - /* reference the PostScript glyph names, which can be nevertheless */ - /* accessed with the `ttpost' module. */ - /* */ - typedef struct TT_Postscript_ - { - FT_Fixed FormatType; - FT_Fixed italicAngle; - FT_Short underlinePosition; - FT_Short underlineThickness; - FT_ULong isFixedPitch; - FT_ULong minMemType42; - FT_ULong maxMemType42; - FT_ULong minMemType1; - FT_ULong maxMemType1; - - /* Glyph names follow in the file, but we don't */ - /* load them by default. See the ttpost.c file. */ - - } TT_Postscript; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_PCLT */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType PCLT table. All fields */ - /* comply to the TrueType specification. */ - /* */ - typedef struct TT_PCLT_ - { - FT_Fixed Version; - FT_ULong FontNumber; - FT_UShort Pitch; - FT_UShort xHeight; - FT_UShort Style; - FT_UShort TypeFamily; - FT_UShort CapHeight; - FT_UShort SymbolSet; - FT_Char TypeFace[16]; - FT_Char CharacterComplement[8]; - FT_Char FileName[6]; - FT_Char StrokeWeight; - FT_Char WidthType; - FT_Byte SerifStyle; - FT_Byte Reserved; - - } TT_PCLT; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_MaxProfile */ - /* */ - /* <Description> */ - /* The maximum profile is a table containing many max values, which */ - /* can be used to pre-allocate arrays. This ensures that no memory */ - /* allocation occurs during a glyph load. */ - /* */ - /* <Fields> */ - /* version :: The version number. */ - /* */ - /* numGlyphs :: The number of glyphs in this TrueType */ - /* font. */ - /* */ - /* maxPoints :: The maximum number of points in a */ - /* non-composite TrueType glyph. See also */ - /* the structure element */ - /* `maxCompositePoints'. */ - /* */ - /* maxContours :: The maximum number of contours in a */ - /* non-composite TrueType glyph. See also */ - /* the structure element */ - /* `maxCompositeContours'. */ - /* */ - /* maxCompositePoints :: The maximum number of points in a */ - /* composite TrueType glyph. See also the */ - /* structure element `maxPoints'. */ - /* */ - /* maxCompositeContours :: The maximum number of contours in a */ - /* composite TrueType glyph. See also the */ - /* structure element `maxContours'. */ - /* */ - /* maxZones :: The maximum number of zones used for */ - /* glyph hinting. */ - /* */ - /* maxTwilightPoints :: The maximum number of points in the */ - /* twilight zone used for glyph hinting. */ - /* */ - /* maxStorage :: The maximum number of elements in the */ - /* storage area used for glyph hinting. */ - /* */ - /* maxFunctionDefs :: The maximum number of function */ - /* definitions in the TrueType bytecode for */ - /* this font. */ - /* */ - /* maxInstructionDefs :: The maximum number of instruction */ - /* definitions in the TrueType bytecode for */ - /* this font. */ - /* */ - /* maxStackElements :: The maximum number of stack elements used */ - /* during bytecode interpretation. */ - /* */ - /* maxSizeOfInstructions :: The maximum number of TrueType opcodes */ - /* used for glyph hinting. */ - /* */ - /* maxComponentElements :: The maximum number of simple (i.e., non- */ - /* composite) glyphs in a composite glyph. */ - /* */ - /* maxComponentDepth :: The maximum nesting depth of composite */ - /* glyphs. */ - /* */ - /* <Note> */ - /* This structure is only used during font loading. */ - /* */ - typedef struct TT_MaxProfile_ - { - FT_Fixed version; - FT_UShort numGlyphs; - FT_UShort maxPoints; - FT_UShort maxContours; - FT_UShort maxCompositePoints; - FT_UShort maxCompositeContours; - FT_UShort maxZones; - FT_UShort maxTwilightPoints; - FT_UShort maxStorage; - FT_UShort maxFunctionDefs; - FT_UShort maxInstructionDefs; - FT_UShort maxStackElements; - FT_UShort maxSizeOfInstructions; - FT_UShort maxComponentElements; - FT_UShort maxComponentDepth; - - } TT_MaxProfile; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Sfnt_Tag */ - /* */ - /* <Description> */ - /* An enumeration used to specify the index of an SFNT table. */ - /* Used in the @FT_Get_Sfnt_Table API function. */ - /* */ - /* <Values> */ - /* FT_SFNT_HEAD :: To access the font's @TT_Header structure. */ - /* */ - /* FT_SFNT_MAXP :: To access the font's @TT_MaxProfile structure. */ - /* */ - /* FT_SFNT_OS2 :: To access the font's @TT_OS2 structure. */ - /* */ - /* FT_SFNT_HHEA :: To access the font's @TT_HoriHeader structure. */ - /* */ - /* FT_SFNT_VHEA :: To access the font's @TT_VertHeader struture. */ - /* */ - /* FT_SFNT_POST :: To access the font's @TT_Postscript structure. */ - /* */ - /* FT_SFNT_PCLT :: To access the font's @TT_PCLT structure. */ - /* */ - typedef enum FT_Sfnt_Tag_ - { - FT_SFNT_HEAD, - FT_SFNT_MAXP, - FT_SFNT_OS2, - FT_SFNT_HHEA, - FT_SFNT_VHEA, - FT_SFNT_POST, - FT_SFNT_PCLT, - - FT_SFNT_MAX - - } FT_Sfnt_Tag; - - /* these constants are deprecated; use the corresponding `FT_Sfnt_Tag' */ - /* values instead */ -#define ft_sfnt_head FT_SFNT_HEAD -#define ft_sfnt_maxp FT_SFNT_MAXP -#define ft_sfnt_os2 FT_SFNT_OS2 -#define ft_sfnt_hhea FT_SFNT_HHEA -#define ft_sfnt_vhea FT_SFNT_VHEA -#define ft_sfnt_post FT_SFNT_POST -#define ft_sfnt_pclt FT_SFNT_PCLT - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Sfnt_Table */ - /* */ - /* <Description> */ - /* Return a pointer to a given SFNT table within a face. */ - /* */ - /* <Input> */ - /* face :: A handle to the source. */ - /* */ - /* tag :: The index of the SFNT table. */ - /* */ - /* <Return> */ - /* A type-less pointer to the table. This will be~0 in case of */ - /* error, or if the corresponding table was not found *OR* loaded */ - /* from the file. */ - /* */ - /* Use a typecast according to `tag' to access the structure */ - /* elements. */ - /* */ - /* <Note> */ - /* The table is owned by the face object and disappears with it. */ - /* */ - /* This function is only useful to access SFNT tables that are loaded */ - /* by the sfnt, truetype, and opentype drivers. See @FT_Sfnt_Tag for */ - /* a list. */ - /* */ - /* Here an example how to access the `vhea' table: */ - /* */ - /* { */ - /* TT_VertHeader* vert_header; */ - /* */ - /* */ - /* vert_header = */ - /* (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA ); */ - /* } */ - /* */ - FT_EXPORT( void* ) - FT_Get_Sfnt_Table( FT_Face face, - FT_Sfnt_Tag tag ); - - - /************************************************************************** - * - * @function: - * FT_Load_Sfnt_Table - * - * @description: - * Load any font table into client memory. - * - * @input: - * face :: - * A handle to the source face. - * - * tag :: - * The four-byte tag of the table to load. Use the value~0 if you want - * to access the whole font file. Otherwise, you can use one of the - * definitions found in the @FT_TRUETYPE_TAGS_H file, or forge a new - * one with @FT_MAKE_TAG. - * - * offset :: - * The starting offset in the table (or file if tag == 0). - * - * @output: - * buffer :: - * The target buffer address. The client must ensure that the memory - * array is big enough to hold the data. - * - * @inout: - * length :: - * If the `length' parameter is NULL, then try to load the whole table. - * Return an error code if it fails. - * - * Else, if `*length' is~0, exit immediately while returning the - * table's (or file) full size in it. - * - * Else the number of bytes to read from the table or file, from the - * starting offset. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If you need to determine the table's length you should first call this - * function with `*length' set to~0, as in the following example: - * - * { - * FT_ULong length = 0; - * - * - * error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length ); - * if ( error ) { ... table does not exist ... } - * - * buffer = malloc( length ); - * if ( buffer == NULL ) { ... not enough memory ... } - * - * error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &length ); - * if ( error ) { ... could not load table ... } - * } - * - * Note that structures like @TT_Header or @TT_OS2 can't be used with - * this function; they are limited to @FT_Get_Sfnt_Table. Reason is that - * those structures depend on the processor architecture, with varying - * size (e.g. 32bit vs. 64bit) or order (big endian vs. little endian). - * - */ - FT_EXPORT( FT_Error ) - FT_Load_Sfnt_Table( FT_Face face, - FT_ULong tag, - FT_Long offset, - FT_Byte* buffer, - FT_ULong* length ); - - - /************************************************************************** - * - * @function: - * FT_Sfnt_Table_Info - * - * @description: - * Return information on an SFNT table. - * - * @input: - * face :: - * A handle to the source face. - * - * table_index :: - * The index of an SFNT table. The function returns - * FT_Err_Table_Missing for an invalid value. - * - * @inout: - * tag :: - * The name tag of the SFNT table. If the value is NULL, `table_index' - * is ignored, and `length' returns the number of SFNT tables in the - * font. - * - * @output: - * length :: - * The length of the SFNT table (or the number of SFNT tables, depending - * on `tag'). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * While parsing fonts, FreeType handles SFNT tables with length zero as - * missing. - * - */ - FT_EXPORT( FT_Error ) - FT_Sfnt_Table_Info( FT_Face face, - FT_UInt table_index, - FT_ULong *tag, - FT_ULong *length ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_CMap_Language_ID */ - /* */ - /* <Description> */ - /* Return TrueType/sfnt specific cmap language ID. Definitions of */ - /* language ID values are in `ttnameid.h'. */ - /* */ - /* <Input> */ - /* charmap :: */ - /* The target charmap. */ - /* */ - /* <Return> */ - /* The language ID of `charmap'. If `charmap' doesn't belong to a */ - /* TrueType/sfnt face, just return~0 as the default value. */ - /* */ - /* For a format~14 cmap (to access Unicode IVS), the return value is */ - /* 0xFFFFFFFF. */ - /* */ - FT_EXPORT( FT_ULong ) - FT_Get_CMap_Language_ID( FT_CharMap charmap ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_CMap_Format */ - /* */ - /* <Description> */ - /* Return TrueType/sfnt specific cmap format. */ - /* */ - /* <Input> */ - /* charmap :: */ - /* The target charmap. */ - /* */ - /* <Return> */ - /* The format of `charmap'. If `charmap' doesn't belong to a */ - /* TrueType/sfnt face, return -1. */ - /* */ - FT_EXPORT( FT_Long ) - FT_Get_CMap_Format( FT_CharMap charmap ); - - /* */ - - -FT_END_HEADER - -#endif /* __TTTABLES_H__ */ - - -/* END */ diff --git a/lib/linux/include/tttags.h b/lib/linux/include/tttags.h deleted file mode 100644 index d59aa19..0000000 --- a/lib/linux/include/tttags.h +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************/ -/* */ -/* tttags.h */ -/* */ -/* Tags for TrueType and OpenType tables (specification only). */ -/* */ -/* Copyright 1996-2001, 2004, 2005, 2007, 2008, 2013 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTAGS_H__ -#define __TTAGS_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - -#define TTAG_avar FT_MAKE_TAG( 'a', 'v', 'a', 'r' ) -#define TTAG_BASE FT_MAKE_TAG( 'B', 'A', 'S', 'E' ) -#define TTAG_bdat FT_MAKE_TAG( 'b', 'd', 'a', 't' ) -#define TTAG_BDF FT_MAKE_TAG( 'B', 'D', 'F', ' ' ) -#define TTAG_bhed FT_MAKE_TAG( 'b', 'h', 'e', 'd' ) -#define TTAG_bloc FT_MAKE_TAG( 'b', 'l', 'o', 'c' ) -#define TTAG_bsln FT_MAKE_TAG( 'b', 's', 'l', 'n' ) -#define TTAG_CBDT FT_MAKE_TAG( 'C', 'B', 'D', 'T' ) -#define TTAG_CBLC FT_MAKE_TAG( 'C', 'B', 'L', 'C' ) -#define TTAG_CFF FT_MAKE_TAG( 'C', 'F', 'F', ' ' ) -#define TTAG_CID FT_MAKE_TAG( 'C', 'I', 'D', ' ' ) -#define TTAG_cmap FT_MAKE_TAG( 'c', 'm', 'a', 'p' ) -#define TTAG_cvar FT_MAKE_TAG( 'c', 'v', 'a', 'r' ) -#define TTAG_cvt FT_MAKE_TAG( 'c', 'v', 't', ' ' ) -#define TTAG_DSIG FT_MAKE_TAG( 'D', 'S', 'I', 'G' ) -#define TTAG_EBDT FT_MAKE_TAG( 'E', 'B', 'D', 'T' ) -#define TTAG_EBLC FT_MAKE_TAG( 'E', 'B', 'L', 'C' ) -#define TTAG_EBSC FT_MAKE_TAG( 'E', 'B', 'S', 'C' ) -#define TTAG_feat FT_MAKE_TAG( 'f', 'e', 'a', 't' ) -#define TTAG_FOND FT_MAKE_TAG( 'F', 'O', 'N', 'D' ) -#define TTAG_fpgm FT_MAKE_TAG( 'f', 'p', 'g', 'm' ) -#define TTAG_fvar FT_MAKE_TAG( 'f', 'v', 'a', 'r' ) -#define TTAG_gasp FT_MAKE_TAG( 'g', 'a', 's', 'p' ) -#define TTAG_GDEF FT_MAKE_TAG( 'G', 'D', 'E', 'F' ) -#define TTAG_glyf FT_MAKE_TAG( 'g', 'l', 'y', 'f' ) -#define TTAG_GPOS FT_MAKE_TAG( 'G', 'P', 'O', 'S' ) -#define TTAG_GSUB FT_MAKE_TAG( 'G', 'S', 'U', 'B' ) -#define TTAG_gvar FT_MAKE_TAG( 'g', 'v', 'a', 'r' ) -#define TTAG_hdmx FT_MAKE_TAG( 'h', 'd', 'm', 'x' ) -#define TTAG_head FT_MAKE_TAG( 'h', 'e', 'a', 'd' ) -#define TTAG_hhea FT_MAKE_TAG( 'h', 'h', 'e', 'a' ) -#define TTAG_hmtx FT_MAKE_TAG( 'h', 'm', 't', 'x' ) -#define TTAG_JSTF FT_MAKE_TAG( 'J', 'S', 'T', 'F' ) -#define TTAG_just FT_MAKE_TAG( 'j', 'u', 's', 't' ) -#define TTAG_kern FT_MAKE_TAG( 'k', 'e', 'r', 'n' ) -#define TTAG_lcar FT_MAKE_TAG( 'l', 'c', 'a', 'r' ) -#define TTAG_loca FT_MAKE_TAG( 'l', 'o', 'c', 'a' ) -#define TTAG_LTSH FT_MAKE_TAG( 'L', 'T', 'S', 'H' ) -#define TTAG_LWFN FT_MAKE_TAG( 'L', 'W', 'F', 'N' ) -#define TTAG_MATH FT_MAKE_TAG( 'M', 'A', 'T', 'H' ) -#define TTAG_maxp FT_MAKE_TAG( 'm', 'a', 'x', 'p' ) -#define TTAG_META FT_MAKE_TAG( 'M', 'E', 'T', 'A' ) -#define TTAG_MMFX FT_MAKE_TAG( 'M', 'M', 'F', 'X' ) -#define TTAG_MMSD FT_MAKE_TAG( 'M', 'M', 'S', 'D' ) -#define TTAG_mort FT_MAKE_TAG( 'm', 'o', 'r', 't' ) -#define TTAG_morx FT_MAKE_TAG( 'm', 'o', 'r', 'x' ) -#define TTAG_name FT_MAKE_TAG( 'n', 'a', 'm', 'e' ) -#define TTAG_opbd FT_MAKE_TAG( 'o', 'p', 'b', 'd' ) -#define TTAG_OS2 FT_MAKE_TAG( 'O', 'S', '/', '2' ) -#define TTAG_OTTO FT_MAKE_TAG( 'O', 'T', 'T', 'O' ) -#define TTAG_PCLT FT_MAKE_TAG( 'P', 'C', 'L', 'T' ) -#define TTAG_POST FT_MAKE_TAG( 'P', 'O', 'S', 'T' ) -#define TTAG_post FT_MAKE_TAG( 'p', 'o', 's', 't' ) -#define TTAG_prep FT_MAKE_TAG( 'p', 'r', 'e', 'p' ) -#define TTAG_prop FT_MAKE_TAG( 'p', 'r', 'o', 'p' ) -#define TTAG_sbix FT_MAKE_TAG( 's', 'b', 'i', 'x' ) -#define TTAG_sfnt FT_MAKE_TAG( 's', 'f', 'n', 't' ) -#define TTAG_SING FT_MAKE_TAG( 'S', 'I', 'N', 'G' ) -#define TTAG_trak FT_MAKE_TAG( 't', 'r', 'a', 'k' ) -#define TTAG_true FT_MAKE_TAG( 't', 'r', 'u', 'e' ) -#define TTAG_ttc FT_MAKE_TAG( 't', 't', 'c', ' ' ) -#define TTAG_ttcf FT_MAKE_TAG( 't', 't', 'c', 'f' ) -#define TTAG_TYP1 FT_MAKE_TAG( 'T', 'Y', 'P', '1' ) -#define TTAG_typ1 FT_MAKE_TAG( 't', 'y', 'p', '1' ) -#define TTAG_VDMX FT_MAKE_TAG( 'V', 'D', 'M', 'X' ) -#define TTAG_vhea FT_MAKE_TAG( 'v', 'h', 'e', 'a' ) -#define TTAG_vmtx FT_MAKE_TAG( 'v', 'm', 't', 'x' ) -#define TTAG_wOFF FT_MAKE_TAG( 'w', 'O', 'F', 'F' ) - - -FT_END_HEADER - -#endif /* __TTAGS_H__ */ - - -/* END */ diff --git a/lib/linux/include/ttunpat.h b/lib/linux/include/ttunpat.h deleted file mode 100644 index bf53ddd..0000000 --- a/lib/linux/include/ttunpat.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************/ -/* */ -/* ttunpat.h */ -/* */ -/* Definitions for the unpatented TrueType hinting system */ -/* */ -/* Copyright 2003, 2006 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Written by Graham Asher <graham.asher@btinternet.com> */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTUNPAT_H__ -#define __TTUNPAT_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_UNPATENTED_HINTING - * - * @description: - * A constant used as the tag of an @FT_Parameter structure to indicate - * that unpatented methods only should be used by the TrueType bytecode - * interpreter for a typeface opened by @FT_Open_Face. - * - */ -#define FT_PARAM_TAG_UNPATENTED_HINTING FT_MAKE_TAG( 'u', 'n', 'p', 'a' ) - - /* */ - - -FT_END_HEADER - - -#endif /* __TTUNPAT_H__ */ - - -/* END */ diff --git a/lib/linux/include/vorbis/codec.h b/lib/linux/include/vorbis/codec.h deleted file mode 100644 index 999aa33..0000000 --- a/lib/linux/include/vorbis/codec.h +++ /dev/null @@ -1,243 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - - ******************************************************************** - - function: libvorbis codec headers - last mod: $Id: codec.h 17021 2010-03-24 09:29:41Z xiphmont $ - - ********************************************************************/ - -#ifndef _vorbis_codec_h_ -#define _vorbis_codec_h_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include <ogg/ogg.h> - -typedef struct vorbis_info{ - int version; - int channels; - long rate; - - /* The below bitrate declarations are *hints*. - Combinations of the three values carry the following implications: - - all three set to the same value: - implies a fixed rate bitstream - only nominal set: - implies a VBR stream that averages the nominal bitrate. No hard - upper/lower limit - upper and or lower set: - implies a VBR bitstream that obeys the bitrate limits. nominal - may also be set to give a nominal rate. - none set: - the coder does not care to speculate. - */ - - long bitrate_upper; - long bitrate_nominal; - long bitrate_lower; - long bitrate_window; - - void *codec_setup; -} vorbis_info; - -/* vorbis_dsp_state buffers the current vorbis audio - analysis/synthesis state. The DSP state belongs to a specific - logical bitstream ****************************************************/ -typedef struct vorbis_dsp_state{ - int analysisp; - vorbis_info *vi; - - float **pcm; - float **pcmret; - int pcm_storage; - int pcm_current; - int pcm_returned; - - int preextrapolate; - int eofflag; - - long lW; - long W; - long nW; - long centerW; - - ogg_int64_t granulepos; - ogg_int64_t sequence; - - ogg_int64_t glue_bits; - ogg_int64_t time_bits; - ogg_int64_t floor_bits; - ogg_int64_t res_bits; - - void *backend_state; -} vorbis_dsp_state; - -typedef struct vorbis_block{ - /* necessary stream state for linking to the framing abstraction */ - float **pcm; /* this is a pointer into local storage */ - oggpack_buffer opb; - - long lW; - long W; - long nW; - int pcmend; - int mode; - - int eofflag; - ogg_int64_t granulepos; - ogg_int64_t sequence; - vorbis_dsp_state *vd; /* For read-only access of configuration */ - - /* local storage to avoid remallocing; it's up to the mapping to - structure it */ - void *localstore; - long localtop; - long localalloc; - long totaluse; - struct alloc_chain *reap; - - /* bitmetrics for the frame */ - long glue_bits; - long time_bits; - long floor_bits; - long res_bits; - - void *internal; - -} vorbis_block; - -/* vorbis_block is a single block of data to be processed as part of -the analysis/synthesis stream; it belongs to a specific logical -bitstream, but is independent from other vorbis_blocks belonging to -that logical bitstream. *************************************************/ - -struct alloc_chain{ - void *ptr; - struct alloc_chain *next; -}; - -/* vorbis_info contains all the setup information specific to the - specific compression/decompression mode in progress (eg, - psychoacoustic settings, channel setup, options, codebook - etc). vorbis_info and substructures are in backends.h. -*********************************************************************/ - -/* the comments are not part of vorbis_info so that vorbis_info can be - static storage */ -typedef struct vorbis_comment{ - /* unlimited user comment fields. libvorbis writes 'libvorbis' - whatever vendor is set to in encode */ - char **user_comments; - int *comment_lengths; - int comments; - char *vendor; - -} vorbis_comment; - - -/* libvorbis encodes in two abstraction layers; first we perform DSP - and produce a packet (see docs/analysis.txt). The packet is then - coded into a framed OggSquish bitstream by the second layer (see - docs/framing.txt). Decode is the reverse process; we sync/frame - the bitstream and extract individual packets, then decode the - packet back into PCM audio. - - The extra framing/packetizing is used in streaming formats, such as - files. Over the net (such as with UDP), the framing and - packetization aren't necessary as they're provided by the transport - and the streaming layer is not used */ - -/* Vorbis PRIMITIVES: general ***************************************/ - -extern void vorbis_info_init(vorbis_info *vi); -extern void vorbis_info_clear(vorbis_info *vi); -extern int vorbis_info_blocksize(vorbis_info *vi,int zo); -extern void vorbis_comment_init(vorbis_comment *vc); -extern void vorbis_comment_add(vorbis_comment *vc, const char *comment); -extern void vorbis_comment_add_tag(vorbis_comment *vc, - const char *tag, const char *contents); -extern char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count); -extern int vorbis_comment_query_count(vorbis_comment *vc, const char *tag); -extern void vorbis_comment_clear(vorbis_comment *vc); - -extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb); -extern int vorbis_block_clear(vorbis_block *vb); -extern void vorbis_dsp_clear(vorbis_dsp_state *v); -extern double vorbis_granule_time(vorbis_dsp_state *v, - ogg_int64_t granulepos); - -extern const char *vorbis_version_string(void); - -/* Vorbis PRIMITIVES: analysis/DSP layer ****************************/ - -extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi); -extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op); -extern int vorbis_analysis_headerout(vorbis_dsp_state *v, - vorbis_comment *vc, - ogg_packet *op, - ogg_packet *op_comm, - ogg_packet *op_code); -extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals); -extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals); -extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb); -extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op); - -extern int vorbis_bitrate_addblock(vorbis_block *vb); -extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, - ogg_packet *op); - -/* Vorbis PRIMITIVES: synthesis layer *******************************/ -extern int vorbis_synthesis_idheader(ogg_packet *op); -extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc, - ogg_packet *op); - -extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi); -extern int vorbis_synthesis_restart(vorbis_dsp_state *v); -extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op); -extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op); -extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb); -extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm); -extern int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm); -extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples); -extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op); - -extern int vorbis_synthesis_halfrate(vorbis_info *v,int flag); -extern int vorbis_synthesis_halfrate_p(vorbis_info *v); - -/* Vorbis ERRORS and return codes ***********************************/ - -#define OV_FALSE -1 -#define OV_EOF -2 -#define OV_HOLE -3 - -#define OV_EREAD -128 -#define OV_EFAULT -129 -#define OV_EIMPL -130 -#define OV_EINVAL -131 -#define OV_ENOTVORBIS -132 -#define OV_EBADHEADER -133 -#define OV_EVERSION -134 -#define OV_ENOTAUDIO -135 -#define OV_EBADPACKET -136 -#define OV_EBADLINK -137 -#define OV_ENOSEEK -138 - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/lib/linux/include/vorbis/vorbisenc.h b/lib/linux/include/vorbis/vorbisenc.h deleted file mode 100644 index 02332b5..0000000 --- a/lib/linux/include/vorbis/vorbisenc.h +++ /dev/null @@ -1,436 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: vorbis encode-engine setup - last mod: $Id: vorbisenc.h 17021 2010-03-24 09:29:41Z xiphmont $ - - ********************************************************************/ - -/** \file - * Libvorbisenc is a convenient API for setting up an encoding - * environment using libvorbis. Libvorbisenc encapsulates the - * actions needed to set up the encoder properly. - */ - -#ifndef _OV_ENC_H_ -#define _OV_ENC_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include "codec.h" - -/** - * This is the primary function within libvorbisenc for setting up managed - * bitrate modes. - * - * Before this function is called, the \ref vorbis_info - * struct should be initialized by using vorbis_info_init() from the libvorbis - * API. After encoding, vorbis_info_clear() should be called. - * - * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set - * constraints for the encoded file. This function uses these settings to - * select the appropriate encoding mode and set it up. - * - * \param vi Pointer to an initialized \ref vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. - * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. - * \param min_bitrate Desired minimum bitrate. -1 indicates unset. - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success. - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. - */ -extern int vorbis_encode_init(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -/** - * This function performs step-one of a three-step bitrate-managed encode - * setup. It functions similarly to the one-step setup performed by \ref - * vorbis_encode_init but allows an application to make further encode setup - * tweaks using \ref vorbis_encode_ctl before finally calling \ref - * vorbis_encode_setup_init to complete the setup process. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set - * constraints for the encoded file. This function uses these settings to - * select the appropriate encoding mode and set it up. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. - * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. - * \param min_bitrate Desired minimum bitrate. -1 indicates unset. - * - * \return Zero for success, and negative for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. - */ -extern int vorbis_encode_setup_managed(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -/** - * This function performs step-one of a three-step variable bitrate - * (quality-based) encode setup. It functions similarly to the one-step setup - * performed by \ref vorbis_encode_init_vbr() but allows an application to - * make further encode setup tweaks using \ref vorbis_encode_ctl() before - * finally calling \ref vorbis_encode_setup_init to complete the setup - * process. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using \ref vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. - */ -extern int vorbis_encode_setup_vbr(vorbis_info *vi, - long channels, - long rate, - - float quality - ); - -/** - * This is the primary function within libvorbisenc for setting up variable - * bitrate ("quality" based) modes. - * - * - * Before this function is called, the vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param base_quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). - * - * - * \return Zero for success, or a negative number for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. - */ -extern int vorbis_encode_init_vbr(vorbis_info *vi, - long channels, - long rate, - - float base_quality - ); - -/** - * This function performs the last stage of three-step encoding setup, as - * described in the API overview under managed bitrate modes. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API, one of - * \ref vorbis_encode_setup_managed() or \ref vorbis_encode_setup_vbr() called to - * initialize the high-level encoding setup, and \ref vorbis_encode_ctl() - * called if necessary to make encoding setup changes. - * vorbis_encode_setup_init() finalizes the highlevel encoding structure into - * a complete encoding setup after which the application may make no further - * setup changes. - * - * After encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized \ref vorbis_info struct. - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success. - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * - * \retval OV_EINVAL Attempt to use vorbis_encode_setup_init() without first - * calling one of vorbis_encode_setup_managed() or vorbis_encode_setup_vbr() to - * initialize the high-level encoding setup - * - */ -extern int vorbis_encode_setup_init(vorbis_info *vi); - -/** - * This function implements a generic interface to miscellaneous encoder - * settings similar to the classic UNIX 'ioctl()' system call. Applications - * may use vorbis_encode_ctl() to query or set bitrate management or quality - * mode details by using one of several \e request arguments detailed below. - * vorbis_encode_ctl() must be called after one of - * vorbis_encode_setup_managed() or vorbis_encode_setup_vbr(). When used - * to modify settings, \ref vorbis_encode_ctl() must be called before \ref - * vorbis_encode_setup_init(). - * - * \param vi Pointer to an initialized vorbis_info struct. - * - * \param number Specifies the desired action; See \ref encctlcodes "the list - * of available requests". - * - * \param arg void * pointing to a data structure matching the request - * argument. - * - * \retval 0 Success. Any further return information (such as the result of a - * query) is placed into the storage pointed to by *arg. - * - * \retval OV_EINVAL Invalid argument, or an attempt to modify a setting after - * calling vorbis_encode_setup_init(). - * - * \retval OV_EIMPL Unimplemented or unknown request - */ -extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg); - -/** - * \deprecated This is a deprecated interface. Please use vorbis_encode_ctl() - * with the \ref ovectl_ratemanage2_arg struct and \ref - * OV_ECTL_RATEMANAGE2_GET and \ref OV_ECTL_RATEMANAGE2_SET calls in new code. - * - * The \ref ovectl_ratemanage_arg structure is used with vorbis_encode_ctl() - * and the \ref OV_ECTL_RATEMANAGE_GET, \ref OV_ECTL_RATEMANAGE_SET, \ref - * OV_ECTL_RATEMANAGE_AVG, \ref OV_ECTL_RATEMANAGE_HARD calls in order to - * query and modify specifics of the encoder's bitrate management - * configuration. -*/ -struct ovectl_ratemanage_arg { - int management_active; /**< nonzero if bitrate management is active*/ -/** hard lower limit (in kilobits per second) below which the stream bitrate - will never be allowed for any given bitrate_hard_window seconds of time.*/ - long bitrate_hard_min; -/** hard upper limit (in kilobits per second) above which the stream bitrate - will never be allowed for any given bitrate_hard_window seconds of time.*/ - long bitrate_hard_max; -/** the window period (in seconds) used to regulate the hard bitrate minimum - and maximum*/ - double bitrate_hard_window; -/** soft lower limit (in kilobits per second) below which the average bitrate - tracker will start nudging the bitrate higher.*/ - long bitrate_av_lo; -/** soft upper limit (in kilobits per second) above which the average bitrate - tracker will start nudging the bitrate lower.*/ - long bitrate_av_hi; -/** the window period (in seconds) used to regulate the average bitrate - minimum and maximum.*/ - double bitrate_av_window; -/** Regulates the relative centering of the average and hard windows; in - libvorbis 1.0 and 1.0.1, the hard window regulation overlapped but - followed the average window regulation. In libvorbis 1.1 a bit-reservoir - interface replaces the old windowing interface; the older windowing - interface is simulated and this field has no effect.*/ - double bitrate_av_window_center; -}; - -/** - * \name struct ovectl_ratemanage2_arg - * - * The ovectl_ratemanage2_arg structure is used with vorbis_encode_ctl() and - * the OV_ECTL_RATEMANAGE2_GET and OV_ECTL_RATEMANAGE2_SET calls in order to - * query and modify specifics of the encoder's bitrate management - * configuration. - * -*/ -struct ovectl_ratemanage2_arg { - int management_active; /**< nonzero if bitrate management is active */ -/** Lower allowed bitrate limit in kilobits per second */ - long bitrate_limit_min_kbps; -/** Upper allowed bitrate limit in kilobits per second */ - long bitrate_limit_max_kbps; - long bitrate_limit_reservoir_bits; /**<Size of the bitrate reservoir in bits */ -/** Regulates the bitrate reservoir's preferred fill level in a range from 0.0 - * to 1.0; 0.0 tries to bank bits to buffer against future bitrate spikes, 1.0 - * buffers against future sudden drops in instantaneous bitrate. Default is - * 0.1 - */ - double bitrate_limit_reservoir_bias; -/** Average bitrate setting in kilobits per second */ - long bitrate_average_kbps; -/** Slew rate limit setting for average bitrate adjustment; sets the minimum - * time in seconds the bitrate tracker may swing from one extreme to the - * other when boosting or damping average bitrate. - */ - double bitrate_average_damping; -}; - - -/** - * \name vorbis_encode_ctl() codes - * - * \anchor encctlcodes - * - * These values are passed as the \c number parameter of vorbis_encode_ctl(). - * The type of the referent of that function's \c arg pointer depends on these - * codes. - */ -/*@{*/ - -/** - * Query the current encoder bitrate management setting. - * - *Argument: <tt>struct ovectl_ratemanage2_arg *</tt> - * - * Used to query the current encoder bitrate management setting. Also used to - * initialize fields of an ovectl_ratemanage2_arg structure for use with - * \ref OV_ECTL_RATEMANAGE2_SET. - */ -#define OV_ECTL_RATEMANAGE2_GET 0x14 - -/** - * Set the current encoder bitrate management settings. - * - * Argument: <tt>struct ovectl_ratemanage2_arg *</tt> - * - * Used to set the current encoder bitrate management settings to the values - * listed in the ovectl_ratemanage2_arg. Passing a NULL pointer will disable - * bitrate management. -*/ -#define OV_ECTL_RATEMANAGE2_SET 0x15 - -/** - * Returns the current encoder hard-lowpass setting (kHz) in the double - * pointed to by arg. - * - * Argument: <tt>double *</tt> -*/ -#define OV_ECTL_LOWPASS_GET 0x20 - -/** - * Sets the encoder hard-lowpass to the value (kHz) pointed to by arg. Valid - * lowpass settings range from 2 to 99. - * - * Argument: <tt>double *</tt> -*/ -#define OV_ECTL_LOWPASS_SET 0x21 - -/** - * Returns the current encoder impulse block setting in the double pointed - * to by arg. - * - * Argument: <tt>double *</tt> -*/ -#define OV_ECTL_IBLOCK_GET 0x30 - -/** - * Sets the impulse block bias to the the value pointed to by arg. - * - * Argument: <tt>double *</tt> - * - * Valid range is -15.0 to 0.0 [default]. A negative impulse block bias will - * direct to encoder to use more bits when incoding short blocks that contain - * strong impulses, thus improving the accuracy of impulse encoding. - */ -#define OV_ECTL_IBLOCK_SET 0x31 - -/** - * Returns the current encoder coupling setting in the int pointed - * to by arg. - * - * Argument: <tt>int *</tt> -*/ -#define OV_ECTL_COUPLING_GET 0x40 - -/** - * Enables/disables channel coupling in multichannel encoding according to arg. - * - * Argument: <tt>int *</tt> - * - * Zero disables channel coupling for multichannel inputs, nonzer enables - * channel coupling. Setting has no effect on monophonic encoding or - * multichannel counts that do not offer coupling. At present, coupling is - * available for stereo and 5.1 encoding. - */ -#define OV_ECTL_COUPLING_SET 0x41 - - /* deprecated rate management supported only for compatibility */ - -/** - * Old interface to querying bitrate management settings. - * - * Deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_GET instead. - * - * Argument: <tt>struct ovectl_ratemanage_arg *</tt> - */ -#define OV_ECTL_RATEMANAGE_GET 0x10 -/** - * Old interface to modifying bitrate management settings. - * - * deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: <tt>struct ovectl_ratemanage_arg *</tt> - */ -#define OV_ECTL_RATEMANAGE_SET 0x11 -/** - * Old interface to setting average-bitrate encoding mode. - * - * Deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: <tt>struct ovectl_ratemanage_arg *</tt> - */ -#define OV_ECTL_RATEMANAGE_AVG 0x12 -/** - * Old interface to setting bounded-bitrate encoding modes. - * - * deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: <tt>struct ovectl_ratemanage_arg *</tt> - */ -#define OV_ECTL_RATEMANAGE_HARD 0x13 - -/*@}*/ - - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif diff --git a/lib/linux/include/vorbis/vorbisfile.h b/lib/linux/include/vorbis/vorbisfile.h deleted file mode 100644 index 9271331..0000000 --- a/lib/linux/include/vorbis/vorbisfile.h +++ /dev/null @@ -1,206 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: stdio-based convenience library for opening/seeking/decoding - last mod: $Id: vorbisfile.h 17182 2010-04-29 03:48:32Z xiphmont $ - - ********************************************************************/ - -#ifndef _OV_FILE_H_ -#define _OV_FILE_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include <stdio.h> -#include "codec.h" - -/* The function prototypes for the callbacks are basically the same as for - * the stdio functions fread, fseek, fclose, ftell. - * The one difference is that the FILE * arguments have been replaced with - * a void * - this is to be used as a pointer to whatever internal data these - * functions might need. In the stdio case, it's just a FILE * cast to a void * - * - * If you use other functions, check the docs for these functions and return - * the right values. For seek_func(), you *MUST* return -1 if the stream is - * unseekable - */ -typedef struct { - size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource); - int (*seek_func) (void *datasource, ogg_int64_t offset, int whence); - int (*close_func) (void *datasource); - long (*tell_func) (void *datasource); -} ov_callbacks; - -#ifndef OV_EXCLUDE_STATIC_CALLBACKS - -/* a few sets of convenient callbacks, especially for use under - * Windows where ov_open_callbacks() should always be used instead of - * ov_open() to avoid problems with incompatible crt.o version linking - * issues. */ - -static int _ov_header_fseek_wrap(FILE *f,ogg_int64_t off,int whence){ - if(f==NULL)return(-1); - -#ifdef __MINGW32__ - return fseeko64(f,off,whence); -#elif defined (_WIN32) - return _fseeki64(f,off,whence); -#else - return fseek(f,off,whence); -#endif -} - -/* These structs below (OV_CALLBACKS_DEFAULT etc) are defined here as - * static data. That means that every file which includes this header - * will get its own copy of these structs whether it uses them or - * not unless it #defines OV_EXCLUDE_STATIC_CALLBACKS. - * These static symbols are essential on platforms such as Windows on - * which several different versions of stdio support may be linked to - * by different DLLs, and we need to be certain we know which one - * we're using (the same one as the main application). - */ - -static ov_callbacks OV_CALLBACKS_DEFAULT = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, - (int (*)(void *)) fclose, - (long (*)(void *)) ftell -}; - -static ov_callbacks OV_CALLBACKS_NOCLOSE = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, - (int (*)(void *)) NULL, - (long (*)(void *)) ftell -}; - -static ov_callbacks OV_CALLBACKS_STREAMONLY = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) NULL, - (int (*)(void *)) fclose, - (long (*)(void *)) NULL -}; - -static ov_callbacks OV_CALLBACKS_STREAMONLY_NOCLOSE = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) NULL, - (int (*)(void *)) NULL, - (long (*)(void *)) NULL -}; - -#endif - -#define NOTOPEN 0 -#define PARTOPEN 1 -#define OPENED 2 -#define STREAMSET 3 -#define INITSET 4 - -typedef struct OggVorbis_File { - void *datasource; /* Pointer to a FILE *, etc. */ - int seekable; - ogg_int64_t offset; - ogg_int64_t end; - ogg_sync_state oy; - - /* If the FILE handle isn't seekable (eg, a pipe), only the current - stream appears */ - int links; - ogg_int64_t *offsets; - ogg_int64_t *dataoffsets; - long *serialnos; - ogg_int64_t *pcmlengths; /* overloaded to maintain binary - compatibility; x2 size, stores both - beginning and end values */ - vorbis_info *vi; - vorbis_comment *vc; - - /* Decoding working state local storage */ - ogg_int64_t pcm_offset; - int ready_state; - long current_serialno; - int current_link; - - double bittrack; - double samptrack; - - ogg_stream_state os; /* take physical pages, weld into a logical - stream of packets */ - vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ - vorbis_block vb; /* local working space for packet->PCM decode */ - - ov_callbacks callbacks; - -} OggVorbis_File; - - -extern int ov_clear(OggVorbis_File *vf); -extern int ov_fopen(const char *path,OggVorbis_File *vf); -extern int ov_open(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); -extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf, - const char *initial, long ibytes, ov_callbacks callbacks); - -extern int ov_test(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); -extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf, - const char *initial, long ibytes, ov_callbacks callbacks); -extern int ov_test_open(OggVorbis_File *vf); - -extern long ov_bitrate(OggVorbis_File *vf,int i); -extern long ov_bitrate_instant(OggVorbis_File *vf); -extern long ov_streams(OggVorbis_File *vf); -extern long ov_seekable(OggVorbis_File *vf); -extern long ov_serialnumber(OggVorbis_File *vf,int i); - -extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i); -extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i); -extern double ov_time_total(OggVorbis_File *vf,int i); - -extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_time_seek(OggVorbis_File *vf,double pos); -extern int ov_time_seek_page(OggVorbis_File *vf,double pos); - -extern int ov_raw_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_page_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_time_seek_lap(OggVorbis_File *vf,double pos); -extern int ov_time_seek_page_lap(OggVorbis_File *vf,double pos); - -extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf); -extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf); -extern double ov_time_tell(OggVorbis_File *vf); - -extern vorbis_info *ov_info(OggVorbis_File *vf,int link); -extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link); - -extern long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int samples, - int *bitstream); -extern long ov_read_filter(OggVorbis_File *vf,char *buffer,int length, - int bigendianp,int word,int sgned,int *bitstream, - void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param); -extern long ov_read(OggVorbis_File *vf,char *buffer,int length, - int bigendianp,int word,int sgned,int *bitstream); -extern int ov_crosslap(OggVorbis_File *vf1,OggVorbis_File *vf2); - -extern int ov_halfrate(OggVorbis_File *vf,int flag); -extern int ov_halfrate_p(OggVorbis_File *vf); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/lib/linux/include/zconf.h b/lib/linux/include/zconf.h deleted file mode 100644 index 996fff2..0000000 --- a/lib/linux/include/zconf.h +++ /dev/null @@ -1,511 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2013 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - * Even better than compiling with -DZ_PREFIX would be to use configure to set - * this permanently in zconf.h using "./configure --zprefix". - */ -#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ -# define Z_PREFIX_SET - -/* all linked symbols */ -# define _dist_code z__dist_code -# define _length_code z__length_code -# define _tr_align z__tr_align -# define _tr_flush_bits z__tr_flush_bits -# define _tr_flush_block z__tr_flush_block -# define _tr_init z__tr_init -# define _tr_stored_block z__tr_stored_block -# define _tr_tally z__tr_tally -# define adler32 z_adler32 -# define adler32_combine z_adler32_combine -# define adler32_combine64 z_adler32_combine64 -# ifndef Z_SOLO -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# endif -# define crc32 z_crc32 -# define crc32_combine z_crc32_combine -# define crc32_combine64 z_crc32_combine64 -# define deflate z_deflate -# define deflateBound z_deflateBound -# define deflateCopy z_deflateCopy -# define deflateEnd z_deflateEnd -# define deflateInit2_ z_deflateInit2_ -# define deflateInit_ z_deflateInit_ -# define deflateParams z_deflateParams -# define deflatePending z_deflatePending -# define deflatePrime z_deflatePrime -# define deflateReset z_deflateReset -# define deflateResetKeep z_deflateResetKeep -# define deflateSetDictionary z_deflateSetDictionary -# define deflateSetHeader z_deflateSetHeader -# define deflateTune z_deflateTune -# define deflate_copyright z_deflate_copyright -# define get_crc_table z_get_crc_table -# ifndef Z_SOLO -# define gz_error z_gz_error -# define gz_intmax z_gz_intmax -# define gz_strwinerror z_gz_strwinerror -# define gzbuffer z_gzbuffer -# define gzclearerr z_gzclearerr -# define gzclose z_gzclose -# define gzclose_r z_gzclose_r -# define gzclose_w z_gzclose_w -# define gzdirect z_gzdirect -# define gzdopen z_gzdopen -# define gzeof z_gzeof -# define gzerror z_gzerror -# define gzflush z_gzflush -# define gzgetc z_gzgetc -# define gzgetc_ z_gzgetc_ -# define gzgets z_gzgets -# define gzoffset z_gzoffset -# define gzoffset64 z_gzoffset64 -# define gzopen z_gzopen -# define gzopen64 z_gzopen64 -# ifdef _WIN32 -# define gzopen_w z_gzopen_w -# endif -# define gzprintf z_gzprintf -# define gzvprintf z_gzvprintf -# define gzputc z_gzputc -# define gzputs z_gzputs -# define gzread z_gzread -# define gzrewind z_gzrewind -# define gzseek z_gzseek -# define gzseek64 z_gzseek64 -# define gzsetparams z_gzsetparams -# define gztell z_gztell -# define gztell64 z_gztell64 -# define gzungetc z_gzungetc -# define gzwrite z_gzwrite -# endif -# define inflate z_inflate -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define inflateBackInit_ z_inflateBackInit_ -# define inflateCopy z_inflateCopy -# define inflateEnd z_inflateEnd -# define inflateGetHeader z_inflateGetHeader -# define inflateInit2_ z_inflateInit2_ -# define inflateInit_ z_inflateInit_ -# define inflateMark z_inflateMark -# define inflatePrime z_inflatePrime -# define inflateReset z_inflateReset -# define inflateReset2 z_inflateReset2 -# define inflateSetDictionary z_inflateSetDictionary -# define inflateGetDictionary z_inflateGetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateUndermine z_inflateUndermine -# define inflateResetKeep z_inflateResetKeep -# define inflate_copyright z_inflate_copyright -# define inflate_fast z_inflate_fast -# define inflate_table z_inflate_table -# ifndef Z_SOLO -# define uncompress z_uncompress -# endif -# define zError z_zError -# ifndef Z_SOLO -# define zcalloc z_zcalloc -# define zcfree z_zcfree -# endif -# define zlibCompileFlags z_zlibCompileFlags -# define zlibVersion z_zlibVersion - -/* all zlib typedefs in zlib.h and zconf.h */ -# define Byte z_Byte -# define Bytef z_Bytef -# define alloc_func z_alloc_func -# define charf z_charf -# define free_func z_free_func -# ifndef Z_SOLO -# define gzFile z_gzFile -# endif -# define gz_header z_gz_header -# define gz_headerp z_gz_headerp -# define in_func z_in_func -# define intf z_intf -# define out_func z_out_func -# define uInt z_uInt -# define uIntf z_uIntf -# define uLong z_uLong -# define uLongf z_uLongf -# define voidp z_voidp -# define voidpc z_voidpc -# define voidpf z_voidpf - -/* all zlib structs in zlib.h and zconf.h */ -# define gz_header_s z_gz_header_s -# define internal_state z_internal_state - -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -#if defined(ZLIB_CONST) && !defined(z_const) -# define z_const const -#else -# define z_const -#endif - -/* Some Mac compilers merge all .h files incorrectly: */ -#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) -# define NO_DUMMY_DECL -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus a few kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -#ifndef Z_ARG /* function prototypes for stdarg */ -# if defined(STDC) || defined(Z_HAVE_STDARG_H) -# define Z_ARG(args) args -# else -# define Z_ARG(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include <windows.h> - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) -# include <limits.h> -# if (UINT_MAX == 0xffffffffUL) -# define Z_U4 unsigned -# elif (ULONG_MAX == 0xffffffffUL) -# define Z_U4 unsigned long -# elif (USHRT_MAX == 0xffffffffUL) -# define Z_U4 unsigned short -# endif -#endif - -#ifdef Z_U4 - typedef Z_U4 z_crc_t; -#else - typedef unsigned long z_crc_t; -#endif - -#if 1 /* was set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H -#endif - -#if 1 /* was set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H -#endif - -#ifdef STDC -# ifndef Z_SOLO -# include <sys/types.h> /* for off_t */ -# endif -#endif - -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -# include <stdarg.h> /* for va_list */ -# endif -#endif - -#ifdef _WIN32 -# ifndef Z_SOLO -# include <stddef.h> /* for wchar_t */ -# endif -#endif - -/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and - * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even - * though the former does not conform to the LFS document), but considering - * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as - * equivalently requesting no 64-bit operations - */ -#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 -# undef _LARGEFILE64_SOURCE -#endif - -#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) -# define Z_HAVE_UNISTD_H -#endif -#ifndef Z_SOLO -# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) -# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ -# ifdef VMS -# include <unixio.h> /* for off_t */ -# endif -# ifndef z_off_t -# define z_off_t off_t -# endif -# endif -#endif - -#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 -# define Z_LFS64 -#endif - -#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) -# define Z_LARGE64 -#endif - -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) -# define Z_WANT64 -#endif - -#if !defined(SEEK_SET) && !defined(Z_SOLO) -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif - -#ifndef z_off_t -# define z_off_t long -#endif - -#if !defined(_WIN32) && defined(Z_LARGE64) -# define z_off64_t off64_t -#else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) -# define z_off64_t __int64 -# else -# define z_off64_t z_off_t -# endif -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) - #pragma map(deflateInit_,"DEIN") - #pragma map(deflateInit2_,"DEIN2") - #pragma map(deflateEnd,"DEEND") - #pragma map(deflateBound,"DEBND") - #pragma map(inflateInit_,"ININ") - #pragma map(inflateInit2_,"ININ2") - #pragma map(inflateEnd,"INEND") - #pragma map(inflateSync,"INSY") - #pragma map(inflateSetDictionary,"INSEDI") - #pragma map(compressBound,"CMBND") - #pragma map(inflate_table,"INTABL") - #pragma map(inflate_fast,"INFA") - #pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ diff --git a/lib/linux/include/zlib.h b/lib/linux/include/zlib.h deleted file mode 100644 index 3edf3ac..0000000 --- a/lib/linux/include/zlib.h +++ /dev/null @@ -1,1744 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.7, May 2nd, 2012 - - Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 - (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). -*/ - -#ifndef ZLIB_H -#define ZLIB_H - -#include "zconf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZLIB_VERSION "1.2.7" -#define ZLIB_VERNUM 0x1270 -#define ZLIB_VER_MAJOR 1 -#define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 7 -#define ZLIB_VER_SUBREVISION 0 - -/* - The 'zlib' compression library provides in-memory compression and - decompression functions, including integrity checks of the uncompressed data. - This version of the library supports only one compression method (deflation) - but other algorithms will be added later and will have the same stream - interface. - - Compression can be done in a single step if the buffers are large enough, - or can be done by repeated calls of the compression function. In the latter - case, the application must provide more input and/or consume the output - (providing more output space) before each call. - - The compressed data format used by default by the in-memory functions is - the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped - around a deflate stream, which is itself documented in RFC 1951. - - The library also supports reading and writing files in gzip (.gz) format - with an interface similar to that of stdio using the functions that start - with "gz". The gzip format is different from the zlib format. gzip is a - gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. - - This library can optionally read and write gzip streams in memory as well. - - The zlib format was designed to be compact and fast for use in memory - and on communications channels. The gzip format was designed for single- - file compression on file systems, has a larger header than zlib to maintain - directory information, and uses a different, slower check method than zlib. - - The library does not install any signal handler. The decoder checks - the consistency of the compressed data, so the library should never crash - even in case of corrupted input. -*/ - -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); - -struct internal_state; - -typedef struct z_stream_s { - z_const Bytef *next_in; /* next input byte */ - uInt avail_in; /* number of bytes available at next_in */ - uLong total_in; /* total number of input bytes read so far */ - - Bytef *next_out; /* next output byte should be put there */ - uInt avail_out; /* remaining free space at next_out */ - uLong total_out; /* total number of bytes output so far */ - - z_const char *msg; /* last error message, NULL if no error */ - struct internal_state FAR *state; /* not visible by applications */ - - alloc_func zalloc; /* used to allocate the internal state */ - free_func zfree; /* used to free the internal state */ - voidpf opaque; /* private data object passed to zalloc and zfree */ - - int data_type; /* best guess about the data type: binary or text */ - uLong adler; /* adler32 value of the uncompressed data */ - uLong reserved; /* reserved for future use */ -} z_stream; - -typedef z_stream FAR *z_streamp; - -/* - gzip header information passed to and from zlib routines. See RFC 1952 - for more details on the meanings of these fields. -*/ -typedef struct gz_header_s { - int text; /* true if compressed data believed to be text */ - uLong time; /* modification time */ - int xflags; /* extra flags (not used when writing a gzip file) */ - int os; /* operating system */ - Bytef *extra; /* pointer to extra field or Z_NULL if none */ - uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ - uInt extra_max; /* space at extra (only when reading header) */ - Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ - uInt name_max; /* space at name (only when reading header) */ - Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ - uInt comm_max; /* space at comment (only when reading header) */ - int hcrc; /* true if there was or will be a header crc */ - int done; /* true when done reading gzip header (not used - when writing a gzip file) */ -} gz_header; - -typedef gz_header FAR *gz_headerp; - -/* - The application must update next_in and avail_in when avail_in has dropped - to zero. It must update next_out and avail_out when avail_out has dropped - to zero. The application must initialize zalloc, zfree and opaque before - calling the init function. All other fields are set by the compression - library and must not be updated by the application. - - The opaque value provided by the application will be passed as the first - parameter for calls of zalloc and zfree. This can be useful for custom - memory management. The compression library attaches no meaning to the - opaque value. - - zalloc must return Z_NULL if there is not enough memory for the object. - If zlib is used in a multi-threaded application, zalloc and zfree must be - thread safe. - - On 16-bit systems, the functions zalloc and zfree must be able to allocate - exactly 65536 bytes, but will not be required to allocate more than this if - the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers - returned by zalloc for objects of exactly 65536 bytes *must* have their - offset normalized to zero. The default allocation function provided by this - library ensures this (see zutil.c). To reduce memory requirements and avoid - any allocation of 64K objects, at the expense of compression ratio, compile - the library with -DMAX_WBITS=14 (see zconf.h). - - The fields total_in and total_out can be used for statistics or progress - reports. After compression, total_in holds the total size of the - uncompressed data and may be saved for use in the decompressor (particularly - if the decompressor wants to decompress everything in a single step). -*/ - - /* constants */ - -#define Z_NO_FLUSH 0 -#define Z_PARTIAL_FLUSH 1 -#define Z_SYNC_FLUSH 2 -#define Z_FULL_FLUSH 3 -#define Z_FINISH 4 -#define Z_BLOCK 5 -#define Z_TREES 6 -/* Allowed flush values; see deflate() and inflate() below for details */ - -#define Z_OK 0 -#define Z_STREAM_END 1 -#define Z_NEED_DICT 2 -#define Z_ERRNO (-1) -#define Z_STREAM_ERROR (-2) -#define Z_DATA_ERROR (-3) -#define Z_MEM_ERROR (-4) -#define Z_BUF_ERROR (-5) -#define Z_VERSION_ERROR (-6) -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - -#define Z_NO_COMPRESSION 0 -#define Z_BEST_SPEED 1 -#define Z_BEST_COMPRESSION 9 -#define Z_DEFAULT_COMPRESSION (-1) -/* compression levels */ - -#define Z_FILTERED 1 -#define Z_HUFFMAN_ONLY 2 -#define Z_RLE 3 -#define Z_FIXED 4 -#define Z_DEFAULT_STRATEGY 0 -/* compression strategy; see deflateInit2() below for details */ - -#define Z_BINARY 0 -#define Z_TEXT 1 -#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ -#define Z_UNKNOWN 2 -/* Possible values of the data_type field (though see inflate()) */ - -#define Z_DEFLATED 8 -/* The deflate compression method (the only one supported in this version) */ - -#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ - -#define zlib_version zlibVersion() -/* for compatibility with versions < 1.0.2 */ - - - /* basic functions */ - -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); -/* The application can compare zlibVersion and ZLIB_VERSION for consistency. - If the first character differs, the library code actually used is not - compatible with the zlib.h header file used by the application. This check - is automatically made by deflateInit and inflateInit. - */ - -/* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); - - Initializes the internal stream state for compression. The fields - zalloc, zfree and opaque must be initialized before by the caller. If - zalloc and zfree are set to Z_NULL, deflateInit updates them to use default - allocation functions. - - The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: - 1 gives best speed, 9 gives best compression, 0 gives no compression at all - (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION - requests a default compromise between speed and compression (currently - equivalent to level 6). - - deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if level is not a valid compression level, or - Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible - with the version assumed by the caller (ZLIB_VERSION). msg is set to null - if there is no error message. deflateInit does not perform any compression: - this will be done by deflate(). -*/ - - -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); -/* - deflate compresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. deflate performs one or both of the - following actions: - - - Compress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in and avail_in are updated and - processing will resume at this point for the next call of deflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. This action is forced if the parameter flush is non zero. - Forcing flush frequently degrades the compression ratio, so this parameter - should be set only when necessary (in interactive applications). Some - output may be provided even if flush is not set. - - Before the call of deflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating avail_in or avail_out accordingly; avail_out should - never be zero before the call. The application can consume the compressed - output when it wants, for example when the output buffer is full (avail_out - == 0), or after each call of deflate(). If deflate returns Z_OK and with - zero avail_out, it must be called again after making room in the output - buffer because there might be more output pending. - - Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to - decide how much data to accumulate before producing output, in order to - maximize compression. - - If the parameter flush is set to Z_SYNC_FLUSH, all pending output is - flushed to the output buffer and the output is aligned on a byte boundary, so - that the decompressor can get all input data available so far. (In - particular avail_in is zero after the call if enough output space has been - provided before the call.) Flushing may degrade compression for some - compression algorithms and so it should be used only when necessary. This - completes the current deflate block and follows it with an empty stored block - that is three bits plus filler bits to the next byte, followed by four bytes - (00 00 ff ff). - - If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the - output buffer, but the output is not aligned to a byte boundary. All of the - input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. - This completes the current deflate block and follows it with an empty fixed - codes block that is 10 bits long. This assures that enough bytes are output - in order for the decompressor to finish the block before the empty fixed code - block. - - If flush is set to Z_BLOCK, a deflate block is completed and emitted, as - for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to - seven bits of the current block are held to be written as the next byte after - the next deflate block is completed. In this case, the decompressor may not - be provided enough bits at this point in order to complete decompression of - the data provided so far to the compressor. It may need to wait for the next - block to be emitted. This is for advanced applications that need to control - the emission of deflate blocks. - - If flush is set to Z_FULL_FLUSH, all output is flushed as with - Z_SYNC_FLUSH, and the compression state is reset so that decompression can - restart from this point if previous compressed data has been damaged or if - random access is desired. Using Z_FULL_FLUSH too often can seriously degrade - compression. - - If deflate returns with avail_out == 0, this function must be called again - with the same value of the flush parameter and more output space (updated - avail_out), until the flush is complete (deflate returns with non-zero - avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. - - If the parameter flush is set to Z_FINISH, pending input is processed, - pending output is flushed and deflate returns with Z_STREAM_END if there was - enough output space; if deflate returns with Z_OK, this function must be - called again with Z_FINISH and more output space (updated avail_out) but no - more input data, until it returns with Z_STREAM_END or an error. After - deflate has returned Z_STREAM_END, the only possible operations on the stream - are deflateReset or deflateEnd. - - Z_FINISH can be used immediately after deflateInit if all the compression - is to be done in a single step. In this case, avail_out must be at least the - value returned by deflateBound (see below). Then deflate is guaranteed to - return Z_STREAM_END. If not enough output space is provided, deflate will - not return Z_STREAM_END, and it must be called again as described above. - - deflate() sets strm->adler to the adler32 checksum of all input read - so far (that is, total_in bytes). - - deflate() may update strm->data_type if it can make a good guess about - the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered - binary. This field is only for information purposes and does not affect the - compression algorithm in any manner. - - deflate() returns Z_OK if some progress has been made (more input - processed or more output produced), Z_STREAM_END if all input has been - consumed and all output has been produced (only when flush is set to - Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible - (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not - fatal, and deflate() can be called again with more input and more output - space to continue compressing. -*/ - - -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the - stream state was inconsistent, Z_DATA_ERROR if the stream was freed - prematurely (some input or output was discarded). In the error case, msg - may be set but then points to a static string (which must not be - deallocated). -*/ - - -/* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); - - Initializes the internal stream state for decompression. The fields - next_in, avail_in, zalloc, zfree and opaque must be initialized before by - the caller. If next_in is not Z_NULL and avail_in is large enough (the - exact value depends on the compression method), inflateInit determines the - compression method from the zlib header and allocates all data structures - accordingly; otherwise the allocation will be deferred to the first call of - inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to - use default allocation functions. - - inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit() does not process any header information -- that is deferred - until inflate() is called. -*/ - - -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); -/* - inflate decompresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. inflate performs one or both of the - following actions: - - - Decompress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in is updated and processing will - resume at this point for the next call of inflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. inflate() provides as much output as possible, until there is - no more input data or no more space in the output buffer (see below about - the flush parameter). - - Before the call of inflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating the next_* and avail_* values accordingly. The - application can consume the uncompressed output when it wants, for example - when the output buffer is full (avail_out == 0), or after each call of - inflate(). If inflate returns Z_OK and with zero avail_out, it must be - called again after making room in the output buffer because there might be - more output pending. - - The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, - Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much - output as possible to the output buffer. Z_BLOCK requests that inflate() - stop if and when it gets to the next deflate block boundary. When decoding - the zlib or gzip format, this will cause inflate() to return immediately - after the header and before the first block. When doing a raw inflate, - inflate() will go ahead and process the first block, and will return when it - gets to the end of that block, or when it runs out of data. - - The Z_BLOCK option assists in appending to or combining deflate streams. - Also to assist in this, on return inflate() will set strm->data_type to the - number of unused bits in the last byte taken from strm->next_in, plus 64 if - inflate() is currently decoding the last block in the deflate stream, plus - 128 if inflate() returned immediately after decoding an end-of-block code or - decoding the complete header up to just before the first byte of the deflate - stream. The end-of-block will not be indicated until all of the uncompressed - data from that block has been written to strm->next_out. The number of - unused bits may in general be greater than seven, except when bit 7 of - data_type is set, in which case the number of unused bits will be less than - eight. data_type is set as noted here every time inflate() returns for all - flush options, and so can be used to determine the amount of currently - consumed input in bits. - - The Z_TREES option behaves as Z_BLOCK does, but it also returns when the - end of each deflate block header is reached, before any actual data in that - block is decoded. This allows the caller to determine the length of the - deflate block header for later use in random access within a deflate block. - 256 is added to the value of strm->data_type when inflate() returns - immediately after reaching the end of the deflate block header. - - inflate() should normally be called until it returns Z_STREAM_END or an - error. However if all decompression is to be performed in a single step (a - single call of inflate), the parameter flush should be set to Z_FINISH. In - this case all pending input is processed and all pending output is flushed; - avail_out must be large enough to hold all of the uncompressed data for the - operation to complete. (The size of the uncompressed data may have been - saved by the compressor for this purpose.) The use of Z_FINISH is not - required to perform an inflation in one step. However it may be used to - inform inflate that a faster approach can be used for the single inflate() - call. Z_FINISH also informs inflate to not maintain a sliding window if the - stream completes, which reduces inflate's memory footprint. If the stream - does not complete, either because not all of the stream is provided or not - enough output space is provided, then a sliding window will be allocated and - inflate() can be called again to continue the operation as if Z_NO_FLUSH had - been used. - - In this implementation, inflate() always flushes as much output as - possible to the output buffer, and always uses the faster approach on the - first call. So the effects of the flush parameter in this implementation are - on the return value of inflate() as noted below, when inflate() returns early - when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of - memory for a sliding window when Z_FINISH is used. - - If a preset dictionary is needed after this call (see inflateSetDictionary - below), inflate sets strm->adler to the Adler-32 checksum of the dictionary - chosen by the compressor and returns Z_NEED_DICT; otherwise it sets - strm->adler to the Adler-32 checksum of all output produced so far (that is, - total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described - below. At the end of the stream, inflate() checks that its computed adler32 - checksum is equal to that saved by the compressor and returns Z_STREAM_END - only if the checksum is correct. - - inflate() can decompress and check either zlib-wrapped or gzip-wrapped - deflate data. The header type is detected automatically, if requested when - initializing with inflateInit2(). Any information contained in the gzip - header is not retained, so applications that need that information should - instead use raw inflate, see inflateInit2() below, or inflateBack() and - perform their own processing of the gzip header and trailer. When processing - gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output - producted so far. The CRC-32 is checked against the gzip trailer. - - inflate() returns Z_OK if some progress has been made (more input processed - or more output produced), Z_STREAM_END if the end of the compressed data has - been reached and all uncompressed output has been produced, Z_NEED_DICT if a - preset dictionary is needed at this point, Z_DATA_ERROR if the input data was - corrupted (input stream not conforming to the zlib format or incorrect check - value), Z_STREAM_ERROR if the stream structure was inconsistent (for example - next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory, - Z_BUF_ERROR if no progress is possible or if there was not enough room in the - output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and - inflate() can be called again with more input and more output space to - continue decompressing. If Z_DATA_ERROR is returned, the application may - then call inflateSync() to look for a good compression block if a partial - recovery of the data is desired. -*/ - - -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state - was inconsistent. In the error case, msg may be set but then points to a - static string (which must not be deallocated). -*/ - - - /* Advanced functions */ - -/* - The following functions are needed only in some special applications. -*/ - -/* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); - - This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. - - The method parameter is the compression method. It must be Z_DEFLATED in - this version of the library. - - The windowBits parameter is the base two logarithm of the window size - (the size of the history buffer). It should be in the range 8..15 for this - version of the library. Larger values of this parameter result in better - compression at the expense of memory usage. The default value is 15 if - deflateInit is used instead. - - windowBits can also be -8..-15 for raw deflate. In this case, -windowBits - determines the window size. deflate() will then generate raw deflate data - with no zlib header or trailer, and will not compute an adler32 check value. - - windowBits can also be greater than 15 for optional gzip encoding. Add - 16 to windowBits to write a simple gzip header and trailer around the - compressed data instead of a zlib wrapper. The gzip header will have no - file name, no extra data, no comment, no modification time (set to zero), no - header crc, and the operating system will be set to 255 (unknown). If a - gzip stream is being written, strm->adler is a crc32 instead of an adler32. - - The memLevel parameter specifies how much memory should be allocated - for the internal compression state. memLevel=1 uses minimum memory but is - slow and reduces compression ratio; memLevel=9 uses maximum memory for - optimal speed. The default value is 8. See zconf.h for total memory usage - as a function of windowBits and memLevel. - - The strategy parameter is used to tune the compression algorithm. Use the - value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match), or Z_RLE to limit match distances to one (run-length - encoding). Filtered data consists mostly of small values with a somewhat - random distribution. In this case, the compression algorithm is tuned to - compress them better. The effect of Z_FILTERED is to force more Huffman - coding and less string matching; it is somewhat intermediate between - Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as - fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The - strategy parameter only affects the compression ratio but not the - correctness of the compressed output even if it is not set appropriately. - Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler - decoder for special applications. - - deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid - method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is - incompatible with the version assumed by the caller (ZLIB_VERSION). msg is - set to null if there is no error message. deflateInit2 does not perform any - compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the compression dictionary from the given byte sequence - without producing any compressed output. When using the zlib format, this - function must be called immediately after deflateInit, deflateInit2 or - deflateReset, and before any call of deflate. When doing raw deflate, this - function must be called either before any call of deflate, or immediately - after the completion of a deflate block, i.e. after all input has been - consumed and all output has been delivered when using any of the flush - options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The - compressor and decompressor must use exactly the same dictionary (see - inflateSetDictionary). - - The dictionary should consist of strings (byte sequences) that are likely - to be encountered later in the data to be compressed, with the most commonly - used strings preferably put towards the end of the dictionary. Using a - dictionary is most useful when the data to be compressed is short and can be - predicted with good accuracy; the data can then be compressed better than - with the default empty dictionary. - - Depending on the size of the compression data structures selected by - deflateInit or deflateInit2, a part of the dictionary may in effect be - discarded, for example if the dictionary is larger than the window size - provided in deflateInit or deflateInit2. Thus the strings most likely to be - useful should be put at the end of the dictionary, not at the front. In - addition, the current implementation of deflate will use at most the window - size minus 262 bytes of the provided dictionary. - - Upon return of this function, strm->adler is set to the adler32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The adler32 value - applies to the whole dictionary even if only a subset of the dictionary is - actually used by the compressor.) If a raw deflate was requested, then the - adler32 value is not computed and strm->adler is not set. - - deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent (for example if deflate has already been called for this stream - or if not at a block boundary for raw deflate). deflateSetDictionary does - not perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when several compression strategies will be - tried, for example when there are several ways of pre-processing the input - data with a filter. The streams that will be discarded should then be freed - by calling deflateEnd. Note that deflateCopy duplicates the internal - compression state which can be quite large, so this strategy is slow and can - consume lots of memory. - - deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); -/* - This function is equivalent to deflateEnd followed by deflateInit, - but does not free and reallocate all the internal compression state. The - stream will keep the same compression level and any other attributes that - may have been set by deflateInit2. - - deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); -/* - Dynamically update the compression level and compression strategy. The - interpretation of level and strategy is as in deflateInit2. This can be - used to switch between compression and straight copy of the input data, or - to switch to a different kind of input data requiring a different strategy. - If the compression level is changed, the input available so far is - compressed with the old level (and may be flushed); the new level will take - effect only at the next call of deflate(). - - Before the call of deflateParams, the stream state must be set as for - a call of deflate(), since the currently available input may have to be - compressed and flushed. In particular, strm->avail_out must be non-zero. - - deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source - stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if - strm->avail_out was zero. -*/ - -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); -/* - Fine tune deflate's internal compression parameters. This should only be - used by someone who understands the algorithm used by zlib's deflate for - searching for the best matching string, and even then only by the most - fanatic optimizer trying to squeeze out the last compressed bit for their - specific input data. Read the deflate.c source code for the meaning of the - max_lazy, good_length, nice_length, and max_chain parameters. - - deflateTune() can be called after deflateInit() or deflateInit2(), and - returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. - */ - -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); -/* - deflateBound() returns an upper bound on the compressed size after - deflation of sourceLen bytes. It must be called after deflateInit() or - deflateInit2(), and after deflateSetHeader(), if used. This would be used - to allocate an output buffer for deflation in a single pass, and so would be - called before deflate(). If that first deflate() call is provided the - sourceLen input bytes, an output buffer allocated to the size returned by - deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed - to return Z_STREAM_END. Note that it is possible for the compressed size to - be larger than the value returned by deflateBound() if flush options other - than Z_FINISH or Z_NO_FLUSH are used. -*/ - -ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, - unsigned *pending, - int *bits)); -/* - deflatePending() returns the number of bytes and bits of output that have - been generated, but not yet provided in the available output. The bytes not - provided would be due to the available output space having being consumed. - The number of bits of output not provided are between 0 and 7, where they - await more bits to join them in order to fill out a full byte. If pending - or bits are Z_NULL, then those values are not set. - - deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. - */ - -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - deflatePrime() inserts bits in the deflate output stream. The intent - is that this function is used to start off the deflate output with the bits - leftover from a previous deflate stream when appending to it. As such, this - function can only be used for raw deflate, and must be used before the first - deflate() call after a deflateInit2() or deflateReset(). bits must be less - than or equal to 16, and that many of the least significant bits of value - will be inserted in the output. - - deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough - room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); -/* - deflateSetHeader() provides gzip header information for when a gzip - stream is requested by deflateInit2(). deflateSetHeader() may be called - after deflateInit2() or deflateReset() and before the first call of - deflate(). The text, time, os, extra field, name, and comment information - in the provided gz_header structure are written to the gzip header (xflag is - ignored -- the extra flags are set according to the compression level). The - caller must assure that, if not Z_NULL, name and comment are terminated with - a zero byte, and that if extra is not Z_NULL, that extra_len bytes are - available there. If hcrc is true, a gzip header crc is included. Note that - the current versions of the command-line version of gzip (up through version - 1.3.x) do not support header crc's, and will report that it is a "multi-part - gzip file" and give up. - - If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). - - deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); - - This is another version of inflateInit with an extra parameter. The - fields next_in, avail_in, zalloc, zfree and opaque must be initialized - before by the caller. - - The windowBits parameter is the base two logarithm of the maximum window - size (the size of the history buffer). It should be in the range 8..15 for - this version of the library. The default value is 15 if inflateInit is used - instead. windowBits must be greater than or equal to the windowBits value - provided to deflateInit2() while compressing, or it must be equal to 15 if - deflateInit2() was not used. If a compressed stream with a larger window - size is given as input, inflate() will return with the error code - Z_DATA_ERROR instead of trying to allocate a larger window. - - windowBits can also be zero to request that inflate use the window size in - the zlib header of the compressed stream. - - windowBits can also be -8..-15 for raw inflate. In this case, -windowBits - determines the window size. inflate() will then process raw deflate data, - not looking for a zlib or gzip header, not generating a check value, and not - looking for any check values for comparison at the end of the stream. This - is for use with other formats that use the deflate compressed data format - such as zip. Those formats provide their own check values. If a custom - format is developed using the raw deflate format for compressed data, it is - recommended that a check value such as an adler32 or a crc32 be applied to - the uncompressed data as is done in the zlib, gzip, and zip formats. For - most applications, the zlib format should be used as is. Note that comments - above on the use in deflateInit2() applies to the magnitude of windowBits. - - windowBits can also be greater than 15 for optional gzip decoding. Add - 32 to windowBits to enable zlib and gzip decoding with automatic header - detection, or add 16 to decode only the gzip format (the zlib format will - return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a - crc32 instead of an adler32. - - inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit2 does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit2() does not process any header information -- that is - deferred until inflate() is called. -*/ - -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the decompression dictionary from the given uncompressed byte - sequence. This function must be called immediately after a call of inflate, - if that call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the adler32 value returned by that call of inflate. - The compressor and decompressor must use exactly the same dictionary (see - deflateSetDictionary). For raw inflate, this function can be called at any - time to set the dictionary. If the provided dictionary is smaller than the - window and there is already data in the window, then the provided dictionary - will amend what's there. The application must insure that the dictionary - that was used for compression is provided. - - inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the - expected one (incorrect adler32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); -/* - Skips invalid compressed data until a possible full flush point (see above - for the description of deflate with Z_FULL_FLUSH) can be found, or until all - available input is skipped. No output is provided. - - inflateSync searches for a 00 00 FF FF pattern in the compressed data. - All full flush points have this pattern, but not all occurences of this - pattern are full flush points. - - inflateSync returns Z_OK if a possible full flush point has been found, - Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point - has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. - In the success case, the application may save the current current value of - total_in which indicates where valid compressed data was found. In the - error case, the application may repeatedly call inflateSync, providing more - input each time, until success or end of the input data. -*/ - -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when randomly accessing a large stream. The - first pass through the stream can periodically record the inflate state, - allowing restarting inflate at those points when randomly accessing the - stream. - - inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); -/* - This function is equivalent to inflateEnd followed by inflateInit, - but does not free and reallocate all the internal decompression state. The - stream will keep attributes that may have been set by inflateInit2. - - inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); -/* - This function is the same as inflateReset, but it also permits changing - the wrap and window size requests. The windowBits parameter is interpreted - the same as it is for inflateInit2. - - inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL), or if - the windowBits parameter is invalid. -*/ - -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - This function inserts bits in the inflate input stream. The intent is - that this function is used to start inflating at a bit position in the - middle of a byte. The provided bits will be used before any bytes are used - from next_in. This function should only be used with raw inflate, and - should be used before the first inflate() call after inflateInit2() or - inflateReset(). bits must be less than or equal to 16, and that many of the - least significant bits of value will be inserted in the input. - - If bits is negative, then the input stream bit buffer is emptied. Then - inflatePrime() can be called again to put bits in the buffer. This is used - to clear out bits leftover after feeding inflate a block description prior - to feeding inflate codes. - - inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); -/* - This function returns two values, one in the lower 16 bits of the return - value, and the other in the remaining upper bits, obtained by shifting the - return value down 16 bits. If the upper value is -1 and the lower value is - zero, then inflate() is currently decoding information outside of a block. - If the upper value is -1 and the lower value is non-zero, then inflate is in - the middle of a stored block, with the lower value equaling the number of - bytes from the input remaining to copy. If the upper value is not -1, then - it is the number of bits back from the current bit position in the input of - the code (literal or length/distance pair) currently being processed. In - that case the lower value is the number of bytes already emitted for that - code. - - A code is being processed if inflate is waiting for more input to complete - decoding of the code, or if it has completed decoding but is waiting for - more output space to write the literal or match data. - - inflateMark() is used to mark locations in the input data for random - access, which may be at bit positions, and to note those cases where the - output of a code may span boundaries of random access blocks. The current - location in the input stream can be determined from avail_in and data_type - as noted in the description for the Z_BLOCK flush parameter for inflate. - - inflateMark returns the value noted above or -1 << 16 if the provided - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); -/* - inflateGetHeader() requests that gzip header information be stored in the - provided gz_header structure. inflateGetHeader() may be called after - inflateInit2() or inflateReset(), and before the first call of inflate(). - As inflate() processes the gzip stream, head->done is zero until the header - is completed, at which time head->done is set to one. If a zlib stream is - being decoded, then head->done is set to -1 to indicate that there will be - no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be - used to force inflate() to return immediately after header processing is - complete and before any actual data is decompressed. - - The text, time, xflags, and os fields are filled in with the gzip header - contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max - contains the maximum number of bytes to write to extra. Once done is true, - extra_len contains the actual extra field length, and extra contains the - extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, - terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, - terminated with a zero unless the length is greater than comm_max. When any - of extra, name, or comment are not Z_NULL and the respective field is not - present in the header, then that field is set to Z_NULL to signal its - absence. This allows the use of deflateSetHeader() with the returned - structure to duplicate the header. However if those fields are set to - allocated memory, then the application will need to save those pointers - elsewhere so that they can be eventually freed. - - If inflateGetHeader is not used, then the header information is simply - discarded. The header is always checked for validity, including the header - CRC if present. inflateReset() will reset the process to discard the header - information. The application would need to call inflateGetHeader() again to - retrieve the header from the next gzip stream. - - inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); - - Initialize the internal stream state for decompression using inflateBack() - calls. The fields zalloc, zfree and opaque in strm must be initialized - before the call. If zalloc and zfree are Z_NULL, then the default library- - derived memory allocation routines are used. windowBits is the base two - logarithm of the window size, in the range 8..15. window is a caller - supplied buffer of that size. Except for special applications where it is - assured that deflate was used with small window sizes, windowBits must be 15 - and a 32K byte window must be supplied to be able to decompress general - deflate streams. - - See inflateBack() for the usage of these routines. - - inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of - the parameters are invalid, Z_MEM_ERROR if the internal state could not be - allocated, or Z_VERSION_ERROR if the version of the library does not match - the version of the header file. -*/ - -typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); - -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); -/* - inflateBack() does a raw inflate with a single call using a call-back - interface for input and output. This is more efficient than inflate() for - file i/o applications in that it avoids copying between the output and the - sliding window by simply making the window itself the output buffer. This - function trusts the application to not change the output buffer passed by - the output function, at least until inflateBack() returns. - - inflateBackInit() must be called first to allocate the internal state - and to initialize the state with the user-provided window buffer. - inflateBack() may then be used multiple times to inflate a complete, raw - deflate stream with each call. inflateBackEnd() is then called to free the - allocated state. - - A raw deflate stream is one with no zlib or gzip header or trailer. - This routine would normally be used in a utility that reads zip or gzip - files and writes out uncompressed files. The utility would decode the - header and process the trailer on its own, hence this routine expects only - the raw deflate stream to decompress. This is different from the normal - behavior of inflate(), which expects either a zlib or gzip header and - trailer around the deflate stream. - - inflateBack() uses two subroutines supplied by the caller that are then - called by inflateBack() for input and output. inflateBack() calls those - routines until it reads a complete deflate stream and writes out all of the - uncompressed data, or until it encounters an error. The function's - parameters and return types are defined above in the in_func and out_func - typedefs. inflateBack() will call in(in_desc, &buf) which should return the - number of bytes of provided input, and a pointer to that input in buf. If - there is no input available, in() must return zero--buf is ignored in that - case--and inflateBack() will return a buffer error. inflateBack() will call - out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() - should return zero on success, or non-zero on failure. If out() returns - non-zero, inflateBack() will return with an error. Neither in() nor out() - are permitted to change the contents of the window provided to - inflateBackInit(), which is also the buffer that out() uses to write from. - The length written by out() will be at most the window size. Any non-zero - amount of input may be provided by in(). - - For convenience, inflateBack() can be provided input on the first call by - setting strm->next_in and strm->avail_in. If that input is exhausted, then - in() will be called. Therefore strm->next_in must be initialized before - calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called - immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in - must also be initialized, and then if strm->avail_in is not zero, input will - initially be taken from strm->next_in[0 .. strm->avail_in - 1]. - - The in_desc and out_desc parameters of inflateBack() is passed as the - first parameter of in() and out() respectively when they are called. These - descriptors can be optionally used to pass any information that the caller- - supplied in() and out() functions need to do their job. - - On return, inflateBack() will set strm->next_in and strm->avail_in to - pass back any unused input that was provided by the last in() call. The - return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR - if in() or out() returned an error, Z_DATA_ERROR if there was a format error - in the deflate stream (in which case strm->msg is set to indicate the nature - of the error), or Z_STREAM_ERROR if the stream was not properly initialized. - In the case of Z_BUF_ERROR, an input or output error can be distinguished - using strm->next_in which will be Z_NULL only if in() returned an error. If - strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning - non-zero. (in() will always be called before out(), so strm->next_in is - assured to be defined if out() returns non-zero.) Note that inflateBack() - cannot return Z_OK. -*/ - -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); -/* - All memory allocated by inflateBackInit() is freed. - - inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream - state was inconsistent. -*/ - -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); -/* Return flags indicating compile-time options. - - Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: - 1.0: size of uInt - 3.2: size of uLong - 5.4: size of voidpf (pointer) - 7.6: size of z_off_t - - Compiler, assembler, and debug options: - 8: DEBUG - 9: ASMV or ASMINF -- use ASM code - 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention - 11: 0 (reserved) - - One-time table building (smaller code, but not thread-safe if true): - 12: BUILDFIXED -- build static block decoding tables when needed - 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed - 14,15: 0 (reserved) - - Library content (indicates missing functionality): - 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking - deflate code when not needed) - 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect - and decode gzip streams (to avoid linking crc code) - 18-19: 0 (reserved) - - Operation variations (changes in library functionality): - 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate - 21: FASTEST -- deflate algorithm with only one, lowest compression level - 22,23: 0 (reserved) - - The sprintf variant used by gzprintf (zero is best): - 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format - 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! - 26: 0 = returns value, 1 = void -- 1 means inferred string length returned - - Remainder: - 27-31: 0 (reserved) - */ - -#ifndef Z_SOLO - - /* utility functions */ - -/* - The following utility functions are implemented on top of the basic - stream-oriented functions. To simplify the interface, some default options - are assumed (compression level and memory usage, standard memory allocation - functions). The source code of these utility functions can be modified if - you need special options. -*/ - -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Compresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer. -*/ - -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); -/* - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ - -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); -/* - compressBound() returns an upper bound on the compressed size after - compress() or compress2() on sourceLen bytes. It would be used before a - compress() or compress2() call to allocate the destination buffer. -*/ - -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be large enough to hold the entire - uncompressed data. (The size of the uncompressed data must have been saved - previously by the compressor and transmitted to the decompressor by some - mechanism outside the scope of this compression library.) Upon exit, destLen - is the actual size of the uncompressed buffer. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In - the case where there is not enough room, uncompress() will fill the output - buffer with the uncompressed data up to that point. -*/ - - /* gzip file access functions */ - -/* - This library supports reading and writing files in gzip (.gz) format with - an interface similar to that of stdio, using the functions that start with - "gz". The gzip format is different from the zlib format. gzip is a gzip - wrapper, documented in RFC 1952, wrapped around a deflate stream. -*/ - -typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ - -/* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); - - Opens a gzip (.gz) file for reading or writing. The mode parameter is as - in fopen ("rb" or "wb") but can also include a compression level ("wb9") or - a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only - compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) 'T' will - request transparent writing or appending with no compression and not using - the gzip format. - - "a" can be used instead of "w" to request that the gzip stream that will - be written be appended to the file. "+" will result in an error, since - reading and writing to the same gzip file is not supported. The addition of - "x" when writing will create the file exclusively, which fails if the file - already exists. On systems that support it, the addition of "e" when - reading or writing will set the flag to close the file on an execve() call. - - These functions, as well as gzip, will read and decode a sequence of gzip - streams in a file. The append function of gzopen() can be used to create - such a file. (Also see gzflush() for another way to do this.) When - appending, gzopen does not test whether the file begins with a gzip stream, - nor does it look for the end of the gzip streams to begin appending. gzopen - will simply append a gzip stream to the existing file. - - gzopen can be used to read a file which is not in gzip format; in this - case gzread will directly read from the file without decompression. When - reading, this will be detected automatically by looking for the magic two- - byte gzip header. - - gzopen returns NULL if the file could not be opened, if there was - insufficient memory to allocate the gzFile state, or if an invalid mode was - specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). - errno can be checked to determine if the reason gzopen failed was that the - file could not be opened. -*/ - -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); -/* - gzdopen associates a gzFile with the file descriptor fd. File descriptors - are obtained from calls like open, dup, creat, pipe or fileno (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. - - The next call of gzclose on the returned gzFile will also close the file - descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor - fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, - mode);. The duplicated descriptor should be saved to avoid a leak, since - gzdopen does not close fd if it fails. If you are using fileno() to get the - file descriptor from a FILE *, then you will have to use dup() to avoid - double-close()ing the file descriptor. Both gzclose() and fclose() will - close the associated file descriptor, so they need to have different file - descriptors. - - gzdopen returns NULL if there was insufficient memory to allocate the - gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not - provided, or '+' was provided), or if fd is -1. The file descriptor is not - used until the next gz* read, write, seek, or close operation, so gzdopen - will not detect if fd is invalid (unless fd is -1). -*/ - -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); -/* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Two buffers are allocated, either both of the specified size when - writing, or one of the specified size and the other twice that size when - reading. A larger buffer size of, for example, 64K or 128K bytes will - noticeably increase the speed of decompression (reading). - - The new buffer size also affects the maximum length for gzprintf(). - - gzbuffer() returns 0 on success, or -1 on failure, such as being called - too late. -*/ - -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); -/* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. - - gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not - opened for writing. -*/ - -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); -/* - Reads the given number of uncompressed bytes from the compressed file. If - the input file is not in gzip format, gzread copies the given number of - bytes into the buffer directly from the file. - - After reaching the end of a gzip stream in the input, gzread will continue - to read, looking for another gzip stream. Any number of gzip streams may be - concatenated in the input file, and will all be decompressed by gzread(). - If something other than a gzip stream is encountered after a gzip stream, - that remaining trailing garbage is ignored (and no error is returned). - - gzread can be used to read a gzip file that is being concurrently written. - Upon reaching the end of the input, gzread will return with the available - data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then - gzclearerr can be used to clear the end of file indicator in order to permit - gzread to be tried again. Z_OK indicates that a gzip stream was completed - on the last gzread. Z_BUF_ERROR indicates that the input file ended in the - middle of a gzip stream. Note that gzread does not return -1 in the event - of an incomplete gzip stream. This error is deferred until gzclose(), which - will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip - stream. Alternatively, gzerror can be used before gzclose to detect this - case. - - gzread returns the number of uncompressed bytes actually read, less than - len for end of file, or -1 for error. -*/ - -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); -/* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. -*/ - -ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); -/* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written, or 0 in case of error. The number of - uncompressed bytes written is limited to 8191, or one less than the buffer - size given to gzbuffer(). The caller should assure that this limit is not - exceeded. If it is exceeded, then gzprintf() will return an error (0) with - nothing written. In this case, there may also be a buffer overflow with - unpredictable consequences, which is possible only if zlib was compiled with - the insecure functions sprintf() or vsprintf() because the secure snprintf() - or vsnprintf() functions were not available. This can be determined using - zlibCompileFlags(). -*/ - -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); -/* - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - - gzputs returns the number of characters written, or -1 in case of error. -*/ - -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); -/* - Reads bytes from the compressed file until len-1 characters are read, or a - newline character is read and transferred to buf, or an end-of-file - condition is encountered. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. - - gzgets returns buf which is a null-terminated string, or it returns NULL - for end-of-file or in case of error. If there was an error, the contents at - buf are indeterminate. -*/ - -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); -/* - Writes c, converted to an unsigned char, into the compressed file. gzputc - returns the value that was written, or -1 in case of error. -*/ - -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); -/* - Reads one byte from the compressed file. gzgetc returns this byte or -1 - in case of end of file or error. This is implemented as a macro for speed. - As such, it does not do all of the checking the other functions do. I.e. - it does not check to see if file is NULL, nor whether the structure file - points to has been clobbered or not. -*/ - -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); -/* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. - gzungetc() returns the character pushed, or -1 on failure. gzungetc() will - fail if c is -1, and may fail if a character has been pushed but not read - yet. If gzungetc is used immediately after gzopen or gzdopen, at least the - output buffer size of pushed characters is allowed. (See gzbuffer above.) - The pushed character will be discarded if the stream is repositioned with - gzseek() or gzrewind(). -*/ - -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); -/* - Flushes all pending output into the compressed file. The parameter flush - is as in the deflate() function. The return value is the zlib error number - (see function gzerror below). gzflush is only permitted when writing. - - If the flush parameter is Z_FINISH, the remaining data is written and the - gzip stream is completed in the output. If gzwrite() is called again, a new - gzip stream will be started in the output. gzread() is able to read such - concatented gzip streams. - - gzflush should be called only when strictly necessary because it will - degrade compression if called too often. -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); - - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the - uncompressed data stream. The whence parameter is defined as in lseek(2); - the value SEEK_END is not supported. - - If the file is opened for reading, this function is emulated but can be - extremely slow. If the file is opened for writing, only forward seeks are - supported; gzseek then compresses a sequence of zeroes up to the new - starting position. - - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error, in - particular if the file is opened for writing and the new starting position - would be before the current position. -*/ - -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); -/* - Rewinds the given file. This function is supported only for reading. - - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); - - Returns the starting position for the next gzread or gzwrite on the given - compressed file. This position represents a number of bytes in the - uncompressed data stream, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). - - gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); - - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. -*/ - -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); -/* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. - - If gzeof() returns true, then the read functions will return no more data, - unless the end-of-file indicator is reset by gzclearerr() and the input file - has grown since the previous end of file was detected. -*/ - -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); -/* - Returns true (1) if file is being copied directly while reading, or false - (0) if file is a gzip stream being decompressed. - - If the input file is empty, gzdirect() will return true, since the input - does not contain a gzip stream. - - If gzdirect() is used immediately after gzopen() or gzdopen() it will - cause buffers to be allocated to allow reading the file to determine if it - is a gzip file. Therefore if gzbuffer() is used, it should be called before - gzdirect(). - - When writing, gzdirect() returns true (1) if transparent writing was - requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note: - gzdirect() is not needed when writing. Transparent writing must be - explicitly requested, so the application already knows the answer. When - linking statically, using gzdirect() will include all of the zlib code for - gzip file reading and decompression, which may not be desired.) -*/ - -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); -/* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you - cannot call gzerror with file, since its structures have been deallocated. - gzclose must not be called more than once on the same file, just as free - must not be called more than once on the same allocation. - - gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a - file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the - last read ended in the middle of a gzip stream, or Z_OK on success. -*/ - -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); -/* - Same as gzclose(), but gzclose_r() is only for use when reading, and - gzclose_w() is only for use when writing or appending. The advantage to - using these instead of gzclose() is that they avoid linking in zlib - compression or decompression code that is not used when only reading or only - writing respectively. If gzclose() is used, then both compression and - decompression code will be included the application when linking to a static - zlib library. -*/ - -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); -/* - Returns the error message for the last error which occurred on the given - compressed file. errnum is set to zlib error number. If an error occurred - in the file system and not in the compression library, errnum is set to - Z_ERRNO and the application may consult errno to get the exact error code. - - The application must not modify the returned string. Future calls to - this function may invalidate the previously returned string. If file is - closed, then the string previously returned by gzerror will no longer be - available. - - gzerror() should be used to distinguish errors from end-of-file for those - functions above that do not distinguish those cases in their return values. -*/ - -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); -/* - Clears the error and end-of-file flags for file. This is analogous to the - clearerr() function in stdio. This is useful for continuing to read a gzip - file that is being written concurrently. -*/ - -#endif /* !Z_SOLO */ - - /* checksum functions */ - -/* - These functions are not related to compression but are exported - anyway because they might be useful in applications using the compression - library. -*/ - -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); -/* - Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is Z_NULL, this function returns the - required initial value for the checksum. - - An Adler-32 checksum is almost as reliable as a CRC32 but can be computed - much faster. - - Usage example: - - uLong adler = adler32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - adler = adler32(adler, buffer, length); - } - if (adler != original_adler) error(); -*/ - -/* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); - - Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 - and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for - each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of - seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note - that the z_off_t type (like off_t) is a signed integer. If len2 is - negative, the result has no meaning or utility. -*/ - -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); -/* - Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_NULL, this function returns the required - initial value for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. - - Usage example: - - uLong crc = crc32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - crc = crc32(crc, buffer, length); - } - if (crc != original_crc) error(); -*/ - -/* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); - - Combine two CRC-32 check values into one. For two sequences of bytes, - seq1 and seq2 with lengths len1 and len2, CRC-32 check values were - calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 - check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and - len2. -*/ - - - /* various hacks, don't look :) */ - -/* deflateInit and inflateInit are macros to allow checking the zlib version - * and the compiler's view of z_stream: - */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); -#define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -#define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -#define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -#define inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) - -#ifndef Z_SOLO - -/* gzgetc() macro and its supporting function and exposed data structure. Note - * that the real internal state is much larger than the exposed structure. - * This abbreviated structure exposes just enough for the gzgetc() macro. The - * user should not mess with these exposed elements, since their names or - * behavior could change in the future, perhaps even capriciously. They can - * only be used by the gzgetc() macro. You have been warned. - */ -struct gzFile_s { - unsigned have; - unsigned char *next; - z_off64_t pos; -}; -ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ -#ifdef Z_PREFIX_SET -# undef z_gzgetc -# define z_gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) -#else -# define gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) -#endif - -/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or - * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if - * both are true, the application gets the *64 functions, and the regular - * functions are changed to 64 bits) -- in case these are set on systems - * without large file support, _LFS64_LARGEFILE must also be true - */ -#ifdef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); -#endif - -#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) -# ifdef Z_PREFIX_SET -# define z_gzopen z_gzopen64 -# define z_gzseek z_gzseek64 -# define z_gztell z_gztell64 -# define z_gzoffset z_gzoffset64 -# define z_adler32_combine z_adler32_combine64 -# define z_crc32_combine z_crc32_combine64 -# else -# define gzopen gzopen64 -# define gzseek gzseek64 -# define gztell gztell64 -# define gzoffset gzoffset64 -# define adler32_combine adler32_combine64 -# define crc32_combine crc32_combine64 -# endif -# ifndef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); -# endif -#else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); -#endif - -#else /* Z_SOLO */ - - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - -#endif /* !Z_SOLO */ - -/* hack for buggy compilers */ -#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) - struct internal_state {int dummy;}; -#endif - -/* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if defined(_WIN32) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* ZLIB_H */ diff --git a/lib/linux/libGLEW.a b/lib/linux/libGLEW.a deleted file mode 100644 index 23b530479e973398af91bbc83610f3ac6781f032..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 921784 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 Lbd90^3k3cT^+2dC diff --git a/lib/linux/libdiscord_game_sdk.so b/lib/linux/libdiscord_game_sdk.so new file mode 100644 index 0000000000000000000000000000000000000000..9dacf946177e109183fb8aff3262c31080b047bc GIT binary patch literal 8469240 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 qZ7QS)d#Jas@wto1x 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⪤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%0AiygTpnk_r8M&zoK9B<RsFT=D5ujhIh_(9 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ŝ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%0DvjMg^a}&;1ngFgMgxiNE=lqRWq(5>|Vf-Qt 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�n{jflvn`Jw&&w*!gIR8qaM}=6=v_vu9pgh6O@~iGvQ$Y08;}1W(MUO1b`9? z0O)<6>DST2D=g0(f5^G*>qz3p-5dgD1?_hgwy(thRr{ys+Hd<0?GK~<{9KEc(R&ax z!#^vxQ{;DqddCPt9`%dWz3O$0z{-+Xv-!!}4sT6IlLzIewn&DB)B5yt=JBx3Pksv- zu$yE+R!3aZQX8l{(U2n47pREnTg<Z2F?3&gYj6E<pUo`TSHU|4HGQK`P4<21w!eRE z6J7$)oUrSEL~!(;%X(Lq)i(pMOy3kdix1l-JU^zsG+IQU`sVf3zTeN<_V?cj;1Rj| zX9JJ<b_qh!pMT3nAY8*!K?_yAyKD3JdcS<z^?#r)UfsKbZQ^T<CeE$#t@!aVWbzb$ z)koA+-@B$!eL?9!5>XHM>e_aFXBs?|Dd^BP;fZeh`+fBN|NIx<mu~y}*XV`%Q{`_4 zwE?o_>pA*EUe7Lo>OauuZKJn|uX$Gg12&8M*JYcK0>3Mer#S(Dr`|gM0KGW3y><Rz zUZlIc^{Uh1Q8A9l41a?8DbVNp#8=^#sc82b1M(tThsMM4)F0Y}`}XB+K4C;q#@D6a z)&XA$y}h|yZh(ug;tJ)$sbq%l63#00?rwWPRE2%ws~`zjf4tkK`U}=;+4V<t0J~}j ze%I<yYt<GWO3w`c(@?4Xh3gG8VlFKEkBg3r_%Q1*Blxr?VbQT1Q76p(=@nbyW#>o3 zmy6f&dHWIlTW}{>=MP|H0>#g?KZQgCi?%*-_**0(4SypJRlVzlzrg38i+Dlcu9`bk zs$f0${LX#Xa~zORgA>>xNgo_wbHDs(={&-EfAt~4=X-te+094l(F-pZtmpd1j~U8f zU^4l~LHzWJSM#^wedEXU>}v69jxaCoU<oxGi1XkeKZ5u#{;lE}t^JsU_hs%W$(kKF zy)wo=4#t4>|4zLJ1h+N_#0Fz813ljW@;smiqXZ-fl<*tAFNj~`*3O!zb8Qx^S6fs# zU!hyS6K{wxKJnze8V?0MiQ01OZI)XbTlZM9p(IdzvU8fn5;}mI2*vf%r|<W^k6H8C zD=m-MTy{n4`grmi`3i`|Cti9n4*>BLKC{L0#0qobZ<XU_g?}hr6J@q%GA+B2aRH~G zhvc1p2{iPlA<)WlgI{B+6%&J<3BNR0BRRXQV3fjhDGQNTnc0WT3Uf}&gwIiW`)8RJ zwS68<lrKRPIVBHYJPSaP86Htf5f?6Ll?ZAJPKVHTg&Yud{zCr3EiW0{7(d37-;TNK zDETRpm`~npm~DS!i+D|7h@XqORWKk1;4VXfka^b;M}jaGt4WG+ez#@c4YBqg0N(CP zq=p#R07s617E&(D(ZU6EXI8U4a6_OyJ80txCqcJoT6wxXEa>*oJZ9DH%<!WraSAk5 z@93E-+h>;*Nok!;Z5d)%a3Ic%8x`4G^5_bAT=td;mu2hUH>iL2{9sUj4sPGe!)=mC z6<l25k4C!@o-1B7oE8KC0iF{hCqyKVpsPqbz7HUzf6HLa@_O{oU$05&#!6WfG(Jdv z)6lQiJG|JJFB~ss!lwd@>bosppC0{T)F;JyF)vyKxZfKqSF1i`UNB$e<=vQ?oV>fs zybH3UJ;15UB7{u%y&dHNd}F2FCb80RRPumxu*x%^*SV1bdH%_S@3IdcsFWh3kr*ZA zd@U~-R^jd`J0d#?UMpv#a#`@DU-;#Q+?RUl^`(`wFYALZw-kP<wWw=TPrbgha`xqR z`m+7=Ov`X67|$u<0QORn3uM3eHut(5!E)s$1j}IfO!CC*P&m9mrljNO$2p;7GR5h~ zqJqT$>F=@y)#fjt4zlXG&HXA<RN<e5duaL$a)ckjs->Pf;V-3R&!V6>nL>dwg&Y4C zWwz%t*94hDzTZi@#iJC>&7uLdcAIkU2NV~iQsHQ9zA8VEYPX)RhEUSzn7aJ4gF4iT zziW^qc>L}4GVdV)uBq`ew0JSg#^=N==<6H$+}C*JphEkg#q;4zBf<;0i@i3uukp-2 z*DSUiVb|;|u=^T0qate{+?>6ou}Lnr5;I?QOXDgT!U}I`Bvy{y(m28DO%KW0SA+W* ziSFI|e#SlRenvH&J>J*)v^x3-3#Bxkf)|%6t`On)`e*M8{i>Tnk4zPR3{IKnbv@&; z>}SM6uMmEy3`tbsBs<1Hr*G%=!!P5>bINq<Jr~pM73+Sp1e5XF!mH%ndPZBIWI*L> z5$ehQAgL<U$~OF~{suw%3daC)dSi+7#={Gye^V1P!(Z7xD+#lD<0`dWtyv~NS33Le ztNv}!k8;$m(;sbGa{6P&@A+4OzLV7#G~bkHz6loW!_T8h>5s@$&bZ?FO*qfbh~(G5 zRrjwVOpcJrQyh*$5!{42m{cd?M+sofva(fMe}c(!C>hzw5(cA^OH2K8Fe9k6e>4vo z!wCV1^+i3ikL%_C5a>@*3I0oc_LhNJ-1Rb|V=uL)UV6qRk?i;uoDX;kMp}+etMe#_ z_GHh4Xny%$=|j5%2V(2d5B{I@p`icl|Me4w#}v%W?RJ<aGyKj{2-qEecpuG7_}uig z8}eYjPJG5W+G6*8Rd#?f;aPkL-C)&6x!4%`s`|f^um4)=PwyHu_5sG};B)_Y_R-bw z<<@YXMDyzrl*m9)C^JO?Q8Cl_K#BqsB}HM~0KxFzs1*NjC9$(Q<)hx}tS_u{w5#){ zu4GgtaT0B4wvx@+lBnOaqbixxLcXgH9B%E%jOAb4?Eh7LKURHD&Zh2*>-~jFImD$n zO~vrDn@gcj7nk{SD1*_w+&@@KVruqi{{W{gMkNvU3XZExcq%tu;=eYCu)(%Zw4=a! ztnVUju%!xRcWo!dVQ%SGjCTVWImWZ%Eb888$W+>YmIsa3V^114<W#Es{vC|LUFA&E ze=cPz47HvWOU_@&93!Ra#7W5|nmS|iR%%Yu(t_<sHe#D<-%IbFAAM)<o{F6*6s!9; zS~ZjY-qBF&JGL_)yQ*>TdVq*0-uFxP1eMR^=lh)eZ6=O2s#tFSEvN5+o@wkTf6i!4 zn-=vydg3jGoNC<;f4b6ixw2jhvR)vIYsUQ{we-1ewAZ;<vVRqSgp8}CYB?c2D3)5P zH-Dlm4avPHxdo6AR=5EAR$kZ0gbyhZ{;#UZRWdm?Z<XFy1mwEYbArqeso_iCLl$gh z|F!kepYrRYUb@V`v{rsGSCbA9SA}g8{r356qSGa`#|*N;PBB`r>ufJ{GF3~FI?np! zf$~o_;5h&FxQ4#Bd}YFN%aI*|rNQwgH5#fMf(AmsRem+57f3Sd(scetv>dQZ&w1dk zkbPXP|0aNn;7+wx^CXg!ZwD7S`ID1RIfi_ye@?z#5!AAa)nfBsKHln?z_q;ZdcILI zE>-d#yMeve^KW39=^YPtH;SS!Z3*TYaNz`0fQ#WV;NWV3UhDlsNy~Re^xg-apnv|Y z)zI93x&D`=FAzY;i3vf!_j;^1yK4P^M1D%h4F4V9eib|y;=u>}UvCdMn+gi;0R{c3 z)%OMTvXxZYYCn6|K0OIcOVfkiH2<@AZ#15L$FBo1#`ujwN$Wj+`(d`~J$@%qbU|JY zW`<v{DQ#>0m(=|J`0;eeLVB3lArt-=i+h5*{)62-op^IsHMB-`i(e_t9jmh)c9r7F zhJggppN$CqW9Cp@6u6BTuE$F5VzNRG6T$WGh>A@3JS;>mVyM;F^5<NQu=c-q6l)JY zW}XELoz71*@p=%t^%hvs+aVJ^fC_-*Rs{u5->mcVX#FKjBz9b0FN;|knZEhR*7!X> zns_TGL!<3)wh`T`jrBEpKhxmEW@*>3bDR?c{HgcKCRXX@UIN%0V*y^K>hg%@rCM!S zD9cRv>0Q9G_IlsbRF_zOpYo8mwVSy2)kfe(0!opD$B<T4`WH>ySSg=ArL_fV@zh<F zZRDXdefzlqMY&V_r9A_YSb2SoRhvq&jdUBo(e8Dl<DqrYftz&*NJ~7Obhut6Lhr=7 zR}7BUZi&@C8|{9uLZ@98ssIO?y1A#gc6BuLAWva#Os3?JXzi1++Q*{Z-4)T=PlK<s zpU(S0j*egTW$v>l`+W8lEp1gks93E5RUV|EV61ipPhRJdpb8<%3it1zgjvh$9=tOf zO&Y2i`86*SkeztpmXPn371f^-qBS^5IDSp-GVEK$iO2s=K~4~k|G@j{GOmN_RCN$L zrzc*xcvsxJ8;fgFgI1_e?3uOkfn5B$n!Gg^b3OE_#Wi?M5lQfwH=+YyNe%i!rJ~Qg z9o^wBJ0FFOuGG6~vS<*5yAfgSt3r&BMkX5C6762a$b1m3T}5vhnHz(Vc@*?BGA~3! zprJb)t?iD6KBMpu9YM3YYF~|Z%hVQB2_Y?1m9-n>yr$aIJLU!8v<0<KM=Z2!too^@ z#Oer64l#To;&qRB?Vb9LmK}(9Inc5+0x|{if@tVVgEiSWv?f}+IoeGG$=c;noLsw6 zoNFJAhF;+*91VS9P}V--=x1ZJ7Mwj;N<$YtAZoWp5<w$5;2l9m+PCz-WdCH#&>Hik zRg}i|hePqY?u+(G*X287>&x0@x|S+i;NsmGJnqDvGblS;(P!X=FEw28x@BJbV>sbL z<=#D$hh|6Z_2|IodhS*_9&NLj#QTT5Yezv@x{tkC;V9s7j;lcuUN!8=Z<aNqu&7x0 zK50o1VkSHs39mcCqjCDQ&{E+`eyz{^N)em#<)NmdHLu)CM;jMp9ZHsTwC{g|PuoWm z$nZ|9466Q{Ra^I^H$O(wF{wl5##p*WllKe4cxba<XSRp?Weky$KRW1=^c)?2q>A<p zDw_B*(_F>2c4dvzTr7BEjelR-p`yO9DVf>$PE8z{jMvoTE!@9lmm^b$)I{4?*2@{P zjS~2ceujt!kG(#AwBX~^SiZo3eI09mV3w6eKpq$XdAEuNKnk-CNHRx+S_AlY7koj3 zYHGB<MJg8ksHYsZ1uIwYfB244$EfzL)VOOul?Uhd*5vd^-4hfZJ)3DJ!IdzZv9<M> zj828eWD{Rk;zq%n3Ll<Ld`yY2kcdLQL*XoND$0|&cn;aYwA0EtXs7!bj?UbIAN1{f z)AO<Ze5xuFxZ-~Bv8Fdpv_7RthnZ(G9wN#6W#LjMb^`xvt?VO=TaPb+k}7!<NW|$v zmSzuIoCt|L%acm~DE9L9KtZvJpjcHd3%?DXGvWT9%kMY!1+eW%D_XOq=2SNOdtg5! za2wB6{#-Q5o(<F(<U&fqe>oe=Jx%$Kg5;2r4>XAB-Ol;miR5&)BHP8q*)Fm@*Ou?1 z@ll>Wy^d3v)O*g<axqo%?q&Z~zuy}8pZdMSXX^LQ=zZE2s@CcKwbj0#>-5#^*1C`= zWCdN@Uwf+Y-dNa4X#}@hX+EW*P$AZT^nJk#CLONks8qGS6zbADWuIJId(l>ww*7tV zMH|NVLf|eC3%c*QylCaH?}O520(%@<%NC6^F*bF3-#s8Zo*Y9MRTriMYhal$Ss@x& zMnSI(7axMu5xU3CBNA;3$&k%(fAe`ac~&9=HP>TvWM`Lr>RdE8npOlL7-k(z8c%%4 z{qzt|JaKmAtT=+b&GPPY7JI`S!g3*r3ir<a*w1`&s6{CxBDVCZYT&5`9zh9R0BZZ} z@=)u^7J#r9<W-bJC~pP1FjymrtVXzx3GG+$@4mAB03Rmfb5$BBB2Nq>!j*`fi-3TS zy#ssh@0A@z@XX^XyfT7#SKnxE-Cp%|4y}E#DVPXZ)gr*IGr;`w4z>8cv$*doI4_PC z&_>m*J8B;D?s%${AnT=R9Mw-%;6`^CTv1Y|3oTP57N*MRfdBX$-6(pc7z+$dchav^ zn(i)dK}V#`ERcvZ{bo}CQXKVeeS{`nEA{SK79F^nLmi?VNy6a96LS_Yec2=}r)K@% zv(!m@>3->~VeQ!sjtFmB+FPZTeT(HomEvucQ7v+)v9c873J=AVq8E5~y7sl$OlF!_ zwE4B_SGgSS3BM*9O^utN65OwRDP4nHDx^CfiKw-(k|(NXrS1Zv)Se?$l#^mD&0~vO zB4hivj>CdXd=xXyPQYB`7Oj|O4|fKzpL~QQE(a3R2aU?-l0?WsI1=owVTDq~3Waq< zab;WwvH<9*ev;yYf8SyYk<I*QAyPvvnecANb3}b&xix%Asee6;D-LbrH%*^xMRM?a zyr`5`B)`X;Dh!{#q&NDq@$0pL2TRWaVX*{<-M@%Z-H-PHdx_<dtDyoeHyR++RsaEs zr|P0IC4oOk?E!c60lKU3KiioCkk}e47*G>bwVHR+XOvF<TKm1G(zoC1a_1hJfr0gq z4dhIF=zhIe3kA4Cbx09?(tfjTT<7Y7Iyrc8mlg8Aw<{$Bxa`PBH1R?v{A(;yg_Gtl zWUAKEX>TaTP{pDA!u8V$3{=FTS_<@fK(jYiVjbpVXm3%yRS0#WJwUUE(b<Qn9z;S@ z)rG(Cq6(Y!(L#F(a8q`T;mj+$&TwLv1O|c5CRf%kZ9}*(Y2$-Tc&%(I0{b%X6HQ#- zMQU_an=<u}lv1D}rHCI(A(Ka8)2j-at!|TYm0Kbtx)$;(6|}-dM604vZ%CVTNpDEk zV*6RJ+R8Xgkg0i871mg8n>0YZ3K!&V;RhhH8Uj&3e>7wVXaE4gljsNPchiFiq7CQ- zj`apvwLtG29+I*dvbY-+T4z-`nuAY9iy-SM1u_U{F_Grtsq-smL{oPdg~WsL$DA+$ z?Jw{zPZ94-%Qf$wXn7l_**ZLd2`kn|Q^yfYmTsFln&=vCtc+?G(n@mXZpr##G+YM! zJDXgz#due|ayr9X#$nc-BZ*1<BZ($#7lCsP8!n&}Esq-}GR+n0;A-mf%9^MbfoT+E zT5&0|vnVuo|DJ0BC})4IeYkH4?^=ak)F92&WI9#g!xL8PkVzmum^t#Ri6N6}xYCwx zqoP^q8_kD{X%t_^vBj+?i8^bdWAK~isvXnwblIQzo0H=J6N<{cYd;XW6Lx6;Paw|a zSK))NHLd1|Qh(j6C{DLqc3eU>!a#qgEV@c3Sgc5eKNNo)DO{!4q!$^9w4R9_S461E z=J-j;MWRparlLS+;Xb6k_B{?8_3>X{F%=6a_U-qbeS1`)eS1{BVg40=I7bxH&*Y)C z-Z;&@)E^DF+PZ!6ZAr;B%uo`91-g1)WqUo^8|rrfOTKI=b`^ShrgXB?rD#bc`Ilv9 zwKS0kEp4WoFCoun+VKZ!^5mrr<oJW$Kx~^<XYN&2!(wW1>KLyT{z-4T^2=2IpX>A@ zr1ztgdO?gvn++~nELoqAKZ_?PKC7I$J}932gW8HFFw4AE%q2}|aiNa`{@^5Y@;JQ8 zGX6f5l+pH7UAonuRQs;?=MB>qFh&CUk3~g<I@mj!f?LaqHpIL;f28ErwOrN`9iBnb zw3aE<JE3cW_m*AQk_}zDcX!YB^IlVd>TZtkUs}%WXV;&((^tzI>ozoc<2R%SMCw*H zdJ{K5098~BJdKG>y~}2X57^AYHn(?T>+`59-*X5OUG_}tzf^>1MBV4ko6ocq7~R;_ zqOh@#t=G)DLNWzQ;xRJup`|27+AcSTY+im}TBCGD3aC_t_`WI=zApP=G53D#y482T z%YHYc0eQ-|;@1jq2&&wW{=~E%4G-0DPe7EuAtW2>`Jt1uxq$rQDNZL)NO5kSV*a)% z{5T&Xs107G!95m9Uz2;Ca`sUUbWr9WsXRq&&qW9?^Dlv_lsnqLBhUmU-(#A<f@T>A zz74d~*u*)AL~Y{iqQrfJ#NA2Mrp`&rl{zR$Emmq`)s&tw%(VG2SdgbTsb#Um$3(2- zJ{GU@PjoPryrOhca#~re?(?`efg?R5=R$#;4qnmBmXWisa5x=~W<LX&-g!9ap>PW! zQ_l#+5~p(zsR@}=6dkizlT6D~yrXiFgw`b!#V}GQB`;?;uqGOM-!aAudxK)hDG8P^ z$DmpV=@r$Vs5t5EA}a@kI1=Cabku8nFg-5_>mF&pq8zC22Wsl$|L>`7WEmttH~9Yt zL>OI9pn>&qx)GxrY_m0Q<&RMNG|54KS}%&$ebI7W&=;y0knP6{u_TTat`nD>3-IwQ z@WTp$->on3+p8lLD~s|S$hX$=le7W@m~xpr$cQcBuyeHl?O^RBdqH>)76{xAZm;a0 z1pDuIKOF48_uUU@Vf<04_tdsPFaOM)k$}DT17Z|i(D(a8-1jfDqU-(rGpvhye?L&) z2mTQ6)|m9lvM=)q{x2Hda+%{E@qbn(_8AjTTwE&cO845>(hhBbNb##0s>EN8uWH<` zY``z2{`NY8j&3~uZ@uLu^viH>#9@N~%CC6y?f50(7n2v5i*htMXHO7U$+8lQ`C!|I z9FX0wn9IFcsgWbDj_+Bjd!;*R+#*$>Mwc~SefFLMbv+F#bTP+NmkpF#U~sw(zr%M9 zMV_|*pem#gQKcx~WuT?k{dAu0r#su-F8}7chZ1RIEyG-1FkvyiSey>wV)+~p9kb0v zfGPz9ocz(I9cXs&XVYzoam@^k>*U-;b$6vjADQr2>Y@FgM0A63ItjrXsgm+oh%jQd z4smSuw6;L9mlBlv{ew-A^qnSXvik?y+W#nmX|vZqG@F+ZdR;W}LA3f4Z~k0xhYX1) z&n69Ox5fHY8SK&GX2q&EvFFVITsL0VP1iFbpY{koWM*UK^h|gT22K;{EN+!F6XU%o zWV-b4HtLSZ6cB@)@LvZp@DJfF-));z_kQc&6b)gP7HV;sQ*2`fy|uR)&xzgX{xb(7 zc1!*bZEpe}b#?XsXF>u2g5N=jjS3oVu!&10iY=)i2?UstiQ<lR!>W1sJ&y}YM(Ly0 zz$B0_<0$Q;*6#Y$wpwkaRuT7vEr5zFf(WfFD$Y0vsFg*O`M*E+erHL7OMkE5Kd)Ej z`~BYio_p@O=bn4cxk*(mnS^QUq)=sCl}<3Ux_htyH#uG@-h@TL(C?b~5BU^6J~_7= zK2GK|Fd!?(>h(@!kZ7a(Ci^wqEc*kM^mwx>t4Mw~haRKvgUS$yxvhX@Z3xTWkfLB@ zoF7*X3lY|6msZ<!2c-0PEhTrePYpy*Du)#v121|)LZ|fE(saH`s%b~$rgHB7UlP?h z^Wb=M#5@e4b}tOqb>*ry=Y9e)$Nu0M>~zD2nsaWkEuSpf#+kn&qL4zEekUV%=^q-x zvRN=B7-4{5(N8K@dC+6JcE+tmPRmiCwpUOpzG30ERH9ImI<jbT&YTbvm;9Civ$$PB zN}V~XFb#dU(Tey$J_Y@uPuTUb(|R^h?pHmd>dQJ^l3A;Zc9}pYUw3yASIuQX2AHw0 z-Xy)y&_I7xn|xvaAAdN`wqPI>YFe3gR(Z3=;l?!;hFW)2;B9$%Fg6y`_p|xGsDgVo zEcJ>FT}x6b8F~xk0#*Q=&DoQit&v1h^bEZmJWS6tsV^({vjch~M!OEtd9~7=!3Ic+ zYOPt&*nYsB<2!qz{A*X5kz))fpB5IE(`d|R&+>=4okOIfOQTT<?WkZQk>(#sVx>U$ z3XYGjf-1~5lsfKz(+tYQoIx=Y_5FBH_`%E+D2@M#Pi21MFJ=&OI6N5A?FgyI87cs+ z7zdK6z5ZStkRm3#xXkfiiI|LIhb}jdNKE;=cOVUsMH6!l*gbhB%yC!!!h&FA(XMXm zxfo(az|8LIs$V!qeeI-QSnwtKg+JM98e$k<Pmw*XU+B-`j?u3G46ULFUcEW`g|!T? z_;mMiK`EoZ*=tG7<XroMti4JneZ&1*PM5x6u0EpCe^2WpZnW`<U!9Ok0kZl@LHBd+ zu0SC()rbUaV0p0peK??w&B>#3JD_%>7ukV6W~!S$=A@MtUd&}FWtSM0$XquN7t;pW zwUpMg6js!81@)=M4Fud4qqBHd(wSr7vY7GsqT6`nWy&v8`Lc5<uy!s*fG&fD_<!Df zdiGOFXQ~Ph2n+plgoe82CS6aCeUR)~l0Pu1Q;kQfqlP|iia#J}lGpD{`uF2Eksj1B z{u^3YEG4pg?a!StobedvO&=Lv_!HNyK<Oh3(X>8aswDCcPzZfQ(S{raR<12RmfmQm zNz0EmD6%KsV5%|rWYkB`@dw-@V^7dUpXR+yop)4Jk-1O#Z)!@;_e1(loUta?$9-r1 zAL@cqbK$N-5&K-+=JX#|6pGynZ#J$h;Ep2_4Y%V%(Hr34Z}5+)0wD2F<>rtxdhadY zGrBrDMX1~rs@^*lLFT5A`&s<8m$o5jhNYABh!+JM6}9!nZIn=s2o)Yjs}6nCH98y> z#OI+}YPr8$F3AIu?win9)IQpIEX;ny)3@O~X=4|7r%L9(ty#<lS=`WRT==f>7}9M# zeo8X0sw-F}GWwgV#P-<i@lU;hdhwCYZLsq#d;j>?+sBPJY~DAtkK6rE^&n#~XY?(* z+sExSi2J4XalK8OGxR4*Z?Lccy^MKGYH*aQpf`!}$9JYD7h&rp{n$^|eHr}DC1)C+ z0hxyC{y$lgR|Cj9&zIq^9CW_Khl(AI-BuPqQ7@df*fmPpbJU;Fo_me#79d7>If)Zq zL^fpmmyQ8#+W1~?u>7VK*~w|=S10|n`<SJ<2{QI*1GL0_GkvskHPg)?S%qrm^;oY3 zcmJ_7x^&Y=E9qK)&ivi7+|1{%)<=5-w9lnKIr$$_{v7^j`t~A*$MN@c{Ac@(3InZ7 zv)PjHKEQY2M0+F<Xy04#>?8&3+2S<aPevo0`NAIlaU>`b4PTfl`S>Hc4|B|sU`aOg zI=FnN@AFC(c=oYB+rJPT@SZIJcO@<adj{Og$%lBLV+@-^Bf0N|EEO(6Y^h-zBmtNh zIFSo@1MQy`1gckxY!po$fRS(2?s(PnqBWNzro7gl#BCmT-i|?zBX*<0lpu)?+z0bt z92Y-Rv}J=fu~^}g$Z7s5)sBx9TqE&iz_*Yk3s%f3w!o5I#R(1awD7K4XWoT-BU^Fu zk%EuH(a<g(!wJjS#=_(@+XI3A91HUPh{8E6m~Wo<TEVaX*Y@zB%SFGDg(&|n!Y|xn zKO0RXdGYYw>LYEW$sxB)jF~_F%yB|SNl2zI(imoz#>=^Pd4bsp2Hg&&t%;w3=1Ove z`Se7Vl?pkX5K&$zJ3B3NDr<K)Q7K-STK=Y!{T|8*r(G16e>$-*%YSd@ax?v5l+yNO zn%EN9Tpo&I`ZBaeN+;*w)0Ddh9%L-wu?>Budy|-#HKFQc<Ei6g1HYqXZ=5tzSb+6@ zhP8|tV(0rxyb6DZg>^#woeo;lp6ThrB%8p++^^*>_L7vv^T?V>-$UD5TEDoya$Dn3 zUht$jf!LLk;y*{jm%7xn@D5qP?*892eaiL+8y{pC>{f-JEM3m%__Iy)m{rfr0nHBP z0DP6j_Qu1_aS!FDN_I$Uf-n_$+|KpXy@D>@F#t5zgMxo#M6o(KRh&iD?vVRIeC)H@ zOv!@=(TIWCf^6-<(<QJ#y#l@!5`nTtnlK%MYU9sX=o;Qj%}MKK2u@iRIH{5s%zVqX zX#0EK=3jfai#5i;I`vRzas)q=LmwjBC!77#@0w_DS{}f;oRqCtoFzoQTTygB9N)bV z>DwM~u|D>a<O6ekwKHc9;RO#o*BB2xPd<hRp2Kte?_?8<mJgoy%+4z9gJ+=UgQv6i z9lY&)x&IxIG#H)fr%u6rQhoG~Mo@wBT_`r3qX@g_>!wdGe`Gsx0TB(I)Oo*mQn#&> z-S3r5gGeXwvM{rhx`NTW?c;vQy@MSy_0S*tzHa+JbM7sU1E6sOpfp8mM2N7q$n5`^ zlgLNjxHG%|8>anVO?Lk`tn2>IP)E>(lW^@9)eXA?#LiSA@Gd*RzIF%rrd|I?VCNe9 zzn$^N7cy<k{;wkLN2qAYOk^6?s|8hUNfi61RpdGMwlR3a1Zh#BB{f6xH2(LtfrYtS zcufpLO1?)@ge~dYt199bDj+RGDT-gDqCm(Se%BcxGxqtj$01c~>^<Dqcm$W-C$GiJ z-p>panQT5#d&y`74Y3htCi@~$8uG4YA38<1G6{6Oh_RSK2f({ITjyaIl}BgAduf;g z%!PZ*Yvkq4gye-Wir|u#zV@n6Hhot>R)4jcLH`i?!TQ_Li}q65I4x(n%WcD)2}U7a z1`xwYpy<3MHU4~=(tK%k#i}mcGgb0^>X^7tf)9wLrLSH2rQ!vh`K6q--q6>?rO?SN z2gCk^{pFDC{u28TmtA#s{~6gn4EgYj7YbxrQAD6@?;td4KCv&qi|CQq9Q0*aId0jp zR>J6MZ>m5`-_!aX(PNs<DA0jZ;X*P$H&6xXGzTqDqdk!t{N!s?87uh>(Z;0lS%DsA zF;!BtMvZ}55`BRhhN1%Gj+nEVdFG`MNO>i7f<W$I7<i=j%Z9U6zp(!zZ^qt#Lj2D< zMTB5*f0iK}hXx8ox6CO;(}TQS!sriDeZ)t-5O8hyR)7-gciII;9y@@CR6fM%rAm&6 zITna(?D}Y~Cui0kBWq_SfmBF_iCRmR04iVkPG6RiZO`>jL*RHeC(>mxC$8aRv}wQI zc+u9r`0BLi48N<ZK+5waAB9U|A}e8C$i*i$Y!Am*8c@mTSS#>vx<P#TBGj7|X14H$ zWQ+P0Mb++Jg!5Q&K{RS3{p-}IpEAr{8g+A~QIoSJovTJ6n#yfd@XH!?*IQrJsGeS< z@M_Sq(P>$ry+9Upslm6f{Y?UQM7Vq6{S^xlsr;2)%$w*3_7TQbcb9gyvC~WG({s9- z%#ep7Z2^r`4%~)(8jL%=h%}*C;q&Ja8ABKsh=sWG4G{rpp*Ft<<;}~_-ryy|s+)s= z4c*R9{-sp-X+`Yc`TXR65Gi#&KUqf7gYCyhrb=!=L_jGQcPhnc*+8S%ha1BPr{!I~ zpmwDgP8~kH2sZfSbCAbmX@Qv!O}F*V3tu;;IaTZ2hmA2^cJ8C|z>lqWs^oh0F8W^p zV-qVi3j#B?Hno=f`LO0_M5%`ib*=EAOn{zS%mi3{u9*Nm47}h=JoAfhGl>&TGzr6x zJn9Q`>tW&j@TLO8vut|xcW0nwX?T*g`pDVorv|@B?o`Q*w7=HvsBPNgvwdtHNTyDW zn7-LGqTV*5fk*DC$ZwgpIu$vdf&ljY#s*}L!5A$}Me%xYCg%|3=;tj8ZF?ZY4{E;~ z{Z=44Ta0!f`lR70I3%y!1<`Qsev=+H-C61jvm{+Y(|)OBoV<sky@FAr&=Yhw1S=Of zt-sXpM9*PD-U{?CN(GMH5I|L`K035NLbCo?W1|!!rZNy4%VlZ115OZPd7$>@AG7zu z=54_pQ<CRAPw9EGWB8?Q$A-Y3)dAnCX+i8!x|STGWb`KbLq^Z`3S40dtO&I4!#ZK< zoyP=L?TCN&=(dzp9a`1$Bqx+;i9Mjwt2Sx@bT@$HW(~x`-B-0+Y~LJHxijW%lh|fl z<I#U>|BG^(;fmbU%eu_TGktke@?0rG&7&9W)L#}W?8QBwj(f<&Eeg4ux7QTa@MUCC z&DNWoMlBF~%4i!s*GgonWEF$_auW?U+-|DmCR-8|Q*`0MCK55-Q8Z9;vzB-n9}sp_ z6h6AW58Gb03ddm64u?L@Uqiy$CF4q2Yxc6mQcu#<+H@ybnA`H7LRY0-l5N4ACdAA) zPhNd+cyvgt{3Y;sEFJf6!=oLdncJGHY)M}ak5)1Qk6$Fe3?A%wzX3d^L()6L<3<yb zfd@WoJ~2Cso}uV`p^_98z6~*MK&Ro-`*MvQj#ZTCw4!Q=VkF~nbfgW~R%k#WC(%~% zZQMWF*n_DTFO~dV+twbe*TU*h<zCYN<k~>AZy-9oNx59SD{S2xh@KjVo(HqGAQd|H zGfl@pbl~BkXx-sVroSoSbLO0=dP(?%VC+`)U!3*d)aWn=kXIDdyJP*RAn;B7sc>;} zC>jLr;Zn%Q+siD|F3Vw>S222rrWwaT<Ylp)d5xDa(Y#ac*ogmzqT$yXkkN-!$=@Zk z^g0-wV>#BF0mEGLis$#10?|ZnTX0%FGb<pOc62~||HW6T<Q-m<zsvBGo%VN#bj_9$ zZonK5Jfj|mqA#0?f<7)^tS=uXhh!I#RLQ6n5M_L*IzMZd$CM`0)JLu76=&YETHk9- z>^k?8RmsRZBP07qhU-b(Yih@Qfv8T~JHC6|{FVDVQsm$ID{PM%@V;vOtHwNeWn}-E z+!+oVk{2G5s~UPcoPfcJLh3<7C|4`AX1QQ_Qh6|Tc0Q061+$JS8-I{)IW_it7PR4b zdDLr$mGSEPWRAOT&5p<dAB@*0>IvOW3;?id$hbh1b2m-khscUJp&;ls8->VvPs2Uv zasXT>@XlJVQwi<wdEd-CM<DmadHRxLQ7pJr8#j`LI>0=(aC-BTB-BxgCOFQ!L8zm% zhSbpHPV41A8RgDl3v;0(K3&=)BO)8LT$bE$7CO!+(q`nii%k?eH3S24sxB64+fUQ$ zUlw0Dazog`c`CEE0bxXYU{%6>g+azbZlu$4JEdu#fAaEQvCpqe?_XdZtiN3jwdFgs zOTKVG$g#m7M|$gjY{va=U0&Xo?*AX{?0@%{q1fd7M||NEAppVX&zoqClu=jh2vmO* z?p4*6xK(&jwSen_BA?yq{JcHb`!!vVdy2WIocnQ!){vfHj<YqSmlA>?E<YG~k4_g! z<!G66--1x@4}$JEM(SJg_>02ErRT(kZ<jyt@zJ{Nr8MDMf#LLpzXS~Z@i)9K(|_VP z_Ubh?*{Qq7dEK?^=a=^P+0Om_^Z4j>+l$WO2T39A?pL+!`7`M>i+*{MPH<E+6eq0! zLAG!C!g(kB@goI|*H$gd&SvD#7%(z|3z7L1TpEmCu&8wRg8XnI7#pz2xSxsUXHy$_ zfp%~!3Pc4@rM&#`OUc8sXlVq%=Yml|_XbGg4Sv(ppxZOEmCk53K~@IRKIFyA*j5;q z%xTcKv_QE8sI8p<Rhb4<?)mbU!t3$Q@cNB6pS2(GYf<?-i=7sg<lVXJ%^*cR;6<$@ zO6$!ud{{Bdxez`I{uZP7HQf+%){xW!r@2&^<^I$zL2cnP1JPO}M{~pv1R~3QRv2?G z(|Y<Ytx|ANq}J;rcZOlme#`*wYznyBQYAY@sG<Wo%GVCje<^#z5&y-EO_f}3w!~2O zhs~a)-R{+0s1FuVDwSbLEpeLvWbpoP{}0-7b-FDQ{<4zUm8YAm#A!LlEI)EqK8Ckc z$<6Jew%HE&*BO#?*w_roX(ENW1pU*sCTj1POw_eRSsf*)(F8h^BP5!x&$NXEE(@t; zQ+#-=v&4u4ERjlo7AI4K+ZLD&e-l{%uZjQWYqM`*YVhycXw@;9{9g);uoWCB%XKD; z-T$8-ba%@;2^t%SyV-qLtBI9?=uKu5UIvdHaz9Fyl(NAF&%)nJep{TVL4Ne7hsfq? zV0wr4KSBT!_0J?pI*7!8xX2QEY~ro1Wc}!6If~rr3q8&9qh^tpeiBM4f()f@bef;k z3o@W#CWMzj`ekDJWwKtD)Rj-OcfcWNFncL+)@AX_USsNlF|awt0!I>zQfmp8{JvTK zgt}!A$e(di6^xvj*Lau}KOU}9%Ho&)jU8DZ1S>b|0N3R*%y%`;Pq8?M+;2-^5Vc!B zT)Enx=E|8Tzkb8u()Q6ATsq=q;ZklU=5legGrnZy{nNMaqC}%{eM?yYby9F;)C4Kv zZzkOFkE+qx*h=%B@A%I`d*!?`$Is=f7<siR7$dK_=4s88m3$800j~R2F-?l&w5^hZ zr$#oFJVaG4F_JZjOQuO+GelsRAYh`keEcF{z;}hd5#8MlCIelx_nSWyc>%aXB!U^1 zEJ42y#thyoU2ynMRm{dkVhn(I5kSWA{@uSY#0t^g%M~=o+k1`FS+3T+I~Che<0ncx zfqOQw6X<X9OUXg`FY)r1sqpW3g-=jF`g$q8Z&E<2dV8@IitTR)nSrJG@tJ>tqRK!) z2XGUlD_HjOlx%yRkQ74g*-co$<(y=4kqlJ?O{c<xZiNT!3J?1IYfw51AoQAm^~A&) zrC+J^{cC{rU1ksiZeUW#oirKj`bVt?S<X<{45Uh4f!-O=hDT~FxRVd{hoC3v72B56 z0e^h(U)2E%)(T(vRCTK;{xaQ49<Ojl1$NF{dd0M4HlD+70cEF(!lVAx2PU(BFT0i6 zMGLdXHj@0Babbg*1CAlD3Xx5#JYz^>b1vOVyxXi2-uJ7cKS-?xn{IJH`qC+soGSTE znw}<4^n~$K;`?AaxueL+<|o9L>vN*_>5q>W3ut=tkRn1vWCSD=;{9|CPHb8H+g>_< z{0Q%@G=3vFY~E{?*UI;;|B3ii<zym9XPF6@;SV$Chmq}*g6<da1Fx9DZ{+ed1XSx% zC6bGwJd3#b8BGTvb61QiiVuB^0a3G4CBHzh%rUKPNvdQyODE^Z90f}ps<$$J>KS1F zg*E(KK0y&^xu9t0^uGYT$Nra<2T&fLq^dBp)X1LxRw@OR4Ms1Y{BODP9P@&R+~Uco zG#jZp^b2gh4PEjvh;d|%4msNyU#He{GMYsN32Kc)Q2cos{iH4hBrgCw*gHI9=DhSu z(@k?)u3{NZx|EPSML);#qe@mW0>RiFMezVLR7RX8^m!ZVkFO?FO;ysd?0R)j_;yQY zYH9u5S>r>|U&(*|->x46IllO2>&JNziG!>kM*&K+ew->Il370*X>IOO&~5#=Y=v1r z9v_ieKi-;ukoDu$=FSii1R!t4b}$PQk3Z7+d`9aFJm<gbAF$tZH2z@z0sr-^RNp*H z+_ZndTNy5;j_W1|iNcRJtu*HkR$s?sd%8I~_yfhE)>2`cZ~ayMm@W_&uwl};2{3U% zPe}n2&p&EV)kp-j+Su6mBCtm_KOX4@pEPJb5@-y@Sd-g~OT}SEA1*bxl*Z%;(~Z2S zOM0X7m`)#OfV!sl^uNevtA%0T6#tIxks%u%9amS2;s^eyuEI{hj|nz7=iS|y_T}YL zJaCYI4Cbja42xg>Cj*;_*|3T6M{VhoZJ6LSIR{?*mBYeL>RQPo1+>_06XQC+On(){ zpOU^3?vdi-C6PuLDafjv_;UmZvggeZWV`k^)6v32Ej0mOq|0;yf5mqe89@g8FGPX^ zuO=#FMj-SuEHM4;?62z=N|saJDqEfh$il=`04q2CT=U({U(|UjCL?dkT2iM54<p8# z5A0ew`(}Z>(vMbZX|Qq=SDv(|3eZYLQ?z4OvLxMJ6z&v&K5938(UpGyRLG!BK~{~; z(;20UX&p;Bld8QkHTd~?jHWhK>B*zBvI>CQNr4ymY>Jnf9gVHm(+9Pyz>S{fVMmjO zB1fLdp7NmmDa>fu=JcoR%k*pW4&I-_Mvfo4^(XoCm-MGBm*Y4683qQ?QB!Z{{uq^> zJ@GwvX8Mzr_pni(3^&XLFyn@B_H(0=YJBJ-)i^p^Lsq^ag%6W(tak44PCNHwG7_CH zm*;eqZ-j&&I8OzeQRWCnPeCaQMGkCAH`cxYnS<Lo`H3q~lIZ3i5Pgof8@~$!HptWG zxC;G!n6g3su8I&wp92Y1a#=7o4&{BAwCKes@Q)L34F53n-&EjeF}aKa$LWWuZT;qm z5B&d0e`DRj^f$IY#GIHdbghU_FvLpi(!umM#&IA`oU{X&7n3urhqYj&0DoLOWGA%^ zNtkkW<RjHzCd@N;Wbmh}zQSd+Cx>RuNjwkL$iW}zO(*??^L0x8Res(-d6EU%PsMhE z8+YrQ2=nNLNB`0PeL~dxVEWd7Bem!&4L^i(L|b>?ZaYvzmQMPhEu_u17I~Fde)P^V z^d5|e#5#a9*AlP>3YJ<MQ-jYUYYyR8b%K|wo8?u<emph!R7%NKaS(k49|dLf6%G== z<!?Fhx%74^5#9ayJ*ngw`rK*0mp0v5iz}(^;so6<LRw0qH<sbY8TH8R&WtvNdq$N- z!RkfMtiKY1x#bY3Gk3`@QTJnmo}Jz&FPXlt%4F1~uG00aj0a;wzdL$%XasKl_WGxu zDxqpy<G^h9=L{=8oVkm<9qrEW$L!4HfemGx?<Zti+AznNw@=%(H74-5L?wZS)acu3 zIZ|nI#Dk2dZ!HF@*rHxv7OMWjnQ@(H`x)19>^)0tGP3X!hJsLRVQ3*++G`#c(}zyy zaB=^B%v^JdW4ug%o-wJvaeq!ZNPoVQyveK|UVlmknB|F%9+I4x=}@>He`=Zb2i#<+ za=$a<$Js92z$=$O9&OYxP^#x1DR?M$&Mg-xhD}BgR}7Uf9@pn3kE(aCEyH-MMuW)z z<wfB^f$D|fQZ_c3lir+Dg@xD<*7|G#$+x}vCATAUG|th&EeLJ_dyg=<U-+s%7|W4J zW)y$vLL@{EI$8W0NU~L(t2D8Gt4`H}gC}`yxmQAhXkpA|54Y>A7r99jMHoSeekSS1 zY5?mEfeR8O{rIaknu5&1uLKh75c$xEZ@+v2`BNp1rl3*7v><iPY0osTs?GA3M7Jk; zLZ)B!y9=7Op6SfPu=w|@B5UYdTYl4WUrxXXon?n#H7*BiCv){Rrf-+mEcUB^R;|)h zcFh(YagK3~lq$JWTz#x$)&gxc@c%|5pOwxJ(p&DOW#qU(L4m$-eUnu??%}ljp^u>b zxDhP{Fl`QCLY-n_qABe$aOgHESniG2{sm-~+LlKhcP1v0J^JhNhY5Q*uMCk7Q-nr_ zw3U{K<xhQ?GC;jSyWmN-$%y?XDlOU`Q$jSfj67(SY`%kuJt%iV)O4;awT3xlL{;&p z4p*z2O;(Tuza0-~ZxVe9;gw?UGEPXO1zDss(P6bs2YQ6trHW0rGM$VKdf~nuaOl~- z-jnI;nq&leEZOL6RWwX(L`@dRNb*9#oNj_Aa&-0}UDltZaF6hm|Eam&_k2A`)5cSO zO0!f?!dCL6*t~#l+{)9xV%PI*Aa*lPUuGcVPfBrF5H%t)Z+PRsR;ba2cbaP`E9kDp zDaNwoN#1-K<vcUsjOia=JtZ%16egKx<VSXg8+xyEn%|&wT@=~ZWO_X<FOi=5j9J7< z4H;|I*icN8A*J83r1a3H;fJ5pI5tgiKFSi%Zzb!*FT8vbc?p$vj{tv4z}*q>tqZuH z22zU~9|~1}c<Zm5hM#s)`2OUX89LOsA+ugc!2Dq{tDmUveR!k}RpLbP0O%Tk@Fb4s zXD-JaiA*rFGnH`oNh5xI21>|ME@!@;AgMUg@v{wbvQnl>9!GE`M-NE4M<hzP*3g3& z>eyYC*U$@mTT`y(!|)ktY)wpsRe#Zpox2mqDe~r0^2l73DbF$d1k&Y%=O-6&7-if$ z)v%YCg54ovRz*+LP6~u#2HUMvN!V6|7aAS9z&{0q5v^1t2aa>h^YQW~o~e>{F8j9g z$q)lLsx%$ASj0Y7GUufnIxxVD3v}RA82bzzI5$fNW=N}nnQRdEtDT&`{%B_^06bqH zC^1q+$YkOm1mO%0EDZYIPtP(0p-dgX6O430%M3vnBA-2&MIet(mN(3icpl@s{sumb z9O#5!4l2VwlIv?F^kXW_1t4-;{@X*<2fQi?P=+e(gDR+3!ZlI3HlD)EaZUSsgb{&d zNI{kcz+(LIr#n)Os4976Z%rqXms*pIX7JS<YM2$1YL}`K#wl)|kDGf*G=6*aO&=#P z24=`0-IrNnh~y4AeL8%as6rE8WPmD^@vDD>13X0)=J52<**)=xa1v-By58Ht&q)V# zcma2&1Lk=FHxPha4so8z_&YE7Vx<F#YE;oQHCA+HI<ee`vL`+)UCfPyNE0NSXc~5M z_+7;fOvjyX<9a$RLEfT8&t3f=H{V#b%6X=y;PfyZ?7h@!IfWQydOxjTbF>$*E*;QM zrO?X<>81VxxLp!ORm0|b-`y$dy$7MFqC=JzeJMqql&<yX5{^VZ>k)p}d8TOkM<SNa zyqf&TE=c9l@aw{`2Y^b*-6q4rAS+scg~kAiQGY}LqkWrsHpn7JX&c04tW=DbS+e?? zct4ZZ%M<fl=(@F>_1J7qe{^ym_A=6N3NSakcncl1wRzB}F_lzUu$bD0sJ505otBks zyA%K5M|LqoG#`{$O`M|g$WvyXc8yFsjZ%Xr5DqmOk}CQ9MW(A=EwSUz(5dtlRj>WQ z&cNo7nP0YK)lkN_YEVfHI!l>kUT{n$Z=k9}UMWNF!{ras5eMf~8eW(KYrv!;v^p9% zHrcEq5P*9QU$RqSzrZS7`wVI;7Jgt<$lZ$GxuJ(L40D>dn#60>ceB_+WhR+2g*-ru zxrkz`#zvs<PQNBlfJvk<n@9x=F=dH)5s5{OHQ;`bDoH-Zfe5ggKn~a$GXis!lGYh` zrFEZKK7RMGfcccgWJrEG>V5oj5QU`3X+GN2sqr)~0A?aDa^pKerN&M_Z@#7G`h3n$ zH{zS2et-9w{?-zRH4(|4$W12ZFaE5Eq<|u4I4pxs^I^O+1f3gJG&nbwe72_#o&C{r zMr+Uk^M2VYytg+vCG8(O6WbdC&J9E=fr(f}#3~~Azk+kE!+v*q-p2vwq&6|a?fXWO zb?L{>W&NK2L0=QTDsb%bK<@=r8=?8j8l3O8YXoq0J$eBjg})(Hpkp!Xb}HbEjVEsp zAe;~6H6G^C`<()30R4pD1HtKw!~o|C5)K0E)0FbyurBqY+SCAs;je)x_fhd-Dog%C z*#vaOrH2Tnf6M<;BJ=9rHcX^jZlS4m`2v^y0;ECe^vf=aGa;MPFDuh8ZRwY}>6Zt2 z(H6tH=FIFeru^OPGLG<e8ILm87(e4;Jm8$OG+9^GmR*0+`-{6?RcYUFi?IwVtLoQq zR+I?LI{7BfkP=!7a{2dx@G?%{EWcE2zKv}81w)?VPolMwc$Yd8|Im*Vl}$8LB7Q${ z%&+8FFN1J4K3y3G@uooU>VX#tljPzLid&a0!XKZikVUy6wMxs3eUQNTP(IN5cA8)1 zOQ9Oa_|eMr9B-xyt={3H_$A86p_B3_e&a=ID#sm#L<va_%*{~YW$^P%o^E}PQiE3Y z_zOD-J2p8gH~n71RKaG&ot`{iag>jIO94jKPIghV_#FySWyyY-RR2fWO?y&UfNFj0 z_|J^I3waQN(m>E%DF--FR2(iwyPE^jR7nC+LaOBXUxOWxw_$bxCu*3t1v{5`9fFr> z$6}8C*|s2-f>Zr2#7i@aqw_SX8?Jaali8k*)i==r*zGMq$DE{_5gToGhIsq)c81w| zZ(bm0E|&yL_$WbD8xtQ=0*q`iZ7g6X9(|cJe;NOatP_T|HN6o9E-;$)_@P$2X+>FH z<A2hMiXLHZ+`)mz*R<dV-COV-g49iOVqy4f@5rL0A2HF}%L|}i92%emb5?*)`UUZh zS1?lP!{N}MC<522(AI+%wCJ~|=j~Y&dB<l<TP)7oU5}4}Kx9z>IUPAO$i8yB@MKeb zK2Hzh=o!}lJ>y0EP7#AW#3+hS;8VrMzpwB#!j#2zdw|g7!O23C&imyF2t0S^`4E*g z_MDh_NthfPvG++W9VMHOWsFW_IH0FsjZPTyI;X$ereA8)&&{SkIh{U7*6JKnmzQJD ziT>sRZXNnQDCOy_#ZLb16MX<~z58kM*!HbGd#`d|54lO?MIqn**tk8By@gXp)>psh zG;g9&Y&e6mnO%%TWLQme>c?*o)yR%(az4H}eUU9A-OnOhkEv-&ZMx;j<oCV(S|nB0 z_`>v569qUkr1qa$iy_9J6OZv)wXEKKFO$icDK=eYo`8XMSZC3`$hMK~TYC2Xh(dSW z{B6Y@pBtAPRJEHTGD)WXvwdrE;&h5J;gPMq+P5C6SUT2w&-7GYUVp@!M<^cKhP_Zg ziVUBUkT(ZDm<&lZO8}{A^J4oO$_dVp)M<W&_<&o0ie*(>y}P}AbI-{8BYSsvMK?cA zv<JA0O!{9D5OUuOMi!-<d3U4)woU3rdnk780cYNr1H;?y7^8py0be-t>c42(*LKG! zg^VKPb1cn2H{Iwdh%%mn=N~LQZ~lI&<Z0#!@cf_TiIL66B(7J_0P6On6WQV<`&6yw zoq_4S3Lr!_kL<lPaTZCWVi>AS27JkS-vLC58Q~v->x_P;H-7fK&Rydv|FTK9-oFhw z>Sg3>+QMV%&!hx2(3R=z{?KF5chEgkO7iIq_;((X<oyb)jXZVtPX3G|+oy?!a_+<4 zTq;xWlHUFq)5B2og!<UEWx?q6c$^wjTD3X^T^bT_hnD9~Fj|1%O*6E5u@l*;Ca}Z= zt9LuIR??u5yFXaDBiQ5mJgA(Si}g2-$!EcMSW$%hCp8|)UW1iu2Fy$#_TOAA@v#$W z=EG<|;~O=4lXY{lYbsu4nK2*7FS=c>2c#KFR1aJ|VNGR=9{Qk2Tyc5GcN6Wt-XHRP zYDDPOi&@>7P}f8DXmQB*vAE2ZeKe9;hE&UGF(MN!YS|7p<lNW8ik8Bk;`RReXt*>~ z{i!pfKVut=UPzbg0XZubDy6T|HE8t^gyT=B#}I1HeXi41@;da-*yfrY?j(&?Y;<aP z{?tJ-@orBPHSPO$;|~(blv{uE#_&K!Inch774GL0?zSso|HMoZLa#t!KLO$YX8-QA zTyC)KpnLd!Tc_^;$R}k|NPKztFMw98Uk6c%Ly6H=VpzS4sYQo%3Q_f8dOT+i(N;88 z(qj;OzHCGPd@pPgQ=9_o<QSdJizm7$Qs-dA(*p$YXTh5gz$$CTOUlp#IkiD1#4ml# zfL#X;3T$~?s}LJg)V#6rL~SF`A<9dh7Kj!w(lusztWZ%%8c{DIz6ig)9O~1B%LZzp z2^67QnO{N`9b@v;3Xe6|_CJb^vj$DenR3EiBWq#(5E)9GE#SmPY(7ei#Bp$V$>Zqp zDn8L#!=DYMB;htn-Xz4R10Bw8CCA0zofMNiHF<JI`D;@AIt3j=6Ol<8@d*rAoG|f6 z;)FA&du4GencftC>nh9bG!e~t)d|#^#fXEPN1glgob#yvTm2WxIJo}H{Rh#1`3?;; z`Y-A8yyLwl=gOy3gXfdC`+3;^5}G{^6E{~AFm8}8Df8SQWjG;2k-!wAjtOIgy?y)) zd`W;QXozrOf(|G8kG7h-0k=n*B?<r7Dn!?y(QUEnB8xUg_9=OF)9t=gpYYKLW)a=O zgy1T!(NExkekh(q+K^ug%Pgvm#%-TLwX9cXqi#*<#+V_e;>KBqZSsVd^Y2strJ1dU zSpC1E_zyIX;Cep3Qp0?Z@tjV!%=x1k&u^&D95BMtuhC~-C|39XUZ2@hX8HH@xnKVo z)5Pk-ytEf_r>B4P02HLtc_?f>UgrL^o+S8>8|g&u0MT@nZR3SneJbi>H<W6Bc=F-Q zShjqu&nOhu4bm^#2Xb7)kK9#WHwdXq<`#)M9bduo>%<WpGP)Vn{|GP4HpWo2BHClw z)Xb{PWIv%4F435J$lK0S_h`l^8CPQieX=M9gE{yLJ7;tI!}%1=<X{&Qo`5S7HWtE# zbklejar|S8BzKt<h|W@n5zn6K%<xGzA!{qAS+ZQtMNJliil`N|v14I&gksl}PYOj( z9|!rycSRA|)8`e!St@|s$|T*K<T1U{hj?1Po?A+Clno7UkGV{}dq*k%ko`L*@;|NK zeenUn&O=*B9_#I6uYHt4RtX$t9}*AnHO)RAu#frnvEDxR+D9o1y7Jk_MEjU#9}n2a zeEV2$AA9Yi6fh{CeN42EY4-7eeayFy_4cvXK1vI0KKqzxAJgnZ3Z9fX-#*sc$6os= zEwuUUW1@XbvyTVtW4?W?w~xK{AtOk&(>^BJ$29wRz&_^N$9ntNYagYIhVt3RMEjU# z9}n2ad>+A$mi0XJXRMu{*7o^j1$jE<No~v|)%uJi20Mpn&lc$@@&<exo6W-^^Dt|v zm4S}PO0T%wBX{hR+@-QLdRnVzAR03dce%CQd{S9Bb?SBNTh_?tmkJ24_wxM4<^k7? z9(KSTWxPR^IsNkkQK7#%Cxk5+<rhXy@jTg13Pw%W%mj!Gm*`pUpkN-b$tx^1Xp91P zU16C@n4&=RA50dXL}1LZoHaccB$L^TcHIw3A1~H#9XJwjIVeA;jDIG`Ig{{7(qtfa z&x7{SW*?jF!vf--GJ(atr^Y@e*+-LoJZK+n_OaPMB;6&0#K6jDACv5($vz&mk2d?* zY#+LeLiy~Y#y%$5N0WU#Xdi9%vDrR!Vy=AlQDYyI?4!v(9<+}(``BzBd0?^f*+-3i zOtOzA`*_ek+U#SqedK|~%4Z)n_A$vmn(X62`)IR|&GwNeR3e{!)Y!))`)IO{2leQf z)y6}AEQxi{d*nadtwdNT`hBz%dtxKeOsp8a(p1S`V3v$ZgS{#S1S~vqk<6<(jxfbF zm&+1Ne=n;LZ}R+A0%@3oTCLJJ22qq@@ZJ;Sh<a2oIx~-f(fsHk+rHoGOZqap4MC|T z+A!t>Ii<#b)gAx3$_rqBa4%KZ?-A-TYeZomy-Llax0yAOMWr-pvt|q&kbZcB2_3Oj z6F%1Olm2?Z$V$6oo<yUXYs%F{9wD(AFbhVu?Zs8odfKctcIq7mTVEwO_<z5?K600O zCNWU%`nueoyS`q~+G%}#4WDRQUl(8Gt*_!gBJb~gN$vO8h;u16BmeCRUypxcf4D!F zG`whJ*lmrsKn<TWWKHhb4x~!{^;0Nh$4mw3ud}yS@Xw=le{Ui(5RID0!RaH8j19rG z^pP)<$Ew5THe~^exI|CF;#~O=Xui}j{6i?lwT6&6@j%1S3z5ETIz4+&+Vr|$5{UlX z_5@|EclP2(A5spgUYHl&0Esm%t!~G+zYV@m0XbkS=@S+1U_&AtljlXDBkH=(X#xgf z*J<;QdlK}22faRr4H9;BBIsaS@(`59OoHg3r-;&ZE1Cv6yi&Wp5?&}T;zRlm?qYIt zihYGnqTA@COq!?uccA^9LZ|rzdRO&fx_@wX1>Y5W_g%x@!N-aJaUVWO1&gVxQHaOc z4MFt`XY|SNvc$V^+42D21zAeUXVbpviv-!uXgK;14-G*#?!9QSgVLFwi<|NI6p^BZ zl9t<}p!0I<hg`t`u1T0_nYraaSa(I4h)7$Sle?_ED7&B2@-{(TF#RYCx*zIpIF0lK zqaXK=yHC$E3%F$ZWr82V1WMWwiVhCIi=tOzqm9}HU&bE$uUe9VksVE5*4t670Ev{} zxS5d=m`({l1n1=sZykrD)`gLPspcRDjd(p7;mo>7Y_3-2Sii^Q%MTF>_z}v7FNNjS z8>Uw3NdLP0ia=zBa{3Z?(SNMDAvZ570HsA(dRKw?LT<c5It>$pvFl;!LF&<J0`d&8 z^By<Pd8`>^PEmQ{Gf_;v{m@COjWpoHK1&?D992s1x_VRinV0rbrJ)cQ*rZBMg03*` z8o|!vKE60ZemL7&8_6L*JL6~TDsjlq*z+v;sp*Ul4+wS9ltvTgPzu*)ZsF`|Bc|th zjW>m2cVK)M#xe~x0rn9EG1|kBYR2L@=ng(TK8;I<)_SiJDajkqUw3h#eR@c>(pjEP zL#q5F3Aw|uV&*s=LboB_%Z$+-erxFbcDJUb27gL@W_?IRNt;E-%zY9yxRtDr83z@? z=*wE|G?N;SMP1lkkEyqv0MZ;eD?UsYBT9$Z-4xzL6XM^eOh!A^Sk4N4W05aB@TDe7 zc&>@Dm&Tel#MVmSzL|g_{kc%OAAZsRnUdcRHEy9k?;|+jFhg#k{8g#=uWsDNwmGu_ z8}4nu9_BJVcs<Ym^Cv8H2nACme}Jf=On;aG%-hstb%oFTC8e5qPW{<9xxAxcsliu3 z#mvje(19#;z)$!OrUup?KCWvrO%)ONxjGgdl1tVv)j5>n?pJ?cD>|Cei%RarNJG=f zrki9BG}%WUWs^f=u0LKi1p0%cnT(1e*MtS5hhXU+a1n#ziN(PjrV{fuxs~|7L=3jC zGHI{*wK?wis5h8?B1Pce%Ak2}bBBv@>U3q3<W5{F`Az%#Uobo0puctLWdBBgr#<{N z{T*lYRnlIQMojpX>8~%_-=EAdy%QDkIKGfX5}o?{0~2yE{sH?t9p*??U87)J)TBx_ z0K@v&Pq3NLKU;f49|tz&qDu`R+1QAOus=Nr+ym1WP6A!yrRQiGyq|oBY{uN;c$;@< zla3#cz{<>OlbR7UPV2C5r#3sJnR_8s^dQQKFFhNQI(<=272&u!W@WC$qwEVbCnNQm zAaf2PZ|YCc8F`a2orA1*w`%$T7%ueagS+3EXYBC43k7H_jO;B4|0i~uMR|=^r>(lU zDfBk09pg>)Ka;=dwxS+kNXu===0{>|VlIWm!DIUPlu)Zzdk2XRDv!K|2veXA64Um0 zZ!#)I9=U@Tb@u*HnqG_ltJU?5YH(z4FD{yJKSvX;@o=%&WgHY?qB>8U&fcCk_vgyl z$Rd9xU}~QXIbTS8<46h!PYiMf2{{_{)BoI&GCB%Y+_y&I{+AA8pfdqFQDI1*Ra9xR zkI9)$ktsYiI5r)&Q|0Dj*fav=-XCC@AH-N0Bun#09)3NMGx+iOAwglM@Jmum_BBW4 zBG@5m1VjGsRa=o;t<S4=h^plW-Xv4)oP*UD$gOXfAp(m;fy{(3NbNNL-SA@;u@gO* z1q`3cIw^O$z+cN6cJFxM^WvN?<>2%4z}MU=pxj5#QTnA{l|D*(2DL&H<rH`fp~tOf zS@fX3^CNfG<u{Hn66my<p0zMZn<ajHr$I&FnBoeC=u|VJ#b$^vO$~m7*j$f<2b(!_ zNy7wdq9vdy=-zEaAT8czrdesTFk!#BD-gYfEW4$D$(haIADI;C@z3fQqy`6w(e7CK zG}`avQKP5(@R~%?RQr=>0X-~@5yi0BvYPZ6kJw!n*<vj4fiU}axpysM&4F^T-Wb_8 zcLHOvJ(}~F@nwP7ZD>!REb&|`@#x()pPttd`J8uVA8$jvMQaIHr4eBF$ZFH23v-*a zoNZgq*~vm-46N41fLX}X{mYRL<3F7Wg6=Xo25Me=q~2Gv^Kk1pJc^BFd*Ug&#%8K9 z`h1WE1Y$EK$kb<>`5YV2yTp=2nT6Kq43%lyqT@fs?$Wb8UZMBRHl<E$^f}*rj?LG* zdOZIGBBT_C64ISk@o)ZMFK8uO`~07?8qvnGko%hQEcMEn=vDQI_x*_Xz0^F1ms8rk z-tCpJKWTV0omu2GA4lJ%SKDfmV(=#8J=)41t#<a2fhZo;K$(u7aLo+kSUvKZJ|p9b z<21t%@IAb8nA$XvYl$GFZwA|U;y&opp!4wBA@%ORc)n3)?iSs_gIf?kr0_R6gXC7w z<)PT1i|@r%>D9&2kngS3mWDdl-X~hq`c(O9YN}~{ynGGM26XkLRbNNARGDg<QoWqW ze;0sL^Fmyi`|DzXw6>|khvK4MqxYJ8Qacl1-HUp-m|D>JB|RzRCrA$IV8W$<+V;&> zB)%lCNAkPsQG2|Mz@pmTZDzZ*1UFxYXT$y3@cf$ADFx{L)U-}6Y;dRbtaGOn)wwlX zc_+ic>09!cAGOBqBL{-FP?uLqsCQdUGnyPL2&!p1z|~=eCo!^8d4#rn<g_d!f^%HP z;$tq1W=FaQfK|9Frtj7vX>D}i+?Oaiuj&(LUJ@IZs<rLOqT162KEh{>GcQ&3h4<~g zUA2UO-S%^?0RU(Cb?z+#=ym)1{@xw!TZ?*s)_eJqo`vp3z9nM|eF0%ObCD@zx^XP3 zhg*vRy%F3l&rkPe3^!r94}18xDj_jo$S676jq7B_82f>boEb+RE0Of;kegD@$;~c> z!Zj>&LAX>&6HGB0^BOY7#HthHWAa-{^FsM%FKwJB#!R*C@0Qj&&#a|AX4va`Z|S{? z+elHhOr!S;rcF-EVg_B>GA*(<)iToZcfD8)D0I)ZUCkLMJZ-TN*{i|V%+ib!J+Ml_ ziO0zt0yoVpah}`C(XsXsLLw-9hrKnbE_%a&F)bgmoL_NYUwXaGY1T1BfGZ3G3}p0{ zia_NaE;6ij_t!b2|2d}mpJSY{|70z2ntup4IfiRjWajqyF?o6C#L9m#Mm~MyS=nGA zXV%WVrFB*9?eU`13Zg-GZ*62hzGPw~sNLOxj=<S^bLO4r3&zeut!Ho5n<nY=q|0|& zMiQHtq|)3~pjIg}DCjhQMEiJaFg;N{6P=c;q1ClbUtHs~T*6z^zFMbc0xuxy1y0LY z-h>xLk!MAlsrJ6ZHNtP!yRSxnF_a)&XfdCHhTP57_(2MVQfQuQl=Wvl^2V?&;3J@& zC(n3&ATMutfz$FI6bL3L%vlOyxrQrexrD9dKM6Nr?=a5ksVdK%sT!B`?A0;W*Kkek z1tL(OBFQeI4P#9k+VtHWr{@<1>uP0c7AVXcRF)U$jbE;nQi)%xuv{$II7SM#9){Js zTk74<5`QI;Gq2guqV~;x=b5_<d7_Z^EoENgbpiXc?u4_)_3LwF9xhw6D1)vDCL>Mz z`#3GTcv;f3V9D451J<roBN+%_@6@IyS=8+X>V{k>^4FlQ8eNZdk2K@W;2PrMt`}W% z=I!s@p}P{dz+iGsrZZ#EAkDAO0+nAlE!*~?xY>th)wXXdb)IQ9I8Qcj#(mVg-L^O1 zJ=@&Ymu_-GSHOF%RDXQ#*rLS8GNE!FUR5erJ<h}H{N_v>&jEYZsCW(QV5)MSS!d?- zvbx?M^<EWtj{bTS=sF1Lv1_?@Qbed~<Me&OF=y9F>pJfx42#fpu3NFBSAjG^cpvle zl5xPXcOuaHBTK0?fz5zw%O#30H=7`LT^8ZPw}9f|n}pus|FZ3$IgGCOELsUm((B&8 zg;rmIP>E)m%fh&>qR#!OeTzn9ZJoQ#z<XcsH{0JY>b-}_-g}>EPUI&8@)|D}flgDc zpL{8D;{qpe>;iWw{4ykaWgxP&DBxmsYsn(>9!hkVC2kv0DhEjt@37$|><u%KG;kW& z=>1}QBA?}l9h^7=^+4TuPRoPf3v28%P>d6uS?@3aw4A$2Mm%{Je96@XvjV=osm*{l z00CBP(}6nfbv19FlmBnLnPsBhU13hJqi26DnFz%mHe>>xI}o$X0TRo2S)C;o$Adix zenl+05*Xzm<?hio<>xfME^13y;?W|*d3)(rc<J6CoiooaNj0svmtV|1p-6UQ&vz8s zK!BrL?lc99dPU5mh}pJ^R_NDoSQSk*hIIbrG}QV1QYW&Kfc7mt0x!bq_9)2fnHN~| z;g=SCs#oyk*@9_L%X_q^Qy#6aooMR5QMU8toincg+Kg>p#w1o>b+aEf0M<pS{c4*& zhv>fzEv|ja=e$zuyrzX(+;IGJ$?nX$*kRaYx(drUQ)8n)_qSTc>)gL?=donwUVigC z413L6UWd6)SZ{T$FI7-nP3vD}Azs(|#}jx6(c0fDa-Mk&O3lY2Fx)Q++x|{zp!Y&C z(yTO_a_IC&hV~_n=|Sc%rDXX%-Lv33vg}%w2q)}n;#DXY3#m`5CkkXbFLdVh&skQT zdFT3aJ_C{V{806l@CLIwVs;eb6sS7o%$UxaYmnZo=jP;4Oj0OXQ(7MzFog1pZa%8M zdaD!BcJ!=R!I>dnTcBD}{K%t(gxu94nn*fWowY>QjEWTxt7KB|4eVJN@@)=8w)A2* zx#uls-Z7lf`&!X~#0Edr9^N4-#m!e5lLpiN;$E%Aum+)CzSdAatq=9e=f#Bd;H8H` z3V12dOCc|Xdg;kaPrdZwrB@(UjP#@3XppGGkA{2)5{HQQi0m(OA{TNdTeZwIHX*4x z)F9-vJi`eu)BpzJFXrv@F;2_xc?-FSn_oejVC9@Xj33H>I+vW%;OuPs#JQ6Y?O369 z6Dk7Y9(9H5k`atFOYDOTd1P3=S=aC$KvlxMDKLE*BnY~11>FzO1~rjnw!)N>|C%Dz z1$@E2l}Vbo!nXBlr=@SEtv=gU+P|lO_4*|(3-Bw~p`zF_%rCYFjTd-Z1a=-J6RwNG zuIGsWdNL2o?TCyi(jzukjkNRf=ZN`H>zv#<ttDI|yfjnI$v~#Vc7}lwevFNnhR!Q> ztZb8+h;|C8jqY#Dcrew>n#>fL{=W7Lf!>>>Z^8*@hMU<}FV2*e(ZDglw&@WP=q&9K zN=Q`EZ$=QPe5!e5MlfmKxK+Gm3vULsLv(o#>2pCbSLG0XaNf_eiPtIMCxJBm9FJ<$ za7+~%1>lcR2&{v&2x_&?>ve2PuZcWwm`=_moR(KWwCHT{f01@y9qe%R>rQh!fr$pR zAMGMkV;g;m)ABvr=&4T2NxXSO>9jmVCEZ8ytD62L>(LyrQq1f9{l0EJYVcBCN6N2S zkIwYcUBK{X7n6a*xvQuB$^44tECBPC8@|@5TiUb_EB#YDBMOGjVy!HRX1C)0b{C)o zDgMQy^={E$Lp_B`S^QwYzX5)@uOtpPTZb=L);BN)pvKu)N1C_K&v#mu2peLBXUvqq z!rI%*_B2lEtSBrCcB{v0dIj^rZE#`>RO;O~G_6?6H1_ee2`wv-%$nJcXknQBfYyaT zwBN7q63qbfRAB5bbLX8$IiTrNvSh<^V|Z7!vSlWc(|kCU$*sYIDnJo>daae!s0wx} z?Lw}2t#W}VQpprIma0X8=-f8tL86ux@j2H?#OL)GVT8%Ua=@Ik1wq$noi!~S1}spv z&Q9sf%uLTjwveDSoP52zwTXRPbCS<y?o-h%?7_%^d}qe@!Qq;wFE~eHAhUDXnf1Qe z?J>RQEmb2U2Yk-VG0ctG0beWR`#FWuU#xHJtaqB9R*sIDilD1`i9cxVir&C!<4-DJ zDoq8?Di_p*OE6v!^hVPm$t`JRoctoGsF3*#McVRQOc!83Eh%y4twDr9jCR&C6yT_L zAG;;k)OKUhA#=<&a%-Etlr-kaw|LY#b9S1x6t=Xc&fOQ;vN;f|-7MX-_ML@V`)b{N zwGp_g$lgg#WEHuqRwqW9QRAdsZ14m6h~371<g+x<GHcKa#vYh0c>MSaWDj6dj&b*g zcwJ8>)(a1|w)&irnu^edZI;&emNITX&8*baI0Xh5xrKI8ciEkkVfWkWdhhDJw65}s z0gc7t?8izTk(cbbq-Rgw>)ee<Y;xHW%gg9+G#D!wg7W4Rj!-`j?Ae6t2-c4p%b)lQ z4&%7{FeIyW{y8|s^goEi^{_I94N=%!g|#WHMqv{awo+l6KXGoXJ8Y5yr+}Yz{#{Q0 zVt*j=K@&hN2>-F3L%}l*?-B5^sc7@F8i#z+clHO{w-i=!+75rALWb>f{Kdmm#t&4+ z56I6M`o8cxp=vgx7IX$aPV*x4agbb;LbV~uX^^uY4LGB|sIC42cm7|bhs@m@*}NCW z=4k)P{vkHJg7Z^)-j8t^*vGIV)l1=b&akH5W~7{!6&TPbE|=O5lXY5lX0tHoPV4yw zK{Ty1gK9a4#uL-CT<f`J`H>z6Q8~FA2a!AJO^ID6J>n$89A~C!dfp{!Ai5YWAqZ+& z*$2j9hFRsP(w$)>Djp@o(+2m9T`T%BmDcWVJY03owXOFWHs?PS{elrm$H%|NUG1%E zIw2-q%x;y;eL)vqkF4F&B$9YS8KagHU+_J<n%xJnsf#{r=<vakrWfv?dFih;>8(8H ztJ43-OMkjaZ}((hmHt#OeIe;#O|&e?UxS`BoP`LAvNOX*6nLrMgx4Y5dB#@IHAlMf zYfrbGeT3xL)C}VSj5_BT+ljB<U2*<w7X2H@nO&kMes!h>FH^Nzr$vYHgO7EZZ!Z?3 z^Qu{}wIgwsHMB1-YN%~rQsfnG@W*bM$iz}^u4}Aw|5(7M``aRZS>B8Fakrn}2KTQ6 z^r&;^9nN#MB<1GD!`7Kc@U4}FCg5M04<szS#q|b1ewR75sO6MF*qWIZ*%=JI%PuvE zJ`(e2Yr@Pd3i_6_XGxqZnoa-AT+oervBG<PVvjE}t~koofV7hioK8(fp!r9I#bDMG zdw64s>*>t6fOW_&acNG~nbn)78nJ55>NbVhV^_E6lUl@#Tbr3T5E_Wi5U(^l(4#fL z@|%t=bY@<Y8(Y{K$oE!8wAZpL<BVUaG`liFtn!RyvwCM{7xU8)2zOlBY&yZ<{U7I< z3(BvbeOdX98nY<^74+vumgmRIn^cs0V`*zI_Z(k?dvRgwl}MiPf$3p1{lfpiW<k%$ zm~#ifG6Gr1r%8xti(O|!)S%@vaSJOEzHx#gs4Vak33FyVjRXcsnnaWaKD}24D-%H< zf~Mi+A@>{>taDhGxi6dqZKj>$%98!%xMz4dDV1c&IKPpM8)-Rr*fRSvhtHQUWDU5t ze6z{9n6sX;S}DfclSBD~OHAkM6Xz%Qn$l|}9#>(MuFeh<c+^le*t8EsY*lBj0|A_8 zcDHXs3~7XfAHlkovGLC-OXE`Yp`nA&x1>~I$KNJ|^BO`q*zi~Fw)G{B5U*nnq{=dd zj3LfllK6vCURFLZ5Ub<I?n(>KoNRZfQ=~m~jgCFdiqb?{YMS`|P)f5TDb3ufL3-cJ zQ-3OMvJ&mm2N7by1p%?TbIj9Hom9y_))xUmp$4Q6DB8BRRx`?iGz~frN@JPO0mzzU zd7g}&y`@o3YPyU9Va4W}Y6`aq4`_+z1g+n?t$XWD!#cH|wZ^ofa|hIz?j0DW4qz`e znQja(Z#-JVJ56gAu50nr<gHd)C#jnn{7hF_z$q|u{AtddH7Xp;+KwlJBAlG~x9dQ0 zA<Som88#W?n4)Be*Zx7-^sQ#g3uhKc>;ehJP7#qPo4&<HgvtZC851v($ONoQ+^6*9 z^h)fWv0MF#n6fayV20f|0M-+)7RuNj@%cGWPP__M*p8@Ac)`mcr19Pk&2b)HLdVwd zTv(bombP|J9xM6dkNf5&$A_4vD*+b>YzHOewsCgBG^S|#USU871@HIbEq#IObxVQm zUB+9DS9h%BzG<2!UUw4<X`v4249dk$E~TdD%QeU{K3~Uhi<=N)dV@IVN{lx(PU`-} zIo&_$N1eJq=o=!LidHGR^z>$lMKaJy=&c^(FVHYTW=3%!F5XjeBk$B)ixGnzFB@#f z8tgH%#zUcEP5~I|#7|WPt!9#E2JM!sI<>mv-ETHEzG17&Osg*_pWLOvIju8TY)1oB zPJD}rh!i<Zj56(9fp<VP+YVFVNZOgW5jY(z?f-U8dz#XYChhYa{sVxMkGvHGVDd=y z0DDRgh!$Ah<jciYlmp5Vza~FKFx@T<M6B=#gYk?+mPjTm3BSCrUHO&fX#-%B#!MHn z=CQ&}9<nr<78Mq4?GE;C^pvBqTqHR-DgEo!qA?!Wm={8oE=0xvpLw{^LyxD>Ijw8G zCeybJ%zt=gCz$trr+Xt0MmE18ZWNf7BK-Oq+~7=)MY<8{)S1k6CQ3%JdP#l}3uQ%( zGjE-i{Xp*x5YFE4HJToj1EG;hMwyFCq8sluR6%h8r0Wolh3xswLDG68?n`w<+WuY{ zr=-2(@CgtZ6#L*6*z8?gW<Z$O#$Ky6yKs67My&9-D=gf+<!0mNZw9xy!iBG=1g~C| zUPZn+HSlm7>T6rRLMlVC5x=+@JdKt7aMRGVdh0zCjcQS><hz7%p2R(?aPTM_#Y%3c z8%gBhB`5M?d?uty9$-^tB2Q76Fcv>l>9Erj#_C1blyq1xij{tcN<J)I@()ZPI!pxK zeW6$4eQ$dW*bWU*9V3!AnbtODTf60AFKVTYs?A0%Nk=_xqt<1k9!p34(nftkO`dk| z91|r4JF(>P%606hrJ<}45Cx{SNrS3CX(ijYJokY(Z*}e?=BTG>FCY0GO*&H4Uq_R? zW$CZ3b$$h}HLZ`>qn-zK)MGXBJUZWL`<g0w=nBl{ts8#31|^F!ZM%N0)yRAAIIEGz zc@2Zp?}n+OZ3XQM=Tx=D&Pg@xb8anxiDcOPin+R&4a2I`7I*K$=(r)#i-%_I$(?!U z+(fdIN#@KOHznXaQLsE$pU#W#myVCL^<v5CVbdX>h@OLv(>N9JfzZl%qIiK<PP?3{ z+r*K5zCdI>D%NejoU*Mv$7JsJ7cwKHcb*u~?qy$a@a$dlS1pT-#F6L62#k%YV6^dd zCTvG)@EJb>OODC4Kfs<#6oqIx42q5_6}iWQ5r>}3VQg@bB$vRtIqDGo^g}9m<m^#X zSZj)*4E3l_o)Hp%CB3xv5A$hk0++||W<3y4$yvhYUfjPIh`iUUanjtPnu@qHuWff@ zc`-U;o0I1To_p-i_D^ggjo1~~vo)~l1BzKCPDsUkDD@1Asd4UGj0tHkr+Fx(c5YF{ z%4|{b#J35<Ghfpdr}kx5{#5On_XEB)wY#}u#rk}x;RVWuPp8_a^It3i2X)-w)VoWq zzY08GHtW<ah}W0Kn`k^oX=9o{Y&=Z*`b}TtH#$xGif-wX{5Idb-F#FalJwmi=B7<< zCv?}7G`v2!&Dy)=hXkEv+)5d$-Wq;7d0bW((~Ph3A8qoVo|C^ZZt8ho^=!=+5sXdy zT%{kGMD*3H$&*J9sy2GzjfY~d@MZ0DX2=dYr;hL&$*m1@+~xTfm?2nQ=ZwNtb?OV} zt|v$ss^)z9X<mXTV>>hU^Cr9)Qcw7-b$m5#=~d@`wtB0EysY-P0lw8AFpvwz$BJuo zOf!&M6>GRCp+}$x_wv+NL)@0Xs0QOUWo;<-qkIL$t}E{sa>l(U0P|hPu3#YXD->~v zNvI>x@v)P7K<KV&)chH{vu^g7yxG_?(wN%T;_BIbYFk6qzS`Nv<$B2<(^^;EgW*Rx zs?J?yM%Q4a@n?Dh6h0v`4;*lxBNTbgqR7_T-K*=P(<*A8%CCJ%D1pd1sFO$LLOssu znr9J)OQTfdg=EFGkq*KQyg$$2!ypeIO3Zj(V3DEfT~Z1kykSJ5xdJb};pdaZ^5>hA zsPQn))lnqZp!ZMog9_U6oEbjeRp!)HG!LDgSl|m)Z}Bl(e<yr&W{CXe6rVfZ&b$w3 z$BtlR-vQ^YHqr&EcR3L$TQb}|oEarl7$j(xXtx>Z)vLE2H=x(*59CcdR(xJ4R&ZW0 z(v}|Gy^L<q8Mh`B`ym6nSJO!Yi-C*=)_gk}*x9{DwH7<#3pKo}X7?G@8gdxBzCc^A z`EG)dVImqDAh@@*YRLL9NICHH0N}J7P-Jf+F=gmt271N@t*I-_+I$M{#{Bj`deyw| zdXOnrvf{1GBKOz?Z;3t9Wb804NR<pY+Y9bNu<j))`HVavxedbE%sO_|xfbEM{*Wfr z&Hmw(I`^$yI)u^;ihk#4`?veexww>StKGe))@_5e+8BzSDreZI$(8e}4<UQWH1&k2 zc+``-K%t(a)6}zeH_D%F$<s-U(@d@-|DcB%a7$`Q{0=1Y9>x+9x!zQ!^octOfur}m z5{mxF|73oU3Pt4a6&^&|QjI?vQ?)F}fok(=e3*Qe&kq>cH_3IRH97R|nyS?#b2l`v z4sS@t)AXn=4;6%EX4*mXf*6QCojf#4^X6nSHI}I8BUJQ&#H&<o=_TLJ3=s;8?@t<Z zuRlOjxPhe(Wc;%BI5QIJR;EqslJBa$?$WwEx^8^B<vF9`pnS@?OFPw|+(K>A3%3<J zGm1s)@WM2!G)>(0uHHQAxPou3j*E0O%Q~xeSWoA^_T6t;tlhnNRBM4FKVq-B2|=*s zC81+I=xCu}4#J#KOY39mfYVY#OkzAg0{-&9=hqq?eVnlv@VBJFf4(I!_$-3HaNd`O zKi92V_#eihjPGXXOVC|awGod_z~9!$q+X8atnkapLp=L{Od{Y-Q69X1-x=O^<UfGE z{5>C^W3h%5m3#2c)}K56)PF~&=-ly7!<&|T0Nkcs9IXDxiTsB8j1#Zdcro<E0@qm` zuQg!&j++o5w;3?*78vCRG}|fLCZ|On(h}47N!u=6F1tUjJc*4Mb%UAGhpl5uA3-&# zlJy~P?w&$e$bB<aa)4ce;mivO!C@RG?#XmeACu_yRLNWE5Wfw<@pY<XdwL77f33>G z0`#+>S60G=U>q1XAz5VCc;(m|M7G0p;1~#3Y!DA~-Rl$ZRrT^0z0cE51v<g%jxeWL z2Ot!W5v_X$dmDZ9#y)!gMPSc?Bunq!s?~dT2c0Jtg(^35E*#vmq24_Zti+$*JHb6` z49cEou>4id!1NLevX_t(jKw;sgiGTzw7zBav`!ZS<keTNy?sF9IVhB!k9<3KKgMSW zWp3Z9pi{G4!&+Kj{q~&$6F*bBoC`K;$p5wzyUnEkH01jy>617fL_^7$(U0CpWXeSz zd!1Pym^819j}7M{RlGtP7sE$ibb1~k$75M?_}mn#Q#T)(_;IH?q)rt%m!PUP&gWVS zaPU}MepalYirc$WAzwmEG`{7uJq~dwT106lnLN9h)_e>#A7W=lIr9b{JF0bHnHDMK z7VT4ZP7+hW>NmoRbh%|&(A@!)9QPd|<qm#=)j+fXh#Gn%2=)zCue{w!v{2|AUY)yd z;|<Nq?(q5%5eI?Sc!E*$5BW9#uQdiduMkvUeZYw*%jhKqRTQ`sFPYT$<2lJ+s7bA7 z(FoNS>#M}ET5O;e<AEx-g1nG#HD#{Wm<`aFl_uUMS2l?muUAx%yF282o3x*#$Ln&n zN<%f07mbPm-3O$tT~bh;8qXoLzy^C(VW7TD_@06HOwwiG9pwXfUp6?;0=&Hoz!wXu zVJt_uXLoI=dbM*`ohJHeYL_~wEg=AfAIgEL*Pla(>(Zb7O#d$Myp2=_p5Ng`@B~=g zny@rfz3TSI63dlABiGJL7LumEuJHRUNxIZ0o3QTilPg{WKiO+!;P+=fz8-#4&+=e5 z_581g+bdbP-4n93u_EU<2A*ZzDiJN*QG8(-7DE1!4oR92NgrY*ccud^Ut<GjqyyW% zydxg?PeW;sCBmb$H;l8iaKvwHR8K`=!T=FI--{~gLl{h$X~s)+9_{>erJ<%st?(~? zz5=tLHS?<z{Tvo_Ulj=*QtxXEx$rmb9GM=0Fhv9uX1zC}s(2ZOZM;J#_a%F}yC9Pv zK_=Tmm1J2Q*z-?$!mNBf*dYV4RDI>b`s&Rg_JWAAaD*VL=*Rqkq0<JjEXb@f+u$^R z1Ccdk0UP~khjE$5?cYjNLf10>LUg~!-QO~Fn|nIr0jGv3NkKXXDN5bpXTCvScZ;T3 z`T@PX`+Yv^-97cbP4!L<?mR8Myk7KDO!#?*a567n11Su(9Ac>DE?8FK6(?N~%)x=` zO-|%hiVC`kC3Pe6AY>iBxv4<)o|`KZO9<EeG>Mk-p%gG#9bDA3$B8Vq*{a%VTMMd9 zTalLt9?(#940{Tz*yvSsqqNk2k}2U-N)XPPkD+{gJ$+3)!4TAo^_2V#h+;qDw8~a0 zP#t$-s~|g2G&>!c`%T~z77B@wQ}db!&i?h)n{F>j{E3uaJOR$#Kj#|@je6e(;K`jf z@jwp-*qLz@%`y<p(+mA8;_{_aOpEU&3)6DA0a_-6ORr2|eeB8u<6{Gd)yKj-i=lTN zW~q>1V`s>>(_|Q;_NL1_RZW^#P}y2=B4OV(2^^c?MDx+#B&e%Qwbq?Tr3><dk%e5r zvhV;jm1jH84*nM(2vn~P|H2s8a1hUs1gjHvRPNfPCFwE1m7Ozl1i8C^ZqRo@z=!mt zhE2Uey%NFdh=d4XPI?0`p}Veu@x2B8f5kvZt3*(kF^w1KWi|cn@O2JB8WTiEkD1_7 z?d`F|F{CvOkfuR)=(5!{%sJ@zz0bhrj^CSnA8h<CHRUrSYV^`+{N5l-=kZg>zcGGO z8@;ic`rn<$ZR({&Xw0Tw<;?qr<Mrsl#_Jww%)z$~>r9(Jdvz#e@)}S4TGHb+eO_oj z<=Y}w@~BBLIw#}_6H=AVGSPe<m;SuUd>-a~j`-jjL#=xd>QU>qT95knBFyZIzdJHb zk6+2s<9+o9p~uF5gS+3|g)s7jwk6{R_}p8I-Ie-U>0a#r*zxx}_G)e>a4z9;gG;!> zp#Ok!JPX#JDc3UVbVtF*&XrtX;4kd6p%2L}Z#S14xTA{*D=6=hX4_kx(iB(|V(SA_ zo;McGnLTbmj>yya>o6{`-2KsBXN)VD`t9iXML0bk7z_B^zRtX<y0n&)4vd4W%>NWH zY4+#=!+T8~N0Qd@1BUl>W=ZubI=(o1zF+-P3r|?i#u-8Ki$4OGR~JkV_?D(Nb4f#C zh=2xX07oa66wcv2Ih7;D4WJ&8{Z7e=yjqbLDNFyH&=Cr)QQG}iWefV2LQhcIr+4b| z2wVI|q(}}>+TRfhbo;%W$y14cvgqmW5AO!$hu3$4U=i0x6krNm($)piw|7pLfi%90 ze#+Lz7z}<;#(8wRewK6Ww55!5W>#EWgJ~q#fxS$#!PiTcgJ~6jAXRda!K>W)e<27Y z7p=8T?bu-L1K9ULi|bfsCP{6k)?J4baV7GQRhUrz7yS!dJ>Y)=z746Z+O-tP0_SNm zm{sFay&(Dsw!hQk>{#(ys?1B4Woy%V7xH~nU%9K^_ln6;sT|cS>)j>w&Nw_a?{37u z%=!@O=PuW8NWNeMVSP#F%sW9FgPPWpuyklcKEE&(-kO}7X~ik&R;-1P(~3`m?b~{s z6B~GcrX`1Wum4e{{rdW~7=2y+64IJJUC7JXv4Q`DNifi${`(9h4pM*RH>-cpH>m%V zbp30YEMEWf>HkGvRsW+(+pYgqtFvQf;QvRGu{-Op0cag);2*4B7k(%Cw+#5D$!NNN z5ifNAH#Em||D0Iyp?FzK^J`tk|C`k>qVP5Ki$s|E*V%eMsrT)!_pLLv=j^EGu%^~m zuCMp4Fo|`lVEVrh{M(=-6Yy^rrlpxZwCTT2)0}w&jsWR=tpmLNZ|vNEl?2!KLux!q z!a9avMbgRCw@Q&CI@k41$X%KXYs(MrntEZkzOD(spM08`Ew@S%u9TeIf%J1IFU5K} zk(cBWUgXYtxn7Ro<x#!(d1=*)&P4x%7qh<1w8GUKcT5A$?}Puj!o`b7fwZ_tGGV_t zKaF2<ygV{_`~Wux6dHRKXH*A1FS^K6*bmeg>%)G{SBO-2ggI2b0$;yUgyPI>&+3qG zd9a#8q?JKu6q^PnGrJuw-Mi(+V61ouQG~BLD>fXhKe5C6rXHG6ZC27?^~#&axC<g% z9WM8I*$?2cGR007vG(vGUE#^GeL??EYMmR4(U|;vDd*zFLSw(KLw&~_YC&$=1DM5I zel`#rFf3HP+==*UE@NI@n>S!sAa*eoze&r&n-Wj6zd`rfX?|QA9qsa~7t!EFmMZP_ zJF})kidc32#>436)IbXAtGB@Xm=4FzW)HBG8-Z-!>9{lNPd3XAo2Bs--KN<@&*1sm zo#t~@6ZgZK7iV5^er;Yc!-Uc#lKJWt;SC1B15K)bA+JXCzg;#wd)9<}uLP?xxY}6n zjCu?Ee>xhhekJ6Lehc=NTU<X5M)v!inX8#SQeszHC9Hmh=Dl@RtQf8Rc7|Z-)NciR zpD;S5`c^iMon}be1c5qNBjB+kJrMhXmHV-wJB_QQPh}#FadvKOsB>;Cy!tXuY>&x9 zjrYdl(oe=XH<p{<0Y@w3q$3*`qF4Eu{EFV*;Ahery?v&z{d!xVu!R(O;}`r)+OM}y z`I-C)Y7+4V=Zg<`Vr=-uTO{1~wtjXJ@?L|pZ!1qy?fVEzl+`@pdv@@@6RWg+|Kgp0 zlWsFlj+*y%5Xaq3`%uf;!T(Nl(D!}L`{%Y$Q@peDT|(a>l>eP=yf5aR{~O<KaNgQP z%CIcdY1CT@eI$9=r575qk^i^U$M70H);2g-f6T|u&HACfYXu03<YzBm{9nBf7;fB2 z$R+_K`Gr0?(cH90U;pCg^N&F7p$re#tXE_6a4&n25T~<jqKkB|rP(|q&e`*Jz1tD2 z+=E;vSotX_LX}GuiF?ryvcS^hd0E;gdel%`{faYgF^~N`M&}p!N4FMWg@7?*WQn9k z{Id_ymB5<FMu)|>i;bfW`7k4x#X5jw>Qr-nxs(qjDGT^^In4{TV!2yJ!`^?(d1k5h zr-$-!T}fVDth{e+<@P%F{mR#I%+OG~M>rJPROfD~e9L{kVGqL`+GkR1Y1pIj4!zod zso5+!_;>%A7^erP`NB(cw>1Rfqd?`Zs%3LT3JQv#3dMa4J*b5sV0Y6FL0B5*{MAge zPt1DLX_^JAmxbR+=uWD1!5M^y@>GE>Hx^Fu_suh;M&%En{F_$$7~hptw2JUM2V^S3 z#?d=3HuL)~O+U?VoegPzuS|5A;p@!||A9%z4Bx{H|Ge`IXKOtQn!3--@a4?#RYA#7 z-A{s%&zRv)iI)5uGyD@X!+%09PHinDU-U?AB3SuBeQe;V0sgB#G{~P>F6Ric6#~M5 z3P8d=r<2z=IFnWqTz(<}+X;v>N0|+im~CG$GjCc8kZyW|pZ{R4e!c}fM#~|x7(D(U zJQo=(u8u;L+%L195k#KLIk=QvbROl*_+Q>&PK$xsslFAfc8ty+S~|LQXlXDu9t0JV zwgCfZ;Ic3p3X8gk;ZiSqOXVSLyr4B#@)x}v#!DS9oGK=(d7oh3-%pN|tB_d9LrQZj zFT0ezgcp^glj$N;Mm6z9u(l#qGAMm0G2E2F1tNXzp+tK8|1JOjXTkX6+W&jWZ`Y%n zZZ=F@<upWm^FX7o^meLb;dq;<e<n%N;X-QmXhC;ek*=5hB<Nm=pUPg=&06kshu=OQ zXj5E?yl<VXV>!CQp5sMY4O|E;%?3`iRW<hKtdqMElvsA!yl2xa8r6Bzs`9-%2K+CT zk;C)0cim9wi`|AJtW;yCi1Td(e)PIT{J=((c8fUHMwE4nD6$c#&~zzk=V_+$A>AU@ z*$9~-b#B#*Hln6m#KSfs&@CcrBPMi<xY<Tb>=to}jhNIeqQ*u{?iTSK8-cxbm*yT~ zBT)8EHTKVf9sg$kI<>QZvy4Bzp!)^~(YQsF`zY{Ue$C`HuyU7V=reSsqPdZ2F=JRC z?J2W)T!I$eJkXfUzep&u$>T$n$WGfr2*GAb(2flXXLTauT}<VVO3#PR_VS$kgwgK6 zVEzj4esSjd|4;VvLH8DaMiR7;zLZVvRkbWpNJo*yVbH(%%k3Jc9*a%m&rAn7OZ+T; z%Te3#PJ9c}<@fN*z*3xi2x#<#8coUA2-^Lv?zbp`g!w}y{;Y|h2`w|BL$XGKCbY(c zPRN=Gn$Srmbc#ZEbuttDoy-JJr*d}B-Ax1==1~1GV;)G>&ennN1!cUgV>THCHhxcs zou0uTyg3R_P4pM1hF$IbI4|W+Fo{C{#81%o8n#D?9=vurKbSDLz+BF09QeVFxS!*D zHWa<Jh>OAk?$Gk&5VIfht{)x#Jx$S}<!A}%#wmATc|E#ukc$r+&k6c=)>rSGT1&Ie zl(4>XZ?Jj^CMN$Mb?*WnRdp@?XYwEk1Wup?qeh52NFs<tQHcb}kOa@*M6sfxg3@Xu zRum)?f>mK)63HP>#cJR7);?|@S9`1877!IOAmL$E9#=$B<RLJ}5e2n8CG-2Pea@Mg zJh0a5zkkc;!(^ZR-fOSD_S$Q&y%wx2))r2<>XxYs{b%T|wm7Yc^Bb%$H)Zi!tO{nX zcsf0LcXZkcxhN?)6gemlsKj3U>qy7G^-b7Uyq)D{)TmIowj!TwN;N5#cjZ_`bp1Ru zKud2b8kps|QVV;-s%7Yx4wA6ksXQPVm9eKR#5OBO@UszZ;9WeSX%X8ny!Z-=ozr9k z>RxKF?#5qJ#5B3#?~H0sUOU>yZG_}?VIQ}Dg>(bD{-^W1w2ymPscj#(=g<!JaZ6f~ z#C!1b`qD?X>@GUhcXkb@LH3VM=}f3RF~QK=XzOjlz<Jb3<_2KG<}LPTWlO>(4_EfD zL#VpwZ_TB4e@{@>+UW#NaeKaPL+t+U@7Q0<ENH5~mzV?X!+|o(6lDYgxu)<l?M6fY z<Mhue*e%&asIn~D(Msr@{l2J`(8XeJ^K-3)-hN&eRzkl?<VmcA3jAeD_J#iZgbZrl zswr^3k^I?0vOf9(_CXH;H|bS7`=C3Clm@@Beb7JDC$-03iA+#Da-*h>L2=tYsCeXd z?2;-CvCpv&I+6NLY9I8@bVnPRkz4jbi#{*^Nb;jN%5!k+g90S5CvyFv_mo6~`R>AA z?#{u<_$l^fyR;9yjBH=dKJe^W(v5xplzm_ytvRFt4IAZV696dtz(v$|Qv1Lo5h=)+ zZ~eQBc~KYRJ$P>Nc-49o7R?vB=;3c9<2Dj%;m{KHZB;~VzASHEJ=@lRtxjTN`)5>Z ze<Urklk$I(yG#DhO6Y?Bvl3{&1G96cmCyzMXC)MMD)CXVYP<{n&q@HNJGAklmCyzM zXC>&JN;F#uUGRTa!o*G`Zm<%%;Qy?Ishvs;vJ$%B|Ez@BQlbO@SJa;WW8xDN92@vL z$;l@K=4kZt0L#dx<$vueUEWVxZ2iC=c1&0FRjns3u*F0)FT#XOU{~9c_gnPr_fOD< zL(lZu_<Df}MUMIf>}eO!@X6N8k(r;fUV6~5td|Qvw%3c*WP1zCbltY+`<FrO?fJ@O zN@4Ia7wUTA04(=P%<5j1tM!KIc&YFvmhA>*k4GdfmWQx(H#arCvC+$I)<@6E$#Iwc z%%g-Qk8+%FAp0T{#N<DgFdjcB-AYV}dTpJlICFVL@XjS2=Ih#P#-mOuXD)d6()uj_ zH}C<%CCV^8Sdq)|7-nPgDm9r>`_MjOXQMVZ`j)dlCnLk!bFe?`F%B%eyr6PKOD(3r zPw_Qhm4&#}Kgk#RCN>aH;TUd&H}CCHpKsLXhxDwbs|tKr7W9U0LRNW8t|xFLd*<-U z5#ieN3Fg+1tEOzBj+U}+3=lJ!n|EbzNzX+#nd&2Zv`2G&ezaRj%T2s`Qi|b~)V}NR zrZYd@{9$ELOVi~AG*iRL6aRamQHRE<`>u7*#BWw>-0j(;nnl;p`Ox^Rz_CJYL2qI0 zo3F?0*MREM&02$~bytTf7)K^Dg$rdM+4cEN*B9u)%X3|oA)WpoJyQ#A14WSJYYj?4 zJ9LwDo&vQlW1}ij$*Aoj<=FH*LQ{Vdtdcf<OTZhd<sthe6uBm~(pblsug|Y!EUHXs ze4*-GP?gx?pF?i!*-Gx4(q#C%vu{c2Q+bgzP=AH5bc=s1&py1NYch1>6zNX7-5I;$ z^kHR%^}|r+@}mK91%3rI=|F~pC>?OxH&!-Zo`2J-N@KnK*ZOww0ek|2FkaV!RPIb| z@qvhmvBJuQHx-n$D3gyX=y-}UNTW<fdIHDM^av4G*<6wD30-ld$_RV#hx)9mq$O}P zvp%0keld^na+R?@I=Q4pzDm}WY>G~9G1CHJ7m|KY_<dBKQ|qvEx9R{I$cHKs%v?}u ztPbzb4;)Ra>rH&*S%9;J1ds84v>y>W0!P#9%AZX)B367=$)-x<8sL0W0pnhasoioh z!n-#&yA|7x+LBoI;q2FR2`*l#XLHn1D`QQCaQVE6x=Ex%zx*@2Jp4q;a`}nnjb^na zFUF4dAtOA--#l`(LEH*|%QKo40VxfhQTkM2YK2+4lG<42HQKBegkR-i?WKH*{EU~M za`_o1KfIEhTb|1gxy7FMnshf6rBrE)PeK3CuXzH;GPMPp*zm^$()+p?=2e(9TIcTx zn6(8j5+6v<QPHW1=-(wprzN5vPKxH7=2S8}DLNw&{jH?vZi(n|Nzu3ya4NYlDH?k2 zL>DAQXD6aFlA^mOqQw<}Gn^iYXmJ(bMCT-;Tau!CCZgs3*U8;05&eUtXpte?5EM01 zCpY|v6Mb7!bnirTby9SnMD)dWw3yhCcP(N8#FetH$>;9Qi;C2l!&SHk;k21WDx5<& zeP)3Q_avM#GgpOs5$>i1<-PQZk^I<bwGyOMXw?Rqab8_GR!*+v_}k6!TfsttH&{V7 zp^VE^5d9$btD=l3&Ny(#H#XP1rkmg?FOi$Fli5HyH@=?O7DOjTo<k(7(ZqIChpzgD z>ZB&mM~+wVUZ7U(?;zzd@H9&cR#N-I%CamY+{P7`XmK|A$}rWv@eofmGB@q86g<wV zr1y){v!2bYEZS7Q*cF-+BTM<FeXQOXrmpY+t~I?(VfH0sqi0iuy=`Q9pq2MPE&fe% z$yHtYGMk>f5YiTZgN|s8qOTr(52Mwq>CFeaYqkGsTVRPAc~Arm2w5u<Q7IfMMN9pn ztEyy!;RVvNGFps`|E`=LaHs_6ln+@XHoY;hyOOhxl7@<}?rLKW!q%~9ncrRLU1J%g zuBkHa9#+*<a{(}>B4JcIC?S34N%pV+N%$c_LKhvvptZ$Ep+Of)iXcubuSHV&5H}zZ z_Y`sB_k;}5jAXPJ$uZL6CKy0|WH@G+WGK0j?h<0}A7ct<(N4b;{dk1h+LEzF+TttE z)m>qwF0PkeiA~8=mL;M=&hF6>33i0@1r8KO)^hW+9z@5_Sgv9=B$m4(-H=pXNoy$B zDav(wfhYJ`W-U%PGOL@X!%IZ4nMc*u?Iu@9UPD6zWf(F;&*r^VFcwv8`5vfqRnzSS zihooW$naChw{xRKiM}X&qh3WUrE-;9IIk+$ib~@^aK~J|86~74@IfcOp#{sV9%n5~ zFDlE{g3s~E{w7XVy77h@TQ|Ad`~q;t?<3q>Yj_kO6Y8Ti3LO!0TM&fO2A?LLcD*An z$0YxyQfX*Bw-7K#MVt3{dQ8v9Qm0o~3UeVj6~x4h!;35kpI9`j$gNyBty|2lFjWhR z9$&n|!+e~y!lP7ZmrK)v>W!S!k!L=qT=X_i^Yr{c_^1cg#fXF>nI0aImk0I$pxVOn zz-nF_+59=ZYfT?!_1d0M(s>-=mLoqiU-z~ivd@B%?U{<7ER3$T>ObMspJvw&=c?*Y z`^WXaBu;=j)IX;~{cTSDsdoKo^ertJDHL>t{Y}D1tN*ukQGfq<{fRMkx8uwKQh-~| ztX7W;UM4zb1qOW`DqO}oR8&}0OqzQ(d3Z0ZYf#(igb*aEg1X@mk~?)j{*QWla-ViJ z2}j=Uk_z&|63DDJre{U*VPJiEjq4G{+bA#VLDquPl@xOZI0`#_Ww~O9H~kKRAzVx> z@A^|MLN;opm2}GQNwPG<%2ZPF2)c7-#6OhdUkAS<0V=@?S4|N|m_kt}E#9NepCq`+ z9?*O<UhP=fmUIq%=*X`~LDjX;Ro7qqC$T(n6u_YfB6)e1cTFbADW(|4vSa0}RE*Y% zczE`?b}K@QDm6<YB1%P8RntydmDtKic5`#uY2rK?`X!Hu6}aLqoam#&&x-u4ri1^c zt+&ZSL_X8LV>85W-W08<uUjh;E$re+;!1CV_@3rftaN=mL%V8(jIW5FTNrNd>t&=2 zG$lGv%@{b*!CQ|yNYbNN-c;rQUv2?%$0fj`?9=q0au>Nz36T5d$*hR*j6>lq``O4Y zuqA0{DS9Vju6+7`QhCtegVu}uYj&&iZ4$ko_rXNK%-e1+9zu*Z<rHo?)C<J98!@rM z=BL@OyvCYka>VD3b9qc9pD&=skmDct(wj4uju6WdpsL&r!>)4SkNpy0q<)dIZ1b10 zUV19|zEJPdReoX0F*A#NVm~TInzrC?^ra?PdH*n1bep!s=e|H&Qt2KZP3MHL4%TTr zO{KWj)u6L5p~i(W%2N4msiE2HYS1pfSeyU5c+5nJ8KKRWcXd{t8ztsaZT|dt%p{2^ zo9VaGZ<epiX4Y6=Q{=0B=0xl3+wwJL<~Zx?Hu<WYS!R9J$k*7JL#?l=@}<u#w7$M8 zU*l%>vA(9smrn~Grw7UVbQ;Wt0`>K%^FS|NE{n5of3<?bzWvM!3i~!!1(}txS)zn6 z_~+e431M!6ffK2-;9gN&(h|R}$KS2UTlDtw<E`J4$whuFr3wXO&q$Kx`g7%~JKvIj z<o%@|PUqqRANES@K@bHR3o^ygSShV-{Wau9gzmAt3`B9}OPqTwVBAeNv<79m*tNT4 zUG#=!LQ3_JV>$hzQU)2>F-6eJF<|nLTXg<VEbufb>o@@^A+J8=F^As#koyTDko-bY zQCTW|TWb)#ESSI{ZXPoG_wX`5R|^iN4`Z|?{%PZl12r)YW0DEh@I=iRqjK8#@V*=z zd>U3|*{@J0yY`!&r?aYxI94Jb(3ZS9?`R7B(1Kn?bu;cM6^515S71+O$)V6342PQK zoA$!4zN%+$tnnB_t}@!>Eqr)W1QvC>c{Sy<C9R%Nbrw&PH%CUvnwr(WBLprP2?Vy^ z0?9neM*D1TWzqX0ZqSyrAUOJLL=Px4Y;uLRB>nQ5;E`C<1UHNiCr<yl=+=bI9M6bX z(32VS%D@=pD7=%sgr|@4cn8ur!Cj<uq~+bs3|PL|dZ<A`*Ey1^L#NX85IaPLj8}m? z*9iy&RLlYTt^zxpzy>GK;sl;1VBsTF41)rNb$u-XlwwS`we4Xu!TXeCp@WXitFpx$ z&Jk^JYSLY6mOUYrgz#9y-&kIM2$0w-`-#Mg+6Ut*3XO@eJI@x&rZcj`^VX%nHP=)a zIhV7CaV5QS*4?}xz_JBe<d-P$_03{_bL#6n&!krsnI29dGKm~I)XPP6@?a|WRc5^* zhYyQPtzzU?g!%@!!^<!ZAkEpth4))E##7%5&=)y~Fv%~O)8G}B^_AWwaC$bF63Mxl z868BbXwuI1pwx)A6ty7}71qM$xw9m7#<=EmG<>AXoKL2%D5N@@KEEpRT{}f<xSKu+ z^q5&3s$(8tt<0mu$UHg{1gX8bw37^ZcOL<zG@{x!7(5;GhTl)G3RR_h0y{FFbyad^ z%~X$GLNhszg)RJU^JTwb0c9mUGd3t-2*TeNSSe80Y}VkPP3kU!SRu@q&IDVeibE3n zq&f?kVUcu(F51nUIKZ-wTRSJouq+#h)``m^1?;jMx_VJeyvGJ;TVmwUm1Q2`4mWut zyQomM&t!Ugwu)hw{pNqfsnhKPIapyLEAP5Q+%*y>%07LZIQ8ndjA$w>q*Z$^HVtrg zXnU$7Sr~ecj){)4H|pZV5k>rse-xQ21Dm({3F@##-nKtHVS(}^_hM^1+EWUv&t(yT zkG0uGLVSp{x^bKA=E$Ft<m(WGnFUYdETJv4eu&=OT^~6v3kR>Eds!ZrYKu$pbFz6~ z_V+kUwPsZ|%|!e-Cf5~BEorH29tZ1!IiBXrv?XO%8Al->%pX=(vTF-CHx;c_W<XU) z3yMh!^dv-h%EDUXc^1;wrq$Q!&8PXAZ{$P=WtTUhzR;~mR?pHFk5mm;X1`|8cIe8i zrg6xK#~~y3(6KSdSm|#`b?Mu@pbJ$XTTRs#SGYFs$X+A)1FgBzS2V1V5Rc2HDsp<T zW8*Pi6+_eWb_jj*m2x0|@F{v$X{^QeUT_D?Du-pYGeb|i61*QCMpPL7C?~iN`OYCd z)ZhsS^g}swbS$@POG?$Ctr0%D%9HgLG7DU6^o3Se8n15t5ODgM$57FYxlLmVjG1E0 zA4~6EOmJ0m3`N6=bLv%vRZaD7R>0gMF<vqN-d<hp%l#eV$mG5*m_W_X1ErJ|r|@Ho zat?!Bvi%Oiu=-sWu^y}=#5DvtLcmbV>0#X2N?^m;_wnSiSDYbexJd3JW+1A?Ku|ub zC*!lB!keYLwd-5Z_}~d--f3`@&>PO@Yti2nvx>$Q@D*g~orZP@N}M<cEYfmuW25Cx za_hJW<WA#?BCYo|BedQ(>5^w6krSoxR0>b6Srcqv5WHy&J}7^TYi8?4#f&u-_sf^{ zT4)9md+TQ7ySoLS1<}XvAcQ1h=~h8z>%5uZPshWP)`;Hql@_KUty;2N+ClTP*6%vT zTS;S6ji-1$hI2M}jE%VST8G*y>Vn-Vu;K!8+F*TxTLIw|8dBk6wIw}khV#_N(1*cH zT|p3GnXp*Hte~)1c`B$_ECBw;|L&e*rcx*PR_R)gsT66rs(7VG`|+AeZ7hn)rR!?D z*HnpVo?p?duem0-N?Q_vtvFg;`avz4jh|`r<x!x|xI4Gn_&~DGx{_EX3eC>9Sw}3s zZeqCU@H_Hwy_mP$7D&-gKcC0&+Jk==P@<IEaD;#;sy8L+slQ(LMpe^sYz#lB090k% zoQllpI+*9^wUtIo@mf!)FNFQ(+?vYLw`N_tq96gB;Mq2CHcP#^8QB*qh~yCb_yQa6 z0DV!$Cd>*dLM!(#AUWDi?KD@Y`n6hEt2Y?>QAV^wZyxF`-7I?a+U3X5MI9pizc*CS z7lq|n<Mh%u{8ys_oZB=hkA-+6wBRjq^u3)?d|yUUiT&abtdFl4Hw1YFKSlRa%)bmK z0Mg(|JC^rnMS6)`{1X+a9zCoi>@(1ed_<)tk981i1H?NCHS$yphvx~5m5P2r;pHP} zopsV(GAHnn1MyG5A6{IdDyIZx3$M#xc=M?XuPki7d+Nfm(=fzU*g7^pQ>5|@ZIwb^ za7w~1jWlhQFEr~kJv66K3ZlPp_n9EaoOE%iSV^Ux=F13`OGwMDlAmh4*5+PY$j@XB zoel2sg1W^Ixu>YVSP4{rA9n}%>ur8uv>0iBSmMM!(5SIP8O^PIf2`wAOqjyhu4?gc z7vP8ip&#NlB5qAy2ZYV^CN@|wv&mw4%d)h_h2$!4*snF+31tn0vpniqh<EcowVV{o zf907r(p*1IAc7e>4#<dDknSVc`f(m(Zysq~8RyLxI4-W>Y4?Rb1BK5u6}i9{w(SUD z`d)ty`bT(0ezOXsSpoA_zO*HeD~PC`PdY;)AR)lGviOM6;Px?Cv`=}2nj0OI*kSeN zYHn{t!nev*6KoVj;xO<oV~5+QDV@aWy`eurZHY?Lo9nV_#P-sK#K~C!u}U=;r{Vg= z%IG1G5gF)st?^x%(9%|ak!mv0OqJZKwri{IC+0V(&Ej#Tf3oMl^r^79Rk_g?u;MOp zY;nEJR_;UY+tuI4-1Ynwo>nyI#YaP-{VlU9-$ne@iXU_5s=p5@mzshZ2k4{mlv`du zFGM)e^q5<WvS~|lYbbP)#FnQr$(Im<nHs~NYS%uWaU1Stz{L@AFHtTN0%&z^C48_E zFQ`f}2zuI(9x3B)%~=Xt8sj|+!X3pb29`c3CA5YLSX^9C2{|7Y*$815Tu}Ca*(w#{ zt9e!+(;CJU+LL{b3NYCcFbDGk`pG!D#Qxq5?t`Rhy&rPBWMsV`bF0VOy&rd<$+x$; z3hd|nLKw31f*K-lEazMJrX49lOO8f<jZeKA++4~xTl)f;S^y&C)MkA>Y<-q{6r^(? zs<1e!3h7#8)0?O`ejn*s)8lHzD7?IkMp#ifZU*oKxjAWItTTJ<9WC$Pr@lsw;S{1h z*vKgpuEX|3f;a=<dQvU1$wWP56&6gJA}B5vTJQX!kTlD1wOHVdP&<t&YrF^eEC2M6 z)I=sZk4dI1{;EujTRJT#rX6IA<qhe@ie<Qx+-|s%%^Z~ua#$b(X{1DO&J5;vy3}DD z#660(;6DhfG5@-EO3I5ANYRT|dlvR}H$9dvC6J5*)_M}l7rx-$EinuK;@-vIg;tdd z8{9kjGHaw#!H(9HZsx;i=gF){K8lA(V-o-3evfaN4e6e&66v>=Yh!=z<7#ziV1|?v z%=lRSeatQUv<7DMQH@wwArLxC)nkEE<ags$<x+@`De@sOl#dzmk*hwe(}jTTG^vhi zECIe%oqYd*8royJve$4k>q3#WF)9G2OTfIGAA95}Fl1&kgSWq3@_k?8yPJI9Dc^Cd zv48<;WTjY^T#rbnLK)wB6idQ;2pbz<eT^;Q4|9z-!XM?A>{rKDb?cp#-NyYI?%J{s zutS7*<!7&4<GG(QDaIoKep@~H-J~a3mNqLfboW;Sfyft_gMDO{IXJBTKIRrlugt+I z(m#MFD^q|qNaCq)hvfU`=RjFEpqhs%F4anPQtgk`cY@kz4daj|DexDo0N@`=z`T&3 zL*YWLQB0r8XmeZ3^HbN93pbR~T3*Qiq7?HZ7;-f!+G2Z?`VRY<s?MtdR3`!RN`B%Q z5e~yq%a&Hs&(58v0_2u}c^W_Q+>)`e7@tASkE@N$ykAn8=_h0?jLBNO8U5R`)u%nv z3m)lA6BtSdnqZfvmSnP^@<FGeJPu9BXJ?i!O-UjMtc)lxeJ)x**gB5yp!#K}@e|qQ zlL1h<G-$~REP^Rnk_e{x-Lr+!Wv^gosDuOv@m4#;au|!0$bW5v4huK_5aTyC2UgkJ z$2Z^R5!Y(eC)z=&;diV71^h-80Gta6D7v8<5jNptTByOWet^HucBBN4kx@=#CumGI z#1^sy?sxlAw8kerw7>Q6hMLlqG9Jv%{1F6c-})sEe{#CRpGd$g<i{Ce($HRe%O2WY zoDGwPR!=Xw7+RV$v|af!MuxVJfcXJGvP@*sh4hJc2O)i87*8007J)ac;M3}_jWhN} zCzJaG@p=d=J&^&J-&d?zAinKsIWok5yzQAQ3Of!lmwF=~unVf$tK`$zEG9$s%7uQn zFBxw3eqX1C1#@?UGd>BJH}j)_SIIsh$RS7~Qy8B**<2#?otBoWmXfckUK5G4piq7} zqcK*i!)?l%a-h!auEKkr@FN&4K+gz_`rqWf;gQYh)`zTg1@=z}m`C_2U-*>j(LxKS z#ObEI4U`Uk%3ty8VJ$`KU!Eqte0!@6j|21)PN0pGl71HFred4U6=kgJXMG+ZKdG16 zscOF|${1;XsvV~&qs;y+q&YH=vOkAepO@L6<<{qD`*XbYS#Ez$;ZwMQ84^vS2<iH0 z3+}s6X8wiGb`XP|S?<3B#CVz}j7sr@D%~;9h*mB5GughIFuR7}#a@@o7@<J%jrLF+ zd%C?Y2dV(bdoBU<e0~IZ719EOr=<@LGV}d}^bPzIZdM50BEI>QErPF~NN(I63kO@n zx4bxpZ4ezASXkje_!3T*uU|@DYPOaITQ%RX4o@jm5)XmGG1cG;Tx*nbzrzZu6+%{P zg}nGdEEeYp8%|;L;)_m7^2knW=nYvG0wa8t&)DgOSaPDn-vi(9s_d6C&n<kx6n?}X z&M2c&_^Vbx?b-Gzqh@3k3NViX8vArH3rAknDNO~g=ryDIOR?ZaXl#w=#Z*_|_!+$W zCJqO44L==_k`k(jm1WhAgDsDGf~!-_i==w`@Py2xbv8MB6jdz#M9vwXVSrmEDz_#W zXds6Rd#)A`PVi-lX~$5-;j;8vgl&SvRF)Ds1&iWpQJ*e5{^C`xmSD?K^M6PRReVC; zK~`R%m=cN7fXX|4kjfiMZ+sV7mf5Ise?)E+T;t2*MJM-t=i0ef|D4>>8$%V*L?_gG z|ACYBqM<5lct?81Cv-PDG*qz<w~oQ@pT~ez)oLI4wv&I2lRqQlRs`#KWUSOyL_Drn zqCK6#H?+y!eG-inWU(;d`S+7CAdmGTUVH=t)E(8|i4dgv#~8pJfcpcgtqGn;uN{T{ zQM|ooPT-Zs`-U0m&joJc4AL+Znvul(%4=rxQg}qF=vLbgZ?A42F2WmLqccpYZhlCB zw5-~jk|yNF|FtJ19X=*B<WJo9#$2y=(fF^x^`yq1VPr{-Zv@ol9IBv!?pkn*03b1s zf8T63@<(>Q(2)HbPu56T`$l~28<{4JyarMWiVo99$}Md}PtNv^`VYq1Q+hB|J;<rl z^-Pv)e{l5)Ox4K2)Cg}h!FL{|xm>He7+*NrZhRYM$4{Ir4uSz@3+tKj<<#D2jZGom zsm|D*DdeVXPkM0mye{GQt@icb)4u*kr2dP~RQ30&ot%WI&uy|{x8*FUKV#nNFktAi zi8hciX^MKaZ(^u4aShxRL&$ZSK+=#Bxz1_gyDZ@Fo^JD2yU5#R6F+a?#FIVSLFr{~ zY|MRBLKA(QCNiaoPndGG?w=@<CNgP)19g{8jA-A4-oA;c(!?3Xs)@c%6Is&4BBzO7 zL!^l;nmBNhCd40U5}@|L)g;YzhBWaUl`x8aP7~SE#Cc8=KZclu_hi!qY-g9FnAyIG z`R$wd^>Lc09IBc?v<0_Yd%HE~-KCw?8*FI(^n7WjJMBE(bvxqow=j~?zOm=&U3@$$ zht@buTFe}#T0E_Gn$?(ky`XBi#%b|QvV`~apvCc!|1JoD)#9VvBqc%6+eM4ZxlA)J zFHtQPI4uGO_DJdT&e!ZQo{vB^yeEei1D`j>GuyZLhMFJy<ZqABCoS%SEn(vNvtv@R zHBL~-ZuL&5)ikn&_w=OImd|VTNiO4(#`&!-THOL7%P#*Oji@U{sJK>S`N@?1{RxS8 z815pAhmmx}+aQBb<v9O-O1=a`EWF7MRkEYB0e(k#1Or(^d!Fj);Wkh8unNFaJx0Jp z;%yy)Dp)2ktUBP&w@;2*Lm82#{P2WX<XSW-RuGykp$iB5j3&>i#?_~pqJG>#2x}fA zj>ExD3L)+p#aEoL+9!#~`|#loi=>Ba`B>wBu$=T}9igvi6d2<WopA`{hHQ;UU{cIL zUpS<N6WlJOLsC1^Ar1n&*#GEes@6Ck%%z*Drd))@8Gpr68?V@S6<{eD8{Do9=tv?~ zX;QaKfn8~cIA#CFY$dyk+|xCzf>2_aTx&c=jKY{m+N&1Zs{HIAfu}V&oj>O=|G!WH zKr8|C*Zf%JUZ!<pwXs<c;efQlM5n;{XhpX0sp#>z@abzO_-OiujVZrmnX04BZwZ+9 z5N(Za|KI+NM;8NUlqg`k3NUxO378Q<C1F(}+Q0MY{>I@$jZT(^n!5!uy1x?5y?Bwx zg;DF0dsBT?EY@0)pT<pD?P>hnSD+OMjVVHWtQDa+qJg6U79F>={kggw%GK><T-{zN zBuONga(ipsITeF{g-sRHMAGPjrB=rV)?{*1@2s?s6Cx=yrWT+GQrM&y$_egaD)Ji0 z-U<KM3SWMbesFC#c^E%(pVeD#wt81t@=y3LYv!(9|8I<!eRA!Y+XGQlGxt6L^LU&V z)vx<E9^G(;q43h}jILNlcLvc)QeaKsV{2uIoumYX3YVe$=}zHnDV(jAY*jL*)v}AX zRw0h9vc$1fh-0gY6jE}R1lpkt!R`X0Q9e_Fwn1$JvM}U2r4K-tu)0oZfpWLIPI=+J z&Z1K}&r;CrE1DLzVAJ+>XeCL-B*<pn@pk12Ro0QDzWOP(vksn?*kswLWE0uwQmUX4 zms!nD#p4u4jwxYlIp4d&T4UUYq{|vCRF~@nvUFo&e8_z%h&+F_wq(P+_0l74@ymMX zam8Y&`|uAVGe9$Er`8%5GX}KZX+$)?43X7VWSQ5%n_KOFWOERaqstTR(=={EY1(JZ zjyL^NxGxcXIGg<#w1t$u$e65WT=vLP&8;H&5$;HaEZmX$Yl|znv$JjmoLhnhw``sk z?o4d8aA!-LWkTwCK#C*vR6{Km@>VS5tr+qqkk({QnC-dJ+r;*s;^5nR@D6GzO29Pv z=|Du&7&Sx`1EY7IilFVKGr3cdfum?+{(()iD@IVTN*F;A|EQs=zYZf<>7IZecbt!^ zy$DAJ79W9>h|4C`_x7wLt<3<tS_BU51~FIlT`t9)L7;k(V&eOjjQ?14`wS+!ktPX4 zmaC)AGQLpDorn^Fy(b6+ZCI+FS-BY1A~iZ|QAut!N|859yv^QfHoI$$@s}^1Y~tb* zMt@}nnW+xEZn`tbh(j49VD9Hf5LL^)0))K=t)mI<dI9V0qP}#!)$X7~yK&&6uf(w0 zL)ej)3wY<sN`9>atQB90N{#9Q0Ds%*iv&#NpjS=iVs_krTc)tq8QnLX(Ooa2o5YWB z=&5k%yMPNEIviEGTp8e43ND?mCHN1QJh0s9JIG_6scsa66tw3P{<_SfA?ijAKB2N{ zY9Y628I?^likl{$YkFu*W}#!b2f8ko-ZZh;>?vhJ?KX)k$<8K0wRNW&lTS0>R|l4M zSq58Kcxe3qy{Ic>6G^QxCZB7{Bf74-aO}CHu2-tQPm#WNt8AKGO#jbqnmD+%d<fKL z>M-+OD*3-shC9OXRTIbF4v2da(qN<OQ_j*^qyo&71k4}uW8JH0OMd(R_hHuVs?aRO zJouchO2E9DpRVTO?xmdnS0U2sD)DL(RlLoMHcc!Pa`-TK`G4R;rN(k+kHlV{Y|?)? zNe^CILigM!NqklkGf$HELrHx9Buw^fNjwCV<lgn8oTPi#LgFIhIMj&VTP-X`=mkrI zgtNIU$H<%)CGDcOdL|c=ggmQIFT2na#5woA5if;gr&V;FomSELF6sLU_DEssI&aMX zh`!s?|5KK*n*Ik=08EvDIiDX6A3jksRyGAJvc5=-Mh<dgorYz0oZa27v%gbks#B)~ z%uIgtki!yM`vA<{Lw^NAQ2swC2xPo|PiHm|Aa}Y!R{*1!>|GA)r}D8KB;BBIc^}n_ z=R}P)7>1?e`Kraz{Z3kyuEWv^OJ#cGq(ej}`e$cM(9PM3_E_gEA)S>?QwBqYhWLd1 z9790zbz9;O!kDT#HldA*<&uCoooLlnnH0GilUYz;4Q2e8gHqC@ES>(9PKw7AW?ZQ? zDB08)7zrV?NT(9)suDPwZaG{-Lu3i)As^ash9_6(yILE)(O>uT=8x|H8NRGY&_eFo z=UGduzRX(E8kS|+ApQ>(U>Qlk{0%=HxZ3mnM{%{O#+___wS}z}MZCCG%umI{4u^B= zBC!jcG@ljZMIi#&VXARQLDLO|t)8MR1Pynb3#?jLE{4aa_+Nr?R=>BmjFZlgIP{7f z%Ho|u{CIO@=ibhxC3x_p-e%RTsW?~NcFiy<XhY^ri8Xp(LG2Y?)P4oESB#fICa5^7 zd-M$0yr3{Hatf==+^k~S2~uLubZj4J*<7L_0JGUihSL5tbB!0VN+}H&N53mgcU;!L zqhb~R|KV2U407H}qL!Te^6qmGTF1ZASA@{NW;<3qu_Nbp4sHKvZ_pa5IZ!H+G1I~4 zdco(5iT=7#w?8<$&3o+Z)`60M`H1W`B9sn1|Dd26hJGB<Y%TYfgjo@HaI5f~+)f$R zy6R}??o=Enn;#0<{Dhy+qex%j1nyk?r6=$q=a{`0mPSD(O2DjBVx4wN?D7BZxWt?# zZc`Fj<sFvUKUnMLLGZl;-Mh$YMns~wo>l|(Gd~k@^RHP6KY_e_$(2x{*kVqexz0++ zla(+;_~Z6M-)sKV5s+zSlq<mw*@kq=<}zREoGqhMHfLHyDA6V5Wtl%An9ed+#IUzT zdCeMX|GKT(j}=-1)-4WxO2FL4kF`Aauum$^R;aYYU}_D22KZ_$iaIq|bE4L{y=o=O zH2CQN_P;*K4s*Y%zTIi`7sQKH)0pfWMuBscv%^)j+u^F&;i}XQr{L^tI=!pe;i{Y+ z&f;jY#LaMb^E>}KV(}NY>Mx1ox3mN5a0{q5JWB<hmpK`}7MHMtl~y3QbFtM^twA^! zvoFz~M^C;&R#At0_>!=Gfz2s_z>ipamJRD4$;S0_e!AjVKK%m-{8xp*?dbR068{?^ zxLvS0D<n}K6{#ja4?17rwskIw6kifL8@QBKEBiXN`NBuvM8JHGXf=Yb1^zwhbn;bJ zx7u4b3uEw@)5*^R^H+$3tJqP$B$zK#m(Q%AVrK+HWdwtW?h1?U{au1t&M0r1da5z; zG*dJ{yUOe%v)L0~s{;WZPP~05YB2z<6@{{;o#h-RD%%|<hQqsK)}<5UArD)1Zd9jo zdYUHfm&ZjzHosl6PAw<Xq=WxTw7-xY`%BKpo6gPh70!H&m-$#p^w$UN|KfCVl|y#d z3fcXII-$$!LWdnv;J3sqqkr3xCsH`WoY~vtGuUY|Z`orrDF33BW3cCc$(gclNm)7D zEXu7l>=2^8pXqA97?OZ+>2GBDoaDGJ+?<@%6X)o}DZM?HVV%-Xg7Tt;`shIij2x>) z9unCA_^V3ZQ^#!iZsFUUMz;2SwdU&4Uz7Nn+}pO>NRkF}4>`IT$QqBsFMW}bn9UzK z{ruN(|3CZVm!9r&M|AdtGu{6w(=88!zCH`{bf=T~PAAWhPNv5@xp-Ai5tE9(zUV*e zA^UGa-gn8ScJjWpH+`k@zN=qH2;1X>FEHz0;r963-+$>@9{|IoxRCb{3R?nG0%q11 z;iJC75$s~e{E}p9vg$Zws>~UI$hXb0{Ip-)*3$pUf3Wl?h-{$U(zg=tlf)$_NxWGS zKZ;9M{xu7F-G6>*z)W|J^QWmfhQXA{HYcj%eBObH7#BblkLS35-ww_`p~NM52NTiT zCE6hR>$Cg|oFU!j%=H~I*BLUTE~fLT$C<IIN;=kAEc&n{zI>9znUa|HFXpP=Ve|Zw ziy)|&DHg#Y2QbG4Fw@jt{YA7iEI#sAM{L6NwK#kTqpoPvWzL`~WKgGcVnD3LyZmR& z+4tbnx<Z9tN#Z*vNo*i7%57O^B>65W|93V(>)no_Nfw(}a4$YA&7Az|=PNw1&i>Vx zMlvx~q2^<zLs064pvX1z*8*SKRJT|JA36B)so={#qA^1fL+^^K>qXZ<_XaDvC;n!! zO5DY?*Zu@-IbX_kk$9aX{y-)EOJ=O~mtT6urYS%G5xJ{XyL*g)c`eajiy8Ad{qsBh zyI1;m5z%tdy@P3zfA|JIcr|Pqng$0HQ#V2Gy&qEPC9%j4pWcJXrmm*y$saLQw^L<T ziQkvR^(ygSGLLP)_|o(ETXrI~^6pRpw(`3Pm?3`jP$v%e+BNMs+(YBPQVw@I9^D0; zQ-m(sx}2Qo%s=sP<zGa@{=)A3B{#|&!5;<5QWXG_mk}^4`1x9_h)bRR#lU;DV$-F6 zXY<n)4zGU{9Db0jT_yfW63vq&E+R2{RaeDkNwH^7QtSpP*5y_?nv|}#N_A8J&mR5F zp8KV?&KvTZKR8+YD@bwLPpdI*;O6a)f>w_R-aKd7f;Ue)!J8Mso2LuGn-{^G2f^FD z2;T0QX3pm{r=BJ&Yg02`RhtIZrhUmIik-!^PkAw4Q!SJ#PMq|o_QaxNlMMz8RW(@R zy7olQt%@d$CL|NNr=Jue7o8fdF~y{uat#^1(QIR$qSq*sh*6&@ddkr%HRsXOqo+nM zHMdJlZnVUFT>_cWBJ*zqL|IuWvUgOgP~r`<wPThp;F&DO0f@c5!<jAQJ3zRjAk%}{ zKJP>ao(O5o6YQSRv8osCRW4FYvCCn;ES){m?j=Zo=0aQ;`wJ<XVg7+E77R}|7D2pr zy&OU}%B)^?y5}{21uad~*X1=?a%J3&^{%!mlZ&&CL#{%@r+SJEwU00g(#3WHVe>Hu z#O=p#UwkIFgq{g^(5l;9g?765te~YUrkI6E%_OO?xXjG16Vl8NWs~jHv4o_$T_2d> zE365w=wgB^nBXgzU`tXhqb{KGBxrV}R?``1_DI{^#Vg&Xxb}`USZUyS_HFYqp^Ekp zk_MgGscN3fwE%F@k)fyP%3R}>tx9QNqg!L{5-y-~MgMR%nD?$aXui`9nH;LrQGcmZ zH$`JfP_&(1Q~L%yOt)7dmUxKhqR$LIE?-s8uiA~-*1l3&3(*3z*a4t!D|1GShavu( zovIZDw$+BvK>j>!z+X}(+AW$MO^sUJN-m3bta(AaEg|bt=|9qM7OQ&J2)VTGq(VJ3 zDK)NxeX0|g+`6s*t@OB+#T1$8E;7Uw#5X%#WpS!E8D`jtkz#R0$|pO<N~(G>V=i)% z%wzGD-uXe1c?a2&$*m2U#N#$u@S;>K&(ubDoLc*39ci6jw3*JE6o>A76_4}GWzJXx zU!LG2;{87O@*6^l)h=lP#uXVAVn>#Y@-d7L7H-tCqAmUuy7|wSKbihZ<WE-Jl&XgJ z{1}sXL7BCQ#2&Iri%FHp$9&)d-AUUFmPUugKVPD5XS*PaoDm{VFC?y~LLY1;N1k~^ zxC0zAMBbQhSu3tgNlCJ&8T<fsOYDP+(`jwVj~W;e_FH!0Y$A)-1u<Xg4$-K^X8R9G z!R%(Wu?KUFxxUg5wfX1Lp0;GAURsq^pIx&?*>c2YOYt6G+ILcd56p1YU95*D`z=GE zc$A3cZGLVz3HQ6|&QQsxH2*0;wPc9pmBSt2ho*6#M94}JkHT1!t~P40)_QloZK>L4 z9MIc4?y12_H&$EyJeLaboXcyxx`=`6#)sH4^%(~vE4T>)(D^R^1p<h|Y8-<V$F%t` z(U3TCFV|hi<Ax}!8Fe^TjpMM=aP89QVCl&)<;%h{ehr#~bz{YDHiJ(w@8aRKT^O)M zYAQ!gqchEPX6C&H7OgBu1-G=xoaXtf#40NOj#lAw5F4m{s6ugAvAlV&z&&Agcp|28 zhwbQ&AYWb$W#kc5R)>}K*UCHEyNNPCwCYV)^&X1lZChzEX?fjM3>GFojOAS%?%3FG zl>i`NuT$(-U*k0niAxcDnhg?+u&k69>&^FwJyCz51<hFAh?iAI>n@I-9d~wLvMoAH zKv`h<A&KSv&)=*}z2jM;T2;v*tPqR+<dPPjI3LDCp^<r$M+`G3x}psLKOKA8$}NU+ z<3_K}QIJx&GJ)#7#!JAfu3sYd)m1W1&kHg!c;xVj_qVrVdG*f^PpLM}5w}qM&$SRJ zZW21)9zIg>!O=xy`((hz8fh#q(b%_CW0p}?<1(q-X)lxZ?1t>YVGmk-L5}WZ_Wgsu zP<2=SS2tS;*qra+0(F^{(Aod$udIZ^P9>VGgrZIf)2#$NgLG))IxC^G|J6}eLV2eW zZYx3Wl+eRU7~d)3<Nr}3@9cl|O)FtarxGnz!qiR)zqb-*bV~TXmC%L%RX-^=B_Ul> z(834HKen&=66GKJuS<ug@Jiwv7Is5^z#e?<Ub#jP1Jd;l)g{u%nXS_Aevwur<0w{p zGKM?;x1IX0?YjQG%kBCf=(_$n&)D_fMS8pX)pO92O>uwU&6lTRb+Sh$5djuQ3iip5 zx$4lk>z0=J+&zKJfUf;{Ep~{{zhm7&&fmprjm)&m({b0056q*{G33szy<Yi^zm3I( z+FR**?8yoBU!2}6Ez`(!N$xN{W!Bf>Lg=dWQ3t4IR%V8lg1{oP*=4L;Za4F>9{%wB zJGQ81HW)4plFvK#G&US9e_I%6_m*y|HSyS5UA(~?Jc9EtvF@5YI_QHpc<du>!7C(G zhp=H^x=~xOg^w}VfbEy2F<RGJ!jt;BTraz}67uy+b-iiFrN!gY<8c}BxNh;d%y?W@ zJT5yP*F7HBBOaF%kLwwa>lKgFTrV2~T&s**(!If!1J%ZQMu*3p5;hPSK;x}|vswCX ziuqL>s5xNN7W@?|Z!Y1-^PGT6tk^FVa7L@_`D`9QIpa-l`&pztBitcwt#NsJb!eef zqrmokYQ-IF?TgjM<^+(v!Q;SpB>kukT?2eKX$!=0puo3(5`6o|;oCnB-~Ms<_K(B2 ze;mI3<M8bthj0HleEY}Y+dmH9{&D#BkHfcr9KQYI@a=EGcdLxg*vyc$`4<CPbFU20 z*eHW-_yu9XEba1eVyt2hy}ER*e}s&#SDI#6_(MIoJ8<D<w{EAgzANnAXlUk}pUJ-7 z(|wr`fHk_YMK{*R@_wOqVO+?fFO#=*l%zo={tWMf6RF@TVl!4+v8u#M_RIfLX`z`? zV!29tBbN7oU1BA%J^x_EI&I8TCG7df&#>C0dx?u=CMqR1@R9!>o)TaG*Rs8P47T6n zD^k$^vVCUsS`B@H<?x^)zd{@-*sRDQxC4nFiTc$r-5AWn?Bj0;8&ZMP6E_4!8J}67 z@B~{SaFbUh*Q&puxQ(RxE><xKh}SH#_|FNj9G~fHF3%N`gk`<@VV>Y#4Og`LqveU* z%3ghQI`-^xW*G%Kiu{E&#w0!63zLNrizREsu?4O$TXFVB3?|>$s0USs9&qtc{~bNN zyU>g8!>qdJ6=1|u*U+EsiK)`j-^+sy_>al$Hh}W>{PAp?D{$OMLOQj^m2_F$V09Ds zhT=E?w*wFUFOhmE-K)D=ylI)*l6+Xgsi~C<r+`Xx3wfT9k`DE3@it$DM_jkd+gx8{ z^}D{P29Hp+)uG$-)&8T;YZLfs3#vGui(e#ZMK3*~J@^I@I3)xabG0QybQ+kZr$Xw0 z$H@9Z|LJ7RZz>qpuIk_km;X=Ey!iOrek$XyFN$s|IV642gKeqWd^uKojf38eCg1S; ziy2JGCi5<$)nP&pRl4zC%qbA`eVG>-5*{Y8U<D@Rh`s1ZE4G}lXQXUiVnj~-hEWL@ z8<>UQFCdaiNSi8AGgKNc`ap8OTaV>s%5Ddvo+~Qfh06ZlI!Yy2uj^P|7Wbz${<U4o z->e0*^Z+ZLe{&fLPA{`r5ha_%1wya|E^Vdn%=Mgi^x_k`>lLgp9I4ShYH5#epJ;P( zO8L1Kw@Ons)Mzs{UHLITr+*?pHQMc)YP2nVOG(4W&y01FwocO4N!mKns<AGyhLgnV zBYNqvx@Q!9chd{g$4@5)bqf}!R$%(b@i00Iex3EFHGD>HpTR1_0EID8NW<Vu$%+mt zplyxi{U;gah~zb{i#v{GRlpo#HS-9$>?y}R*nG%^xrZp9vEFy)N<B2B7u`Eh5|hC% z!Yh!Bce;#s`df@^E92TG<Ju<U+Qzu1b^(UXI5rY6OyAfgn5K3Co%Iw^(BZMx>H`9u zAkgt&Qhulv)4vlT(0Zt>xA*Xy`r)^9*Fiaq;a^8vjGyxK-c6ZJ1-*eRw*FVjrdhX7 z&{t5|Yg`EwW(gD+BZHJf;_Rg7SS!va+NN*)T5S0KH*vbLieuLIHVb_#A3$)56_mqQ zl?t|-o3~b2wDC6Gz|r3Hj8w9Sd#5ZW=ldg)Cnt+m)WpaH*{8+ZKuT|DZoZnAl0y;y zk7OlYUSyi;aY){$m&l@FW^b~HXcAH!T&&1y(lFjtG4x*^Q{+aD$TbvxTn@}seq7?- z=9Is`&ilhXe@NON#(Rvl$~C;da^dyqRU=l`URYJKF0m%W+5A}c$Mjy6xIf#`1CGxV zSc(6l>(wSnfthbdGnz9gv|JXR^3ryA%bBg4BSvOb(MriEhradE^cr|m{I}s02(sCt zXRp11{*S8Lr0%GH%lMa{!K_4Xd`zVNj{lW-|7KP$yo&yXYcG5zzp`i@oRFfI;$OW| z`q$6tT$s*XMdwz!0^uVRaQcTk^6;TIjaEF_<4JCZ^e!wprFWZ7*1I=0s^0aF_wI#9 zrFRMV;2v>P(iXBPDXjW8UJs5=@#laeA73mpeB_2z&^i1E%Mj(fE9Z^o0X~@~%W)-S z&p&vD?2NYC;cvZYAzptF&u7dKeEXf$WgSMSZmD7jl8Y?o@FfkDr%*X>Dyh8r`dp5( z5qJPn68*<r5f*iEbB3Hqxhml~`&6kN%*ra+6w7;lnN)>ypax2&q;wqLKO;XlLRE5> z{#^M%E%+~)zNGv>U;60_Yd+}z$B*a00s-HWmUcbv^sO&_WXtZNQ+;RGbe+Eo{;K3Z zlh#ic>AjQFmk$GImhZ-aM}9jznZKC#K@n6Q;hQg%-mhdo=gnyTB4ev~A+k0o<F(+C zGqvC|)Zi;!qcyxqz>C+I&{ZzTV#Bt3H~C7#{xN*R2VCw7?ig*n6WlW(aQxj_Ws<_h z)MAKc7?)(bMu&HFtIXaIIDTN}NJ)c3I#rT_yGKWH4vKMCr)>R87%<I_n0{6>tBjO* z(c0CRnI!23l1jFb65Nv+-qVNl>`3<3Q7I|CG3#DNVzdOD!i$o>cwDHgSIPe8Q_cbH zWIkA_=VJ-5XZ=uJ`^~CaxF8JmmYQ|@JgsA0DR@t7LZEj5ca{R1Bq|=7xFT@;H0=kg zT6Sk-tqL5!t?pGl<caB}5&vqR>s4W<JWHjO1Zvyu6%5sb$9vZI_G-V`THC{FFH*NJ z`u$MFiZW_!Y1xsHwYBV9TI0R+oJtV@;uL!tAKv1Ps!nb3g!5B53iqr(gI;f_J;fX9 zTde#ZO7DZm+UnjhW!RxHi5fSQ`L)JDQb{PCye(;JU+<@yxHiKZ8ct+u22+1Nyh+B3 z(sj(2Pi#}2m1f?d8FAJMA(PPwt41@gvrmTZT!FEeq^|pWn=i@%r+s$pGX9=eYMmMj zRUIx%ow=Q2J^fqxy;N&#CQU?sXX&LIXW{5=#EQA6pmp--1*|{g)mYvx&=?hy#zS?c zei*O7Ya$2494I1J1WK?dS4fM-8U)<F(%alc{$Ul&?Vz%={e!$X0WBL+7xD6<pH6+| z@?WHn#HU&9DHVbH2gO#*J;%&N2~lR;WoAn^<c0wlapu~gHGYb+TXo}m{_|A5v)mPd zvOz264xn#?=o>fEa=8Q-`6^D2V|gQ0H|y|@!yfo*q-?0Hk=06Ku?GIq^SrPH-eTn3 z8}!3l$AyNU3p8W$eh+IAxIXPEjE3;=4RW1>Q`}ym>4$+(>dd{^ZSU#d!S8VFWs>L( zRUB72MH6LQD4m*G+C;Po;}z|vhlY2Ts#Sf#HlTl{s&IH#Xbu&|QfIzX9%$?7e}mtP zwZ;+>IWbT~+%FYa)qf`aTOqh0^Z=2zws=~v6L?GSS>G3w_^1}vP4%{JuPGw`P*oh^ z%CjORKmciX*>|)?xz3@xCscP^<)irJr2+}Pc&)`;9b2xNv5IJm?*+eOJ?qb=mA2Y5 z)La<vS`1g1X+BPBTHRLjK54Wb^lLk<T>C+5dCT66@~k$yVPb3H<fOIWaRw!h<Gi8! z91vOS6GlN>d<W>vnDSYZk=i~oCQjTjJ+`K9x0x?Z)OBd$LmM76!9xAJ3?zv7y&+1d zy7*;Z@!IyoDgB3|an-$P{)y6`H=1wbjEgMZ!`nPcuI72pnwn?{l$CirTv(p<QMvZR zHBi(29<3^}oZOseE4NrfS_Lw+xXK%1b*EOdtFsdCB?d6JFz}<b%SvL=EjT(HSyxCh z-k6vmJho}Uvj_xAS7;B5`k{F?KVlb0*`Ji3#uguK`LxQna4`7u<=JA(Q8^dX4Lo@p z+oY}2J%I;OM%ML}?R-5vjInPS8pHUHfQ?iKt8+L``dm?tVX{LB?YRq>GAXAjk_R3{ zYI}L1Z{E^(>UNrkLC{duj<TC)-KWd(TURIRK8l?c*VuhSmK#})Zs~3u*5iF!atYy* zv$<|W^l&5{VaD;b@Y{IKZQ?$qp=I_rJ681aLrE2h3HHLKoMB>)9AB9?lnu}pY^AsO z(xIvrs?u*wpQpRl#&+Ovv9Qqm3yE^Flp(3Y#@d!hx11JQn-SPKI<PL#<a6J%jKK&< z<k&eQ@+KrBxJTpUdW-7Yv<z{-Hv6o^IJL(A1}WoXEuxF2xD#|*G9vLt$^&~wmj_-6 zh-t<S?c75<=6^x%q^o7o9QkurG(-Mec8F<k)s-ZgtV@9Qx#lE@ls65rp<&*lC}$UQ z(Ue@E^IV7*-a<jALVHT4u8}Djk|m>_(s4dUCRdhdJ$gr%eeIc?o2ExU?V=&4$A3Bz zi~Vyj8+9HN1-UN_?(D?`EpJslWl8Oy-8HZtTG%zPF8HULUO9y6IxbSa=HYI6(Z(tK ze)o)6-qEMnA-PtZk>W2E%QiFQNq#^O4s(f%<S!=vu#_ln>x$J2#;4p*sAS6wl34}n zh}9?tqwaG_Tb9mGWW_+0uv#VD?=D}4B1=l-j}prcIbP>Q&jwWywTi917Cu(U^0iM2 zmvAkh_U84{0=r=7qB-%pPy|njOir%r05LKERo4za$bYTfsa$GMY-{9PRiwdPsOm&? zBlq)?EF@>5=#)r3f=`%=NtoO&mo87yjjBQkOeIic526YhAtjBfd}WB1>O^8;!>U2K zdQjC#-7;SJm@0L*NH%E|LFE5D2i*g_!+gbXAGp+$DanV9{qQBx8Boo0`0+^>nGV6$ zsgi$&Krui?y77>^N&U5EE$;f7oJyps>CI(swdiAcqkalAM71-dPpWjYT^c*zi>QV3 zKI5}IViO)FcgBb&3au++<L(hsT5Rx+EywvX9fRW`&%~;xnkl@I%=kO65JDM4i){wS z?=F(V*UgU$50*T|@BL0<@PUd}0jH$yKH(C~_mBWke1Iy>1^5=>+uy`bw<;gKOo<9C zA4HLJKY>3_lNfXaCi5XU*uoGZx$zWYWJ)4!AIJ0ViyY)b#0<u_Ep37TIg-ya!4GsV z&fA+avX)xHz+8J@LU(ekE|bV9^ycw_ITL|>fm>^s%oe2fqW&2oxS8fI@-<I$XTezw zmfYpYgSWvha0n@ZVT+zF=h;f*6S>MCCOeal8~1Xp;d$1M*Z3P-uFKiQ2G+l;t8J`^ zE~>5UHRbJ9S(u`<_MoVk`bN6l+JXrz3~s-p1=e{y5bj2UUPMhaRgL4=hNDsk^Oc2| zL43Yu_*SbeES2qRMpeTmt?>nNc#Q3y@ZN5o>{d_UXzy7|q(r`6d_efS`o7B;D$7fx zHSafC6spkJ8jf@iM^lxqR8x9M)1(qtWs|>z2tTwr*vcdk00QQBIW}1Sc>~8rS*`%J z#Vhp{DHo@tFc2Byn%X?Nkks!+okA#(1doi;8mE!V)3y>1o12!3nk_uahUjbJzuMRy zJ)L8hu^ksLjdw8-$p@%%u}V46e;U7MOE>Wr@;cC#NibeBXUhoyiEe5Y>`8NhTQA+J zGSv=O4}jTHQbX5nuvn+yvF<a^2)<GnT>Z=7>h2ilfqNShp&+g_JRHJ|_w~}3wFl3z zPXk%9AB84wP;6K5c=ws7cPgujO3A34M&5(IS4m(SftKCrDQ^jYLZhBorFM)FvSajp z+QoGFy^OTs6@XyQVJr%uB1>)$O>O>@5~qMC*0nnV&wPkT;1J&3EjubRUf<tip^iXw zrZ`6yh&H^yfXsfhb5eYGD`?{b-mgIjPx!+)MhG^zK#NWou?eJ*cDk3e$h0k%tAXH4 zY4nF%4mAhnHrcs^s}v7kYH@M>ppKccCOEaBlo737B$-)p!_U;yV6jBmL6mha`xzSv z2wdnZ-r;i{k=0ljI6e^bft0N_J`EfP9b^d~hm-OlKW?~_Rz$r<7(S_zwNd~RPMHPb z3KD+z9W7`%@j2lu-ZSeN-^el+-+mzh<Y%RX5d&yJId-dcf-sb>L|&LL(4l$ro21k% z@`kQY<?yDk?XB7iowg>FriQ+|;W=7L!F>+cvc535@|VGt-Ji2CZDYwgZnCu>gpJpw zyAR6RP)JHYCtT_Z-MB$Xhy~LM;$@dxWw(?ZqO2TujLm4ejBQ+p%%zmoU3ZGb63Vis zyOCU{ui#&K$~)4xTsS5GLjUC?py0?7O{?biiy@feh(>Sbh70k|0%5Va=@A-Oq%}Us zP)hbQ$)-#olVwxF{pL=AXX)E;!csthr;7NBcPk*iIkRtcP|3QI7CD(aakY5~puQEk zeVz?ep)^@O*WSeBqc!9C36t;Q0;XiYvWn?hAr!+0ubdk_%|>z~Du^cX_)?~^VJKaa zQ6h=|%qEh9TH-|VPDLcYM;_xHku9xO6!Nc9AWk9sC<=)xMPz;8bLb;%b?4Qv&WJ*? z6_H$|mh()S>O>#4`CgfHwW7tpm%XB^w8}Tk^A$S4=5aSKI%2QQx=VJMtU%c*D->|& z-of^I;7kBx9E|0yd5kNSyQo9qlAIz{?lFP;N4u>2+QV|gK$#a*8N??a>#`w-q~wLt zy0M+h&Qn$8(NgtC)lrAf=r?rZ1UuPEJ-nlczw3~g7wXyJO0IFUk$TA{@^_4Vm!<n} z^fXl=GP^d_(^{1Ro>@0Q{#&K0T$^>7zX;FWS3m6%YV;(;F^bvp3bgwyL{p7wjk37L zg@&+OaNs-qhS&A3LR##)D&vjHWdM_VS7EjBK#?>CNr@nV){{hZiWW8KG+};6;2FyM zeW9>35TxPmSl;?(`Z1E&M^r3$FR_1-SbU-7JxQ#(0O<qI68#1-KebDXFYyyU7q%y% zY-`_q%n@tquq20Wuvn6ECZf}Q_&mJ1#P7o`eXMvM$4T~N^58$aQ1sn$(aW;#X>N)Q ztRx{>Ur6bvUF(qx>^5DlX1OiDrn>nY<|^G6Dl11U8ai)H{r*_Am*OYzO+5_%*Z%Xl zb}mqCWsbMGtU%3;C-%C;sz%@NHs4=hwMuk!tyi=#soO0TBU&n#o}J=tzDzOYaj3@z z{^t9l3N*<xS!vVR_v_L@k?aTNdXUJ9RRB0M?id)_^g>_r?M2?w548C$65m{f{9jgX z=}X!IIp$V3KLB?XOV=K36~qpm@yDC9c~4>M8>oT{$mTP4=*5Wmh7YY+=o>YXb(LFt z0e7wRxgfzpEE<v1&yN5W8D{B*I@Z8SScTvbm;Vy;GAgNAq%A&5WNfpFJWFY3t36-7 zwZ_vVPy72UJSqu}f{MP<6WV;WU%&@uX$!t(A>H@-bCbk|OAopIoL~szctcfXGRoX& zesXn{LP!C`5|#T4j|TyEr|}Gm-eb#~)p+vK9|fUgpuM6K;{&Q=zfJUChlmy**XAp+ zvo(af8G<)dh6@0Qt<N|X%gg!E@D$jZMsd@_T%~wjt$Oh)hMy8Wz1sK=ej*<zmr3OR z<gB_g^wL#z`D_*<LpR=Hf#%0?WAZB2t;c0m5Z!LiXOcefybmHW;mG=o!yF+Z2QgwV z*YsJ$5-kT{KnS+r<y_*0k5KW$<ZA>|m7*_|TT1yaS<7pP*IlZT@hTbGl@+-G3IUpE z4QJpDj#H}Fa&3vGV2f@{a?kb;7QodN<0jUdQrDk9y0y8eL%7x`(i^>WrPlZifsz(z z1=`Be-gu#nS&^e~K3E9~4gB8H?#%CN{yc55zbCU1c8v*?os&`*HE*D#@}({6392ub zOTc)_9gx2NbA$FSA4wtkFRI8V8T4(69b?c%qJJfZDbcf)F0)>&@s^xyyqAax9vSaY z0xX}#ZFOgw+oYfE$L(@Bz7^6HSJb=IIUXc%evux!4-bvCvGRsP_ulI*J>lm-b05B` z?`(s|Z+W0ZqDqK5p)J1RMBr%41A`@IFfpGY^St6SPjF|ZC%m&;w13Hd^qHdrxp0aW z0&c>+gFCfo4txq9!JVTkv)7R^xMy_sEA0Bgy`!@~oX6X(-YNbwMLA<ZwFX0Q5YBL| z7W5F-jpMYXHQoTKmuy2!Jb?AdsleZlO|abrzHk0ShA-Uh!xCuj`PV<nk(0x|C^c{^ zFQNxQvH$2Lv+|UE(0^PV)qTbbZdIO_XirdF{^__T{)75!I}zb~seF^Cg}?Go@~oA= z#EDo!FxqGQ#l4lkHTJ7ES4tGlq0&9u_LRa!R)plFMW`3A6mBcuRLg*MK2`GLG$m&i z`+Pd87_2ycVe9zivW3x1$SUO5mzB$JI?5%MP<5)h-{+|Q1T93;j;U4UYqkg1Y!9~C z8a(!cdeZgAO<IE}#h?r4MODcNv;Iofd7pPM1^jrxr7f;Q0(xlnH{e5zPs~5c_?-J+ zE+YM7wZ)SW;IB^Q^3XUO+&2KJ{JXQteWk1YV?dH?LCn?Go#Srq95<7yE*)3<M@h|+ z2r@)3k{iU;@$&U8;eFk*k4G<4caEz$SJ_3mbljIi!a$*FtAqP8!~6Qksq1+5C-aUg zbUHT)zk|mM>(ApHto`Pb+JW3a>Mk@&O}eHvo+<l-u`${!k-cUSX9?F@y?FgUx#sny z+;*nO|IZ<GGcYY7auz|veym-u<y+e!bTfFBAcU^WTKEGMp;HeCln#{EC|97>rH8df z@w{%+YiN6Q<NmsH%`}b<oZmapfD>3%@EWa<RB~wz+aa|jNg7U^pO_?`Hu#WQF3w>R zIh2I*uKu6yDS@)yDaiSsqC_%$1UaV)ks2#HSraWb2hq&_IDfMm{^kS!AYbXU!MSw@ zkeN|EVs-WC<4U+Eq*QO2*HW!o&&sXu<$NjfEBm`AaM@XP*ZGVidN7juJP<{iQL$C| zzX+Z!R9UDo`GE8!wjjRpC6jVv*D!<(<^}vz7a#Ve!T!py8?%{da~I^W+I3itS}!{2 zE$2t>B%vobTyAK&_kM5btNzO*u8p_}?zX_OmIp49$crRWxNyJw1PH9?;H&<@68jmk z_q#t+nAk0PhKSk@M$ZoJ8URfMMGr<bbQw9CW0m!wP`x(9LR`RSe;nS`jXV164WNx8 zf=3{N&t^dcTae$Z)`Gty>^1&I^VWXP0q%-W`Z-jSm=PYQXbqbL8lkIQ+Ts#fr#--G z^HJgiA4*rsJ=4`pZ8()y<LhhINQ(MLYKysd=GuSHXnK?VzFM0XOUk8Grczj%7mChY zI9{}#71%BM4Y`5~$4k|&mt}d(*b*&}E6}jLFsbxd_Q%GSdAtE*kb{kngS!Irjs>K5 z4WpTtU|Tk(Jtfe(BiMEePl;r*E<y{6J729~2my5z=iCs>s}VVbET0>p<6Jf)pYR#L zn0w!!!`M|Dd(EERZ0#<kkAIO<;BBFH@B}EeBx8*yFvqn*`~HWddP6t6zz={Ng(bcX z#s*Z+8q=CyI8uEgP{IB@@f?PHrN`@T(;ZU#lTX#UwhBq_ehj<GlJkwc&7E7fRPpwT z74aE+BggOIG4wCv^wVmjslaM7-iGjk?6Z&Sp*vlW&<m@W)(M_q+a%n2%Nhx`ouxGl zqZyC2g<=f>un|31Tkun0Yc-vaN1*JuHxi)f#K^`r4KIuu!ZbHLEwiz>0vuVD3P$S2 zJ804dcMkAC$F&E4FZD^bc|vw<a&BpmWN#qL0d2lq1FJ0JH#{keIgsxJvVxB+S9&d? zvIEj}FdV<<e248@xpYrp?`Tip)c~?CcgFJ+SG*oiz;+-`gukaH^L~CrN99CPHx~$- z0DqCa)?>6PNHxk+tLG<CgMgCz_$n62wJ8moX5S36Wvo^==2T)vs7}EVeYD^j)tQ`} z9ZmF9iQu}qN9P3i%1G{7H+g;AzH1waFn6lvj%W=zRH`kmvi3zZaW(?az%jrnuf-Is zgq$aBfTA^XAaD$5p5^3_E0$zv=J74$<%Hz5Kp$*mkl~#<NyB~@YHFqnG$MU+4#bC% z;|!zSpt>awDpN$~$%C@QM1nk=9wOz_ZT#`2-6kH%)O{)MLXZ)i@gNH`ZIYY@`0*NV zTL`Q*j+D-95)NGED-MMP$5gkOt?2b?M6i+Jol0|PEhBSgu&<OZC94opHEIQ+;C5%w z(NjB@w#aF};E}oYBaC+1UX?&z)}+?hNRQgD%UkcZ2WQ?vnuDfBc$DC1?RjCdTVP!a zm&NH07(3x+a1XswmMG|fE2XwHY~}>k?T|9iNy<C-%^7wTopC7mYpRHj4V!%e>kc>t za}ovH*W(~&r)krIH&Ty7a%Acn@8XKOoJe6Mve-oi`HZ8AUzGjhHJSB)i~XbMi|rrL zZ;HZDwJ=Y)_U^$`%OZqrYWH}TD;@}db?24fP9_FPH%u=c-L?4|q=!&pZ4uXTPq6UR z8C>a83%ys!qa+F!Jb(zVktihr+pz=J={t}c>f!e@lw6<@Tb=I-fO!%U+}nok6#BH4 z+VqSwad9Vso<$PSrjHuNUwHh!J@}c_1Ll6ZuLq3&^vWK?NZwWB(LUQjAS!_fflmp% zb+AVBe_Eq$J50nLiP%ZR9wPSDXwi@PzneqCaH^bpTaR4wY?RVya8KVV0kpeS#j4aU ztJL((QVojS{>?<ZK^0UP-JoiabH{`p+~0@GId<US*9V=6cCRk})ch8#X34rkD_#B? z`kXF<@TnH1v4O)2WsINwFX1=&`?hLVn||I975^3;_S5|Ii>&W$dkNF}Td&)_*g_8& zdvqi1yJavFdhi%&wbsxKWIcyg=ldtYVCunLM>sg0OW`v<8K8hV@VNE&yfhkO|3Q^M zJ&kk}(m#8dzYKFbo$~YdT^fth*)4t3;DfW^oa%Ti^m<)Zv{-jVU}=1={m7?Wq46sM z$I!N0*|IAmYh_b!J>)@>&viwlZl{nxDC0Dd)^HK4UWAJjph!4}VS++a^-@3D0FC{) zJ&jYKiIKi{us}~>tJOwVL{;}bVxwz0w{W1VJaphSbMs%^0S2w4LB9*w7#oXYY^<<W zvoY3J95q+-07CK7T_dJT5W6E{Hubj=^I-{S)AN4JU;DiAiH8RQIr3YXlPiC2%PEvU zlX8ZU(-fQ%)I1=80|ZV8E*%BHC%~m+M0_X_CJ`SJ@jehIF&d$Yxn)xA+-W(v<a$ZU zw-9()0!-HQh*OU0rQGzeM1-k`|Jznl$p`#jWmO?vnp-J)LJpo*3Z8PiU>&waRM2RC z2)X_Z)@d!Q{WfK$r>mj)R3GvJXQ<(`Mn2;u#Al$$^nv$VaZzxS_Wb;ve#UGSw@u=} zVZq~VyJb-P-zgm#q6T(b4j7BpuCQmGLu(Yq9!tX543AZHPp|bi?`r-oqWqkKbXuWC zwfbpwyMT|s?+W;Y8f+QDn@bC0xz~OJjJ?Fc*b~Xz7yI8oz+Z)ZigP}W99a>|Ukf3W z%eU3s#_)<<?f2)+5lKFeGLD0Idj*L&XxC<fc(WBoZPkNaBV3o1@Dz+%DoWU20wCNu z>aWOqgo^Z(-^!js5O3=V1)4so=l>1aw7K_7opY!4{J-Iv)IfjcR`yK7v~hxI+(`;0 zoT55TQw&0y$~*7$&L~xE#kE7Jfhz7KC?(BG_iyXTOR!ZOH^8VvtMV}%AtK&gN4%k& zel(VG;55}(&m-2~yc8;h{!Pjd7@r)Uv@O#zM2?^+;A?v6X2B<)3juQ2>)QT>@yS<u z0D6dIK?$^G<1V;dl#4JdRX&WTOyba%|HzQ1!ZhMK(3n_czVm^wEu%7jtzKDd?H0FF zc!r-#pc;}s_?1d}F_Dx?lGY=ExSQC;?QdmZVP*0+Wc69~%~jkZ)M0Pq;B^}e5%)^7 zlL~X-Y*d+rQBb1fS20~4%~uv)w0I<M=xhZV@=T1p&!^l$%^WRvQ0hIz$?OUIn9Hut z_5^yXHoLMXu;hF4kVqLW;IX9`OIT#r&s*yE3pcEPIxTQ4yPj)HY${;#;2;mVdD^`R zJ+6R&^wz#V(p?|Nb~UW?-(pqpbgK3DQ20dMejZfvmXfDarL(g9W4+DY<oRH5EQ*#T zfupIluXv4jz2T3#lPy)Qqa>@P(BhgknB0|3Wy6{#4RcA6)Th&}iX8w)(r%RpPP1~O zzgOCpa<hBj+ji8-1X8K-d_nsYOPdsl`uz7J7cR6ieaZJD@?Mr#I=)cBC5rbG1!Dy1 z=UC!iWZT?PCVF3kymSty%w8C1Hy)8)nybFi#PJ~GI+uuFUJmXa5IFkotWrrS)fRJi zv?eZn2^>8zbGRgoNF+o{<b?CCQ?Pywvd(B95w^dpWG|Gd{abi<PWD@fGS5`;!QGkR z-F+mLxNLJC3QLGyuCwIl#xcG4W1nk%@MvNE#l|`jx7QB!%8Q>iTIRq8`C?eypMOaI zMeu`4Ke_|!NUb~Dd{f46Y><zB%8pverfOrYm5l0@q%L!yBj*cm=n4_9Sr-iV>D<0t zN|Z>~ZfXl0Z+YNCiMo&|k*(c{XpKvU!4ijP?TXLPPpajLVJ}w<d*zB@n;0P&2ne}i zK>Bo)D~3JliUEn!QDj(^*?*U-h25jGqku_-ZQJcD1~*p>_5HAGqW$J$^q7s8X+vwg zS!i{(xA;i4i+46FeXg~>;`Jcz<oNw?$N5LXEc5T^S&6{BmC+~UIic&A|I5l7Vzc|g zSecKLKN&xKrEiHm?mFZGtx6tuoY9mAV(-r48P0Z*$8kH_8pjAy4$Qn*Qjo_vDI$;a z8QTq~DDpUP0(l&fwmdF&0C}83iZ_tQNkTGGypjFUJajlfimP=L5sKFfKEwncj#~Ht z=>R2YR%;v_$A?`EMeu>~TKKRXe0W9RA^5Nzd}vWQ9DLZ0|0YRY=0MBBhx-H{u81|P zyBBn56Lh$*9XhlLI^5SD9ohsP?&}I24kw|*;be3;+!-Bqj?RA5UJR!S`VUa(zn*tB z+;Nt+X^poq)+8M879X(iA_}8rzjuQc=&rVsP0@j(<c6FAQA}_jh_}XqsKws}W4zOn zrviHE0j*(y1cX^?<*MyouG(VvZYRP2q8_@Z4e6ezjTe_K4-ApG^N2e^oc9DuF)a_A zBXNU>liRkdSqi&Y3cI?YcN5$(AUYq+qYu$<a0{nJdva4EJ>sgZDtn_`%8`lSTJw6w zCAvVy`c*<-Q3e?AHMXe7?C2d`jvD4IQ1Y!@$<G{wHUf9F@2U;)<5*rLyQ|N|b|O;K zpqM*R&*WE$^v4i2mdLr2g^H6LeM#iaz{fIg(^qfiZ6aC<J=7i$8<>4JdKVq#F`||* zjGMmreT!`JA919vsnH_?M!Xjbj&Rj=6K;g7dXoOvPD&>U(iDMJ5%vm>hC9B(8eN+c z7OAyvWbqF2cB--N|0<NeZ6SsW^7S<pMN9}itr#W@NtV_-O{B1JAr-lJsL@?1trg=) zhKGG=7*<J~&EL8&dN=aZOOo_m8E<)0y`DrbEC4gC@zyr%Yd%MW5$F4w@5|+q!(Wm( z;r*DM-roNU6S2MT6CNZEkZ7S|1=Nd7IZtx3+^Y_Mf1D{iI7-fy3vbmc7vASBUwG#@ ze6{C`T5}<?T%PBn+sZUWX2F!pSQ)U-U5?iAl_Ny;xCnD&qKB-slJilO9;;V1usnY_ z7TbV8M1coQN%D3>IT@{=AC4Voy{H~<Bf{had|V=Pg7LZc;$--A*1vI0OVYnd=o^d| zeH3qSPJW92USIRvEYX}97@C0QOuqyHU4-Oa`*DjWYjxcOW{5A3_ULLoxEXziD^bsK zrObYZXI*+Iz1&ii5p6raYpdX4j^6yh28D~B*#BaW>wrZ5naGF}8U2;F89QZTUC#{@ z1UbA@N4p}}+S^~~ZJv{*7q3~CEAjR+P#QLqV*^X>WER`SB_VlYeEPf()Gaf(-aJ%q z-0#0dM<Q*tq%I~7@6-Y}TZb)Q=&s&eZ&bTJ(&k^GqCN$6M7U7yzkIoLLW!QPpJ(wl zrK(>FO<1?QCsr5~%Ug0=VgYbdCK78w`z&)8_^?!}5$zAwF1I3EdHj)v@MN{h1hGI0 zrfXwfk!NS1oM@79pI#_vsg{pdRI`<-qYu^9-sv+0mv>lt7i5~K>OmVgSE8oqE;%Y! zu^!)8dw3(`qt4shBfQqa12cW0i)K8NMHSQBsEvQ11SvJBR`yR!zU&{o@jP=a6{bfo zRs0OEk+k63w8b&luHHNEr4;1GXoTn11dqo2Z!ZNgW5qOUyn1FUBjGsxLRg-h3!)T& zD7(`|ESm2P4JqI@dV?&RsaTEk#E{sn&X;?h04)&XGyYDb&$U~Yhb|;Dd?a0e?#chM z{$V=_A{*8ZZv>Fu`1L(6Bz*4K@*1RxYFJDYG+A+2G8O4SIwuLhMTLlo)ns^$4;i`E zm`k_K(}i}E$T|k{5*nd5mn)za$`?Oih0refDk5NM=m}M0Qt?Jhn@Rcx3QJ;n)6_x7 zrfpLr*CO+_9sw}+@sS!nWhwvn1+tVAGf<=Km&Nk-ew)c&lLi(cH@*Vw5qmJ#(5bb_ zx^XgJNlQV^SJHY=_6E5izC>+5XyMKmQ;>Qw+QXuc`Tv-E7x<{FGyi{v1PC|36D1WZ z>ZArsEY?h`ZBWq}oXCuwNURsIwHigKZiPf3h;EfYusX)<(yhDeZta$~?zU_9w`;q# zwbs%EX1K{+ZYq%gUM2>eASzeM|NS}VJCjMch`adz{dkf2e$V-y%X6OdoacGYbDncf zq;Y&ftPz`86=maM6l<*Z#TsYP-n)jGjRd&KHXJN;8erJ;jkbWY?^j}p^@ye^@W#eb z?9+k43v*0lF89=(D)&aFp6|(Zs4Vqg2#;vvP!5#oJ9O?vp2lE)VEMm$7;nxK(Esv2 z@^t89y|tV$F}QD?gZqBnMed-0W<)Er`>n2`X}2*&{mRk4EJN^Nd$I$mN1iX=1s(y@ zSmk5rX<vn5hZ-*T)|E%%M8n++EYB%@bp|fGm$A0W`G~o>Op6R@9!PD=7uvorDsVFc znZd_{@LYIQc@814&i|LaUj=hGci~a_YorNMr>W@gh%_w5n1M>@>0Am>@}`UX{KG)c z3tD#X8u6#<+!M#<M{qP#k4^yVOS?w=q{mnEgC6}q@ma5#RLw9w_+g~c`lz7q<JQ2J z(2K0Scw$b)TSy)(Q15YKSYFioQ541Wkt@hl8D~<8ebaCmyv(7Kd~AC&&Wtn-Z6zyg zGA)dqf+mnD-FO`QAHG#KUDXx(t(UnD`+adWe^}|+OCODQusfDTW%du}I!oC3)94Rp zL{VUw4$AGOrL7<`07YR@SKXVDy_;j+y_ssFtX4KWLy^&V_+w6bQA<z)W1O2gdN(^9 z7S%o0QOtTTXKwARbjI$Cc`=sQ_Jfu9>Jav$x?6Z1{oag09XA9%GOu+pv%n^@c3A)p zemBudnU+C0q<`vt>gs)6&fhm1XSsY@{yXF7ROc9j$iLr70+y-&z8Q*`*pniD^06oa za(IJMtP*0lJ?4^UKI9Wl-;lf<{&0L4$;AUJuj_gKg{6-lJ^_6UqQzY!etb(0`p|T` zVHX5?5K^lnneik4qtYTwx{8J(vJCI%bCp}8#7tMw7c`{x@`{*GLt-TJw8ityaTcdM z794p=Xr%K*v(;~1ch_1DDUHTA7;D1E=#IlMTBaKD4~RCN?QTUX)AljcLW54p!A7`Q z!~VeZI<*oRrL!Zut{XP58O)29NG0-_t!aAm>#fRaR=ib%))^&cyP0lDXa5^J&EWJm z;I>^@iGo#F!6Bw~<(LPXaiyj?@|mv9b^%tVqP&k7en$O>ui;!Du$Mdh=2w}a)o|eU z=>xDFKm!~g0{bdbuG<WW;VsTFV)xjL^Lw9vLH<vD{zqz$dLC9}&i|NcAj-^#dh>Vn zu8%FOj)%!Q)Z+Z*a>l7qu(SuEtLVC$4fV|`KsYrdeBb80k}conDA@9R=kFJ1;<_bH z@A7-_4|u8$tBrj1Lb*@IFN}QkR>lB-O?|`PzsU1ZFwZ;VT)28eTOZEDYMSYnzS5BE z1KTy?zY&C3v;2{Geo1BH<dG3)Rm6D--Y1WVhkoH@{4SNFmWJ3xC8>LekvyRuIlu-w zVqY!6-eyu)@vSoOaqO$oi~=bPil_irKtPd}w=RzaIG;cfqa%UckpOzanwU0(!~$zr z+K#MyHyUq_w#fNnb!6RpkpT9{u1HI|Pb9$py=0{2O*ZYlWK3@@>HhE?ib+)l)<gqc z(ZEJ(tqdfi0n)Yij|5&(6%MwYRUDU#n?9!m<Tg47r}H!8vGFQjr15hRlxQ7A*$56B zPleHcjK#5WW`3Y+?-I$yp!3AiNW+>wgpiEZ=IVsO>0z&&IQvL!!G?t(pP?ATFuICv z{1y`MYe)a~47|DH^GE-73Nls04qqJcoWQHGKqqZ6L!T)*>jOFTFlU#}NsbACN-gfv zi5r>YM&e9po5q|;OHzL$*={$--=#r6%PE{^lrlY~DCzkt_xZg0T;@Kv@PxAZ?E5Nn zsUTA+8MLby{S&Lj2H*<l$J*;#=9Ee$LkX@Tiy@bZ3RNq_q~@+K>%r1A<S6Qhzr%z? zq^SvY=H2k~#wW~yX_~K~ga$Q|1O+}%T}97`Q?mQ?QDP&F91+Y!jt$21*f>r*2oNKH z;6Y{1NC0w5pE8?vozf@le%;c?OYl?hC{HJ)M&|6F!(;mBNE7>3`4FS@`8*>{Tsor! zjqK?|E1dNu-i>Z4glD-IQ^BU97vb3p>y=pS>#du5vM=n_x%|KWZ!-K}#}FCjJ`}!{ z;r~yjt;BKpKXhV}ydn;g<^M(>xsrm6Ss8hQrqj(n&_~`k91o?rwt(|jQN_ByqK^Pi z74!7W`Kud|Ek`-ub?Uu>Y8&eV-!VYYQ$SFVJ>T_jfDLifHR3zK)}#Ec5o6(Q-BCGX z&(N>omy(9CWjrG*%$Bu4b7#c)&7iukN8-avV5SA$uA+0NUxZzvz^kC=dGPLuJc5SL z8pU=EE=~&+);)WWh%8^DseZ_BpE`~+Sv)|UWq7TsKsOpw4!-EDU%p3YNxpX#y+|Qa z|Hd>onNKtH2_IEH{mg#C48pk%qck0X2A(+2%naQ1hdI0C&#xm@FmuHZYKSo+7zdi4 zK<WM${1hdUs2T~<`Wv0P;|^nc5S5Y=R_K(X(nIH>wWy37AEn;ah;Fhp4LiCKsA5PW z{~uLe$o#@5Wrn(P7!@@Ab-@c7u4Wb-hk3|G=gxx!p<R>c?hU(sqRlZd55Akjmqrw@ z?Zv3Yn>6s^?5@}hV%`BUx|zdcBCQ*E)&-n?GRitg{pa~Y;P+7mXab-&ljV<&^66Yf zPwK!W>`CM^h6#6Vtk#(~LFi*5H%tE7^(2eL2Q$_rXJ8yYBC=(671c|DGp+<W-Ooo> zT!pLI_u1E!Li)(1<aEzPkym`9KIn)7zw@xJPBHMMG`3-`)xa?cu9+9lFVT8s$#->t z!LwB96h2<U;sNaL@seNa3CB?9D6B<Ch1+<N>xmLsIkCb$;T}nFbIE;TIL*X5g*TU+ zE}xB(FEZ;b`MNXGEr!52^4dyBfXbxR)RO)<^ZM)V=Tjbk-_XME^(8?Ty>UVTzAE0_ zMgPssW4f?pv%{^a@5Awdo<FjM#MAMO=Y?-h1W7#3jt_GnAjYdD{qWz^QBvw@aV@Q& zk?*G_k&foO%BOrC8;N|3NYiWBy^x^S_&WX~HLnUC?y76`7Svk^cns2@UIV1x@!f2; z_1_ZE-2TR5{a#b3->bYp;AuCzdz!}NJ!Xd44IK<K*eS#8k_j4t#y)HG*EzcuV6bsd z9Bn$Qaks>dOqSmWI=<@=JKwIBoPp(o8;zgLa2rzwt4RF<$5~g@eQGHuDVP!lGeS!o z*&fkJEQq~1JEBp1FgPuo1Vu7(o1t(cq0AhjK)f6oQb0R05(=2-mDJM#Ib$CQ6_kXc zDNmKu>KhWO+B_dG(Xdq>2|rgtISsE;kEGNvN|u!JsRrtwW#WHl5~tRcsM>iYVwRD{ zVHgWSPQxD*XgGL|^MeF$I=Vu6M9`1w2|=$lPsT0JOq;rjN@$@uazbCBUz_T2SCG!L zf>dnJ?ibN>0jSb*zWb~<PtJ@GTddX(4Tg~Plj%EHo20G8a#xX$$+PNINOfwY3&Jw< zoM(hNZ3#LLpOyow<+lr{tgGk;5|s?`U?dJ)rWj3HEXRG^+)7~}<V&`rNZF>8peCip zf|`AL3N>!U&2IWKp`G+TlMa9gt30WS=2Q?j+^Kw4CiukUmBx4q^YoKeJ7|JD^)J@+ zw2hO}K|bU6y&6_-3Yb??t+L5i<>sr+=DVQzelOWyw4ca6-(*KR>|hI}o4rb)kUhv# z)mHP=zev+lHjaFzc~a?>&sdb05Kn@bjnVZP?viV6>t7ZwIY*u2SAld+8BbWkHQE~6 zPmO<4fP%bV@zjShF${1|^TEH8U1PXO5RRmgp4FqIM%C@gRil1Nl@iWHr@T#cP~b`# zdDM*_^P`6iGkNqazMjk1uA+CpX>*KOVm=Ldm`}{%5A)EtX$B^j?R;aRQfAk;q>uQe zkHn2VL312L19N@_n+T?^Mtijih5y^kznjJdb95T?t$jw;vmjCrB+{=aaUyeY#|K)j zq5qARjF5UPTyo)KVB)dsO9~$){Ai4Dxa7;c7e0D@$(MOQmG7hYegWZAiNAoj(@1w3 z@1uAh%J(l39!mI2go_BDPq>Ki`Gh}5xRmhc2$vE*o$yG)rxPAYco^X?5*|kQi-gZ0 zd>-L52%ksz^Mpqb{ygCkgwG^gLikL=C4`3)K9}%t!sik`i|`i+pGEi!gwG~iO!#cV z#gkhg8RkYA^(bftzC^Kap&wLr75#KP!*yxC@sLM)Jxbrju(Onfp2x5U(%J8@$xNkF z&*3P8B9;HFm&HFY%O9vM{6--wT;4$Qqeka3)}32&dZ)MjZDjB{%w=o=^Fh35IrNgc zzDe`frVF-T+K=i-47~JRG(H$pM+x~CqGox_o?~XjMib&(1H=K#6VAMs43x}QwJ^wR zm*IobQQ)l`jXO9;*Kz!T^LtJq8gjX)GILUwHs2I-PT=+Jzb1dTa%S}7NTcklESudY zFUHb+_Oh0!_pp{n9`34}-*FQuhH~EtYBq&9I*5vnb$%c8U3PBW%{Ua~IS=1xjOaLI zvf2Zut0?GVwp+m**Q`)-(wh0MPgOn|)vjY1JFWmb9hU%Y@C`<d@#rmJ{$7q{ctr5I zJ{=rHOowutg7XJ@d_W7|{7h5NhzwXE)vhq&JiS603QVI1EJFon;_B|qHj||_I~kRd zpI>HL!2q`_jlPsrDH)6xTX5?NQs#s^&gU6IM@juII@7MP>HdaY4AFzw$0{Knj1o{7 zYIOW<Gdt(JR*3*M+0R3t(JYJHEE2O{27G1b1>H#RK`qR$jXzHP6?t`6>P8r27q~Ri zc%?xgMt^sScSxj>*eV}#5}p)g^{$&vjLzLPVh|s!`YmTdC7)i9IvaqLI(0EGOzu)+ zKHqb}0e;dMX`E@+kq4R@Ml52GEY9+)?s~dL{E9EaM{T5$<L|w$_JhM&xP;r;SUAzo zNc{}cPXSY@yTAe1YS?%C^t&`w6!k-~!qBxGN0*tY1f}s+GqzaDk=QQ0a-z`zd5Jha zI64bFKF5cR!svfa;kT*lI;#2xHC@RqH|{J%#y+w4Yj(h?Z!^8Iw5zE3YL^9r@2b?* zL_h1jNlhf&yFZS^$8WDW7CxTji@V+rR-k<>f6ON+A2Mhh5NQngBTGYm6V$e)M#YQu zzumQ#)oL8P&S}hJ5;@~~rj3Id|2n^`=!VJ6H7n}>x*)Iaidf?$pS%UMh6g>EM}{Cy zF>VBgB2EPgPEhdW^i<JdXjNy|GfW^}U2g;q3u!iE#OzSFs`;3?bB$nIx*c?#4|J*4 z%VloXjz&{4LMio*mYpd-<<+3gGvAIVS+uqN^q#b3@SB65N=^_3poq3e1!M7@vC@~O z{Z*u)!#C}YNaG{YaU!E9`ln5}rs=Xlm80Lj@7~JNL(1M&CC>=jVT2{P;D}RS-LP*o zU39r2CbNLkRrJqjkeG)##q{8P*J_dC6oArJIc)Y*!O;=B^o0Ww&*XsLq7U1?>go6b zv(Sz81|wq#yQ03&H>{{H`Xh0SZo^QfL=*|X?oB^tJTu!h>Q|0R7HfQn<I``ImRvl2 zra8>wa&z-n<BhDkUE`0$w=*cB@hx3N?Pv_x!|wu`C6GgEG%nO?C~36V6zV!%0)Z1h zXWT5cp(NV$Q2q;pL0?zVN7q7;@v|%A3x!TQ8xtg!G0@HtYL_U|C^)|yXPY)=ylM52 z`?eV^W|)w{YS@@^8(nRq&rthOQT(oEb1&>5*LH6D8)v?QFG%O?D!LnB;DEU+miX_X zzi7Ih(O)8?@AGr0R4@MycY^jS)HcrK`2%Eoz#nnK?>P^jkED(?aI_kqP|VLHD7umn zVI{M`nvn69kK(^P`*AaE;RS`6)IuRfQ<Q%Ksl-QJUCioz92={P9?ZPAkYDr(leL~E zn5?ztg=-5`&H^AeFPd|hmwNlctb-st%=|Ke<~?YB1xXms8T}fYEriTXVe_uSCa)tm zZZe>~=z=(dV`LUkWLMFb;O8g_gYU&wg3c|Vr7iP1%YBVwEhMPvmr)5r&-=-VRfjz` zmGSMVkPd5Mex})l+;ol!R3jMO$J}iv33&spoxDlMR@u_Amzn1iC0oq%DLZkI5!N-w zW>ijt<F2AxwKy`8_DU1?Yi6@R8JQN$*V9hpq|htMDEK_3BPr~0pT-bExQ#|Bel1Tk zk>R`ksqH3?E>*G8yKO%|Zf?3@-6JN>=*~srOpD2-DTS?B6GZ~HdPyGw76wTm0xDcH zk2dps!dhlVKIH;<l*Ut)fYywyR*mRg26(7;8&}0sdelTEUZ6<iUb)0vMCh9DCaX8e zEaXbLR`DPfV6~&1l+A9+XZ5s*Z5F(x-Sgy5H%S{$A<zS|^iNYV69)p7-LQnjb#$FA z$M5!;Psk--nVS!){5{8yX(DMpk-duS#$yfcl${B>*@JHOYBzhN=|9Y5R726UkCh*B zHACCa3NDS0>qY*uzW#WuoetWoR5ir=>E{|BMk<<5dR}Z}*%yM@$~9Tl<y8c@9bq4{ zKe3UXis5;$zy^b+F7$&1RAHunj}ZMA8;u5696btu>wUgGJba`!_;49foBT0c`@1CV zVSimn;=U2Z>V8%|y8@X0WqA9N;~UFD=hZlpNv$c(FEQ3wmR`?hT4_WK>kkjWAy90L zQhSS(n%e|)89;Xxy%!Q_s?V;^nA3-XMyhaj-7H(#L!sXR1@+y@ISwq<VunAWV(B79 zzY?QnD_-4YNGCrxNy;|N%E<xlSK^Z)hi(%}#@bAhuA&iWzX)A${YDt)q=rP$HT)U< z`@gniA->E&oVkxEb6!#<?v!Q?S+~R(%_t__xl8jjR0Y&hHuuTNwf?daHpBg^dW=!S zghji+2|ZTG0fXl|j~dm=@Y6X;eZV`DLsj}7oPjWx@66IGeWwxM@j&P~P=fLPbB|r? zowxq}2{=CLh%)btl^x%xkjpdc(cu0e1Ar7&W=3D3^0K;7Ivw3tC+=<b!|z1JqUGEM z(D#=))v#~goTk-x&;8wX%j#)N@>w-C_n4rHdGF2`9OA%oTy3Ocor?PdtAG|T=aGwu z1J~w=CFBMoTU&*iM*N*Bc$kx|!@EL%Q4KMt;=qirv)0N6gR2T=qBov`!`_0rGnIP* z3A&1|Qf`wc;mnhBw(2hAOrMHK{Cg||{k5<CdSXo(mtIv+hh3uY)6=^fqFXfEzv2S) zGXkl5xFDGlsk?2)>6t?0B!$0{pY2KmP2x!f?H`~<9x*=_X%#;58w%p_EBkoTJ{~oX zakHGlaV#Z{o5&xNjB)7w<IwxZq4$qtdNdWINq*@yO``z*!swijUr?@w)%?a9XO4`O ze(22ILO{BsUo#Q8vXGQvSIM=ik8C#IIBb0>%d+PgOH3sfC>Re=oO6GPmZt+j=KhIv zm7}?+P0Br2EPPctv_#;KFe4qt{b8ik`gII9=ehq$BHh~h$RCu=`vDm^uS->2d;{ss zZf}+$H$@tm8Z}+Ua*{2K5>avW!K^3sn#{hxiNW+o6|HMcca5<;YfQ;Zx~Hk=>5Y6n zm#<w#*9PsUqAld0?>UaPspt*+Zj{&g$VJ2N)|kkyj<ZPcntjL5D)V(YF*=gh+-&-N zQ=hw@V}>uzo!3T<e?Y8pOzWkzt8v6s9vqc>YWI9M;zh^qnEpi$E<0O0NK0Qe4h!;C z2z70Sa_(=%Ab@v5oewfx7ii8h>c!Yz-Z%bmf#s>bw9M#|8U5Oan+fY-Oq#8+WbY2A z{yh@Kb$Va_NJD$Qj^cm#HKJT`CQ)bf2>03SK8@r=TrP0K^WCRplhW6^&uaH6S*Q4* z`z&*xe)s8fpB|n_%}yTrhySGylR&8Ps{Fuu*9mS>q+vx*CpeB!MT;Q|>ti@7h%*&x zneqItqW4Fevt0&vjO4sf*fPxL?9kHwlB&o!;lpbA*e#juFr(Zd4M`UKjK%wf4@lcp zw64Mh<2b%};LKEhfhuP{j%p;un*#0An$QKTD(EWO2yh+Od~&+8U_c$`eR8@wXgJbn z*UydRTqtpt;dBv+yRq?k=9n7OyE1tr7WCuKn)`!#tI|)keo&WO6_DqAFrn}Q_bI(Y z;b!-_)_u0Q&rY79kFLVsWn`%F#{BrEhPV36IBPHa0XU?=B4h6&k0<D>yBxoG^ob76 zzvJ$+)flO8V{@KfhA-Ozj(co794TEJ(J<D(MUmol@+FD8i;*4ux{3xe(hQ=Zd6jK? zu<@)j!|bLr9r$vLSkn#hw_XsfND{xSEIJe81rHP<A@(xFp*lGKG(Q8QnI_80{&M>= zTzGr(<2k#e=8HK7wJ=pnVID41avuIKy57vNa8}+OY2sAFIZH+5vRdMhf-^4*)8f4P z=Zy?lBz9Zn&ewGyI7JpvqHa^`BRHE4ocyr=;YwG*=pKO2nxb#U|CdSp6u63?G+K99 zpbw4rltjAO%Y5_}-=BOGj4yR-Wz&qakR-O7RZ%@3?3P-YQXB2g?nt9`6b28eA+MQL zyh>eC*IM`6NaKH)IRxT$63c}lbd7xDq*^zSNtFz-!H$WckHRH+tS%Fnfj4r)_C7O0 zBh>d}3;|pmYm$s<vdcecb8=>Y^P$g_cNNW$py0lnN9r^%y{!4SvvWkQ!R-+)B5HV( z1=Npqb7W|teq+wq4~;|RHrkFttA)a#@LAn)m21Cs*HdWJGU3O?Q%rNf&QxnXE>k#7 z##7w!&5lvZ>!dsZQ|-)q%wT$TtQ4VjJ$)Y?{gLxXwIKrBfZ7}_ko%p76@!SqG(;}0 z@7mkqAp&Q>NW-!|1n5-bRS|J2TDWamyBrPg2#a^j7R1AlXDW&_!uhA(ijH35G?bc} z(zb&Pehlimirz-^?s(9)@7USj0eWQNk=Z9+LH5h7eeXEcKXa`7`;dV2{7`3^cZ;(O zz=!5^xib%ga+jeD)A!E2`w8z|n?byWn&=y0#|CbQ2cGbG`W?yGK8=*!v}@YeRkVni zPP@5|&)dN^BMm*j&?Ly2TChA3fuL$N{i|0rvo<pj;!hdRDmgmcrDO5t^HH<N0u2Bu zQPySzIQ0ZlJJ-n?;7*ZScCaOfvrciG%ZoTLDOlCElxK?!P5)uizu>10a>|pl>Q6za z^lrv9^8k0=im6xI7W`&Cl$5E$SI9mmAtsU);$|8!agFp4XqQ`#o<{f>-Q!9VDZkT; zO$?$^aOxl0$erT{Fy#CG+iIDds00-yCjno=?w5?W?BgZ%<iuh2$0KFI#CTO%V-%xb zlhF0SDgU}#w?o}#wTFr3X$GLIy}O6Mo0?)+Aw|;yHW?UxIK8ioPPi3XC%BW%5(AeX zgC*X>&}U!EJ(_uo1a$mLuopc=xl#1bW`sFo--|Vk`jV)j9`G~l&~l@$qL(CQj^K!I zrw(p395E&*?f2@QjlmJEe}UzU^i7mWYU5bT7iWCyqp=9Z>n$6s93gVIY%rt&P<p_b zI}Pc<8LJoeVvB4MFbuH~xfT;cyj2Q@HyJHu0juau6daB1Qf6mw!xFoCu*AJ$VQ~b3 zGcQUP>ELZm9&ys?xUCmH(7kc&wA|O_E@!}9+~J+F!y6r)J$R8u<5aXyXRzmRN~!^% z>opOc_nH~l??p;qcji7v&4yvNh)S9Uf5~9t3NRC2)Ucz^jEj%t38(~Fo^VxHQ8n}k z_llLiHT~-LCQ3mbt4qW_G*ol>xtO_+W5C?>pKt$;P0xL!a4Q?@%#9Gq;X{|RtC10~ z0M6n(A`Bs>Vx{|?x#P|I3Jx)Vw=*T;_9$Y|%||uPMlIdD)N*#CmlA-po9!%c_RW$` zE$_nF4|r#MtKk5%aqYiWFAM{{W`1Q<03(aJ0=nTGO6JsSXRgv6r5pOt@$EBuam3>l zxLU{`y>D9hD23gL{@MOT3Of!!e`E7I4JlL~y7Y_{E?dIlFvOTA<S(uz(EnpPz!H9p zy8)rpNW{Be9%z1XWZ1I!;K^Xiv6aBm@}^<O?35Ba#y^^UHrsR>|J3z@^e7y8$R#Jj zk!Qb5_M>s+|6DEx$WjIj@YKw7@t=s4Dp@rDLYGhe)Wl#CAz249z%cH|OkT`pce}~P zOupN2+U?8Wv|pmLyNXr^OyV4t4ZeREH9UPi$&Sv`YuztL@bsl$aC!Ruwx-RhX{4#? z4qH=G(I5jWfR4=oT4-Xhoe+6JCUU5S-b4;Fk+}>bV^4F}AB+@joEl**8@mspRh>W4 zOe}RyUZoBUdMV00^O1)MIt^p_HOu_+n&)K0FVsg_bYQp1mdKYXhH=^6Oq@f%haUFk zePcjKnSll9x-K*5;$VVPV_puV9(qos^nmu&{Qj%iBQ(%+4tL$)SANt$b1ux6M5d$D znM@bDndXp*Dx-Vv3_A70NfYz7IdjkD<&Om#vf2kZLRp<<(Ky#3HdaK8(}U5a4tG`g zIog^gU&*ElUj?o;zDk^Fd^h;{`A(T}y*`T7f1<k7*R@s}2y3@^UTV2^mgBQp3f?%k z$U)~uN^yO7IA|kiSEz*Mo*Kj9r6NV`fbJ@K0X_lYp%#g?NGo`jud0qZwH%KJhY!L3 zbH7U@WA8HL_;XS%{4zPZimu2I^g`uym6~TpS%Mz(%gHAF3w-N18@Bn6HoQn-F2Ne} zhz+k$d6vA>UshJ5zvbu)4Z4p<9`VKwI}Q}it}>hI;#?HL2Kbj};%~e!=1n<s`-%^b zsRuackwM~<sOSw#C(^}8&90&gxe&H8Z)#O#d{_HC_0+>Se>_cUF4b}7YN;<e=a9`^ z*dw=D?A(n)#co~dzZXL(9;`2sQ^&^-=wuJ7f5s5r*~z{a5t{56fY}zt|B-Z=6#FaL z1*X|c99t*!>O8Ew6Jn#^x=-6XfRCBPJFMJC^QH!!xp(m`8lM{Ez|LrCEAE|DRHUmU zoq5|$m8sZ(HdEzAa8@q)+53UE3w47w<D$yaH^p>a$jVJJ1KHw^i^9qi+WSGMN1nQs zbjek=OKwem)zdzYs!UQE!E|a%P9yG7BT{wKFvi{Yd4LDM!jRy<1^8uf6cuXwcnKJt zL)d9p#xEO#qfHOl{^0D>pI)T1PbXJl-;VSk)G>d))6mXG0J885GIkZcY{?389Y$E> zx-MbK6-vdtCvqJIx$Zg3l55dp<TV~6`^zms7R^#=^<+jz?JDYXzDuWFlT2OzOmQw9 ze%B@8qFcy;S+T3=xl9=`VmkW6WTs~dGpi}jm8!6AmS_CSt$%ib$jUXw>v$W-cU2i) zPeI3bW0m8(1se*Uw;K8W?6L(tQNnyS^^a?f&M2o3?6hIVK0mXhc|J-j^wbd7Qz+N- zdG{$~YiI{~(p*jY2^l(yFl@}eAF~kgA`O!YTL#T_d%*S+t7F-17O@!**r4n<n!RLQ z0kuWLF9%q_f686svsN~(pmkESva|^TcZ<eXWZBZjj~Ip5t8k`KN&pe1UfC~$JW6Ro zC=)$cZ;B$ndZu2*Xm7^VBTc`>_pz$nk3X$grMb?Yg8`kpUd_Gmy?PO$W?lc@tZVJ@ zOwk#Bz0#~8&2pt#t~4*<$K9X5@xC4o2tm(vvBrM*6BI;Y?#}WU-UU%-MXd1_uKs+9 z-A8^|&>FcqjTv9#EoEjW);=77%F#Ju@&2(mdxGN=*f@iyLVUbG5}$ysb8A^7eqZ^w zS)*rt%RPR9&Gv>~AQS6$=)2Jml^FTZn@Sq53gZ3{F~<IR=1BKk63CE5hD0pM82WK3 z2?G)oBJHc2I-pLd@|tR>v)1wbi?FUjx0vVS#=F`ne8OIISNN2*6#9NJ-%TbD^=O<~ z10n`%`--ljo6Q~E);;=#k?L_ndtF7pD6@oT<B&&VnaPXh#Qo&&)384@{R+*>WiS)n zWOE<xDw;xKv!HKSC%LbuI9KZRB%XsU5Kj>J4Dk#(PsGD~K<kNfb_qwUk7=$?|Dd83 zWy&>RqA46g#EJQ_+DTe0!LEN(j(nQ4Yadlgg`sZ|)|E1lUyd0{Gutw5DT&C%$QQj7 zYwFxbh)0?^zW$DHywCAXpm%RI<Hz6-2l9IA5htiM7FLcq3A!Du_Ny<1WIYSq=RRd1 zoN}MGuX++hq-i`x2GniGH;(=tPybG!e}8H!qaTHI_3K3Qd|bC(m@><GMjHQCuxTDR zG1B;tq9+j!<zZVS5Q{%;?;JoaeU`BPsji?*%Cl4evzT&iInjuZw!E1i%R_?vw^wMd zjx~+(alX73kVZ1|mxT0dvQeO0@q9D5G^O4Yh<(zR!(TZE1Hf)juW7xbA&EqKx32xs zn@jpX`jlDEcXcneecLcf4=KB8kj^~^eM8LeQ3E7Yv{2j-8eFD`jO)ENp+p-8XZGYL zBc-dHxfh!(*k2=~UvVCuZPK$vUM2*UX4ax`koxll6sQyIOH2x*!+9K^Jjbf&`H9Et z`6id0Yb`HW%U?BrtQiD@{FU+N=g)`xnVCm9xZL=nlzT1Z-o)o8)fZ0T`~~Lms3EVy z`g%gH$;tMf0wCOq5E+BAUC0NzFe3zTqcEm2(>Nr)b(z}i{2q)S<}g2<+pe+-B3?wa ze9>~ck=xXnL$=?di6r~WA9+fNVf_a2m<Jd*?ERgO*p(+6V+LZ-F#7vu2A)P&5AC4n ziwm=38h7&1U$BC_sG4XQ8<<YemoHd3(KP0qn~i+`mNHpA^N|vpW6V#!V?OQuGoP*i zCiWk@pNb9=XKYy%wYga7yQ#0YegAngsI_66n<mU?9Y<d=&<Yv6h2!XqarD(V`l|nu zakaF3Oa+s})bq<+@jlP+HjQD8H$5Zn(~d{W6cw-Gq^A(4=aW2HOFoab9l5vDb+thj zx6w9jPU$pH>uRIE)@p<Psb`0&DB>jI^{=w=Yv`ta#%C>u1e;Mr><fN=V2%u>%EnRb zJibHd-p0JoY&&4X*^9>MrCXPH0X<7&YM;tC`#o*Fb`@#l|G*!}Dicn_P+7JR3{n@Q zP{_!l`fKS9Gi^%!fP-mO_p`*91ub`vNU7`c!?PK%q^6kFk&MUI<D?fSx=W|w*2)|^ z3)6d$Yqa&DX$oE@EMTfooVe=E^NEuA=7|+qPZXjyQ!@L?%(JIUQ3g$2MUB!d!Gh|S zSCob4sGeQbE~r)RGw43c+^64t`rN0-ecE2{<?$u1sIFub8ZR$x%$UFc%s^(Os~Jf9 z8Aw8+iV>l#1<gnE!D?2#FsW|HbU5kdJSKc?5jfy0Wxzr~bkn!F>HT_=zRXSUbHDrD zu)0^}`xLgWRPzBzQT6V#N}mV^d5V^+dFr32*Tm6UWrt$BiUOK#+H#&Hjq)u}TJkmX z)IS!N&%MfS&RIZE$WrT!(H+;SO(r}1Q?zWZ^eD5r?$CS$&DNyV$u4p}fHLd(Y~~ZI z7!+DBEE;-N#trMId=pyLCMNS0IQiLzDFA&#gVCmIg5t4vMdI>sa7UV78J^d#Mj`yO zHuWzpmhL-+YBdp7t{=or7TOH0FCe2O?*F5=rtgeYXFcn7R<n7!M2yj)O<`s%6lXS! z_wrEuvlbn2r0e!j?15TvVybJx6%X7P#(_V`c(I736`r5~VA?t-A&%OU=fCvZEYD~1 zRxw;0nQ7Rl|IT$STapn4@BV?*^`<zc45ypaJ@|K3r15lYu772Yqkx0i<0!6qo@{rU zY#3${Nv&t9p5FXks&qwsWu;D7z@*4ttAkS4nVcC#dLo}eq>P$qIFYWRM+^%@rs0<{ zV{#;}LvB6{{n<DdHC?=K0=L$XxU3HKO3PAlNl_H2oJ(RF@jseSfCCe=bdnm2d#d17 zZXY3JcI1u}VU*R41|qKI>KKwO{+}p57N3r$^gW%WMgM_gDYR-u4vwv-B=o^H1blBI zmollYTcXa)Xrfq#j8dhm)xqCIC3S_?X_C|Fbc7$Mz}hh#*r_RgTE~;!7(f0S_;q}z zH_q(@BFEPU7e0p1H~r3pwUeFlt?Rm$Ilh5Ja4iqvR?f4Q(`|aWQ^;|_>GgY<K#|SM z1%pNdny}WHu*LC(z<$i@*I`)=&CC%gNI$PQK677?Ujb7-X~W*my4LO_ytV36>lT$= z4^&5%KcVf|Rj8!xN7kcga;Y-Th|j=d67%EMsJAw%?cE;gn~=(_l1BGzSf-$@?Z>EE z2`EDKbMR;H`nPgAcMl*GOzm;!J3Zh5>rA%OZKjY6mK9)no#y!PwEAi5c3$?eLjuph zW?#oyn&sw@!O`pAx?4H-AFlyQV9KX#HRU-)*sgVJEjLYZiy|%;vkC%Xd8>+O-FM9X zwav4Q$!(#CZy#rVivrbN-k?smjYChgePk=&+G2i}pIBQ>+Gg`heQNhl1i*3Hol}LH zYUx>T>b6`QsL)nZbnCJ#KC~WHcQvMIW)$Z%{?Lw0GsB29MY~7l3dc8qh$BYk1PDC+ z8Uxgsu)h7>0!h;0B{wkR)?kV>ywNFNV{JY6Rx}0&lXh+6-8^OwEeScxu+wmEJ@-2} zH5_2d_WPjutunvW(KyB)B5R{fL2tCFs*khGSrJGDNP5W^w&W3;$M>6=EfU_5=PZlG z*H<=Gad_VBJGcut6>?VSODZp<EVJ(^DXVOX^bIpdjfI@$r0mx?N6ifd+DRIQ58q5m z()3rFdq@*&D*6eQ%ZkQt<}1;h9Uf1RD|ccg-xvP@YAqi-H5^C>7CC4Bg}!R@JN-hs zOe*M^!KJWqi-&jmv^Pkgp5uXeg<dG5T9&EAwxXqrItI<}rl(LtbHA~4e4+Yr>$-5f zIUq8Iot5tnmkbVp3kA0aQYK=!0`0{1vB`Fu*il4)90nLg#R}W(x3%WmWqboi<y*J7 zMZ^?nBet(iW((%J3Ijo>zV0&+b*3)l*u6d62-06a<9+&_;Mec1W%~VYP`@=*k*3+z zreYCWdXY17Xo+54k_pkLw++rnx=3%W&PX~&Z*Msxg-+hm&PY&7QM3E$=Ni>B`$p9> z`xezRd$Q`8J(YT9Rtw)w!xBw68y59*=DklJgqp^#y}Bt@`0QS8tj}*hm+3>+KLPv} zP)Q9=ZED%NinxYn4a$^)uh8r8-UWK!PM^=$OS`&!Foa<+Zy6VPat3zvS@J2VLD?2E zPBuB)6qi!=;biZlP^W&xSjxAWp}3V%9%^>8+fkm)4r6s|A4PW4p+~KK?I+cK8QD#r zAGP+jPpUme_P&DUsI_-~QtdaBz2C9g?){|7?;&^pV^;3#QMr<}fj-Ei=5z%N?!Vu# zkNxAvK)v6YyPVOe?-u)dvxwK*QCnQ5FKhLKbfiZ8m_d3}^al0$gv+i{>Ju)zy2CN6 zXx;onO~2I)vbB2st{G)p^jc$vS({$(Gvh3!*V$FjB66IceJ2hm41Iicr0Fl>ZX9e{ z-U_QuFH?CFbhAo%>uV}-Ek8BGOH9NY=J#F2Flo}`9yoxKeq?^T6g9)J0vM{`D{pOq zxyl387o9)3g769{g2<DXSq$~*Wvf#-S%uWR=@d>a)608K;mn|3_Bw?Rfy<hGVNNxu z=I5H)NYn2HFC3%5Y50KSN8lI*&OFV05N-7mZ}9PaXYNF?YIA8J+*)vnSyV_7^@V)h zND}|{p>`@}yL6v0%B=!Yu(s|dbgQE10)qS1qOC2dkGO@%?TwIhT1uZFfYYzB8ll#u z-{8eGFa0iWrhV!6d7E0s&&(ho_H*VA0z_3%6>=sVR8yUKG7qb|>I!E<!nC^mO`>|y zhhX9K*Ql=x@oN;h47nrW>qPjiqSe+{DC%_8pa!>^_;!`<=clHOTG!JVJdphsSb=SU z71&eDI=+`9)w=0Zl^#*Qs^&(eOx31F)$dkAllx2?Zh*<uIAe$bhTt2b0p`AecOgNT zu$G9@ukrT=e~SBvzb<VOQWu&jvd?y=rpS6*Z)VJTdrfaay}hBgD!sj{H`Dze>8)0A zZ1DIVx0sx}hw~*GcCkICnOz#(5zQ*|b+S6>$bzeRk@bJV8>kUCVsJ5P1Uf{4he^*^ zALsrXGW#*Va}J9zorfLrEF8eA(I7lNXI_)y3y~a`Y+L3{oyT|c+9x$M^O~O;ka;ag z9cHp^68KVkGOzwrD)SmlwPs%HQ|mLYXQq~BUcZ)lkylL3@!BdjpZq|9bHbFFz0;f_ zb%7@BA+v3O(1;bL`WlWtn%$>^+RHsjbzow$GwlN|YYjp`QuC%CKmw(Ye31gVh`hm0 z(ya}3t*CoZrOq>@_9*Mb$^n9!wYgB7Q02aOZ8Z)4dv!^V`3vhOzJ){R1+^sGE&pb_ z#VPzIt-EB~3U5kY2yQQ(;l8fulX{Qx+z!jj#O9}DATzP~sdwGi6$Pn9nb?BV=1i<F z^&gp7U#cY&>reedCf1+&btX2Ls^``89p^qaw;QoGA8cG8yQy&M=NWoIPVMR|Vpj0{ zrmu(oDa>)tSb3{%LW8wU-=}Un@`dRl-Rt%pJ8M_W2u^lt*LD%Z;45#XTeS!~eZR6F z`SKF6x+{&X=}keuK<RimUaKuEMLqG)*h05cvCaG)F}@=Wi2_DpH+^cEgr0JiaO}l| z1dqqfV>xF{wJ^t>pZPxW9VMaSSKVa5dN7}NTCw~FsuEoyfNHm>?w7OkC1>OoXGse7 zI?`G4DjPN?ng(?IHgn#nQ>chfu7Al6;M?FV*#Ue!mOtZ6SVu!X@t<?bkimln4k+l~ zuWx={AFqdPE7?C@#Z!*=&pYH4XK?Oc-+uk`bN`e-_wP)?xqqRG>->{zrum~&XWV&@ zpU?%@L`V6r{N_zn*N-0;s=UsB`~CjQZmX@GRuinLy>sgH>GyoOX4-czXH?BIaB*!% zbm?Lr@74??Sxv9j6#WRg<jSyRnlP3^T<h}rr2VMn9)@#G-v;x&+(S%yW3-`#zDqBH zwVuhOv*Z4(ey{R$%^)|lk&~%qxent<o2WD|iOE-@?VkoQm3!XNd&y}^&Ha7l9?>k6 zo)-OkS~7Jgur=DSSQSdv>&wnEE`JvFFIMK|`sonxJ>k}saN<6qqjJwH3IR}B1}IOP zLK0QnEU22@lr)vvTpXlXanyN+`gr>S{f>QB-&Kgow%9f%NZ2$N3O_o2$+}-i{xaku zg=UcjcH7|`Y&+97yC?_m(tE)>I*VtCu-{i19j?tI!nB6#9KjPxUNVa(beB##<S~-A zZ=-{)<bdyNVNRw(+VrIMH!>ydK$r>@{0Ncdo;{{zluGkzE@*bsONuA>p8lXm=P7T> z?Lyl2b2l|@6GHWso~J{p@pS_&l3Sw5Heh!TxD~zCG`G8}0fT(q$$NBqdXM_U^t>>8 z!S6K5q$Xe$8EiXjN#RJOrc5omWf0P+$kIm|go;Ll@ooAj+_>Zd+%C=N>s$J|USDY` zh~leDL$=Ae1*-?sbf6liuiccT58S5o9hj@i%aYeoyN3#FpLF+=8AX=xOvg~Tp^M$( zlsWoB>KhW|l-l=wFvPrpxm?YbSkqa*AU-9RV!~WsRrDkCd3K*Uhnu0D`%YgtkVnca zRdlVM5lQ`sq#fz`lrYYhx{<&_39^)~TBd}~R0E+1DbG&bZK7(MVcazg`I^HiS-^Su zxMS^nYW{b174Yj4MW80;K4O>*`1ymv(|sopPQ6biD<_XGdPrzgOG%Y(`9rLT;u4Hi zVEhuN*&zlBG2jq{Y1FJi)^z3DcpE6Nf%KSGVT=BNCHCMZM8Ta5D}<YvE++H}*<Mu$ zj$p=7T9>ejtr%v;1T2%1`%IC-gbb;eREA@SH}aBR3RoCPX$fhLQu%4Naz1hg4W-l9 zXl+XG)U@$;fwn(^K0c;LXvdurX%JJfc}eHIWO4sWw4u2(+R&z%&F4ipK~KE1CDpf~ zxo_Mo5}18{q32~UOZ^tF^FXsr)s1gaRO)Sg|2b}Dl+&+ge?%TxVK%`(r``m7ON*NX zZRz2Zb{YdDonG#__&18&D=o`2qnL89NR6jRgPf3axRbKk7|_s;PCMH-<1W$kNBTKT zKOf#lDMM;0K=@mtA2XiqkVt*^fIzEp_?rNRYR;OhltwP3-=~bjd-QYA)WFY-%bAF_ zv(s<3zwVd4#uFpuCIQXx|7M$hztySVf%^HYGX37J2~5ocn!MCZtL}}jdT+rHr(fSw z`bdk&>z`lWe~{B}V7_-iLEk=uPZ^Tu^!n$iJ^x!zrhdDqVAdDDIlt|N6`soP2Occ* z#^$X2_}N3hsbA%}yy~UD-Tvd>gg-og=+p<c{j2BP9S4dw4EtL8l`juzS-JO8PszQ5 zmi*{}9jh*U^2Hn4|8R?^bo;>IqaAl&eeT>}FPrqUMV_U9t~q_m`n9uu)hGGDU!E!Q z{MDas{nr_9tT}M;mqP32pZz!9K6xJLCj$l!Dv;ii`>t=9_)I#b$-L`Zp2yoq8qT1C z0RuCdPi|Z$J`<OlR&o5#lY&I{K~kJNeFr-E15U{+7}BTzU~j)co&kLZ<qzrS6nF>b z4eonNf6tJC{qw!23<90b-~s*ee*fN2{_BrFY&d7mgWs<#c=G((Z}<A=ss8<@(&$gS z3hr9?dU5C<_j-1{Sat26-}SZ)zWLeTd}qjZ&(5dE1%L5I|IhDV_?>V4@$gxmyWeTp z`rOxUz3=RweDLc<p^>@pNjHQxvj0TMx&I(K&y9CZnt}ROb?3Axbu(_8ad*vBDRD-n zn^pd`TfcVEh1XqoUBy>N`77`K-ktu)ZBuTqoAzD*$m?d@HWjt+4*v~P@1A+*wCQ)x zxWCl%iOT9x5+qt4sJRYC`%b^)E9p0q57gXWpS<_b`ef;$SChqub|lX@^iHzy(EEwd zz3DZ{16cBhbqvnsuX7gD2n-+_;4v!ernY4K(27K;G`%?yDo$@BZgxRpXDHm^ON7oy zzn$FYyLP_9d%Tr_H#m$SaeH9visS)oI^~H_VLGjEFL@HTmu_932n|T@<-Vqb;tm!j zZZF>Ys;Q$hx_4{h_A|EbNG?x*nAmxLxWkhiolYcfFWmZ0a(DX8Xu})T$yvVp7wFqd zzQpYVw!W{|m%ZbgE;=tUHn4RK>2a4*<ZFed_DEuE>DJAaPI>3liHWhrTes<Ta#dpN z8C%&fa!<*~#Mr{EY+AUZq)af}?MsXuuywC$c@`*ktE5#PTlDg@scj=kC^FfSKB%v) zUQ?`I-?ddz4~3g@LH>3X8}(<4ZKhaL&bn-|dzASVTdaXJLg61PvfUPLU=Au`xvk=^ zEd1qJ_=8loLzP_{%vQFR%1r66W-Bv@eJ7`~aw^-evR8Nw_GWdXsZ7!93$vAhOcz;I zRJPM}T2;2PHrs8ZMH8kk4E{!kU!oD2J{U=52NF9+hhGMuOmFxTlSYRZcUJ=f-D;{$ zk)}r|Ouf>XTsQr2L8htSwlyVMLg{^`5<a|XP&ll+cwb`YO-=%8y(zpCm*IO#GT6JL zq}KM*KHmV-3K8vc)dFpmZe5pLKK=Cqk>@KweOQ#ao$}jE`NS7)ZP)90qQl(`fT+LW z<3Y|`-KA~XZve8yktK-kYD^8La8s};PF0s>i=!K%=>J(MRoPOiJEnKf+OqZ~bzNR! z$Gx6Ty?w7N5sDtZE|`oSZZ)0SmMlH|CJ=hoCW{Zh3zVKMX6z@=IQ${tdfE&VNdEBf zD&XdnvfBqx5Tz|^->LJa&vB{kz-)XG6O#<~MFO@97|N#`wD2;H4rH+KR^zvQu{(WV znI);+>DfU(+*&1&z;~c^h2F0716b?Y<nBX@)S0ui3<iX)t;zj|*vtHMNj<DfYgUHq z0d4DB$#t;0+Y4LM$>oO*0Bq}?WXqvfqYaCy#UZDSP0lL3W<eq(UO21p#%GiF*R18` zmS$dBd6~SHm$!JC+Qv(omzkZs>`5NLhCZ@=Eoz75JK|PW6R5<2qv1fcGxr>*A<~pz zavgiMLfj%6nvmRgpJ@;_mHJTQ#K9=WtC`Ein(nQSE?ruW7fT}aKn<(>Z`3PYUc|0$ zRyIY0jd#~3ZXfMwt}H$rEq=SQbnmpmQTCj|qo?P^N)G`KTX~wk&hxuLP9iux$gGw? zO&Qk$=K~V&_xTe$LY{rRP4Fdl+~jHF?VQApYdt9=2FemUqMlA(*~FXJaX0;cU^d<< zi5<6jw(!b5HvHa<OVp3i*+9fK3-|$J23rPG21~+FV(e&79!;4YYNpAt##w7)jkQ~1 zjd!)N+bG5LU7eA}iTff=ewILmv@q&cmOg>%Hq-p;aL$=RO}_h?Q{1*7d2f1UMmEV3 zpA~AQ=?zA(6{oiv;dTa64*{1fOz)E9N)AYW&@r&P{7)EKp;^AmN-CRJLJ4)Ps#~vq z7+zwT+V=DpEvMO@u7P;rVae@juxiNow)8lN7v@FW1jesK$#y8%(rBP{rAT+9sP%O+ zw6=*T-?0QatMC+|(kE2<`I%hC&(t74Gs!*^4Kr6hA9d&+IcSqYOJ>X_g`3QfO@bgZ zY=t2+bcLe!H<+kuejxgtbHESrI&=M+wtW%_4<b<x3A;pV2^dO-a*si@v8Jy<s-F|7 zib_*`fPk^?X-@1A`+0!#2x}8Nibbd*zr>C+TvCN73%f~mfM^<0Elag9fr0F5yc#i# z@4?Zfi<%)7GjdWpIZzSe!p+OTrXO^hmMLqLWi;4^5m5Uw7>{KJmJ5o$4I5O?tTil9 z-J=c!97FEnfq;vj8RY|riVk%qmrvOwJqJ~$J#F65coyFqUgLp1;nbhl84b5t70V~# zm1qe}X;)-tVWQ>QbUOlYZ({M?;mzn-XmMqfvX1h(A|bIe5I$&fhWyB<L&@D!wkIY9 z!Y>t4&h}&=y*jb@+Hl&FT$g@_9Kzksd&8Z!uAs_IwogG8-y2?5Xryw>z3JtN#W#iD zwpCRN9K+XY6Fcvw0j5D!iO}dN%P8|bMZR2^2nEv11XN;iDBR_tpf@Dm-D=trEd!>k zP9WZ!Y0kar)l~a#;>tjHjj3aF@{j2Q$={?uaB&q%uS)D35Z*~uQFO1C!YLaQlLmzM zkoWHN#^i61{1$hK(6#9nBc6?9-dPw<*>?GWY!@2ol$D7|L>ll`N&$T@aph>Ilk7cF znb>)TsgADlTl5!Cc_}f8NCWRnQf}W&Hc$9|iO+!T0k114Dtx7n7L-p|lGs_CsXJ)u zZYiCzJ~62{yu|>$-mMm$d8+~4#jTLBJXtVdZ_lzyGr&l{defjfF{w0zW{KdJO$$U! z>x5^T&F{WKQ}yCNc&|^o&;ii=KA3rv=LgB%LR-rNHQ)AGj0ttpXBLlk))uI57W?St zMLojp>CGnYQ}OT|`%G{9IpZ()-=f?A?@R!D{_8!bvKDavxGO9DQ)=$0yXVfFsnm(s z#g8&YI&Ksu1e_sj*I&cW4q3RgqV~QQV*-}P=`UX~*_pgcOBq;{I<OeMcEOLiB!{oq zv}@ldlQ9~;&l4kM?G_?r)4n9Uh%}dkR}|{^b)}ab9P?7mP6~UC!loaRjY`Wln2U_b zhZNI0``V<_I|adF#f;{&KJ8N`<uvvsGAh&bwMw^=KNC=HinFmT0Q9Pw)h4K3#SX$^ zdb*A0IBX`DI6Dh?)nfYplc3k6{vQRbwl#~>RuG66h>O%<H&Uyl=FBsM4t>c&d%^Xn zd!jY|CWCXc5PKZNZ}m{@{}q}6GMd#NEyQYSSmcWS@f2%nb{p`JAA?*uhlMq?v!q_b zIsqSMvQF1`;b4w3334dM{xWCoSk%=Ka`77@?>%SUR|u1(j8m7|n*H_F!3FZxm?;;u znumfE@h$WEEnB*b`Q;u)qgH}ycZ!A?JC}rC1v8g~-!UWWZDY6VAf*yuxZjE0&kQ&{ z-YYbrxAAG3@EU*bI=+YG-|>bj{FYC@ecVb^)gs=h%a(-=zS$Ot(b<e(IxCFT`5J!B zr|$CEbzsZK)fzpdot@k|$f_gXth{2o4lh*_TdhorYL=qc6gm?YtKEKEwSZpgvk*8F zR@wT6=~saqM-diNl|&d&dkr80nHL5-ji&*E(x4|~SO&kZ6i^u;)7-xAVb4-%`Q(^0 zRY_k{E6Y84P1~&CluWxvt1wx{r|*a77!>fn#gwIJ>z&j`r7m+hjxZurSoE55>Ap)) zGl(_FH*t$B0H#7%RbN%qp}04AQ@ePzH4rw9vK^4+YE-CBv6TTpwo}ydw}t9=vpv!9 zeY+r|KA>RXoE$>4dIa<f&$j7sP8X3XpGq?A6$aE`3)pAGthvNK=*(M&c!VGx^4p;` zR6&uch(v@TDm4TlSeid!Y-lS0{xt1==LesI9_M$k=-_gt?)j17vQ&ZCu!5pZUADvw zvekBwAuS||(yIi@Kq1Kz4c-od${-DJv`m8-vf!B#Edq_GGx)QzPV@?P`Jn-lc&0!q z6<tg4*``VIxoHr6nZ6LA*S=|J1hO;hXq06oo=f%sLWw4_ugYo>9<oUwZ$$|!k9dqD zgoWiq+HWDvw6{&*X&F_cqIV<P!0SmD=vsI&XAXC>E;E>#O(z~p{n(}!|KAWLMn?3I zCD~bjH~nETV9xTn<bG5zes**vw@+VxMY0_o3|05t<hsebh&fo0Z0~qEx$d<KhU1=q zPP~yR&HKsyHH)MGGw)+k>S@;j%&yeR)+Cc)M*%a&n$G0@DO-};(_4%Qv{1i`P^xc( zyE6xD<IC3ME2?QbYF2W8IzjA91Ug3(-FZ2B`c8$ea9<8#o1DH?2^W)aC4seGUY41h zuT0<2*Szdk?0)p{{WYooyY-{DfZw)jXlE<vxR7ROraca^J)6tY-{I*0wVILdyv^C= z;%nc1dlsvI9;i8;WwM`RyTU#ZBzVCOc*i*6*~kGE^<dqZ`+<b}oOT6BFs+tOo!N|C z#PcC<4`D`RddP<dn41oOy=XSMI>GrwSic8^SIgKvb8RBzow8K9&6IaDiAJZFnlchQ zy>yc)M6Yj|^qr;<6&lpsD6Q%ELs)7k)ONEfqM6%Gx!HQY23@_QIkj7XDlAhs+Dg=! z**a}Sei58od8VFVwsL>3%6c}c%+#ia^{Uc$+$yV%Qe|zX%1e%0V|BKDbnV}%L$aN8 zA;Sb@qz||~)#06=#d)nM)L?v)H@u1NRo@AF1Yb7@Z??TC^f8%y+vD~uJ(<(9SfXCe z?O6YWt=*k#aezsRDR21%x38Ib@5prU8Cq-zFgdbKR97cj&S0ErN-TSb%#8q+2&r7t zx3W9rbiW8o7_fA4WvR1+1pz~HhA>P&yA<~|+jw=jOAdlb%ta)TxUw{SDoYB6@(eNz z@5oS}-y%aGWNUYc!mZtZta@jb9Z@laZhL&>gbk`4BZP(g7`0cq(1nIg*m)E{TvD-s zT#^Gvb`;F479kum4fpBwK$cj{Aa)vd=v2BnEh3=ygXj;rR>>Ux{Xor(ft``2p##-9 z&6Xs<*2i$XE&Ofg?;Wen{Dwko!(Bv*4XEL?x6Sk=xX!QwQ-mlD<Zi~=G<_Q<n`pZ6 zz2lU!wr44ZR6e%D!IUEYU`rWsoKl*5l=3yvTW%rUptOOSV>Rg69)-;G_bvrcG*_TO z|9qTM7W6Cylk?GGnKAKLaLn&nLRIe)4m|V_TlCv~9iKaT{~FRbYT<_RO^0Q>NtVkm zByUTvP2QA##o)c=TDp**4s3cK7qFz)>W<{%bZdeEw$c##dK=k0;$<`FnM~r!{e+CY zk~mmiPe&+a=BK^wPxNc<zeRFt(!b2Jw|+1#61pz(DQ!%-m|{_9`Nv<y8GTSi<8}EJ zjo&T^&Dl<UL2YmA<MCAtSRpUxKAtLP-u%<y#qqZ86{1MXj(qm^Eg(H3XcH?z&5`(v zCG`q(g09@Gbo|SF^K=i<)h$}Ot$n;N(l~+hLdN-HjpIkg8Ygi2$F1c@>|bH4c%<oq zf52!J;o|wm^SCKpH)c62qb;jW=g?SPBj2*RZ)IR}EY8(UfhCp2OZk*v>D@{kpZbxa z(tC*O_hNZ>dPoorY$L%b(fDhz;w};luk`MU1`fu&J1V_9Bb@P2>E(Lu$pxI&QyG8V zttrNq@4!aY6ax$v;R`AQuSbfhKviuZQdKF5_fU*uF{nxj0)mCA7DcmFRR#{kyxS|i zoF+eISf%%Us`5qSTztRDtx5+T23D!6%D_@p<*N*AiWXCWs#-~;t!fpms*G>8Rc)%Y zt*VT_lH02NG4IYw?{?d&-BdL!8gJ!(C$}n&Mv4YnRaHdz!?~g|usTvK{7_YbNLy8_ zY1JBA)#{j{SDjKBUz^)14&rO8^tRbnbyAg|?daS`l5N$tsO_q#MWDZuuCRR-^==^2 zR;9jTf4!}0Nu{D!aeu^$?p8$t2k0oeORb6-1dgnXw??xFjBwLprd1qJa!1L?Xkb&! zwkqmf84;#L7HU<*B2WozU&Z1r-K~lR_R~>xms%C`3V~&nI+8Ghz{>cxN=p_|+gD}L z!0Jj%7E$k3B5hS04Fwtmk|1gk7>U1}+p2?f6y0T8B?>IBjIWC3P~hfDOBS(!X;pbN z@OsRWMbw)h(pI&~w8~H*2^cg&U?jdQw^jS-D7wqGN_`bP-mto(BzO|XmCkfL&bW%4 z#Bo)1{Bc!v62}!6#vX56O+1O?ijC068&}mQaa`SX{Bd>HNgP+T#~)X<CvjZOI{vtt zbyCJv2RmHlDG=lQGA^q5ehCfS#Zc@Y^LAFo4@X<poL?DuGupDNe{|id%D~=e%X|HZ zJgqXYi%=}@4(@f#D=A@I8rHFdte=s%6NJd(@0WlV10nKHC$9E@FlHenQV<dngjM>H zoP_0QNCV<$Bqs$Ux&p2a84%w;F(ghDh(^8zS6Gm@_Y(JwR>WMSNWVrZ-uj1tTS zjjILYXC#;fBdQi_#90_mkQnb0j7FjhkA@nf@y|x017n%+ILw6+5r1NMtQCw#6_C1T z`uej{1%R<!c=Tss+<jv7I7={=!RySZHhukB=@7ukp;7pKWnny_VO>%p5RL93G`geu zv(Y^OF(NdAkWa@O3k0K-mSZx<lclt1$W#f9VC2(rN1tFcCs-ewJDwbEM=(wl9>ItU z;|a3IVS>@9Nylc7Cr3>ZjMc(pBn#sSvPZvQlzw#__IPsiE5Ue|@K}|F@dVl9NWo|n zvtzTzlcbmdW3BKw(S`AZ*<+btyh|G0vDxEE(&&J3mhf1eh4BR0W4U0gJwAIpNvdGu zC=Pbzs;w-DC&V3LD*|zrRLEnq$CIN%)<4)E!_l8U#EjW!jVkDlnL{h``bY9GqvT;m z$-|72hZ!XgGfEz2l)PKZBbVCyiz4y<95>CuY$S`5EKagG$>Jo7-&*d>{mFYO{deX( zan6*+^L6HySmRVYUnk@FI<=ESt?_(4ulKH@Zu{vM{&VE!Cog<#?5aD{=l(GK^?Q4V zFTAvJ*P4UP&%O9se9phV_FQ}KaQSnQJ>On*<LEQi_Wk|t!reFZ4*z)k8UOY4+$;WW z*qkY^ZoFmquX~5b_R0Ijlh5?uvaqJM!u#!pQ+tOW|Lq&sEPOanvg3DM8y7z~_=eu$ zn)qM8KjS+Kr~T$1K6mNi-@IPmJACn}OGo^&-_{>Lao*i)X6*iPOYiXdt9SoP%iTYI zW9NwR<v$p=Fx@-++{VWnm;9u~x$~+2xNqgp2AA{>*Y)|*O*Nz1FKBq<-=;n@Z^qTV z!y68U{=D_ypS}6H>k1oQeRTiK-r-+woBZB4uf6<9-&cNj!IUL|U-b@OQGD>pWnavD z_Kj203zyEm=`X#*i~jakWA+ScTQcI81AjE`hris|J6tn2ukG4NEBe(=J!Rl`OG}6L z4j;O3{Z$VS{KFT|TYlcn<;7=yxp(;8^Aq1XG-Xufw*UV7pPV+N{JP%Z*C+i~<Mq=A z-ubKF-gnub2L9E|-r=|Y^WAY@UcP9~r5Dc~`tYb}f7d&FN8aw(&r*N+xwmZWi{F_1 z`Cs)8|L`C8t*veR#-g%?*Z2Fywf8LT9Uk`0^rkaXf49!}?|0r%((j)(^$wr!zjwmJ z7oYOM^XvZfmD&Y=<?9_@ws!sVpKE#gjO%_Ky0+k+ub<sJ{7)T!vn_UC<cq(G{CN9w zFFt!w@9?B=El>XU;NhcRdMvc_>SwlG(>pwU=cN0_uXyU)zj*$)oA%Uv`L5pKL%&Ub z=e@aqJEQu-)32<V^slpeho}9z^Jhb6Et|J%^c|ls=(F_k-r<pFPdfKN*TVVjf1dk# z$30a~_YN1`zvQ=jf3bhzm#&+(^Zi-(F6kY9>bCRVS$+8zSM*=hT)g!8AFS&gKD(oB z)usnueP`CXsqf7m|KNwc!!OjFKJA(BcJ}+XCzt&^`QW61y~F=GWdFkaC$A_xbKLOL zE*^C6nZ3jF9?U=Y!~0$v`J<Ah!N30Xim&tzzqoLD(ZGfOa#?JM@2SLh&$_aA`1fNk ze`(={WbFKh?mYBV>Fk?&hj$&=bjh!4Ub^-4iQ}$*{EYBDy~F+8a~FEs@iXD;BB6@| zU-935PtBz7`DaYKZR&Kk%}x1~27C7`%5JXP{r11L$Fmd>`2>@EkNtLRCpoLY?$+ps zVg5mFDLKGh4E)^aPb|9MvzWJA$`Xt2^}NK}<X~da-JX|un_87vbercj-dMU@bdzT% zZx7Wb7G3M<NZ!ApqCT-G>e-XLcSGfZ#G;VrVDjz_H#8@2+wdKBvdqpeN#3-f!o!=K z*00@A>F1R@D3Z|)Hw1a*CW>Te!*{BA4P&f~FEJ@OsD7JCSB(|aq(Zacgw!7U(Iaz` zI^QBO>0YO~pwjt|cQIjfCMI3$Y%QpauO#B5zKNDnydboU5ZI7txqriACCkSonrJDW zzP5j5ae{AJ_3cD`8P46~OSS1}5vi5EpR%v-&#D7fYpoZyDElc`ewAf6AC^>lJM>`@ zmTBb}p8VPL&HZBDSEJs8CW9=d-q(}=K7DVV@?r<tBRHD5FG=b9vNpB(G}ay}19*@Z zr(abfcG0}9n%_S^T8wp_<^SUJE3rK8_hETLHLt_|WZKuy<YB1-Q@2T_?5AKZwrvf( zUg>>@9=f3(YqqKz9`mlN^d69H)w>C_4lPMcy4z{7$g7OMpO_SNTCob5*1O1KL8CH| zz?Xc(OD=GmEb^koEBTf|9=*$ohJXNjrfn|vSlz%neiZCs!maeS8|+~LH{gN2wP5e1 zsCU1Mz1B+aYOvRt!QO5GvMlO$FW6fP_FAL#ZVvWVXRwDAzt!L+mdB3GSbUAe9?4am z#U4u{nACe=PmN_Yz?*`qZ&<);l#9LQO7A||aJ?c^4%<yky3JXXK_9dia$X00Ta`MC zzGRfXZMl2H%fza0UD}HlCs<Xn=!?*~ewI!Q`bch}GsMR-3hO0DMc<N`_Z=5~YYcp# zZ(YBr_vMK9fX$!@!zR$T+oCT<4+F^BXgBe#!zKv&wsxZr!>~nPWiiWe7JZRCbJ5%8 z4Ejt1Gw55&B1<py(OB7+z3qk-u<T{Pi+WeYy!&M=rcVtM(6+tBnW4KoG3kD18$&l2 zeOjUs_1(7NHG@8E$(f<Mfo~b~!9}>Q$3<T*^|4;V!pu?7M?tad*tOjY`qqQKS0e7% zH4_Dm-S;!-W9;6xVN0buKA^t!ppW6v1AXq;tt@7}Z<Rqz1nT1^hV0nQL7!GekDxvp zD?>KaciV;=+E`z6(bpXF?$c_IOMPYHb%_l6puT&ZEyv(|H*MJIqVK4jkF&u~3hR6M zsH|^KX7GZ(n>MuNu)dd1nDs?I1?y8|E$h2!!woDOAC>iSLan%6GBbGLeRn&r9E0~= zyP?CN50-Uw-dA-}c;AMj^1cr;=!5rNyCIds`!<{~@8kNe6XtzttmS>zZn%M^-ed5- zDsj6d8T3JYw>hsKgZD)@>~Ya|4Bm&a;Uw_BjYs8uA7%zGyf3<;Gl%zWJYn8<7i-NY z%KK=n%lo9^9FzA|i`y;D3|@HOP0nk_;C-PD2i?JY4Bl6JQh48{qw>CwGU#LQhBm-{ ztZo4B+jPRbZ`P;aeKgkPeW49ER3DS~)z<&{5nNL+vV4S*Md*?8mr?ty!sjAwiPiF4 z{Vt>0S*1=%q|aGRE~CU*{mrUwrf9Ub4A-){nkgD4V->WFZkEx?tU_kWMi;ZZ=xA)n zEt@qGi&U#>xn<)wBK<0c=#^%bQL3yuWy%I_t3zefC#yMWIorG1EgM6v)r75<<d(fU zS}fHlqZMWJA*%|RvJKo)fQ~l)-Le@=R#eM7#3(IBy|Ic-My1JUGggl=WgEDqyx@96 z#7D!e%3{o$n@rg#Dw%O=)f2^{wr{dJNk$z(Z&Ch!_<zVRM|~+*38Q%&ZQ!|OW6-p4 zTjjzn8{ZFU6p=iuOQ3a_vaJGP$~JT&tpVp6eFJXk3RX=}3P=z-v3+Uv0>uLN>sA@a z=m97U%HPilf2FZ-OXMGo;@z@8fxN8{|E%a+0{F9{Z%NP3ioPZJJ}df`*!ryKTO#MP zqHoEI&x*dq>pv}hXKm!%B#Cj{J=^(Y*vJQ@yKUr{OO9(M?>5YQ!dqr16aJUc4JYV- z={wis3GH2kGbSSI%As<u?Cp%%u&WwR%zv<+m@EkDV#0{-;lmihC3KDb8*j~T9AD5l zVQ{!{oG;userOmk%y8qa!#nyKe--0y`9<6<18c&K=T*d$q4<)JvoeGeSw(zJMIae! zSv{a4usMvkWhk(uqIfBv`c`<i633@Oq^R&73dNU(ae*X3D6owL{X+5A!o^)A=u_d{ z6$%^-dv{bAU$^`U@1Ahu<or;4V+9xW*_y)frJ=w^)f5H{Joxe}0<RZSzG~V)oN7`E z@1byfn`+{FK#)+;qENP?iok)ecYB3#6{Mo~si+_nUsVy`<W>}lZw>`ksiKO&QdLw? z5!e(erhL`3l1N+AD%w;L-)w8zRAJjx5q~AOP5Z;%ofXDakg9f5)!<OPwIaUStt!4I z6lhgV!rdJugDV27i-j8MNm$hByBf5{R<k;+=vDnH;%jqTv@h&!t1!NMLo2+URO1W9 zlNH%c3UNi7?WB-Jov(sUC^o$m@@^o~wkT;@WO|7N6^dTfFC1Ud-J-w&dWe3)OE5od za5uCf-Wtl{F21zFZO}F~XlN*~DQsI5@~#wyL=0+?#hX6cE(*t6x*HS@?5BU|C0mW~ zHmoAPF_gtyMSNR@rG=2~qG6%H>IzE?A@5cqZA}{u*%{oCAY^eDe>tZ;2k9O9$W|nx z8(tA#70MyH%@vjw!U5Bw;i16mVM_}kZ-Pi$(JD2`5FOtw-r~!08?=w^p_8a*DEGBc zkN<eX2)CM(IF3q=KaNUH+Bh0{{Bbn$B#xs|#~VkZPTDvsJN`H-J9*>iqT`LDi%!}& zDnI@>DnDuC=(6LFqs#vH<EWz`BQL}F7UYLnxTkfy;8}whViobjp_Vm$DgtkYT6X0T z*}o#NH`MapKw=9k0=o!>S+p++<50;^G>l>i$vz{ACJ+mN5VRNwk#M2-;hq47Er1q2 z0)lU(ek2HCFp`A;_?ZYo!H4+23|zSIy?=rj93=>i1Qmpv1mR~SK?S1^9Oh?X+<ihg zEE9whyatD>1>t8Pcm*Ab6TY5V@J^HnFA{)8WDA9c3O^%}4UEG8aj**_BK(9fSS|pK zq?a0J`uMYu^guUU81!Yq+kJvWc$ol{j$p>I>Eh2uM*u`W5P}Pr(VWOI7MHoBWVkq@ z@aK-=&p@*Px)LD}Ongc{m@f#WlN^%~o-Cb2<76Z-f{stc2@3?FRGH&&!jqxO2)<E5 zBG~wptZ=YEG)mC1S>ef1f&^q4Fm|)+6Jv!wK`7nnn5^(*=uU#}BB5|(7KJCu3Wo|n zqjepd6`mZe3mD4*aa4AwoER${CIF4Hb}UwSQj|5IyG$4?%Yt{JtZ=vhl$v)OR(Mj> zJe(x~5LA2$P6!hbc$XcY6`lm;u>Qe3>>)dipCl#^6ha;Ikk>!&*8IHj1$me{@-TJe zVd}tBGMsnoaC47synp=G{P_5SIN#%ZkMkWD$#DGE;m+KTj9Vo4-X7Q3qw|sE`zXIh z`8dkIv3FR$jq+=h52O4Sdxzz_D8EJdD9S&vcUZoO@=KHtqWlkghvj=HzeD*L%D=F8 zSiXhwE0hnR{0Do7<vS?9LHP*EKd^ULzJc-!ln<c%|9Xez`)B<Ari`kTe_!vgeEa0r zCm%lf@AVGLcTawM^3jujUhlAc^W>K&A3XWr^$yGTt^mI~`Pj+7u6J0zb@Ho|51sty zdWYpZC%-xQ$jLvhcUZo0@{5xXoc!N<hx7V)J@Nt59X#^+>K)d3>^dtRmnrkFclcQG znRNJ%edXe>{r~Ad_P;P8_F-qaQ!^&TIV_y5)Q>+d>vV7o(}8hIdAp?ypRwiK8mb7c zy{Ng918-_@ha<RovU9kNP+d@=ZM;2LO;kI7oKJZ8Aa}M(C*bxH&iwVoNx&(p{s5(L zcr&~+*^!55SES+HdTIS+-yV)5ia1=b<{*|EEPTm|zy`kc#oodpQBGTaMR9^yy&pg+ z8cylhv`Dgg5ScJjZo>k`+XrOoharh8TsClf?2-y^M}X=N%ktDG?B$TKX`A|oya!QO zINj+Wb~B^)5&a=k%smxx4rfZgB^a<-Rs>cG2Iav%#)UHJH$%nP<;Xhi!$D!3c=EAn zDuYRBK-n8uijmADm5H;s%VeCkd0>V29SmTAlCYqx;~=L^g%#cdvd(z9#3;?oSo2&2 zp4v4)-}_+ltOy7uee7#2HDIZ>tDX;GmI|5G&>5UqK`Jr<CWzQBB&g9Kf-DtYI;M7C zl{Jfj1)b=)H{{)q!a+*}no-RyKyg$So$^S9LPBfEb_BK?3s5n3yw)%tE`yZ_6R1g` zw%2wQU<bvbM)7qX!9erL)CF*>E4(Sp&fPuHT;bhEs8g04uL$L$5;dQ!J1XMDa_30R zJ_|xJWcvZDj{1LleyEt^X$&nK%%>B46|zCoRhAYokYWlYdk<P5bJ+V1_Gl`VUA0fh z%Nd&xgZBU?9^vOe$ZMuh>Re{?bVHUFWE>4_RSzf&=4^G>n-#@a(uKhf2hkHl)e(@6 z(pgHthKjLNDP3HceBe9mZO2><Ac7e{xa=5G2z&R-3giXPmK4Hqlna$+NkOL7Zc;E7 zAuf7@6!^d*=CDv)m(y%3Adw)ztcnFyHLJz4tp-+yy*l7<f0Z#}Q?X77-RnJw*ryen z2Zl0(LC|P0P`;%DtgRIm0T_r39aI#rBoZ<ht~4_Iy6uJv)B%PF{BFYy5y-UUO<~pU z?t$j8Ap)A23>hMr!F=0N!Okp4*e?tm!4Y=kaD;tugqyL=ema(*HIO4&!v6m)ODOpt zump{FKsh-q0qy?SEMaplOE_?{S;8pM!ZBGwFqax~S%TXWE=yqGxhw&h;Zj3emM0t# zHE7wS2T$0U!xQ$4Cm>`#9Z%4T!4W*+!2gmbT=YNS2^vNxizk#Hk0)%)<p~E*Do?oV zI6R>`mkM%ug4+WwPk{Smc|uwJpBt?6&vLHd6-ij;AX4bT7_5@eQ$4V%fhslawHkqN zj5c5u0apjG;$LNUi++T+mG~K9?+SV&<lTml#>#eE=(?;(7ogqZ+)8rdTq&L-z>kpK z*+JSZvaPswC3S@n(iYSl0Uhd=&E130isUS;t{}FsYQ)*mW?_}wwWa2aFDq?(%2_L8 zRj2{g6|E{1v1%l$D@?5%Rhiu~6ftN;r<Izn#I(}Vg;NVFMo8KsS7c?Q;Ov%*RwNRK zp2$MuhHgoCgb>UUdsg-tx#x;JEA1?pIg+kh$Ylkbk!@KhU5RF)6y;i~wNOf<wMFJ= zvl$ZYA+JszjY|5QbQ+aJIr%g?>a(EH9KL_jXcR7f(rHwj`6ScmWuJ~lwWBr&AC&_R zCYb-Z0p_{g^11nB1I(v)fx(04I9@PpZ|WQEWKYxmHA8OWdBk~S90xe2KnV`i^yAOn z_{1A~o_5^tS<3vj{aucF<Bp*<x|e2ia{u8wJ-U`=TXOf|DgI>p;ksaQ`{4(xll$#_ zmZzD|@-*{Vp1tO?Tz#R*s$Bf6jM5>e2Ndy<E2@&qr)}u31n?|;auQU^Og8BXtz--H zRwlN}fC|4Yxo+AAr!ciu2JzZti>4S>h;ha$6Ic?uqKuN6o5;fWx{{y5aeQxDp{7Iw zDC$Fb;=msCxi6oYx4QC;yv$4787(PHUcq1_9cLnLE>tFWLJQ0ZEAv!x9}dRdi}q>- zpVHzvv`NV&{`8R<tr8+wS0&gx)(JDwXGube!slgWMjFzleN~p-D90cJmz~rqM?V8e zRy>-Dnehq;rnRQ(tf16K<pBsyX;txVrF18?s#u=^Vl{%3AahoCW@|Z<5)ZQCQweR` zUHPeRRM{;+A%%-dxW0txsS;DEgefQgItOj<Tb;GL_l=JN2mdk~4J2LZYI+~d*3=CD zGQI!*vG@M*RabYOe=Y<_6nle$rq<Tn@%G!K*iNq4Y1nbvL;^V<`CN%bg~w=XcIqn3 zI76mj;W7Oo8rbHumpjeu+Ff?O&U~32XO`JzrtFNvptUvufdKwU5H(8GfE7OhB@wC# zSmFD8o%8wJdjaj(j&=5rNsIS$e!b5*@AH1Y&-=X3`<x^HD^(wjeqkXiRJq}|bFLkI zc`HPy*9f}VSJ2$(yE$0U?C2LJVvFU%Y+M+7Hzl7o_!ObZkGaWNfbHP3gmp7?Gy+ek z3eD4Y41yoq7BD&6!AI=b7BFQ4s$|-xL&sa4TvP!!_HG%g0)?@63t552+Mp(|khK-Z zGkRg<-LzgDdAE$UwF(DlpUm(C@2rW|vQ~uJ%I!RFtChb{ymXDKE6(&*5^!_tzfZCt zb)D9<FEKFY#@#8X#c_|ge&{4qDqQdMfM1a9S){7pPJ^`r|1V|xNN*?%{kyaM(8;|Y z6x$D-#Cb1f`&x$n#D~Q8RIGuD*<La}V*5xT5o&)Cwr3^~o4@SFKj!<z$>VPP--GY> zpOo`ov{L;=`ToQQ%=b>iDGdI5@csUiKmMTje*Z~0FH+YV82q<C6uwujC49gC<ehDf z@15#o2mTk~`{KGZF?Q;dKu43lAVt%CRH0`2;w)b>!I#YK@w~3m5pS2Ub;(R#GKm)^ z@RGS(<=wok%A+Z}gl`K|b;&GUGDDY4&P5KDo!KS471@|A?7~dULN#jk?!pAD9MR;f zv}oQ{Y{Y#3g6TGbtvNP=trcqo8-+p!;^LB3S!gz9$--1xm`0UWx@r{+hEe8UB}MC2 z#WG)<xo}kuWQFX!${}1Amaa;ZA*Zl*RSr#x7<H8fWEpf73*?e{uw)7>nf*YuoA`>8 zUOeALfMu|a0Ba2!0oD}v%g$~QV9jU|;BAg{W97AE3i}n&bTl!k`VX3>qh+lHU7})s zAT<5U%q14vZvL>?b~A@!;g=#!*E`c@)a(zErrk7P0e`?W9W8e)=ns^pe{sqEfvtQ0 zEME8ia|cage^`^d$mCioyv;X6f4tm!gZI#k=&$Me8#ov^-|Od!>qj}m$otc2z9>@7 z5jSq&=3c0$P5<jAv&{rUeu~FtuB<efUK4C1Ppz?excBi*lUv^41^r(CkeBJnrh4Y) zFRA3qWS#;@y$SkF|B%VN!9~M<u-{L0n;ssl&usVemvC|SkQa>j!CQW+-}D?A=TRnj z-p?H28O?Eiikp|8=he=ClrdJ3!SX6jQWBF_42AvR^ITv>dmr^vdx-y@%lW(?++M-0 zR`n*c)em}2PdJXdu4?>Dx1Z|c5X@?qt@|b~({F;7hA->ptEQWqzTEVct;NGRO$$uE zrAkO^x*km3FyG{VyUKLDR&Qo*F#-OGIzdxy0#xdym1gEk$$Nf{$HYvo+1;61&HFh^ z%F~#pdAF&K4}v5SZsdigI(^!h8pYJum>L&Tub6rpQ*Sy>C9;65_xMk>m!mQd<40AN z|1@N=sZ@BmscA3A1q#XkIDr>re6m!To>wQ@OV5KhX}Jk@nc%r>er}_mcqtofRpYtq z!%q*mduTJyd%;dWcr&Zf=<_r0WHW<)@C2s~P3A~8;ECeVZ04xRjQE*hliAI2Oh41( zX9j!@4{fyRews@xxc7rW_S5T4u-yd5{UG!+{mMhRK`+>&YP+(TLppA>*#rY7!)Zpw zyE#3`p)O@ytKxm!;?1S&$~|VNIe0!B>^7s%DnoBJb=ahK2*>Muj>jt2PjhB{$j`j& zrTR6zj7PW0aE-<mW$QARH3K(e%WO8OUIVJui~NEyUw41+H#7Wnm&h{1;mBtcB72_~ zjQW}0Y=(=ym!&uQ8PM{aNpUSX_hujG{JL%>&z#H#+&3}map!GtiW}#3sx^3<s}8&j z_j`;&^nS`^c#>}~#r^1Ge(<)R8KJBi(hceB`uWt0UU1Y8fc;`NvkN@(&B<8Xz~{2+ z)TkkqzS7L?D%tB_24X!pCphWPxE@Hlp8bSL4V%;(=CWnrCwN^2Y=`^&)SH~i<#GoD zA49h59Hs#@=%;r2m-*>2|FWCY8!ew6@hKm|;Qowd={`Sr#bn;mQQ^!kp8{(Q)%BXp zn_h;4{715><32d+^)h|XPd2k#2;c0_xK&MMSe`XMEK9oonbCg#GHAdX?e{Xf%!6ek z?tlJ_Z)!L}$}{GnD6R~K_ES%*w>{h7+(FZ`tIE&a%GgyNGCzzUlIv+N1;XAW*6Z0) z<&6^lv1;%0EBELCu%s8)-wb#U#*ocJaf7_nac{H_wCO~lE@a;c=WMAlKZvt>T#jDZ zZyqXE_p*@Ov%AW0y}D9jP^M=`m7hA`S3c<#N()x8TCdPGQ~6XW$OD|jHpSK{u>h6P zN^LQ;%j<d6w#~16*?ag@(*4hrwvCLUVxoGwc_My`sqFDK#~tBe!l(~kYQ*sWp6(j2 zr?<+h>^7U@-VvWoy`4=B+1Nq>dh4gggq&>Zs4KXO{y*bYZY?R>v)$(6g8Rx5n^G(< z%!JuWSemP&srN^5`@PDZA_VeyjHaTBMYmCOBwIP;{V*<LAyjTDEk}I_WJ*7Sq%Zeq z33Ev~=fsK3R?_6b$-4A6HEP63$e$NX&+Fy1#;+XoQg8|3gOg3qE0g`yTSe@8!4YUT z!k}MyQatpdIBYUoyh@5bZs2pE`7lFp#7n(Kl-LYlo}yFl_?544xF23Hy!77X_55VA zDRd^A`WX$#DhC7@a_4us-h*G84HToiN>2UE=HR}U!%AJJ6XC#CauI+g!#mRJb^VRf zQm^~W-fBfalb$9Yt>glT;cVrro+JZ2al%K&ZX{C$LsI7cM|Ol=HuVl&jp9t^D8>EY z9Yj#J@-;tqxz!VbF|f^z96QYBxNtV$84bj<k_Iab16sMm&+K6);Fvo&t}qW3vwn-R zFPPL3np>ee#DzVEAF)D3yl%0m3XMTk*y)5XL3{?F2CvvIQ^~A?czD4CZzH*Vq5O5S zwlE<-Yl0(8XXJ(r{29y@yhc*tr|f0X&;t^EEuvMjP7~DgC>xZVTLWuz3Z1!=&`Hj9 z(>PO!SVnBagTr8N#7{9HaewrI3T|bu@KT5T88?IU6jF-b1@mjOl{E1P6NF^vMpJpx z%N+BAo9g{wX@gY30e{A)OvjE!Ke)`FaTglVH!A!YOZxoa_o~c{mH`vYsx~v`F(J~N z84E&z^k>{MVnNJUK4yNCsasPclkd`o<myHY0fy-@pdSbP95*xv%-93W&ro$19MFr* zo7^v<I|U@g_c2$R43`QVMOtgFTn_@h484TxeA=4n^)%9UF5r=kcce7&8bxq97pw#K zFxOKV&QVL+A6B-_n!vlQa<@+^0#goiTyuIv@m)S;P)NFr8q}<&-=UcWc-N=bF@1X( zw2_;c^U1W<=c|{=J{t^qsbkC%QE6s<#Nci(1&cXw*$kN5mPNyW7B>5r-I4D0GTqtK zQ`yXOst*?7^%N#Am`YjJdoWiDl0U5R>SFexVl)7g8Z*$xT1{JMwx~2TEr(VENg?bM zLf=6n4YqnIrdY7|g0P`h^MNh`KAtndR@IxKcCzgw1M>};)fJ>Sb5CX;#405M*x)zR zoR6GHp<r+W20XGYi*mrc%<ZbnKxv8^zp2*0qyyRm*%Z3f>poASq_+DhhK;((ro8AX z+cc@d73c$^So8q!!F2AUoTZq{%hNva=;mNHc!w+QO~8CN>;@d%(9#q5Wqt0Qf2b@| zZ72*}1(((Q{-z3o&ds6~W^87E^eI#{F*U5mV<j#Y)IH9pk2(ZLkr^GJo9W&g-D6NI z)<ch3Xao9R=LM6wT^HRmo9UCXMWaL)nNYg#)U-4+x<d`%8dE1N+rk(yI$q|u8GXhh zceNC|wa^ETR&SU5<q|JQr^*9o^{7}LMApCxgtGRn%&IIzS*tfKw-EK2G#$l5><!fH zCG`BT@_q8x70IKqtZk&!(?B%!eK@2o`FOdKXq;Y2T{=<&r{m&wSkF`PAU(O3_S4FJ zZ=3w}nJU&G8G-a>s;C^~My2K-?pC(?s0p^lUA8vz;+VG&A3QZ>-(I&;(DSt9R}1iM zT{=Qb53BYi-L475^-<?x9QlY(E&)VTkL_<Ed$aI&_(@eu1MqK5*4cguE&K2`q+WH| zRkK9yV5)QJQ32TH`d5HesCpkRxBKvSbWJF!KDqCZVkxmtj{vJ>_TQ7XT3WKix^z;* z5*#Zn{w*eO23-248cK^SE^RDMqf3vG_b|;9>g+fj-s)CGODCC`bZ+_0YUBs7#(K2= zrZ2noU(+px_pMEi)g}~~Ypw7yumm4OFywr&<h)*F(psYr9(QQ1)kiHK_4=qcxkgA( z_p)`I0h|@$B$FAZrMbym4b+w@egVqVmAM+2Ej9cCvZa<^Ahy)=3&55JEdw%FHw?Xs zDd4uQrUh<o%EI*S*Tz`V-hFZ<|4pv?%X9RtyDO8cm-D^jo)O|%n^N`Xi<+kQATxZK z{sFtf>{yjvPmmiV%2<<o(xgzyQ@uWqG4%|h;B0r%AOkfqie~1HqCw3_)7^u>JLO7L z*`#g(YT~{fJB?UyL<wBC7bp>M2yVbB8gNlG;JPDlD03_Tlnh9hJXqsbZuK_PR6TTi zN_uZ_u_ls*=mjPKtB8p<x&>PALL*>$K2ol=MCu9VC^(n^`4r6{AXB4g0#P($vi<IZ z0`CeCCI$Ufa87ECm3h+i?3Wga287J*32O}N-<~00u+-bhdd%zDPlukc(MJIAL=2E@ z2MM!UenNH?RNg!T-gB_VRI<+V)9og>hE_MH7n%I3^hSEAs*!FhOz=llb|M`r<H1Y! zj*O%sWOQ@7EjgvJ!rReOFT6A*r(nF`KQ!y%2nL$jed#_D!$BMoOm0njkbs|Cl^(Fa zYtkXVy7XIh`Z<@`<nB#(6ZV*NbN8o(b)P8v%MGP66!cns;6*>+V!>nfWsS!)nb&$4 z8-U(R5hi_B$eOnpTC}|vS+Q%vwKAKD0eozc;+*N>3M`Y`;F>`8R+iebB_PzRCET$@ zP^JbwL^pCVL$kJ!zIU&ER8Hy%_^4J3E#h?dDGJHM_8xPoA8^rq>6PjP3)|F~wOcUF zS_46YmtuO{&EsBvYMU8-N|RTWPyR0DPg&)oR=NzGQvbQ+ic7uBDAU!Df7yMmMiwlX zN6<60Y}GH#W-T20ETNfKn4y^SS!S^a#uUH;Li(;jnP4%I!mc8aRz>H7wFJ5l%j)Ma zDd?fH043|V%p)mU3HEkM1<nkZU>Lg`Z+>B-VR-;dF18}4IwJ)|4}O4IdXRdV+j%hP z6;Mpe(R(k8u90UDQoBrw#m)<cxK8z(8NXg23`(^RaR?bE^|&;FR%s-9AkM{NkKjTu zJA2ya=}=bu%Qm<x<TLxVd^dWn$th*k(%TxPnPs>wjEC}o^t#W;TV$iP(v=LBr~Q6r zzZ8lFStx4JDl7(2NEo#>4&|V=#*99#7B$*h43;XC3j_uO%!OK98jF(ra5QLdNE1iJ z!7_HQ<p*>LgQ|kX14~tACn}i<BC@4tgF*sC&~1O$IA#Hum?iwLhfbYJ{?n@TCIVu@ zMN%l?Q&yxs2ng8v0HnQ(Ca{75jVwF1EB`afPgZz+nes0kiOY~*<%(rGBFQWmme<kJ zC^nx14a41jeg)EQ$9u89V`V8dlz6}~|I0%~<`=U&=D*kWN5VjSb0+gk#4$9E`PW2v zMB7J`?}PcRw)=wgUziuc1=Gk<S!93dzbro0{b5NF)d8DesN=?3tA1l<T$Zl&8B$Ah zkr0wiQ6d3mVYDE4&V^!w<R(5{<A<zdCjN2!vZNP4@K(k&U@*)E2W2ayHLXYr#Du7H zt<a9;5ZMnZ>m>^;IWuxq;`VA;5i>in&uJx`8t_s-RaXp+aF$i^tfikC@rSyBL=q>9 z(dmefRCS_ZpIyQ9I@2Q42ebvrX$ep(<6VO+UIBVBcQF6h4_K8y2K#$b&S3|59J3ay zP^2aXqUW<1Y3X)~Wd`JlsSh6Jdqg}A4g;R3z=X?+>Av(jp*GbI<LHvR%wx2-Ae)38 zPzk5))TE0&M*?EMe_4cex(Wl`jF6-SusG&UEUt)L77C62We=oRTHsHq1B?|JMJPh5 zjDVCv=wN}{EfE0Lqa*+tlR7Sh3E5t1tK_B7iZxmbWuyWs{;1Wx72jHf$^_u24r1&z z<ZIPihMEHo$({n!A{OeEcb!_0!H_AcldwF>T0uhsWJYTl;*a7&c`P$TXc{M&N`_o5 z-dL(Z(T>lxa*0KN76Vpd#Nq;3fw@!UBoTlO*(d9uZ2}fgwiKL<2><Ay80|i*S82)+ zwV3>GedDhy%e>98LCbrnU{iwT`;-NfME{}WCjTPV_7WS|rVe3B>hoDm%G8B1<WPOb zU{V4BW9&i$53;U9LBe=}#2G?I8SB_jdLQBkej(X10y)us!g6#CY+YEtyQMGngk<TJ zFlu{G8D!;_SZ0yr75N%W&|YCWx@%0w+dLvkLUQ%jaF@??ALeY9-nZL~0$OJ7esqkV z67`zIRm8+<Df%gLb5hYx%61ZaRt43RhW8AkW+4Xn8UhWnrPDvUN`U##sb5mX#*`w9 z5i>qrQvr-d66Ug1RT2G3r_m{aAPLsOgmQ&$qY{X0mFTs?dx$JOdh(W0>=~|6bkBa` zT<U(bwI?uQ^CultTMJ;O+5}ga$}u4X#S29=KVi-NEUY0x!oqMKU0>)j`B=3>ebaei z%^npJ=|XdLa>^`p@>van&-MsGMb(NZEg8ka{KB6&8XHtTWX}M<QhqFDzNavMt|-i% zMknP?RD`Xon+N+e4XYZN<Y{bUti@R|&IOmu!R+?+bFm`mz)ZpQiV!36-w*Cjue1e` z_lO5<Aky57l}2a}PV%!a$3&qm7*x4htddrR@p&4EykMA@cpv3PQ+2irU>YVg7L;yy zAetb!WL^@G8Q)kzU~dq|s&X>|0cmd)H>^7dW=5r54+FD-Bax2+BAyiQ+ie=egCrLc z&~+He@s!3Gc5ozu&V=dbB{VoI#8KX!mJn}5m}FB22%&!J64n3<6*CnTf*_1<$CwSW z!6B65Y>FK=dW>kt!1g41oW1e&8LI$dW@OfS32jbG3Yp&s?yv$JVS<=vCykvTP|Qlg zN>yHfb)zHU?<6$h88mWV?32=g+I8P->IEdcNxc(GU7>a%5?_Vw49h0Z3TxZlEAhV) zd`PM{Msk?hP`Y=Dy}na^;EGtBqd5wYvp3iJnUg+G5DB2J4wo5-8GSz!0UNfevYiPb zD*<~XlG=!Dqv2tS)=X=mS*5<H%P~gJS?v-bE;Wu?(5bQWLSfwe4looUG&n!=N-UBk zudP&;yq8MJmZ#I;3bHv8_yq}Hu;pv*VA&=T=;4+@@l?cUaAjLjT1#K*qqC7<PHsBa z$z}wOmCXodiDbk;ZzP~2*(|v%nS&%kJa=qOM8Y`|)6i{OB%~=@BBas83ql%_v{EQi zF3(aFPZ!cPMIjwaoC)WwLl({4nq2+ew<W5FzRV*Xu{@SN0rQ~S?ml_Ld@uMZ+XS;S zuVY?V$ZAsp%W-3Q8k1+2m%GT5;ecxeJGLdfjvZ`{Z*4>`?Z%2d$S+JgE94ikGHZn2 z0e;8A|M1eOQ_a8mw<93&>koUmi6y&jxoa!DM`Fn@Nm#PP&ufXe1KOcn8Q7PNxx(T; zV2Qp3lc_@}Qy=v)Yhu&Sup`F4wI)FVQ8Z()g$K;-%3di7yLo`3Fbr&{S%3g0Ydbv< z%`Q}7a)_cS*BebI%C8_|vFA_?b_I=@UC#HJ$~Tfznpw8Mx>XXT^$H@&S<i&O{UWxD z;6&~pg$$FsDjjx$9PDEfJ#@HLZUU_~T%*r6`&qBgcKg|wtXq{{N#QUFC<(H5S#MFF zgq)xkf>48cu$Rcru-#O`79uWMI}$Y>BZwN$02R$4Zz-%D4NNAYU$(fIgHg~@Y>%jL zpNt?(z!41QPw6RGV6RMDbb?q-!#o3ys(IA2n<Fd|s6-<JC<Y8EJ79WVCNLnYZUw4> z$gEUV_-ss@njcTMcaif}lPmvZtxyN6heWW<Ud?V3*t_!z@vq`;H8WhM<m!7W$%;O5 zMkR3_qVIJ;ljZpx9Q|0#YDuo9X_t#d7o54f=pSNo7nt0v3by{6Iv!0x`&IBjqZcf| zM%6ONFQU99<hPGsRQ&~XvjzJ9vFQJ=9Q|uXs?v(J+T>APwaTuRx%Ry8-&a}2tq3q3 z!>&<oqt(sy=?;F?rYc3Y6KG2IS}IU_uuY#`d<w`X{|F%Z`1sw?$FyobhE7hvGRS=h zXbCIHsufEozZz-jh77K#T?49so~VbJJoMz$F7`0&<`<lWLr2e{Ds}=KGkF=p2Ncc* zyC}d*B)hy6yG;EQP(bPhL;(a;C7=Ob0hT~s&rlWS`X;ApX$J~5i=QUPPx9o@{__D8 zuD)z#zt{1z@xnl>mVfohRZWwe#-nblPiy%_Ljfw)_Is%}uuoCHx>Kl+?qChUNT<3K zaE-1aUz6*PYj_o9<=Z61leV(CAyXk+%CaD$8u2ALbJXC!#QY2_Yu2N(LvYEiSk539 zBxm|X{jw9Xemm|21YF4)%$E+&k`P%M&VF8;jEsnu9M9)AidMqk-xrC78YM9NKTjT5 z>45lf5<7h3xl^Y=TOzq?`9zrwmoVFC`>Q|XTlZK%3Dkk5{VDYMv2mEy_i>Ye_Dk6D z!1g{!;57nIW04<zP056YUm@mAVwOBc05kp)E`C`0v~<`ZW#RC@Vwb*2jCM4JG377$ z%!EIMD3klR)M5!x4|6NR(!J#*stWBJ*u90PR1ddj3~Nu|r{#*~h6d#sRsn4cEMfO! zm|X(9Z?Q*}_A497!=$*TD^}Y(y_D%!CE7*Vr-F)Q!$U1!dQ>TN^$xQA{$R3hO?n+9 zl&nKn)$i&W7BXZ-xbj~L+D!^j)+LkyPq4HpqV12jYUtAl|AdZ{{L`+=v+50jrF-;Y zoB1;p)O`n|<aw1}wOIgusw@Zj5Mse&a>-BmCp12z-Vj*YuaCzC;F$gc4pcy!D$2if zM9JVy=#5cJHnwbREO=acOg$bTi+W@8YiQ{HdtiwwPRG)Ku+(j_gprtEQB%j@NpI$k z<f`M~1wHA}mG;+vw9T?!eoeX1>IKJOsh*c>{7U5ER<GwUyuY>S?w2(q<LpHMR)-Ov z_kIwo0!7h*MFuTNtXTA>(SE&K$`u!5;xd*C!3i1HHQ_LmXK>sJtK=vcPu$FSTGPoE z&pgMBr#Xu~4|aF^Fq_JjZB6*kIZ=2*j4Q!)q}&Up!0*U6A8!E3mV@k;@Urf87~+{l z)Xy2S>FY!V*SlbaIM55`R4lv0%gtuH9|hAQWDeE^?8z=yHMz!-t9scS#R|uOsv!ox zN27J&S_whoYQK&<;A~XRRdy7J!BKE_gTez2c0;!AXUSDZ@DuPlwl#Vk+Z#K!l}qHe zDZS%o<xM~0qb!@8^E2~E>@F09Nr(aCVz4uCQ%-(%!YZ!OiWJ2?iLUepso$h{em1U~ zJ3$s$*vXnW+E+@lrhJktYiySB1|JGmG%Bdr`-oMS7U?&@=MRyHUxi#U*jgE826*!B zS49;z<yAy67BNj0h+c9dzu$238_|rAR?6vOooK1lfPy|8C}%eyJSKa|A<#;({m|l* zT5lH@+23R?{t;-QcBC=u$jUyAo~E6~<bS*YtyydAc3Lh}uF$WY4{6FCBdZ#71@mDv z<NV(@fsRv8j3&_9<mzLXZ8Y=je(K$4o@0A|`I%=qFo$x-wO`3{;~=Y!aBuo$)*Ovx zX7yWUN4F5XY=)nojP>vHm|fTv)Ox;S2m0$#({Usr!@T^?PJB^IES9tk#mwV(_8%*8 z)wTAfrW<8P;!5-z{M=_VduC_eYPx>DUl;lx#qsCqrjA!wql_iK{_mO|kzwk#u4{9X zN3Y3EertAS5B?beies;->op&Jes<<3w%7r<1%|anvolBTWTPweI$ozmSmHv{Gxo)s z_>BFAyU;z8t3Jj4sfR4gUvsMILGH>g^F{}5nBT-&(91U_nOmoL$*X(J%%0>uX|iTl zcPCf1@R8g!>57SJUsJF(xoU_OCO5Stu9%Z(VxyB8Il1Z;7dP&TIpbX1_~fd;adG3X zm^0qRl_ys{?c&O>m{acJCL~w&ySNEg%$eZgCMH+yb8!=|m^0DEO)BJ@bj6%WF0LZE z>i={3Dz2DQ;o>TjtNy{oRbDZt(#4%qXv;ZQ%sI!!om(h-?iF*+b#arEtG?&TPQGH! zWEXc{a#ha7op;5Y^ITjqx%zG!H|HY{Cc)wrEgvBv+V9j|TEjd2x^36w%O_o%pE{Av zv)P&M*^)qqnb{)y;;~uDCFSG1j-JGAS0{(d5q9`R&SWY(+`C*l52VI$4vsLl4KQUM z?)4Lz$u%Vo0Oc?e&;`bo1`-O$k76LXsX0B+Tsh#++_tP5eY!chsXW<yMfpbzRW{>T zIdj+Y!^utEH+>nGg66Wa2glQqp)Wx1t{<81D4vd%4gEib_y-|}vY`tL;ml5Ks{iA* zt_P7aDDT{$=E^^a8ecYagz$qE`uYi9nVqvU`-YxZ9Ex7qP@lfgkIRO(>x%_Y+0euK zlG%0W@AY-AzSiq&vcCRYU+3xTUVX`HVCX;bb(+6H?iwbe-({2aY8EfwuHk8DzW+ep zFFU2o4x0QWO(x&`I`aJ*X2kRTyg$2aZoa%bo1fZfa&zEqIa%d?Lt<#XD<+2~+?iDp zi`@XeU*0I2B3KkzJMHyG57=GaWq5ieh>P61rjW4TMR-&8n$ef}mh!yOhHg!7wrPEY zWEt!QqIQs2bTGv`u&(q-p>zaVMa<}}0CE5~+wgurG2l<Z(e73p)sh=tn}MUIq(vem zmfaS+T6o&F8!G`7V3eXs>=)w?<xL?3L|Mf~)Qm7nS#MKlh|Nb$d%V#>Khc|IV`hrv z7*!2X74M4UdpF=sd4?LWz-TiOzylVlaqa9jQ=T!S`=ii$Lcoebn{C=FhCZ;{Jmsib zp4@P31`&cLw9yTqvdbLxLEvpK_L~PGNd6|3mGlSLr}g2Ll0K+a>V@sX9#0iz(Ww$W z^iQIe4eaEGz8M_MVC_4#n}4lp0tvkk0sb+~>F_4JGqsz9)bBYo!w)Vs32Zg2BM;3` zT+qVmJJeT#^{7g6=%eb(#MczOd5Y_GXWu#@`_>Kf{oEYL_F5KMkS%s6llz3|b6)<c z%5471M!t7u9T9(~Y+nBI-<X@f@?#=aY8Wx2m>oGl5Ngv!xJG##FjM$`S>Jq!faRqC zBV1Lf-3L-sg2-nfSaPZKlxI<fwKKp7zTyQx)4C3PGOoQ)8~Q_X!^s(5;urx@Z%ADt z8*8btm{RqsQhf&)&C<7;0%`|mFupco#Ge8qy(vPVO_umo+@1_sMvrJgFR(4Ej9EH= z+0i)w7`JyAx5MCoffwVs4Au=45F$mqhwa}a)HukVBOM`cb7BMcryLWmpzA45VHZel zcx46&1n8lkI!XTqW^h76!|w%%l>Ake1TeUdnS^!70L3SG7fS=~1^>>*#{^&lkm}XY z05tkFH2ble2v!$8xr$>ied7l6!wZmRWo2Wh=9}@Kg#z$Lmh4pwG=M0(u^RDdeo*XA zXcGNi0!?mg#wY^6+pFvL5`AX;jWy;GTxj^4gyx5_FG@Fc%qly*p5rr`MxUFV+_W=W z=L{c(bl3c`8LPURlHc2EQZL|?;f?Myspr_`)j^OH-<*27^0Qg^H1V7si<4i`5m3kR zljpq6sPg=M5oEJsIXJ$#Gs(gQJmQK2BcRWQ^^oty%8tgo*=ks)PNBZ<pNL&%Mq}sl ziC6=5?ka&XC#;u!MF1#D#l!*TA?`8Z@2)cGuw-gr=cRMr<azn>R(z_PJ6kSbNb1Rq zQqEUJ=YoX$s_I-Y&V5yPE*LMBy=SPF95v0I^ComIU?FBrCY=i=xi9ipxG(a<Dx@B< z`Dy04oeR#<*(D4AJoiO@b{iE({-pb=>0D4{zlQ3GukD<7e&>QIIsst|PIX@toaVkL zc%l2E;6?7MwsS!>w#m+xkGeuQlc_j`;Cg*g=o0rup^w`yc1=}V%cVDUF8IWkw{{^` zGTrlwG#6|MdU{Tb@7O=de05K9)6@%}I?-_;(K&SzyQT^ATk_Alb03afs4hRyg6Z(b z+`NvSf;AD%^X@V0!?!9Rapf1vmK|&gp1(GK$t1h6I=gPm)%mGqLC@VMRCxK$<Reoj zuG+KgW64K8`_zHv{H@c<nu4LGj-Ms(x-fC5^TO@r6S)CZkjEz7x$W?u-quz3bjLey zeDhD5>iWI>RLF?4)BR0#JFm(6=Ohk)<hHKu<0!BtVP^I(+rIMOmEAeKeO%)3!!pl0 zy(PKn+KK2q6O)^6EKhDi1HJx+<fcCuHy=W)Pj3231&lzJ2`uVlfv)D9K^5lS^GL4s z6Fa>`ua}=(1%Nq|5daCYo{J*zX+ZFO<2hNoGW!g<Kbg&!SCa2qXzrB?z<t~#wo$Ay zE`Po?-W|AtTBb#yrr<63>3R9d;{bUvjhO^UYTy5BF)YUUWi{<$&5Z~(nj$7pbE=8r zC+VR6I*>jE<nslM<QqTXs+jW;T6B>Pu=Na{17xPAK2pz%EBLsdPj@jd5O<*<dx=K@ zI*lqXirak&MUxS<sX+S};Yln<FTp&Lw!C#<UVf@Jm}bz3sZ=uARdTV~qKbf4E@)J8 zX~%)P2wrXynE0`I3^A>9#>%oWLQ4Kxa-qk^gemOTnROAHx5G9q)i*I|)@W3Vr0dpG zMgLN!DfWOMSU>MvIAV_*jNkID)AnC@pUxuWF<B7cRGM6DoYz5ncsEH>?t;<q>-Lis zGTu8Jn>!Z%6}NNqAfumuAT2wm&a(xl!tdHxKFPBzy(s*mfa?g{OXLmz(5AlWfc!vu zarg<F;Rud!;RSql98TOhq8;^iZ7?p9O9e+ef+OK?=rV8t8vcQ_;qV}fU&nW(s`S%D z6iP4Bc1pX+Z%E4s=o%0n`)L7$CKMU%SA>6lCY*c`jvBxuyTaCJPaqA4e`kRl32!^I z+zrKYXSaSuvFeOkUrXkAy%V*6T50*H{T6ZIZ>lgl#tQlo9(hYPj8*AI^((g_-C%$3 zOV?|Z+0m`F;fHO%*>=12t5nAhFYBDSR<S3pny509pZqcH%V{45@>uqnGKCrx%I2GA zldfd|QO0GsUJHRM(Wx#uU#be~aZwk4)ha(u1<|)vd@f1*xyhVsxiwueFQ5LR9}Jpk zUBFC*j{b@^<11{*NQ-yM3+hHcDx<dD#%n+A0`_n0a$<~P(x+NcT?BR^Mj)wNQr4-J z?~oH(_77!OO8ddN>X*}Hbsjaj;Q)~3_YLG4L9PV`dH^uc!Z@rJmsa0^%qm6w(Nads z3imA~FH(W6C)$WVUd{^_+^VhdSLJ{ym2u3fj0a0}tanj2M`+T^sM06QkK(G;!$!5Q zQSCEq<fCp$-PZZ(ZWd^BIJXrw)98#y{*v*fG1_0j-?Zm2l8bYGan@|=C7<mZqC4(L z-<r54e@S(6^`Upf5Le+U50M{Bej8|nk{4>9nBfaHSStI0C{|k%VkMi)1ea3=?od{x zi1;G@_+uS+hhOJFw5Rds=ZJ{-Q{DwsxyVX@sN9WFxsO;*u^c_VSi(68s}Ln0POqdz zVOk~Fd!+8ty~nQR<Re?mSKngU&=X!NSNrCmn>lWDfP>)YeQ|YVS*lMq(nL3B!fX8e zg4#NCyAeNs3zy5V;lt+Hj!D2QYwCC-Vd_Y@y-FG(DHEGIh7x}M@<em+M9+~+%_!n% z8M8%xS)vM$?OHQ)lpoBIE!B8%UtQ(xxVi>Fuu+TH5+t^?dOK#>I1WV2;wJTPH>bOn zR%U0ulDx-<FEL#t`G>>uyqeog^4nY4C|Gg>(Rb{l&Fo3oeUkoU-9_YDU{9iFwco%l zgxycrm8_dr<>l_gh4~3wOsp6CauoDsi3XFurNNtdbm>PFqN&G{-}#-3VD?<L7T2xX z+q~qrIgherUcKta8-oMFsumDf0TT5lAP<e1a(X)!DEop&rFdsHq!F=_XfydGZGzC6 zoq23&r9boW<afSyq1}KHEOm8xyXtK{yORruTe6_-U4ggJ@OCwN8;8BKDLGv0)ORqi zol*4jcO+IYe&aN78nmXKp-a8d=Ok9T{QR1PCO(IJf98`B{?WWj@V~sqV&vG*#lKR| z#y>5qv5n$Xm0ARmtx0U8#_Y^pOQ$HXjsPaD<abu`<flg9EbI#zI-)J?uSu*YzXm|{ zz54(t<=qD0frRyt0Y<NF07Kx-97^8vU1q=t+WQ%TcLo2?48ewk^a4g<{Ckap)Z{Zq z;oIlG%P9OZT=1@=AT}(FLNx(93V({h_kE0lQzd>GHh3V>s=62jP1}|c>?r(A)vufp zHY65NC8NMKWADxjD@Z?c6xL$Ah4&&^^g;8&I*Wve7rF@8QFs8G<@*?gwdDV0d7)Qz zF$$Y)17cp-irMs6&I^N7$tX;CuTdBw{mfDLdn~(Wjlu`U3)R@G3%pQ4z>dNb*p=VM zC{&UEmzxqENHnT0Mxov|ARdJmFm0=EzrsmjLt-ISG71ylYZMldeV#(LwdQ4qbn z_q?ps_c<?gStLZfu#$isg|Om%jY22+e_3AGthyM5^|k@=D2%e{@GIwqKB{CCxZd{N zCDI`2XO6-_=KyoMMEbyZp@Kc00xygSGn$>pQRn;Mg)$2Nvb<1FS&c%CZ9qH<Q`jQ< z)$u~d(F#>*s4}@}PsgD|&mnYK7TVWKm%TT!kOYT*GxJ#~NBfiaoKjqoJ8yT|k(|^f zS-q_(Iot=6+*M^&)Mos0nv->tRKjW{oT#??>G5RUUFfIRp`RYm@wLnW88K98I~ACj zPknug0xJo4GxsF#(YTPk*6G5@CClrnWB|u4Rf@fp&=NeKpHZO|f*>U+x#WD5RNh{( z%JR`<-ST?kuAymiYqISaO4d=1LTgnhzbdib*0@y{LLExpGsO}hVCY|OT=(s*x6Mx8 zu@flx|17yhYU#dyLI;v{x3}5~xHqevh}}w2zUPv4x3qb=rgrO_$C8qk_hGtW4YL6M zkE?5hpKGvR-_kDR4-(y~&5F&G1!GIt72hM%uRnglLV2EcbF7H1(ivtvwI`Rf=q08F zEMcF+SWBjPi<GI4+J~|4;?*YGGfR{a*|Avfce8>trKTku{WvqYn_U=u>a;&Y(3-rs zrUh>{{*q;;uFpKgKB5cIxDc-%_7AW}scHC<cy$<z`b-_WQ_I*OBR{!V{t~szufuB9 z-;60X(4w+Ww=s<lC_@(jA|B7+(R4>QBh$w}d3uSIhM#1Sqty%@T~Nb+e2W$>bmZb9 zw=3>EAOmR{YtjKD5E^7V`lM=kGW<BX8f}h{5T0We!hQ{#jis$E?WC~9ET6DpoTP4P z<NS9`$+8mr2?N=x5wi4PN7N2yZoxvzx01TBG_sAzg+#Vd#qF)7DHyd{L=}rlBO!p6 zMMTmLNUNAa%Z8p{nQrTk_`v!t;x>&R<8rOta2>j?K91zb*YXD4p+;mwX=Edj4MYkP z%TLR0NNFU+6tf2l4B3`64h`_KSMt)8DDw1wil6(GU8xkf*U#NvVFLWgufszq;%MTk zfXD@B*Hu{oQJPXsiUa^>Ym3=yh~$p6>ljKTNFjyTnxR2lPn;bAN!-d}vDLPqxW39Q zU&tD(mDGi$k!?gSB(kkEauJbjL@p|gY$tLNk?qAuR*^%`SQmTt|4DM|Gb*ol3uCvg zt|g_uSO~lWsh-G&(#S?4x$!OASQ=@FY$VbYBZGNn=nxJ!T|{Ha`}|qm#PFLWt)f^Y zx4a5C6+~8*MphHaMRVEe(#RSjtBE{)Wjb^Un`<<_Bz~Cq9kC|R4;R1X)cN7!_oJ9= z|8?+t4hD0(AHcYNSoHe|EOs9*erFu}*TQf5=!cKr227qGE`GCYDF5rw?-zzYeEfci zM`Ax*{N9c?!oLoF7ryr4<M)okA2xpP)-?}KfBBH-w>!D5p&)+?7Iu?ca<&fPaRDb+ zT5>c#x1^v$ltvbGh|<V{4pE3?iZ?^w38Q-120)KUT6I+li`@=jV*!Qj^Q57$72{CY zmZPxUiSkv9L|0pmu68H7S}_t`Z8^Hy89NL^|NYehp5yagoI~V_Bd+-?Y^$*uEi1GM zUJXCR`oha|afHsx)rZwluvNjfu#%u0$=VEigmw?MT}vfx2j(Z+b*Rpv;_t$xYAjfk zHaUG;a_?4FIIRk?vnOAVRH#jO5_aLJ{58AH<(ynt4qZjq-HV|8H|}56Y6d^66(-&* z&tLg9Iks>&n@x%`=a<&{`SLy2<fmSZlac&a)CiUJX>Y!KoO3c^Wpqf3I#f<_9Kr!W ztDbgU2W&iTKPIQlt;KPjZp<=a^>gYl_fPqpCM+(#bO&CA4h1&o&NzFrsL@M2tBx3* z8bn{yMK^ra$iuFqJIz*Wt(nfv!ijD?Y=47$3Tv}<p)Qb1yzM1+$~|kkPGsU_)bl!< zp<k`fCSK!~Ldb4@BVLhyFxU8XZz<7B4RbGMHt~WS!KPCM?qv3U%2^Awk7$B#v~m5( zqHN+R&WN_^2nbhB1asT9EX*c$=_ps~kXEMLP`#6Xe~9<P7qmsa78>CCA#P%1k8(#g z@zZQ@kSjE)@JP09R5#VEBZsb7^b*^%bwnQ20d#GGaC>4E9vRs>?!<jLK9x@Mt8L_7 z-MR5Fv||^m{`mW&Yb%Dbb&qixjA5_~Wv*}x=GSE9sEO-TXyX!3>ijl6)=E0@gj}~$ zM_gbh4l#_e0=RY1lgZa<>w1xw=$D@qc&Ed7m*J6w$Cbw2Pd)C{?a_F$w)ihAX}3nF zj&mps-SwQ7uj5$a4?3gx@vG7{OC8P?T%;Q}-;BQ=dJ6ubOWCxH?hxKg9aJ@c1^b@j zq>=?{(Fw#}7alyrmZu5coUdyle;C8`<U?$c11ok59PX56{2VRzZe*#vWEV^FIaRkM zw_n?sNM1On8rEU8y<`q6v+Y|FBwm=j@J0kkOO0Ea@7;ox$K<}nGW3Q<llywTVfABj zvyGn^Hq*bw-unSRanMY^q1sGG;v{gy9W>LkRc88Z1j#on_lt_^=~Sb23jqmp9ZxiK z1i{PSNS>vUl(<3%9r8D<@bX_TaB28)mkr5rXR9R3dCHW-+5o02#3@yBlMwFc$b{jS zI7p2Q(E*l~#Ko78&{4P(dkTW(w&dGvzuT6wo34FYc(g|Hs9qcMZRFw}2>yF(8pI)V zf>}tLUP&UVIPX4N#Z(mprF)SI0JK*z^(hOI2>TD*jQ6L7v_i4SBO42%_dc4eJJ(%( zLFV#y;2{6;RaCAkG2&d=UfkC=sUF=loY0+Q`i7@W0vvMY0lLKj66;ZJjpZGWe9FB; z4o1X@uzapa023SanZGjQ)jjTWCwH*4_1gThX;3ZOmrEDoSbG7#jMLl|ez4!v4G}Zb zOW+~7->+j+6(N9Y2w-Ds5B`gYo2yN;b&vXW@W`WNYBvckocc>k#la6OS>OF=H~C^J zj?M{Kf8QU)B<tLM?SbB>Alhnn2{=DIIXXYQCS5@U2MF?O(q$FUGXk7xi`y4Kc=&4r zqL&BKWmxdJs2jHgUCDq@t_>$CDL38E&8qctH$f*$5xw&vmAMUBM5v#ei?oF#bKhX# zXPInbOgCi6(tB+_{RxlLDZ#3At&E17W0q0|*(=E~1t(7YGW|N7rS4BxxyW;Tyq)X% z!G~^ivW8z0t4YM=tiexoo4PR*tVuTzW4PL&Q7Pn*Y1mMku{r4{zYxwWD1NDB0~tQG zvt1!qjMgZ%O@TH7bfaD1tbsK@?F&DyEDML8w9mPZ7joLLb<#z;Ip5ea3Ugst{@cuR zUzcH1^bfZXuk?0)70KkaD(yBPZZwK$NKTp4U>l}v8>4KrV@{iGL;gPNLE`6sZ-v~! z@?V8rZ)^`AXHAa(mb|f;-G8sv*G<nahI445^-{w^d?akJA$-aX`N6^P(+cG@joG|j z{;n0_g~VBww~lC}$>pt^O*QHYhfWBX;L1ns@Dma&%c<!=HottuX_QeDK2B;DXAoBx z7YoZHry<-#w5v|uaO)L<akQ)F6>X)6@(TLx^Ba<)iMhh$r|o*)9tvNT9#drS7E<Cf zx9!t$+P$3r6NvnS)%*y}-F7g$&2&DA0-q13wQXr}s^KJ0uN_w0Zm0`btJ2y$R6-Rl zbpYK)sRz;nL?U^1sAL}{Y|b)UWG}}?-`=i-!8oDHjTcu5MwN}&l)W4mwGkYyjkDH} zRb|VlE&TJxg_oCHS0!z|{GY6Yslz+5WfgJ0T-g}18j!95y*&z}ci16aV8OT%8Vx<0 z`hL;-d(WMYUV49@#aStSwdE@m>G-6iX@p<(qt#-q1daA&Bcto^YteasjLxkpp#y{h zwlOYQf>xwA%n~P@h1M>cQi9gTIBSg7bwq?MkDZOyM!I1AC5vdSQMMAaRz=|$tz{NW zjMk&OmHYjob?U%bXmzAmidJo?3KL}$&O+-*+_9KCE6AhjOVD~cl~ySOz*_lzS8A<^ z6V5_wy-g`W>tI}ajMheSgd@AoMyq%@+#$Ehf`r(qY$a%YFbc<L{TmA=M(h7;Q{OLI zfB4K<Xg!-+wFN0mtfSFqP-|C=gBY#ri8uqTr&H@jWdPVnT=Gn6?T!=9LTjH*DM9PX zIBSg7K_bHczVmFfuA~cLyLI@D1@G6Ctpu&V6NO{6e#wG~(b{ZN-!EEkd-^Q2o=vTG zw+~D-vax#xTI=2Za#5BVB4V_b$WtpitxRoI27q<NB}>q1WouiUa28tIZAuARYvQai zT2~SgUfp{(T5FKP;YYEv7OC}P%2tBbbE9yK*0*;EOpMmo6?)%7Ai4J}w4P0^4e**U zF-W7&Kx<#zv6xyzB1+I2Q>sO)m8~Pn0I+&I5zZ6>R<@SK31^|T%BGZ{wL7joMr#c@ z!o%CoMysaXa0@2gB3d6+wi2{H5QSs3-fzLgX#KA?)lsW?B-UO{q!F0$+&PGxi8X@F zdrHt+nBz+YtF8eM8dlO`ZQ)LL`hcB%h;mv)ky<;I?dQqXE(-@ufZsFGYN>TyoNyLe zH`<gEw6?`rW3+Y?5#GB^J9Wd|S}37B>tZ*SVD%=yqSowatU)Kh5w_9jms?L+F?|yo zPJTrzk+q;kk*&!o`oWpD5pA-ujih$v=eJc^c(Fp*;6>`gA7@i=mD0*qUX>`j^CHs` z>Ws{(<f_NO+{&xQm6@-G%U(A5*)(d&Z%qQ>GQiZBx=_Ey<Y%qW?xcKPxx5+E(&6Q9 zpE0@mA>p20)ULd$wk-Kw-HVZ2{W+Ewvcj-NuxpGLQC3kBkB0X>>ga^duuu&Sg}ErA z(JnZShTpJZ)y?JShWmb#t7=t)T5OvHR2D5Sg<D>O{s`1Jt-R{9WywGO8cTKI5It9l zE1GjFYIAM)X#k@1N>!FR{4ookY{b!`BjGtNeTCJvUJT#fdg@dY2bn&LYD_gjUw1eu z(bqR-l8>;OoVt?ZClh3Cs0e$8RbkxmKb}PWw#(GaVn7PJZ3mtHpTKlYIG`HW5(F1& zfK+O=YPF4`fnfK=a5*6h+2m2nK`4>Xy;F&4TdgS=DGFRb`n?6+x1RAYwA>P~l_=^$ zz#TAFNxRP~X*yhkdW*qj3lN+_D{qASw0q`PTE$hgL=mUjviRawx`=TjcGWE@HDs~~ zjL%v)oxZ?3CK1L=sp_fGimx_`iEj<R;oVz=B^e{>wOwz6t2=BYm-H!e1XPHK77(dc zi1~CG(x6a;C9ImTZvM0RFoKOKUiOQ^vQws|>F&~O+qOP((C_;rlZR~?iiFB(QK{wu zUyU*2-38&2DMGK()ogb<Z-yP7Uh-jtu(nchJ5_)-BIz@WdTaZ#<22yna95scGuPV8 zZ#y%CY7o-hWg7+KYdv`|zS@e`Q{GxDFw_DYyHY#^_@rQ6&0o1kP%L^?#Urv~=@_Rx zP*Pm}a#YsX6gQM}?D!2CD6{!x=W%9b>Udc=s%-5Kq}%!R<VAzYE_Dne?)kb9q>NZB zl$UTzl&mEc%3SxlE{a{jC&rEQO@bT6I4Xh>*e33GCJ-*CwvnASvY$u}SME}_E@Fhx z_4b#AKfW;CCcqM<2yD1I^2-IdHkk{F?e7C=EmMZRC!dGH9cm&ASvhVk-iUTF@)i@I zj3Ke{#6Ezq5+phybvDPo`J>Y~_Mi>UlLUiXz2c1Jj3*1jZDh#iTi|6k#c@YxbGkMB zJEFzN$n|$&<VU8~GI(xLYssRQ{>1bZ^l=~~(bqp#U|(E;){1$^>UbAsTzMulikHdY z7@5bDCivqyQxuaF#T_4u=^BMa&=uNR9RXSX^Am*`w7|fs_+7bnH?&n`SS#N)6D2!* ztM)9c(Zw<DmhjJ&naOUU>Vc)%zQFnxe#b^*EG%)JLb5NC&05qZo)%3OST;6F4l;uD z_TAW*ErjXLRu^Nmw9k&C(Gna0tOR_V#;&ngifom3d?L1el4C^H{)qq4Sv<>ae?_w; z^dPe(w<7_*Xt{KoBcQavxTje#9pg$jELbti+t1+PV>$$_%@Vlx(2Thp0EJPbL(Z@_ z*9O7f9G4b5OAKC<FK2ILjTMdAx~<tnA6pUGIxL^}S+-T_#1q-Nm&K0adwY6yD|TJw z5F3-jpMGD&?rhN<^%F<fCsDE(TI_4tc>KdQkBoETUYY(J-+~33&+)AeSBj5^x-n@L z`8S$Dzsd~ydnGgIe|R|NM>~n%Nbs~7^hnWcAI`LiP@<hnrxSYbx%3PcblQ4MFh7?C zoi1*t)3>*37A<fcQ>mLl8+~iFij6`}s+;`f?>U2Fu16<2oihs@$o(5<Orci6Z?ia! zrqC~Nsy}8%lq+c#(`^*i{*w9gBE>-%cK$5-D@HS@b^sjLVWI{4yK<d2p2U)tFV<S- zDV;q3h1>@MU5|>~=Pnq>-*IoR?EISU-4uHk2U@mqEc!rNGb=|hEfb1;OPNqJDoltb z;)Gv;2`96S5Hq3Osc>5fXE7lY=~;X@F6Ow18DYF?F&9%V&#KjJW!8lA3aqG|up$T6 z9p)Tjw(fD%rBb%5I|^fZOsa{a;<&_4Kk=%c;H2>e$Es(t;Cr&(8B^zPvoa1p{rrIv z{?mSfkG34|B)rWwg0ov=AOL@8)-uRTq_DG4UbvZb1-R7fH<6N-$5ak=gg@kB1}$@} zoq3e2zS}7Xkm$V$XtJJc?Ci3znbpdtzT3jzi0POZRMF3GtE3DUl}67|Ea0T3=y#El zA1p2(*Eo%5`rOviiR57`;MllmSMw|ph&*R4lwvXc8;i7K$#x|qLb*h*c6-_dIM`0q ztTsDmb}7Pc7xkOzbK9g0t|W>yC*4FswkOa{BMB&W8NZGP&Nw5fL+Wgpa=E7t$TQwn z4`d4CG2bh%(d#A;ow9#Y&(O;H;teXwvO&dQiW^O0#I8u#wbHh!y?<ZasVWF1dj0YD zImJk?yF8q(RvNEmN(wrSP7=DtmblOAmth|V=ed~|%*skX?w=F_$?P^fVC~r9_sKxm zE@V!G`!`9rIQ@?(f$L+y!kvoOT8AA6WV@oiu7Y{D;I=Ti(uZAKHy?)!Em(VMHETbC zh1xV6-en;nwt)0j_=kk}btm7`WJKcIMdE09qf1hmbBn;r_>2zCx~tD6$u`oS;=%Zj zyS7r$9gKe*O0s?@02Z_#5-xzSMNxRwC3`v^8n+#PDSY}LZJ!0losQp-?pDXYbq2iO zFT#tOg4|Nh(o^!C7TA%nk<3v$K36Q~x*~a7?26FyCD#NE-6V2by<H8Y&)Qbe_3vf; z%7<V~^uzB6zr298f%<h!nUn5ag>&u;iO^!no^xNM00&Y(gE4`JUKGlfoO5R@OHus! z`49i7d#m=9TXo=@L+u<lALHn`q-7WFv8UagI`~T;c!#^CiUJ?e@Gm>?-mbIK9C&Zn zf%g?3$bom1G5RS}nf<*WdJ*auJ^79$7BK(J;r9)eRHF0mdkW{@9Y^5baQYE=QJhFr z(~>j`&7q<=$1*m%&cesX;6<Ea{_h<hL7d$b4Sx%w79}^5C<(7AUKHJ6f4R7UUwd%_ zzffk|S1E*Ov3EAC<on<5ZTPo)8=`v~+RnPS!Aah;=+<7{06i72ZXi$~*LV(z$yO8? zO;>&2xAHpdv_x#@k8km5=MTwiJ8#5tJHH{_N>OV;7!AKiQ3>%Z`T3O)zgkdWA*W?& z9%kAK?@%4gL4(jXj1=A+h5MqgZ`<&q3Whf7rSSOwaYY7P76C$?(%+=A@Df{ol{2iA zxKBlkx9QRJ{@_VlAZe$Kby6Clc}oh?bWAMb>%^00`one=AYUx5)v^lGh;H9Vu?&`T z4fmZsV3&Q7{$mnPnCTemRD3*dVd!^yWV_N;UV4%dmok>N9GD7mA)DMik8@ZhY7<v? z0h}xPc@spM6v|LyOqHj20qy}OD1u>&(@1=vr)U)*^}`L`8Y^DHejz;nxj*_sW!XbD z;3};7-=|LLs?smo{<2N0Uj%KJT8UO@J58&#tkrZ{rC*l2!jHzt^~zbXSiP&Awt2dE zMa{DT)F7Ix7Y1m!T?tAjlRUS`C?b+(Td9XJ284o5e4*aDCV%C%o;1Pj7CMpi$_h#6 z)FfpS#3b;}!_&$we^63DhxAC-{rg<^_lQjLpZmsd#obT+uT!UjEt&4sdzRIyyHe?I zH8Un#9Y4AH3N`cYN3|FzF{23&qFA)_>$rK7o4&#aH;DcmAyc=g_BKnBYwWTixrv1^ zK$4rTyR>64(S2xA!<IWQ6P;K%;Bmyl`}T@(36M5ZZQ0NrkfSNMIhpCdS)$;Bvgu1J z@Za*M&#%IB(Vvbx()9T?(Q*#kVRWhw??ZRVHflI`;adu`loc6TbU)){mJXKmt+Di3 zy#UW$+6mqXL*r%?@nQtJ1}``ll^lzv4G@oJkIz^zw*n8hDm?URhH3#6?tZLvc~$zJ zX~46$!+Lil1RE?hCTfZPq(yqk!fJqsOgC%rUMbXFg!umC>di7Ov~hTE$-r&NMX1;8 zLlBsDGYQrx@rSw!e&1s%`iFh`e3XAW0{X^n$=gTx<pAHJ7lH9avJT5CaJ7aJe46qV zyc(C_VWu;oZP@)5y+D{#gat@{_>@3$%lhr)YU?9MZ?X=%dIYB1HdFV(>T<PlSDy-c z@=X=pW97kiE)lPLqw|_mX6A`I50tI49cFvU8vVN&YP%_hgW8D5jb2rg*cxqrxov@_ zABiMbFV^s5^VE=MMHc62HoL5;wOxgG%rY)RdD^Z;lsQ^}CZ~)S><YzOuH9k%MU|cP zXO;P3EdD&KNBZNAq(HZ4v(YxIjejeWQ#v|bZuup*YIAH__a<<^V^(d{yjJ}x;p6|L zgaEUr8pxg&>TA3oXRwp9^~XCu&B2TPC+&qsS98l<b@)40sh^Hh9S(NR*)DdpyEcF2 zuRABan=tCh8*P@++DkYiZHh?@aigY591&wEp^Wh$;T);SV`TDvP*^l44#~}qJX$o6 z2gBb>e%-Jf?_`9)%0s-YauwDj&%%<h8r&fHVnq*<s$Q9NsTnJ@H3e}i`4#@J^)lVH z*!|5`6|9#$0|!;%cS$n2sd%4)7W`CO!*3CzJ%&M0XL56K*=CuZ!*@Ej6l<_EcX)|I zCO@^3WES)VE3eFxsRNq(AysVZ0)T8(>!nC`X)G`vZIPtyRv`Jd+vtJZo#>IiDnzN6 zIypCAKC6f*uI%<xgPN2m!2AgaFMrhvEC4bSIJ-hL$<Y9}?c?EnDyYJeDu?AFYgIJU zajl)a0iAs~n)86TL-U^4Q3I;^Pv)YPd<&RGHHVNnAI!sC@;r5OX1Da_PBLlG8mUoJ z_6iMlz;mYuB&Ph-t4x->G$^UvMN&4w^LYESb%#~PP=-C31ebAU^GjM4)#{?^^}SFa z^H(PI-Nv`p|BLMJA#JItChH)`MWR?9bt5QlluF0gq6ll#TVW%fv2=nJ+!jA#>a^2p z{b%{$ofe|QrGG8jSQhOdv#%2VdmCfD;@E{b5?*J+?Btr<RcVMXY$QTH{yYG%l`FB| zZc48Hv!5wSOb45Q>G1+tBYIoNol+bbZy|t?@$yS*vw3?meHIT2*V)tJvugFUa4p3e z?IXkZYB$zU#5!=cDwiBS=h*yED0l7ZLco^x@Ke^|aTyPY>E=N8fB!1#i`^a?4*wfr zs|ey^`)U~2R9d7yyk?#Gibd}@qv*}26}`5!=>IvRXy%Nfsnd#HU{mj~wU&6gV*^<X z96La0v@eB+?{^pk%k1RaP4tuDGejy(kLkkE;$3jz!!||Zfdl`M@NX5&vryyydGR~~ zKw`I}8#{M14&hy;^6weRKOSe3{HqFo=O0w@3@86$r(@@6d~N=!&%^$l^O(<hj#&OV z`vz&Bz>8iE*NOeu>Z)Y)lguLl`G<ZBb$JENS3dW3*sj>LAf7zPzh`|8RzSeo`#{Sh zUL<s;{Hyo#chZZ~WuUcB(epE8;9vix@O8b&kO!}%_}^<|oak%7zqU2J$HvUEBCpuK zSom3Khf*cch4iyBZKD-qNRM@VSPy(>6tHp*%EW+yz`;|$RI;f%LVBA7p`;=iojBv; ze!EeH1hUL3A*gEzIFN(zuu@G0uF01-o+;Jv+qVLe^C1{Hk&6Jsa8wY8dmnYO(22AX z=@(11GZcQjzpa2fl+9mtL5Y0pQ%@NbC*PdviIFDjjyCxmOky#BaMRky=Y&k+$t+e_ z9%!bFlW!VeuI7H&t;QfEeOuW^u|bM?37(IA_%snG&jv)C^ix0otyWKGSs)v<Nle8; zl0@7pt1#>4MtP<q&e*c%_y)cb6ce4q(vAZ{`PnOCL8nCwtWXu+^B0b%;4ztG!>`#e zDG{R~8n=XBwvl2lnL@*B3EF2Gy^bwNyc3Pd)&CobrwMO>cHJ6pg5P;QntMo0iRK<= zwj4Osr3V<2n-+{qZc4^S(QaTji+f@RE9UbG1!<E^Wp8rRylJ02b&B`2XzRvY%Q%-O zoKT3|45W!F<qA#U2dWvzT%T*1boW75c3E1gHn$>g&9$6!_scHwW-jK|lU%_TKz!ux z11|RZwCd*8XCSIQwkhYipNn|YiJMn*Ey<<`GC6dih8A2CdB+Su7dGAfsvzm{&B3T$ zbcD$;*K!fhU%9mFxp2HEoPZsX$9Y`T&FK+tz+Lb$U|hn-?Uxa_oc@2hIk)_h=G>A? z^)^^;NxC^VF9X~vHrXq3%dhe()%=UqR?cd1!|m%lK>IqEQ4dXu8rgLBE2_c$*JV$$ zc{?s@jD=On{kbi_=GmX=UjJ)NcmG6XqW0$&Txq)i_AZaw>ssI4boZcZeRFz@Mz_?n z{?xBpSi!xzRbFK`!C!Yj4R93I+9Eti=4v=H-YkCcg3HgLGM*BmSUeIv6yyNQizHWn zhCK?PIg0qa$8opCFW&w(+HGZTZr)6W#nOY9_%ZSGw~uhA`Ow6ug2W5SO}Er?BXNbt zORt-5spGTCuY8+k-t{Sd{lzEyr{Rd!bC`y_)zS6lDPO1Xj+w=8s8t>Zbr!#&26&0L z_)@L@;xQ%p<G-06@e*$mt2({JPx-R27Vi`sLsDY5S={SN@8V0P+3)7dm3W*lSE5@b zyu@Q>@h;oj#5S{di$x1o;Sk|Kf-4Q2U9L26cDd4fTxlLL*bCWQ;4L0;7(KwMu%8(2 zHx@1Lf}YMd<Cj61mAkyfJ6)zj<8g-}<m&C^%T@FwU#=phs-mpx7(MV@ud>=4B-M5d z8x3Es1Z8c<vWugR?K1g4E-R}-_1m7!ueM+L|D+$&b9@>wxPW<@*E2RPn|KtunP%#q z$kuH$c@{fW2tQkZo8P(O`FND=2?<PYPqpP#fGe+aHh0}Nd4aI+wclpX*6qsXC&SJA zr)BfsQ4X(ew{exLMuE&C_f;!aCS~L39|xjbgKdp;Q}xt6;ju&%i0tAXhrHv{d<JMh zu17Y<W5%_@72B;yQ@6W-T@Yun>o6`{S*)FoU68k1gP{YOi+8IYf4tAz0>bZZjSc23 zzFcXrzuS$?K1X!D*~Cl60q_^^bET1WI#}vT1BWkH8WOUl&Elvu)b+R{gaNbo1=~k9 z61qJR^5c#!fb+N;W#ByS2=H}RH_dv?l|JMxe$AD>BfS|mAi<T^mn*%KFW2&)IP#@? zwr=#O?BZ8k%Wq9@1h*u(ep5QCTVJlUt()!@#wLMq6;b{CA<1*~yCXj##10-u)GU#@ z;+7^M#E1&ri1K=tMigQzP_G!;7Kg_3mN@c%R{-7f4h@OO;PHq;9VB*tMN+#xN93-~ z2ogq@0{Dn1Ek%B}05{^8I+O-ZHapr}{J3z25Q*^kei7$$UeGcDFESKxCa^+c+;$#> zcI}R7nn&DRMBEW=DO03~O<z_j!H9dMSBzzA9h)Xa3x@OSFuwM=h;A2w0>+mF!44PE zoz)(;B3zN6U;Jq+vT(CNtm9=#JJ%~CqNjidD|;;-A`u1IL?TLGj({Q&we#oTp}F%@ zA1o^L=(@#Cfy%UJFJxI-WVEe~Pw0$E&gbwmIXYX2v!y(ZzAaTGLHgkJ{0u$nctz(t zT$e>0yi4_%{W{J|1h<dtoQD;P_;<MT|M<C`^U6(r@}HqBmQ~_D$(Zuwe9!TTjh#y- zbk3V-M|uCGN?sa&&h#Jeyk%17JZw7}`bw|o?J1q}D($%M=Rqv;hyu!+J8wCsbKbdx z5ZO#U$0v8rn>-hX*rrNw%p)3O=vT)l@oL3+o%23oF|nU_vU(j(#_<A1vU6UQ4V^rn zoB-p-xyeu4Ha@|O#)D<&buy{R5I;s=PgIa=0<T)|IK_qNv7Phi+JOm`eVr{A>6Y)F zvGJWPD7etkDN@GH<t+-96W<fSo0=-|nuG>V(Cx8_&7F5$+}ZLmZWBl0;Gr&*?Ge*I z*31(Xoh={NCF4COr;xF-xpVoYU+!%A#JfC(!#!Y9YG-Fo$(@Bqo_VC~VU~hrJU3Ld z@nM10Q5RM$6Jrk(lV>qWKCMpLNIT8drIUzEH`(WanrBo*3j<}<snKxPpPf2oAL`o2 znpe+tp^T4_K_>AkDwm~Ou(e~L9R|aWyiAGu)3=sb`je)O(Jb0)ksF832arLgC;e$v z67S9{ex)M$Q^7`)k2X=s(XKA<C{Lf{hXuP{%we^nrId2@u`FP1_wn=phm4e37!tXW zB1BGm{V!bPLPeI*J>{@wQ@ic~%*F^ztGYsXeH0#y!di)`uw8eOzBvlpT@S+RqVPJc zqX>6LVVS!W9#l9OXb!eY`~*9OUL~UFFQ~<y8mkQp8NY;G^;gC)HAzOWh4y!Ya}HuT z(5^z8l^L5XD8}q<1Nb2WTTZ8oY}j3$uFTz0=6Ypbs{n&%djNRZdu7;Np`5)0WUZ^W zzii>yU$$KAZ?sng$!HLjzmIrKR@bX3jiM!yf)dpK+~hPbtnZ%$+nBZNo0N+dpBiJ= zB(s%qpirOTRUMvNXRC=fJNbY}pvt&$*V8>R)(DXTs5=#S;95IS1M<kputx1Q861X| zr5D-#BAe-(Dn?Tjz+geIm(e)v7wsnCmTfM0cusGM@|Go@Iw~y>XR1)A1)RP#XnkwZ zs+!n4;XTtHJ&2saw+DNR!;H{odu?%wGc_0QXHI(b1E`>QrI3LO1+ZH!>}aqB6B}|r z@2HaB*Tvxu#p;MrN7mWwobrFsgV(wJkJhiSW=xyF=B)kg_qj)g_l7c$^Kh{?g4=Ag zbJ>iq-_Uqk%3xv69h@niZ{6!>PAFNUrDNxgVB7%=#G4-FObz(KZm-~-Ce5+NsJ-Cl zzR1JO`F>}ECr{5;<<((<gE-&`nVxFB#IT1=iYP7X71dy)tfgWwifXh`&nlOe`qu1e zqY$fzGoq+SXQ~!4Z!1dtthy7!x=Dlx9mrR)dK)#Ys4C^jU-jv1-Kz>#yWn)M?j@<) zRoMh*0JuHCOYF;HNuy(Js+!@oCKXE52qpt!tuF}-F-|VYbka&z!`iJzE1_B)s%bP} zsX_iXn7r?gjQ9^b8w>4PsF7WvQV?XD$h_0mc0k1D%qz%GqQcL0$uOc#3kJ!GB&4rI zl{LG{T`fG{X4&9OMcRT_Zp@z#{bz~>_7WAzDp_d%Cs9a4cJQGN(nOl=A{2y7AHSr% z$-ihnn;O?qkO-uia`AQzCbc)%PvJ*<0NS>@-;r8fpS1}?aOxJwQS*~^5HP=FW2bH} zCwAV(*Voya2>(=bjk>FR8~F|Ad>5mSJ8neN>RnN{@4#+}ZCaI$+-rA0r@M^~z&Z~d zHA^rx*hH?eC-qgKllTB4A^eL!VK??_Ueq+B_uCYnN8@hOLX@Z{8yw08$M8Wp%4<Hl z_J+Ohr)&-%quCT5o#zp@`)x%$x;DUjXZAW)%gxV5`L_F0aF^r(y8A7;k#CHA$0Za8 z!K<#8!Cr&Ym(8EWVRp)6%B)6Ohphqa1?z1%&5*j&1LsJd8&q2$S>W~4u<O}bWQWad z?s4#CrydW{jUVi+Z{@A1>qN|w=3e4yhDfObg^1XwF-;)SwwTL+XHw{Z^6^9=!ZS*V zP^lewCWmfXtYH<IgttI)G0n*QTE>{jP)@#H<r9e)$i|ME>SA<aM=E~ZFvdf~{78g` zs*m6B3whD5H8r=1M=HY0iRrjJonR{IIDRU*`mwQ7r*fJ)s8cf1R<}}(M#weV-^kNC zxx~#P<Y3GYxL6#^(`?V`+M7$#JpAsi6^1$?X4~HkNQt2ET08(9bL`{b&%FgNiFQ?j zeKdFiSh^CpN8&j(V)75zdp@*}T%$aiEZ9|cGZ&RaE-Dc+1yZ1F2kPAis`|b5P7k2= zvOf*44eO3tT1x3wG6|eA3u9ez>5cA#5{0Kh)GoqHV7s`W<8FoPAvDs~SPpho>|+~T z1%@r3wna4wDXOWF0^xuDo_O?mse$V(QQ*JwQn)53l5l>_l1f)aBqAmAbn~rr)Kc^9 z*EZl-VEqZaf@4If*S4l4tJCJ)w)tr~>_QSV-7z+tE-U=o1|y;Q4X=AiGW7n)jma^e z$R?!q+M^Z8YHIAWzgV34<>j_d`3ZXDPMY|2uS!;qDF+vWuvruBU@-63n;*ry?Ao)w zHh=j!@>@xqxF%oz36nT!Z-04F`_QNpjbhyj@lF{{(=5*c(q+;**i^ZOXB%br&vTr} zZc?+)6kc|(L+nc1I;-?C^XXAj<^-Bz^5yJIUD+b0Tj2s%wag_ln=fx6yc2huCTT}{ zwX(zu6ze^Ds9rB+kBRs}_jr>19<blHvKOKh*2{`;uQTz26HTqQLI^e1zMv#fBc-6! zy6V$l@Zbw=wNcy#B{9aL!oGuK-+!`uYBg5nLe<kuTob(&Rf~uebiK;NgQbO6nQY_i zGpH5zl_vKfW;fq*olWTBSJnsA(9eUIyY(uPny443Xu9Mo??&<FX`7SSEW^0}%jYpr z_d+O=rNTba$v!ixCGWJ7BF|U3EWK!^oS^kc=7UH}-s`0GC~={bQh~H+#;(s>RI~~N zI^2}Jyh*H46%mS7I5gYP{b@VUSmuH^ESBCv&L5v)e)M`I;@!)#-W2wpLz*zcA<3!T ze)Jw|m7f~Z-DCi-;n-z1b;1h!)R<hfHp|0X&u1z}@U)u-*cE$+)u($f(_rZg2K>5r z0OPj1Sqje>eVz;Bxe?sgeh?)`P*|0LcQZ$y(;G>3y*3F%frB^RElFmZ8EQ@HN$TSj zQ7^$up(n7Ta5s|<e#sYtozB$BtoG?nu{AN??v|y-8asbeS19FqsToTK>(rhD6U~Do z78`o;QrF3im`9in`1@j+&Zh)Gp~fTix?fTIc$nNDiC@;#l}jo1-2ud-Ph{dSiUoV5 z!K8ZSmuBq*yiTd=FpvyYbk0q<ud2?uYy>H;x^pfz559(L3DtDYEyr-u*!c}!DJ1{= z$(^%4+BtU;am}6c*-aX%YV2HkLFZf)Gi(hijgh0Dj@#1YIk$7}Io1xL+Rk%d)P^l1 z%Aa&!)Kq1^4%K(gKi|H<X<zK5)RfNo7%+H}lZP<pPjg?@o%1iWUq`6uPz{YB<|1q6 z;2F^Q7rQU=7aq=>UwAlk{%H?q&bm}WOX9X5%{%9R!tTdOK$i;izxZqR<9KGP0a8IC zBjpYz>&nx7HnIoUSd*-iwt*b1ar$1zqYYcTiqvVwbGIDtj6MihORnOsB85WSEmhXO zFUn+)9C1<vcQ(;6X}tYv#?Pza09&TJgn~ik@foXjCcnp{^#h3!mY=$OY?ZC1uxU8o z{M&ok>3@4K8)5u^&wJT@+`U+(IXu<-UhicW?<4c4PclWfXO7lRhncu1a5~qz2D|*} z@X2&uCu34WG+HT-(UY_G2~2>J9*E05y2ew>6He#>K&keW*VJo@4@r0_HOHjbHtX|J zcu8#`#^*|ZW%q+gF=XmsVZk)1$0pPgxR=+_&V0XgeyISMsOO%&f&lPyU#Uh?Wwmt> zO-Ei`pUK@=#dV%;Pk^=2E`R*BHPM8$%g*pmV1wmp=jVBGW>2>6DX-uV>&(sZ?8SQL zjaV}D_^G~Zs*fpL6Wiu^(lxvymts17iZ1*3$flk_iSd{q*sIi3qd8_bGfP${*tka& z+z#rkXFG>k7Z6Qb3bD*9J__xp(5>jfK2qwn&h%4H0j2m1^fmd(pTHYe03V5`Jmu|d zndm%AIu}eP+<;BK9DQ#g$Eb0sb}v3_W+TLw#t|&{AH|rRa3SWR<>TCEHJ{_%CzHc+ zCNX8N<#U3Sx<@Mb#LYo|+bYKJ=~Kmc{+Z8^CzZLj5*LXhHH4J?oX!>|Fk-^0&K4#x zeN|(DcV9J~8h_$=kXoe|oZs0p#SvpgXA93ii!3R~^UwOCAoh2CQSc)7MU{|4FL9J$ z3ey)Qn8Nf$38pZ8QGzLqFTFHPRr4;zx_*;HKK{HzxxXzvt}XwOOILmhljL0;y^TB* zeI|XD%nu!}8TR_G#oc6%-WZ<9zZ;YM=PMU9=WZL9`^u!|+#g&d?*cZAE4)f5X%21_ z2dc7_J>;4L8Q?n5^BStcVO%P#*FxkT5qXl>qPRQA)nU#AesXipVU%M}2Rc(;a93GR z7WNqiEBwknHRQbLSFR<6OaNemB=RVkGquE{q?a<^=E-9@R_Gn&^Sz!|saT(EiyuY_ zlN-qE6S9@hViM8Xr!R8z@G3d2bTZl{vpy?Y7z_#zALBn?8rPiry8KRl_anLA9p}0% z-<APo;4S6XCq(`uI8V6xE|zmY9w*u0h>Afk%hDUYo`bGAS0`u=a9*h@ac~LAh^LC} zyk9xcocnFjYI4)n6XVUh!?;G`&vG@0wr(-<c~Ng2mcBGWzqv1+19HYWj}LrCq7G&& z-vs>E&g0kXe?1!vH|KsAKb?XzPA7Po7&Z2S5<GN8aZ_#EX>bJS{OFfwsE5_T3%#CU zc<-C(wS@i%Y##*EuT+pLTltP)<bD_b9=i#d4My!CILv&kq_WLXWxPTSqKcJWocq!x zK!VNW!86X~S_}nQcp9#Cn7opkrl^b-pCcS&Kxw=_J;p}@X$3(YGUt-u+-JN1>(MTg z{63No(-<3jB;~Hdf9lW#Kl%OFBS$2qy+Zg1xlAxM4X}v<MsYqT@d@e=(c#6QUU0}8 z0%KfMi)>T}sO4!}%eDwoR9{8zx=GpO_YbRAXXMA1fs$LIl3wt_=_RXj*PTPjLzFBp zZK<FYN(zPy8?JWU!o9xG6PCQRA4ZG20zVbH0?!>%_D<7($Uz70knO=Ms@3%+s>{`2 z>%x@3zNEJ9s5XJ>5`JrP*ChpsR!=PSR~rDGUh?~U3s4209>?$_sBsP5B{lSx^rx2o zT;PTUN__>cDD>z2s6T6|c)S`Q!~nKS)kfcHLSLa`HNhgRq!Fq(ZbWZMBl^?`pin=e z{f>0Kr~!EiW}!t#6(YPbU=0@rOVHO6^IAz;V(6VfXWlHdAZ|@}No&-CIDcPBYX+j$ z<gR0Oxg$NMdNxx|NS{!s9imoiqB_)$Fm8wHj=tCP&EQ12RD0YK^l3|I!lG)ATQX46 zlEETg*e$+;oe|43aQ10~b8$2{>u6xaH2{x?X!B{5QD`urMdzyCHL@!TX^@IdRx{%! z_o>PJL%*}-)YQ1ygC)(z2w{gaciknr5oev6-Y6_~)0D?(<Rsio<ts#@T8E>{<Vwut zfM(Zcmux-jwVdO3Ey-L~Z@)!rxPtYo$r?Kv8HI#D%?!!!bDqiO9pIby%<Q+ChFWIJ zg=!}8@*<FSyNsGJCa<IFgA{p^e<NhM17Nt?k)na$PRucB!i0O}RgEpHF9NOx#*OMC z-!oA~mLE$RgTCt;;~G|IOblnUaX4K^`cB|LKz*3%D{#G$r<wZmWCVI`Ni~-LBG9T* z>ZkCgKI6?w%!~Y^a#tbWPZe?`(3h`IuhX)-Tc)t&_jmBGUjuBo%b&E(guxbfJ#4iH z`kL){JSsh&RMk!M?RO_belu=Vl#g<Tq;82)*U8vMFE&eCz>Kxq!UeHX(P?c+8JQbt zK~zF$jbV2I`}*`o+I7Uj$1%j&v((|9xG~q}%h4r5%dGMnUaM=W`h>f6l;2L)x1@~+ zgTUFws|b384+Es|t#1FAC{z)?X!J2GdSp9j3rIq4Q2{`8Mrc*>Uh-};GC!&m4Y!-3 z$?s!;u$>h$=+z-#53{Q#im3mc_QeAEoF%`%HL^mgNx_?dd4kFgW2?kKNdx|W=H5L# zs_JU|pUI5`0%y=fqeTfeNK#Q5#7Z<sMka7ZCxR6PD_&agl7fn42C%g-VKR`zbSzri z+PiIid%qxU@zz3yNG{Mq0&f+i3TTBHMj)UN5+w8ctbNWT6TrUj_mB5^emt7lXJ6M| zd+oK?UVH7e_YiY}UpOqv%2q6A@RTDfq_LHJtd-qzq*+9czvFm?%&Y)0`2MZfBJ%Yv znK+g7GE&A-zW=U=CzM$I?yR=QMV$rqbD51o1kdS_pfWAf{`j$wxC7-$A*w`HYq5Rg zO^rHb8b%-BG}u7dUpG^t9@FMgwApKAk`&7Tl&a#?KTdj&@{qm3-a=1Vizl+etcTep z!VZdHIVz_{FHfqgDk(M5Q-)%3m!2(ol^p4fU`!*{bOP0czKp*DG-Y<vQ)p(^0T2O# zT<BEICS~jx-X}|bRUP5vlM0z#(f5$BlGum+Q^0N4;Zh9p0(eUVQzdEW6n*6C@B8%r z9qB}a<N;@}2QlD{9>9!~<>5)*5(j?`)h7PZEX%5KM`dD7Mt+TGyq`0Zo5b*}x-429 zS!s4qcpWgyQxurmiTkRQ`6%X}SSJ!G7dODnE`egLNCR*P3~dysJ%EZbi!PPnF@j8z zbFbH!$4iWi<;w$dM#c`evU)6>QX^wAj}jCEc|F*%mZ(g;r|v0J+~Ze@g-hipy`~ML zl!%GREUxYc>yf7g6cbROZ%6^AxU46#pb(4-$}vDQD{Pet8_=%~_C%iPFWV~3%MwFw zSvnecLql?|(IekV)ma_!n$=0db2>Zu$ahtmpjnlV%qiq_|F>oVK?_Rd(}kRdUd8GO zeiPL-F=hT)b4)Dsy!JQ|Vpr<5A0i~CpfcHNVz*;Ji$5?zX1)`ay|EYxG*lyE)Etz0 z<oT4EgJuPBLS_Yr2uTHcjWVBBH6~2U!5!XA#7R%hPAOAe^O4k!Z8Z^Q(N35)A5ywH zWjTus{4NH!%KWuvr_>{+1u@=cAy$f2+y6z#1o<sOQmJKk>$SgAU9(3OweRxO>@iC- zGv!iT%^tI~WKk{J|3%2`@LSb2Z<#PEYjrOc4KI5!il})@m8nUJWv!~@Ewf>^DqVm? z2C2X@=oZNAZPg~>R7beDsfa~Pt$QKxt%`2!N2{?nOcDNmh6zsOgMUFZ*ny`efoTFO zk)m@^Gvgl?Nt!vgSX5YTQlUgnkBk^5vDF++nC8>qT#bZOBlhYnMrN_C)%^`rW9h0& z(SS1MHCwen;UrCwxfzLaNhWD)b*cjbw1Q9U!&COw+X<N?yp@oNF-bLXrA(yhYIVx^ zopIPDV2ZDmUD%|MU=9`aC@WKNN60L#tW4=gwS9AS%_eiuwwR^8C9wP^V$IUcgv^0% zA!L@eNEFX_JG?b-n8jwo>S~%*O`KcRG@GTH2$`ju2}x<|UIP}jET4K!r<Cy4G@6yL z5UV>5ol@Gvb^e-8DXnfmbeg3t`&h0&9G9ZJ2c*|*meOJ|gZ$7*f?1lo635Nb)N@=) zOFa=RU|`ub%1~Q}q@+l6Kdh$H6IrKdjXT2<9~tYE1Wy@WYX77X#86cVplgu$k35l= zRAod;XH;aDZq{PvWEU+}Q-evz5-YB)RMw9@7BH$(^ruoOHUNJ~RVwhR$fKUf`u@l+ zGxCIPf@RjJit7SXTJev~oX7RZi>czg)S<)I^s=~Kb6DXG3-y}ACN3ppBJUs}6M2#^ zZQwk1b^|Ar0xunRL?{iLtoG=HW&LIyZI{(mPApXfLJlljBDg6bIXK_kWk#qa--~2} z^Z@tu@E8z4ddj$2$q}QNt+R6nYDB0ql4QwNt%$UdY6asI5kF`}E$Wuk;gNI6y=D;$ zj@J>9Qa666$z<<xQ{3e19zlrW>vFPa@^ueFkjdBe)FqOH!sKZ<OQ)1jI0amwI9*uT zz`Y<e2GWI?SI$eNPf(9UpbEpVT_RMUJY|Sp@0gub)p*LNT2*7A0T0vz(I7ZT6;Z9| zQp9TIkO>N{5Rz6tG@Cu-H9jy~vEcYnb)XmN?KHaA$I$T7=m*((hf&04pbCbrG6|w* zYDVC|RJnHupII!!h*!MFp4Z7qsA;O)i>dN7v3br>THyWIDsxP_P4DQ%R(TNdxqQL< z5EOdz8fJl?C3$ifjw1wD9*Sl{y;y2bA4~$K+V5h_jj48TKA-uBaJ0p?3V_5`yLS*K z-9t$k#$91*$jR$OLu^`BXP_ZAEvwHXGumWKwX@zap=}W%F?uo^X>BNm)##4TSESPe z0#4>O+*hE~#f-q-Y%#PJ8p>>#b)mA=Ms^Vc^^~plf0;E3VPW5nW=Bl59}`n;5x$kF zw$PX|)qY4!wN<qA{$!r1O4fs~>uKkn{kFW?$V%Jo&PHdO_OrTE(;j%#@6w)atm~<H z^Z}3d>?YT!_PXvzeGe=!!@-j|+DgPi+snB3wMiM{U6;`&_E+kws=m?K?ptW=9NnoU zHPK=oN!D#8amJ*DIoUSfph+`wa&7*5jP0VDOrGj$AuZQ;2Q{%<i@sOP`9$6puoT>z zgRAr$zn^@#Dy@5OKN<D99{KT2OpG)2;uv~6PbBKr813jok8B)DqQhu1EA{`Dq6d;k z>h|wRzB^e|iM_Zd&%W)g@iwEA>|IHfFH3WGx{M;1u{6tNEX=Jk^!&S<%;wU|CxZPL zdvMK}`t})maI(z@;S_#<)_5D1A$K(;3ukQ_Z_|b-{k`kX+h^$Ek-W~FtG5W|Y<g(7 z?~08MLK|}VlPrAkzbP1M^j)eOMP2}*u3M$9;On_}yY8jBTvc6qkzs!~8>qD1ky7~I z&Pn!c9S-*LaO<Bp@-PNaQ4fX_FJET;<0g2oj_n1u$ZQVAc{Vgy|AGhXdKX4wr;H;V zN34%gOoTZlGnC)zqv{cMj3$oiMt%v*RYdM$v30@MrdV6FV$Z@oQx5%kM%`t^TyhY= z(Y2>*muFO`*SS-F*=_yvMrM2>ukS_fJgM_z?2I1D41PfS@93kB%RZvgW1R4yOCE*U z>`718dmaN4f1|$_9{lX08|Zo;W+r=>QZc^40?rBjV4qa&B%!m~;ORh7Pj!7DedQ<y z^X1(FInwz!1v&OWJ9Xz)J)BiSD^fOBvdXl^00-RBs`nZ%Wv{`uPj|kn^Pwhv*T1Ex zRI3013qbf!G1YdmDZ^wy)u-$SsMLE6c1GT?!kd`h0Pkigf6W}JHQ~Kxfz*oW(>&3p z(P}|Swetf7#XLZj!TP6u%~;S*r@_X5a~W5)qAII)ZWl9Y=RvO%JTtZ!btUy{xcJW5 z=;Ug7`0wD2)lTHdy&1Aiti;mlkWgZ^ScqdAa%hs*`A-jAXk&_WJfnCRvyW!D&Yky` z=hf8kRge0oC+{Dg*HWb8#qv5YCMMWy({z0lzK{;<dD}Q6)bl>_j(S_qd)td`Ves|Y zcc<=*+|!h@XBa@g6RjaYArQV!*EsNek_~_Ov0PpIhbOqVQ>z~YyOEyfa?`p*;h$S3 zvd=A*eSYzSYi<o!l-(MhSB9$L?;hue9&NivEZ{MV6YI=vT-Fxc$sqwoa}!Epf0gUo zLbfwYcr6{9YodK6MX?vek%jZP45yP75h-flWW0vy(E~T?;9HJ>_Lu9<UQGHi%9oyx zQ}G|^9SL=jYwu*9?(%dT^kBFy<&I?NPUaUP$NM*m<|7*Cl;|)g4ST6(m&duyBb7ly z$GuK<kF!*FZkBqB<*<oIPQA`IJi*P5>hhQtx&RI;_|g6$$Z+V!!w~K`P&{z}ia9^* zXAgBBF2rQjBS#|4*pEF%ujZIKPIKH^sX6YPp*iloUmOz^gJ7|_bf{m`6{?smc0w=S z$fV;t$D{X1#vYi{%c~6zSO|YH7v%5E5?pjR=9Ey)oRUhd41{WBfUnGGq>Pg?TB%u; zR%%sUYBg1AHjM+29R9x*A0NZ-EauO><2)@>D;2dGJQiC@Z?#gXwN&aar6n@`I6wv| zv5-Hv-p`+@GdwLT*GMt`RU5x}PJYmdfW9MI@G&~)i2%IjuxSq6p*dz0YmV8#`=1e@ zM<#u|W4tZ)(B1T8R-?unbGqP(U$HonUokS0-=)@XgZ2BI_4_O9SJq9rL?jlV@=q=` zOtj*}8dSwa%v(`HlwxdtFj?qtVqw7U(($TTe<GA53pf3ZD5zkz9;PSYH)T{R7U=&I zzNN=v6)i*FNwZ=-yI1|1Ce(UecO4CB!O>a38^ObcC@=5VBR@2q4zbl}C%ahIuBh*2 z?tlTR^M*@3!P71+m`yQ-cda!0wnxkdE&@_vnR1gsRT7#Ze=6k<Ljd!XKMqe_(ro(6 z7~(Q))!Nh})uBULeKifP&YbZ12FVmWZP)5=AjZR6DzEa(x_L5JTTwueP;u=bXIp%u zM8j8u`}XRQ+xD7fblG~a*{+9nX!Sc(a+e-F(90U=+>yTCL*wV$A@TEvL*WI(wOQ@N z6pYelMTsnMLhuEUo1_evXmVR==R37oTP4z|4fhtf@XJ-H2U{}yf2cgsZ1;`PgIlQ9 zT>$NQ3n0FN^UbQycSzM#$TKtU0v=^)_1*ugB434wq{02z+}>&L2ao%9n9~li>&_?h zhwH&;u3o;)e@HLy^cN*Q=iDJJ`M;BRO%JwV7`R2rBij0`^T*Mw9=VCQO`h`2{tv4| zJWSIp2#a9+s*orw3;8a|;hrZvwNg*wrcc~}d5o!e`$>Xed3T18Ah<CuLaHoR!Mz}O z1_<uJngIkyO$7f{A$S`d0KxA%cR&m?=R*w0pVEDBFjH_ar(m4sm{(A#&1w~7fHsgI zDYJHIv-WDkC4D&QCN7&Z{F_ch?LI+z3XP?OpL~USXKm7EZ4vxY9_)I`TYPg}Ct8Yp zu<&lE05p!s*Mm(C{nf8n|5EFb?wpzBKuQ9YQU5Vd`F8*Li80O{H01woVm;-uq#P#G z6=ZTexF>SBS9d<xT#NJ>jQ>&*<UD9eU`5Z;4<euah(TV&720c;x9~GuxENbIV89 z30ZdJxQZ2o6-}=D$XxQ4pVUGjL1=mJl98UsvKeA|4Ud02d0Vk3^T)!~7Jc4hr~ncH zo<@YR_c4A{;*(Z_1;ofP)#Gg&E+T)j@RJusVk9Y1qmn8l=?ay!&q^wsEpY+jU^vOb zoByavz@vos%Rgl3Ltf!OA`GGARWm<gTAn+Tv3);#KPgQV?z-8khqq3Xg&Af&k-~kH z-B2m@7)O$Yi9bm7eg64w=T@jNAly3X!dh8!8p$fZYpvhstzSWa#0S*x06yXkFNAOO z)=5fmfgm$HvAVoVTeU>0Ha_wgpXe~vcG49CO%~R_EZno+^hzfT)G?*f<VKE6&2bCg zw?mnC!<Xg=b7DToqUI1o(LUaIwNws1N>zjP=4}d^5nhi`Y3$+UCTEPvcUagGoN+iG z5T+IyDWxI{kh5W?QUvsHNhMhre+djZf<;70cOCNU2nyfV9O0Py`PNDG^MhQK2Uf0r zVdWAntX%!V%K7E_VQE2vasXr;<$h=EAIk(Zn6C#CtkfJ?B}_=V$7)_Ii}^U1oB5Xr z!ldz6{1ESj?qtBy>8|jqTly%di+#)Q6$M2KuO=FrLTXADe)Kyla-E(|CI3oAzb3>} zso-r%7H&>OXPH&N29t&QpQH+NABY+3eYwiiw!BGO`HFNdtigj|ZnGR!tF!EGBYL9a zM0BK9|3j&?e5bY&g*_Obf!={E+WI+mdsY4Jr6tZr&Z`!E##_F75eNQnd&_oIi{qjD z9L`49L{1{z(Yu>mfm17d#r&=F&+wM-Tzm`lptP{+$)KJmCMMQPic^p1nOG1y^zyBX zOI+G|uN@<leYq6K>MM}x$=m9wJ0-(b8*nz>-L&R*xm*ywmo6=%<f&AbF4ZH`>C&yz zr5oJFrV~3(Z0hUM)>N0K(<QQK>u26Tmv$^I!I8$IuK~@X#h7t>%i1ta^cr_M+zkxJ zY(z%gAzkXJ^WDhb71E`xi*KPR0KZiMexm?>g9Z3>0Jo|K@GYLY9tHUK6Gc+)d@tqt zGJuL5O9MQOCVO1l-F@=@!14Mv9ruPW>>sZY8E)e(YrK|{sK!ggHE%?xbJL}B?hHED zs5N|#ie=1NwH4ox5rqI&a8^jyrl}$O$iK9@tkqXLWp(~wW6Oyh&PIi^&r+Kwc+&3s zBG{pOi|m#4C$xq}N^XRYQYDp#P7~r%jHkSF(RgQLpgU6w9h4{z+{=1=BY6YudY)bT zCsAAxU_naa5z5Yk4CNf^x;F_{Pp<G?&EGmL^ha`mA#LR^Bmi0Tbp$LmY6i|NZ1M4k z^eR&wU+J{tlOf2khCpWsEF>@lt)9A*YRU&c=4wyk=E^`X)XCpE|BZApWAQ}kUk3eq z;;M~EQMUL<S|KHC(WNf!rA1V_e;oUWjYw&zSbEL6PEnW8qLLQ^%X4kMA$oYwD^gxx zl{-KIQmGJPob0zxCugS~EVcWy;~ij=L+3%F+sIEv{#7FTC73nI(Qik`r`<0fupeYo z2iuXOx*`vnjqpevK51tga(P`Ah`jbbemus%6T|u|^n~vb4U1Nf79CD|DnqM3O32t1 z+?y$beo_25pZ)n$3I1kRl8e=EAsu|88(AgI2$yt@gJ{-hCjX0%*nF4E_ALzKr$a4f zhZ^O&s_^y1dXpcyl31%zw!YDasfNm{)jtH*RemirM~0a)f2K@)Iv@R@D118`l{vAr zSWWv)TIecOVr+@{9#E4>Zcr5o(=JZVC??1HMqQ5nWm9Y%NEWVc9B)fx{K<}J5q!P0 zk3HWba)E8GTKu<H!DGw8L$dJSzgFy6M3Dor$ApT8NH6)gi4T$MxA@;<Sx?DFvY!-H zQ>6}@4NuF}SJ{nda32gqP!;U9Yavct!TjD&d=D~2pUli=q}Z?|hN}LF#DfCt7Cj9A z38NDuGucCJzMG^9M{}jaE**5p2FbQ+S}Ct4`UfF7mx5X8w8KRFOR}SUj4X-Y)6Gg0 zWxO#)4?p^n>ft5QLsPuTFnb909IB~EVe9N%V9MU-?vrI`7y+jJ2TFjU`vP#xsT}a{ ziM9Dm1O%iw{A(n>EfMe<eV=It@^EdD2zwyoYo_R&EUf$u6$eixeItN%ey-hLuwfiU zUzO1Vqjx7qUrG*{V3p}}LE%T~3yqJw=sygW&<7BnAf@w7d7Pe#N-#OPSN43yo@8N! ziu%*YnWxe({WJAT#zVhKpIq!0(&nBy9>EVE#?FSpWC(^aets_J4ZR%HBo>FKXE7xC zdU!gN#U@{m$QL1<EblKJ1PERcTO^6lY+`@^q8WQX;iFRoNKh-3TO_Pi0>%8o-=q@K zaIoQ4Znte*UXBd?@qi*i0ck~s#_nfq`wE%$D9IQ>Azv^OeEs3G`e&Ss+`2K)ol`rs zGSJ*s*|5;=Y-`AEiro5>ROGMIBHIJqgKKj!;Zm6@we{Pq6%6IDZp?7JXs2xdlr`^z z%6us9L*m715<IVZdF|H$`PDqa@gGQpampK6B0C7==WD+rY3HkGIxwG+7Iuf85=vFK z<H>Uuc_7v1n;7QEq$5?FU#iUj_{&Xg)D+_qO=9HQE6nUKkzG)n`)W4TLmy<}Z?bUP zZxxn`Q`6<zE%)`q0Q$^?<mjBAK{h6RgeNCQZ+`(MF)~11wlnBc<g;_o=e@5<XQ0nR zzdR>>E@R7~=(GA4XV9m09}D-0Y$WCaojx~zHAV-?eUQg}^eZuez*GrbLEuUWTt=Wk z0v8cD<s!iLcIbN&7(}3rfRGK$2F#|2sz`c6>Sv@4Qh5dz^@ABH`x}EXdFfS!u8C<Q zZt}mn4`r#8Z7%YFaf*@;OG$ngTE9!xuenLFf(`P^KXz1W%#Z}1>kmHPAN*B+aIF<= zHr?6`qRh+vsg3=?*8X67e{ffSaBqJwW(B3wvn4!mo0kL1ypf^5R6jDsAiCL5P^@~K z&9*Kh2z#{qm#oH~D$p}Xs}E2?peNh^fYMj4%M@O6m)I{AxmIUX%=Bed6#G3a4jGGv zxB_3bZ`7WWMOY*zR0MJ~bEnzfECx|{?>MWy9kF+=w%KTHoZUZ?)^u9)UC?m5y*U$M zco#bm83vP>gQl*`?!VC;{%gs{)Gsy7c8iMazQ2sO{mSmYLf3xRjym;Vv6^Et*<6uT z%Wt#WCiVU-!?w7<*_aseU`wVwBk@yq?YRw8?1^uynTS<Yu_w6QZUF}^p?Y)fh}}vv ztV!c!H8>CP!hb%>h>{6-D9@s<{N^ckdm@X!8EfqgnQ@P-<eWoQj<;EJ7l~tAvhY_- zlGJ`?p#0-8lA#k?{We8xoHzVa*Iqad^h&7^>}9c)<54|~bME2p@Z-7MDxBM?l<17B zgCvE7eCLj2;nuY>3z{q+3>qmMyP5Z|M)FbKs;zpGW>|Wm{WqjU-Ot9`<ave%h;|_y zK6~vFEm$j{MBgvwAUuyF&JT*+=*IKnxM9xn7}N7NkZg-z%3sSzF%5acPEUAPRrtXa zc%bhr@Wv|eSRQVUWPR=oxc*I@X>i4VYQpsoq8UT(;&8g+s{6zQP?UKt<6oX|PE~ku zF3v)W#eqndocgL^KfCD{73an3@t@YawcrE2*ph{5ZTeN4zI!Y@)IMfu=Jypd`~`X* zC$S$CqpU9i7YaQ)IQ4LIij{|=-9(MYm{m}1JTzj1tb{J(I;Af=Q$YL4!%BR)7ZTYp zntaK^oocg-WRqbgT_H)PWK;UQqMNHyvYE&e`pX~xwdKQ0e|>D3DZg|0$Td|CAH%ay zA+^NvsT5l4D+9k}#et8haaU9Q+SrZeG|Uw$NHBL4an@6Efb5=<A2_wa5GDI<DW#-P z8C;<QVJ<~dh*aM^VY6~hLnKT@B4M-1!rQ5zl?NWH>YJh0v;>%u3oq4Q>AL;>|N6n} z#ZYQgfAz>On{T<!a6zdZwU^u_qTU@+Wu$Ns?QR%Bg~`HSt`k^E`lXrlm?SZpwpi6O zBHAJU7$?=OB)|(E7-Vm$+5W8(n~i(V#>ui)?WM+!n7x&Q%Sira0kN#r&eo<6SAt(t z`ei%P3t|zBSUJF}$lh?9e7&WaIi3`}-Hq~N;Cw3^INz3Bt9QMfMq=xJBxLOyDU1!3 zp`xM=J&&_g?id=wz)=yLPC6blrTAY@>LZdrC>5T-H-LXIGVo3}7m?lJ`wHCQhl<?c z<>FJf7-zaAZey=IFXlEHtBiNG&<IcxUQ+4~&l(%PZ(R7XiN;%baV@lvXb~mG$r{N7 zQr%?&3u7?Y5{9Q&DtRX#stzuH7><-dC_J4;7kK8rfr;VBP~tXI<31T1$T9X~H9OW& zDU+k@jjp#tCtQ(dFOUe$^M<i4x<3!^al!7PE^SJe5#_odI(*3IhqLoI;F+==^|d1p zh7+ypPNLXc0=AfXu}tXT<Ga!PZpg~uM&sy{40>7AWo&neC2N*#5~c<=?U_bbWO`>^ z_pS?Q?U`tOt5!cfo4FX>KeQ?j5@uCnxro)|*ld3TAOssN)Jt#TmyxSVdi*Z2RiQ(^ z!LDHUTy0eWiB)Vi8-@^YGj27Fs<+YD==tsQ&}5W#RE7Rcomd)B%#9A--SL{NS>?@I zXcxa~mjnLGw`ldK;*#+uBHfHy79%wwJgY+3|6<~3G%wggo6qx6#i>QZcL~TLe36^! zTXWQG`0!}={B5+{;Vx?n?RIPKUQSG`HeDz}Lvtymm~^=^+l3%#ORK*~+McGW{<l_t zvkGw3BHZ5WYMF{kY7NB_nBO(8%Dzoo)9Bpon!kOX7RV<Sbk$GfH=YDb!R7Zu3)l0h zdgGbfoI(!90?~tz!pSlA_L@eM6poc`>e?0B;fmDfn53{NJZm2E?0?<Kn6A&taT#yA zq6e~^yX$&H8RXWcoWgtIS%W*Pv#!S++)efETD=eYv<BC0^x!(ND#YF!jA;!!sl{mb z*0c-SI3FMFn!jnD@kUuQx`wf@k!Xvr<*z6bisbi@Z$8*xayd0D9aS~|&3P{S4sA_T zy8q_9g~RLHEIf)bH<97oEhbaJf7s(EAPnbjA(=x}p|+(lkU8(`@3|s%3$O*LioDp) z4{=l7T6L$Qh4@kqo?nwAxx{P1<+|NJTwDK>=YfX}<sdE8rcgV>?sr(xDmG55s*F&} zGRg**&j$NGLaSFv;R=Mb2l)ywnWL?5cN=de3p0OiuA<dMgI=NjVxj)|e5a_tzKjn^ z;jxt7n4MW5V=PqfJQN=)KfC2XPJ`tMMGoRO*fY;WMWh>&imaA?x+Bj>KZ8Be%??vU z_|+-=B0c7H8(r!<S=gl5pH?qz1CQ}$?6w}NJAJLT>NiB8<*=+4%Hmz^+!2Tj{kpk3 z_?|u&JO1tQvE*_ar@5}l<j3KpOO(O3y3+@k?Mp5f8!KTG*A5jn0ZF+dzRgg_;k>Fy zev2y_&vFI#jbxHDXWmwmcE9HSNFl<7&RA*b%VCojs#bcU2g&<y*8VIP>OOaQyY_5j zZo8V}hbdP9_Qk|PN_@aC38K3w3PW9*yScnmvTq9XkPRIIU>`$b&J53TyUUMhAyHky zONo}q=?mQDZ7^FR<D&8mKQ^-;YmpzCqqvF$6KkL8R#;oIRM$2%f~6bo&9g-cl)XpU z!OViXNY?qm#%^#Hdm3LP&fRV~TyB;X>*?pz0_5Tu=95F+93ozuP8YY+f<+fTt~yw} zauVneHu)yH62;gOgPproHrTjG&2{gKPcz(&vzOj1BI7_Cg*C>}X!lTzxk4wFj>I&l zW|ui36HLgac`l>XRo3WI!g3-LUp8XC#pu2YEVfB%U`t$bHz6(yz%_T}*>2L-7Yues z^4l5Fyhy<t+@lP>hr$LKXku`=!)COC(P;(ct$u%aT2ZLch%$a#+~pnq2cm~Z!m(L_ zLHP)G`CAN8Wo~DM-G57XT5)<#^zTtKTZy|os<JhsbG7>~3ofr@&{PwQWUGI;jH1yl zO)gL*(&TJBL!P+Z=mguwvA}zSTt+7bQ-fR)eNdn$lhv-(WgJzMi2<pQoxLsCJ*c)i z*qGGkw(2z<isfTQ6it{b>)YnaTGkPHTDWMaP4jd>0r%gQXIq^=-1S-xYF^jQge&;I z-4)zAA-G>l+)&e@1fYYCvJUN~wvM=+pAK&9k*M+;M|UR3PxkVi!FF5uPM6}2aNxJ2 zdk5!rx{bGai#u<V(Sf_#(2k{-upXzaf}M=v7FXFZHOXO&C-m@S{tGTIwHaH%%Y9?f zi-(?PIK$J&h1!g*n)}`IkF*fpsBO$Kqe;z+`zD~<mkGvbED2AWD5Igdx0N6D*Ra%? zV^P5%re>A@3-pmjW-}VQ1p9N`<-7cos_ao$O;q(a#!BB-7B#yZ#TF-$CEE#v2Cy7n z^*lj%=K3}ceI~Y2?cI!=DC}&|Ydp&w4@FhB;L`hT#ugfxF^@$&6rp5r{~-IenqJk= z5r=WCtVerkN5?@sTq7e=A!i1*vL5>}?WJP~b34BXKYD4xk_TB&UpmoOs;rl<j>Goe z=;4guQr%{B(Zo`3d6)mHvW{SM5TjJH<IJI>AHk(FEO2H5&a;gJDel2Fx39Iom=RpQ z5YE#C9N}5MAY5qGUj*#sONsrx#4dR<*gHg9^%IHR7~n4n&+_9Ae^a&rtXMZ_tLjw5 zPeiRzWxz9c`|v36T{()u9j`0cQ&G!;ofs}5|7_Q*H<0j}ZOiv>2yR?M(C#mEhgV6Z zuDX-Sw(sAtWP()TblG=Bvc3?>T3OTR7)Ij!qZRgMxBU$cz3>=>4cj;lEgaswW(+_Z zp(ySpzHrPTapDPs12#SHsHnvATGe=^$-{LYir&P9U7_(wvT(>V<87|>m?+|^jNXY+ zi3^Q|?@xAx5SM(DCMa>LG+&8{lrbvhuO$I0BT)=ZT;ac#2ws9o&>|*kuJG@at5PG* z%Ae~Bf1|`i%b{R*MQt|dNfZ#$Lc1ySiXg`IvS7xA62rvJB~{d5BImRqM_aX)T(a1{ z!0)eUcP*1SQt$=YDntstQ)S;gzpKJsb4=mPe!_*9FlBsStmkcZ8ws(;O)ke&lFi-% z(dUSQ`*}8lu3$w8wLQ<;u0O}446^s~%;gz?sF$k)F9%*)&~TKZ+{*K?y%nnnq(U;g z>P`#9i-uwbf%OBi_ekt|yX!CZ_yk~M=;7EW0QK2Tl|)NB{_FJ7Hl#!C*(ljat*rmZ ze_i01y|_aQC0Qr*Ng^CWwj|eY@{OXt_yOXj!yWt*?L6e%9p6bfzKuVgxqCd^LCJkQ zU*f4T{xY%pE3?XO+xC2G6}{c1cg3+P22a8yhl(wK%_ixkGUtB_hboihBI?`@43k@K z=pJlCs?}vCzkqxrOWP0mHP1;<@G!yoR9m#Y#mL=iB~rCfZ)mr!dC-esg<8OAvXGC% z?gDKE(j$m#1X2l+MfOVV*=C$%6E3#1c`QaKEs=~I!9UxA2wLhANde`?SmzGORVrAN zy_^eieFC{BINKzC9Pv@IO_bUzC|F^(Fj2KYzDhG+rJcfVDeRU4z7ky;kPD1nvjJT- zfHq&Cm`UcDCU`TXq89SamKNqva*o-;Y_kPC0J>KHu;h7&lGf%)>3L*&*vxdlnQ3Op z0x7+q!E_00*8H$pv#(^KnRlU`3Vc$5Pp|_BO9kF1Y5PeNMy4W2_;X2s#$4e)s~Kl} zL;W}p$<&bqsdcmQteSnUu=$H&jZDAPG&FvvCK=nz9utN?n=_3nWyX>FIer96Yc?tr ze4|9{2S|KgC3=LO0Y;{yq$^WZ4@gCO#&M<e$*jkYz9W}RH2+ssh3Xxa9z;>w@A#oq z)<y$!T5N&1WpHHl{A5L0FVOj~fJ^u<5BA>Rt70l3-G@#qd({Im-x1|kv^X(Vi2eYv zl7A?<%8w$B@tru&(k?TjY(OgDhjDPdg;~IosY%wEB_&$uH<CFYFlB2e8nu$XB@Pl> zX!onEjEfdpp31sVWhG8T;8zA!T_r9p*onulPK|^A%hG^3JX&a~6#TNu1cv;{?mXe# z5$|LRz_iS@CbbI-H|+&f_jp&}*m|4E%i{!*8(YO4McwPdz|&4N>0p2u1&i6zE1UoH zv!^Xkt}wQ2`0a0g^BX?7uypvd(ft{bg2k+!rW<Ly|2z{yp$(=x&?uD2dS=xqDX&-q z!+oCEXe{Qa4db?hqvvm_C~Hkoh*?#=q8}}ESE?$-%c;XKQxw-l&JK^~)VkRv)_E0H z+}FP$+M>;sCpO#tPBG9GKSk188_YMUkJ{|TNlFSkm^{Zj*j<q+H~t~JBuuz-UB=<~ zUc%|>DmScZ?wjyCQ&OZ0ahM<*?^bi;ZFH1H*>|@^>NCu3cNFnvUzRgj*DKp>c1tDG zkWOyumJL&0i(HZJ*QKPZQi`L|_lD;6XzQZ`#9P|;&TZkj3A26C)X;wS7<;rPDh(n? zn*gx!w^<ONAphf3QTD9Qx4kS9>&_U0ziez9!G_D|;7&oXbpl(c74xVfQgB?bRCbI4 zQG2_wCHUT;$RZJ-wJFDpO=ZWll_HWEt?d3bJW2t!`0Zt#+RD?!icQU2lqXwE_#nB% zCVWS0+5{XF0^7RY3Z002LwlM}&9e>jldN3zsH(GVlHf?YX`35uREr(V)UmWFHB;pA z&bnSvM7XqPHo1y7339do;HD<^Co&xYKGm#89*dA+=^lgVX|_u*U1e=uZ=o`v>2K1E zOY^j;wm})Y9s9Pj&TQ$8Qjs}NSfCtr=QY>0Bw0!OLAljZc%^|NxZ2btV*3`kBcC>; zH=mLDz|g!mjUJWVI{%wd*YXJM>T_GTNcp#%`Q={hYJnfWPsJ|oOu6i>uA0^tug^ev z8d)p9p+?QaMagYn`skvE$XRT3m2K}hV&5J;l3TM~>Ow%?!eNt#QJ>28O%vr+N9~AU zOR_F0qp;+0c6Iq$*_OIZDtkvFx2|^vHP<e{z%+Vtq#N^xNZ}LiJQPFgv#z&jdkY<O zo~Y|KN9kCkU=Y}`pF~PY>u?G?r~^$JJ_Z?ycDZot7__T0>dC^Bs3w$Q<MdME1SI4E z75Cs8C11(`aFKCJIDanu6J;`cI{i6sO{Wl+x;-Em>K%hv=Bn8yHMooxSJ`$M;$-A^ zxhh8U91(7SPW+os2{(vBB>06CSwt2KCdTDeYKMzSMa^+RMKqCxU`N3Ik^OCKkl4Hh z4v<w**CrVqsYOv&teC-J-gnB7Fz=6cy$f;uaJ+nKp11Uxo#yx)EH?I(y~+5zDdW?n z5dL=AF-BnQAg06N+ROUJMO%e#Rd(DH29+JN#^#O0;Kajqr_|^ycSVyUv9XSJkF2tH zx$G@2UUZ3Mcif~DFcV!h+ojvaF&U>rCdbikIv6R?@-|1Zw1MMP-LJMa$LS#BWU0hm z_la#w;l-Et4cIiaB5J^XEOF+5U8CauZ^mnn;@)ZF^=osy7Ek%q@rq2iIM|#l+m;$I zH0A$)9k628|IL8al=KbQcfM~8*dd8C2W*9k3lD<Z_708QnS|kr?q~UDm4Q?l_pI9# z+m6P^zy@lLN+}K(+NN(l4SU_8*Bmpsy4<~iz4nf__txzA3uG1T$w-|6*;~sxqrDmS zc6+CF{?s?0OZ#TCJA56=c-*Ze)lO_>4}<%P95%Ykx@BF-<F;<_mMo4%4~?l&yP~pg zG{EJ@wQo1MUS>^zdr#kmcH$?ECwA5EW^<}lHC1HP7ISVU@7Zvz<G~-xghx;m?%`t2 z#Gj!UX5y;$Mzi+Vn3|aEx!guK7pje|@)U`>nL8PO$Qvc4Y&$xisy$8~`#xT&eY=Hr zPdX2k?<BmLaICUEsZ|}R44h7K+0bM)AFiQgSakh#(C4zhiClJyrY+DmB@3sZ73>2I zrJhyphf+?Cllu?pcImJ5AJVmI!B*-)wB-VqI$M0(*_JH)I&4#FE25*tQdLp1uqFip z_r^(NQ#D}scJR#I+YZ@pmF;xd--V$p9dC`xvLUXz7Tf0^cwNv}g*vf}vsyXZUv`zN zt~u}r?40Y=zAtg9WK_HD<|G-PcvI5JDCuMqt)&}3+j(4PkmFel%arZhu$$F!<J`-j zQ0UMWJL)&>-6t*esFWup#XOmPYK3(Wd5@ViwLhs=C2`nUPaS8Ur_SiRPr8UQ)_u}J z4N{#tA651@|M@=YmzX$WkdStt^m3^yn7U8;@+zq={XXf2r_Bb=wnv-6Gi5rK28%BU zEVpl5exB0B;)pa^cx<JV@gK%E4>OKtw8$s1hPi8i09eUV)GYT=E=2i?9bEa6f>$^R zFps^^t%-K3Wts!hvl&YY)(&b~qj!lyJmAYDCAhqZ^N;c+BL<dfnI=av6c|B)f%%J7 z{*p8En;V-YC6d1n9&A*BXY9bd3Z7E4`mtxjgB=R+Oc+?EW!gBiz=X5lnW*wtoS9!v z$$-B?@|(6Cf}lzTkb7We1yH4#-#sutheLG0dyf3Nncq7wKc`0IpLve_GtB%m2j-ux z^3OR({@G^!IRo?Gukz13NB;ZG{PPCpe^}*TaE|;BoB0<={>aoM7bb=*7J}dmp}D5< zw;&I`h=pk+tFp4RSz<+Z$<R!Da$s#O)0V2LraehjYW^Tl$z{%Xu~yaTA7OO9V(k!R z@A_HMi~4id+RLZ=d_y42g{ts$UvwY(VNY4Al_j6j$`Wbi%>9=&zL!{fRR4wLFUiaw z2&atlssPcdL6t!P%>3yuuQsMqUTsUynntVoHm)ke+2u{mBIQNPagO%;cB?9bRX#YG zeX?G@BzIr|?y?K0y0Ij8K%dvZD+bkG9^Id*zno*UXJlq&qcYcb##VpxdGZIk2l?|G zR!NXz^m<}+V7-)wlSmx}sgq0p(8`9F`b$(!>>OAm9pRN}_g%43R@ca3Ok!pg`@+Sj z3+0;jPPK$_=#?zIJT%@GV0E(j=E@ym-UAs+E_EsJN5Dwl)sDcX_7^h)J$c$Hr6^c` zOvxV{$J)6PN2b*?>|~J)D+PmrrP#N9^B05=*f(5anR>-P$4*wfbrrpcb=+>BTlq5M z7D35a|HRd(Uc^*=QN9ac#5`_~s5XPI!&jS<uGQapUh3@`<R9Z|SSev;IR0Xmt6{p` z)jSAi8nRSX_9;f1UbIi#q}6{8%|T)}9<kSp>-orpn_oe7Dd)(Uiv|alX3&fnaJYiY zn25t%<%<{i3LbPZuJ*(qTrE@89CR6r7l=c)vaQ$-33`TNbfK5Otp(+jxgU?~S)c@u zXrSm!o~vP+J^p1;T(I=B{?lzSiZ4c0OmpzLTvz#2xBuxxJ`E}6hLMX~>i>O_RsW^b zk7G&Igb6pEL0Z(~2(gnG&8pUX&j=b#Tlng-54a4P;Ty)^On;f4Eho>3QSgrOwYhq> z96%?|=UxS`ny!%~%n`@y+D)6}C=K;>XpD47zy(5<s^Kr%fw90>C`gWf2W<<Ws)Y(r zF*(~G%K%hw`FmP$r(jj2DFvtNWrby<Id)qLOs)O^<pm8q$fDr&$+H(-vByvpam*C@ zyCfTXq}JbEXjKM%zH&V^#|D4a>aAA)ysAc_6dhwMkji^T!@JJwEAgl*A@rp-g2h^B zGV@jupBffda6^Db?EZ_Tzbl0^X`wtJoX>cIpV*bvva4mK%0rsVP+6?GVzb&uRJLHf z_cGOTsm-^@%JVO@AP`LLZ7E`j4KD42u3aqb(I7%1SY;?}xE9($J7|kb0PQ(~sNDY` zEth{s6qqR2C=-_$nSpCF3v7zmj-y|ci~HkricUOpG-A!etu~=guh1uBx=9u3M~%O9 z09s6LJ5r&=)DRw%mT@1#PDE8uM+M*}#dg7s<cnvLgJ=c20B$J2u>!=3Yr2E^YKz}O zNw~w>qCP{=0|||YUtUCnNj@^$xQ>!641Zn3tUh_M|2{u9=N?>I7^l}^P~M%j=<}}C z7X_Ny*JTDy<t-_5t#;Y7+AH$7L28_Et$sWM>-Tm}sq>Z$bFF?Nvog@aS2Az$XIu?; z*w@-!4OJKu#b6`F{cMD4v&CZfi7a?UJ-k9&zcW(sjF@6%&4^?LSa{!vWZh(j-XvsB zouO*tobPI`f|b0GK5fLkf3W!z-&faWO08G=Yhm@uDENtNnpjQ~dgSp_(xKiAZN--a zldE0XS#+ub{(GDHzAJ}b(noETi*IsfDi{Y*K}f*}bOC`>!2`3oP?(JtT0ri^g=^uO zRrdH`sVa^4csNqU7MTYYaRGtfi7l^O$=Jo7LePgt+kKxE;=+iM?HO6p=38t&7Os-T zp9AN!V>m2!9(}Xzd`8pU|Hw|r;<bvkEYLzHnTm=9TD*4Z0&bFE?Mut62jv%6pm6^? zVRRcmz5uTSkAEy&BE50uT`a*NsRA(|J|A-}8iqXxgBgYc9bquJf+^`*FK(+%w(_S- z&2n13TM|F5d*86C*Xl1(+0r}rdEoCa*vCpnr?HYk>Eh)=3R&^*Fn=VJ8UKca&f+T4 zH^uRa`at`&Vqc$v`J+QqJy>CJxqiI=K=9VrCqOf&^U%KO>|d5R@9fFT%I|wLaN||} z`6#Mfg|Y$b65B;%Q|zN-3WZ8+_=%6@jxpEjbI)kmKYBo`N~F?4uLF&0StKuiR${1d z5PY51!w0w(&Sk6Y;#6POgBu~CNP}!%>$;U?dWqo87N2SIjR1hXiaf!L-L4GCA9_M~ zgfLN)L{qGjlbiCDCfj_JqN>OJd`YEvjB5DO9bA}<pJX*+9%R9YR$kc0nP`E{Ubboh zgr$T;xSe!HVE0&)M62(ik@#fjgle*>=FI|&pD948X2Vj&%=#>9E&ZuHqb533-DCXS zBhng#T#e_0!fJzKZ1zaU#cXe)Xk^AEJUF>lNcI}ba+O1fPq<*?H6C>|Pc6!hzrlwV zDjI_LfMYjt^^-0jvT8IHiD#hlk9@Cc>oFS|`kNcrz0b|6L(WO=RkxJ)$1Zn>^wEL< zlGvuLpCX6ae-nh0{YZayuD4wxhvR$yCOlgl(L}DTAR_){v`pS`twY>#mmSwuEC43% zhsmV@-os25J_Juk=Ms8|_-dK*vH`0u|5#foW(QLO71tp`RuGKOA1o#3OHH1#L)wbV z`fE~(qf4xsE|GXK4-gwXPx*)1%9Btg^5xak^bx^$4mC+vBKjwRZj1`sUS&<RX;XNF zh}Yi>8?P5ESXXVTLl}Yni1uB9$yaHi9}q$sP>dQSfcDfa)a8jRvEx6rB&oz<*UJE) zq#*d?!PtY~4++h|4AB(C2t0b(aXol?uoirP7;&Ik${agBiTh33A1B1Lz=yfgRWw4e z+4(8#i+ckO7PvyI5*f_k->f;cBnJgq`Co(xrLu`y{V3_?Q8H?w2{ch{?@|fzJmLj> zZN<Nl`&_Fv*Xn8ZKwEKsaiIH4TD=H<f$oJ`=q*w!9>LIn-<RpKE%^0?NFSGx9{jqG zu1F|8hXyPvvB4Wf)S$~)qr^Ipja8@prSX@j!^-tGY$}y2Ht92ch<R4BNPop2m0Tkz z4gO6{PWG`OHEHXo!wcfyC0|P@HEj)*6u*`fIR?CvUuYvfnqSq3$>NiRB@jjek90tn zih7zkYz<1$fVM?8FGV&Fe!Y_Ziu$j-%B|IR$ZWodoC9k4Xo*#ee^k7KF&L28Ywo9H z-2XyafA?4$OIJspr)su<T1d7>4I%lA&ljF1z5({f9E@5##J8$bHxA<l!E5YG7EWGH zX9~`Yt$VVsKl*^i;uoqqhEAAx_RRJ|TUJHQvE+!<XoMCC@z|-RrOMQ{RJr5rFvN*b zt-h7txPvsIjz2NCosB{o{vnWs&8NjZs+g%PsPaK-N+MY<JFN3Tp9i-uZ030E?SuH& zsVa?I+{nW{@d?lxoa4(9E+w3nzD(l8!YD27`w}OLg0#5x689nKOpANwFmbyE#%+*% zvKpo3dt2hx4vae?aYBQZDW`C@%Xru)-Y_ukR^k#%{)X6PvA;tUOgxxY`!|3haYtIj z6%yf2i+Eciu1Sl?!?YoB+20@rtI~-QF<fui3~v*v2bc$lvZ&^(!i<cLs(QFzm@?Jq z!0U_Q)~j;^-B)P!`-uy5U#W#|1!o>Ep=m2JNLBmvr!HqS^~h2?%)Z*b9WUm%*kVb> zKH-pgA4N}Y#^y>&mj6?$7f#4+e1|;{<)$bis9bx{=bsp?1-wf3#DPE3<H5&U;}v`> zP`*t-YP9Mr|EF)9r@X^=1!tO$R5cmYYgUtORU>!f?Aso1kAF-H-g2CF9rS3^Iy~iZ zZRJ0tM-`5ZYIW1TDMt2jA6+s#H<}vE&V7NnPw!kkwU93TdxwDP-+vPr&_6j9FacWt z9I{lT`ZtGf)vdn8+`JD&|L&0f%}DRx@1!M#rqNb4ef<+_a@CQ9U+G;o@J;!}clGsf z`JDJq=+gisEWW)jS^MU0YLC}S7IrYQ;^T*v8(&(TNYZh6zdDr=&y)U07A<s(DzHWT zh}+xaO5Gy~@rb}GZlNYvkUZYk)N)_EkWwunwFZ&TZS*fd@t-1WtAeL!1avO`O5jO{ z-5RB*WE?rkNX%7Pc3D{-PR}9^6C}%*EC_$CAm^Qgc7PPx6dlYF?!k*lKc5=R^{tF{ zQytVo-;he|h%QMJ3y=RjF84?JGl+qIUxvgVgk5PXw$K^n;UQ5>M2@yXjOSm0uh|kB z5qa8*UrB__$pH-ifyI41_;u3y8NO_T&<n`vGs|};Y1YautD7v^TK(fEU??K+^yAY| zN%2{vAQvn7o!d|1RHWg~BE2Pt%wVXKZK~e4P33R~%?t_LHxqzu2|O^eWf1YuYdk1Y zVO9da4FjVx6KmIHC4P8jbWY-XELFn?L^n(=N(9ql9(52Ce-vIcAd+_M@!7<#%Z$s; z6eG`?Gc(xY*O4MEV7c0uminNo^I{Ugn*%}qd<5Pp9F$cK$Rur$p^^+!jHwqHw~mPK zXW?3l%Y?q}nc!_F8nNy#d7MeXAi)|wm#$X21O)SUbLCpLEV}R&wZxV@B9b{tyZe&V z)9tLjd8wqOBqausXB7d{DBr=?(NuIh0rZ4ypn1t8S=h0_s`6#xy|S9elZAgxMV>Ep zK#J^uspHU~z72;!r9gUGWlfjf-FTDrqO4mb#0byFHljACd73>dvB)V8^<tmxDR1|E zPF~V2+v&RuYmf_+66EIU`8x(L%on?07!O{fAAgf#w!{tWGUP=-I4jfAH>A2ex;Q6L zalyuA^LU9xSOW@f@wkG=o+4*s!=Tws(&k_aXL6;NPcNTCREZk^D3J~8@;iB>*DQFS zBe5A9?=O#22ZYbjN$aNKBM(}*`7?0}r{5yLZZn0vXXmS(l4-A?_D7t=VYz%-sR)FP z-4YplwR1NwW+g7^$I%*Z*+*Xc`_;yN*#y*o0G_HN58AQdxls;(4PkSn_@)w@LF`m} zaPMTJo2xHqgZ3<*ENPR8FDMc9bMU>%(Y-l&?WA=snkZ=%>1l~;oQ)pi!@lB6xUZL! zIN!<B?;rM+t8I<$%g<{yS`sBHA-Hc)bl-WB+?v;Jv`n(uhTD9Vefljt$}Kq$efBH1 z8_m-YUHf@-(P!(D0U*~_T*3@V7XI-o;&s5hc$63<md0M=l*j&#r)&>=PF{FdXPt9g z_n4=*Y52jv5;yjFD<bPU%3bD)zMoSiH+4IBzC<rOg=_U-w4HGXcC%9vCg{aSSN-n= zZ8(Qv&x2=z`nD%JaP;H*4Bzsy-Ym4*?@e|YTe)>GGSIze@vjr-$-~Ro`1QwqTS|=4 z)?X@a2f3Z#;-N)X-rIrh&PA6=(&gHE?s$^4Z*pR!_^EB~&r$m>aOTHvr|-@-NeR9` zh?w&v2hh9nw$K3=?wG)(77|ZF&?2u8@HPkU2&OI2m1*}wg`VWhR`#Do&=U`WPsD8D zZx-USbOW!rMss3hdIh#V`l=TCdK0{yMPH<RDt$@Xr_q<Bokd^l)z79cBF{}<B%G7J z#;4KO^-J>Uwf6JP+KQ{elu22O&QBKJ^{}F<&_%>5iqgYbCGhFpyrQEh>rAp5c;D8X zpS=p7BA!o=l-wxecsy|_(?VuIWLj77WOl9BiwAXk!dw1<>3Y(G^Yq|mnWJB~F-f1; zMT*bui98|`v})i4{YzqU`fyZo<)GO2$JFc)@fZ8jhom3=?<JPwkIML<4}IE7A3c-G zc~k8UG$ES@PH@QZ1K;Shq{Jmc#2@sd`dy~7a#W?_&xL6&$VnT<DZ!h^{;tAX=Q(C% z%Kl-7QsCwU*e&7kjGYp5pjXIJObJ*R+}YMLq0~^z6x-~_z=Lbd^<bTvpZ}NZ!K44n z^+1*phb#&XwJ21|qA-~IZRc1SUSnmb8>?1^W_#btaQpq%%J3d>YGsHLNLv}c`ha9e z;qMN)kWQOCsok;q0uCbA%30;&d`{pJm#@u|pOLUA+%MzWXB3KUlr8}pMd^~&{`lu* z6_kYxjAQ9?Pt)qDoEoU59fkYK&p^gve;B-jg<ATvJQ_Eh2)8M*`53zax$D}VxGV(^ zFN1Nw%Hv1&-7r$#T<Bw@n1Q4i>D%7OY#3>2W&NQiws}y+RS}V)t=EP78QeExH9D<U zqmO)U%wDhY;9}Di+&`I#<jy-vV&|e8rQ8%|$Q6<p{9tn824|bc_^7WqtI_*8d2hu< z?~jc<N&Tg3H^EOyn?aiM5J@mp_^HfOZoSua_cPLJo_^z<VUYx8S(3msB!PGv@)hs) z1Q01$OQ2%*mGwU&a`n^<FerkJ99e8QD_bV_xmC7Ivay*^*}i*LHtu9kSJ|@2#y(DE zTX<HsY^}ajW#f=UIs1`DJ!fUh(dz9gTMpSoNS17uot2GS!f&HUT0M0T+0b05Y^R7B z*wb9RtEp_cWXrX({rA9Z%IOhUfr?g>5?GdpA`-(hIrqv<I!&iYi7Wj$@!mqV!P<(s zBqFh9l4wb++p!m0WX*=Z_Bv$}D0TPJFDu!|^cUe;n<XT=LKI|7HYEr4Gl(^~i|}18 z`_WN-!eGr=!r<F-BkPMEt}b%ju#jI*dE4Tlfr?=p32RS1L)8Lft)I#Btui%v3R)i* z$<vk?Q!Q7en$HvznNW8%xz=WixHyytD>!3QvkcqffgIvI46G7A6##x%Ee&`0o&`n! zIIX&iG?*9zQgY~hKT;lk+(OF6zFc5Y$=vsRNuj21$zKCy_GB!{1JtZIWNlkL49#aC ziu0@Uv{nB$aklzSdtghk8_IPBT8ouFIJ@L>r4PmvRy4UU(6dmh|2dfhJ$~~zcHJOc z8$P6kenzBH9tC<HFs}%%<G}FbTvR2J5>#a#^DkRBnApWyeTay}LNfd3ud@^NW#8h& zmjXRs@_m7-{j-R9)c0lnF7V&7E+_FtQv5gZxya|??-TydvuCRc^vv~Nxh{_gAMZhY zRw}!6T`r#sePxM)bsR08T;$JBT*B|8{w(K?#QF4IiR)@m)@39z)@7qB$y$^XSeChQ z*$9@LOinCLr^c|sl=W3^#^R@+K&~=V)0pt_`vlMIH`4L@FY;LU{l4hfSG5oUO`Z$C zj?n|~yGRRtpUmsB0J_G!{;D7xED&l>$-@4hpbYdp=D$bvcNRi6U8`+LYzL#h@q)oA z>#|An`F@`$5A;0j!)KG<f3-sY1HSJiMhgOq*D>}d=lNDAE?Ac%75M^*e1%HCR=)@? zIRJ$q<%LscBW3Ts1BuU+kCeN>VsV%v-U+|K3a*Yz^X0hI)i9Nbk$}ac2iJqid@UHK ztKvF}lPs|vMG}ba&0-3Civ~I2a&TI8)Kk`0OO1H2y)(BO<$$YU89dq5z>6@Q<`Fha znat(OaEQ$jcc5bM#^o0P^`%teH865b7G9%(^&j+xM>wh@S%aO8mi{X0bNYVHx-udo za{I=}{Ng~*#hfNrYU|(O&NHSWzLh%eWnI_vfFf7Bx5q`O(n3ldK#QZL#Y<g*i5r(+ zOoN+yRD;6g<QQ$kJ%S<seja6rPo^CGswKw;l+p-pYt%-&pLv}Ne?G*6v+!5Zf5gmM zk12&$yrL+ydHd0J%u}{S(00rt2WPl}t!lXS+-SR0I&op3Lfg0;uddm<08vn8Goe2u zC}Yvn@RY9j>sa4!K-YzlDT1yFuqB3iU~88!-*4)88V6hFbBOBeNCdRdSEb`=g9EBA zq?OgQlETw><|sTNOSHsqC3`<kW(fNnJ8_u*DzGoSO(wB@<Fc``cj7K8$K3MzyLf=L z_^q%$oN%SH09t#2)+}3A78Texk1iIgR{PuPm+v{9<a!4!yX5(Vb|!iE6}|$cRhF$2 z_sFm_%BUTZ7=@%E!9_*x)yrUTNhYsY%3*kfsX})~Z64mhvf>9AZ&zfNvKm|U1|RO# zY{vtijMG-MN>bpH>$TtpLX;6}EyV<cy$BPam#`{<I(C&DN`r)22cnek1t9eQgp05{ z5)&&|kHc+VWSQ*Ub86>Ao{+%c+D90f6ZR943F|9uM*~q_({7s|$GJR;#W!LLF))De zx7*ty`G(uJ&rGjrlRL%sxUsG4-6}lgx{vC{6i|G-!>EOP68M{K-hyRG<`PGsd)%TS zf$r;3%1mKt6whbEcQZv-r_889{FLsq5&z3C%5cjFlHq#EAo5dcxi?g*b^j<e5Hm#H z&B^+0#b|9+fXt%Wi4<lO3s=orfyy+wSMa^~9wge5Jry(kGg;mUO!41Be2Vq^O?*aA zCoUDgZ|r$@-Q6VREULP}q^c-Xg%O!?i=$;q5slfJGl7n*QV2F6g^WEAFQ<T8MU0Uc zy7JP=^uFThZNpvCQBp#ZVy!7krg=f7a6g|h)apeYE5?VzBDeiE&_fsNR2Q-0%YJF3 zbg^I!7nzgqiPfOC^0yF})lDt*WA&lBiYrzjz2K>=6bXsfS+mPcrxP$-Yz`qVInwo+ zDazu|oI>|GTBfPaS~KbHrhcL?C$|f&BNagOBavQIT^Gno*F$YrOKp)`QY0_J$6%r& zH(`;at&$T)_v%|A_-+XP5MP8K`1d8GteMbA|5;_am(~0f6^g>kCF{|t>$TALNTT-B zYM_4RUVSgCresp5D3Mz}QSqzYtMANqMW(b@<kUXyl9o~E)JaKeO65@EFyCyB>|!$H zwzXz49~zkfTdf(;Va@<B#*<V{J*G#3`E3>UsL|TBOMExGqbXz=(~9Cdkf?ct%$_KA z1)8=1ROXWNaI8H}3_E*dR*1lu&WaS3Jbl7xZuCkC^z$Us{OcRDEQ+~Z5`|(C`-CW= zq2UsfK2h#hd1ZV_Z91M_8MJp(Dpd?T4w0JJg#414PoG!w38SO0`mar!05?io;-v9E zOaN=vs0pBq0b(t3C)Jt*ThD~!)jOp}sr}*|Jdb6xGw5;$Wj_6Lwxu&*MrXvZ!25dw zO&bHJF5-bUuKM7s&>xed1#=CF)?zR*Y~%9DbZaq<nXFOPs~M^##jLgZ3&E6P*jY59 zX!m4>792*bI%4xjS<!~+WwHe@0nyf95c$f+$QR*nr&-ey+LVKY9`fG?dhEWL+WI@~ z=SY8q>$~s|-vrV#&XMl(4_7VZ0fkVa@AgEViZ}@*=Wf#PcdI6+eM*x)Hc<lfdTNli z{g>ha9d0!Z$GhfLiTEvY%qe-E`P5b(@bi!b9ed<cTAAm+St|Ece`?1*r&<_iLXqh& z>4QQUQ#5if6_|?R;%r>y%=vU!w9r?Cg8+}|e)3abs?|a_nfcg!Pa^bbuxX)-C7)nm zjah(gxSXKHWpP&Q3u;)AV0yurShu@j4mS&+*1D~&*iM=&a+hg&*r+nz3kN#|2NUfR zp>p$F0;pkM&#N4F!m)%OjxeiI97|hKPns~T$QKX*a<t%U&_ZNBMvl-|-jW)rK-jXF zMA|6`Lu#`a(px4&B4&qu2d0>|w*#BtSv#1eytdMK%3Q1G@2IeEF*>+hDjW*Q)0BuT zVlbwUh~Geq>v(Yx;XCdWN@Oa1_1x4q*Z(CM2jAVFG6wVfF48l6H+&lI(K^u~|7Ql0 z!`fFYa#;JRR4~_nKTG;=FJ`^t{dj?)Qd|G1-5sgk7`X=y+s&-ptxb6+aH`h-c?Cl; z=^5up_xUeSFyQy(%6p~0@`GCa9~p&ncli<j92&m%f6?$f|M>r*;qz3(ybpL~>>|~$ z@A^+`^hp|Rl1yfA{bMP#-Yn$5KQ2ek15x<=Z!HwcCEZWO%;gHeKYuD_SlQr0&z>8o zh5jV~<xB$#ZN!x&7EpH&glEl<EO^A6;8Wn4=QrVb<$r+Zd!Ggm5*viT1UM)6t@Yob zx;sh{<D!j`ufV-~FRs+qAIBX4L7#tu^q1X3r0||16W5WUcM|IBOZgUmk*-));G1TL zu+6p@>OhG|oig3i<O*!s!V?ilCg0-kxJW^z_@KcvKs%E^OPkUj|CZP|MY8q7=}WS? z=lI?9G|_jmWMDq@iM~&zQe{OiCpED*eRXt`Q+aOJo@)&9P=of9O~so;*~^uUeit}r z_`hjSI}u|4_9^ALEfoL|>c0?)v{HMn8E5~j(Lae+7UN&(DC%&%<_)<<`MBK7;&EZF zUe<H_v{|3qia2QBqCMT%^xzs+)e9pPPG=(?3COJds4?=aQ}SxwH@)`8CcW&<vTc#? zNSb&;8;KJl`$>+ZJa44@*OtGr_-d3WN-j2l2!~?IbF^I16ps?cKAt@7MD5Xal!y1& z$0RO-p`&tV$IbQxuWGoD={o8%8gXmfD91C;Mm_9ec-&>ttcF(gc5tJoYu~~L)YFSm zo=jfk=Y3&bTGRr<s=Ws4aq}2hH>P7_Jgr!%hEU%xy8sf36kd3UJ$yM?lZDUfYCI#8 zerP5YNYZGPl&7|rl=_94G+dI#s-(krTcutylZHvs6)I_GDyhXx8X`$!RMN{TDV-qF z&-bvWeb{X@d5rDq8Way7DN99+nK><t#(s{h>Mh3#Q(N^G{6mZoIpvP=il-KMPeq8S zH--kq+~kn=4zYp0PnL?5KO1Fw`&|HGzt1v>L+<<%Ih2(#;yqwqtQT9VRF!H+VDJcY zOz$c|>D#2OflRmJleK<_78*r^lnq@Z4O`8zZoMT>6dhzjc<raO72<jkyIn1~nHF5l zStIa0)nr#Of3;!;OOuPjoTw%I7>XtQp2$6E$^+zG#8TD8pHM<%NbwIP@N8D_{KJCh zX;K9qvoB`%fhR8Td{M!3T3fM-Oy2V2wO0bm*uipDYtc{T#nD`ExiT<%Nz&DwiigvU zRU(DCABvQEM6M$h{yibWKY`r@)Eyw+NLrN|^ZN=FecdOShCw-xo8J%dz2P#dPZs`J z?Hfs2Y9`H-Bn+}i`d%vO&jqTM_(75?NQymF{=RytYtkEL$^l6!Q-$W4g&5?Cd_&xr zT*G@F5$JgS4>!jcV)ItUOjX5ydJp#tQp9`@ciJtc$Pd5zU)*2*DQYIR1L^mdbEK}m z`^zV9mg>^)FZa$g8>l?<eS*<mISW1O{frH$6x90!)zi-TKEb;)toI3iUv<X&1PcEC z_c=Dxvvbsc=NGK{4^2I1{fBv9gY&lJ=yym@pTJx~|FA*u&i(j>;%#}U7w16%i3y$X z&D6_})y~rK@Dvo8lZ_KBR9hjJEaY@;)ffrjMN=Z5O-24f0=!XV=W+|i{BL0If+r<u zBsqHVY~VCM&|qLfr1L5!?TXz|BzteQJm%q+=RV|S0no5llZPfF+24-K;L6P{DCNwz zJ)|^g{cn5VNT{9yi7)rHu~afh8&7_E8#Vv0ZOoPe!sU{MmrS-8YVUc9_U|BR!zk%< z;R>}Yv>>r?t9la2KH@byTqGS<=r0yHF;utuKTbZmUY31{1zV-`Uq?t+d~pW9Kp<!# z-~E#Iu!sWm|G#5STl||UJZXao(?tT4Ig1b9p};jqU?5C)r^5u=lo#%E!er2diPrxm zOwUOH@Kwn>9h1xn#Cb;e|Jh&s!&W`YU;JxI&Cq9WktS>?{rZ{Tfyq3oFm&5+8Kvw& zf*5fN&_5;2^s5xcvd5f%R=TWmEdOLfZxI=qt#E(_TyS3u<*RWi<(K-0UM=hn3{I5P zN{LK7l6u|7v3k0_!CRuqSZk6Asvr7e9$Yc$o>&IeeB`F}W;6DFa=dUrke+H#4K{UK z4O)-fn9Z?l00S4Z(6%NE=Rk#Uw6or;k>mW}ho!o@myYwY-^d9_*FI5pcf`2MTd59% zb$P9tCA3j5+wS{(U>PP<?0}lGaATC)>aTJscdLOL?fyx6_|9By{jIFd2h{yqEGyN; z&%|e8TW=;VR#(|Ld9m}zS1_63|D3V{C2csGY&lNB?^;l~!D!O+w)R!*`(@%i7M<fJ zC2!vkB^S`Y*wAZaW$7P2%YJR<?H&UIJ<O6$c!Gy7uGVhqa=j+_$NJ+l+KOgy<9e-_ zZ}RjP7X7;?GVNl;+rE-5_SE>}7Vndu@~zsc6$EY$7fjYQmgaUO!Ry%;WZ9-PxG&yo zMohrCtuIdDFdDlmJq|2N!P4}&_szJ=(&PSZ#*Iji`v5=5u?x~;_T!*b48efHAy6E+ zIqaUCqie0mPPmK{@Crznd2!5)m|$i$<M8MrnXXEYJ7~t0rpG1BxXaSxJ~ZP-q{kgH z@Rxc)dd%Ty%#jZ65dkm%9N;nN0?GjJQ2L(*9)@%hHvqhk%(wyIeQd@J0Ppx&;GH-F zye<LnymNqe(yVR(c&u$_f!AZk4FC@xU6OAAc)a%}aRb0ReHM7VXMo3*qLv~|Pm1Mz z(Uo_g_2*-+{;K$skbh#P%q;CV=#5PHg5(KKgdMHn$=px0RqYUbb>yK;4|l#+y~T$o zc<Pk4>H`TyreM&}s;xTA2hO#iZ{^}yjKM|}O=%c$F_8-<+Z*4@G7^o6tlXWPPNomD zo%ETLGb$TD$S`&`CUPos6X;3A;?S&M&czw&*)u&xQ?+qGZlA5VPfq5HW8Si394euD zQ;K$um$cBk%uP@E2`wmBRRz4@;{<4F>~*@4zyo!LYxRgCSHlQyx-{EWPH|7CM;4;4 z-KGUYl6&=p>x_>88PKvSbKhZCemZzyG6g5P8s=oM4lK>k%eQMm(PvaP?$4+U?5|LF zOA@zZNR$Rx=pg`Ajl3s3M8FZ%9pFp=9QD|`S?h=lDg^>6JxT^D&7#tA>aq#Vb1{0v zIDo!hx5ujL+kDd$;-3=0gU2$BH#S<%LBuKNsK|unWygFI@QjQ7u=7M}e_VdlcM}_c z@spIMy!@E|5T<WCIDlH@=sWgO-?g1E%+bSSp)1_B4~F?UAmTmLYEx1vJocWfB<6+A zmFB)bQuqLo2~k!QNMJO9`4W%~!^J8;2Y2Z9?@Z6HUixyUVuq+}<Qboexl6@xen{jc zsmM90Y(r8pHvywss$ADu5b6@s(y|xiJK3e=A-i&F7bzS^e4?5Qfn297ynzo)%aer% z5uLRm%o2$mor?YV^C~t{D`)y+R4mVgZLsn-N$hYlR>8MfWhb(JuYyKJ79+H)EAg_Q zu-+pq771V!GQ^>LUNjpjWTB2oS-iN>&f#NnwDVdK%6WlpIVT$O0$brW^2&Q^xvvbN zfWq6Kua`_CN=SVIIP}OR*YD0D29xxz<W8?qAt}oxr7wzi)gCNYtGU@yn)Gt^{^-p2 zd05^D<fjLBH4L(${1DXxE}xVBOy`cK8PLuZKuhB?E|wMfn28DzebzqgZ^_SjOeY1T z`)?!*-%laStPkOW_X?9fo(oUfQHzSm*__42bqom2U?v9=Rxm?J4WcpNy@;Ds7mL!M zmGwC}I%7im7KT}>B*=+6PcifUpeH?1_TSv{Rrh-}M~>#Wm6wL^<VEF~^0qRPt$O$! zX?d}XHj*iW#Etu8;UC!XF_L=IngPu-{+u7-=Q=zx*t?v^V7POu-%yKv+AdJ1hchc1 z#*Wj2QyliV9Ht|fWeHA=7|yG6d2;uXXe=kck$2?b3Li|a4E!Td*|4A_Td{}4LuA5^ zxAt?<SbqLq$z;UHUotsAz(;m^i5!zlT^o&^m*1JnnV-s;UMwfQ*dX&xarhQ&U3gKl zEUK5s7hR`kGGXuttPbVz4fh_Rxo)42K?4}bz5AXf>xghq%y#Ab2y?ZL_<4$N?@@LP z2V?QE5<SI{_)7}ki1h47a{nXBGxrQc`3;PmLis>>OwBis@rD?WtCui=9i*3a>gDZ= zF4Z%yf$mb*oJ)b+Yp(@zH3Q|0oI52kkAkn(k>~(Ek#@%gCg=Evh#~1NS{#SpcE=#i zF`Y-YQzRkRR&Ch0DixMY*jPy!o#ZWbG0&FR*q<(!DQ{IEp6OKVk5ufQShn4K!;>s0 z_3$u}iuLef2X5oD)r~eJ{#m(b_mJ_Iq?0)M(OE_M6}+7l?a5Y3;Q<6#nO2`jx9v(- z`fQ6Y%Nw5R(CvUYkyn<fc?LBvEhbz_c%0X$tZc5-bDE_7N~>Pe{>V6)8m8f3VE90X zQl@@GTaT}blbKi~SSk^?8sENadDz!K-5aUJP_-+jtQKW#P#nA=9rd+)!Z(_akecO^ zqrW38(aN(<Zm65Il}cVB$-*i*+co3jAEM?2yV8K%A15XD>*PN5wpKvqmU?T977J91 zAbPTDF**7Q>Ovpf=fA`oUhb$4CAInprM%%WxZTUfTt0H`tCu8_iBX<N1$KEYxv{U& zU_S}20i0q_`5xaFMam|}$;?F`O5dH*_bt_tu_I6c(*Gl|XGBH_`$i}PpeP0bn>^ts zN8~Di5(Rx}zcXW5^=;g(OZ=!$S%>blS!yb!rUY_QGn<jUdigHjSj^g4*!EgL7N^4( zxvw}j3*9Q1kt}|$J$1!a_L?YS{M34dF%feT9oH@Rl=sgKd@VQAe~*_JWIf@@9u)0K z0vzFn7v{?74JB3&&wvl^zedLEYmN<Kn4$V%t!@8M3FcrI^bMqyxRyk721*~Kg(bPM z&#J-tnj<E+!vx0nP793vH77?el}Zs~c}Gvc7_49z{bgd)-g_2PeS|J%503n(inR3g z2>Svi90!mLw~iFNYLB$b0#vMr$LW!2Ntbbo>ns>GLC}S2Cg6fHOeQNV_BaPV(YyAz ztO%Fdp}N#LiHaJ~9{0PloNa*{2b)@c?si5wn^|V(yAiEFf>|rc%Q7S#!J4RDR+h}c zdSr1H*<O`i=vviIIYtS#Wch!~zSCFgOv-vE_s6K9;>N+|{#A4Dl$umd<la;McL6w3 z_`zFFWV=CEowYvmey|KIjK;KN(6y<`>KJrfr$=0%Lv9hBfsUsJqJtNzyWaX=p+muo zKX33MPU`6`2x&P3Aty-(A*L653nMDexiE4PxU>Af7L1I+RD<~lK9U$<^y5QSWS5K} zWUK$3^eaed_t{|lOVvVhTvt-nmD9QZuimcgAJ7Na@SeA$nm4^YVLxnW7YmIRlsnSy zNUgm(Qu3KI6b7~_Tsy7^Jc$74FS$9Aj{z4@7}X9}fNhC*s^kp9-tFI|ZnCrf+#1Qc zA<#X?v|aX;@6uM>k|SH4PPto~tF5|1zQVk~C#ywSr?>p%qDoKZ=hZ5QOxS~64I*l_ zeVOBCYT^u@)~Yy2IigfBvfO<RH(<)T#R(h1b+?*rl#IDXzYl|2>`44k7lksX5U4jo zEsV7)%QW~FnFHOIX`!px3(AdJC`YHEu{5;V&Y``R7d>WpS=$|K*2t_n@CT(JK^-g? z0z{OXZ56G|#lD3eXe&&&M02Pwljpv-s~ea9A9wEpA60ere<zT@px{X?BhjKp4H~M{ z&`KqOnrI?taH8>2rB*AgmSSs_LZVnjf)j*s9HrG(+uBO))mE*o7EmcBAXjgIH@qR< zXBaPdLquWT?{A%RW+ow^ec%7{KJVwHHFM71`|QiwYp>g0du@gydLQk5Io*d6#eZDp zCb*QDD;{i|uP{zRbd5(Z+(c8l=yalb9YL%Lk$|5<IUUiFz>+HSHJ1mN-LI}K*D2v( zRJN(Yhv^ksXR%ko=I49DW*>rF$<C4{mdU6B9R8RK7TPW^R?0GOS#MX7%L6oiio}## z>=o<1TT}AeB`O*$?Wf%0?Xs7(&J__p97GP}Z4aOE7~Xxi|Ij^|BcJjRnh!kRqZed7 ztdS%s;M8z`>u?412MUqpNYbQ7;~U_YQ*(^uoFz6fC-Dta4RSfN&g9uZ?7`PVrRl)m z2eBNfx`J4}@jwjDH?d?gHw*kuJMoU?NPNvxQc6&!BK4v=W0Rx7lI5V|G|x!y@V%Oj zDa=*`a;vYWO!j7FW%>iMWf?SPuM@mmQ*#fLAbDb0dW~9O&=oj>Qb-t8`;j$1OZM&h z2Q_HI&*=MRAsgs;5NRUnPHYrUK`Zl>3P&J#r~C0bf7VwPl5{JXrvOpeA3F&U?$7^H zCYB%sA9bC7&d9%`BHsKjB{(w0AnabT{QTcXKSkOfraWtv`LEl&ym!l25hj+!HlS!h z&pM%J%>S2i^Z#gW{)x#@ySnuSjSw*o6S8KgLP`s)3{*f-O26F&R<$pBV4BVX?g31# z{fDo#0jG7FqX(|FbTI&zOKK#J8IZ_qJwVJ96%Sx}`~_HRSu5O?;(_Y@;hTe%0y00! z#y$A}iUKTs%5Zz0l@Yo3mPr7n$F<8ZFx?)FKgHb?I8D7v?{d&G{X+2C6}VnZi&K7~ zQF!(J5B9(1>jiypqg%lIbNj!m>CT4#KFnYI>4_F~CcMvD89*@c_d8hYkd+xCg_X&{ z-E8<tv}H?NvPKfZ>q9u?H<dC23(DLbl*v-Ys#-)b`zlF_9p%46A0Eqxswb%Y(%{3p zlt^qLl#cb;a9i;8$==tN_#;cq^vdwHDN7Zp@gJGknp*dPBtb}G19OeM8ieNpzp<Vi z{g;reCPVHo)z2_7NRI!_?>M>$2X&|YaR?g+19JF?JM+x%8v7zZ87d3XtK`5K!Ogf+ z9_N9QT2@=%qSmmel?&%_Yqz(i(nosvqhZaCtqngDg#&M$qQ4fm{t?T4sAT=<)0|mj zphCFrM$Ri~j}~vh_j3avsn0%zygPvq-_FcdDFdDFaO>NqAw{2Yd0-J10%v9;$&^ej z!y2GFrgYZ8Zm4oc6rHUCkE!Pr_>*5?SV4hS6}ZzYKwA?O(QAMz#8MpZobj^S;V7Y? zGV?vH{~61Qs<nFNKi2v3Zly(4WX$jAx8i8dj}%>639~NdJ`cXzlI_cPbg*UjqrH=e zf0sf5a}oVbA4grI5ejr;ZvZod1zMw_TELI6-r7G9r5_WL6GXW_{y|Q#%w@)G1-t<* zUf&Z3-a)*sqd}PQ^KG?|k0sC!#7V;Vwp~^rU#}zkGLaYb{bxM#Vnsw=B8BqxGn}i& zXzI(?LuFF6`i-6p??IlFVflmB7X=7L$-J<o#gZEO6{#r@v(;uj;H-fi`zI`jh_ebx z?>HP3LGNhwt|;dYv8N0$WAIT&^T?$NA`yZKAeKaOV#)J6GN>GWBSk<@1rO2NXFXa9 zJbcOIIgj2NK<MH+%HSL&dV84%5S8;)iAFfq)9fNZZ;dT|gTp+_>y0nv*Ap%;qPOL{ zEug0oPu3N%C!${fpMX7KTr>7mf`1F3dM>@%M<Z?3xrtHUdOQsx@p7u6FPJsY^7%&Q z(8AR^t4L^`hu+Gxolr;+0YMtv7Io6#xL3frW~c@xN=Aar4S@<LsRj@4dUIs2e}GCo zR%a|e&$VFZ1zZb|!LJLs)(Vo)xpu;}Rv6bpZ$nGzXyGC@qw#CoM)%(BK^hdy9vAa7 z-Udo_w65P7$X2C)8?bY;b`%h>Sz2#^#A#0pYCD3WpAU-6rT=@QCuSW4>5D)ht?PPW zCx3icY^hIR^5559kKG?;Gnm{x?6pR(19;7@QsD!5b$0K<N%kT<m&oRIZyP7c83c&; zD1#q1u}?gsz?d>OIhFk`7U(j;Q}U@i;oZdEY<-#6V{h+P*Iv$iw$hpjc700OjBQy8 zJM9W972(F*m;@nqy?Sf!Yak&x=5wLYxL(otx610dDBQ}<w6b`Q{n9VnD=3TibVqMD zUQgMrD%<jX>&8#4+`!&JF;?$o6xm`$xTLJ4q4-f}{-fNN)lj^~{&sQ`n`u_@pUCLs zT^bzF;io`-jvi+Ah)NPzo#}&pSG!sesY+XJ8oHyQ7cR30=}-4HmP4$cejZ}&C{O*L zTv-PX?~wkF{PekN3&}xB0pti1zfX=<rB`ckiQ4Ymsh<xr<f7QFS(A;=_|dUl`O)-l z{Ajw*kJdmqAP?e4(?x!#7xE)`Sph$)F5pMldydTWqrl$dv7`0f+0m~L^4L-5#!Aj$ zR!)En*d?Wl?Ufs6x!A6Z8|<C=%XF`u?n6EYd+KV199hSrI%<UkI^@S07}`weyLq{m z+5KO(S5H{0Ox=_5me`>iePOK~Xcn10y{@axZ3@AQL)Y}L^<;&qXy`iP-T5+pAst>1 z>abaXhaquQXO_iCD?~z%*5ee_mDc+_b7guupM5?mdj0z!r1bv<K2``HYlM#>X>XO% z-YRXI>xBbs_U^{Wmww74iF+>-_($zi0RB+wh>afj??`o}aGrhFVso>VyBdc*XV!MX zXJ$trdaO;aR6?>D&bh>s$+qSskhN*!oL#iNwL6L*Ig0AbV+HvC0kQ@7@5>(;Jl7+T zbz1;d##;a?7nns@0qZ?|Pxd_@o}Rt4Z#VoWkT<5T+9j>)u~Z{Lu)OQFZR4$O{Gcm= zW3cxsi|7*%`Dpz<QP0^ImT5hkdOM|PF(0SC|E9pmdM>!H7yF>hfkgjB??@d4BbJD+ zyJc~*t&;FxzX+iYy&9@nRBxdwT^Ym_KF=LZqyjsOB$LP)tVx{1Bk?Cu2N2WmL4#;= z{`gQ$LwrM_K5!H@MPcRe`Do&_GUF}(L@?)s*_Tj6h?|0c#!r1M<>M(F?i)Rdc1A$k z(+WNgJ!BnKYaQ9QM?%?Ufg4{R|D-<lGEoM$!fCFk8W#whSnyuVOvzhBe3^k%Xa6>8 z0fwf}Pb=~T%*Q;jXIgH8rK3ZDr}+xK3?DE0Wi-J*HoI4#&`XZ83I40@ew`@GVV!J< zlZaG_JvUF!uP80bP58rw!cwOvU&6tCf?k~`=-Ke^_G8wu4~>`diIIpsLZ-sZLQ!l( zlcI>GbvoTY(TUZgQf+Ri((S{)0AOyS5#_Mewh|EmE;*~d?X_d;+a77d6`#4@OS`FD zGB~)tZG%(awqk>uXew%$T{3)j!|>vU+2;=@a8P3zz<nw8iJd+q@?a{&WK;=?n>(>u zZUlqUA2C(_!P|Fj_^JDySF_eHwVsJ5-8F5WG+uhS?w3mr7_ud#1I05i@S{_zd$p}> zFE>h=NHi8LE2%kL?G~rMgZzv(=PAK652O`uZ0%X}V?&A^1W3g}mH;_(G{X<%=Jh~D z%H7G51aj>S%C~o**WNp-HkW^nmA3wHL{j~EtV{lB`Fxz_m48>4{762ZO-1Ej*Cqeh ze11PK|DrDWC+72UgxB{cb;+;K=b!E6f0cY&d|Lu#yuF&CqZ~hk)}T2%x{W_mc5j$n zRrLViBy7mhwrPJ1Sg;ou(826i1xNx0R27>(k%@3R1kq1w4J-d_gi|#0mh)Kq>4hw1 zZ#SRNW>yRSfo&_=8fG^Ti^9h@Rn<#J@_=s>DB0-k%s=Z~^$gu`dpEM8-+)1*P-Vl7 zLiply%F^GVYA|jG#eW|4)OWtNTm6iOii+l919+|Ivuy7``ETgA!L)y8R))H%qPqov z2w`M+R)F^9JnH(-J=<1pn$1nVJoayU`PjCVZ8)wL>$OkrwU_UG(E9<9t0=9#2gAZ0 zG`l}&qJ)K<P4=;HZMs(Y=4)^1ab);D2k)k??Jt{fYgszUYRaWv5~SW#m^wa4{e5BT z*dX=qg{embsei(XmaBKaAobS5vY{aL_QKTnclUetgzRtu8Fps91z4Nn>m%`xnq-Um z6W}03Ra1O<u;d17u<>`zd*Zp&->sTPoGRe{IaE@0(warpXRV^f#`x0&q(bS<V&VQR zIYDhY!r~?{`<<DMZ!xu)t7v07oa&WWo4#8m0Ip|D@1lh-B9tq46s5mJmm<mIvW@X4 z0;7!+la;+o&xtLUR*+g>`HXLiy>42#6MKj6gARQc1c=05!JP42S9^Pb^*AR^%!$UI zH<r^Od%L%1in)DLfw>*^86)yC;;ndA<PPK}n9k~;)Q;A6l#XRUvZVDk3wHl0ol~@x zHlQZ{hW-E_?VY!`7xJ5BtuLlmX@YjX32Xz++he-hrzGp-?J>SQ6d0)deIhH9x5otX z5Zgq^L$V}jo9GaHlhJpOhu&@*U7KT%goe3ssqH6Vp{(7qGya&~mr;Oq%pk&kkLG-D zPuqsW)Oz;U?);z0kl7>8{{e0x|1U7;Pur3I=M4IP^#!~@e-po#uDOG8WXaCPW76_n zdr7W(PQhJkGkIR$6#syeQd7QXEU@*m?yUXffYkn1ti5sgYd!3%#UIL~^Za~C>aD(P zs-j0hqB1w<WVOQO%e6+3QLPn8V>v-A-DcQW=xWfzz7*>N9Z@2gw?6WFEQQ;V-kkXB z1G|C08^y$tw&VKnq%zR#HoL;%c{<Y5`siVP+}fqAkH39^p6A!cF7}65#y&a)`$Mv{ z`SwaW-hF>4Z)v0BfxfT{dw{xYwzi#!kLL~)Iz5yg=qX-v7fA71+#hSx578igX0P|? z_1m~Z-u5n{Su%XkeYis&3Iwv@3ddKNe?UoWE!ptZDlGTeZ`!w)>UDo!Pq5dCdc^=0 zJ~AkO1}T`bLYY39k^+NPb*k|NPu=^^b6wTFIoTom>{;mIh{IEM$hk-b0ezG23(hm< z2?gTeFnK^34m81h=sejM^XFRp99{Svf39UfASly=Ki6NB-PNCKFkH>|=Q==Wg#7&M zvz{*2#(P(9o(2l|<JrN#>qP3tzbo+nycF?kIsTs#zjEBAyM8y(LeOs0_>%)p-Bc)Q zC&NG0d-Ck6%KIe2&@tQ!v*CdnLj0xlHKbkBSd8E%N8YhLmQC$J*<`qOKANYT2Kg=% z#dCrOWPkSaA1XMQ$-JPLT5d92ma7lxDA)GQUVSU)Nt1nv`zf;FI|r#d7;DZS@U^1& z5)p^ON>O}AECNq0=AwB;-$B^xdx{Cq`lOpU2PLzWSY5gUL>|-4)FF-6_LeIn@>m<i zM%(RRc$Aw~Dqa4B*nqqFpM5~Dc6z41Y0Dm`I9yKb#*A0$v(MmzzoGSYGiq>8D=oHn zNFl4Z2VLu1k_3|@4pFa!kLf?CmgERW2`Div9J*5Kchi|Ul=7A|c3-b|rtEuiF-)=2 zgk%mtS*L5fgHz~+DB+D2ggxzR2aK>lQ>0RV>ZCc2x1nfKNP9Omzd{2cK=}!PQ|E5) zH3Bf=s(1WO(t)mk%?>%Quh!U3@v~sP{gXwVTW?+L3y>k%eG(T{N8*{Lp%3d=QB2YD zuR&LJ6IXII3$AbS<fPBlO|_3H8Yt>~O_MVQujtctmdo&poz_f+@4tD%NVNB$vY}Ll z0l8!!0uC?d)<nTKF=3>1<eF&h8xl&LF>kd$A9Whv(b?sbxEGu=!}%q{u1dD$hfTGQ zI<bSPE0QGaoO(Hg7sBR^X6nXe8;=@|IeA^nTJG41CI?$YR5gJg<aes0@fGP=wCl+e zehSx6x1YkyS_IU5YZK<+X*&tiNaM>KO^G@upy+JMX9Mp@?L#dSBeh&F`48&Mbw_8N z*;*e=ccv=Z8{OH`@`Sgo!etEViyJpE3$*Re>n61d+o2|!Hj|xRp&4I(0{f$4es=CW zbFjW=4CAV;SFI({xC`h&BrN;XcR`t1irqN={8&+gjX%2${*imk+?3f10<g}WU&;*S z`8A$l4FuLC-kZqu?vdgTqP5RPoiT*>4!>yGtZlN3ExT~^qJMGEzul*A12D=Kmhk=2 z@yGrDtv~vyqQE`+qfgrYigBoJ{^;MbWZxg%?4!Q_xV&KH3<)fI^dA@f?!kY&pWlr6 zkIRoXIpC5^A@8tCaoN@hh-KL!wY}+ZY<Va<<Xz+o4p^KbvI5CrGQARmRD$S`O8;^} zdbXFPzx6ih`xK<V>7_rQ^t}txANSI4Qo2Gq2KCSP(l1mx-hjFETfOx9?&-6<^e-#j zv_!w37klX+aaC5A^fSHm$GfK=>!sh`J^c_b{Ys@5_Q&zkqe?Fv@5hQjoh;o9l<z;L zp#Lv<>8q4(d&+)4mwV~gDZQ$o{6D<(iApaV*G*pf(Mm7u&vY-npV9{x)bj%`{n?GA z7tZ6!q!+G6tyi57#(kQ*#EV)kXA1+8t#c)@<(1&gA`A#(N=D$>;3$224;}5*jsT^6 zmX<6%{B98wo%}|Ts6&r4i=N9bV37nu-Z<rrw>*;IEQVU)7Pbw<x|ZlqcF0rRdg%Gr z5MI(d_RslPJ5^Eo==FVzoHIM*QAzD3I&}1}yClY3QRPPBC_-;!!!J{HR0)A>G?mK5 zJ%4TeI=&LI0KwvXJIUO@#Zww-vjm25486CFGzu%G^AnXdiSf7o!y9RZMpIehkJPBL z<dgycz`LoOvrj+YTau4Q;t_NmH!-@(B#UhL$WpS_`2hy}({PAHNAI7KXg6RsBO<m$ zKN}eQV9}AZmkmFQ?12yt#PJ|`Gxe1%>iJ8l;~tk-TEM?&ymd3>2`n2;92-si06~7h z^<ac~;(7Pc1vj6a{3Y|N<N|bjtmVBJTUa$)ZHW!lh@*`3Ez_LXZaKm?K&qlp>S0VW znXkcse#nM1zC1SdA%2-w@{3yzO#hx)=NmY(H6BXc#5Z29GgJ4b$^cHp)D!zfi33X% z(Sj=pBehRjfZ9RCi%lN}z`Nlu0rg3wR7(Z?wf`WyF>1Fd6|zH6RqKP9SGg=jPvz+u z^nfsayg2Qx5*BJ7ajrg(2h1xD;kUobBk<l^VD~S7L7d@+mqU=H(iOBLjto4wPLJrk z++G8EWU32$1m*7(&_Ea+oDO}w7%1X)qzjJYi`(8Wo_#vsDbAV&l&pPk${rR*wmdCI zQRD}m2Az4fp68wJWZTzXHq}iY<{)-w-P(60?)G;W=LOpdh1M~xCX)Qtc9+v0hau|J zZ>w+H(lPB|(zYq>AkreA)pH9$J#pJJg9!Ih6?=Vui$<B@s?`mS1>Wc3*v5V<>N_{| zAxL~fzonh8_u>3&zl~ZcPcUWvwHfUhO`mte^o*@-yf{}mW;N|#Y*|V%>CRQ3@j@`8 ztuoaTEXIwk_$-|wjTv%g-pYgS)EUa|*!GZf)oe}3qRR6wzOePj7ga`Tk8qrs2AAYd zSk)g%X&zAs-3HCsTZRvZ3m?wJxYsS8h<7CFDi#+wl^o9XHoHwZ&T|KUyR|d(I!E`} zGV`Mq*fKWfY#$xle*(ozZ(?-I8mfL+oIadatSXuQxR~lfimS{k3Zb?d5hyzJvB?K( zXQ-^H_K{2au?gmMOe@KJNg)gg!V7v`a-gBs^h(g`{l5oj1(s*SPn3XD4;dCd*}B1K zYE$tiTm+g8&*oAhuGai3w-%x7w0_@2I@)uGKJ8p}rC>(&gS0Y;n>l(=$F$wk6G?Su ze$VpWZt2JPotdZe7A3HW6#WrYiA&%<Zv3f8?F&xqH;gbEe--!okXyU{(l2FB<l4CS ztHcEIlP)>RXp|HSwmJ{6tCnYn)vx8+svT@rILJ;md>c}TvwJrD!=kVGF1!zl9xf6M z$c8_}0>%gaS?T4Zso|+i?>OA(C&FzeRzd(psR{*D+5~<tTrz|K?%y%35~BG0tD;@u z8*ay*QA6=;*d^+_Z3nk*h{V6cksuq4GwV1B?w9fhs2}mSJk(jq=OD>sP9gn#s!<Hg zs1oW5d%PAc(_+vL&3zhN0=2&iE8_DpxvXq>Hxh9}@XmbwRsn}0#{XXF@7MbB9M>!8 z?z5IdbXXmi4i5MXbrWDY9HEk(lBl9zS4;c?xZlVe)I>ln&&}icObu4ymcj56^Gp2$ zlb}N7xgr@yL6vcxBM6&rH2EMBKbPYPeZ3=1-PT7=K4%87KYRoh7M8I1Kwr$>a_UNk z`Z@NNGjuD#&d<*ssqC)ymOEsx?|Odjf)xe!mYv#HGQ|4FzEZ&dILRAL93DwD))@j0 zXE`(_r-dRMOim7Id1GTXa}f5J&eu!b<mf})8OzHkkP`jMePWIY#LVW%N*#%Ud&?ed zzH;R&2$+734<hV=k%d3g%9fwF$y1nph}#=|TlV(PLnYdD!Jhe+;J3TU9r_8e1Nu&G z%-O%Ze81Qi|A}>OX<h78mu3d{MYAk#WMwv%MV2>8-eZO7kZEc<8!_IQ1qB9qh78%D z5d=zptWuonhnFoeU#xarf(v_F;vI3U&pw%c*#kvUQ{wv!ahfWZn<HZZ0v5(hcsSiI z!<D%yf?Nl&B<S)heOvY!zS7h86Ayah*V&L&t(zi4AL0AL@z1jSFFx?Z0)4>sTZ|u@ zx7@)9BKc570r?=gevwLH3`)GlM2B<!p}Mw<1uCMp3Q>~IFIuPSoQBO>iyQ3FASR;B z(~z8juNcXh_~)Dn^(lgH_Yl9uzn^&`T0KWKIm^ew&bAEJX(S1ltTikkdaBk_4Pp2C zE)Xacgb(4>6R2hTkz~M4)^uFf3G7+in)D{<y7bkJ9Iu1_VO$5rtY}9I;}$aBN=@l) zd?on-nFN&)=L2En#f2C-$o6Ocr}6RI`yiPQ^#<h~tf6-xBo@WZDaGs%LXOi>uJ+Aj z2qDKybZ+heD_aJ1!N~4wwOKNIf~FX=fo|q{2^a|h96^oNOR5BA4`FBP3531U5H`+R z7lhqg2wO*g{$Ik^0@Lb}LVSJx<^TKmdj3m>uM7T=!`C4n3ty!vAgnj1)|>0cOR2q< zcqFwhhzDoaPoS)Xp~yYNYuhZ#u9*GN;J?R-SaKms_Jhl0hrGir3ii;*!w&pJXS#H~ z1@-?MD&0f<*L@(hiuzyN(qsMWKlJPWhyd1I>hE%zmh~a`Ss3c4ND3S96)_#f?&-{i zKLHlRJP;AzE5@<n0|^4a$^?Is;iqmRL`Px5Yf318-zhsj^uAMWWqwAI)rWrr@*Cog zy&<m=XdG}<a*&h#j$hN)d>6a&BeUmkbrXFso?_gdQ0C0PezM39nn>)ILQrN(OG7?} zV-xLfwrRm|u^y|wWpXrmJW%x5%Ra;3_UWt7UpVhr`;PcanzL(#^!5J<f5FL5rcs%4 z%j*9lis~kZ)xNYbo1>@E#E}wDD)1@(%OuMmSDYD;AHPJCnH>R*MWo-{($_oj{*=BO zheOMCf&lUhcm*7$+$sD*@P&YJ-1B2GA%crRw70l%<kz2K@cbUUNTzsr-Wd4#$(SeD zG48?wpx$r1V5{M%-{)4tAf_g_8bYaNu{?yeP={87Xa5!cl;vW)5n*8dFRgpEYo-tZ z<o(Ro@<a3CznAHg(tH_;fdJ1xLW@iob&bB9@*?AR+OHNE6Zfvtgc3)U>vXcn3$YGv zy<QQCZIHb1yhnfL8JIc7z?n$#OD4a|d|qw&{{_FiTOZIM{E{mjF$aE2-Gkgl_-`?N z2;uBXn1@yFjKz|HTo1NhSnPAl0Bo7gY#;s0=MA2{=H}qJ{QWNQEHZ1+OQ{8m^6>0} z|KqeU6DQP(;WY<g92DTB>^sCaIh*r>L%T*g5#&bu?63khxaij5K#!dpZ=>hkoB9+i zHJ?A~iWA#kF&@~_GR(vkDS04PYOv;<YG*EBLed-fQ#he@%#mW%!9Oeim-y$Gxf0zA z^I}qgcIN4%^?khH3-uc22@R)9u6POG0_fMw--&<{e{}=0i@M)zgM7y@T$^s=3dAGk z@~CHRF8}=7++2RTNprbF{1}!)h3NwwAA*OyFP(rDsp2_4&O80dL`@J7)*n_bMKa(; zR~fB=SHwnF6}KLw4GS&kf+8$girnQFX|Y2&d>WL}kqoQPD)+wh=l3nJh?wpKA`E}5 zQJmNR8n<{&_GK?Vp{w|Wt|X+9^mO~YK7d8iL2|%iK$P}^ew+;8RI0G(m$vpP%Ip(F zJM5abd`rHXZ&OX?BpAaOF@}b2wG4PGU$R^!s}d)d?9kToj(n+ynF95O_z)m0E7c5W zCdI3NBb8UJyc#gLD7}O~YJ10~kCP#d!W!#@E|u!T%<Uu}OL9iW&4cxDG7kgvZ~_k> z-onGtJUp+5BY0S>heLU|T@MHHFh>u2^KhviWKaB#9<;&G$U}Y<YEWJFM={_p>zJq9 zILL&J*p3$)!&A^eg`WZLfEdg5o*nZ0jl+xPSbU8m!6~K;eKkp1;eutoo&dHzo!#K; zQ(ftew}0*?&c&epDK4%f>6va~@$7%bX%)*E!|p>i0QfxJ_6$Or4zH`FZ$6{`izbk0 z%h94+u@C%jl>dLSUG2<N1UEPFW1JjcEkT}xN)fB&tM_yzP<2!znLhSb@#N!aRq(UL z+*7MR*`ZalO1?u77B#3HPFdHR)w3EZ^URyFttU&vg%t-#<qt=tbAzE0XbWmvQ0-%y zo!C;A+>%Ys%qFZT2myapq7-1iDU;lJR#SibO~DvGuc-|2J%Vat9YUeMt7>oqL}%|n zPprMt*1}3bY(uA>`fm*?)EJXd≫3t7n8h1?29Z#hDBwuSVcZhEJsCMcQ0R{r)w@ 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࿳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�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%0D9P4I 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%0A!H3i#UL?@*o{GIwKEKt_B12Id-{A(wQU&}OzkZ? zhLUKVN63aWeAOT>v^NGe8$hw9ExGVw+PaJ+QQq9dI*sCv@HQtpY;=Xq+47aC^vV;n zM9xGwE*LQyLJ(o(!Rc{f{qlW9hQXq9W%L`KyjV_Yp0)u{jML|#Acm}L4E$b=AdPdZ zR!XOb?+$5gV8jdZb<R@R<eWq-_vQjqn0$;In$NA3k)e`P068lF8EQa!;h8g>tw;WY z4N7{R9$}eZT}`gvRc9N=ub#f#dUx{Z^jwlepT0DUe8@-Io{5^6|95kXhYvT1aNe|( znOt6;(0ll!tBXE8c|X0PjWGXG3#|jlHa8^|U5N79PAMhG#60vb4cTqZws<gFj9DPo zpH!>sup9F4<Z3$IFqLu}&$J5YfKTn%VzIcfk4V64CqK8B60&r;Ew*6YjD6WQH+4HX zKf`vIbpQ#~4h2_q%4M_7#`K(Kj2}^NH{P9?q0J{+*rjWnyuUe}$TH+Ffx?SdoYU^{ zkCT@Hj1!ncCi~Cn^`mZj@vR$J0V>_!m3(_cO+xxVPOeYh6C%2r0_Rg^)@GCMh-ggC zZwx>uSMM$zWZP2-)6g801_CofT$yJw%B21KO?5i+y!|^f7_gYfn0@UfEt}n^0?hUU zOkunyhcXU*uziW61a>Q&wK=q^sogKLo1;e%YJ!{-D>z}+Pm_=ISUx#ZU!b0TdqzeA zHS1nGyp1Vklfe3Va(e#mL>49RjHHU@{DWC|*#AbNuVN0XX>Q)X|16*cb@hnMsTuGX zoc!+jx8JE=w6%4>*B)+#N&#B}9fPn^UP!|}kmB<U7}<>7i3dwN5y$5a?T9U&Q5%;| zt}bZAY5#J^`0mt0V)r6a!GBe7z->XW^Rq!p5JOSK%-&PCS;1NRaiZ@!l7$)|)fv>M zy`uPBT&d#w3;p$^ildrtr?1_2%~|mE@1B$XDgC|%vvoo=t#2~A^-reD=s$@QcxEms z`LuI=BBC9Z)C^3dEr|9gz`sb<I^H{@IZnEEt9!WFoRe#TPkM8!7nDxj?Apo6=D%$Q z|7&yf$>Ys*{K>!k%R|PP&yVl^=6~-$HXr}nrm#~O>F!qWsi?jGd-#wP5B~S@9Ua)E z#CYS==cw5jc5x9;D8{StMZq`NmHGQ3nqi+eAS}zi`a8us*BhTNXaVs_J_zI=+Q(8b zYR9~)=}CU|lYDLuQI4IKjn`7tLW;i-|Asyai;eDt3}gdR;U|BQfq(ReW0>o6(+a|S zw|;;A;pelTC$cQ~HakDn7%7EfeBtz5a+mn!<jRt){4t!DBo46#e>|m;>-QJI>BiOH zFR$N+W`%+I0hf{&V)G+0KXUV<Fh5F}LYV6H_30e?ygB@S&ur4?)=U?kZhWSdparIU z{p9_{>Bi6cnb67yf0b55$xOnr_#rU!wjpJe+BJiNv`5NI_4&o;$?2&N)eFi}iS=t| zn~Ten4^jwg8~y6(feYq@Vt7#1Oze-ut!!gTy=2pxms0a1^H;*cbbwEjn^ez4PHf{^ zV%!^Wmx*0~%4q+4vM>E&glEjm;o%nBx~i+w>QXuCwBnS_GVM8$H)H;e{4vijF6_s4 zr8soVYxW33Jv_r<1z7f}`4KrBFxyaAUMr=97dY{%>6H&yu-}O54F^^!MG%4jq-5H& ztIM~szdBusV2+L%K~ejAlb3H^SSd^-wr4Ao6FGC5{8QKy#pZoOvm1&qBa{Y`M(FoP z&=Ww<8*eT@w2GJiTKB)gDw%}!gi)AfnVeSW^9yz@90LyFF%kFSXlJ5O&A^6X1!cV> zWiGIsrf+uE$tnCrkX96N+1&g2FE9#ZcD*6=D*tdY0~=8yF;D@P23_0%{4DI{vkb2+ z!f-G1Yv^TP?hf>tCF*(L(E8)|SMP=w0Y5`OEFE6jOizdD>_!K;$<}0xg7rV?LA<7Q zEG{fvzx`E{2H<c8=^``auwSKN%OHh8PvAc?xB0f&qI`PouNw%QwQn8BuVD@Yk|{iX zQwbJUAfEfbWL|`^dPRZLYt*auZFNm+CWW$SPosST2$Oc|^9?7i!EDn!+8zkQA~4)| ze^HY9(MK&qs#mC`m#v5W%8Q2sv2WF~L`y@0?`K?=@-s1O1^iDxs9tqMKv|Eae|UlW znoB+42CwB^)sG~AoZS$A?lrrI=Bd_&PoC^chS$bVFGT8&W^&4Oy7=RKR!&K2#qR6L zOCtDxb^6ZC${aDyd@Orab}XDO<d%}FpXhW1DmU~C5zW~_mETX!=(I^!_wl04#%+!; zuTMU2Tvi_^AB}{tL+Mw<W1-%I$?+39{%vCIP|XV4mDx7lb{A-o2w}{Cv*x5aGZN8= zIzz6G{dpa-+WKGHdN`wbZPN#h9E{Zl2QV0NqyKudp=I~jWzY70MD0fQVkI>v(g`1P z#-52KPksNbMb3>2_si%M4P*fPr0S$csdx4Yj|*9kWkl#M0D|Tn+~%?Hp+1=J5XSxm za55BoS0AmMT-R2#7{a0vk=;%|nV-!k9lE}_Icd=6s6pJ2Qr{k%^uflbnsinDUS+>m ze^M*ygdXdP2G{MNDSe^{clyDd3?uvrI%rQ>%!D`*X6Q4J^7%`;jXCd`x~LaC!g)>L z{l$yP;j1@vZ+W>#b4-erOiysE0Qk8+-amMA^xfpIdxx*2=dgR;-y;DRo(iyMEP>ar z4*sI|O!$hN%(nOA?%wNTPJQpkC%a}kGzV3lZtx+UVjVOM{sr#nu{TvTR2Ehfp@pk= z8<Y3%v5;>%y6;cgixUm0cBG6+4TE&@l;0gF6auFC2j9ZAb9EvE%PRa$y<|_gS|tl% z*L`KOi*TXA|K?<0ZaHF_E3Q#!MUR#x$`E4evkl7FpOeBsC-s66etd!JO>+4r-|=ks z;0+1hn;V$)GBK%YmxA~G&Rowv*;9M1hUT!uqwn7A?;q@Kbr<oY?jqv9kpBYl=E!Gi z!_tNuFAjf3`e)+)G!`x&@>ISfp63ryb7Fqn3@iA=e(1LpO~R{pC^8<@C9lqGv_G+7 ztAXUtC{8KBUeZn7IQ#Jvf^RR>4YKzmwUkG1c6axVq_Z10CS-|sOta^pX^HkE48Z7A za&oD!85Di?>IXTi$UiIAyg74Ndd6_lp*=iaKMu?SGy)<%Bn_<icYu|i?g0rCqf>-; zgIoYiC*U0m7~|zMgdr(H?|FVQx#73d)8^y@U1<HD$)4v*+6MKwfVPVLPlAJDKNl|< zRF}M;ixY#?20NkKnGMUk4k4dC|6XZTmII&+Z*!D%bHTMD?J%dIED@p$nFq;-dTxJ@ zHl|Qqd%1BaJ**|JG*q{^uPP#lGun#@g9`or6rYf3(vXm*b=Sia-T7!3lE?&K7BDTS znJ0!`Ed4K;VF1Z1y2-G*9|R=yR9rkTQ~DT<<#T#2=WH00rTU&fkn}stAmBPItNw6( z1ygdI#^8dR(K44Gg(J%rPESwF;ci@1O(6ex@aiek*0ri?K0Z#LB|1DAwr%Mt?1V4% z=%IIf2qZ!vVda~H;J><GCUo#riP8aro@5p6Z8!7D{!3GCGcW-j`{!+NtGa%FesvwD zM(>toSfcR{1=gu6G*tfPHOu3i<e)@9+W7ST{mFnWJzOyOCS1ScfIBDmI3tfmvAQ4K zt9lOd0l3s}*{v4|&4RPJ1tTK|Gy;0#qYy=n;RymskOIHr!5*$+2n9syr|3>D$rv(e zE8-Bod5<tqOt=ISEa#U!!8|l&VL_hR-a-N6?^J`*AMrKo(2Boq=nu&iA^_Br)C~Kf zU9u$MO5VIUTjekoNHOE#R^XXF_YU6yC8LQbmZ8zVlw%D@H^_RB&I7rYD8Z$zs8I*H z9iHw&INC*f6r3@LVG%krsL{nykD00k444QPvLtqMCe5zIMJ_yafVKH^naU!wvJ(N_ zsrzQXisM%_6?*1)tXYhst`Ux)Qt0BHl<*jH5F{Jm2<Efm2>G?O1em44$^^>{9|M^G zi4;qb+iY~uZcJ_00>&tN7K)jZI6d}Zrt$pm^3vZ$eE*%?v4I{faDyNw$j#=(P-!pF z$Tn1r?>~8dKtme=t7U>R;S3WLDJ7v09rqYnaYS*@UNU)ov_+I9c*H-U{1eGPC@|{z zMKMXP$mgSI3s<kcNWg(VL;GiF{*3IOk@+*Wf5!N2`ysAnh#@#6K5kMhF2I0`E6L}& z49v)*@5nr>z7y$p#`DNx7JcX4ig{$ktG+YLV}LOKI-bE(JHxf^<T_+0@;2Jb+~B<Z z&hGm<ls#Mr_HFdSMQ`_G>q@R=$1*ktwdn1B>{!Q+c-!}$i)BVgN1ZNWOT9gR-)c}} za&cM_pOYZqnf_bpzn4xJdB*1S>|ckkB9G?HvC$jiALFg+^x|DLIq4>JgT0!Z<2gF` z7XN_u#yH%RNa%bB@1Hka!0Dm#byhB>H3LfIW^$?i^C{hfM&s&C8}jjjrTLaJtLiOP zI#lDC6z7Gt;rCA4_xR?c$tV5yv;O<@#=lQqV|YzMDO@LTfQpU0cJ}eccQu}{zlNBx zMh?lS1Po9r_?&IGpX&C)TGHRiTZi(Gny$kF2Db;nIhlR(^P+W%e)v~6lN$2F5O8}3 zFyR<#HDd=en*57vf`5M&o!0r;#E_qSOgCQ37}jgUuQOg7<6_oWuh|vmx{m$t0tVZu z{<&PNadh-td>ba0aRwIsisli=+3`%x;pk%2NhH9>?}F1s=amtrpYiGoNHxkT=XfD& z*XJO~tl{fBK;%7y$zLOZUe)|3H~1p)$3uvPz!VWPhh}Dj7mb{U@%;?*3AlMr4=d!U z{QmQ3sm4*K-xz$Z26mcTws~;y{R`+?E)(8F)=P#N9Y4}yJNVO?L>*2)Z*KLM4Ab^E z3jY-H|8l>TyHc2&3-v}}{+9c4?|L&aXpCF1YN`utfvb&<K4lyKCE=VuloVP2^(B=S zlLrUK59GD&?Gs+w-ga+qZ_Df3+xz@0?>v9-?eT*LH&O7Qy3!xFed#}58SiS#fI z^LLaMO{Ya!M_E)idC~4|$b-i+-p-CJVrR!KVrS=lb+NPaqPnn;iIcf^jwGo2STcRS zd9>M`ZT*pF4>$kx&88U$dcXy~vva6FAKyr&3}yQ|2`q7EM-z{Bc3xMPSMBq&>pi(F z@|$nI+0b$MK&>Z%QX*f989kB3MbYR5+2LyejoV$sjSvB?@TX<ma9vX1b|>q!z|R7O zei?YcXLxr4I(|RyGLX{|f$KBPcPcz4+uP4so&4snCJ5>_>#|nv?x+b9@7X0p_WUDn z3A5)9=(o24y*b3)2m7lqV7=v}T@+P$)t2;@jnZlAfTO2!zY}w3`qeQ5tMOWp!a~rT zVG()&)HAeiZEx>#;zzCAP}*M3AL97k{yh*W41^p|OS#<xYMEvYH@MQ6x14raRdRyE zW4n~t9%kmPg}c7Dw`rR377{*`A99LH1dC5mo6Ukvl0~w;eI%`CpUdy^wFfup^a0;a zn+N)378#>JvpD*$bw$>dc~b^l%-HP_=ed4-Q+(6YO{xP&r7lfakAh-mL^~QSgt~GX zH6<LP$)n1R=8l*>?d<5DAZyu^p=xMWdD*YH{Z!!u0K#cpPMer+$t}FBEA|i+Ky3jC z%vbVc3<zN@+uM3r7W6&T2Zl?^#v-WoiwLGkSG09nbX`qzfNWUA?T{mhp!#g_C`=WR zl;5TLph&;Ka^tCy8!vkd>Q`Q+(<+~~ah*;nFOB2%SN>=-`DQ~Jf|JALc(lQ_%zSEp z2$Ck#x(X^T3zed{hBGoUkd~8%507YAFyC=v;iy6Y$BSvkFw8YMUzODG;xcRNysApX z0;?{+=FA1{ax}yvAb|N7xI4QxpBDMF*~3+09)hV3Nt9BNxC+$a=YQ3w=U0SW{t*24 zELo31jc?+?O)iJcKlV%f4%3i-SVfm}(sTr?A@GtSY7Sx;+a8KR!8}&HQ#SF$pv|1- zVL4X)9x0{#3Q2y=EggG*mm_=XI900Jq`;u<vb>8bW^bZtTkmb?69vFL$BG%(GWVWq z8DiB5M|0^ipZ3_Tv^t_$y9M}W)c&2NR7DfFAs0v&bxX@i7+w4Kxpl}2QknZIo8g{I z*KxRS_btHcSHP!F1R8ekEXdnwnsss71x*37VD7)&6#wyPQ~v#C!{D<$j(p$<q5);* zVHj}K0C@&7_Czcr(=+M08DH*+$gRv{e#<45NJNnjxEGM5HAyP~FrgH`o6=@3md>9^ zq>^HIqvr^+=Ex9PzgD}F`9b4o8V7Y2w_Q}{(-_E%rnMUAN+GnKs+h~Tgo0%w(~kDH zMNm;+--RVeX`dOzcH>-4%Z*p&hhub^`8Z6?=RJ#xQP~)@Xr_5lb7yWIhV8U~*YNpc z(T^Re-&fW8<NKTIFQ;p-b4)2cPOn;_nPyt&^m3hsZP$eXkkThs1prWD-<aFoH}=n7 zkmKv174xic&r*F>kg|mhO&(GHE^6ASsne+HDq0X{5Tkqe_)A$8^iNUi#2EmIM^&T6 zDY?^0X902Xo|t52hnQt&uSmX@_msBBJO_$rZ~B=k?WOKWvbEW79Cck)bS2nUXK+Ki zUwQi2Eb|MRQ&^y<l3j`Id$lpWzHHl#v+BbM2{P@*LG|<J1ETb*%E@V^S}z=i-gi>{ zPT{^2m!mJq_Md8E`7uu22fGjc%zxhtp9uqr6NpocjIaD1Jg;o?Dhkp(3A+&F86H2@ zS$B54S$B4H+MS&<@;Af=z5Ge6(&z7i>Z47J@|_*>9(H!lucTeW&d#f=BW?WV$jgu? zpDWouUj7B6y57F;Je}LOu6ldhTlMy~u6lc0R=vG#R*hLGs~*8dP1S*03JqXi1at#! zr*YaQ9g?{x9tz%*%a(u{m_u9TvTEZtp5}5*+8$1)s<|D0-w^~kZEt_?CF?$HyW3y< ziU%TnNGMug2OR`=aXqa4{$BI8z2(4Tl&_p@8FAbysfJ~nB~26*Mb$)jO6;@SLG*uN zt|Y54H|%#g(f&~s5vW<IbsefDFtX~@ErZ+HF?L22{5PCLZ2De>;nAS^ezPG2yJ1dj zJw8YuqOpv)l^dARg<;<MswKm<-d)UOc5k1=eNl)=6~jAxM-ElLBaD8YnPsRxQ%sFA z$bztHlf4bQqm{5t<Peg;+x!B_vim><4fDoS`9Yyo(l%9WOsggdQAGLtcIy27FtAsb z&ef^L-BMAc;0fdMet5JHlmco8PUO?Ac<E5a9e<&1<t9IU;2hetML1Q{Y1|ZP5@6uE zhyRF&(d$FB<N8(jz{2xe`@nuFjpxcd^_;nPniIz3IE}Kj3sKhXv)}ZXon8;8U&&*J zbNj#i8y>2P`V9ZR)rnN23FUON4?Eh>RiSwE22r{~)&A1D`5om&R$bM`<j;dPm0L=Z zuFH$AMT<6%ep3uyt<b=z2P;UZc}8le+hdtif}N89-od16oRA@H18eS3C;o#vYaUt8 z3YLagTqFc=|H;nI%k#6B{Bk>3oB$Jf@?{agXzMF?XI(C79U^{kE9BL*;udD>axseK z?{H&locBMd1>vye&X(I6AhU6W41M3w^o*Y0Ker^mQdr!N!Q9F}voNl300&d<50Bdx zBJ}yE%Jg-N->={cSp&dMZ(hKIR%@<hc$;E>Cv9fne<H(D9NKEHC*71QRokr1i?r)f zJjnXwb{6LL^%bDHj#{6jUr??81%Si~a0WpS)3Pna!UAgx#7FhJfax7D_0Qk0K7c_b zjAvr4x5Dvvb7r@$)LCwSR^P0r_MM_jOj^u&adwp%@tm9}9Ty5!5|~oezJKMnry>*G z@f@OIgaTT`8Lrc&uBS+S?LIQ$6=CiD`(^)eJma@{@bop=SG2cOXT8Rmowqe8+N8i! zALdC?X9cnG_tobqg;8gk0{=q(cw>I==fZs$M*eG2;Jqgv9i1XXCzG6b(k^k5Tkmc~ zEUn7YC~ZPAIU;g7W?%Y+dYUlpucf1{=Kf(3{1(LGR1Ni2-NV6=(}&d>4IKtgR@X^5 z72j5epUFP^?WtlZ=zG={CMM0S55eBbFutO&R_>FU0+F7#z<x+gn?_|A1$7)w$=*YD zYY|ER&TkLto}V}t(N;lMmMv5pR2ebxbptXMyuay=?jS>jaSR&QEg=-+sLbR05&W%~ z=|tH$s<!(;K<adtyErqANX$>pXkeipF60T)FDa*4)iuPtB~+=;zNl$?f9Q_{Tl(>m zBq*q-NXfBkn<C1&8zJwedmH-Xb__Gebo+b%2cqnqEzBXkYN;>f=IrC8=6Fo=xDJ|> zRI;Qd%>(VgJh~l{|G*IUn8Y0r92Na8kgww@>0^?>o^s2jD18?4njE7HWR(H^4-Ec$ zAiVX6kPu^jD?%?drh9)Kld7LC%!lFO_VzPrnLEmTq4-cFe9U9mQkWFeEQm`q+Nh0V z&dN-alK)Nyhy5!v+3=asQpnaI(WW~gw?eWzwzu&@YH@(hGb(=Y)-cSO6Ld_vDx9`$ z*R~-!?xLQXu^*6`Ln8HT5yirBsxD}|x=7-b#fK8o;x$hQ=<0Bj+SR!jL~3FX**F_o z5^%P+XVS&iTu73Vq84{(8g)YoEfPr<qPgVXY+QZ50{>4wIZ*2H<tF7$A;}Bd+wul! z&iwYjDad+VUBA1!3rNGXsoF4(!lF&nNOUtm`UQ8G1!Y*3<U)nhhCDocVzNV0w#XSE zpZ}dyiCn+?h6Y;aHElobUPB9MZ?pCVN&Y`MZH}&+le0B}oRS^f)h(WmXj))QI!ujB zrH;i-oB7$Eo-zgh_7>fmv*1FhnzU}pqUpjyc-Q@Kvx(`&5+p?xWUXW`8h|yQ&rEWZ zEv+#nHTRsNZIZeRN%ACLt4S)%QG@<{6-^iyifox*!vwpK{3mUS3FV%j{gv*RTtT=d ze3~Zd@_;(vj;rH~Qk<h=wEUs)^I%!Wo!JuIOgy%f7I7Cf=<X@8f+)E+i>OJ0CBY#j ztdfw~W{*M9c42;+iaBy(n;5E0geWtU!WKWh=?a1|n!yX-gy}Tg<~+qoTvjAVYNSRV z%4vpyaaA#p<&<U=7>rGXn+Lb1FV2=YEJ*;~C+s88lK=Wrfjr8^&?%=u7ZrJJV3r%v zaOZ{4ptbEpeDFhO(GS>oHcbI3S^8zuQh3uNKxpKW4cp#jKCs2fsX<1xQ5RFoQ+FgA zr>OZ3&yvib^vZ3`19#yZT^_e-+%;WIkxnLa2-7t6C%OS)#~mkl{_(8k$1C}<->f-$ zS|XmR8ofVA+FEk?zbs1*sZ*$?T)h_5l9-6Y!%$*mAe5K{bj`d+ph{)ZdQ!D0tFoSE zTzHPFu`I=%EW(V6C94^jnh>jVh`e^0wCl?4I8U3j4Duw;<1DSjk-!Wlw_aM(fNED8 zs<<4`e@(fg(1B<yg?nE1&vV<s7u-ZhP0KDxvzm6Vc>%TCXOI6lSHvNuDI~1&uk4LV z8EJ4i<CV<qhw)5;y!a%CO@p-AdDqc3Nywu^8A&;ih=49ZY$HEp`KI<pD<s2M=IupO zm{4nSjjK@<7D_Z21_@UNZJEbuf;eh1UdFF@=TR6TYg`|I=+2y%ZW$iu#XwDAZDB=1 zaL_b(OayH`cIK%oLL2+^sC|YPZcXfpqB=^rH?V2J+qCNS&CFzcr=Er>dd2p(=oM>@ zotBgcr*%dZ%`_?!Fn8Bv9m^J!sl)SA)e3X_B+TLI+FwN*LrY*C=!cYFh8XQ#o;9?r z0s3=qDO3!J4ZO~(!*=ZXRV#~M%2}H-X6;!`MFN^f0YMAoJ>AJyxtGoX1}x&HNgOoU zw4SCVk`U*E)x&6W_nu;Qr>_~(E=)Cz?#nyvUUeIP7d?wHNML?)`PS4u-);faF-1;k z*pX9Rk*x%wvemCz>*b1%+pvt&EF-(0T<s)=D@zPz-e|D!9n9X_xldM;*?<eWOf$4_ zk&Hd}0hBf&-r6K~c$adcii0cLR-Ux%8=fH^!>;bZp*lEZTXaobbP?QzWg6zS1`O`R z!if76d6qU@$6K{sOd8S*3tPHHL56#ngGq&LLb`n$H=OX)(2uf3Q>wYRNX(;`QB9bw z=$$Xkw1#t?wxsySoHTr%`#_zT)UwO_ZlI!YXBq|220u9&7H5v-oVs4oMkP&}lKoTU zVtXb6><u4^l$5^=vffwjODrwOP;%=C-8P5m$?P{_W`@1Hc^-9boKBNCr?@_7a+r<` z_%}wRhVIv*_a^F~^RCR&m`iGN<c-pMzpeEYi?pCYdpB*XYAXH)Os$@@8EH8c%QPMf zxgWu1WsRYQvPx+Ql_eOymS9JlxD#!b6?>uFc1m$^j8}S&Hg)JJ{i-Nuq(cs;<?F@$ zgYE67(z^WB<qtF#pO<$YZ4H_|R#;4WVik9!gmnT-p%yuZ%oN>)rRhjv^rPJed!n60 z=RYBslW7^1HN=epD)}UU;-@(;1eV&PP2-w4Iq$nz45oH&96z(-O>P5_@_q=3a@o(2 z)ca#TT6b3%`cXB_5Z)EqIJ$??mP6w?OFdP=OmycN5SMk;C0QJyJWqpOb1JO9?=bn! z`X7z8JpC^xo<425qz*|Tttw&L#;1dR3TTvYJtb|Geqdp__vz&Nhz_1Nck*a~=q*?( zx4N<K#2RPb%)L6|JW2Re);uh<Y9cTl7G~H+wUmEaCx&q)ja6wgWgnRpFk=-CT9z+0 z`t}h{NK|#&pisv-71dE=^qhN$wzSElgGATjtSw3ny*kM-@5XS3S{N90&Ns=ePK{B2 z@=3Zzo}a<U)`VJ1WhvKQ<9_RE3ObN@$fAww`a;=*N!w7O;^XaYKHuIxt}mQ$T5}R{ zF4bAkHEo-c0t<JrN8?w70)4^qWMS3!vZE<HBo7-DP%@^33udiYpk|iXIxLO3V?&+N zfO7l$ws!nzC?~yL(XFx)u(6er>Olm^pe5Kai2d>H>G`xeRZ+p+u`<&vd+O2Mk)zSv zx3`77c8RU73E+$s)s%Ts%1t6mWZV+>K*=~rX%UdN9kQe*DZuPZsN*hmV&80Z&RLvT z2htK#6IYCwni@e~&yf*_Mbb66U&FLW>Xa&{`>AC`lVnYjmt9td8Hi(cs@kh6V_^Eu zj)&=bieJ$89v9HVG|O5tQgOf|TG&Tne7d({$s7+}7fq_H2q`3p+XOeZl!#e6H10Rg zN#;p_jzc;`1Alh1E+?*|I%pw8uErosL&|E+G^s&`(i59%{od|IC09&trr6$oa&?I7 z(oxd<w}l<Ze?#_tB#EiCQ^oHrwxKcmVU-)=gAkyL4<Qj2n#d<HcOIdWNJie2dK;2r zsIKbZ@qF$XQ?n(|jy)%aqxms4%bgh;9cKQZR=W?%g60fGm1a@I9x~Xo<!MF=<euo9 zIWnQE*X`x|lPl@Kwyq7|<za(wYT8VvH4!IRn~;}rSJ2(xv@yD!LlVNH^%fc~!VRY# z+AYK6o(IDBdhBz3lWLqlaEq6V>-`z0`8=>ZF)-+!O&a1Ks<GJu94ulDFqyBLot$rP zYitI-D(%kJ9Ji*&QBjo*k<C0VqaOCTiHg`hW>%goDoEE(Vo#5${<rPK`a1nJS5Tm2 zL@o9EQhAPk=rO5z4dLYMt+QFyFX{be!>vz&rkh#Ni9pIdqR_o6^w)32_&%v}fl}gz z<}O)L(3S}mQ=Pf&Tv5m=vc0djaF0D#Z=ItH;Z;BYg;^>|`n^S_oO#Kn?_9{dGE0K3 zS{L%FIqxhJjR5iJwU_-))#ZwYHSwawi5ZXq6C_a<Hkl!>FDRS}+!bgN@szlCJC%NQ z5Z>cIE(vs6j%299I+ZO|kVpVpVtMJ$`Q5E%e(<8Gz$C1TX<M|C3Sg#+j2y8fzUEX5 zSw}@OQIO#bE}JQKLvP>}UQ001`tNRjg_)<B;zSIpkT8CUTNI~-a;PtOUbJDGBG}6! z2*Z@9zBw;K08T7LHjr!7um=aPA3QkZzx7lusq4sM5ub#lK|Ec(RcLSHel8@^vx_z7 zq&ZrcCK3$m+6<-CK+Gr(##l2vZjIy)$|TP)?snyeoJp!5AmfWPNGjUFOtZF0v3^Kn zmv>gClJz|fTw{`T^P0Y9sf)4}tT;6>R-A}yC$qinR<Av1gq^SY7G}tbwkq=nx)k7O zFbV$LF2@al)d@WtfPYawE7GPgh_Yf+FnQBCbR^5}u$Ov@zl#QlWl++|uQmF6Xd_)K zCZ0b7gF(OAA*6H?BM?=9@Lf#1e5I`3Ins;gg`wCQMLHzWH7t`dZyWfGlh4vY$wfnE zbz}T?ca@f_JB@rb32nqnV)Nn_8)IS)VG2DpA?<mLStw`X7(~G_T9EHF?aDr^pJFb& zZ?E5-a}$#&+5)FUdi&<~(}KPllbh>~av1!ic|(KH4y&~ZNbJ+58~SkZcf+(jlbg8o zl?iuvF-D3~OJ++&oFn7va!7FIoy9{%v;H!cD7=(LYr_-_A4;D^#P+li$Cjk$de1k0 zkgREwAw2<1N~vDThp6fL%J#NqQOi46e5Q@F(1#ZBEP=RwQI=Gi@1l9I9=fI_2#~N& zb9xVomES*gY#v9@&JK<sZA7SqOBJi>g=GCV-{}2kyti>!edJA9x2gWf<zh4*;M~?H zW|6z5HyI6$u3D~jWErG%bR>!spG%5@-YiOUW{6n6o-yjO?^acpkycrfpGVHr)Hpm= zeK$<2iwkP*wShSFdBp;%vdp^_(hZU+DH<q@Gw&?l{l?WrThs2HU=(+WkOjq+2OhIx z`K$eCmKW-K-caa-jJv19%5Ww{bl3Le*3jwVcBCA!!8~s;b{G|?KtyrsX&8Wb@MG`! zirw{Rx%eQ$-0a-mS|?pn1)S4}REjQ+r$hxvMhDGxBi>u9rxc$<baHO`T+TMf<r!Od z#Gv@@T1Wc8v^aB9Jg^AoVL$J&%#!}eO-ZU<Bo%v-OK7m4rw;pdz?~h>Q)xs2j@W3X zX0LaHhmj=XU!d5_WdH*En!B4wB!xc_e-{+>Us#h|LOd^R!`<@dleco=ME<VfJli4) zx|G%@QHP`&y|Eg?W*c{j&BgS-XI2W$2*y+hcg!n-jF3vxFxNLykb*UHby5$!TKes| z578v$ib1k4<%*kA10e>a1#e4d=ejB4Hcwi3(1Q1L0z5b_b%Was7};@2L6<NX9+!Qr zE)0e@Z>@o^$?v0;U5pej>4VBSnRbeDLIz&gV|~lW%sd=5QB3hhKmfGwtct0|$NLtG z#yK{uk!FG}(zvrTEOOKuKsuC>a%J1o!|r!>_RlYA0Zt;7Z8+EuGPxvLeoenaet7Xo zV_7~_6<GJMw1&hq-QYk7xP}Cc$x+K8;wjW?9+@48yUrv&<E|TqmAs5BZ!XU-2$`8H zMucrGvqhAK$DTjOxTF<jQBu=Q8Y?}U=;caPqd#unaaFR{$9>txiyN=5C`O~m>U0&u zk<cm89m)3ga3tH?EBY5JuZ0$g&EjyU>lgi1Ye|e4O?IEdAFm#7ybpsV5(Z{BfRUsM zGGcS8fw)Dik&ZH>AsmZC^4u!mdjjB;ljU$6GWt!4ggA6r4>(1VP)ECZ`sdPcI?5rf z@me^EogGfXC44v?c@D>tc^uPIoOgA@f9>Scu%43D9+I0uj-(`cESP+u?`(VqctK{* zU@;!E;Vy;?PzzL4(;|t4tBt<9jF#5Wo5F<asV-4mCX{ubb78%7(5AN;?vp5KTVmx1 z_wg&MML}*9c`G}u$|lzXh%zULcHB$QIfsaGPyrQ`e*P7JC$do%1xcWZPa}MBEvexw zN*=6UN-vetcmysF-50EHg!MJ;YcqW7_>!oFYwWZ=Q*u~uhmjitWSh&Er6^#I#U4)6 zDyZ0Ej^Y^rbz)R;zzu@V0XNDDw{W#Tj3zO!q}#_&M6-6cbr6&>Q_&We*%FDX<BXw$ zNG>}Bp#9_ZMN}2i9j;6Wt>bRMgAcAS_eA^rIx4hM_I42!{&(L*vuB+ui2A>fSeMoN z))PP?DO{y8g$h_%6``a!qvnCdNY{ZC4E~hnz^;KNg*Idl(yD;&?%d)slAL}5(ztnQ z5z<^eKrJongiK$Ufoq<++z7wNtjok~a$Wr-hnd9<A&Y<nEpGA*gk<G`VGC<dHyqtW zJIV+aXt?g`^I4t9ktVOCyK~wfv3c)SO(>)gB?*f-u1NvQDv40yin8tg@4Codc-*Ev zML7gTJLZs}SVmIO0@OT1R>{5`4n&~9%;rXT(4(h7#C=s@BDp!USlO2?=LpW0QmAQx zZ8;T1Pz{4Gi<iqVB<qWLNfK_!gfHqGj@G2e5L;5Jbh<v4Z~#67GrtRm#@SeQq})?D z(A0AMgW*ntMPgpf%*SD%Oll%oL3|r?GR~p^BrcOiOO1!eGJ?&((GR&lN*LSr_FdRt zq2DpQkLKJJSq()QP#1$9;duyFIvK*y4T1y^vg_IuQ;AGGVke#Ss`j2Q7XkxBR?n7w zBt$!@D=xj{-gq-5VZSoy$m-$<BQkJ6rkR)SG;iw5Wl^r;(QxcB7wJciE`-FtExPFF z4QBg>o9I8u)u%mT=-*NF^nB6HK4C_1-!_=(Yr%44dYM!y{xa?^5jisZl9@>FEoQFi zO((paWIA-ZL-QN+TT36ms@!jk&$NFpEczEk{2!_^H@8`$UujmwT&tBtbr^~b??cz{ zD#?h1X5`0_6kh^DN>t@H0fBQi=o_hid@F;*Xbl>SlOQCi9xVW0Ba%sPY2cc3?Zjh8 zPUJxp9>ITv?~KYb!%(huuwS@!&S**)KjeQkon8nwEnv!q%V9FMBu&4N9|Hg!gpum* zD6kaWSq$$f7(75xzRgES+5w0PqY<AK>)#1t2h){1*GBwCaNoLdY#$V?lzd2Wqv&mA zv(o5mZhVf>dWSXw!lTXqN43RX1gCluVWKBtG-)W-rqJMq!{JHjHYD+#QcW*~MnHY< z;}Y;2J$lWyPrcZqej_Moq)K@?CAK;8z=%CP{;vYzv3=#VLcDQN#a&-qz0u`erYhRq zv_kKMCOG0or?gx(oF=5~OC3^?hIHz~?{E**aLuWgNq?sw(sGC_G}5e6Qq>c=^lXKG zxN^>(9OVRmiBgE?7>19gkkcQst&l6XD}}eNY(2jkWe62l6XiLvZfX*sl^)5lCVB*> zC0bIGJxvwr6c$Ms>CSrF$^{STy6pG{<qdnB)~^jW2T{nIhz_|@d0RQJFINPg`y*W? zThf^!Z)LMZNJTy1tw=tX+t(JH@8B!r#=X|cnZs71oZNSA1dcJIYT6LUEt{PPyhXx= zgfkJti=_(>M>M-o1dU$`y=%zizKnGm-t~x+;jF1K34@RX6iQGX;#kh-+|FNY(}c_n z^ft!8a|i1?vx$=_prd&FZZA&~5xwYr;Cx+^sE*ZEB~zhKd0>r}wa-KJA|UHlB2gF- z_ve}U{8lW&gd>ZTtEOmWKxG$Rik?dtw@B~faqK=J)Y@cOR&g0mLG9_SP5{rjU?S2v zR-hWdBcxf*=t-ENRFTFnwS<hNnbz%${_c}5;}MR<Pf7eF?@4OqsV+!a#lYg%oo(;{ zxC2YZY<>t&+<I~pZfEp%;9^+ZBXNLBqCdIdzYPhmy{w)+-)8d%H9l&RQqiGX8W~FT z2a9avjv5Sio8IQz{G$`UpS90@!&Mozggxl;L1^9)|8jrOx?s4Ayr`12hzL7{6(K{i z1IF@V-5DJg3=yy>Jg9y?IsHs|+4<>*w%O&@=Nk(1m0oVe39OB(skk7r<PIn<oK?Xq z`t2}5Zby`OzRUn8;)-LudbM;hA;Uf5Q0+6fyuQ(h(U4P>90?u*sdo!AEUJ!X@EEaS zD;+AtS#whBOKt?8Ls~UE^j_=7!rg~|wr;q^FM_}K>-WDu?8SYptGR>`cWcl{U8tCM zAas780vY2V_xg&k3$bKrBtnwCy=$(d>pw^s!?h{n4RCz*Pv_|FsS8o5U$xKFRX4^E zs5X=m=BBo*G?fb`7&n(YAS+TYKg*hTOp}sAX&~}_jccXryvVtMp$Z5+5f0<zhB|W( zgU4II8R52s>zK|_@2BVD&+Sh-@}HOe^Qf>$MOFbGX8aSv`QCB08()@4bw*|`(Q!Nj zBwf>wq{qUAUzh{50bvQVvGa^rO>gKeL}k=Ki_GL(Bw2y!$~C;yX`@tuNrji@Jg8J8 z5sJkw*}y%ze|uA1F39s=5q6n|RYnv#L+```BrO+vUW}?tIy6C;J{ltD4l!?Uud@nq zHW7u$*+x+&0$RB_bzxv@7>)}fj5lI-QwqRk^|cNm=F!olkDXj`7usi`BgsC#m5Wiq z+|*o`mL*|HYd)_?esl@sqKJM#QUbNYiQLE;rXr+g<WrBFpocbvk~aSus`sSl*9hcG z9EF_ex%2GLv|kwo%j*NwmU-SD@{Vbhg21e4OWHQH*jR`N{Tfz5XAqOO9!E|#e^^mX z-J}T_BTRbRaV#U?URUUssDZ1Vz2E^;PUJ_fZc}E+->vY9BRU8RB0c=o$)%x2qqwNf zPKZV54=Az2+4EXHdd{yTcCPiB2QtvWY0}&}UT^^tMG1tsh^Bb7KMsOX*%v?*F@^mN zp&m>H$0Tl3T4{%eY;OwoSL9)AQuTU=*DrA|kQ$W+0mXhPy|x;;(cZ1;R;=K%+?+Jy zq(X#-Q2~+mUj;h7l}AM~*`-t%P_xeM0c-4fFy{#uQgTD~0e)r~K&LR_ktLaNi(&yC znq8LAogwC$=h8Oc@<xgJh`TV`IcIm*Kx;UJ(kWihYzm0*5~_<sz3M+m{-|%cjlAmS zJ@u-a7ll#$u-K~}a(gmmP8>CXS?&x*CBDt8PIZpD)lW}|1DJ&z@ayt5g~9M@SPt*5 zSQhpneVS;*MzW@~w$?+i?)!ePw~lN5uW>-5T=EmBIiVC&s+9W@M$grKbltd}At?D( zP|Hp^7{+{ls}Q1)wqWTje@bm@IjGVr{p5G{;*{hqrxKQs%u90E7g%w=biS7tXYfrA zN4T>y9N{8=kA>nAhYwFj>eWJr&-kTZ<nW=5V~E8`%1jq$q^UZak2BUhq&@@U*N0E9 zS^6f*+D;(&16d*st=~%ww-^$+-3j!Ij`QC1KuDMRbowL_8pXqHh<QzSa86rGIzD31 z(HXU!&td6hx>Gw6@fi?*ydI~CEKvfyug_(#+@=G>SiD)(aBT?}xv@r17Txw$sR<8g zKSF!cxT#8Pg&F0>CtPohL#m=jLm@k!(Lfcs`|qt%cWm=iH7dn8I3slb<kBXCEi@BX zSR_?M=Q9%YGjxt5cd2lON665<iGU$Wz|vZ>A8t=e{APnpsrM&ZaG;2zzOT%DNVbAL zv^m(679>PeXwQX{DNZ?-;jwF4{6xR-=E@qM^FxN-8<cKe*YE7;37vD(j{HD+V^NWb z;@3azRS|!2X-D0McuFd?7Ib)=4EzkVW3D{uzof}h^QoVlq;0WkyYIQOa24m0m=;hV zDBO*fBDJ(m8JP(N_L}i%TeG?E8>`G~#-VwY>$Uj9u$<2Vq)tA?U?eS(;serpJaQ1l zH65+1H(eIZYRpfRrWiL_PSXPE)C1QTjWEBn`JQ&763&}V7S}Zq0)xp*gdn|8JBbS3 zn?;0N(-=@tIxXorkc&}2UW7$q9g7(I`6uo3xx`naAU8Uo`M2PExF~26&OxGR6PL(4 za?)wuf=9(YTs5SikEd16mCryMSK@k--k(gu-KlhI>BvJ%iTnnr&%@)#Tgo*SX2)6~ zz3|ykp=N<$GJpDlThpZ3HtMyohvZk+$`}XM3RVMM(Se_)$IueAh?Xt~^TqezTNflh z&3aU{{j3xb4`e#m!ee*UL#;iQ=Cuah8qzhXO-Kt&hejJmj;4J4xBH%vX-U@yWQqk_ z`GvbM8^B>ivk+XHB;?XoWsV))cl{petj^1tPnqUsXmTC60f3rKN%TY3j<Tx12F`q? zL~HVA1=|VVw%j=0`BuNscQ}8lmfkK+b)KK<{Y$ZS;F09)V1z`{RV|8ZaWRaM*0Ke= zhCUDbzNoN@x%LR|{3KM((~l45J`r!i18`MIO>>%u*Q$gxoNE}d+;U6P3)kP{F>Tu) zZN5Eue|jR$;R=(1CODVvhn<}#`tt<;?fIFBKbE7Yfj2hQCNj2^jw3hS*dhW~Gy_<{ z`{<p_eGI`=svK}bS)sJ<T18~g9KkPL{H1FhM-J?0RF!jY(R2J1=wDhRTT;k%K9QFZ zMVYk6E-Az8u+WMOvh1JUWhZL_-7V$*Kqm>XC5@C6NWx2j#IAkW5C%*2jHST!*Cf{i z>^@LL+ujyLBac=Q3~k&)G!YY4RAjU{NRl?I%dSBP&Z$S1>b%*<DDGxo7ud>y4SnHZ zR8GSw;-{h=zw}+Emb;YuRa6Xr#mPmdi$)Aa&U7*4uBk|zVrpFVFbh~OIo~0jd&3xR zFdFFbVnXjn@jxJ}nCG^OS21&bK#f)jF{ekf4Z1_&<6CbX-Z<V$)=YpI-}oroW*ziL zrVNvua1sGgLUD}wH$Lh~E(Xc$Qj7|^pk30hbQ#;T&r$=nYx(Ify^M_-I#Kj~YClgt zRGI(}lv)a%>x4q5c<Ro}zOW_*^>S+wNuJT2;PxBV#YQaV%i^q%_m%3!nCLM1h=TKz z?u7CqgqO!tri2QrlF~-%LGz@8Cy(jFl67yeFGh}qv-G>SV^|~M7wC0T<4$%zy(B2X zMHtTMb-#Rd!s5S@Di_nxr$~ydq)#!8T5a*#EgWccZc89K5=#qA7K<zkG{XDgOabsy z?!8aBw3n1Fj$t9r%xZtX{BRU?3ez=Xl<#nLF8vXADM5dA_6$N6`LLv6#tJ2iyGIJD zathLxii-HU*_ZJ;EcL9}UA3p3MEWkT+J?~Lz^vCPl9$#P#OY{>UC=vH8dNMQl2=px z9?LL{`mQEaFvS>^exv9lC8;KJq_(9k5v-Tswq?CA4FQ(=4Za@Hl^rEPT!uqeR|;vT zj_AJh>U%4Mi(qCw2F|fDdmq~h2g0E9O{0W%LuH%Lrr4w?jK*J4wYJc6<EKrELZiVv z)B*yg(}u$)ud7TbqI4mX6Y-Z0*etoXL@UV8PzPtj9Ybx9&<rF*9gPu^F4fY0PZCpm z?nL%BojGF38Sd%R8;sr=tRNykj6CpCOdO|eFZyC^E~g2ypbDZ2|8J)qhUk3KUOygI zJ?b+j^NaV7HkcntUdAImpMtW2J)|+&ZV4Bl;S?kU!*1OI)segG;1|ql94A2)l_Wa^ z)3lOChI5WalTaXE7dPXu=wBc}gN(kUDfbDrh|ne=#ysm7vFyyWV&2)&K9!QY@Jg=( zvd;A0J|4aHgf#KDw9fb6{4FRxhzR_0<6V|dsjIY_+vBZYac4a@p!#P-u7dZ=rLp*D zbd_8~sh8N;Yi|bl4+i7tg%RYnxuM5ENYms_VQ!S<ZW>Zh*A&*j7Pvg#0zX>h&sxSl z&F7@=-JBx(5A~<Qw`ndT30>3akAJTQm>DB`PrKk+09h-s>bOsj98HSvXz`TI`7jMB z&UBVFADRV7HH0kWG5vDP>?UM>)su>GCF$hf%y40h`Z+8yyEDAw&Dj;5Aa^a_G*9L` zK$_3L06Z*Ah{C3{ZiCZ_hcBPA49xZodm2`_SRk2q?+2<`44LoK(ZhUuTWV%ZhsQCv zz5rN|lGD5>$}&XK5m2c^>-y*uF8#wdb%kVSf0l(<sN4?#BQZlat0lN{FO2AJ&T6BV z?Azb2goZ2^G6X~Kvy<w~)CSW;TK_tdW?<f%<{iqSh3KxYPh0bvGc?zs!6~heDRAMI zvYMNmY8&1efNOB*jx^}@N2dz6zp=sPZ*FJD+njr?-<c5furo<@u@YqkWk<wx7OR6o zH{06--3TlV1^*v?j+S?{9lcCw*NB%llJb{Xq4Onq$FG0HV~!Ms3*0kK3fz+;xjk`1 zghN}8*nU;Al&&50%cSKWxi92Y%^qdXe7VC5ZU>dD%k$hOe<RvVmSoF&4f7A%3)AV7 z*hNeAU_^Mcq1S#}&H0hlI+xT!%InUlZ<Mc&@niujPz%tTuUAdPQA@H=N}&q(1&1(w zRP_-jF<uF8LZexXWJR_#K%vPCeImr{GInpSNS1NDo3+SotVEs2!EK{5l~zdOwO9wA zj%rdOX2D^GT;jhP!-@8EqtONNt<F4NHXYg3e$(YE*oP|)rk0tS&eK#~z{Yub?qf2P zynQxpLi1J{%#y|15#+dipIZyt!f*bI?ds<mU(59KA2Rte`)CZ3WWHh6@-ySS2oZ6q zF;`usG|wPTJG+m?r=xQkZ;|=e&s9mdT1alLrX$w0uEihT=c;@y7zi#eTTb4Q36kUz zg>I<8L0RaRvv_k$P;X2x^J=(7Jm1gWGdvOBC*(zA^m;fX-9Vc#OX?_~Tq;}^r0X5( z{cw8op&4$;V!Z>pt2-}^X~N6>XXMQ^6v>E-ahwrxhh+%NzLtwT<@UaWmcLxp!yQG= zTX)CB_2xItm}j-G<<@sU$>MXRXt3gr6_VQWI?3ez_R-ibzhKts-H*EF@qW?d%u?Dv z5!#^_6kwJ6&1B6^vo(5a^Rc?bb^T0!jGq|I*XaFsQ;o;mi@OX)pz;{{DEV|`bm+41 zf5@`Fit00XNNN&nrZxG-5k0SHA-UvaO*SiuvSTQH75L2nkiwE#JYHriER>Wz5~`o% ztHab90bE&I(t9DN`*@lnJ7(d!(4f=xleQo&tc)trFJ65ty7=)4+#gSu@!1*hqx8*! z|Mvi91bxVDf511dDo~{7mxImxyMX2@IWF0pNO4*!b9FiuZk`<f_0L@v`a4LIDk$+F zA(*Da1r6=Q89Ag$sdBS0va>2*SMhnxw5ea7tJdLlm+L)glGBid=Y;q#So&NJ5+&Cq zt^T<yi=tn8l32lJ(S1?2g}FAvW~X_H<gOR-t1Ht?dnFj}0!No@CBo}|Ie+DpQbewK z4nl4(;JV~-yy+hIq?ZL{<6RX+^jM?|5FTB7?Xuy-#P%c~<?~d^?WM4YE_3o1TCTL3 zS$=*q?(DT!W}D8_KALOJr%_DdTt&}&Qj%yo|3%hhyE>Te{d4_|U9*I<Mho-BrTJWb zmm||O@8g-;0BO2}KjvLq|I{|Ny+f3?CFSGz$+=sEwi0{V&uR45m)VOFfw>bqnz<%+ zX0c(uXrWCf`6sk~r;~Y0-1ciM^wFk*TIs}?ZvU_eVli2KG%`tO8$jZ_G}KWg!6k?- zr<PS5rdLQ7v9L80#(qh5AibLC0M~E>L`J6|>1#HZ9k_gBGg=cV*mGLb;1<==JINH5 z))9Ur;mbKUO_ZIq8v3qq3u;Ak*j(GM_{;KRHsdvYDJ4_y&M-O9s$it1BfDn>sdu55 z@k0`|ymCzFWXbi+3sM!fw*}^=P|I`|x$_WetD#zUMHIzd6}NQ|!<msjGW6p=dTQC= zz<quu0oTSktG^WJdUCLW-IW>nc^47pg@2&RyxFzY(7!Tl<>sCqB2?{JZ@rx12qLno zk$vkME%y(q*-hFXw*T^A*;d>L%N01~v?d9lmdeEusGQG2eNjFBxvJVQrpQ#@$2q{i zicY_a<5xa2zJl?~ow7s!hFhyrYVs(#4%^(_b1zDXwq{vSO|=HX{ifJ5pans>I%%Vz zPPpxd?%->ph0|z%KS<C!`l4uAoYmB+P%VFftl{=L3VFl{@?lN(`+GPs>rNpSlu*i$ zaLG!LaOcVFsTqY?_DjW*-LF(IQMkl@m(lv~>riJ^hz0)J1uBHf?XQ!!V04H8{ejpY zT}jAzBoT8K^t}YI7h;HBV;1$LB%!BK-_`Yxe}$WjX|NyFc}~xlIoJR1MWlbNm;yH} zkY&kjr6KqANM4DrK7<Prb}c7gkT3sxU<cy%qgOK5Mo`%u&|qLeOx|4KI2()jJsh+m za&GKbObOS2Li@;VZ)=kXPjMBQHD|Uj(0iTKu4wi{kKc?&4ITX;T);zZ7URF4R+pD2 z!XlrVU)1~<vz=nz-Fw?gz2|lUg6rM{UVJd4Si0@d$+*UJnn%uVboZ(mH_LqI45NPC zx{+@-F3wM`&d)aXPph|r=rLb0%_+=-L>?p!S3QGAgxbg~AeWn#f=Czf(DPv9#rcP7 zdfMt?xH0^GHMS*Z<i8gNf^B_g#G)Zc#^s*e%f+=AAzqQ;aZi7K(+uwNFdaQk&k3K( z^^Kv{$w{6$QF&BX@44&g;Rty=kk`k9mY+HrH(4}O+ISRX1ap}a#*8*-`-u`V^BXOJ zZqEAlPi6l!3{59DeM~*Myfrzwn*7{ep0i3C2ck+**hj4xl|8~+{Wl!&hVh2q_;yio zr&rQtZ4zfqD2=J@fo0e4#0(z2j0=!5G|sBYxPepRj|+DnSul~oaVbYkc7EK%ARX5; z)8mzc@L$kdJPf>^o}YWE`htLcua)5inqrw@V*p93G%nJSRzwAk0)5i2$tcOol(P90 zH_LKm+P)dh$X?Pg+piE0w8|EjM8*YOep))5v_UzS^<<Q-nPf!Wgmjpawl}|0pwLqc zmb9uHw*zVGPP*jawvx+mLv(+y9mpu5(G(+(tKL@_<X^hm2Q3I|`qOb)QxbNi6sn3X zI@YJ|xWwLESP)P3t+(%6ZH6?$KQq<R((JekvXo|3bP(i5pxduwyf383k}93AF1U5k zt}wdIxr~cqAF2A`BFVYv?5!)j8n1;*tmfP>H|ccj^;if+*MA3Y#Z}J)in%p~cHyXO zaI4XvkN<Y-s!Z1t<9oiVrcClzMy4Bgcu%=2R_@@NNs_sB_Eq%pbuMCzsDsV9W2VU^ zf1!gBJF%dZ!}Eu-T)Dj!bv!Mm%t-^A(#`=ztC_k0++5&!Rs+2+0LQ2nk{mRPYr>GX zx90`RXj7&t<T<ytbIVzK-AaAP>&x@Ew3z<l4!Ye3ChBC}E>^CTCD*<Xsn2O3mk}tP zMev1kWdt?Z!_LmaJ&c*7?_s=C`i=|Yn6RE9rL|;B*P(Sc-L%Bq#CN9A1J{Yl_p=|i zSCTpRg_cVqz7@Rohvy~!(n6`LxzRD8(>EClX`EWm*>AJAUYdp6$T3R}8WHT>5}NiS zAphc6t_IrB%!+#zxuJwO3%yAxlK}%pD|`I6eo30l^ChuhrrlLY)!Qsk`pLg8JdDpM zqmC@2TT5AVq|26bl-@7qi$lUw3GXTa%P^cKC7ljy`ju##p&1GI^;W%#iocHNY-{el zpjY&?rq5rOc@~vgFL%17xQEMEM=dKz$PM9&+lrj8s_6PE*INZ}zs@g?bxY3ALq;P> z{G{@zjwpPVk}vv*QGn@Ze;F6n@;LYb>9{Xxp|T<`WmTkomDK1tt7|DHG+cu#8GSq@ zP3^8N#nf%HBx`G-#9#geTRZxzC3A5zD^7=iW@@AmS8@}mu+^17zw?enW&IuG-O)yX z-s|)Y?2-=E7H3W$6aDi0UGo54ct!;G{j$gs?mC=?$Rf%?IvP!m4FtSG^J3E6=IfE( zxSO57CJ@#3s$I|obD2)Q;!9&~InPs0BPctn&l0Xbn^h;Q!so4YNyD?{^z_J9>dd%u zmVaSXyiKl+b3Mo0bDoxE8MP_x>nj^;cVV~RVu}CY30P?zG$HpXQ6fk0>Bbevt&@Ot zR}R(7wnfMIYoujW4Tgs_0;QEhRO2X~OUt_Jmc|zKf*cy_C(z7_MGi4zOYfgZsrU8e z=l%1`_my6LWfc@kWTxC_jAy)}8-Kctb{T(Xhw;b8pfPf12JcT{Z0C)45-v#AU*H4q zEdTHDw6~XE+%lT6|8Z{R;<y*r7G?oWFz3=P7MS^S%N&F0mz($^dhh2fOA#G-=o-4M z#0B@Vu6CB)<v?XkUnv%h?M{4fN~b%*B3WQdea1k&>r#7dk-Ysmi_?fw>juL%s6O6@ zmI@kJCK(M9rnrnip(S!~rMK-a+nOOMQu&u`4C?KhdXK2=24@4#a@QB|`|9-O%O`ox zkeFpWji?M<_1wUGnxI{o^ft$MWZi^3M(ZA<$1kS2Rc!2jq?mUlw<*#zpWY-<9?xfZ zj5y10x5ckW*lkb~C2r|clTKr9iLz$O?`Y#ao1hWxGIF|&PyB{dRnUG~N^)Z=9q>BX zbl_Y44Zo8Em}O{7!y-!=ny^p0aX5A7YpV;Emyv{BVv0(~(5xWiX9?qH)we5Azk4>u zEf}Q56mf(HGD~w3wPu`;BV?M9XTQ$wz9I(;sf4WScuFHhJdbj%u5gL*wtllcd(3M- z^kyxE+nCpHL_rV_RSYQH5vuBZXE$q0+(mU7pUJPF56nAG@rMv6uW01JjgYkLyo=)$ z_f30wR-Jwg=jp}y)yb#H)kXF3Oh^S$r*{sh!-xB=wzrXB+<|*>d0w|y{AqtdjGW0u z#KKkOn$@AL%c?KA7Kpp_N~~z_g71hChZSsZzm`9aWHl8U-JLQCxh;qP(e#IlW$AZp za<g)C)w0`;y+>|)`>aLTJvcxA>E`0Q^Q*gc6(yq!2A@<koC&H>>|_Af)7yd|#I3WN z_)|Wu<2WZTfJ@X!(VENeP!E@X=NOxyc~id$6`5fX|4t52B<~Y#Rd;o#bIdZ@URI?3 zH4)9&?CqiVQ?v0wPAMbfG6-&})Z(}q`Q!yxTp^G|>V@(Bnx#=+$#$lPGJWD9h^C;m zTLeX@fcl+mx~G`%zD-};k^MTgTh`HyTL|)Rq%|wqZt=8DmbD+5l~BI}xGRg01ml@& z(!=DiZE*@#XV;oTJY1L#F>+6Lj+;D8>bO9kh1r#3A<=VHdpoB@RQ=I@L3%jXvvS8S zH(NJdN2ZGN(Hq~X>10Y@Xl>Z3>`~gQ{o?yGd(4c=rMlC&v6&`sc+G%KNvtvc-r%4x z9hNB!?Q!6XwHf^4c8%cq%q=&4mphTz+O61S09vbu)Pq#=qi~hxay8l#tH<jR^EcP7 z*z`0KP?>&9qh{22UR?Fi7id=ah19?$eMBGr$0|Qjk5kk;%sUg@CjEL;SDO1Z%cNqt zoVb(Q$J-V=#>R?0AAwug&W>ZYU!nKo*w!cTIR~KsvGj$sf%AzArzN90%V>5uOI!bl zlr)18xP@ok*~=o;=JS=!qa7v>ty+J59%?jx$`xpzNAJO48ep`{9qqypq4{umV`{g( zfl$9L-<vtB1x;GbnSAyB$-l`dS^-#hq@pKHJdL;`f{vTBL~0JrC@ez@>HD=_|J4t8 z=7hs}{@hFH|AW;ULy|P{B3?%w7WZxtnwj_C4ifPfH&6am=`x)^wf{*9t2tc`H>|so z{>)f#Ni$ci@{gyKj%jyABx`{|<59KaIlqpnJ!4&va+;8CO5F_CZ`ZD|ji;rW%v0aG z=$Gy*u3yQqv##F1AcW<Z$s)b~tB5m021O8ZDMf?#vW!D2VrQk*Lg?+=PB~wSYt3M0 zF`xZ!^oHNNE{BR<<WUu&$&p7mjp@`j3(w!1$|gP><567@sOZp2sTJmOu8cYeKf~Lv z1#t}FtGP>;QPs%VPT|9>VPIoh_he^Jph)5z*qi3McdOn}CCZg<MP1j(4_flg9<Yr` z-IW8`*_LfpDP-9>QD#r?x0)`jF_*)NqQdNxjw`H3H9Jes>6W=yp-4;%&$620ThC+T z?HQ*2$CIGTPG^jWOOvwKMMTG5mtY`Q9Ml~(K6I$3f-_#0oOvq-&P=mxb1P9VE#fIR zG;`l>-nHB^a4YJqIq52#qhzj(qOgs-Jd0~-e9_~a-ezD}ER9BdfxmzDc<Ybmi8h7U z*)hE#PPiUV?*2SGspY0Nu5@^HbA54h{cl?jznQ=Efq3!!hbwM^7$L@jJ47spy5ipJ zv$tGyp+7C7!Gg@&w4Tx~DxjC_oE>Qyjrs1*j`^;4SZh^%wp@>%M-6Uu;_OqY5b-(+ z{NoYu61S`z)0eI`CEt^d^fYM;>0nv4uJ-1C6in|Is^zYODx@Vt$=#qC0o%D$qW@7a z{7L~~TG13_8ORM^DOXIO#`u{FQ8Di#u)JzPrqKT|=Yi$V)DqIOp)RvJ2r2NG511HJ zbT;(+KL&YK6lGqsuyb;TIx5c2Kax_hz5Pml?90VY!Gp@=g%~SuMT@X$Gwr&(m6k|F zUWYU7;F9@fvYKzRWMX3gb4_*@60q#1RmW}3bH}K$<a5y_xY9zGzO!SOt~>0bc?)V+ zbapQbN_H=~Fwfd6y}1f|ahlWGuEW)sb#WPrjWsf3Tt_kHm+ULE3OB^e{PV%Yx%oK( z`Le^{s4ijx>T#L`BBgGfn^nlyjgsL7{^b@l6WPDZVWw%B<lVI8s)Q=)M%g`!b(fs$ zp(m&9nV8wghP<Zh8J@eMlWs5e8BMX433*rgIOvu#O?kq-0u$-H8HMf*@wXfk`PSae zVTMX1R7{&YbDs|Lld@iL{RLO5<<dL|88!RT<1NLUC56MwpDnvoOjiB1`{q&=l;N}> z3`G`xCzo3LLSbQ722&%Wnb$oa$4#(BIw&Fn3W)z|g2oE<+bbJ@@`{ItuOA4mT70d! z)fR_DLD_#4q=8LhnsfeXLUq3w@k(5uOH<D;eIhgDH}BKajd|oRd}#0NgWXNe-IH{) zE4XGeuH*S`GKwO6+flyoAik}$l5ec3eS)Y~F0VR*9+%f*wqLLh`Lv*+7MCn^<VLr! zx-mj6x_tB3+tDw@OEP#2^4lMC4ZPzici|?}X-K%98$edpGI{9wUy?-ohlLHizc5Qt zRQjTKmNik9L~+Ick~HD|G9yvug&3&(T(X7_+p2kXGIQ7F@&<3C4uiAQ)j?hUpdRB0 zf|R_qNV0Wlq+ZSmSv^6&_unk-b+Zeeq5UO_he!LeI=fp-|8ZJQahy>fpI2!sX3i~= zpEWFm*E)&^vjb->_O;XFx<qv4(}o)slBr10+oyL!jCaqSo3ox*r^uPxsb5{lPoZo* zGhu_I)!z8I<gZUe6&zT77)gJ!vZ%^{7P<We9etx!=i`xq(Z_TGgJ!}eb#y#DCQ}{v zj*LEY(anPURcA43S*H7IGp+?>9&$|zm-Gc)))Z+v7eSfDrG8cR7n48FBF(5{*rxO8 zF1N!F{RE}9sbk6}Ncc_DV$MgXi&_q<k=)Ohg=6L$w&~jJzP7h_-<_N`N7v2CnRl{j z%*BRrDCT`e@xyw}Id!=`;D&K$&U6{HJUYBMxu6v6$=UhYYkqS_*wh_4{2+1*;Og6t zkgrl`Y6lsg7<Ww0Qo|~!a8?l|*y!Ng1Q*lFu~<C&qRo#_X<q+WNriK#bbjM^0Km6A zO*<}DtWgI$xubQot;Ojoi;szcXU-{^_bx1kkzJDjDbH)#lND7H=S3OMt!Mev|37>0 z-dnkmq<#9M7<i3F&%&?3B$>Qu4Fhery|2-pcEjcA{$nr@cuBgnR!JINT&`L4ci&%R zk~}02$wQutF4Z1PyQ)NrOlC$##^s48jyp@VD((m~d?9%fCKMIGrke}V@!qq<gZG`K zdQ37)rB|gIQVo++G~tbVbX%e%ua;Rlswoiq<mX8Vm^e=gk^^pPoQ`%3$+Zp8-#+l7 z54TTkUu_@$?lJYL-&qwF!z;s}(pa4IzTO7zxX8?g>emWSe^C8V#oL>!9@TtK=X<J0 ze!O`<%pnFQB!N-TlUzaFoo?;;+8&w6;M5P@GhZXo2I%dCD~>w*PVS_e(%tcj-j*6U zNM{vKvuZzCn(WT9!85|N1QkABlxEQuQNr|@-z=Sb<X{_7J~WglH@-C}M5~_0M_!*H zAg5t+O#?5W8bocgC%VxugZ=g7vH7UJM5fzW#_m^rZLY4w;Br5kIH+g8CjiMH%aK9U zlY_Y#S8eWl<ZUx2f_u;T`S_P0hQsxlm~ByTA;2GsCynwod^%g%_pzB1X+2rf0->{| z^(iQcB+_M7o6%0q^(#=QMUesr+rHqj5=)+tgdMNk$6w@+H)1XQn7tp!FyWZ-Npeb& z$doiewDme|g$++UJCn#<Qv_rG=7vCngJuY=SuVHQQAi%rjiT9{wTLHl%d4a`(NK%4 zqH&|rX;nKST2RWsI^7Qrni0DJTuN#Gz+K|!DNR*`4G;e-b_vg3bkD8HMBJ{{%=I4~ zvf5LJ=D?f8B)-AFLD38CW%oE;JJvR2J)Py5izZpY8V}}e9Jq{*nq;oUiNnbiK7gJ8 zH`HpAu{vHtu)De>=58Z~IC*W8*U?4jt4F=vblVn=%#6Lk`JiPIZ1FN>htgd<qXWip z@c%hII>%)DTH<qn)D1KhaT)s_aXMEh-HL}wwpH`f#ph<0YG>#TdUI$8(<=4TqNE4J zZ~<!x8cN?x=xut%C(;caZMBxj7y3$yonZ-pRy8g?^z5KkdG%oI5qKIRUg%XlL-DIF zbwx-U#njCiOvm!-yl9tJYi7kaiiP|{kP$Vb?@gKeleTmHctU2DwQIdn@2uZ=HcIt- zbKsVu>r9B&i2c}LS$B{$cEO-x{e`;Pg3!TN&0pVqc$eQ?O^A?PHO~h6t-zk0S+)Fk zV>?{@^x2x`qSk>ywdI8hX<S5y*o^+<LX9AL*-g)018lX$bT6*%sO=iJFOo(}^`y9& zXe<s!YLq9@+Q_d6ix4lG+rv!Bo}bV^Hll5-dUI^djJk7n6h3<a)>Bi$`a`+&aM<qb zXrHwu3j-?j5zlkVrXP`!$E2Ci+Jy5U1dfU{r3n%2f7w=buJclyztF~2yV_D_dNRd2 zuv$mxX%{R%OAmEytU~}6AuDgxR-$jmcIvO`6e^%y0)+6xgSr3V?jM(B6A>in9BY!& z;{OoC*s=h&MzDE8|Lr4uVN>h3H8-1QHmk_okgg9UQV6%RPhY4BzihCAbHnYAH{3Ry z#^g#xogoor29b*5Q>Bh!UKxt~mi(w_LgU%7?1vijiC6+#3Jdx>P$Y_E4-U=8$+w>H zbfg`PpJ(73fLKb)o?6|`kEK<qdNS-Za(eR2?wZh>4D6irFvzqDwgk9dli@KrJ+K3o zCeK(Hx}~9cN)-9_(rk%m|4^6^mJ=?UuLv}NK7`MVtbiQmU85%1J|*fsGO{du8;*DL zL30P5Pt!I(0m5JC3X0jOsNitP_M1GroJS4#!hl8*0FCr~NIYRft3}-ouMP^_-a~bl zU)>bayKgl7J8dtzNC%DC+JHqJ`{1EWaQ)EjU@$aL_yN+;Fs<@jmU7e)bt9C%Z#xHU zr!G;W+)8yM=5H?KWy2rBN4f}i(U@p7g-8M=1W+YuYmLr8_!7N&Un@-)(iHg?>^KZo zUo|3Td)I#ZZXJ;oha^EAKZ=V`Lz(5?xrw!?h;v^i{-?(199X~PX)$}kC?uCvu+@9k zZ>?+kNcFi*ePo+A(lj(uX#yjOpXUwPcoTwHJgkjc-roP#O01QDdti&^@7RVx;-w+2 zKX4V|z$><G!_k>Kq$`?AArv47Q<ba>rAu3<;^-Ua*5))`B&7RA0jkrB%P63QO<&<s zp)d>)*K<9haK~3+<3LK+gd&FrRhbG1;g$(p&&W{Cu9+ySAzE=sw==@^7=P_BF!#?1 zyR+}Db9nhbB&;oaCNy=I`CWGR;f?wE9jr>7<36T*BlWZi3X%^rh@8-JywGut_74r- zCg>M&MS0u#dCk??f7^sm9AFpF2OXB6+@o!vv{0Rhb9A-c-lIIBt&sY3SRr7e1D_;7 zUQhkN9X(`*d$xxH)3JOn941t7y5_I~0aJpjGAp*S$rC%}$g<V$qfz|nrfmA_8@Mrl zJ584~v<I#iT!cwQ$HcUVwV?jDHd!;6^YeNzrzwyo(KHl+MGM``ko%e<1YV^RObj2) zfWP%Mi<Yr|<jEACxvF3S&F=0^Nr0%M@I2_?pmQ_<5e=HRY{B+x*<7dac$?G$)^D3r zc&$*5(CaT+3;SU|<o~ZJtQwb~2W7=k6;jmziEysB4An*JVZXpV_5j5k24!Lrdf`Z6 zfNfVj@THfJW!G$;P%%SiV2XfF#ESBYBJ4RNyAG8_l5lFpY-OaKz>e_yRSu#xCFDVm zgfN^E{-FtTyjA=16Kf)T0(bAN%tF#B^XX148Rf>RXl)qz9dgzDca>LE!mmp)td11h z1YBC*LL331EZT;h!8om`b9{d~D25&^hT%j#PWKbXOcHr2$#4GK*@TO-2z(;dkGOwW zb9p6AvpQLXp-!8O!%k=}yVs8FTX|)bLZw4<y@)P*ejT)Ee5+Rd?laUm9Xnz`kNjvW z{Ee-dgHTsq>QS|xOl_QY*oV&e;9Q&nN(+kS>}*2@HcYbq-8tVozfe>JCrKF_8mMNz zFh_&4-9nbTAism|Y+kyxW(R+K|Leiz?PayxKV<iB#hd1j`U6AQSYyhsD(YvjV7C0| zMT*WoR}eQmw?EP`ek|#RK0W^(A72=Ob(C><vWd+$q0WCUp4LPBeg=@|(9jTO$Vnk% z+zn3f#iN+hC8vo6!1+%*9F-V4xhJVY2X=$6BMFsyU8Z9J?B}-A(UwjKz@dYKpyhEG z5Ea-;sMIqxJWLOrz`n?(+lc68X`+chLH}H9wv7i{i!RU%CdjLB3zIXN{9Ck_ItO0= zyXalHwd>u7jp@82e{%iVaTz8U4Aesa1;G>?x^3>Wx76WrX2VX$ia=_hfUEdr7OR|6 zOz9}lH2^jarXY0RnE!q>*M*teqDMaNQ{&N)K#EJM$`GV>bJ^{ozHnge;Xab%a>3N* zTP5nX`BttuIwsCJ5Y$-+Jc}H8O6T&eyyFnj+|1V?#U74i*(P4@&ezH-3xy3x*eWJp zx{XX|ew&sIouPL`VJ#x41dayl4{!(?_5pp_R_EidoRf^xDDR5nj|Ky#s7hkFCH7!X zd5=uBE211z-pw}+B!ESzcXkx{fx-BUp{}X4-d+d?^xsn5&4c^vGcj3TescF-vP;&_ zNj6y+ii$RD_x28Jq&!>}KmOx;?iYmb`l5L9Dy2s=+9b--vJiYK^Vg&4kKAw~_ZFoD z(R=ZDEkl$&K{YX+L!L$mC>Rvi?Yh3c>sg-6RQsr~gxrZpIn9Sn8K$dqLLNtTiQM9= z65UO)K{~3;9xH3`oig@gbM%yeJBhh~g^8H3x=+l0@B<ET0U$uAU_e3${C{9@*$=jD zS~A2ByOZ@Y4?^)ZA$RtJPqRsB(FJXSr>cwwGgaGgZ?7S?ihMeCJF>TVRo!_<W`m8> z&W3F5dV2#=(gY^sBEuCAw`<TQEVI?0(KlH}{FEuXq&7SU3BSz;7@~u;@rh}rTM$&( z3bBrw81+~6(~<*Z)zW4Z<%eq<WN{ymU4M|$#}E7{uPZ~|Wp}?w^QJd2n{{U1NYw{! zGBtPfQj)&oJu9wp6*~n=9p*J&BgK&)wwcm+$rQas=WuizFlk8LM5)OsA9^VHm~wi7 z^EMa1IP|@;%Qhmsom;Vj+N~cQcE4&HSvAG3H?{PFiUmVL<04D)AlT~u99l8u$qm0l zTb5V<r9NE9CA3c-2<lWgVWQlp`xRSNu+5<9P@QR7MFPB}P+|)>Ju0zVU(zp+on6{0 z0LKfxC^^|IPb4DKF75EK-I|gaow>r;uCkPN??MVt`ijWn#0gahWeMx>#?tf6y!zPZ zQ&v)|mj~#OR49+?ZRk>q_Uv3dvR1@L0;RPU>pIC+>TQXKeZ$#V{p}qUfl2Cld7cFn zdE%;X1(|9!)`rsTYAzpiU)1$>#>+YhljH1o3A#$EEEl?-D#(fykE*{9JH;IR={zL< zLRKwj$qdzip%0XG+#Faw9VavfR2gVMF=P@5UE$LWEcWf0ujOUxRG$}{JWfd~QNbPP zEDNOowZ9s**bGhfgQO?gjy#UY{AXYNjYILe?f`h%BBwcjA~s@xfoH&wLDIFQ6^F9^ zf7$1JdO1Z!)zOG+Jwdv@Pz0Zl0ir{8qP7KV*Sk+BNtqT-cC8th35%-UX<sZE(MCT_ z;*Uq<ZDz>?xrtWKDBvPc;cvwTCgg0_SUW4XZKi}Y*~9IMv?yz`RWoN90#g2($)V!@ zGIOZ3Q$t>=w^t-fu*))qn--IA8#LJ|7@bHq^y8!*#h*lJ62fbgD0&eASsm`+Q4^t_ z?s1f*45qFXZ7j?7*qBTleaZjzj5p<NbEVYVd=fjl&orP9${5}}f*cvt4<sR`l-O~< z)^6O1_(Kgl{r8(+v;4|f*y*a|Y96W_HZm&Mu@4F}fZvT2Q`&>K8vz*`fs2-91rfs> zevH_Z5&sy<i&gELN1dNHc3$UW>`M2dAllxg?We}2!9ctDAf7@Fk~K<*<a=pa`2xmr z*LtEdQdCn*iuGs!)870h+oJi(ruA*}ks>yo9Z|$YIQ+26@KIGRG27lgZDiU$n|hy{ z-x`c@Yx_5!EDxSg1$|+kcDDOp;6kY`#O6Fo2~r8$bQ?&mEq{U16af-li6uNK)18lK zGFk4q4FmNoEk&!#z%~z)ff5MtuZWkraNm7BE*u2hK0hK<p)(zCpS{hmxnSP?tcC^& z3p!bQ9Gpm{R3h*_4O4#23Swtx*VpvLX<ILkij!N6X1s%_W@E9|pB?)_<YPmUz$3zG zwvraLLhUU_^W=V5b9O=8A+~*#NjHHE7*gt~B+rErsWVaQ-qV{Z*b;{8?vAkS)*iyo zXB$k`43WZ508`Bk(TZ>6kIn|nGlGopFi_ZrkO(%U_m-NPV$dh;kAxzu?h#S~`(XGL z<-wdQ)z#zu+Y5*jWbl*|ZKA$ggbMHPggX?K@mT%C{#6vmKV)#Q-8PT0m)8e_2?WD~ zVry&5IL<IA7|xu3i?N<v3O{NH&^*xKQbUN{Axx4P;mTy`-shh-$2K~N-mgD{0{&6{ z`03`0$9q7*ox@h&UtJbPUtX8yH*N3bg_;%sIRRtnqI3*p6me(y^_CT6`muIkcAm9M zRt*gjdjtG+@&R(~r=|vB(Ghn<HcMdpA;(K4Ef2uD@QvNzks9IQdxB5FPTN@yUskYn zkWhpVDNL(|q-2~p)z0?$xhsW_|9O5cTj~7#&-~XBc}!bmG95M1O0EBFOyRKgYpP=M zjLcV{=!oE@NhIe}ck)L91am{!7`KQn*18H|Ck0WGLKro5d|Q*Wo*gTTlbgxymAQQ? zl)|?Ucf8!MXtF~f1^TdxYzcbaU7CJ)@4Hj$Y09$#*X&)$L+!rk`$j*BLW*vx3Yuiz zO6db7$|?;twjDCvpUhPc4LG-XVo9sk$WXB>v{u-8n<pxd`Xnrl`^(~<^Z!=NG>m4z zDLDwNoE|!oC6o(%bKlCr$R3^+)+966zk=t;?%H#JM<xZasGLYfi4j9icz6a_RnIR{ z|4{#;eOKyqj(zM3-M&cmG@?tB4eh59OdGKmP>ke;=8V8T_YZt`KSKV~U*c^>v=yUm zZ{;uYeQzF0_ma->Nv9D=YQg$i-sgr}W}_bX)${W$>K=FSVb3-P-^>R&qs*1CefHzG z7}g^tar}^Kw(No9^jbjQ_AfF_6<B)Qdz0N2Z;kAll!zXDn<SeVb74sQ_U`zk{^iX) z^6a>NbX;Fl`ce|O*AE;krsQiyibGl-7g`|01*!lc8r<{6A9#}en#2i?vtIf`fAetn zrXK6IoD6Pl?vu~-uBl(Rc$YmCZy8JBM_vU<8x+w*$V&pOKfS;CM@I3Fn}*SkQ(^z6 zP#(#{pu{UGI8|w#M^#73hL;QV>CBL%9gdxE{BU{y57$>8>}SSq(X0(H@-bowz%nJK z0J0_j`cD2X=bp88f9kmz!OvFv6e(mGP!%e?0MX?eUExd%-=T>&s!YIln<v#z;VgrV zN)^z7<5|j~#?!6ZbOy_!`B70WRrc`8*OGA0WCbNr9PCIxq}9C<p7G&Ln`amAZnX^b zzGmcZ2kiud%eH>u;WE4W;m$QXsIXmyC*RE}3-4dqC4$~5pw*f&2?@i93^E5?4Xkz# zvyBm~StYC~SXa&(;tAU;<BZbo%|d~mJ>1-VCnp5IliuH&;-Z!hc%@4GK1xqzYl%W` zuh#Zo`^lj^y0-f~XBiJZ+Pxd9lgkI{Q{`XsUP^Q8zuD0?voP~%mVRG`+DNguLj)?Q zawF1K%9dztfa}M1{@?^`=T`;vD|~Cnx0e_0w1SYbEJFp6LIhcL%nJAJu#a^@I3f7% z6YJ@H^I&eRo{IUX_t~AmG3xh;G~qt^1S2@^LZ1M^H=k_Xb>fv)VY`?Y0$pcNUIjQO zQ<*AZDp9Jt-u9NcMOUu#!|bAS$PkFSAmJ;mKK^X~^^N>vZy89fa;%3>8CFgKmIrJz zD#03AK}cP2%n6iRpsdVp5jv#s&R{b9XnvI~^PMc#)RvhM+m0kwN;;60l~3L>!S(6s zQ`>sX%0}%(ZMjgvQgOY1Brf-skiSnC#t<ThJO&2V6<6-qS6maB%`JIVaO`>zwo?2@ z$#lf0ZQo`E_UH#-v(2-NFoEO{vMh+G5OtGlzfu;LI3T?`tV`a?AV0D@Fp~57ZFYB& z-#lKIl*%%D7?~!`Irm67L0ib<hBx&d9XSc01xEiBPOhx)J8|OGgIJ>8zP-D7C!*Nu zC>ecyu#u$94ee-Bjv?F<T!L21@rLIcp7Z!+LOFUlq@=}p<t4gve#_F-1B^zsggwG) zbD^~qHv6$T6zZ95-<W4H0alWRUIqV+oXGYWQ_%&P-FDCYnq6I%nGnU__a;)Q&K0Gt zdMR#7b8&lvG0A7bhX9W&XgpwIi6;m0;GV{O60-*b8ASu91^*R4#@UEYN^8jx^VX@Q zuaQvK@u=7M$X#5ffG`k3;CYgWKr0N_p#N>^@%sH;c6)Jicj56}WvYS<e!1L(hnq$! zqD|WCGgFj2K2*sCb^6v;x)7U)r-czs?kj?+A*>(x=R9rew)UZ+?9KR{d3bwM-uuH1 z#x>an2`zpu<RLtr)Hzgs@OLCMVoyBwZo3!eRA``Xt_`h%?(Z)i-e%X<%3)pKo4bpf z>f+)34UeXmOcwdHPBlRZI}c~bj^A1KY86{48N4h7bdR&5H1(>0tC*!6+~zMAwbi|m zOlJXy_cwPB)Gzk#@j2ff<D8R={}fj@_m6jmzXOMs|L{c#p#CB=)b%DQ9CR$~|5xAk zzr24s?@UxV0#=xbg7kjfqZMKsvp-~5Kp;Y6OhqI=p}dZXZil6gGOQi`LU{i^yJdO^ zW)o{kz={K(3#IcwD@(*rVsbDxjxsn|B#y!*tJDWk6vE9UK_jL*R+aS@U4Z4VsSef* zrjEYE7(^+2a~v1G7s`o=oqO0Y7P(?rmdtI>+%+1PT$2ieJdF)TAgF)KVWX1CY1Xp{ zLj^%5t*N2%2&x?+C+J*hCP@gi0?(XDe8`5JY;0rST@h@&Kj$X5_J~vYv)*46in4RQ zU!`fJOpBTbZy#_j=bI=1=9MBfv7_@37r&Sft-LN;8{Zpy#!e*y?#~eaFox|SJz_e$ zbw4HY`KOOjSf^SRO?1t|O6d7kO7V$BH(D(C=eS1l?%!Tk4;ODi!n4oG`(}`E3IVK7 zkO=c+b9o=>YjPvj^lKvH9>W`(-_B^g&S*t$sXE;XXZDOrc^*(ZBB4KAOT1kSMC7wW zA2w0#HCZSQ;0^3C2ee;;Al$Byk=OGb&VZ5E3m~O={XTQGl_qj0S-n7n+OAk2!Zs#S zG^r@yaHpq7vp{lrpO+qMfmX%6H^KA}FEh&}X^t!E`CWURRbTbcTAkAjCXNYbXE89j zq(U8VQXMrCr^MIj>Ft;ZH8B+kY$&e}6278$$3E*a+^jp!>FqHYsH^A`R4P<A?Ub>= z4;~ZR$fh$}U20Dhsi8qIX*)p!Gr$H~v2mnbom|-a)8RU_E~MM!qtUyK|F_jSbI#Ko ziLI)*H#gF)k}uNQ1Em$fd<Mam5$dz8yY~M))r|mbecrZ<dzw##Cs>scMz06|vL~@T zHj8@dvC&49xOX$_CMH8nQ&WSbL9K1=uFBQDXS-vDJGZ!Q3_UP8wjAt#$9C<-yc!>S zAVa+m2(${>5TN`5int<7_V)Ak`G7`2Gq^swpy#MJ)_B*~@Qb%MH~0ADm%rYKJkv=% z6g^u~5CqpGXM6XCL&mnx>E3;Jt57C~zti+0x{-o0=Km|YCkb^xYx($lIZDmE@AGXt zS7YbrKvP8_BfxSPykTkLL}@=~UrVxQuQ)q#r6IQe>JTY_T#xRvCh@a0<#1>}XFoUg zc&oGHV2ufW69kuN4HRajsuB-ObW8_j5~uaGeYOsjvF^bG*<Uyu8CLC@L)lyct`Euz zPDYYYc35(4zhO19D`&eOSpSn=eK$<PRd#y|`0;{JkIY7xQGQN$lA<(u7>cJL?(Fux z2M*(%dDl3t@ad6kkAjGO4(wx4ZJ}*aosmiKmnKKJs~MdMb9`HS<*;#dWnbf4JzPpu z^a2)vOw95yEF?EfDO6~pN-?y-J^Q@<$%NeZ?{BXzA1*R7=tOe5890wl5ojQvUZS~) zB;YxI>ptJN*2e9Pl1T>;5(cE2^BDYMCE1ql*!CXLah-)x(=sa}xFAaKsX}cooCM9b zb8@yr3yj;VDxmyO0Sc;Y{rb@2-`9fLvidt)A#J6c<sj`v`9>o3#uP%znblt1XDtqt z{wH-HdIlhEt78Iq>=@LsE;~?1H*=>qK{E>JD-w{v;y4_n67@7DXqzYMORtMtY-B^w zP?lue0z_g1c#cRi|D!t|3Z<2j&3#WTFC#-3?8xbF((f<J2LT-=RFx5X&^a^|bg1OZ z?3I1KWvCe!yq&TQr643AwS_7a7IF9X9xjleYV=N4Lvp(RjCTFe6p$)$MFU2?1X z`KQ(OAOB!|?9V@SfBxI2|NF}t>&$~_adJl+J}iRGXeFo{@Z*3diGub)8c+}&q87YV z;>P^E7MgZ`?eDnzGZJEHn)-eo@>|`OS{<FELhz7=1DNAi!fx^&5G`=(kgJAF*tU`- zoOvr3+qZNckTe%}TH$#RG86)CwDV2r_SG?4_qD?RzyVv&;US(yfIFB}9Mm!m4n$R> zhsS){=Ek$LZ?9{g*5QLBs?hqhU<(<XP1byCbBP5o;MyyvBrwITg#l0ibw22!=HeHB z1l9+}aZz~sZySEteSV9ogM+*n9om@E5Z=2LTdCd=Oa7arvW?BE2K)dqqj#XH$f!ch zLU>=gD)I9=kzJP~|9W#-+U=lSg0`OlTlyk$onV?npPYSR$ZBlNgUIm{DE&j*7v3h; zVqh8fH}AwSH_*m_&oYGlQu;}-t?O&UjW_o!%y@YgZ67F3NC529Gu4*@BAzAJnrAsb z(%1iNH=4|qw$&WUvv#+|l*qFPGnE;jWvU!dQH@z{FFPG6Fj@PX=jZM>c@%6I4u|xG z-8ujHnEY2KPCofEsth#=3?bhkxGcDp%~+Pa%!+h}V1j?k=-yZa@R9+979mbdnvdoT z#uz%*04TRvGyp(2gny~Mrb9X{QT7@@A7Ra#g`8>0+p`LCF9aBrAg7^p6x!qS`)>z& zJ^A*ul@|m}k<+Be8*~TAFHVx?-LhHjy3Whl`lau^U55~*dO)T~1%$Q}O*^(FZ=aX) z-kS<Iygj&?=^R7hp^z`GdQ)8mx1?HlWOMgMLS<^4<zR57%dKbHt-WT(`-?p%YW-J3 zR87Vq!P_@VOY@6WlhDcoe~}Tqu^W7uoY4n74l>NA+&3|#e%)8slM5EhcI$a#|LoXF zt&;403`I0_peM9Z6qxTG>URCdj4G{GXSl+e$c-y<!%A+YV2>ZMcPRO%A6ZzH1nMGF zu#(NiPn@cc0;}q^!;98+Lhf;!>R7Cb9yp7yJv;k{RQQQqQGc>~A)TUP)=iQuk&dKl zz<n}T>o>-Ud!v0<f8?PIj!^>+rcNX^zJ`0rlct|IBy%-H%`XyB3TWIzRhpJ&@<@+7 zalU?N?zw}`K0alrJ{csC*QtSpsmGBsSqrw=ZG_<3s8$YACZRqEiZq{!bBqr=QN6mK zsS{l#lDPuH<}Bxn_m|dTA<0kDhq@#9@`_64e*3nj0K2%kx`J<Ckbu~F4|j&#_ce&W z^Yg#*-yco2`$or?h1>9+nvojRV9loOF2&Bu8*9Wj`U_vSb>Gv&Y~KDo2GtLD--&5= zon7&pxH;CbskiL(6JGa+I;+%vq*9%a)OIlg_||>()laPJze6rh((5mjM*dy4E2OH| z0++kM^t+LzlMM%7IcFR+?^5C{B{740+)+2WSd9(8e0BF8IwOCuFlMTosd<81I#1|c z-YW*ywhUZFUpd->pZIL+8>yII1^g(aj+fU2N3BQ8=hBPMq{J`;s>PPsx@-4F5D^q% zI_@O3d!QENPJ?x)vL?SY7=C40MuiS^YN!{{R2z2mY5fqtoi33Oim#e!65&u%1Vk3u z_i~_uDAmp7=bD@^KWQd?b2N->gHTkOubO*%`#@$%PRNY-s-{}g1i*qchCM$&?n>?+ zB9=$3jbw;+!OzY*n;O`YsAy;+`JS`0hN;kMUIg6j?Y8uJ_b<wX*pPs%<Q4y5A~3HJ zlRT{82oqjox6E?!$!EiV`q|hVAu=zuY$%vo0;z71>Rh7n8^665uZh0B{sHRg)P_)Q z_#3lHt5Iy2irPM(K4hX%+pAyvi=0rOfBMIN>zK%0<EIFs$}0ez!?fnpMXE7=M(qUm zLw;Q>6!7bhS65=CT>q87?AAYxWpI22JtSRPjGAt3Kw5DE2=`!$fL$b#G<s|2u2g2k zP%kB<mB5dZ(1Knn!GL2EHI@s<-@q+-P5UiTl~D6e6)VtA6$@aawr5q;7lQTEg!e+v zM)HC_<jFt*7fe$e?W0e>dnW<YjXwS9!>#pjLIB5->!3QngoLE@0~)=A3Vk3Kjyk*T zsozoJ0|R}+@|~5P$Q6vI13>@IlcqC^U)?|m^WIL$_6%9WGOS2T2{;?u3IG@r2KfLy z5=Ac9bYP+E^ZqTnw{P>Ygt=dci!nEhdCT@m7D2g{CaPP?IiwBv1xTYQjv`AZ25#s2 zzvT3*a8PS?@Fv*#fW}@Ev#W1t*nQJ1nV5L8WMKKI5AwXgNM8j`g?h>4`m-*XjjoM4 zfnV0a9o@|wkUXsU030}Wkjmon+1Vr!fTR(b47i@8wFOx~Ize0WTyoQOJ$kZTxLhNJ z?X%wqmS0|gMHj<OO;%Xums|>2RTUGXigYO0p8A?-&<?cJR<w*(ZjO$8fFZ5NFOAcZ z2n<I`xmzA^Wbn&Pkf)BiF|F`pRhMUHE^@-G+`k!P1!><aCMy5nV<_XHvjn8baYZYR z#F?m(Q}YwgwS;%Wklx6nD^K#TUS#6P2YAJ!4RwY>U|?jX`mkbGueqr)Z*PU6tof}z z_O=&MTvP5@&|Qr-7bGre2o5E*t3{nGK%Eg<tFG%aQLIc_^ohtcrK#UZx)6WNX5_X- zZOxczD=K{LX&y&`;Oy!#&x~#MIJbUns&<{u2Ph^@8reEB;BcV`gsg{LpN6~AQZ^LN zsfXqdSvxh*1N@)ty1cTiAUkK_gwu#I*%*=SjK&bdc{tgINHP>#<lgOEKdWZ9b98>b z+vxnJ{Mjs7fW&)_1!$Z-(fCaL&XsQtX89_6O2Cj>K-7U^g#{{SiBifVJrHo@Zt82# zxK4KBTh}XWDs@V#uB63X=+Vl=b4P%?3$QK7;@c}AiE@?#W1_rUlDOp1rTDnM)^Z0( zK7fF}#UjkOHDru!B=(aZisJG1(v;swTy|DtNkH0#Z~dtETfLZE<PsW;6>BvQVSEyp z3T$Q=LGIGbsE!?ou7ihr3i4vv69CV~p<4WFO$cuvF<13GU)&iw^W0+)Fym3FWv)}w zQZStw)KZ;YYHvF7-2WX~)$4~<q7!z0XF_mD-a>CeqX_7#ptf~TTo*8(j;VZvYrNS? zSwRdFl)cU=si`tF+0H1F@~t6M=NCnFc+^Dtv4YkDx<cup*}Y*#FczE@^w!z$tXRBP zo@0x_^eCvti^|63$f3~w26%yiWF!?Ho6Y5!+1pd4S>->*H3@w(%!Z!Iz^R9U^+tqi z(nVM~EFc`uKIEoOkqQ4D|N0M`FPj-<7eK^Al;3@b?{yy1TGMUV5G1BF@6G`#M1?PB zk_#IiWEsa{$E4d+N*c3G`B39r;5lYBbTU#zIV;)^YWM@GZT#kw?hP~3w0<#H1_L)Q z7?c*a#KoU~`k#x|+TFAwqdRCLxj4qVsT>E8NQr3dOXWuyNW!Eh5IN0&`=-?5@zzD@ zplO7Iml|7LNW&(_F>=C@&L3b~>RM538-t+=%K#rE0j}3m*Q=LTPK-&VQjtLw-nTrb z{UiWaiKi@8Dyv7b<UH|`kLNu3i^XhcTL{HDOk_|RS%)A&3mAlmBiJiP)jA8NIP^LS zb~Z5(Kw!nVGq{l9(kn47N#i6$5%~EtdQvMj>w+m!v3gRelLctbs5L%-6DZ{*%I5wr zV1&cVCA&p}APOrfc!B+tWQ{Ao69|C4=crP4{1rIvsV`})&Z(cmx(5?vK-3tP<q!}| z_lD=3nYx~@IsA`e#gS}pq6?H_dISvsNl`07{L*?4Z46=+qf7HhA8@GV{Di|3Y9$|K z&>SzpLi15U8h=kL8V3a=R~-kDWO@;iFp#QZTdy^|X=a)F_P}1BmC_p+z%M;xj31>n z`9>RuSz;BBepar04T_k`LxbE|TVwF;dxUQ!e*ct=EWLutjQE02({yND>6=wqkU~uu zavWDgd0qP3EjE^)Zp05c9^Fju<7j|Xz*zw{u?S5l2#iL!pQ>8a3+eS%708T%azdIs zZmLBWnW!_qSEFUN*h^X$W3!QTc6XP3NZe8ka({MB?69E17O;T0=q$=M{b`d{3xw>E ztkqxnf$MtTn|4Z-t2iZP3TGT#tWqV_kkA|~Q@cO<^G}tsAO579YP@WmZi6)Uq|IMR z)hIC8p#bhxi%uP^7sVdU#1#ET6n5t}chbpZt1eDkV1%921jr(zXrP!S8qgMK*q3Ai zG=9{;@vmoYsoOuZ@w*LRr{bt8cn7b@#ly{o^)|)q2iT_J5r`?@(t#})?%uKJJnqJ^ z6bJJyDDEDCi8Wo5Tvfcu2x&rwMKN;U!Fu4O?C_MdH~p7lSkR@D1xL)Do3W9a#c7|8 za<@yomo6#&GNa>8j;j$vLP~JrsfItP$e&BYbR&m|vFDj2jFXHSDmF|=FtmHa%x>9y z*wUq3>3(fqaF~W!EpeT|;u1wbGYbjIrr?U91eXf`y%oXgp)NR|wl$<ro6(Z^85<dd zt3q@2bm)Gj{d~0Wq=zKArX=^+;rti66biLpj-TAD=s<*9)AeY_<SM7HO@#z744M#{ zI5{g}?QK#a&9Ikl?FDkUJbs6xT>~Q0geq2W<uo6VHUI<y+@;qO#oItHH|N+?iKXBb z(8xy7SV<Qp)g0(%DM#k#U;M!>$qOt=SfJKjlydi~)e+v^H@*ajb_4ubQ#op(ObaHg z=HQNCxpor2&1*fca3PU<($MhYjAt`z`@*F*7=th)NKEOxA-YfbF);_C9`m!ZS_kc> z_feFEmTcA>$WS2l&n+t@^gec0mO$KIPN~6BHF=$hNnzrpt)KDfY!rkQNQ76DiD|@j z!L<0w|G2i?AP*Q81wC5vsDnK6{fKZ^yWb|uf=3IWiS8%TY!!aLik9LWaC;O$Hwz<2 z#!<bLjXJM)?*T>7#9|@g0BjNhf-Dqn=WxpAil8Z83h4!y!@N%EmjHOy6hWVEg1-Eu z`|QmpO~q(@-Mznup=%1F$;iYYF(B{o5^SE%JWW0H_2)k6gHz_IPDo79y-Cm~FC_Qb ztkwdZcT&F&o&}hRDzF|URWq`CUV>lO%+7Ihp!0UiNvGN7F5sCLT5Xz>1ABg1)7<!? z0~h*f<IKlhfo_Nmk1ti)Ck97MhStY)K7JW7xQ(D6X9b$4ERHF-INXz_w|e=#(l0`A zmmc*EKE&MEDJ%1Phq>&6wm-ggQ!@xWXSy0`2ee18!px&zNaRj?8^3z0bTze+g|6^Q zf*_>QbA7t{Wv=XG#JmkRZh}xxnkkPJIfkGtVDU9N2?&vY6gz46e3PX27no7oF?tW= zlgFVPd&D-#ER4tK_l*XgO0|eDU^nuTyh)mQp`XCBK_ABma_58dCNFI^?7}NAo@+w& z-F0yVD(Kghz2uwUl5*k6rt&$Qe4sJX1j^-<zgw@$E>E|IeBG&O0G8QVXe_vxhW1&s zA%*0((&sz7{+Yl3D1Y?6ZL67l5-RAh>3t5%tBI0sIAPM~Q)wL`7AJCX$Z^k7oW}l< zNF^l7P?11h2-WcARe1+h9lc}u<Kg1!^7<DcYEd*i#CoG0RwSji?AZBVIcm^iQWLdn zusq$Yo^O^#IPEO6wlg!GP%{`vKXx5dQ7HTdJAdt{v%N&4``t?U#iF`5yINORRb0`4 z+wu-x)*O}MWW*HFNu6ctOOHX+?bcmSJxL#Jl0q;;PLMlFf;I4RfNVriGef6^FvZau zx$mi00j%#6YE>~kHc3&@t<(j;EZd)`tb~&}NQA7cgd7xM9o%#LNwNpyQZRU%K-Yc= zUyf9%(!Pm8lLe8>k5}sZ^`}7@XD|^$prdk?mkx6OlyR;>l!ZRLQH1lM3<XVrkJHz^ z;iv+&Aj8{aup7lad4jjT+ft|qDg{dA)rFMvE3;MZ2hbO;1nLjcqJ%I?DtCm(rY_&E zF+?xTB5(Z@=}fn{0CQ6?3OPhx(TxDE(lSyp5$W{>qc3evHX(sklTufuR?ub8wil|Y zigccUw5hmThI(~!`f{hE>%($5+)BSAKcYFYG$DaQCxOqz`K%wu_pUzsys*%TqCtlT zd@K-a#?{fk%!S>Zr+h}oXSaJvcTT#<L$x1M<wK*4jp;b<kskRxYYvt1B+L?r=-IqV z6&R?Nx`mY#?$BtBqPen4$t>ck_wIO_soV2he`)%%1D2k`HG=1?c`WGaNVCeI@Pagi z(*+aEUD^$lsy&q5H#T<Fi|P=uIb$d1=<)jforQlAu9KEoCN46XYXqQ~-6hw&s>Y;D zlcs$v6D7t-Q@l%cI9$~+XAKA>>iLC4EGu`*!bdO{lUBK$)*YTTAEXeSU7$9HGzs?I z4bR#~E-}LRKI?AT;`E2?7b7}o1&mfEIB9+l(+@J(yo8jG{y@l}@S8LjKXyT!o!)Ek zcg(7!5B`^*f>*Z9o|?ELWDma@sPj9Z*d?~Yvo~W<>Bwgw1R0i>R*9jEtb*|#NZ!bO zN3|aoP1iHVntj0}Hp|TnB|6b*NL#r$jC0Pg(HUA`i@!_}*og;EvM|gt2#oO&HQhKi zT4MH_d&*|#OK8Oy!tPt-DLi(u!VB%}uiv%NYHj2~zZe{CST}_(BreJ-qDPe>c-gqN zANgUrMA<x>AJ;V8qZ?_U%OZ!d4ThYGwGkbBe5GrpV#;2hXonYN^xH)Rrlt0z6ZOk! zhc{hkzu<UpoT`5E=D8c+o#K<`cfiUPccAuxcG7DH7@;3kz@FB$xSRgGy$9JgvlI4y z$)f8pjMGBlhz|=B7B;h^sR5q6sv?uqKf;g(*rS$X5gch|I$8;?)$;)r8(MnqR#YRT zCJQao=5S)>DmFZy-nB`pDo7}3_JE_hrefpJX_yy_np(Pf$ygaik;T%*snThln@q8o z41ZR!&MeACqNd?IPv3J*63&S%$`yHN%vBX+(07$2EwI_>EACcIE}rnapWU{t%WfcM z_6?2Rvm)2@@WPvE@OwLZ&4oIkHk)dD=!K=R8sTU*--UFdd){7i(-PTgiRs|k<T*Fl zRgP{`F!uX2>yy@dK3k@n0~sV?4@-<RnPQ1*?JJyz_m6`++4l>0xl{Q05>fcAf}Gmt z6U{K2{&6tq#Q4+X)Bu8pk)_?=(LZi_kr(K|)AVTzg;_50@~i;dUW8bFRME`$X`B9v z{Y7<lHJ+py*hoh<>9?3g@Qs936s4F!C+o;|f+>Anz1JdGd<@;l2~tYo9C6^&^j>?3 z6aDhLti^>_26>pIx=7&gZWrg_xLwxf7H9g}0@e96?Vn<r&_UM)CA**Hlztw+S<yk0 z@S+<%<wUFEz^AczK-IYxT`Ntsb_WF;(`P3W#q`{*IJGPf%EsF4<oaSS4geK}8vG{+ zvu<Z0?%Ize*DL(kE29i3DS%Q}g}(~!IZl#mB3~;uGk8MWX{LIM`}Z(|uW{A(H}+<& z0oS$c)i=%ZbCr0sdd<MJXHkd~bNr@R(=u<BW-Cjbglq_XDfHbT4c=pD$!yNrHpQA* z&3O&Hww;xihAB~*f>w}8m_>;Ff_7FrzH~Aj{V&$IDnN~7^k~O_HUPg#^Q>xIweKu< zL|{Q%DhiTPU``&?gp`+yEx5o{`w06YZ78Ft=nkl-RB$y`WmGMxIr~@W6h#^(^HY2? zPDt$;f;kI2MeQrcR$H8uQi0~Qw8|ljOYMOdYgT$O*nj$?Rv0*Pb{`MYKRu)`myjg; zA8~h@k~D1?z+7URhzQ;D?(Q@*)45wkF6WS|+0TNsNJ!GBU?086H;nMO>}S(ovr=B? z%@1cTzWR<cK|-x@s&%PxkwV+){Pv259uo53-ErnA=lZz%vCHX0-lHla{6qN3r1_ba zP(=5J85?yj9JW&4J{krk2q>c>&=tTi81h20sn0Q)^AP=|)nn5VzUZhquF!VRY=qW_ z;Ms(lsE~q3G9WP2z2T{Z_9L9<uDCMK#3)UX6czo~F$fc4Fx?xTd7f9-O&loE%g_4` zZ#5jwVO*&S&c~ceu@mrCPk+@)Exakl-o!GdP)}0HaR+G!ottS4RYZPTL<yw|xvS*h z(t(Aa$H{TFfyJrssF}94S5+llRp7qM2+QNeKPA)l^a_5t;UJyPRX-o6_VmD4h+ebO zOFp%UP5;iG-OSqI?Afs{V?%T(ue>11l*4|^hxb-%!ks{7O<ztG<{EOa6t%)2RsoqC zxp<nKg}C$sWqGXmsy)R}<r-d_1amSh;7favo?;_{3%tdToe|rIs}sO4^lVj9hJJSs ztz*Ql0>T3{d(b*B{9L%O_CQfK3v&oQs8!&HBPsm=;*YY@&<;WKrd%S=ZJ2s;=8%+y z3Ck!{n!FBSlWHZB@)%RGM80<tTSISNQs<gvl*o&uEC|8Beqw6_?MvtZ3@lU%Z7M6j zhS>VJ*2V64-f=zFuA_vRY_fpDeOMAm2Ksc0d}>ds*$5v^s3j|DT16K+sR4=LV0pd? z{RqPV-DryVcp6G8O}Qgg0);L)-nuuOJ`AuC-Y1&t=cAg=@uYpA0)<DuD)7h=ygY*3 zX~hhx*q)ZpNh+<2Na-X`QaUN*Y3x$F7MSr=q|!j*^DxSlN$A2H1sr>?Yz=qkD>o6M zC#8?332sz{VO2#s2Ta4-esnXtH&Jv91}*Rc%2;qAfR{c4QS_{0Xk&3*I<2Xmx}5G= zQ4k6sW2#e+Ep%WjO(28k=d|v<xPH8XhTyL^*MH?NyU~z`L+=*24=<W;N>di-vFlhW znyV@H9Eb1>1M=SHz{J`9F%lQYeonI$t+NvHS0jBsnmLu)sXchSW_I3g$49+9iek#i z3e0*Pa)x@+5osMo@j=t^@zSzRkP$<z3o515L?)<!^gBDe!^OMjwqBzBULfsoq$8ag zNNbrF7;9J34*xEGCDi{eD1UY)$r?-V+-C(2RTO$KRfP#0DaJfIE3ik=I$YdUs+7=J zQn&ZQoZP3*cW*KM1_WT!kTiCbctp7+ocF{`zcU-lIi3!HkFmE0r!QR_4BMTimehc! zl7o6-oW8SPzwyZSVebv%Eb#^YRrw~T%l6A+?_K!eUB?1JusppqGe?m}NkMl-4cyN; z5-*0Qcj1?<X5<BqQ6$2S6H8|uJ*Y;1K4)lwG5Tz@LJL~E;Ebv=gU`pnaiUToJ9tuG z=r#0i*=E^|5*$Yg`{TSIuqj+f%UO1(H^}ZF)l#IRb3C7KQ><dnEma)CDB~x@7^^(u z5PnYP+_~kcGsn}wr3SSzz*B5avMJP7)N<s4)gs(g<q1i(EET}*vvcI0c1pTzxKQEJ z^ghiM9evU;MjJgJ8}7-zdJ<VP;JwXamBl69981c@p-p~f-rG~m$CEMK(tz8CRIehh zYP`&_tDcwP_B4~ZQ$PKyaM?mxL=)DWhBzgNjezA|%Vj&gK#Sr(FNn1^_Ol}8|4mA< zAp2kmPUqQKyhcficVaHnGVxPC^I(Z7t1=+~)5Tm)FX>$2&-`+)Bew-k9{WD*t6AtJ zfK&V9+qrvB!TCNnDLV%=VeYg@yJ<sdts-ipAT5n8?PJ3zjy#h?N|i~l&9Rg19Q13M z#d*PVC5zAISvG{V5kw{dNarvxUQWbi0b%X5#La(ka-IEp`E&MQg7o|Be?EwbZCkMl z+v8XGtT*p}`fzJL`}(uL@V~z|;aSQbNwi!)fcc@^N0m9jP$7XVV+%xSF7Hm8HnRTb z50}?J&nb+J7q_?@{A>)N{q9(AeYX|%v$M`VJ3GsTap~;r8Y;a_#M+L!J2yU^Y3*-k z4}1>|HGg}!c)Tv&n&KCOL-rQF%qUO8tb%DrqgI7_Wb*#mOiGgkT{Ro+eh<X~U_4$G zm$`~)l0h8P_-yxOp25jVNlqXK3-o3qg(Cf{%S-0>*U<Z*9+A%G(ooQ^lBh%SvQxwU zKIgv}uo+8BdOqUm>eQ615bnSHeTQh*2SMAL!>2dLjCxwpqoY-}eiYc==56orovPL? z<D%}}wF$E5Ubo}V&iWes>*X!NMOExuQzgH*>!hfpZCjY(X%&8DD-Cy2@hq>ls;h@` zlz;AdXrc)6Y2ox<#WV5zy1KIwW)FL3)&=Q)!ZczAef^mTo3)HsODuq$a@+`9ljKhB zE`NUeaPiBpoWjItD`MZ3mw2#DXgL(>i_dC6t<Wul$n5N5{H_c*$2MpOYf^8Ujfh16 zqoIK!xY85_B^t|mOB)~AM6CTs|DW4$+L*DwFYa!~pxNa+HT}-ui}+O}Eh?zll-536 z*GD`DHv9u&RMEeH9*bF;DI<~G?7lG93tHwiw)1N{4fYGh9b_+Tjw>q{5=Fhbx+!qJ zFS6_M!p%4vze;Etm+CyvRS{$YY977w$eSOzvi{*zGOeaSD1D#6kfv*(!i$xT6;DZl zu-fh2Ve{HvbRVg!&{RV$nSy2)FZHh6NueTK1ShsDya8*CEjLzcCACvidOqN!JPL5F zb!dC^cEi*=-RousUYQ<yB7$vQnIf$qr6YP(NnzhglIRo6>U`YAnf#$XqRGG5#_wCh zqU-Sx8fQV<nM2DbVQHvALy_WwMG>*L=bzIRCO_eXSyN<V<_G#oeEv~4?XWdl{M&!A zk#TFvhc@VYMR?%C0BB~RA)2n>J_?Eb!cwk49Q1E_RwvIc;#OSP_jKe{<RHp8&rH@J zMn+HHInCOJl$sd((xdi-+PK%zrr#5}N&=Fc5zOy}G!sD0-5E#0{n35-l$93>f&-y7 z^sxj%h6q6FhPmgU9kZhPG8cQ9k~(S@NO=|p(`3kKw9RJ9LS<-EK(DkKC1Woi--e&W zLA46`xZg_qH>&|$#tWAb;Yt0J>huDrc&eg6S{n^-I`Vfrb2Rk+DXSg3^G3Gp*_mso zb$0f{tz^n1HvE%4kRN^Tv+Vve`J=h<{_IRhbRO=q%ZIbGpYA@$jZuD=k-(FW@`%#u zB%(`k=m8b~<`Z}6qumoPuRD&eF7NJZ=H2>m1-+gn09`AP!?4rhD-Z6OT^{THo${=i z)jrNfef9k`OqJ!nPuwWWlf=u32(0d>aVqy<%dm;6h$_}nLAP0z5G*ZCc&~=HoZyRA z80UQtWKi<df_=Q$WI26DA=A@&=C#Eia~9pl959htTOBM}>IMCt`4m5x|EV#H!7rsy z!IVi*L}e<aAG^Yl8*G1uj{<dE35JEf1u3!X8r%QJ-v#-mI6v>CE6&d?j!76UN^^eR zoP0~8eoMW#*R3sA=vjgw|F-d<r+li7sQQ)~E6-AoCOe6ERjbNSKH~X5mEPSK)<}J; z2@~3}hww_4Mcrf8p&nP8l#fyP`KLc$zPq|SKNo-<LGwJnGryjn|H=M&iSu-Gz3?PC zs{6JJh7!<PFNzar$<r`Ma_ps^C)Wo!ezD>^w=A=yEOcU&AJBa#&r8T9UIr9#**C4w z87HtZ1|Y+{g4nD|BeHW@5J{_!CXDs$2ja_^%>}D<YE^rZiP$8V*QnFqfq^@r-75fI zvb}ADX~pk|{bhd#^LVF5#(IdtFe`%u<h}1K<;kGm%3Ny=3``?fZBk!XX|5|>&<AiI zVBo1md_ipG#X|nb1}UtI2qu{lEzJz?4f%W4X>Nnczax8_4Xnn&d|?HFQBVX%VlIjW z-!i1um`{@%{`UphLRZde)Sa*rI<^v2i0O$N=V?_EB<sRTmTkUy%YLPf-hlRsfOK-~ zCA3`9l_z{`dxG|seZ>N+sR<|y;*Se7^$UjM6(y(_FR#KZpo5WtFty#fUEtoD?K=y! z+w@E_u;C|=O-15^rU^>JwNpA~&!lB*-%XlNg*j?~Ahgs`l4nKe0T(JIly_`^;L;&4 z5ZG5|=KqU<`eIF0cTmA17ps5<bA9c*)17VfQJsxhCO8Ykrg`paJ@+(lJ)Z_50cp`R zNW94Nh=}h8En7BU3r;unl7V=zV4DPIN9wH=SdG)p)(YwR9b(t1wVsFAp&FoKEht3y zazE#wJP=~HLh`pFnW0~$KBWE{qIH<bu@`J4^VuL|3%{kCCGNxGOlWfGJORehur^P{ zS$%F;-1={tvRWFzTa0ZV#|2&BlPIDU)e{2VmVV5v8QnU5N6ilmplmSgD^<jPm;_#0 z31VP_bX#Np?si{~`xRp;XGA%Qa?-{HRIcz^cg%X>Zjj=qg$pC=aw5=~sv-ggao`tN zK(u;!QqbAL&!0d4Te*A{aI(bDU^AodR)R^8Xn@a$!pRm+qR7zJNdm!cpx_YAVE-px z=$gT`cfrzr4H^zU%3x4c|Jhf61J%eyi*K}m$A<AEF*;Rwj8Rxt$`=BP_QfcD<-f~5 z<c4C;%j?Sr-}`s@*MHc5w9rX~e|rD;&RobXH21YcB6&fOBs4m~RfbW7c^lqzpwB9n zw!jLO?n!r=P3oDC1bP>#+z)B}S;i3^P*QyDeW7=Uh-sAPKHXOU`vxW`LS$-L>ULk4 z$g;7nFti75oK<M;Hf!N>G?A}Lj5@xygeMDMbRjp^s|zy7e5}bJTKv$$W8n8hL7ONT zvr0-8sYK;bT2?u=0ti{7pQjAi4Z4V}r_+#jW)T>=!hnT-F+jMJY}wT!x<Dno%DuXG z-hUN%&1eO6Zc@;ZC>1-Y6|X<MdwlqGXDsej&g^Oto7aLXQ$2M$9$Pek7hO_NNdnj9 z%5?nBX6K`ki5Wt{1>0!v0O?7a>q1dzRH@-o$@3trK(lqb?;f=#Y417O5FOqF7R;`H z2B&Ko8K1hXOX`}o+`qk}_=%2z<Ug|l9`OvEHAhQ(b!OTYY=+~mcefJ{qsA!q%MfbI z$oC@Piz{07JlUQ&-g>Vc@|Uikz`T#tlL8$_boR?ZtW;D5hxnr#DOmk>F>L1FeO%e- zZgpg%gij~(6W@=C_63@tX7`2}q24UmQtr*;>w>z!$I`|XGrD|<3><eI27460l^(5C zl4f){qz%oh+M_GiVf7w)`qk-f0@3@q0rcR(PDcv13elk58(zvTdAz^;AJgnh!dOz- zvI%3IpLfDoGece!GK!V6V;8YZ)&Y)1_d1K|><nuSwh+g*yg$vL%a%pI{Ca_H&N_O) zISqZwJgCILlc2fXrJ3ny=F?SBpP#!5>X~0yV=K2XhTW$C%#^Qa%9U5=#vHX{R50B@ zXn}ba(12h!Z7$DD<x83S-sxY&bbU){6Gs0BVqiTR&}p`lwnkd5Jl%e#C$XiUkzW@& z0IK}0Reg45t!mkuR(;s0%oZzvwQtVOZ1?c9vp3Sl@Vo2M{3gHl*`v;36L{36t!tDA zsQ72oVf?N)pP>~Zpw9?u5!hS{g5z6vy_iOGd(84CT&nGK`Dvf;XE0CWbCi-)%t*UH z;FSk?Y(BC%+HB~7SNA$QwE>9Dg*(2WV%LkMTcXf0Tx7)kMdpvJ*&3M~pSq<+uzSi& zQ&CuWUu9QNjF5BwnvM!|4A^}nE+@~cBS;W6`YQLr6iy!%M6B1Uf{vXLq-h6ZZ{O$1 zV+UQs7K_QJAf1+R6zl?K^-HF#d&8`RpI|m7^~Y03g-+@VW^r7ZJgdkgXQuM-$-B<t z?{j{DBhk<gD!(hn$axmTbg_nZyi8%w6h@Tp4KHTSS9;phTX0d->!ea1L@59aqk=3e zeQ3d6sFc6v8SjcPG7f+yDtt~qP24i~U{dei@bohNd%R-UNog3bD0En8&r@EOXAxk- zMe&O1O~1kl`B#Zd(CIvY1}pbzwM_gK`(|Ne;;Co37lZH$BR!&nFoK{nHOR#<194IV zfBM_&0;v}eZO}<tRXP0e6%`<!$HKncXv6G$9wn~e(YR7)L7+GT4DBIb?QBeX0IxHG z5Mb)(nTGBw^-K^DOk5s8n3kGdlk|dO1=AmaDp`{EY4ze277o24M3GC;7x3F03#ZYG zS2O0#0w25gme}MNP-Ucpio~f@N^Rcq1mTt0Dcc=2>3vG>MHKXgv<uKV%{DN?ho7=M z@3D3o(a=)aThPx1^CltIIehm?53wekwlsZRA8qrwdOsb8vBX(zn}#Ok&BZ%&XZg^D zQUqj173&zc(?g1yi!-7+-y3u%_{<RmN7B;H4ntUei(jP9<CdW1^+T_H#R6+_HFWuD zLTIh=x<DkA@1*X|yu10;QhtN&i@l;M;t-fwLMFa@!_3<3^D^z5(o=>P`e{(8b`QAG z9IIGhT4T(~)3F5})KpRwr4Dlilut>eQN0^xCUtX^E#0RJ#P;QHgSE<O!ACb(#Dg|R zXi6zAr6F?|=IF1%=2$!IeYQ*-6T}DqNrV(3G8p!~{rLn3@anHz0;yPWa?qPRqAUwu z2^|JS!lC{0Hd68S@(O~-4oS=c5k3BKvUaH!46@lrW7RST83(>MIFs!hV%4T;P(mzT z=7G-gDkU~OcH>c%=#q{3vRK8g&HJX)Oc|G|!U2G^6MVC=W$^Cea>~-3hRV}P)^3x2 zh3+T{;PV<{(UAVzWdxFKk?xqYAP%rPUx=1C=<A+dA80y?lmUEPk(U5I5NaXuDK^Hu zoz_`>F#W}^dgp`AuZkQA4^0$mM}Tqkoj*Ny`=1^Q_PCckDgMvy>a(*BYx>!lWlbOE zEaV)tsIe7HpLL$2^|^fQ<pHI7g|zyGB2c36;*QPA@LCPLM6!K-I9PSn%x!AcEO0I= z-rn5Yo7x?B;K{V4jZg$9bWtgjWyA=FH$C|@y{Mx<zA{zaLcB^65cE-A78K`@;}n38 zz4kf|{?;{Hpbq8(O=*!`w~;2ucZmB3s-Rs{6;{kjd-Y#ia=P8;BVR>HTqqC5i_8c% zY&{k2a~h4ulO5&VKhVtVLbeXx2hlJXkfTH;Sr+S(nEK9&r5*ODQtkzIg2lg4p%)dp z$_q;CvI75R=Npzo|290KNt#9#ygks|Xp@(K|JU+_KIi&cG6I<x%g8WQ1z(d-64MvJ zfFbAS)5Ouyo6I|>t7mj4WvnVlZFycwzc|Qa<=pB-173$hZYO<m?t<#_Hx)Z<{pGvc zD@!%A(*k%_BSQ=gU&eiL4U^2p!`r)?$DiNUCWj=^ND(I<<r)wzd1*m-Y2w}|JUm|M zG?Q;{rrEZ(ujn8BVCZpwU6}iao4b3aJH+S>AU5*ir1YblZL;Hcjy&zo(#F)B)w-fs zG#R414}SDRQ9RyW!T>D)?B%!8_F+4<Ly?O;TY+x^aOsKC|I^*i@F`tC+_zdTsNOxK z?T;e~@%*ZoG6)5MXy%nMCWuwRS?w;(et{(&z-j(?y{IBhG8)vtx){>SF5skI;6+V) zv#-@(@`;iX7@>rQ<FBg7QLOTp4x5md>KU0Nq2eK7MoJ%4As+VeJ)`NFTM-yJo*mos zffTlg@_YlfJ2tW6P+R5$O@Gsp?eU_dq3i9$miPl!h(cv5&Y6xAcstW`_bl=-@N2>d z_z4uzH2$nIEiH3*dL1kMn$io&*idt%>3gqIM`AT;Nv<Tt+4wc8D8tat2zW+VYpEq2 zEQGgnXJEbwUGMa3j<S-iF}=it$r9-FOi+d>a2S_P;uG$)QFKwJ6onK;nrg_%7{qBj znBz|Gq=davBYMtP(FH|Pv`kHnDT5+sg<9je@7K&4&C~NgujF6pgf8()bVmFjPw?Jh zUd_Dj#EyG1r<vemdmSGALvU(!CO~K?d^Ws-0boPuoyxnLTPR&GZm+V!h;L*2RZ=Vu z!Ry&s`98a=&d&ZUe{5Yu<z5nXwP=*Hvv2Ib-bkr@=T3Le<->=wv+pk-9<GeLO<eNk zfA}{l(g4tCh^4D20cuK;wmYmZdObAln9k4bnEF?`13EwN45+!S9nJZ9cQifVmw#6% zb$NeL!ohU~Qjp<!^ay~irlf;7g((%$rOx%{)Vcp~P1D^!-4)+mUz@w;jWUhr=O-ER zm!JH@WWQ_<@lZyf0{NjVfTjP{mogaZLFR!69Nsh9FX@-eCp^(GKXKr*ApEBcHA*Z= zKpilW5ucs)M(pBA_x2A-c-7nuA`i$R{}r(b<)3^Njq1`6f_mR$i${VcY~qDhx+!k# zijmC9=!>6R<mDR}K1kpyN)@%n1fGfjozoj{U$SJDo<yqJDTGm{nP@!A6gXoX<l01* z&qPN0Oao+(_0~C#d($S%%mH_H=A`T0BgOTWU&qmR)DrNkLGu1?3c33+X>?J&Fi{ox z^aV&Vt%EeRQ01;5Io0nrynQ@WL-LkpK6v)|InVy$F=-9|+BW@vu5R+|s#Z8H*Kizd zeSwqx!dzXQo&Cr4eO8&T`Flr%=Rbg^>O~ewwW&|@IS@g;7t}agdHVVJ=ILw4?+mX| zg_&jvkQ<+N*8zRBmMBbXlN>gu9phzI8D?=9lk<uby2qO+;81kR@CZXVfsV^6&&$); zD>EwhG=YqEgUSi+`Ms6x2uNSK9<n3qT@h+8C^Uo;iOGDwz=7<&x{)5YhE`o2VM6Vi zx{cD&NA&hf;xt!bR74OHF)1>X6OJI#_S~vx5i%jD^3f_4fBW<0-Ks;&mpoNc1fJ*T z#-@q73kr{OSJiZs+15+lA)=}OQ4x+kFo1-l?r>G=HGo7#hJ1cr@i&ItnODS!jj-gc z*0lK%lSaPTy*@`Oih|rpqBQ37))_YT`tD;odv-*TWS;R<8HAw@;cv}kr*15>{&KgL z*UmR~UOB5Kf)K__fcvagK;IKSt*0h>GrILjM>cfO<5i`+QUUh}d=da%nIVxfT)j~{ zXH0s#18+`2Oq0ONOqglx-ZYFVLukGCivHAh_xkj#bR@2`lNC`*zcfjh<TN`BYSaI~ z=OfYawnR7Pq!d=1ojG2+c7IjXCE%}%`-i);v#;Mg++q25rh^WkC0&AY4F$G|#RKS1 z#|~(geeU^r{alBRZx8<<?LDg<5&pdO!R!jvyDdwqxXPgHDEYon$|rlj>kJe3i|6O| z7dyf}vcCujCK<jBDx?T1NlGo;U;TG<UNXC*V!&>NZ~QFK0p-ew@ul@b?3V36^7sd- zB5*=M4lRE|;N>!R-8~d->)q)+w6!$#@`OcIW_e(A9%e9nY$?Oq2ppb}{VyNiCxJF0 z5HGY5rL(1nCX|(*+9#7woYnQ>jJ><P=fC;YjV+TqJL^iHra`!&*$X7VzE4HWsPxq) z9FI9aZyvKq7KLHBf?2GPHfmZh91CS}?v0BjQ`XIgD}<u)v<wlBj%3cg;P`S1Ad3k$ zpw<02No#aat1VXQ`q?F|r558s#Rk(Mj9G$Qy2*5plPMXSo0V}HR&?~#5wJYJtddL! z5$9xh+4G}2bN_htpwb`hpQ1f~`t0k^zL9T>iKbncJBfc#c1YhNpPF;RTvP(s?zD2P zc7^Jld6j**d88`zd;4coi#K}lo4dQ4yVkwyz=qGyf4cj?Xw2QO#@_T7Xe8Sk?=o`w z;vZJ@QM!M7@$=oy`(D{lM`E3S6*-?Vl{+s4a>M5k&yy1qOn@g!fthTtT7h(pp=t$I z|KT39ZK~Fn|8&Kk&%kKN%!Tqe-op!wA8Pgm4X5)8(U1%B3O6?Q-<X3+ew$yY6paES zr6CE-z|zoyv{AAP7b+&V108e}Dsb&uZ!HuG?EL)t=KA9LQJmMm-dz8czkKnZkI8>Q zMC;CBI~ZbdGN$Frv~-EoKkX7J?Izh-6;28v7wt*mw=$R8Gj7>Pfs#l8!{x)-*|&E$ z@A$>b@-ed>{?sGg&*|{>tGVOXzPqmY(#!nHGy-p5Cw6&I@kp9<xo5I2d5no4S1R^t z(~Q4B-k^KOeBo_9x%IRz7WKIsI|}0Z@tr?tWY#jXDh(+9uDZH;FE!f`g^NsPbe9G| z<k2Jz!-Xv4;GS0Gg4su_;;kuu5pa@yEWs^B)B@u=0-kBQ5W=|Lv?!VEJ#n2z$^1#? zTiLyGk-fXQdw`BwMo6s8%QO0|K{cNh;*#0j+1~O6Z@lvfF4N=Td;a_5&HGmP>PfES zMD3?c;UD$QFBdnW-~#x%3p9985=pOwn$uo!EFtaF=axj&RA*U=cel~I?6-^j15c-K zToAyAn1DZmK_7kNE;Wy@uK)Oln%&C%`EQ^8?=S1!$b(>!zAKH`)cqF({1~7WfWo(a z7E@;%a^{8fn($dweqM8&w6hTKtor^u*BRckCI(Qd+~PZ|&i=%y?)Fz|9qJT&<SwF$ zZcQdwU*(al#*R**!Sjvuw{Vwce_dyHcbUwJjx{zVxGvgF6tGqSu$3z#%iH<vS()sK z`@2U`^(HE#h}=EqvW`kYCw9f1d)l!s6nFR7P#0bW8$}2`D7;F7k*~Ky{m4eOyYp&7 z^oz$kp-}*NkNC@!1Z5gv{g#k-<wYfVhW;%hbJGgvK=kXpL1gm=u_G6r(v0nqzgyXI zILo$;a_FFow+xwGQ$|IIXP^?md3d1i(y?@+UHc`oi6?xU739h;tZvRfJQ%@C5^W2K zSb8Dc8C9C0m`3hfF|Y06J*(E@dl;=bY-LS7dOrq)bIGv~FvaYzuO0N#@GW`OD<g-L zSW3J{XK_&k34RkTX7iZM*uO;teaSp-E94NcNJ*#fGSe|YIlf?CA-^&I{b+!!PKjn? z(~K#XRyzQ?*HP%JEK-oY<Y?qk?a;hyshD&YMvii7r2^?{q>~DrIk7O!J7&IT$;3_w zC^?~o%n)hwka&@3s09Lgq#<pubr8|BnyJ^=I#pF{uk{~ow1Iff`T5Pg1bjH1?p?%Z zjveIRW+u;iXS2fKK?WaCAHeyHlnaT26NY^Uvs79nyf&s(3|+4ikPc;rAr%QX$;f?Q z>^r)dsahasJqa(OjC=#_MZ>fZtDuqa=Na0Fu}6g1BQi|^p2|wtLbi0voVe9T-r(e0 zq+Y5xg4DYNNFT&GgldgMO~39?nTaZhnnU{jmh`qre8CxS%hoI`X7Y2_Nkzs{P0k@P z3SM&pQ5&h4{`kX0a%9~TpOR}oQJEJRHul82Q{eTBa86<Af7Sf;&4+jS&DG3+cB>PZ zgyVpwpRp!xt3%vur%vqmPrvg}3D7ynM7AT1K!Swg+!+a&9>mOtuM-2zVtSI1;`UO8 zBRPsjIqaB*!$vS73o!2in<PzZViQzZ6OP$9e1EJFOvTN+cQ@B0;7tDbGyeO{4^_pW zYd`1nPseWilkHn_-@Eg$!^qDQC_)W}Iw6`+aJuzjH1_&KM!8hpIvO7+SVSoY7DWN& zQHfvDEb3Fv;Q~RNI$1Sgu&g4#Tb9hRG#?z(k}vIJw(TgI*1*aS@rLi=nG12sz-F$6 z#Ub2WFyq@x0r(Nw`u67TUG^}u&vvUgQVpO-{LuHSD6}azC#1VyyNA?y(h!gXrJ~SE zs>e4{xBGQ7UwMESfo4P30typmzQpHv9}}aKk8WEo1P=v5y-Z6#1P;m3GmwivbfR0; z<8|S9?7q7e5h=f|f6zy=?GN0Xnf%=%1_4JI=Y^M*1Vb{(XE_mj(l6LUT8pHj(gOZ& zT#A6z*huS>j(leB4-kCCNvfpZC@r(JACYnx6a3foq1$^X^i7apMjLR3IljZz9-7<N zN7_1{e`*7^o9=!4I3ZCU5^IiVus{^nm;BIfC4J=a@3DWV6;+|uNelt75At@ie_qDC zAFz8s`4griYaII8P~|ngdtT3HZttDKQ)#IU$^jKoNrG^2{#fJx+K|PSgXsMH4NwO2 z@F)I0qp)@#7Le;_3a<xJ4Wiou0dk@~{klCQGvc(*2<RyqP!ZJYNaplwX1?kGK>{~S z$`I5^3Fb5vyvdjvKG~?Y*BuCKlwgyFly8dbJHGC%+j(&Z67Al4+GOR<&ufwY{*vJS z-G`YuTObLkk9B6k%7A>#6Q-sk2@40XR5rj%4O1*tMhLNjR~Vlc4lzQB{aaiFX5lzy zCSrl`bo{nZS5%ee1(9xyX-WJyew&q%CmGI^OIAj-6|1Ts^h%%!t`>SLDEfrcHWEP~ zppzTMpO}!zOSdh8Ki28hMYH+u+3hXK*2AI%9{wwkV$!2nDJE)TOnZ%Fsl0b23L}?T zKm;HpC6z82?M9;Z8o^<bJ|$XS5yjNSkQ7fzeH0UF@;L^)twF0QHgNA#UK(c}4$qbb zoh(;bn0f0g9+BzT2T@T;|1J7PY!>g(myB$lB+hbQ(V;lk3H{2qKdj@Cg0uOL>&u5D z8KH++&mbO!wiC=$CgluldUueVZn#Ug;gq<;gsv*e`{{QSWH678TLq^Z|6!ZBBcI9- zOe&xjOgZom9r=8zgCCLmJOc(81!SKT5C*XX2BvW5TV8e~MpG$P6&`$eB~;DQb#-ee zocse0-5cZqt32|6xaLqa#q8!Wi}{5t$vWe%NJ5&o<l4`xfEw*iQ2r%+PB(h^NvG=D zo?6!K4<$&g{O*m^(DVz|-9Ig&&y(9-T|2N8fFm(IJ98SB5Rh^#Q_bb(7;#Sqx-%#& zmmw(6v$bP(Bu!y`cPLx6^P8b`;Y_{Xmk}CDRerR8j*ObGjT8iHl@B^3(nMwiJ+qk& zFmUpO$UQ&>^3RLMgkIhb+lHr=Q+Y*pxe76I`2F4;&4<em&(FJGv#Ri(#$1od|NW_| z8(&QgPXNX;I#$DIvMOPPaf*47Mx@&6YeyQ9)dEl3&M)XS>f;;Z!jIt|HGWRBEzphV zb--9e&K*LJvSK$%<pj%t;w-4xrV5b?xC@M+iUq0Kf@!<L<bJ27ZUFcxCDN9=;XC=e z{Mu)aItNPssLKsg!`4Vi)8$3##igu?szI~rsmBG&0fT1ZD2*X@lEvbPR-kV;=yPp9 z)!i6}c0ac4m7V#kXQG{i?__7$d8+`%Kl<KqTH03w2M8&eqk<)Y-Zfy&?6YhMxV!+c z(Jc`PyFlmX?E=-AU%Q?z@?Zz*JGf&z#KB@HUEJK(FhP4i->ywX$`QUlHb+4z3&&6Y zo<?jIsD7X<t{T8V4Z^dNBF|x3(n$nf6reQ6^X7Vg<E>2uE*VYq{_^4NMSGgsA*En1 zs7et2Yw(GJ+8o|=jBy2&YN%)n@;x>n>e@=`TQWaS0~`|KQ=)L~JlUuC?NbCa9`r`b z6w{J5!exr!f`Fz=<8AluSnx4UC%mevgerl<E5QAM?p;8p!>WWjCBY&%J_UO|u!-!U zvqsWdWQF_Hx+tXgIQug@hwhY&u1t<kX-$XZ@%sMqXVRA}6pl|42Eh1eSP#)Jo<no7 zzeanXiJdXnmk&;A-<@}Ebc{z;C?1oROrW7Uln6xkhU1T^o);BSlyQ+?KHOj2R1^t3 z2!fZ&N2P*Nv@rCGQbjksX=8<S=Qns%fZ5)LUP@bp*mxzquF8ne{;bVnC+6bO&BTR! zL{NZ}_T=2uA=IF#h3;&~O-GxNx(=t|w@EBc-RkhTz9fMBXi(bX4x6@yr#++{1&N$6 z%}K*p<@5;!3@+<TQq<%=rI8>GOKFYW*DqUID!hHX7kqnOQc8%o?iaM4jKyM-3;k(W zvzIpSod=L_fZbk^WnL9fVC+%$EAg57+A#((uA;FR8(4W25Eu$lYRS?PYZ#H(F>!Ps zzrTRjrG~$IR9_H-q&_+iN!!Zd*IqvC1FWzJQ;~jucWE~eU@V0%Uz8pcB}Gn>$zECT znlC>YfN$pa&X&Co#v}p(gDIB=sVO<W+{URrg8m5h)@`-D@9(hp6ZdYb6oMcHxKC9f zMsb`*Oi6R`NMoAUw=g{8dc4266Wt%;{}xq*d6|(E6U=9O^+^V!lzrcg1r0JDD%CP7 z%rZ*a3xc1`c--};8PS#?ag4*029pEf@QCu%X1z`#NECg}%6TnFRFl$mfvSK&QQjR0 zs7#QBPLQJTnP!SZPGiaEQI5r)N?SuWpp(p0xNN2ZO2OYI5K3c&QiG#BvKxR1+`t0= zL^DOOqQfOP6PgLBnwE`7mxU7OQ^k2$CZSZ4%Y|li?qSawjcEo-(H=S4Ai^>5bnMlK z&s3blcP5RLHeWoLyLXq@nXu<KE*`N(F9ft!#fhg#t<>u>dV4b$vT_FmXzcb%m35f= zF$2a&2{Qk6)v%49oOP-DIMlewRyo67B>$2EbN6dasd;jHbAKrqK@q${B@}=r8Uv1+ zM2_0#qV=PD_Ig)hD4-Wt`G0xzc@{w!DX8B}`8r|S$(d^~z%^CXP~;H|5%ZwSnOhHe zRw7@O%LXA+Sw%VUgUF}u1UtbND`IZh^7X#h!8ipB=T8sN>EsaP{XM&SH2pjJtN6_( zB-`9JHFF#IT2Ct0dUjFk*8!Z0(*Q2X*dswI>F!zQ!?|Jits7==eA2jt`X$QaND@j` zXVy0~UvrGz_(bt!eSdp(DK*ksd4X1F9O$Xju*3kfSDH_nTA<nKb5_;k<+Z#3P?dNG zI--h3QB2qzH(YIA@`~myy#M7=xJg67k>_yQDkytw&kniJe9+viy)I^n0+uvN$k7MV zO-u;9W)#A}&unJnz~x=93tC@Er1XTf<tfXLwv0Rln1vRmZEg8u6pqEDz9g7*`7qcz zq5O<^i@E-pFeqVxi(f^NB4ZJDc1{qA0{$w7e@~iR^lv)S3=ggB!H@#K9TMdl6_MzK zd|8sEk_Bys)ZBE;Aw_;SwdSg;;8U^HC)?=`*dxx){+7YhkzIZB-x6H$&3`kEah$<! zn_^Akc$ZQ#j8wd`U6>~@VdQvSVUQ-0K%d!#gJbzv3o<6qV?P@eCf{r1q>kq`GA=eD z;26ps6OEO{@iTVgvA$t+>*?l=Nh{{54;2GauAnNRpA#E<aL>^OM5yroA(Jjq&c=;g zps^+-wZ@Nht*vhou67as<-)J>3Z?>x;7tsS-@}#4^8C*H`blfHy}32TWpxQT6ju6R zf~d}xn|*)$Zr>BT{1Q@&3p>Pi{<KjM@Gw7zRw@H$OuB63MtPYHlI^6w3A3WmNPm?C zUQ9rwp})DD(zES&tx-DoDy!at%{SS5#LxNhv#&pMg_xo}l<y)f?N_B$9K%Qi?mjf& zb2$sUHylYMn$vExKx3m<N&AIv;A7)0^BiDh5(5ZK$nmkaPB7ll?Y>}g)nl1GWbNE0 zQB`n+QmBVj1-OB{%jWvAr?zkUyVGuLLI-2?piHGIxq`(gCn-Zj=lEmXcRB;}+wC2M zXzhf0aEAb@hZxVV2#b+z>D}>MQ@S-yl5Ji>%{ifa4U-DlgHw!i&uLA7%rqwz20z9F zq`9W@X>Ta2UtfHJx!k>>(yry0X(=s@GI(RqnJM0Gd-Vi^eO<PcpV4hG3B#OTNQ6K+ zoBFm?1Ltsst&T_di$C<j5bjhY^kGlOOM7yH74F?LAF6P<q2**@_m4T2YzCu?f}pLS z=UYGr>^@l-_p~SKLb5RTSj|MFkUyZ>6zO_&Z}-D&|H>}3%zeEIdN&Dnh!Mi?8Y6lH z`7&5b1WHo#eEF_Fhy%WinKfU(y}T-68(VJLKvxA2#=u<(b1ieyANJtXtSuSkcSo)K zw<P<D`ppbKslfSoK^R4Z{E`GayL&@ByHoZGP0S#?f`;)e)m7Ay(PJViQ_L=W4tJ?x zTkSFR<qvlT1d+6_70S!f{AjA(H#XhQes~XZ0jpul6msj-m(mttJw1TtxzgY4hr70a zq0^uivH?BI&D9mHUojZ(wH>|mQ}xwXKk*?{r-(`N7i_7&iy2i*2BuqXvaAA)9n)rq zWEK+h#nMr8-~0e<ySX^prxWpa@5lx-S~udaKl|y!t&xF;znBlUqb&&~1Pnf<9F}l} z&np)e54}dYbfygE<nD@3Ot=-`srioXO?Fq%YP^qiv$u=C&@K;T&+@LbGm);dv(Ef{ zbpyrid;785-)`++o8`FRV}Xe|1YRDOQJ6-tDSS|9;{HoKesjxmskM`Sa;dd1m=~NU znMviA%XX+nJJ8XHZe0+5M-p^(lzXzA_WJ9cLps77SsZuDv)em#AL}VAkzOmo&AiJN zVBS4HA$$^X$|YJFT1eTFop-r@vUzWG*Gcni;kEfq4q#x0o(DdQ(!L5*zr)D(A-gVZ zN15p@89Nep1~Wubcc_PNn!kz$-=JexXZ@PdfTAlQxTK2+Y`#pobhiHOp{CxndC&86 z84e8c{8v<Jw|fEsJuPvA`_Q!&lfPT@phj6qybp?5`=b_C6@{|$LM6*=Kxv!Myd;q3 z69tT@9dOXdA!g5zRPEA{2MDERn1x6pCQFsW8b}{wT7C%Gn!R!&8JyRE_OoG3*sqiL z=rMA@6mbwY2XH%EcwLloc}W^q@P}(Tc4Qt;G+Qfdq;JZf&63GYyyuwQ#&)yn@av{I z-n4PhC{y_=`5p3|_tJUSs+FpMgVf{1!qS!iTz&0CYw#tNKBSe+J(S#H2-Ui?b{r(3 zBzkM6LFG60qWy9~UG_9sadmTzvin;8kUO;f0bgliUwb*QtEftJBvtPAO5-w5X7w!J z8yuqppCf>MRK?B3Hcl5yxre><RzoWt6hyxZxZ3i9X|1m{uRJhyW@U3W#JX`=(h}-* zMXx%n6R^)1=zW*PHEj6PUC|%giJD*9#}4LG+aId%&rQEl+XOSXf3yi%dQMdI8j2J0 zBr29X_G6omJ$M?MMRd{Op-U_a?T3SV+V!Ti(=9kqYM}!}&?-Q_bXvrhFG}iaa1Z;p z^ryHh=&S0loNBV0CUV)c=v$jSO9k<GaSwF{g9&x1(=<#exG*^dAfQs4tFi#EE4t$W z8S_fEF=$diJBUF)y3>o%>^-r|V?9<VzK0uaTs`=zdqXQS9TnkekCyI1L`cOHRGv5! z#>G)w?N>*?_4K0%{icY}Nv^27#Lft|7HgkYba5o0S+MzyZROZpl%;o3Dk__jraU+L z_WB2yv!NXZ!*;{pcn0$wL+-6L$ujt3Q5@~nFX$Y=i#qKBKoZf<g%T<IXVYMyw<@kw z<MU7LZ+0}8`_<7_Fo`sAet2sv$}FT+0tQ2jM4M2U4V#N2E_)rNtJyd9AFUnc>)I)_ z1%hF=B<3#7W(0ZN-zm0qGx@LOqK?3v5NnY@6A3+W>=jAk6WngG7Bk~~g{uNJYDqUh z2(f*T@x@lApWU=-ML3!$jqdXEq%Ccd3+l#S-(1t(_93`7?{~r>6S6dkG`3WEPALQN z-BC5++_uCOunycdTglq!6VM!1p@`<Q{Z@L;+-E<2`<cY%M8nx;J3YMvbRbpm{?I6- z1R{?BZ}iTPfc1@wR(@APn!}6`fotfRCzzyM*jj-&Wm-Cb)4Dy-tWA|ZUcbMiH<j(& zQUVam3Zm<VK8S!ENX0Z)zxV^P3vjz0+`!ry6oxrW9bKga-g4pK2q<5A7^|`>6S|re z0CQ~d4HXUj`;KW&ye=hIQmPqY)n|Y|4M)^a$@LDN%$Dy`#_Kql|BpRCk2H5pT7T8% z-DHUdJIS@Q?zc~JjbCW-mQg$p#u~^|DR9nqgG#n({5fr}B=-zjMpB9c_aoM{A#k&K z##G{?d;Y@MO^s9TSD=U!OLDh4e`%O41VQ7oUISp*a<|#tJ*kim(z;^?+}v6?x!!d6 zv~ED#Dk+Vq8LsFYT=+?pZLlI+FLri@-F1hUQ?av{guNg_&;ZEADy=-)V3LulufcaB zHT(CUbS3MPyX&8?F7JW<;N<>z{qy(yUBX}kJ&-iF`9c4_)>>?$ZBQ|#F?BGhm-?Zl z^s>>m-fZt}@@`hZ72EHqVNdApXx`mENY^0H#Xitc2_Qh|pWx*-7n`E>Cjvcp2Svw@ zyh2dO&f$kiEVvz1Jz<mX{$?308}{USg@YSq!JMpG0cU1>%108GixYwzQ!2%qBKo6d z@c}C*;}H3q8fntppqqg~K1df=pVoke{=h<E>jrj2S?Z*eTM=&u63Jq?$WtB{X$g2O zf}ASw@h;q@o!_D~H|E*Bkq&V94wA~_kjyJ;@qH81C{~&+4eptGs_%6+XuI*061RQx zc$zhU5}~bfN&$uC8Sh*_(n0d&C)Q*96W=r#toUAcDrqlI4ijW!piAOT!1R3bc~-x7 zmSbRfxLSzKR~m{)E6DKB?ld~jiIRz@*-XRHK9h6niPVB_6csEV3Di!?1fT$#TH@Db z@D#CBa?myfB3s(mN$K23CrEdO(izE~rTryqj+>gsWF4-hBSr0|)>ijWI9is&{RkGo zr=*_};J74qK<H_BlgRkS3>u`nafT$Ip?op7g%Y!F_83s=4BbXVSM?yZyfxh$YDfx4 z(m(6JhT3(Z(_Of^2=&?74LPQ7fYzZuKs&Ts%DN=Wg36%|qMW*7n%&14#Il2+^1-3W z+EYn41O+ah?R>Dh`fT8X^&;S1R)YNI=BgJG_h@vDSy9qC!Gj<R1KPb$^FC1tw$CM9 z8UN?Q*XGJLE2MjQ{p0Y8AFH^z*dBl6zAg6PLO4*+%0-U7N&!VqNdeuvIf^^i>tvw| z{<LwU_8qRp=Ka8?Y(hw#+uX4I#=5+aS`|$Fp^Z63=_1}SLyb~eR|CcO>Bm;4hJ+$N zA2!NsnxB2?4o&we5#-I(D44k{Q)MerO4$?E-MrHe_o#D*n=}JR;0t}hXj$UHqQ#JR z%m<yjFgFvj7l31^Rv(=Y8lYP1F?R5PIyngK%h_4Wn)7wX{qOB78!jM@X)3_)@`n{q z`vcYkYMEFmwlaNPJyL{{m*SqjMjMnRxe$1p<+H;%Kku|;jbf_@){V2brMgKaSWjTJ zCIJn9i>EVoP%o+E7HRDeQ^z}E&9R1bPM!f0g8%;Q?&jya?45I9orHCP?JJa*jzbO+ zv?wf09&zH)!S8LEHcoM)Q(~*bQaAl0-}c=#S&Z8&^I$q(dC>O-9;DHRmf^ISqM<4A zEJW%TYgjp9g(7W}KCC6e0vFEC<W91Pu3xhVGOHdv+(`d#B$ICQG@c~~5mQV8t?D<Q zxJ!qLrrVCr1Ea-e@yq6g1#X1ETKq7ia$e{{+wHr^V@uum93>cgI`L?lN(V|)@sDQo zTs`aq>{+fnia+TWe1BQo!$m7ZX7v1)#<y4Q9B2M$`WuF@o)QqPNaiqqBlj&B%f@dN zDi&TwDUDFS1Ow)t&%XNGXZE69aO<Y|zI`S0vNgJd{z<UILl8x)tx8Hk#&2CZz>b>T zV*0VXwgmi`6!?!&CP5_Ku}Rku?Gw^$t}S@ajKVvCVor1w#EKSf^bJ+H#3e@*^Pp1A z*5UNO<Y3h@^VP>y^8|OLupFAWSW_RuNjReBpZA09-gA-`^*Uy^O>JSPm)d`LR8mE) z3jr)g)Z26WpWq|xrgbBoWuY1}8G<wOLcfH`kW^_T0XVC&!M1HFt|$148QEL%ZDTZq z0Uj#+M9^ozMG1r5fJg8}e&slYmm2##A~U*7@CYH}6&@ych8=hkM;;}!J`IBfLx#=V zoMnAY^AhA?^jyz!x`Ug*_bLs!zu_o8;9OS*&zN|cDk0-GYWiG%3DYsZ^(R^%YucvJ zWGvv6)D>MD(8D8bY@b@8&8ULK7EwV$I41~-M;-&YVC{BVL{G4ar?IcRRF{A~Nt!~Q zg;rQ*Up>|5F0|H6PUl+szEH3QQ-}}BYt&kMf>F<i-wA9#UBDAc?#+PK07}Rf9I^cd z9&cY6zaFzMfu9d-IY{nUXp;o|B(T!{=RDiDE-^C(WY8gH1HO*o4WJm8n8l0<^`bv( z%)Fp{GNU&mup0Uuz+<?}dV1y$TwyqwP^mPBUz(<QmChV4M;~Z7ft--ajS7?v<eb8p zwIGDim;6(1WGCFCHWOGe#!bZ`t<33TgCB5!%|sspx_1SjjC2q})7wnLma+Y8;<DI; z@G9lek%(Ftm?_Jg6KSUjaoUeMjrBl}MXGldMAd$!Q^`>75uG`*AlomETp^RIUvfz} zN|<aCuFZ~g1CDi}(^S2JhBC5@0e+=rR8gU7#r)XsfEA9e2Sk8V-zSIn3<unob$mGX zY<xHwNz;jxf+cJklphomrpZE?gL(i4l_WG5w6hvIh)^#a>{iD{NNBGCjn1E>yUN#F zWhEh@;E233T&AX=@kcX-f=E))W(&A5Ogu<(j>teaW7qVK2y)lS;;;O`_4L@3wa~Dh zsG&tk!dpiubu^G}b)<ESLP<)5GN(a0dh7Q5hSU-Z!h!}ag<k+_iJ+Lpat9p1g(L5! zPrhepWR-?>7;eZ>bF~>|oeue|n**uydAT1$SP&P2E~XI>7J=mRdfwpyM_BJUGM&^p zj-@b;_CkweCu8saY^G^!VdHv|G>KJPlA`=9A+F?;)XWNEXM*bB%8`a<g}eg}Sg}%x zfY>gOBBU##4!`1D2lDIX6m+_JQn`4faSrmx&#-1<s0=n?vsO(G8m4>Nh)BK_rz1h@ zA5Uh#v@-J@Ig-0a$L}yEJiZp`>E7kGnqV;^yIkaUnkTSqi3Yd@cmT+irg_Bw&)u8w zMsgkbzWq@Ij9|=M_!7A<e1ZU3mag^2whT$Ofp>91<f`Tqn{2a4Ed$JVf4_*c<jJhe zsv^5c*-x;W-OTN*abo$$KQv0roCY_YY5Mk>zt;LRU9{fGi77?K<KSAT1If^XB9*vH zk`h!qCl1bU)B}@V4nGea?79pifcrLrJ%e=SfxtgXzP)y)(fidF|EhFwt3FPf{{MX> zXm|I%gTq437}ETNhN-M0LW3ETGP~nUqcNS!XDaw%z)G&*2PI__sE8qRq*kj!KMyQ| zBqc6-^9w^DiTVJM06P8HnDi@vAcTE^eDx)`6rm>GxcBViq9j8LZDk*lWiaJgSK`e} zi>w+eAkz4RJS2-7{6DOwm!ySJ^^65;R3Px{7Z>iSi;KTo%$Mw5`_+BbS<xd6<u~45 zT>R-#p-ri2P)uxIz($l}qgj$KY7s&yurQ{g3RU$F{q$#j{}}+X?{5{ZMjbKWlKO8} zbJq;O<%N)ndJ4dRWi`9Y(hxQ7P8;g}`bS<!@jMQQs2gC>#|T19xIw$(2H#CXG+CW< zgnxhiqjWGe?SNsUE-5yEKdFR-&KTjZ1nI0eeQu$&G-9(thDfRDm>k7k+!*$v+Yv^^ zTdyeaf+=mHA2azQVBDxd9Qc&B6}{1$Hm=Pd2<~!6&qC%0IT0E;U3Wpb+Cy0nHoGOm zMwszPP~~(yR(t5|&DUmLUfLf4iYrdei6hb}*+g3HYY?&z@SpZqBQ~k*^13OqhU!^R zvvg4+k!gGJ%p;;2kB&xp-~6Otq#Aht5@;7xP-2Thh)0={6kzutwf02wzyI-{%Za_d z5`%8^L)%l%zV0EN&8jT)`K>>@C<FzVGKpc$%q2@N62uDp2ewYse2$D&@NzqHb4i<{ zAgm}=bVE^)9)ZK2l2W61w58V6Yqs~W@>YwAdbJadVbT^S6^=4;Z9&zisv*gwNA#`S zH}A!>?eN15l-e{`yWt;?gHfkADY62HZ&!mHuOb{6;SI98ULax?<@ijpJeC>>eI+nj z6EQ<Z7=*QfIpgv;5XsZkaT3%oAFuCs%0m$oD*!iG$2oOVddU`$D@#B#-<`DKtsFq1 z07TFgNt2Uk2|&4)a+kc4-+%I(wVr4$b8z7}MEf9Kdk;7#+$L-m8kI#2N_IsV%A_c$ z$)tOmODi2cHo&J~7rQcP$-c-cs)i73a_GQ0iqJ9V02ejoFN2W~19f|{r@0VFW0LNE zBH4KUa=01f)Is?oG?}(dLO_oMJR;ER_nxIO?}m4oyq^zKRhn`sJ(<Z(T4*YwTsX^D zLh(0dlq1V<ZNeQ4Ji?1VD?y(*w1>j`ak_g8a`lHRLSds8P@zN>G%jUQlju#jOvX68 z<7rFm;HL{vvv*hR-OoYMD5~|09WnN3gs5K2(l2j%P6H0A4u$C-vs}Wo15OasBNi0+ zW7qYwe{z4+Q?j(8rUN2^4F@BE34It$ug?C(h5cbv!hO@wUjEFKI;Q@!z_)$ZC<<T0 zSK5N7rnaV#;+RX`A|pvom`qmbNJ>QB)o?G8C#T{Blnw(ZYAE=Hjl^EFc`dAFVSc^6 zk}_Yy{(Ado{_=?u1N`<QF?_vlt1VRp-OH$e%j@#;yZc|hF^Zes^q(+u`Wvk(i2RgH zpnsDz7}KApNz{ePRA+6@G)U!!3Z@kXDNvbC7H4{<nwXBA6ZY-1QbYa(R|K=jNRtC1 zx*HQPBmlI*F|;5<%OPU|{MDx|)6<XF>ZZY6<vw3PO)+-Kn8XM|v`Tkz<?BXM(Lq>O zS)JiEq-B!DxnNx*GGCnG^`s#`0UHu(*8qZxco6=3Ks|D-J0sy4A6@TU_%#UFARcI; zFfTzV;?weukWl<nP`k(z5I7J(lc#{%WVGM?CY?O8E&1R@l|u0jStxm~)}&p$(Pen~ z{iSm@OCoyO@Dd@cI|vT>`~YnMhseh8p8VybV_ZYXiRUX#BzH==uEQ}dt>u$0{Ckon z!KEolqVS|<NkhQBjti>H)_D3cz|5uPLU&!5t1%~k5O=UJ62>LwURL!Lbw&j9sRs3F zpYrv1$t%gDih`jeXb#a-k9T9X=M7HEyuZJDPZZ<o{Y}#i;se<55}?ZM_AZC^j4-bX znc=q-Qwd*W?!hr7d0h_=H-ouNgdEY#m9MRa7hmAhhI!01WBNP)7Oj9J0&IyauF{U` zn23tmIL)m(V@q3o_k3~U6%X3#(99bXPRWyq_9kzdiM-BNN|DS4K&E5mp!18)<nXa( zbeheW7QkS;F$R+dRR#HF%Q3a`=a~v`IZJr7y28c9irZ*kjWYR}Yy{FX`BU1QNq6Pw zr8H_aQdeMzqrMX0lw4Tu(QP|tCiL-g@bGN6*+E=s@4>Mop)tu?+(Z@S4kM{?IeW7+ zQoPD!hT-&PFDAd7z5TSwcOo)a0TnHcAwC;MNZSU%F3#TTTD`Rb+#5Getf|dg=6x(Y z{!m&;)ONTR%_{AyiXePfqgZ83upzPZcYHwN_6e=2X036V<oIoXDRG42Q<9kNqDgw& z2eiv6<c>bUDAQ7wcGjAGo!UF@II3pTCd<J@xAxIs=J&?TU^A+@q07fPg^ZxsEl&c~ z{@u#CxR^EV;^O1SQjkLY0Z@7Oct7xW@Iv~BmEUL~Ltm3+P*XKt!mG0;+wpte7#y;i zCMsG`S5)Ar%R(#BO8FW`MeDkLDDB^ijYA&`Of>X!suCwuUj`REin2L3(OgfzHe?w~ zSJn=^&AdE}wb5p0ko_GDlPmWsKj!}Jx()J`D2AEgATil26-Az}@ft&eHNtlecOo04 zk#cNa)kAzAB=>9vQ0+AgKqJ*2I|&X<BzsTl41AtzJ=Z>#FJ}FL6dKyGf|Un%BxqpP zva=1B0{w`Dlp!-Zy>YR|5v2Lw4_CW86@~*Dhbfe6aUJnJ;jox4AN`VL!k@&6y!5L5 zMG9-|3zM)FM_9PxICv8xJA$wW3oe0+q{*;y@M=t7+HU3tIchCq;=BfdY7NSXCTa%M zRA0hUBf@P`Cij-NO}p1xB;YMYRsKrqlE`BY1!<v=BK>N;(VF2|PqmFUCo2@v{V`@4 z`>R{so(>^1;kiCxRiy==igrh@Q~g}p^e0Rtnl+VBfUsV5r$s|&jT{F6Eldz)a&qX& z2#OqS<a8pzWuoJ0X?tWm4UJe(QQ;Kd^@#tTa=%&Ib|ox!l0UbfpT9k3Mmx9yqtnZd zvApe8Q}Z(@8id{>!zKR!((;G98#R42_5MkEW(}x4BJY~)hn8}aRyEpgqZfYo66#Ie z{G`S%6ip{X-091fle|+>SwU42YSGhWewtd%UB5;#3>^&}8o`PNL$lc(b4uuItYnIV zx6lHZARDX)EC+Z<$jXvs<tJe4wO&uO4Leab#ZjT$DNd)Myhymq&%488rO5{8fu->S zK5^r5gC>~zL|Ih=5bM$ckuMt1?5?d&>rlSBpjz)nT)`bemM%~?(w2mQBM{Zg!{{l; zz)^0Yq|I0_)W?I`Vkk=VzknoZYv{0mg_+pzhtSg;5F5=-v)~^gt*!*M6oJm#t)(gf zxx8J42OVw#@ryP6RwII~a4>?gqzw?CA7K=-qKhuighfcVlcfy^`Xqh|x5xbsu{$_` zo}A$OTTOp&Mrc#3G=;+zY@>iggdyw7Con_4^4!L(y8~BSAx^c9)R`=cqn2Vqsx6u> z>06S&4V`Rc71VJ$Ya&w?=VOb}52z%j@~jkko87V1gJACVzhaTk9qC*(Jop);g%za7 zmTgKRIK(qVA-KGp)GkiK$6K?dUsEd0j`TLoNt@{lpczd}md>Pkzm`$~nL<YarVe5S z@C;H1_W4T1o<d<daYXvy*N53>H^@&L9+vfuWGO-1<RDiy*+8!yTpg!JVB9BJj=<~q zQj1G6qj-JCa<t7k{wa;F=W7x3_Lql2vR&$~g26ByYq&%qmtd=G-aVOIh_|?2xsUfX z?3ldB^8wn`Mrl`9?mMyJ2Ven10mDW)j)QRW!XLigY)NC@5I4H3j8h{B`WGXqVmWkS zQY?{#v8CYH18BH#7SLCUw<HDB$u(v1@W?5SaIP9HHui^!-yqgRa(+{1BK#ZhDk5}! z=;e@LIr{x|i5q;l>PJWw^8$2i0bJLFumd@}H(ZP8E2lK_85k8ci}(ZC5=LL2*>>-# z@<EcO0o%ZGtjdZ!DM_ZZLAFC*_%twom&!_LIad<FZr<+%tdhdj4nDW6yR=PvV|kd1 z=4JAp%7mkIWn5fX6<t>b_-?VspKnDZFu-+WI#y6@)njj_!w*Mw%uZNqgx@{JQ|B~? z&^lnRqu>Dks*1Fc{If&Wfqvui(sy)odj^N8J!kY$2AL{qX`g{e=$TS7yRDyM>rH-@ zKg|sA!*+61Zwe#gogk+bN>FsrI7+dCT^RB3f(xy>lRs;NiBL!OxQ(g8m6sKmY#U5G z`oTlH74PFaDD4>YvWEjQjtGU|)+|%Ro4MqC_UoF9ANqa$QinG*=J~~YVOpmKR?}1Y zW-KXu(2OXua^diIbgftqobkSVsOQCaN@z~oLG?<6xo_ZcDJ6SKb&nI;qdlCdNZGu! zXkcLKJFVa4B&UmSUrcf4a-^alN@ZG>Z21$~=VE>P;^--`mGwsBw(^Yw(c2JLp;&oD zy>FqWJiT!T){a@SbEzN(vJ`2!zU^3<!>vSjk_r|VuoW3;p=2nrX!q{g5*mSafUZ-f zGm$1UWW{$lUMmt^U8}eUA2n-6geJ|x49qZ2+PZ6N!iqr7W^Z>(YYKxM+QS>e6iCm* zW@Oeq-czz1tPflLUN#`^rwRs+44_O&!4b~n`7N$}Pu}t`6r$xoCnq84V734OA-EG6 z&S$sM%l#^vO-nH8YtdSnqxosRI`<&-2@HWODOzwFl14iFh->v;;P%6oz@{}CCw&{& zR7rppfx_4vRLTWyzb5>q-(Ox*_Klw=FLg%Ct6Gu9e1dFy&8wZ=CL{L^5xyxmm8#sD zQIe*>i$~5Y2pYg|qr|%ta4Up61=vuu0N{h&>l&cvL4a)*gfiHSm&$WE|G8r;&1VD- zQ6Va78B*i9MnoXF=0J~E=vi=r9kGvXvq_{vH>k15+A10{<ozo*J3QE4FzXGfg^mP) zu9q|@=y`nBo7Hnj91nKRk^Hp6++CP$M%^7LcJTNxR+GaQsZ5RKyah2CfwDspVW+O# zryEk+Amu!B<Hz=K9(z6+V)~1V@9w_->2~NfOyNR1JSB%z1xEW$F7jbw=t%^FF#uwi z7sdJDF3Q(R^9^_OX}<|<>CgQD2;{`LQ66A9v7s`lj%L3p-*t(_;4@KUG1mz9QXvhI z&Zo?&fABO5EK`UuhPtG#7+8}MCX{`XcrizI>g<m_Pv}uoxX(ab_IM46o>m0@gEp@} z>pTZl2MsblwhU*9)c9I>4o+>RKetXc9431O7kN75O_%g2Yntk?uvcb{Sm;KlqAabQ zLc(a&rT{JDh?>DmJLSNKyfvTK4Y}eS^Z_}3$yD>OC1K1?9qTFBe1RggJ`F3l{1MZ= zz?v$fx&fYyYiXVhv35Le=wZ{s-T3-iLIe<04z&W84kCu1qBhU7Cf56Uv<(M0&y+Yo zjdJ*yT0t+j6n2)ljSj#|e06{LA-e*43nF@?0!-Cl0D7gs0Ev#}D^N)R_!I&fmeCZa z_4ESqh8FvfS1Y~Nba`D%UZ5eOtPanqJQfjD=3Sh?^NZQFs>ki=@UykKF<;MEvPD!< zkC}Q`xI=)lF=mS;I|m&(FV02-p0#MH*AofxB8k*V3MbLpqJ3s7PF%M6i0=!)7um@J zP)*D|w`^bHyZZ|lr%wxZJc_XGC@pGE02Rw8qPRLJ9ZB5G+6o_D9+`#vN^AqQk@#2F za^|-Q33oU<axzX}WMm}$Ri}h{Shv8~CRq2UZvgrIl?tD-hF+=ZagJ~_QvV7(;7*KK z@bwY-;BwRqtyYp)+;g-apWpp7?SsN7O>x3+#hm$_iUBDBF)2zF83UklNuY~Smm1uX z)8$WSp4ryVF_-H8`kvyi#ypQHdJOqU-qa<IbE%Qxuev^+iC00pzi4k#dRuDWtedqn zAt*o=O5ThVvnNklrSMsObk^uVZy^j3L71Hl<tS{gdq&4A&=XHe(MbVC+jg+Wan+|J zcVSC3)<ZR)##d;2Xf+vmW$>c$vOuZLk8au6fbZfqi^#u`*qi1@&kXNZY4+=XQGB+S zmkv&A5Jef_X~nHllR1EyOe?}UGin3Bm5n2YkAe>h^CTjx1M&?%HEYrmglmn^HJ4s} zIV|;$<Zl63!onD8s)ym6z{DbLm?DbCar9UP&(7^yNBowx4GGm{4mSa@B04FS-3OBV z!Vm=dCF)W!_G<BBd2`Wh#zmPSDZ`G>C{75O=5QqJ-G9W}F)K5aMq>lf^jO81oD^0I zsda@N^N3w}lC+pAB*j=HWF_?go7%eX&@niH&@x>W+R!y#EaDAT%{^rQFQA>FA0UOb z9|(3kl5Pen&Gb{91n%3Xhz@EFl^~4E3InHS+>Gd$?c)!~V4A(>RU{Dj@!3b8-S~a{ z{42D75>a9qovW}EICA_pXhAruN{R+p_$>={PVnH?%?mo}5KtYwBuOd|JoE$as5{T3 zZF=_pwF<6MPq?J4FbHI7s(>6=7F=C*tgQ8Y?RUDyEFthh0)@)-zO&F|<w>f;YSl#i zZ8<>$qTR#+8U%@<n{kTvJlN!9p8etmKHIw|Kihpnkw%Vbb0cQ|6n8+ar8qt3O&53M z2{TwWvB!PcJL2F?*hu$VG>0d}p0KV3s&FaAe+$?dYPBubf_cZ~C0$bM!koOiuBT|s zVRij|12Xfrc_#t>u}`EVD9O*l6_Man^H=8z$g?F}sAUGAgEj49DBxUyP_h8914z<p z7f#YrK=Iw(?d7FbiT>(#yfc9%i|q4jaCVz1TECm!`5&$hwZglXM9ihFcb~+j8nwB} z7(GmuP<XQ91VI;dFdyOu8d^$u<^uY$*UmI>pT04z|AT(<tA}A(HQP5eU*71On+c^Y zZOvn7#mH)w%m`S7tp26@a>GFxO^7U>&kCvB$MK)XEuBSmnl68G_6a(wJ*~IddDaK~ z7+Hcl2J#9iL1jJbui4B=7%1XQRtw2%5z*?hFYwk0G~Hm)&fcm|DSQX?+LC4FhK)2c zsdyV885OyfYV_O3Rs>SId&HIXHp35|^-WZd5Ktl|Jk@Az-fL?#pYYz#4)BPAmC8Hd z5h<lFNFBhG_lo>MA7BvoAxuWS&$cc=|KkLvp$-ap_5pt8>I@spUP9JVo`kp$<y*DC zFPBMJ$4QqFS_aEap-1tQOqqnQKRU+p36YenvvGuhqlSPj0<eiAbe4noa&3GXG%z%> zj+lze>_vd6l&@<?7@r_>6^Bod67v!Q)GE5O!*J!y^e|7C^b)%&<NH31u>0{MQ7bRY zs_v+y&D^z=Ll-CLl&JO3GJz_UL-65N1z!{}Xl<eBk|Jo8)F@xeBs_b!RF`{|yu%74 zn&8kNw#Q0xL?`E8h;vIb&Ncycx)U!hf>pDUU-|JL|KgZq%)%B6p?&;*TG+sibmd=M z%x;*efggYK7uC6~-dz)H<iyZ%fRArW@3x{MXy7u-@%+nSK6=jx@W&AL!i9k1S0y9| zqPCfU&Pz}9$xXH3fMFneA%cz&yeRqZ7Q}r10TsRCpCHc@(ozf^s4XjK)6u96Ky{wy z`9htKqeDrq4xe+rRQB}@(Fn$~iWnnDVT51M<d(g9_UbI%ZLE`=H2Vl%z!oh8olG&y zl9~IGyTxcjFQ1@aMWDFQLI7sNHzx%+Ua)&lOYKj)ckgpStL-ddh)1qjZjg5nH2tL^ z)4sX+`hE^v^9wbON!67*u6P>?B>)-@@C0THskKpw4LDsFF<{ei)=rDyIPt!qy~F}O zGiwz#)3Oa!1U8}~nx29VXe2Tmw86S9-b@{nRvEidx)4nl61X~rvnXlH5}xp(Bm`U` zG;TaJ^q87=k~U~ON$L|gDLOIJagU~EH#M3s7zdalYDs6Dr)HmB+O4~TrkV9#qo-)V z-l}&w-c?N*ggyqgf%mQzz=Y;_pS?H1)EqR3m)YUag$%fRa<VZfDk!xzb$V@f_}QCz z)G|KY__eyHd6$CdEHIMux++^%{VXM$ypQus=cC<NcR#IWq*L<<bP#1kVkpI7QVm=i z`j#XNvhHW3!+nANM$#MUQ3Z((i|(Jl@4C|dwZa&Xlyt;J31&3;2nK8~j4{E$04e?c zr{;b<mxtC%83Vo9WY03A`m3e#Lk|X;i;UeS8F4=tbxVcWYpEY;Oy#5|9*Y9nZBWm@ zj{0#n5`YHoUXp!>5%W1Er%UAikCN~HLK`xet0Rslyo}0NfWpu;1z>5aM3D}cLLse< z6gGpGY@`wo9LV1%*&DP*(O1A$vor?CutF0cB>-NukwNBviH#gX!cT^HmiIOn=>>DO zDbU)H<qA0oSXJbf9td8sh|^;plC@;*7x9b4BZV5#pvhdLlC03w&%&A>6drJwg!$cP zS1t@0Sm=bzU1m5_M{zdPOPt7TOPZ=z&cB4bX7GH+v1{~RN-8^+O+j)*)Zhn)NkCFC z_wG7>pY&{+79b#_jp#LSBTsGrA}fwc5ETwrXeA0V!Np#hHN~ws+F`1WoPCM;=~XS+ zbD{^@_rA_%0d8&H#KdVUN*d;rm9U}fz_|D;;OK9JF7ULs#gNP-Q4c92b;?)>nx8pS zWaNeC(qn8yT+Aa4y{Wxu-~<9kiYxDC^^xUVE=U+0E|!{f5vcBAB8aR&3+lk;y=Yu< zri$18<78<8njh0NN5zFl;)^%_Thc=l{NAlZzcXn-nr_|gzchuw$q6UBj1q%QPT4x6 ziBCN(nzrTejMLBb=d~8A-1%~<ut39(StJN<K$-=MQ@?C(UJROjRT2fa`1VlHFZ=)_ zNV_V^ca7})j+!&PdUnUTCi%@Yo{RSCP$t!M-842#-Q90BkxS}!iu*E$Dr-c&c!^fe z&?D1i*+rE~ll{ortw_yV{65S9`Ak%Ww$bFhXBP`n$AHP`sh`kSLywY5TqMI!A+hM` zX?q`@oZUdC=CvV%9Hd|hR%+HKIW-U(sYQ*FyLZ=_=5k|H%siSUd(}&1<jTy+m2vyi z#sn8&pFoZbu_ECu-^P`@&(u~U@0J5-8>s{M@XLFFA^{LCB!`D2yd1W0gkCUwa?gu4 zC@~-Ff4VcdFpyqS3ZPFTN+HIHrf2Gun;TxJDNY6@p9Lbqiy*vaF@ecpYymm+gUJ&L zmgefywdvPG^F2d6LQ7MOnE(M`9Zf;-`>U_nqqs7keG7=FdwYG;!$d*r@KF&9AaO^k zLP3b?S{L5-s?97+Gn)s}_gV^B%W=p4NvW??!&^nBzIYp!H@$2VljJkkoNuKx;do80 zSU70?Dgm5GU10ov6lW!zhFqQtFn2g@yeE!Ke@G2~M|Y_tMNp(C;g&bn6_N1i@~_iT zE9G<ezyZ)iRGmpnf*bZc{`TSCfc<vAYj(q;>yjN`EVAQOFfGEx^Owl^V&3V{nw$^> zQz)Tz#VB1-eetd*^;mgmEW<^cLW76t)WWhyb|13r;1ezwp!&ie@47!;?;h4VP{B5G zBiEJ~|FvF(?|DuiI#{-(@T+iIi9)_yNGE6wB@8q7*Sc?_IL;Z73VLR-Z<sH8?M$o4 zABkU>Pk#P*55#7%08EpU*)3juh$8_@GMx{~hXZvSv2#+vOZfFky%QbWT|QHrSC7VI zqj{Bnz8|d+8YN|j08>igbath?c(#`5Qv9A}Ek?opJC!jqZojMzX=c>$wcE|`hN`5O zR4J@tuzh8aCv*k)i`518q*upDcvc|3sE#z^XM&iqg4|K6YJ@kOX|Vj#TNSkN>@bH2 z(TQ)FNUF@FxSk?t7~s2*MK)dj@PU?h$ycb{0aPAIDX7D|5(7i7yg>I)cT`r_yQ|^d z`v=L|6{DFG3-0!oY`6|2wYxZPqETiqFF$ibI6DEsOG~e|OvSkJm;IJ^wjrhF0gmP% z04e||4uHDQSq~dXl{*IL53y%@LLpIjNI?9mtTSiCygz5b)O**>lk#{b5)h~Z>YP%T z4cy~U{jmfsMo7C4H9u|*3OTAmx;^whcKy_ZB8vdZaSB5i2gV!-VIg%s@SV&@>x3q} zF1AOKd1quj?5~0(iay4VM`=}5uh|_>@6M~Eb@sXxqr;Hh-Zfd%H)PzXjDB^bj%OAe zsHq5p3|ulWu6CJ2={$L4136`}H;bgnvye2FRh%KwAd_i^eDt83r?mEIP#TwUyiDLO zk*B*mP52=olqGG2LMNx9_&4k|*D8-C`RVSfUNsaQtV6FRzfTPK2-zKBzh%@YBPo|X z%&X<v_NxQyl`7s^NbpL1>q-8_ysV)4r(!l^BcQH?2}@27Fmwe~yhe_Zp%t?+xb8k} z-c32eC2s|S>$UhQmhFzSqKLCDC8ZahQIxn)h)%ReeGJuMTaf^q4TE4KP2$KrCEZqd zQan^pHYFv}MMzMqJTg=n1Z_k~Ag<|0_7R`7*A|trHr_@>?wgx9{hUAL2-PgP;O!kR z?r@GK1bN{u4+wbH9!z(Gz?ufU{!va+UCx3Wr92?NKdm{3=v9)tA9y*IVIg%kv4e5T zrHtL(4{k+#Fk8m#eALjtb)!qEg{AT)w0+i%E|<LqQog^x`~JR>b=<e)ljA}MK2IqH zr4l#S&eY;PYeU+Up2FMcHTDRulcAu>LX<-BD&lvp@~->(@o%G;T}d!x*r`5>6RMy{ z!<cjWqoNyq)ZOqx-Cb{6IkgJ8SPnx>&1ED?(eK&2EH_F0E56YmaV-D5x*2Z2f1sl4 zTh66XhzLM8;46u6tOnO#s7ohU;8b=u_V5+lqBN7bDCrp0h>`-brV;0OaQ#fp+^~mM zefG=tfx@K(Zw}roB~wv^`T5(ow-Lk(jW9F=^-ZHxKi`=20G&jmd76ljnQB~YEzr`D z0Dg<zx_8%^MsnHG`4U9*vI4I`h`l9)fh`r|U15ttQf8ZUU7fWdQ@-d7wq`wYaA1`s zxzTV%U`UKuaT2tgNl6*#z=rr+bMxqx1L@4=WvBx@tB$Q1vcoNHYU&RVB*M{L#Kb{X zS}L;f^3szYeW@-GefJB}7Q_@3=_x>wlWE?i6`Qjq{kVI(7x|tI>S|LrLfLD8wdIKI z6>o5PwK-AVhJp<g3M@cb&^)bmF>A~#%<x9n^eEDKKZr7A(~y{^<n|F|eqd7}_)Ms< zt~kwH&gef~mlSufH!(q9U?Xgcm_SuM7HKXyo^moz+hFh6MMVyXAB$Sz1!P}#<fU*V z?<Du(3VZ(5_wa!k_TCP!9~Xiih+)!_Lpv5PqS23Edk%FQRrR6t8m~0(vtB@CdOt5X zCw{C3^0%+ZjF7Xa-VyG(5<jmTK~iih0uT*t6h-7wZ2i?wsAi^Z(V@!Z#krCgU^cH6 zA~0WmxNm@Skbq~uO7@-oo3<4fu>K6pVtuDAfhisP%tc3>Q?2O<q?3Tpe^KA}oChpP zo84&M<C6aPlKI}z0Xoo3hRA;zdQK<|3z!O8qF^iu8MgT{UX_|g6za;E$TVEE((~<I z{YYiRw~#*+0MnZ|g9#c|DHj<FZ<~Me*=L(J>jlr9l%ms6dJRxmLIWao&+NJL+Iwj8 zcrx4m_VHb^Si>xKRn*ccdk&4B=^>1awVPJ;2&*nsgpRo&&Hr20p(8}#@x9a@vm@;K z{`O(e%J5W#ySoR;)XzMA)Q!TB9#XV_AlAam#k&hr6IcgNB8#`Xhvrr`*YAJ&<8Ak_ z|G_Yq=!<_yf0E%J^r0g^u7Pj^W&@Dz6;VWKx$K=SZ%pxc`_p|R2~fo#iASk84JxvR zXqmY*Uy`qITu-t{u)!y1hE5J@a%^z$z>^3t1ll>A7Hbabf8L&04>!rJ0~H#_42I<> z8xTr+9`4ubL!cL|De`ztT3mSPK-uX$k1=KU6#0epoG+?p%Q<H_PD^HMom)oAfiW!! zUlb`p+DO2I!bmxjS|8Au*?V5L#|yz{K4xep<8*_PL4g<|5dtS_CQm-Wr*kxI4?G(h zA+RHuRVeVsDHl*(o^7O!+tN$7X9^0qCn{X3Nkh2=irAn7uL+8moyckFKB*H<MvxfL z64)R~qUL{VQLtBN{&GFVsm1(Iy~XH0Qi;4QvmA#l#iu$fr`a86S{FK&L1X6Lk2qEL z$76NX+}}46MkW;pR@$L~fsiEb0ckM1<4mpk?MMInvHHJ0ii`g<&2?!h<We-0B{avV zx}Iasr`X4ZD$JsNIPKahGp-y)m*NSg{01e1k{Yk;bo@W(duej)dpYq1obixLk8zJT z`t=m{yr+U4IE`ea)GJYhHHH0z@NckI)HS;9(^Jj<N?g(k>SN)wFt?Xw-eWI}BgA3O zq33Qn)5_8H@`7r7F*GIi7KoaJ2v3Y#>jX9aTzy-dU^X5yKb_WH@NuQ#0oAv66H>V& za0)FUrP3%>ThtgO`?sB|@rzS*qn+upiMU!otw<fJ3Rk+s`@fM44@K`SURmAWey_+q zs#y4Yd=w~-1SnumE7l{0blHalTA<#o!4Mi8!P;T=Z0%+#Ti3gsB(pAS#MK58sA`@i zWWU!r`OWaRuxF%SZUX(SXPY9U4G|hp`>imJ7H?w-HKZ6=q?(A+_B-I>r`uUVTniYj zin5rR*D<QO*jXo2=6%-pB3kVkju(DR(t>&;1y$&UC4HLPXD^DQdKw<tn7T=5JxR}c zWIDX5h*J}&>T2~Ar$$4266JARMFivqp&%DET9vZ3ZS8;OpaRp1{(2lGd~5VMf1h#f zyB*-D#%lE1X=qmX#&mL3TCawVLc~>*7k~(RlI=M{$aj^n(OD5!r|p-*>;blLo>g6u z6$yxT>WD_H0v)8!+>xTRqqPJd6Vd3BY;k!K4H??O)zEZr*?4R)c{gmmV=fGrlw2XV zn}qk-Eoa(tcwt@h+?1`c!=?Yd9GhdZPO2RGfuhtac6|$T1rDfOxDcnyXX?n)+BeN% zgI|ZrHW|dfWt>~mdRzI-3LaV67Z);4mWm8naPQ}CMFQObhq<`;Tz-hm$d&7#Ijv$` zZ&cd_vrqY8iOb5-dAk38Y<QNGCtwa(?m1gH@ZSgX_*Wuuy3`K%*bjZy#e$lI2q<-; zP}cac5Xzdm=hKQg<xA5Bh|6y*H-jHNgE}}W`7%l$!z)9rSwIs>hVb?lYWm-2TS4<3 zCX+L@{q)Uyv@_JOO5-j<c}s>2qMV>J(YZSFw0*rFaOnrgnPD^{P7kSQ0?fw*T-H{Z zZoL;&c_sM}aY(XoM+LhIgW0OQVs%XgJ1m}Q=FpjrBi#?5E>5dJfqhy~k#$G_E`j(d zm0Cn%OK89`EIEA2-Z-=igTP-)-OU>AlenV<Q8OCQRcR_~Xu~fq!o=<GKK|TBYWCdT zhl$rIZbWThLD&tDNyNx$L%jZ4N!VVWIgOjDXs>UZ`(LhhLvzp3*&3KRb!Y3orEE~& zkw3&@S=@B~?0Sda+#?KFe){T%0c@fdU6DCeb@!drW0*b`osl<kvZQT_DN&=_8k(H_ zUdxRy(Q~`qoR+8=CC_ExiWv`M0hF~G0Hp!!+H=@^W1kMxp%hn6V&QKSIyuqY4QCu- zbB;7B$_y#>Rz&!&4e8Ss;`+24JqH?S#d6BM#&Mic;T?}eurmG?=86OItVO>(0=%pl z7C;VliMCUhIQdL%`LoL*J-UMZ_kuWastCXZT4&U@fTvLe(+l;<1z2Pa&pB?Maz<$5 zgr2t_eim)*D|IZ2Hmg^VIYizm#8?A`tfRgV{)(6F&;e!E=r3$=OEI}f|FquOfXtBq z?93;-yZ$d#)lEpYCYh}2s9%eo1_J^;vr@_M;a7%U^~0pnUkp=a7zs{W{6SHh<8qJV zP8{yTKU~r%bNTBfWDr@70hK2S)E!Ng1(@#{wb)B!SD=sd)R9j*!LxG4z2G8q+T@OO zC^5n>FI8t0U%s6Ml@>3#r6|=yS<aUFmIOT;aVx#pmO9?s1N-e&06r;625_?zN{1(+ zmpGXMd|u!TcxZkYu6}}}U=W!}4s(F-GB^?PqTT~w0^Tv*OO<t=`@1}51mx!*|3!u5 zp3-gJaT=^CC(Rw7V&CG8K)$*tiJ2~|V9NU-Cg;!dYYCW0fsJRQ(<{O0#Cn7dcrTnA zfr=e?I}%7gsGtLae&3CNTR^O(a~bjnR<1F)P6dyW#~vk60`*ChQ1Mh_MtgSNYd8KV zOcc0aU83Mts2l)a3Fot_y@~$}a1LD3C}J?AkYb#rk~wR`6v0Y4^C(P;*>ghdBx%4u z08jvLSzgAB04)t|^A~NcN3BYV1DpySD6I}p5?-r4C(4U8#GK5E42@F}6(XZFnad*i z`?QD%g;uQVxX&RZ@T=q`Q`Ed!=<HJRsX?liRFp>z<j8s%x%7r4!>ilJo0~U(zPtUi z{0vuh<*vqsz3lrNONVEGKA@0zU^`S-IKqgiDE4W(;{}AOv~}_&KHm=tbrN~8Qi8e# zbt~*s-egS9<vP@@7ev|1M%AI+MzOTQ6hy-yKurXS*=1D<HYXEkj=6L$u`Yx7f^J6K zoE%fsDkw^_TZA=hEwXM0g9H~H6+>NjrXD)WZQV<0J}3!HOL`7BLvbA3<Ma7|NyjmK zU|kCR1}t=6*phSlCXoy>u50t11#fc_L^Gxw1RJF0kSjkfzzPzjCJ}NLy8q;RLy6zf z=!!1^a_uD@@p~;m|8k|Yq7q7&rm0|lf)-~)q)nx?f)np_|E>|Ji)vT}8RLBfu}cP| z4SfHs8rH$j?710(GE@8BMWgYYB-3YP|7>WmtPPfESrV{FNxz;Kv|4W?@TL<r$joSv zuWr`PD}q$*Kz4Q%XAoRw4X2=5Tv`!it%H+ZVn)<Dj0}umQPV<w?fN?FNBPsE@)#Od zO6Y%BlxCi_Fb1QWc3|*mBY1ab6K=N9IivadVMA6m!cz)mRn#(Tsl5k9Fg00ajMfTe zZI0IK)VhLQvninL&g!utl51#XLzT~O*J%nxwXEtH|Ey>YHlpGZSEd?gGL2I33?{Ze z+!?FS_xj?(f53Ul*g>4pq-;Xp1cejW1w1FSueqE*XV*=iTGpNN-?_Z>-`OWiURG>F zRmifAsy8I`f$`O~BOSPsgL!puyy^5bA@d>DMVXJp-pS`6PZO(`G1|8-rasTKzLRYk z3)^X^J301zBW0zqsQ2uG`FCEIX{Ma<$jJVd1%#T%=(GcbiDf6J#NJ)2^Qepb)kW)i zAt-91q7nA+UyysKm9RwN&|UWQW9evA1$qh)UTHe^O%JpK<=(5vMAz5$5o*^{4=umm z6}iMb;nVNp0`45?B#g8MUAp?YN&c8IC~lfx?j9eCKkAR%0i6??T0vr*0uoO!)mW<n zf!==Q39gN0>6jcVBF-A{^ng4lA;ULrU>~%lW7fw??|>^xZuIQgszU0o4!TxWtEa$x z($^hjJz98Sp;W?3rnK!<*Sv2!xLl<A%d=Xt?k8Do0`+Le2no%>ftZvO6Td?BEwcog z{Q@op+=)0{NYo^_SZ565tOu*j*Hv)Jlrc1RAcP8sAh)3?P0CylRpj%6Pi3KVDDU65 z`eiTT_owhx1>Q`{VT}uWUy}l|rBuV7H{#{>EHVo4Wk6HYm;C^{*D+0SQ_l*61u7>_ z5^|tDw5Esrlxi8s6k$j%D5=8gBsowHMtf~_S_847XZPtfMCu%>Q>wZ)HJU;vj0CnV zN4_KKQ(Ui<_Mq($Jq;tY%AB=BM`FWj36K-spByMNLUY02qVSO;jj@Jyv(gqVGqNT> zrtuQ~q|A;vQ0%b+BY@o}4As07NiYxjSiNwqMu+;>_F)JHbVJ1junYVt`e7z|AmaqG zsjez^a6(Q~R~X6TPnYtTa=O+C-`RDQRPtqs;UV@psc;M&R!Q{(VaX5w_JfM3D}eDf zrWjD40+%9zPe|rm)sD5-c)|2E-80lA+;>GuYHs08x$W+Ucd*Ma)WZPf!3YykMO3$H zEZ}~2*Y<*}O>omhlI;o*N2f_?w}#!u^qc!m3;#%74((%ZP}*zpTx-y4ZMcF3Oys+G z*Zgb{P(z$U+e9g9l8Sm3vjDy2l5ht6_M`Fk-+!Zjkw5?AqyPEoM<%qyD=sgA$_)3= z!OmZu@@qikKQo3|PEr`u<aG*b`XD8s`Td-XfCR2%Q1lYyqbv+LE+L~t)G8FcTJw8Z z<&0)OR@z*e{plOr=9&he=d=dmO)CE*QKZ8Zo^foPl2;P)r$-6gtP!?#*Ti(F!Mzk* zKeJ!&8LiD>*ZZ-#x$dXL5$ej~z0UHEn0Unj!9g{@=hts_q`pzd-Pe&xNQ|J#NHQ%N zsoXPNezCR|1}#>6siZzJ%Eq-;4mDg}ZuZ*-n*9a>xh@9GDbd!I`<^~+No+rZ{JD8l z-tgUUGqT(;64H^tLmzQCW<uP)dglua%fD8=KVlnFZHJ|U4F_m`S?|xm7sMBX+<GrR z&opSOAmKI9<iLta8fGi0R()}?`{kBON}t_#J`S~|7Yz5qD4<4uh-Q$hvzevRBxpBX zLI!S=0)^we(kt^`YTcd7OBIImE6>jwo236%W`005O7RTp58zlyDrBgYMnXe+uGXyW zzV)2XSdPj`PIh2NsCZIjT~rN?WLpH+&(^xHZY8y+{}O5vS%cErDbQDq_SZ?axKCDv z#!`HkhVw8_q9Kl`|2vFA0m`dhFx-Wv4;~TaY=l0Oa$G*#wYs%_V{yJF%gd+f1{F+J zw~a2PmGOv6H(-7svfU5Yq7mb5E<hTLaXV1lPy)(w;cWB8psIR(XlWBm7S*83#}3c~ zpz5-Lv`w&QbE;c27|-8mFFeDrkU+UwQ%xp?30CTHo}4%F{64J<%44Hm8{V3$J1MaQ znJeX;^1Naa;#xQc{Z+4O8l`{T#p7^C@EuXWg(Taw?ekc?-^=tRw>`z%KHJ9UT5jH? z+4r>^>cN7yt*Yys!bv?80nGsa8E(3Xw=FOYe$DQ9o7JOVig6f7kHnf8(|)MMD|U}5 z6xvuX-r$A&IX#JsWe7V?PSjcaBCs7N=!WzBursX@mdKP(Hw}o*gkC}3*{qRCs-E7f zqt0`3y*kqIo04?9CYL^k&hyzB@N5zB+zubwFmB6}PFI82BX@S7s*50dPTumLF$*vk zAK0<eh@X6}A02S?rUq$O!n%noYcQw&p`I>81H}k1UV3Q2Dnx^@oIX)B9Pjr2&dxDn zAYti}yu*~Q`RM68+kQ_srs?Owh(VA9hx>@!v?Of-u|Px1SD7zi`8-LY9Pj6$Q4g9i z)Hnyh%Z)KrAOOY(v4T^30tZQ5vejT|&x<DIfO|?$&LnpP=xbs)Pdl4}p`f4&o>HV^ zN_qe_zjY`MYF7oT6FUd#N`<H{9tR?VRaz-Mueszx;_cnf160AkyZbquUg!6D;W5zF z`2zWsS<wl9X)Y=Ku&|<Y8<Vb?P5^o+LFgCm;M`1E!6Viqz!e~oaAsqPf@7^Hat2jN z5_cmG9Dns(?UV-T$~h@m60c=`W<?2WaYAFkcEa|%pV_xqN#`ABV>a!%uGg{)_d!~x zcYQtAkV(qh5(XWhxKIRB#bu@YngaTgOU;sr1fQ7l2mFdTf9H=LvRzwKtf`^UYeXTz z7*9Z`)dbBw`{sM*h`dZzC6!=$^7^#`1>_=%1|qxf1$TwY(O_-cDDF!nigg`+eCn&E zkg1N;ShwNZ7wnuv>x$@_M+ncGXW1m^2pAwZaGM58>eYI-r634G<mS!8TXBC7VWXV* zcYpZii_d<4_0^xh{8~nX5}c&4?S7%~>z!~m#c^<R90zxoS677U^pHtV*xR1-kq|sZ zVkF7XTyt+M%u90pJU8qf;^aSvU%Y=+xB|bYZsu@*)kCR`NUYJ=$>S^t>qz+-tby4b zwg8RPyCK(a7^URRdQlqsb9p)S=khY>&*kNJIuerf{wa{W-`(Bc-~Ghv2nzaB&D6$8 z!fQ4Sqst(+h_EstET}4hciNULo-ORJr|xC|!LM5VngxqxR1l&jHHArlYJ&Uw;?4Y) z5AEF1CPlO6uwrpv6M-a5mG&i=sH1Bmn#M8{49!u|4yAwI#^83SCr2=6!KI?}X6DLG z({DdIJel3&J%x%NuG~|>Nij*YE$3leN#GftrfY-blrFFi;dw~`SoIkIUfi3UKl`_R za=2O3xE$+%IdUT$2lDmVX*>Ie_U7<TecEgsohvBf<D`_z1N~SwLiXpBz6~I*s8kmh zcN*M*$3cI}`e&#lz~aOUNtu%@A}iBx#{h^MQ$Q86!Lp_#2pqzEdk(~1b$XvVC1EWt zFfr&~fIC<NS6Y(msV$ZT(?M33WEAfLvOvR^tv$J6euOiLM-`MBcy|rF%KVgCOni(I z*QCmk-wnTV#O&Zg(A(s4kbbVm`0O?DXL{dXC6W$1%>xuH=8ahCqr}rASfdc-*oFS8 zG{};tJ|R%11X>p>j9MV>V1_D-Vl0bs?2&kStJzF$3x9QcJKXDX&nwOB)%9bpy5+JT zoZI{+#}tLTu!B;LEX}8x%Z%evE}K7abmK(bSVfYJ(vtnvCkVN4<B+esx8BUok&}($ z4SE#GDm>SIl6}R(NlN$t0B}&DLO6F2YqNGNk5|sa4?Tba35>^Ni}0`*ex{0sLVhBu zQg8-Isi}^n9vBt$(hD@r!2yjnVGeqFY#FBhC@K@m%537ir@W3vVwE`sYNByOL3jSN zRiR{lX+EPGi{W7mWzf7HU|9ev!bgL<4z!4bfezLK+<yNboB#TSKInFGi+rw>-Ec<| zhxbkDN@S5026mHDFq5jIQVN!44a|&N(yL_zIWJjoofN;JPC!;sMz+r|arymxud8x+ zc`4c<QE}A3Zy!K2`?GG|+!Y<N6pd-7CGy>dbU<p@QFpR#NmO72_wJglD4mwo$+NCD z5yp~1*tt_*{`v0lVfY!So&0cKFf577%fAiXCy#)mR^4@|oZ-}S{P<-B5G;bSBdXx; zLlt9;jhj|a4<{TC446v%MR7@7zE#C30exLY6%h^#x0s&v*0o8-vFJ)z!Uf#MxJO4w zPDkpy99bQv$RwodJyFiOqbf$)igQg^N}tp$(L+3<pK8VA3Aec<J~eWPiM_Kf!S?pd zYfk<o6c=+v8e>KlM2tikDUrkcySZ9z-ml*Y(MIPx^mKs&MT}6x5;$)2ycD7sCr}io zT<z;*(%&`h()?ZoEE)%Y9y&SKbQn6};6J*hFD`UT%WLfIp?~19a$4%zPlQiI9t+9_ zHK)lh&^*z#Q`RWS9trj9&!rI_p*W&qa8mML1p6@VZyygfZT;u%0Cdr_5uetBStEbF z-8JLzYpxVlN#7P!zy&qa5GAAL^C4YqYVf)=dyPX1XV$?%{gsCkB7h=>h9?HVFj7PN z&~Qpqf1QEcazkW7QpBPdhf&J10l!6Q>Ey7M3%|aq@+3L$I+Fqml4Pd}b1&_r8lD&M zlD{FVi7r#FjRI#lh2oKDcnW|)F04<_uPh`dKZR4Kw|%BdPYgY!I1BW=d6z-J&;s#7 zyTjiz*LTb(j(Lpc*6356L<?h<mJKCf1hPFLjKk3r@(*n-*vVoOjjO8Rw}zFb9K}y# zEw-5+XZrQ&8}ri*Uy4geN`m}sb%?@Tu79~6ZhC6eOKIem#3Vt3r5y!`>zqT#Uw!lY zM`|%z45#sSJY2sUD);L+)&#tF*EiI7;8hJ|t9?stoTLC>DpCC4`jIvf<s1fCuMMn_ zU?_0)L=kHnO;@kD$DKChZXYN;jeEQvtCp0o*0@y7QL8y1_?!$2ZcZ*8pmvfffiX#1 z(L25LfjJ=8x6<S!hN-^nJM4f=GbVVq2j=<4r2Lk<2Pn^n7z|ihG!+mI-L@hC{A?w6 zyL`C6zrEw`HpaS;D3v6d<RhD0uPlb6v@4be66%>E<g%^-&)N>`cY949F_XCF`Pw~V zU%Z9-0S`t={znejdLZOrJzre@<T_10ePcXaU!}?F>uP`5y1&e8v#}gV-Q^(0xnD@q z|AX;QQa|Yj=vGFt@ZLZGDgU6EG8(h3pU&>j_5Q-#pUFFDI=ECS{|)5rjX83Fb!=bc zht)hrdX0ST>L)6H@)!thskx1-5BFRymh5zSwTsw~#u-Q?hffbz!_VDYTcTiS#i;-} zMNz`fCp4KG_nNU>n~-S)Aue9|0vS2r2g%~5en2hh8Oxhox9vuW6B(Z?*|(%r%Q!Vz zo)b3f(hOL!Q09j>xTjAY{r%T>Ikg`IC|Iz{ZSlt0>fWD*qwYS?)!?ydY==41XMvx5 zOMX_8#rE)a&<!_`)ZIbg-6VJnW$U|(_7s%C!8c-s-ETj-xo&YXh}<Nu#kC#Iv+2li zS9G1=Sn;cA|D4$0Zn0euHn~y`tWn%hpw6L_lct%)CD%_`BrZ!6>MkL0fa9(wdnZN= z8d3jM?`G7lhsyolM%zX*wJ{TOxZCT#ldNgCDz}DqDz=$+WDi2IjmQD0Cn^56*rw4V zs0wy@33B|uhWoqAOGwE6AO7-JTc+1w%gmot^0j;D>Yb|EEYpmdSn#cbYbyte93V0l z_eeX<<LZKslQ6Tyb`EG9wm#S*By$g?w9=Z*6@tkXZsc^JISEJtAR(S+Qg;VORpJ~} zF4p4RRN_~=?$omVUyoEwUAoxp;hT52%{$RWp^m|mgA*+ux~h(F79SmXj}>D`AReqa z(qO=EN@mSs#Z)O6$Lq_>?rQe{C+6qhQt&IxU)-A3iZ{4K8xmL|rWI~A@@=CA8R0IP z-fw-tmM2>C0c>P~9%kQ93kvf<5<{&lVXu&=k0b>hoWZUB*`hyyT>uZr%7s6dk_9Hy z@;6)K_S=uvFFEJ7Gty0ru_VUmMrt7q+^>&LvY&^eQgJ}n7-~q&vXbII8D~Kdnms&G zfxTguWpXW%FEF<~#7cGBP=^sft3O2N3S?%NFb7CaA)CDIf#Fwa;FX-QD8=e!^+XK- z9dmenQP-1_bI3XO&Gk=0;Y$X><Ih(&*FPYh_3td}_m5OJAQ~Mw`S7Wn%zG0r8bj(R zUezkg!AIAmhfKRre1~!JuKA@M1okI+w9%jBU!dgphxg+bBH!Rgko1_Q<XnYxDJw`N z!n!n<p3^5jKE1er`Msi4by7l(*3^OoF-nrxZS4Fcar0wyebcm*tmIf{BMzwM?`Yc? z1Ba`r+zk*A`~jkH_0Bgk{QTj@U6-r;PR)oony%#f*Es(CFMqxI{OiB|`MaxcWeB1= ziYtlLCJALS5o*EpV=t@yy}T*n%+6}!ie-hzS?aC$t9}nj;mNJi*im=)2x@`EB{5B4 zivUbM4iuMxmM>$Pr^{|Ilj}QCyYKFEjZwwv4Kb6eyWN%kl9wc42^l-U$_d4W2F|<L z9b4}y)e4gOPQklKr6PTWDnczpvV%a+_U>};)AKF6yQNg**ZdJDBwdNtcQZWbvV;E; z^FPg^F%$4RA>Z(ZjkiFea&yDz@IIln14UjXRW>wHLU@qTaaWBT0h;^+>G~b}aFTQ+ zf9NlW3-2E9hkuha3?g0EH@|=yyu0~v=s$-enk%jeh!y)94T<gFnCmNP5HuM>3ORDt zCv{16TV3!k06$JBdy!$3=W$O_KMAV@2aInmpljFgFYh_LHv&)6&6k9|RZyo@6&1lF zJo-b&8a7<$dUhRXtaB%Cv)>))(5o|M8AK#&fWmh50Lfp40tm?~qU4nBPRD}5O}`+( zGJ<<ErwAl#l;E616HjU2q&aNQhj!vn_Jw2(aO#OnYN(bOXFW#`7XQE~nM-^7_T(k} zDpdAu50^(mEHmQdEri3=DZggg4$w4LW5<zzzq2k8<S7S()M-Dw36`tk2o;c{a;6+k zGg5YCfB{PgomX2~tx{diDNedOPU7xC=n^09z5<YmnRl-U8zi3o{P>$MKi((3e7L)k z7ctLi1{p8fMNx{aSc;J6ReJU0zALB<gG@=IPoaed%u*Ifgwc)UQ4Y5marDs-qc~s@ zvMbyP09e6E(yRO3bRN|H&RivIqKVHqys-R-7`|Q#u1Wmbsy$n;2_Ht2#py(xHyz2D z6<^FZ%}@Gr_m=7NmAhoW3keYU%|jHAIWcc@`WW-@NvdZ0J$7Jo`+$hJ8vel~N@`C* z>D)SvqOuxU^|L#`G)xOsChKIaR_F(W37l_0<|w|boTY-zD*TA{nss(q+wI4@Yh$6l zz^Muw4qiBDsBi>#)L1=ws($;+yY}wpz$s+OhGdgi<1&mGf45!T?UZc@b_+6;X{%8d zwr?7$1qjJRT3{mjtJ^F7Xcx@-8Q(or?c?<gYR0bC(qK|HxddN(f31qDp!X1sAQT{7 zMuo=jVXl2*3{k&-0;R-#`!_l^mzRu<!N_b1MfZe#!2bAOH+OAwW56@7atg3L2^FAB zQ}dm&$|%9g?R2Es&)g%0AyH+EP;eB6j<h8lM)@8YW6Q64@`tw%sW^Loht&Yh4gMD@ z8u2;o-DIR%G(Mh!>H^|%o!xS5QBD2b@@-5>gh`gw4b@3o%ERCsVC|v~h|6TTG`8VW z{v_V|n)Rem;)+NL<&RpVGl`GZlXCKhtVh)^XbuEPDG*5jBJT3itkFNKzP+3nV}vBQ zTi8$wPs{Y26ZDJY!ha)<rhBc&u;R!Eou7<gqDlBRPPrlg$@=DAT>Q=*W#%pWfLYpR zYx4<`CFP$-eLA_6bxI0C5typ2c;1{|bcjVPxzh+pRZ?ppil}3Ot{_!G{j<hR73W`j z#JKw7LN7T7Ji8FTy`+ibnPlZy7rIEE``><a|G0bTa1p*E*l{ENa{ISq^JwNOWv);j z7IU?Jo^MXj(cyy_GVcfxzyww$9Q?r$9Dv7~;Ui`Q*0hIoHK$rifnIs{!zbIFUS9d` z{uehQ>OPoutxSCV+5PvALc6z%3(=u|jIYrA-Zc-#gvWJ{^Bn;7h!3B%4b^F9HyxeJ zNe1-9{~#?$M;Hw&z;0d!EO*iGggN!=`@diJ;6eRrcDrU$k7|F7gGzi$;_NEKQ;^0z ziG(fjS9XfM=AKW7+aJ>(8&O^fi=pF7iH?HM;>gP6_qwctQ9|E=$ZeS?Aja#(g_%4- zZVSda0FJRT@oryS7%w+^0DZi;;L8^me{1e_A{>g0c98A>@N*mqaE=(4ERWgutcGMh zCJ9jTF(*0Amk>+(MZ4(v5GSquP>4F^?!xdJ=Bv4V#HKGU{^Bd%h1B;vDor+p_uv)C zqGEsviLymx*iQ=@7w!jtLP>piGpJbN38d~*od+%3?AWR@6-SMEqhcKt-+a9H3VSX3 z1;S5sHrplbmVOf-8t~ha`gxS}0zf-;YnD%uxM&#GlK81enHrK}BrsH!c_CPZ@P?C9 zGxD8%ABKAlKDJ~nkZ~Uy10%4zXDr9|glG!DdboH=;UW+l=5QUiZPbNEKgt?_H+4dK z5(e0<M#^i@d*dBRq>ti<me~E<`@36?NaL_4Z<PXxWO%0~;Q#?*<EC5OxTj&58P1T& zuz>;x-xtflC=`DiEN7c7qFiB74Da4QNS$5wK1mOda*vdd?X~8my}0*LFGY?y(NtC5 z(mrOyNEn5QfPJuez=4$b?*d{Z$-<e-mr_Advpgibu0wM|MM&!o_u!n@b_e2wB@9tG zWl;#<fr*sxR4Bfj<T$R59~uztftihiY#OnL9T7UXyO+5c*;#FcK0)#$m_2cN+gv_# z%kyWboCyVSZR-GHMlaXOzE*UA`?qYz7<>-i-%_v`9D|Bg+dH@1+#DJ=e_*QDWB*{W z6Ti~-ljlEyPL`tDNt@+02t1_N>ipYJNcBt^p689aE`!R{VVpM*z4_uISgzica&ci6 z?7on`Au0ltTYkuL&NZ`(1(U;2rRpabj%rMe`eaK^AO7f5zeL?%>^|n3oR_|}E|x<Q zaL+@u6R_AYP;b7^x(Y6Xk-!#UvG-2@SZMuzgqClLIda74kW@X6eu);5U`SyA!YZ)x zcA)5a?d%r$L?9s7jtKxd_%<Qs0a@2*p~Qn;N@GF<d;Ktx8^J&v1q`5678?Y$q^wTQ z-Y6%?mw@F4g#lXnj1X~BqF@qBWZaZ@=mQ(D-s#}W1qc<imAt`D!}A@uji2N$n_K~7 z1*>A6QR<-rg^{8G9CHQeN?#l+WHpF8K8-b*(ic7Y_;-K#m`f@G)!wp2SExLOCfc=} z9fT#dkOhgQhsW;d(pb=7VZpSRb5TJcmg+9ZejEX|oku=(zz^r0pi@d!MrD8sKRm&2 zO0=>AgOn=2=K^QdG=7J+yYb|%Y)um023SGaTu^*b&{H+XmyEjAFp+_aMbQAio62N; zSd<4Z?I{CXcXzk=kz`e+`>RSXPU~t~&(McAJ(;o9P~gN&0v~{EkSD#=E>?=OgUFTL zHbQZhn>W5{S&TRpasYT^-wxdms`Wwu0-7sF2OqjD%g}mfcN|&Yx|Lo%uDRcfsOiXP zCkU1obfaNq{mv^k@02NHe~0Anv3H^Q2=8=Yw=%|O1h5H2O9eJecSdkZ9aQ6~)WZVr zK*H1z5sYYFPRHLKOmk)(Sj>k$K1DD=;6SEDz=e<n(vSsqEP{FT!(L21X~9ps2pA=0 z)?uiKYY?ZBC+IwB&)r2)ihRbo6hSZmkPXcWZR6O`PN&Sazu8WH4kloL+y#XcoJ$ex zd-Ldt0Z+6Z=pZD(2*5BdBzQ#l@$`0X8Ew{OT&5s!66lqqK_dD%-lfdJUf5#OH+{_2 zXcopHmvOP@GLB8rMN7dj*Kz~fZ{LnF-regRDZ0Oi7JZU`H><P0NE7f(LsKK7r<HYN z=)fM882U9xR*Jt%Emj@6J*8oC>8%dd!!Pd#-0Xqp@7vIy6&%>cMX*0!w#@k}jTbTr z%Zkm@QE(GXU4U^+)IH_5I)fP+-{K>jPo~;QDn5g0Rc++UcMmdwDE?H#%X`)+L!A!j z8B2?9KHM6y&^Ipi8{QarRNY6`EfXu!%SogQ#)vo6`syppM_Se<_~Z#%!2>RZ0MNPp zRWF>5EFsFO5>?0mYxdBQ2wYp1&`Otf>p_@jM|K=&tY-6JDF`%d=5U(*<I^{07q1Ui z?b~MR^A_f2T%*^NjbPmDaN(V%UM-l;EN4dLPzi51_U^5>5>YECJ^)Ln7_B|0qzzz9 zzVgyy-o$8;jvfwK9KOo5SJ3rSyndjTXG2IYK-g|g_7n%`;5w(!W{m#d45Z-b!K$&q ziCpuKQrnIUFFk5R-FUH{kkErE4gPd&fYXF$>Q+zep@Dn0p@1Q!>#6#fRqV-)WqZ18 z3&h`2N<Lw&+LL2nN!wVY1&G-}le#Jrv~ubi0Wu*mU*aL=l3Pv-*M(p6c3lQ9%2Hea zpaP2qvL7j)awMWQ+ci0`ByA5QIyFgj6k8CejD!I6%CVQ(=1i|4YT6;CdkXQziu;)R zN%k~QM^X*n(m=qnBG0X+5-BV7usg$S`lFiXL4RrBRRBO&k`stYAQ0M=Q9SC;II#uC z9U3tyDt!cgu%`e{W+aL~(@w_!SX*r*9*@yao@gG&y5mE=)!Xb;OF|-`G7^o0B$DAi zVzZmxe)?v2t==_lU-q`yy-oQ|od1Ep4fk^5eyiuG=%iPYdn^2^;!mTZQ~?iP4-x|Q z6^Rwj?yzw;c_9dZYszkY%WKnb0C4v^&V%ds<_mEuD{}GmIJg||eHoIu21=bC5lX$a z&SU^hZF}?kVQdKUnfLqk9$UN~f^ld1iO7l5+09n*2KZU_IFaxj5pmwg<}5HzyPqUp zlSPnRWACH_FXFFixpK*O>`8vC5cXAIMUtKm#YvSA8&d;LAYq?e11gg&AlEza@7K9z z2W9f>N^$2n2c&gWMjkQ$V6G+ubmS%OqC9-aoQu=lTP#x&4ezc-O{|RJTm+6#;G}_X zN(!UR?%3w<nLc%J{}$$Tw7Moj3Qbfj&`5%L;sn;VeDEjsI~C#i1P@B$a|+3#RAzMx z@(?_uWc5fA0d0*+C_ljalQG=Y0Gss%WuzV+6Y4fljgZ`LBXw#KYL$?&##S@Xh1Ag^ z9f#zCTDa(M2cJrKXbvezX6mZaP5?w;5?~`|8o}wZPTj@Bqbi5tl$3J+6J$z16yN+E zHRA_IBSa=UY5?gE5h^yAhcDik%sF$HTcu$FYGK|JC*h6mbv0mk(7@CPqR?znnF#r; z8KhHF$?o<?a8S^*N{i^=Kra4}kopVpJV;Mwa(0JnhVKh6k$1>)W1o|jf)Q52K_f*- z=X+x<8ZZ#<C6O?0vly3bp+L8vKKXamy%ms2W(YxY*lKn&du;XEe@uRXC%Yr?LM<?< zaHBw%S7TICO&eWnTGCH`c_5BjC;_RV)RB1$x4lI2918V+sPFP4kxFjwe8`7l99Foj zdW<6qFh=XsFEclll>%KU?7<~GsV#|3+Tq!PDF}}eWVb(L${X-20PPtcQZ<_sv~a7t z=D78MbLFfRFi9!LkLa$J1N*ttZ&g;f9b78%9e<;XmzU&x?Lynis;Dp$&Lj*0LoGN6 zphhy+zq^yOTU#aP_r9ycmG``b92>07&2=|?C4ZO47NB)`!IZ**!cOHXa(S`h3!z(a zQ*OLcFPNN>w^+Gj+asr&Di%xLxb4Naw2=_=-CbCyc(x+!?l)`bsL|GTl*)w-0wg9N zXq&EA6*>iM`HKs-H9T9o<q`CD%ZJ0Rcik~fl7zl-{}(^2*TS6Ngx^`GO-i{JlBKJh zgvK@^=%eR17Z);WQxj)Dkam~1Bh=a>*dwcnKYyuOr-A)p5yn$%4j%D=iY}b5sBhq9 z;41+bJ*ns~*0iI#dr7t(4hAwLfJ|aROso4zO5EgjPQmeD<^$d@!8gUIUp5%|+&<1l z>{G3Y9t(n`xQwtK0T*@5<Fh_bTf8ljC*TYUqHEYBF)=-7i+s>$YNJqDhzH9bG~fcm z6z(>ocs(aopujDQ%}lZYnF3VF7AfPha-Q3R17@u^3_0vpot+^Cv{9M_8Y#R4M!Wh3 z4M@oe)K0^zn8rZaNMB2sY|TQQz1KJgr<dZsQ;kkgkSj0M<%Z>;f-W3<KPXcIlpG!3 zeQW_`$0kFjMlz;MZE4M&;+V-KSwK`dsSOS2jlzEH!Uk`OW)Zx=_*cm!!x<GPo<&f9 zar@(k^&%@MFBTQ$Ku4s$fl3ow_Ck*X4tNE%?!MlA*q7Q08c!B0ghJ#a#DO;RWJPR} zT^U3mP%-zyrqfZ`crFZ`vfiNb!&nPIo2=(na`%)%^tn?t$+sguM9G9oD1^qoX{2<Z z(Zinm+24Nj@Af=HX9s>ffr3|m{U26gQw`08RfLRQ7U{zCjdoO;-7}x@518+x%1T8N zdPeE;iqKLP2T69`^eK#{lK$=y!&kSm={8$0Zb1)2kb-VY>^R4k3$DL$nvERys!pNz z*q2rA+VYK@H-iA4J2J2c`j~ZOtk%MOwlEe_t*XuA11nfc{nRlU0*=RyO_b0Mf7Pp; zCtB!aK~VlRs|Kv+0cg7}6|vqOob$+>e|dlR?ys~;vFB^5x-s+^%<YS2kqDbeFr52q zWu~HT&C<~Y0D2MEV~djB#sKx7?$f}#N6rLpY!EUij>kug#jV9dCi7)ECaZR@9k1Cn zGg6WWba15f;5@VdCQ_raq#(sOQYQsR4QtUsinpd;J2PvOTiPm}UgF581=)P{mL9Y8 z3&a|<BLj?YaLNg?z+aW6f7TOZ_Tg0M3<t1)RMJhdIxy~@e2m1gQFO0l*Q!_{Ox}?r zOOdr4KY~+)_4<ctps%N%%mynO;0owStg7=G=NzZIpQUH_=YXQ9l7aK4ydu#C+7ZSS zLckWPs6LM2x`SAW1KM2k(wX}Ue>-BdDyX&&{ZfYm5GBD}vT3OM3qClDiJoj#A_!ce z@I(S*?MSUJ2As|2Og<!Nw|822!2Zo<<NWrc@%F$0{~sUy&reO^8$FiYQ`!q#W8A0Y z!$|#@_cOnUp3e-z#f5s(FD@+4*2M*p4Rmf8<G#WY5UT@CwNl}P9U}V`x-_uW6<+p? zBSs)LVlr^iPXzBZ4*Jr*)y5j?m>q|^tHN(tk*=p<luv&1zaOjrqwSuZ2e>Q>h?3|X zAB8)VyekgtmhmRZ&E@zcnSv<l8JwS{e1N@#TY^Hk>KP*Q$M~)p0tijz_p-Sg!U7=Y zv7M8SI>LBf_0pze84j*l7iX^FrK^rQI(>up8=D-)RpChpl#ltSW>?G=4T1-(N+{w; zoCuozbnOwMnX37FXs<CDab^BE+>_)fhrV=qZ(02L@n%XwdrYE_9p8iAd3{H&nlKJw zKgbVRE18vn2_Vj@CJP+W{WKAkm5zYF)OMK9n|&5$#eIiG^`*RJUt`p?3#rneX=$d( z-weC!{;>%N-S=O)=qW|LP;#$H0_0O)=%?g!{69{m<v7{RI~iC~IDj}41p*}wD=$aW z?2b?V-D$=uO)O!Z8!@}5ub~dqA-cTOAv#UW#L!j!bWhZU%2UJ5PU-eW(qI}kT-%bY zQKMMSZ<$)N{A4IylzR+GcuX0aMLxW<gV<a@l$3Bt>l6r>@wLmYoh|9LXor6Vu@e}) z$eh4x7l@uNi`@7-AZQKeU6)v3rhc{i6TDu#uT9d2(n!Hb`?wR1EZGKGPs(veIw#@d zUYy*x?EMXX8}UNr0!zCeMg1Uu9~MK13ZkT~5+T>*_deWoRPVBW@=<6oDWU=4BKaWV z-V;AL{n=OrSYWIj1U$ExaL7#d*?^G^JjIFOpL@Kuv7e6OV`NX%X-qO7b76f>K#b)E z>1kEZ41HU*53jkpKjuD_ze^2w<5ZCi-WcoLY?}kQP6P!AxQzt;VTy$dM<;S}@KiHL zjF&BwFXm`tWJ?Miu*AmVjA}m=rj~%??8T>fc&0A0{e*pw9pD!PCrssjdDPgTs82!3 zF$iop^r3c{#IsvhoLd!Xj_%|Vhyu7jA{gM-sKGAV)?AbZ99>^4f`E)TG<-O8yINRN zy@Ky##fgI8o-Df`2N{W_ESRo@V-&}TM)%0kal(Z^);*x;u5XE+bJWw@+Jq3y(sD5w zTw|hd+&D(U&p-al`T;QaZyt830mLE7nGY~kQ+P%IO6pRR;0c@VH;<L7Pwm~^jml%P zPlIF0e28QCJ#E7^##W}{NAq45@mJdi)Kl6gyBA9zGUO!Bav=xQ_95{k1|~)R{=%PX zW6Nk^ZA#1vBas&2t&!1Ebz|8X(>>8PCjD^sKJD&8I)rXOeYJf11ATNb3_^QIIVge6 zHK!C3x0009XpHy<b|Hv;0o@o$stS~qrL+E^Tagr`lX|SzFUkm0L5XrLKtx0qRIj)a zI|2g0WRx4sUDP>SnNZ^ehy|>??o~5#6=__J<dMjC@-J`y^!R`Th6Rxk;InatT1~Z( z8o&ckdW=qY@sq_e;q;L$pljik_T*84fqaKezH9nas<Q}#L`Vj^x^eBOnKXYJo_wZk z*%wA%vC~8j6_mNY-bu|*%+9!CPKN@v7((`FgL-LoBYNSU9-g#3hwqAc0~%X&u<R@* z?ZBFrNz}_ajVlX8bp2grH7owEs+AcZJ=WbyLY2N1UQQ8jpLx;i^n5WQSzr3FYUVTI zP0SQ{hye)TyoAD&<8UJ0w9PwBB)ysho_RH-@zestYa9b}7zlq&UX6c!Sv>3N7!Mg0 ziGf4G90G{vl@8=t8<HH56RR9PyeJ3q8xHsC4o7DQ;|YN+AR(*&`|kQyk1At(?kTTp z2`=p8nyjdZl-ZF3IHy?Qq{7V{NOhYu8OTfU>m_$`5TPpJikfI&W-7a=eQ)o;@Aucr z7}LbU{!3OVFtJ1s$?l?;3|k?ea<ci*^2?IkUMZ7E1r=;Qd(Ei5`%Wx^IrfxftS0yL z<)!=jQrBD1Fo(UU#88%m8paGl=oFwR>3JDGW#MaQYBu|SRM^9Hk$|c~jFPQSp#^=N z36dNHRFK|vgNXy-2OJnQi`2=2!xs8$2uTJJKf!f?qX#^Ur+lqY46p+Znor`<t$?iK z3G0Z{6bS6)O{aW!9h(uaeXxdNpwGaf#ni;@1qj5@o7U@FW^lbYowbG`YN(vZnUzx0 zqH3vbvuLlPYk8rbABRZK$$F~@Eet?{@G@1H{>CV6C1L9rLHPS-xBJP^HJXD8xbDel zjwRzc<YG--4R}J}JnsdJ?b`oz#&ft&7$Cr$X*E)O2kY`Q#`C=n;l>N-&Vl$ydK`8- zO!3w<K4rn}Q=pVu2{~nxAW0y0<ba)1pd4J}FGO>KvzxpeVV7)Ci3H~(Hu>Ro@8^A` zOq_07f%NUsuw46EiY#U7r&Q1laeRT8q&oc46`-#H;$dFn=}I<7C{UbOk6AHuEQmH_ z+ZFngXAMf?nt)Zx4g*0`iIFpVg^RfHyrHu^p(R^~g0+s|x65Gd!S91ll67mWBUM!n z9R>@N33Fikkwb>#p2UBEM#-IcxX`H9SyqTfaK)@tchT?9t<J4DISSB!N?r^*wWRgz zc{|tCGyUD-;B$>Qa`4&cbFSFXig?D|Pq&(?Ppw$w9sWuZ7$bW2g+T@Q^N(S7&uZK> zPUK;QMsgUlYC)4w<Fo9*%mbyYjN(-qrVSc=aUqi<Txx3XhyG8atMB>fMI-lN3FmEx zMu1P0y@*BXM<Eo&RgIcp%A{{j-0`Ctv4dX}M-F^4g{?192RNdqHedV9sI34<ts~y` z36kuzu4{OdFsF$ed8H#6ceTO7ld+*^99d|{gn{&Qs6!D9{_3{27ROGK4nHe58$QMY zjSowtDkxYnNm{PE>0Xpr$bJBnE0U?rE7F!II+6%4D~BvcQV{@Vmw}T1<hhlpo|Eb^ z9EL;>w<ov|6b=fNkVkBmkP6fp+nlS-baRJe9i6R7p+SP*tjTeMNiMu4o0IFG{10)P zSS-8HHh-pdoBm?bZ1&$>`RgJWb@^rXJ7WD&T$3{A6m-EONiv{*z~JO9CG>0oX3hQg zyA=D>6E{)eh`dTt>yw;dQ8rDr2l4o4^e=Re^SYyZ1H~g-85X}f=8w4BiCR-bi8LFE zn_z?(mD3+eCo3aCia>%ETi1fhqShb8j2dsyjHO^$ooaGuqCm=mwie`b#a^puS~yYH zVv@S~`AYub<>~yTW`^_*H#MXak?6x&4OdSIwSo(q7DbSIP99FKzJh#}2tG{H`TE|h zTIU?lwu#Fixe*Ukilsw+ND8}k1gWH;fbYIIE_21~BSqIjkw?9!Vem2VVuX1BlLvz) z%`8tUV2#yCp~!;7YG^D%%hL`pP5pJ85F~C&IxV&Y;V`Wfws1mhoa{0PmzTJ5MCBn1 zLKGf;d}8{uZwAVy!-M>e^hD)LTbzheBu?=u%E?b?c?Y$tOkj-Xe?uEG$53E+hZ@uB z3k|g3OU@>7u>Dy-VkFAv_}1+KV4!ibB3M);Lco**;*#wDF_ZICgRpY-pcQO}M{c90 zmG$LQ>#U*s`0{Pa=D9|X)Y94T$+*=fXC)kxzX7Lk;xiQg;XU&g&ByETNWsri<35E^ zj=H0R)ii2Dxfgz6s}*Kf$%tKCXpkKri!c1(rVP=fnX+C3nN5~(kd*>OAVv)uL1ZGY zlV|3lz;er0?rQawy{)t#Wa7z7fFzBIu00XjqQy3|*X-QMv#&6<-iP4TcvUkuHl>a; ztr9oI<z+}ne~SILbZ?Nom~t$}AUq1v3+C>PCpSZ;;FMOZc_D^8OW1$#)($BJA8E?W z(SUE{;AUJMmZ?2YafeXKgRIU3Jah^vC@akO>J)bfCbXCpQY)z<YaOrNtRDwDq1NIl z!w1-D=y#Gx{QbRFD29a*zKFPm6ulUF@#4+yIPgus_U7wp>heKvS&)9z^+^MJ1%+j6 zGCoGmKVU8s<Ka^l^YrocSqr{OrZFW?<7^;{Iw4C_=jw@AE$#Wm1)C4@W|6T5Y-Qx) zgw^_vxU4@v;yAbyNz$ZJ8c%rPYw9%&1fzrN2Z#Sv50L}2Z6mfuLTmJ9srT$1#i2A0 zZ+4RQD+vjyo+P6xVMj&^AQ?l1V+S8EHJh0+9Vrb?PkNFu4@CaHu1e<;W<bkRd<HKA z?obkcS<T3RsZpDUOE%u!h-E~63gqu7s~}2aYW<>8aN(#*AdsB{3j);wPW&4p_(9}S zrN*o2m9B#%H6)p6;}M{fR2-1n!9yp8>DZa{Ap>s;$I9pv2EZWdz~!Y|hm^pOphnXH zdXV7Z{_veJvz2=XvkS2iRbQJFUq~hi?$UYlfnQT`2qX?Y6npF6V#59NUx$?l-I9K0 zE@q!p1L%W<G$pXxV*Q82u&V-p?hifLB(~fwHA%am-l+;t?nx*3M9&bo{k21GfupXe zvKe#o{@`GMK5LYeEw=^d@&G~~1LYAXYUS=Z`g#sa>d$jzwB-NS!ZH)=Yhz_uBWtyP zW)J9=3tW;1jj*|R`QR-hE63w52htHRE}?V=y{Ul&7T9Z_#Ye}S)ZwhBP9)|FwRzjc zm>-v4uWb|T>t#<7R-`oC+#DSfiaSuk8m|iV-0&?Ddkxp&p)s+oQ^RF0Xik$qua<@k z=O+{sX(5>!05UkQG^apj^PqZWJGeg!ua_m`bP`HPz#a|RFq|`>n2@&<qHjY!Y_>k6 z$qz6OB0DZFKI6~OcM$4%&T5x|lT&s*-<V<#6x{{~0<jUywMKo~%d?X2d}yX_0qY&L z5GwF+RB(_Y!QrX)OmbTxb`VTN36V+FMZrtA;!6&soxvzRR$V$0)WKbUJa}ejXqhpo zdrs4C>_IO1d+Wfx5Wd0_A3S|Wr3H}?nE!kH(zv-t8#H;L1vPWAlEnw{Zq!$>TK9$2 zx@WG>x~gWMOQkA-DDc1%GOEUXz|vY~??GxPWqrE7qK;Tqd)3Kg?`;cQtLwiOeZXuu z8b+b*k)kkrf@vfEcbXG<QwCXFD80q*o~Qy&mqEkNP4{pmtspr_{{Ah0bxOY&o+*T< zVvJ=l{ZX41_BSwU;*nw9gk&>*+Z>lhr+$+(B&a%M<xqShi;;lSlW+DK>xGt<)wR}T z98HhJ<=!*4a}l|60Kp_n0zU4MgN;tlZ~^|H!y+P&P6p`dN1m>{mm0IMS`xvNu5Mv_ zgcOPrSojAV&H8f&DSR_AkZ6FSidRGM*W>1QZ#KiRr$fv6WOiJ<?`Zd<`b@%({_c?s zu`3e(2G;-Y^<Q7eKf(oEi^#un2)R-g6RAHb2U8|Toxl3@`INzg%yX8*<52pi@4%;b zf<uuwDIAP_R8;`|f=)=2tUjnR;R(C)>FuEKF48RO@{z*~X4gr$A35R&SpSHmM#2dL zCjhg6xp&I=A3frw)|j8seIG>?l-Tq`b4*Qp;=mj|`+Gp-XwSePD6K=)EFHFD#wBF> ziT6~AKlU5AftdyKnPX>H1FT#{CIy994#pXtw|75-lu3Sfr*vxShqU>=LRUhF9y(4k zfMSWdlCWxK!=^+U{YmSf5)yPgBvYcK_y=;m7r5wJ*mw^eqX*hvoj(aIh5=-Imo^<X zb<_0zms`EbtnV<b^)YEbHhT8E=KcpwSdtv!m0wfc&P6dDj0I)2ED2$9JZBKs7;s3? zv1Mrk^P$)2m<_o4rc%O!dPrGW$77ZWp4KY3<%Ad5+JRv$)~ExP0qg{X8p~0D08=ei zM%m`A%Lv=7SkiblelMvjtCtj~W?YPhauo7Otq%Li`u$;bOWd43k)|-&53{s}hyt5b zJMPkkB9B8RNujJ5@=Uuyb7{`gAj#lZf77RLB;5M9q5C@|#4e$D+Hwb@K5;2Y(l)$9 zv;@ryEo)GM-!TUD-j2}SNS(#SU7Pvqddi*@`C5K;1RWz4R{N3vQ)n;{8|%TNI9<Mi z(r5#;OfeAXamYmD@RH~7Fhml4^Zln06vxF6O0B1&7x?mY`IL@tG`CPiL&eCI<`Aj> zndl@WsWnUmfMFQw<xL;(!BW8w0&#^Z^I>N&>2(#2Fnf*-VNEL5b8PS3b;>7gk(ReW z{%3>_5Fod0mV%9gSGh%sYk%-6o&M6Lj9ZXyhMy}V(0)Lcgp&z^c>~l^KQV5UIRS#= z)$gtpg3iDvRZ4{?Xnz|Zn-CSdfft1Ov})F8GJSt1_4x3bgA+@@IhH-VuV4=N{o!t^ z!|xC^Pe2*cMBoES+ot4rM;bkHQM}QdZ_XrGsv*`qbH5g;u;gY^=aS_f_zDZcoa}mp zhVE&5$8_N8B)S&|9!1^l8{-|aXC2i>5(2-R0T7hKjPD!*>n|pYjGhUHh@mzIMK`OL z1xJrC+mB7BD}!_C!2L4SIw?ns4ndlc5<XzcNjM~(U1dw~=#f>c=Af)QEFl!G7FxK1 z91Yp<V#NvaalDZV*|*Z9I1aO)<&KLB7npz{)!axfp83n?ckck!3f@ODj{mAUMS!z< zy3?;A{UamKt;Y9P0W`G!NppZoYYsqZX35850ZHFB7njg}p+?SiWEa|KcHQ+ghyISN zn!)nXTPw~ml!QIo7@j{(sn~x#Pdav9fX&XyDS=@C##>cXe}1sx!j0aWkz4D}(?&+u zMr5Fu8=ZgL;Y0b7Kh1h@%Iu7(VQ)eChcwWy3(0AFV#mn3%_(F;g4saP<{q2=m6wE> zc5CH+aL-S3eUo!W{vqW$0PJQk6zGnBz3{vp_>>5N5UGRbCaq3tA;|^1+}2l=S#29j z5rc&-H?ps0Qhs$K>OmM7t2{R2fZ8$%hxYM%_1dwukBWX$_Xz}pSV#FEYl#IrnLJO2 zmN3*yrzn#;g*IO$(A-uPbZnt6uW9g4->&A!H&#cS8>_?PI&H84cPzyKsl<f?gQ82Q zG2)3J?f#G?v}^`XozH{qk$OsoAVAO%P=+L;Q3HfV%9%?C7M||W+K|bt+RO_@Zh!Uc z*|DCL490dLC38YaPIQD)98(E_nWEfDMM)o{{#kw?o>&sp_}7c-BXeMmN?w|Yf}=0& zF}!=qi&IL92$0bV4eOXkT&V_65wyFXKarez|9h){g*eWzaNMEI<A)0~7e=-3?!K0c zBI$0JUPQ$bkeyQVkf=P$yA?=ARq(IC!Q#CX&lvH?yd`DhF>Q?#<j<=E-<MGdV+Sk} zV-xi;T8zwy>b|iqgEGix2|NBJw`oDD&{z#;YTuv2AjEM$?7I7FHQAXafC&U8ft*nT z5)xtWdPw8{ezQ<(MVQR>NK*&~#HBL@Vv0$171;<G@keS*1p-J?{UkkzZ;~ujQpcE* z%ozIAZ?bH@cG91)CUgTz_9@^;$|-i5PXw_m=@;a>Q;M$;;vaj>>H5!kfA-M)pf68* z^0MRrZ__dv5wLRM*>4VkB4bG)hRX2NYlLD*>IG|}?^EAx42`r_$C1;0?Se+nKZT&r z?`>IOvbT@!2S>-fkSUauqPPm-CGhcrk=NB=92)D^VD)eh%?fGeERq(^HL}#}6jHtj z$tj)_bMdfUXuYF)WLudb$DP?20uQI?{oPzPgdWPpHitz=s@-Gnt5Czc24OWm-j-}N zDxYwu`O9i}xbya;>Z$vseS1kFAal8(8Z%}M9))><;^`RMLk!Afg>@)Sx2NKYTBO$x zSIxXwa+a65h=v{vuOu@GCUtq+)BEhd#S}x-0Pq#C7l_g%t61{x3+}yz(a*z4**l7K zrY|l&mx+);_!eBP*9t`L$GL)V%uJ2k!Kb@;1gw~jsmvp6Bo=Tx-Q!yDgkdbEr@d2( z%8!uilB5`=J+2idba|70$n4rI)m^JHmbjbJ<puQ2##@8<qWyqOaXqD!=48nbHF7?e zyPs9j)E#TqV7g$U(Xn*Qq%t~kEUNNLiKCx}`>s*iL#ce$kh|8B1X*W--QK^=9|()a znrz;U7stK0cQO3>5)Q7~oV;~tgxU!;mX(;je}V@GF?0}WeVQFY@ibV+TS~!quo(0v ziy@feTnFOVkR{POr2fjFMGy)lB+lZFD99dBKhyq=lTv>B_%2yY4>QB0Y<?lD$)!X` z<0q$FW(+BF3~s(GmUyq3;m7yy{S0Fa4WtM_Srr$_Ae!?2Z6`E!W17>3?0n#;XjdsE zZFsw#N&m{wO;jwWInLnjdO+-oWrfF;B|nl#fO3(QKx|5=Cauc0w5g7k$6>L0UPh4@ zU)|oCB7~|han(h9-J76;bJ}toiTt2hJVKMOa3lv+iq)YHh=`mnOFzT2=-8qP#xb0w zc7*O04jN1v2@$i={XX=!$*0zY#@;^kPtbOviG(CFPMfr)_=VYrAGQ_3*CXrzB#m(D zQpz?F^Do#l{zktT(#_R7+Y0_cIzU`vB-l!Z8nq~UYq6ZZ6+&UxN(mXL^DxuU!9^kU zTfyIULQ^-UuuIT!g-;~Ip|8~uzoh7}n>3Q@Gx>LR_g-;1Eb^$w76UL0m3D@;C>Jb! zwj})<j>1phe9f<o4Xj>vSpd8%j)UL3cV=LaK~qQ6JOdLb#HFkl%T{eXK!ksw-d<7y z8=l_16IT;q0!rZT?zND4(UR}d31wRsLz+~uNx@`Lk^#lfT(XD&(qW~?)&a1j%{Bh1 ze=WjdOi6-d2s^lXQmM|Va)3cqnq;TLqkkJh5>ex<wPSx+OLt>PHhyi)L*pfQiD^tJ zLI%A<$wAY>1da}1r_mOoQ-8_-52jBb-t18*mMf^XeEHJl^tqsoiS%sD$;PjBs_Yik z?Ot>k!)oY|GXo%aD2h_}E5&9umsYmCmGi=eq13vy;euifvFX}`43H8aj<D~eAy@<Q zimUT|=iA~L8!RXD2xkh~0Nm<8=QwI<iEuItmXOFeJNEau4xHTb52MLd?xIh7$U7-3 zjohhnihzkVyF8<u-1Co6RudQ$<PxNmP?ZtoiAS>Vc;{r65AFFlgyloWLyl?xKI|5l zl3_rnh9DFn_I<KXBtZib{nbiXqx*=c#`x+x&=gHHa{RW?ykLdS9y>O$zLVn)gi3`* zp??t(NpdO}MM{vCI4p(V#$DVVDSh^+6PTQZvPet(N(qcKr4jZs^&n?juS9>zD8E7F z=W+mRAq=28;aB$ofi~)pqq7_Nn}wyM5^9nj&4W!xS}wg-USLuV5GxRm^1-cT0YTV9 zBcA{zyu0%M5YCq_0ozW=Uep#CYjxn<_2aKQI($hL4e%2-4gMX9gswEv4<E!KxC4d; zx-r~n@soznwfMvloQ8uDAgqfz!8WIj5Pz7BA`AP(aClx)=~q}!YU<G8dYr=H*G1<1 z<S1mGL7xNOXvz;^e0wSRt?1icGR}c>YM<TxEF1t3xCyE>E8vjHrCN=<xIN|Wj-yi^ zWmGCI(+2+D7Hik|sn&N45Lq%DNv}rZFDZfdlpW*R6LjC!S+#b8dL~y9eNcIW$)w0c z14e@q>;a-Ln1#<Dcd!Y0@xCNYa%C$zDM?$y6eD6Hod|pu_ggR_On<QL;KQf9XF|4( z`LwJyfSKEC#J3_iCyb)&oqR{<C5Fw9`oabE7g(yo`M4!5>XCB+2bNYNj|zB^2sx#= zXkqZ<81q-<1!^K3qFf}6qeE?_Dpg+RkQKOt^d!o~?{6P3FWVx!y!;tpxctO^eJC;= z4`ZEh`kb8Pxg=r4W@}+q7w-Rjg#2mR`%fofBtlnV48T`aR%8h=v!{_Tp3ub^En@=! zpTY^r0GVdZTuyC1B(H2dFC`>G-Vv#jq?=|knI2iZ5HzA1e8vjc(7^1k<rMqV@BqZ& zp;3xtRbn?@HF5HVkF723Nd>C=N8F^=i4D<eo0XtwN^D_>vrr%0)$O(HZ$a*%dsEz% za0AB@v0bCY{A*Qn0aF&k_DO&dJ0dG=fXml=nX6ETCohn7dJwJ6gb_0Md?`19v+LdU zZU=4q?x?WA3rrz+YF8y$(-1$}7dHOfPb69v6<{O5u8`&YltW<Atl%t&{`(2tVQG*? zm=P_Iyv-iwL0rrG(s5drF7{RtijAQTFUc8e+QE20XJ?($S=|%u2y6p^Dl~fy8nu2W zH%x?T8|>-h>?Y?!J5oEQ8bG$^2%-XvdoMmn`tYx{yz%yuw^35J9xp1(d};e1vXwVh z``S8~W>T=aO)sE5GEJ2$lf$uPNhV`CLIxnA_SqdP>%wl5y*E+fRLBcB4N{Ukb8JYv zrre^a-dWkn0)$>0_a17=2<bNV45Hay44xvP<Pik${gtP4z90Vacx@U^oxWnAsuBn= zDDz^px~-e#jnnD5PZ_)A{&*}hpla&bU2;KspDt3CZ6rB39mgt#Z84eVR-VyzjE@Yu zH}#c$!mGFDPbW~Dd+3C#eIY3Z6NqJ%G}H}+>l@n{rNdu6^d&dads<eu8wTO%OmdVN zOhVMXUMjQ`=;DGrmK%CG!G-Afc*{5N_xXYQmWO1(+-oaB{Ar(dNu5y4Q3926hieU* zWG4Sc3O}$E-(9&v95e`)ijrgpfI%psL<eZl{2uG~kP}yqbRA1qsEXNKw(fLc(?iTb z;0cQ!(~e^IesTN3vwje$sYxg&LKsuV5G1|zgUpmT@mDVh6=ki7*C5+950B)5!$W(u zdu(NL8K}5mUP~hUb%U6j-=fo@p1^sn+JMsu%LnU6XgZ@DM)H}~4t*hUo!efxuZ)w5 zZ^HYOLGhl_g|f>Adb_;IoV;?T_JD<P|8gcHSo}-Y&nD&;&3N?znO&;>5bcpdStCWN z=;`{c^HcxRjk|*NwDrxS=Q>()PcfvjiAbO%j=e_X5H7Xq0PCW|IRtCa2p;u_!!0}f zEQyc&ka(r%#me;xqf=L8EfRQvx|Gc>1WI~^5U{hl4~6wNe8w_JM`cY;K;uq1dwU=( z6l+6pQwvh+{OA?s>vfG_4SCbw!`@GmX$5ZsS5IGayh>Q?6cZxoQ4|~{=F+*o6y`li z`C#^S($%uF<s9*OPlu1+<<;dDS!{vj<zRj8@4=%hbI8f<OF*Kv3FP7u=?T&Sp1wK# z@klgm)wL-Hps6=!e4C_1v{3T`Mh0(!albtE)G`wBpbr^2ydtD*$~6_-0kKKhjwr?@ zwjy0aM{%4P*L9%9fX2gR3F9IxgOn9FrtPX`y7DjybXC^nLy_kl^#qNQS{hV=9%8{U zF#_t7lSRDQd&h|sIFTDj^?@{E_f7NDmkJ)N!E8$U&nN&kOt~C&RZ>1vVh5al{;DjA zay^51^MF0+n=$MT*pXDhXmH3_uiw9xstlPWS^0Q$qi!4`;WVFz$+k7BEk*0#2Gofn z>!Kess@DSe7Qw*u$eKEGih<VwKFmT)u)l@XVdE70jqZ_|s&eG*N2P+0t^<vP3<H-3 zr8?(QVdaBIWq&9sE2)j0wNw;Nq7tV>I3UjvVJt|7m;9C-8X;>NF8Ay_BrQ4yGecn; zTx<<07F8@OTc-BllRmJM0g$W6<)SJ}+l=CNx0CAiIINY~N3DJ&3!;c~>IzXO1ot2u zW=<<Q`U>y0<Ry?Wh+>toA%W0z>%pyg1AMfv?<r6Yzbs}3>?sztaIoL(7RHRyJErO| zPFP`<AOAo0-h@Yz<H+;vkHW<ef)=Y+i2JA|1dvp7mKYrbo01;hU{HvYU90NKW*s~R z(06}7Ge5#3G9okUYLbHiBzAXtgohvI=63$A72S!tQV6HMd2JS1$92x2$%||$pGHO} z>K0i^tE)DPM1a3x5kYJ%VyZ`{#=!9F;y5j7tYn!rHIertI`Wd^nByB{aM;4xmfwWA z9WEXC5G(q1EzXz^W7}~Mqa-6wp8J2!j&*TXETbDMu<`S0a-+5O4qXR;CguKydhD_L zAGY>xe9`{wxN`7M>%J5K$P0<8S%`Nc6nyj3`(f=Esf$}0lgnF9Q(E^#CX;8}5%kff zE7n4Ikbg&{VpE@tXgGkJM{1y9ZvZJnrDB@gC)eL9ae7IWjd%d+gt+6^ubc_ny%(}R z|5+)TFfu2`i>;7g&ML;x5n(Md-<3AkLHOa|y_~e*g47UdvVqGO+!w1K#H&IDmY?2T znff4@#%i=y3TTT3yocpX&1>IXyiVRT?l#O9q-=F0dn(5|dfQn_qCf>CorB#cR#J(E zSo0g)UA~j*t`g1%2*yu9@4x$opAHk2c`1C_74``Z%SO+WM`78EiLej{hFhAwC6>n0 zaC^Bzi!8z5m{43WhO<kErEPN^$eubvF&?rz2$(l}uI;SBkKU$vgHFoHhZHWPb?x1W zeA^62L?rz*i?DY}t#2n!1)mDYhaiv$VFu7Jtb0{pR1b$%z1#Jd<E5H1B@Y~88&K%l zB#{6C*SPj2%ENcV?XAAaOo%iqKqqf04I;X=Yg~IXSjHaxiv%qKJbHyGn8-}xM1XT! zDpOmwM))NF{*VtaFP@Z6us*`-C}l!kNlCmcXJ)B~ty&+IIWK8wgKmM~5Z3n9<PC94 z5|UV)FCMByRNGx&{RG8G;W3H3C3c!X_HjezTJ{hp;_e8#$w)0D=Q|}Uu&1~a#+dK{ z8I?KThjaXDV6q7w2dJQ>NRc=$<!o;+Q*bQhQuxE=&FgEz7q?c+nL!rzULz}<^uB-8 zTsVou%Sfu};=b|IHD8KrV_7z_?w^0G(U+E;^+ioARRU9^#tRjW*V)+#vkPv+X&qMh zSJ>6Ww8CHYVh@1^MZf(TlA+&Ftv1KSMDw2zrGHdGLi(=C1UqO2<`g{e^(!}#HL9*$ zV<xe)P;!TZ1I$oL=p`{#NKJT@Qr$^8JCfE3Tc9IsH{{Y0##JPk)2tDICRf^VDb)Ls z#L;y_!BUqqN0q1wiJpKGAfu@_NPvZJb~Dn!XJ0Xc?Eg}Im9GP$7lHX)^l1cYP=RnR z4bFBh60Hee2c75k&1y9=IJR4x(5o|m;YzqgP7PL&N35M;b1t)MB`22v5K6K>DT@|a z49rt6Y*J&Je#BG@`Xi_gM?}Blj{e1=7v3h~o2CCnYakf<oAB|6HKrsQ&bYEBc%%R| zb^EX`Mz!>B2Zwcfa^tYN2j+*>{i=uc$Sw-mL0Kb?%$P02T@jHU8`w+&it(oj=`e`~ zLh*4oK!|!6KfAxY>IW~!xM$_$y#48x*odo(o83-wI`IEe?iV`lyO9!RaPqgyr}mEk z3Na`hWP4rTi6|Zo$l$o`$AoHVWIQ_Xtiph2<w5$aumDr?Z=XSh^|oGrCypFb1dgzM z!l1KO%0)Gx^9AC8ui#af7;K+sXjtB&M?3=JYx_*P*3Y|YUh=CJ05=~b+p)r8PJ|;l z<GC18hwqFvc#8hFgfacFzrSYHW0AOr_sVQ!y?cVk`l^m7tw?PUcumm0ztRO@N31e0 zQeuvR28dNdJdTv40iZ{l<eh_8c4&N}G(d+L0)KJCO%{b_dc85tbOeG$H<zsZ;ODQ{ zyV<nOnJomw&WvUMzzV@ntkcfs=mkR!%(Uc^fS|A>SCgd#qhVzn)MT^r7ZGg81FAl| zALZUNSwvqOA7Fn8)XGhNVV-9N@!C;Kn4-WGJM4icMar8!G8z0Cv@n7<{Be!_S+}+b zDnG)zTzG{(DyV`y8j>`>pPh-lU&bW^a={!u#TG$e1=c4e>wGkaI}d`a<)yG!25?fx zWrS=eM=>LTr3vhLEE-;5W)vrH@yZCgC$J}gJQ2rAG4K>pz)whI5Mv1+u(_;4U?GgM zjL+?X{>^LxY5IGcusUx0n5;=PUIH#hXF}h@P&4vkEbxi-f_~*15ATamn9NWSH7w+# zX9M$H5T{{y<d=z<Zi@in&j<3`2+i&r46Dj;UT6s@`*nSLuWVm{62%_{x;J*&8nMc@ z9bN$I>o6S8i0x-*3uumTBUV|XXSQS65FE~JLIq9Gl3+9NzRNV(XK#k46v@_-Q%W{z zLoyx*jY5+><OFY1T62tzjmqRe#IX>KIJ$9~v-wh*swsK^$iU?RI8#^rDTiYD0TmJn zeT;xy&ij}T1Oo_0XCOCojctn)aW^5v;ZEJD0T(A-ni9r=npkT_CA6%rxuAy`e^M8l z;ZK?#p#|jrE~H<NSNFGXh4zJcX(t(~o?QPp2%@nkFu1BneF#c|F1g=>dZ%veyXNxR zl;*85JWybk(4Y)tw!%<&i0`q=;dW#J2ab1txO8eVDeoY_y@7)O<6KNComvrLBKC0l z*Z7O@k~ept!QO3gx&6Kob1;`Sz<mQ{kNTmsV!6QM7e6?MHEA=%Q&oxN|D{ra*`7n$ zWxZ<EED`OQCH&0TRRXRAx`e-(T~hX_lbL8hz|SlZXmjWq2HzhjV0d#w3^tg2OOpiO z!feJR<-VnVGvDGG77q9?ktB(@FM#o4>C7MH)9Hzb8oA+p2pLpLt`z9=$RuSpPyiUY zbN<L0(=z+~i0>zcvV>un`OZM{uuNve(qm9d@uQbev#!J1)2EGUHMdJ(_^^r-E=h_Z zGOqcC&+Q8I86|8LADFNa9s+;#{C+=$^k+$C4Qbuom?vY`QQ}HmxPBl37uvY+0RpK2 zhXKuUY)jx67Z?6-|EG?2qH!U7f_O>RGT8q9V*U8DufPSSQ5k~b0u-jqk}xnp#wcb} z@tve2cY0odNr?8#-5VmbO=Q{QzGiDLNmU<8lmj6VQK(43$9?Uk)$fEU@2RA`dsqXT zY*8Ti;~d1!Pvi^$I*UAyy@8)(vT%5bI2{rxJOXM2ih2!av1)Ib8MK%vL`vL4Ven%O zx$v5C=YjCrY+1qb^*{oZ7#w2Qs!ZELyiZ5QPd@Db)gSgT;yt6B)eT6(*W!BRy&9X~ z#f`01m-nN<N)n_<lsCbXl5k{OH}MHQS9C+&ugB(~6^XARf>5f(;D0dNAc~Ct#=ITO zklXv40ha1)lNu++5xBeAU0sYMsh^*JZvOQJ|1h$%eBGcgQ+rB5yu;mcBRM<sBcWh~ z8`KoP7F@aE>&}uFuIe^ozn>SIP1rDSK5?HAHVq`&bFHiy&_<;@!t5@v5d+lscIf^w zQxqS!qPECzxFXYn-V79+`Fi;N<V6(Y=ziTGLJoe?%7!c&T6;!ZHrY@yzI*ZByGBcm z(nSa*>Nge8Pq(S36D}yD%c_eXc72sChv#>{WHIWS*;S#b7Krz{PDvpKvL;dW%`|Q- z4_hRG+~03BKXLU~zGY<LBq-q=9gL)O`}UF?OUr~g{pKolA#nkf+B893l<hktj^86B zVPmms4RzcAUzDnI;7EWbh0SJaU*W6sfe9C_&Aq!KS<at5JNqM(`umL#;Tt9;gs*x= zcvbjb^f?jOmvMYYEi+`5*9m?^#L|J_9|Q;=F&Y1Jn$b)GLbL}D*pkZX)o_5ca^)9C z$Au>!RlO$k5Jw`Y#KE|te}3{?OAE%D6$l2@HGOt6@tjts`pe<_wLeiu7qbWPrXW~> z1jnIlM4tAW%wp~>V#ujZz7-wQH(c|vtZfokPm;rC&}VVV^~V(m{&9>BBl?R0SDVP# zNfCMyO;ozMZyqn2tzR^*mL6&4Ns5+%fq}S!7%r;#xO-yFiKoa{#jOZ;FF^Z6vrQub zvJcAs>RimNZEDl*&)=UCnZ0||-L~iFdav`JUrG_+m=Gph+X4)bV?jn&)9KoiZsu^( zto^!Mes;n|Ap+v;LvsQrB0@5@O-EV9m4opwxMw5<QJ=Az0guRDTNjFU9CGwf`f>80 zzK&Vt{+)36l>WJ%yMan$6lZG5v4`4`Uif|E>ecQ1llSMp+)4$7Ne&Adb`spB8OS6g zL!uiXx&AUHVfXtP^!(**EMgVT+>R(yqShJ|M@04cJuk$uw0*_dTsBD3`8!@V@YXUu z1PFZ70A@&r_n2z5mXntzcCde|KjrH%I<-w*jsgbv{%W`z`U@GkjHU&u9GsDCBwC$( z22Sw$vkx4c_>7F?r#>SiFZuN-%#``Q1gzl$B<~%|LL%z0X*%+`Ks-EFLE);o6|Wxl z0PqS)%8xs#*^NbjCDm?RwV`@4<%^rrm|D8sdlRiCHOuN0@Qj`)dx8eURw+$0@XW)9 z%Uu#Nh>#RKLH#GGl+uKcz9c-?bQH8=n#>Og+cpoo+LV3$F0NTsL;lE6j2CWG;$;uY z3XCLHuL4qp+OXcD=G1^wHeJ#47B(`&tyRhnk`1v>$u~y;6~=*VZt8av5DqJwQWkkc z$l!y_|EMrX-6Y8e!eLEzE@xsc4EnuZ<qf}#8A$SBoC;JB=-RbS)30AroU8CMUJQ*Q z@x_#-C60ic+Y+!{38;3B6J1$3(>m9WSoIGc9S3J)?1+z)7mm^d;R`JgO(1cDN=Gc< zoF)zki9d%_0X#(W9<}&Z0{JTbuVU)aIo1O}DY)V&nMF{jSeB0{L00Ose=HBiiK1h; zc1|feMP_ujhIpn<hPIh3_Qd}r1k|?;h|HMnjZZDO&GZI|=LYi?fLMXH=t(Q0xDdW< zDcC;8klmwrBQ&ii2`Wc%?!gB$b!r{}$1oD#KyZ`#YTXi@b{kTW6=yN2-iXXyBhU)G z|KaMTI2(AEP(+eY$u`a_io`!%lbP=1xsd2|63NU^3CY7-1lmdRbmfLse6liwQKH9d z-KJ@rA|RtBzmPKX#Kn53euG~-1=}8fd`h-Rgdp+@omZ&xJZ(3Rvtg1)M&u6=@F}Sy z1*=0g9I{Kt=B+*Au~*GA@A)HdAL?^R1Y(Eb81!bT%N0(0#RRu;`#f<r>sGplTu6tx zZRlXBY5*0}xX*z<rIxhyN<FKgiik3G(wILloC7D|a3}ls4CO5n6znGa59fWbzQ4#s z_sJ`0BaC2H|4zrG`S7$Dht=mFe<ik?@X`xkc9x!XTVlATfN2x*iB1z`AWjV2>u%1c zd!kmQ(nnk#>H6idIJP36xiP-@zL=2CaB1CW&dwOf*%?g4?Z_9;vm+Qai0YEkDxh=s zg8k@b>s-c$vW(f#4Tm@$OS)g^pFhX$xw?mQ_2dzRkR2lgspxa@!&~wNoK)gG^TG|D z;6gS_d)lFm4>|0o5mMiZ(f(Zq>nP=!&Mq}zOECMue9K^mVvq5ZvQ8pUEXa!9Zu?)F zf}V{S^T!dRA;jH!Aj1}cskQ?u)PYElmm(}@<O8=9JZ`WPfO=_&_?a2`mK5{f1oa5+ zwn0!2ROX*1Rbyc6hK$hRDC-BZJi(Jcq)SXhcYf}<*=f$9CCU7kx~86y$vjjQq!46Q zgEfG0zfCF3{omX7(1@MvpU=5{UgKS;4&Gg(dX8823iB8N6e_NHiS`6_w*vJOe;)~{ z6p{$zYt}<Atjb{|f+Nuvr-?t$DeoT;RJdIHvdjd1y(NEXaZlu<HAP0D1}X@VE*0wI z>A|=s>|IO$>|rNloEY<)33Z2)lO$b(5|ea<Z$u=ayMS-=z+_Tg^}zhn)-gx>X(G^* z@Q83Nq2znJMs{!=Lvq<TbegE2gbyA)ZaH}#Scu6Yr$$NJ9FKIGn^}H=r%sfs^-~w# z^2Qr+Oso23p2U_62FkGwCGav-&<H3fKS)7hzyDceZ*Pz}F_sa$TTlqd$1d@%MFPp~ z&j@$G8U=1C9M8qdMW%fSQLSo6N=;9bYmc7ih!q3hwU$C}P1A*Jnx#8Fh5wd*U82MD zicdec=9}#Pah!HW>VMZj7*KeX1Sv_*af`8W?2PjBP|Z#OTvLKe;^J?Et&?kEjpLZ4 z8-bDj;Zl)Os1B48(wtEGjS`UptPr#-X0dig)`65&1}64u*EUxkrI>G!d!RkOz8c<v zBOqZx<{Tavg&?L=a17CdFks@&qOt<HFsd7jm8NO))4x|Vp{wEgVt0KZ`H_H<-~Ev) ziPwLSe~9yM`mh#=2%e3T@ZmV6^e8#2jQWCy7!5&5MM|YffDk+4)ELd|3FDv*6Q~e} z1xEJzTg>iX%O7H)Q~tSb%XLw`21WXfWT<`VprpeB$YPr3|1}})!;cs5?j?{5A2TDP zjuA-6R0ANO$G6U6u}qw@!J{rsZDpTSC;aK`Oh>IRTO?~+eAj?k&vMvpdHcNIACDwq zS1}-Autc(DQ6$3gICicIgRT&{7_ve(=U-{0GJbj8u(LCW>6FstheyA+Y89S6s<5?G zP?kKthmFz``i%SyubE}iy)Yrf<*Y`yrHGW^gFK@?11S?FX17Hpad}E9qr1Pk-Fc`M za&imvOI)$!7js`cghmN2(&GA&YNjzE?1-%Uk9h$(NL8s;iA`7-kZCu~<sE0G+g)8z z)I#X)Zucckk`kp}s6E&O4$?$+s3Ovlj1B`MsIFBJjZFv3k`1-3lco}e)#nDd1?9yA z>S?Y$wZ!kGkk-BfY<$P){xG!n-^vM0`6nL*db);Zr!`3X6#0Qo!f0&aa!b8h*o$bv zo#MiO^YJE*{OSi_)zoFA!fij)5}%LN^xfSwA00F4e>&y^M41_XlL_P8%j#SGGC)k^ zv!oz|vgdJuz9e6^^sbX4uY337!^WZ~#3JTAZhbDvm1wl&tlI*qA0l-ghpdh%gK5V3 z+y1BPk2Dg>F41d2Quye9Sz+>BbMp^{edNm9|B=drr03YF+COZO)>qokzroRDryT-_ zexvqHf)i$ecMIT=slXvcuqsMkC|Ed6{+JwgQajsuMHFEU!V)R(atUFR6O|(RKu$zA z3i8OP#1>Q2O2FeAf<)9sKC=ToEM#BqA3*hNgxbLXpl8T#5E<Y}(TN;*Dz#vR$)x<B zM9{umpv;4o=Aky;ni4LUc6!h}V@fN+D_<zw=V7z(rp_nt)KQU}vNa$Dv`G}lAm~L4 zYv;PUws1<lAgM3+(_42R7D!4+eL;1w9$lU=>XzFn)GJO8<$2I9IsxxdD#}x#uJ-F= zMW6w3iIP|t0XSvxW-Q;{2fgQn7eIgI`G_%`gic`cmDk!AwhGbkTHAHh&ngRQ9+R~p z7xhNj0KJq}Av-Rw^?J15GH68#3^kSI5e`J8Y>`K0-ZfPcwMb#pMYJ`(qsL*4qK?{M zeG9@(JBsiWQp(XGo3s&Q3tB}o4Uym?f&HUC(O8kQ-3XqEmCAyNl=dgGuKMpOEI(Z6 zX%omlkbdD=WZRNY*j1vL&L0VSF<>fjWh7ZHavxbrKhaPj&ys4|kyDSR>x|psV@9}H z-7JT%LP3kbslF%fOX=Jf)cpw7q)J64Q5pasb~D{icP+>`R^kdGt6yFdq}CTMU{ZQ0 zG9zhKp^mj2onsq&dZDafs2c_|IFjk40AcUm-wB3snkEe?w-lHG&JkgZp@6O>jgtTy zDhK+N2Zgj-SQwzo1`wQvlK5|oD9l+!wGU_<Sl0<Nz-1D^GKX9;Qxo{pp60l|5+9tv z*T<iCInc*Fc)1A(zN>{lE_aS?5T&hLLpHvMz@-H>1HdsUc<tFmz$aE-LoVnk#sUuq z%e9w-HF4P)MiWXAU!j(Io|4B<Q^Wu?3X~ATbG)*4kcS*)pT2@unUzU_r4XD#>ShXx zCS<(($0q{V;ZKxmBbeVr<CzZqp=yLv<t}m#$pr*oxu$lSf@#P(xw$#=g`)s&bP=l5 zjCGM6=K<VO+;mc>h8wP@u9vxgb%jpTl_;Fk0hl$^F-2y$DeVFLz`7C@=ei+kLF-Gn zr5o~5o~kRcWWvlR|JmF=Gjn8HLE7=uM~PxjR+SpkN~y_3O`{ArN5S`fAtmD>E3=fW z3uA!VhXJvP-#N)VU?Nb+0wAcq#tQOFn8XKElqmjDA`Vj>A){(ivCtu2Kv8<iZaz{^ z0-KlY{*o$dpwvBA!kxId4<6BQ?H=gKc{;mYN%#kggo5x=pfW8f_b^j@W>+2(vdGU; z(|zpX9LpPko^UuXW*-onxd(p#>J0|AzaZ3qK3rY7do{ai{`03K4x2=7)}-?|;}QZu z^zO2`!abz0t>jHN6zxbTzKj7D<}!c84dEI;6z1;XN8*#^k4eUv@>BSmK(dNG@G}P_ zJUwUW@r}SN3!aeSAflul8ghzsC5x05fCB+}OomCC<amYo{pTKAoQvp3p0Gr9%d#?1 zLSj(KaQ?HX0Ks5kTs-rFgSMiJ5P-YiVgV4fBajg;Znyv873D*F5XV6e%&~7eq<@5) znh3{HG{>O*<>x22w<RX|V_ASIkT3Nq#nBY!W0#Ra4$g5KQN@s4axaR;5mKcfSiIX^ z=St*p@~7SRO?x#ctyedI2;-gAQqXY|6%j!8IJ^X-8-J>8^at>kQ)#=&^nHK+GTTWd zkPk$%6vIH3t`aF%8m6Q2=p*&&jVy>8363b8{4Up@EBVMpb1iCIkM2()8q~Oyr22yM z<Qg|#j$`!#$y3TVDw5)hjM8~x5d!5yR8qV|rrq_C$x;;WcbB)j>+FlG=G&s(Ax!_k z01}jms7VoM&<lv)q8gX5l^GPXzHV2to|^q~TD(sxkYsTQV%><zsTC0s5-@_Uejg9m zyGsgYnm-w$)=nfjTyQeWW}s+7D>c1?_L;xe%)<5(eX6~Ew%c8?o2I8K8V7*02`{Wj zZ=6(|z3E$K*5YIqVx)NFnD$c1dXHvx!yLK9B_+pl+~zd}S6HrTf}&W%8JESCpnIbg z@E42Ee0lvxwoW{5EI#P@72K2p^&MrrC9-_h#YBkuzD3cO_kaJ&GWKA^rTr;a@GW{D zD~ds(_kh3NQ;tGJJ%Qyq)azfbZ=2CyV`lF<F15IxTBdD>+XxAhg9QLbiHjV+ny7I6 zK7HizXNb+Pesf(%p&@d~ggVJ4^F->06RKl@`=4uY7{$@aAH1c}2Kt-zEjK`xG-VSv z_}iETRO4HpX%b7n>>e=${!5*ykjmFw;4)SRqz{-(N(MrUjFM*@8Ku1^^}NJ&uK=p6 zz#=T-I?6G>y*5lt$ju*Qq4WB2NX9AfLr9}Un-F<Ifr3pWV>W40@*n&`YqgSM@m17= zJWRbdj+R(S`e{F{Wo-7Tz`?(OXK;AN0wYh@GA{W994YQCurE*P^N3kb%>W#vp{gaB zh?;Mhk}Kf`qUUaYpfVN!PciPGJ*JR^qqY@y1Mz<)cN5OpJZU9qT+#jslpvk~a3nr& zz|)ng7ll4v6dA?={o$sF;|@DNC<YmoKsJE>W_x{_<%L~Ff}}cINsKIDoz~`I^qk|~ zGWp`F;bKZfRS%qmS(`A=z(=7+;DdX_k?SL>OG{~Pu2hYYAWhT-%06u3o-!O^Dt47q zOpMt_YRS#$X(1QST=74T)raDZIW<nH<OrlyA3d+t$B@X=SL&fwpo(f(NI$@SWF6d$ zOYa%2K+iU*4`>yNFcM@nr7Hz10%>&aFAOaki^KaTpCo)LLwNq(ex#L%#5fVzqL%P7 zlw>G7;6MA=v}~*AX7*e@eJW3~=&F4BAfMI*)6}Afq)`4qRX7S323GlPIba2*sieFC zAes^O;IX6T&QX{qIUFKRJ*gs3I^&s$4mnjj+7yhFj5rw7iJ2y&(GE{5=d>>uAcq#1 zkE!8<SBbJ$`o-FWxf<zP&w~T$_!3EmsUHy5g}YDTlkzV#J${il<!>qs3xqGzrTADs zHZ4|<s_H12q91<|d1yaep>L4=vZ$f}`xw_!Qc^bqotrQ?N&+30h)m3OVID2s=o_J1 z7u+yH#Cv>I9g^k=(H)o$U|Uiu5L8-R=Lov*DF&_up_T(W<s$a;nBBxmvL9lBj|O%S z6U)_w18Sru5+zIKOv^JQ{vzh7H)4iS&~#^tIOH`9gF5mAZ3wWivOz&aWl<7ShI6Qg zQe-(y!q8|lM19rdn3$+OL|UBI%~a1LaY{Fi@9|fvV~At({QR$XWA$48y5af^etzsu zT1>;zL<*a8YNA|3<Gj7UvM1Em>)lYP#muS(eh@ouG<3CSiF`L0ja^A~^rFMAM&OOq z_BBm%pKMLcP}eL(-jJ?9*2$UL7)Jv}KP50f?fXw}Z!f>S7VaVu!MrToLjDhD?)!^I zo7t3-J09#S@<1^^mh-}X`@vI3iE$u*A{CG^z?QJUp%I2Rs3*q9?v@2_weeFPVpx)1 zjTpUFt#Lx$rCw`Z=R|L4b<Eh1@QWPcNLk?UW77$DPU<qp-qdzcEVWQwfjDhG%pL7a z@mmdJ12Jl~?F-j$8)Y@<zGFvyVVsy;+53-8{jV<iXD7Hr<aYkxF(R`B7{C&1WQwt^ zlP>O3c)H_WA1dV~&&HMjrv@iVTx2Hqz$WNu!jch)kA^mV@MT;NwV|44S`|Zq(H21F z48w|Sac(e%4>7?FpehZD3z(opbiq9@`}^ifc+ggt=6B3z-w!vM88YH|yu`af4u#f7 z_gpI-=@RNUeR8I{cqplsn8hPzVnUrUMTAd$@|%CZul^&rAncWL=sHoZYfqfB9mnP* z-(TNdic2&fKs}>s@>r)CY4ZqqdeF7`nNFHJ^2JhY;q#z2v2Cc{O#%RmfKx6Xng(G{ zwlyaR*v!5FvzRPp94VYBkMb?4mq~rKydGdZy@XZy*6AaU=PAB3A-&CU9KCSjdLaA+ z*DJNW$oGN_PQP$Y<$XtmoSB%E0%=_UW<64j8SjrCt<60>I=`eQdbK3PIT~}|ND;1A z=XdI6A9SYf`{0pW5^8x;t+K3fgFx=<K6vM&6k>ZPjtHr~L~<oE&>cz+PI<#0#d9J} zqr?TQQPG5nbbkIvUvy}Ca*|?gxyOe&>r*tdu^eOUmkpq|DEQtpGdWs+v6Jv#eesuH zyuTFJG1ouA2VIenLR+K);1PJd<r%YfKkw`UHf%SLKiI$-LptFhE3C_DQV(XfBg7<= zIFp!Id4j*?-&l@s_yK*RB@}=>$)x39MaLz#c*ZQvp`Zj=z}X<fE5dlN(OhLJ!Z1mh z0z!prlo%Vr6aC3gS^ez(`tnETd!L^T=S<CsCyc37jL&+&17~!2nQIsYP}&2Qr1MU^ z9l`a64<9`Gbi|-Vp=ogfywQOM?AA`e{2uz?OMoO<wx-0Ck-%5|OuXM7MO|mT@Vyst zI|4|bFpHwh1ZH(&?z6ACQI5E};gwy%%~lZ0sV@`;KHn%Vd;Ve;JJfzypRG94s72)h zWV`8z+s&mynv)vEL`E&wnQvKEP&=E>3JKnZorx|OvNKam*9$hn*5naoYrY?GTDtr3 z>}=v}VL7$g!+hQP#0_(E!jJn?Xc{*divCayK;xrJtop~N32d@5oxn>oWp9nl%Jr3& z+0G^%L;^$va}R0NQg^-wHy+BE^|5g!m{0(=`H3_%tBQ-0kAq455|Rthmd%y^#1Cww ztVob~nZ#6wDJg|FprQJZJD=I&sW{U>gd(6j8%rmWxQS=6F8v}GvZ?w=vW&YC1$6$% zw3?1!&(9}<J@qO+I<ROqs4*K8%(O*J-d2a1Haz?ORPU3=T5Q1Ir8c2jH?ny^rreMt zm82z~sN#Qx)pe9K&H5b*<cO%%Q$++6ks*+^h}&LV5L?<)*QzpLoqn#azeCL85p@?? zgB(eeB%N0NGgMMQbH)jicy_jgDOt_TF*a+de$Y_;!?Qia_UQPTZWx10#<UqRaU_H& zf=IYL=?l@3p*#<{>Ro<Rwl9Vs-{ab65t9;+!T?Shsd-hNF;3I8WTVeEKxYy)QuAjT zphoAa!s_5H4_aSn<)sG?ORjaVnAuolW7#K3HxhByOXiKX2$8%<l^y?Kims)^B1=gE zipL2Wm40~IUnLz^?cABIU+CQUQH?A_n>RIRJzY1<>Sh_!@X-Xwyu{WGSr-6lbcrMj zHR6DHJ6vyP*_cX~OxQ$^IA*X>-%8hMTQpUMXfH9FzeE5-5~C$k9V*9W;%*k7zZ3+o zzER=M+@<e^cQ@Tz4<X`Z*@6asFKv4)|CR?YZaFTOBVmnF>8u4@0`-w_Qo;~Xx0VkH ziHV52*=_k2JoBWf+Zf!N6hdL(_MK2HUXBJy2@x8n7**C{${du|9k*HaYr5^EY;P!{ zJ)q*P&v4?C;y*7T0xsT+t4*(^pNX#Z+ib^>B2ly%8MO_oBbhEQcEH^yiQz{nB969+ z0eKRikKH^piJAFcU$|K-oCnz2`=-0p98apq5owzDpk?%kz=jrH7>05#3f4KRh^jq~ zcv=Uyu@@+xKhNgQM%Nd3NkIj|B3h)}Rxh`~v(M&4gY|6z*2IXBDm6##g_!h)+&qE_ z1PH=dk=@fLQgBxZO7_Le%||xK+UQIk%*JQX%<HyJqp>6(Mq?xneP&|ebM6w#)52X2 z49wdb9%#5DTr#SN1I#4~o^0S3GTcqqGv;-<o*$GtLuPvoL$7Oa3F1z04!n4Mf(pA7 zyXGdvM~-aG#MXiBlMp(d5uA?F4byoU6WjifS50E9^z7b0;h~4w&9EC0gx?NLE52ep z@Bz=BY+ejQt`ur{5_-^pQb1sUK#8wh&L`WfGJ#(u)>1GDD^}ZPpDYxBV;e1oE=K1@ zGP7CnduZq)b#(w&3iRWuYPqQV@Ru(wlS~FKp>!-WD!CErUr)BW<%`bHMQ)f@`~&5= zX+Z<lFCDfaFxDf6E+@ZdIiab55scKJObC6^&I1+q6ca&=GcclDIq*+$qE%_POayy$ zDl2{PYjeH7kQ9%;lHqpf<3<eGR%KX*2dFXySx|kOQQeA|#kz)s+~71UE_tY;tCQ72 zfs7;2U7`KB6uUD}Cs8)EqbSw0&X@dYrWWq4p)&f~U`Wu2UCbwb9k)WN*(anGqrIzF zR>nlK2mcjyJClDh_JVT0$(T2copA0FijjupkdL0UaBV?mlRii{ya2zgQ#{NE&tzeC zkO6F%Nax#OO$pd)YCvBI`6JY*mE^J6kjzCpt?X0Gqx(BJ*%O4+PP2JB;+DW1ak&l{ zs}gE)7wBl>>{}WBTu-wdOy52fj5XOZiZmyvt|4bD#pog>f={qz>`nPp1I30VpRtET ztHdHE;lDd;-dxIzyB_Y8f&2jVN-_x4_f)o_;+vdh935oH#Th9b_*q$b>D=J{_;Km{ zLtb#$y5jn-$&LeXN-A!|1hE*F^u&R$BzNPWZDD>9$=Z}>sqGE(q$#X@g`%}R`+y~! za8HYx^3=(!!#80;09}U*ldpAvyy%|Hq;yLk#=t?;HrZ56oTQg7mAp?Qn{OC6!h`d) zjh;~{_H0z_0gpjlqKcV88zbZH{oUp6I?kt>>&mxFT<W*GcjB?kx(*};&Lv6=StoF1 z+vY$yCFAe>{L`Dxak9PScN880YbG1%{QPf2r?E-)H~WW$xwNAC(V<=MG#Z4gSSbac zkogqj<U{dgXwvpG4NU+zZ}5c4(QPp^HAR`^0~lwpGSf7>%=9KRa-`XY^K-KeFEji} z4Jz*5N~BB9t~BK3DgweE`R~6CKYe+9ZE7+q8Q2Wm4%wFsy`<-Kfzku|r07JU1pEt` z%GliA#R=1p`#GFJjQ|f8LOhVl9@T=b_jAwScOQ+{zx|&d{Xf6A(6Aj+1&F%**DmY_ zB8k8J^_#E$`pw1XpMLetU%#GlGrd{jZ2mxbaly(dc7r4p@IT7c5^UcH5(n3lu)-O6 z#U+Ara~1B1mWQx_@7!@5kGgE*wjQg(Isv8eXQi(d{Z+6l?(g2;-(6t)ySu-cN3J=k z<AdzlsSBOiMJCpuEo<<EYRbEly{bE<Ojd<L;RWz4N`I49Ozdu!_6b$sO>EtVq(+&S z85Sma6m%8Y8CjhOw`%GfIAUyETtT+&XBnLF(57-!J(~#zOQZ=|{DR0va&sz>CbxT} z<2KMM=5e+E(9tkFr11{?AOz;BB_-4tp8d9ZyFZW#Tt<LzB&0->v*PUjAMoaxHWnqM zQhje<B?|&C_7~&q?Bn~gr9d$Mu|+EQJ7oa$KSoo*lur<S0TNq*b*zS$9M)9!zcRC7 zJyd-G_C6f|_DpjeJc=MUQ(ry=XRvI`T<=6n2<JsK!(n)P``Y93IdN4PeD$8xjXR)T zIcG(NzASk=c}{qN<eR$24QsG2(L-7OAOZ6^iD8oUAIUa}QRf%P^4;WTRI$P6fBQef z<X*YV<2i@Oq#6}#O!!w-gY#PvlLjazYb*^Pl##i4?QtPb3rAT`37zNBD0e?m&XS?C z8Ud^n<~-%Wc`|2VPwUWnW)geBJv63-Pp0G8ifx;GtrwAr7w&C4T(>^6eV_fq)4fJ~ zx(G^)X@jk{AXY6-pFki{%#v8G6x`s1C|}XErNK?-1fA%y+jMjjQ_)et$Pr`)(ra;b zSOG4a)d3_S0xL1_iV~I(i#@PUg0ykEvL~O*O_2^(ehI;IG^BE-XahNphYjH00!Y1H zYDYU+;%GqCNI3b3t_Flg-oeC;Zt$>ad;kQTT#~;V;2;68E~*k`cS68<*kEm5p|1I3 z;d(Ht?i+CPj8tuWW`w2T5f|f#T)+>c2rs}?`*!hTL)LYeSMIs57Li?P8<VdBgbP#> zqrj|63C5=J&SVYfxi-P6r!Vxx?bhVQ6xl;~1CbacJB=V=jf{vB$nPKYE^wzLMdEgL z_`Zm-+L6vv;;+TJX}9qM%Zr;*3OR2DYDzxfClIUJVJQWZn&;LJQB13njA9b&QlJ;u zBqLm}kLf6*ZHV#&1TY$gwi>aB9=$Eyp!F;ihi^-X1r=u@u}FOyOIVNP;$FEp@mfDR zjWni0FDyUFC6C>P>TEM`CUKG_-B?NqwgbEcPa$!aNtD7n?#XV`D`F9OKT@~pi%Zh+ z)-2s$qbaIS$ttxSDU#sj5deZxrqN!k&IhRTMWL#az)^C_tFrART<@f6WC7~@RwW>J zV)N$aruoT6v<P^Fu7@1bm5OSjsBV{2OGU9tqL2UVOI#U{e&J9R9u9(65(PG^#l$K# z;0~piezUW<`M>)pO(r%NN9Y;o8n>6-Z5$gjc>B}cAjK6ZmO(vQq&>C@D+LOE(5~o$ zUwRnU(1#w!!SC_`ht*1-6vV*Vop(vylmqE%Mj{BrjR(<DUy>ApPzr=zG4|~gQy`~I zp*u>G8Si((i!^^%&ylRJt0}gAO}PqPqRj3`j0=oMLP`prF)|9%`7t-xAqFnslmUqE zi_1+nUF-aDOS<Z2-fn>L8uWUJGl?q_JB>)?IN)=BaptSQnbwY7rL)C16$o;nt*S|Y z;RIQ;hWT;g;m&g2Klu%l`bctYC$f`^EwIkCVCE6vKMY--Aor<}OU+Dc@0vXBBe-x$ zqIiuL&7I^mT-*b&Fj&;jm@xmorgjrmPV%@yOIm+aDcqlHMPxbh(RlVzs67VoPHwBd zBEPKB0#Sk@X-DNgFfRwJu6V75NS=_?Lj3Z&y8<)l`)4j2>6r;2k9OXMpciB{pD z@aUmRCg1E{dQ@4~L|u!EE+#g&k(+0}6}Di>;&?xb(b@unenGHUQCba2lo<COnd>C( z>es`UCz)@aAAZUP=eoa1Ie$d10|kfD5QRdqXqD_P^l|8klpp+lTwOKEb0q7@$OLpo zN`#t+rq5j8ze~&=?Rn3ATxi$P?GHe$I5w|F+^ztlkXUv~%5ffi^C{isj6m`x-y(!G zL}W#{|F9DXYtk0!Ll_iDkazjpyWO=G?g4a=pqQqQ$g!o6-0N4`^6Cv*_;3d*$<5!2 z@I^}h^fy#y4Vo>o<QQR@ND@*wyRIQ1jqJtgq3m!Une78~0IYE%))Vp|DSH(5akz(~ z5PRjN1j-~5a*zT)i7Z*Rl7?oQ_B)8C5oYgqH<~d*3IGYJpsA8l5OtGaE30NEAG~FU zjjMa008~EafW-iT?uE?hrEtZvX{=G&lY%;Q)W5+dZn0d9j<-!WrNSoYR%2yqDX4)E z5*1(^u;{ieoNNwlzLm|6YI2H*a_@5zDI39?))slT2ojr^>Dig=Gl3I+3qyI*oNgpj zl-#}2k0Y}|(uNKS@rO=V@y22#x@n}aP}f+3@Uy6AM#q-W?N^VU6P45zA-gB#KJo8~ z<e{>~%n(A6)ShBs80OlB$aDzIh*A=9uyQ?q7%6g~MtMp~RRTH%!JEoWPM0E+c)HFH zMiSj$|8Udj0U=tHSgU$0u)Ylm3YTfxPIU1);`$yI)or(XKU`djql`Ri!2b~+`kD;P zZjuEz-ZlH*3E*~zdQ$-%+vi8$a{Hgb?1q@MMBF@NUs^d<2=v439XSmo9Z4loa&-Wh zJ?W0}8bDtC{?+guh%4ku=qWTpD%TJ4aC57Fn8T*(%-NZHn3GA)&ZnZ|y#7w^tG|By z`NtQ|mQzYX&&BYa+y(e6$srQSm{J1bPOxpNquf`&`zS6Z`mt-~zJdWrg%5vmnXz>5 zux@?T+(_jI^L3SyKl}K8Uscj6ILTfg`*iKGL<dVTDFVw2EM&wc=eaq|MUVir%9;L_ z?Jt)O@h>;3?56xfu7!k)wJH0N*g1Fr4tWFLTEzd9r8i8MM~%LcRhu)HZbN<LK22od z?Pn07p$4#r;C?{78G;PW06K?DR`ARB-)C~co;3Q3e9MxA;FQExuw2a*vwcyRA(3w7 zB?wl492m-p0QE>9FZ?D{9@Z`!(?@XGQ2c2mwI?Ykpae>TiMV^hx)~|Rt{X99)bz;< zf-t4*A=|?`4+5Mv+nvh&nn`LNlahNkPBAD5;9ylDBuc|87PpYam6x5+1E;Cn?|78I zm0I$0Ee>SfU|}RZs4YrLMvK5;8s+V+z0>Yb+Pe;*52n>;C}qUQ*>yJr#%Wj{b&ENv zB>YAsN=wHjMJ3)hHzMJIi2`urfRso1Vgwy<GECbih?c=|)~;lMZQZD~gS;eXJ*03T zD~;RjsYxpsFczgbH*GPnM)W%Wntn$$-`s>Sp7b?z?N5W_lVc+Xj00Al;jNGg@baC1 zXIg>QYS@&m=zY>x?(>$2rxpHWr-!R<Ah31-HyTm6WsB_ee)kb98Y(D*IPX<16z-!M zH-e|W*-diPtxEnPtKX_@bs>V5QXxmH$AiJYBfKpzj>R)FjLHn-<3E07fG<L3VhHl{ zk43xq`YU6zvUkX%21L>nI5k`wM2`YcYB*VG$adM`G{3(UPhJUJIT)}BRRCmwVt)kG z$p#$#@a!5`4)CNcpz;P;0dY^&RdSp=c*&6^H~jngmYjqotg*=G4WSZ+=syggHZxx_ zi|r*5gwN<buiAh?r4@le45)%dYa(+#w?<Dcui8HdcZpjvi8@k=s3rqXL<jP%Cei__ zJ3kk?#d+-&1n2sfuSqLmV8ab{#PLp3<_Q-yTSBcJpCfU8uHF1`xBJKa`~S1M1(;c% z2s$Tqdw2CcWoD<7GIuoV(X5T?63(44S~Eqa7LucpU(9-#>RxAO-R|lNv;eH;c5xJ_ z*F{LmX`L<3NR9#*a63?yB&9U3ZjoMshw=E~-ufNZ7gH`VFrfY9F<H_g=GZpt+xn0z z=<Vp<)xO+>aEEn`*<2H`?81_jNR5d@kKMG#XJ^WwraeBk88Y>4$YfI22wutwge<5x zD)@FBj}KR0zydcDXh%W=qDn!j;wIvXl7@pP;{`}xryiSCKZW$eXXdQo;(EBf8;CFn zImDm!x5In_^&V7K)UG(IP{0kJ7GWz)^B1izF60CY!;qrc@+YT&a69n!(xxK-gt|2_ z+vP(tMT0e+LY;9Eo@%<4%1<Ros-r^Qq2y4t$pl$!lkg-PiM<>=xmgUHOgCf^j)_sR zr$JzciOCa3Y5eoxZkEYPHrO5`I~ua5astalMJga-St*JItCf5<<e!0M=o*@RDQ~D( zCVNwpXXm%ax@strC48c}!!RI{dYMyw1xTg@U~tkN*{h)a;PKJtmTYIDj>DrUBz8`s zk`<A_3<XqJiPo36Uu0;}+LsSKWjso)#oltP4P@wh3R4r{P!t&1OLK&_Xg*G7qhv`b zKZlp6K&u5yoDv9&c^sI8ZlY6+_UxJ(Z)+{0XnRFXU8SmTv5YoiLBP@~jd+#z$Xa$~ z-Yp2Fdruv8ruS8p6gaq0S22->x2%}$s}VnvWab!My;@Z_)PLh1<aWOn&_OxBs&42- z<n0oH!%yLIYY#ifB2!2v2Sj!NM+kn=Vo&z1pZs>4)wtr%50PhN^;DKP64gL3SB@d0 zOF+27@QXGEgF3L=`=V8NtE=I2IgyoJo6BB)tinmXTa<d5I7Xmk@Ye{ICHzDUtOv$s zWH{sH3NNYU`3Xgb@HxHAxPYk_V6L#&`uDx7D~^LF+18p!+pGd5uE+@*(@1o+n(5mI z#`|-~xn4@MoX|>M6ARp8Ic8lhdSLOt#dIL{*)~mpdW=Cr>4vK7;2Fz@4o-fJ7ylef z65K)?laEL$6Q8qO^q5QvP@Om`H7J?XAxG$*njbu2{kXAw(R*pXk}lkQAAk0hk0Vf3 zZK~W-gM?GW9cax2J=K!=xEn`_Zd)G1>6||Do3@r5$riX$E6}ZKLG8kJhh%c>Yr#dd zcb%1T3tXuQ4s(5xHVshuE#5@Ag>2h_{*O}h!AqTxh1=ogdohIpq)!|H=s8&hCW#pD zY}->lzD`lWSBD|TB~Gz6N&O@w%P8vR9txS$Atn||ntRIVmw4vBw91g`pz2^2^@usA zNt6)gmnBJ0%1QzC_|`|v8k-`E8D89l`N>AYE(~lGrkG0Hh|WxTi`i|e^0DfDGb=ZW zbftC#I*>VxpkzZbJz3mYm9THFak^M|a_KtfCs~eMM@Tn#nJ9odb|hiOAdx`V+7c|o zCFTcbYS%O5#FH1F<xwdo%A1CIoya$JMPd$O=vP~NQJ9uE(&=eF2(w2a#*ImQBPNBM zSamyllP)r`l5hz^Q9%0=Xd2n#f05egZV&da`WIR?W3*h-1|fA-M|dqRWFopkXU7R7 zG2)y6k|xc`kcdX{B<MW%NkYH<k|eP|xuYb3Q#wK)E)Y(tJRRnt1eRjgX#q%+imN>W zA_U`|rY8w8ZP0=aZJQRPrr|a%928OW-9IQ}E=LpiLV@#Z$oT`|1I0mGHuhm{ET5u0 zE8S1oS+?K>w)~~r#FwP_=7v1&yPXJte-&OK|JS5iVUmn1C($3i-BfiI4~ZJuwdDHU z?vvmC2Ku5vTwFNmeX?ck*(;TDUa$%gDQ1yG$6{}ij3};ETZKpu_JM)fr4-Z=qKu^~ z)3koSu8JWA3MV&v)0WgW2XWY565Q}wr(~8p;jcj0y}djGQWHDO+*-XR$WrQ57k9aI z8$Yk{4vW6}_)F7Rj3&8H$=97l$hQW6l?uLHM+_Pf)Eq0PG{T~f-j@~rO+tUNiXyZ4 zJ>f4)=D1v`wMjY-M7#;rN5pQ2FeooFK2jrN0O)ac7Nj3Y70Ts9E275BuG&$qizb** zaa}xKR6w*~%ZnS&&3S$U6F%M5xXDt<y66fHsjlae>n;~{joaC9gvWDUn;_U=i^ZEx zv<G3y<P97%4*V?(N3%atkQgRWV%hw+Oi>!PA5ii+cwv;gn~UM<R)l#RB4XO7d`(Y6 zz98P(wu2{m`nayW7ic0^m^UEMqk@gw<~`CrN<>Xd?0HI+pS;RQbw;9f2lI$EC(Qw; zPPr;m5Vffda&*Irr)*ep%7#_O=V(+E*vi@2`{oYi<NECE^S8~-o1p<X7(e3PEj)kr z>wzj!w}XG2n>fzJTXONPx$E9uV6v1XPz0VV8&WFRcNy4(u#CksekBjEI7-2r_;INy zLZ_XS86wGns!v0dmsp~L_D?!yp`=*{a7)vjdV=FBlsCRW4H9`{QMgZ~4q@F4r=->< z(}bvNIB&xyOJ27$%H*CwtZCyI%qnUR)iDKKrDC0YKyJmbY~eJ;b$P}ZHQ2?%sH7kZ zt_4Eb7!}QS!RjVaDql+Gi!1^!tJoFBNEt%f3#oVO=A*6U#aM84W|;z9BpE5f1(q9C z^rw?`h#vO3DJ80Y7%>yn3E5hxTeA=O%tD;j8t6^gBZ>Q$LHb~Fccc$|*z2YlnZuC) zDf7*`6vz;B*Un;ews?aVqch@)Ni=LJx`NM9iu^9c=p|1Mxr5_~pYDs&y4Bl-f~|+G z=)m{vs|q2M2vxD0xg|I$|3jVPkUwQaK{-nj%=u$U%qAua*vSF5u7@)>@sKchdmxQP zK_;`$dN$&b(ITmc1Ee>HkD82p*-zku<cI+Ym1I#z`2kFjjf5OOBu6aHrwjDMM6{x_ zMR`G9Lrgpr9<qmxH?4KNPId}I?uuP^H)z0J3W6)hZ|JMkj-Xl@B&|)dGiz_gQs(Ub zTI~10)T<RcBkWBB1%a?eWri&0k8E{S;()#+@Dh@Yfinf~iu{rROccpswQUkSsF6J@ zo#^lOXb`VomF#U(cih|-?e2q@i}dL-WXW)W4j8xz+CfY38@C@4_<~70_^A^zNqex& zaV`j&t0ngssYR}V^K-6&6FBULp>`1Rx)H&PVj2J>bQ86oHe44TXs%6s0X1U5t@<3& zMeMYA1GG^&*TNsrVX>iLD%BUj#4DE=xDV>o8vHX#F%eBT67$@rorF7cP56LK3jH2R zE0b${x|8>XJh|^dq>vkbdHXNIN7pa(5)TaXr6d5cen3$#Z(?^te(=MzFMALm5QE1~ z;B;9@EyCdXP$B48Dk5G-$ut}<Zvfwe>5v)${BYiJI)GG`<fN(HZ;xYw3xi*-nl$lI z?=Hm!{S*D6$P+?_ZKNWDVvucKJR^Os2?R#l^ePeo;H|{%1wb{y#dFF`b2r6?R1WHY zjARdBXlRVYus);u{V@FFLS%8K5&<{SHdWS9{$nI_3vtP{nn{^4hD>>}KC#Z-Ja$xF zqxv$1H3}{w()Iz2pTiC~3OuN}T7{c_hMMq=KF_eti2qBx@xPJe3YpsB)%SDUSo=)6 zpk&M4+g*Q~EQN8})IP+`)n9(Az=Iif7uf;QQX-<$MA5K~&$4ny*R_{QcOz*hc}Fc3 z3!A>a{qYJx15TDBr9li7G94QZ$R0tb$>Ajps9?6Jvwu90x+QubJjc{^6;+Ef2S#Ht zB`@nCa0$ihvo<ArEzzfG0uloG6r@f@U59k9qnFn0?V5Txx*L%=DJg_UxJVUo&rR%W zOYyKo&BZ}xD76^D9WVmB5cO}Bs<luv7V_iN?I*Lb_UU%wNt{T!8r3|%y|}#xaOEv| zfo%l{J#k2&=SYDJC&(Y_CA)2aqipV^A8tVUK{{!PLd$R%k^?y+C(%!C3?3Z&P_dX4 z52Hs(#mJ`rv+~OSGhDsL0wM})Y?ImvH;{_cc%PCc=}K}w5G^DI=Gi`AW<b&?Su$A> zVFgYJvzb<cC}S<mEi1B-AK@x@<0kRyw@LNUnY)-MSqbMj5i14r!Y0SZNE`x_r$**A z^D<)2Qyenc2zV~bg%6hy0>Sz5mJ4#L)EzTZDi&OSg^A=b_aQkl@bv*ZB0NwDak@DJ z#q%`hsJ|#hc~DdLf}-^UzH$5P#@YPIqbHdBM$mky_&xwVNb;4P%k2P3N~rYFPx&X0 zek!Gy2h~9+1)Bq0D>rZ;4rsz42g2HooMB-hNB9+(Ezj&958O*~GVlXKZro^HBe9yx zy_Adg=)n9coIDn@QT{y+KwAMxC;|$4AKqowM~C7cdB!Euj=u$L;#$R{1DkBfe|q%j zE=L0i$8pxzQQqc+cIq)+zpB<Q=yqfifVqx|NhXHFEkba%e(Rj48v3|FDARyX-jL-? zg_p-5sR37l?u)n~(n4TDSn!DlNrx1n1JQ=UBoX%}Ip)iw@IWFaI0@pxg4QM(@CME) z7A)FHL~KOclNT(UvD{0P)P``852^iCMwnfc%1oz+WtN9=t)nD3l4n&GX+oYG8F!Jn zNj69@oW$Xd54W-ak~`8>BrwL{9`Wfz)UtA`5I`qIH_LJ0?!~BR?mrW`DiA?aL;~E% z8Y~|oH%PV{LJ4L{fEqBEYX5T;Sd6BE&0vzN$OmWhBx43`{I&b5DDM-R)hvtLyzYX{ z<X>`wkcw>oCO3X&(_DmH(;iL-jwO{1*dtAIF(w>U2&sC>d$`;A@1H2~dS4loSDP{W zv?Vc;&Jd?bjr9Uh*q&ejtVvGhn@Kvxn6dD=uQ_OJuJ&BgQ4GY;SJR^EgOma8C4g&< z_-aIed%B=g;B^Q7xUaG-2X!3IyAX6tuIa`>SfNO8HlRs-XC>zuy?Os`obE*{=Nt+A z3FVyPkep*053pM==a?st9?muq2v7Va83`F#0GKZsM4=toT3<2W0&s|eLLg+H)rN=E z28U=me>McsL}CRe)HtL(i8x7Etyii9I4FY&`b!Uo6NRw}B@H0vfOh0bWNaKZ?fH-> zERiX4K7C+PCJs7S6BX|%fFiEJT##>&fz@*-iO>K0qv}6G0Vmu@y@o!hF|SsupDj|3 zy%|LvlXC@9(;)Q;e5<!*f$4I{)cB3A$MYE*XXEQYQo;|6W?hoJA@DekeHiDJwSyZL zzF;5fth6T1FU8Uci<`4nrz$N>p0g2<%G}{WBT^R!kQN7-t<a`P+`|Ow4jWgUaaWnu zeDYu&eNU){vvH>>=y9W9uVS#Ayg;(=#-g}k%J<{`-A83GbiFTLezk#+#_ZH1+H!Gd zvDwpBd(XXVoev*ots8-nC5;gTi>PJ-i&L~oBOXS^TpJ&h4S25;PKJh1Rirq~DwRcE z{J>}44~9|HdEUld$%3M$ZJhU)0IS2Bkzi{O&_&!DA}%TEopxA)lk!1)(#UimAyVfW z2@k(Cg2)2~J3HBu{B?5vi*-%4KnfDsP2f8<?LdOnUHYKZ8<(@l4||&>@z@YMUVxbg z%udIpzW0>B)s!R8KwELrz5hw-Ywd`6x-yna(K#v@5#CVpqp4{w-jJ2&=G~qYSV4dC zJ&{KY?jYYH54(*)KaUBSO%bK+x29+OcdVRbq#$L^xbqO>jVfSox;=Oa^SF8LG$jJ@ zl<NbGPf|TF@fnTlXH#jwJBtB-E7J%)i{j=ds5JP_^>CgplS_E*2*LxZrc}9Ek;#$i zLV0e(K;o@RC#(DW1}gyZs887u_d<z1%6;z}tWFvVMm?ts7`xQX?p}QO-Z~gmD;8;e zVR%_lTyTFPn59(%BpHUZl||Z9Tr~3H1Fah&3?y~oi^m*VaWU_$+oMN!bSa~M9-_C! z79UlrNTEitARId_aQ}!><@YT5=aY=!hY3Pv5s=F1Y9djb5>o!HQrOYy!B}E6=_rQI zQ!sv~`+m#26_joSa~}UB`WBsF8A4car5o3Gce<nxb#99<mTe6(M%@9ePCSmFAiCm< z2Rh$iG7sH!;v_-%9KeuD>WmQB`KF)7eU8%U;Um9L{vWohkScW{!5WJSiS9zHbXwb? zg|`JcF&H6J0O!>-F-`*}?{<}mKWGaHUI1BA;=>5wq;%@Eg|nVkosY2r_)YcdZ3mC> zoA;z1rBz2-8<)hud7M3Q;GC>5Q3?VR{?QQVgJW0I2lea(M&*gtFsIG(U*<voTUXGO z*m3cF7Vvw2yo1Pko;Wak<FcMVe)M?9cp7S~TLrgQ0_eFCLTTWhj4Wb`Kb)QYMGLix zdcGmFs5URwHkDh>&hUPUJ*O}!RU)TF)Nmz{Qes!I5fcs)W?QKzBlHv=V$v&H6=Oxj ztdo-10P2&;Qijb1TXov86xfZ$K5#bH`G#3?i{demn%$6dOTuW^4pO94X+>c?PUzw2 zR#jkj3XW}@$61Res9Uu@F3Svz+kusju#mLeP$kj;=<}Qj9h!4X*i-vL+m2X7STlgQ zNX`-Pntt2e8Q+-0${uGF*(HIY%m?O=24UwB?D2u)c#=dI9>-!q2D)am^EJcmUWjBX z$FVrN#{zQO0)$fJLp^|X{gTH~uz-h1ZciW!(t45n7#>G8?LP20HbpC`Mp;?35^4r( zUvf?jJec-ti$Pl0<HcTV9;i4q+hkvZ_^CUI(V(u05=TLd-AEjs@&S%I@9OC06%?o@ zQyhS40cRJ?fbCH}qsy%(#JdD7FGr*XDU8pC0w}Bez?~zijdJhQTmkM2$}sUv8)x+N zX|NGB!TA)UA@&f{A#q)Y)@SALH|UiDM9m5#_+={!&1n>6xZcV16i$&z^cB!MIhSQU zkV7Z16f;&D7MxiXTP$pFE+&leYWIT#O_`V`<Ojk`!Mo!=Cc4I~yNP;c$V-$4>t<U9 zMkU;WB=AuEJL%z*#_;1JulRQ0pW)~|#)DeoPo~~$GUfzjS`Kw|l(Xp?zaw>Y>zYWj zn&J};<vx`fj&|hZz)UBkUjpyI`K}6F5El3Md8TVVKw%6RaoR*gToU1D9MU?<69nZE z<P8i)J%yz+L?5G}h!FjWJC#R!vbs)DQ_BfdV7Mt!6FIcube)rWstx+Q0S!p2a%?h5 zAg(ZAjqpR?>c_Ql+!Lks%l9r3nczhfI}yCfx@{yMB79(l{gtbJAkx_$hIjI*WG6}J zoUyx+lZ_i;yF9P(o(wZX0vr%qA=`O~_sr9esm?;SEHsY;7#JbAmflp$^kXBr%D}b_ zDDjgMkGr^~1VgUz5e;S6mU*n9{2Y!W9NjG0IDBD|wK~0Xf=)Lj7$@BM6bgVl#MD~o zS+D&B<EiU#kQ)+!CAX6q_KZl65(XLiU{nw`09CNh0oUC+;5K?Uk{X4aOR;75T$LMJ zu@?*w&V6kw^o1vEh0khi@bDKI$W0`^P>%%GwajV^hq5n-2`zsm_$Cvy#X)v8eHihF zL}Q=@>#-&Adh5d`18j`~RzAJpNb6<i9>7Q%W=CR;%KP#;N*p|hp-5#Sg73k`m#ijx z(Jlt*65Zzv1w<>b&?!X(a0}&yF^a7+6d7O$r*X)fkUgHU_+2B=g2X7;c;9vyvQaOW z<Z{}GWHA?Hvsjkr-#ZgWeez|HkAxm25r{cMLKdG9k`{wp-@5|f4RG^ue#T&|imU0g zy*r?L=FhNqpsM55Zo0l}sro3%UPt$CbwpcxM@oBke|`C*dLGP~u^~ca_JJ%+0tBUn zdi*}GUwzZPe{+Wzph@?#s7t8g+CL!<w(Dz<!7uJE-wo7T7HzEqO@JUkLQY9X7ig)) zGhV7#8B_^mF~z|IwwN8J3<;76Fi(Vqa1GhEL+{7A!0I7$wNfG*(VUJ_>Tq!B!bb~| zn51;j;+ex8E=Es>6)Bqo0NX=Bo*EK~iXw4lY;FeLzzODZ;zB01C%#Wu1Gp6hl85C~ z=y@q$Fi(fPx@^0%Gug$nv#ZPN`yVf^F8@JLqZl;gJ0F9wkAfg&4Pb=wfAzhR%PV~{ zZq!;b%n4q{t6fma0U4Apnr2x8b2$JUbboaRTCx6V%!QwS{95|67iUZH1x$40PIB{7 z-7~m2r|H-bcuy+!me@cIQe(wk2Mk^Cg1cO|J6+te^A0AVM;!1-@l=v#vKLycQRb!k z6P>$7We{$!boC^gBd^*jCMLLu;z}}KXPp@55Ivlq%eL4lo8vX<?6m9I%jAp@hQVf} z*E=C`7#IWzG+zz$S1pwJC5f@k_1zvt2Je>k8QTX@rzJ^CL^q~HVv34lZ5H~<^5Lol z*<px?&?RNUmL%3~ml_{6T;J3yO0ESRq|PbSOOZHA=}^j9iVj~7X3EQ5{5L`)Ha1wA zf}P+q29P*6$7K<tMYAuPv@E)EU+4`V$8c;J<^>Nk%CaQ=3fERneK?@bO?Z1@k^qeX zT-Kc`Y?|S;yAF?_X<vR+PR`;ZEx-&!g-bmd%wl~IG^52)BD-=7Ir&zWjx=SCM$~p$ z5=YRGgh^QJ3>nS&xf_iOT$=wHEZCamz%Im0CpRVt>S2&1my!51N-a-A4Q7K6bmVn% z(@Bl4)nx<unpBx14E~5>Z$}d*k-2^v>OBK-j(pCDShOI|j7L1rS+%pQbPJbbZO0UN z)-H)a4oNb~5_yVW-cxZzY>IG4JRrOWl0x3J6=gg65<FSno0>nl46SVL#0Ixz9Njhl z7%mhmj=nOi*g#%4IfZx#$3--sn*Fr4^p6;JAbERe^A6MrOf4uy<b9$E2Pr`|e`NjG z*(0}PKvTNW;_lklz>c!~!i<9{*FZ(42}!FRA#8CBvocMxbQ@=Xp9h93iiNQIUbXOx z@v8Y&>ibCE92txR`5{HL5th)!Gmg2XD_fLFnlPP^b=oF?jS+NQlRMAeNP~NGNhFgn z<KC}w3`XFT!BTpnznG}M8#n5x2M+U^>WoM%WkDe^aI<;YxmJbOoS(0pbCp|H=EFz@ zJ{TcJZ*KygDM$v&I;Fn==|Sq4nvYLz(HZXcls;H!U`B@4SjE<4J$-LFLvrIIEJFMO z2wq`&Vi30Z6A@6{O=yPg31GSE%cI%VO^gYUy42uN6*w`2qj{j)H8LptiV-B9lGjUq zH4e+F+GZ3J4NNa%T_dZB*|r^S_Jo;21-~w2NZ=z1zy<IPRhYZQ-mVIkM}{;MX=wWV z+_;BVFR8~uKJM@OL@jzyL4r&0^5+?NHR7k3nvXN&Sjhi+*AG{XfIO5Lxi3Wp2US%D z!&=aO!ueQqNA7M@^l=wupb|AzU~XJFspT|`nkryY+cyP|ip;plg|u9YiROa0ae;$R zF=Pno;O)dlmicuN9kOx@co;QGDNz|$9OXIDwY%Nb#&xmrvu7e}r`>uBzefj!zlwN3 z9u$f1Kz>jbgOQknyT;n49oX*#5V1_m3*hq>WgT>~I)=;?$PETTb+7>r84q=d_f$$o zTd91T4C4J>YKgk4q`C(_5}Xjem$gx7I1%%YfQ3dp!hK08${{lL(8Ke0uaXNMlP(`c z(Fjaueah1Lq88jt^@xmIcEr`fcGZsX$4javq3_7-Rn(Y81IK3BTy1aaVpDI1+F=;S zx%;^~gZAa+Vzpn2rCIIw;uZpEz8wP5`5|G~@nSGo_CO6sRO}OC_gkam8$tTr@Gef? zH9rxugw}U`d6z_gl7IbG|Ka0nivJvLc1n?y>ZAk>np8`XKv>l4SElJPbK>Ju$Ec0C zZZfiFsfU;b0VPW+i(}Mkw;4pBbc0I7@VK<9>Ykh%!AW4hO_L+mH8QhrA2rKkY>Df< zj0rL$BVQs`><RFl=H2&q7h;#dw~zQ+f$a$iX#}pe1cK$Zglh)8FW7DgRnz22H^RI$ zwup<wp7&TW7~l&+Ro7J2#^sE84?VpaS&+TpDY4>&7UM$<@u=i(jWrztJ5p6f?pf5f zVjob967?3atQQnTeYd;bu-2$qW;rUCxxO?4{O+Rw19xtUu@gDi-DCnX`b&*jb!&Hj zT~{KiT}#n!vX`huKnDKuN;J#%+?%00yxb$@jxR{$0uG%}2MeVFh{O@G$rAYqO5#DL zrKMEv?gTm}mDF--`W9R@<R4o_h&IPz4tA89PACH)$oomhHI0~H3?;uVvJz+j;sQs^ zQZ>3J+<Pu*VGQ12AR9k>LF?cGg7Spmy}Q2p>EioB<gJK^#3G?qTvNmI(XxW}leVOs zIs@(w9Q(ecELNKjHW_tIc$wX33*!tH(ITn{76YCIP1(rczplL<T1pxKs|Q3JI7R|! zGvC`))ouO6Z*2C)&y)BBxc4zf0MS1w$U7K=03yr8oIKqv6FUzq`Z~gcx4@EN*<l{( zO>Y}>ZN!qDFDMNAGQp`=CT0AxJgUWdfD#}nP``j_N$AP?w6;VY;#aY+3Egl?LDwbv zs2(EF(<u~zD&bpS{k4Dp1}S>*ZinUhul*CVK9SaOB@nfRSv4AKw*S6=?@qiI^8%Bf zfikosqAp_uiHoj5(q9D!7Bihk`(8Wr!8rW0%uQknW3E_o=cphrF*O^?Rwc^9b@NUv z^a&-*Nw5T=4uk|WHQ1JI^j@90Y-Gtxs=n~?n>E~rjnB@9ZQj&jXH==cU61NSJOOOV z_q#QLwVsYj;?#X2S)?OEuYs#3M$r9ru|vQ+K){KsvTxfIn3E+t+~zAAY;NP{%^Pr9 z_&Am8t-aZi3DGEADJm4<q!g2AN#G<x-duqGi4*qHKMPfW8<$cH2u!>YICn9DAEl~9 zZ)6-QcR-#3tb4V?(W&sweJ;7n@koe7CVBH_XnRi{|3pmw@_zTAar8NA4G5u>po%9Q zZ<~Q6YSf-OLmD$fEl{;Pph^hKNr+ChV#M;n6GmDr-(gWHA4@?aYJH3VT;LRV^rDKu zLlwOeXJbhOG%A%A#e^cJubSoenFZTxvA?L&J(!DKRMbc=1wp6P0sD>T%5nLBcR04E zA?W63Bh_+=5>29#%qI!0-Fs?lIT^Dz>oX)EXEO1oPzrM(X39{wuuE*mn??+x{@&dT z-<@)#_J%L((53*Vainl>V^9(aeL4KiC0-1lDxR3ak@Sm^q!R&in`So~z9#gYI_T<Z zXucnoi%x_^nc~XGSa7M`_xjcTV_T~pFq!?%Wl1^=!>OR;6ULFpDHq*d=bLLXb)MZ) z2A1BWC}5nBL&Cu$%vmkw*ZuLqVJ+;w=Y7geWjO)09l7gND`2Y9;NJK5KQ6=Si_5Fw z55sLobx6(V;%$zQ+`gncfMtZlWh0LpFN6dg+-A~2@bZXFiR5GO8HPT^xZ%%p@Y2dx zW3el}moZ>q=O7a-2eYC2Nro>=jJ!d+%;Qvnk*b<R-a%T#^%5!$9~6P{^7isShmDH{ zz|NpGFmH`uM^64*yIlLC>`dkhSGY1Z(?%TL)DZ{arDlbQ55b+_45|m#c=mb&W)ZN> zK$i3v!r38v6Rj@t^k$-~sN>LO1`riJoqz-YhRAB*5(*!9$U1X{ktzVDa5j)FGjfoh zX`S7o9bM?#IR4A~;oA7hZnJl|pIGP=sK|(X;;6;x!}!)#YW^nY?jD2nJMZ~MS*<`m zBRofNStX4#d_Wed2<m){#4P=3xC7(vt_kB=kb}<7b~I{y*x6b5-0L6jB&w-EK<EcK zzeGV4xD^QGihGhUgsW@QGk@&zTClq?e|7i=P!zJhECmshkJ0puA1mq6Zb)6Ugf2$_ z8MYmFv<Ua6?HNB;(d9MkY(fqI=LKOCQxd5#oyb|X@fklTJ9mF6oEvmi!f8k*O(-`H z@6pfE^voaoRzFq)@Q~xbz|uq*+$d2zcNa80<Huy@ZVXX!BT+`6kKoHW7CJHRnYL&C zoN!-O5>P3EU&-|w$G9jGvy#&GjGq%i0bAQ>orodCl#l@2mkB`+Iz4TC#t)*R*e_mO z-wwF+-V%p}dmQn%>ZyDxq2aS9p7Gl<*>`rb72+GUuF*az&Pgz#epMTv@q;>9?bJ;c zt3m-xqJ*fV`B)mhHa+o--<HXCcCy%E$(HSi3Xb~$EP0)*Ha_DAb+X#2n=JL|$soi6 z5+&f*ND_-1lRojB-;U_Hz50heIS7p8p%LSN=tQcBAt~GZj9;zwqo^7Z9@bU(u_Q)< zghPZsb6Pdh`&K@=5Q=WAKV06tz6Q`BE=J_X3$grM>~8TCi`TJ%%YcDbVIU?Gpu;S( zd}yuDIHJ?f?k}(U;ieKxfW2|B;1I!-VbSS`i#EdabmgcZdC2!od=B|m1g_x;1y&GK z+Jk)G_t%r%HhqfQo9LM;qvSSvIB{MBXUB=b>4V+g9iA1b>DK21K|VP)>{H#|v+2w{ z-V}1j+*lBgTp)5=TUKtc>gHIwCbZYWc4>s~8>z_i`R@9zxxBvB0PjqjG4q+<geYK- zM9GgNYK{YV@*F35%Rl0m<0SmCD(D$?o;p~Fzu-$FnV@aCMn#qW&r7wO#&H|~ff^LC z3CWm;&d&b7%l8sv@G0T`pUEsj`Oi#x>$NYbU_O79*Bz8`3M}Bz!Y>7yAuYIgk3kt< zR>XxFM}#g?2zBgnj^RtsHKEhc)Ify>4~4)RGMp)(1do7%<2Wqkv|JyePpR8U+0HM_ zUq0Wxqmrkr)R!!>fuRl3uERw>ZA@*H=P28G-o&8o4D5ZdwlW$#-4?F;{2Z0${QOVo zk7j9?&E3`RdO%71T>rEWt*`&@J|ctSzS1NK(^+%dU0zb^`nGG{qmYjcMm@iYtBq#$ z%mE80?#7Fb5w0HNp4RR2kH0uXpr@@Jar7KTRCeM>0J%VjIIwmPTAb}AIdS21Z6cEp zy|Fg;w`3lC!GF!FoOE1A|B^ef2B|zatf-3M<lvy{^E$@udT>!bI6>)MM9H562Y;I5 z(S<pUOj=wiXtNaV&Kk<{U>Y#AVD{(`{hH^f*{cWYnT8Wn;W(;$QYa!U6(XqwRJ(dw zu?RVc+Cv<Z%|!K|PT4b@Fm5}595AfFI7>vU*;v<@g5&xx&zfZSRCY?irmDvKYh>Tu zb^gUQ=$k}2UR_~+6-!ry6C%NTfHRM4TZ$vQ#!pURfkZCBCIb;__BBaSx~&W~FVdA1 zG0P2$gMR%N>M9Efed-yX2f+UNi;o$s-qyNl1m7`!TZkF6fn=}~<6p*@g2YDVT0fDo zJ%A$_qos-Jj&ozFk|8PRmkSCb?yZR>6D%WqM2aIpSKQfdXV-WAH;n(ZD@FEAr14}o zrJYjcuD^*R<7xhszoRwu#2AQR9}zR$l{E(XW&k?{>(?nAPy$boT_qh%JE>!lGjr@r z6t@;gys3G+zgYYjG7^G0MF1q(k1|41T%v@+M8%leJvkl{<p;iB*DZm=l+Yr6{4`Ns z4R+_}-(KG%0o;E3wl|fx4e>ukqAxISU@J<Pm*j3hS^i8tSfY;yYP6sk5G=}miOO_D zqCYsRnP6XKtT_e)lGnJ;Bst4cfHyV=aRew{*Zl>{#D>X{K^@3yqQOYp5xv_szA~it zIbq?_nUev%jnrh)5?MmAkn8U9>Z-Z<>Fn%N_t!sQTm2H*%%7btLHooDib{hrJxbVd zXG;*E-Uu%5%x`q8!PpREb9MPGk{(kmhZJ}g>fcdr1j^=aQ@?<J#OF%<%u@sevaQg6 zi3%z+VyEpC7x_Cra@!Keea8j`ycc3$Sp%FzIcXv|h{2|)8V>hj4Nm`xJgEt}ail}g zH0oUc8pogi>CL}h{Q3X==KuWRYauR*?@$UaO4Gg=yOhHdwCh1y?JSP;u}}Z_<-h)! zUWT3mOif8@UktjKaNDVQI*kuG<i&0rF+R{Y_0HOk>Z>FVlCU(e=B8=p*PNz#er{J? z8BMpwX_DbP`o&k15gyq`F>z4T=zINY`0n9-uCGq2)Bobjuiw~ZCP`GjRDr}okzol= znmzGqb|xKT2=A8KAK*BhJscN;XQ}sqoh)-pDD4FVYD5ts@a<amWBJf*R~}SZc-omR zB9Esd2Myaf;e0SAVZ5s=QtNd8@aZ?7GCIPvND9X;1u8Yc`S>n;tL12ZhKH9TA^otw zAi>`+&V~4k_(ahZ_)qhsYC(V<5<ao|q~R;jC4iuI5mgrQs}t52imUwxt;=d5G-3Au zIt{M-O;BA?tcrUwlfW6E^@L@II*hwSAW&tvP0$RDQ*wP(?J0co)u*4o7K(174hezG z&J+tz2Lsl1)n*C|Q#KurYYhLT(HFv+C42h63h{t1_!of=;O{u9)yAUImJGg@Cn#-v zC85idN-6}^zbvW3QA@;}Z&fRhyP8k3E@ie;0%ZllBca49URIm%v%VyiPWg|og)3p- zqb59FBy3I+a%9(o#>bMCSiS*Osv6=#C9!Xdthj+Ga6Si3@HFc3ALQEBTj8i2iC`dL z3KTshXNl-AB4!IhyXE%z!Nl?{z9pyN+neT{^R!E7C2%1i3WyxI@BzDrUy<JPqsRpE z=GqE@A8#7tBz%-h#&^vqBaDlEfoceEpa48aZ)$#IuSWv_HExGs0IG-9D9P-!m90V+ zx+k97Wu-1|T>`K`*hxwfgW9f6UsfN{xLDPd0c@<F#EkloNvb~~!VYyt!Gtm@)@O3G zqoWIk;9g+FCkJjMtUaE>OTq=)_)K|!-R|x+z-H(Pkd^ErqIM8zxdCjOtpBeo0F%ht z1f*{qYXdGHsbHgbs!t_eJJRkvoS%p1VKX2`yI6*Q&*j1*ox!h&WWFZNyAPk8g&!7X z%mJ*^jQE2Akj@DCMy}UcpGO!**rAT?1#@YDcFZa<$)mmjw1k*qb7_3OkW04L=y;>; z*yRl(ih{<i%q^YCuZtj4YLl>sDQaJeSDPa`CrGnKn~Xo)N4sPvJ-fAn8&v(E3k)Rz z*B0qh60e1G^<fv759c=_MUUpUQqI<<4NSpFecX}{ogi{GNE<Bn;+eGzWrIKN^?#Hb zQ=poVZ;4z7-U#EaUSBVG?r_i`vQra6U;&2`K_X1lT#$*87|hxG6zSm*A^f^dSj-(O zAVLJ566-8ZtHlWmBN&gY%5xl>Nykf5B|n#LZy;p60O>Pca0Vdr5O$X31TeFWN8fT} zylQjOw~ft-R0=9C5JgIbun~#Mc1`22?`9{6JuRqRJB}mpfBoLg{#(1v0dB(!Z1%70 zXv8>mV2NEvNrbxHJQ}iQk0t#z8uVZbSdsDyJi3u`5~SFpN3ICeTM|70VPM*cvqXY| zC5n7YQM$754JRo|?qOAw9M-_vxGMLgQIy=H3q`4j$OWxQ+7OE(#?RF$p3v3N>jj+3 zhU#Ag?zb%pw6Q4sy66#r>mH~Th>=7btmsQty(XQzO)%2A+k}nlYvbo%q1@P#hMz|i zBnD#y!{**nt;&rAi~)ygR_cxZ-7d%ra6;q0JDz(>2z*qL(nRzcX)R*T5*OZw9R6bR zr!LY&coWWpxI&IgtXm8XOgaDo0lBJT1l0ysvBl8b7;P@+A-j)xRGFFC@-<dQNVZT$ z9Em<*9$T<6d{O|m5o2G1PKkGNm5m+g<|qpzQ3^)RMU>;Ds0H!v0oOs%R~?WIBmtFG zLK@>kR?pjJj&I(|9A~B-QRNbVMu(&Wvu!kf%BAh^U?)eHX&}j=1KggZJ<1-43+`8E zhsl#T89J_fu?TQAp2F!3jjnL7rLpC|4wsKHgXfa*4!94&r*MRY?y`0xZm!c&M)#aD zUftinC*-ublk|i-=`n6dYy??)Bw{GVo_a%okTOJ=xu_f_z%%xS(3!8Bhc@<q{jOVE ztpKoj#WXd6H6LBjU!h<@o*W4svD6R+15NnXoaELh?nL9k#=iXimAcMfiF-|8LhpZE zvi)2iAXvpeVOXws+{I(kgSkaboS3shB^fki<>%7sdRo&$Vof)fv<CzDj<csu@Dr2w zO8ve;oLa=i+ji+l30C2#D+hZ_BEx-4Zpy{G%kE|;(K|V)eQ`&YaSG%+g_P(ee8LTA znN7V&^`%_ofG_}vB2|eJ(abkeePwvxH&@<3w>r^8Ci1?yy|oKQf?v^TFaV&&i6o4M z54a(&byWqu5QYQ7Eg<X}K}KoIOzmyG`r_@|`@4SkgTyAKV+X<>ZcpyWDi)Q<HM$-` z|3qLfVZ(@**|L}1Nq!!(6JaR{R#l>Vv?|t-cjS|$iK_OH_mX*dulV#DRbyC$vBJMm zK`9KO;XqJNdv|vBHI@`H&Sw(Q!BG01fF3N3WG0WGj$@&J_D}5tKH}7%7zjS%lpu;! zu<_-iCbsv9^ZWY^fs!&oufCI8ktGzgiz^CXQ)?2}D=2Kulzi<ep?rU{>m)`lvwyLe zB&B^JH3@-$yP^F>7y}~AqyiVTB&nkvnPflCZ`uL&UXC$3WozB*65N~<kGSg!z*af+ z#UJ&Lyt%ni@YRB9D5S2A1ZoR*ILQOr;;T`amrDve2o+LWp!wl%LuVqZJ~zRVoGAGK z_a14XP=R=J0f-@mvj+u99Hl|Kbo{%I^an!c<-POsf4$nZ_CTNVx#EY*ySEp_!8hII z-B0G5NDMKBcBJSr1wsT$e)-VDKAea16!%j)>yKGB0M=7N4Ri|PSBYX<e9<ppZIXX= zs%K~I?#F?{^V#l4S;8<(fsce|%tWR8fQv5(m((|iMP0rn2T*P-21ONYNs7uT&7KpL zW2GlQmRXwBF}f;Dm1=s$h(iium4o6^jICvRdNs_VDT%gu|C3bkkotO8&HMMJhzHT# zfT5z{5Uwg{CXzn0_naT1b}NZcAjT}KKA1Hz@v&i1-0iiMFqHee_hmJ#ClLp6LUuw= zLgzS^5{feWmQBqtAM)_ZmRNNM&(GPxPyU_m|6_xgf3NqGpG{uRz93t9`l#80B;|f2 z8NUXVGXhd)IpPNnPMC~2YUaNcv%>mL4K5^C;?e*+?b4*dR4!qeuJPc6xA|7;7@!u= zD9p{{Ba8GhL8^84kA3*;%)Mn`F3-*^-_-kN_)(K%BZML1R&sFPiS=uYTKFI$FK=ON z*Y^_PlQ#uYT^|7_0hXzX2&PSD<~LHZHBY6>)2GHA%VGIcc(TmTk|{~Qq#6^qEA?v7 z29}#H=Yen>Ee`F;RHfBGOR&ob^p&}fJT%tl!ABR=iZ@|7$4AeFl_gkdBy_5y+GGi? z#k%AE!9(`jvQ@01Xl^fVhLHiJ0G>2b+m`?okhD1Orpe=lIi2UU#qwX)gw1_=IC-t! z-1V2cuP)yYCaF=%bR)pzq+ItE#tu1qvyC`?yi?DH53L3-#_`|3{NfFfuAlz#^&eO! z?CGcj6c8NxHUVJs^{b%$)$1QG@7~-sclY}lyZ$PfA9Vn={5!=hG0}~jvt}fQT8htu zNr0rleXuF<Y<EZIG{k?=-@kjW3K8*GRl;qYM+0TRrGRVDuKTsV0+Gz{o4<VZl`a7F zmD((AYhv*r6&c#p{HRf8AceeVgcpAHXloTn$;8Z)RhYJXV*bd1u_g@W^S}K0n=k+T zR~;>pl=u$F52%O?CD>O->mPW`cqLx;4s}$Qw64Hb00<Uzl!B-{T~gbsgOmk6gftmP z!;b_|-bv*ZVFJJjpyCmUK;btqCkadT&7b_%*<t(voG8bZKwSLbrsqj7Upx@US|W?0 zOi(P}A7WBE@R_A#=}4ImTSCjUOK+7)-qOQshjDf`bs7q1`pl#<tvu}^TO8GAS&<vp z-<Sa^jGX;KpIn{{khwe9uT*_b;$AX8Uh2d9#162z;3szg{xSd?zW5UBJR@AB7qkx| zPLO6$s#X{b%63Va5+qd7T8T5joC0DSm@{!LaN@Sj(b&m49oRr<!stPCJWAIT3@)P- zpaL@Tsb^yZ6qO~i+n=txq5(+g5-<_{!;}b)@rR^2yEq8wyrA*>)=$)-KM9s$A94Jt zcJfyV$0nWNu6t|xYnm?3$|eQwGbfQ<Jl?j^O|O36Twj`!d(_V2uZRfu*LQItCX(jr zhX$<irrq60(gJ{q)Fr2UCi5ci5L?;uA?el3uzTCwl<$VSx4Zr}F^9`bebOdUPDPC! zO<ALFDkAsTfcl}Mo<J*@w60N<?Dr&3oAPQ#78~E)RjomDxUK&%wD;eNC$!|5o6A8C zJZ2F%7_m&KA6S;qg>0L-MadI?OD?wS*jnlqzux}-m3279**|4wg-IqfOoAR%EHy*B z4LO7`$Fnm{P~{QHPnFr``h(B~MIKNaDK{d;DjMT5DJZ0jUSM9`*K$l;`d&2q<~Jbd zlt9UdguzbI>bMeR9O3N0LOi<sQ3)zHVtFtz)A)c%)p+^37P`j<kyD=FwOzZq(51_b zNhbJ$NE5@#2ZBm+ufLOZGl?yjUWS_F52?1re~{w*?s<_UlMN(&z-{Yo4LQ8KxEe;G z-n!3Q()*A<FqYI}pYpBlFzj`}Jp%5?@cu%IUC>7gz(m@Y#NAVOJMTG9WHH_XQGz2> zWb27eMG@KSF0ln^=Z_zCfPpdsN(|8gL<)4hEr?Wyh!ZxeK{9)(NBQ*Zx9a`w_EK_o znKMyFz)+@0MqS_L5=rhFHS?5tqF(5EvZqCmoY$6R-Pw5JBFW+-oRah)$TcHnmCa?g zzRrpH{w;bH05X1K=!B#&%E$8G9+=HcfOpm(-6o0rYPh~=2NHybi+0y*5hGv(33?gE zf*P=3vkAcC?3wM}A|=9`%WvNbjdBsysI=rCfl|u_W@%KLr4PgXq<~^ry6{R!6UCt< zHKZk_Iv;@#lre<IUC-N$(djSKg|ekd1y#~0uY-{vh&BKdBer6yk`_>bKYrTv>i)z9 zXpS%+G_-f1x)@VYlj8BBa860iE1^A1VENE1!<A->S(x8a7Mw*ueQz-ZU~qx?5h<?n zj#;!YH@q+z-?LP1=0%yj0qq}821RGXRBjw(zX@h&KB;~&8)diFe0*hXR`)Pa;INEP zyz*v*hnkR({SSKZ$s@x#u<nsvQnOkuVaphwG1QV;M-Gl(ahhj~9P-rat*FntoscVh z0RtbXS!75irMN0xqbJras+#n3Az49Qjp~N<Dk+{7>gR^Dm=)KF#Zia}^LWPB@9tZ8 z10EK!$^JqA^;-TR>=UU=C6rn@HFfg@EfD`b{2$~<W=&x_sGk%0qHMUnajcfllU+#E z5IY86K%L?9zV(5O_(CSM;KpkVTc6t`ge2d5=je@=Qu?UtBWl@#-<M`k9!t5-DsoG* zn3Y>W++!sG>7@n`!5~x-AtMx7WAV&U>a!;=Z5u?{0%$TYAYtL#C(ne@ZXY~pKYrkA zUma9tLAA9AGb<k4q)O!`@~xlv?);i$LY5^bLuDMf42LwK#$j0!%p8d+!M4p-GW&{) zITNu!2q;G?1V<TIX;ksv_{vU{r)%>2p*%9tl5R{z{BrWN;Zx%XK9Rv_!x(vsb#Zpp z$l!H(Y>Fn#6dSLK(9*Oo2Fj4n&Q43wPbv_Ju~icijhn%Soa(%`n2+6lQVwzClH=8v z0KSX}6cURUFnWKL{qCdfX}ahM!>Rl$dOd8twaucdk^AtL+;cVzyj9AoP@SbA^$CDY zv^U%630(J<Wa;Me?zWOe6V6r1n#x~{=uBC6B4mjfXcDU4HZWLn!bQ<=$X^Z=>iqm> z`2PI->*4#=MY#2lQ}Uq@`|8MR)4@1A+<f>BL7R!=o58Y0P#hehA4=>c+VVjM?J!l$ zT+Irb1(TIMKX+?<em;D+;H7dcgzB7h0a%5F3OhSvxx{_`y(oMJBWh2vGq0RT{{=CM z038S<Fg4+jALQ2B*uv8(=O`2BCZt|s#U}ApoXDtrD4DnSH^aX~|NNkPH4)g>i5DRj z=cEYAAR0qlXcE)|FA@P&wQZ{_c3RiBJB5kGD2x0`^@afyfJ{K_M17<!>^hKT4l=1= z$kaxa;FGjWfO?9hywb{$gML3e9HGrRCSVQYP1Y7<w0E&7J^zCxg$?*D!-!TJfBy>5 z#5uuM?i8hfD#pbURM8HD0zg<Is+8ylP;3R3$>~mq8IX2LihWA_LXM%Hpr#(Q3Gi|* z9j@Q%K)D|N{l5ASrIioA_6`aXmk}sGn9oK?n<{IT4;)xv$KzHfWoGlCaUc<JbBv1_ z%TLf$XF_81oE+Xd12(a{l6y1iQk*$hP(hqPPUN^K5C)AKT#4;HKZlkcPpMuv3-8rK zmxdGU&(FKJ!$KN&+k(nUGhUgS-4#ilyC1}4ssH+de;9+X{czyJJ+e;j!>m(UgBdHe zd2mUkSqvw1jW4)Pfp{f$nFcG0{HX?BrW;%#zsHTYd_WGemx*J5T9*$Ty|t)%)>q6N zG+KaY9TJIb+ldR8>xLcuPTdeSQ@{+tC`P@2kb|jx^4s4CY8(IYzAv?)?aybiA|hJ6 zq~UL-aY7Olge<8uALAbpF>F)gJUH<9pUO*~wr?1iL3W4<q%6Q?wY5V|U<|2P%LE~q za=TT5!b#Lf5<%<y9$w3zdm@}^F4NDGBygBe3OY7oY+V3sh@M;31lUpxN54tagFfq+ z!Erg1@9tAe9y&Hv;WBc<zRJbx#8usBOs8G6vP*Ih4kIA;i9`_w0sR$*{y4`@g)=?+ zl{%^Gv>fqGq<E7k99^b}O3v338;3!z{*d4+59=Ry?}(zBf*D0+aVbb}q6ok;96j3r zL4$gig6|M#Eqgpa+l<*+#Qm6Wj}nzEc`h!p+k6$X(r=IG3L!eBVph5hLl=&!3Jw={ zcnl218FJg#&?kc4lA4{KOm-G7h+)L(0Ti|~lL!Yhc9CGlW)~Bw0(|lQ{uVD=!1nl} z{5E6arI;u_yB~9HI=b{Ah}VP>MMFJ|q==i;3eQ>8-Vs_TTb2W8BcM5npc|!FUwDD& z<LcvS+S}dLz4~}aJjq0arK~v$c!#M2VcWI4*S%M`Fh-A*8N`uH?m~qrkwS1+71(Id z$SC92LxEGX?}lBmJydEn!4#g!W4ter;~?CF?b<gD5#HwgPcSJMQ;JMFJ@7uY;Q2I| zRSj^Vq?b+ad-9Z}|NSew0d7p{kkOT?J+eN-8Jb+c$42V+bodyI$?l*6QxO?`aragY z^ReJqHb8XZ%c?0=kGaY=t}??z_Le<jD-wv!4|Pd!fxO^IEq%X}D}kJaoLUHgso{hl z1-zf%XRF{|Fto`lxHcn!UmF{Mt*M<kCnxu~+d)_-pdeIFBGH0F$&$&|$_}yv8|P7X zm2fykI<%ybzY#F|N<&%*$CS+|!7vz!*{*S8A>#UR1O!32i?Yzk?T(CtTiU_6g;B+f z2t@GlQmPP1odqrevEhmPRk^w2H>+W*hhC-w7oLn-Ov%}T+q+G0uo(B9<#pez+!=11 zUtZts#8P4a-K9fW2o|9!DPSrA31rjvt#Dy!*j!#8tIHA!68mQa@owydf7C|S+8Fh@ z6tg%YM>!XGC=s5yBFB2&kPhhg%z8lOg1=}+{>$9Jp{5!I@vW4y<&MO&GBvNBn1@_2 z8~A>6&pRtF2^3SU0!IV#tKK=rx=4vI^4GDx5)zMh7+o9dqOR-0Ai917o_q=6GQeq& zQ#OUttAzyWY#D1=3UkEF0EE5GzHP23<r+fk6g+&d-pD2A2-{|C!CV{Z?B%1|pAmcp z<~u>~fD{v9sM~*#e+G`%EG2@DL(k3E0xu<`zHeBXgpFxY4~wb*vPeZS5}Xx<H{qH> zx`q+*`|2JN62tvjo@(5DXw*uF)Y7%YO!c_ubEzG<7qzmOq`&z|MhMT(fB_0CRF0E~ zKx#oroSHY3Tju<tw(l(=E7)dYJji?{M3jm^C5dL!Hiu>fX97EFuAj)jWc*aaclUs0 z-u+ZB1G3D`u+ISQ^Om!IpSI>2`16!cF_S{&vCn*);S0De(zZ&=6f|zo>DdAJf{2Xr z|7054B=<fmTLKaU9|8a*O-+)#l+fk#Vx;@sNBsAHf0P(&-9$gt%`FMMcLMo2Q1|Pi zR}VKuRmOzyb;3KuU5T3V|8w^y%yk?|wx)iH=C!P>`n?)h?h77AW)w^6mX)><SyeOB z)&|R!gb~C=Vc}9{{om(vkI2Z#%$s)s0ZQzy76IJMn;Cm}xF0`fd7DfLoyZfm`)wEl zLHD)fR&Xi-MIj!#kuKiF7MF&BhLZkhhQJK)ziLYi$HqhN#}8pa3|rnm_SV`UwkHKR z>B-$DTS$`JN&4{vs>|o{%15u%Z{4igbf3;;1EpR;I&V>?!1*Cnox5yIdr$nm_S~Ig zL_4&@d@B?h_EopjbD1|{p}qL(*;l_fo3S#ONO>a(qZ$Gm;#tRIFG6DdWch(WD>4=o zW{xZC9Q?4Hpv&5nzWR%{#!$pxkFSl?O=5xuc_+U~8w_4~c!P5?wsVxHbF+eIbWT=5 z&q_L^&{JuaNvZ#>yX>yd8!h`!4-{5J(4pyzL;#0zR_82zT5yeY46DmzAep8+wmTfi zwlGN1N#t}=N%MTI-oYbnci*&74wC{;wleEH++Z`4e9M-w*UUq(5x)c=?m__9k|WIS z@LNuvy(Q*|3MmmWOWf%I=dk`fkIk{Yspg@tAappCd1`$ygNz*!1r5sW5wK6R`p~=4 zjeHEZ?X;kyjpANP1j*rEX@Hi455%h6T(6!IzczA$H@BT*i=I0~<l5d=1@sR~8(~O@ zcO%UZ9;}45E!20HAe>H8JNnwFYy)G&<L2BYkH2NE*%Xrn%R5A=#UzcgTxUn~D&J;Z zMQuc)2DI)iN$7QJoOy?tQsgE<vI3+94QG^RaVQ;OO0C!MID6z_jHakXLXy-oRt<EP zMZ8f?w(DhFwbO=G`3ReDuX(gyj3b-s@eLs#wB9A;kaTSZ#13wVhE>CbHfKBUVq6|K ziuW!A1kTC|Jra<;;IC3I5V5up#LRV0<#_g}Lk4v&`Ycg~uaVDp42!j%(uQ{v(Ri)E z2X&V>;QRL$pW`^R_i>5;5d}{Ry5G6z`s-K#jy(?n2_p{`!d>~hUdLRc>=*&Y^%J7b zA<m_<8m~XVU{cU=S&&!|bVzL**N$uPxmTDZa*+CPWI)vbSqi2sJHz5`n083Oa$arT zf)u4Bsguta$ZA1Ad2+|<$e8y3P#W`mS7n}G)FQx)z!+|NlsK{X<oWK7{m+m3n}Uol z+!Lx+!V!?eGb!~FHo&y-99}zU5+@K@+`1`rE3_35*HY3(rx01YBh3lXw8mx|flC64 zhj~7`Ig^-D2omoGJx#HiC7Q(<MjhHhaYOQ|nDv^3s^=Q45^1ThPN23%)TyX4Jnr*E zZL>0($BRoz9<PwzwepSy-j!2p&)9hcYfM`NxRSGc$`959p!m`Dz{<N;Lw4#9#j7Yo zZaD$Wj5k$+2gbFS7~<bb)7ZkHhYU|h1?NXpqaJQUg~rYP0EKJM=Q<yD?lAU9S^V$@ zKCRbh{vZV6SCN>Lk{}M67C-v@COfW2U-40$K`=7uqZmyKpy+{2X6KcDh|aKu-O?Y% zgD1ZDEwK~QBS~qHv`Fn5{$$i5!3~`yk~4Kj0-ab)eC~UB#Zf+-#<J98JQ`20P6&^t zV+ayGm$=k2bYotB&dzEWEn-suwqdlDBKVKH0`f8nU^~wXTBRCy%3JegN=<Hi!yqS) z%RiOq$l7c2<-`j9>}rKYF(fn|1jJSZ(%y<|SlYqNSzP|2DRXo40p7*izW70Y9onRb z{tHQ~&82WQxS|iCy5x#ai{Y}Pj6!__s69#0h>4NfV*-Ym3CuZuDwjh3>=gp#&*6o* z^c&SJM@vSkxTsQO=1NJ9EE#~>q#ynGFfl6TZ%N?Cdn3jOflr`JsK#dmG4gT@Ub#T{ zv;np}f-q}SaN4fmd8>%XkKI4Cp-bmqVa+1H_pMb91(!n8l3-5m6sR7Cg}pXVa(#RG zcIYFYd(OQ=vP6Zti~C5-?J7MeigHX;K-3AtaB1nd3`dS6)?ZxE9@tDbX$>n{Co5hQ ze)ED~e>B3be_=8Fo6a~RZ3LlU6+tQ!27oc3J<uB8=XtJ#__8B3gkb_NsdS|Q63T97 z@zTKxnqcKjU{>Ts(gt7fkc0<pM!?Qt%^+b8tbUi53_w}`7D^|M*}?t-Zx;@$)6-uJ zEsfo)7zcZ~SY&n>)|3G`H{bp3!`v%%QmGK@rzzIRmpLuMVf%`2J!5;96_Q*{mZ69s z)H%)zp#3*}{_2K5z4zz4+pD|Vc_Ufajvy)EiQ|UlmLn$WFntCdyUg6Y_Y@J9_!1?u zmBCcZg03@RuT9~%1p|zz0{re7%P15c57HJR!N-pFFeD+%_Amw}YN*PWBx@va<pPF& z7#Fb71n?t<r`=g*XYy&EjO#wLPyZO!uA#wG{WN(;o)2#d08wzNLVb~Siab}hln%GM z{xOB$+dt%x!Dk53R9n@+RavR*%pA($migfg;gp^yxAzYvge^|U074KjVUHw<E8$TO z+FS0XFF|?7I8X>PA~myoP1?M@J(I<~2fIY%TsHnThwTH0kz5h6MBDkhmLI!b*;om) zM0#RnOdPOmCNYJs(M3g85HJX5BWE@qP>RK{-M0k#Ul`KWj(X3QHEn$6xUdN&RuU|Z zTMTx`=msH%7&)>_(kXCG;t~PXn<1=Nh#<z~%hozIn*`u@`KG>2)*`VQ(?&oTxn(me zNP!fh1|a}}z8yjq5O_@l<*LYd4j0#l^orRLhET$Q5!r}@Adjw*24yvZS|kpLA23<G z>+*E7#mAUWVfMFf%9km5&$JScDJfTna|LBt^3DS$vAN`J=2|=I{T!5vY~>b?G({!J z8*_6Uu<$Hid~z~>v2RhD^RKF)w;k9QIV|u)IwjQ)C?0l8jz1Fn1vOLfpLC7fbDz>_ zZ!z8!)8-bCmDVn#F{|sBhFloj3(Cu+<b(T`%*ElNRN9^J@2T{P;BgP>Kn2;PMh3=B zNyhO}4<%1XtYolSL0L-z3tLq#S+ab-+G69pF}k6O)d}P82`8FpsvN70CCOqRle!BO z8;)I2@Dhu&YL064O$W;S!I5DhbwI!whp2fkpu(2z75Z4xe4#?jaBE2PY<KacYxmjL z!}G}>&WN)~BnLcew&e_Q(AdDxm$8ACc@3c`j7h{;FhI@Nkc-Dp@KlCXb9a4BQu7%; z2I)#bQ7lU_pf+gB5)K%%d)x?Ib>p(6^B@pgVIZuupdR4?!*G$M-gDMY`)(Dxwrjm^ zILmA<*^Z=(|3!?rSz(tu)lqXYoHx+kjk$yhg~^3<X%SUXZ!DA{466G9^*NOF^C_#r za`}?Md1#7w)j-?akP?QBYMdt1sO%>$&fd1Ga@469*>H12WHI`VQ)5Mj>Ca00Ij$0B zs3mcOT0Ov<2*O=Lo(B%K<+<?ygJ?SBLeb(Cc))U?Judb|2+z)5f%}yeK|qo{%5F_W zutFGc+|}KS*ry+tr7Icb?po;HBu6C!72S$sf7sl1S&}Kf+KteXz-!g!xEe??fK^kn zwDihItGH|Buy*Ze%vr)kDZy6K%n}~TZ~vd~UnmJ>Py8ZoA>Bbep}^~_B$Vdr`XW3% zI810lI~YUN-PD4uhchq62*KAOTqowzeV&S$K+E7sj6mHclD{A-EUjr~Sq9y%vtW^o z<g1c5{?G1O5$90T#fa{Z))9i0z+CljIJj{0_Y5V(g+doXnMm$Zo+XD*{DzF>gw7z@ z1^VKYkuQ6Uo@|U?^YV`1ysgLS=}()>|BniNfBea(V46#nm(yI0v0dXeGoc$g0+PQ1 zoH4BPHMU)kWoa(ilk$35y}D>*=JfQ1k)kI>U>vvGcedH6+u8+tS7uQkChLHxY!#J? z%6Bt$&&mvS8R<L$2|b`vV|(87>a(?Pv;#S>?Y>XXX52bjeQOqphcqVGM>M3*0b4_o zDbjNjK>1Ni#&{y*Yf~G4+Um|p@cR5h$bfS~C-5@2Oeqww#NR3x-0BzOTgk6Gq6iQe z3MmMjOQcRjaOb9)F=($H?P1y1X~}K%THZ)EBWhA&6!$o;L{&j9n7w4`dwVWE`>_M$ z{NO?W4PF|SvkH3Ru&YF_MZN3yDfJ;kduU`$h`0Wth<pi>$dbAeZ-ekhNJ6|^l*azN zL=#Eshk`L9&WMsG2MNMA$REHYcXQr?Za<`1$K4J_8#VxFT{h6TNU-<xR2Pz!kH;Qf zn_@N$%K0fyBr_%hx5|3=k^UVw*v68pLtD#!)LcE(ku#fmm{nkD2*qbe^hnP9J*FP6 zVn4R9vS1E#4;n;Ly4pBL%2;Ukcg{U|^xCok^>HIAenkyUIHFqjDm!E2h_aJ64=)bD zy(o<F0pac5v2Mtt$FlniN18(N6`><m!CBf!jO*xy!?pQj<<L+adf~(tSmlUKW~d<} zwv3mDv_@$lu1J|C--`OS_zrNupSv6U@PZ9t)2c5vhCG;U9hCykdhifIq8CJ7PU5gF zIA1LEl%x{_aO$D5WA)$dizTossV<ahX?9FX=+$fQR!%&kE+Xb=3CI~*)urdyd)gpz zR0+L2gmIi}Q`B}Cl(vzg^9>0iAQ?e=uoP9~y>5hBP?{Ip9y)n4{!$2hDqghZzLh;? z7#mVcUXlFDlf!WOeApK&iK&X937F9>%|4CH4s`+aD|#*%vSALi-ZVgJJVm^2?y!A+ zi~Dav)TTFW6M_<UIcSg)HoX#3s)JgotBD@w5U3)7z%iC7b9gHavwv4B0ivs`1g?{W z-Gd!ndv0fKd8+SoSgmapW2u*r2tw(cfuGhVKcdV%Yhpv{5EehVzxcSPGWT0|3d+9R z;&jpZytaNct`K<u5P~O^`HK}j-TJkjt_6Pf1D(fj@H?<h<531d`GPP!_EiORSIlU8 zl(D?9>n%T7xS*uZ@Yoqf`T*hv(1byh$I$HNxM9sDS!+yWL8;%v=;^f$EqH!n_8rz= z>`Zd(3-MYyKe15GpPs(Cy5Zkp)rQ4R;_x~YGJ~bDAq2Vm<ivl2KN;jevV-8fCDzM= z6jBs6KoO$y(l~dPLyG4%L!aRuCN4vhkKai-gSz*y$X~t`GhH%|VWsTA<UxWgln^WT zlFTq}wf@t?;Hf_S8}NVlP?oO<VM2j68WR654U*FM52Xuz-**__zS6as0>199(;hyF z_t`J{2SY|arL;JD^0w$9Wk<LUmz4||xioAgnR!U|LZ3B$udHiaf@Cp(#1RGtxA(Y+ zs(B&qb$Kt=y`Ev<%0biwQ3U938WdNUGw$*i&sCt}#pbo)`*i^oNTKGCN$PrXVn&5@ z5@Kd{=RZ05JLd>}h7IZo@UP42ikuRh5#ooNJk9KN+lPUBl=hP}ux$=<FtqjB3hwm^ zwq((a2C0L`X?VLOkjV{l&D6zlsw4);=0YHL1P_!qem3iQmMDgY@6ugD=ZCx?EDlY9 z6WR00q_-%(cIn{{{_2NcNTz*8rtGi3sLGQiZ6SgII6Mkd(&+O<g73Wg3B~x+m;7TU zr^kkaH8nWSMGf=h<OToUAhxn)h7R?U6~fd9o2$>UBHDy?ltE#(D~}}T*vB)zZ_ld> zOB@u2bd>ykW?l#8kl{`wAS^OgZ!>Xh{<s}dv)ZUfl2p1&pbM9iE!gX`-7h7#7LZg5 zb_VYfT#Q;rU%bJz+sC{DVcsa}MMeM|Axymb3OD8^?CiQm!M+MrMUcZn13*NK?3dP& zAZ3wtSgUK#os-YpRB#hrHCa<_sN8;$&J-Fs5gWRzL09S1bZvw#faIqP*k?(cow2pN zZ&-Ttx$cQcdq-L$csKNmF4Y4Q;_Q`}1deKSfl||%N3^R3oGWBCQO<aNSL-aJxKd1k z@pVXF5sJk>#-hk(x7Vc@ss9^lm9#~O5!ek*jvmu-^V)g=Ogj$ZwF4Ax`suhMtexpI zqg6yPJLK^yA?BCka3m2-b7|}AT)*i~lgO%B42x!VD{HQXF(u`vhlLupTTWsuXy%e@ z0P!UqA&0nQo%U9HX?nX_m)ILZnIDoYFWhSL)!H~8&1rqEGq=s6@ZRDbnbjk<ltDba zw6s2E5p14F-GZ}jRb}DeeZ?=-q-FCrcR)LCuVa(l?DmJRzWL=VF6ol0EEdYfdZ%tn zgv+8Xht35LYQ;=Y-zhSJ7t5W^>~cThG5`9D|NE}H>n1NBj$&DhoJC!8epcF1)?_gw zc6hS3Z=QZ7$5B1=q6Vl13nQVZ9w7{bg}C39bIj}3Ceh&6i4v^$vWFU}$2$@*(?{RP z{`X9p&v{t!tjEG9k1?1xq`mKVl<a@g*nn#_8czXuhv`1d&w?BsBCzfh!0<jj-T$sH zYGilMyKAYP*gU#mqzu3AeVF_xKgLL}!GmC41GkOhrXU;v7I0zb+b6<uWFGxo)ONo9 z!v1x@ixM&Km~<qf!Zd}XaMC7F$7BD<1%ITkylP8bO0CPk-BpkbDqX;MaH-265fdvU zBeX}-?ywEO>w>I;X%R7Z{=Wrwy|oLZB}tHxA6kh0wQzxOS?R7e=Qo0~_(gwyEAC?d z3EE%BJ>D#k^K*pl`RK>Z+X{&aEpL2Xy`wjPv~`4tJBjnBQ3|XAI<NL^b^XQj>W#Vc zne6XF2m8m9+}>*VOT%RPjSPK-^Ipi;K^nJYDgf3;n;{X5xw!<g-n`28?6zlvJJovz z7$|aHp!5k!!^VQB;^>^xAwHC7{;dcCU~qe6ia?ZvP9pOeBj0c9^)aVLgMYT$b#g>5 zQh=|-!D2mf?>IS1z<yj4{1;5b*S4M>JJKK{{9zo-QJIkS$u^<0=+;`I=;6D9-W|)U zt08oA-}IM==%vi4Gc!EtzzB~jo-VwU5D$hGgT%k#h-Qol#YQs{IdyEP=@7lUHZsp= z2K)viCTSBjr0^jE9iH;u*1isd%grqV4vjep1<JP0afGa0)C#cNS<u|&y{$ESR+4p4 z(pOoAiYms<*l4>(?Ccpe`E?;KCg{wgIH`GtT{`8sY0}?@VwvjM5gF!-`${6KB$(hn zrJhMkHOUqwFPYI@P)~PNo@e|!sWQ}s5e#+nb&`aaCP|Yf?cg|vqjIwFyX*-&)0Hk- zRtFupxj92x2amqOX_2oHbqySR16QEAk7aux^^2(r`A4{V&<f4O*DEf$VT|oA(0tvS zPXdd5>={h~eEJ1h@<M^{=D_;wK_x=~L0t_<5a=BfAw%=ToGRq4tKW2^z(@sT5%5z^ zP9P#f$i!F*?WpAP(ESGuD)Tr=6BH)`6^Xz=`kUNJG|b!JiXOiY!K@s0FgP)$8{9R( zE6HNIyxT$nY>uUVWJ&grj9z08Y4TW7;Pyq9R$nl#i8Dj9h5x^7zyTsVniH!%#Lzt8 zEo;`;U|(Vd5Y1u<0W(aVG!u8UFIOKw^d&Ktl;Lr{$!%jYh)C;(d?;ZEWu&fHG@cBi z==yfJZEv(G2QUPb0LMKYk6zDm3=ihsubl|%;Q7#PUxWCAB?itF_CP#Di18FcfGt6M zxi}PmG8B<k6GJD8r%!YXivMV^I2d^-H$oO0VdjmGwug|WySR`{=KdMKnAt5Jb<*E^ zK;am<<lS~UhKQj5!0&(Ols{mH<xXwY)6?g-P(R)NTD|+)I~z_nQ|r6E*x;lh=^e($ z1Za~4Q;Q~Geete8`JYtrOLIWAFzC0NbCV&kumi%v_;`PT)^spFF>>`SOa_#WTlDkr zKLFDZBi9|kCQrt%(!4&~U=ax)|IqMmJqeM)^>2tdP!5AcR)5L*=wlACLKTqU8C@Cz zW)^cZF*Ky10;CYI!pfYjVt(_sw}Frm*Db#B_Cj|Yj?55eWdTcQnR80A=X-m@;+cdZ zkc55N;q>{ZIM;FAvD$DhE%Ks-#1<lr;i`Pstt|&1q_a)m6Fim*wwz#K#4J!pCaT54 zZZ6p|H);2Ky(%`&rI6UDp#0gOh|@_6@cGJ1WMb=hOg8wu1~az6Dj~iHBUas`!f6~| za;x=Dr_4f;H~&F?{H6Qg2ABci;P9fl%>A6rpQSg=S;BE1DF}y)TPN8rzsrqCCMe?D zMjXyBdnTC)8GO(0Uk|_*yt&)&HBfPp>U>8DCV}<A38?{y;i=v_&rXtP&KrKlGeu`f zeQAv$Kp;(L!UAM6U@TC1m=8s8Cj-xb+kQ!zz_*8!vV8mWRO~DpnQ~(cw&NXP3IDC? zYq776h=k!BghjWDafI#)NBFPSM~t=Jx=7u;Q;0u+>l}y};0N%Rk+PhaV3k}yShqQ` zPXiPQL!_Wq+Je)pnfI;@j!H}MoK`W?Jatx(XGA6f2{l`tR(}1*s*CS#a8*I60}=%* z3;+amW)s@usxkxAjUw-<Q-~3a+9_&wSX{y~FUmpt{ZgyXCasK9MJ$_@n~ENiu)x(o zG@=FeAf9p04%_y{!Ln$wHbEv6>VO0>HVI{@WwAa_SBp1+2NFg|KoD@&kZOxo(LP&j z^|@=d(P%}YA%*f)gwA=`B(RH3t;pGfzxbJ%sE(t_O7Glma5A7Z1cV3gd&veplw6O9 zs~w$jPAqT$LgywS5gbZGN6)^utuMSz3|r)Tkqw3afM}?%`nT<i!lol@Ft$?wFom2R zHp7_RjL*Fps>{E`2ZksJkQy5=Swur%F+iM;-4*>n(5o0t+i!J^x7Iyj?pSTkEb4`# z_9RPpxF;Y0uj?juU4^jwaF^XTj*VydY1LWMf~(>PhvY#(b{6*4z{@`bAe|4)o#xC7 z#~oy-H-3P#p_wK-%GY1KurbPoy`eFuVz`W{VVm237Ojz`Og=^n{Mi{E8$h(%ZruL# zX{2oR6$NSlb=8sh#Y7KV6X{(H2#6rY5>hY{H^|LrC?t5fG8=0&tF?GfW?=;zTMpB~ zf+Vfex=+X{KuVVwP!a&t^#jf7hFN*gtTb@QA<+>aam0a_oD8)YwKQvkZwziVqE=LL zXbQ3Qx`>6y2Dfx?HhpfRjXJptj~hm=?ugm?fxoA%I)7!^BzsH0Hw5Tp!<PSsY|2>l z3_AjsD4PK(++P`gWCvtWg#|G!Qb+MEF=9SqWMeR{jqJHmzBZu!M=)*>k*Fo^pOHv{ zhzzYgj4S`f;|8?<O<q9?3EnFNUuy~Z2$0B@bsFb&Lx`{QEf&TMnijBf<TtZRjIF+F z98LzbeNYdHJAM-YGiZ5Qz{=j4F)Ixrwv^L6xGz|*Qfmy|bL2fI<cy)ZbL5$#H%!0` zd}IKS033mtM!E5XT08eh)PkWznlUngV*!VOF9?&0KEl#_{y}&&Wi=f7${j7W)67y9 z2IGD4<wgPnn2IrwbG9KY6Edb;U+?>VL5<I38uAceHL<K91)1M{B4p>oMJbJ0Ms~pB za*~eD0EzOXhB?c=TvIi4Qe-W)*S2n1+XM5%F@&<=IB*T4aTi6u8_P?|etJ4AAtS!s zd_Mc0E?jO+-_nj91|gisAd5((%8RibwfX%ogiCycKo_#KhIT;mH>>fOxUUmd_oNo0 zth@&s1VR~^bh9VzT+eL+0#F<ICWr%+5OFwcPe3qjWOD$=rdnzFttkg9k67;q*9C_+ zij2a+u3&I6Eit(O0g!=*O~A_TuWOS&a;u36Q838@VPk3#u_8a#L<V*?=eRwBvnDPT z6Pbdz5e&$-?Qv{Et))$U)fGe93Dk=l#!Il){WeKCc}A!ivS;@lX(xv?hFRngqCrqE zBf^Gr1Aa37=KYKO{NU9UvX(G!%YYyz1R4Eg+0)tW`cp#Z#t|b&5wMR0FV5tUdWIN{ zNeT;V=ussLHHYOxd`Po<jI;8h`X`KTmc2!s9ugq{rG}4dW~dHBY5MBYJ(cm7!ml4k zNel#}L_CUyb63sV_WGH}p)ci#!kbEpLnbrc!^>8Jd3~$=7x>*!FiC+-aO@7*hqm51 zwAb{pvY^ML`K6+>2U4IZ$C-lf8WknOC6tf=!7zZHmiUCc;{sf*l;rvr2M<n|%Sv<d zWZC3<VY%h{UI%!D3o=1S5JV`c+15;!C*o|pJl7PG7<X9SZqB4JDLYUz(nCbTkMD3^ z#BXV?jcvT8AYN~V|AoH9zq;jS`XXL{!b;YM_~hHDNwAgFA2()AODFDofqQtWwIDiQ z-8QezIL@6L3SYb}f)phCph1O%RoK7bo)ww(G8#UTi*s}SQWyxS7wodIrI+L#<uL9F zY3k$-x0R!qL!<$y;CXWshU#>1>^XFnFf|4d0+6s4vy*w(pGac(K-7lg|L*<S#rbO{ zlKu|&#N{2Kfh;*aeP3i}@{__<N}Z<-W^6#5N(cLl=f#6_lfw-v7Z5lic<h}FBnTBo zZ>kS<M>pu~3VxKo{;GdCZ%`%~-I{71_T<k)7Q`8$<Jd)2&83H_CB+$E)e#SC0+LFB zr<TM^-CFIsbel(in5bAK2yNw5n5_7w^8A7m-(+M1BsW6c$Z#P3iQ|uCrI@*d_sT_3 z^oEZPp%5=K?@3d_?WF31z^ciR7B9P8+2Ln*wI00a3R4)WTQo&WP#JB8qNx)BuG^(~ z``4maC{IlE#jIVd?k_L3ivdA2P%dLkB?)?rwEN1v2h9y2&5%Bm3R%V(1_ATyqvpny z@wy>7bbEc~r!jua1R+?BUo!~tDT*metYI+VkDnk}8^NrG=3xNPS-05xPLS2APG(7j z*-e6>2<JlCP>p_=?HzBpX}peS%oAV-UBSF2F{^4NEoau@(j2*wsW2?8%gi>yPo%gA zz1Yc#CEz+aA;^gl2i6|OfsHV1;jJ*bjBsx8V&GDU!jj2WR|V3^UVx9sP07kEx`CJo zK9_(bvJ7yLq;pBe4)j0<v>{vMlIRS$h2%W*P8K=qH{k8~ZYTtYzy>%tRD?D^YI55! zi>7HNwlFz#+pP8^vh`7rmHycu>$K>3nE=9#Os(Y{bC6kcu2w5{xbfuVyGya$WZ6~8 zK(%^(A;IsY1t->3!b-*L>Hw33SUtLDTB}bt=RdX|E^W-0ccG(c3w3(>-KE}O^1l8r zVMO@yf7v_VXcCSbBQG2Gq3+qTkI8O*c2o6iVT8E<s((M{&o$%0vr;(faWE^uuA_Fv zforr<{_rUaN~VY<fLPj842&Ai!yaWWl1s>Bk%K9=mf;8aq{ZB4FXg!Tpq|H`2cOcW zk_qD(R8Kx>S*J~UZ^M^#Vc3||RDpg<lDO?QHnm5+A%#9D4C;thaG;BD5{^TPwSYwE zy>@AY;d}1zidzRng~y-75a0l!LJ-o>Iw0gr_V9nmYxZ>~A#*TzX-T|0Lw|YRo%gEF zUN6){Kp+c<(EuGI!qIlAz|&l)#SDK%!(pwClCa*itu8q<KE3?lRt&d{klGFXu>G?A zF&ByT@IkUA!4Kb;=+*;nPBahC?a2Ppx=l5Z{5{a+Xt2ix?o=`S#`7lZFd{;8z)BUg z3B)N~L_!|tJz<#|&Qp7yAsY)}5rA}<PfEGRwkE?x-YnnUHw@691_oAv%9JcR$(NYS z>c#5?h4pvA50%ESGVJkb3X?wuaLX<yZpy*z67qH(NjD>VG=B@|=(*;syW&k}T%pzH zxJLaD5lZn^rm*w0XcP}qj*CwwrQ19BJQrvcqE1e$wTOJ+zr)uwxIm@d9)8^Y>C6A) z;Hew@*8z=Ez;G(qM>Mx8Jos!HLyP@Z3$Z&m!lkf4f*A9|xTk$h4>rcHo_(e5P135& zbBB7xl2C)he3jWw#`EO|KB{eyz|40nKIZ!noRXiir4qQQ(yoBskU+5H(M(EYk3FV1 zP6LFpJVw`#X$0#-JO??71Upnjfk20`s$FmD>^Wq;_qUZ}rUGz_q^`ktv`EMU#TuuA zZc~rZB*)B#_>kF<vrTpoLFGNBX(?FZW7}`$k8-COgZVCI0bV;MFF=-^oV>i))YZkw ziP>VF%7+t6njSnku|wRrm}Qij2QyaDpl@;^Bti%!=V;=c29G&pdT62^5Elk=QL-UG zslk#Cj9pXUY>K^}TUe2m4$KxLu_yAgH(FE*hL}VUWC;``CCMy8^EbU^u$3Oat)Ock z3dPy6&U!&|fw+zXa|n|9`0!d7k(<}xbn(gtP($NMJ2Tr9`BFWibP06hIH^Q6bJ*v1 zk>i<6R!$P^LZCfDC?FsM)J#^LoufL<H+Q{V=I4|ax};l>zYYjj#ItLnm0HM?lV7B) z-@VzBSpDrkWB^%#_f9B>A?m?|Ar9|5+sN@QZ7TM+|A;Qd-Nfvuq3D3Mv8o_Kru8mu zqO)HdlBuK|A^>5EW9zi@9=B(Kz8YGes*PO{1==H=iN$;W>UwjDJxdtuRR)G8M>&>6 zJ)%F-Dcf#zW`sjby4ReZj-5PlF;gb3$=J&)Nd5^lp(m8o;3y-XI4u)Q0|!me-gd90 zc7lq0Q*TV9;<^6%6RBQG6MSu3jd^xNk-hRuB*YW@)CM*S`${c@y&Mv7nzY21h*!SB zECW?5NE37E$@SgMZ399Hag~>%B=u+e+gk6r>Pg^EYAV%}_uvBIJ%}r%ZJk$u%#c-; z^kjQ}+CLk22PHn{D&@jCj?;#a3E1MMs*R^-XWQAxY|tY*)Jaqa@FDb5CNlenwPu@i z^y<Jck*%2SG!3`xR$aiR^JZ7e?`|FH4^)U03lfpQRl~C2tqN;Mqa5H`cX1<&L@E4G zG0={#iC98qp)=Ri@wIg=aD}C6;&S?zt(6VOt$emfxbJTnW_v4(_Y*=1SeZkpGD+nd z2jQeeQ(X!q1<dXZ-ys;#vDk_-86#V24$Ch&U@!xMv*M9>$@P+q>cTMa41P56w4I#% zJY{;;ZGWPytqwPiV`nUB=g59Zs@AWT3{h>>Sbc?9qRNj*89E?;Z5Cj}0ImXRyp=|2 zI@E4ITy-o(--x)v&)0uHZ^4DKa=+X=siT4yZ!X>vv6Z%1F3lw($-o@*5Ng$eSf56# zR=;qcC3-m*_S&u<w=zip2(6F^2$xa9Zibx$y@VX$q@Qp<zF`;BsP!NdmgFj(CKFDT zgF&I4i34=zC?!XaEE3yca($EoLx+uxnt!GLCWfB1@#+o9$9STjZQjW@b+;E2!TT29 z9CGvmfU-o%$>)u_PQ^wTY^m{nzgP|^SFrE#am(ZXs>P58vR4ZYGH?NWD&VvcQz3~F zTUahEg!DYSUWzN(h*q;;G-u4wB{g#FUOoP7W!r?9XENMrZ`3LlqHeGW2AnMb%0dT% zk3eT=;nCWR&4UHCqtZ`rZ~^aV)Nuzy9-zl;4Rc)nM5;}UB{fNwE4qBHY28~~+m6o# zq8}y@wc@Z5VK=c3bkj9se{8zZ5*$C%`S<{3hzQ?e26qHl!xGLlR|cb7FuriL5N`Mz z#ng!1{QL@Asq4?*Glbav;+UKSQG_7kfH%s&;mIGiyvMCI?lh1Y9l}&)2%%K5CPR$e z3sDuACLm?Q0g1Jzmj=sWAvZXFRrs}_c;U-1WHfTBx7Nm}0Y2VLst0_I9RvyBPsnw2 zH@gDPGg>)iP|b~G*^~7YRUpt&#;Rd%G+W9e(gt=3Qx^AIhU`ofv>df+vJ7!>sl|DK zR;6oxk=lfV@(mDX6$_OG0cnL6W^0H=z^RCYymx)EF8EJkdw?v{NNz+Ck~64AKp&c; z9zl}~7q>rR?=o&Jt_borTyUWN6Z%vTF2atk_4a&*(geR!m_MHnX7&7lW$lv5jkpJQ zJZMD0d0*1%KVnZaso;~zn-Yi{76x;7-qX9QY0Bpjj`f@#?N^oyr(|gzs=@&iGG)TD zD2lvF1USX)dc>B%aVbK}1snjJRT@_4c}obN?F(!h+qLr^_ebh{%tI^|u+Eg^($s<~ z+&$)5C-q@EW+ne8E++m$x8q1-GX%c{n)5-;H`Yqx;MmD%>e7A)$;@4iZUztEo4sj; z%+K#uHg~2mXd!|%9B4W)VY-P<$~Z0+b~H?yC$LlA%w<+K<jx^47KPF{8C!?T+h_A$ z>Vq6x1Jav@f5R@90ER@$=d(|fo-GTDmhVw$58w+CZLtif3sMc@|Jq7>uqce|if(r> zDc|XjlBPYNUce4iIoNwhN#GZgv;eySxo>46TX*?S=`J{h!N|0d%?5^(lcc#MUvc9s zTaja9<r`Q8wUn5S28g1?c?uZCj=l(pdRY)HghdjZDOKGvD7<yl)_MN4!8*<n(WQK4 zrZ%y)XFY9IeDt^19Z*@;XdLw~`2EM~N~VWXS6wbbHfu^`%#?yziq2lEztd0vvf~7F zC}wK|dnZ=By=F)BHW}2xzBi7LDe;+RCL7y>3pe&CWJa4upsWazK`ME;ZCQ9{6w1j> zDr$^Jsvy-EjCiy%h=^k^P!ma@^GDpWJZ@(CUJ|Es;%VQ8iNVU<RPR*Lp4LLMy&^}M z<OK56Q8AP4Qs8vMEz*6KESAxHa<Z)EmO2U%rSlX@y^L=WbY$ER7Kf$<gu8{?`##Kj zJX{Y%I(o<Vz#3dPQH(bi&9}nRP?|Y{57XdTvYASnIfrxEFS+fWZ{*QhO&`pn5EoN1 z6i#|bSBtdAJzhxkulvW^Xp_yyQnYv}Rm+-l-rn1?+bR#UD5<r;<vT+DC}!%K@|cxp z7lAY<OyPGU<}AL!^~$TRq1NBHb&}EukDK-3fB`l;62I8|{0`Kg^iP4=zmY!})Nz=F zlHte}NATF@Lb*j!h%M)t<!f%3wa-_IDxD@{#r`MDHt5f~1>qrdua)2jC-1hA!`ZrH zoDH)Nc_j{rZL621*RX+?qqM8T$Zq7qL!u`YA=`$opN#<h5J{x-Z&(}D+ONl!da$s! zR!P>K`&5Xyi=0(tWecH}L-4UKYZ5qQA264GM|DWG)uZg^rn$R1Cn-biKxVbu{Yu;V zuisLmHX%Wn-5?G?LRXRm?XEs(rF1{p+4%blz8F|-m*YEuRiq*5l{&b>Ya4vR@+X%N zbcRX#?}TA46s)+zE|GgrPK46aI*PtgXPlfOz!{isa(IJnhK+f^04?}|IO@;WxY{(& zLYIkWU+KeGG14K;g-mzgw*h)hQI*3W%<eA<Fi*6cBFW{n>A^CI{UmB%BGWY>mayt} zO|Iju9p~KJ|L(v1ZTIl86EvD{z<WF4e*Lxgu|wC;W)Ie*2fy?$e{)*}z7ch@ynZXb z{Xu4h+%@=TN%MwuG!Dgcw!G~@=g!Wa#!5#yNfxOgE+Z0gu0%`U`|2X%M!}45aBs`~ zK1ac9M(?e~FzB}QKhAYs9L{vfuY^dQlnyLffN+9Uv#ssj_Br-{aap}3P3V?|*tqRo zyku|NJ?3J}DjX&k)y=JNIQC~<t90&=?!qz&S_88JcpuTv=`FwE!n}K})vYcG_O;ls z0g>xR&26Qty2@+3UJ&AOJQSygyZRf}cjxjn-2{g@`G`$~E<8tB{F@=J@BowMGixF- zM-FJ7FfQ-6>~1xdWHb&VjvaUJd>_`zZ<&m;Tjm#Ce`{CAED?656fSjw5pveG*FKLC z`dK!Aaee;sm2H0@bEu``dxI9I4|>*!;o|4h0i!v-dnULYD~e3~`tTj=0VmJFvqi?1 zJzpIBoneOQEE9ciGs_@k3DLa*`Gq88F5n+~?KkY?-F;<_czJlghCjHyrbmYRu4~2y z%&_}$rgO>{t{}88aKA$c2tPJDxq9i-nR(NFR7TRFljJjO_>fSR(ps9qo>#=gDoi~j zd~p+KC~LU<IrPA|OvNUs`}<#}#=&*$g5@2b5?zxnJgXf_J=9MSItAAaq?DeV-txO$ zy<8Xm{?0~ee||kX93g}npyvrt5@=5+B$Kmyez)yx7ON<ih1+`f4qp0A*x^AufMIb3 zg|j=)UvzIf!H%|Q8ldSIbp%!VRtWl*w>{{BbjX(a+c%c-YhM$+yv7d&6Un8>)-c0k z;!hbeCgg1hwVE)xPwsm7rqX!Q8vNOUksy^zNbqPNxvkLQ<Af++Bm*Ma8p=7|HS4gc zhlh)H9-`I9XStIS=iNKPwI@}N!mY9V!Rtrh^DeImsqznEp*MHe9ly8oL95UdA~rDO z<~b6dIK2oddU*>E+LOE7<T@b^>g5U=2-ucWq>~zGt8FhERO3oF|KZqZ8U6gnwI{BO znzh@%=2;p|^ixTklCJ6dh_09Ya@p|~%%Ks`@d3VqG;HO>R=&M_d$WvSAB-T|3)9Cu z4mv>{VK7&SVvm9DwMjXmZlRPzFh@vovVs&~z=uBSc59dI9}NZ1K=(xxW<){)13rU? z8?0o<2p%r(7{2>oVV9LUD$$RFI2>?8mPn9RmX)>c*5K^g#re=Ny`P)h60Oa01nis> zt`+unU>gHmB&gBC_yul&S{ydZwV5EiJqT0uJ>K*^c%nmwWGQ3`XRp|$*>2z`?V_Np z0RzJU+=Dc9S9kR8yrqBET#p@J@I^DEjG5+q+@Njq9)2w=+3>CW{+z-|MInQ_F34Hv z-dx>EFrUQ63XS!UTq+<4DJJl6ahFl1JAgcHN7?RC8SOR`5ZWPm6axmv@Ifs?7~*5K z+LyS$>vtr@z6Qek_aFGFPkt2SAJWKu6~?equ@QA8Q0J}4zj<-2mYXS^AQ>h|z|7p9 znadtZJQ6B5R;CPjQ;7U9rTMCvY$mllEXnn`ySSAB{Q}?Vw{l>z*`#Fd=Vd2}m@qAh zeh7&xYR-xri)8NzLxTLYYkzn7_Vn~`)wRuLac?qaM3|c4Y2L(J{ESAjR#`hCGDZL~ zj!H~Zm(jTLMkRaSvgr&Q^l#9XP*SJaV&gs^8qr6%SyH3Y-L!Ybfe{0xa(D@A+{FOV z9Nu!^Bx6)<RrW|kHiHQTXA`8N5M!X<89=df@B@5lkhCQmi&7BLB{g4|^a-e*$r~&h zXsW-nZYYeq@9C-K6+2!U1UkV<qfhun{N@fr?;XOhzqh%|FsKlmLVW?+YmmI&cwQN0 zl5~EvQF`K>Y;mNW1eOR;Ib#R4*UYMPNZrTjv*UG_My(4P^qSqMhXNY$Jqfh)I=Oa_ z*9qdgSYpf;7L(VWh^cg>I_)rvWva{GgPwOpHYR>|U|OQ6I>nPM>^koytOT>p_AHJa zE6hlX8^UXYlsHL|>_TnJ+bwInq{!*3&Ff%?l$ivdPSbQZH+GG&MbS%Vue%S!q;_cM z(9T2Axk6N&Tda~ppVnay>>eRmKz%|C{v3(Z^9J>u;USZux_D0M?zc}&19VZs82U`M zN78e3Y}(yP7qJ5N5YiYsfs#R<3x#cuKbGB8A&$evVTpxxjn%Ykp8Qc&s_u$EeMw$A zqzPYQLle*c@_#)0A3~pFul_5|WtU3(!}1BOd@Pj&w&+_tyz%4&dt`HF>=(kF8`-pn zy<ucvn`G3Pn~f#G_pQ+Yo4@@{hMD@(sCEe%I^1w@Nr<3%NO(<71Rq;PH!FRm8DwoG z>9#JR)C2WI;`eojCfCqj`&!epEpoI|g)5J}vU*34Oxhz%n!9WD96&<2QNSZiDX1D& zI1fm<z>R?KU~<dBW!TYmxrrEQSD&2N0+MF4Ea39Mq#3_5$HBYvulA4pDZ>)M)ix?R zsNPTw5#oBe@DK%7qeJ=!5WPHeqW!d9jjw+A<ttxH`>w!9G4ntxX6Aza%0I%?Bme5( z{pFS~|H|X!KgOh8{#bZqd5$Z1I{*=49!`okOh?<q7>L@$AKN54yh59|Dg(+k!9C~T zmM%Rxk$RXe{<l#w`I$$gIGM&<9-$&#jEWWlv9O717=W6Ll#y}Ql@5&%JDGRrr>oJH zK7Nn^;$Q@}W6Wymjhh^T0EwrCv`W-f!ujR5!Z2>=P+<$Viz;@JL{I)D6!rnRAASq| z)&6;qAq8RbqqO}n6k^VQ61z=v08D7=OosxL(UV3vuqcn!hvOuN76&@S8r3FT1XU?q zWQTOtume6w*T{+OV3Ptvg^34|V~*}DDb9oram{FJAN3q~Yk3ZqGVD!lks{1eho0iW zE<4G5mEa}1Lga7-sZjmnZ=Tp(E&c&E)|cn#j-V^WUuQitM%W()Git{>vW7hw#2!lw z9O`frcATdY<a>C{{EWM_<h*lk%OR=@a9^=|p>ED1{_eIfzW6);kU6P8hX?vykjPz$ z+!dN=AAaNOje-avzUGi#BK;VVe+cavjjz!@cgyMnL)k@%0G+v8sbE;-Ad3RL5P94o z*}@2%-6YR5yCkRUx$qMo$=ZYVdUY+#{zL$fq-<dLERh@yI9!N57n<2G=R0GG!Rpmk zS9A@@di@0y(H)c^-<e;YZQhWFFH`h;woOAMu%Jsg#<<H91m96APYbdM(7d(AojGmF zgJ74jr4e8`Yu}If7|mts$1<t+Jd-MJIoV5J4eMvg@~O-jhT)NKpLI7)btO`=p34sv zOY?YXHfT2VmOqP%j@f@hpE1Q$btvJiy(sC}QqR6p+F`XaCVS{Ht(BnQj6Vvw;if@T z(PCg$n`5OO57bUNdIDop%A2-~p1T`9{f>W4JILC)GFrSQbYJ?OU2ps%Umi{b4c_J? z=}NfTOO%J$M)gEss{7jv8Z$NmLvZrZt#R1F2vt~^4YM>)A`;Dn;!w|L2Fbj=49uXD z6K`BTz?e)St|R3-3p;W03emmS8H+hIOs+?oyKX&P3%=OU1&$yD&_aT>Q6Pq@30+8O zhXQUX`5!<=EhAR<Sz`7UQ({C0hXqebfR1<Gk`CQMDxo19E)7n)t&5ay35ir8f79K* z+O#*(4Bsx-WOIlD9852-tE*QXOi6Mwx`YaY&4OJ52QHq<xKb8e^+YXhbQL-1We~6E zYD#>H<y79ri*PlQRRFpV!U1&8Ir+|SI`Sov|9xJNrva)i6?MttDi%g){{}0h;Oz$T zIzQKV^zogXNN1xm%)iTp%&-Ja<<=Hk&0cRM5@;nGVF}Aa9HbJ}aa%m6tr;DDVb&W5 zt}>HePh|r|{eC)p29s81NsHgA7)zYMn1&&lVz`ea(0`N>G`QQwCPLcz9$T)f<4#o( zRMG<kgAhzdQZ{RF1o^TfMpeWzLz@X8jEtGNXPXkclM(5#RAGw^I$Usw7+@F~8Ije8 zg~N-D7BkY7NsX(OG<i~1MdHi5etfwGQD#&ODV4}kLZ01=h_q@u`=yez^udZY9+xTv z?9jB7J;VfpGqir@yNe50#&j!NHsDZaD_@VeOWL-0Kym`i*r=|~s$#DW#??m^PgSb= z7wl6FA<5Qm9}8s=8S^lA6D&-NO0e`B@xV!`1_@g5Huaevv1#UO89S4}mT{jx0=F$f z!1`7(rEzSOXtE>$q;@JJ@0B7mLg_Z^477=U%bjufdRoTto#Y*9l_8u|H2?gjPgg6H zqJ-P`%!w1hN?WF|R)i^>RB>XCRpyX^yK*?xqw!J+$qiZMWYbC(u$+#UVTvIrX*}O1 z*r-J7>c1GrntFvoefl;x-!2mE#d;^BO8o=BerHLwRdxe#i0FRt_<ke&3j8j*^&DiJ zdrxS%jh2TliC^8t0tbQ*&O8n$;0jUqmXBF{Jl9VR2_7sOFj7ZdPta|}o1pcC^l<b3 zi6;s`4d<dG7P({fM8=9iZ#z_s)!FKjFnzY_2`oRP&}%_~v9H#Qs}b2!U^T$^4?iBt z!sz0t)dD7Euv!pFhnkOntq!(6TW0Yj1WFFvKR-m_5By7r<@?LaA+ErJA<|3Cq&BDm zw0l@8;VMF3LREK;d`nNhSs3vKw;I`pbMnUgf+ZUHaG1O>O?c_r!;LP%m;dM2!|`!h z#~*%v_VkCdU!MN-{j;-YKmYZo7sD(cDb&NzbY-)-6OhN^8~NE8Wl#}4NZdla7d>Gi zmLN~rYtn{1L!wxI?ffWk3%N^$_G$%b2n5Qs-_|Iw*H!lPsKtD(0e!E;2(h7vrG=jy zs)?KkIAwb`Zz-aSbc3aYe<?3<)>M5nx_DMvtaPtuY#`YXvP8A4)eW-Fru$6coWZd= zl#ONwPeBm9MuQ4X1$dGQi2$2RPo^_aVuiw<dU`7DEx(z{8jAH5)_*a;&&4&vIgUa` zLJ<V}jU4RHZv;tY1)26eB#c@}M;ghSG{CQ<V&bI;>Y;;-15q5!-VNiEQ{&87Dc+Vv z&59B%UWo8@U$$`fltC-J25PpZ1{`IqQk6Q8jJxk!T~Q}akQw8Rv`hC7+NDE7k`R27 z#mEANIbCS?S>Gc!l5vNHP#T|&JhH$`cnUn?aSxRU43l{r32D{xw!I_5o*dE9OCyob zMrTG?$IZ!6gU(w4djJ{qqHiL*@(~%Lyx$Dey;kdBn^o<7Wm)#gRC9Ce@Fv=OC@I1s zMH(*y4x9Awx|(j-H!980=Hvh@67f|yi7L`rbZD!|F^2>lHenV+59<>sKph521<z!| z7@3Uq^;bRE;4g8N69|l&9@6Gc5)c`ss0{dF73MOFC9)p+b2$Ulh(QyqdoP;y{E*Ga zJI_I!`4VT^ukzzN4E4dZK%JYLWsnnF!AV?X2`T`Y(5F%eHQQF#ID<CjyZCJiBzoXh zr=K+LZ7vyeZU9rfc!ibPYA@}4t`E}ckkvzO0b*2K?6C7;2%vj*`>MONK+);LC(PsC z7Gt^7&R%Uc;O%^G?Le!hmxk5B+Z}XG1+1pm_Yd?kYLh5W8Dw}rS`$3kS=ov7Q<<Q` zm!viLe-1|#^JJ8M8dr1H1Cblz$N45K0K=SZ?ryK{*f(*z145@mf`r+YwL-gq<0ACD z0BfB&DMu{|7ijO6U4}Ye#I`w><M`!h?D3t)^907GR9JA4d<h`4btgh|m>$)^v^^(} z3eAD=d$AGRsXSy$EaI|hS$$x}WlwYi`XH1LiWq&te5gv+X%5m3CFH{Zhv6sN_Z%oR zylz@l?`Tg)HF<(`8nGZaXi-;XYw@l>vBD(F3J0db-)uG)!)d<<##qHrZg%uHa5J;U zGDx<s;{)&es{+MB+;sQ`Nk3P}80DVF`^GIYGujapof9nD-4Oe=fnwvv_7%O(;hYD< zZi?%%>j0rLnq+mAbDpeB!nq<iP~otZpUP0Ko85xb)NM+~*rte=p-b1rxcUP;A+*Rx z+NS515<9%1;NA*yZ_|_p2bvVX#x2sbEc(Oax2!_GRgZS3DaPK_2x;IP_TV}p?h~V| z?1scKt%&ys@*X0xn6L#z$sgT{#2_E86%iN?pyCS9vtpeR!0_<+eXTg$x3?9=`HN~g z$^!-RS(b)xan{^&2=UKJ0T32;)hta(=fvCh(XEKvT|6#lHy0bjf;k(MHA}<6vt~Fh zNfHT1;UH~$K!RceEMBvxSwnFWP7AiTff2LD9g90KC}`n?J$_g@@qNj{uoW;q!Z`uh z3vi58J`CF+=7eS8oYDpd06Oh@=WY6v={5`$S@KHR4=_jj1jVGx+g4+|_vO>;mv?VS z=(`a|1_m47$N(3#_#**%)d<6KKCS^ST$1@Go}^bw-gf=PFY?zf)d%raZfRh0G#1|p zBmYZQ3m4#h9u*;FW7b!q3%;z|{)Z*~xvJSi6^$Vh)ipHfh;Ohr$%V0VR^Z5CA%|!{ z8OXFF7NL-EZHXELHKuk^aYz+2dwJUcU^2$;4C?Qhb6eVj;jbtskq44uPNsuS1RIl4 zdmf<j9(&qajBE6~u-f*SoGrUFL446O^mOyPtzL^6R#k1*rI4NxpaK@k$dn7)Yw0Gd zHx3W%tGzR<ty?zXw&?1DP+(~`0<|i{ZJLN#E~7gIrW0ZAR5fB=qGT%<c9hmUfz2Mz zwz3QG5U|zgB#2li(iV`a%0u+pj_2%6rzxOjl_kCa$AZEEXF$gF<XagYPvd^GU_+yD z4T6#~6%>hc4JZ*{SOooLs|6g#Mc+w^gW-7P)I~ueR}gVB!uHMkgA~C<7+lf%K#^2* z47~yD=9AwQqO48gKh9o3^ov_fyTVvaX5Kk^XFV9`=-JjE=&y>BEk<6~#RRLz{y5}e zYo~?84sfW=@z{Vj2GNRhnx$I@xI3%3F_vm1leUNotdTqt{R~*cMb=EOSc7o2YO>#Y z6JxSK5B3mGC!SJu1wjSiT;ks(-CP%1aoL+yRy_8u$y2==2IEag!&$dJk?n!Q4z_ES zi@Szs5$|Aa&58LZs-{&6=6>6a2fZT<<@9!C7JeyynKQ(b7Og1}Q=$0Yb@xPnpfFow ze1A<-;4dfNYC31PM+5FP&{qc-lB-Be^>vVguP1yt4lwIEd7MJ9Zn-g)7SR8r&J`uZ zVKdPQF=Og63ZULIGhQUuiIexlbFil1mA*WGb8((MSK+MW5?Lv_yF_9b*A}T8SpZSG zhjCt;cVmPEQNWm>0vdB*2J@OxXk9LU_>a5dKiy_>Sa~4ElaUR!wnu)ZfNLaSlQt)2 zJqk`F!%C-1Hq^&{Uxas1#*(Nr)d{VePmZ9I?+-^$=eHar$3ocNnM<-T6Qv+pbB@mz zp<^(lm?9B=d=ROu7>m1PYAnmS{+`4<0Xw0CdqKK_!)Y!GnxcBnfM$o8-tvX9F3RA) z>~DE8{8kpq{%w}J$6;n?K|`;j%c~xNB~}P5+?~wqTPe16OjwsXeIn6JRo}wnfBt^y zP+W7Vw<Na!pok*oTG5MC3yq&G#ISzR#|qw)?6b=wq&rCi$w^e|0QEGuMCon|Uk}hI zv%dmmcfZp5!>5LZT?T^4C8dqn;K{S+7~-WQyq?t}1*i6?=)ThHT@RX7_E@5H2uIPb zTkiYfT~{rE#ff|hzQ%}g<7)$jgkPUg)K{{@>lJAlW2VGl@=LWk1Ya11-*3xvlBDyS zi*q69d=)|&k*Am}b=sh#z?wE(G)~o(V1Zro><^ocr8|d-rF?al)+F8Dr8X`-iK1*n zAfb~4g);)?S&(xImZUW*Wd=L<7xmrw1qt>yr9xbP0F#{yweEQ*VJVR0Nlrp<6=paj zMRd(x+nwcaEE8>s0igRmt+u1$UXppL-%F&K!&tuNqOxIfwIRBLxgc4(*Ao84A%(~S zMsX!@(0~<qddsd?N;~LSBQ&Fu!AW)f@+RgKBC<R5zz1HXk=8t_a6e&VCkPslsi&Lt zaNRZM#7!6tZa{1f84jta;pJ6@FB9t{nL9@nFY`auPWf`xX}AS8<D8`#VLnL1zzX4n z#g#Zfn7n5`{q^7ecJ}>G-@iC}`s=Sx|KCOR2jQ?Ny{T|R6T`fGiA$Om$JV|*2OcOb zF7WY;1wAQY8R>G4(5rX5mRZ{k{Xl^_J%!>gMdz8wCG%wn6r5)Xkumv)l|i&=0Yltf zp1&6k^2_$EptQ{jB5Wb=5Tw-7va>JGkUH+yiZgMclk_0KCeZvSr6D%zyU@WOk)UIW zAPsYK)irL%#<fpss?mWV8jI2x%}3ajwqvlCsM^QS=O-`>sIyD;V*LB;)beWCQ|a&6 z>i!IF(SJ?ytDO5}ta|S#0R<N<hzR-NkO|Cm&kV-jsXg-WL5QbkBN-m<Zz8(GoP(2* zmq@T_IAxY8VkS74!k8SUP;^w8N1&KA*d;Tc)I#<8$X9)ufEBE<2EN3xtDt8J<7<h! z7})ZW=2cF}hI0W^_PmBm-!c*m5i(-GvU%`?L5#HO(N1g|lK4m=>1rn9<PNiFtaN}K zgmVw~%Ew=SVaR8@_B-boiZ(Y9E;FMN5{%cwxK>twHJ?!aWDg0G7LOyNrl^pq!=9Vm zAq}5<a+4cL*q}T0$*8!B49RzsV7qqe?6#*j+(ZAS>`(gE7~dEhZkQumlL4*KovYX4 z&s;Eog-%YMUfbkWp5YH5+dmhW4<{$j<cGcmq9vo*Ev|qRd`%M(NtejJURkz1lU<QN zG7b?N(+S{?rT4);c5KJO?9_>jD5TozBvl=Ge_mr(-n|ED_?l>e{!Z@Qx#a9-$=6?~ z_@k2+a_gMgx?(J^Fqz&`UT&bY{>PorI=pI192!U~U?o8dm@q}%)hA;76Oky!YK{-x z4r!d(c>;YC8{r#cBMhD5B!lGIQ+Lhir#GCqIRJ7VDL^_&CKQANnmq28qq@GXJ``Gs z^V<*Q98j(^f2A<IFczXMfOJ2(ck7>%a*buS<?18+q3HK<%7R#gJ;9ahPhUo36G@9d zte%n%QHX)iJRtQLx{WlG1VCPII*5P&_m`15rs-fzKYi=K$`@5=EA_-BdZbe)trI?a z>m(rJIsi3!n4`vB$ta$*PB<Q7T{fS}c>a9VUH+`BLpNb6KIBT-8P492{>JR6Vi0XX zfIpz>*vIg>&hC-vHnH0lPtD~UnkEPgYj|#(l7vdKANUm((}-nlan~0cigwm)dqE<5 zB!+`r-|MbLZW2vbvI~h@CsB<tHZO82s(E^3=W;;{)@2?6H<V>it~@!9qouhcf}ZxQ zB)Pz*G)p5VH+!)z_J{8D`!)rkK*{SCbO;HZD*7Xvk0;nUd%(WU2N!|e>Z^BV{|Q60 z3FAA^Z3vEy0L3IR?Q68eurs{t(xAB~*L7?)_rE@i5LqCFv+RHrRU+uiD>DOmTC^-1 zuZ)l7_P0EdX>dhO?hN&q(?lA`3WGgWWxPX%q+FDjC8l*b?2UTVdM+G;A1^i>jxp0^ zXDu-^IWO}UPX-A<QdTFxD2Q*wljE++&>9zq!y<GEEs%n*O{$JG8W95Y2v^K$kD5A7 zatc2j;;mfrz#1~kRB_hZ)0<yC1#Hg7STP!c!;BHFL$&3k9ftj4)(~Sej2^bM2LqXP zWl2y(q`KWK9Cekgf4?DonQ@#UY650PXg_QX^v-g|U_3KCr$x6u8M^R3MV1X1pF{|& z4!(798c>i2kk$s57J_1}h!Az)#5l}YXQMXb9EWEY9;u3;$!}ljaFHI>_Q>TUGNhBM zyBitB7!L&`R54z|3d||iv|M=dhpo@nM?KUuvO5NwAI^<V99pESN0<pRjpU*<-{*BS zArG!E$l#ChNa3kt;_f+`uq9Z_c;yJP^6|I?NI2p?b~K4Y==DOuhVDq)b@V&XfrTCY z=kI^jR~a{&`bfgaKQq`lm=TVL8l!5G94KeY)3zz?$__X^4QPO+yM8lFS>M)BY~2+X z_wLvbNyQZaF5!{mIAS0S6C=az*bNCUIZh{}O5q9;-SIs;_E5s*M*VpWO&E=vfYj@@ z!xt80+lS`3Xs|-8484_)b(nl!O_C5VE22I^QV>%`^0@ZTRxuPr>UgCURzCg=8>i2+ z8f*pJdzeuqZ)|OxZR15<<LdlBJ^ktKLTTG}HOpk4au_JpFqWQ><3v(`U5v=qs|%dO z*jVoBwk0FV^)l9yxF3h9dwz4nNkTp187H0+8C4)KB`RF@aog{g7vv_xLQO_dKmU0= z{rHBRUKbl$yo$JSrgwh({#MM1#BO*6hb{zuqng~osFy@od6AJ4HrC0~UG~Dc#XNJ; z+&uTdy)Y{9nGvq14YR)1h(Ck_SzH!W+G^Tc3UL-?8P&FrWR3o@yM@u=wi;3y=I$~b z&eCsmmmaOcblKK8w0lBGMO|b7S}a;izjVIg(0v8l4RL_x^;vz__b|zrk6uArQ$!># zhB5j5fQQ8uKD*0?1(xNOYMAZHoT2`{=p%87%8Sqm*SB`<GyZyx2UvOtANm!Z%ngl} z*8mwB5F;5R$%P;r?X~?cpVTq3k<_7j$lriM>0?~XoEik%?ccEf;l8_Kt7W@26XE-X zIjdeK4kt^;j!Q|Xn*@G}kQ|;6V@CX}nyjF%C39-vU7(01r$I>4`0-+6GXnqgCBSBL zP{~Z_%S|EaB$e*+M)H>VGu&n;j{qC{^Ip0J4P-!pWP4Y{Wn&4J*lS<Bh9t4O(5C+4 zyH-ZAOfBDDm6<6|UJQ)k0KETbiO;bOdk}d5KOlD)j~mW*2}7?S5Rj^WA0`LVXkKOL z;PFj7c1R(?7s#^eE>C-32eNaOl9=VwSB>c<%eBI_^e~NCJM=Rd{2gpZ*C!{sD(j$N z*i$UBn2Bj5goelnua&FFf8BP#I1dHw=dBlO%e-4J4r(Ica!`|^PRuX3mRSMjO(g3P zFP9(B`Eg0k9{kM)l>gU4`dr)159!(H+h2<zRlNai5rl-D6+9K<sN!pry+~usVf=R@ z&C=W&0I{j1<mj-7hXp6ogro_^0B4pbTgf`r6{G<|69^N}(D<iKX1I%^f0f)*n`NO( z4HR2<7wAv)4A+}Q;ihA(SbhT+mMmuSZ9)>vO&NS>S+ka91z6a+6pzL1p50C7!j)hE zb5=26Aw^uU$RE{qfOq4jZ1^6;&q+qmcTd}yxT@EB-Uqh*Xk@?rZV1?E#c!@8p1-H@ z*t;gTXXaZnD>@t|;zL609j-Ei5c<q)+yb9S4@VlzlO=W8YQ}lNvP&WNea?L92KDFp z=D#+{rIkOgw&?;^@H!+rra%~1+-y_(-{o2j(c)#}Y;U<WyXn7A)3F0a_`Z8t2Liyx zi>C9lw6xg-q&AGKr~H1OHj?Gp&!@uqa2p0JA2$qGz^hEzFb;|us0{2DA^B$}PGB!T z@gsy1`F~rPBn`7$$S1|06*{rG9Q+z!MsQBCN8}AkAv|u_T;j{SH*?CqyDX7CHB2{e zyX&6R5W!$jamrOdv_fPb<Z4?1T{TOl+1+<MC~RJJOvTndgiSFL5n;f)EzB|u*r7B# z9l>KVJUokK+sJyr9xI5)AsHUm^FW=&ujq4&nQ(ggSJ;5mRL~tf_x$H_@)H&g^(Fe& z)Xcy79p^aNJq5h*VlX%od%8neEzBWOY2prKxSZ}}=`}ud-SV9I69!Ah*|oD0gM=fP zIHC0vO8DCPm#rD(Um6amL&@kVSh@h|H(=NZIU%B8Qsw{?of#m#F@25M<#OkEC#Fz; z4yZ-k_^@M`cMgXt@5=B>4>Yx__lz<_g@?9ftt!dlfJ&0#gEGT?UMeG|@Hr3-=37p- z!g}D)TFWk-pEIRrf3>I#9rX*K1_TDAY{B0^POV6t%omBV{3coere2~2Oq!*^xWgFZ zL{EfS*6=1T5`jdn8Wd_ISWwluiH=W9KENI1&&V<X`}ehY4bB?6lTp!jF<B&djFJZW z0Fm!r-Zsug)2Ivm3rj)}0KfvTUE_Z0!ArBKK<wvZ^1LxL%*xq#6NvwCiC?!&SS2*! zwk_jQTVd-k-v8LKXBh1s#xpY!Dq0FwZ47Imha@qlS!W<jW+F3$90gkT-Q~}hC}cWL zGQOI@S42P>hjdPGP15w-)hF=YKYVSba#&uo`!rgDWwf$6h5QaS@VXFaqx_QecQ*<c zjiSCo9fvf{q$L%fvCaj1Zjx^u#)SG@*1so0&IXaGsq*!DciBzWbS2w}8wP+|ZaP4& zX6-gB&0?UF(7|12lW|NZV4Fk#1GjEL9ysKX1ca9N$x#1|xo1ITw@gP!DS{M^Y6gqP zTzPnlKclTZ?%BcA8&)I}u-CLU36Xl4$G>N$S<U#4pgn4{hK*IBH;68nfuie$X&_s9 z^SO+=31hC^ygVECfL76w@tg3<=1>>_gaViasheg7ec}P3YvVv1B5nFnoVtgx$cl%O z?2I@jxf8;36DCK#(!+B~SNp8ckH8`eyCkSpG6YFMg1bn=e{Q^O8CPoqQMaq($D8gh zYq(&$>B4H!LC`>s5>a#@lE-t#9<emYB(SJmss!R=MC=a02t^n!t*j;FWN-8{Bi9F- zGsqlC!3X6ro(f`r!!;1QN9G*mgaeKpR3sVfq{Xofjyw3AbM(me{JeY%C@j?h((CXd zbVv?KN{SC-w(_msP`^6A!i)YCwWweCZMpPLuixkNY(q>Id!u=Qgh5Q=?hp=;#FSON z5QX?|Lj#i(kt3wS#K$S0<cvUr1{M&i#gW(_UP?^n;oSTq*>GC(!UJY4U44Cy4qJma zy+oh_#(i^0x3wLnA3=dPZ#GcjTZvMt;S@%fvv5!PIat4xtb!^j@s^WTuQP7UGzz1? z5l`aKs|Vh}lhA<W>frJqqhDIfAS7(FY){hE@XEjhOpxyKM~I_EB+K$bnpJdmGH@bV zbHCl!4@Dwraf51nE}KsCf7tj87nZJaju6WqW%x<t)JRqq1Xu%GHsXb42O0&<(}c6P zjX25GC(~1#uJ{I9ZQ@l{9chM8(=)3rik5;Fl#W@Chsgw(7pnr-RaJ0g0G_}hfZN0s zdMuVtL}L%wcBYYgc5>oI#OmzYUDkP-N@PQYR)?X8`dB#x=cY|%%d}$>dV@Bb7ZKq- zr7=GPVZ^y0tkO0VRgAcThDEZ;#>;*)tWNl;xaKjfq7t&g1wmG$^q@3`erCrF@eK0x zCHXZcze#o-clDT(J<5m<dIoewf_N+x)&9`gdNv=NAD?u9$Mk9$zzGdlmk1#1**L)0 zO8JS$JE7J#f)ot`11RSuFZJLe?il`$HzdhEK!7$0lQ!)D(XjuILvp=ISLe>Ic{(6D z@sYxM2O|XHq74a^7Rl)r&K>Pw9=}ud4w4c0WZsIe15hs1<6(h6ya?3|ZLb|P*>+XM zdkL;`5+fpLLn_I;_T5N6`2ZTX1g%>#=F0}-9@E2+54c+Ep={SXUGqUuk4pir+87df zL98nf_THU!XlvFLP~osofD8i&5W(J|HShguNp}tx>$%^!aKDo&1aVUa<)wfDhd_eB zNgcC86cjm*$__s+avMD($~5j;!47Wg9LzihRFeSOCM*I9M%(%`vxXjQLZQ?_@=VZi zQYaGgf5##4->pUVj?ALRj7J&007@T0K`=M17o&P+rBp#sFp1@$AJ<)iKg6?A{`<71 z@u&N9H6^1vCUBKNHbsEQ&DGDW&boxS+7YAlVMt=So3r3DYQ>r~@w2#dp8drg0G|tR zNK8oikKGKEA_*Iy{A3X(yu3Z$XI|)7pL7NEPw&?o(I`GWoxaWBlQv$cPu5pr1oK)Q zUwTT8elvX57{7g-mau`&OMYY_We=D~*r9~ciiN>=Tn=G|KD)cbtp}<|V%tc40H$U4 zk`%aJSp5AP4t^}@c1oaocHW<j4@b&304obeGbznPzQv<7zfE3Yws^?kHWwFNBeBez zw7x}pS^R%d_{|G`wbEIC!Nu`6>3w@N2j&At1~x28A67zrdtgiCBjvA<2*KcrV2uRk zBV(?Fp+WUZ@LT7hfKOfVPENFZCnxHV-CDrq@!B|Z2j8%Lns81V;bsX*>G8;sozOq< z%R-nJ13HG{I<*`kd)$-2W0x;q^}uAEWU8U#m=QGMkgP43dHIFv;2B(>LzMT37YMNw z?Bfs<LySOu%nK%p$Oj%MSL*;t2w2}3+6W}sI$>J9=co#!YjmOCqQ?aji)eb5S%D#2 zkPBTWB$YD0{2RP5{t#Xn8puZv9COXH!;YH}01>3*l(|FMJV?oN$MKQE8#$EuHz{qZ zEg5A$H_hGEIb9<SE1Q9v$)#=4*CH4IZn=l(6$#S_=4k=#xU2Up{{9BtU&O_*NE)Qs zfX7E^PWqypa2{Y->@I0?DOuV{`tQnoDlNEUS(1BCPJZHFo84*1E)=`{%r^bA{SSCk zT?2<cIr*Wh`k${^r~qkKh5-NBSNbqk;*`u#C0=T(7-GV{C+#(?0odX<mn#E(rMG;Z zp6c>>dMf1<by0Z@xeIp#a8cnn$4nb%&+mWBU;ehcq3uM9GP40Vx8&aDzF*JmeeBQ) z;yrt)zB~A(f6>iW&8@=CL?Mi6M1h70Yn%ya*yIr`iWNrx^0s@<+?{>O#tURZ7Ly?} zzaTN+y?Yw&-?<&Q{x(64&%M8Av-D$n8bd@U{FyGzq@m};#9$*!aij~Iw{30jw%>P8 z7njxBbJdGZW*jPeTj?>EQaQ^YxCPzU1?%it*BZco0Dm2MX2j)VI0JF)PH*`n%j)ix zQn#ce*w;40Mp0@7Z1wP8g-O!}4e5bUb#QcZS3gP3b}lZ{ZE2WMkJlJ=0VOtFUBd8- zNx{zfyKM|H1rBHksMhYc9d0#LWP}Z)h&^!cY#p}DZ<$K6cjXsde`{8;vPG&0Zpbbz zdep6O+1hKrw^8?5Hgs`){_>S=>9heuS{KlULk|%Y;vBaZe~(Q)nzy@0x7$OI>{FoD zW7`W`C&a-sKt_?wfcwlEojHQTGc$)|Dv`HJpoR*FT62!K*FH&i?(P+HILgEOtvLs` z=F|kg@2X^M>g@Gf8v;kStY~s@I3e;w(Bpmkg}L+?#?*9YlhJYL!2b-JI1H?Uf*HVB z8r9?k<rO+lc%#&}pm`x&{(ZIexX8q_MDe{t^?ozp;}@B67#+LZct^}cSCk9S3JzL$ zkl~Aju@WFph!s4&<#(|5xXucHcc+T9Kfj(GD-ytVpzZ~W0kfjg98K@}9ki%fYNA{g zSnI#qJMIUQPwDR-#!nI!SDP!6$Lt~aqI=sZ^?3{-CP5Q~=a3o^kH_-1doCx3Y;wPS zv*Zmk^cuE2A!UWA_3|}-AZVPTn5<m1@ai}e`S`_MAJZrrR@?&<FKWbwA>M0<msD|z zuO26nMe82zP#jRYD__*{C^XnEB;<UW>Y1`+k%{w39pRAL5%n5;Rq%4$<-+UAKSV`t z(5~cn@Q?D3xX~dxhrSiQD6;tCgrJU>{c_KK*cH*xfqO_Fk^Kq<2r!)_V7aU)nDo)U z)*J$C_bfT-J_pBBErj{0Q0^Y_wUGvW2yr5SyzFyrA`|Y+E~*bOrDs3r55r<h&xzU+ zoYP2%#)LCP6sD4*cs2J@-3G*=dE!pg5_C`(7ov~dv7+%F<n#&@OOTjE{RK*N-ZNfb zeVg-|*dFsR;fItV6X6#TTdf+1j7>qhqJ;z!)^voMpbVkH^PBEpn(dI4a9c4#l%`OO zB2~Q4dUV;n5TZUM`dc^R!ozq{Mw%03IJoB&a1^BH$)XmkRrvY~f4~jFYsa<XV)*E; zXfWSGA;QT2+OjyvVxq66sxM?7OJ41yz=yww0c#bU2#LPElBET9u^0*;a#rBh5DuN` zEiT5-{Rh7%w-5zct_(teZ|}{XDM=Xsd({A3h`T<<!$8<~{}ij@jsq8na8eHtPL!dq zQ*0aV@TfTj7=f(dK=_XPj(q*;oN|wUgh`Zeo@t8+J`CYi>bFgz!(V^ItO-i|w_OTr zq=3s~c6}FkKV;S*(t;`n`qw>lj<L`+PloA;N%ah)-9181vRzy>XGe8wWK}I2h^HWq zLkJ{D8{)NF?pvLtAK76mWlEvCKnA#pVDl+B-fS<^A>9^+CY+&*@(!E|j_l3%ShJJx z`x419#i__&0!;y^Vt<nZo}ScXHAwoRVd;)x$^d@OLL=uhuO*KO;vQ^82t<&r3tgQG z7?nsR?y(|_+rylVcUc?eK6~!if8!9i{__WR;$8O9?rU~4-DXUh0uAq(`D@&`-2Y92 z-XzSc6|`c}u3y6x-cdr&+>IsITKa!!_^d*_tXnC*pWkA~h?kZVe3n5lXb*YELh0iB zL==p(0vMghV7~4?oWVoGH0Y}~Eg?jyL7_pn$6WSrxaV}(+3Y(9hOENB)uOO>*G4Bf zLY=I}-5GRkJVN%I)nlp4V}NX7Y!UTm-TSH$mLOJ|2BdILo&*pLn>DQj2@Gue&0;`d zEx!(DM}|NETzPN-W`TjvuYG;UFMt~vQVR$;IqstwK#>j6_WGRBrEGYt;o8Wp$!3v@ zNfo2x(2KrTR3;utx@(5RjK86bL5c|gStriqz79o7#I6c57;M7k_xl!m`;|SQL?Y6W zh_dETp+K*MwV|V3b_z4p_3ZOE$QgdVF*|plp^^!qzD*3>T*B6JYhEb((qGkmC_9Wi zQ+AlXKsy3{4w#dISjhh5!ab+dxWfpTH(mkrQhc)hwD?jQ3V~N4Cc_Frss`mEA*`6d zfVbCr=XrQ!%NLH)82arR&Xpz?T`x-!fAE?0xxk{ws;#+6CMsJsVI0UJ8H9zzb+A<p zpA_=bOC2nG_*jET%Lsc!5?qoBA{2u#F}u7ZQa&TWJp{`A>=jyj+DrrU&OT81B&GZ7 z!5g$l%+;0lvy$LKV+vMZfwMyTj$rQo?Dn1bc*%I*!ojjSVzejpOKWXvZKbVEZKf1k z!kV^yh@RlP>*`8W)Vm9%_o*vb+u&G8GlbuIaXC$I@s^UQYsEL(?3IB4%w9TV=%G1= zWS!@J`}zy{NCuAX4?IIP5Z6}wMDE_Zsp5}LI7nmwQxin43<7#@Yh|V-#DI}JJx<dd zTQaT;+#lxBeHuqsqDNd0pa5t8ff2Jp1+NnM151iMUoeH=Rv3eKji^T~r?B;7Zh*yZ zVq~c?H74ZU{@|IcHd_YQ<oepg(RTm5s5T_yyX+zne*sZgGi>)!ZLBRukF~<@96KgB z`!KoZj=LKzoCwDN>vLQsWO<6g1JA<hOdL1<38{i13Uug{A@>RrZGD_rTs&1wuDy&3 zu4omUR8Z*Qu83pQLYR5Gi#AC#Hw={a#CBlD$AVa4EH8$cD;KG^QCAi$Uyx5@0v}i| zcfhj8ThE)lNPy7|VC17*GMv1*5>CzQ+w<z;+kc4JXq5EYhA?Z|K|)%04c=k(kXbfP z+ZIzgmlvE;pQ;gj@H^tD%|m7qzK|NH2qVS`!r7WFD`+JRZ4n-}JHUY>&_Yf?fis=7 z#{J!4=unh2#pk3Ko=V3`zgiW}ksf814jFw2GN_W~CJ&KeW2Pw`vpfVHNqpkQU7A<8 zTk$B?O`n#Qy~a48^^xXAD@5_IQxVU5iEK_p<RmIop>f|-+~3A#0||_}o3~*2t@*Gm z844-8CL}6XE{2Gt!j>f=T>dYBh)Eei$2)eff}eaOEX!Y2WsgvA2(%(6#>QN<q2N4H zvHK~%+c5ArIUE0~G_T>>UCjQeTUOm6XE*2n#L4xoxJI7ytM8$WFFK9$b!CT-7Aaed z5mey??|QkX6(<yQk66TlT+{B&)vYAj)qRtazb8>)6yq}4_3XtRg=JtmabM>)N#s)z z6OV*mTK+(T7)tpIqhimy2o_b4T~#S(Uvkws5p270VWGPRqYL3bj#8&x))W=gg*BDX zC4OSt?_j`1N(5f19P2wp%d1sUkrg=tl^!s&Sbew<-EPiXM-(&@B5+k&uSe<b8GoaB zI_NA&MUQe^Wd&TyTk113@#K3kz9+gbPtiZ@q4jj%8>D6uQTX8n^m33DRJ)ApDowdj zE{NOVdNgK$I;@`ZG9!Y>qgn*$TBLDspu`E>*iIi&&jN=W0HmWtIa~@|ajZ0o;Dfg@ z1e_V*W&}D2r9p=GX?dF+p!Tq#HLwpgI^m!Y(Fq@(NFJ}!oe(U<>a`L=`%h}F#+krH zfy7~0pkFBqjHd{xwcdJimJ(&RucRoc-~jMi{~$m9(rGrPt~mwSRA&-_qhb31|3HdG zk>o8-7uMn7qNO5jx{C|p(C(k{i~VfHsbYiHr>Exq#Ql5ZKVE2IP!A`^emwGQzjvf^ zmEui~(<=_0mEF!-6C<sz&q*JKUID{kEMQ_A1<e>dCUMyYZH>4Uqd_igul$|@?5nX+ zPI`G)UBd!B@g7*m!Fs_%@4NJ5!)DZkP@-eFGv}Dj-t}Q|Sby5Q8TPs&YM8v3*zkEn zmLCcUyI1^A-&SU7nUT3*^@cGV`vYIm`6UcVx5MDCb5Sqt1RVo<qGgWlZS>=sX>TJY zQ3xYQ5jHUVG%Uti0xQQfSY|?$Z~*!HYSug<4VVuybV(s!L<ydVfk?!=E@DArop%CJ z!_?W|7XAR-UsHl0xV}Mz3Dbd4U(wb(J8j~}M&L!ne0o%z6WANDZ=84U(26+AAxzB7 z7$hLXh(I3g{G}{d*jggxAar_l2xUeQhY=)_AyytUYI@J!Dp+D$sQA!OD669EQ%Vmk zLE_lkxzhjirR<M(*)Z!A3xgag{w0#IYxRaqYHy~EJ82jYF@c)@=DfKHL#2UorVy+% zAkKQUE!f~%fzWu@C!!nRJn!Cv_I%B2^!L-#mzQ^-9<${1^nH<?$xqXMx8u7d%yO{A z>AY~jb9w@Oc@h+vNHvc`BYxAp38OdFhq~izaDI7y8wEegUw_p<oE4q@v%B6X(Mf>p zN!DdBkAw5-TPkWUJwzQT%=jW0bn!Ej0pBC~3oV&jJ9ZB<u~m_uAg@|MRvqx9Frw~= z7$NR!PC@4KF#mQwPYg5jIN1T<7RI^+ZrO{|)YzEjsvD_CbrjepA&+TW5Ev=a&8+sN zBBA-*&N|ORbrz8;@eX@9=y+zHwUGK?CWXvrYO-CP%R*y(Wtf8o>6P8(E3`n*Zk3{6 zeFMvKT7xM}-XI}j#<rZesCq#78l7^i{ValOgASVBGHF-z5GUb68J^bhGWGqmA1>87 zF|6=7>jn;4wC_}OLB9Ld55FMF!hgn@QGaDfW%aAb0tyTm!S2aj+)1h7i0qRBdWIlL zat-=T$~6F9JW5+i^rdIX45bl9Take9DQ*Awub6RLoix+sAWXB#TUT4-(>IYcD9wao z7(85P29beXfeD>Qdu=7XW?FvoAPu*_Jz07ZX-!HkVH>D+U{EO`a;h*|<ieId{S69h z;6LWyf_6LWp>(3mutXwjU!jl~MQ9zcG7T4>JV*n|G+cW(O5Z&vyC{a|vu0uR-u-D? z=nI2=y5766=k`X6APJ*bH*ScppvDi3-=Q?VP^|$hRh#!6+-lz#rtt69UCZh<9cH(` z);zs_d86wLQ)43d(kBT5P+1F=Hu<2bSdYB)Y%{D1pSTU_=ucL4GBxwCgsYD<3;Ex? z>JK(_t&^Uk`-C6Q>_mf=dU9fi#nP{>y(+5!1kC&^{Wz=^K?H;cq<a<u#p)At#8I<b zECHM<+|Q}V2xrL>eP|)f63Wpp4od{6X`>kL<9rEKM}-#womT1e)K<xD$&>SGZZ~lC zW1O{sQzLl0UY_6JM%6#hdPZN3EyWUpwh#PsZHDku+6@&oYr=M*^8lz~PIW-l$fJo0 zz;yJog1-K!ZaAUG->MmEum0-@nzR$a3oh+?`<xRK!&eMe+>7vKWLT3PC*}hb#r3!& zj?IgrYzd-4;Zzn->e>^*lS5yoUFOwrk~m>kt{MV#7TqGjz=u&rQN!=<^M;*ZaE~-s zEK0IWG6}|K==chEjZz{X{L+=Jc-&yN4<@e+aRHlj#9Embb%wT@cbaK9X9hNS`15s( z@H7J#v>TDb5bp6BMMMc|zU+*v(VI6Se26QJe{T@N9-T^qK*#jDXNd7iqbib{4PzFa z;<5{8QX;iFVM6@Inw-H`P<t6GlTS5VX$p<>HpJNx2Q9R9!QG6N+;s}g;C?4-rbh|_ za7RZ~k3EI5e%!wIs`oL+&NfYvqJVHQ-~^`mA%jQa_+uw|hzxYNnBk}d!-j!##IbW; zsmVDLMVv0H@$GetDA-Jv=gb|atO~-%wo75Ji&3-Bm=CL`EF*$!b$eO$^lxGfRtou$ z)0fsm&slu=Yjq^+M+<|8KtU;PX1$7JF@4HJKpiOp`UhB-w#<hyB`;RsR2Yn>zEpqB z-&6>1cETr!s}}CYgkWipFj}nnhI&oj{fO9~jQqwpgpr>lEI`UwN2}PMHAKsEL3KVn zyiO;{=Y<mDFhe?T6?TA*L*j(TqlC^cFNI+67t_|uWpWj+ICjDs>dHQBHR$4;9uD9a z+qYp}Q7TL3>ek=6on>!!>Nk!I*{00tnKiuH+?>BZySb{~Nr0`(I`-Fs(+#-g)S>|= z5lL5=Sz@6}#ESqypWRgNNb}ZsP#T0~n4<6^VM^8=!cN`|i<!Ll`6=~!d0o9ZBg|`G z5iwB;G<yMS7WgGOkj?Jdx7qsfWO4!{N$*ny0-POQJb8IC`Qr|Y9nKfu%VC@$CN}9L zWFJ+yXNTpn(@mb!vNxMIVoGp2>|n?)(+asov{tn-<l2)z{0B?<f9jfW-1x}E!PpQ^ zB%%1~ye0B0!>%Yp6#T+2h$<T2crE>#qzARo>FwRs1?KgXLdp2O=C+48vz)ns>+31U z*lz~^S9D>LLO8`Y(9d^}-m+PMa=>XQzB(U*W{h2D`J@Ku;%46R?Ety_m+J#%z8Pp& zoTp?B2N_IIUEGu=axrPe9Xl{Y32^0CWWx8Pj9Rhl6+h>jyW21K?6cnd7py~f1|mdw zw9jBvbt#177CfRQ51zSUFn%f0?gnbyRk$9Y=|xXO2)>5iRcCUv_XxSZv<X~aw?19n z5Oxk=G9b}3EXzF9{Hn>r7iO`2@-kszgrDyi^AEp3=k4Z<AuQ+71o?GH*U7wKz;;4> zXs<1LV#nyII<jVo+==iAl)D6uR_!-Ekj{_Wi}tY_<QQkSg@WQjVuEKCZXi3A%qYr| z-=qOEEe?G0s5&DVlhn9p(aR|$&SEY}Gd`kWN1%+ni5{V3cGj|@<p;w~4P*XUGZeJF z%o5~zZL6Gg?F`XZobsHPtgqP(Xa|S5euuZ?wTKc_x982Te+Rtr`d7dl|0W25?T<#j zs_u)h5BmbX8o|lSq;ZcPj)+$iaQVT#n*U;qDSM>PS<EZMlkvJph8=E$db7E3D?%cF zMKjh_`AjBwa{EegK_KUvntU>rMjAI2%n27vfj2~>ZP?Kb-e1n!@4!DDH@HL1QGK@( zD>XbEMfZ=p3N_~s<sn;yL}WMxt3uv4{7d|WN=<eSz4nyYjBvKFo&Dr)i@JX>m@6>f z0SDj$9FycUk4xz;7}Ow-N`Mf?8^S7Z--Mzip;6@jxGVnmm&tz)_!#9lz*TVlK>)GO zFV2xky1w2JQQm%|SqgGmOHO10%iq~#C6qKY#C$Uy();Xd2S0+g2aw#=w&L2dtrVXm zC6N}Zq7>X0L>GM#VCNcql3aWuzB#ix*~F|}d50A2d-4gTU@rAg-(%AcF(bn!3ELRX zthx?3z)N#z3L>^sLG#+?8|UDzE=w`WHnI&gNtr<tQA5rHkA~o@^vZH}&X0$7rT+H) z`K_!4cSG{k)&q!HZg7T#**&&nebvdyq+joIJmKsz9#3#9$sf<<s3OTZPmQ5sH+r&q z3M?w&Pzi7&am+Y!qhD-f-m5tPZhQ6Eb7HrI=~B36Z>1l-r6g8uo2bfA(<61W%__KE zN=`P9)I{>m9oxa$$x%-RtkHV9Yrw29+R2?JqXo|=EF4YKGTP<%;NK)Wh37S1XhliB ztn>~JeNLZo0A2{$HNtl+cjnT_7P8~SB<6W~Rb8Hw172Oct3KSERrTgt&k!&!AtV%L zK@r!gq&S$f2PM?T0UIDXM4Ud#j)(X_Bz1cYPm3?_-b5xD#;ukd!lZXoNCj#+umKK5 zhB<-u8-5ft^v3;Q$G3qm%GVvXC&T9m%O5ARG^0cS@x1G9XFh1P%3HuQgahKX=n(0` z)Hkb@J!0t&yn6wH8EGC-GUqLGlqOe0;l8rgm}Ay66LC7<oSbyBPXTk6AG)>DR5VgS zE0gJ7wow=3o1lJ^S6Cp*?5Mu8#9xao-o5X3WM@9k*+Aa87b!>7F^4A$)D2Mt07grX zZ`!;Czf9BAJy8yzi{#4#BNDf#UU{N6s`i!_LvZ$#{l)mD25^~hde~N38UT~iuJif) zhHVtZ;Bn#%RWLXR2`cPpBh;qh0MBCPMwG|p!?#iRUprRM->{8RR%3YPLEj_C)I}x` zHR;K59D&Q|k}M^_kf&8bkl}&HQM9X#)^-@h%Duea++E!;)*%$civovTl1ZeOE|<N< zTpm}s6#(!^!yq#YpA`!VfVQsZAZBS8mhM9JnXPOxqcO3zYZN?J1!XBa9&LgXoOe2O z9$?VYm+HkWxSfxCtvxKnby>%49_2{^hFvJP^ssPTCBdTF!WehxfcqcM3_~54OUC2r z_JYV0Jw0OAb<zVqXFm|tY1P$U*6(xm`IaWJ*KD4P<Sbz*XA3<jg-jC4)|tH+8*HkC z-PrCEa!xF>*Jsv{Ivoq6<fKLa7)+FHTptnzUpt^D9JEa4G6{uej*O-jc5zVy9xiGC z;dedY+(N0YTk0dmc099Ezxw8vuehWh3>{(Frtfb$sXM`BVAe&8408~WXh=$zUfQyZ z{jS?#T)s^*eIk=2%p|eW_P$m;OgL8FVkk*kI7#2MKu;XLCfZLBBCjBrB6>Bs<+E&w ziB;h2yV<@xB_kaVY8hNfvZv-zmT>~X|7Z?sld%?(`ndgIU^W#$!Q~Sk!>z@u$CB>W zJ9LmV1G*(jq2|Q{Ea`ib;=7y^iM|{zIlJ&$IE$NOQFm+7)k4eS_1iUrxGt+3o&RS4 z*#R(&;fe?$nIb*DE>Q;bj<9l$PkvK>)Utb-!IHR&m}7=-g~Nj!2&P^85$7h;i!$&( zFXRP|rmjj-98DwwBOEYCUL4vad%cyrP!#IKT(hP}1D-r!;6YVW0BT~Ejt0CIay5Q1 zuJ~)O2!qXQk57uIPuc;7AcZ^zt-yI>yliu~R$sPK&0}L2C1-LCx-ZRZb#SS}1dq>7 zm%M}l#8#Bp1ztK`<NRp%R&xoUgie25gC>5Ny9g@!&9%q5`MkSqxq0#Nhs$PIP!sFT z$Ah0XkUEle!9l2@@5CMW5v+lvi}eAS5EX}lsFc0Oxa>8BZpDVxaiVoPJyl=Rm;cM= zz6|`UQlsUE)MpLttAk6rgbedkAD!xxZO{xjC_!}a^Bn)g^S$&|xIK63FDPbOmD(K} z(uFic=CDF1CmQem_Pw#$1`vhbZJj;#7U_^whtys-RKP(y#5XBw3u!JW59iq=t_k2( zHFab??Q=xnA*QKttkwxTfW5Y3lU$uSo(}ukJWXza{qf!+E|C}LqLN&)pcJT*T-Xyv z9G3yHfE^kdMZTu4%am;I9`_qQMn$GRQVnJ+4IJ)-xJrV95WMsyjv8;J(b2lvTo1U= zNaGoZ&uq0BFUSbkZYq9)VH*ZxLG};c5d0dX4k74X{MkMTTdWeYI<_05!gg?S^4H6o zs_%sGKo-uy1e)hz>-56E>X3RiT|u&lPflJq+Jj*cl%EV+IXJ|CMkPv8MFPB^l*JA? zL%T2*WXDJxi?D-vVLI-KeoS6ER?{?qrF$4ZUN_Q@tUZ*#uqbs=jj5PG(6X!c4@5el zRWE#Z%Ca^qjuf?fB@hh1%sK3}vX^4xowvXSv^!(j*q{<IAJMyzA~cM>kbLztFU2E2 zxx=hZmmSpEl4K6f1AIq!`;_0cn4g!~*aJzzp9usS8Jaw1mTjr5KRmVKKWsLy@2>ux zQ?p&YYz{Gd_UY-2d2>D3v@6dbuAy3nXeY%@m_e3&Se}7&h|JyTRJnIndszUH?3$AE zBN(O*M}fb89+%aQ%0vfPh8%o|A|T({n_jS`E|aVRa-_&I!WzSm!O7fg?vte*)8#go zD8S3=oN*mxeOVH70gM)*sEP;MUR&%5^2M;+T*|E2T)_HFme%<N%0==NU=}g?B8cC% zNm0--Tkex5lDVu#?P87P;po)65u`@y<fuvpgJGKXp(vV2ZOq?iU)_b-fGU+a?9e8A zHx(A^7G!kS;`<BrL@@N|uHdS5$T#3|BiZEZyiI!nJ&8kp6;V7M6&y5d`{Y?nFXNog zb^>}H5ja<o|3qFj{am4SEb5CEIA`cCv=Z~BZ^erF3|GXaX5lZPsUl95XFZetkQMPo zbM^cdjP;w9hFJOdYmwx+?3&wQ4*J=XG7U@j;N0H1cZ@>>1@J%MsFK$hDI+D0%WrT& zLquKR=nr5Us)(<a*vwmkhSSkI299ibW~QdKFX#0rZrCM-`9wC@xGB<@97!PPO`cJ} z;iAJ-t-bTAV=*#gZ%&{hOW*vhW9yafn|s@@ZEGP;&1!yhE!exYzM0gCG{LTn!Epp6 zYNf~2Nh(hm^ggu;L+{J7IK!L`>Z1cnO1QWgaR=)SGkL_`wyCQwLiVfyMh~f$c$tRv zQ_f=LnoZ6=0$-bt9MN4tcLJ&R$;oqPM3FL}7k9u(Xkb~2@#~N(kqGC?#1yuMwt1<` z{NSM?d9uZ9TbrA@cpW;dr1f(^oq5Oh3h=$^OzVGM<{&u^MV$Ws?7az(9LKe`sh=X? z5`r$qQ^<Ykk0XGR#m}58O9Cm|z+7B3awYp?Z|>@*L<9cs^PGst%*d@OE4!*CnKrEM zW@T1ptS8R$p7%iDPk=V6Ya9U!h2M9Q(oK%k%vjERJUhbn))J=+9LpToB*16FGqXrs zxB`c<w#PC#<+=#mrZb1_jkpdyFu{@#1@fmtznYPS^Y3600i}!*cq*X>hG<(3U!L;& zT14ak5=lS|1wJ(XasVw^M1Lu7wGfzDD>EO@E}^u2;Np`rC2_Gz;GIe-LjdHrox$<R z2@6R9jWF4&;4`RsvH0Y4eU|0wqZ5k=rQe0n!VMtZ<-lIH7v!Y}?}cszdmDj83P~Z^ zTMnqciZpVes-0QtGmqGN&iD}y7Sb%lo#sO`t6rcX(irqfLw{oO;x%ZXg=jY3o&hJ5 zi3)d&-Hnq~-0DrR{H3xd8Z-c1#W|TIK?XxM2rNfR12h+(f2s9hVXwfsP*mr4WInY2 zf_RCf$qIk-zLdp<kI~do|Bs|%SfrS^VY=6++mBcI&7}}uCG_qpgIP>{a&A<wFmhl* z!AF`@zL!Wjw()J<k&Zd9UE%3p?(0Ok!&BuNKi7=KKG<85wn<q*(agmU)?Sr|Xprzu z;s>u^p7UI%+!L*5<V&0|MTveG1nf4cJ|z^MT}{&VUX?~*A_eAGL*XG*3o0Xm5+l`> zG|EI~9}?T{GyxRFt=|6%nhB41iHqo49w3V&Rl-ajr#3<iyqTDrCsmb&&%M3cpa=#n zYR5%bD0<HdYDJ(2%Wx>QUYiJ>yonwvIcFMgnrnXPzS`Z<8^BzCp^L?8Jg%$fL{dTZ z@JSy~rd$Ttub}u%C1+cGv%9C8OZ{!ZW0T@!J;9S88{kYQC4JST7wUVbxi%W&78qI! z<S1b5P}~_TAVu7w9)EVm0G*xvwJPT4cLv$lHF)RZvlu@@=nEyYtBz1D6Q72lJyv%g zs%93C(3a_;uo~ef88gr5QiGrj1$xh7Y4buBd$BsGPnJ>31Z=tQf*nO<51~H$JEd0L z;Y~2CgC3d;2>=<)Y;LIZbd>$&Bies?8|Xn2lN{}m%v#}sa#*iA(6e~esOK7Rqeifg z&=L(=PYQ1!0we{iEy6L(h!UBg82t^njJg{!(5eDAGAmnHb=#|J`ra!Q5>Lg6m5W=w z!;}g!C*9s^A-!g!$Uu4nh!|Q&VeeSgY&(bB`0LfQY&NVlDz#OnGV^TVjNN@14mG^w zNh0hC1TEopUpLgI%{yet>430F;9#>;?AEQwF&B#P5fFC&CY@_Jc(?7l&qzJvCz3>2 zvNP&J`1a!J@&ZbU>wAiVO3Zt&ism}#_%6kOtI*@bV(eRKHCEA*N$Mgs*^MsOqq38O zR-I_GI$Dq6&gJZac?QpyUsDx}wkRb{Gu)}JiOzj>B|xt?c-ugHy(*jRUt57fOKvnM zNONUOFdId&{EyjWR6TS7zP~ay&kincC?^HX6mK!hl7pq7@UkS3%Z2CWx$+G%Wp9d0 zY-cpbKUVp}+wX3Q{&jE+7a5eMB7y)rsDCMW)ZC_TAOrU7?7NHm`^!q-BTVhR7p;B} z5OTC*ox8h!tf*=GpGxpr;}w=aXLq$5{84^Mq*BH3n$gQLYAs_%hA@rzxGASb?-89+ z{-ERbXE^^pc4S&4E{Pd%0}C(MlKB_!!?u}Sy+~Gf^LMZahJ%(+O{U7IG6rimY=Ef2 z<3YQ-ers=<*TQ}NDGwPDN~+yLS|_Q`$)X{<e*1~9GZ%MVo`RwfoC!Me)H=)Z{I2?7 zMDq*vk56}FRu%rP3eF%nQDR4UBgPw32Qk!1_5#2Dr#o2K@?eCVAoi*}u03qIiNR7e z8=8~<h5py4J7lB<rViZF#4KSZ!QV77WK<9!fTPxzl%x4{2TRo|Enpp`aw)iPthMp_ z0%3~EsMSjT{B#G4%2Tidr#|XLNyu<=WqlfYxckq;_3#8WJR+QoS0gMEK|zg|+G+*W zM0M8c;fM4mk!GK7AB2IQGPVhpML;rnoKmx1_em}uX_uU&Uqe+nA{<`=D66Fc38h}A zW@fyu|7G>Q>BTS_G!T!}RHynX1@p*hn;NuF#=clKWB~o#poG8}{v*MCEE%$YVf$j) zpkegG1|C8g=lQ5Llk4mgu`iYlSXhw4fwzntc83yM_(I3$%qL)9EE}w<hB8GY802d3 z&QBi7*{5P(EE_VMaTKoeVq(f}Ng=(d_4NtZ7t02VYCpgOsAxeQD)7MM1&lZ2CtzRL zgQWsl!Im6C*L!hi0$Ic<BwB(>Nk$}!MdnbsEuy3@{v<x{Ym>^|jYTHz?*5h4`m;uY zJXLB;Cd@ZA5q^;2DPh=2WY<1j-UOLcFaR)pdFRPOawGG(!~tGQ{D<1jl9{7p1i%!a z%nTV?Cm?qrko1M_^05X}LRcpR))Nb&L@&f6VO>k5gcexej)Fp~9(8>TqCg77qlW&- zB}!cnW+XpKawm0@tVUqy5~U_8FWctqjBV4Os*~&p-94RsVxrIT`pw4PwPU=DYVT(A zjj$-o`U}+u>}=}W$Dl)8z%3YDF6yuDS}(kIlAg$V)Hs?@)dzDuQy)wP%8cLvzF(&f zb<skY`!LnD;5p%vQsZl4;tkerm|3|n8;=Yh8R|$Um@wAVUcoAJqFM@Pvz(^3h!GV1 zmGnpns+kKkWZX?(w+x3r0Z0E<n&>GmSUCAh*tlGL20{l<^KRbjq=h8~%v&H$GMBrl z8!!UO*FYJCftAMW!^S(HkA<RIG->DuaSSfS#_#Kan)atUX+V8uby5Pxg}FaY5S2>W zGd?PFQ;+$+lje&2th2K}^Ha5b;T(enBf%gD2|;F#BUmtdj{jWUbIRXmvv6d2-7>gE zAngm}{)X|b4%5_$f`ns{%zgYhEJR7b``f#$%MhA@aJa5@GbO1xSgS1*##GD}k5^1} zktl|3F$1}*aOJ%_TJXkP%Kl9KZBPxq=OkeCsg9fr$&OI^^~-cGo2+lL;vF?04hYLj zF=Yh_eS3M6XOy__r39(xEt`l?-Ahel!I$cXiP#6%nn7<|QSv!Ua!xes`m#PT12TP9 z%M8<`7V10EiLR^8E`ebxI4l6;NZ1mfcS(XsGIg!%&%d<UQupnPKWDeM7uRp+s4%)y zXLkdmJ|0)KvVsg6ZZQ%E)1m@XIt1-rT%V|^)96Zfs*SZ17lqIUg#i5{;md1}S@jgJ zg{g@a+D9m}F0hHpJo8X^AT@>tV9>>N{Zj&JKSE2dRCDl$ktB;yY%rz7fh+J5Yk{s_ z`Fnw1V1x^5Sya@#Ph;?<-+pH8yQA!j@hmi|4(z5uN>L6^pt@4WMQp4^BICOYbd0-? zUwuY-7Fazm&o!qad>QY`ww^0<I*F#&m?e+$W#jL<(KU4*K2#K3mp5Eg!gQKY@S-O0 z3v7uB7)mD_+$8hU>I3Px>hzpqrOto5l~Qlifc`fdrIMn<iYyhaMgF5XUYNyj-qj?2 zJH!kbw<)Ed;RgNTR<yZg!>Zn-jZjmb&}iJi78m0^r7`2Wryi;1ls)zG$R#M;uxu=A zmYMB2WTZXz<ggEkL?*hhXxPnLt$`O%AgO>b>yS}bOYE%ovJoEmkfl7+xlYxQl+4KQ zy-<wnMO|rEkSt~gehA6+0n7kN1iD!7nagHGFO=S@2WC7Rd4;WB)WBw}o5B>dla!X2 zodFiAfZI|~puOim|L;RaS6A9<cW5+j>p{&l`!K1=3$0)rMa|2~Y2G?}b5G$>P0!Ul z#~KiB7VI5G;MBf*o&DUNVY{K$GD1^ZPm#6bDuo}D*tv!6l{DY+Sj;!z&`~lHi!6vd zkI672y^IV3&glMJsu!M}nI7XdQ9WL^6n6^;HLkmoS4d0S3e?{eIY1RC{5lFUitq}@ zhvLpOm)Ge6GaFm>&aq`I`0cnVv34je9T5xfPc#%By-^qGF(DhD!OhXD1Yob=spHA$ zpEiXD+n4G}fs@6R2SZ1W+?<(m7P!s|I;P6o7n&2tu@X#=>Zm2C^4QA|0C`o`#BeGi z5xrr4{@<&*Hjr4!Sf_YY`?Ulk--a^sfSCd5l6yazq*X2Nk3NMxdc$F@x(NaI*ghF~ zlY#`zBTDZG;2i#w;grnCn^oPN+22~A>%v<TyX+^NKV9x>k1$8&QK-ZbM7a>DOQ%Bh z0sG29356%0!U+*Y3|*Y|>dG-><v~V<mwmX(&M9oN<u~oZy!J>qgx+4r{C#$TeS<tY z)wGye6>d_p;CCj?iJ!7AX55UT+iy0C@e9wH*7T(=iF{3X)Mb2vYcgGEhNOE-&Qm0; zFLB7s%Y}nRr(3^@ggVkMPMY^7&1*GJ(aojghM-GP1}w*A8<&aepsWZ<S<OX5Utuyn z<RNEg@`S^hBsj08pqPFJZmU}!1KzZvu8j<YI40WUmge>S%XqrC4|mmnH~`0F9?s5K zY$}2M{_f`TyuQ4lKASjX`PWPS(Vlpwl;uN0E6Ds%LqtZm%3sqHDy`aVnpROerfC)R zW12r@j=MCr-lErE-#y3nfIDT%QC-%sv^e0{u$G%1pK8E$+s@9UrLyYuH0r-<^7YQ~ z{4td8DybG|+0aKAX{ERBS&U5+Sd3BvKFLG!ry#LNM00K~nz7ljg4(${&M=a((g;<1 z2_2e(B)&mgob(3xE4p{dq{sw_oFV;q$GYt9RZe)mhyJ1$<~Pq2U%)t)v}AEM0*E46 z6bggqGAfcJFI4;n0W>uVdIvt~WGu3ov=rGh<_z>MwOZ(*F)mn*DW0{WhA9drm4pgi zN~7k|K?3ki_4cZ|hM&-!+~!w93?RDn@sC;xyy9Z7CD$77Vt|Y}{HWdE@TG1-Y$)r* z-Rsv&$bAR6Aknu77=vvKj1xLdl>9WD8+k}tFSX}tY(T6n;vgO8MzbxZNHbbTSev_P zOuhd+EZ1}YLOw*khDyTk9e%i)VM7PokWvsUat3bIb=`gvS*ir+uXV7et=6!2fGcDQ ze6Cb{@rdhX80yxUYv|x@%XNqE#a6D?=|jyKuVwjKO`%gf#n-ojAtJ0@p@g9fJY;;4 zi)+smgIOf@ZBLZi5q2dO{}m@?tD{epVR4CN1=R2a`jfy%ivB++!*XyNPHHds+4V=! z+iT23smTUQU`zms!|D3tx|3;9{}vpr1Ko!Gc+!Dr^p-dXW1kQQppyc0I8MTY4JUKf z^_OvS4WsP!!{wzLeSdQeo3NtrR+gSCaiH^uYb8;sVuY?xNj#`>DMJkjgp_6L-LYn3 zy4D=DoG~4thYDfjtpqlJnf-|6Y!A#Sj{CjB(t&mzQU!{8dw4a)I6sZXg!P-2ZtlUf zNkt~XnQD!xIqw$j5#vwX70+Hgh#@wC1jjMO?<Azh8pAM30JWhMLAeG<UGe_f_dJ=e zg0L&qw1c>)YAAZ+X3MP_EVax}Dku^*z=eboWeoE;_I$WzQ^EEJ?9=9AYv>#})r)TL zq~~B-$1-#E3fa4t;w-9tALq7IzDyh>gX|@3avq0&C{*k}3^SD0ZUP<$5Rns85zvtM z93%#Z@=rfJ)_BS(h2N$g>N{*&_Lhe*$5+?5z}x0#RL!W9I^+bY0w-l;)Uyt1ZjW+E zI}BHNPpA7JZq#OIGbe#=s3;v$2dM$W3SQmT9Y(3F!r(T$e+RwJ6xUPHaHGH2Qd>br zn=epBhHp@=ouA^`>@nx4>+th$HaA;J;Nf!nVGC6?B2I1<s~d+gODA$e^kctpfsn#d z&s-R>Dywz>=J2b_I?@((yGGQjZIyagFo?z&lm}%9(5y0u?W-h(ZP?x~+I6_P`ojos zim6^xm6~Xb9~D`S_t$Wp({_u@QBgaN%}W9BSpY-Jz0t!EnSSL-0iQHDVq(+<=vLLQ z{UaMH9;Z<8IGHD*@OUW+8axMRfvJtM|4Ff#QP;gvWwLJW-%&DAN<vcg2Tq5YQaof6 zVQ*X4mu*I7ACan@$-=vf5;l;q-0-vuX|GtOA{bCEYC8bb!2-fr(~0F{FS961$|??h zfVq?iim)0ES!QZ*f5`t2%vGImo&#zo8J=Y(R!-f71w!IGt_5I7wW4-37oSrWIQbs~ zw-o7db|%u}>xcRepV!x4s;mF``TzY@>-3j%yk8};_bu(<*Ki5jTNJ&#{^7c)dTd>A zJS1^iB~YJbxk49oY+b9~jXACxtVZWV$aF6cT(~L&CkioK(=K^qk)-$*Xz9`rj@hLP zv9JaWZ%+We0L4ef3V>6NA~s$GnKWjSkf;iy)H<C@jjko*q9MkF8X8wOAB5sRF5Lif zojCU>ZV%o?UMrW@y?DoYsaBj_NQMt?#ZE5-qUmRKP8lfZCpkpq!n*hG?RZS(Ps51| z_$Ub6AS1yiijx|tVy>-w^^UIZoQaET=u0KMnURY_B^`9a8hgD2fu=8=s5v_k!xq;m z)it~fcPDBwcn=vSu+oZfb(Jx*a+s_J6;j+iO1u&d)-rLl!K>xjI@cN?VGmtABuy7) zO22cht?FPW_r=rKa-sUv_k-INN@sGfC_D!Q_zsuiy2<_Ovm15BuwoTO;%A1=@TV-l ztmJTv^mQd$MBiiCs~f$BV?o_1O6j+kHE;!;#uu8q&hw8A4Rulphj{==DxQ9)LhBmb z^IX4)ShVOBlKS!|#8!0|1>F@zg*YHRRORjykTCkRJV4{nUvPt_A@9`t*g$UVkq`p5 z3tHfeNL|-feaqqRNZwvQoR`A(NaExBb2&$O5BzOGgk~7|73O`7b~wIG-gQ!wz47gN zly*vMG?lQ(C??W48hW$xMo<2-iRsqwo~U#alxIZzn$d7erw(e?xP*b4i?gBTM>Np( z>F<cJY8_YDK%2%K2{7@+`nLa8AQk~IBiQ;eaiX$RTcsJJr<t&QVU#0)Esirw>Rj2q z5duMAunE$%4v-3gn^O>hnhP45aST|-`t>H<vdy;*L8*voBRXw6u#u)l^bc%8?S_~< zUV?}Fi%ZY3?vP_e9Vk8-W(-VD(1_|*k>hz0pma0{KG$Z=SIx<#Wz(*s%k_I=EHHHv zpe=VLI|xSvz7Q!eE*HA9N4nel;^Kp8^)c!-V`-WQXxELx3OqTr?O|c=&ZTivR~(?t z+sw@E8pFem|GjoOvG0g@q*upbRwi=b+Hu-u-K|v&82_caZ(-n`M&=;YA(g5*z%w*Q zyS<IJ_c+1P^!hQojh_E{0K5a@^oj$Bg48(5$N_e-SnTn9#5md~{KBaHBi^PD<-_9q zQwNmNoQ(HfyQQ#{2G!IA8?3U_$4Io|iu{frv%C9??DE^ci_6!m{x0VVHSR*ez7odH zlL&RQ`g`LP>aVtrGNLKzsjq|BysRmX&{qSM_ODd)))Q@Do6Wam4V&*8Av1W0d@<g> zYm9{~@i7sDGKh02#)BGYu65#g$`lZZrFJ@A2^p`+to|4W?m0zk7!Yc%kmn?{CSgWc z8<p2wYeq%zv=bvU{IF9HrK9q2L4I0GSWRfE%fj!PP(il0DH2wNivBph<|S%|WZ*R% zn&ESu?&b6?A?urxfC(I!aBPWf(Oqti%x1V&B1t$f%P0&f$43D|@^)GzNi$?hU=J3{ z?iuWChJym}HITtPmpW`Qo_$Gn90cNz(V{u;tI6cA9ALEUt&&3Yw1)v_F)j0?8-LzH z@89YDipn3n$j50~uH43pzHs`+YvF05dyf}75;7mjPAxM4<)s8+4)N(5C$DPYE>E7X zOKnl%IbiGNm;|W2f(~TA?)={EjUqY?*bHP^1Z33|ZUU&2&)2z!cKFy@KUqqAa;q}q zd@bPGSm3j-e|)Acsv}AXs;*EG+l9I_<V3mH`IXO+Z%d<t9%@Ptfn%4lDxh&4xRzp` z2;IfHes^L>M5Bu*eVDa67cDwcZc+jo)~%>78%VZ@hcms`0%HpfvbP((bJ0dLi_xTM z92J_-uQ7y6oQiIRU|by%icJh%vMC=sH&0b2sqirh$rEEUQbSy_6cr3$eHVK8g&t`Y znU0H7=v5=8%0HnD^rnC+sucgDx@+LL8D(mZ)&3pQVGqe0O$X9<aWA|HITfkBI?4-- zT2Ns`ZB!zPx_m6YCy^~Xo8+o@)>6Gu+Jx#ECPA6HfOx=wHEq(@kJ+eQ;=Id_zy}m$ zVNIo@h?GUCJgO5Xo?DDxe_=RPQIs9Ca)R`Sx`?tg2~rC7lF*V#0={G;9@?^<lM{6d z;#~2YGDFl~^&P~0T^1C9Dq-as-gL}qQiq)uH{PJ~sLB%Va8At6#WkcO=i4f~E8Y<R zp|M3lbzFzac$9`KgA&znc+<>y$ti=AO&5adpccb#pTDmt1vRucmN(jSrk+T{$;P0x z9U!P2n-M(2xZ(2ZnZ`dv0c)`#d$e7I!>Kxc+xL2$uvmOQ@RO1VX_b^%4A$_SphKK} zR=ydoh|NYVWq9ADl95<)8W)K09$WNHBJ9H2ge`y#H6nCesW(^0luKims6%72e@f?Z zon%)tf4VtQLusPxlyT}7RY?4v9nxrny+i&KfJA85@P_1R=6F#~Vdq_A)VOw(D@o0t z&`>acKixc6)2AUB$q6xuNeJ*Ab~3+oi@;4)aG#2mlT*6CxjPOEOMIxXh1<{WFtD^t zSdV<qk32v!RN5F$+#YeMpA2NdO^9p9X_?gGRb~Dq9yi%3y-s(gZ{BC`tMi}V5klT< ze&X-H$)B=vU*R<Sap<Jds=T~!U;enATU-I@qvSivfkVh&;4Xu}*D#={s!F}CKFr3& zEK%7W<`Q<XKJSiz9U@c{7&mjTo3SrU_Sn4SFRVtsuC~(tW1YXm_j|0XU7-fG^Q=Iq zTCuxBY>65-95Wnlm6O9<3oZ?;Mv(;Uq~_vGsI6O8XJ_rQnz{E0XIs*zf7S6<iQ3iz zShPyLe=gX_r_RH!DvHRGR*@wUlsMvqQ29*1?r>_QZzw)~yNhq_%sU!7Zj0ZJ8G<dk z+2EsSr1lY#?p@(*$_sMLGs-l_SW#-SPr7xc=dxSY3h1Qi1!e@vztp_%J<P_Iz;2?3 zZgfs`(k~1MN7QjI>bwf`+6VePFemIK)*kJLgeL6={2IsW-g(n@xix#DgxHIJtpd_{ zV(o+7^~#$E5Q^tefRhuN{!#twTlvQ;c9Za}q@s@93Av6K;4r3=uIfQ!1!cPMZM0Vp zQ^)K{+a;m(5h$brjaE1n=WT{)Ph?t;<DQ#--7^ci9~l~L{-m}IDWhal{-78M*ZBu6 z*e9)B{T01p=BS)(RXj;R1o=f!<#3&*Vmvm3{_n|cOF(L}{K=Z(3-s%5a{G>q#xbEL zS+<@`>mr6OdjmsZHr~KurloR1pG!I!n>d0$3*<P7czK=1Ld4%*oiP-LM$%q4@W|7+ z*N+5oA&FEG0XOmkmE)rIBf0-PmI-u%cEd(k5v4BKE_IqjAS@b(i;tj5Y7*`x{U?-Q z-u9%-FVOIj84!@v=9jpT2@rM6FZQ|D9-LTwD^<=z48(;8KO(1yND~D_Lg|14|3^Fj z&Oe_|wx7LZfBxj>`D4trh4BhpYM{t#hjJceDjELcc*W7XJxlteW_=HMqX@7Fyr7DM zDvJrbYw*UeJWtjtKl*4bSp=3k=V)ua3)2Lb**^$ve8<mkDx0pu&2NA|{d_LG^a$;k zvQ3_!hDiw35n)s!2;FsaJl`p>ma2mUXv>!6jTpjAG6HFPESWl4Bxypjhz@s~-EFJ$ zrZI3KT6<h6sNJ}@k(nwv2u(7~;OmSE^cRls@RBSCnndzY2lpJSm&21|*f=j#XJpeg zsp3KPSa|CdgF`_;FCn-`+&&H29>zm9b@wqFYzdjEoa!pX_f4U7qS_Ls<>-=%0AKc; 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≫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%0D{|cGEE1j%Ao$1Unbut-l(OH_Q{}VE=DxIvq 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%0D_bHJcV1DQ=Mk{V2?h?WSGqeWXsVVn)Ad25Mwr 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 literal 0 HcmV?d00001 diff --git a/lib/linux/libfreetype.a b/lib/linux/libfreetype.a deleted file mode 100644 index d15616bb7e1eacc22fb5f509c1983faa7ce125ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 886974 zcmeFa4SZDPl|Md{L>MsZ9WB*pt&W=7q*_drDp9L5WJ2!fL{b7m>q`iEA*mrrlRFSp zAapXy?R0E*`?_s+*S5Q@zkj={yS9Q_A>l2+w#tj|Y%5ZW8AcR!1w<vk@Ao|S&fJ+K z)pmFPzt8{k{|!v;z2`o!=Q-y*=bYy}&s=bALw95AbyF|%Wq-<NTv_(HD=)ut#!R2D zOkO$v`g}7#S9Yb!v1qEx<!*PmE?AZMPT%8l+20w<TrT@t`D2&s|9<~34*q{e1McQ$ zUGCn;)VJ?EmwUYL_s?;;?eC8tak>B3ESLLVTK@ER$03*7`Q1C)<>vQg<Q?z(+Qlw6 zzi*>0_~y9|X1-IqU3vc<-&?P9<?-8eBKzBMnk&y(?8>`yde%4pr{}l|7Ivh+r(E?V z*C~mMGvARLT$4Vx%r&X;GwS=Z+g+3JoqWkxKhoE8^>o)q{{HSlmj~Y|S0BuL?|jQO z#rb{YV%L=am%mescDkk>xyN<t<R6dyUhq@bsTY6Mb?Q?GKk~P5<)+#5>g$Z|=7y#9 zbGn*4TzI^xd3k+J^U}`l6?_VIb~M|MEk=D)^Ww;o`nHZXgD>ZGH#9caS2r8=m7S4} z9MDY-OPiS}(9~2PY;I|Yv>Wv`olTMU<{pAWD5HLMcXRW+6<v}}YH|YRqRgh*ZM{rg z+1%D{-Og_B?CiGg>%P)$TyZ%Q)I{2YZObxu^*43aO92+h%78T1T}^}0-PX%|Mq5|A z^wk1|I+iteOJ{P@)YmmOv^O`g#G9KNjm~Z&prfayvwNxI72AY5kPi52?CkDn?ym3b zZfou^8jQBi4hOWYr@p1VL29aQU(wYX?rdm6;<?Ss+d8C{Y-msOn54uRo8wGa+uhvN z&^-o>VPMrg&E3n|Flg;<Jw`n+c}Jv+;AIW%ZA}gAl8kK@q&p&w&LnB>?(XbnwHD=Y z&{)V4cA}@f)2MF&q<(Rmv9v)-&%8h%Y&i1EkW1U^kV{I$`!rGsnA_aa+}+%P7S9H) z5h9uD+U}GGj8J21y*#mVD>{tU<{rGO=Mc7GxayZSW1Jg><m#H+F>IjbG-Ph`S0c?o zgac$HvMaDt*w1w&_SS}ORVQ%(KrM#5T_92q8REv~?vA#OC2TMs$tia@fmSsvib%4O zS&v|jre>jg;Vo8|1-YrYSGB^<H@mGHy<lz|Lhj4XBzUg3xsnCfcJ>%OjoocsMi#iP zr2`FaSllicCQ;UBgECL3p{3KVva+V3t3KS&u_V&41a$|q;IqLbiqtud#0gv5GpFU| zhVHfoB|Gdl76>ox9_74I$m{GDY}@ac*2)>`u>=mAFy4C`z4mBYLl9^*+LkpK&FR4n z3xj|Nk)gXeja=t5i*P=xd&QAJj{!PpXlFZ|FKpB(d6@mAGPRJ}LDEY_V%9G~Ef(vl zvTUvhw=M2&P@>wpg>35Xp`byXY+O)8wvL|I^~~#zh}5mG>R8eS@h%dW>|;b0qZUXl zQXJW+M?{7V?h-OraEoB;B8wGW*@Q4BVzjf&U~^;V(yq=Pp&=Vs+1lJFtw;kpyF~KZ z&%)bIq&Z)(`S!E$#jH-@5gR6Q1M)Ph%DK&u1lg@n1Cd+WEG4Z_N3Lvlrp%H}!Wz<j zCXpwbVA;Mv)3OE#uCz$7o}I-p*&N5*U}KdWC>)%gR~?gdW^%TGmF*Uut>?PtX2J5@ zhDKE1Q(p}kCnE_VB!DFZ)EhR7+u81D6G3D>LOQUi*3;bPhNgfL(Mnw)!0~=w_lg|I zTu9r7p61!zmL6agR7I8;1MD@>He)QfZ43-3vyp6-2*~`p)=o8L=fc8Ojz%)&oR$`l zcn&b!sYJCSH$hpM*}a^a3CdKRMmGjk$D8JEn<=bfGs(vkJhoYqIHz4{*qHpY+nU>( zWV|Y^VQUisFt0%_0i&Tq)Fg|x=UWP#^*FZ^x=9w>R4rZH+1{iSLMu_YxnqgZO2k=! z+Rk>!ZZ!{EpxND>OEIkg&UAr}CGC&|Z7nS#$(oneH?+5RHu9Bljiv8E;UtK9r!CF0 zlnKe?&>AdkTG;}I(LfbIs8VWGfZ1(o{$jCGo2_CHAhS88E86rG)hPR^yE*IGe#~jJ zNHSaaDGqmNaPqdcv#rAz`w9|of;XtjXs#kB2!=pKGSS*Iwv)Vq4Mu|^WU0WGfb80M z($hkfOwi7IQ6H_2Q)RP<sYxk?#7>XVo&D6<wL(ZLOa*ebrKrjSHB6vM?n51zt%S?u zaW3qMWkO)`IA7$9N(gCS(Vje`M5v;Qs8lY?Xpo_WDUq2nWwPMx&R6nalMkM0&7@UE z;zdc#ERf_y_gmYRw03na7X}H~6#9kq9k?zHbli*9i<%sTXNZs@*g=zZ5Uq|!lmeY9 zO|g#0dL?6p3ZSZ{1)?QPGk}1S<mm*^ua<yf($5fe^=YBV2V0cbv_jY{YX+73;A~MK zIsa#Lw^@MJc6WARFlC}vvn2aWq+3sw)-0ZWOdC*X#;c#Ryu(WF$SCxeDaR>v*rdu( z5L(j`5L)*NOp_3((5UO{B3)hW%}ZfVu_QZPs3%SN?JFebjm;~Rt!5_?;Uq0WQipy$ zyN(J_{p|LJC5l~9b#+6JQp(BI*%pZ^K?=3dC$uMEX_3m(X?GU{wpervWgpcywl`ol zwwkVTAxWpDH!YFenKbffBiL5lsu$MZtPD1xeFxYk%1Tz!)<`QPE2$H1r?vG)D2w4n z7~Jh($py{e2_?P8du=ygtmpcgh8|=|!)j2YJfXn)ni{BrJ#9-m;3DYkZUT23N+aS+ zr27+Zk#$x(H1COWj{A~)FT?3XP#S1=S!@E4(l+jD(Jo6|%S$wGen*!8o11h<a)&Wj zJA1CvVk9XLlw<M{G``9Q;n>#HJPYVhSaYx>ZnNJ(N_5@<r+~$A_9L1{eA|y1mw^qj zS<8M7Ln)sprkV|@?CfZ3%mGCf=YnQ||2i<y0Y5VL+qtVcn#O?w6{=gJw+fZp8SrW> zu&TEUdRqn)c47s0_OKSlVzY%Pp)_F(l|J`5Q=YIFC;s|5i`&~^>!*_nFjwHz*45AM zgz9bUZF)mbJz!Fb=;LX=wNuu1i@_+xk_@Z@KzvqR04`|jn0?bcOC_{ZE-Wusby<e- zJQ#?P4p4>*cbrl%JO<2smqDkS@}4c}Zs=--F9VY@r%b*<^&k!<E{yW*=f;+n`bJo` z^>Ckbg7cQBboJfMjjr^&2#BDwsX6CWPPvV3P1!|vwV+ZKEj3Gt1Z8C-z;eFWrmG}0 zW?Y_~5Z*4@JK32Vt+uPKb>T7V{o<yq_k7HH-@_6u+u6bn%v!X#e1@aVz@Wgc7zcLw zIIyy@u$f~)SB?dZQ|UP6JBx2XhayXtuBf*hG^!JTstKZ%x+PO|)psd9bG%nQ%}Y2> z_PBChE&)|`M4;ULiTBpK`c7pp<&+>bH#aSTEN_Syoh|U?W?>u2EjVTdd-&N5D2#25 zV>;FN<vYf}V9B?2WJ9}ppsTUt4Nw7AxVn1ygz~eh#$?(p6H+<IP5EuqfKa<tZ$3B9 z8}L*|Q$u%?l|&pLOFKJ_*829wre)(~05`7a88`JfiF;I0ISraUuM(4I2i#@d(9h_L zwcL!kU`xx*fH@ts7>)HUbf&da6;}j87#%cDn6nmZTF4YMx4B2A5+{VZI%^a)uo9kh z$cOnI-OVi!UYT^3Z){A{EVyN2HP&}9dlS5@-JMh+E9+^7RKjL!mPw5*R-!~esvFtK zREd%|v=qq7&b+t*icWnSU(`3|l;KD|ejy4fetoJemGzRNK2t+3%u!4o^xaHC_CqzL z2kPFKmShr-Tf&%jFnvxl93ZQVoH|<?mbO9p%}|09HCZp0^e)S08l_9v%Rtq4!V?5; zX}@#1Of?{AQi&5{F9Bf&wsVEQv>+=<6Bj44^4R)^onsd2x!l!h<TM5onNY;oxygRh z80j(KX^@_xag8qfMRPArm2qCA**lY`tEVB-n~es$7)eCg*0Qu7iz%>W>sulnSVcgB zCU`cXxMcu~BW-Y%*Z|0=tQ>e2N1K(ttEU70u%7H{fu)`m(4m)3?^N*@&Zvv>vND8R zr2k$yV}{Rn#TB2s+>W|fT@{|4=XSg7kK1*fEAwPSU9KX;XV@RV-1uFEt|>0vJeK66 zc7DG=bD!&U^F2Mjx@d%N_2J4Q>*`V0d|qzZ+%i3r|5@F9$|^GGa;f~wJs+VA?R=!y z&0C9~*Uk3g{irx>HWiPA@o;2)3F--(M)7fd&1>s%ug6A>r6Kb_%LmJkhRs){dFIyj z?0W2QZ{1_O*^q}n<{RaMs`2Il^Yx8{%VTV?cd8yYip%ua(a0CgH&mKo=@9zqK|0s^ zFW?UzynN8(KP(=Q>o1DGhif?gkHz=P^%unt$n}@S58<k>*}?{HZjt^}mG3AY)y*D{ zT};3nd6eyv7OG0kd_6ki)}zNiSYC!?Wq6Bbt9SAIu-WJXw1iOItSl-YOnzl_bW}UP zkC1S@#}hV>sl>5C-OSheFT?Aq^21^Cts4?EO3XLHrHAbIt4<HOw=z#n#p}j}dOSb% z0_q)&OqB%DnFYoHJ${WmBu7q;j@r#hwo8?MmmYo1v(bl&?Glai^<g#yc=CI!t3@P! zg}3My50PQfSG?M*n<q#2Gih~Y<<-6tEKy($$Tws9Rnss3?2J-%!`J*wQx})}&bbJj z@VY-yIN39RL1fYATJNM<+!H3q!_|hdDIhEPT+F|L)4b8VrqlSI=@;S4&#CI-VtT{6 z{|v8^zE#o}<8i=x_d^oW4be&WoO1hVgYK^vB=Yae%lpyP(>&FuN}JbP>8|26c$&8x zC9u9-7JQ0zbxrSCu@oW#SEE~9TkX5<=Jtl^Vg^jd>TH8+`eL{arekGA+#l0BI*sP( z)i=%mETkJ2R;Ekx=2k4f(&zpWKKbKF3U({c0k`o;@j*EIz>f_-1NVgc2*gKlj4N?R zcrAhW*!cY%?g?K+AU=X)b?eH<zwti#u7dHvNPWr#@JSQECy#;80mSZ;^X1JGz;BrV z-Z%mL%YdJO{tn>EkI)USEASn!UWCt$3n%xCmp(B8{F@WNzc&H=?<Ro%3*c;j8D$ne zLeIGV8ehV@EO?rpG3BRS=q;94xsgj$bS87^U%WyB1gIO}S$wOw%}ug2(gAzTwbV+$ zg6!1Rt8Ask1urE66&gE?c2|9UOD{DSmlWz+%7T!&2`>=5(9wy=hej2Rfih@qXV%oj znP)w+yRK6COPY1L{tDmsAqV+c>VRtw_;v^UbO-#P15Tc?%X!BE|Cj?lm5hiF>!l2| z)30{GKkk5k%Yu{7c)JK+etzIc?<{A#173)9cKIU?_?Zs)6l<J$Im-b*(*bwl=OPPk zx5tM({9Nrw@2vNxob)QS%XM=Oyw-Ygdk);@4O>$1wX=MC9wFS>&IML^grA15jR&6t zZlOdVGjiZ|y?PGZXFWIN!0q<;=D-(O&)>>{4_MFSH-6Yow#VkjrwPQzhTHt8pnv&a zAF{HZTuJH&jGq;((DAYHV1qt^8;*tF23XfcmIyv>A(itAZ|(Vn^DjS~M+ncI5q_Oh zFVpg4kGpzuxh};G%lu38mm@FhFT>aQvFrb&6Nr1OJL&7y4wy6P3lp^8&TpsXyhK=T z^8FTIzn##!+W51<H{fPG{4cZw^`MoI_~($=`EC4DcID!ZSq3fO7y01$<hFmjwllfU z8Yr7iDIdtEx%IP|<JCW45#+z)z4Mb>e~Tf(indAR`!JiT{EC^dtoT_p^`qKU4>$(L zFOBg-&+)k4-rT}Z+9oO=6oB*jzfJeGn?U}vY1PIXWnNI)m4nMap>zIEshi{JnrvGB z7z$Sn{-4wZNh{P{?2nB@&f|pJvdqTgg%;drWw7B?VgB5ZSQcTI!+JBV!2Srn#K(r) z?a&oC4fk2k|J4g+H0z&8#$S|Ef!!V(e1VlejSuTZlbs;vYO#JA`f1#e@Bh;Ll<{o8 zP4~E!k6r(V$!OXlPW)ThU2E){oNI1c%2>i|`mvL*wQd&L0PAYYI2&Ar8{))o1FY*J zt3Z3)DGND9cK#2O(fh4(=2=(!lH30A+Rn5yt%OIcj1$cf6UpcjtNk`TPgH*kT>NcD zT10=SjJ{&#<$tz}?&1Vvef)CuL(e<aHGcyibn}C{$K?iY4ds7|ZuaPD=gSpz4!x$s zgK^7k*)p6isw4DI9fwDxBxJrnqRQL4p0lYQJ8YaEHV@h*#RiRwac>5TJ(4bt8$I4$ zTojHs75h+r$!5!+6N+D3{HK%kvm)_-eY{SOpKsOsl3dFNZ`q95MpFEL<j;rrfH;To zlk5K}2F&*VT)_nJ)7+C6I;|+0A3Du<+i6934#4N)!>b_Q<I~GOH=R~?PyW~Q@@BzT zqn}z&#}4_amGAHonK7F_qPorE^!XEW<@o*?fp&K)kIjFJvu3=xlPv0X_&*+y)~i1g z`$cjkt(~4yXzV9nG{f=WK-xH;eE5@dKO8^jTq|P**d_Sp&L_-!%>?ie;4H_FD?c)p zxPA%W@yg+Njt5^p0sJ1oS^gld{Md8HcX2;nIX{~KzHS2e_6gwoCV;;-0sMmr;HQHi z#%t$=6Tq*S0A4i#{7VzSyC#5tZ36gDCV&r40RR02@HZxab21(e4<DNVu5>sRVWAe1 zCCX#GZA-Zk7jPaiS&hW#WBCw)BUrU#kdeKqDciTiCr6B;)76B`^61Pg06RTbo}AGh zjNr%u80F)JX=JDQsIeDWxjsU4#kfHLf5H0v`0M1*vaJ_bi=TLPeY}PGF)N*8RvX7z z1{`;h&QfVy)P?x9Kel>7m{Yp?tOU%*G`3%9t^@A$Lw(r+clx33bikc{#veK0l)85L zI~{PR{}EfU<-_(k%dx<aeA)f7B|PEuSK1$&w+N@d(*D>wDdF~<&38Wj!H01AEA3B- zbwfD)jP|F@x*_~58;I*n2i&fUAio2Cwsp^o?tq`;fY&<Uw14c+LhFY0+Ij^+i}(j0 z!tFVM&#nA}58>y@o%+*d-4lMk1K#U^`yB8-2mAsDe60h1p#whPfM4W*f6oD@Ze)La z)(yv<ZL&W$er&kkdeLrOZTO(|{9nEJPyp+n$kzN_P6ghaXO0!M6n_r9%cB6#TX6c4 zSdRr3-Hxv=w%|@4CEVvk3IWz9S0kdW$uj@a{8u6`t0G>VAG`hsoIu?Ba-Qjr9IyYn zrE=}J`oaElRV=sv*8#>PW%xQj_Bw!*w)x&FE`6<bz?}L2XeV?6$4Psu1<UQfz24B5 zlizN?4PJno@%mq431Hny$o>;0cK#v@K9N7O)oM_SmCnB8c8kxsZD-nD7O>YM49fKJ z>L)Chc9>tc7{a!h3F9ZX{uTq_Jk1~7R=#S+<yWX6k&o`roOxcRR=>2ukGZ1I71Y*k z)7CvT^tyNG4R4h>6x1Hvf$y;P;FH>eCj;*7L38Nr!NAancj#sBr`Yy@`*_g3BcT1w zkU6zVdt^ry(zplBSp_h2{VrYGxZoT;KF6n<yY&18CHm0*0^L2-w|W{3@;R+|J*P-F z7j)_I1!a0-+6}nxHO|J9Uw3cP^Q(2;{O($`PdD$SIJDfY8GkEdNJhj!*Uh(W8@))6 z&qn0I2O;xm9p?Bc2y_|U6@np-7ye!g^wQ`qJ>F9btKXOedwq1i7Xc8pM1>x&Lhj!K zsK?JOrtR*b?e2x`UNpKt+uw_>)vl+&(PKNb{upl>(dfjCA>BNposSrb5szLmwERXr z?p<@Ir?IUg5=jN)vkC)ij+4rbDY(gpnh|*>WDbT(w}+y~SFhfIUO#}cVBcH50^NK| zFWsp}Ppn>bsUCeDWxl!m<9dA3nqDc>c*z1TOG#_q&g8q-DoDksz>RQ~g!xp@w0b@~ zT8o|wy#fKkOLip4Et?03-y_5?eIG#IWXb%%dO;JyJK}yX@tH?tX0Udva(QGhmiC7S z<_G4@rz?iRB@FDjHD0Zk@2e_*C1k!68(f8ieJGn_P#cJDaqIDGi$<1X5taabxIlPZ zhvOz#(X6k2L61jd1Sf~hHv%$*RWgLbRl1ZS-kiX#f!l0+XzM1G?`f%+yq*iY+IKf; zm7D17Nw-fokLyFnuh-2@die>xbd$MTTeoK@>1}%}1{Yr2ko?_~d=&RP_;=`#*ZpQ< z#?*j$giHa-uh^;0+8s=w7j9R@TOqA_kcAz45uMdFU21dG7minhxHJYf4TjAfQuoli ztUp}73H9sd_Hg-jy>z=iWs|<<#OSEYwQ90Hbi(U@#LH*&Ql350Z5~jECJzPCZ3TG9 zmxsLQw!HE|JmzVCH|X9LJ^6`M=Ok|WV`%TYp}ogZx~YZDYR|FffuSJ6pg8%K9x;bP zdtVOi-EX~h#PqB=>301Tqj44}-?Q?w`kHMn*Dqb{-?0~T_44jRxS_ee>Z}3##p{wv zfma^_>GduRCkm&86ZiaVU~p7V6nr6Ex>Njg<vUX6XT~Es<PKjlDeT^*qk~8iefKQm z(;+m^+#@|WQ4<?n@gh^@PYRbxDkKRdrkx&nK{wCR(KU3;??Me{gv{*}F`-gmdJr{# zvGaOYDxS;FlM%)R`2*q{)YkqM*Z}HW+I>I4T?k!F6r!vdwV^db%nqImkQczIsZU5f z(Lr}jz9;PdeJDDJ2Jb=0)mg?RZ17tlb8l$xiO}Bn^w^#i&+1Hh36e-kCPS;wh&)ph z+tGV=C=q}Nx=N4k-!ENA$5gHNvPI@qVNe8L9zy^fx|n{i^?!-Xk|;bwH@Ah>B&Csw zX|wdwCzEse1{sdM7y#w|(v`dr0O@`P-;esFGwJeziGu6RWA4GBH_i`E8LoJ)`;^k> zqTAi>qtT>0a^UUFpz7XJ^~AldK9{Qn;%Yr_^wQ(FM^%s?)_W4Jyys2!d$3%uhwlV` z$DX&cq6whKN7>)U@b#Au@_k}PUd6HQQxXMdmLA(ZGIS`9?Knhn*N;Rfx&kqY$F=_N z@jf=H^?!pm=DUzN@91Q#@~wzjtkcV%(aVP+qJ`n$)zwR%(#yB$rQ0}9i2&HFm+#d} zH-nT5eg!7GIkt~7WA&=(dSV{t0&(0vc^nwUOd&qr-6!*nVy|EOn_<89$Y}oE#nUQY z>YigW|6wvey}!5IhDj_VZ`O>m_|-qs6P2U-=YRiTo@@EHb?w1py7|1m`?&6g@ZAJ{ zzg|D~Uh3hN0rSO?FCtdY98CRG`LN^HuP;`8HL3#hqAz>r*F|RO@lIcCk1;)Z$jxan z(ex}l-hD_0xq8iGeqPPjN936SiJLv)ia$hNx#hONt>uHnr61`!OH#jX8L;vB2=fr1 z|16pR%lK5dERXG56?Wir)v?jhI1q<eO-wCtoL9Wmb1Ayq@_}^u0<_1%*ET)2&p4gZ zT6+*<W}|3)Y&+zwNG3PBf86Lqe~d4KHuQ3k0Z7B#DKdYjZoa8V<w<ajWbnF{&DPeP z&>`*lQhV^(H3x-|F*C?uX%9X{N!SM@xp(T&o^&_p@GTMhgCsKyJ`szE(G%2Hm;WoW zy=7-X`qXYk?~a&QZR2PrC^lgJrwWPX3Pils8#Xrw%x44UZ_@)A9lSoIZG0ck5DciZ z(u(871K=kKH!FQ=&=C|0@#6#h11oWfdI6wQ-`PJHRx1|<RxZrSGSP>)f`P_b{AM1h zL)0)hru^-I3@V499Lmb3*dBAYQOY4AKY`my!Ek(_#t=DA-+f}}Rd1r;tnxj_-VB(7 zv3;S&!QRVm0hWTK&u8&g-+j`3lBy*Y%Ru5<cg2Zi&y6g6Z*&wHQojX01IM06HfFNh zb8GP~>MM|oq7PyUYiD4w!6lr#MUA1xp!JJr$DC|_p!E-dsKfEo!ttxZ=937q4Vz(W z^(Gu&iuw62Z^+ydHcvv!5IlwBl@ReL8f+RY#$ap<n+3(ztDYiB{6^S3YC%v~P2$pm zaJ(5wQU0q6+3}@CD3c{X1-1(=C=P=I@ZwdJ8gdV-BFv*mfnu$U5I`X}8gvKZf$u_@ zjVRz_di++562_~9+G-g`Ze|#q<Y$38L{IHz@DKF4T_mghROE;!!B61Vv`w<G1pRQ- zD2K)uj(4K?;V=m((@8I|g4MIF=w;X(RqZO>8o4ZJ?q@?}$qQ+kxbD?n>|;aFuDcO~ z9o;h1Nk6Y6dsW#hssv7F006C(YV}MeI6&S2#B25b+G2!0r|BMqp8A@D9zT5ib&P-H zVzv?rt+cI)ZEGja4C3tWVn14`3%|xjL*@s@9^HIKk6)?Buh)nE2pM1nS;u?4q4-Lm z;ZSC5dOQGueh<|ot}U=y43fxBhDQjvD<sv7bSf4GROc4v1*rk5rW_0tgtHWwopfHY zM`+@jFe1<uNz{3hXR0YaGv8pyQJ4hYzmpL!Y1u;5TqJA`e1P&{_Bcd<#rot=a?X1O zjFzVrUP42!fDjK@9gbl9??NjMgv_lr2pvY-4%8%!Q>=*ccmxA*mj`L=oQzmEuOMM3 zsr0uD#70+L@n{kHT)u}20OtR169eW6s3eEZ8+tWw%3BG;<*s-Oipg8hsHhI?dz%ZR z8F_ldwqI!SKrBSgF}H)zFq?&jNChRN0!5e9S1{BOAJu@&E2ciG=I@!7e2VQbJ_bE5 zGMzGw?{{eWaOxq5`gArz_h_MQLh;u8Yd)z1N#8jFy@6_k`MUYi$XYzb=RsYVS6m>w z8nk<x(fRIA0O+llR;=B7Gan1f2U`Y`H{up}pr{>9UWY%~`fE5*a5Z$@@)~HInA2*? zx7Wa?R1YvDpf-lxgCX;H2r@ZbJ{&F`4w*;P!?tkgwvf4t54!s#%#U#CCaBEn<xseE zh*O)Jk{vR<K(E-O{cuowBq!dfWw;tHSp3D9>GA5K;c8`4o7Ic(2((tW;#z`h7p`Tv z_ToAd=6xTA6}Nueu2r|XW%L7Di(66Y;?)ardp{DWahNZgPH0QUm;3biWf-TlIUnyS zfhFrhT9B&~%$*k{W5Isg?#)iU5MX~!>XzY3=_dEc=<&)T+jB5nxlmFLSL(bDS9;Wi zt|}Kq7?4ouvp1OxM+XSTM<0&fFE^417^(z@DuE$Pxn?CWR0#}4`<OCb2@FLQhAM%U zsGvpcT#;AV_PXNI&j2waEMIh05zbX!ac{KSUXAqp3F-wdE%@evIt=AvW_%Afi_jw( z29`B)!RsJfG$B#o7q3o!C5A@&flWf`@-T_qsI6Omj<&9PQH#5}$b73Mf5BpH<Mz0e z<gTub?PxI<oFh)3Uh;S!OK)+{m_-W-u9N>v5@5k|<L#)|TfT&&#%GjNiky@3rR%r! zT=*!?g`(?)3__yF2zb(i2#T~{0C<H;G+yk-Rd7jp%sJlSYFX=$(2$J&E_~?J=Ru0* z@@aZ>xM%}CY=U;D{)zD!p*%VQlxF-@z|!Z)4^Z=<dC#<5Dpj#ppeH%}Dr3D-*`gXf zD3S)I<vsj8_m-d`ob7=F|53lkZCtI#*FAv7DKqz|9{-#5cryM<H=i4w3lv2q$8eNs z_=zs^oV4|_43rR*J8pmA)zIS)JcPVxJ~V)4l-jqJkCw9tVvi;3@rR`@u;=+miD%c* zEqO*M)Stj8q#qcA?^V*=-b?-Q>#_<OrXJ%;ZOn{++J6NM(1m5bqcWI3e*h^dt)29q zktZ0ED=;K@IiULSW%OY{xDBRNkzVm!WNNBbuh?vSf+}x(mZ-IFSVWYrKVAt=!#lDx z`VL<t9gpb#CT_Xn*n;Z7m$!f)ZyVi@AwhbnCiU;cFPhPSF+9Sy#*PmAXR?3BLOp(( zZt7^<O~|aH_?wVT$8>rVdZ_yZe(FtLqb{n?bYmJaTJ-o-yeZM+H!w#TA5Xo(V-z4k zp2L1lbYc6N-$U;eu3pxLYms&J349G!7~HPNKk92%;RWu#pZcL~Uk>|Ath8mkDt5{6 zi`A8=-*9t|9w7bfCqIBGgddJjAC*8WbX`naqZ{Jup^F%2)f$ff69?m=3u|Jp7+=!k zzuJzc8WC4eTux0b(&NkExjAYq(671O8+lWYp9x<uAbX53h5<K&hM}9#RFu20;_vQ9 z0Y(M%4~zlT`=2LAN8!6jlSM{_#Xyy8mKLSZ;uvdAJ*da!Mjwu`AbwcIL*f@TWB21Z z^%JqD&2R7G!#z3vmZR0)y!991P2?1iv)>hrPkLx_73`xo>*BME0_Glgq53C-1;Q9< z7(JoKEAIQlO#DBsMtg7wKBi*$vN%PDj-}{d8hS6UrgU?B_PNZr5#<6QUUPG3y`2qq z=kFm1p+Y~e550$MBk(Td>7_5i@1(_6GDqxaSgU$57@spUoS5YcMK|O7hrtjG$*S0n zRr4{^`pZXCXDB-@I*i?n+kAnFcUN5lR2R{%q)i#F7>r<lA^h-Z!1Kl_RsDO6-#}L~ zDnaiR%GuC|I$i6z0DMd84OAY|f_syzM9uM|`8R{GpH1FwJ%{7Bduq%VlIP$V@;kL5 z2cO_rFu@$i^5d?%zpO)Pp{@_DD5P&#qSCg6hW6)KSksTaj?(p^lX*~nkk_Z1%Q4kL z!#M;c2wYta8x(%vT~Jg?Xvf3tX20D<|BP8(CgTPlzpjP1rv`G{lcDdSgQrm7rwQDr z=P&o`@qf4<J%<&l$5%nsZYk0eXvNU+Ni8sJLWv+uIy@Y$^11;yCsM6#oCM{b8jMfz zC^Z@KYNbd9-MmZZ^sQ9)q5YFYd)L1QH3D@(f=0LaC^xar^UrHhF|4`~TzG}dMJnYX z(AFge0M*ug`#!!*R2FILe)V;MJn=PLkPwmt)v(NrmB7-I6>mT(P0K&@AIKAX9Q+Lf zT#V0*Q4X2B5KI6^|AY5SRV$0M{uU5CI01Wp1JUCJ+C8)JT)ra!j}UC@9VG1w^5Bkz zwdOI0Lr*wp`y^&w&^Fu*qoD1>%yMqXd?qyXL0+iz1Lk}mWref{VYY`hq%$UZGnrlw zna_qm5uwtPARev%1!T}^w!;Pu(=rbidxPn?%~162VlUoT`Sdv7;*VGB|2CSZTnS>{ z3yOni3q)@f5I3*52pz-r-2~Es+qKvX_9wa(oVLxUt&0=+X!9hrW0JP+n;Zmf-NR}C z9_Ikmn8#a!=F%ekiC}%rHexswFksth^c%%GP1#xu%EIJ79;Vp<`C<-^7H>rXE@dAD zjt;wFfImj!(PFdF3jfjJJS{d)-4$rDb8u(wE*~69<{#Zu@V5T*$Sp@V<wa&k54a;0 z`f!y`kzbV}!w+qVWtVN6>`H9{9kvW3h8AO%hvJNXO^xtT00pST_(AF=dtQmp=?%xf z(Z`pU%xMi@GN%h-WJNw!9l~(yQvj9^g-VBnMu^at;4+la=j;GW^mPIYIOoQW)&MtN zE%s?V*@I*ctYQWZq8d)RA~0eY-Z0#Q=9BWiDqc_wqcu4T1z7D1Y8$`7anUy3%TWrH z4%Ia7z=BSarkn6v)_bgbeuHDI(k080NR5ZK?i*_XPkPaO<%h-WMHv_y6dE(<mqhN+ z&G}Gp`;d-&{1axtLKs?TJC-6PxVKI3khv}SBPot{yYyzKbX&QcRA;s&BS?bzxMI^v z=ri+6QvamnJ51akFjMN=mS3*Q2X{+azf|KDJ%sh9;ezDTEJM<5t17}e$;z|;?W*L@ z6|kSpRpT8!l*b`Y{(x`flP-^wKBq%tHfP3&2l~F0hXtc+uUS6xp-C$bLxp$<DKN!C z()VrWEvDRJy%CD+#{2PzHQID}cK-F$3pdN6W217*aZQZ7)wAobliH~*M_&WdM~&-1 zFAq&JuoSb(<LZT%V3pU^TN=HtU^!NXoedd81#HMC?N;oP@r!QpW}TUU86~<OKKJ8! z#uOnYtQ@_lC&I;^@;&m5xql}G8+Ak!>4F#DX+LnS0{YDos5H73d=^vbJP44W793jd zXA7byuh+Gkj$qM>*Ilt45l>*fjyM0R>u`di*n`6b#droO&;bF$r!YHL>H<a>oeny| zGJon{sDGNzrhbr9KdN5{$42nkH78GEHD}ouHw=zm?^<($59@im{FI>sli)zftq(GH z7$TgN<0_$7nQE<Z-V@QpaFR0<h7L|j{R}Pm4qhtyk*P$ckS9ncR3CTAWP-5#G44yP z{|ThQ3L(7Z{$EYf`u~Ml)To7qaStJDpJbq@=>aC-Eb$B6z`GtchemhB2F<OJWr64i zd0PLs0I!MvviN=`j9(LqFH;ky__5;4N<t=_-1*WgWWeeR9xFY@qJXw;Sy4;$WYMzQ zczcfALa_xU3`1Xfbr2Ibloq8sp#;0X=E!)eXpT1(<5Ye)^)%^?vYfGT(t>nD;Vy-r zEfs4S$h<_;l6O<?@RQ~jBJ>E6Y^&g41t{PQZdfB--l%wQGT6^ga=#8#1fnX${P~Wo z-@>|y4Pu6a*eWchRfj=>lJyeR1s^*D6>&=mcvR?2ZJ`jTyjKM1cPTa;2Tnd#rKHnm zwI3{dN9?GudjxjPnv)E<Ffeyit2hl%gE7JwjZmU+FjTR<rv|EE>U1057y`y?EV~Nv z8Wr812%PRiHKkCr-(9`>51FWpG(Ac?9rnMHGZ}m)_x+A2&fpjA!}8o@qVDRr4#cj4 zDOL+R@@nJLdUO+<5~;r;-{DrTxbwI%nNE=HkvGgu$6kyc_i8np=-gCp2c|=LpMb<s zgga_zqOyXRNB0YUX=G*L2SW=DlzUmAa$>OI386%Rm-}frG~@rE3fgB()}yO^uE?ix z=*k`%TLl3)|1Ga5=EioaI+^_}F0gu`ny+B*Ch&j}AFcIWQ|0S<4YO%sISd(HtJ;k< z%$)X&r8iI##6uwl+QlZN`-Udng(ek4a>Ev!3>qsm=jRebT3@L4mLDChEdukREaQ}G zDt+DC=yNSBhY#2it?LG|=)DMdAiXa>T77z+ajPEx?h&E3S<s=5pEPd7prLIB{NsMH zB(Kg;Hc&!GLX;6g3J*Dq68V%qJgXK81EzJzSEq@|T#&kb>~MyK^!PVfyRjX1Yi;W5 zcE7UtGloE+_t2tKFdIaQxg_d=z(7}5oiBu#!ziGaZF#QLbGRO@L=X4D{i1p}TlH`! z$r2M7WuWoIxNNJ(AJ35hrP5~3CLV|ZVgGcwfKdue(#_emsh{b?vjqdm`n0|SjMIaQ z`8ADfzaaZ!HlfsN%GnsPTZmZLIkWr<iE2LJE~s(wZ9Fp;m58R9<xl-Qn;#tXXOI64 z&^<gx5TuvW)pDndQ*@9<l9K{5{61!!h5R$`v*-_gKhmF4fF`jK5%9CE+k;GIZXVmF z8e+bPrimBC83wg`oIU3|s<UBQ9|i=lLmWf$uyB-1+zS1r<uR-jdr@RUeEmi3trAM% zjNwEkZ6Y;ed<tt0Kq@pMbP6&=@ak+$_PpVELprdQ14MPJwB#)O66<pYvLu5d_=UN7 z@1;>MG%r*JDW`NcsfYK9#uUB%*UP67C>5m3*M|qe52NBw4a|df2fKHE9UNATSR}gi zq+apPGC!8BQiY^{1Z(IOzgu=0l#ey5AtO(5MN%@^gKJKU?1x(?T)H3kt5;)TE}tPC z!XLNXRz8T^@#P)l*gNp*)W%oqBX^-CWIe2p67>(ShYX??BjPQ71J@xz7+!RtX!PZl zfj^7BZT@oBcj}+6&;RGvXUUUK+x_`Dqy_r}KcKTex9IV?Ge-}g{m{;H=VvS`JcEIL zTg(LuFO60?@W<<3^AN*Bhey9qh6OO7Lbi-5y5vZvUW;xY1==C!v-q3yEQQ_2^|(Z3 zvRzZ`2+ofyRDxTnC)s*XW@LnIM*agP6S84oWTGb57;s$C15C{d%k=R;iMd;0O^OLH zWHqgSSW`ddeJIS-^I$2!DQ;U`i}ZMX?L&~g`wSofwy*6h-=yY~=!w&eYeS9miV@;E zZLeOjw_8hHD)Lw8@<r%P6_-Tb0u_cX3DWfdIz(irIyH^!mwJ30FFx=j#iw2#U`wdt zQK>nLZrhLP(Z|TVh?LdM$L_~X8A6oO`WMo3Uf!d}zflA~4fTaQqO|}xfg>Bf3ycAb zAaCkZYCPg0Ox-&Sgf9lX6<xl_>#PLY%2YL8(3iNxl*U*29$9^I*0=rwl&SUqKlmG% z|Ij4Fv!-c<?xMAXb5;DiY!FLdp<mMt*^E$~U0RGG!sO$4nY0kL)ThuM-Mq=8^?w)d zbhF$(WX-IFVx5QOP8PK0E?>J5=`>ofD1<Cna}38@TY=B{5StNXdnqvb3?x{g9^L8< zL|=19UI9S~X)^xRwuAL+7Q#KXicF`Jn8;x!dT0_QMc_8-27PD+%KHZ{yrlj*{k+bH z=j0;fbn;7JLEvV_^ipJ%ALdG2QT&ks6tL!GkI}Z+SheOPn~fL>ge&P#>pU#o=%prR zMR=G9BHU-(RRy1N$-uQAi`*E1eZ?Xq4L$Xlll(~f=4PX$d`HlHOEz7<G+Ngy2HMuD zeyG1Vf)BA8;>l-4=v$FFqWTuNJy4JNQ?RMWrF#-mk?MPbPN&pfp<~d~CD5Tozq=6r z1=1b@xe%vAe8Fa7u^IXhVs+^MHZIa@k~fh;L-FcqdZNB4oM;~|3Rk4MPfuN`>>tYW z5ac=J)g|nYtbz5aNEeLeeh!Xq_kimqcrHH-=lO_?mv}Uk_y^IS!P!0T=Zr2Pq2Mc+ z6K^`li!47vp|l_RKZQZs9Zlhcn7H_43?&NjlZ!48ZO#w}BghPLKW8}v^jGDH*P?R^ z*|}ZpT+e5OzOT_M-k{V4r_DuSdyJ{*-{>9`8+pj;_3{_cyq}<X8GJ_X?E{&~+K}Q` zjt7<^Ji&N%A-(ZnnEar58Vke~yuQQ8Gu>Rk>f^|i4_5L2j?}Xjevxh(d!|KC<}aVh zII3?Q(@_O;P(I_;)s*w15Tr5blSd498gd#?OSGozktfT%%Cw&<hawu_kp8JbG>WL4 zjY>*l*e4O(4u6g1f}z`n%x^#^pf@Jtt4aH1pqyY3(tepS_FPVVYgr!{A847u8sR~K zFGgxeyM3VTpsrj`%;;{`LgD8e58?;ixc9i#jlwk>$(mhDI~$Et74ZumE7lzWc-dhf zI5A_HK6DVfJdVW6%*(ZPwFTzsafmW#p;*E4#%l`$=IJsU%LS9x7x1#yhpShp*9;Wd zCA)0-0vWsJweLwIFoXz@Q~2^pLL9@%R}MCJ%4=g^OZ0kI{C1xn?<mpk`#}K)1oI|( zHLD1ISh!F(Vqt5LUa(8GwNXqNlv8CW&{aiY!q`W&y{N`~4ldQu(5nTZp+91N`GUuM zA>@88<bEc^JrzcAZHQsxdk^ZR@OR*`CSK#x_hJ!@s%$CZx8@ZutO391@fDa35ST}Z z9&(=uXpc;dzMLO@7Y?R;)K72A+qhC^hgTPpQcuv4Pq%e|dTN;Sz7{KhFs`Y1LyP_s z6PqVO=IdxAN~?D3i7(U7sKqve*7f+Ez-)Js`GUUpRWvYMdMsReG*oezm_#e!Jk{=* zm5=^vk1WUoUVO-oPR}hdU#Lke$<z1lM?V751Nq_7BjM7w0?`xjYz2$E*nwWH|C7uL zk6?`JG+{K=&y}8;0XTikl;|_58jEj2+|z+LjG*~0+F4MHHU>;YVdbL^6s}5**8z<O zq@s6Gk<{@px`^dREp~uJ;6`NhTYBP`#eIB&dOGw5*6WTFO@3LH>$lz@n0rK4^010$ zeyeyblLL8P>=ogHz$U6wSS0BpZhIk!9T>T{7U&IPRT}SShN&TkNeReI2S+VDZKGe1 zLRLy4K{!(J@=|T17sFN-h;DMzb+bvkuM|yJ6c@z{H%GOM#CL<XvA~~2edae&l<?Df z2Ad==!lRO7*SfX-nH);4$X0Caeu<-;2kc#&7uk!#ycpZWm&-C(TqNY3Mrx~!YWflV zomHX|3mF74j9*<Vq%x~a$c}yNB0d+{Wm+hW&zh+xzNOF$x&TtVGI0HZ+<>@Tv{)N9 zDTkuN2-7?is(41bcL{nTIGjfuf{ulvN9THyk3q4{$WPG3WU!TNJ_(g3L!~3^BRc<0 z;3MRIGvtQ57i)1?p?w{(n1`+pyPphWp?3F4uG5n1gv~<HH@qQ4zb79>JCuKbC{jIB z)&JV=g4OyyRN%x}x<4Kg%HJa982te?9!g#Uy0HC)Tnz*%1dA7jqKCbyd(lT>faH@h zlAz7s2?>Fb)1)J4^#fBvJ=de;8ZNyaO6~zFaOCf20kK$Lhz_`#hkm68gg8z{t@6|Q zvbOOm&{B0?*&sr!f>SmbQ({L~dqqAv^koRTRba{0I9m8obYoQ8IITK}HJ|4ycCOkB z=cn7;U9oL-GJr#h%Lnn|F)HI))h2u1qv`<tLE@Jj`|V;!pJ2iWl&x_!e9p5lIE?-A zNfnbLFZ#<4>lMe0JqSRbR}6u(3Nf>s1BVV2$b@Ud5qHhOvSHJ(<Z>56X${Czw^}XX z5}z+#=Zo$?i50{tyRd+r>~)L}+Y6~;?_aaxKh><EOj^sBwbq%?PAEpk?~l&*Nt~35 zCdud4G6ef#mED7GqBqWP!XkjZIp7xVs6&(>SRb>ooy|^Xovm#LCyGHWt)VAy%=~*Q z!j7#NIF}e74t<j?Ddi+x9L7$|JXi;NBA?(n)JhEsLsK#lS72fl(Y&b$`*on&hJa>0 zK9lxG2&@ww^oA-V($jo**^{=u9|v%ESevsGfli2QIDr`&is~*vHt7|+0l{WO$+-OK z)Zb?KmrW@bI%G{~&fuyG%XehnW2ctxF4Nt$9&O#bEFoAie7AG|4)>UB1~M`ALXG3h zt=)$WGOjvHpF?~H7EpFG#-pZj4?2A=*l!Oh2jQt<^Z9_bai7{`x*cnoJ!MvZ!qki} zXYf<l%nL)651WVvGRxp+_aYn$E}0Q8(sw^c|M?AxX^6Rgp83zW@?(b99x3y$y?iZ_ zZo(9XL%flEMB6wyfIbBib#68b;{NMj1o=gm`wDJ(dowRN;|Y31$bD1s$m17~kU*LH zxqfxTTEF753*Bl6#*6Ji;6h~j<76xZ>wrk0vfQdva39zBOSlY#9%RMSgC2g1SPB|% zP}{@=HM?QWV6G3sSFot6{Ag-=W;|eT{Y31n4K&jjc9#iTgxZP#e<P~LSGHmSeRO^o z46V(P-&FO(%>6QYsf;ZKjtGa!TKD5TDIysb78Lz@k1(5oU8}FPYLCo1M>nSxL%$M+ zx%QOEdAvtsfeI^lJi4Vd6OVRnp7Hx@Cq)jVp0~!I_!F$bKO=Y)>^bAtjky*R-w;MT zaQsR}b)kG{Q_WDl5T4K78mh(QX}k`(w@C_#t7kB}dMm-`5hzwmk<aP2$c>11*e~M0 zlb}>XhVcqeC={r8J-F_bf{^<^u+ysNybS(fw{sBz8j-XhRPi6nU$dNceQY$livCIv zjo52KEhAY=ojUrf^?#pQMpPES;hp%p=p6r`H0FI;|J{6skHCC7VEc3uca=TnM->S8 zaBH!>P>WUQ#|!EXp&zf}E-Umyi+u~_ATmRX_232)SBoviO*rxJb~bi6$_qcC;n^PR zDkF{OBJ0`5>$d2>@q+NVhj1B={*X`j3`;z-y1Snje1@Zga%J*b&v0~$^)wtkV#9|K z?xj9x1Hz%?gIkYv8;*ai47Wk^0DyF4@Uv#88*L06+rrZZGQrqEtqQ3syO;#mUS0!7 zp|%c3g-`_?C1>%Y#lC<$1kV{4qNKb&OoG_H4uUy-%>kYQzzttWp!Ij-FKxo0`LZ7W z)&0mCgqIF}=K<b>vxc<TKHRN&d;ovRjaolX8o-8{Pr1-eux}ymqx-2f^yhIr<CU#w zR3DP_V}*sYKR&c#Dr3g9*yBh@y|j=s!!$kq&%{|UUNcja=}+M;ykjkK2}S?BxNN@o zd9m*1qR$0JIA|UmI_Zrb)UYm(#IC@aS6p87C-^2w7gES4o=5rxAdklEp|R(!M=wHN z1nP*FlDQ_zV9mpU=qv99qQ9A%{4sPQ_!AH>l>830VMn}>*540E>J{pDS#d*J|6;y? zLkBpT?>&l;s@NKogTAaeD7eG|Wd!S7zalaa(oux*`7trdAP+4zA8FBhUqsjAQ~Lf` zVE8d;L+^T{FKf|v-3F$S1T*%n=yF9qb#xOvcNZat9(`gEgoL6#j;EIB69+NkC~Y#H zq6hMfNhs1|bcEwiFmovG4w^|l{_XqmP=!rXbXq-C6|cv<>@NunSI-0-gMV%@w7nq2 z56)t+M!(9epQ*)8qKlw_T2R1RCdCI7(1%O%UA#)q<4%g}`z<W9!s1-Q3uBE=i#0-K zE8-&=Xt6pxC%+~|`AKV@_`?IN#CC7=g2+{DIounkT+`(<&Me=9(npYpE)N#ke+c)O zZs8n)5KYvSpqnt)!sa0;u?u1NB_8i%3haZiG9p*<%bE6v<Ntg=5<u_kdd!cT5aOKd zq_{7^i(YwwFpDm!83o|JH#r%Fv<z&kEQ8H-SNXqPpF9t0^?=Zi9e;EtAQqmo<CrE> z12@$#Z79wRpfrph40LWNh8)3QfWbWwg8RL&Pz#eSurxBf%l>MyPXdMUs+kXf4_`sH z2atU#XU2_>@5Ey`UIkkVIEhDh;jsl${Js>3rF;)GjIbL!4E@lO-lCRNacp%e`IHbD zDYXA#X?YN1Jr502gaIQ(3T2>YkFG}>7Y^djqCpx<`E_M<=SR0)&oEv+dT>y`<gS_c ztrDc$bbXk?q0s|_*zlu5QIHzJk7f^Ov930YYmnT>q`FyGi<hmA=hkGSpbh%KF?)#6 zc@AhkI*rtbN5meH_+5+8E<akqnz!lsJ<wqeNPIC$)phfPG$OwaMmLh9&4`UbmV;;? z_EK%aqspO|!s4r&nOs1WTJb^7^|>po*a3v?LZQM+YBfj71Ac-$gc`R6n%_(2wp%P2 z)d%dk2$l6$Yrg|k4DcrAUu(St${ReWS@SO^daeI0<Tm%3@5C4Q0_N{!pMJo7v<K^G z_6~!L?{sYZPQ|l5&jzuJZFdZl^*T00g()EhsfMd>;!9jlIGF96qeJlQ{D>9q#8D8@ z0~#DMT0glnaBM67`eYe5(jPQaf#@H-eNVYlK3jiQ+c1XqPmOMMhs?<^YCQq`K+J6O zMF{~G9-_q?1XinJhePrH;_soz$W}0ZA8w#rPffub?8iOUZ7A21MM$g4hxy7CJv^xQ zh*O1_v&v>Dm2pP&_+%}15VTCWE&JI5N4J7Q_5u`2{JQvllqh+)Irc-5mpp;RQ>Q-l zr}h&-FGAthEcco3$N+Ww#;bsS(6qg455v<TEZ|U(#n*BeIN_ghbW?uhCUX~dG)MPq z(c^9-P-Bi@s>q26$c(!LwXt}M<g7TS<gzsWQ~{DsN(qea2F^|woY5bZ`a6YZ$ReQZ zIzS*o6~<nM6wP!;ipbO~l|Ho*sFF{5eaqorg?<h~rt6dQJg$sM=5;2oTK@rDTB57- zV30kBTewcKHFyDRl1@)3aqg^8#fw^$DniIiVJ(L~)Dq-_Cb-qr2jRKF)d%wYHUDB> zuF*D54J9glp`n+d6(>U#L)~}RRJ@>l^$?35##VYt;O93odB{BSsLJLCTfj_%`8j8& z7^C4$R0+jIopXX`6=-3Rmng62>2Sr6_HArLczNXo{S0e?#{o{<r^4W7#Ob{gGEaug z-&pcL6y20pllUTx-WRp6)&s4fHSbHE{VB}iHzo>}u|qx=K4CYuOdQ9$T(H=W7t_Vx z7%bLrOazz0MYWBw<CG7z;flM9OSF5xhyr++0aPB?Y&9TilvKo$aGp)Ex(bR2_o`=@ zYP@-zO~4=q{i&sD+(X#S60X>9ED2W}Sa}NW?ykb!D&DO|G~!BE=#uNWjs!_ws*IXY z{v^HP`IUb~xdmf~ZWgS#RgA1EB%~;8&cJ-RHI%6GhAWQa_fbs5zi$m;SrO$%2BhJ1 z+WrOYHqmb8FG>A#S{~@pYl~e*NJrGX$7KYRPb>~oTtsrkERU9mqvL!8Wf2ai55f1z z!4m-chJ(|}h#a+k1DC1~!N+$O`wF$#*C0ZWqzskLz=1c$8L-FuA4b}1<`vJ>`u`X1 z7<l`M3J~>UQbrYKye+Mcl><H^C_q-%WW{h5LX$9FLT7OVhg8&hR>BX3YIR55!@&X? z7*O{np$)QmnSIDfGfh|vK5R_dN$OYYna3h`p>-kjq>lG&h`Gzr5a}<Mc1DfUB|zy^ zZQZ@(O~@)9jHU2_Lu0UCQ6H|hD5=`de&Sh}5m&)oT7I)M_?N27IIrZ5?jN)M17>mf z&t&WFdkjiI@{4Hys};iY*3V}xX=#ndGo;P$(yv+WS$;q_??4pInAbrFgasjUG;ni` z`D9>zjk#4VBx9|-u6!RH2C~ZINqsgW-!s1e7aI(ilZ=bGl!zs74>nGK4Bpd?&m&q9 z+Y;DoS7cW}Z3wJM1V0J&82UD5e((pK_uu*ilc12)<C*f=a0ku@ut&$6r60tOt~gaX zi|(QQso!VIQz{wo_@w14RR`z~vgj)N?T?V_RB&y4Iau*Mg}I8?m!F%#Pqy6V_(K1N z?u-Q}?4H89tO`8Dp=R(_xDVG<{PApPWOra1nxA@9(Lw3!I3f&E4yO!+wb@B%+`3zB z^-29Ut9`q9PD$MA<pA4@@x~Cdl~frq2=tOb|HseFRcz}yHyppQgwx-px{16{!4P?X zo2|P04k%P3nO;~#&_^_fuy9ndDU4Lw>_d9~6>xWprjgo_gFlJic^kWdqpM3?T+zM~ zD20Y44p+xnWtM*C#Bc8YL6!hg)%t&i2Iv*bJ>mG0nS$;fU#68~a4qdc9KCDRV*10d z4HfP)pckTK8w=t|8*l}Km|(oumFN{)F$&r}-2DM$v!$Rgd;2O3czA&Ks6lo=1AWyW z7Chadi=R4jd-<N!FC6s3{h#n{T2!%9i^{1@rMvZtC$)QLLu7D;*}aR)UuLym&IjU- zQ5>Q+nEW(er|rIvVQoDzpgi5`c(>%_%zN1^kUBVEjkoO|=fFQB1A}FH41Ap*dqE&Q zD*fySuDV>a`5Ysdrgy|W2-e@@er`z4@rEw9xa|EA3;d82*DTO`PSqa4HWBz*%?1AS z`abr@@_ph4xL@b!%e>;3odtjFro5q-JyW(baTfoLNq>V|mHQ#-^Q8Q<kyd-;2KUf@ zoOg)ganCm8+ZADcwAzy|=`T#DFT(kVk{)TTTm_C6+WPU>{Il|zd}zO2z*Nc49*&n^ zT#e*c;nV68CGNHbi#4$n%E;M|$|Qp|B#n^-P*bmlcocaJVaK`7xt>7!yJmr>=RZJa zSd8<k5vaqJf)VQnb-+1_PaU-88^`<r3H6R@0IOxI60_a<HPxOT5JPndCD&z-V!{Fs z9gwEv8FQ?rsM!G&mkECBQ=|rJKVr<(9znH!_s{{)lwEpa6+Eg;h{JEl$g-nA$z#Qu z`%_O@d;lic<)lwr6pP$&#J?aoiTW@1`0Z`d;{~7MbV(I&X89n5E~X}nE9i#fu{cmD zn)EBCNjfcdA5hGe=xkRlMan{Id$3x!w5oX!t9RbVI47eHM^TYq5u51SyyDY2<_Ek} zcJbk3>T-s3n1Hjfhci)F#MDd`GHYB&uTp(NUCv1-{<!|VaN<%Bda!sJ5~mZMr4pX0 z(D*&w{XEu^5y!zXNtQr53?P2Tz!Zf524^d^7>zm>cRrUPeRfB%Ubr?`e3_#^TI^-$ zKjnk6iXennE_NQeP~hv|qg6e1^}GVFR)vXW5Hx+<8~NjuC$;`NQTzsvg`Ks>Y1P0* zhei<HQoOkdDpw&5(>_$7t=oi`;-FWP8ec5IiyHIN;^ghPkxYn}a_TStqx4w|bi4i= z=<`GPDKD3wIK$Zdly5BfP<}cKQ-^^Q>O`(-kIaRrQL;@KD}P+Z@`JcJ<sC>3XZUJ2 z^*g8h$*_JF2VqMK<UoFQyRUk*z|ro4taf9<O|w>Ht|fTV^P03D^1zbIwwSyDVsmcZ zl<oEi6i_&%{>^T;LmsGQCc8Y)$1ZD;#j(C(9k&KfP)CL#+!geQ^*A9bFnVEZUu0^a zVv8}I4t8sOPP7Vm2%5%qg{S2J>DpP&rVX}SxbL0OQLeF(>LWk5dBB<WJ1r2RU&pS` zBUQ1ZtD-nJRmI<?nde4F5n8MXd=-H8R#owzT0%4li?1AIDmMb`qR3-eHDW89V!6l@ zS@0mcUxohvw8{j(t#l=^4KS^DaE1MtKFle{Wt<M*;|AB6r?`^ek|gkVd;xIhd^0xv zWTtPLApQS2dK)t@gWlYKKE3gn3Q@|e`3idWehMip@(KOHwTRVVNkL=XUJs6l9}%-1 zO?Ga)5@$kY0XU;iKq*YzUV!af_*rP}k)HPxH@)BY?#GwigiXBAoT~Z{8^6+{E1_Fo zByq#>`J!B(29oo@z`*%07<AZ=%7DVv&ymDc=T$sa<a?aQH(Jai^sIg4+9P!zgcCEo z;cFtgcJDR}zrXJ!cJlKsY#wpg|C<YvJl)FTzaVCHaB{8tQ4h)j^9CS}0-UCxaSZ0; zPT955gKlFA4x|n2Jzmo|sIBWcsXcPz2VwWYJ_gM(?yT?K0<HhEasyxJG^uyeK<Yk~ zpH-kPb)G0n&SO<mc2#NX5P=H&O5V{a!+9z7*Xj1MCYxP3$NU;}iI`V^;0aXVN`6*) z0y_}pLjdV{?2j9&-_U`gDLb`C*d3Usg9TG|;{1XsyOJ{`1M!DBUuTp2P(<zIdVX$t zhWHWRY~Q$Os)ar(cuKy2rVXH6X@Z=an%&RjdL#(0os{eq-s(sD>1dslY;`>2Jb_8c z1p?^fd$B{3+u)DT*4+h6Yzw>9;&}36B*OeEMmk=+N@vzjZdq7BFBZqrHL~kx#1&j7 ziGfl44h4-Ub%t6I{AY!V{^3jg63>IhqL7%`f2zDbDG%-{1mw|uUnDtl>__u0OgB?b zL?+Q>z`P~xyB01kL|7Tco{{)Z(I_nNf9wG^j--x)GW!YY^x?_U3n;I{)v6yJ);n}f zp+0n%r%<+wWb7TX?g;0PBT#p#Pb!9GR4%+Q6mHP&7?M_GECT`}+^J`@Gx!Zqw&%Tn zVmojrFsPZ|X9Lkg??{)tLaZwf7i`2s?C`2NiJDPy?INzUaS!&ePQx)Jp`rH?3x^{R z+`oZoXeL8@-`DpZ51SWZAq*b0tYab3T^zrdw%5$$F+|(F!Wci5JoOY2ntt!_53hM` zEk+d%BZ-mJ`u`depPZn}0LyKRz(a?MBA*2Q*KA=@haV-)Pwbh0gyew<N9(^1Wxyh# zI_>9Z`1P}Q=xbhv%ox?z43RckqE|!tVCa1q>NK#~y6W#qVhdRYB82RDJRW8V0ay^> z;)U={7vPI?A@&y_Uva1rLDo3FA&hVtMhfN6D{kchNb$KSm$7xIzm>0bU^7^O9Nb2N zx7ybkk4u4zmAbnv^`7p~u=#G-{6olmqXy2_p+6K<!7-D6D+~E;vI?RhBacsIxfq2T zr3)DKHz>N{A~?wdQPF3wUivIi+C}{JhDr~I$qukQ1WlxknR50B9H|O|HM2`_nx?)! z`q}5d%KvhT4bHH|!F@v~&ZO_R4Zi`?>Sn=-d*qIk_!ig?#?x0_uJ4^hSc049c55~8 zA>nwG!yuk#Lc1{qDb<8Ldp*V%yZTq7H~0P$*e2S0iFV#}@uqwfn`zMnn3)*BfEC-z zc?)>PLI3&6v5ROuc%PnSq9Vjxh21A~_laOd6VQx3E(lzP+lc6u=?ysN5-a?9Zb_nj zgK~?*T1!kK4Tp(1O+F+qKs7DVnOLA;NTf`h$-8i;<UZ*Qb=vVgL>qVysAlxC-Jh`g zbz*c;8sS~c)|<Q_Gf%NrKYF?_h#Tw>#GPB)cseEvhJV4${Ea(NXVS%ro&3XnAZW5B z4hD4-;*g7w#_h@l9ywFa6T)E)<-2&yP?X0-(BB6Uwf{%xxB05Md8Fkh#K5)1BewyB zGm|S4H!3N>^m`8=_P22lokDw$Lp&+FoJU5RyYwrRg!A5l!db5Q0?shsyFc|En{Oz( zl-z=^P=p!xgR{YN5GlpqPf%?Jz9Sc6TLHr+5QLUdM9_q+^MGF+DM`2cUw&-0`=9P- zyL-=O1UiVj3M`F=g@BFJL(*QmU4J0<9P&qpKiiVSJO+wHm;D~=)Q_e404u%65L5FP zvjQ+C;d&YQC!#$UKkzr4#H!TOs{%M_XcX&DMABxX5>8ESE*};;!hTB*HhG<!G9f~M zG(?ffbd#2^k@L#;!AF6!8`OL(e!22}Twv{EXN8{e{BU}_GVyOR-;6-r7L`%7Mes5R zZYKROFd<lgw1qKlm_zu?V86mp!YF`WP3?jQR~8~RXyt~>_?jM&%_?OKo{ufYZHSjs z?&eVG>!Cz@u{)Hw*)1t%Z42VJ<-}W{ic;xR?vD_%2)$`rzALo>bcrtFIA=fVci6uW z<{;u{Wu*p!6{mQNyib;o4L;^aTX|q%m8)!z_3IU&c2FiHtsT+(QOf(pUr^pI%U%@x zW8M_!{&U2C#$E(<gv=*xw~_w&cX4z)w(P=9{`gchebuKGdVFm1#1<p;t3=l%88SgC z62k}`hV2D{JH&MiHx6-7^ahRnvhJSlmf@;`MjQ`yUC2`5Q{T?!r;NS(=d>TkNByPk zKjTld-)=nn@#tmKr*||gZEn&xv~+gg!OrOLa_MHogHCy~JJsjlha(&h>RpiSpk)yM zhKGcd-&06a^gUTOF%eX`6qz_YjoI=9^tYeojY!<B!$YXzav2={NyS5`hC3!41G5GD z7|$DjV8Ql0IasluFj<K{+~-Grm!GFT;EyWkZjNw&G5304Y0k^FT={Vt4t?q;0|D^0 z2P%n+H-!b(jdzON^cVLb8_TRQn_bCnOkd<DMX&6NB35k1%pz8(LY=@zy|)HR45%3L ziW4<(c`2sZ0`6|`B5WAuBIaGi==1?x3QB|<0NN}=*G5M!_&$YwRV&!jz)5$bqq}Ob z7BU3~gv&ySw+8*e6Vya3o6yR<G-R)TqqLdiTR+7lqJ+eUYS4$u{U=fJp(^<(t=d2> zB-0eM6EaFRAbka0<_rz{_ueB+#A&9+e30}IGXG&cE{J=?%RvH$XSd?wS~UwIuz*Ru z{J{jC03+e#n^LFaJgi+Xlo{zBUDb;H4f>ki<K2xNZ4qqM#Qb$rYwCAuzKvHcV#hzt zjT>IJ06i6b2VL;U8A9A%7TX1RL%BqR4SpAafyXa4K8Ac6kbG(K-|$w=-#jet(i-#H zVnonuvF`(p^_{2rT0ZIdLrvM7#2xkr=5Iv#a~r4iLp>6vhd_y=o7_f?9$)tWdTlMK zsUJRy62gy=wjw&AN15jlSIGC`cR;%el?K3he;~Tk4HYi6-JZYLp65wwW8>SOmKjQ> zC)f~bYc_v`0p#({!;_3=oW3u$Z>VKmR`i{ccv~Uys={X1Ol*&Rz|Dg{t1y|)_dv#Z z*=k(<*0sdCmdO>1S0S?s6cCw7&v47Yhs{b46hy)g<QXM!k@#H31(@5=lECQAq}M|H z7=RCB^{+Lt!-#_~#Jb%8xsU<+Dj{4hl9s&s4T~-!MQNQnKHoZyCWHgrBEJzoNX~d7 zehu4jURy*y#6BzGLpa<~jgQPOV*)es5~bIIqo(WTiyP=N8!1nb|Df)c9|bX~&DCf% z4ctZ4Df@_#@=@`?rS_%er~Cwf1i3vcQ<;bc*^QuFpED6fFEg;rX9(SVV`MpgrUNsX z=qfyl=i{Qn%RYc>!GLIANywZo6ESH9^P2?xX8i(yRX<w_tpTO-=bPBv)G$!upzpt+ zea{`8uzf!S3;iE&-&GU0?|m2$|Gn)S*FRyO_W;o^vhg9P_J_$=_%Q<#9fXHXYE@u1 z%nou0vh{=K*vn0`6w~QTqkDJ&CRpXlKzv5=?$_a`6B^8-K+bz$WGFlKk5gFFq2Gnw zD0Dbv#@jl(3r8G8U&C}GwH&0S<|FxH!br0L%FwNF6-WN`e3zcT)uboxRfmSQkdZHb zU4{2ia?ikd3J@xO_FXYvylbJ&x@bM%P`r#Qc^DQ1kBZz<;-rkdD<P?aS;m~b3D$$W zkN=8ukZ!hmHt6h#b^aaVxv-&)XWWAH8Qi6t+~o#`6@~#Pmrj;pK=J271a^huXJYPB zdwb64JD6waw5dIM{HuK|9KAr87bae;Aq3%y3F`6K_wWKu4w==^C7$3D+@)Yr&MnE$ z<Hoj==_6BSvgAJ3_(!ZmP&vg+b>=@Z8t<gdrGO^$kd@<_#<w;9C~QkuXqJ+p6W<L= z+CNl`^O>U?i4Yv+jPpC}l_PbYB6<!{`!i0~;dmDs@G6eks})2b(t?5*9lZ`h*f>?h zu8OrF9Qraxigf1Va9~Wv>`1_H1g&{)LlLX6cl)H5J8r=^bcM{@IIYyOjTU0xun=1q z!Fkb3LDCYoU1N57L$--ZlWDSnAF$|!TjTLv$ct&aRZyk$7brnme*geMr)s$z|B2+= zkvz3MXMTsJ$vI&a`~+fZ!drIsj_AvN^HlK@z}Xf(3COYC(U&I?Hg-ON7YrV{=xe_I zL7VEd7+V8t7e_|(ZU0~d-pQlAUx9&-an$-(O0SO^y*y}cb>K1DEViTK7)~S_S{<%o zq;gE)*mno&#aW3sTpE)|VKL6veS5U72zU!T=0_4LMIP=lFh0(`D4^@X)TuHK0oh<$ zg_8iHTYNZ)&-Pzn`yWs0L!ee6PPm2vN}W;ivKVY`L|QAC@|S22z9}rj3_>b)MNFUi z`z-y0`u%<&RrC}wp272J?F6xCVVph%JL0#%SH_5@N(SA0D>O2=aVt`HUs7dG3afx8 z2#yICX8M2tAdjwr(ief5|G@WYJ%Qgf<O?Y^^($xlsLG{Hn*4{!vxvIL@2SOL$FH~B zRPpR`L`T`w4)if**_G(P{_@I&(t!<S$Qk|PNi!)mar_WaulOgjC4OTqBF2PO5Lgh> z5s1ql_%OeDKXR#pS!NDBjmPiM69OjeUl>io@}RYa{Mk?JMqZ5I;BfrYHr=^*xwj$G z?MwXCPrO|eUr^}Y9&ir_DxTBsc>(nXuw^_Def9mo8ju}C)jhufaJ^6;MJ!tjN9>=F zv%$nNY{)!#Jb?W^C}8<!9Q^1rN2<6jJ6wEjm{D75y%l^fLf67gr4NX~sp*mL0Dq_m zV%5$eu?)7D018V~N-ajl?z?N6E3!n}cq2MgxhP(TJz6~;=~S@dM9=4wpAqJ#7`PgD z11P*q%EbW)vY*OPZkb)K7b%10U7*01MjrnfLR!(X<a^LuklSCGD7-Q;@3Yu*hyKXQ zai)kNw2od%p8g)&i44*Y9#?Tg;@VQNY7#R}mmY`n@9^VycJw5L(RlMGwDOF}D8k(_ zd+Jz$?l=d3T8gUhBVzdeCl2HZnkS`fOdvzXr_Ajc@|;i@^W0+W2m$Nk$Zk063o#3U zOd&4RxWw<mSnxRG6ZSJE+eq1siD_2~fas@OxvFpFG#BG??(*Y3z8F6{hYkq7HU!Bt z{l$9M9p~UrBb6D7jvFz5B8B|44)}@tNw^bvP_5C!nG3%txRBT{bnlQVP%?(9(hn!v zc{sXaTjezR)|3qi+q+U9Il5Njl5sZE7B6CY9qTV*FO8K)x$D1s$n~@{;5WuR`bCNV zt<%<hm+`+9Z!N=M;fJYC(eody1wdO@1+Hr@LaadKCj6wzy7{ga^JBQ=wU~8zxEA1A zfa@gus1{C>M}!6dlf+*JHk(+OwG2R&h&&jMuan7{I4Iu}jz2hvmH|iFy6qOPsI5~9 zF;zua@`8Rj2(6J@Z^fL#f-)yxY>}_>U>%iPcrZ$6j9PvW6{Ha7Mnd;YZ9z+c^Nb;- z-bN0vkL;`b8i1w8P#>{ea&Hr_&kGU5i<qU2w2EhOS}`1SvZxR?!&GOvu4s8UP{$^a z;iblBmBZ*G`zMUzOYJhy|4Ts>8_ExZQ;u7DN6ve=SdruhjIhYcha5-n;;Um`@SK%4 zpsS|hHREjT;R#f{vGRY(lA!#+r)}58!&u;eN=|1j7P(1~m}ISu&UWXt*!hBZ9`!*# z1*!T{A$R<~h)}#u;PkMt<~KyB$bl(WL1WPF`!NO)wqW4bbUUS*MW(U;oA=O=AqFFD z*?mAqF^eJ&;tLz7%QNwJGKsGxqjm+>{1FXvh0Xokea!_o9&5%O{1r!5UY=dv-Nl!- zz^@0k_$nPvh-PO`%%h_Vyc~e!wP-Sa?-V~H>ct=1u|NaH(P>aG&iX;8L5-Ft4yeF# z$1hl1SJ-@0P^{xTf>j8d-~lH2Ux8^oghr{QyIsdYWD+fT%~f~*j=d-X(_YGobu%y7 zfc{we^79tI|9eLNNGl&)VYx)OpTZM`PpDQXeG<}uF3H~p@H2d5#}-E3v<wFz1@z$n zJ443AE&EQ8a2>*%h66rA0_HR5Tlt>MV9RD<NG%UH43|iuf*d3h=7u{`h=Oi5iajqJ zYDQ7?MjwRU@9meEg9>HB%j6F={?;N6J3rDOe-ZVmL5ko!{JErjkVRP`MSiH>vOi(s z^Di9shv;)47+VjqgSTMnQGUvK<B{odP>IsoN<LhlK>a+oWM?>jwPd6db5kgOFXdkd zo=xSmf<lYa{f0C17KRP5&9TFgN<E$*;`!T^@Io~rZnF|*9;P?S!&zbTrLc(~&;YS2 zn+?JB=N22E0es}E{g^XQOjY?lm^xa22n19Eqa^9a4TPN<|4`!sy#{An6VKQ{0Lm8% zW~q#kZd5ZA-L+^>buIk0tReFEf%pPlZ`{d^rslcZ1Lguf^|zG&&fn*T{yu745A`j8 zq1Hq3Ul+62II;SY8uXyHd|#-dB$V)bBGXdEc6-EoTG4vkI5WE0UGeV`{vMLGp<;9S zKG<iCyM-k1JAG)Jv=u+lu<N)jXP{uCXi(m808EC>9qx*^6RSp7-l#V|7fuvBgV4}X zy>Ty2pOjnv&{rQC<-+=`*Mro$S%|=)O`eLk4cOHvs^X={9|#BRCi7BP#oLjQP=z{= zG5~q6<HSf1^v9zpHq+A3aDVXwEEb>COF8}t*)QYeiMhe_57KA+7off)<ZDO+$9gJ$ zLK;!TtG>WrCV`aT3UGSeP&5-`Hn<cPEta$pd#jx6nH9t$YXuRi5`}`&_50X5t{<kh zWb_$({cx*=7km8>28N`kzA-}i10zGu&)~WV1{zM-53pusT!!UD84Ep83(|O5@w5(_ zA+JEIXp;I>=ndo<b}zh;g&*uhT~?w!G6_5GE`ULH)+h}<KVp{%(bnP&Z~4I>gzrBW zIfPyP<%50Kxv)*oUbn`|GdSZcy`l@J;iXRJ6(@f(00d&<&9~)rPN%<!M>P)5_7E3H zp<_!Bgi05t@#P-cLtH;rx0bv_`IfhVsb_nL@iL^c>qlZfrRg~i9pq-=R-6;erQSUl ze=`pWEPPg5^_-RZ1MADA_aQB_@b|$GOp>lw&f;N}a9$1Q`1S78fz0^X8=!FhEY?2p zOLeEE&KJEbwhv@soW_$xKq7(Br-7wIjIhCR@Tp^Id0_3Qg0D6(AG?2WIH{avD?gBU zKF`_wtkRPpQo`{@XjMHxZy2E=bih8NMjL@G@WoQodm*Iu#i#unQ66>6gF<C%9QzAT z;swCH_P^PC7x1{Ma({SFlD2`=%m5XFfE_Sus-+|lp|J=v?WEaLCT*ZCl#8TkE^Q=D zLNe(^3QbK?GEP%+1Qitz^~mv5Ma};lELAv=w9pG8hKpK(bBO#A8_K1~rRCc1_gm{- zGb_6pQI6m9eBbk&^*l3s@85dYyViQwyWVx(Yj=;Z1fX4}byM1f0U=av;0&vM!`U&n zf;5Sb<n>)vfUha{#eRdYso_nR4dgJZy1?IaJMMHkyI%J3b9#N(9>&|9tFRu!cLE_! zRA&II528go3}VRr8e}FLdBPEqFQI>da-H>EzLJOI81Vn5gELEbzUrHfuj7g+-b<&N znXj>7{Yp>8aD@F=nq8cqH0xvj?&UN>Dg}?OetG*D;K~J%PF#@=yeiRmUC>SZ!8%bA z$J?n7+xdIG!l23Pid7vOjcZd5JK`pP&J#sqJjxYaqmPa*f|t@Kbpn;YJHmkcrrAqq zN(wftan)(CSj<W3XM@qtMG%m5v(d1V&NR#TY?+=s%pQH69l6~->ZL`bd-N&QvAb>s zZT^o?-&)m5;E^h{k#S7Qe-lB2NZ^4VxQVYbrK#`1nDxbbP6r!%#OPgQ1mhEtH%zr) zwP!NE9fuW-EayLRZuqR8MGaB(m_W_20;u%?2dS!F<*EMetB?vD!xT$42k^3BU(SOx z0&Ic<2d1RzgL*x17K$`pj?J>CVKVXM%H##n<a&MH4s6PQ;c(W1DBcJyxMu<w_%}C0 z(rVFC_fwMPQ^507DPK%>pE?!mK+Zj!TtTm*2p8;+DnlTBh8borF<h0f>P_Qam?`Vw zEApKEjV1W;?q_3(U^JOih!Y`t?f`?WIq^xc#Lrn8Sl{{x4w{H2F2(j)E)cUB<LjCJ z?rC^J!Af7DsN)Q#Z3p%sp?dwcAW=R=Eg+%`>F?oW3X)wErGAj-G3xM&k1&F)_;H+e z79H|;PgZQ-OwaBXjeZH*fOQ{}KeZDo#?KlfchhCs^oY`7H!+0tO@|=+F*}`{?K0tC zpwfjCbA$fwr;rd#LsNHRiED9!n(mY;TaA6XOprQ%E73=iw7#Mt*YkMjdthLs^cIto z9P6)9U*kFwW(QwI&5Zhcj#EW&B6jYL{shT~G8HMUj`po8HU*+|2ef|z!RYt#7fs%v z>!KFa=rbB)HSl-;84s)qs0Er+@<byM#!{iYXJZthS|@BeR%MK~ory=ZE7Ftk(^V_a z<okQBOot0b6LS%Mb``E`)cUTQ=wtO7<v}2*|N1=PCt$_j!&Jm;Xslu8HjY53vE-M~ zZmUCo@7ssxBf|$KHT3H;N!~*f%jV-191pOE)NIOMuuamOr8qfe3%uxTW2pKci||Gc ztR&=+vXXoQBzeyusfS)Z77INRm;Qu=bx0EiVaLJZ@XS2xh$b%CqWM4*b0s`gBXVQ} z?O(b-lG;DZj;Fsn!I<>&6njS3W3A>Opk!4XtMrMgc*!8TiSscpfT{j^Sbcu~af$i< z<AS5U{}^$3;v2Gq8`MB;?;#T;h!bcxL*BIh-j0s+3)F%Jzx#;KU;UDHnV-n|MMHo1 zGS&R)L$Gm3Z5I};^bT3n-Y5z(sSY$w?7+C@1z*o&iEnlS^!LobKh8#uB-c;j;uehw zMrV=2nd%1pL$#NsIKuuSUn57o3-J!4tt0q?B}SLXbsg4v(Tslv<KqIcPf=t*we9CX zvjcIw<8R)N>NqR>=0qPqsWB%=F`(zH+8sG;T40=qjyi<{ht^Et`5-7TBmq+ltAC*0 zc8BsI4KBV^9rX8bvjvlb&Oh>k@h%U=OU8GgxB7e04S>nnu-F~XD7J2LfE!y-R&j7z zS6GB9tU{^>clTH5t0b`dD>QxTHt{=9p=hw&H>U5=NnbUqgAevmkA`Kw2jjo!A<Xxf zj}7AF;3ABN>)h09ecgro!5we*4ZVy`7WRXn?|X<V?-<6V3IR7EM$vI44!pxBz!tg5 zTU5Bz%Sry8Qzx+)Z!0{^TqW-;M1zKkd57Af6T@>rJ>OMWpsx28264siXeI|eNXQ@K zN!3M<|4aDINm(7OcyqIW&5HWgFiU-=UUyUSRMx9B-u}rWNS4|^{T|}&I()Ie`*n4* z*sqSOK#Pr&zHn--l!DoEjgl=LJr|{x?r%o%l^@^9Ja9<e^`gK|9z=@*lR8Cx9!m5o zoScL+A)KwKzbyOi=MW!S(IQn-f3I?X(wkW@=m+pV+EyGf&$*p&azQZ$r<gk99%hVC zp~6q@Z+uE-hD!ZCd?l%K9kPt>8d4W>H@E=@A(?um^rfn?QTYIqQp`B@OsAEFe+Xy( z4?qxZVhxn&V(h01<+8j~w;L&FM03tMkJ57!;iCA3CHli}T8cQ4Ntt2t!Q7i`3E1DW zH|2#yx$?nrY^n*MAw2`LuKXTj1E#}z^AX3^U`M{e65sq9ym-#j|Aicqt7meGY#(kB zIE20|4#u8<kyQ}8p$}lp7y|CXbnW%`-l2%_1z$cS`A~*V`7qA)<2_DY^531?fG-|C za_A2Y32c&(a^V|5GcoPu@1Bi9;OPkF)GB}X8_+WUwqYEEfu;#uy55F<u$5KFNw^VF zbpH^P=c6mK6T1(feCptr(QSC>52K4w*;ijs*|+Gyg37Wd{9U&Lj`YTPlF9Rxi6;)M zRC+vqQQz=~R8e<dg*ebd_yxDB-H#u#j`gdyz-vG7e{;zHwH->SXFl37=?j!@{9NjH z&q;_3JHc}+@&4MzEl6=Rc>#t}=)}kOqrwC_Zsgq5-UGeq@fy@VRnY#PCWKMyr{33p zlKp^D=$Fa(0K8Si_;9PrhkD-yobfJ^?h0InkFZwY_%a^z+t;m*s&xA{6%Hbe=p=$4 z&$?j;q%v8rEVv6F%(-b@qgg6Yuh-%fV49~OXDm?fyRmrs93*lN62QIgInl273;o^y zg{RrcQXY8fbiJI7rQKD(EqMu1%ucQ=twMYL#Jps8d=S2vq3FZ~d12#?GgFyS*bCR~ zyG!{XX)ZPrvLm2$8)l+oLa6(t4z3FH%}d@A4<Lw~GyIB+ZWh+fSrNX4bq3Zi*RziZ zZAKX1SWxqz_&)F`cM)*^Q)v)UjP|M%$)InvF-!5Fa;7#Ljh+fh(O0+cHYK|-Cf@t5 zar@=O1b?bQ)<+enZhP5*j*$q~?s{JOB_zdDh(|AiJ|K~nbyGHN+1t=b|28P)=uZ(f zMX(f^`(-DBSv8{PWt`F0d9U(w{N3M$ZwU@r-H*YVF3bJjMSVt<8GRIlO0z~o<cB@; z__+2c54Fav|9&izyMfV4JW8ho9TaVTe9(bV0E~GpkZX{eGVxp_&#JZG9g4H;{oOT4 zyvx@pzsMW3qZo2!jTXZMA*nx7G(C%HC+{u%cl}gBd2Z`2tifY9%Kkh&pMSdl#<Mil z?V9Rz^^~(rKb;_9{sWKxZMPKOg{z(Q^lRd`6mEkbU%|Vj@aMQ2dY13p--?;N_4u%J zC*BO{M7sC4LG?zzt4baE3=10^{TecG=*fnJvX7(B;Yn$pdR0z;#ACD+1vqBDDAjKN z)%`jfUfhZ}_2`icHrP^jmj1qV6o>yp?WfDG!B=D}0(vP}$5+u~Ab<r2d>ALf`73yE zIQ9V8sSiU2W1Q7VmstoNN0$|PXjDN~^r|=pk=T&%3RJ(CE7K|x`k?cP=98@n#v8AK zLixbd?2NC#Ad_P_*%+JNOT(e>orRs`jdZSI-=P-|>^t<U>s_h_$1wT2g+v=3*oq4~ zrQNtvyRk(=?VUSt7uypKV>T=e96`CL_ZrjvBDI8Twg6*NNcEib6uEx03tb?5e;TtF zI7=Gh#n=V2NRm0ed>@0|$ioXkC9P}Y16lD(<TwT+jdNg-a^xMy9k5Hff_rXS*)AbB z_ZD^{k@7wmdOSM4S}kC;B4BY~P_=_9R%|r_xuf3oXLPsS$2Cu+Br&CM|FzhQqU?4o zIi;{;ga7Ww(49tY@ptclmf{s6^qtOP-$`xRa1RZ$E5~6sUf$b(VJ}MSz>I!(!@9yi zN!8_x&_7_PSy*53cPDX+S9&J<kj)}Y1x)s19|e5vM6rZ9-bA|mJr204)hq6f+IP1} z7>>+k&%qmvTMJY$)vvI9u|{D0IA&F;3r3=I^y!=Iau;Cg8k^rvjCLKs?8!^aqYs;f znJb7G+Kai0Q+c3rjFQ6(u}XscL<ANRjw5q<om1-z>q;!9K9Iw3idb)|LYbdh$h;LH zA+ZFSO6<xsCB?F)zrW{L+NE_6ba*=>RDYF;S9JhPQO5icG|04v{`tS&e;Q2W=;NsK zR#pm-6?Ah{Rvdp~Ef|g#BR|{O?vMTe#Nb~H!^la9(G%fg&-bS6h0I@%sP!I9u8+~@ zePD%t0*yhC&2=Z9*?jjB=Z7yLSP@h>fp!g_#b!5tE4@+m*sWw$WbRlM2i5hi!aeGG zZ{aYmP-?~^<HK0rovNa`$xS+v<Sm7r@QxvJR^;&ZMGF^Hsj=pCY;iEAp<}%Z!dpRr zaV+`)?_$<PfBXm~x(+Ic)UrXqK1kQ!&2B%YWy9O);qN}E9^d5W#L$I~P(QhnbQ$(Z z;Z|)NFI0Mh9y^*8d{&C#M!CBrWj`{fH{RUP9!oH>sZ~85xdjDL=a3?wOtzZJ8o_Ia z7qTBDY3KY{c);f#!U^whABp+P-;R~Nh4=VC&!Hc>eI~tQ61y7ZO%tjTYs8WWj8+3T z_Kt7O6=9O@d+5)qo)<O*Vb^sGuQY&Z(Sfr}zqqfia2?e#p(_MMvW_c_*jM_XZ+>4> z(ZpEUd+{aFWNB)>MP(0CTo)fQr7+6<!n9BGlZAY7!LUn_`nyj;!(cK#dKzS_`gdw& zG1}LGiGTE@ASI=3Divspn2_6aR&dhcu8_~SE0pEz3T5M$gWm+?@Q>gd?JIu|-H>0< z3bOZz2_@`(l2NK|k)S6b_~MO^2XM<dQBX!;ia}mA`Wzl5J$xs#45t$MH&=m({j^ZH zH%A?A7s9Kfx#8Z(c^JNP5QYOS`GmCVr-H7xCJ?{}>%WDtZW&CyfAcZCMGnKea?a`u z_r}ihg?B~H%5wOhjYKfQzK)4}%u(P3rOY9B7E)o<+kevzrnqnV*)+vf{+oDOU(82Y zqnS68v@8^KQ1Q+7Ti^|ktGFc~Hmi=-e<IRxQL^-T1d%FD@{X0XkC2rHMe^Ld=kNKr zQZ%nGcCRR32fjmZ<ziL)+mQeJ=plB!m(3StXCYpH58u&neQG-9Wo5TSzN(nt7lmFo z`b!!;n0hLqUG{iS1u6KIGKq&V%k=`YkG#Q><26`THC2)K&%sKkYVFpk+KfdL1c`!S zj$sHs-Lya|Yolw)F)_-<w~ETQB33r)zo{Pj7(;OtqmcZaC<?zX+uyf<T1o|AZ7bG> zJf_nC!M_5vILQ<})#9WvYH?CpE$El+_FbG+vUmSE*wb!m4XlJZ3s|l9vv#sFj{Ze; zm$h|+br^jWeH5+PP=>L}JbEEg$fjzY^vjV=olk6+Q3Cubn5kte^u$cDBU+Zczh@;p zF`mj<{|PH^C3`_HZ?<g2At_8`1cblL0dF-i%4tAGgvz;F2R!f~?3JFMIfqkw(FB+b zsg)5m8HbN^#S#x;FE~^XokrQDu9$GT>b0Hysqka=v&%O2@j`g^TP6-4m`MAR81Ab& za{7*rLwd)1YP}hg!hBx@y*6w@(-9}KQEk;$vnvt5*+2a8^!{N?*`GY<Ci1#QLh1KH z_NslvgbxjOjZ8HAaKZmq<R437X<aYf<3)0{5#;FD(7*c-^sn)ZKQs$ih{X<P%o)S9 z<M04IKgQ1?^7~-v4J;x0;<-q!#k_)8_isk|Wc3&R-+so7?|Pmx_&+@F?r%QNPUVMr z{9iXl0<3_xL*qHdDV?$qR(jiE+&{*##kC#gdB?ciF;D4-%Udp#hcngn-}*nMt`*1R ztE(@lIVEq_DVq6^PWfm4q=S94O<!YW`uYR4YYCsf(ZQW*l8~=Uh9tNn!JT#;%#q;E zY4R+=9g`1}e<LR&ziaB-nj4#!JIkBawyrp{uCX@mw6?Uz+iTkzTd{Ybr8#~k-_dp2 z8*mq|S=LnV#N%hyuB>Tocj9dw_3^c>K;-7k`sU@0&GpWVw)*y#j<(wRvmA3bqXBRD zIy1tptxffjmJaYa%lV`;quL>Z(zBh~#yWLd;?y=YI13gnTHrVpbLM<LSQM#W)>zXV zES+)QjI+-you+RbHD8Xr`o4UL<69H(oice+Za*>=045@I)CdXB#FW**mB&%hktU+< z97h$wysn&$*|GfKrmU<h@^e*~I`RLJTnlhrBlmoF-U;Uiy0TV++HvT|z6zb<J3l|z zmAx@54&PE>1Iov7*77<#KhT#oJHKF4b~rz{F(;B=)HNZJUz}B+Uj!hWUjTyH`MFHD zGP<~${1ST?Ke}c5qSDH_J-UC>7lo--3eS&Om|1Xn)xu&D*2su)a5{}{s=g?GYW~WD z@r`IYt@T>gw+W^!HvGtUK(GTOzC1s$F>8K)L09(0`Jt>Y<rjo^<_E&N@^fSPAqov7 zlo{6?=&t79g8aaytVn*rM#`)!XYEde+66H^oS*9w*qF^v;5dx)R8jH=7;bD_z3I4g zT3w<2HfiC4_;Kc%PRVjf*TjtzHs$m|H;OlBWqk$ZN!{rbnqCq{s0Uf|kIm1Wo7a+` zTL@^2_<x*vnAbIF<HRfTmu#BQm$NzhrmU>PN@qy7N9cZ!d(v&1P?I0pI8o@X1j~7O zq&p~dQ!IW}hTn3KMe-cd6^Nbqsp7YBLf6Dg^NX4M%~>^|s>lP*^2N|YxzFp1lG`G| zo+UP47sXNpnw_@{|8w(N@$Z5G!*>d;u|LFa5$qa<hhtf66^!fttS=k0px#~C75Twz zpAUtBa#ykl!utuKMb&5gs{X7%ob&SLD;n0Z!$NZ&X;l5|P=1VmN)AECxkO)--W3V9 zkeG@eI@FaN$q%+4n_n<TMepXhsg#h<RTAcS;X|xdFw;&D>lW;zq=OCwak*8nT4HIN zvPOyVlKfoi&b>nOMbfA|WJQ&LWBIv3Ku?SRt@Kax$Z7x)idoqjd<R}RWryam(m<qN z%+F=LIaU1nNTKp<WWEl01^|&q^T4eDiH@**b(t=ba6^i-##RVs+LIvs)(NI;$h@uz z8*?s(j%D{{W!-`lhVxkNTZAUea=%j5k7st~=g#Nd++%S!JFf-*N|zoM+6^G3E5vU^ zutNl{qJi9)qoSZBBYDb3bFX!-6v*k6nbfnTH)ZLXk-f|Z>S$ip23#ugXhUZT{k6Dv zvX<ospjtuPRtbI!aaAU03$iMXRl>R`PsuzkG##X&y}lZ3=W4%x@mp>D7ON;#UhWjX zODKzZ8z*j>uoRVRlGO1RKp4qmUY-!TyU1gHelbfm>k4?gc?<DhZvLt8)W00lHy}M6 zu>!#=6{4}}f_*};Ag&?7zCvssjVJ6|SI!M8F@UJ2bwabAG$uW>ReDsuy2by8+F#Yz ztO)$mrosur?@pn6NYkl&HLHl$<9~J@X@-R+P8wxTY1B-XwOxK)XjIvWeSk8d*~qJ+ zOsF>nxYFIhKe1sneBr#T%W#S2E!6foBy_hOO?NTqDo9rZzZF8agmg+TP|vbLS}!W{ zkkUEI{*d+-p-tCo(uOtdT++IVwiL93LR*b{_6Ihh{+hOpd15t17oa>3RTsCYrCJ7u zC0q@|i41h1DG?}npLz^E9VZhF%Qhr5OpBIxy~;LoQw(US_+Lc-xwPBLZX!dp8>YRk z$g9ZD-MI@SLHur!Fg>_8`mz#S%k#336-~2UXl^IXyiHkMIjCnFv$J5CSe29xKP@z$ zCJh|*`k-Ko6{4}6WA%fmg>w}i3k1vY;h~ECETmidSz(%y3e?-Lqo1`C9j#sHX*~=% z|C)V>Vq;>UCq;8S-ccmYaq(Lt{2#_W%k3s)tzdKZ?EGL~&g}f6P3*^QoH!?cX4j-h zepOcgvH3IS<QF4mP=Hc*?812}PY(#MbIA*i{PzjgN&wW-PegmQF-N7Jb_Zsu2nbX| z^P2<RDw>lYL{>GR+lWFY8jkgXWh^F1l~qXmZl>S7jX7Nt#D=3;WP?DN*9nazNnvXQ zGyMkAZ4&Gh@`9s&Z4qoXfoOh!wb{*^tMq>gph59h?c~+@#p~che4pT|4PTmH+zMQk zzu?!C9~@<sGg;j_r?IU-#*ZqCFv}v$vZ%-(_MtO16NslQ=IOjv39m-YQpu=Ju&u<> z?J%uAn_)%MD>VN>8mW)$wN>P)uA)l&okDXWY2cWjLBTdEL}O0~Hd8S6clHbRII$~K zJNoZzH(91RA0ddXx%`{gHE~nUmFPQ8U|;WABmp_odN5t+=8<lGe(MVO<+tkeyW)2X z{lH`6gj9bqs~zza0d5kSC}|*P>4!rDyK=5GmI_|e@w-)Mi&!bq)^$y~GC$Q%&Hhf7 zQiDb%AeDzbLVpp+Q}z`mCID55(PZMvG#nJVAFy7}+cbfEQ~hK%Bayu9GGBf!({QSE zR!R{w;?$TbZ?Rui(P#&a>D|1tZPe_f9v`CEM1hmnhMG%1{iwr||pp0#c~T<O6c ziQ67OJuMjXO{er<Fw-Xu0?+Z&7u_rViSB88%MmQ9Jbpz&qwKB9TRH7jIqg+>%3eiS zN9Mv_b&QuW#@{M@#0;x6bqi+FM7moAlkS_UBX<h+b@)Ta()~s10csM%4GWE2lnr@K z9@-eLyeoSFjG$^LFbHAY$YDUZ&+-qd(v{Vq@*TuuQ2Z|R>OhCm0Tn(XG?bH(A4e19 zy;S^^ZC33*NAkKX)`{QA3<t-@e!)Je5RKh24yHas2AUZb-NQns#x%hBIO4(BPQNbL zbqtF%rP}0TWJ<;|7v+6XcOKBkM>C`9*!1HVAk`<*{mOYt4qw7Qn_X2-i-hiF%B*~2 z&gJ>7T@zHNn=MDV8i%g=8+g$+Z4tUVaSz$rak7OeXPngUJwo>j(v8Uzd%o=YAR{Pm z(!MUV+-3_s!kD^}{rrpbtJI)+j^Rr&1w|=8g?l<;r5=ntUBUjA_~SzR2*=`AaBK}5 zq{r6Fj(z0U5AT9uW=DbT*cPFkg?s2`unpS7G;9}Kic--&EZEsX+X!0ncusJo7mM<P z%S1Qd6<qb_m2TE3-3%g3!3kvIII6vnHY<cVt=l0S3}aNgdA`t`^TGD6B7e|#&A8SM ztxGZD=@nkzVx%f9$SgYdEVf7<f^vXWkyoXWio77m?v*hA#4zcx2d5WQn?>1-2#s8n z>|U3LOBfC=h+i%R1()ET@Itf17J=E-`Y$w3D;l<Oi*>10VD{<zpv0^Q>--|2i;+(3 z>GdM>)(n2s^-bb;7sDyNygJ?HWtAg>IjZj5C3JiL3LVq&w9w5Vozxv#pCBF&i{CK) zlr3Ed9mLpMw}C3Zr>Y4F$9a_XWD)C$t|qOjn*0mW6IJC95xQQ@OU-{4LsvNG!Z`uv zZH3U3=sIWjF|xi5I@*{Z==z1Ok-U^1ROGj2Ezre|`b%DS3C%5}xlE^OGv?Jom=U9e z;oK7Gp8gx@a->7`*Z2j&Z@SRkfqTeI<&$-y2XWF6QKVHuQ$m{g`Bkh@D*uA7)cJ=j zm*y`u^KMyez_eZL7dk!0r_7gHI?xNcxq0jtZ@1$qXPd=gX+#ZRX^-}ae=g%wa=Zu~ z{_jDK7y?$P3Z-fm)0T4*{@`xqpX$3+>WRt_CMqkz76J{zYr4>>`i6ECBmIq8sG5j2 zi=#%yTO~BVOXU-`^`@+g^Otg(A}eLH8SgrwRdaer={p7|&<f`D4xzgg_c|{ZbL^~! z%;fWc_|MaEqF$!#X%;0mNA%%Eq5CfFF5>IUxjMg<>Z9}-ItG0vzbULdaMM%#E;aU< z!w)rvqis1~=tR`2oT~&=bKxpaSEkE(6+%N%XcyK9otlS5e`=h0{7{yQ@tHl5kI4s^ z84sk}q&>n<Ou8zsrv+0sHEkcWE<rL_M}kO)b29%>z4@0Oo3sguvX_NIV~^El3Z~i) z1f@J;f>96Xh%Frliwkz9qSAD|f}JZEdE6%0dBi;91<W$AQOA4$y36q1BeW}p_NFXP z|5T0PRR1&rYweELKP^SrfOMeWVcDxW`z5CAv+k3&c{XO<pk&(igN!=kO1LkwEmY;c zG{4o<Z`xF}4dmY{bkE?Pd9uglYW;@u3iqjDd1@3M1nE`@r#2j<%PA|VS*!N=VWC;e zw5vWk=7Q`wh4eT!lHcjezS1|I6m);8KnCG=ar{-jIlCc$AcxkdFNc$&SvMhC)!$<| zMTGW?j92BoHh;ipGM{~n55#PcN!u#44@w=}II$+bKSit77SxznmA}xoaz0b>RsFO@ z`6E76V==s=Se4z~BeWNSly(=(Ckh`C+_uNm%fo`3egW;wWd6ZT<)5@Y!NsZzqQ()^ z#sBm4S2mX;bT{u}#6_=|_$$3O;cL_3oBoPFtLi54S4mUhF9&B`Kemb=<wD0i+$)$F zBM}=O2YYTD?C?0)WLfmJ`31+pN<A3U?h2;ruS$D*oKq)$_LydkhlewxeeFuD3*#DZ z)7KT|uC2bQW=6bzP28DLR}-&sW-M!O=h`sPwib=(E5nw|C~;=gwya!P-wgWZmU#V) ziusGrY>(H}UL%3(S5!B&aWVP>T((1n9_xr?S-9%s0h=s%m5^U7*J*+e$a9-qDJSwN zmMDHC_(g(`2!58})q)3DZ{TS2=sNHtpQVDYRjA`|K8W~;;Ov{wZNX2apLPmvnZ7vx zjw|t2!T(M09fAjQH1L?<`*8I+6P!*-=b+#(;i~wH61^(;1kfp*bs4T$U!0Q#ACSpc zwMGj+j<-qQd5k7B>ET-m#ET_Ew+bI#vXP$gT(%?3El;jNEB-7XILeof`xJ=>D)qBO zuhyN3AG}oKYV3&HCxkw<MB`?h_=@1I9{gC82l;HN)$~v6i*vf*opl;8dQ~R)um_I` z9uzIUOZYSjJ|g&D!Fvp!<r+|ZdfeV5c;_`5ZxnidZc*h|@LL4`o#6dV8Zh{)f)}d> zIK7AAIOr4k^xvrIpAkME7kv0;4XE}2w-Ld&d_&{P_T%;v!CSwkan;u7Ta-II$8p(? zD6PjY+o4rG+GRVYw8#2oJI9U%@U#L^9*=w#i$1G119)8UDi6M1aFZWtsvW+uM?U>R zZ|pnw=@1_j{D7q3cEJOZg$D%xcfm&l|F+=w3a;Kb0oE%xzMr7^OV-r>0{H#G@X6DJ zzZd!!3_T4Uoa(pYngbCtog*Jnu=7)Wai$91FY}G6&4k}{!G{HZR_JF7J}7f_?Sd~7 zJjBKgPSnx)lHdb^t1$%p*Bd^^DRO6lzBo4v9yneDs!xgA9|>M1_$5OBpN7BS3k81y zxI`(4zC304ONT;&IWGxbEVvY>^S<CA!DXoG90wCN9{;JpDd(j^Un{ZC5PVqhFA82^ zaIurAc0_PTBJ30TYXvvs?;*jzBKXo1H6X?2+#-0Z;Kt5>&)_oFQtS2z`ZK`?3pAe% z!v7J$tEB&aNbnJZOGP;y@}hf9@Xn9x=WF%F$%0@hAG6WO*rnqI-y#*1?IqnO1P=z) zqqACHoO2Dm;A$KWzjDL>3{7~K&|e|=px|E@yh-q-pU{9bC(Z`J2LzXkbF<(h0(?dI z+#z^tp$66qzD@9hg8xwPJ%Vrfqy`=m{7J*-QyPd1{;J_4xRGZznoP>G_0yX04xv9$ z@Sqr~+XUzSLedWkF3p}3HuTdpq0!Gpf{zGZBYc_#ulkGz4Bl(_3tlSpcL=U0@3Em@ z@COW^&uXAY@DagB1ixMIR|M~zu7OVr&ZdI-8W4Q3;3o(kI8y@%uG}XC4+^f<kKuEU z;KegE-NX9g!~}Pwf}Sh*Rf2~EZx#GYf)5BT#qWGY@Dagp7W!KS?=04Un0x0Zg7*t< z>@)WhFu%is%P`4#Oz?w(&ldhK3mz)bK&{{t(3C2<32yA_X@UpN)`Zs!{n>)|3$E5; z;a6e!h{0|Y`Xzz~XKG-p;46R!<lert2>r0o|A%<?3f^C)0WoLJt%45-zESA!6g(sX z6L!v!;GKd$F7!_bzI2ub4ha6d;8o{qV4mRb3cf{fW5)t0ILb5h1x*+g`cDepFSuGS zh2J@X4@NYhsTU!^1LYc5>!7%;GW2sbuGTzpTP^s(3XQ9^P27H2@GZhv%(U}QhL7My zI+*hV!$)w_K5i2{5YvQL3jKqEw+e3R>F<CahkpKu(DlppC7}<Bp*8&96+9$3nh)iU z&C~L%65QDBQv^RKxL@c$Be*kP18stzFL<ZmpA~$e-~)oI^+Wir5d7c*O(@0VtQR~~ zrEy~iZWg>#aA_u;e-(U-;9~BbUkE<z!G9yT*|;ob$azli;)`{>Qq7!0g136`$&;mC z3x1sr=1dj5_!146_M%kq5y91(AV}r|4@g-1QZ4kui^lR<C3vS8;5#MICc%p@)xa+V z-y--HX^0HIP4K0cYeKaKhudEnK38d6s;l#u;H`q2H2*>HPQlNXct->u6x_&jRB%Tc zK-2CY7Q9$+V>gcZh?a9e2E=NO4RM?%c$GAa-;#J|2!2rTe-b<_c>gjDoFMq6f)5BT z#pBcoj?ZQ(mk|1Eft$Pwq%LbR;OjHsH)g<Z%7A|ZxN1ilbgXkE@*fKBEZ4xW;M)y- zqXv2fe@yVumo%W(p>WG_%Xs;EMd*iDYI>v3PQFf0XS49p7soI7px|nq2Yx}pi(56J z=}%4<y#Ly<d_FJuu;6O_1|;(YA8FI{x9SVFrAvC+HDJnpwctVN=&AJ>kbDjJc=`Rd z&^xO%A2Xi1OYnenkfoYAzY)AuaJBY=pd*40uF-tdS_^L90X|;5J{VY*?@}=&YRv`o zCkx)cPV+fYU(`Mnr4NFecMeL0-nl^&n(=8^@St>@j~70bf`<e*^=OIUBZ7+=!l{xv zouN+6!1R|o1n(5w)a$PZJ|MVh2R9r39{jt42R3N_XX=Z?Juj-=7yMko?-smMaARk7 z3qB~gsIRk6@M0NQsPzr-8Z~&gW~|mPaC=DbR;fVuNxa-E!}Ju3VNh!g@S7s|z*jY) zS~tM$>A=S;_adPWd{@(7s4vbe!K(x>5xhe1e!-0$TPXN|;8TVED#3>ZH|5nJc;KHk zp^@{of`>f#^@6twev0t#5xie;Q@-C8d{A)H-}s^6!ycUbcqq>i558OQgC6`3f;+eC zgc$xW2p;g@?+70B;CaVMISOv{>J-6S1vmYQBEh$K_&5#m>XjW$@s@K-ow<vuEBN|X ztfi)|zO6c3_oa^Zcy(1vV{^RSsjJ82e9PME_Qo&QI}MG^b=4isjkPUx_0_d2YTED~ zn6t8eWlI|f;%)UcE30dpTG~MvujV^q)pae+_0`~mx6EpqQoJN&JIUH=YHRD;+pF7K z+VD`{P`zwzbz>cU;%$w~!C-ZBdu<I~J2OaYTYYm&+sgEFdwoY;OLbdIye6Kes%fi@ z*ECn_H`Y=?HEC;0Q%#%7PQ1FVan-q{%hsNA_Ken=w)l)<ry9f!HMRBCD%R?nx>YsJ zNZ^dd_O_ZCrJCw<D&h55t!V9t3uRsP%6g=@Rw&OSiF&E7y{QG!Kn_}Zs}OZfbG*8} zzNx-8-qL2os3Rz2VJy^=TzE}mtB$YaY{!Ucc?X46!`JAlm)AGfBSsyv<eYJ7+VOH9 zgg0LBI`tY}%4=oKHTBgEjo_<Z_!}Fdsj<0ZO?53wdn~@Hp(gHu>T23nH#S$VXlQS3 z>S!O|v$=lts)lx_rM13U3EM-ZW7Fxwl26OZ4@g&YJ<7hO>6*X7#^WW4>}Y7Ou3ys% z)l2Cn%RZg3>Z*l00et^aR9wsZ>~oxGdu2`SCGx7H6-K3aSw}-deH)AOl9rC<y19*O zct5AUu}N;{Hnp_0$^F7>+v4Y(O@hjfrby$e^j-D*7R^8)2>=?otE_?6tzo!$V{6k| zMW&%>^QwAej7-PUR4-(Os-w@PS_c=k)ik%`BdjYeFQy4`fDW2m+tLPIt8Qs)#PVEC zys@R(LL1ww8=9a8;Ah*BOX{HqDweTmd;L+Q5mpaR@T#_YRLP^@aGgp}dwtugM%2=# zMwlu{@|uoT2NtMyWh)c5s-~$C3yi2;jm?emu}E8oN_(25zOAjL&8Y^L=H*{n*@_Bz z4bvjEaBf?@vMTAi+yJC{S!0~GZ%ide#te?|%#)VKLRbLB5&kJj6S$-vDpC*gQazVi zX96vxZNdYJt#(DVdO|$yYn$UM>S>0nS+0#JLt}C@bJ~;YN^OKR_iJG+#y|^|(a|hb z{F=f<xDW}P1FN1QAW#JzXi`W!xmEzWNM0J2N93vY8XJ^o$cjP|GI^|yHrLgw%0N~s zx-rOnEEp@;gqz#ghFp-)AoH;ZJeG~puxjFlrYiLo^B8y`>+vG>9y5}~7O#3Nlzu`C z4K0S<oJzE2v6|-P9W~1lcVrAc7d1!gKg*FKVrttLG+e5UJ&BEvK=3p<^7v@swX`W| z8$Z%Y$Y^_{zM%%y-R5fh8}XXblp+Y%#v50miA)u4Ow}4FAp*2%Q^gXopUJ|0*7sVg zAs%VgkvrSNh^Dfot^-Yvl)iq_ff}goQ0bM50__-^Lsg$iovszJ#$|0aZOW#}Eeuv$ zJFO4sn7By&vX14|E^=bxS%i1d7vY`q>T>lidNuDES9`o;8DfDcgD6#RMs+_@aH~>t zR<D$rFYH*R^~xy1f{r+vrh3H6rl0*BB*TDnR@7ssf(^8^u4U(_78eUvcEOgNVPK4) zc~;e9c8jVi22<t(wsuU+m(;@`j7^L#4?9|No2`u&663Y|Hsu%-rD}+h0!h@9(OYs1 zOZSML*0ary@B*vd5K2|gR7IYH_EFnM-S1g|UO}bmQ<9CC;W?^XnSNeaU$2CHiF6+; z*e_x^kL{o6{+|^LeJYD9jD+=cNqtRS*iH!n%YRYZS`Tsw>}gGV{am#xB^^sSYsOLF znmE!HKN@a43WLaukR|&-7B5`Eeo8u)6c#J@pbHurpy?hkhURS?XiQ*c&l5ADbkr$v zqflM=)VHa+QH|=wHULd0`g4s<Ry^tON5!=GsB|h~PeN1JQQ_w{);HCu0-Ph|*r*J{ zq8fDxV*sG~RHE#Q*%g5J<na<cU;tn$SNY0iElqXxDzFg6aH2(gg%zsGj2+U9=CXsT zaMFd@->!}{;uH&7xcZgVHBC(|wKN1Q6ZBD<5Cbl4wJX|qZKi#|wf5*9)cpF@WQj|) zF@@ln?ujVQR+nR;u0Rq@o>-k!!r~|*bSD&z1<Xa4-^8LSy6LVkTGRPpKCaankz8Hd zRzK$1JR-e{iwq`}RWycFTUKkRseEOii6~aKtWrrC!vI!PD7>r@WxT$e)r#q-ok<xL z0=BM3Fh0=Q*6v)(p(Y7Txih2V8Dx>8YWnSaWvE3A><pTMu0tPGV3g<BCls<Og&6y* zbERLb9@wEpV$^-K8SS7-n|iziR!~bsJuX(JOB2GtNGqV8!4X|v-EGvNs?*IcVz8c6 z`@?<(V^t4Ew<r>h$do6FgPmz$6i=ld<C|cF)IGAhqH+0()|S<(riGQNBh1CAJ5=8k zXx*!B^;qU<&7^U+6qN&E>k(YgX-lcG^;oT~w^9l8g;S<h%yb$E>p6!M0XlHYp+2c+ zrAx-#@<G`o&fMIPqvvn1JmqjM%bb5wDib<h{6$${&H^px#Bczaaz8%?4{*fK!O!5o z&Vc_h1O9dfd@|O7=)C;T$bf$#1HK>wzB~hdT?YJX8F2HS@KNc+`pS6epP2#wvW1r- zpphrnnG7Er|K|+&Pcq=sK9c5Rm*e>v@Tv@WZ3cW*20W1g|6T_Ct_*k>^Y}&%cKR1( zz*l6zugicxiFroD{|mS=@_#}m?peOGE&O7c2qw;@YeRp{6g<EYckwg0d3TEV1s49N z4D_#`3?ewv+vT1u3*KJ*Oqn3|;+JK>pBJ2JZRWHYpYJsOA06-M7H-Rb(86sy@S6<y z%NB0)dH&<+c&l)0<kmbjjbCixH(2<53*T(vTw64J-nQ_C7Jh9I4{(&5jhCLT;G^tM zMFxDYg^$Ts2K<6EG=JJ#Q2_;v7N+C961OJ(8)QP<(C2D0=X0OZH(vZ<4{pl%j8BiH zH|qzxGT<#jVE7yQQ4h|tr;AS0S3_^`ZGuzIb@-Wl9Y0;ud-3KOX}rmz|4s({R~FuE z(f6K}<}=&Ee{SK|TKL<=n%<=UeEsMg5uE9?>5pMy!x{Q={pcJgIO*H*Gx`0BY}_G! zgN1)11Ab=)JXaD%KDK;jTDUET8!VhlZYDjyw{Vt~!C%OLzm);c{Q?5RF+Db)>nwaD z{0#r+E!?&6$ZR~odGmF>h1-0#S~x{+_}`ZS&zFUK@?U4sUlhRu9Pu0RGkmh<64iJw zt_FW3s$fNL$NPg=8t=F0UlN@5_G_9%{XbKw9~iH#4^8vO$0t;!ajqSk^qjIVjoa}y zSok+A`pJvNr$5)iZThcU`1dV7cUia{??V>;uNM8EE=|X4<ELMi#<yDZjT!K-TezK` zQ46>EOj<HN|EU@9#h0h)?R3t#LgS|0EYgoo0gW{r%h4{EPhO>9h1=!ZaCI8rgj-XN zebs6Frxt#D20UkJn*PTY{U0p6)WYAl@Bs^-TZ;!crvGmIOnM%(@a-1<Um5UMEPR_q zKZ!;kj{JXtpW#2v!hdPupSSRPEWA7e{&m5P9X9)A|K!1!f*0K-_4>;6*!lXlh1==h zX5n@@9^WuNpDQff=F@KBHlN>ExJ`e~@-%-NUzY*@#ES9hf0_ZG{H5{fH)X(=T$83B z#H}gEEf#*ih5yRJD=hpZHd=6|yx3OJ-R;3?qv<YNsjr5fvZKqBfGkHl-bxF%<NY@a zA3_+D{u5frP3xyE=dWeJoz^t{y|^`ezGLAwpEon$yV}xxZ2FVh)A%ln|4IwD>*?<; ze78maT0G6i#!u@QAMeP3Z_j}L$-*D9;tj7#^WSUXNej32|2rA*J2T+F&VWCY0WV&i zPLC~z=$i5IE(`Cs(*HdR|AvK6Sexc!(?>1*`xbqph1>1a1`D_8znuYp*23+0kNa{u zJ$8Ptws1S%pIW#b?>@m<?|k@;u%f~J$)f)ao{j!byiR#5J8#GPeg^zgQo+gArk`Ws z>n;8b7Cwgl`gFY8Ec(YR+@@bE2E-e0FC&8^ZtLfSPNEvO+lyG2#*KW;`-T?_PCoyQ zpOH_ag<oLdPg*!lprJp|jR!dLnT?;p^LvPD{25#gKF`8!Ih?sskt;qnzS+X<c%QOx z+rGVF;dc6mZcOu^XQk&E!Hs+dG@0|9MQ_XJ%-%Gg3X9L0gvRr5nS$R2{pdU)xK}=J zSoj}7YvdFCst!ncTW;S<rt$kN`rlZ%ot{5fxXu5Yo6>x2IX`3JJ1zciTlfPO{y<-v zk6o{qZ`L^FNjaRaADumdGha6SMK@^z;{Sx7k;9FGQ=S};<l;y7JB!|y!wF;xM?SV3 zev$$IorQk`VNASLGWa2%f3@)6Shy{><8KBL9MkE;Z-jqvrGk^swfGtS^DX@UTKI9d z-~o>Gw%uE9;kMj1Sorr5#_&J!>*R7YpUMpQH5u@o7H-FT(86sw97iEaytX{23vTp5 zs*h9R!9~rS7cD+_fS<`%<2Mz1C7(wu{N!85$DgopTb_q4+|Ji0zLn-<<5yVtHY?u# zZ>Q;*WRuSOE!^hwgoWGb`HO|y<#_3L()?}uf3t9#{~LlEIU9L?^R_e}JN?@%+)n?a zf*U@j{vP(=45Qq4^@V!-9DYU)#|m!vNcC~bEqYu3S7*TQvv528)Biag?`|vJt1Nt% zg@66{H2sAZe!`h)yvf4PI4g~}SopWf()fA{zc`e}TP^&JNE)Z^8~LoDk%FV#zKWm0 zKWfdl*ya0<g|iA8`gK>~0gilrjGw`OYT>08e)}>!z>$6cKSTembwo8jjH|(?brRM1 zZ*evFkR@k3osU{LO`W0tqlMf0_Ns;3`SRV)SarOtB8Ja#7S5_{@Y5}vRo39&v+ykz zj$7quuKDXcO+V-Ai^7P{6g=R;Z#`851s;5f&<8zuzu-k4JaDB3iaq#~mup~V20WAj zcRl#wD>P7*0bk<5O}tAp;43`%prpSw1HQ(C@00X&X25$r_zL0Qp8>zsgU=NDEgA5w z9{g6JAIN}j_u#FP{=p3R9uGcK=!Y}lBOctGi*nF|n{!l@V#3eptvOf3e4oVN=A4rt z0gK+8i(<~#G4$pfm5_(toV!xx!Ob}*OFj6(Yjk`;eNlEsNEAX_L`VBWyowKSuD+yj zQywckxJkE|s}%i+L}K*8@HgiI-R0r4lmu`u>PwoB;3{$OGknZZD(3wugPU`KiX?u6 zn{$EA_u$S19ifq@p?4-~yv{>kEchA^UM2V@58f*H77yMp_+1{{oTIYegPU`Qf=nQs zNvAnqh3D+p_(-mPUh2WkIYr$b+?=~|hX)^IhXL+k4?e;UHr(qT+??}$YPR;LH?v~S zUE#SobOtx)t}OB3=G>KT4{pv~xz&S*0-Eog9^9O}vd@DL9;fNw_2A~*m4Y1YZ_;Vb zUE#SfbOs-ge#}x29ymeM#XWej;JqH)oUd}52RG-a40`Zk;WOgF&3RKfqSq#!!&7v6 zf*#zQud>90oAXtgJh(YurPG6(^HuKf;wR~NhdsDCU*$OuZq8SkEcL^rzv^R}&-otQ zoUgLTgPZeJ)_8DpzRE2gJQ&pc2R!%|!S{J^=L}7sJ4s(nI?eeir+RR6zDltNH|MKF zJh(YuWrYVf=d19X5jqpEIbX%t34@#SRi5zBw|+{8KkUH|3Vy2C55vctuM+X#=6sbV z4{pv^;kh1khEH&sety7%cMATl2OkkUc#IBb_?UB7A|8D3Gn%f>gPU_#cwPowiqB{D z^SvJ2oVzmO!OgiVuX}KF?n<uMOT*usyK<@rH|MUb^Wf&(l|3HZk@3&d9y}y?k=SDs zuQ_)`9a3rKcSPuUz5|`1H|MUb^Wf&(m3|Ly&Rw~~gPU_#9`NAi+?A(2_y8Bf;a>OP z=G>Ls$=ctf)114q$b%1@r|DLBaC7d8y)TaKkvU&wz(a4&S9!pLoAXund2n;S%8MS{ zoUfAmk+JDF=c^QZaC5#&%!8ZrRa!l`IbY>A4{pv^dDw%S^HpB=;O2Z4zW+~W<UBZ6 zKUaBhbH2*M9^9O-!uRUwQhYAb&#!y%gM#P!wZEY^=c`Qj;O2alxCakZ>hQfD+?=m+ zn+G@Ns|<MXD&g~l2R|tIeh+TWS5Y4=wDN1tS1FYKh{=~ZU&Zy{=6sbp4<4%0`RerG zor2%u!M6y$)q|V!RqplR=6sc54{pv^dCr5I^HmOe@PUhUI*X-0W%6szS6Sl0&G{<p zJb3CH6%TICQF+*dn{!kSdvJ5^WuY~{#QJW=YcoB#8Q;Y`xH*qyjR!a9vE1Roi)DW2 zUJq{0V;T0~<~)}D9^9PAVm4VCd7ATBPL+P2!OeLrrvGSga~{hk54|~$Wzd70^H`qq z;O0D*!yeq6$1+*^m8p1ZMISu4IY)Gf2RGx{xCb}m-+m8n#>?A1xEWuMc<_M+ot}3+ zxH*p{_)+a|(m%XhKf4}$pi$#Z9^9PMa*GEy=ag>u;AT8N;=#@MJ@>@1=`r&O#U9+8 z_p-=?oAX|pJh(aU<rWWa&U?AngPZeSp7!9W^IoK1Z{%jqdnxwdo$We5i#)hF@1@g& zn{!>ZdT?{D%N`GI&UHEH!OgiY1qEZ}Y0hs6d2n-n%OVdxAQKzwJh(Z(<zWwQ&Tkp< z;O6|6oRi0<$DH3%<iSIon(llL-YK{lCmHz<2wvx*9}#?w2RG-pZ1Uit4LaT}9=ucV zhdub9;8SFLX3}HMZ;5&FZp}aL!Oc4OogUnr>oV-Y&ABe8o}&4gc+I&kt_L^g@y0#4 zIoEfK2RG;XKJ38*-_`Lw=fSH4f7gTe3m%a9=~OxeFZST(9GEH(9*}wYRu68@f$8_) ztwMjN2k#er(1V+EV4m>c!$QB`gPU_;-u2)Ig+6fF*m5!Fz!Z9La}JD|*EjMp=fK1~ z^u@A%u)>3zb70naaB~ifPR)n^4<ac05feQuLh}5tk}l&d-6ZqqP%U!s3#AZ!(>kiJ zD@2a$o--a920LO#91hEg%XAg)wA=5A*WirHcGK}do*y>+xd_YnSw3Uj7X1|Rcm&4~ z>36}#%l|$exDK~e62|;<O30i43xJXGZ2W8&`WOB59UH{G=9<2;8&9m*L-&+~7qv<G zdc$8T;Zp>1b6CQAaTDI)*WiYjM@)_h-|I<$$-fEDZp?V{n|X}HB>f4>k5dFDywM+a zlf7jR$mty9zdoN|-|2sE`o~K<DGv{7`jE809Oj*gpErI^my8$x%zZk1sr2LZQ@Y&D zb3=UDvX(V7TFwe;S5kUz@#oGx``pr*!C*;oak2G(ZfR*SSbE-h=W5EO$F47r&CT+q zbL7JtRp}=aL;Bl+L_!J<Ir-R0;wC4#iHUBqBG*mK%`F++*`VAE|I}_pwa`tx<959m zaLazb{u6H5`yC&5XPta~wwpLPIxBEPb~F)iyB-K!xzo_QWshG!%Psre4fEZ^A@|UK zyNOs~uG^Q>?oN9qmdGh|6Ysme9s9}KO+4u);TuZ=p0>kHJbvK&{Rq15LAUI`*AKdh zeSqA=jst!EsScp)dk*}#-%VUqxZh1Q6&`dGZ^ROHg@=*40ylY{JF6`aO}vXB>lWfZ zxV|!)j3eq<?FH*5;=kyIkGjdlxo+}0B<G@nSl^tY{ZsM!rkgBxV#&I~fSbt1JqVf* zDlrGLaFeGNB6kJI9OSeZzgY+xK+xd+=iWbZ<iK|u`rW?p5vB=gZ7LjLg7(LB>V6eV z#8v8Mx?gzzh~um(bdy&h8t^Y*guxi@iegA)F(R3{v%x<#LZQ4DO}y?Ve&Z${i6(v* zOGF@`#N<LPvA)t%Vu?RT4?XQpdnKB9P=Ocqo!<~kyzKT}HNkOxuP7{*L@?L4FP5BK z7@g&;J1#oQcSC11;Tv6pEc>U1oM^&1@B;INv=1}w$iO>HIg-B)$=1R}hT@QP*NaP{ zNd)<AWny<_;#Y3jVgKfHpk>j-g>K@oTQ=nHo2(xFZrQK=Hx09J%YN<O{Aqx(1d8hg z_s~9f+LM)ibv=&T7g>pDf9DRpe__=3aMbsJ3z9?oqSKzP?2DH>QQv>Z60f>LZ-Muo zSjj<m+8!6rC6Bt(UX3N5XE65|La~xR0>XWKmivVxN7g(3jsK09OZGB<?xXv=hI|@d z{g>$D??xYg-+lb;%AV)^Jrq%8&zt_9n~**hN)ZdCn1wQvg%V<+xUuBA!YY)^5)?o9 zAwQdnsV`**{F^?Fn<$Zw<0eMrqaxP>KhxzHot5X`{4$gzn#db{9#{X=PDJZOXO;Ok zKcw(kkm>0C%8UFDKybvt_NLvqA={ho!_DaBinp$h%+ZC8|HgBGmF$K7`35DQ7doqu z&*!3#Kkq*NEc4l2z{Dlqj3o}mP|8s1MTG&aM@ig4kz8n30g6JvbyQ3ePTTEv9dZ1d zMwqzny-2oVpj8XpYKKt}v1z}Lr8w$vC}b#N;+aY)MPewHc%d@!hy71tdqhk}_&jv= zM9oFTb7-HY1lfTSEjOgsO@J|yp;HAuq$T0d=!LFt$bIxJ(7T8J0RB2UReGu%GZo?J zVkAP<FD5*3Xmqs_sj6>R6^>B<p{1y?b%h66320QH6qDR!6h=kY$ltnUd;FUohA`Y@ zdoY@uQs|Z)^lwfoppwQR)^|}5#sQXO*Zw;YVN{uuiwac0E*-Ea3Q^=D<PGI+vQn8N z1S>)?6vVFmD-q0CBoszdVbC&5V64p&%c$#tB4wA#9$mkUM)Ut1*sb;SQU6U%$Q>{~ z`}<bmVe|@<Ulsj<ZU|fSDS6^3R0_h;&lCaV0i&SI5bT073ftK?RK`G?hprdbxTrzh zJfhU?IWjQC-<^e9|J@Z?4LyVY?$hwl&;>=^e1fWD3vwg=`}f3>$HkJDBke<haMxQt z|K@Aq$r#ZFtPWHr&_X<3nfPstcJIH!+u;dAaeiTC;^_kgQh&l-gFY4BfA?UdY|r(V zxyj?)WH>kMzx#05zwP`B&;Ysq1y4rH9*g;7kGW+J;%R@hY$u-fb^SRz)Op0$@k<B? z@L!^3zXkk4v}||Gzu<7JYy_8)1Gi~8!U~PJ$@2@TQ@QI`SC+l7zAakz%KDXHwthvF zRVSJ#Ei4(Vgu#S<HWda`J8@N^ONFdrxFsyYr8FliXii#DYHLtx(7WjFh@M7`?#?Mh zKAn<5LaIx{n_OZC{twz0R8<#NICvisO23FDQp~zLQ&o|k!H$FrtqMjH&`I1BMNu!I zT8j#cd50!vQQ=J96^wonMGZL{A@3V41wh9CFjp~W&gX+gILiqqBL+)noHyg_GfSuG z8^$41RgUk=mpHyP0pBT;C*}5|pgE?HVFJz;*Di>Q>C@gs$b8QWU+v~MN%;{#(k!AM z+-Ck+-(@o&_ojT;&=2lE`KP`qm-@USK4YgoVWz%$y@md8@31qgzIS#tKby!8uHn;( z?|`&CFZ(|IHMJl}*w)eIQd#ZqA@e(r_$VXCCa;qK?sY}O?_Dp&r{DM;H-17bdnUQ5 z54n-(fA$Tof5=C-{+4fUnKELZnBNu(GVO4xoN%3rAMpW#aH?!@W&fFYh_ZlF<$-Gj ze#G&ooRUB8mKa>t(v_Tnam>JPUm0iggwL73K{Z}4o%A_|&6w+W->lO7RqY%@t8tD5 z#<~tX2F60_X?+Gfkpcfk27C)}o?RQDfre8$hU;DUjTf&o8>f)r1esO!)r(s6!<-fz z0*f>Gc;uP#)d0NXJaVwMV;Q`0kY8K<${KxMX0gyIA3LA|5Rl^;eN=3N98NRlEKKX9 zOnoXP4v$Hnf@zNO;aM$AkA1vP`m{D?7H+k^D7E1-7TQncekl4yb)p;$eqRRsu?+aD zqB34S6Gdgb_?Z^YI%49TW8qvDF?f3h+}<l=)BjlZG;kbjYuo+SUI*G(!ymWGF?*6l z^=vfQiyNIW_<#<cnyWFmsd_>2ryOklr5@bSu|Crodc%L6hEsS*nBC#QjeU5+i;F2Z z?7>aF5cor1f(XeZNi|FH3CUfK5vV*HIU2%Db7T%DHQ<7hUoN%t*03v}C)}s-Bkr|e zX3q*~Y$s}!f-=pK{jK3M&5<pYgche_(l<fRa|xcArjQ3WYx7G5Xa4`%9GN$seu@7y z4_^_dk{P|&z8K6V<u`c7b6(o3KtzmsYr6pnAM^z9vb_v}#>;;v8&J5d`l7yJ$$D+V zoAReE@s>S<42uz9duTgPa>h+N>1WEGo5K=->PS24ji1qs7k@De3~sN!r2f6}V~(q? zAw9(v{Gd6ml9}h6{rAps?Y9ybQYi_cdL4@~M0(B$a~yiks0hOrHN^R?D?M=6bi3mh zxXJrznA8X`6mok8<DXUC?<2#!pXw$t=oyTk#LhW})z4$ddt~^)N6Z*X4VEwhkE0Jh zrBL<CdtQnk!)`dJIgd1E9!L%4Fzc3@a~n6k1xT-(`0Z|`fbrPTDJ(;7tVDjsO@?xr z%F{9Z!g-U#GaQy6NvEnIO#smr92wzQN2QmzBH*}1dG17sq2m1Y{yfFZ_J+>er)PiO z^y!rym%cf_OW%jD>K4NPd<KN;<)77eU!?lPm#J^>euzG?`Xuc?@>8_q^@*9}e_UVF z+p>^5`AfsDA5;J1eLs_Rj(tJnl+5wK>1*OtX*wlq-k{s1I$4pq>PTjusGB|wc{b3h zHXQ5T7GFzZeYO{`G#R!XJU|f6iw6~&ZtLYS)dr9UQ)|*?{6Fk9h=Anhm1GDQ-ORLT z)N?@nr~fjw(Y<0<iiH%zP8E;WMt(|g%M7UyW<R|IPhHp^*e+8W{kMi^8_O(u*O5$k zZ+u1^<{FalCZBjzZk-T(P#YTswc#Z})rH^l9nX2;t3gD})-8tHB7{r%U^ydy16__A z<}qXdxo#h){211R|DZP3Bxr?)uQ&bUrJX@mNQMqdcs7~i#h<B-HSZ66R>GT$H-5CS z>QHFY%zjWCd+z7T{_Zw5bfSsf$XV8rb}KvO?ygW$#Z}cVT$OZj4Kg4mzq%CzY2&cI zgQc8wn_Pwkqc_~-g=mUZ$0B)YuD^Q_A>6JT0*=3%(*=p)SaMEa=<w8%9n*IBe|BPJ z&tR<fS%3GV@Jr6g4JU@eLvKxul<bL2+vERPwu{;7vS;HL#QI`|lVgcLsuAFR(4t>3 zCxC^L$!H{}jMpYJnpAqZOq6&wme_43WHA?unOe@tVuGz4v$vSRO_m2^>bZk>P{qO+ z4s0nIlzGMEM8#k(dIDrHR~XC{26KZ9STZ<z4TiCtPed03seV3{;L&;TXy^}Lw*7Qu zA$)0gad^?<g=!J3=ZFzoe64@m+>fEV;3i&!H2bQKbiO@d^>vZt#N^zZp1lz)W<@aj zysP|US&8zTNTS?HuFCOm{w^v?;xCDVLvK$#^wzXTdmi&g9`e1~vo}$h>)(7l)XlAZ zwd65(_aKMZ?x8m;YxiN&T6G_yWv}@+zCxj*TXE$V!&imB7`{4OohompjCT3_iT)c0 za6MA^ApVhx6DZ|avNF)HySyOalq1s3oJ5lO-sGH|#EwVbCYq1bMf$G5lE&UhVqdgx zo#Tro28GVQt=PrXaN;jr&-*t#%bFJIz1BDMc24hcm@dx3l2ymk(b~ts&h6Uai}p<p zMEj;(yww-a^>6bH?$7DXa%<=0Mty^BZ8<JO;jR~a9bZZJ$yka<Wi5gPB_0d=fA%PT zd)(T`+{Cb3yVo5$e4$&igKL^)5BWDWq5Au`&H31<1F6Mougi%gYXh;`_T1ztvE<4C z773Vj$Jg`J4c~HW_nUPPtW&%aOT4WLzS8%4)b~=?0bj?TN87-~BepCpwk7Z}`kGvr z6HYuH9(pIcyyq$Z=Kn(Bg%LiM*pZgq9_W{U+p+g`vNR!;(;o@>x4k*^{-jWEapIAo zmnU{T?+f*|`glJ<-)HeYN8e}jK3m`C@IFi5Pe?q{^+(^MFZa5WG%yh*gC&o*JHA#~ z`xFuu?b_+Ps4wRamA;)_&rXU@$Gm+W#O?OQ13r`f#6!Nl8=mb%IS#!&sTciGO#7D| z?AU*FDfxQ>NdM@SSgVR8^RT`PZ7NsVlmoHs^=}TtrytQKhKCMkVR2$JjYy<#3A)p7 zLm08XMU$vVTJDs`ApEsFhTfkDS=?6);Pgj^-p`>l?xSHk9a+pCdOxez%?6f*<mJT5 z9_tv2*6u`1Dz$x+Cq?^mI=i0Dj(^s_?U-~1I}zSVJT&yjtPRf&;&$lmiRldfnHh9_ zyR{k)hPy_6{+<h&!7snZ6~ECY%<LewZsM&2cf=A8#S%lK=fWqJ*i)I<IeI7Z%Iqs+ zXIr{*v2_0KYe7AFDY$T<KQ-o9h~;jz(qD{mMtt&y`}>iy_ITs6_(!1j#a!U;1cI^4 zH;bT4Z_dv3bv*C(-F>UVuvGi(QNt*XrvfSrZlo266b6YXrN+9&9ULIJiJLVSH9Wd` z3;a1$f?>RQtK7pl-aH`pFpxKISNAtFC0+A!eQJet?7ju$LK(<-80%CE2Vitxi+|2d zu7a(;P}|bos#oCdo|6k^Sbo8sq;`%Zc21B!SH6b4J7erE_8GwBZg{a5-W1mvhyxJ} zOpF((b}D|H+t(JvO7%o{0}ABG`Wp(|4G)movW!~a+`emV!u7xJ`%<uLC|Eo=^wz|o z_a<WZMBy=`@gbO>!lC_By9eWwl({|dv&4S&+;Pyq?V^u$zBO^x=g{^gPpC|m7DlM- zyTXaz54}G%oOmN#@?dz{8zAv-{5HBr+c}*$$|XXzKDcd2OfjSA%L!pwsc<Z(A#!>P zoPMo1{kpub@H63iD7Esk7yUPV0dmCJR$<Q(e@_YS!+n!KGrO<!CHOlqi@z#+#J~A{ z;I#AM#KYlVI9PBB551e+^~Xt-wJ%lHJ{Nv`w9@xL&tnVvN{iN?IQl~*vcJ;zVx{lp zaMvq7fA`5K=AOM+uZ|y69>j)*zIBDZSlOZWr(%h}l)MQM1>9+<$=FJ=pOHqmsRX~k zfnWADt#n3bAgi$ZzWtqVW&6ALASrAphK5F``i35Tiw$g*o4{({pQ*4_<iMLH=4Pq6 zSz&Hkd849&HR(A6C9K0M$b}rMxUXe}YUjboO<YtkG|F}!?R}(hDQ=*J5v&HHr5~M( z;9c+KZqEhJ<Ox`-gz#g@^H_$EJCbQher{jgM<<2vfjA(*7qds#A#5aB3wm^9PAJEk z|K=@dY$6!v7bb?w{Xct=0`@(~*0Twr!pQ3pB&`tnD`F<x+8tOHoauJ$_i+~i%Dxz4 zJm2M}ln7=iX2w_s?_d)EXBMb0JukV5ziej;BK~cc`Z^Ymehv5NkCg57_ufdNZS#Hp zZJ&?$@19ctlDF{tO}YR6gXO-r%Bc$PfX4S$?|dH?gy$6ax9trh@<`cGypkp!R<dmW z`q`b=eazQ!XL({6eYwXEM~<EALn{{Po$HG~>ECw2FDNULP8&j)$NwBTW_Q{CQ11=C z8+NDGwb|IYT`&7o>U-u=1)$hmnr0$tWTCU?D+{UCV-tUgB}V-}L-YNZJMB@3(oH-R zM?cK8M`)vB6P(=1H1)o4*#qleCXcRNK5U8F*#&X>qP_={*|Tuxzv*6-OE#kOU6Yf@ zMqlp8JFIM-h!~A9a*K?NUWp`;#ep3Vc41}hyENIc@{++=;w|h@h$N;IMlf#`@cpjj zF{N11#2~T|i@;*CXadx|AAoVPJr^tSo4E%JCH{Caue|Telfpx<WcTd7;nD~UDVV>M zS~o5zFF8_P@)9VYz%~ZxA(o3H*l^+7&8<cOMjP&W&=>Q)uOek^v23+51it0IXCt#d zyKWals$C_(6j^d1bWjB!Ikd0mG4_FzCq(@2NF-64J6ektC!BbIS~_|e?)&B)2_Jeo zF%0YQFuF^XebaMCF9!}~I8yj)N{Nb|9li&;OhwNcy&3r=<_q5g<KToJeQ~rCP@g-o zYcSg%-81x7*62BC(jtoK&aS~pL;JJ4W?}om#Sk+qL1IUF2}}s~UQx@7Ac9o(W880o z#K&ksROTUsnC}slvls<HgA&V*aeEBtDt&KL3ipq`fnr9!M!OI*Q~m!7_W|>Hndb7? zG@7}*BFShF*J8Q9fF_~5E9c_;;*Hsy-^2V}7!xH+0WT67wFWjjKX6l4MSj8N?AiIj zzMR?lMVlss5olsKe`eRDNPbn;SC7q~2_&3f1d7@D1qd;li~U)9#`Tz+7X*Ly2<Ue3 zPwf+k=7$#ReF84h!6yA_`oUH5Z+?EDE9?55oM3eEc$gSmkb{)*(ilmlu_Axa*F0`g zDiG2CN7wI}w}0GR<=;LhspI9$##l#nvF9p{PI2vl_!zwc_Hq2EgI+fSz<BuQGT?K7 zlYc7{0B6=^7vrAzAQzwDlpf)_5<lYRObewuz}De6Uc9|RKSDi%Q~HGKckmmJo^!DJ zQ(pWwi}f^zUmWv(pNAiEvEbC#ScC%>?#*W+Q(yn7Ua-2^`dFAy9`)IqbTU$3PC{h- z%8_;ha-~V;JTFY1awm!$i9`ESc#VZ~z+~vpAt4-T<yJjkfo>U{m(RDQJc!%zo+a`n zPVF-Me`4X3x54idl{N9sgdg3FsQ+~2W3RLS#lk-VKf`B&s50rPs|LTCjN!cLeB8o$ zYv|v$a66sz)U;PxKCOzY<2)fa`P+QN8yc$TPDe-pC&^FY%_3jMMQ7-X1gCwZGk6c% zS-7D3Pvhqa{~`}=_!MWrjl2#2E-8<YhyDv9U)O^h`YI28yJU1p27IXp|Ax@7@ZdWn zJx1Opoj($MjfcKo(%I?34+wp)2cIwH*YClX34W^wH+;5az=MLbIG9%BO6A7jraX*% z3~ub-y&igF|3*Bxv48J+aAW5L{?L~oLNXsxeN%iw=8l!naslg}x2NDol?~x%yC5qy z+^r%cikr8h2C025pAuZE1D>=CdEzy=R1fp0_70NghYg=;e}##EYbqvvW72QnO#3Ug z%e&2ot^CuZn(zg}-~wDpV)R8|XTRkCgVug3B)kb{t`lT`gLyVrNsf7RuEHHL>Zk2; zC49&ez@*>MX4+pdAny*DddKo-)ivQw{xj{baB1Y>8uTUg?@7+MX(zEci(!uhpg0+~ zH-4tct2=<4HB1=XzvxTq-y45Jytc8<Ec{^O#0RbYoL#~<iRk|JcZh=07Bdkcm6G)S ziV@jEul84@_RzbS9g8O3h$fzJ6Td!sJ`mFo%KXK@aP)SD&v3@U(Hky4E*maRbh(DZ z8Jhx37ITJ>`z|KPehb-RferhM@p{K|dcy_wXk&&E+b<?zq&rzQUlge~2GTDJV20D( znVt(>j5R2E?}@uEc0~&PPW<ynC-Ku(5>GMPEskf({5oZMdX7);uRt2G*08A1--{g} zYLO&0r<!Sh3io>$5seprc+8FuEI)+;-0|U8i$)Q%FGb78D+3Ju&5KA#P0>yWdkz-= z|0nxBg5Yr~essI|C;OqRHf8r^W&KF)<tPLkq90r%|1ehDm=(z{=*q6hFV4CmzW@OC zb_e0Lg8pzl{Im9sH0xa<A7-rezxzTUN>w(vPQ#C5n_*n(RC(YU!;iSJxk~;dko_Xi z6MWctIlg|`wicfQ#)o4Yo0nHF>}YLms$Yq3%G-3&_SEM%o7Pq{<VE#s>-Cr9vE77# z`sS({uYi=F6Q?bw^X?~kTf;};*NZXq(g%f}ZHjF#q2<aM+~mK>gPZ&d{Gl&Fgk<~^ zJsd*v{GgpUU;z(ZroK(TbV6LA=eU5Zylu;;1oyTtxfH-SPS~b=rsIx0KWupRO_;8; z@w1(Y-y5G1hq;Cji1)>IVBAlZ^nXy_Br4%O!JTOt@^9ib^jAxGFL|*5y@pV(M*arQ zv@d1fIOWH%Cj1BWO}0z?D@;Uk^`@WC-n5f6C<U4;0oWFg7ymK9y=BkvMUwsxioYS= z&>qL9+fDc6gZd^V=a&54?>7gm1csP6NB2#n9Y?!(Bwl)S6MnkYgya2Sy<>8++0u!& z^walIa%j%?lP6o(GaI^Q9*KY2e>aG`^sCPi%mv(?Q;0X;;=>wCtwZp!Wbn$J_`-a= zy|%5fHGXDeb3@AqwzHY$VL84tZEP=-WZsF&x?E3o&dsaTH}mo$`GGm6sr(T0lK<OQ zLcB`GxN;cbwab7~ZQ|U8i=g4vbDL_G>n~%YaZ_KgUR1LT-{f{qSHwrRY4Zf9ma(3h z`JteNd+W1!eW(lhl3%8_$mG{B_vSfMTeL?EjIq&wZ(Fp-MCiGC+lEYS(cc<AQ(I)h zd-H2#Z>}MvkM|~@Cb|3M=EJr{Zx}|NtBKdZncAYmLQrK0<(lhx&eRqimhv-g4$F^W zO?ZQ694AXcS9s#{rk~Fe)fmbFAv`GP-`f^#5vHFW!&R4+4K>7<*R;2qmgs}W$t7oh z?(c4kimVKVROBJd+2*RPBImqW5y*|7>A(A%Uqy@6(DNAf=O=IM$GzJ(xnGYL{dWh- z{?d+pYlAsBTVeIV?VM@f+0gI5yDH0n_YUkRYUsMZmkpjjvSTMMA978PZH#G4E>-E2 zzrV7E6~~K!&WyU6c#Sh-S$n%P;~(<IDf<^*P0?w|9#>mP&-@?lGQZ1dO<q{RvX8Qa zT4y-^F)k$=8UIv3gXk9&0v30gTEPFog*KM_GTG=<dL)j3C$7^ayjMcEdg#of*T%9A zvEF~!@U+oPe=&ZxGx2|rjr<$}jVI5a+sv$cFD=_tVpcU&)Y~PDH(kcYiMLaZ8_FbP z0J)m;{f#YTd(AR3;SHY2M(!6ri{xr9-t>=`cG8A~a8LqryvyYVZ~U41>qa2nDQ$23 zu#rt`TUVrv<OlWF&n=tzch4o7vksY+5dZMc^N5laMMEPKv1dD3QR*g6<o&HUFeq6u z-A!B?FkZ!YDA0a9IOx*c)IMXJWK^_!V?X#c#XDNu#Kt|i1&9zEhxP4D-0su2A>5AW zTNk%1ppwC^AMpA<SfXF=cI_@2#iQAe%zf(zIoGMr9pb*f_i*MACL8<K7cm^H{8O~) z3$fYj9JlX!%r)}34otSGm#T!9dIv0x^6;N-2F6HZoOji5T2Vuh|NhJHTaEX+F2pW& z6;;n*;=vBghhB#xA@mM$oTQUH>OC%dpQp|LHM8%&V8eYWi6tlfCznj(CyvXi-+%u% z_Q2bJ|F(y4iS;cnaue7(WTj`f+jkF1Op*?48xw!uYDnZl5km<1J&ea>RZ-&7qGZ+d z#HG{SzDtYUzSd$zg7Ys{7muY+%O{n79C-1rn>-hE-14qpkyCS^x<C@#J~<iNO^@R~ zr37AxyF52>F=mf>YRkB<;-%+;$CP)GmJ_$dy2+_(BW3(VvcS|Uk80sOs@b=`aS$>{ zR1_sQKA>)<yUC4e=WHm~7mwoMR={ooikaNFMc>ZE?N)so!tH>*b#c30-&WyP?Rj0A z`#xSM=uz(nv_Q4ve6dg;{lvX{c)-y(>V3bUP99R`ZrH^rl~^<752Ix40#@_Y94#-v z3xs>)pT#LSMFYq4Hi((=BadRQEGDz3K<}`b>Sb)5()%tUWN7plVKnq(pDYgX>Ut5J z9*g75m?Q4)*#$@j_E^pi$Te4AmAQ^DQfHB2Bz+Nv<JgQm7@v(dLK43_GMw1oHS%89 zVPD5I7dy$^u1^fQUA4LR8@$l%8X45vD)ACV`njO%rL3;^e5;N{$>d)7MU;)>4$YeA z4qcbazX1OVusdCO>b}>Q^49NMz7s!Ny$A}u#VKjY5YWMR7FH$_cv<BY<{0SM>J7af z1COoW2#Irb?qSox8aSd(*nu6f&ez%S;(l0VB`(=J9mmT8pXRa#w)i&Tycz6EtL%BH z<3hy-N2Mk2EF5Hz<ZXrAo*7HtQMgB4?<^cv*SiY$sq4LkBe-HeGGo|TiDJ1oy5T(* zfxr7r{71X4pXtPZ;`VhHcH%Ld_{}dqMHnY`Vd14XjI+2{<SzD4;*2ykfAX69V;tJ# zCT=O*O4eMTiQ$34|Iab-#16YKUUP^fCKo2Uv855aXG<~Ah56bUNlq^G_iO|uPUMOo zr*`yWE3T@z^kW#e?=Hm)c=*WTnW<piw;@=0_mTLro~JtIGC^1t(xm$%!oOn%Pdq~X zgcw2UCaMYuK#{A09bb0w=8G=(lBY)R#&*7b%>{dzySL&|C1doTamVw**dD}hiQ)|& z<S<x*gSGz5bIl+P90!FLdi1?+1x6duXOH6eAd{j<;vvNioAjgbGI>-98;t`=>)%Mm zwY2S@M2`L4-^9P#a{dN%Vql`boAOKEO&h-9eOf1f_Z{k<ZJ@uq7xyLDl&Pf(?e%y6 z1W>GRMUj-%%k=!-+bog}ti^S8!dpuMIzBXVEbJ6S*hNP27(_{63u?y#?jVI3SS)g+ z-lL+7IZh1~%r$l~{GZ_A9JtZ6clucgK)1In#s7!BcL9&8I`@ZXk^tdS_Gqb%m)2=b z+i*~uDAlB(ogow0BNI#oC9SOlLqc){5|atUdJ9ZKvb!Bki?;M~zC(L@didA2&|?Lv ztt6mH^i&PhD%Q3}YITNqiCO_^CExG2E|Z;|Ou78~Jm-ARch>XFthL_tuC?CvuG_mV z`(2}kl))d1Z<IMH4Sugvu|_EE68is~XN`xW^>PF=d)c`>(d7}lE*sq>TF$vaw#zpX zyWV3#adWe20Y^)ejLNt01(scmb}`?N(Z!nYgZ3^zd-`;7mWQH>YtcY#@(dcO`8xPZ z<`kl;s5Avv^*W|p$bYbxRE{!b%Ey`;6>yTCa)rlMaFS6*qn+kjl4H4EOBSjW3CmaR zg$@|HkuZ~$?T4-D7H2<;ru$==8#5Ykht!<9NNiy;?b{T-ke^4s6~CPbOoPJ#O_YBl z;WbER9``dyPZxeP++Uy}>>1&bI*T++^i_B?9`pa3!mFh1IFF2g06#$IVPK<qmVb+; z=d%nqiZWz;oiuXZ(=t5waWqcG)zh=dr!T4aKVq0T7Y)jDQGdqzDf(bEG<B(V`hnJ| z;yC$sGx7{8zU2W&zr%G7XIP=rs&e{J=3Nt{{wYBsuj-02aBiSEpZ2Kp+h2*2<N}-} zW@?Y;X(C>=F)KFV^V8)S?>B(MORzA1XAhyFYSr?K$801BXoJ{v{s-+UjJK!2Vr6(# zA>r0-^(+Msz^2jd_0w<@zf(Zv9xa_*BND!a9vFRQSpm05UuB`!dTSNDLcv8F1?(;b zA5d`J-oCHkLkdoPS~NTHWBPh6s_}oV;C@v%qKyLfyn=TsxM-Vz(fs4~P`C;mYsS-2 zK&;GBnu}z-H(;?Zx(&4ojtBp68u*22;B(Tz7p8$<p9cQVY2de{fp1I$zZY=sG3ht` z#CU+h|3?~pe)J>G>eZ%<7$boHq=L6(NzUnZ_(Ga=URC%53SW!~h<Xh0GdvSK0hvt7 zW;+{?|2#Vtdt|EW#dv|Zm!-iE1J3ld2`EQ}O2?1!kw%Oubl~c<{F;54*o;_4m0|?e zHAPp|uBlSc`i83d<qcJ11I9;>HY{J$SY6k!dTfMBb>Dh)`n79nqhoPb)U6R&jv`Pe zFbb$K*Ho>O6f?0=7$OI3EIPHG6}z;aElH8>Kor1L%cE7iZlPnVJLK9cE|EKe#kFtv z=LtOl%XF~vIxmI0ua>KX<u#2_^jud}8LewrHVP)us9QuAg=sGnU~&Lg%a>I*R0+~m zl6Cr$x|>0jtCnM*8AM-Gh1($wGLh7!5`EW1CJn4eUENJh^$NMFVQl54(vukr9(X)r z9fM|v<|y>p=ySN4=od7EbB@q(jwdvPe;7Xv|AhnY#DB^Gcj8~o1Yl@!-&d!@uPSK> z7qSOd2sAq#@Q)%)<2S3W#mV;q{IvO*f^)CX3C|V+vP_@*u{xc59B{t_{-^`)#Q%c> zPT4@G^O^(hOy>qQUa(xBbl@LUaMJlH{Iq%70e8|rMU59s$B&=R_h1_MeJVlX^GdA7 zf5`#=kOR)eF%9u4w`u&T1i;Wb8$S)talrYUhlbzis4pjeml}T=?PCsnJ=QXN{wfq5 zq=81m2Nc{dpd)aB02t*y8jZh2_(tS$4ewNNEeC0MK*7tDt>IdZD0jiNJW}C;Yx$+# z1y^2=UpdGJ=Aq4O<<Rhe@|!NWrvFPW_!i}Falv&aI$Wn;p)!Beg+HL+2V8JnuGd^} z%?F*2PTx-lj9;av;hLWz7hKB)6)t$cYEP6OXmmPy{^#D06Rzj^mtAnJR!ZN&(&^}V zSf+CN|9(VemTDMCB@|GuH&s8?0Y2?ecDj28V$&5k9g3fnf0>U?PWKazErcs}!6i+; zUUX`JvQ>9XK`(@hX`XKU%Mh3OD>C7dCZO_f(Ew%pU4GtEAWZ=mJitK;W=L9Meaa!; zUH&TpWB&OHPg`9oe~#f!LtGkdFL1a;fcpDG8vf~c8khZ%Fn9R}RD9<dIpb*h>87C^ zJ6`$qTVb13hOB=kspISVPj?2V-`uQ59H(*9KOXJGuV;oZ`pspYrExxS=TDm4Z3iHa zej{;>i!tu}aR%4CcKNE4K7+gD(o0YIp2EP0IIh~+$bJ4Hea4k1chsUcaswYa>xE)O z>s=u)@kN1bY|th|$=bSvhC^)HMoV#FU%Uh$&qc5`hHd#r^Qdkxgl}~@C~&_FJ8mP# zCeTB8K^iz^02ltKGbP;Z`yeRW1+*l7`mF99Zo4DDQG5EjJYQsa^mhl&@{B4BPa)Ek z<R4NF?rnm@Y3RpZRzp)2?@q34z6i~s78ft7JVJu4t-PtKVa*8eM3+FomKo#?j9X75 z$2!WGG(X^<+PlhFD7JGJ<G*C8`sY3t$La|2VARuP;`^rx0a5#KI*k%%Z0Xi%bSiwE z#%b&s{qG$`@KDqlY>s`b8@J&%(p;-=R{@&eLHNhRFID*c3je#xu2S%NHCX9%xCUE- zcFG%&3(A*Wr`stPdUY$BR$;M@m0)94!`j+PvE*|g&*v)8wIVF$im$eEA=>vyV#vb@ z7x5HbpHMc}4$fg!-!~_W<FS^>-*w^Zexa2(xbc6b@CoPoN~fd0J8;AO4t(dhUgm=9 z`dHzDYrfy>f@{7j@M&9q#3WtmWV5e2i3XkzKc`72n+;`2tWJeYUNI^6+?Y-_`?V`y zm5h)Bw3{}^E2in5Ur#nZWh-W-+XtM&==d`=K-rosZ3h6SJ70xs>s^I#BH1de;_G<Y zK9db;9HaBqK{vobm>XTMLAPi`Wo!OxaJoC7ElM7!P>8HQ#?|ppBwPKXzDFoi1*WJq zUjFRM?z#uaQ?J_JE%Z2yn}5~ORh28MYg5A2iS9RD`k71c1{=-Ee=FI-!AO~au%&Dj zTpBx`skJuRlR|b~mWelA5;*e2%T#MXYB2VGrm=AaT)2RNBUZkkcED)m0+II@aA0`= zI+ecPK-ArA0`PsC59t^?e$*(eZ%2hS9XcSr&|CDk5@W|+ApI7<|FWJkwjBu>+q#0@ zA-eHs&bGJld)!NCKYo2Yl0FdhK7orA8Nr#ogCD1iqBDUlvUX>dZ|wLg$EUE>V{CgW z<n5N3ZtDqp`7Y1jjBUq5-sdD0+nz1)K0#uT+fz^+nDlkOk$vR($!~R-$C0TQ8pI|A zi=JF(hp5Uk;S>5>yOY_$BL~Qwpi%r-5HEm1E6;&gB7+=BggUak*3s@aecg%dBQH+w z4R%~<R^mwB+Z|h#`!Y0Jk%w)3Y|Ej6jpd3R&uV%tc3bYtnQQ;df+v`4q6BKL_%S7F z<p3TRiasIO9;qBUav&6+iz<5Ei)(2JJqkUBmo18~y4YJ<iOU5c`FvEualb~@*N<3V zs-nn4SyMk!H8s!Jk#!k3_87SW`}bs&^%Ux5h&2-Qz9l^G0072q>%tE;G$g)F33~ra zu)>6bB4YOsehlqoBrB2gm@J{A>mk+`G+3b#guG8PXXaHRst$x~>niackhE+&P~!a! zNn-L&HqYyrTNLrWRTRyAd0jkY^#!Tt4BD^`cu^0*BhLpXcZaMl)}inpnBOt2C^)%` zj6TXL6U;V?MCI&vS56DN&FKD8mleY8x5~O~qwN6%#@^2`HvR~X65K1Ym->v>ufro` z{sN`XF$jg1@p6=Qc1AF^CnN0rP1w61rJ909d2UH<_s_6+3&!UbglhjZV-B3PkI(%X z((?|4YM-Jj<bA1j`2K$)sIT^gA0soC2DDQVSZ3{E#`nI6h8OIZ<9!RoFM2H4F=bsx z#Cu36uWM_>rmdsRvAqoiW5XG154F7>u~+({2aDsOi#%vi;rOZxy->{cKH6Exn}}4R z>*JoGT*EAkUpRMReA<Nz<1=RCVXAP^YmN16zs8P2RLnWXj<ZW@e?wwQ;?w5TzQeMV z)V{zH1if#U)IQE41ikOn9wA5-#QS#b5mEl`L%yK*`A~<C^%wDWg*qljyxk%1AG_c1 z1v)N?c%jHN(Qt1#_NX^92kP^Uw$-Cc<!JA1hnuE~1)jP;iM7p;J<)1sW5a-y)zQv2 z&xa=E+6;OcDThS!V#mEk>+NthUSRgNHv@^Lw|$jzSvzY)M5<$Czs-nV5IgQ`8X6aQ zaG$=1C+4&<I2<=MO#(xbHTZ4&l<<=)!3U2oP#^GluD$Ns6W+v6zXmG@L3#}~larg! zK~<7YPgZ6V9*uIV$imB1_jt!ZrT(pEBuVo_a`W$}o$-sYNe8E9{CZ5vlneWrC=8mH zFqEZVR_?vZ7S^fX2lz)`1rQ{h%zXgCdtkF1JZH~Wf`;H5U@Rx!ol>Gw%ATv>u!Pa! z^!(%WZn-6Pnb)bj5m1IGTnp-bVO?*$Y(%(E5uU2MWmud+Tv`TsDT>p#>e>d63$&_g z<?_l~JgaI~)<hNB#g|@o>1Cc3Rn^OzRykppbEz1qy|H0Az8qg%6^&G`m@m>@TE*Dn zm~XsbkLL@DF1@DE_0pi=?9k+n8Z11wyYLYt%)Ksr<@J2u1=nl5pQK6WQ5U{W->)2` zN7F*kZ7#T`{}~rt*Gs|$*Y%>nr)~KWlXSUTQUEZT-)M$N?@6!ynkkgSY?YQ+Co>=S z+ToLc5w5zG!bX2{6Qn|vNT0$>xAr^P_ytIb`LlkUM#rDx1j0>RrzwJmF!$Q;ql*5I zIFS`DK{}mz4maW2%t=#z9Z%zNUz{*E{Q(vKs76$_=D!AC0|$8;&;VuoRlzHi|5Vq0 zh3cGkxhq{a{o~QjC|gu~=h{!N{}`^<p6S+pL#m+dM0OZ={?*adt5cimSkawm?RUxL zmlTSn-zlv9YE)TBMnKRq&c3?3Th8YW<YiT{`yIXD@PaeEP$Ug~GWQH2u4#YXG-Jn( zN2hSV`Xl%xhVN24ubfkmY8APR{k;8ru}v?O=$N+6^rHB<J&12zN+5y_?l60UCd6(j zf|<P~BALN|)w;f&-@4#Ck9Vos2HzI^HE{{z;705@6y&o_+b4JQK_Ei;0PygB*LMAQ z`|ytR4uS}zheC_=%5qL3LF}8SzLgny3LIqqRgejtLkU|Z`w^9_nXQt2JURt$IY>(P zky0NIBB0%M1ulm3BaV@Cg9K&pp)~2wa;5M82dDpEP>Kt-r0Cat{zuV&)9I!Uy_lHT zYcE>8yb(e{;|b(m%2G7$a|g=1TIT&fL{RsBGfbQlTs2kndCFBZ3;Czc6mG)-0>^`L z!eAo&Q(?Re%rv8f!F-W_;;!z(>3nx8q{8nd941}(&t-7h@Mr!``2W|=G31y$GE$1V zP~|)IJEG%HWTzsdvTmK{6{79|<J?cUo=io(1NK=3*K>!cQ@}V^igZ-bG`vZ{^<51O z|C)l=tI1Wvc|O5+OvN$A>ebGZ3|?`=)27kdWu>Ak=<8^ur8v20pbt{+GWbGOjkPP+ z;Kp5D!;0E9IK>mPE(3x0cR~?$-YQ&tOBZu&;7Hr&l<t%h{P5EdHd5Pqjv9e)7g)HD zuIv=Piq!0aYrb!G!M7{?T`suh`vDhR^Id^Y+wvnOvv#+{0AMsvIGF;!Pe4ch(w%Q? zRSD)ORJ|6_GM0va65-6>E#ppe15`REE90JQd@bX;&o^{@w@OA;O{q2!Q1s_3`m}Y9 zqW?rPZdk?F@w9z;n)2)XHD0>&jY1Wla*Wex{%cse^NlW5e_Ivesmiz~tM7>AaWyfK zqt@5OeJmQvx0Gi!{kr`SHXf^vs<qiq5$-f@{#8foqNj3qq@b|yl+QPE9E~<0h#8S_ zrOX6DOn+Zo$U7vEumVQwcY%v9Nt@1>q7q~;KSS~;d*ws+D%7$UgvsBR;*-<o@Vr-a zKR-BqQpvYk>mhHS;B%}9HTOeojJPhM;BpCrC{aduC*?Dg<O0-+h}S#i$FX^o{rst{ zhX<-Vg%qA#0r^(SfV(KmCzquBfA6ja-b!4<yBeo*DPxA<9mb2VT;uUJ`@H8)o0Q#& z3e5$aatzJy_@}-%3fz@(6QrXBQ!}ElLQ@$(#Bi8%q$U4PbHDBX?{8)bUW0?YyX~GA z$XG3d4A29kd42`l<Ka^TxEk$3XoouS&4?80n0pZ-H;-qfvfXq0oeIuzhvSFdzk1yP z=Xj^#eh1t+ewZ%!fb##}T7D$JeA3Oy$6Oh>d6{lb-l7IdP4}tJ$#b2BchKM%-UO8O z&T-m3E}v}tbaS$ff2JdEIyG6^4k%bY1080OLO9(y`6iu#BTYKp;B<3xy+SN^#n*G1 z2B({o6N;g_T&FrG_o@7AbVkZ{(@+0+b8@}{`c(wZ$)sJ=f1)|LOwmu7$7$U8S4Zn1 z^skBPy{8lHJ6(Ed!70DZxt$$fnSij>oNO-$EH=G8ctEeQK%5QxT8=fX%V{}wbHk<l zuuMK?WgXxvZ<tJ4j%{x&=0Ut!)U$4X!3zndB|}^2Y&jN)UcdI1mSe%D=goK-(4JlU zys@Lq>)p@ilj0#?#^9sKr{&nrwdb}R+r93A_`PR#Vy{GnW)A*P<g@<JcBGby^0m}H zmP)gYX^P~;qlc+|uGpc8c+S#j{{m*^<Xle8!ld4^Q`ak?QGxGbVt(J*#eBxR>Ae!F zsYf=*!q%hFYw@i()l`exAFHoA8Y*~UFuOBS1O*IHKi&+BL#qIFQv3LAIrhHZ#LI@k zVZ2=jndN!jhlP^r=o#3ti#_VshroNOIN*rjDfV{$BsR(bfHn!q=RE~oZTp*^6i<pB zNd&;Q!LHHe<Gz>FAyI&bokkQ$K;DY-0>W)VIZZi5m5Ee0)^ss-xs3fhJp%H~2tG_N z1AXNq`-qRMURhrqvA2<HiESXDm3n3#egscJ*F$njd{=|En)bt@3hha_E)n3@^7oBq z=tjHI56ua!x1yFx3JwpR$+O!aE**sCH2RGg<t*`8e#n9%ofm_{(AAC07&)Hk3#QeB z2QU?zAm7bs>f^rN3=M>EHv@9y1Do5rns10lJ&^z2G%F7~BYbmoge8cuzi9(rCOZn; zh$UaR;xk%&YZZPb-H!>f6$%pgmZtSsaxaS7`A9Yxq4S0I2@qqnT`o#AJa|cUXRIgV zaF17fc>%1DQF4^`q8*e#MFMUtOhAm-L4UM(6j|0DNT@T=5-zm*V*}o5C^$L$aO{=i zv7U*C_hdKy+u=Qd=!95L*5G&J^Ro}{X)%qGp}|h5vM^eI4&stINY&N;ak%bjtX>nn zC@OSMMxz(4Ty;zJ2{!3a#B{Q#A7NS+eF<()3Exhtg8VsuYB~P-zES{S{%H2|4`<AG zXW;dwINy1?D+{kVZJdBNlwuS4#8bOGVGcUpcfuFwlzCej7v>C(%i>%0FHf(~pQ_g( zGwchJ&L0yAX4HKAKUC)B2rIq`7ZiIuf``gI-r4X43V%r92!5vUN0nGX$p^Q@B7?@$ zZ^w{R*^j#t_&%B3sQ+uyz?Y|iuLYd@as6ZnjHqMSoA4Vi{jF)>I{{}pLy8qCjx38t zmsQqORo=8rPPUE9YS%2ox3ep&F2+~F(Tnpv<6_8e!o9j^L)G%t%SxJSqw^b<uNHTe z6>M=;)lFhMPob>AzIO^|J~s!8nX$gvTqY)axyL7CTvN4t#kGrT>KcT4be-x=we?I@ zB!JDpYu8A^t5%q`YogGqj*^aix5+L+xnIlhK?cIO;U7`_C2op0aNnok#CNU*{*MDr z`A4U(zfsZYFb>TxnE;GCoqY~C_n34#uRGv|1D>IXW3UtdYzN#)PuKx>rn4>${96vV zGkrhuqhY?P=)w=tM;Hy){jb9X*X?(^3$ELv0-v_!M@-U{Zmsl=Dwoc{-FMQhm9$V> zrV7paq?6Mdjh1yk2{+-cY&^5aA7aLgJQpG^(>&ey>DEd*f825#WmIuebs0b?Vfmx5 zF#jp~Pj{`fB2D>q{yMvKYo!_$ze^)3Tk~Io)2)@tlzd;I5LthWtK;kXI|DE`?-?ae z?H|_A<1lXe=~rFWfdySND!%jEJB|(R{7L4x`KxpBXGWze>&gkjTB*80FO*K^jQ-M7 z*FWiVbgqENT&<PbhN&_>x)cvxv;Uj+ymB*k^mueWrQ6Alcd*5Wa6&PhlzcB5k$g>i z6XQnDF|BUXx~ly85!sr$;3)(1z3FbqZ^MIsr1X|ryHK_t;7%nrQAfX}!%fs^nb_*Y zQ9O>f!`73DQltRF#4cxaF?KfbiY<<|<te=Ux(<TBIN8P)E3|TPixvBvsr*vgu<~0x z?uCvZLgz3yUZ)s4h3YR{8lVEYsmdF)vT~smYzw&r-h9He%dnRl$fLfkEcpmeSM>a_ z<q_Wn41Qaz`F63oAL8HObL4{vOLBQ2_gj^|em@I)Da2^p!N%jOSl8qvmV;f$2*Nau z>jA{-B`115a-<%9Kb8;I4-a(GDaxeQvMMNS^<Do9w&^5(9v8pI>{sUq{w9WSJkF9` zz`Nl3!T_0yD-Y-4RoE3E1P}S}t494T;27PTXvr6?u8KC)R-WjToP?#9!E+I&WpJc~ zO<&63UlP(c9wUWVT#Wycsd)@yIE>g+Q#zai;tifKa3WK`jQ?T`9vmO*1*XSSMO(ck zkPih?J{*)6PYuB_pJG08TfoougpB?J6{mvsh@P$0f`Fw0?R4}%{kMM0C&#>zkx=kh zmGi&j44m=`W!x4;gWezgn1(A-MZEzw8$X}Iby~&n2w7R-SLi^TX`^jQahW10PqNGA zU$d-KHC6|RAL3CKRUns_k%BAME?-kgTIQ<sIWIWpke5{cgmK=|vY{Vt8p0Kd@SEa) z1m2?jQ8!#g+UkN2ITKT1r(^jMiAg!83z1Af{ChlQ&O!p_u7h;4Sc{rV*#~J(RTk@X z<ttN>cl)%Pb~;(?WaFok#dLhi=T4*9uI&H<>DJ}cxZhRupROz>26LU5!`As~P&!$x zOXc6E5tYp`&S}!gV%t^yRVd_BmBobme#EVDW(K#Le)`9&YQ5GdR1sJYl)E(jS{6(z ziz)iALma1Z=U*MgD_?ato%Gv1m*nfi<dgqau5-}{1p(m<;B0)d$6k7#Jt=;bx2Vt9 zNXCTXWjIE@Iy-3Xi&#(Kt#`BgU{=WbaM<cHy-$R@2eQK6zCi2YQXA@L&nbmq5V7WE zOI@goOXFX_UUE71`F>|YT`pomlW7*>nchCLXiwv;>dpubhHdEjy$bO%A}YFRL1x+m zF~o$Jk?;Yv;W>VocU64G*=9WJY{vb#lwI&uk+CBmAIx+Bb&nV5*c#u{fW6nNee+tT zP0k9&=M9^g3w$lv*}V(SgUmDBvmnRgkSVYB5k=sR#oKFrcyP!mE7}G$68msQUK2}t zOA5M5pyW0FrEEAKAN&+#k`nGJ#$L(}iml1$BzyqnEy<_CWN$Fm?Tr*2h@NNc$UfYi z)$|N;pFskMThJA<riZLE_Y(G6&w@Pf2t*(Z4$AW4okZ-gTki<<&c^OLGHkqT*!^mj znRy2!q^4{#Il=lgb}r7ao50)>pK0uV!pvOg<EHS}5EOd@wGz$u4xR~F6NL46!MASk zZ77;+?C>4l<84aB4ra6*^Pat*;Yaqv*MYY&1WwcM?b|&_aw_z#Lx3&u;hsT!+EvUi zIx{}|vy#rkp6uw<YU_;ZSSAzC5Ove#tuA`I>1CpNk5yZX@jaJN16?pY_-5+<>nh6P zU&=jD(8YcB1Qj(8DMiiH|6Z7RxxF+?KhcOcI~L%JF2D5~72i6rFA@JzrmyIa>;4jf z{^Owa$DsAw2;Z=bSZ_tFLyvH_Na^LZO0uyP3_a!1PrB};QgVk>9#uCa^f?LA^f^;w z-*u$slc_cRr}gEm!JnW#IM)^q-MNo&t%lO%Va1`A6&YxnsQkqtJJUp^Mxf$76Dqew z-QJ3Gjt>J0YiV}a#*V$U6v}eN`NvWyS4JDKmO>%2K*$UBcrt=L0WbeDys^y8p5h!d zgjJN`af_KkG*%~C3y9drPOVKy?^xNq<xV7Ey&JTiu_s06vX9wkiLRUp?c5fUy$)6x zR8xmKD$yp!NaQ1HA8`6y#^*S|$hOa%b(ZY8$1>IiA0a<^-tiZCO?I0NB_j)w0a~(m zpBO<hq2=Ggh=I0lHDsghqJ@p<HWo{hS@;SS=UF@hI+n5S{^UP{wW;<sQa({1N9AK< zvDa{|g;kOGip+Tqb4IS#J~MMMs^KNjyAW9x$eeFRHOxje+>C07@)+vooSqC%&peWo zq4|yCIo2#<4H{gE0~7r%GIBK6zt+Jb+Y4&=DJu@Oveuflhta5p1&`vPN%dy@r@S<4 z+Ut-Y)a{3I3q=<<uYjIeeEr+oG$m{$!bc8VjqhZ`*6WeXS>hDTjNg_Uh{PMQjyfbG zP=~uWlp7G*m*FtOv0;yK7ZqUQya@j|`NPQ+4%RAo5{C&5*&@Gu!s~hY$4_rwatdSc z+%mi#8XSH&Y}|DLAf;`?3*+Z~I%2(Vbi|n2KIm76%5q5!4!!bC>vxh8>rLwP1_@<C zjW-<SsQ~LyMeS|5zJ>97S8!*;jL&WZpX8~j)PIfiKuwQnJ%$fIRpj59vv@%XL3vz{ zqc;YaNd;XdT{SA{2xvk7$s=ig;ujL7j41VVmDAOnxB@aWI%O?!%ObN_7BB()TLKKY z%;=)9^#{R(FM5o--@tM?9RC-x?N=VpMNqge&NaX2Nxp{=uDwO*4~LzhKO9cJfY5?2 zhBM{D9;oYwviJ^^SD#=8m&tQt)(t9%MUoZtLwo`a74d|lf<j~oiX~K`i}a5CA=xDI zZYBG0@{2=1jIP}77+_;_46?G>@j&w^TPC|G##{6WGrnq4ePmQC6l`p{9jAs9us_jM zjwXhFf|_nbJAPF$nXQfc6;SmJZf5tCa1?n3N45p~6Px~ug+7KO^lkkaz?dPI?aS&3 zcfawuu(v0?4~K>F4A-=8MJ_!u7i*8%ee82)LBBb(-z+Nj8+X;CyN8P&HSXe<qKH#! z{Uwrlfud<7CO+%M11D%dX~<2MA-Y-l6#3OpejNb6!Xt;jqfUOC1-tki1XyJ+D5t{r zdI*tb?c?mrv7;Gb>$k>zdvMekvDei^;@@K<G1@LfH)-8(w7rbF35t!Hl7iua$HB)6 zP|lqvpV*C&)T2YQ$w#bXsx;V=0eeNKMk|(lM$3QN$r^4{A(3azf*y0`vzS*zpg8`P zECeGy#jzq^a03;kGQ-?guwOj4z-EOSM3+J5r>ijW8==r$Yzi5z{8E#ZX|giQIKh;& zGAlTL*6_5u9y5J2S}>-ygQA@<yND%^j(IkVq>FvXP2|EC9*T2Ba}jy1L|*(t2JJx& zf*t7PlFBPM2J(&P9HZ4B8QA{oPJRwr2+V!&g{`L}nR80LuYx6v;$WqHYlSMVPbGw} zie*BgP=afBew=k<vK?4Yncc@R_`YoxJYmj!8#7ChanE#7?ptdjx-lv)rYeXfQ#_Ql z#Bz$>P?-4IQI0J}8_&D3e`mBk1c&Ai`w<fxQx#*9xeCc7?-X4e{7HNVyh_%?E9J0= zJqItvB>$$vMWP@N<%!HZI41RRD*Dh7N#=P-LXi1EI6x+9k2RUR7Tg(`-(?#P&+JMT zVIGBiiO!Q?=NZC~!oGu{<y{Ob7^B5(CMkeaaD%7~@q`NcJMNn%K93Os0r(Q<@5mEM zU|_t^Ok6W{qbBEI1V_8WmsdN*cnEq1#@*}1ieU+8i@k?W;%`8`#@@>?TK^s05_dx$ z=bq=-%N%Ibc*9(@OFVjj3i}2-btJyBo@~an`$mevXxk7I*~r<%G3d!wkdv?viy3B% z8NZJc>B&dD1`(6hV7|(K<w*W@I)C{<5niUj!$70PxlGW&-iFbcmvf7;cze?XP!80I z!|%#EpTw3wim>rhWQicGI#NVZB1u`y?8Fa{Vse*gg)QJIrnkq~aZT&e0!&DC*@-`~ zINt=qSb0>}mqUK$q!fG2R2)ZJ!hG;olrR#%sb2D&oX*V3wKv_x+{8Fao}-M}Z5Y%* zU-J~+3VJg!`K{q$yBI9P#i4@zJ!0D(<J6m0j8PMZ{vw*;N7FU{H7+5)Sy{P}`2AZ( zWjG5NitOyzFA;#7Gb-D!4<TE*lh2%cVi^79n<2=VsEK;yY+5(v_Y~)Wo=P)$3%i<& zKX~Rx6c{7Py}a{;_wJ$RVMLyHgx@z__}Ko*Rf*OR@hQ{(G)0SPVLW?(07PLrko*;Q zXt;3tNZ7)9Wb{l9I`}FR$7}1`{UX|rI%)OJYla1TLkn$~-g))X61$AO8_07MbGT>2 zX2MPDM_sgfH*BRB2F~r$<>}q9CFS}-%0=GE6#58Deu-Su>o+jj3!(KWEz??86E;e_ ztffn=tIP4;N`-axmwFdSdfHQjv<pId+qW<^nBMkO4(%d`z0R`@o}rvZ8cw~5uJMwC zB_GG(F^Xw#6MVGW`-N{^Gb$uv`(>Tj53~@9uH0MP440Oc@9!emet;}Adt)uIXnKof zQHv$(MRO<PkU&pN6j~>{9oQn-7?YrpA-yq%(DaIyOcyTE^~O@QAzCsM#pu@)>k|mQ zF%mDF5E3B3I2K7PBvuxn);*Hz_LLIF<a{!qUUI_VFzO;6Ru{7tV4TIubk<TZu*<YK z*kQ@sG!^ny+kT_<QDikTDsmNvw}ZmgW2)4gfji|2=v7=)6wsDi^B}bGG7LH-wygN! zZ6ZgALRNRvTGM7%K#z~aZ-v180Ly7+Vs)Nbk}bxUhz0KAFzq2sFvuIDP~xi?2XMiy zy9p~06+0a3%{Pzy4v!m^7U7a2puo&-dJwxU$oB&I>Q)J|zsV1Gj@38b*yOrtsMf!b z)5ToyV&ePa=^?AzXq}Jh8GK02W5K0zaf;X7@QfIq#G(v~9WPQ{&Q(8zY~E6ZK)dd2 z(_RFg;hCbDeHv(N{0g@1<@zXoS8kUmW(1ElL4L9`Ogu#;K=!<B#e&vcHVPBfg)qS{ zKI;Vc0f58cC9-bK9Z()faILwl3EiK=HfxnqX}mReiy#*JHsPWkW5e0-L40fFm6Tu$ zR)kpNz7D=q9uto*Z4vcmv~>w7E{Zf#gIllJ{U&6{UUT2D>BVD%IK>t9ABHSj14%`A zm}r@(#X_TP6LKlF@4zEr7jtD+1{wt$An<`Y=o!kbFL=RRzehAEYy@**&6Ol*2Z~rz zMzIKm+)!_N)gl?-d~PqGA^tMA1qouUEaZoJIK))ltZ^}4;Wnk2De=tApXYV}UsI@{ zmV`#HM>|Sw!k}eh69!L*p{;{rob1kg&YX#5QEM*808vsdkjs>~Y)Z(eWfz2SEN1T6 zN&d(0&23>ynAGaY(67EB1e_bp^@C!@U;kH+XY+Bq;TL->AIu`pl7HpAujWy5EB1!J zV1L-cbUFvib0c;Z!eyJXv5sP!Km(#9N9&y8+iJ+&v0Rqvg;90c;@Pmo%@jeV2@xcK zs+x~|vqgC&1uvA^YkXn*27jr2CFFQ65em(jPerh!!sb2mK&kbf8E^KM&P;}_Cm5Vx ziU%;EPHLTD#_zz+?+f$<jc@D?$8SN;7>0tZi_jWM+Fmf)*!b{TW5<kK^}$qxf)Pdl z!Nmw_7@tc4#$5~xi!-@$Gj;$U?FJozO&d*sZBr+rDxhZsiz}0YA#>)CdByPXN3ao* z1>sw^d0q>+Ft^nEX4twR5b+LTBR*oi$JJTB*`4^DTr2I3c;7Sk{S_;wQtxA7YY`gR z^T5wHt^YE+2hkCp7mKMyelCr$Be2MXuBuWiVOo7*kx1fmrQQT~^~3v)n){BH;$g3_ zw<~PTFO1-v02uTMIO?{?pZr9szQuEGT26Mgsg_A7NhRcWv~~<2q9TLnTjgk87zZ&Z zqa`2=Pf>Cp{n|SyGZ^}%AjhiY#}To*Q*}vs(>Oe9ZC-fR9cs2jq_X4}#PR_9GB$$j zJN)LXpNnR1&ibY35VD%YJ!J-Uuw^5tg*FnX5aF0JOuJPAXSK?XgdV#^AYoXdjc^%R zb}M$Tt$>U8>|Q35tBK51;uRnj*xA#5<PhPjog96-k760x6Dc^3UMiw<@5RE1g<TLd zp@KKC%2&y99}k3V7lcS;GyZeohomdEW3bd#6nk4GBK++5Cj7fdVKONf1K$Fx7`p{P zv8GKttwQb;A!-EC{r>BRWV9Q{MBA*QnFvY#8LK?Z_u=?gWY=kb3{Z3(?j+<HZ5}ja zNB<G!V!M|e16*M*N&XITM#hhFbCyqUDI4we80F1bI7x~J#k6I#-vCJRC&*X!xWVr` z<Tv;H$M0X|{1?G+W>0rab?cyt;|^>CqwSe9aWo-kMPuVkod2<(U`6rE+yO8vxEm7; znhQ2>!Wg4%s791Cnh8CJdO}mP;}9`1xP`bxZ_Pa_ykc(TX`HF%#%#D#bE8jr#N3zz zkJx9V{1itv7!)xZnh^6bg#5wS@EZU)EB*-u)3f4#0G65+zxuYUw>_Ao<a3*<F^NIw zMbpX>6R-+PiA&gak;BxBa!BdJIACH-K&w`p81@VZSG{3OtYJ*7)^lOZt-|x7>3xp- z#D$n`MP8$3SuP`yNPxHz@0;V|=y@)bYZ`5}C>h3d)Qp&k#c09F1Jf)9uTn9?qSEq4 zrsMV9qi1DIb({o9IwO{`WC7M@3#-F1J40lPqUR!nlP8BM_8MYwSfaZF?o<rmZK0pU zh<P1Y7;0tzgBw%&@91UslT7EV{sw1t5f8KaRs`wN>Jdglqt^%RNorOPtD_an>Z0$D zn$<<8Mlzt|Htu4hap-}}bdA7bRu7_enDM(L331)a<v0L&HgWc!WrO(|yUOTE{tQa8 zs0UU@@@E+IJEb%fdn13;{Jx02Tyz=RtLFEhp5K#2NEe;El_Yx{^ZEB)M>oC(F=czd zBM-UwF=r#g`Gpwwee7`o(>jiE9eo4yHZJO!vtSGH2BSZZAb?|rtz*E+F13zEW<e4Q zTivBIMaxASz&LEq0#517_i&yBZ@H;v`E}FH_<T8}e4`7i?l6P|B@C=HIG&A?3~Idv z!zPqxuKSQ=d#qQCcLC!Yy#ZqfHv(I0z-S>fY|Fw%fgGJEIT&rf03d=A$fZ671_*6Y zR^DE8YNyn|y39*%L`q8jvFBo}RQph_+TAh%^Xu6dI>E5~zcasL!sq;2@Y<;P^#BG? z&aa}QiIvcsm|qJqzpDO@Nae{Gl9%;^Ap4GdPNHmpoJ83)MKhPN8N}wzpe?kKK#l4K zVty4s%&($Jqc3#{B)y`L^Qnn&kv;~`K7`BoXy_G8uGw_VuQi;uwV(5Af;EGUd^Nvf z9#vDObAB~P&#yJ?{QZKEk@=PWg8e~WG~j{{6RIE?JzHSHFGz&{07>jP$PU!B#Ek!3 z6r5Xy!-)n7y^>u|L`T<a0XnfdVH4;7c}c`PXLQU$5z}a`1MeXha|#<H7mIfGrkCvu zEezY^6i;)Ew%?=Wh?X`+NaZxAgw$Ta)ltoGOdCv{xAMVeWT7fTPa<d=5`qONr}OUj zAi?%=cD-Ww&a*ss;x%`ma7-u{6;jY`&g?eVzsEr1?m3vjo#HK#F&49ndyhgqMP;W> z0T7fgrB|p~O_X}yFXe=SQzb0$y5E4@`o8HM3h#R#^HszP5r2Le(8PBC8xVZ)@Ny5) zkOI*xh`{@h!~6iRu;@(sn01*9z>I-ei2IC?-xk%Ra4<b`5(6BFIG9)jZpxIsL+r~4 z;#49MN54KI7of+@eaA@zaIB|A1WC0Cc^xniB_iNxvkyt;rE=r!OYs}hc7F1kSn2EW zQ&)FW?fByfx`94CBA3K)qAF^ytSBxA_Hwb{9ZY^SCCB3uh!!#0vH@k0%8{0?c`37D zwBmXOANjqk#%+o{s90Vt;f8zrUTg#NHjp{<X;Tf6M*B|%kSpU^lTvb4`({FCUF{I; zHVV8+Y6e-5nn8|;L5Q6PZQHf>8q=(ulqRnLncQ$q?Wgi;4mK-7IO4;Gp^pL?uIzLy zoyq5##hss~547%&PQqaVP7N{&x;hq=iOr1#XrJ@5&0cXIAIJfGG01%`a4j+Vd<6Ti zEqBhuHd6=ah3r{q7A^4Md?emj$lWHE0;9!cI3h$_n`2sya#p|=m(jWzJsS6NOi^`^ z#NPOv^==|tjRzGXaMY2j+NcdMp8)d7iEbU8PjvI(uf@5EeR-nm6*1cUGGzbT77!7d z^>5q=HL>Mh()O}(_rrvV<K4t%zZaNaw;vXWwoSwkH`(PTWVjMl{-(SIVjYX1AE7ae z>tQctMKZ+(rRjYe7cQF3O!>7d?sSz%I<Sd^8kmRcUWYKl2eIFcHqi}%|4naf;GJLx z@)6mEA&@g4annTXTk_i2?vS^#K4jUXOKtV5op+pqpo+j#=qa(VnQs>d%=JC;kfJyz zu~$hs52JDO$l^`3<m|+g2e66H703?&mh>$)^(B^>ZzO&t256(Lja>qJf(3^Y-$oQO zE*K*a6BYmkUCA4PQr(HWUBBV+7&J5YVs#5DJ+NocUVDL3b@xJaA|yzk^+70g5zZMF zE@wTOgHImt?Z9yK08ZwxXFtQV_>Md7lVC}P8!R}^kKZ<_K2h{MyV$hc!3S0Q8&KzA zxU8{4DpTi0D@X)5_`egYm?gQ`LwFYlMffcJZzT3{Z2NyQXnh&2250v{X2bn|p8Mj< zZ>-xuO}^T%jsI#3XcuP)q$4}=5K_Q?=kraEAWk+0&S{zF<wB3Tyf1}vubnD3!==2( zqM!tt_?A2KJW<g5Z1No>qv*%j2%X*JTFdUu<dirIdN(?m<R_j0V#~vQgg2c*Iw3mo zDijz-e#x2;mqnaG$xSl-;L@;lBz0dW_F6OEfX7Ml`AuiZ%D}O<b8aR7k$d!Dk32Q# zX%`t+$FB7Bx(^n{J5ez1UX2Nu8;GLnalsJI9MT@<J}ax;*q!A=+nW}egFisCjo60~ z2cipZxa}#$y+`(>tK+k=%zWSM{xj}dK4yCRO*>o4z;*?0fPEPQ;fmbCh`2F^?OFQr zpq~A#*uhNPnZkF@ND^OemjE`qDE3NbpoOZ!|48Y;`#dfTeB3cZViuxw&8t%4<oyYA z9~Q5;$HL2-*vs?sc>es5y|`TV4AePBF0A)(u;ne`X&i2NS-0kNES_n!p3CwVJr?L_ zECU=P-mL+%7ZMDXwHrUp0SxaG@R5Z`e7P?+kZH7CB}TQ+qr(PsprV}_`^7Y4h+_sI zuf=->xA+mkUm9P7;e&gbb~q2ELTe-G<womlmiKUUZj!ngxE~RF6r?}Kw;W2r``HkY zqFgYb1;<{>#33>Li1#<3w>@sOwUUZVt`#xEV~N09MI1<6EU6GHtV5VW``INbFin$I zDdzGr!2Mz+B-WfrCsOohM|s+LpM}x#b^2;DFxsM=PInaN@iY1eNP+M#`%eg?)3g}c z5K6Ke10@<3l=63ZivYsKFGR!8a~Wfw-$EwOMJ=<*n(?3?)nIJ6A09G11I(VAVYGdR zfp!p=AeZM0^2BwrU=E96B0%sS{0(B7M+uA#eBlRP(9BYSF#*9C$VY%;!#g5H^AQ$o z#cU0^B@_1+%%Ufa_77lSOrDRTb9}|z`hk$Wa7hW6-uev5Kb(A0kT1)-i$i6y3Q2$k zAxSDT1>;d0GE+h8NPdMfKQHndygP#V80$pQcwhG=KZ~RhQ}em?C!}Q(B53}mN`-Q# z(Av1ERmww#my$)I&e-Ce<rfJi=W)n)o#!I|102r=FpRKQ$_ub!u#q>jc<hZq{!Cs4 zggwPve`hwz?1A)%!ObuB%{UV0b0kI&C&Oc@dkVaL0d`=}enu6lsgH;`Vn?qu-jt_r z<p>!AG|wPD`lsBO4CC^z#=vMa1Igo_!&?Na^rD~O**PaiQdQFWGUrF5Z5jC>J92U{ z+||L}l7B)&g_TFKEH$M%VnxxZ=cJNiIuUDD@<WWB;y?J+Pkw=Ef?osTJTS$tp;4+i z#xe~D++*)`j5#_Bct-g4Y*0zaV9*|Mm$np#J7Ak+P)X}yP&_S)qj4O_V_SeeuIO-7 zC@~Q4vtZjaHhnM`L%I&(W;hT9<3^a9Bv>=|0_=NRY6lJqDeNrl4u~eESbGte!^FYY zP%ik3y<y=5k14Z^iW!|w_9_rk!qH;#bu>xOg5u)O`tw3nH`Xp+<DY%;<riOa(d?Ph z!P=n_5(#X#4mHkI=Me#B1_mNeMkzm<%lOXT>Dipp3K;<N6=``uSL$86=Ly62a2ug9 zHYb+3V7fn}XUg;(K!Ve=m9C0r74J#f*KM2-n|N1NJTo#qaCb&V6F!Cu<D(Eig0|pC z^L_q_@A0mio-e+~TQ5GA^8@@S!(c?dBj42BiDVY?+Y**T@E!JT_{s0?J`dFz85tEw zB?1t4VriN&f1KcrhpVP{c{9(>m@>UEIObW0`OGgDzjBpcKJAsUi5n-de0OIooF2$% z24O@b&sr4Tm7E%Dr?+@xlQvG&Iy*8iz)KZSREHp@`D2C48x67ySF;SaiE>upAIe1h z2zo~0eV?}ahOvx1TML{8Qdh`Pg>yy<r<52ApkSmGSfU(k8-DTw<}Ci<OU6au7vY8D z!2N)iDfp{!OBy4nFX#?diL&iP70$K9fg!9z!9FV>vb_2`r*kEZSsT$lSZ9YsQLhp8 zPaZz1;(k%$fq^%S=sn5wk%v^XBI<ca;l7L0ZCTIIvvN1}ti-eCP0zcFdR8`03{EeM zO<FL0%f!t4$FFB_QKlCVA`RX#<wtwsZIHi{-q6I%y%Wc6HzGaqp;M*DcLZtt`29e^ zrjvHnzR6Sh(Wu1fQ#h-EqQ6DWgPKEjIexF|2lzFG6DN*p7lo{K_7v1O^Y>*jkawP? z@x#hhurCv&^h{HoO!3rmQ3oc#rovfH`|rPz5}Ll<d(F690HL{vey>XFQ?fqMcdnma zCc6(6Hws=6@0SX1Nvhr}M(X_*V3wfZr>xhevTpTiC>!%!yrwQ%b@75l*Iv{ZU0!*U z=i-K{Rm(4~s##Vo)SDpx6Pc5FGewN8NQmPt_1ySb78pIQ&W4-tEebBiIKVh&5#FNO z^ONw?+=w6HWvZ^fFQ6XJtqQIcPUv(tDfocmr5GOp`>}#o;Pi+_jEk^;g&)%&5c?na zHc`>_w1WF^XhtK(GuQ|56ZA|Y)Z-Cj7wo^`C(==HF;)TgVWdZR=X7{r#P}qg_<BGU zO8K>wUVo1wUL&T`Vdo!f#?$M=^08mI&E;v}^V7iDM#oF1HVwQ!4SZc1`1&;Pjx_ME zr-6SLaDMZ=ol0V0#JCT8XBzzd3cufl|AvAODY%#qkk0#Q(wTyG%zOtFll0uc%Rht% zsF(vr&kwT{yhXvq9D(pTfRD%L1qy$QQWh!Z3gCYs4gNo;fj6pjwBRJ>5v0SD8q(=G z7akZfAHe>Wg8M%qz@AcRd48tg^$IS=c7*jRc+00G;%bF|P{D^3Jg(qJG(IOnn2V(4 zG0;^+Ju0{uyAk#=1^3OAh+@2klZSJ}Z&3+|u@`Xa4H}Q16=~pW(!lRX1COVHe+O_u z|HYC{F~-x0Z|~(-waadVI(WRQRJp3IQ9Oe?8q8;NE9;up;9;aOQL38jsY_}Md}Tx3 zy0Os8rW<Q3qjh5gR@JVl8V_Dsw`O#NhGokeMy1dI<ywukD;#7uEURmZx<T~~b(K|( zjVMRMnyQ8o0#NAX^%o<X#wbwgFTT_n)Yx<*6k*kXOHkY8SzWcdvi=r^!?g@5x>l{K ztE4u9;F^_qTsTx)T}|J0RiLk7+5CpO)yvB2R!Q~y#dT5%SM3_2KvjRJb}d~?mTSQL z+GYX(SFWp@qT~uSB7{W==ZQ)pk|Su@)eW_nVwXp2>qJV9AUMf|k!aBNg-@s(mMy9h zRl`!G%Amub{fjwh?=@BHYS*lALPB+G#=MlQu_K^&Ngc5j6Czb>Rz_<G2u7E$xx|@H zF>6*L>*&R79iu_>s#eynS=@9Z6q$)+G-}D372`m`Dp}fM*;*Y1LC{!WiD<lI86@FO zYRi^4G*&6z624&7E%h~uOKcH!s<NQr5ODD_`UqNa9hway>ADdtbof~x@DeN&9*HW; zt0<J+*Yg;LMj8xPV(7%yi!g@>fT8sv{4`wat9Qe<swtgt&P^Ksc?bN%4tS-S>WS}! z-{yc*_R{IJJK$$K;NNq=&vC$i;eb2SKbQtSGaHd%-1IMSz@6!Q&jIJuqUrpJ1J3oW zhQHu|JInQ|1O5>Q{$U5)neVrh97j5x>Hi-G+=<`kfIIp2X9wJw?~nuTOn)NRQ84cM zs!s#|u><aG4=+35PCmTrfIIX3EEjYtUniYVnVEt+%lox7@Hf-IZ&q@yyWYz_Fn;=0 z8hC#i_#e~2Kd$6xH$U^!z#mNme^AMBOy_+3bbI@48n`_7koEX+2mUT4uQ8oZI^a*I zfg4I*bK}oU1OJNyp65t^!Uy4jVLCJM)AXO~fII8g%fSeS_|A59t^@9DS9uP&v;A~9 z;Lh}ao(6uV61d%T<~ra`dj6S-!npA_q=Emt1MW<xnT1j5IN`52;7-1s!A`F5o$!J* z@S7cQXT8K6a5{CpY)S*)?tnY{Z=VD1<o_QWa3}w_a1e)a^X)@SRKcBm_+%RR>@@J} z(!kd{;Li4Qw*&5^|KA;OC;opr;7<Hc(xd2imbW|&{Htl;2?yL+zsDSKCx5nZP*C|g z@pq+xA8^2(>CE?wWX9CX&1v9YO9S8MfIHjUpB!*D4c*?}NdxzN3`j6+CuF(C&vU@Z z5)Hq?0eAA>_&AVY-0kgCY2b6yz`y8#JNdRM4SeW=@$;R)4K$bx{G9dmAqU)<{t^e= ziT_F(`0+IG@2mAL^W{=j^KFL%?#y=zCkYrge)Fsm_&>p^)7h2=e(QxJ_(ak8gATZp zo)2F%f={Q$ztRDB=3C={JJa8x;8T$X_wuxP&4K?J0CoBk)q0oZy~F`O&jJ6m1D@xA zU*>?%b-*uoz#|TLp##3b0WWaCzv+NG@dp*$U9L}&I2h9JEY}qdxF2D<yvrPLXL)aN zz?qfCZ*#z%<^7fe?kw+C2i!^jK?gkFk^Z|5xD$W9L#}YjEi4NS%d3_+!arC1kHGyZ zu*?PDqTsi=;4MrL<_FSBrLXsO`&@9nult${uJ?7PseCk@dSCZTF1X&;<vj=*jj#80 zx4YnFO0GTNf)6M-?^QU{(fhi&s(d<qz27+31=stEOI&chuc-H>bvk<g@Gcj=-ap*p zg6sXmJ{Nq8s_(zJ;CkOLg#9UJx%9r@y)L-k_uJ}%>wUjpyWo1?PwS{-_GF>n_nVO= zvQ5=X3nw=i{l1#U->%>h7rx&2+w6kteZMXje7oxBGMCf;_aiFHp_av|gaXQy#ZKrj zK8Kr5u6;>b06(Yczf$@RsP@L?9rMXnNIA-8pCw$eTS0N8>B?6JC^l$sT3wJQ8=qq; z^LJ;b<14W$l^=0ww9S2Q?G^#*Z@D``1$X0Kt>UZZoJyib#n<D64$%D5{;S{^kN;a2 zN(_FqNkjfm!cWK7{O9t{&3k}6CMOA)FGwr(@1~!AH|<2;s^ZtH{U6RpJfC*wKN+y` z^3R!r0GOY-0^RvTm*XvKqBSYa+9!I0=#qlVFN6ARn3LD#*rLindIJ2zKXo~--`xrK zs%TSPGz(WMJ8?rY&s^Wz2Ozb6^k(I<ZKN(6(vj_{K%l&H=#`fraCs=D%ORcaltR0m zSy5Spy)^rZ#%S%0(T`mra>hq;P=?K0Nw^w{ONR2x(-<Bd>@@8STM*0G`A~<5T%VVK z?J*y^|3||76R)!$IV8Rf=st#f;!mu9SeM9XeHN(DsT7X=8Q12%2T$;q0me>U!)j_X z;}2{GNbBd;*Kdrr8tfrLjdlz1ahG*U#5-VG(rd>AF%pWK*}@y~R^rQo%ChjjzeT(^ z72;<`W>%KNuE4KGlEqRRZ683=;qLb*hP?MbisX~;<3i2IxA(gMYQdM9P<^&%7dJ9- zC)sF!9yq1eYsmlrywe&N*Hx*q2^Z1iJt|)PgjRvvGfS;MCxgI4LMOVX!}d($zN169 zS_aBDo|jC|UyBoYG>4R|8D~Rw>alLbx%fQx5}5yCXX7O4zvGOTED~pTBmhPYX=2~U zCqbkBXTeAOG6fYphC7Jgc=$|jJa}aq_}Vn^)DHXNRdvy2SKqj*_U0z>&WhfnUxN2q z8msFXR*%LkS$$*OsufkPLmP1#AX8emX4$;j=<4O-Jr(I%=8UA%Pr*PS%sgp{aXA}q zEu%l+fO9_3@b?^Wwm=O(lNA8N@txDShW9z(A8^3^aMKW9p$LDW_#c7m`cdH1w)}|6 zeA3A-e{d23Ja=8ElU)vQLWOCTmY6%46nROLBQ3E{O1Nu^O5M#;Xemo2oAO@>7t=i5 z_~~R9KPv#{bY+(-RD7Ar$iIu7o^-NHK*cW~i7H&0e;S-lb}3WyZN5T0RoP{;%Kvm_ zm!m3vnJO^*#CWn(I@v|vx%#RusIuMstB&$z-GY;sT`sw7_NmG)o5zt|K7ba@@1llM z-*u?3Dy|y)p5W!UnEMFnAMWQ&p2vrVVf*<(2X1_eFFnLJANbs3+&4I!UxPTl^Fof| zO_IyUW|`~A4}wj=#|#bRhPN<M_mcVMi1WL#(=She%8Q_XZu|o2d(iT06j4%9W)yc! z{*ZCfy>U`AwwTung(X7iFJ3(vDYMYH5CvZXcrc_ZdNHJ{kabW{hdS7tR@?(?LijAU zYw!>Cb&b)+%7)td=tZ?_s_RZD$FO?S$ufR~X;~&pM0L+FV?N}S$kfHWXvpvY!(c#y zxQ`mkz=IpO=35K|KR^}u(TqxCfj|*y<RYw9V5qxjPT44<8i?Y0;c3W54galgaIi?H zE<3qrG|8Cp?!n3Q-6N}<7oD<`;5(2%gdgE8j0hv@3$~V>`UO<g6WsIg6Ec+=yzWxr zLXzS08jF|BuUivc7G^`ky#sT3BVqDN!y>#lC$6gC!bA$Qtf6)-UXpVsfOn)JG^OrI zam-i4u*mUWRK9Nb`)S}`Q}nv={R*FHJI7<q2Mupgcq?4^nm-*bxSlH%__QrQVv;U* z3kU#4^Lr=J@SmzoQ^7=FIHxfw-EvMO)12q53?`sVmUbvRolJAG@wH6DJ!hxU@!jRs z?9g@qk?78MMuz)BMgNIpqOgkZitY)gDZkEF<KLj-yV3Ri`>h&L*_!_vOqqo|4QPO} z3)MVcq5P~r#?|q4{iWN_(K1bqimxp<{q(zOCvJrjQvE6d*8}6_pH3!fQ4M7&6LT1M z{?$?35yLyLS|~cveonz>F3UevndpF{fB`{^dM7Q7Or#%8s}PT-6=7C}P!tVQ6dG4( z&@uzGaaLgGA@wcWcrt|irrG`O+G8W)fPQ!FKTT_1#h^{@V7zTSnMpm}oSus^>pA@g zEWeu5`TfgPQ!DY$3;Hmpybtleb1m5>cuEK6L(Y6lYuC(QgsHJ=Iqt;*tmn{^otv1{ z|Bdk@GW%J&IVDA}%EUd!rdua(RsBehJ*PUSysYwbTUjnZx;f=!<ENWbbbO9kPNT;p zZ3hrYw|h=`T}3+GIfairjAz{7baRSNAqHHD=s7`y)6FSe<J8}HV|uzdMaw*=JE!bY z^dC@!p6Z;^spvmT7gX79{#8ets|zpFGm77T!Z~I3C8xa3*7G|_2nae-Z*NA=9lQ9; zmIM4iC*L(Ebr-FGSX|X`(HcI{e4>qKq@QkVCtQ#17YI7k-~W!~PHqTyW=eV*31ZuE zuA5RkRAYI0L4jQG%*S@_@~G!*74?70Se~L+(RH$8xqqCofV|LSi5}xW2^ir@98|e@ zJS$SJ(T<ZH%TG3by0Kix=UC-5dMwa(0D*M7$MPl>>2$~PudDcOOXsWM>BjQS3c*d6 z=D&`gZY(bxr~Xc5Ebmhp)aZ<q?WUi8mDMQBe1&+rV|liVex0~G|7b%~6?aYbXnvxx z{PN2#zeFw&PX4^NUVmf-A_9VtfaeUn=5E^UHE8$PxBM@&R}g0Q21NyNqi*VOCtDVF z=&Ve!JBjnxd%Dp6ts%3hukoL&W4kvpQpCQe5720B_bV9@?^C7mX_m2LVu(6d%=n`0 zVE2Hpdmtw?xr?AoWoH1K4R^Tcal8y@#4IF)<U5cM5?@=(&(pa12c<v(SOt&I?6#)B z(?YQKu*@fn6ep^DvPKd#c6K4nh7TG$7G;P$yYal<<h~NXbr#;PQg0VBTKCN`{{Age z)V209l|u*z%sUokG2(>omvTscXmU5blaxJ?Ss}sXLac?Liz-<m)<gj^@~=2E_nY=4 z({338rP%bWAusEoGCN|=^OeF~X;v<+kZ0$_fYK7Jvd6Tb*sgNv3e#?e?j7iPfKI^S zeyD%QH+Dh~i?Mq~Zp*E!pgO-$wW8kGT;;MBS6Ia>nkMxWuku>OH8_L!U%wa6V^<(t zs5mj>S4}aC?x}&land_d*OKwbCB}|<-tJejCl6Iy3+5V+G-LpfDFAq}56i*@0RXcA zoZtkS0D|%JCOLs+07ALeyve3@53_ZKm7^xBJH-KZPrHwG+tYpqEz@cr5I)h*h~?N* zw~ktGbss&y`@Qq6Jq5>R?y>p`hGzB|JD=!2<TJMQ8{7J<{_cam^?N*iWS8)HpNRE) zx(`k79yoJyzqRMc?+T6^=AMyvy+g*%r@M!JuzEtqwkNueBb8&uwzsUK0=lg`WIfK- ziu~U8K8=(^-ag~&-Nf7RxcBLh)r}zUQ`Wwax7+yo9%ILT@3Y?HbW?AKx5s+B``G#3 zeagG1pv(Jq{AZ-C=q=-$UEOa?_x6*tA>EGA|G4BZ?JR-<a7e#3W3=C^{KihGKI%6! zugjB4%H~7=Yj(?&Y@ObC;U*A#>dhI3Q)yb}bx<NZWpC#w|5e$0p{lC+Toc{f+uxk| z4(?mD9exOvgU1_7_8<=r^h86YY1?7bSkxo@R{tlu5FR@kFj}c=$+-I$@Lth^Kcn>y z0Iui~&JV(A+B*XnY*2vMKz{6~&uHDnuzMyUjGE}4qfhql*g?Z+WlFI_S!U&a)7bW` z8J{-^Z!nmK*^k>0nPz+=FEj{R%pvg2WYXQo(QRZd@eUc@g&0ujb~KxjEr}MFDu!fI zi1AI{b!2&{Pw86pWwL-;%Dqr$NNS-|5d^EG)$>mA`I#d3Fmy5=%>czJb)#(oQ;1(T zoLnk~1&k+VugDk#dy;+uY^58#5X2@E;>t$=eDp_W#g671ZN~tSn%GQaqYD95R3ahq z{2S{-(+S0nM|Ie4kywjJ-wP!<G7IXH>jb{B`yTE*;;M+T`<v&$W%VZhjB{{vGw=I| z@SIfmSu&gowsrWZ{t51k@*6wv`6!}PuYb>j2JuIb5HWVQQxdBV;sq7JsC&!UDKf_R z(v9ESsNEsh?IbH~Z0i!5{RUXnK2%Hf`eTg8lm6=UyTztyK(tA*-ax~A7GTop37{em zAcoPpMIy5t9v3oj2G~-r5D|LY_3cO0&{4o?qPLh6P)C{O6=2z<byE>ULSO=L>g%Uy zE&)eL@TA;;PtdC9Hrh&&$OvtSsnR#vI9(tq5<-()Bbo%-iC|nbj9BEEC(v{^(8eJ# z*(hT0QB}b<%~8;xvQIuL>U;dypV9f5mF@Q;BTN$=v@+XUXchG%5xQ=_2z|C04r9l( zi5>TFb!t4qi5d#bta})<`4eX4<MM6Z+t2J>kP}0gSOkMTD36%FVMpQtJY>7)jz1VX zq7%IsaDRcgo|$jSL<S$$`-^x$L`<MKVqNOzJ0U&oVp`xeF$;61y)@72u5NoA(^C1a zZz2gmaS*vQA9g+LLfFl)*%VqBY%ew8?0~arDyGEj>%Xk(?anV&LlxF*hugU1hq5V3 zyVXVSHIzb&V@0*p_Gs+fhqrG!5kd(Y?TrrriT7&~1i`%-R!>aKV?8la3Z10Lq@au0 zpxj8TrrLUV3qp*Y&xsU_ozQ*fNTgT3n<LX^UV}d!(H&~+e2}zLlWX^@6W71mHT*ew z#m?Ay>lagj#T5uNE2SoMG>Kn*Rm8#ARV;Ou5ymY#D652E(B(H{16>HLm&HKf-D3lr zQ-LH(#KH@MGN!oqCc}}Mv2$TL=}}=MSZMCX_#~>650E}E0O;WbK5x^7O6D}<i*trM zDP%(;n)VP{Bu3p$M8h$-ZVxgK+|T<H^|r|aa;JR2Gjgc$(z?&^W}Hxf2Hlfd^I0JW zAdX4K&O?yBn!XHwjGc>u*i0%r3}>$PVN04_Ts-ChR=)yKtxDda3ws}pSXF3`qm-Zu zm6g=_m5=%^9HAG2#h=lcm=@|R-2F0ilU7698K#I=e5FDspjOFE1;E*Oq_WhSotvbZ zJ~970bd#Y7D{`f7GNGu<@m7(E3f;*<K_?sLpr(3fp*{;S_b(#_Dz*N?%v0o4<&@&M zUluNs*_0RdK2{0_W(QlQgAHRZUb2+X2}ix?BRb(w&SScqEE(P?U~ykTahs6-#Z-}~ zv$$PmadEK402={ME<$PL**@zJgN<7k+o*?`%){**c%VL!Div|3(P(W$D=~I1U1IEv zor$1`eWwYE)|KI}?i&29ybkZXm7DfWHPsl)>^mzW_Vx7<dvP<u>=s7e@Nf8UdAJ)D z<%v$}Eza2p2h^V7UkqO-!3j0~--{@qV}_t(Hyb}P*~vZwdmD!p*#Gej*ceMWUYPd% zTVV;xc5i_zVt;45ur}?2MH0JU8?i5wP1fh9@yTG*x+TZ7YW)$bs5)fboQ=QQDfnAH zJz{+Un&dv84^OzTI%q)%;)ChEoJDc7*0gco<wbK=86LIDAKt_{2#x0fHXhYROgsbv zwdSZs+1qR^L4d(N0{w5M1yz`$b2u<i34lWl<Zm&_xcg&*?H0la9@pa=j=Vu^e-4kq zq4#G*FHZG-q%qu?C%V7&n9)i`{Q?EXC0i&cwg=!H%<L?99ZydwvN8_`FnoN3I@d?_ zMKnv^Hf})-5d30d*L%amd|jouoG)E*IEU@$NDLdaK&7x%oDaJhcA>u0YZV9JWc2}R z4t`6uPc(iM^~J=cP|s*RHn;(W9aCOW&WN>FmK)`b*b}Mv|J`uWfd;%qIhNYg_!hQ) zZCcNZ*TEqLJt35xLImnBg>F4jY`$n@LmePSt{o=S=MHWkl|SBge^*VJxbp+~_EJoM z=pa3)W_truu-dy&k@kkygq!-y><veSyI;8fCfv`kvh58+@KAn`K1@mU9gsdT3m`QD z?G2(K15^68$awwIw^jNmC;^jA8>tLPA6qzl3F+&Sz9H%BlfI+U*Drk@nfn3h<DLpM zIiqIVI|SOi3OGBZ6ZPA^Svpb0?OUW1wcNf{I5)J&M7B#`hxD<#+Z(d+4<eDgy@4Mv zS?w>&jD1A5+POQ3!sJL_w)FX>&nJC((w8HB`O@c?zC!8ClfHn8Cvz}WJn1V_@uaU@ z#go1Y>C2bC8tE&PzIy2kNMEz`nbOxHePz<uA${f2*C~A!(zjXqYNT(A^lg#8t<tv@ zK4a&G?eJAw?fJ4qyJT3Q^mR#}D44yWPx?f`><#_WCkke7I3RtZVD^Rq>8qiI)+>GW z(l;c1&C+)i)<XeVfh`2Z?=%C4d%Z^6S3n+IP&?ZqU0Fuk-Edj^3c9+JnTPjey<^^Q zv`s~%!+U^r2#LfFBH}(cFh!UVdtq6Gg9o4crMzS>tcQN|W;IYmtW9h<5zA(Wh)5C8 zlp-F)9NG45+33Z14q>lLU~XdjMm#ob#FH)h;Q{y%FCi>@NLZVW3M=LTkv4~{TYYAH zA=JTQFnTCkgyFjjV`tmTK!9lNPed_1iTnOglf5`EYGO>xfvDTrGs%<u6b4l-PgPTy zJhbFvxeBel{P1A#_ngO+j`>(`7MapIh+%#3H;~`#*mm#^Q&QV2g3I<UcqKig1uzf~ zS`zQ@!GN6@(?P%{#xdHOkvgWfY|?1kIl_whnT-8#p0FOs7nWTptW5z})x9yPrw)#@ z;Ah-TJ~$%QcRJ{^?9IZ8ZGi>8Zxy~xtPHSG^4;Dge4DyN*mwGbwMp{bCf~vS0a%Eh z5Y_{d@3!RoCh|REU2jIL#bps|As!_tu7Fl)j4zECSfF9v+SG!0J+X4Mcd%3NTFCo7 z#U|R~t>ORtTyh;G)=t6i*r5!vJXr^bnx`bcxw!$BCo2%3<sn?R<UBG2P25yVdz2E= z04LFw-5#(N65qQK`%^~i6QI$w|5Xf#Z7=Nl7J~3@A%Usq8ehajsAvpz+)q&_jCVu| zvuNL&8-U##OE66sJpbvJc8o)oa&o*9PTmjMB*r-_#sSV~yAfGol0)Sn1=G5Zl?Pvr z^qJD<m%cLT%agux>C2bC3h5K0m~~%`^aW&Cz4V#V*DQTy($^w=VidFP>yW+*8P+L% zHPW{kK6_IaJl1`zZhKR|aI>=QO#{N6EpRyGTlaDJM@htpZ{5eX2cH=6t^0DMPjccu zzx0U_-?}eP`oxHD-Ip(YV#K%ZD-=GhEncVq<`TlMWEW8}qV3w{g~<!i`%?1Ere+X@ zF{FbQ9%6+>(;KUYi=LKW3Cn0(gJ=*{g2VUb)}U^ayr|<?Pk-9PgW;_)#DHv^uk{CG zgv+Cp*IS&=WXT_dH|9uKo)hMiupB4MkBB}IM`<e7?Wnr97-!%3&ldmF#Xn9Il|E;b zn@jP|6n(07i+%I0yO1KZRrj`MtJ3zgi!$;l2r^RVWk0Y>dchb52tx3zta8f2#2@Y= zQg4j7G#FX73uoew<e05Gzx>n-UXMiQkU*2ltyhf41fko|g6WM>uA=FUu|3iB#wb(K z^v2k(q)UGl-4pY%P-@da@gXG-w(J(66zQT91buQ_0c&D0zNGkN+I2qGV>Py|1e4%6 zCLAexQ7`~xrHRVzEq2!D1G{u+jChjD*HW&8a!DqFd#RA^%Eg!7ME#PxVxUN6joQUx z9rY{M|92Kr?f3^0S5mz1EiPnUEKmT{jl5-or!2W{5D&dCLj!$3Na0v(NRQ4iZM;v% zr7OFSe2k$}JRYJ^n*M-!I)JgLf;A|fG!X;J;A1KNVl9}TWcI24m1g~UTkcV@2n9J@ zTCSXH+TutfV(+dIsn_L1>`5iY?$=7%UXNB7yG!u9HmB6s{TJ^ZyJQ+Rts{7jgrDja zf?vV)?;kfvR7taOcNdr?Ph?KK+}3m=V%XS?*EMFB6~~ucl)+7L?-Svo=NcX~9ytSN zQ(<rSK^#f#137nOVJ(<l4Sn~`o6UGxMkIc7hFSD><C2i^$memqb4w;5I4wJf<G1Ik zgGKLETg@4_U6kY}jw(MW)5r6qk1RS)J^sTuJ)7KDU39eC$}sMp2P~`@V|$op!?VcG zxVsH3F?P>89<&|{;spew<0C+d*H17jp8{vj0cURX?hz#K<MR<k`;7J#f{P1%rSU}> zrA1Ghz3X*ffs<WO)Y67$&_zMRMEtJv;?QmKp6cM7P6{Ktct^%)=L7MmptmD<6lUfV zk)pSayZ#-Z!^QrLrUJ-p9I+$T&zN|`dMaYQZQ8qJ%l`#)8S|u3Q~kntRzYdylcn(m z-mBtsr<+AbjE%oVUXgg2x3uUvV?zMx8$0lb&~<nKp#N}pcE|LlPnbo=jMkq5jjs*i zG|^~1TcDZ49aH$SB+#NSq>^|aGd?OU2gQ2F^ghcxHY5Qn=n59@HQEj{JF9;%R&Y3E z;iXQj!m)1>(TdkG8*?8eB2>BWM6~30@yGteSKmC3@UNuc^<)bu5K8(TF=eC;jC4DK z!$rNOeJzCCrg~$;N<hQiFJ<8kkwx(tQwBd{#!YXy=xJj^DbwG9k7xIWkGuf!+7~uL zd+|bR?A6!tplig+2y|SDQleM(pz!+}QMM~7g*W|*$W0$dLKz|<zA}qum}Be+c!S-4 zLJK^A&4#YQ2k_x8KJ@r;$27=FUEbuopiL8|$+;{=&LcRF5ae`+k35eY{2-@Wkb_+! zkTWmaMNgrmC#&g~#CFgVMM|Itr<SDWCD79+=)v7o(sMt0(&`)WS5<*InBxjIJxUPg zs`%{sWCI+o{Q$c?4@jn6C`Osi;B^@Jg4c#Im@T<>vC;Z75!l|08j9FEInP0c>k`(s z8Vn0ODV~hGRrNsN=Si<eC*qZW;cM~m@UMs#jz7qgb}=Z2?Vkvc{ooKl;odf$%+r|m z?S&E}{$M{~Xg>%g5{-)cU>W=o>xf3o7l<zckpVPtnxo>xAEeBvhvZWG->KOFSa~B6 zC|uH%w!JLR@5J*bscf*D;tPv!#)0F6<`F6d2|TG13F7$z%ovvzyspM0YY^BNS<LP~ zW#OH$kIKEp;G7F{nL!@T&p(>Yd>b%{s3IZ3Jc5XTH-!}x9uppBC#E4;eE3Y_VzViQ z+1tkA(dgHDa6YErdMzn<8B?*Cs{U2ZHrvFsfQMqxE!X8FEyTn63Gb%hMg;B|;8_$u z>b|<|u+d7z%Elv&I8!g45Q!IOi(~T5XtV(0Oubm1sRJ+#gND({p$lViKE{fGHykg| zC>Sm&czon+y_-j6J+YVkxK53&=BpsPeFg4@yb|j*qxDCKU4qvpFjO50sfQxkx`I}( z(RLqbG~>ltg1Qax;G--vKI0mm5Qj6ru?3Lcd64303GSj-Pc?QdR2}8<YU?Uql31K! zJq2rFX6zM&9Lz46yssLs<dmG<g^lRPgRz0*A!`a4k;T%q9YV)G+>HahuOVGR6?<YY zA)qt3`$GV8MHRA+YQ6`TK~`ub9UjDt-sEIP7Cg-vnjc_MeP;Ko+3dpD2F;j!94}}Z zyANaQG9&prWMDi}oCTIo6wEH302U`V1Dui%g7N0;!`&?rqog+(5|p+Wt^bOQoq1*> zo94_CV~07R#CW7^qNoZW)Z<Fa!BpOa9w9Uf6yVv~S2F+!PJW9tPJ*29I7Zrx(Bx-R z^nDij@x{OF66>d%ktObc<csDh7WSt1fH^Z^S{uapVtt#fF8Lc4iRVn%eJmIj$4g)Z zh83?TIf#+A)49L?4&|!>`M8N(TqdN5v;MWM%r3TDG<ZljUGPTi|KRY1p27Q<9@G~y zH1R%p>jFA#(L4AQ$qYO%V%qgNg4D3}C`vE`qu6J-?}<&5ALq6pdc^)gZildcoZBgE z`DS*+Ru6Zsf0Q)fzKTd!CJ6zzOeR}mPs<IGHDP4v5A$M7$a)G=NPHR|`g%3X#H3|< z_nF?O+i>v*Z=**GL-8^&{guoxUTDRQ3Go_O$m>(%NdynV;RU!b_Q;F6o8Ah?=XtUJ z+JkL#NKMhIU@VD=<h_OQs5Qa#9v{rt?JvCkXiap*y693kzS3A<7rg<F=$ciH(JG`j z0aIYUS@c#EFR{-<7o5Vtnw9IC`b40-(WG#ievh|P$SYNevVEHpXYfC@+^78Cclp1r z{df>22cpj-4a?WA9KMhHZ`goAsz%#wY)+2gYD@#8F}?^4J_!oOV;lfu(SX>LhV={0 zI;jFCwH|L#vteyVC-xJ7>lxH30oMf)48b^)=fYqHj*s^lZO17v?2P7KSiS!E@y{9U zZwP-R_mcRG2eW`ioZkr;-loE_`S2Y^`xC-{TW;P>hi4eu_TgU5+vc1lcyy|LJ3>TT zd!$TI_^N7bU8W`4i)?dv{!pZVT)7p6D^pMLm?}PdEmFhg+2t8*R}h@zvm4?wEa`e% zq#L$U4Y)@qHb;?z151$!q)fgRYSsI~@%jE>@BAzXxx?m7Pv;{9Z>hhE=ck^+khc%7 zXyQS&SF%d1i6z!`*`^nggz0@sKH&Lw5Xay%AV^Wn31d3D%9?Su={+|1D)#-~!@Eep zjn9BE)tw(I>bm^{ruF$DV4~Gb7(7Id=AnWjUispWuAoi`B6wEU2T6(d#4Zd%{*3<% zSjEBxbhU=WP931Cjqsr_ROVtt<`83w=SDFk<2_{v>421ltr9=(!Q=pd&bTDE9F83F z_Qs%fZC=>E7LTcf?Gis-!1Hy?^E$lQ9rGB98TeX%M_HzD#vaS>ffSMCB^ywjQ&Mo4 z6z2zvdO$IDF$Mi7A}Xnk4Mo(nF6UMt=oX8+d~gP>5-AH5>>r%T92k|C=;G7*M-Cx{ zxNP!Zi~W9&S7cJue<#)h!$F9wc(zR*ekJQbm*f5!$Il_2?{Hm;jaYH}gGXC9kNE_y zKZ@%p(E^O&yLpucR|=X!SakGph{P7J7%BCUs@m&mVFe(iuF-)wXCXkIWg+|lhCk#9 z=sg)@_rv1aj{N`=7Xdi6lYJMh+PV;BLv<>E%9=Y&VvQ-2mG=`9VncZ6!~M+9>bc&% z9>yf2&e7FkTwF;LPdlDBWZJV5uZnR4dG^TMypPEhxiu@bMCS~SNgL@q_?LrHZv~f3 zyjK~&a47Mw97XuXno0+hW}8+C3a=kq6!Vwjzql6y+2-BEO2)G{iKJwl9@CzCC>2c< zNbaY`=MTq@W~?j271mf+zC0N{%6APh$}hy#Osqxstou05cRB=J_x!)?y$^U@Rh9pJ zZxY&DC^-Q-5RuV~22H2Hq}tKMR>^H|=(*(vf)uR^7%UA%{?+z|7AZ90CTWhRw~ZE| z{+ZvPI5Q}YASeZjG%Y15h)h7l0t#v6PY&Tv!J(}P<o$ftIX6iQ>b&poec$JO-e>Of zBxj#}_TRPFUVH7e)?RxB52^01Ya`%oT*7~oQygH~!p)48BG@KUQa^c@%|-Y=4u8(@ zuN$<I|LppwCcr$FqPi_kejAC?;DEmQrf*9lD(LtH(U~oS2eFl53%T_0;mRVN$IK#w ziE4rs(XD%+^%dJ;UPbb@701MKD|}z_nwh@jH%`Hn&D<Y()#u%X59^-X!mMuqFcSwA zX1(FBSHHZYh*CE-A*3~Q7aqwvUO`X`FC(!$>DTa9=~?08`*oLHUw#9bBKb|EIF~S| zjYx*}0k}uj%&q=cY3P4CohOJ!dIQ0HO{^Z$Umax*(_?S=LAQ`TGRcfuHA&W=q1_C- zfY)SCQhcBK8pD#`nsoEKdfmNGm?7Y)Tg_f^n(lp7H2TlN?Bt5^cY$IYae)2eYi|FR zLE56?$TRg}PyuVkE%YEw`_2B5@;V<`g~_wZ&mn>zu%-x~!*=Y~hW+%x#r|;7-hZb* zC%sF53?A|j@h<QfJOCbSxOWX60FRlNW4kZ{8Eganb@hZAr*6-du5Qx)a_{4rLRp1- z?3T+X(>HN=m;*FypI0cGBs?aAvVxPAdMejzV+*>Kca`Jr-QgaKQR`TR+`he^{h#1> z%3rD9Dv$1z-}@(6t}U+KUO0(M8r7iD!OF(Bt36piG}sLLk@b4rX<^G?+@=m#-ZxHi zt)%U=D;&z~R2hvMexV<K>kQq`85=%a@{w7e3vbw)dT-~Gx%Ww4`39G^&Wh&_cW&?O z0k3B*Xnit&Z@lx#)?JccLgHm95z8IT8qaF6-AG93>Otb%ctt};Z|e-wBrQ#qvk_}c z3`eoQC?;_eq~XTJ(v7>xf{Bd`uj^yk(sg=IwM|M4ZyrZ4Bqd-Bswq#aOx<ZoXH72& zosDznx73;4w3EM?2z8Zvp0kC2@8)e)b@1;zT6!Xj7N_%Gr4bh^TRC6lIcr6+5R2Au z$0`$ErVmrLw#-~F0~YT$%eG;}QlWGk9}rO%M_uY)uPoM|InAzrI$Xi@{Y^>s?r=8# zhHbO_u6a+7tlw?eqq42iKuSQyF=|)q`!TzyMHa6HX;iSf&@K;{sBvsJLPMP49nts| z=}VY~^~=9*Ac75Ru|grW!DMmS9OrhkP#ivD%zh54pM=C;_Tf*sm94KCt$fj6Z?tl~ zXywYI#!)2ZKW}X`1H<`+4;Wc|8a~9MGrLLbS;mlh!e6{9YRNUq5f$xENmT^UMNI`M zk<hOg2|c}XXqoBaBFZ_|KFJd@-rK1&ZQzk7NK%*fCz@EYK}ONfQzkC!5LtK+rdS{1 zvFT5?v_BiGAO0uJS8jcuy49W9Z+kymj*%BJi{g9=msOZ~5IQyUec=&{l=s9b{uHdn z9?1=5{E74Y84$O(W4Vi0E+lS6OA9h5<ffCW=J{n0yLEk6%{S(0o<EDXx34@Iq3<fs z_4c__saZ2{xWn49d$isy`%ZGF_qkI?s}EL+_DA&fk*ofh^hhVgB4oXxahv?Gd&AF- zn-63A*G&@ugk97b8HbJTW!qm=zuPwVlnMO)&Am$K->l7Se@E4idDAcJx7N1Sdpoov z?d9F|zgs2pr=96`d;Yj;z@9&=+F{STs|I<x?b}p*M0Xp3&L$*`g*8<_AU5Sa0Lz{7 z{ww4CRszFE?x`RaNsD-~>NNY*aQ{kON)Ff02D)=O;Ap5@RG;xCI$dAp1-{iq_L9nP z<C^jr1M_Ci7<4*L=K}=FEZ%g*Y|=&-PPoI$5<8BliTK?6vffi;VylT%6pJbhCP$@H z5F<V4PMa~Xe=$}<>piaD2t>}TFLsPx-IFMGC0kXS(s#O3GyM_EpZ2c_TR}hTtqd+@ z#+8!y%2-p=eh8%KGnemP1^W=3Mw3+BxT=6#RGAf?zuU^DLN4D88~AVk{Tz!ehts(v zgrAj2yHcKwBfX>-?lf-e)nOpS8!H5_G_fdjbQx}ZE1HvMtg}vc8YD`!KQn^v#_70( z`JE{=Bs5NBG=Iiv?*~;Ppem_WCAo~x2A;xFB#mcPHF@8y>ad8rO$3tmt}zh^Z7Q~{ zg*;c2#NJy%>74g5YMcIKDt{%b&xh<zUXa&&g}K~Vs0!!S21Hz`I_^~8ATzP$Pq(D@ z_Q&dT=S10*sX5p5H?xgPzBqU6-%OrG_W+O?n-n(9q7L=0ABl75(^Q$FprP>4WBia# zIUB>yxpB66Tqb>19NZDe>gHFS<#bBWuZFsUeiL|WutF@<O%g=CpqICI45<{;Tts%g zEH1v-=mlS8)1LPJ)V@<gmYUgE<K!QQbf;_^+RCzo9jmuhe8-kuoFSPJ0y5ZYTMBJG z&a8)^8X%LxfhA6-Hg?!eh>*w(b_IiVBVnTSU`UvgeXf&cYi<K58Q5R?24FH?pVJ}h ziN?+mr{i-LKv>=+<jP~g)bS9dPJe_+pyEM0AwtF*YV-ov`#twVr@Y?|zb9HBQ{+h3 zg-M;RMWoawzBbLp#)ab-Fg|Aj|E+Z$hH;m1v$)Rw=u&NG^Q_O|>Lcs3`N`sEm8k|b z&gx=e=!*5jC=BM$=pARBqqN=!tUzt{np9FI{^&SUV(<W~X^O$1SV)mHtK#7Enug4- zrs*8>i#mZrQVtwKGlx&1@ReuB8vPGj1;s{$a8$k2&zDB;!;Sv=2^ZwIPeQ@4GTg9c zytxS=S5fy}>*ewv;}<pSVbuI9H_wgnBe_c9i4DCQc5HO6GMvoO=c4Y~%N~2#4`~I` zC2lF$;Wg9;bzoRnJS+0>cXfF?mRUb5B7@R|<pI*#jMpFhnhYp@L);>v5DBc&x@~#M zFdpcQ^#*tmzZJ@6cy08_ow`Mrz%xoU){=#ihS0TlojNRiT5=Nn1wWUb%CY?o1c?&% zv$sao4SO-Rw7Tst-a#$|z*<6G|B_m?Ihe}lH=AZie&rCFWvf<5=(uoX{ix7!iPN!? zj6in@4<m_M4z<`L<_YiXHqeZ_*;+#b&V{7V;0y`qR&Lhm9-dmCjh^y;y}gH^mgM*r zrEA}&))x0g6t|)%Au_2E6Zk?~1n1Ug{G&`d1eO_j4~OZKVwQ3r`ird&<)gtTDFpow zjFGH$m#{!as}_x?gH{$(+qytm)^UVHo8LW0l>9y=C)Kz9N-7~jMVQX%yqH!LyT`MI zZy{eGoT=2ZhSU>b<5o$ylImscapB_iQ2~LLCy?*az8XkHjNHvah6Tc@#p1P?4Pk%x zE1V@sHB~y^YvgM1kEv>4`&2dk$sTV937M6d!ts69r*KKaP-BB6IV?$g$;X<sNQ=y@ zs#xx<u`Cze7p`~*<aw%?6gKoCT@`;3Bs;1nTX<(Cgp{%6PsyCBUZP2safm~s%*1VV zcom`V&^7-RElRK}xk+K8lC7tQP-0=KWnrp`1LfvA0^zEp+7|?WX7(04F_7}hs^Y!5 z?J`RrK^<vb4kPP^mJbi#3`d>O=_4#Pb0mr8c&!EkVd~r>Wze|iv~09a7O8Yy|EE&5 zlEX^0<x}vs1CnO9WqZE-TdWxW!4OQpAIg@C<rX3O_kP)ke%E`+3i5V{*LOCq6uJ4S z<|~r6s{{#P(->=EoLiKzQVT$8jO?^PiCXH;s>&JdX%R$k&U!C3dT)udg-n7Xp~zWf zK~RaYrj9{SRI({kI#JyWBq(xeZtK0n?3(vYe}p!Azh)~kT&EgD$X)+dYo8%*;rNr) zqS^bm)M~J%sYOu--I?uz)zXb@9;|)+X1Fp&-v))!Lu{YTjxsc&%)iJOyq5J_c)Tv+ zmAEIF+mCpa<vz;3w5aeVXv9vi?hQq#U_(+%U$roeJ+zMf^r%hv*v?kTW&(l$tH3Be z?>@|0?W?eGJUuH70F^P>Z$Y@LPg(=w;c{b?s;u?etbaoY6KhCg;rMi8-HXeTWBbJ- zrR1DPSyd*#4bz!tm&-uJ>S^25L%A{4<8++NglEtswwr))ZtyYQd&c%t5qt)X?z<j) z_|fx4p*}F8|Ja*~Tu>~e*en+MR$DEm;y+%z3H4Q^{aW({)=>9K?i2r)RDZTU$(Rbc zEZT(jt+t8f@Mo+fw){U*`Iiu5HYDa1vM(iuKUkC(aHyUweq#UB&T5?x;%tBGV1{|( z!b9CaL<Xcq@XHjMz%VsnUqC~tsqQGJvxS&c;WSAFx9lt(K4z@^`4eF~sA1;(gRpx2 z6zNp(^J(vm25%NJ_m{;;8ua_}f{TbqO`y}elJgi$f){xU@pJl~p$m46jM#WXW~9Gm z%(c!2KezBry=poLRck6eMvu*5ZPsIqAqe9Z+ZpKZl_MJZ@roYyjO;$GO;!;}zf4k1 z)p??j3#7}dH}Eo<n^UB&NkO6N??|X}5FzPw){-M5O6qK!-ckpX;dCBHlxBV<A`apF z4DaEwWzee2P?YGv44tFi1LaJK@+hWSyiO8T%bs-A=Mj+b;&e2KUzN{@s1wE3-c8Qw zj|i_^?_oZAQ>4$?u2m{zO?@I%o=rbmlR`~ck8bC(Ulxm!wzx*Ekb8u%Me3&0p;iT7 z;9rPuD8lJUjrGGe8i8#^tv9aMuMQ=OMIA@3d4(x20i;+o_+h&ICe2!GIt>Awjz5u5 z8XV#@{Z{W88BrO*Gw@*`4oG9!i-<!~<&Ux>1$8=P)K%Qr6iXT-Nh<Vkm_I9Yoz!>u z!#DtjD~SG^FvK!N1dM@2UStC_4wm-@HyhU2`oyT)kdF;Gz86Nvyf%ce(^;a%Fy;(* zuBz$4Ha$a|rNV^EcqQfBoP&%;1aSKO#j)=tO=>1XvaE6Xp5dA7)JR;IGC|l-D+B;N zISnxdE_O;)2!60(19jqKq(r?D>rn!x3E$ni-OKMr12X*MVq1b&04<ZTgTWE4E*`PW zcyEr8z>Mxu80D1PUkn*g6Dc7I7r&YE_Cgk$R0c93o1Bq=z(2dfKO$ZC1{2E7ou)*R zTp{n$%qgy-bf!sEa<P~UP9~lQ*9wE%M#?OE>27=89m)yXx2bwWq-oGeg=ip}Y#`X_ zjz?Fq6-}%#*Z8HJTB(ru@K7VrpF(zvI_9^|x=j@2`d>lswbxlAb4AM05|9)msvD-G z`~Ovgw{18T(yMv>Y4~G)DP$gKNzqAv(CJdXv^R)e7rV4sec8gS`;>+XR-KdaTUGeV zGof1*Zr#3BjKS92#!TEcJmUqGh`)w!9Mv1WRup2wGm$tP*}XfIC_lFT6~P(&M5y`x z*z`TH-bejDqNq(y=e5K)0!bsOOLz(UVaE2hdZ*g1OtK(|k!|!Zu9iSA=a<rPY*sE5 z5R#(XsPP-<^S=0H4HzOd`i(5|x%*f`POr%LpOUTTItkn}g-p_Pe#1wG^|;<cZXr_v zxG^kwV^uB8Hd_3pL)xcH$(*j6iLV)kI|;(Nc2wi}q4W1)QOn2$kB6wqIHwEESYkd? z))?QJ^-q>-wK$c>8>gib;wh*0Yr`I@thMK^h$Oy5hio`QlbBbU{y-w*O&Gp9Q}_y| z0nZHoG~=(S>Q%cD!3aWHW6lMp^NC|FV8@e!L1OQ&6=;Fj!|J}-Nmw<ELxkfsI$SWi z-<$7r-U);?-xmlm!<~ptWIp{b`&5jz@9c&{lF^Rch$PfZY22WXW(~AVi6T|gkP07! zB0=lZim~l`jWB<HNP@J%vcg#5=OZ7%jFnX;>#eA6{Yit2UeBtkZ}c9^&SdMKhGt}) zj<lAW(aIDWS0EhKL}%l66X1?7cW$Efis?^IzrQ7wKPi@5nDusLycfgX_?IS(g9c#X zP;9VxH~xE><UxgG`fzEuVr`%gparrOeT)Ad4!FXSU`)1gA{44_%gP^Sy=PIgOO}EC zb=>ZDNz=-#C`G;aP$0t|GwThe@~>c}@w?1InDejT3uaf@a4J(c1_dsivXA+fsSZO) z0htZ<m{7-{%d6l;5^@)fCsX;6k=8pyxOjg+j1^8o!PV`ruNIC3r`ZV6oS=cwIDXPA znwP<Qr?hI1vXl82SJXY`tbUd3ICOx{)@^sX{=geE!|8g00Gg}{@BRj~duW}|e`De~ zBXO!fE0(Q$+gU67$BbWAB@wG_tNYSb(o{|%3D!m|0~x{fRKJXq%Cio3y;rkSak0P> z(&*iXawR*pzj5ksveRZ%W$F-fu%Nq`Y1TR&tEpP;td>{}M9q4?Ztxx&J`%c;jSsQC zo9C5%B31YD(mGY2VwZ)f8ETPQx9;96fA7|nRXOW?HJ_EUn&c!^j%5#z(JPG{ySs~6 z3z_r_M24CrvO#{j5}8td+lr8`dykvK&7XyZTkeyw#zNVrGIeicoa}Dx=jtAJy%`5D zdt&$&G@u!jkRFSogf{4S0@+QDu4ip40Zk4=7#myGMD#Yb?zG}8G(f4jiQw<q4ru=( zX*g}E9aA6)yvCtb3~#ja8~GQTS@ldOSvNO%<+QfVI!mTw^K<Rk{5y4ebgWr60SNii zRplZkP!tI$*cVp}P3#>RL2>$oo8P2D8Ok}etBxDKoAgCJ;b+mRS%vu*P+>Bg?d_^> zjaOef8)u-tyzNm+SjOzvrk37Rq>LboMLG#iTV)U5ItrgipBQ|B-iywQObnU5OSB)7 z$;%2fx{Ix0-s@Ia4$83lG3seymw)_$UIR470O%qO>UpDs8u1tJ(tkCrY_ox28=Kzy zroV)ICC8;#cI>nM=U5_c-rh3pCMaaArSzhCZ@1((S#w%XM+tp{`pcn>7ne^P?qvLm z-F7y<KGySwog)%Yw502vb@FG?S8S37$rlpT2U_Ybsw!t|{yXwprK!8AE7p>pc7s)# zF0Gn9{2kL%GcWcTE0mF46>`Hdj>)Dt;DUz<71n60SH2I}ohR6}o(Ez37kOu(v0t3O ze5LU(sR(ykKbApzo#{8MQr#(}1_C5>9yyKxiB!|34U3B=OEWmN_})~6a>KphdP{BE zy2Wzeh$>^C1gn;rU!1?}8^G1+JeF6;@B*2R)1=jM)Bpj_lzy?9qa>@PiE#4YRV0Kb zQ@YxCJvuA>E%q<dFom1e8cU6s+aO5LF>0=;YO+|G1U+Hi>-DLa@eDG4lzcmwESaKC zU$nIIes$hit9!mOh3mFkd0;M*BjgH05Ox&%e$`gWzfPl_uG_WzLq*6ro%J*zQtf9v zgZ!%divCuZ0LOGb;&eVkwgy%ce`61+GyZCk@{F9F%-pzv7^h=^2#7<qJMGGF9c5uD zro&GKY3BJWtLeg(;R0sj+pTmpf`lbsH%KYOW#hr9b-?&;H{zS*c$o(5eVoobDoz1; zo{Es2fT2JLm|&VsNCaDw*(YPU0nO#4GO(tbIyGtr(a`TL*{Kf?|G1@x7Vn@5>MEUs zYHKWt1F+x7(O&b`7vfD3j{>t8)oOC-Vj;*Fez?MqB6|EQb>O{2urzCkA`m5u!_?zO z`wX3pK&gQfngM<Rl9kldC8gJe3BNiXs#s2pgR1b0!b1ECzB9@Xj^Z7GYD+*MsX*`_ zVWN=UjOKr5x=zydj5hW!A-9z+<PP3v>Bn|KG8r#!mRzm&qYHeffIrXm%Z^jqqybe& z#jteULV%@36a3MX_p3%UWw<sRQjF=s`crouLO6HWbWCSLu3!4kt+_K@cvKa0p8L@$ zR&LrGV1vnKs;Igzs`CH4Dty+LMsIi8E}zliMK+-$pG{bGtzU;iR%&?J?v%vPaqvVf zaFqMWMXgJ7IVW`&;~5+C)6;%RMJxg0an7at)8Otq3ugO8Kb+1Pe9ih7+D@Y$E<EM+ zjqwMWg?JZ2UV{x3nz_QyjK3*D$LW*>Y>J&%D*tAp73Rc@m7Ayc-l;7m>+~G`n+?RV zK7fGml8WKpfCVE-U!qg}Xd4d_5<V*W?Y4j!m4abjd^{q=88TByqgouE0YA|GrzMM) zqR6QgL2Un%grrV~OrTow<cn+fUfDA9=PKUGzfK7(N!r)?cKjIz>7aT3<WG?E;`5iZ zwBC}sQ|(YAv2}*G^9Ep`8*z!quhDzcEwFT=J&`I9nOi+{?cOqY-<oXQpE-9y-mKqQ z&7%=DpI@G-!;0s3Y}uTSIf|^iWS@V8({VoG{2QgMTU~EhiZU#4>8PtAN~(lKwYHr} zdq|DE7w%bc@p+3`gXLBeM4zAbr&P7F3DG7d|Mo;@^>li>XHEs0*zeIw0JU3>{EEd; z&EtS%Bvk!+pj{_s1+9yt-O>y9sM9Js(up}8M=^lNl52SAC(EZ|Fx+9iaF5`<UmhI~ zC1HIrA<jOdU<2oK_G?Z&O3EWDzG*DDU@X`?7L<9Pe!+JU)!^R|8Ntt3hakNEH+zZC z$ma7E0Vg*X!*?M`us&ol(|~zv+&dyzH~P*P2D=~>oH`Nm#e*aHlrraTyw8aT6L_Z> zjiKxRTougo)5%H+8LP#2R>Q*DVroc_?83JNpw#L5dtsm!0Z|$RbT5f-Cb@V758o7R zl*QV!*Ub-?S>_aa=lq{bmk+!7^Qw}iN)BtQ<l&OiXa!j*cQOOWd!8IykyeE!y<du7 zjn0XAkK@iWKb-jWAf;yVFUDJ+wepl47KP;2c&pc(AY}`;4KPZ8jw7Z~Uy9h}bpBk` z`8Qb#Sn~zyvCe)XV{mS7L}7FLnWg+|JxC{9x99_hg^*`)+*L1}vfB6r9&{(|R-%dF zV}cGC?f&G*$lDmf_g|JcPKPlFrP}{YAh!H)+~l<$nrTP07mqnzcQ67>{rMXHP!+5B zU@g@Q0O58-SVjZq3oZ76AW*Pi8QKGpo{(Y$KahxT{6s_cK*vGnX6N>mRVj{wG2Qu} zt(r5O@~6v2a<ZHM>h4(ULF{ThBJP(jzE2e2^KX|r9jB^Pou0{WDRU+C7mt!6vc6-a z^)9jx#{B86w^;$hKelFr62Y;cSN@7x(!Op5Y}&3)U^N%M^@eYc^9JQ51Da?=du&DK zhnkV&{~akRG6l@Rk4WX;V$OdXv}1>#`UUV})^p@==1nSQDJR)piUS9y^J^3*?MLU| z2}Sb@E8Y&4tG)<8lJ<w>q_AF-7@WW}iRQ318;TKp)RK$h6xNG2gh@miBGl2!(eXH< z(BKe~n%D!o%uw>7h9Rrb@TEcAa4|J02uBWfQ-;Pf4UTfQ<8a!7uGZ;TXcG|P&CwAA zQHfIu^FPUU;4$aw3}2?-&skUPdpYp@35Ea`^fy@hEyWe=8=P}%U?Of($%wO3b@!&b z%bexE!G(%iE_BY~M@3;yJn#rMK@i-6-)&JZ+|zRTMdyzaxKFO7_13#@6A*v?5A<@B zfS$YX(u+pZLS66bA(hiPfix^?T{b47)VNb_r)#CL)U63;_48mThPOs`IEKP;NX`|i zZD%k|H(5{zyz2TnTZ<61OAHB+7p?&LaUk#fXKBjbtK$0eYQKKLIod#}x_B&Q?suHk ztx=8EpofQ|3Wp1v4t|D&ZsD4$>&bd&f`6fpg0wdyoNb-G8Xu=KO%ZM3>9-S|&X1|U zLilR@Qq(F-+i@Kb4UQlQ_!k_)6M}G))?k!JBCRmDbR_fZ=PcJ<w09N!@Ij67XVDK{ zcC_hnWIa;%@Rj(`#oqn2hgtcP!#i6iq5_jhF;n;0RR<f^2D{V&e@;^5lA+y$`U`P@ zK{V*&+kW=$ARxV$pEtQ&JTLU$fQ)A|9S@P&l-c*@{@#`C<wcS^9mDas^N>B|?Tkp9 zQp&>QsiJ}|_vjb|$eqKSh_S3^<J6l&JXN1$1vX(NW(F#8w6u}I;`v<M%@ti`;1>;r z%50$I7C!6BXgZwQ9vg|_Gop3Gx!srbH!9`hY_;DqRMz&VuQ(lRXq#JDl5G3aQrAiM z;bw8u0!@0<a`FD5pFGIitlNjbSXnhgD>8L2E=_Z#Qrua4t8)6MXhR1+&Z%X@a$9KX z@mpHbGndU@S}2MUaHVixJd#V0e_5~iAbFz$JmZXG!+i^5Q4w6m_>QiBL*_G%2IU7G z>Ppyd3q!8}=f&Hd&Hm@r+%1C>inj8<e$L&CSBH&{X|R<#wAl{oD0I|*+&m(-s|S&{ z4)FQ{5&*p5TqP{(PfRpma)JHy$uOJy?GL&sD(inWu?I^LZ;vz#_uaKbc*_wO)uQFl z={z6iN=^fu&ekx5>n@+rey+Q62k+;r3S*9OF0FE<IJ~Ogb6-j8K@A-*<-S7s<CwS4 zig_#gbA@;BfRFr+zyp_2=`O^k1J8pOg7?etUXt||R=6I<@(|JmLbGO}86qCj*T~8U z1Ee-JzI~gz7s>HnXy2vCRNFn~6c!{y&}iD_wtLuEh?u!NXxJ^hxW0>Pl>5zlQ|_CX zta$$k`><snn`9hnqRV1XIlq*0zS*1ZMx-}1`4-JhKG-T-k*;m8gi1LbG7m|2+e;>Y z&-H+o$PWI8l5qCWf5vPOUlOubMqPzKE*nl*G{29H?MEP&O`?i^;YP}k)&j20T8eeX zTrLyeViYFhVWo}@_{>gKwG_*~r`4*YfK@Fx)ug@M8Smw^_Yy8aKr}SiY~pG6(9u7S zdf?pNeio3pF`je07xKR<2>~a7-B=R3j&A91*MS7~9{ueSBw0ZFY72xepZQc-jFF*c ztezMhl(RH;c0(~qi@~!<H330~U=6`~g8l8<>?pFYeU?IetLK>xlWDm0Bep3DQlO~7 zBsEO)tCXDT3y-t)=x=Y<gC7Yb4T~!vEU<tCRIp^QNwwYW5~aF+`yIq#GGbd$&%C4s zCqeWxSdxmsXMKh+T&c3&g_S{uZ=w?!e{F)Cf%L_C2k#7IPRFf87g3?npOCva#DpZY zx<=RywKj*9)qi#T`~KSa?;bb)FB?;=p|56!;HzL`*MqcMlFd_{jk{^*0IwPU+8sRd zFUJuMz{}~BY^c}lFC$(+PRA2rpo|V!L`fI{<wKj>`WuSA_7*GpkzA5;#n^J}H9CLR zU$(`vv1W0yZ?{knudZG7Rys(i7p(;}jgT}#Vd!Lq>J{gX#>rKA7?&N5J9RX!$>K8o zT?+^(Ot6_}Jwb|D9L1*kx-L?XucCNDDuOEr>PN6G3aajI!eAAluMvW~>FZjf&pZqE z?C<K)lb;e@Ll}%AbnR$pgN24}`>A%PPUk1#oX9O=6c1L2jSAsixFU{^&|5DxdfU+h zOJVV2#Po#{K4C_*ice$oVSm4M3-!(NY5NEfHC`_i@M+^{%%0QHO)|CRr#!W73eQBq zQuNS|K&;g0deZ10DQ4FVIo%}RGyc_g@SqPu?0D1{_DvhVHb_@(@2EnP&c-b%uj@sn z#XaRNz5y4bR*LHH+Q&mbf(brG!O6v-*Yze*)aF9}GG5p9Du9BX(zCDYaZBH4>MD(z z+N2-BUOo8{+#ZG$9EgJG6}yD4StwhmCDgHNml}4HqCp$24-?SF^Oal8q(gi1&Q8t? z6&Dewb2D$jiR=VY{#rHDI(z`2tg8S*MS~SFjw1hv>7jlcm|PPoOpX$o<Ton$p73A_ zeO{~f{>41(G+Y5l^DfJvS2&#~!4i<~8^0qeQ|Rhdb`-L#>ebVG^IOZnq<9Pc|I}Ue z)a-Qr0uYA_{SOIw4{r%da69?On{p*BH?{4G=i)zdu-(9DLA!s@0R<=n3{IGKHsf8Z z8m2#DAQituMK#tR+Ll$@28wNK#SI0Dz|qcR->E#d3_FS$oQ@IDOz9!G8nL@rajlz- zTGk{+SVEl&8*EJkGi-MA+;5_4PS#UqI8Xl?!SRevf_GYFmCYT^_Lu38PA)5LlcfdQ z77$RFU^CBpf_z>)7Q2L?Xpignr~*S@60abvAHlXLsB*gr??;Em=nmRAr8toE=z<W% zZy;wJ%ZdpZ@9M=2E;t+mpl~BU;SnuYuslx3b-csuL@w9G8-z9uQ`wR`x5EY)pVQZF zVyyo5A(g_f`|DaU&FF!vijs=bdQDt?7%U37v|badU&e2%rY#x2$2Qyj?c42xEyn69 zfbVY?#kI0}EI^P$EdA~3kba~PR#}R{Vv7Fu9Tt==!`GqLJlYd_z_~<q6RaEyCdY!+ zQPAm>8JyqVO9!D9!ehUEAbb(c^4kZ)mxLvgk4ln>ZoxLFPVl`Vd{foDRfcbB0dL9h zO^x8KI($<*c&iED)D+%oc?(u+JO1CAGlD`y03I}X#=A^3l7y6|I5UUFGF@kxnAkSO zH8JmxENJ(e%e%*NEFy;t7(XRUdq8C~W4vp(6AI2&Y2MdY03HUR+aB^N*G5Rc{`Mt= zl*jnc)JTuelOYy2&A|m`G-SjzX_xWi!!Rvvnv`PFjp1s!2~Vy;BLMml{#|GC?6HHJ zI%DkpQQn~PJ1bhVoftcBOBas+NNz?CqR+(u*L#BV4@Fh*WVY&P^+$RHZ&8tQvD56w z6Y09)Rt~LftCaJ^)LE&s?;R^^sO=Z~)cV#c@p(Ap?dFAI#^udzi_+u<qk6~c^qz?J ziLZ>ScX)H^Ot-Mw1c&q4v+d_ioXbz*vE@hTo*m?gx(h{O#P`w$SN<m0d&5dbnjE&n zcwG0k-V>{j#@j4b@1>_>Q8+p$i5xQB{7e1@<gf?PRQHW^1m?7}_wx4z+Q+DWW*{yV z4Hv}R{73$_yYW}iDzMNvt3K@3?O25cO>cbo$s*sEA4W#;F6mE-Ra|vA_8KcmKQt~q zZNYO~2aRc<RZ>uPK-bhOr(p|$bQON+#tlTVp1n_6Q#WfU98ZTgITUYxkb|@Jf=fH@ zlwe<dAc%DE>%QDgMIf<ZH!KHE)K*qyU@8iu!uo?NC=g-GczKK6Tg3tG{EG?cQ>2XK zDEaj?COUDR@uxTXnM8J)i;}TM2i7O;&K;ZI8P9zr%OxUvpU!$)ha{921HNta-l*w& zHf!kgF?2&{A30r&OPk>b$N0Yk_WRiSm_MnM=(s5dQ3`T?s2lL)--xs2OmVTC|BqS! z(n^;TNgHUWewUpF0>40_)ZOy;#R2V4VNWQ%-U8tl_Iu4drPo_*&mUJUvFFdKR@n3I zsy3e5dGnB+NqXj)$<*Byl(p=3TtCLsc)@l;pVj^xL{3f3ESZZ<NoK-^Xnv%<N917< zacMW=(rh6-C)YwtCHN81@2HZ%lDZ0OEKV^!7NgKN!f)tHY%)jF&*ZPp?IwV|f(AyD zb*wO~$<UE1v$OdcD^{1fdFBV(vkTq0%+1*to)h)XC|>Gz#$uYiTa8g)#5rCpDB#Tm zm1^31Y_ua1KZ<gV9A*lt@$He#xV!M0Dlq`r!VjuM5p{Y~$<Zqw%p+x#0s$MEMDGlC z?xCnz5HgfS^gvLBnv|r*Kc$xSe62jHV@@LAz$3IyL2#h9rtVHCCV$mp?2<T`L_5L# z(WZ`kvmW|r&BS9SMTGl_h7M$Q!o*^a3t<zj=h*zy;gL@#f_~ff!q>2Glva~<m_UUB zf!uEv>90ml<H&exkOlbz$l>NNfzJKu>lny_&r#0k{=_Yufi)pLcxAK)9BmtVcCAFR zMX&_&amRXwQsI!6{1vm{c$d<%hK?r@r`1zBt(?;oJ>BTJK+jxSYKjg<_Rkt8G>PAI z0Z;H!@l71f0b|;_gMwRs%_yYqpqAKhx4ZC+W@=cW64h8l*$VO_Sg$k+BC^4veDrNV z&ONvi$Xz(+JRR&`xL%g?Y|`44c%fZ5$eXK3o%_#grb;LU=AlO_U8k{{X<{kEjp#hS z(|H8TtfnMh!$ctcE0##|D0@`PZ77A<$*R!@HKG`4wGoNF(ArUq52-{LuQV1P)*ZDh zxLqI<ApAM?280kE<AGri7=_0;V5s|NoM+JByyd$>qExqw{6%QIUJ#=)XVw@vWQw%z zZ9v(Q-#3!FdkUdYJHx)I;b{JyNgtmcg{O|&)oRPMc;uVSqhl_S5lWpW!TPM9ueR}l zpre5a@uck+JpkK~7rO)ODkR3gG2VL4DAbDp{NIOm1ZUN-XB%>YM`>kIL`7spf14=5 zl8Y~082qEywn#oBlom%HB5~BAgEi5M$e#7Ds8oA789et(m_$Lfw>X>es<N{z-zP7B zs3ky>I?}A*Rvg^$x(KO4{LzvKSD}xax~V?;j$P;`jkDQU7QY*Ah51Xv4-eqyLlXkW zeS{3hym<+lu%r)Rls(fWvco1KT{0R|3Yce(qWk?SKww9RnT6xL5ybzqnz9fB;EcbV z?&vNr+KE7PB|Y)4;BXOL%KCFb)>Vr&p5Ov}@v^Lz+iLNvwOHKfVjRtdXbj25ThjHy z(??*d&PO97<GPvUzcxv%c-va5lLonk)88~J6TBPwpWr$J=HaIkh`3kq<*o5wqPeJ# z>kW#9)896OGvhe0Q-KwW3JJk#<*W}U>tSRvAj(^ew_Z>bDBjPrh#tZFBnV=S+5lY4 zV=)sn>u<h;*P(;&j?5~;x#M)cWKyG|e*p-{1UC+u!YZEU3Z4~iJS0;7$=rr%w2s&$ zK^t@b<Z6Op<4)$liP1a~)Dl$dLU6K}t2O$C6$h?ugx0B1@{vz-uP3O%s06GPL+5T% zLt7WJv#G$j&K(okLkU}1OqEdE8O)Js?5q;G;PO{apusCkbegQ9jsjNgl$0SH%|NaX zTk`p5$XF&zsE|3-65kIUlgju74hcXeKHJPc&5PxWGyY~xu@-Orb38I!;b(7F2ny%j zym7(BK6|WJFNL@aNsLYtT!A0_3W7?tK0yFi;V_iDLSqV{a8R%1bu(LW?n8l>d?ke= zMAAzwAS`W8qxO=JB;}vkB({pBAYFz2HnJ<gL>mPi(b_3ArMq)g7iPSt(xCQ=G~D7! z9cI6<w<dex)*9trLQ)hTU_WaoC+rC&wa;IY<rn~GVc!qg$oQXO=y}DPKxqTo$-TH> zzw&4opBlZijL$1%zjBSabV1tOMx<T`?BlhD&AjdiUkyKa9SmPXig1moX~`Rsf@`V- zNM1vFa7~o}>d&uQF|?aA#S+!!nB`IsRdSKs0;qY}o^2(qOJ%;+tDK%%95u-M3<w*w z#tR$AtF^`p8^`OQ<+?UR-l#R+wIKpWt?|Ofkyx!kAg0EpaI=1Nc<?CcbUdOD{yCN2 z*0x>SyRq_4JDcZVWPD0eD2%%qgmXDOYByFiV24Fi{V-QmA=@)XT&MQfTcof(b5V3s z7FMXp_Lu)o9b`gx%5D}v_gb+_TNCN{J_f1!vM;9U_FndR)q=qY1%zbf0bLO3AD#8T z#HOS&JFOW}&!9VLN3I4yR!fnjq?o0<>8Wq9Cv5%T^!w2Ww;np|WaG^VO&?8~hg)BD zWrbD~JZlR^-}I5;gWdT1q@~LDRn+~q^|j$Xjvx6~PR=fTe$rld;ZwPXu!ygT<*wYb zEs+EES5~;*+twYzP+0_r#R&Rd6Lpnu)#E?$4%9e0J}zy2G3`Q`8F^3Zb67AD^-@oJ z_u4zwpQ$}3i~pGj|C15j@}AC$gZGy-3*AG}rHDCmY&6@RhBD0MwmBUSi;>CSo0P)d z&Hte{lYgc+xLc9n95>$G&a@JNxF2-PYL#GO0@jP*xmfo&#)I39G<unp<I=NO)WF)y zGZ={DbQZ{)+EafJ_Agfxl!Q8&W<V>P{8AO`Ux>95j{IR>-psw9VB?nx_%&Ym7~{GD zrXKey@}%gj{vvY$QYz%ok2Smj>w`0sTq&|d+w9^3&C&j4D{zk$t=_k_k$C*a+qxAI zey10=*<=`(`L=MbTK>PWdY@Tst9R6rYF2KR@NsXf<Kx~+*>zr6LyZDValu0D8}`ZR zT=+*VT|cuP7C+;v#X5{6Phb5bT4r9Y8wwoL;y4=zW}Z>&tea}z)>rZYTY!Bk<VHH# z=<V~rc8igauY#OwEYdA}O$tGiD-3P;x|qr612^nYz-WU!%j$GK_?jxdRheiNUI7gC zMw2<6H(3J9EbdGz7_ETGbp3CHx$a0%u<P|`c_0aHUYj5nOX{aV|5;<SG!a$FD>s_j zk|Sr2rLLVm(j5lTC070tmfpwQ(k7S98Z)DKx01@mk-n`ttT-ZET3axlENhZ(GOzl% z`%o2ue--foj18TQuh#8e_784pUfJ7{&kz4za{r>u&gif__$msLwNM4j$D*Cx(=DEr zWsnGNB7u1Dj_(s-n_3(OvuG)<*}<2!$ohp1G=Yuh9eNZ(HYMEj$vBM}n;bgtwvhIJ z$ucxFsRZTX{N%zgJM@pWEmPWgJ<-D-*i&CtlH;C^%_Zr0J=*)tv!R*wlZ|xYn3Ss% z>i%=(6WTM12q#@9gIXiB3KpvcLkc?<7q8X?Mdn5_*$a>R5;1B`x;>%Pjr(oXI!1tZ zk5B5`WQs@pS_Pv-$sy177dWEeXW*{s`Aq&}q8>8=H~9}DpF5yz5Fa}$BHuFYFV+eZ z{mT+q%@5KPEP_(rZ&I+nb$z)>=GOkFEawflzQb#LYf}nKs2!w>{i2G0_-PxGFi5Ix z34^5hlQ5{#o<FWi+Vf{s)%Lu*s)i@RAk`W9fiXu|lqNgr)?3{|c$5~tf)lf@_k?`@ zq<*g<^zLh2U;Hfjb7&rNQLgpUezW^kn{b;ycH_^`pI!{}Ii2#&-M*=Z6x!yvsOmML zosO@Rso71HLJFHro?ZP$6sw3`Lq@Qgpn6OYa#Ig2UO%W;FE4~`zd`>;w9H8{*F}k` z{PQKPTth=GnhJNAr9rOBZ)>I*m>lJj&f0&(!X>|t-Pq9<IH<?zC{xH+X^A}@Cgy<` z4JAvX&e#1lhP;xUR7-Z!I?2ujveBwewHuSE4murQ6bDw=yj|@qaK2meG!{_|KU6+l z(JQ1S=`QRr&P3_~PQKw>rqTOsJ?C1MsQuzP-Dw>mZ1Q(WhXENp4Nc_Srq+w2R+h9b z^zRxpNM1c;k6Q<LK(tboo$MBE<wm=oo0avyy<6~cZZDPJYukz5K^3v#BYTLPjGM0| zm@RI1I_{<>>;&ujmp@<Jk7~7)V00P|O|nx5XhKcKTUFb3*FKeyD{sl)^&#NP8Yu;e z7HI~KZjS3PcMXtAqkwCPZ9JUKU%Sg5x8BWT>Z`gTn{&Za`!e3E84R;B@mDhs|H+N6 z+YDuSGPY(5`00v9{ODnZw5F<!S~Vg|cmnP$d@zuPhglKcy9ZXLMjl}YGDiR=KFm@a z<cxRP3Y3}jf@3yKfVY{L#YR(Jz%*<tvGwl5Zy?K|&kGuaWvkhzbIf&R)zL>etG~)i zyWx#cIJnUE@RZdheTG}W-$J9`)l1W|h3G~;_Or4`ePN_$fM`uEr}MqahSY+45VBRX zoqOh2&2jEoS;e&pxvG=dfIL7-mWBSja0=GJOahkWF8C6(3zM}uHOeejR4=uza}O+p zh3g4J9xd!DQ963Twb?y5W48|r2y^qYg)vS}SIyN+iW_MtZL!mN6;*nEul}#!#((%U znf<TQ&MzVvp-gRzY8>+T*thAA*y#q{s`1Pa(Gk*1y!s$8qYk8L9aY;EF72>wg^AAQ ztO$;w3h6n#O;-DDsy(>U<YOJSSrLM>s&p7t)XM_B43bPQ&3X|E>Sb|I0Lp$7$?F$* z>vvnU-9{E{w>>O4D-<6$Pt8=zP?^OHfrMeR(1@2U!7m{@;P3|8?QFjF+dK@1gO7_G z6*g(8+`Uglo*;wstPaSxx;Z*OvQxuCMFaH(%gOE5Xu^@P2up#pb`MRL6H{drekVEG zZmlt5!hvjSRq&rA!*s3C$fZ-L8J(^<%IDlHDnM5D@>|?Ox*Yc|5P%Q!joX1V?i)l? zf+L9tX<$XL7jZ%ut_g+-YX|qc(YR#rTf*b?9i4m3jq=<??mWuQ9Wk>hxfHhO7K5^c z+O3n#$4j*C?AcP1JIZ?~|J+-9>JLjg4G$51sASK5Z3Opji9@Eac6%s){~`H@CPgXO zQ)KZH_kB2tmYzGR0PekG^%w0~Lu1zV7X^FHs7Y7N^>_lTes~7%Cg^k&pf|+Fs7F8D zpf?t*C<c)(%)d$?%4@}(HF5cSIP5S|bzhhzKfnan&-8HqZBn30oW?_EF!C!1Kvt(P zH6Q3+-@{vW;r-0-cI9E#=dU5k;U)mGu{Y?$j@()IE6OC3o%_l93zOdN-k~z*_I;VD zZ?e(D*0Q$2+v#+Fl1%yMoY{r4a%3(T!Pf0|R{t}3#gw<bu`cvIE^Ap;c3L6#EKIgw z()PyF&gvcSRbaET`nSg^u+dq4wgql>x(=pI*qcqmms0x+Hv_`0l$@VK$#+mCJaeC0 zYCQ$x&?~mEm$`igdfD7V`<CrOzXYr{Pz2Y@b@U=KOFEt9>Yt7Ww7*q9+le{r?&jbg z`-XAgQqK$blC5o%M4pV#FW9!Bcx&ILHt%oT+d<ZhvE>>MeyrJxG>2#yAM>6xL7- zmiY5);%QW;ckmWVPaOz>9b7}PVfx6Z*y%in*5G)0Hn-Vg?w9eN2*0x#p?jJBvWHa% zBk~OmAS3B6eAT)Ac13!B>>Xxk{@lVcIlz(lq6siZe301(XH!=ue^r9sq?ENN*G0g% z(1sqdnqUw-O~RhPiHyM|A}al(NEdwVfOk3c9RK~x2fTm&fcJR^yno_=_kYkkGvL;L zg=U^o^sg_2lu8<$-_n-*U^HADQt{^``r6Epmkp6!2o&`<yhD@|A3NwOytq8x<AZu> z#qidUPtNxy<#+mL=5iX)x|OwNVcz;I`h+1e%{2ehPT@L0j&q}LuqWBAvdjbj)5JUw zx#>TQFNRcq-NE$X{~|x;PUq$HkL|k7$bExg@Q*AiWAr5B9~pW4&Tt<A`q^cNw#+<b zJ|{Dst8?!crpmg8v7H7mBBOM3UzPU1qgLxI$y$MwZ+Q|117W(W72ZZT<9|%h%?%iI zgC7v3_l|$Icf64VUstLSf%+(j7D-(=S@NEVl&X2)mWDmHga7Kg)4ljTL@&gaUNq(^ zL`gRov<m6AKjTw=n+sib*3BUiV;bF15PUeQeDC+d#vG-Zoz0ge`1dK!f5={V=#8iN zm{-ut%cNMX{n+JUhUaJ>;?|SV0RXoAqk>GnWD1ir^qS5I$Ri*gg}m&HosExR=&J0W z<$eL?-p}n;zHr`UkXn2B8j=M+WxeD`A3^=bqxN-t@domP+;dp&ZSnfsUaxO^qttt7 z`7te?wU8aHOq+RAOL?p0k>7<hPR`z1yiICHi+5X+NAOXi8vPUT0dSL~6ODdL!s$8& z5D;Td1e~sN0mwJ@O{h$&RQt1L4T8(#5jaQARHNRMBN|S4<7(AB2TfbTuCC6V#+Kz( zcha9YKlt}*1$Nx<)~VaE!+6_tiQLY#UhN#Z?)PjCOK-ZK^0TEk4D!hMSMt}I$V{76 zm6^sl1o%(<|KmG<TwWWVFOXL-y#c4$3~ivxY5=Bl`v7+aQ4$Bgp!ytn?~vMd&$f8( z?~ox3K%DCySb1<?Ub`gjq?v$BHg`nZrb)cUa{I-XDPHTt0r81(C0!ZipwX06@s5(h z_#}G|EL5V>5Z&_<wtzEHgoWxhzJMn`_(4n_b7)JpwB6qpHB7cATu>gy{wf|7q}cqf zq+++WJyg-QNhbfgwPCBK)0Ze196gomz;Dyd*+SL2SDpMv08|UNVdke=;9=+L1#mVj ze8^I2NQZExE%|m!-NVa<ga6_SPA3eFDN{kAP{uns5tLBAA~YJ&H{qatdk&su{Dczv z4gK)RaKv714M*&I6b{%x+RyVjxK(-Vb%9=Qu-DI^8PhCd#r;fzTDU5yBIxE5OBeT; zaAyON!E&YL)s}3om;!tCU2D-ddxKY^SCV)9f$;Dj&;}$jGmmuEo+IFUM+P5@3UE5J zf|@zK5OVF|L=CjF<3(aw>9r)zTHtgXhHVNLMs&QzjGy&hEYI_A#%T&u`+;B!N#$Nm z)NW+GSf(3SX*s#37hXz@{gD#%X8fxXnYvHWKE>U>H;g-#xbmn|-zSbSi|l`%9{SPJ zB6*PPVjOu8_Mb_i{-y!i7cD(VGq&tx@!@FK_GKSL=AahUz1HgJG+!EOh!mpkF^;|2 zdbDNvE4qEA<3`vgA!9U!R^N0K)KBt?knDmQuGf?Z*Pp)nW8z+gzy292W!zZgE}KLb zy}Tj>ygM0ZEEYO%2DnAwo#1p_&+9BNS2pYT*2f|19-Xnl4oM$EiSd04zKe@IO3w)6 zdcv@~WgotL@=a6|Tp2~7ao6i5qp$UP{bKYAE5Ei&1i5a|S$8FY%+zhC_~~as)(OEU zNF=3}!Y2~$pHoj8V!;P2v(_MI?c20DTer(u_qq^eD!1)U`3<3wQwl4ejd2;=vx%(# z@o0B~^c<xagTg_lfqlUyhOsX{i{`|F|9m|hX0WgBNavqz=r<8(Q}c}ZPS>>*%5g?b zm-u^n^V|1&Tk<<!(W!mqXS%oJxds50p0OlZqH#Z)(i{Dc;Z6g<zK@Ox6W9JH_?a?G zG%47shpUULcjs)iAK79f9O%`1NET-J79nxc9B3{P&wYx25vFQ0Z@QjpPa_;#_6z6s zkfk4g5blkf)A8#H+EZ|oZEv)?+_lPf?gq_Y5C9L|L;w0s0dCOg_&Leo?`wzKh101M zEXB}c+^Q9hJ4({=<F3B7hofhcmEqSsU5n0P|H+jf)a>G9UH#Y$b1h?eOWi5+Gf)qw z>wSl@`qkyN+Bsc^@xr2n)d`$1pgqq(+wsHjO=oeS6W`$tiBiBHYujx-qMve-q6M$? z!o{psH>$xiZ`;5Z$1>Z}#j<5+zzb{GO711Z+}*cS7H`M5a7O@X7=$#?bfMjK;6S7Q zA<qBV`is*NC-2h<=JFubq{2m4AhiXT7MYihk@Y($!}vAsT5$`vZC9HxUYQ!5-J^Gl ztv{X9sDW9m(xL?&Zww!p=S@z|^XGpcK|AJo^OK3-P|~qXK1w>9)7zc=PKP|G;S6Ra z;<ieyRjO!wJ2YhCDMMtB2fL(LfDFw3R!Ht|W$YULaysd2AR6E-^Z#bmt*@YwEi;(_ z`EL?ItD{jEQEh(ydXlq}-JdO(?FPaCq>nf<;-f%<_lWowtzV`qoYRaiK30tVucHx= z5IG`A;P~7afTEji_84WyE0TB96g9=m>r@#W1k!Cqs(tF-E4-^qBe#cLdYX5@M0#Zl zcB4TEUzI)BIr^&n!6Upn8<)**#2SG)pcXaypQ&i{uS&vr^*LSN0zib`cDmLPV$~Ly zTIwEhx>ki>9&@@{6{=gW@o~Bq^MbmpIo1Ar$eY1l3QwOmS81t`R%Flzgun{l=ixyt z%jO%fW&IPg{yC5?L?vR~4A2r{RyR(4`P2d?DALYC&gyCD<f=w=g^A46w=z??jqqtm zC=wai7SKU5kId9Rn)kH3>UptyM>w&_fv>iN34%?3pUff%)Rhg;MvSX%Mp$|*U^!2W zk~5q<;XMIJJrP1-2b=ZD#R0-fcMEqq;VESLki=#AeJ45VZXH7r35Kd!@iOeV{5j30 z2q|4ZsJ6v>IhE`B@l0t+rZk2xYPYbY6tRu#xIkhb=Wx*_rV^Rb+5FY>H&^<{D8&|r zK1?(_5xl5TL_Qbp3_u3Yn4_U%aKJ7Uk-mx1Eu^kN#=$nl@3?nJB%=Eb(aHFL<27qy zcRmt2M}SugP9vg_+7Pk~<nphvEFtqinW7M_VX^Ma^&-hm{$kVG<!|H#@-is$1Vh0w z%mIU-<tnQRK4sY^u*jdJi^_s$m|mIuhq$Tw6#{$T7kpAr7Vj<lPRdN5keNCmm}W6- zh5YbP&RBU9f>(A6;Wo8VYbY~8@Q|&I^Z((LILgViO1I0Kdb0J1;b~+0%P3o>FoWw= zbb}JkzaB<KJsmrB$x@z9#|IGW1V4UR4Y~}3`<M<2S3`jL57AgQf7zkXTkHPSF2J0A zfAOI7q-a0-(=I0KZAMIZ+8q2OEe;nL+B|-N3Fc5y_yroe-<PSQUyPj|CxUQBzX0(4 z^1S|12uC=L?qfwTJ-f*&_`Ss+DbHKoW_B0a8+mhFrdt!GAPYu3YxYJ27Z7X?W19&s z4ugvcE(wE62(Ac&D+sn((2Sh2{ukV=e+EjGQx;&AL-s4khjQIN#ZuDXtoNO6dzdY5 z){DgR(X`)mqx$6Cc8fjyJM59~<w3sf_AnI{`F7Y_v<hqzhKy-*_t~3iWzhy}apfU; z&O?h)@BnHu;d*f_e|6}XbfNS6!oGenxUt}SBxGb)D}1$~#m8De11?np|4E0hd-j$e z$MRhyJtF@5ElI3+ntXNyL5adC#m*`_HDE!3ja%kg^loqf+_@pbog0KZn$2%Be3ZeP zxWGPIT9`e8B8~_qYGHC4W3XE<g|h8#esM)Sk}%*DNTy$_$N=@M4DSa6Cp2?{`-ds? zwqAk=E4K51Ua(<?UC+jMX6hbXI(c|XkBmC9bvrLRSpKSE)wj03#49e1;9kU@L+G8= zkAYI421UqAccqRC2r2ZAlbvH^9K-a&&I&$)NXeZhpiNYeRqQ<+QV@Uc(8+Q9`P9j5 zYCNZ-nbidz{WqbUA~>B_<ek2+?6er$8_p0Q4$Z$TAX$H?T>W8}*-=j^9O7jMf}D5v z(!++23d;%i8-150e3xEvU!{co9XC;g1Y&qrvcd%5nYZa4Hm9(W7z|2KZ&g5a#!JNh zyP~kmlR^;h^hyj7DAKPPdfOkpu2RE%6qpvt@93E(>t`m>d_S73k>y}CUriImw*}$c z+aP=|&f0J)6(?@qW>j(R=51mXr*Gco*XRuHrIcu%1V6-oRMd=Lz!r}-<Ntn|L5-TA z!N;i)agPuOvGTMtl2G(?LUet*sC0e?@No-YDS@{4GSihV=W?&^VdLq$MMLIS@D-~o z)>MmOh4}c}5c-dgY}uK>K2-Ocdy^m2ZFnpJ1Izo;@$J#9G5U|bY;1S@zif-NA&Luk z$KSQM4&ubzXX++6|5DsqUrHo%zFIA)Ll(bgLxK=DcAgkGQ@|zG?a`f3Ewj+w&xxqB zR(>F&Z4h>h+6J*lWaA+5$z}JMAEii0(pD4KZYHX1`1Vx(Q*ozj2d5;86?E)^DGMHX zAtZK8w;$aUatJ>XuzA1hN8$Uod57gak~+ZuACn8R#-LXc!F*Q_Ld9M_Nla=p5f-CW zp_&+dUE*w9uSOz@k975lhx@{9EtEkEK&_IZ$kU2?ybI%7uhOR82SH2K{U+_q8EU9| z*;#!kU7%MI1T}bnOna}N+%fCu+}{N{jA44op>)SA<cc-CqvS}}y>!`&Deq-j3{}ep zuR1O*$;`aE;}i}7f1{?^g^$I-nW@3a0PS~M#1U<11StRmi&N@@%NbR3O!f3oUv~(z z790Igh*S8M0R1srAZ)kZ-A#nIzL_$Dv!8nxL9HF!C<<z`NQ4m7N{TfmsQt+UMjAWb zWNd<0D6WTIsLQq~8gTNbAa9{FwM4monaSH;LqN*bDNJ=Fw9U!)TQg5h2>eRvO&$n- zNwRUvU;c)uE4B_vDJO!|MU{r#Fl67h3}AYELa^4tpFx`mjk=FzlJ&6@I0av_3`V-% z16Zlh1%9kJ+l4JfRwF+UzD1-<%Q)Yf!<2*JTgY>mtqI>kw!;{F-d2PuZHXTxT^gw1 z{m2zqQQskKypML7u<>pSAZ#2qFpU>BCeW%$*tnXpvdzAaW8kGs&bQ;v>JIXu7()%y zuyyYvA6S1D<1}fYJFjQ33Sl&|!Ip4GDYj9%?CO;FpmX(;hI)2!X^~Hq7NLt?=66*@ zTfAIi{Hm`_oS>heA*@ps!9T)fu>UAJ%kf^$??ROQG-QK{I2SX3Pbo|$28`d81%dnP zU0h6IwiMy*v)<N`^-`|}F^WnT&WtzIz2K}q8jyKI4c?==#<_zQF%vPUZNPUgXWMP^ zrM;a@w1acc%R~jE3g|DcZoMrH-k^@v*d}V|x*t%eH)wk!9ZVX&vu?=g*i3QciZY}y z^7LMSMkKj}c4!efI$zSh%ISOplx*;x3+j;r7eRDd1fn|yCw%*yL$mMj2?x!8Fm6n( zy;J{!n>Dp?fQQ^AD1n%&2SGpdjw0HX;2}mw{=<UzPzYLFfi_89?>6U)JYRu4z(rd* z=o@#CVDBZ)&YxW3PMbWz={N-mgFJ5^tefuAMx-+G-wSInFFyHbKDEARF#Z4uaSWQ0 z%u*%9CzmwT{bt#V!6ZI#1kvf73MPWo2}5dITr0w$7;;hHh#^mg!DeDZdOJs?R}_*2 zV#tlOdOC6t9xMotBn4lFW3q~R=@j4oAFJq}n0)M)oXxjMaA;OYY3;AmxQ=-A^H8PD zrugACyKvvoR$|PCBD-*Rngzj#$=X-MuXzK*#}(JF&ZE@oJQo6M%{Pkdto@jXWhf`K z1#%9Du2~^xnm|Gq1-}-W#bj}{uIo&m9(uG(IkZw*5ySss5cvtnGzyU-dlf>z$X<m5 zkdN4_a14s<RX7Yq_9`5SB6}4MMv=X$w^7RX3Lhm(w%Tj<t39HSQSA|hjB1Z4WK{bg zrKlfanM2`QRQvAmEvh}DkWuY1G6Zkgj-4f0)8OBbUX4xzr{iE&lW5lbv^{u};p9yR zO@ptIQ0Cc132yGpDBYdysxWfG#j+nf9Of!0*L-pn&J0OL+S>yO5aD=k==|$h&Q2$x z6&X#*4ZPE);aeejiPYu_l{=2%P^{iZ*^TIZNzje#8E}XjB)|3<6~V6%LD@<cD~n<$ z1a~TKs%{5I9^#z3H8_WfM>mX${E&}`8t$p5T0t}{YC_Oq1>vsDlo<ZyY!=>dI)7vW zxb49J&zYMZrDi8TQS-S!?wR%@_!R3!q}&UdpHc(SSJVg-4{i&2hku}CYVW45V4Bs! zzEI6A%7V?fzMjQZQY5$~JbsX0Vzq31-+uecNN%X}+cR`<0rUN-Lq+O8eLzC0nfZFn z$#5gu=$!T}7N+4glxlQmryQ=a4P{4aaMMmy81fNlCNj-YF{k8p;U4#tW_Zx+Y5k~U zZG^$oY9e7UX9~D`HIkHOw!DbEOoDjio|%Wa$7W~f)Ge$Skum$<y&Q7~0>z3Cc^cFV z4}Ayo(Kf&W2JdC&$Ya2%ZedMTo2q6-S`b-!K0Vab9Bw50fH#cgVmfRN*8c<yf!|G% zR<d=#@Zblez*c1VL*hgihzjYtn$Qp8&=0Q;7m=0*oYQw*ZiBaJP_=Q7spvrK{fI}; zt2(uH%P_ZF<gXWC3#ZyHSK6!Smh$|eAau*jIY^UBh3c>lowGxpsEHh?tu;b>pU^_R z<xkv5{eV050k>|w%SUHj1u4e_(0ySKe8~l}{(3b6*~$Vs#gw#j_TJNt@$FI#G{#@Z zV2YjbKa!c&gzTRIk%S+P&@zWwZfOG~t6(fkPifX&EGWA%c|DyGoF0x~+a}W$38#>m z?v~r~y*skg_hub;cjSz4&lU`M-=Lv%*(57<d2Qobx$b#)cIv)&LqITZZ+>TK$VMY! z{N)fdDa6C5P;%vWCUQq{`7E%l5iq)UY7*3Kb)D=$gi*%bJPnFH3c`X^A>Kr~p=bm` zLTffvg}XA$PG@7kjH+Ii#y->}%Ey3oiKbQ@o*2a<$+XR5VIG@D+l^vPb|f3f@{ujO z67dJvJ3f-}ru0FQU>W<D7x#_9@+WKoL`rBf^9JwrrB^UUCe9fpv$-)bp%_4<J(BY9 zG?~BCaro~*n@HFn9K_4a+qMY``6WnOU@trqaRjT_XfOe7Wnd_a8jwhv6Py57RIHlz zECdU`3J8j{MRvoHcB6AS=m8}ALZ#9|?jg`wr*Op^Ejcp{Z<Lv7Gpa&#%HoEPMlo1f z4n*yT!81b)E^HN&viO4GoxNbq8<A}1Mw}-87BZ)S-c`ylV>th7p@Gx=O`;p)Z(feA z&4|gRvrfaV8xy(m2oo}O+p<n}FdE-fJAI^%P#crMQ(Lz5w(F_YP+NVN18TE5L&(Qe z7^O`S(UA&fDrXoXniJs;G_MG@(2@+x$2o>O2=h%)$<0eULlDhbU?2<Yry!N+SIqOK z94l1?AbprUZ}mJceJpJ_HDS7jk@fokH;AS=EaJgK7Nm*&^kAk0W2>hr8*E^i3hD20 z>Thx4+9>^1A}soS9NbgHkcHI3>(BaEEEr0kZt+Pf5Y=!OZf}g^GT`})$Ie2hM?Xjc zDFFy$qRQ5BPBUt{YR+XQXkB$8_%h7GUu@QbA_D1<?KmA+5k1$!`izntR)+ntiwW2R zLg1pSxD*FxD+4zq3^568%(PO<t1Np;`hcG%T|4!zi1>4|pqRcKc}-tt?^D6Q@(!a? zZAt{r)S)E0tDa%7x^%du7V=~<kV%WQ0YY;l9T0a(cn^iKdV7ut%8l{@EVtCxn3@tO zTRPn>P2q2aqcEWch#|>(A8|c2IRCJNHOSfcws0uwu&wQ-3sLKaLhw+no4YvUpCm&h zt0d#EVjiN=CC>%}62gwCdNdRwx<Y9II`|B`98Scs$GGjcfDI!VyCX(s2;Wykc(;o1 zVm8NI?u!Rcu~2D*GycaZMbq6zCM@oNQ3>|RuG-t4A7m2mDQb(HZf*Or@z)&hpF+6b z!Mlus27)RgsLU237<L`3+^c0Q!p~@7Yt-@cU1d6Wm=r*`Wb|;`OEhW#m?=`;4RxGK z<qNlGN}aJ?MaF9cXN0^h`nti?XF}j`o59A^2GZ1d+{p_BZTcY&!Mdjr?lN1E2yPSz zras1nuvk_*r#=>30-iTceI9lJs?_M5`uvRvr{i+<JzSnx7L6{QHW=u>Yrr8oAi_Cb ze-^T6sNp#<Ig4bJ<#@*t7`_8s{JLbzxVO+6ciKR36jhGet)5jiC=nX`oZWB1N_>$y zF=i|CMb15+U%`3QTrzTAoYb-UO7n6lN3fjR;ucu5lZI2`N?9h&sCE;-r-<Y^pK-7J zTTO-m(k-})DpLKOl6WT>wmbFjo@)M$<?7tcM{-Uk=jZTq)wz#%7BE6@SSZ!spd9#j z>%7Gxn5g{?HHymgciu4;r5Jrm=$Z8{X5I~(RUq<x9ih8rA)K;Rl-n7+S45b5P;e|1 zVmo;K9+vNIiQ~RS_Ivp&+M<v1tqg!Jt>ui$@v6e|)py^Ab&#Z!m6WIhR_UrK(pWeh z3z$yz9WPye6r-1ac9kW^RT9Z34Jnm8Buo*kjyG7{qn;Fx`f(`bc#w}$IYvu44C;UJ znUaLER+Okb#@P!WzWgh{SQUOd7SGXSL0{T5nxyk3^S8uA*;hzm^R<<vg(=lsAUee< z{9O59S1a8O>B0piy0yGeHJe&2J2z{mustuN|0&io*PE5gjP#}JUSBmh{AK6%A*(5B z&wdqRs@VAw$8>j7@02R)%zZkl@5;<*UFT94y!Y{Ab=^)~eRB$Bv#2VEwd6>Dy6&x2 zgWeYI#+>4;DFL{{lMK$ZnMO-}1U8N{Do=eDIAWtY{gKpXQfFqow^H-v;LG581_NC! zU)X~8F^m?5FajrhD@bd-1>|UII)6bt(`x#Y!Ht9%4}AUF_m19Fci-h7NPDm5cb+tS zaLb(jvXvyIo!-8wJL<M9Jv&qPO6$<@XK)3aA3Q0wr>~x}%UTZ~W)l@2;B1-Wm8~4j z!N;Xjm1l7H1EVQ6yfe)~O7j%w22V=W^({SIOA18mIVgy=Yxppn9lLeI&ef+0MqKUq z41lR-<2DX9XQsMe)!k;PPlE{m@{Ib<9dsO4)CM2c;+I*!Cn54*NZ~YNu&e<&pg(1T zTbP}chFyS~`rFotC`xi48U~?vqb8Z;#%o8mN}`yqdt&Kp!@Fz);G5#~k3T?VV$ueG zS;B6gaNGOEez@&@5+86U!XN(?il-#Gk3z()N%&CVT{3dFzfG%=1^w_utslB}V3YC3 z9}IIOg?pF$dCi;?UF>?@;riaAJg{?N|9lf(6q??0N46V>rFF9~1N-tLVbkf?F8XyO zHgBjUW+&)}b=7o1v!TgzDGN5GvcY=<8>Ahy<xUeK_=_bR3;Wh1@{{#?s#zY>-QB(7 z#k`)R9#N8l9W$n{g%z$_xJ58->2H%*UY?uVj!{6pZL@&#S@!<6B}7n;Qfn6^-;HhB z6<I)g(Ri%Ct=67a=?a2BWkjtls_%|&l^j+{1x4Kh?dv9~-=j8g&0&&MF|S7=Hm^tK z%RjBK+}p=;E2h6~h;RDAlY$N--zd5hw4=qjL)-2OE$KVIPa6N~W>Rk%JSe}tEYX0( zwe5<FnOo9%7snd&e-&2v3i$RMa!fR#p9-C{NZh@QgTG(FNz2%mO>IhUvheV*eBmo^ zyCe690t6*{xL8KyqeaDp$L9Ta@zIj{+!xNi_p^&GIDc_2_Sp;0%Po$bwj_7K!gDV= z<ASd)ik)%MxtHW(%Ubw%;w6{n&Rf(H%PnnPl)HS%qS%U-+K-)Z-qH&$TeS3qOU}J` zQEWb6=IhJFtrz7kIN{=Rm*o~MT{fEGghiK}f59b-V!7N2=U;Sr3%&TC-~T}1e<1Kb z5cvNu1nTKp@y~k6vS+{g=&5)8rK9%)ACqkD3uEJ?Eas0R9@I~3+y1{|ifEPE|KmH} z7Dwe&M#-h_`2WH$eex;iUU0_ZOHVjscG#RKqII-!7BTvnXt(v;`4^mf3Hjz<aFUWm z5ocU_$@yVS;{}(TpS|GB(IR3^2gZc&Gd?<&<S&F4?7rI|_e=!0S7&~(T1mHQY3KLC z_tH1$xif<2-%3AxK>9~tcos{rSgc8`55JiY)O=pgg+2PuRfQk=0p}cIF`Z=B@68dr z{416SUt@Q;|LeO7e*c~@;_!IM5`~K24@{pg`@CF$#_Cpv4L&fvzK#E#dEEW=dVe;G z{KJCpSbtYqtE0$qk53=D&45}={}1;)_91=#GRBne_WS!qKfPG-{~W=u^ps03()%~6 z^#7f|1KTt3#_3Nf)n97Qd6zxYsqe-1Ot0?yH@*MJ_CpHo|9k5g?*zpZ+w;+ro3GdV z5J%wN?U!Btqk6^vGHU;|KRW9>djIzO_5Yo}Uk0B%RI#ZjearI0rB;cxeL(;J-~W}x zDq@F$ER(r}V{*yC{7vSsoWBbG4*#1CDvM2tRgk|Tk>Ia_ze@5Y`3pOw@8io?n#m<f zb2Mp_f3y7f|K@Mx?f=aJ{!eBvDJ?r_!o<X+(t{>WI^<C2u>X_U-;q27P||*Qq-?5) zen32?;Ncaq55y0vNX9CX6^c=MOA<>aW8vRn$-@piEP3p)aZs+}So<AzSVipEV-F*t zUim!wqZIoow@R`iDw4^=Dn5Gbu~hT7e(?wZ#b;F9UwkD0#_w;{SNtB4=i+NDHh0dP zPb90;i@wBCk(_bj$4~so2{WdK0VTqW(0=i+emWLkQ4xRd<cSIGsVj*sl7<tN!Y!}J zmn<q5Jr!_k702%w(%O@M*)SM0lATiex#cw_UF8+2a<DxXGlIrb4vO_tT$=*?ieyf4 z*H{cqkDiLVF$#O*;_i;ZlgGskyi43O?-I8!isQJ2{Zxmp8qn|P@L}ysMsY>5t#mV@ zIED4o(~aVcXhv~oMR7NeOTQ!vbGFTX%G>cSaiI_dCz<2Y{WwZDKCU;4yD56Ayho#O zca(PqPbtRq`<0%IO;<^(yfR-pw>(+0;NbE~Vi=@`LrTsGU*?o2PCi8ApNtUdbY-?N zZ9TX=G4GHjFhOHhAANsN-{<8gbRE=KC|y&QEw5i&QnJvJS~>|X^m{@7=H(}LO*p5# zY0W`}vbCk_N=hy#;oL)1UQd*6o7!pVzA!G`wWMn}B*`bqU-a9lfAjKXYf7@^HC?48 zUm}Hz8F`ZE-$iMbMQOT9NwcP;Ic!yg!x6vnz(FK3xTHh4)Rb0~jRI!&A*GAsqi-iu zzS=q~%G;!R=5>{=DLuWsrcjbUsPu6XC(<Odbmv9s{)P7gV86ZydX={(N+-GR0qOo+ zOs9GIvnU<s!J~QkX`7cSV<7r=v%c*=&fhDqoMXeRGNe7!&*r#|>*uWuy-z8#PqFj$ z_)K{+U)EK+rerZ)nth1yYew{aQkX2}@^quPTh#X1<rV8nW|vp4EuCGSER@YIuU>Od zn&Fv{DzD8?oLj!6^y~5R+EjT>s=S&Mq$I~|t3OTlYofA@wpdy7M$2kYS>)`RkWpFb z^5&A4%4;e7fTF4>=XX&#v-KR0OY2J3mX=&$n4<p3bC`a`IWF2(8O1#m^=EBKLwRMP zw4pq?ri`k()Q0?o(mUei)v5745G>|Ld2be8{B>BQ%bQ9+2eQ0N4>E^Tll}Urtbfwe z`fzUfE%7x6tt-*gDe0gSDdCyYJ{YC7xp*q=EA1*NnQh%Xi~s3EO3pAC+xSOmjsDsA zhu>`cCr}u_M*TaZIR2N9=A99Jw@t^Xe5alzd{wzk(YH@1?>v2h#GDt=|L9wBPoptv zi{j)FU-+6YDS3jnHXPzwyBDicjnR!!x_ZL;Demql?i7m&;|8KQ(LDW>?wNPVyYF4% zCQr01v0V7DyvZo8xb7tRHY19&{@WZgnz6zr7vELqf+)=*!uqK_7e#SJyj~+3+*Jzx z<jYEShvbD>kU3<5&32m*g3%A6e0?e?gwf}K&dCO&)FCBj0VLtwgHgJ_+kXy%v(X&1 zd1G@ByeoP6UC|C~5-wE&cm3w6OvAh8^4)RaoN%w?i_|~2h<E8I?GvN(tWk;Pm-kwR zlAlD0lN7ZiN-H<nlzUKD+3Dr=Yf1|xC7&kM9K-o*qBIi^!1-vgxYYVi_G<omqqHYk zS}iDzT2bbgUmw>ZQ?e>bth6siX$Ql)`FwVH8*?cvxAeUt+M?}A(pE;q?RSJjm_xRf z9c)7^!mc#4qBJ(1tU+2|D6ga>MM0TEjP^H2X}H0c{;n&@Py9mplCBA1r6pe`Vaod4 z9i^M1U1>DWcaOHM<a;C>T~B@%rR^apX|3Mm8Y|2_q~v6qr!Jp<7o|I2{r&57XfF7$ z34C}bO=gq@yK37lV`C*|%i6~n7s}?B_rz@le>#GlXy^PWZ7*TfThLmtMtI&;mM*W( zA9QkgeF^isdQN$g89)k99lTTCo+$74qBa*wGRm7C%{#ZezH|a3wO?lUkR*8@jPhPa zICe^TMM(pVat}GvfJ~J7u{%n0q{d@x?lMP8CzTc#*(mKXLU4Y6)*e3^lb+H-*}9T7 z2SIx;D2|EB70;pHbD}GxU31XF^4_u#vp~ZfX>GoUHsqqT)=u8D{OL5MexDNq`EFx1 zHh1Thx0RG`2L$gjTJuy)lD{2Md4~#)<L8-{@rFZ;?|(B&V{1UVyy7%r&WXz|zc_d9 zmw4uuhR?;t(9%U0oqJ+#(F$}U=bf87H+JHemMx2&I2wCm>m?UmaN(khE+_6%B~TI5 zPn;el3FBfXF1+;Oix)-ul|?7cJ@w2JmgUY}cwv-k(c&+*ER}NQzws-LsdM}P6jL%T z-u5oU3GRxoiIUr#C45{I-xL*PbBee*QT$*OU)-}Sh~lNC(@*qSKQ&n8UmwNKwb)qf zD^dLJDBg?WuZ-f`B0fyhO201tR8G$U@oJZqe?Yu!78HL=6kpuW{CgB%<Ohp;8Y%vj zes`3<$n$KE;)@#&!Arj<`BVC$Prc&)=D8@oUNoOyagXy~gspthV}8Yb&YOg-9L*1Y z#rR3USMfDbd{kWQh$vom%lZ}L|2~Q@@)^Z_&$KAMC&K9$!fdgRNAbPUyf@y6Z`!Y^ z-lBl8J4$~#QE?)ZQF<lO?~76T9;S$XwvXbei-}ZDbCllpNyM*=;@hHuwfzk7*G2J7 z<-G9Q89rkF9>v#317dp?zTFzd_eSxyPa%G56yNiAVF9)WA^7Vkeh^PL`q`d?=d)3K zo0v3yw#VT4=VCb#;@F;o_yqW>e%%tq->gjhBsaJIMhGQ-QNIsI@oiE3`C)YIlTrNc zC_Y+}>}zQ(LXs%09%oqkv3T205PxA5Uwkjl-+WYlENZy%`lR0w#W%hG|6uQ3z~idQ zw&9s1ZPQXRgH{ZR8g<ZAN=cybCK5H%9J;4W+Mz9NmBTb7lO{GzVlvaFP)f?oG~G^9 zqMWL)O2retqV^Rm6%f*vHicKEpkh5?1%(U&EC)-eO27MFhnba4x9E5M-}V33e|`IE zy4Swfv!3;=XFcm#$GwMK^JDvOD13#&#rPiaKTvqZ`vtj2jNN4rI}#iOO}rja^oKtv zaWOte@DOm?&wwhZ_77Qwk0`uMv3o=DDVr$)ZJ*Q8KB?y;3fJxW42AnYBI(5#9l==& zU!ia@HU(a*@a+o!s7&TrtnkAM*JJWF&F5@MD8}Uo_9=W|mc(o2&9hPABMQG*;WsJV zuN;ORkAF+y5ru0$yA(d`!1+B*>fxZm_1OH^nvZhuw#s)*;fEEj_3*mF%g&XA^w+%j zh9db7D_q;vnF`;bI*k32+*6_Ofl3L8u{MGiD}4KT5*OoU1X~q;q*~%)jErDH;Rio1 zaWNi7kRQMn^{xaLV_@L70H<9YR`wH+$vodu^qvL@h;cB2{IwbKshuzJ!)WKc9#eQ( zSU!vKErNg4e3~S#_3)CWUm$TYj%5%{l>EyUNnDIu5j+(*<@6}Ot^MkI6~0~Jy8k>| z@u|IB^3nZojiN78<&DT_kEQ4jDta-tMcieY&y|u;j8hT(w8mFSd_>+nS1VjEN{aC& z;<hM!$7)Ha$7o*>_$1Fy&|Z0o@gwecD*B2p0n4!>f+HFqkhmBZBKR|fmkml>^XF3` z_2#&K2YS&TseTO);u=?c{5$2d_78lGLeNi_c)7fJPKVx!TM9?DimOuL5rvx)6hfkt zU4^;ccw%g!XWB$SJr#Pi@Drm8Jt|WJo)3BS*u#K5OI+|PUGR1n{Aw3`$OZqB3(ob3 zlgW9H3;q)q{ICoDvI{;LUD3(%J=Fy-cfspi@K3qm{Vw<>7yL#S{0<lVJ{O#88Ye67 zpIq>97aZGqC*|{Y7yK+2e3lDd=Yn72g0BSrHnhm?gVM^yybr<8xX^EM!N1^wf7b=S z*9Cvn1%J{7f7u0}0)Kt7`trHp9{^50csMb^CFZNRR{}o`{%S-ysuhgHb+N+B;OBT9 zlsC_1F8q64aGc7Eu8hT_t75%fI3>Zyw&s?Yz&g8In&TbaU7BWfEZ*DE(iiRMYUz!3 z<M>~1M{BIlvt&s$+}+$7o!7apr#))Lnp<PNOwxyggrMz+lcFin+1SxvIfvo;?zjvu z0&TQz=@QSf-i~-ogqpxt1nN6_V=eKhcwX)?pFTO^X<={2%IHJ_0e#Z5s5{Zs8ePzh zqlb%Q@x_UrSg(LQk>2i4gSV$X(cBr;59%K6*U`~+p1SVUJqZZbnCNQhGjlb=QD)~^ zysD$8uDdnn>F#O4E!v4gk2q7Q)zBO3i^X$KeX&mFuh~bsJG$c0`i{PyPN-fi3gpv$ zCK2n4doJz4LP9Ls)ZCv_cU^avScAxsCc2_My|ErqTdaz!QSxXji?2!e5WQ+$JVp^G zpt4#JYjBlEJS7LzTCk-h*4L+Mxlyc50B!8<rTNIZmuOo&x~91|+KbBV!GcDtwTI>F z^SlXfjdjMG^Y*j2V|7nwOtKQfb#}+4{Xl+Ul%g=mRG1sJ*WE|E5t*|D^B_r6Q*>!_ zucwV7v~|QfTl;2TSY16w0L}d!eFk`er!LXki#3?&BHDTGDbf>L?a_u9T^#R?#ar5A zt$8aoFm1vH6zYPOy5rr@Wov9vbJxn4hfsLo!bn{(99DL@q&qqf?I-_aHFvg|P<{8> zuINOnOM4suqU*a8S5a$uUc%B9UlESZxj;zJ5MJCcyQ8nSd3I%$EZ?Vk&Wj4`6Y;@t zXx@TF5lM1>g}^RdaPfkL%N8i?d|ipnJw2W4qVWVOOhsM53V`O<iCU2MP%kT3S0Acm zU9@G5Xa}M`JLxtEASs$C>uxR@POE3-gxWj*JWT-p(fU|l$I32Gv?I|IUEAFY#|0z7 zf#aU;PBalA^kPdFqDnp2DJiSPb4W$csid6=QG}nOds`LdndZLP7hF(PEe=3OJ6dO7 za3M4XQkuHRjA?|8#(LLupj`;I^$p=ALCyLCMzerIJ~%;@yt#Eva~D%A=<Z$J+zB5k zMZ?)MTFK)6rAxxIdzyRWv*!qBY0)=G3m59r$FQR-*~Y0D(HbNL^AKK`q@GB3Pc)L~ zYlk5wu+WG|)ud%%;i0AU(UtvCadbPHJGz~Z%jK6l#hpu*i$b1lo<`y1>pRvkgd1GE z!c=In@OsfE*^4l4QA~KZ90U)sI<}ggqZ54(ZH<p@y|Ean*$|so!%$+YjK>Dny>vWz znuh+4xD$hOsB4F3$WsBi6h{qv;~r$w(zA|HLXXras;#a)*0M@8kG?lWL6mr`p+DZ+ zY%pAe5;ph6ayh?=+2X`i0u%gHc_Q7yHL|3#*m(izTpEQBGcuvnVH|BFv=rS)cW*Q- zI~$76R@B{^fJX>XF~Ux<{EUAF3n6!l(oi%i)}5m*?W@ofIyy;5HbT(o0<J+Lb<64= z)`zy3&W=7>clWA9kEWN|iYJ<&(&3`m+72{mnCYTK7Yy8xVqs6Lt0}g+yZ23s54N_F zPL*y+Z*x~)8(ND<`<Y%29^j2ZpfpG|sfwHkl4fBd-ifylM3L&|b_<)-nBXkD2DHB# zBM&CPNCno5aYIy&79je9*xCslW2~(iZ#qO*_BQvlb3g<I!t><YS4(Fzb_A%dc;YJP zEDq(ub8$d45$-`rIu$MlaN@UR5abM!Q`}n2e|U)>Hp5-xN7T6Q&njNyn*KQl?pM#8 zH}T?3l>GHN@o5fxL``8o<G}U$^z|<Iw;i}%cfZ?#>#6gz4qUI_zwE&EI{gJ0Z}X!3 zQT&xDIjb?g<;7)*PvZ}7>WXWF3;sg`UuDog>ViLQ;GG7&s1Q6eUlV_ilFNyI%mx3d zfpf`4%l}@rWZ*2<S{M9pF8GydiNVRoSAxuNIq^yt{F?^Or5-Kkm({vF`E(ojKh*j= z@g4&|O|8E>@v~g;Y8Sl81sAW}AwMVoCtc`IRSQQ>`VYI{zjDF<>Vkhzt@}IqFLJ@Z zZs6QI(|R5?@LmI-qRu0eKiASU{SOR$t${!9g711Ch;Wh5I{axqzcFyL9$z(ZlfJMF ziE%m0TV5vMH}U@u7yQ!(Zst4Sg5T?cKjDHu?}8V+-y<%k{HMF%FB|yPNU8Pq)eq+R zTw~zjKptOj;9oOvvmU$8lJsoe6*4IPztMp!x9Rzs13y)zxyykobM;L6kR)JvO*wrE zr+cEm)%!W`GU&O7tIPW%12@Zc>W4vui~LReJ_9%H{27JoeD!|OD+axp@7Kx&d%@pq z7xx%A_ja_L`(5y-4Sa(^KYeDNKldaxpKloWrwx3!3;wu)UuV$Qek9L-m4R<|!5>xo zF4U))?;l+7E7g9ClfFf~ogwSR^xNMxaI;>1YT#yjeAU2B{bLd%F6L|UUvA)ih|~J~ zoPnG4dtLCS4cx5X7hUk{F38Jc(%;~M-|K?E<bs!7cyj*VHE>gJ_qyPtE_mU8<oT~L z^cFF2nwUN#-RXjtR^|Da<CaDje47h?mka)qft%%>Qk~D&#AmqR%M6_5(snZBg7<#( z<ovI7!9VMQ|JuM!dw#>fP5*G#MfrS9d!BFLraiB7!EbZHcNw^8xBFc1chuzNG3h_x zf;YL~8(r|7E_m(7PM+^)4BV{8&pU8!w?%3{n0~{w&)EiU+Rw*a@Y@XB<a5<0@^YH> zk~DC$-tRVWQ=g9*xLNO3Fwfs?r~3^28jxsvepKPpfJO0lc&beQJA>Zr?=GGz<DGu> zvj%R;f0u!8KvJFWFAdz3|BSkm^A8%hS+0#P_;v#~>+5F*Zp!(Zftz~%ME%L-xyr!J zekx_)CjSuwH~GJ4;HDnp4f%Xc`41SlX+Qmqd3v*7{-O*1;JlO5|H1`dXyxh6a>WeX ztlwT2{IdpbmiIveH_P>!ftz}JXDBa^Nk8AfP5PJ%{(^y<dVb&hJbx1(zc`PZ?b;vC z<EH+nMDn;v{~;Iry9RFZS#-(C`K))r+ZIXsX}DG3?|t&o)30#0-vRvT_Bd?dragad zu}sMEKmCJevV6Wp;pDRsf0|GK5*e@Q^?L)4T$;zd2<mfczjWY-8Hww#1J~!v#vQmm zFLu;{>+^1zrIH`zH0}0)ftz+aV_BX)j-W1At$~|%yUf6^H|V{~^L*ABc!R=OFVyD& zrO#~&*Ltg(D%0;W_#_QJ-Jg{4ESH(@=Uwo925z>ONtd0RPq%@mjC^lVxVEc+Oz!zl zgFbE0KW5<982G0ymkG5V%2auy3TL@C8T8u>deff2Y|sxH^yja@11|D0+uiq@1uXE* z2<rMh|EfH0(ywjJ<EH%h>WsL^-_++%T=2iS;ODlToX`Kb;D2|)UtcNtP@lF8ivKG< zEgzh6#$51QUGTY73NG@w4u4v2ml`;eYP{VA#}22soP4e|aFfsHUGR#YJfF`R`6k)O zago1SkK0`E9WM9*7yKnQeq2uelj$r@g1^@Vzt9C=WZ)U_)B5~jLa={RzWZJ9&v1~0 zi*lNLiq;BP;8daJpLD^$Xy7wJe}D{ey`x{=`Dl*EK55`)z8}6iPrn60o$pZtH|uK( z8yhaCp5JERLx|UWK49P`pYvVtj~lqjXQ6?ce4;M+CKvn`7yJVpOygp?%zid#;9C)= z%k>)rzrnzN#7+wr`LK#K{htintgq7tK!l6*X1#~57qGyG5!8G>%FYHC=~v-T<1f*< z<05YAr<l$fmlOZEfqxG1n$HymZt}my1^*45JFZjk$033~PyJ^HzTzXK!h1#zT%XrI zl};ZQ`H1n1c*41Q11Ep|zD3x;Nw4>PdYm{J;<`mSU(LT(pg8|dCxuJnWr}{KfivHM zLP6%~b>PDazt(|oSNM<vkIa^QzU;vDIq~m0aDA@)#|~Vd2mh%9_n#yA|K5Q|6#jw( zKdA7{Y;3q#e3n<s^DP<&E{$vY<mV^ix?bkoC~?{wNwi&EbJIk6t%r+l&eNNAyVwPf zZOhYt+Th>sg5UdvJiW<(+86V<$>(<p*X12n`Z?;r{R;R0r{tsQBMSeB1K0JK_^*7v zRF&3`=LdP*l(W;oO*uEZ;J3QqcevoE-gWYPKkS0v;({;zVV=)=qg-1I+#HX+V`rY8 zrlIxl*LUUdJ_En(eR-T+nWmrgkvwkd?FkqB{gPbxLw4z!Ps9aR-KL;7<yY1FCO!`s zd=du#f4Jc1va#V}doktdaKXn7+?3}OGQj2Jv%tVjdGvb*PWrDI^k#n~xl7+b5pMac zM2b}eG5&p1;eH3cQ{kl!e80lW9QYFoFL&UlDgR#Kz@Jg{RStZU!fPG)=aj#*TySj< zx?GxmxeNUY7rfmCr*3&^{{M5keAf2n#0O+_j{XBmex;5#;lmF4m$pb?n**P#2)8@% z4=MZ(2R=>VI~;hK^0T`f_|jV?Fyg@HDg1x~uTuCy2R>8bhaC8Iw@Kiz13&f^35+@L zyS^rYBM$sx)u4|#@bh&;XNBO>^>T*7iyin{RWE)A-mY+dCfDTiM^!In4*YtBmpkx# zKQGf)IPmW%yvl)ZQ+TZd-=c87?`g_YuEt3b2Yy`9FL&UBs$XB>z+Y7K?GF55h4(n{ z$u~+l`W^U@jKl{V_)*oaH#_jviqEhEzd^OHZ4SIt*~xYX9{sY+_YMa>P2oEn_>EtZ z^t)W}5eMG&RY`xq1wZJ(uT=DhT=2sV{9;8v=7Jw_;O8p(V=lPpSRgW^`L|T*lkdaw z()bywo%$X4(pw}Q-;?E~=`~*Fz#A2PxdZ<nH4dwA;OiA$<$~8b@G}&><-lK3{v_hS zFI0YGxdZnre1!wQLgDQW{7Pjfy8qRB_}k4=FZ~XBjSo2R&nWuM4tzwl$6*(In*(oE zerCH1euo49sH&G84!lXVyIl@^P?dMYfe&w&<vrlQ*DL&>1OK|h4>|Bps(cSS@Ln}< z8FS!QD*T88|Dw{{F$exJMXz7^)AjYT>IaJpWjQpi{iol7KdR_U9r%AMyv%`bS2#bU z&P(&ZMAcV?17D-)s~q@Bh1WXptzVOTEeC$R!Xpm+iwa-v!2hB8{S^*;T;c5w{Aq>v zIPl*nyx)O8qVNF+-mUP>F8HtuzRd;S?!apl|2tgp9WMAT7ktEl->CQ>aNxRr54zxo z9Qb#%{kz~}F8C1#zDe2nF$exB)h;|m(q6P3u2pu(_r!T={6f_)>-7MQ_o{xs)IqQN z@iGT~Liy)%2mWX6{~fq)cU3NUtpoqjb|H4|`)pdy^S>_fh=YDV7x{24ci>w76)t$Y z1OFix5pnf6@IR>WVZRGL;J{Zac{V%nyHq_6JMgsf1KS+<?-jn?f!}_+l=BV;ez(GR zIPkS!m-M?FxYkd_BpFXVSKx1!eDp*NoN@ZS?d1-9#k*vJ6%Jg#A3xy0_51gm9k~9! z#jpeKQGS1$10Oy^=DXd2>+fgmFmN^W5eaq~xSn${V#L5%Uj4rN0S7La;J-r-ympn0 zIqbmocT>h3_=;(gUhm^+{a>ImD4!|=8gEp1g#%xxaJ~OYda>?0T}IS8=&w-pmVuLA zzh@sYaN5IaMZes@Nw43(uTc3gU;Z8WgiKK7!1Z@WY8|-#4us~X`7m!@W#WIie!@6? z)u;f?gSe)TIPi!{)Z@SpD?H`EbN1%I^*HQK2d>8}BMw~mi@$K-y8qMjUoF4x=l<@X z*ZrAa$*bvgKNN7_y8ozh;2zcf!w%f9@D&ccR^f36eni=^p5JMC^m{8`a?tDdP<A+Q z{r-#o&XDF4nJg8c=TjQjpPG2y!AF1JC_qA7nqIfBdIvtD+Fhpu*YDTd<iPd!knVTj zx?St>Eu$%#{vJ}1>aR7fzlT)o!1ec#+8wz59+I{f%}0L^NsnhVuKnRJ9DMZmkpAw# zwcjpP^{n~mb0$>|T%QjK8~98rTwS{VA|K+qz7HGpqUzo)6BH{u()nt?eWnA~{etdy zG`&8@@^uHj_A>_^xc*+z-yOLAUQwyCJI!D3e^ohfy<f)fd+^fqdVj6Qfgk>eq)R#Q z6=zHQP6w{{BSsv!-uL;11K0Z<V-8&Jcl_Of51%9R^-qy^E&oA<2OPNG52|wD`g=u} zJ8=EIq8<mXzgNWXY4Fnd>hBdDbm01XMQ0XIq}SgovK+YnUQyhE>+cn9bKtt4ddPw6 z{^*DUubnUDI8*h5T7LaqBHhnwTz-re-&1nZFOYn;IPpai-{rvdIO?zi*WVMGrTm%B zxAscOXSows<CB{lxY(3Nl7kLhe^2OD1D^>x{XHSQAFK1#-xCU-BJ<DT1M<1wf$Q<r z76-1sFY-GFuD`dTKf$B<>v5^f<$wSGG9;ycQq3jDs8)q$s(mpX;nx9mr(2_|t5whX zcK8Ju(*DhdN9Lo<OMHWv6dzK!a?^yw)#=Dr<I1h-M=@?E&;Q-@7b5M+%CGZ(O8HHl zq44GU0ryJ$ovi#7>H{fyJi_vmm9zW}z{vAF{F&E+`{h%@1QFKx>-#4aM!PVt!z%r9 zHSW}LWjdhlOK?A#{Ou(&hr_DEDL-X*%HIr(loj|hud0XT(|b%1VJ)}5f7-xI(o0o( z6JuDX)A)4?bC!R(O7C}+U(2u4UyZ=Y%5SL;y_Ks3EI(Q4^recyX}CLWk5TQvlmxcC z<^Ffd&u6FXBtE9nFE5cvSq;>cGykc;PL_Y<Pcq$SNnl*g{P~M{m9x9g)jw-dIp@NP z3obnG!Z}rCWt9~b6~_M;&Y4qIHs^v1s?QU|E2dr75N<5+<~e#jAAeK*Fze;t%L`B| zg0&tWv}t8-jX?HY^gUMkaeQJXv#2OjU^f<3jx?knueVQ+*M*0QYVj++d-(H@-q7yD zg~94Q^M`6CFBnP{Y-hTmh4`(_h4=;Iet$UQ3)`XM2H(zF{Ji%1QT!tPI{(@qSB~s$ z^S!U$<9TIo8?V{E_oajs_`S^|_{q)6hbteiJj$O;jI`Uy6_DsM{Ddy(lUq6Z_2NO& zTlVFFgGj)i=RFj*TLXvr+q`2T`xjw59>5Rvt`8gw*?+|^nN|hupIMo1|B1!;)!ss@ zdf%E;d^<hKv5MrescWiGy42Ccl+n6U)*OGq7r&I*8G!t){4L+kKv_70pLP!8cSQ9M z`VLTF{Fv*B#TNd@?^K^yTuaVS3VvBQgrBqR|F$)AAAX4R+OK97mxhMsc`a{Y<w%o# zttb7s@1~LQZEeF=X0RN!WsTO>lHFb^#?*&XKcFv#0`le0401ctvL_>kHEr3AkbJOM z2JzdLgPg7bEoD*}EJLtN2J!o@QUJTL0(lSn?is8=Oq)F!Px!6hU3l>9&DRgA=SOEU z!=ZcVMlE}^a^w~38+mzJd{)am{FeFY_>oD!HFdYu(pZGwl16Zk;AK@mcE(Zs=WE<g z{;WS#xcoU~h=^Y~M`dR2=s`7D=@;T>TbY3!$WNS^urmGXhllZ#s;43E6PKc_Hwp#X zb8GQKwz+!4uep|L{)fo_F!<6mU=nef#1k}@G1!I0OoK3y%<vHwEc5Ah1h+%UmVN6E z3_0+`9S%qXV3!1T$Y{>s5X}t@#2t`NBl3x(7{qb&0&$1%6rXEl8h~Ak*70(^{o)CK zdL(E+6kl9#AExAGv^bbpD}E0hA^dJ~JWz{*Sf>6n;+IIFm0>WRpPBRA{LBoP`-MS! zY4M302QX9t%kl39GfUC_E~I%15I+?CtjImt@At&FTA6EV$52{Gb4|qBeaz1v2^N0L zg5Bzv<st?@$m^E~=^(vj|55zPGWk`)CA@ed;zy=drYL})jKvR~*46T-hW+XxB7b*S z#w^eJ@QsDMJ@NN-Q3+)hejD3Aw%`r^8gv4c&L67%ysQuWRxKRSJFUz#D|2<RH53o{ z`TN5sE-6MP@IeoiT}Edj{XuXkT}SZJ;1d1<HGZ#qv9<B}5ojfxxu=*mH7Z6`mi<O3 zgC>De(~Em_=|_tKd<<u9pcf2h1_xMuL+b-&va<I1(sv*}lU@NlGt`g&D}TE`75FAV zFYaGwYC9FUUsQg&9r5XhEdbI|(p=KvqcoK?XWD$c0|J64o<d3jfI9$gsMNnfP8sYc z$9_T${gyuo-4mZ2x@bmVLs1C77@geft^P8lx$X&3E+KKG*xL9I%U*Af>7O;0?l!M~ z{hQBWd*5RF=g`#w&?nJy;X)uz{68v3p!|2`^b3vcV;MbkbJcs-{soP0<3mg&b3mIL z5Yd_1(#nV3^jrD(L=6Y+S5YH5JtyuAN)4yobQ{VD-D=I^(bOzs4b74n9+gUcsSqr% z-uv|Une;!S9POdeBp>ox$$iDa>fiZN<scBk)Z5RDed-^=Ch=3d>jORcc3?Mn#vg(I zmi-SpAN!YP_w#qr^N2o3`k32jP;fKh%!9j-9}G^6g7CxfzSOVaNgL8H_)=RD$P~i4 zRRyc}`BK;6Q7o>AUzDeJD9it>JiP;4#Cqi-l-?Wc7xTX)AGTk5pbD9V?GsXPJ4v^X zW-}eF?7t=w9-c^eN1kxwM8dL(gjKLQ$<dcy0>#x0h0pPb6qS$Tx5XbQo<P3GvXkta zbczok#r&b7m+u7^G=(HPtI$v?AUieji_v^!UlZE+&_PfIlmGCB?XOiJ2>R`au<S!? z!a2L!Ov#gbyw=9uhXv2gT>r5$n?;Y8++BrVz7{=3W-~>%lDo@*)QaE;>i?I0_to2H zYk!h{ArZ)|D#DMmXFeF8-jM!Ne2SI4rrZ;6V+pb?XpUlBlBp{~wH2e*(({4YtBS_| z$M?Qk_>Luk=?{2N_xVcLs|$Y?C`XgWkTtK6{iOhnB>NI9PUmlDweo|$@BgIoafdqh z!`YT=c26K(F!^_{Z_`gi==lQ6{*9eoFjW6^F@Aep$Z2Kz%I!zJS^TE=8<yRRvCN+0 zaP^+Vv)OG(W7@N2zoLdv7*xTLigA^&YIun;suZ3W9o0RQ*}^Zx&$^ecR1ApvVVkqk zM}3>mVO_l8zpf&EG(M{-eRMe970jFtkFv7*WntNgcXP<ZE(Sjvj;;g0P(Qwo;|?(O z*mW2Y+!+`V_4lO!#}DDm*8>N{{m#HaalbooNZjua9L62ah_dCzBbAR^_#OGBIKl~w z|331fWZ}#Yh0r?NG)9`pctdk|2z_tm3k{VoX#IyWMS)OeYcY6M9&O4zK>I`ygUNkf z%PtH-^~IJq8}k0evcrMm5JnyJBB&LNGb8oYoq<_a1`(F+4cSw!`)}DV+J&-91Xblo z_H;CXoPXVQJIb9clu$jaeObtUO(-_Fl)c)e?9a++tQgsrQtegN(A|OUNCg86o><lo zk*d-ozRhbPY4Vugcf(=?0HiL)J(QUe$}IC6-QEnO1haaMKA;23UJ@v`hHerZG0Kp7 zTEY?(1?Vr)^I-S__ZSY;&;n|$OaY3<UxUB52&_W(JiicQeZUWfHR%(+^eAxTFe5qU zO&%-s4erJ>_{^XOqgyQ<`{8j`kS~2Fg+Wv)lVSuQv!4-2k8FroEtg|FKGYegZK(WH zL*-Fn&ml3Qnh~fx%Hk*YQ_a9o6Z=Xj3Y_L|${|lA?EN!pr?|d44#sfa*X>Kf=-~5F zgUroe4ZZnpI1`$uBA^W@g3Rn?sHE}Jm4CSi#qgz8gGyLv(4JQclVgSG9yS==D=KmP zX|{h^e^gAa{xIO#`21#8VP=qB0R%^V%t1&rBh)9g3VlgEE<trZ?%T{CiAWwV+VEa8 zUve?>Mg5>@J&8)@-02UZRzn#m0nEzBE_t0gMsQAIq#i|t>i?7aZAg!>7c2E`y#RU8 zVbxk{6hdn#R(@kfK-GE9+N`0XMWV8-p)c*(PVs3R*3c@9-EuZT`^wn_Y-T8UB6;lX zzQGHGqG2T7hw0(wpsPSzZFyKYIMG{$Fr>5_iXrJ7n#NQlK)42tGpsD$YB{*MuDJ5I zp`jVSU?DE`Uw6v*5+QFm6T|p-a>)BTVHaqvoU76{8etpz(MregC`{GjR1NfgX+y9T zq_UEGVJn@18b)6C-x&;Tg{4@@qJWn}A7L%ez=2af7Q8HEV~i?{W|=>G8DeBxz67EC zcuP%4U(1gh#Hb<fUomOLfB{pGD>3){7RO+g{o0A8RZW?5!`0)yO|L+oLEp{>Pt9e% zoAzM(S~GR+)v3puGHc6x>B*=-miNRmYkz&<oosY|`CJvc=zYFToJCnJ1nIAZ${&CU zA<b)cT6&e;L3?n7WJp`8Mh$7z$Iqf0IgUu0{dk=Aoq9ZReQ2oRG^={=nh!pRD9?}B z3xw?#U-@R@ZKLTjuxAeAjk5m%tq-(ouS4K%O!N+!h-)??kuSyNnc(QW(%YHLr`jC> zb_pB_!EoUOI1;irPl|9Pw45WM6_^aP!}Y^&g1wh2@CsK4wV>{^FQF<FKbb2Ra%8UQ zPMDVzmyLD&Rz)Wv<~*Jf{W-jOsi8eNx_M12io*yP1QnJ36><v=4IU7AybKv-_r@MY zI6clNpyXM;^mjp7kAnH>*wVk<FgtHA7=iwXdEARX6dt}Zh>>dW#I2<$Q~gD)0e?bR z_=#n(kpBo*zvA0eju<c+k5b;6D}1T91CZ++YgZ1ehgme(hZFBoc7hv(D2B<90sTU8 zaNy(THraoTw+LcidO6Z7E7Ey91ZiM}lWSTNUv3)eDuijSIVCu-!5j0XC~7X7yJW)J zhRnj!hV;X}^hGEun2&!?+e2dk&ETf`YLsQe5d5~co&q6VlYK74LegcWLN2U7`O<&G zFolBJ`@{BgLLp5vUknW`&^qCidR}Q5Mqcbo{|v;T%pm8HRNMSa(a7BWMHQaxIjC*O z?UmJw@_CS1_BIZi1~wG5K}-;!fQ^MUW%1wCOp8BJb87tYnyJI_pVmx|Kb#tg@2e@N ze&au`IXC{Jnwjw**3^jS@78=g{_UE};@^Pg8UN*)YvNz1xi)@t%~^c*rT+*8j1TJZ z1?`&cBl|(*4gVcnCYIiEokj9_I8!lqz)T@NEoA>Pv$&}G<+u-~UTnC23{NXx2tL4) zV36udU5fzoYp6VtejL4w*Av9*v)7ZT8V?h<Hon0hh!6RiUajY1#OptQD*aqyYS@0t zn)$M2KY_)SU~<$e?7F`CnxZwQ*W1TKnfNcU4svwe?#iR%2Shuwv#79YOxSPa5D9~X zN7hV&gyVyhuX4nYP>nxx^Cht!lV7iU)tE4Ce7+x(BP`ZoUFKIo`=?eWO-FdqrDYbT zm7-hg#mF!%>h%G!RGI8=_xMuZLa8y?O&%x=zP68R$o0O4u_o$+ze&Q;S{ddHwUCtI za)d2}gGcujB2_pu#O}~{Q+?nftaOAk=>gPC@~|&V@7^|=d<5LZK&IHY6Ev3nYk+Lt zn9e1K@qcGL(M=5spMz)1e$g7bKd>D^yC@Jm@irRgeqZVn0P3;MnfX$HXI(hP<(U(X zZMioP#`6kszdO(_?)L|JaK}J{dVzyOy^=M1YQ;ae`^9PX_8Z`uJnY?!vTaTU&O+Jb zJQ`Eq8cfllvUU`Sv*ud)sAtWVibeSuTaIjUljaIMjNSb_2M>@w{vM%@T)rn36=y5Z zSd_oCGO0iW%)*(Q0^DcQbm0ujz-P4W6(m|tA`CAugMfAkqt8nPRw$YtKD4Wc{vdM6 zBx#H&UGhK?+)KH~7Jx6^%p!q3twGqUevqqIbrA`oN*mxY>^iVc(nki9Px<R1LCyZ! z>9Cz4!6rS%+u7+uym7tDu4~6%Ka40}$MLtf1(WLo?|SFjX&W<wJJ?wp(E*7j=3}s* zL0{@Y@)^4E0A%CjVufY@Dr`R^M%f}ER*Dl?!@{bvC;m1LA1W+3`SP&+hLk!}7vV}o zgo$8Q%fUzJP!=j&h$u{)+D)2>rdb}guTh1EwO3e$NFPl8855Vf_QYk-;YH9JmZm@- z&fLgW5zgGl1`*Dzfd56c_)?s6S;_kYR2Yi$Z9a0z5ZzgslJFWT2m&gJsW29S(~<!s zQdBpI2j<6?QjdPS#+rH1vax1v*P+m<z&7BPz27?f?!aaQu^@sN%d-2bd};3da99rF zB=jl<F^CdN3Ca<`HDIA|#Fx4qlRYcr=VGxKO2c-nQIQH<vEU;TF_`TKrMBBq;TBkF zpr8^M%>MCjq^M`+m|p@5XTC;Ns6t7jQ+84-LE$=Bk5CFlUeN?iR)t{T5D8Y!5S&+i zpogI{hWeW@nX3q5yfPhwQZ(MIA1#Vm9z&M7y!fDPGM5*!>Caw?&I2=hn87s_A}0GN zhZMdC+Y7j^v^9h$)!$}nF#6Dy7eYl9i{Y=TJ?73?tUs81!JBwI>qkObC!A~g0%n46 z55hAU9um$^nKh+87btfxjQt!nXGJ%b`F=mzLi&Xb7*f9)&U~NFweq*)C8}TG3g+)O zl%b3HJ^aG6q7-7$8vTfUNcJOpu|8pRD{zEzewFJjht8ZPR@>~;E&EEeT}&@V8%v=! z7?vDF%OTQkB2YYP1k28x@c+r0B-Fcc57(H);8zl`8Ca95XmhL?G3db{ryf8}i!b$e z-Wz@CKY?RtXlaR6{qy*{eVe#b2-2me4jeCwpE7WKT72@r@lzAc!*bktDx$;o(O16d zOMi!ynL+Mq-QkT-OCBh|0Gv-vLyf04*;AB#P8@#?COACFVD6cG$TIub;eq2*<NrBu ze0uzr)Z_8b4;(L#4-FhYH@<n`_{?~6;CPKMbv2R>9RIj4^%)Vk%$I5x0SpwQB5;i_ zwNwPI^`)9b;4G9E0Wp5rc`*50Me_Jm-=;JquUX_vt)mLg@ueQ){oKT<p&>D(^9_yx zP{TjU$}w>mY${*K&c;oT|CUas&fdA^8`RgNiTVmDeND>gD>a#d<b)W!29J(B#$dBe z_NzZe?w;&Jc%a<W%U#sV_n?>mqF%lMy|fL-ze3G?0h)>51g#9mw+<Y?EN%}RzapL* zIDXBr))#ak^>vmneGELaEtKPZtn+D<f2D5|2X-vORF+{G>wFRFJl@2tEoNPpdVDzk zapqmkI+=r<hvT!E^-N?P4<P5^_<Nc48OS<5W8nC;!|{@V<H#~CiUB_)?S~u4*>PaQ zP&V|p*SG0L=8ge)y)V5P!P?XdSU*NUSa_5DVJyar^*SuwWUgmd$>BqlCB{uR?;gAR zDY*a>MUowb*{`D|t9g{-f4<_s-j^=d{NIPb_*WEN7glAl>nVopy1K6b8>~iH_HJt? zmK-mE|2RIwH+Y=hgF<tq6I;VqdV@cPM4q77<r{xH^_tvY(Uh6p#8vVCAyw5Cp2Txu zTduR!Z$49RQekne-naA2fK`1U@rY$Vg6SMr{KyVV0$h6&(TVQ`Gq<u?*#|j<IOaWL zBso$LOgEPMQmeo}`BXt%O+_)>f!SjI>PufjL8YG<=GYLM9avx~&P>Cmj;~=)FtcWQ z@{MV}Q~_))nA}iYye3S2i&ZqN<3Pcc4<}zN#zY&sNxlIM9bIz)CT{~mI!;u4sTa@* z)!gn&SK`ju0HQo-BB$^%v!M7y;HN~8XftlZ;|GL1tW8!QTvFBempODsP68UgffAIV zC*&ZbDt?_cG|aW~OmVgsCd<h3T;x@V+z#0hd8xE#DZWlT7xA2EBA)9tsFw-3PpUwi zkU=bBVhF&VAInxt{j`AW8AzkV%KjC$!t@ybALf$B5wX6^eP8a^!)sTyacho7I^7zD zz?`!G9rGPgm8i$*>4y`i+53jlC$7W(G-`0o2ixqkZRi7QSB||AxWy{D4j}mH{zP#( z5aQ;|9@(#RKBA5c{55}wKrChEPY__iZWjc?lm%ljZhu2gtOJmF8Ei6m;?jOrJJ;#{ zhDff{HL7*G2FUg$F`(fvpJN{m^S6onoq_G*es|ywalb#X19uGbnVFOy=C)HT=8b*+ z&uaPZ%*40RfrIULXp&gOBQ=+>ab{t|R%__;KpCh1SBmn5GuIS{W{%1wOV&<tXlSjM zmU5<0YzPA`xyW{=_Rm)4{IGo-OG2D7V;xMaXba-H{rJQtC+ejeK5S(Q2dd6Z+{Se^ ztb~u>BK^5s^O}T;m(OTCXJ(Izx*vd;qW;II=OfnWUQoe#x55UJ&zC3PIA?9Mee^`& zucXuS<K%Iy7ylVeGL$?v#kchege)v0q?RC%JYL{SeM1BaeW_s)@cL4>ktQ=J`*H7m z#o(4-Pr+UhZ3WuHatoJ`%3v$y`Tb*L<MnO5h1<8xW(WawB;r2WWSi|Bzn}eyq}!nB z5|VBf+Cz@+raWDnrn^GYeZ-*4c1UHVSZoOXeKt7Do*oEuET(-~7>dMjcDdKeOb>*r z5Bav7hh##=nGD#!;bhZ(RMeB+Qb2#vgj(JD8u|;8LT+E`IXw7wibEgwAt%pfZ}wTE zelp*eTO4nh{|}Hz<o|63Cgy(&AT_Sbe82c#E6-J$-zVS9uhHZu#{X}vpSNj#Q{T+* zDExX(zGGDTTl3q)zJNCIBL*gx_nSF>(oAoG(Fuh^-=Ad|XLDda!WOX=lwISXU!&+# zt0i%<NgR^I(ms;My{h5(1}hLD?XXQ%aOw&K?8k)(`tC_B^MemeHapqOuh6&kbe-R+ z2xJCpXpTit14w@>=0wtNx~Iruq}mXG%{)jtWixjfbidMcKa+G^hSGEyNhjrek{+Hq z{3QZtSND=owX1A1D2Ii;I{DQZ{4UDzLpeUK`CWiOW{?vMU5>XK@-5TyEs*lvZ}1xz zGdxf7!7?Py={Effz!%-hC2?Q!0K%xjT0Gb|xDddsRkaS?vE*B)y)V~5KgVP&>}Ce+ zM=g5~X7OWCGwfk{V1Lm}Pj)q;gr64Wz76ACk>VBvpzoj|XPuy=-$A)IX~Js}$PC_1 zI#qw~mUKv63$%KVFZmY~TB`qqR@YGk3^U<mhGy~y?82$}hLC5W&ZbeyLyo#$?-I1q zPTr~MN+jJ}gDxZKAP-T>vnnUgby}V^6XoHHK9px+ULK_lrhj`b{Ry4#Q3Q<gtWfEF z`ShYZH$X>1zx<_OaO4z0m*;8hj$wQPl-9v~ehZ<b-tN))d~aetBPyS7iL?W(S<znw zWlHo{Kh`PlMnLpezZU`YSA3fft=X5li!_<R?JzI+2H_*JmkN&cy4yR-j-ICUg6Q!F z@1Wplx=fIr30gR_6tmZ*qWr#`{LkugKZ$^$r{5^~pFNhV_ls^_A#A=4LfHp#8nlOE zWoGQLhCbyL{m#807P9;|1DSi|isGYIW)4OY)Ag_%_FaF*2~T#5U@iJf*zH%yjODl) zfy^MY(stV-2$g+LC~szP2a5~Q>7Oo=bnGX|Ot(b$esUVcWS(9ICi?9cU(@{n>YZMO zdgISR%X+^-t9=s!hTevi-oB6Is=ZuvE1i!oc_lSWy$w@3Q*YOUSje%Cfy_Odh4^lI zTOwH3dNkkTvf>Aj$bQ_)%*y*9_mcZ{j#C(zSn^koQuJEce)$9R6iti|-h~Hf;|sXy zwlOM*2WVeXF^wug>SH9nXOOFeIY0gdQ0MFs^r-h|5HHI9djv9rTussSxk~U>_5L$W zw@=WOQ3h4-bvZgTs|ozjcFM?5w}&&#{L$_=T!gIS7otqtj559QSJB=D`|LA#kmCXQ z{6zj4oITn7j^~~EXNs5oX8svjc(S+TpGEpjj^{Ow=QhXl()=?^m2J#F3;q{6o<HPx zK0W^|@}Hc47W|IBnk%n(ekT7c%JW42S(e}Nywmag&HS@Se~aUJQ~p`-Ta$kl<!Q@5 zi}XwL&$9gaXIXy7^M@SIr#qe}JD!iek}JR9_e}m-<oAT*d4K*{(C@@E%<c|6WG!?u z2=8LJMuvAVTp`0_496w?VTRjf_z=UFGc4yp*{h83QX@Ry2!GrNpJ#+WWQ5;kgiDNY zfe}9Xaz5YZ5YEq!g3IJ$Do@X<v$;5A_#n66!kIN?av3$0!J#Oegu&T@XZxlORACLV z2*nAWSb`mS`&rB0#~?OtF*C=0Ha0deA2*gMxxO=mEg+=9OmMnL!u>I<S2Sd93PgZ& zuQ$abOv=B8GIMbLq_HT3gBO0^Ci(}t6b8XOT&lSX2pEZs)g1>rFd9p8u}iK(l&cB* zv$<ujA3rLVy;7HnnW#+NkO@<4>{U19(W(gota;mn%u{?ZssURVQgW<wa^2KwNpfI~ z3E1ZSh!?BwR`n6z4Ic$6X5g4(k0A!V*gnpavE1D%7jH1XFV}wk-sk)}F;^Ovm02w} zlCK3Z%W(MG;)?#v$1E@Qwtxgr+!UZ)VmioE9bhZ6ko<kAyD=FG0xiw9b51qvP+65; z=fSES4yjA-CwSia%<&QS4<c8wh@`UC`3aIQ51aaj&Xk?>)&{X~A`Wn5k8m!Md*367 zO%7^}$HaJk5pqrsVh55~b{_y${{vN5B<{=J4M41`WUHWH$|LO+Z+PHnoH*^Be7@hx zEG^^t87Q;pta71W?7Lv?PM&Fo4RdJ>Q)`&giKSQ!3)-Xc;$Wr$OVsfXafPeB)jD4$ z^`$?DVHE7Q-)X;TE`EiEZsuTstjciAm|H{Sjh8)cK7z1XNAso5LUFL4UW6^4^Lh4H zoc6+<(qSujJx+nhbJKD)2}dzvo^bWkzD;~*JTz1vzzZvT*K}if89^LLh~P*<7)KJU znyK-6oJgp}iG-S(a;#@xi1P^N;XJ}@bsphEIFIlFoJV-CI*)KV&Lg}H=MhTed4$Bf zWxof`MS+@DU+Oy$y9OH^Nw#>gv{frL<4Zq9+Zm_{oa;+p3iUT(^~)<xoV1D&tk{m1 z4Q)9a8ny)g(v-Ot%InAW5!RR^Kaq{?i{vAf#Wg1$>}s0%8qAGm9~xSSHIDT(<eLYC z3ZdJuFFlQ_#i@?+Q0C_43}bACvm77w1hJ9no$X7#izB3#v~F@wLvdJ>n^leVPTvi` z#1k7}gbi@$ZgetYEsU)&EZPSSo1xyrlxI7tgccrQ0_>s6y(qEpnQMzE+p{MkXo@%M zrWg@z7J`?eF^0WQu`xzahQmTuth-_E$CBvQh^!LTNtDN%Ervey_?;R18-`Zmbsn(7 z=^q@WBUY?V3x%-<i-HF2hSKaJv<6Z77*?u9-K-Dr>`DW|C`>sDld2ZHvH!6ih6g_7 zLHlM}sV{XNEh{4q_lRY8am<MOruMJkPg8%z{29?JK#TQ92vcQca7yUrS|k(amQW{a zP;;n`5zv5?gFtZrMN#8*4J-vuNI-{*PGOE>EY6-O>gk7+FsRr=j$|bwpEUD%fd1Z0 z!dy?1<hLj{MB@k&d`odd{otG)3`@L7Ldgb@R2Sttf?ga~(}Y+fv~Y${B(^dU7XGl2 zVqHFkR1g?j{ye=i2kyZlmJ&&N@-NNPm*)8UQvI03XG@V_Sk!NqFZ~%*2g3!ezH|)X z?AeGF>+vu%8p!gT{V6^)w(PCKgVs|CqScr+U9$)E{P{h;TSsOdq-FRX7=gt!ED6k^ zPCamAb9_6O1kU%>AKZ*v_BLcY3_dFm3$fV<E04mVt;pcN=GXAwRe!{PEvMqY))IFk zsD(`bmeu%>pz`R%V{lIQFb?5B14ksf))mY?uTkkjMnUr?n<#g;iCYD|wh2M_7B<0} z2_{81;LYBJdHJwt&!QO%%X75l^c*A*BoA=ht90fdO6>)s>@-lyu8-d%7G6a3$MTgn zuA$=<Hf#ZiSK6?1@*~ku?5E`MDElubE^SYb^q)>QR*FLepRnw`*7+EpSu^)0J}}xK z`erVQS8#b8L%vp=wZP^wb|D5J8G5xRG2|I56d8*{2ph4};q|n!v)&8>UurkWI2gfe zN+JoW0G;fUmR+P*1+Y0J0IX%_NXiuA&mkE4AQ5_0g>XY{_wi3y8=vxc-Z)`x+{28; zGMjx<fa7i<4@?+Ga8rQ;07CYbz;;Gpj8u%Y{tzffRKyMy0dR{LDrJk{UvxRa29*r& zIsRqpSB&$rERO6a^XGP<Z*g>2y%(WhHpNzvSWp%nVCGxgn^6b&#<oACc5r6JtGFq2 zK*Zra2Hd$RbV%Iq3>+5syM@wtZi)j~YzmPrUmd}LAoOeKfbb4St+o4^A}hIHs!DcZ zv(U3_M=_Sv!zDyG@G3_6PJ}oD0}J#WO9Dk9@F;6YA8oMb1VRA(zSKs>4J|kk#&84O z-c!N*1ogdGZu0~m#3%?YYkCL=@PE=1%Jjf9S{VQTp(#^5I@e+b*67??ao_z6Uj4%> zWcK_j%li`EGAXwndp&H=$5z?T09J(U$8b3K0@BCZSFQ~uN3g}Tr=qEPEb-0E#YJ2c z_Wb;*>bJ)ih3%Lp`xrc3ZaqQN2l#~T*TLg7@@S8@t{uNu)t`?45jKG^FG$=@imUs2 zy2rPPb=KtT7+r|BjC`rX$SC<b_K^N80$7tfjsRSJe>l_L4)2UZ#SshVh)`QS<qL+U ze<aM~hlP=zaAtW$$op`U_py-o_3%*5X<_ekAr!SRvZBemJ6vd?w-57Zn-yvDJ{t0# zu)M#rypJ?_{}A>*67v47$$Kp9eKK5F>$eJf%EI2qk+PQiJ=oEW^N<rJQheX~s4w+8 zO5afVFy40v*@v2N77`7<w8{RXDlZQFHD#Lpc(wY~3Y^EUZLnX%)M{iqO5fyt9veo* zI2Yu%F8a7{>qcPM3t!Hcv40-K(&Gk{YiY4n{VOb_qu^{wp7Hl7J0G&JOE_yEAZTRC z&yIm?!y?N*fOoyGdkRO+@HTh-p<{f-6I=CO9NVqndC~f697qeHAb#IqGmN3h{)yOb zgW1l?&PGv~(#oL49`=v#Xa6-ceIM54fESgZbMj)$340A=S&suKzcq7@HFH$?0lpJT z%pSEeIOvm^^ATYx*32iZ-A_yRAs6Dkhr*fZ0dYhFr^3WQzao35$URbO*^fcnP`rf* zv4@VD%5Igh&`5td`(?DPkAkei^8O4}gm-)}!8(pKNQYq`Dyf3<p}H{7&2sQn`S6d6 zp{wlqD2#djX{kKVduho2hj@D@`OpB?F2&9*UT>aSpGg!2tB=M{#TMv*o?`5+{4MGp z@38w)TfkHJ`JtlAnljUWXAPzHZ6~&~rx@1hhrFez)F&~`_NBg#h^C9C#XsuX!cRwv z9ux1byaRe}$`nm&s@@&{Fy417MqvF?dk=PQ>#Gm-{t52xwPWL_iS|+Xu&Vz|kq?gh zcSCjD0`^un6!`}GSx@#;^)}wM`ODa%pX13CTBHxR?6J08oSD8S#I?`NoYDDb&lwG4 z^JC^C)=arOIsPpxGiCgCnUC<E!l}wn4#2wgYy3Hnig&cb*p@_xhT|adD5fK|l`r6} z5A0CePozh#D;*DkSqddad)^Cq_mu~$uc+N{K4wu>A@B1I)pG)gXL#Zlueu%EP;bx> zgh6?)`-N&xoF%eXL?>AGPu{h}0En|Zw22b3fJJ!a`vEw=hHmI=9QMbF4{5zL6xrQ{ zZ~_xG#y$xv*_S|_IM0Ry-u6NJ5i4`U02-i;eSDbroR@^nLz?76#dv2oH($mamWr@O z(O`KC(&(_ZilP2z5eT=`Mqm;a*uV>8rFiPgA-?Id`*2and#v}<VSB`yiB@~8h$k&~ zzxWBuyWe{34bh8u-x!}cYz=MjhpLbD!W+Gb@`&{q8+;Mk#uTe%a=2vy-t0f@4^KT{ zRqu(v1OKfZ2@f?MLHfQC@%eyS%*gOL0^5t*bjuFnMEIM&_kiVn2rdSu=qP(wIP*3C z(|PXwG%NFVp1hfQ8MJfaDcCcPmSboF{$j|(L6AC6&a(ulzE5BQYwR`}Yz7Cl_vJR; zU_dkQb~)O3A5KZ2vag9$K8()@Fo;7$sCG1~R@72bem`KbmAo#3T>ch66HLd%x(-$e zrZ6F1d$&gGBCG%kGr)jaGea$ZVysNGm)&5E_2;v2V1gYtHt}~<iEd^W#|9@(LvKBm zLqMo$aRk}=@iu$DzV&(>7UM*@-b>$8EZ!RK1DE>D`Fx`jD<AclmLg#@L7X#!Sml() zx9JKH1&5a6UC%?v{pUCdTU)^x9NU2BKbZK7mAQ+%NqV&jk7e=^$6y)3OYlWZ6-Q2^ z;vHhbxiq6m#_$RzUqrVd-pZXnbki$jp!~_Gh_^-u=tUSta9CgnDq((uJc<or@Fs(C zTo*yV5-5IU5Q7w)HhVHWw0<v!B5R;MdFU%N+9;X?dL{U|Hxf^aHw8Tx4;8He3Hz$> z(EWS2Bj-?Nt?V=!s$UI_&ht~4;Qo2Vp0(Iufv*6$m66A3<+CaREJHhLyzBS>fd1g? zQ8ukYUy8?NvOHb^I}a|g(kH}9tS_~g>c@tgXd>UI_269$NEv^>s-XJ>Hku>_uTk;k z6o#y!yV&K7eHT+HNPLVCiZ_}h%1c)<dSDep8eTd^RSeRQ#*AUDNN%JtV@h)|y5=;u zVU|TmKpHd6=3ESE%ozGdnT9lGOnWYdG-gasE`~H_jFpQajTsZk#gN8~S)Pj_jTs}F zhA0nd%$V9-8ePL$2c?X`xpS2OMH4YNVlG{Lk_5c)@<BYrp2gBMe8Ax2FC5fcB;hb$ zcp|}qaFvE@8Q}W^iobRaxC>W6V}|>Z{ipUfI6<ad&PEs_^$xeQwxd4tUjwKw94g;% zMaVu8&ir6A9&wD@ulyee3qc&@UKYyCdNOGLj^A(@$Kv9Yss>L2i(;~f7FO|#6F(Pj zkEaF|3|IJIj?Y6_{W@$kH0eipvh8WZKhpmn=9qX)yh4d{g&a|^6Tp%CzjDz03!xFL z^X!d(Kpy@o6J311cZbvEX~6;NNxA5FU^0bT@GCK6+nd<mhF3Z!dk5lpNi;95y*Ke) zL$S;w@g;mA1)b+pI6*2h26cL57c0`&a7Z9oE}P}`T{!|p{%AP}_{pQ(QFgrLjizbg z_!Mrz(ZS`oAstTLUmjS2=gZYIg8aAzF9dg>HpF~wR2&Ln)3Wfk`lvYK!zG5$=-@G+ zm*d-6uUOx~(;cMQ{$Y|eWxh3nho;OuyKuwTT`&%R>4g7Yz9lL8XUsXn_SfZnbTk#v ze!xOldkcnjTW45%1biDsG<4k0V2-%Ii}x|U52zO5Qhdt;pF@BLM9jeblG2wt0vHaN zGXsk+iqHZv;)zeShVDB6$`c2PiuSC~VNghP%%H8vp?9$5DOz%uw4&81bU7%9-WeD` z4p!!FQ4(GCS~jzU2@DYKR^P2qR&MIW{sT5<*x{ih7GD`hr5V<(?crV=5X>oi?7eW; zdWG_ND5`Ck?<mU!X^sB^INyqIr0H_GnwEF-FY*cRVnUd2qj$iU;%_&-na40l=u*(< zVaYp$mpsa`p!0255}AheK2<%2u3^3(#@ZG;WXq6{t#~<xlTN`{vmERqZi}!LD|3@b zseKmatJ64vYUh6|xZ=|@{xRJSl`eJGtbfzaMCmPG`gzfzN&fuS!;=_xk3IWSReBKc z@HnbV7#|l|jzIJ<m=E9%LBhCsd}+Qar{A{;!<cB=!5>dToMj)IKQv>?_}kSuhR0oT zN@Ua1h#RPiCGfeG6;ngizv%n(K)*MZ_`^VdL4V@c1O0`u#Lox%i&_#t4ORc0AGg6K z&k8OW^{jp0_#!Zq{ua#+cCn2aLH{d4)vvBOYvALt#B{Zgk$vTxaZEKyv>ilz54ImK z?8is7lv-*E8MY5++vy`v0#=b#C`*F$Lc59yUz%RgRQ>0^55O_wMe?a}Kem*nV>_w1 zW*T&Xr5?V93yQ>(a>?;}EIG>Z)4phI(zlt7-Im{nfW1UufiwpH<9Q>jB?lT|!9W7b z@K~4vh2_0lI19l{+H?GY>^nfJ+y&NZV2@cI(C15Ne$<NmGKeqr7c7xuo&>Kju{r!o z;F9kI<E7ow8_|-u&GS7H8U+}y<9tHPxFFZ$3ned#3qy|>vij1W7MXEL&MVy>bJWE@ z?J-^a__wvC-TRqev!<1JSlgpSC-7dYDqW#((`QAqk+Sahl(8;Jw7=GCgbR#tA;LFF z_mtTpbYwIt(ZtZOWU1*ved%31nIK!rj~~gml&=ED%hDVX1_!=Xi#*>D^U6g4GQ-E< zI4}eAT@)#bPa7TJBd?5~8}+}#Q>MQNo4BdR7>pDR?7D-|zSJvtPCkc8!Hh-tJ2?K% zTstbw(L4$oPDY-?i%{&$SUt}ZgH{gW?m_uBLmqoZAZUw&R`GdI%MOyD1_cSI@Z!`8 zLWp9A8?pyQpMb~1^08gTj>*R!-sIcia*s0gx*}ko5X>D3MFjxo1(p#-Qp&{k;AZt$ zCLf2@<1iRdG~QLh<tl2IisD^G4Is*wem|D^QBVtb`f+%~IlirFM8I^;Bq?A2EM@}S zYt+4pcfS3B;g|9!oJpdxv10W&Y8$Qt>%25v%t)`V5+Z=0ZL}x?j=P`2r+2XPqvLCJ zJih;NkgTc72r}oPSMeJ43jndShQkqCpAzx){Aj_^aOMt{Vca*&306JUTYOvhApYV^ z=U*WoPK3z85C(Wpip=D6-~Nl*bj(Rs)>d!Nfv8emEl;^+&+@|&_5!b{#+sdP0se#J zRSKxNZW%&n0;#bNighUQwGJ=#SI^|9I_CIpcpA-$--z&ounNU0L$P2?vmiE*8rV)b zf<P*8%ib)G-_;|ICm((gk{|5~4T+B(jjcSAYbhK>%z?f0(*(tEQ`u_#hk2VL#RW`} zd{E4`eCc<9#u&F{XW&^S;HM=l`C$%Lw!K^U8+bt+W*KZ}+rXOepWq?Q^v~kNn>cI1 z^(CS1yG0MC23vSPL-q%PmmW8K35hH?40d(dW~{-owFyJV8*az|W@aHjyk{mKCfHnd zC)9}!0;gnQwYp=+LRNU@nC^9QgCy8t#Fw6eeAK890x5?D!Ti9@o}FRJ#7p!~Ly_AC zj!#-MV<>VEuhQX-tFd76*d(9$)hH5p6@gz76ib4&*D<m{My|bz4}~t2mvXGjLQod* zvKBf>zTvYx*9)Kr#$qt60nkL*_v7eOHUQtLvcE-Uzh*0~IKu9k?psd>vd5{fp&s!H zPHtf3?3><(^LorI!UzhLeHr@J>s^O9-#KjY`&_MoG0u06{1|V_BM*Gp5;GqRk{{TC zXMF3BdK7I9E2X0L`TjI&H6%_(kw`7P<v*+`KD(1F22s2kTO}u<;b<b+1A;N0M}s}> zOZc$r<XJxz=TBz;m^(%G80T1UJZ>Mf%=xR9WIr0*z<uQu6;o1LJ@5Y0_|A-7R~E;b zRh|DGd`jLY8W50;7yD@=`0Ru<A32l75+N4R%6+LlV5!%V*kJgKua%%(;+)I}eLJUB z?e?Wk16Xqo#yn-d^k2aYU;Dt?@qTY=B=LI`oFhg(MMlo_7kn<Id_pEMq-6X5uo$b! zy=Qwr{M2a@5L;#h5|gat#iiKRO&%12-FH~ZHzsbGL%5CB315y3YMFuDVI7q-@49y1 zJ;}{PH|`h6?$@!wb^?EI_$~Y59?QO_-?Hx-07V-Yg4-b~wu0_mi5IbVA1-+9x!und z;9c-Nz6bZ?_Hdhh7nh3bXC7#?Gu&UOuO9K;@NOh(vv1srXKN^qF2cTVm|^=5V|U!i zTK1(XKmtiff`#}tTl~H=0KUzHr<;J|iSIz+=@vevUWI3C!g?xB-od5g)0~(+Umozc zu~RGb@b+FWJG9c4j;;jXMwg!)`q<ZyI$q3iz}*OCl4VelNHj%G5a&>oLAn&auazDW z4iwIvtm@|02L<N>%<(WH=|N;Jd(jB&ec8(ZvONvFeoi8R-A8ZsDIjgb(g^VNKo~;y zQ9(2S2|P1@2DP!|*(cEw^Xs$t0tjnntT4EXKX-I5|I6}ST;%Z@94EK*)m}F~3;?}Q zsls~>yk6!@U60Xv>fyv$Vj-`uf{V<;@Uow!&<N8)U}9LVuR}L2;^e1*(j#~S^&rf> zLcINtW7hGHCXW^Q(i^3_E^W|iz*k-<MD{O`iu#$mQ0a%GpPE3H-zg$q8E@_sdMgwO zO0y3j0{g+r+gvU;W~9I2-nVi#$=3_T*3BBMp1(ztM}Ha~n)6dOartg1HgPiR-=mfo z#n(29&g7T3aH=fvXKXdedBm<i;WcBmUqtgksq?!;;``3{cnns6#QU1qf8PfFR;H_p zm0pg;l?RpsKndBw!=UBloZnl*xMDBQr(VrHh9DNwEgg$+6~bta7Sf<~MtBp(157kk z-BNj0L9&FyMjc(w51DiZut(e)z(%rMK;Vp%cEas^(X2K;L@D>;JPq2~ggH#PFTEO8 zfq^NVMJRJCokf#e2Z9w~v3rmX12vDsL$?YSg6{|-rUKu+s{mX^A4sFA3t{$cai^-* z8o~!A#G;`(M+PVPN6~t)+HwGrfP97)Bl`j>J~t1qgBR~BwlWuEShg4+Vp@#--9eEp z-tuHc-XokEYA<99S#dx^Mhp&sF*bb5g`*OuFm4c{!+(YBwe2B$VUIP*11fxEub(at zr%49sn~<nN#t_9>U`B|o(9|;O#=gyu?kAL7=&!B(ZB~ApAcb_)*Al$qikhg!tLBsO zF)WZ{Vvd(c-;0oMr!@&Xr$xK}Sc>hjsV^a1ApS4h{Y>%Hm#peXd}*$}lM7C-V$=n* znMJ-FCu8d-60@qG@Lm6BAmG*N+Zk!u{m0^|kNEC+9ODIl0`Iuvt7cF1uJi3&=k@J8 zZTGXqQ;)YLkDs<?rEljYrvdfveyVi$v;L{a5iarV4Ed%W7aT0_9!!Dawc(*p7lf-{ z^j*JE<S`#y3P^CkchAA0={Hjr?h~~<9L7gHtAEye1xKFifnw2SmM5_kMW2NMS9$g$ zC`TK<4={KPk)r<Dc4}E7Vbfd@h|pxPjl~4QdT1smBAh^!XAi>#vG}6Zux;dB*~Dfs zo)J;`ucG<xIq-lVxr+88<PxtL*I9{s@I9MgW+Ao>3#@Hn?-+%E84un;84>2E7T=DI z8H}6oIuX`d+L9ZlPl+$8-hEv*jL-3vuDJpOxdetf@(5JWp3G-{dO&0r#E0sGz6Y8L zfi@HbM;oVuF$`rNsvJ7phIoGd&p-YHok9$U@eQ_j!92#l#P6Hn``FlTjEfyy!4z`M z5~c8^UxiYwmOhAgjrAk47N6!6RM~3~=jrKd@92uhdOfqdy5p^}HqYXCb60C~Z)-zW zOLuEW*Gf-Ae^0D8o_h=}UKnnUcXU<ekTtR1zK-rLPb}6SYw@&ncK5~FIyz&X#_q0o zeMfJsCEne;&QsUk+`Bm53yyuB)<ln|ClU87i*>AQ$E~9^-tJl06Ypqg?p)k)b<A_t z`y-3b3AT1$6(bWo^0ov&GvMjz?u+-e^mg>b&uLlR+|!2wG$;B!i()Gioz1<Tx!s+u zp1GaPEvr1@R|z}|y1^B)Bsx16G_OXWd38tUIuQ(^|LAB5cCCc09es@*{jt_aN4%xo zb7@y=thckHD;DYQ>xi>xIb=zDN6V_NSYMx~aj}r+(yorrBx0d@PiL$vwA2%B?pm2> zUKyL$+s!gI_w}vq?xjSD*kTkeCPVEVZE+E5Ok91n2rO*|MW1J3ygk-SV(=G&nqeby zalF-9hN@~^y3Etm(bX7hjwgC!0Ai~bcQyA|xzJKpUvn4hr?Ht8fm-Qpi3v4Pr$P~t zW|)8|O-{|IsqR%VSuq6X&h75^ET~`Vsl#7=tgmBb*HTfjqL!PQQL+7=oJA~7T-Dp> ziS%}?X^ykVv94B`Mk}<>1e=<B<YTbEqmN?rDZ@}X%uRH3w$glpy}ixrObcj(Wao6T zT32?i>uEoywWB5O>2IsL@SIlU9qW~GWLZ{ert9cx>-MaQ^>)#|S0_5-9p|iW?n5i+ zV-xwm*Z+?+;N_Y)E-?g>LG?dI6XIfb@zz&A`fpy#<;@e($<_1!+c%1*ikcIpI2YnU zwTYLLp0xiCJ-f?)hraaRq%Zpy=*^ld{}<>@9aMncd^W>~;+liU<j>z$GN0dyo-fS& zGkV6E@pzo@?BtJW+Jt!06VsP6PyHz3O#Y-b>CHGMa`Ha_%&gzHqCfaA(3|=9{0sDE zp8ZNj+{9(Z5pc@S5vG~n$>`1Uaoj~3?i~|<EBbOpgJm8MzG3l}^jwY9{F&yh_|wmj zhO}HOdn@_@MWgNJt>~}+H|Y;4dd*kg0gH>eHubp~&!nMVQ!0#G?sC%Kju=g!R^c2m z0;D%>d<4&CekYSh>jI>nP53jPo%D?3`j@`Ad}i`D(~^eICXej^Od2zMGWxIn3-o4r znb|*+hrXW&Da`Ai(UaDcpT{+*V||%%#GLdz&hgLanYWq$E-)lL`;B7=JM}|a+Pd5I zf12J|-nWwH-=+UQE&u=5_&fFER<HjT{}(kdudeQ+W##p;t2&yy%I3`ekJ;y)GiRm@ zki!hc#(VW5kGJ3NefRV!#ltWPwzo4?T(7!wELNey@8&&N;!hTQvV=BI`Y<tEy8V_T zyn+BOvHjAJoU&-s<Smniik6hrZY{i_prC15Nio04EYfcglrqd9d2VL_m-cDIxKz$d z+X}G*0?Fr1>~{)VsP4p$sPL%<R-_t%_T!`zn;yIybX@W0b&kA=xLSo>L2N-uS+a0b zLBWEO;s72mS8=!SK0i5m)1;=M!mS12lE{{#g4<E@i%$_cPAR&1<RNrAucYGI5`Pey ztp)UT75{$T=a%@l7BrTW4i(NVDce$1UsAqlQhiB9a`L>ABkwHudr1Y5U`g5Bl2TC4 z6?IdEWMhg4Uw|Qxp@N2z(k+Fc+(aJ9Ng*UpOcQB?IxT93br?{J{u%G{lT$WL4zms~ zDT&-ru(hzDS=S+HBZ~I3%tz2RmmDeFTF3;b?=OKiB=+zSy<XAYuVlKRV17yIR+ek1 zXl_aQmPx^qicOP)B~{5O^GXgE6@Jb;t)vQAu%sL`xe^A+&%&Sno!rUfi!%Nbe)CI4 zCKWWElwJKPEJvv_xc9L0X}F<a5sSTL(j_H5Lq%H)3qJ}`iW`yf<%q6Vw7)@E<~z@= z9Q7r&pE_x-!BYxuE~%<}Q{gDf*A@Riva=RCZIW$h;0#tkVJU@aI7R5-prRG_DC!w{ zQuPeIC21?ypqlGS%5v3QcM2@P1dt8&$#2Q?`Y!Vo`h?A#ynd{b0dK*JCoNgsDP>6B zu6Sh-Mj0k;DZHelcBo)eQNco?NtSbqqUlh!GgQ=4GUBD$g|AqxRPHGQ?Jh-o3mfwM zWYMO=NJ+((f`auRnvZ&+{J&E)cjoK?x-jL3E^_wO<7y6qS2=ZnOZ>LC&_$kCL(W#~ zX{+@mJG=!;PpXT0p^LcUCH%wuO@&+N5|Tv)^C3H(A^p!bMWe?y)X$v?JB#HKc5r3M zKmkob=w}&{i?*;F(T5bRID86uw-&%AhYB0$Ghhds*tU|BDe5Pu38OQ828{8}H={In zPXK>&l%vG1h{v<CBr;Sa8;6i$2vXFaBKnof72R2+t1t1dfHz{<;tJnG92fhU%?hg_ zAbeoA&_*57F#Zk|FYH>>cNj$}fF~>#e)xcjpP5U)Quscm{gaAo$i>YoDZ57cSK3LD z8UX(z=ZErj>+nPMC6U6-Zf=Nm6j8j|mCbD_s4pqqL_eD>D!ihgq!eYNS7yHJ740`D zm&2w+zIppZz6EHuRX`lxZ{8`QJseQHc99p_*Cx2<+AW1c1#C4iD)!CKE1FrHT#5W5 z6WhZCe>=JG$&(jU_;1=lO)>t%)g$c@{o7^i+Stbxd==TU9g?n9(S4T0%Qj6)PA1XC zC6TQKD?x@5c*JjMZ&7r&k>3(&Q#TYWDcSC&g%^Aiv~x)-uGxL-R>zyK^33jw_sV;_ z4)w-5n`g&k{c+Fi*5-J#XZBTCcc0zc%?FZK&aT8Gi6rKk-O{~!bqpH@+{}p0p10uA zbNb@k3y@T?_Gnu#SBu}`Dty!IM9=qVSn|?isdwP90Q3V27vm{}*;a^eSGZD%=X{0l zP`DURAzZKU9+d^#7q6xG6Z{pfx&;plL7ZbeUNlo)ar}vV6|VD5Dtw2+^;qgwg=+?S zJawnS{fe<_dLFiQ@-I`k9#`R*sK9F#uE$n@G3J}Z+l1?RJdsb2q8I)E*c%Gx9xX31 z=E9w0CP7b|!ZlCcJQWHbQMedeF<#+ERMuj=1bmsoD^wd2V<F(|tH@tZLdCcT__Ycj zRt77^IKaQC@Q6~F7^?vPZ-uYmkA343;||<M6h82F0ei$41HpruUJc;I*Z}yGn*X~b zz1GhWh3`<f=+i;+H{f2ZU~E@<JE$ujafK6BHYC3(pksMgl*#9eym@9Q{D{IuAC9=Q zHT?%9q3Ev>tW~(4P>4Pncv#^()Q{4O{ucO^8n2do^w_#j;r@#xuKUZ4z*(*VrT-oo z?cuMVQ2sJSFZxo%{inhspOA#2-$amd3Hzy)xaji`+^zAT#Ltp9&(9UUUEzBa{s&Dz zR|2A+V-O9K{C6l^*BAHwiTmp$z3A5ve2>Cw72Y7DJs(l{u);-OhPY2?ToH<X33yoH zq9eldHx!>wDtw0}0nwiz*s1WIki<nFg5WxZZ@*OHqAx&@Uy>B^e@f!Q_anGX(<@x~ zdf;~eXMG(}^`*`5K81?~LC|Uc_L#!U*q7ldmp9L!6wcop;-&e#rtlRGdeRiK5>9dz zPFShR6BOpS<}ro}#ft7kOyb%q^KpLo9bJ|@>hZkS1^<W(UhRT6y5JEPJm!L5?SgN0 z!EblLce~&RT<}L-@F!gGaTnY>>EwDYcEM-3;Agqu=eppHE_lQRkGkN!F8I|hxb1>} z#RdO?3%=V0f7Atk(glCU1^>GXJ_7@WleLR77yLXIoS!B>8J~H;PlKNsLBGfApuBmO zxzKmH;GQLw(Rs0Ww27wxqD|ry0M2dn_Qj%C@!UZR&K;=d9(A6fH`d%5y{e<Dxp!Su zj7!Oa=MNTlcE_Xj-CZ#<trsT{qM@#ixbY}r<CW2s$g-y|D$Xw85kVq6&kz-d6C4=E zz`e~L3AQ(bnAwTceG1Jb*HU6AjAF#1JmwJXY3{(;h9#z)TCj*HtB^k$>}nOt;9-j> zj)3rZ1QHn}e5?cKL_7v%^+$uPYnr=ozJ{z(0QD$@YVPdpZo&DF=v6%bp>()bocM{Z zk!MGgo*5r)6^BZqINu|V+~8o3tOPR>2YwVB)2EY=@nTkAQ&b!?p&;RI)Q>0-bwkBa z&CqLWtY0M;2SpIMDz=X2bNW1@PJ7y}ipHB)PRO|#XHueZaVQ1!W<9OpksU?bCl0(w ziD@yIoQQ)?Od^UQYIe0eCPPJqc;>3D8JYu0U#xcx4k^hBl7(3ct6P#QnmjzCmAs@E zQ<~_->i7!Mvxs?%@Q}ZbB@Y~^5|uNrv-_&%&c0}4qN}BEc1K@t^X&6PCL~xC!!f2l zVX7j5He>OiZH1uJvrImR$#JeICaqqHA{E`z9)pzBTqW$f7iA~$!k$={NRdmad9xN# z>S(^Ki`dSZVo+s^Fes%av)yP&mR{GYMp0Y3F=<F2`hln#66b%S`utDh66p@QTN5~~ zg{MW`iLO>04)e6dqpM@9qp%bjwtkckpo0S;6+#OWaULFvqMo|?SoAl6ojeu=N_oKP z<b<rnI-a^hzJ2Sua4@Wo^@LMR;+Py{k&1z-wXE*(;D(msfrNYlZ#3Un^J>&<bL*vx z+q-+?PB7fvwKCiwQuM6T#cAt}#XQldm^DXR+E+!}nmam~vc6-DQi9f7XGdQ=+S%Q` z3J2XlfbxSz^PyBd>$(`BEGt)&i0Yas<KkFsl_6aN+eV|9sOQVk(BBbvVl11H4u{K( zr^Tx}dRVyC-D_e(Dp8}Nt*8=^m|AX<G5ID5ybg!bq6=bcHI49yA>lzN6YB=eoc`!D zebg=NNgg?iwshjqpQyBW;wl(f9BPDFv+^dwJveaKsc?^npD*Xd5vH0tis#!E&RZS+ za9Cbk&#R#>@p=QFjPVmMCtm7;zoKvs*V&coasOiUm%N;KnVL5{`TyF$8<0-RS)c~) zq&M-iUGPu2;8*gH1upVw#GmH>Z38#?5Aq-fE@!^~i@kS`kE%M?$M>EIFhI<X8X+pm zs8JKINu`<q>I_WC9-K%jAXI5Z!H5+#!VH9}Fkv#lb{I@sY;8|3w6(3bbEH-QK_TH5 zuxcaqf|uH8ZJjY*P+JI~<o7<)1*_2yH#*kMsR~&VtNd`&sY0zw2G^y6m+KrA)Z- z%M@;xKks*@nd`#KB&=m!_~{BSS03Hr|4`v}_$t|2z8d$Fo^u*@zQUYXf^nCB^AL%X z-dXQ2_kqtI+Cy)`YKNb4;2a9t_`?o-yaV6W2Y$Yq0CK1Q(mwEs4*Uv7_{AsU1;(AP zOZ&iA_JKdt2foFDM-Y#l-}fE3v-}VCfm>?ch3Twzgmb-`__OQxTDZ}ChZEN@HqJcL z{QMO8wDGUWS8c(my>YgAnnezLINnz=0Wgm!oUd2n&(7Bl2hO=Z8$aX-hjQj-{L!pr zpfKb&Wfkw=^NWY5ml{~@a9(rZOuLPLa9R(&vz?xJdJle;gT7JWcD&?Knw4kBr#oLQ z4%`_|LD7-vgAUwDKhuFb%k4W3+)0lQRE2S;=WPe>q|Z6?$n<3n+)4kHvyV)Fg9CTc zk2$A@-ibf$z@7QZI&dfbx6eItIBOiZGn~ITaA!D=mdbE!evZjkt)#3szChu3D4gZ# z<dYQ++!_8$4tyf~*!=eQ5i&q`I469y2X}^Zg9CSlvsdAE`fd5#eu)gnjjt*{GX7vi zPrQ?0wbOap$R2#M1Fz}>pV|lhtv>L(`oLH8fgkIbXJvc0=U1OnxVt=$Q4^hZIovI? zqy5~4H!8fvh2Nv_?_VY@41Ws#?DE;r2Yy}P$n;-V^Rn)6?s4E#9pNt+Bg3)NFW>NO zlEN7dWv!i_Hyrra9r#8ikV)_4pU?ZihlD@~<EAg|1GoCXpXmeN(+7SWm7ycVJGu}2 z>OSzgKJc}D;QRZ)k7px4LVC{c1Fz}>zrGLr&OY$_`oJIS1K-&P{+B-RFZ#fTQkghH ze#`p6ujm86u@8JvANVi(z&H1S|G5wR2GtRhZ=Ldgfdjt=ZgzWl$$?Y%vGKF1T*5FM zCtmKrr@_spuXf;0z2!Ow&b1Yr{>1Tkfw9{)KjWr3{R;VXw>z^Be2K#CaDFAdYrl5T zJJbJuANYw>E@2oiS;J1}<qrIt4t%8pcgmA{s9eI>=~2;XC9Dh>hJPLY?C|F~@aYcx zNeAvs|0@pMna<N$=r9c5na)A%L}3Qwk9y-kzQA0gaMC;V;aLi|({Iy%mzjhiJw=6` z{<j?XbO%0-oh1zEug9NFKgWSP)Blpf?RZzyGt8R~`Wx_Whx4h6zC}=DJ=H-!!$CiU z3-T~_`0@=pv%;B9C;f5k<Y4S_Yn89s#R|8>`Gdl%T=+{0U(C)7hT+e|pPl}<`@pYe zrv*cLb`duH0}8j}wbL_?jTy#G|5pd@EN3s7Nzps`_S8P`@;>kd4%{gR#D+W-zO%jm zjV~}PPn{MecTOX-!Z7{L^jzt{o&5HQ1HTb|?DE;r2mYZ0uXWJpvk}5DUMGH@!dcEt zXMhAS7dz;0!n+;skWs=}ghN)caf!+>7*24wM10DDm=jmi5&|Rc_e;V;`RK+qg{wz5 z-mbzgcF}K9xKi`G>7P`1xr_c63J<vOaSB(})*a5Cb0uMoi#|{y0mbIs^i8Kre7cLi z?K}z0a^Vl2BY`>>UZd#iUHF4%Ng(dRn^ZcNx$ts@H@Wb775@D$yi<k0%7sr=>3q<I zYYJcO!u=}zbuN6W3cuNf`-&y7!-elSTLNt^94BoGv)hH&E4<x>-><^YxbRYi?{VQ% z72fH><0}24!r?|<=3l2O2OnQxY`jVFNxln@D|&k$xJ}=t!uPxAH5E>=3*W8M$^Ayo zc$*b{xeG5<;Rjr}PvNEuUv;Jox5kCHD}1U8uT%JR7amafEEm3~NQPhM!dEH0-i6mF zJnq89MnD9$%!S9#kl{DE@HU0t@4{;ozRHCcEBrwht|@%A3ty%9zs-SDKY3jyN897T zX|?my>B8-F3jqu|I`hxokK|YK+s5sEGQ}>usS=)GN?o|U&!^ml+xvp-{=p94-WO-O z=<7%TQ{%vImXP?J>cGF{z^6NK1~FaDJKOt+?0D_{PImm=xY7gaUE$dK>*6ll-UqeH zfwNx5sx-B^@OFjUTX+~R>EBa$saINT+?FHLUHILKzR86jRCu!s=aEb_dt7*d!u>hY z-H!Jxg>(N6jg40*Jnq5+3SaHQ!wPSA;S&^|->-N0JQtrP;KFMaUgyGXK3V0$zpd!o zTzEp^*is=3Us?Vu6kh7Wf2i>3F8o&tZ*t*l6yEH@?fsN{T=-^1Z?8A;mFan2;r9M) z8-G>d@c|%$vGKPRzS@O<qVRSX&V7_L`9Ary!@;3>!USA+p2F)~_)vwfa^Ytv+}@vQ zhku^J?SYkzmnyt;VDI#dQ22Bg9#nXp17}#P)x2br17~@1pC-*J2TuCwbcAVk;DjbC z`ZfnndVBxp9tTePo9RX~NIpm_((@Jh?swp%zgC4`>cC0AN|I|e4xIEe6#aAuPI`O4 zZrp*B-j-iY4xIG%KHk+1ob*do_{|QS^n3jHfoXT(r2oF6-{ZhZuc`NZ4qRY}k)G#U z)A$`Y-Qomc;trhjk1P6R4xB2rz2DN#w;g_~qQBooZ|}og<-i&KE=B*K3;&D4SG(}{ z6~4}aGd=cx&SnSB@DC{Z9S)rI_CC)x2TppAlFPdtIO*;EpLV{PU;eG)4^6Io*mzw~ zzWZEw%}Els(`(bOR^b%8=rxu8QWu`D@NyUKS9rjMPd{D8Yv<dJw=N)YJAXDVQG9>p z3di2(T<5~=edhHp+}<x8cj5V}fA_11m~2%90#VB>BKySS0!6z~Pn&*~dY|dSSF86X z7jE}c54iBSirgO8*x@%R{5coBUGMEK+^)yJyKuW6eJVUVe7hcpxp2E4OI>(?9$`W* zyiVcMU3i<qZT;Df*WPzw>%BJKoFl{kz!i?IciH-<O>ckKFiFK@<F@>XyKq}x*y*zA zZFz`OFNLvjyI&AT?ZU;zZGPkaZyFo7^~{%Ccz3%~`LpTm?;2*i@acXLtk&ehZ8`k3 z3%A=>y9>Absq>Wn(;ctskLumH>NkJv!tHUvY8P&|uQy$|-A>Duo@2+`-QL}JQ0BMZ zh1>f1au;4VM$$j(!fieLITvn^J2EcZ9;f(}USy}!{vKhH8?Th{+Ip8wZ_mp;=c2d2 zN7&=S?e7t6{mKr<9%s!`dX$aZ@~X*&uTpYMrs~W8`r(yLP8CmgKmldD{JL&PSn_+n zYA55JtQT<MK1%|H$H^x@A7VTz8{OZjpQUisY$P#$<F0sZ2gT<0tN0F&VSZWvTyAH& zRI}&~*N&gxwKxrFY3wK2f_B!I)2zBdzAaPzkL~8SE$SJ-^GN0A{|`w}mnWYrKh}}E z{J0ju_)GEUG{v{ew^N)T>~^~CC+A>oyOXq1`FCQpyJ>Gxm^=Tb^1sebunNfaD&~@p zl>erOqz8U)LBsr0wY2>g5`;Mxf37MLxK=M8G5P5Jb*G>2?zEG*UitSaeU{ZQ7Ju&e zISe>b{PD$bfLY>dSnl{|;LfDmFZ6etvJn@Te)Zz7Ts)%O?=LGYEp_}}JYt03|J6%M zOW_1FebA!H$T*MQ6QZtNc3Ax|4Rx>cSDJu$1W;~yIL%d@T#u{qet-DAh0(!XO$^Pv z-?Y5E)em>vH1DlC)??g<y8`7|{;8$x&dpRjgI-`u6T;*B_Wt5%WTRo--;sG9IUDtE z@2}fe4ECJSjH?xef84@1qTwl<SR7g$?N@O}!QB3z;rgclB52ryaB+7c&Qx8SQy1-T zc@P@XgB$srcTT027Bj`I0g=lsZuidwxifxT7Z?{w=*OEfOslGpe!9;<Z><t+X5T?o z){Hy1P=51q$7xlewU=o@nB8|kriPR?w~G31IB<w`XPBu8g*d}no!N^k5Z2}dao55S zU=0UYy0H!fV8>?->7AcQ3Ris|3a1*F#Bl1VbqLc;tYcZAOqRtVTB9eYY6`@Ci9z2} zfVHmnp7gByB>+eIaJ{FU-&CBwaS3ZaJlOFc$-U6wK9L00K{GYqZ>Gd8i5W(TgO~k$ zsx#Pm<zge>QJ&Ly{iD403wJ+O`GoH#QR1nG>zM*vLv}6_MYVaO@Z-E=@>t#~IT`00 ze^1n_H73C8AgAHLUmWBtuYz>ee_$^zytO*lw~M&<8Oh^Ose!$%9wRwS+Hedv6-n#G zvgVeockkvL+_i;UQ$!zaCR%g$ZuUe6*76;1p2RykIClVVJBXK~vXafq#`&V>B{Dj0 zG)mv4dBSOdcjq@1X~OyJks-M_xZGn_9Eg2LubeWY*MZTJBX|uVF8Hgbzv5p0Mk;@U zju@rzx4dZw@=C9xZLjY$%2CSe;Aq)lQTFf$ZkcFezUY5yxBqY|-i$Ibt#Ng*?qG3^ ztA~x6vo-E6*mlEKYb}W*YP_|}x5ap4)ET@Yw@b(Z(F+cXUAE`tP3uIw%ZDrjnH}|e z^q*D!lSlXO7qKoM@(Z{BW=P{@OO^l*&xlhSH?1Wsq#$yDH=IMf1$U|H5K@o-S@1^V zyF6gNyUySD0L?KPck`5G!5E46ag%pzPIf!#ocw0r$v4@wp64~7xc+k|ZXj(%)_7gT z8<n^?4nI4e%E7xh07S}7Pz^+gxUXv8+>y8>ctFtF8Z3D(_{YwW^>#4Pj!PRl^P*qF z@4)%Dgd6t%{<-IJ7oHx5(16cBD4%n-qb(%1`W$zaRYJ7%s|L+k6Vka>7&rdmX?8T( z{JDV%>uBh1??_s<4!i7aciiEJI0wmV-eAi$8b`wmY=e!)*HGZRf<xaG*4xl*jmGtG ztJdF~kUq~FPJG^P(d|fT*CI^!+{?+rh?R|$yp8(^7LE@mzUa3OJp{3^apg9%q$N_) z9x)!v-3Cxo-WHx7v38i^as-xgxMlz4=DzoFEwYY_;ysa)XT#Quq_C>xE!7p{QzQOL z{}Jn1;=GA|-y!o-k%SdKB(8_x58=dz@)p*Jbt^bxv$^l}<Qq7sf3vFyMJ?Iofs#B% zmi8fI2`{3Sb+s*6^1P_4tg5Sl#?lwy%Hp4m;*Z@F#>GnT+}6<&+{iLVxdopg6Li;q zPq-JuCs?4;`Z!qf2XerEFaT=aSjx;zNaw__#GMi0hRzJQcj4A-f6@<+!wtu0f9^Bx zy&5&Bn8dg@j2Bt?TSet(%K_k;XXL-15Z26p_8`Kj*0)4(?P5#k<tUCw+3UCynGAKH zpK<T6!06Q_TdQ$(^|JeAJcFXh*}KMyNAcQItj=<`c%QD#05cE*VihrF(}-;&)hHm< zC4UuQI6WDc%}my^b#UaB#`|{Tw$+GH*_{26@OwBX1fLk#!wA{=B40?rYpnZyud({U zjOM=4&m$%rT;GzdWWnrvv#j|_aGKzhZU)_gZ3lv9+Vis?AwFD{l;xFqWV{~vD6V%E z?K*WiZmfvjU?%P?g|xoCoL3yqwXdM%HNWzrfxWooTHWxA`#IK^BOykTqDXc^%cU(R z_RU@$Q0x+PJF(Nz+r+>YY|%=;Lf6yly+=r)V|uxxy?4L0spHRzFM5fsj_-B1_w8PU z*Q!5$Np?1hrnX6hmw4X;&?7Eo7uk2@-?aXr?oCFIOWlFpG;e{%Jpj03S*SW@>o^}! z&AgPq(NXGok?74uUCVymY85XgE;Ja*i{|k(m^*O?-bdGdqpKZvZg0hX&&a;YM{sg* z60VCD{>7!Ii1#t6JZxf0>;Q3TPV|;kWdVYmi7QV>+U>XD{iSGqqweeMhwoc(gGZ7h zC>&r9@wGRaYu~B>U!@S072hbBcNS=<U0JUiYYS>>8xAbd=dU-`9td_#MjdbOXqD}^ z><y;W+AT$IkN#$?8JajSEQ&^SN_1kwfxSrL!gHZC9ykD-nV#TT6ywbR7a41+^oIBM z0c?54mkxPmoA(Pnx8eO131@6p^>3!9K=a161#>4;5k?SG`ib{Bdl-bVW{L*~_7~#1 zuzYi18(wqd!wbX*t6h$abmQuSB_z>X+I=N$iHwL7uL#Hk>Va*hu}P}aJ@t<|kC&es z^~)wOA63<wDFo+;YQqKN-QlO^`*4K}?)YiVW^iGZUH%UJFFhrIPzue89~6r&8A{}1 z<*=>$IdVLAh)bzc^>3yZ`7><jj2Lt%fICqS$z`x+uIr8Cf{kPo@v7c9ZVO3LhGi~v z;zEbClB?i=0(B~r&h{_$-Or%!`eZpU|Bw=<@mS8E;8nYp*R1!{ziGW*wi9W+Hv0~) zDXVSjm493z{z384@(%?WciW?Ei|umVUO62XEiUroo{!@A<)<2rw}729--o=Cy&R%i zc*}YwMBZ^UYNWAzI!M@MCN}#L`v=83f}-QCp3!Vt2Y6*>YQ#2raP^iR`pV|u_6jr) zAwW$lQY7!k={TXgK5^@WPx@|$QjQB!Osg_r?t9Bj92#ii-WlIK+yz=0;4A^2H6%sx zwpN<LQ)}f^<x;2K>(z4>qDRA=R@AEuM0IE8v%p1M={r%$l{J|g9SEwo(#%YBAORp# zGeHMp0;$VfNW`kF=k;BXBRR4dtjbws&Dp!*hW5paY-OIar-ECWc+;4#Y*(fLH?n1O zfhfKVrGp2v55bR1UaIzjq7iK+`vGpD6#6bz!=5&h*~(kQAVGMC3Pyb0<Huh7QvTm* zFK8!L@?8{aMqE3JlCzR*L7A_!6)5iC1Hj4sz4^8DOUA#C<t*E28)JNr?<&R}t{7eA zCvUWl1{w}60Yl95H+)3-UDiBmt&rg7n5m^wg6Hf(6A6H0mWoj<BzP`{vc=ZEu6E*O z&2rvAU6h^rndmccl~6T0wAAl7(I6%nRD2a2grd?CO=3XW9K8vAf({CoY684pfv206 zhx+|MU>e2+7A7=MiMVneX=y~pa2?j~I@!VS8a7@^W91fQN<?|*7U5zx5fE>|>3GtX zZ%)cCQBHzVq=S^%x$y4bkJKjS1oI%c91|8}?TET;EBvYOc<o##nJB|S_Z|wINa{EA zf`%*RA$ei>_2JZyi<Ti*NWb+D-mo;qOdU^U4EG2j)sw-i6Z7#zkxVSa6OEF07vVD0 z6z(sw&=sa8q9sl)Wwn9`x4-aCC0lf{{5#&2^|NUmiiOub<!&s8jVy@r*@7mR3uSpz zkQc6^$k-KkL9Fqe2WsFQlTI1lAxvnP4UP3>I4mRP@5b^oTNPFW4EHS+GPu>iVE2b{ zr6l)sz+Q~uWn)n>UY7ArrpBUjSZl4ZU!gr9?IXgLEF2~=`!34X)jnm>Zs01dEN=E{ zvR=%@CbFXzJzv!iD$05}Xgyc@25TyF3X=q0%?nw$aDBV2G|IcrQRu^pSd95(DzH=t z^}A*O?!3dDH&s4NHm%7iReHf_Z#0MVU)G*;s|rR{70#K5c_v>dH6<T68yRbYdRTu} z^ywjE?e0*;TXS|{;1cxWC!B+ekZ{vd&=Z6nP&u%r(pbAQRPn;xGdnKf9cxepH<ND6 zA!E(>F4BYswtxf*#OXn6XSib5{MQk);y36H!?uL1ot4&WBE6xKogr&N!Lq7h)`UXL z7gA@ggI+P9Y*#I=gIfq*nNo=N9mb|f<3Go67U`?<)M9+8FD$7xHnl~N4Rgk);q>?} zv*m9&X3N_-5&eaTz7r1lk<^Kiic_QK)Fzu3o@A_@;4wCRlK4ok_%wP6!%bv$%wvo> z<d{#3q`r<D%f9K0JvTOf*RfrCY-<qn5xB{;%G2=_<UL-5uK~5z1P{`S{$5OAs)?xk z#ROGq>1r~qb6RRB8_jWSG>{R4t~D`9^^TM~m?d@ai(`J^3(gOq@ywrUrY@JwAa%Ev zxrgE**$f5NXj~(rspMc0T11M?Eas1-Rtw>ks;sF_{kmQ-a){kzIdoEAF!fXJ6G^@i zySn4sDDTwWXr~wx{Y~^_?85U^T(H5l7*1iU6*K~lh_2Au%r3F8Y-hweG(L4#vyY=y z1dcqOmFUoe*6u4(joYUp9y4Xm3RgTA`$2>eA%z{=<UBBR7V7Q6X~Ay<zZtyF=8xbc zXdDp2saZA1HKeR5MR9ag<~x*j%=p&m1xT2NyRK5-6M5McJ;j!%>1(>I*Kvi_%f4V2 zZYfN@VZ9#fU^J>7^e$iPGZb+-BHCM(?}?)H#N@WPYp$z_^M|}D@l#RAcWc3?Q1Tc8 zR!_x+%RTjRKsM3;_v@p)SA9@_0`q;G`4;n+*jnzWD+j-_>u3{q_+g%w(yhJc`aWJ} z+=)B<IA4e|Mu##CMX6<WU?h!-G|9oAi^BD?$cJt8`A8^ciE#@tnOGEa2qJD6Zxr)Y zqA$8MWVM^<jyPLm;!3`JJb4*>p?E%8<QLB;idcQTqK~^0%!aK@1lnsj{S12#UW@6^ zbY+o{l$V#g;yySaD)O$$sCZ1UA<AK~reG>9xNK)^P{%CHIE1WEqSHg^JD{?_OQp5% ziqz9zkk>PhiSUq4;W9owsS_d^!HXP;KpA3m1A@+83|@jf5qS%)mz*_mYIeAQ1IQVJ zvBuVPyhDwrTi?UH;ma6blWz-+HA776Z!@8oo>|OdWC@iuiy|xAiN5l5NM$c(n4%~0 zs?I+cYjQ{MDohg>*_i|P2P^h0%8IPdG%qR;Ay9>}cEkoK9YuuX(zjGqi%S3Ei1nTL zU@C;TUD-zCAQZgyS!#a1(4Q*aniqp)E)H9-L{gVy=F4c@kF;C6t5ZcSP&Hx;%l2YU zF^v8TGKIIsL1;juXpNM#Vs_kEdLO8(E82}ET<i=q;zHQ(GVi$iE@Ewol>EiCP6Tfm zjTa%>@#&Bs7Yz1CSz;*9J0hWYl(NSxkH8j)fX7W<B#nXA)~OId0S%*irX>eyX^tIN z@z(s0#B5yl7F91y7*iF-J*!K&u*2jDlCaerE@@-Zmfi^Bu$<};QOnug>;k}|5VE(! zCg%mv9~Pi1!nKi5Juq}I9>Y{~)Z-OpFYdD&W+Ve3kECw};oU+r8pa!lKSjHQER=bJ zPhPM(6ole#@3lfR?4cH6BX60fZE4kv6$C_=JQrR@eItL)i`nC0Lw`^SU8pOZj^@Z) z`0O-1jSwT&r|PbGWLy)&8Cg10sq{#>4tcPfOE%CZAqwm}jiEK#myDKU#w%#O97)xd z2cM#bXCz<6ubl4Ul$)4KPksg)^aQc!65QM3UUdQFTy_a2-j?ewkXWX5t|&b=!dx^V zG$T3Hh79LIeb@ty95R0{dbaljA&M}!dk(I*eo8ihLL9~A>kxrrJ+l@fAi7%xt^$U# zn%ot8Bwf=LKj57=k*c!~>F@X<#)Eh2m_rNx_7ai7#^ESr@>%!1TriPUs|R^3e>o2a zP_7>wK*5S~4W{Sm%f=QMYfx_!eIaWuwC#`08GA9Wum{3(h}SHEb~sU9xhv`{SF(ed z8ijes0-;c6Hez%cLT+-A2iy!!CShBNAZFZS-BsE6p=r(aN6$3V)YfI@AXRdC!7BW` zVI;T04@SQ))2oA^<4;Pzn;hhf`!=yYEY#epS%`vNE2`lgszf2{g)Zo)1sLBPZ_c3P z<uD>4Mn%*|F2j^a#A*SV+0e=(3^U7+YDEC|%gq_vjZG6yGB!=QL4Vequ?x3tvQbuS zo<FEZ&n(-OMFnV0oVDwCwnu()t=1_|9YY`4fAP|7a7UG&Bl$v3C$Z@A%RY>xrk7{F zz}?`obYthShXeuYo?{OPR>@3)>9!%>B24|(Kt9~*$K~6HU81e{i2@j^8E&YAjFW5& zb}ZZ;LdH8bqCCLFQX%WuAjU^MLp3%j4&G4AxPf;QvnvB&*SaNoirL2~Ax=t;>fRD} z2~*>Ksb}VuwYAMmAvqs$ctMHjlVc1hfvKwktcb36y61;g`5i<-K}ur;=}6Pxg>XQJ zl^F+ip*)RmXkg^HfVMbxN^K(OfpqT`2LhMl7^wVrc)~58<6`VDkd{wP?;WtdlVf_n z23d)L^|yT3AJDOZ@wYSL4Az-Y9Ee}89T&$p#YJ4!!RSeHG67k^h+rm%p7yL+Q+$(5 zk@b(T_0smG^rA;nx8q7(*{v)pG&WUD2d@>9%W}zX7=)17CWnnpmAs^T;gF!Qw%QX$ zM_>;q090z|C2-Ykr554P?IRBHnE;WL-l@n^TC4U`wwFs}vLY$b$DnC;+}Fdu82MCc zddDNSzDs>JY#rjXx0<@(HQBdgF%8PB7)etruoYX>t+%VD5W@m0SE8o~fi#?!HyKy6 zvdccK#;ee0E_@GN3|<0kg{O;`yP!4|Dp)km!FUNm%@QgS);m-_!l~gL@tkF*H*l{~ z=H0)c4X1ur4tqq&4YM`DSDM5&J)CIu1xGz9!kN<&PCX%#VAF<M8^t?`!>ODix_82J z5cm#)Fr?x15e@O((u#tZT8`2eZG-;yz#ra8&LC(=t|5~&k`B4fhe}5x($kQrUD=6e zls)4^-Wae658Vk)JY6)MBYRTPfreLfM~?}opAb&n3F5>G{4xAl^a2yyj{MS2aGC<U zJ#gy`JTPebrRjF#=2zuLvR-bS2~%$N9@%bxz8*J{IsD;{WpWd)9cP53>v3#dLPr`Y zpdG`xMg?=OLv{k#+HxFq94M_~LC8WMkjn463JMjPz0x02{jpu8oGFLiOb&~^ZCbC0 zWOlp?d5HGjCI=Q$$=J<S-@a}YJoJn_Fz8qYAigP|tMQT4A|Hp0(~73D2~KD0n?)H= z$DSScdOuwh2N?zl^d#j^*!nD-TFdFqNa`jiinp7U*0YtEfk`Z!r5TMew3?9B){+_C z*c=@!V(<7V<#Wi|BfwZkSbr(3KOf()7-7K2ukp)^w>QEkEDao<n5kkaW`!Zl{pClH zGZc;NbRoi_t>A`kIw0Xt)JC(DP9;~tJ0%LP;I?YYBi8#NtCTObt$`emr#0Y%yVfeV z)Q7B^QsDR=#;O?&&2DOI19QX_v^F&1x9-;4XP8z)CjqhKArp6}Oi?&3R?bAiL<NLX zn?#AEaqTp_$3Tb*;YXPPSing(_arv<4R&iLyR`sX+V%viLGQ_Bh9|;H6lH*W&Do0v zROkp0BC9a78Ja4)!k%C$54rRW4X6gIiGk{pHzT~uTHW3r5y?{5Sx2lHr6P%(S1rYE zpdDZ(A%<}scEq{`UHsUo-7!uo@`o&}MTLsWGb6DM134LB7C<S&FGT@y&l1&DgfdY$ zmcoK`;C69Xz*z{yv_w4FCTiJ7D1yu}sP%uA@tqhRGvmx|6#~l6LCxFp9!$v=ms*Iy zz#2*>tV<e=evkzlIyoK*ZUlAL{9vWkob0MH*2-oWEyHqkZD>?~Gd<1|JE3EN9UjIq z9^ipPQS2but_Ld)#XgWh1hFuW@C0ugOE)4>mDWxfBsVaEr5^^yFr%kI`@!zIj$_b1 zVFNbqP&5zyUqxr^qwHHC!}O4~Ir}UFDcjreKu>=boD#P7Mbb-4!4Z-4y{iy#b$Zy) z;MJl>Gc8Plp`9l_s7DueKO7^eAFz?KYNvAfsK&%3!&J^)VO)26X(}EOatu}1y42oh zzJ2L#R6gz%zn2@iBGyt9ukaBv!7;OBrw@3ONQ3pWauAtiI~YX`&;b3U=9d$)S~v;Y zvVV}-a;U&8`@}43S=TsM(;D99mPPCh!LU)V(X8l+;nc{8m0QHtlOKeTV>3ou&Mm60 z__LAVHy37NTVb`er`mdx3QT#m^-;%+aJtG9uGnfUIU92&n0&6%@iWEqR6gj@MS3y4 zI&ibGX&2iTcy0-E1kEv0@&~h_YZ181xHpS6(m%dKO~t~*a5H3zpsKF;+*ooqf<b^o z!|B`gIM$t;;s=J$8x=pW*ASbp;s-Fo{tjp&6@N7n51g!$AQzqyJ(qn&Qqq$=v$OSJ zv<SF-YIW*irX!qQyo!D?Fu`EGrOS)JtwZyQ!q&%#eEw3(N3j4>@0d&Ko)_NLRrE4^ zYjQ;!endoKREl|$_yMRjXCr4KWrL8ibq7H#XiC~xM${lYVx>A=voiZ8<V0`-KjfAD zN(k%oYZf#7#^wdzPVQZJbuhl3Y@tOX!NkGB`QySfe$NeNn)%1}hdf%RZZ!H3UE)0* z`f*7(g=v${{IGX%8~niQYxEkn7E`Pk$+J)rm{&$RgWDI2P|+HO1~(iJB4^C?OR!O= zV!N??9=dIF#*U!14-?kjU`cBj`-2h(M;c4G4R0NLt?VB~7TDIZmm&P%1}?{BFA~<T z&{{046!_Uwg!LF&j}uldHe?3~E0vGz=OVBnw0<J2s4p%1H(_P2vu_A%A+2q~I+WIJ z!g>O&>xK1nS|1ZuY984Kgq2@FWq$~(sGZp-vWOPxXM)Q-#?mh+oXE*tMcY891vgwo z@^1;B+)JOmPFTN6>m*?n`40;#)s5_B!pb7gUL>p#e8|7BqLPq*Sj9M5F;N8jlem=f zXECeIc9_}q8Rfc>{5Fz9ZKix9gU&qi31Km<&BkdYuYvn|I*IVAy)muYTj}c_xr{B2 zUXH;@ohQP&>%!RN6VqFVvB}#Qo0w>96%h=S;E*_g-AW65(Lsp=IZv^)WBs0DNiWN* zO$0pP)@}LN@)i53XhGfMscP#UHl-}*NW=TSfi}Ml<DCqeL!@Mfc_~|XwIy1cvEm%i zKy|8Lw-~|pYEl8T#i|@3NB)d@6wQNGAms=)Ahf(wIB+wO9QnX*yw-j~wj}N<3VGHc zK+Op4$lfQGqeGhZ5I;FEl6NDt#Cx6xF}d(p#GXAy6y}}iCo#$p#XJhi@b*NU0Z7^4 zjdgaHuHaLQh#mBUUG#z$rM?HH4v)D-*(|F$(bdmb5ir=CI@dq)@WbZ>Te^ntd*4;b zp^^ik^ysTl`<cI>UMqD`<6{1RH6F4Ky?7{-{n%CGvye%V*6<9}T)Q`1vaNcQEaSv% z!B_$Cz~Ovw9{9inAM8bM06usY^{>XLHQ<A<MA%i(VUBOR?h%!aQ1X$lLMJzUsZjg~ zrTEK+f&ngsw#|j5)fF<YOSw-cdna3KqDwQD?}9jKG8z{GIJ`N9*sWz2?vZWkEKG}t zHiZ(-SReH&U(Oxn8%ZxnBtwi69Bw3zMZlG1i0oiL>hS)cv9dJ+b=a)7o~yLJ0Lz=! zpD?N0F{0W#0<%S!6+(;tIAe+WGm^jEZ&zDlt1p=NhhAOr3$`6&NdjD2nfx%;8ukt= z>ezO8>NDF^7`Gw}q*<iB<)h&toeZ+$!(JJH76vMmiEgae2pJ3xq;5Ag(S8UYI*?zi zU0|7r%`z2e7(MOz2z*oaZ}1H!NE~&QACYy180Y^g+s1jZUX5wvJG~oUcf(_2%B~`x zA1)Z567^*yuZI@z5RBjbz*P!CxU(4`h_H8ZFNsJVK8i#%tyiU}T!2ZNo|b@64r>Yj zb|`*#EBIGK(Crp^SUdVxL+H*)sY*jQ6)VTMqBzR(sP|N3bfkY8#^8(tG}GE|dh5G8 ziim|T6~5-%KA=04fIBDus%&wzXS@5bu>I%=RsDjfQzJPK&W@`7&HJvZz8dbV>Mxt3 z?mVGSXbF3(^W6bCiWpOS>^?cQN3l5)D^-$NzU^d|qcO@+L+GyNUW`)G!?61iIlJ-0 zLmBT(z+qhSuhvd?S=d}c4lx={bS&ASvTGY)thf<sTrlz8Az5i53~Df#{BtnzasS|p zs7bqbJ*I;-Wh9^cyQ;uodcHR^6zh(?beQkcc}56f$nLB%*|l&s<Q%38l)fGDekI}^ zb66u5Oe;9{FmA0zvj-bT1k=h=#Z+iM)ZW<R!E{v@WFba;h%hItZ~I@~T^fxXWM}Wk z&*7~^c5S~DWojg^fZ7Pz?=@CzhEj+s`a(3E9#sL|K})A6JtB~4!c?fE8dS%Zf;S9* z69)$xEAc=`_kIB7D4T;eR@>C8l}(hAV@@yKa*h%i;~lys6-yyW$9Qyv;DdPYX<}b8 zl*&TU#Wik5x8L1d|IM(#7Dy3vR)1oTE=%ncY+M8z=a6d+C>TiUmku6H>3=Z8F_~dI zRsL*$4wpn#zl!k%zN(PCk$C$HdmsVr1goPMOe95BW9kZP32d8U<lu+OY0hX-Z4RuW z8_7RHVMqtPN$k#n0@~e>4Rc4!elSfqbM0SyF^!RY9Xgd#l#~vd0SnsmHNE&n^)&ys zB<jsCUpAD(MDo9y4o81QR_WG1{nS4Xekv*fBJnDW?7%smr>O3u2GG!`^ougwmt{3T z-A|9WO5bbk38k<0v>Y0~FUv_rf6#grRTnJT2aPfFx+q{Hxfm*+sD!cU=ps+%FMn~B z`wevOEi;Wq&euW2c3D_tjRd?HiOCISS-U<W-qMIS&?86DV9t*io329V|5>=@AjIXX z5${!K!tbGf`!>46;nmg_>2RGdxZNXJI)W|`!Ss~qmk!2{V0yZ$e>WKH0dFo9jm)gr zVI+s6Lb%494$Z^&0euN}qwy|GnP#uRk8C|ZM4=tE^;EsfvUjzfcc68<TTc?RA4hFH zr$FI#h+HH2V}#PX^*oIB)HC1MOZ<FU&i@~2KVN<nc+~c@0c;#jRqo+*m6^`jCMFIs zpsmOnOMVBpbq(x%=0g#Lwu%+0YHTV02>hAN$3*gq-=n~>zHX)q#8eF@&rN*y7S>-z z0Q0vb_H$ean&^bYN1p2RUE4ZAU7en`&8PH=#36)xIldCJK8>CZap_k$_5pTcy2G@v z*pu-k4s^vnME(1*U>dgW)?zy%-q}SaXF044COWdm$y{L0eKSTK*x8xMPd3+|6iiR) zs%SHor!hf9(GcACYIp|57Vmh&sn7|SkE_(O&tf=(wOAht0l;K}K2Emu1pcI;z~&e% zm97}W9Ahx+7eh}>HdkA%9r@kkw=lQdSX;Vx{G~%)-F&grtk@EJx7z9qV}=R&z)}Z7 zs76i%?`6k{7-C2RkZ$FTb0SP4dkZnI!=as;+!4J9GJYa_a_`ryvRzn{$2Sp|YH<u{ zf3n%s+vt}PY*u%WX2~J3FtdJcF>--LBcrm7bvCQxKTx|zh(3E4N)sjH3zwjDoO4Ur zpP}Ul7v1fWlrD_Gux?>9-M3p5^>wgUr>gzcV$;y8V5WRo@?b15R2a3ExdLq+gVaKl zg4~?KrH$-9Xjf25jTH+}lMw7EQA|7)V=^{m9bg$2<GatqJBP4w4fEKden&C{vjn?K z(BX0v3;D0+*3k*0B!#}kvK3u2qY0)S=Nf>%J!lC_dfb4PPA?QyJrlt`t;7~|^D<te zu}ZMi!J$UuW$+@BU|R2sNqnVzV-mkuMAY5o2UCj~exlh9c3XBd8WuIe4CWGgay5y$ z!pE)57;<%3o}e9`Ao69b+zk8i%v``&xqaZL#+pyjlXYDsv)DU#x`;iy6Jr7)c<;?; zelQ`BS+fg;E(`QB4mX(MVh+*6+yq>Mwqzu+D+$CQa3E8K6|yF<C$~kVmgS->kaI+f zm9sl#wPDlGn9PyX<;;S&D1(jUX>b-DtejZA>P?qu*5Mvb$FQc7!AH(JO|MUk_!7<e zX2qV^9_&2CjG35K#rLIUE%@TswA$pyrf6aEbEUG)_~w)xj^_Hl=^bf$=k)Zw5a*Ym z@15!iV*?w;bk&$L@=gUCzLOKd*s|IhiM1v=B=&o&t#A8+#(gO5&3fgs<HcNn7|vw% z*l*;TWCf+y^1YZ*3S*JRTUpbs6?6Qy4Bbk03Vy<gyEWZBvH46kS2hbas~%xvVr)$k zEt-c}RbA_NQ@#zr!-umRuu$+Unq7W%YEEf&YD~FfnL#ZtNI^CR>!WD4))><sTV>nO zh-`1&;0A#7fluqu10*_!<K&6^!>N^<+rg<q9`;J!Ly{b#0-La;2V-dpAUt7*fhGMZ zseG3TJNqCe^TMgcTt^G1zsq$q6JmMETy*?qx+W7z)pugM)E;;f%dcVUyCkJxuTViS zuAq1E2OLw4TKp~^Mq&iLLz<S_VV1neuY)<IcQ1GMa?J}LVcgRRYL3^f+pxa1xzO5< zac3ko`V-+Eu@<7Oa4#u_b_*d!YW+qd4>PH*c+Y5j5f&kFMS?`)n5tirHBo3PRXq3! zscILg`l)CZM^4pZ;U-hXQ#u`~%8E^(saRpSB9?Eg7$IXo1)_^OTfNwo$7t2klC#cR z$CwBol{O~8>dm%e&|xOtJBXP`2#3~yv8F3~9kg4q2Eb(y#~J`U__JSyE)DtI3HiLI zY%i*~9U?jdl{B3C5f`qyh4in{gvCUoX$gny6i97sD?%tW*?yR(W&G@`!8_So#N-h6 zH>vkiFg)4UX3juceaD-fD`pWXav)V$Nm&C+s7^U*ZHHj-XMYPG3U1(8JlX3ITW|w4 zmFy&8<;gkOu&`pvAL~EDI+E6lg!L?1i-q+}T2B$yB3h3V*0X6HAgrg+`Z?77;08af zp9t%4TK^`jrL?{wtR=Lz2`hS3tbYmX8MLk!)=Ox8Ojs|b^#NhMkk%gx>#4M^5Y}^P zO$h5LwAKqN_rPaw6;`ZbYS|lv^(0!S2<thtMue3ItYw43T2AZ5!g>L%=L+ljwEBhh zJX%i>R;<5i*+H<{>Jv7knm&MHfm3eTEkP}+{xSP5XLg~)b&562I0!Lgkp#ostwjr= z3WdNbsY#S-leVG5#Jc|WMIYgd(Xcft_DVL0kixB%^o4YjAFXZK5qO5J-P~&9H?0n# zBt@(*vcrJ8_g_L~nJqRAi>*9j7f;ywyV&HzO~ZSzn}?~7q%dN#UJY8$hf|Mm6GX!^ z_W3{dcLYgp=%Sj^$SD>m7}4ROQO|H^m$7suka5P^(e>0j8kgWr?$^n19~z{K(6(9= z0cB0>@CNs7!=jfKGAc9NE*XZ7S>z9kg?CGMAyACZ^yr7X(juv*S!jn5oQ8tn)<M<k zGAp)6^TUbtlwVr3e{k<MUvvfo4j}%<%YX(&cZq#N{HUQ2`Q%3pev#h?ii*Ya(V|lE ze4?maJh3AWPwZD>vB>>Op;31i%zYwzKB5%$#jOp~BV7OFu7h;yencO#Fg(T=y*Wj} zuJ5)1;71PI#l8e1Ig38mgo>^=Hb#nWFg8vqnqh3btLR2!W3;HYwl(oA=&_jIn%E&M ztqH0NbE7xkfPrCu?6NMU=jrOD+%z_F9)u17*f%S?NurtRr3MaMZzIuE*s)qB?9)kf z6JLUfzhYu`>@1`48D!Mj(2OXp-)+Tj_BqU)iu#iuXH?=tf@C`@Kb5SZAWq%443F)h zqAMYk8;h7&I8CJ!w1)sO774KF0&6T<C0}Q$*9YZmT)bjmkeS9#Kwzjr?^Az)#aM|w zC)KInkrP8uMxd7Zss8w}Wu4ox+$ENH$B>0KI~uzkX9z{`)nF&W!A`$Bzy=r^{kRDF z0T?N<j&UP}j1QlV%B^DMNH->*P@QJF3VUszmS4btj9<V2n@%s}vkbg(bEk>zdU3qd z&|a_X#(klp>iAtnr5a>3I!go@JqPdATJ#LEG&VJf=;^mR`hX}i1`$kb<R%+Em|C$4 zA%{~-xS5a<_#Kfk(KN*EgF$I8ci;hs-Bk97^+eG!*sbM7FF_4uo-%kEjaMPghW(tG zTXze>op)Tr{@IP12F2@^#;&e@S{x}uyQ0^|qBr5iT3Pft9#J1kcqbDaPJfS;6;5qn z!E(D;JvaH(i9!X@943M60c|*1RE)NgIsZi}u|2J1GG>g;6gG~MG9^x>3Z)iv@2i<! z%nyt3xs8#mg9WbK-D+ZAD6^AVCX{oeiKl9p?NVikT(&Wdr^=i?e#^W9m91S3?=W8t zo0&0q+YK^=$+Ota^wWwp;+=d&Vr3po(D4HkcIEXfxn{g%e)u}4M94SLt&rnMMRg*7 z$dxLJ%+;@OIJQ@bf;y}df(s@0nb^ONk9498wl%@xrGeFFTT?3q-}1vo3^o)yrb<og zaf%8vRfmb|$J?Y8&H3@&(h3%Syj@rWe$!e^rWG-*5*TKp>hn?S-xY5w<yTy(1^9XZ zix|ucSc%Pq#!N3STFoc2FP=ydS&Q$@#PLq{;yaU6whKcbf+Xhb5yOL<_)-k8@Pl^| z2Hr(B@Xj!d<gdW&s%J17s~Idvq*vKe#r8l|5n_knN-2IU8R`8@kyTSjZ>yx;Py2(g zZx7@`4%C4E#IC}cQd$B)%Cm1^4I2B4%=9zd7i<?pCU+|~3*JWtG}i19;!b1-U&B_s zVvKDuQ|WrtocL^{ahv=gvnCKp)y-mtn;3nn#*9>a!dH>9R80--B4w!>?6H$60~xp` z0Im`#3t@QLn1u#srZ%ueo7M~B;~-3kvmy~HY;a={3J1|&f=akDoye!?H$`%@KSfZo z-vR>(7RIM<5dDZ#6e<b^TZ%SxA~-O`6c2i$U}D2rc;eN>Bb?a4wST;g<XbAij<^<j z&otT6ze)QykuWs)X=vF(2}1waB~CNLY9J_)tO-cg*y+Yv(6ZwZLJ^kw9?9LB5LpmW zoys_Z7-yeU$nhT%muSv08{}qs2pr84#IfUuv3`jejh`TeX8L<O@M@+XRm}0K*qjR4 zBZBAPy<Cf7vh1#+fELAOPx1j8I@XslPa<hjC?bf0IK#mQ251q>V5MQ(kK?K6*nN2= z;_^Tu8sxDC69wQ38A!Ls06j8T^m{CuS<wL~lq<F9)uIDI^|1OQsb98%CL$|b?4var zPlAJqZSeK7(gyQ2btj@hE>!q;BEqql5RkK23|?f<Og|xZ@++#9;)SB6ok=Ze6FYFB zau6a7_hp{DTx|G9swOZurfFSK9=#cP0vkaU$zE>iJ2-L2=>vRcxg1KX+>e;uj+O-_ zw-EtJwwjLmfr@x45*#!(CD!8=&+k2rCs{;80`6y8vwy<KNX>6jRWTYbMyQxVnPuYi z43YS3k&4GkH6wKEdt33FH3)8cgenydMO(pLc$|VPjaYx7!d%XFo*IP@ukB*;nHJU_ zx=RUcu_Zt8p&omU^Nyw2Uon96dL<axM5Uq-+z1BMGMP<G6+nmq(cDIf9?M896^Dwb z8p3u&l;^XQ5l~D~CW86#AtkKP{;3sAdKL*;SrkXXWQPG}>D(_%>3cuIvv=uiLSMNK zU7(iDveyJBP{2TfYA80ou9B~x&^0ae%AV!`#X7rBbhgP-Y8TY$zl$iTz@~EApx^Nu z0TU-7q3A@n#JMbpC($ouZ({1K?b%;pA-wnZUKkUc%(I-%+S{VXN+S4jEK<>b-5E$q zbjW90n%12Oo8$b;#7=K^Dh9aNwY-n~5}cCG`3mNjutC{+A(;4EKK3bF&j%ZxXY0o| zIQ;faew~}#6-oVuIfi1G8#|?=QjMcTDlvM-xnCGfkHUv_(Q~k?dle|5pmUegdzq`D zjN^N$0`$o-jCMjrbsfK#<1qUGk?s#Im^;V!!Q%S}HJ);OpDV^w7)tg2Bzp-vKuj|u zjrjZ;`KZR0wbWEpviw>Gr5?6ggHH_xMf9>TzLV(oAUIQa1+mb51;P)Fv26>rCtj&K zwcu@L^zsmnT*Cl|TEoBl)i%o=`=n7iU_*TS`ZvUZK=FnD6rcDQZ)OPHjW2da7-F^% z5lomgX@b#cf%$`C=Viy@?)EJb*gI`Tayp6|yn8Jf_!^x@d#po_&Ge+AnHyK3x5Wl) z=1Deb#x)aP`->q5H~v0|ad2Z1HOmP1|5&Z->BmT(f?|_jwR)rtCyD+It*h5TZvXrw zQ8SGehvbwsKLr&KX+ckcuR<__Krw`IG+(t9lP3^iN>tT|r~)ZuMFGu<9UqL}U5Gu+ z2N4E(!dZ}I$e`>zGF89jXQ7cIeBF-IIFLOfSxu1w#w!k{CKm*IM%rO3DUZ0|P}oYw zSvpuW9fqj^0;m<EaV?fqg7Igl1#7Wk5F^)U>oTZ}*g$+2CwmhH1LtrmDaKpkM8PfL zi+&>BO178{*xZe-GRc!ULBz3~m?Ud?h66IJ<p?N<!5#{fvVom{IQ^d-`vtLpbGj|h z(E-%cr`d96T|P$sklXb};{i6-#K-s~r4uLH2)!tN=XA)uFOXzA>CtJ3nW>ZqGMYGY zWF9)=iL-E6n?7$4z5xtl^lXg#6yMhdgp%{IU@QoKsN<OV`bfNnQ%^DwbbYgcN(#}@ zVbF_wGmMMoP7RlA4>uf=`hf|ilH_|OdFoDtkCrudmi>-ClkWlh-IVV&_B)o9=x*BY zND$wr+V2pQV~L4(vG-f`W5_bgkYU3*Ra#A0<uG|{4XkpA%+F_%a(Fzp4pvb|C|y`Z ze%V3tdvqzcpvMfu+TmUdErL%WRMhSJu=DJ*_czYG{zjC|d%>=iMLgh5wrL}I9wdC( zF4^*Bt4E8++J%xSM)E;~z$UB7VEp68jqMdoH{l{lc&(ltjy^?jq>=obOptn#b4c=3 zC!?_dts{so6`w8|jhlSrJ<;)b8tQYsLU-GZq}L{JbBNLSJgk_1#*qsh#ohA7Obu#S zplE-o2x=1xNY4o<&YkU!y)IG^Jx(1aHAsk*?Ca2h;hyL;=6^)lQ-|~M_HKeFXwWl@ z>Zrip<rO;ZLY-~6e#XtW#Y6>O%9to-jpP@|K^T4OgY*ZYnS5HiV<!bGkge$PB10DR zh60?8Dph+#Xe?cTnyO6Q$Lv+&#O%hK@s64lT3vVSI9rm#TN80GH48-y^<yT4g1yr# z62<gnPZz;FBN;*-ni5VuBRT9XB?JUDP|0CL>29Nv1&Pw#MkNaprMrzvZX`-~8zo}` zQjP-6K1M#oa%C^chTZ>-RUn2~;glijf&$HtVz{3{r0!!j!m0Es@py7I9zrOAXcmYb z<a@(*ehGx{epd>u*;tEZ8167Uly7X>ABJqLGy9PujA@QI3LBJ96x{<0L&D4QqUCsD zy!GjvtHjB+E$yCt?;D%8mvpwg?+F>3o()#C7|WNVzY)=_Abl!Xj@Y4DqkH^V1=UzY zj)PM`B^2b1Mc)UO>E8kg!_FN79(olri-sVN%=$R<(BrInoO@t$-CN4ENV?LOuG7o9 z5{LR5_lgsKQ&0L4F3%Atf`6WeHiBRLUTCbr!C-GS?uwpitoepk{yG+2(5B-D&W{d^ zAMj%z4&L~+JWelZ+!cExl8zS5rq*8y=_tA{S#L;MDVoW(m}YvChjbxdCpIVAJNupJ z14D04JevbKT?_{eC-Rnk7*0G>$`>wMg^Kb6#(mo|?daB!ORFP#wrECj3DMgA*{`F= zs*bW%L<Uu>pVg80y=U(hPppD@FJ*o%Tu<#)QOa__hk--ZBfD-i=7n!1Ow1W?grUtB z+CpU$yQT)5rljRV7yb!2FMfCbbB!cFs3~g}pL-i?BK@$Q5{&OZ$r$@8XV}r(^p9m4 z(GtH0vc#bQ(G$~GcADwR0TI2$Sd+i3X1^e-*b&2tRs*s#*<V{93Gp|j#vvmcG1d@j zP4-pD7ku(jdD3XFv80o`b>erQoMSBg5Y}|v=TzKg$PPj33`X(|xP;Sp`*}>~N14-} zrc#R1on<6j;8LA_CV-+4jyN(TqdVMx4tHC<5IJN3?HhUmh>M`pO(;s+og07AKmwU{ z4!Ws=?mi#tHk^J^!@~|%)tpRE8OWfvF}R?W>=X=LSy}<b1Yh9i-{pg}nnm`I-Ow@* z$hjt7PK8n(2^5A@#1g$4W!V|sjp7p{*0A@<HpZ?Rgzdf#?g+qV7ewaZ`kqYw2OJ#| z#%OE=@7kf2LW;UW`xaw^R@RK9%0hqC5nKeW$RuU*r5tV;OWtJ|iayiu8!!rXhoEac zovBJZ!vy2)STG<901XdoVsOIvGJcTl@gUk`BT$S)^lX^JEd=0)mrFq<_5SQw451|Z zBAAVoUD?;T#)l?MZ)nC@13pV$5TcCID0?e-yw`!kSszB4y^aq45TR~o;_LOtf0lh2 zZ;etE7|D;}+f)KUR5F)bio=PWU~p{v*ok8;tbL#U7Zu@sFXCKHtn=>t^uI7L+V>)s zB!d+@7S5^0Sa!z#pg6odtbbzauXf~D8fzx$NOndKjVu@tyRy=HJy^0iRPo~7e+^m9 zB|FM?!YMMN`O0)||Bmy}P(}~DGCfQW#Jl{_A^1H%nvdV>qJ!{@*82>UTzD`MWwLn@ zjt53l{VGyUMYuFO1~!O;La;>`OIZHwS`0`b!ZMNnMCQasolJHI8YI&by-xI|9?_|f z9TN&>{}Tla?*UXVJP8q*IZpaC8vj6Vs(kP{sw^TjgW~LyaA61iDA+r@7eCmv@f|!w z@KR@}Wbjvt;FC-p0}7yJaSFd|7aB`JuXgnscR#0M1<Ae0MZjqM5Y^j@qu)jnQLshV zpr2`G`@j$=oKABoX4#~oX<)nA@B&81$Fz`X9)7cH8cWXrDfDS{%REKFX#6h(16Pb4 zkd6i<>96o)EIAom&LGIS(4+T&mI;<>Eda6HM<CoP4q;|gBK^Tuu^Pm8H1pYTCMgZ9 z_Q4GfPj++8a`$P^XeU~zy41`|PqAu~86+>e6+~stXkSbZdd^q@bb}qpQ8@jR9YE|% z%OYcQMFn^Z_-OPNpcNq(`0N^6yI_y~g~JJBNgeD$G*AxfuY|29>9MCWW}_znz}!&e zWiLk}ps5B#c|<U)Ih%(7?vlp~Sg#3>Xw0+0f1+rN<OX&T>4KAcb$#e!r)fN08yo$Q zR}q{XMIe^hA^;=Fo{R#7DbM~%zKA->-U|Ir_Tb#QCwmXfGC>BjAe48GXT<nJ_MsA8 z(}sppF3+C|qWDPu&LX*x%kLt8j4GryN`ttkffJCGKf`Jg!f4gR2Ay(aNg8j5hrZiL zzKDb#?tpEr>)?RZ>)@yf`SWsu)`WZ%>NIu-HF`_QmWmze0`J`O8V*3xY4eAp4++e} z$J}-KRx1^#DXc)8&AAXS(J2M!sym)fAW=Fve45zw0savQM~WlX!Fhx2jNm=ESCmWK zNT%_|x>StUxDs<>*;}xk2o+I|seEt&b|wWap^;~pV?jCFNQ(0YQ<DQC!K-zouY694 zv1Sm4B76zV8>$j(HD1x3Rx5giNa~ArkCVLvm4b3c-}NQ}m!lcXR_KB|){!%fBu6-$ z!HD*&{Z%3(j;V^~z?Or9`*-0olm~Gt*RP@jQ$wtwLREUu6U{Z&<_@W~a)%;0o(J{l z0GvTOWLXXvY;t)wf7vC1;Cp3lI41_toH1p)Tk1t?%>rZXCz!6AFlxRZlXdt`8*>P` zW-ZR}8eMBGV+O5>`N%q3RKo$@Y!us>{RL{+m6^tikl_bv*LCUH64+{6<FX~zwg%8L zJDxe5Q>f~gM)DqXZs59dB$f=w`l&!;F_v6<ME(NfO@)ucf=iAeN+z>j!`Y@mD>R`1 z;RLK#=A9Hy)#qbp!W33vEzV4Mk6q~mrVpG|u6Lx^zGsQ{jh4kJ536Nk0Kx~m<wOCZ zNwM4i1hPJb6-A^JU1eEwMa#T1G0KzcK2$0jHq%$fd#C`0LX&+7o^U8bs6x)U8%uZ% zERHn%2WNtXl4PczC~5{NPWzBbQW$-IPsPoOZpqF^AV@@Dim^0;PUzngOsBI$a|@>I z4MGiw@^lRd#O)A>l-oVgqA6tAsfzJ~Tl%p7QPO8Ch#)PbpcG|TZG9rdq+N6l8TkVc z*R~?B7y~j4PAzS~EBmIUbKodc3Jj$K#*!8!+g;6=doq$&fsO*TM!F_OdZKdT#g=?V z@<NbUZ5ydgfuH}t!`mu8S%}rm1N(4Y6;5{mp9D+(j9t_D*6v_>^Z>ERt=1ZShqb-r zt%_IXoosE%#=yrtc`(+tMIX(+g05Xifj`T6myXQ{Du5zPM>V;AV9Sw5K`G8Y<kbYY z%K&+rcM6U-%m;BKJwm1!jM%@U9fzr%0_twr(Tdcwlm0bI##nkSoc_HEFJoYbRrnpE z*ihk6wacLoAi7}cCsa}#l^#8YQd9JRUg(tW+7~4pd$X}QxGc%#5HNZj9yHNwa0c=T zXvw1I>R2~sdk8B$*|E@c-L+_}ZI0ca&Iv%IpuO=-CMaWkgwyv;$HOiNc9G&<jG*-s zI(O{W>gLY6`L^hdbF{g&w?(yR^!ypOUSBs?tGj(}bnc8fH`m#~RX5%gn|=KpZOrYn zXKG_+Uq9m(ZANXaR$p6w@%c07+&u5bIp^PY{jE1@W5<nidcOI#+S{G)wYT3Em4r9V zUQjpd{Fyh;h-zcQAudIT!&4F;<R=#S*@NbaLO7uVOKjDUHo3vtir*V!UNgIzI|c=< zzeAmd{_sYyV(a|3jJ3a~#L49eoLvz0y;@5yvR_#kI}Ms%eh|}CT?p&yTC2b`yPkzA z(-r&J`i4Jb-B^T*!lhPQ^SLW=i#&HXZ2g1RbG(G3$}FDhQjFv8k+ec44U5v{_WdA< zMc4|SkJFO4_26faN7>~N?4i^m9H2539=L~&+q=T4Z<QO30l3{$RS@iIWvYjXHXgC| zZ}fqP%xo1DEejPHc2gM!koyx0aM(jXc*TO94|^gppmCnMDcyw{itR`SzvD3;>+Cf= z942X65DnBQ1DhPjK*~%k9-kgj9vx4}8@-hed<XVj5Oo}5tns0|O^cm1PAuFr2Ltw3 zMY=i`8f(z+o1!1X0j&e~;|OgB;oBWA8ykJbntHwE?R@FJrXELcH+u)}=M@Y+LGH%k zaBCE0Vat2@2x(0{sPIer9O2nPze}9sf`&6ptTXrAOk*F3iFzC+ghnBz1<~ha^H69k z>B6oSQP!fM9bHi&3V555d=FXXzBzvihgE`6uqL_B^v?C$^-!oq2V^&c2wa9zi=?i_ z5kAMQ2cU(!o{dyY^kZ^;7ea^)x*}bGNu|kJhi`nk00L?<$13ZP46WmKZdt!FmAgIM zwX?e7#W@8yQ#NWuDz5O)&ka}Xs5Ztt+kxHQFEX6LSEO?XkGCS*w2rTY)49i*dJDV= zAbQ%Bspz)OE7Bv5H@h}RN<KkiKYL(&3bfmGZG2Z~8xqxAZ9NO7j8wGDwGbW`U!pl- zD~GIJ2v#q4Y``VMN7D2C!O3A9=nkg;91Zdx;z;j^wYHd(VAg!@sN~+0`Gwgb;BsS4 zHHJA)6wx)Yf4I>|-8O+aA#pg5Y3+%W?7=l2pj<d;9mX44_9ODIbpd!6S9hGsNk#gN zoo{w+i&T6V8-M}e??G};rM9f4IhzyTZy1da0l+adqhb9itQ~($>>n1x<zm}B*%fr! ze~Ng^$;R>4uzw%oF%y64%5s-lVn0q)y&yIe6H$7kB4Z@j2O-(m8n7+?ydE69yr>ij zV3(<7FMx-NE3oQy8Z0=qlnaQQ-;b2w#Eg%;rhWjETt?$E(DD$ga}ZS5jzniaW9hqq z)M+tf8WfUGa1DD^U&pyez=n#Y?!z7Kxgs~d-xJM`@6U-Ie`sfH$TClM6+*AIJlXs4 z#DnJ@;i87Dg=gxD!qnJd6)za$Uck{5_z(gic1*<PI;@EzYUuc=EmXEhO;~TeXDn`! zfCCha{L!B1F{5*$#-Sat{Lr$I9eFr4eq;yw^pPD{ydP<-A?;mgH9K))DX#o_sN*C| z*L6+AibgcQ<7{-o{*;%)_Z?_t)v79GMH-9W=J?<OI2^`i7>Qc@g6qps#?~vrtE;gr zJ-OQ2MwWZ-DXM}}*fxAH6-AG;ce(Ek+oy7h-~<H{G7~ecpJ6*<qo^G0A_;(ybCqIc z_s2yhtBg61<~$sHT%2PY?O*#y5Vt^utQT9do*?d``s|UY2Ur}pOz97ElZ{V`j~`<X z^4L<|mD@UYG#D2<$HoS@%*E4STgOfn*46~KFy^1mc)D7>)QVci=E#RnK62$FUp@-N zBhilVq)jjky@?Gs662mM+C*JJfNhImN79HQ+``C8#OMCxDsJerwuKXmO40Hz$A%lV z=>q#QlHW%F4IAvBaVr<z&BTTsh!q2-ljIvq7;m|JOaG3w0GYUc2eQhmB{5SK?H^c{ zdA#*uF^~c`G^5;VAF*D94Q1C|bS$}?(6Z)-BTOF_dl@jc*)b$2L$tQRitt4tC3rC* z8w~K>uuj81`OmN-{Di75tRSIU;n)mM+N!hR={>t@{RqwbJ7$C1eMF1IR7JijCnNa- zx}<)`1i)7}9LGDCkFXkui2}~}7D7emjI)}A;%<c-;=g1W;6#-~2Fb!ySM(~=D>iq4 z5<O$F3J=v$5lKIy<){f@EbwuD3~_LzyDc`1r3uHfU4);(_`=%OF#vzw5N;r8*h+4; zG7f=DpZ{n6uLS<D1pcoCzI+K3e|fL}l28A?MD^u~bPShi0^-;C!=8hN{lPysvs5_K z6)E>V|F1BcTUv0DxiZHL7&th-7$zRqbdSfQYq;B7_lSQvUc7s9bYMt$znp(9-~TL+ z49$y9s~?sk2WUQRAa0l+tmWda`8>^l(sZnLoOZlcpq-!%(S~Y;+KJjp+R555?G)`) zZMf#wPSZ};&d`dqGqtm{v$bNaL_0@2S36HTU%NoNP%G8SpebFXjnKZTU94TAm1`B+ zNNtoh8Vi1xX_uo`gW4EvtQOKLwQ*XNW@=$=ymo~a(W<p8wFz2{_BHJ)ZK5_wo2*@} zP0^-mU)QeDuGOY#-_X9PUH8v2_b<6m*RI!Y&}L{ewHvis?IvxOcC+>^?G|mecB^(9 zLcsilc84|xwz*nVi)r(;`C7fUK>Ie3JMnjycDJ@rTcpLc25qsH0Me)>@w-G@sx8x~ zgdg2-vqY+!WVx2sR%rKjzvIX{Wv5!NY2Vepr>)fPQy331%+Y*$A^uLp-%0p8x!a8v zXdFWK?Y7h6Fm%`RC7qykxX~&weAMW(?MHC;z&~eW`tt9EJO20So&!hBSs&4z%~nVJ zoKiVblVvOLz}=50)95yI_rjfWurK!<xR>_f&N%zQy&TUY<&W<D;Xb+#cdEJr;NF*^ z|6`E<IG#sJAN}`Z;q_tY--qxY<nstLbT{CC^-<jO;lA!D?#IHtxes@y?>M;kWf*?} z(zhGWBc+dJdIH?r@jO!bGW=8jN%;+jdnf3Q6h7nk(?2YIxt|7i?&Iyt{dBl<K-ZW1 z8E`K=ihB{<{YP;>6Yj-*xU)>of;$I)M=BrAn)LU}v^mq42b_lP1N<5!R`2w4wFE&5 zcOTq$xZLTVZHN8``oaIM^wB>?EaGqAX;>V0xx+~q#xV%)O-FGb4EOtw;y%ca5#LeV z2gCirKHQo9T!g>Q<$etC)xhX}4BY+5th4;+{#&?H{^Y@Z8Qk%Dm|+<iaBp(?w+ZPd zAMW?V{Ydpk_haGy<38LO{&8?$b(HXrhx>y^bN3^!M{zHJ`?{mJp8)sfKHQPKqZ;Oq zhWtV^Q$92frfKremd{n3jDQJ@;Ro`Nhu^<nJhiv~AvL#We>6%0?%)5nHJGDoAGYq{ z);#V!OzWV|VQU=sK%cPnh$ihj-8#efwI68rYd_R}r2U8XW9=u}Pqm+EtF)hMztDcE zJ)r$c`?dBP^dk>x4{MKTk81y^{g?I_`i<Xek88ivp3t7u)@W<dPdufq$9(A1+B4WQ zxJhf)TC~mD7HzABiDj)7a%89WtoD2DIqiAv1?>-7oA#o%OZ%htlJ>IpiuNk{f!DOx zwKudkwLfWZX@7>?e_MM;`-}FjyIQ;7b?vX(-?aBI?UmKu*E+Nhv=6n9lzuux`&iqf zeWHD;eWv|g`-iqy+lQWj`sse{fOb&(T>C;hq+!lXXwhChNAIWi*9Yi6eV{%_r+znB z&()97^K?Vc*N@eY(~s8+^b_<U`cS=4KT$tPKUp89pQ4|t57+(rY5M8<8G4a^rhb-w zwqC54=;!F?>gVa_>lf%3>ZN*_{uTWqeT4p1{bKzRy<D%*N9v>W(fXzOW%^H1=D*Y~ z*8_S`AES@eLwcn?PX9j2{UNPNH*sC*c>M}JqF3uz>J#)D{cHMF`b2$_K3Tt7pQ2CI zzph`SU#m~kzoCCqzfPa7U$5Vw&(LS;H|n+eP5LbTX8l|GE&6QzR{b{pcD+u&L!YD1 z#oT2~pQq2)>-7ctx9z6bU9!@mi?aRq%Jp9@)qGVtWuhcx8T@xjz?Jm>fmg|0+Lz`p z&B0+ZIT*CT*t|x&<TuDb2gjjT`5)jphW_6*l5ZJG5AVwU-u@*Q(_L~hZ5m|9;rvYe ze+N%9CI3G&Rb$7F^cRP2yy52SZ}X41;F1fza{h=CX<<$|exlL8eU+xy=j$iu4)9Uu zDg-80m+`!S1ZG}-!gFIDbsehh<-}m@{+U=rAkb^nlh|}+Kh1$fm3^!OTjsFSO20o= znCkKcwpw9OD}*84R%OR&=fV)%t?UEUlh_B!&f6boh}p`SGc5&zYr&IrhanyHY#L`A z-2U&xSY|Z}E2cw`WmYT7jBc})o6u#h%=0I_OFW**c|L|uJ(y;O${1;Wtgu}yfH8Ub z_j<<U6|V4($@8ak#^e<*?-$G~UD7|4SDqLU$_sd+gYwFO1oMhP0ZRB7ljjQ#_Ll2? zxFFaO__L>kK7pNSUg8Pn6(+n@d4A7rgYpW21oM1VgR2~NG42)XSn#r-+h54`_jS-# z34db;0~{-?jEmblX@0{Wq%h4qE%%1={7Z6>@<hK-Ua4n!Uh&vGKN2Cca2`mhr_wa> z2k>&HafvsCQp};3xS&T;k!2GkyA?gZF?W|;CCd(;mh=y@?5gsnd;j1$QrW>P>!wIC z;AYrq*k-s|L?hZkBrm@Pwd}`xjlzFR$E#!=*A7CO27Btr2y9bPMROTx1dm(~iYo_) zK~Mx}rE-6p^?y}fDfvW&@i_=X_=-}b;b}$pRlIA{^71FaKlA>Q!f)!G_i^N#p1do* zneGktm3KeF^5@_OW)XjS<!2$YBk~+lG<O_EBeE>YaF(L6WkfM(?^4)y`s?94R_Ary zycQlT{6DB@d88AKAAe6PY%<GfVqWQTPa<cD*Hecws$?0ltlJgMEwF3j>5hiC+~c_l zsb}4aff^oSyC<H+3gpNEdaN`Ir&wVjLZZ&*A)4^uu?UBlsoeL|9sGIJwmRMOMqc^Y z!<s6~q)CNyjS6SE2hC@RH%LDBOc0F`94_VR(~7o|`9FG`Re5z@AH~4ou?7c!tq<O3 zdi)&d!pvYC;}Zjx^#5jFvuAm~bj}Lzy&g{zg)o+7O<JCYLnHV=)TfdMrJiqe*Jp6B z;BkIJMspH*bo`S3i2>K<P45nNji|yRIIU82`x$>_qW@J(`Yq2%dn0*)6&}xe8G9+5 zxb2)q%<YP}tE4O{o!uSv*um3mX(sCVbLHnk=~ZCjqCC9w#v&R&{)z_BreSOYBX|hW zgNJTXnfC+cw}3QD`J-sSXWs&eIr#28PL*i06-^v=<Rxb^gr0Y~ryexp>@sXpG@Ycm z25rCJlAPt<v}Y!W#til};t?UOiNB{6E$0Xv^<UY$e-JV*lvm@utFLy>zR3rkqPdbk zkg7K#qAEnhIw(?ZJSmeraIa@ZUX#A0zpSp9NPZkn5k>d+;dl}JIHj-tsw!`_?tT8q z{gOG@JK76Y9d}p*sT}OxGxUfq;3~<3Z7K~jasdc_t!6SO<+Y(nuJC$?B2Jbz+xh2; zb~NlXY{&UZVfYRKkq47`K>w7^iS+Js$K};{rX8v2nD9DPg)@j{Cc;7EUEvjVBV=&6 zyZ;%V*EGQU0xIY5wy9x7MAIHnVJ)Ka;mlJra)d_sAhIL`9-Orc<}SE3di@P}M(4=q zEZa8c#@W|j5WTTJs$DSi`snrA1vku{t6ebXcD|6j?1D19+C&$`Zkv7cEjP|ypfE|N zT`=SJTW`G)dpa+;?e^%67gSw2`TV(2ZrhYTZ=7{q?Hq2{{1*(rBz7Aj9tSRTPhiI? zoNb-P);o(~Cw+h*jIDdJUnX87Pz~!%(o`utuHMJ0=S+pSsdw@R4cBiNPCH*<RM(0X z8;S1`DDBd4f1^mh%9^b&KBREJ!c~=O%?dA7xUHN1N#V9WX{VF@3&UTf=*Qum#=txA z)hs9&yPrH$;d>Olot~h=^HsuaoZpu)oKl6ed~M^kJ4+kDlV^pIe!8M(Inu-x-llL{ zujO7M(g#%EC3IWR{|dN{nbhVy;k~=wRx5hHDzHzav$n~`6(cNA_=^f(rSRV<oDZ*< zwRHfnzANZeM}YSx<@|-h?RTL^!i^szF#R<YI53;#L*o%l#Ql^zFhVcH^J0ZhSNLy* zE1I!Q&k17~p$p=9y-lxhp#uV+ukaeh;6mpEo)mb0twAxS(D{I`1kUmdC>a;;$s)=@ zfuOU^Z&dhADtw{u!I9^NFkf8jp}9joG}bHeCWS{7o>h3e!nZ5@9|~_%{3&!cxKTbb zoKn@{-lFJFQTQr_+xpps3ZG6T9LCnssCSEWo*;3`a+<j|y~2fl20UTos=*0;3;1^w z-mGw;TLJ%t9X>lt7@-g0xmw|I)!^*%c|qY=_7+CyIk3H_a6gqw7@^nTx!1-|6>#?& z^|3iJUvY)oy2=F#U#)OkUm2_LHibVbgVV0I!(rbHvs6Ab>gD7Uzbc<Pg~t?qzFz`y zh4XWJQSS=xRQLlnewqY?P6F%W3NI~^xX>?PeL>-Ig$vyRIQ4agU!w$%&?SH$0xr^N z^D+2|hPpcOb|p{j$$skVA{<lF34H+8ixu8HN#b_jU#W0x7!c+=@}XTV@cvo`Pa4sm z<9U;!U!~|p-wZqkT%=PqF~u(0avN9e>siPbnxEUaU4bfJPb!?BS<u*g{({0qhX_2P z!g*Wat5iLz;?uYa!u0G=xJs5b5amd`P2sA!3VmOcr;C21qTi!%J6}wjx4T#5TaV%X zkRusyckkWX)%*W(_b%X3Rp<KnOftX(kR6n2RH|be+fWq~OEsxhXTt>c;6x%fX|*LG z7n2%EOlBb7Ba;EP<9KM*9(qna<(#(G9_^8O33!79lmMsJ5HF?LOKPoVOx09dj8x(G zzH6^FS=nZ4J-_EX|KIap&oi_4de^tU^{xA5@BMvvgJe9HE8Y?q8?p%UD4F$;%d_B( zS@5<j_^rUFqkOi=EL6%w?vZ%Vh4*CP^UEywZ?oWUX2H2v885%nCykGvo&`TA3w~i1 zydn#}G7H|A1-~H+p3H)OFAM%q7Q815{$dt9odqAsf**&DGhX?hlm#!zf-lN~*Jr_7 zvf%M7_;<75|CI&body487JMiRJ{jw?@yh2jS@83+;Fo5>o3h~TS@4^);HfP5U0Lv- z0OvTMmcD&*9C$1X{edhvziL}~WnFaTRduba8&_W`{4H%O8>-t@ici*7@-w%#3>kvN zcW)|MW82D_#@b9U?y=8mzFNj@TwPn&E&|({nxiXgn^)HfpYsLX%Er}=QQe;j=SO)f z>sHq^*FvOGvaxU$>Y9e?Rzy(=kBuV&S97b$42ZDU>PDnfH=0Tt@(^v-a{p1<@zPLy z{!S7ZiA8B-a({L8Rdp*{@KIrPv~H#NLXg6>RJXR(t!%BUZo&tJYwKE9M(b8P^&m1g zT9~XokrVOpp{f|xl3olbl{OMKU)>TzGN>q>8F{oci!UP`*h!thmH1e4RG#|A_ByA! z9SVNnxN_C1W~Y`VMw*pvHPuZYCB3>j+S;fSuZ~?k%D#1FYizaf);HEQ)uI)yu5GGo z)kR_pYi-t%kCdEKKFkuU5(fyXT@%X0Mf-+V$UmmwMq9lj2sqR=)zw5vE|68R#->`- zM@>^RDyRkp&>U->-PqPzJ^MUC(AIceonU@tQ}e3ornZ&!vDGzg4n;}HD2c;&)IZuh z$e^|Enpj<%lceC7X)jLx&@yUQHrLmqRwe6m1S==Bx~8VCt!*VF7l$IOKqnx>g}Ha~ zD$ZGi{3T!X)HKx9T;;R{CGwYMqh6!4OU@lPP)n37$BqvC)V995#_9EKb**a}A(n`t zO0l}O)=AAN7zN|(rd2jcK~5&4O}@Uh4kgSlYFCa5e@?NWY;LJ*t&TRgqS~r!1X5ea z4&Ewz6#J*sCLBSK((2mk*4oT?BjQxIUKwM_p?+hlqmq(iSW|Pg9PUK&qh92_x^_+V zYL&sZ*ecPuG87^Unc{Ci^+6`l&f8{xskGFQzOfDbn^&P-IUQCAQ`e3>MaK&0U`Ryt z>W>oZ@nylU#NeH2>Kc}*GKI;K<+sXgI2jmO96Qjc5Ozwzxjwq`>bk2j1=Q7f<}Y2j z05K|>Yhz8q7iwHHAAKMAk|<j5)hidHc~-a8%@+rAOvyD^H&vqvx7IneIA*Y}$pkS) zk%H)PQXm*UXsx-r#UsVxAllSiqous0uI?($Th4ash%qW%d3$5j!6cgulf`HgwakhP zU}`Pbt`-cPv7(|5qfSj5k&0LoGS0ijPLE!x1!f8YjcO%^DjZm%=C4{=U)|WG%hw)l zt*(*Mj7nIEad6bP7%ghql7{Bis0*Bj)}cX5u4-(dcL5u41kDZ2a2|VoB`1J34=ND3 zVct~rHZ``f;Wu9u8$aTb*ebzHNTai@Y^}r4Au1omAS+)dFl%ewqAadki;;@xqFA)4 zadq9wrLEPg+v=NJul@+wgc+0Ia*WUD@#7M*4bGd335prIc6GF&PK>7bf<M}bDGKd1 zQ&pqQb!9j+a*ZwE`J9)WdKEJnt2f%%(sb?0CC+>|jx<`(yb3IAE~#6~2HI4&T5CYH zC|iK5*=$FXghaAR**)a4Ni=?uooH+oDha(3HH^vbI*hH%rGi^95jRO(t`Ga<zMRL9 zyjAD2^W^@Xm#^Z7&n|`AByrNKqX67`zN^vmj7rhRu^*)4j`?%=sdLlaE_|~*Pkq&e zZ;|-0#F@<H_$mIw*ay+M@$<11rgNveO5$$%wOMfPFUI5ZW)|GUx|)vsufR{qS)t*2 zc`lOYzm)Uq_$haphJQnWxPC+8s{AEePmRQxu3r8PE_zv<o)(Rs&mxta_qyoSd3#S5 zda6pMW4cxNDLy}y=g7qCHT>x;_;0e{f6an_MV>pm>vxaDDemX+8<ZJ-FAIHv40rSS zjKnFw-rkO6p+8=pm$~U%<+&K~I{Z}mtdpIG_>~%dqCB^v{CfW?mN@D4`n^`e8#F$D z)bK_P{~!yVCo7u#zp2s3G+gI%TNb=U9=N&l`vZCIO#CX1|C<`#q~VPx!vjb9RrslL zdov3@NuE=a{%Vc>#~Qv`!?$aAvxfI+xZY2ve;Pz^<llmylIPzwoM-9^e@nx4c?@~p zO+GsPr{#G!alM^<L&MuN{%bV+3Jw1kiL3Un&da~A(ML7<gBm^Cn;K7kqtWZ_t>H8f z!BI{=b5!|V@EM{Gu9sU|7X0xn_#d+1g`XXte?-Iea=1~$b$Py<1%D(9ejp3}W)^&M z;rMd4Yq&0F&FQ1`G2E*1d|$)YX!t{)cj(o46_E4d#G>)>Z+u}aUhH^1J6yPWE>U{M zSbBwDbmmyRSgsp>;KHkN9J;?<=v?X5$IlBc8pYS*R^|8GS@6d-T<3FPaFkEG#^<l* z`1p@59>uTK=s#OIitFQ>nFX)8bd>%&jn4)Rzh1*1(C`~Hd@u`cEgt2sm(PkU_-YNm zQR9Ecl2JZ4X?U}S>-=xZf<L#+;luGnA0N^ZXZ_x+@%JqsOE0GhPoBg{zfz;0=Aw6E zdpsv=^g919X!t6P&z>y!5e?VJ)y<bVDN!DMUf3e>%=jtSc|X<YJG699<=_HGKDXef z+VgA;U#H=whU@LEMZ@)W-jN00lm*|C1>c$l@6LkvWx=nZaBwUieO>x3iL)Hy_^EO@ zje{K=>Ax=SoWIXW+)aO>hU?|9Gz<RCEO<v2{5x6j`?KJ?vf%H^%uxPL{8WBd%0f~7 zMGniJT8WcBq0w)5(W~)!p9}vI;?Nz?_*B8K(tX!OulW2;qhGJl=dlyQDLEDY=@O@$ zI{oi8{2GL*bdy!^z>)rB{BENM?$s)B$>6U}aQwdNQG69{6`#df@D>umk-uJUchm^@ zBlsUQT$g7<?I=B)wo3O0S@0GP7H~{gm-8nYPLUO#rzFnu<h~;y_X9uI=-V{<*EF1R zDn6&y!vn{3Tkuo(MOpB>v*2A>@HO0Qz>z<TO7VY6!&xK>e?{V%d`(0k+@%f9m3(yh zACP#4o|6XLfJU$9>v#@=aPIt`t>OCm{M#C?m;dB%j`E>As=dwCaGn0^5?6An_ZR9k zdcD4G(ePE^ugd3c4cGJajE3v!9?#7W9P_K^t4zanKHt)CoqmUg>-9LK;Tw>Kk`wA4 zgk!pT{eDrybvZAQ_+-$3jxne6&*NFH(d*^2M#J^;`Bx3s^Yv>D*YlOf%@Q2t)b~yI zog!d?>-&x+4lHn8e)Vk(`RMq0-cdffoR@33UY_@BxL$4-kue-E`gju4a6Mgq|4hdV zyS}QIn|(x`ahT;C^b4=&X^BsPSCqd4d-^3#J`^otI03J@@R?H`{HPm0#=)y5I9E5H zsguUyADrm;FVJvKiAw%CQeN^|rQsKAxL%%oPk@f}wfHGM|El3SpY0mX{LY+-Kg|(i zf8QtbDal3I5dV$D^JN@G|7VG-_k$F!_yk<^3NLcu=gD#`)^PHg^92Veb>U~8;Q&Dw zuIMcne!t{X>B2Xi=>RKSctYY;F8n%)H@NU-iL-CgQFi`nCC<GSox;B=@eYBG;+IH# zqYIxW@l7uLREckP;WH$@#f9fd{9YHX%5AF)KO)O{y9-zJ-7frHNx#>H4@$hxh5tt4 z2VHo-#0Ok>ufzvk_!ANzcHuvh_=pR?N8+MF5T@$oUnTA*py8V&p6|j{IZ&^MPM?tU z0T+Iq#EV>bv&7YT0E7Aa!2-cn=+)5qtM(jp@lpN4a^agLpGp^=lK2W2zE0v*E_|)T z8(esk#9Lf=wZz+9_;QJNxbTZ5zR`sTCBDgpe@Wt-UHBIyzQu)~D)D<=_za0}b>Vpu z-|oVX%y;Ug+l9X?@x3lwwUa&<J}BuAy71pfe87eGOMK9U_ey-&g+C$j5f`rH5fccq z!eIV>Ch7g0Sl|?XkHqs`_`gcLz=dy;c)*1xBwpmgl|02+@KP6ko#YdA;ms1aTzIX- zD_!_kCBDLiUn21;7hWg(X@d)&H`^(%78ib;#M@o?rV@v~!-YRw?BE++_#e-9@J(6p z%`SYcOm~Y5A1HPB-0Q**oa^9QU3lG>9eleBUo1De-7Z}5+3UhjxxnGm=fZz1=c9uz z{Jt+b^aC!uTbA3P3x|3*;f7uKKbsCd;=&6hu3lwU?OfshTqm9z&(DGvxbTaEPW(U? zyvT(|&vNLCUHHgF4z9jGR`UE-;z1YvQxdma_)jEW>B5_2x+`3Gt)#DV;a`w=gA3n# zp(AID3s?Q6-G!_CcDV3+B%h5g{3?lWa^e5|6(`-zF5DY(@GUO<`FRe0uM7W?#J9R| zCI9v;c()6mC;9Ak;a`$?p9@#~54!MUCH;U4pIz?AKj^|=lKCBW;US5SxbVpmSFh}= zb`_TV{XQohg;&XTlJCNQB+I|Rg||rhfD4}<bodsz@MZHHyx4_rlDOr<w@@&+N*7)% z`}qnNuI9xm7oIQa?{(o~;sgJ!E<7O9-R{DRCEo4AD<z&U_c!z&hu``5(G_br!v+Y# zmAY`Xt_`~Ij#C|awGSl^{?vCW4KDgkr#bX3E<C@$!P{MU)$tDA;l^dTZFJ#keXqW2 zr!2O^Li}&m=x^2VEgH@^>U*7gUAT&}-HprVDBUhxeb=?ug;#yb;nbJsT$v_+RmV8~ zd>+`qW$>wvf2#{u-^t}qal#e7`mRnrHzv+{m&2#0NT#pwN+-HUy`P|P`Pq`ERHOeK zXw`Q=K@BJWTFJ-KaMG*qfhske^w&!I6&g<ZKIvEGq~w_<=^I@11Jd83;pE>b>Dx7& z{D-Aq<%9hBQ{M}2)#!=KWl<&{iav-iIwh~d)%S%5U3|94`cv{M`hdihTnZn^cleLE z_^A4Vx?ABCeTU=q1mu<7gkj3bWspbVDqo79!h<q`s!xS0x^@|^@DAy}&4u?#{}vZM zApH-!@L}m!`*+1(W#ZQ^`hd)wil^w+c<7Vi3RmM{feYUv{b#!HVd)RLa5Zi(b>V9K zZ*k#O6aelv7v3jvmA;ZQD8~!G3|F}NE;;DNW&4S`aMj-K*KnSvDfep^zDWiY$@!YW z6j^<Le1QvB-ybh^;p+S2b{8Iy<J)EzuEssJp2?&u&qdYxggE6_-yavs`A*TRaZk<H z3RmM~lbb#t%-}j)xaxQJyKwbhrJ83Ie>HBr>Y`WUfKS$^qTj;739i6}tM81@bm953 z|3_T78Xxa;<8oY3^N~td%}0e3o%9v1=HE&euD&zA!G){ujDP6D)py1}cjNNh-!o}! zy6QV)T7aih@~H2Oi(I(+&N$-2)jFibh35wZThE;?e3Qhx-S}w^{ZzkmRr09siHlsg z`kuJbg{$w0pLgSy!&kkarTDA$#tgY0P`LU&_zDeY`yZ6`eXoYIpQ?42Oyz%k2_Po< z$!g5-3Cg=uug*Z?Ms}kNNEz7`f*HiQsroPH+I_5ZW%p(}vY3P(IEH*q;&PZEBwUp% zU4_eTr@TUs33>ic<8zx&xz5RObZ%7o8(lbQ>D0Ac-n+|hP|E*~%CLwv8c%vfxs6wT zfgXoKou{$<n1*5}m(k)`7G+^O(%rxs$LE*hg9;0%8+qlrZ@lyib~^+sraM=r&$Qj? zR|8}E#rWxNP%aQYt%JBHEuFf4Q@a-d@^3;)_l@4GcnY~0H^kie_sjTd-L2@A{L0UF z!p6&g%kz>#RxI<+rMZf)%AdvKZhMS*@H_k;yC<RFE&q73ldj>P`H%FDajxuld~WGZ zpToj<>9_pQiI<k+hU5Ea`q67!>PqnW&+O*219T;G&Mp4Zx#yfarxf?a#l_nHxpU?O z0_T*J72^U|HTmZ9$b8s?P^^)+3qO)S25!1ELn6nCAin86#$(m2??wo0MJ2l1{pW8e zMJ3)axukoyacT!}*n67Vv83dXm72NH>iL7u%Kd&26fmTCbaAC+$45lmcsDL3-IwpK z-()2>6hRuRHy8xw*$qzhaI=k5JL&hlE4-tA(ECXb8%k43`a4R`HtyVIdHdeYq@UbS z%5ZxkD1+i|z8|-ibDNJ_E;B8AJ`7)NSmE3Ta9icv!usNd2IsaIvTQQ8ZKy;B>g|al zk4X4XbTViHf@UI2oC~kWgPmi+&YnNHp%{U-ms#0F`rJJe=`l_XQSkm~j(rZp9KU@< z;jm>l6^_94BSfN6wZB=(d#hM#i8rHXSjmp9D2E*^3@h0#ZN4G<(=EIA=rZK(4kz)s zLD~$w0!GG?O)%yaf2sf}dd%fk;;6X{rY~t;(&*enxs%&gfPEynZ9ADl!s}6LKoZ?I zeWSeO&GM30A)HhG3sYy#wvy$37I=x3EQam3K}VEw7>In&>ZJ!9W6BuaLu76BmWxJj z#-H+r<4@;@%6>rpH~%aXy*ExeC$6v%mI+Bd#A*|~<E%<LndC#PMJI$bdI&4k2_cOh z!a8<BNTY|aWjZ0G(L?;1IHaNLjWYvuN*1;NCpM||kfKZoY4nhWOp2tTb1cG%s~C<I z_ZCpXQW+!AAt5KEH_i|`W#(&ae{pPz%IZdwYL6t>`eDgzCM<-C{be}0p0!?){5O#V z4EF^9c_0pr_!Z%P7{QTbRRgR!8lBv;gp<C)Fs$_XX|XbRG+!9Lyue6|Ad;EvDx#>c z_81Iy9<tvtI&a3<1}oa-B`|{653_gqUbMrAeK-Vbo)#@G_q^f{=l#+u+Z#(GnuQiu z@+NKkb%URl77VH#t@MN90tO}#SZ>3#+KAON;0x!jXZuN_KL=q|FRnhR!4Sh;)x{~_ zPWz7U;Vzu=ZGa>)ju?xQn^<9%eFx8LtmLMA$G6?_6*#_b$Hxi;<zC0fN`tS@@v)aD zgFXNU0iaOgn{f>p;gR;^SRO@>y@44ZV!s7@t4Awg{`HM;4eU1lE;Q?~<$deu9UV9p zqVdCkWxs`@zd%&5%I^1AN34K5a1(}IRx5s8K5Xi-S6a#IgR-4mUupG>z;a=za0LP& z9Bd@3pcNtrNR@+tu%zFqM}Q41X&NQ0gyp)KM=Md1u+EISfgQjlL3*mBr;?rq=~<!1 z`S?@qss)-WIhZ-)1&ncuETN@b5UCkN?wxGG3v-x>ej{-b3^s;qM5~F|Z(tC!a#7QQ zDt!bN9i4H}O#T<!m6`irXW|lpjd4hc#u<PQm2U|UgPrlfUttJa#CDoxghQZ_xB_3& zrSKpDF+Uo35dy<CB7tyn9@_1j_8Ug$S*Xu{wB4FU*LNsbXTQ;T1O<<HCHsu7cVKkX zYo#tI&Xk8`@27!V+3c;n0~TzVzhQX?(dr@iCKLhsMUf&1=e+<ExUn?E4$peVqJ_x_ zW(a3+Eic=_L1;Ud2NtbsI(c2+Lfe>$H)GS;c+#ujLyJ%UJ6`+I>VnO13^!B<=|>r{ zmz_>)n)WZkxm`{Pr!D)9u|;Tft^wop2dF8evMK!zVkin-Kx4ydlydrc)~Gh0TgXix z=evWLjv^SCh9mY3g(Kz;uGu1XZQ(!!frHj9e`>(e%}O@=P5YPUFAGGHcXNzty(na( zg?+EERD|AN7{oP_{9&ObuJ;#KitEFLE5!AQLY{TNG9sB_It+U3y{7&1iey_sd~fcd zr_p)e2^r-BR&qXi;rr&Hr*dJA*|;-Qcy@WoJ{YaEY-c%<oL_`qTHm{2Kg7gxpm)Pw zanrkD6Ru6sSTiVt5HMs9us5RPdpzu!sV53a!AcCkz$`i*%n*aU?JG2o9-rujok$~5 zgpw+^UsJ>(`-s`|)?}ELkH6yGxU{f%<DG?{0`I|7VO?EBVZ{fG#4u|s3FD*~Ng^;L zTg4GYrYMF223iD>?h1N%R76h|Ju9TAfu08GDMgPc;J7QShQ<fH@x4CSYcBTK0x%N) z2}vv@Hh^r2uBANAa5GPiKg_&6uLU+QIcn}fJz2@bM#eoO(T+=RJX3NYtvBO0o^%2t zG~n01cJeJr!J6c$`&iT#Oxjl}8{-_1N?~?-)IYD%A%LCGAj{uE6p>M9V2R`sPlCH( zqo{(4%8J<6t8p__SZd{h0~!NNmCkF3t-=zk6q2A6&PFCW3%3g1s22pV&Ldcs(G)Js zZj1G8{E0%&A{edHq)cLv#^_Zn3+s9mHw?OiwM>zjhFC45xmgMi(&=FAS?DbokL`I# zt+Q|=A$yN?MzpZqjK9hvwk*31DZeVZdmC6?@1&IO2eOHk)5l23`&bWB2B-F9g*ine zJS<lV#_0>Cy$qi6e0o;UzBzBIa1-E7L&UzZcu)CMlu>z6x*lnTjGYZR<uDR^dmh@e zoF`yFb~N+h<jq)}BJ*K;l8_{9FYt%sz4>PRO>gY^^Z~SIuKxA$!r5<x?O_a08^4Au zaPS!BFfs^Z?i?|=a<=47B;c%pQC3Z8A<0_Qdi*JCx3+&s&FFZPn=dioV4JduMt4Vd zDlq<Q9<4+b!JzRDK1fBmToksSihQxQupm6^DP{b1C%0v&2`3x3d_Zr#onZYKoj(=@ zenBDZx5@&?;t3wh_7!FT4D0|f9%PV!MDjC8kwgLlc~qpywSeec$$%)0IM*Rqg!p+u z1)?e5Ar>*XNBg)#EN^fhuzC*D&t{N*0VVD1KQNDoiY*%Y5jG_#4HT?Xs@R8!qJ~NO zNb<*AG@@f+9A#?n9bIn0?5|iIM^8qTPUWzC1rkKT7qH+1G|Iet6K$eT#XwrpzoSyf z*@F_q)FU#)cv!KK3(Vv`nRwH_j}zQY51~20_BLkHr9VZ_kK6@|w^q;ZeOO2KhVp$r zig3#=!LMw8>`z1S(fUQbAbb3C))7mvS7U#b`={?$f&Z9o)bUp0W$dMr$8l$tcR4pz zuOJ=nPB~w2*JLFxk~MPv;QeUY+zZX1d3Kmt4{(w|4=>q=F;i@5$F^S>H@~?O1@^b- zOtQIJMxVquTy*u$tE8|@tb;cqz4)I{ju#CEK^(TbOS&tN;JFkrxe)#5F;<0@^4V5u z&Mj8YYuIEz$RgzG+;4Ju4qN3;Ls(LYTFA#fJF}lQFMISPL^qey2K$F%p8zY^qEP;s zd?Tsa!YWM57nB^TwUWNmi<lNHB6B%V(k<$4X<^a37Hng`9!}ncR*%)`PrE_&vlD@G zHGxL^x|N*kFX=yu_V%`A-(NV4a8ZOiP8IwBDudx%b*x2=Vhb4*mG>w~-o3|293(2u zA6u!;Lbmg8>dwN=2<IXpAbJl6-eQoMJ0~MNlDc2eiNqck3niqKUtu4KByU8|aEvL3 zXZ0GLKSWcmD0|OYpH~=*j$n%-qER9bj&Q@b&{DSN=85z6gzzTAqEzTBha%^50$;xl zq8VLxilmfi=A&G~3<aEaXLMD1I}W!Qoo6r?SpG%Ix{Xe1-t0KMB=&oeQx4?zuim{U z)^D8wwyZNO7(zLdnK870D0(K!Pjss@u8;=SDcvga1U2&gTa_o`3xP*4ON>Aej$jyK z(AU0K$XbG-YmOIaQb!}+-4UeFz`v>p#w1p-7(USXTaMmYxCQYM6?aZqqdKoBtompG z`g%(Q%l)cI(pOkf_Mx%<9*mesxSi6_B!Rhubue^AW<6|n-0W?Oeafk6XU%s6mEFm$ zlau7w#F@>iaM=sS`imv&uzfIM|BVS;4kT><((JfsN$kghBh~~F`_CxR%}xTSMR48o z?mZER8ZbIdrjmSE6c7e8(e<9>aUeYHxPTaEClUKyE7vJCD>V=6W|WF(uwow@WtnBl z27Id`Wkcaq`P-H;AB{R(wx{*DAxrIt!q^Z1ik@e7TzGoy&r-@mmYs%_uZSuSB_HFc zSDrX}(*cslotk2_*go(!)+Z6H6%HB((tOug-v(Tj_8b(n*>R)iY$LIP<3_4H$12;6 zViTTa-iUq3n)M=kOTbFaKWfECW*8f0BM`F+5;wZaF_T|WSj;tf&=hi3aL@2=*nVc{ z#7zBRwl1zno{jB>(fLQTr}ENrPYhdxw?iA%+*Y<5I~reM?0GBxH}6ezn8yJ2OXc3u zx!%~$?TF+V`jjdk1T3B4F-w<D^u~T5c0pwau|HztHIs{`vf&k56WBQ8?@xwFd8|^+ z<YoT&;T)s$pZw^B8y-WQVqe*L8+=xcQ+7C;#E_2ebpARPt#MmgR6OdI6}<%#Z08^9 z6I}pf<P)Mrc%q-;a*2agIQ6h-`(i+FihdK|5ag;X#{hd={01DS+%VPX{0-Wext%T9 zO5Q1k$y)1+GsL(Vve8JFA!V9ohZx#^S@qiOfIaE8s0KOyi-O0%5V7}h4BQ24@?!^w zNn&tF|CRwMXHeuk#brMSNR|dh%{}H0c6ttnU&d8r!@329N;Ex;eS}z*DKY5bSS{$# zwL0$uh3GTsm&G1~4Ffd6^aohzvB@#eIS8sW5|4u>gy0Kc?cUh<QxW5a!Xi#cl{?tU z1Yg9c4BH7FJE8R?)(f(S3-cin&LB}zlThx-ySkZyB*s7th?wqdi&qF|VMJVr0nx&8 zWg*6XD}ZYeu0^<FB(#cg#e&r;#Wjd)&`K`0EW6U;!kH}yiE|nYCllL|29lyET%ars z*Q7)jEa~2nk02fxp<xt&lI3M#h(p4d_pl5B?yRpvXqrpI_8xF$<(4O2HWFPJk;;>I z30`QEw{tkGNZ!TS*-ZWmHxXuXu`m9&qhJ;>ItQ3OM;vZhf?Us3*e~EV02w$WS-hsM z@|I!nYFiXaE%BN0S3U@pp+gyQYTsek64HrWgzN(q_Q($4*oMw<R+=G9$dIx(l$=pm zp4ew3W}}otViaKi2qzy2${ZG98NuQabtTSHmSP?RHAVpxK#^%Y@Q4N4G2sJf_!v7< z3}B}%Ldhj7gXO79j{@!w$9H+1`OqFI@7!0B@?qjFM2}gRnsaPPH~ODt_ZVF{7U;0R z^ILg)t+IDwZ^V1OVcS#oyES`7(oT{uV=oac3zyyOH`X;E-EitMzcZSAdUSnb_gKku zz|J2&f6lYUh9KxL`IbE$dkxbDs~YRIisYHSCH;0<lvH@uhoS^U8tmUFt@(cRaU+q7 z$Rdmld8t?^$T1G(vD8XVEli-Dc#XtM$dMRs!pZZ5z~dF=BOnSV`7i>7$&;_7(~eY8 z--U22MO#buJ%+*r=^DTNOOy-F>5hia@EKOFZ<-bF@t3_|*}fyO-=Sh7&e7?<_OC?j zVUuft-B>k?V@G>1oSf5(EwBILGv=JVFnIxb30f`=<NZ8~Ec<H=Yz~GvyzddB$I;xp zrhN*iEX+b`<V^is<&8Z)$T37T)JX1sI<5L{r&X7WRvkjCPF##5pGfjSc8aiQ&P%r- zKNaZWoqWJ%CLdw{z@hKUi9<IvLvpb?V;4(?iu`zXgw^gB#G{6zqEgTc$xDRF=M5Ps zTI7$|N8`J_V<>yU2Pt9Q^>n^@{@qOOhX1Ir-xGO7LYNC3`d-0Vkg|_s`5<t%0!|F+ zSKdE*)a-b&!Ksi$F&LS><rX7^d!0udxaLnsYGLe)qkj56MPKp}c4v5t1^2|EupKKh zIz^!*pA_9CaWs04(RG5;KRWxPryE_<N)H&FUq!@@!)HbFIt~YnL>YWW*Jaob^?Ez| zV=sr}PgV(WddmyQTBKPZ5R?<HqWDIaKbQ-+zGA){5RIA>1i|NUi=u2nEC{?&TvF}0 zAd{sCqx?Z$#fI~iJzNhXpEx>BbTFl!_w%iuBl%&wq9trU(m}!rq#-%z+D&7d*b&!r zO1T@sDPQohE3rZ98OV9>jh;7hjGc##oqOs{`>xv&YV15Ps}G(>ZiNTe)NQzyjodVO z)-Q;XgdD$#q~TB8Dg8~-&&HKrJA$=OyrLi{{aH+^9q*rIB=!U6xomnfW*ny|aY&2e zOm6@nCbINj-^0m+*(;<S%-zX1dmrOp`s?5#Cc^Egdr$fq(1|G)%~YN&bMeeMEd7JO za#qD0YfY#GaXjtk-Vp6*Mf`nkWeZn`rIuKuzHW$<Y%Hk<z*Y<a?M9+SB!<;p`Y!M) z=}!MeO~czUk$BRJkb1}aSjV0P!cGk4Z=<V)aSoGyjW@}JpS8lmeo+MAVCEUzI71RA zW3~bh<}J*_y_mNeASS1+za3)iySou+VRbCHB=2`-=FIuIk$4_t5$}iLGHl;4X&G@E z*s!otD#rCm{Lrq3hl*1R`%3z8rXF32ExWnVc$6Wt(w+VGGe+Xy7zHD8r0fQ8SpQG- zmJPR|Bjg)h`{U{2`1^Tlo=h$Le#iS0*4&g@xD!`n0~<tY;l7gop&y$b18Y$4&`(tP zi%vbyADK05be;nVt*>y-evE%gHmuD16gda>DI`<XC*?<coX1<KPLZ2*6H2(GKm8?H z{rMHiN7#4MU&6Yp<8YqQc^*R8K|8sI?l^pm(RsSK!6J30xS48n9)}w~A($e73ys9L zQLSQhFWHxV35~CQQ~Ypl^z``Q2}U9~+I-j{(@&u0&^}mY>6b+<il)WkHoXOYQI|X) z!pN0x9=$9dO|L!uGg9J=%S!n+iE*7zzO3AJ9IVrg2*i+_HjoL??y<&j24|VO%h291 z60lu_lTUJa#6>Mzw@5AAD;7|Y$dm3u8H)K^9K?wuxp&oRT!9rA%TKh24^8`dt9K$e zc%nE9dAtfdJ<)5}ebj0*da{+AS;&JUKM#)7qw7v4gQW@%$$lpSNtGc;fAMW6{p9+s zAp7X!@pEyo#5OQ=t32n5k3(n2DNmYDD&+cmJ2n`e^i=?$8=|d2XlM4!3y0=I<?to6 zWweA!aziwkbaq=kRd*Iyb?vh}r<<WgbL*~bTus6dwYV;>yE4`UC7^Sgn`%9Cn`joP zrL8*F?uqi<4aIXgG%YtauU6irc(sEuq5QM;TF;_Z=n17F<t4F}7O7QuSvWKo`db+R zdMy_TUBsUGp}E&ap@?#UydrQOb?ADaaZ|9rq#24gp|&&D)Fg5-zxwLNrfbFRWp#~L zHbgz)XmwL#jk)?t=#6b`gWAx#+RDagO@n6{)Oxp4Cnz+ZHbyCH23gwBSaa2C=sfn! zUm_&0tVV%}I~Ieufu7RVQ9+kT0f{;iLL=u~DtD&BRI|0U`dZKY=GK}zmfF&W*1EO^ z79Ui$HeXeDSz~RK@-#w8b2#Kd%<ytgq<Zz0vFa=97PK})n`aBO*RE}DWr4@)gmzHp zuA#9$D(>dTuDed$EUyMdn`aSpleUr=c@Sly-)n(OqP5m#kfV0_Wu6Mua$R*a1|_RY zqIFj<SzX;?W$u=b%8$F%(YaKEIzObcwmMqjXyYz#Z-ItY6z6;>nQd<MwAYuOdzPbY z^emwq7<Cw62?k1_i@Yt`R@2(p5<ROPES+!-6l#D$kEVP2X_ZUPGO5k@tS`<k4lJ%~ zgQD!3y0Z{UX*^ym=jg=r?%c|Mc2PQZ(2sZRlB`OSaz*q1n&V1GcYfV7&OPT?<w*N+ z^m<8g+lckT-*vL+1r673AID#(5Bvl4x;#ao|2TPc`i-BEKUbU|C%?`=0QyfNPvIw| zFZvjHShsq4!uxmSchfVke=omodbWp8LjQ5?!OcJL5AfH^zvv&JM-gURG46DKCP3a$ z9-Tkm#nt^EM?dFd=*i2?&+XUKpsZuU0sKAr-Sm7V@{`a9LHzgX*Ug{f<KJulZh9{B zJ_-E*^8a!4tTW{Xar1HV>-57PL(jCwlt27`PaZct{hx$>?<bU}?;oJo({K3)==J=z ze?s|h_y_3q`r&g|rpIsWbR1scD7%gq!B2V~2lEk(+qvoaZlL1NIBw^rUjYKepG#)9 zbJKT#fb?wV<2g6|IuLyl`h$|5amI6Q{u@C=T9#|)I1$|R|Dn+*ve4^!TMruD?~cN` z2xqHfoL+xp0^lM2c=h6@Q~v*LdX>)qZ?6mH&HHkoC{(wqv3hl2&g}DMpL5onS<Vgf zJVR#Od);D>w>{r`^3+NGO{j3r<1=O0CA`*6%a7+Y?53UWe0WP`81LzLjflI^Zvu!_ zNldk8Vo`~mD6hoWj_DRT7s2m)@?L(1Ah4|xo2}73CGS=LB|r8fI@Q*gpFasi>K28` zblRZLxn!E3dEr?R-5+>`ZR6W>%BK~ia_7RZy3d?ew0?pKyVVnO`@GYNV7Gkkv;xr3 zXgTv7l5y{3XA^dj5q>-4rhIcV_LYUrYGEV#@*LQE20!oxO@`M(%3p-vos!>a<mcE% zrcLC_rVSU+?sHCsw2e&KZb{qB>lN#B<FM#lc^hn#|9lVX>f$N6GriONyZ8J&fZ#t# z+AiFKukW^;2n;so(pL9erp<E8mldVTjcuS%VjNo?JMqnkVhKC(EZ2|>FBuJIGZAg5 zN`}qKgk34Z$oB>rwmcKIU|Ik&<(n`F4ovC6tDs<_Tw(uQmaDKgjWS$6QI_kb3Ar^B z#w}N2N4pR#{v^|TiRq2nGtV)RoA8tsB2WMKwx%`H)207AW~ToU8`GlCBAcuqVKbC@ zhGS9EeGWh3RrJ8AHPX4bC*C4ZXKvx`e2I6^1E>1#H*in-Ed=3I|82uP@nL~_@WqYe zY>6XCIMt8uk~oiG=~Q3-A@0d1C~?&;Ni&}9<{n93De1pXLbzw~BcH7j7yTUAZzR4& z7J%r(z&KWjblH&ML|^0$;uCL~N)PmMN`A*nd_ZPY^f82=E^%d>M9ELxl3vW59TKP% z+?=sQ$T`gcM4!WLz2q}2anaX+ua$T)KN5oz{S4QH#H%DO`k0_#xw%giJf1rweYd0+ zeGc^Z0;ik<GVUh12;=E5<;)K_0isVyn%s}92%wum^5HiJbh21IzgGMu&M}Q{SmH|O z1lzH4pWHU96k0Km*H2=zbppl?)pv9@$7R7!&4Qni1uxBlQ+Mci>0XirugQYb*7kUO zHfF)^&VoOf1>che@5_R}ng!2AKO9faW3u2gv*2IMg3r%_FU^A2WWle?g5Qz_r!Io= z^2KpyJp9L5a6UjAkN%k~_#c5!*ZO0hY`h~`=nbqn#^a9@X_}OT<v8cG7gol^aWAd6 zY4$nc8)Khy)bAK5g#Sv|oEkmzl{Wu?!@wMacrYw2&AC8W-fXS*FhSA@Ta5Bv84{IV zl6=&VC_v40CP_xk0>VdAdyZK^k%S<1VbVe+1(c>JB~rVxTAcVR*~HTpvUgZzOczpw zzh~dkAs=JFQANoVpJvWc<$-nq9W#q_1P90dC2Zf}0RpTK>SVe=EOBu{PYPwOEo0_S z!x%1(=I4*G$|nujDSLfx!*-6vJ82LOG4bq!cKbe=^}Nw|v`}XX>vaEjrrkzu$tgat zllG4qd6QNMWzLmpK$=Z+>UgEg+Ff?5eRv3^nQCL^G;g_XvJX$tXzfie3C;2$%J=H# zHFY%q7Hw|&dv*X9wbZSysJpru&*R3_qh_v7Jke7f_<v?8?pn;-bezuR5=r>iNgTtz zSbO62JK=l;;CT5wehNQ13qCIk{`D+4=RG=JbpGGUg5Q?~e>w~PyDT{8F**k8>3%v3 zeqI*5ItzY%7W@hxn83NywKbe;ELF}w%z}4i!M`Y%j^xj^rsDHe4gZ3M|Fedlq2Ui} z_?a5sJ_#N;@;?hd#ea{6>*>Cy;oM6o`V-{>)6J(yE(N*2V3SnqenYN5Nw1erVHW%r z4L@5;_gflXtl<x8IM?n<&R=K2FOVA`%EM<8ivE%;_(~1`qDFs@hVxm4;?u3+dVXKX zf|tq8?3QO?7ThQIL8SkZmhSW{cu5v~ZWerL7Q8+S-kt>y%l#DP<la}6&%aBY)$?im z)IRM|4cEuFeHx$7X?#XBoaao6|M_x}#dOOwT<yDv>;2*zlAiLYy*F+>Z5p4m;8*<b z)o`7EPZs=l8vbRCk2RgCjE?70MU>}8iBrxq@KfpDrQzpmxFvP*P=1!%srb?Tiwjr$ zf8xSfrgXvMoU7u)GNOCVg{vLkpoX&^2S^NeiahwF{M=(J`G+<9D;j>W6pZwGIaf<u z$)obMO{2e1<I}I<I{)8kxL%&;9goOxOjjTGCY~T*f$Qz|{w(+(G+gJOD>v5UueY}~ z8m{N}B@Nfp&5@1LE$3_v*VDa3!}a#oe9~yXK95^fFW=3A@5_S!J_~-%$qxT1xUe0v zZs_inxT?qb4(xf-g<mZ3X>3ez%<o0`DLHp)xL#j>(Qv&SZa;-w96owKeNw}}jBv&O z84cIzld|Dao}fnmzJ{9`UJ-x?j`X@bn*&5g`}?Ji*YocI=Z5ri@l*12OI($kLj@Zf z5_i+zqm75>X?*1HBj#k*%Vm;LvAlAw=C4ZnIhN8Xyv6Z)g7T_xb?#Q>!t(<T(BQ(= z`Jm#b_^5NVb{D-mck6KB>ilt|8<+k~8Xl7OylmF+at+_2;gl)pcYtmeuFeMsG@RwB z#>0F@hU10!*Xe-^y6`3k_O!TgmH#a+{1!>y=fZE5xM*m&XE4*fOX9_BAaDx5+wpp; zT=;)Ve3J`*P~zP#{4t3SyYSr-56JbiO837dUg^U7CEnq}UzYe*7yg>W2VD4@63@r^ z3Y|*#eaGtwx^VHPDZ*M@INw*I+v38{ka(X9KS$!?!7JjabT5#2v0UdXyj<c{E_{i^ zb)CnoM`a7C+eKd|>4#l7&#UPI6P+u)<a4XUm2OCde@EgSF8c3Fe5(upk;DgF_(KxU zm-_{JneG!354v#bm!ea;9u>W6-&<VtzmoKQF8o!As{?Pv=WU4>%YLlzze&8xg-@03 zc#{i1R^r_*yg=f^F8s3+S2|u*x@SqeQVtXfKTqNvF5Hy(Ru{fd;@uifUh28XfQGaD z7fbqK4JW;NzLL+01y0GM_W1z~XP9zoov!Gwmi#wr^i20AiEnb@w#4}zFCF=C>Q>J! zwrDu{{F|g#iklSufTY{%qW>>Rzg@%0Up?ng>5vb99r)2HehS|rP`uBs@nP7o#1%h9 zFPI^$V2VSa@M7M;1zdPg;ZCp^z9l3O^<0YCAzmrz)K%eC60en4g||q*noktoA@SQ> z^joA~T@}5`@53&7mEXNCT;=!IE?nhT@l*UOWu~XftHQTRKi`L=Q}`A+?r(PCYQBET zg{yWx?7~%lnL)-nf4P1ta^YJgZn<!^9;kKUnRSZ`SL>WDE?hkqRP!l=DY9BeQO5rp z7eHk4lf!m~RZ!l&5y(K|CV#9~=xgTG7j)s9zv2L;vY)V+n2sD4#q)7ed`{xB`UnYk z=4t9~>{U*)8SqTpk>~$3ehK1Iu5<9yol2k2-E>D<I&}@odw2YS&yvdH35fsEKb3zK ze<^}^?@9(Qe>ic9<oKXC1k{bZF2Z%Z^6y*V5Nww7BFmq*D*XZ{*mDK0OutzA)uo7s zYj7MRb*JQ3*E$5Md!4Ra#@8|4yJ@eJm^=TLjGynSSS7#W8^g_b`EOvsz^VSq{Ie)k ze3k#{z+6cH@px9q3hflW(LcBR^t)vz^?;1ONp>s)7~8r#eNMmQrQgC$Cfw(lInBA# zZ>eupYFw$H_2YH9e({|1&JmRVxGvWswJC%gK_N@fV_+3$B_}1fa^QoGQGVPOKjO95 z;zRcZfi<5`R_2%Gx1A+ERvS9j`9?K~Pw?a2`R7~tZ8Pv;GCtIPlX^@ux@ESra5TTw zyCA^idKZY=+8s(RD!?avQ<Uz9RHZjmw!h5`*?S|&1%X+82L`=;_<)<A4JN1h%l;fa ztLztRe^s{2w0qi49ur(P#~;ma-64Wn|0tBJ2Kk{km0@P&NlptTR~E#3yyf;wNH<rc z*WYG^?7m2Hkxb9DyTkZIZb8!LHOux!KNBkJS^FaS?rJ;LNpdVj?6*+=a3+`z{UlWO zQrpRieha*!$ED^{v869Lb-F!G>UJ&JSJDj+#2OkAIvSu~1G-CU3kUgKXp^JrZa8dz zK%E=ZVg>b>*EQgyx##d*9v4Zdm@h|9bLmy$hkH=S6op=l_*13S@fuDw6?(V&t+Kza zeGXsUpIK<`U~?@$?JcwCO&>IDyl8q~n3r05mdEnGVU@ku`cq9S6WeFVP7jLY>^=C1 za4IsG1fN6D<pteh4GU8<x}bw>h0)oHM^9AMb#W@xlv}?EpI7G?J1UMCUCWN*<Ndt- z#?F5GczkN>v+%+F@5w5C5u&L2HZKd?@0rUZskIY?Mq0~$0iOgyyHwdBE182l&!iB> zx<a%?s1Ui*m;Cld08qyQUvqAGYQ~Jv`FC-JV{G6$-AX>P37(zoQ|5L69`jL=ozvbn zA7fh#b{zGdxUc-Q!FW%e*)igc|LSP@X=$_Ledq2Cv*R%D%=jPk&5jSnt?|Im!`@#& zFOaeBZtyLq3eIbAWA~ZR9)M3PefYF8Vo$)$o=9rW-t-=%BflMllqVZq7vo#swj8tP z5B^ZzugW{SjcxmEztQ<9>AFq<%{M@BNe;rzyqBRAq1@Q^a>!ocGrCIb77*Si2(R%P zU0=<Kq`nF~oZItSKIrp)oA--yd`8<c!|41Gs8F+0@Vnd_PPOHt!Y<G0`Msd~l}Pzb zsLF6YyGEj?7+sej-ESztD3vu6-5I5i4`*)&yI|*0BT>rw>Y4(%kqa*bPb>gJ1`yf{ zaWzpB%LMUPA?h_0HCM<835{)sC}iStghRlS@w=EpGSe)RH%00NMxsVAm<GALnluT~ z&b-f~0nH5AKVlo8GBHhkiZdRG@x~RxerCpZ<wlYTwhcD)nN*swqljFf2g5!<?H5w% z8Wk`JI*}9<V))Vae;TqyBTL@Jl+$<Pqgf|C>c<&o$7NrIwgN|ebaETN)evgJppC@& zsMSh7#04-E(=v<>A@BvIuQxtN-VKVt-nd#X_r@a`8ns47#1#_U6R+YOzlVi76etEo z_NnK&gKRQto*^C-HXk)QZvnAXfEIC7xIy=`A3Y_KY=F{{1uPUuxj?KQpytMrCizf4 zNuWEbH%?+Y6~cb!gpfuL;WX-mkVX&T9PWgWhORgMfy@w+P)qpUxO&l6CAK0Hku02u zfy^C;2|7hx3O|cV!bq_<Zb=XDN*8&9L(W)qz42m23x(Jxi19i(8%!Mb917oxy$OwP z&@ZW}WoE6mWLQ+mJ10)>ydXKFiu_L7b?Y)mHHD$iSgJrz?JP#2>?lQ);Gte`B<YXU z;U*`x7XLmYkwSp|=aTN8bZ+p_9v`%=MJM-)<sp<A_yFZZ^Xdt}n-hP{3%%o$pipKb z+m5-XLo}R-{j87;6A+}5^Heysy~LrR0G?pic}zBHk1~5JM~KjQBl_#;{OTkgf6K@8 z)71>4%gn#*F9Yl^gBa;K?+sJgjhN^n$uCeN0<{1AEo}c~M*zvHIS;y|oZ_>4oXN;Y zyoz89N4{{`UyOB!;K6v5Yl^i=Xrt*jc3h7kXh}}b>;AmM&`nrxUpg87+>Mv!S!X;+ zW}#$-KjMAX3_yR+wfT-ph+cCl7j8TG7k?!uIuTk0>}#iDtm-rE_d~`5`@`NpSCswS zSl0;(4&<H3p?EmFCH{jvjjnk<{9QZ&%72Xq4x2p#`Ih%cdEVZTZ5AM4qS3Y7OVrHk z0|fnlcO67LtCxk00RbwGQUr{yOa0!v_7X#n#<&7)Km5)elYEn$<kk4|3spE`=o@<0 z!I2Z57VhL<x`acjGagVlN;r=a;<{v_5cBtb%80N@X3s1BjMxV-5$%)G8(kMtcu}B6 z*G)M_*P2{thNk}r2KT&o>`P~+&lD+zn3arNV$P@11hw8l)k8M`H3vG1I-%+Kx)#Lv z(6!2e4uFqpkCgd93lWVaJnK(kC`xs7y<jYdrqULtiNv5)@)dMYr{N^$wane)3s5!M z)S(}bwnwTwe8z+ZpjVeIfr>Yb;fa@3t1~)pLg}UEK`#VE`=!0B;|4rgG&(zgiiQRS zW}f(9;DVLL2DXPtsvJ7~hmIHX4KzH5vC0dj!UI@btXx|UPuaoN*P&7Ja?GMacp(}T ziAsTwv+S23uo_>?J-(Uft93$Vj_Gp15V{NO-B8kTS2tQ<SD%q+L+K9vi0L9DL;tPy zx1Eqn*L}(U2fY{2wan5VVCNegRk@7(TUha{=Gbfc89n~uQ7Y-a1-D>-{x%MvYcH1V z4>KOTHgs`9=_D4rR`UBCMI*@vx<PMjJ2OA&D@KFQdzwl$k3IjYg4PM=Uo~^haw~Z< zkl0&b8G?f3ahf?7v{2YeHN9~tY!&&2)dp}!+eNgpJ!_vX+hwe8XYL<Y^0Yx$AC!?q z<a|!u$WO)YHoDrN73gi_fwrll)E#&|n*8<tP_k`m$aa)xuuJ4YRhm#x0`*phDw5?v zYOwT|pLPI?h8&Z6B0G?^kbM~8FGjq(umUnV|IFNWp;uhzjikQj>v=uDXP_W&1pZv3 zYjIBA2>MlCU)iA1$;UNqW<_dVP8dpxFm_ZJq1{7N4~~A5g@s@w2D6c}!RYdcF?W|) zcBt)?18>>yI1<F39*vsA@*Wv_0fI%Z!QjPJVWqbswZg{^3$gkL<T{reDOl`Oh!Xw0 zY3w)-q4T@~-fZk#GTGZ_ZH7)OHO{0fprr&PxkIlYNn{q8UhHL(ed(E~3It^m6q57} z{W~(p9>Q?}`yIBw0SxnE-@_&dbx+Wu>uh+6p!f}a(n>zC1@ttX!T082y8}H38mRB5 z2SzpCjMf_4ZY)SXM4;#OiB^qMfdEf(Kq!IHaA+rt`YP-gHRwluVcS<oC9S%S5e}_T zQyYc)G^{M;Jh+|58&I5w|Dh+auj;ta6Rimu+ZL@dwp~_L(!HeI*x6H`=r>c=(VM2h zR!4gTJD$15&QRr%vYwl&tmMjuNX@}W&4Dl!3Ww1_!rqs|-j~A3lfq>uM*}j(E-FQv zYflZ<+m}^czGotBoQU=iPJYcFF1y?xd(n)iy-4LqeaK$4DpQ_idvAII<QZMDi9=Q| zItY{*@{l6tSA4Mai@qCw%j@*swn0Zntg!iE)y#*^^Bl2Z#)AKlm`7q0o&Lu98eQKS zI~Sc~>|C%4b2k(&q6WP^R?R+WAoE&f2iDHBcUj2_RB@l9V1|mjq1vnhgjCo!uVs%f z-&-G_w+f@AvrrXFR<2ev`GHPg)Tgt4!@B#Rv2)%keY{>~+0RIQxc<Sjp|d9W5SvHx z4mN|b7o%7K-w1U_M`IUS@f-b~n87s-bnt#%mZwALL?Wp(JJ>L0GL}x^o}q1H*DuKv zMEOLpw~v(VX@ly;6S&_tx+cTUOGPBLFgH^6i`I+TB_iJa*jcv)hUSjWH&$vcba3uz zJ;~@g*7EM+&U-2<HugHV|0ht_@-D%jo`}5*(+P&>T|?iE*!zd>l)7~=e!mMnzcBWq zhH-gbfVC9#=0i7*7}lXLe=mv>byXpCQghJjjb0Gq`to~)n;8g|PFrxLy8L^^_5Q-G z;`(qQnm+I+3cGQIwo3AX?q;YA&8U9@x7dTI*dP?SU6MMp80yJNJ;ug%R7DsYry?r4 zq8dZ-fCJ|i7EW8Jw{;!A@WDu1Oa+Qoc_$P^`hb{N!5WEUojd6A3}6|CC^;g^ACNqv ztbj&R!~v-n>Uy!dp+X}Ir3%JR8|$8QsE!pWi+LDxt8ZTF%##qh;Reu$0r*4qOIW<8 zX7q)@EZ^wdfi6?hUvjAA=+Jzp-(l(O<*;u>ms_c8A;O2PwH8X(3K=`RM%T4m#9=ev zYwSE~)jWFuN>QiwQDY&s(sJ#8XxF6J<5Zyu*)D->&$OOybV2_RIFfbjKO-sATT%9O z>olV)FT!&2K0EYC{U&p#pT#YUIDIMAlL;F^PC2yx4rNg3H6Q0;j#GN4J!kg3;Y(Am z6wiHF?&U}qXLeA_mnnSY6AQ?bWDT@##u&}$!Ore$Z!;geh{cBSH{U#M*S*-^ufdK1 z<pg!BOR?Sd_LcP+8$N>pg@qRY1{H6wOhEH3r;^n!ZZE_vom$}30`*`)&)Lw;R;mR> z_g7;b^<Y`lA`5#jMpsa*B1epE-S*s>m^|$VMNQAo6?OPN@+^cmc3`=D31=3bB<;n0 zPTpR7Zh?uVlnLF01<=^GD^SiQz&Rh0;USh>mmwI5A<^qO)B}BDe~!+!QVX1v{z;{T zN?n9ny%{GVzelY;i(2h@-G?c~vcG(&Ct&r?MXh)}jM~n&V60mzqGD-+sIcA;M0;S& zy_>083$x{140<DCA932VJaRHR`Be<=(5~0uuH<OXTiB50Vzp&-t^*K1f{-6E<j|p> zpnYAw-HOu^YEeZYqF7Og12}a+y`juRQKokxu)O5u^xJrW$c(>+db`+%I>O0cvAHJ% z^9<~JD^RuKrqa3TEbQP7oCWpI8=YHMFIp=SI!AOOd${K<AFNcwk4!SU_8RL?g@~rG zW(~ETDJVo7s$@UI$wK0{WXe8cr7nfU=;yNqqdaqKu4t=PG9Mc%%f7R)Ly%Tt)a`~L zD6HD=6rvdM5%e8<fBco)_+b>xFF<C*IZ#E&H>~)+h#cc^E6*7VjIIM_*>lGFZlG-c z{)NdI`z<@)-Vb$xiq#O9v^9=p^G_dT({HT5R<g-=*i`z>_=wNwJPA#>C+$nKagUDY zP&yo~p+d9{@JE_Mw>sm8P)7U!F@&*{p>)<i^oY>EW?`1dsVIBKST_wxMK~s)6=8e2 zShk}57S<48mi{u+a{52=#dsJq5bs4ye3r4}SP|FC&7_`otSn$1DTc*NI`>eyTh??c z{pk~t&^YO=cBi9qk{%Qdb3Qr)M%@J@<8T9Ql}6WmuhU)Gy9?5bSjNzr*9J9msb!NY zIQ;Si?t+X?+7Ol){`e~+9E$A&_O3yc7Ix=QrW^)Otj=c?Qm-!bucD2;0ybz0`6hDX zOV5EXlCqq_?4buRyJUgU)s6-0Ugya5cj(XQ+gR36N-GNRF3=h~N(DK{(#=kw!>D~M zqn1%dzcqFqN`GBv6cLPyGmL@=wBI>e_yRLwmi@P}{tKWGt<vb~wvscjL{cU@Xj=(6 zT%kHd{Ky1jJ*P%f7+0ylC|)EM14iNidL2kFpdQCcBq53?{Q^~y@+&saqqk4NHt(AV zG0XNF>$?!38fBQp#k5hrl~&T%Bhz%G7`jz5I0H}9(zD25J0$R=Pr<DPqbL@1+){I} zsHMRVq2W)gA}CCzW{l1aXaVW@NHyM_>r7$sfe+#%L68*~8_q%iD?T79-tG}+J1`KW zX(X1l9UxCp(eFcPC)#|039)CUH-f{_!oP|_HM;PegEp%iWzwU<QClM8JF=n0q@O`6 z6_h+9C?34%FVZWTSb7^mMImF;o#8^OYA1kBjG$iA*g1a{{+6GV$*gymNsYZV{X#)8 zCLgi)Ct(!{3q<(T(eSkm*brrr_;w^D+BUhTPZoU&bBZi-$I8>K$kmu4m)5KfLh+}G zx-CGH&re^1;u2>PV)=|rWHKc3n&{5RZzLYVsGPnM1u9yRT5E_>|2+~jQBwt>S;J^+ zw;zB%T=Qal5C;~a91PtD@FZ>mmiH65lo4x;qRhAvpr%t`zYW7yP5{Rk*e8ASBv^|I zC4)0jHqTJfq*X9@p2`x`o8p#xu7V0!`~m|kQ^Lt}jh%B(I)kb$Z#lww*XZOqC#RM` z*x31kIA+MbGyv0tUxQ@OUMcn)5HO!@JAdey(eW9~!fKfxu2}=+)-d_t9i}E_XrpzO z|G;Mu!!Ce^2_xq>73RnGSX^O1A{ei*%8*whQGg;#??jbxopsAiej!?-4ycg30-|w) z7s*{r(RPaDYA%^k(hqtp4a44Z!rp~QVpo3IuGm{c|Hd}sG%meO<yvLC)>b2*%VA^) zrr5BZ3g<3wVHU%=^PMeKgo6h6R1q5Ap%(NAtg#6-=n>i_pdR!{VLNV$_T*q^w`Z<5 zXV2UmFH9=UUzMAF5WN)}Ee;%izopph*4H3|nf=-5`H}tH=n2x3+-z#cNVojyUINK0 zp_Cu>^I`ls7$bW%I@vt`dqN$4YpFfR9bh~6A02}9hhmnDz`sfO9bNm}e{6vt`ww#5 zz3EU-UfBM#Y5&6LEW=X4d~c5@2t~7EvwI(H_Jm=jfhSTX=3O3LhoQW-8&RRVR2+Ku zif22t&PCn6`w>FT!M%yS;x2jB)KKzzoD|`}hXW=W6q@BA!&t{CXn4b^C&?N18W2xC zkb#!<!Ikf@tJ+U<m4Ve5+Y7Z)gBHs(Y$qxU!nQortqkC{Pq3{l!tFulwiveq;x-6_ zNC_q!A2?#~itqPTB=$ikGLh&E)Z?`$ov?Q5F=E@~(1mO6EaWEG#Qef7G4wQxB_FO0 zhy*(b*ZazL!JI)2wu$O=Oh}4jQ}a+~VILx4&Bd?$pg$PRX#|}GmJM(kb7KoSM>{x) z)g-P}<QR)VjweMCRwS<pR3xv3smQyTshcjs@thnN&c~L~gw0P`h}WZBbCptUoYwl$ z3#2;c-B=0^-24nv&1mCJ-q?Vo;diuf<GumKzZYo;vt5!Yy9vggD%Q~oYt~+9pALew zm>}XWvtTj{{?c@U3sUZ<*gOKvY4SGFJSx!8*lfaRfJL}+WAl9w^BjNM`~n=;ejCqs zm%iW`I@ZZo{AmmeFBqNIfv61jF5ZF~>T6Cai}_-&(lo05ti8+L16ytA04MgxU(1Q_ znt-)_GFA|O>1cew7sr$5myU*WA1-W1YGN>Da~rLhM7Pu4F!IRel#i6`7s1(hAU0EE zJkiZ=uEK{gW7`L<<fXx6Y$k^b_Rk_Kd94-kjxdGdP!gjvmT5vjnDycl1+fMyEw_J# zM)nHK(?H)lPP)ra?B-c#yn6!VhhUZ&KPbfpg9v?C)P?M)hXOeH$eaO+2magkn`Jl< z<$2%QFWY-UWiPH-W~O}S92m5B;l#8r;(Y}cfxlptJ=^+~^3J2N9S#TY5UTCQ%5bv0 zA-#cxx@XNPsj0<y>Eb}z-k*u+L&V-zpS^czw|F4J5`Z0w2#u6IJ6e3A%+kNX_ywyR z7KS2G6p9o_2i(ROT|DZ%3Xh@ZiBr%QjBRg%JmN7D-$FR_Ph+>;&XZ6x@0WNKf<^AL zqN+yI!9k=}2c1nwkc}?L_T}`(Cq!?wYFd0{hpn1D(NEJxU9W7o*nvA;ko9QQwBpT- zZPym4$Y`=HA}MFG#iJGx&BTx<1|Sg$^$}p!y-p7q+a`XE#itP3c?_ZlMmX0RiN{ER zHe)4C?Auy#kT-0s`x#au$a;>LB0{I_33hOI8bg`jF4yS%thjp%qs8ZNq!LM8mlG)) zG1gs&Xhv77*M0{N1G*3Ug55`a5o5<o*s2^dy9aYZY-70{w9~?O>pKpE6_w9+pp$ie z2MEq!j*{?6@b`pHdpg+hA!t+RA-DrEpVtOE-ekJCvtJ-B7A9ZvSYN?dd$aLRBWO6L z{p9x$J+)wx4I8gG8SeSxL~~E#L137RZY;Lm`(4<+y0m8`*E)a=!*8HAehb171na1O zoET1C8w~dx&H+u(cwm=h{}nTK!26;Ii@(wh+yZR_j>DmV{wc)7EWkOdE!wyWPY&$6 zxL>WXmsP59vfRGA8<42P&_=N|QsXaY3(<a1+6+LAV&XW5xu7kn5Qb#f4k1I<54t2y zT-b$+O#3<G_I}`I@-F6<mPK~s8nR!+lyk2LcybFa#slw^cfK5hIXyn_d*GMv{jQ>> zKjQ7<yDu2MP>ja9eoh-5BRNK5JI0W(-D5w8a|Khp&u>1~0WLVrF&%C0HAnFZP_%%$ z+Kbjq$0qz#GyWGCbnf-S+DUY<+<v+|?*+UfQ*M+$Z60_dKIDzoL+IEs<r}@`gB@YM zdIe^{X;nJ$vT6L=(>Rxo{RD4lbVPGOh4w0%d0MP+jjl7$J-z8#NQOef=~1N@=Pfv? z!4nqIG0nW*bPYlgHIkZIO4+*|sj;&gx+|P&Mx!1y*8LiNv)tHmLKqc?m?(zyV<>2Z zW66c^CuBHEegQV(d{Tmbk0GmT0UE>GxMdU$O^AX+Ttwme2oFpqp%^Yh+j`rHfrVgy zdL`)4F(!$QQ4KomO1}olTlt7+LeFb>$odC71%4MuE;=^vcC`9%1~9Rr=4HIwlXoQV zMXTme`YGfLd?pA!CxQ>i_}~^#U3OfDmw-gfu2wv7@*~}s^N!%`;86N@#=<yM1oIzg zD(0iCM4V?;%o@SLWv*E^Y#Nsgqo6Q~oAzH|HgXaSZ+zXf|B4r%CY6`{DdtC>P7u|~ z8hyq*w5x+vTJG&P52RUr(Gy@hCU#6{qsRPN2hMR=t*FSMZ9woQ)cHu372%|8?;iSt z8Sm*ZI#1!yveA=19#^z9(|*3Z<PZoSM;r8*k5f*{q&K#+@u;(NHo~1oSBM%p)p?zb z@}Vqto2UI2?X_pbR}MQN2ha}jIQu1s<AEU)?~pilEzsQ94yT(B$#&RpV*eo8VYh0B zx0~_Z5R*q>piDPA)$O#Pf59#k#R7Y?hr8eK89NT+2DKi4#YoRb&19NIE9fBPMfizk zkuE|gDiMzcFiI{(C`QGvc`+=u=A{3?^MO<|-j73rDs^I>fS5OnCvd+cj~pa=b1vo| z+2D<BzeKX>e#C@~Z1kcS`<>$Bc}5|I!*Y9A6hZoR4$Io}w?6UU01pvH7w{#A#;o4O zfFtzui=K!=g$<i4u*JXw8(4R%rL8BmaDTXPBkGI`bq<19s53GiiE#dhKXu0lE_i^3 z`;2=3*w2#Uy(gSc1{s1QUT=IRYWSANNnN~ne&u$IOrDq>fBXYneQP`7k8`bC1_Niv z+AWV`SLm613<fXpzF6|1sql~T#|RlR5@Aqsl^9Y1#<o86i4e^_&{_sYDJ6hqA7^Yl z5m-gd2ja<Dr0lS9yB|P?btrjX5Q)eFaZ+H(W=r9}5oVS>zjdM!@5b%C)SMqGIfQKw z2zakMIyTG$O2VW&5RZmbSTlJW+n%!TXn;uei*~&BqxtWA3@;)(F(7RaW@8Wwx!45K zNV2ZfN{M%tv{#oPUnu#|ZGx3}gDGPFU^9Fn`@SuVBwwab;-@*p@p+K*a*l%g0b6)# zeo1O(v6ZrL1Rw7}WrlGWw(fM!H(kXX#4&W`y<=?ax9|8NcpF_U7#J%#ph=W_7@!yu zD>+<Blxr$uM++VdR8A78b5wfARtLvXd}W@F^DqnaI9#oqqT}5TJ{9;eI=+{9SLL*g zOAF71Rd?aTZTuA<kn>`vAw$zePA(S=Dh<p<oQLxIHrw&%f#K-xT(tT)%Z)R2fw6G~ zRyJ13#50H8#=6e}$B^a48$Ot1@Mwc`SRZ^jxWK5V(U}A}-mgW0J;yC*z*zS-x`0?E zaDRh6<V#^2*1&gL@iYeBUD)RHi~^*kurvwdAx7tgU{TMlOXqu7NkwM8YjpkxpO9eJ zoodHOa|5|<0^%%jTX4G5!WFQY_ad6rFXHd#8tbn?FxI?>!ezfTHq^qiFx7M}-s{!s z35n&zQh26Rh^-KwDebUu{99@8_;<gMmoNWb8U&65$ja$191~*Yu_(UdWbv6+dNDej zbKZ@P8S*pRnK!@G8(?v6nAoh*aM`ZtMAJhHzYODSGRZeYV7%E6L#p{GZ4aKbCH7&f z8Hk<@>&)EcC9j*x!(>)A9#dgQ=RrB<CtIh|<{XV#V>&C_8+#*pUjWqNgq6k(N4Qo7 zQzlu`pNzA4*uC-BeK9=9*pG+kOY-kUnTt0p<NE{jW34p7ieH?clT22D6`m0bFP7W! zeE4CQ2Z9wDoqTZ-SOG4{JJ|HCWRh(cZ;evQ-g%`=6p07LRhWK`v(eYvcX0f@<rP{d zfw^TI?_P`(pocmDf;EP0<b`Ap-3p}MPV!x81hl7oi%0D)!QxVARyQ7(fJ48DL(SXv z3F<re5-=_EdBKB4)(wABH1v8~SnD>n#YtmqOHvHMvE<NB+#(Se6{<%?UXcsq=%K=I zc=<lxikimNF~t2gDD1uOz0tVOMntT)-+QSiJp;M9lTlMRtA?!K!F|cTLHwgsMEPM` z&e@ek8ca9fuB^xCT!w+osVZ><D$L!ZLU4GqBtOkf35-SA4^hl?F^BX!*h2UYLXwRE z@0FaCIp0cN<HH6hg44gAd~~4L+cKN!8HmWT1QVWO2TS^~Xo0=B000;dE)_yzh(^%{ z(K>^iWcK1vHdVoBJW`PFh+nWbY59_PQNO#W-kw}<x8e=$i9N4Pv}{^7q&36Vd_LE- z%0^-@Bp(-T?5a{Uvh)qe33&O*3ymiIbB@2MYw$$lT_gSsQ1P&UGgJC$tp8Hie85hK z4gM?KMB;1#kH#YQ%)-G*zY^zEAmoN4pF2T+1n<Haod?i?($gun6S-(eJTAb-1OpK* z_f_CQ+q#wDE{;60MZ{P(JTEol+>rfHF+_-X`!Q}A>n;$>)<|Ipr9=yfJv%TYp;x}1 zkwR=^M5$rR9YT)crHr4ECE*1NM8!dWVCY0+NAxm`nUTwKI9mVN*tyT1ijNI;;RB5q z*S^Ah7KKy3g^^T?pT!{-^BCM%RTM#(a760%9YG|5!N_ah5fXQnGwnDh7nqDj(9n%8 z%b9jE=%7F=G3^8=iQy_@zhj-T43C<&^%>jncBg1kVebni{So^<Zc{^<(nh{LDvNAy zq0ua!g5ur@$P@ewrVUfnpZO@q7xRe#VScR8kE0{ZD(Au4RgO`9AoQ6KNU?jv`BCUI z5#Hn51>V>4{sZ3Qv;=#+cSKD*$U)2QDLG`8y<@DuA3na+-<d#;u&g`<>&xXh0GTg8 z0(c2CvPjIHZglcPb?0GPB_6eRXGkzaAbtB%yyS~>Ain*^wHsOj&dDlKo_re4PaO`T zcn+3#;{Cp_;v<INAVW@r`5HEAt>U#fOn{O!ug^B8!Xg_xUiwmWHcpaQ&O7hR;T;T2 zpMNvforpG%5Pk}AX-?RCL{zp9AkL|xq3uY*Gc*a~`T6<L^Z9VuO5&It`;@o2(vMbz zQ#av}CHNdb;}Tg%8Jz3zX?r65I8c6+f!f1!1ojoKZ%|(aM-T833PJRf=!5C+fRb|* ziD6ziJrjKfa^bZeycd*el|^+BuQ-UcxGWoQ`YrTfKES~l&yow$kH7~hjz{@>(+LLI z&qVC!(kXBkX5PoHtj?y5vgEQL&S{Pbd!Of&Z;AJxqbPp71C#4Km}k$z-U1b|P<we| zAzz+|H#w9TZ3N9+)WSmF=o=ObCy=PcA;RNzhX~DnAzpOC%PbnDpOj44*fBQ`1e3L} zDS3NK_Sx}vhIY-JY6iNa$J;&e-}}*2Puv&p$+<Td6>1rwXLqu(2Lrv)WALV|mmzq> z6WV8ae<3pVuL#9!*3qSSE2Xmw9xJsF3rajOH+C#M2D{~HVo_o2+<$Mbo$Nq*u~{4p z_zHsa&VjLGy3<_3Sm5M~rC#2C%$XoXKZt(*-azyc)-Yl$%#obMqj<>}LqaEL@5Sok zr%WGh0Ho~`!et+{eVHx5PgJf_(kVP066qUV)5U9X6csNHb}c*xgVi)qW1@AlqX-|~ z6XtLv-Ys&H-1d$w*5H6qg_d~9S`0)OmGbuE^u@ko6C{e>3LX=~WzQSyV(2dDbrVnn z-eEh=1$?@Z^Of`b_O-$JnE~HOR3bpwu!G$H?>VkB=)`izxt0Giz{BD4<K0F{wnCCN zsOTRb_5V|fqW|U8eV#9Ss5fP*&xfBMzp41;<2M7p0?!P*b3Vftz<nXEMfjbG`(j+@ z;8*JL`!2vQh+hal3%>~PO8l1Mw*s_R0IR~U7WWMw$&I@j+_lMrU)^!l@W1Kst*r;Y zv#zd-wl>zZebnSy<^07S&&L>kfPhlfna6GWfy3KOnStf<N~~DB=PfZYnc!MW0FIby zzg)G`72?+<?mV6mUYExw-sW3BA(b1M7Q8*D6^i#mcooD`g&$YabdRx+h0cH2VYoea z{#aWIp=qV@Nug;~xt|~3l){23;c-m?lus!DTOk9k-^I_P>_FV=*nyZKEBilqMf#~6 z*k`yc7d9W((+)&@!h&hVxwku3Ak2&v2uII;rHsoXZck`he$I`^*@7uf{$-f>UTk4} z!g}AO(}K6<rgCy;dmSpL%<q(R>&asoY)<&r=iZic6-cZprGOrm;o@B#As@=;w%kxg zzWLLFIsY<QSgFX!H-Cz#mth%qGI_(XUVO4K3q7f;rd7r#t)ECE6ErxHvl+=EF6qvc zbWbwk!uZ7X6Dn@=u>y;4&&gTu<RE~crIJpR?WMFClCzYCD3tXOwvTp6^A+6F1@OB~ zV%$A>z9DUMte8wA7Q!yZ9Kc&8O&e*<Y5D7OLemQ3xiA{hIC)yZJYhFt!IZCS_fC5p zl<{t4JUEV5A4qKNRCvnclP+bpub9^7WyWD+BZ4f^C<bYZWCs^EHHAHnRnxY5Go`dx zl8SQT8<TWXrr}S}R!!TIp=E;zPx&9%n5b*2p4}=eOTeUrW?`blGrOkw>Z|Ku5pnkF z=4jpQ1(z&4t1VhxbConbQP%)f*tGZgG43C+DWS#!zQ;@5|5cJF>y+-(_z`arzR@v( zx-EzgNL-BzA&GP8MyL8^4ekXWSw~_l02Y_H(pe?i7_e_iybq7%=tSSe_51jdPX`Wy z=tRH7m1`p6Reqvq3o`v@aW8P$K|~(}#@8^34@+G1JzyV7ypMwyoa$G{fS(r%x4NbL z#ZIv2B;e#TAnBEE;<F`Q#Wn-?q;v6HB=G<X98TpIhZ2I1(#i4_C)l%E;-a$y6MYHS z4HDlXD@ybq;Qy@nQ~3nkjn2ix^GeFOMdG55$guHjZt%l((g#j)h(tfZ?K2V|nC0N2 zPvG`t;4Gg3T<N0D#q*}bt7N%VN}QMRY)Uw|>~I>bgZo^F<IVNRN_U0kdT{VOjvLQL z#6-v^i*ihiPi4VR%Ysw4)_8ol$sZ5DI19ci3w})&e0>)D+gb2?vf%%Rx^IDxvnbc! zTqs*8`2rLS2(n0kmP<*XU_vYGlBE5%Y#`DLm0MGCv60ZmWVbDHOWkbSk2O#QJoR1= z9<8EMMcZ;~lit#LEg*=X5)dIvK#P~QAkhEwyfd>q`N%4A{GIbZ^UJsM%`@-3bH99( zdEeo9JX$(`k_Uex56<y<G(LaMgO5R#k48_~i_!3N^WZb`;2+I{FUo`84E%7k=WgAe z8+5B!m52UIhF;U{*7kSv&~M9w|3>pM>kh7M#9(nauj%^v9njj}7Uxn?x#SLktg8tZ z6@#F;WoeE=u!Xp2K_IzsVO|@q23EHtbn&eVw*+^M>V0inT*cYCNc?lxLNLzUZ3}ee zZepOzAJKI!oeObY^t_JwZJndXrEZC6mUwU%wcKMMi4=tQLuifsDkbIyhHOGep<~I0 zFw1EYeXRY4js^3Y+85!@i>5^j<G6fyQd?K&{7DsA^7+k+=Pzt(QEnmU<<j%wixlBG zSwcIWTu!^@bzRqni=MNQ$z>C`v_YWk^%LTfvdh-xf|mKX$$FmL@}NqmW5EsT-VBR< z;GLHg;I05H23l}^Htum?ietF*0-P>uS%P+80*tt~A^+6||MWTs1YLj|xjPmuIorCt zpl)efe3~pskO+O9f-gBW3tF14YgmL!G~|i|T-X3Qf0`rBa$&+hzRf{uQHoMBHBYrr zD>b}#VOm>DJFdw<B6OAr&YrnoQK#HCVe-k!^3j+}%d;VQsRJui`kvgMFpm|AU^Tcp zeBLE3OT=5>kn)}`SRi}dP)!q;IN0wG!+1$U>m)qbkQ4Kko(lc=9KBv5&NaTFPvyan z90MX4KmD0`@acK*`FZd!<iU65!T06CPu1%^e>$(sgWGoqoQ(XLa`=K?Dv-}97QR6* z75w}!)eAsB{(yzsd>*&(Q!V}r_4?2s?+OdI=^wS$pPU2w7!c-X{I-FilS?p@uNN%* zGz)*z!cVvG6ZE>2e9o}&M=bnI3x6UHzEV%l<TJ^lf6c<rvhcBb{YiQo|FwnN`8xFo z5W<k&&ev^P2fRQ1J$k|<ZughyG3283v}Na1xH~PK;x_$PG|p-ueHahTOBQ_v+@|~= zf4_K3I_+}UYvFb|KczQgn9fRz&z?N^TgQ*i|L7BPxZTc&E!-~WD?>SYJKm4y!P9y0 zFXqA5S@_w3T=}F<gad~8wd?m=7H-$?whs!q(A(v91}h1Md~CeU!tMO7$%8*);dXkS zws1Q=*RgP681FfFOuesQ=ZEp9=WqtrxXpjA#t(rX+m-oVYP9INFJk!jS-8#T*A{-R zMgKu|au}w^rk`TrHvN1HKM!F{yq~mioBls6+}8EpXW@3dAyyKMKRq9^aAw8Cdlx$o zjK4g;WZ_ltH}pz9l=@DumXPY_Zgx%>@;M)mp+BFE9)>up+Ta~*tT29jCM$asd^0Nv z<`6ur$3_N(DPm#45a*{uhsHmnaXRh%p3g#rA#S(lCl3`^aPC)`bShNwCjXoCxMse9 ziSa4a<CGqT1tVUs>6vC4L*K9Qkf1r-@L?Kg486g1F=z4bYd)+a8bkkQjfVxz;g9Kb zx<33rHQta1pPL77^x=Cnp9OjFRTi#?SV8(MoOv+&L4!Wr?1K#XaI<eE1pq%&4rbpf zNWj9){#U7mPgNxHTV~;AZ-^ct3+JoZubJS(*XV{|zANd?$Lvqd_0gOCtVSPh_NP|* zaIg}y%7-^<e6<hn(D)i3KB(~py5G>7kLgEdpV{Dz>}W9N|7-^D;0w%ZA0M+n*k|Fa zceAs!)50$h4(eyOg_B+vXW%IxexeQ&(l)(yQUuY%hV*OVje_Dox7s%JrhKmQ;e*<3 z{Im2Xzdm|XZg2W<)80(GGJH(Cou&C1+_YO$t_C;dY3etN>w4Mf<74()|LVg{{|b@; zjNxP2VTBLRwp$-=_EpV2)P|2~x2t^grXqjn!%crN_e&c-p~F@B0!7L;xY<`d!-t#x zIM;`paYJ)^&sGQ_S(N&-Da$9U--h-4VmwT{HEu3X+4jQ*(6$>@FQq|c<A}4wqn$G6 z(TB?)#;>zSNX!{#0x*EKO+Pa*=RER!ui?37Vf?!K@TN>y$G^wt5i$hY=5k=P{LlS} zB3P>v#{BaW+Mj=p5sY6iAMmD3#S~@hWut+GmJWuYsmH_j3OXz^TZgyjBzl{0#^(QT z%)1pl(5b`Q7~lQ0*J;dGOo633{8C@VnEV^Qt#}!&`~tHT#RScm<;NkxgfCOx*kgTX z-P3E29()s;&RG8R)9p_?X%}3mLJYCeU`p_ugvTHMSYW;^0>Rw}bz%kn>htu+AHSia zW%AjR7M&GRrgHLm73ZFJ_IZ=5pf9_kqQd$;Z}Mcgs?V!FPe|Xrj_eBE7n!24Br6=C zj%?`E^67*U)x$ZNhxCg5Aa|j&EWLs??|M)ekY2&H2VQX|ZAGbiEyF8k0-zzhhSV!$ zHdk;R0ki^IxmGzFR#d>*>Wxu4x@2s(b!vNi9^mJz+pE>i4pjF2#r>~bdT<bTh%z60 zw9YlHs}`rBZ=DN8ibKqsn|>sOGOzVs6eo0VO@neuLT>uAYlMJjQ!hr6XM|uQy)$s= z{9+__Mg?rh+RlIo=EYU8!?43{`Z5;>aNUtg)}Uq!+P-|{_b;Rmr{ezS)0Y-4tQi&) zb=_$FW2ndJIQPAAHSzdqZhE7X76eYTCSjiQbiF%ScgS{WR!19DtE+PDW>D9Y+9d__ zlu?)1OekSTO}XhMa}CpF13N*gDhkp#hr8(;=PK7g&0NNR<%srR>1;#&2s0*2b5j9v zt~LnaLr*hO0{N(2Xc|RYp#LtbvvsynxF-68+4|h{eH)qd^k&Hjbjuy2nclyjxH+_+ zzF#$eYQ&`njUiOMfj(w%G(M_x(1$d37}ZzkLmJzM>kC8+AJW)9T%jr-vj#EobZ31? zV~1(T`jE!<nVa<?jqOvF^&ySz6VCdO#`Y=8`jE!<;T;J&KRzGM3@iXxG}*EqNSZkV z+J}wjK+Oap8mN(p4iyWv!~Xt99qc$F3^nZ3hWfY2EL3>%6|_ALN^@|EzE&$kI54LQ z;@JVW8s}gaL!<-e)cYXzSO-boE8|ffhGe`O`2+n^5UKzaV*C-Wt_-J&PYA>v(V)OX z-MW(`x6QSbc#CX3C2J4NMpV}$D(K>HmOlrURJJ<xYNzK9c!z`_RoqoTbg<rgYh+xE zw2G1PMRH&H473r{dB2)E)#>4B>*P>Ha{t&RAD0w4sRdxj1XUck+!c8Y1anqWyM#u= zJRe$-zNn06`Y*=60ic<lP^mi+3jCmNEe5qhJYpYmaL|Xrh~X3}#Gh(QQ9wA<j6>`J zr{@K<&Ang`ArbyVpM)WvD4o!KQ{e&l-zOk?VALCq6<r0X9t4~aaBlwvJZil?b>7?c z-m}B!KwO~~5>?4J4_$Jtv%Vf$3+`rnxM=0L4@RMCLF>qcE`I1Jd<zmq2n~e;PS0&9 zmd>3}vX%IKtorxPa(-<<Q$NC|RQT~Y<iD+8Bb(fCpON9KSH4nda-jafaqt&KGdR2) zF2)gRh-eKKPwSmrTI>A<N;r~Rp#bL@*ZZ|}H7K$mcjU8{CHQ3oR`rY|tl+^C=$O!P z#Oorx(;yDnP$v3LdgFl!t*dZo90zD|l(`JL?5PKCMv?p$QfP-~W_O|;7P-(k<Q8mo zaRtTCYjHZCP0a1R7*dqQlIW=S<uarqxn-QB9140yNnFn#<a{=oR>sAla#hZwl@JOp zkoh8rUFya`4>47hnrb+V=nt9Kv6H0hr4C&UTIN-ggAxWblxTXQZtB}vI;yFsE~bD7 z24o0}Y)3P?K9Jb}E~ZsVz)1QdWmL}l6?%9>l=(%Af+(1~4{Bqea|ERz*_TX5y{*yy z;R~Y$TceLc`|7Vn8Uzty6hSyv5RbRBlJ+xe04ieM(@G;0#8+_gnfgy$4-@~ufd-5a zI1J4Y?18EjVwlUTGUJf&dhcf=OJE;`V40f{umsIK1HX~oczDZ5cZMla^#L8ASjoKg z0BSR^i63A{4M!|2Kb}9(uz;y5+l+~($nD>Mp$j>=bEral;#O!Tk}3xb%|d_YqP*2h ztpo$7XD!*Jr<P}Fr1^NibG_nn6$k)^LI4;Ivk1yUkkTxIq7ft{$ODYTO^?UPdBo}U zvS;CXft_OAy+#ifSS8%OPQQcd?zQ?o<o3TocOTu!ZB-b$x&Gh*b4=7|bHiV!8+k=z z<c}(!$mNkaQSWW7`X37A(<_#O19TEyFY1#17E6D#8-TNZQml9C_8<aQJ|h>p^pFXn z+8T^i|2=+TG(GvaaMh#)R8kv3gv9gF^m0y@5Av&`62cKv%T(TFYKdGGxjJ%9WS&YV zAgW%qz;4AKR}px-J;(^&!E{iBbihqdeoYubE(_r>M`hO^viwNj8r;OdDza4HgWRZ% zk9E_53WyigRC&9z>nljjjE$d$-w+f|b{{w-{sH_R7B8dR%UykVALrb)g)*0YNG8Tn z|9V<Pp`%O{bY*J|*`im~s9WXi7)x&sq5-<;YfwY`V(En;nH|Tt)ms-I4K0n(%bk3= zBKgMH#Z{blSiLeaMm%VffdB~BW#|e@0}I~5RDy-RbQ3h$U`mwogKnnCfjMqndK$E# zZHsuzxwNUn%6xNl$_EyIKbk%`+WWn3U@@rJ@?OMB;6N#SzYLH1-fx895lOFS82Cf> zNj$rwy~_s`BobNDoDo0<3Q{<!D=@>M@4b)Gda`W+0r}w*r(O{Ms7erYn_N<s+U2Cq z1!1K7!n2fK4&_-@pS}QXXYrYs84jM>lGquAvQ3uB)=2lQ1q%}o!zye}{0QE+77bm7 zK8@w<H!%~xFHq-wkBN19ehCz<%!NamwoA1&s_P<sJ)4ww1H94xpfX*$YC0G>@VN?< zGPCd>Lh`wFAOWMbu+*5ZC=Y=iN{jg8AV!5iHP~|Uq%K%gD`$`NxTkbF(1o9}f_z9N zf&4{9icQYgeB?ouoKkQGzaT7B2kIMN5IQX#2*iZ{4g)7hNGbkU(L#Vp2Z91AW^%Wt z{XveF;`=Xwl6fF|P%?*x>q?uFt4b(g%TbnDJg)&|=4$+KT*+4VEoBt_oCa7|ax^{3 ztsaJMLqM2yu)G?coa?V>D(7UwE-s@??ICtp_7P|KA2}he4@^BP@rwx79K%1W^S;6Q zk9w0bCxSfMdpWc&K&>Zb8SB$W*NSHR=)}jO(1IEB#+PR^7{mDLr0xM3GR0O?>%Htk zHVXZ$csI2EmqNM8tp$_f@oegk#+xfF=D77~sO=tK9;2?tE68IaZi9h7-#<kmkQDRA zF&<UqvGh2^GeyOtsu__)FgNRnf`PgzsttdNxyzi)Y>a5glXuJbg$bHn4Ju!t>7n)s zq_tFCC{VW>V&?D5%tX)1m8WQR#x+Sf-D{$_0aKtJoZ|ShPribQ?;41weN%=dZy$!E z`t(^bR?{<R(dckkKVONF56j=FW0!mqdgs$iLQaYbCu81$2v)z+>oLDU@{R7Q=#&$j z<=;SH%rzoPd4@=HN)JH^dZ`I)YgFQ~VjVjTg6he@OI5K6*Os5b9*e0Kp8(U#hOd_K zw&$_Lr=q=ehoc!R>B5V{@!=@x>JM<g2zmzo@(p!M5qyuJ?{UhPyH?uw4!r91RAgW} zS9WOiSbK0-#bDaZ!L+@+fx{}s>YJb&EV*rg8t)Y^4sD88YAK3)AQeK2@du6H=8g&6 z=fEN<kbzK|=E0fg(3iEp3c_8u;U4xE<z`BJI`cSRa}lPCFDNnZQ!|;D3g=2H^(04% z-WB|~hJ>ja0#K;Yba6Sym@<ygDCIMp)OSEh)sdzAwt>czNxAldx!?iD@gN=<$<Ri( z6+{mFN05DEN;9+@{zlhuefmQ&h|4aY2p{(1k1!wn${G(qe<yuZM(4!Ux{<&_3NR2| zj`sB-%0vbu-4~oy@BJ-4&Byg|#E*72W@>Zd-um8!P=7MK_|QoAEd?!3&o1~0W2fiS zc&+mWhc{-+eHzs3Y+d~Q+G?bA@wcIrv7nZ5f_=Sr7Ge(9r7tg&sHuTERfMu&TD%>Y z>7<<MC;l-Cz1up^RG&G$EY<`TPU=bNlq&`iDT`%By0{NxL`6VfONRA;$_3)Mv<xb4 zoYdD50@=%a0L=v1C{Xo`0)m#Ovog!!i#!#!Iw{_Mg8bf6G;{-$bF$?h3j|lPymP;6 zx7NWTcOVQ(KaO}mwUn@MIm`W}^nDeGiI=27&1Je<^|L?4(j8jjy!Ymc$i^_zg4=is zoYWdLCf?NJq<A~7+|ZMH7;m+Z0Ol=0k-dHXTY>=Dw**C!gX)@~TJJg6=tV?38c6L% zEHrq1O1<%QP`@U3LE(aEEF^%})!Kuj@jz;gcHwnx?v>f00m?Q{Gmz>Nn{V5)Z+r9` z2>0h+vA7lklx>>^uUz@iD79RCa|h}=w7ryeRJPV0V##83Uju}b?}y=pf(WAdH#KLt z*xYpC-vGM-_FUL=VK>5VguMVZhT<6=usdKcg}pR=+bTrjrTOcoZ`(=BON*7hZMSlX zmA>sM<q|7>+n{oZmA-9Axx`A}wpzKwO5e6dxx`A}wpO{sO5e6lxx`A}wo$ogrElxQ zub1X;`ZgA~m*#K!wmtIBU!-?GEiWxr`Zkt2HicQ@0LA6qDK3mhXtCI`;Q(C50T`MC zpv9O2Fg{}CYQiw~sc){_QCAU&th-Q}YR_zRA?$l*@0N-rhxFxAb?{lG?vw(kE|sbT z#txPJKH&F`eC#~JZvuQR`~_DZOu#torZ-8J2bOc2lExj7%i!fp0<-Qoisw@MzW#pm zFwA<%0EmSG$`(|SE!AIqslF&a+`S~HSSU*X!&v$rmSe2<;qpP)m3<Gmu&BSHaT9k* zFqYs_F09Um;NY4L%|!O@uqu*k{iqIl4@(m3;IYx(&E$4qH&OXk)Mz&-6gn53+0e3~ zE0pt}K?eoxez<%kUQh-Pm$QnTo*%)5<Q%xGycBNKO=IfSL@73y#szK~8~)K4r{_>| zS+<Qu=M9bW-Il($4?Ln!f6U7gV%~FLhq<vCVBkP07vq0&z3-HFfIXGVGto4BU#j1C zK<zYNr8s0RYmQ%N((3el2A}hoQJPUDje4pLBMZ=yi9iy@W|pBAr`A=QxGX^27SF_Y zaJfhLL3-rA8c~)(CKn}`CCAj<%rX83aFPsIOq6aZ+#@mp)qFh!&~F@zfT-GLtQ)db z3a9I-400}_f)UO_Y$tY#u+S2p??|z*ewiiFe+#=7)zR$sj-NnQOakpe*mB?IUFGbD zPKqB!$Uq|;So`4SPHf*RGL$eoCk<<W<f^K<qNc8{K_b<!I?Hz*#5~AuJalvIMp<yu z32|+SuPkhxa^)NzcEKM@^TV(J!(5EJGwwj6P%PQ%kbK6+QIo5wJaNrLTx#7pE%5_z zItH8;Kd6>phe<Fj^b+67vCYG0UooQ?iaZQ{f#LV(s921Hz?j12kAkYZ>N@B??QJ*+ z3W*jUDKViY&{DaeyhYfs1B}Q*{63CRA+8?Fq}{b)?ap;j_d^qq)dIIkR1RTgV80ot zaS<WfbWKp(6=FlZkb6uY{^5m<Kx{-FbQJbSaAgs;CUC#VqiEL9<RfDwZW5fti{MTO zK(9eLbe~p1gUvFO?$k5m!Kqk~UyXNa(Z{8!1wDO<->$+iB>SiBxJ+fF9w1cv8pMud zNrPES8%l)00BT9mG&p+2PeO;ngoSSmP0n5c&)pL0uJWf;DAKyUX^xa`?+=A9wXf)* z4_$S;lX@20bcjG`(i_(x1lua(6e#%+3zlV5reJKwc{4E?HefQGiOH}5li|#zZhBQW z$-FyhIU823gr)Tu!NpB#xM;z}#UWg@;JRJ8Xu-8gxoE-lS>>YTY`F6@q(o~Ig6j<B zq7+}8dZE}Y0(-+{g`$qBtZ;9*G^8{$h1}%Sa*URLg`$-Dbn686_YU0JE4x7*)MIp$ zQfG9Fs54qhbw*S%uReS}e2>Jye(@w)8_ES8OadK@9eC(6Js3^cS@AUdxFMgq9kDQU zDflj}xu`Zm+FJ_Ia-gE+6Y$JNF9q#w&s+siuaoP0TkwI3(dO&rgNWAOuANjlW=hjV zqF!J9#6j$=W5@c9@y?1U8o6|vFkVDca3wbEu_aaSy@LCKhL6t8uehZw`FGqeI~j%M zHf?o#i^HN`IL-Ek#v&H)*Mjmed}KzdYRd}}KQ?=Y(dr$EN4O}TfG-*hoRSf2Q++Fn zuWSr^6_NCuamhCh!3Q5og}U{V`-|d7B=;ZW^mIr$q1Z0N3wJy*Izgjz^5q~uM0Y{w z3-z<0h8Cb4oaGImLMb#NooKIWh;n-7q0wfJkv`qS1P8ibKhsGa&vp*|LFk8>F7ecz zZi{rh40RmoayIi%cF4yZVoyUdjWs%{O6Y*0Rw*^aXRel-s%65F%gj@(&FZ19Gu80L zp2B|CjRYyA0Z3A5Q7no%wR+6PXg&y%%;$6Uo*S;R!!XA!C$$b=9o-Lo9!>7F_+gwV zIMZdm0MrFz?g3+>`A+$ML<E(7bSF3=Hliqy$R43b9|n#q05L%^0KGi9D3ui4`Gr#~ zI9DmBSa1gDL_pd)pe$G5B|8Q1qOHBU@#>`Bgif3EUF92DXOCg(i8;47zyrzR;0t#6 z{AB>xv$Wkno3qwj&RQXikJyGm<0x|r9z#J?a0bK2(=3kZpQ-{gA!r>aMnK#hAbMfK z#y@QQ-GSoWWXx>#A?jGV9QycPaC%+^h-uil{RQ#GKT0Z}iKW*u`NQKmPoRH9lRJWu z>fbs&eW1ba7@CT?dJ;|jcM_ReQhI-qZ*wbURjuA}rT*lEUGI$2zkDO!g=|z*LmQfN z34V~V1^}}FRNOQdZxevb@^-6zf4Q-s0M`~wD8PScW6mAF$9h3FKsdMY-lhiD8S>`c zNgV{_<cVrB98!Qg!^;@ZA5fGNhJVogddTT{8odDeol-YI(;DvmuE=!Y1*6cDpyW)0 zP*`?4Js%Z+=p<{v3;XZ+yfY_tAIMN~OY6+YR)E66&T8g3^htVLbg3TlSZY(tGsPOO zjL&bEp|D5-lx2q5d-%WSqB`tOaeFR?p3#lG=oKaY{e%_^w;o^65Sno*D-w{o15M1| zd_)nG{HMr0r~;v6T*=%c^Bc6cDd$~qVmw&@|IEF3hZcI-UBIq<DN2$npv;}XVaGcY zEj*JXssox^S_3oV^A|SH?`*DH*tDn_0+@lir5!Du@vJjC^U~P-c-z9tEYh*4E8f-A z+13$1lR|G0f9rxcX5i!#8)lw43+!is{WQo=2KZCk25GqXqRtxv*DYMMWMSa4mX9Uc z=XVCwxv0S6md>uWMGFI$EQ+^5u5wzUz5NnuE|@m|`nL8P<n{6vNEF5cQIvFBQ)J=C z+FJr`UDMi@wlp`i#hVrcW<#8{lVX^V#A}O_Sr(bKpsne;g)Lo>^qa|4Ns5GN!+eMu zW+8cj(BGo#S}t#EjxP|pi!NHUR9@=mL*>fSKsNt15TXS!%Bm~S)k=v)kvTlGxvdE@ zw7J5eyy}??nHvjiTL?+nrL9%xov9=O6#)|vn(RL#NR{I>uClCORJ0g0>vv(gIc~x< z$}e;lnc&*}zilyjI;+{F1ha4NeDTwh_Fthd{TJyuuKz3iL+^s#uDJ>Cg5IvO3eekb zI7b+kkIkR$%65++hQm+KGwA<_o_>CRzuS(3Y30Aajp35wAC)KRZGLM25X)!$^j~`y z^vrYCAhLgy9=1&_Mw$)s&*=GI=XYz!|NkfYcbo42Gj#t%E!KFQk$<EU%d|(19qfNJ zrVS9o@>$HK+9ozvzjF(LhFH72<@y7$ZjH(M5$`-BdzZ#OLwg1_Ld8l#pDrx?WJyr` zfA|ml$@7=mpL=^W<#>kVEfBbxHgqW^3!z47(IKKk$vyO=C8aebL8gJ*2Q)l8ujt~4 zRmrjO1C?ePe=dQps-oqEOW->JPFMRqN?UX_K^v9mYAV`ZP*MgYB79tU$2IM@i{TKR zUoLfiT|}K<btMx%eNd#NV)>Ye()qQjpb*-gssKS97f7I<3qdZTqAJGQr+JOb#ygAg z)|NCB4ni@MinmVb!+J&2n*Jv8GrDp=4_+!Qh~W03x{><FbXvlN3r0;!-JwuWR`ZS& zvTZeL{wI?^bc8jc6j;vYyJaGAsgI9I`LO=((qW_y;AZ`;)!1^DS>5eLjU|oAgL{kb zD5M^%!fT*ss!qydx2EgoAXj%s;bls}*GEb^sN<{XgH%2S6<<<kMkiJcX+?KcJ(XNR zQ5ltD6+I4JYv79W?(pV*E6p-CDycImC#kcGvUN6%bvC19a7@t@L^Mi~xZM2~GpXx_ z>*MpUg>I~Pr?MBAw@zxmibJ<WU{dq^`24`6Yq5&+tHBZ?qay2nPA8TwUXe|p4kXqW z4f_bqDR@LTlDGl^GbT`Ef_R6<&A9LpjdyF@%#{l?zDna}d>|e9tkbxR5qKvZaekoF z82oE^C%#AHW=!B1LL5J0WL&`8fW{j&Zrb1z8egMv83Ta*UgLW-F8v?aYZ~VrIyBPP zVHZf0(9wl$Y8vUcu-~WgRl0MUKFWXk7GMRjM)PTqP#B*y{TfXu{TF^wjfZtZlYXbe zjHb)#Dox*^>7_q{zTNQGxG9GlG;U<iq(6fG4#THZMJD|ZuhdP(at?DafRVli`$rmI z^*(`BzryQQ;LPu!f&+cJ-_cn#VkM;rc5C`Qx_or>ftNIH7T2bIvcAbb#Dxb8$53O6 zWHo49IlCyJndcyR`*-Np8jtjtG~4WX3Bzdk<UDvj9a?kp(0?os9?yd>%Y*aYr_s{+ zg*<pZ-C94&L(j9|qw#+-5B}Rc_zQXPzvRIS(C$Wy_t-pmMIPMEgU`-`H|N1`$b)z1 z!SBk0-;)Plmj{11556@I{uuDXt$w;&H|pQ#p?@O}9+)-x?0L1FZP+B4SG#CoOCSz6 zwODm@Db-K1xj+yAait-PI}CnMltdYH!F-U5_9`;yGH{kd2cn!GZ;|L{wtcc?-prPE zY~tkHm$iH%(bA;=Q7SdFeNkK`kx9-$QR*TiBy1!PSy$F?+We-LT>d)dcS8S`+E<ZW zh+A@Yz1oP8D3IIe!gxz3)nrKqwC*pJ8)k)h)4I;chfprlcF{^gNYV!VTpfm=N(Ysr zVM!u;J-O7hn7uMd3QJN7fU32GvE(Sr_PUlEmMrRox+yZy$<#@aEh8I#N6i{~c*xcf z^h!mV;!;0SsG^@rsweBzwUc$T*mHHl08mOb5{R{R#pg|<LNNFWJuA$Rns@PF-i+EX zQ7q=uIYtI;i?KgPB9r=d@^4?X=(<D)uAl2{x?ZgKqIScHV8;y$8RK+RRQ;mn1orvB zL8?sDc`-7h&5LmgiBzkOWn^HhdFT`>C1;3XX1udy{`F|pE!Q!OcGj^uDK%wKn#Lqr zezpcPO;43!B)PPsW#K$26*#gwzmTE!7Rir^jmpGW)&Ct$U}_+FRF5YZwnylw8np0J z@s2%lF`vLXfW}YXZQ)!482Xb)2t(^MJO<|_d^EI9$768*mxYGb8F&odZ{cTJ_@fri zwX&f<8si`hy(i%@_{kQ2mW5xK2d6Ga8uGE}yYk?@dGK%M!OgnP&;OY`^nc5PJ9<gw z=QA-6UXusEIuE`i5B`}vxU1KL{`8!oH@}Ei;4$^GD-Zq)z0ma2KdjgL#49a6gL&}R z^58{!z3=D4qYN~D{M0=7XEaXhcs%C&Vy{JS>vB3=e+Q8NWIU!EuCVZPE&K+Jlig8x zjJd_4=QoAn)2=@V4ZY5OV2Q>VubrNA_2SG=e}TsR^dC4}rGU6ykC$uQ@cE!33nY9v z>x`z~hihlRJwo~W`F~5}hQG<zO8q@Vda9u?<*-$M4;lIz#WwJS#z|jg(f`3mKTFg9 z&7!Zi=+Dz1(&Tf#h1VUU0utx9x=GIs7H*FxpSSR-7X5u1H|f7Zu?_stqW`c(zth4m zu<+kmxSgJ{$0~;Y^q+3w7g~J6?^pCDJ?+XF__h!Kq{d6R0SUuq%68k0hsM@D7lzxE z&tdF5Fiej<{=e@70t+6&tD#?<2S4NlMbCK2a!@$~hv&gh(>UY32#?`^p@rM!{HBH5 z_4xFODk76#(>_o8pu)-D?sruhH|1&Qzj{)Ro^95ohvyh*$Y&xRgMW?;V2Ja7GzQn* z7vJcr{8z%JVV|WT&d2OmurJUUT)6^)uzoSP*;i@w<GP<L@Zn}Zr^AP@VS-_nDk~dr zqsF^^xMUER$%jdg*^gRf(bwsBTB|MG>@^WuW8vgw_Eq|PxY-BW>BHA)_n?Kdo!_C| zrDO_2i}-)g0TcG&Ur}(N!-s!U<7<5Q4>Z2phd-ckQ%>||yxTR-GY>Qde@r>E`^pA? zLF21@^!qg4=fmIDxT$Bu=U~3Tg!H<_;D>9x!G}}FJq^FZX$<`-8s~Slji06QJ_{#g z_5%kkoaJ!7rr%@XggQ#e6?+tVJwuH2HJUzT;e^b7UD(1&f2pSDu`C)o`IvpnH5N|# z*_wW>g>$?z`)}(kob-*FexrrUkg3;OeHKpogr?tV;iL~~dXp}ak)Bti(L80*6aSpX zO}gmhWA;V&TlB=uK59V6W9W4;XX7_`2w`X@_~<(n956b>41Kr8t9<mUG#=76n<>K> z!?hNT!A*Kx1!wV)cFX^CEP9h3V;er*n!ZQd1~=(3<B!4DX}XO*dNa;E<-_;rOuXX5 zCBeWbyF_F7H}VCh!iTTXc+7{Je#_HDG=`69AKQGm>0c&YhThBz#X25?oA%J`!%h3~ z>rgZE(P|(48ol2Ajt@8e@s~c_^y`4`@API?%s79B4>$YgEQ9}!2_Z1!G5>!tyu$kB z@N$DFyL6;8z~vOXRM>}?ov(mF{k_EHJmU#!x-xC^TbQ`co<?!MjxS#0!MJS0wHJB5 z*YI55Gk&f`Y-8g83Oy}joW`z$AK!I#<|vsl81sFpT!BEyyl6WNd$jV~A5jEmykhyW zj{N0U4~+3w;IWN+x^l^wYk82C#@KVLck$3aEjql7@!f<o_;nid=YN3?ztmSTCjBOS zD_%y+|DI`zBCHuR|6Dqn@TUFnJIoh_1RUgM3QR&-*<XM9>Gr3c#B;e=hFQx(hbh5x z3Lby_TnCR9zdA?|2pr*Su>SaQBLR-n{R_I%D$ko-@h|F1+sFmDHes>DqAQKsr_$Z~ zfj~)2+`GIC3S$z`8Z>dYH~l!MGdq1rS!LgpCCBy7DR3^@vUOFu1d^Q_nS*41LG`1H zOT3*EcTbsqTvrJKc|Z1!-m1>JLI9}`j#X3zlHNf65AZ7uiX^B%Vn<NvKMMzDSMJSf zuS#F&rtc%^5FW?~)LrFm>3@C<G{HbBp~BfPyM5yB{=qTsYU-1Kcc*c<5M2{Z7F$<o zNi(V&!I|9>94j41X1HS1>EU|PO@E6q$Q|-7?~MLATvI+0a+2HeLV1wCJ3Rw<#pS}S z%We(^ik!RpaZ@mmSo*t9!IGex?!udM-)?WWTd*fqFodhJ3vh>M2zSp$#{RNrSDmvN zx2oRrB~taQ<u6q5@Y-4sbreBOPXF^|V}A?)7m?z=+#lm&@7R<?=|(oAt_z$EiFP+V zGZ;y3J2=w+W|5nIa3ef+B)O6<a5g*%)@$(U-MJdSxJ>q!C?nh_>rR<n+Ick!qtpn8 zZPj^LKYKCr(Nl$uQIik0%1w*$lQ{>dK1+{u7BP+bwsBrCp1D@Mdq9aofSB|+kur}q z{Z#4+f(tlt&OG8=@;FLX+z9$QoXo!cQG!XP@#5ZD=RzbZ4EcopZo#kI>R&C!)vf*1 z9dtHN`G;3lx=r`50i|2;np^!w;w2R>idGd#zEY5Y{*gO*;N00ze-*2}X^-1`W5vKl zK{mzooh)c?=RmR#HjR>!1mS>Og54EwyB5cztJs=WL%bwR8fjNG5Eq?^6X`P>Bs0uH z<{=!*HoBEqm{Q}}5>*Myv`e9&L5teHw|LThh+-OAci)%yBZgS|o2)meVe6v>De!4- z@}Z~j9*B=~d++C)L<`v?+D3o@>ca#E1jQOTG)1N~Zu&ULo44~;=w@iCNJ3|yk%d4y z_ApT@9Vwg&|9kvY^eZN0=n^E_O?QQj=$k1DBes;457jK+sk;W_MNEwsv9udbPdg4m zdl$RTebActVD;_4ufku6+v`G1bEn(?`i1Vkm(ydQC8yAx_+!*F73Pe=f&0^==|~xr zLczTs+9r0#&)&#y@vW_p6~NK$F*(xs6OhA+kKM>61oDW+z9HO>5Q(2x?#*n*+3rzf zx2^npe{<6xqOQKItY7>n9=2Cfu#!uCHoteK(qEIKOg!mqm>FDG=snu~hqqgoy&fn` zY-?TiMxZGENjG_8X=3qux(ee{_SVc&D!CG0chl!s4DLo*mqLn<^$d7q#2J7PpOBuz z*VX|MW|bH9#SG+!^r6>!c^SUTU3O#Xop^VapNqO2?qR#ztz^}kphTv*d{AW7p*2#p zQi#Ahq;1!to4Dz(^dY31{v6vv)O*VvSiT=`G?jas-E{HE6Y$D&`U^mgaoT&9q8du} zmNNPSIJ6&gdia0sTJNUvSR{D>vOjGYRw?Trt7GT?30yHKGmJ&kUy>8}Q8dP26a#VT z5#a7@sOfC2uIX@kJ_#<}H(ncvkBKIse*vTIjjbmXEmkh*Z-da4j5GD#YY(uKZwlc@ zx&^#qQEwoM)P$+{WG<ov-wssQ70!km=R^>hob_&nT7g3NG~%A?ms^W!+WTJ`(+VNb z4KwGuO$VahtwB&6ywL^Ym{U7MBFq4IdytS35CO|}X{*UWh!;;U0~3VC_3zFdKS#__ zXg(5pBRfS}q+kJ9h-g_mSRp9IB^I)eH<vepO=<Uy3+kO7ej89gs*xgWn;As1C?ZQS zCv`J&9)a|uo7x+P@|ap^A4;R@ddk;=(pf(<;jFKTS8Z`VbsYFW+g&=j5+2Ddg&5qT zsJjrRky3OQC;4}_0IDcJxkAv(ow(iYO%zCEkg<(n2<JORZO4)_ErXL=bU*pIl$RY4 zTEswm2d<utrSIjdks}k%==u=!co}t8?+uAg9|;9XmTU}=!R1B~Yi|N`RK~U;OV_n% zOe@eT)<P5BUf5ZWy2=BYZiGSqm!>6AZQ3J||5+laRc%7aeAJ~5BxXg^v(f5`%h_}& zkit2gIT>)hRfBjNdJKbyD(1wo$+w`x?-7t9DKW10FevEx4wB((A=@GmxDbS5*JyUn z883aM*4q!gJ4mXF#?H@CBU~0se_iCLDcZXVcnl)atHpk}d=2TAZDW_j`UrI&-h>#D zv}YwN($SpM7qKhay6mR%aQzib6si|1iO=De)4_5`@koliq5h#0kl%=N*N(`EJL-D& zO2>3kyrDgF6?o`*fjp4TK<0EcZ%Kzdn!r*<l$F&-rzk@OZgSxz$w7&swFWc1*d65$ zJ_{CJ-#MSH8Rx_@VS&TwfAR8*kOgRb%;iFci`2(B=^&d8qh)gjld}Qs+GMiz!<W=K zJ=|(){cr=`c(^Q@hTK2Jn7)8ixlK>7LEljV55yMP%=*d{l26Y{)M;i8r*E*F<!qQ$ zei_m<aW|F=I#nu3#~>^`B3jz973kT+r<fXOUG`S6+v({65$=bFG-Ypbii;&I9SUl~ zSt>N1?TMej8EsNRlad-K<T#R``vY3Ov{Z>7!u&Dmz8rU*)Jxb9Vw(yvIYoDs&y{5T z&OQCEa#vo_Sh0$|OGNEVyFC_luZM>o4-D82CR3FI6t18ni$;{EP%EidS)_<3;H<2H zJJX703|+;jCzcKireKHLWU5OFre_-xj&VM7KLViFu_qpk*KAKzY7%u_k0{dXLFV?} zCAtiJ6|KrVMuKHZ*#WgkL)RzL#xzQioe6JYn2n3Q{x&pDRl*p;RUKkP3%jR7Z!u=4 z-dUx^oT7}1JBay$FH64_IxC$Xst&`7VTXI&?#1qunL%g8Tp+d8e~Ws><xcM-h!fuc zD}Rj?<QZ5v*0QoVzp(|rfsTj*LRDw(VA?iPx(sdafO}F;d61R%Ah)Xq1BXI6)@~<t z9K1LTu^td;xHtl-@z&ZYKP*24WKQx;q=&^8hHKPfJBqQSdsKs{?h)M(i3ch2s#=Q~ zG*ltKgbqM<YY^S2>~@eK{b>ozK8!sNju?}<YCy-2K}YI_PnUDq;cU38oU0Btma_|f zjLh_I;betI7U~~_kmj@K554gMvpi4<7>}Z4XYUv__PxRYa)sXlV|20K(ET8a=vF+e zX!k@cX5jA@_2~RTO#>#15lw9!Lm`uWU@~encYpw`hdKGB<lwIICt;%{45*Co1UfS^ zA%8|L){%7Qi{v!n0g+n}=<M)Py67e=JJA!N+u(;n5-U<Q27%}infW~`o|zfU7ta<F zH2n-p{#ZTu?)`N6UqQ?2*$W$)+O9IS9E2u6(cbu&kri{Jj%QWAc&-4!-k$O_{JWjh zMI^^?)d95{Pcs_mcp6S#_qTDZq^7-YQCxRAvr@Sg4NEktfM7%hTj3GK7{*@2!04_@ zTMK%0y!>o84L62ac-4BZxsMOJUSW>h&<Yj&Nk|f~`P3j8CTqfqTNHX!R207(+V>X- z!J@-vwwifTPm!5tAOfBnFf;eSU#Uz*?W|S_v=X0)vSv6skJ8K%XRrl92OE^m^*9(? zqe-kbGLLh}Ne&cbZo%Lp!*Zq!C7|A1MBfSl;Ij)dccWh;LL(P?(W3U|kdpNb@LkJ& z2Dmo_dCE~PzQ4R}Ve_ITU7=~0%mSZ$rT|Tnrb=1XFLEVD6Iec@y_RY6x!Tk0)sIH| zKZ%9@&5;!c!hsSL$uZcwK7z`keWn<v#>M}G*bjt%Ng-DT`Asoy`aU8^+8~}o0>@xG zs-$pS;25wjDJ%&bgHM7Zf~9!M0>><PCm+UFhVaKAnj?b29BrwhEyhV@@~2-(VJV&? z@Qla9#U1xm8AkalcaGk~D};G|iXoB3{E~m!RPvAExdcxGp3Cse!ZQcY+(5A43OrZh zxeD%UU^l|P7Ed$YTVXH2^Krbl<GCKsLOhFrb%6g;Jl%L!;#mcJHS9I;TZ`x0c)o-B z_+Fr_bX}g5{)_OxK{hU=qhwW7=y%7$YW2I`MwT<>rvK=pCL-U24@5DS@>k@?YP9^= zttDkON_vdp?h>j%;Cj>t<&bVKgd9>YWyd~U3<0s_lpRZssVxZ?{{0XU$ck7ZW06CP zY9W_YF|B06NLb0;?a{nF+I7o|K2j1&7DMi?Q_F0X>i#ba%1hu0`L~<l$Go4R{q(U8 z!ML8G`HZq8pR+V3acLe+kh7Y8Xkn)ow~})-H)%Ri7nYOFnpLt6qFE5+y0Zw>7agiN z{~wj53h8oTd!dYs?WWgB8aM6Aw4w7f-Uyq<v?CYq<kL+MM%of=wj1KR3BpL*f&DQ& z#KTyx(MY|+=Ko5BUgJ{Vz>*pd>EX`Q_2+<#%nsWmj7je|@J>Dzn%=a74H`H9tCh9@ zY&#zE32Q#9;WlP8*(I(?$iEL?Ks3@;U=QK3Wr!N+3G;V6#Lc`lUQjHf(AJ1I=r&iT z@sl*(t?|hkuhw{<#zPusc!}4Cw`v@T6;rC|Kc(?fjhlGsJ({f3R}H<c7YylH^S>dx z^aG^F<RzOByzqbTqv4O|!T+2GAB%Dsjn7eeaOz7LjebfVyde*sPd4fkdFXG>gWr}1 z|4bg7X9q@0|9A7?Tl3(*%7YK(!TCitn#|52XlJ9P=fpgC0RO>McY(K2_9g40Ac>Yn z8Hp{VjH~+3rwB8so8ALh%_^Z8Eqg;Z<x7;@hVT`cm}bfa(NknjD4}69Gm;USzji_$ zis5b~d6*{Q#~bMlhmn`gXCo28mRu&<=XZ6<b>xWT`cKXq83-7JPu_ubw48Hx9<&RR zMo{8nuDS<<j+S|yU7bzyn%g?_pe+mIoi~i;2g%`ieov;{$ff9;+Ep3Pt8am%Pg9qX zNr8|^d;6j$kz=`GVSGVL7iFO!j0IIS^V`jh?3R?sWst*}-_@dINVL$25s@)5+LAES zva%;WQ51@nyyJ@cx~1{X`Au=f9YO08?GUtK^jV>k5rQrhV(GYn;x;1%Q7k!^Tmm3; zGkfNOMV;|jot2@wtk}!Ed0p}OP1nt9T5#RG*7<Gi77^6$m<IFT7i|e}9;HEd421CD z>rl)E1Yl^Lh{xbm1xiEwgLn-7DGNWz!arl-<rZ$sde}H+^JvK5#!uAqIp=>K(;g%N z%&^AkJOz(Q&tZCgHuPalf0V}QJk_F~W8pTRlex<a<LAH5!tL@o;ouzoM7)~xT$%^J zUE?O5gDQC7PK*9Diw{1l#4tTP=3@AtVc}<3_%sVY)55Q{a6A1gHO^Ho*NDb^&4+7e zV5`N)PS5hODx}GmS^wOwaew(APeK^tcDc>6aJycv*SO(t)=>$I{#5WX<@2(IPqOd= zy_{#fT<aS8(meQid2pj-fqW_~J|DN}Pq*-*ad5zp-p<$Q8fP$;zZOXdd^ivN9F3cD zFzd!^EPA^fZnyAC@HhGW4~?66%{uja7CrWCv-CSH+|KWDJS+vneA)T!)woHgS;yXO z(c9_VYT<VI{Km&;ut1^<ykODWd}>RSzrUQX(6~vDBp9UETJ$!bwH9utr{BlNq-U2! zZ}T}!cPf8+PSLnOJ(DbYn@_^R?eyI4<73kEIg8%r^IHqI`Rw)aG3E2NMQ`)@uwJzJ z^EJo9C!u^zds|}RXIc0?dGPHPUSZK6c{m&}{&**7+?1#J-l?$Y?ew2w%_Ap+pGoJ9 z*1Rym!gX>2Y<?_~5FVPa{PLSjJ?6W$(TAJw#|1uox1Rr2S-ANIBxJr%$^TqULu-wG zH}US)?mi!GzKeJI@NVrM^5NQv-9%*!|B&$@0Aq004b31c1co@vhhsVozXxaxj_pn{ zdwh6E<NGa~V_~T-A7h(%8#R4M+YClOV@w$uJfuBbZ5!OA|0*BesNEetyj#0Xy%;{G z{Qv5sH~Sv`v*@PY%{*!NnD$evGh=X5kNjsGjls?SMz;?)?M+d?_umkLlJyuLi?DXz ztoxVoE;TRO&Ua>e=Lw3S>R@GaIA=UT<rMu*eB~HLTsH$kV)}gX8eDg4<CJ|q@_eu1 zD-o9Qb1t-viGP|6;+?cK#;()vtS{Syct{DR%$Kl`pt+wgUYRG_BMb*KnAJKWmLKcL zUw-w#NMhPKUd2=$rR?{5W_z{{ui0fSlWzlDhZkc0{Lj_lc{;^5CjAC$#mi{<Up+xl zgmif3pJTrXZ}z#^OngPG0`eRnOhQ@NUte-YO*@H~>hPs{zTos9!sCyh%iq!BU#T}# zt9_pS_&b_fa|gC@7W<#xZ~dXky!0C8-QRCr6-FYp35y-Z7(NdFxyG68Rb{9;-c$?= z$F^N>dPr`ct_3<UJw)<>=~CKTYtz%qa3O2@(vY{ewt7p~rTR=zq_?>A(IKzj?SHN~ zR<O%WSG(13$3Ng!?^|46y(QxHb)8(W+a{>4O#H#w5DDT?F3)22;>>gPmd=fccf@@k zwdr{{i*huhoF1yhF&iB4t$w4<d$cPi_e=E_zc0tNKQ?7-{MfG3tG9RqU1!+w(I@dD z<E!<KR#EmyDInhJH##4PR6o8L_cr4C(1I<_hKq0(_6Qy&H~`XU^<#@m2H5X-rWCi) zR`!8M_Ka+L1wT{N{om>oMIrNG&V2DqrFDiheU^2A)J><l8MYs1kiD7;I9JlS?<tK` zIh#{IB!UAur6l5Eb(dPldFYe}b#cZO{GZ~P%|SU?%oBk)I*fC~Jgv!dyHJk(0h|_g zdbS_~Q)c3D`U7~u{ZBlf{ua*N^}!iG6i3u!z2%oh`(G%E72U&?Rm9m`i|d}8&GGUv z_?=Z=Sg-?jaruta4-lllS)Z<8d-)Nk$<~3?I)XSixDhE1B%dqt?*0;99v>7{_`P_& zr3reX;|r7fgNbXBTQ0=uUFhfb?p^~g=e{R#rZv_Co$=;GL*l3?&MM+~;h%;;03Gk~ zo8-(l@{VInIAFr#$|3$M95>Fy^^G&Ft9Zh9iX43({-x;a-f}|!8wd42U#KD)zFW7~ z<QAv@jbi8!m-sU`qOPSqCAS>h|AtOgrbW<h#_y(ov=)}AwKpkpQVT)ATZB*!uJ>f} zMI3PW35mU5x&41COukfrvzE@?{o$%##7}a)N97P>^0^APKU4hpi^;cfMsW^GEBSV@ z)5Cw@OEDMYcU(E{&8ff(%3j@U#8c-uaqji@k$=-;-jB9PM6(;b9~-%b*<oIVdq3M0 zA)L2l<DtaEY*$zpy8SPXnV6%mNZ-xM%Z9JQK?ijL0!NgBnN>J`P@lrJpS{ew({nO% zJEM1MCCk-Wf4KK#!DEm9aoO|VhG+7{*<=6gJ&AJe|6}2@=YJ~DISMN7|6}p8=b68; ze_naG3t11h`t`)75#^TIg}9>0w;`Tzw?wvlj{tuxj)LKg-kW|<tj<>B4h?60XVJ<T zMd6ia^QK_93Rli346p2jF8?jXJn#QZ=6=NuclBv*|EahYMj!nnn04X;FMTFc@hez4 z17ZV|9>4`CZzNvMbb?;mLu3xFXVAB+Qk;YTPmHBEY(#D#i^2gDm*YtbMai?<;1o7d z8q0@sBYa3e!y~xYr_ol~uy1Lqe3jR39;e#({iKzP29w*%YOC)h(Jf&d!j2Za5`PKT zv_jZH#TdbzYC)WARVTvY+jNIfo^mLYaSeZmd`%dnvV&Q`4TA$o#zdpj--TNn2$R5u zD+I2YU}Is0$&$llp97(S!xriN92FH~5?DSD^}%88rx{3+j>fGXNa#a&>7)w~=ZX7( zOMPTTCya~&j$rq2beV~f*~M*8y|~Dn@;cQeiPGUpjE`I8ymhrZ7(XeB$pgcA;$;~i zq5~2k2GUYqC#&WI+{1?9rK`-X-n017jWfY`_*YUd6LI<qor0G{N`6y)ynh)J#klgs zuXr*#>KzU%81+hrzhm<sIiGC?NBjO>NIke|Czg(eF~VKu6Ml&GhEdslQC@9qgdbu! znVl1UINLA$aFG^%$mPc;1Mzc?kU1F$H@!^eprU0mSU?zJ6OJQJ!&xTP-y(BV^N)CM z&YpS8#keUqii6+Y-*AcWI4Ku2Qe0efJg#6uC7TOBaP=-ON~o>=ed1YMd~+1<2k))D z@-0<)(ca=6k!!XpM`a>^2(oz_kY*i!C#~nN8pI9(TPhLvfC@UcZ*L+7&;l`-UKt zs|*ye3A^b?saHd(t*rw^tW*M+D+Ljuj_jFa@PC}`W8V&*v`kD$zF7PqtArgo;5xNi zc*(4{Lp5n>8LAv`-L#zB(siHsy|aFNdFwz8)}zTS-L2k{&iYy91@bx*H<)9#RPV)n zFH-Mg_+G5uIe(+s$^1RUcB|%W%KUhbs%d*Y`yocj1+XY8g=-~iG52|I;i#qT)D0cL zj)t6>8yA0{T>HR@5z}FF_5wC^uXs7m*{LZD1;`VSrD(Viu1frLUw;7OTw+`Dxnj5X z&ZUUQ>3Ig_piiioc@9CwCB7Pcm_s-U4TnPST+O8MUWOOllQ2sU{TKMClsKtQkQfh; zu2ZB#pR!0UB^R7{LvDV&?0GVEA^rlwcpEaTnBTdR0n>M`k??o!R<5<m^^|fc-ggcv z*GA<xq+ET<wFg$_S;VdCQL>f^F-Gs_NS#E2jGXx5&~rS&%NsYx;X*|Ou<{@gpb$5K zB=cFtOpg~inHlddT1*ClGhAAsMzIv*eXYx0c?v}rOK)N;tK5tFbMc~vU3KO$K3#?k z9{pbnA0GYZdWuK?8HPvy`^5fX`A)GPR#!SL+eXe?b7$_6rAFlVoi!LseA!+05d8{T zn>rG!+;n;YOK2Io`hlV)-6GYv1n+EWF_D(p6k=4KI!eu3%OEMU4TEt9!ts)nl*?jF zCxs6WG)M8F&zbCGD?Q4a^I0^x4J-JU-Rdn)lK)bP=`Lkjr!I+~Wv3_=F;7cdlaf%m zPU@$q1zgmW>mGC2JsL#3hb>dx)i?ATWKS`6ddlz}hUDSsG?tl05)Olwd1Xw7{q<n4 znd|i6g0J{l?y?I4$i34u3%n}(hL2*G>VNJaciGeu<uL^wm~nVwJMsL3GCJ{+_&*ID zVLB@k?+AC9iFG7ckh9=*CW=w;2*U&IctiEy%T_St<T8``DVicXH)LT{Kc&<Pdv^oH zn7#+!Z?SXZu4H*-O=)V}`i(TM#hP;mY#GpS(;?Q-G2Y%B2RRmfG4K8$67TdhGai&o z!?&cH;%zP}9$&<jk3GOq$ldoEZhdlAOa)!8>BPL(HkC2uI&mVbfTqI*kdrC}Ekr#l zcMZ#OFq-Tui&eko^n4g!Sv*495c4n&<9@*yCtM6zLv=V4%lTGai5uhC0g0S&DWV9( zA3_b0v55?HY%ylBWvcWGsDP1GYL$49S$SuPe_8H!MG_!C#S5c1X*wx2-L6s*GS(Sg z3mF0w7M!>#9i?Q7*Z9Zq{n8NGx0QwIqz*>NSo(`B>H5?&F^nZ;&dNXIh;KbE>P=;M z);HT5S)`2J<Wh>%No@mB<zuxg@i7$jekUFDakrX`dj5`Pv=@oN;I7(<)AM6MI!VR9 zaWO{^Kd$FDyD9OmVbzv!+b{%{kxHq3C-n$kkwr}$pD(<aV|=8~qQD3wvOdq^U^{Ui zyhDUIZ~uL)2?=udJ<l9MPV?oWD89EV*u0se%*PPI>?1sk?iI-F5u{cpRw5YwGLu!t zst@H#MYpn-(64K~FYZTRNs@@KpjC?mO9_}&?&1mbP#}IYKanT!vl+La{gvO3A=mo} zFL&xj#OS)b;AvY~wEDM;T`4>>OvMixWl)X(g0t-ePQDdLf?O)Jwm5#XN(97AGG9mJ zIT{p8S#q!_v3Nwi#ILl=5v9UWiUN?c*aE;iB;|Q=@Azk22p~-XldfyCrFRyHBs}t) zITz98B0tr*R0-bWuHK}F7I&gr<Cw9LBFN;(6)!XLG&&rMTJEye(*bJ+V<o@fBnoMP zQQj5!9ifKojQ=W3bemP0(<qge<Km>+Nao2WNz}`@-miHZ*aTKd41%}bRu;pA7#eoS zS-t})kqe@5^;Mbksjt(C5u^X*3wzN1?uHXG3kPBCgC@xYt8oO&4T;e8iqvq#K_rHs zQYXdFaNK7XTv-$BhM+!}<0i){@>NkpMn-Y=KaHY>m#xOYC>O_{kr!UuH31*0TOqN$ zy)1JoN*&`U#)<4W`d5rNnfs;8)R!7=@vA)G?T=CL@>LMldylhuRQ5$DZmrxUV}?5g z73Cziz&FCF$J>c3ps|T`5SCZaDS&;ggCJpzE7SfQOJ7@7U;W(TNGyG9EL{;xFF*-2 zVwVNmDOX^uoeSp`aL&c8zE_mN#`E!DgyM{-hil<;c0I4Io`HVYP#UX#-dRzD1V<<S zGFIJK<}ByhFH;EwtMAfG30yJnXXsy<+aRr=UfIgHW13kq0s<1qGy}rQA|9mBLr^tI zSA33y55G602HDW>MG;}&P`itNlbM8W0N#pxJba}BV%}fsy%(W{0OMmK&Ne0geHqdH zoSrK&01GDxlZd%V3=0K`Uvn~=%N@VrQ=;i{JFrGtdX!uJ+LBVYs2-n*4{?e?>v|u= z=27g)E%<Cii%dK&6DC@71^i{Lp{HnM-ONVga8Vi7PMp{6MT}Ye$XX^u&)lRWop|Vw z*Rm^`)BvtL+r({YGrgE8>3i@nm^~$(g^HAn!gDo-Z6yo^N3FA2i^M4pedD-z3`vMq zb$y)SI&vbr0P)qHj@zGWy`j?~F-?I*d+6XqO=&e06I4v>sKv6l!fo1#6im&Py9_0N z{VVPWjF(SEJOz7wB84exF~jnWwFriR;W`QIY~GoC{XqPjXwweHfrei!{U3vEsMWh9 z2+bdFoUjkKQWqg*MYu?>e=u0Eo4cuF&>cesq(i+i%3H3HmXY|TVLbd_@&>Q>R$Ljb zQ-wul4OTs?6gQSmebbX>8jE?4Rz9|gWfaTG$g9?iNwqW)MGM?D{C;fj97Rnjt~a?9 zl3MYjf~{V>6d#gXN^7fMyJ=9$9E~m{jSj2YJGred5h91NVeIK^68(8Ab)>)9Nnx7i zCm`}v*YkptdJ&UF_d}HS!seCwu+CkDTl!hRa=~gT51gfCqY5ike!9yiHLqTUhlpj; zX6I`(FAMmBwKrCIfIAGlRA9Y!@BR}SF}6j{>|PoSQ1L`Vsk8nF@6qIQ&vw6lsnfHF z$$KN}^t8%Lo6|!rz7n@^9=cF7_@FSrMoSnB0?EN=r(TpOag!I96*6*3iWO?C4)p;E zg@KNtN_!rQAC`Rn+3q(k!QHWFw@bZ0nJ`1Y`Xh#MN$SZG<^)`&i!cZG;G2jF?iu4H zP7govTnI=uV*G{#9`tDp^t{r|9K*zqkeaIRZ9fP#tZ>W`7**aXj^lqcH@(t0{8L=K ziku~mwTiN*yc?nMITcWAQ$6PiGfX~M#^K`VnhFZze;y+TzB6W|<1aK`lK##M49K0x z$!_&^74hJXx&XG$w&R*rNa(8pE1G<>2s&p_qjEduSMf5VxAsirVmlT|SSY<&oLGl& zTBH@lf{&ZC5e<eh*}{2<D>5mkp&z`eYV!~l5v~^ouUIdxIYu*?fP`QaOmZDu`52}) z=n!F}tM@WFbq)9sl~LBK38~D@LRiUMn5)i*_i)66MxgNC?FA2p5ZXzFP~dXwd}<ut zyhr;pg?qOY{^j0yVe7r!&lkiCzKzesZp2hubk9nY(AHY71&OiJKeX=^Njk2VMFQC# z9^k(rks7oFEIZ!7?%eCGUR_~Kg{n>8lg&0p|5^yy|44Db2V@&QT7m}$9=PP#0x0u3 z6<e1%9<Emx)PXfC-Nb~)Cp3@uJDbDi-$8X)cS~fW&__(Ff5IF>*GZ|xtrm4vI`jcW zLX8_(?|cb#uCv+2Y<6>5fHH}7!Pe9+qzWGsmn+XlMVcS`l=wi?S$~@ZpmTc80S$zu z(dv2KOw`%j2f{im3QZw_vNV5!R}CLHAW1~E>T<go5L7E+yAP|fxWmyvx1YCB14uRy zr)N9*U*;kFw5~!AalIj@=L&wddKqc0!|${9Bjn!?&|Xvxg6`^2;*UED&K%A>$d7mE z$6>>7L!p?Vu$7!&$6^BV<I}L1=9mUbX#^M)IC}?VRJc?n+^IvkU_8q#=E_}~ce(?s zCais4mR5^l-9<z-6P(l`<UNMzOtXyYN;A)4uE0NPwmpE>8Yt*f^Om%%%-29yxhr!m zD9}GLXTx@dGZeL``9*V1HXwaY>bvZ1=>($A5@2eW3%|?`gl)Yy`Ep_AW#s7FKR6-t z6m0YTgAXI@M~WgM>}PR5GWiNVm);sW0v!2G^0H)KqCqbqN7O-Ly6YWRj=?m@5}`0S z_6BHSae_}T?|EAx3BQ)GdNTjR!%pag-2OYpqaQl!kCsA>CcfpYpHm?3GZSCNd!Z`q z#An>zIYqLU{s8|oi+{f1{@l|QAggHtj;M?1uBvoW*I+H#y|e%YGYfB6H=5+~N^eQ7 zy678<ATlvf;G?*QIl&Nh&wh#E*`e3|fFjN97EL`keljwCp6lJ~q7Y)<J$*tbI+p%` zcFUGY30_DT5B&&XH)8MzWDWq4__NziVDuX>dP@GkF}x1)R@b(-;c^fowmUNxfmrV4 zb<ycAuAPX~*D0ainRT-+kJip|6%?thoi}sVM`Lx$X+(jiMe3umk7|-Rb(ck^*Ughq zfrd+?6kv#6Q5R^4&aI27*URc~RqgCq(MvCxH#cB8J{qWTBbOn{d6(5qkItNRSq`YX zq~_Av=q1wwl@;erJ}*#Jb#8S4CmI6RHn+a>lGcWrX($BC{JUg|8(6q7bCs2q&C<^Q zHA|+pe`D<bstj&%U~J%Ubjn~s5H^>XBMtqJ)c!|~>OU@U7|QlA$R{5L`Q*b2$KVO# z;S|VoJL3Wl{2ll^@OR+vz~9OGAB4CWe*vCCJh<(u0LwIOiUZ@}ey4vB7xxAW#ssKc z<?x_N`{8o4q6w+&cN6|dglFE493}inZtubMZ;<`v`8gWaPKCVX<fVw!YOKlfGwuBI z7S^uc^|2*6U)Qa%YiMgZ*}_Xpg5_}Xd<M;xoNlfy2`9%aKj_oNy+yYd77jxyw&qa4 zRd}}Hq4_-OLdgo(jUp>tw7g)XIIzfia9*Xkhd(oTUnUZ<koRS7EeS>sEu2;o+{!#o z&~&O*sr*mX*cTWU#>K<gji!Y^BDY+dO-pT7Zn-dWh?N$^5jhk>%~@IH+L9oTW^uhk za~Xf+?#Nq^?Z}}Yfh;ont!zcYz9Z|8yFPJqC9mLwobhaP7iS3mLz>qH+I7j|Sta4+ zMUZ)}0moVtB>9cgW7MuA;1F5l`6Yt|cNFrn$lHqwuK?-AEb|baDosn-PIGr@1^CSe zQItggM`e{wTj%*<%G`!v)36QD9FIq2eZ>_Bm^RNdn#9*=+_Zc44dP*z6O3v5m*bsy zqsFEE1N)f9`!p_XAJ}4zhq!uxk+u%I2M_u5$pJ9kj)8qq;~o6+f-&uO9o{Ls+pX)b zLVO`p44ZtqHN9!mKi7B&V=#@hYuGR0A^j?iOB)6DrpEVZT-qkELy;fG+o$st0!DMZ z#@G08F4b)rWA+Cc_Af~%x9DJ`J;T06)5BAYIeXou@vsjk(P*;PRD?zTM*p?+1<-z0 z^QnMMW7@;l41bN6DenMfhNYY}K3?P88YbT8!+!@i<1PJwB9wlm!;B^){fg$ZPUp*{ zhe7@~WTf9jdh9glq(hg*==g*@_=ob~)AHagdGLHP%**o7ugZgeGY|f~Ja|4?<zMHa zAIgKjnFl`{bKz*^d`cdiXM0DZug`;Dn+Lxk4^AD1qw)V@9{l@xaPB>g#%FsT{HMSv z%RQ(YT7$Nq$wU8A9z5T@jN^(&mlZ!A_-N^zoCoKph9xVWb%{)O)@4bKkHkcBoDi=z zBvlvew&no7Q$~o6(=AsriU7HI=Y+)>z6%%O&5JLZhbx%dTjs@Y=xC9YX=&b0b=hM} zr+`@z@@y<dgq)mO+ZHy@>*!q60U_xdCbe~S&Yx5%!I(sRRAv3L;PoPNEl%~S#lmgm z`mSqj6c;^rbhdPLwKQuPY}=C&&2MUIX%`0aHqRGcfm+U<siw@kNWV*%_@XA8p(+%M z+GNir%3@YjEFdXok(XEH+_|_7cU|)9lA_n@+D1$2Ja^flNS>S94s&AKqsWQ>Gx2m= z4n4=HrhQSD-0x`LP6*P`#MB`{KJqriQN_~<&W<fw_%TS3>o|=7eJ<K8ktIK#R~}t6 z%Y~+pIzc;dRzf{TCXt9RyG57-bLm6InsFgzE+ixH2h3s!hX9nNA5F}j_1kp){Em4| z)Q3QxS*iRSe_j<i{gb!{awHVH;&N$u|6TEU>=B8<^bj~14|c}H+(`h2)+u-l{&fpK z)xyuict}HUuKf-Dkr>Blh*N&f;M4TFllW;C-k1m9m<N9%5B^FXe2iY#`r|!54_=uE zugim9l?Pv(2mic<pKg`Ixq98qbe>`1pU^nh-(1>tlK`ecuaD`RgvXR~v0m32`aWIX zV}1A<jhAVhe9p4?oZ+J%)by2k=ra~xVevUye>j-*NW*~t2Q==F_cb4VSm*a<eiOpb zX}80tG;a8t^|iS-#?Sv`p6P-i&TlSLZntXO@CobuuCVCs^7)E|pJwrSD-Rw#3`8)D z*QVcL;dZ$}-JKZHpN+?)v&q8k^zXKCn|~EQL}AFszMn2;;r!My{O4Qvxfb4T;pbWS zdJDJH^H&SE(|@>L{4hOse!~`S(|^svZTiP8+>ZB@!@(HF)MK}<$1{C+qsGtGIMZ_$ z9#al;E&M|kzS6?&bndipJDpEhIQN<i|KD4<P5-8apJCBg9RUXn(^-kf@R?)b_Bect zh1>LhvhZq)&t*r#0Ym;a{(b%7N!)HH{T6Pg|4=OxN&2(#m~^&TxZOT~V&QiCeAdG4 zc>ikQ=Ue;>j)nt<@!I%ddGKTN;HTul&$aOL5QoWE(!%X>{!a_H^VMhJb~=yI8#_$@ z6pQ~!dGLxn_|!ajG!H&I58i6wcKv?B!tHXn+rsT~c;3S8df%4^FV-6%EC-wZa*eZJ zGpHV30+0J}-8=%t$AAci(*x;GqyuKG#tolS6dd@l4`-XB`LxEFo~d|Dy+7pRUqfP; zUt9DahTG5|d#rd%`@F!yTQqLcbFm@|theax@+{FCjE4SlO@EaSZ_)S~AKszy-9G$A zjsMYyuhjT5y@6)py<6j-@!{Xl_=Vi)gfaBWg{@v6u9q=^c8#-~tMQm}+mQ!<DGz>~ z-v45}7n(?6cW9ja!*~q;M=W}_lMQ%ie(u8`QE=eA6Vwa&MDQ3sw_5l`7QWb8*PUtM zrFf^|G{ktf&;b*cUxm}p?7uepaI??1z=xat-BlJ|tKVs@w(vR&Ut{5nw~s%x<u{ie zv%kC3hnx9y$cJlZV2=+EY4?5~UZLGmFnDJ&_^iQ0)6Ig1A;xmsK?lrA3uo1teNFDm z(HQz4D`#M}4}V7ECY*^k%oiB>=QeDEn|<pLJz>aBlZxAn9|jKzs{Y5rSA(1UUZwpF zzDBz{e7H$Zj}LFuk(+RaPoKt3eHq-elVa^}@V+sMvC&g&aMKP={02Ae!RV_sxY_St z<Ku72&7{lFoBe+7OVb$K+(%hTz{1V``cxlo`h}u?@4q1gWm0r;WEq9^+h=uuHy)+t zMcW)k`6(RMZeulYFo#*GzgxKcXFNfIFnT(ZZ*b!JGh6)l^Gjd6#zTL08)sgfA@4Rk zlgaqGhO><c|Evw-owPK@=Gek_T|M*?(-+dV&qKq?6Te|Rqm|!NoP=R^>WEl=tRsK< z)dM4m>0fvi(|wY%_4J|9T)H*ez#RCP_bd@!zO2LB7~lQ0*J;d`&A=KRey-2Mq~Gvu z#mi{<Uvq(?Sgj*u{yEo~@TUD74$R+n7;^u~{C)2_Lpn}T;aBO7!Ou>z^vBQbfYIU) zoT<Xcd=1uLe%Sx~mvn}lbIym(s|wM)dz~Q@x>Z{E8<y9w))_J_2x05$>A{WM8*{$8 z#i`$7%OHwQ5uWORPLWcvE}N^AinvfOveoDmfi2Y`64I6oFjReHb&SNIV`Q#An+Cz* zQuk4uPV;FQ`5?87oCdi<$dq-R?&4_o2qI`2c}{B@!IclxnE|CA;M;khC^-p3yw1`w z5>q-xaH}Acj4VD^WSo18&$n5MnvpAT8(TFF`wes*ju?lZ<(V$<MYtuupmft|)Fu)w z*!>`j2*<U<!TNM5j=xi#$QeqV2vbA;m3@$1w{(i+)RYLthQ8tFN9aUx(<`_vP&!B0 zvvAEt9-Sk&tuFZrjxb;7rtf2g46zz<-Y~3Hj8x#=wKa}xs8iS3jjC=Wdq%Lm{3(%j zRpQt<GPs*Z1qUsWS5Z7NY0B&nv_~*voIicw&)va5=V?6sr{bVk6y#1IYC#PikXyzP zeH;d?GP+gd2F>1!4kX5;Q{1<5d&h5=^fPg|wgaM2MG@Y|)_8=o!5t3~hK@4)EWknU z4#e9q0i}Mlm;MsMcz3ShZ*nz$r3_lteRKVAJ1g$QFM)!@ICC%N3AH$0nq<&g@BThm z(2O#s*1LBbUUALlm`ML0#zdCA(0Aa%Kz-BR`leTzCf*{MyCZUS%xh|hd0k<izg9Or z#=PsK;30ZY0~v`FOUBvIaR?Y1Q3o9Ed|HkOh9ybG@k*vFsC12})D@cR{R%Q4MdMnf z&>}gw$o8b%#hIz>oNz~G<AT1(tl7NCG>Bv8@rLwth$-Sa!+DUWyydLq5OlvZZw;C= zkJiP5IQEYWQz|YPgEapiqUoz4vn|JDiAM+OWMW6H1(iHM>JITCG8`E-@i{%54c+ut z_oD&G9g5HDcK8TwcYu>2Y^3aiU_QhHn9#Q(e)<9!cOWG}NR}3jGiU%f%Z`)uidFKF zZs9SIVin74`bVo^CypInWX2CAgbZ2J?{>py@#Qmmi%&@|4HhK+z_YYGr)dS8F;IJo zWNvsshmWQIE3hnxlb$bTNe5CyBvh^lBxxpHH_t@|Q%ng>EZx!=ztE%yx;#J|MY1Gf z>hA~{bsi=P>hTCMC=T3L#j3BLyJROajT71(WVSSZe(Ngg1o@ZwbS&A4^TCaFTGNT8 zsEbBMW@2}fkL(urK;2T>D1ts%@o8*V?<L;vlHHQ+nvY$Sy^oZlC{b37fQC&W!sF4& zM}jP5UHneZjp!dJ11e1ECLs%uGMlJZ5<1Igf<Pxu3O0hX(ZK>!vWZ`aq7;)w7O<-4 z4VoW1ij14=D^3r;crkiz6l=2#qVJbO+xN@VrX?kC6nZ}?D9@6l2aQBdQ34KL;zJr5 z?bC&m)eK;kM+UACxMqS)8dg|^h2788;7EFy7`#>Rfh1vpq)l#}UD>B|gqh&-pgNq5 z0M&o)n&Eo8-88Q0!;HBM$J`G%Zf|?xLGhTo40$}@EIG%mhBQcK$?36l5yh3piIj<o z$ScADd@7Q_U~-)(q`LBI_WuVM@)7<F?_xW_=uoyXj0A}{+?X&1MGux}NNA?ADqb=R z#Ue6o$XJbwZaG}U^uWoep#w)WC}lIy8#_()90<CM!}0djh$FQtaV`YOVnz3^feY6U zqKz4m>BtVqt{ehE6M9LQ-dalAh#Qy8VrD`K$$Zqz`KaBfmE!c9lOd48WT9cef>hEu zy4cl7IZzV>bJmJ9DhdqHeWkTN+DstBA1!;$dvM*bn_kI^8~q;Kf36DV9rxg#`)=>S zg|?J1W>S|b3w{FaFAqb0)6OsN!H#-A%MI#btk8m3y-5zO%U&T~SJ_t&8I9AaR&Ibf zMAyMvSe1#qs$!8>DH(=%HIBQ&&ky$;h?hbjY2BFkSV(M^)b;F2oXFd{s<M}4Lb?ba z253;>tRf)FLg}K0>?Nbbyg)F-cfL&EOXNXzis3WRK5Ho-y9>*^zM-Pza|b5}Pl!DJ zTx~Fh)g{CS<Hzf`<KrXUub-ZHwELEVK;kD6ISo4e+i1ZPm3u4uDxZl}zZ}^_&Q3B0 z*5HfuJ3SqE_x2}WI@t9dC;!0{oK3aGrOrM3yN(+^S<d)-{mH?D`!a|dez9@z>+d|2 zg6GcqBIwc?j6t7*+#8O?8G7l{QKts#(Z=s#>Tnmf>m?wpvw|^`KHlMNA-|W4lFx(R ztnuK7b?MWc#}9v0wXad)>nhn%h+^D=C<_tgZxPGlX!rSnhge9I8%Z1=t$t#0yRMby z7({_G$FWPZKYLF@{m-*m8Hw&Gf%vf7JF@`#B*19N1~LG}BYHe#x;c2sZEcGn7?bLg zJJ_7m2^gqJoH+ul8Hd}nm6xDb_jR3v8?MJo0SpxHVKFN%2?&m$P&9_c(r-8xdyi)Z z$f~!45e*$GaX6_y8K<EKN^ZnP74?u&ATkHS)82kI>L+xgMwOomkw=JX#pA2+ff1!V zFZFs%?020_0}*F^m0PeA6`Xh;3pITF?Az=19`^*f#R`V&d*grGKYXO&?<R+_S{jZz z7yZsn7g1&j8L6tRIu+}TtcoNE7kf|T8ZnqYGyFq69&nk)yQ>!$4>h1*a7`~4SQuJW z`Z<2?MxK3Z?x^=SS(K|AoRhE2b<>xXrn`!x-kVYH=R;$J6Vy}<pi4+Up+=K)DBoTA zsyD>JZvqED2!%J7S8?z|H;<RQT$VQ={<*pMA!Ask#Z~vo;0NNe)T@aHqTazVFBJ0@ z1k*LaDMdF2QH)T-G`yxZ-Bj$RYf2xSGkf-I&LhV`ib<=p*oX8S$C9k+h2A?zPX)c5 z-o?fHUdD*rw5xyr2@|(?M^-*25n<g-?M267(zya%;T9~SK_9`b?w9no4?_9YHuS^# z^wjctjLk>5P|L*vNMAS<MDvJwRahnj>#JW${DzX<kayR~R~(t>3@?%Owr7SxZ_3+V z55#A<$<5tNZ9GgF&b_X;FFvvRf&fZNUA#W@VYWn6`jL<n4C0#w1G{__xV>lWW<5ea zP0f>ZRK9v8+*k7x*wRszmURZIc&MATX6d~;BK?UV6bHs@perw4l6<=$ej=5ZNs0!F zI0aeCu(G)7)s{{y8He7XJj?V~E_*n>py|J_vJaB4x8eh}`;9Z5p05Gzexo9?5q2OV zVvz9#-tNBrMWF3NHyIc3c4IWckR~Ku6{rtq{bxz;LZ~0Y-~ISL2Vac7uQSjt1ezSA zP%i@gyz_By%f6=}L--gZ=}f*V`~HI0F!)R_peXI!L@xqfUZ_$5wuO=Jmu42Dq;&s* zXF=o#5S@h<flCOB$(AqXZC8DP$2()`%S-Fg51@DIV2YkXb7`Qy`q8c^w6gs__TB|P zs_NPwpGk(0!H^R$YHF!YZQ3T5YJzAp6?INB6VAW{BH?AL1qC8pQ7M@r_)eG^;5d%b zYOS}o?e$mtu($2iR!tBsBp?aUs(@8dtRlWLMikNVQpx}O-DmHalOyTlK7RLe|DWIa zd}hu*>#Y4+d+oK?UVERtrldS9U14Ht)EBPYo|Sj2i!e}ZL|r<HN-#w2XBuIASJ>d+ zwro?6r^H79F_6&GPU8YrKI*{>NY0Zt$rDa(?M*%6LL-G!1@Q6Px%f&O%_>H#WnUHT zgrYFDNZNxcbrnKyGg3wFuvrLsf^$1zQz;>VAQi0<*=bJ^YU~|s0ok5fB9153rawd2 z*`|w+-=<pJ1aiZ?t<_z~FO0^twJi-VLpLlA=i6u;dJ(iXtfr;i!`ZIpaoUwfN*t$M z*-vpU!!KEH(C;c$x9B`)U1lG@E-f|xv3h)f7Ic>TN1rZtznSG1DX(EPS;y6`oY+<p z+d3sI{?5XN)Z7}OQ;74!HbF3!BZ7!g)<CDE(1?W`g#267cGGZt&-fPJhto5T80i>f z?^}KUit`g7L(3t6%AvFC@jU@*WEg>XyrcE0D3ns66G3)DYF*0X8icf;Piemx$1g!R z&ZgX-3lX&tN3WctAMEkP&R#bRnaT25lMR03_#*%t%>69v!w53R{@d7JMQt7E(MiXH zYGQUDZh!M4e#PBeSA}%I9uf1L%%x~&C705%LR9r|rc}T%|3opvEas!cUsr=aYm|t8 z;TY?dIRsHmd*5S5zym7cSeds)dHO1GUWNF^w_Hm;M|q8tCV_(Q_6z%dL#-hR4MCja zR0q>b9du4k6B`4_;Zgo^2rI`BhGQF;t0F84RL*#Fd6L%6OgDal4@%1SS&ppy0kKG= z=;=oMhN^)WrW{Ry>aNrz55J*a3{+X)bu<zy`dQ~-0e}-j#YtFNg4AAD_}6fvQIUm~ z_-E9h0h;veFa!q79zt^o<KWkD<;Dgai7{8lfrv;7-e)mZz+72-G6zqd)wbdm#Kkd< zK!BXkl79esDBIg2-u*aAr&;e!l<x;$x`CA8xnuYS8=ndDq!F^jBS6jE32?6df)&&E zS#2_yBW-O&W?q4lC{#0@jWh^*3e!{`Km~4otFM|5P$zK+QDUEmgC86*i^dV>2#Dz- z8Yg>X5l8?PqppG{2E2^5Y3iYvgTD(qE=8>5o)ZFsdmaUX;Nt=(jd@Imbx^Ksj0n;J zqcnk3di$Ggz}J%BMtMkq4pLw_GrM45pakZLYas>DHTjMylNU0x`To;<+I}EMfU`t- ze`WFMO@)15WZmP3p&ry#X}9f1Zd&31X<%h@$Dg4MfHuu*wAELj<Kk#0vs(-+M)$E{ zn0r8>E_`M$PL}upYWGefc~naj6A#@F{cFJ1uw){5ejkIkVZlV_PcLuO5+c>BHr9}G zVVtcpHw>~s>udr=p{6&%iqVK^q9tqS-F)C8CTx5mzo-qIBWOGWsyZ2S$q<aWJaYxw zy&+Xwfzf7rIDeY2!3~+Shqdj%L_k}=1?q<RR5y+eo_A2|AhBKAeLY&d11Qx8ExjQR zN5bT_^VRA+oDd7^e^(4gAkC`*r%x)y-^1lJPU8@RsHQ#e6m^jfj&v^H2%zF5HMA?- zLznQVnDWg30pXc${7pAb&8WpW4j_QmapN%37$tfdvp?P3s&^mB#}E^eN$J{sN3<17 zKmcY;nJRizKuflgC}7;OaQjopGXSyI+}m#TsmwR<a^2s}fZsuU#ej)hK)K`a)K?*6 ztxhGm_E{V&XcK@IbN>PdE*XdN(XGL&VD4t!tQ{RYgY93Ybsk<Hz?ZpblIi6>(P^?c zB}V%RT-6kmYDLP;Yt~UM9VEww>OcHSD_i`o<9CT`a6HSP;-8F6aPAEIML2a6lzR5f z8VGn%CV)zGvxmhm?K{H;Ei*R~crwsS`n<LmK65i)l=X?Di11eHoP3%{%PnG@dT3X( ze;ZJyjnN`Ih<aMH*>sxL+2m`+Azcw1Am22m8OM~=ri16Y5IDmEBQ!?qtSf8wZ`P)4 z#uMmRcPgJ6Hj~mI8i1$9hBb%GrI@?a1>!XjBTtd{KvS@@py?OTFqS?fWeBM&WJoES z?9(#j0-Q53h+uE<e6HMpXA!Iu=TQxAM6?Cx*Fe@fg2P;vmEkCL_MKAegP}o-zb?d5 z{x8Y77)-?zc-i2}Yk&hpmX+7x-QUZ~v6I<7Q0LgWl#?{VX2zo^d|-t$UuGqws50V@ z%|`3zwSEg!tIB+Y{)s+)m*~?R%h<ywos2U};$6eLF;%&TA`-I9tgUDrg(FI~h*MA@ zH&$}{3$x$=mwAFmba{`$Zt+23<}jr#c&YE-p<rdjZu$;_RWaCP%kd3-g58)sWl0#4 za-o)Z8qWqLWomK-CFOD<86h<c6LVJJDJhwG7U_ZNdmt8ZyG%$&NLC{~DIkWmLFxv~ z+U2MP-s4P76gG_GtQrGCL}%t9ArS)%ItgbJQdL2VQdP<IK9PXcP0U&!#&&cA6vZ;9 zf#;wRpcF3<YEvJ@oT>rLxE#gu{FP!Y*OJ#EE{nAgvvAZia}eqcLuF`^>qpz9NUl(l z3;ngQa^+KmQA=VsD~Y0RwS`#zHI<iv({cLFuxIud_k_KPKhaFYo`T}r2CvKpvZUFa zF-Rd6!oZqhdeVR#3;Tv)5S+I&?7i!W{a~X0-^2bR>?_dMVWf6w>p0HWGO`H!N+)Gs zB=rknsiuYNSujr-V6MKeq1R#b)e;nZpRxpu*$!I+JR?M}iXYC8p2ah{{gz{gziERB zV3c{UuMnCMjUku<VanQ4LS=~g;;<amfYE}so6vtgkA^Di|0(B5h_|1IGg<MzqwE_z zC$Y?SvI*b!Z_Vjzk@RC+nt>HPVjk=JmUWI3&fv37hKi&fTaAn(=Reklo0hl`Toz8% zV?E&TG;LKGo{Y37fZt}k1|{xXgWKeE(Jhhm_-#fC2C0)%jfJ{7voO_I1d9nmMZ#yq zqlgOXXbJi&28D2d76Q5HgR<&V+nkCwVNCbe@$&*P)I?0HSaMZ_ErAiswT}CWBtmWq z^K-tjMa{i=WXLRe<TdJvNjs8$8)))qF(^hf6;Ei;5>N16rzNikDrAHYS!b@v>G#q$ z#1%v%o!DLj@tt`IuVK5=lI4iYu2qJvOG@BiEOpkY)zFwuo5HTd_9YE?I5ot28*nAX zH!2&vGQi6dbB(yba?7U6G^nazRhp?~T0~NJGNW+n!if1Q8$Kz{w1KoK(~{GGpkgNw zo2(UsUJ*9yOEQ;8KmsGR02l-$_l0}wg=EnZUju;5sU^P3R}TJT995|dI<Lye4O~HS zvyKXSS>}&;8BR}yWdwA>N)b6LVjj)#)E$XP`(Rn-KBi(G1IM6$3R`2}_upojx}q0Y z@V-@e=DCtzMa|Gwg-A+7U5Kc7X2HcX6?J}0>&i?)2<*%yN8~M5hH2PTtpwR<%_ksa z$Dr>CjHnlhjLDqH@?7;0qm~K$u)7CStb;u`eC?2yWKXfqE&DA(=KDCeEO4+#9$Xe^ zgWBo-H=2pIqEhc2_;*&H_SEW~VRM@l@^6I??ZmNyIjJg25jG2ibk&kE>Y*l3IQ6j@ zDkaKewYT0|FBTDTXSX0#F<oftYtKksVhmPdsJ6!Atb|*My$lad$Kg`%=4C>7{cnMe zQ!>P(0WLfL&B@nwR1$`eu$IEu{tgQVa|jL*wXHNI%I^mlOGoAtqVVj4KLcdlN%*s3 z%8qYttnPw+&!3YU<W*o{9<3#5IG`QHNY5CKvkcQSa0=dV@cfOiiNI8UKxoEyiOg(k zP#2*6c~m>K1RmAig*%UG-y-h67Duy3QV*B!63>s9@4?+@7bT^gE({xsGV{FG_hXP$ z$PgZ~nl1Wj1w9?=UpQV~{vI0K+KiF;ClJ({*MyK3md6aU|Nd8Er(~W%K9uv;Qquje zXo+q>CU|4}^bNEnV0{LsXR_l(YmD^o#Cp40ms$0eD27;=iJmG3EFr*eL8&NCAgzS} z$7Ym)Xnt_@`8Xt8OSB_ZJ$`ecJ9>RM{lju=N}n~eaEX1xYvdR$`H1L~34sE*k*etP z@NhTG<T3WV(sw2MpG9{Fws-q@I&7wm+_WaqrEfr$VU)fQ|3Pj2VT-5K_!V~V!xB`? zz`7I`t+bUiz{5D(Fwl0y7d<s|Gio60s9J{skXK871rV$ehtr_}y(ct)MJt@uo+&^y ziC5<~<Z_nz3|82FKEW3qo#B>W@qPl55G(K5CA)q7anK!mk3uCz8pljq_NX=xM|4MV z5}p|fRCfu+v#JT9=M&A{cN<h$lIXh-J%TsjO-auF-T?^qtD=CBT470;hqs7vA|?u( zKn~nnwIMY6ujC7tQOC`<ROWlC$QO&Z&An|h-&+C7+Al#yEx~h4Nz`L)N6yfaFG7Iz z1O{B09SBUoYr5;H-Z|k6?XHc6`^8KYk04Xx1>F1JBGD7KBN)Nae5bqm9~Z^RrmxQm zn}@i_EcPhL9-mst-h~tXabRWz#LHsVl&eEkBC?p!EQVRr>Q-tYO`pU4ePE+14k}C5 zFM&n}`&1j^qV*Ug$z*Ufg1i8|4YxuD<yoX659a2Byk5e_;Xx?u96k)y<!wOajJ=AY zHww`!n%OXG(N2hCn71xO#?8I8WdpYu?Hh&325Nr5=xt+|m(g3x40#uWqO?S<o{RU7 zx`2bCL<K@>8ag-(F059gTnB^EHj2eAp3eRdgi)w^Hy65>6QAnoY}o3sLk8>9EH&QL zFhvFo*1duKk8%SkR!mNh9~-H(PA3eTo5JqRL34kD|Gk@LPED6iK$D+|9`~f~$C-(* zA*(>!CnK~3kM~1pWW@X^_QlM}ctX1ZckGyk^!PCr&J0K{;%JG<oWi2BU{N%N6@cBC zk86p8018d#N0g@Rkhq+aX{%1hc3okVrYX8c5Lnc_!Q5j}*^Ptpu_xsP(MCKIo|F&= z)!)Z_puE>)J_kXO<uB{xcP%l68L@pptzlN11kolSLZGkWWym6!Z+(2USd1-y!Gj<d z*kG}iI32Oc2<#eR^Is_d!o9;uPSK0Qy%R-y;x10crA*rd*+(5?1UH#!iSNViCk6Z~ zeZR2YX$gM8EViFfp3WB!l6@D88ivh@6)4JL=3Oj$s@Tbie9DlwO7OibyMUYT<qKRm zUseoVD$L5LFnbrThSV<@>^o&}Sx?KA^}W82_71AYO#8c62EV(C6)@kk1luOOv(Ckp z6u230!I#;?Z@X9mT+YL9y8u&%-)f05qTL>U=UzbjH#e`*dkV;FdF0Cpr$)UKz7QQ2 z_P=uD**sm{aO?3SBlOj0MbbC8*HXXG5@&&I4~_tQq&Vjj>rWZ6h0A;)Vm=?l>F_0y z$|F>jaN0RGr-n_O>d$VB&b^!+#ej}DFui;^jIH2>D4h%7d~~9N`wC-U{xmkyWd!kF zpfes?FmVYOlPfDQlcG0cZ<1(Z<c7DvS)wJkvhE`L)a)AJxvvL|g*k9xv=9a(9Qs^0 z9%c?C(6q$j*mM!RmQ5*)da*CmlHZb(rv!qjQNky~FGZq)y$kLKD+a)~_xrTuPjCn4 zEa8Avy<50lz<xqZq}Eb$Wc~vC1I|>f`~*T`0;ZVgc%f>`VxL)uce(D7Y@xjY>q{GU zsgo`*r)h*0L3c|nujzZ^S@|rw7+7AOF)r%b8>m4MFg>DDO+uZ5{6%bR?S<JaP^N9z zfiuc04``h&h5iFkt+G2?-DY!gVe|QQMbVKUPEi&tqc@(`>~AXJyQUJ`y9hi9bm}nK z)s2pxWOgIw=<M4=FCfWcoGY$vIN*K?_P-JSr?kXl7{T1zfjA=bAcD~S??sV~)MH{_ zE0z=z4}vDP9c!>OOmYjMC0dz`utaWC6OJif7O99<sfRFLbB{=_jj8r{us<jDtr}qh zVhgPU5G^zXIbh!gcp7mtyYVN^yydCTpJR7tTwV-!;f@ZMI~Y2utOO945Gz#{+hJ^j zu7y6CdRTNZI2(G0QMnpDr@?<^Rn)8Zc(5}y{shm4R%zg1>inn|(>l!M$HvYPM^nEV z{Yu2#LqPwDHhrI)Y5ZHFT3d}TcA&@g)&6}#j|!WARGmDwf?05eW%Yx_TJj7O3Vbex zJu%KM7E>I(cVZ1#!zJd#>wPRIch$pXsh}}df)EZMAt5mTEUbhfV38ytbR;D))z0PK zP?>mXz5=s+pgEX7&k!d-_Z7S>Iq^LXohh7(yzWYCBSABklW_9$7Nh$J{j$LXm1k6L zYc^-(Wu^PpKg-DXB60*LMjPwSx#FwKcKo~NbKyl>cmTA~-fbQJY)fV&l7X|v!fY}t zR5Fc725R2i5*^#n8|J+pF&C6&u`X3uX9%p$g(cZnx_TwXf1d4(gS=zsW9KkWc4jJ= zH*wU|HoOmO{)gem{kIFBEyeW1)_v@v@S%6Y=AXjdALoTDKP0|5=y@rkV3Wo^EwK<G zsJELD`3bJ@TZduuG-KF0ZEa^Q$5GQUQdiBDO@$9OR&lSaYOS+ra82FNsQ0d_VjB~i zdr_9*A(Fz5c{77q@}pq-f&SAS{1xx!Iuuqc4{M2f;2YQ|(`>?%tG~xE$HlN+Z%gZQ zx+xOwe-fi-g-G7~bLMw~(a=N`JD1`Ch8!5XdDeSFv}i(Iv~a>atO4T%$M(AsEpwhd z%CjO$i8_})T8uO4qu#coi?rlAD-w-hFb@rJTy&zG<8tP9dzwEIX<A3sYsov9OnfSj ztIrMSnd|HkR*MKYrCv+igrF!rj-3BCam<8e&!%?`o=h)j8WRz4M18bW98Vt|X_$|f z-^-GG1Fvx2brWt`Mmqdr?g4$QuMf{uZBF3n+y(KQFax~7NZ(by1_@Mem8U&NkRkyn zHAP$P)S%vsFu$r84(&Km{$qsXn!TR7h5Ghlw)dA|Vh^Wgfqh1Y&F|k2luRi=V84>g z&pwd@C>0*Ai;4CV3Rdz4Fa~zUV~sVzb+)WlHBUS^v?}opjpDpVXilZ($K8mWI#{|F zY$IS%4uuNwHX!0;f08V$CErK>YFAQ|mfUMS=JD-REy?M)k)D&EB_f`oLPpPa0JJ2B z=dkrvk2tRSpYd!RSIuoZ4l-ItR$FA`snr%4u?p!VzvyL|7qNtFtry|^@M9Q0pnzp| zi-BrES*8;KOdqj8D%=ZWm**{j;1KdZimiI?t>%{QBc~sF+mdgY&obWNRz(3tA=s)` z$ZFNhVo+VjHdD+I8qDW1b42IHsB5I$P(hM6K{Rt<gK`I7FlgSKzK-4C_`XPdP=tfv z#U}9^%MW88qp%z)pL(m&EDcaBu!}}`_!(p#;yed_1mxCW&NC7VkW)jdlY@267^Frs zYS#&r1iMQE)w|&q2W%}i5uQ#jtJr9hC`NR+6@hw)EhyA<&fS5XHk*vpU1Cy|H4mA) zunz!?NdwVrl!6ALxwz9nv{2lCUCvFyG!QKp_s7fIaK}uRHNyNA8)04g!7k9~Q~+|j zKyqb`q#oe}^Dznztg(>2!Lud&k_It2(g|&9eMLLX_HvUW4qeCQPfi(y-##-0l_SYy zIL9g#gX^PYXtga9oG%ocUV(%c)D%m3hkPzY%0xzxW~4?dScV`k!FkY)OOb{Tu;gy& z)o`=)G(@-ldtzXZcDTKlQTs<zvA{PRWpF3a1P{9y#IR_Ka=#C&BQ@kAD2~vMH$gm< zM0aLxMIu6fSjR&yL|+1BBBrNYWXl~Ho^m+1!^^*lk(>`&Vd2#C*zbU<CB&Kf>ECl= zh;1m!?N{Hi?YZ2w<Va*5N&QA3r54n1!MX2`&rw|6RDv}sY)0+-z4cfo9!FrV+xIIA z;uDafz8~Vz+^D;`D2)^Hx!)1~a2S1h`Di2F;3~}g98xaZA5g}^#~u=8yd7}k(`Ed| zpfWBZQYy(Z8mY_B%GlJjYZuCmb}oVb*@mP<b7PpsZq#mRv9{PmEh?bB=rw#7m4g&m zrMHdIcxAjupY}&?J7bR+p4kVjJvSc1#+aeAJ!PL;hZY^Wo&Fs!|0;%Rr@Y5#4c8L4 za*FV28q9p!-cAdE<ZP!uJ#V!WS4_+LdaS21KKc6A;t3xbaT$3SAr)GJN4|-5L~ae? zCXWV}Co_`iekyZ{gXf;I=l_Nflmidt_nn5;7FJFowQ~-{y=70pAv;h=TKYy#StbXo zxwx3YrV?!=rVm6>U*bvUYgk!F2V)y0uagOJs)`xxo7ilg-OL0{4-7B^djMaLjt-|h zbeI9<gc}Q7sNZ8^1g${=u;1ji_sRbB7-h4)QzeUmNp^hbAuW-Ia7f!Q5#uE+D915* zQW2M?N35K~;tUIz=&pS~fMG!OXc*zeL=ileO-EE3`fgw}bj$5nEH~D*p(w{stYJ`M zi)CW*KMZ8enVbk>BN9>o_f7_aH6D^)Sf*@nL2!Z=cz3plj4nfI>g*OIgd%x?%w-7C zX{7EUwvv~<bsoyf-h7Hl`GJriD_2@6CY5}AK&&^+2#_sO(~9unObulFfZ14;xeKpE z97q~p-z7Uy3F@oduz)3wgVkFPVh>X2DST?tyyNZIf#&#;e6csMb+}mPer9j8e`7Sy zy%SQ#+8B}f3c4{}l=!f~Scqi87?9*b_6NT*Ad$dDTL)6LMf{YGlBx=O-K)C}{5zIn zj6=^D?H|Ej2ZP;OA(OxYu)jab@yDtfTN_q7DWBi#>-dA!=CK&<aaCIMGhD!Za2xww zgDWrd5Vg*&VsC+%xMK-oHa1_!Gj(l8zS{cCS~0M#bNP@beg+o(liOoKW1WlA1wTH1 z*$|Z#sLAcoAM0p=D#qx)lbO{av&>}VBj6=~XO>e*Ar>hhR#xyG!qkR_5L|8umlrPI zS6rbf!TPBH;7*vUX}Ugbx(H>RUo=@>HG<Zywsy9wHaxvSZ*&Di_4<qmj<RG#rZPuw zs$=RR91K|xO^tdTeP|$u#%WU<L(`^*LrtzPE}ZY0GrN9TC{%OaoQaW38jU&A^eGeZ z#^EBw?&jk^<1R%1zvm)E&`?lSglx4Yuy*Q<DRe4QJ9V}ol<TW5;i`nkzUnh4&Z*NI z!_)PM^kqUwWa_NYv^u>>`8NT^97Fg_$+|A7n;MCP>ge3032oeX$+R#$s-S_IriZ8K z1S32%To;-nnnrk9L3_+$+k{;8__O?|)Q2a|n5MEJDlv0@QR-QA_(!Rq5s6q4SkiFa z9JE{{<Z94o%M=^JQ)Fn$)M*Xb;B=J0b@2>6C@VKjpQTtv1P3*d1#!|tL7g-q+(s8Z zDh6aYS6My{swM%sl8dKo>G@=<0UzxiW%!u$HIscSno~USW%kKY@umhHRAia67;rul zo*bGwBioUfNDgSPP}7Xsrn+h2M(O89AZ9`EZ^MY$=S$=>I^U-w<$x+$4q`<_qlczN z!c#)1ZBtlq6VuOuryJqA$x}j2O(LJ!iaDo+BH+E5p*hN*58UoZh~@If=7z`RAV;p& zQl{hpiVV5>2?FLGXS;IYOAyZ0M<V6`M9n>2;>y)2Th$yWS4~;`Y)$7h%z%5MT69rC zrm6MysItp~X6p>ui$p`8_8e3jtcQdams<?hmTwXTlW*jsL>T<?Q%^M<CveTSZvVga z86>OssT->=NigUgsrTOrA1dGfZaB5s<JD^@_)z5;iatZ(4+a14PUn9r{h{(53jUAM zXQ*`kAKdE3|Bnv;yXY{K{22;9RQnEvKNNhZem4|+sC@rX{GrnM-wyvr>HJ?+UyIwF z{{#6q1H|8d`f}&xdxjMZFZ9ZkMx0PIvY5u#A+EpiexR*u&;G+79~&aJ1P_p$|1;Nr zflt4aWyxt|sFGoy4HlH)Q8t*;L&a7%z!_JC@3Y~x$uQ4%<;4xncZrb8bqVj2;`uA{ z;HwTlnl;Mt<F}%`e$CE$C7jb0+>sX_ew*+-cO87n8Q2#;9<N>^60WQH2mgBMJox&% zEg!D)R(jw<FFq_-T$Oi;@TI30mjR)+xR7fNrA!ysqhx9kuQnSmsN%h2dF9JS)K3s) zYm{-fGXePFTbT!pcs?ueL~$7a@V7@Aa<zolZTu5>brxP#-kcE%F?hoC;<9=X#|Jb~ zU)*UrhF`v6(^h(J%TI$afxPdMIAs8Dm+78I9N`BrD(FV~za!saQ<}I4qv4d7qIm$} zQVH84>wkM5>YvUJ75i=@-Byxr@q%FSlDznc;wrl{LJ$yin1D3YnU_C6*z#>S@i=MZ zEw}qNv|=NFM7c+nfpu~Pi%XiMA47F!FIS&HgW=PxX1}<2?j3n63-YEamx846OEQi5 zOk;3c)Pu%I6^#)*Ay`~iS6l)=iWNXBkv;V~87H21t>CCe@qaP?C!WxVvXFKYB<>F4 z;v%e3!rBGIg3Xt(i*2yw682{s>^2GezJ!t2@0G9z_^rn!@!=~ASmBF{m)wyDH;dmx zdGr%l?ky6pX&4@aKgI?NaqjK;cjV=@05QZQi2I?$9qz$HHqA?l_qzq|HsI3Dqsze0 zM;u(ki}8oPa0mO)?fJFEzO<*dxZ<{9dU4gt0=>8<K73;Fy(Cr*Am9mLfNQKy1@D_< z5q+^t>*hi{OkzzgFJ6<M_OSP&GCPs4@Y9L6|7(3hDp|?Rdi2rfV_k6h#J|h+S=@!s zK>4g>W~GGBm2f31FOcx<5`Le&H%fRL`vEQ`Kj$IL^zW5$AwvOck#N=Dl`L5y;SWll z5V8_5$|X^L*=9l(0>=JK_#Q5{;8NwfA7R2D<R&d#LayP?r4+&gY;#;fcHvH2KjCoM zD=s0g5PCtv0}`%e)w_Vx7otxBszfZ8>m!NZDDjmXD?-vtf4_taSq9uOfHNI&kgiD6 zO6UxU-&JHi3%P~hxe`8?4T?+1BiwZfZ<BB#j{t9w@cryBxaM0o*F2SuR5gTr!8?uv zEax5xSF+@Gz*){cviv@o&fOBO=+h?QKag;r1D~5BnSNJ^h1f3f`GE%EjgkQ`mhcxO z{6Ps<@@c<>uNiG2DjCJ6<N3xcgzRPdRVP~bLVh85D&VYFmn^4b3)hz<{+`n;d?CjW zyh!2)kUy_2lE0=({6M({7qSdN`gj!es*rHm4lNQsS2CKAK^6+iFPT|B^OlhLHcEbz z<P#YG6FxKVLV4_EP(}Uu5b*Uw!2di1JTnCR@DT8UA>b!NjvTL?UmgN}))4UXhk(}( z0XK$#Pa6V0cL?}3L%?qu0)EF3@Vfy&p3ljj4S_$Dugmo^9o633W#H){(s^?Txa*4R z<}A2o-nH`=U2`Sf+1va~W}k$g$?TKO&*Wg3@H0seeJk4hOv0)?$j>C7ZGI*fUf!~B zPV>?Q3q<w|SUwhsmh(R;yh1Ks)DlH$TVhKWxCG$x`Sa(%&EwSzu8CRzfsrlmr#w@# zbXm`o*>Wk*l({@wmMmTrbuGAhN%T6GDBl&ac~>onTAnJ$S)j$&UV9b10*cp*u0g6% zQ2|!I`PyruITx0SB)lsJkh1vEYg^8mckMMTQNqtU&ozJkqAM3gTU?iqTjW|O!?{xZ z)3uAPv7y)4s@$@0QFGMx&Y#U-u?<>Xodw4R!N*zfCG-tC$MP=ex@OT8bn|)j<t<mq zSRl44zeS02Wi-o?=b{BI_GBa~q1mPsE-podtgKq1mrJrKhms(Y@Ot=Hd|uLh=@pBj zaH9B+__TERn!I|!)$^8IClXj-dD|4MBO7(j9F%O{Rp8>Q<}_cvXfZuH(zoTOJURmQ z?Urj%2Y701h%F8-TBdNM(@3PWWa*-7qUcx)ud?}bba?2TzVteJo>ZPA$tpv5iJSvx zrYyQhk9hw%Z;;}|Psk34?Lj`px(L9<+c^BNB}iPCK#uSt{2crg{4E=tb8H1Kka{BV z?eO3b@N0*F-!TMy_Ym*`&UbJ*^ZoJ=@aaRq7Yzab;SliO4gr5=2>4q=z)Pj-;VggU z5b%qKfd6I)__iV7B~p)a=6mK4@Zb>eZw>+HxlqSzm-rCy9}EG{mkJ`wc`km6-)<iQ z{)i1uRZroMlKQ5zzPf}{%{vo6HNU8odLQS(gsb_&_#xmI4FR7t1pEXhER(gTzf{gY zocTU1;VeIGRH|MV$@vH2ejB`4>b-=2-3D*9!R_>X(gwHpUmWx(E>?r(RP&K@BwUqK z%|~u^;H&vam7Gr~d_~V)67Ec2lk*IPuhPFl!WF(s|ECW49@(zX50TEPa$e$0XO0bi zhE;X(e~W~Zp6BDI=>K~g+)lRvM>>)%UBgSQM4joJCE+X&^Oa<Aoi_x2(1HIMD_K`$ z2>d&3_;M;GV*JR4PrIF}*LoX1%Olytbutenz{T?0`R5u5SLOe_z;d~6u;JV3_FV`5 zS0w(w4uL;a8djL^c>Gj3uaIz+uPSG!4gXvl{%#xmJRAI=BOT_!t56zNn6JJ3%4ec8 z-ycZ>f#O@mpKBd(#m{d!;9Zh$$H@kDrqe3nDqog~mnq@Sa;|gWEBch2YQ-ZyZA^-u z=SjFqzt%!?88&=79j<fWtMvcvvsOfvj)D)PfghK%UbPag@aru!*K`SY)+_lr3xRNZ z``Ud7+TkDD@a_CFM%o*k>3q`$x6|jI({uUS(|O4TzYr*jo;5xTU)5LHG2#-g>T6+P zQ?7(N>-&Ek_zg0`gG1nNbl`tO;%^%Q|0M^0v&4UW2>gQ%{1%CSYzX{zDG;1=zVr+$ zBH?zredP-|xV;^JI|O{E4Q}t(SC(7pC_3L@J-Y6Y@K4d%fuEN6zZ?SpF$caxcWoL1 zzy6DZ%cI)mQU_eo{{{&s|4?o#d)g5j{7k?VUw!dQgVR_2?h9WY3^%Pu*8~YC9WKI8 z@$F;>zAERxIN&OshlfaKlLKGX%Q{HY8b|E<Ok0IjFqS7^E6?jT_}6XlTPpE@i}-dv z`GJHhx+%Ngb2fY(aa4U*lZd#S>AYrx+xz>duUPnsuN41Z;DG<mLUa9-gfo3RpWp7l zUoY`94)_xiK5VQNQ29P9;pGnaYZ5*~!kKR^eyYAxzG@*5Zm*a7tQ_3lk0#mRcKq>Y z=kV?HzgNOf!0R*cJ7A%?*4yyy?U+}UOUIt?JvO*K{VoYtbT}&0|7^7tQ1C)_8eCU6 z;3rD>Y6tu@3BS()=P^6H>c&}j(#>9;ub*SVRlfIGkFJmd{woPzA>oQX+a>%R2fo_Z zdBgz^%kq4Yje(2#)`^hycd>-CoI(6lyLZ{(c0PP_2zWIsiA&Y%8!}(Ngfo3Vek%Q1 z2mV}%KWPa3pW5*4<^QD(-(LPLWDZ=aJk}G|p(LE;vFj(%uUQxhe}OE|jS}v}|D6qP z=g%)tNZ}$ri>B&p9ra+9=S;wr9KK!Rt9-AO`ToF`j=h`@I`DZ^6|cvKz|T1Fm7Gtr zF>tAT75oJWcb5M=R?>!lhs?KD!kzS)?ZD@H6tDS1;D5(~ugX)*%HwjDbEbqdU$Ug4 zbGr?0r~mynxLt0%>_}hDzuvRqGpN!(nUfz}syu33J6pn89{c!sfdl^=BDTx*EeBks zbK?-{-0Hwr<Kv?ePWeC*t8xEX2VAXx?YE^*lB;^vQ+dVZZ1?MJaI%uZ|2%~PF5-vq zQ}DAST+!z)+3xjTVq5s^Itsr;K&`T$f$+ab{D2KkkeUb0b-)|tc)!pA-&0@#*4W?^ zWtg{nY;eN{zt;vAMPUVTb%}qgoP?`&<Sh>Py|Vm$4!BP~?{~lh^7*g>K36`AMn#y( z@~7l~K<2|6>88f<*$((oyyL~MuX!nao-fLapI`G*@ZZYkdmZr2@_DTTuJ#eBJ72Rr zYTW5_;Hz;;Fpe!>1jSV*>8;XvUB<6+z}39QaKPV{_;VfbqY}Q{0Y5=LuW`UnlF#=$ z;7U*Ha=>|HA+KEyxRR6m9q_U8xiH^~r|PTZgU<n1{k_Hkzfh*5_7kae>Lq-k1HVzi z+Z^!AB>Wx+{7MN|`#x0q-<EK-pGd)Pl<+-{bd(--*a261SBYmZ9pW;b3J3gl3CB0f z;!^q2*#ocH4*0Jme2D|zE#a#j@E0WfUI)BS!q+<BA4>Rk2Ru*Kv(EuPQNmrrtn#Yz ze_q1N9PqOxyvhN;P{Iudyg|a}I^dT|_;LsQpCo*Z1FrU+-S2>}lK5Q?_zxs}mjnKQ zgztC2H%oY-l+%h1yCmG_fcHswjRUUusnG!+De1n@0Y6>B+Z^y}3BShyHzfQ)2YjxC zZ*jn{mT)!xsCwNZ;fEdgY8^|hvnYHuzo-~Km`~LFBH(~OYoWPjJK$=bxWobffh^Bz z2fRh5bFTybONqbM0T-tjAkKCN{Erg9&jDBKbK>Ml#8dTsOX8OmS_M$>4<uZCt8Byf zNPaRL_@gC!t^@9q@Z}EpITF6c0iP)0_dDQESjBU7Ip9+y{w@c6mW1zjz^|5Y9~C8B zs=iA9sj$J%#Cx^BsLBRE1Mq}Qr^W&Qo`kD-OrO6t{^6Q!!zXC2+*jt~OI#Fd5>-6Q zX<ruZ6HsgKCxZ$<AmNwFyMoV^&r2L|rOzZBa8*vFr>S)Am4#aCz!wDoY>xx3#;r0L zPo?9Nd^OzxSN--z2mC?F#}7K-YQN&29B`M^clSHsN{_`+cj8jzQTn9Pe-vEpOT5&9 zul67Q&;eKb4<B~G)&9dh4!GKXSSsZ!U$e-H9|8`z+J89R0ayD5mA;|UQTqmObl|If zgKHdcwQumJ4!D}v{Lukd`vBEApz>AoopRaE3a;i0N*_>gW%sjM<v;%KLsZgFiur6p z0U3H(&X3fK5*3j5&*IJ^2jsK5Rm`zMOG>T#NZgo@6f4>NreBh9NhS*!|2|Gik8?@# zWZ%#X$Ta_>@o5fYxup3EA?s54|Fe`!3Qk;J>K>9|wu}Ah3R+KdrQA~Qd@3OC0o;#A zzkB4swnp|#(vNNAq#x%MEK3!B_RBZbditClh_EWRy3e%1?5G#W_;wh>DxQL0C1K9` z2W0$v91W(*ui`f&aJ>3g+$1q%!?OM)rHWrBUys7w+4g+3tI0x$S-0%Jv;2H^mYv9r z)2%4GWXGU=hrHs<pUrc;{42g`#XshF>CC^S`I_ii*PiWDSM~Vws?I%c+<D_`e7@?c zsw&(6dE>|XeCPScoik1#&mD0~C{my2&ZX#v1wQv=<<I{IN93RZ0S>q{R}l`QTgAFZ z(s!%@LLhN4tOdKZ&Lv-J#;KxThr8>F1~}WQ);c$Ew(Ng?*_X7=WB#K{zlLL9sw$6a zou0;K6D~G8gTMV4N7mrzADo;IzQ=(~$fdfgxfjtk<<6WkcZSoR?`WNkdClf1trK`6 zPWB8f!)z_1=S_7cRdrYUu>qt6hv;Rk!{a>#T8C%c2f6n~YHC^PWE}KaV4W2NUp?@T zjtH$MncIQu#xY9$@aCCKZ)bHE9<%8isflGqZ@p+zt)tPSbp(cW?=AFh*E+ilvp_ik z&H6+@X^?vBT%5X@o>gG9_ZEP9-F<~{^oZl-4z|B}4D~hK&uJYf=}dR`p2BAD##pss z9=7P>?t=SG95IP}+#;VZ9!7fbFftr|1N=vAJ~u7=CVG80Kj=$f=NgZMYQ^FBNVyS? z&pv=NWW$3$l=#&`?=~F5qjes|JGXo^^0dyKl_*MMz6I&r>3^=}TzKKEPM5YC>0k*` z%9TXx+%8-&6zjkadAs$r2QAb^x3vMZq;<y`80LpFno_43scXw{R5%V7Lix2-uY%;n zGhe3L2H~oa#~yVMEK7`%ma(*Mtz!w!gzhl%wT|U1f1@ma=T07&8%LC&`2xxi^mYfe z&Tg&a54wMgw(2{0p__jQRc;EIyC$Z`e75_|!m8at_lrUAQ|>?DC@55?^PukE-%=NU z*WLYAVX(3%=zSh%dM(Y<HmI|t;v4g{j!DO~j@khdWeaM^leXN4zsQQje5ex~x5l2Y z+TFg1JxNw@<rmNZ)w^-5sX3;cr`VH)z~@1;8;82%1hC9CK;W777C%v*pk|)G#ZTmS zFbW!?emKrL<^IIpiDF$#a7XiwJ`@l~0IPl#OwFo_q~?_A{sY>|Vw4YO>ZFTC2h*PO zcrJhVan^#r8FlH!qw|{d^fw0jzm)5L=p1aX<TjKKXHe<!t~`;{uLae+!s%dsF&PP5 zWVrhj+nBQ^NMOXhB?qk0)(cDlnUpRn)HduiX9cv5QCf#?vA6$au+>sC;=i&c7LTOP zPVQ_-JyHRI*pT{76>ibbqJ9nTzknOvd13fii+@9qAb_gjfKtm}0J?@b6_gsUe+$gm zhBq$j#ahw}KsXM0#&GZG-!1^~tDEhwGvJb>DK)2}{UeHz)+KZW!FJ=pU9kx`aSbP) z1^k<|+Fkw+TF<Aa?FHtpuY_u>eo7x5UEmi3{L(1+WgEH_kVd$Vw&OT6Fw7LB=zqE8 z`BZE?I3FbKqg$P1*L6P<`SgaYHVuh375=0}`O}{BErvVAivM2!dVz0VR$<N<3p@rw zWBZ@9jxx^HhdvkvEFTOwnh_qa<L?+k2A;-~zzSDSFNb8%3(%`B9uDE7dpGLsds%fY z@hHgFcGMk&<LBK2JNj@?7!DQIF!1W>>+^KM$Ni)H&uGG-Lood<cgX*T7QHS#{)8Rx zg1y*6#YmTI?beZY(7Q2`_SAqNIOM$oKS;DU3cX}l|E87>-FzPjEZu-&ijz5`6Z|i> zj0AzshbIv&aU~j`C++ccGYHSG!ArPq&cShhBk>|+UO85H{x(mO?F|RFM$p`2_a7nX zg=o>&`k%?l^N_g{bQs^@-p+I4eIadq2^>2b?g+fO`E>NDkQdH&a6lza#M{av<;UW6 zA$|eWiDGX{NbB6f7Zp4PyiAX0+(G|SOHZ*nPE5N%^q&O3H>JGOQ`h?9Z{%r-FQCW6 zIRaXnw0;AXVEnN`c(Dw^UqOX#ei%f)W0-UmT?niI<%8+qdB>)tBkp39z>VL<g0dm+ zMwH^kpntcvYBy6#&m0J*7oYbrs)pm;afBOBc?+4Zpo%y(5C@a@kCSu?ntghFUmni8 za~GpYM&T!WqMn{MAeyFimTvCU&EAHz$B)-8WINj(cJD`cAqOnoyGhs9!y3LHZ<e4` zox1_`ZYHj_VV}V00ra454Td2tv=@ih#}dKw=fl5|`R9=N5f1XJ!l`{VA@c<kZvxJS zh15d1wZsD;T*&_?xCRBm>e4vqkVQr9S$V^KMC+(#ZW~!{BOk}mLdt{1wDo@Pey!u% z77X=(eD@yXd9o$ihJ&EXSVYu1!fv2@-w&E^YMoozh-iZfy6b%%%#Q+8m@iazr;DaC zWsH1o@bl$Xou5FBUI#b9{RB8Nm_NUKtls`QTQhS30XY7zq9LWhe?>#;JC*=5DZsSk z&yaKw6&}m>t<n!p^yNht1=Ca9XmT8}$p#;j86gfs4dhrPc?Cq5>KpK#fIQG0bn~6Q z&p<?D>`e0bPId|Ql5=^6W9rJWqJaCc5T!$=WnMslIajS?Ihp;~V2TBIzog3E4iw~) zc^vl!_YQhP0PA;lO-%>$@*3bQB>r_|!-MrGa5ER8P)wq%`k+WNqcaQtbMSYJ_snZd z&`-g!^2cmPch?k31@H;G&_Zz0VZlXKS9;Qdckbh3(EFs;xzFFPt*8|#fheF4nYl!8 z@Wk|`-n@{xtzQ@YI%w|F<D0<8NS=&`qzsvSiQvF)K!pm0+H4i-nt#*MiRR{z`J~|G z^^CHde2x1OtBrfDlr{_;mxp!ejzK?;=4@RNM6m?JmW0fVZtm0JjXCI_Up`(-2FMKN zb3t=k<_t7S5ClahZ+7eJtu{ax2%=k7Wy(b3ASA>MI5G$>tw20<QDThE%w<ySGrD;| zxQf=z9XdQDCtpHTHmi(@%&eHAfz3YQwa1b!$em=A5(XY&AY712W-`Y`^F#DKa0GB9 z0+SaxA;GH5mjnmy6h#=6|E0)3a|7Py^ce`NzfYfmo(}yA`b_O`ss&r{fd1Q6*#n5z zf^=@F?()CC>}2;rj49(r4Aw#6v)%54ESM^wN(DW|jd6$LnlW5&$I*~1jsfjsxmR1Y z3WbAc7hJZ@dj#SFdgG3ue`8Rq+ZZ%^E1yr7UZg|2PDe^cEV~qmc!hXLUz}&L<`$F? zgV1?wXT9<$B=W_1{bMNKaX>4^|LZaSPa2@eLE>AJTVp;JDB|B1dj+ar&@6yjl0YFi z<Dt_8=)o963O42F$0;N#-~rSA)%gX-a;@V#MLwcGIubV{-ClxQ_gf|1d&|7g?;q8~ zOS2d^?@^L;Tl6{<92)Sn{7AZVjoqh%|NWNvVVo$6BRV1P3=nZSv~7_TCJaVClI6_7 z$P?)x;OTy~47Kc7K3x14KmjTO!DfF<(tm=#fJF!BpB>AOE&ErYm|`64eyt3&ECG!| z-ak}67s4Ro{irtWIgQPk)5kcE3#K6NS6EfNl~vT^-6+^PR)|ULDI?q5%4(A2Ta5Ir zq<|M51E|C3)8l=ptS2xdlD=!j7`$o9r7v~QNLnw_I<E7e!!P^<0$}zrgl41Pi<)zA zLCwp=D1#%_t>I=E-g<lSYPk3>h?w1c)vNn=AaVc%sNJUfkF=f<&^kUrAw%XLK|Q_l zPk8%`_b~PKUEb|M_nugB1N^Zkzl{!5-4&t|8#IeCV?dD1Qf${xNe|9HIRQlv0Ygvn zB5jaCbe$8lj%g#jTf|(zHXY5?*Wwpe_TrI@x3>hcu;XG){1=OOcr0P}(?@}USVva> zMDagb)E&L?fb5OcrN`@y$7{b@WI1W1)pFO5$~D_0jV#4(Uu^aEj!7kwrLI4bEOq^8 z(T{@uE$E%-B~MrOrac$=k3bgWl`dNV4g<?KqSH|$qn6oab<Sy_wC>j3TlLB#{S{e# z?^FF#PcL^{eY8|J4~P6)VlUbIr`0b*CPYyGTe$V_6$*A%zgF!*JJWxtJ;Z#j9>kex zYmb?tJ!Tg7z?+3^%Zc#zCgekF)mrEV1BSmxTlF$>jihD;FvBz8$I;#3e^HBX1&}gu za=LUH#=|uw;5Qe3(8AFrhjC;qK)bWsY$rG$jX|+yJ>`k~2=`EaY-60^*3GMX$=Qt% zoR&b~yA!N;BZNGF3t#_JhF1H2*#G|0N^?hLx4F%IAXZD??CDZ>fAN~+PPopARh!#{ zcNafg{`R!=hcS|dAvak36;n8lWa&!^Kv=pko2xQs;Y{sWfkE<KpAj}c5&q@k?-WK- zSC*yDLaBn~Mfi`DkHr6t<zOsJNC+7C4Ke~<HgP)$g$a&seiZ*R=IZ^W$jASrwz3a! zJ$;E=_wQb|D3mVxtiB@y%`@D+C$AwL^eB27RKRJA$R=*&W5xhxMn0B+6d_8;pmzt6 zhs%2bXBG(iH@Dm#GGVUR-TM8+&e&*7T;op^T9X#kItUBeldTc>GOU0noU5xE%!UBY zJ2uSm<$WJe+iSb20!=->JldmUf(pCD`f%#%D)X!y{haBs141ape${`cHGh1Mh4ofa z)d`4(r8Fh%1nVXmc8mKkJ&?>n(<HkF6-P^41)vV61Lj%%-^KWaW~k<r%EPnKJ$;vg zS6K!%4{us0nAiM>h~UyH_-JfBqwSUoS9Cb+a{len&k-G7*2Ia=-^_d#_-GeNnN6bZ zhoEm%ceULhEB^*u$e`{o!E;uXd2;`A&hdltvIuSZf2V&=RsFMj*$BzKXvZ0m)WiVH zj&2y}<``lBE-ij{uAc@V%+{1p4-n#Xi5tUEAxBX!N6``ZYdoR*P0{Hvj4sLd@;{GL z7Y2qI{vGIa7?#mzb6CU0%L0LA__r-BGvCIjE4n&*cF+qu*iQ85*cfy@H-~MOY6aD} zZ?fE%p~(WSZ^DvN6*Q-!=S>V;wrS1(P=7NxG6yKTV6DWU44p$L^utAm6Tt$GO$@mp z*@E8f#Lbs?sBP?T+y4{&?F-<;|APL;Y82wn$d1~47}VF;(-s`Br%^$WJ?$Q)KmLdM z+t=;=?WE)OH_^||hKy0YEOwHR7pfns{H?B+kzMaK*fTBtgljMViT;N9z)aYqlzuYP zOZ{YKVedq-W@W%v7}C!UjTJ(vY$J$+q`m+5inW;BdtvaSK;Ys`PD9F$H|T1o(DM(} zbn_rM4UAI;qZmN>)-BJ7_j<r;cnbM9E}JXuC>S3~cJ!r-k}QNUON>HNFfZ&C9WLnI z#z$x=VesTOSd5pQr2AnU-q><l(B0MlgrcY6=F66nU^)PM+Q!yjh@uBvVoxH*e_Q$f zj?yh!Q<p9++3|L|=)0m!v|pf1tQKe3(5O%*-2FW*)w+K>>^v>!1>GC}jtKi(pZ51G z8x>5~iela)iU~Of<q>9j9lC?HCL&tHrVr-Izx8j@xBmo;Czz1j5QNSU@^4$V1hpB3 z!g;=n1GfzKVVDt+9%l7aV5s`R{@)Qm3w43WP(|Kf)&*s}#b2NHjL>)Vp^e(GND;`! z<jMzIm_spQHi8s87;AJ8Ze093miAV2b}9HCq!G!Q8#9a04RiV=9N_FR=*!4_madKV z)34EC^vVjzdH5jt(0s~B-%!x!K_srnG$J1msnLyI@4<`+>K4lm9s`3@6)S^!Vm%Dg zIY}t-?!XHeX#)k`9ppRnN!`1-0kh8tT=T_FM~8%|2}9{(`mTf}hVE5;=+hNKeosnI z_zHZ14}p^T4SKk!AMo<wo%s`ttSIHr!Z0V4nD4@0$Z?~l0%go$V9y$%dSPkD{J?z9 zNZ(Y@$MG5!wX`d-2*A+{k{C4@#?c9)`+bgHsI^r$j9D<j0VFCZhNg|)1EQ*b(!Ea@ zm_Ap+&B>#n;6QZLr1Xtn#Hvx>2PkR$u=_KZEty*|SyFc2^o=9=dc3HJa3&btC{aWT z{Z9{)5AgY=b<9GSP@-m5K3ifIyZLZ3@kX%=C;AzgzSf~p0ATu@4i>s&`#;z;*!}>O z2KK4I+<`rkZ)O>(RVCOE5KP^{{aO0Vu(>gk|9$R(jHG9K^cnCNNg`?qHw>KMu@RVl zYb!p4(aSs-Og&HzMDtk#l+%R_fa&dHA!EFM;rNWvqbU!6b@>?Y=5ds4QTBpe5qQ+~ zKNHp_z8FgOX^9M?h0~LZ4gU+;s+aJ<Xa!7Qc-VY7T=^784oTO!Gwqp%<&1m6{+^pk zjkUk}H*uXAKJ;!Fjst_02jHs^EDBrP9<Ad;n5L6=ATe4lldCFFS}n;Bd$8zn12dpC zu0<n#-z@RcX52E$x|Oim_Zxnc>}lW&gG7)9i7|SARknY@9jw-|RJ0G{BMk8}Ezi4O z2pAEY>wHG~;)1aM8N=KWds6T-OpP?fN8!Y#t{`mgCQ;*bQw7HU*tRMVOfP{x{9Mb^ zFg=We03RQKmC5}Sxb-yrZpM_7c8a%3Lf((~oG<U-UK%bw3j6z`6C(aUw|46O9tiW* zLHGXtwa{0!^%r{}2d%ca2PU<T-5d4z>xEiyBdl^CXD$UZ3w>|>OyJc^y#D7@^Jb<C z1ee&0Xj>2eThD?UZSvNM|F_;d$4{-ZzQ%ue8Eg(*p>(a~aB6Uk9;@`C{GIh*_xHB$ zF;ew~k$J@waquenY5_(WcxGHWs=vqT2Vm?#*x$XZQ|qjPv8^ZQ?_JuDKp+pH)>jci zUoa2rm0*$1{mpv(qhYNnm})oG4wP?ZZrEDj!`1>Vu@r=fq#CP$H_m@d?EQ@Tvi!nX zaD+}>Y0*S{&r;ogIF@08p6F;pdtgb4k-r4<3oNncp|WtI1xY>r5CAm9K_$4fd_Uzm zWw;N0cMoj#bc}<Fc@6*fxp%kqOzE^qP$SHZ3+P!EQ7A4U02Y^1K>9YVF}n8_&|GV7 zHPT~Cg68vZrb9DrVZ<ydHz0BU1w2XDW(1{*%40tbn-%?!=IUeasNTt*>r!-lr@}ml z!3a|<)Pm08;25gcjoQM`;<jEmTg3$~5}RFcAH(OqNAO;Z3AXh>u^5O<J6Wel>H$&H z)B}`v;qEsJ8r<(<fYB27;<>^97cJh7z?z163*b=bvcfR@m4@9f!H;oNkN96}nV{rv zs-=P}`oP7^w57`EwZ3l6!g}j06)wIB{P0ri(@e~;b^$O>SUPjndqaG5!GBz!!T)aS zss^ioaEPmt3ipb}5m>#eSP5RJrJO+P--6e8w&xyeOvap(<Fpv1IY75<5F6@Hb5=Qe z3L2X`;EfBoyC*sm_cq+W)DstIVt^Hcp<|Sl?UL#&^ni@2>b-G3@`CeWv0KU2{|Naj zi&wo*5UDx-SROHr<HU%b1ARKq&j!#x-ay*%&F)F5@q4U@{$DYoM3~g;*~8pgpE6Pp zF@~)qeB_0ah^$;0t}$EX9yFgbQvb?tCqRe?fu4FG$cN<aNNR3Lv>uKV$I?FC0#{^j zS?$|fC%CLxxW0lTcwc;<JND;r>PI3K^JRq??oFz1GW6agQ{{y%KgoayBcQ%<$u%Fu zOAw}71I?DYC7{>_n^8_i8Q?(sV05G^MGcd)_M5PYcVWClvtvb9G<TF8`UB~A68<L9 z_6q}vePQ!hBy|m3f?>taFb_m8TfaPd^)h|n?iz5CaN1oCw}65ia2pp+-(7`pLwbD$ zLF{;N_D0X9n9X&r<dKcx?sxJ~ClLny{d*!>{ht1BT6AXO3mu6+2r){RSWLVNVI<BW z{!@u}0H_jYIGZ?g<~A#OD=QaX<s#;*>)G09{brQyG(n-TIUKo^bB*u<U~8RtflVkP z7SBc`cBB%;4et`}d?WOqKF0F8NMC9YF?lKh>K<Hw1Ib<yiCdJ4q{e_+uiz!tJmDcY zFg5M@KUgkoi9}%PGq->U3B2U|paz;A%?%#f;f^(%<Fxh5v0So5EEC{)DO9hGo-oWp z&x8-{n4I>wjqbiYG*i1rICg{DVI0~ONqbh1b|v8*eUVgQgMU}V+!fZQU`NUXJz{PN z`;W9#v%kf=^R)HfMg|uT2unz_S%S>rSiQIPHQ*VCwj1tVW5;{g$#PvD)#{L{8F(Z% zm-U7l$Dfn#9PcOru!O$295&baa3GIRV+8b=&E@L3;NFE6-=aV_b-)69NuAai(T^FJ zD*l4;n@xD8WA+<cKkWZr^BSg2=3zelKWT<O4F}DZQ)RZakkKXR{Z~T6zgD;pEHX?O z>pEXbPj-t2Km!$FHT}ZsoypxBE<&8>>C`_uA}8VR{rJ1S_^~<K#HUvmq23$a{%2ZW zukG>pC?`v(2g&&jAF*dk0POQ;Q69ls>pxYVIoa|w>pR{-nchh^$TCGxrmeAQ)mxMM ztTLUg#s@6YLI*^9G+FJTbskV<e13H)h|}$c&2txq?!Q$|As+^f*A=uUnje{e!MI0* zpUc00>B-gvsf=yrLoGQif?T27X?6fm6GL)Sz<l4_D0+@1Q_Q*=v`7)yVWW9fRsUmI z{-yr@oDiCDnkP56h0~Y9()l}h5Qcg?wj6(vayRu#tz&w5J~|go#BY>&pA>KMyqG8+ zpt=0Xz6&9Tk;lR?t+)Hou+b^mdB%xa$7Ige>o6%S<UA1ey~*esn>@nez9o%KMTU7q z;+vz;xFDVfd(l3C7{)Ydl_&OSuh`PB^xaKX0GraX`=VHdk1_k`ILk<Xi<&6*<cLL| z%?Rgv`7ai{Hm76mzB`1j601w@<NUBDs#kB-I#A9QH_9h^7s4#!Fz*4gbhT{DmyGT= z@_IcLY!Ja<><8bx45heqQ}w?7HwMke^jX}j1lPZyvQ;!Smlo6L-@hkkmy^(E#O$(> zGz!4pAZC`FE5is68#Y5?ErWq!=2JkhrqyDWi6AGK-mVZj6IP!R{B{y!ik5f+0pV77 z4+3HLD~9_6G~3zuO$51L!K9T<$;~YjK_1>L`t<$oeYE916y_ZKCcD{K2-M|ki5W<V zGvbxFr=!E%5%X<~jH|JuB)A&mM-ZX1zH=}W2NGBZ-5m=Uv}^#bCFdd*ve}_`zloLJ z8(33J^=5grj&9wH&6-VEhs0E*hnWp;NYC+dk<r_u^HgIjv+gYsZKaDt4>@Ui9#ODL zy9psAJ8PJp9$y2v4r4GL3vjRAnOi@=X1`^Z8uPYA(nYJOidH^tjc4ic8dnm`@!z3T zf$gXTn;tg9O7pI^;&SAyb)1iUB>!Tm9cz5d*y7*k&27vTX}A6~h&{q1kO5K&f@gI2 z3=aC=Sb8(+cp?fk88a|8Ey~BGsL6R@a2LWE`u+wXsXC%lgPw}X^*NbYnEX#lk3XO9 zKlO412rXLRSpQzb4ISm}{@)YJl79MSLTwcFXafOJvdZUKd9XU=Mtb}ytgkuVBzI$< zY0Ey~E}N~VrwjxuGm-SADUX;JvHp|Yk#rMxtWFkv7&LgARfw3+c%K$D^{lRZo(TtX z>55*X`?t32Yw$l4TWieQ+3Q(@f>2;r<m$MIM4E5R!>)xlK({sNi`~nf0kV;vuqHhN zMcIp`zwZufaPP9(3$!CSb3K(0f|%&4r_iK<5i9mWu=0)c^pWmduKlaAaitZsmU2d) zh4IPSPbdTjdS^{AbuH#lumMdk$CPHH4pCvGFB{P}S8hx)zz>26LzHnr`rzeuP3${! zPfiDa1EWMRbP{%t@*U<*Kwzk>{}ha44cOwFd<)f&__6axOFV+0=v5s}o=Exztaslq z3<UlPs?++3)^Qa%u7yT5$^aO0nhKz1!1MrT<=*XBn@4~Bn6GGwXdSR_$6$tq^wPZt z45*jsaQ=<uWf;=Sxg)T!@9m5=K|@$eTn$QqGoM5*n^{t^hXL}2CjF<l2il8Gf*j#J zqP(IWT9R{7fo)9{tt!T!sIfJt(vQMWBdpBb&-ZC>3z?9>2Hk=F)z)~2p-o8A{zq+; z`iX6Pf-cLQy<#J41T7OuwU)6-LgqW+^tVRzZNp|5j5*D03=BKbg?juQNVXm*D?bgV zZ=8No#C<5&|Al;?EaW>zEHwmS(bvQ#`W}zre<k)($lMo(h_AKDcy=RUAF!$@MjZI3 z@81o5{u%I0Npt+>0`Ia)t#hWQIev6l^aT9pt>qjpHV(FgGPpqo!&4=(#%n{{Fr`2k zz~CYFmtBzl(NZz@x5jHKGa|oV7J##&_Z#Nk+*{Q4Wv!#Myr*uMtEa92zu~Uc7`CRD zyH_{4dCyzj1g!*v_39>=m!_9{RyTQ={Wrz@5z_}Tbv#_X6-7tU4jATN)=!VrH4fZq zO%|e1FO(4$@ycx93#9M72erbSHHRTeMl@?)KWO|D6BjXw!A4{`XTdB6c}6hfhjrPS zz|7{1Ce<uvFDTF>vq6yc3$DKWnt|_Sr!S?^Gnps4rr1q6zr2RpD)iPU_0}898&QPW zAX*!UjsjZhypjGM=VVq9%~!(aW<g+~<(I}D2&R57CWT~uY^lE`V)fd>wPLe<_iK4m z)6vfrM6hMIuyqCXtJ2(jPiT=r^T>K1@`J$6%`r?dJw%$NoJVk;QU{KY&?;b?WRz;j zvFv_Hn16o8`DCmj^CKi>^$YiQ0~-wsmre?cxfzTv0<Op3b4MpBr|*N)i|vKZia2n% z9DP3ZJx)Qx`IzoR+;4~d&n^3P7=5h-8E~cwG<X~S?V89}MAn#&4GWq-6SR<JOo@qY zvze?xI;>0PW~fWpOUVW4?D~?_SC7L_(UxnM{9XJcj1>O}KkXtv?Ew>$pJ4x3T)zL& zlSLauF&l1whvySO<BFu`msg2~@9~s-dV=L{SPX*Yd4*^!DlC9_O7J(V@B`y#d{eN{ zg~!5@_2bTNnu?IOkkAoJ$V_-F;@goT4J@`HT*5?03Bc$P1eA`%-${9lb@Flo$_V(3 z0GxU~0b`2r_c;ML?M4E81bkiq&bXO?ass|60AFe&pn`vuB9}AqX@l&c*e02vnZWEb zQa>!;gOHK>wV2{YQa>%<Pio-#u(&^5?gB-O_9sXfIX{Y|ADWAHg%@^CmdyjIS8R^` z1{NH?q6KFQ?^bZT48rJQotJ^Yivos#<&6h{mlb4>2xtk~g^@grddNp+5<637;nr48 zz<chjz<>scU}2b>Gx#>ZTE{{7GYIF#gBcK77!mjx&iW<GFTWZyO0oH3_TWZ_R7CTR z!rw5_im>w{Tu9=21#w3d67W~s^i*P$GKy?d(a2>4$Tk(x?QL4jDE2ljA;8|IqY0>B z8kM3PXO<E$mVmDcz*#2~P(?ts0E{amU_1fm3INXWM7V|kzW{uF3;`1exIh3dJdJ<= z0lEOx`UnUT5E6j;GYByF7Z$uVX)tf`lU2%7v(Fmwlw6IZf3=0o#P)>5dppNBJB;?n z_=;Oo!3jGN6aniiYe1e;kX<V9q6)mE0xzooXDcH5UKOxTl|edhDoCFSye$IS?LsfH zn28-+vD;*@8`Ha})r;s11zZ3z(~p)BBtioKF`@a|%6xKMFII5q<E46E<^u>mH80(q zc>_;beiZEZ7sZ1K*s%``X2f!mSjrh8WGqIcU>L-R1dJ3-Q!Lo5gn&^3Fj}ygoe>3_ z*@cT>voVY!g^OS_9|2Oh2sSGxKnfSZW)%cTMigu|mH^3!g3YQ3kc=qUY&-#y5e1vo z5Fi;*u-OCxBqIto3lJa~QP9KAh+q0NBWej6%hzANVBs=L-Wm874FUy<&ly;6;0i%b zn3QBq^2(+Pw#5fT);xiUEL1`>_Bs+;gI4W-ROzQMMXmAy0vmA!ZrBqyEbQ)z_`8-C z_n#x|ZC$>wziZi-jq|Hw*rjfi@q5q=7ICAngm{e<)?du$h2kT|=e68~XItNrL)9l7 zCt=c4<5l%msy~ORdSSvLm7n!XS}woRrtlO+KTn0nT7IE<&PRm@3NSXWqi@!rPr8JS zXOJ3D6oY|MDnI5c7{6CTUlUycU_9Qc9-HI8=PUQJ6PtSl6w6_SD1HB}NEdW@gqXsn zBu%kziOgWh!a90JqzIESGy|BGwB$7O8O%|Cg9Nh5m(a3`wB&hs7fK$Cm_Osu0nvbt z?-L{D8_*@Dq{lu&`);;Bp^V}96P{doLsr?F%@F3=n=z|<C$?MFk9lWaV0Rp(k8GFv z=3jF9CN@<%^v%?_pln9V$AFV`^Eq2>#(>Md7D^m!Fc<iyrYFD*ybA>+9mZr$(j44W zA;M;;3I##5e?&ixnD}@{4TzW>j)`rm-i=)WF|B_l=g%-`VBPPvXc(q6*Z|*)q$kW4 zg+$5l&G7K(%Xonga&9WbOME`NixFsPFSJMpD=I%b2)lccO2qtntW#yjvSymlB7$EB z*Q;=Fy(+AFX~}Y+Pf1Vs8D6_G@7v{{W#1ChvuC9gtN`!aL8UR0`o&sAfHou+?Tpm- zspVp#hE>nI+1YwGAzf?%gL<$Xw8fHpc-{v=^A&tU)n97$U)|cv=W7mOv2|Q?(BD`P z>u-)PFLXs;*E$QE<44?DVipq9;=e^+4fF8XjM)7rVzfRL#~zEO_%USiNo+dj-}CnA zLMOxw4?X?a>Mkq_MoYu-o620!R*;aT66pia8D@xj?-+D7yP?7=7n0Nx?;%IDhnDy` z0@%_pERr5O4okB)<&Dr*Jq%b_+t84go#o|&)3wA80k?|KzXJC1_z`?O7Xld&%GZ)b z2qEq0iCU-OX>NaYARlnAmi&-Jk1uD!83ZwXH1hNfD6T8~%v<`QUMuaV@QM+`^Y&-s z>e^jBnMe47_8xqE)7^J^0@k|&OlEMIS4NOKKIP5BO^$cS)8mTy@exVp+la76kAE_t zB|8wr960_Fi0~}J;qKRlS#?5(J~i_TfO7Hk@Fh~PFEb86%ugB$b1WxJ@EE9#)W2}T zCpZ_vZ4A0pS@K}4ES!o#y4t2pW1?RK+hc;*qlR~^ua<!boYI8Ay(oOh%4bF)Vgu72 zTT7gdm;H}B<}XTKi21}GvC4Lw`6)iph5d5<HA@#<rN$H8?1~k0^{7mL@OC49EWZ_7 zOS}G#Nvcg=rSIf!8r3<m8yRV?Gg1N?!Pk3b`eQ!SFJh*+#Ri`h<b~ZZ0oUdm>Fco* z8(Y88&EtoCL9KolKF-q;Vihi3i)}aE+KT(wGd}e>QpYs$CDOL$_+fl9zEfLyBhV}Z zD>|!KX@G35-YQJ4{SA~yFb)Q>&n7V+nArV}JplXkXWkHbTrBdK34=pDj14!-t#TbR zhjBsdDD%M5g2?8}#O&N}xQ}5=1NQN}AK!Z@e$*ZNiIJXIjI@^iGwe{auvc;x_rYQp z+s?3g05QXr8?$?OHV)py^LDuV=taTGogwc#{CIu_Ik#gXztf$iL4gy-R<V7SkWtt& z%e&kow;i85N7A!OqsstnEydq0C($Zx?T<OeXY8H4<>Zj}7^<RsQR@9mFBmNUu-}S! z+|a{lLGNKcf)2M}^W9-m;4oroD<22rh0UID`g+)^-^T9uqp>G~-o+Tdeu6iHs4n^` z1W%Ef;ts2zd7s!b73W^0%nxDhwXbKv#vg_S%G?$WQS1&<WnP7V6T4Q<$nl${pJ2ZU z^q8Hoi(%P=degnEPpCKjZ(%)rRTtO|3x~idj0VD~Lh3rO2W=o6HVn0SBY{UCny_iv z^qoll>=Ldz_9{D!iifX`Wz<3TA*{zG2gDpsOB@7yV9Zzu9l@|RF<?N9em<N^h>0z? ztmF-B=cA}59*3cS4{UFHOnCk=Qjc|^M9~Y4_+wR|l`DFpk$#9FIV6hLnAO(sB`yR5 zxuBtf>4(@OWt@jfP$&+uy>a$GUcGTPixpzaSRu9!FBOm4q!o`T@In%WGB~I}>4z#< z<K8%<@WRxC70jh&t)jCG{NmRBrVDrgiy;PZB}UpFJIn;|h6ud0<WKOAy%f~I6dK42 z6he3*TWWlu8+3|S^nvN+%ds<|LLnneMMP=avI;E$3s%L5s_tzV=ztd>46l3ZY8bNK z_Qv^^7qVtk^Wq#6+APK=l+fCcVChD9<TeGM63Q!E91uf-u%m^w%$$bK5A)A*JW!oy zMN@Z>Vutw27Fw3U6?a2ev4yJ3^A5`REj0L>FR)P0Zx8Slsjp=u3?@uUmCJgcM;%Kh z1L<sF^B&fI!vhdk&E6eRpG@a%i6@iD^*<W9kq=hPbHyRZN(bK-?zQ$A<Lv~%#SiLr z;#E;8D{dhzgFbD=lZ2)3D!)gNWjfX&xF6^5NS|9NZv0!AkV(r)a8V-0xS2699tX>p zsJI?k3+5>ZNRn_sM12AuqfY!z5Q`ULxBCG9FFt0~Q0(4hoDvS0-?dr^IxB=DHWO^u zR&8aaaA*OB@E}aPz{DRyTE}Rl4Fi6bP5}c&oz0>WVYU&kam7BLp?H$?0H_Nr&36hR zy3h)yz#BpAb3pRk8WHf<Hpc#l<iLqc4ksuW>Br04#6z^av3jdyac&}k$+<%7T(KRk zU?$4v;wD}~EY(6p-Gw*^V!JHz#cx8q&yB2PgGNgUCnLzljMrfpfcCOVY+w$Es?0Ug z56iq^-5zM1jrhU-`(!^saaaT(MamcA+t>0XGW*zVD0h(QFEkr{)_2U=`4RQ?uz66N zmBNK`Oh1<=w;HJ*vny)1{|M{r*k)S2FH{ZX@KsMZJ-x7`|MNEfy`W{um5bJ*vMwlf z_|m2XJ6ocshC#>+n(-#~GGS6P^>2^88BVRFHPX^9jQH|}P=SZT8Yk53Ljz3#?DObC z#m2@;pgFIf#*{_hjFm$1UOs3^39YgkJffn`wgQYi(9~#uSb_(FBPMcK$Q6)6JeCl| zuTc&_R%4%88S>(wQYsVNZWTmJKJCet@6LNs9t$2l`2tSvwd8!rnQ-q)u7mKBvF~Iz zwB>u}8a%T~b0MY%m~}(CxdIxn*y0rKt*>BY+=b{2oAo{|aSbxo53YO!F)*!}i>FWm zD)v2sUVEjwe5h~L0WNtlNiF$2_y#+Bw8S5Q6pr6qh2_VYRa&AQk;AF_5}sLrPP@^F zZ*%KypSTU|*oFRV#Gfh)VVpk67+Hqg!tLv6hUYn6ID%<E*F;n6Ik=&`w{tKu;#)l7 z_<Fo&vUiKo%|gT*pWe3qFdI(B1t^fj90dt=zd8&D)8KQhmIavP^?Rvs7*IH78SORA z*Dby>_AYp$%oTl$Z~1+MeE&7PUwZkn=Is0aVvFzN8xeoUvQv!quj9Rlf4zv`{*((v zU=_pWGOVnQu}Xh;8%v+|jE?Vt%<VSfTix-!c_>>qNRF+4hx)c2fpsD^#lXDu=1Ut= z-)gKrnB(_wYQhI=Nf>BX6N|OZSw;M;G5~sX6>(=J_<=Jd*ZC!}cT)JO%fBT$EPiAl z_DU*HXyNs^&54D&|NUDYMpxJc`X#$4bIN$qfz{wz=f9Kf@wyA?;b4}ZUxBv3PTrbk zZdgqt`79sFvIO@$=tlqJ{D9M`vDOYNAEH|V%G`+B1<>?kX`6Wn`v=TE96!M&Y8<JA z&W%Nr5=<OWkkbAWASc7AnSpS;7iO6wFin6gqUF+KM^Lg<4cu9U0xFi9kK}|{(>iI1 z>ONcm>kRbNJ=z03kl3YIeLi~nAuMmxXk+g0-cw-QgUK}V3zm<=Q-l9K0f1-^6~>a} zQb?>aa1D;(nOTF9m*@xUOY&nF4Yr^)>r3uOZ}=)nq-|KqF&SKW_Ye4N)-NRNdW2yW zx%)N{0I(&5aZZEqa)xgf;gxN8%??Ov1AXOc`FxLjz7@~Sdj85E;<<7=G1%b^&>TG; zX6<lNM2StxHb?X#z}BL*U<^RhGVyhIV)-7&ok^%fxie9fF_$=F{21A(9>f?F99rTu znO?C>=ex47M`iklaW}h(&krw~yEB@*yLrcv%5BVqqYqm@vle?6$cIvN{SuED-p1m! zEAttg-@%o{lkmWfQ1xz3th50U(xd_f*@=uGx~kS&Yix%QrEi!Gb%upn1<9B~ib5F0 zP<SSds3PfS_hpk#Gy^H)ljS0%C||;<+l5T&-V1qwPsVm=@g0bat(N^GWq(7z-?;2- zr`)gxmdtO^iH-PmWiASgZlG?{R<2<J?S5Z<eO>JB{#UDaN=e-Wp)Z7IVl#>-DRT!B zfE47IupqWHswIXYwj8`ju{(f@4`CJ}u9i3gECWMce0d27)Q=}_l;xgEVeS&-UB{<S z<;eY}BFAVUd*)}5tHPP9N_9DaOiv6P1DR=jRQ75yGG~5)Jr9;03M#`tgPz&C-O1U8 z$iS-M8_16(=ILyiUm+TMTjodT!C4-L2?veAhTs9TYgz1rJ$W(A+P7n|#FCkL@x4CE z%uFv(VH*&Zfy_;kfl5S85B0s*pKayjMa)YuQ1UWVATt4fkTZ6wh_Wi7@)pK1y=UcN zWbe+<#KmE3{V198_i`yGPGNF;4v8X*4x0Hhs$*-aI}u4XRTSnK*-S~EOSYEpGWQ{} z7+8NIlFtpSXW6ph@k5#GfT{Wm_IqT$%rwXfnK@Pg?%oKRu@iUUZth@rWQTWeKlB2_ zlpna?PQjEZ5ppwrKf*{$Fw((;s{H{O$SNSO04yk#=@STh*DDg=CbrOswoSf-ce0Ou zjm^t#V(fH^Xmf424_dhFq;I0+nK{4}{fZmQkGDSq8_aF{GqAzp=hP65)cOZeeBFGO zbH~&~Y#~~KiVKUX7<nS8SPf@{W_$_Jd*g?J&I>_~&oVf8A`Ck`_N~4bHhb0R1=&@^ z{?P_}qy1>}yy*YO-nYj`RbBhfOa>Sr=8QIKe6$_yRFkSS(TEvAoq-uRgA)w$kornO z9uf&8O=bWUFgTfz(_u8XYNfrkO?|Z9YAd%YP#=)+NWkkOKvjIS#z!?n#NrDgKKOmt ze$4C~GQI8n_4oVy{`j4ICg+^*S!eCN*Is+=wfEVNuomk~-w4JGZ{0^Ys;TT$7*-07 z!k`d0JMfR}8%{7N@P49HNO%yDGtfDXuIJbRpBCH^su~DQdYE2hQ(?5V*Wr@-^UyxT za9jEYgU>H)_(_<CpI}8VIH|hQ|AEL-s9G!au;YeoN%%}$Trp?P72#9ZW6Z*E;-aYW zrto@Oq?7wKTvC*vWFcOa<y}wQNfH#}SCkJ1*;=fMf{4c{y6dTzMr)nLkhzZa<Mi(R zG>u+cb15Kl5wh9G3zIAqL1?jD_VQ!Ij&iX3JsXo4E1(GNGpIg#R_HPMuj&7)vuUyh zC!d*Ead3#yV|0GVI2erfSoKLP4_3S?+w3A&Ti1eB@<IHAzn9{Gi68?aKrPlzfzi|$ z^h4a`rZ7nxnh1^GNw*<m5t?-0NR|U4Jr)Au3WU#6n`m<#=&06u2`GYbJ4V0V&o%fd z(qJe-2^2Ir#nhj+1<x$9i_1@Rn13O<gq2T77+%6gHnA^E=yPbtTcP-tPMr9}GK{Kj z*}}S|v{w4+5kgM{98!F2@MEwKt|Axmxo1!=G)wE<6{K7XNx2&71K;vc{AqU!*r6AK zn4=eh?!e$^7@gl3vJsM>dW>%BCw6dl=&O5#)&%?w2Jp=qhkrjDkC}iE(yO?+3Comi zoPH_>cv~GoED=Pl=$DBSgKY7+=n%SVv1(L!O4|QT<ZiI;(XD%Z7*waV2B9L_hC+-$ zW-}gW1tc*{T26Ps>);dFNkflM12y~7M`Z<aEX1l18}N-Jdupli!r+ur&!3kTvLaQ4 zPlFiwilM@#);DC&KJ258bUC%y^N?SvJVdvR3wb`#S~pY1Z<tD>QLAXgFlN^J4sCaa zF)|LluQUv<*%pfbj(YV#at*DVHJiF>Z=r$6mycCORAx~U`o<m%c?Oz0DIx`1QF5B^ z*5gl5_aHU03t8l7U^7NH!&UXSUyGgr7|49x+9Q;fMHak?hFYAo)+?yA7zvF}yJRDs zdjn(lvJsZicQq^(g@vL}6Mu=1K=Yy2+HLP4T?F7;kP|PGE|mCsM?+V!D&+N!<bSaa z0>tW<U4TM~-;i2SAAqj+uAyr>HoK<zr_gXO2i?&H)gSC4PhPm_0$<YyKJTYmJA52# zbte}|{^-QPCyg;nF~I6=ltYoq$g81vf(1!kJy^?ltZu}pLls)&qv^V{Xi*CvP2s&M zOLqPcJccdDGYc#AK-hY8Xw1@c0UwXw4_Rl<%eB$3t&u#;RM!)Ym?w@;2YUC1Si$#* z?)kcT9-Jf@3B5Na)A^4iF-adUnHcfKs+X24=7PM9YGcf5zy$fGU*RKzUeJxXHr7P( z-6R;44u^4f8OhdohN*#(AYDR!qtCDaUHDi!=iji*5f&N75PdWU*~b`K9yO8sV=6K) zV-P{)P2F=?yX`W>peIJwz?wWlJ`-gsiw&|IUFfxr<fnjTeLO%$2W@aR0e^@F2w<=i zRd7yW<-QoG0Xg#Q6sntCWIj+WVYHhV6~OEkA23QnD`CWuy-_sDtjK3{6j%m#i0_z_ z-PQ;O&Z37TXym%-0?o3ymca-4bLIQ)SNQ%u4&Qh`L5$G9HysJTil)J1Di8Wsshf`m zBBPHFWAHJfnqA3{L065THm?hBrIu;}9ah1h3GtX}s}~IMPR%u6AcHPX*fDh1?;j^R zI^PGzY<Uif0X?K1KdN|;O?JN+X<fqVQEfv2AH3#bpnA=CC}P-6{f#s;AMu)tS<Y0{ zafP|LJ3yM1j`ZBo?7=9EOTgNoP)p2e#;ZOyt6+{h)scxObKL04WSxV4O!!8+(1+Kj zMgNFc20gE6(e=0pO`-<&Z3)6Kj{s(yEFiii-a)LX@thZ8>pjrqu~4Fs%-BLKfRkEI z0Fyqjmh4BqvCm`nnFDG5J$g;F+ZHoPpi_XpB4a%@(v*BO=R?NxR23Bto+`h)cm|s0 zQG-61sCQ!>t*@3=A?7qYo)+cC$~%w)-Prgk3-vX|pJVzNEtu)FEZxF91!#|M*yYSQ zyBqV<n|~{x5O-!3z@3G%>|Rw9SHSqdBcZw)>Yf+M3cG1kIgdhVVhNk#LJC9Cz#;`K zHV{1*Iu>AY%t&NEgJfDl1^byR(+*y2DhoBDFw%aDoq8!r0xazz<Ex<YM###u1e3AZ z_XJvTvmNw4Xf`I#FS4Tee#;lX%iRx<W}0XlUi7n%s4Nq=0}Xi)Rjt*aw@9DxZ!U^^ zge==C>Y-=)M5wLQ_-t&Sf%RfHO#51=rLrNqwZh4Izg<cWaoAvYqoW9R!2FP&B+K!D zmp3U~CfMW{@=jPfLdH93;fAmjX9?;DJSF#Y*h~+R|DwUb$G|1Omw|s}ivRF%FU^3j z&VbiarN!b&^RW-}`4n^YM1xa|2`OQP9BU)ob{aI8>TOiVG|^!Z*65RVV>Z6}Lg`UH zXOA|zLB#wMeC(dBEG0J^OUVV}SK;F@%p^uq>IJVc<+ugPL5m{d7o*CK6_;89VfLsS zqY2mG=|t^+JbYnr#fOCEZ_t3|%Cx^jW+rx!az4Jyi8;C7Mb<t`Yvy2r1X~#mlLoNh z&DgEJN%!=FOpBfmz8JEE(K=`xXl>(JFf{x=tJFA%z^n)b(`6`;RO)tmF|z{GNwUZ8 zq%;Po<j?+!rgzO{@}SSomt&zu`PpPHDo#8@Yy8hXqlXm^nk4mQ$n%lbMr+Fng*pnq z#L2!~g&-DqDA{guRrqiqqzY_thyU4bnw*aY4L))a2Ajkj4VafTV@&*pb5U5Z7nA$Q z2jhOJj0M+Qa^JZ=P>u9=^z$gEr?2CR{?m%TkgX-Tm-KD;_u~Ifzb^Pcq+fTEDw*|* z`W2;q{fK4!i2AkIq+evegnku;3@pn;>h+Rd@B&UyHd?k0i`B*N=m#Ba6Dk`RHEaP8 zy%b?6x^^-P^8b{sp|J285S|QlZHlTJ?3)60K2xneTuYACH8?0Br5Y8wW(S)P=^7TK zPwTGaH=LECaA_9Ftz21JA)Hj>Ug%3>N{{|Ay<4B6AFjVorR<zoPk?RupeM@lO^TNJ zgTq2=%e{yQAj<;e_s$)Ke~V9$){Kxb%$m^^%o$DrR_)S~lXH)k1)OfaK^6^#bL<XY z(=EFZ4W;vPVZoXzd?>3<czV-yERN(DM0djhYxrUe_Je_$jW5qrQ(ugIlUiAw*7U|O z+fOe<Xp$qB7v$oQ<q>U4**U`NiNSyC5ONUp#<!7K=JH3zJ(PIV=|bB1tSra`O<2f; z8boMCX}5g{KaJ#q#Eqhy%a>vSAnY00LO4;g;QH;S@4b7W%a>?is<rK8Y8|5ma>>ie z4<%M+>+u<=cJrWam~S6D4v(l3=6Cd#xXfV>9CU{_OE78(i(JyA9&(<jM+)M^+KO81 zXUt68OR3N{JaIfuMZ2JGu@e~Z%r|iIJ>6nq-MPg$p#e&Fl--Ldy91-JkPa<k1Q!CX zLH5{B#(n|!;QBA|ZyuaQnpNu`yN%7L4U7Re?Q8s-d6WaA;WyyLu{+=ytoap^>-jIO zjkaGU&oDo(JE=2gKLy8@>v`MBaM5rylC;9`tF*$f^}qa+*7bu<i%vp<4sW9`6@IJ} ztF@B7!UsOB^?p2tkA!ve!)|YYM$Xl{@r@o{Q>pRQAU+JYfB;`_ju@}v6HfR3tms=~ zkia=7TJ{dbwrZ_E!&8hcr7^o<tgA#+Z+CzAjqW5(<NpGb;R`KzW$%&L%aK1a^^x5@ zgTJNz9n`)I<rdwI5=ZTvQsZxk!env{z0~QUM={00N_mDA$cy<LW0D#*B)^3<$h8ei zY5w`DtmMs9W>ep@hXu$M8RGQ_<XB9pe;Cy1IQZd`rCRZrt&EO67A@pFE}6NZ*~+{L z55H`2%08rd(BP1Nk`Gn2$y10|$Kf56MOy3;NR?#|*+ZT^Ut#X{AQsJR!6PnlO!b<m z8~d2Z_3r*ch#6}~T(B35VEac|VtwIP)6qf}v84DgK`ioYN}56AZzNEXHP*2rVMMpj zmj-}M4Hoq-^O=lZN*&|F;{0&R4yFV08^W#i$04B-M4z==P5Jz_Y|onT6=+_-qNMUq z4n)8V#M!W~<A&K+>Wo9CV?HDP``uaikE~&qgTZ_hBkfnAZQPH&OdLV$b0N>$O-)l1 zbIu!w&zqjUrrLOb?B^Be;SJBA@1HXh)r)L{*+R}V#`=Ph%;}_9KSFPMlNnQ~(V&j( z;q8i%?5HFgjHm4FaQ*!Li1rjKx3C$mqHVpLx2+q{eF6)Cq~WveSDM!LmYwXwRP@sw z2w}q*G{sJcPet0a*ktr9gyM@Ffr8H<mwD90n#LA;>x<9ESJwfIv0UoFH`LfWV6po^ z!hV2q8(Qb}VaJ)<I)Q={Mo}%jhTf-U+O)Cwx8ykdn>h~UaMgGz^?6tgePch}y)<@! zc!u#d49D&P3`+7g9hb<pK;gVv8!gQvQqMb&piy1~Q<_+nW8H-YV~!Iu^p3-)MSFJ0 z+Ktf3d)1c~qv(1Qb1Ywntk82*b2HFj#Y(6c2YobrvgF8|T&AeZo27TCxcez72uItn z(h@R;v<(p}HrGKznQc<E2i*o`NI4C0Av3rzX!Ib=YTejhYP`?#742ZmBJZ_f5oTet zmmEbkj+-lvj{OV+#Ly#k0P(?^g}|nN-5zrL(WiQ#9ra2u;YD<H^583IvmD>p=lmXg zSJ?QRwubgg@na#7v$0c1_{?}S+7?>uR@m%-C%J5_5A{G>CGMgjH<nU_eO!%?Trlgc zA-qSGfgk7i<+OFhyQS9cgnSHy+8p|_li0F=1xdd(Y26jFzNJsXh@hnfQdHDTLd$@> ze<N46<q3kdb@=1CZtx|BPeU+>uNHj_7gW+p{E!jWZ-G%J9`k9}h6+lTv6CLtQ$H4) zFp`I{81$Ad1n)O?1dTrj6QK|m1$ZZDJU6VIO{H=M;am>CWj4A*X~|BppHRPbKi^Nt zH|g$v1mE<caANou4=Q(CMLT$q;#~rR#)de}r|lgo{J5RN_OF-(-3#BSZMc|L+4C8L z*uNrZbS1wF%g5g5a*gaonlW`?*?8LUqFQTx1H$|}@**iQaZx?&Oa&CVrvvw8Fsa9k zQ#zIzSytXO!xhGf=R$y(&CKf`bmL*a9Y9cC^ogT=h70)3$RQSFvI~}&^g_fp1{tx; z*Vdefq%j4+08NLY1Xwigw$Jfa@|#rgNdJ!%%$EE`%C7(2cpjrI6e$)vifeK{xcI0` z0O}H>56t4am8y;8b!6*0P&9TQu<k%_m{*G(K&60OXJ0n`V?W>fHf<BI4`8yNRTutr zCNQxij{_{~CkIlD?kJAW1TJHa63A;T(n(kHhsq;PJRV3YnkPdTGMdzto*WH8vf}iA zz$b2LD3Yg>@YMQ>ji2N8n$=mXFZ3#u`|0RRWG?MIw6Zr21+7QX8A$Wn^Os#$d&wx< z(yK6tVsz2#!PPy~2|b7vIFVj9A0vxxz=eh#cBJ_<?1y2=b>kmqEHjqzx#VgwE8h3e znDBEVy1Zx%J~RCGXIx(XMDd@Q$l?J<sr5aqeM$bGOI!02G#%fX;TN#*5lpIjrA|Du zbdxFYu$z{H54r95k4d!B{LgXYOUg!CZNl#!gE?KiUnLO7n0l&ZX3~gv4E8^|nzX`# z@?|}|`Y3&dU3vkFCz|#!l}_|bpo>B{V@&Ld+eK00%|(P-i|&tB+UO0{IhsYIu=Es~ zoXc{sbnZlKB}jMq&1Y;LO9jF>nvtgu>zGmnu^n{N@oLbzKje8yi_$C|vP41SLzKp1 zEO|j4iuhcGT{E_Hmm075jctQk+FvR499}w!DhWtn9&M^IE!6;nm+_W$AKTSTI1hV< zIS+Vs*^W}<2+Ddf#9vzQHhJMCw9HH}G3Btnd%)-UGpfXZO>3)x+OhnBZ5gqDkG*Al zfH$<Z5)co*JWLIkw@LOQ)qjsAk*1*&eucZA4Ej(U26EnLl%2yYXN|4cXp-%dX1uf; z-OFnr@RrZ5(Kjh0seG@A00|{loaDr2W{1%eGBc+%k$ZA5k&6XXLhhZ!bRQOK!EB=) zw9ZH$eg~6VAziMIKF=50ny*OM+GbL$O4Rlr!L?^q>2}1;+WijtVz<0Ib{}o9bWq#4 zPg|oQOrPAb&&F<0mdV<D22Qk>Q$KA-_2Yar>?qIy1_7Yq!~}GOza7E~2pIZCx-%LZ z>|xbZwuj2o;6~$vv3~MomSx)ATQM{=wgPYf3#BbX=Qb1<nj6Nr=P<qj!}j%sj3d;X z-HHA~bjI=hv#@IyyaK52)qGo}t(csHw%*1)ENR=Y?GA2U*P=&|OBkAD^RfA9<YnO6 zGZ6VBN|7Hug%p0cl}R@|9+zXt`VScw4;uk1wqp!GNi%)C$QonFU$8G>pNj8N+J=*u z9LWkH!BEE&uo;U?92*^9+kwS5ze$E!)(7Novpq(URu~BTvJ(zXci}r6+wGue&%oLa z)?{$V@6S3`U(w^2(bp(DMnm5V6G~kQc-#uf!ABX5@9ik~4Wi@M!PuQLX?lLRm<XBe zzb1Jh*mC{G<Uhd@Pgy;7O>#Q83jbU;iroVj-GOy(r(#FEVl1W+&W_K{r`1}pE+*C^ z#R<)sZF0TtqOR!IqnCZlICRuaI>Po@*uqBY>WO>kj8RNmv1qJ}ubyCwWTxVe`$DLO zdQaUEseA0`8r{MMW`Q4_iJv<DBeAAqI6ao-BwYi!B}J~-6O6$f&%Vfgf-t-okGv~< zkftR}gqda2dDx5{j2~V47vm7k*VD5$=7XV*jiC%1x?SMfS#iSJ+_YG{n9eM2`1-GX zWYYGbw#qagcJ&845knerz=zTlACFaSN{#IS<Aq@SRycnc=OX)L*>I5h@MW~@#5zhB zmYL{eZ$IFEh@BsCuV?4S-J96?X?GXS7{@??AdxLN;WhpR27^3^^AnrI$g%p!ul*Q3 zPgMdnk7J}&Apre2!`fm`9E`R9IlqA;x|YQO59VIlas=Pd7u!*)+b)8jTaMVZ)=P2Q za>Sv<P6XoXX?6brZ(@*XD~q!BXg8!k7T#8U@;np@z3QMGe85ww#ZCgu^b`{pN3)rj zYo3MhnHKAN-#)bUJuUVT02(lNUdwyvcX=3hY;=qin6Y)!Y=lbdKJA1FfM-#UTj)dB zU7w=aL6M;J(x@0}YkQIXFVVQ2dNyt+Wb9^>ugRztl5pS)`Qeg^w;I@67>o;s!w2rv zYcbj#nGGbq8q!Dvz<v%E%z;XjakF?EW^rJFQLH(E)p2BuaHc`MEGS&J2l!y1_5eP0 z@4#YE2O{`7jSt!2!f4`a`5Y|(w2&C8gp$E3*jIATG0_^c6SU0%Gz#!lPzP;0Qc#M8 zFOeLyLmqdx;2xt|sD+WIZJwKzb(gyj(6mH$p#j$$qZIgha)@Pp1nu=5b{#HdVK`sg zxDuk|4E4lag3*TqxxbbQrM1#$H#RAS36@1SIR+A=^0o;k!IGqnA$UE7{c|FN(XKI4 zS*+bdSyErb*ozjt0p&b|S}brWE4o_yhv?P_Azl4=1a17G)t8t&(KqR7rmET<FXAyu z7bPinRBP|TEvP(xyg``H`gvdyS7q&v`}xBGpRwPsJ&IuwpN}E2lxS<pkd8xJAJAe8 zNx$Eo0{sT!YZ-##*O7v^3_<5_WLE>$$mnR#nC`E$v_}s=1r5N;Zy066`^ibsCL<VG z2utHvK;Ity%!izyG95&`9>N)w+V_H0cey)p4gGCr3wu7!qU=Wp=2zhTF?u4Z4(QhB z(Z8a#{ssY2o{GIMKk-H18RL7}f!8VL=Ld|}{Lt-^qNCCM=&bmYkNGSHZ6&lFIa}79 z%<|(rnL6gqHeOh?3xgjpj12XXUUbO18%l+x1CEZ-ZoiK>Liu&w7y#{Ai0B;m*+J{T z;Mv-SJ=i_j*t_=&zwwqMZ|~a<Hde_B$29t(17k9@){_uRjBHt!i##~qZ+wKB*jn&W zw8ydc?Xj;IM{2tfIqY8a1ZKYMKxHje!M=Mar3u~eLzrE_)(rA_R`*cKv?M!0fId~k zFSch@jpyT4Cn1qo5ilK?Z*RYUY%g{^+=TiPBPx&h_72th5H^Vbo!lrvhj;tWpp6{5 zk)i+=qT74K?{K1pJ9*VOB#sz3yjD2d#_ocb_rBlyx{nO5#rGupkJ%SKEpSB7LOG#+ zFD=#uorloMXx!p_=mNsw%};>&$#ZB#Ho8I2qR)nBqu6?rKByObpOT{2p+sDpl24$h zM0>KjzqTdsW0%(5Unke$N-9_K-=JCOEQW4C<@AD&lDqIURo^P(O<`@T`C`@>V}$Vw z%6QY|KI4T_Sfd2K9bn-<8af7fU`qy?*zo1RS@*Njy)B$?>?0?-jK;y}Gz4ZonWPHp zR>oMm6_}}pwmIq?^zLJ1*XB9?DFK*x8dFH4|EL^Hf-=a3hp0TXKzOC7aHt&601LQ# z`D8pw$aoaOdgtK*Q*tNSP<-^*Di$dp=osR$(qgsD;-DNHnsS*ne6_ZDic8ykC06rT z>u$l@1^A*n%ewo>;n&({je-su-37aiXS<W%#>jU;vinH;tkH>V?~^y6_1XQF&Dh!f z`L_@6?>=HHNYS*<8sm$;=ha#dBV+yX#i&$QIzv@84wS`JsIcF{uIpG+K|lQJj6^OQ zJ^$^N$>T8ibnu5M|EC3$<*G1x3B#cJA|Lx$aqGhhkeCG*Ky`ud9|8K06P031PvBH* zlD_WB{N!>CS5_|=CRbyd7OMnV@>h)3i*ByZR{f5(7hi+G(NP&BbM$sld-T)Ns;_W* z1+&7LX_lGbqpE71KmUAxep40*w&RSwFjqSL1rZFx8lpr7i*~W3VLlVOdh?RBQYW|L zB1zcI77!8{{xG%+0nw`Ht?m}2#8>b<?(-c5rA%z7jN%b{srG2^OzcG;^c-1wE2eg1 zorLy#K|C{Y`q`zliu7xPCvg5D>)S0Ji`ITCo(4Tw_GkC952!w|!vA!v`d;+IvE3hH zihlSaE2l^Qq1AY{YyX(Bn94r3omQxX$PY)}FZDdzjsdf8BJ`!S$s77B-zl}eHMl{_ z0Y%A(*juL9tSwVUSzB(jT0u&3K;!$4E2si^lF~zD2aS(VUC~#9byx%%8(q&#WRKZ9 zgaM+S7n}22$6zQW%I1uO{p`ULWdFCdzjd4zdjdH2H-IuXVK5jk1r#a|4I$lrC#x@3 zItPD($zd><SYX@lNut3-xl9W_@O1KAqwGQ!C9fl#j#PiY?qSRGvubmh?UQZrRz}04 z?MG=u<7INKfu59Um(&_lu*&r`7fl_i8q$rM;S@|egWVyHGhBY$o~0LH_0ef(YMZe* zk8yK8wjHv{xkgh``^Ag(>1h80TJ#V-xU}Hm%QSLozg)%v`zXMCz%Ri7E!c}ZvKJV4 zP3-{m=%=6Y(RUzF#s@!HU9)h(;7^hGR%8M^!|KYKg@Z=wUJ0M}(81t2KG+=#0`a~q z%z<*k{$jLy<P<$IH%|=l;}2n=?(WhybWt48?5anXU=%AptMXLrsj|KzUtb6YmM^ck zoYu3T<rR%jV8Kc#q8Kf@k9;2-o2Q1R1eA4$N+LlSJJG3tbrXA8;beYsNjS*tEwj8C zjV{**67*}Es~YMTK$OG6czW<>B<GYEQfo5;Lccr<F1Q*BgubJ(%uRz>JA$jfqU{VK zA5zs&B7EbIHhYl_>AS;=#h6smD9DvQ_Qq(K%;kyVr6J=9N;3k0+S!!^X|Z!aQcB%f zKLA0<aJx&5PY35Ayu@6WDNCq&j?Bh`b4Pk`G1W69Rhcp_vdEdV^Ft7$sKXdEF%m`i zF1!(nyLk_ND1JAkfH}-mGvcLc43Ea*-l&Tl!K`Iy_PtqJb@s4C&@ilE)kQpgS;HP( z&K_YYdyD~1i;l^S(dpE4KiwfEM%|tm$U*g}BRq-c6TVpsQY<4Sng%q(uQaQHBEy~q zt!P0kE`fv2(i%Z&<qr_mV7$RW!>d|p)mTcHi}<qnB2wF#=M(!S`~|6a!xGVk2a+Mq z2%KjkzaA}Pha$y?J!u;Qu#~ryU=5N{+L}$|hHUIR>VAo54_4#++W>9#%yI~yN6!X9 z5llII@EEojLHu~`X|eGXv`Cc}n+9zm_rirwMHrG%@6LmJwE!|B`6b^3PiYSXx6j}X z4nBrPBt9R_wbWu_#%%@Qh=^hIXUIL7B^P~Xy#>4VDr~KSz2B*OsO6|NaLOU3<w%rE zH?rNR@kKpp1o9EwWYpPqQt~>4ib@r-z^*XpG@(Swl$GKcO*x8Ac3Z-Aq)Pcg;{yyS zqfMS$h*IQU4-HlgdCtXbi3^rqNQ)fjW1>_ksR5)lBXRmb<RwOmrsH5AZw7ODMIT2! zK<f|b#vsPfl39Sc;~7iQO#XpA<3RFHxDow7a$^g*L>Cr|Vf_`tIV1zN`UCRDV7x-{ zr6oL<VMSrb-(<~JjzD)@2q+IdL|Ae6TFi-uy~JFKYMM*&h`R+GLTKN#v-8vL4xG^^ zL5#V*$6Wto%WYodacX22QcyJG7mkJ@K7TXWo*ucYR*WyCNu?N%3j3N3p0w(fgU+;& z&Vl3_T=Dcqhc49GSk)5k0Y63aPuF5Ds&bGttV+fo_>qv)X<47xC_K94v&mYy7W<f( zZNvnWH{q_qkdd36rRF#|y$l+P0^YJ9OKZ_u&ex)=aHpd&?maf8r$?&Ew7`?bmp&{g zR;W*!?O3**It$R~+HS>!C93MQ){CM0bc1>hlXCgZ^qIlgSkhqi5#O9ZDVss)*Zf0+ zZM7XF4vK?VbDLKGdbie33K+)6E_~j?_fRa43lgk@iv@9U!8*K>9;P7{np<m0o{JlB zI-RD|A%3Sb*<&sFT;S*^AyotHqN0??N(;83c#woiA73}S@D}EO1&vr9Af_$2rcN}x z1bxwB&r#_{>Ulo*WHTBW$fI}&K2NaBF;^Xk#2t8!T;_TZjQ@@phv&+EE|HO>K+<UP zYi^?WwUY%10xU)nz$oRpE`1Vx=tuF>wQ2iF{(evYt$zSDqojBzPe!=(y)c_CsMf<p z#9AlG4{^imUp7mLm8Z?LATM(WSjh^a_Xh13w7k&l5;K_e_@iBr6}7c=_(#5@_mrRx zf*iJmzt0<56;!g&#;X4NQ<c0Zto-v76FzP*C5sL7DUENWg$AU6w?%$~I-YG%R6`dn zHp^28(h}BuJ!^(=WgTqe<p!m~4?dyzVr~Ht55LdY9(z6VQmxOkrVm1=4^vIY`Br~T zp9-|we~oY$v%$v{{}W4uQwbwpWIVX!IkO%xYnRMWQ&4AA(=)8f1nYgIU4Cd6wv#E^ zBW5<kZDdKId;m+*LGXf7@6uv_K`h{PoF+xV^vSQqdMK)tgKYc{P3NW?_;DqueDJo5 z*=NcebjZDgWkZl378^dMOGdR*4Es4S)c9KX*9hiK{S7abFoR1X=G}v+obsrL#DxxP zlpMHxMZ2KHx!%=Bs6TL3&g%Vi);4~GjqI;ryH|U9Z~b%1Kk(O57al81*iD>OPh9g> z@O0);X(gLPYF}c}TI-RHQtJmuMj^^~*nKJL8#V?2A0F`ybZ~`?y^eNN!CN$(^^W_H z)94m?-v`N}4_mk<Bx48|yt$f?XfHSHXuxT)1W+~~33iw(n3QTWo?ITce@GP=Cb8AK zOW3wBTH7K-48&M2o+UuXx7ORK%T{UuPZl%+a}VGE#=eJV=yU1Em;)^_o$Q+k32)wX z3Hw5U(w;1(Cy*>FaAZ5+pCbW04BWcXx1?RkbIHWeT9a=u5?{e~mg?jv@PT&qrL_yY zQiu*@%<{|S6**>MBQyP>c&-}_1vs*BQ(gc&`u4^(kjsI(D;z`>xe|@-aFLF$ZJ0>6 zd@{a#t+<G-7f9O>pnPhZ?H)AImY+#2QF?lc&-3-I12CMwv7q4}H141czmgGn4oIb+ z3MGP+JtZtjKfp8cg3t*I4I|Zs%E3#8%Ces2`fX@aT_D|ZvBw<7fMD?KVC1jKUKpvA zY=>q3E=a&3vmg59N6?V87Q2h=8dql#CW<Jcypc!w9@-fU)2-L=jl`h+L1PU|#_!>O zajifs3n6bPD2w{ija0+&yhHieF0+B<Gs_0-bGH>A!Vnz`C{f4*tS{ezeDlFB*ZL<_ zyGwd7WMxBgAutnvJ|t1GKPVsv$sW_Zu6(S0hGyxe?|^ssIDGFRE4JS0`G~%;4R7(K z{K@#EG>moq7>oxFzedwva@{Cxj-#kDknK=BIBNJT6eTN53zXmk<{~;{(s47+FtFj% zj@d#e9Y3rbMp=!nT>8I}ZS{uTbTJDlPJ+aD%FUClR(NQ+ZV@EgcX06cqP|=GHJO!V z_Zo)>Une~i{K6$^UaJv1;)Tr&8*4AILRW^CJ_`PndFY+#K8X40jA@ekwO9qo(>U;b z42q&zp*)@8N3i(81yl^FZWSci!$`DN51xaJmepkSNNOty>IewMZ*ZYSvV7Vm1cc@J zJ_~xbFDs?#v&BWPi~1AZl7oA=J`kbs9nV@|vLL|Q9EYKoe$P8ie=2&NdJl|!sTH&R za6q00=c9w`Q~8JdAE5k)5~Sw$<@;dVDWHKr!%9$ni*+w4D>2komJnY5GQDt8DdRl> z9io4MufNZi6NX=mwJO=dXPX-<7gwdaIle(kHLRNhb^r^kA;Zz#K_Ag&U`W+o%%G<y zbnu=L_A(MkTOg<VbC8}s=3flk-(gs1?tDG|%NEL9Y_9lyjAtcwg%p>3N(gE$3=X1} zCOUBCE)EcWD+?OmGfSY!aMD^g0KhbAnoYf#go-|ns-ECebV;2A!6&nz>|+rQwrETB zZ=t6OpXXhk?v)qTMsFTHI`Sb-SUmQ9bh+u@xj2ORdaXMtiP582Q0Jo*`HI~<|9#P+ zqv0!QS!hfq-b94Rr_--U(CC<rD`0D}yd4};iYv@VFHI<Arh+-{y0Hzud-xXJxR=tO z#K>Q0VG9w{8m|NNNhbbaiYtBHElr$@DIxEJdBmYG?ok*ce00Z<-`u(poUjwj;4f10 z3RQI{$uvp%h2m^4jUdE}{%XDk0;?*}M(D!Zh&1%f{N&eof<4gwMymo*vPk^!(k$eR zpfDst=$_;0Xt~%DISnHotdqaJ^c$^R%e8i_Z`nhgo;?3(Yy=i#iM-M?8ZqVJCqJNa z9Z$?hPVyyQUo_QYr?Yx2at+%Q01G9*$Yjdn9SKbBv0r3K(!gnqFQ;7@|5o%mBcN2~ z$;~YQ2O&WxqAh%W+_Bm^S(byx@*>&G$*v3@LP)63VCWeXv_&mh(uL0HKPDO5%O z`KDep5)AWM*(fkQK9dhoMy0M>F?)G;)72RNWnDT4Bavxqwb8-V+i6!9*pi$<xsM!; zL;eotjG=n8iqS(K3>!T}Lm=O*?GXEnrQ|F6NyJ#NdnvL1(!*|<X~{-D9cQ!QY{zdj zt{wP|!!H}Z9Q>U4oq%61ekb9Vhu^9AosQqPEDoy+zccVV6Tk1^=f>~5_??B{+4$w- zS732E3h^t!&x@Z9tPH<d_+5$LY=k`rzj^r02j8plyB5FeabJPof`4hc|5;{Cv4*{b z9A*cE_rG!I{~Pa)^lHvX;NQW@{?4=i$)n@`$(R1s;j_M(e<BX~{{-znLOSjrAyR1m z)!{o7-v7wuzdC$cd*Gir{?+-9YWSZz{?+OKXRX1%I{bes@&6Zyoermk)~h1t-|0Bk zijIXD9g8M~!)n7h3qL!4qwpJz-x&NH_>IMH9DcOu&+sGLR)V_WV!S^Yzf17D6m*xR zi0l>zFbjV09Yq)pB@73`P!FQdM*WwK`Y#*xUpDGL^{`u<NC&0GfgfEDPm|p;YQ*qV z9_qE-GBL&Pc#;+PW!qf%or&vw{0i|a!Ox4jP{(fuej)s*-Y&!MN?gyuZytX0Ro3iU z<)4juJR9|RHtO+g)Z^Kx$Mc-0Tk;&|TJlC0Lp~SdHwp3QvLps}%V^M9EZKJW26iOe zbg*ZN@4#e-bjZVQai!8H{Rono(?NJXe%vRJ^yV{_C%9xstLm0S=$X8hweOO}O_ib* zV_C5Hre?Y(8%*?cO?2{_cs1AE$Y|)9%eCMJI+M+~@P@htbd8x-mgXgu%jlYHS>?ip z8*%!-c98xZ58WbN`2WZMI}&KFT@to5HZ+HutD5Q>!{=2ku54_!Ox1l?&JN5ezcMgA zID5{OKS%+AnNzRu2WL*V(0k{FD;Lz)sBhOc09{hKxW;lr{Y{Mv&#SJh3R@Ob*IL4o zvt|0!sTaHQ{WS~fDwnv5CtNh){PT(n_ytKNSBS=X^OY9sa;NpQ>@kiGC_8BlYpvo; zAEoFZtdLz<EYjK$<`>w>;!K#dAQveZ8_$aSGZm~wTrU!53X>KkrDHAq^W`|BHrs9E zavXv2Q*&TpEEbxJLC3eKP)^BluC@7d^4hX|Ij*SPc63}$9^RRf<CsoXp5pQ@esrke z4spnGjyPA~%sxQj{9WQZJI8suZAMOBB5O*HYpwnAocy*?({c)<qitQ|w&mpedU9M- zp3BLb@_df-@)vR(`gorio(|YIKA7X!*7Mx+FMuV*y^(n1=%#;&XB)*mnq~XZxE!aC z*p%}NA0n@Vq*Kr@AtQpc-eC*m<lRnjO4z65<gXp&&navh?aL{Nj`8QTSZxF2a!LUC za`Hhk1@RN2AUS*>c&Tzge;+$!9ui%yz}Uw>+!K~BF!kNZ0^7?t@bpoy3mw$uZ$Vs< zIXY!dkY&y<w;^+Sa-4zZa;WYD3Hlk?QN&LSyGvjT6zm~^?NKmVIhPLg-9CX$;E#Cz z3(PLkAHp+Q6_<|N34@RlB-gd1Lv3~lFG_N?^^QYE=eT@QjMK*3{Kr7N4C!R(ahyW` z{5j4!NMJrLD+FFmIMd}&PTtkXW9WrGep)KCNfv7bt(u-rfywkR{TJAq#PbKFLqVoP z4?qK*fgUO;K3tXJ%0g*<SJ1cri_%(br+|-5Ye?V?^zfLpUeD7S9MAHE*21PkP3u~L zdH5qn*C{ZO1cp5>Fq+Fn2gz=yz`nr{j=dqUUntl?f&Hg~*{QO|(aTS)oXSl+&|zq? z%!rO^vzO%*uFXo=Y^#|mLTVf{#z#nvEhYHLT|sD0EVoI}8flYm<u=JrSw1gyO+}o= zy;X$or+0Bsde#X{wgc(eBLcgGbeGwJGO`6_WD5dh3w$YCkhR!4?iedT0TS;|1s~bQ zBFrIfRP6K-utI@};=}m)N1&TO0$u$GbS(l?^Y<=+9YDP3pgQ3pfw8)1CJJa)o6Y7$ zCQRY_v{O8n@}hd}4S{)ajWSty3v!F(_^H4T5<ZemP0P`r<F)-Mrv!k>qPp<vWKjv8 zO63YVlCaG}2H4kT*-)-g{S*VP5H$ae>x_10&2Tf52hw%oJu2_KEZxX-jcm%};u-t4 z9B3OoD>^1&zddVKPUG59ci6J7u_5$n$m_|V?H9CB;)ArVwarZFC7HPS<CuMuHKsqu zHC5K1?0pw0I1U+q^ZSi|=Y7hz3i198#AGJwPvl#*h@TFqMLgd{&k?`d$qpy7bgFax zROdqUsB`b*W;a!#`NktZV469Af<<NUIl(KPR>d!<OZf$`j>F3!`5O*lOnyp=$aDg% zMLj#+T+dcyodFq-P|pU&U!DP<1AOW+TI3sVy9W=BRWD{6NIsn+UiS#w{depC#w-tt z{Rr%W<Eb9_K=A6swIXZg-$0ygROdm~OHHz7@){;=#I6u5Fh-mm>*+tU_tSG+H^9up zPn$M=0k`*o@z6MOZO~2vS)+Jo0lgE5X3a!}Ypa4n%ou+i(YOKMC1_|0GRoDMw$az; zRID9EI(~=Erh`}?@4};}{{de8g61&iHM(uo^*J53wf02T?Y68_AT5+rDklyy#yHjp z+nTUVCw~BLi|_}g!@J6whZpjvDjtDOujS*%E^uapnjnid+cc_^r{^?g8F-0YQpjNX zc(S!&5!O6h(?Mx&7Z|NXX9={8s>tz1NAqYdLnQq&ob`h4hLmhdNiwr?DwuGVGvR;* z>CPL1mbM8o>ooHnnVs{K?>IfD!nSur)qxjH@ypM~KOD65`>}aaieN8iX)6<SG=Yu| zvR~B#W4<A?LFsatWkE?I>A+zpo8<!iU4s53DvOYNmJOu}Pgk-~c-l4znrzD7ba@So z=ohcI+I~J_;--zKyt9kWW;=x^^sP+lTh=#8NiHW*Qr;B`TA@}f@BIR+x6}J=qZ9VZ zoDM7HM|8~EQMT*wK2r}D9ybcwAK@Bd+1s*0Io`FldX_*yA^h$VG~XkB>9nPNewJ@K z&o^l0+AJjQSmVONBt3Xn@Vhdl2c|Xz;}_uk8neDcf=6UWyb47(7R?^xar?Wxa>-7P z6g9HfD+DhZhDE%D4~{xWlsO$0RF|p5p(K!uHi>s>As4fZf+=5!>9!x4k@dTgWyIQu z6c>kve>iB&B##U1|Jp1T7t}-1Q52VlMvjYLy!!z8Rq6an>mrjcYokriS#QmHoZ<q^ z<Wi9O^ZXb59!bfV)kP+LB5lb3icCTVKR<r&3VtUK=V#I<7Qd`NBJ<4=BjZDL`MFd8 zaF8BQ8;9y~ef(9-FCiNm63=g;=QF6?4jXy}s)1?S$iB}MSE2DJ5l*yF;Jbm#R9x_~ zwN||UAia-+ZaW2b9YeUSeOzGe<j1k{%531AoIY0QY&D|5<>PU`p#7N2_El7uaC6zh zNkbrIww1`TkH<e8i};DzBA39fCTs?IFEesn73?imU(tJhK_gr(7Vr5cjC{I!fz2ge z!WTj{f!<5lfAQ=oW<w~R*P+6ZM#$EL5SgwL?c;*>YGJR)-gF{8lr~h5Kago+=@+yy z(#;<b-#ct;N6kTzpz4%4ssYkFH-6bC;2#cJB2~t3A(+h=Z<~t~vw>7riUr+rB4*{5 zl@-=@W@UxEX1p=1ri6Br4mFB*ub_8@{VQB+TQ2>B4)Hup&*2|jLH+@J3bbjPrGN0a zp!t;andSdAY5(AdEW)hbc|*|MLA(%8(NBajjea8Vq-qDQ;|xl_WkT~!i_yP^bGV70 z7s{)qn)=EK;hN=P%Y^F6aHVC!g63w+1co*>aD<=f-J%IamI+l2ix=0Rqi@2JhH%Y< z=`-h^*Bq{_S|nboSy*1%M4fj3%|YW-%m*Ph1z#fwP84{DxR<(krocM|F8k;v3cO3; zvY##}a2W)>PscU*QMiR7O0tYJ3A|I_Yl#>~8-9$Q@(2g(tHb%H_z_-4x{E{de;C(< zw+Q?k_S9mbMK}mwFL2g32kbe4_fvVn(alem*KlU^r0+ObzZuS-;77PCo6vN))K5jY z^jpYY(s7EwI|aS$3!{POL|-B5R2lzE1>PZW*(XM${fWL&)K{!u4E$>Z-Xd&s5epR~ z;so9$@C5>2EAT>L&-MtsQ{YZf&LyA61YRca34(sBz*__^`^0t&T$Vr9FNSw$&mtx_ zYEa`~{abW_d?nl~@M^+vP~Rcp>jf_3bGE<_3S7o#qQG6Gz&Kc+7R~{ITTWuIh4o$G zvRvRDLXl;B!UA6}@CN>xrCstT1B^q)=idchA#e|WZ27IgI|VM(&ay@F7r1CjS@sIN zOW?Bq={<q>3taX=k&j98X%P|sPZ92S1@1kS1HA&DEO6&(9AN!XxST6-GO9ROzZ1?) z0`C*J)aSUsUEgHn?AsPy{aoOM0%v_oz^S}ZJR85w=|z``<pqJanDG4q?=az3luzQ* zDR78|9eDy@Z=(Ocz`IQJ(*)jUqOTBmzrYa<cHAuRg91Mwa5`nNuX753%O6QTE{;pP zdauA6&)~T9`=1bai@?47v1O0Iy99nv;O`22{h1tKeMY!EBJjTNaGdqC;4&Nbi^<>3 z@pJjfa+<(91<v|_@a#N+SDeiWqk=vp@Ph)E{1*wlgPa5$H}I2Xg}^NZ9M~oBy9C}R zaLNBsfmeKw6SDpjT=q&nqM)<>3*c`Gyz~2<zLTFUwACi1*IUSe^#UIQ#j_&6Tw^#O zqH8%#;2i=N>TbChIPp0s_$&~7LXwYz173k&C+I7LVPJg@c-A23W&f2hTb4F~%YG{v z?k@x%?**K(40pYt?-b$6eC!tV>jgdQpTMhoBz__1!}=p|`L5(&!g1EmfXhPyw_MC| z*{3iTav?cX2%PmRfaElR_f6vTtRDfFMFRI;!g1DTfXgWYw|F_u+W)wmBk-;%9RCA9 zS!x8{GL-}Jdr(;5eF2WMwmmM}fm8mr2!mQC_)z~R%SW99teua`-w67CA<tGpPp2#k z9-59n3O<(E`~hp@<8r6q(<j1piuc|W^iCm2S>8Vu^j^rDjtcf4{}2y~r%TYYJ^;Wc z3B2QKPRQE(xcr`^zlP(ijgQMq1YTCoan@GHWtqU&S8|-SyKz}1`BZb9wV`pjRN#d* z9B1ugT(%3mrH<nt^ONOg62FlHtPP9HM<ky{j<dEXE@>PorMI6PKOC%0iSu6sZiz6M zw-IsqvB1j&ehYtW83nl$pFV*<DDYf?w=Cs=Z1=eZ-Y;<0_5(?=z#CU`de+XvWk}+y zIWGOxg_4iJMfO-)fs-C~A)o1(!%vob1ikk*4v5E={}6bY34co96#}0t`0N#Um%v#& z56}JzoP{g&s#wrxLGcKeDlP5IsRHj5^wKU}0G#C6vW7EYZ9`lJ1$~)_xNt`-3k2S1 z!dD4C{XgP-Si2FIw+p<ngX64?h|Bu~e(>KozMP*d8zlXYIdFx*pA~qQz{3K6L*U*! zIq<2CpASg<C;a{nL4OoD$)_Lkqr+?E=bZ5zci~KjOz&9&FA+G@k{y!-?iIMS1G5EQ zX2PolULkPFhnQvIZ=@s3Vjl?xwfc6N1f$o|H_BC3%4<u5D-jPF=QN5bNEz^ZGT^_? zfIpQ1e=!68ZU+4047e5TtC8Y=Vg|e*174B=zaj%(kpW+p0XH(>|CRy2Hv|4y2D~c+ zzBdCtm;tw;{W+36$7aBt8SuOe_&FKyKn8qH2D~l<eoF>CngRbw2K?R(_#?oNhux?U z_CgnhX0yP%1inz<dj#$k_DJIINqQ50MA8dWAn9|^{-<!eO!yfB_X-ms>5C=337;<M zQ8myZ>93abCLANd%4;jDYRYe@370Rf2{+YMH4{eT&dTeS)P?0uVR_ZU$|gY7HOo!d z66*RA?-VjdbxUd+Byv7Onj;Gq)>Ky4G^OEV`JK<hQ2Ft<Rer_8qE%epjEFZ?F1evb zaxN}c85DD#l$-^1ODdagN|RBNRn8MfNTR@0juVebV#x?E3QT>m<d_$WMv|%o)mMR; zV_S6oFhSsU*b73I$EF*E$4Xv;CKktpdBN~7FBl%?1({@BB%Tb@9tjQ$^MYg3IXuIQ zM1~G$CBR{<ibrC_l1@UYuBkOCgyc+5moz}nM<A$0u;oiDn=n{1rSkGUz>tnoJcd1J z2EWQkz4{h~z~WQY5aH}d-lF930+cG6i)xyd)GfJzl$T-k4VBg9H0ZOO7pwB-aAd*o zr`2^$HC5q;rkh51wy=8f^5Jl8Q%z0zu`my3L0xzR>gHo$Momc~84imPV?XQ(6D4Dj zD!pl_ZgC|q&@8c3#6@6Db&FU*9|<2J#F_>5RVk^kI5akw(|}lJ<QNl%vN5v4gdy9i z8<wO)VToF}ILyo*5tgIt9#XAruBxj;PkqDU@`mt2ZrMhD90}JJO_X*A>}!@ZN19Uh z3IOH1)P|J#6}V7ElAZcUC?QiI6=w=19;&zsr88Apd?sCSQ(jwFQ(xU|;Syh5Szj+J z2JvLV#0xLDASG4Ctg#B3P5&fG@x+pghLbQ6Gx@M#%4x#l^DPX9wl*|XE4VofjEZK1 zo6{sE=MN8~q1gm1u3X+YoMa)&OA5K6A>2^TM@<haST|HQH(Eke#AZ){>R(CKOZn7> zYDH}*%UF_zy-3A0#hpo}a>-3>a5mE^R(4a*7ewmnt66zZWmI`pePweqf?-9QF(4(S zS8A42HB`d{G*6gVII)NmPz5b{R!K|1vkz1kUC61p6%W@mF;<Lob4}CIx+*0(tmt86 zczI(}Lu2|irgcbZT{T64OcS(nX=QyKK5L~F_=01h^N)oJkAX^#K_(u992?xRtcCR_ zqf=kEq^7cILS1uHB|fx?IE&}QjI+R4jX?rpV&STgzU1yfS`mW7%o58UR!WAOD~`jJ zT2v!TPAbpYvm0ub)WFda8D<d{T;yBv#3B}PW}Fx~JSQgpG(vAE`Z={>NprZoH0`~m zDVYIeaU{ve=*SW@vADR<f{&6E(;C!lQgw<^CIyTSlTE2o4SG}DXof*KY8p#JZ7rGU z;br^65|}-jlt3iHY|3O_IMHKa$)nj0CYwwdA`Ep}7nzaZdB}2zh}g7-5y~NHYWhvd zN~nXPh>TI)l99^BF&ZJt%<zawkVk~guV6eS&L>;INoD1Y8TxbuKW$EVX=S)-VfpO3 zn`<n!<bW?mg;JBcZmNOxZK$$<aCR6si^~HP*J<qQumUcx3!AYkp(4|`Ax{&QH8d-{ zX4lj#Qf{Z$gy+s)*w7SKFyb;d)BwjL&4e)JHn2S0R9Q7*_`cz+>T4>SYj`}7R$)aN z$Z0||gZ%g#7dH~)sii2$Gi#PHi8NG4pgydGav4fFnI%Kfmode4c`1K0n95v)DYK!z z4k}mQ(6A^1EeSW(*DSF>^i>O+=x#|BqA@IjHBC(oO$4!AZmw?#m$T5}K!!=t(z2Po zs7}3Q;xo$>k(-LjoI+gOu(U>bo5<NC#6m=ZG=lCLZ(73jc`;8Gt0$y=gH2}l<)}ha z7+h|uONL=^{g1)W1TkZ1yO<%ggUrwffsVjmWsmk~#6_)Aiv`_1@{<I+&p(r$&_~I~ z0ANWVc1+HIUz-76lL7zEcSh!4ngMUifd4K7?r@LHzbFHKdj@>{chh`+hD#}j4>I7# zot37iZ+DXZeFguyg5Q32nqK99X8y?d+ZpggA*V+-E6Ydu{q4sBr+mB@KN+8gP4x1+ z-1-dk0r9;p#oxihdqd#FpT3z({sSiZ3PJygLa)ZB?0n9T_^5JdQgBtCPYPVdr$zAJ zs?e+aPZHnlh`%cTy9F-!bP7IinQ$+Uo@MNX{K72HB^mIJ47g7W;4$<0a|Zk=G2p>W zzw6?3d{p_os^Fa<N##oh{IG(n^0|0Yn*YxfK0i=!HQaRyu7>+S2K<i-u7>NFoDTO_ zO1PIQxEh~Z6<m$a?-X2(&)y99hYJ34CESxPNykSG_cMW${!mw>{GPx3Qcf>%`8_{$ z*~oZ8;FP~A{|6QPmv|=g@o5GBse-?w;P)wb+>09=#Q%Q$B%k-D63X!hahCY0eg-po z6~9u!)o_<(z<;6ODxXaXuJYNF0slM$epVnIPnFNb8St4I@cIn+zh}Uo$bj#f&f_EN zQ~8~|NKeP}*SM5&o~hu!QSj##{2>MZZiw@d_Nw2(?=Ka&47XZ*lG-D1vtCV~o#s=8 z%TfH+5)wGk{|A0Do-GQl+W8IzSIg-K3jSM#&qH%~Kr;UFd;WTXQ@E<#9#U|%TzpG> zs3m%}yw6ndhm~;a6kILWcPO}8zIF+m;z{z6$8LrG5r9%Y$BXd<GF@`q!DfL|Jb$my z|Kuvpk?=<q+&@2!uUGKz{UD92<@Zqqe^8-+^lDBo<9`yrwY*`%h5KPS>$)`m|5W&R zGvF21k4(QZ1OC$t_*)t9&oki1myaB7K?dBH0e`z<WIp+oBjd9&;Hxv>Kh1#86v{;T zuFCnR8Sq^h@Xs^g$5)RW|37EI$JUHYe@X^?{tYA3FUo-L%7EJzj?8C92K@O9_=$BR z^SLMkK05=xC<Fez8%O3pD+6Aa0l#6<$b2?uz(1}Znf|`TBjaZ-85zGV1MX@Vnf|94 z@c+z!_h!KVk^#?Y968))GT_f;z+*ogna`^k@Ee*&rr(<Ze<Q-_Wqo>(-&)RFmgb|@ z7vB&AX{cQP0Y6zUT(97dDfn#){<wlaq2OwL_lkn6^<C~wco_$U+likH*QMZ3DEK)U zaKD19_2VZB{!@j|M>pdJ2ZgJ~$GVci3|INg%z%$wm8Sm%E@k|0zcr0-Q1J6^<2co8 z7vm?#f2|Za#phS}Nj^U|(aU!6&lLK575dYnxWPeu)cBmE;A(nX6<qZ<?#O`uOu<$8 zyr|%6zJICUYPjERWzl3KjF=q6__Ff^PVraMb!i6rX&LC}nds%Xw(B#{FE`Q4@op^{ z=<iZ+RSw+>u9mMi6kL^qJ;vog=~d<SeFg8tGpP@gGT@ghxSEgE3a-YpUBT6O{z}2s zcs`-vYJ9pg;Lj_#8lP7cT#e6X0+;rRHY=cGLmNMv<@1_?tMMGWCQYw~Tdd%nAd&K{ zRB$yuO&RdV6kIJ|I}}_kzd7wZKC-;aagiqp+^pvl6<p1i+cMz)uHb68&ndXdXGq{O zK5{&!#YoFdEq9+NxT>Eg|0qqb^1n#I)qJT|a5Y~VGvF&S;O!akKPb4GkJrZ2@l^9` zxq_?p+7k+{)@!!4X+A1GRl!yH+@Rp99M&s%Cs;~7{F8#K@jo|_4p-&BM8VZ`{ZheI z`ezjUJ|)}(3a;|Wx;-84Muq-t1y|{3DY#nCR%F1#3a;|GU%}P*?@(|x{ukVlj;9)K zZ3aB5;HsQ|q2Ow`1s!SrDn9wgX?&9+p9dBEj|zUmooV{}6@1QJY5cbe{<{qLK?PUK z-MG8cd{ljFRB$!D2?baAJfz^NoOda>D(Ckz;Le|<<D=4lCj<VVf~)PyT^aDDXQcVB zQ{*<YD2=Oj>=ze|j8DHfjjM9FU}_qF0GG0yF3EtOG%rp6JB5DYZE0MM4@Y^QD^+zv z-{y!zJRppIeJ&0-`H5kKZx(o-377QZaf<#X0py$LB`(_sGF<0UPB>(ucL|&^#xqG@ zC~#V{ln#lP3EXMID+EqEAF1>ffxAq2e}vOXzd-W;jqoq!JYk717XCqriBE;Vy(V1J z>n8jXQLmSo@Xv+6(x~87Jc{gpyMmL7$$0~v3Qm`D-p@`GULi8J&xAL+c_8~tc&DK6 zH{t6AK48M-{LX`B{B+KL$b`%JbF5(j5_-%?CUAO(jh`hh=jY{_aMv}Q&Sk>8L_Bp9 zF6Zykn*4M~{&GHUg$bAQao3q}InSxngu6tzJ59Kp$Gp#kyK;Fv`c1f;mz<ZypUZg4 zc~mYlF8IiG{3N}oZY=Xn^m2Z7g$bAQv)7q$S2d4ErwNzyws)Fv8SXwaew;|J377NB zX<jWIGX8QNn9GFAdFQ$bm*LJg;c|XF&9_zg%lYx^Ot_q9)@j1!ym`4^pNwaVNY6eK zy_`?hZ^Gq#GPzD)iqDNaey&l&<LS!g_i~*+NuNruiN2Eva8#J^LZN4JeLl&ju#wYu zn&{;^2Rlu;40oRi@8oPO{U*Fi;CZ9@g$&pG6MpY9;oKNlEb_Yn(O2PD!pSYVLQnQk z&X+1vaH5|o=;eBT#E0nRJgN#4{d_^cP{D~_&aY}zaN<utI+iOq(aU*PEecMwHxMxn zIsZ?_N6yER-^U2w#whu}_Obj-_*Mn)Q1EUAU#H+*3f`&UTNL~u1>daT>lOSN1>dCL zPb+wrf<L9;vc97D(@zer8BpjMKAXRE(1ah<IX+~<<vd+EwM_Dt^`K)Me^26azOU1S zHwu3#&xFf$0$e6s&YR3P;a;Jjg(h6i7c4R1>o4T-^O|wtU+N}Y&d)A0;d1`>d=oC` z<yV;S4w2r4CS0y_AlJE*a<h1OJeQm3D@fUKw3u)?f4$v=%Xz3BCS0yVu+D_97xC;g z;r%WatmPpSo|=De!sYzhO(tBf)6iwY<vh`yCS0z6&}YK?L_GJIaJjBSzX_M?RScML zIsf&b376|744H5_AD0bSgGgk4$@Lo?<GGw9F4uu@n(@_~F3*H>G;LocA6bs_P4sd; zbfF1v5q`L|yONKbFDvb<#2ZDsmn{OPq)X1zmG)KA%X#YaP2tLU?b5zVdby5>OC*r0 zMS3QWVsRmHS>FjWWRZBMpu5&Y-zDxvwVI-rfwY?F3q|1TOn9fjH<@r*j}Mq|Szmu? z!li%W6#QiT<+?;+6E6Lg2Tb^SQLjrsU-FUuiJbr(5|@6L^xGva{jPIO^wPibnsB); z(Hs*l{l-=kF8xF4x6@-viu8NsdH@oaes7nFkMwW<WWuFCKVZV;x<p@^aJeo~D2t?% zmXGxRt4+A{|2s_hdg13kV8Ug)W|Ik*>k<u^aJeo~iSSD)x+EXj4k|O@vK_R-gv<6$ zhY7F9qf}Zf518;yfp0S5vR(O{3GWj0QXgeJ`vv}~iC(Tt<Pdr)>E*gar<-uuZl!f* z=#cc-4ul=;CS0yd^m7v~?TIWOl8?0WLneCZZ)6MqP|~OT4HGWw>tYiw>uc!`OFpvR zyw*f7>pSVkN_ts;wVLQ<{k6`79~AZ7BPP7x#pU*#377RwzX_N1{*Vcm^_O=H=O^PS z>)&b<F8!RJn{e5`vB`wX`t)5BF2^hKP0iE#Ajd0KJBG(cu0Paj!sYryeI{J4Ka?%} zSeY)_zwv+xw}}1_=?_bK*?-~{{(!`#{}VRh(jSxlm86$`qx63yF8$1RO?>2fKiQ(5 zmGsh&4ViH14=*?2(*Iv;!lgg?xCxi*{q&n~x!%vYqJ1pmWAXBQnq$JH-?Gqz%XY*% z6E4^LdD?`__J~9DXQaXv?U!N`F54rz377s!*n~@eW}OL_{aphlT=qxNyn8xid}M!7 ziwT$gIZvB#+24|_4d)~KLv%BKBd1$u!exKLfC-oD?#TL9##8o_lsSioEBi@0Ot|zj zA28w4&)j6f`-T7ct_hdz0$I<?_%yEO@o*nMJU;yb*G;%=*IaADWjnFagjd|g`K~qL zT>{@^!ezVQT@x<XxpAH_Jf5=sQewiT{~R{q(%-(zgv)m8CKE3G_I@)i`g3?}{^$Q) zc$NGSQ7xnxdBxR>rf@{Irsz(?6}bl96v8hSzQWI&PUUARMih=P(-z@YSk4l-aGN+W z{yXnUT@JetZb%9{7gxmdfBODJyi4&SeN+#Z2!EllgYub6UWjuM&LgGY^)V+X5%z;l z<eHe%e<?5u|9t$^qy0X9*QkQHCR#e=xl~*iGBo{fNWA~eG{mmtd-6OFsJvE5PrP5f zOJAF57m4@H^2-zNJHC;Am#$>`C0dJ%k>of3D5sF^Op+f}k@9`1KU7T3c~5V;Hqd{} zGvlY!e{=ll-W+!#UMJqK5ao`{_d5K{;gcINQusqV@c_qSVfXpnv9hj=gd1w>!V?<4 z?_x($@x;OlC!RmCxWwfuDl9Bi{$tXu%T-)7@xqCWvSQq=fzULYHJu`><<b%Ja)>_E zi^I##UW;bQwqT3urPqcM^BlgXh)D<SEj=?B9~X>YIaF%wE=^1s!fwO2p6g3YJvw-L zZHKWH`!$CW*)JPgLkauK!T8u<+({JUVqHPw_@Lp4yy3%s!@=lQhtKmx<k3&Iu}j8% z@Yfx*C3agoLYn&wg*RJIT%SjKx?|`0WubUhXwp>dWd53-m^yIl{6y)|!L!7k(8kVa z(yAxyUOkc9W9+1>P~3)7PiT_m*7HJfY`lJ@Bep9PpMgE8PYuQAV*~1|9XR9mYW%QM zbQvJs8F@Uq1N(Px%kz8{F|N7plWla(B9puY(+sf@v$_{^d|I(?Z0tl-jWv|_MP0O2 zd3vvM^Sy7baR{;6;G3f-{Jq|}dZNrRTaPbv>Q!Ecp2%*&Lp_x6@4yD=Ylv-pzIPKz zB51rG?Eb=08hbsY`S<B{uQ#5I)ziDb7$5TN(4q%G;g8R7>BfhH$CJFUA@=;B=b+a1 zD?HIQ&$IeGyCeJc__Q+JGffZohqNuVHr+^Sn`c>dZOctIzxCP3f{^F^RoCIsywUhq zHyRJ-+40Y3FZH}ss?B^!_w?ynX<x8lPpN0`trt*E82ds6@9W)1E(;z$qFa0QNvld$ zI&@=IiEhkv>630MS(&XHH{tGwE*`IL#B1lWH8O&0${|$U7!diW$ID!LY)|+k-801% zcIv%e7ZLzrT#2-m<?GQdyxz4;?swmT6zL)CejT4F^FcSJW54-nWyT$pAGpJ|_HFdZ z4VT!;zO8~^y5iFciw-5qzK$NTdbOYQM2BoX?XIrqklpw=><P4XMT(<C*6@i&U-a4R z=uSHj&EMxc<jb>$v!c7KoV{_+&k+bRS?)b<d>nn&Hn=0TS2o4(zlj@lTZp(F<d=Up zZs$?l@+odP!{Zj+WtY+6kwc^`JU+Csd@IS(l3c`ec!Ipwje0jq)V1z@-S{eGRJ#v` zfDGx;5AyZcQLUB6xrE~1FO410T7QS@K+(Iws_oe4+!x(W<qi7k-{IBcjZQr=-_h%3 zwy)RAJoEtyP>(m~>Ah1KP8-)xW!^#WRMvOGD16Z`ZJ=P*I&z;Lk9a{R-i;LMy#X)r zp?3o%bk!S}Oeap!8(_6sZ-6R!Jj$mN-k}r1zSa$0sK+++@oG0LK)u_gN4Mv1OP9~t zy77gcxV3QL6ShD6E%`DgIJ=042xcl{e9bnL+t|^$kk#yPSdWh>dOZ~H+{A(ke=|>y z9SWbL$D{O~9`{0mUEy)MarkJT9>-&B{VurqzsXVy%i_?ZU$`ROh_QpcCANk~IhKjQ zTi0CYyEaLWX)ku)wXiU${PSI9^pV-{%|m9i`{wH1{iB#|8BMmO{zcf5Mi>~%&Z@Z( z!%7qZGBlHatQ&r}BR&mz7lx1$xi<$Bxv%KP9CzN6&p-FvbBEvV-apECMMl`|bRm2_ zI^@!|E3m_TXwnLI9<gw0(f9F0>XR?t_6W>Xpy&VzALZBX##2kIOKbg4oICu+fSxGc zK^USsS}!;lOtg+(k5}T2h2BFw*6`x!d!v2Y=4GdNwYz&KMO<F(t{!j6;qcs`w&kLr zu^sZ%&neN*Y0L{6p9i}?zbsVrVyNK7pz#sEc_CErg6=uIYD_S?9Wgx2(#MnG*|$>D zjcp;r?M}rP#y;TrJ;hn$rYJhuZ3#nb?Czj3JwF)jogeZbt=gJ1$WTFhC<}bo`L6es zZ>#O_UFDnSo9ml1mnqWf4=5l#ei@XY4_A<;S2x1$e8|{qgxsfx;*YKa?uX#~p?I^C zBv=@X-<^-}N%k(|Sr*k;7artAX6f;e+of&rWw&;<NB7}PEp{JlL@*vG3mSn&oEPG} z+!v2^;Nc~WiyNxKlP{?cM;gM{^@0QSsKn>E{joh->qmI8BMwksy`2J4(~;Jv`0ozl zS;#mXKn-!K@u7&0)=H~UQ=|r;COh8p6vYP78APkVr)`Nni@VzB(3e{4=NwseD&Tnw zv@HjtJ$Ak71?v&LYL9N+?TgQIz#-7uc5}MBck=K=K#_m<X&V_g?c07z>8gdn_!A^d zR78Dx_uF<x2xVX|;`wqs@2BV1J*h_&8$5!5o}hR#T=IoQas}fn%W8ebv;_q21O?qx z=<%ufx)G&*d0e8-iss>xy{u<V&9C)EpCQJ0IGY~2Sf<@cd8f7hgxQafyHJlGug7PU z=&@bllY)t*6?)<pl({+X!lS#P73>{oLw<BszLm>LubSPc$1h)wib%Wtw-Cyq=z0WV z*JAhLMvv~dhT=a!(e<H}7XKI}wJBu$B~;LZtKIrJQ{cl~3FA9&C>R|&S=VNMtS45v zf{AP!3hT*wVwMBgvwHOXE?m2G<0+Q9=-XXE&lkFJC&lMhXKAc!)p$MnHz+H69`x*4 z;e_=fa4SGYhS;-r3!V)ccavbK@ES3~pe{^G$&Rm%9%cEa8!zhdAEN3FBJo$b^f-!= zF{H<DE!2(2`bmaHoL&KM(l<zRh@GAy?=%=+4*7=NjXKKAa^1Mg-NGKWy4yLCgF;WN za5wV2NwBx{1m57$cmqTFP~|~?LQr@Vu$A*m6SaB4b5?p$WGaH^1oR+PS;h)?1r@=C zoDZ&`19(A?uW&C!rIyEVq3euLi|s%;(BqFWQN#{uu~+Fn@wmGKQA=6)_~Y(Qifa5W zhU@WG_e1P{t$Q7vqdk}D$OAq49)4Z8ehcURF5M9C6}%iYQ1=-<lz8H-!>AdYNzj<< zMWNUAtT~8o7Ge+D5;Aj8Udf+$_ji$!fqXv5E40>5cs@wJ<B->Bk9;3W>_A$*`lKli zE!s+65frHf8?kD}Qg*k(UD$GK33Quwq?Up#Bf&AT1bbQDBXV#~VUK!aq!e^88A9l3 z5eDOP%aBkPMGC|Vp;owt5*ol!I9z)CVx9+N@IvsB;~sX;4WSnEe*xo*B!Y0Xwy`V^ z<&~9xT%StUR4&PPglhKj%Y0OHg}z>97|9^w37G<DY(GxPPmYkLT8x2Ud~+w^@h6xD zCUU(gBNIE|Gk#C`<%2(|wLXSdq6g5rv3sE(et16lRzF;(IU(b-V0XWrJg51nhP}~V zYY4jJfO?goma~)Q=zgQ0&LvzgwJmc`CF2fP`At0@nD0kcKoZEq5ZA3x{3#M=DE=@N zQB)1N@mvR9KoxR7S)75}K0kUC)oN@ZVnr`H^sLByZR0eAR_s2s-4=lunU;nO&dFe$ zLI!)C2>sfYm8bg8S>euoXlHneA3Smc#+SkFckRLM_w1pph^y54X{qPE=CeX^ySp^8 z&{^Aok{&WX3`Tpn4wQO6UG{+<&vk1Xr`R8|X|ZZVO^;{0^{QEpxGx(Ko@3qZ3AuB% zHrg)4=jqkj{)h{xZ7wNr2`Mm?x70;aXTq{Rt6O*K@$;dM4*i@${hTrfB$THoo_4QC zUQjV$=Xk(X>o=Zu|3QG8=o}BA5VX3x_%%vUt9vKEhDB+0lWsuLxjdj&H@(C4E{gm@ zxevK@9np1Yv8!RwgT{yCG|o?M8j^M`ekU_N@yD2<N<2f{8HeN{&~%{AV|rOjHST4| zA^<Zh@Na3J^##;m&+1i&bn6Sg_{?nG^MclPI!F?Y_T(2V0Iww&U0H?__aqFMtS!!A zW|xXs@_xmx+1;!nt6J{h2|y+QD1?U;%Bq65cXKw!v!<2=VHr`}-a{3D))k6f@?om2 z5)bzy@~~O(HaRU!D(oS@NuEqa?(koV_DHLiJP`<a6({1g<R1=G6uBKFwh1)%$c!0r zS;OcBAIYktU~AAw5H6~Y<g-Y(eB0QnXWh9IJaywEJuBWtSIj<is~iU(A-{vXtx{u$ zZ;sFS6LZ6jPvG35^?X%se3=uGV=WKQ%UXhV#Xz-_r&qlU2bt>48R(bj3wpY>HUmK* zPl6A5{%h5e!BwyW!T79)g7F|KwBvEPK4=6{Lj;F{#w-W!H{rev*G^o+X3fgOc_+>; zocnOj$9W&lsA*>P<6MIC0M6cEG>P_V_tHEb+N&!x&#RF;{hk_EB*E&Zc*Gg)vHA{m z!(zN>M4V5~N7S^~iHN-SP%jD;B?DLR2F}2hvAd|NJDGK8tNj!GVJ+4J;zL_O^&l>y zZ(Ft4T3o;$o)T!UJf+kqC1uZs)9RGY9@>O0AhE1Ia?*8St9A!9U(tdvUhE#S`4eHA z-M9MdlkwzMhu`yYu<C_X<NrvvzRmPMgkl&<gxuMiDV9uSP++nHMZ0t(kQdt(N%)OO zE|Qd71N~y@>ltH7*28g@{&sCITv9#SYopk<UWq4zZ&1Dx%pTY&J*|cGU@!88a@30_ z2qSqeKwpp55=`7={litsHxLG67u^qEr`MKz2>|C4-ERkCPd-m1!}?>mzaBKcVlI31 zgXMa>+@Wom5Wk9f94>@cPciA8elDG;WsHiXJg;{;YjpNb*9rE#)H|I-0J26p5gCj} zxwCgo3*F-&2zIU9MHgN@{%vi|dgeKxveULqvH9Y2^AozwvwP{J#KQ5V@jxL-wtjON zd-u)gUx$n&lQ0T?A#$;vZ2f&qr>}Lpe8%E@ZOc>}t2=#0;9PABdUIa!^#&Hg%eRPX z5Ar&Shm#o}^cZNZi&+$qreIazTvW=1sI?!W=;FX7*;P7%#&xi{NK>qfS|vK}^XR?= z7f!nH;=-l1=1_bRr?*gr@1nTqdiOhaJ?mOrz<WZ!7QE96C+yy6o%#x>F0^jdJ$SA~ zFT%?qR62Ud=x0?YWIu<8{!-BBEj2!c`PGe=28*EwwLY{Yt(H>H2SL=bc%{Z0GXAQy zK0vXJZZD%632ilN$n%cY_9B7t(X2W}VSvR7#-};h)v3YwrA!>6-U-7y1c8hGp`@=8 z#uSwjlIVw=@XzVfHjIh(XKAfVA<)S-bQ5VCx~yGbXm=;;fTi2xlv5~g%Vl{(Ba!>V z<m8}^nPWvxd2rSeKSWOHRblrWJw7E5BC<Dz66dxAyZ?%+mnHE)@=W3_-bW-^T||Nn zR?VFZPY!Ce0+NPRE83%bb~c|~+W|g%VCsI%YEv}145zm7BzRuvXXvp-w_0^i_p;YT z29$w2^^WMi%}@(V(V?QFJ~kF4XuK9QK1lu;V95A9WDNK=gA|p)t3l86E3!kzP{>I7 z*mgldW0&9fgtxqRg$j1T#8SiF9x8x+?B@7R+#p=W+ON$#h&Gqq?bBxN^J|;`E6^Tt zXFZgq#hyfHzLMSHmD=V#=#11_|ATT7SsOBr!sRISysfqU0_8dA`9N!Z0?+)$$3ckO z>uaCmM&I3*kUI|^&2sv;klLPp_o=>u7kvdgN~?~RRvjqy{7t+4JR}3r*AMRtdUmY1 z8c9O}eVd_)mShp0b+jC@M=n6>LdFq)I}|4b_2)Vf>+)+G2tiIdwAKZnW(nc>)AF2^ ztHTW7&{ruVMEGd(75o==H^}6zZ9$I$q8N6cs%;7674+i&se08>H0t0Ucn;sXP&Yo; zje}3(Z4x_Ng%#s<#M}7jNh;rv`adLc2)R#>?kG#{Wijwme*U%8_-k?(90{&hOc=VS zXGH|zA=D>H7K6W#_By&FD-@sZWwt5$*Dq<y7MQj-)3(V=8c()qG@5=eOC`xu;3YsP zt)L`J6j(?y5Eh9E`W6t#=OR%|OlJ|@Rfq*l1@&k7dv$cJ7@rAKT>?{r+T81mer<(e zEsS4r?kNYNe}z+%+Y&v{g15>_6ZY+;p6yyRLD8)04ke0Fpx(0wt$zu5K54!=WOVDB z?vGD+a^SxBgiyg-diUp9y7uT!ylX&neS^-Baf_>V>^bO}D+_x5vQ*bLW@#JyV*4Wp zYQJmAs=dTw4Zq`yeq{|$LrI&Rhi(YFI~2bKJsN$>r<KB&c9dqVa61F|Uhz11<^M1C z-aS5w@?QMkO#-e+GqI(oQEA!Mv?j%)iABv8PTeKDFax^~1(bRN3_++|(qtFVa*1vh znT`t_YtON_Q+j$i_MG-xYFk9DkN^_!8oVH4)p)B})(dKdfC|6&=b4#gvXb`vdVZIG z&b(f`GxM2ep6loNJfGWqp8Va;{7vty_0WXA{*heHbaTN_(sko~+%?^$hu&TOsl@2z zn-ay#x8yhVr%xXZtiBTEg0}7&I#UmA*Vawv!hm&~S#vmlrmIKSww+?2+Dv!OG|YEN zwrT_vfa(8O>eZ>)k&hVWLzGj@gH&U}`c_%a!CS+8xaKhUJ1JZ8Iel+0ib6Ve-10<r z#D}E+svbJFa)cf_WSBcveNOiu%0K6p7dob`+b+GHZSotT_f~JEPd7`^*^&u~?8u!4 zdW^~0lG}}J$#`<xX;{rD`VS{VWLuQ5ZYpE>5^<jqP}5FCqpD6ts^c&j0mI)ZA}DJL zX>vaVVVFM`@GCZ`zA;)dm@X3VfGnyG$pjAS4TqeZ<i^~ka_rAeRxT+0_+V}cC@7W5 zjirEu`AV$jiQIlJ`}%)Sed{UV8Lp}|0Pmj}%b>)qd4WXe7aN$eacgn8)+WG+wOO={ z2~)un2$=HNoE=D*ivuVW+TNxYYu?O%TFp<?lMzQfxn>^^gkb#{jQ40zyNv7)l?GL} z#@b7p^{w)_UnMl_5HRa(SuNdAeVimb(MO|_GV6kpm04G5zm#sTMq@O4Syl&~<w?2| z_8Ya4`7KA@H#_6J$RnYk9le+60BTOSqr?)F?j5xXC6z5>=&+SX_9rqYbWQI<omQ5f zT<sUrT2+_RA}L$D^~*xy(mMm5*&+1Pnpf7}bwSiFG9V$<Sz2ZbH~EKzZ=6A~=KD(d zntlVGWhj;uP7`Rh7=9*z6=L<7Kzk>`p-f=(CsuL>Q6^URoJT%Vwg}<oTUTA9h+nQ8 zs7s&n|8^4o(cIUs@}*Q6?h<FXWt^jsum$a9qBO~_C=MIhC4qS8=VAiZ+EA}xs7sd& zkug`WxcTb<k7C#gYHIczPS^6NM9-$1I43`o6A6|6z=)b|uT8&<93bmry2Bq0b)<5! z%;AK2J;SvKiB-liZZ<H3ZU{!LSXs?;l4-TVBg}N>pRv0#9m8U>p>LK4;#o&{3|&)( zvOB=9Y}wPg^}t4HjrnH>F?!F@{w;Htpe~eGYx`%4DHyPR{zt}*J_zQH(1|sBHc;N9 zq=zSX34Uy8nO@bQTYo$)NaO6>vrQQF{@e~t(b~?F1whKkRB)vP)9osiv=6~n>gdoL z+6gA!P?`G_DW!iNkVz#Lt2qE-HHRbH!W4_W0SZt!Vf5?|hioGG|7^l!>zOdeW-pth zBfw$+)y=(nO^05!S7yS|QLBdC9W>G(oo{GUA#8hP6^EO)n2?&jSLTAN50eSXq>$MV zfka0`f3U3)5gJn1&l}<)g)Lg<9+ul&icTJgpCWA>5~H4&@X8gQqvn0T<_XZ<nH@c~ zyebAJ(L7-r6MjCRFrU)Ob7%6je>`DIp#R(Sj@RMbkHDHNJ0o95e<Oymp420!gP0wx zD@T@|Yfmp^5}92n74I2(mp`>H-CcxTz<)-2y1i(vKflLb58vBipGCCQ&D~mCp3$P0 z7VNR-&DEuPr1gG5I;3IY=V1b{DP`KHX=?>4%JMt5!;!rl%e<;(gdZd;uv4xg)-;5H z9py|+wK%f$80L1Q)a=!l6-Vy9jwHw_#X>(4R`fKc|Mqy*cHP{kcO1V&uX$Imde;c; zT{SdeqPEye`^t61_NR<2MrgDr@lcnRJx%Z@eeisi?6?;1l3KKNlChCKcFC477psOF z+3|Evce|8B5m)I)4rJcMc%*Bw?Vk1{zE5VTBk7lllEd|X+Qz%ux-n!QNq5sArP)mP zPQ6buMVG%lW=)2_*pvK~VNHgdZP%+F8c=nR@*HhlvDDAbZ2ehsjc3NoD4LI*s;!e% zPKOmzTIXY<wDp=K$VP_cX7I#bcU})9Z|G}_wr(5`Xb<i0ZqJ=B??dM4ROt`ZzVvpx zE2ehk4teM&OF;M!{#-(V;6GU-F21kUX^CRFZ9Jf;^H+U?|JAGS#3AG#4C!a{30;O| zFKima@{lw%eN0<*HJO~Rt^Xx?GKa#jDY+lH`L{ufH*k~NrXap8)lydaXf=Kd9l50d zo$|8d)r)h1xDzpV1vhcCD>qdEJ1(NM3+eHW+}HZvbLQ8>?i4En1t%kNY(|8$4D^+g z0#JWTd4yQoM7x3nYi{ouA#<)c#$;OvV<R)(8d<@7D^u<w{qwDFK0L>(4$kiZ=Y_{J z_r~E<CuN7<3^g6X42WlCnrL_I)H1&(Iq#x6kt^>6_#$sQ6X5X2CV=4oSNibZ)6wzJ zLo566e;4@wLIM82B2Dw)e;fEOus)pmZ{t7YJ`O^~n6xoGKmO6Mrh(Q%NSS%(Fm_Xx zo#71QF&W0~@YH?wN>JfKZQVMlj6(L+|I&}>tG?Zj<e%2o|5_3Wk~b+Nx8)NDKYt=4 z-jC7V{QK}aMiVoi<=r%M<Kn({YU_f)`sRkS9^H45lm_<h#Ve*O_YwK4d8P3DOoiu< z@D8Fm^XWzPw3RpD<Hsw!d_*dgK2`-&t*$)C_*(!Vv0Z<0+2|JSNsnQ^AIE0Ka<`(Q zH?lQMW`eA&D+??3vl!GyEv4-<gwGyc5i=i&q+cybop*RbIaKB^BtJY}t`2e)*?e&X zn!Tll>$ny>)ZZTl>N3Mx6o@kQZ7h#s=`)|zt8zVI!SU>f(eQ<ON6#g?A9;1J2oW7Q zZn!$C7Z0xx4j@|+(#?mUN9pcMl0)$KNlmS3S0wZeN>ud3-=T-{+WJSh*Zo-cSHhu8 zwb!Zwj}FlxVKu>8#eAxD)|H5&!Ep>|n9@SWS3sOPSN%Y^jI8KU8TR~oDMvU3TFNBa zH8q>OXl(8*g&d&q@k>^JIUYK!Wku4Dhu+n)Uzc&NYEMWe2?gXLYNyxDV>WpmwK~d@ zpsf>SrH&qY-Pv5^Yu)iO%tV>)KPqjp$!NOwUA=SryOLUqZ_kye?7}`p?c-JNCd@+# z^c+}P!KJEw@Ck8x{>TA*yOgchxq(U^iff4{Y_@!R!t64HL6@a$d)#b~*L20J;ISkb z{K$5-W`0j0R&S}cZW)Dc5hui42AINA66T*}omcX>d5jTrMDlQC24p`nUA*>idbs(G zyJUo{sbMj0!C9Yz^BVe25yJ$6z&>$Y9E8Z0blfX`vH}d&w4=V((f2L)trTiCJ{UtB z?C2d8so51l34)+k>G%?%9IMtFE<0E0@H<|D3+WK6>n2!cQF(pAl|Qv@_3-$xWL%ud zMJ-evU$>5BufdKXGX}-1Qx-E1Y3ZQ6OA#=tDDE)@<3ZOJhcVZ->cwcnPmD5;*F08r zJj&>|9aGX-K8B#v*^WEpiLFxQniKg6HecPTn~zmJKF@3}nP-k4I?uc*Q1gTldR}Y$ zHjQOnXeh>+<qh*~$@OSWuIgws^p4i{T^^F7byYZXBH4xYzZ%IL&zg5=6L`>}ZJk^U zgP)v@jEy&euA5iZGm|Ky2#v(N)BJZ8CyQH$p$EZD!7^%jO<S+%T6Q}XmMOWbimL6- z3HCCMv9=SK3c>uyHvW7LIP8<EW|E}If7hl@4VRTftYHj|(s$#hkyUy)YkWX&*bAo@ zQ4Tz}N6cX=Bj$TEKboLM9p+C=oolc23kN7S^;|G*qgX~wStG^7j-)LY^SJ<HqGIP~ zkhxgS1?_38Xr+!^hvj;$eXYy&2K&06c30CUcE6ara(BCUYuhze&o{f2LE~yMXnf!r zG!7UI54#49`vsVgW<fcWRb!m8YQ)VE6;bG>t@J}NFfMKZ5gs}71UiC1>hzd-rSwrQ zPoXwfcJoe|1!k8=hSgE_mXW#4128YB-D(PXq><R>>Y<^O+-H_5>57Nio4=Y{LoPOd zqK6(|HB7I1T;F?Qo_{&{Tt;79#yIa=3HV)>m3e;bqP9EaQv8H;`llX*$H@e5ORKpy z`7(%sF%t(Uqjtq_$WY!q3KgE`*S#68x>pFx-sAK9O>TzEeuLgaspGV*sbcd8$Xj#V zo)DS0Q5~9(bsQg6^G?+}AaiPznm_viV{zBj9P&I)z7)6ShjaJJV~{kxm<#aHou+EO z%EaxTuer&R*4$NdBKLEy2Ff>)%MJ5*WCs3ak?Hs%Vgh`B+Wj_<_eNR%v<)ck5Uf7< zD*8F|1>Nx@L<)Xg$GQ@@uQ<Rk?dpf89%ofgUJwt#m8C9_mm`0a`5{@P9-y9E<Sw#y zsIY48=%Ud_KfxRM$7<U1FG~gc_z`7aG7qEa+AM_fBQyY=VW?$xqEO598@gdFDKi>o z1z4(SHaODrJq-BD&7nfebTD}#l|SHDr@Vmi?roVP{RN%UHm~HIs*h^-1k$e`53gN` zi0~3RyhF(g>H4sCPg(k9)Rhm-i=O&W>eKn4de4QQx;Lq@9EWzL@@8*(w|{MnRz8Sz zvS-=9ivp}na2(5ms86m8M6K(B_<G}-wvi6NwK%M`T}<T+D}^O~MC-P80mDa7(|SF7 z?v5Vrp~!h@6K@Z%(9)lm^c_cGFAwBLxO6(beWo6IT3hpxB)7(cvE%h5Zph=&bL~uZ z<4<g_KPWcalqj@S_ecFNX&Eu|Yuof9ZCi5@hUJDmq6A&5IBY=Tuv{+=%Quy96)rKb zUg8U7gnA7v(W_S-H$v~MZjM`!m+UyDk(lBr(a?q##X~Qy{A_}yGW3jg+t(R#eQa}B zTR)X6SKnZTYYX2v+kRukP<?Duc-5zMQ?J#{rZC7H?Bma5hU%;@w~mI!A}y=N-&!m; z=Kg#s_-a32Q-MZ=S&U9}Px7EXHWEy|$~YU4`{hORBB7(Jo{n4fweb+fhgA<v$&Qp2 z1QK~5UuyT4o%Pb+X!kT1%?lk_@fKW2GDm}hICmwxjj{E?)Pb0G&+MXkvCvDaA1960 zwni1&TuX1Qd>|frVdWMm2l}BgOZ8AwSi3DH&&?O|pG<_hwYG_Jm)=Da-e0;NMNcpu zdO7u)-Z>#?*JVm&zMIjnfX0bvqr3A38yIL4$n6vYXyO`YQif<-{{sSw5z;5KB`O}e zD2LZ5HLinqSdxaotKi651bJh!==kj`6a@tp<_Y3*v7>W*nOzC6Ps@Z#P_V+K3S-Qg z^T3@lq_By$KNm7XnYR9H(&*N&)uXXccP;&O1)-F9!}2m`++&#&BH`hg_kc`IsY4`t z1q!A&#U=(sT=Fbk<^=0tWM-VTFn?x0JwR805MtXYWvrvM#u=%D+P2fNQq>hjs=5*l z$hk^?WYlyS+=q6pdWc!S>cP0xz}O*H)lxDpfO-wW>47|-LqvVPsw1MA34OHc-&hvP zjnI?HFEVsWqy833@f8)!lcj<PtDmkqt~VUdKk2S3Z=<frCA9b<r)rr-kg*S6m816) zbeAwj$f;OPV=Un_%Q5)YLmwG@>8o2`W$2s{(aRaXZ4BK+=m1=MPD>wCBaMQV9&6S` z%|8N$($<62Gl=1Gp+k6XsQIw$fTzE#IXZev{Ho1vWq@?)hP52+7_?nfeBTk&A1l&8 zQ!t`^x19pCw(kSPHD0$at=2L!I}j_9A-Z{(woOi#7e!f48}RAzcnt&BWkT$=jTf=1 zy@`fBM(F6u65YDIjO>#0blf>wCzZq5gz4v<$?FdLkXXg10TpVcQ>Dxzb>E~001fJ; z)v=oP+)V&oJR&PuPk03WACIVYB_|SvGcGufI3=Y1EfRWeSESsx;#4T`suC_)(r&Ev zB{fdf;+)(W5fuuPv4in=RJ(N-qmj$7SZ;__J(Os8C>K&CgC_}dmtj7dOEDnYwiX%@ zM^=JEheg0l1#7yu=a+x79myiH>;kP-J}63?miZExpwtQ((RYb*Ldz(BG_M~@a@YXx zjpV6bCy!(?E+FE5Pl-%G1J+8Hzj|o(x1en1xC*s&C_}rl!fTtS!PiO^&8y1S)}Nsk zr+5QKnH7qI!qqMRMOU6e6H=syCfBaGM4111vi{R0&ueRbhLI62kpXFko>~Y7V`m2S z>?9ady*jzyb?;~H*1~$Px`)mWiV8OW0E7e8GK3?yUFAWow+V5vS2***+@pX8IG)I4 zpp|!Dfz8C96VZL38_Hv9vOuX+D;|`7?jxELDsy+i00>dmGEH3NYWQP>gA~b^3}JQ7 zJ%zuN%pb4+ir77n>w9J*Jt_ubc(R;+6MrACtx?en9NA!oRy`~PH-QyN)^Nv2k$F=| zYlfBGNQp*v`qP+uo8eC5eqC=E5371@AksO(rmqg&jb|%%Xl*?ZCh0ANBZt!7TR>@L z$c5ah4n$z>Rh@{FhHhe(zm|^&8o(>;NmH}uu1=V*E2ocL%oC_1it=sn#qVmjolhD) z{jEx0@)Q1c{myu(N4rgQnoJLE-Fs9blATPukTwO!wXNV!cAN=&eIri7yJt$jY1;x3 z^H2n@gofRQxm%>;cuhwfT}0^7Rj1b0pMhON2)tU3dsAJCahHiwDc)~up0%gQgOY?P zQt6o@t-$Ol@-OxkQ{*PD2Dobd?J1&ckZOv!a*ejR&cAm28TLFezp5jc*eHlR!tx25 zrUY)J027+ZTuC(W#f3{RnFmJbMeWw#fqMz_&yeUJ7}gY7Ve9bNq1n%B>Bn6%9scjo z=_jGn8`L`VCT7vNxj*+`;EP+HqR;r32z~w)aJ;_pAjb*v$La>k7}^W1?ohN^J~q_T ztI9Bl2`!Jc?Xk(WC2+|0SWL~3W<S4qERwyrbri8sMyo)Ookqupmq5o8HQkA-ZbKYa zKV&Rl=QA|8y;Tn3-jl?i!ArPzB)_Q$_cTSQA>3FZscUAsx^D`K6PqX&WHki;s8SL= zgd*0;#Rm^9W<sibTUhD{<E!k{&VUT(TanJ(M>4Vd==hG*`bg-YOUIx1+jRV4?N;$` z$%V+KZ#{-`u?$axi9xtCuPkRNuFs7knTzSU%NWFd;?vCCK;n}GGJslr9RO_F@LZRW zw|*6&`9Z%jQ8yn|dPJpBgvdZsk0i`T4e`l(Mz@9~tiZDAhWS{cDrZ!^6%W0cT#PS` zmKDxguj)~npZurj$2dkK^IO%BW&A1r1cPFI3wrzZs@LP8w^v*j_oJxjd)o3c^cx|h zQWSjEYRwQaD{MQ7G3{VLcFuJDsixu9TEZ6=V@}sY2T`3M)u9ux%W3J(Z?@M}!>UeL zpV6z{miYx)$6G^r2vqIs_v}#~J>n98LWr+^vg3+!y1Rb%HRen^zkxN@ZV}D3w29`d zdWD9qD5b^uKlP2@-&cPA2k!dj`MwBJk3TE@azz;75fWf)*UlByCkhO_@KCiG_}?Y` zFJ=zYIcWP7%Pe%U?OCC-q288Jc00hQN?9>ELpyBg+X!_odp+_%D`OZR%WBm!O>m$x zVLsE(pCzn|6V^N(ukdAG#QkY#+<Y&Rc`#X)pJ(Tbc8dGdOm`sO#wic$H@wEOol?=t zC?i^ddyLITs86d}&Jt2)^R?8cn)(DG#2`%PvbPHsGx^>$)ZJ2!-+z51^R%!;?e##K z-*VcOUCw(SHdjdkKGTylBk~LS#zVVjh7VYZrTRe<zR`l5v|nq>(Po&tW%Gr-E!WZ$ z)UfKf98E@Gq)OSAP4R49HSX`ypdMMnRjagH56YbVd>_8RPsFW+^HPeJV%0tWst7|* zZoEn*{R?^Q&)m-V&q{Lcxk1v>9f908RUPOUhD}TVMdrNlkE(yLnLGWHdyWS(u%EN# zK>2>w9#>fxlvc$V*D%HA&L*|WV|0D3);5bfBebhUK1yhlYC+ld8pTua^PEzROC>#f zXxSV2Gy2D0H@o!WiLho9nQNWW)h%!I4Y79X^U#*u2vt=(Kfzz6v2mQZmdkfNyw3Mf zJxx!^sv0pnwagH(lTQclqy~3kgAlotuL;`3<0T3XPDdYENfOxEBU}c#^1)gJh4241 zYpr~Fkl-vZ^AH{cO1py2+7Kr)1ZU``eAa{Wm|}dCtJs+B_ClS2#Yj&nVHpys<H>~i zRKk4T?GF~=^1Dh>Ayl-Gr5nJ_1EP0myGK6FvWzmm4AwJmu0^wHPAW_Cxzx%^7PW7m zN>wv&#<gf(7*agRmTgX$FDJ}=?hLBQI4YMz`D|+RVZ~asU4a8MT>-i;kD9$6(b>jp zs1tM$2V3%>{O`7lpmxXhQ@ez$i37^-=#n_@R`>S1w_y!9Chl$6(T)w(?!exAY&c(2 z(%n1g-?lyWIguUD$5G!FfyBsuyBys(&g<aLK4UccK>xe?Xm!_b8Yi1mR!<}m-tbLj z*dplC%f$lCRq;2WCYP4UYA)+|iC)!Q78cd>KL>oiR->HGdLnrm;#7&lH?-k7xL<XN zgMSQRwS0<#;Q)t`%L910z{rWPufx=#6#7r4`9Id8JNVuVn{hZ<gDwdb!K8X|GMRUC zpjE5`Xk#jqpK;QK!w$GZz^S)v;q#eg4@hD7nD*TK%!w23bp{?h4YdNVhEY4=%W4zm z@hB8*dc<0VtHTr;c{v=x((0c5FM#xQ3h4!VGcT&HoTw+PD`tbO<$|pz#Xk@Z<Wr)c zmi`JEfPTCXmKS7sVz8gjSE~A}9>L6J9+avsed)xB*2(myja=FqnRjArD32W8S(55e zm@1!aFQO_6CsSLMWdB9bTt57YTQdSNZSzjvxdstGK|^8;r!rgfb$`S)T~Du=DF`M4 z!u+_omscKE3i7om0i;Q@d&bgua^YU|<dO6%u)jwrHO@jlGd}ui^`0!gv(Y@q{RhMl znC_jWt$$tmHT%urwjiyIZ21!Z_npa~{Y_jin&c_ZV5{nt&j$Ts0TU&je>Y~~gzZ?I zsM(zmFJq4@ERhAo<g3N;<Pe)9cl!i@4HDxcp6BuvoqTmWqb!nsq$Ikwp}aLgH`)&A z|A!GkWZa^M>dLh2M!CaKpZixX`sicCQehrY?g#z+Rr+&Dkp}zpzre!&oOl&5xXg1! zT+U&1jO>*&jqEq(C$iUV$%$>qp4SXUw_=mOA|qwpM6dShqw6+Ft(DgU4c<+MP1V+) zu2S%*s#h-_Pb2EKq#q+P!@=;{miCrX!z!tu=37u*@C0{PE&UtTlEbk;N%C~m$4rR2 zEvrtEhq8`{oGj{JI4W&(OM5(f!(DuSU81#pgJp-eo1f1$@p{c+AyRAJvE`quXsb)6 znHqCMT)kjG`*mvu&P;F~)5>znz=&UH`uk+mCnwnR6~@CeU(<oGJzayz&$#`<d{tnX zuE7+1far>zS++G7C%3-wARdO+_DSiPY+C%;jnMXGXGRXQewHLp&6jOB94;?OovNpM zAi~?1zC*(>R=1R^UQy2@_VbRJ@z6WXJnv~4BYB)359OAA*$6$h6usJ|;C2`;h6Q7q zvK_LF(2cp340B(*>NXjpky+F2W!Ut)jbdCpB+b_ajj}MlX6K~r^iKvc=-3#Je@nLH zYtmQ#XAH);>T&T-X3UM6-ExluxI%!(d4gc0klNoR9m~fyWw~+S6ePUue#QXuy$Oth ze9xvQF#hI3qC>FiHnCbzBe<#Vc2%2)d5iT*YimTGz*l#KC?JoSqFmS<W11h-&F6C! z+{P7=SmY9k1Vlm+2Zu5UQAkuhEwlh<`JRgokXyQ!6^btb*Qc1-ku5=Lq~^A<_aii3 z3I9RYe@aa9w4~}-+`kVMI!^6Gl2I*J4StMS8aMaEYxeRzftW>^?gSmNXEby9sQ3Z( z_k>VJnal(;k@?I54TUt!=X);w6WDoxjxZY5v{IRb^^3KfTn0dBQZ-!iPTjg)!h^v6 z2}KJFZxU1w_3ZcMftJ3EUKKV(7jdW(HAVk?R|&UBzyw(%f{_P;6k(VzV6P*e`T<cC zBzS_m9>ldNJ=m`{Ov;XUjW;0o-6*?>hk!Tluaq}0Ujzv&^aCDBA(eZ3%pK_KCZ3Ug z#Xt6z4S@L$rFKVhB@Wb=sKWKp*oPn=%JSdo`sISs5|9Obmce&(hbI!hWRfVwV(PuI zD}CAzC7X+Q8!3}EoIDFWRUVWaR8IZvhkg*t=fj~|<^o|?Su@LN%X`UFMS(*4seKU? z!rHBmGZ$nDg(IUM9YT^j3l1o5>8z*UEQ^B<*0(m<cqMC!pn?cyRsF8uWkRnEe@EP$ zyhRXBR+>QW9l>}OmR0|RX9A9w;ywlqdO;B0%sK4ViJoy_s*wELHI!;p-Q5MQa@x;0 z=dR|9#)t|=woO)}TpjO5uF$i$ik=H@SGPkwAOtJN2U{(#z7LjRg~8!_uxQ0dkOjRR zl9vDkrRY&u32G_dCn|1$GYc`v?dTZshA|a<rVxl1quVsH|3^M8&3{s@`!L}Up7(A4 zNW;2FsZU<yRrjMzM)Eo3yop!46JI3Lp4#0Pt6<dw1aipk=8c5)qb^Rk4r=RuOp6lM zce}Z-IdLx|2ccKxVLKRc6JHBVj5oB)H_hn}V8ccKmi~b6pZ-kx^auW_*=TV<Yum_O zW>3PZT|UGh;KmS>AvvCI2OrwYLfcoqs`UM6M6+VsJG%O3VilCqGo#2)Z=f%vb*z}> ze75yIg27HS_vO@u^(kFa;U^LYi;Or&iFkM#eWqnTlp3t47|BAlM{?oqGFga6`t_S- z3}{#Gc14zLezL!QD?e60(bn2^)7FdMP3|gHb}L2r68`<FKl<PQc>BEX@1#t}cW99J z|9bgt^1g_2?s`J^l+dmc^wq!LSxr-O?|_aQm_0a$|Gq*XJ+ppK*D&KG@<DaarQFdq zWhl>uf@u>W8uD3riS=!9C?-M{e!8C6E2aVy!~rjHJ=<0!9?|v(q`Y5_-x}dMtm#ix z>n1A>Y!pINXkYUDu=c}FL54dzGS5lGr0A&~;o8TOpAk_($hh!b4~g5GyjEYHc`h}) zGps^n=cdp;UgcK0Sjz~@%Z*G0Vv@*w^2j|khjX%8N&7M<QbFoe;?(Jmr=<1$)ymCf z+@#Ks9MZ5rP;>0VZso1tKVrYoRIUsoUVHr@`Y-Hz{myhaIn75p)2)BmLQR?esJiYY z`W97qy|Zp67e3sXI@9wZB64h9!k_Y97e(!BJpz+2qyp4BYF#x`)Yh3N0a|ro<eF9` z-*n`L;jW|KcfIm=m^UwKeMj=skFX@e3|KwVWGMTt^dYW%(!o{uaq;!Tce(*+ZMO^5 zvYO;2Z$`Y^D_p<IXjfWA7_{BQUbi!m5F8}vdFKz1O6!LewW_VZs*rHMaqDLlx;p== zLbf-I6WC&=I{&d^HfM%Sx<;Jt?D>YAJUjQ5{&`f;#M~V92>&)|gqLJ#nU}x@gZ%I0 z$-MMd@q5M*`eC4Y_Ku2n?xf$9hVkZILeM(fR9dcRF;0zlRBYr@Jj?i`orgm0B$}RF z?{}`_=Fe0>0P1D7RS2Q&$?dS2+c}hEhqsE#cQLQ)3%bM?T}CLLO+JWGWZ|dup8S40 zwcxIuuBY;D;W0!QoKS{8A;Wn)OvWV6U2wI{pU!`yf4zhogN^N2dId@tY*SAp-y;4- z5Qz=$ln={}Yhv#g7l&m}Yulc|(Wl`U-#JF))2-}?%iyC#4i_7ZPp?6<dQ&+Pc6t7n zef@7_Q+$7NB*L=XvuP9S7s0h+d{?fu-NIzbjiUPn!TRJCTR(Hy{+{K2=_IgSR4ux- z<}SIDrAzTe+C6L50@&KHU~$Tv7#5F?D9_V7O01R-MG;d;XNj;NnXm-CrVJ&7^60q} zhFuve3~QYXE~}r+M>&s>#Bp;>g+4@BEs-<f;G%pU?BWx2a0E@4iLyc4yh+mQS;>Xd z<l*7A!}1P`Q5x#O{2xK4L3zr#LeA-zJ|e-G{O29HLJYRbgx&TN>Y#1@3R&Qfr&>I& zBCKsa>@*<xlx~fyaPZV^RJ&qp=B4jd*tzPr7$|<bn^JV^m-gCvSX*}sH4(Cc9`N37 zo?%&F?H>b4sS*5&+{YN$(jom<r)?WEH5z(hRlNu@rMwCWAHh;v%%#z=BPt}7ucoup zhv0L&e}hCYERyxM*IrLLS#J@I%0jzVz8VefO`gj4k}>m75kBveZ-lbf65Z;t)!!3B zK_zOV=00uhD>OE0cB%2p)}M%mx{1n#SE$|qp?OGsIc!b;bN~jOoQI(98McgQ09`5h z9zVi@84DeZnJ-7Rc$Wd8MIk5^w4y_JqZj<<jox9)hD1W|rf^1M<<_lDGX1p8C8c~t zJr1UJpL91Pi<`&}S-mUlG11LG?rfKo84;jW{TR~VX>sCpwf#E}SPXDD`hA5Y>Y4Lv zwK@c4^_$%@jXQ;8=$C`m2Km5>@OT)cvcn%FHMCQ>>)kSb2taza&A&;FIreb#pCz@H zxfuY<NJZZ=BgLq7&ny$v0+mEs8b>lUNbWkOAkMnYgX*DL+a0_~yGBUks{Of(n0rdi zBTIATTJdotAecK@AfhtkYT7-kpNsz=M*$m;`|-f$OT2iHdynGqE~SIzlk*@f#EPA> zbAF(4YfOc5mje;`#!%ZJ10c?BTHDoNCB8mxrQj=H5udr4j?Y{_JoRw64GB^{%87^O zR?LJ&<5ES)%x_|l|G^&Q%vnOY3+k{EQsDL-2u`O9eWxRba+7<AYdR<hrZNbb=UB&+ zDL&JDYPLNrMCnva$seC;C%Fj4=5kCMv*k6$2hL=dny(C0a#+n1_Ds5Cdsy3i7*FiB zOGrnMyISF9I^Kd!5jRR_d~;vmp_rUz=9C}<?=aha<l_<E9AQqxd)p#a?F;&*B1l{t zfW(Z{t?z8)k<#XfKAX?%B#6LA_sR<~RJ+hMgd8|D+x;055k?CVBv6u~u&6J`SE@)0 zB&?5`?H#>k>28gi`GkUz8AK?EprS;0;Inuz2!h&7v5`<a<*%!cjp4{7afw9{!(bGp zyH_*lY6?WGp|tS9a^+OCj_wzgQNsMWWa%tNTH9H`Wk!LWub+5AQs5bZGPgbX2_w4_ z1IV9GbV1$EiJC_ll##&7(=QQ1kvDL8xp|L2z|{ORE00TW2gE`E-*zrnJvac@!<63= z)UErsNL8{D7AU=|Ry9?0!L@w*haNb24oyW3+Zdz*zaWs2^oib??&c(i^h)k6MhT@_ zkdJX0=<=<rc@Q_7%D`X7GeA$?1w_We{_a(+XM75$3KK5vC3#GL208nrKGbb~fZk57 z!gB)eyk)i@6MBgk)!O5{Nsi-$x&)G^neF*6yL>#28HbCwTLQ`q8ZnOU{Gv4j#pB*( zpEbrJxU}qx`wz9&u1-CsZDt0nEz3XXtgjCSRI#b7$U4krnIO7V^0ca%RQMVu?gPS6 z+x2?OEs8Qq&2~HYA(7VMLt7Eynd~2ZHT7&wyTR-T_*Q>1zt|}UxlJmv@>-%@OfRW5 z_oiQ3oj$rc^;-JnR$`hGWuc@tzh8<6sqsRTD_yR@X*3;j1*Jz}ELYSJjjvo)%GG?i zs?OaF1ro{!y4(FtH`hu#9J5r6A><QL)n(S53KyJ&eAHuio0j=cGJ(@VWq*NS<s>{} z8BW+g>LjRXj{`T!^GW8$;Cx16a7wL3lCcYSGHg2xP0CFtSLTOdK1D_kmgimqsQS~I z$UDag5n3MEB3z63Ma3<A4DY7iw%<p)eT8)T7*|oVL&fNc9B!8&JzmcbKt&$!s0iQp zDfcKnyQ(^}McOO5YZ-Bwu(SSkU)DSRzO3UI@`x<NbgC2^CzET{8M`Kw`y!jpS0%L7 zfjzA2eJ)#(bWagakgtV{-(dR^0L0cnK%G%4weWq}RW-XNRFls=c0QL6nvd90AqH(y zyc6fAFF*PCdjLQB-;~E>%f7!UkM+t5!?CqGB{bl5-5e;73HNW+&6GJLQbmENGC+um zTK7wCe@hx;0d=IY+sF`UOg{P^kP*_@+7dUTU1_ydPoXr{N`jt-yJW8Xuwtfa>8~ng za~5e#HbabCzp9W;V?-KTuFij~XypteAsr+B=}Ha@sWEA#Dus>9U9TRUR1V8QK|d~s zJt=fG+b@SnG*|uqQ8{eRW?QmaKuH7SFx%&B147u-Vc57K2x7&0&vp2+$<Te3<c=Wr z<DdOiL2P(_4(reVck);DPrdTj?NFH9IVZ#S9?_{D(#`k8{{{~F4ZItatQEI@VJ}u6 zxl)%)yC8fQvhvAOIph;}hpN@I>()rtY(7sAb_Qd_&T>z@W9O@g??T?3%QN#buq#<C zU+DR_$M_KFZm)bO^YQ<O`n``)$*t6>QYn0ATcxD~{Rzw`>8<(VQV{I<0_rbC{YPq< z9COvRQz35b<W}4Xe#^vS$q{DThw0UPS7ff2nWEx9pm8?$i?ol^z;;yB%gcpJs2%7u zP|=wPy{@G@W!9M=!SOit67z}eCy=O&TZ>Sdy`@Ym?~!X9#WsEd7+}}Rvb7XH0mA%= zpTKp<9k}PmwdjM&7#DhD*=BP;mP2Gl^gNV6_s?XR5JwzcxRS7R0u~6lmNnl;kfK@Q ziUz|NuQ(Uc4;wP`ACv4NjKL3<q!z`kRCPiG^egBF`P}8RA}3Wd6E1;W#L{^QaAWKQ zt}c`-f`(GHZZ0tp1&q;C0+IBi2zbBSNO9Kv^2G%!>CB!>(VG~>6Uw4%7tvE>Wa|Uu zlajZ!TfYUSCveWg90SX%N8yalg|DB9K5&j0J3M|0VzCfE1soK5@l)WN^4{U1StJYu z114W|%h||I#ejN`?Wb^Sxe(UurRY-dG$3r3ZY==cXQBwGC#`6i+fod(8mxs};9{!k zr){n;CwgA$Y<$Ow(R(;a6i&W|qLJx`2wXM=yKv6GR{TXUNI)yZDd=I9ow!0XAPEAJ zeWqW3;tZR%Mgo8wj$unSdr}9z&&BfCxooHyB9p{J%(;BA#KC_=Tk|UYOi=lf<eMbZ zZatUUYxkV4ZL6J!<ur2vxA5O+Qe$QL@7TuJ@7aW}?JeG9;72l;Bbnv%Jsh>Cd}}rS zL*nwmu!#+ozy|mkauYY75or&esOMHFuQ-<k1n^AH+Gm|xSVZxFm_gG7Wsp>wt0UG; zct41>rasW~!UNE>6^t~j>AC*g2}oQ54+V%%E#D3`h)cl?wA1dc2E#F+jv%wh;adcY z{Pvy_sbX=w2|c8xC6t;opJHv#VGY-{wieRk0^srwc);m=ZCal{%kD>IBgR0CqD^bl zc%R-1BRN{lWyr5MdMKxle7Bg=J_pgW^$nQq{oEL#x3pVi=@+{dVK+0YD6Dlw#Vqh& z%4K@j>=CCL6)dA?!*(H>%t7Td0L`wqKNgF$PAM-*z`2UbxH@-~oRzahl@#IHSVwXL zXH5V_!l#;V=3a-wMXX!yq;$0yJADF`5(&ocncSbb?DG`*$sT*b3jkDNE)-j&@}obI zoRsfW?sGyn2b;BaZPncU?l!5~<@VeaTdEKQWmcw|Hs6b#esps{b$wLE-|2VPKJRY| z+V=U~?A4(9Jek-1PJc5Rve|?}z0}TJ8+f6x`!VSeLGu{Bi-gL=LnJE}7sMH5xlKG3 zgT+h{qr(0DUfuzgt)<m`$!j-xsHe$iWB7wcv;`#Z>^-6(G_tqOrT{{_<@VDd;@=`O zoTzrz-5YrxvF;Q66SB#e$qdMBr4MCT4ganL>QXfuBtTSI?rJeCW-o`*T#k9_-&F_K zSI4vS@fbLWW0MqMeq>aAU{ql<cr#x0Jf9cp9Vhtu`XjySBjl}9wDmWr*N|;+86&1D zW|(hEuv4yznM$I?Zz>aSsY&XalTxE<y=|CWFNVohUHMIEZC@l8@tw+z<iepNxFzeO z2@PHxQA8pqCB^Z}(zanq{bm^&xrQ#H%lYC}hvnLKz^9dQTABMAiCJoL*V9HjzuXT9 zMC;KH6Q^VVe_nWBxW7r^{d>?IXaAaHV>6vza6sSGp)+0s4;KKH`+xDEdj}lu9+Lxr zf90mIcK>(ZcU$QeA?*GC<Ou&yUj94Y-8aR4=?&*Rd#ZiE#yOu}Z{Js6W}k1H?%ZEt zpO0Q;pFeT6eXeoN|9Gu^fBJRy`Ea9s9zV}M7hi9m8=dogP4@jqt@gS47W@34;%de5 z7x}b+<JtB0`HT(rd6LN5|AXTPm)b86ciQ#tHTL}_bL{iWPQ6Dt^*-M@FLBPNFSOHL z|4sY6sl`4Ycg{nT_I)KHtQ?C)pT%*rX`dfmXP<xSv?uY;_WdKy*^)2eIF9^_eZD|+ zgB;g6=T))*{SS^WJLCRU=X{@YcJbmh=YBB!IL*P2!SLjquiKRy3{M8bk5dQ154Yb6 z@#638g0W8fe&C$DFSm0_J9z!xZ2Mkw@WCC=QO<ZSb<U?Pv(ts0vpdd1T5b5jo9*)z zZT9)4wf4Ew!RP(X`8nr&frAfIobxp2+~%BJ{BZHW&h3By|F;MJw+H^W2mbp#Al?9r z7d6irKQ$VuNzQRrv;Oy|>#-}R)?GSHLAZ`jt(#%r%v<n{8|Gd&-%h&xrsgG$Ee$8R zY5L~%-?*_qzmHw<rNxO)0M$72^PS=IP36~m7T%})T1WbPFY@!DDm!1)W#xX~i~QW9 z^*r9==R2Qt{0{Lu!OvIi^IgJET$O&zZzI1G{CqVe<yXybJ--e7e#~zpzis^5`Mu5W z5Wf@rWYf+Q{Cr>G%+EK5bP3Y&JHgM#x^V&?WcDxFhlii<S3ciwp7HrM@jJoKca-xn z_BuW8^Nr$H&2K6{-wDd$=fjG9LM+)&`hBzb`QGK8pX^xq;xFJ%|D(uv$vs8BFuze- zxJQjWN@5y0N076y6dU<TcA^ts&99Z;RFc*6`whQM{7&!_h4vDD;%0P$pAQE9gfQ`F zvd-t{`z-JCYvs3%Upv1O{CuC|%+EK9Ge2LDeE2o-`!T<b{2u35|9SeA-|Py~@tb`v z`SI)iNACHBe?fYF!T;c%pYH?qrRC>)igrKa=fXKA*42GASQ%}+Zo!<z!7=AueBK5B zIHt<JkQ5`FWd55j^ZA#T`Og}DN?-%8mjM@akz<K{@>Oz{p_k()@;9lpY)#RG((-h1 zQR|M<vdFH|z<9Y^Q>5N^SXkeuBrS*J*`%)e_W_ms+8mgK8S#xTEz1_^rRBF3Pbdwp zDT$R<riT=d@s|c8rR6*uUm8&Ph>=K+f3;5v_K0(Rs|VKYT+5Ki5#;w5x!^b~f0Ndf zq=#HuT76q_wy5X;xidB7Cw1Xa?TwU{rHdA;XP~W5Vp7VHkw5BmTT!&Md`)q*G?*?a zS~#q<ob=Rl;%QXbzC_3;sp#M25bcV*w_e)0PTEOq=+esDhD<1}UNdx3X>IzHXzA=? z!(Un(DXor_R*o+X(yvbI?Yu<&C&xnOy`2{+))kYIxYCjrZ>|{{k-R3AZY(PLk6|av zZ1QPgUM~@R=D0x4l(Mdfyt2iy(%@|+(bCE_L!zbC>7f%!!^NNX4^tJ2cq*iy7UwnH z$z!8*v}#*_eHcS;eWInC{KZ!kowPy|PLsU&-Rb1_uTGtuzM3fQ`&fQWMeQfeZPIBf zFHtSZaob<*_n6)9;o=Kv<ViX{dK%NvS1og$W2XEuxDNhPujQrX6PW`Jeu@{D98S@` zxm+)FV7K?RN%ax^{IM~cSQ;)ma?)x{KCO7#$tzeVeJ8m4lvB<Gu6<L$N+x8BQ?EnL zvn%Bphv0KbiMsUtr_}2P!DkS6jo>BteBX}J@(H^@=toKeae=HUzKwK38^$^BDUmjo zE{^k7QBk;Wo?PubKS%PNT9EIqljkcm<__n*YvjF2w++dbB-RzLFPdH&PM@-7XwjdC z$=u?R;9a|u_7*uSyqhfZpdU|See+;qX}7<4XfeH7_pw<Ok^I8^${a%R9j@)U5If0S zFc_X$AD;@*(^Q?NJ9%6!#H4>N7&6Y2WG?jADO%d<FV3HQE~q-mT=<!jpJ?<w`Kh_y zKNsq3{B4?XQnZnYRl)0roV@OoxiCrk^V-tc(#7kG))g0ho35R3nv_{Sls^txDhtaj zpfAzVra^F(7RVUQb@FN-HXyH);k}{_XA6Eqa|$S5-<bd2$xq?A>fgjb+Q+*N?VDJ7 zsHC`F#{A=yRQ0dmTgfT>aYzIWyH66*BhyO{l?vV!pGAEF&=P4&wUbt@@%>|avbMxa zyNimOPmXVf;M-h&txkS#$h=hfO&r*kembuDMkw$}+A{vMC~($~f<B8$IkN8dIORx~ z5jmvYA3CsC3fsNm6RO>3NV~!5prjA*$8m@JO%f^qF}SU$Xevo2Q%DeS+(}~&l1BQk z$w_mil>OKHZ(`|2fAJ|NA3G^hwX5C9&p~Sid&+@Hv*b|iKMCwZ2j-AOm99+IQw|q4 zg6j$g=H{mooY!*WqU4<GeCM?!o9**__o}&Z;hgi5jmwk1^XAS;&hedhT}zAayyhix zBgt#dtKn7>*)ZRE4NDd+YFteE#Y>Wn=S`e4;~!g+a~f`NQZ>$>HLrQjqDEEjU->Kc zIfLs-Bak8w+~wsy;lP`mv_EmqLf0jI(8<c>-GmPkc-Vov{S$NG^$uL|aKNr};2WJz zbNRHTZaz*1w{kDXT7Hs$mjidl^M?+++kq>d4cI0ZE;Nxt>L<qzev*$%$1@7*^X=#C z_YGD2ynrel_(9H+UhyqlE8dLrFxn&Vpfg7lp9NgP?Ff8B88;k?XOgo6@A{+y_vI)0 zd`aIV3p0n}XE@*Bz{`-$<WRf`=QanvQ3irT@fn=I=fFj-ki*4A5qTv4G6$}B3!Xph zz&DAE!J&8o&M&+91O@8zxqQG!4t#b{fo)!Z%OC}*{Li-GYOUvTtOIXy;A)KrezgPN z_(eOtTEn?)a^P;qtMwZA1_!?3Tsys5ce(tX1FuHbkwdMeoV(og7b>t%t%+Q|?ZCT3 zHe9W5Tn+(mr2egAZMa&`xcrg>4}Z;utF?*Cu@2m4*l?GZx(>MDPdojj4u^K!=%nu! z;>MxY5Y9h!;ZqgZmI=AM*UiVFDMDZ5c+7!!J8;Bdb%<An>i-$`y;>)@{J??xzHY-^ zx?akBkn~N?z$)5Kl8YSp>}%}wijH$R$$|T>wc)0H^38VO8yvWz*F0-+;D;LRgzh|* zyJ8W3PjVE~Z-s|Ae@TCag(u($tAC&G2M)Z|fs;rbzjEP1_&H=gyGL;!wRR!)x!A`` zCpn6J&fpb1EA}~^|1r2*nf?dc$l4(R{XniB9t8g4An@EE@FRo3KTQ{(tla8B;1>@9 zpEL;kszKmO27#vsfq!oh`0oaR?;ZsH{2=f*27#Xfs-3KV&KLxK_8{<o90Y#JAn+-J zz-JEvUor@M#USuB@Y7|!IP)RwVBPlyNiX|npR6Aq0RBmtRP*c%Ae-vg@4(9n;O{%| zpaX~OsN>VDi;_=u0sLYI9xlk|Qs7d5_t2e-c@BKGb02ihD;#*Mb02ojw>$9m0{Ac7 z{0sWWH)r0gmL<)}Sxrk?`mUEPn46rhZs(>JExK{m`~{1XEwdIZUXYX|Uf7(briC{O zaN(Tfg2hh4g$ownFsr5UdSTgAF5ZW3E)Czfp&;J{i{~zAD1cqR@W!V34s7m{#f?%_ zznj1;7c_59L*uOL7cRMO&cYUW!A6y?rJ;F2Q*u_r!Z|H1jjA5~Wx`N4rIL-au3MOD zoYgq@di(jpC3EIBHqVmNtm{=#%NMjbr7vz=rV<L+TPyffk{3efEL?E?;#u&rOBP>G z*Gm6M5~;wV#$@w?hL%|^4RaPY&YHVm(McZ&(C&}{=>=@}<^Zsp%}E}~8{Yc1%vsua z-h!6qIp<x_pPAboEy>13v()I@Nxssb#BPxcZR6a&j*#{Y_U?u9u3*lr#Y>tO%~?oq zG^)0Gv7zr}54LzasbPL&!wt0V`US}ryGpf^ZT~>dZA>;cBxlWQoRds7JEQ19#gjZ< zkZPi5aWZMLGptel;O!#2smmJY+~65HZ>{^V-dj~cY=uuPh%1X*l1<G^n$D|HJ*cWX zXYm3X-5Tc4X;#=UaJ1C>_RRBUpt|wnDSbAmadE?vxeFFw-*VoV3qu$6kCwvgzJfe6 z#>Q=#Rg&2Az&kHp+!~}xW85L|rW4peg!SfVQ;@!X^G@{wU~2J#<~fU<2`L>n0ARPe zA2ct?d|G5r`3ci!O_YYk?O7ZZase!nS~y|Ba=DTRb`rVsrmYh+o0hsx!CFrGwBDY? zl-AI6V_}NO+_?fu%wcLTpJgmw+Sr^Fz~$iPlIB^{X;I5OW`V$_rjpE}##s{^le6l^ zFHtq~*5$IsWpqzr33W@FZgi^P$wOsKpQwhq8TXgw^iFf*oP`UQG!zy-wRr&qn#r<c zv5%AuOPUu${2+Mq$WanU7c6ypjy~i@)k$g%0@KL3jdtCEMCLA?v$#RkVp`)unUIoZ z(VQlEWt#Jf+&VR~>qB3*G<ud4FTr-pnu3}@Wu^e0;hoaBOi=E6?*frp)a045AA96o zlDrSEr-F-9iv}!Nh0mRLXDyjG&#ALF1xsR+yNslgOXfid7A={Zg1)QOM=I)>YAub; zOBc{veKTf2!+{Fg7s71J9{`ml{-5B3<q$qaL^zxq)iG-j_>F_WMXr#eFrOm$NEbei z3pf7@9k_@aVzz8`_=<W@dT)LF4r?R%|C1-5-Gjhe;8*03^df?~<rX=jiNG)Mz;E!t z!yfn@9(cq9|IHxq&OzWMj_6ZZ|1UeDkHE)!^55uz*LmQ-^}wSZc#j9}?H`{b&lQ$? zfd?M*<nx)~+;9}8uNwru&;y^qdu~6k@W3Z};72`hZ-1UuDy7=xdfWA?2d?wn&Hqc9 zO0MeZh5y_G_x8gBgTQkhxZ%nFum|p~PrzaNrGLETj&$@=0-xl`XO*MiD}?Xzz$bgs zKkX<i3j6=vLEu9_!^<3!KF-hWpEDhOSYf%XXG-dikMBbsc!K9{KARl<Sz&!T2Z6sf z2>cXB-zNEZ^Z$|u?j5g}KP$ETcs-8~0>AomCr^Ki2QE4vw_PuJ;NEh32Z8^CqvtE^ zhY!BoU#@rDJI?KgPxX}htOs82fq(hD{`B7d>8kFBd+XUa=H&3<j^3`YpTBz1$<trz zfqTncfAPuF2Oa%iVgB7;?N9IR=h;HUIV8OoK2eAQM`3?%9R%)|$##<TmIv<5f3!?y z4tITNch;95IdCc0J1(0%@UQXA#gnLX3P)l31}V&ed(*!qnQ{m@mUV6Csd9%~jtn-3 z<Z~%MH~$R|+^wgppZwQB;D7Pt<E?){GUbr`z4e(rO@S3$bjxnJ?|b0hd_FO~KfM&? zroY|Mk4pYtI=|b2yY+Y1@s*eN=OabA`P}8eCA|!ZYe#tAlU}Oera$O`d;86I1&KJM zpPeeG`w9nMI9_oNT(WfY|Gon+tp7cp^xpot(lHoF{@(sfd*I&oKI4JQRB+3E%F!Pe z)-!*VYR1RL@jKV_!@d3RYY*I8pRZhd^7IK0+?)Q1#{Tr)dGzf;__0SEy|~n0y2@== znVpRq+ZyLuPL&?GQw0U7_Q2H?b@Ht(fOk9m<?;e}nKSrnJ@5;-4hv#%+-aXweN_HV z;TsF#pS1y-3gE82Y)b*$)z9ztz@^+)r`-J>xRmSK1-c91t{v)70X*y|0(%SKuDu|j z8e`8PRjwc~hwE1*kLB0x(4(Lyy<EC>tLg&yMj23!+5)(1$7w2nyZJ6JfQOy?Ru9}e zPuF_jbL=A3{{|0ywg>Loo8<8<4?O5xOSPR>6~tK{)jSe-lap??b9U3a^-mVS-TJ$D z<)*K93i)F}dbi)Y3gGTIzFGix@yZ=vH~(&D+*Nc(-syuo`0tL33wP<KJ1#EVwYUD! zsjmxn?X3X;c=C7ct+G9(7w+0ye^>x_?X42B(wpA3w~lezA&;dBE}maq0C(-JO$Bh* z-YVav$>HYX;_Y7w;J%<r<_kFe<ffnPz{3Ubva{{<vkTy^z4gulxNC3SSpatl+XxSx zl=iyz)|mxx*WP+p0er)Sc76U*0C(-JBRz7i<nP*B-S4>E_PX<QOF??q-Wu@8#gdO} zR~=Ibcj!i20o<jxZxp~?JE?2>bL->UNzV<~?Q`KSJ*+Q)yLQrK0o<i~I}6}09o}C6 zckM546u@2ki))H>>*LyAMmYSM3wP}=l?8Cu{$jW4@Ba_-s*Hm(TzwgZoh$b{H1|Q7 zd*Pf#+!B-wJNNEsOV+-sch;j%a4Y3F-J$##CB>H<xHFvuq>i?E?$yAvgZ_O$5oaXN zzxRFN5u{$ShItRSd}mqfdn9S)aL+O4TE@$JY;@{BbGR4k^92Xqs(w3J{{`-}6N+Dj z9MXR>Muq(+;(^qqnxFURZMN?mwxaKmTW|L)yr_HKmxzl`w|MXRuM5-Oz$1Ybw!hqY zzt+K9HwU-=?!9!=$=bjC`*w;}XTYWXf=cfD<@RH2jvpU;c~rl`PLQ%segB2^KUv)+ z@owk+YN!6Cz=VG;EMFcM;vOJhZ$|!ozCSv2%D($}UpKXgX`!+Cyd~!c<)|5RQT2rv zU2xHuTCS_Bt3Cf0jTsXRUhtKWoH%9=TOEr}DDwBW$dBaJf9IA+TO6KNAYla#^BKu- zVziEmTT=;n_(Ds{B%Ei-Qi*U##Oa6?ksu$lXUMJ}){^pR)~u3<87Vh9BSCpT^IWnz zW}P0fzFCs3J0bhG5<99V>fh&nt6gRdV;j<QiYJv2t8v9B!@M-eUVlqJVeTg`0fDX` z^qI3tuDa$uXOE+FJF%bJQ=Rz(1HQqwG`_|UW(aUA@ysR$k_(7g!Cru#UC)N^&VP|Y z+oV=}XwT+h%fo7S0YXJ`t=nO6b|=rz9PSJ&RS!GO)k@+dF&kwU0!jZ>i7e?!p4uxl zBksnn8%W8elYjQsy9(~Rz4vM(T=svFy?Tk)60j!Hd$R%(yer*9rK90u*-y?>-xezH zb`N<FiLFkdR;NOy&N_wmopp-b61$Mt7O$ipH>_)Tp>Mliqcf)7iF67T!d<;Hrd}gR zM!*h|p+0Kwi-9UJZVu@tLF`rsB@~Ye!9!(xBsP|w{T5yDR?o$9ZT*dksh#O1&?fr; z5O&9n0cYp$W(?v;VV$beq<&m>%b9~JR7+_R34@Yn%k?!}ch&{f<IXxY!3)Y!pXhsH zeq;z!aXd+!j7vJ#)H<`UbAsKEYc@Jlp>s`G2q#D98r_-AoonhHx}1{-PW=nN`L_p> zCNP$|wXCvltSs4D<86klQf1p$XGMg21g3h>9lpXLb_Q2fm`v=JsxcclUh(Widhi%? zv~25gG9|1UlZO~5_tP{xZrUFEijZuw8H@RjipVDWTNFfO1LTd!mj1IFknO&^$T)6J zD%U%25oDKx%RB8Wx!mYnZms2lQi<DU^_BmVzVd(bcb4Bxu9ULLDTT`|{g>_im%E+I zzG{%NtN-zS=Q3{IA}!J~7x&dM(O1W-{;oQ9-lB$-Tq*L9Qx4&$I&bN9Zn$&_FPE-p z%w-t`%0aEVImy(Il1=ueGj@$H_k}kvvt!ChXfJPUy7XI4Xu8on=*M?wzq_~W5Otb7 zbMm|Im*l=nwVYfpwsY-^E!!9Kt}owd@~#u}F74zeQA7Lkdr9Rdb?(n^3kg(tAJ0!V zI4;cZI|3U(&+XvL=6m{r=R}-V)5`xr)VhH^IBy`T(a%LFXUnuysfU6I9d1||kjP)@ z9d;;73E%=@56W&Ik@QD|eT|hTABm*jESj8+E`r9M>#QpcV|h&tp4zU3ZAYs1N{mWE zOY1f7=<KeY?r7Cz&kb`Llx#aWzTB>M9#IrGpL)Pkk$J>Km2jv8L4n4{%?GFHDlAu} z9=b=g21JU52{Oz-$c<rUrHK;A=<Obfxo?DiBypqJ=Rze?H-`D^YG6*_o40%ZM2{KS zj8HQD<`3>Qh8Ib^8n$pglXut<PGZ98RfO&ukv6Q%ObuX1H`}6bk7z&4EaWz3{d~5Z zh`*e9HPP^w)mr}Z^dI|{`6KB!{K*k2IOq%UsuOmnuu;eAmnGs6abO778Z&=BSH1qG zKBOE<Y24gd2I-Va5b=^!`j7y1lP+hUV*xaOLQZT;@==kYMLVqk(MSV?4qYk>bvAAk zvu$ljJUcfKkXSoL1M#bfz9v}3^>E$a!>wUXu!q%X_*x&t3IE!_HkWRqGW$Jq0$a39 z=o^3DE@O9vYBuUi{WwD0PwE0SOvqY7&7>#-0om1;?Zbws!FkZQ`9W!#MG(&U0olFt zUr3lfNTsJ=Mx|e-(ksf?qJp3^v_4?ZiwK(w$&MbfqR)0$bYYni*||dk`BR;GB%>A^ z){p+0tkmpX{jrTo2>W%(>L*pqPBT`?IS2w1bBacR*qkNGSUCZ=s^g)LQr{-zRJotH zP31(Ws*&X~y|Z#a2xT_3Rk(29<42~w^79|;4ASYv5{$9q=p_=!vEvv4cOKG1Pr7K5 zdx|(k61>V8P&z|~TZNQ0LJB9f%uLeczoUoN3my}hjN9DB{CQ&L2tUy+j0D4|_S8Hi zyW<L1QEO>1KLi=gF7SsQTsA@W;hi4-h@E<v>chKg+B?aV1vyeCCv&u64kwh~)iO>* zwU&5(1earPOxjx8&o4!@68o$UB#X28uX)7WzEuV|l76k1u~rLuluddhOEv)tfSJQ< z_7Fn%CsFf;lH79oZXi9PqUF{^dVMbg$`oL=g-82{y>i+KQzYS8Aqt&5f2`+pyW@#4 z=xKlC3U=U&TpqP*A~RxErR@B-^cxY=j)2X)iw1g=H)z|gB+mVpjqGybn#)!=RnJq} zIZ;cCh8|wAA`*Hwb$ae)syuH)Xw>S3_FjM#TMdGx-Xx5jIm%p8lB|mm8Xx)%l`5%e zr`%;f5f(3M*2K)p$Tg8`*?eBxcBZ!N8%28dMv6LQN5QIkKEJ``UuAma@9$qvBIXW> zCfgTtj1s42hhGJFYIej`22<DYvxoT0oQ`GM4eOJJdAea;7J!{+4}i<cID@Y2%5GlD zoV+Y3Y<|MJjE#dXtxVl5VQ71EW9c}z{LGsm#qu(CHO@-xX_}RjxTxH(`vT_;`8NlS zPvmlT^;V09`RKH$`LM*+t5z}UZU=qh+26<%j%WWvkhkW9%LOOQZnkQQI9ty2Tmez# zo+w-9TRhq(h}Sb7V8mKP0IftIW=XWv-I+JdgR9TWkCkz=bhhT3SrVywCl-2k<tb59 zFNv8Cn@z)`{ufL(3rx3HLo1T(|L(V{mvu?n{7dsTBnX7fK7LO`O?C}#UwwZ5YYyEo z--(XatF7fFY!9<aWfwIcCnNuH@^o`M-OlX^lI34f>ufYzah72|9C-lp?;|er>PXd9 z!y&#A_N>y{egu#ukNt@g*~!&<cHtrj*J~wl|MN;Dg3mCIbi6&ve|+z8|Gx2N^3>r@ z)%8#h0#)){LNv##o*i$k;K}i-eUZ>#RzK=LQ1zljkEVs=O&-{3Q&0I10A+>sC(Iow z&5gk4@H0{K>D)C8AS)xIAxlJVk?QsR`OX3J#aTOb^J&)3_qI043YLDOQfAsnHEpBd z%t#dk8&Z9(46<3N-IH#msYdp;igqA+_WrfpM%dNjE^f8W={9b)&0Xv<agL(kQ7Cw} zq+{L&ZQEy<NJZx9Ec5K?(vf=0NiBQ#Ktm|_{(pD!5@~^wZc(?aY@`$k-p=>@0r~dH zQzy+|-Xi}*_E#0MkVmb_D<ZOlXqzXWs%NJSXHzE#SY0KIfs3LeAgeq+jYq>sGEUwh z$xNP8EBfH=o_DZsK|Pxcnk~fMs#`8SAgjGqx58lK58*oGkZU2??zM0o?zM0ma>%Rm zc{Oe}s;KI+r1T4neeFX(AYwP$xFjoO=kdN3UH5m$dY+zL{y}HBl96XoYOj`HcyCDj z&5xvr>FKxpHSO{2^reJ7B)s5^nm2`%Ov_JVQpk{jpO5W58qMrVo{w<F4xGE9?AskV z+)<MHTqM1Rxss2XQ_7c~F7l6=hjtm}m}gbYJ_?J6x{~FYJ*oQ%09tf!nB1U@{;jQC z<o}B~0&$63v&vR2QB&l(c(&1B^QI%`u`L4O^{mN(<x$-_4Mj$D?CGmRdNxK2r}ZM) z<=s7I*{Wuro<7Kcg;~fuCEe*vZB}rQJ^le)X=&<NJKFdTR2Z+NekR?xqjO>j^?=<U zNY5l#=i9(pH*$Wq`4&}1<Z^J;jLhIaVsA+tnI8G0NE0)n=A%cRpT;KU+nstxtt$z> zKRz5eyrWFZtRp9F>!e^bM7E!YM1*o$+xKkX=OY3fF2F~%HtB8N2`8_Oq>mP{M6#<z zM2kHV(_&9YGtX*mzav5BMDmiFJ&NuSNB=SQ`A#(aL!#=LM5r@i9$PuwIC3Dt#(=kp zTqP9`J-&<$vL_K+l#)dHnzw-wAbQ{dHV*_NTpAIXCAySW5<tSVwj_@z>M3?s-!R1* zvyXC&2I2s+Dd5or>|VU;Xgt)ha=3ovS<c#RB5$$LnLo;wh(z~x3V0XtlK)XGb09fc z_F+$xDH;BE^4mQiKd1f~*|0dz&Tlu>!s=Y8s>nK^waM}%onqrFo3K3=v(8L3yvKII zE6QTUSC%9ii0HXrTX#FzI=uouIJJyZ%bdNRaVyV#k((bbV@Tp=Gy9V;ly15TN%shU zPCrRH5a?s+J`^78XMa1Luy?r?q>G!E)#m1LVXs3nQh(u@bXh&nnmsoBWaAyM$9u(D zPOF~ltL;+B{d2s&VX*d0mlRUj0{r*JSXTU^Qb0vfkwIcor>9q!5pn(;WjRWo1p}vB z9}Dp8$h!pGG+#z>^;I^vgTZ?e6%u<EzKjy7(uQ>8w}X%Hr?95PoK9~)#f>@5R$-@f z94tnDH$QN>#z?yTlt@QUaU|5$Oq^UcuoFJCT=>wS&_-vS%YK8kdwZPSC4>QGe=Oa6 z9NtsOZw}vSm?ag$cT%Z)I$kR_N9Q;7^IQG(@r1z699}+a?8WTh-BNAtH=n&vFoiI| z>6cE?@6?N9fhUgz*hk|eT`_M%G&>K01=5*aO*r1YQS;@VQw4Y1Q(aLgd;T{LKGn46 zw+Y>hT)`v}hQj8nlpq^1pPFH-D{B#h*8Y~#iJ_c4CDJ*RtYDH7?4K7yrqkLcGxOu- z_L}GNr`vdgE*GpA9(p+W>Cl%`??gk_m89~aXP2>nNGk|G8Y_urZ)8)v&X&b&_8c?W zx6$FSTg}R-IlCk(Yz15L65zb;_q?LS1or5K6Cc+VHxD2!?gG_lQb4Lz95Fv9GC@Ca zfwuV4$MVUA5fv&H{yH~~dNZ;WQiY{!(;Z4)VEfJ&W%H8s+=`LCY_h=RR*@K@Fu=q{ zMU$x*5QB{*%$SG{6~c=k6!3)7zYSz$#Eg~X#*lmZ%}+<}W?6eR*G1)w>`Empu%r{G zR&sjfU8%CYFO+1UwK;;Dx8gO=seSMU$P)wi5C>I1BQd{`uMhg+E46h$rN&0X_6JUI zMwJ{kI$kYKSl0$(*>9YPnYqc?lCuqj8ul$bo7uBGU{$Me4>k3g?--UZqD|0y(??HP zx<uPt*7ljyVzi6-vcC0L+g#puX6ozdoajOr+IBx_m*tS>M`)XUX8sFBPkvxNdt|S+ zxjoa7s*woNM!JXE9X*ly0eYL5c~D!wi2eaz`#1_EnMgTXHpGa1eA^MK9t-V_na`|z zgpDYoq25(H6AgPNXGa)`?C>XzhG%30Fe5wi$(VIU)cO?dPL7L(p44s;(j8$Yixeqa zcSo4Uk?bUN9Z#?=OTeG}q_$Z&SASrbs(<KE>Mcq@s&SR-wzRoDT6HY*#Hty3!*)0= zRP>X<ka1x>+k)WzqS5g>!ZTZOMv+P5<}rm9vZJE}>n)p-Eg4ImkxuGDZ92m$%NPQJ zVd?>jq8lRSP}LI+;70Bp{@nE=W<DM>_vU0`NoM6n_M4~}Ze$W5FAT3xs2EiUG@f|1 zgiEJXg@sXtL>bYtDf$o#ow0NzyJSVpXU%;su`r4wfhUif?;P11gj3(a?p05w_T^;T zA-DX<j4i?#My4C)hwSW$Ry%#XNUJ-93{1__z5Zo&dc$G!Y2AF-H3ns#U=xB<%2S`n zSIYXnqYM!s`B{UCA%nozSzi(E^rx!2$rlx)%g}qR4<7vPr+<*UK6<RIHcv*(zo?#O zSJVJu(h<5#DilCW9_k(*npNUcy7`it>1r#4w|j*9JQ>Bd>78LdQ}cvOs>dQTqS<pV zicC+KJB0zNX@}}<4bU4%BCJKPiyR_k-Iha8AC$?AM^gV}0V+dp%pR3e*jfS_cWkXD z8@26*Q)Nf_z}u<qk!-@>pL%Q1PHH#RtgEyON&P?<A=IiXgEj4}ll)MM^cjKVB`9M_ zm+WXx<_O!TB+t(#9ELnQX01(+t$;bq(o4)qB@*gA-9B8@`swX3=7&<RsL1%wkP!+d zGAXG5jpJrZtx(=}z+ix?gjlI4i`|Opa64b!DycxHSo0<nFKSiC*(Qixic)9g4f}c2 z?2hdHFq-L2eF-i-8hRh=VCL0S54)(Z^lfRCGJ!|_80Lyp$pb3PIG~=JULg{8=>1fe zo-VO>)d}dK5f!PdRaat-4n3F*QY4b^8MZvEc7KS-mVXgmjD+4uy&)Z__MWb3-;jT7 zAivE77nJJ~7GS@=pk2fwLA!2IQ}sv?a}-u9l)`E``vnJB3qc0Md>>(YD4M1}h(21k zzAK_t^2>r{n3{-&E_}gE(NE15ZQy*-oi>3b%UwQKZ@7f*01bAdVR5lFnW78{>J8s2 z;ep!IIa*;WJ?SXc9IdU1G9u{@iQc|h)v`|Z(5<Dz(B|&x+XMj=VLz<)<W)r3XI1$x z<T<Op#8TPDt=VOJPwYKbJhr&Z*!y9;csAk*x<lD7p-dE!>|s~+jKVw#_+1|NcZ))W znMPeisA2Q?DlVm}+}H77S|HN8txGDQWr(XsU#NYKket<X6y}q%Q9mpaTJzEJNVeau z+8wWgxkAz2sWgxhAsn51%|5j${ZYLJE&Ng0?pm9&T`!gbMOP=0^xsTg1BSzUO%7}c zQz$#~U4q6qJDw6m(|?qp@gl-<Rh+zle|k%_4R?iQzG|5^sUoe&#-&a#QI!teoGeIe z^Y7`&<$>IViXgU<y^qE{BIo3nxOz;k*gcZRlAH8C1K}IE_qo$El9BXIu1A>MK6#m3 z9+g~@`?z{suC&a4GI8@02rC-6ZDju-$^qi!XKlUxkL1?KeplS}WXTUi{arA{4Bfb7 zOT>CWq;<0+GCCWV*UY1lBhRw)E9+)Fv}eU-5$g{+aR2epA#L3RdLfd|Gn>g~ayEXI zqlCY@G>{*q=8@SkdeU%Smv{fcYDNtu@5!EwLM`H<1F7fxFb?dCSw9jBD(j76-bCR| z)r{;NLv+B&MU*bpv&IL^Bhjj^BQL_Zf^MPS6_;6)hF854VcE}iEBvNb=3cmzt0WVK zC!YO!SN?2we8_?Kd7D>1)Bozvr3=#sRmJ{Pv&Y5*!DGP#wh^$eFiXCmlq5v>R|r@a z$o+!hfnFQz*siS`D%n^Gm_5N!Hrhfljv0vk*`YqY=dAveo<4ehWXnZlr>*-WZyM%q z<L2IN>i!qJY+!OSK*Zepl%w<zUOYLwAFl)l{T&Je(;dNFO4TAN1KWv|3!Bc?2r}z} z{qwV@o+VUGM>RKfCTKAC`Mz={2XY70O)Isb6>1lQ$?QW(JL<}ETh%i)J*x%4j=2gw zPqW*v(wyjjpZ*xN>PBO4Z`{8<;><L$dx71#GgLBrzJNgEpz~!$Lq_aE=y$Z+ULi{z z-EZVxdW06qc4yD2V#2a5={Qs}pEMf&AnBo7;8j+nVDvdfC=1GRVq|0^m{qH#4Uig9 z!qKg9=`LtT_R^qk?$Spm1uRv1Mz4a39!1%2?=)~+uR4y@W#1fi2?<+z3K7d)O(!zE z>F!Gy(Nnc`adpo=D`Z8RSDzWrjvto02&n8aR|%1rTT$7blkEn;{EJ9)A^X*D&y4^8 z-iW-^?(Bf5d^&D^qgRk9+s5Y8(s(x0V1~}W_bj?1p1rN&Hm6H;sSdUbj5cZu#JKeZ zUE4OLsOE{SGbO3{x-3JrvPW+v89CfQ8+IP1QJcy}?eG&#E|jgYB#oZ^V})9dkcj5K zNPW2vt4h4kGhOc4B1>L(w?~rupnWgf0?Q*gR8e$&lr6NREgnG%{!SxetJ{v6Cusau zVQ;Cf{n{N)1KU*2nI{<hsFt}B4oqHTi`Yg6`G=~k%$_KXlU_1!V|P%YtoM=?X4rD1 zhIsa}qD1!GNshjWH_v3J2vfM$sCfWeRd)C{$sRp)cHG0dS-WaJoUU$Ss^MkS<dRs@ z@Z+(jwKZb_NFOZ1VPd9Y{oS33&7<+`@Mm250(#9<`{G@;2{d9S7Ib*kcj@MMmb$&E zm)K=kxTdm1=wRGLiT`X8i{ADkrP^khj$12Pa(B=cVJa#``g@HgfhSf=dBi*n)ec5* ztkCZ?gt&=W(9aC(HLNDYm0Eo?hJ(?y?1o|BQG#jC==gwzaW_J)UUNvVVVi3f&I56_ z07g$*6b~WpeTBjz=~q6aV~U{l(Y03v#VV7)Dq|S|W3*1jryHX`m`%nWmH-0U*M z>{qipLDp4WMokyy@NlAPx6$!hQ9?{Do2hgp{SujW6v4(t*G~RCyL$kP)jo_E4R-~f zKQlVk9zHF-SB+b-=u2blXEd6L6CW+}mW?-MLnF#7UeNwi>%9A73--uq{Na)!sIlzn zf^!Q^@I{o0ge6rl(w94+NM)Gy_k)tunF_byX);z_xe&$v^%Oh}rgs;?@a7spvJF$S zCE>`uC1gPl(?jjry0O3`>6eRQ$bq@@1QXG7hyWS6U(#X8Ez(0>+PbY2nSQA#n*I8T z+}&IYC!@<85)@@CYx7rXt7e_OwQGU&+|1TMY(6KLD_YC%bEf)=F&|LBYPFCR+cP4) zJW#Byxtz3dxMchstg8Y>=mo8<PJyQBiP4wq7%;<$(G$XPb6@<_T}gK5V!uxCN%m)9 zL3j_7SN>F+ua2AfxHUS#E>msd<rlXa$e~f!tsDL?^4<kJs_NVupGg7^5ZSS!MoV?n z)Fxsvv1l{J))_J(d&3Mw0ioWA24bjOBFqR?Ai+t1?Ph@1dg<5tm7dd{a*jQf9$TgL zLc%2pR55@eYORr@IOB-KTN0^~|L?c<T9aXu^tAr_eBbkb{`<*ful??IU+;R?yVia$ zeq+o6<j|=POGIAbLXVWdU*N5BOC8y6;J||u9c(MU$bC*G7_mU`$n(x(KhcLbodH^t zb;JB~x!IFCTkr?0B3^)swE)ib5)BcXF1|5*uLrf@aR@-@MY|ZyFk6kHy<}{My&w6L z?e`L-4~2bzDyiZ94^h3h;Z7Bwh0*&#G(2GLE!nQEeGx;&4aEhlFKdS?&H=lO8qZ43 z6ocA;!K9<%Vs{YCcQLV3P?dX^iNS<hFs>z)X{v|<z@~$Tv+A$~YQbu<-J5vt1MaF> z2)=)iR%=a<z#$CT`TpcK&##gP(6>4=AX%wQJetlxYpSNZ91v@wi@>IkwP_>6)qfOB zoYlZDFKkE^mo$`GDY`<B&qB-K2JOF_b(|bGJqFU%8Z21E4>7guJUtZuMZreYuC=k? z&&be?`|G?jFKpDaV!dwd!N!8W00yyu+8lTg<2?%=#fEh-1lAAOy|%G{GGRd5T6UiH zKw|-!Fn!f_@|tjINT!YpcpVweWhl8;O^C$32g!~6RP-^<3`5pBF?GTAX^lTaW;T8X ztnY#Vx$${u1y~!bAJ#Qs-L%FU=5JN{b>B>X1YWW#JUBL_|7^>T`OqAh3ZG;^ut|up zH}bCTo9bUNN{77YIXcLsxjprwJU;|%#e1Nyu}Py5{W@$7J0gG1c!(ZJJumk8IIV&g z@Vs(<d!WNd%bwS$c>vDE?tPb>ZS{Qa)P7-)S3GzWRN|*Qxq@0CZA&Q9aSgV>K_G4| zjy(JzYj1<leqz&;b%IV{b_F4hXC9%TN8*128N$Bzqi?EQW!IOLZu6pxf)@Ou*Lu$F z*5~bdm_yZ?#T5b$Cv%7<fv3+$B!LmJ-t&Xnl+Hk`&#kR)_Au#>M0q^&YouX-a^DOb zN9_;8=RJ<_X25sbu`JGx;>q#c`XJ}DZoVFlFMl4#eL+Tt!z&Zw9usfL3&2Nu(TiBV zRvIP_D~@65{2_jeb(BHcjMd>oILN{w>{W@}w}{fwJZlAxq~0Vq>ZO}1%*J;U{<nz{ zcD>O2d=p=TPDCHj%@ikOA@{|_AO;w}H|VvKS#!84x@#5lWXqHIPj2>snE)<<tWhVn zt)dKM5AW}Zzo2wEaA_{0FXD?=@Z%zu{80@!mcR_ph0www(M~<Ktke}5X;qHy-kuj7 z8rzd+R^qD)9bdLb4~yZ@8mTBkW{C5&sV^9xiuwL;909E{g#SUv$z)_7ijUiox=7(4 z8(@}I#`bv4X~=j7JYjvLHJ&cohNc2%-nFKUhG=E<MTlJTJ0{Lu=;+FvT$$R9`2hEU z0)OGxO5pEH(T`$qzLgva1{3q8IuFNPe(cJ1e3DuJH0NV=CB9q24YTiMZQb%A7@zD~ zu=6h~IX1(+3nhlkJ1Ubk{fLfJQ5>=#*J5Xb6NkrpyR$}Bl0J!%h>wDh!i3QfAoWLp z1s(SM)h+P!+aoQQjyk5J&gqzv^OP?(>*IADzWjV2XzRZRG}L{%zViM+LwiHeoG?0N z;#4=;hVLz^dnKlGK9FU#7aKg-$j~@ckVg<gFRGQtPLyLBj*r_J_I<3yo)@V))pscj zZ0v9z_`TRG!~wYUYh9Y+mk90%W1r&C{ilLZYHRkhr_3Wbq~d(-o;W%$Qicx>K$so6 zZ^sf~W@WE#O##7~<cBM0uWCP_fULwYAY_8QOrYm?EQXWO;sAu^;7u5Xb}#)+fLMqL z2bTR4!~6@{0LN&T?MPipAJPThhT}PrF9p6ez2HLlE<;r${ur^Hz?iqS)h}YImt#6% z09x{*i2x>5{^qRc_HurSqefKNI@<u{@f+js_G{}#U_CVA6Fnu}sdEJVvB;OAX5aT~ z8;*dung`?8<DBhy^zE>9GZN=?hplN?n2&4gegh;z_QmksxG`SYXYRvU?Ou^`ok-b% zL&<mG726s&)POfTL9geaJl(n;5688};Vj&m1>Cu-lKaS_HoeFe+0)%SL?aBaE0xLn zxVnvx*q_QuBM<}>>vp#wY5f>+^kEJ(2#38Hp~v%haI6Q5rM=KL5Ge$v1c51B)45d6 z0>L6()8Wh$p!9r1avT!q7PbqD99)JGPHC|VM9M?lwR9_fzuQ0B8ySv+&yW_xCqN7* zNyDzC?*OI3=EvIV$3@;Qa3WzyAV7prYvc)O00`ubCc|bg-eCTQt$I(Oy8@YgVpz3) z!>T}6?b0?(NAj>$TWP>gqYhcBqEx6TslzEFIbEuHth|JKRSN9GU3$or$HO5jM|?~G zZ9%*+wg(}1l2M9N1vXv7T3o0X+1|T(L{<zb$4WR}L=}7J?RzC?#xX%N#HPyk*Oku+ zCQ$T!$eqZD9^FURpiQGeEV$<_&5O-1(7~N=0pAqFvM%N!=3_DYPp%0NvEs+05d3j! zjXcpRX(pkrO^s80>8NjZPrw|*LiDNo-0s+s&RDBI;28%r-98J{bi6&kwHVnLNEunz zp?@HDdjtnZyCcnDb-(FJJ+o1;imJ}Zd{oiSKWr^RpXx}H(u+XtccEJ|zk6$qUq@}p zwiWUe79_S2<p6Dce~Fw)imIq3x`OnZlw0?`zVwacr)V|&UM>RX$1KnxwG^!c@6>pI z7rxf?fSUF5_n?bX=(L~ec72MDBpaj)!iN(8F}~YvwD-X$BF=b@ti+e2PW_J~UjEm* zZx4U@UxmPN54iJAp8dA;LW;LF<OY>Fu4BdH%EWI8yAwY-(AP&^(49Q?30PIgK+&6~ zO&P}A4aB<v(-KUCC``;n%t<jFalqm&2MUc&uEElR53X9{FUa*kJ~)|&Ji=BDx)gXr z)Dp>!qMe*}ILB7qn0#9B()I?vq%ZjtJS6JY#7YBbTA6x;tC=Xi3YAs$Mx~GJN5^qb z#dRw=4gI4vjYCq!EhOLW;kGPDvf{ThOHw>n|05`k%g=FZf`l$G4IFi>^K*Vgf?s;U zUX!H6?Q<3O(0=j7MpU1<+s7?C1e<gM<tCfZc9PUP@L;d>!Gb!X$TEJ|YunL*VozD{ zNA1v_sPJBWA~NdgtO(@3DlSCWb2X%G0~i=gdz>s&=p|qk!y&8Ri2FSha=MQdudW<r zn9mtSFGBdB+}c!}i;*;s1bY4wuI>)`K3rZ4At*f_xeG_IM<6A<yx5Z(oq=D~l@Mdy zs}~&%`LG53aJdh(APBsu?j}2YQJ`V#IOOPx<{H&oE<;H79bBG^waOctI=WalX9BY+ z3Dq0@eZbnnlW?;ueMH;T4foDNJdt`?FK`yvzq4)-2A0*UM)ktx8{h|_`E?}6DC#lX zZK+XeJ~0U*vmvNiZm>w!Z25pSgFLrYS=e8*gs9n5kif$t__EgYpunz1f$kvx+#MxX zViFnFjg_IImy;KPcfmTCJe?<uzP;M|OMo|IIkfm_gaWJDK~cf4O&Fcb6&U5JiLK0X zMTXYIzT=8QpkqgJ@_U%R{rzjp>r*UOU-cfD5c(gzx&Ul=uD1TC=vdu+9^ZVxHQ00q z-(T_q&+y2rT$}P<S^TE2gCBbhvwbB#e|6VvoRYo#6RcHIcpe`mCz-*IDShq+<%zzT z_K}U5vNInaM0Vz3dxcP}8HW&umM3%&{vd{!d)-l(h`IPu!SBrPf@maWABGH5(R*0< zv<*u*Jyz{xl`{_LHj0l~_7^K0A%Pt^#2MV#|1}FAF>8ZZtiV@9&&9Xht;hg$@^Y=L zi^4TqhDI(EVl_8m6~?UabMEV$AJ{8LND7u?vl`o3tMpWWhvrK-=mH-lR0Dxrr{#0i z@<41$$9b4d^&sw!GXOh`vw&(4mJgv6*a$)N<2WKZfg^Xw-}WVzzs~)))<j9{fH-H` zg%#wp?C9@!8te&@HgPvmfEsy$<=8+Ja>zgrw8nSPl)$zI{5O*jhk$%c&^%FYetO^p z_A2HvJVUCj-25nT;8O^ZT$dd*KLD(yFFVk39KXM22M*v9SYNn$KV-JBi|9y=3;GV< zH4>|wr$T!oC$GGzJ$hx(_u*Y5fybT++7qMB3pO2(UWDPx$A&^wBQnRz^SyglD-+@C zW=?6KsVlM-8yFtww<W&(XS;z92~@}Fuh`lgNn}fS{YmidMCvsWzwvv3CvU?)#g{I} zCMgc0$PWdvHgDpGpj_;^?}!Z0A1MobNn3>n-GLhyaoi{jk6WRA6CV%TDs=ma=gxRn z%bWU6*`FRu#TQ6Vd^|)v>@@#GOiU0Hy8`A*{IuE|GWP%<OAWI-$ny_46n`#ppJ+$q z5*|wB5e4&!f?lE^mU1|i2KJSrdiHuQ<$@kT<<J{cAD~>&W!T<C(LF12aOP#cnmGGa z_D%HHm`C`sANWH9qC+wSgKysKGTaA&5cHEh!xIpnq9ZYMvYo&7#J9k|UllZ4diGuT z0=~=)YY8^()yh8&?EBQe_FK{6oZ5DVfqlJEAyr~$g3oKwmgH5yWBYu-761Z^cO>!7 zURH-~^S}u>Vu;1g=Ihe^C1eg%hl$>z`~eP1(2y@dZ!&1zj(PdbKs@I%Uu)!Rx|Jyi z$KFD}fe%1$K{hS@{n3EvM!Y^>tdwE%15Ud4h5S1<sv|J*Q%_3#g0vhWAquAs*pl}X zB|t2c{c7q*8T7M%eE(K`xdK{?ur#7h-;6Im-Q_zT`Rd=SvFd+4eh&`LfiR!2wy4LE z#J_|1qqaj>+o$keFWHZG<z|A7Ig+?fypFz^`kCl=^d}fR;GC>qFM1Ig9X!kdADG!^ z=&Af2Rz;!t2_y{h8pt=b*j_6kDlW7=?kQyn%WQ0FvC3xI(WX_YXxmL}#pCzXBHF2$ zC$B+5V4l+FMlgMmj-Pxf0O#F5;rfC;;7BNhPBiZKvl_S2-xYk8!Qb2U(%&1r)ujEs z2~vV+D;O6SSIV12s9!Ihu(|<Y_KfR~NBcMr%Xp$}_=<^V!57oIY&aiVO}}I@`X$R+ zKC%#iv~xJtw?n2AYVGh#Rfz;yS!Kd66=`6Xe19wN(mz(#bt8r8#9Z0+*U2~qxN~dD zOPDMWKEL4aEk++xS#yMkH#q%byL1_EyBs$5$4wIUEHe;ofX^@42KefU4GE7dzH#`; zZ3vFYsy`Wmypepf%xef(qYU3U4nI&q`hlu||F|V|D>aa-D=(6NEc5y=gyGL;$m*PH zNBV^iyvf4Z(I|lPWji<)E_k<FgdPkcSS;b!F%RLx2jjAy{^CyY&6c&m_L7A<0&fr( ze({9grK^#2napRW%x68vH%=dR>vGUHtB0WSv7y;<xFO;gqvPxh=m?6dm-6ND3z_~D z{0NP#%x-c!yV7+T(ta$<CJ*mgN#A6Z^m&Fch0n82_$GrhL*erbuczZzz&^+I0n@?n z;f5@DJCnZqLiFiXL7!6-+4ot0*a1IGt#I4-94h@hYP}a(y)e>a@a^iM^esjIN-i(5 zS}yZlh;W8qC3q2pBQAi5&zoeN)r@mJ`Xq-w*p?tl#RxAz&GP+nz8AikCet_5GDHwQ z;i>?BOU8LX_SFX4_hA2+37=WYhgjC51A3VPVh;QwAbf`DIjjJD*07HRUJUBr4*m_Z zo*l3ZU<dI{`GC8V86vNE7AVa+`dC~|+_2~Vtdob9ef6BI!+fTbeyWP$r)mapmviVn z`ChmN6?GK;wnRS&AB>YYjygwb(#WbC2CO1nVhLYrr8vst^=+J~x#q)@TjuCy!6BDN z7yVKt<2`aF;)ycFd=c}u-<O)4w_9?uo*S^#vJs>)zm|EOg)lF+sae8aAfUhB9r+7i zkQF04va%i@$b%S?7T}l5w%|Hl;Cbw{4OusitW!8E+EgLxF;2$w+0g~9r??L<1!I0U zN!S?T-K5yi)k8w-a^l%jNBY-iEk+N~5gOw)%6Pv-*p3H8XUz3kQA88|z8LS<GTu*5 zjki>0C-Qqy#^Z-;g$I}u-$k6jh%CrD5&r*CA6{ZTMD@?XkG_63;m%8~yI)6`aJ6oU zwgN_6A)IG<ycGNvgbDXM;1LP0lyFt<8VT=`aIww;_G1-a($-t?%xg1#%)eQ})!O>B zgnK1z66-5qT)!D#(LJ@Ez9HdtBN4zQ=sxbp@MC=Cn@_BdfDJ+YM7a_n6<(gH;8!CO zE`cMsUnJpm=LxV&&=3UKU(9FAH*L6>8whgkAiQpr4Hq;VL9UC0yS`<^Rk>9X-booU zTw=cBzDUBovOWU00k4<vy77$da*4TtJGEOyxe~_(ZvptD67H8awZz&EICWY@eYl|D zB7NocvWhR^Vm$|(yaD5H!jTd$u|DHYn|y?ONr-TXwG;QROL*NG0&K652+ox7PT4=J z?boh_D!wFQ%OxDAH6s5m2^VV>-aRPc8;S6^#QK8!Z&dtq1=uCl3Iumbc&8jkLF)nU zRPfPud_lJnRKCN!7u#?_rx6?qykvX*avTK>v!l5F5nopqA|Lv?s+4KTgR1NQhVLrc zK9obKsv+)v!0FScS>mT!W2O!g|GR_0YX^Zx2Z65`1a1xj|H&Zm-wpzQY7qD?zz6b4 z#7&y**#(Xr;p1TOT=<TdBcQfZg!y!|QD-~MP#e10^s<n4(Gy)*y(GQY6R#pAvug%` zUXg~*UU2J@J7(J@3co*fOX&7y?!qN-U}1X#0;E=015=N+=@RG6r8A!IJFBiTlF8=L z#SvSlDhjVZCq2XWgYCG-h59nllG%&u<}O4W`BXiB(UQ6SFNM#W^vg&IpTE%`J5mCl zHE@9uxgs;O^b=#Vo8-&L73_k{=jugK8b1T5zsj~>A?d;iX*0UbcDn&sf4_<HMI4a{ z{l>sG5n6dS+@~y=U2OZvxoV)70>(a&gK}$iWZqryMIv&OzIBS7k!t2GoO7~Yq_h_v zRacBCT=_^aOSYT9O5G-gC!_ke&Y3gY?$vZW8$%Y%U3~l8*=R7~_CT>W$JX7tI5M{6 zo6c%+;O!ExxT61^a0Jw!f$&sg=WxZ91ow9%D<?V{HOxS4fsAxcr5v9K-&E-u*{*LU zrhU{n{Ixipr7T!<mvFIi9Y%c)J+mN!!)r@FWKo897nE>{FPHSZJjqdspmY4P%nQqb zu#1TAU*gKNMO%z_3Qpx|Ue5TWqXWTb4g$Yp5csGZJ0C8?teWC)E^xpVe{-n=-Yo04 z(FvD~$4{Ja$!GkV1Fra<-#Xxm@7d*mE54^A172b`Mg0G|+?S|!DSk-pn-siR)~DPN zU-3zm4!Giz=&O*I%17}@H5u^C`Y6BA?5->DQ{(%N<fEMM&meih%L!j58D}Tl8U+5x zAn+}Nz?VSeZ=iBtmV6z{{RV!j{_7<_OgMQv1)nMxaA$l?@=;FsC6bRK{K|}cHcCE< zaIyv}|DO*6Kb!LIxSaV<9|V5SAn@D2(w|S}cr^?H|6~xjd2xR}nf-Ps1D-kGKOO`= zreNTF)?CsL=N3Wr&%v+t!+Bn%;5CH<!|yEWhiA4oHl`oWDXsE(j2k^%?B~q*W7rs6 zgp+ku@vqN-XSR2VoFt5&ng7o-;F<aF9|XRdk#ITd^ZFq0uW~SC{LFfW2Z8@F1D;u* zPX~c-l^Y$_hf!2N_~bs0@JxIz;~?R3!lw=bSNlxH&+N}Uk&8{s<xmTV3X{fjs4HbW zrsYLAe`?<=i%r8TSr9IjPQ~{!fNPe0OUGCH{3-|BFXMY9oY_i{fP@_IP4c<Q0axWl z9B@_cS_fQ}`%?$JQWpNA1KuU!A3NZxAM)gTRsUw$KLrlBSFXF1=j5g0tA4I>!0Y6C z@M{NLt-rkvxY}=zmgTGbm2azY4!EBS7Ov$ExY}<&?SLzOpw|Ic`*4a%@ZxJ$P3^-Q zobXYMg>w@JT<y<yI^cD3{YW_AYJVP*>%J;i?a!UI>AU2*qWA<AU-27Vj(pU<{c5?6 ztN5LA-#*6ySNrxY4!GLK?sUKvUqSO=yj1>*&nb1ln@JRLg&c6j&r~_!eiAcWYaMXK zpKNi!6+c5Cyu4I>6klXRzxaPIk`gau_UVlLGIZ^?(;yL0^h-gxJadTr3Lx+KQ|*9i z|LJ&SIUe<1-Y=1GiAEBNGk!<8>V-rH^(emAFwZZVp34>MC6}RezN&o5Zl&Rj%S+wM zWtiiVd2N#QugwG^>~%c*@jOufEt_FS+$`g>|2Rg@{tE-fx~O#mL2-G$W8Wp)Bcc8E zR`tIgZ&WxP34yQ5^qDY*opJAwFlYM<W%^zRVyXJ8d}|OGsQq464A*8kuxvkBT$Mhb zFL9lLpL6U9_i|uxMeSSqzq9^)cGjJdAC~DiN%}xGntkjnpZGCQ`K6Qb0@rJfm(KDR z--@ky+JgK4Y{R|es&9PbDlf0U--i3f@pfJK-!FoG^xH_6Zq0<86f`5vnSR|3h5FN= z%c!>`uhHFmpueT>J1!o~nZ>%hor=lSqJ$8t3H9f95vc<i6xwj+1L>}ry2z&j;>iPM zRGQ8x|KyBB=8#9>m6l0?X*XNe0+!q%;;3iCqRmu@RD|3Rj0_His?ySYecz|70VT9e zNK&K9=1fRhOwVEz#IvTB5-9Tb0|dB<Rx`JmsO8jJ`&BXOUnp|v&t2rD3h2+#oH{F= zBh&!x9A!7a;Alqutu<TG+j@0J&!HM~4LK5R+t8jvP*T?(+pbeOZ4Kws%JZxZTM!ZY zsZgxPyFKhB`&~`jnlA~IL4X48Gz^#SA7LhSkEKB!kaD2a%{_-g)$O68R!DE=^@XY{ zMujeH*AHOawugMJD~CZdHFV(~{lIaQt*zaG%!1mJ6_o+)$u6O7{aZkwc-_=IP1lTe z9ip4V@vegg3}OGl+#7g`QYsLR3c!}nzOD841BCRlp&xXh7iy%ivD9V4mZ+#S?A7!f z@U^Zut;T$kjR2TU2>4o7dTN5^LwpFDyTw>M#EuBU=0f(&SxviFUK#Y92l4R8`SCkX zP%bsZVe5c2og310t**Z4#~9)(+@2fUH^T6`k_if2_!`pPn1bF{1L_7{sF|>B1v|5_ zTSZYH$e7Kc*$&v5HL70?^t_7EJ5xyYU3egLVF!${)kmyzfVt?hrsic~?MX<<`Z`tw ziSd{ZXdfD1GyWmA#yrS|iD1q6C)t*jY$yYIwrI|?tOOf$;Dq0E1;y4nDcY5w*jg6_ zv3jMfWXSzmz^a9y;Ew1k0rR~;?5)#i&I2}y*6&6Z2<JpD#{VJFKZbpJsn)m?(6BFn zP||)6{k}ty(P++asG6i_XEiV!i0|$|<Io`MoMj8pI0)1oIH5g>$>Q6)VmgFNBR8<g zf2Cyl+CIo~+3)_O#c3%|H(#;a0Zm;!8>pYXK@64lgxh=ty>Z|K#2B^4HbhOHi<2_S zR-rPfUqi+ax>h0cwbakm_)tEzi8k#JA$bQP8?j|xm$rchuKeA*pfK<<ORTPdi0Jc1 z(MtvtCE`L1ZX4i2$GqF{)fH+@G*uRR+p9JHn@nJfLhHU(Eq)ZB<a+$0PP&+Nx?9Y% z9ZnnlK{0`L8%6t!>ShC$1J4d%c5?2(z+&h^{IvkxA|8QaLFmS4Fef=nV#mAoqzzTK zK$&>OpM&;fH$SWamZ0GMMl}?;_h2@|GRpCCm@POR^E;?L*228q+szNQHel@7gT0<C zh%F-jFM_WyP5S|?(y>%d%s((w7Eio`^djUFWqnKR`s&rt$?95hv9-;nO+Bb#mtOQ? zQ{T#5R8V{DQ`+Bf9}jwl4~Vg1eEaeBH3z;91Nvv+>(e&A<^XErYmxo_@4{C!OIy2{ z?Wul<^wBU|&>Z8yr-pBz7Uzd%D#13I2mo$=C>syj^nvvxTgS;tngpp{*&}*2OvgO- zCy*<nXb*II%zZ1*3R)s}+DQv&k9|l1diMunG7#(Z>L*#Y4&}Z0V|WfW4zsZ?`8u9# znMk7Z-M~m2-;;|F6yquI{Ru>4gfW0he5YM68{dD7kOSXe1Sq)*{{+6b8a_YpeK(#3 zzSpJ`v>VXShZ=kQKbe3g88<rd+xZL$N9aGzgmDQh&{lmd^!Dm>YfC9fmbKB3Ti>;` z7Z}^=0Ydr##F{SR`4P{b-`D9_pW6iIq_<5FToLYh=qh+Rm>{?_tlGZS8v%$6r5R7; z7k{>$@6CfGTQ10?pFs9`;z7Iztp;~NgG;uNLt8u@V)hyKmR7xY2x-B&_#R~55DvDD zK2D(Gr@$7dkaEbVN=PiAN@=sW|E_?=hoCmofjflcnN!Ak3dDsn&p~#_s(R6cEoVZJ zv1xZG{wPyMG##enbgP7R%kYc_L6A2606BCahz$Ao>5#95))PdMY4)WR!nU2wM(hZ> zc00l?_#JL$n@VZu#VCS^GgDBF%V;?<l%57!J{=k$7N8Kwuoni*7qm5(p=PU~o`R)x zjaLlX{e|LIp4UCW1H~-*sKDw$WA7r=mfafrFVr)urY*)Ualyj<JD&-YVy4BD79s8% zG#`H$;h_1{CUFDNfb4#o-9j_A89+1*7Rj`xhlzex%r130nhT|13KPe4k6Xuj+GA_` zH9RFs)#EW{%mtTfZIuX%*7&u?qYPRrpfw&T@b}FCdLcKF6|zKwZBuHh*b7Cm=%O~E z6}BWY?=~#PL(Th}MK)9n6pvgNleAK5&r5+A$+yzaYE-wLiFjHQt?ndS@m8%*P}|h( z4s!=uj^&iQ`-F|gG=HI6kFzt-H@XQmJSyhdon+bL&?fo{G0-%;)2*C>*lnH@$$2P< z?Z=q7gatpPlSm&l#|;zAz!Xo&I(ussB1B+u`Wjbci5{!>Kzj!h$EDVvFcjb>gCh%M z)j+=ZyN0%HSPhsZC}-W7ufxLS<worL9#^DL+ZLK~Lfh86m1jD_+-`L1v_Q8%4<=S_ z$d6ns+7HG_ywAXYRSwi)!cF^O16x=u30M<yXy}bjS^}|eLHC&|v_|aiJOuv*L0H1( zMEV1_XCZU%N52F>OhEJCZ-?VaXk9`8z7ve-WG{GIRt5ZA83@~*po-Sxy-3;9O1?sC zT#f&2*_1A6g9jr%l#MzcPu2*bk+O{>=RjvHIn>;4mgSg}b6bvIU{22O0Yz=~K=fN{ zJQs;tW29<Xu*%Jvw7fq|Z;Ryv!YkJ8#uFzHF9eCsyl8->Emka_fNSy_kALmsJ^(R^ zDg~sZn+EU9H)_n-bpTkg-yv}gl?AO>GlFQ^EP)uDGC#uLH$27kXxtj{U{|g2ZakoZ zOq@|W<U4TfgdLOt>zA$=swL}mqadnq^^iOZrHFyPF*zJTvn$q_7wdJO+uYL;>&!u? zdDn`*(wbgi<wV$>+<|agHuvrr1+Tb`V$Ua|c%kMCdFw9HYs$_SQt2dDZxj1{T4*ms zbWmr}5t!Y%P5YzRUqTGt%%(Yqn`q<+x;nNVg015K<IY}v)$xZk$TwZ2+b(N#scC|H zK611tLnA{j;`}RmeD%W^1l|3iZelxF1Wp~r%=GN2*+@h2f(D>^dDc>|@9~XD6@jMd z&b%A(9^0VExj@!-=7l{}#)QW7#X^Yrc0iJR84aY#p7S70G9RRkZ6lp?MPdK9q7*wf z7K0msSONUlH)Bn}Ms)nt;>E+;D*U(M#TNGt-4ZclC){m*(Ka0x(eVoC;P;BVsplc= zk+4$U@7qB1f#q^AL;n28X;9UQj!k_fu*DM?*50@unnlgxML}$Lq4vaXQ_oMG+qge+ zR%|!)6U8HIK+3=x#I|i>rW~0y44F@E#{bqe_u)TGu(z(U5OATUY{3S*UEB3B*FrT5 zY;NqhYXx(wMjYf8Dfc&G<+#=xIorB6zk9nU;-OuIYx7gEui(X9kHfHs>YkaU{mrZd zRs>3G`qr#PPACj!Co4)byGm9BlqqOU4Z=EmAy~OU{MtUFx+M%NNYGU^F!a^i!!SPy zo5fjudz$tyn?<F3V|>WvS$=GbYvs+UtD!%Q&1`oc&Ns$Er#s<^9fwwDYxJGeW&Pt4 z=xae7C@z~*gD{pChJ{&k+@E$JcO#z5-2Wh|NQM9L9Pf(arO&0BcLZj_h>~scD^z_1 z=5=$RJP2hw=#_-5dOc(<Dut!muNgF051L3DL>uN{EUB=#j!U;y4^Mf=u`h+9S?I!p zhOaB6O>M;%Wcj!C>KFQ6fN4ojU+BV@YMQVBy&oOh@RS&x$Ot2L)YBRh54r{G9`8fb zsR*`+L8W(jQbV~pGM{gFii7HkoMVjuof1QN0QS)83R`31g#iOk>s~|*YXr>pK<7>` zN?`ARvxHqRA5d1Tt@(Gng!zclwlayq$;SXm7YwG-msnXnB|h$J++<dl<<U3@PA0G| zTYgT6Q-`K%1AY5wT?Y$ZZb9mLXl?57)dwdpU}wz};i4lUa6j5(H~?waf2{YMFmNzc zU6vCzXNcD5?p>)1qvzU%;&|sYHj@$9RJ@dVm^~riuKHmiU!NAc5o=7Ss9I;$1$UdD zp%@vMj)LH<?el4Hx2NkpH+t~P$FC3*3m$}eZY&Mn_e*wAh!%~SVO!q7CJ_wa>7ayg zu@V{8@QmocD7y6l(XBl<6fz^00;G@_5&xARLo6^Na4qnsHe}we>*kZ>3Uu?KS>m>V zaWF%wc(W?%LgpIXhSUnkJvyM^lNJGkW&*1&M~~Oz7z-u<S~<=w9DCoM`XM;HS)nCR zYY?C^-J3kbkS`HEU5_2}>gGLqvK5ek_DHK`amIsebO-uc1HQe{vjcs5LsqPTDXhuM zw5HVvrC{9agxi{y6ZPuVAM)fRQjDF;e*HomJ#nlt_N~aSEp;|t0^WmH95}$?V(O7L z*!DXspgsGt;4R-s>^|Pt*Vr8SQ7R8W7_oXI@nh&;1M=DycWS~PQKIWvt~Y%13w)c! zoBY&UC&L36fX3$N-q84JU0eMIo-o3-x_L)kN%IYvLp;zBV7SvmAbQ(;NOZBe!5)w` zb^SxYu?d-KY?g@^!2&<VNeqr9Mg{bdqcRnvlQ}Z)W7o=&X*DoNzJ0I@S&!2V>~i*` zU~{0Weh5s-WsFquNh4L9F;YMKzcf-8V8e0pNFB2w86(9rZjRJ(dsNdSrQi>V5mX~Z zv(o(|704Va%;(e?Si;HEtutU##j4DY9R`VZ>*wy*`*bh1O*jmkeg-feD+Vp>K<^N| z#A&!kzD?Cz*n3P}u3J~=zT*0kdR)hd*s;!rEr>I);YADpO&9`!Wk@7s8gM4h$%z^^ zcj4eksC|QMhiSEP3&uO#bhLg*l7>9>@vvl|ZTJa-unY}j*x)gYA}H+dSuqaGFU&j% zLdWx1Y9;2{hNwyF0{Fq?f}nj=pnSnN(3hgCD@%i^>ArS6;tX;;_6dx+5_?UQRC1KZ zwdTImnE^0M&|2MYKleQ!yl@u|mBt2qFW6RvXl)GdQD%<`?j_LI#(8O*RI#`laqmc- z5omb2z+N+k8ZhQj>Vd^^?MICQ#&`A#0UObc1*Bv&sBTsk24F=@ya^V;cwn%g6rQ>C zYUqpR-~<8|MwaFUu)R@h!o5fcyD3KX@`9X|7mFI%wE*=rs)GeNhW1#i{$r!(^R4Ja zSLza@2d3{)Z%3@2L+OZmtQ{DWG|<FS5a1NP1HhDjD{P<a(B1o%4W;Q6_l~~jF-mV6 z+*Y4T=4a4y`NtsiFR3-zT0_DIRyYz}JTlgcO*3V<lWhQ!^zz{M8f$8fUcC?Ya^utU zK<;+yI6fzv!KH4y_Q-adCpX{Fp4gx0hS`nAX07pUWU$4ZY(i$*deU8-LZ3tvMdH*% zS%|it8vw*9={_}<9|Ss44?_o_bC1IIuU<XPgVpC@y{ALJxQumVB_yF_CGHfJh|ICi zqhvF#M>AlqZ_tK_QqC2nz;Fe3WVCEQtxm6QVbg<IcGKHw?G_b4sYw@OiR~^saD?bS z6YWTi1#i)S0Mi>-)vYD9u>QDAm>7J6+vddmHaWi~DGqz#j7UZeSr!up?|YQE#zmHC zX`1j29S=RP8mJ62xDFYVHy*{pYjZSQc<)yWFGiqgr64fXwf0g#^<8^45OW+1g6&HZ zd|54U<uapsH8*<LtF5K5h8|!0A}4qC^*KDWC`MgyOwt#I@g{9saD5hd6PQO_-M~6( z+j7<i+9vuDhVP`+5A%*I(7IYoGTg<qL6jijNZJ7l>Ry=Gfoi)r8Z*r6mw`*dr>A%Q z2!r7J^J)TZtH}og8OP_aCwVMnJ<tUJHvezX-a)bXTA;0o_{$4DWVAJHVi1@1<fut{ z%R4!6zk!cz%{)FTh0DiIyn^*a-Q7mc)Nt?At#2CD<sMjoD$oxc!76SX=oB6!=uyci zYPNxdcscPr_A@NrT;_^?MaNee)GI&4g{_%Y@^brxe=slrr-BKTrn~=iU-ssl$nfUG zkigoeQuOM5*|E-SB1<FnGeNv3-j{O*KquOxAV}}!rJ($cto|S{+TBG45cYdp353n@ zX7SAOV#o6IKG+QaSX7X8@seP|pIo@sFlW>yFGn8tmBC!>(!5ao9ybb!7=7(p)3;F# zb`9H(r5ei!c8v!Pi`KznRjb{=VQe6`gxh(%_pIPew8oc^Hc1PGDua;Bzz`X52a=fq zzRMZrcAAEY{fxaIYt1wI+EiM@8f#d$cmnsGqaS!%Kk(nN!`U>7S+pZv1F)GeskRI2 zU-W#=CG!=2!9#t1B}q*=>vNDj33ER+cz{Xuvs|M0crwS{V{gTCz9GU$4Hhvm&raR+ z2of4542b+CIg2bZJK63?niV}E%Nj3ZFGB3(rI;vsyuxevc53&2f;Qb(mW7_B!JBvR z#HNL-Z}y<mi&fvkgd=P;;5)J1MF%?3SF}}I^p|kap>WZwc5A-`<FjEC6ASn%J0AVE zGyo!5jE^p*I@7%wVv1K}|Afrl;H|h#FmnoUlFyDgLlUv==nIT`b_&)aXi9_Vfhe@# z!f5ZxHgOeCUXK%t5dAn{%kYkNZ#xbI1tzJ}$V9W?ceJJjj9rM>Ve@@B3>16lB=>E` z_!-NVk1@tS(11RuzX<5R2?3rSz%pACDH9IQzX7-Cp6C!GwxAS-FCQV)s1AF&%kn*u zQ9bbX*-E004|TqF(&N;5fB<Y$-){Xve56tD{Mxg^H*5{ePLbYm(}sdJ;YLOX-#lSp zun$xsplxg73IwL2SljS8uoxwiO0fmjf0D=udsHz5YT)?nt`*|{mq3v*o67JVJ*NYi zc~TyDmhd2wi`A8H3nRnK)?j>2USI0V@j7?F+=-nYT7h#tq<aZgobVl~4E9@k61u2p z^ojsZd-3U~C-F@iaA8f~^Ry2eU7PF!rOP0p$zynCEn_SFw`om};wfM~K{_1}=&h(O zKj^G#A;B)Ua@N-btmW&o(CQ9tTbsM%$AO+tV<(2z53LE}6Wv!pR+#}WCg%}|I2cPl zh}`?YEFFY>Q)X2YFmoR4YsYQ*gIV|wsvj^#;mH?(3x@Rs`w*v3T4R=|*hrYi0vTW3 zKrj{!9d{9^RDoF{04p*FdTU^$cB0u*1L75giLAm9eQMapW;MPRbGtTmPxeGFPt$bN z0oJ%ey`+D73Z9KiUG=Bq5GBpk9)&%0-9&ox3Q*$c7Iaq-Cy^+i2Glqh{nE(|{ZEiC zW;~I{?m-MhpzpzaG+5+M>p8&`c<#br(P8aLn9#-?wwdQtz?vAu0=fPn5CKqpYf2&3 zz88tLur@X711!0C(bpa@CkB&C5aa~XVVWCwm%JBE4;D>8W_Np{QBf3a7wPbs=Gz_} zCXR<qcM9$5=holuo<KYsj^jWyy^__fM2zvC<zLt1b?N56pE{rKXYu_k`#rMBcyBZM zXVX|3No15b8K>Q~_)V}ASaLLMo=B|y2taIJ8gLI-GlMYER|xThIR%%R`}+0>UkNzL zN84rwIcE96qE6m9xpw02O&&o5ah!=|eJ8CT%_=z>bf=PWK<VqofFCB`zIrSum`W6@ zL0@8qzCg>J)m^&p#PZ4Dbn&vf7n8lD&$zHx#~;2sf5U*y+Ohb?R}V%P$3U&o3x)N^ zSm$Y2LL-+L=BNTP-o+R}S07G3wA7cv@Pub}(w7v+){8e`3@aA-dicP?*Z1$C2WnuI zy6FVc*pZmL2GrtG^kjYw`1wm=QJ0;RSO`~C49!Z+K`79-D;-0Oinfm4h+yV0btSB+ zdNJsAo+#|i(9|0SxRL|h!2t#m*#nH-7fqRBzx6iBJl20K?b9)I$lz{fuvlauMl=NQ z-@*`zjUc1e8shDxso^y?vqsC%vHBpS3YLM8V|-Jm2l{qqv@|$=PQk>Lsnlc+8Bd^L zzY0ynkfp}PRusD;-nQ~$bPlKw7SDu%!zpWqOZ8}>m@NxLhwAV){(SODFq?tC^`tDx z-(p?C@t|REY$kvvcOfG-u{2;sb1)&U#+lfRy7<IC{bB6T^rjB2@mY|R<hz2dOer>e zQ%bda{}(8A(v5%MU28K=GHhY7D_!=zgth!z7bc>(8sxqIMvUR5V%SfE{huF+E*k9J z--4^$8%~Mzf2RC@xZYpT7ET`8C&iClhh<v{6KI6H*bLxKSP(y6|I5A!m{=U}{KE{G z(l6)ckQbMf1_p5bp4~T)tq7g=DWolj%Ipp9L2Nk`BKdR72v-&VA+L2=uv@d5HZ)-4 z<T_!w2Ig4oa(fvES1etwu-(ybL!!Uj@{#`R+XgF_Z3xPtr#||C_9#xy>%PJAVqb2Q zdEJ9BFT#EyVN!fl*n1Gu5%2h6(3N$=$h=rq)}uRMID(-H1OU#*uT!S&<NZe3y`j+? zJKxXbJC?zV_dJQ<3eO2EkPm9inQy6tUBkO0-|6z5yor2k9WZh#N*~}dgkf(d?{?Ih z<^4#;{Sx802-_@S*9eFWQ+fmZu*!=#&>`a`d7nfBC1Kj1nLe`9O&c^>lcaGCj@xH4 zE-lA9$4#e=n?M@(g0QT!ZLo1GMRFZ%2(O{c6Sx=85_XS-{T5-nsRCH^-l?{ESdT`T zwi#RXjCu$gE&cXV0<_T*9J$Gz{fhzZrP#V~9WpQOMO|47hz-{Q8*XMGyTv^m;qnn> z_HCkl6L{hQ)5mKP|4o6-o$S?F_sH=mkng7O9WM5Bsf5)K02@&;*az}X9X>J-wxP;K zVB#^rcmKG}k-7749UGauEHXB_aQ?hI=Fb1VYwY4hb8d~?Iu<J5C1XqQ$S5|<HMV-u z0w|3~Tw@n5ip(8bF=fWrmqc!@zC*^ETRXdE@vRHyvMT@6mF<!f!Vz&G+Xsx9<r<QX zd02)h(@nT~R&$0bA%t_o#Y@r3uOUpE3+htzlKNYOZ;~$*%_ROapVK(LxCGtA-N29V zr{(xp;h7gj?g<|)$4k&Vz;2Q7pUEZ&+6CC{5<W@pDij?e?Ph(dWK|U{YLM_|2^aJT zupdcyr>v)-KY(pka9JPDZC+2~$NV#OV+h|b;b?-mRDUKUe4~U5Is_PbK<3jS>o1FU zQHGW9P6zxF3Gb3{L5q;bRTAzMNK88s_BBbu?GM;4m!e0vNO*&cuV~VI3EwE;f-WJe zl>$D*wM&*OXb|8O72$aO>oB`KK~E4|FX8__!iEc4f#A<&{tXf?<~`uQm2kh*l@;?E z@Mk4_qlBwD{k(*CO1PNUc2Up;kd>6r>h{mG<w3%C>Xq%1jdHxocB$U&e{mS~SGd#< z#pZqxcoq=j4422%AR{l6_tAh4luyYZaKFq)m8tT%VUYN927%u>2z<55AMM~(Y~Mhm z=PsRHxp+~{y!mro<*>n^!p6cSa~DTue|Pru=;DR0X?64GMP`>RS~#y-g`>A2JYnwL z^X4v|J)=&Af{T_ebcuMgr!R7qF%kpQ7A=mru1ALRs&Ab?d)m^ubL(asG^*i%O{=?g zp%WHdyr|9zn--Z{=h9)z0OlwnC+BzyROERIROEUJROAa|3AfD$=@<4cU<N^0X^{Jh z+4ERy#8A(|!h<6YO`25Swn!LauyYdjL^4t>p1W`k>~n<XEu72F6L)mebpkwl+PsCg z!+uKTtxJ}$C_4+8B>hYiB<Tm+Tu4R%k;S(zTvD@W@d6i&JWP#7=Ch;<)T?ZQU9Sam z7hpx3ds5r%A~2rS^I3F8%IVB*K8$#<NG4r8*ESlGF7ir%*rv?X;plwWmrzOU1kOxF z9gzzb+l6y(T|7s2tU}N8CH>+I9;1M`e_O(V)<Vw>-#x@NDFa@FcM5)iBn^!J^$hro z3^-}FivP$U@Q)>&^%;wwx@g;u7xTXqKb6l%lEm;er(Ttue{L@DxD>ou!gC$)PG*Sf zJSSYPdpAosqw)7kS&tt$;;Z%WXAZbp5C6jfSL@*)9dNZC)=2u!GD%BRd(YDFfQxW$ z!WFzU1D@H>_sI2(@iWJ3Z3aBEKVO&iVSN5ndw(qZgD`fbD)&0Mu5;LA7bE0yeQywW z8P2eIseC92%<D4=SNUubP?u|zT+*EI^E2vyInzu0%(Q8d3BNc4Z!_V>AaJ#|uuT`q zy6~pxI^p~&ex#BwaVfasBWBs)G+eFQRSvk~Q)(S>uWV;s2K)*c=51pJob{B^U0X8X znf2^&z*RjDIpC_EoesFFXTkwj_3X-kXV%lhO5jrcqxhXX2VC(xJQ~i7ulPZ)1FrZf z9*$+kZ;&0~wZQ`4h;!;1Cj*4>cUV5_4!GI}+>`;AMF~iq1HMT<H)g<@zuE_={#WIy zeZXgq_-Y?ODIZ=czS;-;$N^XTfXx|j2CL+ArVSy2nkD=#d1w9%b~3<A-qUb7|Ai#3 ze9icZ?iD)XE4p{J1Fq=aEC*cCz4;Ef8utbVT+O?O9dLz*zjnYC-Znen3Qt~iz}36} zQ!OsO=1=VdLJqjv2ds6#)jr_G3^@Bu;cc#iuBv%a=zyzvakT@k=BcRU|BHWKq-DJ% z8BXWqm!XMreNiv+R6yRpj6195m(S|fE^VMF{9raLN71Q#8SxScm)#_xuvOqFSG|zk zpdJU+#s7QLUnR?TwqK>6cXqlc5nvlKFRsM{wZH31JC>r0Yz~)3XZy<mW1g8b6OXPB zzRLfn?sZi8>i%8CVOXLulZea9j>RQD)Yw7s-<uI;a5{bi)nD19XqN@C{;a#R{<i|g zD8=|?UX@?7pT3d_L|A5*zJD(RmKk+{OrHs3Sfy9+dI@v3zfPvFav+SVze;~M0t2;w zbEzF8Av0$C$#San3V+W4%!#{9*)fLy@#WIKrT;tY&u3@d8M%tg9Ikd*f6hDdanAC| z#tc+`q5M+wV@KxB@|P@Fv?x+LcG2ZRzyI&B1#o4t?;o`VP%7;kp{g!F|KY!e-h`$< zK2fH9a<upR<Y?)=KzW%cErGnnUyEA0*XUpgvmzIn&#!u$r&X&yCo<T6(zmh?ixTFp z)EUrSdZrIWKxqyCwJAvhJ`}R=$b%eGD7)IbwGS9$tood{kQPoDtH?ptZ{<HcchY<A zIwZ6npM|c5Y(Y~uK9RzgN4&9YBPzfz;oACtVT`BhM2r_gzBjeTEr37_tqPz}{BfZj z0<nm%$gnM+X~E$Xzkq(&*C8Y_+hQz(SJ3=dW`<Yz3VbPk6SDkkzn2pe5g>8?x4e(^ z>*jA2Ee<A<R8^)fbahPRYS$;^>x{;s3^+9P6R8WPJvk{0-v@P%_GC-Y-5&HMBDt{> z7ib&4f%K^tH)>Bz$btO!dqFoO2PS1DBLHXG8h|t#KCb=~bvuP_W`2@A@(<`{l4Tr3 zH#32pbm(G|3R5?;SKNPHK+FkQzbo*FyX}2dIxx!6O)K~9+;V30NuiASn|36H=1y7} z)1kRTaeyicKv58u#fnd`Rs7CdN2#7=A$*aorKl5Bcn&ukv9@a<O?r(X!tX%3>_{^{ zEmJ2GxgaLpCe=~SY?-$9IC3+JUN&0#hC)Y9Tl-g$dpS_LJ6v>7Xm3I&KnMC2qCMSy zs%5eY(6oelX?Do$g}`ky^uZ&!Q{z|H8}SOL(R6+`IeztB<t48nN)F!d2vx()*8Y$d zgzNg_Lt$ZIC}ryDQfWHm&aE?98R(AwaT&^RMXpD7)(?4l8o9(gxQ`YS5VZ)Jl`Wk^ z;ZnS)C7yE~?hyTx#labG#0yW5qpm~j9>#Vf!<KjKV*23u#wa>&K>rjobLE{|Z$l}` zQheyv<M(oM8osvrcaxt0VAuc%C)B@^q-wv?kwjnXnf))i1KMkwkrgj~6vv2&aX`n4 z!N80?kvza$SD_GyQmqy;XnW1rCZ>RREG31HIdxj0xXK-@RAUu|1~CSOAq+nR6sOZo z7QgjVXhUKHLi9N;DhYX*n;@ClWxq=6yWS+KWc#ocl8&frUQ=_BVgp*!QFOK(W9XJY zz6a%p;!i!yoB4D>1MWg4){1o?NdIUd^VbDy5pJ_3t2u7EyA=bcHByQXI{8a3py>wd zTku<7ubbZjb;yIywxvhuIJt@5+--f?-xV}4Em3=*R#KN%+xDoako7oA7fnFh?FLa4 z4)Sp96d?csPsJhkC!!u#qYT6M{*vp_HOAKKXV{l+eMdKY^_ISC3<z=+K^XmPOcqq_ zlcjGFjSBT`Dyji5la%XdIdP5Na|}iWAkpff)ME&d4-;*zdx^0WQoBU7KnzjPJR(L3 zDn}&7sG6vx=zkjlPM*uFmKT%~3q^#LS8b)m$|OZ5gp28eL_%K|9Ks50gsc>>98&C< z>dmM%yuc<O=NshWXD;>IAWwLcD|$W(_Cvs>v|q>A)-N_=JK5oo<~u8c;s|6ED1$UN zCBLkSKO1?X6SaHaMj=TLo}fM)bh)Mlwvu~*wm{;y(2{`Y%V{<q54}<7#^XI%2fqKo zN$-c)?;!-b74KbIumhwdxd3sfjGwjz^M!OVAv`;nE~d3=7FO86^pN%QDg<W0js*ng z55PEtQS=#%qiEI-DglSl1j<9ZcS0C$J<(q{EeyhGVf?bP)CC#!)3%Kdx!<uTS!~Bp zI9`q1p*^uA2P%V+_q8XdW!1!vpSJW6kT*Nz?(8dgiLLEV?_W!0diURPgU8OHjOI&4 zf7YK~C}U;zR~xt#^mp3?kG$u}dp_^~v+V+@t9m<_&Vh7Qz05@@R5vn2X+fc@+5jfe z)>ZXNUDep(PU@?|q>=}wi+~IbjE~O#KcKtX-#>6e3l%L8g{gi>?CMaf3=M0J4x`}) zQ6HfzGnG=kkpFMdwW;mUUY*6pz&|vV4uR3<rM?1Wx7!=J1>70LiT%(_hfglu=UMq4 z#DHr<<7ZZ_m_o^Dnrv!0GDOc_IxA$(tkuntZ4<>9zywj-M0-@si9pdS;ELV7+i-UT z%_$Hkok-&pE}<iYNe#WX!`JDn+8U66-|Jig!=T$sjbyCb9{CQ^VWZiv;x%e?4gr1u zFn!^ko4(L&9b~KtV5FuOc%Ef+q%H)Si&R`LJRqc_6V#M;q*Ho+wkqMO_u7G8+LI3n zfoW?^G4cq}C``*?h~96n0q3y(bZkL&t2jiz-yltf51PvmMK>X@ZcfGGHPx%FJ`Zui zlyL4zeM!|1{^G1CNO-wdhi_-<FZn)Q0g1vesM`n7STw`=A>VdFW_Y2Nv=XYlGYX-Z zDhpZq4BfOtrVYu<^8p0k({hbqF$Am8JJf*f3Ee~-WT2bnSVF^vP;Fd>Hc;y&eg+7Y zZlO5q_iF|011<hJnv3-b!mLdVY%9c8*Yopj$O?NyP>TdCOsg#~F`ldx3V?&*_LZlF z%yMrSqTI9<g@VxsUGVxz_zd*J%X(3}ULB8MfKi)bEJh&!uvD7mH2Z+1=2H#|#{)R% z;kXhH_#ErKWTgOn4FIk+0wqcj#h&EQ7htruCS|pm&AWnCj0^p~oB}=GB=!#|0euao zLU&^e1ceM>2#d@I0fe`6p{!NR2&L$vl`x&d5E2O(N@aF{q4s1B?cAv|0hm`GpHraS zTZc+>pFmM{8*DwGbADNOdh{_!_<%jzaz7DxY5u;7FCj-74|rqmT%Z@hW)<XEU(mI3 z$O|`B3OWPztrbv$?(C$sHD9kL^imj=euSa9gFdWUc{erPyX$jPUl!%t<+SCX8&H7o z9o`a6*i~vPueD1*)>dB0UZxv(jGnA81wG4wE23qzXhPA?F;GY@FHPKmy&buo6jH@{ z{qXb4e$I$W;ZS5I6s%x+4Qjs_jmD9TRsDN=^x;nY1>M)P{Ir-DF>J=5oC5i0pdyPj zNpM6!0Vq*S0GEFBysRhtJ9fW4hx4(h;EhNqMyC)XE3g7{C|BZL(v8TmXNV=9m1kK^ ztWB&pZ{_fPy{34m*@!+|wUd)RLtInrn_??!UABfE<c;YMHTDcg&ehhWHk{h}U3gB@ z*(Q!Ne8!e^PqIcQAfF$doZN^A_WTcJFY!PLD-Uw6M$0=e>GmnC#lZ9zmSkwfwFb6w zRNzsV8p?%`ve&I_NZ3R3zRr!TBEZLNa7Qb*LPIa|IMgjd<_C=3^5!t3sEdg{IwlgO z9<<A2yt6=Tz%PGlXN!1=y@&*bYj<e;f3h)Q^F3|d1n@dQJnp(l^3S(^&jvPiuN<XY zac;J)XT&C*w6(88j!VKGm*hvl4rSp1cY7UZMyL?Y!75$h<vke%n<ZK(41AGJn0u0? z0K%37kiXxS%K4G=L)JOM_yf0TjdA88EUKK1)dT#Pc$Klgq-~WO)3#OSDcdSl%C-uq zByFpd4q#j5H`4-QHM+su-I5h4>27gL12bR6SisDRUEV0vAfvpKY^}UTTPyD&f>FIB zhiV0fM0h;?Q9sXM>>e6hAyeP*rk#7_-)zD8$4P>P=@s34iexrq-Y>{T{3$M6coJlz zt!x$&<8g0WnV+GyGBJN)p2ds_TG19Gf#(HN7i8_QStBVIkhZca-b3bJtO>A4QC7<* z+;!gjk50@OXNEBP(k6~yL^Sg!9DRt`-<UiItq>X|c?a`JjKGb_KO@-iW{%eQFtdz5 z#abBgI{zP##wD%Cq}#%lIhrKeesZI1BQ&aAWmU+Cm93R`op-duS#P))$I>I}jUdQ( zjP*{I5wB(MG>D++7CXq^=T;RF*!c`54J6n&LvL%wy-#VILOUF8ond*>_r9)8d0!v1 zC{Ne)gzmdM610|7VwO#kjZod{n}#Zk5!kMq(>!+#1Bn@bN3r%uGcC=;sMMH&Pr7fW zC-R)gDf$FeCb94JBrbtIlwf93{~}Cx_49jynIY&}we)&y^8`?2)}A;{>jZxS=cL<8 zb<}?&X>2*+fv?-<kZ-qKL$SDNjg%tdEH32wJU&7{%fAB1DC*z|Tb{P|yLftrr#k_` zm{BpNn2&nV=h$y2bQ7v)33~-!UXX_q7y6(zcWG;NM#^3etw%R3M@@-eeHGi_)!nI( zc|v>a^MD(Bw~+Zxg1(YN<DuXsvB$2>A>EB^JFynQ5+eBnJ9p6|BL7Voe;u00d0{uS zwGW5Q&qz(dl0yB?OoYs%1`aQW+4PSpliBlWx#Hbr!}Kxp3-XNk3^(Gsuh(_=ftDkl zfcq}Ls2_a0LeC(P#Y*|+6y(F$$JNnoVe@15QYoVp>O({aj3Fmb^s3>8mJGH}0XNx$ z*iJoT?O>WbJ$BU1g^**JoCIv@A3s>E(0gzcX|%Nx%|wTa4o2IOKSveRdV(xMXh2@_ zKLE@~kNzz+P%u*ViVk&DK&2Nwk98KTA}fe)58M>EIdDs0b}~Q1c2>V5adf2gGY)HR zI1s})C~xC%r7mW<ZTE)F^5U4)fT@v|!-y6^2U*+Ja&+*j7^7fVPd4DuX!+a|_I;vl zI04KME7rTl_?d-T{6Rb$<H0GfTSuJXV%TD@EbL+=Ap+0R8c$$h=E(wh(K!W$JliVz zSZi!X8gYpCGrZm^Mh0Cd$ODnpkJmufc7{v&7W(KrB~lqZ$Mx!Wp#h?;{UJG&hk0ay z`3m3Vqle-k1AdXknMRl<FmJ+4T!#fNgcBDqBsURx5#ui*cZzdMH(yOWk2Ngh`$(RC zAez?r07?&;of(*nLYwwO&(5gcuC1MnVh!`Cu*?b-Dd27pk<oAYSdByGs{za;*xU<c z0~3Sh(PhIzW9GoLKzxDQt}5!Q>(xhfH|88p)%u|8l6VKT(6doLm=OU;RjwFdc&W#P zjczf_6w}Y*p*fiISIMvHb`FWnh^O{{Hf6AphlcRb>RM{s)Nurs8Ri->uI57=ZNn6n zg=nacP#y*oOhbKSe85-{YwUGYxP$*N`ME$ntmEJT{Mr-1xC10+?)`epU#}5VD+HCQ z*q^Y)?7aq^g6Rho{;G>})9eezH*q`}1+RNLzRD+HiodAch=;!7f}S??bKEoihPwid zgVt84ATLpbGZ!`&n`D?yfU!rMahzMOJ@%gA+Z(Qa%U0Hn6xnp6+`Y&jcHfTF=pq!2 zQWFU%`S97DGJFT4uOll#IA+m#eQCV$3>PLcEQEIH50|@_in5cx7c*J3v)#a%lfX}f zio{Vd`2~Wai;}mXTkP^-3M}M)DOs)hNsJfp6DqR;H~SLDsdqF(<qw<+#NKnew<mwa zJT|8Hv(u<2AA&^<nsGxvR2nTuvO@8zn@}El@VEAa2G0Ls69B+gu=}evGf2HgD8Hd` zl>*#yn6I`lne`hEux|cftBA<ckHc9wRR*M4K+Fc*LgsHe_=HkX^!j#$wGDRw@3r_X z_)m`12fGpPvu%}FRX>C!CEWJHcp|Jm>7Wm1Gn(&RLkqox-Gr`%u_E;1ogWnAIJ<FG zGwV;{1&;b-E?hW_fJLd#L-FrdVQU2y*lWF^_?^&b`>sC}|88*_zvFrrn+E=s+e(b3 zCsYJuFCT=8-oyqPIQW7%Gc|jSl6Ir0H-zVso>0*X2DV}AkFZ|xQT5?@&4TS~IXoof ze%WxthBB(Rs+W9(wqYY`hz|n|Fy3UuuihHM_Q(yDHVhzE<q-B(;i5O8G|fjSA9jU{ z(9p-;4a3H)QIrUoyY!aNuQ5sze87HuT>#mItSm<Nhl@IS$LRwMQ6Zp*nF4f<eTmr$ z1P{?nhxS-<z`VE#MTCR+?GC&5Xlvi%K;eKyW}rQG0<T&^?lx`hZuu&Yd1F7g9AtP5 z`HIX)zfh6*UdO8*aooZuKb~ID-FvmQ=oL{&rLY%rB(Vl4ED$>cwZ&PH@rDJJ%Stq; zMUN$m!&X&C*s485asd3nxpMLnu7T-u9%OTzW=H&-m(a8WX9|-|_Tsh!Uux{{Ug+-L z<o#+MiIIk?B~ET|R&Th0GjHnd6Eu`=xSzA%?)xlcf?I**0&o@WddsnEjFtrKrJo4l z@L=Bwm@G#+!yE}avsg}PoeNR)miLjvXMh>|KC>}vA9h?9>E?)#`%S}q&S-h>8ibhI z9ATJCF}dpSyW3;9KVjamFC;1fjcU*+W8dc?vldogWGz?&QT(T(KCw2~bU$I3Q+W1N zj7s5{9_$t}LY460ETc-F(;O}eWrp8FVb8;gBf2;lwl2muieh0RKDGmipGTCic?VAX zcN8c8jP;KFH#MH?*XQ-wSpMdau)AGidGajMne_QJOz!CM|KMbt7P4^sbie>537Pkb z=}8?-SQ4`yZ@~LW@tinrAT^{XkCTE>J=VN`6M^>k8yXC;rsC*7XQFOBC1_2{n>?e$ zCaGCOvq*=uwR9sIisycdE$;b?5g&Ia)w<U%1Q^FrAQ-JUCb?$iWi+Zae?=8dLikSL z^b_CZuyBuGQn=y_9KY#W2($fD0494^%m_S9q6~d(vf;6#-b5$3@IdS{Z03d|U!xjo z!sWo@86In0Y%_#ins(QJhr~ApE9LtX-$k2k`%*tp^rmFD#M_qMESU5}t^D;LnHH1t zP(d8&m3srRoo<?uH_Nenbm{mr+gK5aUpfd3U^qU6U2tO`h!Q?r!mI|4)wmmg2}NKD z0akgT{o0Fn;B%1=_5y9hQIQv7x_gxs{24GavYlr<RB;xFz8!58rub(R>aks@)n|R? zy4WvJSKL@-t*IL`@y46+QS>HzUDxB|hJ}juCRd9E$<I-K9wP+)t1EdUVB-5WzAf?m z+4`oa3x*#{QQ}^qbc^{5laKxQ#P1;qa-OI<5O)r2RN_M?Y&!7^i<Ttan2Rx30K)JF zOdaGqHec8tvvinBK_PDg5sz@Y!ZB|-jssU<##GdW77}!RZNlRRy7>XQPxQf<GIZMr z8cq;B!kvh)x0iV51LDQMHn3ghqeM&W>8#NOq_-Y2M&S5&=I;RfpMGJ%5m$q}_uqh$ z;!-jC-wYJ`hjnUYCMx%aQ!@SkNBLj0-%jbSzY}1~5`BGs^_;t0{b3n&x&8-DXUKfZ za@==c=W;L0bALJaG!OZa0>H(G6x@Hup{p6`r{{Lt9eef#ZmBcM^k7@Xbs7I>=&ask zgVTCqd3dgquv~dB#Jy35zlE<LC+Vkd$~s9uH6O1@&UuNt2_4HD(t5qm*{@D{$8r<$ z9Zf>>VqTw#(5d>JtW&;3SMhmLr{1*QuQ&Znzuq+SR=UpD$ovSKCDT(@kQei$<OZ)A z{`(vHq3qL#W!$}toAt~{=E*j1k#NfJp|6V<U>qt&+$s7X1W<>3U(dc2y5kNVZlS*$ zq~2`B$cCZWpJWfHI9pEDi*fjQ<%HhAd)5jnwcZ4M+1nV%dUrt8S<zM{bNmA&V_R3V z|6<t{Ba5@94Hw-9UD(MZT+8sfQI?_eF6wNI%wM0~uXm1AX?^zwclJ^sUn$xV7+Huo zXdlu*i9IkP>#hM`=p&}6_|P9t#~1Zff_!`Nv5Sk*`s~}FPP`$DTGH!=WM7qq{+)=< zVBcQGIJjzZ@Ndw*?bk^@g2bg|1Jo1AFT-!S%un<&@>`b`AdczO&Ch-pjm$^K1?}>Q z6Tg=6zlt#DSrtZ|IH7#DJx%zeSkCI~sUyAXva<e#Sn<Vljg=y?L&^A`qgOnTPBGDz zx~S?BGzSm465cFdvEO)62Ac7^BwXpDQjdvnrL)iUyf`-r_exw7v<9$Q5>DX<UhGd^ zi|}K7bu_Nvq*a7(lJONi;VBN`%@RHd&%Az#AK`fz3SNSq*g>EkC+W%86L@6&E*W3Z z6mG5vFUH9@FGW{gLzwW55-w;9V8<lfH5>t4f{rkN{$l(N2^Vw(VCpElSs&Ry#f*!K z(rt|ICqcj^=nC%RCA^u0374P`xKEMrO4%`D{sVrKgm+1}nCpPwsq&XH-(nsDey@b* zorecpV$R{twTbm<IA4I%<N3cOe3RFPi#dWIb+|=)C0xuAI|}+=4wigYw||}vuN)MW zak^aD`5ADY|I4n-fMRYB0)J%?I0e=Q%7>>Q1Hs)G?}6YvQ5gtMyB7n&FB=3N0Q?N# zm0z}s^q$vj32#Qdcoo|>7tPNxezSa5@z<$*WPAm8-M;wN@6WEKN+@+RZ5Al4*eV~> zdaWX|t?fEnsj<p9w#Mh|+vhHvyBNyA{dvh3;IL*3_0N;z1AIzcyH2tgs<zt2+WN3d zs1@9wds@9VvubG#SXoxT0<6pl9?|E_uAU3e?*dT0XyIK{aK3&1_v>oWcr?LP6J1!1 zAe_z#-|VNxJE@j-BW)0St3Pkq{3X@5!tw+<S=NB+v9tRD)j~NsvM602s7k9Rp{}bQ z=--`h&;x0$U8fqY(9O*NI#qpb<y$02O;1tm6*{=HXU|`>@b>R5sGD6~dxwj<&j@Em z4bH_<R<~$LCeo0Hb}Ig&nr!eArODeraKs0@Z_--A{VyFafXh38zr1+67(X1Fi0jo1 zctHmI2J#rV`1&IJRQyB+JTsqcxs)(IX`hP!Z`g(NB0MwxRg&~M;YTvynfdS&DKEyq z1V5Gk4<($-gIa45bnTL)kMX~TpNgNzfM?cck0gnVUzia;nE@}#fS)PXBfb{pG9j)D zB%F_z;-|{JUNQ)LO%kHk<9wNpw~I33kIATK=C~k=xR?ij^JV+xO~44>BLRw5s`xu3 zJYVEu=fQVROSsno|Gk74I^e&Na78y&{=bs&Qb+tv5?+}BS3C_tbs2ExrRefT2fRw+ z$HNY|;y*Sy;EIpg?1ZxrTwCm$=r_gN5!8_ZXFU~eb!EUa>zOC><Bh)tSx>c(Q*c#J zuOq&yC;1&-D!$?`i!<Pv^{mW*vz`=E=2e#gXRuj5Z*;&nss41pRXsO3;HsXRopAZQ zB?F#W&-M&BgUzzs4hOtg;(ezB-kir)VIS>)D?VEg2E6BM{yMz)hsz`9mx6Ed3UHb~ zS8&D8srjhjivN?zL@|7)E?ov#4B^f4Wt9WoCE*bVT-ATA1MZde{+$D^@L%DlDp%p# zdye>Od`0E(PQ_RKFJu@q;EFEkvc4+58h7&1ycArGSDgc{@aLxvxY`e>{gui`?FU|T z#8-Sj`M%6@6+YbLfGfU#tpl$3{+#TS^YKf*zt{m+<KEzaD?HiafN%2J`L;XY3J>kK zU;IC_XV=K(G@X%OhSpt}28n>2E@>e5t6aMMX^0)zdbxd9^Ye5(vK&dS#W@vYaLpxL zHjf~2J?AJ_!6loZ9tYLg{d?12g`8Nv9M*KcowEF5#|v*dh8-xuZJ_oy@CB}AvSDmL zSs7>hzXKS{ck1lsadE~aw}bWr{xdEwbq~vMv4Hmf8!OX)r5_|hDxJDt52y-fMx89v zXTlhE#=S$r9Npxql<7Mi1FPDv@~uH22S2|8$a^mj>2UdF#_T`xL@K@FGtL0aQ3N2^ zcNL1;7xtgMS*EXL<#5rI%0>7&%jdE(Q2BXZ#|vD)baaff|7s%Dw^rBAO)JfojJvA% z%B!xpYFsJwXN!xAGyY#SZk*S9#g!$#D};XS-|s&=af@9S{`ZTZAMF_dUm#2Kq0EO5 zSd9XT=e*44t?YwL89m6DX1BVTu8{GlQ^aR}1j6S{-^{{DF62Vf-$bpUzKUWy!v+?B zk6)#bTl_ZtA4b0PZGKXSjM?hP8~F{b8djF8ufumZ`j5OuFM%vIJ<x8~hmbAX0o|Gj zm*U@bg)l=5k>4EpnT|JBZnSfN(o3lxpXrD2Zh#K%plX{PiU-^LTbt4AlntlPzsPyo zw#7rWCnmYgo|e7~N=_6(ByTT$V<5BGcIqBP55l(~(>VNji*`aw0qx8|J2#@$aC$tm zIQpSA#f!Ez?G9)UG(%kXM=gQU_Q;=M-glIBeSvT0)zJ?4Nbt?{N89;L*_v4FtI*jo zLZ~s_Ul38LgUGpG$`3=U24DLsybwgm!@Ur9J{RMT?{jD?jBn%a$GsSL9nQs0&X3}d zABhi-R9%~l50Cih?mIw7GUg-?WT|~0MaFYbVwXb{eUTp`j1ibShSPHMjlTW-A_>7L z$W-5Wa}qu5+6Xabf&QsK$#1z(`$=u<A8+_1LILm?25Hby>~C15UWVNu9AUs{a(DC? zoYvt=x0f<HkhTlVFwD<w_a+q9K{aP1`fHI(VDUL}I`tgQHv)Yx!imo%LQv~i;$mcK zST{3P^i|d~L+(N70F2RnuSfGzZ`t)Ud~bxz&m#vz)(VKqAiHCBb`V{FnAoudUDl>v z#dtzb&{|mqF?74VGlW|$xB@H%E{Jch*4+@QfiJ)W`vXV_fskA%Z9ur_O!$o}w5EB? zYm2RExv|3y=C$KW_S@ydwDTFz_ycxj!8;&HX!Jd(xgbkh2sS<c@Xhy-P+UhRQl_U% zD6Uh46AzuJK`Gqr_~0_E8_wAL+Pxp47D^`p@&dq&3iQct9lGI>GPuh^hr#wUzL#TE z&eqMv=vt~AL9D{O6xuPk;XA&$2;gaXcE|MXYifqLNp55zz77M<)L|eEgzN;;XpKC8 z)#2E>v6TU<tTZ+TlKIU<oFzb<V-$@~=QgcSW*1>hM>Ns-B}YYH8s=pM?99Kdo~~pI ztR+wgz%X#|Pzx92m~tT*3$%-+e&3H@q6w(l<pVbR4o@uGomwsMbebngC*CT5a{;<# zfd@EY%i2ii0m;)5Cj)<_U?^Oo!z~X#*mrR7I%y;TvY;5e<-)V14%~-?TP|5FxCm#r zH9=hQGp+GYA`J2VEZ_uGCSu#RFb=%!d7i3cXw4IhVck_Io7-nM_ojke!)&Eq?Spt9 zGOHl;wX6!ly9NX^;GG2?Ov*jDdvS+m_ryZn;aOxN+_02G(hA;NC?H`@^y3aO)rmUp zrD1bn9m4S5)L6i3z!-jQpl?R8J%Z7B3T|$P%1PLayjUDC?U<=EWj{3?eTt2YoQAf9 z%%}?@hL8;Ka!?`f1<6%<jfcz@#09C$?#BesGu8`{IJHL@JD*VsgoMx`a!R*3_2|j; z%@+N(XDK~oUJ$fy&mj$x<5(Ua2gQ=^^7umcvPclJ+EA;FH=wHnvClo)>bnp^A2#yS z1tdoDVktL-8-+UHaLl6Uh}7A#U09DSxQqln{}}RgdH9^xrN`dSlKDf8jYa6@aJ>y# zAu}`TF>iK#e_hb`-&*XT%pM}G(Cc?YI}k-k87_+SQ2C`UKQc+TmSO%tl1Il4Qouqb zk&-c(hUE~fXw5=)lgwNoThz1oj*9r40(V=vD6r(UpgA`unJZA(4=sesJP6Ehq%;kb z+NvO~0~PW&={GsI-2GP2Jp8N&>Fj=8&Z$$L*VGrCXWfk6i+c8@%$woJ@z2Tkr7TNq zhdXG^%|Vlr{|*p3#pV|R&;x@sE-J@Dn7ha~p4-G)xtq=Hq6jK*i!y|kHnr|C?s<x2 zXN-S_%%<&j67;MJJtPF+Y`?f-b)tsJ>nH)lFdL|L6!T>ku(B8G{i9xD%XD*8f!6pN zghW4MyvByCVyFT|$0t_`XaoL3S^Pxg#;|oe1bh}1x`B3BUizkajUw9HM>uTWj@j~l z9~2pyjz$88HIy3ShP4n<>$a+=0r%eqq-o5da75{e{>G3?ck17{&KqV$Ug~Ej(WAVO zJ3&v6q4Af&r!*_!vMFbBCI*iS=GP!rCP*nJh&28{N5Z(;$^<XkCfH4AS+J$l3#k%! zv6iHz|3tg7{QouaEB1H%o@F;CZ-(;9N$W4)LmB%I%)Mm47(1*n7|r@ByAUy^D3)g` zERYe!kU};nPmC%DGR;3?{f9py3|;(LE^^PZUWs#1s&3trZ>MW36O21D6HO8fL7E?+ zGj)*0$Z2BvtvSUXd?vpM*9u_6hEO}n1?H1n*hkjH+%Xm7V!id+gJf!<zq((0a(AG+ z`84V$o8Jt=<?__rsJG>?XVqbT?FsZWv!Z54Bp7SYjqUNI&f~bPI^2MoLu38i=2-LT zyzh@~9~Rp)6j^z-^6kL2J;0exKf@JNdA8?6tUV|7O6K|i|9sL3FsAv?SZy9$jb-Xo z$5$>RvoRg=bu2ei<_qgTWxgozWz~Zt{v>48U@r7UPFEdS%I?L;7J`duD=X$x;y!^y z5Ql%~RIx0(Q#1K5me<KejO!Q6!;%GO$aD$_Rs*7$RanZz%JZzBxwD8MgflUjca($o z|C(WrPOsXiCrEuimB$<}P3t6=*BRCdh%-*69|^ScU9!1w4q0d}DUMa-x%(;=qws6Y z0W_%OwFIe8>XDP`+q4@fR#7N7A$8b<?1<*-u{LzU!NhvRHxB`$`teC{O=#qyfGL({ zhzNtJ5{g@ClR#r;7LT8a<!EZ5ZY}gIzW9IQK!WUam?MFr5j=Q+=)sIdYbZXa4U1{O z3o&T}YrR13zDlf}QJ8rNQaEliw=jWK&uqj^Y=BC@y#`uy3i<-AAfs>|B$GveG-8Uw zOu`~E9O?E1tR`k+Sif%&xA<Dzv?n^?rQ~tE`)T^=mjUa6O?-OxxbJxMAv`swpG-XM zR8LydQesT3)eG6cp}O|$K@dLQhgwsW0Ji`PU25&w59s5!X)=I;wK?zvDe4hei+b0< z|7p`E<VQb41w-+w84rAwg)j>WtOX$ptPK^wKGQM2$c8dj(|^fWFc<Sg(-u5n$HtdK zkZKbi&F%jWZ|?#hRdwx;XOaL3B4<>zsiH)kYADtwR&7S8&V&h^kr{{rnzmLzU<5_s zk_li14a@{Q9Y$$OZ@qooa_{ZKzP+s_)~lF+5PUX1s<giFfzCLh)Cb^;{J-C|_ntX3 zB-Y+v?|(j!bIv;Z?8n;cwb$NzZJdkV&^NY^^oK;hl_Dc^L88haK-7y$NLV1P{b*q1 zHhhD<I9OPz_@nb_puIAF5>C09;T!5a+VkF+h6lzzfYKs9gnW2Z_MIH_^Lx=Gt8*zx zCtHC(#rB2B&!<#0i-oXimtYVz8z;a7dMB<xaS+HWdErJwUh(6}osOK+&9h)|%l^VG zq~h;4sap);e$UDxpIY1bKD*F%Qg_Pb+eAb`o{~TJaS0|wDjCzP08LLpCNQ>B-=a4a zE4lkOw9uC6cDA=8#>Ygk;+>nAA;iTHK?iIf*kCXuuup)a4u~w$F$P;4(^8h!Kn-Ca zg%<(jD5Lq>_PwFhCEnDfb<Nne;~v@m8J3VYb;&6IrDwF?k3le{FD#ZDy;2yb{L6Cx z4f_M5yZw4}H*>m-&SwR{WwRj->kA`vu#UE~)CfW{F&YBVFfb&4sr{vJ8oTq6U9URb zCi5fo%U3~B*gv5cy&D0S=NIA+$iwa}tj8A9ocy1`XtTsV$GAI`IxWKRFR80$qrX}y zpI`()E(QJf1)bid<BbL1fZcW1aCg3pRZ68^sckEGMss^ajH0?*x`7>OA>-FTl5R)T zm-b)5CcD!Mw83hw!y&Q3u}?WO>w}4Y94|bnH<*~@^`Li~8{;PvZCELvt_&bb)b<+5 ze@8F?9`1oJ;&1J5!**zGxF7kUFgegx+3yI`Lzd>+_~$U@nnQ|bXfC&W73oN%?UJ30 z7;+M6nPPcKC&5e^z#Otw43gVVkB98kZ>!KS98n5W2|J14Wf_CUVAb*SneV`&!TFzG zwo@l?Se^|l^MDw^I{a5ML$InCC_4G?NnX&U&@j&B#<&&d6g^_bYyM~BIOu3CYhe4g z#h;N-J@9v^F{>K=wc_!3ZbY@6im>zVOq=_CF~7U@q3B<w4@DU|PbpOhCDw+a(?imQ zsPze~R4ElG-M2v`e+p6rJACRA4<Lq;8m>Ys+#hw$@a0PUHG`Cof~k(v%b}sZ-fBB9 zx{4n?Xz?7^rYe1=cvsmEg;V!XE~UP^0e@G&FMhb;tKX+qx_xN-uNi(!S)QoqkGSs> zW64pz+{Wob35=pcD-m=M1RWHJ;0t!@mTu%oGwo=cYq-H4zr-7FVpIfwPdjuaGD18O zin`2E*nki0;W%$)Kz0C#`a)BJ^B~<2RO~)4_OmE?<nM`R>=XnZHjEfY#znXd;y?CK z(5Hca>$;JL+aHB$BCCBEGsyTENtAMEcnl3YQk8~ERHRyJA!I2Q52uF=<p+c?hV;rF zLnoXo9+?-pnXQWT*0kVki_7t!z*eP?qP7N`Co$@+RfL^z#b}v;z#Ii6JKNfOWw(%I zl=_+%&aYEbGe^kKZ-P33+1Uo*e-u)I{BKoBQqfT%MnXyDQ|6v9<JQ6+f+Bm;i}s)m zQXB@CFleR&1Yg*zY7xIf719iRVIu&CcMgt3lp?Uq9}o3*3Tys>uk2r`GhOnwkIIB@ zOKK1YyTzeDaK+c~lscEz!##`V-t2$!yA7oGJ}sZ6evmhi&v%{-oEAywR%)_yBB?LJ z%>pVK9dzE=(h3IVc5Yz%;V5^B9FXSVz*11rXzuZ>Lf@W2+@pALJItfoVG(w(!U18^ z0nvg+w9-gTvKz~qJ72zw?)tEEe8>vD*tz$2l~(Ary8=g6@Br-y?(NjEOc;eLE$Uo_ zovL?H@kX6*P!R`v*O0dP3p?NH!$l`=cK-8j0(;kV<HBFm`PNRk{O%wwNWBXeof_G2 zP{Lo(`9&pe@gc<(e@MC;7o8MOY;@siU(plS2o&Dc7CqG!J=GUI(cOs}dIg9ucTwke z0o+HNqqDze#~FMDFG0WL^}Cg%0cs~MfRpQ6xJ&)$cKnUN9RtTot^x80K80}NzM)f6 zi}pZB?2SVlzu7;tMJP}8-jv?Z9()9AFy~2p(BF=IgK7tUuh@uullfO{egRm-$Tx6L zM?zRTLU65OA{Yh1uYn|jmy1!L^+ev~VDv_(gg1zfvD5bw<(cuw4j~+v^;ffJ;z98d z#uTDwgO|eO&pVyomGLb-);0q*)fv%t8Z!Y6)<HasW@SRDO~eGf7_}fVD>+>w7Ne!5 z^*l~7STQu3inYRnfq*f5nXcT<cH|{Y!_)lQtLsf7u8LM%Yo4R<Yhw&?0jRV;{zZ;S zE)Y|gd!U2;m(=5o)#N5*hm#>ib%vc;UYr=~{;d6eI{|4{#foEw1Gnw}M(_HWZhwjG ze=vS^5a+Jf!3Kd#eLpg93@0X4dB`46`ZJ?oDzxfqWUsvTm(+&GLbf4>%XDxIUWU23 z4@z1K?)G2i$33~9MAM7C+0WA=S24T9y3gHA);{WWja1ZfG<J^xl~qtoqx~C*T5BEY z63pz5KmhpybR1=MO|BikmZ{o?#1e~7@z7<U_+1-}dHDrTB2QOm1c^o)oA{`((1~Q6 zGF*MQ@LI>K>W{8TRp^%*t83D53Un_XMw269i^m%Zz4sWYodK;t_D{!wWNJd^7*x2C zK`=~x6g+iwu20jOKJ=aA5Y!2wRVM?v*VaOu?WhOW^v?u#x972o;dcpkt>iCRRsVx3 zzC@}W{=F$R&=&B3N-w5Xd7XVH?~M4n;X2#Simy5%J>y&t&x!BBdCuud?0*(jKN=H9 z?IUy8KO7Jn>r@63U@#S^(l?<T8qpZE>3Nvs${z3Ey}?f7JthOh>SWjzFH5i!%~hUE z;5CfydsRE7pR<>v<MYIjZNZZ^+2KWJh=she5G5h{fgKe|UFqdS(N%B+cJ2=%^dqfA zIB!3_p_%a$a&6vN;`&n{2(PZX;d2~HWatW3rX+?#)Oa=ID4-Sr9H<uR*)f>kL$nUG zD2O;g(x<ttnl4dN?tf@s<*NjuDU2^<!(OrfA16Kk86%9M+0vPHaZJw~ZakI@Ay5vC z`EfJr$IonRL$oZo9?~<m2V{^X6PoRJb)47V{s(Y#Yb?=xiYK_G5?Dsva~K_T2*yEl z^*bs&A^$$^F>Y_wZVMSAJoN@bLmdpXH-*ICo>>P@LZ3c}|9^@lt~td6H^fZg$+Bk8 zeq^z%su>1Vt_$Nk_+o<o9U*J-zT9o7rzFRB4`Vu^RS~nNrB-U1JsMdAFAY0?(o=ri zFYA0X{eM_jbR+P-7^W?3BEc(m#UoTQ0;BZLtU=`vGot-0MtOKMlfhtudfmUPeV6BH z|E^`jgQ>68<sKqk1~IGQ-)2qTmAl7`yG9e<&>eP$p-<}&VZ!Ku;H+&MH1;9vQqfBC zB;+U@;GoxuHL2zWCqEGDorpPq+y8!ymJkkwCN@_cnGRKZ>{Ia>!U9yt=2CC~z9OX~ z%*Zt$?>VnhUJ(l|WFITZ^;UKYF~Xd$;Qyz&2bmJUX$1k!N6X(x1VpMvNr_-=`iXJu zHD+xffZ8ys$2~U6X3vtYQ1Z*_ns^G+dpRM~xfhi@B|eFcwwzDeA4}Xwx?fy%!zmO% zr-zwI7{a}F*$Lpuu>Yg>XBzfOsvCjaR}_^$!E7<iWOliAwu7W!t;$}Ea-sc1=VdGQ zP)3(2e|>)PwqfsddoHG9Ux$!`VOC?^G#AzsDrO~laz)|;%lc8sHzx6}C$R@ng&7%* z6(Zx*gOeK3(g~r3+a3p|5H|$<Q4{X@umU(9hI82~BMrOhJA|G)y(~JnyXUoGQFK+r z(;Z1e?(Phoyqo)2T~e&t6FK=sN-;(QPMuGI;f+8@*F!Cc!nTsXXHj5y1<##g_yyI1 z&A0+!Ov&U^b5<iV{>qy6=gB{(%O3vynJc00F*W^Q$4XSpO7e_8R+n`}SA2ZUY|s1L z><;1|9`@hgJ|_EPd|j}o;ZTIC+-W6y0Y=~p#Q18@kv~v8d?9b4%g7Qx!CGKUk}xBy z^M|M;u{tg&j_`G9Jcq2Vc(5_J8k`MX*|`cJMCHSzAY$u5$JI%IikO*cQ(0BDe;F+r zQ`UYl#~gLzXW4CM!uQ$|N&W0L`Tp!(VgEZ;=Q*ev<R+|p7~DcY5<?(}qt!u~HKB0} z&yF=Yp@ogP>J13k7oUY<z>0Rr+2>+Kr3a)yEBPu|oCif?rsZrOYJ-leZ{J492#`q) z{!aj@G-msdPU!p|)S;~5>FhTF$TzCcoc3FSs3F`nXos#L&9%92%L8hfy_&?0{GqLY zM8x`xpM?2U8|bItzzg6C<C+#c4wWQ01R1Oi?Z)0o)AmR;*s1Hl(qFWl8=&AhP_^-Y zr0pR5p#yvALT`2+5=PV4A(tm}{~1VvFSY_AwGb2*R}d95JPBk8R<pMueStpm{Mhz_ z=0_QzYYTNcq7~i5uIjuWu_Ml42YEqCfZ)(|`1qp;utCD&d~H}wMTJtVJL(MX<)4-y z0$G!0*8LpGQd38SV8XSAQ$O%^;28-nv(p$)rIv9r=nOpjU>?n8o)7`JorgPGObd8L zH`d|*67*dleyV&JcAgV^f<w;(nIAr*{6tX<u>H@`PqY$&wLzfu5RaMXpW~i)kV0oS zS=o*+KwKTR&qYR>e?jjzz*w3(T&kOmh{z0qh5XOO(UX|P<LFd54zS80;<Vv^J?6eK zmOLry+~Mm$wk)JxN<yI+&V#3@(rTJPB9+Z499^E8>g{=@VjSN>Mqy)pMVPY0Zs<dR z0|YA%BHU{@UHL_PUxz@kNLYuE*~AnsA!p~wh!P6-wz9jd^@mWX?Rm<^q!Ec86mBKI z4H#!!0*DRB6Xu~zQUTgr@isVDYTEZk#xJRBe>LQ{>)T(DZ*2dt_;Hd54MbUuHbU5d za&2c=7}W>WLeeVI-DM^J$TCxK+*}WYxJZ}IvXkIr#-#!p3!a#q5B4;=vJqd10BXc6 z4jcxV(`9}SnGzp}-GD_<Xm@-H)}?fQ1>_0?5aogPpa|fQgC7#WFy@kDiHWCpvR}lL zv41C~XF#!@j3^E-R%HJsFFIJ95CSX$;G`;Z`qL7-wkr4UsMIZV*yQbZ?Mje!7~2c> z7&~#FT8y#!^_|EM^bcAc)qa8UXMvn=1(dP<H{r_I{<q2XSF#R*;hZ=kWH_g8Tp1@5 z7q0)pf|I);l%WBm&Lf(K$V|dj96<mj4Bq5y^mXt{;IAH67>=YS{F#llTj025!fi_k zS%Ci&5QU-^%Xm=l6?m+*lHWj%;nWYA3Ho#trkmiqfR;tvptw(-!p`%sSD_F3Gc*4} zKC(LhjE|zJ3$XgBeNQ;ON?0jCk+Kmel=T;6B`~zrc~CmakT`m40*JP;ITZz^W6%Q9 zCW%v@fx1CPwG4dh=>bVMqOZm=xLvyPD7ymf3#O)d8Q?=GeN@ny<{g0ASB-G@brIFu zDr6+7zJ*kOf~$WE^lv49L_CrQvXSvC>e^ot9(a~0wC(Z5JYc(dfP(unq!H;27NBS4 z6SBZXTE3tQ;y}WR;Jsf$C7d42PCeE0!Vu5ShOH9#EqjsBuJpH!6v8hyBK1*QA9#m6 zff@*+6u(UK#;+#7{0kHq`2{N#I9Rljv#HUXlN75=H~J1eN@EWF!D(%m9J?NJtP!gY zAjif;oqIY^G&>lbj$Y25Ahn_#1TkQI08~|Fc0HxoDZ3I<5~luDA}p1CSvo!jy$i?0 zTRHN{h-Xwy9CM-?1wUkUT_S=P1J)2%EvC-3AtK_tIhK3DLA*px2w=%UMz8`b)Y3Hv z`v)c<2VIyPFXCryZ+`o)E_)Mti;D$6#Og*Bj*sj-140-)U6WU3Hs%LwRFqUJc^CTt z1cjk56r5qtky^WnX5^pQMS5-lAd8^d?DS;_8V2Fefm{Hq0~aqLhvO={F2JT|Xr%$J z@xj!_n-xevmDdsnYcK=njSZN3p`QE0pIv(H4VRvSlz%RB03AX-7f^bxRrDO?)8El^ z3*36{jl=a^Gial|py$qX>p2ieoT@=AAjFvpIq!v_%FYO;&i2XVlX#a3VgN%9B?sz) zJ+BT4jYCpM10@OIYOg#h2xKErcrSAF^<;QQ3;m$WLbukRM8-q(J`TFz_BDpK-F|BJ zztCLTx%eE63L8AVAphD*Dm(l}ZHL3vg>me2nZ*betnF}mAh}FYYQZ*yIY=t40X-cY zBfPIX9g$;E-VFMMtHb_B+fT@H2fFr8h#lT%B|WHei5+euARc&$n(#!-V@Vdl#I;!I zaS=H>0G<ObeB&;}@}s>HNzYD?2*ZMZ0KGlZN{&H-FnB$dXo5C83Qq-j=c-@!F{YzI zr1hZfjPhkpc!DL4;u?&q+=hJr*|y&crzRJX!9?X6&(u*0mtqKbq>^+Mq02eK=!36{ z0rI{MY2q>hIIRM!m-E<=F&DuI$ese}5Kb@j=6-^QWARX;e?|4eg&(0m1X@=#GSp+i zlLMaJ1;j#Yf|W)`ogI07$>mvJ%4=k5U}|JK?x>NK2L6?3U}|KlU~1$(rdxd<^Tc}e z{qZf~UM@kzw<D=rwf5aW2)I&fUsxmL_a)TNO8bIgAr3|H;ws8_y|05`fwOPI6)`x` z`O(x*2n6az(}0}~#}o3IjYCA_$$8b1d3D;e{h5a!ReJbc`S60M|J8yXZlOs#0^KLm z5K0d(usX|u(tJ01QOpGDL0L2t<T@F{g5bw#Wm**np?bi5p>aqUP0jZnu8^Z(KrU4t zEv(o>M%d|MMZ*Z<@(X*O2&X3a*kOj{TH8;~(*73$1Ich)JUjnV#iovopQib78pg$F zoJ`GR{tCBkvRfu&;yoDNO#>b$1080B%=&(Ob<!gcej9dcBz08S|5*FzEDvkfdN?dP z9DMl|z%cQHSg85&F;o=H(?_UrJNGKSY{fD^ug6OM1Z^R2a$cHZZggne*Xv<TO-YZq zQ5X}U?X2W->SE^@#g|v%A+{m4QApuVYJG&*OeKBPlTJ^O?*EHu=?=WWi2<+1#}?~p zx?sc+ZZvh&Io+kHTd1iQWZ#oK+<IEr{fxc>yJydHlS-?b<JI(|a6GU;(_c6q<F@EO z%<%U^>_pR7cym7m!{1Hm<kHXoEc;-_u1{_s5U>B}ulpbUK&Nl{Uw-$Ge%AeuexTF; z|5d*ggVe8f5cnqrH-6HDe<#}4D4kDftS>L%G6RQel}<xgy}ozDU>3_yln3sZu2q5L zp0|W8(y+1mN?3=!|C$T7QQu$eg55R%j1$BBHK~il2<X%IF<vFc6yhf_##HTfh@CWf zq!%Hk7`v$kuRqjjPt|D?<#QxvmW^l5|MGV;{}kdnAy!nnvUz0P`XPw3rQ=V9Mh4mj zj4{PC)7i#(IxmZP;pfBu6&iLW0aDKp>ltAzEE5Wg={D(fKjHPl#L)GXUmh7qSKM5_ zc1Zb0h(l$gj5@s9snac$bZdvED=#0}k{Gsr2&1J{oM=L`l?9OY9i0~2&!lZPmm~gF znz6OkS0aAaTDC1Q6wRvmjYlF?1>F&{px5zPV>$ldH$~@h3-fTt=aQIW68CEI$d-!F zdrY(~cXTd%&wenmzK&srz(t}wD*ZtE+oa23nd;poBWo8+H_Er&`u*AY_e<ql;{6%@ z?r6TlkFb3jrneXhtWuVYVrP-0Qt4_m%<PwEUCz+3xlAW9wIUKz%SMUptB8L8WA%Q> z+REtqigfwpk%97w5|RyYwl}WRoyK&C*=6Xi7LObBJDx;SHh*Mb?GW}kJDgG7CLO`= z@6c&h;9lXRd>I?fI`-*zU*$VH!Khzr%gZMUPWbIU{r+;kN7>VmD+9YV;?bOiEF&|} z{LSUfqzllzrVI3GVrcn{k#%6FLdZ0sKf96{g0_YJ7%45fen`6VqLD2UuJ6mH{lrsT zr+tebT$rv%4E-t_y1w$}^77?KNWQ7Xs~_leOC?<b_`GOjfEZnhL=%sYG~GJQrhJ;| zD$Qb*5qaZfo#v-ZBlLxSE5C5KP?3E^3vPg*<|8Nzy+fEt?<o$Ati1-9tHpDjhI2S< z`o4aB`Sqq<#C=4k5!vISk15E5w6{pVKa+Xj=fnRF4eQF|ZT867#GIh*GGu?@5v2Xw zbUJz+DUSx}8wj~N#jP_(dYea9MUDVNyV;lZd`IWSSSX7A*gaE_v`Tn;)KI=CEBg)W zB(e{5a2Rig880w260!HbF$i<B&9il0q&@x!i))y!hS1MV8ukq)D#$~~j`9Wh*nk%v zA#{3&PFtqym!|AlUxD6QOZk-;!ia+Z0Zae_sfrdL5+LY>_}-_#{UOV_aQ%>5%0YW1 zS7N-p6?m9<1k=?FV*=>Ae7``RntoY{WFS)ZOF*aVF2<GUi6-g^k%JOjF+6g1`Ftn} zNY|1mg-u5YUe@cpj+Bx?Pq>;`5zEN8(ia6eThK!jb?in@#i@)hcz6ku!BSGjzLGN7 zhRQ1Z!S8L#94TY+0R63HdAFy0_kh~YKB5kvx9GfV*7w4-LleU;AKB+Ih%0Xv1mhLy zV5LrL=%5y`4H`BN_hmB}w{Qyh84~QF9SAY0zPm%GF?h0(bf<=W`(yE>+tBAJfAwS9 zFshn`LvBbL62sD!b4Kp=++4xvkGGVU&p;c32A=_)*0h1NGeg4$YlCF|{}zMspAvNO zlf+!qXq8wBjG4!N<IljUcL}d05I@73VcZj5FHqHQyq&M%0Y2b2R$a=L<I40)^s})C zZ_@BS4L3I7ziGJeC+-dWcN)Hd{D@zZx|Hq2mHF@1@R)|vQ$=`-whK<x@Vy$|q2Xc& z0#=Rhnchp<z|YupjM+kXt%hHzUYDJz;YP2E9fx=4Yj{8tj@WI0w`zE|Mx@wifG;%p zXvB-%1vu?UX_uxsv7rFJNyANS7aK7CzN_Ia3<!ar*iE?p!sM^vN6T9r;-lfWYq+tS z9@p^Q8g6W-0~$V?41%ArpFRaVvYs0>e6D(3cAAEpU`{{QaGnsy^tX>tfYUU5x`yx8 zaIur{?g|aB)g2<X5#UQTe3OQYT?BZih8uzwdkFCFYxrzU=wb^2{tFG?t>I$l0Dh;2 zdo|*h0>&Q?JCycn_$GmtmHo}+Lt_KKv(%+*1n7q8YmZd`u`_Ucs)p~@a6`9W)bN($ zRC;4mT&UrjsOa$%J%{VpG(2#kfR$du?P3jIa*~2~qyNnBACGxyq@c+`T?db;sfoEb zIbwonVs^n-qn;Y|E@)X<dJy>c27&*45cuXn;M)d)KRO6}*C6mL;76l>y_&J!GOef_ zxLqR$fu8_4^QqVL^HZJAS%aiMe-QXZgTSxQ`FCi#61x;-ECrk~I6E|b)ai29YPg{r z1OJ}RC!h^Kv0L%YFEzaE(<+0{>U{3e@Oljw+Y|4e)bQQMtAxgm++*@NLBS2>eWc-D z4gZGD|5zj--Zp7CZsm8HhS%4sXJb<|0xmI1b-I9hT^7~p13JCfWq5Z5-~-WTd=U8B zLEzuf`FEeH3N-bh{m=SrQed$?d3&Eu->1`y4F~vN4O|OOvBv=4ui>>C@pzQq@S&Qn zG<=?hpRD1VG~CqZ3xKme=4bTFRGt2IonGuQB$}(?Em}~CZ3XxZ8XnMs(B$|{lU~D3 zeSQWw%bl$YZq(Op8gBZvUc(VobndLSg<qdP>)OTh=Feh;&pAuy&tm-3g^bcVS8j`5 z3Uux@bCxLR^7#v|To5k-E}btyOI_Jq>CRtLFBFLD^R`mJ6?57U6E!yHnuUw5GgXsM zi(V|eb|FKWPMj58+8$Zh7N2#o6kY;SaZgJVO`pGL{@nP&#SAYycUGZMv8D4F=F|;h zP+E5>Q_b_7Yv){vc%~Q6zY>MdUpkR7m(;hsL%>s_*9Fi)bmz{xQo=Ktpt>ka(o1uS z5ug8}&{26%q0YMRq@;z{piZ;m*DXO;E?s=hti_Aw&6+pAZSI*1+m_Bb^DJq|<f-iO znb)=n4kihf)%!1~Jfu7Fm{8qCEU<E_2Z}n?O*E=27cHKnXh^qofTra^g{HaNq4LSs zK|L1NL6Zl|nsvp(IOx(<LHA3E^n3U_i6*?b{aQuBh}pY{QF<3IzPf#hFot|lsGW&3 z?B<#R1!`KDw5Yvp!Bq97V9~UR1SAA93*<xmBTXTwufA8YdiBH7`RWm|eM5_{oj+?5 zI1}Bc9;TDB%)?|xGA=`i-?>Y!BQOZUUN$E_f0j-K+Sk>KNbAhU5n@h#jIS6t*gTYe zVai6`O{TM^BYn%l74sJfq>Tj=G;zV4r6x@w8+<58p<F;DWbo?TMRVHP3Mh8Lgx7S1 z*>dDu$mrtvd4A5bA0-ZJ7!FBNP2Ef9$BMpGZ8vBv<f!3-6cV^}8(1d3bTP4sZi~)Y zlJ7dHv9O+ETGfo=WGY8|D>xN|gb@OI1tCiA2$o2&E~Kf)iL=7w;NtQW&nea}E!LGh zUv5z*3OZfLTiPRE6o~OKm@Av<O$*}#RizF5rlnQ^0foc^=5Sa&n7*VME|AWnAabNk zqZ0DO<3>%<%ki))`NOb6#&RaM@jBQ+{1N^I{5SCJE;z@227ZTDyruc@#3ueq^Dzzp z!q35flh0gj(wD;jOPlni`J6kPxvTu$`OMaEUbG1&>8^F9KNk>FZkHZcGJo0x241hn ziG;h``^S+0;8zNN$_4l1y~*blJ$_{RFS_8<wb4iTc`o>^F1Q>2UuV!o{7TFHk{%}# zJ|6!~xp5bKf(w4P3+_&DVyZG9cls0cc!BUQx$=3(1wY>f59{$J)4SnoTyUO4Ve0uU z7u=19+g$K~EB&1=xEr63x!^%pdXFBDus-heeJ;4Wf6w_865_}76Y<~Fb6yEtvqRap zO5mDo%I+zFYjl-8SOV9>?XthP;2~GJua>|~x$l<1O}Q0%pu_qzA5-p8C2&*j%`Ui` z-U50&W%$U9Q7+ZvAm;C;pK;nhK=>5=H+Va$77zH9!q2W1u(+9`>Q??9eTsTudN=)C z?1E3jJCpwlF1S1WJ1%&OE4@dLcbLCBpLH(yMXvPUalzf`f8v6>)8D7z#M^ZIH^1vY ztL|9t4E#6s|FMQM{g+h|`TKo6eqs8r;J-;fjsX04arf5=6#_mC{yk=lAJcyk|4lw` zy5ycapT0rl&z?c(#N(m|H~vp{wfACIxj|RET3vA5%8xRe|Bb&)s|A4(-Y2OFV`h`y z_@{I=^XZKruvUL(($CiItS^BZKVV}Ce7Dv^0T=voeb37R7o24n|MHR&xbZLFR07|v z8FfPm-1rAKmB5YP^R^PWDev|YctAhjSpqls=`MjAe`{X}+~8+d3Ebdkw+lW?-}AyH z-~1W;8~k`n;08Z+rSN0a_kj|)@tfPFaFx8Qr37yL(e#(|#|!`0^8vrvC2-@fUs3`W z!G-i@J%-80%tO(S&YyvM)uWs_<c1sn@}`pX#?QX91a6!~eI;<?&)ro5H~!z<CGZVe zF4XFJQ9kG-0y(<`Zt8EBz-#sMWhHQf&m|@BfPPMvz)iYaOW=L_`Bx?IdR^J>68HuU zf1(6#+HV?Z+H2--N@M4DFadrGbbcnip@)?va6^aOO~{`~Z{}|vDuD;I-F&bFZsu<$ z=<@UVRH=MRW8oXV`*BHnL!bARzztpPE`b|*c&7w@yQY&WmwsWDcWe0Q61bVasV{*W zdD2n>H*(CxY-jPz-^itnCF#xl&7CE1BbS~ifgApMrvz^J$g2%1Q?AhqkrMcBufqR| z61efpZz_drd39e2e1nF&&)#8sjbDD0Ydj@*)_UQL61bV~X(@pleqT}oH}WA_0yqBp zUzNa(|NUSI-1y&XT;n^bzqS|WmB5YveMJde4&6h$*O$PJ|6LZP<Gtw@<9~mrB)yrh z8m-qSnDoXT2$jIieAR{$xbfrvxC9=kMJ4cirvz^N>{XgCO}WOOKBE+Vn#!l61aAE4 z8%yBz+J3sT1aAE450$`;-@L{(US_`-zj>$xZv5u0CGZw)pQ+mZ@Bh}~Q<ks0E1yw7 z-`!DCj%KfXI+~Saoj@L<Zgx&p*9|&jj(b>+Mu)7EV+x|1aLx7v$?u(#at&Owsd*gq zjEhhDJ$(!;pL9|5qp^)&hA&;eTGu^q8}NUi_P5Sd35~pD`^loE?WZlyBI@zq{mW>@ zu7_*+SEf4VIvH=weLfLxhMePmD%_W*r9D7cY5S}6_bW8rnH)_0&GV(W8L0hztty3) zKWsm<GT+yz*O==$yzlv{gNVT|rY`xvrS%`E?o6D~-%Fu*=DZfWw6uKIsg(8rD$5YD z`0XxXjMDP2T(NA<qJ{H5@fj88oYQbFj<3M)lb=!1{kW<N{|4kXP-a0PTU|pDM&Cc| zPHcDRx4yg8nz*%ik6;S#vFUm6_f1}_Yh-M^UAgRtm}6J!SWaz~co-VnphCVC_FTyh zMAse%ZlRLztCm&7oGRo~E}xb&j8F(`XS%TJ?qDH?&%LaBmVeaVF>a*EAYK`FOzz@# zsNE7}G3@N*1}Ox#`7^gpq6yB!*qV#r;E4R6>beu(XPC*CZpI(%NE#8p9GkvR;l@$y zSVCY02`tC3HP}3fjp`DyM)uM(zApC6BR0MYsl`}{*mS~U3VN^u1p8z%4UeHHY{Zlj za=(;zU^Df9s=fFUbCl6W89k31Q9nRX%oaO6xjcRrPL6Lw;Jot+@x!gn$5@*uVuJ~S z?jWvmbze;On{hv10s-}~XJ|NLO;qK!>peRKJV?x8bH)LiO-!NC6(|&OL+##5A2Gmf zTSCyh5y{LOVXa7daXBAqO}aX{L9he>McDAB(Yy_)x2v$P{-?N&_%loASeq+C*5<jM zp50Z!>ic5B#D`VOFKf2CUY?rry)0pcWFHYC(euoRNX0dR_}RqylJMAP*=+3Dxu%AF zf;~!$d<)R*748_s*xp#cR_+#Vca&!qA|0ShYX8^#E7dP+)m}2hflmdhvQtU^V*+Kp zO|{aD-X_)9-X>{i_Q%+p!}q!8xFxSZ&y3L$b`CL0+q)8T2NA9$sB{xfia_VSh1{`2 zb;M*V`5rR1{SR1c`gnsKQa8VYo2YXDac6Sp>Hf1ePd|hX@7H~eV8B+_hYaZKyb?sX zd2B=PpIL{<H&uW?VUKUAUG-&bd<>^&l}DURe4*{%wRCjY|Ln5Q;v@o4^zGIbSAMzQ zfL`4ALdxY&5`@TQh#s<R_!d%t;0FQBB4gjSov$I{4v*2uhdx()hbmwXV4y0OHqY*S zSwS{j_AqKZ&qVr*tFrF{kquAheyZC$-Re3iJ^Fg9>uI~<%ZLO2n4O+j9v^G_w~`V3 zg|5|%@Kr%fK_1A~%ZsZDu}TxY0U#bBy&gvp4F4hKGQN<D36jOYmmO#->V*DZQk8qc zJm+^_>zK9&5zCQ1iXG9JAAv}EC)Ub$y%U8%xMwtgTopUud;{kVJB8?tAk``r>=D?@ z#^8!mc=~6zcP0eKP!qt66bD%nzj#nNk{2PMvvSZ`g#qAUdL;lu44@L-j&olMcv5oa zCqn)O`X{w}SHIE^Kfl#=e0)qe<=3<{O0cf>DH3C{OA#S=u-7|`P3(~R0igb0YOQ-8 zJn$FK{hmJ016EhJ^At8Zzd6R)>3P2=Gv?9vJv$Nj`l7(28LO+$_CIMwci=hLgvv=^ zeC!|nzm=!|?EXSmy-k!suUTC??eX8Z6{u<Zbj-hI6K{sa9Jwj9Pb&ikK2Y(0tS&_R z!$a;t$|LrFWpV$nKup*H^hgDI7;?C#=S6RIAMPvUZ@KihY+@d;zyDCu-&R+7462TS ztUFNQvgvkubSH1vsBr3{6{}zRu)hLqb+qky)b>1Rt@#CC;vP}**8Mx~p%Ol(CeBtI z9Z=SP0nYKk-*^kQoSunnt3CtPyTBgbRJ#)NV@T{%TWES6Mq=jmX~d!=`Knk9#251d znMri;v0EW;Zn)jxx&wLPy?>xgvy-%bAihVG;M+>B#h3pZoP*)Obkm2px@DMj%TUuT zRY-#W)2m%cj*uk7O%hrHic?`PX?q}ht*-Asn|=%Sh1e5fY>B0X{)b*VKAc*(BJ4a9 zvhK}=dyHggw(fl=er%!Nh8F~~)z$1pjJuU1<ggPMH{gu!pnv<yVK@~f=6ns-m|L3C z1b~SU_tm1&b&L@+F#jVM3+$=$2I`X%dy2$RWKtP@rsUl{CG`K##wYSaI3Z7Z!q@E- zteh4QXTR;i5noV*Q_ADDFc{j76m;1-x^l51<R>^sDIcRJl7is@kr4KGFKg?#puhdv zjvGDw?F%|?Ebni>qT|Mj{`SkPE*OAsBaXxu!v~(uoh<sfqp`pJ^o|usdUD4KBs~Ff z_nJCZ)*wBC{a#oVNe3#q1>E1W{0Vz3l%hx3=MhA9R*wpAuybE3wvWQj-z2=`LB`F3 zJuX(#!_*sf&=@fUK|P&%3;hLa$x411qey6fYt3sICgC`NPvQS84{7~z#GPs{i!~#T z!DkWQ0Gs4t^E_ZBzkn|y{uiw^`|yRe*$abn2~L~Yjc<b0PpXtdt>h_47WKbit!a>C zV5$}mQkElm%aEQIs;VEbHro|FuT)k44d6=L1gqad^{iwaK9FLsia{J%F@%X5j%P$2 z{Iy7oM(H02=o$no@J5_UUnnoF@5Hxd5Z5&g`>o$@L$CqFBgA_O@EA_QyEulJ@=?Se z!^^RKu^>Pf<i5h#e^%F_M8C(nc{wuJ!b~Km4W91A4i6Bqv)OZh(Er|zvto%u-u7%@ zvxOXxWBfPa6izV{Ywl>Rfh&E=qC>&3z*k`t;}9rOMu<}PAsi(Y9gBcvvuW$qxoy1- zi8nmCpP)X-RZ}5G32b6MONpnD{iU{#O}c@xA?+pthzMdOZ&#b|7+^^9r&L#m+R$(S z&sR#2FmIL-Dhu@f$-jFM--Q|E97gE(UH3gD`Jsa@tjazHXv2QNxkS@8F|=Zd{(i`n z)Y0HmobBNMdhIF%B|krPsTb$iEIS@lT_ZL$nxWJ+0}=qMHF`WNIl9I#R@eDFfg*h| zqJZqk{l^BzK*p%`DLc_!SqOzpZh>)(@dSou46caO`&6h0n^7#SHQZ|;W<i8##drV# z5HOG+buU$;uN~IrCRlkFS72m>@DZaxq;FzaR=qWbzB&$JRx-8F86d5B@`TTuJ@0Vz zk*NYahIl{6!G`0(Pn$rE9GTVR>Nh|&6~-$;&}Ix(tc^JDGhS~kiU{^!S{G~fzZ0Ly za&g=Q&fP+wvP}FOj#X-dsY`1S>Hf~*amr>0lO#%^KE6QcPRK3y=mvy)kYR_36^r`D zQD0!WCJ0(Z8T+TEXDlg?j01;787duNk6aX8lwbA%MqDTw2TB0$qVZkW=~I%6<2z{n z$E7b2BJxc70TA~Ofsk+lq3=ux30%&=_-WV&7%X;0@RIeiD<;;&67L~CF-Rd^4e?=h zwxhd<(lZgTgSH97lt6AztYQ{$7c~GyV1#g@w=#D%?G{MEOAq1CWHmBmS9{S|xEY=c zIj;)RGmK^x3yqKahBBb(_`}C^=w#h3uOjF!Gw+{X7xORjof!+kTQYRn9E>FyA_K&e ziH9QogG)cpGCyp#HZT7uHKkUD@jK9f<RZ`nj;3+fDSIVgMWe0UR*W}ctzww?du=aj zv>+rN0<(d1aZcQ~(S9PT3OdN@q%kRa=tkT56VD7i@O<vm1%9WVIu78Dm5tC<7cmfi z*a08*E!|^}Lmq-i#6yZ8Xc9u7USHb(2I<$8)-`(#X<<VInK7T-W@xhCAqFpE>Z1SU zpq0Y--e!o<^V$Cs^8F8IAv<pZ`~N-mKkiwZnn=Ye^#8%3?0SSnd0uz@`RMu!$+hX` zs)nceDVCK<uZx`u9WG(YDiJFNtiGNp$5;BSH5cO!oiYr4awXzkzJcpv84-AulZ72t zF1Opky&q*R1ThM^ke3-2#}5EB%`<Ian}J6D;MUjM#<|{&EO-S9(D-sh`)zh!4?5e! z7=pU%x{n<yb=`tH)aO#3LNs|u$jOP#$^wL9mwsUbPov5r)@o?%n?jlpt2h(U>iR&; zKe(Cb`(RXAxILuOkHiq1d?b#=o8TjgN5&9u_k3&JL)1S+xtyt)j-v1Jyf5=Q&i;xz z2O|~DH4*eHz&OewQ548r^S|4Fk^R1?GqI<O;3|5$z?J_ad!?iV0qf@qEiBo+ON7XZ zGAJjN4J2O%7cRDQwvXiD5->kStMal%(G1#thKtH>(^N(Qb1d$aF9HGv!L^$k5P1hQ z&cg!i6bWn|gAsLG$rw}mcUx<k6_JH}@1y4y`91)V#eE;8+9(04L06kYz7Mr9*l%?n zP~AMkM+p`36+{%hREY8YoRUx763P;C8Dz<jVz=Wt7V>{Ih_u41ciS+gFoNtzHyLVR zyv{+m@plo+wb?nK<YZTWFwqOfP@;|kjzzr6Fym}6o*?h6b?he+3}o~%3|)&LXj2eq zeqZJ;2_OjJOSw&10ELU2Vl|T2PmqDd&CXVm0P^;DkvufVI|}`XT+H%RH6xRj3c0wv zRoU|twG`1y(0M9&NhH0zlGgOYAe)G@T?VA9UvEUOK_Q;B!&5O29s3!2sB9;R^8}z# zFwBYjYNn=rW8im%c?>-+y}i#`lf(_ine+i+Z2kpn^As@|92lh4-R;1T%3_}V1(hcv zDdG!+1!I9O<qA6y&fzo<zI_AK5ppVh)jLC;Zma8HW*bR14cp+4wNfk4pPaVR(EYak z%MhqAm=2&ry2I(vQ1l+~&nVl<>a`!=ecO@ovnhNE#y|v$&Ko~F44cC==(or@;@`J) zDadeYf5&?j%et-2J?Qa+ZOc1CBWgYJP5VQ_I#K7X@Yuh?jt31oUMqPVu@7(F$q@Xb z^Zg5!s#sRtaRCBS1aAV1gR~G0oLRQNoP9}nzXPR$|J`-VUQg<hSY-x&(+FiUTboDt z)VXu|y_Opx>HMNh79#sFPWPdIdIs*r1}Yhk!d^^Iqcx~(6glVl379E~*B6Mr2qVl& zURj9>B9!u)(=bg1+%%VgpI3QscMYt;&Fw>Q_qAcd&%Jz2^&wo|T&b9xz@Y?gi!rDp z0v6wm(G-Jip%ff5#2A4xD0lwU-$!ukT?#2Uk;3YF(CU)oeK3fO_#!wm+;<_qvaQfo zh=(U5W8Z`UT2Ey<m4jbcrZ8^m`}<;uY~FbW$_Xak^n`9&=?lvs>_m>qI$uXiz>^D# zs1JMvdpF_>TV0EM5tv6iqMi&I_+G@bT?vKE#Pp~Oa5i1U1K$q<ME{=IV6?d|j+^k@ zKSi9a%{UAsT{%4H{56Erx&7Oheg+1*wYd=%xyRWSXgp*!9T@v~u<<W#aLR9GQY317 zIx==^Ah|!}JRWr3#&L)=sv}mC$1JF!A~)Ry(J-4r2Mv8X;>k%}ohN(V7z3{D^Sm`R zJ>i%~-%npfb@_N=E6&mTGwOB=*Eyjv-66(*MeNsxy*P*j!=p3keQAW;s%&<ijW`EG z;F`0o<Yu5gPro=C%39Y2h;|!To7*@hFpgiiUY5^5)=;8nubkra!fL8_-gge-aKHnI zI*H-#xeN@>wkHk_x7MbS6XVw@+tONl9mul4lG&^9sO)Jb!l?~;8<dVZp<jsMP~%=} z-33UBX0Z0Cy45)ym<mG-klI=4wLA?m277;kPY*oJcu*pZX3xND$cKL4cH~@WFI5Yu z3=tsXz6(KKPenX$MxEW6`*56H_HG!++72BwU!D&u<K02Zy$7y*{az3HPLcZEgzB*a z)ERxMlR=6Ii3*sUws_#9P`b50dlqq&*AMgnVo)^XCWIP}VoZgQhwwN&g*4I)uT-HY zLe)E>&I{}hjBX;xua+o4$ItM!Sep+9`ybE#6dzby26HB&05y4N-%82alKTz<9JW9; zJeW(d0t34s3t#aYIX?uWG$fWu0=yks4KnAeiR=r^ALL$wy|3oe(i{SbzZH1Qcm81< zE5s!Dix77qVo}J1&7>y>&)IoEIT$1amPQo%E<71R$p$#F;<l&YpQSj2eX$Qp@ohbB zMnqlz&NiI2qGnbL&U6_vQ!OEi-*Y@irMGDT=?T|XxjIcPy-jwN0?j5U<A9WuIY9rT zYH#jGnyzqW6J)U*Eb}4HyTOTEBXvb!V&P!r3TjS&UmL<_x`jRD2>9hSySG`F-z??# zHrv20gd!@}+=91K1x7=yU@cP3Em3C=r%kP{mP+7g$#A%+;$P>H4C&FMqMlbG{<oI~ zatrhF0J>eq>oAk6==9o2|EIsHcGVz*0mO7)HV%DV4g((p5gdQy-?r?o;=1R4QK0AO z*gY~|n{b^#O*%04G0u-G)_eQN4u$W7K-xaWAAUz;Z@AbtYOdT$euNGf6noDPfIaCs zPM^B5_ey3vOi!x|jyP(H@~~%n*z>II*+ztNUMhz9rsQgrg>yQ9AVdJ4Se`qd?J)Qg z+`%~LkDn47-yB#v6n~qR4T40RiW5IqArZst3=ZZ368}(wM0nX;<BHrf8czu``KtV_ z29MeO<al*P&OWYtI0#a&6O|9zhjUkqg81x@rF%v4^yF~9vKB<&f;N-*i<kfmAVk>P zG+SQ7N0?0>Q2cG^|GS$0i~R984B*Qx&bzVId-^ZHv{eksbeh$LiN~(Jwg*nH8DlFk zl#kEl@Exej*8>HZ`6Wym$P1+dq?Rn6^$>iS`5MNXh1bFuSzQ&8)ClMj0CQ<2hp>hM zeu#~S*-w!)hNl?dKSHjRLvzH%gMkNP_i{oN`Y09I1-IaWT9#5{CD(z6BmO7bK815n zwD5vECc{e6{pO{G1=+RA6HQO5!p-~&L=}c<p)4#KSP_^9ID51Ual2s%3;e#!rX1td z;(2m<<>`2{Kk9jzX@aX?KGg5QJlEFDDkKRb^0ySjs!dBzI3<!E(TV|LD@Go?faIg; zAVzmRl~MouR$>pU<vgDIlA>SbuS33m8H@+4%}-gI_r?4Ntw~S9EqoN-G!jV2#3vC8 z9YF80$%=eYtAp`zB;U=2wxh=M)*1wej~lSuw?$84hzY#o0HF@zCp`8|xC=h8AI(7O zmf;NJnOHG1smAGpxr1dA0UT`vKUn2XQS!D^7jb4ooZH?Y5BEaPm)d(cZi4go;=O_4 z{@dWCJdLQ|?XknjUa3#fTmOBOA4)Ir1Tl}C;KCo&53>pJWg#rnNG}RhG(3&NZZ5Wa z_Edy>UasJIHJG_XDBrDZBN3aw%&o_^;WXG>+>ayQP~A~A5zlTrg#$@wts|f_W<TMI zpSZlIt=IOvMe@EE_~R$-4=cV7ralF)zp2fdb_)3fr}0YHS)hL3<cXi_vvgT)pk<FK zGK8%EV9fGUBmgzagbh9{mYC4mAOAdZ!OVDG-VdVk3hRYZ=kW`nVl_)D43f7`v;pUp zvA3|Ds=pkw4tb@|oD$w)-C8+w<*Y<paZor`0&#K%i;v(xgW~}>7?J%65MPk@R@e59 z3H14)H<Ewj-_2*sqk*O;oNF~70734D`{$iym%@Ro>lBen-voaGtOl44u#3cg2mw?V zy6G}sy>KM>54ZSBs2CLZi?qB2r_vokI|X(rs}~s$liEr?ikc{mXC=d;v3FT(IE;q% z^NzLo>UWXH+ynUY)r0sm{XP7d_&)wj`2hdv83FL4>g|B;SImvOL$Sn1SE81aaNm#X zWNYmq2=RP_thLM0!-F)6^(!=tHC5t9sw<6Pb5H|f!L(Af7_GND>A2z$&7P7DT~pTc z0+#^<dtRyuayh`G&DD<wQBTa}uVoICo2wseuHIJN!-q+DQQd>VSbRFyZ+YU?I8ixX ziAk_2_PEP@HcmUFccj%ty2AG^zkPNGmAsbM;=j+&7ujRq=4oQE16}D64f*NZ&m_IG zFZP-K3kvHEs9$zd-({$moq0TYL@7T6=U&*7cm;>*jmF5f>zXp~@>r|$m*~l`|C#0I zM?8DLf6LGP`1J?)a%QDkY(T%o1Js{ikouWb1z##CDz#Dohbv%_AWlF978<o?!YI2d zI^6RBk3skME$?yhqtSBo$Q8bG>AL~fANbLKq*H0X^R~1+){`44OCKd7Jg|^>2{imV z{G_X2-Zv&jgYDs<b?f%nfgNSF@gdF0z3l-Ep4HtY7?!>qUqT~9^AlV~SY${`K#2oZ z5c6&{42;U<c+BA84??Lzg}I-*+LzDo-wO#?R{KV&f4+?3>`nW{p8;cB`!hJ_qE3zE z35|4VSjp-kv;pDGSb{OT?oAGBLCIJoA!{RK8n>@{hwc1<>ubPpl^o-MG1`XW&-KIc zXYNR~q$0>EUkvc455r*#Rl%N@)l+q_8Z%}SF>cD|s@7c`8LaNbixI9DR&^g%H`@9D zuyqG1^HQA~P%<U+5wgVb4NPbB_W|4iuy{wX=8=RfUXd1hMQj}60j;lnBOKnf+GF7# z9|aHX`~7{8M^>i~d0SnbY!z(NnA5olcNj;vp9CkE)p-p)J;iPj#dk1tCF#`ki19c~ zCsKi<GvHG=NViB+delA01xCU?ag98{l9El#imnlcrJ9%?frB6(XvSJ$c%o0ko4NPX z^%3^(So%4*786_HJp4LF7EAkq#Ogzk)o+EYrYGqu3;Mg;p3{lj9*>NDfDRG(+-CSr zqmroOpB5`Q0Tj+QB>gBa)w~4GkW;O$?`%TFqBsBo6>dc+`0N-DhAa`^X^$Sn3@Mx; z)^B_4TO*!>sEM`aBvM4zV^~m0KB<RIAwnD?9c9#FRusMlOs2d^L9W;T;XuQ63`hr; z%P{<(hAG6&)5`H@a)k&!ATB#G9r|1u#?F|ps#^wkXr9Dtg;%M1YN&dY1q9kMq8J{5 z*Kiu9@}_W}^B?*cNHBhv?Z85zTx)F&1Zsi3N_w1pMmhq@><iNqz7Xr}Bo=X^N^>nQ zYMfaox4q5va`ily>3Lj6lr?OoZ6$sNM+m(IcJ_zj5=k<hR6+_CQ&_lPOtowqM&h)W z%&4~XeNMeE_16I9Sgexhr2`}oN&WC9lmQn={PPNPIDCN~kml+hmQoKNNG&Am-)JQ_ zhMg>VB;fSI0}{mISj>IS^POg``v66u-%WRS5?N;41k=@8>jl8{zp1Y@CA(jm8X`Gt znM^m_rTMj4e8A!?UWTH=Zih-B+a%%{--Vs$;adrmW$Oh(vid~%0MUW$hlP4^ZdJ{i z!AeJQ+Sd}u?vgaj_tMJTbH@LW&A}a@<ZH2=TH+xs^bZ(9d0H@Fsmb<A@1Xwq{-ZAo zvt@ar2F9Tb@R;4l`9m{5Pgi=2kqP*uE*nHv1^dq6J^SC{5aN2pX(NjKGaR(y5S~x! zpIJk(%Aei4rbBK>&`m3Po0e25C`pLF%<Y(lrRpj^16cf1xm$Gqi@yOUs3<)HZ_Q|z z+vxB38{n-GA<x2a+rcY-z0FH1aZx^-6?kDP1c9F!%{rxKuAt=}NnL@)cgL>}d+rOT zFB?)8^}G&O!Qc1SU>W4#{+efuzvg93@?bph@%|d%M=y^k_Ai*TgY*5T{S927BD$GA znkRs-;n2_TY99@|(n^knG!-9B-p4Aur950vgU^S1lRndnyzc<E_`@th7$meJ2o)op ziHS<SH~1r&dC{-C;CqOq&i3(aR!LmTufup-XKqBOMX++a0tz<ldCvAc%cW0Vl<{`^ z#N2gx`h_O{khVHztY8-$qB?Xbc2Q=1s8@Aw#B(6?qenp6&Er>j+b|ojtx_*!!O_jz zmUR_3mey;BR3=p^E^VyQQ~n*H$NV4<_LO=rOHn94-Rl{NPvMokKj-85<Zyq^3f2Lf zV$khk8ZZn*R6igFzvPwd^_Zs<Ij;Gn#9sost-^jCd%RtHW5wIsAb-v)3=Q$!>R0xS z!2+`?Gd`q$rV4e)+r?^p9_B&sIHyy_jn2c<L(Vo@u2|Ja4@>+D`Thx~Ms4NngMWLh z7pBkhHygSIkI(|6Cc`r^YLa@p{0%3QZuk6=?Tw~=lkP%dboK!x!TM296<icJ(TT5P z!SMjm&mzm2)^P6{=YqIUIXx5SFI7&$SQS3Mqp>0p6es0Pw7N!o9;OUVuAwdtrze%; zoVDC2nF4~t&~G2Ik~iW_(AgDCw|X$re_2*t$XuhC33jSc9MAcRgwovDg8?Y(5yfx= zdK=|b4vmc~pOPB&i<na$o0ypJ`Lg&BtQ_G~=l1fbe~;C<nEh5vNJbv}pN*%3iSBY_ z$2B*Q=aAc`_<YGMFn2qaT?84Mwk+qc8YbC!#pq&M!B&>D66htEsXWD%f}aYZHHP&G zvUY=WUgcED-WXEA)WTTwkFdz#3+w8|L3PZxKJz~9io|`kmN%gHKAOS1#2GeE?cd7a z5IU|Z#^4U8lS`Q>u2st9Z2wb1=MmU>R@eQQ5s5kvg;T99;z^6*=y3;&6M3Sxq>ee` zU}|1pjz4Xv(bXV>xfotd)E-ZaMxfQ^>46v*7B_OuPC!>M0Au=fn;E%ViMB~o|41<( zNwu_q7>}0LhG7Q_cGzN^WQImZfRsiiho1^|E-66fI=z{{K~YLMV6nWv1?9EUxwpWD z)qHtFQ63Iuf{Pj$Mvid$m-7Z3*`m;$FFfizio*F4>zHTYAWT(m%TV56>IjFACAx>R zN5oSTkZ#LduBz1P@*n*lwjUP3VeQxcyHfcODV7fn1IP!P@&OWJFC_%fGzuLsYKN8% z`--H)j=Lz5ARWSo35Rg8Y^c<-;a5nnWWx@T4Zc4!2N4fSu1`sg_<Wesp%-vS2duN{ z&K<|~>6jwsjHZ3?|4lxGaTYq-H6>L!)E4pZS=%X}qND?jh;tzwszf^c%i+?YKwm~a zFgvbqBW)YTZ!DG%zY+Psc78(n@VJr>3-a<|3FX5Iu3r-QAkt4vb`B1_1^Ezm4(7$f z2TD9FAPLeQ<%Y$SvH@Hf;d9B&u;7YtD$jvnamXj+>0&@82Fq{sb)Y$X5FQL<(yFu- z5JpM7!MoM3--b&BN$=#Nu6w=ISQV+c5Y>`8AX}c~hw&v3qi3V)Spf`B4k{+(JBZ7T zzS|{3j99>aHH6x@sRe~%2u$e)NDI+3JF}mBxcWZUL~WpT%ZL9<e5_IepnwlEGa?qU ztTalzUK{g2wfyp!|G?5ObGXp(bO!Y->+B9X_r=G$##OfSB35~+ckNXeoh|YWjUS7J zeIfr#?a!I{14#fmP-`5B=!*dOSIw-*+uW^rey4wk=dWT7l=eAe|E%gW8cV=lfC@m? zI>8_mI}jEtaSONZA&3aIGLf-TWLZ5-OfK&@0;Be;v9Nyg6z)!{#IQ41{V<;3RjQGP z`|&UYS_H0#o)^5_EHGu5{2hwd)eq?T3iNb1J*v@mj>jaL#EZbyOBCQRSuZqNJ<J#w zk-beQ|HAaBy?nL$#e@CB%Ipg0SuU+z$Vy_L=sIqwhpz;t$&t9jv`Lk?&~d)`8zDz6 z5DuoB`*Cz|#b+c3P!XKj9n4eNwby^t?7WNi9Kx0ydNb&_QmgY=o!I#Dwh9^<<D1Ht zL8Ud7%dGod{jg(18^5=Owo&FFnIr`-6u24P=-+!`IyAg8Vol!7#aFO|34C|?dMr{1 zk9`!{rk+xz(T0f*x31N7neViyGp)vXRL${(BdOCP70|hu@7b9?<A<!S?KDK3aFsoG zuiYCId<jCs>9fy3&*Ahy;6>J)`Tu6E*@+LFN5iS*UJsV)jDXVR)X~m}bF%F$#QC!( z0}E%Aqe&KXfI{wxdU_&rw?#3dBZt>oNeiuuVChRu+ermy3iCy^r3q{cGqJkPjiiQQ zRepNHjZ#|W!LfhC(ng+4>go0T#qJHLN;{3>7+Z-d<9vD+oVjXGo|g@U2WREwjl0}J znb{K|!$tlT`Nf48I^RZjG&kIz{Wioc#t$yPIn0-Oag8|p*fHq|0lVkbitI`Fz{oef zem+YHqxj6Su^%&=k~9GbzG)&qYh-a7^~1EP>{{_Tbf}KXpG+)kx(+&rAfjtH7Igk} z7bzaAN`z^#OYmYlm7u3G=D+O$Ty8ktPSNtF&l5J6+QFV5Cr!Yc(R!^<Q4&3LQ1V%Z zS;Vyx4F8Vx7TnIR1`^X{J`86gTU`q<nK8LZ?a;w4Fl)`X@QvAx9!_6^M(zjYmN)DL zU%+__U+BwNNS_&vAs#1KZKozT3i>wa-y5Hz=7!1>AJxX|Au7N`9y0w-ng4$_oSIr? z-Mf#Am>sUGXSSIqfHI_S?=yX_^;xl8`)Sc*_A;?rkLDC&cCt_auxao;z<%U@6f(em z<fgy7ANk39#f1a?s>P`I*tw|%R_gKaOJEvcCZ-v8Vh1Os14A-EI;5}0Y<AZHHc&0O z<obeLODDoffSI&5xPPZ(F>7O4{6zZHpTyRr{y16_1$r=!g(vhthD)#_7##gi310Gk zC)KaNHuP%z54nF;_5k<WQ}Cl6ud0~=Oz&b4ike4K7erFaG1~7Hr|&-a|H`f8HuO6x zsR#gGGp?Iotaij~$6VOw%06=lbL+NempHwDg4FbBuOO?%FAgU5a!bkHY3W6aD|3*o z5Er@lc(#{FaJAXfz6Wh)TR{ZXPolMGbLJ6n8C&~EUVlN+xhHuy6!<?o3q1~gbFT`@ za$Z>3L6~UHo-I!us3XR8Gr_B%69z7DjUQ-9nHjQJPsS>mBCAVwqoajCUa>lRkj?&H zZ~P2rSL`!omfq*qlc{pHCSI&cV#54%$j8L)VHkb~{r6cnGY;GSZ5?qOeTw$4Ze-LK zD|wbcXIq_|GfliS1~bz~EW=VOB*Dz|mlzfX`}uM8l*LajOfelc{iE$Kv|kblVq`L^ zIHj6{&f7!iCrlZf10+OJS8=)dJ9jZY3teqQ6E|G^9M^D4rcCU_ogD<XkHp<gyhB(9 zFi{ECUvbI1;{F(2=nuD_wV^xcxzAP$pHYVoGk?Ax%MJSu&-ot78GKh#;{O!E^YSgr zRl)SY<lBpJCAN$?JF>^f7a|{E-I#bHSooI0hBEkzn&H2}@%31{;NES!r5QqSl_!FY z0JifNL9bx@uCfl;L;XMq2((6-3SIr#L+`5M3*{^RlWm-`Mk~EoMITuGx|qw#1Z#oi z6+m979gSRW>%49lp8T&_Ya%e8^;%R!NrAz2eFfIt!O1Oia2U>FqXV9T)mW9n#fD#H zM1mM-x+Yc)8$JxVB%UCeQ0R2$wV<BW2=_MEvCPbSci~KM9Po}M8#T^bP=uh7{z$qK z+6c9Q(Y4ifFnGdg+}bpQSr)K5--4%tEAeZ}tj?#Ak6M-Aej3+=2O`)v^B>QOB4;~| z@DfGd0RRYW6>KK#EU;5!Y)_8jG2K>WC0C%`QU5E5tO2T2N-N*`1E_L~eB7&6{o%Ql z&uEgYxWe;nJ_~lxRIb%apIwm|_865E;?BU@4X4^M0%?>5G-zaic8hI$KDsbn31-L0 zVhP%*tP^xbAp1E`6p)C@!qLV!HCU?xqqg40WHl1h62V-UUke0R0t>xOLkC9lxBf`J zxeQ-ae62>*!HZ~eCDv4<hr?K6vu>g3>NXElW_iymI6J$h`YlM!3R2ix)!cv2LTjvK z11wxDyhcBJvrnPPM*c%$!_#JMzM%qlmvEu_wOojfIat1_q_1`l)=y#Dm+#g5%yF`I zeUfY%?u-4rqd$&T<>%~FTne^XZP28lSw#}DlHWzaa1&$OZSn(B18$)~&LtXfi|I68 z&_a$nc{{{PGUlVK4a#?~jr~bpPuTNDSmM^;!KR66t(^)%2|R_<Q(=7UMw9U@E1hek zOSIfCsaW;{#pm+j<)h$=#xfZcZ~Gs&)*Xc#Hv4EI=os8htyZi<AeMIuz8@g`h-$eE zhoOX5BWS%mLimv~yuomW50<)&R0A6SlPixCw5hGFE&_%|>=%3;g^F`={?zo!>&tUz z(4ORA!!^j53D;D&gl!m-`R}Kx3_q}ve?^nD4Z#B9CjcGvp>Hej2;tg)Ik_tLVnP0p z?75&UyA_#`j>+kfaoFYnBLK^|Dqwo&d7WEBoc0>U^5;bytjuz;eD-)~XBI?~XPfA3 z#HeK$W|PHLiC7mlm)wW__wl*bTAM^~Q;O8uevS;*kxFD@GU~h<MdTL{l~?;Mz!`7` zz<0R~`}jaxJdBN#kLy0m8{`2lLuzc%#hzS`wRxdy{lY~RAnNMA>g}>e!2wm;uq%Ui z<IA#Ki`WAnzltTXyCZ(AUe=+a2W0Rm8hSp0Dq$Ct2b&MV{@0_<wKeh2p?a|FAPWx0 zKOOdOU-n~nH=LjQPTu~=y@2t+I7Z0w@DBuykalg@xxB_o3<ojT&USkoR>DLb>?VJg zU1QTI16s)pB8>B$6ZZ78V<Hax%~ut7OuI~GcCgAtb;;g`PB-|4J@hM~fg*$HKQO;0 zymHA1cCD2h4Z$MxwRQPy(*AJ#nRJ9mRP?(cPiuWMh#@obFHqa#ai_8vuCnL@-c=UM zM!M^>N|+Bu$L2}oyWFpfU*<NbTriqsMR-b|%EelDHSSrN5&ZT@a<3&dB5Wk?p#5ZQ z@o7`V)WsmVzLiI17VR=L+YD>7rIvIX_CIA|^AxJy0hcOED^w)=jDU3TrLSYzGb$BL z-+=Ch2x>w-!v0=s-3V2oNvzN%M~27#3D;%EqGD5z!=Fn&W#+{AnyXz{Pt3cc_K-1E z)lU&{lnGJ7hhtQtqw~!g6?Il&0c5Xr%fskhik(-yNO*tsTM##)>c`+h@%LG`+>V!` z+5!w=V6EGP=j_h~sM}DE2FZkmCh1jW*@c>sUCmB{4kD>5tFkwu$ptu(lU+mkLwowO z=H@w!N+?VuI6wfO=8;$`j%5x+Y;k<sus2&HUuv23-+-0Qm%%j4h!O5!gh(?@%yaRo z9}fe4i1Th@&zPX|IyNi@ooDTy*SxXB?lJAlo0BiMV}0jkbRB}DXar+wVv#SPT;@hU z$~a}$>X)!73xgOetNu%3&-u3J;V8Fr-U0@SfTQo!tElS)5d-9>hu9&gH7rs|u6|Kv z*Bx<oz%EGaMvhp1)E&Rb_V2US&Jlg3=Jkjl&=N!eot{dgil0baN#exGHXyyJZ#adm zyAa>=1r~rv!f0Y?RX!eAVZ2Lx&6CL=$mFA)w}~taFKp*Y=h-0K4LxrtOkESex;B_V zuteB0EUB9ZYX;NW;z#88ApYW%G<<8GrxP!ozxqWr+<U<GJT5p&368cc+oEw)o5xWh zCpG2}Ify-8@tbYWe%k}&^sav85Ew`B^9TZ_5JgjMtealD;2%U$qo4!$H~3kY$4`Tu zx}hrfbL}TF<KLMM0?mo*lMyAtsTEZ~{}Sw`!USB1(>-_is_-I$-JkT~+5SJ-xb^bZ zfj8uPXtmpu0WA%7bA~R16XtIDqQEn7M6(Q+&5LF(1J<q1Ukqn9YU3!ZvRL(2tMgvK zOeQuw2IMsCkh9ipREc5Je@wt5SV}ot$_9Fc!|l`^Qtxa8C~;+6na`MK@gh?wQoXH> zHU~%&%TmRhPoBpw(@DVyh9<RWJkSvG)zQDDnj1;4g6jjGWlF;XQ0rX7kFAj&YjYGH z;h8AyZm9+>S1b&~9?2KEZl7ypn}<~Qr9OrDA6D{Ve2JyzoqM5m;9=drqr*ym8nD>U z%RXwa-oFFm3`-tAEVnutG}PIac&P$IW_-(IKe0Nk>;9hIUW7gCd|K_+!XTm-33dOI zy5Zt@9iPB7y<iA&t@{=8KZ!;LzKK|&k3`BZN7$PaVVH7l+`6+d5`n;-OhZ}))xphT z+SWH#V(}I9xk3;n_T$)}$Q_rb+y2&C+ZpY{mKBXCZB@7;1%lu{2SR)CGvoy+_Y9QV zi{irmKU?cw!zh5OHIO3ec?0jQ<cDU2(1n|*|6MEb0f$M>n^^XHtoHMuru|^yrd?70 z0Zwl9s-=8by;lvZ7u~e%8B?VKsj_|fui77oj(sEQdACt4u{(S<sGhavUR@nk7qO?0 zK;aSpTh<x|sFv!iBE-pI{R!sqw7oU4KiJrdHH`<cr3%}iFpZ(yOlk~3`}OI=D@0Sc z@LBu)k+C`KGzv8mwayQ8l@6g7xzgIp_z=n4gf(aQPN&;NrYJZj#s-L|V$LWZ&27>7 zKnN^0;0znU!p?n0zG4@EuPoj=B|ZA|+(`N_&s*HT^epV+h=&voxdF*az6)9-4tF13 zWq#52NFEN}Qo~l{(SCQ3!)b;X@wR^_>bxFt_T<$12#~F)N~j(hhE*5@)nXfWQkn<= z%oh%V)~$!C&i(=_T+?&MD}ng7*w6QU)P9e%4Vhp~GdvT}BxDP2g?td@3x9NaplT`R z;n{_I!A@^fl8u}8lD-A#T>g09YVJ{d3+@53ae)v(XssMm%+9C4zPe{KU0YG9X1tEM z{c-Q3mK$O}|8R`ec@o}X23oU#vkx4Kx}u7hOSo11Ea)QC3pN>6%qF-WvOtuwU)c{3 z$47Z?#R#Cv_Phqeo?OdOF#H+_Wib?zsgHLEBtk~U5ILG&4k2)&ko}HjaHt+8p<!uz zBM@*R>aqQG0w==GM+l6}$~#alwoXnE+G6}YEE~r9*oLRYnNS%Brx#5gNfRBef-`)% z6Lr5>Yu6wx>=Fd+z%0+ui2rO~{0i{bPza1`F}HAs6o!S#G8$K*MxNiypfDJ)<IlBN zi0@8=%@7Diat~5q70t8lKf;vJo@FPStWi+AijNBw?#=!YU2W|A(#B@5VMiHyCqAXs zG%8*x&{Yw97Kl!_s|fx+;Q0=r_YO7gK(k{Yk+rz0yPNWN-;g^J&<42!GSPK-yj4G< z+r**63_1kHJ7Q90m6SVlE5akG`CyTki$U^S?2S%qv7L>+O-M$^jo9eNK=@-=X05ve zJPX89c2Cy64QD7GE+x7}tk0r<WSWW{$QPW(grgjW6oa8*j|X6wv_zRP=aTX%=^5vg zSxKHkE$h6$gd50xyhZwOdd7)(`7`sfnm1b0AO(lu+$f1;Lm(-4Tgk7Ql-~hwU6@{Z zPMMuvFI^+ykTc)jNgcfM#60*e@*o^gnd|sQXRY#W!Gzn2O6+FE3YP~why0H)#+Igo zygWMm6T}Z)!deZtJ%9G>8@m(Z>lS<NLCT|6=Mk(Ghx2Tiovz$xDARUUpwCwl>2-N0 z89sto%lw`m+y)R-zGNs;B?+^Cz?fnH@L3o*91bqleVvt(NXst9B71w_%yI)}mi^km z;Li%!#R`w1<^>UyeHN?w4zHR-l^`DT9P}8LR@y07?OvAJxd3$oS9iAv=fimQR|A3z zU5A}}W0?e8LiNmFc0NmR19nT1u3B!CTwQ=?G$ZHRVV9;je!z-kFMxx)fF|h6>{kF8 z08^g@SmgKW*SQVMPOTGvw_0-~(wkuiWKVuQ{K=!YT)TAs)jCpJ2(lHDp^>f2ht3AT zM?mJh|AKD81E|!8InzlbS4?<!#~0B{RBu<vdM&O=gOsmtxIZJ=fNERi4hg@CFJ=_7 zh;zS^$}Ns@5k8_nw@!VBV(Xa!-@~wHTV$N1N=1Q~`7F;B_A7yhM)Pwx)u?olTa_^G z>KDqoQTc1$?(ffaxaKGF<CE!_guuEC2rrGRP8bM?EGGV5D0nZsco(aJ9}R__yaFcm z)c1XSi67wy)ves`cHLKLx?!4qF1Vp5!bunW@t#dK_Z$zI`$pG&t?S-)-PgPB^Hv7( z47lJ6T=%p-O#ZX=y_LKPW@baT)^EL)TO|doJ;c`Bx4#!dgvnLVEGvE93Ty3UNPA!# zC(*3VO}Hm`n6<W9gKGf}BQ=v$;{F=k@9*ufIw$J1<;z<64ij~qt8}hImNgSp1yCAC zDlo^P@v{i>0`yZ2s#-RNpa4KKbY9i*5vyN9bT)vl0f=184g#%ON%|%!I0R6!QF_)+ z-|g!by>W-Y^R#=nZx_HBwwvF2Q8DE81YmsRIuDnASKpE)cOt!m#hv_)J(;Htj1YGd zrqkpT5Xc{gkR*-65)jBA697ktCm_%yAh8^lL!N?=L+wBb2sAm6d=ATjK$9RaPyzx? zf|h|25NHz2E=`cC^buEtOB$>yt0)@G8#^nha0q!ag&nyYscm#5k?HP8!UyZf1WeRI zM|K9py{5R50!{Ljen7rtXLr7Y50>w*jx5TT5kT`=%j8?eh9h5!19!fJ50>xoR#Cni zbiQ6@Ve*v+<V$hl&X@4P@_iddiVF{oI^SA%zVd*4DURIv5<XbIZx+{gx7K>~?tJ9| z`BI#@^Cf(+d_y>R%2nT+biM(1zVd*4DGuHF5<XbIV~X>w*ZH=%^OXnWOL6MXm+-;z ztvj};zPrRqQ#79Mx7o}O`BEIa^Cf(+d_RwaVqJKkHyx_a%juhKAWuq4EZEml54y4j zy3$&En|_4}ckPLButy^KO$|nzx1<scPLnr&12cg$NpqXiR1?3Npdkd6v93;2ZM;>4 zGC}M%fa>DS1Yz&AQZ@k9$Il`N{x!{EPE%ui3_;Zd30|G1KzszB1RGA1-O!!ou(mLt z#`Kj4=LP$bw;pTlXW(q73Q680HYHUy40%QV8^r~-1?PcZlUeh<{(gw-&aWVS_M1qn z=ZW+ON^U4QvgO)EZC7M2(jScF2WPu8SAD-x>bzyi;-yP6pV4VQLb7a!JFV)^jnbkm zOXtj8lzH#pR7D<T+AAe3$JVJIC>fSc`j)t90K#wsp82C-yw%*p1gWL60&G(r2EG>s zw$ZnfS1y~t``hyG@Ai2K$Dn`BQ{u(pM&ql8sFhNi=MIBgl53455&*_!Iz%TX@A5m9 z)v^Z;&-&CF85!R**MeP&zyTH3y0s_(v(E5Gtot0x>e`Fts6Y0tKxH_Z<R=Y0NTq+{ z>ug|lDew&crtS}#T1?i5>z4SO`LRsTtqO1d2J<?b&c}1n>6LumD0*|t)pM4{GvCzd z7czaSG<}t>25ERpysiDJ%p9HG&-7Qyz(VI;r_<Il?FtgpIXdl;Ona%M{eiM2(0!X& z_0)RZ1<IyiF9FOSjYsJ@*tDS4>DXRqx&?b6Ft7k(?u1nX=U;ynEC}`G$4{UR+7)o< z=^ma7#!}@-2g5Il9!cO3l`kR9P;@*4>WN4E*A*yRhw+c3=el=}yF>ZIszO2u&#=4P zqiV^;zb|0yhIMFE%4}vdy$E|cm<+c3DELCKV=0t8PG+c;Kbw>gN|nPur##y59drVO z(SOLdAMTr#z60X4=>`3KotsQUzJvICneRRPo#Fcce-}x3&+2XR^8Mmf7BhSw$>bj5 zUdloX6Yvu=P1c$Z(WU$EyP#eC#jHr)UkubMlaDJWuC&&D4=J%$>QDCE9uw=sN_GNh zp5lnhsSu1jC~3yQD~r_D=E_d?d(6M>uq2DX7#$PRd|h_f%L&MwLw{C_A+);xs)l-e zHrU1VzwLpmY8x%lpCK2x%k1>mu=a6Y=g@nI?c7q11A&;Shk(l);M6cV9)P<gSpBEW z0?AkP7FyWr&k)f=Z#*sEo@w61d!A*-6*$}!Z*?^d<&ptLj5@<4$D}%ECa}8?PUf|R zkFv{A9pkU-YN~{Xb=1mh^Izd9r3yN}@QtgWN(>oCVb_SnJgLQcK$t1n_&a)>TR=T% z+FHw*_d+h&Kj2a1J@d%jRnRA<beW+w#yV`!?5oHf<5J0kfkCMs@>mZs#bsh9X%W#V zeYH{apNyq5M{iW(>NN~Gvy<^BFWPLKHh}Avc~>l1oO$KjD(x1gJyX&uN^&*fZivTx zZS%yLT?r$lkZMDAV#)KT2mWj>!H`vIyz>LmlN3IRwv=GP*jGs-YGlzTh=K_OVq?N; zSh(VZJ05~c$(ZTTBG<daPq<G8p<dyqEmS3i2o>%#T?Q3loE2m6zsulpgb1l)M_9>- zI5@x;2O0CW^|lJDvr6~^^$Vvj9U-H<T@X;Hrt(3vX$4GyA@oLfth?nhg2hLGJr>hJ z$xvj^gM1sFHdO`i(qTca+`>X6t|qv2c&IwV2Gvs&{+W<!M)7tIVO;>s50-@uf0=X_ zru8fC@YUfNA!(?L2UO;6CGJ+(xW64#!XLlAQ{T5Q$i58_=S$$>j;3Q(^l~#c>M~g> zoY*rA;Xr^JOug(!ocSt5){|8|lr)%KTfQWi_-M%Ti!mu=R58|<L&h{|WgPQAi+Lg> z##d_f`N8-iViE_I9Y&cegsqjY`0&@c@2Po&!#=wXpF!Unnu9<5ih_J_!*grh{7P>V zW^3wXwuX46E2xgsH7(Y<y_5+JZU)NxU$ZaZo%FvmLUZ$6gtooGFantpHW<fs5e$w= z@4$G6!9G~wCMMB5gSj-Nx^?vd?!cGDx?Qu6#PHZmWdOTt-NSH2kYhqvO3DZ?G`g;? z#?94Os4v!+3fST{zYx|%8)d^q6K?;9Ei$fu>l}}wgZu9Ts~nHJ!2a#Hdk-3ji!!Xv zUFr@|S=xEW07?ver%g5PKfq)ZP6-_QAch&(nFeg+!=SOd6nYp6ZN1Ptwj>xQwQMd? zpBVMSF%GlHy#G6N*(3V~>YICET@^SMMQj3!6Wt@S8F3H0DCbigs<CU>Md-ycTqCJp zDXE2#Pu0hECH5v2y76}DMr}x^rw=z>D)W#{rWbDpie#9Eg4DjO$HYRL;;}sptkqWN zTCQuvg3q1Yt0jNSDMk3GwrxFvJ8sGfRzHM0$R62?g~bP8`6e$eWmp_RRPnQi2Njd( zM8w;99xe^8A+b7F^6s!sd_#BQ%UF{8Pwd2V{u`Y*=S^xTAUgsXQOlk%4mD%oVy?(N zKH(NI^28dR<P1rs1v2LkizKfSxrKQmQ6;nS!7z6+C=<$IE_9Hw3D)rsFgBq!nGLnE z(zk%xBtZOH$xBdmu@4wiXk5s*fcoT85iUw@VT&wQ9LNH7Yt85J0!2-tEqck2aQbpA z$HY2cJY74YVLvWYt3`u6@2cJ<N`LIZ?mV1l#t%no6=LII5*D_C$GvJLu%#|Xh+@IQ zSgb-;%VDdxk_Pe`CUYjx9;vun*ljh$TUpsas*bUUY#iC}Pt-pvvWyF>^baTamLqiJ zVrtQ83`&Ia9Q4|0zQWiM#^6K2#LL6Dh8mJHnqGPAJJ^3@C6zvUYWb3I;=@vXgxzXy zLLa?Mg-Lz1R_P<e$(e@JOy8nDdemBbJ#@z5N+&x{R7n8Bpj7YtJ$<A`rn0iGNFNp8 zrTWOGJ_;1+qX6~MY-`=GsgK@!-7UtlTLH^gtDv5~1u)e0%PxT%_B=zo|IY27j8`L0 z?EnHdd)B}f;8AXHp&I+dA)%300RPDiE?A$xAy{*HK~iTKHKw>NZ|Jrx`v1s#7x1X6 zt9^WC5+DK0#7o<>(i+>SP?aW#mI$^PGLxKvK~O;P$~6HbKujipiZw6^FyAni-&fn( z*0%Ke*-xvqwV>A0a7)m70Tjh+@t!eq@rH;Oe($^X-ZN)T=6LJ(JiqVx|IY)NbKbMB zYp=cb+H38-5B95l8oA?Am(#^`=4{ebf5N?rfl-`dleFg8q&FF!fK7%k<fYEn)i0M2 zQ3x$PvftzBfMH@+_vk0lbU(uRrAGTrormE_<QqqrD#kPN4O1#IC!Ocqw})UZ5)T#` zoM-^kJ4Fj6-vXIy%NGW*_zcr<3<@^=nB9E`)B+{caMP#o0T}`6<6n$^HO)oo24Pv5 zHcwpO2cB{XKs}&WV2j%U6u2D0c~QR{VY{!=_uZGQQZ$e<=iM&ChQ4&3Kg@3Vz-xTp zi(~#mxL2E`9uehC%_mZS${OHP?+G_y6lZZj;|bC>#+Id>GZ?C+BneJZ(qz^X6&k!8 zTZq)>8=+qD9Qm0Xmgl914G`2UU8hPWy46<PsVy7ZtYsg{b})DzafAI}C(2D;&Vhxd zF7KixX-Z_;L=zlS>klgqb@zv(-ZYbi8I$SnY>&a8rakUo0ml4eN~J<IHP!ScNv#AF z#~&<Q`7IVHh#t@uL&%;RGwV-oQO4EeBrLxa8m5^T-!SHC4n<u}b*;iGzEy2Z0;^B8 zbqn9nlY~-e1J(alF8)C~sP;&=T@ura#*(M5gZ9X({D0^w=~Wl>CAm=H|A!Y!;l=*~ zug41w!rNCr1M~X$0{{BxcR0%gVHCz6hUL3{_|NdX2j(4s|33U@`2P4`sGtAeR`mZN zjXz7)nr@_@(9jt-3YW#a;PmM9(m8e0XVo=%1ei2^Mnj#adG57!>Q2CmrZ=?Il}>MJ zntqMvs+Q*H)X2hx^I95J2muz)nrVA#v_J5Db;I=LW)+~Ju3kNQn&!@)qi<Exa~3wu zy><+Ovs9i%bxqOq0~0ajoV{ex^oF^!P~Mih=rxUXvzMGH!1QRHXC^b6J9A!L(}E1> zsjaR)w{&o@ZpPf{3rdF%{r1pdXAU2tZaf}%2IcZzd!fg>q}Y4nz<vc(OgTRrq~Dn^ z#L9DEL5-cPe;ICyzBkNDtU+TZ>R)25`X2L7xrp7Q?>SZERfhk!%ALn^JAXr~^Dm9{ zUC}3*ccZVisLB`WUsMnpAm!bm!(GDP^NUJjc`JOrD!d;(K+-v=-_r)|8N);_DQfjH zq1E}m%?LMkfYiN&?{OI#uv}+o%+$#OMs<l-C4Wa36@TA1x~SyFyiieTGCx!_cy*sZ zQTd9#!J-kde!-#%z8(FGMgR#E4IW)oijasgx~QObfQNF8-<IPQ=AS@Oam?3<0*xQQ zcek2+_|D?HX?SN1VEMM{cbD?rm{|Ubyzxb)t9?t0FjO<{OD^dSW_Vqht9g$+SNK9j zC9%BPqEg=l{fkO~1elG`f!_e)bv^$``GN?xNP@5&5&b?F?OBcn{oYx>QoLKG-$ih* z(nb+x_LsDS13Vs<^>!U*x(;J2YrtOCGw^<o4*LPaUO;+9P}ZA}V9l1Ig7AQgnKbTD zHA%Yw`YJEsuWULb(rMSIb{ek3=Bmd8{f@`ld#)%dCx@-hCx7`G*&d`5zj4G%>S1`a z8qKNs;3k*!NyByeT@4eEHn;{6YX*=%AJp&K_zsta|9dq?eM<4?Sn?;hF9&~4%lnZx zCxccGpbR)8AAfL3-ZP6zFG7WwZ&2e{6(JY%ouaWe@}BgINIKuq&VJFDcW&-{0|S`W zZ*^MS*Pzk@kM^oVfPJjCs4?#jx3tJx2X$JL()5tDq`&qmSF1N~Q|`pT35vc|u<-EW zSB;%z%cPes+s(O?8zc2xt<&;mr&W`qt;Q4`^!cvN*;c^;vrrToJ$dEvSLh$krdg13 zNy-&0TI=<_oHMPO0eQd9%lXFi$*R7RjprKvNWTGpQGQJDO-c8g>H(fAyl&88&(`gD zBV|pJytq0)STuM=AB+8k0{uXLk&ywLjD&n2fi%|XG|tp%B$>wQJP4u{`Bu^3SRY0| z(!Xdh;s%U-MQgF&y{_ZNagVW~T*ijE=sw{Ao>D*q^&s>s+xu%p%3g%Os*TEZm>oL* z@B3;<*IfKlQ{>v8YNWlF>a_mF{G^R)v)f3<4&6pozCYw_2*`{wMBlE{n!&V;Y{n2l z@jYh1Y>2(00`}E|I^0(n4j21GKI9TFE*<{_9u5|*@#ejkn~BL1q907s>2WiwXI@cN ztj~)4)p<#uuf6|64|a;sZA{-G$YA_mrQ<w_drv6VXYA^{N#M|Y#F`A^*ADPaq4@N) z;{RPb?6YpXof&g$!P|L5a+kMuK;HAY--HI__4nnZw$zd39Z`rsxP+JNd|&08p62^8 zif3o(uo<4U$g|+kG|x`+z1Ev&Eu_Cz$GsxWZyDJq@&$cH>ld})w^MUhXtd}Fuj{n9 zA}Y=QO~T+J#|LVK>#KZ^i~LgRz*wf?8tX`xX-tkjP_5+gw7hTSE>l>>lvbVASY}8K z34BU^zFFh95WhIqZ$;nLeUkYX6iv7>@B2Pqv+x4Pqz)a9GEd@9Eh-?sN8>9MKFzmW z;RkbsXPpYjytqDPozBc%r?FC}Njj}DOfXo~2oY5v`j5uvD7@9{n<@3+yH)xf&1|09 zqIF*1f2802)+JsQf_CV4QcuVbEmI+nR_8;@T+s(|J_h}Bf)6r`dZ$CCO8+0oOg)}! zs4F<e3da~Wrf9D>@7KBe2BfIc)hFrn)-X}gN5@egrJ`aDxD0>C4e*S@tED>JvkWI? zN59bHfs`HnIM$a+TUMzd@su8QpN^kP?`8VW==cAfP9GY#J$<2#Z(*+V$rFRH7=RbQ z+pFjzy1nR5LYGjw?*%dH+?i8iVBRqp(dX#29%WirqFzQO{si<04}i>oqK{YXb2sU* z`bTv5TlIs;ccU}bf}jY$Rlhr#{ae~EQ%;$K$XFj@e}vxP^>ybgs5OA)EXK#LdGYXY z&!t5Zl;n=}S&9OV8Q`mtAG~589i_v5nPDeG&SU1W+P4TnLIY$@hPf2WH%o_G$_hHl zm*Fpw7bstzZ&uFo1!NwyPNyYpf_~!jJt+A_ko1H4UE$Y0E*}|B!$o`h<=vE9wGsaE z3~jz<esuZ_{6?G9?;La2RM#+lXtZug)H8Gz=juaeG&g&O3fi<#A?lZLD~48hhR$3# ze}3HpgkP{QS~s-z{K;oFM`3@^k?Q75t#6t>zYeAT*elONLT6t@d^Vi2j~D0I#7p^r z%izOtPrQmCu9MY|XBvKqH|l4q0=#1QPrQ{6xXj$0eTw*6g1EF=;pxOZ@pXcFJX+j( zp2D-&)5lY)t5B}r_vr8)`uTSKdqm@nI=sv&ft`$JrZ4&zo@E}7-*YuyrRO^`9|t}~ z<E>x711{0i@w-UlrN;~Gk@)~_Z!-9?3YR$tZvU+DHF}aG^BUkR2g_5e^QE52>kW;! z>hNZ6#A8qxzLB~MuCV&?)M~t3r(@_pN8_#eDxeA9rtuvbuhi-MO5?>keUXiLw^8Hk zPEi48=<v^IyhDc<I{@DKP!5*U==U<`2R=mO9a@(*?J`B<rJ4~;Ij_@rqsG}!dHuqq zqw(nq_B^cd@&W~Xpz(JMP8o;G@X3j&Kg+pS<0ju4jhAZ%yirB-@WVU|Z}bL}?=2=g zWfU%x&fOYs)p(71?RiY&J2c*=aj>|gKW(4_WZsS26E$A08NsCUZH=${k_s<#KirPj zc*mC&F7r6t&Nk_sqwulnNB-t9bH~-L!|$L>#C47O@%&!ntva1sH2#prr;S&Dj03oR zTjLW>Qn<|FaQg-D0qMEs+X`Q)emtWzzLtXuE}0A9ccuwnO4Q>KofyAu8ZYG}57#X9 z<GD@a9VaUwuJH#ozHW#Dp49kT8lUiW1^i0mUk0DCoSttez{rm(jqfN^xXi_Hd%4C- zPgVF=)Q=~o@hXkWoC)uK4V?0A8nWQER{!3m!>{?K!e!2a+lMqh;ar7}Q9qv7HQuNN zq^a*Q=npLaS{;6l4nJJuYbGc_#$w!Frg2Y&!VR65YP@))!bRW2?Qb+*K1|^<-@xrw zjjz+;=cw179uuAe3NABeC@IwZaF)Vlu7TT1jZbidpQiCfjdy6et<rd@<}1SwcbN1w zpP2BwO?WDPxK^qk`J0y>oiZS|29ciYba>Hy@!Ai0LA<<5g<YegoT>2+jf>8TcVjfZ zHlP9;c{^L<p3w^bZ}sD8*Z4Y(iynh_ztQ-PY86oQMBHvP;X?{HI^i=K@6h-R_1e=H z@<_^GqX5wfaeK1H*Il4+(Zz5((uBW4;ifznXnewz3KyLUw^srupYzNVUSI>c8Z~b0 zs0QcDJQG+2P5;gF<frfLH+kt)?I_bhqvg2r(ppC5Wjo4KoOw*&-Qt4Z>4M+qf<NMd z?{&dnalt=y!HY0{<SPFl7ksD-evS)18u+nj#|}*y%TNgZrKwO?8>ctbO>Jq0Qz|-j zVSRmbUDT8HreWcN+4dK7QBBpJFYO=`zu8o%y-n9lO}nU=h=dhil{m#*gBZ73R(e?} zEo_`IOTVp|A00jw{<;OtbET+sl1-gm7oFN%*R*Kv%sLidF#X&t^=Vi*eb!W{_wf3$ zWb~X(ZEl$%$kh7z(F&HlMR^0KGOz@*IRLY3W`BX$<sbWY*vGyd{;_Y*`PjE3vfs{U zBc^Lbr=cV9Tmc%y$%)#3a#|`V>YLR7Q<3VDkIi;QbHf6c)|)Etz=Y9eHiLtZ*)OGy z=3?HZ+R&EjMQpoID*v#l3mc=V!P5=gn;;drxHMNV(78D}H`)@NyKsSG?{unDGLB&I z5`D<MXx2MOt`=~R_3Wv07l5moV{OAVjdLP%(HGOX_HKq@E_HDv>p~bus0z0h?47S0 z4SS{dF*Iy!TG;58W5dkpO>XZTJ#*O9=6Q1)L5ErMr#GS3HxHfL+%$b?xpeQ*a~Di( znmNakg#p>@Gn@2<U_q-0$Ej$Q63y1S=C$AxqhL+N3T}A1b3)FxG)k=AymfXuSJwca zGMyYUxp#IB@sumTr^?Qa+Z-av(TjU$SCNq=A4esJsOX(ec`okHA^39;saL3BQ)f0b zM`t)><ic6ex|z{*YbhS7I9pmxjeT?KX3m>BfBKTCv**rIuZNWnrL-G5tRmC6^>x#u zElqW@JS3f(yyly!O?9);(VMOjWQrS?*<a*tFGu(5&1Ss<e9ClkP!P@GNUb-U^$PH* zvg^%1j&$7kr&ll~DlW=7b~pm}X0~1dau5ORJGG&1!R+XqsWYz0R<aZ`oOPD8X)kum zSp`RGHpNUQHe3>Gu3r#6A4bMBBk8w_EulEgqxPiMM5V(>%$d=K2@B^ga5D5+-<G%8 zW3i((vtOQ-ovuxJ%Ry|LFwgN;h5`P;u;<V&Z6idEh|+TwkPdSf%&J?GE)h($3!0;h zJ9M}rnDkWs;d-oexJ<(=(nA20%msB#b7z{>S4xRAZza6_L3B`1v#zOrI<!(*tR?SJ zAOqH?wbrQ(YAmO+;HjB}(GB|QL^S188Bjb3IlpfH)aeZk3up2{=d`eCYF$&)!Y0qu zsbXlJI&;pvsrA$6Hh8XXhBC;MYQcn(kT6B{!WNjPop3rwQ7f|3pSu8hHk9k=Rr4E7 zG3uM@lnyq3;jEU1ItWLsM^h7vKk4}ermdbc@xN5h^WWFF55Jt_W5udm=jr#v>uk8O zOE|;dVhdky3;&_UG0nof)#Its^Hx6-z-4e_A3nu_8~gCNPW)IE->i8u=@|R)13El^ z?B#jR1?NGKyqw`r)a5nl8+-CM9JsM3AJMoooiFIAwiCb51^=B3-s6Igf=PgvDW|bB zhaI@FWB*X&&hotEg4g#|={v)lH62bo1UnipCw_+u{*nuRzcyqz)A^b<ML6*(E_fd@ zeva}ib-`bE!6%czInueq1;1PyjGX0s)dfFS`_P=>uX4eE>4HDuf?uKS-_G>^pp6|) z{5=;urTd>V{3XZbrcWR3=W&MjpO8EJ=`Q$j+K=Q+=bJA0JQw`OIO2wvGo3%X;B&Qq zz#0B0F8F#bD#(%kh1#FsOlQ6e{$m&Xk2ZWZ@-cGz5^X3a`%>PPYyU!c5FT*#%GU+I z(*@t6ak4wd5p(s^254vcr@7!0UGS^4pTwEYO)mKRF8GPsPh#Yu@v{td;Kt9=rg3M! zKX8Qa(DLzT4&3-({^Y=o|7B3AqLefJDi?gS3%*n1re4Mm_@o0jew+gi-1rlxpX`y# zS)O(m{4E#!TVGe{nDQ8Z&@PQT(~o>3cfRAwa^u5J$&K%K!B?D`DG&K`npZvl(1Fj? z_$>~6hQ^=MxU>9!J1uv4rVq}I{~s6p7ejJ~4}3E>KEnlHe7Xv6`n&OGjn|#iS^m{7 z_$C+peT|#;HGbs0p(<a48^7~+HSWxJstew1ONUuaQOSDxe@ops(|O7T|HuVbr+oI7 zdp|4Bo&I`_n|gI<y=0REH-5k;9JuiV!j2%9v;0AgoAk@IzB1l{8~@-O2X6fG54xm( z&;_s8enn?_mTKIT$N1$}IdJ2Dyw!ml|NbLRT>BIEIB>I0V50U<I?J=g1uxL)nQ|IG z<_?V;{#R7@cn)Zs>CeG`Gd?akTZM4u`=$&2H9dYh!|&JrPm^z{O4c*5GLybN-<xfC zJ%X6>9H;%s&h)?Ig4c}7q(9e|&I}uVl?{*CaC^SLa>47)Q|Xh==c`-!`@`>K<HzcE zk2~-|8ZY{;x^dQPjK)p+TFiP@xP<?M3x2-~eo<8>-+8z-biUVy+v#vkAQRq>uX4d3 z)VSe8GtYX`ftz{Oe~!+b{)+0{_)lH%r-PaB_IeeEGPu3`-*mx8yWm&3;LBa`pSs|$ zx!@1isB#**wW>#~wawt<H@)1zvryws{`r+HycgjcbvoTPoaxNe_}P}aG5J<${3DG! z(?36~0yyy>yWr(xa)<wc3;veISss@2A{E_}8k;+vuS9a=t2J)Y(be(%-X;7$UGQ_p z<xYR13;v7?exDW=PP#qng7>)Kr;g8Eo(U6j<INZ3#!tF1H~tG3{JWEKhkw8Yzie{u z@I|^oopd<W1%FWEhCj`E%RLU<tiw6tz|A_VFJ7FxJX2lpO)mHyS^;yGf8-@9eZy~y z)uU&O17D``^?D(WGo52D%T8yt4qvWuXZTtd{7M)6CKvoR7ksk|{(=kso(o=mxvGe> z{Fl1mSG(XxT=2pxa;N_d7yK_aya7?oIQVxPKHrA-*zg55eBm@a;9|Y(=`5W_RN?k? z?wTgBgtw=&+XX-5f`4gx?sP`D;Fq}I*Sg?8bHVR(!Jl=(N6g5S(@vj|4Y$*0jSaVl z|G5pfhwrxG_VDl6aC`VFJ@ENZEPMEIHryWmW*cq~|2rFQ4}Z{x+rxio!|ma%S-I&m z*@oN0ueIU!^#5qX?copGaC`VZb(wta;oqZ@gv-cVvwpkJ>}=eu-~O@#@2FDYDjm34 zfA}knlm2#n><lXFxSaSxD(gA$RT^hG&%}RY$M}&0pYCOBk7t7eH};Lk9k{V?#OA4Z z&hp&tg1_#94<pfWIn$Z$f?w-`zvF@rWaH&X|3nx3bQiqZ1wY_|hbX*q<lCunwhKvb z)<y4f;A=|p64!GM+^pX|<iO4T1>Zsy&!lhGjelR`PCDP=f_J*$=V*o5nU3XxpLMk= zk2CzAHO_LLkN;~`FwaXa;oo(^-)K@1O*((n>3mW9EuHx;*0>38@;xuAB09sDx8%la zG;Zj;M%x`Obl_$^_LUCYtm|Inz|H=V<qq7eC;!Hx+~xU>3x1IczR?BW?Sg+pD{O{t z|EY@M32EF(x657dW*7WFT<~AH;0HABEYGn^a?@w93x47?xx;_Q1)rgD)9z+{_yPyM zR@3KqF6rFog70y`&%8EwIe+AW-|2$Csc}>Ob$Y)2kpnMh09-d-r+%I7`@9RDzchFF z!5UBJJ6eSs?!a4hzLrZm>s2%vFQ_sYy|lX^cfK3Go*OSZH8(!g1;1cO?(pCIW^Oz@ zJU2eq1^;bT?(lyO=EnQE%x6!%Aa{6$sxgP-&bwb#h$fqiMa0h<r0`<((+e+g;H^5H zQWt!%0}pF|Te$-ts__vH+?1!v1vhpJmR<hqbToO=<^QKH=M+ae6TYQ@X%76hGZiq$ z1#fiVtwR-{#Y{S1gSR@u->vgq<-l*&_!<Xp%5$>|zSe<H)9Kvmz)Li~!-jMGy+=Pw z!EtZsxlZGy1aR?(;WzOC*I*kiB+FBHxeaId-3s=Mu;C1E_M2dHh+KTl|7PEcd2jG? zJ<lwa&`NLANeZI7m&ga=CY<3D$}!?q_|NNd^^*>7+SUA;@U1#rn<M;M{cPIBgg11% z-4VV+KR@Qcjos#L2X6Mc4bqh~=^K5|(AnTde+W9ln{`ub9JsMF-|oQ8yk@%tH}jfq z2X59c<+C8TOnHpI+nnZUaN|dw;0)ha#cy=r#y_~)fg69~ItOn2ZrmTsi$5%~@qZ1} z{FcTG84BluIB?@{n&iNZ-)e~iH~z1i9k>}!?{eT~yxZZx&A!x^9Jtw+TAr`Un=Zd! zJzEaktT(&dftz)1w>t3BV^unDJMrTc9_*8yuUU7u#(|stu+KPfvmZ97+u4-g%u^a2 zxS8+V<-pgJs&X83;ATEm+%LPF#?HyFck?p&n*F4$4&3Y~eb9j$f6dzt-0U+gD9BFV z>@%I>z|Fdj)ehXOf4JL$oBgMwG@qLCn|Z+;2X5vUzjfedK6223oB2y||LpRYYk^wk zz>WWOgadEX;oBUzSx0n>12^kxwmNWQujW2UUZ%cgoy^+~+^km_sP)Hm_z^1p6bEkB zIdI=2FB9JQ<ySj!<4?cUfg8W}RtH`>N~K#cQ2m<p&3@G>4!pcdg==--9UAX&;Kp9G z*MXb)Na-<-d`GM21_y5TtKRIu&Afo04CH0XZ}zKhci`nUD%=T0>eqxf>!Ye1xLM~g z$AO#ut#>(aGw$zj;6_hSxqkk?rHIP$L5q`gLRI?i5<MR=FN)2L{yh=D6q!}}+5D9L zm%1}@iDY9wx_isnFbr|3#<jR7B-bsDd=0L}vw8HKfjg%8dE=jhxGWdj&3>)b`5S%1 zyel;~`nLkVx$3`ny9%&FC(QbDNO0Dl%K(`FF#NY)>uyj_uh~J|Gb}IjJ5Jx13!3@! z(^hq_)&KMh6VLo!gg53s9SAoYTJ2AnduP~rcty-fzq?yioDw}gtEWu;&2v3&a?x+y zKUIigO)%1rqR&Y`4%^PQXUrYn=U<OUo0HT7{yNK_tLzMHtx-{0wY+8bn~DF<{5hQD z%76P$Rs4xsPN}Ef`PWBhUpu#P=)!N6s;gr7Ipt@cGwht<BT7pv%FD}bf6o~{ytMS} z5oe#HLQd;{Lnu-shcxTNy`Jy%svlpi)jACCtM~_hj{!APytRFMIlcqml!?7wV)^gv zv~V6dK7`lV%`jGMYsnUT8xEg*I%vfk$`0df^w{eotoZx0tVI4PgBb+hUMi{Rkl^hd zco-NR%(MARW?5&QAR+wiJe$@^T#k<eB^vnApsgeD>F6M^WVEdKUUC6HXTuCt3N0I3 zmzEWuv@WmZuedoj(Q*fVjw@*SuS3DI<M+0#-AJKjqA*K-iSGDY^IK-#S`a<W!guaa zgZ=3Mn{m4OKz;{~-=b*S)$*bWUi@)EE3<<7T56a^>Kj0H^8Z2(Qe^*zgC_lazRs$N zzx^OTc*f$Trr|A5wMmye^%&ks8ufAwHD|*IF1C^@*FfS1E{Y^KkRbz;Bgus&fk~4m zg7#<v9Js&o=29kATi#VWf;;c=4Uojd()L{~6RgDPRw4vqw-n>!ThXiU;cI-T1D_c< zx&uf!zO`i#TA|?X$w>OLD*~4Xt_WNin2JVe1AyG(T@i0xaU|Yc5{zG0Dj$cGa^j0_ z(HZ#G_~u0Q2>g7%qJzoUQc&LnjwI>|!b9E;FZ+NwFD@R}{!;Y&q4=vk$Eo*$e-IDc z$G=uy3(EFFB>t}C(6a*duoBhf*2tKuU~FwED%TbP^(s1gzAxX<yC^U@9N!(7gs+)Q zw&L$hv=Tq2eoWd_zPY&3s@&~gNjbobTS66w^tbM;#9t)M#BEFyUp29Yyc4c`J?yV} z-HN{!_U;RNRhwGg+a#d(HYOV$@_KX_+jSP&3k1DeRTy8W30$eafxclCa<dZOl{z5E zd}L}5rRr@B+1=A$>h}XFZX%(IBUQA9Y_}@6S^k=BmUolo-E0lnX2n&2xCHmNovHcj z8GNCH<>>i|PB(d7iR5f0V{1^5u4<H;KcWj-T`}gyt74ZGuP$LIQa%nU<F=Hyst9qR zdFnpY6C9c5M=NndNopk-`J`4RLs4)r5}#Fe*ouEh;m|G8BQdokl9)ZhYJWO97avs6 zMe3@aB5}H^r^zqAM%Yz7M?)q2#ivyOmGjnF@@kY5`E`k;MW6ycs;YK{B(jwlR7SB< z5J}9!x8W(UL|*M+A@_heSkAo>JamWSA4K9&mV7Bo{w@kVC6ZV$qI(d&S^~+lg`zC_ z&G;TArYNwO=!giCuZrLc_Esc;FW@1MDN26f6JA~ve&Ylb%HO^oeY@&Vmk(cjQg`|O z_W!_L{Edo^O{u)9L!J3=S-1JyzX)lF2ZW>TBle2d-~KdiD0oZ8p`0T&-dZZ$DfJ8{ zB4s7vcvq<X{^-T%(&+gIBJA0*{rM7r-<xE76t^Ud4=ELZNp9eckS^SnUxt?+0)x$s zkUGUrfGYlp#HS(I!ALm_Q8psnwbC$5I9^*EhAb*Y3h|ZfHTWUZc6Z|wA<UWs55BgC z&P3`-iCB`<dSMqOPdfW~QeQ=GM!wW{VKQmOx_qpBTOQu@Ji~rXSYG4{ecJXSjh<Z? ze=trALg_R?f_y+l`6aaYfe<D85yX?X>Ps5@_U3sX{SvLR@@1r9q3!T_56~CIR7C_) zt@yU~`~B_PB|xOCfZzSt9El(8{y9HlGZGnu<DLGtH;^<X;L(cv@iCfZd>7wu(n<XX zVuRmQs-Vp(Rv;0=mk)0!xfk~!e68?5ey8y{&{bQ?-+LPIXX6{FJ7_$IG)8;jR*^8i z`EIg&`!0X`FOfqyc0&nd;7zziI||>A0~42|dLRkv*GQF8@AF>9RiSTezmFtNH3QcD zR?!!XgBSU!S?TbBPB2M0xwOn%wSIhxUma)hB~@qf(bRzEum<?m-S+@)g{MsA@H;{W zL9G~6S{A_y_^4A(*95JTVc7T?WxbhISZXGGAD)V#!-jqvt04c~Zv<#Fjhr(mWk<Qh zlx`K3PR2>5gYayzu(+m!$2}8pUL?=vAC2Q1aX#}jKtcxmimftp4r!R@U)QA14A*CA z%c=h(YI>ceA0B}7JaeD1A3@p=;y<rhEQ6dmDrbVqd8u*+wK@|N2k&Rj9L4diAs!f? zh2WG(wuP~)YIBIx)7VteVQ@ec&&0&p^Ray2D$rptpb5+y*VE+5F+AIL91pjhR5Xo; z+b&iFVSvwm2BjQ7`9FE=<fl1v(zHEwd!9WdJc@hmN)ejKnN+M3E@^-KR^UJJwVED= zmSZ&D0cp=m+6upy;=iPmPt=n>4XOe6#H%zebe9mEQ<&0eAdSlym<{5|{Y)w<$-S>! zXNxgZt~0Eb0XMX<r<8QTIrYgE{tqtr-7a{S3;vV~P7$3eUmw~j7mkn9<iwA4!N2B$ z^Q^(+(2jd`J4*jRSw^{pALD{w>4G=7;M~5>*&|M2#r}2kkls@-uV%`T9r{}_CP@8U zY;wn+hN%l%qKz%lbX<8ccVYS&$8^+9pFg!XGP7Y}vt-F#{3iR%j(%*&pQxfvtgD;H z?fClfLYz%wdz^^FY;2EwTRmrblLMMOk;i#OLcLD~n7g39f#)Y7=b4Syc=Y3ib=cl- z9zqN38IEtPTTly<v4$+})rwl#1)LngAz`*MOjy`#QVZksfMHY7w!BVJKj_1XkBm=# zk_|r=_Xhuw4L{C?-*3Y?RX5>{?T6`~V8hK>cTPMEKH)|D3;1u+nP$W7>Bn5~qz(U~ zEuFKOFfRUl3I9#{Kepji1q}XGEvoq1j$dZO?ey7g!@q1xXO8YyOy?^$yu*gm%w+Pt zRf|rB=lE^#`)#;AUw-YB7fso$y74i2wdgdsk<*uHoax*1y~l>r?q>3R!iL-P{m6z> zKAG?}q9rLh+tZ(9!#PHo@N+ayQ<WLdaqBTYLQ{St1DELV24`4azp$l$5}r-^J8ihV z{HGO2G~ow(yDYQe_VVAMag(p1r)D=v#~!{^B`>%MLrA+?(zvM?^(0<w7imX%QtNr` z_*$LV4*lMQ@8AutQvKfGh98DIa8v$C4t%fXOO@K^|67WvOj@%^I-x3k_cu*X^TN=< zJiFQEjc;_C?r)|&Omgh2yiUb`=C6YhlIsH#&;a_^S?x1`GwA1yUxB#H-)S2+`8(;N zn?d3rnx_i?iIwBO{qpHf@=3PwFd~^W?eR~tcQV@xXV@!se9czrkfl2Q5=R6lSua5h z(zGfaQ{C+4;DM_{{wle}xF)`7KlW88?HR><qhbypY?q@rQg>(BB{&&|mri^jZrN|0 z`Lmk2^7m+8*0qid9gi5J8?IfPF^!jgl5PB)b7(K;_33Tn+d07Lt4e;WJOd#`(-u~I zJ-IZoa8zP^Nn1xt;mGlW{HqI4(8Sna<=85JEFbr6usl45xQXg~8X+#=>xrYR#NW09 zw35vQ-Ap(!c9i9<9^6$e%@cpXs@&oK&&~ezyW$h`?`748JOHC?@`TOtiG%!YJa;-E z&hUFl)(RLsEAF>$_NIcc2PTK(1GT}tg80~y_<ND$`S@0DP2r=5V;}Zgd>XzmUJ_6J zg9$$RDn9pIkX(H9<cH%sAAP0ppt916tr8!|4tV1`WBUs3rPvs9B=G3oU|~o5J|xvY z`gqTM##T@*p7*ZmAlc#XY|_r^QctQ_>^N1P#KpnNi>sQdV%xkU=at9jjcPtcDicpx zkG`<%HAZUdh))dq+n$5fqGz44{Uj!ih;8=vyl9@|k4Qb^+hecx+jKY&<%#b|4U|k; zktbac1$X1|=w(+(`6pL&Xd8G*Vmv<b`eTN|2dJB7TJarL;vbal*3NEN>3#XIZmyEI z)s4~d`qQzCuC$gNVfT(+aSwm~&Oebvbz>wMDI2(v<WsFCZjkCm7}SSb@!MK~i?zE% zmjk9$^(|UhB^&Y5vlvwjBJX&LmGwxOdmdgx%jmuAOji6ANf>tX0j;CTPKq8QCLXa^ zB0M}C-k;ygUgHmK?n%Lr)5cUiU9}=zwXLPAmU@k+v$hmQ(b~Z(z!LSN+DnG)EjHV2 z{7B&LJqU4VGYpLzaieUM52`!ZC^@SN#y5$PGH|GaM#^aaj42L~FIt#3*#%;Iz0o{a z^sGe92rK^Q?TBr4jh=!Z{!Zg>*XTL?vAUMG;-`wY@#WGm$>po?)HPbwX|(i+uF+B_ zD?Ylhb95;aQS}<F>NQ%`OXLxKQORq)ojy-s-4jxewh@{iZ3XQ1;Z?rB?KHevqbd@J zbt|LS@xbV8N!zw*9)@N3ZJM!RE^bh^VtBhgq^<ZcZPW00(M*g_2BYkBQEiD1QAXkt zdbNsaBrc_q80O-r_HU)z4+(T1hDA-=mj||Nt2(p|pC~_|t;U?=sTLWg?$9DtxXZR0 zw=AJWv}FbirY)1jMHh+BAF;6jlHQmiQIdf$Si<<;V0DGW3XEU&aga2`AN~qy@mtR4 z)Hy=DR^FpUdwvf-Ow$orMSs}SonZuJlf4#EdY;PA&x+51Ar?L&T0K$OaMy~1k}0j3 zH838_V>rG7r#AyxaTqT(9iu10f~yS20|jCgQon|{KsiXa4k)7NE>DJ&--G2=b)QJQ zr6hG?rrcS!&c91ssgEkRv31^o7ibdn&rXoSN?tFP&NiT+rWkG0j<p2*M~ORkfF$l+ zud?&wdSA5I7=(>%uoBHv40dRX7qIRx)zgp<ddI)+-Gkqj(d2}d2-&yg%J@#{l7}`s zd*q?b_6`|)LH9=pO2{UdcD<c>o<B?Xi2ij=rafPiZV|mz(LvMaHR%>TKS=ZIC;N8J zvio+Vsf~X|TssA<5nGSH;56yuIlMG!U()4e##i&c-B+_)+%)2_K@XghsGSh1IBK=; z3MOVp5(~xc96cw|FC0GvucW_iHFEREe!)Bw|JaTnakWYz=%(0>E`|7Ad6ckla+Jj9 zS;6?s2wgq!?aZQYr=e^@ym|ur@RUgWFuOMT{nD~&5Yclm_9%IL9)=4~e3QTZFHER; zc>5uL+fpRjRb2&uW284!@lwS;`U}^+EB$`+H4o6Osp7{D!|`)nhJO>)OW?{I0*}SG z_CxXNCDDOaVq&9zeZH@HRsMIvXw7kz2U?y?SrP@~Zgthj>JiN+2NRdg30Cg$$I2iX z5oJn!{EX4~ofceG=8IKVdAssZP!B3ql4_K=y8K6hF0Mef@lI>xUt00xkNp>dT8Zl# zV;$Z&yd;76gR2I98-?l0qu5PdhWN==5B`p<hUybw=-72r;F0(RZjn?^b%uWu*G*fN zB9V|7zVV*#XTrf%`QK(IK$`vy1J7Uf9!ue0aSf8RNWqH`K3$%szkzrtM?pMNR@^-R zpQdl`z>0zbc*2VPt4>#0#yfj%qR%L;ZAHt@5Cuf>9eJXC0L8(2yokRMd!;q@{7F^* z^@kqa>tDY!-aI_HiWQ0-DUMGpkB=SUU->MgbjAJchq{#J<Nx8NGg->mk;3@cs(V-? z6w6<;Jw7(r{rEdakDe!WSa~U4py{G{fmMCOu@Ale6_bG|>c_VQ;#-Z!CLp?5>P2J& z`L?*8O|Z!tnP?>`Vvpi4D8wdM_90V7I~IXl@f2Lys7GoXD+AxSjWh=jWs_zLqDjN1 zzJ<W5pR+wveUN9U{b|sOa?Rhiis{GqZ0hy}y?fwF8x-FJ6=(`opfe)zr#7;aL@*#0 z3o$|WGvF+SuM`MfX6qrB(IA7yB!^G2lA|UdiWR?ZnhMO+s^@@BQ}xJI7q>f<E~<ak zT+m%ApBjL>dpzJV&}a~UQ!PL=3#P^+8$-O*ckz&moaMk{*HxiXx06cZ)UuE7fr|qd zh2xJ0CUdpG+gL5|&_t?a7M#^qBF3T0s_gW~LTui|4>&qm$;3g_A8TMDLte4sPgp}9 zu_{0Eul%zR<@rebHxg?Iob(S^aTTR~pTDi0Nx<!GB@!I#u-Jg9MUuBMHOK@D9=if- z$Q$AKfw9R^r&^V%h`;8&Nc_k+?*~G<i1%+2!}~X85E=4ewA_OH!SD)y<86F(FU{5x zR;P}MgOwcE7YhZLWy`OqO-AB-Z7VXY#K^Sb;%|SR6-!FByQ)R)N;}@gxYCIw16T|o z<&VdhC6rz*+OUiOv3Ye>PvU$)&uFl|z>N6d&v4~d|BBbq6sClUA278@{CR80rf~cr zYsj0>*0IcCr{#Uz^6m%^*=@yzQplI-_}e&GM?lD)<EaODh1}zYyzFoLAzp-`bt9Bo zJOZ!mIREIE>7IQ-$b#G#Jp@{(-a^n%@DfT@(%%_#eovg_5CY-%7PPGTRxG~Is=hUi z?_%q3P2<yXcNLY?$cIZ2Y%u;$!hc?O@{fFLvs%R~=f~#K@x(UT$}qU#)8w}oF@r5C z;72=AN6#(9aGj%m1Y4)?k7t>1mEr$Zxx*hyYkX_`LiMfj@kLcP$``ruSx+g~>pEP& zbbavsLRFu?r^^*k-=5`~Enai^$L15fQ2PYUzLtske4q9SUQpEdecz3Fz8g>t`MzQV zuZ=(KeWscDo*sOd$$a^qo_y~w{mt>G;SUAk_~tmuCD&*6G5*hd%Z_<}8sDPu3c}L7 zVD}XYF917J<7OX-v^y|M<7OX(&<YrBK}^S^ZL!iGz<7Q3@6>36w~C(ro7c<Is9xpr z70$;i@}~2;0YEPNMi>0&!09_%L!QNDc${=1Zr0BlKJU=@L5@wlbi7@-&6V%-F8F>I z95w;T_n;<`^bueKKzf$P*wlsJfqw;fu6)1lg46K?s}@eTj@HR%US=+wC62T-s1ClK z-L!DA4vRyudF;OO;i=R1%gw7S2OW~YvDxCWQ~tS(TWeC&HR5{HZZCw9leaSg%-eJ^ zn#74_FYR2OoSlh5S6bxKi*1Pb`g9IyFQnZ;m`;4w!UfrthKCUW=Pz88_T_=Lyv|oY z(#!*Kk6~V}eBJK+;o4w>Utz;(W;FO$DW7ohHO;36|EmqR`^Jn7pV9_R=`sDWTZcEe z>5p}qU!3VLvEe7!^1a1|lYdNk!rG|KbnM};aKQ)Ld^2{R-xwQiPv;REZl}X$j^wzQ zubs|*EpCb1={(AYe+lnQ`4=-XE{5ln&)~nY;gpF6f82)K%X2R?!^L#$;Y$hPBF=U( zmrSJbVDPp2Wt$FQa3gQmI&dR@?sDKp{%m*PM*bXh;<{bUnh=w(;S;V2;AL<lPv$sq z!*43|=l@%Zs7zY3PdcG0efLjIXY;}-%iMfO+u2!g6|*9^=zC;71$@9I(|!D&ivPro zxW=tq1KBxqT)KOu-<*Lvruli}S0FC)FUNoTW%B<dAJDmo#Q4r@h)emMVaFpPF-@j) zGUYn{I!6RUKND~aZb*|V1L)s9?CiJ<|B?Re+9tlCKXmS1v;*YX>*rskSExJn*HN6D zWoO7L%_viJ#V8Kgm7V!htT@{akmqK0c3fOLW4|1a80ThSxyG=x7wD6GKou1uuuFp1 zr}qKvwPji*g{i_?fCA6mB<L3W|JYTAnQs(3=MI#+X6}&H|2{@{?e%%){~@(Cm(I$n z=Jn!CqQrBx8gXY2HQ}}3Q;+GtxpYdBo4S;_(zMA|E=IHA8KzVRB&%g&Y4G3pp=@J% z>HKwCRr=S7J7wd^2*>zNN?AI-^T$cK(-46D<@3g;Y-IjU*=F+pB-wVhj*p+Lt1jy) z^T5397iAMMr)-;}13AmZy4tT09&*Vxv-jS}Fv<|Ng^6!)H`#Wx&SaAQH9yYs=PEnH z9@G&!^sk$2b(3vIrfU(cQ&F@^Kj3CzR6cw2sb$;nv(744!tK+`wmHAc<X9!Qu#rJh z``2IWgKHapWdEiY3JQ1N*}Lia0{@1N!UyVON4(Jj{Pjf(Dmva0e=CgBhq#;`E5@y4 zuqrQ-%&)EJ$oPMdj!vTR0ss2(KL3U{@tlY7eUU7%4ZDWC8Lm8>4Enq+yWZMjwI7Yn zLx=(tqEMA!Lx<(<(&<>qTAzv6zAFkp_F@!weBP#43JTxwZ@9m8DL#bLGA#C*7tZhr zJ%iTx*INiM0U36rBepL65&|7#RUT~FThW1P1U;U++34^e{)4ng@sF~PivKUr%l{XS zZx{a`wi(g?$Bi=&!370ZeEj`LV#D2t-_1nMyAgk2K^+*q5|sM7_yg%vD9Pm%RQBo? zSm5AXHanie@emyn*r3+3DV!JwA6a+BE@TDEspQaeo0K1WpMEXzVV2!XCrvj?0_P>R zvtVN$3W*J0-?5U_KJ0n15*HU(m7D#`A4ci?>yP)Zul5S9>$!vL43@Hhr7YgauEnCF zybWcgFdq(9v`PC%C8=b!O76#!Ty?&G{lq^0^<zQ!>-uhbp?K5Y5;D@nerUN(uL@I5 z%nQI;Tlk?cKrlJuXdw1Mzs1AgBrG129CbRk=cNlFS&vDauvZGgG8}!u=1;iZBc)Wt z*qFJu64!fDCt*@3^vU3<OM#{1EBo&u+J9mE{cxg{oQi!B*gywjC2CQvE&i2U-|k;O z8UI6yOsuqjLw7QGrqA;35lYgo<K1U@dq7UOHD-eU=J`O=K;dH{|Av=B?JxP;rXdWY zRwwhzEN{2O<Jz(6WU%Zb0RHvGR&oxgR%Op-PcnESvQfeJfx=!G>d}78Di2v*r?T3M zth$iZ(b38Lzax~#MEP&r2a>fg@WX1_5bN7Aw5K7{Kds~yY_5;M0x-ruYkFK@WKC7` zS>eiOqg7coha3o0Ze4tTIPskfMSJeeq?h#q@mo63VD>G5+OL<1jTot4z#OakTLw?n zqMg=co*B-onhyOn8^1S4e1^Z#1-~$j2e4O=rvDGrMnSfIy5$#N3;A+F8U6&zGA$Cs zj!v}TIjZHG79>KYaLR<>o!cA_(a*noaP(V&*naQ$WHbu*=@#_3{f5MbzTxDk{J_!O zk;=DPo@D~vUc@zKc}OH%{e+L3d-E}UhE>=C%Ds;7s48Hi<9EWz%ggc=>+bO{f0m68 zFB>b-Q0B$oNoBrGdkYG;Nv-lw9{+}Yg*)2!p;~+WZ44hw{uR01pgFbP3-POX{8qdS zc@IUrZ-Jeo(Ln5V@A=7Dzsc_zl4*Zb6bxL=gwf~0Eh9r!&BH*2{7B`CWTuR;!Q0Ah ziysc7pJrOKXQSeSG|H&bw-LXk!$zVulqQ=G(BIYaqb&YNg%#7dhR<5>L3xmI27MSw z&hJZykdX(G%5ML1N_W#MBJm#d!Rz}-eaRXS68Ru7J7fDH_Qz;6G!i?Q7S9jECss_x z0QY=1;_W^^G5k&G$&|!Pk*4mY<B|;_U-X-b4&)z5dnf-`$)$ZffuoN{DtlU<>D9xs z>K{&wD(i_E|8j=X#8YSY<}2~BA#+8qu9^a>GgeoPXt}9p*mG>_W3s5Fq-Uo8G=Uf% zkf+7VdJ0uKL6SqZ?lU`(tbu4c6vAqn63C}ee)O9%j(tqMyDvr|So5dS?2s<6qkhVh zo<)zIq`mxH*YoMe%g3eVGc5dXj+eib<f?rj(M)Ju95gXtl6khG59M>{e6@hXM|uP; z+@Z!z4wumZ?1p`DTd=5zQX*4#j-%|JpK2_1jE^F3zLbM6E(C_XjNHx(l>$qkM8BYF z0iWh~BFUNgqFU4zL@M|Cm;cN`D)jb|p+U_H9Rgwx79@?OxJphs@uRT!F~n^;G3Rm+ z#gFM%Qdw#Q*y_5qM6?p}jhzP9dwPDC{haz<?|MmnSvR3WuhAgW_eB?ADIhv?jSAfu z$IryDOJUixI5DmYTXL-s)?HQyV*4-}%xcK*0c~E4o`rYp*UnB|xxHy`b~{q$?UHh3 z`nb|p9rdEm+|iCHF2!1-`llM)u>D<Bz!TC^r*A$b8ClO8Ow6weChCG@zxd<zfx^z{ z*XskZkB;}R+>VJT%aype7`nf|?N&T@R(m~IM+7!yHS%n+zM*4X<%l&#V&x&G4~q-x zFcc_7F-O#Xj;OC<CfQlt2mkY#V_)RhFGsXn5zJoBRT8ZqqV;7oOerQ7=7?6|h<2<* zD@3#c6m&id+8<E|<cRvPXmlCM+=1uL>H+xQpE=^-iHXPLh_=uXZM;M~2GIr@(i9=8 zKSxxq|Fzfgb?{?nwIBbBm}4=b9h)QC9}&zREh*8CMYLi@I}Xu~w?#Wq+Hmo?nJCe( zbygpb;KvC`(0;+R>{WcnQ9{OPHEsp`8#=o}r2sR_3X`Mq%+f-hj<F1DK6?IS^uZkQ zISW9X?m2J@q%IN;_iX%_a8(TVF2)AxPahMmgyFbZ`V+z(d>`S?b`SRn_4^eT0j2&X z%XuJ|KBhdYn9pTu-OtB`o5pY-pzxni?hy?4lTQv;%y8%Ga0RCQQaymv<0<9+9!?=C z@Adjutcb-#66;Q|09H>dp@OD`%1)%D^}I;38J%^k(vHAmnEqpyW3<Ed6Z5HcQgzzt z-|%Fz`Y2YvExtZj`SRj90nCZK@h6$+knTtKZtBhpdpjeQZ#I1`JpzdE=j0HR)2N!9 z;%tY6KJOtjK4b?;ktH+wYDSJy<Lp_L{j8V91$*h4gN(c-eboBI_*-&{gsf52%Y*e% z5-<=f`v}WTFn7nnBlIK(?t|d<V5w*H3(VGvZNs#Kv(0V(l|RLsojn}ATb|2=8_RH! zWQ&9gS9UJ0r)~u;)C;44g|1s)xFh-voZ<qC9=3)&5UD)!y=KNq)E0xP(Th8=go%q= zBk^~1>bKgb*k+1PQevI*QoT;uHvj6mF?)PXUCi+%!>=qy{TgT-l~|Cpvj_Qf{{uYD ziul`kUJegufe<=3L*mri=v-94GwtD+k4KW%=j#PoG9Qmr9`-N46*5q3mUTE_<9(=4 z^YhXgCRC>or#OMaZBU)|VLD9VhlN6iWx_oXkpsyPbk2R_l1o?Sw-oh!o8`hZBV75f z=;@9b3MRsXnqJ_nmiljcGJ>EjyX&ccojN*s!XMe1ka$}wH!nH|VKvRaVrVYuZ^hPt z^iet)vT6B;SXA^P-j_M$ATwa9(R@sXRtUg~p{{j#m~^1!G0PjTlxkKvJp(z68h^+d z<FpFzYgkO>U%mlPEUdr19d|GU_}d!LAc5Ec@7QGUAAQ2myFER}YQ4L^Rr##HZ7exF zd$uODc+Sv5gniE=Mt*1Hhn~#0u?#kS4DnJmY;PGaVjX=!u*WKQEDGU;CfJb95cGqP z&y$+M+-a8+0`N2s$qt6Fg48g)>qS2#hSOUPS>6NPVTv`Sz*c$EnoqJCb8$V76YE#g zBzyIs$@`%2#17|0Bcj!x#<7oDmz3bLE0o-Td?C68^FemkJx#NfVg{wmS>K+uLQjTI zR-;8#rl&y)=0gPbVLS|QW}eJ}4w)p6*z2uG{E%vw?2?%L9P?Goz^>@4HF8}<|MJ05 zXuvPzofhbN<B&f^M+<Elfx^e}st+x5unIg-Uw9A#<Oq0LSSXmhs&BN+zhQfz@*)3< zHRw8=H73Rv$KHb;NZ+(!aj@5+=qVia0}x^>zF>li^zpat2P>GyWfGS6DOJ23{^iFZ ztnlQ$2t=MdKN)?$peHQtFZpS`vz+;9H4yn7jeZsRbs@h+b0wIPbmKa!mCDCvf`KIp zNhzA9j6|Tpb^TCp5fD$*7jBRK)xTj!pmO)(A7X|=yDDea-P<6!dVZE;oJA)+%1}sq zOmgXYp6;I^B+WQKMT7S0;qep76yKguruzv>jKgqV!3(nLm53}w$0HdERKf1A*nV`A zOwUjKi;vVF*bmZ4;y!_7rO-@H%6$wH1e%(UC>gyhtN+lN0F$}|e-49x>QAauI{7zs zKhj!bm&dXPLiM95VkOg7<h4-O^(+Epjqk26+!j5pKK5arf8`l?Wu^_s%LG8C4HRZ4 zwW3Cdmu)ZN^a;f+r@fvxgB6?L#=r6snHEecEBCL*q~lU!R4Cly-|%!Y|1ub=@)&{U zl#>v&{b_&O`Cyq?4?;$eB*MT)5kR-YDMmVfDiMQGoN#O_1QHB=AK~xiWoTpI>=Ij8 z0Ayh0UCtyX_C*U>T!QRhUW~-STPVv|bgOxoy~8rl?B(cL!l;|TXZ2X5ekuaw(`)e% z#-n6pexCRK`ocHy!is*wzu|#O-1t}YfEbj7x^Hd4qn=~c$Cj3z>WQA}-!Q4{)XGT= zT#uX?Sa%F=@b9cvQ!Bv9N%KA4T~;0n$svNf-=<(1dM;+6JpTv>d`-f5nLJ|x_!~P2 z`a*7^(zUGl4M$n<E-<;}{a5!dAxR^ZAGSOdshkChwLbz*0h>>;4`gY%-*byYKX^XP zwy=AtZh#w2cN7z@pGb1x@sy0=WFTMK?VqSNigC3Mf5Lg;__heBZ=5^H;f0pBGhBJF z>3hkmkG9{B#%zQbqDhKsSQWI?NF@HxNPHh6>U^kLp?;8YFmYdhl;ZXYUAyOTL{+46 zAM9svHB>>5jHLdLDY6uo_3>{2@nvB7SN9qS=hQ6>!b)55{4(x9h~SSJog&~e*@a*w z^2<_}aF{XyGl5WX2`6EW%^J#tCfLP!29z0$|H(QZ*DE`90Of~}u^*M$VQt#$JLQ9; zc~EfnT9uppvHwP&&Ik{rnYy_ba()()+LiUlC_e-u@<WX;;rNH+poy6^^1G>$p=W*v zRUaf}rCN3gh8Z;5IR1g71pL08BdNcQep?w|FO+iO>^mWEuoB01wR{l_HQ2^by4}F@ zgN{aDl(7N<Bw{9%492Q_REn@j9{X0W2idejB#sbR8E>HRdI!m}{81D_Mw$0;!%+q? zCg-!feS&dx*igm3P(=sI)>FfF4^<vnyd*gCdThP;H5wb*qQCt?+}wlMp5Tz3!I7AE z)FcO1)Fy{l`rFFUkQiFf|Hpa**z+2SANH@`6ac&V*N^c93OD=Lk4Bffv@gbwT@Vr< zS@EZYLWqEf8x9*D4_3Yrjj`66bxtS?LRu9EA#oIwu}r}Po`UGg#TJKv<yRtii6c5H z1_MVNl-?1gZ8)NYASqX#ZsICdW!!XD%!WCn`XZ2-*Mr_5-8d+rFehoN?j}_04O(@L zmaX(m?A-Yhx(iLbFlyKOdit+{+1B6Y1BelnmLqXIu~*VrFf!z6f_{n0vm(MIJrApV z?Hmoe^-UO?)c9tKEup2bUqtGN)N4GW%8T|*wIOc$J^4G5T%4bA0LI_a%uU9|Ov}G= zn%1AdYRa#{dZW?y(sAdDcn^x`T8>bh5RBxEXMD1u-UpNDpm40ycMmegfbs&Et%gGO zdk|O8W#sIE?jNJKjjP<>vMZddA#oQ#PLJd$RgBQ0IwG{5&(O%|<3Lv|xqcvQy)SwR z=QJF7ika)UWV8m>Sf~h)?<#*}iNr3}LY`s}B@#(^p!-Xb|GO=_crq(^3h^*TjK%=0 zAAyZDBQiJwnZs9^<)=)OgGIxTgE5%<-ARxuB?76!$tBDNm}{P&Tskd3i$1D+7b*IP zn9h`MF~*^Bl^?0{N&XzeRQd1-sf+S)Bu8)a`q$4D%>X01@^o>~HFH3SNR;fqz+J3r z0cggZ?a}3ZTL$-lC#rDFT|*i4V~!Rf9KH8?nl-CS=nvf=tpXLZtiRw}sGy5GQG^VW z_G~cYj~zvP@rUM+cbTY2Cv~G@Q8WJ$-cF4H7un|HskPv9`|~^0*D~p(7V_EnXVU&n zuv5mf{d*7s^$C{cgX^MYeXQi<L3mzTmdB|Hd9G7lgDE#03dY|sOdIjO+Wi8CPtJyn zGe=Kw-2I_Y>zm<Q|9AbNDb7sO{Wnuz?GL>;lDwg>qt?npA&N%j6aJOlyMk)L6N*|l zl;uek`{)rhP`F#(fg&6Bnbr>^Cxv7ghj&-Rdqn2c)YoX-9~DSWhGV^D5FD=;`_|a{ z+kT{z-QV8i<N>7nFYH;Q1z{I@5*Btuub~kGeRrUm{mlAXe$OeIf1LX9$PoAtL=<-_ zGRXL%G#@_9HnCAf`%}{>;|f2~x9|_gq@~`*Ka7#u4IazLS;dEXFi`SU%w1ymf)71o z3=4~7%$%kQ6Bzi;ZY6wLHG=6%<KlIeP+KP70jdlBHZH~y`xw`PNS$O=3VXU*kdke! z(po_)Vo5Z*!olvciepj#3{9lHIrM|$!;0f0$}6t8Jr5(Ze*-qv?JwLevKyqO!@m0f zEY^|uYjSq9lte6OuEp8g!(sV)ktvW++P)|DKXM;S5G?D1Y;bdVSwH+`F*p|Dc2XG^ zNI|R~B=Tr{b8PSAWiN0s2PPvsU-RxDa@MjJsFZAa&F9@LsbN{o6R{WkflUYU1KuZC zxx(%7Cqv$&rV3}E3M^9)3d)_B+i)RCH-uu-qV}gl@eiV3HF68b$i`m_#t(IW1+{=# z3bUw|*FJ^CP{+?uJLNVW(^7Bax72l%Z^oX%#W+?n<inhk<1syqQdo-b!(bhVX#Cgf zafD~SN?w+1bLokqrNXinrirzmZ9wNBB#q25S@aO7g`gJ663;I~9*_*9%H$PBBsNI* zt8Y{Ejl@uV4u=2kbisZpBi^Ct2)+EHh4NsVef$q`e7nBa_>c6)Rld`*3ok<+2&L=2 z<HXcE5(1a0>!m%&@VjY!gQpbI2r`aBgPY+CpmbcHKQ8{RjANf>+&@Y3J-~4lgEo~0 z&by$aLIVjW7r@qxil;S??!8Yy$*t^;9+NfHDMHZknIXgqFlE}vI;$qX<(QsxAhI!@ zMJiv8p3X^`8DkaAq5D<C&YG1lg0^6FU6xhF#xDq)I+SaieAPw&o97rmxd_OXUg|X& zFV$)wkzdMom}NBdFaJ%p+>+u8|D8gaCH&`a<2foQxnB2VmrHC-CJr+KIGOw7rQee7 zmt)jLht<r;;kR&0z`qfLGkSc)`y!fU7KZ5fzobdFc29p3vRRu?tYkBm3s8&3h_GQh ztP*O$5=(}YPLK^t=WnA`53?NqKVAxWw+2Vn4e~GF3`mMC0>1`CBL9f;EAo>o;CLpr zl#_ZwLt0OOxH5WzSx@vl*DLHR+#bZnbS*XS!70W}o0==QWKX)gtV7NmLd8Fhl|=J= zJ$=MKo_lT}{DHA8JvZP8_Lz}ZX=>;6kB>3qSTY~f_j~|5f`9!Np^qyvp{OZgn>EQ` z;YU5sXZ#U1IX2P3F98QXJ<az<eql6(d!Z~pn}=xC$4vPNR2<}#RarRKhpi5}Mn&s_ zD!`WSQfvW*VO;WzQ9y7I3bZk;hjrH-<VbX&d)#B}k_V%`)_*9yjMFi#mo36Fv#wAT za^}ek*~`_+wY*yF!+AuXUO&rlxc)pqw!Zom2Yu4=J!`)`mt0<vG0lrr-M{>7FkEjD zPy4*;V$mD2GuK^A@hv?lO3tfPAZzr*4N21Fh`G7;m-sh;9kKZ2gcHMFtj5FQE^g?A z^YNskfsuXvF|N1F&S{I1V@QGaberEvyiMS7*xoRBs1<WOZ-g9vU&Z~QilaTp)UOG| zy1emJsPe-_w`%1LmP4~z4!sxab7Nb$2B>fw`cdU;iwi3sSbRL?d{NpeAZl1(<j|%+ zJLby2w(D<vm%7{VeTI((f2B8`nkenX-X%ePh9LIzQjBBcZyuH)>tzR~$7j*B{3|U* zc1)u}eK7AY8w5gK-w%IU3Prf#E;NAl8knNB(3*^O!WiYAKm$>L&`zg36aC5Y@&w{c z_HjxJq$7x-nNcx`eN9hdFWd*yH(mp=o46B@>SC!^c=vVc`D~AVo`+}FH<-YpT=W%8 zXGBO*Jbxdw2p~<hz_TO1Ie`32$0Zsb8yvv&5eK16Dyxc~7r^pOOm3=uJ$+%{cnjYR z5!*&J=8zL<Po-=2RTLV<((CqQ;pdYo>29y23NEv|4|3Qq{y_R?+K~lLU5Pf!@}D~N zCTI^vZ)%D<I~2wPt^+}*%8SnCND=)q234}V<YIhYGHxfTOZ3MVpeNzThrx)5l^yD{ z3^=<8w<8F}tE*IhNiB!ixARX=E5{X+h)DsNF~Rr&<kq+!2YOVOGMRJ^l3BTiBnL?z z5fC0t_rIsU{|S-&+3MR0j{Pk4ZH1XejW4jr%6fHt+9Wx(0R2z3v+jQfK`sm*Ar97c zec(dpoPILh8`tOAv<s{<WGH&W(4}4~+yOHx)mwsMIiVXM0x#9!)X}43lS@xQmpOv* zzIz1h;A%iutDw~g<6pi8`8roa&)PjWF}Wl@xhfjuAR{(_9)D(h{kZ;uyztclu5-n* zz_(hSOfQsH9F}&bldm%U!YmS3^HUo>o$~E}55LR+w|_Q%DLwGn_+`ics{YXgZvSlc zE&q)2U~jsAs4pRL;%M<$oxvgngZ#yOm!3sR_uu71&cNz2*uVZuaDU;@z3Xfy2vO(# zZ9F$X2}Mf_MZ<QYa&Y2=RB0UTPkU>rn&#uizj9J0{aR=p>lgOHpT+&umL+a*!nP%u zTp{zmu>W&BdjrA{+nC@b-Y4&%rPjjf^@wy^^wL-0@JZqv&<!2PthoEiS7gkic{X_h zzLhkI1rU#)f4Lvo^Jp`=K!cphr&!riWkZNPKN*A8&ev$MDe>-vC#}{Oe<1d}HYl(v z<+Lh10Ha?Zz8fY5#0YHK2dl#FVEj#$NXWYnhKQZEcoGGthrZz7l*;!$;N2BSM!w*~ z#PSP1xQa%}IvCIf6HEEp7s<4K0*1*dam?+I4}+m@mKT<Zb0gfWga!-4CBBmT@3nsg zM&wbX)lR;Iz<Mv>zw_O&_h1B8j3pR)^Pw%Zd|9s_fB~9|pj%GCt_4n%qr;$%!Hz-S zD2~e7-#zjvo_!^OqS#miJQ#lkfxEws7mU#Yiy9r$l`L)hC<qaVA1h;HaLzYU*KkbE z8owjbSTcygSPjz^t@nw_)agtN%!6FPM3COG&Be62BQtnrzALOp?oG}c1g^pQg^Q_0 z%`OB}<b!?4PYVaobA&y0i)8`FCSgbrh3mlH!>d5y+jxidt2YcJi@gfq9sl~qV+ub~ ztiRz9jC5#)Ml3k3@-wZ2@rTjY%U)5YrjDKaQTS2bhj~WYS<9Xmb5qLaC8Gx7_s5=x zttkbrxSy>)dD-)f74qJ{Gu4|fxcx5>-xb*OT0TuwUiiT-&I{6o3PV@OyGtBTg%1d; z!%Jp)pTJkQy03c?&49%{Rvsx42gg3wz2PmvKD1-M0R}pb5=WQ+PV@wR8i_rlIyt;Q zdxihb$Js+bTr7#YpJNpQ;S)M-XF#z+lZ*<*9}L0K>3t!Dk3X?vM8Nsn+t}d^`|sS$ zPB9paJBn7v^7f}&PUsoG2E4}8x>`=fx4~c{i=IVwU-1`q@CCtOPr+)ULq)OZMHmb# z-S>BI!V6l}9#TTY3nq(UlbyHaXATCljbRaZLNbr&PpO|~A==G{il@E?=E?+3{TYKn z=8+tjdJa)p&yU^zfWyNwOFIvlUYId2K#4pIRFueJR3iOt>+nqdK(fnaGDQ9KKEgE& zhxJitAX!Y(Y%|khG6a?%3xPQi-F*E_wRZa<bbV~9!vghfQ7$$Au+YDf^Jykz)<bZ; zn^^@Ui}X%Lzz+%+Un_ysGNI|6)oO{in$Niv6TQ0?soC|5_rWgd{w?LlVjx{tnZ7pv zSsbSJHEJ;GZNLd{`_*2?<fv~r%*R5JHJHq2BB^qL_3@oIwGO%w?^9<`x@7dHz{TPC zyL5Lbl~C=#G4@ie559=<Q>o*h$?%OSQL#CYsI5XjgS;7-#Kzw{AF#YnT9ps`mv2LO z^qqlV^MU?5x3?b(CZmOD=heXBt(b~F5lPO%bmz4CHT7Wk6H&%MW#^)baN@gqC7;z< zeH2ab5$t_0Mu&1f6iAFmBXUkOPu7^=<6147G0gFcQOTuedb*pyptR`hLMIsLjeecQ z>rv}V5lrU15)cu(YY?_)7l>w`GG(|M<&d)jGYAt)4F>6qeMakn1AE(-vsp02k$Zk0 z5lXm|X>45~gb*HDWD;w}@DP3bYShMV<&aEcxw2qjBzfH+1cLG``+7p0(!Lb-zHSEi zjIzxoVTtEtzIrB=ZOIjR(URorz8Y_2wBV2kH`Y&7vkojnvrd8)iS3F-7u-^v9QZ@L z#FCKrq(N8WJ~`%S`!3AJSNG)xEBGX8;UIoa4Zlm^>FnZ=%B3-MP`v`lFb)fUo=jAi zLShX>i4S2CeKr=oJO^nQpI8;IhNcnRGWh6@*t}AR$gGw?`We!r$f?O>TA4=*9?vX` zOYx(dHh!i&!cud!Wf?>Chg99*0)Q((i-@KM=RDRMJz40|pf@b5zKkM?il*}ALFKs2 zbSw89mTo51F&TL$n9Mfc?peiohT$J|SfqAQnEs~M!!1$v59lkO%|9V)H)(ENDG3Pc zwZKD#qcn}RL|n3*pRq-34q0-}1<xo;2G;-nm36h7T2DcWu=&*_&ya(yl!aPP$o`Vw z6G_W6nnH{i-Ht@e8Z=s<(#tKcl2A&Ho^KYOQS;(#Znjzq2&3Cr9`Je{ja$O%vf6UJ zUTyhfn?0m^@q6gbSU!d(a>_r{6NXN%x6D`TEyp4(XM;cK#dEE!bcXN5h}8mFok<r1 zcxD~3-AHr@4%t)*IMLSLsRt3){(KdmKLvj-{ha)XCi(>aG+*rG*8B{U4?$;5w_m3I zvXArAl=t)Yr%x_#c7Iw1vw@AC_Wp#yi;gm`FMAA<8D<TxFN5$zHL(ea>u}(<<2ETO zP*`~a?sBgGJdvI_&g(`ZSXL8YAt=^ppz%xmZ5<%8EC@w16suTBBCA42!wiK0Yr?c0 zqYt2uVW^r6!MIPaD#IEsD5X#!vBIVaoc@M?Ipr$Xclp;}2wUb`*%J7;2$W<Fr^^sZ zOW)}EzLx$y!yzBpQ_kSH2<-+LRjUaQ%Q><i_Z#R1U^48H-5;|mvEa<#emR(w%0kZh z2j>oo!I=O_Rghu?BahRs<;@(t$*_xb7cSk;K=P4J*`8t7H?*<=2W8)^^?;C^valpl zc@T4J)S21_{aPW?2Bs*zNtyxxpxz`+rhsTdFOL?EgiANZeWR50u)}^=Ev;&5&TNdX z$<VLI&~L1wABMi|pdZ(e^`c)7=m$$<7SY;}Q7?I+j?tzZD!@yjzU&#z(Z7UX+&7wK zf5o?%aW*(i3}y)m&E$H$q~T|ZA!8>f@UL9)v23lEHLE363lJ2<Gm9oTWbY8}j)$t$ z=6%E4@PSliv$h%sWeFCQRxC`TMNk%`T?rA3m06I|S<9WdlnjiH&AfMj7&7~A_Kl0b z$}=Y*-FfH=OYla0;Sty@{OxNIib*F=2xIv%)RBny1*`J$rpvGqwlbE2pKDS$Z(Oo$ zlF~mgv%t9soc?F@4`a^%SN9Jv`i`sopaompqh$Q*T#R3(+9^IzFS8$5CP&q0w;yAs z+mC%Xz8?{=;o^AY)_pqiNenDYF;u3}S&h`}?A{Rjl=A;`%F|L%?_=%WFtTS0)KXX| zGDTMM^izyapR0U{>Or5NJ7G+s@n4Ea^=bK&AbT%)|G%evFYL)xJ~jGaX>0HOLKxR& zr!=|=JUT63P*cBbXUQ7OfbqpsC2TNvlzA~$F@T+HyMVH%7$3JE==x5hzhvZ5i=Cex z`e;sP>IfMS<s^pdsgku|p|oDO%bAMWEGMpIyXwfHl-qW2niG^iqdCeRpC_<i#=qiE zcu65>)Ww_dY_<c5(kjj_D5=o2y6@UaE6Abf%#6}`GWF?90@0{bll(T_p%@?4?(!!v z<?o8VhzT*XUyP+%8@jY+s5Y})uuW-(_d7&=Mx{i1FqU}D%)Gu3r4~8gbBDu^kOw;3 z_*dlpUm*h=@?Hu0$y8dFy*`3AyZC)&HzQRm(WZVe?3P+xZDrd5^5T7m+^PG!&3$5m zgroh07sK7EZsmThxlbn?!Cp;_Cgt2-FoMBpis8k3x`B9E%a)XKkiDCK_(H177r5Wc z5V&~1N8QT(4t?)GfAhPYJk1T+H2T|rh<!EhZsW;r{`O7kKA-pRsQUum4*`NO#k`-4 z`(-bCN_juM53)hg*CJ^gOpitLNY+Z+q=3Ae%9y8>ysvD6;CBgLale$7Ft?k@1LF=y z!iihTcyu`T`Miv%qUWcHo>1|v#H}Q+`ML_Lxfaj7ECjigzxwmse8*>Ae7BCjws(By z#dpp$`OJ&&I{0gg$7f#lqHUMwyBSTY#Jq{|vX*Tn8^!n7)Rpx3#YCiFFvQ^8jGNR0 zh_{z9ZNy_BH{#JXkRhJ_#Ce;llu1`=h;&&zd%DEk(tRX5-9~g4miJaBVbYZcq`SwF zE^)VX{{_ymmA6Ev+hI>v9+2)qf;Ku3cT4x|ep%^uKowwlw=)S-UU@*ehaKq>cT0Cc z|EzT9=ycaI38>zs6>v15>soQxG&Fetms@cdadh+I{RsVDS^_QI2&T|MI+#-2m-+)z zR(hS4&_XA<TK6N>uQrAz21a+E^C$Vz%ocz9Ganp1sylESznNi=r<&v@X|Ihnp<r$I zN9#<y->P_MV1L{3xHtX{d;GmDRZ_9!#);!6)OK%7$DgI*7cl<6Fk#IVzgx#=g*T3# zJh8U>d+GRPh@bksL~O-t&@oeA)#Nux$J<ylY2ujfnsmI^5hZo4J>D%M0N8b=KzO8C z1wxx*PDW`Cef$zodcZHiQ9N>lU7q|^i*(Q9$&JzDSQ5s}Xkr+)@-b}nfuf)`L!OGw zkbV3s53>PvXftT;24?oOA|4Fha<qxW^S6Bk1y^xz$`N;=#8sPJQwK1S!uV#Vi(=WE zgr7HBlLF(qhu&%0^DzWZEs!{xp0_Ab;!YRr3kO~JA)0@SF7vR<;4YyURFRqeP+^&P zY-8<>sc0)63Lz2;KvxdXm><4G5y>5wyu#jR3U{E(G}4NM{c`b}%6PCgSH#WxE0`Kg z$R?35qrBREGyLZM4Y1W2^c8Myyb#MLQ-_2CL3`_o<HRO!Z&7mbljt%JCz1Y7(*;7H z5ln=oU{2b^S4)LS7fmMgEE%}7NTkU_x=g&Q7hPK6U++zqbFpqGbxsbt>_->0>r$<3 z3A!hAbIMsQ4{ky1nJ}l>LxR4}aKB}^0T5qi{bu5J;lD`Yw~F3r5q^srKN71|e@*w( zi37!v_cMwVqnLlTe#)<qt-g&t!ry)iBpV0qrFe!DEA-`;0<o=L+<kdp?B$PQ+Xlj8 z));RSs-rbb|Auc|JW+$8SMIKS%^y1j#c}rWe!z0{@$9%zsK1aS?z<SGj4KQIV%2~? z!^oa5;+E!!>yvzymn+ovlE3Y4v<ni+oMuEf+E#ztTHvU_W7O&|$dS-ll8`#qDAkO> zmP>0zjQV4Gi*7CKYf}rJccD74I?(cPkr$_$iCpCa1S@~CBx^>Z8j2!F4Yy5PiFJhw z%*MFP{%>Oeyd1fV<B6Lq2TFFZgCSC|EPbGC*vq9)S!NV;6*O-Zq=v<>HJyi;uwQ}R zp>!<Ei;ig9cA%mJ5rv|t{b?<Qa6s0(;@PE91s}i)UY3V7$04v+ux!G(WF5+_Mhqzv zHw0k6`MCJYdQv9U;cjz8#kmobx!*<>*fa{Jn}_9GJW_|-elRt<j?+0<*x|N+2Z93P z6D}xBlY&@=niukRz%mm(4T}K+u*t2snsqb7&*I|PM{wz#3(Rif9|AVO^lFEH#fy|D zCbZsX&SmZCNt%AAH=D!19`W+iO-<Lg?}JDxMZ&x&wFleosq^!S)?ha}zOafA+>IVi zo^esn02#klOL&^6j9>wU^u9?7L%liu=*|dsOzhy!^a=j<-$5lzRbX#RhG$aI?D<=Y zhlJXtQY&*ueIGIT*o&PUHNdUt-P<7}QXe3-s`Z7K+hM^740_#64SZ0-eYpkc@dF)# zBNNO{5{gzQdp0)e#P3qvr=@9k6LdC7D>VaI1@0r^{tmA6q^^cmV5{c}ctp}_tLb<~ zd>V0yB2JS<O5~>l(#IzO!3Z-=tmzk~d!v8-1)}9#@Ckj9s}@uObeSQQ3E<Bvu1T5B zC52R!F6fIcf?i`K+j(*#P<ZYEqgREcSM6lSsmEaUBfQq#N4xp_%l`wt7%s8?k>np4 zy9Y;TR5@5O3O}<PD50EBJyGOtY&7N+yO-(%%RbueS%e)58#+x>TXOuxNzfH~w#vLQ z!x%kJARx{J(E1=cB5DcGo;l?BB^l@^a`pE-p1(V@kK{Sli)U6G8weq!Y2G&Vok+c= z5XWL{_qQhz8}=0JCcjGE;ZU9<yd(536gvNg+l3mL0)V)x03oG;eFb!(*#>!I%R2~! zoB1fjWav`kU|1ISK7@c6+2vdptd+ontSaA3frhm~o3TX$Ydvd|WqqrYu!d^a{|{B6 zj@Bk;mGzHO8axuHe9*t*FmO{Mb3{c4Fmt90t0cj92Pz-)uQ(!8eMLc|={^9gGt>wF z^Wlo@h+ZAQI)d|)4OmBTUdF$W&P0oxQyELIC9sl9j{!$0<*|Dg8V|e4qeJLLskk2k z5td|GZ;d^0Vk>$C#fLC^Z1I1y9z7kfKl$5cLG4pEsD@@=5578?UCM3H19Im#L*?gh z`#Ms{k*7K{@t?@*apw7Z+&tWKpRJ!>gi#^GW_XQ$q4ZW$C()pudKl7WcaE^C-gfCB z2kPaPuiecLA(;pM-DD^OX+GrDUCJc?!XzO-l-*)Y>L%)X>1RXE)RzdSZEL9P)|{2y z$0ScaNCBqW0ppkDeb$P1Tk+e=T9J*geyl?s55li3S<nR4i<{(EwtQcLB?z1H{p+v7 z#^p#^6~~D!IC4SO4DewanEhqgFkeQBSPj{2dAG~Rx(W&6yoP)jIoqEOV%b47`Yr#4 zN5#H5OESx5j~ZJ6Is*_rUg;JrPb7J}o<XWc^>4t5@cVIeefQn>$r3|<TPZYXip?r+ zhR22{E(-Z=*(yX%j~DWqP8uwu?<l}#K57jXcNJq4to<m26@Rj&fXkn-@MFU^EK7_o z3LEn2<u|7XI%|)5@COTUMlLP0S~glSWDDW2TC%fn=1f(~4^rRfNRn<P%2&)N;P6zH zj^vppsKw?$IgP}>@_XP06h*cvw!mJY4aqdeK9|h@IV6}mi3Gz8HKXJ_F9@3){zu@L z`u_lb;i5v@u3<nN1+ZjXa?;On1kKCz49po9f2;>vpPh2v-?kOOO}`9RJ`?>mcMX|7 zZ{gr_wawxsSzhq?;tmcxT2jaw^6s-R_3hcVhMRSlSQvKZK!s%)#wBOnlwa{Q&ajqo zz|>s{xhOt4j&)3<Kk~%3cyTJ)iaRhA)3%MQM?>6<fq(ch$$ESASve-_;l+RNmG#|s zAZxu3Td0jD)d%8m8QukUdw%ctJ$GihSL%<{VS4wrd4$vLm^vn_SyN4TMDt(*tV9TB zzgu5L$GaYygRQh8es1H7OYtI;P3oBJ$JwTDvmQ3(hfh>~Oi#Dx3F2UliVA$|Jw~&6 z8wn%S2PTHCga~u=X!rH_N$oWvhWTYHT#_HPF63LB8ja*K#Wqcudc?%<Mti4+vD6W& zizHg_WSJUMmE>_m6Urz?1*&qHG9Jj(fA`&LA+}Q3_9H_GPVzsm)U#Ndif2wP<oTy~ z&NP>Q!<N*BY?W?q)?>ONUcg8|e;>rN5MSDhUej22rhG009}ZN>%ij{)y}H$z_xdVJ zuYmvm06yopn~Fgl^X;ZqO(|mK`u=-1EU52c4VJ46f2ZjC+xd%cv0kda#d@Q!wy4S% z!dFp413ZKAs+I3?aqBL=pW0_d{sl$ltMigRUkw6{AAofbMFnFAcr3h@wD5a`VRL;y zHBeN(qOW{E)hepWJKu{Br~-0)K-C&B3ejmZ<aHnaAgvpHql-$Cd83O;SLX-+FMIDE z7*%!ckDr+Y2n2JYQjG7>MjNU^q7)NJafVF78JI{E5Uh_RhJ>VqBu!?L;ESO%ft(Jb zX|*kVUiwmc?Sr-!@li<t33#gpw3ceC(ONrW#Kt}_#0uZf+K-u&&76C`x4(OTzdwE+ zC1;<{S$plZ*Is+?wI6eKPQj*0IC(WZna*!5@Z`Ag4m1n-k+d4cm(Bv*a%+5?<tpMM zVZ?t!iO<f0rMz?tGiB#%rt*UHt!Kd+ImO{AUTADv+N@M$)9RD9Pw=Aiw&)`HjtGo? zPw=1Q?{kWLbVM#Imptm=aLpk;>B{AcD3?Xq?A%?ipnZiREDmRG%J4%CPG>DheAz46 z-(tLK7Ie=O9r7F_oo~s&X}_CD=iy04PNB1xON0}KxyF%4$`5_>ny#xe@dt0L<%I$k z<&{z8R5FC<EI)A(|6HD*$+3*jz*r`2$-LL;`~oCgm`&0y%_iHOfhlpi7INAtn<n3y z<Bnx+nRIW)eNN}2jGD@@RM7c}cd86i=lL>w6lGZD+?Tctah@;n>J_|>Ak5E7_R^We zOLAQ8IFgtjtGp<CMe=xJU-mkLtJrbNi?f$Y62|LA!K-?rT#9XpdQz3qnZBNQvi%Un zMf%3|0r9lWqlfHtNlu?5<3l@Uh+cz#ZGzu#)5zw_DcC~wPSjy<PK|R(TAdl$OMzFM zQng{dq{|mY8m~=Eqas<iQtiZ|oSKZ=U^BMugbU*`y56Bbirrb-iJvNFM@LsPS!zW5 zHDpUne-$}-_fk7!t>^O0=ZtgHtFJ73E~5WP@LEdwTD)aaEVCxZO-D{MySyEC>CbkC zal={MqqrFmq6VaIig+6)>LVpX%1#&MRIRa5ZN`)7Wn0MX#K0h#F8VPK<x|vcU$Sna zT-PgA+n=3r3wTlkYpw1~Z(9Yw3zK?7TVd6k&tfNT=Wo*%Au4|j#G#oCx^_?Gm8z#H zn?t{W`j*BTeA!MkWNBWY4J4a0Fj+y@{S(tj>DZb^73M6{GV^5<uLlILQDVr>O_%4B z)3NEiEm)G>nrsUeW!E9Rh_waf*$wPubuZ2*Ctkz<gS;-!B7soGY4TW3bvIS7phxF> zX|srapXBNmy#6QhxbJ_6*Ike+mmFnWg;Zx!?Om!ISsqz?w<ss%a4tqBPi=_GvonsT zFX4*pjO)|4H=b<rt@=dzza$+`=yz{Jjb4;Zo&YMg6D3YA6w~ECDRZ)1%9C{^RW3|s zBd5w4Pg^dcAIcR@+?SKQlzKOzt;krIK9}BX7sS6s@cJgg+I2auaK<KbsNl|_j%8J3 z*8mO)nv-_vv3eu>P}{a?UV1qUCdZp1jh~((#~qO4I!2R44K^-2S;=NE7c}2VBkQSs zSH}72WvXCxyj$>M=ejF)b_y@I^Sf!w4BjNkwNLPREh(2TS^f)8=~FW*(#uuO^pHE9 zw2)2@9n9ifcsJLU2JR$mlxSA{7c_3r+$CrpLU^LjL+u%F=PI&M!}8DwddT^<`aInB z`vs4VWZo5fwYIx%oC2Fxk=)mrei{j)X`jo(AEiu~9+~Zzk*~8TXEZZo5mn@}bY2MJ z|0ieMw%0e;&OYU!+xFJgwSn5%IKaMWc9Axl5phhL{XcUEE^<%Vn{W~0wBRA}mQ+Bv ze3s+Ag#wpRMAg!61n$r#v;G!A%|(B3t-(LyBbV!c#86G^6nMW7iH-k&^$C2G{0LlZ ztcUw{{3AZ2!nb>pUgDz7nS}2UJ`Nj?0oyHbP4s_koCS=wbuf9d5WpqJOtb@(<PQ;u zi|Q3!lOZ3`7Ycedo&tV>z()nn#!0|wp^@laLNRPi1iVV%I9QooYz&0ZO#+waowM-` zaI$A6XD+8_;}!((6?h>X{)&r@QE-1q;309YG#irue@5~b8D--O;I9jOhd88_jTM0Z zL*Th&0Jxank2`%zj>&T#gEi*ABbYDn(F-`vd~O662z=-wj=#fi+7f~HU(5mK7bAGH zzzg#^&U{=1+XWuFl;g~YMewTv*Jg2?`JD*v5V-p?j$erU(Dj7CYcA){y9Itk;I7#m zXZ{<4?+Cnq4#%0Fg5cB)u7@4eS>uv;fxx#Far|1rzgXbI>?G$DeU-q6uHy8P51l4O zdhREO9~bjOaNi*C(Gmu0%s)Wzeu3|p&vCi#{4IeGmvWr-=Lr5-;GqQ^XZ;<5IOB@j z?X?^~Ddc}u;vSB(J`}-Y0v{5%<U?C7N&dEloSyZS2o?z3<>ff*_YlM)8KZZXbNn@t z?yZu35yvI}Zh`kJ_yYp35fxX`|5V_bkMntm-?Tx2?+`faKk)9DzzdgfLe>``n1S|% z+J|8dYi@C;TZSeY9}C8DG4Qb9=L$Y9kx$WlFpB^Fnd8>jsYEi^Ub57)3}tAtwU&sc zT>*J=Q;*4z*9Ko{gRi#1yKHdN2LGZB{w?6AL;vy;#mpv&tIJwD>)UJB)K{;m4^-E+ z23rC&cU-+_*@}gWs+KORZmjLBudb|ZU+W13YU>);VLEv^=98-%nrqj{S!NcuqrSbf zsjfbWiRTW+uDP{#b#<Wj_Gb3Jy1YA3-_p_4+EUfpQJtKbrgXcjgWc8ZtAp#S@2C#m zQQcPE(Z(2bS1;`r0le+5?pV*B{H?8PgKZO8FtIy=x3lCXzFN~}Nw2yg*iy&E<81s* z9f67TNjaAVZ&%;>o7U6@g6;JaW03qzvc(;NhN||a*7l~r`iUgodeT!8o88pWUJI{< za(`oObFlt~`nuNk)yenlMP+TEaZ&U7w#Ks77I-<qx&V|nkz`?QM}1lAsWF>cDr>tZ zl6tzE6tyR<Ko$m<>ME9a5T&w|N@XdP%2G?I1gp!~yCfNCl4Y~3sbx)b{V64ULp=-* zqBhnxwQ!O&%C&v5G?iXib8Sb5x4t2nH!kyBA<WWh{vTv-;YGrdgaXNZJVh+)%QON7 z88-_rJ2o6o!=b9Ssr{5xJuP*Ot?kJiFwvpFZf@N?QTCU;p=wC~PGM6PZ0~65JXP03 z3_CrAo^Z04Q(jcmGn+oOCirVx)+}3}vKnEvg-otxb?r@Ufi#gs6-lEFPjjHYy#?!0 zY2H-^n*&X4&FNm1)wb6MSS^{TGpZlHKy7nVT}N4KdwV^rAHJ4`)+Ct__)|<^Y31x; zO-JzdBw4Ca0JGKAO)!@BhFUah4S{OWqE$CjJJHNq9<5?|wV&FyWeqKX>gB9~1LeB< zb=9@a&8>A5O(ce5u5WK|ZJ!7=wKN4Za1MNST^qfjm<{dqyqR3rx;ofgUtLFrj>g*| z`aSB2$YrU)Kf0C(9B!9ZhJV;Wz^<4D_ge5DTW~A=<HP_L-OBM#^4V{LziNXQ!VjQJ z<>Rx#TWs)6HuzU;@SoV=`)%-7ZSZ^1U#64)K^y!o(Y31i{fZ5~(*}Re27k*2e{M>8 zIp4CuPuSq+3Rj4RS7cWq&Q{wma5Z1A+TeS{T$)OM!UmryTq>1*zYYG94gRhT{sl2! zRQdnJ2H$UkFUa8vQTePCI7Oo>CCArw3Z5(Ub&n072W{}@Z17_?_yu};Ij<JDDkqMF zWtYUIoVVHV*<^$N#0G!K20vkg9}~{Bs^`gKysqLG*x)n8I9{c{)CQktgE!gWA3rm_ zp4ZvnU$((76Y~nHoC|F58*T8f+u%R8!7IePg_`cYHu%i5(&zUE8~i>S{0BDp%QpCA zF^{6kIq#hG@>JO1H`(A>=ceaVY=hrwgLm8DU$en~ZG*pRgOA$aCvEUG=cUirx6V(G zAF{!-#JrTM|1CE7w{7spZSa?D@Un~2%XyOxevb|Q6&w6P8+@k?zTXD__QmPt+-ZaV z`s3;8-?G6c=clK?zy=?-!LPeCJ)Z^}ywe7sU67v7W*huL8~iC7{3RRwEgSrp4Zi)8 z>E(RR2A_FZdiqOk@Od`)9vi$u%$ut9=tdj-2Unz*XO|7W-v)ox20vzl&zzk;-LK3^ zk3VRG&no2f*|<6IPtIc(DY*2PN>!W`h3iIvt9o0j(u;N^s^D^7`YQ@9)BU!Ji*(Nx z^U$jN7b&>pbGeEOJ{1C2<-b{_7xLe!;8Olg3NF*VSH(rTPhH9Nr>6Uo4eq;&)2sQt zUcqI$w<x$=Kk5{?nr>8~m+Kb~E4ZBh->Kj--KP{>rdu*Mz5E^pmwfyRF8MSFT$TS$ zg<i`44F#9-Kd9g`-JdA9On1T6>C5Y88~p2H9YdA#hc@^VHu#G+_#bWX&DW%t^Md*5 z@#}5yO*Z(~O4IWhu)$xj!KZyXJ)i3qq{o|V@S_5k^+K)({X@a!`q50W{-c)5CU^RD z_uJra*x-{r>G{mG!D9kf<^QsROZ(iW;4)wPZTNqBA(uzxU#{SiPlLc!{q)f!6fPCt zYlFXGga5+@&+?|{KV*X+v%zy{QVf?W=cP9IV-@M?pR>U;7Nw`3X@iFaF7+?_*?SdS zmhV>-T&}b4wBbL?;PR;aixgb0%ikz)RX+z6dMW221($q|+3;B>)*Ds+-?qVjw>Z5% zkJ;dpm!zkkX@lSIPtjA6%K6f57MxTo@mDN3Wl`eq+u&zbrubXw=h)y&Z14^ne8_@Z z<^O{Px5{5|T}mD+{iiIrl|E#_t@JSqZlynB!L9Uvvfx(w!lmiu`LqSM(z~xu(NmR` z`d@WJdi=WrC;O)^E5ymP6E^g1%Q%5*pHB;1@);I<W-d=pe~Asg)CP~+;9sJRMYvRX zR;}VV$>YF3**>gRaJjFhMc~sE`uze|`M+d?|H%eF^QQFjT&Unuo@)fIrrW8|%l70a zHuM*KhNr9YIbnm}cx!t4dK>(UHux@qOa06JHv1G@%74U$&q;+|^2xp}y*|%UaJjGJ zGJ&glm~VsMV1tiUr`OMCYt!Rju))7>ga6P5@3+C9x50C7PcP4fHu%*x_`^2%pbh@2 z4eqQ<FAtUv+2zDvYkRfP2Jf@MX&)Y4#AhM?$#(Bz0&uDPZ?IXf*+mUN8u~YK)8psZ z%qM@}27kzA-tt%Z>G?l@X?lFctn~P<%hTgIVje)%!wDOFwit)1^cT!c&;PPdrN=*O zGoE^GL3;XDoAE`9Cq4ZI3)AB*)G6Xp<<GJ4yMAJW&$scrggLOjMP!ks=VpI-pTkU2 z*kz3cC;BY$+-Sk6|8)uakOe15?tAQ2aJdh#Pr+S6k6RU7?#J7v;4Tjbwkx>Y2e?DQ z<$lFo3NH6U_N%za*RX=i{h4tEm;3Za6<qG?8&hzXC~sCEct^?6Ke>OBzMw{z#O3}> zx$juwa=&h#LNE81x)faQ19UO&+};EULqv69c1U<g&>7-R_Q~i)q+1kR$`?`aenBtG zMe>pRqW`JTOaG@-#FO-Le&#L(m;0g*D7aid{k?)0X7L2iBgVKSf2mJH!R5G&KIUkp zm;S(y6kPg6wC~nRpPS2{^D-vla{n{7^s|eik;roY^A-gkn!)LgD7f7JoS(_xOFnY{ zb3nyK`+h{h<^JdVNfY_VaU$)Hq)YOb^KY_zBre;5xI!=O(?5A4A6dV?so>I&iYvI> z|LmVKk&m3G-KyZSzQ3v9vVKXskn+p<!@GpNNL;oj2NYb^-x-$vn#xhOdk-kM-2Z$) z!R7qS3`_q`eB^vrje^T|FQVYGU5%@_hwE!PIlQ=JzGQn_sNiz{^IZxq_dg#{aJm0^ z#`KB&WxH3b;If^(MZsme8d7lSC+|~mx&Jx$w2A4;c8{a~`d=5KQaK1SOfqtd(0A&R z5DSRvo&?WDh^m@9iSWR#4g9|S0)8j)DIH;6S{{eBO9d{fy+HAsP$gaYLR4${s9lZ_ z@%&fg)A9z%C6+A^;+IVS90`a!(b6UF<TF#4>}|renm@^J&dGN!84!0j?&<Vb^KDL$ zD;SghsEkzo(KHIBUx<I!tDv4goo@vZmU7EG|6PzmgvW9bUwtFvNqj8=gsJ&AMEq64 zZY8~xUp_Y=kS_mi+c?FTC~#s!RbIxI_H#Ngwd^V8ws!ifX+eHV{#E5qCp!`6b?_*o zqGIIWaUuSx=~FY8F8!=Kc>JGC;&=I1O~0+9HrPG8b&gA1MRVsBern#8^X3-2Tt$V2 zg_ghb=FWAw=HkLDTs6}+l=~~3juc0Swjf!)GCjHv|1kCBW<j^6Yt!)snkh!fXh*I5 z2C}|0H#F`F7@_fLfwIu}X@Lcy@u`85(D?Mg+{odEzQF9z_$9$BjgtLcXVbTlMlRsr zDq``b1rYhPKsG)X<p9^<+YLCwor3$j9x}`+bOwPD)eRh16aGD9z}K?Mi~2_{BtE4D z`1B{R(pmUqCGI$@qq7WO12oJ-rMDQd>m9*A7$tuV6zV%Y4sXmj;t3u1cU_53P#s)& zGXGgbpwCu$5ifQ<PE>uV3t!R;5xR>C#xT#4XXg>$k(e<QIzFXq84^EB(9ux|QGMsM zaH5c2g>d|(gNgo9*PDq}Y;zTK9)O8z>vP<p_gn{{sGpL7yon`vGR$XK(j#GZXw7V? zUpnheob!hBgwBF~_CP-`v(s`q78<d;@W~>aDp`+@DAAXpaMa2RotHtbm}htCq|QSz z&rs>q&Szqtf5X$>(D4N<k)V#uM<}}*@gqrAAha*{=3DowXXfBoqkpcjNC2&}#Pu*) zQPI(ntC${3FX87CQMqg-z9h_JWM|;cWPX7~>uiV|4BU=_DlH8lrq;Q?^v=M=rFRFP z!#6eY9Nf<(@|iR8xkR2@$PU6!J4PNRdyqN)qs%eBfcwCJHHofofv)H1V^orQ`M?BD zeaZOW!}oi8`k9!BpIF6;$PGJsp=;*I`APkdq|*YYm7W%u%F}o`_>Ra{BA=Dw$hV=g zRCz&FAK(Ni6jm$#O%dt6OP@l^ia&)Z4*G6o7L-!*Z07~~&eKEVw+26n55Q3=0LnJz zXFtv)_wF&vaEKf#2P+q0PoeRf1BXK6cj}SPLb;)FsQYXdDAgmw$Z%+Ufgbq;L+0p_ z+gQM*N9d<wsG<#hdgKc%c$yyB$O2RK2z|E(6;_Y5A`ro$qVxkkBj#~{ec+zZ_?*D{ z(D<xCAT(au7id8WfhH1THAL?V+y-F+H-*OU4lGAa?+aXKl;F_E0hV8V(=2cjO~fVC zM7XHFpG!@|Oll%dj~u3Sf?rAMyQn`gj*?A23vDHa0kUtap=ui?zv-M7TJJ!Xe~c_k z6~~99b`wA6ELi<!HRRp+FYx^-#w_vW3H&)fZksoN>4Ly5sFSRkB<K(Tq4#7WBgsT6 z@fP;<Imq)5gU%r8MDqga%=Z$#sq`hUIgA%-*?==~riCxJhQuU5$oo{>h=GGqko?iE z+{9+fx6W<PJS`loV2+kC$hsdo`gE{@bv^M%sey@R_@i~XI1-5!O~+?gvD{4M31hmI znE;IG9a5-Su7!%{;EZAYfqs2wf6VK4nB}=~7phDYHW@vWPO%{SGomZ-UA_#emvk5{ z8K7a}gqB<A@H3qGMPICQ(Yc`ou;N12o`W~F@q^{LWaUVMBCyJFI+xN{vQHQf%@;(M z<avIDlr)^fRF-%P0hk8#0^7qUk{Jg?e=Q!NV!@pbzJo+5Cchvi%km&z5A_o~*TH^# zIMFe(7yS*jClH2w5z056_tJ|`vGw!^8|iz7XkBr5Zh02vuLnnwoHPc@L5kDv%9*wk z(}5xX9%{aNsNpwaRj>i*#T-h!1!=gvG98|2p3XKDD?TQ=m1_}c@k7hRxBOOQB_3i{ z5TfKH#|Ma`rM;mq4-V0{2#0a1qaPoEjMJB!M@_W0&G|?CIJRpHN4xYAhgcv#chCU| z@!`J{KJ(f54wPpY$7*NbJESPGRqR{1RAh}*WNq{%$8JBqrx>Ex8}|{Dy+&-t%~XwY zebI{C%IE@o{P;y`MDwT#W98;EbByrYs1%2M=8d@>oqqF=BiE$rbIC}@h4{X8;2esD zV<XO_JC2K3218noFGrfoa`A!EJYw%FncVR)5*ug4ydQUx_2Ju+J;#EN`)B>p82BKg z>6M57{ontc6_dxjRjV`?_{@sj#2jQ1Uq$>gwHJennAc~RT_}*1xrTYQVJ>wUgNq7~ z8+_q;5p#lZFBZ>kaW}-hO59h8dyTj^ihG;5ck}z^5Z!SZgPTcVbfHg8_78vK9c=O$ zXQ}1Vc^x<@aHY$L;vn|k1BhZo7en6OAs&R-y+?QuJwop=3*O)|%)U5+#L~*IfcUi; z`tIDKgAL(v$33WvMjoF3s_*uH?w=?pd{ETw#IeF-j(cWR>br;hQ6tN!JMN3MpEL&k zoM{ZamFagp?{_?h7rFlE1^$u?1D7`R9KPoq{n0k3zWW4@7B4v-xXOsS^TO{s8q7e| ziNB$Cqh9)>w`KWDs<VPaWud!HKj{b_@ZeLq4PMjj9QhUM2`q!f$Zas&oK*k*hx31G z!MdO#D(F1A@1-s|+DGnpw6`0T-iU@mxS2}}40BPT5nV`k6vRT9=Ayi!e$^lPzm5-+ zwuv9@y&Ne<`wDsT#kkFS#$1Y$UF0%Xp2yNmmFM6h7YQ!pA6&%ds`e)9Q*<SSEct8K z=@~1}D|x8{XHkR6G5yiZHYyOe7M<yhF3N)g<}KOd(H9PRGZvkPU`MGD-QY5ZK)49j za^}dnqMtJl>5oodit~+U@;L4979BQcrqVMH;Hl^^JmG|Br#3VF9W$btqbN^5{B`pL z-1NstYF~6CsoE3$BI()}eQXy%SWVW+VcD-zd4z}vaPG-rreFD-hvz!osKar;bu*2D z*K>`j14dm14D<~I_w1s60qxA$$LKVLiv85T6!pX6{n07<y?>?j@$L9<0)g;&zJ4E7 zA$<N-E4>09U+HCmtjIw<@&b{eL&AaZL>+k;&;FAA`ldacIxBP>{?jk<5IPR0=|?Ou zO^<w!1>ik>odu@rkuS1<rbnpWQ%1GB%lbyH<L!URGxvCL4m+jfIDmu#^B@WF4qOpB zJ}poH=7Eogj!z9-5IR0RaCYdp7MMZhcUMmM^$q${Cb5egT))fQ<2R?g|8hA*FW&=w z<Kw@q9MA|%xR)0lOni#k!Tyn7tNq0&KckrYsgKhL8O}m{59>Lz$qAhlD*1Q-XT+U{ zb2yvP1;PV`ZbKvkZ|337qTkMDZ_z&zA!rgCc;{qIkKEz-)%fnR5$!-T_FDW-2z9fu zHOUYC*AbFu*lX^kehmFrbN(m}Ri%Cmr%}FB;4@z`%xBTP#s7k@p8BFIU`Um@<Sswc zaYp2oz~!N9;0gW_!tueI6q|Z7v|h{&3FNyVVZq+MO2@HT`1<~Pe!b$oO8Tbu?+_2l zDmwWTSyNHJ$frLxgT7jf<0b~eW3E6|cx+l=NqFoueEWZFdH_x5)Ie!ZKgPH7!ebk{ zJgks5f`Jwu)4Q%j13Gm-KYJ|jF>@?D=<xK;&15ME{vK+EO<2PIt_LWs@Cip?x;ci3 zf;jSuVcx9;U6mM`!7;oPY9o8_$8K==OAd8iF8z?ok`=j~r+Y%zEYN%CyZ(Z|57l>M zug^SObaLboWZG{YPSBxnI9Ky(qhzepH){+dZbPpaHE^=se0<{{IzWE>vCJvv5QH0u z;}r0nSzgC8-l79dhu1xay3?zf2R826y$a`|y}=G-D;aHnj`e8C_G%ebU|3eP3yrAt zjIc5nX=ku3k8U@k_#+h1*l-D-eK(@lQeTFKx-5(CHw$|v|AyP^uD?9><5yu1c}B@1 zw3SGrwK#yT&3f+jUi2sE;Qzu|MLW=#|HT+Y<06kLi*^(ug#rSSWP@eG2jH@iQ46-= zeR*p8pFFJo2`CevQhz6F<B5~RExI{`n$&fp5v?jT>d*q0wx6sjD3AW27qDSIT@Ih8 zq%!*BK0LxX$xYU$y$(;w?>p!CqIdlPUi8VpQTjl2@suDwD*Z0Y2VBwL!FaRep=!{b z8})Es784<f^7`*tQFPd6{)0}prC~ed(|77dwDdQWW%C7n=Nxx&B2dD{vf=T?!8em~ z?91A<1T_5Mwq*Gjb?7onpQhOEYvu&uQNB$sGCiZ;I31ss4u7yX_`8wa7CuRl$S=m3 zvhR6rgvaSw;aSckDj*Yq?ZN5K)5BD6O`JM_nV>5?`U8WZ@yqm{odAtk8=T1ZXk>-6 zkDmmBV;bOMjuyQV8lN4wm^^CO!E^M{^sIP3hIa$QC^tM9bw|i2%quT?(<m9>!-vkP zq2k$cya+ZWhdNQWweaw3rR9M;!XIk-y_?YhU_5Z%H<rfozi&8RsdT&vr#^TT-fGY= z%p=D8N6I574ZWOm_nDKaNx=)tS$BP)(0e>Ejq;+C2|8g{=mkZ7h}B>7T{^l4xxpFd zdq=jXaseMYej7#vj;9mrQt>8eVbg4gNLs*@n;y9c4;WMH5f=-fb2^I!&?nK(3O1tu z5b1=*(I@?#^as1qw@|+buFjDrW=B1*1Ur_*W_%x6^~dt7aOyKuER=qj+LN6asUx-h z2(#3F#R5p}5f(sd53>Mz!0#eJ^9NtY-3ae@Al!Q|!r?bI82VG6N5Wd^)UMlmj&A7n zZTxV<SGH;!?xVDq#+rYOmJKJ&IF2Unpv*@$6N|^zpetclvVDQN88zJhYmN64h+qti zJB?W{V?1Y=F9csp(6F2pKO1HvGl^_M%u#L#Fp9)Dh7zJ&<Qb$ZijJZw`Wq@tu|Ik( z9p9aYuXUrxf<1X*sWW^f@6%|?rH8+XY@lnHQhGDDr&5fcse+Uj9i=WO3v*)EqB8RK zt<ro8!<rdX%<$J=jlY9&Dp?Nf)8#7})FV$ICS)&<91WEDP^pcQy`9%2$zyNhpol2q z`b$3OytMq9Ie``fL$)kU|8oC)v{QGtM*4%_@MDZrF!EI@PoFu+GVeEwVV%Wh++v*c z-t((lks!Xwk6z>ho}tYZ&^Ux1<nQms`;k|r{6snO<J9;f(jWNZ$hT6@ze3!TBU_UB zrS^K5`tvxNX!9S`qmNRLK8BCYL%9VWj5`bdLM7CZTW+GWf8BhWoQY(kODe>?K{M~L z6Stu3U;)YUpHN;XEM8IpXc)zn6@M1Tg7N%Ei;d_iOn0zM7U-M4f^5lBdkA4FwcWT| zO05*_70Qd0Ur>ajmS2r8K&xU5jO8|Xc###bA|u~U6qy@EhWX>Yo%p6dVo{uz<GjcU zsK`EEUOXqTHd$mi2Ytpp%_y?1RAiTqJka;wF0TT8v;V(WUJv|N<;D9~>Qd3W!V~O0 z%F9P78Q4=^;&QZ5*7BH8-l@{2dW5sX{dI5oWB&Z<7}XbJOi*;#LniS$`_8@Wf4yk3 zK~Ppujwzl(!`v@lpo&aScGl?T^T<dro3t7S$0Afn_Pv*}XRJ@<OYzOJ!g6#}@Gr^= zM!wt7x0}2OuesJWSeB1sM9+L@p70RhQ4W^nGEg`ncy^0tL)@#x9X=2~j$e<GP}`@J z{adV`^g%TM$1gyp51w)%Hu6ccFvQ4b_ET=r(|@wktijP4aQhl_J%jE%44XiBncpnS zvPj3AC~|$$>O?IcR7JSdNS4Znxzt8<jz7Al7^j5=E}%nqm|U`7@}j|lkQwDYhXde0 zVJ?q)Jnnx)F=2xvLd-$lm(?wUzgLE?{VF3ieaM*gu2FKJ<7^t=V|wFoV6uS&woJ_I z^rL|r=t_W=q9aL^5I;|1<N?+nCC3A)!9a2(5ZcWeRU=wmfCFUp-DOTc8&$jy)uLg6 zm*sQpHwONcX=JSBhgwnPWr>vYGhgW06Z#NcMS0fQ{qGOaVfVe08^UEy90x)}9Sk1Q zjT@5fn`nQ`XW`6X)I{edZ>J(cb#_x*<f3*cFTMipHcGS#rdJ=ndpgFrnA@TWHG|$4 z>yhOs*zi~eP8C7GkG2E#<4xW}iE%a9c+KJHt$BVE-up=-<Gelbd)`E63U*z&(emjh z^O;-5{XRbQ*|?8{u{8PcXSU>rfT4;!o{2kW7N5kXIJ*xT(I?q!UWhbx`(%DE$iy=W z2|%9(fQQ8oFO?K|JbgNGkk5fGq}HiF(S{q^Q`XU8{t4FM%`f(2>F_sDMU~e)Hfw)) zJX4R1z*Py4JN2Gx5P@cf!|!4d547<6E+=!s@Z@a6e4e{`kOVBr$Kzf-G<rE1?_5y8 z;SfR%Ag#G{GU5n&4?5NYi~=;t$hr7w5bYJmm@saB(Bv-MpNSK3%<M!V6P@?pY%NA8 zt?(b@4y`yZH15QxorJ#!;)KQ>fzP43B#tAozM{i|I3q<Ie4zoaU#6a{PrMD%u|Zo$ zeunx%v!Ahrn6cguAN87m9(j-Q7+Z{UeS9U)5!Qh98^XwP5_fXF_GTnZN)L=N0I{x@ zz_DQ7JuI@uAB8=l$mkGn^oBUf5RTAq4Rc{`{1-SY1)fA3iX1WgCJ0yM>OG%hu8|w3 zTpiUT58;6h-zj$ZFlon+abvccxRsH4k^4IwwKyIdLWS;dHtRhrStz4J@2O;=%z9*H zvY~qqB}xJGfe#fjD_kn&#MzJ@b^<=_de0=zC#d&)0626<M!nwi9zw{_BsSZVc%L$R zsy{&W5sg4{wRGb<21b2GbTXL|6i|WI1|tFlatFQnY{MG?&`Jfy5MK1$(F$n5i(VyK zQ9yy>XvOsK*c3hT3{;Qdz8)E1<wBhmRrbeStVsS6zXSa}6g+*`cL89PpqC6MTIMR* z(>dAP15VS!cTS(;j|MR}dUtN%jA&UtT7_(1bb5a83<t&R!6Mi#`EE=QQGLO&Xqc!+ zef63Nzxf7w30jw64JPKr5zdWw!7ZUPAuo48aunZmOtJR#Q&Jmt`%NTd-c9o(8~2eC zEUf|fQ|@UzoVXII#xut2)djrq=y@fuShTPK1Ji?f`tC(F`tFr^jy=&u(~Y{rd;xS% z*L*a+84W%C_nfIex&+5mEz1ihFbV9(sX~utpm1UBMg26yhkZ1JGaQBNf!C*^V~?Z4 z^Y#U5_$9{qbS3>edw-%}|7K!=c6t*zU`EeD%nA)|4k1hzpW$Buk9|sDr4ijon`mGW z<>u1{T)`Mk8K9>(%UlT8;9kJm3Lmsr1>f5k4EJ(AU=*eXj}AxfAtsoYbOWQ;=z$A~ z3io1hcZ<6r?i2h2aNSBcE(Eu+01IwU1$U%^lr6eI+s^_lcpw!Vl0kG;Flx+vO!Ss% zJ{|q%5V>;b@-bM)x)56wsx<epbs@eW6n@7zw%6e^e~Xy{)~@=^XK@f;AiwJIt=Pk+ z_Z&k)?qh>!mC+<pC{yn_10nNJQU5?9<Jg|ezZnk)rVX+UghqHU^Vl9|U}^(B<H;F* z!x6~XKLzu2zoP6tMPkS44^}1~r#OLD-iVuFnl$m7<CtpNPbZFHf{+GhzG%6NTGH>) zY>8n$yb4l5D{Z*Zg`oV_Hi996qKrU|0$pW>YbXMODCuw`!sbvqZ;3i&4EOG$1IzXq z+^>n<>A-hWfBsdL{Rl0WaXU`t?QJL1M`V;*qCT#I@Y|WBg~ac9>twa(=vfBN<D&V7 z%V~QGZG|w;qUpnTXkPKpG_N=b^NPU>FvCyIo|yN-nM^o$X;B{4RS1R_Xnr6&Ja$fC zgwN~a70N@~i}`<=Lc`k33O4n<0qbgL(rK=B54LKw>zHvP9tN5S)U`fLX>u9P3}f2) z^f0EKr-zT96MSLhC6-T+lN2M*i}7)MKIA|RANdaN=h;*(8QBqxc9YY!Ne_)rhIP&| z<K#&(mnyA0m8$PpoiL9f2beHxJGso|jjqLn?>;(`@d-G0g_t)vjroO`Y4Vi(p>vim zTKcN_2bw5*2gA9{e9V;n(J~{o35$nB*!A0@qlr$)&YG80`$FBs-&r>iy#SOOKcLCG z&KV<fM1C1YJE8*To3GMHBpW=?Q2p6so|jKesVJYKSBm;mP>MgVa&>QsddMmv2E)5( zO@2ZRT!jh2?y27SYh2jja~JxbTc{Jlu!i&nqih!bBAI6u%ySiQPtojkzko%aEVSFX zsKHo|#bnmY`lhQOvp;%urTJmytbgdem(yd(h%wj?`A=fDJ1)!bh%pd%8nJI?XqhmJ zjen${-GD<E&hRZqL%BTvJd9!u6X$ATDgk|paHQ#>oNCv326`@Xu6~9rVG14lC88_f zWTOzL=kr=#x55Qx$j;rUgkTh#JLI4BKJ6PrWsu{6@#J`5KaB@4sWE|vi0cb~2$$v7 z+(71avC=u<ij1!)z{!Mu^TcAa^bH_|*gHi@EjFhQ8yR<_r<ZadZFGZ<%B;k<P%)W( zQ}>v-k3EGTKjgc1<j1IAzQLzSQL+YG>~lk&QMX^;z4RP(g||DNp?;7$M2uthbWNqj zI>xu?FfB7_ebC4Bk!Mo&AXX4l{7`k`Vm!vihhuD2fTl)J3D9B1zW^~X5ImRdGGYz@ zHH)kuUc>2~C;_M--JmQ)0+8KF{>kxPUU)aX%m`f1`%Bg!nE#;E{)wd-m^VBlYjuUa z<#BsU3NUeaL<G!F#`@AeYya(8>5pw5&ca;Fjcmf#{0*Do=c6RQxw#unw58LIJ-~(= zMl6y~J*9yoe|y;-10wR#R~bb^28coc{ZY1}Zs4$CdZahB&xrZ*RmQ;aX_yI|VH6!Q ziUxK?uoZLT>uikzTfhvQj?LJ|HXosw=H?@i(1`BtrEUUENlrA}hag#X_9RM)kBa=! zvO>S(Lz=#+LhXGbPO;2~>Gu(MqFho*7LuTiM)c<5z;qf&RQaOCo|9Esbb4i>9;UCF z6WmBeV-(?p%5SnfV&VzTSU2PWGaPU!#!;A9G@|#De7;zhqcmHOG@+h$U0pg^k1VB7 zuoR=lAD{@C-SKtGQjA4@4ybgJ-qQ<)k4?p&k=tO`r61EH2k@rrwo=xP>XCn^sA2j| ziBW>B75e9Cyx|FLa9o50o%-fC=n?02Iwp)SOSAMyAB#!vA3F_yeCGQ_{m8}0a!Tg{ zJ>sVKo1NfXI#Z8)2~VXL>YKg<($Zu4=4bGHMHCO_V9~*WKj*q5M|JNYn2cbdQ!8}@ zv2OAHW4Rz;T<LY>0`LkSpP@%ShCt6jJ#rfEMMuNOkt-+kYQ(}+pyu;FbI4ye{Z|NU zzFGZ#vmXQf41dW1eajO%pn=yjVC<E%evPh9-$cL9@jSH+v~ZEP<K{I-CwR$TNDPO6 z2T~}VruWQ4jl_cXOi(6h?v47R(i}ZP3;3nF-ZK-}W3=fzk)Zycl?!qn3DJ8j2OI+m z-A-cqZtsC|mpVwpPAqBX8CbQLdVsJ@e#-!wHT6KOSGyZFd|VrcQa2p{i=u<1lb&Y~ zWILh~{RlxRJx6gjVo`3|FB!9*Gtdpg&C>59$&9UrNq$F`VKTGwmylU*z8`K@dC@U8 zYK8t!=6{F`z+=O<%YnCZ_1$|=8G2s==lS7pqR#3uN|)>yN4tl~^r2_p#<301rG6hB zEy~~NyAK=D=yt^LnHWp`VjDtK9O3>vbY1>v=}VPnH<lCV8<IwJ#v#9B+-Fu{LJy29 zdvKI|Hx_%U!LBmuMvEAx_JVq$Ra8d`Y5e>>sv8L^6DkLP>=!)W=wU_;EWYaZ9)xjX z1IMU8cKayy(Tt(L%QXfPxfrz!>AT1L<}gV0-S3f!&_TNQZKVhUZ)Espz1R>weqQH% ztPA(P0{!%y)O%mR-D7^3s;aATUO0`@=m>JI(ZmlSukauAM-NWeU;Nk^WEY3f$8x)1 zt$Jc0^-P<@6F*Bm({DKv-$^~ghP1>NQ_s+cme`njMze)e)l<)CzO+Pb>KV$?64$4m z$^A}vQqSa=B#M&Hu=6}ZRs&&vS8N8GWhy!r2dpJt$NVqhuxHGBv-aa>AT1s5I-l9~ z74L%zr^?2>S<Q(v7?Ti1<S#$qFC7OSdjRD(Yrs5^co$>Y%4lXjYXd7`23dpQVag;f zQP}j#NO(~Y!t@Lr9K1^3R1Egq>X`LJyW=n#%x}gq&a)a0vlwPSiIa%pMeo^N-t&qc znF?ixoAbLJi64Nu52JxBxR?1wM_FEFL+vv&^J!&9n%)!O!Mg-KvJUY`gvLq-W#NrV zjL36~j?v9UxabR9DEtV^l4L5GwOE+Z{z@w|#-QjJ?@rJ|^L`_7+!Ey|!i)@QGe?3G zyOPAewh;HHCr)wxHxNXb_E|gNSe}mo8+sHGuh@glQpg3c$dj-G&memw3zgaVH<Tt- z4TC1!+~n02$D5do5xm5QQZ}F%yqic6KSn+XwvVD3dCdKZ2JlvC@;Q@X#_}n2C0e|e zMGHR5rd2C5=H?e+I#Z_VH~$*nk$`DsU^0dLC3n$5Uk2MNz+8*Jk~415dd(L=MQ@-6 zh{ftBON4pBh!<}Hfz+qW=c8#v+{m-hQ$md{<(!N8I3@x~ix&eXQK1#`0}hhJDTxg8 zWw^ib4>6g<L}n6EhQLR>dmZlxE+7JzRZxn`ybH>dJH88qs=$*Wuq@i?`OMS}2M*FU z98d#^_dO6KW}*aC&HuZQ|8~5iBJ@E`SyYaQ3xy?Sr-{=k;_!D#Rs8htToq@rDA27h z<2+Vs;3IV&AIHRGN-t0W+$OFwLQ$5aLi6SLVL^v-12RD!Oc(K=fk0KmNt|vh)i49r zxE%XQk@*KP9iBLw8W_bie=H=fXYB*GUw2}@sHnx|yh3=*{&3uh?UeeaOVQp^g)A18 z1Kne?a(o_%vv*954!7GvLlaS1K8M?&00wq$v>ceQL|_#fwL%`FpHZ=vlJUWtVxOa* zwU0c}(5_8LP}6%ZqO?R`ISt{^6Aw^NK@40zOrT?fE#{Ca@h1xtcv+Rv{CvIV&#+)x zA%QcErJ5&b@<sEa%hY$H=k7oue14ReN9G`tM!35X!MO-}v2Q7UVTAMu2Ic|r@HISC zI^GRE(St}(0(BOV^U?pnt<HUlS`A+`L^EvuXo2a+RxLF1Xk_{3ogR#?_d`xhNv{MS zU-Vns5P^)O(9HJF`g6lzS*Ft|*69YzsMmxXcNPMl>lBksloRtWW?3<B&S@!#v}~4@ zVt#2Alux-KIS}l_t!-UvozD!7F{Ed!c$xSuj5*nU|L5g5=w5|baDCiWmQtHoVChP$ z16d@_Zc$`J)0nscD61CnOJ78YjY0xTgamHpGgaxk+nl`3&m}{?1hO&$BN}0&3}3X5 zvgV7nar$U4O^xvwm}-Eb!U^<6yYrZi5+h{qa9RI=JFy@o6dlF{9#%#^t%Xqd-`Zn1 zhI}Tff>;PLW}V>r#jk0^I4gL%G05X~6d(%C15*boE29|s@TviKD)CcfG<*`XjSWba z*|-ngDMdMjG{Q(R2^^+5LA_@#35uLYE@M$qr{TR~tFqpE4uEJDc0D_uoBs<M-RYaB z5OMSuY}5xw70hvL{7Xi3M;2tkBm#Uuo)yv6PH_4XQ&}OgxyVXd9eE5Vp<~YN#2NUN zL@ZGFH&3)&gOPXZKiyw4ruWc6>E<X+xVE`_oAWpLVww9Y&A(KdfAY~9H|8dbP;)T| z$4}4P`2E1OjwR7s{-kxz^;q`_`l6djIIsCvn&R+ajmro>4NcA+;*vV{mX}=J^}8h| zqC#QV=DRw-yX$8(Yt*LiM6#4g={YQdbqI~3Tv?T@Nn8mqd=fuiNMLqB`ZcRjE$j@f zAVI%nAuD;5<|CNDKqc@)_CyCW;ujF+{XB3oJU&U^v=i(mBuu6L7)pb<e2&tc*zR%{ zkPKunEKhojUxaNVWaGbsE5NG7Q{=nGKZ7kF1n*%m_mM`v6h4`u_nb9BzNvT$KSAuK zV5{VNqQ(ias2Qk)Ra2&oN@|IqO*Ba)Xf6Z|pTrdSAR>`@=K0`&=IZw@fP~CkM=F>G zAHsXIn`D`28o$P<QBg4dz-o!!+Y10=koosBYYeX^>gfH#8vBiC<{qk7Y0W+cV`4SL zJ0XdAEC~pkOe23{8Xsc>n1V~Cqm~1v%l0I$ko@1o!X)<&XmjjK?5UJb>ydDYx$p&< zAWuj_@|c+|viCFO`){!Kq{mq{d3p@xkv6m2@Iv~_o~OP8WhRypH%t#;Fs~(k4@1B> z<tz$6iST1*Q)nH9$T3XRQ7Dr_H&KYb5|LO+p^s6hoI+<(Xg-Bbr%(|>Y{m0W2+%S% z$(87X^1@@-t3@6MIb!+)duYx6f&Qs`^qrV<gxeBd@)}%+2pj@$^cP!UTSe$9F*+%S z`g~CWjJkt9$MZDmMTD2KXtbL+4V-z)?thL#!n5DYO!&?`>J6Dn_lK$1c2GY^bAZpC zyq^{`Sl`HBp#?04$ZS81Kf1*2HBX>-g)_CJitVaewo2|{shssE1P$aC<LR}STw7Zx zxU(G#v<xJBV1K?#CL~fpUrf1$t3_1E9~PcKrT096%I7zipx;8GCMC*JEM&=uRkFla zXj2w*7kUmMhlvoLY2W5+@t?d1y_qNY{AO<a-|$E&c+A1XL!iVsJGwNFZ_WFl=ioil zZZ^#Lt!$kp{=K(AOTX*d@U{`XjIVeku>Mu@T-UkDHIJhX9wRj$i(g#wE$rE0{0Q+6 zVf=RaNEkm%JS&VJCY})<pC33sJbq4a*T@rmye`*6ej c&27)<a^@Tvl8n7VtcFk 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 Gss9J`Wlzcg diff --git a/lib/linux/libogg.a b/lib/linux/libogg.a deleted file mode 100644 index 1da4ff156620b566a7ee1b1951cd2b58a70b5b89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28298 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 UF50K<x2yJtalr=-%#H2;Zz931Pyhe` diff --git a/lib/linux/libpng.a b/lib/linux/libpng.a deleted file mode 100644 index 661e43a1f72dc6039b7a7ff77cb4641d683c9e83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246762 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 DtaiaP diff --git a/lib/linux/libsteam_api.so b/lib/linux/libsteam_api.so index c42f382adb548de6b1e795ac8b9dbe49001de470..4a1260ce813d5c4502168de6c58257336170fbd5 100644 GIT binary patch literal 383104 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/$jD>zx<n?C<e7^2O&kmDX$Nct7K6PB5gW1d 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%0AWXVvzid} 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�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 K7Y2);ng0(|8t^Cp literal 266651 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 S^;m|(vGknOL;}h|Q~wW31*NtC diff --git a/lib/linux/libvorbis.a b/lib/linux/libvorbis.a deleted file mode 100644 index 7a74ca25c98ae982997a2d5844f4181b27f737ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239364 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�{W}nA(6`fn7%*lU0e$8V1NwA> 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%0D8MU3Xd7P(ILHi%XfI zbnjovt4u5XUz41sUM-7X_WU)&fd71UnkXKBexPb;ey^0@{!yHg`|!`QYr-EYjlZ@u zaZO!WkMYm^HD&s5`G=Q2(8mAB@E`wb{m~tkF;xH0^Wt`}>tJL1|B|C>IgSfiy1A6> zUAV5*=W(KvN?9}aOJ>EdN2alxe$Uc1!$MB7dp?hGWNCu?l)B)vkG2kba_V@8G_33u zVq3Q~zGiSHv(8(dvgWW)X2WZoRyCefrkZz_4-Xjdis-&N+$BHbF_G7k<r!5p^R0NE z>sB(jQo+;m9Cy{Z*Y8=v)f_76kuz(<gE!i5J$WGE{8!Bq*IBNdlE&9I&m->zPfc>F zWGu%r&*MDLE_%T$OJDELaIS{oa^nH4isLoKE*Y2OB^BRJJja6&YD@03^O(bz8$3_y z%#v_CL|bvZhT`Bwb$NB)KTOym`B}G+Ja4BwHSr2(nz4zHn;c_7DR-s`&$A^xXG*6u ziigvQ#K)Qehc6e{LEI<HO-s9TmbW&$TAt*E>OHeuwdJZWO2+<pOoe@o^WDb(C@Ef+ zueSWMf4O-nG}Mh|bt|54XFiV;l^k^BfeTIO{~MdJR*JKC7d`2H;UOvEheGu6Tp->B zJ`!J7G@|WKeaL?CX!5zWgz~Zvkn5N`wCV6K+B2jkzG^i=qoUR*zNtX#<sMjS*b5dl z2cpf?FvQFrj_eNcSTa5t9dpxg^t}>YhpKV3vy69pWL$qGWBE@RUw_M3TQ$YWFj-GA zJ~L0@6)U7!ev71mRf;65p3Q_;QeQFY;Y6W3d4p)S;GBqh^Hr?0two_RmgH*Gkvi!O zptg?5bnM_n8ZdYsjgMJF6>sgNebbNAQ}q?Hnf8Pp=6t5=;W|i-)I)GUZCJHzfQe_C zVRa`fw3FLGo$84Bt$+bjJ40U56|4I8K=}4P2-wyiReA>D$Ba<q#D`<j=SUoH6pi68 zV?kjFSTHpS;lop)Qz;E51JW@+MTx0FDj1rm(PD!dTk6a3ij?8DO2(K%8R?H@7=D!T z*LN8=f62JP*RI9mHkI^K9NTB;IVbJObAE72C@jt{Qe>JwS9}UHlMosp<;t0oqF%Q2 zChn3HH2Ig*x=mdX_o|IpD0_-qcZZ1dilfDnZ_|bQ+2z7Q-Yzy(&KCy3Hw3a?i;sEQ zw0o&Ojl5TncB;*2bxK=GIHjOw2_BRc-J2r!1XIr*F|^%AO(U$v(T@RHR5g1RO=_@+ zLRYMym`)ogxp*ttAK62Je;uZo6ACCvzCa5`-k>QHAJFx=&#A(?_msKk8+{MeM#!*A zaE+>pfQafy2r|S#Un4wqsE?;cjo@5liep>Mkr3GuWNZzyoo&&|tpkSV*`r!(XV{Dr zFe!9_;jd1JY~YS5W?p!0)D1P?cgL7ret0vaH*|jX#VBPzNRI}<$aWBZMGnU2%n;O= zH3Y$9hN5X;1jaUw#N`uF7&>4C7G96WJ(pN)oDqkNv+;QMB>|cGNqAE|8F@dFvGIBe zLRO_>VNe=s>Ze1wHXSSMm2lssgk>ugs?Stm*BcccyQ&c|NsZGd)%dO@V~&jsp8y%B z(`D?OCu7YP8Foiyytyc&|2-L>iez+nCqw=$L-9?<fgdt@@iTYfXTFE=n(?dj`LEMY zaj+k!=VWm_&uQQT;r#s7BIn*io;y3PH&dLw8K7AAAX8zrHCs`=|7Att&EJat_3KIB z+So{kTX&Tf)d`o{#AZnM3ua2Y>#mZtd+m}wjVh3iFS#Qv-1tGtzgSURb~g~;+BFo} z(_4xmVRj;Gb4M{b%2(tq8YsqMxUlS{6hB^$6(-NJMD+%9#E7wfiAxr1#D!m*#V7sU z;)L&EasK2fF(di1$PBnEIz$(V3b`LdM2BBuSWHE_a<?jN7+RC&>l#tFgC>+P#guj= zSWs@PH8mUCo@Qq|($-f*MjboTfDK)#v85k<*yB$zL4&Ae{V-bpD2m1$jwiRRX|((L zNIDffhD<(=r--afN@+8dDqo#J7st(^MPdOp`o5TIA6!OG6IYRYz&a{!vxzEI%OUgU z+o}55TuRK{N3~WTqWN==(t*h*$aZWYZ60}!?yE16O1?(6qi<2}xO=pF@*^sm`Ha3U zd`WXwzNN%XAF0#Mue9~R4{{38!u+rb@QbJjDY7zbqN<>BR5i>UrjLC?YrrSO04)M* zp=s|rFzQ+tcgPrhZA>trNkio8HAdp6Cg^ypDfADSVaw9y&{wy>ufCQDZ_^4bv|FRm zxi)CE&;}iX+oN7{TkLyihl+nW;7U&?)T^YxrW^?)0|+TU0QCY_C_8jQV7?pl`*cC_ zU3W|h@r3;YFNF8^hT++6FcaM|eU&e~tN5Yoke(R5uNR(H?}NC2zA#zhj~jOau+g|b zCV3A)Y+4`!mk)%`(Lv~RF9^<`2gAN{2pkPU(W%Z545$@`vDJp+_>ZAzUKEbCXCn}> zWf)vCBM}x9g==kxV@dIFoZLSGgO$-pvWr2zq8Rj;8w)#^I9z%d2QfMx84VJUyEy@` zDG`o5T))953H{D8x+de$;bbhgOM%hK6xh^AMU{k9?7W<c?j6$bVsaXmKS)ESZ8{E) zPDk(4=?JT%L{)z!{O2h#>@x3bs^Hv31<N!QXoCt<ud85RNsX>;)OgfOjRvV|=q^;_ zz#cXHuc`6!gBsJS^LN=?Mu<YjzV0$q!7_Ho%NU;_qj<Uu^CdD&Ht=`3L&mm)GSW`S z=zWgA*{d=p+~#`vp^U<(9QFl&`)_3Ayyx?uWK8=aV|cNQ&-{(s^Ed9mZJIWJ=ZhG% z`1>BpSivY{JZ5}k{9v%0q@?cG)c=xxiv7=VdXBYE<~e?SDx7A0TI3X;^xWz79y90I z;s9sU@0rd)*Rq|P&ARNYQ%_5A-mjj*Rb`_vn$uNLWpTKo=tPF1j`J+Vjb*D823om_ z3B67!43^wgB;Ea}I6SG6G}6>ix^B}*+PK$Jx_QW6>g3`k9d`1QY&Qi-@e86Qe{EU1 z6Ej}gvv{gxr8`fmziFuyGj*L*FMF%>xynB2!;)jtr?|7y{ZZGYMTHNgYCT^|HH?a- zE>$atoK?DF@1W|UheK@<W?f%Ap(f(Uh~}bbZ!6($(Owj6aukF8AimV@B2wRbiwm!M zino>ei@nal!gO+ksPZjF1dd4&V~j?M;?Egk^po+T_M=R(<jquJQgxO{wwWi^4Ot{s ztX(Sni&u(0eb<RSM>Yv>u~iH@x>G#y-z(04J1A<cKPu*hofN%o&Im`{i^Ar`Rnhj= zEz#`8eew0t6S3^a3!&HaoiOwJEUr)eE~*dLq6lLh`f{=oWsj;tW1&Z}IyET#v;hSz zu1($J>ylOX`t;1EAt{ZU(Ctdi==WE1y85mK^?PeYs*kOy!!H|(t8PoJn>mob<V?@{ z3pzK_g>*J_qNE#L$fTwhJ@)8E`Qv?Q$ElvQyiQ+|gZmM71kz>w!PGt?lspTDlD<tO zMJ*UX1FFW+DP<yU`j|rRVw5!LolLfSN6`T}gZg(FOBHL5r!ChfP{8U*^eJI7sXI@h z=k=yh`<K(n=kQFjUoe~Q#m}WK-RD!F^+IZ*x0pu1_>1JzOGz(hIW?KHl5&)*X;0`{ zYU{I}syb~XYMxEUYi*%9+FNPOyKVIP!43+&yo-LF*iGB^@1?YD`^jtlL8`wzk8UqG zLQ`fPqh?d{Y09LNbZXowI-PNvCXYHxKjrgeEMKGx>dVwrzDhsj>*PP`CbiDEO)+Ed zQoRZHsea}|ikkA6D$RIGH)j{oqxmn$=&x54w)_p9TK$d`8$Qsc&7a6<`xlDLEvA+G zzSE9FKWWa<-_-b#7S2A_hX2zF*!fHc4~i<{>hnsN@uD*HU+SXc%PMI7vMLH*R733- zdZ_qZA9J5o$B8F3F#S<Yyt!|HTXzi6>t-$VxLO<MF4RH6X(Naeb<yl_JtXcmM*Hpc z(R-r_uC8c+oeLV`<+Mgf9M>4#(wksJv?;CxH-)-)GlaUEVYH(;F12iqzQz`)q}u{F zKeoW-`z`V2v?a`UTOoEuE1aKf4VT2$*f*dJ(5Wr*TiU><dOKWv+YY`L+vCXg4rnpk z7HJ7~$n~?wt+oz$tmlX`PaHA(kQ40ZJ0m+rf#NO_j2a63ej~8$Fu`UP5F6?Oo&_Eb z+8wd;bVt0I*9rH6-7v0IXWV(;8BcP%V3EolKV3YatK*5>Bc7;{;f2bsU9se6S6t2Y z#>TjAXxPdJ77u)oKes!6cJ;-{U%qIur3dN;`C(3to>;lJCor@Zh8p&U$)4WmGq?{L z>h?v%hQ1&lf6RO1kCdqaxZS!Rju-Sp`>_6Ksx<&J=MBKPwt@J5G!XCo2O{FdKm;oX z;ig^?F3%5wuf<?^=M2V4=V0U?4n`Nx5V)TSK|zmDoVyqb|6W57dT|Io`i7zE=`gHt zABrP~h9c5291F6;;b#_snR6l#RAm@)Q-)#j(_t{^9f{g`kyza-3a4g8Va$&xoDUw3 z?fJuD(`p3VvPR(Js}XSN77eQn(b%CIgZsfT$k`VI3!_+cii$<G!?8%O8;6AvaTvBY z4$t-C(WHMos;-O2#!tL=O@LWu0)AXfz}yCj_%t{XCTkK=<wYX$S|`CHItfcQC!yeV z5>8qtV_8HpdaX*vqr1uIT|WhDd!*pO1nx5&Oo7426zH`~#g~4mxH>r%oA#$d^(qyf z4bxD^D-92l(y(KB8m662L(-QtM4F}}#v>h*qSLWwb~-BUO~>%N>G)JZiKWezh;>&Y zDqM+~6O<@gqeR?sC2SrkVWF);KqD1SI;x=TsY3j46}FC3L0Y0h?OnV-qeAW@6*9l^ zzNQ)-&DF4WR3oLU8m$JZ(IrNW!cl4*o}q^23N<QjQ=`veHO$VdIe#@AUa67sO^x2V zGB($iF{_CT-BvQH*~?h!!oQKdWX$L#<9#6iJ`R(S6)odTvWy+Fj85ZaD5uB>o-O0c zLK$MY49B%HiZ;pUxlKk&u8e;Bxy{UzG3dCAaRo9G&d9L5!2QO{+@4;OQT-Ojy~FMH zeNOKY+n;b-`;6l}m+|T)xA(7QM7-rTntzWE`5<E#_rYFs+pWiKx4~Eb9nQGIZTLcN z!@aq0_L8CGw)_WU1h?lG8P?pMr!w|4zA&t~{qDs`Va#D{W*lK$WZYvsXS`#4W_)A( zWN3cxmv8qqZNCN^YNps3kJod!e=^S@vPd|N{IbY#Z`yN5<AY{Sm$mviIciUKdVD|I z$$$A}C#k8Hv+>}1&YP#%IDgpO)%ntaaOWj=GMuOOp5<(Fbd__mRjzZt38$P3Z{Kx3 zX!Xf?)~-qlWp6`;L3AU9XGJST6C(%3q-Ac3QS1B^Kdc8U-nEKR_^*}~wa<)KtgAdt zQKX!wD70Co=-zC-VpxxD3X=o-6n(;vD@=UPDF!9pP&B#rNYOLpjpAePZwhs81t}-A ziZs1#4XJ+pI#QRWCQ@w=Q%Rj=A&q)xE!9uxAh{YjOP?>fNbR?|OCL7-NbOJcmR?j0 zluQCcr9BrTrQ_l8l5@j!NjG_v)HHgm6qYnmx->aUir6|`YWj4x^xbNK^g;EPRQcX= zseO+%QvCT1Qhv}Dsnzf8(t?e<rP>h(q#3qHq&hWENVC5dO10memnMF_B7LfHOX_KR zUs@XeM7p}+h4lI7Td8>9XX)0N@6zejT4Mfi9dTAsSqwL<D&k)2iCY(Hh&2Zc#l@UD zV&KMl!Y$iGjNR2pG(KS}^zWGopWhbZese2vv}bGaVS<eqeyoFNTh&20^l}!XR|`>7 z%T?S6auW|uxC=AKu3}NPkMOki6D@Ok3kMM(;?E5b*M|j(q57es{*IyIb!en`*dSVb zydEbSFG&(Xk!fNlsl`<NQNr`*Xff&C7}33GoS5@yf*AO4l34S2vKaniirD;dni#G< zQ>-+cEqXSeD^jHS!m#f`(KvCjSU6{in6P)5c<^wASXXnkxIt@0LhO2xux6vUaW7je zZ<HfW2W}I6m+cVrY?m0_evdF6xlhzRe?SB`&l43?N5rSA$Apvp32|y}fmrvWP+SZ> zE8NbV7eDBdDBf~KI9gm6xqsahi6(bM^!$5bMT3W;#<Is^v*j}}X2)|e$?cUmc;$^~ z8ueaeSNtSGmVOb0Z$jMvAp*z!7C!Z~=|@xray+U-zZ+Jf9?6xd^+jEpZc~+1Q>)SI zH+uA_M|B#wqXq?-7|@lGhIHXsE$Zf1hdS>!qFl>*w0f>FRo6A4m&pyt^?5_m8`zjU zFE*iXo=vIY;byc+VNM%&HYei_E$Ho*mek(Hif(ObMX%eprXf4qkc+~G)Oqcwv1bQr zbitO=2iTMSGY9fcbfUdF3d)!%(Q<R5y1PJkyj<z)-HsHT<VFo^bRn}f?v&{2Nwsc! z(U(+jGBfs}*}J-vmwylH_|1<}7x$vKu6=05)4nugN&xM#?@uQ822jqVfuyt#qO^yD zY2EY?(sdm|Gv9?#*A?Mp-DeotSBs*sgTrZWVl;JV9ZQ9e<7mv11nSo>iMrNJq23o$ zDP?*(ZShsnPXn3SM2w^%UZcp|dNf7U$ROKy88rIR80wWfmewsANAjrgbUADSZSbB* zzuQlu^Yt^yRC_WNJ)2Bz&S%lf-BYO9im7yN@-+IGG@Yglo<WPeXHp}_S!8HFo01IX zkoV6yH0}9Z>U3=$g&dzxZ?-R>Co2|``^-gTn6a2T#s5V&Lzd8uUQ0>pvW#>bms2aN z6||$_N?KZT6%|!jP18TGrrFQe(5E|VY0JfRbnL`>YJXq@ecrZ_4A*a>QA@L_^W4qU zf65j*IyQ$?s;x9OaU0zlzMV#f?Vy-JJ86UeE^6zSOFz2qCc`d!D9U9o=_&Tn8@v5f zx7`6!TOTBgmWQaic^-8zJxp^N9wFQMM@hf#F=|}<IE5SJQ&II3v_$VDO{!Wz>vT_1 zaiu~^uXviQb<U7pg|lR=eU5r)ou?hY&r`?W7wGG+i*)(dCA#+OGX4H_g}VN}O1ZzU zk-OFn`lNM}j%eSaO%-m_cAYzPrQ%&OtbC7#=-#JuRUS}}Y7gnD-Xoe;{V{phd_wgN zpVFsV&*)yABD!ApIo&pXK`%{SQl&<(s6~_4)V=8&QklJ_EzRH2lNRr(iPZ=4xBf`e z+kB!EHlOKd`!Cem?ko8_6qC~F8_idIr;YqY?!Zsl=K70Pboxz4nrUIv3N1`A*GAYX zZP-~<z_-;Eu)T#2Le}b_l4V6KTvrk1R+X@1eI@9(s?5LPDq~kGU3}c23sdVVP;9IM zH|wf!-dGh4t*hb1hH6;ZN)MhJ^l;5eAHM7Lkz-jM-`7@$b;}y)yru@+ENa4XRZV;_ zGr;oY2C!>th>c4OQK@k)xGt)NK_;~^a9(YQx^?hlW*savG=lL|BP8h8#iogMainrR z?98Z#v0BDxqcX;}Vq?@wst>RC_0fNX2|7PFLFKRpSaQDsY6Lb!uWJnv-Lnw}ooNJf z&&Jqyq%m4j6NKe9L2`Rj^xJ5P8Wv44V@XpyF>Z!xGn(ONH8UK@FhjQ=W>}YCj*BnN zaU!%iCf#a|y1gtg;*<rZc5H#P-7V18rX@D6Zi#mdE%9rHB`#F4LX_GHr$1QXLwGCP zz1<2^{j8yrZw-Z_HS9OH#>ZxDkT9nWc2;eR-O9F5y=e>WU>kJ4WCM>b?NBYZ9WpK3 zqhLXM9M|grS=j-fUv@ytKwH#3ZHt4F9n3e{p<@GkG?-+M?63AH4s*b-OAgrE(GhL8 zIHG?eCt#8ju77rdWeAUzo^{4cX9WURD=^wnLZDK@izgDSdk8e$D{#`BU^a#O3SS7X z2LS_5@K}<K3w-Cf;QVhF=nQqmqtmWPwC#u;3p!$jRwuZGbwcK;PROuvgXL^DD2v^Y z9@rTz@_1a_ybH#R?}84`yI_j9J7#6O!_B}0OJY5+@`49?cJRc;nV!i0;E8~qUf8tN z3+oKKqFYQ?EI88@Q?0$xYLYibJoQF^TQ@vk+6~Qqc7s-c55{iy!IqlcF>+XUd_LM8 zwVL?iLW(aOFZiNks~&it(F2`t^?<PT!}Ux*7(evG52v2UnAQ{7PkJI<>V=ondqL}I zFYHqEhQYMn(0|k$>mB;w#iTwsbGr|E+Vn;0=)UN9sV_D*_eXA$KZfM{V|%>-tQ;Bu zyIlbYuiOuc-u<w7ML!&S*AMCFj|-Fg<K*@J7;G^B3*rVK{=fjdsu~F0-hnv0BoK|B z2g2BPAhxLn;?41aI8}2HJp2bCbm<^8eKrW{wn0cw3WD+eAoSK5j1HcIkuzm5&R!gh zEaPCj91x5bOM@}#Q7{Txgkb%!5Lj&rLDx4SsNOCVJeLmQwuQpzV<`IB4gnH|;Mley zc=>(^wzmsIqnI$X$PUBB7hy299EzG@L$PG}P@KOr6e~@_VbUiY?WTw0#i?+(SB^ku zmk2ybjeym*2pGJKz<l#zI5uDyX3ZJ~-NIpLq!WoNPLZ&UiG<ziNZhy?33J0J)anw2 zm1$A9l^uoL2T^dUI~+lt!(pu)j>Xx-vE$xw#Mc^uE1gE*e!>XMSTzDgmq*}PrD#mC zi^k2+Xq=xJjS+{VvF&X%mNt%oy>|=}Q)BoYj=`G?F|hm{gBq=3v8YchE{}>u?#5Vj zxf%;uI}RbO;_#tY9NMVkV6-L<>(0iZ=t~@~G>PYaPdsu*#ADO!c=+y%=kddMEUS_L z-!=)z?wNqSDG5kkoPbAp3DAC$fHPGS;oUkB>Ar~=5TA(GvlG!FHxX7h5^?c+B5WEZ z!G)5bGbjmZauQZANy4~;Noa642}6D{8YQEFl#KEHlCdr&85whuQG0tb`k!aKPDUNQ z6pU$+g6vKym_8^4ZPNMwIVqT(lY*ea6g+*B0!!^wSTsn*UE5Uj_DRKrp{Yn2nTqD~ zQ!y<k6}wNSV%hyvcoe51+aL{>TBKn&r6H(y8jeS%;q|CAT$`JQj7@2HcQ_4AuW_I8 zRT>Jk)8SS(9iy$%F_zNN%`Y9-hoqxbD%&TgquG*loXAOs?a_3EUr9&EvvjohmX7Uu zJjU8ciI#1YFoY6EyDQ-uq{PG+B^HfTLOD%|7E6`*YqJs$4k+>Qv=SF@DKYYe65orJ z=v+mGfpt}IH&@|zI~68Ch5Ozr==D=Ucc==N;<?{Bl6jQLDp<`|q2nqQ+T^J4dY=lT zPpI(XB9G_ZRY5#g!Qzt&PkwV>wVE2w>!{JT36Jess^QW>jp{;;?OoL9;H$>u05uK< zGba<N#*PH;ud39jH%^TiQ`9J$qejCe+>c$OhRJ3%9`96R$^kX%9#=zon)|Ys)OdPR zjTaBpI9H^`?6+ztzNm5JC&#HMBdHpX+Zu46vaXC(4Vk-ZCd0O+j0>%~U)q5=97h?I zh&i85GP-)m@aV>ULO&TF`f$AdGMs~Wd^uExX@rdE;WAdo%E(WYaV}NHQI(8kqhy4S zl~I2p^GB1p-#bmlmYFhY%#{(aK*rR?ocB`hQ?8J4Xtj(D>zG5_$b8~v?nCBq9@{zZ zUEG)5Eu-Z=850jMr+SFTu#a#b_88}xFJtsc9^XDCLw#CC*jX8_=Q;h0+#kOrW8@VX z7Tk9}c%8%F<nifSeEyD%^><}d;eK@g2b>3wdEevybZzcWE1q&cocq)xig;}NIroow z96W*h)}gQX`ni8?^@hj2xsQF8F`N6@y?A_FpZnVT7(=+ft;_xG<qU_<GLAERxbJ<Q z(T)4wM;Z3Te4bI2``}TGlZ<BH`8hC-Giq^PJb<y7ahqZClb-`)0%I@ZIiv0`=GPcQ z8JUbtj6%k9MkVfhH)hx|ych!+F^rLnsf@*pb&TzdgNzf5bBwEu+l+^dXN;GOH;fOA zPYexzUCj8-(2VQ<WR&&uHGTd6*55Dd_m}MptEAX&7^i37y&%v2K#_2G{biBEq4eht ztqz$vF00Vbaesx$j^2;59Urc`?3iz+<+L`mp3}J5HcsI?yE?h#hdb#$%5aJpFw5y+ z;VP%fcDYWjvrjoiyt?a@B0f3g9<JoPI@r*8oVt;7kGfXQRjnMHH|}<Gwm;_Qyvlp9 z^SACX&TY@i&dnZ=cV1vR&H4BIdCtB)mN{p3S?`>ky3Kjd^L@@6<{x(+HSV0VbIuLt zOZ6W+cR%#TdCkgi&ch#8P$bT*qKF8tq44yrqo^HdqR5|MstCPkp?D^>R`fj9L9sH* zS#hJitKvgF55=1X-4%t@M=@z+pu*yQsA5@Al%n`oyrT8KbVZ}WQHtp&$0}m4OjPW9 zpQVUxJVP-(V2;9M<pPENufG&wLsuwT-dm&a4d1A^^LvZp{OTQwmVtW|kD47+RQP&C zk#XyUV#vAEinSLnD7>CrRd`pqt=Q=FKoODlRFP5eQc-OAUQsabi{ew=p9;xOTUu{g zQ9Am$vNZ8hRjGKlzEpcnP3hXgT2kkEM$&*q#*)d}2GXd#jisqqno6CE&84MgEv4nX zTS=Z%+eov|wUfryx06hUIZ8baD<tb?kk(G@DCK|cERBoyl%BlumY&A@O5?P9Nyp~& zm6mttFEzY2P_i8pEIo4wlN>)pNM<{SOY29*N(Fw2QigS^bfvmV3Q8X-EsGy5Wk-+U zbjC?7<0nY7(<Vu$$4-{c%$g$2TQg0vJ}^U?aBY^f>GK?Ef$@CFhZaf⋘ZcXD^ZJ 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 diff --git a/lib/linux/libvorbisenc.a b/lib/linux/libvorbisenc.a deleted file mode 100644 index 6c99fe802c53222827ad02a1d478bee5c78c4b92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3056686 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%0AyK!{& z#nvD4i$ne6v**hG%^RORSMv3V(_Fg0-Madwi}Y|ePT%rS|E|YwoadwZC?EOt&sKkm z6E6<M*Ve!NG)}xYR7X70L4G<&2Y2J>qI`7jSL@=Q-G_eFRgd33Q5@DUUti+**(eUb z)%)E3@Ll)0`={62b=bXb;!wW+U7vUDL;t8gwl98t;VRC4)De%?kzYMj55=K4I^t^c zJMSnC#i6)&?L+^lE>3;<Uah|=&N{uGWBXDc`OO*C!QD9VW&2ZqiW9$ESKoBeJa9Ko zU-D32uFG!Rv-{Am`s(r9CyGPywe@d5jT3KOygK4h9P-ma>o~=!CvHW*M>UR)b==*@ zZrrpF{ph1}VCzf#L~;1F?(@}L>}wTgpU>VO^wmT62a4-;sx9C3(w{gKhvMF~5B;OM zxav!PQ(X6}j(DWAs=KR4hb}hXdFPjh^4Q{6`;cdU^3l4wjbmFEKT%(eXR9lYPJfqU z`~A-EdVa^Y?)N)(DPA1<o`Bv{(K*NFv3-w4`6wUdq5ASsKFY`4JkL+`yg>Czbx}Ub zM{%Wi)IU1Euj<IBN52$@;@QqSfAee06JOHnxnw&B&Z+C_+`BH$zxm2HS9VFiq>FTs z?nL{>?z^`7_J``D`q=u@{HH$5A3sYU_FLLFuJ-@xJX)WvKEAsTb;_wOzw2%ewVgwL z=YZem5r6Bm)hpFSb!zjgi|V3&T8B+{qB^KfZGLr8eN?yHt*<VsTdH5SkEt%dI&5|L z*{B{{J$^Qt1N{}%MRg{si|Us2R#ZnE8`WW}!_P+VYizo^RA-{PsLn+FOnUXx<!7Th zwfWVn%};li>P%E;qPnH}lP*8ql`T%4+Wh5iAL=9h6<cqz`(DI$KYPx*pM4HG*WOp` z$9sf+y}#+#`<s5ezxf`dzVAWoQl5IKAARG>Z@;B|BRw|KZ~hc7PCiaL;>{f=zq;a3 z9k%Pl&vrdmI^yWj;ivae`%)M6qd)%LeTkQEKWyjHd1O21?6T+8eB58C&xx)-(kba- z_2f^i9-AIkmp$pqE9Fg`^!TgCp7i+TPZYP}lt1}bde*1>$=|%%Q{Kvdm(Hrrv+M4A zd{(D<^sx6e+x_7_cm8}HnxE%{I-Vod@AF0;eN+e4L3L0aR0peTU-XdPMEXb{TW7cb z)}xQ~anikOAFDd;x3<3d>GAjTXt!^AbV_wl9o(%$cdADp>7%@o?uv9v`dEGTuD-Zc z9dQ$zzq0j@-bYsY)_3*A(N~XuMe!@rFYngZN9%ZAm!1=S-g!<rFP`V->$$9d&vW(F z(FePvs~+kHC%<*vjT3(tyDzpmnUDQi*Dt%2Cr-bv8+vY`>xQlqx=#44uJeHO)N%d! z@2W$eE~>XX7kwjLq>J?N?mBe+j=-L-tG-d+sBff)>Y(#d(ntD8AL%1~q*KyEdPooH zq2F7u`fU10AL%1~q>n2dy7G5*{a%Dq9r|=pJ=AYWAFt}smrtLKe(z$dgHzx1>6Y|L z_4-_8yMH~G+-IJ*?gP(l=f`v1_3)gw5Bm1QF4a*V^@aM{<y|_h_b%OM_u2kjFT6`v z9lGqRlt1yRp7=?RUtHOB_AaY8*}Hn;?$V)$@6zpk&33=I&z(ol6a9Fe=+pDW^M;=1 z4O<+2q>FS*>*`onhu?FJUmg2F`6!-FX&qa~^V9m(y7G4Gs*mcMlYJq5lvi4(XPu2c z=d3?lS3RVM>Y=*0yFdBWWz!Q^+vhlc>$-0Aklrro<5X8YRL>mM<EO{Z#@4BAzv`iS z>d>F49;)Mgh>fkI9({G`@w1U$ZT@mqSDlhRR+l~P*Z%Aa>8V$n?k?5GsjhmcE>896 zqB!rl{Pss5>9ggR;^<jtm;U=1tGaaQmDROA`PKD#SbBc;^U3G3^XPNM_44^_KR%z$ z&F8NDsH<N#UG-64=s7S^pYNi+O8w!~AOE}hqwBg|?Nk0o^=V$E`V;l}QEY$gsXzXY z>Q5bYR}}v)dOn~!>{Wl(<=sW~>9Mi?_EB5>RZjKzud;pBzS`d^e$}7+#_``xb?CC6 zC7rveAG+*kN#`onlgEA+)wzqGrO$WuvC@5Zjw{`}*S~Ll-aVhIdec1VSZ9AN>SIOy ziDQ2h)!pSs_0>94f8wl9HvhZn`&_B6K7C*Gp5ptW_iEo4eSh(N(f1nPbA500z25gx z-*<f<_204debj&FQlI`inCwy>eYBrl>UTGOiZh34{rJCJ!EbF2?uUszmu%<CxpY39 zfA^7d>^_sP9=nvM4$?t7wbge$ta~oV^IYI(Pi!BpqaHnWX&u#D+2TB}*zL=HTX$uv zkMwKvqvvVu_R+bEFV(}YtG7$fb92*|e#~X6r@nRMpV<EN!LJ|w_M@*!fAZ5u`fQ(P z{AJgl?Mpp<veEu`**;f&xlZam+ehcoKD-a$)R%trf%+?_xwJl8pZZ{<^P~@)`q-_n zo<5L&;%;B<uYIXUkF74-I{!p*ozK-i=uA}K`pOnJ^)=0<emb2CfBWFauCw*kbF9va zbWpw0`YwCj^tb9~s>`qb$`)7Z16`-~RsHHr_Op5IXX<O!=d<;v{j{&vXUlK>+TvcN zzSQr$)GgKJXXE6zzGC02***t+PPuQr7r9@&-`bz|eEaj>Y2UsN=-c-JeR{9=eOW)g zFSF&*Q%C(3^?f(Z=a+@9M|uALKfX-FIrzb2K+f9_AGUM)qlfJr|M+1$-#>ZS&izjx zw)^F04;%i+zYLV8eyMM?&c?}a-E#yd|7X+j+|zgIdFVN4osH9e8&9u(I#=h@{^{@b zqpp7B^H;~ZcyU<2c*oOuWIN~V(tTkrXy3@MU(^q}FRi0>q{~M8w69g1_}#ktp^NI_ z6sJ#dwfXgh;&6()Yai-N`%oXn*VaEaPP}zASMg{a`RSndpjDjp#`B~1DC95ch<kM( z)!*H(JpHisRljw9ad_9ca($jXSMv3#?`ba9#qZYLy>3&SK1=<ezHo}Sj?eBxzpcY> zj@UT1{@MDf-#WiIoa!{bI$fvNIJWf_op+q-SjW{q=uC0#OW*QPoVxY1t&5*1&iBI4 zcAwi1PV=*FpU>VO^y#?{?hh1ay==a|aEg~F?$v#?PW!)WANp2L|2WmL-h4KS!<C-6 ziOxN$gUxe)Om&-Q4*Xc%-MA@VUs!#%ed2Tu)WK=Lba&$#Ut3>D7sXr0Re$n!=e!$7 zw{#t_>umkwY9Hp%{@8SpUmjY=$*+I?i7%~-uO3?*@=to=y3SS)#ZUA*XV>LhNBxz} zx2`YtDo%Xk>Syb#@of7*@vq+J_M?yKoHlN<^^1*D$2#uT?YU>uMSg4_>WVMTSzPnQ zTNgj=Lp-*xNq;wvZmBPQcAecg{giajIvrf;iKDZk^G;VjHedYIU*qYN;?&*MlZWzA zf7VNJ*x%*Ye!ug(p5N=N`<<IziWi4|&qMF2=(&Sap6?qdAKfoV2i2F4@=-qS=II~h z<6S!XEY(GI(fyCjXUj+VC?8jGQ=apWlg^Z{zI^PtWIG4Wsq5j~I}gskdC1ovyQEJS z=^|aEJJJ5pzR|u>-BNv2AE)~K>ZAIoKDItveN-RSo2WjjkLsg3rF#5qY<=}mJyZ`p z|JmwHRJVM!5B2p^{mEX{H3u{YR2S99sc!x6?xXsXZJ*Zdlb?<D&9-lTpVRzwS5&W5 zXQH~OZaLL&z1pp-4!=75Y}}nk>(*AURJT;W)KB%<)vv7%KO5C!tH;kqb&>8a)tRU+ zs#~f@r#62{m!FO5)aLj8%2v0ezoI%5)tRWDsSaK1?1@tye)Veet21$`JNea_sBYQ! zBDUv>=eu+4^U!tlo?su|tMuvpO<&&M^x^%@_agQEeKmF|Pd(I+zH#NZ-_pL39vkU5 ze~K3;A1590=8ltJU2&)m+jZi19dV^2j$U=>f7HIz)0ckq$G^KT@$%`jolEDD?VPhq z^C;b4sLx%}lRt5#=Uj=qOP3x#+n;>YFTP7xy%qH#jy+M_E+?J(Cp~f2*}IfCaaX5t z^!RJ@U*%mot=s#W?SApO<UIO3)Q{%`UC$BEEqZ<4$fJ+ypgO1ys)Ooab?u8D(wj&h z>7zRIcl&QW`bZz&rAr?_s?M|XHy_kD`rN~hs?+Pq*5``)FYN>Amb?1mR&~Uc&6{lf zPV_!fefFd~`PH#bzkcfz#ji-eoOJ8o)fd+~p0B0**Yn8v_ndNWJkQPBb6KCB=jyAY z4|b_esUNgH+4VQx`n%YDvCYYR%+b0&*`+*j`gh&Xbwk(9^>Urib;7H<)&FdDR&#l_ zf9DxLs*Zk3b4S+~U0>8U`n>|H&!&&`kv`H#`bejwhxCvh(wkU)HhrXz^s)MW*FicZ zJ*0<|F2CQ4-c^TgsbAD@sZXp<ZTms`Sba8qtS*~w+2<<T{p<PX`RRG<{CjRYKc4HZ zx97Bd(APh^R97FUk7r4zd{$3h_1M-w8$Wx0pKV_4$N8`SZd)CER=@ddd{viD+54L9 z{`Nd^9z9R=<9R~Y^ThLpp63l)9DSsVbSJ8V>aac6_|>r=tiJq-^sse2KdoP_E3ftW zQC(CQr#Z?;`N)s_NFRN^u|KM=dg{B5`Zhm(qdeqCex#2+x7q5dhxCvhPJZk3aksAh zBR%!#@w2gYyqEA#`&AFsQ>Rp~RHrmo`bbwjdi-ppTbm#4d#bCRIwgIiTdGsqpE~$# z9d*@V`}17>XX~!^sUE7Q{?+|W_2^D@)Wf^$s*mch(dS|5`Pt7WpUcjp&lT6p=d=Cz ze0E-Z?wXsr=ESC}KI#iS2PW$CUDQ{pKb-pGe^-BW+aFthsGo`S-bH<sQ$PIrsm*^k z+aFu~iFfz0(wq9If2H&6y61v?cG-SbHobRqx6ix#P?zpx^Ow{7=-tKErCa}Gi@%%d z(PckN^Q3ndpY3PLyQ{D2O!c1iSN|^i*?y+HXZxZjpZzYX^DN)hS9N#$Yu-oOt3LJ9 zIR1}f>$BBg+2Y<!eU$3*v%ePgvEtY2Pu;0M>z{?b&z1VK58oGk&icOSz1sIh-&=fN z^nKL#S>GFd-}Qaef6vtSQU5(t-$(EI|NpR$chUaL?_G7O+qxfJzx^Eh%N=#*aOUvy z37m8AvFE_^@0Xolrv8in^ttWx+UL5@YoGi5T=9ABJo~)%KH&4(`+&;c2iW51qrOmI zldVs2t~Wm$^^N+*_F+EskRBV`hdA}v>aop>zqY>ggX->5J=9mJj}=`P_3fXYI%U_{ z*t(qud!oMdqra&Sbyw@+^f%S#ckZ$M=!-7Wugy=Njr^#t_iuJN^<^IVDAh%EYxB1* zyZ!loF!iMm{i!#RzCKFdKiZExv_AEvAN`@e)UC~r>a;FDnv=MmC;h00>P)1Mt;1jH z1I<-m`a$!--G0QWqmRjM|Lmy`b3*l2b*!U)%t2j#w2t~xzw_Z&2d6&ODfOc+iern@ zhx*w1^7+|x=<=^@aZ|p&uzl%cB7Ibct-n$nKU<zYu-B*k$m3@teQaH}cs9z@k2<ya z>6F%yZYgi_>r0$I%n8*ISGziFb=hUtYl~m?B~O24*Xg48$(E1eyib>&w?3ylPrMho zPrOIkpZ9-r_ugsV-v9OM{a;_+>)W5-^Ykf?KB`}vztsO-G#`4C&Ht^_^(fE(Khc+o zxV}Gl49L0o;lp+wfAp}O+aEt{_sdTnwsZf}hwXm(*~5na@h=1AsfR=O=+?h|;+QZj z+@&+fANMDnfa~sa2Cud&&*zrUtE)QB@2fgj>z??pJAu2-Vb70qbai)k>0GUQ;?D%m z1kMD`1kMD`1kMD`1kMD`1kMD`1kMD`1kMCL+XU|V-Nx^SemBIc`@Ku&YTXn6btmBW zI_CzjcIEd%^yjKqb<~&d&ug#hocM2R0(YN7=f`=vIt_WwAHAzOC;m*}OyEr5OyEr5 zOyEr5OyEr5OyEr5OyEr5OyEr5Tc5!B9s66qg5Qt+@B01F?|y#o^ZVb`Dfu0|dRKK$ z{I@lMyU(HX=R97WhI1&NeO2egp9!1^oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x> zoC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x> zoC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x> zoC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x> zoC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x> zoC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x>oC%x> zoC%x>oC%x>oC$o?1b#Jz{!i?h;(z_IfWP^$v3Z}(p8Ec+@5w$~2mEaFZ$J7hf9Da1 z&HHS2`)BJPKU?3YpEH3ofir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfp2F5e!ufO-LIu} zzk9{~o!LBkei!@g?;@Z37r%$#b1J{`EAsJK9s9zstz*9UY(MhxSslMu;j=n-<vG93 z^=~|com1z*Iqr2`%|jl2q&tx=PW#o*MEUs9I_je9j=TNHNBKDEG@gyW`$)u<j=WMn zPCC|6|HzM%PW|#xJ~p2H(dS>ip8KBP&bPLGqJ84;JvNB;TdwNTpQv7`ZrS?m&SSOT z_On}GKkAlu&qF=@{YOD;efDSRV|5)m_uBT2_C3-5%a7{g4_Y{O&t2{AzqUDG=b%2O z{Ajk$%2prm>SHwz^>9_!9B>>!7T(pzAEwUAoUViYm%H=0+DH3rUswB3AFID>U#;sL zp!&F5w{fdJTo-jw-9LH=va7#qt20sEQeD)~ZrxQ}`<d$V>jNi!&vl=7?pyBz&Z+Mu zu9NpDefeIYzV9#U`ySG{{PEP-!!J)g)L&^I^~<x4_G6#OkNlI4^|JZa^~Xl>D~hM% zx}kj62l>Teb?A$ikNon*cdp_l(sORutA5l&d32DDIQ{B}ANi~2m^zPa=bT-NcYioP z`a*L<_vJ+Wmhy4RH;1x%?Dje7^3!G0DfNlsk<P^GvFRZ_tX}<eN^w}7mF;|$^l+tP zz5P{J+*Q)89=q!+eevSxl;Zf=C?EMz-iq=k(!<`@Y@dt0uifv?pXY?@>$#vlz19;) zAL*{>zEv01L2>rO7JrrYMIZG`AFt{+o<5pq<7(@ZpIy=|)e%ppw2rIwsgBPj=X<52 z9#)qQzx}A=b9AaBk3P~Z>8ew<PVLsCr%$%`&g!$P%hta-NEg*x)e(pEvGdU%uJjux zUf-y1_1NM|x+~H{`$W36`B(bZ^-Blqr(4n~J%2p+JfA#goeR%%*Uj_Xd_AYlK^^_E zOL^+4qaV~)sekM`n-21qbg=7e>)3s<&B;FP&$@lHOL?xtFDuRc@XHDL=s7r-&Li9T zW|!jKcN0BVJU`I$<toj`{W<Zf?kfIjUHe|??yjqko)>r5X+P?y+jaK4`%vfb%bj@U zaOUvy37m8Ab<e?<>c99;&r6?Ao})e|Jukf{x{lr>eNOru_P*_N*Y^aKeJ@~(QxEl} zALQ3psXpqDjrM_4ocL*7U;1FTPj!$U)~_!AWb-4v+U-xD{OYi$b-Jh?)=zg@7muy0 zAKcYbZ=!nGIDYK9esJnro;b7*wz!E?A9Spj^!e$_V^5S<uHxx8k8K_GIob7#N9))+ z?N?s?^6O_?FX`d#I$e~vYfo|fNO#p=<HXZpBfmW4M}DlI-TR0i<*U!Ojw`=)Y+m&n zH?8wmPkz}rHcoohC%tK1JY6=*E2nsQrTqHYlin&%K2~QpUtCFdMS0>@wm8(cJhWa~ z$F5(s>7afl9dXuc^P~0Z@;8o+&Ev;i9r2}nw9ZC;<VSw}BL9lw>9MCgaX7{Ciz}_G zhx{myy`uPX%4-~Z>Zdx5t4&W{?fSdUUa>mtQh(JGSO2qi_1F{D={mo@yUzA~uCy+n zp3iyjX}&M{zUcd??~A?{`ul6XkNW#-zK{ONqXFMX|MX$|p802K@Xuq{l&3y6Ze`1} zPh917{VtvA9{Y1oz;$=uJbQlRxgYWB?&;{~S)HqOPyE-NfOFXEf3++5&W&^Qst&!Y zIw$^2;7s65;7s65;7s65;7s65;7s65;7s65;7s65;9H-7-);QP;`f)U`;zZ>7QCvX zzI?o@bK<|P3EXwvofq`yN>``Re1BebRp-QiTNAkJ9C{u)f6mj@X~=W_=v~!0@n-^O z0%rne0%rne0%rne0%rne0%rne0%rne0%ro>`UL!r?e`nMzg*pye80QkRUP%^<5is# z|7}g+uJhx(_`T2Xe^;l`b4c&1&WZoFCUEyTbpD<_KRwUvZ)>Wj+cSYPfir<Kfir<K zfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<K zfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<K zfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<K zfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<K zfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<K zfir<Kfir<Kfir<Kfir<Kfir<Kfir<Kfir<KfnTNx{AxD)e`41Z|Lczh{LP1r&HHS& zzJKG<82;A7#?RJw`}w}?!@SGid2ATF|IcPS|KIvPKHFSRKW74G0%rne0%rne0%rne z0%rne0%rne0%rne0{=S!zu)<t?$`cz>Hqzk-;3h@&Xh+-et*ySF5%+8_<aN~rhgYM zAHQ3;_%C<u>n@$&e)NwQxAR@N{8xWB``w2keplct{fqPKT>9PCd37F~W7kEy=E5%J z(MNSq9i)rZW$S06>xJ^lDW6|HHlMBEiSkiiIpy;^KiGV>Iw&9Iqr6f+%18Owe71F@ zhx{mSMfoTnr~I#V{+)9)N3@TL_JzOq*dYG?!^Ua<&Nr%$Q+<B*QGHY&KYJhcU3R~< z?Y}e!GzXmKG1Y&z?o|Jy`%rJ<N6n-4|KL#=r#{SoVy}N~*8!jHqy4p?)~&5RepDao zVe8g*J+S+p?A1Kf$JVW_K2CM(pXSc5KCbGjkFB?BtB>mANA;l|wr*|v#y@;)7<c#I zIQ6l0YpajyWA%6K)~T)DMD=mE?ketGefXU7{^7p$UgUiGp5Xd;Z_}6W73Sjmi#hln z@<-X|AIGjKPd(IMX&?2=vyS#>-|W)*N~d||Rlok~7eBG_)zRma&%e^KE`FjoG}kG< ze&+|RcVG0avys1?bedPYI?ko@$ac=zrFHiQx}WrCZWG<7sNa$vR!{!K>apqJUAon& zJ@v`2zp^^D<xi|0`>Ia$>6Gu%ZT*$)`GM_ovfrhv4{RNNocgQ3I<@Ix?`yXE*yn=# z!+q|$dJd@LIZ}On(icY`)j@S8s*CC(9s5Cg@=zWd`O$tnPp3NaQ9kk`KYdik{KS{? zSEP&dQJqOg-D#blKGH{ZykDVwls}Ok`rJizytlo(j(XU>?F;pd`bPb->6WWHU8jfY zVD;J7%~Rj>*+?IoPq(Cx^pQT&M|H6JlP!NDJ=9;n2Tc0>lRiIv+^y5+k>{P~tozsV z+&T0-H($?b^KIYkk`8_J{6&41*0Jks>&RbP$F8%jWB0|jKl8Ca>*mZZ<(d28mkFIY zeC!-N2M)i?{mkLpn!}fFfAODvo`3Y`pXa;Jfr&kD{oMC?zf1dG(dWD8?XLb5XTIwC z{A6S6cE8?pu2OxpFZBL`@2cDDd3QZ?(Lb6iHje!&)kF30RsE~^`jA(f|89O%oxA(K zOYfI`|98!CrSq-N`4>N#zj!>SeJ*%z`rPo`_POc#;(M0os_$Xu<a5_t)%Ur@7DpfT zgZe~$*5=puMEfYk*KeQphw4qFH?eglTYVI#4}LUvwmIR{FaNXs%F`d}1E;>#pGY6+ zPgL(J+aDX-pMF-H`kef)_Wf!<>g$iaOY@pY=dM2KJ<F+2_me)&1NqhEpD1oc`Qr3f zd-98;qfa(Aj{Pe2h4k2^eoA@#?7OKS*PD&%t>!3h)o*p>O%#v%#QN1o>+Gq{RX<&n z-@dGujg!Aidg5#Im*Q~h!#Y-HvUlUBxcb@pME;3WfAz~>`KP$%?e-_G`E2!&zwA1@ zl*g|=+dA@N{p?aaTCdHI)+e^#+EX5V6vy7Bys~}J<HzQS<KKNgiEsYOKlL&B>6KGm zab0JZ;#;4+V)MoGBY*2pw!E&_@B3WoI{Lh%<NcYA?<M;4z0dbW-$(tquJ4Kdey8uF zfAVO+_t8In*uH1}SsMKF*fr(R$HuK}{n`hv^16PPPIZs{ZA`#<)U9*QF0DH^=zhcI zvE8T0Us}hmv#le4X&v=lTL0*Mc%EVVXIsbi&(^>F$S<v9*V)#Qztk6YooyZ4uR49+ z%P&3meI9h3ZCyNn>2t#8N7vcnaN37`+K>Elw?A=M9k#xZzqF2BKlYix9TRY0m(DRx zwcNM6apEUE_xEm``1a4%7fyAp;}oYaoZ|F_uf|RJ$A2cUGXeL5&pozteAl_()pK9q zv<K^`?^6HjPkML9>1*{lEe@ytj{i*Hl?k{n+~??g;#9-=#Jl2F_oaIH+4iA-{k=Mu zDgXG-1a>Cy+3pYb1x|ag?tc1K_o08B_UrdKzw7n)Wxo$i`OTB>_hs}u2bwER`hJH; z@#ymd->sv6Y#)BF!KoklsDG4?laBf*AH7fFq@xd%kMeQS`D}jYx98Hicdndc`?n8s zWtVj5qjQhyOjH-uo#?t?`(n2qeVp|9>7(<A&I4QB^4)!?kFC#cANGm%Igviv|3r05 z^Vg61IMwG@AE)~Kt<Tm6s*mcSdPskw&mUB`R3Ftx^-+DC>hr6Qt<Rq7Kih|T==}oK zT~U2B2Q&w?Z&V-E$5s8aekO1xa3*kd0-jf%tDaXr_dKt>CwX3ZZ}YtJUgde^z02=K z-rxNF9DVxxIqXuNdZ-_LqrTZF&pO(leX&dHD;;^_CtLs4(frM|I{avV^3nQ4*9qyg z9(z~ET;=Hpt0S)dsULCrM*fnH`mHA)o6mMGokzBF&MvLHKhT^e>U*Mn*cVo>`R@0L zbjnwC^;=%;&;5bbW9ygxv|oODNT;NS@^@K1Ha%SF=@aRcE1lJP^(K3z({=aNq{rX9 zmA$KL&bZR;ea-e9@8^R1oWAFPI-Vo0A3gUSTO56KzLBnaY*Yu;LHj7_q5O%i8@e8- z->Y@>sV;q_kLIWEiS$q%q>uFRqwDAcU0>8UibH*)&poss>u5emAL*k!q>t(xo(X)- z3G{j7IpI0$zVbYG{yoo~f6r;>-=3U*c1edm_W7vK^0UNsUu^p`AN#Xz&g@d2ICP!R zb(-ipxqfWy9NF|yKFUYepY8hdyMFYMKGH{eNDtLP|GO1>6X_#;q>uFR**f&pp~ufg zb*y8rH$4=G^w8%Ks$(5n$Gng}%0v374*tdC;Ol!LeWZ`{k#0HZ^V3KANFS@u_WKXg zLwZQBlux(xJCfg*=p%jhq`#`uy46t!yG|dgH`&#pk6ovaeXg?mJo23IoOSL!x1D#- zb?3!%+I;Ejk6qGH5A}um+ND0rt9tg2)nn7eRiE^bPI*;_9#)V2ebeoJ>>usBT;;9S zt2f#Dz|XGR{%YF?_P%C&zv+GLc|zB7fS%`xdD8Q|VT+@W?n6{(qPnOqs*7|>`6wUx zkss-!=P9aZu1L@R=%IDwNA*xW^qwMrBE5<9kv`k!1^>J2s-rHd%f{|Y-xKL09rU@) zR+k^&RhPcHW$V`NzU>q33)N${9=mne&Ry%$Th&!xozgnC4t-P?<xOlocH^hI{OakW z`QH0bofYX#R2T2AYk#e;4nG_16T8ppy;?ldpZ2F7%EPHn{l2H5dg{~Xr_V2s-{)cJ z^T6kZ`^V>o`^x90`TKm<kI!fQ_}tZxy6s0Eebf)?6ZQE~w9isMxa!9|-$mC)pKSf% z*X~n)<=5`3*QNcj-`%I{rXTi1eU<H#-m{$Q@A}&x`>sBB`&h;4t9*8D@>X@PuD8F* zR)3dQ`&h+Kebv9}Z&l~j_4YH_-%6k6p<nh#ahl)C|55#^v+8GBm;X_m`dIltsy}sB z{Y>lfKZ;WySN-qq_i8^={OR+{H<4*RSN-40JiD*E`}X~=RLAF!KD_VwzUX_2?~A_o z`M&7;sPDDDC;D?e-$&o|-)~e;9s9Bm_Pb~v@6zAZZ6B`dZvKh;a)+EboH_h_0_Pl@ zb8ybVxeq@3bKuKe`iuYc{^R}4`#|3lyuW$>^FHPM&wG{kKYuRZ{m-8#c>mLh_dj+i zPd(J{F6|RtFZ;DGe*56J4}SA0>9447^~I~luO7cX%$+UHb$YfheW;J>qk8Q2;X0%D zdioR9E5)m4-5gfeO<enYwJ&|BkNQOOD)r+&=)Cle=78#>`lvqAVe5y#w*L6_DIWEM z`a%7m`bY=WLw%q*q3c+xKT&;Dztl%*9{MWV4_iN-7h6B(wd$vJ%?0&|`Y2mRebiUu zIv4%$>jSOphrj)>TTegcW!+rW<yQ~YtF50>A1j&<s*mcG>gj7`ulne^e#}Qd=4f8x z^r27vAbmE<v%aEu)EBCc;?%>*zp6j2tB3kAFaFL;9NnqEuCuSwbwhoX`l$ZoZ`@T| zKh7K5d|WSnec;u4yYcFZ@0_gb1I4dwaj#Ne=5w{L*6({Y+x77rb-ulyI^W(WT|e)c z`tx3{Z{G*>?fZcFd9T-}e*FLSu;tO8sGo`Yf0pL)%SzXy{OgC~uO9rH2mkWHzkSf( zkNdla?eFjX{loVE%k&Qq+d25hhwYsF)5CU-{`p}$XaDlBox^{9*v{#{J#6Rr-ygPf z{vQw9eej<T+kNt158M6n-w)fl_`$<=&VKl?oy#9RZ0GpL58M6nlZWlx|MX$IUw-zm z;eY(gKzZt+e)Ns?+b2J}G%vKyHs4ou=-G$sQo6qC>W7W|jaP@?dE$4T(ERA4c=`0K z^W(HHeab`oX47Bwqi=QfDWAV}t&10j{Pe{;p3WoNIcJyF%>|t!_ZhDI=2F_Hd0MZZ zzV%YRJnQ^y`(T&i(K=nUZ*lyMcRs|iT`xNF#j(Y+t;@H*+LwIPCq2{;TRdAm^{u0I zI{flczIbu9oy)7|SG;qB_Ko^vqkgb){1fdH?F;2uN9(Arb$RB8lb;Um#?h6>?(;=o zQ=EAFP+uNhw9ZEQxEt3x^7Z98sSb*>j_O)R&tbZB<cagXBu;-*99`>d`QFF)#aT!1 zapI<Zh!>|n{nNK@Kla-=dg83}BR%_3r|XS#U+WXq!O5=<PIIx2blGU1`ZO2oC=RE( z_AhVJ6NgirzQoZ*esTJ<U+d^xxo)1H;!!;A_BX}R(P#T->tEc|Pve{yI%uEbC%w+a zKJ<<BkYB&*VB`43`#z`sv=8z0rhU*CH|;|`aoq=799?r|BOUR(_xbL9WG?oN`a%0; zqxtD~$`^;dKj@neeSS955ihRwt)q1|>fgN8!N!U2J|=zr(Lwt_aq6OYoa*Rbe^b77 zb)5t8C=T_f4|G1&*B>2mbkI6mKYo8f`PNZA^;i24KkY*w;_O3xY+U`;^@WY=KIBd3 z%DVo#5A(FHt~l%MLtORgxDMi)FVDJo&mnb@E_Tl5QoY9MLp^%!ho7F$2X(}wIC-mm z$kQL)_D5Hob@BEgj;=niadfPsI8>MJRF|H0@pOD2bv>=4b^Ablv5~HN;`ouSeTYYT z;@V&1oP#N@b?uK|pX#ZvPUG0(r~90)dcA-3OHaHw*AK1J<7ewv|Hv;N%}xE){UOhF zQy=L}ar)4gIDY%U_Qx*|T?g^2eW*X}!#ax7r~O(-etn{K{ng)f`)OTybmTcl*3HHB zKymgVzIxW_sG~1>*0DO`yAS$w<mpde;?zfTR=060zq+ViZT<7JOTRDsoz9=bi1T|U zyA<zx0XoO%cc;?(5_X+!z4W}{cfF9mw2ta{9wL3@NBgsm)^UmxU+T-b(*G*%>OS<P z&+7B9;^gU@t^fM1qx*tA?Ux>kufF?A96fQUF7nIcFB>P`{U}~teWLir(VgP>QGE64 zw~p#gan{j&?L449kl%Sh>$n>yUZ3plgCE6<L-&WiP`v#1*Xu}6zICKm(yyQ1wC*~H zYk&G^KEJ-$>Wk+WhvHDYKG^ze92>=<eCurYZ{w_sw~p5JC$4&3m(S0}`sty%>Y;pW z9J~7UTSs--<+QF3@!m^3w?67VHy`^ft?LuTSx4*kw|k%Op8MW!?vJS-eWCtP9yV^Z zkLF$7hyLwLeY&V$)ECM_d0khpan5Pu#i8>lP8}3y9jCt4MR9c4NU!x8KgCsNilc8` zUTIzb-pj>V*I#YtMLiUU{B%&=Rh;$qCBJl?#h2FQP3Nk0?E~#Y96kP0UH!;o%NOT+ zoVZdvfA^t2ebhf&932#A9j&)MKiUWKqx^n;sG~m=kL^z!eRb=%?!1fRS6?0Zt_OeZ z>d}#p%@?P>IQshI7l-s3$1l&iJhnJg7oWY)T_5%6^V>Iyn`j?&%I4|c`Eq}#kJYVT zf9k0t&N?0I;`vMSM|mY3oc7VYsXu+tYaF|JlTF9GS8?K}xpf}xmp&bJ#i2M9Uz^`K znd)1YukN%Dy7bzYb);WCwm57b{QB}d;@1bg+TzPsf8X=Fpx*(}d*ejs9OZd0N6)8; z^6@SmeYdVU6V2a!_N<P4db>LEP(I$JGwokpR2SVRc$ZGkHQRaU@6gV@bLJeIk9^mk zUCL7j>7aR_{iFLG{Vwmhp@02i=V#7H4?QpNqw3g)dgk(K|DJQ$>vMM<&tHG8V?VB| zxudzGxg$OOcTU~UvvugBy83UO-TvvJ{*kVEv2nMKd8sq?Kh>G$PY=yQ|7_Ivvvu@c z(#J_(efj!C>ufq`y*7WTj(9eG{mK)^ewChc{oT=X*7Mo((euRf-TmS@?Y!yB^Os%9 zQ%@iILhI~_yKz&#=NazCbzf|AvQKlgu3vU3&vp1^rR#C{<%E3n9Gpw%k?nl5OY!b& zbYHPOS3FNVN05J)bf^1eSLbS6>)Ka&Rd*Gyt~mQ<zl)w<>e=VJ>e2nEI_lxqs;mCt zmnY1b!<oa+C-AMDgD+R>7ys#V+~=X^sOP!ojpwZWdXMz^=yTZnw$EMP%T)F~k1bAp z)R%tPs1N<s*4M6|PAOks?Wgh9Q9g>-ADSCZ@$#oQeTvfuTOL2^LmV6B)#lf)b>v6> z={l-Ek&gAr=5K%esGliLpX!x#CjYc9UVRilQ6B2MeaaU{pWSt~xU%c&(qqdLU$#&A zr98T9aq4uve(U`5>G9WYpVqN?ldd?Fudh-Zif5xd_iyW47f%PRuPB}ls>c>bj~}N# z<%yf}#g*bq{fY1TWb0F&zSt;V9dZ0P`K@Dh*%S3CU!Ah~*5yrH#aS=uscSxLY}{nm zFCWzxSMILAsyEe{{JVYXYa)H5TbqBE&1dU_jda;KU4J_A*w}ow_?0cLdTi_ZE3K;| zueLbrlg*EGR-~&xHp;Kf-+GO+Udl)H#nE9~ub++dYV*@$H?Fq0vO3n~w_kp=E)Tn| z4!=15+LOO=?CP?w>WG(LeSUFWXP5GPpDV3*p8fptzUBL(?=ikF`abH<@q8ck=T*Ls z`g1GaNB#Mg@0tDcEB_tF_RW^39_mNmxboY#cr+*EH#h$3S5KTgI{ZjSekl&EvvJb5 z?z}ix{A|~I(y<S5^d_B;+L!)OpZeqPzO1)@@%-Iy&m-G8XP52^=N8S$eTG;4^6b+& znf#N!c=_}u|E><b>a6_gqw6Bi^~OnGzBu{FPygz^=+ncgAM5I=UmgCHjyR-4Up?p2 z^OU_hzv9gW>7qW>M}47u>u9~S4}SMA@}qd`s6YLpc;sK{?Z(m72YTLk&P;LE@#;S4 z+K>8ZAFDX)@=#y6inH&jAMYF0lZW0z#H(vvf7a<)XCpnF;=J$Bo%TUjoc{Dh-#Uu3 zj@DQGt>U_FKkiHC0riXg`b2%=ZX8{Cs88ID+pXK{rY^dE)BdcZJmlBE>t-L;(K>oA zs*m*1KG@agmv5b4eXO6YFZ-Ev#G$%$(0cXsfzGFRb**FL=vrsf5pSIzeUHIuAJx^L zeIi{Hr#@Pr`V(heJU<)7*~j<gKHt4RR@cqk+()j9>xSZL^P4w{Lvbi>wGZ+3(f+KX zICaHa$H}iRq$7`Q-T5~^>)5#6y5i`lPY?O^fzG?%8^obF_Xl=<>Wf!bfAr8gy~feA zF24Ev_ThJw_93r&J_prDx^$-fR&Nz2o~}BmfBVsQ<LQWBoh$nGXTEglsVh!>6i06& z9sQ{zo{l)Yx(~YTkN#>O;@THmU)@LZ#PN5&`dr1StDboKvyRr0AL;1J?}*m<<%>u2 z(?2$^{fVPPzj6Aoj`g#v$1hJ`o@e5x`&^%Nru)}API2m^{i=iQm!Ce0!`1zvuIr{g zT1Rot>lCLydHQpn^w&7?*72@=(6bNyqji1gPyZ;+dEqauqq=mFp1S&}o;Vao2h|ft zhdzpP{>7nu6gTaIu6X^?)1P&EQ=I<9(_yP84jad|F3<0ErQh%TPUrV#aei-Rm)3nR zK+hHQyAyhEb>7i>X}$Ek;di}|AH`co_4I|}<@2NcSr=~|#aZ8_=MR09uYYmVKICEh zV$(%_{j;qj-P-!nr*)Jku6{O(oAeqdULEUby`<0YzD4UO4#iD%n>WSLLw%RlvHEP! zCH?Ws!^XL<U4LvJ{LTxm;^Z}Mvh|6(aqbU&O?COP*T>xGSV!wqU)Is}XuNg%6xV&| zqxtP$99{AJ`bX=HudT28Yug7-`qrB-9>uB8FAuGY=SS;o=U+UEvyPpYKAOj`4x6rc zesO4BeEn>FiAQ<pec}JIcPH?YT~)cjs}n-PU=tE#ijrcAVG2PAL<T8B2r~%~#HSz? z24xB$L<E@%gBUQx$O9!z7Cu2yggg<M97>-cj|a#kNJK2eCnz9;ae&A0YFPhH_Db)r zs(Wvx@9pgS`z7C9-(KrmYp=b}KIhcE-OYd1>)igbf7A{0c+HQ0M)OgB9%mbe%jQ*& z^<&FRKkM-~p8eTST~Hk42d$61P<`Sc9@grkW1KB7J&1?uG7mfy#}6-`aYzT^#X)-6 zFZ&zMC?4AHP#&1$`N;=s{&_t6se@le<GBtz%-1h}<8;-p4*SG76c6#@*!1DD>q}Q0 z%=3_sKjaT<d5w!xH>A%G=5e-hdKr!Dv-$8d&Nhy(&4WKb^{Ah1oIf7&H=g~~Z9Lb9 zhvLQY&w1GV#Ni=be)RC-*v9!Ar)Qk)J(!<3XgtTs2l+$##@WW@GY;|m<jp*P^|8fe zqyv||&KK=JdF>}?zUqc}anLxd@#bY7wfeG7u1g&?zwFNs=K9#`QYRjYht|(Lp!_)w z56z?IXPm#hP#nZV^I=2&d0al@P(L8PrpJ#S%yIl`sK2>RI(RmJ`Ji$2%9r^(PGA4| z)1_03Gp;U}{prca&Y#P%H~aaX&jo$X2R%2|(Ef(vythK<Qw{YK((#_MQ5|*Xyy~r? ze#3R^n74Z5g?XPXTaS212g)Zu<PZ5n`<1;>9r5(+=ZyA)&#mnX``-SrkM)O+^=D_K zD-Wa#=|b~{;xdYd>Ve{6j%SO9>VV=Qzl{8$I-q^9Ssn58a=vWKFAj=_wK(xmJQNS{ z8I9M_bpdlcyB3cZ5A(icTYvj>tM|X_MxKoN35~O%y39u(jJw{A*LXU)PyEHxtMTgO zpV9r;`6C}2($D_#<K55kZ1?f3BTgRvcsk;Z*XE^u@pR1_57k2-pYs~W^HUEUJd~GT z)?usDezzal&Uto5<N5+uJ@?E5W*z&|`2+bci*)I!lO9}FkKaahT&Fc$m+rFjtkq?| z8)t7;H|w$WIiqo?j%6|HvFX)tkv^S_8`YC9>#?&g|79^>*KF5`>&AX`KeXP?0rfaX z)J0D{Y<~2iypS%W1D%hMj{2Z@s6Hs(`RP1$PS$j@K0Wo(gY@L9&65rk55?1SuB)4F zt-hKrJ?Qsj=;!{`=9%lGqdvC#6kU3?`shM+st?kqr*AOFt4lmoAEdi%eOXsLeMnz@ z;?&8`{@JDjjnmaHNEh;lbYSLP&l&AM*UeU+AI=?lpghq2hxS<wbG?gnwpy1StksFH z)h8bEUxfDcR_W4%>dCllU34;LJ@#gG7sVUT^(?Z*Ey6`QdAz2_&p3No6qj+?_?lln zH`uP{d_8XU^GB_&#?M!x^`Z4)+JUwY+CDfC_d&j&UD53MuD<O5JwJI4)ED<<=YjjP z_bm5k?;D=ey~lX(_x>TX_YXEd`Ey?R<%Rs!&kypep*+UTyJlxT`>&c;{IYTU)v+or zn<wjvgL!<BEe@IoyB5D_ycV}zc=Nox>Tx~D3v2lojo0Eb?>eFfvme{KLi|Q?t8_M+ ze}BiBf5Z75WvBMR{V=2ZTfV+scjkL}-JjK=F4sHsJm9)eA2iO+e#RlcoR`fn=NCsG z@;A;lp3yjeeK&t7Kcpib5Ak$ij;rx>jOzy;8i(|uIx_Od^Uu6I8TsMabm-zC9`ZL1 z^SC^CHh;EpeAZ|4gLs(Z@$$f$AAjTWu#Mwu$WI(UHpD}5>cnRh&mZ#3HeMW?UyV1O zvF2aX<xhtn-hA^oKRm>XXXo)6FAnDXY~ys;#^r;?`QvML_RqTFYDgc}{O~nDyn1pS zd3=$cae5hzXOsu#xXkDHZ0C6xr^ALdKG(tK&!&@Yd=2U3@yutNf6kZv*!*fXo^A~n z>EyU&b(f8!m!Hen*4=Y}dfku3dv1`|^P0~~e4gU-5}&8|yu{}uel9D&pVzW8ijzO1 zx}kA4tntRp8`k($b@Z1mtm)MJYxUH4d90sx%e?Vrb;LvQ^v%mW=t6Oj9~;*EjmsxL z9^x12@Pp#BzI|ywvh8zrM%RVDK=X!p^+NT)W&QZq=4F2TG8%`==2f?OL3O}o{rG2e z?m+ctKlSt5U-PKdr!IBo`q}*8B0YZMGa84>>haI$oQLL<{oEh;Et_{)zdTQNuA^3; zy40ED*x7G??JM)ks7{#2*~Ve*y3{Xmu50T8`N3uV=!%2tvL4I&)#f1{=K9$3*ZgYp z<)7o#Z$8<NKR=lL*v2=jSIbKm$_MTLMdSSROZ`wh#H))fZ_STCKgd7Z>dHJD^7Guf z=sH*LviomYKe`#s59V=wF%Fl_>w2($kS^p0`KgCrw(<H6`9Xf_=eMqTs2|D?b6t3K zsdHIBdH6#*5HBB;7xIJr=<v%n-hQ|L`9Xecet90XytyuZbm6jo>JSIj1+yR9xH$V* ze#jr1ulo7X$$rM6@$Aor>Vx7k8i(qW57LEr^MJ<TvVQzCs>}XT|02KIJaT-lkDc}L z<_WW2%~rqpWIy?g^Urz28Rw6OHN8B}FYDo99``wn{27gltIZ?FE$dgC2R(V!k7w7$ z`9Xf><2uj#OFb};+duNx{PO&>zc{E)h!+Qq!)5DJx4Ix*$Pd>1YW3-}`uIV4jPqYK z4{^D!T7Ap<<+|iiAH-)=KU5E0n04?qJ^qXI_|?#US6|L24$pttytR4Il{fpb`7J_q zLH_h}{l@d>a%`X9`CQNEb;f<p&CV#EAN2V-^qdOqb12UH1r!gRSDV!lPfs0CzKr6a zc<6eAIi4*ZiihH1_RF?7^+WqN>(t_FI^yZk&&Ut*&o(~Cv-xKfmoe{4wtZz^+gJ9j z^|1f-MZA8nGt!|8=|Z}YE;Mhr?7a0s-i-38Lq5EGHC$AO^9$zuZ26)5>VaETN6wS& zRr9NB)qcne<;`gRP`(<jT8Dh}Ygo&NUzFE=g!Tng2i#wE$ZKB9VxE7t%^R9`4Yx}j zTQz_EF#n9X51v=xR@EVIt)4}7h+Bm6tcp25TOZ(}{Khw$U!43<e#mcCq_-@}SHo5F z^Iw!-K7Q;PE~`tghBf^f?|B|>wvJk!MZEklKNqo`Z_azyxBH>}>p8)EJh$na=QnkE z?vmg0oA)63y(h6VijxnjN8NA{Z@y5RdBe=-K8T0>`DLBVt5bYNeHLe&4Rc<+{LnfX zXTwE0{KP|b8ecRoanQWzK=rWsL-~xGXC9}6=g+1C>15l!v>(~_IXk0qeSxkos7|Oa zHC$GQ9<1r%Yr3^Mm(^VqzpRcr;ktCylTqG{V%B4CRBx-}?0>jb`t;yNb;Z|kUAp<Y zX1iY8m+VLPL+k4tP@i+eJm@)>*!*%Hx{z)S=|blq%=McGeW>0V(uefn<&{UhxgWK< z@#==^hVBbco{aS5r-x@l`j9@PBR(UYjPxKq=y?s+^3au+4e3MrkUm_Lr>09E(uefn zM)S~HHjjEUiidP-sBY-_8D@PpeOS}S(}(mSos8n4_!`oyVb*8Uhc$hCO&{+(&FGwS zzPgT`Q}&PZ-2Qi->%Vha{qm@voso|GI~DW1*yg7{`e<CA*%`(0gVqUJry5!}Xx$)P z`vGP>@in9e?FaU{^T=20i#pWLt|2{WKf^_NYPy-H59veepl-NGhaRK{ogZ+2=TWD5 zv7x%5x}o!qz0vv5hxBT=?0V3HH9frfz{@MoR`p-q(C1(5%PUVlSJ}=v_Z`=>bISg4 zZtK5uUH#5!`;@+QW@n@$KUBxEs7^@7{NN%z@iknR?xMPk*XpYA;uc{ozQ)(|YW~ae z>(*Vij%EGSyR83#>X)x;w(G@t;yQGm=$~^yf1D@I8+y(gHb451E~E?bP#)v*;GJtQ z=P@t-bl5el<>BxAWXmg``sIWCYbb9<^MmrsLr<PX@r%akL-&2Qyz;@U%T_lV;xozv z<(J2NVUAy9(}nbFczNgb98$}xe=yJ2yzqHm^zm%C*}U>+ln=@Wt*3cG^MEy7Jbg$X zdftN@&0EV?%bWABI=`%&?W~_|^IbJ>o+sT!C?8z3e&&-g=b?vZLqETUTa~w#ua?*S zFr)L+{lfL;zHC3buUIelXY+A?wm$B=`X{ft*>vQC>VoR3p*q)v>e45uKA7v<>U#9Q zhTEmiMf29LjJ5vZ7wP8lTA!BXbA4>}z?^qgTRq~~8S^+>9U1dDyN2=^XKxke`m!zW zs<>74(NWi`b!2~f>%z^}xvsjhZtlyncGg+9y=-0CZ{2le{hYsM=eWz;uGN+K%e$_e zFW1A)e*4>2SH}HaSI)oP>r<~f+1nLco%1(_ty-Vf&#mpJ_qmMLOTWD@dT#N)=(*ba zqW3HBi{5Lz-+CYQUhO^7zx(HX^oS_P`{<FWz-uKto8sh`$9&9#y;UfmzN{-xu6KXs z&2?<nw(lCwcXaDR>%+7IZ6CCKu#tT*@7iVm@BZX|?LOr`;v9Fsw*TBmJrB5FdmeD# z^*kW6=K(f9`cPeqP~Ga}uTJw(7gQHi7p&DGPeyt0Y<1xEi!EQa#i>u+s&&y-51T%u z4|AWgt!~eA`c5BaeRd6N`Sk(H?|G4}9?zAF>Z;X|`9*cf57hxZ$HKfG`X!J2?2LIm z*z!YtPzTgE_26rDsR!nIvTdE9dZ2t6)eF^^*HNA7fw>NSf%3ye`HkyWu1g)(52^>M zOC1^Y3CdH;uO9u$cC8M1)gvF&mu%x}_0;OvXkF@52h4ToQ;k<w4b`U~8RdoYK>770 zV{Lp<J>qgbwZ6!!E;gNv=8fmCF5_%|>_v6ZgE^ip&mx;2R0qUcr;O^r%ZC?_&nQm~ z`O|^?<&`h56P|yL$3ywp*+1L-@lYKZ)sy4c@@Axq&o&;?%cvgl#@V?(dXV3;Ha}R4 z&w1J6vQ0<*{FX)W{Iia6&(j&*2i&LJkK9k4FP@`a*Pj3FThE==#q+=Udj40R=lWcq zd8ktyJ$W*!2dX#Q_(f>`I~}bnG#~b|XgxAsH;C&5UN7+4f!7cG-oT>*eJ=ZbVf)<n z`@^;mZV<M8a&*}CQ8#S+?1o|6hc^n_KD}|+_VG=^w$E=Gw(H=Suw5rV5VpP@8@9gQ zENuJh=3(21w+P$*y=B<;_pQRV?~e=H^>XX5!STMSpg8&Et+-cd@#YDu0hNKR(y7Qd zdYg8@y1Q=Rs^!{u;$4^fOJ~)*&42%PV5|3`{RdZ_o&7A{zFt+Q`L_<V4zv!m4zv!m z4zv!m4zv!m4zv!m4zv!m4zv#J^bTy*=QciH@%cVnwLf%xZUa}<Y5qH_13s^_Z#KH_ zdH?wN)2iK&Up!n@r}^)!4%mm*-+o+m7UJ!jt<s^lYCX-rb)a>ib)a>ib)a>ib)a>i zb)a>ib)a>ib)a>ibzrA=V5>jJ_W2E5wLkfD$c=vfvufVvzkfTBKR?{){t@T%KDg@a z=-7W7)mb%f^WVQ6$otUxuUeJ;W8c74b)1Ld>8`5N{96ZF2U-VO2U-VO2U-VO2U-VO z2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO z2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO z2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO z2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO z2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO2U-VO z2U-VO2U-VO2U-VO2U-VO2U-VO2U-U%uMX@=i4ID3Hu+yE2H=&$hB<D#+3G$d)qQB# zaJ$u=>&f#lAN9i=x7}>}M!oQ`C=_nDx^q1T$~^MCn%z3kI?y`MI?y`MI?y`MI?y`M zI?y`MI?y`MI<S2@;PX45(;b{j^LbIC_n6}7i1&F6+!L_kH$ESMD~9iJ7Z3LgtoV)j zz!k&yxQmB-23GvW=Ui~b@ICHViSIV6bJfs+dlKxYZ|q<D(&wG_tNmaf=k-|B4{`LN zJdmz@bYZPM;%X=!ZdS)WsOiX4L-BCkI`Y6=mwgCp^@xWX)sY9%gLqi0C-dT=c$od! z`)mK(=P>uvJYXI-FXL=@wU{6@-;DXX$$9A4P(CPM#;fPV$zFFI@~bPQ-(xPCzj?yk z7d(^?ssrvxoW9v?9rA6qjy%6?)32dAGMazJ)P_A~&YSI8e*B{R-xHbOp2X=JdNs^> zvR@w0^Oql{^i@+HePPSThIqJDb;u9p%l5K)cgKuZ?T36B)ss;@P(FQO!|Fn$ft)AX z@<I8ad{94NO1HGR**bDPOD9f_=3PU5fH|)|z$Cx4S<8=?AF2b&&t5ula+D9s2kAq3 zYnbFWY|39l^}t+DEwTHY`@ieebCG@OJwabQx2eZ_h5X)M)Zsnk8mW-Olbua*@<H{g z6V~_~$IpDs+kDL{^EDlD8M8h;^%@t)hU#Evq$3_?zpTR#(or8i>tvfB)K@nDoWI8N z%k|{C*pQyQaFGr_SktjD?MJqK&d$i+^#RodU5C)TYN+0f`VZ;BnjSvu;pstokY5e6 zE?YdT#n*T`8R@}VJU;tnJvKimJ|q8SF~={mvu@tE>{WGYy7XZ7%X#uRn_o?bUk$~> z>_->oaklu3#xv&Yn(e;mzTkRxox5I~6ZVaBL4JDjviZ@6bme2$P+ll66h{x@p?HXg zc)I2T`O$}XNQa$~KBVvdp?`E1A)V}phw{M9=AoN0?_YVK=PYsRX4g>NP#&1|*)_cy zPj68k`Y_K!ygY2E5As=mNH=57Lm$$I^3a9&tk34hrU#9yAI~-p>10#~q?0l0(h<jA z7RAvOr{0YG@%)!X@laki#4pO@{Be#uXPmS4iSyk4aGvY0b6Q^WS(INKeR<Ub)urBy z*^fWW{`ia=^)ug$`jqF%&wSY##aV|dD&}=+_I#&YUVX4H?MJr#&CbZ*K8LPX=p3=X zog*8?d>ym(i%nmC_C}GudC8N}Jo#@lUyh?kKcn*-=J<`;^yJHR7~iP=qPVSEzeRa! z<NG^*t**w;Po&m|)`w{a_SZg`cmJ~gcTT!LI6vJ#oSW{O&Kb|k=Hou>dE0&0`+&@T z9>L}(A5<4qSGMu$g6f9&jOvHR%>&QQNM9X`kiR@Nls6;)%;&m{<8xj52#qhQuQp!e z)v+wnso|nJ<<TdIhx%e1;vs*?FV}}(R3AU_Y$y-RJUgR$Gv+)sJM;9_QA2(i`KxD< zEuLStbA5|!@!1bw%Y)CD=TXz853^3qUe=$Vda{j|hs_TfXPZyv*~a<f*%^)3P+d^G zJWzZd7njHJ(0C2$=J6cQ4_~W~4u6<=HXVK$`N_+MnXkq3ujQj7o<BQdO=np@`ZZLK z@vNI|e$Y4@s+-MEzHDc|Z1ab;aXeh)Zybt)xn6#dU$({7#`!~j5Ko7#uWTqTqw%bR z&;D%Vu*TQMv%ma!C_W?q%!|u?z-O$*XP#b;R|hnnZTupXM}Gcny6hU}IDR#LSzS8n zTsDrMxLO^V7YF5MXEa_z`Hkm%c)Dze&vDsa<WGkmq@zx@aeU48K9@23)AgLJ9`7OE z7rl>qU-Vw+_t(6S`u#QUqt}cAypJ9cw)e~<Q-Rk?b~eSy53}DQTby~qMR9q2t8}t% zv$uB#th?)Gqx(l39oO}$v)?M6Rr5Cg{o4WiFt7irRf)I%?8p73vufVv-#XAb&^pjM z&^pjM&^pjM&^pjM&^pjM&^pjM&^oZ)I^c5~pR>SK>lEj68@Ru8R?XY|_iqRC=YE^r zKlY=aGp#y1`NhLkb(;Uq>cCd-L;J>lTD2SE=)hHVnt$s+>p<&3>p<&3>p<&3>p<&3 z>p<&3>p<&3>p<(kPVYeb9DAp);DJ&9R(*cBRiFF$96akC7~O8OsC8hw?n9qn+n2Ta z8{az6I?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`M zI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`M zI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`M zI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`M zI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`M zI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y`MI?y_>zdNui6>w0p zvuXTFF#rz<8|Jv}W~)2nm7`F&-RjQu<oem_hdFM$+3L)AXcP*!Tiv;yTt8d=Fvm5! zb)a>ib)a>ib)a>ib)a>ib)a>ib)a>ib)a>ibzs>J_<YXidIzUKpARK^k139hc%NIq zJpn6z<MR->V)!0+@o>+;ir<(ITrqr)yLh-~V8w3^3xBv`_#XGGY?01YLkI3ju%EuM zf9*@3H`}lFgMFOWV^Lql(TDQNCl90xYwa-()d#H`T(^!q)>mE7IIPtp9*T$JVNK_1 zF;LUN!$msu)B(lAn$Fc@0IDB~hc%tdi-+Q2_GjCN_ND!}?)@(h)W;f{7c?(uU215) z8Eg6Q^3_m&nDbj_nDevct6?oaUVgaII_SY%5B(Z0%Bv61{4>fA_g5Wxp6Y>lJll)< z@jWqdnESxay7I$3p6#uwBkRZybKY#{c>4hA12q3dC_l`3v%SCSSd>>EpgzDweK4*M zaM}5*PktyrlxGnx$}1m~56YKq{G$A|arxB8hVnuAYFNv&h?ft_SHoKV-HQ?}7?&T` z^5b(I^5Ykzs}9qzA^jSv16C8QIFRe9<;TkpYw6tA^7Fd)0Q=K(lJ)W2rY_HK@_T-h z-+Rb4QXz*YJDcL<gX+s@9+?+s9GahV3f6di5D#nqHC}zj7oomqKRW7${Ib1S9eQ-w z^5uTu`PYyiTr@9!kgj^*syg(<L;KQxWZUQLjK*Cb&_06twk)a>s&i4i>%E3_GHzB^ zof&tUZmn<2@_GL3W#empbTZcbm*ulw&0bcIUri_T{FlWXU$d9h<Cm{%w(HmZ#d+g8 zx4)eO^qeEEGkWS}^P>;tfplvq50nS0(|jNv*7WgN-?<Fw(1&<P57LF|hV-HSiLW8O zMY!%f^r3k`^YOd|m#v#$O+V-H9GCOxBRxnL(t~u^=97_L4e3LAP#&1|+2Uc&hllhb zeMmQ>K0<ns9;C+>htK+K&)JYZq?c_xeMol^@`v;w9-0qaq;Fh2q;Ec%r;n$T(fOIr zA?K|9?mV|ooagd8r`09TqWpB|L-jy)W;71-INLbHXEYA;INLZh-;Cy`Kjz0zpV=96 zoOpfTDl`xCgIlFfhi<;l8E-h>0j&?M57Q2`eX!g<a9^t7T;;O=cOE(aoJ-E-b>IJ- z@A5(QKy|@9PxoEuz6(7Mz&vkx@G$4e`;mS|d3@gKxs0xS(7fPg^U9}=YsS*kht?P7 z`ROM#Pr8e6tMV?&W4=&cb;I0OJT$+IIlnyC*SNene$~A6YAC<Y&*jay>b&HmZ+_Xv z=X~rue|124Abm(b+jx008i({DJ;*QHc>QJPd~D-TzKrrf{xy_eo*MGYx@;&98{#w8 z@@1Y5tkskCYj)OOWXlKXiep1{=5aP1b`AMuUG}ng**o)`aZbB$IH%n=oGb2|&TsEY zt~c*tu1oh_`%`{>VT+>=)dSTD)mcMz8)t76%@dlZdTJ;?T$EpbH;U@ZSgQ}OKB&%Y z;}_wg`g48yDc`cV**aFOQ{DOo7uCDJ>fCHyx$Z^%S~RYI8MkYl_N97rKh&N1n!Tt$ ztB$K{5vmi`>cg*E$0C3A<$h*c{zbSb-$uvPxd``Hedd+>mTmRd>ZG%7tktEy8m_x8 z`nCMEx-(B_U8p|#>{U_x<%PMv+_!A=zr5;`M_!og$~M1@^wxzrU#+f1e6Ejf<~M57 z+bnK0|FUuV1l61E%o~Ts;j;M``O%XHF3a<);iCMjj(eZWNXLChJ)T3%%X75%Melvy z7rl>q-}Rp8{n-1c_h|2xM?^v1M~_SeUMtzz6ek~4kGkO^-n=vF6Qsw6^mBa8pPzVW z9@d2)v`(<b%gYbS!?vz?He95`&wi=t=+C<5MOQsgJ?g_RJ1_op*!pK*+K+7eoSo6Q z^@jT7I)jUN^MT^n_DPMW&mZy^4~^?PyQX8DKg838^76y;ht|b78`3eJkzb8BzGz-K zUVV7;ShgN{#Y247p`ZQutB1|czFc+x^4AwA4^$@`suwQnr*88Q?|Ov%j6>s4UjC3i ztnqZ<vVL^MLFW`)<mWuvU-Qt{T&MbB9<R+;|BOS=8|F)oK0nVPi~Q(8I^x)#W3pei z`N?0K2YvD8p?-P!(OcH9rXwFcd7yD<KCWx?f$~86fDP$G@wNHztHrBdoi#t>(7D53 zetnh~&kxU!9zWyIIDb4F@-v^BpK)j&^4ID#PM4p&>d1b0C@&p6n;w*hAEaYn*)Mb; zzg6{WdF6xZp)X%X^<+QqG4yKl$Z@s$<fT{hGw!`9&qKakA3u2@KYIB(H!t--*Do9D z7vyJu)%<F_`M^bf=H>d}FTc9<BlE`P%YO9u8Ru^t57osl$MZAJ-#pY=(>G2RX5B@8 z{A+paKbZ4~SHJn#NBkij{_3Lxjl)`f_A@_u*wB9GFOPa5e|6U8!4KBzGfr=jAOG4s z=s@!jXCCH>x3A=f#$jze<XhxtoWFYTP<=lCsm+7G^{cIie9-*pszctIAOGy94k(^q zZ65r*Z!J3ydCWuoxjy;%8RsuQq|1itS05ezP(J?h$_I_px1WvE%YES|j-R^Z$3x@d z<j?uU8;7-d(B+r=Lf<%Cbsp+6AAK<&dHCVw<6pbZ#Y5M*I-&fKpLs+1`Qh16z3P+S zIHYGjt6t}HAw6h))d`J5@#@B_E6>CJ;1BuN=8@-JtB)UD>!eQekWamM@sJMx%!|){ z>XR4J5vM-7kRM(3(cx#Dzj69`oS$(z?CftI{Ib5dMf0!^_|c)OE@+%Sq+=iDcyY#a zoOtN-WuMdeIgD|iH?uSH_g(-!*F(I|pPW1PJIv#3<BQPwW8G^0#`(*mE@&L$q4^ny zdA#PwzlQ2GkL+jMzFKu2>VjE6&x4))YW1m0ojH!3$2Y6zyr8>CFV`s!53?>mnEjT` zs}C^i(KQZhe)x>)hsNnc<IweM{h>M_-hP6{;j(`G)d|%Jvme_ytmUN(vtM3Ee&%N! z8qcUMJX?Ki<IuSE$n~is$K%z-rpF)859a**@oaTvo(=iQpYvoret1aFILzbx<b~NE z&)<EN%^$k&ip%p5XB;l7kABV1xcb=i<;~;#GV+6$*LAK=^MrVq>&<@b?6=YD!#dJa zhwB6Klb>I<@$~XK)%^LnpUVq#99~^eeyA_T*~aNYJTwoO{n+Yf%SQ*#FYB@S^Mm3c zKXLqOyzAG#=Lf}SJ@Z(UH;>cJdfAVi^XE9@&^-7-d5yE}7x|z#x_EKWILv-*<1p*1 zE3XH?jQr{4^~ia};~}07G;W?yed02T=ci77#vwm;o`<|SUVV5roy^mL#<PE}H`gaF zBR}yu58JrBcu1EY#EXN**^r*PvMny7_v9QWKa@v2eLUMZ6c70um)AI+oyW!F`R92o zy3Xm_M;VRFXWTrYaVRdMarLq@nitI1hdQ!8UR{tre||9gWq)x{{SXhutDj$O9{k0t z3*sSv<LYM{hdB<fE|~q;#>L5J9A-bfI5t11ZsXASBDC-M)$-A`E{pQ=6Gs=yCx7k> zn-2dRkB9uTA3c8R%Ad=zH~aaX&jo!B2t7B}&_0LaJkLVs6CF0RK5&taxQyaq&d*=H zHPnAttGgDD7Y~=!Q9rc)o7E8y)hQ1&o>3hcm(|H}*|wiE+7J12X#3te+sFD$$GWpK zijxP@f#wMp^~ZSu)vsPi4=&Qp=SBWGK+dyl{dBF1^9TC5iTNz6OApek;YRc1`q?n& zlgEBo)c=|eUE|JmygYDGo?4&i(}nVx2egmqLH;>@k!{`0qn1aV8R^4X9eDas{o)~i zh*vKjs^2($*O9vEK=F%gy0tv=8He&4r-Nr3&qycpwKzN!XP)euuJJ|aoXej(I%l2F z&Mnu6^WA;PIc;CdYhSQ4ijxnj3uZpo>%8M<T)c5u<Bh{*{qnrn`edH^Xk5MQjN+`r z6&0;V!}$)my!&8Z+K+7eo1Kxr>#>H;5$GJ*D9WQxuH$_DIM22!uRKtGdD!N)Re8-< zUMP=wv$qOsdCfP^FWVcfLm%nEjp{8MColhX^_70Z`H9l{(E2d#fPLV4-zhj>z03aJ zdE&fwo;X*Xqn;DZ*K?$PxDR{YcHi~BB(wJ;Hb430RTor84b>$-#H$n5_}aMo^atj8 z=tARc`mn|uhs*k@Q{QTJ*6PZ6^l{ZX_(MAMYjqjV^)2F!XRPTg>nFa3H68wWTtD#q za(`-m;xew<PkCY1%RD>RmE*E44zEsV9P(q!$6gf2pH4>O`b`%a&w1F!>1G?B_3*1A z{TixEzKpeeSx-Ok*{<niKk-nUI@#*Xe#Y_iYdk;5Kil}M!w;`6i07Aej6;6e&O9BM z{j;6@a(&r9+w#|ter;Sn<5|CEi-XyZ9yAW|>VuhQXXIZ){_0~xak(Dji%@*_tMUA5 z`Es2#zpTR#8qcV%?3e8v#}>bAopd1`n04^-h+Bl>Ab<L7<4_(pKbXh)Wj@>d=s-Ng z=XiYf%Qin~9O5CqhWs+-`WD46>bv+wy2jNbF5|NKavYmJ#6xwkvtMmI`)#z&tdr}= z`HjOx<Mg38=zT6DfAiw+c|cz8E8Z8q$9P}#Ug+mf-bej>%KNCFM|mIh^D*z4{(PM} z_xIl)Xx{pxUzs<q5BdlBi|3DL!<r5~I<Usm=Lh9sTjy-!7wPb`e`-4Go>wie`KnL7 zwRtVl5zo(lwU62MIXk24!u6s*&~*kE@#e!H;_Z_fU(@F=o?eZw>4>8P=@^H2e)x>m zmmeF_5yy|sk8K<eYxBzbbRa#*pPl{WgT^7A4xS$52l-{&zFc+x^4AwA56pGq)d83F zGe6g#c-J??XEYAwr3>l98czrElUKZPSmT{9aFJiWFUt?b!_2EwU2s`Hy5gYv;j(_U zdOUBKFFpG5@`H=~=+R+A&o%Ux_0vCfLAvzRXFTi6U-P2_b9~N6Z&^RrwfR8xLcBVm zJaAb*y5gXDnpe%wIR9ny=KUvc)~n5r9~2Mq>VoEB99l2v{FEQkhvvbiFCSjKalHK5 zAJ5M?#Pfsd_g)|`f5?wstuB6$pM21`ymX;)$WMIs^B%)L_t`vhT&|BF9hm*pVI1P+ zVH?jp8=8mv|8~93)vGW1293jIuaDaP(?@81Yx()*alG|_H9z(9TlT!l^Pn$3T-L7^ zuP$}!KYcboy#5)7bYLy7>ya)$I`U*cJbm%}AV0_t^2_~`pPxMHqX&)CtNGF6Cms)t zyN<J8&L_^kk{|Ntw`ji0`l&PPi#ML<!5{L2wS7ewnxFpAGcIrT<Ihjt9FO<;6}=o! z$9c<d)p^KIUw-<_&VzqOpUbIFp6q8F%F9ok^wjCPG0vY3<YyexgLo(p+q%eS99j=( z9{eHyT7CS~Rr6C9KZqB{HZH$BY{(C~51J1Y4>x+9*Y*XTzImt<=5c=NhpS#6@<aLP z>x2E3{rK1Fvp)RjvLQdX*?GuA&pgzb=fNM(hIAl4qjlhy^U7~ry#5-;^P{UinEm+E z(O>BLriZWTEV|C+gXTdG%11Bzsh6L+@bsa1(Bm&&-aO9E=<{cv)A_uapU<7y8I5}{ zfc7!;`I++u8i&jJ@y}@A!93134wucVZs<9Qu5;2jtoez9;-UJCL*vlCT6G@kQYSrm z@QeKT=XiCQhjA#5U*_46A3gEL;i`VwpFSQse~d%pke~YCX6qB5QC^tqVykOazm4uI z`zF`B?7qrzZ1qEYM&stcD6e>aFs~my^D_>O)61C0)mig14%H<;%<=rx#V_Z_L;n0A z{cNi%^K8fu%0m|#hs*kjmk-wVJ%4%F?!Wkq^!P1XA3t@;m-X@dVD`&ATV2^d+x(#W zw|xWE4e=R`tKYbN1&uF4^MN)0Jg;T*sz=@IoG<I~S5NlGL*weiL*vl?%IB{7#6i5e zpmAs(#@X`ngPB)9T;yk5J~pHS@$y3b;J2(E|BUuKU3nmXHvd{)e&TBLFfMORkKZCx z7rj~?{EW*BbG`EBael_(vVQzCst>9&`<W*`=Vcp*c=cy}x_O*!Jjc;D4$Z@OMt(5Y zCvT3!tAkC4KOXWop8d0}{>+Pq#`)(wY~%dZ1^F3=@?^|<#_1VndoQMIyoTz5^m9CY z<NWzS;~9;s&p4i5ZJb|i9(iA}<$-wffyN;|qj9Kih==NCXUy|iwLW>(ne*Wxe|2Pk zJXBxJ4-fe-ng@S%LG?j((8Kem!>@+?)W;9cHjbCiINLZhp6#rsZaO(md=2U4>x7<h zx@_anIFyf_(KtQx;Kw%3zlQwsJn-r?PCtJx$KLGcdp;NRIUn@gSVQ{~it{|{J;QS= z9X2#Sn04s!uc3HY%ctHN>Ob5nom$<w4)sI(Og$Ub5f9~+2O6)TeXXu#b@*qbXFq4O zAAD|YU)lHehkb0l=;#+aBVBnQT}T(2HxvieDISW4;-UDA;-Ppb9`eh`AL<Vj4|6<Q zJQNSbLw*_gXB1~&!W_@8#pA_8`iqc%4Hv~5uf^l@zGT}6_NjffRr}v{BM+2Ef8iqD zd||EsHJ-kBD8GKenvQw!gY@z_gwN-my!?&RV>`$2Y?yWEW&avaXQT6?3zw}&UUiDc z)6oax{Q1Gmi?iSDN49;=&S+d;pmPeU6WTX5q+>rq@i52RM>SlR?ndWXs}sL2-Q2gD zt&U}}rjz+)_4tWrFN^kj4V!MhqD$L#=en^U-49)d&H?>&j#wwE)`88BK9mR2g>;~E z4Ayki3)Kh3L+7S*b*psgLGx4>R2Nhi6c5!4*QIM6)CJWA)dkfBy?4WP>26hhJ{N#n zt*Z|k?Vq}!-(P}TrAr^Wo-?ld{BZ8b1MPe0da9v)2e(Rx9$c61M(3%n8m>!s*>$MZ zRpZyCTg$hIcRuiAL-iV87RB>tL;R{JzJ{yn@vrIO^SQxxz2y7ux}QIslj}nD)7K~V zx=>zyhwIAMbmu#{^`Z4)+JUwY4(xs4eRQYcd{r*{f6phL1Kp?Gm)$?ypUvBS#(wvl z?mf_ZzxP0yz5lTJ(TD1S>VSBtZm3SEPPl9y@sK{mXOsue-s-&iLBEFj#2;EOD4wl; zXq?RtpRtxV``IV-)Cc*?%ZB3E;`l>;(0+vcAU*yNpE2jn<K`(JJLk)BIWHUPvwaEa zs*5h3O$TOPy~fpD%PXHeFzeETi^k=ppHV#IPrruz^LUQWea-XAcGg>D=RWf{PjzPG zS3~oF*$)qm=lRHMJllAf$Fn{^Xj~jLo{@j%a~waI{WG8A`SXLB&o;k|)*0`9n9=pM zzwXcO>z)VPztjU=7mLt7UKQn+59$xh`Q^d0H;NmrW2^G3+k7+11Nm<jodb|w&d-(~ z^4}^{2b3q{qI}{rip%^WJLhN9TNM}OtBtRkC;QiQSLL&A&0bY^RsUMv8o#Rkvi`Mv znO|0KqkcJGwl}J~YFy4+vscw!)qj8G&2_2+&(3IkT__*@Y~$CB^1^lJtLf+GGPd*G zeNUa9Pw07W@LcIR%JZVnQ#=oP?(&@IbCUe?SU>kw&rU=A$aR~4@742>)BacXxMJA) zP@8S7fA*jLJ>{BqP)+H;<Xu;_+12{@-O1N9M*rIW+j|FV{j+b+f6P2iANQ_u;IjHq zn_;bg_FwB?t#fm}c75yniT9cN>EpiD4!lu)sLia_Kl`usuhzLaU+bT~zv7N_KYiS{ z+JQH!54D-q`e*;O{?$4+=WG4NAA94upFZwe?Z6vd^wg_QdFJ+C>tF6nY1jIP?;Sn& z*T*vYz_&KL|62d{y+>-#&-S19w%+&D?lk+>-|3_JP@6}sf6l+wzgp+!e67EkcOCCr z?Z6w|?D?l7t$#Yvuyvqypmm^ipmkv9cffN}cg3k}G%ly1v+B=L#jRR*%U^atA6x&+ zzAUozt-Hu^!8o1P{{@Xo!}``u{Hi9M{oVf?tXR0ZSB;y#4^CtKe!_}rFXOI`{ChE% zaZH4`R)1>Dil#oc{x8?Kw*SjMwf$4}W0BSNPuZcif69I=vbK8vO!cN;-P!+_|KCRA zat1o9K0k?DweFU`?0`PD{+E4OWa(RXk>i4KI<5Z;8kL6it(*8&O*;Fl|L%VqoySJw zHyW4wyHTBu#^wChZ=?O&X#7UwwyOTE%D>rl*lhe}=do4s9YT45HffXf=Y=*YcbRbd z{+!Zf95zYNzuqQwYT@*IHHS^|^xOLGy^;E})7N*W?;n5eaPO<MarQu2-`1bK?*Z%E z_W!>7v(wMFw*U9NzWyBd-n}-?US8K%Z{sEIGgAG7eR^$tkbZaL68ns#KiH?&#s}#i zv2lrgM$-SmeR^$tkp5uf68ns#-}<xnHtA10fA-y<!QO{A&FX)5(@J|6pg-9A@TOV% z?fTk#D_ei|-WRO?w9hwmq(uGM>CgYG{(PeBLfz7zb>F|%y+3>PDQ;>+e+HXUsRz^V z)?GF=LVvI+m3lD!Zrx>5BlHKGQmF^iZ};E5_o($}?|s4QPdlG=q(uGcmGqWb^aop} zSPIeamh_fc^aop}SPIeamh_fc^aop}SPIc^=X2Q?R_l*W>>c%I-OsnZy{F$atNwNC z4>n!t-UZa(-TUySS^9%bEA3r?emj3!fA-#ieY1W)>Vf-q+wkbR^*3Bt3v3-Y06MVl z>#OM>0Gp&up><$Q9cbsnz8kyl{_Hz@8*Lppusg8s>+AB;fAoR9Ojp?1*+1)A-*xL> zVHa+jOnlwzyKen$(#9)n8S7r(b?aYY7jBzOeBJB2ZvAc2#w%<Y>t5e=>tA6PZktSe z-Rrw<{cY05D{L9-Uf*@=Utt$+n@oJ&>r4MO+ho42jIHg!y4RQfy8ix_t?forTeSn$ zx1A5Gc5Y|*uX}yzxAS3V?1xpWw7%_pShaII!++iDOTV2DJ7YhrTBY^vts2<;cSHx) zy}tC@`LH9l!^%Zk-`>iREnp{fVBPCWznu>|VK=N^qxJ2r9@-*yKnK>nzVzGqumd*3 z21>NPy$!^+knP`rb+0e|c0O$Xy|9rAt#5B5!7XOncVOM?OTV2D+kPu-s6gx6+fZ~1 z+U^}#_xi3|f4lehK(BAz>+A2&S=ZmcbfB-#cAww6*LU6fbG!HVK(BAz>$`6K1ATqA z`~23uzU$WC?)^Q`>s$Bwu3P^=U!Uzhzjd$gy7jkve-HHf*1f*#)<4kKXS>gD-Rn#L z(c8Tdt-cL)VBPDxZv72Sx&>`n2iCp5>(<}0Ml_)fbzt4=yKemrO}YhbSqIj=zU$WC zvPLwa4Rv7M>$`6K4NbZQZCMA}`fgb(x24d!*LU6e+p?)wprY2jzVv%npq^flrfPlL z=Whq*s;_%}*R6kGuFB4t)w<Vr-TFJH(+6gyZG8{Sbu}yN+e0)wpgLfE+w<W8wXAz4 z<M-xYcfCE->>Iy#-RT@Y{_f;!g8k`${V;P{;(z|!*H5RwOZ1N~^bcM_^U^M4^S^(3 ziT-JYzIraLv9IqhFZ~-{Qt+&tOU$Pf^&hgYV)rs;zV-e*J@lX6pN5<7UZnO)@qcC- zy`=uri~7}*+^Z)2Hztou^j{nLr}w8W8`V$SzjKNH=Juz0s{4O<)Msbc*YN+%>fh-8 zul8r~sp!wIY^p!&+Mn(GneN*9m;GPAez)d)Ti5#9|MmLY`7>Spb)7#8_s{T7#rb2s z>N~O=q2JD*vM((Cte*d!&D~%0zkYpf&H1oy{dWG?F(q2x>h;xW&p*?SRr}MPe`Xu1 zoj>Ju#d3YM^G8QY)Sv40waw2T^;hp-?fGZ6;O+CDa^JHS?w`)qJYTi*N5@Ol|DAsR zRO^4o>Fxb%vgGajDfd0g{;%G@+W9kURr~zejw#XpY3EPb7uHVy{JDL;WF_~G_J4c6 z+IN4d=fe(pzpK{Yp08#Lzf+&D+WEHk>lWM2H=Wo!>QD82*y-on7alr)e;j|eKkb0) zW$)d%EUQ1CO+$Nr|6%lZ?e_;Jy;;}i=hkao`qp>d?~m)&Z_jV(0u9sp9<b-zIS-$o zZx<eU#&pWAm%Vr6vaJ48&$s^9<9vI0e;U0}{dev;Fy}Q~VxATH^WUFb_4oJM`{}%& zwf|e+b)P@$)^F$A-dEWA?)3Amdj7odY4h{#v}>O+?Z8IQpZfm!_u_n8_59KQb)9eK zTfe>zFV0W(?0vUfmZiVbpRelc`;?+TtFEv9)cfClKXbaP*8TgL)$?ue;aK1K@8?^u z%kK2OGp?6)|9qr+zHRg8EB&eV|I^QzpU+>o?WWG>s($~7x&GiC{pkv>y1u(&*>4jF z@SV;piu2*h9F|1&)X#@@K2KZO&gZ>vsD;<pPXGL^ozJs{U)S^D!u`|E=UM;T`MmG* zr=8FH?oajkq@B;R#<l0?eea*@^>y9X%%5+sdzabs^Q!Ns&i}_<@<2N)WRH1%{Q22< zeqL3dPJ4dd_xjfFFQ*mn7v2~4u69}0`d0T(r+vOL?OHpZFS~c9jQ!Kj=Y995c76^X ze&H4Re0IP1x70rOh0Xr`CyVt@jPvuv{<H-9Ih9j27wd2C^O?o^{(g`7-@mcZ`cJre zImJu*e|&L&S@rM7P=8(j*`fci{<MNs_0@T3S^lN|{t)Xs|M~B#`s%Om&zDF2^PgXD zwEuPehZX(Va{Y5|J3oKUnSZ{zs=oeLKc64P=c}CyX6vh;X}PNALjBG&iv78&zWMI- z`}<W=2lcJ9$@SIG`u<$^`R4j<=kukPc+dK7^6#&(zU_RzbayZLUVrNQzn#z1ZdK3! zc0SKGQ#+q8xu!1t-Qw$O-S?OF{5)Nc_WXS5U3tm(3-{+HpRe4<tLJBXex5BxwLhDD z{_*_3)6eJn^V`<Ezt^9C+VlBzgRZ;(b^Z4F$+Z9V{ki7n^ZUi0kGS8%&zRQXJehvK z%vZa=?7K_)**>4yd!H8WpH2S#;q>e0PrJWNSEhdcwD*f?f7<)Sv<sL0a(z|zPrJX& znpS`QZ=e598`R!kE_-cFnT6L^r@g;S`?T)+dtJZ1zfAjIJ^wrH{bkyp>iOS3ADgzP z-k<jQ*sMSG^QXPPOdC``f7<)Yv_I|rW!i<yel2{yYVR+zrd97>?dRjO{<Qa(%U)Yk zX5sbK-d|>oTlf9FuHW8YrVCJierWG6)BaS?|MvbeZBM;F?fqrepZfXJ-e0B-s-HjY z{bkyp_Wm;M!eze}K3}!>ms!)Q_peR9zbx#3`}y^(|Mm0j@Z!(E_<f1X?)1Ggi~HZs z&uQn{`MJUU^Y~}X|9siwpRuXmkE%ZZob%w~&#$fe=lgd0@82%Iez)d)sP=!8&*zKl zZ$F=%UU}>8e_g+QzA^28{r<Z(pKnzA|M*uF=jW>Do9nBpe+553{e3C*zh7l@=jY|6 zzplSuSN-eK_q<x~|7peZt$L={<T79Mck1sCn{T!M-S3^B58Z$7Py4az`LM7*gO5f3 ze{QC)o@uUSz830tesojotDgG)Y1i*`ovQn1lh1F~x8DDD{qD2>?fRV^BlZ2$uHSv` zpLYGu_D}uu$>WRr%SP{yx0z+R<bOUl=v;VoyZ=tw(yrf2_Qs{Z^L*0oznAXHCEt5~ zSoif?-JjhPitE>UT~gt`zf*tp{h~cT&l*_m|0aLFW4+dOeXU#H{;Bupiv9e&us`Fw z&adAq=)b>df7bU;dw!lCK<hdm7VghZyMCwruihW8;QxMZyMCv;qyD8oJN^2tpU;~+ zAM~fLzcc>*xM!v<u;=}H@a}kj-`@ZJT07s;0*1MGf41k7X{*}#w$c65&bMjjs^@3N z@9!PnpZd8Tr{6F0<@xrr$$8KD{Et80-oGZjso#Iw`8M4;?R-lYP?)aA`u=I>+q6~d zKHsYP{}8{w+W!67Vgv6v|F`+)x9(r{>uYoGU-a9*pH*y+J%;{N-;dhAZ#e5!_54}) z^V<&j_ra^z?{(wf2akW>(EW7J23+us{aO3>xjOCNH=K2Fr$4{7^Lg(Vg8kpl=Y995 zozMI3PxbSGpSfWE`M?$Qd_FAN_PXnp{cF$9^L{vgs`vLT`uS-)|I7Wy(*K=${(Ii5 z?w<>foS#1z9(l%e&gN_Wi;#cyeB0*F&+Yu#_X=Cz>i%ix&#Zy#e*W31=a2nUt^b_( z_d(+PabE3vS6(tof2W>5=3BqMw&v#}?fvwUJ#*>r7WaQ={CuH$eYMXIXUo0r^LeM9 zKhDqU^Z#{UQ@o%0^YWLzhW7P6{r36c-n+E;{Mp{;zxsFj{bi?~pZZ^Yez=0a-!1IV z7X5s-+W#%mU)S}eKkL$W{@44nH9ucom%jeg^>@beVfFcEhy4C<_4%s(e%<WBqP{=3 z_w&Q$bv{&|Z#z#Z{`~u@&$kE4`LI);f9#)X{euthh(8}uJ>RzZ=jZxgt-t+zb9O$r zpKtE{{n!4f-@mrz`LLb;`|f}B{M_cBA1=KAUcujg+s`-mzVET^{LzWMqyALiAGhfD zZ+GhXqd(R9+s`*=8>@bQ-<tQ+b?dL|^D+0Yb?Mum_5N(l^Hp{Kx95l1{;$3tZS(g# z`?J1(+VwkK;GKT`*4KA)=fmRt(>_0+?w@r(UscbaEBNQ<)84Q0^{qF4?W6a9<Y{-E z$9y&L^wHdY+zh|^xc{2ly<hIl`SIMZ_vGFOKQR6J($wx9_ua4D^<HoJqgQ_YlRx*v zbH5os`L^Gi+nqU%el+akMxD;6_tbAZZxTPaYv-PKzxy4#$DaI{M?UV1Cv|Uk-0hFM z?X6C@+5DS`?_4Xs+4XY|>g;;P;k%By`k{xNzpK+Ze8PWUj9q(TPrs(z@w4wbox22g z-HCm2aL=D|_t<^-*#{l`tX;bgoB8)+?5_f+8fV4#_X(V8oD<*AbRRg=xW!bXJK=vb z#$GwqzyAxbboL<+*nQed4m$VXgZ}ZVyAQkD)$TW;-xofwnoj7X-G~43K_~6L?s*5F zw7dI~E1k6a*mDm#dH3-zyz<?4pLq76C-1&+*TGLZ=&HL<yxZ>M@3#BciO<A$5_8g2 zY!cp`{CC}HuF2OYr~iA%xd%_P-h214FFEL-3nn@5eYKlR=sSncY;o>3t@)n2yZ`N~ zyAQwH?!!*G+UYZ#`aL@Q{$Pszmt5)GLtc30vk!g1?tA_6LFXNO&^IS~_nPUQyQJPs zXCn2)=?^3Bf9^pqJow(bk3aiL2i<?7bdTu-reDWB?U`qub;ctnc-B+r_*maP^)XL8 z<G8aP^Nh1P$36Otv(D%o_sFL`t#jOred?3v%*>d6JEf0%>XVOq;*%eB#uLM7509J$ z9rviGops{GV~=sW&T)@=@|kBo=1G%0PkQoMk2&t14|vF}o_5w5k9tDrJm#^F_{pc9 zapq&@1=s(7a3>mbDVHg8(4}~Lbh`YzF7>ZXogXnrhkrMu?B6>D-;W33*&d#7j|l#& z@fRN3zds-R=t`4sCSUgOZ%n?Q)^m9LfQbHI27lU>r{0~;Y!6THUnc+Un*8g;;|Wf` z4vYNXo_s&${X+!Z>0o>vyysst#?0~HOU>8F)hF|u_F)*ri81e^gCB>DKQ8!g%ol%h z@co!C{-MDSW4`z^gCECy@dNttffN2$>0f1DDE^J~uUhhdN<a2F|BurDp3?sd^mmv1 zH|bxa<gYPVhiTu&(}QaAMgNAucaJFf+Xvr2vgGd_{4fq!I**v~hjjG0KM(6XJ@`TN zAOE7@$HCt+{9jEc)&>9O;H}qJ!~Z?_Sg+%Q|5)(W5&uuYkNHRbgC;oLpWRrm<AeYH z;QLpf3)8tx@WbHGkGOjU-@EqQAODEp$I}aT@`XPu_`%Ie{+!^ux1ICyzB>4R@S}-6 z{dyDsJIw9=96Em){2=k44SpQFKL0136Xyc>t54Qr+Mj;nZy5YA@h1d74*o}@o>PMF z{m`5+uZIRdNc^LN9|hkJowI`P-f>R6I{JS$|GUq5{=drq<T>Aq>+E-D{N%d$-Z`(% zcZ7fc)H&acLjQEeN3zM#b?3vKkA#kOzcBbOh0fr4bD|&ocf-GPojJk(+LL`bJ3o{E z&1U?eol)|?XZZI9bDjPiIu8wgnE0OxzVrOj|L2152j2~y7Y9E`{A=h3AD2Pr!r<SO z_&*PR6#QwS|Eb`+KR+i9-!;cC2j4q;Zb$n&yC&!Fv_Av<WWP?ojtYMC!ny7Gy>0NF z7nl4!g73X#&i5kk>A?@qoAcc{be<UeFnIHQcJLPle|Y%+Qt+ds^XlNo$^XLOznb__ z@SR^S>-li--Nb(`_+IeNhyR-KSLv9KI<GqU2P~)eg+Xj&eZJ|8pDe<EFZ13t{71?E z;o;v+{$~c?OZ;<!?<fA(f*%C$`ueTlhlzhz@b3sdZo{3w41N^+onu`-6MW}obK(QR ze?9mQ2QTj-6T#_z>%4sK_~^;~WBPTS;GgnqbDRHh!JiYndhQbZ`H8=8@WZ6@u;AYj zy#4m%;Qu1=&kg>=N$0%aznb`A@ZDF;>;G`f>knr9Rrb6OP0ZQXduRNlN!Od(-8po| zq4U*O&Ix_^X83oL|8*uu=d_=PzpC^<CivqMe`4_W3SK=Y2j36g`u<q(!{Dv&nZXZU zJ<n?$pBwyFUpwbr7cULI^Xp}uubc5#>6|#HJL>uU@b4!7{}X&K_<qD)G~*BL^rAn< z2LI*Y2Z`@Yo)@Rr=_vSK_#YX3=lXL3e@yVb;QQf!$KZ#Fe*m4M=8o!lG@am|5jxKd zew6t0_{U4OyuUHy59th}5BfHhJGe8MbozR0_>aQ>mNEX`;5)-Pf&WzSy~KYh_(AZ8 zNB_Pt<0tPCQRh?Ua-Bma&jr&ycfWs5;13UenE0dk-=OqAhJWI3!~f{g|IYjqe^371 z(*HsH6aR4jH!S@h%Rli?oAHx%dFR|;f6k_JqdEWEbLjj^@Z-e4mi~=P|KAP1f0L4b z2mPCt{Cnsp{-ZPgkk06%bANSyF8qhblsaDxzW)Oy|Lx$rvBAyjs*?kD_I{N3>jXc% zS*dfA89#Z?{bE_qZNtBR^Eq$-+?9Uf@5BEVrT;_tCw}@KGOe?J%hLY|{1g9l{<kXq zpU*$>=kh<U^#3*fiT@4$w=VsEZ^j?e`RbMC4^|U%_B9IrTZ#Wz=!`?h`TCjQJ%8)x zKL<ZNzRY_u|J%%YI^PYxA3U9_PTs3$>z?@Uo$-fs4m)IC|6y~v&avU&|G`rK2ZJ9b z{?7Che@gJ)@6>tPjGx>eQ{G30zxTd-MLo|8estS8fqxbK+m-y=gC8XRW5JIT|CQi- zCzLu@-#zc!F!9F*-?@G1e{%5s#P@?ACH~pLckfW@ToAnXS@ZqF;Jwe{KN@^58jSzf z;JvrvuX>I7ygENr<~=6(e&SCG-uo$?p9tRjDgIf(5AIm%zasc?;{PD{-knPS4+lR? z{Fj37!~>DMhaDd0M&fT0{3!9g;JbGz^ZrEegTy~O_;KQ28GLW{VREOVp0@`-O#H`# z@7%S_`?cWviQj$A`MgGnzeVufUa51h;0K9+Oz`8x|9tShyOlb>9{e!ze;j=0q|*Oy zgYPH)8^Mnff9)gY^XlHc)VXc&gT$W}{5bJv2H!im)Om66!^Hnq@SS^<{(ljCKk=Up zew6s{1m8WS)VaZt^LY&tf0y9LiGNt|y?d5A&kBB+_*VvRquFoo489)({%?XGCH_By z@7}x2d+lpQ{fWO_@Z-ckDEQueN}Z<!KTQ02!FTRk`oAgoe&XLB{3!8X2)=v2Qs>H( z&$*`eyFub_68t#vCk5ZTf2q?Cewg^@1>bo<>Hpf``-%VK;75u7bnx9%OPy~9KS=y_ zC!e>@?&FESeek{0N}bb#A13~(!TXE5?UVC^??15Ad2{fi#D5_8?t@DIe+hn&_`|Lf z^(X$A;Cl})bxsa`nD|Eq-#NYX9|Ye|{A+?ACH`H(cOO#fd@}e!;x7(<ocL>AcRsJ) zkCZyc1wTyueS_~jwDf;$@cqR9!i=AMZXeG}-K)*xULO9V<o}l7yFXg$zd!gv@Pqkd zU+1FWJ3lt}$A6LkkC!@En!I1m_F>|05Pa`prT-m*A13~R!FL{B=IsYR_=%E#3jcno ze@^iI#J?{1QR3efeD{n}=i|W-g4c)71>bqp+#mmM{2yKFTy65X!>m7vzsZb0q|=KJ zfUV>0!oT;JQs@4`4}+KYVZnEQs`NiA_(9@d68t!LI<F4C|F}};4}u>h{)54HA3yh} z^XcG+PbhUR4!-lmlK-Bg=KbjhPv`rBAD>zJ-)_cFelBy=e8cM7J;J~Dq|*N<f*%G? z|IFaKPbvL>A^1V!UmN^5csjoqeE+GX&U=C%CH^zPcb_)*r}O3Dhi8>KhkW0>Kb@Z` z`5Oe^51!7gf*(J<^uNc9pZpx*n6hsV3IE>Dmi}i3KMbD!bAs<av-E#i=nrpG>c2kx z2g(24!H<Kd|AFB9&nopl7yKxA{$CHi_ngxIu<xJuZJ7A)55Du<xj&s-1@Grp?t>=> zKYm{6|KQ;J&oA>nE_grpq4V6}{oF_1^Je_ybDsDm6#MyA;XgdP)c^h9J1;2f`Lo~$ zzfk&rGWc=gzZ87$g{987f*<{2sdMBF=KbuRQ~KX1_~DC6{}Y4vb0~edfAIYmmpTs* ze*8<N&RN0t&Mp1V4u15K(*J_syXTesn}Z(&um68C<0qeM-Lu@c9}54@`K8YP4Za^d zor{AX|4Qk9)uZQq>%Fw(j}CqqJe^wy-+fu>e@gI!;Q2o!_|C7E{!a+LpZG!Wqu}YB zAAIi>rOs~!KMbD#9|qrjW$FKc;0KBST=3)I>3lu-{;Nx!!@BdnjS_!!@ZHzU{plPR z{P4AN-hMlI#vjt@Jh)unhlYRW*GvDW1m6#y{vi1Au=IaL@V(cS{Dr{}gQxSS!FT^h z>Hmq~2Z{gJ;K#w!`F8OA*Oxlix?%J!@wW`V`-ZtcojV0T{H;>wLBV%^yW}4qd_Q<P z&kTP2#?t@%;CsJQ^1mJYFnBs|55D`R(*Hv<e)8P=6T4;u&dJY){~-B)BlvOf^bfny zyg&Unm-<HsKT7-^g73a%?oa2G;D;BMIu8%N^FK@eXM*nsPv-@}kAJ`Pf7OhiJRini zsAayt7yiAsmj3Svei%Icj|bm<Tj~GB;0K96_{Q`8jDx3hMDYE$mpV5Kew6sT2j6|i z+@H>ag7@<m*Xa|2@4Tz@|GD4??=JJcH287ie>eEvAC)@q3V!s*rOro#@BT^2e=+z$ z@aq3&@SRcVf5c5<Uj@(qhQW{jtn@!I_}-tF{As}tgQxR|;JbfO`aeDRLE?Wo_;K)b zUK4!(y`|0{20sd(|6c^(dtd4Q>EMUK^Z%FNyYDak54!2RKZD@;A3ozJ&+})^uWLVG zzAgUQbG|#5>pUd*LGY&q|Fgl5gO9R07X&|gPUs&r4|q5Jd1c<u;D52q+c{=h|KvF# zczJIWeD9pOzq}_0-+fV;_b2hcRPryvza;p>=5@Xa|MEG1ubA(Lf*%Ag?^lEGPk$kE z`W5p%;s@sS_g_)!+%EW0@N|A8_~8Ym&NJ|@D*0F8UlV-P|0np@mwCs*ciu4P<vr-w z=yUMuzX|@gOPy1K@4d0qd2I0A-<k7tUW|X!obSz=)akrA_<r#GKZ<{Isq-KB3xmJX zT<Cf?i$441?iju^{%xiIBk=E>^YK{O`T5{G?+QM`ULXAM-KEa^@Y7$coqW;xV(`6D zsk8g$(dR!ab#8-y&z$eg)F!_=AAI+{;UD|znfUjW{A=*<FZD<G4+S6aIs9Lh{#U-m zyw2{&=Dc~`Ecg*V!tNJ*|F27(C*wa=>bx}g&PBmT*xQ01{%xuAH~7B~{;+w2zJve# zobN{8ZhXsm{iEQW8}|yn`-Qpx`@;Xs;5+{u`qAf?;=efO2jTzr;0M9?g8y{zqu`yZ zyKWWr{9CDi4F2DPkNtcf{5OIRcoKg43)s`I@P8@(JEi|0;=fz^UxYt+K2huYo#6Xd z3O>SablklD&XuDvk@pn*RZE@62S3Dz&UwN2u3qZ=KK}4IKbTE!^5;i_9|hkF{#(I! zt{FP9A8vT-sPlTk2b_XGDu}56@%W>IS0}z(`u{%uCZ+!;@HZ{}zlp!uoY&_Y96zsf zh>yG{1>d_xsq>TgTbDX74t|Ueoi_(RxJ{|^QTz#WUO)dM_)+lA;p^Wf_U#=)C*X(i zKUC_Ufxk=eQO^tTKV16%7XG9;e}1g*`-AV_J^0Z1a`2sdlsbq1V66MSOP$*WKg5U5 zj|AVlZ>jT4{Hb&PoEW|!`0)cv{#`Tv&`#$A^TO{H^}jFpe&Rn7{3!AN7<~7GrOwxb zA0)nW+v$8KzfYd{-NE-hRO)<R@WaI4JowIEmHsCN-%tE0!H*Judhp#3mpYFOevtT| z4t|{YLGZnglsdm0{4nva4Zicy(*O5@?<f9`g7^Df*6aTS-~Cvrb5Zbv#Q$^f<HY}0 z@V$?hI)~nFzFxz`Uwg(+J|8~4+*c<A-+gGwKP33ke=GU3g6}`9<X<-9C;RiS%X(fH zd_VDT4t|vQcL(47M5*(>;0KBS>)^+U|A*jvpDcC068tdn-wM9-H>LkoPMG(zpZIGB zKT7<KgYSN-)Hy!*LE?Wn_;KRz7kuxcQs>8lA13~>!FT?)^nZHr{lvc@_)+3t8hrQD zrOx#CqNeA-An|Vwew_F}3cmMurOx|<A13~9X8a+OKhRh1tN#doct**8@9n4cOg=w( zbjjZ?`0-Dc{OL1(vOhml)^kSi{lq^h_)+4Y6@2&aOPzCqA0+<e!H*OF8^QO+rOsP| zA13~fg718`^#9+%_Y?n#;75u7T=3n0D0RLX{2=k)34WaTtKVV1A9|lFb*>-$F!9F* z-}%SV|MtQ66Mu5>qr^Wb`0oELb^5^%691&&$BBP-@V$R3bzU6&F!8UL@ssoOapk`H z!{ED5Ecw3<e)Oa{-#vJq=i<=se7?-P>%=%`62Ck6QR0sZzWaqz=h)x}i9aFuapF%3 zzW2|i&Z)r<6aTQ_XMZqu65_u0xZwN$QtCWC_)+4|4!--v(*OM62Z?{pjGufy6MsR6 ze!e^S&d-#6z9@A3KC?PMAAIjiW!{T}A0~d+56#!5^X1Zickunh9~Jy4@y7<={nt|G zgy08>KPmWe;!h2}_mxuTVZjd*|G3~gUoHKg9(+IXXV3V_=kU)c`}w-yd(SHQ>F<e7 z?+c@(^TFV|Un}!o6#O9ZpAUYV_=|(@eZAD#b;o($Vd8fO-}$%F|ES>mi9a^@QQ}Vs zzI$=0b5ihw#Ge}cIPnh)zW48?&f{kM<a5#Imi_$2;0Mny`8R~lFzLKC_|AWn`lI0c ziT_~mqr_hneD^;~ozDk9Nc_dYj}yP^PV;r?{a2~8JNRMZj|#r?jne<v;QNU`A^1_^ zPYS;K%~I#o89({+ATKEUd1mmVUo81^LuZh5E(m^{_%{UK`+sHLw+25<{3!U&w@UvH z2H#KoMZu2}|M}p%-!6474t|jMU3Z?Z%Q*47gYSK()Hy2nVd9SszVqGE|AgTCi9ad$ zQQ}XX@ssoX#by7`48C(-$)6iK-N|V){c@gP5d0wVZwP*z__qe%+g0jJe_wohjtvw4 z!QeXwmHrn6-%tGKgC8aS;^4anmpZ%dGS53m{O;h#i9ag%Ui^6zeK<DwVd75+zH>;K z_oU$ai9dD5PtN~eDf@qB@V%Fn{JEhsN;($=-@S5~_YJ`h693lV$B7>W-#fI_`C#zF z#9tJA=djZM^TGEMe{t}m#P9my`MPwkQtIpuevtU1f*&XT*x-9tEp<)^ewg@^g6~|d z^gngRPwp4LR`&nQ;0LcP`Ex_3pL8w=ew6q(1mB(hg(R1{zTO)AAn~K%$BF-7@V)OT zbuJ2inE1~J-`QRIUmSct@w@IiUzbthcL(3SMyYdD@Pou38~ix&Cj{^JHeFvQ1wV}6 z=fs~n<0to**OdJ~Gx*VP&Yv?ctMf~t)466@=dT6dPyGJ~ew6sP1m8WP)OmOCgT()3 z@Z-dPEco7$rOw|6KTP}=gYR6c^#9M``-wle7weVyYXsl@-cskN89&+Qzftz>#Na!> z8GY`|zfPa=lg}lRPCxi@;-46NFa9DT>-dZrKRNe8-+H|~{D;YZ7<}hCW&OV!d_VDj z82l*le-?cAx~0wsf*&OQlfjP@{|~|Uu2<@OIrw4X|10>;^-KSQ?>1kre&TlrKT7=d zX8h#$8(&|p*9pP*f2&-t(?X|v)UM9-OaFg7_(9@-GWc=ge|pAG-p51VdYu>kz3<yq z=wA^0F!8?`eCPX1|F;C+PyD-rA0_@h!FO*^>U=o(LE`^5_;KR@Dfr&erOwxaA13}= z!FRf)|Dh+vIwt;z89&+QZ!FjAxZp>>Gv~Xr?sYo%p7E3SyQFh^@ZB4hc^?t{An}i% z@ssDh(D!qnUkv|o@_%XYy&IMKuL*vb_}>n`bK}zgt-<#b|0ltZ692!0@7|=;`FQYy z#Q%Np<HY|<@V%RsI{zO0F!7zc&)2JSOzD5M;QNWccJQOb-*CoH`uwJY<|`O*7yR@u zo|=4hXaDbXel&EtKTzg<RPckuKPmWe;-4A%owt;Ee>MDj$Cmo93x1gRHwE9hS?T}w z;QNXH^WaB`|6uUlo0mF&6Z|0Yp9_AR_<s$)cZ*Wz8^I3~f2EUS9dB9sUnBT_;;$e4 zDDgK9zI&@u=lB^v`JDWJmVLe-{;lQu{#57;lFn0uA1D4f!S{|U^PUs>-OzXazCQei z$^XLOJGU-%-W_~D@$U_Ol=zPX-#xz6`E>Au#D6~capJ!oeD5};&bNd2=NjCP4!cLJ z;}4epM+V<d{0)L1CH`i?cW+zj+%EV*;_o`+C+G9q%Juzm{M*a*eR}AOlg{&l@7=D< zdv5T<#Q$38_d?(L{z3S6PAGN$H28kv-yi%a@qZnB_x7dEIQT*0zZm>D@&6Hg?+&HT zu2bggHB9`~gZCE%THosg-#@X`xl!<=#NR6T?hlpzCk8)A{M~~eC;kC5e)4mxcb4n> zc>KG|_5Fp=>D{r+dw%f4#J?)|&YepCH-vsa^sVpz3jcoc|4{Iw#D6OI?ww2he++(* z_^$*%PW(56@7<-;Ipm(Pj)^}!_|6ZP{znDhPy8{#j}m{I;JbG%b?zMeAo2GMew_FR z1>ftHIuD=mllPZDF4y;&_&+Vz_hq3oOgg_FeCKYZ{_h0ePyE|Le-QfC_oLxIO8$Qr zeD|bM{|mtn68~?(j}!l$;Cpv3b*?hG&}N^fCH`8$cTO(-j}E?{_?rhmO8g1IckfZ^ z^nxEG{=UJF6aOQ@_f9Ew&Io>(_$SWz$$Q72mFs&B{(qJH>qDn=&r<)w;QNVxckrXc zzc={qy-J;r1V2dpr-L6S{`0~2?p^A9J@{ebza4z%KBfO*_nxnBKk-KfKT7-!g74n9 z)VW#kgT&u1_;KRzI^!q(e^1%xAIJaYobSc+?K48BcfT_4*})GJe_rsN`<MO~1m92m zZw5a~{9A(WKA_ZjSMY<xzbE){;y)aG@6=M~Z-XBu{-1*HoL2gOE%<)ozZLu_@rT}L zzP{ZDmO4kw_{sZz>hp2Iciva7%l$)VkaT`5_;KQYD)`=m%DiU<KTQ1dgZJmZCfjxP zbzboO2bVgp3VxLM-wwWedg=eR;0KBS^Wevc|En2)NT>7uvJYRzf1u>AcHeoQdk-n| zUMKir;%^*$=SNEaTL<4y{GEayCH|hlcOP2nJUIA4;vW(GIPp&izW1Z0&d&xvO#In1 ze$t;0m3<iEKV0&E5;~p#R_eb$_<rI)5&S6e{}6ol$4Z@l4StaLZw5b3{FUz)>-FQM z&Jn>66Muu?I}a=UZytO<@wcDxlm2|P?8AfcA20cz4xLfbc~0=%hnIO@6#O9ZFAsj4 z_}2yB`-xKL_ktfL{++>h9#Q(gC-{EiKN9>X@qZV5w_ob~^NgSL=M!Zgu6+OLx=i@L zDfyes_{rzPN$2?B$BDml@Vzt2y!Q%znE2C!?>w^f?+4#c{1by8CH@(~cOO;iydd~N z;?EC$ocLGI_(>lwD*NzG{HII)lcCdlbeZ>a!4DJvmEb#%DgFOn@cqOe`hfZMGD`fB z!FPYM)Hyo%LE>)_{5bJ<2)_4IrOw@hA140P89(XIXUaZ25kH>ue!u9&q0@P6ssF3N z_Y?mc!H*LE=HR=JD|Ox#{2=k~4St;Xj|Sg+e5v!9;D?F-m*6{3DE<E<_<rIKIyKfS z@w<cXKC#rfe(;0DA2Z_*>2yC=_Vez+_x`Em&j_7y(m6Bu-kD|IX9hn^{4WIGc~a^B zE5Y{@|C-=OiGO48-6xkiZwr2q_&*DNocIq0-+M}_^Qqv6iT}UBcYeC`|61_<#D9Cn zPu@5Gx$NilPn(~IgD;i*i8Frkd4AG4Ir#2V%e<!rKS=z;f*&XTvBCGAR_dG;{4nu@ z;5%oP{^tho&y9Mndqwc0<o}z&cYmhTxiI)a;{Pc4apK<>eDCR{&c|o`<mbF!Df{`g z;74CC`D;9IejN>y&h>-u{A{Uz)8PAwKR)<T;_noE_Zg+mDZvjC|G?nKiGNt|y=Rs> zKNb8i@lOrD^K+&DbAs<D{+!@PiU04xcb`@2yf*kj;@=qjIPrfl<0n7w`1i8^9|^wm zjgtRL==7dl=KW^y!^9u*p!qs>o>TfC9(+IXM+NWCBipyf1mAsbsdJm)2Z_IP@Z-ea zGx*-~N}UG<KTQ0?gYOJV|HlU3PyEw@A0_^|!FQiu>bxlULE>LF<0t3;x61zi&)|FC zE%}dx&N%6OCivdZmwCS!{4nwV6@2IH(*KYL&)2b^_#=WJCI0B(yDunpZW;U_@jn#& zIPs?h-}{A9=fS}b6W<TM^TN{q%o#s9=MOq~_I~U6<lOM@C;tnAA0_?`!FPYL)PHO6 zgT#-5_vhm6=MM(&&&A^}3VwJ_ssH)lJ1;8vi-Yece%I;q^%^C9ckta8mpVrUKS=zs zGk)@U(II8uP6>W^Sjj&objC^NsloStsm%Ml;D?DnH~7xErT+!N_Y?ny;75snYw+Ed zlsePD-*EQlaT5Q*;Kzx-DEQuarOxMrA140d;Qv2k=K^0>RqX%GONt^yK&XJS5g)-9 zX(<pC^&lcqKq8>#D$reMA=N$tZ6Q86s9->mD4<mkw~87?B`Rut;So_I_=r#HRj<eA zt&giwRH~@_*IM)Yovbx`R`|z{bnWl_X4cHwGbbk}CrNQts^8)Hm?Opa0PiS%0C+i> z#_12-y^i#t^!%R%-rYkuU&mgBIBgZ@eDJQ~uL5tqIo<bi@LKU}!Hc(~`gem@ihl&W zqxfgQ%d68kUjc6`{vGhH;y(@CeO~KJ&*xs~Ti2xVcYT4}ms;_?!Ha8C{XyWB;*SUK zD1H=p`PMYfao}ymPXX^L{$lXf+tN7af!B&}053MD`isH!@4I*dIDg*-AD7-1xcj<q zpY%L$0WbGU`F9bge0#d@Pr=)YZv*ctem8jQ9ci5ZfY*xe_CmRj#dWEEAMi@?gTOnA zKMuUSK8<q(cw6xncvtZg!CUW4<GcX8R(u6`aYL$K170b9QQ+?Tq5G%je+_u$|6rN> z;ODzfAWlcc`677vu5{l!!P|=81>RNsm*A~Bjq@k)TJd|qi+88`T}SXZsrcUD9mNj< zFW-~Kc|3Sq@uR@IiXRua`+SE3<GGy;ee1nx{B_{9;x7j;ZcO!;fme#Z1-zs94dCVb z(l{RiZ!7*O@UG&wfw$hD#`zX_t@wX~7avIVzX7il|4ZQR>$^jw-}rf_@4w_ec9i}A z@Nz1R{}}ML;!D80iXQ{c-*3ams}sQM52o=?1us67@-x9J#Ye$Aif;ffZ%X65I&gOm zk51?Adg$9q{{ir>;vWZZeK?K(1@Kz&8SvsGss4N5mE!*c-ckIw;N?ftIDZ9iD}En% zSMdkFNbY;<<}}Vj!E41!@M1dEKR$5xJf~mIbI~`$!&xx|KKnP}iv<@e!Hd5OpV(Ur zmw?y1?HoWq^zQ`kg7f!Cd=|Xz|InfPU|;=^dT{FRrhd;<zvqknIk@K`;EQ&Xjh_Hs zJWTWxf{P*Wnq0ojD^`II94LC$dkJ_2J|krpH-NWF(Yx^sAD?A>@FDjp-GAH#UOYzh zqk@aO!Q0?7;C*LEUDabn-w*x-@EV-w|7`HqQ&RmZ@HRN}c@22CmF9B;cy+9Bp6BNn z=Q+Z8o_B$lCqj?@`5XAaVmSbw=U!)`E^y{Q0A4&n^sM(}@D@1x;icf+Cy9Ot=QBb5 zVZy0@KlMve{g<g<DxCHH9K3o8;voKiz>8zj_y?XPbxl4^IO{zcyaUeuc_DcH4AHZH zHi8$&3FrNK3wQ-EihOPc?}E>Oe-pg(Y>C73{2k*zM>x-C(Q?VZJ_-9G&ZEJLlhb^T z1FudM&U`BHE;!Hg)r@ln_C@^bz-w?m{(KsI`p^diCC~G_j1SKK`6GDysiJ4SyH!$G z2b}dj8oX+WehB%rs0XM14C;?d^%qeO&U&u~@17+3i9$X;3f?{$9FISDfcN1KJhR?k zgSWuhKRc|Dx=Q~CG~EaL=Roi_IQwT1y!&6G=lwbjyn2!FnGmfg)`PcREW9853dRTL z`M)2$T%YQ{#Q5OM=cnMEjcGpH!CRYz^E~%CTk5S|Eu80h7<h3p^mzO^3B2#5T|?$P z&r$FeIP<?0yt`cVtoPmEWhI>ba4UG{Y~e#VpZ})*oK$}g^{Z0--sj*xo-3U74uH4T zBM#!91l}dzQ4FiW$1V^(>%A1b250}g2fTfu=-EHFGCnx(*N?$luN3_#^0^1R13m-3 z&q}GQ_J4TPeegU7z`Ni)&y&I1ZPD{QS5r?e4<E&4;H}HjeBJ}z0q1#sk#VjP{RHy- zF?f4YI3IuR0iQf`QBd+c_gW=&b->v_PXe#b7kxkCKO4LTXT7VyTN_0`1bv%&aO$t8 z{-RX>Y3jjQ@AtqvZP8C4{vW}sOTf`T4?I`untQEq*86Di@^!-5KgWU>6T;a)XMk7W z?4NP)&XuAcMLt)9xBMSYbssa}H-nc~3GWBLgYm%`|2K?(jp#?A-{Cx|t97k#>K_hX zza!NTf|u6`=XsvaI5!HPK>YRKU2yi#8^Pz!mnWn=&nd>gKsfv7E8v|=h4&-=&%uk! zpvV3C4|qKxd<gpeN2T84@>G8mc>RV{e;V~~6wZ3bz{_h92l3ws-XTXm9|RxXEPB@a z74SAV`{x(n75<Po`{zH556=5_z-p<he2>I;vhZ;fcnv-SemZ#jy`t|29|P}zGyav} z<p)L2_#XtX!Kwc$cyV*8{{?s(oacET<7^TA1oAoHCFsx32xtEs1wMS)1A~(1c`A4t zoc*&7ynKh~S?}fG6*%?p11~<B>O0^qa6bP01iU*f`XS_h5A`1tPW|35mAbnA56ij_ z>YoJOx<xq8=Q-fj7Z3;WSAiF|rtvQUpX><d`CJd)0cXE$0k3ZtJ^Sr@jQ<tkyuW_} zukH{&ihLfp26chYfIkMjbEoM0!H)$mzLCa16TJFP8h@Pe!I{rB;H|q-{mtMVaGvL# zjMEkU1oHU}c>CwV*>5|pmAWQB`k<iXc|IJx1J3?A8oatq^sM)E@EV-@G4R$8Q~evj z+u-b<4}h0H68#YJzm0lu>i>uOpQQSKP!G=YdFVQ+xBj*0c|HT+t>1v-@$Dq=*=@pk zKIefKzZK4Ydo6hP55n1RH!%MH3FrO&EO`AF;iIVc2jJ!1h!6f}@Zzt+dH%bvm%3Wu zjNcDl|09im9C-Op;fr>a4VE*`4!Z|1j(uMa-T~)%z7@Rd|FEz7;CX%wy!{~I?6+@% zPi_^?^W4Vx;Ow8B$E2?6529zi2Z7h%)ISBhRXjN4L;VZD+u-b<3&6{rL_ZX~isDM@ z!Kwcs^$$q(w^I+!^YMST$-hoj?<sno&%NNSK5+Ege&>sRb}!*PpQYf%-on{$&js)9 zE1dnd8oafiaQ4Hc;PrvRM^SGLUOpW0!9NdPJVH3n^Df2*XZ*Vv|By8P9v4Vm<)ehN z-yR3vdc1J<+wtHX@EI`|E5Pfc1xz8&SAthhM*MGzVKeyHu6qQ)^ZW$kfU|$T4c<CH z^sM)H;B9c~AFu&+9hT}32Cu-`KTicOmWqA|`HxT!PW?vek4W`bQ4h|3y9vDgG|^8W z{#U`vr-P&4egQsxtZ<&szrnlU?6-$)lzKbIi=O?q47_}naQ4G6c>6@*qsZr_;KfP8 zXTV<%-UaUme-GoIEPD3Ot>CTGg|mNt1l|GX`TULX&lEk+r*D(g)jkXPpx>SVUab*6 zg?vr`FV`Xt&hs4b>Gi^Sp05V)g0p|#0p5PC=vnV4!8_pWhwp$_mx+D|`TT);aMru% zLaD2J74n4s5b*XSIP!lwc;D5+ng5HxTj1=63&G2`iJtxNX2u6+KYRqdd%fsKk<Scx z^-ke4;J*TI-5{Ljb06b_GyVY=q2BkV@s9+rZbbZ@WP?+|TT{ZB|61@Goc(q=c;{x( zk0Z|;8D|>t(LWvV@>bzf(Ek{`3(oxSVVv7V&-2;KZR9_Xbik>95_ow>s(&_k4UV@x z6|2Bo-w-`{8@&5XaP-6V;A6AG7bE{qgV*5f=kI~HekFR|uRnsf!P(Cbe3{f${;%kV z5dYEOZE*JUvEcO_@`U~j@YbKfk^eaO?A^kd|JC5dUxl-uZwBw)BYXt$?_m7x!g>C` z0k8ipocC*om!q!#AU@(e9K5(sIL~Jgyamqqr-Ro!?-?R6{(8pWML6?+1LN-|ocX^W zyaH!G-v-|96TQ1l;p3-_^AN;GKmP-~`v~Dv(C_mKskc5zIP)I>FCHzN`JV{h2B-c! z@b2SM{cFIh#|vlQ-oW@zO!;TP>nDMuAASHnutYffVUF>^+0VPbQtB#>7d`LSW5HYC z?C0aayC;Z#2<LMa^+Uqh&o2kBo+o?)`fI_9Q^Aq{$G|5~7tZ{@0p0;;KWqc9M?}wl z*y&ZM>%WBa{0{=J&Jxc1^<?la_zd!V0eEM*==;IXXZ$LSe<kCuO5;y4J~;Ego$*(T zp85X_ynKmp_Vc~qt@DMCBcFX=E%kQ5`FwIIczv<xr=UL>ylNx9yi8N925(<3d;<E{ zftObZACfPtikkXsg>Q!bbJV{Tadr^HUErO!rTj18)!V_*4|`lJb<JHTd@<r53SM3h z{oZ0Y9=vn2aNe&9yqHeozY@IuxbPvwe;f6m5YB%71bF#*#DV@>;2m=0|2y#EFN&V| z@6wjK+TiSmgTbpWi+%+0j{)z1v!6%6%dd-m6#5O|HTVqpRp9MAM9=g25O@ci@xKaQ z&ZhBy4qk&Z|9><7_tX3rUn2E(!P(Etz>A-Ve!P&6Q^4Ec?B|z)SHBbe6!e#Ym%kUz z{(KMP{9X8F=)XYyJ*oaj)bH3Al+^!~`kjRH@wx9cn7f@*{&?`}0f>XwAD#tX>>+$H z@~OZ}@XgS_g7F`k>aPXwf>S>Y-hOzhzXQAmr~cRAtw*Q&`@k#ksTGpw{;!pK%h!vZ z{j&_b0;m2I>VKQ+S5pr@h;w)yc&+#i;9YR${~7T1pVR!m$2j2B{}H_Pk5s?tby8Oa zPW>U^#SRY%8S;KT6}$xJe2q}Qqv**m0PiY(C3t72RR00+dS~IB$J-eHfx<^|Za)EU zgLB_|z^ey|z90IBTq^a};6va~0G|VAz0U$Kcb7Okp9;LQw{YrT2Hpjy{%Y{{0jd7O z;59h)Uj=U+lInj3UV&5p5AfpgseZ4^(6`|1&nJL)-za*X&+*h>DV+M{)c-Nnk5m6A z;q2$PfLDs&1YUzP|F3|z?vXe=&;MZ@aO$^%7x$(5hrAy3f>Zx^@XiDFO8WVk;9YR` z&so&(DthvZ!0SaRe=~S{x0HVfyn3K;_VewGzo+m~^x;pzTYYJqd%(+w2<QFko51{n z4<XLuz^B1^p2vZA!FfJsg0~+g@u|NMyauO!61;VAs{bH(1y22!!HYvv{ZGJ4aO(dK z-Wf>sdtNT}cEQ=7hl1B{5q&?-;ThC}Q-22ae@*q9s0U|1Uj<(NP4whb;1xLYzYV<j zcbfl?83&yDzkzplmM3&P|2?iiz2MaMgSU52^~ZwO;4?Uf7gPUW(UWfkul7j!o4{Lp zru+loWuI{N^OqR^p~6S8?|*|A`=)XJ3f=|h{d({lFu(gDKH@wUd<>lD(*m!-c|I=! zZyh9YsNVoyfwLd31TQZUJ@a`#_27)(0WU63<Nt_pz^T6*yfc~VcYh=9FF5s&0dH?k z^-l+{!I}Smfmi=b^S^+4aO&Sk{Tcg&6K1{dqaK`n{zdSv;#<MXGbIl5{|k6$rEs4A zgRVrq;M6}FyuBvXKMlMFr+x&ywK3J74_<*&{|4~lm8t$l@Dh9m{dOz$uM$1^UEp2C z{|w%Fb*g{ho21_QV&R;ZM}ZfY3LnM3PX%v-bKe(&SC@&tANn!I2Ok2z0(=gf=l@>t z^7Rsj=ko>d&YOf&|3mODIQwS~yq-(*+3hOaUvS1h1iZaHjeiVy4Nm<Fz+1&bLq*JI zJ$MC9{pH}rqE!DL@DiN)e;&NMTJ${6A5i}i;ne?$`a4toqDiT@{D$yBoc|-iE5)Az zUV}6L=YzMtFL7A!I>rH~egeGsNveN0cnMDZ=fFF^O!eOf?}AhRNAULVQ~j=QMn8kI zKMw|P|3UQRPX@34FXg9$xBi&&wczESgmYeA&-i~8K8ka$!Hd78aXt&)1?T<!9^?NV z@e$|$z{kLO{ttKy>ILWdl;ExZNF3^q2Cu-`Kc|70)xKdz=Cg)+aK^t3yciWd<G+h> zz^VTXcxQd8|1NkJocce2w=YWdyIhTW!I}R-;MI@P{0FHAr~XvxpR!+4?@Or%AH?}z z3f@)x2JrG2iNpN2fOn1)&hz;W<A78Dd+_#&seb2cP%k+3j{t9-mg<iJufVB)9(eKM zRR0q25}b4KI_l35J^4GqyNZ7rymMx%p9Qba63%(~9pkSQK8kbR=~}6`4bFWZ4qmMi zeLwU^g4f_f;KSf^;5`4;;N`gzhv)NJ@XlJ{)L#$Y1!w<!3cUVyn$NeX2WR}>g17HV z<L~%Z++T3&4+L-hEY%+YUV&483V89qseTl^1ZV!Q0q+h;r998;sDHL_>OV>Shf@8w zsJ}`0AkKdqc%}FbZ$rJ{%>MxJ)+Z#6{I@8Ufmh(vKNr0CT&h10yacEI67bG#ss0_{ zU2y7e0dL=t>c0tIgR?*Xm-;(JPhM=6daG}we1GuPH&cE%c=;{ioR^cq+usvDigP{} zy!gIw?%M|Mg7-uJcJT5Cq8|eP1o#-ZSlypj2Cu<+KEDBP{Zy3H-v?fSvwt4;b~%Ug z=?@D#GM}a36*%Lc1YVpVdd6P`UV>A9F?i>>seUtf7o7T!gSTIh>hA=v!I}TB!K*Ez zXa4`89-R8c@4$WEfB&T3CEzvqAkP0p@UG%3!OH_A4)cFCc;}JAc|LCg?}AhRG4S@| zQvDs^H8}OZ0&gu%_5TL1z^UKwI;ppKa;hHyFTrO}?{lbsis;GD0q-jQD)7!Rss63t z^;3m&UZxrUIN_t%_v_$oaPIp{@ambO?}z?hj1N8pzVG!??;JSK|1j|Kc!|UFc{X_G zB;nMb4c-N3|GW~s{%D%dwbX+%{>|X+Po?o^7zdpCUx2r6P4)MJSK!n?^qsiBUrqH- z0x!Xt{}6chu?K_`<9V*2zF#=?ub}?&RDTWiR|x04d=$J={A=JfIP?EGc<U_^hv)xK z#sQ~(pBqr`J5v1<!Ao%JPXO<{JJna<U2y7O4&MG?s=pe%24{bMg!&JOp8Tue)lDhy zg10`L@_&Gr9}&)c_I{Vt+qp$J&*ur?U2xv7XMxxI9+=$U<<x^S{>#AIj}SfMzlCwY zssAu|>oKYRE8rD4^*;kIo|NjhgO}jUf3I5V?Ov7U|9J3nQaJU;Q~&2we-`zB5zhV` z2d@-=Gk6Wo{BHtp{Zr!bd~RnPaO(dDyx8&Kh5w-b9`F*J`iHz5_jk8c|2Xh2IO}~T zc>Pk*bAHdH9-Mu65#z5BJ^3W#tWEicz}xFm{$=oLy>RCLQ}E&<;jH)X;3YWo?|TpK z?^e+>|3kscAEoh+1MhUx_-8N<IP<v>yuB^eUj<%+Q~yEm)?BK;4ZH$p{yzaPPkltV zzs&z{)PqyM=X<5z@|INJ4_<+@Kc4|!EB<2eE;#ew1m6C<#OL|HiE+TGp8{{)p6b5@ zUV$_JAA^^VIVh?3uhfH6zsHTJcOun47Q6yyA07+dx?J?+FJhc4Qoa$qctgss1n+|L z{Z}6ZAA6JNc|Ny;*WlE5!3W-)>hA@w!1;c#{oW__7Vi^1`(Y_~3!M7rf_Jy1`qkj& zXM{7KOTjyz6FwB~LQ&Mze;#}nF?=4p{Uza}(BB1K+$Nmod^dO(ocZtZe%!||i=O#E z4!rY2;nW`wUfd;|&-Ye<S3eQXd|nCO1*d*9c<UFb{uAIGaGuY%z=wY=dfwk{;B9c~ zclv<T)weCxKODRT&Uy#IyZ4Ho^_~h|{!2LZYr#8vmf_^7e?557C!G1b2fW@(_)zdF ziqBKOH#qL^UEtMX;XKbjgLlDa5NG!(skiem(f5Nt2E5o`IP*UiynbS;e=&F$ocHTO z@Ydm?A4U90@D4cjH-VQ&r~0pe*Wf&#F8IJPqUZhnCwK);{X;(}_0Byl)gK04K3zEL zeGYi%RN?)Fe5?d7PD}L{gV*P#`nQ93!I{r3;O*6-ACmCJx2Pw_{rxR?YrW`4q2K94 zxR2m7;Ew>W$3))`J_z0g=lict18-j-`a$T|GCnx(*93SuE_&wk9`G8R`Y(VNuTJ%M zfw#eVK7Rr4yF~Q7zq{Wg^|rvNe=PXyYg7HP;Kl2N^ZuRzUcXH^&*wt$E;#jX25;Y# z>Td$?fHR-3f>$3E{ZJtvUFykkfA0k^ZxKDu^PwM>dTa0*#2El@e^T_!|2g0taOSfL zyxJmq=5sOi<jCh8;N`7pKDU6^;Jm-z1}|<;^}hvggEOC<KO%MYeNFVdzmEWKfm44p z`0UqH{b}IE9m09P)`8bQ70&aS0PliR|6cI+pHux8z&qf~XDfL1SJCr4|3W=E&hx<^ zm3qs6ihi_^kH>=7;4|RQ0B_$bdggxycn6&MTm)YINA%3+&D4YQ{h}WR@9uJN*l`^D zewA?^Ae`^l{W*AhPvH~L-wR&$f$u1WeQ%a}r}q-h`#S*M1!w*zf{#5k)vp4t!Fj*h z;H^VN&+~Z)cpIGhPlA_EP4(XfufUnl@4$<e=y{$yPfJ}DIqvU4;GN?|KZ^4?8oc!^ z;WOZ;gO?|y`K)7naL(7|jDJ!Z|GkWVvT)wtTN&qc;k>_F!MotRzjuQdXNi6Sc|Q1K zQg2O;``ZsbutM~_zs~@#z<Hi$g3q0k>MsH>S7P72W#hMicP<j%k9<B1UW}*uuYuQZ zNcBGl?}9U*e}T8(B>Ex5-}mEEZx@{UCE)Ehr}`7A2dDmA@Ud$|&+}=6*Wi4=_jQcF zS@a{w=aY;NPW>!+=lWFtJMi+I!l~co6H-_4?o@vecm>XWdop<E{h}X5KBt4XJ|LX^ zww`f5DxCdxId~VG{dOaGu|@Rkw_Cw$a`fAezz04jdY<Rq;1xK}e~(+F-nlQN`hM{8 zR_wdC6m}eV=R3mLZ)buR-%a)7;PtOl{ae7h;LPVE;O%XqXTN=odT{E0LH+Mj{lBOO zr+&XrO1)!$6g|&p33v_8emDud{TI=*-_8Z^f>VD9c<1k_{yOmT9^uq~3cR>C)z5-g z;Ow8@gSU5lWVj*hpIttMzTHVU^(A=uz*PTa@EV-`_I&Wp-lAu}tp~660pC&j;R^7% zeTDNpZv-#*OZ8s_pMF@X{}Ff>oS%>W3f_LA=-F?3d|K-5fKz`ccy(;5KMuSGXFr?; z-g>6!*>B_2gHwMs^(UnIk5CUz{S5fPb41Vc`2~0d&VKke<3CsQ?6>{4NWC>U^-ICq zr>6Roz`Nkop9kJ~L8`w5ynLZ>>aPbcUYzPb1zv&k@$fs0Ux|JckB7epZ><o{ucsdH z8L6v#cFIfe_Db*_CD4<>`_2=-81YX7Z-KKP)-wLfMbG}Z47_|r8ovhbyh=Fx;WN~~ zS~%zBd*H3tBM$QU19+EwM=?C$vr_Na6{2VU2Z7h%JpZG?+iw#62;!d#-Ua9RuK{me zBYK|yrQjX#8N_)Pczvztc|KbhADr>O%lOx&@qf?w;LLxQ&!KPMmFE8l@S+yZ$E!i` z@&m%hk>~Rm2fX+5S>WwYihc_E*MYY_C7knk19*3f@FD0wP5o!UA0&qFfY-MR-wgfl zsQ(J$?;wVqKaYO?YRVrD-kt&9QS?WF_uVO+{V)vP0%t$Jgz^7J^t@lM1uuV=#(yVx z=jXy%@29B$g>d%sEO_hph=Y263*IH)Q4BkM0sZ_((KG)8!E12#!;#?azleSW@lOHo zg0tUNgSWPeeiZuGfOo)Wz^@0d{~>yw&nFolobkWS`1hspw=q6A^WX7S^z%-KgdLgx z0pP{X!r9M9fR_&vK8`$}%Q)cd=TY$X!$dy?{UzY7{nPl@fma8o@oxd|g7fDSzr{FD z6#Ztz|6l6C`S`rU7p30zVWKDBAG}<Ge7-4xjsze0kMPBa|2*&toc+8Oyx8keLCO0y z0p0@V{N4!O-AD98i2p_EA1a*sA5*_ys{cFni-oiQ_v%Q!)xn5^_)i2c9+}2}Hu&VD zgtOk2;2m)GPaC}M7yU>fAJ>5whYDwZej2=blJHUJzYE?4p8@|Pc;_(D_k-{DC8?_z z5YF>?H2CCF;mp4U-T`Mnp8?)ITJ+<He-U`~WZ~@RtHE1C!l$7BD0uN~;rxA8cYycp z`{<x#KEGxhaQ4p*w@F>yLq*Se4+JkCC!F;Tf_I)Ed<glRM*S00{d(#TOZ8V!KOmg_ z^M3Hw(TIciUjpxv?<j_!f{z^|de*xgyas3g?DJ*JV@vcSh<_M(7o7cbB6#arq929+ zT<{L~4ESrn>k~xJ^L!`cgERhT82{un{`VOloc%M$IH!xA{qvyPF?Y`w&i;8Uc<UVD zQ^@lf;KfSeyuW9GPo68B=lL@54mkVgTJY-SqG!F+;59hoe*?VrD$x%ipZ}#Eoc*xV zSER1aWul*e{t@8S>%q|vPX?d6TsZT8K6rVBaQ4Ib;KiGSvmf3FUV-y|O@Vi=7X2vl z`7(Ix8sRhGKLanX72Xg2Pw)zy@%Q~I>V1dk8Gi|Q>pJ1g|77s;UBa3FD0my3{qs8T z`u(CGM?UXjoDU%WgT?SU@Zyugr=b5Kcn6&K>o4HlTSY$s{e!=Tx%;AUem*@EynBc6 z&CoxS`a2P42QgIO<u_CQ3h>Uiz|jwH1t0#7@WqHf&G_K#&pW~UzMtxU4c-E0|NCDQ z9RBXZ|BAjJ@%INWw;><A{&NI)=iXF*3V87^=#l?R!0Z1AA42@sQGXx!E@F5Wc(wCm z0vLt<GvHltcNspu58l~D^!?y}1TP*SoaeLK*QMUcMZ$TWhk$p$*>6t+@9rsj_S*<} z)hC>fR~x`vj}ShEe69p94ie6Mrobl;7S4Qb1Mh%S|5NbcN2U6Ez}w)wzkA&w^_GL8 z=lMJVyaK2G1n}adRKEhe1<rh43Eq9K=!a16Td6-qIQ1W+{&}hXPU=rh^}hk1JzY4@ zr?^w<DxNQ#k0%F!cSnSeAfF?^TmO~nhr!D;Q~gW8+u)3UDR{La)xQh81J3^WEO>WR z^z5JSGtO$^)c*;*J(lWs`v&SgANt*-ut$NHFBd+6dY=Z~A;&z9fDgY)^gPe=!Q0^M zhc__(n?=w5xe>eq=l#7Eytqd6?1#Ik2j}DMpTXPjO!I%B`+CAZE|oWcBmYN%PuIek z|5L%c;JjZi1n=A^diKK@<G)WhKYv{T-u{sAQJm*{!Hb)O&wzgcybI3r`61(fIE_EY z_#aE-@AfU+-;X2yPO`xv;N4FOXa2{4w>~AD{qq9w>I=fhk>`5G0q5h@<=~w=MLz}o zd%)Y@NaKGVy#8Jq{|DgZ_l5KG<DVGkXTmol{-ST={&t1)>&i!hcYdDor+`<#6wa>~ zUI0Ee{n!wBG2)Mb*WkT=25;Ridfu=1fw#fg&mHjcYoZ@Q{QssNocg~}e@Cj{b5`nY zgR}o12VQ?q^b?5xOz_tC!O{QA!DoLcob|p8ytqp^`~Mp7?tcp(LHv(0{*Q&T|Gy4i zcZH8a|4Z=l=ZFvfAMoNA!g-#Hza#awz<EB0gU|j-^vwTc@Z#6P+0Uck<sXEPW8c?+ z*Wm2ucY?S7Df%hsKMmfx7xCR3`j78|56?*E%;yh`1J3^0^}FcXpNO9I9t>WAv)*IC zi=T;dNVY9rKs`A1=TrZSRR0F*!P!6W2XFsg^b?5R0Wbdmj{f;E`1Buzv);dfcfr{| zeczLMJAV=V2;x5uyu4dD`{#J@_IBZ;&@Trs{vmt@{N><XaIqG}HH`mHA&h@B<KHKI z6mh=J_{E`tuz!BVIJ*jG|NIBM250{~?E9G0hl+j*@ec=Y?JJ!3>tyiR#lm@>=Ykgx zOZ9E=$pcdT+rc~F?6*&VSBHsSs&+rW23~_x{~PeuajE`3@HRN}f7lPu&(9M55b9kD z-X_QM^OL~4CyJiuzY4rMN%#!nTnyeiIn8G?<AXDwkAwFOi=O9sC*y$g{{9-gdZFlh z_ZPei&ilLghv?^3qMt&ZOTgRb3THkig7>XX^H~Yr0;m4f;Il7H^=|_&)*$}gvhl~j z>x+f=BcD6KyWqUPzXESxo$CJ$-T`Mm``sn=R&N#k5aJJjcfhHC4)t$O_2*CzPW`LE zhp!hs@7G(w+u(dWnP&W2^drdU>x>Uh{V&1m8&mziz>D_@r+(k9Qg3%E)gK1l`k-+3 z&$Gd+Y2o9@=WNCSr~Z}T#g<fmEqEK8kIy%Q*IyF-1me#)UK9_))%-u-1Yb0d!s@$$ z@2;r(dx+5YDa%j57c2gA@KW*LfV2N-{ylh$0RR3Od_eKPgAXeHFYsZ-cl?nDyBE6N zMS(x4_xDcdwg>b(6X4%{pdV3ufACSoOYlnZ$AFJ1{si!G#r@?@?tj+DPKC}=R67~> z-CK5Y=U{#8guk(%Z95fvXcVq@D)wyfr7nNnBVII=;iovhm-`BAZdVC)-9GZ~Xhy#t zdi;1<;l?w3ydHe);d1>n@EbC5rlFsP{uaD$_6^24D2?+o>cQ9G^Hg!(s*TGxtlGF~ zZ287jYsc2C*tn{Y%QdSvY%DHZf5F+SH!NSZ?ws{2S3&2@8&|J8PuVuEU$<)QiVZIn z(UVqhxM0PTmMYCT>(`F0Shq5k9Ihl|t5zf-mMQzX^{Y3mI(zks4RMeolxS?j%UqJN zV#z?U+|lK$*PXk5zR=}seO0}>FJy(wmM!0~an%K@))z54Vo7qj$(_lju{En!&eOw} zHvAkigiD)3hYaD8BO4JNvV=>T!X=h)u%R2YWFrmPh$%C4vG4-dPs`V?7#nj9vwZ$o z&)>9S&FYOWi!8<2Yu2Ch(haL$?(V_p`U^HXafH^a5AJdgeWy83e}`6V48m}010GoU zj7YR$)7aPrt2S&XmS5=Fn+>{R<x7^Y-#EJJg0N-N<~M`Mw@m1`^ER!xVC4p%RM>02 z3s<il+q7oGDvifhtX%15M5#AkuwtFdrWZCevfnRa%jdK9I?fEY=Czy>j#k`h3a8bx zgk0U-T;UG2ceGL!Xzz4II%X*YRKks;?r=wYhq7Yh=<;*dtao?(0?EgN6=$Q~HR~@L zTd`sO2+v!y{_GWNf-{!$Z6fY6f?-C*%>`e7!Sb`$uYakF87}Zo+(&-x(&|mM+kvgD znsLkxw54`fDP8BA%K14=91dS91+Zjyt?WKvf|f2V^h_){G8zE?IN--3Mf07bX2SV4 zTHdo><Ds7u7Mjs*lxgW+3iDCmA#vG#gXyJnGh5Mb9rfG%CAx~KMP0Q#X0EY%*F0!< zipy0q(Isgn52cydbDrqN@de9g0d=dQ2SUp!(-q8w$-3(#uG=o>xun?~OX5y&eeCb7 zZUTq(<K7ZT!^xuwaKi$UI|@<nj@oz7`9(Ldcg6dMAo2afPIz2cj?3PGI1hFAph#|> zW9r^HKYj0dpXJgcjz1$BKAH0$Y#je!bo$6q9loRb>>->#X9wf}ab!oVU$^FEaw~Zz zPLdWom^MxPxjQL!gpNy=4vsHN9yFIPJ>p1>yy~c?N+GXWvLuxSrgUKgSAtRwEL}Ff zR7(ez4L0BrOO}o=QNoe&fixUPciFNPtaTop-9+bvE^#NmcJ;ayYl`Lmlf<%R8<wwg z?ZdTumdIs9-J=TW;qy!PRDkq|`K5atAw6n->24$G(McN1{pTPtxlcz?F8->QjlW2A zy^Or2my^G6S-DeSl`j0IIDRitFYTr3FM7%Pi(b0^LM7abw<*eY(|oR*<}=;2yqD*u z`7Ag29Hrz<%X<lJnonobd@`HnQ`zJbNoQfnk&QdQ<VbhteefkmZeUJ+iPQ5-<h10- zUebQq6NIGIK1<v_KImXCrdz>duouRy97|o@pFv+fy6N0=L+dVIv)Vm#m4Q5Gje9cW zZm?+_*s$sBg=}t{te-0{Yjd5VZ1PZ$Nk)uzGV``(GV``(GV``(GV&mlNhUHjcNC+~ zbRk<an|Z%nHcJ+W>20}~-qwuit3PUarozbBtU`=-h4Z#%HuJVzHg<*LXID6HYsT~^ z>OMt;5}Q@T)@H7;H5=J(N4WZY?ZI(5*@eP$Y4$!lPjAeo>y6oL4__#(H)g|nV<s#* zD0959W&*>Sjl96|9u-b7bG%~ArnJEE9<|W%iZPq*0>^vQ@&%4pjLopVvzPfNE(?rk zu-nJfbI;Fd&%1el67ObiOYrn5H(If|89ed6pWyEEv-&haZ@X+-Gt-B}GUErUZxExk zBCF9`ux7d-vgXetGiLBzW{+=V%}4gW&4XTw=ewD^n3$Wf6Z8E9Z{9_E+jo&x`!2@T z=AEF`zKgLn?`z*h`r5-BTl2?Z-$nX*YyPC|yNEAPGB+`{HY3N@X3ntMw+Kf24n@Z1 zA;V}t3`fRny52LJt$phd*1mI*(S>zSu2-+zw93C$=N^6IhaZQ|S?6Bc#>-#P0~0N4 zX>vjQYlHC@b-Z31zE+ukP@}Kg&A;~AG^{l(1Gzk$!A!$FqD5J)^<R;sd-;e~4k4gr z$R33=m?^kkNK#08!=HnXnAwS^5Z#`&t5@n8-1jo9TadJp-^lB%jSjc{lWz0=UT68c z*LSV`lgB^r?{${{5w^ek(lotSUMK$1d5o?;Z&VB2>xNcB?(6L|px0Rm9cBBwFVRzf zue1E!i(l6M?yLIL-|H;@qiuip^>^y;b^1WY98tP4KfmF{>!=gmOBA{jz0L@CuKVUn zvTx9NI^WlB*Je03L(N_F1da_@N8o8=hlZ<JR--BwmDb>BV*?pgJP?lQs@?cB%h5wN zw$v=g(Z+5KS2thH4fGU_9d2&mXk&whs~f=P26{}#{HK7%gR-ZM4V>%zB#tc~U9FGI zO>A>RJ=bGLm>W9U*s$Ts@5&^tsONm_NOJ>68yhrS-H10U&<_M-N0}SA@oxI+2Z6Cc z)7Oo5(^o$Lj2#W%`Mco2Md7<;Nw;rulids`FCaFB#_iuUVEXHc^fJra-d#`XCMUDJ zmzsO)@!8~LmiOVNx1NnnPG)&8Grjf9Y;rR3j_!o}Ol{nWBg}xhu{SxHmCli-x9-|a zPG)%@WqRvw-sEJBVn$aRwG5i^bcb(pGAo;-O>f=fo1CoSz2wMq{1dkg?mPTzqR&Hk z%{l65C-hIR)GXlz>88%w$ar>zSFuxn^VyYqW!q0qBhT=fb>i=vzmaBmLAxO{vh>Yw zc&9VslCfrF&^$|dsXf|zP)<^nBCo^8GOJ*DjXqKNa&@fva@VX{cizTP{|>0^YxcGz z{<<x%;3H37!IR4?_z0pE;Z>yc^($MlP^uEdD{`sMD{`sMD{`s&mtOIDBp=Cjs*xm@ ziAWa8bzYInbzZS>uJLPFcB)>n@Gf4F+r^*R{hUZ7$(@Ku7CMo6MK0HQ#lpERbRrUC zp%a-`<aY6QMt?uSI(cex^~7=RXRn0@17Unk3$?8JZbK&F_|=#NB==KN{K`xwO8olF z0+RdL$VXZ5=+L>jwhU(n&4OD&b3c3C?`=xIUt!jre%B%+x!>EAeg|WLDECv*{obbZ zdm5RI7P?J--kRUv(1CiYg^oB8<!*T*%H8uslszK6=AOLdsuSloB7!KlT_XDb+Kx}R zbK5O+Ox$h3M-0@q&|@j%_-4#L@*vKF4GYbJy%uTi?-Up6Hs&0^{+>I-_*M9YG`Snb zSMwL_k3^KKED`;GZI|m0Mp~#ps9C5#Voi3^@O`C)`h#&6>JMrb>W^4+f2X)me=yEM z{Sj;KZ?E`!HM)oJ{e}hGBi7{hiZ!|BfM%iF4#`4yJ(A>ZIwT9-&q#7VCHW}#Q_(_A zfsMT6em2Uqgnx;?@tvONHqzevE(i5v;hl25tEK+CEWNA4ldEOP)e*_nk?P7FdN0aR ziOoH0h-`z2ZBW_VSs=>V<w>IMGS1Xp#;Ll?I9GQWC+jZbY{TVzO71ewH(VyxIAdpx zQx2EL{bLdFYa!;niC!E~_V9{{yr>wy5^tL0JL}cG^9mO{t#HA!3Ku-7aKUp57d$0g z$SH&io)9h~3r{Clcs96@yXh|6IkD^HD$35;qV(KVl%Knb5_DHlhT*E0h`Wk%3|Fx& z%F@}QG{aTq4*Dt<yg~eipLK(x7qT+u`2Kly?})+$PbggQfWigOCtUD&!UazU7jgjM zf@gz^$ikBe79I>P<o>w}cS^i}ausFgY*BjdD$37YMG3mAD8q2oOT=A8Ifkp)7G>#d zQJUc@bN_r5`TG|N$(y4W65S(`zv>-9xZnwd3m!nYVEy5O<%bJaA1+ufE~MIU!D4X{ zS&qhoXRsWN$4*>i4#8XVRl09t@s&tdrN8P`87^35xL}pxf>nkKRv9i>Ww>CKxR6@H z1*^nGWMP%T!YXl*snT2XRYu?Pc2)YTUX|g3RfY>z87^35xL}pxf>nkKR*4I#C0wvd zTtpUD87!<47nv%(HD6`)jd@q4zv@*PE?8x_V3py5RfY>z87^35xL}pIkXph8tHecQ zVU@wcDshpi(p&RYM(-AIRr;%5mEnR_h6`31E?8x_V3oL#jKc*>#zkad{lUU#HQ|Ew z<0A55{lUWeagnLtTl4it?{;wY`>S64;ez#t3)UYlSbw-+{kV{f!v*WdMPy<9!NU5( z1?$H}<iq-dh4teiQ@^+7>yO^8;p+ESz52ri>kk*KKU}c>aKZX<AsL4Y){l$G!uo@S z^@j`AkBi8M^#=><$3>=oZ_U>qz1zgq@2`6GhYQvpE?9rKVEy5O_2WV^4i~H+7m<ba z2Mg;D7pxx_kq_$+7S@l8O#R-Ptv`Bq%(7+vg4KsLipM&n5!N^dtmiq7B=BYO=`^fy zI#|!^aW;V;8R?JoKPF>5&GW(qO9}63kV4iB$S3#UGcX@~O?c*I1$WO+<qHHCU|{|r z+>+-ImXf|(@)W|dM|lR0@(A3LClHoBE$erb<%eaa`sB?*=@&43%TP$YSGsdx<!+fR z+&y*c6&`hfTe9%5l(gNFg@<L2vT#RPxLdODu<U7BxT7pQEHi~Kbl34#CReyy@t%hz zcgq*<p3L<MUpjxs-I9g7C94ffiRqTCHY|IT)jE0vTFxz5ZCLiS7=O2wd#WB$cLuJQ zK#dnf#Fifdyw@s3=pBcH>;t#V_JMoW*E^2G=a0iJc^q!Z;|NPh+bww<VcDZR4o7($ zZpq^a%bu3U;V6$IEaf=DGIJb<FYuV)Z2oOd?l|0v-4T}DIDZ`O>0$3UmdziBTk<&E zlE)F264Nbt9AVj`JPt>B9B#?u2+N+9$KfcCBP``O!ZLFl$vfE8qXgc^=8nUycpPEL zjq}Iho=5hM<B0j=a7!MCTk<%<QewI#k0UI5l*i#HkHal_9AVkh@;DsjafGEDM_6W# zBYA(FIu5+c&K-wa@i@Yg8|RP1J+15=$C2~L;g&oOx8!kzrNneg9!FUAD38NY9*0}< zIKr~0<#9O5;|NPRj<C!eNAhk!bsTt4pgRt?;&Fr}H_ji2dzRTdj-%#}!!3CnZpq^a zONr^0JdUvJQ67h*JPx<yafD@0%j0mA#}Srt9ATL`j^w?I>NwmJ$6iT;^Ch_@OL9w= z6qb^ZTe76E>`|8FC`)onmK2sfElYBgC55Gw6qcEilDAZ<lH7B_UP(vKm*kc#$t_t@ zSV}@}$&$jdM_H1iEXgfdQdsu1EXh%p6qZs_SY}G%J3WnOZSk8smn{odd<rWUC`>L; znp~hFxj-Ruf&6(9Dv%4*z>CD<>c}OS{d^t0wbW(r-YwTl-mjUvUo&;TX6Am)#QmCi z%UY82Yi2F$m}hc!!hFi}@6~fDyNh1Re$ABqnkoA=Q}%17?AJ_L){>fEGi6!FJd?5$ z=2M=3gP=><UG!4+Yo_eiOxdrQvR^Z0zh=s^mel;3Da$(MnUtL{pYr@WcU{WvqL;E? zGiASK%6`q1{hBHJHB*+gq~_O5S=KSnr0j(Gl;__r>{50Yy_Ef$Df=~3_G_l>*G$>3 znX;@UHNR%cvW|HsWhcz1JpYDdm$JL)rR>*C*{_+hUo&ODX3Boel>M4%%39L&YkX-R z_QLD#VT~{Bv7Xl-o%vGO3-e{ozf;<k<t}<<`8CV(YnJ8LEX%K1mS3|hzh+somNfmE zWyyM;vn<c?az)4|Tb2{%%bI@+w=2tC^vd#UmgUzh%dc6MU$ZQ~W?6pCvScmk`!&mw z^*m=;p0g}jXPVF%^JUGyliZc%KDFa}Lw?Dk+>$l9B};NkRuq<!pj)!Gu<TJ*=_oz{ z`z=^wSoXB6&`}l`mYMp}ce$s}I{cg1drv#uMXx@$WPNVQ`rMNBxh3lhOUceHSzlQ8 zDC={S^|>YM3(KCC^*PG=!ZK4|`ab-)KJ{*VTuP0+2&M5N6vvBD9xp;wya>h2U%141 z5ek~Wh%BKfT0&X#7gk};>c6Rnn}e%f>fR)Gg%+kBEKEIIF!gZ3)NvsRh6|>Si^#&% zgN3Q%Vu92%L*)|o->91}EPPWh%oR-1dA#5a3Nlt1E?6ZlB;#<wl5r7PSbwmDPUJqU zKUl)UKP{|3SXe(UGWC0Fw*L4B5#;AEcwfV_%rJN0C_Zr19@Z#5tWhl1q1LcQsaVI{ zPCEKQ54XF2a)+A|*38OtX64t+%CDJ~Uo$JeW+t+hO#B*09^&J~!x{&U^}OEx%p}R? zPuo3}>ouEug4wIeEm@RXvL?4=Np8uC!cr1(OV$>aJ<2K_MPvEhSYufBw5-rkG?dq7 z>&rhIO@Bs4uB1Y&LtR*h!mtjNVIAthI#khHyM(b0b@bNrJX8W6O6jewE=zw_N3NJ| zctk<EVU2Xd8tH~L(hX~*i*-mVtdTC(^Bn00j&!j$)Ahr{p9UHXlN4q`mZ5uODQO3R zWF3~0bXZExSo(CrQnJS~qINEBWae}6^MhRc61n&#a`8*#;+M$9FOiF1A^};31pHDC zZ+<KX=ckg(o;LLCh37AiKkvHl)`j=$NrKMkeuL?{jp2u;dT$r&*-Xb!PR5Zo(=imE zaiq<33`do5q|I~;2b*!E&2$X6A>&9}#?hUA)=_MxW4PNHN7^!u`5nV!oeOF@hEB@t zNL$7+zhn4Rk>Ak`Pj*MK89TZ+SA}UZJtL#-%9d>QxpSq_c4bqVt~A=NY)jLXM%$H* zX}Z#AyRtP+R~mD!xtr>aDSWfhzN^m4_B3~;(cYB}nsLp}i`$hgYP!;B@5(04xGubF zu7yKNW)J%}aArC<F{xyOjSZTnnwTs%HmBi6ljX+7G~8&i+}M<c8%>rQ8`5y2$#%0k zH5^H%PlJt(XzWIlwVU0ch-h|7u(1J+-Dt9QvpW+J7uwD0O1R~E(lxC8u<HCGTQf~( z%(i7@GacD|jdO91w3&|VKg*Fe(~%u$Inri2vIi|k+A@xr26Z*&JJcE3ht`g?nLB2i zGz87{jWe<rtsQAIcg!|w2)f{onN|&sX0L`X0_;{zOe)b}vl}%rS#E5_^jv})O_m!Q z(Qu>5a$_4BZZuhLY(m40Cfm(w&rn;YJA;i4XzWIlwVU0Vh-mgnu(A1!-Dt9Qv)d98 z7uwBgO1R~E(lu<hDI;4mO=rxuWn?oQ*?o<3agMZ^j_g0nkv7wj9cVeyW;(J5El1ii zj+q8^HRe0i8QF){j<lIOW}7qw&Gn5lvKOr#X)|}sHfjjE;EtJA4UT57hL=O_R!vMQ z(O|P1H8ELkY{m3kf*Vbi8ynGZqsek(8yapjS#E4X!;L1(jh$q;(PX<>T^){u?Ps~M zi;Uf9vfZ+~vGpvs@Dg0(>+FyuO}1Nhx9~z<^GipBw0b!)sone!*km4c6O-j;w{mc! z$#P@ArZ*tC(PX)?Ukx{!EI0P6;YO3?#(p*2XtLbcuZ9~<wwrak!;xfKIoQ~*#%?rO zyRlzQH%Y{DW4{`1G}&(1+A^&iYU4|-=5FSra`+i5`%yVDsU(Aq{hIEUm@GH;tKmkI z<;H$B+-S1g*sq2gO_m$`)o`Q9a$~<5ZZz3$*6j`_nQ7%<W4{`^(PZsrw=yD{tsHFZ zS7SGttlikJrrSchS&zy{#BAm8gLHN)Cnl9-u-UDgm@GH;Yg$`yqsek(zZz~dS#IoC z!;L1(js0r4(PX)?Ukx{!Y&WZw!;xfKIoQ~*#%?rOyV<Rbh-PyI8~fGRjV5b1yOj}f zq1~)jhMU>S;b$W4R!&SR$zZcvIWbvo?AP>2f*Vbi8~fF8qsek(zZz~d*=|;Ig(Slp zn48b=f{kr%>_(Hd8^6jk-OSq^cH?vyZZuiDaXL)5{BE2M!;L0uH+yhG{xn%`oDO3* znryf1edA2oZr0$0B>7B7xrHC5wFf6LS#I{=1UH&2H%>=-B*Bd)%Z<}vxY1;}aXJh) znrt`g281LtgA;6=4r4c(tljLvK}55agN@T+>_(Hdn>{#)nBR@lVeCeewHv3ybj$C? z=`h@AvUcNim~IR0W(`g_lFZ<QpTf2WCo!ocgN@UXCYhKlH%^D)Mw8{n=`h@AvfMZw zh8s<`o1C)gX5N5MH>bmJqsiLM9vno>@5bpccB9GK%^sYv8%>rQr^DEdCfhB0lAI~a zjniT5Mw9K9-HkJ4yIF%1jwCZU;m7yw!AVSNw_vjeCox%WoR0KJf*Vbi8>ho?qsemP zbQo?l*>2Vi2uWr>;{+S0!`O``Yd3pv5YZf*VB>TcyU}Fr#_2HK^1E?53^$sr-8dbl zTYfiAhv7z(wHv3ybX#aQYjDCL+k+E+ZG<^Di6u=jn9Qk3ET)s>o|FYAtEyn)G&P-Q zF?KrK|2hEu;x)o$cj5pxccR7EDg2@ab0=C1C(dkhCt6IWTut^YhjKZu&7Ej5b}|PU z;j*U}e&dLF5VSORk{^+_oO%}1DRU6cDVLu7*tNM6`(N$kevJq%>ET6&ri(on&V>fc z#VRMbnAJE7JHL?_4b5Hbi3qWByRhpUyU@_wg*|V$<aS}lH(Y3F?!taITyndx+Z!%4 zG<UJ5z?~QkmW%NK?0*wZW(2}-mvO)Cw9%K5p|MM^%XKY1L(?VK$-S{qF78*!*e;Qw z>B1gQ6LT&!ST1tM3>WiOx?t?_h6@eNUF_x$v2wex#~ZuQ(A>ptezyw^O&9ifV;34M zm&}QADw;0r@y0GRST31eGR^O*WRDxW$W%0T={?A6m!83Lu@lQRzxzE#xlZmG)GqEv zd~BD<&~#ysr?og28k#O_*oF%YmWx%s+l4LObYa6bcA>#?$?THpWVb&Xwy_Hh&0W~A zhKp?9bYa6bTxhUdGPPtn+10`?I~u#t(A>rRYQ)`o7b{nb`>PYiBY$u)=OtL&ulHzt zvWN_g#CnsYYv~y*7yHC=BgS8dWh9mxG55=;>=BC$Dluo_B&D@PhNcTAso_F{<zkiZ zcFByGvv86cyU@_wg_C5sm<{80;UqO&XlU+Yk64J6+l7<V*oB7XE}SI8CASMFso_FH za~DpM;ga9Q8ZlQsXV2Qj8nNIahK5UTl5}D{gXJPA8!nkzdXv;};UKA9+%GtzC3T4m zO&5E_oC^(27fw=R7aA-Vt9-XhX2hI@lhoLShUPBzh=o|@Av+5vsj&+U&0Xvf3$b#$ zaFQCk(9qn)9x=BI4NVtLQezhyESJoE;p|y1)`+>pG9wl&)`&%h#xA`{(zWyqmWy4B zbIIJ7%!s*P?#Dq=ySQJPM@yPmWN5l@k{T{FG+j7J4Hp_L7pr`iSZ2hWg_G3Sg@)!X z_K1a8<{>)^C#kUu4b5Hb5eu<$yKs^kyU@_wg_C5s<aXgCHC$+D?!rkjT=KhEBj(D_ zj99Q(BNiDNiS;H)C)P7qE|Rk0lBuOPNeveclG?@nB1T$Lm&nj`;UqO&XlS}{k{T{F zST0uiF0ssrISVJLu?r2&UF;DHvCKnu7EV%Q7aE$o*drEV<#ypDHFlw)xr;qwZWkJw zE}W#sE;Lv!nft=ovs|nZbBSd}ELf}&iwuojdXuDU=@~2+yB6n?xi6U!bH9X?gQRwG zzuc3SG_lCgbm1g5Txe*zaFQA>G*~WH`7W`{h&c-<sj&+U&0Xvf3$e^Yb{0-jV;35l zyVxTZV&!(>BsF%Sp}7ku$#BW-!bxhl(9qn4lVrH$cd<sym7f{0V6jFlGN{DduUE4> zIWja|*sy6W&V`1i3mdlKLWAWZ2V=OHC+7BN!!}%KXzpTna)_1Ng$>)-g@)!Xb|<@C zXlS~yVH>;9V7X*Yj4j@DVZ%0dp}}&=?7|keT&zxZ<!3rMSgcNt3~Cqmi}dVHjtor~ zHf&nHbD^Q>!iH_Q&|tY(C+2p^JSIB}8@90v4b5HbP7blmPIeYHY-1N1n!B)J4VT<5 zY}kei4b5HHu!c)+7dC9eg@)!XY*@o3zl+t$?kF>z94uBRM}{;p`8CgGFQ+EUjcuD$ zByKcWZfsq{jV8;Dy=b`6WVx}q3^$rAH+GBRMw9I(_tJE;ZZm(+w((u&)MV{uwiMkK z+RbPyx`|2c=6|iW-6XNaaAF^%=i!}bF`U>1O($9mC-y+oi5A0&9nf^5#c<;NZ#vOp zI$4e34}y<Ah7%u5nmf^AI^}j^yO>T^OZfEchnn!K?Cg&4zxs|AwUamTzNa<C7Q>16 zz3D`Y;l%sibfU#@;(c#A(PB99zBip{F`caY<PRd#5#Gf6-rR{6V<+Bs%gKC{ke#fK zh%IU-|4ZR{-_xC9i{WH<gm<FFaN>P$?nH~>#QWZKqQ!9HeQ!F^VmR@>H=SrPove=V z2a)LrZ{mG#?nH~Rlid*#&g=*=Ssf8u)K30)?%N#^TMQ@O_p~POM2q3X``&b-#c<+% zZ#vOpIPtzWooF$fc;A~&w3tp-NBD!tbc8qYzBhNG#n{R22nlC)gqW<3h%IU-|0fOX zj)*OW6YqOklXs%UaN>P$I?-Y{@xC{mXfd34-<wXf7*4$JO($ARC#xg;L1a3@n|R-w zJJDk7WOsywGdn^|R!77ZwUhsg5q3w!7Q>16J*~+*(PB99zBip{F`Rhcn@+SCPQ33; zCt3_A-uI>xErt_sVbh5g)5&The|o&_h7*4Pqq!3;rc-Vw{>+Bq#2>zB?nH~}l-r3v zuVFe_4eJlW{*jFNzcr%YPL){HPX3RBur1S?VvFI#wro1lVmPran@+SCPHfAj6D@`l z+p_6Ii{Zq!Y&y|mI$1Z@pI)Y6y@_qv+=&)rC$^>KBsmyPY|Ew-Ev8ehrcA^7n%I`s zPSVP1C;wMl>_^zxVmR3i>z!yZoY<CWdftf^!-;L#bfU#@Vp}$yXfd4FmQ5#G3@5f_ z(}@<-$-24zATkZ>O>E2NPP7<1*$pe<%!c(Qwq<iCT8y38mX^~3J6Vsgl7rc>?qzqo zUn7G`&RN)#X>O6B>B5d|xX{paVLvupXlS~y8yhY(ST0uYxLWvnc+-XL+t`H$%O$f* z=9#41pZ(t0g@)!X>~_P&Y#Fx;d%fX8Lvt5<212adF6{HhE;KZEvHRccLWAXEb$@U% zo8P@sZ#RErP`fyb-TaZE>B1gQ%Xcm`G+o%^4Hp`kF6{A!3k{Zw)s`-?O!GSnd%Up= z4b5HH<A#gbFm4z2c*BK;<}P;ghgi8?*yD{|XlU+YH^1A3hNcU9ys--nmP_WoWSZaY zZ$DRw4Dl}R??i=PgKo6HHd$_L+o&SC(PX)?bqzO~EH}2V;YO3?#(p&1XtLbcV1^q_ zwp-(l@krR1mKz(**o`LJExVi5hs=ZxXY59kwHuqxbZgGm{BDhhV{KBqg<mag_he$S z+}L<&lEIB8%Z-g^xY1;}vGEKynk+Xqp5aE5<;KP{+-S1htS$*hlIh7{W8)dS(PZt$ z#xvc_E(yD_@eDVbtljLMM8t)5vw9M4%_j-2U&HU+wR<u#sU(BVc&fmNG+A!!*Yrq2 zM4Bu&_N(DWljX*KHQZ>j-K^#cNm@@HSU20;*o`J@H{&V9d_?nhhfFvf#%?rOyKy>9 zxBPCL4#SNmYd3pvLjE*aZk!HdH=1m>?0w@**>2Y0ge3XQBXtXZBF>zf#9}ycG?K!C z6D@`l2czjki{ZqvXgbkiIB_VNPP7<K?Cqu#EvA!ktHMEW91JJ+b#o_LOsCvV90k+K zXo--X^*)C94|Jw4=PHZZ$$uA|_dTsCwir&l?@cFK3@6_ArV}lO6YqP|i5A0&_r2*v zi{Zpu*mR=Bbh2))yt_awh7%vKnmf^AI^}k<AIRqaNTb;i_QM#Qay!`%VsNq=)*nRX zA<X?Wx%~(h8PqX2i`}h}q3OboOi$an(9m>YKQ>%wXu7Z)8!j|hF4j4_#O%-U{!hZP zeH**b(A<R&XNHT}pl%oTd&7l><}Q3FGhA}Ju-6+dG&FZ%ryDN0UD)Rh7aE$ou*(gX z{4Q4ayQ8$4AAb_p=ze91Q-g^;8|9`fh7-HC=|qd+#J+7h(PB8U4VzB17*6b}rV}lu zliUl-sd<-hM(nJn6D`J0M$`4eWp`qCHFu)L*vV)->_m&{)M&k)lUP!x@b#G4dx^zx zGJ7vL(PB8U!;*stPP7<K?69U2Ert_2tm#CH;lvJWI?-Y}8NC;3;=`cf#13ojM2qQ^ z+lgIiII+W;JJDh~<#w`rFO<tiH)|)O_mVG8VxPp2Bo{2kC;jM8Zo8*9O&4}#V;35l zF6_sK3k^*dc4NbZhNcU9vEf34<<h)0;avEsz3IZ{ZR|pW<&xRO?CG#SzZ5ZcvF^Tq zGH5;UB=5ma6N|qLNp^`1O&8weh6@c%7vAKC3k^*d-sFZ04NVu`<c13kO&8v=h6@dr zi*YOciP^W(Tlg5%*oB7XE_?(sTx9#E3m<<PE;Lv!nOe+;rQDYy{5$naizl6Q+<^bj z691oN{y#_f{~YQ6bCmzjp#RU3U_Lr5MINL}f_6!WvgGh!4US7i6ZA`i>ryuWC!BQ3 zGmbrJ`6<tO)@jF|zWnrKpK;Rh%ZqbXtXZ@EoZ`au7o5F%!}3+@&RM^5)$$FiHf|bQ zzIxs2jm6r${lc>^P=4NHd4yN5J9qu^bJna{p@p)++7;_ooVRMF5k#SLHm)h~(T9I` zbpJls{r_M0$;Z1Re&cTQ{M9>%!Ry}_@ke>!J~UsG;k)i^>+j6)19!3Ye~bA0qkP`+ zfO-AyZut|rEKb|i=4UDXQ|Rvi_i24GieE08kMn_uFOB$A#QzPh<2>&{^Ks(yyfVWd z?~8FC{#ZX4#Xm9Pah%KjO?4mozFeQ----B#qWC{Vqxd*}tAF9X{uNx;wdX_pu0^5w z&U*>>?l(p8pAYW!Uy68V?|FTk&-Ww#;YfeSe)IZ|MEvfE$8q*qJg<-Wf&0(%_&g7f zc&vZafwumO5&vkE&$l9ebHuksd^+OYh<_~NFMGJ`>(A}Bh+i7<PQ>eo-yZRu4w}zD zKF?z!{_#lvGH}1|S0a9C#FKp^9`AcVIlph{D?I+}fABp2L=^vlkDTZ6eR=F5^E}Rf zMZ|B3;@lYVSpPF{U)R?n{hu;?<D=&H{bZ!SG2)+!xTs|w!$T=_en0===fd;bu^%2b zdVCTb<KE*3g2#{NK296wwU1l-55|8b&KK?9;}0r>tU$Z<_@3bSr^ojOKp8#0A9#Nu zAKaJs`w5C41pR>Ghk!3r{ITGJia#Fw7{w0*Zz(>Bb9koWr-KhE{*+R{Ns2!md|2`0 zz)x5F1n?2XPXs?h@l(Jn#ZLoYsrU=QM-_iD_!`BRgO4eG4){jJ&jTM<{H5TpRD3;n zTk&z6^Xn8p34B8FSCj(YsQAU;lZw9<{2Iky558IPH-KNS_*LMw;#Y&;sQBB!rxd>q z{KJaB3w&Df_k!P|_y@qZD1H<8=M}#hyrcLS&iQu5{|Y^Dcuew74QhZz_;&~QujgIA za36j0PfuU&Bw(@P)y@J+#cMpD>sP${009Gv^Lf~y;+1>M^&hS9UwKRo`9Dy=km6lD z-x^lD#PgvM#j8C8REpPo3K&(qi-Q?cyu|aKam6b<ziBI8?;~I;;=8*w&v{z$HqL)m z@h<pQ#Y^0muHw93+cd}hnp2$jal7JO=tF}zn{S(tKknBe^btAreTrA!$$czVyaq27 zZ|y7ke#N_ZUNWF~`%uvjDqbEgyrp;rKBRbgl<0>QZ-b90-UY7|F9#*gsNxm)nBq0~ zxZ+*#w&Ja$CH{osZSYCOJK&oYFP|)NYQ;Op37=BDe5UZ}h=<3MhYH^kaer&8Q-se% z{EdRbe`h1^<M6(3i@1-|zF3^*G{;=@?I?C{_Il3CV#PTxrQ)2Ie$CPU1B!EA1{G)j zw-hfiFGGq`Kdd<CWkhk#OQkr^ZB%j2%b4PvmvO~8FKxv+FB6J$UM3aiylhsS^HM9$ zd6`n2^D?bC=VgoHoR^N`oR=BJIWMz{b6&P8&Uxu7&Ux9UIOk<9;_<v}k9a&Ui_q7; zpW}Jyi+K1{hp&_SBOdx6^D>|~Kfeqs&UqP8obysC&UqQt9P=`!IOk<tarQs+;{0-6 zCNla-#W^pV73aLvigRA36z9B5E6#b@qB!TJqd4bfMsd!|tm2%Pt%`GAx{7mNwkghe znNytevR!e`OM&MRJb%v1BE>l`eTs8l7AwwqVIMI*=cQlkpDB;y0}+qsWiaCLybMJ= zo|oZ>`#2rU%V@-XoK{=*9aEfrIjK1B$7aP@XRUaJ>nY7KFVl*1UbZOCdFd$5d6`k1 z`dP&}FIyGoymS@kylhjP^D?J6=ViO%oR<Q1vmZDwixlU)^eN7HS*$qcrBs~r(yut@ zWk7Mx%b?<%mzLt3mm$SDFT;x0=(iEYIWLvsoR?9>`T1om;_<wUM?9XFiHOJZG8u6n zhxdId;yzAsiT_VgOe@ZLnN^(gvQ_aC{n1sN^Ri8IT+b<9<9fT|j9cLAQT7|>Ws&04 z_bJYKS*$qcrBs~f)~`6{Wk7Mx%b?<%mzLt3mm$SDFT;v+UPct>yi|&FUPcw?yo@Q% zc^Oxn^U_wF^D?10=VelH&dX-SIWM*1oR{f{$8)hI;_+O}L_D60*@(xVN47;g#KBz5 zDc%O}!}q7yhc)<O#Xk&QD&7I_SG+>s4=B#L7*xD`jm&Q=!-q0_Sn<|tCC-TAZSYF* z&Sjz>&G0eBiz`Gwt~lqSt$6E7(N8Geev|OY4BxDH4Sk*AQ;JVRKb_%Q6z@RaQM?O2 zqxc;7tm4I0QrA|+ITu~cq2H!>3w$o(@w{x0cswtQ7Rmm;pZ&a)a#{36+{bAz7DIo; zeVpQI;RA|uUWOItyo@N$d8riVyo@T&c^Olj^D?eD=cS$D6B$0KIOk=v;+&USan8$B zhEFTbdD)^k=cS`K=VeB5&dY3uZ&jT0(#`N~igRA(GJLz@oR<QxqxgRF{lj@#q&VlL zPjSx6V#PTxd|tr#CFY`E={YY05s&9(FyisN3`IPim*I%}I33K(XvBS-67w>qIOk<j zan8$T#W^pv;+&T$#W^q2igRAJD9(B5WcW;m&nnJ&*{V3_rK>pSWm|^NDb9J>t~lqV z!1o{651f}pigRB2GJLV(oR>1g`xWQB3}pDA;+&V3;+&Tu#W^p-inq{jBZ_lgD$Ox3 zql$B0#v&fi%Xq}&d6|fKJTH?Gk3YXmMLfho{?m$cUS<{NylhpR^U_tE^Ri8G&dZ$Q zoR{s2b6yI3UyJ=lz9_@{6z9AwR-E%vD$aT7&+q}oIWL2Xb6#4Cb6$oN=e!JO_=w`1 zmny?Y73aK+W%#(_oR_xZoR<m3IWLonb6z$p&UvXd$Gl7_&Uu-Rcsws#A|B7nOvK}P znT>e-`DI(geVjJtWlr%Lyw8i=2m5mi_~HyN74JabuQ=yrKyl8?pyCDIATX5S!-~&B zKcaYXt<=M>?^zf5xYD!F+lsT#Clnuho5bI&_yl;J;ZurFLO-41TNJOM?<l?nd`9ux z!Dkhp1>dST`?;(59Q4~1FE`6M%tbuz=j{>qOMc&Qkr%lSe_!6{{y*R^+(%!;!}4Lm z`y=k-%)LYSfa2`uVa3_cBN<*P&VC+Moc%neIQw~AarW~>hEFQae%`D&`?k*TEsC?B zJBqWPXB1~YZ&jTA+|BT9inE{RGJLz@?B`++xu2X<_VXge+0T87v!53$&VDWxXFvBV z&VC+<xKFu@?}HCUJnrYAh{ydr9C06~L_d#4+{fv=PU;_1d;ok>@geZd8D1-1K|iHA zUSFD4oc+8-bHtg+@L9##&s!C5<BeV24BxIe`?=Ut&WU}(eqN+F`+2eA?B_DW`xR$D z4`leD;&V4hel5k>&qIo{pNADM-X(EH6lXtIinE_b6=y$>MLh23@rcL$JP~o<&v?5^ zF&XhN%IN2*i2FDt@}E|m{XDBU`*~}IcNJ$pZ_^z8Jf}GOdAsK5=S6*T-t4OyyialV z^J2x>&t--WD$agxDb9W#Qk?xfqB#4x%J5Oe+0SDcKCU?Xxve<+c|vja^Q7YJ=go?< zpKHb0&r^!CpQj@p_w$yB$NfAL@wlI7BOX6KZ;QB((?UPbDbDYU_2K6%*gyQf*kZ-` zeX&w;eqXF#bH4tsIQw}}@h<c&#rgWzkmA%2D_;4c-N%UHd|q2A&hLwjD$ehVjVaFW zi;XMJxo9h19WMDyD9-PTO)Adsi)~h%-xsSDFYy33rFaECt#}Q-Me#0pM{#~%Y({Z@ zUu;(K4&K+dRdLQsS8;w{Y@6czKJr||<9XR0@pxVq;r+0_pZ&b>qc7q<4)1$^#N&Ax zP@MBJtT^XoL~+hbr8wthRCDzInBtt5amCsHZN)h+6N*zmsW|6lv*MhWT5+D+l;WJ1 zX~j7&TNLNKbQI^j%qY%znN^(gvQ=@;OILBu%QnS1FLR1>UbZXFc`5dm4&&n|=Vg)N zoR>buIWLP9=e(4Pb6y4_9?!*K#N)Xbig-L1!x8s!I{QgIqY;niVoY&9FPc=G&x<x^ zc&#{}7for7xtLa*bFoEpKF`naS;hIhXshCUUewL-?TWLX3%tL+*AG|9c`j0%&x;l- z&gVsChW9JZ=S2e<KBzdK7qt}U^P(Ze`MhXYaXv2^QJj5SDbD9bql)u+(OAUeejbl_ z+|Lsc_x+4dU&Um^eVl^N^CKSj^R(jZ=UK(s&s#IRt2q04o95`}ImOw}+coF&e0&|x zzUn>CSDgL4SaJ4qnc;(qv!7dv_nzk~&VC+Ioc&y7_^9IS=dlbQSDgLaR-FAjp*Z__ zQgQb4X2sdhwc_mODaF~((-DvRc}v9Oex8YV+|RQS_i^|-Ojq$1`h1(>ZSXn8JK)<D zFZTCC<38~7F23LVzAf-Yir3(MiWdj?AnxaD6mNl-ig&>K6>l9VaRwsp&#lJSHGDq8 zxoFp-AByxo{~B?IBkto+KN9h9&iFa!D&nzzG~yvX^kWf^_2Ur_@gE_1wj&<vCn6r= zLq8euSid>qA^t%Uzm9mUpNe>h5B+q+WBrzhhxnz$??gP-&qO@LhkiEVv3_gBL;Qm! zemCN=ep|#teCP{2e_=n=pOH9=A|B#DQg~m)eSGQ{N8IbX(3cU9_5BeK`5Yqg2O=Kp z2P5wF)uTk;ig>Iaig?KX(V`!Yc&s0Zc*r06D&k(>`L4tnjd;laF~Y|p9_z;=9`b*z z=-UyG^%D^f`S*){GUBm*bHqdb(AN=<^-~cK`5!9rI}!K#?(c=qL_FmGIN`GqkM&z4 z9`b>{8}V4bE#e{m<0bxF#AE&Th==&l7mLM@{mlFqMLfiRg6R4p9>-rC@em*SGUBnm zKjI<&6D9sY#AE$n#6x`OTM>`-LlF=0pCs{zBOdEVA|B#HUqw9Dk48MiKTP7cBkuKl z{GW(;h!6c_#AE&Dh<klGAo1&n$NH&=dwmUkC*pDbGZ7E*mq`5Ch{yV^5%>BE`fkKy z{kDjEeHZ!y&kNXZJfB4o5Al~uK7A37>s=giudksmBOd3|AMub6^aBx(^@9=j`rh+Z z#rb-|km8-gCI4Z?%Vokx6mNr9ig&@=inorCI1`H3;FF3MM~Z&4;uUzUcn7?rIA153 zQJk-n%qq^;NwzB98kBsxiu3i5ZHgC1i+)b=3VgfbeBFc3H+{c_`}kyuvk1>C$=l$4 zig&>mE8cpF#3>c8!TS|2juHKU;uZLy;vH~4FJ_+QQzg!j(zn5f74L$NDBgOS#Hkdo z!ABJ@o-X<^#Vhb}#XI0_#mkn&nNYk9KB;&Ye6!-MV<k?lcnv<Kc<~I;Pb*%5Z&ADh z-ch_fPU6fc-UgplybHcn@zygXPFL|7e4FCM@uHtoyaL~@cn6$cC-wU0SrTUvz8)fP zgZC-k1z)Uq>ja5YDqe&0>oCSIhD1N4^cDE9;vMi2#mi?)oJ#RF_^9Gt@G-?(&yhIe zir3(6#fuX~KcRR9KB;&Ie6!-^NfM`4ybV63co%$H@z%)_r=xfcKBIW?T+z=eUV(2_ zyaV1<ygWtXY*V}qKBssWe7oYUVTr?E<itLy!587{Y4YNEqVH3@0$;3n2fS3gJXPZK zE8YelP`nGy*9n+U>okcor1UlTu;Rt(q90Mb0<RSBfR8F(K40RDDc%MjSG)_}R=o8B zi8G;i4L+%O@j}sWR=fhAj<|mwRqo<XswlQZ+<*S<K;Kck90~GbM)5ZItm4IsM87TK z@xF5r_xrYAEc)$=cfkw1zQX&<eHSUteFq{Q?>iWAzi;ad*|(*54L+oJai-{p6>py< zd^F<mzGD&h`xcex#}%)@+lq7F3B|eZbj0I*w?sVLU&QYyUapXQW)yFO&njM=Bl>L- zkN2I6c(}hSMZaC~E_i|0w|e&%`z}(P`wm3h@7wD0p6>eq5fArwRlr3n!-o{Fp&!oh z(TK<Ujz!$>Tb?KTj%RpVaqc^j;nNY1_uUflaL(Abli@RpccGun@NE%~_nnKl-?v&V z^={Ab0<SOf{&L?%89os4c;CT@`+Ymux0T^TikB~uJcl!UG~)5TV-ffJ)-RPf;~Cyo zocm5>_;keMeYZs1?^~>qeLERGqj&}VY=&=(c)agi#QnbAwX*N_3@=Kt^Zs(*MHxO2 zaldbM0OmL1e&5zQ_aFan8U864pL|I18v5Z3AB}jt?^wkBzU7$vkNX%e!#}-!$=ix^ z--!&Lj(EK9mWca(+t|00;WLVNp`Xq0Z4r<6or}2Nx4OXn$9-%s!#}-x$%}(i&V3hU z_&~(teFr1%_w8WcR)!BLUT%;)hBJIL;_<%xJ%u|scfW7FQR49TM{3@V;&?sxoyhR% zh{yYGiMWqbY?6ID89t+U1^sM>Z;N=m?_9+FzTFFD-|ZP*JW}jCxPQE!`!34xfr$Hk z+mG>{?(=WNeVo=s0T-<dA5y%AemKKNBOdQN7ID9C`7+seJj3~WZCNk(oltu6I^urc zdWqCK6>-0B8~aXY_!h;x(04L?F5+>$+an(C*DIvn;t=_lbyeVt6z_odWq5zY<9!Dr z9`5h|>+Ig+q`Bt&fuCFr5-GRnxE}WjBE_!VMsNr+NGK7sbvuac#4W|LdXeN<B$FTt z2`v|nOPB;v7Q1Z`hjp2apsXy-+I6tjSe9~cVdXc~pKqnBK0p1>&g+%wnfHA9`#E*0 zy64IBJk!sq=o_wZL*DjotZ>`$?mlmJyy^AQo3HROxjGH&bSu2<c=vdx9bcT^(=jKk z@E!6f`D%slcD&nLcYJYvUyk1S3Ric)*W2^n_O7jP-SO@|uXnuZZGWCLUExFW_UA** z3eP*<^oFDGI2w0+aeiNc<8do|i(I`D`C^4{cf8wMc6@PuUxhi-6&}dj-klX5JKo*r z-HtcCQF`kYJ|{P4V4doYxNXmS>uJZk$2;u!;{2Y8`<oTML9Vxu&sO+m$Gg3G#~0`K zEX*0Na7W(uZmn?N@$Novcf9Fse_ps;;Zt&ZHr5$dc-`^t@y<KGIKQvP9Cat$w&yE~ zuaTSAAeXH0^^SLY(~d9B?`tt<xWWy2+q<#CZO6O&yxH-lSD%C4e1(t6o#fpLFFW4! z#$)ijG3|KMs|xgn6~04mC10)Z-HvyA>y9_Q@%8APuW)r|e7!yIZSUF&*B$Tf^Lodd zUh@XbO;`Ak+)Li9@Vw*Q;~jT=aemK5uUp|;<WBO%3g7N{x3}#0;{3h|z0(yQ$lKnX z6&^d@-RIqoH@#MR>lHpH50Y2wSZ{mYTTeUQJ>Fr*7w30^`<oTMLGC4=t?<o`cYE`W zFV64z=pC<cN8a{st#IG*?mlmKyt~ik3ZIg<`x#bv-SO`6&O6@pIyqi-c>jF0zD6D; zpRDlpj(2<0jxUb)Li7z+xFK(QH&(dqcz2&SJKo*re1(t6+kI|-o`bLFvXk!~@3iAh zZ;;~+D}0AsUxfXsR`_nmyS;VCn_mA`%$cunbr*cSJ+8KQZH4QOclUX{<K2BuSNM>; z-Dk7H^Nu&Y>M_lV_kN$M<4te-_nF-a-y*kfYwoo7?Q?~1cf8wMcD(70zL~Q3=SnL) zkhi@%E4=P_w|Cz0rq{fEQLEHlaoe89*4N0r<dYS?-tlg4+VQ4WzY~4K6>iAe-i;NW zcf8v>?s(Jdq}Q$RE%GS&Vuf#ayxUuLyy>+U<9MelJdn4&J1e~Ic(-@n@uoLOueuxh z+w<G{8o7Qqa>)u`@AyGYR31lZ$D3aN9?Ti8a6{hqZmjUU;|Fzm#~p8a)i!$F3g05P zk}p>HcE=Cu^p+iOdgCSNov!de-uCXS@Ves%b$aI=Z+gw8=v7DHwmrYCuaSGnCo6ot z<K5o0;|K3m>Gz>;xWWy2+q<#C^Nu&Y`YFwk>^(ns{NTOMo%FgDzC|7-U##%$j(2;@ zjvu_&YcFe7v-kYG!UK8RyR*XUj(2<K9Y1)lFG#Pt`=Va8=ePAWa{U41k`=z*@osP0 z@ut_8m@{1AhP>_FSmAlcyS?L%H@)hE=yfZ6i`+`SSmE0p@Aj4*Z+he3p?A8%19{uK zv%>3+H@)U$T+j24H@)UV=v7DJwmrYCuaSGnCo6ot<K5o0<4v#r2>OOA+>p1u8!J5T zc(-@l@ut^FuUp|;<Wcg)3g7N{x3}zg(`)|$$2(o&fxPYAS>biZ7rpZLDCQk+dV}<~ zFL>3S-`3YstgCfB#plTiPdnc29d^9wZGRretndwT^^fSyR`_PeyS;hG7w7k5m@{7C zj=b&NTH$5Ko8I=%yQdv*dZYA)6~04mK8|%(D}1-(-QK$6i}U*l%$cunbq{>KJ-==5 z+6qrQ-t@M=z8ZGC>D8BGu36z5<WBP03eP*<^j`b@x8qH(3eCH{$MFi^BDY}?SH%k7 z?s&Ji?D*pRehPD@D?E_5y*n$s?s(IC?elZTn_ly2^s0N}_S*9(zDDlFlNG++@osP0 z@x}T54ElyE+>p1u8!J5T_@Y;yuf`p3dY$yT6~09tC10%Yvg6&}X~&yh`#BtMSm8V5 zLGslKuRGrKwvVHE#~0^!2fgY~aC`0f6<;Iw;>ik6JKprRkE3D77w7j1^qCdDLGC1< zt?<0#O|N}nb0kVt>@S0-f4caxYCdc7PP`zG;x&0V6?3wC_2-1s;U)W-@Z`_>`6!-~ zn=Rxka(xy&{qz1D{c3o@{#tm=ejYp<_UAb9lH9%t`Q+aHyp?~5FDDP;6}f*4=A`%O z&+!+)3-*iPHT%Wz?7sau>fP{?Jc=hr_49EX`JCKb0<XyRrSSBA{W<!5@Pgcm*X)-e zpWVMd$CmJt{loC&0hIp;JZJwXydqcs2v1Faj{g|EVE-h%CN}||J+MC~ehOZ)e-@rR zsGrxLgXio!@QVEkczQI=`4YTf|1!L0|0+CtaDPq^FUjq{BA+~@pSRzD=j7^}@QU33 z8$5kze~$k)ykP$Uye1Fg*)jb&dKdYUT>TK9Z1nT$NAR57iC5%7JbhSyPWT1p6zso( z*X+NAXAh@2SHny8KfsemQ2rWt&c5Hii(o}=_lKv)_UEVr;RXBk;5E4y&yMTQF$W=E zvM2E5k^OuS&&kydk+0YfgQt(`&r!F47worz*X$aeWi;mw@RI$G@Z`~yKOCNud-00g z+!gus`2HMoB)lMx;x)Ou2lClt`g7d9;3atwPfqCP!=EFcv)>zDvEL7#K9=U(A6~FO z2ws!hqv6@(`g7Dn;3fOR;K}3rc`u%mn@1pDu|Eo)j{0-rqoudw&9BqcmB>}(R=g$; z;>i=1^B2F~`yxJ1$(^_%kK!BT=1Z7k$-Vd{x%x8lj@*iGkq7aDTvxLGzrbzttkWEq z6VJ$_cusD<g8LWbUc4k%|AKrVx8ghG?dx(xa{X1z*(G=4>WTPzdt6a`joe&?Tte=} zi;f?(7j-A#x~j?b<Kfwpmc30rJVCBQa{DBB`s8K4*?;w~_&g)G;yHN`FUa-RFsCGU z;(<Jh?~t3XV@@RZ;=AN(hP-+TZrlC0;%nqVJR#TLkoA*0@rpc(*W~7#n3FuUzaB51 zlB<71&X8O24e}sv$@RA|XOrBCJMt*LMQ;8ba|&`Vo>+Xn+2`hZQ%}WpmD}c%<-Z5v zp9Zh&g0KDmM028ChfnK!JPBTQd~tpL2XYm;6|c#Ic=Gh+{AP~+Ha<_uowy;7;v3{9 zVvZ&E;+y2^JIFh7E51b@#0zr$UCc?Jf!lrdZWhm<;u(1q&&kdAaQ}kbi<ji;KamgQ zR(yv%h(~h$eazV<cjD?qe7!xcD85E+{tLN;+=~|-Up#-Fyzk-;HMxEcJbUJ{ck%rB zJb2ad#dY`t<Z5y&o}9Ft)8vDAO0IX2%gCL0P9DV_x%naHY>|6$Pp<wO`E7D59>|0E z4!Qmj=2YZPJpD_2y*ZD~e#YlxKMQj8B6za7%s2bizRprgZhnkhM()LPa`ivR7vxsF zBoE?&T>k`fcF3K0B#+{|<mRWCqfW+cd!2jnHF8xWmylcWyyMM2>#<z7<mRRD>{<QZ z(9R*(KSQn{cj6^^6tBq5&oQSa_u}f={q?9{;PW+dE3V0d_&T}%CFU4%C%!=*#WQmA zE6gc7-t4nIO|IML;Op&m?p_WrI^JB*zMVs^evSKA<W{^U58}ylm%Yt={TqCqk~?uj z9>q7v%^Y(qxfkCgSHDHxkz4UC@*rN2>#H%R?)X7_<X<V*?ep;UcAvwU@T%hn??qfY zhdhcWr!40*dGkAbo|1cUL#}?0{06xdx8y;5lU)BV<~VXEzC|9zJ-PV<=4_LD@j$Mw zL4JqaidW=8Jk4>xcK_qqa-EZ_bKuGIm-%L&wQBCU_wO~4JMoM>is$5JAIx#&UVMvO z?Tfr8x8mF6K|GM_{V->T+=)l>D85T>_QxFcg2i?$j<VSwFTO^u4nRI3x8ixno5zcO zy*w_+&AIUGull{AokOk<L~lXv#7puh9>~pgWZ%fWcqCVA$nTO{arHu4zxW!tzAoly zawon{9>op0xgO?hkbCirTwNdevg6Hpv2T{g#fz5fZ`_>^FFM{_54N2{9>gnheGqzU zawo3-dfD5|kK$|O=3v=3axcD4u5N(5A-Cci<U!n$>q9VSliZ0r@+iJV-o6e=LGI<x zsq2m}zQ0@~kBb*C_owmT;X55~_D$Uo>x|@9e3v|ktMPJvGe_SDbJob6xF(O{>*VIf zvj5~>e1lxw1o@1-ony(Z<TuHKcuuZwiuvi^ERT0_{l7!5b8_`Ac>8nM&AprbaWZGO zlV4o7;_4;K`Hh=H(Yr?8t}`KT*O|X`Ij32tmi6p*yqWK1zIxd*-?+M&^paa~O&-M8 z$@Ktp47n5EAdljf+#H5Eo8(?RCvWFCa&>de*&?^%1$hw9PF?QL;&F5_&TmO>-ve)d zF1%@L_EXF2kgT1yoYS}y*W^)roxELVO5U!sIDI+4S*MfrthuE(z2=tK2Tkt9*U8nb zkT>L3e1klQTXKDC%-JM&;*LCuZ;_kZU`|2a&hg}4^4sJ}V@^qK#q*b|#aoj)XzxFL z3C?dt9xjFJzg^~=eGW2bom}4*y@uS0Z;-d^%*fkymaka$HtUSCp7fPVZ`Kpr`Q+wy zSdS(5;+y2^_Q*SOE51b@#67vb1Lka#JMlms#dpZf9WkdOZ|6jEFZo?^btlZJ$*uUD zJct*sTJG~=|KGRo0&4cl;O)=TH*L*%(RW7g#u>{wjXQBm9>q7w+jZvT?K-P7m-Cx- zst;g2+1ApVUbBw%Y?6C%N3IS>ev90Sd-5Q@O|I{PIf2}X?~q6FNN(<mIlJUuye4nw zsI&U}pzek_YvfiuArImMa(x8mlpSB}{|B-E$=S=^g?|X%zD_`M@5S{Xb2dBq#-q3+ zH+M(x7J0kQg1lX4{p$XDw5%t8&C;7*-_9pjN21r0Tk&o3ARfqdia9&vPCSxF@m+Ew zudAb8OY0Y3BUkrCZ$jSA(d1V0>*PT^CD(s~`9pFiUUmGSy(R09;Ce{US+0NK{{U}a z=b)K-@ZNt>=4^HHjhjD3uP687+vM#!+ka=io!_oADf;U%vYw*jO|QBadbi1~cpwkr zJLLM$Fej2b@m=yLu3o=f=VBlJ9COyly|^Y<L*&=Vt$0e_&N1Xc@*Cv(-k6_}JMj^D z6t6qpTo2}>xE``MERT2LAA`5A)6ldn_TfJ0-R|TY_u_$E-52>C@^+mSdArW^-2Qs3 ztf%aF(`(!L<Uu@=>!YxqU2-Sh{yX9A@ka5r^Ooyb?8E&qN0WQ;b#iro<PEtM-yjd- z8F@R$lIsUx{wBE-&&i|snA{l5N#3+P-sXC+pTPByvwsra{=9f|@5S{Xb9OrU#?=Ec zKayMVUGjFFHF>+vY|;!}{yDpo^;8{idP6&(Tt5iwQEyp{QSJJj_!@Z>*W~7C%vmS* z;)Yy382JryD{jey_$Il22<GJE?Hot$B)>%-#S3!tP|Tl@d-3%A<-Rr7iTf0;hl2f| z;K>Ec{Nj2zM)r-|iW~AE-u^py&AppBdINLXfA6k!C%#E@qPQbB55t@-axdQgdw1=8 z^>F03DR0F~@^(%j50c*@*N?#birk6M$fJ0E;c}lB=jF55|BC(d@a&>xzS&Q6EP6M| zy|^P+$05H(ZpA%$5Z@-(kHnln?!<S<qj)4YkHVZ?axY$!w{z56`}?3W%vmG1;t6>W zACT)uV@}!e=DY;i|Kx4U-p19AJdQfvoEO*5A&=q}xj7!aHMtj0d{c(!&&A{MG01Db z;A@``t@t{55I5xd1kBkWcj6g&6t6qJ*oQ0R`h2@uyfsr7ex+Q`9dFie9*f?Z+>0mg zSk74-@8gh9$*p)s9>guVemv%Ek~?un9>urF%?NV}axb2~bGiP-K74841r+QRJbBkL zzc}6}$nla}@r*o(=j8e?WS!(r+>=M~ZF2KO%n9UPe1}{;3HgfLisu(Ek9V;@|AKv} z*sp?T?_TDc{R!<Ha{XjEUUDa1l1K51+&l$yBDojeC09>HUcINkPAk4f9>f!JZ84|p z_+o#)CfCXKa{j_+@S@|*{<wAyc@(e6&C}3ZlY8;xl4bAW`g}U_n%s)7lLv7_uAhN9 z8{|$rBah;B#~1tXO}S1kU9NNC--1^iZ`N;4l;b7$;>mlLa~8+@OypB?E1r=DaZ9dG z!kkTVC+^6j_!hbOOUx<Ay?FY*<@y)<@E>xWut#|E{$+k~yqj{o<W@W*58^qwK3UdD z?!-&-C?3eovoL3e+>1wY^=#yK$*s7$tbe>ge2rW`2Xhi~C!Tk_*=PMdx!%alf5Ed4 z^m}7Fhul0@_Kn<&m*nbs$XDc6ye1Fgs_d^vpMp7S<W5|ZNAY!XlVgq{_u?Dm>iNiL z<W{`wc(c#;hjQJ1aJl}*-H+i##}D4~(9R*(FOYpBcj7g96i@zc+1t!Fe}y?IxfeI& z>V?Q}khed-Y{`S<H_7#jFvpQQ@h$QwUXYu=#+<t2&3^iy%60pp<?%Kieh#lX-t2>K z=a8!xV}A1C<(wvO#Z&SiZpigm_Kn<$Tk<HrNpAi|_Kn<&Z;`8)An(bo_%?YE59Io# zn6pFf#4GYBo_=JxZ_WP4U&(b&u6_$o{(hNXT%RvPZ%XdPGjeq*@;SK`cjWEQ#cz@8 z(`4Vso%l9+6c6O)blEp@FCNL2Lw=XsimQL<?@th4BiAp-oP^wo=N)g(i~hYlF38O_ z@NC-ejWVYoH-C%XlH7||<mwg3*W^}QeYD>j#Mj96D=|ltJMne$C~nBjt1xGS+>2-A z>I^yFjyL;h_uX%?@bn-1>$j56$%A-7uFsVD<W9UIZ(pAwlDDtVuuJZ@FkgMFzfN@) ze2v_SYw{qzPOi_!oRr*&7aec*%^iS!tI7QuJpXuqow1!mZeA_>M()Kca`hVIBe@md zB@g226aDq**UG+;J8?}O#n;KrIhbR}z4!*XdL8nX+=_3K2l1R-7noCZyg4u7`f@#A zzC7N>;|<_t$D8ME*Ull2;x)N>J$jQ*F6S@4FN>$->J73#<W_uxJcwIz{YK2$BzNLD zc@$5=a-EBPNU#q@#~0tf&c*za+>2M_>OACYax0#EN-f@+R5L$_r{wxgm}AJD_y&0t zx8&x{n6pXl#T~htAiqW4zV1pv-oEZi-SK8W)lIOU*{7RNmVf@DZw9YA-t2>Z3wmpE zC!YM%VvK51O+JdJ<mP<LG2~u+gIryJyd}5do8&><k?RXFXN%m4d-5p0O>Qp2oIviy zcgWRSk*~<Dc>0;;zBT8?+<d<U6y)|+@Z_`0{NnnQIT^Wr8+vncCti?8@siwlIbL!v zzC*6wj(jAy;=ANQTz#&8T>2fDvqtX36Y?mYcf8q8r?GE!$D4gK@5KD{^Zi~go{_6} zA)k|5@q#>vdvbj-=4_KY@jxEMcgW4VF(;CH@m+HD9^`9sE1vBv_o3N0e|zj()$zsk z*3Kc<+nAsH^Kwp;cj75|`#MV*dHXs`mfT;0`J3eGQn(|x;#=fFydc-_#hmnt<@y)< za7XMz+4043NxmYF;x)N>pX|>Umh+oAUOXjN??*l(x8jyOh;NeX%VdAZo%j}c6!+xj z1DLZ-?!`-TRm$;Rxjf!xKf^lqb4XtO3Z9dzU&ANl{<`}w23O=!d`|8TLO%Use?3ur zMD7kjz95g{Q*w0}@-?{^AAG6bo8A)njNFQk$&E(7B=_Poa&;%<lP~vso%oR4-WmCv z+>1}h&3%!t$es9{JR0QFs=prlK=_E<Jse(;>qo$+<mupm#o(IUiVwch?^Sn0J|j2c zWAb=+<V$jMBz#65?*UK#rQd7r2_KT%`@(Z_brgI;UfdsEkq7ZPxqlGy=~w&fQAfi^ z<aPsIkVo+;d3YG|HMx2?d~j92*B=Yd$klQ1F}Xb+UXn-g8M%5A^2xtaulSI>Jp8~# zFei`V6LNPy<SX(ZJ}0*Z`Sff3^#t(|xjh>Bf;@;%$>Xue*W~Uv_~7gP-Xw!(<VJi< zu1`R|BzNL7^7sVglUcvl{snwUZk`Cw$({IwT%Uq`MQ+9C<l%+Lr{CzW$GiwWBDbf( z3vzWjd`g}id!5DLn%syFzS-}MPenc>*A_k|4^M}e<oX%#8F_dnJo&eNuRaMrBsZtP zbMh!YA<ticd`0fX=j86Mkx#$XUr!Vtk(-wxUyuj!DY-ut`I<b65B|O1>m2eKc@!U$ zn=_Cv$%FWeJiZS3<UgplfDg%wC$BAnIe8GDklW`YUy*z9Ik|Zu^69tx>+#|va`R&3 z3vw?$B@Yhyn%uq|K8XF^`W5huT)z@NCRbbVlH7{V$ir)qPrjoTZ_Tep58C_BoC6<{ z>({|^aw|R|59cCZk(=}2b8>$^JpFEeJ^BLph}^sjUXVxeDS7?;>n;Y@<oX5h!T0*T z;Z^XAT%7?Qllv`rNv_U<&&d6&;mLpYd(~^;Lvno{JSPw06Y^|=d`0fW=j8T6<kRo> z*Av7?<oX@R7vx@iO77l?d`%w22mjUY)t4Zjk$dqmx%vR|CAkxyk^3p~$q)Ly=A-Z- zd3MJ27Qvj{iBHJ&`N&t~R(wvbE<--urS*u9$YY6oL2f<>pOVK9!E18!Vff&O{a*VC zct)-+hmXmN058dd_>A0t2KnT_`@QP3@FBUq0-lpc@d<hO0`e8Px)MGow_ky$KkBb1 zijT<6*O4#CgZPv@M&xU9_Z|4)$Nk>ovg<D(BM;(Za{FoIOL8whBR5||KKY-1uM;1V z>u(^RlRNPVx&9XN6}c0ill$)@pZ=u39`j%D5qY%>FUZvo;ZySXV|Yz&{s%tzX}{P1 z9G;QuU%<!Y>X-16+=$P}{cn*^>VB`j8a^a9`y8|g=Hx+qLLRS&d`0fA51*44GkE&5 z{(6G=h}`}d`GVYwPsz>VPd${X$({J%=lx#2-@yyW$es9@Tpx&hN$$jF<o*!klV9|E zO#&a1S2u#^<m$%o33)seUXh!d!RO@umhkkK{q^Wu!AIok*6@Pdh)>D=?UAp^^&Q}Y zU-f&<UEvvd5FeBKdm~?x+xx(0<oR`OuqaG^-S73{LvnKq<a2T-J|WjfB43eP@j1D= zC-UiU`s=acBXV^w<O^~uJ|%beN4_T44}cHm{oe9{@Qgf)kIBPBkT1#gL*X-W_Xv3M z+kUS)7Ct18;yJlK4*3bWIRRdg2k|+1d@}Os)&2Fjr@%+#_Brr^Tt62+B`;5b*W^)r z@H^^#1@akr5FeA<GmtOIgZPX*z7F~1_taa!hvdl{;W@bxpOEV}BVUm_@i}?C5c%|f z`|Gh6!AIogt?+`}iBHMnJCU!+?YrQEKlFReHasKu;$!mg0pv?^Q^IHD`f_-3O}{sa z56R7Ekk843_=H?vfqX^o#pmSaO61eU-w;^-eS`Q#_=r5O;03uCpOTyZM7}0>;)8wm zS!_h}zWL6se}H^O?!?FBzDB+zH$Q{V$g5w#lYRTW>X+~#dHfALCpUBWgxvoxydu|s zfX~U*HSl!5{(6k~h}`dg$YQ?=a(w`NO0KR8ugR_WVE=xvOOVgV)eYfe@_1`_N$zh0 zpOLFO!jl82SA0kw?}B_zZtn`8kgFr$6}i7Vd`_O;1D+n(Uyl_Zk*kLwUyvK|DS12w z`I_8pzz5f%-bceTa&<g>OkSJ-FUf=WjNFfqPuBXq>Iv{6xqS*eCy(M2^6*sTD{^Jw zb8`DkczWIbdZPG<Je-VtL9U+#pOTyB!)x*&KDb`L*Po7jMs6K^OzzHtm*o0v_>A10 z2T!iw@6~UD56Q!u;W@c|3w%OeUjVPj^@Z>`dH4W4J*dAPRl-N){_o%gx%v=%O0GW+ zugQb>;NX65_DSS3awk3}xBrBENgl*!<ochHPj1lf_2NTvcLnk}c@UqF>k9db+>6i2 z-Brk^hxFGI#Yg1oTgVsWPJBvk{~P(5T>l6@Ncz3**YJ#7{{}uLcl#!b??)xM-VZ(_ z5BtND8}@tcf$$-@x&b^V*WwfMa8u+f@+dwhceg@5y-|NXUVKDu?udLrZpEkM`b^|& zaw|T#alcpp5c!PUijT>?cu5|`XXNf@n4jFF-|NMP<mR`?=j2v=Laz3?;o^Fz$hG*K zT<wc|dei=TqWFkB?1y|o?)QgJ$<_7XHMtWX9NO=-*GE1h_u^ynTD&CJ2Vu^PJlq(b z+^pXl#fRkX7Rcx1UVK7sZjXFLZpG*1>aNJAgZ_H7_=r5d2Kj<qzZO0vk3WIe<oc)Z z!D0PgE1r>i@iDpi4d#^OR(wXTu0cMzdB0bS56Q!UH(FfJIe8SHkcaCaUy=JY_?+Bb z7oOgtzaD!%_=r3l0x!r-0-uuW8^UXHD?Yeozqb_6$fNj}+#QDbCAk-$k(=8hpWLe7 zYsH7;>Tu+9axFd~4=M5$c@&?M`!^t;-nze@C_W<hzeK(ukK$8u{VU{aaw|T#O}|(D zFY+0=79W#`{cnu#zvNMTM(z$mKGFSNFFqu92P2=8+Z(_q<mM1~MXnS0oZQ_Mp5C^< z9(5>uL>|Qpa(y%8r{uYKP42}9x9j(s+h9&cZpFvs`sK)%<W_t}uFgU}xqZJ^ix0^| zfqYIL#V6!$f_z2p#pmSqYUI;9^w;CXN96WNH(6Y71-TcWl1K5HTt69e26ycDh7;i# zc@!U$yXPQZl6&zPxp^V-$({PWR(wdVUWR;5uEi(h>Qv+_@+dwh52qoY-nqXXe>!|b zu3iN%$es9<+@67aP42}9>;2wZJR{d<V$PU6oC7b(qxg*6*T^S__j{xGklf9Y&&j>` zgxsi`;@6+#R(wvb){sx{(qE4jACbqCkuS*gv*1(m_yu@PuCIg-?%MCQ;u*OYACsG_ zFsCH9;xlsfE##BC^?SAWkUV@3`J6n8PsrVmkgv$S_?+DR82R*w{(9{Hz(?ffC-8z? z{}etYcfW+!<my-O!QK14Q9L8pzeavco{N{{UVKJw{(w2jk^NpPJ|x%nQ2hFn+=@@g z)h6;4xfY+3hf|PG)Bbv*_=w!S82N(Si%-ezH;}K%z4+iB{a$<Dn=OtvBlqHC@+e-C z>!UDdMjnoaC-?04M)4uJdj#@1xfh?1o5vtukz4UOxq2e<>7Vr1qs2$$>Pg5K<WYP| z9-fSRP41rpAN*;*SDgsY$es9@+&&ZelH7~W$ZPTBUj1Hu66Ora!*k&|c@&?J`!6G3 zkw@`4x%)cu>7Vu2<Hbkh=G({@<W_u2u6}@gO|HcUf8Otn8v|Vb<oaRoF?qZcUXttg z!e``GJQ?<Tz4(yad<b)Law|R|S06*ZBG=+`^6+Wo(|h;V6U9g5?h51!axXq5cV9rh zCbw6@2lwgsnlHjLa{VRvnB098UXrV;;4|_lp4_+JtN#`GA$cyIlY8+Ax%qd@smQJP zoLoQPu*LP39@Sru6(5nSV~{V%wfK}gJQDeuJc<wQ*Y9<YLp~$-;$w0<MZP5W;xlr4 z^P4Y@H@Sbm*NYFyqj*lPZ-F@z@^CwNMIOcH<nAuWrw^d@h>yt4J&`ZSt@xB&-3R%a zT#FA(zgOKC`HVb@kIBPP$d}~)e()K&IvSolu;1&%hvfFb$mir<d_rD}SLFI3m@_92 z$HLPG_16={N96u8<O}jBJ|%a5k9<w;#Ro_Cd(Gv@XXI9VOs+nMd`YgwXXNqDx4`xP z;C`=OhY!i)S@4`(pADaoTk(qAi_gi;8!#t*NPj(6d_=C!N4_A};#2bQcI0dFC_Z>- zzt>%Yd`9lY$K>u(<V$k<UiggMybqon)9=;qhY!iahv7MS6rYg$LvOh_zZH2DpOd>= zBcE>c*W<-U<mOJu7vxraO0MpXd`+&!2M_D_#@8XAk?R6JCXYXZm*o2A@EN%kPafXy z_2NTvb2aAV<W_t_uJ*kZ_Mcpf&&k7ekxw7dUr!Vtk^5&OUyw)fDS3Df@-?}CE_`ro zzt=qvo{`&A;A3+2Vt7fe#b@MkhJ12dzgK?)J|qtjo|8xM3Ax)vz9RSHb8=H7pFXm` z9xFZ~*T>&_aefPOD?TOHA4a|=x8j3G^?SW|Mjpk-<nH5`Uy^(A8M*lk@=4b3wc<l^ zeW%+jjyET_;uCVcg?vSB#pmSaEacNi_t&G(hL6bAtKkKC6rYmk=OAB`d-1{X{oeHT z$Y<nMd`zw`M!qCB;xqC%MLu~<zgK@0J|qtxgXiS><M0W&`xLw)SD%K@$)k9B0<Gtt zkROqUufYp)^>z4^+<psQlSlEvWBa}4yU1tcL3~V}eINOf+=<V~lU?MK$5F5NkUahl z`J7z;9zG!thiE+ildA+iC-*mkr;qQiN8K1cBDVv0K_11Y<l!*nYjSmS_+ZrU^+&)n z@+dwgH-CbBNgl*!<oe#oCr_YW@gaG76!JN_6`zpT_eZ`W*AIZt$;0vR^e_7BQICO- z$o)z1f;@^($=%7w*W^)r@Wg(vIR*KQJcy6UeU5xd9>r(m?ghvvPwMvu@gcb$BcGFd z@d>#)4f%@PiO<QCmm{A(xxXGGJ|eGPfqX%(UJ0L)`!~aD@+dxdO25~=7x|1lh>ywb zWyqK0L3~E8Ka70x)PAoQACkL|AfJ;5@d>$|B43dQ@j1D^9QoAJdc;TM>NCg}<W77_ zo_rqpn%syFp4RWJ{u%j<TwMVllly;%m*i1=M(%!weDd^uZxA1n+g~D|lLzq$xxO0t zirkCO$=&aePoF{S5g(D;KOkR_2k|L+Jm9vfd8^6of$+hJ{a$wnJR{c$d`w>62wsv$ z@fmr3Q{<Cp?z31|^S=4H4=+9>H-{silRNPVxxOFr6}c6klPiOKdQ!8J<<GxZ@ez4= z2=WEFc_@5Ju8)D&<W_v}m;K&wEb<w-ISxK1w<o|$@+dwdS5HAc+1#ghyk2}ro<0rv zoZN~}$m?eyUy<t*;dAovVt9J;KE3s*F?>YsUkxwFqxh8Eor8Q$9>oXG>i4?WBcG8+ z@iBRRF7hS07oU;43G&Ia`@K<oNFFXkJ}1`~!6)SE?eL1+iqFZzyOB?yvrljT&3oV@ za(fxPAdlixay3Q1Cimil=k|Nkk0GCtTk$b@{R!kta(y{`MjpNbPoB3=?|9X}z=!1i z`|zARiciShF7g$56rYp3A0eNfvQKY4QG7(6{{;Dh+>1}i-OrJ)$)orn@ArmZBcGA$ z-@wP@>UZ#x+=|c0-M+V59B1<Uey`dOJ|x%IgXiR4d_o>>jC@6IZvvl_*N4K>7xdSo zZw4QcmxsX%@+dwfcSj&!lLzs^U-f(K1Ch_jz4(~iJQ(?s+>6i1%`wO)FYNbv@gaHo zaO87xD?TANk3_yA_u_MMcRcdxi~8${;v@3#IOGd*{doA4Ts;w9lUwn@U-x^1MLr`p zPlJ!i<I~|KxjPX)BTxPkp1io<Ys81-@g>OT<oc!X33)gbUXkn5;B#_wCOjSY*AvA@ z<oVgi7vx@iO76}<z9x_2gTLwbnsbrQ$b<Np+@FVhNgl;#<mLk8lb7^+gZPl#zYY1E zTzU9}T)ziik$dqux%&w6=}Y_TF@Fyqk;f^#AU7X{Ps#mf;5E7VEPU{?esBC7JR^5I z@G*Jv1$aqr#AoF3KafvO?f2?$!-wSIJMf%be-}O>H$Q?`<WYQ1p8o{-^tAqZy!eRR z{T%s%Jc>`r%^dlfJctiYr{3QppOHuLF}b-0`I0<{&&d6Lx5xKi*Y8#P!-wSh`tY3G zi%-biVaQkH=H~D@xxFnseR+R9QG7&hjzGR3kK$8ucO>#PxxNQ{@VEWm^bhci+=`FM z)s613*w2#Oh|kF5O^{Ds(eE`kg%8Q&&EPq?8Nesx_O|efT-^>nCok>*PhZ(zPY@rG z`*q|Ca&<U-N^b8CugRnM;8oOnB=Q-#O5tPj;-2u5Jc!T8<Gqnj&gl2r`@o0fW&@s+ ztB1iS<jJ9TTwD(oxe=d}$HS3N&+M;9-vvG*4|jtX<oXEslsp^>ugP@^A8hq|&As6n zc@!U$=SLx5l6&zPxiiQoXZ3rd_>kN@6#1Myh)>A<G00csQG8Brjzc~@yT6_wJ|d4N zAYYK%$HJ%N<{9vsT%8CXyt?08oCMFvgZP--z6AM_+>6i1&8f&Iuj%)C@gaFQ1NofX zo(Z3j*Jr^ia(y;@POi>@r?2g=$BK{0!yAz=$j!O%DY-rmUXxq#!8!fja6a-Gxw!y7 zCf9F+m*h@-M(*E@eDb<}uYM1FNUlBt&&h-Mggjo3d`0d)37?b4E8uC-Uyu6&d_=Cl z2rtOPm*7+K>?`n^+=&lf-|tPXLOvrm;$!mo1LR9`y$hd_hu^`IH}ree@8Lso{|9(Z zuC9Sk$nE}j!t+0Q6rYoa1CUSONb5NeJ|ZvH;01XQpOVKzkgv&Y0w0{)?=`oEXXNTO z@G*IDTX;zx#AoE$9gt7X>-ReGA-NtRpOahh3As8J`HI|#&&lH>kx$>$Uypedd_*1} z4KK*e@$e~mbppI5SC54c-rVnvBX~w`o&X<{>nFoYawk3`w@*Vpne=;u_>eqqBA=7n zli?F`m%}S^^?dl8T)zaKzJ=B!J|fRfMZO?+;!|?{dgN<zD?T{C->c3=J|nl{V{&&9 z@+G-`D||*?dU$d{zc-2x$-}#l&&l=0@CmuQ6kd_5_rmAoQ9Qk{zaITQ<VWQ0gYbe} z{T+Nt9zO!F$<5!x2N(5w?I++Fc@!U$hc6&slDjM6Gjjh`c=FbMuf7UCBzND2=j1xV zC*<Kf@QU1i4?ZW)%R4W=U!-sAug8mz$jxVvFUXzvlw5xv`I_8`4}8B@Ux9o^?!?FB z{;SBB<mM{)jJ*09Jb8P+SA88mB#+;O=j7(!;1hBm;T5_54t!3oz6(#^(O-`dACXu8 ziF`q>z7L<0>mS2waxXr3XTR57jeJIKeg_|uXFKco{ReU<J|oxPLOyv{zt@Tn$<?=! z&&jR$gj{_W`HI|%&&l17kWVk}uSfqFJ|ZuF0x!s;_>?^S9Qm4D{{lXEcfZ%o;TgI5 zEqqKK#Y=L1HS#lZcMUvwPrp~G!x!gqNUpB~&&j>`gxuW}`HI{e3ZIi#19-Yk>p2WQ zA}?+MFUW)Vl-wSPd`<4f2bc7F&C$qb<W77{t{;kgN$$jF<na;6Cztkn?XmD7xj7D= zlRNPVd6FStksI+jxqUqH>3jR@iQ*&j@J!?ja(5DZN}ikyugQ)0;C=nx>e<L=<mx%_ zF}Xh-UXn-g8M%8S^2z)Ay+M3PZr_A_P9DT3<n}GdSL8u_PM%$ee0o`bJx+W?Zawk^ zc@UqH`*$H<ldFs2gAeq3<2F1aH<!T2<hF#D<WYP^uBON*Wxv;n56S(fkY7AG?Y(R6 z)%<;}@HWUAZmxCZ0eIE8W!{KueEHgZy+780XT@dy_u?t#*A75_NZ!7lY&(D7y{{vQ z;GasqbuC}qAh%6m@9jj~s5W2k2N;uw{Q<8bPYwWVlV=A4t|YIo1GuHEtL>E^ds2ox z$B(V3P4ZG)e!Jz`_2;+2{3++fWjX)n8@+eWX0#mMwR4PobW8kp$+g~IA1yRL<<@Ma zX+dtaJ!0`uF8g_-z0aDS_PQHLuKCq<<8qorm3k8OwqKCb)_$t)w)asp^Z$DPKij)+ z(=V6L-bZ+|(!c)c{^Llu0lB@$-t8Yd{^FT9{!$j)9DlPFeEdi6*&jQ8{{!@H$m4o1 zws_NW+uq!N?}I<qZ=Qwz-Fr0Cm1_E%OO^YdxMzQ?zkc&w_rCJ~pI1KrkK4=qvHtZ7 z@4mSI_ToMIue<j#_dk2jn*L^e-M4gte%HmlkK6mVx6R}FkKMnN`!~;d-8VTMi#0d? zs=fc3`?t?mjWur{m;1}Z61exi$u@88?Kz!~7hjNf-;n!vt@*gUU+eD_<LfWV{bzKC z_PE>ozjg0}Keqps?Eg^i-|TPmO0ezy+sEGx_lzGqd!(l4WB=dZeA0QN<t&be*WSc8 pFTnl7f8)+K-n+Sc?*icd=9>6p{p)8mk8GuW_Kn5OwePt9{{f4g@dN+> diff --git a/lib/linux/libvorbisfile.a b/lib/linux/libvorbisfile.a deleted file mode 100644 index e39e84bffc1e3b1e1090b2995469d50aa4224c4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32804 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ΝliOIhaI88fYSb%=Y?9=Fdcf3*Z zqT#%wf#g6FCek;C$~?$pdYf@lNGEMLDKhMh-VVleo`=pi@N-nW(c8_>OBwTxTv@&E zjsxdrqxYzbG2ZCi%c;P7qjx_)2m6iQgZ!M;Ahc9t^uB{)(TQ#&X-+IME$_8(rMAy3 zIR>BhhGAWl@<N|{yjJ*Mj!q@Nl_ZTOX(VPWpwYW<;Ctwd5DW-vN8cZWhIus)(X0x0 zZj}e3<Cw)7_Crg^zo)ONl&i>!Kyt0ah+vEz=V2=19I!M{s=-LQxXyczL8&4rjkE@E z4|*(bKxoUE+AA<*%bU%}(Qxm3PPq=jH_#<ah~%2<&~@ciqiSN^`%@t}c?GMy#<XUi z!SFu=-}wR5Ln?zuTtaStAv9qvbh~{$#`@jlx)kSUz(7;az~H6dL4)&C=meq9ZREI= z`O2{F@t!tdkHg>=KUoyt(E(a`nLn<(ciTG9#unSF-HD-Cy<xA0BAyA5rHW9}+PQ5t zND>EPJ|p=PTIa|+Jo0pbmC+yHgfBW!Lw|fTI|XjvLnDI*LVR~odOc)Be$EUo>H3%m zp;^+n;auG?_%M%G*y58`N@nsOsLDk~@<&@hDrWHpo2|0q!%n@ER+8~y7vf!Z;?TQp zCK=iMCqtOS10^58-O;q?VZJK_{lm|mG4yMDBrn$)eF<yE8T}&m9h(P-uz>`md6Apf zCd^&YX&C_F!xI%)f_Cm@ia9)R1QmtsayJE$oe_YNeV*R+G<gsvn9!}fhqZ|xIwrqV zg=m%Jq;;LV?a~uh;dVOSBy(lr1g(A<uNBH(VG+_dP%*f4EfuQ3%IdfYS1AKG_)p%; zJ}k}nk^%j^j`g#i_&wUp95BCgMlWPN%4ne+87_pZPhUH71{$QvsEG6#j(<J^ErNh_ zxEXAihPR<DTDEpEjQ}NkFV<qwkUbwN!!no#cF2B)?1S{$#inVyyrw+4@H$$uKwKko zz??c`f2AHi<{M&qfF!}>qLJ5*820=cEG*(X9pRGQaE~sEm^IV6%;AQsC^Y>0W0+bZ zZA>DHDwI)`nQ!ff+!#^IGrf!s4H%K(AZ0eXE~8$w=P$v4o#l@ffj_DX`4L;yv$ZFt zzFGd*pkX~vwqrd`O`#BuD>JiPOML)xK5yD^vvzBP3D*~>@b&N+s_zechFV0HVaI7^ zipPnW!?5DSI<=KC2tXQP59F(uLQ;?5R@z>mHU!3yV6@7hu1!!A(*-FdH3-{d_5{Uj z!}*A!oiq-{**Le;)H?D=owfMuJCHiZc=7o?cxO79^s<PA%P>9+#05nZAryu%6Hd~* zo<yS%ERsjz>k!Hh(17952#qMpHz6XKG<BiZ6|%2_))(x=%9Li{_FK$I)ax=M!)R}~ z_jq1~?^L+=SYCZM*(YM`Pv$w-Tn)oM8^km{&z|84$9KEA{mh!W<~JaMuR@Iuh#;~O zz+70RPSPKv#1agqOi@W%zf`ISrWnHFG(P-!Y##%d;KurXa;B^ntdhSGvcFuBIMn{H zMg*MANTYWW6ZUAHnVgZJc85#$bVF3bxmNQHnbwJ5d^cM!3OTP@^KO<DA^Q@n5B08U z2*?y5)kAIP`tiL7RX{JK6xNS_mOirTQP<D##?&ggrW(AI&*S7E4iDUd$vQrKE>^<x zCa%~(#>v24{sw$8tI>i=#(&n%-V;+g4@6&~Tev}dNlw8aI)yVnie)GmM+YSRVM?)u zXwJENm%6@ZiAyOQ=6}8OC1}=2?nr0pjO6p_Zo&B$+-3@<kwgK*#P~x2O-~%6V)jF7 z3}HW1qeK+h(T1Vi!!lCvoJD8>#_(pEe4vB8k^MtR16YTj+X{r&6Bz2x(-ZHYMx4Rp z{|IN+tG=GzlyhjO>qFz2SlQ6dyx3LocO9_;sY6;1?dtBE06)r=%7FU*38*LDp9k9L z>w`z=k^wGoh;FB>W(OhdGhr97Ki?_df2QL&Mg~Sj8511IB*Xbob2z?-H^h&?2l`oe zP^wD!n%}UYj(*_v#7`iK>35}Wg+X$@eNK|b@h?A0QBt+Oo5>eHkw+q?3J79HIzIz{ zu><HxaB<jrgHon1vqZF9MHfMxroGI&BziHe&Mth8rWfQkMqbB!NO~3NG`NyU)Xa>Y zKLjP$vjgVK_1q6^l%As#N9*f?QR;M(vN3+D3~Q>9T;VaTAFw<EbY;a^h8j0(aL)P~ z=ZMDRThPl)X>h|)ENBsQ^4Y+&Fl72M%!R_!H-d4bA|~{gQ{<;@FT<Z5bk<)^^C9Q8 z-6K(ik~|&|ro5e$2axv<77$`~fj-#k=N%fR_orxj30k}L4U{%8$QNyQ<1D#04}q)b zW0ouhD}?232r(YtK%^GVunuW}yPW35EQ?6;eMZm9GeI+#NcN+=kwI})74EM9Be24H z3hel#NG+p>1&D^Zc3{*+A?wI!mkT>H`k_yfgXfe;iorh2!=vr*8ki-wKV)<qu)%-% z5$pR-m$cVWcKAM<Ogk83dmZxv6L?JBy=^V@sl?N%yJ>dK#0!Y24bx_6Len0{Ij}D? zd11{*l$T^F3X>)wtmN71-n1xBkEA?7&;cSSuJZV9gPa+T^ms5La|6KCYqxrB&vp9_ zz^#n8zeDi>5APlA4fXn+`;7h`vIfL(-`|XT_4@U1MHl1hI~1@R5oGHo@4*>@@FU~T z==Z&5l<YU0a~mjb3s4mI7}3%9X7+v8PQ-DnZJ?Oe!~HMnAPs$ps}4|U_ML8fZXj_W zSv8_R(Oci`?^`q8dc)th_H1IP?c&aT(E?_ngU1Cu&`E|pcL_ZxuwAEj8TO-OXPNZ^ zmM*7FYngW#IZIm13}jX@4x}@w^7bq3+ug`YeHk_TPq$A7&tmX2z!SdWwA-9YERGoV z<#;I32(`n3@Ks5DH(VedF}&kDB;>K)h6N%|%Q^&^N&mfpb%TSwFs4pw9t`i#kjG=M zbHnXlW>=6r7jt<kY8*ppiN=(M<~=UY;hgf!x;L<9aBxRj9vNSSt&bM5X>a|>BKSA^ zI~@>q8B}_8F_XH}>jv!WiJ!$P=?WJG+H>989)R}PYGo~M8i^r&!+6{>X00yTx>kRz z0bu+rW~Mjku3Qg2vxOM;m$#uTOA+G|6KrNu<@uX|hfnYrmOI9uP_I%{-HcQ;n|emj zRHkKyvNJyE=jo3Xz#p)O4uv#pA_}Zh(pPu=9`#ZPiNT|9_%bNc<&L2ov8!V2D0H`a z)4}_zXoX3^d(U%j2ov`EW0O)l0kXKrI)i*d$d5RaloIyOzQ{<nxMRnyS7bEL0&rM| zf#FM|m(_s`3(_3CS=K8IGHfjW?a8n;(<|H?`7FafsW7Pj&pzH9>E>A5s5~#4mR&R{ zXzkIv&cJC=DNjaIw7@$=aO8O!_DEoy!xu*KaV)3%F?BZ>@pYw|-boK^SXstD(Stnj zhBujZhxE=nrJBD=RG6>=Jjq^)OZz8`F&0(61IgJlDW5Ub^(nFw`x8U$Q{wMCD4&3b zfW60DOn=UWa-DTLcBV2i;_ER>&hi{~d0R$sC0(E-3&6{Mf?4P?<HpI%Wc5UXgj&Cw z%vqTR#5l!cr46j%=xka?2oK7i<{<-}RwOi)NP;qLBWs|x)SK|)eEk(+ev`S2Su^&p z$v0+2_q+9t7lME$nMv=0T4U55;KH>Obi5wK6N?JRai*`tey|K$ucu~b=vZQ4GjJ9F zTSx^`X;?+-3F<a*{+D;CS7pzq#rqw2q{{Gz&tIANnZ`rsX{@m1*h~FAI3Wqb7G1uc z)HhHlLymRWwYa~Xk5VyPTIFr2W~!g+m3+A6K_U+%VhNwrD$uZ*FSQJ3j6mpJjjxfX zp9@Pz+Q^2#ebhr<LMHrSxEP<)2G$&9xzx-f7rm2aRwMpA1x7GXinDz~&!H@IJ8NV= z{dt`3k!leyV3k;o)H)BxTbEFt5aYn~PJ<2&dokAbeT4%L97CJ%K(HNSZwY%Y0(M}F zwK~h$60r&U_84{*&jz4JU^NIgP7LfjPL8TAhO$Ow<P_HS6r>$CD7!>Ll_Lj>_F+)7 zuNt$Y1~a$Eh_|^ZTL*?#6?X;*TErqTGk^7$7qKqrFK5qcBni_l0{CqmxI5U#F5%X@ zGx<7Yp2M2x7i&Qmn-aoI*Z*h-<RXP3YZChleo4yoow5e9(r(=Y^U;AA_Iskg&kCIe z574-!NrN6wp@B5~p%ywZ$ho@d42`B31!u@fQlN4-f*Rr%E8r&Uh)!m*p<%_=0AJc6 zP7B$0xOr&D1w9bEG?V_w(4xJE2e!a)nTXG4i}=ItKNVkTgZ}~X73On<79ShQo1j5V z@02b@o|F#?nq_uHZ}jaGM$yk;CM$ZK532KY&iu+RsM803kLQCT{~;#ly{wX`w`e;N zFm^(Zc$}km%|v_^vhQ~Pg3ru{^v<a?s@N8V$1cN7>IvlA25#+yUvmSn=Ldq;-XI=6 zhG@X)8_r<{2hlWSm1-P4$cWhs``qD@H%&h>6>H}tLl=BTL!k(>(==n#;9rP1nWzxx ze-6q@|FE9?0R;lqFrH1vKOKo3!B88<q&E%m9t;XeDOaC~JO*l+&x{2l3p^Lt%X-}l z>}kEG)lZ3b3UJHJl3~M%u~+FoNhVaPcQp}jCku>`a|v6Bk{ikR7Sa>BBc^rAOh4_K z!?K9PywsQqCUm)%E)9OE-_^??#IJNRttXs(7FvPRNhauVnc?3P))$<@@I?l2Ao?Xf zwg--q^W8*Q;Y1Oe`^pPVJSgix?{IyX*1K$hc9@=`9{&xf<x|va$v2_khJOSxrEAb8 zG5ir+7@OwJa{2YnpQ78)V7==#P*LrJ|76>IM!lov7we!x$37#n4|D2^*xdjU-Pmb5 zhFMR;<F)A<cY^~n5@~3{3Z5l{$Ryp>S@abA$NJr5Vl)z!2c`inoUCv_0c+=Cm4$32 z@mP;%9(c?Q&*(peZ4d*rl6(1x)Jx|rkkQ(cqKrD$SK(wO%BS>=^ZB*O@^kVD+_zB- zV?_jovAqU#xtUs($-@8OEpUdLeKv&7n-=o3XiD$AoV1CN^fXk=?vTF?VL6S`WTs_E z*7Yc!!xDick3!Q?l&DTz50<3kV}0WRYAZN3(}dEkCt|SQ%rrSV8bkVcSd0CVKhT3z z+YgV7P&aqzi4RbW9=;%a4O^$eY2{Vw2DaY3Kkzt6g+-BX7CSBIsdxt%VBgzrVS{V2 zCE-L`L6~PscG6Sg%|wNR&bRPWcD_|P-zLrn79T`qY%9z+NvuTAgWspU6nf_}bea)= zfpajeqk88<WZsEWZHU46BVOinAnC052C&mRCldkoJfvuY59J>@0nNThC%W~{o8X?w z_AqdV=oF5l)PyFCl3ru|ry*nz^vC`ItT1kA2xA;$oTf%7BRoa3el4wndU-qKPTd72 z>HabOkwQK32#ROyk+@*r0U2eAjI!)))JlE~Qxc6>%C(0PZas-A$S0*%A^FNCq0~7* zA**MU?@Qf|+swnH=9Bzs87uuq^^G=erlxa|FmI9YM%X$z`0i+ZLB*GjLP(H3q<j`E zFr8tvtYxiceD<UgxGfe#vEP9*GC+ebLBW;mf3~xUG}HM8KnxEbIxS^_LdLnu!b&W` zQlF!eU(oU^MFA#rCaG_;BDCKpoo|=>UfP&&BHuHc_4eU`_ppfKP@;sOq#c0Onn^aU zOunfRrcN6a@T@+-*AU7Uv#xw9C08G8ZF1fcMAS=5j-#N)J_0@QQ=DK=WgBG^+4fHA zYeq=j>)78roQEe9jy}`>F?M8um@?raB}7Xgxpj!r?1k9wz>3oF4hZuIT5sqZ7C<>R zUm0N*^z92JUAI<7dge`a^&w*0n?SG4Z_~T30a^SHY$el=mCSJ${HN0#&m%-X!h-p2 zvG>6+^*OXl>9Q$^N_V%7m6t+tT2Iijl{=J--+ShD*0K5q+TAdES<(X}9rq_j-NvkL z^~FEMBd2GHC-wng8H-iYtglBeWAOzRtNy)uXB`BiZJf9fJIT0n*O~E{qjnJ*n<%l% zA0ctg!Svq3Tu9dZWoU!CoR*|g=P8~rgIziLg1w*TVS|F{Y;7~G*0z)%b+h<w08LEY zh|<tcrn^%6FsOP5rXW!1JWgU#emyg9!N$nql<A8JgyC1H{|rWFAg+3C*uaA-Kt=GK zZG64PLZL2l;*1Qw7!J8)59}iR+BwF;jGV6Yf4t^q+9)j6F2oR<e2JU0ybX70if#Xi z*k62j;1Q;R_Uovc!6(VyL$slCRB4FAN>kBP46WUc4-AP%feft%pm)BC;fduK4Rh=d zTNLEGem_H`O&h7>>l)y6e@k7zqXU1P>l%YdN(Fp}u(SFm-yz?r!Hb|r+D#JQRTjj~ zhd}!cs3q)N<86RctcghYy^R&-^J`IIYz=JEZ5`wjzRbfB<~x)|)BYAuLP+h5OBgdk z`msnDb9q}3lMfRLg0XZ^Eh-3OO-J4azU(+Fmzs|Y;h%ts2eG51V3MUGpv%f<@+4Jy zBZ33z$O}=K)?SW$6q+@g=kRVq&McIiJQFL-8cGdD4p5Y5?nj7v-o^pCGY9#~`}RVF zqI$i!7poANuS@h$Cba#ie9pnVHFBDhywEUf&8!sx2r<cv<mTQrM+ToCoquKPUAA3P zm6@J{>s|C@iAjw<$0;g8W!KZKM`^1aT7pCu`n9M1j^GP!AgI^nW!T`A(!bjkHApuu za8C0eTZrc`h5m!>kOhP+70E<|Xf7{j{lF_AgS;-U|6p_hPALBrIRv%*4iz8)^!xEh zQJvB6*=v;SGMx7!5nRk7<oPhY-9=|8UJmQmzRax!j9Jutnq|A$B9y3vDY5k6;QOQU z(f?l`qxC^+MUiwDsqpqn`_91Ng`$7);P)cmkpGO{Mf=thL$H_FASGHKM{gy1x?>B- zyw5jk!=8g@T|MnO^@sBO0XTkxf$ZN7>TP?mhkluH$Z+g8UL78Mjh=TS?`_|X{YP(L zR>XLj>UvdfciGGAURV??o*Tq{doh5n>!nAsh+7f|*m$|tv~S0Ajk#6WkuXI5Fl?K> z?(oz}J+$r0k4FbHURgItBkvXF26J$(*C+3**T1>%LskQeBlz<I)+#8B+)C;)=1w}v ze$x*yCZHjOyU-p^pB~Th0SDc08{<AL;4x)1;yHo!M|y5>nj*hpbW@oqiZO!)B0SFZ zZ0yD=h!ZuMJr6ZYj!>%*L6)-zAq$Jiv(S@|UP`TCB5Fhsf(Ho2CeBLHjxxv=;43wz zS~)GqZOqs+hB3G|e#+6dDjCA=uuW!i+8%NTg9Y{7fWz@qh4FJE(GcpaVg6~sRBv%c zqckZo4;A+Brh&cgmqz3ip52HoYe$js{dJ0V&2#<k*-JW|fj>lsve~4h?(}@Xy>1EI z?M=R(S*rtUuQVb^QD+_uiHAaHWCv*t%4+yfu}7}dy!I(Z<WaV~9kXbFl>-m#=CY0& z*1ZQ!Yvll&BuuLgEB+Yvai24-wZq2xlf(wCuh_QCNI$-)*o#LOY`(;!^Vrt*{DIdF zv!v0kC?@Sid(&xS>!6-!VIdRhu)*41Ibhnc)26+4cpvPA^^S~gSTMAU^%|l(igpjv zo{Ny(>SAEXs(V`hS>@Aswv2QF&6`BiZ&(#ug0J!50Oy;+k-qJPq?@E`&tK4Y{K#pe zWVe}I=A9CbzjqpeZ+mGt((gNf-91THg3)|}AIuzab%Tz6buq<=zY7&ie#waU;<o~? ztUHcYZ84Iqt_o`yyKG6~AODs;%d6Oii;+cJk%ii&Cq@uu(9LCUb9Ly6QygIp<*l#{ z7n3_=Rc>GiwaKv8Zoz|dYfn&wO#~RpSPxp%&8Q#&+)2fz3hQ*puH1n8Js~T_7BmRe zL)KZtLR$NoS72=qqE1$(`_JrObYjl#T}0jc5f)6;!YF=n@n?50?29#<6oP)hiWI@_ z|1<sjDrK4M*qGg$K;QEY|G(V5FTJF8Z+$oS7ni|bT+RK(#pEw~k6^#>+-CB}_T1*N z{KFTee~_dZe}ZC}=i9+ME9m!fBFvCW*fN{tys=g+!h-a2%5)YYDxLPq*;Aj#hw()7 z1ctns{5cI#`spA1F#s&)4-Y)^Yql{<@7ziAFDA~X@SWaW8GDmG97|_CSOO@z6TVyT zS_496PBO-)glC}{X>idFuA)l)N7&u4)95{WYxt94(|=^`C776z_o1L%@45x0Dd~ev zj%`}>3d)2cp}x`E!R!*rMf^YjzX2Ip=xw7smm742*g}6TieUqYV;hFm$YuN1zoVhR z?9cTldi0<5VC{3c-gy-oiN)^a*!h)M4{{S1o(0Lv{|=nB+i3%`ZwNmVVqtag-?WaA zksTxJWL}egCv&RZO#6TQW)QzyDs<g|-xKxflY8`U_MFkL+rR!Sl?&?TtLx8FVg2?u z9WQQJSfTZvb>j<blO9Ldzh_;K={SccFfP;ocI@d8{j%p1)>7d>#NI?CQ>|XsO5?S6 z4aXgAq?KkZdZEpqsUoA)Y&oFNBk6pZ89738E7HNE5}EXTeDIi1^5E}CQ=^(+aoIlE zbl<*U{GE;+XvWBPv;g5b-!De(zxBNKPaNI;_}LEKd^3J_oqqcpA!_+Jcy-?7mrchh zcxg2Gt=NxKZm^$E)4GZ10KG7q^#TPRg}#yCbEHKnQ1IVKlVn=3Pu>qkH}t=Y^#AqI z^{4fJfa^bqAFMfEwB8`y_kQjUY=~B*1$x1B9Hm`Xrhg>1h3#!fwZI=&Bt~NE&{(~T zp5Za^DjnGJMe?u!h)c(%ns3j3eqM6n&5(=h2}F|~g-m-9!6ATyO?<Hab72!_)_+bd zflMEeQXH?;TQ``F6Bq)qy<zO@s`URM_RlHWRKu!2iWAmJta|!Y9j`uPn)B@$-$m_T zLG4uUBctlwxBgR6FV46v{)(!tw<d~8e;JPNLZySTpQj!~U8B}32>gmEJye>0Do7`8 z8Y*o1VkdZXm5y%^Kklda@t}ww5uC7K@?-j;7J|t&ESOxv9a7NxHGa>_JkXoqBt6iz z8Gn}cLsz{j{Ll|Uh`|1Vj1R)<4G)CUJ}5#z^NRMdd`UVxhRh+N5S9atUO){h!aS{o zBd1Wz@Si}c^n}O_AaQ~{(Uh!kAk~3QaylPnLCn^JPD(=ZCst4k0$8$_G74n_v`5^a zw0;!^-V&(~q$7T1^zT^<GiUp(GV^=g5#J$-;&|}(84KRxyF0RiHpBl(^jZ<Qv3Rfj z^7!@+sK9~WlUuRwfqW!BX=bBn1HVqrp6vfS9Gqc~8O!l}koD$316(|@i1muupQkB^ zBLmnrv^PaWfS+nqY!U8hQMXm`f&mVYN3$xnh9eb-lqhN#9m%o#cI68)X6mEgolZfd z7LFf39ej-^A??bomC21>9wnOAuS~0Q6G&bgMjh$;C=RRGY^>i&WT@G&7HwrWgLb7W zZ0$7d%1!iJ)F1>xSh<73N<4cMK_l{=h#)`tgd#^df0pb<CFu~-u)aXQ0uA~rUF+Tp zCu0a7VY8o_){FEj0Bg~vffWZR%2>OVLOmf?#g+=Y!bQKku@`MZGwD}k6zm~xMEtjz zwy?R`VA+9RkEZT|H(>?2{`uawlxs+=Kg9J%ACJC%FMZ9Pv!*`!P~PX)@8P;-DfL6g zt@u-p&s@6V#}UFbt)`|&n_FJ~bx(1qZt3#cRh}8sXHLKIx|>S)36V^uKR6uU`iACc zD|CE$(gb%m*$}YH*&R*$3a+)=3JM>~t0*Yya^6<pNxE(;DBd_OSWx=N_)tMve8Sv< zK;GLE3(7(TrNM$?P~28fgc7$ExP$px5sEhmUd8ksEGUfU)fc#NYU0CJvYPfVo^2`h zR8Tz?R1dhO>)GmXzUe?ss5`5sx%nvW#piW==r~D#P}d`Q^9qXM&b&ht3kriwBHljA zFtcNH`&hlKeMY+8`32pMy!~U<3I^0B`Yj|K_t76#XNc;YTi}UJEGQ~x70-u&)ZVC| z{cq`d7m!}(jM?7J4(BXt@A;aYL+vGgy9K|L3m1R7pXL?x<T;;rjj2EMl%~-DnvAhV z#~1h)vx8!RJxf?sf#;DtD0KD20(UrHTLZ`t_xGmz5EdY8h4mrRrNM0lZ3^d&DZ~7H zr;A!U=e*vn$PeYfwKmkhSJb~Jt<y~X=h<p=-nKDopO>H4GUkn7e%`%fcYZ1A4pEzN z)X*Q+_lD?ua1(t$FTb*&2=`!rOrLF{%nVT`p0^yzoReRU`_!kjQJRh)i}ob*(4LLX zAT;lS-N(nxEhx=<Yhpohd4VS=$J%ZAbF&cErv~^82!0Qeo|uh5#x7@OjHzR}%6W2Z zlbf4Q_A!I(42QH2!VH12PzBfISMCwmU*cQ~6;$P!1#Y5^X3-M1VGQg^fmu`@2hnX6 z7`2HG4?epE_9y|B8}lA<h6_A#S00q%E{9PQ%|H&C3eZ%DaXCo{zno~9j<Rfs`Jo`$ z@VtWkF6XbtwqZk#%X<XB`*QbTjdL<IU5su`cVakyp^D7q4vT#8vw~kE&b0+%3<l7E z+wwKCqnE_}@6&x|hhR!RD3FJ-BMfnFer@_3%AtO8ji&;druGxnce%i;>89~W9)^9~ z`7LIq%tmL6`;GKHmcE!x34L|sIU}U6@-ap>ij&Q66#Tl#R&(+b^9|;Ks$52j;`iY5 zTfvXL-Us}WG=FV$hSFmQ{h7BUYs47jXNoZ{(j5Y?a9<WtFrR$>><RdT<0<;1>YH&b zs$ioX{*l_&AZVRq*g}ZLa|pe(6V=R9YF>~Z2BI1V8_&dV+kYUxY2fE};|~rtk3mCu zuoCzD{JbiBRpsZ+!`I^c`S=S7XdIRadYaqmAk56dJiuxMb`7<=@)1{j+=7BYGH;`k z6pxWd<vIn;N}SVCjL#;49j0<jx8)a(uS|}MPgwn!v&*${d~6~jm2%b(y9Mpr=g~f( z(1uuDrv>dIstAXHkLv<<s+Fh5{hx?)nw`UAn_VcM#!{8wRYELbU(4Xny*O<UIE$q! z9~mE?aCbq?V|iW9q-*22yd%(skx%{5E$H&ePs?`C+X(vmsV&KIc?+rGEY>02^$7Y& zIH!ZK*T=vH#=t%s11p@!*x=1p;+Wq0;L2$2Qf)fkjK;qk<XKByW9{^4U0YO}zN|J{ zt4&|p+Nw=&X`%}v_f7YuFC(qd8R|uuHa#L<CN_OlQ?zdS+y#rS!@JcYD?mkj>l&)@ z!nT!lQjS0I?ZmdM?1PXz1!sB(M*1P#BZ?G@f|O$>oPJYF2a84VeH}i89})A%NxF%n z3?IVx3!jTqcFdQ!@I5RZ1hz!rrDEK&*bmq$f%gczWHB7DM+Lr>rKK`+?OzLgzrdfx zH62^<A$d9q*rmqeFr5BM;8hoMoW(~teMjIPGFlup?60Q%0pE;|z-I{jj}jM?K8quO zjYGSM-s9nfY_7xUr2?-J4A?jZPH!?G`oK(1&&DiHX8_kUp)`Jr{q-|kC{4j{VYpO& z=0>@o7wSyk;PLr*EgP>C^@{FI)6<C)|He9;+E~;?f4)4N&-v}*`1$SPc(#;W3a2Ip zEWb?ub!uYJrV&m12HHioo_#drz`vCPw{zg%%Ypwe2mX8x{FNLy*~?h+)6Wve!eLZn z;uq(@zmx-?kprKT1HU^59?OA0ngf3_2mZG?@GUuT`hCt=`uR-`{QVsGxg59?Lt-rc zm*v2x=D_FXz?bB}n{(h+4xD~PHI|%zp99~X1K$JuV)&~b;Sbq*41?;G9Q22C;P2<a zKg)qT;bO*;{}SLNk9HX!*>Vkbg}^-mm!9ZGftL!L#rP;XD+m8z4xH9^W685X@bAv5 z_b!2N&cf>izE$9sa8PXm4}6IOhQMiENbT(wIL(W6{I$S6U*^{me@gNfI9tns<e!0$ zC4YYo{9q3JXbyY`ILX;@1(&Che`!v11mULz&emqQcd5X;ujGWXU%n#g1<ux9Ao(ir zvE-j7=&P>ceArqHr#I)Izas};FZlG7a6W7ehSQcD^c!;EKM;JXC~(5zfT_~)qa5`6 z1bxkPPWKf5(%uw!;q@F~>n5D01nwyvjSmUD)W>m|k8@z^W&Lsk$K`tELV<72!Y>ne zkHFcw1x3Fq@Y6SPJ}dc`HXZm_{X%PFs@Fq-A`ZFUm@DuOfwMIS?k^Vj{@ILN6WyTQ zCvfd%j>|Zf`kC>+h2w0!fYUaCmj*a4<M<5%4`kt+1YVVe|C7LLvheK!Z_dKC>ig@W z)vK@=;BP9fURD=rT2?1sz+7El7mYMjH{j*KbuF!0HC`p$+T6H2Qm0ifU$s1n_bAgF zlbh=6TkE14e{XR^U1Kv|EzH<9x76X4%Jf>`R`$|m4KFZmt&2pf>zi6u*S0JZ@Tw-Q z8XW3Y%$!lZx&?0?u3lNYqE1ReFD!l#1Wc0JRm-ZITbd$ut*u}jSy30oas=;o2G%^? zSIQ(rgYc^2>C0PNYNyX&2+7*qf>$f2ub8}O4ZW_}2b5muOcKz0qi<kTBphDfOfNmA zW<#{}^>nkmRKuSe=+BMx2TLTgd?x+5Nvob~-hNxqtiFBDoI5HORxb?RW>!>dP50kl z-TL6F2vY}f(yFWLT3S{$RW~+8YNN}W@M396vNTp-Pj6?I*Q;Bw&=PM;u3pyKEINn3 zKDl}+7_1l#(QBVs2gyQW$;L6_%Q|Ig6W*6CFL)23E1>U2u;kUVw`y0n)IndF&SHY` zJH%(X5M3hFD^0PetQ)P4Hq^B)Z>?Uwj2n`?!^Gro`W9`Ga&oY~rLIm}$)ynl8D^Xn z>K1pnHE?aTF8>zZxh-3Ee@pGESYutYXf5jn)*_7=on(+<P39s|u3Z($(8<?$<K5)h z;++SuaWa-tSOsXt%DR=2<_FI&N9KP%3bP~?qYzm#z2Td`Fr7?>_k#kE*=1d_21U;6 zXa<9u(lT7-c<Va42cp$S8k<_{w0il<abErZp%<}dtC=h_TH68*WE#%9Hr@Mm==N$T z1<s;6(y*eszIHi#XZruv3*B?Q);&`zH@{{Y*y*a_nWD>A#p>7#*5zx{WnVJmXPwWi z^}Lqhz4eh5O{*Foq~4YNAq$^xgG9w&{Vrc+pLqp44bt>|=6gW=?|PNIkaG3%Rm+-I zGqd|o`C@rZ)4q-m9SH9<3bF881$HbX5C`F2d?db}Kpcc$jgQ2)5Qu~Dui_)|X(B!% z{2B!>Q}AL1U#s90BS=081;19o={<UM5dW$8Ncxu)e42uPArBWgh+f5SRd5RJB%fsp zuF^LvIE8kSo?e_m2l1!SPU0ICoI*Q^e^<dNw3GNr1y}3M$9js6Z2lz*PNALT<5O@7 z?IgZb!6}6$aavc>LHy}Syu@k!NC)AR+LHJM1mMWVuTyZfy|oIiwyQ<K)qdQe;Hp0P zo*~M$@n>;To~sbQ(Lu#jJ~t`2S}(<`bP&DD|4s#0<zKGgUqcyL@1qK?(tlgQDI}Kk zKg@wo5GgZ~$FI<Tq~NOj4v|VDdX@h;kuoD(rC*s300-e}zyEv^gU`eF<iKCcfge+F z)qci_d@j|ij;}A}z)KZe<uf}6UX=sCK;(<5-dXra{a>Zvv?P)E7j#_U$ky963a;8! zor0_O^LGkPOB>1m-xOT6liw;hEqNsU2MT_xg0qJ`Le7AKUsZ?;93;O=|4%va3ol~i z=e2i<f~)@RUlm;SGusth^)p8lT$ShXi!=4A_$dVsf<)?J{3RLs+Z6l`1us|dzgF;& zf}c}xmH%Rq|H{_e+X}AEQzsN$o!5pGe2!A@7ca#H4&pxpAK9*}bKp1Tz=JvPc?v#P z;qMd)G^$tauS*pCMuq+g1y|*~HV3}=iztkP_#61hcGWAm8Ye^*T-E<N1^=qT=P3mb zEBL?Wz+Y7Gc?$iwB3$4gIaNM4DYz<6NWoS5Z|1-|6<pQZGYVdTx}|=;Ch~(909&Bo zw<!4S3SOb$RSMoFaB7#S;8%!zBF&Fv8nWICMBb3-7b*DvQ1HbHej{y^z(Mq?AGlS) zm*Ae{-=yHG{vTBEyA=Ap3O-H2r+oz%IL@m#2fjkVuSYp4&$n{moeKU<h5iQ$uKMTS zDEQYD`g`cXDh`rU9q-R6xZ19l6<nQ1zBz@lVSLnjqYAF_|F(jw^m}sPZz;IizaJ^M z%KuVNMxMKID)s5VB7@(l;KvkPwR7vr484kfN8s7^|2GP*+W+4vxN83g75?`s^88WY zdBDhZN%=3hDkD#gf_oJFJ_Vny;Ho@L3a;w2jGP?~vIn)_zoXzP{g27n;mEf0UIka} z`J{rY{r;(fF9ko@-rv*Ygd<xX7fogYFT=N_zodl0j9$gBR`7^IU#8%yJ#12N)j#}N z!D|&hSJ0vk2g#|*U#Z~gxO+gs>rh6@{~ZNa_4BlX*DLftR`7s=FQdVUgXB@iX<Wh8 z{(U0{KB(ZT|74qC1b?-E=MYnYtMac=@SAa8ws(hu->TrRD)?;*u3v`>9MmoqpP}HY zeLkh&4Jae)9Z+yJ{`pwJ)p*H6jmJUtF2hIinW^CSD|l4kdBDD?;O{H+%N6{uNQpRz zzl#4YDG^6D{(Ilp_{|g~;mD>xCh%-|ZlT~w(5re|px~-JkLAEq6f_7v&G?r3`AEU% zEBFOB5jB@nwf|`f{$Ful^7)m5tNh<laFx%Hf~$Nc%w*Lv{gf;GXDPTkU+hzGwcghi zTy0lM!Bu%C(cs5H{i4eA&kC;c?@@4-+<#SBI)pmV}oFERWS8dl>1y{#ik)M$> zdR3lZ3Y_ex2p`!mhDg8>e|0?mrGl&Dy-(o8heAKe=gwKUz>&@Wcn-XN_Sp2N1y1s` z;v@ODlMpxvSKIr9f~#_FS8%mm{kJeS=jrEA4*a-+t9CM!1OEaEhlAu)`+a5({7wZ| z?ID^2e_z2>JGmx6wVrP$HwGBYb~fFKQ>o8#1z)D%cPO|zKSmUMg+kw|;QvLze|8}* zaF8CzWMsV)$!Ks8uJ+fk;y=}T-9ARn=v6sA9A@_B5a;yOn1y@9%?(+&+=qBD3qL}F z(ILu_J=3Y&hiGQw<B1s0g|l$E4{>i6F83kQTV&~w{N+BxX<4}3hiGQuav$PLS-9MX zXgEjnm-`Uu|I4C7*4r_eUq6|J%l$Yfv+#~DaQZT#C&@?dmoc+&xnHIx3zz$4XkQ8) zl8@ZyvM~#n`&>3>;c}nLPqT2j&t-2GF88^d%);e97d5X-UAOhiOgyb-9RHSbdOZAk zYZfl|r$~E|^m2cSTiA=l<^B{;7Jm9l&OeZa%Y7)_S-9L+awH3v`$Pg0M$0evgEVI0 zazDrmS-9K}GRZxfkK7M3I}7g+@k&(|F86~h%fjV;kPTV5+z;|(7B2U_?#;sGzSobk zaJf&!eZgq?<vx*xS-9LM(wK$IeIid};T|y`?9ReV1H8V2S$II;C$sP>fy*tY(oSjw zK6xVNC-G)U&*6XfUk^%>y$kb6^9hKvHS$DU7m9EBMZ<)KR6qja+jAd3DHDE!rUj}; zbPtO~h~ldP7w(22cDxV}Cs|)&_@+@>ZV=CZZ+V(#NG@TvIOB(`KbtSn(jmVC;{0L) zm7^!XFD5A%ol5!TcO@|5m0f;+03eQReM|kx?{9*J%9j$cavTZpi?1jcol3docSONd z(sKdzDswK&Nu&)Ygppm2I)ePlBkWe*lXA;ziuJ~_pCwUFA^kGh53!QvDVC+<B7Cy@ zh;R=DZ8#q0U+KTu@{cJysJDpnoAY_m0(@PGPj>w@jK`|qpr8xK>sbRUyZ-+LG>{3D diff --git a/lib/linux/libz.a b/lib/linux/libz.a deleted file mode 100644 index ffad46458d535303e6e6bce18480273b28fd31cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127770 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 DMHvU9 diff --git a/lib/osx/arm64/libdiscord_game_sdk.dylib b/lib/osx/arm64/libdiscord_game_sdk.dylib new file mode 100644 index 0000000000000000000000000000000000000000..8f086062ad2db97cce9b5cae4eaa2be99ea42cd0 GIT binary patch literal 3818808 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 GvelBi!R0 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ı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%0AM2f+dl2pr61Zvi}dIl^;e*wSJ4q9sM)#EswF@ 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∋> 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�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≫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FdiPQo0GN&+k@&! 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�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ʮk>*)!LZs`vHey+oWIrJ-Jv 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 %XA?l1|y{oT9TqJ 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π{u?hMnO^h37ao7|)o)XQZ@={V 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ℜ{>j=X=3(mYpk#_kAM;YgULR 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 #UU=h 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≦c4QKry>?D4J>J5Yi1jF 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 G^Z)=%vz`Y4 literal 0 HcmV?d00001 diff --git a/lib/osx/include/GL/glew.h b/lib/osx/include/GL/glew.h deleted file mode 100644 index 0cd6ae3..0000000 --- a/lib/osx/include/GL/glew.h +++ /dev/null @@ -1,16126 +0,0 @@ -/* -** The OpenGL Extension Wrangler Library -** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org> -** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org> -** Copyright (C) 2002, Lev Povalahev -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are met: -** -** * Redistributions of source code must retain the above copyright notice, -** this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright notice, -** this list of conditions and the following disclaimer in the documentation -** and/or other materials provided with the distribution. -** * The name of the author may be used to endorse or promote products -** derived from this software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -** THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * Mesa 3-D graphics library - * Version: 7.0 - * - * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* -** Copyright (c) 2007 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -#ifndef __glew_h__ -#define __glew_h__ -#define __GLEW_H__ - -#if defined(__gl_h_) || defined(__GL_H__) || defined(__X_GL_H) -#error gl.h included before glew.h -#endif -#if defined(__glext_h_) || defined(__GLEXT_H_) -#error glext.h included before glew.h -#endif -#if defined(__gl_ATI_h_) -#error glATI.h included before glew.h -#endif - -#define __gl_h_ -#define __GL_H__ -#define __X_GL_H -#define __glext_h_ -#define __GLEXT_H_ -#define __gl_ATI_h_ - -#if defined(_WIN32) - -/* - * GLEW does not include <windows.h> to avoid name space pollution. - * GL needs GLAPI and GLAPIENTRY, GLU needs APIENTRY, CALLBACK, and wchar_t - * defined properly. - */ -/* <windef.h> */ -#ifndef APIENTRY -#define GLEW_APIENTRY_DEFINED -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define APIENTRY __stdcall -# elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) -# define APIENTRY __stdcall -# else -# define APIENTRY -# endif -#endif -#ifndef GLAPI -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define GLAPI extern -# endif -#endif -/* <winnt.h> */ -#ifndef CALLBACK -#define GLEW_CALLBACK_DEFINED -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define CALLBACK __attribute__ ((__stdcall__)) -# elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) -# define CALLBACK __stdcall -# else -# define CALLBACK -# endif -#endif -/* <wingdi.h> and <winnt.h> */ -#ifndef WINGDIAPI -#define GLEW_WINGDIAPI_DEFINED -#define WINGDIAPI __declspec(dllimport) -#endif -/* <ctype.h> */ -#if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(_WCHAR_T_DEFINED) -typedef unsigned short wchar_t; -# define _WCHAR_T_DEFINED -#endif -/* <stddef.h> */ -#if !defined(_W64) -# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300 -# define _W64 __w64 -# else -# define _W64 -# endif -#endif -#if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__) -# ifdef _WIN64 -typedef __int64 ptrdiff_t; -# else -typedef _W64 int ptrdiff_t; -# endif -# define _PTRDIFF_T_DEFINED -# define _PTRDIFF_T_ -#endif - -#ifndef GLAPI -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define GLAPI extern -# else -# define GLAPI WINGDIAPI -# endif -#endif - -#ifndef GLAPIENTRY -#define GLAPIENTRY APIENTRY -#endif - -/* - * GLEW_STATIC is defined for static library. - * GLEW_BUILD is defined for building the DLL library. - */ - -#ifdef GLEW_STATIC -# define GLEWAPI extern -#else -# ifdef GLEW_BUILD -# define GLEWAPI extern __declspec(dllexport) -# else -# define GLEWAPI extern __declspec(dllimport) -# endif -#endif - -#else /* _UNIX */ - -/* - * Needed for ptrdiff_t in turn needed by VBO. This is defined by ISO - * C. On my system, this amounts to _3 lines_ of included code, all of - * them pretty much harmless. If you know of a way of detecting 32 vs - * 64 _targets_ at compile time you are free to replace this with - * something that's portable. For now, _this_ is the portable solution. - * (mem, 2004-01-04) - */ - -#include <stddef.h> - -/* SGI MIPSPro doesn't like stdint.h in C++ mode */ -/* ID: 3376260 Solaris 9 has inttypes.h, but not stdint.h */ - -#if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__) -#include <inttypes.h> -#else -#include <stdint.h> -#endif - -#define GLEW_APIENTRY_DEFINED -#define APIENTRY - -/* - * GLEW_STATIC is defined for static library. - */ - -#ifdef GLEW_STATIC -# define GLEWAPI extern -#else -# if defined(__GNUC__) && __GNUC__>=4 -# define GLEWAPI extern __attribute__ ((visibility("default"))) -# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) -# define GLEWAPI extern __global -# else -# define GLEWAPI extern -# endif -#endif - -/* <glu.h> */ -#ifndef GLAPI -#define GLAPI extern -#endif -#ifndef GLAPIENTRY -#define GLAPIENTRY -#endif - -#endif /* _WIN32 */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ----------------------------- GL_VERSION_1_1 ---------------------------- */ - -#ifndef GL_VERSION_1_1 -#define GL_VERSION_1_1 1 - -typedef unsigned int GLenum; -typedef unsigned int GLbitfield; -typedef unsigned int GLuint; -typedef int GLint; -typedef int GLsizei; -typedef unsigned char GLboolean; -typedef signed char GLbyte; -typedef short GLshort; -typedef unsigned char GLubyte; -typedef unsigned short GLushort; -typedef unsigned long GLulong; -typedef float GLfloat; -typedef float GLclampf; -typedef double GLdouble; -typedef double GLclampd; -typedef void GLvoid; -#if defined(_MSC_VER) && _MSC_VER < 1400 -typedef __int64 GLint64EXT; -typedef unsigned __int64 GLuint64EXT; -#elif defined(_MSC_VER) || defined(__BORLANDC__) -typedef signed long long GLint64EXT; -typedef unsigned long long GLuint64EXT; -#else -# if defined(__MINGW32__) || defined(__CYGWIN__) -#include <inttypes.h> -# endif -typedef int64_t GLint64EXT; -typedef uint64_t GLuint64EXT; -#endif -typedef GLint64EXT GLint64; -typedef GLuint64EXT GLuint64; -typedef struct __GLsync *GLsync; - -typedef char GLchar; - -#define GL_ZERO 0 -#define GL_FALSE 0 -#define GL_LOGIC_OP 0x0BF1 -#define GL_NONE 0 -#define GL_TEXTURE_COMPONENTS 0x1003 -#define GL_NO_ERROR 0 -#define GL_POINTS 0x0000 -#define GL_CURRENT_BIT 0x00000001 -#define GL_TRUE 1 -#define GL_ONE 1 -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_POINT_BIT 0x00000002 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_LINE_STRIP 0x0003 -#define GL_LINE_BIT 0x00000004 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_QUADS 0x0007 -#define GL_QUAD_STRIP 0x0008 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON 0x0009 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_FOG_BIT 0x00000080 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_ACCUM 0x0100 -#define GL_LOAD 0x0101 -#define GL_RETURN 0x0102 -#define GL_MULT 0x0103 -#define GL_ADD 0x0104 -#define GL_NEVER 0x0200 -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_LEFT 0x0406 -#define GL_RIGHT 0x0407 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_AUX0 0x0409 -#define GL_AUX1 0x040A -#define GL_AUX2 0x040B -#define GL_AUX3 0x040C -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_2D 0x0600 -#define GL_3D 0x0601 -#define GL_3D_COLOR 0x0602 -#define GL_3D_COLOR_TEXTURE 0x0603 -#define GL_4D_COLOR_TEXTURE 0x0604 -#define GL_PASS_THROUGH_TOKEN 0x0700 -#define GL_POINT_TOKEN 0x0701 -#define GL_LINE_TOKEN 0x0702 -#define GL_POLYGON_TOKEN 0x0703 -#define GL_BITMAP_TOKEN 0x0704 -#define GL_DRAW_PIXEL_TOKEN 0x0705 -#define GL_COPY_PIXEL_TOKEN 0x0706 -#define GL_LINE_RESET_TOKEN 0x0707 -#define GL_EXP 0x0800 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_EXP2 0x0801 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_COEFF 0x0A00 -#define GL_ORDER 0x0A01 -#define GL_DOMAIN 0x0A02 -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_INDEX 0x0B01 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_CURRENT_RASTER_COLOR 0x0B04 -#define GL_CURRENT_RASTER_INDEX 0x0B05 -#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define GL_CURRENT_RASTER_POSITION 0x0B07 -#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define GL_POINT_SMOOTH 0x0B10 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_RANGE 0x0B12 -#define GL_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_WIDTH 0x0B21 -#define GL_LINE_WIDTH_RANGE 0x0B22 -#define GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_LINE_STIPPLE 0x0B24 -#define GL_LINE_STIPPLE_PATTERN 0x0B25 -#define GL_LINE_STIPPLE_REPEAT 0x0B26 -#define GL_LIST_MODE 0x0B30 -#define GL_MAX_LIST_NESTING 0x0B31 -#define GL_LIST_BASE 0x0B32 -#define GL_LIST_INDEX 0x0B33 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_POLYGON_STIPPLE 0x0B42 -#define GL_EDGE_FLAG 0x0B43 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_LIGHTING 0x0B50 -#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_SHADE_MODEL 0x0B54 -#define GL_COLOR_MATERIAL_FACE 0x0B55 -#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_FOG 0x0B60 -#define GL_FOG_INDEX 0x0B61 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_START 0x0B63 -#define GL_FOG_END 0x0B64 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_COLOR 0x0B66 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_ACCUM_CLEAR_VALUE 0x0B80 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_MATRIX_MODE 0x0BA0 -#define GL_NORMALIZE 0x0BA1 -#define GL_VIEWPORT 0x0BA2 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define GL_ALPHA_TEST 0x0BC0 -#define GL_ALPHA_TEST_FUNC 0x0BC1 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_DITHER 0x0BD0 -#define GL_BLEND_DST 0x0BE0 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND 0x0BE2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_AUX_BUFFERS 0x0C00 -#define GL_DRAW_BUFFER 0x0C01 -#define GL_READ_BUFFER 0x0C02 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_INDEX_CLEAR_VALUE 0x0C20 -#define GL_INDEX_WRITEMASK 0x0C21 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_INDEX_MODE 0x0C30 -#define GL_RGBA_MODE 0x0C31 -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_STEREO 0x0C33 -#define GL_RENDER_MODE 0x0C40 -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_FOG_HINT 0x0C54 -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GEN_R 0x0C62 -#define GL_TEXTURE_GEN_Q 0x0C63 -#define GL_PIXEL_MAP_I_TO_I 0x0C70 -#define GL_PIXEL_MAP_S_TO_S 0x0C71 -#define GL_PIXEL_MAP_I_TO_R 0x0C72 -#define GL_PIXEL_MAP_I_TO_G 0x0C73 -#define GL_PIXEL_MAP_I_TO_B 0x0C74 -#define GL_PIXEL_MAP_I_TO_A 0x0C75 -#define GL_PIXEL_MAP_R_TO_R 0x0C76 -#define GL_PIXEL_MAP_G_TO_G 0x0C77 -#define GL_PIXEL_MAP_B_TO_B 0x0C78 -#define GL_PIXEL_MAP_A_TO_A 0x0C79 -#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAP_COLOR 0x0D10 -#define GL_MAP_STENCIL 0x0D11 -#define GL_INDEX_SHIFT 0x0D12 -#define GL_INDEX_OFFSET 0x0D13 -#define GL_RED_SCALE 0x0D14 -#define GL_RED_BIAS 0x0D15 -#define GL_ZOOM_X 0x0D16 -#define GL_ZOOM_Y 0x0D17 -#define GL_GREEN_SCALE 0x0D18 -#define GL_GREEN_BIAS 0x0D19 -#define GL_BLUE_SCALE 0x0D1A -#define GL_BLUE_BIAS 0x0D1B -#define GL_ALPHA_SCALE 0x0D1C -#define GL_ALPHA_BIAS 0x0D1D -#define GL_DEPTH_SCALE 0x0D1E -#define GL_DEPTH_BIAS 0x0D1F -#define GL_MAX_EVAL_ORDER 0x0D30 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_INDEX_BITS 0x0D51 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_ACCUM_RED_BITS 0x0D58 -#define GL_ACCUM_GREEN_BITS 0x0D59 -#define GL_ACCUM_BLUE_BITS 0x0D5A -#define GL_ACCUM_ALPHA_BITS 0x0D5B -#define GL_NAME_STACK_DEPTH 0x0D70 -#define GL_AUTO_NORMAL 0x0D80 -#define GL_MAP1_COLOR_4 0x0D90 -#define GL_MAP1_INDEX 0x0D91 -#define GL_MAP1_NORMAL 0x0D92 -#define GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define GL_MAP1_VERTEX_3 0x0D97 -#define GL_MAP1_VERTEX_4 0x0D98 -#define GL_MAP2_COLOR_4 0x0DB0 -#define GL_MAP2_INDEX 0x0DB1 -#define GL_MAP2_NORMAL 0x0DB2 -#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define GL_MAP2_VERTEX_3 0x0DB7 -#define GL_MAP2_VERTEX_4 0x0DB8 -#define GL_MAP1_GRID_DOMAIN 0x0DD0 -#define GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define GL_MAP2_GRID_DOMAIN 0x0DD2 -#define GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 -#define GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define GL_SELECTION_BUFFER_SIZE 0x0DF4 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_BORDER 0x1005 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_AMBIENT 0x1200 -#define GL_DIFFUSE 0x1201 -#define GL_SPECULAR 0x1202 -#define GL_POSITION 0x1203 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_QUADRATIC_ATTENUATION 0x1209 -#define GL_COMPILE 0x1300 -#define GL_COMPILE_AND_EXECUTE 0x1301 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_2_BYTES 0x1407 -#define GL_3_BYTES 0x1408 -#define GL_4_BYTES 0x1409 -#define GL_DOUBLE 0x140A -#define GL_CLEAR 0x1500 -#define GL_AND 0x1501 -#define GL_AND_REVERSE 0x1502 -#define GL_COPY 0x1503 -#define GL_AND_INVERTED 0x1504 -#define GL_NOOP 0x1505 -#define GL_XOR 0x1506 -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_EQUIV 0x1509 -#define GL_INVERT 0x150A -#define GL_OR_REVERSE 0x150B -#define GL_COPY_INVERTED 0x150C -#define GL_OR_INVERTED 0x150D -#define GL_NAND 0x150E -#define GL_SET 0x150F -#define GL_EMISSION 0x1600 -#define GL_SHININESS 0x1601 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_COLOR_INDEXES 0x1603 -#define GL_MODELVIEW 0x1700 -#define GL_PROJECTION 0x1701 -#define GL_TEXTURE 0x1702 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_COLOR_INDEX 0x1900 -#define GL_STENCIL_INDEX 0x1901 -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_BITMAP 0x1A00 -#define GL_POINT 0x1B00 -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 -#define GL_RENDER 0x1C00 -#define GL_FEEDBACK 0x1C01 -#define GL_SELECT 0x1C02 -#define GL_FLAT 0x1D00 -#define GL_SMOOTH 0x1D01 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_S 0x2000 -#define GL_ENABLE_BIT 0x00002000 -#define GL_T 0x2001 -#define GL_R 0x2002 -#define GL_Q 0x2003 -#define GL_MODULATE 0x2100 -#define GL_DECAL 0x2101 -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_ENV_COLOR 0x2201 -#define GL_TEXTURE_ENV 0x2300 -#define GL_EYE_LINEAR 0x2400 -#define GL_OBJECT_LINEAR 0x2401 -#define GL_SPHERE_MAP 0x2402 -#define GL_TEXTURE_GEN_MODE 0x2500 -#define GL_OBJECT_PLANE 0x2501 -#define GL_EYE_PLANE 0x2502 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_CLAMP 0x2900 -#define GL_REPEAT 0x2901 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_R3_G3_B2 0x2A10 -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_C3F_V3F 0x2A24 -#define GL_N3F_V3F 0x2A25 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_V4F 0x2A28 -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T4F_C4F_N3F_V4F 0x2A2D -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 -#define GL_LIGHT0 0x4000 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 -#define GL_HINT_BIT 0x00008000 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_ALPHA4 0x803B -#define GL_ALPHA8 0x803C -#define GL_ALPHA12 0x803D -#define GL_ALPHA16 0x803E -#define GL_LUMINANCE4 0x803F -#define GL_LUMINANCE8 0x8040 -#define GL_LUMINANCE12 0x8041 -#define GL_LUMINANCE16 0x8042 -#define GL_LUMINANCE4_ALPHA4 0x8043 -#define GL_LUMINANCE6_ALPHA2 0x8044 -#define GL_LUMINANCE8_ALPHA8 0x8045 -#define GL_LUMINANCE12_ALPHA4 0x8046 -#define GL_LUMINANCE12_ALPHA12 0x8047 -#define GL_LUMINANCE16_ALPHA16 0x8048 -#define GL_INTENSITY 0x8049 -#define GL_INTENSITY4 0x804A -#define GL_INTENSITY8 0x804B -#define GL_INTENSITY12 0x804C -#define GL_INTENSITY16 0x804D -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB8 0x8051 -#define GL_RGB10 0x8052 -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGBA2 0x8055 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_TEXTURE_PRIORITY 0x8066 -#define GL_TEXTURE_RESIDENT 0x8067 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_VERTEX_ARRAY 0x8074 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_COLOR_ARRAY 0x8076 -#define GL_INDEX_ARRAY 0x8077 -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_EDGE_FLAG_ARRAY 0x8079 -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_INDEX_ARRAY_TYPE 0x8085 -#define GL_INDEX_ARRAY_STRIDE 0x8086 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_INDEX_ARRAY_POINTER 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_EVAL_BIT 0x00010000 -#define GL_LIST_BIT 0x00020000 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_ALL_ATTRIB_BITS 0x000fffff -#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff - -GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value); -GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref); -GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); -GLAPI void GLAPIENTRY glArrayElement (GLint i); -GLAPI void GLAPIENTRY glBegin (GLenum mode); -GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture); -GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); -GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GLAPI void GLAPIENTRY glCallList (GLuint list); -GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const GLvoid *lists); -GLAPI void GLAPIENTRY glClear (GLbitfield mask); -GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -GLAPI void GLAPIENTRY glClearDepth (GLclampd depth); -GLAPI void GLAPIENTRY glClearIndex (GLfloat c); -GLAPI void GLAPIENTRY glClearStencil (GLint s); -GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation); -GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue); -GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v); -GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue); -GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue); -GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue); -GLAPI void GLAPIENTRY glColor3iv (const GLint *v); -GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue); -GLAPI void GLAPIENTRY glColor3sv (const GLshort *v); -GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue); -GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v); -GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue); -GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v); -GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue); -GLAPI void GLAPIENTRY glColor3usv (const GLushort *v); -GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); -GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v); -GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); -GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha); -GLAPI void GLAPIENTRY glColor4iv (const GLint *v); -GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); -GLAPI void GLAPIENTRY glColor4sv (const GLshort *v); -GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v); -GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); -GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v); -GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); -GLAPI void GLAPIENTRY glColor4usv (const GLushort *v); -GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode); -GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); -GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void GLAPIENTRY glCullFace (GLenum mode); -GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range); -GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GLAPI void GLAPIENTRY glDepthFunc (GLenum func); -GLAPI void GLAPIENTRY glDepthMask (GLboolean flag); -GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar); -GLAPI void GLAPIENTRY glDisable (GLenum cap); -GLAPI void GLAPIENTRY glDisableClientState (GLenum array); -GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode); -GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); -GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag); -GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag); -GLAPI void GLAPIENTRY glEnable (GLenum cap); -GLAPI void GLAPIENTRY glEnableClientState (GLenum array); -GLAPI void GLAPIENTRY glEnd (void); -GLAPI void GLAPIENTRY glEndList (void); -GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u); -GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u); -GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u); -GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u); -GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v); -GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u); -GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v); -GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u); -GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2); -GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); -GLAPI void GLAPIENTRY glEvalPoint1 (GLint i); -GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j); -GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); -GLAPI void GLAPIENTRY glFinish (void); -GLAPI void GLAPIENTRY glFlush (void); -GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glFrontFace (GLenum mode); -GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range); -GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures); -GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params); -GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation); -GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params); -GLAPI GLenum GLAPIENTRY glGetError (void); -GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v); -GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v); -GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v); -GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values); -GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values); -GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values); -GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, GLvoid* *params); -GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask); -GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name); -GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); -GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode); -GLAPI void GLAPIENTRY glIndexMask (GLuint mask); -GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glIndexd (GLdouble c); -GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c); -GLAPI void GLAPIENTRY glIndexf (GLfloat c); -GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c); -GLAPI void GLAPIENTRY glIndexi (GLint c); -GLAPI void GLAPIENTRY glIndexiv (const GLint *c); -GLAPI void GLAPIENTRY glIndexs (GLshort c); -GLAPI void GLAPIENTRY glIndexsv (const GLshort *c); -GLAPI void GLAPIENTRY glIndexub (GLubyte c); -GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c); -GLAPI void GLAPIENTRY glInitNames (void); -GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer); -GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap); -GLAPI GLboolean GLAPIENTRY glIsList (GLuint list); -GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture); -GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern); -GLAPI void GLAPIENTRY glLineWidth (GLfloat width); -GLAPI void GLAPIENTRY glListBase (GLuint base); -GLAPI void GLAPIENTRY glLoadIdentity (void); -GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m); -GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m); -GLAPI void GLAPIENTRY glLoadName (GLuint name); -GLAPI void GLAPIENTRY glLogicOp (GLenum opcode); -GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); -GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); -GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); -GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); -GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glMatrixMode (GLenum mode); -GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m); -GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m); -GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode); -GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); -GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v); -GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); -GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); -GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz); -GLAPI void GLAPIENTRY glNormal3iv (const GLint *v); -GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz); -GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v); -GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void GLAPIENTRY glPassThrough (GLfloat token); -GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values); -GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values); -GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values); -GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor); -GLAPI void GLAPIENTRY glPointSize (GLfloat size); -GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode); -GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask); -GLAPI void GLAPIENTRY glPopAttrib (void); -GLAPI void GLAPIENTRY glPopClientAttrib (void); -GLAPI void GLAPIENTRY glPopMatrix (void); -GLAPI void GLAPIENTRY glPopName (void); -GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); -GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask); -GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask); -GLAPI void GLAPIENTRY glPushMatrix (void); -GLAPI void GLAPIENTRY glPushName (GLuint name); -GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y); -GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v); -GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y); -GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v); -GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y); -GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v); -GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y); -GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v); -GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z); -GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v); -GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z); -GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v); -GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w); -GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v); -GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v); -GLAPI void GLAPIENTRY glReadBuffer (GLenum mode); -GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); -GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2); -GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); -GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2); -GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2); -GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2); -GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); -GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2); -GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode); -GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer); -GLAPI void GLAPIENTRY glShadeModel (GLenum mode); -GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GLAPI void GLAPIENTRY glStencilMask (GLuint mask); -GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s); -GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s); -GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord1i (GLint s); -GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord1s (GLshort s); -GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t); -GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t); -GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t); -GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t); -GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); -GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); -GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r); -GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r); -GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q); -GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param); -GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); -GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y); -GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v); -GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y); -GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v); -GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y); -GLAPI void GLAPIENTRY glVertex2iv (const GLint *v); -GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y); -GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v); -GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z); -GLAPI void GLAPIENTRY glVertex3iv (const GLint *v); -GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z); -GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v); -GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w); -GLAPI void GLAPIENTRY glVertex4iv (const GLint *v); -GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v); -GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); - -#define GLEW_VERSION_1_1 GLEW_GET_VAR(__GLEW_VERSION_1_1) - -#endif /* GL_VERSION_1_1 */ - -/* ---------------------------------- GLU ---------------------------------- */ - -#ifndef GLEW_NO_GLU -/* this is where we can safely include GLU */ -# if defined(__APPLE__) && defined(__MACH__) -# include <OpenGL/glu.h> -# else -# include <GL/glu.h> -# endif -#endif - -/* ----------------------------- GL_VERSION_1_2 ---------------------------- */ - -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 - -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_RESCALE_NORMAL 0x803A -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E - -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); - -#define glCopyTexSubImage3D GLEW_GET_FUN(__glewCopyTexSubImage3D) -#define glDrawRangeElements GLEW_GET_FUN(__glewDrawRangeElements) -#define glTexImage3D GLEW_GET_FUN(__glewTexImage3D) -#define glTexSubImage3D GLEW_GET_FUN(__glewTexSubImage3D) - -#define GLEW_VERSION_1_2 GLEW_GET_VAR(__GLEW_VERSION_1_2) - -#endif /* GL_VERSION_1_2 */ - -/* ---------------------------- GL_VERSION_1_2_1 --------------------------- */ - -#ifndef GL_VERSION_1_2_1 -#define GL_VERSION_1_2_1 1 - -#define GLEW_VERSION_1_2_1 GLEW_GET_VAR(__GLEW_VERSION_1_2_1) - -#endif /* GL_VERSION_1_2_1 */ - -/* ----------------------------- GL_VERSION_1_3 ---------------------------- */ - -#ifndef GL_VERSION_1_3 -#define GL_VERSION_1_3 1 - -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_SUBTRACT 0x84E7 -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -#define GL_MULTISAMPLE_BIT 0x20000000 - -typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLvoid *img); -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); - -#define glActiveTexture GLEW_GET_FUN(__glewActiveTexture) -#define glClientActiveTexture GLEW_GET_FUN(__glewClientActiveTexture) -#define glCompressedTexImage1D GLEW_GET_FUN(__glewCompressedTexImage1D) -#define glCompressedTexImage2D GLEW_GET_FUN(__glewCompressedTexImage2D) -#define glCompressedTexImage3D GLEW_GET_FUN(__glewCompressedTexImage3D) -#define glCompressedTexSubImage1D GLEW_GET_FUN(__glewCompressedTexSubImage1D) -#define glCompressedTexSubImage2D GLEW_GET_FUN(__glewCompressedTexSubImage2D) -#define glCompressedTexSubImage3D GLEW_GET_FUN(__glewCompressedTexSubImage3D) -#define glGetCompressedTexImage GLEW_GET_FUN(__glewGetCompressedTexImage) -#define glLoadTransposeMatrixd GLEW_GET_FUN(__glewLoadTransposeMatrixd) -#define glLoadTransposeMatrixf GLEW_GET_FUN(__glewLoadTransposeMatrixf) -#define glMultTransposeMatrixd GLEW_GET_FUN(__glewMultTransposeMatrixd) -#define glMultTransposeMatrixf GLEW_GET_FUN(__glewMultTransposeMatrixf) -#define glMultiTexCoord1d GLEW_GET_FUN(__glewMultiTexCoord1d) -#define glMultiTexCoord1dv GLEW_GET_FUN(__glewMultiTexCoord1dv) -#define glMultiTexCoord1f GLEW_GET_FUN(__glewMultiTexCoord1f) -#define glMultiTexCoord1fv GLEW_GET_FUN(__glewMultiTexCoord1fv) -#define glMultiTexCoord1i GLEW_GET_FUN(__glewMultiTexCoord1i) -#define glMultiTexCoord1iv GLEW_GET_FUN(__glewMultiTexCoord1iv) -#define glMultiTexCoord1s GLEW_GET_FUN(__glewMultiTexCoord1s) -#define glMultiTexCoord1sv GLEW_GET_FUN(__glewMultiTexCoord1sv) -#define glMultiTexCoord2d GLEW_GET_FUN(__glewMultiTexCoord2d) -#define glMultiTexCoord2dv GLEW_GET_FUN(__glewMultiTexCoord2dv) -#define glMultiTexCoord2f GLEW_GET_FUN(__glewMultiTexCoord2f) -#define glMultiTexCoord2fv GLEW_GET_FUN(__glewMultiTexCoord2fv) -#define glMultiTexCoord2i GLEW_GET_FUN(__glewMultiTexCoord2i) -#define glMultiTexCoord2iv GLEW_GET_FUN(__glewMultiTexCoord2iv) -#define glMultiTexCoord2s GLEW_GET_FUN(__glewMultiTexCoord2s) -#define glMultiTexCoord2sv GLEW_GET_FUN(__glewMultiTexCoord2sv) -#define glMultiTexCoord3d GLEW_GET_FUN(__glewMultiTexCoord3d) -#define glMultiTexCoord3dv GLEW_GET_FUN(__glewMultiTexCoord3dv) -#define glMultiTexCoord3f GLEW_GET_FUN(__glewMultiTexCoord3f) -#define glMultiTexCoord3fv GLEW_GET_FUN(__glewMultiTexCoord3fv) -#define glMultiTexCoord3i GLEW_GET_FUN(__glewMultiTexCoord3i) -#define glMultiTexCoord3iv GLEW_GET_FUN(__glewMultiTexCoord3iv) -#define glMultiTexCoord3s GLEW_GET_FUN(__glewMultiTexCoord3s) -#define glMultiTexCoord3sv GLEW_GET_FUN(__glewMultiTexCoord3sv) -#define glMultiTexCoord4d GLEW_GET_FUN(__glewMultiTexCoord4d) -#define glMultiTexCoord4dv GLEW_GET_FUN(__glewMultiTexCoord4dv) -#define glMultiTexCoord4f GLEW_GET_FUN(__glewMultiTexCoord4f) -#define glMultiTexCoord4fv GLEW_GET_FUN(__glewMultiTexCoord4fv) -#define glMultiTexCoord4i GLEW_GET_FUN(__glewMultiTexCoord4i) -#define glMultiTexCoord4iv GLEW_GET_FUN(__glewMultiTexCoord4iv) -#define glMultiTexCoord4s GLEW_GET_FUN(__glewMultiTexCoord4s) -#define glMultiTexCoord4sv GLEW_GET_FUN(__glewMultiTexCoord4sv) -#define glSampleCoverage GLEW_GET_FUN(__glewSampleCoverage) - -#define GLEW_VERSION_1_3 GLEW_GET_VAR(__GLEW_VERSION_1_3) - -#endif /* GL_VERSION_1_3 */ - -/* ----------------------------- GL_VERSION_1_4 ---------------------------- */ - -#ifndef GL_VERSION_1_4 -#define GL_VERSION_1_4 1 - -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_COMPARE_R_TO_TEXTURE 0x884E - -typedef void (GLAPIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDPROC) (GLdouble coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDVPROC) (const GLdouble *coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFPROC) (GLfloat coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *coord); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVPROC) (const GLfloat *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVPROC) (const GLint *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVPROC) (const GLshort *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVPROC) (const GLdouble *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVPROC) (const GLfloat *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVPROC) (const GLint *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p); - -#define glBlendColor GLEW_GET_FUN(__glewBlendColor) -#define glBlendEquation GLEW_GET_FUN(__glewBlendEquation) -#define glBlendFuncSeparate GLEW_GET_FUN(__glewBlendFuncSeparate) -#define glFogCoordPointer GLEW_GET_FUN(__glewFogCoordPointer) -#define glFogCoordd GLEW_GET_FUN(__glewFogCoordd) -#define glFogCoorddv GLEW_GET_FUN(__glewFogCoorddv) -#define glFogCoordf GLEW_GET_FUN(__glewFogCoordf) -#define glFogCoordfv GLEW_GET_FUN(__glewFogCoordfv) -#define glMultiDrawArrays GLEW_GET_FUN(__glewMultiDrawArrays) -#define glMultiDrawElements GLEW_GET_FUN(__glewMultiDrawElements) -#define glPointParameterf GLEW_GET_FUN(__glewPointParameterf) -#define glPointParameterfv GLEW_GET_FUN(__glewPointParameterfv) -#define glPointParameteri GLEW_GET_FUN(__glewPointParameteri) -#define glPointParameteriv GLEW_GET_FUN(__glewPointParameteriv) -#define glSecondaryColor3b GLEW_GET_FUN(__glewSecondaryColor3b) -#define glSecondaryColor3bv GLEW_GET_FUN(__glewSecondaryColor3bv) -#define glSecondaryColor3d GLEW_GET_FUN(__glewSecondaryColor3d) -#define glSecondaryColor3dv GLEW_GET_FUN(__glewSecondaryColor3dv) -#define glSecondaryColor3f GLEW_GET_FUN(__glewSecondaryColor3f) -#define glSecondaryColor3fv GLEW_GET_FUN(__glewSecondaryColor3fv) -#define glSecondaryColor3i GLEW_GET_FUN(__glewSecondaryColor3i) -#define glSecondaryColor3iv GLEW_GET_FUN(__glewSecondaryColor3iv) -#define glSecondaryColor3s GLEW_GET_FUN(__glewSecondaryColor3s) -#define glSecondaryColor3sv GLEW_GET_FUN(__glewSecondaryColor3sv) -#define glSecondaryColor3ub GLEW_GET_FUN(__glewSecondaryColor3ub) -#define glSecondaryColor3ubv GLEW_GET_FUN(__glewSecondaryColor3ubv) -#define glSecondaryColor3ui GLEW_GET_FUN(__glewSecondaryColor3ui) -#define glSecondaryColor3uiv GLEW_GET_FUN(__glewSecondaryColor3uiv) -#define glSecondaryColor3us GLEW_GET_FUN(__glewSecondaryColor3us) -#define glSecondaryColor3usv GLEW_GET_FUN(__glewSecondaryColor3usv) -#define glSecondaryColorPointer GLEW_GET_FUN(__glewSecondaryColorPointer) -#define glWindowPos2d GLEW_GET_FUN(__glewWindowPos2d) -#define glWindowPos2dv GLEW_GET_FUN(__glewWindowPos2dv) -#define glWindowPos2f GLEW_GET_FUN(__glewWindowPos2f) -#define glWindowPos2fv GLEW_GET_FUN(__glewWindowPos2fv) -#define glWindowPos2i GLEW_GET_FUN(__glewWindowPos2i) -#define glWindowPos2iv GLEW_GET_FUN(__glewWindowPos2iv) -#define glWindowPos2s GLEW_GET_FUN(__glewWindowPos2s) -#define glWindowPos2sv GLEW_GET_FUN(__glewWindowPos2sv) -#define glWindowPos3d GLEW_GET_FUN(__glewWindowPos3d) -#define glWindowPos3dv GLEW_GET_FUN(__glewWindowPos3dv) -#define glWindowPos3f GLEW_GET_FUN(__glewWindowPos3f) -#define glWindowPos3fv GLEW_GET_FUN(__glewWindowPos3fv) -#define glWindowPos3i GLEW_GET_FUN(__glewWindowPos3i) -#define glWindowPos3iv GLEW_GET_FUN(__glewWindowPos3iv) -#define glWindowPos3s GLEW_GET_FUN(__glewWindowPos3s) -#define glWindowPos3sv GLEW_GET_FUN(__glewWindowPos3sv) - -#define GLEW_VERSION_1_4 GLEW_GET_VAR(__GLEW_VERSION_1_4) - -#endif /* GL_VERSION_1_4 */ - -/* ----------------------------- GL_VERSION_1_5 ---------------------------- */ - -#ifndef GL_VERSION_1_5 -#define GL_VERSION_1_5 1 - -#define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE -#define GL_FOG_COORD GL_FOG_COORDINATE -#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY -#define GL_SRC0_RGB GL_SOURCE0_RGB -#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER -#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE -#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA -#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE -#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE -#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA -#define GL_SRC1_RGB GL_SOURCE1_RGB -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING -#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA -#define GL_SRC2_RGB GL_SOURCE2_RGB -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_SAMPLES_PASSED 0x8914 - -typedef ptrdiff_t GLintptr; -typedef ptrdiff_t GLsizeiptr; - -typedef void (GLAPIENTRY * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); -typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDQUERYPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLGENQUERIESPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid** params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GLAPIENTRY * PFNGLISQUERYPROC) (GLuint id); -typedef GLvoid* (GLAPIENTRY * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERPROC) (GLenum target); - -#define glBeginQuery GLEW_GET_FUN(__glewBeginQuery) -#define glBindBuffer GLEW_GET_FUN(__glewBindBuffer) -#define glBufferData GLEW_GET_FUN(__glewBufferData) -#define glBufferSubData GLEW_GET_FUN(__glewBufferSubData) -#define glDeleteBuffers GLEW_GET_FUN(__glewDeleteBuffers) -#define glDeleteQueries GLEW_GET_FUN(__glewDeleteQueries) -#define glEndQuery GLEW_GET_FUN(__glewEndQuery) -#define glGenBuffers GLEW_GET_FUN(__glewGenBuffers) -#define glGenQueries GLEW_GET_FUN(__glewGenQueries) -#define glGetBufferParameteriv GLEW_GET_FUN(__glewGetBufferParameteriv) -#define glGetBufferPointerv GLEW_GET_FUN(__glewGetBufferPointerv) -#define glGetBufferSubData GLEW_GET_FUN(__glewGetBufferSubData) -#define glGetQueryObjectiv GLEW_GET_FUN(__glewGetQueryObjectiv) -#define glGetQueryObjectuiv GLEW_GET_FUN(__glewGetQueryObjectuiv) -#define glGetQueryiv GLEW_GET_FUN(__glewGetQueryiv) -#define glIsBuffer GLEW_GET_FUN(__glewIsBuffer) -#define glIsQuery GLEW_GET_FUN(__glewIsQuery) -#define glMapBuffer GLEW_GET_FUN(__glewMapBuffer) -#define glUnmapBuffer GLEW_GET_FUN(__glewUnmapBuffer) - -#define GLEW_VERSION_1_5 GLEW_GET_VAR(__GLEW_VERSION_1_5) - -#endif /* GL_VERSION_1_5 */ - -/* ----------------------------- GL_VERSION_2_0 ---------------------------- */ - -#ifndef GL_VERSION_2_0 -#define GL_VERSION_2_0 1 - -#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_POINT_SPRITE 0x8861 -#define GL_COORD_REPLACE 0x8862 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_MAX_TEXTURE_COORDS 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_SHADER_TYPE 0x8B4F -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_DELETE_STATUS 0x8B80 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 - -typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum, GLenum); -typedef void (GLAPIENTRY * PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GLAPIENTRY * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum* bufs); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint); -typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders); -typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog); -typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source); -typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param); -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint, GLenum, GLvoid**); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVPROC) (GLuint, GLenum, GLdouble*); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint, GLenum, GLfloat*); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint, GLenum, GLint*); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader); -typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar** strings, const GLint* lengths); -typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* pointer); - -#define glAttachShader GLEW_GET_FUN(__glewAttachShader) -#define glBindAttribLocation GLEW_GET_FUN(__glewBindAttribLocation) -#define glBlendEquationSeparate GLEW_GET_FUN(__glewBlendEquationSeparate) -#define glCompileShader GLEW_GET_FUN(__glewCompileShader) -#define glCreateProgram GLEW_GET_FUN(__glewCreateProgram) -#define glCreateShader GLEW_GET_FUN(__glewCreateShader) -#define glDeleteProgram GLEW_GET_FUN(__glewDeleteProgram) -#define glDeleteShader GLEW_GET_FUN(__glewDeleteShader) -#define glDetachShader GLEW_GET_FUN(__glewDetachShader) -#define glDisableVertexAttribArray GLEW_GET_FUN(__glewDisableVertexAttribArray) -#define glDrawBuffers GLEW_GET_FUN(__glewDrawBuffers) -#define glEnableVertexAttribArray GLEW_GET_FUN(__glewEnableVertexAttribArray) -#define glGetActiveAttrib GLEW_GET_FUN(__glewGetActiveAttrib) -#define glGetActiveUniform GLEW_GET_FUN(__glewGetActiveUniform) -#define glGetAttachedShaders GLEW_GET_FUN(__glewGetAttachedShaders) -#define glGetAttribLocation GLEW_GET_FUN(__glewGetAttribLocation) -#define glGetProgramInfoLog GLEW_GET_FUN(__glewGetProgramInfoLog) -#define glGetProgramiv GLEW_GET_FUN(__glewGetProgramiv) -#define glGetShaderInfoLog GLEW_GET_FUN(__glewGetShaderInfoLog) -#define glGetShaderSource GLEW_GET_FUN(__glewGetShaderSource) -#define glGetShaderiv GLEW_GET_FUN(__glewGetShaderiv) -#define glGetUniformLocation GLEW_GET_FUN(__glewGetUniformLocation) -#define glGetUniformfv GLEW_GET_FUN(__glewGetUniformfv) -#define glGetUniformiv GLEW_GET_FUN(__glewGetUniformiv) -#define glGetVertexAttribPointerv GLEW_GET_FUN(__glewGetVertexAttribPointerv) -#define glGetVertexAttribdv GLEW_GET_FUN(__glewGetVertexAttribdv) -#define glGetVertexAttribfv GLEW_GET_FUN(__glewGetVertexAttribfv) -#define glGetVertexAttribiv GLEW_GET_FUN(__glewGetVertexAttribiv) -#define glIsProgram GLEW_GET_FUN(__glewIsProgram) -#define glIsShader GLEW_GET_FUN(__glewIsShader) -#define glLinkProgram GLEW_GET_FUN(__glewLinkProgram) -#define glShaderSource GLEW_GET_FUN(__glewShaderSource) -#define glStencilFuncSeparate GLEW_GET_FUN(__glewStencilFuncSeparate) -#define glStencilMaskSeparate GLEW_GET_FUN(__glewStencilMaskSeparate) -#define glStencilOpSeparate GLEW_GET_FUN(__glewStencilOpSeparate) -#define glUniform1f GLEW_GET_FUN(__glewUniform1f) -#define glUniform1fv GLEW_GET_FUN(__glewUniform1fv) -#define glUniform1i GLEW_GET_FUN(__glewUniform1i) -#define glUniform1iv GLEW_GET_FUN(__glewUniform1iv) -#define glUniform2f GLEW_GET_FUN(__glewUniform2f) -#define glUniform2fv GLEW_GET_FUN(__glewUniform2fv) -#define glUniform2i GLEW_GET_FUN(__glewUniform2i) -#define glUniform2iv GLEW_GET_FUN(__glewUniform2iv) -#define glUniform3f GLEW_GET_FUN(__glewUniform3f) -#define glUniform3fv GLEW_GET_FUN(__glewUniform3fv) -#define glUniform3i GLEW_GET_FUN(__glewUniform3i) -#define glUniform3iv GLEW_GET_FUN(__glewUniform3iv) -#define glUniform4f GLEW_GET_FUN(__glewUniform4f) -#define glUniform4fv GLEW_GET_FUN(__glewUniform4fv) -#define glUniform4i GLEW_GET_FUN(__glewUniform4i) -#define glUniform4iv GLEW_GET_FUN(__glewUniform4iv) -#define glUniformMatrix2fv GLEW_GET_FUN(__glewUniformMatrix2fv) -#define glUniformMatrix3fv GLEW_GET_FUN(__glewUniformMatrix3fv) -#define glUniformMatrix4fv GLEW_GET_FUN(__glewUniformMatrix4fv) -#define glUseProgram GLEW_GET_FUN(__glewUseProgram) -#define glValidateProgram GLEW_GET_FUN(__glewValidateProgram) -#define glVertexAttrib1d GLEW_GET_FUN(__glewVertexAttrib1d) -#define glVertexAttrib1dv GLEW_GET_FUN(__glewVertexAttrib1dv) -#define glVertexAttrib1f GLEW_GET_FUN(__glewVertexAttrib1f) -#define glVertexAttrib1fv GLEW_GET_FUN(__glewVertexAttrib1fv) -#define glVertexAttrib1s GLEW_GET_FUN(__glewVertexAttrib1s) -#define glVertexAttrib1sv GLEW_GET_FUN(__glewVertexAttrib1sv) -#define glVertexAttrib2d GLEW_GET_FUN(__glewVertexAttrib2d) -#define glVertexAttrib2dv GLEW_GET_FUN(__glewVertexAttrib2dv) -#define glVertexAttrib2f GLEW_GET_FUN(__glewVertexAttrib2f) -#define glVertexAttrib2fv GLEW_GET_FUN(__glewVertexAttrib2fv) -#define glVertexAttrib2s GLEW_GET_FUN(__glewVertexAttrib2s) -#define glVertexAttrib2sv GLEW_GET_FUN(__glewVertexAttrib2sv) -#define glVertexAttrib3d GLEW_GET_FUN(__glewVertexAttrib3d) -#define glVertexAttrib3dv GLEW_GET_FUN(__glewVertexAttrib3dv) -#define glVertexAttrib3f GLEW_GET_FUN(__glewVertexAttrib3f) -#define glVertexAttrib3fv GLEW_GET_FUN(__glewVertexAttrib3fv) -#define glVertexAttrib3s GLEW_GET_FUN(__glewVertexAttrib3s) -#define glVertexAttrib3sv GLEW_GET_FUN(__glewVertexAttrib3sv) -#define glVertexAttrib4Nbv GLEW_GET_FUN(__glewVertexAttrib4Nbv) -#define glVertexAttrib4Niv GLEW_GET_FUN(__glewVertexAttrib4Niv) -#define glVertexAttrib4Nsv GLEW_GET_FUN(__glewVertexAttrib4Nsv) -#define glVertexAttrib4Nub GLEW_GET_FUN(__glewVertexAttrib4Nub) -#define glVertexAttrib4Nubv GLEW_GET_FUN(__glewVertexAttrib4Nubv) -#define glVertexAttrib4Nuiv GLEW_GET_FUN(__glewVertexAttrib4Nuiv) -#define glVertexAttrib4Nusv GLEW_GET_FUN(__glewVertexAttrib4Nusv) -#define glVertexAttrib4bv GLEW_GET_FUN(__glewVertexAttrib4bv) -#define glVertexAttrib4d GLEW_GET_FUN(__glewVertexAttrib4d) -#define glVertexAttrib4dv GLEW_GET_FUN(__glewVertexAttrib4dv) -#define glVertexAttrib4f GLEW_GET_FUN(__glewVertexAttrib4f) -#define glVertexAttrib4fv GLEW_GET_FUN(__glewVertexAttrib4fv) -#define glVertexAttrib4iv GLEW_GET_FUN(__glewVertexAttrib4iv) -#define glVertexAttrib4s GLEW_GET_FUN(__glewVertexAttrib4s) -#define glVertexAttrib4sv GLEW_GET_FUN(__glewVertexAttrib4sv) -#define glVertexAttrib4ubv GLEW_GET_FUN(__glewVertexAttrib4ubv) -#define glVertexAttrib4uiv GLEW_GET_FUN(__glewVertexAttrib4uiv) -#define glVertexAttrib4usv GLEW_GET_FUN(__glewVertexAttrib4usv) -#define glVertexAttribPointer GLEW_GET_FUN(__glewVertexAttribPointer) - -#define GLEW_VERSION_2_0 GLEW_GET_VAR(__GLEW_VERSION_2_0) - -#endif /* GL_VERSION_2_0 */ - -/* ----------------------------- GL_VERSION_2_1 ---------------------------- */ - -#ifndef GL_VERSION_2_1 -#define GL_VERSION_2_1 1 - -#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_SLUMINANCE_ALPHA 0x8C44 -#define GL_SLUMINANCE8_ALPHA8 0x8C45 -#define GL_SLUMINANCE 0x8C46 -#define GL_SLUMINANCE8 0x8C47 -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#define GL_COMPRESSED_SLUMINANCE 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B - -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - -#define glUniformMatrix2x3fv GLEW_GET_FUN(__glewUniformMatrix2x3fv) -#define glUniformMatrix2x4fv GLEW_GET_FUN(__glewUniformMatrix2x4fv) -#define glUniformMatrix3x2fv GLEW_GET_FUN(__glewUniformMatrix3x2fv) -#define glUniformMatrix3x4fv GLEW_GET_FUN(__glewUniformMatrix3x4fv) -#define glUniformMatrix4x2fv GLEW_GET_FUN(__glewUniformMatrix4x2fv) -#define glUniformMatrix4x3fv GLEW_GET_FUN(__glewUniformMatrix4x3fv) - -#define GLEW_VERSION_2_1 GLEW_GET_VAR(__GLEW_VERSION_2_1) - -#endif /* GL_VERSION_2_1 */ - -/* ----------------------------- GL_VERSION_3_0 ---------------------------- */ - -#ifndef GL_VERSION_3_0 -#define GL_VERSION_3_0 1 - -#define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES -#define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 -#define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 -#define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 -#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB -#define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 -#define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 -#define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 -#define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS -#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_CONTEXT_FLAGS 0x821E -#define GL_DEPTH_BUFFER 0x8223 -#define GL_STENCIL_BUFFER 0x8224 -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_CLAMP_VERTEX_COLOR 0x891A -#define GL_CLAMP_FRAGMENT_COLOR 0x891B -#define GL_CLAMP_READ_COLOR 0x891C -#define GL_FIXED_ONLY 0x891D -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_TEXTURE_1D_ARRAY 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_GREEN_INTEGER 0x8D95 -#define GL_BLUE_INTEGER 0x8D96 -#define GL_ALPHA_INTEGER 0x8D97 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_BGR_INTEGER 0x8D9A -#define GL_BGRA_INTEGER 0x8D9B -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_QUERY_WAIT 0x8E13 -#define GL_QUERY_NO_WAIT 0x8E14 -#define GL_QUERY_BY_REGION_WAIT 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 - -typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint, GLenum); -typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum); -typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint, GLuint, const GLchar*); -typedef void (GLAPIENTRY * PFNGLCLAMPCOLORPROC) (GLenum, GLenum); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFIPROC) (GLenum, GLint, GLfloat, GLint); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFVPROC) (GLenum, GLint, const GLfloat*); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERIVPROC) (GLenum, GLint, const GLint*); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERUIVPROC) (GLenum, GLint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLCOLORMASKIPROC) (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); -typedef void (GLAPIENTRY * PFNGLDISABLEIPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLENABLEIPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERPROC) (void); -typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETBOOLEANI_VPROC) (GLenum, GLuint, GLboolean*); -typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONPROC) (GLuint, const GLchar*); -typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGIPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVPROC) (GLenum, GLenum, GLint*); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum, GLenum, GLuint*); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVPROC) (GLuint, GLint, GLuint*); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint, GLenum, GLint*); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint, GLenum, GLuint*); -typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVPROC) (GLenum, GLenum, const GLint*); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVPROC) (GLenum, GLenum, const GLuint*); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint, GLsizei, const GLchar **, GLenum); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIPROC) (GLint, GLuint); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVPROC) (GLint, GLsizei, const GLuint*); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIPROC) (GLint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVPROC) (GLint, GLsizei, const GLuint*); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIPROC) (GLint, GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVPROC) (GLint, GLsizei, const GLuint*); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIPROC) (GLint, GLuint, GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVPROC) (GLint, GLsizei, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IPROC) (GLuint, GLint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVPROC) (GLuint, const GLint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIPROC) (GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IPROC) (GLuint, GLint, GLint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVPROC) (GLuint, const GLint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIPROC) (GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IPROC) (GLuint, GLint, GLint, GLint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVPROC) (GLuint, const GLint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIPROC) (GLuint, GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVPROC) (GLuint, const GLbyte*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IPROC) (GLuint, GLint, GLint, GLint, GLint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVPROC) (GLuint, const GLint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVPROC) (GLuint, const GLshort*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint, const GLubyte*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIPROC) (GLuint, GLuint, GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVPROC) (GLuint, const GLushort*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint, GLint, GLenum, GLsizei, const GLvoid*); - -#define glBeginConditionalRender GLEW_GET_FUN(__glewBeginConditionalRender) -#define glBeginTransformFeedback GLEW_GET_FUN(__glewBeginTransformFeedback) -#define glBindFragDataLocation GLEW_GET_FUN(__glewBindFragDataLocation) -#define glClampColor GLEW_GET_FUN(__glewClampColor) -#define glClearBufferfi GLEW_GET_FUN(__glewClearBufferfi) -#define glClearBufferfv GLEW_GET_FUN(__glewClearBufferfv) -#define glClearBufferiv GLEW_GET_FUN(__glewClearBufferiv) -#define glClearBufferuiv GLEW_GET_FUN(__glewClearBufferuiv) -#define glColorMaski GLEW_GET_FUN(__glewColorMaski) -#define glDisablei GLEW_GET_FUN(__glewDisablei) -#define glEnablei GLEW_GET_FUN(__glewEnablei) -#define glEndConditionalRender GLEW_GET_FUN(__glewEndConditionalRender) -#define glEndTransformFeedback GLEW_GET_FUN(__glewEndTransformFeedback) -#define glGetBooleani_v GLEW_GET_FUN(__glewGetBooleani_v) -#define glGetFragDataLocation GLEW_GET_FUN(__glewGetFragDataLocation) -#define glGetStringi GLEW_GET_FUN(__glewGetStringi) -#define glGetTexParameterIiv GLEW_GET_FUN(__glewGetTexParameterIiv) -#define glGetTexParameterIuiv GLEW_GET_FUN(__glewGetTexParameterIuiv) -#define glGetTransformFeedbackVarying GLEW_GET_FUN(__glewGetTransformFeedbackVarying) -#define glGetUniformuiv GLEW_GET_FUN(__glewGetUniformuiv) -#define glGetVertexAttribIiv GLEW_GET_FUN(__glewGetVertexAttribIiv) -#define glGetVertexAttribIuiv GLEW_GET_FUN(__glewGetVertexAttribIuiv) -#define glIsEnabledi GLEW_GET_FUN(__glewIsEnabledi) -#define glTexParameterIiv GLEW_GET_FUN(__glewTexParameterIiv) -#define glTexParameterIuiv GLEW_GET_FUN(__glewTexParameterIuiv) -#define glTransformFeedbackVaryings GLEW_GET_FUN(__glewTransformFeedbackVaryings) -#define glUniform1ui GLEW_GET_FUN(__glewUniform1ui) -#define glUniform1uiv GLEW_GET_FUN(__glewUniform1uiv) -#define glUniform2ui GLEW_GET_FUN(__glewUniform2ui) -#define glUniform2uiv GLEW_GET_FUN(__glewUniform2uiv) -#define glUniform3ui GLEW_GET_FUN(__glewUniform3ui) -#define glUniform3uiv GLEW_GET_FUN(__glewUniform3uiv) -#define glUniform4ui GLEW_GET_FUN(__glewUniform4ui) -#define glUniform4uiv GLEW_GET_FUN(__glewUniform4uiv) -#define glVertexAttribI1i GLEW_GET_FUN(__glewVertexAttribI1i) -#define glVertexAttribI1iv GLEW_GET_FUN(__glewVertexAttribI1iv) -#define glVertexAttribI1ui GLEW_GET_FUN(__glewVertexAttribI1ui) -#define glVertexAttribI1uiv GLEW_GET_FUN(__glewVertexAttribI1uiv) -#define glVertexAttribI2i GLEW_GET_FUN(__glewVertexAttribI2i) -#define glVertexAttribI2iv GLEW_GET_FUN(__glewVertexAttribI2iv) -#define glVertexAttribI2ui GLEW_GET_FUN(__glewVertexAttribI2ui) -#define glVertexAttribI2uiv GLEW_GET_FUN(__glewVertexAttribI2uiv) -#define glVertexAttribI3i GLEW_GET_FUN(__glewVertexAttribI3i) -#define glVertexAttribI3iv GLEW_GET_FUN(__glewVertexAttribI3iv) -#define glVertexAttribI3ui GLEW_GET_FUN(__glewVertexAttribI3ui) -#define glVertexAttribI3uiv GLEW_GET_FUN(__glewVertexAttribI3uiv) -#define glVertexAttribI4bv GLEW_GET_FUN(__glewVertexAttribI4bv) -#define glVertexAttribI4i GLEW_GET_FUN(__glewVertexAttribI4i) -#define glVertexAttribI4iv GLEW_GET_FUN(__glewVertexAttribI4iv) -#define glVertexAttribI4sv GLEW_GET_FUN(__glewVertexAttribI4sv) -#define glVertexAttribI4ubv GLEW_GET_FUN(__glewVertexAttribI4ubv) -#define glVertexAttribI4ui GLEW_GET_FUN(__glewVertexAttribI4ui) -#define glVertexAttribI4uiv GLEW_GET_FUN(__glewVertexAttribI4uiv) -#define glVertexAttribI4usv GLEW_GET_FUN(__glewVertexAttribI4usv) -#define glVertexAttribIPointer GLEW_GET_FUN(__glewVertexAttribIPointer) - -#define GLEW_VERSION_3_0 GLEW_GET_VAR(__GLEW_VERSION_3_0) - -#endif /* GL_VERSION_3_0 */ - -/* ----------------------------- GL_VERSION_3_1 ---------------------------- */ - -#ifndef GL_VERSION_3_1 -#define GL_VERSION_3_1 1 - -#define GL_TEXTURE_RECTANGLE 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 -#define GL_SAMPLER_2D_RECT 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT 0x8C2E -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_2D_RECT 0x8DCD -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_RED_SNORM 0x8F90 -#define GL_RG_SNORM 0x8F91 -#define GL_RGB_SNORM 0x8F92 -#define GL_RGBA_SNORM 0x8F93 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM 0x8F98 -#define GL_RG16_SNORM 0x8F99 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGBA16_SNORM 0x8F9B -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART 0x8F9D -#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum, GLint, GLsizei, GLsizei); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum, GLsizei, GLenum, const GLvoid*, GLsizei); -typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint); -typedef void (GLAPIENTRY * PFNGLTEXBUFFERPROC) (GLenum, GLenum, GLuint); - -#define glDrawArraysInstanced GLEW_GET_FUN(__glewDrawArraysInstanced) -#define glDrawElementsInstanced GLEW_GET_FUN(__glewDrawElementsInstanced) -#define glPrimitiveRestartIndex GLEW_GET_FUN(__glewPrimitiveRestartIndex) -#define glTexBuffer GLEW_GET_FUN(__glewTexBuffer) - -#define GLEW_VERSION_3_1 GLEW_GET_VAR(__GLEW_VERSION_3_1) - -#endif /* GL_VERSION_3_1 */ - -/* ----------------------------- GL_VERSION_3_2 ---------------------------- */ - -#ifndef GL_VERSION_3_2 -#define GL_VERSION_3_2 1 - -#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 -#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_PROGRAM_POINT_SIZE 0x8642 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_CONTEXT_PROFILE_MASK 0x9126 - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum, GLenum, GLuint, GLint); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum, GLenum, GLint64 *); -typedef void (GLAPIENTRY * PFNGLGETINTEGER64I_VPROC) (GLenum, GLuint, GLint64 *); - -#define glFramebufferTexture GLEW_GET_FUN(__glewFramebufferTexture) -#define glGetBufferParameteri64v GLEW_GET_FUN(__glewGetBufferParameteri64v) -#define glGetInteger64i_v GLEW_GET_FUN(__glewGetInteger64i_v) - -#define GLEW_VERSION_3_2 GLEW_GET_VAR(__GLEW_VERSION_3_2) - -#endif /* GL_VERSION_3_2 */ - -/* ----------------------------- GL_VERSION_3_3 ---------------------------- */ - -#ifndef GL_VERSION_3_3 -#define GL_VERSION_3_3 1 - -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 -#define GL_RGB10_A2UI 0x906F - -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); - -#define glVertexAttribDivisor GLEW_GET_FUN(__glewVertexAttribDivisor) - -#define GLEW_VERSION_3_3 GLEW_GET_VAR(__GLEW_VERSION_3_3) - -#endif /* GL_VERSION_3_3 */ - -/* ----------------------------- GL_VERSION_4_0 ---------------------------- */ - -#ifndef GL_VERSION_4_0 -#define GL_VERSION_4_0 1 - -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGPROC) (GLclampf value); - -#define glBlendEquationSeparatei GLEW_GET_FUN(__glewBlendEquationSeparatei) -#define glBlendEquationi GLEW_GET_FUN(__glewBlendEquationi) -#define glBlendFuncSeparatei GLEW_GET_FUN(__glewBlendFuncSeparatei) -#define glBlendFunci GLEW_GET_FUN(__glewBlendFunci) -#define glMinSampleShading GLEW_GET_FUN(__glewMinSampleShading) - -#define GLEW_VERSION_4_0 GLEW_GET_VAR(__GLEW_VERSION_4_0) - -#endif /* GL_VERSION_4_0 */ - -/* ----------------------------- GL_VERSION_4_1 ---------------------------- */ - -#ifndef GL_VERSION_4_1 -#define GL_VERSION_4_1 1 - -#define GLEW_VERSION_4_1 GLEW_GET_VAR(__GLEW_VERSION_4_1) - -#endif /* GL_VERSION_4_1 */ - -/* ----------------------------- GL_VERSION_4_2 ---------------------------- */ - -#ifndef GL_VERSION_4_2 -#define GL_VERSION_4_2 1 - -#define GLEW_VERSION_4_2 GLEW_GET_VAR(__GLEW_VERSION_4_2) - -#endif /* GL_VERSION_4_2 */ - -/* -------------------------- GL_3DFX_multisample -------------------------- */ - -#ifndef GL_3DFX_multisample -#define GL_3DFX_multisample 1 - -#define GL_MULTISAMPLE_3DFX 0x86B2 -#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define GL_SAMPLES_3DFX 0x86B4 -#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 - -#define GLEW_3DFX_multisample GLEW_GET_VAR(__GLEW_3DFX_multisample) - -#endif /* GL_3DFX_multisample */ - -/* ---------------------------- GL_3DFX_tbuffer ---------------------------- */ - -#ifndef GL_3DFX_tbuffer -#define GL_3DFX_tbuffer 1 - -typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); - -#define glTbufferMask3DFX GLEW_GET_FUN(__glewTbufferMask3DFX) - -#define GLEW_3DFX_tbuffer GLEW_GET_VAR(__GLEW_3DFX_tbuffer) - -#endif /* GL_3DFX_tbuffer */ - -/* -------------------- GL_3DFX_texture_compression_FXT1 ------------------- */ - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_3DFX_texture_compression_FXT1 1 - -#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 - -#define GLEW_3DFX_texture_compression_FXT1 GLEW_GET_VAR(__GLEW_3DFX_texture_compression_FXT1) - -#endif /* GL_3DFX_texture_compression_FXT1 */ - -/* ----------------------- GL_AMD_blend_minmax_factor ---------------------- */ - -#ifndef GL_AMD_blend_minmax_factor -#define GL_AMD_blend_minmax_factor 1 - -#define GL_FACTOR_MIN_AMD 0x901C -#define GL_FACTOR_MAX_AMD 0x901D - -#define GLEW_AMD_blend_minmax_factor GLEW_GET_VAR(__GLEW_AMD_blend_minmax_factor) - -#endif /* GL_AMD_blend_minmax_factor */ - -/* ----------------------- GL_AMD_conservative_depth ----------------------- */ - -#ifndef GL_AMD_conservative_depth -#define GL_AMD_conservative_depth 1 - -#define GLEW_AMD_conservative_depth GLEW_GET_VAR(__GLEW_AMD_conservative_depth) - -#endif /* GL_AMD_conservative_depth */ - -/* -------------------------- GL_AMD_debug_output -------------------------- */ - -#ifndef GL_AMD_debug_output -#define GL_AMD_debug_output 1 - -#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 -#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 -#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 -#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A -#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B -#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C -#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D -#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E -#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F -#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 - -typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam); - -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void* userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const char* buf); -typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, char* message); - -#define glDebugMessageCallbackAMD GLEW_GET_FUN(__glewDebugMessageCallbackAMD) -#define glDebugMessageEnableAMD GLEW_GET_FUN(__glewDebugMessageEnableAMD) -#define glDebugMessageInsertAMD GLEW_GET_FUN(__glewDebugMessageInsertAMD) -#define glGetDebugMessageLogAMD GLEW_GET_FUN(__glewGetDebugMessageLogAMD) - -#define GLEW_AMD_debug_output GLEW_GET_VAR(__GLEW_AMD_debug_output) - -#endif /* GL_AMD_debug_output */ - -/* ---------------------- GL_AMD_depth_clamp_separate ---------------------- */ - -#ifndef GL_AMD_depth_clamp_separate -#define GL_AMD_depth_clamp_separate 1 - -#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E -#define GL_DEPTH_CLAMP_FAR_AMD 0x901F - -#define GLEW_AMD_depth_clamp_separate GLEW_GET_VAR(__GLEW_AMD_depth_clamp_separate) - -#endif /* GL_AMD_depth_clamp_separate */ - -/* ----------------------- GL_AMD_draw_buffers_blend ----------------------- */ - -#ifndef GL_AMD_draw_buffers_blend -#define GL_AMD_draw_buffers_blend 1 - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); - -#define glBlendEquationIndexedAMD GLEW_GET_FUN(__glewBlendEquationIndexedAMD) -#define glBlendEquationSeparateIndexedAMD GLEW_GET_FUN(__glewBlendEquationSeparateIndexedAMD) -#define glBlendFuncIndexedAMD GLEW_GET_FUN(__glewBlendFuncIndexedAMD) -#define glBlendFuncSeparateIndexedAMD GLEW_GET_FUN(__glewBlendFuncSeparateIndexedAMD) - -#define GLEW_AMD_draw_buffers_blend GLEW_GET_VAR(__GLEW_AMD_draw_buffers_blend) - -#endif /* GL_AMD_draw_buffers_blend */ - -/* ----------------------- GL_AMD_multi_draw_indirect ---------------------- */ - -#ifndef GL_AMD_multi_draw_indirect -#define GL_AMD_multi_draw_indirect 1 - -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void* indirect, GLsizei primcount, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void* indirect, GLsizei primcount, GLsizei stride); - -#define glMultiDrawArraysIndirectAMD GLEW_GET_FUN(__glewMultiDrawArraysIndirectAMD) -#define glMultiDrawElementsIndirectAMD GLEW_GET_FUN(__glewMultiDrawElementsIndirectAMD) - -#define GLEW_AMD_multi_draw_indirect GLEW_GET_VAR(__GLEW_AMD_multi_draw_indirect) - -#endif /* GL_AMD_multi_draw_indirect */ - -/* ------------------------- GL_AMD_name_gen_delete ------------------------ */ - -#ifndef GL_AMD_name_gen_delete -#define GL_AMD_name_gen_delete 1 - -#define GL_DATA_BUFFER_AMD 0x9151 -#define GL_PERFORMANCE_MONITOR_AMD 0x9152 -#define GL_QUERY_OBJECT_AMD 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 -#define GL_SAMPLER_OBJECT_AMD 0x9155 - -typedef void (GLAPIENTRY * PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint* names); -typedef void (GLAPIENTRY * PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint* names); -typedef GLboolean (GLAPIENTRY * PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); - -#define glDeleteNamesAMD GLEW_GET_FUN(__glewDeleteNamesAMD) -#define glGenNamesAMD GLEW_GET_FUN(__glewGenNamesAMD) -#define glIsNameAMD GLEW_GET_FUN(__glewIsNameAMD) - -#define GLEW_AMD_name_gen_delete GLEW_GET_VAR(__GLEW_AMD_name_gen_delete) - -#endif /* GL_AMD_name_gen_delete */ - -/* ----------------------- GL_AMD_performance_monitor ---------------------- */ - -#ifndef GL_AMD_performance_monitor -#define GL_AMD_performance_monitor 1 - -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_COUNTER_TYPE_AMD 0x8BC0 -#define GL_COUNTER_RANGE_AMD 0x8BC1 -#define GL_UNSIGNED_INT64_AMD 0x8BC2 -#define GL_PERCENTAGE_AMD 0x8BC3 -#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 -#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 -#define GL_PERFMON_RESULT_AMD 0x8BC6 - -typedef void (GLAPIENTRY * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GLAPIENTRY * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); -typedef void (GLAPIENTRY * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GLAPIENTRY * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void* data); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, char *counterString); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei* length, char *groupString); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint* numGroups, GLsizei groupsSize, GLuint *groups); -typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList); - -#define glBeginPerfMonitorAMD GLEW_GET_FUN(__glewBeginPerfMonitorAMD) -#define glDeletePerfMonitorsAMD GLEW_GET_FUN(__glewDeletePerfMonitorsAMD) -#define glEndPerfMonitorAMD GLEW_GET_FUN(__glewEndPerfMonitorAMD) -#define glGenPerfMonitorsAMD GLEW_GET_FUN(__glewGenPerfMonitorsAMD) -#define glGetPerfMonitorCounterDataAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterDataAMD) -#define glGetPerfMonitorCounterInfoAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterInfoAMD) -#define glGetPerfMonitorCounterStringAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterStringAMD) -#define glGetPerfMonitorCountersAMD GLEW_GET_FUN(__glewGetPerfMonitorCountersAMD) -#define glGetPerfMonitorGroupStringAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupStringAMD) -#define glGetPerfMonitorGroupsAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupsAMD) -#define glSelectPerfMonitorCountersAMD GLEW_GET_FUN(__glewSelectPerfMonitorCountersAMD) - -#define GLEW_AMD_performance_monitor GLEW_GET_VAR(__GLEW_AMD_performance_monitor) - -#endif /* GL_AMD_performance_monitor */ - -/* ------------------------ GL_AMD_sample_positions ------------------------ */ - -#ifndef GL_AMD_sample_positions -#define GL_AMD_sample_positions 1 - -#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F - -typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat* val); - -#define glSetMultisamplefvAMD GLEW_GET_FUN(__glewSetMultisamplefvAMD) - -#define GLEW_AMD_sample_positions GLEW_GET_VAR(__GLEW_AMD_sample_positions) - -#endif /* GL_AMD_sample_positions */ - -/* ------------------ GL_AMD_seamless_cubemap_per_texture ------------------ */ - -#ifndef GL_AMD_seamless_cubemap_per_texture -#define GL_AMD_seamless_cubemap_per_texture 1 - -#define GL_TEXTURE_CUBE_MAP_SEAMLESS_ARB 0x884F - -#define GLEW_AMD_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_AMD_seamless_cubemap_per_texture) - -#endif /* GL_AMD_seamless_cubemap_per_texture */ - -/* ---------------------- GL_AMD_shader_stencil_export --------------------- */ - -#ifndef GL_AMD_shader_stencil_export -#define GL_AMD_shader_stencil_export 1 - -#define GLEW_AMD_shader_stencil_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_export) - -#endif /* GL_AMD_shader_stencil_export */ - -/* ------------------------ GL_AMD_texture_texture4 ------------------------ */ - -#ifndef GL_AMD_texture_texture4 -#define GL_AMD_texture_texture4 1 - -#define GLEW_AMD_texture_texture4 GLEW_GET_VAR(__GLEW_AMD_texture_texture4) - -#endif /* GL_AMD_texture_texture4 */ - -/* --------------- GL_AMD_transform_feedback3_lines_triangles -------------- */ - -#ifndef GL_AMD_transform_feedback3_lines_triangles -#define GL_AMD_transform_feedback3_lines_triangles 1 - -#define GLEW_AMD_transform_feedback3_lines_triangles GLEW_GET_VAR(__GLEW_AMD_transform_feedback3_lines_triangles) - -#endif /* GL_AMD_transform_feedback3_lines_triangles */ - -/* -------------------- GL_AMD_vertex_shader_tessellator ------------------- */ - -#ifndef GL_AMD_vertex_shader_tessellator -#define GL_AMD_vertex_shader_tessellator 1 - -#define GL_SAMPLER_BUFFER_AMD 0x9001 -#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 -#define GL_TESSELLATION_MODE_AMD 0x9004 -#define GL_TESSELLATION_FACTOR_AMD 0x9005 -#define GL_DISCRETE_AMD 0x9006 -#define GL_CONTINUOUS_AMD 0x9007 - -typedef void (GLAPIENTRY * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); -typedef void (GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); - -#define glTessellationFactorAMD GLEW_GET_FUN(__glewTessellationFactorAMD) -#define glTessellationModeAMD GLEW_GET_FUN(__glewTessellationModeAMD) - -#define GLEW_AMD_vertex_shader_tessellator GLEW_GET_VAR(__GLEW_AMD_vertex_shader_tessellator) - -#endif /* GL_AMD_vertex_shader_tessellator */ - -/* ----------------------- GL_APPLE_aux_depth_stencil ---------------------- */ - -#ifndef GL_APPLE_aux_depth_stencil -#define GL_APPLE_aux_depth_stencil 1 - -#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 - -#define GLEW_APPLE_aux_depth_stencil GLEW_GET_VAR(__GLEW_APPLE_aux_depth_stencil) - -#endif /* GL_APPLE_aux_depth_stencil */ - -/* ------------------------ GL_APPLE_client_storage ------------------------ */ - -#ifndef GL_APPLE_client_storage -#define GL_APPLE_client_storage 1 - -#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 - -#define GLEW_APPLE_client_storage GLEW_GET_VAR(__GLEW_APPLE_client_storage) - -#endif /* GL_APPLE_client_storage */ - -/* ------------------------- GL_APPLE_element_array ------------------------ */ - -#ifndef GL_APPLE_element_array -#define GL_APPLE_element_array 1 - -#define GL_ELEMENT_ARRAY_APPLE 0x8A0C -#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D -#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E - -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void* pointer); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint* first, const GLsizei *count, GLsizei primcount); - -#define glDrawElementArrayAPPLE GLEW_GET_FUN(__glewDrawElementArrayAPPLE) -#define glDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewDrawRangeElementArrayAPPLE) -#define glElementPointerAPPLE GLEW_GET_FUN(__glewElementPointerAPPLE) -#define glMultiDrawElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawElementArrayAPPLE) -#define glMultiDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawRangeElementArrayAPPLE) - -#define GLEW_APPLE_element_array GLEW_GET_VAR(__GLEW_APPLE_element_array) - -#endif /* GL_APPLE_element_array */ - -/* ----------------------------- GL_APPLE_fence ---------------------------- */ - -#ifndef GL_APPLE_fence -#define GL_APPLE_fence 1 - -#define GL_DRAW_PIXELS_APPLE 0x8A0A -#define GL_FENCE_APPLE 0x8A0B - -typedef void (GLAPIENTRY * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint* fences); -typedef void (GLAPIENTRY * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); -typedef void (GLAPIENTRY * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint* fences); -typedef GLboolean (GLAPIENTRY * PFNGLISFENCEAPPLEPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLSETFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); - -#define glDeleteFencesAPPLE GLEW_GET_FUN(__glewDeleteFencesAPPLE) -#define glFinishFenceAPPLE GLEW_GET_FUN(__glewFinishFenceAPPLE) -#define glFinishObjectAPPLE GLEW_GET_FUN(__glewFinishObjectAPPLE) -#define glGenFencesAPPLE GLEW_GET_FUN(__glewGenFencesAPPLE) -#define glIsFenceAPPLE GLEW_GET_FUN(__glewIsFenceAPPLE) -#define glSetFenceAPPLE GLEW_GET_FUN(__glewSetFenceAPPLE) -#define glTestFenceAPPLE GLEW_GET_FUN(__glewTestFenceAPPLE) -#define glTestObjectAPPLE GLEW_GET_FUN(__glewTestObjectAPPLE) - -#define GLEW_APPLE_fence GLEW_GET_VAR(__GLEW_APPLE_fence) - -#endif /* GL_APPLE_fence */ - -/* ------------------------- GL_APPLE_float_pixels ------------------------- */ - -#ifndef GL_APPLE_float_pixels -#define GL_APPLE_float_pixels 1 - -#define GL_HALF_APPLE 0x140B -#define GL_RGBA_FLOAT32_APPLE 0x8814 -#define GL_RGB_FLOAT32_APPLE 0x8815 -#define GL_ALPHA_FLOAT32_APPLE 0x8816 -#define GL_INTENSITY_FLOAT32_APPLE 0x8817 -#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 -#define GL_RGBA_FLOAT16_APPLE 0x881A -#define GL_RGB_FLOAT16_APPLE 0x881B -#define GL_ALPHA_FLOAT16_APPLE 0x881C -#define GL_INTENSITY_FLOAT16_APPLE 0x881D -#define GL_LUMINANCE_FLOAT16_APPLE 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F -#define GL_COLOR_FLOAT_APPLE 0x8A0F - -#define GLEW_APPLE_float_pixels GLEW_GET_VAR(__GLEW_APPLE_float_pixels) - -#endif /* GL_APPLE_float_pixels */ - -/* ---------------------- GL_APPLE_flush_buffer_range ---------------------- */ - -#ifndef GL_APPLE_flush_buffer_range -#define GL_APPLE_flush_buffer_range 1 - -#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 -#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 - -typedef void (GLAPIENTRY * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); - -#define glBufferParameteriAPPLE GLEW_GET_FUN(__glewBufferParameteriAPPLE) -#define glFlushMappedBufferRangeAPPLE GLEW_GET_FUN(__glewFlushMappedBufferRangeAPPLE) - -#define GLEW_APPLE_flush_buffer_range GLEW_GET_VAR(__GLEW_APPLE_flush_buffer_range) - -#endif /* GL_APPLE_flush_buffer_range */ - -/* ----------------------- GL_APPLE_object_purgeable ----------------------- */ - -#ifndef GL_APPLE_object_purgeable -#define GL_APPLE_object_purgeable 1 - -#define GL_BUFFER_OBJECT_APPLE 0x85B3 -#define GL_RELEASED_APPLE 0x8A19 -#define GL_VOLATILE_APPLE 0x8A1A -#define GL_RETAINED_APPLE 0x8A1B -#define GL_UNDEFINED_APPLE 0x8A1C -#define GL_PURGEABLE_APPLE 0x8A1D - -typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint* params); -typedef GLenum (GLAPIENTRY * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); -typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); - -#define glGetObjectParameterivAPPLE GLEW_GET_FUN(__glewGetObjectParameterivAPPLE) -#define glObjectPurgeableAPPLE GLEW_GET_FUN(__glewObjectPurgeableAPPLE) -#define glObjectUnpurgeableAPPLE GLEW_GET_FUN(__glewObjectUnpurgeableAPPLE) - -#define GLEW_APPLE_object_purgeable GLEW_GET_VAR(__GLEW_APPLE_object_purgeable) - -#endif /* GL_APPLE_object_purgeable */ - -/* ------------------------- GL_APPLE_pixel_buffer ------------------------- */ - -#ifndef GL_APPLE_pixel_buffer -#define GL_APPLE_pixel_buffer 1 - -#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10 - -#define GLEW_APPLE_pixel_buffer GLEW_GET_VAR(__GLEW_APPLE_pixel_buffer) - -#endif /* GL_APPLE_pixel_buffer */ - -/* ---------------------------- GL_APPLE_rgb_422 --------------------------- */ - -#ifndef GL_APPLE_rgb_422 -#define GL_APPLE_rgb_422 1 - -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#define GL_RGB_422_APPLE 0x8A1F - -#define GLEW_APPLE_rgb_422 GLEW_GET_VAR(__GLEW_APPLE_rgb_422) - -#endif /* GL_APPLE_rgb_422 */ - -/* --------------------------- GL_APPLE_row_bytes -------------------------- */ - -#ifndef GL_APPLE_row_bytes -#define GL_APPLE_row_bytes 1 - -#define GL_PACK_ROW_BYTES_APPLE 0x8A15 -#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 - -#define GLEW_APPLE_row_bytes GLEW_GET_VAR(__GLEW_APPLE_row_bytes) - -#endif /* GL_APPLE_row_bytes */ - -/* ------------------------ GL_APPLE_specular_vector ----------------------- */ - -#ifndef GL_APPLE_specular_vector -#define GL_APPLE_specular_vector 1 - -#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 - -#define GLEW_APPLE_specular_vector GLEW_GET_VAR(__GLEW_APPLE_specular_vector) - -#endif /* GL_APPLE_specular_vector */ - -/* ------------------------- GL_APPLE_texture_range ------------------------ */ - -#ifndef GL_APPLE_texture_range -#define GL_APPLE_texture_range 1 - -#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 -#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 -#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC -#define GL_STORAGE_PRIVATE_APPLE 0x85BD -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF - -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid **params); -typedef void (GLAPIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, GLvoid *pointer); - -#define glGetTexParameterPointervAPPLE GLEW_GET_FUN(__glewGetTexParameterPointervAPPLE) -#define glTextureRangeAPPLE GLEW_GET_FUN(__glewTextureRangeAPPLE) - -#define GLEW_APPLE_texture_range GLEW_GET_VAR(__GLEW_APPLE_texture_range) - -#endif /* GL_APPLE_texture_range */ - -/* ------------------------ GL_APPLE_transform_hint ------------------------ */ - -#ifndef GL_APPLE_transform_hint -#define GL_APPLE_transform_hint 1 - -#define GL_TRANSFORM_HINT_APPLE 0x85B1 - -#define GLEW_APPLE_transform_hint GLEW_GET_VAR(__GLEW_APPLE_transform_hint) - -#endif /* GL_APPLE_transform_hint */ - -/* ---------------------- GL_APPLE_vertex_array_object --------------------- */ - -#ifndef GL_APPLE_vertex_array_object -#define GL_APPLE_vertex_array_object 1 - -#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 - -typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); -typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); -typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); -typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); - -#define glBindVertexArrayAPPLE GLEW_GET_FUN(__glewBindVertexArrayAPPLE) -#define glDeleteVertexArraysAPPLE GLEW_GET_FUN(__glewDeleteVertexArraysAPPLE) -#define glGenVertexArraysAPPLE GLEW_GET_FUN(__glewGenVertexArraysAPPLE) -#define glIsVertexArrayAPPLE GLEW_GET_FUN(__glewIsVertexArrayAPPLE) - -#define GLEW_APPLE_vertex_array_object GLEW_GET_VAR(__GLEW_APPLE_vertex_array_object) - -#endif /* GL_APPLE_vertex_array_object */ - -/* ---------------------- GL_APPLE_vertex_array_range ---------------------- */ - -#ifndef GL_APPLE_vertex_array_range -#define GL_APPLE_vertex_array_range 1 - -#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E -#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 -#define GL_STORAGE_CLIENT_APPLE 0x85B4 -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF - -typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void* pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void* pointer); - -#define glFlushVertexArrayRangeAPPLE GLEW_GET_FUN(__glewFlushVertexArrayRangeAPPLE) -#define glVertexArrayParameteriAPPLE GLEW_GET_FUN(__glewVertexArrayParameteriAPPLE) -#define glVertexArrayRangeAPPLE GLEW_GET_FUN(__glewVertexArrayRangeAPPLE) - -#define GLEW_APPLE_vertex_array_range GLEW_GET_VAR(__GLEW_APPLE_vertex_array_range) - -#endif /* GL_APPLE_vertex_array_range */ - -/* ------------------- GL_APPLE_vertex_program_evaluators ------------------ */ - -#ifndef GL_APPLE_vertex_program_evaluators -#define GL_APPLE_vertex_program_evaluators 1 - -#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 -#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 -#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 -#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 -#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 -#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 -#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 -#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 -#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 -#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 - -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points); - -#define glDisableVertexAttribAPPLE GLEW_GET_FUN(__glewDisableVertexAttribAPPLE) -#define glEnableVertexAttribAPPLE GLEW_GET_FUN(__glewEnableVertexAttribAPPLE) -#define glIsVertexAttribEnabledAPPLE GLEW_GET_FUN(__glewIsVertexAttribEnabledAPPLE) -#define glMapVertexAttrib1dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1dAPPLE) -#define glMapVertexAttrib1fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1fAPPLE) -#define glMapVertexAttrib2dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2dAPPLE) -#define glMapVertexAttrib2fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2fAPPLE) - -#define GLEW_APPLE_vertex_program_evaluators GLEW_GET_VAR(__GLEW_APPLE_vertex_program_evaluators) - -#endif /* GL_APPLE_vertex_program_evaluators */ - -/* --------------------------- GL_APPLE_ycbcr_422 -------------------------- */ - -#ifndef GL_APPLE_ycbcr_422 -#define GL_APPLE_ycbcr_422 1 - -#define GL_YCBCR_422_APPLE 0x85B9 -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB - -#define GLEW_APPLE_ycbcr_422 GLEW_GET_VAR(__GLEW_APPLE_ycbcr_422) - -#endif /* GL_APPLE_ycbcr_422 */ - -/* ------------------------ GL_ARB_ES2_compatibility ----------------------- */ - -#ifndef GL_ARB_ES2_compatibility -#define GL_ARB_ES2_compatibility 1 - -#define GL_FIXED 0x140C -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD - -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf d); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); -typedef void (GLAPIENTRY * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision); -typedef void (GLAPIENTRY * PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GLAPIENTRY * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint* shaders, GLenum binaryformat, const GLvoid*binary, GLsizei length); - -#define glClearDepthf GLEW_GET_FUN(__glewClearDepthf) -#define glDepthRangef GLEW_GET_FUN(__glewDepthRangef) -#define glGetShaderPrecisionFormat GLEW_GET_FUN(__glewGetShaderPrecisionFormat) -#define glReleaseShaderCompiler GLEW_GET_FUN(__glewReleaseShaderCompiler) -#define glShaderBinary GLEW_GET_FUN(__glewShaderBinary) - -#define GLEW_ARB_ES2_compatibility GLEW_GET_VAR(__GLEW_ARB_ES2_compatibility) - -#endif /* GL_ARB_ES2_compatibility */ - -/* -------------------------- GL_ARB_base_instance ------------------------- */ - -#ifndef GL_ARB_base_instance -#define GL_ARB_base_instance 1 - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLuint baseinstance); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); - -#define glDrawArraysInstancedBaseInstance GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstance) -#define glDrawElementsInstancedBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstance) -#define glDrawElementsInstancedBaseVertexBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexBaseInstance) - -#define GLEW_ARB_base_instance GLEW_GET_VAR(__GLEW_ARB_base_instance) - -#endif /* GL_ARB_base_instance */ - -/* ----------------------- GL_ARB_blend_func_extended ---------------------- */ - -#ifndef GL_ARB_blend_func_extended -#define GL_ARB_blend_func_extended 1 - -#define GL_SRC1_COLOR 0x88F9 -#define GL_ONE_MINUS_SRC1_COLOR 0x88FA -#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC - -typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const char * name); -typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const char * name); - -#define glBindFragDataLocationIndexed GLEW_GET_FUN(__glewBindFragDataLocationIndexed) -#define glGetFragDataIndex GLEW_GET_FUN(__glewGetFragDataIndex) - -#define GLEW_ARB_blend_func_extended GLEW_GET_VAR(__GLEW_ARB_blend_func_extended) - -#endif /* GL_ARB_blend_func_extended */ - -/* ---------------------------- GL_ARB_cl_event ---------------------------- */ - -#ifndef GL_ARB_cl_event -#define GL_ARB_cl_event 1 - -#define GL_SYNC_CL_EVENT_ARB 0x8240 -#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 - -typedef struct _cl_context *cl_context; -typedef struct _cl_event *cl_event; - -typedef GLsync (GLAPIENTRY * PFNGLCREATESYNCFROMCLEVENTARBPROC) (cl_context context, cl_event event, GLbitfield flags); - -#define glCreateSyncFromCLeventARB GLEW_GET_FUN(__glewCreateSyncFromCLeventARB) - -#define GLEW_ARB_cl_event GLEW_GET_VAR(__GLEW_ARB_cl_event) - -#endif /* GL_ARB_cl_event */ - -/* ----------------------- GL_ARB_color_buffer_float ----------------------- */ - -#ifndef GL_ARB_color_buffer_float -#define GL_ARB_color_buffer_float 1 - -#define GL_RGBA_FLOAT_MODE_ARB 0x8820 -#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A -#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B -#define GL_CLAMP_READ_COLOR_ARB 0x891C -#define GL_FIXED_ONLY_ARB 0x891D - -typedef void (GLAPIENTRY * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); - -#define glClampColorARB GLEW_GET_FUN(__glewClampColorARB) - -#define GLEW_ARB_color_buffer_float GLEW_GET_VAR(__GLEW_ARB_color_buffer_float) - -#endif /* GL_ARB_color_buffer_float */ - -/* -------------------------- GL_ARB_compatibility ------------------------- */ - -#ifndef GL_ARB_compatibility -#define GL_ARB_compatibility 1 - -#define GLEW_ARB_compatibility GLEW_GET_VAR(__GLEW_ARB_compatibility) - -#endif /* GL_ARB_compatibility */ - -/* ---------------- GL_ARB_compressed_texture_pixel_storage ---------------- */ - -#ifndef GL_ARB_compressed_texture_pixel_storage -#define GL_ARB_compressed_texture_pixel_storage 1 - -#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 -#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 -#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 -#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A -#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B -#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C -#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D -#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E - -#define GLEW_ARB_compressed_texture_pixel_storage GLEW_GET_VAR(__GLEW_ARB_compressed_texture_pixel_storage) - -#endif /* GL_ARB_compressed_texture_pixel_storage */ - -/* ----------------------- GL_ARB_conservative_depth ----------------------- */ - -#ifndef GL_ARB_conservative_depth -#define GL_ARB_conservative_depth 1 - -#define GLEW_ARB_conservative_depth GLEW_GET_VAR(__GLEW_ARB_conservative_depth) - -#endif /* GL_ARB_conservative_depth */ - -/* --------------------------- GL_ARB_copy_buffer -------------------------- */ - -#ifndef GL_ARB_copy_buffer -#define GL_ARB_copy_buffer 1 - -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 - -typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); - -#define glCopyBufferSubData GLEW_GET_FUN(__glewCopyBufferSubData) - -#define GLEW_ARB_copy_buffer GLEW_GET_VAR(__GLEW_ARB_copy_buffer) - -#endif /* GL_ARB_copy_buffer */ - -/* -------------------------- GL_ARB_debug_output -------------------------- */ - -#ifndef GL_ARB_debug_output -#define GL_ARB_debug_output 1 - -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 -#define GL_DEBUG_SOURCE_API_ARB 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A -#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B -#define GL_DEBUG_TYPE_ERROR_ARB 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 -#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 -#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 - -typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam); - -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, void* userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char* buf); -typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, char* messageLog); - -#define glDebugMessageCallbackARB GLEW_GET_FUN(__glewDebugMessageCallbackARB) -#define glDebugMessageControlARB GLEW_GET_FUN(__glewDebugMessageControlARB) -#define glDebugMessageInsertARB GLEW_GET_FUN(__glewDebugMessageInsertARB) -#define glGetDebugMessageLogARB GLEW_GET_FUN(__glewGetDebugMessageLogARB) - -#define GLEW_ARB_debug_output GLEW_GET_VAR(__GLEW_ARB_debug_output) - -#endif /* GL_ARB_debug_output */ - -/* ----------------------- GL_ARB_depth_buffer_float ----------------------- */ - -#ifndef GL_ARB_depth_buffer_float -#define GL_ARB_depth_buffer_float 1 - -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD - -#define GLEW_ARB_depth_buffer_float GLEW_GET_VAR(__GLEW_ARB_depth_buffer_float) - -#endif /* GL_ARB_depth_buffer_float */ - -/* --------------------------- GL_ARB_depth_clamp -------------------------- */ - -#ifndef GL_ARB_depth_clamp -#define GL_ARB_depth_clamp 1 - -#define GL_DEPTH_CLAMP 0x864F - -#define GLEW_ARB_depth_clamp GLEW_GET_VAR(__GLEW_ARB_depth_clamp) - -#endif /* GL_ARB_depth_clamp */ - -/* -------------------------- GL_ARB_depth_texture ------------------------- */ - -#ifndef GL_ARB_depth_texture -#define GL_ARB_depth_texture 1 - -#define GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B - -#define GLEW_ARB_depth_texture GLEW_GET_VAR(__GLEW_ARB_depth_texture) - -#endif /* GL_ARB_depth_texture */ - -/* -------------------------- GL_ARB_draw_buffers -------------------------- */ - -#ifndef GL_ARB_draw_buffers -#define GL_ARB_draw_buffers 1 - -#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define GL_DRAW_BUFFER0_ARB 0x8825 -#define GL_DRAW_BUFFER1_ARB 0x8826 -#define GL_DRAW_BUFFER2_ARB 0x8827 -#define GL_DRAW_BUFFER3_ARB 0x8828 -#define GL_DRAW_BUFFER4_ARB 0x8829 -#define GL_DRAW_BUFFER5_ARB 0x882A -#define GL_DRAW_BUFFER6_ARB 0x882B -#define GL_DRAW_BUFFER7_ARB 0x882C -#define GL_DRAW_BUFFER8_ARB 0x882D -#define GL_DRAW_BUFFER9_ARB 0x882E -#define GL_DRAW_BUFFER10_ARB 0x882F -#define GL_DRAW_BUFFER11_ARB 0x8830 -#define GL_DRAW_BUFFER12_ARB 0x8831 -#define GL_DRAW_BUFFER13_ARB 0x8832 -#define GL_DRAW_BUFFER14_ARB 0x8833 -#define GL_DRAW_BUFFER15_ARB 0x8834 - -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bufs); - -#define glDrawBuffersARB GLEW_GET_FUN(__glewDrawBuffersARB) - -#define GLEW_ARB_draw_buffers GLEW_GET_VAR(__GLEW_ARB_draw_buffers) - -#endif /* GL_ARB_draw_buffers */ - -/* ----------------------- GL_ARB_draw_buffers_blend ----------------------- */ - -#ifndef GL_ARB_draw_buffers_blend -#define GL_ARB_draw_buffers_blend 1 - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); - -#define glBlendEquationSeparateiARB GLEW_GET_FUN(__glewBlendEquationSeparateiARB) -#define glBlendEquationiARB GLEW_GET_FUN(__glewBlendEquationiARB) -#define glBlendFuncSeparateiARB GLEW_GET_FUN(__glewBlendFuncSeparateiARB) -#define glBlendFunciARB GLEW_GET_FUN(__glewBlendFunciARB) - -#define GLEW_ARB_draw_buffers_blend GLEW_GET_VAR(__GLEW_ARB_draw_buffers_blend) - -#endif /* GL_ARB_draw_buffers_blend */ - -/* -------------------- GL_ARB_draw_elements_base_vertex ------------------- */ - -#ifndef GL_ARB_draw_elements_base_vertex -#define GL_ARB_draw_elements_base_vertex 1 - -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, void* indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, void* indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei* count, GLenum type, GLvoid**indices, GLsizei primcount, GLint *basevertex); - -#define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex) -#define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex) -#define glDrawRangeElementsBaseVertex GLEW_GET_FUN(__glewDrawRangeElementsBaseVertex) -#define glMultiDrawElementsBaseVertex GLEW_GET_FUN(__glewMultiDrawElementsBaseVertex) - -#define GLEW_ARB_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_ARB_draw_elements_base_vertex) - -#endif /* GL_ARB_draw_elements_base_vertex */ - -/* -------------------------- GL_ARB_draw_indirect ------------------------- */ - -#ifndef GL_ARB_draw_indirect -#define GL_ARB_draw_indirect 1 - -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void* indirect); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void* indirect); - -#define glDrawArraysIndirect GLEW_GET_FUN(__glewDrawArraysIndirect) -#define glDrawElementsIndirect GLEW_GET_FUN(__glewDrawElementsIndirect) - -#define GLEW_ARB_draw_indirect GLEW_GET_VAR(__GLEW_ARB_draw_indirect) - -#endif /* GL_ARB_draw_indirect */ - -/* ------------------------- GL_ARB_draw_instanced ------------------------- */ - -#ifndef GL_ARB_draw_instanced -#define GL_ARB_draw_instanced 1 - -#define GLEW_ARB_draw_instanced GLEW_GET_VAR(__GLEW_ARB_draw_instanced) - -#endif /* GL_ARB_draw_instanced */ - -/* -------------------- GL_ARB_explicit_attrib_location -------------------- */ - -#ifndef GL_ARB_explicit_attrib_location -#define GL_ARB_explicit_attrib_location 1 - -#define GLEW_ARB_explicit_attrib_location GLEW_GET_VAR(__GLEW_ARB_explicit_attrib_location) - -#endif /* GL_ARB_explicit_attrib_location */ - -/* ------------------- GL_ARB_fragment_coord_conventions ------------------- */ - -#ifndef GL_ARB_fragment_coord_conventions -#define GL_ARB_fragment_coord_conventions 1 - -#define GLEW_ARB_fragment_coord_conventions GLEW_GET_VAR(__GLEW_ARB_fragment_coord_conventions) - -#endif /* GL_ARB_fragment_coord_conventions */ - -/* ------------------------ GL_ARB_fragment_program ------------------------ */ - -#ifndef GL_ARB_fragment_program -#define GL_ARB_fragment_program 1 - -#define GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 - -#define GLEW_ARB_fragment_program GLEW_GET_VAR(__GLEW_ARB_fragment_program) - -#endif /* GL_ARB_fragment_program */ - -/* --------------------- GL_ARB_fragment_program_shadow -------------------- */ - -#ifndef GL_ARB_fragment_program_shadow -#define GL_ARB_fragment_program_shadow 1 - -#define GLEW_ARB_fragment_program_shadow GLEW_GET_VAR(__GLEW_ARB_fragment_program_shadow) - -#endif /* GL_ARB_fragment_program_shadow */ - -/* ------------------------- GL_ARB_fragment_shader ------------------------ */ - -#ifndef GL_ARB_fragment_shader -#define GL_ARB_fragment_shader 1 - -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B - -#define GLEW_ARB_fragment_shader GLEW_GET_VAR(__GLEW_ARB_fragment_shader) - -#endif /* GL_ARB_fragment_shader */ - -/* ----------------------- GL_ARB_framebuffer_object ----------------------- */ - -#ifndef GL_ARB_framebuffer_object -#define GL_ARB_framebuffer_object 1 - -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_INDEX 0x8222 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_SRGB 0x8C40 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_STENCIL_INDEX1 0x8D46 -#define GL_STENCIL_INDEX4 0x8D47 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_STENCIL_INDEX16 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 - -typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer); -typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); - -#define glBindFramebuffer GLEW_GET_FUN(__glewBindFramebuffer) -#define glBindRenderbuffer GLEW_GET_FUN(__glewBindRenderbuffer) -#define glBlitFramebuffer GLEW_GET_FUN(__glewBlitFramebuffer) -#define glCheckFramebufferStatus GLEW_GET_FUN(__glewCheckFramebufferStatus) -#define glDeleteFramebuffers GLEW_GET_FUN(__glewDeleteFramebuffers) -#define glDeleteRenderbuffers GLEW_GET_FUN(__glewDeleteRenderbuffers) -#define glFramebufferRenderbuffer GLEW_GET_FUN(__glewFramebufferRenderbuffer) -#define glFramebufferTexture1D GLEW_GET_FUN(__glewFramebufferTexture1D) -#define glFramebufferTexture2D GLEW_GET_FUN(__glewFramebufferTexture2D) -#define glFramebufferTexture3D GLEW_GET_FUN(__glewFramebufferTexture3D) -#define glFramebufferTextureLayer GLEW_GET_FUN(__glewFramebufferTextureLayer) -#define glGenFramebuffers GLEW_GET_FUN(__glewGenFramebuffers) -#define glGenRenderbuffers GLEW_GET_FUN(__glewGenRenderbuffers) -#define glGenerateMipmap GLEW_GET_FUN(__glewGenerateMipmap) -#define glGetFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetFramebufferAttachmentParameteriv) -#define glGetRenderbufferParameteriv GLEW_GET_FUN(__glewGetRenderbufferParameteriv) -#define glIsFramebuffer GLEW_GET_FUN(__glewIsFramebuffer) -#define glIsRenderbuffer GLEW_GET_FUN(__glewIsRenderbuffer) -#define glRenderbufferStorage GLEW_GET_FUN(__glewRenderbufferStorage) -#define glRenderbufferStorageMultisample GLEW_GET_FUN(__glewRenderbufferStorageMultisample) - -#define GLEW_ARB_framebuffer_object GLEW_GET_VAR(__GLEW_ARB_framebuffer_object) - -#endif /* GL_ARB_framebuffer_object */ - -/* ------------------------ GL_ARB_framebuffer_sRGB ------------------------ */ - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_ARB_framebuffer_sRGB 1 - -#define GL_FRAMEBUFFER_SRGB 0x8DB9 - -#define GLEW_ARB_framebuffer_sRGB GLEW_GET_VAR(__GLEW_ARB_framebuffer_sRGB) - -#endif /* GL_ARB_framebuffer_sRGB */ - -/* ------------------------ GL_ARB_geometry_shader4 ------------------------ */ - -#ifndef GL_ARB_geometry_shader4 -#define GL_ARB_geometry_shader4 1 - -#define GL_LINES_ADJACENCY_ARB 0xA -#define GL_LINE_STRIP_ADJACENCY_ARB 0xB -#define GL_TRIANGLES_ADJACENCY_ARB 0xC -#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0xD -#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 -#define GL_GEOMETRY_SHADER_ARB 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); - -#define glFramebufferTextureARB GLEW_GET_FUN(__glewFramebufferTextureARB) -#define glFramebufferTextureFaceARB GLEW_GET_FUN(__glewFramebufferTextureFaceARB) -#define glFramebufferTextureLayerARB GLEW_GET_FUN(__glewFramebufferTextureLayerARB) -#define glProgramParameteriARB GLEW_GET_FUN(__glewProgramParameteriARB) - -#define GLEW_ARB_geometry_shader4 GLEW_GET_VAR(__GLEW_ARB_geometry_shader4) - -#endif /* GL_ARB_geometry_shader4 */ - -/* ----------------------- GL_ARB_get_program_binary ----------------------- */ - -#ifndef GL_ARB_get_program_binary -#define GL_ARB_get_program_binary 1 - -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF - -typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, GLvoid*binary); -typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void* binary, GLsizei length); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); - -#define glGetProgramBinary GLEW_GET_FUN(__glewGetProgramBinary) -#define glProgramBinary GLEW_GET_FUN(__glewProgramBinary) -#define glProgramParameteri GLEW_GET_FUN(__glewProgramParameteri) - -#define GLEW_ARB_get_program_binary GLEW_GET_VAR(__GLEW_ARB_get_program_binary) - -#endif /* GL_ARB_get_program_binary */ - -/* --------------------------- GL_ARB_gpu_shader5 -------------------------- */ - -#ifndef GL_ARB_gpu_shader5 -#define GL_ARB_gpu_shader5 1 - -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -#define GL_MAX_VERTEX_STREAMS 0x8E71 - -#define GLEW_ARB_gpu_shader5 GLEW_GET_VAR(__GLEW_ARB_gpu_shader5) - -#endif /* GL_ARB_gpu_shader5 */ - -/* ------------------------- GL_ARB_gpu_shader_fp64 ------------------------ */ - -#ifndef GL_ARB_gpu_shader_fp64 -#define GL_ARB_gpu_shader_fp64 1 - -#define GL_DOUBLE_MAT2 0x8F46 -#define GL_DOUBLE_MAT3 0x8F47 -#define GL_DOUBLE_MAT4 0x8F48 -#define GL_DOUBLE_MAT2x3 0x8F49 -#define GL_DOUBLE_MAT2x4 0x8F4A -#define GL_DOUBLE_MAT3x2 0x8F4B -#define GL_DOUBLE_MAT3x4 0x8F4C -#define GL_DOUBLE_MAT4x2 0x8F4D -#define GL_DOUBLE_MAT4x3 0x8F4E -#define GL_DOUBLE_VEC2 0x8FFC -#define GL_DOUBLE_VEC3 0x8FFD -#define GL_DOUBLE_VEC4 0x8FFE - -typedef void (GLAPIENTRY * PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); -typedef void (GLAPIENTRY * PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); - -#define glGetUniformdv GLEW_GET_FUN(__glewGetUniformdv) -#define glProgramUniform1dEXT GLEW_GET_FUN(__glewProgramUniform1dEXT) -#define glProgramUniform1dvEXT GLEW_GET_FUN(__glewProgramUniform1dvEXT) -#define glProgramUniform2dEXT GLEW_GET_FUN(__glewProgramUniform2dEXT) -#define glProgramUniform2dvEXT GLEW_GET_FUN(__glewProgramUniform2dvEXT) -#define glProgramUniform3dEXT GLEW_GET_FUN(__glewProgramUniform3dEXT) -#define glProgramUniform3dvEXT GLEW_GET_FUN(__glewProgramUniform3dvEXT) -#define glProgramUniform4dEXT GLEW_GET_FUN(__glewProgramUniform4dEXT) -#define glProgramUniform4dvEXT GLEW_GET_FUN(__glewProgramUniform4dvEXT) -#define glProgramUniformMatrix2dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2dvEXT) -#define glProgramUniformMatrix2x3dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3dvEXT) -#define glProgramUniformMatrix2x4dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4dvEXT) -#define glProgramUniformMatrix3dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3dvEXT) -#define glProgramUniformMatrix3x2dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2dvEXT) -#define glProgramUniformMatrix3x4dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4dvEXT) -#define glProgramUniformMatrix4dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4dvEXT) -#define glProgramUniformMatrix4x2dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2dvEXT) -#define glProgramUniformMatrix4x3dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3dvEXT) -#define glUniform1d GLEW_GET_FUN(__glewUniform1d) -#define glUniform1dv GLEW_GET_FUN(__glewUniform1dv) -#define glUniform2d GLEW_GET_FUN(__glewUniform2d) -#define glUniform2dv GLEW_GET_FUN(__glewUniform2dv) -#define glUniform3d GLEW_GET_FUN(__glewUniform3d) -#define glUniform3dv GLEW_GET_FUN(__glewUniform3dv) -#define glUniform4d GLEW_GET_FUN(__glewUniform4d) -#define glUniform4dv GLEW_GET_FUN(__glewUniform4dv) -#define glUniformMatrix2dv GLEW_GET_FUN(__glewUniformMatrix2dv) -#define glUniformMatrix2x3dv GLEW_GET_FUN(__glewUniformMatrix2x3dv) -#define glUniformMatrix2x4dv GLEW_GET_FUN(__glewUniformMatrix2x4dv) -#define glUniformMatrix3dv GLEW_GET_FUN(__glewUniformMatrix3dv) -#define glUniformMatrix3x2dv GLEW_GET_FUN(__glewUniformMatrix3x2dv) -#define glUniformMatrix3x4dv GLEW_GET_FUN(__glewUniformMatrix3x4dv) -#define glUniformMatrix4dv GLEW_GET_FUN(__glewUniformMatrix4dv) -#define glUniformMatrix4x2dv GLEW_GET_FUN(__glewUniformMatrix4x2dv) -#define glUniformMatrix4x3dv GLEW_GET_FUN(__glewUniformMatrix4x3dv) - -#define GLEW_ARB_gpu_shader_fp64 GLEW_GET_VAR(__GLEW_ARB_gpu_shader_fp64) - -#endif /* GL_ARB_gpu_shader_fp64 */ - -/* ------------------------ GL_ARB_half_float_pixel ------------------------ */ - -#ifndef GL_ARB_half_float_pixel -#define GL_ARB_half_float_pixel 1 - -#define GL_HALF_FLOAT_ARB 0x140B - -#define GLEW_ARB_half_float_pixel GLEW_GET_VAR(__GLEW_ARB_half_float_pixel) - -#endif /* GL_ARB_half_float_pixel */ - -/* ------------------------ GL_ARB_half_float_vertex ----------------------- */ - -#ifndef GL_ARB_half_float_vertex -#define GL_ARB_half_float_vertex 1 - -#define GL_HALF_FLOAT 0x140B - -#define GLEW_ARB_half_float_vertex GLEW_GET_VAR(__GLEW_ARB_half_float_vertex) - -#endif /* GL_ARB_half_float_vertex */ - -/* ----------------------------- GL_ARB_imaging ---------------------------- */ - -#ifndef GL_ARB_imaging -#define GL_ARB_imaging 1 - -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_FUNC_ADD 0x8006 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_BLEND_EQUATION 0x8009 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_IGNORE_BORDER 0x8150 -#define GL_CONSTANT_BORDER 0x8151 -#define GL_WRAP_BORDER 0x8152 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 - -typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (GLAPIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLRESETMINMAXPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); - -#define glColorSubTable GLEW_GET_FUN(__glewColorSubTable) -#define glColorTable GLEW_GET_FUN(__glewColorTable) -#define glColorTableParameterfv GLEW_GET_FUN(__glewColorTableParameterfv) -#define glColorTableParameteriv GLEW_GET_FUN(__glewColorTableParameteriv) -#define glConvolutionFilter1D GLEW_GET_FUN(__glewConvolutionFilter1D) -#define glConvolutionFilter2D GLEW_GET_FUN(__glewConvolutionFilter2D) -#define glConvolutionParameterf GLEW_GET_FUN(__glewConvolutionParameterf) -#define glConvolutionParameterfv GLEW_GET_FUN(__glewConvolutionParameterfv) -#define glConvolutionParameteri GLEW_GET_FUN(__glewConvolutionParameteri) -#define glConvolutionParameteriv GLEW_GET_FUN(__glewConvolutionParameteriv) -#define glCopyColorSubTable GLEW_GET_FUN(__glewCopyColorSubTable) -#define glCopyColorTable GLEW_GET_FUN(__glewCopyColorTable) -#define glCopyConvolutionFilter1D GLEW_GET_FUN(__glewCopyConvolutionFilter1D) -#define glCopyConvolutionFilter2D GLEW_GET_FUN(__glewCopyConvolutionFilter2D) -#define glGetColorTable GLEW_GET_FUN(__glewGetColorTable) -#define glGetColorTableParameterfv GLEW_GET_FUN(__glewGetColorTableParameterfv) -#define glGetColorTableParameteriv GLEW_GET_FUN(__glewGetColorTableParameteriv) -#define glGetConvolutionFilter GLEW_GET_FUN(__glewGetConvolutionFilter) -#define glGetConvolutionParameterfv GLEW_GET_FUN(__glewGetConvolutionParameterfv) -#define glGetConvolutionParameteriv GLEW_GET_FUN(__glewGetConvolutionParameteriv) -#define glGetHistogram GLEW_GET_FUN(__glewGetHistogram) -#define glGetHistogramParameterfv GLEW_GET_FUN(__glewGetHistogramParameterfv) -#define glGetHistogramParameteriv GLEW_GET_FUN(__glewGetHistogramParameteriv) -#define glGetMinmax GLEW_GET_FUN(__glewGetMinmax) -#define glGetMinmaxParameterfv GLEW_GET_FUN(__glewGetMinmaxParameterfv) -#define glGetMinmaxParameteriv GLEW_GET_FUN(__glewGetMinmaxParameteriv) -#define glGetSeparableFilter GLEW_GET_FUN(__glewGetSeparableFilter) -#define glHistogram GLEW_GET_FUN(__glewHistogram) -#define glMinmax GLEW_GET_FUN(__glewMinmax) -#define glResetHistogram GLEW_GET_FUN(__glewResetHistogram) -#define glResetMinmax GLEW_GET_FUN(__glewResetMinmax) -#define glSeparableFilter2D GLEW_GET_FUN(__glewSeparableFilter2D) - -#define GLEW_ARB_imaging GLEW_GET_VAR(__GLEW_ARB_imaging) - -#endif /* GL_ARB_imaging */ - -/* ------------------------ GL_ARB_instanced_arrays ------------------------ */ - -#ifndef GL_ARB_instanced_arrays -#define GL_ARB_instanced_arrays 1 - -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); - -#define glDrawArraysInstancedARB GLEW_GET_FUN(__glewDrawArraysInstancedARB) -#define glDrawElementsInstancedARB GLEW_GET_FUN(__glewDrawElementsInstancedARB) -#define glVertexAttribDivisorARB GLEW_GET_FUN(__glewVertexAttribDivisorARB) - -#define GLEW_ARB_instanced_arrays GLEW_GET_VAR(__GLEW_ARB_instanced_arrays) - -#endif /* GL_ARB_instanced_arrays */ - -/* ---------------------- GL_ARB_internalformat_query ---------------------- */ - -#ifndef GL_ARB_internalformat_query -#define GL_ARB_internalformat_query 1 - -#define GL_NUM_SAMPLE_COUNTS 0x9380 - -typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params); - -#define glGetInternalformativ GLEW_GET_FUN(__glewGetInternalformativ) - -#define GLEW_ARB_internalformat_query GLEW_GET_VAR(__GLEW_ARB_internalformat_query) - -#endif /* GL_ARB_internalformat_query */ - -/* ---------------------- GL_ARB_map_buffer_alignment ---------------------- */ - -#ifndef GL_ARB_map_buffer_alignment -#define GL_ARB_map_buffer_alignment 1 - -#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC - -#define GLEW_ARB_map_buffer_alignment GLEW_GET_VAR(__GLEW_ARB_map_buffer_alignment) - -#endif /* GL_ARB_map_buffer_alignment */ - -/* ------------------------ GL_ARB_map_buffer_range ------------------------ */ - -#ifndef GL_ARB_map_buffer_range -#define GL_ARB_map_buffer_range 1 - -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 - -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef GLvoid * (GLAPIENTRY * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); - -#define glFlushMappedBufferRange GLEW_GET_FUN(__glewFlushMappedBufferRange) -#define glMapBufferRange GLEW_GET_FUN(__glewMapBufferRange) - -#define GLEW_ARB_map_buffer_range GLEW_GET_VAR(__GLEW_ARB_map_buffer_range) - -#endif /* GL_ARB_map_buffer_range */ - -/* ------------------------- GL_ARB_matrix_palette ------------------------- */ - -#ifndef GL_ARB_matrix_palette -#define GL_ARB_matrix_palette 1 - -#define GL_MATRIX_PALETTE_ARB 0x8840 -#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 -#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 -#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 -#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 -#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 -#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 -#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 -#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 -#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 - -typedef void (GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, GLubyte *indices); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, GLuint *indices); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, GLushort *indices); - -#define glCurrentPaletteMatrixARB GLEW_GET_FUN(__glewCurrentPaletteMatrixARB) -#define glMatrixIndexPointerARB GLEW_GET_FUN(__glewMatrixIndexPointerARB) -#define glMatrixIndexubvARB GLEW_GET_FUN(__glewMatrixIndexubvARB) -#define glMatrixIndexuivARB GLEW_GET_FUN(__glewMatrixIndexuivARB) -#define glMatrixIndexusvARB GLEW_GET_FUN(__glewMatrixIndexusvARB) - -#define GLEW_ARB_matrix_palette GLEW_GET_VAR(__GLEW_ARB_matrix_palette) - -#endif /* GL_ARB_matrix_palette */ - -/* --------------------------- GL_ARB_multisample -------------------------- */ - -#ifndef GL_ARB_multisample -#define GL_ARB_multisample 1 - -#define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define GL_MULTISAMPLE_BIT_ARB 0x20000000 - -typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); - -#define glSampleCoverageARB GLEW_GET_FUN(__glewSampleCoverageARB) - -#define GLEW_ARB_multisample GLEW_GET_VAR(__GLEW_ARB_multisample) - -#endif /* GL_ARB_multisample */ - -/* -------------------------- GL_ARB_multitexture -------------------------- */ - -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 - -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 - -typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); - -#define glActiveTextureARB GLEW_GET_FUN(__glewActiveTextureARB) -#define glClientActiveTextureARB GLEW_GET_FUN(__glewClientActiveTextureARB) -#define glMultiTexCoord1dARB GLEW_GET_FUN(__glewMultiTexCoord1dARB) -#define glMultiTexCoord1dvARB GLEW_GET_FUN(__glewMultiTexCoord1dvARB) -#define glMultiTexCoord1fARB GLEW_GET_FUN(__glewMultiTexCoord1fARB) -#define glMultiTexCoord1fvARB GLEW_GET_FUN(__glewMultiTexCoord1fvARB) -#define glMultiTexCoord1iARB GLEW_GET_FUN(__glewMultiTexCoord1iARB) -#define glMultiTexCoord1ivARB GLEW_GET_FUN(__glewMultiTexCoord1ivARB) -#define glMultiTexCoord1sARB GLEW_GET_FUN(__glewMultiTexCoord1sARB) -#define glMultiTexCoord1svARB GLEW_GET_FUN(__glewMultiTexCoord1svARB) -#define glMultiTexCoord2dARB GLEW_GET_FUN(__glewMultiTexCoord2dARB) -#define glMultiTexCoord2dvARB GLEW_GET_FUN(__glewMultiTexCoord2dvARB) -#define glMultiTexCoord2fARB GLEW_GET_FUN(__glewMultiTexCoord2fARB) -#define glMultiTexCoord2fvARB GLEW_GET_FUN(__glewMultiTexCoord2fvARB) -#define glMultiTexCoord2iARB GLEW_GET_FUN(__glewMultiTexCoord2iARB) -#define glMultiTexCoord2ivARB GLEW_GET_FUN(__glewMultiTexCoord2ivARB) -#define glMultiTexCoord2sARB GLEW_GET_FUN(__glewMultiTexCoord2sARB) -#define glMultiTexCoord2svARB GLEW_GET_FUN(__glewMultiTexCoord2svARB) -#define glMultiTexCoord3dARB GLEW_GET_FUN(__glewMultiTexCoord3dARB) -#define glMultiTexCoord3dvARB GLEW_GET_FUN(__glewMultiTexCoord3dvARB) -#define glMultiTexCoord3fARB GLEW_GET_FUN(__glewMultiTexCoord3fARB) -#define glMultiTexCoord3fvARB GLEW_GET_FUN(__glewMultiTexCoord3fvARB) -#define glMultiTexCoord3iARB GLEW_GET_FUN(__glewMultiTexCoord3iARB) -#define glMultiTexCoord3ivARB GLEW_GET_FUN(__glewMultiTexCoord3ivARB) -#define glMultiTexCoord3sARB GLEW_GET_FUN(__glewMultiTexCoord3sARB) -#define glMultiTexCoord3svARB GLEW_GET_FUN(__glewMultiTexCoord3svARB) -#define glMultiTexCoord4dARB GLEW_GET_FUN(__glewMultiTexCoord4dARB) -#define glMultiTexCoord4dvARB GLEW_GET_FUN(__glewMultiTexCoord4dvARB) -#define glMultiTexCoord4fARB GLEW_GET_FUN(__glewMultiTexCoord4fARB) -#define glMultiTexCoord4fvARB GLEW_GET_FUN(__glewMultiTexCoord4fvARB) -#define glMultiTexCoord4iARB GLEW_GET_FUN(__glewMultiTexCoord4iARB) -#define glMultiTexCoord4ivARB GLEW_GET_FUN(__glewMultiTexCoord4ivARB) -#define glMultiTexCoord4sARB GLEW_GET_FUN(__glewMultiTexCoord4sARB) -#define glMultiTexCoord4svARB GLEW_GET_FUN(__glewMultiTexCoord4svARB) - -#define GLEW_ARB_multitexture GLEW_GET_VAR(__GLEW_ARB_multitexture) - -#endif /* GL_ARB_multitexture */ - -/* ------------------------- GL_ARB_occlusion_query ------------------------ */ - -#ifndef GL_ARB_occlusion_query -#define GL_ARB_occlusion_query 1 - -#define GL_QUERY_COUNTER_BITS_ARB 0x8864 -#define GL_CURRENT_QUERY_ARB 0x8865 -#define GL_QUERY_RESULT_ARB 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define GL_SAMPLES_PASSED_ARB 0x8914 - -typedef void (GLAPIENTRY * PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDQUERYARBPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISQUERYARBPROC) (GLuint id); - -#define glBeginQueryARB GLEW_GET_FUN(__glewBeginQueryARB) -#define glDeleteQueriesARB GLEW_GET_FUN(__glewDeleteQueriesARB) -#define glEndQueryARB GLEW_GET_FUN(__glewEndQueryARB) -#define glGenQueriesARB GLEW_GET_FUN(__glewGenQueriesARB) -#define glGetQueryObjectivARB GLEW_GET_FUN(__glewGetQueryObjectivARB) -#define glGetQueryObjectuivARB GLEW_GET_FUN(__glewGetQueryObjectuivARB) -#define glGetQueryivARB GLEW_GET_FUN(__glewGetQueryivARB) -#define glIsQueryARB GLEW_GET_FUN(__glewIsQueryARB) - -#define GLEW_ARB_occlusion_query GLEW_GET_VAR(__GLEW_ARB_occlusion_query) - -#endif /* GL_ARB_occlusion_query */ - -/* ------------------------ GL_ARB_occlusion_query2 ------------------------ */ - -#ifndef GL_ARB_occlusion_query2 -#define GL_ARB_occlusion_query2 1 - -#define GL_ANY_SAMPLES_PASSED 0x8C2F - -#define GLEW_ARB_occlusion_query2 GLEW_GET_VAR(__GLEW_ARB_occlusion_query2) - -#endif /* GL_ARB_occlusion_query2 */ - -/* ----------------------- GL_ARB_pixel_buffer_object ---------------------- */ - -#ifndef GL_ARB_pixel_buffer_object -#define GL_ARB_pixel_buffer_object 1 - -#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF - -#define GLEW_ARB_pixel_buffer_object GLEW_GET_VAR(__GLEW_ARB_pixel_buffer_object) - -#endif /* GL_ARB_pixel_buffer_object */ - -/* ------------------------ GL_ARB_point_parameters ------------------------ */ - -#ifndef GL_ARB_point_parameters -#define GL_ARB_point_parameters 1 - -#define GL_POINT_SIZE_MIN_ARB 0x8126 -#define GL_POINT_SIZE_MAX_ARB 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 - -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat* params); - -#define glPointParameterfARB GLEW_GET_FUN(__glewPointParameterfARB) -#define glPointParameterfvARB GLEW_GET_FUN(__glewPointParameterfvARB) - -#define GLEW_ARB_point_parameters GLEW_GET_VAR(__GLEW_ARB_point_parameters) - -#endif /* GL_ARB_point_parameters */ - -/* -------------------------- GL_ARB_point_sprite -------------------------- */ - -#ifndef GL_ARB_point_sprite -#define GL_ARB_point_sprite 1 - -#define GL_POINT_SPRITE_ARB 0x8861 -#define GL_COORD_REPLACE_ARB 0x8862 - -#define GLEW_ARB_point_sprite GLEW_GET_VAR(__GLEW_ARB_point_sprite) - -#endif /* GL_ARB_point_sprite */ - -/* ------------------------ GL_ARB_provoking_vertex ------------------------ */ - -#ifndef GL_ARB_provoking_vertex -#define GL_ARB_provoking_vertex 1 - -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F - -typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXPROC) (GLenum mode); - -#define glProvokingVertex GLEW_GET_FUN(__glewProvokingVertex) - -#define GLEW_ARB_provoking_vertex GLEW_GET_VAR(__GLEW_ARB_provoking_vertex) - -#endif /* GL_ARB_provoking_vertex */ - -/* --------------------------- GL_ARB_robustness --------------------------- */ - -#ifndef GL_ARB_robustness -#define GL_ARB_robustness 1 - -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 - -typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table); -typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void* img); -typedef void (GLAPIENTRY * PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image); -typedef void (GLAPIENTRY * PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); -typedef void (GLAPIENTRY * PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v); -typedef void (GLAPIENTRY * PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v); -typedef void (GLAPIENTRY * PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint* v); -typedef void (GLAPIENTRY * PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); -typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat* values); -typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint* values); -typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort* values); -typedef void (GLAPIENTRY * PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte* pattern); -typedef void (GLAPIENTRY * PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, GLvoid*column, GLvoid*span); -typedef void (GLAPIENTRY * PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params); -typedef void (GLAPIENTRY * PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data); - -#define glGetGraphicsResetStatusARB GLEW_GET_FUN(__glewGetGraphicsResetStatusARB) -#define glGetnColorTableARB GLEW_GET_FUN(__glewGetnColorTableARB) -#define glGetnCompressedTexImageARB GLEW_GET_FUN(__glewGetnCompressedTexImageARB) -#define glGetnConvolutionFilterARB GLEW_GET_FUN(__glewGetnConvolutionFilterARB) -#define glGetnHistogramARB GLEW_GET_FUN(__glewGetnHistogramARB) -#define glGetnMapdvARB GLEW_GET_FUN(__glewGetnMapdvARB) -#define glGetnMapfvARB GLEW_GET_FUN(__glewGetnMapfvARB) -#define glGetnMapivARB GLEW_GET_FUN(__glewGetnMapivARB) -#define glGetnMinmaxARB GLEW_GET_FUN(__glewGetnMinmaxARB) -#define glGetnPixelMapfvARB GLEW_GET_FUN(__glewGetnPixelMapfvARB) -#define glGetnPixelMapuivARB GLEW_GET_FUN(__glewGetnPixelMapuivARB) -#define glGetnPixelMapusvARB GLEW_GET_FUN(__glewGetnPixelMapusvARB) -#define glGetnPolygonStippleARB GLEW_GET_FUN(__glewGetnPolygonStippleARB) -#define glGetnSeparableFilterARB GLEW_GET_FUN(__glewGetnSeparableFilterARB) -#define glGetnTexImageARB GLEW_GET_FUN(__glewGetnTexImageARB) -#define glGetnUniformdvARB GLEW_GET_FUN(__glewGetnUniformdvARB) -#define glGetnUniformfvARB GLEW_GET_FUN(__glewGetnUniformfvARB) -#define glGetnUniformivARB GLEW_GET_FUN(__glewGetnUniformivARB) -#define glGetnUniformuivARB GLEW_GET_FUN(__glewGetnUniformuivARB) -#define glReadnPixelsARB GLEW_GET_FUN(__glewReadnPixelsARB) - -#define GLEW_ARB_robustness GLEW_GET_VAR(__GLEW_ARB_robustness) - -#endif /* GL_ARB_robustness */ - -/* ------------------------- GL_ARB_sample_shading ------------------------- */ - -#ifndef GL_ARB_sample_shading -#define GL_ARB_sample_shading 1 - -#define GL_SAMPLE_SHADING_ARB 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 - -typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); - -#define glMinSampleShadingARB GLEW_GET_FUN(__glewMinSampleShadingARB) - -#define GLEW_ARB_sample_shading GLEW_GET_VAR(__GLEW_ARB_sample_shading) - -#endif /* GL_ARB_sample_shading */ - -/* ------------------------- GL_ARB_sampler_objects ------------------------ */ - -#ifndef GL_ARB_sampler_objects -#define GL_ARB_sampler_objects 1 - -#define GL_SAMPLER_BINDING 0x8919 - -typedef void (GLAPIENTRY * PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GLAPIENTRY * PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint * samplers); -typedef void (GLAPIENTRY * PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint* samplers); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint* params); - -#define glBindSampler GLEW_GET_FUN(__glewBindSampler) -#define glDeleteSamplers GLEW_GET_FUN(__glewDeleteSamplers) -#define glGenSamplers GLEW_GET_FUN(__glewGenSamplers) -#define glGetSamplerParameterIiv GLEW_GET_FUN(__glewGetSamplerParameterIiv) -#define glGetSamplerParameterIuiv GLEW_GET_FUN(__glewGetSamplerParameterIuiv) -#define glGetSamplerParameterfv GLEW_GET_FUN(__glewGetSamplerParameterfv) -#define glGetSamplerParameteriv GLEW_GET_FUN(__glewGetSamplerParameteriv) -#define glIsSampler GLEW_GET_FUN(__glewIsSampler) -#define glSamplerParameterIiv GLEW_GET_FUN(__glewSamplerParameterIiv) -#define glSamplerParameterIuiv GLEW_GET_FUN(__glewSamplerParameterIuiv) -#define glSamplerParameterf GLEW_GET_FUN(__glewSamplerParameterf) -#define glSamplerParameterfv GLEW_GET_FUN(__glewSamplerParameterfv) -#define glSamplerParameteri GLEW_GET_FUN(__glewSamplerParameteri) -#define glSamplerParameteriv GLEW_GET_FUN(__glewSamplerParameteriv) - -#define GLEW_ARB_sampler_objects GLEW_GET_VAR(__GLEW_ARB_sampler_objects) - -#endif /* GL_ARB_sampler_objects */ - -/* ------------------------ GL_ARB_seamless_cube_map ----------------------- */ - -#ifndef GL_ARB_seamless_cube_map -#define GL_ARB_seamless_cube_map 1 - -#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F - -#define GLEW_ARB_seamless_cube_map GLEW_GET_VAR(__GLEW_ARB_seamless_cube_map) - -#endif /* GL_ARB_seamless_cube_map */ - -/* --------------------- GL_ARB_separate_shader_objects -------------------- */ - -#ifndef GL_ARB_separate_shader_objects -#define GL_ARB_separate_shader_objects 1 - -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_ALL_SHADER_BITS 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef void (GLAPIENTRY * PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const char ** strings); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint* pipelines); -typedef void (GLAPIENTRY * PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei* length, char *infoLog); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint x, GLuint y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); - -#define glActiveShaderProgram GLEW_GET_FUN(__glewActiveShaderProgram) -#define glBindProgramPipeline GLEW_GET_FUN(__glewBindProgramPipeline) -#define glCreateShaderProgramv GLEW_GET_FUN(__glewCreateShaderProgramv) -#define glDeleteProgramPipelines GLEW_GET_FUN(__glewDeleteProgramPipelines) -#define glGenProgramPipelines GLEW_GET_FUN(__glewGenProgramPipelines) -#define glGetProgramPipelineInfoLog GLEW_GET_FUN(__glewGetProgramPipelineInfoLog) -#define glGetProgramPipelineiv GLEW_GET_FUN(__glewGetProgramPipelineiv) -#define glIsProgramPipeline GLEW_GET_FUN(__glewIsProgramPipeline) -#define glProgramUniform1d GLEW_GET_FUN(__glewProgramUniform1d) -#define glProgramUniform1dv GLEW_GET_FUN(__glewProgramUniform1dv) -#define glProgramUniform1f GLEW_GET_FUN(__glewProgramUniform1f) -#define glProgramUniform1fv GLEW_GET_FUN(__glewProgramUniform1fv) -#define glProgramUniform1i GLEW_GET_FUN(__glewProgramUniform1i) -#define glProgramUniform1iv GLEW_GET_FUN(__glewProgramUniform1iv) -#define glProgramUniform1ui GLEW_GET_FUN(__glewProgramUniform1ui) -#define glProgramUniform1uiv GLEW_GET_FUN(__glewProgramUniform1uiv) -#define glProgramUniform2d GLEW_GET_FUN(__glewProgramUniform2d) -#define glProgramUniform2dv GLEW_GET_FUN(__glewProgramUniform2dv) -#define glProgramUniform2f GLEW_GET_FUN(__glewProgramUniform2f) -#define glProgramUniform2fv GLEW_GET_FUN(__glewProgramUniform2fv) -#define glProgramUniform2i GLEW_GET_FUN(__glewProgramUniform2i) -#define glProgramUniform2iv GLEW_GET_FUN(__glewProgramUniform2iv) -#define glProgramUniform2ui GLEW_GET_FUN(__glewProgramUniform2ui) -#define glProgramUniform2uiv GLEW_GET_FUN(__glewProgramUniform2uiv) -#define glProgramUniform3d GLEW_GET_FUN(__glewProgramUniform3d) -#define glProgramUniform3dv GLEW_GET_FUN(__glewProgramUniform3dv) -#define glProgramUniform3f GLEW_GET_FUN(__glewProgramUniform3f) -#define glProgramUniform3fv GLEW_GET_FUN(__glewProgramUniform3fv) -#define glProgramUniform3i GLEW_GET_FUN(__glewProgramUniform3i) -#define glProgramUniform3iv GLEW_GET_FUN(__glewProgramUniform3iv) -#define glProgramUniform3ui GLEW_GET_FUN(__glewProgramUniform3ui) -#define glProgramUniform3uiv GLEW_GET_FUN(__glewProgramUniform3uiv) -#define glProgramUniform4d GLEW_GET_FUN(__glewProgramUniform4d) -#define glProgramUniform4dv GLEW_GET_FUN(__glewProgramUniform4dv) -#define glProgramUniform4f GLEW_GET_FUN(__glewProgramUniform4f) -#define glProgramUniform4fv GLEW_GET_FUN(__glewProgramUniform4fv) -#define glProgramUniform4i GLEW_GET_FUN(__glewProgramUniform4i) -#define glProgramUniform4iv GLEW_GET_FUN(__glewProgramUniform4iv) -#define glProgramUniform4ui GLEW_GET_FUN(__glewProgramUniform4ui) -#define glProgramUniform4uiv GLEW_GET_FUN(__glewProgramUniform4uiv) -#define glProgramUniformMatrix2dv GLEW_GET_FUN(__glewProgramUniformMatrix2dv) -#define glProgramUniformMatrix2fv GLEW_GET_FUN(__glewProgramUniformMatrix2fv) -#define glProgramUniformMatrix2x3dv GLEW_GET_FUN(__glewProgramUniformMatrix2x3dv) -#define glProgramUniformMatrix2x3fv GLEW_GET_FUN(__glewProgramUniformMatrix2x3fv) -#define glProgramUniformMatrix2x4dv GLEW_GET_FUN(__glewProgramUniformMatrix2x4dv) -#define glProgramUniformMatrix2x4fv GLEW_GET_FUN(__glewProgramUniformMatrix2x4fv) -#define glProgramUniformMatrix3dv GLEW_GET_FUN(__glewProgramUniformMatrix3dv) -#define glProgramUniformMatrix3fv GLEW_GET_FUN(__glewProgramUniformMatrix3fv) -#define glProgramUniformMatrix3x2dv GLEW_GET_FUN(__glewProgramUniformMatrix3x2dv) -#define glProgramUniformMatrix3x2fv GLEW_GET_FUN(__glewProgramUniformMatrix3x2fv) -#define glProgramUniformMatrix3x4dv GLEW_GET_FUN(__glewProgramUniformMatrix3x4dv) -#define glProgramUniformMatrix3x4fv GLEW_GET_FUN(__glewProgramUniformMatrix3x4fv) -#define glProgramUniformMatrix4dv GLEW_GET_FUN(__glewProgramUniformMatrix4dv) -#define glProgramUniformMatrix4fv GLEW_GET_FUN(__glewProgramUniformMatrix4fv) -#define glProgramUniformMatrix4x2dv GLEW_GET_FUN(__glewProgramUniformMatrix4x2dv) -#define glProgramUniformMatrix4x2fv GLEW_GET_FUN(__glewProgramUniformMatrix4x2fv) -#define glProgramUniformMatrix4x3dv GLEW_GET_FUN(__glewProgramUniformMatrix4x3dv) -#define glProgramUniformMatrix4x3fv GLEW_GET_FUN(__glewProgramUniformMatrix4x3fv) -#define glUseProgramStages GLEW_GET_FUN(__glewUseProgramStages) -#define glValidateProgramPipeline GLEW_GET_FUN(__glewValidateProgramPipeline) - -#define GLEW_ARB_separate_shader_objects GLEW_GET_VAR(__GLEW_ARB_separate_shader_objects) - -#endif /* GL_ARB_separate_shader_objects */ - -/* --------------------- GL_ARB_shader_atomic_counters --------------------- */ - -#ifndef GL_ARB_shader_atomic_counters -#define GL_ARB_shader_atomic_counters 1 - -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC - -typedef void (GLAPIENTRY * PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint* params); - -#define glGetActiveAtomicCounterBufferiv GLEW_GET_FUN(__glewGetActiveAtomicCounterBufferiv) - -#define GLEW_ARB_shader_atomic_counters GLEW_GET_VAR(__GLEW_ARB_shader_atomic_counters) - -#endif /* GL_ARB_shader_atomic_counters */ - -/* ----------------------- GL_ARB_shader_bit_encoding ---------------------- */ - -#ifndef GL_ARB_shader_bit_encoding -#define GL_ARB_shader_bit_encoding 1 - -#define GLEW_ARB_shader_bit_encoding GLEW_GET_VAR(__GLEW_ARB_shader_bit_encoding) - -#endif /* GL_ARB_shader_bit_encoding */ - -/* --------------------- GL_ARB_shader_image_load_store -------------------- */ - -#ifndef GL_ARB_shader_image_load_store -#define GL_ARB_shader_image_load_store 1 - -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_1D 0x904C -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_2D_RECT 0x904F -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_IMAGE_1D_ARRAY 0x9052 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 -#define GL_INT_IMAGE_1D 0x9057 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_2D_RECT 0x905A -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_INT_IMAGE_1D_ARRAY 0x905D -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C -#define GL_MAX_IMAGE_SAMPLES 0x906D -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GLAPIENTRY * PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); - -#define glBindImageTexture GLEW_GET_FUN(__glewBindImageTexture) -#define glMemoryBarrier GLEW_GET_FUN(__glewMemoryBarrier) - -#define GLEW_ARB_shader_image_load_store GLEW_GET_VAR(__GLEW_ARB_shader_image_load_store) - -#endif /* GL_ARB_shader_image_load_store */ - -/* ------------------------- GL_ARB_shader_objects ------------------------- */ - -#ifndef GL_ARB_shader_objects -#define GL_ARB_shader_objects 1 - -#define GL_PROGRAM_OBJECT_ARB 0x8B40 -#define GL_SHADER_OBJECT_ARB 0x8B48 -#define GL_OBJECT_TYPE_ARB 0x8B4E -#define GL_OBJECT_SUBTYPE_ARB 0x8B4F -#define GL_FLOAT_VEC2_ARB 0x8B50 -#define GL_FLOAT_VEC3_ARB 0x8B51 -#define GL_FLOAT_VEC4_ARB 0x8B52 -#define GL_INT_VEC2_ARB 0x8B53 -#define GL_INT_VEC3_ARB 0x8B54 -#define GL_INT_VEC4_ARB 0x8B55 -#define GL_BOOL_ARB 0x8B56 -#define GL_BOOL_VEC2_ARB 0x8B57 -#define GL_BOOL_VEC3_ARB 0x8B58 -#define GL_BOOL_VEC4_ARB 0x8B59 -#define GL_FLOAT_MAT2_ARB 0x8B5A -#define GL_FLOAT_MAT3_ARB 0x8B5B -#define GL_FLOAT_MAT4_ARB 0x8B5C -#define GL_SAMPLER_1D_ARB 0x8B5D -#define GL_SAMPLER_2D_ARB 0x8B5E -#define GL_SAMPLER_3D_ARB 0x8B5F -#define GL_SAMPLER_CUBE_ARB 0x8B60 -#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 -#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 -#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 -#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 -#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 - -typedef char GLcharARB; -typedef unsigned int GLhandleARB; - -typedef void (GLAPIENTRY * PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); -typedef void (GLAPIENTRY * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); -typedef GLhandleARB (GLAPIENTRY * PFNGLCREATEPROGRAMOBJECTARBPROC) (void); -typedef GLhandleARB (GLAPIENTRY * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); -typedef void (GLAPIENTRY * PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); -typedef void (GLAPIENTRY * PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); -typedef void (GLAPIENTRY * PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei* count, GLhandleARB *obj); -typedef GLhandleARB (GLAPIENTRY * PFNGLGETHANDLEARBPROC) (GLenum pname); -typedef void (GLAPIENTRY * PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *infoLog); -typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *source); -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint* params); -typedef void (GLAPIENTRY * PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (GLAPIENTRY * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint *length); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); -typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); - -#define glAttachObjectARB GLEW_GET_FUN(__glewAttachObjectARB) -#define glCompileShaderARB GLEW_GET_FUN(__glewCompileShaderARB) -#define glCreateProgramObjectARB GLEW_GET_FUN(__glewCreateProgramObjectARB) -#define glCreateShaderObjectARB GLEW_GET_FUN(__glewCreateShaderObjectARB) -#define glDeleteObjectARB GLEW_GET_FUN(__glewDeleteObjectARB) -#define glDetachObjectARB GLEW_GET_FUN(__glewDetachObjectARB) -#define glGetActiveUniformARB GLEW_GET_FUN(__glewGetActiveUniformARB) -#define glGetAttachedObjectsARB GLEW_GET_FUN(__glewGetAttachedObjectsARB) -#define glGetHandleARB GLEW_GET_FUN(__glewGetHandleARB) -#define glGetInfoLogARB GLEW_GET_FUN(__glewGetInfoLogARB) -#define glGetObjectParameterfvARB GLEW_GET_FUN(__glewGetObjectParameterfvARB) -#define glGetObjectParameterivARB GLEW_GET_FUN(__glewGetObjectParameterivARB) -#define glGetShaderSourceARB GLEW_GET_FUN(__glewGetShaderSourceARB) -#define glGetUniformLocationARB GLEW_GET_FUN(__glewGetUniformLocationARB) -#define glGetUniformfvARB GLEW_GET_FUN(__glewGetUniformfvARB) -#define glGetUniformivARB GLEW_GET_FUN(__glewGetUniformivARB) -#define glLinkProgramARB GLEW_GET_FUN(__glewLinkProgramARB) -#define glShaderSourceARB GLEW_GET_FUN(__glewShaderSourceARB) -#define glUniform1fARB GLEW_GET_FUN(__glewUniform1fARB) -#define glUniform1fvARB GLEW_GET_FUN(__glewUniform1fvARB) -#define glUniform1iARB GLEW_GET_FUN(__glewUniform1iARB) -#define glUniform1ivARB GLEW_GET_FUN(__glewUniform1ivARB) -#define glUniform2fARB GLEW_GET_FUN(__glewUniform2fARB) -#define glUniform2fvARB GLEW_GET_FUN(__glewUniform2fvARB) -#define glUniform2iARB GLEW_GET_FUN(__glewUniform2iARB) -#define glUniform2ivARB GLEW_GET_FUN(__glewUniform2ivARB) -#define glUniform3fARB GLEW_GET_FUN(__glewUniform3fARB) -#define glUniform3fvARB GLEW_GET_FUN(__glewUniform3fvARB) -#define glUniform3iARB GLEW_GET_FUN(__glewUniform3iARB) -#define glUniform3ivARB GLEW_GET_FUN(__glewUniform3ivARB) -#define glUniform4fARB GLEW_GET_FUN(__glewUniform4fARB) -#define glUniform4fvARB GLEW_GET_FUN(__glewUniform4fvARB) -#define glUniform4iARB GLEW_GET_FUN(__glewUniform4iARB) -#define glUniform4ivARB GLEW_GET_FUN(__glewUniform4ivARB) -#define glUniformMatrix2fvARB GLEW_GET_FUN(__glewUniformMatrix2fvARB) -#define glUniformMatrix3fvARB GLEW_GET_FUN(__glewUniformMatrix3fvARB) -#define glUniformMatrix4fvARB GLEW_GET_FUN(__glewUniformMatrix4fvARB) -#define glUseProgramObjectARB GLEW_GET_FUN(__glewUseProgramObjectARB) -#define glValidateProgramARB GLEW_GET_FUN(__glewValidateProgramARB) - -#define GLEW_ARB_shader_objects GLEW_GET_VAR(__GLEW_ARB_shader_objects) - -#endif /* GL_ARB_shader_objects */ - -/* ------------------------ GL_ARB_shader_precision ------------------------ */ - -#ifndef GL_ARB_shader_precision -#define GL_ARB_shader_precision 1 - -#define GLEW_ARB_shader_precision GLEW_GET_VAR(__GLEW_ARB_shader_precision) - -#endif /* GL_ARB_shader_precision */ - -/* ---------------------- GL_ARB_shader_stencil_export --------------------- */ - -#ifndef GL_ARB_shader_stencil_export -#define GL_ARB_shader_stencil_export 1 - -#define GLEW_ARB_shader_stencil_export GLEW_GET_VAR(__GLEW_ARB_shader_stencil_export) - -#endif /* GL_ARB_shader_stencil_export */ - -/* ------------------------ GL_ARB_shader_subroutine ----------------------- */ - -#ifndef GL_ARB_shader_subroutine -#define GL_ARB_shader_subroutine 1 - -#define GL_ACTIVE_SUBROUTINES 0x8DE5 -#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 -#define GL_MAX_SUBROUTINES 0x8DE7 -#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 -#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 -#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A -#define GL_COMPATIBLE_SUBROUTINES 0x8E4B - -typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, char *name); -typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, char *name); -typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint* values); -typedef GLuint (GLAPIENTRY * PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const char* name); -typedef GLint (GLAPIENTRY * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const char* name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint* params); -typedef void (GLAPIENTRY * PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint* indices); - -#define glGetActiveSubroutineName GLEW_GET_FUN(__glewGetActiveSubroutineName) -#define glGetActiveSubroutineUniformName GLEW_GET_FUN(__glewGetActiveSubroutineUniformName) -#define glGetActiveSubroutineUniformiv GLEW_GET_FUN(__glewGetActiveSubroutineUniformiv) -#define glGetProgramStageiv GLEW_GET_FUN(__glewGetProgramStageiv) -#define glGetSubroutineIndex GLEW_GET_FUN(__glewGetSubroutineIndex) -#define glGetSubroutineUniformLocation GLEW_GET_FUN(__glewGetSubroutineUniformLocation) -#define glGetUniformSubroutineuiv GLEW_GET_FUN(__glewGetUniformSubroutineuiv) -#define glUniformSubroutinesuiv GLEW_GET_FUN(__glewUniformSubroutinesuiv) - -#define GLEW_ARB_shader_subroutine GLEW_GET_VAR(__GLEW_ARB_shader_subroutine) - -#endif /* GL_ARB_shader_subroutine */ - -/* ----------------------- GL_ARB_shader_texture_lod ----------------------- */ - -#ifndef GL_ARB_shader_texture_lod -#define GL_ARB_shader_texture_lod 1 - -#define GLEW_ARB_shader_texture_lod GLEW_GET_VAR(__GLEW_ARB_shader_texture_lod) - -#endif /* GL_ARB_shader_texture_lod */ - -/* ---------------------- GL_ARB_shading_language_100 ---------------------- */ - -#ifndef GL_ARB_shading_language_100 -#define GL_ARB_shading_language_100 1 - -#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C - -#define GLEW_ARB_shading_language_100 GLEW_GET_VAR(__GLEW_ARB_shading_language_100) - -#endif /* GL_ARB_shading_language_100 */ - -/* -------------------- GL_ARB_shading_language_420pack -------------------- */ - -#ifndef GL_ARB_shading_language_420pack -#define GL_ARB_shading_language_420pack 1 - -#define GLEW_ARB_shading_language_420pack GLEW_GET_VAR(__GLEW_ARB_shading_language_420pack) - -#endif /* GL_ARB_shading_language_420pack */ - -/* -------------------- GL_ARB_shading_language_include -------------------- */ - -#ifndef GL_ARB_shading_language_include -#define GL_ARB_shading_language_include 1 - -#define GL_SHADER_INCLUDE_ARB 0x8DAE -#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 -#define GL_NAMED_STRING_TYPE_ARB 0x8DEA - -typedef void (GLAPIENTRY * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const char ** path, const GLint *length); -typedef void (GLAPIENTRY * PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const char* name); -typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const char* name, GLsizei bufSize, GLint *stringlen, char *string); -typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const char* name, GLenum pname, GLint *params); -typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const char* name); -typedef void (GLAPIENTRY * PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const char* name, GLint stringlen, const char *string); - -#define glCompileShaderIncludeARB GLEW_GET_FUN(__glewCompileShaderIncludeARB) -#define glDeleteNamedStringARB GLEW_GET_FUN(__glewDeleteNamedStringARB) -#define glGetNamedStringARB GLEW_GET_FUN(__glewGetNamedStringARB) -#define glGetNamedStringivARB GLEW_GET_FUN(__glewGetNamedStringivARB) -#define glIsNamedStringARB GLEW_GET_FUN(__glewIsNamedStringARB) -#define glNamedStringARB GLEW_GET_FUN(__glewNamedStringARB) - -#define GLEW_ARB_shading_language_include GLEW_GET_VAR(__GLEW_ARB_shading_language_include) - -#endif /* GL_ARB_shading_language_include */ - -/* -------------------- GL_ARB_shading_language_packing -------------------- */ - -#ifndef GL_ARB_shading_language_packing -#define GL_ARB_shading_language_packing 1 - -#define GLEW_ARB_shading_language_packing GLEW_GET_VAR(__GLEW_ARB_shading_language_packing) - -#endif /* GL_ARB_shading_language_packing */ - -/* ----------------------------- GL_ARB_shadow ----------------------------- */ - -#ifndef GL_ARB_shadow -#define GL_ARB_shadow 1 - -#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C -#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D -#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E - -#define GLEW_ARB_shadow GLEW_GET_VAR(__GLEW_ARB_shadow) - -#endif /* GL_ARB_shadow */ - -/* ------------------------- GL_ARB_shadow_ambient ------------------------- */ - -#ifndef GL_ARB_shadow_ambient -#define GL_ARB_shadow_ambient 1 - -#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF - -#define GLEW_ARB_shadow_ambient GLEW_GET_VAR(__GLEW_ARB_shadow_ambient) - -#endif /* GL_ARB_shadow_ambient */ - -/* ------------------------------ GL_ARB_sync ------------------------------ */ - -#ifndef GL_ARB_sync -#define GL_ARB_sync 1 - -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF - -typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); -typedef void (GLAPIENTRY * PFNGLDELETESYNCPROC) (GLsync GLsync); -typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCPROC) (GLenum condition,GLbitfield flags); -typedef void (GLAPIENTRY * PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64* params); -typedef void (GLAPIENTRY * PFNGLGETSYNCIVPROC) (GLsync GLsync,GLenum pname,GLsizei bufSize,GLsizei* length, GLint *values); -typedef GLboolean (GLAPIENTRY * PFNGLISSYNCPROC) (GLsync GLsync); -typedef void (GLAPIENTRY * PFNGLWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); - -#define glClientWaitSync GLEW_GET_FUN(__glewClientWaitSync) -#define glDeleteSync GLEW_GET_FUN(__glewDeleteSync) -#define glFenceSync GLEW_GET_FUN(__glewFenceSync) -#define glGetInteger64v GLEW_GET_FUN(__glewGetInteger64v) -#define glGetSynciv GLEW_GET_FUN(__glewGetSynciv) -#define glIsSync GLEW_GET_FUN(__glewIsSync) -#define glWaitSync GLEW_GET_FUN(__glewWaitSync) - -#define GLEW_ARB_sync GLEW_GET_VAR(__GLEW_ARB_sync) - -#endif /* GL_ARB_sync */ - -/* ----------------------- GL_ARB_tessellation_shader ---------------------- */ - -#ifndef GL_ARB_tessellation_shader -#define GL_ARB_tessellation_shader 1 - -#define GL_PATCHES 0xE -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_PATCH_VERTICES 0x8E72 -#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 -#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -#define GL_ISOLINES 0x8E7A -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRACTIONAL_EVEN 0x8E7C -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A - -typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat* values); -typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); - -#define glPatchParameterfv GLEW_GET_FUN(__glewPatchParameterfv) -#define glPatchParameteri GLEW_GET_FUN(__glewPatchParameteri) - -#define GLEW_ARB_tessellation_shader GLEW_GET_VAR(__GLEW_ARB_tessellation_shader) - -#endif /* GL_ARB_tessellation_shader */ - -/* ---------------------- GL_ARB_texture_border_clamp ---------------------- */ - -#ifndef GL_ARB_texture_border_clamp -#define GL_ARB_texture_border_clamp 1 - -#define GL_CLAMP_TO_BORDER_ARB 0x812D - -#define GLEW_ARB_texture_border_clamp GLEW_GET_VAR(__GLEW_ARB_texture_border_clamp) - -#endif /* GL_ARB_texture_border_clamp */ - -/* ---------------------- GL_ARB_texture_buffer_object --------------------- */ - -#ifndef GL_ARB_texture_buffer_object -#define GL_ARB_texture_buffer_object 1 - -#define GL_TEXTURE_BUFFER_ARB 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E - -typedef void (GLAPIENTRY * PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); - -#define glTexBufferARB GLEW_GET_FUN(__glewTexBufferARB) - -#define GLEW_ARB_texture_buffer_object GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object) - -#endif /* GL_ARB_texture_buffer_object */ - -/* ------------------- GL_ARB_texture_buffer_object_rgb32 ------------------ */ - -#ifndef GL_ARB_texture_buffer_object_rgb32 -#define GL_ARB_texture_buffer_object_rgb32 1 - -#define GLEW_ARB_texture_buffer_object_rgb32 GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object_rgb32) - -#endif /* GL_ARB_texture_buffer_object_rgb32 */ - -/* ----------------------- GL_ARB_texture_compression ---------------------- */ - -#ifndef GL_ARB_texture_compression -#define GL_ARB_texture_compression 1 - -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 - -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, void* img); - -#define glCompressedTexImage1DARB GLEW_GET_FUN(__glewCompressedTexImage1DARB) -#define glCompressedTexImage2DARB GLEW_GET_FUN(__glewCompressedTexImage2DARB) -#define glCompressedTexImage3DARB GLEW_GET_FUN(__glewCompressedTexImage3DARB) -#define glCompressedTexSubImage1DARB GLEW_GET_FUN(__glewCompressedTexSubImage1DARB) -#define glCompressedTexSubImage2DARB GLEW_GET_FUN(__glewCompressedTexSubImage2DARB) -#define glCompressedTexSubImage3DARB GLEW_GET_FUN(__glewCompressedTexSubImage3DARB) -#define glGetCompressedTexImageARB GLEW_GET_FUN(__glewGetCompressedTexImageARB) - -#define GLEW_ARB_texture_compression GLEW_GET_VAR(__GLEW_ARB_texture_compression) - -#endif /* GL_ARB_texture_compression */ - -/* -------------------- GL_ARB_texture_compression_bptc -------------------- */ - -#ifndef GL_ARB_texture_compression_bptc -#define GL_ARB_texture_compression_bptc 1 - -#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F - -#define GLEW_ARB_texture_compression_bptc GLEW_GET_VAR(__GLEW_ARB_texture_compression_bptc) - -#endif /* GL_ARB_texture_compression_bptc */ - -/* -------------------- GL_ARB_texture_compression_rgtc -------------------- */ - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_ARB_texture_compression_rgtc 1 - -#define GL_COMPRESSED_RED_RGTC1 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC -#define GL_COMPRESSED_RG_RGTC2 0x8DBD -#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE - -#define GLEW_ARB_texture_compression_rgtc GLEW_GET_VAR(__GLEW_ARB_texture_compression_rgtc) - -#endif /* GL_ARB_texture_compression_rgtc */ - -/* ------------------------ GL_ARB_texture_cube_map ------------------------ */ - -#ifndef GL_ARB_texture_cube_map -#define GL_ARB_texture_cube_map 1 - -#define GL_NORMAL_MAP_ARB 0x8511 -#define GL_REFLECTION_MAP_ARB 0x8512 -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C - -#define GLEW_ARB_texture_cube_map GLEW_GET_VAR(__GLEW_ARB_texture_cube_map) - -#endif /* GL_ARB_texture_cube_map */ - -/* --------------------- GL_ARB_texture_cube_map_array --------------------- */ - -#ifndef GL_ARB_texture_cube_map_array -#define GL_ARB_texture_cube_map_array 1 - -#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F - -#define GLEW_ARB_texture_cube_map_array GLEW_GET_VAR(__GLEW_ARB_texture_cube_map_array) - -#endif /* GL_ARB_texture_cube_map_array */ - -/* ------------------------- GL_ARB_texture_env_add ------------------------ */ - -#ifndef GL_ARB_texture_env_add -#define GL_ARB_texture_env_add 1 - -#define GLEW_ARB_texture_env_add GLEW_GET_VAR(__GLEW_ARB_texture_env_add) - -#endif /* GL_ARB_texture_env_add */ - -/* ----------------------- GL_ARB_texture_env_combine ---------------------- */ - -#ifndef GL_ARB_texture_env_combine -#define GL_ARB_texture_env_combine 1 - -#define GL_SUBTRACT_ARB 0x84E7 -#define GL_COMBINE_ARB 0x8570 -#define GL_COMBINE_RGB_ARB 0x8571 -#define GL_COMBINE_ALPHA_ARB 0x8572 -#define GL_RGB_SCALE_ARB 0x8573 -#define GL_ADD_SIGNED_ARB 0x8574 -#define GL_INTERPOLATE_ARB 0x8575 -#define GL_CONSTANT_ARB 0x8576 -#define GL_PRIMARY_COLOR_ARB 0x8577 -#define GL_PREVIOUS_ARB 0x8578 -#define GL_SOURCE0_RGB_ARB 0x8580 -#define GL_SOURCE1_RGB_ARB 0x8581 -#define GL_SOURCE2_RGB_ARB 0x8582 -#define GL_SOURCE0_ALPHA_ARB 0x8588 -#define GL_SOURCE1_ALPHA_ARB 0x8589 -#define GL_SOURCE2_ALPHA_ARB 0x858A -#define GL_OPERAND0_RGB_ARB 0x8590 -#define GL_OPERAND1_RGB_ARB 0x8591 -#define GL_OPERAND2_RGB_ARB 0x8592 -#define GL_OPERAND0_ALPHA_ARB 0x8598 -#define GL_OPERAND1_ALPHA_ARB 0x8599 -#define GL_OPERAND2_ALPHA_ARB 0x859A - -#define GLEW_ARB_texture_env_combine GLEW_GET_VAR(__GLEW_ARB_texture_env_combine) - -#endif /* GL_ARB_texture_env_combine */ - -/* ---------------------- GL_ARB_texture_env_crossbar ---------------------- */ - -#ifndef GL_ARB_texture_env_crossbar -#define GL_ARB_texture_env_crossbar 1 - -#define GLEW_ARB_texture_env_crossbar GLEW_GET_VAR(__GLEW_ARB_texture_env_crossbar) - -#endif /* GL_ARB_texture_env_crossbar */ - -/* ------------------------ GL_ARB_texture_env_dot3 ------------------------ */ - -#ifndef GL_ARB_texture_env_dot3 -#define GL_ARB_texture_env_dot3 1 - -#define GL_DOT3_RGB_ARB 0x86AE -#define GL_DOT3_RGBA_ARB 0x86AF - -#define GLEW_ARB_texture_env_dot3 GLEW_GET_VAR(__GLEW_ARB_texture_env_dot3) - -#endif /* GL_ARB_texture_env_dot3 */ - -/* -------------------------- GL_ARB_texture_float ------------------------- */ - -#ifndef GL_ARB_texture_float -#define GL_ARB_texture_float 1 - -#define GL_RGBA32F_ARB 0x8814 -#define GL_RGB32F_ARB 0x8815 -#define GL_ALPHA32F_ARB 0x8816 -#define GL_INTENSITY32F_ARB 0x8817 -#define GL_LUMINANCE32F_ARB 0x8818 -#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 -#define GL_RGBA16F_ARB 0x881A -#define GL_RGB16F_ARB 0x881B -#define GL_ALPHA16F_ARB 0x881C -#define GL_INTENSITY16F_ARB 0x881D -#define GL_LUMINANCE16F_ARB 0x881E -#define GL_LUMINANCE_ALPHA16F_ARB 0x881F -#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 -#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 -#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 -#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 - -#define GLEW_ARB_texture_float GLEW_GET_VAR(__GLEW_ARB_texture_float) - -#endif /* GL_ARB_texture_float */ - -/* ------------------------- GL_ARB_texture_gather ------------------------- */ - -#ifndef GL_ARB_texture_gather -#define GL_ARB_texture_gather 1 - -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F -#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F - -#define GLEW_ARB_texture_gather GLEW_GET_VAR(__GLEW_ARB_texture_gather) - -#endif /* GL_ARB_texture_gather */ - -/* --------------------- GL_ARB_texture_mirrored_repeat -------------------- */ - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_ARB_texture_mirrored_repeat 1 - -#define GL_MIRRORED_REPEAT_ARB 0x8370 - -#define GLEW_ARB_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_ARB_texture_mirrored_repeat) - -#endif /* GL_ARB_texture_mirrored_repeat */ - -/* ----------------------- GL_ARB_texture_multisample ---------------------- */ - -#ifndef GL_ARB_texture_multisample -#define GL_ARB_texture_multisample 1 - -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 - -typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val); -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); - -#define glGetMultisamplefv GLEW_GET_FUN(__glewGetMultisamplefv) -#define glSampleMaski GLEW_GET_FUN(__glewSampleMaski) -#define glTexImage2DMultisample GLEW_GET_FUN(__glewTexImage2DMultisample) -#define glTexImage3DMultisample GLEW_GET_FUN(__glewTexImage3DMultisample) - -#define GLEW_ARB_texture_multisample GLEW_GET_VAR(__GLEW_ARB_texture_multisample) - -#endif /* GL_ARB_texture_multisample */ - -/* -------------------- GL_ARB_texture_non_power_of_two -------------------- */ - -#ifndef GL_ARB_texture_non_power_of_two -#define GL_ARB_texture_non_power_of_two 1 - -#define GLEW_ARB_texture_non_power_of_two GLEW_GET_VAR(__GLEW_ARB_texture_non_power_of_two) - -#endif /* GL_ARB_texture_non_power_of_two */ - -/* ------------------------ GL_ARB_texture_query_lod ----------------------- */ - -#ifndef GL_ARB_texture_query_lod -#define GL_ARB_texture_query_lod 1 - -#define GLEW_ARB_texture_query_lod GLEW_GET_VAR(__GLEW_ARB_texture_query_lod) - -#endif /* GL_ARB_texture_query_lod */ - -/* ------------------------ GL_ARB_texture_rectangle ----------------------- */ - -#ifndef GL_ARB_texture_rectangle -#define GL_ARB_texture_rectangle 1 - -#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 - -#define GLEW_ARB_texture_rectangle GLEW_GET_VAR(__GLEW_ARB_texture_rectangle) - -#endif /* GL_ARB_texture_rectangle */ - -/* --------------------------- GL_ARB_texture_rg --------------------------- */ - -#ifndef GL_ARB_texture_rg -#define GL_ARB_texture_rg 1 - -#define GL_RED 0x1903 -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_R16 0x822A -#define GL_RG8 0x822B -#define GL_RG16 0x822C -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C - -#define GLEW_ARB_texture_rg GLEW_GET_VAR(__GLEW_ARB_texture_rg) - -#endif /* GL_ARB_texture_rg */ - -/* ----------------------- GL_ARB_texture_rgb10_a2ui ----------------------- */ - -#ifndef GL_ARB_texture_rgb10_a2ui -#define GL_ARB_texture_rgb10_a2ui 1 - -#define GL_RGB10_A2UI 0x906F - -#define GLEW_ARB_texture_rgb10_a2ui GLEW_GET_VAR(__GLEW_ARB_texture_rgb10_a2ui) - -#endif /* GL_ARB_texture_rgb10_a2ui */ - -/* ------------------------- GL_ARB_texture_storage ------------------------ */ - -#ifndef GL_ARB_texture_storage -#define GL_ARB_texture_storage 1 - -#define GL_ALPHA8_EXT 0x803C -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F - -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); - -#define glTexStorage1D GLEW_GET_FUN(__glewTexStorage1D) -#define glTexStorage2D GLEW_GET_FUN(__glewTexStorage2D) -#define glTexStorage3D GLEW_GET_FUN(__glewTexStorage3D) -#define glTextureStorage1DEXT GLEW_GET_FUN(__glewTextureStorage1DEXT) -#define glTextureStorage2DEXT GLEW_GET_FUN(__glewTextureStorage2DEXT) -#define glTextureStorage3DEXT GLEW_GET_FUN(__glewTextureStorage3DEXT) - -#define GLEW_ARB_texture_storage GLEW_GET_VAR(__GLEW_ARB_texture_storage) - -#endif /* GL_ARB_texture_storage */ - -/* ------------------------- GL_ARB_texture_swizzle ------------------------ */ - -#ifndef GL_ARB_texture_swizzle -#define GL_ARB_texture_swizzle 1 - -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 - -#define GLEW_ARB_texture_swizzle GLEW_GET_VAR(__GLEW_ARB_texture_swizzle) - -#endif /* GL_ARB_texture_swizzle */ - -/* --------------------------- GL_ARB_timer_query -------------------------- */ - -#ifndef GL_ARB_timer_query -#define GL_ARB_timer_query 1 - -#define GL_TIME_ELAPSED 0x88BF -#define GL_TIMESTAMP 0x8E28 - -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64* params); -typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); - -#define glGetQueryObjecti64v GLEW_GET_FUN(__glewGetQueryObjecti64v) -#define glGetQueryObjectui64v GLEW_GET_FUN(__glewGetQueryObjectui64v) -#define glQueryCounter GLEW_GET_FUN(__glewQueryCounter) - -#define GLEW_ARB_timer_query GLEW_GET_VAR(__GLEW_ARB_timer_query) - -#endif /* GL_ARB_timer_query */ - -/* ----------------------- GL_ARB_transform_feedback2 ---------------------- */ - -#ifndef GL_ARB_transform_feedback2 -#define GL_ARB_transform_feedback2 1 - -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 - -typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); -typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids); -typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); - -#define glBindTransformFeedback GLEW_GET_FUN(__glewBindTransformFeedback) -#define glDeleteTransformFeedbacks GLEW_GET_FUN(__glewDeleteTransformFeedbacks) -#define glDrawTransformFeedback GLEW_GET_FUN(__glewDrawTransformFeedback) -#define glGenTransformFeedbacks GLEW_GET_FUN(__glewGenTransformFeedbacks) -#define glIsTransformFeedback GLEW_GET_FUN(__glewIsTransformFeedback) -#define glPauseTransformFeedback GLEW_GET_FUN(__glewPauseTransformFeedback) -#define glResumeTransformFeedback GLEW_GET_FUN(__glewResumeTransformFeedback) - -#define GLEW_ARB_transform_feedback2 GLEW_GET_VAR(__GLEW_ARB_transform_feedback2) - -#endif /* GL_ARB_transform_feedback2 */ - -/* ----------------------- GL_ARB_transform_feedback3 ---------------------- */ - -#ifndef GL_ARB_transform_feedback3 -#define GL_ARB_transform_feedback3 1 - -#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 -#define GL_MAX_VERTEX_STREAMS 0x8E71 - -typedef void (GLAPIENTRY * PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); -typedef void (GLAPIENTRY * PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); - -#define glBeginQueryIndexed GLEW_GET_FUN(__glewBeginQueryIndexed) -#define glDrawTransformFeedbackStream GLEW_GET_FUN(__glewDrawTransformFeedbackStream) -#define glEndQueryIndexed GLEW_GET_FUN(__glewEndQueryIndexed) -#define glGetQueryIndexediv GLEW_GET_FUN(__glewGetQueryIndexediv) - -#define GLEW_ARB_transform_feedback3 GLEW_GET_VAR(__GLEW_ARB_transform_feedback3) - -#endif /* GL_ARB_transform_feedback3 */ - -/* ------------------ GL_ARB_transform_feedback_instanced ------------------ */ - -#ifndef GL_ARB_transform_feedback_instanced -#define GL_ARB_transform_feedback_instanced 1 - -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei primcount); - -#define glDrawTransformFeedbackInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackInstanced) -#define glDrawTransformFeedbackStreamInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackStreamInstanced) - -#define GLEW_ARB_transform_feedback_instanced GLEW_GET_VAR(__GLEW_ARB_transform_feedback_instanced) - -#endif /* GL_ARB_transform_feedback_instanced */ - -/* ------------------------ GL_ARB_transpose_matrix ------------------------ */ - -#ifndef GL_ARB_transpose_matrix -#define GL_ARB_transpose_matrix 1 - -#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 - -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); - -#define glLoadTransposeMatrixdARB GLEW_GET_FUN(__glewLoadTransposeMatrixdARB) -#define glLoadTransposeMatrixfARB GLEW_GET_FUN(__glewLoadTransposeMatrixfARB) -#define glMultTransposeMatrixdARB GLEW_GET_FUN(__glewMultTransposeMatrixdARB) -#define glMultTransposeMatrixfARB GLEW_GET_FUN(__glewMultTransposeMatrixfARB) - -#define GLEW_ARB_transpose_matrix GLEW_GET_VAR(__GLEW_ARB_transpose_matrix) - -#endif /* GL_ARB_transpose_matrix */ - -/* ---------------------- GL_ARB_uniform_buffer_object --------------------- */ - -#ifndef GL_ARB_uniform_buffer_object -#define GL_ARB_uniform_buffer_object 1 - -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, char* uniformBlockName); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, char* uniformName); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data); -typedef GLuint (GLAPIENTRY * PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const char* uniformBlockName); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const char** uniformNames, GLuint* uniformIndices); -typedef void (GLAPIENTRY * PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); - -#define glBindBufferBase GLEW_GET_FUN(__glewBindBufferBase) -#define glBindBufferRange GLEW_GET_FUN(__glewBindBufferRange) -#define glGetActiveUniformBlockName GLEW_GET_FUN(__glewGetActiveUniformBlockName) -#define glGetActiveUniformBlockiv GLEW_GET_FUN(__glewGetActiveUniformBlockiv) -#define glGetActiveUniformName GLEW_GET_FUN(__glewGetActiveUniformName) -#define glGetActiveUniformsiv GLEW_GET_FUN(__glewGetActiveUniformsiv) -#define glGetIntegeri_v GLEW_GET_FUN(__glewGetIntegeri_v) -#define glGetUniformBlockIndex GLEW_GET_FUN(__glewGetUniformBlockIndex) -#define glGetUniformIndices GLEW_GET_FUN(__glewGetUniformIndices) -#define glUniformBlockBinding GLEW_GET_FUN(__glewUniformBlockBinding) - -#define GLEW_ARB_uniform_buffer_object GLEW_GET_VAR(__GLEW_ARB_uniform_buffer_object) - -#endif /* GL_ARB_uniform_buffer_object */ - -/* ------------------------ GL_ARB_vertex_array_bgra ----------------------- */ - -#ifndef GL_ARB_vertex_array_bgra -#define GL_ARB_vertex_array_bgra 1 - -#define GL_BGRA 0x80E1 - -#define GLEW_ARB_vertex_array_bgra GLEW_GET_VAR(__GLEW_ARB_vertex_array_bgra) - -#endif /* GL_ARB_vertex_array_bgra */ - -/* ----------------------- GL_ARB_vertex_array_object ---------------------- */ - -#ifndef GL_ARB_vertex_array_object -#define GL_ARB_vertex_array_object 1 - -#define GL_VERTEX_ARRAY_BINDING 0x85B5 - -typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays); -typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays); -typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYPROC) (GLuint array); - -#define glBindVertexArray GLEW_GET_FUN(__glewBindVertexArray) -#define glDeleteVertexArrays GLEW_GET_FUN(__glewDeleteVertexArrays) -#define glGenVertexArrays GLEW_GET_FUN(__glewGenVertexArrays) -#define glIsVertexArray GLEW_GET_FUN(__glewIsVertexArray) - -#define GLEW_ARB_vertex_array_object GLEW_GET_VAR(__GLEW_ARB_vertex_array_object) - -#endif /* GL_ARB_vertex_array_object */ - -/* ----------------------- GL_ARB_vertex_attrib_64bit ---------------------- */ - -#ifndef GL_ARB_vertex_attrib_64bit -#define GL_ARB_vertex_attrib_64bit 1 - -#define GL_DOUBLE_MAT2 0x8F46 -#define GL_DOUBLE_MAT3 0x8F47 -#define GL_DOUBLE_MAT4 0x8F48 -#define GL_DOUBLE_VEC2 0x8FFC -#define GL_DOUBLE_VEC3 0x8FFD -#define GL_DOUBLE_VEC4 0x8FFE - -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); - -#define glGetVertexAttribLdv GLEW_GET_FUN(__glewGetVertexAttribLdv) -#define glVertexAttribL1d GLEW_GET_FUN(__glewVertexAttribL1d) -#define glVertexAttribL1dv GLEW_GET_FUN(__glewVertexAttribL1dv) -#define glVertexAttribL2d GLEW_GET_FUN(__glewVertexAttribL2d) -#define glVertexAttribL2dv GLEW_GET_FUN(__glewVertexAttribL2dv) -#define glVertexAttribL3d GLEW_GET_FUN(__glewVertexAttribL3d) -#define glVertexAttribL3dv GLEW_GET_FUN(__glewVertexAttribL3dv) -#define glVertexAttribL4d GLEW_GET_FUN(__glewVertexAttribL4d) -#define glVertexAttribL4dv GLEW_GET_FUN(__glewVertexAttribL4dv) -#define glVertexAttribLPointer GLEW_GET_FUN(__glewVertexAttribLPointer) - -#define GLEW_ARB_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_64bit) - -#endif /* GL_ARB_vertex_attrib_64bit */ - -/* -------------------------- GL_ARB_vertex_blend -------------------------- */ - -#ifndef GL_ARB_vertex_blend -#define GL_ARB_vertex_blend 1 - -#define GL_MODELVIEW0_ARB 0x1700 -#define GL_MODELVIEW1_ARB 0x850A -#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 -#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 -#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 -#define GL_VERTEX_BLEND_ARB 0x86A7 -#define GL_CURRENT_WEIGHT_ARB 0x86A8 -#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 -#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA -#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB -#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC -#define GL_WEIGHT_ARRAY_ARB 0x86AD -#define GL_MODELVIEW2_ARB 0x8722 -#define GL_MODELVIEW3_ARB 0x8723 -#define GL_MODELVIEW4_ARB 0x8724 -#define GL_MODELVIEW5_ARB 0x8725 -#define GL_MODELVIEW6_ARB 0x8726 -#define GL_MODELVIEW7_ARB 0x8727 -#define GL_MODELVIEW8_ARB 0x8728 -#define GL_MODELVIEW9_ARB 0x8729 -#define GL_MODELVIEW10_ARB 0x872A -#define GL_MODELVIEW11_ARB 0x872B -#define GL_MODELVIEW12_ARB 0x872C -#define GL_MODELVIEW13_ARB 0x872D -#define GL_MODELVIEW14_ARB 0x872E -#define GL_MODELVIEW15_ARB 0x872F -#define GL_MODELVIEW16_ARB 0x8730 -#define GL_MODELVIEW17_ARB 0x8731 -#define GL_MODELVIEW18_ARB 0x8732 -#define GL_MODELVIEW19_ARB 0x8733 -#define GL_MODELVIEW20_ARB 0x8734 -#define GL_MODELVIEW21_ARB 0x8735 -#define GL_MODELVIEW22_ARB 0x8736 -#define GL_MODELVIEW23_ARB 0x8737 -#define GL_MODELVIEW24_ARB 0x8738 -#define GL_MODELVIEW25_ARB 0x8739 -#define GL_MODELVIEW26_ARB 0x873A -#define GL_MODELVIEW27_ARB 0x873B -#define GL_MODELVIEW28_ARB 0x873C -#define GL_MODELVIEW29_ARB 0x873D -#define GL_MODELVIEW30_ARB 0x873E -#define GL_MODELVIEW31_ARB 0x873F - -typedef void (GLAPIENTRY * PFNGLVERTEXBLENDARBPROC) (GLint count); -typedef void (GLAPIENTRY * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLWEIGHTBVARBPROC) (GLint size, GLbyte *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTDVARBPROC) (GLint size, GLdouble *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTFVARBPROC) (GLint size, GLfloat *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTIVARBPROC) (GLint size, GLint *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTSVARBPROC) (GLint size, GLshort *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTUBVARBPROC) (GLint size, GLubyte *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTUIVARBPROC) (GLint size, GLuint *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTUSVARBPROC) (GLint size, GLushort *weights); - -#define glVertexBlendARB GLEW_GET_FUN(__glewVertexBlendARB) -#define glWeightPointerARB GLEW_GET_FUN(__glewWeightPointerARB) -#define glWeightbvARB GLEW_GET_FUN(__glewWeightbvARB) -#define glWeightdvARB GLEW_GET_FUN(__glewWeightdvARB) -#define glWeightfvARB GLEW_GET_FUN(__glewWeightfvARB) -#define glWeightivARB GLEW_GET_FUN(__glewWeightivARB) -#define glWeightsvARB GLEW_GET_FUN(__glewWeightsvARB) -#define glWeightubvARB GLEW_GET_FUN(__glewWeightubvARB) -#define glWeightuivARB GLEW_GET_FUN(__glewWeightuivARB) -#define glWeightusvARB GLEW_GET_FUN(__glewWeightusvARB) - -#define GLEW_ARB_vertex_blend GLEW_GET_VAR(__GLEW_ARB_vertex_blend) - -#endif /* GL_ARB_vertex_blend */ - -/* ---------------------- GL_ARB_vertex_buffer_object ---------------------- */ - -#ifndef GL_ARB_vertex_buffer_object -#define GL_ARB_vertex_buffer_object 1 - -#define GL_BUFFER_SIZE_ARB 0x8764 -#define GL_BUFFER_USAGE_ARB 0x8765 -#define GL_ARRAY_BUFFER_ARB 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define GL_READ_ONLY_ARB 0x88B8 -#define GL_WRITE_ONLY_ARB 0x88B9 -#define GL_READ_WRITE_ARB 0x88BA -#define GL_BUFFER_ACCESS_ARB 0x88BB -#define GL_BUFFER_MAPPED_ARB 0x88BC -#define GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define GL_STREAM_DRAW_ARB 0x88E0 -#define GL_STREAM_READ_ARB 0x88E1 -#define GL_STREAM_COPY_ARB 0x88E2 -#define GL_STATIC_DRAW_ARB 0x88E4 -#define GL_STATIC_READ_ARB 0x88E5 -#define GL_STATIC_COPY_ARB 0x88E6 -#define GL_DYNAMIC_DRAW_ARB 0x88E8 -#define GL_DYNAMIC_READ_ARB 0x88E9 -#define GL_DYNAMIC_COPY_ARB 0x88EA - -typedef ptrdiff_t GLintptrARB; -typedef ptrdiff_t GLsizeiptrARB; - -typedef void (GLAPIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid* data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid* data); -typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid** params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid* data); -typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERARBPROC) (GLuint buffer); -typedef GLvoid * (GLAPIENTRY * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERARBPROC) (GLenum target); - -#define glBindBufferARB GLEW_GET_FUN(__glewBindBufferARB) -#define glBufferDataARB GLEW_GET_FUN(__glewBufferDataARB) -#define glBufferSubDataARB GLEW_GET_FUN(__glewBufferSubDataARB) -#define glDeleteBuffersARB GLEW_GET_FUN(__glewDeleteBuffersARB) -#define glGenBuffersARB GLEW_GET_FUN(__glewGenBuffersARB) -#define glGetBufferParameterivARB GLEW_GET_FUN(__glewGetBufferParameterivARB) -#define glGetBufferPointervARB GLEW_GET_FUN(__glewGetBufferPointervARB) -#define glGetBufferSubDataARB GLEW_GET_FUN(__glewGetBufferSubDataARB) -#define glIsBufferARB GLEW_GET_FUN(__glewIsBufferARB) -#define glMapBufferARB GLEW_GET_FUN(__glewMapBufferARB) -#define glUnmapBufferARB GLEW_GET_FUN(__glewUnmapBufferARB) - -#define GLEW_ARB_vertex_buffer_object GLEW_GET_VAR(__GLEW_ARB_vertex_buffer_object) - -#endif /* GL_ARB_vertex_buffer_object */ - -/* ------------------------- GL_ARB_vertex_program ------------------------- */ - -#ifndef GL_ARB_vertex_program -#define GL_ARB_vertex_program 1 - -#define GL_COLOR_SUM_ARB 0x8458 -#define GL_VERTEX_PROGRAM_ARB 0x8620 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 -#define GL_PROGRAM_LENGTH_ARB 0x8627 -#define GL_PROGRAM_STRING_ARB 0x8628 -#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define GL_CURRENT_MATRIX_ARB 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B -#define GL_PROGRAM_BINDING_ARB 0x8677 -#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 -#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define GL_PROGRAM_FORMAT_ARB 0x8876 -#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 -#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 -#define GL_MATRIX0_ARB 0x88C0 -#define GL_MATRIX1_ARB 0x88C1 -#define GL_MATRIX2_ARB 0x88C2 -#define GL_MATRIX3_ARB 0x88C3 -#define GL_MATRIX4_ARB 0x88C4 -#define GL_MATRIX5_ARB 0x88C5 -#define GL_MATRIX6_ARB 0x88C6 -#define GL_MATRIX7_ARB 0x88C7 -#define GL_MATRIX8_ARB 0x88C8 -#define GL_MATRIX9_ARB 0x88C9 -#define GL_MATRIX10_ARB 0x88CA -#define GL_MATRIX11_ARB 0x88CB -#define GL_MATRIX12_ARB 0x88CC -#define GL_MATRIX13_ARB 0x88CD -#define GL_MATRIX14_ARB 0x88CE -#define GL_MATRIX15_ARB 0x88CF -#define GL_MATRIX16_ARB 0x88D0 -#define GL_MATRIX17_ARB 0x88D1 -#define GL_MATRIX18_ARB 0x88D2 -#define GL_MATRIX19_ARB 0x88D3 -#define GL_MATRIX20_ARB 0x88D4 -#define GL_MATRIX21_ARB 0x88D5 -#define GL_MATRIX22_ARB 0x88D6 -#define GL_MATRIX23_ARB 0x88D7 -#define GL_MATRIX24_ARB 0x88D8 -#define GL_MATRIX25_ARB 0x88D9 -#define GL_MATRIX26_ARB 0x88DA -#define GL_MATRIX27_ARB 0x88DB -#define GL_MATRIX28_ARB 0x88DC -#define GL_MATRIX29_ARB 0x88DD -#define GL_MATRIX30_ARB 0x88DE -#define GL_MATRIX31_ARB 0x88DF - -typedef void (GLAPIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint* programs); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint* programs); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void* string); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid** pointer); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMARBPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void* string); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer); - -#define glBindProgramARB GLEW_GET_FUN(__glewBindProgramARB) -#define glDeleteProgramsARB GLEW_GET_FUN(__glewDeleteProgramsARB) -#define glDisableVertexAttribArrayARB GLEW_GET_FUN(__glewDisableVertexAttribArrayARB) -#define glEnableVertexAttribArrayARB GLEW_GET_FUN(__glewEnableVertexAttribArrayARB) -#define glGenProgramsARB GLEW_GET_FUN(__glewGenProgramsARB) -#define glGetProgramEnvParameterdvARB GLEW_GET_FUN(__glewGetProgramEnvParameterdvARB) -#define glGetProgramEnvParameterfvARB GLEW_GET_FUN(__glewGetProgramEnvParameterfvARB) -#define glGetProgramLocalParameterdvARB GLEW_GET_FUN(__glewGetProgramLocalParameterdvARB) -#define glGetProgramLocalParameterfvARB GLEW_GET_FUN(__glewGetProgramLocalParameterfvARB) -#define glGetProgramStringARB GLEW_GET_FUN(__glewGetProgramStringARB) -#define glGetProgramivARB GLEW_GET_FUN(__glewGetProgramivARB) -#define glGetVertexAttribPointervARB GLEW_GET_FUN(__glewGetVertexAttribPointervARB) -#define glGetVertexAttribdvARB GLEW_GET_FUN(__glewGetVertexAttribdvARB) -#define glGetVertexAttribfvARB GLEW_GET_FUN(__glewGetVertexAttribfvARB) -#define glGetVertexAttribivARB GLEW_GET_FUN(__glewGetVertexAttribivARB) -#define glIsProgramARB GLEW_GET_FUN(__glewIsProgramARB) -#define glProgramEnvParameter4dARB GLEW_GET_FUN(__glewProgramEnvParameter4dARB) -#define glProgramEnvParameter4dvARB GLEW_GET_FUN(__glewProgramEnvParameter4dvARB) -#define glProgramEnvParameter4fARB GLEW_GET_FUN(__glewProgramEnvParameter4fARB) -#define glProgramEnvParameter4fvARB GLEW_GET_FUN(__glewProgramEnvParameter4fvARB) -#define glProgramLocalParameter4dARB GLEW_GET_FUN(__glewProgramLocalParameter4dARB) -#define glProgramLocalParameter4dvARB GLEW_GET_FUN(__glewProgramLocalParameter4dvARB) -#define glProgramLocalParameter4fARB GLEW_GET_FUN(__glewProgramLocalParameter4fARB) -#define glProgramLocalParameter4fvARB GLEW_GET_FUN(__glewProgramLocalParameter4fvARB) -#define glProgramStringARB GLEW_GET_FUN(__glewProgramStringARB) -#define glVertexAttrib1dARB GLEW_GET_FUN(__glewVertexAttrib1dARB) -#define glVertexAttrib1dvARB GLEW_GET_FUN(__glewVertexAttrib1dvARB) -#define glVertexAttrib1fARB GLEW_GET_FUN(__glewVertexAttrib1fARB) -#define glVertexAttrib1fvARB GLEW_GET_FUN(__glewVertexAttrib1fvARB) -#define glVertexAttrib1sARB GLEW_GET_FUN(__glewVertexAttrib1sARB) -#define glVertexAttrib1svARB GLEW_GET_FUN(__glewVertexAttrib1svARB) -#define glVertexAttrib2dARB GLEW_GET_FUN(__glewVertexAttrib2dARB) -#define glVertexAttrib2dvARB GLEW_GET_FUN(__glewVertexAttrib2dvARB) -#define glVertexAttrib2fARB GLEW_GET_FUN(__glewVertexAttrib2fARB) -#define glVertexAttrib2fvARB GLEW_GET_FUN(__glewVertexAttrib2fvARB) -#define glVertexAttrib2sARB GLEW_GET_FUN(__glewVertexAttrib2sARB) -#define glVertexAttrib2svARB GLEW_GET_FUN(__glewVertexAttrib2svARB) -#define glVertexAttrib3dARB GLEW_GET_FUN(__glewVertexAttrib3dARB) -#define glVertexAttrib3dvARB GLEW_GET_FUN(__glewVertexAttrib3dvARB) -#define glVertexAttrib3fARB GLEW_GET_FUN(__glewVertexAttrib3fARB) -#define glVertexAttrib3fvARB GLEW_GET_FUN(__glewVertexAttrib3fvARB) -#define glVertexAttrib3sARB GLEW_GET_FUN(__glewVertexAttrib3sARB) -#define glVertexAttrib3svARB GLEW_GET_FUN(__glewVertexAttrib3svARB) -#define glVertexAttrib4NbvARB GLEW_GET_FUN(__glewVertexAttrib4NbvARB) -#define glVertexAttrib4NivARB GLEW_GET_FUN(__glewVertexAttrib4NivARB) -#define glVertexAttrib4NsvARB GLEW_GET_FUN(__glewVertexAttrib4NsvARB) -#define glVertexAttrib4NubARB GLEW_GET_FUN(__glewVertexAttrib4NubARB) -#define glVertexAttrib4NubvARB GLEW_GET_FUN(__glewVertexAttrib4NubvARB) -#define glVertexAttrib4NuivARB GLEW_GET_FUN(__glewVertexAttrib4NuivARB) -#define glVertexAttrib4NusvARB GLEW_GET_FUN(__glewVertexAttrib4NusvARB) -#define glVertexAttrib4bvARB GLEW_GET_FUN(__glewVertexAttrib4bvARB) -#define glVertexAttrib4dARB GLEW_GET_FUN(__glewVertexAttrib4dARB) -#define glVertexAttrib4dvARB GLEW_GET_FUN(__glewVertexAttrib4dvARB) -#define glVertexAttrib4fARB GLEW_GET_FUN(__glewVertexAttrib4fARB) -#define glVertexAttrib4fvARB GLEW_GET_FUN(__glewVertexAttrib4fvARB) -#define glVertexAttrib4ivARB GLEW_GET_FUN(__glewVertexAttrib4ivARB) -#define glVertexAttrib4sARB GLEW_GET_FUN(__glewVertexAttrib4sARB) -#define glVertexAttrib4svARB GLEW_GET_FUN(__glewVertexAttrib4svARB) -#define glVertexAttrib4ubvARB GLEW_GET_FUN(__glewVertexAttrib4ubvARB) -#define glVertexAttrib4uivARB GLEW_GET_FUN(__glewVertexAttrib4uivARB) -#define glVertexAttrib4usvARB GLEW_GET_FUN(__glewVertexAttrib4usvARB) -#define glVertexAttribPointerARB GLEW_GET_FUN(__glewVertexAttribPointerARB) - -#define GLEW_ARB_vertex_program GLEW_GET_VAR(__GLEW_ARB_vertex_program) - -#endif /* GL_ARB_vertex_program */ - -/* -------------------------- GL_ARB_vertex_shader ------------------------- */ - -#ifndef GL_ARB_vertex_shader -#define GL_ARB_vertex_shader 1 - -#define GL_VERTEX_SHADER_ARB 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A - -typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB* name); -typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); -typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); - -#define glBindAttribLocationARB GLEW_GET_FUN(__glewBindAttribLocationARB) -#define glGetActiveAttribARB GLEW_GET_FUN(__glewGetActiveAttribARB) -#define glGetAttribLocationARB GLEW_GET_FUN(__glewGetAttribLocationARB) - -#define GLEW_ARB_vertex_shader GLEW_GET_VAR(__GLEW_ARB_vertex_shader) - -#endif /* GL_ARB_vertex_shader */ - -/* ------------------- GL_ARB_vertex_type_2_10_10_10_rev ------------------- */ - -#ifndef GL_ARB_vertex_type_2_10_10_10_rev -#define GL_ARB_vertex_type_2_10_10_10_rev 1 - -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_INT_2_10_10_10_REV 0x8D9F - -typedef void (GLAPIENTRY * PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (GLAPIENTRY * PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint* color); -typedef void (GLAPIENTRY * PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); -typedef void (GLAPIENTRY * PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint* color); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint* color); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint* value); - -#define glColorP3ui GLEW_GET_FUN(__glewColorP3ui) -#define glColorP3uiv GLEW_GET_FUN(__glewColorP3uiv) -#define glColorP4ui GLEW_GET_FUN(__glewColorP4ui) -#define glColorP4uiv GLEW_GET_FUN(__glewColorP4uiv) -#define glMultiTexCoordP1ui GLEW_GET_FUN(__glewMultiTexCoordP1ui) -#define glMultiTexCoordP1uiv GLEW_GET_FUN(__glewMultiTexCoordP1uiv) -#define glMultiTexCoordP2ui GLEW_GET_FUN(__glewMultiTexCoordP2ui) -#define glMultiTexCoordP2uiv GLEW_GET_FUN(__glewMultiTexCoordP2uiv) -#define glMultiTexCoordP3ui GLEW_GET_FUN(__glewMultiTexCoordP3ui) -#define glMultiTexCoordP3uiv GLEW_GET_FUN(__glewMultiTexCoordP3uiv) -#define glMultiTexCoordP4ui GLEW_GET_FUN(__glewMultiTexCoordP4ui) -#define glMultiTexCoordP4uiv GLEW_GET_FUN(__glewMultiTexCoordP4uiv) -#define glNormalP3ui GLEW_GET_FUN(__glewNormalP3ui) -#define glNormalP3uiv GLEW_GET_FUN(__glewNormalP3uiv) -#define glSecondaryColorP3ui GLEW_GET_FUN(__glewSecondaryColorP3ui) -#define glSecondaryColorP3uiv GLEW_GET_FUN(__glewSecondaryColorP3uiv) -#define glTexCoordP1ui GLEW_GET_FUN(__glewTexCoordP1ui) -#define glTexCoordP1uiv GLEW_GET_FUN(__glewTexCoordP1uiv) -#define glTexCoordP2ui GLEW_GET_FUN(__glewTexCoordP2ui) -#define glTexCoordP2uiv GLEW_GET_FUN(__glewTexCoordP2uiv) -#define glTexCoordP3ui GLEW_GET_FUN(__glewTexCoordP3ui) -#define glTexCoordP3uiv GLEW_GET_FUN(__glewTexCoordP3uiv) -#define glTexCoordP4ui GLEW_GET_FUN(__glewTexCoordP4ui) -#define glTexCoordP4uiv GLEW_GET_FUN(__glewTexCoordP4uiv) -#define glVertexAttribP1ui GLEW_GET_FUN(__glewVertexAttribP1ui) -#define glVertexAttribP1uiv GLEW_GET_FUN(__glewVertexAttribP1uiv) -#define glVertexAttribP2ui GLEW_GET_FUN(__glewVertexAttribP2ui) -#define glVertexAttribP2uiv GLEW_GET_FUN(__glewVertexAttribP2uiv) -#define glVertexAttribP3ui GLEW_GET_FUN(__glewVertexAttribP3ui) -#define glVertexAttribP3uiv GLEW_GET_FUN(__glewVertexAttribP3uiv) -#define glVertexAttribP4ui GLEW_GET_FUN(__glewVertexAttribP4ui) -#define glVertexAttribP4uiv GLEW_GET_FUN(__glewVertexAttribP4uiv) -#define glVertexP2ui GLEW_GET_FUN(__glewVertexP2ui) -#define glVertexP2uiv GLEW_GET_FUN(__glewVertexP2uiv) -#define glVertexP3ui GLEW_GET_FUN(__glewVertexP3ui) -#define glVertexP3uiv GLEW_GET_FUN(__glewVertexP3uiv) -#define glVertexP4ui GLEW_GET_FUN(__glewVertexP4ui) -#define glVertexP4uiv GLEW_GET_FUN(__glewVertexP4uiv) - -#define GLEW_ARB_vertex_type_2_10_10_10_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_2_10_10_10_rev) - -#endif /* GL_ARB_vertex_type_2_10_10_10_rev */ - -/* ------------------------- GL_ARB_viewport_array ------------------------- */ - -#ifndef GL_ARB_viewport_array -#define GL_ARB_viewport_array 1 - -#define GL_DEPTH_RANGE 0x0B70 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_MAX_VIEWPORTS 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE 0x825D -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F -#define GL_UNDEFINED_VERTEX 0x8260 -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F - -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd * v); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); -typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble* data); -typedef void (GLAPIENTRY * PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat* data); -typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint * v); -typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint * v); -typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat * v); -typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat * v); - -#define glDepthRangeArrayv GLEW_GET_FUN(__glewDepthRangeArrayv) -#define glDepthRangeIndexed GLEW_GET_FUN(__glewDepthRangeIndexed) -#define glGetDoublei_v GLEW_GET_FUN(__glewGetDoublei_v) -#define glGetFloati_v GLEW_GET_FUN(__glewGetFloati_v) -#define glScissorArrayv GLEW_GET_FUN(__glewScissorArrayv) -#define glScissorIndexed GLEW_GET_FUN(__glewScissorIndexed) -#define glScissorIndexedv GLEW_GET_FUN(__glewScissorIndexedv) -#define glViewportArrayv GLEW_GET_FUN(__glewViewportArrayv) -#define glViewportIndexedf GLEW_GET_FUN(__glewViewportIndexedf) -#define glViewportIndexedfv GLEW_GET_FUN(__glewViewportIndexedfv) - -#define GLEW_ARB_viewport_array GLEW_GET_VAR(__GLEW_ARB_viewport_array) - -#endif /* GL_ARB_viewport_array */ - -/* --------------------------- GL_ARB_window_pos --------------------------- */ - -#ifndef GL_ARB_window_pos -#define GL_ARB_window_pos 1 - -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVARBPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVARBPROC) (const GLshort* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVARBPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort* p); - -#define glWindowPos2dARB GLEW_GET_FUN(__glewWindowPos2dARB) -#define glWindowPos2dvARB GLEW_GET_FUN(__glewWindowPos2dvARB) -#define glWindowPos2fARB GLEW_GET_FUN(__glewWindowPos2fARB) -#define glWindowPos2fvARB GLEW_GET_FUN(__glewWindowPos2fvARB) -#define glWindowPos2iARB GLEW_GET_FUN(__glewWindowPos2iARB) -#define glWindowPos2ivARB GLEW_GET_FUN(__glewWindowPos2ivARB) -#define glWindowPos2sARB GLEW_GET_FUN(__glewWindowPos2sARB) -#define glWindowPos2svARB GLEW_GET_FUN(__glewWindowPos2svARB) -#define glWindowPos3dARB GLEW_GET_FUN(__glewWindowPos3dARB) -#define glWindowPos3dvARB GLEW_GET_FUN(__glewWindowPos3dvARB) -#define glWindowPos3fARB GLEW_GET_FUN(__glewWindowPos3fARB) -#define glWindowPos3fvARB GLEW_GET_FUN(__glewWindowPos3fvARB) -#define glWindowPos3iARB GLEW_GET_FUN(__glewWindowPos3iARB) -#define glWindowPos3ivARB GLEW_GET_FUN(__glewWindowPos3ivARB) -#define glWindowPos3sARB GLEW_GET_FUN(__glewWindowPos3sARB) -#define glWindowPos3svARB GLEW_GET_FUN(__glewWindowPos3svARB) - -#define GLEW_ARB_window_pos GLEW_GET_VAR(__GLEW_ARB_window_pos) - -#endif /* GL_ARB_window_pos */ - -/* ------------------------- GL_ATIX_point_sprites ------------------------- */ - -#ifndef GL_ATIX_point_sprites -#define GL_ATIX_point_sprites 1 - -#define GL_TEXTURE_POINT_MODE_ATIX 0x60B0 -#define GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1 -#define GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2 -#define GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3 -#define GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4 -#define GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5 - -#define GLEW_ATIX_point_sprites GLEW_GET_VAR(__GLEW_ATIX_point_sprites) - -#endif /* GL_ATIX_point_sprites */ - -/* ---------------------- GL_ATIX_texture_env_combine3 --------------------- */ - -#ifndef GL_ATIX_texture_env_combine3 -#define GL_ATIX_texture_env_combine3 1 - -#define GL_MODULATE_ADD_ATIX 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATIX 0x8745 -#define GL_MODULATE_SUBTRACT_ATIX 0x8746 - -#define GLEW_ATIX_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATIX_texture_env_combine3) - -#endif /* GL_ATIX_texture_env_combine3 */ - -/* ----------------------- GL_ATIX_texture_env_route ----------------------- */ - -#ifndef GL_ATIX_texture_env_route -#define GL_ATIX_texture_env_route 1 - -#define GL_SECONDARY_COLOR_ATIX 0x8747 -#define GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748 -#define GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749 - -#define GLEW_ATIX_texture_env_route GLEW_GET_VAR(__GLEW_ATIX_texture_env_route) - -#endif /* GL_ATIX_texture_env_route */ - -/* ---------------- GL_ATIX_vertex_shader_output_point_size ---------------- */ - -#ifndef GL_ATIX_vertex_shader_output_point_size -#define GL_ATIX_vertex_shader_output_point_size 1 - -#define GL_OUTPUT_POINT_SIZE_ATIX 0x610E - -#define GLEW_ATIX_vertex_shader_output_point_size GLEW_GET_VAR(__GLEW_ATIX_vertex_shader_output_point_size) - -#endif /* GL_ATIX_vertex_shader_output_point_size */ - -/* -------------------------- GL_ATI_draw_buffers -------------------------- */ - -#ifndef GL_ATI_draw_buffers -#define GL_ATI_draw_buffers 1 - -#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 -#define GL_DRAW_BUFFER0_ATI 0x8825 -#define GL_DRAW_BUFFER1_ATI 0x8826 -#define GL_DRAW_BUFFER2_ATI 0x8827 -#define GL_DRAW_BUFFER3_ATI 0x8828 -#define GL_DRAW_BUFFER4_ATI 0x8829 -#define GL_DRAW_BUFFER5_ATI 0x882A -#define GL_DRAW_BUFFER6_ATI 0x882B -#define GL_DRAW_BUFFER7_ATI 0x882C -#define GL_DRAW_BUFFER8_ATI 0x882D -#define GL_DRAW_BUFFER9_ATI 0x882E -#define GL_DRAW_BUFFER10_ATI 0x882F -#define GL_DRAW_BUFFER11_ATI 0x8830 -#define GL_DRAW_BUFFER12_ATI 0x8831 -#define GL_DRAW_BUFFER13_ATI 0x8832 -#define GL_DRAW_BUFFER14_ATI 0x8833 -#define GL_DRAW_BUFFER15_ATI 0x8834 - -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum* bufs); - -#define glDrawBuffersATI GLEW_GET_FUN(__glewDrawBuffersATI) - -#define GLEW_ATI_draw_buffers GLEW_GET_VAR(__GLEW_ATI_draw_buffers) - -#endif /* GL_ATI_draw_buffers */ - -/* -------------------------- GL_ATI_element_array ------------------------- */ - -#ifndef GL_ATI_element_array -#define GL_ATI_element_array 1 - -#define GL_ELEMENT_ARRAY_ATI 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A - -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); -typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void* pointer); - -#define glDrawElementArrayATI GLEW_GET_FUN(__glewDrawElementArrayATI) -#define glDrawRangeElementArrayATI GLEW_GET_FUN(__glewDrawRangeElementArrayATI) -#define glElementPointerATI GLEW_GET_FUN(__glewElementPointerATI) - -#define GLEW_ATI_element_array GLEW_GET_VAR(__GLEW_ATI_element_array) - -#endif /* GL_ATI_element_array */ - -/* ------------------------- GL_ATI_envmap_bumpmap ------------------------- */ - -#ifndef GL_ATI_envmap_bumpmap -#define GL_ATI_envmap_bumpmap 1 - -#define GL_BUMP_ROT_MATRIX_ATI 0x8775 -#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 -#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 -#define GL_BUMP_TEX_UNITS_ATI 0x8778 -#define GL_DUDV_ATI 0x8779 -#define GL_DU8DV8_ATI 0x877A -#define GL_BUMP_ENVMAP_ATI 0x877B -#define GL_BUMP_TARGET_ATI 0x877C - -typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); -typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); - -#define glGetTexBumpParameterfvATI GLEW_GET_FUN(__glewGetTexBumpParameterfvATI) -#define glGetTexBumpParameterivATI GLEW_GET_FUN(__glewGetTexBumpParameterivATI) -#define glTexBumpParameterfvATI GLEW_GET_FUN(__glewTexBumpParameterfvATI) -#define glTexBumpParameterivATI GLEW_GET_FUN(__glewTexBumpParameterivATI) - -#define GLEW_ATI_envmap_bumpmap GLEW_GET_VAR(__GLEW_ATI_envmap_bumpmap) - -#endif /* GL_ATI_envmap_bumpmap */ - -/* ------------------------- GL_ATI_fragment_shader ------------------------ */ - -#ifndef GL_ATI_fragment_shader -#define GL_ATI_fragment_shader 1 - -#define GL_RED_BIT_ATI 0x00000001 -#define GL_2X_BIT_ATI 0x00000001 -#define GL_4X_BIT_ATI 0x00000002 -#define GL_GREEN_BIT_ATI 0x00000002 -#define GL_COMP_BIT_ATI 0x00000002 -#define GL_BLUE_BIT_ATI 0x00000004 -#define GL_8X_BIT_ATI 0x00000004 -#define GL_NEGATE_BIT_ATI 0x00000004 -#define GL_BIAS_BIT_ATI 0x00000008 -#define GL_HALF_BIT_ATI 0x00000008 -#define GL_QUARTER_BIT_ATI 0x00000010 -#define GL_EIGHTH_BIT_ATI 0x00000020 -#define GL_SATURATE_BIT_ATI 0x00000040 -#define GL_FRAGMENT_SHADER_ATI 0x8920 -#define GL_REG_0_ATI 0x8921 -#define GL_REG_1_ATI 0x8922 -#define GL_REG_2_ATI 0x8923 -#define GL_REG_3_ATI 0x8924 -#define GL_REG_4_ATI 0x8925 -#define GL_REG_5_ATI 0x8926 -#define GL_CON_0_ATI 0x8941 -#define GL_CON_1_ATI 0x8942 -#define GL_CON_2_ATI 0x8943 -#define GL_CON_3_ATI 0x8944 -#define GL_CON_4_ATI 0x8945 -#define GL_CON_5_ATI 0x8946 -#define GL_CON_6_ATI 0x8947 -#define GL_CON_7_ATI 0x8948 -#define GL_MOV_ATI 0x8961 -#define GL_ADD_ATI 0x8963 -#define GL_MUL_ATI 0x8964 -#define GL_SUB_ATI 0x8965 -#define GL_DOT3_ATI 0x8966 -#define GL_DOT4_ATI 0x8967 -#define GL_MAD_ATI 0x8968 -#define GL_LERP_ATI 0x8969 -#define GL_CND_ATI 0x896A -#define GL_CND0_ATI 0x896B -#define GL_DOT2_ADD_ATI 0x896C -#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define GL_NUM_PASSES_ATI 0x8970 -#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define GL_SWIZZLE_STR_ATI 0x8976 -#define GL_SWIZZLE_STQ_ATI 0x8977 -#define GL_SWIZZLE_STR_DR_ATI 0x8978 -#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define GL_SWIZZLE_STRQ_ATI 0x897A -#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B - -typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (GLAPIENTRY * PFNGLBEGINFRAGMENTSHADERATIPROC) (void); -typedef void (GLAPIENTRY * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (GLAPIENTRY * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENDFRAGMENTSHADERATIPROC) (void); -typedef GLuint (GLAPIENTRY * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); -typedef void (GLAPIENTRY * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); -typedef void (GLAPIENTRY * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); -typedef void (GLAPIENTRY * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat* value); - -#define glAlphaFragmentOp1ATI GLEW_GET_FUN(__glewAlphaFragmentOp1ATI) -#define glAlphaFragmentOp2ATI GLEW_GET_FUN(__glewAlphaFragmentOp2ATI) -#define glAlphaFragmentOp3ATI GLEW_GET_FUN(__glewAlphaFragmentOp3ATI) -#define glBeginFragmentShaderATI GLEW_GET_FUN(__glewBeginFragmentShaderATI) -#define glBindFragmentShaderATI GLEW_GET_FUN(__glewBindFragmentShaderATI) -#define glColorFragmentOp1ATI GLEW_GET_FUN(__glewColorFragmentOp1ATI) -#define glColorFragmentOp2ATI GLEW_GET_FUN(__glewColorFragmentOp2ATI) -#define glColorFragmentOp3ATI GLEW_GET_FUN(__glewColorFragmentOp3ATI) -#define glDeleteFragmentShaderATI GLEW_GET_FUN(__glewDeleteFragmentShaderATI) -#define glEndFragmentShaderATI GLEW_GET_FUN(__glewEndFragmentShaderATI) -#define glGenFragmentShadersATI GLEW_GET_FUN(__glewGenFragmentShadersATI) -#define glPassTexCoordATI GLEW_GET_FUN(__glewPassTexCoordATI) -#define glSampleMapATI GLEW_GET_FUN(__glewSampleMapATI) -#define glSetFragmentShaderConstantATI GLEW_GET_FUN(__glewSetFragmentShaderConstantATI) - -#define GLEW_ATI_fragment_shader GLEW_GET_VAR(__GLEW_ATI_fragment_shader) - -#endif /* GL_ATI_fragment_shader */ - -/* ------------------------ GL_ATI_map_object_buffer ----------------------- */ - -#ifndef GL_ATI_map_object_buffer -#define GL_ATI_map_object_buffer 1 - -typedef void* (GLAPIENTRY * PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); - -#define glMapObjectBufferATI GLEW_GET_FUN(__glewMapObjectBufferATI) -#define glUnmapObjectBufferATI GLEW_GET_FUN(__glewUnmapObjectBufferATI) - -#define GLEW_ATI_map_object_buffer GLEW_GET_VAR(__GLEW_ATI_map_object_buffer) - -#endif /* GL_ATI_map_object_buffer */ - -/* ----------------------------- GL_ATI_meminfo ---------------------------- */ - -#ifndef GL_ATI_meminfo -#define GL_ATI_meminfo 1 - -#define GL_VBO_FREE_MEMORY_ATI 0x87FB -#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC -#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD - -#define GLEW_ATI_meminfo GLEW_GET_VAR(__GLEW_ATI_meminfo) - -#endif /* GL_ATI_meminfo */ - -/* -------------------------- GL_ATI_pn_triangles -------------------------- */ - -#ifndef GL_ATI_pn_triangles -#define GL_ATI_pn_triangles 1 - -#define GL_PN_TRIANGLES_ATI 0x87F0 -#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 -#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 -#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 -#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 -#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 -#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 -#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 -#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 - -typedef void (GLAPIENTRY * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); - -#define glPNTrianglesfATI GLEW_GET_FUN(__glewPNTrianglesfATI) -#define glPNTrianglesiATI GLEW_GET_FUN(__glewPNTrianglesiATI) - -#define GLEW_ATI_pn_triangles GLEW_GET_VAR(__GLEW_ATI_pn_triangles) - -#endif /* GL_ATI_pn_triangles */ - -/* ------------------------ GL_ATI_separate_stencil ------------------------ */ - -#ifndef GL_ATI_separate_stencil -#define GL_ATI_separate_stencil 1 - -#define GL_STENCIL_BACK_FUNC_ATI 0x8800 -#define GL_STENCIL_BACK_FAIL_ATI 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 - -typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); - -#define glStencilFuncSeparateATI GLEW_GET_FUN(__glewStencilFuncSeparateATI) -#define glStencilOpSeparateATI GLEW_GET_FUN(__glewStencilOpSeparateATI) - -#define GLEW_ATI_separate_stencil GLEW_GET_VAR(__GLEW_ATI_separate_stencil) - -#endif /* GL_ATI_separate_stencil */ - -/* ----------------------- GL_ATI_shader_texture_lod ----------------------- */ - -#ifndef GL_ATI_shader_texture_lod -#define GL_ATI_shader_texture_lod 1 - -#define GLEW_ATI_shader_texture_lod GLEW_GET_VAR(__GLEW_ATI_shader_texture_lod) - -#endif /* GL_ATI_shader_texture_lod */ - -/* ---------------------- GL_ATI_text_fragment_shader ---------------------- */ - -#ifndef GL_ATI_text_fragment_shader -#define GL_ATI_text_fragment_shader 1 - -#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 - -#define GLEW_ATI_text_fragment_shader GLEW_GET_VAR(__GLEW_ATI_text_fragment_shader) - -#endif /* GL_ATI_text_fragment_shader */ - -/* --------------------- GL_ATI_texture_compression_3dc -------------------- */ - -#ifndef GL_ATI_texture_compression_3dc -#define GL_ATI_texture_compression_3dc 1 - -#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 - -#define GLEW_ATI_texture_compression_3dc GLEW_GET_VAR(__GLEW_ATI_texture_compression_3dc) - -#endif /* GL_ATI_texture_compression_3dc */ - -/* ---------------------- GL_ATI_texture_env_combine3 ---------------------- */ - -#ifndef GL_ATI_texture_env_combine3 -#define GL_ATI_texture_env_combine3 1 - -#define GL_MODULATE_ADD_ATI 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 -#define GL_MODULATE_SUBTRACT_ATI 0x8746 - -#define GLEW_ATI_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATI_texture_env_combine3) - -#endif /* GL_ATI_texture_env_combine3 */ - -/* -------------------------- GL_ATI_texture_float ------------------------- */ - -#ifndef GL_ATI_texture_float -#define GL_ATI_texture_float 1 - -#define GL_RGBA_FLOAT32_ATI 0x8814 -#define GL_RGB_FLOAT32_ATI 0x8815 -#define GL_ALPHA_FLOAT32_ATI 0x8816 -#define GL_INTENSITY_FLOAT32_ATI 0x8817 -#define GL_LUMINANCE_FLOAT32_ATI 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 -#define GL_RGBA_FLOAT16_ATI 0x881A -#define GL_RGB_FLOAT16_ATI 0x881B -#define GL_ALPHA_FLOAT16_ATI 0x881C -#define GL_INTENSITY_FLOAT16_ATI 0x881D -#define GL_LUMINANCE_FLOAT16_ATI 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F - -#define GLEW_ATI_texture_float GLEW_GET_VAR(__GLEW_ATI_texture_float) - -#endif /* GL_ATI_texture_float */ - -/* ----------------------- GL_ATI_texture_mirror_once ---------------------- */ - -#ifndef GL_ATI_texture_mirror_once -#define GL_ATI_texture_mirror_once 1 - -#define GL_MIRROR_CLAMP_ATI 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 - -#define GLEW_ATI_texture_mirror_once GLEW_GET_VAR(__GLEW_ATI_texture_mirror_once) - -#endif /* GL_ATI_texture_mirror_once */ - -/* ----------------------- GL_ATI_vertex_array_object ---------------------- */ - -#ifndef GL_ATI_vertex_array_object -#define GL_ATI_vertex_array_object 1 - -#define GL_STATIC_ATI 0x8760 -#define GL_DYNAMIC_ATI 0x8761 -#define GL_PRESERVE_ATI 0x8762 -#define GL_DISCARD_ATI 0x8763 -#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 - -typedef void (GLAPIENTRY * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (GLAPIENTRY * PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); -typedef GLuint (GLAPIENTRY * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void* pointer, GLenum usage); -typedef void (GLAPIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void* pointer, GLenum preserve); -typedef void (GLAPIENTRY * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); - -#define glArrayObjectATI GLEW_GET_FUN(__glewArrayObjectATI) -#define glFreeObjectBufferATI GLEW_GET_FUN(__glewFreeObjectBufferATI) -#define glGetArrayObjectfvATI GLEW_GET_FUN(__glewGetArrayObjectfvATI) -#define glGetArrayObjectivATI GLEW_GET_FUN(__glewGetArrayObjectivATI) -#define glGetObjectBufferfvATI GLEW_GET_FUN(__glewGetObjectBufferfvATI) -#define glGetObjectBufferivATI GLEW_GET_FUN(__glewGetObjectBufferivATI) -#define glGetVariantArrayObjectfvATI GLEW_GET_FUN(__glewGetVariantArrayObjectfvATI) -#define glGetVariantArrayObjectivATI GLEW_GET_FUN(__glewGetVariantArrayObjectivATI) -#define glIsObjectBufferATI GLEW_GET_FUN(__glewIsObjectBufferATI) -#define glNewObjectBufferATI GLEW_GET_FUN(__glewNewObjectBufferATI) -#define glUpdateObjectBufferATI GLEW_GET_FUN(__glewUpdateObjectBufferATI) -#define glVariantArrayObjectATI GLEW_GET_FUN(__glewVariantArrayObjectATI) - -#define GLEW_ATI_vertex_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_array_object) - -#endif /* GL_ATI_vertex_array_object */ - -/* ------------------- GL_ATI_vertex_attrib_array_object ------------------- */ - -#ifndef GL_ATI_vertex_attrib_array_object -#define GL_ATI_vertex_attrib_array_object 1 - -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); - -#define glGetVertexAttribArrayObjectfvATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectfvATI) -#define glGetVertexAttribArrayObjectivATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectivATI) -#define glVertexAttribArrayObjectATI GLEW_GET_FUN(__glewVertexAttribArrayObjectATI) - -#define GLEW_ATI_vertex_attrib_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_attrib_array_object) - -#endif /* GL_ATI_vertex_attrib_array_object */ - -/* ------------------------- GL_ATI_vertex_streams ------------------------- */ - -#ifndef GL_ATI_vertex_streams -#define GL_ATI_vertex_streams 1 - -#define GL_MAX_VERTEX_STREAMS_ATI 0x876B -#define GL_VERTEX_SOURCE_ATI 0x876C -#define GL_VERTEX_STREAM0_ATI 0x876D -#define GL_VERTEX_STREAM1_ATI 0x876E -#define GL_VERTEX_STREAM2_ATI 0x876F -#define GL_VERTEX_STREAM3_ATI 0x8770 -#define GL_VERTEX_STREAM4_ATI 0x8771 -#define GL_VERTEX_STREAM5_ATI 0x8772 -#define GL_VERTEX_STREAM6_ATI 0x8773 -#define GL_VERTEX_STREAM7_ATI 0x8774 - -typedef void (GLAPIENTRY * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *v); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *v); - -#define glClientActiveVertexStreamATI GLEW_GET_FUN(__glewClientActiveVertexStreamATI) -#define glNormalStream3bATI GLEW_GET_FUN(__glewNormalStream3bATI) -#define glNormalStream3bvATI GLEW_GET_FUN(__glewNormalStream3bvATI) -#define glNormalStream3dATI GLEW_GET_FUN(__glewNormalStream3dATI) -#define glNormalStream3dvATI GLEW_GET_FUN(__glewNormalStream3dvATI) -#define glNormalStream3fATI GLEW_GET_FUN(__glewNormalStream3fATI) -#define glNormalStream3fvATI GLEW_GET_FUN(__glewNormalStream3fvATI) -#define glNormalStream3iATI GLEW_GET_FUN(__glewNormalStream3iATI) -#define glNormalStream3ivATI GLEW_GET_FUN(__glewNormalStream3ivATI) -#define glNormalStream3sATI GLEW_GET_FUN(__glewNormalStream3sATI) -#define glNormalStream3svATI GLEW_GET_FUN(__glewNormalStream3svATI) -#define glVertexBlendEnvfATI GLEW_GET_FUN(__glewVertexBlendEnvfATI) -#define glVertexBlendEnviATI GLEW_GET_FUN(__glewVertexBlendEnviATI) -#define glVertexStream2dATI GLEW_GET_FUN(__glewVertexStream2dATI) -#define glVertexStream2dvATI GLEW_GET_FUN(__glewVertexStream2dvATI) -#define glVertexStream2fATI GLEW_GET_FUN(__glewVertexStream2fATI) -#define glVertexStream2fvATI GLEW_GET_FUN(__glewVertexStream2fvATI) -#define glVertexStream2iATI GLEW_GET_FUN(__glewVertexStream2iATI) -#define glVertexStream2ivATI GLEW_GET_FUN(__glewVertexStream2ivATI) -#define glVertexStream2sATI GLEW_GET_FUN(__glewVertexStream2sATI) -#define glVertexStream2svATI GLEW_GET_FUN(__glewVertexStream2svATI) -#define glVertexStream3dATI GLEW_GET_FUN(__glewVertexStream3dATI) -#define glVertexStream3dvATI GLEW_GET_FUN(__glewVertexStream3dvATI) -#define glVertexStream3fATI GLEW_GET_FUN(__glewVertexStream3fATI) -#define glVertexStream3fvATI GLEW_GET_FUN(__glewVertexStream3fvATI) -#define glVertexStream3iATI GLEW_GET_FUN(__glewVertexStream3iATI) -#define glVertexStream3ivATI GLEW_GET_FUN(__glewVertexStream3ivATI) -#define glVertexStream3sATI GLEW_GET_FUN(__glewVertexStream3sATI) -#define glVertexStream3svATI GLEW_GET_FUN(__glewVertexStream3svATI) -#define glVertexStream4dATI GLEW_GET_FUN(__glewVertexStream4dATI) -#define glVertexStream4dvATI GLEW_GET_FUN(__glewVertexStream4dvATI) -#define glVertexStream4fATI GLEW_GET_FUN(__glewVertexStream4fATI) -#define glVertexStream4fvATI GLEW_GET_FUN(__glewVertexStream4fvATI) -#define glVertexStream4iATI GLEW_GET_FUN(__glewVertexStream4iATI) -#define glVertexStream4ivATI GLEW_GET_FUN(__glewVertexStream4ivATI) -#define glVertexStream4sATI GLEW_GET_FUN(__glewVertexStream4sATI) -#define glVertexStream4svATI GLEW_GET_FUN(__glewVertexStream4svATI) - -#define GLEW_ATI_vertex_streams GLEW_GET_VAR(__GLEW_ATI_vertex_streams) - -#endif /* GL_ATI_vertex_streams */ - -/* --------------------------- GL_EXT_422_pixels --------------------------- */ - -#ifndef GL_EXT_422_pixels -#define GL_EXT_422_pixels 1 - -#define GL_422_EXT 0x80CC -#define GL_422_REV_EXT 0x80CD -#define GL_422_AVERAGE_EXT 0x80CE -#define GL_422_REV_AVERAGE_EXT 0x80CF - -#define GLEW_EXT_422_pixels GLEW_GET_VAR(__GLEW_EXT_422_pixels) - -#endif /* GL_EXT_422_pixels */ - -/* ---------------------------- GL_EXT_Cg_shader --------------------------- */ - -#ifndef GL_EXT_Cg_shader -#define GL_EXT_Cg_shader 1 - -#define GL_CG_VERTEX_SHADER_EXT 0x890E -#define GL_CG_FRAGMENT_SHADER_EXT 0x890F - -#define GLEW_EXT_Cg_shader GLEW_GET_VAR(__GLEW_EXT_Cg_shader) - -#endif /* GL_EXT_Cg_shader */ - -/* ------------------------------ GL_EXT_abgr ------------------------------ */ - -#ifndef GL_EXT_abgr -#define GL_EXT_abgr 1 - -#define GL_ABGR_EXT 0x8000 - -#define GLEW_EXT_abgr GLEW_GET_VAR(__GLEW_EXT_abgr) - -#endif /* GL_EXT_abgr */ - -/* ------------------------------ GL_EXT_bgra ------------------------------ */ - -#ifndef GL_EXT_bgra -#define GL_EXT_bgra 1 - -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 - -#define GLEW_EXT_bgra GLEW_GET_VAR(__GLEW_EXT_bgra) - -#endif /* GL_EXT_bgra */ - -/* ------------------------ GL_EXT_bindable_uniform ------------------------ */ - -#ifndef GL_EXT_bindable_uniform -#define GL_EXT_bindable_uniform 1 - -#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 -#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 -#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 -#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED -#define GL_UNIFORM_BUFFER_EXT 0x8DEE -#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF - -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); -typedef GLintptr (GLAPIENTRY * PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); -typedef void (GLAPIENTRY * PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); - -#define glGetUniformBufferSizeEXT GLEW_GET_FUN(__glewGetUniformBufferSizeEXT) -#define glGetUniformOffsetEXT GLEW_GET_FUN(__glewGetUniformOffsetEXT) -#define glUniformBufferEXT GLEW_GET_FUN(__glewUniformBufferEXT) - -#define GLEW_EXT_bindable_uniform GLEW_GET_VAR(__GLEW_EXT_bindable_uniform) - -#endif /* GL_EXT_bindable_uniform */ - -/* --------------------------- GL_EXT_blend_color -------------------------- */ - -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 - -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 - -typedef void (GLAPIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); - -#define glBlendColorEXT GLEW_GET_FUN(__glewBlendColorEXT) - -#define GLEW_EXT_blend_color GLEW_GET_VAR(__GLEW_EXT_blend_color) - -#endif /* GL_EXT_blend_color */ - -/* --------------------- GL_EXT_blend_equation_separate -------------------- */ - -#ifndef GL_EXT_blend_equation_separate -#define GL_EXT_blend_equation_separate 1 - -#define GL_BLEND_EQUATION_RGB_EXT 0x8009 -#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); - -#define glBlendEquationSeparateEXT GLEW_GET_FUN(__glewBlendEquationSeparateEXT) - -#define GLEW_EXT_blend_equation_separate GLEW_GET_VAR(__GLEW_EXT_blend_equation_separate) - -#endif /* GL_EXT_blend_equation_separate */ - -/* ----------------------- GL_EXT_blend_func_separate ---------------------- */ - -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 - -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB - -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); - -#define glBlendFuncSeparateEXT GLEW_GET_FUN(__glewBlendFuncSeparateEXT) - -#define GLEW_EXT_blend_func_separate GLEW_GET_VAR(__GLEW_EXT_blend_func_separate) - -#endif /* GL_EXT_blend_func_separate */ - -/* ------------------------- GL_EXT_blend_logic_op ------------------------- */ - -#ifndef GL_EXT_blend_logic_op -#define GL_EXT_blend_logic_op 1 - -#define GLEW_EXT_blend_logic_op GLEW_GET_VAR(__GLEW_EXT_blend_logic_op) - -#endif /* GL_EXT_blend_logic_op */ - -/* -------------------------- GL_EXT_blend_minmax -------------------------- */ - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 - -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_BLEND_EQUATION_EXT 0x8009 - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); - -#define glBlendEquationEXT GLEW_GET_FUN(__glewBlendEquationEXT) - -#define GLEW_EXT_blend_minmax GLEW_GET_VAR(__GLEW_EXT_blend_minmax) - -#endif /* GL_EXT_blend_minmax */ - -/* ------------------------- GL_EXT_blend_subtract ------------------------- */ - -#ifndef GL_EXT_blend_subtract -#define GL_EXT_blend_subtract 1 - -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B - -#define GLEW_EXT_blend_subtract GLEW_GET_VAR(__GLEW_EXT_blend_subtract) - -#endif /* GL_EXT_blend_subtract */ - -/* ------------------------ GL_EXT_clip_volume_hint ------------------------ */ - -#ifndef GL_EXT_clip_volume_hint -#define GL_EXT_clip_volume_hint 1 - -#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 - -#define GLEW_EXT_clip_volume_hint GLEW_GET_VAR(__GLEW_EXT_clip_volume_hint) - -#endif /* GL_EXT_clip_volume_hint */ - -/* ------------------------------ GL_EXT_cmyka ----------------------------- */ - -#ifndef GL_EXT_cmyka -#define GL_EXT_cmyka 1 - -#define GL_CMYK_EXT 0x800C -#define GL_CMYKA_EXT 0x800D -#define GL_PACK_CMYK_HINT_EXT 0x800E -#define GL_UNPACK_CMYK_HINT_EXT 0x800F - -#define GLEW_EXT_cmyka GLEW_GET_VAR(__GLEW_EXT_cmyka) - -#endif /* GL_EXT_cmyka */ - -/* ------------------------- GL_EXT_color_subtable ------------------------- */ - -#ifndef GL_EXT_color_subtable -#define GL_EXT_color_subtable 1 - -typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void* data); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); - -#define glColorSubTableEXT GLEW_GET_FUN(__glewColorSubTableEXT) -#define glCopyColorSubTableEXT GLEW_GET_FUN(__glewCopyColorSubTableEXT) - -#define GLEW_EXT_color_subtable GLEW_GET_VAR(__GLEW_EXT_color_subtable) - -#endif /* GL_EXT_color_subtable */ - -/* ---------------------- GL_EXT_compiled_vertex_array --------------------- */ - -#ifndef GL_EXT_compiled_vertex_array -#define GL_EXT_compiled_vertex_array 1 - -#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 -#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 - -typedef void (GLAPIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); - -#define glLockArraysEXT GLEW_GET_FUN(__glewLockArraysEXT) -#define glUnlockArraysEXT GLEW_GET_FUN(__glewUnlockArraysEXT) - -#define GLEW_EXT_compiled_vertex_array GLEW_GET_VAR(__GLEW_EXT_compiled_vertex_array) - -#endif /* GL_EXT_compiled_vertex_array */ - -/* --------------------------- GL_EXT_convolution -------------------------- */ - -#ifndef GL_EXT_convolution -#define GL_EXT_convolution 1 - -#define GL_CONVOLUTION_1D_EXT 0x8010 -#define GL_CONVOLUTION_2D_EXT 0x8011 -#define GL_SEPARABLE_2D_EXT 0x8012 -#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define GL_REDUCE_EXT 0x8016 -#define GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 - -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void* image); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void* row, void* column, void* span); -typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* row, const void* column); - -#define glConvolutionFilter1DEXT GLEW_GET_FUN(__glewConvolutionFilter1DEXT) -#define glConvolutionFilter2DEXT GLEW_GET_FUN(__glewConvolutionFilter2DEXT) -#define glConvolutionParameterfEXT GLEW_GET_FUN(__glewConvolutionParameterfEXT) -#define glConvolutionParameterfvEXT GLEW_GET_FUN(__glewConvolutionParameterfvEXT) -#define glConvolutionParameteriEXT GLEW_GET_FUN(__glewConvolutionParameteriEXT) -#define glConvolutionParameterivEXT GLEW_GET_FUN(__glewConvolutionParameterivEXT) -#define glCopyConvolutionFilter1DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter1DEXT) -#define glCopyConvolutionFilter2DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter2DEXT) -#define glGetConvolutionFilterEXT GLEW_GET_FUN(__glewGetConvolutionFilterEXT) -#define glGetConvolutionParameterfvEXT GLEW_GET_FUN(__glewGetConvolutionParameterfvEXT) -#define glGetConvolutionParameterivEXT GLEW_GET_FUN(__glewGetConvolutionParameterivEXT) -#define glGetSeparableFilterEXT GLEW_GET_FUN(__glewGetSeparableFilterEXT) -#define glSeparableFilter2DEXT GLEW_GET_FUN(__glewSeparableFilter2DEXT) - -#define GLEW_EXT_convolution GLEW_GET_VAR(__GLEW_EXT_convolution) - -#endif /* GL_EXT_convolution */ - -/* ------------------------ GL_EXT_coordinate_frame ------------------------ */ - -#ifndef GL_EXT_coordinate_frame -#define GL_EXT_coordinate_frame 1 - -#define GL_TANGENT_ARRAY_EXT 0x8439 -#define GL_BINORMAL_ARRAY_EXT 0x843A -#define GL_CURRENT_TANGENT_EXT 0x843B -#define GL_CURRENT_BINORMAL_EXT 0x843C -#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define GL_MAP1_TANGENT_EXT 0x8444 -#define GL_MAP2_TANGENT_EXT 0x8445 -#define GL_MAP1_BINORMAL_EXT 0x8446 -#define GL_MAP2_BINORMAL_EXT 0x8447 - -typedef void (GLAPIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, void* pointer); -typedef void (GLAPIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, void* pointer); - -#define glBinormalPointerEXT GLEW_GET_FUN(__glewBinormalPointerEXT) -#define glTangentPointerEXT GLEW_GET_FUN(__glewTangentPointerEXT) - -#define GLEW_EXT_coordinate_frame GLEW_GET_VAR(__GLEW_EXT_coordinate_frame) - -#endif /* GL_EXT_coordinate_frame */ - -/* -------------------------- GL_EXT_copy_texture -------------------------- */ - -#ifndef GL_EXT_copy_texture -#define GL_EXT_copy_texture 1 - -typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); - -#define glCopyTexImage1DEXT GLEW_GET_FUN(__glewCopyTexImage1DEXT) -#define glCopyTexImage2DEXT GLEW_GET_FUN(__glewCopyTexImage2DEXT) -#define glCopyTexSubImage1DEXT GLEW_GET_FUN(__glewCopyTexSubImage1DEXT) -#define glCopyTexSubImage2DEXT GLEW_GET_FUN(__glewCopyTexSubImage2DEXT) -#define glCopyTexSubImage3DEXT GLEW_GET_FUN(__glewCopyTexSubImage3DEXT) - -#define GLEW_EXT_copy_texture GLEW_GET_VAR(__GLEW_EXT_copy_texture) - -#endif /* GL_EXT_copy_texture */ - -/* --------------------------- GL_EXT_cull_vertex -------------------------- */ - -#ifndef GL_EXT_cull_vertex -#define GL_EXT_cull_vertex 1 - -#define GL_CULL_VERTEX_EXT 0x81AA -#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB -#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC - -typedef void (GLAPIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params); - -#define glCullParameterdvEXT GLEW_GET_FUN(__glewCullParameterdvEXT) -#define glCullParameterfvEXT GLEW_GET_FUN(__glewCullParameterfvEXT) - -#define GLEW_EXT_cull_vertex GLEW_GET_VAR(__GLEW_EXT_cull_vertex) - -#endif /* GL_EXT_cull_vertex */ - -/* ------------------------ GL_EXT_depth_bounds_test ----------------------- */ - -#ifndef GL_EXT_depth_bounds_test -#define GL_EXT_depth_bounds_test 1 - -#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 -#define GL_DEPTH_BOUNDS_EXT 0x8891 - -typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); - -#define glDepthBoundsEXT GLEW_GET_FUN(__glewDepthBoundsEXT) - -#define GLEW_EXT_depth_bounds_test GLEW_GET_VAR(__GLEW_EXT_depth_bounds_test) - -#endif /* GL_EXT_depth_bounds_test */ - -/* ----------------------- GL_EXT_direct_state_access ---------------------- */ - -#ifndef GL_EXT_direct_state_access -#define GL_EXT_direct_state_access 1 - -#define GL_PROGRAM_MATRIX_EXT 0x8E2D -#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E -#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F - -typedef void (GLAPIENTRY * PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); -typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); -typedef void (GLAPIENTRY * PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); -typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (GLAPIENTRY * PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); -typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, void* img); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, void* img); -typedef void (GLAPIENTRY * PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void* pixels); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void** params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void* data); -typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void* string); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid** params); -typedef void (GLAPIENTRY * PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, GLvoid** params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void* pixels); -typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLvoid** param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, GLvoid** param); -typedef GLvoid * (GLAPIENTRY * PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); -typedef GLvoid * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GLAPIENTRY * PFNGLMATRIXFRUSTUMEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum matrixMode); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXORTHOEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); -typedef void (GLAPIENTRY * PFNGLMATRIXPOPEXTPROC) (GLenum matrixMode); -typedef void (GLAPIENTRY * PFNGLMATRIXPUSHEXTPROC) (GLenum matrixMode); -typedef void (GLAPIENTRY * PFNGLMATRIXROTATEDEXTPROC) (GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLMATRIXROTATEFEXTPROC) (GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLMATRIXSCALEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLMATRIXSCALEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void* pointer); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* param); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* param); -typedef void (GLAPIENTRY * PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void* data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void* data); -typedef void (GLAPIENTRY * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void* string); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat* param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* param); -typedef void (GLAPIENTRY * PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); - -#define glBindMultiTextureEXT GLEW_GET_FUN(__glewBindMultiTextureEXT) -#define glCheckNamedFramebufferStatusEXT GLEW_GET_FUN(__glewCheckNamedFramebufferStatusEXT) -#define glClientAttribDefaultEXT GLEW_GET_FUN(__glewClientAttribDefaultEXT) -#define glCompressedMultiTexImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage1DEXT) -#define glCompressedMultiTexImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage2DEXT) -#define glCompressedMultiTexImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage3DEXT) -#define glCompressedMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage1DEXT) -#define glCompressedMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage2DEXT) -#define glCompressedMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage3DEXT) -#define glCompressedTextureImage1DEXT GLEW_GET_FUN(__glewCompressedTextureImage1DEXT) -#define glCompressedTextureImage2DEXT GLEW_GET_FUN(__glewCompressedTextureImage2DEXT) -#define glCompressedTextureImage3DEXT GLEW_GET_FUN(__glewCompressedTextureImage3DEXT) -#define glCompressedTextureSubImage1DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage1DEXT) -#define glCompressedTextureSubImage2DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage2DEXT) -#define glCompressedTextureSubImage3DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage3DEXT) -#define glCopyMultiTexImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexImage1DEXT) -#define glCopyMultiTexImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexImage2DEXT) -#define glCopyMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage1DEXT) -#define glCopyMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage2DEXT) -#define glCopyMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage3DEXT) -#define glCopyTextureImage1DEXT GLEW_GET_FUN(__glewCopyTextureImage1DEXT) -#define glCopyTextureImage2DEXT GLEW_GET_FUN(__glewCopyTextureImage2DEXT) -#define glCopyTextureSubImage1DEXT GLEW_GET_FUN(__glewCopyTextureSubImage1DEXT) -#define glCopyTextureSubImage2DEXT GLEW_GET_FUN(__glewCopyTextureSubImage2DEXT) -#define glCopyTextureSubImage3DEXT GLEW_GET_FUN(__glewCopyTextureSubImage3DEXT) -#define glDisableClientStateIndexedEXT GLEW_GET_FUN(__glewDisableClientStateIndexedEXT) -#define glDisableClientStateiEXT GLEW_GET_FUN(__glewDisableClientStateiEXT) -#define glDisableVertexArrayAttribEXT GLEW_GET_FUN(__glewDisableVertexArrayAttribEXT) -#define glDisableVertexArrayEXT GLEW_GET_FUN(__glewDisableVertexArrayEXT) -#define glEnableClientStateIndexedEXT GLEW_GET_FUN(__glewEnableClientStateIndexedEXT) -#define glEnableClientStateiEXT GLEW_GET_FUN(__glewEnableClientStateiEXT) -#define glEnableVertexArrayAttribEXT GLEW_GET_FUN(__glewEnableVertexArrayAttribEXT) -#define glEnableVertexArrayEXT GLEW_GET_FUN(__glewEnableVertexArrayEXT) -#define glFlushMappedNamedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedNamedBufferRangeEXT) -#define glFramebufferDrawBufferEXT GLEW_GET_FUN(__glewFramebufferDrawBufferEXT) -#define glFramebufferDrawBuffersEXT GLEW_GET_FUN(__glewFramebufferDrawBuffersEXT) -#define glFramebufferReadBufferEXT GLEW_GET_FUN(__glewFramebufferReadBufferEXT) -#define glGenerateMultiTexMipmapEXT GLEW_GET_FUN(__glewGenerateMultiTexMipmapEXT) -#define glGenerateTextureMipmapEXT GLEW_GET_FUN(__glewGenerateTextureMipmapEXT) -#define glGetCompressedMultiTexImageEXT GLEW_GET_FUN(__glewGetCompressedMultiTexImageEXT) -#define glGetCompressedTextureImageEXT GLEW_GET_FUN(__glewGetCompressedTextureImageEXT) -#define glGetDoubleIndexedvEXT GLEW_GET_FUN(__glewGetDoubleIndexedvEXT) -#define glGetDoublei_vEXT GLEW_GET_FUN(__glewGetDoublei_vEXT) -#define glGetFloatIndexedvEXT GLEW_GET_FUN(__glewGetFloatIndexedvEXT) -#define glGetFloati_vEXT GLEW_GET_FUN(__glewGetFloati_vEXT) -#define glGetFramebufferParameterivEXT GLEW_GET_FUN(__glewGetFramebufferParameterivEXT) -#define glGetMultiTexEnvfvEXT GLEW_GET_FUN(__glewGetMultiTexEnvfvEXT) -#define glGetMultiTexEnvivEXT GLEW_GET_FUN(__glewGetMultiTexEnvivEXT) -#define glGetMultiTexGendvEXT GLEW_GET_FUN(__glewGetMultiTexGendvEXT) -#define glGetMultiTexGenfvEXT GLEW_GET_FUN(__glewGetMultiTexGenfvEXT) -#define glGetMultiTexGenivEXT GLEW_GET_FUN(__glewGetMultiTexGenivEXT) -#define glGetMultiTexImageEXT GLEW_GET_FUN(__glewGetMultiTexImageEXT) -#define glGetMultiTexLevelParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterfvEXT) -#define glGetMultiTexLevelParameterivEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterivEXT) -#define glGetMultiTexParameterIivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIivEXT) -#define glGetMultiTexParameterIuivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIuivEXT) -#define glGetMultiTexParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexParameterfvEXT) -#define glGetMultiTexParameterivEXT GLEW_GET_FUN(__glewGetMultiTexParameterivEXT) -#define glGetNamedBufferParameterivEXT GLEW_GET_FUN(__glewGetNamedBufferParameterivEXT) -#define glGetNamedBufferPointervEXT GLEW_GET_FUN(__glewGetNamedBufferPointervEXT) -#define glGetNamedBufferSubDataEXT GLEW_GET_FUN(__glewGetNamedBufferSubDataEXT) -#define glGetNamedFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameterivEXT) -#define glGetNamedProgramLocalParameterIivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIivEXT) -#define glGetNamedProgramLocalParameterIuivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIuivEXT) -#define glGetNamedProgramLocalParameterdvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterdvEXT) -#define glGetNamedProgramLocalParameterfvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterfvEXT) -#define glGetNamedProgramStringEXT GLEW_GET_FUN(__glewGetNamedProgramStringEXT) -#define glGetNamedProgramivEXT GLEW_GET_FUN(__glewGetNamedProgramivEXT) -#define glGetNamedRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetNamedRenderbufferParameterivEXT) -#define glGetPointerIndexedvEXT GLEW_GET_FUN(__glewGetPointerIndexedvEXT) -#define glGetPointeri_vEXT GLEW_GET_FUN(__glewGetPointeri_vEXT) -#define glGetTextureImageEXT GLEW_GET_FUN(__glewGetTextureImageEXT) -#define glGetTextureLevelParameterfvEXT GLEW_GET_FUN(__glewGetTextureLevelParameterfvEXT) -#define glGetTextureLevelParameterivEXT GLEW_GET_FUN(__glewGetTextureLevelParameterivEXT) -#define glGetTextureParameterIivEXT GLEW_GET_FUN(__glewGetTextureParameterIivEXT) -#define glGetTextureParameterIuivEXT GLEW_GET_FUN(__glewGetTextureParameterIuivEXT) -#define glGetTextureParameterfvEXT GLEW_GET_FUN(__glewGetTextureParameterfvEXT) -#define glGetTextureParameterivEXT GLEW_GET_FUN(__glewGetTextureParameterivEXT) -#define glGetVertexArrayIntegeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayIntegeri_vEXT) -#define glGetVertexArrayIntegervEXT GLEW_GET_FUN(__glewGetVertexArrayIntegervEXT) -#define glGetVertexArrayPointeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayPointeri_vEXT) -#define glGetVertexArrayPointervEXT GLEW_GET_FUN(__glewGetVertexArrayPointervEXT) -#define glMapNamedBufferEXT GLEW_GET_FUN(__glewMapNamedBufferEXT) -#define glMapNamedBufferRangeEXT GLEW_GET_FUN(__glewMapNamedBufferRangeEXT) -#define glMatrixFrustumEXT GLEW_GET_FUN(__glewMatrixFrustumEXT) -#define glMatrixLoadIdentityEXT GLEW_GET_FUN(__glewMatrixLoadIdentityEXT) -#define glMatrixLoadTransposedEXT GLEW_GET_FUN(__glewMatrixLoadTransposedEXT) -#define glMatrixLoadTransposefEXT GLEW_GET_FUN(__glewMatrixLoadTransposefEXT) -#define glMatrixLoaddEXT GLEW_GET_FUN(__glewMatrixLoaddEXT) -#define glMatrixLoadfEXT GLEW_GET_FUN(__glewMatrixLoadfEXT) -#define glMatrixMultTransposedEXT GLEW_GET_FUN(__glewMatrixMultTransposedEXT) -#define glMatrixMultTransposefEXT GLEW_GET_FUN(__glewMatrixMultTransposefEXT) -#define glMatrixMultdEXT GLEW_GET_FUN(__glewMatrixMultdEXT) -#define glMatrixMultfEXT GLEW_GET_FUN(__glewMatrixMultfEXT) -#define glMatrixOrthoEXT GLEW_GET_FUN(__glewMatrixOrthoEXT) -#define glMatrixPopEXT GLEW_GET_FUN(__glewMatrixPopEXT) -#define glMatrixPushEXT GLEW_GET_FUN(__glewMatrixPushEXT) -#define glMatrixRotatedEXT GLEW_GET_FUN(__glewMatrixRotatedEXT) -#define glMatrixRotatefEXT GLEW_GET_FUN(__glewMatrixRotatefEXT) -#define glMatrixScaledEXT GLEW_GET_FUN(__glewMatrixScaledEXT) -#define glMatrixScalefEXT GLEW_GET_FUN(__glewMatrixScalefEXT) -#define glMatrixTranslatedEXT GLEW_GET_FUN(__glewMatrixTranslatedEXT) -#define glMatrixTranslatefEXT GLEW_GET_FUN(__glewMatrixTranslatefEXT) -#define glMultiTexBufferEXT GLEW_GET_FUN(__glewMultiTexBufferEXT) -#define glMultiTexCoordPointerEXT GLEW_GET_FUN(__glewMultiTexCoordPointerEXT) -#define glMultiTexEnvfEXT GLEW_GET_FUN(__glewMultiTexEnvfEXT) -#define glMultiTexEnvfvEXT GLEW_GET_FUN(__glewMultiTexEnvfvEXT) -#define glMultiTexEnviEXT GLEW_GET_FUN(__glewMultiTexEnviEXT) -#define glMultiTexEnvivEXT GLEW_GET_FUN(__glewMultiTexEnvivEXT) -#define glMultiTexGendEXT GLEW_GET_FUN(__glewMultiTexGendEXT) -#define glMultiTexGendvEXT GLEW_GET_FUN(__glewMultiTexGendvEXT) -#define glMultiTexGenfEXT GLEW_GET_FUN(__glewMultiTexGenfEXT) -#define glMultiTexGenfvEXT GLEW_GET_FUN(__glewMultiTexGenfvEXT) -#define glMultiTexGeniEXT GLEW_GET_FUN(__glewMultiTexGeniEXT) -#define glMultiTexGenivEXT GLEW_GET_FUN(__glewMultiTexGenivEXT) -#define glMultiTexImage1DEXT GLEW_GET_FUN(__glewMultiTexImage1DEXT) -#define glMultiTexImage2DEXT GLEW_GET_FUN(__glewMultiTexImage2DEXT) -#define glMultiTexImage3DEXT GLEW_GET_FUN(__glewMultiTexImage3DEXT) -#define glMultiTexParameterIivEXT GLEW_GET_FUN(__glewMultiTexParameterIivEXT) -#define glMultiTexParameterIuivEXT GLEW_GET_FUN(__glewMultiTexParameterIuivEXT) -#define glMultiTexParameterfEXT GLEW_GET_FUN(__glewMultiTexParameterfEXT) -#define glMultiTexParameterfvEXT GLEW_GET_FUN(__glewMultiTexParameterfvEXT) -#define glMultiTexParameteriEXT GLEW_GET_FUN(__glewMultiTexParameteriEXT) -#define glMultiTexParameterivEXT GLEW_GET_FUN(__glewMultiTexParameterivEXT) -#define glMultiTexRenderbufferEXT GLEW_GET_FUN(__glewMultiTexRenderbufferEXT) -#define glMultiTexSubImage1DEXT GLEW_GET_FUN(__glewMultiTexSubImage1DEXT) -#define glMultiTexSubImage2DEXT GLEW_GET_FUN(__glewMultiTexSubImage2DEXT) -#define glMultiTexSubImage3DEXT GLEW_GET_FUN(__glewMultiTexSubImage3DEXT) -#define glNamedBufferDataEXT GLEW_GET_FUN(__glewNamedBufferDataEXT) -#define glNamedBufferSubDataEXT GLEW_GET_FUN(__glewNamedBufferSubDataEXT) -#define glNamedCopyBufferSubDataEXT GLEW_GET_FUN(__glewNamedCopyBufferSubDataEXT) -#define glNamedFramebufferRenderbufferEXT GLEW_GET_FUN(__glewNamedFramebufferRenderbufferEXT) -#define glNamedFramebufferTexture1DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture1DEXT) -#define glNamedFramebufferTexture2DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture2DEXT) -#define glNamedFramebufferTexture3DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture3DEXT) -#define glNamedFramebufferTextureEXT GLEW_GET_FUN(__glewNamedFramebufferTextureEXT) -#define glNamedFramebufferTextureFaceEXT GLEW_GET_FUN(__glewNamedFramebufferTextureFaceEXT) -#define glNamedFramebufferTextureLayerEXT GLEW_GET_FUN(__glewNamedFramebufferTextureLayerEXT) -#define glNamedProgramLocalParameter4dEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dEXT) -#define glNamedProgramLocalParameter4dvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dvEXT) -#define glNamedProgramLocalParameter4fEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fEXT) -#define glNamedProgramLocalParameter4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fvEXT) -#define glNamedProgramLocalParameterI4iEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4iEXT) -#define glNamedProgramLocalParameterI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4ivEXT) -#define glNamedProgramLocalParameterI4uiEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uiEXT) -#define glNamedProgramLocalParameterI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uivEXT) -#define glNamedProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameters4fvEXT) -#define glNamedProgramLocalParametersI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4ivEXT) -#define glNamedProgramLocalParametersI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4uivEXT) -#define glNamedProgramStringEXT GLEW_GET_FUN(__glewNamedProgramStringEXT) -#define glNamedRenderbufferStorageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageEXT) -#define glNamedRenderbufferStorageMultisampleCoverageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleCoverageEXT) -#define glNamedRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleEXT) -#define glProgramUniform1fEXT GLEW_GET_FUN(__glewProgramUniform1fEXT) -#define glProgramUniform1fvEXT GLEW_GET_FUN(__glewProgramUniform1fvEXT) -#define glProgramUniform1iEXT GLEW_GET_FUN(__glewProgramUniform1iEXT) -#define glProgramUniform1ivEXT GLEW_GET_FUN(__glewProgramUniform1ivEXT) -#define glProgramUniform1uiEXT GLEW_GET_FUN(__glewProgramUniform1uiEXT) -#define glProgramUniform1uivEXT GLEW_GET_FUN(__glewProgramUniform1uivEXT) -#define glProgramUniform2fEXT GLEW_GET_FUN(__glewProgramUniform2fEXT) -#define glProgramUniform2fvEXT GLEW_GET_FUN(__glewProgramUniform2fvEXT) -#define glProgramUniform2iEXT GLEW_GET_FUN(__glewProgramUniform2iEXT) -#define glProgramUniform2ivEXT GLEW_GET_FUN(__glewProgramUniform2ivEXT) -#define glProgramUniform2uiEXT GLEW_GET_FUN(__glewProgramUniform2uiEXT) -#define glProgramUniform2uivEXT GLEW_GET_FUN(__glewProgramUniform2uivEXT) -#define glProgramUniform3fEXT GLEW_GET_FUN(__glewProgramUniform3fEXT) -#define glProgramUniform3fvEXT GLEW_GET_FUN(__glewProgramUniform3fvEXT) -#define glProgramUniform3iEXT GLEW_GET_FUN(__glewProgramUniform3iEXT) -#define glProgramUniform3ivEXT GLEW_GET_FUN(__glewProgramUniform3ivEXT) -#define glProgramUniform3uiEXT GLEW_GET_FUN(__glewProgramUniform3uiEXT) -#define glProgramUniform3uivEXT GLEW_GET_FUN(__glewProgramUniform3uivEXT) -#define glProgramUniform4fEXT GLEW_GET_FUN(__glewProgramUniform4fEXT) -#define glProgramUniform4fvEXT GLEW_GET_FUN(__glewProgramUniform4fvEXT) -#define glProgramUniform4iEXT GLEW_GET_FUN(__glewProgramUniform4iEXT) -#define glProgramUniform4ivEXT GLEW_GET_FUN(__glewProgramUniform4ivEXT) -#define glProgramUniform4uiEXT GLEW_GET_FUN(__glewProgramUniform4uiEXT) -#define glProgramUniform4uivEXT GLEW_GET_FUN(__glewProgramUniform4uivEXT) -#define glProgramUniformMatrix2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2fvEXT) -#define glProgramUniformMatrix2x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3fvEXT) -#define glProgramUniformMatrix2x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4fvEXT) -#define glProgramUniformMatrix3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3fvEXT) -#define glProgramUniformMatrix3x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2fvEXT) -#define glProgramUniformMatrix3x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4fvEXT) -#define glProgramUniformMatrix4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4fvEXT) -#define glProgramUniformMatrix4x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2fvEXT) -#define glProgramUniformMatrix4x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3fvEXT) -#define glPushClientAttribDefaultEXT GLEW_GET_FUN(__glewPushClientAttribDefaultEXT) -#define glTextureBufferEXT GLEW_GET_FUN(__glewTextureBufferEXT) -#define glTextureImage1DEXT GLEW_GET_FUN(__glewTextureImage1DEXT) -#define glTextureImage2DEXT GLEW_GET_FUN(__glewTextureImage2DEXT) -#define glTextureImage3DEXT GLEW_GET_FUN(__glewTextureImage3DEXT) -#define glTextureParameterIivEXT GLEW_GET_FUN(__glewTextureParameterIivEXT) -#define glTextureParameterIuivEXT GLEW_GET_FUN(__glewTextureParameterIuivEXT) -#define glTextureParameterfEXT GLEW_GET_FUN(__glewTextureParameterfEXT) -#define glTextureParameterfvEXT GLEW_GET_FUN(__glewTextureParameterfvEXT) -#define glTextureParameteriEXT GLEW_GET_FUN(__glewTextureParameteriEXT) -#define glTextureParameterivEXT GLEW_GET_FUN(__glewTextureParameterivEXT) -#define glTextureRenderbufferEXT GLEW_GET_FUN(__glewTextureRenderbufferEXT) -#define glTextureSubImage1DEXT GLEW_GET_FUN(__glewTextureSubImage1DEXT) -#define glTextureSubImage2DEXT GLEW_GET_FUN(__glewTextureSubImage2DEXT) -#define glTextureSubImage3DEXT GLEW_GET_FUN(__glewTextureSubImage3DEXT) -#define glUnmapNamedBufferEXT GLEW_GET_FUN(__glewUnmapNamedBufferEXT) -#define glVertexArrayColorOffsetEXT GLEW_GET_FUN(__glewVertexArrayColorOffsetEXT) -#define glVertexArrayEdgeFlagOffsetEXT GLEW_GET_FUN(__glewVertexArrayEdgeFlagOffsetEXT) -#define glVertexArrayFogCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayFogCoordOffsetEXT) -#define glVertexArrayIndexOffsetEXT GLEW_GET_FUN(__glewVertexArrayIndexOffsetEXT) -#define glVertexArrayMultiTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayMultiTexCoordOffsetEXT) -#define glVertexArrayNormalOffsetEXT GLEW_GET_FUN(__glewVertexArrayNormalOffsetEXT) -#define glVertexArraySecondaryColorOffsetEXT GLEW_GET_FUN(__glewVertexArraySecondaryColorOffsetEXT) -#define glVertexArrayTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayTexCoordOffsetEXT) -#define glVertexArrayVertexAttribIOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIOffsetEXT) -#define glVertexArrayVertexAttribOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribOffsetEXT) -#define glVertexArrayVertexOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexOffsetEXT) - -#define GLEW_EXT_direct_state_access GLEW_GET_VAR(__GLEW_EXT_direct_state_access) - -#endif /* GL_EXT_direct_state_access */ - -/* -------------------------- GL_EXT_draw_buffers2 ------------------------- */ - -#ifndef GL_EXT_draw_buffers2 -#define GL_EXT_draw_buffers2 1 - -typedef void (GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (GLAPIENTRY * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum value, GLuint index, GLboolean* data); -typedef void (GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum value, GLuint index, GLint* data); -typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); - -#define glColorMaskIndexedEXT GLEW_GET_FUN(__glewColorMaskIndexedEXT) -#define glDisableIndexedEXT GLEW_GET_FUN(__glewDisableIndexedEXT) -#define glEnableIndexedEXT GLEW_GET_FUN(__glewEnableIndexedEXT) -#define glGetBooleanIndexedvEXT GLEW_GET_FUN(__glewGetBooleanIndexedvEXT) -#define glGetIntegerIndexedvEXT GLEW_GET_FUN(__glewGetIntegerIndexedvEXT) -#define glIsEnabledIndexedEXT GLEW_GET_FUN(__glewIsEnabledIndexedEXT) - -#define GLEW_EXT_draw_buffers2 GLEW_GET_VAR(__GLEW_EXT_draw_buffers2) - -#endif /* GL_EXT_draw_buffers2 */ - -/* ------------------------- GL_EXT_draw_instanced ------------------------- */ - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); - -#define glDrawArraysInstancedEXT GLEW_GET_FUN(__glewDrawArraysInstancedEXT) -#define glDrawElementsInstancedEXT GLEW_GET_FUN(__glewDrawElementsInstancedEXT) - -#define GLEW_EXT_draw_instanced GLEW_GET_VAR(__GLEW_EXT_draw_instanced) - -#endif /* GL_EXT_draw_instanced */ - -/* ----------------------- GL_EXT_draw_range_elements ---------------------- */ - -#ifndef GL_EXT_draw_range_elements -#define GL_EXT_draw_range_elements 1 - -#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 - -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); - -#define glDrawRangeElementsEXT GLEW_GET_FUN(__glewDrawRangeElementsEXT) - -#define GLEW_EXT_draw_range_elements GLEW_GET_VAR(__GLEW_EXT_draw_range_elements) - -#endif /* GL_EXT_draw_range_elements */ - -/* ---------------------------- GL_EXT_fog_coord --------------------------- */ - -#ifndef GL_EXT_fog_coord -#define GL_EXT_fog_coord 1 - -#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define GL_FOG_COORDINATE_EXT 0x8451 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 -#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 - -typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); - -#define glFogCoordPointerEXT GLEW_GET_FUN(__glewFogCoordPointerEXT) -#define glFogCoorddEXT GLEW_GET_FUN(__glewFogCoorddEXT) -#define glFogCoorddvEXT GLEW_GET_FUN(__glewFogCoorddvEXT) -#define glFogCoordfEXT GLEW_GET_FUN(__glewFogCoordfEXT) -#define glFogCoordfvEXT GLEW_GET_FUN(__glewFogCoordfvEXT) - -#define GLEW_EXT_fog_coord GLEW_GET_VAR(__GLEW_EXT_fog_coord) - -#endif /* GL_EXT_fog_coord */ - -/* ------------------------ GL_EXT_fragment_lighting ----------------------- */ - -#ifndef GL_EXT_fragment_lighting -#define GL_EXT_fragment_lighting 1 - -#define GL_FRAGMENT_LIGHTING_EXT 0x8400 -#define GL_FRAGMENT_COLOR_MATERIAL_EXT 0x8401 -#define GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT 0x8402 -#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT 0x8403 -#define GL_MAX_FRAGMENT_LIGHTS_EXT 0x8404 -#define GL_MAX_ACTIVE_LIGHTS_EXT 0x8405 -#define GL_CURRENT_RASTER_NORMAL_EXT 0x8406 -#define GL_LIGHT_ENV_MODE_EXT 0x8407 -#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT 0x8408 -#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT 0x8409 -#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT 0x840A -#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT 0x840B -#define GL_FRAGMENT_LIGHT0_EXT 0x840C -#define GL_FRAGMENT_LIGHT7_EXT 0x8413 - -typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALEXTPROC) (GLenum face, GLenum mode); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFEXTPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVEXTPROC) (GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIEXTPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVEXTPROC) (GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFEXTPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIEXTPROC) (GLenum light, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFEXTPROC) (GLenum face, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIEXTPROC) (GLenum face, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLLIGHTENVIEXTPROC) (GLenum pname, GLint param); - -#define glFragmentColorMaterialEXT GLEW_GET_FUN(__glewFragmentColorMaterialEXT) -#define glFragmentLightModelfEXT GLEW_GET_FUN(__glewFragmentLightModelfEXT) -#define glFragmentLightModelfvEXT GLEW_GET_FUN(__glewFragmentLightModelfvEXT) -#define glFragmentLightModeliEXT GLEW_GET_FUN(__glewFragmentLightModeliEXT) -#define glFragmentLightModelivEXT GLEW_GET_FUN(__glewFragmentLightModelivEXT) -#define glFragmentLightfEXT GLEW_GET_FUN(__glewFragmentLightfEXT) -#define glFragmentLightfvEXT GLEW_GET_FUN(__glewFragmentLightfvEXT) -#define glFragmentLightiEXT GLEW_GET_FUN(__glewFragmentLightiEXT) -#define glFragmentLightivEXT GLEW_GET_FUN(__glewFragmentLightivEXT) -#define glFragmentMaterialfEXT GLEW_GET_FUN(__glewFragmentMaterialfEXT) -#define glFragmentMaterialfvEXT GLEW_GET_FUN(__glewFragmentMaterialfvEXT) -#define glFragmentMaterialiEXT GLEW_GET_FUN(__glewFragmentMaterialiEXT) -#define glFragmentMaterialivEXT GLEW_GET_FUN(__glewFragmentMaterialivEXT) -#define glGetFragmentLightfvEXT GLEW_GET_FUN(__glewGetFragmentLightfvEXT) -#define glGetFragmentLightivEXT GLEW_GET_FUN(__glewGetFragmentLightivEXT) -#define glGetFragmentMaterialfvEXT GLEW_GET_FUN(__glewGetFragmentMaterialfvEXT) -#define glGetFragmentMaterialivEXT GLEW_GET_FUN(__glewGetFragmentMaterialivEXT) -#define glLightEnviEXT GLEW_GET_FUN(__glewLightEnviEXT) - -#define GLEW_EXT_fragment_lighting GLEW_GET_VAR(__GLEW_EXT_fragment_lighting) - -#endif /* GL_EXT_fragment_lighting */ - -/* ------------------------ GL_EXT_framebuffer_blit ------------------------ */ - -#ifndef GL_EXT_framebuffer_blit -#define GL_EXT_framebuffer_blit 1 - -#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA - -typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); - -#define glBlitFramebufferEXT GLEW_GET_FUN(__glewBlitFramebufferEXT) - -#define GLEW_EXT_framebuffer_blit GLEW_GET_VAR(__GLEW_EXT_framebuffer_blit) - -#endif /* GL_EXT_framebuffer_blit */ - -/* --------------------- GL_EXT_framebuffer_multisample -------------------- */ - -#ifndef GL_EXT_framebuffer_multisample -#define GL_EXT_framebuffer_multisample 1 - -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 - -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); - -#define glRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewRenderbufferStorageMultisampleEXT) - -#define GLEW_EXT_framebuffer_multisample GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample) - -#endif /* GL_EXT_framebuffer_multisample */ - -/* --------------- GL_EXT_framebuffer_multisample_blit_scaled -------------- */ - -#ifndef GL_EXT_framebuffer_multisample_blit_scaled -#define GL_EXT_framebuffer_multisample_blit_scaled 1 - -#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA -#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB - -#define GLEW_EXT_framebuffer_multisample_blit_scaled GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample_blit_scaled) - -#endif /* GL_EXT_framebuffer_multisample_blit_scaled */ - -/* ----------------------- GL_EXT_framebuffer_object ----------------------- */ - -#ifndef GL_EXT_framebuffer_object -#define GL_EXT_framebuffer_object 1 - -#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 -#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 -#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 -#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 -#define GL_FRAMEBUFFER_EXT 0x8D40 -#define GL_RENDERBUFFER_EXT 0x8D41 -#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 -#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 -#define GL_STENCIL_INDEX1_EXT 0x8D46 -#define GL_STENCIL_INDEX4_EXT 0x8D47 -#define GL_STENCIL_INDEX8_EXT 0x8D48 -#define GL_STENCIL_INDEX16_EXT 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 - -typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); -typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); -typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); -typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); - -#define glBindFramebufferEXT GLEW_GET_FUN(__glewBindFramebufferEXT) -#define glBindRenderbufferEXT GLEW_GET_FUN(__glewBindRenderbufferEXT) -#define glCheckFramebufferStatusEXT GLEW_GET_FUN(__glewCheckFramebufferStatusEXT) -#define glDeleteFramebuffersEXT GLEW_GET_FUN(__glewDeleteFramebuffersEXT) -#define glDeleteRenderbuffersEXT GLEW_GET_FUN(__glewDeleteRenderbuffersEXT) -#define glFramebufferRenderbufferEXT GLEW_GET_FUN(__glewFramebufferRenderbufferEXT) -#define glFramebufferTexture1DEXT GLEW_GET_FUN(__glewFramebufferTexture1DEXT) -#define glFramebufferTexture2DEXT GLEW_GET_FUN(__glewFramebufferTexture2DEXT) -#define glFramebufferTexture3DEXT GLEW_GET_FUN(__glewFramebufferTexture3DEXT) -#define glGenFramebuffersEXT GLEW_GET_FUN(__glewGenFramebuffersEXT) -#define glGenRenderbuffersEXT GLEW_GET_FUN(__glewGenRenderbuffersEXT) -#define glGenerateMipmapEXT GLEW_GET_FUN(__glewGenerateMipmapEXT) -#define glGetFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetFramebufferAttachmentParameterivEXT) -#define glGetRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetRenderbufferParameterivEXT) -#define glIsFramebufferEXT GLEW_GET_FUN(__glewIsFramebufferEXT) -#define glIsRenderbufferEXT GLEW_GET_FUN(__glewIsRenderbufferEXT) -#define glRenderbufferStorageEXT GLEW_GET_FUN(__glewRenderbufferStorageEXT) - -#define GLEW_EXT_framebuffer_object GLEW_GET_VAR(__GLEW_EXT_framebuffer_object) - -#endif /* GL_EXT_framebuffer_object */ - -/* ------------------------ GL_EXT_framebuffer_sRGB ------------------------ */ - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_EXT_framebuffer_sRGB 1 - -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA - -#define GLEW_EXT_framebuffer_sRGB GLEW_GET_VAR(__GLEW_EXT_framebuffer_sRGB) - -#endif /* GL_EXT_framebuffer_sRGB */ - -/* ------------------------ GL_EXT_geometry_shader4 ------------------------ */ - -#ifndef GL_EXT_geometry_shader4 -#define GL_EXT_geometry_shader4 1 - -#define GL_LINES_ADJACENCY_EXT 0xA -#define GL_LINE_STRIP_ADJACENCY_EXT 0xB -#define GL_TRIANGLES_ADJACENCY_EXT 0xC -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD -#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 -#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); - -#define glFramebufferTextureEXT GLEW_GET_FUN(__glewFramebufferTextureEXT) -#define glFramebufferTextureFaceEXT GLEW_GET_FUN(__glewFramebufferTextureFaceEXT) -#define glProgramParameteriEXT GLEW_GET_FUN(__glewProgramParameteriEXT) - -#define GLEW_EXT_geometry_shader4 GLEW_GET_VAR(__GLEW_EXT_geometry_shader4) - -#endif /* GL_EXT_geometry_shader4 */ - -/* --------------------- GL_EXT_gpu_program_parameters --------------------- */ - -#ifndef GL_EXT_gpu_program_parameters -#define GL_EXT_gpu_program_parameters 1 - -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); - -#define glProgramEnvParameters4fvEXT GLEW_GET_FUN(__glewProgramEnvParameters4fvEXT) -#define glProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewProgramLocalParameters4fvEXT) - -#define GLEW_EXT_gpu_program_parameters GLEW_GET_VAR(__GLEW_EXT_gpu_program_parameters) - -#endif /* GL_EXT_gpu_program_parameters */ - -/* --------------------------- GL_EXT_gpu_shader4 -------------------------- */ - -#ifndef GL_EXT_gpu_shader4 -#define GL_EXT_gpu_shader4 1 - -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD -#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 -#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 -#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 -#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 -#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 -#define GL_INT_SAMPLER_1D_EXT 0x8DC9 -#define GL_INT_SAMPLER_2D_EXT 0x8DCA -#define GL_INT_SAMPLER_3D_EXT 0x8DCB -#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC -#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD -#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 - -typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); - -#define glBindFragDataLocationEXT GLEW_GET_FUN(__glewBindFragDataLocationEXT) -#define glGetFragDataLocationEXT GLEW_GET_FUN(__glewGetFragDataLocationEXT) -#define glGetUniformuivEXT GLEW_GET_FUN(__glewGetUniformuivEXT) -#define glGetVertexAttribIivEXT GLEW_GET_FUN(__glewGetVertexAttribIivEXT) -#define glGetVertexAttribIuivEXT GLEW_GET_FUN(__glewGetVertexAttribIuivEXT) -#define glUniform1uiEXT GLEW_GET_FUN(__glewUniform1uiEXT) -#define glUniform1uivEXT GLEW_GET_FUN(__glewUniform1uivEXT) -#define glUniform2uiEXT GLEW_GET_FUN(__glewUniform2uiEXT) -#define glUniform2uivEXT GLEW_GET_FUN(__glewUniform2uivEXT) -#define glUniform3uiEXT GLEW_GET_FUN(__glewUniform3uiEXT) -#define glUniform3uivEXT GLEW_GET_FUN(__glewUniform3uivEXT) -#define glUniform4uiEXT GLEW_GET_FUN(__glewUniform4uiEXT) -#define glUniform4uivEXT GLEW_GET_FUN(__glewUniform4uivEXT) -#define glVertexAttribI1iEXT GLEW_GET_FUN(__glewVertexAttribI1iEXT) -#define glVertexAttribI1ivEXT GLEW_GET_FUN(__glewVertexAttribI1ivEXT) -#define glVertexAttribI1uiEXT GLEW_GET_FUN(__glewVertexAttribI1uiEXT) -#define glVertexAttribI1uivEXT GLEW_GET_FUN(__glewVertexAttribI1uivEXT) -#define glVertexAttribI2iEXT GLEW_GET_FUN(__glewVertexAttribI2iEXT) -#define glVertexAttribI2ivEXT GLEW_GET_FUN(__glewVertexAttribI2ivEXT) -#define glVertexAttribI2uiEXT GLEW_GET_FUN(__glewVertexAttribI2uiEXT) -#define glVertexAttribI2uivEXT GLEW_GET_FUN(__glewVertexAttribI2uivEXT) -#define glVertexAttribI3iEXT GLEW_GET_FUN(__glewVertexAttribI3iEXT) -#define glVertexAttribI3ivEXT GLEW_GET_FUN(__glewVertexAttribI3ivEXT) -#define glVertexAttribI3uiEXT GLEW_GET_FUN(__glewVertexAttribI3uiEXT) -#define glVertexAttribI3uivEXT GLEW_GET_FUN(__glewVertexAttribI3uivEXT) -#define glVertexAttribI4bvEXT GLEW_GET_FUN(__glewVertexAttribI4bvEXT) -#define glVertexAttribI4iEXT GLEW_GET_FUN(__glewVertexAttribI4iEXT) -#define glVertexAttribI4ivEXT GLEW_GET_FUN(__glewVertexAttribI4ivEXT) -#define glVertexAttribI4svEXT GLEW_GET_FUN(__glewVertexAttribI4svEXT) -#define glVertexAttribI4ubvEXT GLEW_GET_FUN(__glewVertexAttribI4ubvEXT) -#define glVertexAttribI4uiEXT GLEW_GET_FUN(__glewVertexAttribI4uiEXT) -#define glVertexAttribI4uivEXT GLEW_GET_FUN(__glewVertexAttribI4uivEXT) -#define glVertexAttribI4usvEXT GLEW_GET_FUN(__glewVertexAttribI4usvEXT) -#define glVertexAttribIPointerEXT GLEW_GET_FUN(__glewVertexAttribIPointerEXT) - -#define GLEW_EXT_gpu_shader4 GLEW_GET_VAR(__GLEW_EXT_gpu_shader4) - -#endif /* GL_EXT_gpu_shader4 */ - -/* ---------------------------- GL_EXT_histogram --------------------------- */ - -#ifndef GL_EXT_histogram -#define GL_EXT_histogram 1 - -#define GL_HISTOGRAM_EXT 0x8024 -#define GL_PROXY_HISTOGRAM_EXT 0x8025 -#define GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define GL_HISTOGRAM_SINK_EXT 0x802D -#define GL_MINMAX_EXT 0x802E -#define GL_MINMAX_FORMAT_EXT 0x802F -#define GL_MINMAX_SINK_EXT 0x8030 - -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void* values); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void* values); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target); - -#define glGetHistogramEXT GLEW_GET_FUN(__glewGetHistogramEXT) -#define glGetHistogramParameterfvEXT GLEW_GET_FUN(__glewGetHistogramParameterfvEXT) -#define glGetHistogramParameterivEXT GLEW_GET_FUN(__glewGetHistogramParameterivEXT) -#define glGetMinmaxEXT GLEW_GET_FUN(__glewGetMinmaxEXT) -#define glGetMinmaxParameterfvEXT GLEW_GET_FUN(__glewGetMinmaxParameterfvEXT) -#define glGetMinmaxParameterivEXT GLEW_GET_FUN(__glewGetMinmaxParameterivEXT) -#define glHistogramEXT GLEW_GET_FUN(__glewHistogramEXT) -#define glMinmaxEXT GLEW_GET_FUN(__glewMinmaxEXT) -#define glResetHistogramEXT GLEW_GET_FUN(__glewResetHistogramEXT) -#define glResetMinmaxEXT GLEW_GET_FUN(__glewResetMinmaxEXT) - -#define GLEW_EXT_histogram GLEW_GET_VAR(__GLEW_EXT_histogram) - -#endif /* GL_EXT_histogram */ - -/* ----------------------- GL_EXT_index_array_formats ---------------------- */ - -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 - -#define GLEW_EXT_index_array_formats GLEW_GET_VAR(__GLEW_EXT_index_array_formats) - -#endif /* GL_EXT_index_array_formats */ - -/* --------------------------- GL_EXT_index_func --------------------------- */ - -#ifndef GL_EXT_index_func -#define GL_EXT_index_func 1 - -typedef void (GLAPIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLfloat ref); - -#define glIndexFuncEXT GLEW_GET_FUN(__glewIndexFuncEXT) - -#define GLEW_EXT_index_func GLEW_GET_VAR(__GLEW_EXT_index_func) - -#endif /* GL_EXT_index_func */ - -/* ------------------------- GL_EXT_index_material ------------------------- */ - -#ifndef GL_EXT_index_material -#define GL_EXT_index_material 1 - -typedef void (GLAPIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); - -#define glIndexMaterialEXT GLEW_GET_FUN(__glewIndexMaterialEXT) - -#define GLEW_EXT_index_material GLEW_GET_VAR(__GLEW_EXT_index_material) - -#endif /* GL_EXT_index_material */ - -/* -------------------------- GL_EXT_index_texture ------------------------- */ - -#ifndef GL_EXT_index_texture -#define GL_EXT_index_texture 1 - -#define GLEW_EXT_index_texture GLEW_GET_VAR(__GLEW_EXT_index_texture) - -#endif /* GL_EXT_index_texture */ - -/* -------------------------- GL_EXT_light_texture ------------------------- */ - -#ifndef GL_EXT_light_texture -#define GL_EXT_light_texture 1 - -#define GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define GL_FRAGMENT_NORMAL_EXT 0x834A -#define GL_FRAGMENT_COLOR_EXT 0x834C -#define GL_ATTENUATION_EXT 0x834D -#define GL_SHADOW_ATTENUATION_EXT 0x834E -#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define GL_TEXTURE_LIGHT_EXT 0x8350 -#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 - -typedef void (GLAPIENTRY * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); -typedef void (GLAPIENTRY * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); -typedef void (GLAPIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); - -#define glApplyTextureEXT GLEW_GET_FUN(__glewApplyTextureEXT) -#define glTextureLightEXT GLEW_GET_FUN(__glewTextureLightEXT) -#define glTextureMaterialEXT GLEW_GET_FUN(__glewTextureMaterialEXT) - -#define GLEW_EXT_light_texture GLEW_GET_VAR(__GLEW_EXT_light_texture) - -#endif /* GL_EXT_light_texture */ - -/* ------------------------- GL_EXT_misc_attribute ------------------------- */ - -#ifndef GL_EXT_misc_attribute -#define GL_EXT_misc_attribute 1 - -#define GLEW_EXT_misc_attribute GLEW_GET_VAR(__GLEW_EXT_misc_attribute) - -#endif /* GL_EXT_misc_attribute */ - -/* ------------------------ GL_EXT_multi_draw_arrays ----------------------- */ - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 - -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei* count, GLenum type, const GLvoid **indices, GLsizei primcount); - -#define glMultiDrawArraysEXT GLEW_GET_FUN(__glewMultiDrawArraysEXT) -#define glMultiDrawElementsEXT GLEW_GET_FUN(__glewMultiDrawElementsEXT) - -#define GLEW_EXT_multi_draw_arrays GLEW_GET_VAR(__GLEW_EXT_multi_draw_arrays) - -#endif /* GL_EXT_multi_draw_arrays */ - -/* --------------------------- GL_EXT_multisample -------------------------- */ - -#ifndef GL_EXT_multisample -#define GL_EXT_multisample 1 - -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define GL_SAMPLE_MASK_EXT 0x80A0 -#define GL_1PASS_EXT 0x80A1 -#define GL_2PASS_0_EXT 0x80A2 -#define GL_2PASS_1_EXT 0x80A3 -#define GL_4PASS_0_EXT 0x80A4 -#define GL_4PASS_1_EXT 0x80A5 -#define GL_4PASS_2_EXT 0x80A6 -#define GL_4PASS_3_EXT 0x80A7 -#define GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define GL_SAMPLES_EXT 0x80A9 -#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define GL_SAMPLE_PATTERN_EXT 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 - -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); -typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); - -#define glSampleMaskEXT GLEW_GET_FUN(__glewSampleMaskEXT) -#define glSamplePatternEXT GLEW_GET_FUN(__glewSamplePatternEXT) - -#define GLEW_EXT_multisample GLEW_GET_VAR(__GLEW_EXT_multisample) - -#endif /* GL_EXT_multisample */ - -/* ---------------------- GL_EXT_packed_depth_stencil ---------------------- */ - -#ifndef GL_EXT_packed_depth_stencil -#define GL_EXT_packed_depth_stencil 1 - -#define GL_DEPTH_STENCIL_EXT 0x84F9 -#define GL_UNSIGNED_INT_24_8_EXT 0x84FA -#define GL_DEPTH24_STENCIL8_EXT 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 - -#define GLEW_EXT_packed_depth_stencil GLEW_GET_VAR(__GLEW_EXT_packed_depth_stencil) - -#endif /* GL_EXT_packed_depth_stencil */ - -/* -------------------------- GL_EXT_packed_float -------------------------- */ - -#ifndef GL_EXT_packed_float -#define GL_EXT_packed_float 1 - -#define GL_R11F_G11F_B10F_EXT 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B -#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C - -#define GLEW_EXT_packed_float GLEW_GET_VAR(__GLEW_EXT_packed_float) - -#endif /* GL_EXT_packed_float */ - -/* -------------------------- GL_EXT_packed_pixels ------------------------- */ - -#ifndef GL_EXT_packed_pixels -#define GL_EXT_packed_pixels 1 - -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 - -#define GLEW_EXT_packed_pixels GLEW_GET_VAR(__GLEW_EXT_packed_pixels) - -#endif /* GL_EXT_packed_pixels */ - -/* ------------------------ GL_EXT_paletted_texture ------------------------ */ - -#ifndef GL_EXT_paletted_texture -#define GL_EXT_paletted_texture 1 - -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_COLOR_TABLE_FORMAT_EXT 0x80D8 -#define GL_COLOR_TABLE_WIDTH_EXT 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B - -typedef void (GLAPIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void* data); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void* data); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); - -#define glColorTableEXT GLEW_GET_FUN(__glewColorTableEXT) -#define glGetColorTableEXT GLEW_GET_FUN(__glewGetColorTableEXT) -#define glGetColorTableParameterfvEXT GLEW_GET_FUN(__glewGetColorTableParameterfvEXT) -#define glGetColorTableParameterivEXT GLEW_GET_FUN(__glewGetColorTableParameterivEXT) - -#define GLEW_EXT_paletted_texture GLEW_GET_VAR(__GLEW_EXT_paletted_texture) - -#endif /* GL_EXT_paletted_texture */ - -/* ----------------------- GL_EXT_pixel_buffer_object ---------------------- */ - -#ifndef GL_EXT_pixel_buffer_object -#define GL_EXT_pixel_buffer_object 1 - -#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF - -#define GLEW_EXT_pixel_buffer_object GLEW_GET_VAR(__GLEW_EXT_pixel_buffer_object) - -#endif /* GL_EXT_pixel_buffer_object */ - -/* ------------------------- GL_EXT_pixel_transform ------------------------ */ - -#ifndef GL_EXT_pixel_transform -#define GL_EXT_pixel_transform 1 - -#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define GL_CUBIC_EXT 0x8334 -#define GL_AVERAGE_EXT 0x8335 -#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 - -typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); - -#define glGetPixelTransformParameterfvEXT GLEW_GET_FUN(__glewGetPixelTransformParameterfvEXT) -#define glGetPixelTransformParameterivEXT GLEW_GET_FUN(__glewGetPixelTransformParameterivEXT) -#define glPixelTransformParameterfEXT GLEW_GET_FUN(__glewPixelTransformParameterfEXT) -#define glPixelTransformParameterfvEXT GLEW_GET_FUN(__glewPixelTransformParameterfvEXT) -#define glPixelTransformParameteriEXT GLEW_GET_FUN(__glewPixelTransformParameteriEXT) -#define glPixelTransformParameterivEXT GLEW_GET_FUN(__glewPixelTransformParameterivEXT) - -#define GLEW_EXT_pixel_transform GLEW_GET_VAR(__GLEW_EXT_pixel_transform) - -#endif /* GL_EXT_pixel_transform */ - -/* ------------------- GL_EXT_pixel_transform_color_table ------------------ */ - -#ifndef GL_EXT_pixel_transform_color_table -#define GL_EXT_pixel_transform_color_table 1 - -#define GLEW_EXT_pixel_transform_color_table GLEW_GET_VAR(__GLEW_EXT_pixel_transform_color_table) - -#endif /* GL_EXT_pixel_transform_color_table */ - -/* ------------------------ GL_EXT_point_parameters ------------------------ */ - -#ifndef GL_EXT_point_parameters -#define GL_EXT_point_parameters 1 - -#define GL_POINT_SIZE_MIN_EXT 0x8126 -#define GL_POINT_SIZE_MAX_EXT 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define GL_DISTANCE_ATTENUATION_EXT 0x8129 - -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat* params); - -#define glPointParameterfEXT GLEW_GET_FUN(__glewPointParameterfEXT) -#define glPointParameterfvEXT GLEW_GET_FUN(__glewPointParameterfvEXT) - -#define GLEW_EXT_point_parameters GLEW_GET_VAR(__GLEW_EXT_point_parameters) - -#endif /* GL_EXT_point_parameters */ - -/* ------------------------- GL_EXT_polygon_offset ------------------------- */ - -#ifndef GL_EXT_polygon_offset -#define GL_EXT_polygon_offset 1 - -#define GL_POLYGON_OFFSET_EXT 0x8037 -#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 - -typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); - -#define glPolygonOffsetEXT GLEW_GET_FUN(__glewPolygonOffsetEXT) - -#define GLEW_EXT_polygon_offset GLEW_GET_VAR(__GLEW_EXT_polygon_offset) - -#endif /* GL_EXT_polygon_offset */ - -/* ------------------------ GL_EXT_provoking_vertex ------------------------ */ - -#ifndef GL_EXT_provoking_vertex -#define GL_EXT_provoking_vertex 1 - -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E -#define GL_PROVOKING_VERTEX_EXT 0x8E4F - -typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); - -#define glProvokingVertexEXT GLEW_GET_FUN(__glewProvokingVertexEXT) - -#define GLEW_EXT_provoking_vertex GLEW_GET_VAR(__GLEW_EXT_provoking_vertex) - -#endif /* GL_EXT_provoking_vertex */ - -/* ------------------------- GL_EXT_rescale_normal ------------------------- */ - -#ifndef GL_EXT_rescale_normal -#define GL_EXT_rescale_normal 1 - -#define GL_RESCALE_NORMAL_EXT 0x803A - -#define GLEW_EXT_rescale_normal GLEW_GET_VAR(__GLEW_EXT_rescale_normal) - -#endif /* GL_EXT_rescale_normal */ - -/* -------------------------- GL_EXT_scene_marker -------------------------- */ - -#ifndef GL_EXT_scene_marker -#define GL_EXT_scene_marker 1 - -typedef void (GLAPIENTRY * PFNGLBEGINSCENEEXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLENDSCENEEXTPROC) (void); - -#define glBeginSceneEXT GLEW_GET_FUN(__glewBeginSceneEXT) -#define glEndSceneEXT GLEW_GET_FUN(__glewEndSceneEXT) - -#define GLEW_EXT_scene_marker GLEW_GET_VAR(__GLEW_EXT_scene_marker) - -#endif /* GL_EXT_scene_marker */ - -/* ------------------------- GL_EXT_secondary_color ------------------------ */ - -#ifndef GL_EXT_secondary_color -#define GL_EXT_secondary_color 1 - -#define GL_COLOR_SUM_EXT 0x8458 -#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E - -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); - -#define glSecondaryColor3bEXT GLEW_GET_FUN(__glewSecondaryColor3bEXT) -#define glSecondaryColor3bvEXT GLEW_GET_FUN(__glewSecondaryColor3bvEXT) -#define glSecondaryColor3dEXT GLEW_GET_FUN(__glewSecondaryColor3dEXT) -#define glSecondaryColor3dvEXT GLEW_GET_FUN(__glewSecondaryColor3dvEXT) -#define glSecondaryColor3fEXT GLEW_GET_FUN(__glewSecondaryColor3fEXT) -#define glSecondaryColor3fvEXT GLEW_GET_FUN(__glewSecondaryColor3fvEXT) -#define glSecondaryColor3iEXT GLEW_GET_FUN(__glewSecondaryColor3iEXT) -#define glSecondaryColor3ivEXT GLEW_GET_FUN(__glewSecondaryColor3ivEXT) -#define glSecondaryColor3sEXT GLEW_GET_FUN(__glewSecondaryColor3sEXT) -#define glSecondaryColor3svEXT GLEW_GET_FUN(__glewSecondaryColor3svEXT) -#define glSecondaryColor3ubEXT GLEW_GET_FUN(__glewSecondaryColor3ubEXT) -#define glSecondaryColor3ubvEXT GLEW_GET_FUN(__glewSecondaryColor3ubvEXT) -#define glSecondaryColor3uiEXT GLEW_GET_FUN(__glewSecondaryColor3uiEXT) -#define glSecondaryColor3uivEXT GLEW_GET_FUN(__glewSecondaryColor3uivEXT) -#define glSecondaryColor3usEXT GLEW_GET_FUN(__glewSecondaryColor3usEXT) -#define glSecondaryColor3usvEXT GLEW_GET_FUN(__glewSecondaryColor3usvEXT) -#define glSecondaryColorPointerEXT GLEW_GET_FUN(__glewSecondaryColorPointerEXT) - -#define GLEW_EXT_secondary_color GLEW_GET_VAR(__GLEW_EXT_secondary_color) - -#endif /* GL_EXT_secondary_color */ - -/* --------------------- GL_EXT_separate_shader_objects -------------------- */ - -#ifndef GL_EXT_separate_shader_objects -#define GL_EXT_separate_shader_objects 1 - -#define GL_ACTIVE_PROGRAM_EXT 0x8B8D - -typedef void (GLAPIENTRY * PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); -typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const char* string); -typedef void (GLAPIENTRY * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); - -#define glActiveProgramEXT GLEW_GET_FUN(__glewActiveProgramEXT) -#define glCreateShaderProgramEXT GLEW_GET_FUN(__glewCreateShaderProgramEXT) -#define glUseShaderProgramEXT GLEW_GET_FUN(__glewUseShaderProgramEXT) - -#define GLEW_EXT_separate_shader_objects GLEW_GET_VAR(__GLEW_EXT_separate_shader_objects) - -#endif /* GL_EXT_separate_shader_objects */ - -/* --------------------- GL_EXT_separate_specular_color -------------------- */ - -#ifndef GL_EXT_separate_specular_color -#define GL_EXT_separate_specular_color 1 - -#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define GL_SINGLE_COLOR_EXT 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA - -#define GLEW_EXT_separate_specular_color GLEW_GET_VAR(__GLEW_EXT_separate_specular_color) - -#endif /* GL_EXT_separate_specular_color */ - -/* --------------------- GL_EXT_shader_image_load_store -------------------- */ - -#ifndef GL_EXT_shader_image_load_store -#define GL_EXT_shader_image_load_store 1 - -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 -#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 -#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 -#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A -#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B -#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C -#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D -#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E -#define GL_IMAGE_1D_EXT 0x904C -#define GL_IMAGE_2D_EXT 0x904D -#define GL_IMAGE_3D_EXT 0x904E -#define GL_IMAGE_2D_RECT_EXT 0x904F -#define GL_IMAGE_CUBE_EXT 0x9050 -#define GL_IMAGE_BUFFER_EXT 0x9051 -#define GL_IMAGE_1D_ARRAY_EXT 0x9052 -#define GL_IMAGE_2D_ARRAY_EXT 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 -#define GL_INT_IMAGE_1D_EXT 0x9057 -#define GL_INT_IMAGE_2D_EXT 0x9058 -#define GL_INT_IMAGE_3D_EXT 0x9059 -#define GL_INT_IMAGE_2D_RECT_EXT 0x905A -#define GL_INT_IMAGE_CUBE_EXT 0x905B -#define GL_INT_IMAGE_BUFFER_EXT 0x905C -#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D -#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C -#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D -#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E -#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); - -#define glBindImageTextureEXT GLEW_GET_FUN(__glewBindImageTextureEXT) -#define glMemoryBarrierEXT GLEW_GET_FUN(__glewMemoryBarrierEXT) - -#define GLEW_EXT_shader_image_load_store GLEW_GET_VAR(__GLEW_EXT_shader_image_load_store) - -#endif /* GL_EXT_shader_image_load_store */ - -/* -------------------------- GL_EXT_shadow_funcs -------------------------- */ - -#ifndef GL_EXT_shadow_funcs -#define GL_EXT_shadow_funcs 1 - -#define GLEW_EXT_shadow_funcs GLEW_GET_VAR(__GLEW_EXT_shadow_funcs) - -#endif /* GL_EXT_shadow_funcs */ - -/* --------------------- GL_EXT_shared_texture_palette --------------------- */ - -#ifndef GL_EXT_shared_texture_palette -#define GL_EXT_shared_texture_palette 1 - -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB - -#define GLEW_EXT_shared_texture_palette GLEW_GET_VAR(__GLEW_EXT_shared_texture_palette) - -#endif /* GL_EXT_shared_texture_palette */ - -/* ------------------------ GL_EXT_stencil_clear_tag ----------------------- */ - -#ifndef GL_EXT_stencil_clear_tag -#define GL_EXT_stencil_clear_tag 1 - -#define GL_STENCIL_TAG_BITS_EXT 0x88F2 -#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 - -#define GLEW_EXT_stencil_clear_tag GLEW_GET_VAR(__GLEW_EXT_stencil_clear_tag) - -#endif /* GL_EXT_stencil_clear_tag */ - -/* ------------------------ GL_EXT_stencil_two_side ------------------------ */ - -#ifndef GL_EXT_stencil_two_side -#define GL_EXT_stencil_two_side 1 - -#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 -#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 - -typedef void (GLAPIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); - -#define glActiveStencilFaceEXT GLEW_GET_FUN(__glewActiveStencilFaceEXT) - -#define GLEW_EXT_stencil_two_side GLEW_GET_VAR(__GLEW_EXT_stencil_two_side) - -#endif /* GL_EXT_stencil_two_side */ - -/* -------------------------- GL_EXT_stencil_wrap -------------------------- */ - -#ifndef GL_EXT_stencil_wrap -#define GL_EXT_stencil_wrap 1 - -#define GL_INCR_WRAP_EXT 0x8507 -#define GL_DECR_WRAP_EXT 0x8508 - -#define GLEW_EXT_stencil_wrap GLEW_GET_VAR(__GLEW_EXT_stencil_wrap) - -#endif /* GL_EXT_stencil_wrap */ - -/* --------------------------- GL_EXT_subtexture --------------------------- */ - -#ifndef GL_EXT_subtexture -#define GL_EXT_subtexture 1 - -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); - -#define glTexSubImage1DEXT GLEW_GET_FUN(__glewTexSubImage1DEXT) -#define glTexSubImage2DEXT GLEW_GET_FUN(__glewTexSubImage2DEXT) -#define glTexSubImage3DEXT GLEW_GET_FUN(__glewTexSubImage3DEXT) - -#define GLEW_EXT_subtexture GLEW_GET_VAR(__GLEW_EXT_subtexture) - -#endif /* GL_EXT_subtexture */ - -/* ----------------------------- GL_EXT_texture ---------------------------- */ - -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 - -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 - -#define GLEW_EXT_texture GLEW_GET_VAR(__GLEW_EXT_texture) - -#endif /* GL_EXT_texture */ - -/* ---------------------------- GL_EXT_texture3D --------------------------- */ - -#ifndef GL_EXT_texture3D -#define GL_EXT_texture3D 1 - -#define GL_PACK_SKIP_IMAGES_EXT 0x806B -#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_TEXTURE_DEPTH_EXT 0x8071 -#define GL_TEXTURE_WRAP_R_EXT 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 - -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); - -#define glTexImage3DEXT GLEW_GET_FUN(__glewTexImage3DEXT) - -#define GLEW_EXT_texture3D GLEW_GET_VAR(__GLEW_EXT_texture3D) - -#endif /* GL_EXT_texture3D */ - -/* -------------------------- GL_EXT_texture_array ------------------------- */ - -#ifndef GL_EXT_texture_array -#define GL_EXT_texture_array 1 - -#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E -#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF -#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 -#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); - -#define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT) - -#define GLEW_EXT_texture_array GLEW_GET_VAR(__GLEW_EXT_texture_array) - -#endif /* GL_EXT_texture_array */ - -/* ---------------------- GL_EXT_texture_buffer_object --------------------- */ - -#ifndef GL_EXT_texture_buffer_object -#define GL_EXT_texture_buffer_object 1 - -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E - -typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); - -#define glTexBufferEXT GLEW_GET_FUN(__glewTexBufferEXT) - -#define GLEW_EXT_texture_buffer_object GLEW_GET_VAR(__GLEW_EXT_texture_buffer_object) - -#endif /* GL_EXT_texture_buffer_object */ - -/* -------------------- GL_EXT_texture_compression_dxt1 -------------------- */ - -#ifndef GL_EXT_texture_compression_dxt1 -#define GL_EXT_texture_compression_dxt1 1 - -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 - -#define GLEW_EXT_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_EXT_texture_compression_dxt1) - -#endif /* GL_EXT_texture_compression_dxt1 */ - -/* -------------------- GL_EXT_texture_compression_latc -------------------- */ - -#ifndef GL_EXT_texture_compression_latc -#define GL_EXT_texture_compression_latc 1 - -#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 -#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 -#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 -#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 - -#define GLEW_EXT_texture_compression_latc GLEW_GET_VAR(__GLEW_EXT_texture_compression_latc) - -#endif /* GL_EXT_texture_compression_latc */ - -/* -------------------- GL_EXT_texture_compression_rgtc -------------------- */ - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_EXT_texture_compression_rgtc 1 - -#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC -#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD -#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE - -#define GLEW_EXT_texture_compression_rgtc GLEW_GET_VAR(__GLEW_EXT_texture_compression_rgtc) - -#endif /* GL_EXT_texture_compression_rgtc */ - -/* -------------------- GL_EXT_texture_compression_s3tc -------------------- */ - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_EXT_texture_compression_s3tc 1 - -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 - -#define GLEW_EXT_texture_compression_s3tc GLEW_GET_VAR(__GLEW_EXT_texture_compression_s3tc) - -#endif /* GL_EXT_texture_compression_s3tc */ - -/* ------------------------ GL_EXT_texture_cube_map ------------------------ */ - -#ifndef GL_EXT_texture_cube_map -#define GL_EXT_texture_cube_map 1 - -#define GL_NORMAL_MAP_EXT 0x8511 -#define GL_REFLECTION_MAP_EXT 0x8512 -#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C - -#define GLEW_EXT_texture_cube_map GLEW_GET_VAR(__GLEW_EXT_texture_cube_map) - -#endif /* GL_EXT_texture_cube_map */ - -/* ----------------------- GL_EXT_texture_edge_clamp ----------------------- */ - -#ifndef GL_EXT_texture_edge_clamp -#define GL_EXT_texture_edge_clamp 1 - -#define GL_CLAMP_TO_EDGE_EXT 0x812F - -#define GLEW_EXT_texture_edge_clamp GLEW_GET_VAR(__GLEW_EXT_texture_edge_clamp) - -#endif /* GL_EXT_texture_edge_clamp */ - -/* --------------------------- GL_EXT_texture_env -------------------------- */ - -#ifndef GL_EXT_texture_env -#define GL_EXT_texture_env 1 - -#define GL_TEXTURE_ENV0_EXT 0 -#define GL_ENV_BLEND_EXT 0 -#define GL_TEXTURE_ENV_SHIFT_EXT 0 -#define GL_ENV_REPLACE_EXT 0 -#define GL_ENV_ADD_EXT 0 -#define GL_ENV_SUBTRACT_EXT 0 -#define GL_TEXTURE_ENV_MODE_ALPHA_EXT 0 -#define GL_ENV_REVERSE_SUBTRACT_EXT 0 -#define GL_ENV_REVERSE_BLEND_EXT 0 -#define GL_ENV_COPY_EXT 0 -#define GL_ENV_MODULATE_EXT 0 - -#define GLEW_EXT_texture_env GLEW_GET_VAR(__GLEW_EXT_texture_env) - -#endif /* GL_EXT_texture_env */ - -/* ------------------------- GL_EXT_texture_env_add ------------------------ */ - -#ifndef GL_EXT_texture_env_add -#define GL_EXT_texture_env_add 1 - -#define GLEW_EXT_texture_env_add GLEW_GET_VAR(__GLEW_EXT_texture_env_add) - -#endif /* GL_EXT_texture_env_add */ - -/* ----------------------- GL_EXT_texture_env_combine ---------------------- */ - -#ifndef GL_EXT_texture_env_combine -#define GL_EXT_texture_env_combine 1 - -#define GL_COMBINE_EXT 0x8570 -#define GL_COMBINE_RGB_EXT 0x8571 -#define GL_COMBINE_ALPHA_EXT 0x8572 -#define GL_RGB_SCALE_EXT 0x8573 -#define GL_ADD_SIGNED_EXT 0x8574 -#define GL_INTERPOLATE_EXT 0x8575 -#define GL_CONSTANT_EXT 0x8576 -#define GL_PRIMARY_COLOR_EXT 0x8577 -#define GL_PREVIOUS_EXT 0x8578 -#define GL_SOURCE0_RGB_EXT 0x8580 -#define GL_SOURCE1_RGB_EXT 0x8581 -#define GL_SOURCE2_RGB_EXT 0x8582 -#define GL_SOURCE0_ALPHA_EXT 0x8588 -#define GL_SOURCE1_ALPHA_EXT 0x8589 -#define GL_SOURCE2_ALPHA_EXT 0x858A -#define GL_OPERAND0_RGB_EXT 0x8590 -#define GL_OPERAND1_RGB_EXT 0x8591 -#define GL_OPERAND2_RGB_EXT 0x8592 -#define GL_OPERAND0_ALPHA_EXT 0x8598 -#define GL_OPERAND1_ALPHA_EXT 0x8599 -#define GL_OPERAND2_ALPHA_EXT 0x859A - -#define GLEW_EXT_texture_env_combine GLEW_GET_VAR(__GLEW_EXT_texture_env_combine) - -#endif /* GL_EXT_texture_env_combine */ - -/* ------------------------ GL_EXT_texture_env_dot3 ------------------------ */ - -#ifndef GL_EXT_texture_env_dot3 -#define GL_EXT_texture_env_dot3 1 - -#define GL_DOT3_RGB_EXT 0x8740 -#define GL_DOT3_RGBA_EXT 0x8741 - -#define GLEW_EXT_texture_env_dot3 GLEW_GET_VAR(__GLEW_EXT_texture_env_dot3) - -#endif /* GL_EXT_texture_env_dot3 */ - -/* ------------------- GL_EXT_texture_filter_anisotropic ------------------- */ - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 - -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF - -#define GLEW_EXT_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_EXT_texture_filter_anisotropic) - -#endif /* GL_EXT_texture_filter_anisotropic */ - -/* ------------------------- GL_EXT_texture_integer ------------------------ */ - -#ifndef GL_EXT_texture_integer -#define GL_EXT_texture_integer 1 - -#define GL_RGBA32UI_EXT 0x8D70 -#define GL_RGB32UI_EXT 0x8D71 -#define GL_ALPHA32UI_EXT 0x8D72 -#define GL_INTENSITY32UI_EXT 0x8D73 -#define GL_LUMINANCE32UI_EXT 0x8D74 -#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 -#define GL_RGBA16UI_EXT 0x8D76 -#define GL_RGB16UI_EXT 0x8D77 -#define GL_ALPHA16UI_EXT 0x8D78 -#define GL_INTENSITY16UI_EXT 0x8D79 -#define GL_LUMINANCE16UI_EXT 0x8D7A -#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B -#define GL_RGBA8UI_EXT 0x8D7C -#define GL_RGB8UI_EXT 0x8D7D -#define GL_ALPHA8UI_EXT 0x8D7E -#define GL_INTENSITY8UI_EXT 0x8D7F -#define GL_LUMINANCE8UI_EXT 0x8D80 -#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 -#define GL_RGBA32I_EXT 0x8D82 -#define GL_RGB32I_EXT 0x8D83 -#define GL_ALPHA32I_EXT 0x8D84 -#define GL_INTENSITY32I_EXT 0x8D85 -#define GL_LUMINANCE32I_EXT 0x8D86 -#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 -#define GL_RGBA16I_EXT 0x8D88 -#define GL_RGB16I_EXT 0x8D89 -#define GL_ALPHA16I_EXT 0x8D8A -#define GL_INTENSITY16I_EXT 0x8D8B -#define GL_LUMINANCE16I_EXT 0x8D8C -#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D -#define GL_RGBA8I_EXT 0x8D8E -#define GL_RGB8I_EXT 0x8D8F -#define GL_ALPHA8I_EXT 0x8D90 -#define GL_INTENSITY8I_EXT 0x8D91 -#define GL_LUMINANCE8I_EXT 0x8D92 -#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 -#define GL_RED_INTEGER_EXT 0x8D94 -#define GL_GREEN_INTEGER_EXT 0x8D95 -#define GL_BLUE_INTEGER_EXT 0x8D96 -#define GL_ALPHA_INTEGER_EXT 0x8D97 -#define GL_RGB_INTEGER_EXT 0x8D98 -#define GL_RGBA_INTEGER_EXT 0x8D99 -#define GL_BGR_INTEGER_EXT 0x8D9A -#define GL_BGRA_INTEGER_EXT 0x8D9B -#define GL_LUMINANCE_INTEGER_EXT 0x8D9C -#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D -#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E - -typedef void (GLAPIENTRY * PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); -typedef void (GLAPIENTRY * PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); - -#define glClearColorIiEXT GLEW_GET_FUN(__glewClearColorIiEXT) -#define glClearColorIuiEXT GLEW_GET_FUN(__glewClearColorIuiEXT) -#define glGetTexParameterIivEXT GLEW_GET_FUN(__glewGetTexParameterIivEXT) -#define glGetTexParameterIuivEXT GLEW_GET_FUN(__glewGetTexParameterIuivEXT) -#define glTexParameterIivEXT GLEW_GET_FUN(__glewTexParameterIivEXT) -#define glTexParameterIuivEXT GLEW_GET_FUN(__glewTexParameterIuivEXT) - -#define GLEW_EXT_texture_integer GLEW_GET_VAR(__GLEW_EXT_texture_integer) - -#endif /* GL_EXT_texture_integer */ - -/* ------------------------ GL_EXT_texture_lod_bias ------------------------ */ - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 - -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 - -#define GLEW_EXT_texture_lod_bias GLEW_GET_VAR(__GLEW_EXT_texture_lod_bias) - -#endif /* GL_EXT_texture_lod_bias */ - -/* ---------------------- GL_EXT_texture_mirror_clamp ---------------------- */ - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_EXT_texture_mirror_clamp 1 - -#define GL_MIRROR_CLAMP_EXT 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 - -#define GLEW_EXT_texture_mirror_clamp GLEW_GET_VAR(__GLEW_EXT_texture_mirror_clamp) - -#endif /* GL_EXT_texture_mirror_clamp */ - -/* ------------------------- GL_EXT_texture_object ------------------------- */ - -#ifndef GL_EXT_texture_object -#define GL_EXT_texture_object 1 - -#define GL_TEXTURE_PRIORITY_EXT 0x8066 -#define GL_TEXTURE_RESIDENT_EXT 0x8067 -#define GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define GL_TEXTURE_3D_BINDING_EXT 0x806A - -typedef GLboolean (GLAPIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint* textures, GLboolean* residences); -typedef void (GLAPIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); -typedef void (GLAPIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint* textures); -typedef void (GLAPIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint* textures); -typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture); -typedef void (GLAPIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint* textures, const GLclampf* priorities); - -#define glAreTexturesResidentEXT GLEW_GET_FUN(__glewAreTexturesResidentEXT) -#define glBindTextureEXT GLEW_GET_FUN(__glewBindTextureEXT) -#define glDeleteTexturesEXT GLEW_GET_FUN(__glewDeleteTexturesEXT) -#define glGenTexturesEXT GLEW_GET_FUN(__glewGenTexturesEXT) -#define glIsTextureEXT GLEW_GET_FUN(__glewIsTextureEXT) -#define glPrioritizeTexturesEXT GLEW_GET_FUN(__glewPrioritizeTexturesEXT) - -#define GLEW_EXT_texture_object GLEW_GET_VAR(__GLEW_EXT_texture_object) - -#endif /* GL_EXT_texture_object */ - -/* --------------------- GL_EXT_texture_perturb_normal --------------------- */ - -#ifndef GL_EXT_texture_perturb_normal -#define GL_EXT_texture_perturb_normal 1 - -#define GL_PERTURB_EXT 0x85AE -#define GL_TEXTURE_NORMAL_EXT 0x85AF - -typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); - -#define glTextureNormalEXT GLEW_GET_FUN(__glewTextureNormalEXT) - -#define GLEW_EXT_texture_perturb_normal GLEW_GET_VAR(__GLEW_EXT_texture_perturb_normal) - -#endif /* GL_EXT_texture_perturb_normal */ - -/* ------------------------ GL_EXT_texture_rectangle ----------------------- */ - -#ifndef GL_EXT_texture_rectangle -#define GL_EXT_texture_rectangle 1 - -#define GL_TEXTURE_RECTANGLE_EXT 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8 - -#define GLEW_EXT_texture_rectangle GLEW_GET_VAR(__GLEW_EXT_texture_rectangle) - -#endif /* GL_EXT_texture_rectangle */ - -/* -------------------------- GL_EXT_texture_sRGB -------------------------- */ - -#ifndef GL_EXT_texture_sRGB -#define GL_EXT_texture_sRGB 1 - -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB8_EXT 0x8C41 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 -#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 -#define GL_SLUMINANCE_EXT 0x8C46 -#define GL_SLUMINANCE8_EXT 0x8C47 -#define GL_COMPRESSED_SRGB_EXT 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 -#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F - -#define GLEW_EXT_texture_sRGB GLEW_GET_VAR(__GLEW_EXT_texture_sRGB) - -#endif /* GL_EXT_texture_sRGB */ - -/* ----------------------- GL_EXT_texture_sRGB_decode ---------------------- */ - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_EXT_texture_sRGB_decode 1 - -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A - -#define GLEW_EXT_texture_sRGB_decode GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_decode) - -#endif /* GL_EXT_texture_sRGB_decode */ - -/* --------------------- GL_EXT_texture_shared_exponent -------------------- */ - -#ifndef GL_EXT_texture_shared_exponent -#define GL_EXT_texture_shared_exponent 1 - -#define GL_RGB9_E5_EXT 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E -#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F - -#define GLEW_EXT_texture_shared_exponent GLEW_GET_VAR(__GLEW_EXT_texture_shared_exponent) - -#endif /* GL_EXT_texture_shared_exponent */ - -/* -------------------------- GL_EXT_texture_snorm ------------------------- */ - -#ifndef GL_EXT_texture_snorm -#define GL_EXT_texture_snorm 1 - -#define GL_RED_SNORM 0x8F90 -#define GL_RG_SNORM 0x8F91 -#define GL_RGB_SNORM 0x8F92 -#define GL_RGBA_SNORM 0x8F93 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM 0x8F98 -#define GL_RG16_SNORM 0x8F99 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGBA16_SNORM 0x8F9B -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_ALPHA_SNORM 0x9010 -#define GL_LUMINANCE_SNORM 0x9011 -#define GL_LUMINANCE_ALPHA_SNORM 0x9012 -#define GL_INTENSITY_SNORM 0x9013 -#define GL_ALPHA8_SNORM 0x9014 -#define GL_LUMINANCE8_SNORM 0x9015 -#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 -#define GL_INTENSITY8_SNORM 0x9017 -#define GL_ALPHA16_SNORM 0x9018 -#define GL_LUMINANCE16_SNORM 0x9019 -#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A -#define GL_INTENSITY16_SNORM 0x901B - -#define GLEW_EXT_texture_snorm GLEW_GET_VAR(__GLEW_EXT_texture_snorm) - -#endif /* GL_EXT_texture_snorm */ - -/* ------------------------- GL_EXT_texture_swizzle ------------------------ */ - -#ifndef GL_EXT_texture_swizzle -#define GL_EXT_texture_swizzle 1 - -#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 -#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 -#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 -#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 - -#define GLEW_EXT_texture_swizzle GLEW_GET_VAR(__GLEW_EXT_texture_swizzle) - -#endif /* GL_EXT_texture_swizzle */ - -/* --------------------------- GL_EXT_timer_query -------------------------- */ - -#ifndef GL_EXT_timer_query -#define GL_EXT_timer_query 1 - -#define GL_TIME_ELAPSED_EXT 0x88BF - -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); - -#define glGetQueryObjecti64vEXT GLEW_GET_FUN(__glewGetQueryObjecti64vEXT) -#define glGetQueryObjectui64vEXT GLEW_GET_FUN(__glewGetQueryObjectui64vEXT) - -#define GLEW_EXT_timer_query GLEW_GET_VAR(__GLEW_EXT_timer_query) - -#endif /* GL_EXT_timer_query */ - -/* ----------------------- GL_EXT_transform_feedback ----------------------- */ - -#ifndef GL_EXT_transform_feedback -#define GL_EXT_transform_feedback 1 - -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 -#define GL_RASTERIZER_DISCARD_EXT 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C -#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F - -typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei *size, GLenum *type, char *name); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const char ** varyings, GLenum bufferMode); - -#define glBeginTransformFeedbackEXT GLEW_GET_FUN(__glewBeginTransformFeedbackEXT) -#define glBindBufferBaseEXT GLEW_GET_FUN(__glewBindBufferBaseEXT) -#define glBindBufferOffsetEXT GLEW_GET_FUN(__glewBindBufferOffsetEXT) -#define glBindBufferRangeEXT GLEW_GET_FUN(__glewBindBufferRangeEXT) -#define glEndTransformFeedbackEXT GLEW_GET_FUN(__glewEndTransformFeedbackEXT) -#define glGetTransformFeedbackVaryingEXT GLEW_GET_FUN(__glewGetTransformFeedbackVaryingEXT) -#define glTransformFeedbackVaryingsEXT GLEW_GET_FUN(__glewTransformFeedbackVaryingsEXT) - -#define GLEW_EXT_transform_feedback GLEW_GET_VAR(__GLEW_EXT_transform_feedback) - -#endif /* GL_EXT_transform_feedback */ - -/* -------------------------- GL_EXT_vertex_array -------------------------- */ - -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 - -#define GL_DOUBLE_EXT 0x140A -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 - -typedef void (GLAPIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (GLAPIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean* pointer); -typedef void (GLAPIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void* pointer); -typedef void (GLAPIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void* pointer); -typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); - -#define glArrayElementEXT GLEW_GET_FUN(__glewArrayElementEXT) -#define glColorPointerEXT GLEW_GET_FUN(__glewColorPointerEXT) -#define glDrawArraysEXT GLEW_GET_FUN(__glewDrawArraysEXT) -#define glEdgeFlagPointerEXT GLEW_GET_FUN(__glewEdgeFlagPointerEXT) -#define glIndexPointerEXT GLEW_GET_FUN(__glewIndexPointerEXT) -#define glNormalPointerEXT GLEW_GET_FUN(__glewNormalPointerEXT) -#define glTexCoordPointerEXT GLEW_GET_FUN(__glewTexCoordPointerEXT) -#define glVertexPointerEXT GLEW_GET_FUN(__glewVertexPointerEXT) - -#define GLEW_EXT_vertex_array GLEW_GET_VAR(__GLEW_EXT_vertex_array) - -#endif /* GL_EXT_vertex_array */ - -/* ------------------------ GL_EXT_vertex_array_bgra ----------------------- */ - -#ifndef GL_EXT_vertex_array_bgra -#define GL_EXT_vertex_array_bgra 1 - -#define GL_BGRA 0x80E1 - -#define GLEW_EXT_vertex_array_bgra GLEW_GET_VAR(__GLEW_EXT_vertex_array_bgra) - -#endif /* GL_EXT_vertex_array_bgra */ - -/* ----------------------- GL_EXT_vertex_attrib_64bit ---------------------- */ - -#ifndef GL_EXT_vertex_attrib_64bit -#define GL_EXT_vertex_attrib_64bit 1 - -#define GL_DOUBLE_MAT2_EXT 0x8F46 -#define GL_DOUBLE_MAT3_EXT 0x8F47 -#define GL_DOUBLE_MAT4_EXT 0x8F48 -#define GL_DOUBLE_MAT2x3_EXT 0x8F49 -#define GL_DOUBLE_MAT2x4_EXT 0x8F4A -#define GL_DOUBLE_MAT3x2_EXT 0x8F4B -#define GL_DOUBLE_MAT3x4_EXT 0x8F4C -#define GL_DOUBLE_MAT4x2_EXT 0x8F4D -#define GL_DOUBLE_MAT4x3_EXT 0x8F4E -#define GL_DOUBLE_VEC2_EXT 0x8FFC -#define GL_DOUBLE_VEC3_EXT 0x8FFD -#define GL_DOUBLE_VEC4_EXT 0x8FFE - -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); - -#define glGetVertexAttribLdvEXT GLEW_GET_FUN(__glewGetVertexAttribLdvEXT) -#define glVertexArrayVertexAttribLOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLOffsetEXT) -#define glVertexAttribL1dEXT GLEW_GET_FUN(__glewVertexAttribL1dEXT) -#define glVertexAttribL1dvEXT GLEW_GET_FUN(__glewVertexAttribL1dvEXT) -#define glVertexAttribL2dEXT GLEW_GET_FUN(__glewVertexAttribL2dEXT) -#define glVertexAttribL2dvEXT GLEW_GET_FUN(__glewVertexAttribL2dvEXT) -#define glVertexAttribL3dEXT GLEW_GET_FUN(__glewVertexAttribL3dEXT) -#define glVertexAttribL3dvEXT GLEW_GET_FUN(__glewVertexAttribL3dvEXT) -#define glVertexAttribL4dEXT GLEW_GET_FUN(__glewVertexAttribL4dEXT) -#define glVertexAttribL4dvEXT GLEW_GET_FUN(__glewVertexAttribL4dvEXT) -#define glVertexAttribLPointerEXT GLEW_GET_FUN(__glewVertexAttribLPointerEXT) - -#define GLEW_EXT_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_EXT_vertex_attrib_64bit) - -#endif /* GL_EXT_vertex_attrib_64bit */ - -/* -------------------------- GL_EXT_vertex_shader ------------------------- */ - -#ifndef GL_EXT_vertex_shader -#define GL_EXT_vertex_shader 1 - -#define GL_VERTEX_SHADER_EXT 0x8780 -#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define GL_OP_INDEX_EXT 0x8782 -#define GL_OP_NEGATE_EXT 0x8783 -#define GL_OP_DOT3_EXT 0x8784 -#define GL_OP_DOT4_EXT 0x8785 -#define GL_OP_MUL_EXT 0x8786 -#define GL_OP_ADD_EXT 0x8787 -#define GL_OP_MADD_EXT 0x8788 -#define GL_OP_FRAC_EXT 0x8789 -#define GL_OP_MAX_EXT 0x878A -#define GL_OP_MIN_EXT 0x878B -#define GL_OP_SET_GE_EXT 0x878C -#define GL_OP_SET_LT_EXT 0x878D -#define GL_OP_CLAMP_EXT 0x878E -#define GL_OP_FLOOR_EXT 0x878F -#define GL_OP_ROUND_EXT 0x8790 -#define GL_OP_EXP_BASE_2_EXT 0x8791 -#define GL_OP_LOG_BASE_2_EXT 0x8792 -#define GL_OP_POWER_EXT 0x8793 -#define GL_OP_RECIP_EXT 0x8794 -#define GL_OP_RECIP_SQRT_EXT 0x8795 -#define GL_OP_SUB_EXT 0x8796 -#define GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define GL_OP_MOV_EXT 0x8799 -#define GL_OUTPUT_VERTEX_EXT 0x879A -#define GL_OUTPUT_COLOR0_EXT 0x879B -#define GL_OUTPUT_COLOR1_EXT 0x879C -#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define GL_OUTPUT_FOG_EXT 0x87BD -#define GL_SCALAR_EXT 0x87BE -#define GL_VECTOR_EXT 0x87BF -#define GL_MATRIX_EXT 0x87C0 -#define GL_VARIANT_EXT 0x87C1 -#define GL_INVARIANT_EXT 0x87C2 -#define GL_LOCAL_CONSTANT_EXT 0x87C3 -#define GL_LOCAL_EXT 0x87C4 -#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define GL_X_EXT 0x87D5 -#define GL_Y_EXT 0x87D6 -#define GL_Z_EXT 0x87D7 -#define GL_W_EXT 0x87D8 -#define GL_NEGATIVE_X_EXT 0x87D9 -#define GL_NEGATIVE_Y_EXT 0x87DA -#define GL_NEGATIVE_Z_EXT 0x87DB -#define GL_NEGATIVE_W_EXT 0x87DC -#define GL_ZERO_EXT 0x87DD -#define GL_ONE_EXT 0x87DE -#define GL_NEGATIVE_ONE_EXT 0x87DF -#define GL_NORMALIZED_RANGE_EXT 0x87E0 -#define GL_FULL_RANGE_EXT 0x87E1 -#define GL_CURRENT_VERTEX_EXT 0x87E2 -#define GL_MVP_MATRIX_EXT 0x87E3 -#define GL_VARIANT_VALUE_EXT 0x87E4 -#define GL_VARIANT_DATATYPE_EXT 0x87E5 -#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define GL_VARIANT_ARRAY_EXT 0x87E8 -#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define GL_INVARIANT_VALUE_EXT 0x87EA -#define GL_INVARIANT_DATATYPE_EXT 0x87EB -#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED - -typedef void (GLAPIENTRY * PFNGLBEGINVERTEXSHADEREXTPROC) (void); -typedef GLuint (GLAPIENTRY * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDPARAMETEREXTPROC) (GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); -typedef void (GLAPIENTRY * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENDVERTEXSHADEREXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLuint (GLAPIENTRY * PFNGLGENSYMBOLSEXTPROC) (GLenum dataType, GLenum storageType, GLenum range, GLuint components); -typedef GLuint (GLAPIENTRY * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); -typedef void (GLAPIENTRY * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (GLAPIENTRY * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid **data); -typedef void (GLAPIENTRY * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLboolean (GLAPIENTRY * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); -typedef void (GLAPIENTRY * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, GLvoid *addr); -typedef void (GLAPIENTRY * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, GLvoid *addr); -typedef void (GLAPIENTRY * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); -typedef void (GLAPIENTRY * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -typedef void (GLAPIENTRY * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -typedef void (GLAPIENTRY * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (GLAPIENTRY * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, GLvoid *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTBVEXTPROC) (GLuint id, GLbyte *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTDVEXTPROC) (GLuint id, GLdouble *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTFVEXTPROC) (GLuint id, GLfloat *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTIVEXTPROC) (GLuint id, GLint *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTSVEXTPROC) (GLuint id, GLshort *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTUBVEXTPROC) (GLuint id, GLubyte *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTUIVEXTPROC) (GLuint id, GLuint *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTUSVEXTPROC) (GLuint id, GLushort *addr); -typedef void (GLAPIENTRY * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); - -#define glBeginVertexShaderEXT GLEW_GET_FUN(__glewBeginVertexShaderEXT) -#define glBindLightParameterEXT GLEW_GET_FUN(__glewBindLightParameterEXT) -#define glBindMaterialParameterEXT GLEW_GET_FUN(__glewBindMaterialParameterEXT) -#define glBindParameterEXT GLEW_GET_FUN(__glewBindParameterEXT) -#define glBindTexGenParameterEXT GLEW_GET_FUN(__glewBindTexGenParameterEXT) -#define glBindTextureUnitParameterEXT GLEW_GET_FUN(__glewBindTextureUnitParameterEXT) -#define glBindVertexShaderEXT GLEW_GET_FUN(__glewBindVertexShaderEXT) -#define glDeleteVertexShaderEXT GLEW_GET_FUN(__glewDeleteVertexShaderEXT) -#define glDisableVariantClientStateEXT GLEW_GET_FUN(__glewDisableVariantClientStateEXT) -#define glEnableVariantClientStateEXT GLEW_GET_FUN(__glewEnableVariantClientStateEXT) -#define glEndVertexShaderEXT GLEW_GET_FUN(__glewEndVertexShaderEXT) -#define glExtractComponentEXT GLEW_GET_FUN(__glewExtractComponentEXT) -#define glGenSymbolsEXT GLEW_GET_FUN(__glewGenSymbolsEXT) -#define glGenVertexShadersEXT GLEW_GET_FUN(__glewGenVertexShadersEXT) -#define glGetInvariantBooleanvEXT GLEW_GET_FUN(__glewGetInvariantBooleanvEXT) -#define glGetInvariantFloatvEXT GLEW_GET_FUN(__glewGetInvariantFloatvEXT) -#define glGetInvariantIntegervEXT GLEW_GET_FUN(__glewGetInvariantIntegervEXT) -#define glGetLocalConstantBooleanvEXT GLEW_GET_FUN(__glewGetLocalConstantBooleanvEXT) -#define glGetLocalConstantFloatvEXT GLEW_GET_FUN(__glewGetLocalConstantFloatvEXT) -#define glGetLocalConstantIntegervEXT GLEW_GET_FUN(__glewGetLocalConstantIntegervEXT) -#define glGetVariantBooleanvEXT GLEW_GET_FUN(__glewGetVariantBooleanvEXT) -#define glGetVariantFloatvEXT GLEW_GET_FUN(__glewGetVariantFloatvEXT) -#define glGetVariantIntegervEXT GLEW_GET_FUN(__glewGetVariantIntegervEXT) -#define glGetVariantPointervEXT GLEW_GET_FUN(__glewGetVariantPointervEXT) -#define glInsertComponentEXT GLEW_GET_FUN(__glewInsertComponentEXT) -#define glIsVariantEnabledEXT GLEW_GET_FUN(__glewIsVariantEnabledEXT) -#define glSetInvariantEXT GLEW_GET_FUN(__glewSetInvariantEXT) -#define glSetLocalConstantEXT GLEW_GET_FUN(__glewSetLocalConstantEXT) -#define glShaderOp1EXT GLEW_GET_FUN(__glewShaderOp1EXT) -#define glShaderOp2EXT GLEW_GET_FUN(__glewShaderOp2EXT) -#define glShaderOp3EXT GLEW_GET_FUN(__glewShaderOp3EXT) -#define glSwizzleEXT GLEW_GET_FUN(__glewSwizzleEXT) -#define glVariantPointerEXT GLEW_GET_FUN(__glewVariantPointerEXT) -#define glVariantbvEXT GLEW_GET_FUN(__glewVariantbvEXT) -#define glVariantdvEXT GLEW_GET_FUN(__glewVariantdvEXT) -#define glVariantfvEXT GLEW_GET_FUN(__glewVariantfvEXT) -#define glVariantivEXT GLEW_GET_FUN(__glewVariantivEXT) -#define glVariantsvEXT GLEW_GET_FUN(__glewVariantsvEXT) -#define glVariantubvEXT GLEW_GET_FUN(__glewVariantubvEXT) -#define glVariantuivEXT GLEW_GET_FUN(__glewVariantuivEXT) -#define glVariantusvEXT GLEW_GET_FUN(__glewVariantusvEXT) -#define glWriteMaskEXT GLEW_GET_FUN(__glewWriteMaskEXT) - -#define GLEW_EXT_vertex_shader GLEW_GET_VAR(__GLEW_EXT_vertex_shader) - -#endif /* GL_EXT_vertex_shader */ - -/* ------------------------ GL_EXT_vertex_weighting ------------------------ */ - -#ifndef GL_EXT_vertex_weighting -#define GL_EXT_vertex_weighting 1 - -#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 -#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6 -#define GL_MODELVIEW0_EXT 0x1700 -#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define GL_MODELVIEW1_MATRIX_EXT 0x8506 -#define GL_VERTEX_WEIGHTING_EXT 0x8509 -#define GL_MODELVIEW1_EXT 0x850A -#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 - -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, void* pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight); - -#define glVertexWeightPointerEXT GLEW_GET_FUN(__glewVertexWeightPointerEXT) -#define glVertexWeightfEXT GLEW_GET_FUN(__glewVertexWeightfEXT) -#define glVertexWeightfvEXT GLEW_GET_FUN(__glewVertexWeightfvEXT) - -#define GLEW_EXT_vertex_weighting GLEW_GET_VAR(__GLEW_EXT_vertex_weighting) - -#endif /* GL_EXT_vertex_weighting */ - -/* ------------------------- GL_EXT_x11_sync_object ------------------------ */ - -#ifndef GL_EXT_x11_sync_object -#define GL_EXT_x11_sync_object 1 - -#define GL_SYNC_X11_FENCE_EXT 0x90E1 - -typedef GLsync (GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); - -#define glImportSyncEXT GLEW_GET_FUN(__glewImportSyncEXT) - -#define GLEW_EXT_x11_sync_object GLEW_GET_VAR(__GLEW_EXT_x11_sync_object) - -#endif /* GL_EXT_x11_sync_object */ - -/* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */ - -#ifndef GL_GREMEDY_frame_terminator -#define GL_GREMEDY_frame_terminator 1 - -typedef void (GLAPIENTRY * PFNGLFRAMETERMINATORGREMEDYPROC) (void); - -#define glFrameTerminatorGREMEDY GLEW_GET_FUN(__glewFrameTerminatorGREMEDY) - -#define GLEW_GREMEDY_frame_terminator GLEW_GET_VAR(__GLEW_GREMEDY_frame_terminator) - -#endif /* GL_GREMEDY_frame_terminator */ - -/* ------------------------ GL_GREMEDY_string_marker ----------------------- */ - -#ifndef GL_GREMEDY_string_marker -#define GL_GREMEDY_string_marker 1 - -typedef void (GLAPIENTRY * PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void* string); - -#define glStringMarkerGREMEDY GLEW_GET_FUN(__glewStringMarkerGREMEDY) - -#define GLEW_GREMEDY_string_marker GLEW_GET_VAR(__GLEW_GREMEDY_string_marker) - -#endif /* GL_GREMEDY_string_marker */ - -/* --------------------- GL_HP_convolution_border_modes -------------------- */ - -#ifndef GL_HP_convolution_border_modes -#define GL_HP_convolution_border_modes 1 - -#define GLEW_HP_convolution_border_modes GLEW_GET_VAR(__GLEW_HP_convolution_border_modes) - -#endif /* GL_HP_convolution_border_modes */ - -/* ------------------------- GL_HP_image_transform ------------------------- */ - -#ifndef GL_HP_image_transform -#define GL_HP_image_transform 1 - -typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); - -#define glGetImageTransformParameterfvHP GLEW_GET_FUN(__glewGetImageTransformParameterfvHP) -#define glGetImageTransformParameterivHP GLEW_GET_FUN(__glewGetImageTransformParameterivHP) -#define glImageTransformParameterfHP GLEW_GET_FUN(__glewImageTransformParameterfHP) -#define glImageTransformParameterfvHP GLEW_GET_FUN(__glewImageTransformParameterfvHP) -#define glImageTransformParameteriHP GLEW_GET_FUN(__glewImageTransformParameteriHP) -#define glImageTransformParameterivHP GLEW_GET_FUN(__glewImageTransformParameterivHP) - -#define GLEW_HP_image_transform GLEW_GET_VAR(__GLEW_HP_image_transform) - -#endif /* GL_HP_image_transform */ - -/* -------------------------- GL_HP_occlusion_test ------------------------- */ - -#ifndef GL_HP_occlusion_test -#define GL_HP_occlusion_test 1 - -#define GL_OCCLUSION_TEST_HP 0x8165 -#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 - -#define GLEW_HP_occlusion_test GLEW_GET_VAR(__GLEW_HP_occlusion_test) - -#endif /* GL_HP_occlusion_test */ - -/* ------------------------- GL_HP_texture_lighting ------------------------ */ - -#ifndef GL_HP_texture_lighting -#define GL_HP_texture_lighting 1 - -#define GLEW_HP_texture_lighting GLEW_GET_VAR(__GLEW_HP_texture_lighting) - -#endif /* GL_HP_texture_lighting */ - -/* --------------------------- GL_IBM_cull_vertex -------------------------- */ - -#ifndef GL_IBM_cull_vertex -#define GL_IBM_cull_vertex 1 - -#define GL_CULL_VERTEX_IBM 103050 - -#define GLEW_IBM_cull_vertex GLEW_GET_VAR(__GLEW_IBM_cull_vertex) - -#endif /* GL_IBM_cull_vertex */ - -/* ---------------------- GL_IBM_multimode_draw_arrays --------------------- */ - -#ifndef GL_IBM_multimode_draw_arrays -#define GL_IBM_multimode_draw_arrays 1 - -typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum* mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum* mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, GLint modestride); - -#define glMultiModeDrawArraysIBM GLEW_GET_FUN(__glewMultiModeDrawArraysIBM) -#define glMultiModeDrawElementsIBM GLEW_GET_FUN(__glewMultiModeDrawElementsIBM) - -#define GLEW_IBM_multimode_draw_arrays GLEW_GET_VAR(__GLEW_IBM_multimode_draw_arrays) - -#endif /* GL_IBM_multimode_draw_arrays */ - -/* ------------------------- GL_IBM_rasterpos_clip ------------------------- */ - -#ifndef GL_IBM_rasterpos_clip -#define GL_IBM_rasterpos_clip 1 - -#define GL_RASTER_POSITION_UNCLIPPED_IBM 103010 - -#define GLEW_IBM_rasterpos_clip GLEW_GET_VAR(__GLEW_IBM_rasterpos_clip) - -#endif /* GL_IBM_rasterpos_clip */ - -/* --------------------------- GL_IBM_static_data -------------------------- */ - -#ifndef GL_IBM_static_data -#define GL_IBM_static_data 1 - -#define GL_ALL_STATIC_DATA_IBM 103060 -#define GL_STATIC_VERTEX_ARRAY_IBM 103061 - -#define GLEW_IBM_static_data GLEW_GET_VAR(__GLEW_IBM_static_data) - -#endif /* GL_IBM_static_data */ - -/* --------------------- GL_IBM_texture_mirrored_repeat -------------------- */ - -#ifndef GL_IBM_texture_mirrored_repeat -#define GL_IBM_texture_mirrored_repeat 1 - -#define GL_MIRRORED_REPEAT_IBM 0x8370 - -#define GLEW_IBM_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_IBM_texture_mirrored_repeat) - -#endif /* GL_IBM_texture_mirrored_repeat */ - -/* ----------------------- GL_IBM_vertex_array_lists ----------------------- */ - -#ifndef GL_IBM_vertex_array_lists -#define GL_IBM_vertex_array_lists 1 - -#define GL_VERTEX_ARRAY_LIST_IBM 103070 -#define GL_NORMAL_ARRAY_LIST_IBM 103071 -#define GL_COLOR_ARRAY_LIST_IBM 103072 -#define GL_INDEX_ARRAY_LIST_IBM 103073 -#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 - -typedef void (GLAPIENTRY * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); - -#define glColorPointerListIBM GLEW_GET_FUN(__glewColorPointerListIBM) -#define glEdgeFlagPointerListIBM GLEW_GET_FUN(__glewEdgeFlagPointerListIBM) -#define glFogCoordPointerListIBM GLEW_GET_FUN(__glewFogCoordPointerListIBM) -#define glIndexPointerListIBM GLEW_GET_FUN(__glewIndexPointerListIBM) -#define glNormalPointerListIBM GLEW_GET_FUN(__glewNormalPointerListIBM) -#define glSecondaryColorPointerListIBM GLEW_GET_FUN(__glewSecondaryColorPointerListIBM) -#define glTexCoordPointerListIBM GLEW_GET_FUN(__glewTexCoordPointerListIBM) -#define glVertexPointerListIBM GLEW_GET_FUN(__glewVertexPointerListIBM) - -#define GLEW_IBM_vertex_array_lists GLEW_GET_VAR(__GLEW_IBM_vertex_array_lists) - -#endif /* GL_IBM_vertex_array_lists */ - -/* -------------------------- GL_INGR_color_clamp -------------------------- */ - -#ifndef GL_INGR_color_clamp -#define GL_INGR_color_clamp 1 - -#define GL_RED_MIN_CLAMP_INGR 0x8560 -#define GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define GL_RED_MAX_CLAMP_INGR 0x8564 -#define GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 - -#define GLEW_INGR_color_clamp GLEW_GET_VAR(__GLEW_INGR_color_clamp) - -#endif /* GL_INGR_color_clamp */ - -/* ------------------------- GL_INGR_interlace_read ------------------------ */ - -#ifndef GL_INGR_interlace_read -#define GL_INGR_interlace_read 1 - -#define GL_INTERLACE_READ_INGR 0x8568 - -#define GLEW_INGR_interlace_read GLEW_GET_VAR(__GLEW_INGR_interlace_read) - -#endif /* GL_INGR_interlace_read */ - -/* ------------------------ GL_INTEL_parallel_arrays ----------------------- */ - -#ifndef GL_INTEL_parallel_arrays -#define GL_INTEL_parallel_arrays 1 - -#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 - -typedef void (GLAPIENTRY * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); -typedef void (GLAPIENTRY * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void** pointer); -typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); - -#define glColorPointervINTEL GLEW_GET_FUN(__glewColorPointervINTEL) -#define glNormalPointervINTEL GLEW_GET_FUN(__glewNormalPointervINTEL) -#define glTexCoordPointervINTEL GLEW_GET_FUN(__glewTexCoordPointervINTEL) -#define glVertexPointervINTEL GLEW_GET_FUN(__glewVertexPointervINTEL) - -#define GLEW_INTEL_parallel_arrays GLEW_GET_VAR(__GLEW_INTEL_parallel_arrays) - -#endif /* GL_INTEL_parallel_arrays */ - -/* ------------------------ GL_INTEL_texture_scissor ----------------------- */ - -#ifndef GL_INTEL_texture_scissor -#define GL_INTEL_texture_scissor 1 - -typedef void (GLAPIENTRY * PFNGLTEXSCISSORFUNCINTELPROC) (GLenum target, GLenum lfunc, GLenum hfunc); -typedef void (GLAPIENTRY * PFNGLTEXSCISSORINTELPROC) (GLenum target, GLclampf tlow, GLclampf thigh); - -#define glTexScissorFuncINTEL GLEW_GET_FUN(__glewTexScissorFuncINTEL) -#define glTexScissorINTEL GLEW_GET_FUN(__glewTexScissorINTEL) - -#define GLEW_INTEL_texture_scissor GLEW_GET_VAR(__GLEW_INTEL_texture_scissor) - -#endif /* GL_INTEL_texture_scissor */ - -/* -------------------------- GL_KTX_buffer_region ------------------------- */ - -#ifndef GL_KTX_buffer_region -#define GL_KTX_buffer_region 1 - -#define GL_KTX_FRONT_REGION 0x0 -#define GL_KTX_BACK_REGION 0x1 -#define GL_KTX_Z_REGION 0x2 -#define GL_KTX_STENCIL_REGION 0x3 - -typedef GLuint (GLAPIENTRY * PFNGLBUFFERREGIONENABLEDPROC) (void); -typedef void (GLAPIENTRY * PFNGLDELETEBUFFERREGIONPROC) (GLenum region); -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest); -typedef GLuint (GLAPIENTRY * PFNGLNEWBUFFERREGIONPROC) (GLenum region); -typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height); - -#define glBufferRegionEnabled GLEW_GET_FUN(__glewBufferRegionEnabled) -#define glDeleteBufferRegion GLEW_GET_FUN(__glewDeleteBufferRegion) -#define glDrawBufferRegion GLEW_GET_FUN(__glewDrawBufferRegion) -#define glNewBufferRegion GLEW_GET_FUN(__glewNewBufferRegion) -#define glReadBufferRegion GLEW_GET_FUN(__glewReadBufferRegion) - -#define GLEW_KTX_buffer_region GLEW_GET_VAR(__GLEW_KTX_buffer_region) - -#endif /* GL_KTX_buffer_region */ - -/* ------------------------- GL_MESAX_texture_stack ------------------------ */ - -#ifndef GL_MESAX_texture_stack -#define GL_MESAX_texture_stack 1 - -#define GL_TEXTURE_1D_STACK_MESAX 0x8759 -#define GL_TEXTURE_2D_STACK_MESAX 0x875A -#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B -#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C -#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D -#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E - -#define GLEW_MESAX_texture_stack GLEW_GET_VAR(__GLEW_MESAX_texture_stack) - -#endif /* GL_MESAX_texture_stack */ - -/* -------------------------- GL_MESA_pack_invert -------------------------- */ - -#ifndef GL_MESA_pack_invert -#define GL_MESA_pack_invert 1 - -#define GL_PACK_INVERT_MESA 0x8758 - -#define GLEW_MESA_pack_invert GLEW_GET_VAR(__GLEW_MESA_pack_invert) - -#endif /* GL_MESA_pack_invert */ - -/* ------------------------- GL_MESA_resize_buffers ------------------------ */ - -#ifndef GL_MESA_resize_buffers -#define GL_MESA_resize_buffers 1 - -typedef void (GLAPIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void); - -#define glResizeBuffersMESA GLEW_GET_FUN(__glewResizeBuffersMESA) - -#define GLEW_MESA_resize_buffers GLEW_GET_VAR(__GLEW_MESA_resize_buffers) - -#endif /* GL_MESA_resize_buffers */ - -/* --------------------------- GL_MESA_window_pos -------------------------- */ - -#ifndef GL_MESA_window_pos -#define GL_MESA_window_pos 1 - -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p); - -#define glWindowPos2dMESA GLEW_GET_FUN(__glewWindowPos2dMESA) -#define glWindowPos2dvMESA GLEW_GET_FUN(__glewWindowPos2dvMESA) -#define glWindowPos2fMESA GLEW_GET_FUN(__glewWindowPos2fMESA) -#define glWindowPos2fvMESA GLEW_GET_FUN(__glewWindowPos2fvMESA) -#define glWindowPos2iMESA GLEW_GET_FUN(__glewWindowPos2iMESA) -#define glWindowPos2ivMESA GLEW_GET_FUN(__glewWindowPos2ivMESA) -#define glWindowPos2sMESA GLEW_GET_FUN(__glewWindowPos2sMESA) -#define glWindowPos2svMESA GLEW_GET_FUN(__glewWindowPos2svMESA) -#define glWindowPos3dMESA GLEW_GET_FUN(__glewWindowPos3dMESA) -#define glWindowPos3dvMESA GLEW_GET_FUN(__glewWindowPos3dvMESA) -#define glWindowPos3fMESA GLEW_GET_FUN(__glewWindowPos3fMESA) -#define glWindowPos3fvMESA GLEW_GET_FUN(__glewWindowPos3fvMESA) -#define glWindowPos3iMESA GLEW_GET_FUN(__glewWindowPos3iMESA) -#define glWindowPos3ivMESA GLEW_GET_FUN(__glewWindowPos3ivMESA) -#define glWindowPos3sMESA GLEW_GET_FUN(__glewWindowPos3sMESA) -#define glWindowPos3svMESA GLEW_GET_FUN(__glewWindowPos3svMESA) -#define glWindowPos4dMESA GLEW_GET_FUN(__glewWindowPos4dMESA) -#define glWindowPos4dvMESA GLEW_GET_FUN(__glewWindowPos4dvMESA) -#define glWindowPos4fMESA GLEW_GET_FUN(__glewWindowPos4fMESA) -#define glWindowPos4fvMESA GLEW_GET_FUN(__glewWindowPos4fvMESA) -#define glWindowPos4iMESA GLEW_GET_FUN(__glewWindowPos4iMESA) -#define glWindowPos4ivMESA GLEW_GET_FUN(__glewWindowPos4ivMESA) -#define glWindowPos4sMESA GLEW_GET_FUN(__glewWindowPos4sMESA) -#define glWindowPos4svMESA GLEW_GET_FUN(__glewWindowPos4svMESA) - -#define GLEW_MESA_window_pos GLEW_GET_VAR(__GLEW_MESA_window_pos) - -#endif /* GL_MESA_window_pos */ - -/* ------------------------- GL_MESA_ycbcr_texture ------------------------- */ - -#ifndef GL_MESA_ycbcr_texture -#define GL_MESA_ycbcr_texture 1 - -#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB -#define GL_YCBCR_MESA 0x8757 - -#define GLEW_MESA_ycbcr_texture GLEW_GET_VAR(__GLEW_MESA_ycbcr_texture) - -#endif /* GL_MESA_ycbcr_texture */ - -/* ------------------------- GL_NVX_gpu_memory_info ------------------------ */ - -#ifndef GL_NVX_gpu_memory_info -#define GL_NVX_gpu_memory_info 1 - -#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 -#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 -#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 -#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A -#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B - -#define GLEW_NVX_gpu_memory_info GLEW_GET_VAR(__GLEW_NVX_gpu_memory_info) - -#endif /* GL_NVX_gpu_memory_info */ - -/* --------------------------- GL_NV_blend_square -------------------------- */ - -#ifndef GL_NV_blend_square -#define GL_NV_blend_square 1 - -#define GLEW_NV_blend_square GLEW_GET_VAR(__GLEW_NV_blend_square) - -#endif /* GL_NV_blend_square */ - -/* ------------------------ GL_NV_conditional_render ----------------------- */ - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 - -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 - -typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); -typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVPROC) (void); - -#define glBeginConditionalRenderNV GLEW_GET_FUN(__glewBeginConditionalRenderNV) -#define glEndConditionalRenderNV GLEW_GET_FUN(__glewEndConditionalRenderNV) - -#define GLEW_NV_conditional_render GLEW_GET_VAR(__GLEW_NV_conditional_render) - -#endif /* GL_NV_conditional_render */ - -/* ----------------------- GL_NV_copy_depth_to_color ----------------------- */ - -#ifndef GL_NV_copy_depth_to_color -#define GL_NV_copy_depth_to_color 1 - -#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E -#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F - -#define GLEW_NV_copy_depth_to_color GLEW_GET_VAR(__GLEW_NV_copy_depth_to_color) - -#endif /* GL_NV_copy_depth_to_color */ - -/* ---------------------------- GL_NV_copy_image --------------------------- */ - -#ifndef GL_NV_copy_image -#define GL_NV_copy_image 1 - -typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); - -#define glCopyImageSubDataNV GLEW_GET_FUN(__glewCopyImageSubDataNV) - -#define GLEW_NV_copy_image GLEW_GET_VAR(__GLEW_NV_copy_image) - -#endif /* GL_NV_copy_image */ - -/* ------------------------ GL_NV_depth_buffer_float ----------------------- */ - -#ifndef GL_NV_depth_buffer_float -#define GL_NV_depth_buffer_float 1 - -#define GL_DEPTH_COMPONENT32F_NV 0x8DAB -#define GL_DEPTH32F_STENCIL8_NV 0x8DAC -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD -#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF - -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); -typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); - -#define glClearDepthdNV GLEW_GET_FUN(__glewClearDepthdNV) -#define glDepthBoundsdNV GLEW_GET_FUN(__glewDepthBoundsdNV) -#define glDepthRangedNV GLEW_GET_FUN(__glewDepthRangedNV) - -#define GLEW_NV_depth_buffer_float GLEW_GET_VAR(__GLEW_NV_depth_buffer_float) - -#endif /* GL_NV_depth_buffer_float */ - -/* --------------------------- GL_NV_depth_clamp --------------------------- */ - -#ifndef GL_NV_depth_clamp -#define GL_NV_depth_clamp 1 - -#define GL_DEPTH_CLAMP_NV 0x864F - -#define GLEW_NV_depth_clamp GLEW_GET_VAR(__GLEW_NV_depth_clamp) - -#endif /* GL_NV_depth_clamp */ - -/* ---------------------- GL_NV_depth_range_unclamped ---------------------- */ - -#ifndef GL_NV_depth_range_unclamped -#define GL_NV_depth_range_unclamped 1 - -#define GL_SAMPLE_COUNT_BITS_NV 0x8864 -#define GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865 -#define GL_QUERY_RESULT_NV 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_NV 0x8867 -#define GL_SAMPLE_COUNT_NV 0x8914 - -#define GLEW_NV_depth_range_unclamped GLEW_GET_VAR(__GLEW_NV_depth_range_unclamped) - -#endif /* GL_NV_depth_range_unclamped */ - -/* ---------------------------- GL_NV_evaluators --------------------------- */ - -#ifndef GL_NV_evaluators -#define GL_NV_evaluators 1 - -#define GL_EVAL_2D_NV 0x86C0 -#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define GL_MAP_TESSELLATION_NV 0x86C2 -#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 - -typedef void (GLAPIENTRY * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); -typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void* points); -typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void* points); -typedef void (GLAPIENTRY * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint* params); - -#define glEvalMapsNV GLEW_GET_FUN(__glewEvalMapsNV) -#define glGetMapAttribParameterfvNV GLEW_GET_FUN(__glewGetMapAttribParameterfvNV) -#define glGetMapAttribParameterivNV GLEW_GET_FUN(__glewGetMapAttribParameterivNV) -#define glGetMapControlPointsNV GLEW_GET_FUN(__glewGetMapControlPointsNV) -#define glGetMapParameterfvNV GLEW_GET_FUN(__glewGetMapParameterfvNV) -#define glGetMapParameterivNV GLEW_GET_FUN(__glewGetMapParameterivNV) -#define glMapControlPointsNV GLEW_GET_FUN(__glewMapControlPointsNV) -#define glMapParameterfvNV GLEW_GET_FUN(__glewMapParameterfvNV) -#define glMapParameterivNV GLEW_GET_FUN(__glewMapParameterivNV) - -#define GLEW_NV_evaluators GLEW_GET_VAR(__GLEW_NV_evaluators) - -#endif /* GL_NV_evaluators */ - -/* ----------------------- GL_NV_explicit_multisample ---------------------- */ - -#ifndef GL_NV_explicit_multisample -#define GL_NV_explicit_multisample 1 - -#define GL_SAMPLE_POSITION_NV 0x8E50 -#define GL_SAMPLE_MASK_NV 0x8E51 -#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 -#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 -#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 -#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 -#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 -#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 -#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 -#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 - -typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat* val); -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); - -#define glGetMultisamplefvNV GLEW_GET_FUN(__glewGetMultisamplefvNV) -#define glSampleMaskIndexedNV GLEW_GET_FUN(__glewSampleMaskIndexedNV) -#define glTexRenderbufferNV GLEW_GET_FUN(__glewTexRenderbufferNV) - -#define GLEW_NV_explicit_multisample GLEW_GET_VAR(__GLEW_NV_explicit_multisample) - -#endif /* GL_NV_explicit_multisample */ - -/* ------------------------------ GL_NV_fence ------------------------------ */ - -#ifndef GL_NV_fence -#define GL_NV_fence 1 - -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 - -typedef void (GLAPIENTRY * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint* fences); -typedef void (GLAPIENTRY * PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint* fences); -typedef void (GLAPIENTRY * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISFENCENVPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCENVPROC) (GLuint fence); - -#define glDeleteFencesNV GLEW_GET_FUN(__glewDeleteFencesNV) -#define glFinishFenceNV GLEW_GET_FUN(__glewFinishFenceNV) -#define glGenFencesNV GLEW_GET_FUN(__glewGenFencesNV) -#define glGetFenceivNV GLEW_GET_FUN(__glewGetFenceivNV) -#define glIsFenceNV GLEW_GET_FUN(__glewIsFenceNV) -#define glSetFenceNV GLEW_GET_FUN(__glewSetFenceNV) -#define glTestFenceNV GLEW_GET_FUN(__glewTestFenceNV) - -#define GLEW_NV_fence GLEW_GET_VAR(__GLEW_NV_fence) - -#endif /* GL_NV_fence */ - -/* --------------------------- GL_NV_float_buffer -------------------------- */ - -#ifndef GL_NV_float_buffer -#define GL_NV_float_buffer 1 - -#define GL_FLOAT_R_NV 0x8880 -#define GL_FLOAT_RG_NV 0x8881 -#define GL_FLOAT_RGB_NV 0x8882 -#define GL_FLOAT_RGBA_NV 0x8883 -#define GL_FLOAT_R16_NV 0x8884 -#define GL_FLOAT_R32_NV 0x8885 -#define GL_FLOAT_RG16_NV 0x8886 -#define GL_FLOAT_RG32_NV 0x8887 -#define GL_FLOAT_RGB16_NV 0x8888 -#define GL_FLOAT_RGB32_NV 0x8889 -#define GL_FLOAT_RGBA16_NV 0x888A -#define GL_FLOAT_RGBA32_NV 0x888B -#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define GL_FLOAT_RGBA_MODE_NV 0x888E - -#define GLEW_NV_float_buffer GLEW_GET_VAR(__GLEW_NV_float_buffer) - -#endif /* GL_NV_float_buffer */ - -/* --------------------------- GL_NV_fog_distance -------------------------- */ - -#ifndef GL_NV_fog_distance -#define GL_NV_fog_distance 1 - -#define GL_FOG_DISTANCE_MODE_NV 0x855A -#define GL_EYE_RADIAL_NV 0x855B -#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C - -#define GLEW_NV_fog_distance GLEW_GET_VAR(__GLEW_NV_fog_distance) - -#endif /* GL_NV_fog_distance */ - -/* ------------------------- GL_NV_fragment_program ------------------------ */ - -#ifndef GL_NV_fragment_program -#define GL_NV_fragment_program 1 - -#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 -#define GL_FRAGMENT_PROGRAM_NV 0x8870 -#define GL_MAX_TEXTURE_COORDS_NV 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 -#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 -#define GL_PROGRAM_ERROR_STRING_NV 0x8874 - -typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble *params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLdouble v[]); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLfloat v[]); - -#define glGetProgramNamedParameterdvNV GLEW_GET_FUN(__glewGetProgramNamedParameterdvNV) -#define glGetProgramNamedParameterfvNV GLEW_GET_FUN(__glewGetProgramNamedParameterfvNV) -#define glProgramNamedParameter4dNV GLEW_GET_FUN(__glewProgramNamedParameter4dNV) -#define glProgramNamedParameter4dvNV GLEW_GET_FUN(__glewProgramNamedParameter4dvNV) -#define glProgramNamedParameter4fNV GLEW_GET_FUN(__glewProgramNamedParameter4fNV) -#define glProgramNamedParameter4fvNV GLEW_GET_FUN(__glewProgramNamedParameter4fvNV) - -#define GLEW_NV_fragment_program GLEW_GET_VAR(__GLEW_NV_fragment_program) - -#endif /* GL_NV_fragment_program */ - -/* ------------------------ GL_NV_fragment_program2 ------------------------ */ - -#ifndef GL_NV_fragment_program2 -#define GL_NV_fragment_program2 1 - -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 -#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 -#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 - -#define GLEW_NV_fragment_program2 GLEW_GET_VAR(__GLEW_NV_fragment_program2) - -#endif /* GL_NV_fragment_program2 */ - -/* ------------------------ GL_NV_fragment_program4 ------------------------ */ - -#ifndef GL_NV_fragment_program4 -#define GL_NV_fragment_program4 1 - -#define GLEW_NV_fragment_program4 GLEW_GET_VAR(__GLEW_NV_fragment_program4) - -#endif /* GL_NV_fragment_program4 */ - -/* --------------------- GL_NV_fragment_program_option --------------------- */ - -#ifndef GL_NV_fragment_program_option -#define GL_NV_fragment_program_option 1 - -#define GLEW_NV_fragment_program_option GLEW_GET_VAR(__GLEW_NV_fragment_program_option) - -#endif /* GL_NV_fragment_program_option */ - -/* ----------------- GL_NV_framebuffer_multisample_coverage ---------------- */ - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_NV_framebuffer_multisample_coverage 1 - -#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB -#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 -#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 -#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 - -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); - -#define glRenderbufferStorageMultisampleCoverageNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleCoverageNV) - -#define GLEW_NV_framebuffer_multisample_coverage GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample_coverage) - -#endif /* GL_NV_framebuffer_multisample_coverage */ - -/* ------------------------ GL_NV_geometry_program4 ------------------------ */ - -#ifndef GL_NV_geometry_program4 -#define GL_NV_geometry_program4 1 - -#define GL_GEOMETRY_PROGRAM_NV 0x8C26 -#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 -#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 - -typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); - -#define glProgramVertexLimitNV GLEW_GET_FUN(__glewProgramVertexLimitNV) - -#define GLEW_NV_geometry_program4 GLEW_GET_VAR(__GLEW_NV_geometry_program4) - -#endif /* GL_NV_geometry_program4 */ - -/* ------------------------- GL_NV_geometry_shader4 ------------------------ */ - -#ifndef GL_NV_geometry_shader4 -#define GL_NV_geometry_shader4 1 - -#define GLEW_NV_geometry_shader4 GLEW_GET_VAR(__GLEW_NV_geometry_shader4) - -#endif /* GL_NV_geometry_shader4 */ - -/* --------------------------- GL_NV_gpu_program4 -------------------------- */ - -#ifndef GL_NV_gpu_program4 -#define GL_NV_gpu_program4 1 - -#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 -#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 -#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 -#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 -#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 -#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 -#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 - -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); - -#define glProgramEnvParameterI4iNV GLEW_GET_FUN(__glewProgramEnvParameterI4iNV) -#define glProgramEnvParameterI4ivNV GLEW_GET_FUN(__glewProgramEnvParameterI4ivNV) -#define glProgramEnvParameterI4uiNV GLEW_GET_FUN(__glewProgramEnvParameterI4uiNV) -#define glProgramEnvParameterI4uivNV GLEW_GET_FUN(__glewProgramEnvParameterI4uivNV) -#define glProgramEnvParametersI4ivNV GLEW_GET_FUN(__glewProgramEnvParametersI4ivNV) -#define glProgramEnvParametersI4uivNV GLEW_GET_FUN(__glewProgramEnvParametersI4uivNV) -#define glProgramLocalParameterI4iNV GLEW_GET_FUN(__glewProgramLocalParameterI4iNV) -#define glProgramLocalParameterI4ivNV GLEW_GET_FUN(__glewProgramLocalParameterI4ivNV) -#define glProgramLocalParameterI4uiNV GLEW_GET_FUN(__glewProgramLocalParameterI4uiNV) -#define glProgramLocalParameterI4uivNV GLEW_GET_FUN(__glewProgramLocalParameterI4uivNV) -#define glProgramLocalParametersI4ivNV GLEW_GET_FUN(__glewProgramLocalParametersI4ivNV) -#define glProgramLocalParametersI4uivNV GLEW_GET_FUN(__glewProgramLocalParametersI4uivNV) - -#define GLEW_NV_gpu_program4 GLEW_GET_VAR(__GLEW_NV_gpu_program4) - -#endif /* GL_NV_gpu_program4 */ - -/* --------------------------- GL_NV_gpu_program5 -------------------------- */ - -#ifndef GL_NV_gpu_program5 -#define GL_NV_gpu_program5 1 - -#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C -#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F - -#define GLEW_NV_gpu_program5 GLEW_GET_VAR(__GLEW_NV_gpu_program5) - -#endif /* GL_NV_gpu_program5 */ - -/* ------------------------- GL_NV_gpu_program_fp64 ------------------------ */ - -#ifndef GL_NV_gpu_program_fp64 -#define GL_NV_gpu_program_fp64 1 - -#define GLEW_NV_gpu_program_fp64 GLEW_GET_VAR(__GLEW_NV_gpu_program_fp64) - -#endif /* GL_NV_gpu_program_fp64 */ - -/* --------------------------- GL_NV_gpu_shader5 --------------------------- */ - -#ifndef GL_NV_gpu_shader5 -#define GL_NV_gpu_shader5 1 - -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F -#define GL_INT8_NV 0x8FE0 -#define GL_INT8_VEC2_NV 0x8FE1 -#define GL_INT8_VEC3_NV 0x8FE2 -#define GL_INT8_VEC4_NV 0x8FE3 -#define GL_INT16_NV 0x8FE4 -#define GL_INT16_VEC2_NV 0x8FE5 -#define GL_INT16_VEC3_NV 0x8FE6 -#define GL_INT16_VEC4_NV 0x8FE7 -#define GL_INT64_VEC2_NV 0x8FE9 -#define GL_INT64_VEC3_NV 0x8FEA -#define GL_INT64_VEC4_NV 0x8FEB -#define GL_UNSIGNED_INT8_NV 0x8FEC -#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED -#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE -#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF -#define GL_UNSIGNED_INT16_NV 0x8FF0 -#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 -#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 -#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 -#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 -#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 -#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 -#define GL_FLOAT16_NV 0x8FF8 -#define GL_FLOAT16_VEC2_NV 0x8FF9 -#define GL_FLOAT16_VEC3_NV 0x8FFA -#define GL_FLOAT16_VEC4_NV 0x8FFB - -typedef void (GLAPIENTRY * PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); -typedef void (GLAPIENTRY * PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); -typedef void (GLAPIENTRY * PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GLAPIENTRY * PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GLAPIENTRY * PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); - -#define glGetUniformi64vNV GLEW_GET_FUN(__glewGetUniformi64vNV) -#define glGetUniformui64vNV GLEW_GET_FUN(__glewGetUniformui64vNV) -#define glProgramUniform1i64NV GLEW_GET_FUN(__glewProgramUniform1i64NV) -#define glProgramUniform1i64vNV GLEW_GET_FUN(__glewProgramUniform1i64vNV) -#define glProgramUniform1ui64NV GLEW_GET_FUN(__glewProgramUniform1ui64NV) -#define glProgramUniform1ui64vNV GLEW_GET_FUN(__glewProgramUniform1ui64vNV) -#define glProgramUniform2i64NV GLEW_GET_FUN(__glewProgramUniform2i64NV) -#define glProgramUniform2i64vNV GLEW_GET_FUN(__glewProgramUniform2i64vNV) -#define glProgramUniform2ui64NV GLEW_GET_FUN(__glewProgramUniform2ui64NV) -#define glProgramUniform2ui64vNV GLEW_GET_FUN(__glewProgramUniform2ui64vNV) -#define glProgramUniform3i64NV GLEW_GET_FUN(__glewProgramUniform3i64NV) -#define glProgramUniform3i64vNV GLEW_GET_FUN(__glewProgramUniform3i64vNV) -#define glProgramUniform3ui64NV GLEW_GET_FUN(__glewProgramUniform3ui64NV) -#define glProgramUniform3ui64vNV GLEW_GET_FUN(__glewProgramUniform3ui64vNV) -#define glProgramUniform4i64NV GLEW_GET_FUN(__glewProgramUniform4i64NV) -#define glProgramUniform4i64vNV GLEW_GET_FUN(__glewProgramUniform4i64vNV) -#define glProgramUniform4ui64NV GLEW_GET_FUN(__glewProgramUniform4ui64NV) -#define glProgramUniform4ui64vNV GLEW_GET_FUN(__glewProgramUniform4ui64vNV) -#define glUniform1i64NV GLEW_GET_FUN(__glewUniform1i64NV) -#define glUniform1i64vNV GLEW_GET_FUN(__glewUniform1i64vNV) -#define glUniform1ui64NV GLEW_GET_FUN(__glewUniform1ui64NV) -#define glUniform1ui64vNV GLEW_GET_FUN(__glewUniform1ui64vNV) -#define glUniform2i64NV GLEW_GET_FUN(__glewUniform2i64NV) -#define glUniform2i64vNV GLEW_GET_FUN(__glewUniform2i64vNV) -#define glUniform2ui64NV GLEW_GET_FUN(__glewUniform2ui64NV) -#define glUniform2ui64vNV GLEW_GET_FUN(__glewUniform2ui64vNV) -#define glUniform3i64NV GLEW_GET_FUN(__glewUniform3i64NV) -#define glUniform3i64vNV GLEW_GET_FUN(__glewUniform3i64vNV) -#define glUniform3ui64NV GLEW_GET_FUN(__glewUniform3ui64NV) -#define glUniform3ui64vNV GLEW_GET_FUN(__glewUniform3ui64vNV) -#define glUniform4i64NV GLEW_GET_FUN(__glewUniform4i64NV) -#define glUniform4i64vNV GLEW_GET_FUN(__glewUniform4i64vNV) -#define glUniform4ui64NV GLEW_GET_FUN(__glewUniform4ui64NV) -#define glUniform4ui64vNV GLEW_GET_FUN(__glewUniform4ui64vNV) - -#define GLEW_NV_gpu_shader5 GLEW_GET_VAR(__GLEW_NV_gpu_shader5) - -#endif /* GL_NV_gpu_shader5 */ - -/* ---------------------------- GL_NV_half_float --------------------------- */ - -#ifndef GL_NV_half_float -#define GL_NV_half_float 1 - -#define GL_HALF_FLOAT_NV 0x140B - -typedef unsigned short GLhalf; - -typedef void (GLAPIENTRY * PFNGLCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); -typedef void (GLAPIENTRY * PFNGLCOLOR3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLCOLOR4HNVPROC) (GLhalf red, GLhalf green, GLhalf blue, GLhalf alpha); -typedef void (GLAPIENTRY * PFNGLCOLOR4HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLFOGCOORDHNVPROC) (GLhalf fog); -typedef void (GLAPIENTRY * PFNGLFOGCOORDHVNVPROC) (const GLhalf* fog); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalf s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalf s, GLhalf t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r, GLhalf q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLNORMAL3HNVPROC) (GLhalf nx, GLhalf ny, GLhalf nz); -typedef void (GLAPIENTRY * PFNGLNORMAL3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD1HNVPROC) (GLhalf s); -typedef void (GLAPIENTRY * PFNGLTEXCOORD1HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2HNVPROC) (GLhalf s, GLhalf t); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD3HNVPROC) (GLhalf s, GLhalf t, GLhalf r); -typedef void (GLAPIENTRY * PFNGLTEXCOORD3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4HNVPROC) (GLhalf s, GLhalf t, GLhalf r, GLhalf q); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEX2HNVPROC) (GLhalf x, GLhalf y); -typedef void (GLAPIENTRY * PFNGLVERTEX2HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEX3HNVPROC) (GLhalf x, GLhalf y, GLhalf z); -typedef void (GLAPIENTRY * PFNGLVERTEX3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEX4HNVPROC) (GLhalf x, GLhalf y, GLhalf z, GLhalf w); -typedef void (GLAPIENTRY * PFNGLVERTEX4HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalf x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalf x, GLhalf y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z, GLhalf w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHNVPROC) (GLhalf weight); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalf* weight); - -#define glColor3hNV GLEW_GET_FUN(__glewColor3hNV) -#define glColor3hvNV GLEW_GET_FUN(__glewColor3hvNV) -#define glColor4hNV GLEW_GET_FUN(__glewColor4hNV) -#define glColor4hvNV GLEW_GET_FUN(__glewColor4hvNV) -#define glFogCoordhNV GLEW_GET_FUN(__glewFogCoordhNV) -#define glFogCoordhvNV GLEW_GET_FUN(__glewFogCoordhvNV) -#define glMultiTexCoord1hNV GLEW_GET_FUN(__glewMultiTexCoord1hNV) -#define glMultiTexCoord1hvNV GLEW_GET_FUN(__glewMultiTexCoord1hvNV) -#define glMultiTexCoord2hNV GLEW_GET_FUN(__glewMultiTexCoord2hNV) -#define glMultiTexCoord2hvNV GLEW_GET_FUN(__glewMultiTexCoord2hvNV) -#define glMultiTexCoord3hNV GLEW_GET_FUN(__glewMultiTexCoord3hNV) -#define glMultiTexCoord3hvNV GLEW_GET_FUN(__glewMultiTexCoord3hvNV) -#define glMultiTexCoord4hNV GLEW_GET_FUN(__glewMultiTexCoord4hNV) -#define glMultiTexCoord4hvNV GLEW_GET_FUN(__glewMultiTexCoord4hvNV) -#define glNormal3hNV GLEW_GET_FUN(__glewNormal3hNV) -#define glNormal3hvNV GLEW_GET_FUN(__glewNormal3hvNV) -#define glSecondaryColor3hNV GLEW_GET_FUN(__glewSecondaryColor3hNV) -#define glSecondaryColor3hvNV GLEW_GET_FUN(__glewSecondaryColor3hvNV) -#define glTexCoord1hNV GLEW_GET_FUN(__glewTexCoord1hNV) -#define glTexCoord1hvNV GLEW_GET_FUN(__glewTexCoord1hvNV) -#define glTexCoord2hNV GLEW_GET_FUN(__glewTexCoord2hNV) -#define glTexCoord2hvNV GLEW_GET_FUN(__glewTexCoord2hvNV) -#define glTexCoord3hNV GLEW_GET_FUN(__glewTexCoord3hNV) -#define glTexCoord3hvNV GLEW_GET_FUN(__glewTexCoord3hvNV) -#define glTexCoord4hNV GLEW_GET_FUN(__glewTexCoord4hNV) -#define glTexCoord4hvNV GLEW_GET_FUN(__glewTexCoord4hvNV) -#define glVertex2hNV GLEW_GET_FUN(__glewVertex2hNV) -#define glVertex2hvNV GLEW_GET_FUN(__glewVertex2hvNV) -#define glVertex3hNV GLEW_GET_FUN(__glewVertex3hNV) -#define glVertex3hvNV GLEW_GET_FUN(__glewVertex3hvNV) -#define glVertex4hNV GLEW_GET_FUN(__glewVertex4hNV) -#define glVertex4hvNV GLEW_GET_FUN(__glewVertex4hvNV) -#define glVertexAttrib1hNV GLEW_GET_FUN(__glewVertexAttrib1hNV) -#define glVertexAttrib1hvNV GLEW_GET_FUN(__glewVertexAttrib1hvNV) -#define glVertexAttrib2hNV GLEW_GET_FUN(__glewVertexAttrib2hNV) -#define glVertexAttrib2hvNV GLEW_GET_FUN(__glewVertexAttrib2hvNV) -#define glVertexAttrib3hNV GLEW_GET_FUN(__glewVertexAttrib3hNV) -#define glVertexAttrib3hvNV GLEW_GET_FUN(__glewVertexAttrib3hvNV) -#define glVertexAttrib4hNV GLEW_GET_FUN(__glewVertexAttrib4hNV) -#define glVertexAttrib4hvNV GLEW_GET_FUN(__glewVertexAttrib4hvNV) -#define glVertexAttribs1hvNV GLEW_GET_FUN(__glewVertexAttribs1hvNV) -#define glVertexAttribs2hvNV GLEW_GET_FUN(__glewVertexAttribs2hvNV) -#define glVertexAttribs3hvNV GLEW_GET_FUN(__glewVertexAttribs3hvNV) -#define glVertexAttribs4hvNV GLEW_GET_FUN(__glewVertexAttribs4hvNV) -#define glVertexWeighthNV GLEW_GET_FUN(__glewVertexWeighthNV) -#define glVertexWeighthvNV GLEW_GET_FUN(__glewVertexWeighthvNV) - -#define GLEW_NV_half_float GLEW_GET_VAR(__GLEW_NV_half_float) - -#endif /* GL_NV_half_float */ - -/* ------------------------ GL_NV_light_max_exponent ----------------------- */ - -#ifndef GL_NV_light_max_exponent -#define GL_NV_light_max_exponent 1 - -#define GL_MAX_SHININESS_NV 0x8504 -#define GL_MAX_SPOT_EXPONENT_NV 0x8505 - -#define GLEW_NV_light_max_exponent GLEW_GET_VAR(__GLEW_NV_light_max_exponent) - -#endif /* GL_NV_light_max_exponent */ - -/* ----------------------- GL_NV_multisample_coverage ---------------------- */ - -#ifndef GL_NV_multisample_coverage -#define GL_NV_multisample_coverage 1 - -#define GL_COVERAGE_SAMPLES_NV 0x80A9 -#define GL_COLOR_SAMPLES_NV 0x8E20 - -#define GLEW_NV_multisample_coverage GLEW_GET_VAR(__GLEW_NV_multisample_coverage) - -#endif /* GL_NV_multisample_coverage */ - -/* --------------------- GL_NV_multisample_filter_hint --------------------- */ - -#ifndef GL_NV_multisample_filter_hint -#define GL_NV_multisample_filter_hint 1 - -#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 - -#define GLEW_NV_multisample_filter_hint GLEW_GET_VAR(__GLEW_NV_multisample_filter_hint) - -#endif /* GL_NV_multisample_filter_hint */ - -/* ------------------------- GL_NV_occlusion_query ------------------------- */ - -#ifndef GL_NV_occlusion_query -#define GL_NV_occlusion_query 1 - -#define GL_PIXEL_COUNTER_BITS_NV 0x8864 -#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 -#define GL_PIXEL_COUNT_NV 0x8866 -#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 - -typedef void (GLAPIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); - -#define glBeginOcclusionQueryNV GLEW_GET_FUN(__glewBeginOcclusionQueryNV) -#define glDeleteOcclusionQueriesNV GLEW_GET_FUN(__glewDeleteOcclusionQueriesNV) -#define glEndOcclusionQueryNV GLEW_GET_FUN(__glewEndOcclusionQueryNV) -#define glGenOcclusionQueriesNV GLEW_GET_FUN(__glewGenOcclusionQueriesNV) -#define glGetOcclusionQueryivNV GLEW_GET_FUN(__glewGetOcclusionQueryivNV) -#define glGetOcclusionQueryuivNV GLEW_GET_FUN(__glewGetOcclusionQueryuivNV) -#define glIsOcclusionQueryNV GLEW_GET_FUN(__glewIsOcclusionQueryNV) - -#define GLEW_NV_occlusion_query GLEW_GET_VAR(__GLEW_NV_occlusion_query) - -#endif /* GL_NV_occlusion_query */ - -/* ----------------------- GL_NV_packed_depth_stencil ---------------------- */ - -#ifndef GL_NV_packed_depth_stencil -#define GL_NV_packed_depth_stencil 1 - -#define GL_DEPTH_STENCIL_NV 0x84F9 -#define GL_UNSIGNED_INT_24_8_NV 0x84FA - -#define GLEW_NV_packed_depth_stencil GLEW_GET_VAR(__GLEW_NV_packed_depth_stencil) - -#endif /* GL_NV_packed_depth_stencil */ - -/* --------------------- GL_NV_parameter_buffer_object --------------------- */ - -#ifndef GL_NV_parameter_buffer_object -#define GL_NV_parameter_buffer_object 1 - -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 -#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 -#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 -#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 - -typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); - -#define glProgramBufferParametersIivNV GLEW_GET_FUN(__glewProgramBufferParametersIivNV) -#define glProgramBufferParametersIuivNV GLEW_GET_FUN(__glewProgramBufferParametersIuivNV) -#define glProgramBufferParametersfvNV GLEW_GET_FUN(__glewProgramBufferParametersfvNV) - -#define GLEW_NV_parameter_buffer_object GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object) - -#endif /* GL_NV_parameter_buffer_object */ - -/* --------------------- GL_NV_parameter_buffer_object2 -------------------- */ - -#ifndef GL_NV_parameter_buffer_object2 -#define GL_NV_parameter_buffer_object2 1 - -#define GLEW_NV_parameter_buffer_object2 GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object2) - -#endif /* GL_NV_parameter_buffer_object2 */ - -/* -------------------------- GL_NV_path_rendering ------------------------- */ - -#ifndef GL_NV_path_rendering -#define GL_NV_path_rendering 1 - -#define GL_CLOSE_PATH_NV 0x00 -#define GL_BOLD_BIT_NV 0x01 -#define GL_GLYPH_WIDTH_BIT_NV 0x01 -#define GL_MOVE_TO_NV 0x02 -#define GL_GLYPH_HEIGHT_BIT_NV 0x02 -#define GL_ITALIC_BIT_NV 0x02 -#define GL_RELATIVE_MOVE_TO_NV 0x03 -#define GL_LINE_TO_NV 0x04 -#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 -#define GL_RELATIVE_LINE_TO_NV 0x05 -#define GL_HORIZONTAL_LINE_TO_NV 0x06 -#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 -#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 -#define GL_VERTICAL_LINE_TO_NV 0x08 -#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 -#define GL_QUADRATIC_CURVE_TO_NV 0x0A -#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B -#define GL_CUBIC_CURVE_TO_NV 0x0C -#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D -#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E -#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F -#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 -#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 -#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 -#define GL_SMALL_CCW_ARC_TO_NV 0x12 -#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 -#define GL_SMALL_CW_ARC_TO_NV 0x14 -#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 -#define GL_LARGE_CCW_ARC_TO_NV 0x16 -#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 -#define GL_LARGE_CW_ARC_TO_NV 0x18 -#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 -#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 -#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 -#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 -#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 -#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA -#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC -#define GL_ARC_TO_NV 0xFE -#define GL_RELATIVE_ARC_TO_NV 0xFF -#define GL_GLYPH_HAS_KERNING_NV 0x100 -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PATH_FORMAT_SVG_NV 0x9070 -#define GL_PATH_FORMAT_PS_NV 0x9071 -#define GL_STANDARD_FONT_NAME_NV 0x9072 -#define GL_SYSTEM_FONT_NAME_NV 0x9073 -#define GL_FILE_NAME_NV 0x9074 -#define GL_PATH_STROKE_WIDTH_NV 0x9075 -#define GL_PATH_END_CAPS_NV 0x9076 -#define GL_PATH_INITIAL_END_CAP_NV 0x9077 -#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 -#define GL_PATH_JOIN_STYLE_NV 0x9079 -#define GL_PATH_MITER_LIMIT_NV 0x907A -#define GL_PATH_DASH_CAPS_NV 0x907B -#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C -#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D -#define GL_PATH_DASH_OFFSET_NV 0x907E -#define GL_PATH_CLIENT_LENGTH_NV 0x907F -#define GL_PATH_FILL_MODE_NV 0x9080 -#define GL_PATH_FILL_MASK_NV 0x9081 -#define GL_PATH_FILL_COVER_MODE_NV 0x9082 -#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 -#define GL_PATH_STROKE_MASK_NV 0x9084 -#define GL_COUNT_UP_NV 0x9088 -#define GL_COUNT_DOWN_NV 0x9089 -#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A -#define GL_CONVEX_HULL_NV 0x908B -#define GL_BOUNDING_BOX_NV 0x908D -#define GL_TRANSLATE_X_NV 0x908E -#define GL_TRANSLATE_Y_NV 0x908F -#define GL_TRANSLATE_2D_NV 0x9090 -#define GL_TRANSLATE_3D_NV 0x9091 -#define GL_AFFINE_2D_NV 0x9092 -#define GL_AFFINE_3D_NV 0x9094 -#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 -#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 -#define GL_UTF8_NV 0x909A -#define GL_UTF16_NV 0x909B -#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C -#define GL_PATH_COMMAND_COUNT_NV 0x909D -#define GL_PATH_COORD_COUNT_NV 0x909E -#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F -#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 -#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 -#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 -#define GL_SQUARE_NV 0x90A3 -#define GL_ROUND_NV 0x90A4 -#define GL_TRIANGULAR_NV 0x90A5 -#define GL_BEVEL_NV 0x90A6 -#define GL_MITER_REVERT_NV 0x90A7 -#define GL_MITER_TRUNCATE_NV 0x90A8 -#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 -#define GL_USE_MISSING_GLYPH_NV 0x90AA -#define GL_PATH_ERROR_POSITION_NV 0x90AB -#define GL_PATH_FOG_GEN_MODE_NV 0x90AC -#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD -#define GL_ADJACENT_PAIRS_NV 0x90AE -#define GL_FIRST_TO_REST_NV 0x90AF -#define GL_PATH_GEN_MODE_NV 0x90B0 -#define GL_PATH_GEN_COEFF_NV 0x90B1 -#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2 -#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 -#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 -#define GL_MOVE_TO_RESETS_NV 0x90B5 -#define GL_MOVE_TO_CONTINUES_NV 0x90B6 -#define GL_PATH_STENCIL_FUNC_NV 0x90B7 -#define GL_PATH_STENCIL_REF_NV 0x90B8 -#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 -#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD -#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE -#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF -#define GL_FONT_X_MIN_BOUNDS_NV 0x00010000 -#define GL_FONT_Y_MIN_BOUNDS_NV 0x00020000 -#define GL_FONT_X_MAX_BOUNDS_NV 0x00040000 -#define GL_FONT_Y_MAX_BOUNDS_NV 0x00080000 -#define GL_FONT_UNITS_PER_EM_NV 0x00100000 -#define GL_FONT_ASCENDER_NV 0x00200000 -#define GL_FONT_DESCENDER_NV 0x00400000 -#define GL_FONT_HEIGHT_NV 0x00800000 -#define GL_FONT_MAX_ADVANCE_WIDTH_NV 0x01000000 -#define GL_FONT_MAX_ADVANCE_HEIGHT_NV 0x02000000 -#define GL_FONT_UNDERLINE_POSITION_NV 0x04000000 -#define GL_FONT_UNDERLINE_THICKNESS_NV 0x08000000 -#define GL_FONT_HAS_KERNING_NV 0x10000000 - -typedef void (GLAPIENTRY * PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); -typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHNVPROC) (GLuint name, GLenum coverMode); -typedef void (GLAPIENTRY * PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); -typedef GLuint (GLAPIENTRY * PFNGLGENPATHSNVPROC) (GLsizei range); -typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat* value); -typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint* value); -typedef void (GLAPIENTRY * PFNGLGETPATHCOMMANDSNVPROC) (GLuint name, GLubyte* commands); -typedef void (GLAPIENTRY * PFNGLGETPATHCOORDSNVPROC) (GLuint name, GLfloat* coords); -typedef void (GLAPIENTRY * PFNGLGETPATHDASHARRAYNVPROC) (GLuint name, GLfloat* dashArray); -typedef GLfloat (GLAPIENTRY * PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); -typedef void (GLAPIENTRY * PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint fistPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics); -typedef void (GLAPIENTRY * PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERFVNVPROC) (GLuint name, GLenum param, GLfloat* value); -typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERIVNVPROC) (GLuint name, GLenum param, GLint* value); -typedef void (GLAPIENTRY * PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat* value); -typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint* value); -typedef void (GLAPIENTRY * PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -typedef GLboolean (GLAPIENTRY * PFNGLISPATHNVPROC) (GLuint path); -typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); -typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat* coeffs); -typedef void (GLAPIENTRY * PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const GLvoid*coords); -typedef void (GLAPIENTRY * PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void* coords); -typedef void (GLAPIENTRY * PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum zfunc); -typedef void (GLAPIENTRY * PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat* dashArray); -typedef void (GLAPIENTRY * PFNGLPATHFOGGENNVPROC) (GLenum genMode); -typedef void (GLAPIENTRY * PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void* fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GLAPIENTRY * PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void* fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const GLvoid*charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLint units); -typedef void (GLAPIENTRY * PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GLAPIENTRY * PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void* pathString); -typedef void (GLAPIENTRY * PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const GLvoid*coords); -typedef void (GLAPIENTRY * PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void* coords); -typedef void (GLAPIENTRY * PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat* coeffs); -typedef GLboolean (GLAPIENTRY * PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat* x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); -typedef void (GLAPIENTRY * PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat* transformValues); -typedef void (GLAPIENTRY * PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint paths[], const GLfloat weights[]); - -#define glCopyPathNV GLEW_GET_FUN(__glewCopyPathNV) -#define glCoverFillPathInstancedNV GLEW_GET_FUN(__glewCoverFillPathInstancedNV) -#define glCoverFillPathNV GLEW_GET_FUN(__glewCoverFillPathNV) -#define glCoverStrokePathInstancedNV GLEW_GET_FUN(__glewCoverStrokePathInstancedNV) -#define glCoverStrokePathNV GLEW_GET_FUN(__glewCoverStrokePathNV) -#define glDeletePathsNV GLEW_GET_FUN(__glewDeletePathsNV) -#define glGenPathsNV GLEW_GET_FUN(__glewGenPathsNV) -#define glGetPathColorGenfvNV GLEW_GET_FUN(__glewGetPathColorGenfvNV) -#define glGetPathColorGenivNV GLEW_GET_FUN(__glewGetPathColorGenivNV) -#define glGetPathCommandsNV GLEW_GET_FUN(__glewGetPathCommandsNV) -#define glGetPathCoordsNV GLEW_GET_FUN(__glewGetPathCoordsNV) -#define glGetPathDashArrayNV GLEW_GET_FUN(__glewGetPathDashArrayNV) -#define glGetPathLengthNV GLEW_GET_FUN(__glewGetPathLengthNV) -#define glGetPathMetricRangeNV GLEW_GET_FUN(__glewGetPathMetricRangeNV) -#define glGetPathMetricsNV GLEW_GET_FUN(__glewGetPathMetricsNV) -#define glGetPathParameterfvNV GLEW_GET_FUN(__glewGetPathParameterfvNV) -#define glGetPathParameterivNV GLEW_GET_FUN(__glewGetPathParameterivNV) -#define glGetPathSpacingNV GLEW_GET_FUN(__glewGetPathSpacingNV) -#define glGetPathTexGenfvNV GLEW_GET_FUN(__glewGetPathTexGenfvNV) -#define glGetPathTexGenivNV GLEW_GET_FUN(__glewGetPathTexGenivNV) -#define glInterpolatePathsNV GLEW_GET_FUN(__glewInterpolatePathsNV) -#define glIsPathNV GLEW_GET_FUN(__glewIsPathNV) -#define glIsPointInFillPathNV GLEW_GET_FUN(__glewIsPointInFillPathNV) -#define glIsPointInStrokePathNV GLEW_GET_FUN(__glewIsPointInStrokePathNV) -#define glPathColorGenNV GLEW_GET_FUN(__glewPathColorGenNV) -#define glPathCommandsNV GLEW_GET_FUN(__glewPathCommandsNV) -#define glPathCoordsNV GLEW_GET_FUN(__glewPathCoordsNV) -#define glPathCoverDepthFuncNV GLEW_GET_FUN(__glewPathCoverDepthFuncNV) -#define glPathDashArrayNV GLEW_GET_FUN(__glewPathDashArrayNV) -#define glPathFogGenNV GLEW_GET_FUN(__glewPathFogGenNV) -#define glPathGlyphRangeNV GLEW_GET_FUN(__glewPathGlyphRangeNV) -#define glPathGlyphsNV GLEW_GET_FUN(__glewPathGlyphsNV) -#define glPathParameterfNV GLEW_GET_FUN(__glewPathParameterfNV) -#define glPathParameterfvNV GLEW_GET_FUN(__glewPathParameterfvNV) -#define glPathParameteriNV GLEW_GET_FUN(__glewPathParameteriNV) -#define glPathParameterivNV GLEW_GET_FUN(__glewPathParameterivNV) -#define glPathStencilDepthOffsetNV GLEW_GET_FUN(__glewPathStencilDepthOffsetNV) -#define glPathStencilFuncNV GLEW_GET_FUN(__glewPathStencilFuncNV) -#define glPathStringNV GLEW_GET_FUN(__glewPathStringNV) -#define glPathSubCommandsNV GLEW_GET_FUN(__glewPathSubCommandsNV) -#define glPathSubCoordsNV GLEW_GET_FUN(__glewPathSubCoordsNV) -#define glPathTexGenNV GLEW_GET_FUN(__glewPathTexGenNV) -#define glPointAlongPathNV GLEW_GET_FUN(__glewPointAlongPathNV) -#define glStencilFillPathInstancedNV GLEW_GET_FUN(__glewStencilFillPathInstancedNV) -#define glStencilFillPathNV GLEW_GET_FUN(__glewStencilFillPathNV) -#define glStencilStrokePathInstancedNV GLEW_GET_FUN(__glewStencilStrokePathInstancedNV) -#define glStencilStrokePathNV GLEW_GET_FUN(__glewStencilStrokePathNV) -#define glTransformPathNV GLEW_GET_FUN(__glewTransformPathNV) -#define glWeightPathsNV GLEW_GET_FUN(__glewWeightPathsNV) - -#define GLEW_NV_path_rendering GLEW_GET_VAR(__GLEW_NV_path_rendering) - -#endif /* GL_NV_path_rendering */ - -/* ------------------------- GL_NV_pixel_data_range ------------------------ */ - -#ifndef GL_NV_pixel_data_range -#define GL_NV_pixel_data_range 1 - -#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 -#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 -#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A -#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B -#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C -#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D - -typedef void (GLAPIENTRY * PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, void* pointer); - -#define glFlushPixelDataRangeNV GLEW_GET_FUN(__glewFlushPixelDataRangeNV) -#define glPixelDataRangeNV GLEW_GET_FUN(__glewPixelDataRangeNV) - -#define GLEW_NV_pixel_data_range GLEW_GET_VAR(__GLEW_NV_pixel_data_range) - -#endif /* GL_NV_pixel_data_range */ - -/* --------------------------- GL_NV_point_sprite -------------------------- */ - -#ifndef GL_NV_point_sprite -#define GL_NV_point_sprite 1 - -#define GL_POINT_SPRITE_NV 0x8861 -#define GL_COORD_REPLACE_NV 0x8862 -#define GL_POINT_SPRITE_R_MODE_NV 0x8863 - -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint* params); - -#define glPointParameteriNV GLEW_GET_FUN(__glewPointParameteriNV) -#define glPointParameterivNV GLEW_GET_FUN(__glewPointParameterivNV) - -#define GLEW_NV_point_sprite GLEW_GET_VAR(__GLEW_NV_point_sprite) - -#endif /* GL_NV_point_sprite */ - -/* -------------------------- GL_NV_present_video -------------------------- */ - -#ifndef GL_NV_present_video -#define GL_NV_present_video 1 - -#define GL_FRAME_NV 0x8E26 -#define GL_FIELDS_NV 0x8E27 -#define GL_CURRENT_TIME_NV 0x8E28 -#define GL_NUM_FILL_STREAMS_NV 0x8E29 -#define GL_PRESENT_TIME_NV 0x8E2A -#define GL_PRESENT_DURATION_NV 0x8E2B - -typedef void (GLAPIENTRY * PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); - -#define glGetVideoi64vNV GLEW_GET_FUN(__glewGetVideoi64vNV) -#define glGetVideoivNV GLEW_GET_FUN(__glewGetVideoivNV) -#define glGetVideoui64vNV GLEW_GET_FUN(__glewGetVideoui64vNV) -#define glGetVideouivNV GLEW_GET_FUN(__glewGetVideouivNV) -#define glPresentFrameDualFillNV GLEW_GET_FUN(__glewPresentFrameDualFillNV) -#define glPresentFrameKeyedNV GLEW_GET_FUN(__glewPresentFrameKeyedNV) - -#define GLEW_NV_present_video GLEW_GET_VAR(__GLEW_NV_present_video) - -#endif /* GL_NV_present_video */ - -/* ------------------------ GL_NV_primitive_restart ------------------------ */ - -#ifndef GL_NV_primitive_restart -#define GL_NV_primitive_restart 1 - -#define GL_PRIMITIVE_RESTART_NV 0x8558 -#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 - -typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void); - -#define glPrimitiveRestartIndexNV GLEW_GET_FUN(__glewPrimitiveRestartIndexNV) -#define glPrimitiveRestartNV GLEW_GET_FUN(__glewPrimitiveRestartNV) - -#define GLEW_NV_primitive_restart GLEW_GET_VAR(__GLEW_NV_primitive_restart) - -#endif /* GL_NV_primitive_restart */ - -/* ------------------------ GL_NV_register_combiners ----------------------- */ - -#ifndef GL_NV_register_combiners -#define GL_NV_register_combiners 1 - -#define GL_REGISTER_COMBINERS_NV 0x8522 -#define GL_VARIABLE_A_NV 0x8523 -#define GL_VARIABLE_B_NV 0x8524 -#define GL_VARIABLE_C_NV 0x8525 -#define GL_VARIABLE_D_NV 0x8526 -#define GL_VARIABLE_E_NV 0x8527 -#define GL_VARIABLE_F_NV 0x8528 -#define GL_VARIABLE_G_NV 0x8529 -#define GL_CONSTANT_COLOR0_NV 0x852A -#define GL_CONSTANT_COLOR1_NV 0x852B -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_SPARE0_NV 0x852E -#define GL_SPARE1_NV 0x852F -#define GL_DISCARD_NV 0x8530 -#define GL_E_TIMES_F_NV 0x8531 -#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define GL_UNSIGNED_IDENTITY_NV 0x8536 -#define GL_UNSIGNED_INVERT_NV 0x8537 -#define GL_EXPAND_NORMAL_NV 0x8538 -#define GL_EXPAND_NEGATE_NV 0x8539 -#define GL_HALF_BIAS_NORMAL_NV 0x853A -#define GL_HALF_BIAS_NEGATE_NV 0x853B -#define GL_SIGNED_IDENTITY_NV 0x853C -#define GL_SIGNED_NEGATE_NV 0x853D -#define GL_SCALE_BY_TWO_NV 0x853E -#define GL_SCALE_BY_FOUR_NV 0x853F -#define GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define GL_COMBINER_INPUT_NV 0x8542 -#define GL_COMBINER_MAPPING_NV 0x8543 -#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define GL_COMBINER_MUX_SUM_NV 0x8547 -#define GL_COMBINER_SCALE_NV 0x8548 -#define GL_COMBINER_BIAS_NV 0x8549 -#define GL_COMBINER_AB_OUTPUT_NV 0x854A -#define GL_COMBINER_CD_OUTPUT_NV 0x854B -#define GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define GL_COLOR_SUM_CLAMP_NV 0x854F -#define GL_COMBINER0_NV 0x8550 -#define GL_COMBINER1_NV 0x8551 -#define GL_COMBINER2_NV 0x8552 -#define GL_COMBINER3_NV 0x8553 -#define GL_COMBINER4_NV 0x8554 -#define GL_COMBINER5_NV 0x8555 -#define GL_COMBINER6_NV 0x8556 -#define GL_COMBINER7_NV 0x8557 - -typedef void (GLAPIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (GLAPIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint* params); - -#define glCombinerInputNV GLEW_GET_FUN(__glewCombinerInputNV) -#define glCombinerOutputNV GLEW_GET_FUN(__glewCombinerOutputNV) -#define glCombinerParameterfNV GLEW_GET_FUN(__glewCombinerParameterfNV) -#define glCombinerParameterfvNV GLEW_GET_FUN(__glewCombinerParameterfvNV) -#define glCombinerParameteriNV GLEW_GET_FUN(__glewCombinerParameteriNV) -#define glCombinerParameterivNV GLEW_GET_FUN(__glewCombinerParameterivNV) -#define glFinalCombinerInputNV GLEW_GET_FUN(__glewFinalCombinerInputNV) -#define glGetCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetCombinerInputParameterfvNV) -#define glGetCombinerInputParameterivNV GLEW_GET_FUN(__glewGetCombinerInputParameterivNV) -#define glGetCombinerOutputParameterfvNV GLEW_GET_FUN(__glewGetCombinerOutputParameterfvNV) -#define glGetCombinerOutputParameterivNV GLEW_GET_FUN(__glewGetCombinerOutputParameterivNV) -#define glGetFinalCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterfvNV) -#define glGetFinalCombinerInputParameterivNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterivNV) - -#define GLEW_NV_register_combiners GLEW_GET_VAR(__GLEW_NV_register_combiners) - -#endif /* GL_NV_register_combiners */ - -/* ----------------------- GL_NV_register_combiners2 ----------------------- */ - -#ifndef GL_NV_register_combiners2 -#define GL_NV_register_combiners2 1 - -#define GL_PER_STAGE_CONSTANTS_NV 0x8535 - -typedef void (GLAPIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat* params); - -#define glCombinerStageParameterfvNV GLEW_GET_FUN(__glewCombinerStageParameterfvNV) -#define glGetCombinerStageParameterfvNV GLEW_GET_FUN(__glewGetCombinerStageParameterfvNV) - -#define GLEW_NV_register_combiners2 GLEW_GET_VAR(__GLEW_NV_register_combiners2) - -#endif /* GL_NV_register_combiners2 */ - -/* ------------------------ GL_NV_shader_buffer_load ----------------------- */ - -#ifndef GL_NV_shader_buffer_load -#define GL_NV_shader_buffer_load 1 - -#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D -#define GL_GPU_ADDRESS_NV 0x8F34 -#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 - -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT* result); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT* params); -typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); -typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); -typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); -typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); - -#define glGetBufferParameterui64vNV GLEW_GET_FUN(__glewGetBufferParameterui64vNV) -#define glGetIntegerui64vNV GLEW_GET_FUN(__glewGetIntegerui64vNV) -#define glGetNamedBufferParameterui64vNV GLEW_GET_FUN(__glewGetNamedBufferParameterui64vNV) -#define glIsBufferResidentNV GLEW_GET_FUN(__glewIsBufferResidentNV) -#define glIsNamedBufferResidentNV GLEW_GET_FUN(__glewIsNamedBufferResidentNV) -#define glMakeBufferNonResidentNV GLEW_GET_FUN(__glewMakeBufferNonResidentNV) -#define glMakeBufferResidentNV GLEW_GET_FUN(__glewMakeBufferResidentNV) -#define glMakeNamedBufferNonResidentNV GLEW_GET_FUN(__glewMakeNamedBufferNonResidentNV) -#define glMakeNamedBufferResidentNV GLEW_GET_FUN(__glewMakeNamedBufferResidentNV) -#define glProgramUniformui64NV GLEW_GET_FUN(__glewProgramUniformui64NV) -#define glProgramUniformui64vNV GLEW_GET_FUN(__glewProgramUniformui64vNV) -#define glUniformui64NV GLEW_GET_FUN(__glewUniformui64NV) -#define glUniformui64vNV GLEW_GET_FUN(__glewUniformui64vNV) - -#define GLEW_NV_shader_buffer_load GLEW_GET_VAR(__GLEW_NV_shader_buffer_load) - -#endif /* GL_NV_shader_buffer_load */ - -/* ---------------------- GL_NV_tessellation_program5 ---------------------- */ - -#ifndef GL_NV_tessellation_program5 -#define GL_NV_tessellation_program5 1 - -#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 -#define GL_TESS_CONTROL_PROGRAM_NV 0x891E -#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F -#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 -#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 - -#define GLEW_NV_tessellation_program5 GLEW_GET_VAR(__GLEW_NV_tessellation_program5) - -#endif /* GL_NV_tessellation_program5 */ - -/* -------------------------- GL_NV_texgen_emboss -------------------------- */ - -#ifndef GL_NV_texgen_emboss -#define GL_NV_texgen_emboss 1 - -#define GL_EMBOSS_LIGHT_NV 0x855D -#define GL_EMBOSS_CONSTANT_NV 0x855E -#define GL_EMBOSS_MAP_NV 0x855F - -#define GLEW_NV_texgen_emboss GLEW_GET_VAR(__GLEW_NV_texgen_emboss) - -#endif /* GL_NV_texgen_emboss */ - -/* ------------------------ GL_NV_texgen_reflection ------------------------ */ - -#ifndef GL_NV_texgen_reflection -#define GL_NV_texgen_reflection 1 - -#define GL_NORMAL_MAP_NV 0x8511 -#define GL_REFLECTION_MAP_NV 0x8512 - -#define GLEW_NV_texgen_reflection GLEW_GET_VAR(__GLEW_NV_texgen_reflection) - -#endif /* GL_NV_texgen_reflection */ - -/* ------------------------- GL_NV_texture_barrier ------------------------- */ - -#ifndef GL_NV_texture_barrier -#define GL_NV_texture_barrier 1 - -typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void); - -#define glTextureBarrierNV GLEW_GET_FUN(__glewTextureBarrierNV) - -#define GLEW_NV_texture_barrier GLEW_GET_VAR(__GLEW_NV_texture_barrier) - -#endif /* GL_NV_texture_barrier */ - -/* --------------------- GL_NV_texture_compression_vtc --------------------- */ - -#ifndef GL_NV_texture_compression_vtc -#define GL_NV_texture_compression_vtc 1 - -#define GLEW_NV_texture_compression_vtc GLEW_GET_VAR(__GLEW_NV_texture_compression_vtc) - -#endif /* GL_NV_texture_compression_vtc */ - -/* ----------------------- GL_NV_texture_env_combine4 ---------------------- */ - -#ifndef GL_NV_texture_env_combine4 -#define GL_NV_texture_env_combine4 1 - -#define GL_COMBINE4_NV 0x8503 -#define GL_SOURCE3_RGB_NV 0x8583 -#define GL_SOURCE3_ALPHA_NV 0x858B -#define GL_OPERAND3_RGB_NV 0x8593 -#define GL_OPERAND3_ALPHA_NV 0x859B - -#define GLEW_NV_texture_env_combine4 GLEW_GET_VAR(__GLEW_NV_texture_env_combine4) - -#endif /* GL_NV_texture_env_combine4 */ - -/* ---------------------- GL_NV_texture_expand_normal ---------------------- */ - -#ifndef GL_NV_texture_expand_normal -#define GL_NV_texture_expand_normal 1 - -#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F - -#define GLEW_NV_texture_expand_normal GLEW_GET_VAR(__GLEW_NV_texture_expand_normal) - -#endif /* GL_NV_texture_expand_normal */ - -/* ----------------------- GL_NV_texture_multisample ----------------------- */ - -#ifndef GL_NV_texture_multisample -#define GL_NV_texture_multisample 1 - -#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 -#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 - -typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); - -#define glTexImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage2DMultisampleCoverageNV) -#define glTexImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage3DMultisampleCoverageNV) -#define glTextureImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage2DMultisampleCoverageNV) -#define glTextureImage2DMultisampleNV GLEW_GET_FUN(__glewTextureImage2DMultisampleNV) -#define glTextureImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage3DMultisampleCoverageNV) -#define glTextureImage3DMultisampleNV GLEW_GET_FUN(__glewTextureImage3DMultisampleNV) - -#define GLEW_NV_texture_multisample GLEW_GET_VAR(__GLEW_NV_texture_multisample) - -#endif /* GL_NV_texture_multisample */ - -/* ------------------------ GL_NV_texture_rectangle ------------------------ */ - -#ifndef GL_NV_texture_rectangle -#define GL_NV_texture_rectangle 1 - -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 - -#define GLEW_NV_texture_rectangle GLEW_GET_VAR(__GLEW_NV_texture_rectangle) - -#endif /* GL_NV_texture_rectangle */ - -/* -------------------------- GL_NV_texture_shader ------------------------- */ - -#ifndef GL_NV_texture_shader -#define GL_NV_texture_shader 1 - -#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_SHADER_CONSISTENT_NV 0x86DD -#define GL_TEXTURE_SHADER_NV 0x86DE -#define GL_SHADER_OPERATION_NV 0x86DF -#define GL_CULL_MODES_NV 0x86E0 -#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3 -#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define GL_CONST_EYE_NV 0x86E5 -#define GL_PASS_THROUGH_NV 0x86E6 -#define GL_CULL_FRAGMENT_NV 0x86E7 -#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define GL_DOT_PRODUCT_NV 0x86EC -#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define GL_HI_SCALE_NV 0x870E -#define GL_LO_SCALE_NV 0x870F -#define GL_DS_SCALE_NV 0x8710 -#define GL_DT_SCALE_NV 0x8711 -#define GL_MAGNITUDE_SCALE_NV 0x8712 -#define GL_VIBRANCE_SCALE_NV 0x8713 -#define GL_HI_BIAS_NV 0x8714 -#define GL_LO_BIAS_NV 0x8715 -#define GL_DS_BIAS_NV 0x8716 -#define GL_DT_BIAS_NV 0x8717 -#define GL_MAGNITUDE_BIAS_NV 0x8718 -#define GL_VIBRANCE_BIAS_NV 0x8719 -#define GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define GL_TEXTURE_HI_SIZE_NV 0x871B -#define GL_TEXTURE_LO_SIZE_NV 0x871C -#define GL_TEXTURE_DS_SIZE_NV 0x871D -#define GL_TEXTURE_DT_SIZE_NV 0x871E -#define GL_TEXTURE_MAG_SIZE_NV 0x871F - -#define GLEW_NV_texture_shader GLEW_GET_VAR(__GLEW_NV_texture_shader) - -#endif /* GL_NV_texture_shader */ - -/* ------------------------- GL_NV_texture_shader2 ------------------------- */ - -#ifndef GL_NV_texture_shader2 -#define GL_NV_texture_shader2 1 - -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D - -#define GLEW_NV_texture_shader2 GLEW_GET_VAR(__GLEW_NV_texture_shader2) - -#endif /* GL_NV_texture_shader2 */ - -/* ------------------------- GL_NV_texture_shader3 ------------------------- */ - -#ifndef GL_NV_texture_shader3 -#define GL_NV_texture_shader3 1 - -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 -#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 -#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 -#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 -#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 -#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A -#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B -#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C -#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D -#define GL_HILO8_NV 0x885E -#define GL_SIGNED_HILO8_NV 0x885F -#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 - -#define GLEW_NV_texture_shader3 GLEW_GET_VAR(__GLEW_NV_texture_shader3) - -#endif /* GL_NV_texture_shader3 */ - -/* ------------------------ GL_NV_transform_feedback ----------------------- */ - -#ifndef GL_NV_transform_feedback -#define GL_NV_transform_feedback 1 - -#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 -#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 -#define GL_TEXTURE_COORD_NV 0x8C79 -#define GL_CLIP_DISTANCE_NV 0x8C7A -#define GL_VERTEX_ID_NV 0x8C7B -#define GL_PRIMITIVE_ID_NV 0x8C7C -#define GL_GENERIC_ATTRIB_NV 0x8C7D -#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 -#define GL_ACTIVE_VARYINGS_NV 0x8C81 -#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 -#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 -#define GL_PRIMITIVES_GENERATED_NV 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 -#define GL_RASTERIZER_DISCARD_NV 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C -#define GL_SEPARATE_ATTRIBS_NV 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F - -typedef void (GLAPIENTRY * PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); -typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); -typedef GLint (GLAPIENTRY * PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); - -#define glActiveVaryingNV GLEW_GET_FUN(__glewActiveVaryingNV) -#define glBeginTransformFeedbackNV GLEW_GET_FUN(__glewBeginTransformFeedbackNV) -#define glBindBufferBaseNV GLEW_GET_FUN(__glewBindBufferBaseNV) -#define glBindBufferOffsetNV GLEW_GET_FUN(__glewBindBufferOffsetNV) -#define glBindBufferRangeNV GLEW_GET_FUN(__glewBindBufferRangeNV) -#define glEndTransformFeedbackNV GLEW_GET_FUN(__glewEndTransformFeedbackNV) -#define glGetActiveVaryingNV GLEW_GET_FUN(__glewGetActiveVaryingNV) -#define glGetTransformFeedbackVaryingNV GLEW_GET_FUN(__glewGetTransformFeedbackVaryingNV) -#define glGetVaryingLocationNV GLEW_GET_FUN(__glewGetVaryingLocationNV) -#define glTransformFeedbackAttribsNV GLEW_GET_FUN(__glewTransformFeedbackAttribsNV) -#define glTransformFeedbackVaryingsNV GLEW_GET_FUN(__glewTransformFeedbackVaryingsNV) - -#define GLEW_NV_transform_feedback GLEW_GET_VAR(__GLEW_NV_transform_feedback) - -#endif /* GL_NV_transform_feedback */ - -/* ----------------------- GL_NV_transform_feedback2 ----------------------- */ - -#ifndef GL_NV_transform_feedback2 -#define GL_NV_transform_feedback2 1 - -#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 - -typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); -typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint* ids); -typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); - -#define glBindTransformFeedbackNV GLEW_GET_FUN(__glewBindTransformFeedbackNV) -#define glDeleteTransformFeedbacksNV GLEW_GET_FUN(__glewDeleteTransformFeedbacksNV) -#define glDrawTransformFeedbackNV GLEW_GET_FUN(__glewDrawTransformFeedbackNV) -#define glGenTransformFeedbacksNV GLEW_GET_FUN(__glewGenTransformFeedbacksNV) -#define glIsTransformFeedbackNV GLEW_GET_FUN(__glewIsTransformFeedbackNV) -#define glPauseTransformFeedbackNV GLEW_GET_FUN(__glewPauseTransformFeedbackNV) -#define glResumeTransformFeedbackNV GLEW_GET_FUN(__glewResumeTransformFeedbackNV) - -#define GLEW_NV_transform_feedback2 GLEW_GET_VAR(__GLEW_NV_transform_feedback2) - -#endif /* GL_NV_transform_feedback2 */ - -/* -------------------------- GL_NV_vdpau_interop -------------------------- */ - -#ifndef GL_NV_vdpau_interop -#define GL_NV_vdpau_interop 1 - -#define GL_SURFACE_STATE_NV 0x86EB -#define GL_SURFACE_REGISTERED_NV 0x86FD -#define GL_SURFACE_MAPPED_NV 0x8700 -#define GL_WRITE_DISCARD_NV 0x88BE - -typedef GLintptr GLvdpauSurfaceNV; - -typedef void (GLAPIENTRY * PFNGLVDPAUFININVPROC) (void); -typedef void (GLAPIENTRY * PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values); -typedef void (GLAPIENTRY * PFNGLVDPAUINITNVPROC) (const void* vdpDevice, const GLvoid*getProcAddress); -typedef void (GLAPIENTRY * PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); -typedef void (GLAPIENTRY * PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces); -typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef void (GLAPIENTRY * PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); -typedef void (GLAPIENTRY * PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces); -typedef void (GLAPIENTRY * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); - -#define glVDPAUFiniNV GLEW_GET_FUN(__glewVDPAUFiniNV) -#define glVDPAUGetSurfaceivNV GLEW_GET_FUN(__glewVDPAUGetSurfaceivNV) -#define glVDPAUInitNV GLEW_GET_FUN(__glewVDPAUInitNV) -#define glVDPAUIsSurfaceNV GLEW_GET_FUN(__glewVDPAUIsSurfaceNV) -#define glVDPAUMapSurfacesNV GLEW_GET_FUN(__glewVDPAUMapSurfacesNV) -#define glVDPAURegisterOutputSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterOutputSurfaceNV) -#define glVDPAURegisterVideoSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceNV) -#define glVDPAUSurfaceAccessNV GLEW_GET_FUN(__glewVDPAUSurfaceAccessNV) -#define glVDPAUUnmapSurfacesNV GLEW_GET_FUN(__glewVDPAUUnmapSurfacesNV) -#define glVDPAUUnregisterSurfaceNV GLEW_GET_FUN(__glewVDPAUUnregisterSurfaceNV) - -#define GLEW_NV_vdpau_interop GLEW_GET_VAR(__GLEW_NV_vdpau_interop) - -#endif /* GL_NV_vdpau_interop */ - -/* ------------------------ GL_NV_vertex_array_range ----------------------- */ - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range 1 - -#define GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 - -typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, void* pointer); - -#define glFlushVertexArrayRangeNV GLEW_GET_FUN(__glewFlushVertexArrayRangeNV) -#define glVertexArrayRangeNV GLEW_GET_FUN(__glewVertexArrayRangeNV) - -#define GLEW_NV_vertex_array_range GLEW_GET_VAR(__GLEW_NV_vertex_array_range) - -#endif /* GL_NV_vertex_array_range */ - -/* ----------------------- GL_NV_vertex_array_range2 ----------------------- */ - -#ifndef GL_NV_vertex_array_range2 -#define GL_NV_vertex_array_range2 1 - -#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 - -#define GLEW_NV_vertex_array_range2 GLEW_GET_VAR(__GLEW_NV_vertex_array_range2) - -#endif /* GL_NV_vertex_array_range2 */ - -/* ------------------- GL_NV_vertex_attrib_integer_64bit ------------------- */ - -#ifndef GL_NV_vertex_attrib_integer_64bit -#define GL_NV_vertex_attrib_integer_64bit 1 - -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F - -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); - -#define glGetVertexAttribLi64vNV GLEW_GET_FUN(__glewGetVertexAttribLi64vNV) -#define glGetVertexAttribLui64vNV GLEW_GET_FUN(__glewGetVertexAttribLui64vNV) -#define glVertexAttribL1i64NV GLEW_GET_FUN(__glewVertexAttribL1i64NV) -#define glVertexAttribL1i64vNV GLEW_GET_FUN(__glewVertexAttribL1i64vNV) -#define glVertexAttribL1ui64NV GLEW_GET_FUN(__glewVertexAttribL1ui64NV) -#define glVertexAttribL1ui64vNV GLEW_GET_FUN(__glewVertexAttribL1ui64vNV) -#define glVertexAttribL2i64NV GLEW_GET_FUN(__glewVertexAttribL2i64NV) -#define glVertexAttribL2i64vNV GLEW_GET_FUN(__glewVertexAttribL2i64vNV) -#define glVertexAttribL2ui64NV GLEW_GET_FUN(__glewVertexAttribL2ui64NV) -#define glVertexAttribL2ui64vNV GLEW_GET_FUN(__glewVertexAttribL2ui64vNV) -#define glVertexAttribL3i64NV GLEW_GET_FUN(__glewVertexAttribL3i64NV) -#define glVertexAttribL3i64vNV GLEW_GET_FUN(__glewVertexAttribL3i64vNV) -#define glVertexAttribL3ui64NV GLEW_GET_FUN(__glewVertexAttribL3ui64NV) -#define glVertexAttribL3ui64vNV GLEW_GET_FUN(__glewVertexAttribL3ui64vNV) -#define glVertexAttribL4i64NV GLEW_GET_FUN(__glewVertexAttribL4i64NV) -#define glVertexAttribL4i64vNV GLEW_GET_FUN(__glewVertexAttribL4i64vNV) -#define glVertexAttribL4ui64NV GLEW_GET_FUN(__glewVertexAttribL4ui64NV) -#define glVertexAttribL4ui64vNV GLEW_GET_FUN(__glewVertexAttribL4ui64vNV) -#define glVertexAttribLFormatNV GLEW_GET_FUN(__glewVertexAttribLFormatNV) - -#define GLEW_NV_vertex_attrib_integer_64bit GLEW_GET_VAR(__GLEW_NV_vertex_attrib_integer_64bit) - -#endif /* GL_NV_vertex_attrib_integer_64bit */ - -/* ------------------- GL_NV_vertex_buffer_unified_memory ------------------ */ - -#ifndef GL_NV_vertex_buffer_unified_memory -#define GL_NV_vertex_buffer_unified_memory 1 - -#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E -#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F -#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 -#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 -#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 -#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 -#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 -#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 -#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 -#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 -#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 -#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 -#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A -#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B -#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C -#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D -#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E -#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F -#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 -#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 -#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 -#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 -#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 -#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 -#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 - -typedef void (GLAPIENTRY * PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -typedef void (GLAPIENTRY * PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT result[]); -typedef void (GLAPIENTRY * PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); - -#define glBufferAddressRangeNV GLEW_GET_FUN(__glewBufferAddressRangeNV) -#define glColorFormatNV GLEW_GET_FUN(__glewColorFormatNV) -#define glEdgeFlagFormatNV GLEW_GET_FUN(__glewEdgeFlagFormatNV) -#define glFogCoordFormatNV GLEW_GET_FUN(__glewFogCoordFormatNV) -#define glGetIntegerui64i_vNV GLEW_GET_FUN(__glewGetIntegerui64i_vNV) -#define glIndexFormatNV GLEW_GET_FUN(__glewIndexFormatNV) -#define glNormalFormatNV GLEW_GET_FUN(__glewNormalFormatNV) -#define glSecondaryColorFormatNV GLEW_GET_FUN(__glewSecondaryColorFormatNV) -#define glTexCoordFormatNV GLEW_GET_FUN(__glewTexCoordFormatNV) -#define glVertexAttribFormatNV GLEW_GET_FUN(__glewVertexAttribFormatNV) -#define glVertexAttribIFormatNV GLEW_GET_FUN(__glewVertexAttribIFormatNV) -#define glVertexFormatNV GLEW_GET_FUN(__glewVertexFormatNV) - -#define GLEW_NV_vertex_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_vertex_buffer_unified_memory) - -#endif /* GL_NV_vertex_buffer_unified_memory */ - -/* -------------------------- GL_NV_vertex_program ------------------------- */ - -#ifndef GL_NV_vertex_program -#define GL_NV_vertex_program 1 - -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define GL_CURRENT_ATTRIB_NV 0x8626 -#define GL_PROGRAM_LENGTH_NV 0x8627 -#define GL_PROGRAM_STRING_NV 0x8628 -#define GL_MODELVIEW_PROJECTION_NV 0x8629 -#define GL_IDENTITY_NV 0x862A -#define GL_INVERSE_NV 0x862B -#define GL_TRANSPOSE_NV 0x862C -#define GL_INVERSE_TRANSPOSE_NV 0x862D -#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define GL_MAX_TRACK_MATRICES_NV 0x862F -#define GL_MATRIX0_NV 0x8630 -#define GL_MATRIX1_NV 0x8631 -#define GL_MATRIX2_NV 0x8632 -#define GL_MATRIX3_NV 0x8633 -#define GL_MATRIX4_NV 0x8634 -#define GL_MATRIX5_NV 0x8635 -#define GL_MATRIX6_NV 0x8636 -#define GL_MATRIX7_NV 0x8637 -#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define GL_CURRENT_MATRIX_NV 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define GL_PROGRAM_PARAMETER_NV 0x8644 -#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define GL_PROGRAM_TARGET_NV 0x8646 -#define GL_PROGRAM_RESIDENT_NV 0x8647 -#define GL_TRACK_MATRIX_NV 0x8648 -#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F - -typedef GLboolean (GLAPIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint* ids, GLboolean *residences); -typedef void (GLAPIENTRY * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte* program); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid** pointer); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMNVPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte* program); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei n, const GLubyte* v); - -#define glAreProgramsResidentNV GLEW_GET_FUN(__glewAreProgramsResidentNV) -#define glBindProgramNV GLEW_GET_FUN(__glewBindProgramNV) -#define glDeleteProgramsNV GLEW_GET_FUN(__glewDeleteProgramsNV) -#define glExecuteProgramNV GLEW_GET_FUN(__glewExecuteProgramNV) -#define glGenProgramsNV GLEW_GET_FUN(__glewGenProgramsNV) -#define glGetProgramParameterdvNV GLEW_GET_FUN(__glewGetProgramParameterdvNV) -#define glGetProgramParameterfvNV GLEW_GET_FUN(__glewGetProgramParameterfvNV) -#define glGetProgramStringNV GLEW_GET_FUN(__glewGetProgramStringNV) -#define glGetProgramivNV GLEW_GET_FUN(__glewGetProgramivNV) -#define glGetTrackMatrixivNV GLEW_GET_FUN(__glewGetTrackMatrixivNV) -#define glGetVertexAttribPointervNV GLEW_GET_FUN(__glewGetVertexAttribPointervNV) -#define glGetVertexAttribdvNV GLEW_GET_FUN(__glewGetVertexAttribdvNV) -#define glGetVertexAttribfvNV GLEW_GET_FUN(__glewGetVertexAttribfvNV) -#define glGetVertexAttribivNV GLEW_GET_FUN(__glewGetVertexAttribivNV) -#define glIsProgramNV GLEW_GET_FUN(__glewIsProgramNV) -#define glLoadProgramNV GLEW_GET_FUN(__glewLoadProgramNV) -#define glProgramParameter4dNV GLEW_GET_FUN(__glewProgramParameter4dNV) -#define glProgramParameter4dvNV GLEW_GET_FUN(__glewProgramParameter4dvNV) -#define glProgramParameter4fNV GLEW_GET_FUN(__glewProgramParameter4fNV) -#define glProgramParameter4fvNV GLEW_GET_FUN(__glewProgramParameter4fvNV) -#define glProgramParameters4dvNV GLEW_GET_FUN(__glewProgramParameters4dvNV) -#define glProgramParameters4fvNV GLEW_GET_FUN(__glewProgramParameters4fvNV) -#define glRequestResidentProgramsNV GLEW_GET_FUN(__glewRequestResidentProgramsNV) -#define glTrackMatrixNV GLEW_GET_FUN(__glewTrackMatrixNV) -#define glVertexAttrib1dNV GLEW_GET_FUN(__glewVertexAttrib1dNV) -#define glVertexAttrib1dvNV GLEW_GET_FUN(__glewVertexAttrib1dvNV) -#define glVertexAttrib1fNV GLEW_GET_FUN(__glewVertexAttrib1fNV) -#define glVertexAttrib1fvNV GLEW_GET_FUN(__glewVertexAttrib1fvNV) -#define glVertexAttrib1sNV GLEW_GET_FUN(__glewVertexAttrib1sNV) -#define glVertexAttrib1svNV GLEW_GET_FUN(__glewVertexAttrib1svNV) -#define glVertexAttrib2dNV GLEW_GET_FUN(__glewVertexAttrib2dNV) -#define glVertexAttrib2dvNV GLEW_GET_FUN(__glewVertexAttrib2dvNV) -#define glVertexAttrib2fNV GLEW_GET_FUN(__glewVertexAttrib2fNV) -#define glVertexAttrib2fvNV GLEW_GET_FUN(__glewVertexAttrib2fvNV) -#define glVertexAttrib2sNV GLEW_GET_FUN(__glewVertexAttrib2sNV) -#define glVertexAttrib2svNV GLEW_GET_FUN(__glewVertexAttrib2svNV) -#define glVertexAttrib3dNV GLEW_GET_FUN(__glewVertexAttrib3dNV) -#define glVertexAttrib3dvNV GLEW_GET_FUN(__glewVertexAttrib3dvNV) -#define glVertexAttrib3fNV GLEW_GET_FUN(__glewVertexAttrib3fNV) -#define glVertexAttrib3fvNV GLEW_GET_FUN(__glewVertexAttrib3fvNV) -#define glVertexAttrib3sNV GLEW_GET_FUN(__glewVertexAttrib3sNV) -#define glVertexAttrib3svNV GLEW_GET_FUN(__glewVertexAttrib3svNV) -#define glVertexAttrib4dNV GLEW_GET_FUN(__glewVertexAttrib4dNV) -#define glVertexAttrib4dvNV GLEW_GET_FUN(__glewVertexAttrib4dvNV) -#define glVertexAttrib4fNV GLEW_GET_FUN(__glewVertexAttrib4fNV) -#define glVertexAttrib4fvNV GLEW_GET_FUN(__glewVertexAttrib4fvNV) -#define glVertexAttrib4sNV GLEW_GET_FUN(__glewVertexAttrib4sNV) -#define glVertexAttrib4svNV GLEW_GET_FUN(__glewVertexAttrib4svNV) -#define glVertexAttrib4ubNV GLEW_GET_FUN(__glewVertexAttrib4ubNV) -#define glVertexAttrib4ubvNV GLEW_GET_FUN(__glewVertexAttrib4ubvNV) -#define glVertexAttribPointerNV GLEW_GET_FUN(__glewVertexAttribPointerNV) -#define glVertexAttribs1dvNV GLEW_GET_FUN(__glewVertexAttribs1dvNV) -#define glVertexAttribs1fvNV GLEW_GET_FUN(__glewVertexAttribs1fvNV) -#define glVertexAttribs1svNV GLEW_GET_FUN(__glewVertexAttribs1svNV) -#define glVertexAttribs2dvNV GLEW_GET_FUN(__glewVertexAttribs2dvNV) -#define glVertexAttribs2fvNV GLEW_GET_FUN(__glewVertexAttribs2fvNV) -#define glVertexAttribs2svNV GLEW_GET_FUN(__glewVertexAttribs2svNV) -#define glVertexAttribs3dvNV GLEW_GET_FUN(__glewVertexAttribs3dvNV) -#define glVertexAttribs3fvNV GLEW_GET_FUN(__glewVertexAttribs3fvNV) -#define glVertexAttribs3svNV GLEW_GET_FUN(__glewVertexAttribs3svNV) -#define glVertexAttribs4dvNV GLEW_GET_FUN(__glewVertexAttribs4dvNV) -#define glVertexAttribs4fvNV GLEW_GET_FUN(__glewVertexAttribs4fvNV) -#define glVertexAttribs4svNV GLEW_GET_FUN(__glewVertexAttribs4svNV) -#define glVertexAttribs4ubvNV GLEW_GET_FUN(__glewVertexAttribs4ubvNV) - -#define GLEW_NV_vertex_program GLEW_GET_VAR(__GLEW_NV_vertex_program) - -#endif /* GL_NV_vertex_program */ - -/* ------------------------ GL_NV_vertex_program1_1 ------------------------ */ - -#ifndef GL_NV_vertex_program1_1 -#define GL_NV_vertex_program1_1 1 - -#define GLEW_NV_vertex_program1_1 GLEW_GET_VAR(__GLEW_NV_vertex_program1_1) - -#endif /* GL_NV_vertex_program1_1 */ - -/* ------------------------- GL_NV_vertex_program2 ------------------------- */ - -#ifndef GL_NV_vertex_program2 -#define GL_NV_vertex_program2 1 - -#define GLEW_NV_vertex_program2 GLEW_GET_VAR(__GLEW_NV_vertex_program2) - -#endif /* GL_NV_vertex_program2 */ - -/* ---------------------- GL_NV_vertex_program2_option --------------------- */ - -#ifndef GL_NV_vertex_program2_option -#define GL_NV_vertex_program2_option 1 - -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 - -#define GLEW_NV_vertex_program2_option GLEW_GET_VAR(__GLEW_NV_vertex_program2_option) - -#endif /* GL_NV_vertex_program2_option */ - -/* ------------------------- GL_NV_vertex_program3 ------------------------- */ - -#ifndef GL_NV_vertex_program3 -#define GL_NV_vertex_program3 1 - -#define MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C - -#define GLEW_NV_vertex_program3 GLEW_GET_VAR(__GLEW_NV_vertex_program3) - -#endif /* GL_NV_vertex_program3 */ - -/* ------------------------- GL_NV_vertex_program4 ------------------------- */ - -#ifndef GL_NV_vertex_program4 -#define GL_NV_vertex_program4 1 - -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD - -#define GLEW_NV_vertex_program4 GLEW_GET_VAR(__GLEW_NV_vertex_program4) - -#endif /* GL_NV_vertex_program4 */ - -/* -------------------------- GL_NV_video_capture -------------------------- */ - -#ifndef GL_NV_video_capture -#define GL_NV_video_capture 1 - -#define GL_VIDEO_BUFFER_NV 0x9020 -#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 -#define GL_FIELD_UPPER_NV 0x9022 -#define GL_FIELD_LOWER_NV 0x9023 -#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 -#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 -#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 -#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 -#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 -#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 -#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A -#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B -#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C -#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D -#define GL_PARTIAL_SUCCESS_NV 0x902E -#define GL_SUCCESS_NV 0x902F -#define GL_FAILURE_NV 0x9030 -#define GL_YCBYCR8_422_NV 0x9031 -#define GL_YCBAYCR8A_4224_NV 0x9032 -#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 -#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 -#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 -#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 -#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 -#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 -#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 -#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A -#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B -#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C - -typedef void (GLAPIENTRY * PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -typedef void (GLAPIENTRY * PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint* params); -typedef GLenum (GLAPIENTRY * PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint* sequence_num, GLuint64EXT *capture_time); -typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params); - -#define glBeginVideoCaptureNV GLEW_GET_FUN(__glewBeginVideoCaptureNV) -#define glBindVideoCaptureStreamBufferNV GLEW_GET_FUN(__glewBindVideoCaptureStreamBufferNV) -#define glBindVideoCaptureStreamTextureNV GLEW_GET_FUN(__glewBindVideoCaptureStreamTextureNV) -#define glEndVideoCaptureNV GLEW_GET_FUN(__glewEndVideoCaptureNV) -#define glGetVideoCaptureStreamdvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamdvNV) -#define glGetVideoCaptureStreamfvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamfvNV) -#define glGetVideoCaptureStreamivNV GLEW_GET_FUN(__glewGetVideoCaptureStreamivNV) -#define glGetVideoCaptureivNV GLEW_GET_FUN(__glewGetVideoCaptureivNV) -#define glVideoCaptureNV GLEW_GET_FUN(__glewVideoCaptureNV) -#define glVideoCaptureStreamParameterdvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterdvNV) -#define glVideoCaptureStreamParameterfvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterfvNV) -#define glVideoCaptureStreamParameterivNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterivNV) - -#define GLEW_NV_video_capture GLEW_GET_VAR(__GLEW_NV_video_capture) - -#endif /* GL_NV_video_capture */ - -/* ------------------------ GL_OES_byte_coordinates ------------------------ */ - -#ifndef GL_OES_byte_coordinates -#define GL_OES_byte_coordinates 1 - -#define GL_BYTE 0x1400 - -#define GLEW_OES_byte_coordinates GLEW_GET_VAR(__GLEW_OES_byte_coordinates) - -#endif /* GL_OES_byte_coordinates */ - -/* ------------------- GL_OES_compressed_paletted_texture ------------------ */ - -#ifndef GL_OES_compressed_paletted_texture -#define GL_OES_compressed_paletted_texture 1 - -#define GL_PALETTE4_RGB8_OES 0x8B90 -#define GL_PALETTE4_RGBA8_OES 0x8B91 -#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 -#define GL_PALETTE4_RGBA4_OES 0x8B93 -#define GL_PALETTE4_RGB5_A1_OES 0x8B94 -#define GL_PALETTE8_RGB8_OES 0x8B95 -#define GL_PALETTE8_RGBA8_OES 0x8B96 -#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 -#define GL_PALETTE8_RGBA4_OES 0x8B98 -#define GL_PALETTE8_RGB5_A1_OES 0x8B99 - -#define GLEW_OES_compressed_paletted_texture GLEW_GET_VAR(__GLEW_OES_compressed_paletted_texture) - -#endif /* GL_OES_compressed_paletted_texture */ - -/* --------------------------- GL_OES_read_format -------------------------- */ - -#ifndef GL_OES_read_format -#define GL_OES_read_format 1 - -#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B - -#define GLEW_OES_read_format GLEW_GET_VAR(__GLEW_OES_read_format) - -#endif /* GL_OES_read_format */ - -/* ------------------------ GL_OES_single_precision ------------------------ */ - -#ifndef GL_OES_single_precision -#define GL_OES_single_precision 1 - -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFOESPROC) (GLclampd depth); -typedef void (GLAPIENTRY * PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat* equation); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); -typedef void (GLAPIENTRY * PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat* equation); -typedef void (GLAPIENTRY * PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); - -#define glClearDepthfOES GLEW_GET_FUN(__glewClearDepthfOES) -#define glClipPlanefOES GLEW_GET_FUN(__glewClipPlanefOES) -#define glDepthRangefOES GLEW_GET_FUN(__glewDepthRangefOES) -#define glFrustumfOES GLEW_GET_FUN(__glewFrustumfOES) -#define glGetClipPlanefOES GLEW_GET_FUN(__glewGetClipPlanefOES) -#define glOrthofOES GLEW_GET_FUN(__glewOrthofOES) - -#define GLEW_OES_single_precision GLEW_GET_VAR(__GLEW_OES_single_precision) - -#endif /* GL_OES_single_precision */ - -/* ---------------------------- GL_OML_interlace --------------------------- */ - -#ifndef GL_OML_interlace -#define GL_OML_interlace 1 - -#define GL_INTERLACE_OML 0x8980 -#define GL_INTERLACE_READ_OML 0x8981 - -#define GLEW_OML_interlace GLEW_GET_VAR(__GLEW_OML_interlace) - -#endif /* GL_OML_interlace */ - -/* ---------------------------- GL_OML_resample ---------------------------- */ - -#ifndef GL_OML_resample -#define GL_OML_resample 1 - -#define GL_PACK_RESAMPLE_OML 0x8984 -#define GL_UNPACK_RESAMPLE_OML 0x8985 -#define GL_RESAMPLE_REPLICATE_OML 0x8986 -#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 -#define GL_RESAMPLE_AVERAGE_OML 0x8988 -#define GL_RESAMPLE_DECIMATE_OML 0x8989 - -#define GLEW_OML_resample GLEW_GET_VAR(__GLEW_OML_resample) - -#endif /* GL_OML_resample */ - -/* ---------------------------- GL_OML_subsample --------------------------- */ - -#ifndef GL_OML_subsample -#define GL_OML_subsample 1 - -#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 -#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 - -#define GLEW_OML_subsample GLEW_GET_VAR(__GLEW_OML_subsample) - -#endif /* GL_OML_subsample */ - -/* --------------------------- GL_PGI_misc_hints --------------------------- */ - -#ifndef GL_PGI_misc_hints -#define GL_PGI_misc_hints 1 - -#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 107000 -#define GL_CONSERVE_MEMORY_HINT_PGI 107005 -#define GL_RECLAIM_MEMORY_HINT_PGI 107006 -#define GL_NATIVE_GRAPHICS_HANDLE_PGI 107010 -#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011 -#define GL_NATIVE_GRAPHICS_END_HINT_PGI 107012 -#define GL_ALWAYS_FAST_HINT_PGI 107020 -#define GL_ALWAYS_SOFT_HINT_PGI 107021 -#define GL_ALLOW_DRAW_OBJ_HINT_PGI 107022 -#define GL_ALLOW_DRAW_WIN_HINT_PGI 107023 -#define GL_ALLOW_DRAW_FRG_HINT_PGI 107024 -#define GL_ALLOW_DRAW_MEM_HINT_PGI 107025 -#define GL_STRICT_DEPTHFUNC_HINT_PGI 107030 -#define GL_STRICT_LIGHTING_HINT_PGI 107031 -#define GL_STRICT_SCISSOR_HINT_PGI 107032 -#define GL_FULL_STIPPLE_HINT_PGI 107033 -#define GL_CLIP_NEAR_HINT_PGI 107040 -#define GL_CLIP_FAR_HINT_PGI 107041 -#define GL_WIDE_LINE_HINT_PGI 107042 -#define GL_BACK_NORMALS_HINT_PGI 107043 - -#define GLEW_PGI_misc_hints GLEW_GET_VAR(__GLEW_PGI_misc_hints) - -#endif /* GL_PGI_misc_hints */ - -/* -------------------------- GL_PGI_vertex_hints -------------------------- */ - -#ifndef GL_PGI_vertex_hints -#define GL_PGI_vertex_hints 1 - -#define GL_VERTEX23_BIT_PGI 0x00000004 -#define GL_VERTEX4_BIT_PGI 0x00000008 -#define GL_COLOR3_BIT_PGI 0x00010000 -#define GL_COLOR4_BIT_PGI 0x00020000 -#define GL_EDGEFLAG_BIT_PGI 0x00040000 -#define GL_INDEX_BIT_PGI 0x00080000 -#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define GL_VERTEX_DATA_HINT_PGI 107050 -#define GL_VERTEX_CONSISTENT_HINT_PGI 107051 -#define GL_MATERIAL_SIDE_HINT_PGI 107052 -#define GL_MAX_VERTEX_HINT_PGI 107053 -#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define GL_NORMAL_BIT_PGI 0x08000000 -#define GL_TEXCOORD1_BIT_PGI 0x10000000 -#define GL_TEXCOORD2_BIT_PGI 0x20000000 -#define GL_TEXCOORD3_BIT_PGI 0x40000000 -#define GL_TEXCOORD4_BIT_PGI 0x80000000 - -#define GLEW_PGI_vertex_hints GLEW_GET_VAR(__GLEW_PGI_vertex_hints) - -#endif /* GL_PGI_vertex_hints */ - -/* ----------------------- GL_REND_screen_coordinates ---------------------- */ - -#ifndef GL_REND_screen_coordinates -#define GL_REND_screen_coordinates 1 - -#define GL_SCREEN_COORDINATES_REND 0x8490 -#define GL_INVERTED_SCREEN_W_REND 0x8491 - -#define GLEW_REND_screen_coordinates GLEW_GET_VAR(__GLEW_REND_screen_coordinates) - -#endif /* GL_REND_screen_coordinates */ - -/* ------------------------------- GL_S3_s3tc ------------------------------ */ - -#ifndef GL_S3_s3tc -#define GL_S3_s3tc 1 - -#define GL_RGB_S3TC 0x83A0 -#define GL_RGB4_S3TC 0x83A1 -#define GL_RGBA_S3TC 0x83A2 -#define GL_RGBA4_S3TC 0x83A3 -#define GL_RGBA_DXT5_S3TC 0x83A4 -#define GL_RGBA4_DXT5_S3TC 0x83A5 - -#define GLEW_S3_s3tc GLEW_GET_VAR(__GLEW_S3_s3tc) - -#endif /* GL_S3_s3tc */ - -/* -------------------------- GL_SGIS_color_range -------------------------- */ - -#ifndef GL_SGIS_color_range -#define GL_SGIS_color_range 1 - -#define GL_EXTENDED_RANGE_SGIS 0x85A5 -#define GL_MIN_RED_SGIS 0x85A6 -#define GL_MAX_RED_SGIS 0x85A7 -#define GL_MIN_GREEN_SGIS 0x85A8 -#define GL_MAX_GREEN_SGIS 0x85A9 -#define GL_MIN_BLUE_SGIS 0x85AA -#define GL_MAX_BLUE_SGIS 0x85AB -#define GL_MIN_ALPHA_SGIS 0x85AC -#define GL_MAX_ALPHA_SGIS 0x85AD - -#define GLEW_SGIS_color_range GLEW_GET_VAR(__GLEW_SGIS_color_range) - -#endif /* GL_SGIS_color_range */ - -/* ------------------------- GL_SGIS_detail_texture ------------------------ */ - -#ifndef GL_SGIS_detail_texture -#define GL_SGIS_detail_texture 1 - -typedef void (GLAPIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); -typedef void (GLAPIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat* points); - -#define glDetailTexFuncSGIS GLEW_GET_FUN(__glewDetailTexFuncSGIS) -#define glGetDetailTexFuncSGIS GLEW_GET_FUN(__glewGetDetailTexFuncSGIS) - -#define GLEW_SGIS_detail_texture GLEW_GET_VAR(__GLEW_SGIS_detail_texture) - -#endif /* GL_SGIS_detail_texture */ - -/* -------------------------- GL_SGIS_fog_function ------------------------- */ - -#ifndef GL_SGIS_fog_function -#define GL_SGIS_fog_function 1 - -typedef void (GLAPIENTRY * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat* points); -typedef void (GLAPIENTRY * PFNGLGETFOGFUNCSGISPROC) (GLfloat* points); - -#define glFogFuncSGIS GLEW_GET_FUN(__glewFogFuncSGIS) -#define glGetFogFuncSGIS GLEW_GET_FUN(__glewGetFogFuncSGIS) - -#define GLEW_SGIS_fog_function GLEW_GET_VAR(__GLEW_SGIS_fog_function) - -#endif /* GL_SGIS_fog_function */ - -/* ------------------------ GL_SGIS_generate_mipmap ------------------------ */ - -#ifndef GL_SGIS_generate_mipmap -#define GL_SGIS_generate_mipmap 1 - -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 - -#define GLEW_SGIS_generate_mipmap GLEW_GET_VAR(__GLEW_SGIS_generate_mipmap) - -#endif /* GL_SGIS_generate_mipmap */ - -/* -------------------------- GL_SGIS_multisample -------------------------- */ - -#ifndef GL_SGIS_multisample -#define GL_SGIS_multisample 1 - -#define GL_MULTISAMPLE_SGIS 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define GL_SAMPLE_MASK_SGIS 0x80A0 -#define GL_1PASS_SGIS 0x80A1 -#define GL_2PASS_0_SGIS 0x80A2 -#define GL_2PASS_1_SGIS 0x80A3 -#define GL_4PASS_0_SGIS 0x80A4 -#define GL_4PASS_1_SGIS 0x80A5 -#define GL_4PASS_2_SGIS 0x80A6 -#define GL_4PASS_3_SGIS 0x80A7 -#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define GL_SAMPLES_SGIS 0x80A9 -#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define GL_SAMPLE_PATTERN_SGIS 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 - -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); -typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); - -#define glSampleMaskSGIS GLEW_GET_FUN(__glewSampleMaskSGIS) -#define glSamplePatternSGIS GLEW_GET_FUN(__glewSamplePatternSGIS) - -#define GLEW_SGIS_multisample GLEW_GET_VAR(__GLEW_SGIS_multisample) - -#endif /* GL_SGIS_multisample */ - -/* ------------------------- GL_SGIS_pixel_texture ------------------------- */ - -#ifndef GL_SGIS_pixel_texture -#define GL_SGIS_pixel_texture 1 - -#define GLEW_SGIS_pixel_texture GLEW_GET_VAR(__GLEW_SGIS_pixel_texture) - -#endif /* GL_SGIS_pixel_texture */ - -/* ----------------------- GL_SGIS_point_line_texgen ----------------------- */ - -#ifndef GL_SGIS_point_line_texgen -#define GL_SGIS_point_line_texgen 1 - -#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 -#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 -#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 -#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 -#define GL_EYE_POINT_SGIS 0x81F4 -#define GL_OBJECT_POINT_SGIS 0x81F5 -#define GL_EYE_LINE_SGIS 0x81F6 -#define GL_OBJECT_LINE_SGIS 0x81F7 - -#define GLEW_SGIS_point_line_texgen GLEW_GET_VAR(__GLEW_SGIS_point_line_texgen) - -#endif /* GL_SGIS_point_line_texgen */ - -/* ------------------------ GL_SGIS_sharpen_texture ------------------------ */ - -#ifndef GL_SGIS_sharpen_texture -#define GL_SGIS_sharpen_texture 1 - -typedef void (GLAPIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat* points); -typedef void (GLAPIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); - -#define glGetSharpenTexFuncSGIS GLEW_GET_FUN(__glewGetSharpenTexFuncSGIS) -#define glSharpenTexFuncSGIS GLEW_GET_FUN(__glewSharpenTexFuncSGIS) - -#define GLEW_SGIS_sharpen_texture GLEW_GET_VAR(__GLEW_SGIS_sharpen_texture) - -#endif /* GL_SGIS_sharpen_texture */ - -/* --------------------------- GL_SGIS_texture4D --------------------------- */ - -#ifndef GL_SGIS_texture4D -#define GL_SGIS_texture4D 1 - -typedef void (GLAPIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void* pixels); - -#define glTexImage4DSGIS GLEW_GET_FUN(__glewTexImage4DSGIS) -#define glTexSubImage4DSGIS GLEW_GET_FUN(__glewTexSubImage4DSGIS) - -#define GLEW_SGIS_texture4D GLEW_GET_VAR(__GLEW_SGIS_texture4D) - -#endif /* GL_SGIS_texture4D */ - -/* ---------------------- GL_SGIS_texture_border_clamp --------------------- */ - -#ifndef GL_SGIS_texture_border_clamp -#define GL_SGIS_texture_border_clamp 1 - -#define GL_CLAMP_TO_BORDER_SGIS 0x812D - -#define GLEW_SGIS_texture_border_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_border_clamp) - -#endif /* GL_SGIS_texture_border_clamp */ - -/* ----------------------- GL_SGIS_texture_edge_clamp ---------------------- */ - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_SGIS_texture_edge_clamp 1 - -#define GL_CLAMP_TO_EDGE_SGIS 0x812F - -#define GLEW_SGIS_texture_edge_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_edge_clamp) - -#endif /* GL_SGIS_texture_edge_clamp */ - -/* ------------------------ GL_SGIS_texture_filter4 ------------------------ */ - -#ifndef GL_SGIS_texture_filter4 -#define GL_SGIS_texture_filter4 1 - -typedef void (GLAPIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat* weights); -typedef void (GLAPIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat* weights); - -#define glGetTexFilterFuncSGIS GLEW_GET_FUN(__glewGetTexFilterFuncSGIS) -#define glTexFilterFuncSGIS GLEW_GET_FUN(__glewTexFilterFuncSGIS) - -#define GLEW_SGIS_texture_filter4 GLEW_GET_VAR(__GLEW_SGIS_texture_filter4) - -#endif /* GL_SGIS_texture_filter4 */ - -/* -------------------------- GL_SGIS_texture_lod -------------------------- */ - -#ifndef GL_SGIS_texture_lod -#define GL_SGIS_texture_lod 1 - -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D - -#define GLEW_SGIS_texture_lod GLEW_GET_VAR(__GLEW_SGIS_texture_lod) - -#endif /* GL_SGIS_texture_lod */ - -/* ------------------------- GL_SGIS_texture_select ------------------------ */ - -#ifndef GL_SGIS_texture_select -#define GL_SGIS_texture_select 1 - -#define GLEW_SGIS_texture_select GLEW_GET_VAR(__GLEW_SGIS_texture_select) - -#endif /* GL_SGIS_texture_select */ - -/* ----------------------------- GL_SGIX_async ----------------------------- */ - -#ifndef GL_SGIX_async -#define GL_SGIX_async 1 - -#define GL_ASYNC_MARKER_SGIX 0x8329 - -typedef void (GLAPIENTRY * PFNGLASYNCMARKERSGIXPROC) (GLuint marker); -typedef void (GLAPIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); -typedef GLint (GLAPIENTRY * PFNGLFINISHASYNCSGIXPROC) (GLuint* markerp); -typedef GLuint (GLAPIENTRY * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); -typedef GLboolean (GLAPIENTRY * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); -typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); - -#define glAsyncMarkerSGIX GLEW_GET_FUN(__glewAsyncMarkerSGIX) -#define glDeleteAsyncMarkersSGIX GLEW_GET_FUN(__glewDeleteAsyncMarkersSGIX) -#define glFinishAsyncSGIX GLEW_GET_FUN(__glewFinishAsyncSGIX) -#define glGenAsyncMarkersSGIX GLEW_GET_FUN(__glewGenAsyncMarkersSGIX) -#define glIsAsyncMarkerSGIX GLEW_GET_FUN(__glewIsAsyncMarkerSGIX) -#define glPollAsyncSGIX GLEW_GET_FUN(__glewPollAsyncSGIX) - -#define GLEW_SGIX_async GLEW_GET_VAR(__GLEW_SGIX_async) - -#endif /* GL_SGIX_async */ - -/* ------------------------ GL_SGIX_async_histogram ------------------------ */ - -#ifndef GL_SGIX_async_histogram -#define GL_SGIX_async_histogram 1 - -#define GL_ASYNC_HISTOGRAM_SGIX 0x832C -#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D - -#define GLEW_SGIX_async_histogram GLEW_GET_VAR(__GLEW_SGIX_async_histogram) - -#endif /* GL_SGIX_async_histogram */ - -/* -------------------------- GL_SGIX_async_pixel -------------------------- */ - -#ifndef GL_SGIX_async_pixel -#define GL_SGIX_async_pixel 1 - -#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C -#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D -#define GL_ASYNC_READ_PIXELS_SGIX 0x835E -#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F -#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 -#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 - -#define GLEW_SGIX_async_pixel GLEW_GET_VAR(__GLEW_SGIX_async_pixel) - -#endif /* GL_SGIX_async_pixel */ - -/* ----------------------- GL_SGIX_blend_alpha_minmax ---------------------- */ - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_SGIX_blend_alpha_minmax 1 - -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 - -#define GLEW_SGIX_blend_alpha_minmax GLEW_GET_VAR(__GLEW_SGIX_blend_alpha_minmax) - -#endif /* GL_SGIX_blend_alpha_minmax */ - -/* ---------------------------- GL_SGIX_clipmap ---------------------------- */ - -#ifndef GL_SGIX_clipmap -#define GL_SGIX_clipmap 1 - -#define GLEW_SGIX_clipmap GLEW_GET_VAR(__GLEW_SGIX_clipmap) - -#endif /* GL_SGIX_clipmap */ - -/* ---------------------- GL_SGIX_convolution_accuracy --------------------- */ - -#ifndef GL_SGIX_convolution_accuracy -#define GL_SGIX_convolution_accuracy 1 - -#define GL_CONVOLUTION_HINT_SGIX 0x8316 - -#define GLEW_SGIX_convolution_accuracy GLEW_GET_VAR(__GLEW_SGIX_convolution_accuracy) - -#endif /* GL_SGIX_convolution_accuracy */ - -/* ------------------------- GL_SGIX_depth_texture ------------------------- */ - -#ifndef GL_SGIX_depth_texture -#define GL_SGIX_depth_texture 1 - -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 - -#define GLEW_SGIX_depth_texture GLEW_GET_VAR(__GLEW_SGIX_depth_texture) - -#endif /* GL_SGIX_depth_texture */ - -/* -------------------------- GL_SGIX_flush_raster ------------------------- */ - -#ifndef GL_SGIX_flush_raster -#define GL_SGIX_flush_raster 1 - -typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); - -#define glFlushRasterSGIX GLEW_GET_FUN(__glewFlushRasterSGIX) - -#define GLEW_SGIX_flush_raster GLEW_GET_VAR(__GLEW_SGIX_flush_raster) - -#endif /* GL_SGIX_flush_raster */ - -/* --------------------------- GL_SGIX_fog_offset -------------------------- */ - -#ifndef GL_SGIX_fog_offset -#define GL_SGIX_fog_offset 1 - -#define GL_FOG_OFFSET_SGIX 0x8198 -#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 - -#define GLEW_SGIX_fog_offset GLEW_GET_VAR(__GLEW_SGIX_fog_offset) - -#endif /* GL_SGIX_fog_offset */ - -/* -------------------------- GL_SGIX_fog_texture -------------------------- */ - -#ifndef GL_SGIX_fog_texture -#define GL_SGIX_fog_texture 1 - -#define GL_TEXTURE_FOG_SGIX 0 -#define GL_FOG_PATCHY_FACTOR_SGIX 0 -#define GL_FRAGMENT_FOG_SGIX 0 - -typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname); - -#define glTextureFogSGIX GLEW_GET_FUN(__glewTextureFogSGIX) - -#define GLEW_SGIX_fog_texture GLEW_GET_VAR(__GLEW_SGIX_fog_texture) - -#endif /* GL_SGIX_fog_texture */ - -/* ------------------- GL_SGIX_fragment_specular_lighting ------------------ */ - -#ifndef GL_SGIX_fragment_specular_lighting -#define GL_SGIX_fragment_specular_lighting 1 - -typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum value, GLfloat* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum value, GLint* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* data); - -#define glFragmentColorMaterialSGIX GLEW_GET_FUN(__glewFragmentColorMaterialSGIX) -#define glFragmentLightModelfSGIX GLEW_GET_FUN(__glewFragmentLightModelfSGIX) -#define glFragmentLightModelfvSGIX GLEW_GET_FUN(__glewFragmentLightModelfvSGIX) -#define glFragmentLightModeliSGIX GLEW_GET_FUN(__glewFragmentLightModeliSGIX) -#define glFragmentLightModelivSGIX GLEW_GET_FUN(__glewFragmentLightModelivSGIX) -#define glFragmentLightfSGIX GLEW_GET_FUN(__glewFragmentLightfSGIX) -#define glFragmentLightfvSGIX GLEW_GET_FUN(__glewFragmentLightfvSGIX) -#define glFragmentLightiSGIX GLEW_GET_FUN(__glewFragmentLightiSGIX) -#define glFragmentLightivSGIX GLEW_GET_FUN(__glewFragmentLightivSGIX) -#define glFragmentMaterialfSGIX GLEW_GET_FUN(__glewFragmentMaterialfSGIX) -#define glFragmentMaterialfvSGIX GLEW_GET_FUN(__glewFragmentMaterialfvSGIX) -#define glFragmentMaterialiSGIX GLEW_GET_FUN(__glewFragmentMaterialiSGIX) -#define glFragmentMaterialivSGIX GLEW_GET_FUN(__glewFragmentMaterialivSGIX) -#define glGetFragmentLightfvSGIX GLEW_GET_FUN(__glewGetFragmentLightfvSGIX) -#define glGetFragmentLightivSGIX GLEW_GET_FUN(__glewGetFragmentLightivSGIX) -#define glGetFragmentMaterialfvSGIX GLEW_GET_FUN(__glewGetFragmentMaterialfvSGIX) -#define glGetFragmentMaterialivSGIX GLEW_GET_FUN(__glewGetFragmentMaterialivSGIX) - -#define GLEW_SGIX_fragment_specular_lighting GLEW_GET_VAR(__GLEW_SGIX_fragment_specular_lighting) - -#endif /* GL_SGIX_fragment_specular_lighting */ - -/* --------------------------- GL_SGIX_framezoom --------------------------- */ - -#ifndef GL_SGIX_framezoom -#define GL_SGIX_framezoom 1 - -typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); - -#define glFrameZoomSGIX GLEW_GET_FUN(__glewFrameZoomSGIX) - -#define GLEW_SGIX_framezoom GLEW_GET_VAR(__GLEW_SGIX_framezoom) - -#endif /* GL_SGIX_framezoom */ - -/* --------------------------- GL_SGIX_interlace --------------------------- */ - -#ifndef GL_SGIX_interlace -#define GL_SGIX_interlace 1 - -#define GL_INTERLACE_SGIX 0x8094 - -#define GLEW_SGIX_interlace GLEW_GET_VAR(__GLEW_SGIX_interlace) - -#endif /* GL_SGIX_interlace */ - -/* ------------------------- GL_SGIX_ir_instrument1 ------------------------ */ - -#ifndef GL_SGIX_ir_instrument1 -#define GL_SGIX_ir_instrument1 1 - -#define GLEW_SGIX_ir_instrument1 GLEW_GET_VAR(__GLEW_SGIX_ir_instrument1) - -#endif /* GL_SGIX_ir_instrument1 */ - -/* ------------------------- GL_SGIX_list_priority ------------------------- */ - -#ifndef GL_SGIX_list_priority -#define GL_SGIX_list_priority 1 - -#define GLEW_SGIX_list_priority GLEW_GET_VAR(__GLEW_SGIX_list_priority) - -#endif /* GL_SGIX_list_priority */ - -/* ------------------------- GL_SGIX_pixel_texture ------------------------- */ - -#ifndef GL_SGIX_pixel_texture -#define GL_SGIX_pixel_texture 1 - -typedef void (GLAPIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); - -#define glPixelTexGenSGIX GLEW_GET_FUN(__glewPixelTexGenSGIX) - -#define GLEW_SGIX_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_pixel_texture) - -#endif /* GL_SGIX_pixel_texture */ - -/* ----------------------- GL_SGIX_pixel_texture_bits ---------------------- */ - -#ifndef GL_SGIX_pixel_texture_bits -#define GL_SGIX_pixel_texture_bits 1 - -#define GLEW_SGIX_pixel_texture_bits GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_bits) - -#endif /* GL_SGIX_pixel_texture_bits */ - -/* ------------------------ GL_SGIX_reference_plane ------------------------ */ - -#ifndef GL_SGIX_reference_plane -#define GL_SGIX_reference_plane 1 - -typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equation); - -#define glReferencePlaneSGIX GLEW_GET_FUN(__glewReferencePlaneSGIX) - -#define GLEW_SGIX_reference_plane GLEW_GET_VAR(__GLEW_SGIX_reference_plane) - -#endif /* GL_SGIX_reference_plane */ - -/* ---------------------------- GL_SGIX_resample --------------------------- */ - -#ifndef GL_SGIX_resample -#define GL_SGIX_resample 1 - -#define GL_PACK_RESAMPLE_SGIX 0x842E -#define GL_UNPACK_RESAMPLE_SGIX 0x842F -#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#define GL_RESAMPLE_REPLICATE_SGIX 0x8433 -#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434 - -#define GLEW_SGIX_resample GLEW_GET_VAR(__GLEW_SGIX_resample) - -#endif /* GL_SGIX_resample */ - -/* ----------------------------- GL_SGIX_shadow ---------------------------- */ - -#ifndef GL_SGIX_shadow -#define GL_SGIX_shadow 1 - -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D - -#define GLEW_SGIX_shadow GLEW_GET_VAR(__GLEW_SGIX_shadow) - -#endif /* GL_SGIX_shadow */ - -/* ------------------------- GL_SGIX_shadow_ambient ------------------------ */ - -#ifndef GL_SGIX_shadow_ambient -#define GL_SGIX_shadow_ambient 1 - -#define GL_SHADOW_AMBIENT_SGIX 0x80BF - -#define GLEW_SGIX_shadow_ambient GLEW_GET_VAR(__GLEW_SGIX_shadow_ambient) - -#endif /* GL_SGIX_shadow_ambient */ - -/* ----------------------------- GL_SGIX_sprite ---------------------------- */ - -#ifndef GL_SGIX_sprite -#define GL_SGIX_sprite 1 - -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, GLint* params); - -#define glSpriteParameterfSGIX GLEW_GET_FUN(__glewSpriteParameterfSGIX) -#define glSpriteParameterfvSGIX GLEW_GET_FUN(__glewSpriteParameterfvSGIX) -#define glSpriteParameteriSGIX GLEW_GET_FUN(__glewSpriteParameteriSGIX) -#define glSpriteParameterivSGIX GLEW_GET_FUN(__glewSpriteParameterivSGIX) - -#define GLEW_SGIX_sprite GLEW_GET_VAR(__GLEW_SGIX_sprite) - -#endif /* GL_SGIX_sprite */ - -/* ----------------------- GL_SGIX_tag_sample_buffer ----------------------- */ - -#ifndef GL_SGIX_tag_sample_buffer -#define GL_SGIX_tag_sample_buffer 1 - -typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); - -#define glTagSampleBufferSGIX GLEW_GET_FUN(__glewTagSampleBufferSGIX) - -#define GLEW_SGIX_tag_sample_buffer GLEW_GET_VAR(__GLEW_SGIX_tag_sample_buffer) - -#endif /* GL_SGIX_tag_sample_buffer */ - -/* ------------------------ GL_SGIX_texture_add_env ------------------------ */ - -#ifndef GL_SGIX_texture_add_env -#define GL_SGIX_texture_add_env 1 - -#define GLEW_SGIX_texture_add_env GLEW_GET_VAR(__GLEW_SGIX_texture_add_env) - -#endif /* GL_SGIX_texture_add_env */ - -/* -------------------- GL_SGIX_texture_coordinate_clamp ------------------- */ - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_SGIX_texture_coordinate_clamp 1 - -#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 -#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A -#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B - -#define GLEW_SGIX_texture_coordinate_clamp GLEW_GET_VAR(__GLEW_SGIX_texture_coordinate_clamp) - -#endif /* GL_SGIX_texture_coordinate_clamp */ - -/* ------------------------ GL_SGIX_texture_lod_bias ----------------------- */ - -#ifndef GL_SGIX_texture_lod_bias -#define GL_SGIX_texture_lod_bias 1 - -#define GLEW_SGIX_texture_lod_bias GLEW_GET_VAR(__GLEW_SGIX_texture_lod_bias) - -#endif /* GL_SGIX_texture_lod_bias */ - -/* ---------------------- GL_SGIX_texture_multi_buffer --------------------- */ - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_SGIX_texture_multi_buffer 1 - -#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E - -#define GLEW_SGIX_texture_multi_buffer GLEW_GET_VAR(__GLEW_SGIX_texture_multi_buffer) - -#endif /* GL_SGIX_texture_multi_buffer */ - -/* ------------------------- GL_SGIX_texture_range ------------------------- */ - -#ifndef GL_SGIX_texture_range -#define GL_SGIX_texture_range 1 - -#define GL_RGB_SIGNED_SGIX 0x85E0 -#define GL_RGBA_SIGNED_SGIX 0x85E1 -#define GL_ALPHA_SIGNED_SGIX 0x85E2 -#define GL_LUMINANCE_SIGNED_SGIX 0x85E3 -#define GL_INTENSITY_SIGNED_SGIX 0x85E4 -#define GL_LUMINANCE_ALPHA_SIGNED_SGIX 0x85E5 -#define GL_RGB16_SIGNED_SGIX 0x85E6 -#define GL_RGBA16_SIGNED_SGIX 0x85E7 -#define GL_ALPHA16_SIGNED_SGIX 0x85E8 -#define GL_LUMINANCE16_SIGNED_SGIX 0x85E9 -#define GL_INTENSITY16_SIGNED_SGIX 0x85EA -#define GL_LUMINANCE16_ALPHA16_SIGNED_SGIX 0x85EB -#define GL_RGB_EXTENDED_RANGE_SGIX 0x85EC -#define GL_RGBA_EXTENDED_RANGE_SGIX 0x85ED -#define GL_ALPHA_EXTENDED_RANGE_SGIX 0x85EE -#define GL_LUMINANCE_EXTENDED_RANGE_SGIX 0x85EF -#define GL_INTENSITY_EXTENDED_RANGE_SGIX 0x85F0 -#define GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX 0x85F1 -#define GL_RGB16_EXTENDED_RANGE_SGIX 0x85F2 -#define GL_RGBA16_EXTENDED_RANGE_SGIX 0x85F3 -#define GL_ALPHA16_EXTENDED_RANGE_SGIX 0x85F4 -#define GL_LUMINANCE16_EXTENDED_RANGE_SGIX 0x85F5 -#define GL_INTENSITY16_EXTENDED_RANGE_SGIX 0x85F6 -#define GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85F7 -#define GL_MIN_LUMINANCE_SGIS 0x85F8 -#define GL_MAX_LUMINANCE_SGIS 0x85F9 -#define GL_MIN_INTENSITY_SGIS 0x85FA -#define GL_MAX_INTENSITY_SGIS 0x85FB - -#define GLEW_SGIX_texture_range GLEW_GET_VAR(__GLEW_SGIX_texture_range) - -#endif /* GL_SGIX_texture_range */ - -/* ----------------------- GL_SGIX_texture_scale_bias ---------------------- */ - -#ifndef GL_SGIX_texture_scale_bias -#define GL_SGIX_texture_scale_bias 1 - -#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C - -#define GLEW_SGIX_texture_scale_bias GLEW_GET_VAR(__GLEW_SGIX_texture_scale_bias) - -#endif /* GL_SGIX_texture_scale_bias */ - -/* ------------------------- GL_SGIX_vertex_preclip ------------------------ */ - -#ifndef GL_SGIX_vertex_preclip -#define GL_SGIX_vertex_preclip 1 - -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF - -#define GLEW_SGIX_vertex_preclip GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip) - -#endif /* GL_SGIX_vertex_preclip */ - -/* ---------------------- GL_SGIX_vertex_preclip_hint ---------------------- */ - -#ifndef GL_SGIX_vertex_preclip_hint -#define GL_SGIX_vertex_preclip_hint 1 - -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF - -#define GLEW_SGIX_vertex_preclip_hint GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip_hint) - -#endif /* GL_SGIX_vertex_preclip_hint */ - -/* ----------------------------- GL_SGIX_ycrcb ----------------------------- */ - -#ifndef GL_SGIX_ycrcb -#define GL_SGIX_ycrcb 1 - -#define GLEW_SGIX_ycrcb GLEW_GET_VAR(__GLEW_SGIX_ycrcb) - -#endif /* GL_SGIX_ycrcb */ - -/* -------------------------- GL_SGI_color_matrix -------------------------- */ - -#ifndef GL_SGI_color_matrix -#define GL_SGI_color_matrix 1 - -#define GL_COLOR_MATRIX_SGI 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB - -#define GLEW_SGI_color_matrix GLEW_GET_VAR(__GLEW_SGI_color_matrix) - -#endif /* GL_SGI_color_matrix */ - -/* --------------------------- GL_SGI_color_table -------------------------- */ - -#ifndef GL_SGI_color_table -#define GL_SGI_color_table 1 - -#define GL_COLOR_TABLE_SGI 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF - -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* table); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void* table); - -#define glColorTableParameterfvSGI GLEW_GET_FUN(__glewColorTableParameterfvSGI) -#define glColorTableParameterivSGI GLEW_GET_FUN(__glewColorTableParameterivSGI) -#define glColorTableSGI GLEW_GET_FUN(__glewColorTableSGI) -#define glCopyColorTableSGI GLEW_GET_FUN(__glewCopyColorTableSGI) -#define glGetColorTableParameterfvSGI GLEW_GET_FUN(__glewGetColorTableParameterfvSGI) -#define glGetColorTableParameterivSGI GLEW_GET_FUN(__glewGetColorTableParameterivSGI) -#define glGetColorTableSGI GLEW_GET_FUN(__glewGetColorTableSGI) - -#define GLEW_SGI_color_table GLEW_GET_VAR(__GLEW_SGI_color_table) - -#endif /* GL_SGI_color_table */ - -/* ----------------------- GL_SGI_texture_color_table ---------------------- */ - -#ifndef GL_SGI_texture_color_table -#define GL_SGI_texture_color_table 1 - -#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD - -#define GLEW_SGI_texture_color_table GLEW_GET_VAR(__GLEW_SGI_texture_color_table) - -#endif /* GL_SGI_texture_color_table */ - -/* ------------------------- GL_SUNX_constant_data ------------------------- */ - -#ifndef GL_SUNX_constant_data -#define GL_SUNX_constant_data 1 - -#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 - -typedef void (GLAPIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void); - -#define glFinishTextureSUNX GLEW_GET_FUN(__glewFinishTextureSUNX) - -#define GLEW_SUNX_constant_data GLEW_GET_VAR(__GLEW_SUNX_constant_data) - -#endif /* GL_SUNX_constant_data */ - -/* -------------------- GL_SUN_convolution_border_modes -------------------- */ - -#ifndef GL_SUN_convolution_border_modes -#define GL_SUN_convolution_border_modes 1 - -#define GL_WRAP_BORDER_SUN 0x81D4 - -#define GLEW_SUN_convolution_border_modes GLEW_GET_VAR(__GLEW_SUN_convolution_border_modes) - -#endif /* GL_SUN_convolution_border_modes */ - -/* -------------------------- GL_SUN_global_alpha -------------------------- */ - -#ifndef GL_SUN_global_alpha -#define GL_SUN_global_alpha 1 - -#define GL_GLOBAL_ALPHA_SUN 0x81D9 -#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA - -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); - -#define glGlobalAlphaFactorbSUN GLEW_GET_FUN(__glewGlobalAlphaFactorbSUN) -#define glGlobalAlphaFactordSUN GLEW_GET_FUN(__glewGlobalAlphaFactordSUN) -#define glGlobalAlphaFactorfSUN GLEW_GET_FUN(__glewGlobalAlphaFactorfSUN) -#define glGlobalAlphaFactoriSUN GLEW_GET_FUN(__glewGlobalAlphaFactoriSUN) -#define glGlobalAlphaFactorsSUN GLEW_GET_FUN(__glewGlobalAlphaFactorsSUN) -#define glGlobalAlphaFactorubSUN GLEW_GET_FUN(__glewGlobalAlphaFactorubSUN) -#define glGlobalAlphaFactoruiSUN GLEW_GET_FUN(__glewGlobalAlphaFactoruiSUN) -#define glGlobalAlphaFactorusSUN GLEW_GET_FUN(__glewGlobalAlphaFactorusSUN) - -#define GLEW_SUN_global_alpha GLEW_GET_VAR(__GLEW_SUN_global_alpha) - -#endif /* GL_SUN_global_alpha */ - -/* --------------------------- GL_SUN_mesh_array --------------------------- */ - -#ifndef GL_SUN_mesh_array -#define GL_SUN_mesh_array 1 - -#define GL_QUAD_MESH_SUN 0x8614 -#define GL_TRIANGLE_MESH_SUN 0x8615 - -#define GLEW_SUN_mesh_array GLEW_GET_VAR(__GLEW_SUN_mesh_array) - -#endif /* GL_SUN_mesh_array */ - -/* ------------------------ GL_SUN_read_video_pixels ----------------------- */ - -#ifndef GL_SUN_read_video_pixels -#define GL_SUN_read_video_pixels 1 - -typedef void (GLAPIENTRY * PFNGLREADVIDEOPIXELSSUNPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); - -#define glReadVideoPixelsSUN GLEW_GET_FUN(__glewReadVideoPixelsSUN) - -#define GLEW_SUN_read_video_pixels GLEW_GET_VAR(__GLEW_SUN_read_video_pixels) - -#endif /* GL_SUN_read_video_pixels */ - -/* --------------------------- GL_SUN_slice_accum -------------------------- */ - -#ifndef GL_SUN_slice_accum -#define GL_SUN_slice_accum 1 - -#define GL_SLICE_ACCUM_SUN 0x85CC - -#define GLEW_SUN_slice_accum GLEW_GET_VAR(__GLEW_SUN_slice_accum) - -#endif /* GL_SUN_slice_accum */ - -/* -------------------------- GL_SUN_triangle_list ------------------------- */ - -#ifndef GL_SUN_triangle_list -#define GL_SUN_triangle_list 1 - -#define GL_RESTART_SUN 0x01 -#define GL_REPLACE_MIDDLE_SUN 0x02 -#define GL_REPLACE_OLDEST_SUN 0x03 -#define GL_TRIANGLE_LIST_SUN 0x81D7 -#define GL_REPLACEMENT_CODE_SUN 0x81D8 -#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define GL_R1UI_V3F_SUN 0x85C4 -#define GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define GL_R1UI_C3F_V3F_SUN 0x85C6 -#define GL_R1UI_N3F_V3F_SUN 0x85C7 -#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define GL_R1UI_T2F_V3F_SUN 0x85C9 -#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB - -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void* pointer); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte* code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint* code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort* code); - -#define glReplacementCodePointerSUN GLEW_GET_FUN(__glewReplacementCodePointerSUN) -#define glReplacementCodeubSUN GLEW_GET_FUN(__glewReplacementCodeubSUN) -#define glReplacementCodeubvSUN GLEW_GET_FUN(__glewReplacementCodeubvSUN) -#define glReplacementCodeuiSUN GLEW_GET_FUN(__glewReplacementCodeuiSUN) -#define glReplacementCodeuivSUN GLEW_GET_FUN(__glewReplacementCodeuivSUN) -#define glReplacementCodeusSUN GLEW_GET_FUN(__glewReplacementCodeusSUN) -#define glReplacementCodeusvSUN GLEW_GET_FUN(__glewReplacementCodeusvSUN) - -#define GLEW_SUN_triangle_list GLEW_GET_VAR(__GLEW_SUN_triangle_list) - -#endif /* GL_SUN_triangle_list */ - -/* ----------------------------- GL_SUN_vertex ----------------------------- */ - -#ifndef GL_SUN_vertex -#define GL_SUN_vertex 1 - -typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte* c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte* c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint* rc, const GLubyte *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat* tc, const GLubyte *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *v); - -#define glColor3fVertex3fSUN GLEW_GET_FUN(__glewColor3fVertex3fSUN) -#define glColor3fVertex3fvSUN GLEW_GET_FUN(__glewColor3fVertex3fvSUN) -#define glColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fSUN) -#define glColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fvSUN) -#define glColor4ubVertex2fSUN GLEW_GET_FUN(__glewColor4ubVertex2fSUN) -#define glColor4ubVertex2fvSUN GLEW_GET_FUN(__glewColor4ubVertex2fvSUN) -#define glColor4ubVertex3fSUN GLEW_GET_FUN(__glewColor4ubVertex3fSUN) -#define glColor4ubVertex3fvSUN GLEW_GET_FUN(__glewColor4ubVertex3fvSUN) -#define glNormal3fVertex3fSUN GLEW_GET_FUN(__glewNormal3fVertex3fSUN) -#define glNormal3fVertex3fvSUN GLEW_GET_FUN(__glewNormal3fVertex3fvSUN) -#define glReplacementCodeuiColor3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fSUN) -#define glReplacementCodeuiColor3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fvSUN) -#define glReplacementCodeuiColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fSUN) -#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fvSUN) -#define glReplacementCodeuiColor4ubVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fSUN) -#define glReplacementCodeuiColor4ubVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fvSUN) -#define glReplacementCodeuiNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fSUN) -#define glReplacementCodeuiNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fvSUN) -#define glReplacementCodeuiVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fSUN) -#define glReplacementCodeuiVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fvSUN) -#define glTexCoord2fColor3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fSUN) -#define glTexCoord2fColor3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fvSUN) -#define glTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fSUN) -#define glTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fvSUN) -#define glTexCoord2fColor4ubVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fSUN) -#define glTexCoord2fColor4ubVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fvSUN) -#define glTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fSUN) -#define glTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fvSUN) -#define glTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fSUN) -#define glTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fvSUN) -#define glTexCoord4fColor4fNormal3fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fSUN) -#define glTexCoord4fColor4fNormal3fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fvSUN) -#define glTexCoord4fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fSUN) -#define glTexCoord4fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fvSUN) - -#define GLEW_SUN_vertex GLEW_GET_VAR(__GLEW_SUN_vertex) - -#endif /* GL_SUN_vertex */ - -/* -------------------------- GL_WIN_phong_shading ------------------------- */ - -#ifndef GL_WIN_phong_shading -#define GL_WIN_phong_shading 1 - -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB - -#define GLEW_WIN_phong_shading GLEW_GET_VAR(__GLEW_WIN_phong_shading) - -#endif /* GL_WIN_phong_shading */ - -/* -------------------------- GL_WIN_specular_fog -------------------------- */ - -#ifndef GL_WIN_specular_fog -#define GL_WIN_specular_fog 1 - -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC - -#define GLEW_WIN_specular_fog GLEW_GET_VAR(__GLEW_WIN_specular_fog) - -#endif /* GL_WIN_specular_fog */ - -/* ---------------------------- GL_WIN_swap_hint --------------------------- */ - -#ifndef GL_WIN_swap_hint -#define GL_WIN_swap_hint 1 - -typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height); - -#define glAddSwapHintRectWIN GLEW_GET_FUN(__glewAddSwapHintRectWIN) - -#define GLEW_WIN_swap_hint GLEW_GET_VAR(__GLEW_WIN_swap_hint) - -#endif /* GL_WIN_swap_hint */ - -/* ------------------------------------------------------------------------- */ - -#if defined(GLEW_MX) && defined(_WIN32) -#define GLEW_FUN_EXPORT -#else -#define GLEW_FUN_EXPORT GLEWAPI -#endif /* GLEW_MX */ - -#if defined(GLEW_MX) -#define GLEW_VAR_EXPORT -#else -#define GLEW_VAR_EXPORT GLEWAPI -#endif /* GLEW_MX */ - -#if defined(GLEW_MX) && defined(_WIN32) -struct GLEWContextStruct -{ -#endif /* GLEW_MX */ - -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements; -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DPROC __glewTexImage3D; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D; - -GLEW_FUN_EXPORT PFNGLACTIVETEXTUREPROC __glewActiveTexture; -GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage; -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd; -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv; -GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage; - -GLEW_FUN_EXPORT PFNGLBLENDCOLORPROC __glewBlendColor; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONPROC __glewBlendEquation; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate; -GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer; -GLEW_FUN_EXPORT PFNGLFOGCOORDDPROC __glewFogCoordd; -GLEW_FUN_EXPORT PFNGLFOGCOORDDVPROC __glewFogCoorddv; -GLEW_FUN_EXPORT PFNGLFOGCOORDFPROC __glewFogCoordf; -GLEW_FUN_EXPORT PFNGLFOGCOORDFVPROC __glewFogCoordfv; -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFPROC __glewPointParameterf; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIPROC __glewPointParameteri; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DPROC __glewWindowPos2d; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FPROC __glewWindowPos2f; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IPROC __glewWindowPos2i; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SPROC __glewWindowPos2s; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DPROC __glewWindowPos3d; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FPROC __glewWindowPos3f; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IPROC __glewWindowPos3i; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SPROC __glewWindowPos3s; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYPROC __glewBeginQuery; -GLEW_FUN_EXPORT PFNGLBINDBUFFERPROC __glewBindBuffer; -GLEW_FUN_EXPORT PFNGLBUFFERDATAPROC __glewBufferData; -GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAPROC __glewBufferSubData; -GLEW_FUN_EXPORT PFNGLDELETEBUFFERSPROC __glewDeleteBuffers; -GLEW_FUN_EXPORT PFNGLDELETEQUERIESPROC __glewDeleteQueries; -GLEW_FUN_EXPORT PFNGLENDQUERYPROC __glewEndQuery; -GLEW_FUN_EXPORT PFNGLGENBUFFERSPROC __glewGenBuffers; -GLEW_FUN_EXPORT PFNGLGENQUERIESPROC __glewGenQueries; -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv; -GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv; -GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv; -GLEW_FUN_EXPORT PFNGLGETQUERYIVPROC __glewGetQueryiv; -GLEW_FUN_EXPORT PFNGLISBUFFERPROC __glewIsBuffer; -GLEW_FUN_EXPORT PFNGLISQUERYPROC __glewIsQuery; -GLEW_FUN_EXPORT PFNGLMAPBUFFERPROC __glewMapBuffer; -GLEW_FUN_EXPORT PFNGLUNMAPBUFFERPROC __glewUnmapBuffer; - -GLEW_FUN_EXPORT PFNGLATTACHSHADERPROC __glewAttachShader; -GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEPROC __glewBlendEquationSeparate; -GLEW_FUN_EXPORT PFNGLCOMPILESHADERPROC __glewCompileShader; -GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPROC __glewCreateProgram; -GLEW_FUN_EXPORT PFNGLCREATESHADERPROC __glewCreateShader; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPROC __glewDeleteProgram; -GLEW_FUN_EXPORT PFNGLDELETESHADERPROC __glewDeleteShader; -GLEW_FUN_EXPORT PFNGLDETACHSHADERPROC __glewDetachShader; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYPROC __glewDisableVertexAttribArray; -GLEW_FUN_EXPORT PFNGLDRAWBUFFERSPROC __glewDrawBuffers; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray; -GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBPROC __glewGetActiveAttrib; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMPROC __glewGetActiveUniform; -GLEW_FUN_EXPORT PFNGLGETATTACHEDSHADERSPROC __glewGetAttachedShaders; -GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONPROC __glewGetAttribLocation; -GLEW_FUN_EXPORT PFNGLGETPROGRAMINFOLOGPROC __glewGetProgramInfoLog; -GLEW_FUN_EXPORT PFNGLGETPROGRAMIVPROC __glewGetProgramiv; -GLEW_FUN_EXPORT PFNGLGETSHADERINFOLOGPROC __glewGetShaderInfoLog; -GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEPROC __glewGetShaderSource; -GLEW_FUN_EXPORT PFNGLGETSHADERIVPROC __glewGetShaderiv; -GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONPROC __glewGetUniformLocation; -GLEW_FUN_EXPORT PFNGLGETUNIFORMFVPROC __glewGetUniformfv; -GLEW_FUN_EXPORT PFNGLGETUNIFORMIVPROC __glewGetUniformiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVPROC __glewGetVertexAttribPointerv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVPROC __glewGetVertexAttribdv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVPROC __glewGetVertexAttribfv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVPROC __glewGetVertexAttribiv; -GLEW_FUN_EXPORT PFNGLISPROGRAMPROC __glewIsProgram; -GLEW_FUN_EXPORT PFNGLISSHADERPROC __glewIsShader; -GLEW_FUN_EXPORT PFNGLLINKPROGRAMPROC __glewLinkProgram; -GLEW_FUN_EXPORT PFNGLSHADERSOURCEPROC __glewShaderSource; -GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEPROC __glewStencilFuncSeparate; -GLEW_FUN_EXPORT PFNGLSTENCILMASKSEPARATEPROC __glewStencilMaskSeparate; -GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEPROC __glewStencilOpSeparate; -GLEW_FUN_EXPORT PFNGLUNIFORM1FPROC __glewUniform1f; -GLEW_FUN_EXPORT PFNGLUNIFORM1FVPROC __glewUniform1fv; -GLEW_FUN_EXPORT PFNGLUNIFORM1IPROC __glewUniform1i; -GLEW_FUN_EXPORT PFNGLUNIFORM1IVPROC __glewUniform1iv; -GLEW_FUN_EXPORT PFNGLUNIFORM2FPROC __glewUniform2f; -GLEW_FUN_EXPORT PFNGLUNIFORM2FVPROC __glewUniform2fv; -GLEW_FUN_EXPORT PFNGLUNIFORM2IPROC __glewUniform2i; -GLEW_FUN_EXPORT PFNGLUNIFORM2IVPROC __glewUniform2iv; -GLEW_FUN_EXPORT PFNGLUNIFORM3FPROC __glewUniform3f; -GLEW_FUN_EXPORT PFNGLUNIFORM3FVPROC __glewUniform3fv; -GLEW_FUN_EXPORT PFNGLUNIFORM3IPROC __glewUniform3i; -GLEW_FUN_EXPORT PFNGLUNIFORM3IVPROC __glewUniform3iv; -GLEW_FUN_EXPORT PFNGLUNIFORM4FPROC __glewUniform4f; -GLEW_FUN_EXPORT PFNGLUNIFORM4FVPROC __glewUniform4fv; -GLEW_FUN_EXPORT PFNGLUNIFORM4IPROC __glewUniform4i; -GLEW_FUN_EXPORT PFNGLUNIFORM4IVPROC __glewUniform4iv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVPROC __glewUniformMatrix2fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVPROC __glewUniformMatrix3fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVPROC __glewUniformMatrix4fv; -GLEW_FUN_EXPORT PFNGLUSEPROGRAMPROC __glewUseProgram; -GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPROC __glewValidateProgram; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DPROC __glewVertexAttrib1d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVPROC __glewVertexAttrib1dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FPROC __glewVertexAttrib1f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVPROC __glewVertexAttrib1fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SPROC __glewVertexAttrib1s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVPROC __glewVertexAttrib1sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DPROC __glewVertexAttrib2d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVPROC __glewVertexAttrib2dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FPROC __glewVertexAttrib2f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVPROC __glewVertexAttrib2fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SPROC __glewVertexAttrib2s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVPROC __glewVertexAttrib2sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DPROC __glewVertexAttrib3d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVPROC __glewVertexAttrib3dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FPROC __glewVertexAttrib3f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVPROC __glewVertexAttrib3fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SPROC __glewVertexAttrib3s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVPROC __glewVertexAttrib3sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVPROC __glewVertexAttrib4Nbv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVPROC __glewVertexAttrib4Niv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVPROC __glewVertexAttrib4Nsv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBPROC __glewVertexAttrib4Nub; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVPROC __glewVertexAttrib4Nubv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVPROC __glewVertexAttrib4Nuiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVPROC __glewVertexAttrib4Nusv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVPROC __glewVertexAttrib4bv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DPROC __glewVertexAttrib4d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVPROC __glewVertexAttrib4dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FPROC __glewVertexAttrib4f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVPROC __glewVertexAttrib4fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVPROC __glewVertexAttrib4iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SPROC __glewVertexAttrib4s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVPROC __glewVertexAttrib4sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVPROC __glewVertexAttrib4ubv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVPROC __glewVertexAttrib4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVPROC __glewVertexAttrib4usv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERPROC __glewVertexAttribPointer; - -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVPROC __glewUniformMatrix2x3fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVPROC __glewUniformMatrix2x4fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVPROC __glewUniformMatrix3x2fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv; - -GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender; -GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback; -GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation; -GLEW_FUN_EXPORT PFNGLCLAMPCOLORPROC __glewClampColor; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERFIPROC __glewClearBufferfi; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERFVPROC __glewClearBufferfv; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERIVPROC __glewClearBufferiv; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv; -GLEW_FUN_EXPORT PFNGLCOLORMASKIPROC __glewColorMaski; -GLEW_FUN_EXPORT PFNGLDISABLEIPROC __glewDisablei; -GLEW_FUN_EXPORT PFNGLENABLEIPROC __glewEnablei; -GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender; -GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback; -GLEW_FUN_EXPORT PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v; -GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation; -GLEW_FUN_EXPORT PFNGLGETSTRINGIPROC __glewGetStringi; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying; -GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv; -GLEW_FUN_EXPORT PFNGLISENABLEDIPROC __glewIsEnabledi; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIPROC __glewUniform1ui; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIVPROC __glewUniform1uiv; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIPROC __glewUniform2ui; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIVPROC __glewUniform2uiv; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIPROC __glewUniform3ui; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIVPROC __glewUniform3uiv; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIPROC __glewUniform4ui; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIVPROC __glewUniform4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced; -GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex; -GLEW_FUN_EXPORT PFNGLTEXBUFFERPROC __glewTexBuffer; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture; -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v; -GLEW_FUN_EXPORT PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v; - -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIPROC __glewBlendEquationi; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei; -GLEW_FUN_EXPORT PFNGLBLENDFUNCIPROC __glewBlendFunci; -GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading; - -GLEW_FUN_EXPORT PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX; - -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD; -GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD; -GLEW_FUN_EXPORT PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC __glewMultiDrawElementsIndirectAMD; - -GLEW_FUN_EXPORT PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD; -GLEW_FUN_EXPORT PFNGLGENNAMESAMDPROC __glewGenNamesAMD; -GLEW_FUN_EXPORT PFNGLISNAMEAMDPROC __glewIsNameAMD; - -GLEW_FUN_EXPORT PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD; -GLEW_FUN_EXPORT PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD; -GLEW_FUN_EXPORT PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD; -GLEW_FUN_EXPORT PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD; -GLEW_FUN_EXPORT PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD; - -GLEW_FUN_EXPORT PFNGLSETMULTISAMPLEFVAMDPROC __glewSetMultisamplefvAMD; - -GLEW_FUN_EXPORT PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD; -GLEW_FUN_EXPORT PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD; - -GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE; -GLEW_FUN_EXPORT PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC __glewMultiDrawElementArrayAPPLE; -GLEW_FUN_EXPORT PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC __glewMultiDrawRangeElementArrayAPPLE; - -GLEW_FUN_EXPORT PFNGLDELETEFENCESAPPLEPROC __glewDeleteFencesAPPLE; -GLEW_FUN_EXPORT PFNGLFINISHFENCEAPPLEPROC __glewFinishFenceAPPLE; -GLEW_FUN_EXPORT PFNGLFINISHOBJECTAPPLEPROC __glewFinishObjectAPPLE; -GLEW_FUN_EXPORT PFNGLGENFENCESAPPLEPROC __glewGenFencesAPPLE; -GLEW_FUN_EXPORT PFNGLISFENCEAPPLEPROC __glewIsFenceAPPLE; -GLEW_FUN_EXPORT PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE; -GLEW_FUN_EXPORT PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE; -GLEW_FUN_EXPORT PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE; - -GLEW_FUN_EXPORT PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE; -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE; - -GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE; -GLEW_FUN_EXPORT PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE; -GLEW_FUN_EXPORT PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE; - -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE; -GLEW_FUN_EXPORT PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE; - -GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYAPPLEPROC __glewBindVertexArrayAPPLE; -GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSAPPLEPROC __glewDeleteVertexArraysAPPLE; -GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSAPPLEPROC __glewGenVertexArraysAPPLE; -GLEW_FUN_EXPORT PFNGLISVERTEXARRAYAPPLEPROC __glewIsVertexArrayAPPLE; - -GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeAPPLE; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE; - -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE; -GLEW_FUN_EXPORT PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE; - -GLEW_FUN_EXPORT PFNGLCLEARDEPTHFPROC __glewClearDepthf; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEFPROC __glewDepthRangef; -GLEW_FUN_EXPORT PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat; -GLEW_FUN_EXPORT PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler; -GLEW_FUN_EXPORT PFNGLSHADERBINARYPROC __glewShaderBinary; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC __glewDrawArraysInstancedBaseInstance; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC __glewDrawElementsInstancedBaseInstance; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC __glewDrawElementsInstancedBaseVertexBaseInstance; - -GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed; -GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex; - -GLEW_FUN_EXPORT PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB; - -GLEW_FUN_EXPORT PFNGLCLAMPCOLORARBPROC __glewClampColorARB; - -GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData; - -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB; -GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB; - -GLEW_FUN_EXPORT PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB; -GLEW_FUN_EXPORT PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB; - -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect; - -GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer; -GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer; -GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer; -GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus; -GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers; -GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer; -GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers; -GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers; -GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv; -GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv; -GLEW_FUN_EXPORT PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer; -GLEW_FUN_EXPORT PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer; -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage; -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB; - -GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary; -GLEW_FUN_EXPORT PFNGLPROGRAMBINARYPROC __glewProgramBinary; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri; - -GLEW_FUN_EXPORT PFNGLGETUNIFORMDVPROC __glewGetUniformdv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DEXTPROC __glewProgramUniform1dEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVEXTPROC __glewProgramUniform1dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DEXTPROC __glewProgramUniform2dEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVEXTPROC __glewProgramUniform2dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DEXTPROC __glewProgramUniform3dEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVEXTPROC __glewProgramUniform3dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DEXTPROC __glewProgramUniform4dEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVEXTPROC __glewProgramUniform4dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC __glewProgramUniformMatrix2dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC __glewProgramUniformMatrix2x3dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC __glewProgramUniformMatrix2x4dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC __glewProgramUniformMatrix3dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC __glewProgramUniformMatrix3x2dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC __glewProgramUniformMatrix3x4dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC __glewProgramUniformMatrix4dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC __glewProgramUniformMatrix4x2dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC __glewProgramUniformMatrix4x3dvEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM1DPROC __glewUniform1d; -GLEW_FUN_EXPORT PFNGLUNIFORM1DVPROC __glewUniform1dv; -GLEW_FUN_EXPORT PFNGLUNIFORM2DPROC __glewUniform2d; -GLEW_FUN_EXPORT PFNGLUNIFORM2DVPROC __glewUniform2dv; -GLEW_FUN_EXPORT PFNGLUNIFORM3DPROC __glewUniform3d; -GLEW_FUN_EXPORT PFNGLUNIFORM3DVPROC __glewUniform3dv; -GLEW_FUN_EXPORT PFNGLUNIFORM4DPROC __glewUniform4d; -GLEW_FUN_EXPORT PFNGLUNIFORM4DVPROC __glewUniform4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv; - -GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEPROC __glewColorSubTable; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPROC __glewColorTable; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv; -GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable; -GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPROC __glewGetColorTable; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPROC __glewGetHistogram; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv; -GLEW_FUN_EXPORT PFNGLGETMINMAXPROC __glewGetMinmax; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv; -GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter; -GLEW_FUN_EXPORT PFNGLHISTOGRAMPROC __glewHistogram; -GLEW_FUN_EXPORT PFNGLMINMAXPROC __glewMinmax; -GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMPROC __glewResetHistogram; -GLEW_FUN_EXPORT PFNGLRESETMINMAXPROC __glewResetMinmax; -GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB; - -GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATIVPROC __glewGetInternalformativ; - -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange; -GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange; - -GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXUIVARBPROC __glewMatrixIndexuivARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXUSVARBPROC __glewMatrixIndexusvARB; - -GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEARBPROC __glewSampleCoverageARB; - -GLEW_FUN_EXPORT PFNGLACTIVETEXTUREARBPROC __glewActiveTextureARB; -GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREARBPROC __glewClientActiveTextureARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DARBPROC __glewMultiTexCoord1dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVARBPROC __glewMultiTexCoord1dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FARBPROC __glewMultiTexCoord1fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVARBPROC __glewMultiTexCoord1fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IARBPROC __glewMultiTexCoord1iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVARBPROC __glewMultiTexCoord1ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SARBPROC __glewMultiTexCoord1sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVARBPROC __glewMultiTexCoord1svARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DARBPROC __glewMultiTexCoord2dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVARBPROC __glewMultiTexCoord2dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FARBPROC __glewMultiTexCoord2fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVARBPROC __glewMultiTexCoord2fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IARBPROC __glewMultiTexCoord2iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVARBPROC __glewMultiTexCoord2ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SARBPROC __glewMultiTexCoord2sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVARBPROC __glewMultiTexCoord2svARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DARBPROC __glewMultiTexCoord3dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVARBPROC __glewMultiTexCoord3dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FARBPROC __glewMultiTexCoord3fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVARBPROC __glewMultiTexCoord3fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IARBPROC __glewMultiTexCoord3iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVARBPROC __glewMultiTexCoord3ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SARBPROC __glewMultiTexCoord3sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVARBPROC __glewMultiTexCoord3svARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DARBPROC __glewMultiTexCoord4dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVARBPROC __glewMultiTexCoord4dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FARBPROC __glewMultiTexCoord4fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVARBPROC __glewMultiTexCoord4fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IARBPROC __glewMultiTexCoord4iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVARBPROC __glewMultiTexCoord4ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SARBPROC __glewMultiTexCoord4sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVARBPROC __glewMultiTexCoord4svARB; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYARBPROC __glewBeginQueryARB; -GLEW_FUN_EXPORT PFNGLDELETEQUERIESARBPROC __glewDeleteQueriesARB; -GLEW_FUN_EXPORT PFNGLENDQUERYARBPROC __glewEndQueryARB; -GLEW_FUN_EXPORT PFNGLGENQUERIESARBPROC __glewGenQueriesARB; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVARBPROC __glewGetQueryObjectivARB; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVARBPROC __glewGetQueryObjectuivARB; -GLEW_FUN_EXPORT PFNGLGETQUERYIVARBPROC __glewGetQueryivARB; -GLEW_FUN_EXPORT PFNGLISQUERYARBPROC __glewIsQueryARB; - -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB; - -GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex; - -GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSARBPROC __glewGetGraphicsResetStatusARB; -GLEW_FUN_EXPORT PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB; -GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB; -GLEW_FUN_EXPORT PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB; -GLEW_FUN_EXPORT PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB; -GLEW_FUN_EXPORT PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB; -GLEW_FUN_EXPORT PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB; -GLEW_FUN_EXPORT PFNGLGETNMAPIVARBPROC __glewGetnMapivARB; -GLEW_FUN_EXPORT PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB; -GLEW_FUN_EXPORT PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB; -GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB; -GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB; -GLEW_FUN_EXPORT PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB; -GLEW_FUN_EXPORT PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB; -GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB; -GLEW_FUN_EXPORT PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB; - -GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB; - -GLEW_FUN_EXPORT PFNGLBINDSAMPLERPROC __glewBindSampler; -GLEW_FUN_EXPORT PFNGLDELETESAMPLERSPROC __glewDeleteSamplers; -GLEW_FUN_EXPORT PFNGLGENSAMPLERSPROC __glewGenSamplers; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv; -GLEW_FUN_EXPORT PFNGLISSAMPLERPROC __glewIsSampler; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv; - -GLEW_FUN_EXPORT PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram; -GLEW_FUN_EXPORT PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline; -GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines; -GLEW_FUN_EXPORT PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv; -GLEW_FUN_EXPORT PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv; -GLEW_FUN_EXPORT PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages; -GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline; - -GLEW_FUN_EXPORT PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC __glewGetActiveAtomicCounterBufferiv; - -GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREPROC __glewBindImageTexture; -GLEW_FUN_EXPORT PFNGLMEMORYBARRIERPROC __glewMemoryBarrier; - -GLEW_FUN_EXPORT PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB; -GLEW_FUN_EXPORT PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB; -GLEW_FUN_EXPORT PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB; -GLEW_FUN_EXPORT PFNGLCREATESHADEROBJECTARBPROC __glewCreateShaderObjectARB; -GLEW_FUN_EXPORT PFNGLDELETEOBJECTARBPROC __glewDeleteObjectARB; -GLEW_FUN_EXPORT PFNGLDETACHOBJECTARBPROC __glewDetachObjectARB; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMARBPROC __glewGetActiveUniformARB; -GLEW_FUN_EXPORT PFNGLGETATTACHEDOBJECTSARBPROC __glewGetAttachedObjectsARB; -GLEW_FUN_EXPORT PFNGLGETHANDLEARBPROC __glewGetHandleARB; -GLEW_FUN_EXPORT PFNGLGETINFOLOGARBPROC __glewGetInfoLogARB; -GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERFVARBPROC __glewGetObjectParameterfvARB; -GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVARBPROC __glewGetObjectParameterivARB; -GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEARBPROC __glewGetShaderSourceARB; -GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONARBPROC __glewGetUniformLocationARB; -GLEW_FUN_EXPORT PFNGLGETUNIFORMFVARBPROC __glewGetUniformfvARB; -GLEW_FUN_EXPORT PFNGLGETUNIFORMIVARBPROC __glewGetUniformivARB; -GLEW_FUN_EXPORT PFNGLLINKPROGRAMARBPROC __glewLinkProgramARB; -GLEW_FUN_EXPORT PFNGLSHADERSOURCEARBPROC __glewShaderSourceARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1FARBPROC __glewUniform1fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1FVARBPROC __glewUniform1fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1IARBPROC __glewUniform1iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1IVARBPROC __glewUniform1ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2FARBPROC __glewUniform2fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2FVARBPROC __glewUniform2fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2IARBPROC __glewUniform2iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2IVARBPROC __glewUniform2ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3FARBPROC __glewUniform3fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3FVARBPROC __glewUniform3fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3IARBPROC __glewUniform3iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3IVARBPROC __glewUniform3ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4FARBPROC __glewUniform4fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4FVARBPROC __glewUniform4fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4IARBPROC __glewUniform4iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4IVARBPROC __glewUniform4ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVARBPROC __glewUniformMatrix2fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVARBPROC __glewUniformMatrix3fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB; -GLEW_FUN_EXPORT PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB; -GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB; - -GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName; -GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName; -GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv; -GLEW_FUN_EXPORT PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv; -GLEW_FUN_EXPORT PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex; -GLEW_FUN_EXPORT PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation; -GLEW_FUN_EXPORT PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv; -GLEW_FUN_EXPORT PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv; - -GLEW_FUN_EXPORT PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB; -GLEW_FUN_EXPORT PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB; -GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB; -GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB; -GLEW_FUN_EXPORT PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB; -GLEW_FUN_EXPORT PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB; - -GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync; -GLEW_FUN_EXPORT PFNGLDELETESYNCPROC __glewDeleteSync; -GLEW_FUN_EXPORT PFNGLFENCESYNCPROC __glewFenceSync; -GLEW_FUN_EXPORT PFNGLGETINTEGER64VPROC __glewGetInteger64v; -GLEW_FUN_EXPORT PFNGLGETSYNCIVPROC __glewGetSynciv; -GLEW_FUN_EXPORT PFNGLISSYNCPROC __glewIsSync; -GLEW_FUN_EXPORT PFNGLWAITSYNCPROC __glewWaitSync; - -GLEW_FUN_EXPORT PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv; -GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIPROC __glewPatchParameteri; - -GLEW_FUN_EXPORT PFNGLTEXBUFFERARBPROC __glewTexBufferARB; - -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC __glewCompressedTexSubImage1DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB; - -GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv; -GLEW_FUN_EXPORT PFNGLSAMPLEMASKIPROC __glewSampleMaski; -GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample; -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample; - -GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DPROC __glewTexStorage1D; -GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DPROC __glewTexStorage2D; -GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DPROC __glewTexStorage3D; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT; - -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v; -GLEW_FUN_EXPORT PFNGLQUERYCOUNTERPROC __glewQueryCounter; - -GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback; -GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback; -GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks; -GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback; -GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback; -GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream; -GLEW_FUN_EXPORT PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed; -GLEW_FUN_EXPORT PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv; - -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC __glewDrawTransformFeedbackInstanced; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC __glewDrawTransformFeedbackStreamInstanced; - -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB; -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB; - -GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEPROC __glewBindBufferBase; -GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv; -GLEW_FUN_EXPORT PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v; -GLEW_FUN_EXPORT PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex; -GLEW_FUN_EXPORT PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices; -GLEW_FUN_EXPORT PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding; - -GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray; -GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays; -GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays; -GLEW_FUN_EXPORT PFNGLISVERTEXARRAYPROC __glewIsVertexArray; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer; - -GLEW_FUN_EXPORT PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB; -GLEW_FUN_EXPORT PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB; -GLEW_FUN_EXPORT PFNGLWEIGHTBVARBPROC __glewWeightbvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTDVARBPROC __glewWeightdvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTFVARBPROC __glewWeightfvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTIVARBPROC __glewWeightivARB; -GLEW_FUN_EXPORT PFNGLWEIGHTSVARBPROC __glewWeightsvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTUBVARBPROC __glewWeightubvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTUIVARBPROC __glewWeightuivARB; -GLEW_FUN_EXPORT PFNGLWEIGHTUSVARBPROC __glewWeightusvARB; - -GLEW_FUN_EXPORT PFNGLBINDBUFFERARBPROC __glewBindBufferARB; -GLEW_FUN_EXPORT PFNGLBUFFERDATAARBPROC __glewBufferDataARB; -GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAARBPROC __glewBufferSubDataARB; -GLEW_FUN_EXPORT PFNGLDELETEBUFFERSARBPROC __glewDeleteBuffersARB; -GLEW_FUN_EXPORT PFNGLGENBUFFERSARBPROC __glewGenBuffersARB; -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVARBPROC __glewGetBufferParameterivARB; -GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVARBPROC __glewGetBufferPointervARB; -GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAARBPROC __glewGetBufferSubDataARB; -GLEW_FUN_EXPORT PFNGLISBUFFERARBPROC __glewIsBufferARB; -GLEW_FUN_EXPORT PFNGLMAPBUFFERARBPROC __glewMapBufferARB; -GLEW_FUN_EXPORT PFNGLUNMAPBUFFERARBPROC __glewUnmapBufferARB; - -GLEW_FUN_EXPORT PFNGLBINDPROGRAMARBPROC __glewBindProgramARB; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSARBPROC __glewDeleteProgramsARB; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYARBPROC __glewDisableVertexAttribArrayARB; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYARBPROC __glewEnableVertexAttribArrayARB; -GLEW_FUN_EXPORT PFNGLGENPROGRAMSARBPROC __glewGenProgramsARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERDVARBPROC __glewGetProgramEnvParameterdvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERFVARBPROC __glewGetProgramEnvParameterfvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC __glewGetProgramLocalParameterdvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC __glewGetProgramLocalParameterfvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGARBPROC __glewGetProgramStringARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMIVARBPROC __glewGetProgramivARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVARBPROC __glewGetVertexAttribPointervARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVARBPROC __glewGetVertexAttribdvARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVARBPROC __glewGetVertexAttribfvARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVARBPROC __glewGetVertexAttribivARB; -GLEW_FUN_EXPORT PFNGLISPROGRAMARBPROC __glewIsProgramARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DARBPROC __glewProgramEnvParameter4dARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DVARBPROC __glewProgramEnvParameter4dvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FARBPROC __glewProgramEnvParameter4fARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FVARBPROC __glewProgramEnvParameter4fvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DARBPROC __glewProgramLocalParameter4dARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DVARBPROC __glewProgramLocalParameter4dvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FARBPROC __glewProgramLocalParameter4fARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FVARBPROC __glewProgramLocalParameter4fvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMSTRINGARBPROC __glewProgramStringARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DARBPROC __glewVertexAttrib1dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVARBPROC __glewVertexAttrib1dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FARBPROC __glewVertexAttrib1fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVARBPROC __glewVertexAttrib1fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SARBPROC __glewVertexAttrib1sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVARBPROC __glewVertexAttrib1svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DARBPROC __glewVertexAttrib2dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVARBPROC __glewVertexAttrib2dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FARBPROC __glewVertexAttrib2fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVARBPROC __glewVertexAttrib2fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SARBPROC __glewVertexAttrib2sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVARBPROC __glewVertexAttrib2svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DARBPROC __glewVertexAttrib3dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVARBPROC __glewVertexAttrib3dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FARBPROC __glewVertexAttrib3fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVARBPROC __glewVertexAttrib3fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SARBPROC __glewVertexAttrib3sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVARBPROC __glewVertexAttrib3svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVARBPROC __glewVertexAttrib4NbvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVARBPROC __glewVertexAttrib4NivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVARBPROC __glewVertexAttrib4NsvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBARBPROC __glewVertexAttrib4NubARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVARBPROC __glewVertexAttrib4NubvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVARBPROC __glewVertexAttrib4NuivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVARBPROC __glewVertexAttrib4NusvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVARBPROC __glewVertexAttrib4bvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DARBPROC __glewVertexAttrib4dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVARBPROC __glewVertexAttrib4dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FARBPROC __glewVertexAttrib4fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVARBPROC __glewVertexAttrib4fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVARBPROC __glewVertexAttrib4ivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SARBPROC __glewVertexAttrib4sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVARBPROC __glewVertexAttrib4svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVARBPROC __glewVertexAttrib4ubvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVARBPROC __glewVertexAttrib4uivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVARBPROC __glewVertexAttrib4usvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERARBPROC __glewVertexAttribPointerARB; - -GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB; -GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB; -GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB; - -GLEW_FUN_EXPORT PFNGLCOLORP3UIPROC __glewColorP3ui; -GLEW_FUN_EXPORT PFNGLCOLORP3UIVPROC __glewColorP3uiv; -GLEW_FUN_EXPORT PFNGLCOLORP4UIPROC __glewColorP4ui; -GLEW_FUN_EXPORT PFNGLCOLORP4UIVPROC __glewColorP4uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv; -GLEW_FUN_EXPORT PFNGLNORMALP3UIPROC __glewNormalP3ui; -GLEW_FUN_EXPORT PFNGLNORMALP3UIVPROC __glewNormalP3uiv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXP2UIPROC __glewVertexP2ui; -GLEW_FUN_EXPORT PFNGLVERTEXP2UIVPROC __glewVertexP2uiv; -GLEW_FUN_EXPORT PFNGLVERTEXP3UIPROC __glewVertexP3ui; -GLEW_FUN_EXPORT PFNGLVERTEXP3UIVPROC __glewVertexP3uiv; -GLEW_FUN_EXPORT PFNGLVERTEXP4UIPROC __glewVertexP4ui; -GLEW_FUN_EXPORT PFNGLVERTEXP4UIVPROC __glewVertexP4uiv; - -GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed; -GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v; -GLEW_FUN_EXPORT PFNGLGETFLOATI_VPROC __glewGetFloati_v; -GLEW_FUN_EXPORT PFNGLSCISSORARRAYVPROC __glewScissorArrayv; -GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDPROC __glewScissorIndexed; -GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv; -GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv; -GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf; -GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv; - -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVARBPROC __glewWindowPos2fvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IARBPROC __glewWindowPos2iARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVARBPROC __glewWindowPos2ivARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SARBPROC __glewWindowPos2sARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVARBPROC __glewWindowPos2svARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DARBPROC __glewWindowPos3dARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVARBPROC __glewWindowPos3dvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FARBPROC __glewWindowPos3fARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVARBPROC __glewWindowPos3fvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IARBPROC __glewWindowPos3iARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVARBPROC __glewWindowPos3ivARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SARBPROC __glewWindowPos3sARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVARBPROC __glewWindowPos3svARB; - -GLEW_FUN_EXPORT PFNGLDRAWBUFFERSATIPROC __glewDrawBuffersATI; - -GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYATIPROC __glewDrawElementArrayATI; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYATIPROC __glewDrawRangeElementArrayATI; -GLEW_FUN_EXPORT PFNGLELEMENTPOINTERATIPROC __glewElementPointerATI; - -GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERFVATIPROC __glewGetTexBumpParameterfvATI; -GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERIVATIPROC __glewGetTexBumpParameterivATI; -GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERFVATIPROC __glewTexBumpParameterfvATI; -GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERIVATIPROC __glewTexBumpParameterivATI; - -GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP1ATIPROC __glewAlphaFragmentOp1ATI; -GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP2ATIPROC __glewAlphaFragmentOp2ATI; -GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP3ATIPROC __glewAlphaFragmentOp3ATI; -GLEW_FUN_EXPORT PFNGLBEGINFRAGMENTSHADERATIPROC __glewBeginFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLBINDFRAGMENTSHADERATIPROC __glewBindFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP1ATIPROC __glewColorFragmentOp1ATI; -GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP2ATIPROC __glewColorFragmentOp2ATI; -GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP3ATIPROC __glewColorFragmentOp3ATI; -GLEW_FUN_EXPORT PFNGLDELETEFRAGMENTSHADERATIPROC __glewDeleteFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLENDFRAGMENTSHADERATIPROC __glewEndFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLGENFRAGMENTSHADERSATIPROC __glewGenFragmentShadersATI; -GLEW_FUN_EXPORT PFNGLPASSTEXCOORDATIPROC __glewPassTexCoordATI; -GLEW_FUN_EXPORT PFNGLSAMPLEMAPATIPROC __glewSampleMapATI; -GLEW_FUN_EXPORT PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderConstantATI; - -GLEW_FUN_EXPORT PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI; -GLEW_FUN_EXPORT PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI; - -GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glewPNTrianglesfATI; -GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glewPNTrianglesiATI; - -GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI; -GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI; - -GLEW_FUN_EXPORT PFNGLARRAYOBJECTATIPROC __glewArrayObjectATI; -GLEW_FUN_EXPORT PFNGLFREEOBJECTBUFFERATIPROC __glewFreeObjectBufferATI; -GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTFVATIPROC __glewGetArrayObjectfvATI; -GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTIVATIPROC __glewGetArrayObjectivATI; -GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERFVATIPROC __glewGetObjectBufferfvATI; -GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERIVATIPROC __glewGetObjectBufferivATI; -GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTFVATIPROC __glewGetVariantArrayObjectfvATI; -GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTIVATIPROC __glewGetVariantArrayObjectivATI; -GLEW_FUN_EXPORT PFNGLISOBJECTBUFFERATIPROC __glewIsObjectBufferATI; -GLEW_FUN_EXPORT PFNGLNEWOBJECTBUFFERATIPROC __glewNewObjectBufferATI; -GLEW_FUN_EXPORT PFNGLUPDATEOBJECTBUFFERATIPROC __glewUpdateObjectBufferATI; -GLEW_FUN_EXPORT PFNGLVARIANTARRAYOBJECTATIPROC __glewVariantArrayObjectATI; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC __glewGetVertexAttribArrayObjectfvATI; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC __glewGetVertexAttribArrayObjectivATI; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBARRAYOBJECTATIPROC __glewVertexAttribArrayObjectATI; - -GLEW_FUN_EXPORT PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC __glewClientActiveVertexStreamATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BATIPROC __glewNormalStream3bATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BVATIPROC __glewNormalStream3bvATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DATIPROC __glewNormalStream3dATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DVATIPROC __glewNormalStream3dvATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FATIPROC __glewNormalStream3fATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FVATIPROC __glewNormalStream3fvATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IATIPROC __glewNormalStream3iATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IVATIPROC __glewNormalStream3ivATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SATIPROC __glewNormalStream3sATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SVATIPROC __glewNormalStream3svATI; -GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVFATIPROC __glewVertexBlendEnvfATI; -GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVIATIPROC __glewVertexBlendEnviATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DATIPROC __glewVertexStream2dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DVATIPROC __glewVertexStream2dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FATIPROC __glewVertexStream2fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FVATIPROC __glewVertexStream2fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IATIPROC __glewVertexStream2iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IVATIPROC __glewVertexStream2ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SATIPROC __glewVertexStream2sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SVATIPROC __glewVertexStream2svATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DATIPROC __glewVertexStream3dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DVATIPROC __glewVertexStream3dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FATIPROC __glewVertexStream3fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FVATIPROC __glewVertexStream3fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IATIPROC __glewVertexStream3iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IVATIPROC __glewVertexStream3ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SATIPROC __glewVertexStream3sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SVATIPROC __glewVertexStream3svATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DATIPROC __glewVertexStream4dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DVATIPROC __glewVertexStream4dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FATIPROC __glewVertexStream4fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FVATIPROC __glewVertexStream4fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IATIPROC __glewVertexStream4iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI; - -GLEW_FUN_EXPORT PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT; -GLEW_FUN_EXPORT PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT; -GLEW_FUN_EXPORT PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT; - -GLEW_FUN_EXPORT PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT; - -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT; - -GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT; -GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT; - -GLEW_FUN_EXPORT PFNGLLOCKARRAYSEXTPROC __glewLockArraysEXT; -GLEW_FUN_EXPORT PFNGLUNLOCKARRAYSEXTPROC __glewUnlockArraysEXT; - -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DEXTPROC __glewConvolutionFilter1DEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DEXTPROC __glewConvolutionFilter2DEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFEXTPROC __glewConvolutionParameterfEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVEXTPROC __glewConvolutionParameterfvEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIEXTPROC __glewConvolutionParameteriEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVEXTPROC __glewConvolutionParameterivEXT; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC __glewCopyConvolutionFilter1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC __glewCopyConvolutionFilter2DEXT; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTEREXTPROC __glewGetConvolutionFilterEXT; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC __glewGetConvolutionParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC __glewGetConvolutionParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTEREXTPROC __glewGetSeparableFilterEXT; -GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT; - -GLEW_FUN_EXPORT PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT; -GLEW_FUN_EXPORT PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT; - -GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE2DEXTPROC __glewCopyTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DEXTPROC __glewCopyTexSubImage3DEXT; - -GLEW_FUN_EXPORT PFNGLCULLPARAMETERDVEXTPROC __glewCullParameterdvEXT; -GLEW_FUN_EXPORT PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT; - -GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT; - -GLEW_FUN_EXPORT PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT; -GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT; -GLEW_FUN_EXPORT PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT; -GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT; -GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT; -GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT; -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT; -GLEW_FUN_EXPORT PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT; -GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT; -GLEW_FUN_EXPORT PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT; -GLEW_FUN_EXPORT PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT; -GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT; -GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT; -GLEW_FUN_EXPORT PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT; -GLEW_FUN_EXPORT PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT; -GLEW_FUN_EXPORT PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT; -GLEW_FUN_EXPORT PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT; -GLEW_FUN_EXPORT PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT; -GLEW_FUN_EXPORT PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT; -GLEW_FUN_EXPORT PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT; -GLEW_FUN_EXPORT PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT; -GLEW_FUN_EXPORT PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT; - -GLEW_FUN_EXPORT PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT; -GLEW_FUN_EXPORT PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT; -GLEW_FUN_EXPORT PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT; -GLEW_FUN_EXPORT PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT; -GLEW_FUN_EXPORT PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT; - -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT; - -GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDFEXTPROC __glewFogCoordfEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDFVEXTPROC __glewFogCoordfvEXT; - -GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALEXTPROC __glewFragmentColorMaterialEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFEXTPROC __glewFragmentLightModelfEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVEXTPROC __glewFragmentLightModelfvEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIEXTPROC __glewFragmentLightModeliEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVEXTPROC __glewFragmentLightModelivEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFEXTPROC __glewFragmentLightfEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVEXTPROC __glewFragmentLightfvEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIEXTPROC __glewFragmentLightiEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVEXTPROC __glewFragmentLightivEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFEXTPROC __glewFragmentMaterialfEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVEXTPROC __glewFragmentMaterialfvEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIEXTPROC __glewFragmentMaterialiEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVEXTPROC __glewFragmentMaterialivEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVEXTPROC __glewGetFragmentLightfvEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVEXTPROC __glewGetFragmentLightivEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVEXTPROC __glewGetFragmentMaterialfvEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVEXTPROC __glewGetFragmentMaterialivEXT; -GLEW_FUN_EXPORT PFNGLLIGHTENVIEXTPROC __glewLightEnviEXT; - -GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFEREXTPROC __glewBlitFramebufferEXT; - -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewRenderbufferStorageMultisampleEXT; - -GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEREXTPROC __glewBindFramebufferEXT; -GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEREXTPROC __glewBindRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC __glewCheckFramebufferStatusEXT; -GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSEXTPROC __glewDeleteFramebuffersEXT; -GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSEXTPROC __glewDeleteRenderbuffersEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC __glewFramebufferRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DEXTPROC __glewFramebufferTexture1DEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DEXTPROC __glewFramebufferTexture2DEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DEXTPROC __glewFramebufferTexture3DEXT; -GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSEXTPROC __glewGenFramebuffersEXT; -GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSEXTPROC __glewGenRenderbuffersEXT; -GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPEXTPROC __glewGenerateMipmapEXT; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetFramebufferAttachmentParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC __glewGetRenderbufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEREXTPROC __glewIsFramebufferEXT; -GLEW_FUN_EXPORT PFNGLISRENDERBUFFEREXTPROC __glewIsRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT; - -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC __glewProgramLocalParameters4fvEXT; - -GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONEXTPROC __glewBindFragDataLocationEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONEXTPROC __glewGetFragDataLocationEXT; -GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVEXTPROC __glewGetUniformuivEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVEXTPROC __glewGetVertexAttribIivEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVEXTPROC __glewGetVertexAttribIuivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIEXTPROC __glewUniform1uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIVEXTPROC __glewUniform1uivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIEXTPROC __glewUniform2uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIVEXTPROC __glewUniform2uivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIEXTPROC __glewUniform3uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIVEXTPROC __glewUniform3uivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIEXTPROC __glewUniform4uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIVEXTPROC __glewUniform4uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IEXTPROC __glewVertexAttribI1iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVEXTPROC __glewVertexAttribI1ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIEXTPROC __glewVertexAttribI1uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVEXTPROC __glewVertexAttribI1uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IEXTPROC __glewVertexAttribI2iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVEXTPROC __glewVertexAttribI2ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIEXTPROC __glewVertexAttribI2uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVEXTPROC __glewVertexAttribI2uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IEXTPROC __glewVertexAttribI3iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVEXTPROC __glewVertexAttribI3ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIEXTPROC __glewVertexAttribI3uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVEXTPROC __glewVertexAttribI3uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVEXTPROC __glewVertexAttribI4bvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IEXTPROC __glewVertexAttribI4iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVEXTPROC __glewVertexAttribI4ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVEXTPROC __glewVertexAttribI4svEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVEXTPROC __glewVertexAttribI4ubvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIEXTPROC __glewVertexAttribI4uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVEXTPROC __glewVertexAttribI4uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVEXTPROC __glewVertexAttribI4usvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTEREXTPROC __glewVertexAttribIPointerEXT; - -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMEXTPROC __glewGetHistogramEXT; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVEXTPROC __glewGetHistogramParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVEXTPROC __glewGetHistogramParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETMINMAXEXTPROC __glewGetMinmaxEXT; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVEXTPROC __glewGetMinmaxParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVEXTPROC __glewGetMinmaxParameterivEXT; -GLEW_FUN_EXPORT PFNGLHISTOGRAMEXTPROC __glewHistogramEXT; -GLEW_FUN_EXPORT PFNGLMINMAXEXTPROC __glewMinmaxEXT; -GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMEXTPROC __glewResetHistogramEXT; -GLEW_FUN_EXPORT PFNGLRESETMINMAXEXTPROC __glewResetMinmaxEXT; - -GLEW_FUN_EXPORT PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT; - -GLEW_FUN_EXPORT PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT; - -GLEW_FUN_EXPORT PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT; -GLEW_FUN_EXPORT PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT; - -GLEW_FUN_EXPORT PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT; -GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT; - -GLEW_FUN_EXPORT PFNGLCOLORTABLEEXTPROC __glewColorTableEXT; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVEXTPROC __glewGetColorTableParameterivEXT; - -GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC __glewGetPixelTransformParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC __glewGetPixelTransformParameterivEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFEXTPROC __glewPixelTransformParameterfEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC __glewPixelTransformParameterfvEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIEXTPROC __glewPixelTransformParameteriEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC __glewPixelTransformParameterivEXT; - -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFEXTPROC __glewPointParameterfEXT; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT; - -GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT; - -GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT; - -GLEW_FUN_EXPORT PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT; -GLEW_FUN_EXPORT PFNGLENDSCENEEXTPROC __glewEndSceneEXT; - -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BEXTPROC __glewSecondaryColor3bEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVEXTPROC __glewSecondaryColor3bvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DEXTPROC __glewSecondaryColor3dEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVEXTPROC __glewSecondaryColor3dvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FEXTPROC __glewSecondaryColor3fEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVEXTPROC __glewSecondaryColor3fvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IEXTPROC __glewSecondaryColor3iEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVEXTPROC __glewSecondaryColor3ivEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SEXTPROC __glewSecondaryColor3sEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVEXTPROC __glewSecondaryColor3svEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBEXTPROC __glewSecondaryColor3ubEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVEXTPROC __glewSecondaryColor3ubvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIEXTPROC __glewSecondaryColor3uiEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVEXTPROC __glewSecondaryColor3uivEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT; - -GLEW_FUN_EXPORT PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT; -GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT; -GLEW_FUN_EXPORT PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT; - -GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT; -GLEW_FUN_EXPORT PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT; - -GLEW_FUN_EXPORT PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT; - -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT; - -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT; - -GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT; - -GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT; -GLEW_FUN_EXPORT PFNGLCLEARCOLORIUIEXTPROC __glewClearColorIuiEXT; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVEXTPROC __glewGetTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVEXTPROC __glewGetTexParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVEXTPROC __glewTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVEXTPROC __glewTexParameterIuivEXT; - -GLEW_FUN_EXPORT PFNGLARETEXTURESRESIDENTEXTPROC __glewAreTexturesResidentEXT; -GLEW_FUN_EXPORT PFNGLBINDTEXTUREEXTPROC __glewBindTextureEXT; -GLEW_FUN_EXPORT PFNGLDELETETEXTURESEXTPROC __glewDeleteTexturesEXT; -GLEW_FUN_EXPORT PFNGLGENTEXTURESEXTPROC __glewGenTexturesEXT; -GLEW_FUN_EXPORT PFNGLISTEXTUREEXTPROC __glewIsTextureEXT; -GLEW_FUN_EXPORT PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT; - -GLEW_FUN_EXPORT PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT; - -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT; - -GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT; -GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT; -GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT; -GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT; -GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT; - -GLEW_FUN_EXPORT PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT; -GLEW_FUN_EXPORT PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT; -GLEW_FUN_EXPORT PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT; -GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT; -GLEW_FUN_EXPORT PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT; -GLEW_FUN_EXPORT PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT; -GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT; -GLEW_FUN_EXPORT PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT; - -GLEW_FUN_EXPORT PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDPARAMETEREXTPROC __glewBindParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDTEXGENPARAMETEREXTPROC __glewBindTexGenParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPARAMETEREXTPROC __glewBindTextureUnitParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDVERTEXSHADEREXTPROC __glewBindVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLDELETEVERTEXSHADEREXTPROC __glewDeleteVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC __glewDisableVariantClientStateEXT; -GLEW_FUN_EXPORT PFNGLENABLEVARIANTCLIENTSTATEEXTPROC __glewEnableVariantClientStateEXT; -GLEW_FUN_EXPORT PFNGLENDVERTEXSHADEREXTPROC __glewEndVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLEXTRACTCOMPONENTEXTPROC __glewExtractComponentEXT; -GLEW_FUN_EXPORT PFNGLGENSYMBOLSEXTPROC __glewGenSymbolsEXT; -GLEW_FUN_EXPORT PFNGLGENVERTEXSHADERSEXTPROC __glewGenVertexShadersEXT; -GLEW_FUN_EXPORT PFNGLGETINVARIANTBOOLEANVEXTPROC __glewGetInvariantBooleanvEXT; -GLEW_FUN_EXPORT PFNGLGETINVARIANTFLOATVEXTPROC __glewGetInvariantFloatvEXT; -GLEW_FUN_EXPORT PFNGLGETINVARIANTINTEGERVEXTPROC __glewGetInvariantIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC __glewGetLocalConstantBooleanvEXT; -GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTFLOATVEXTPROC __glewGetLocalConstantFloatvEXT; -GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTINTEGERVEXTPROC __glewGetLocalConstantIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTBOOLEANVEXTPROC __glewGetVariantBooleanvEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTFLOATVEXTPROC __glewGetVariantFloatvEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTINTEGERVEXTPROC __glewGetVariantIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTPOINTERVEXTPROC __glewGetVariantPointervEXT; -GLEW_FUN_EXPORT PFNGLINSERTCOMPONENTEXTPROC __glewInsertComponentEXT; -GLEW_FUN_EXPORT PFNGLISVARIANTENABLEDEXTPROC __glewIsVariantEnabledEXT; -GLEW_FUN_EXPORT PFNGLSETINVARIANTEXTPROC __glewSetInvariantEXT; -GLEW_FUN_EXPORT PFNGLSETLOCALCONSTANTEXTPROC __glewSetLocalConstantEXT; -GLEW_FUN_EXPORT PFNGLSHADEROP1EXTPROC __glewShaderOp1EXT; -GLEW_FUN_EXPORT PFNGLSHADEROP2EXTPROC __glewShaderOp2EXT; -GLEW_FUN_EXPORT PFNGLSHADEROP3EXTPROC __glewShaderOp3EXT; -GLEW_FUN_EXPORT PFNGLSWIZZLEEXTPROC __glewSwizzleEXT; -GLEW_FUN_EXPORT PFNGLVARIANTPOINTEREXTPROC __glewVariantPointerEXT; -GLEW_FUN_EXPORT PFNGLVARIANTBVEXTPROC __glewVariantbvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTDVEXTPROC __glewVariantdvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTFVEXTPROC __glewVariantfvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTIVEXTPROC __glewVariantivEXT; -GLEW_FUN_EXPORT PFNGLVARIANTSVEXTPROC __glewVariantsvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTUBVEXTPROC __glewVariantubvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTUIVEXTPROC __glewVariantuivEXT; -GLEW_FUN_EXPORT PFNGLVARIANTUSVEXTPROC __glewVariantusvEXT; -GLEW_FUN_EXPORT PFNGLWRITEMASKEXTPROC __glewWriteMaskEXT; - -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT; - -GLEW_FUN_EXPORT PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT; - -GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY; - -GLEW_FUN_EXPORT PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY; - -GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP; -GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC __glewGetImageTransformParameterivHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFHPPROC __glewImageTransformParameterfHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFVHPPROC __glewImageTransformParameterfvHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIHPPROC __glewImageTransformParameteriHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIVHPPROC __glewImageTransformParameterivHP; - -GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWARRAYSIBMPROC __glewMultiModeDrawArraysIBM; -GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWELEMENTSIBMPROC __glewMultiModeDrawElementsIBM; - -GLEW_FUN_EXPORT PFNGLCOLORPOINTERLISTIBMPROC __glewColorPointerListIBM; -GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTERLISTIBMPROC __glewEdgeFlagPointerListIBM; -GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERLISTIBMPROC __glewFogCoordPointerListIBM; -GLEW_FUN_EXPORT PFNGLINDEXPOINTERLISTIBMPROC __glewIndexPointerListIBM; -GLEW_FUN_EXPORT PFNGLNORMALPOINTERLISTIBMPROC __glewNormalPointerListIBM; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM; -GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM; -GLEW_FUN_EXPORT PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM; - -GLEW_FUN_EXPORT PFNGLCOLORPOINTERVINTELPROC __glewColorPointervINTEL; -GLEW_FUN_EXPORT PFNGLNORMALPOINTERVINTELPROC __glewNormalPointervINTEL; -GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERVINTELPROC __glewTexCoordPointervINTEL; -GLEW_FUN_EXPORT PFNGLVERTEXPOINTERVINTELPROC __glewVertexPointervINTEL; - -GLEW_FUN_EXPORT PFNGLTEXSCISSORFUNCINTELPROC __glewTexScissorFuncINTEL; -GLEW_FUN_EXPORT PFNGLTEXSCISSORINTELPROC __glewTexScissorINTEL; - -GLEW_FUN_EXPORT PFNGLBUFFERREGIONENABLEDPROC __glewBufferRegionEnabled; -GLEW_FUN_EXPORT PFNGLDELETEBUFFERREGIONPROC __glewDeleteBufferRegion; -GLEW_FUN_EXPORT PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion; -GLEW_FUN_EXPORT PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion; -GLEW_FUN_EXPORT PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion; - -GLEW_FUN_EXPORT PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA; - -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVMESAPROC __glewWindowPos2dvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FMESAPROC __glewWindowPos2fMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVMESAPROC __glewWindowPos2fvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IMESAPROC __glewWindowPos2iMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVMESAPROC __glewWindowPos2ivMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SMESAPROC __glewWindowPos2sMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVMESAPROC __glewWindowPos2svMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DMESAPROC __glewWindowPos3dMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVMESAPROC __glewWindowPos3dvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FMESAPROC __glewWindowPos3fMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVMESAPROC __glewWindowPos3fvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IMESAPROC __glewWindowPos3iMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVMESAPROC __glewWindowPos3ivMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SMESAPROC __glewWindowPos3sMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVMESAPROC __glewWindowPos3svMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4DMESAPROC __glewWindowPos4dMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4DVMESAPROC __glewWindowPos4dvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4FMESAPROC __glewWindowPos4fMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4FVMESAPROC __glewWindowPos4fvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4IMESAPROC __glewWindowPos4iMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA; - -GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV; -GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV; - -GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV; - -GLEW_FUN_EXPORT PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV; -GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV; - -GLEW_FUN_EXPORT PFNGLEVALMAPSNVPROC __glewEvalMapsNV; -GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV; -GLEW_FUN_EXPORT PFNGLGETMAPCONTROLPOINTSNVPROC __glewGetMapControlPointsNV; -GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERFVNVPROC __glewGetMapParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERIVNVPROC __glewGetMapParameterivNV; -GLEW_FUN_EXPORT PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV; -GLEW_FUN_EXPORT PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV; -GLEW_FUN_EXPORT PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV; - -GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV; -GLEW_FUN_EXPORT PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV; -GLEW_FUN_EXPORT PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV; - -GLEW_FUN_EXPORT PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV; -GLEW_FUN_EXPORT PFNGLFINISHFENCENVPROC __glewFinishFenceNV; -GLEW_FUN_EXPORT PFNGLGENFENCESNVPROC __glewGenFencesNV; -GLEW_FUN_EXPORT PFNGLGETFENCEIVNVPROC __glewGetFenceivNV; -GLEW_FUN_EXPORT PFNGLISFENCENVPROC __glewIsFenceNV; -GLEW_FUN_EXPORT PFNGLSETFENCENVPROC __glewSetFenceNV; -GLEW_FUN_EXPORT PFNGLTESTFENCENVPROC __glewTestFenceNV; - -GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC __glewGetProgramNamedParameterdvNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC __glewGetProgramNamedParameterfvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DNVPROC __glewProgramNamedParameter4dNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV; - -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV; - -GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV; - -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UIVNVPROC __glewProgramEnvParameterI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4IVNVPROC __glewProgramEnvParametersI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC __glewProgramEnvParametersI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4INVPROC __glewProgramLocalParameterI4iNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC __glewProgramLocalParameterI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameterI4uiNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV; - -GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV; -GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV; - -GLEW_FUN_EXPORT PFNGLCOLOR3HNVPROC __glewColor3hNV; -GLEW_FUN_EXPORT PFNGLCOLOR3HVNVPROC __glewColor3hvNV; -GLEW_FUN_EXPORT PFNGLCOLOR4HNVPROC __glewColor4hNV; -GLEW_FUN_EXPORT PFNGLCOLOR4HVNVPROC __glewColor4hvNV; -GLEW_FUN_EXPORT PFNGLFOGCOORDHNVPROC __glewFogCoordhNV; -GLEW_FUN_EXPORT PFNGLFOGCOORDHVNVPROC __glewFogCoordhvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HNVPROC __glewMultiTexCoord1hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HVNVPROC __glewMultiTexCoord1hvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HNVPROC __glewMultiTexCoord2hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HVNVPROC __glewMultiTexCoord2hvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HNVPROC __glewMultiTexCoord3hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HVNVPROC __glewMultiTexCoord3hvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HNVPROC __glewMultiTexCoord4hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HVNVPROC __glewMultiTexCoord4hvNV; -GLEW_FUN_EXPORT PFNGLNORMAL3HNVPROC __glewNormal3hNV; -GLEW_FUN_EXPORT PFNGLNORMAL3HVNVPROC __glewNormal3hvNV; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HNVPROC __glewSecondaryColor3hNV; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HVNVPROC __glewSecondaryColor3hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD1HNVPROC __glewTexCoord1hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD1HVNVPROC __glewTexCoord1hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD2HNVPROC __glewTexCoord2hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD2HVNVPROC __glewTexCoord2hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD3HNVPROC __glewTexCoord3hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD3HVNVPROC __glewTexCoord3hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD4HNVPROC __glewTexCoord4hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD4HVNVPROC __glewTexCoord4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEX2HNVPROC __glewVertex2hNV; -GLEW_FUN_EXPORT PFNGLVERTEX2HVNVPROC __glewVertex2hvNV; -GLEW_FUN_EXPORT PFNGLVERTEX3HNVPROC __glewVertex3hNV; -GLEW_FUN_EXPORT PFNGLVERTEX3HVNVPROC __glewVertex3hvNV; -GLEW_FUN_EXPORT PFNGLVERTEX4HNVPROC __glewVertex4hNV; -GLEW_FUN_EXPORT PFNGLVERTEX4HVNVPROC __glewVertex4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HNVPROC __glewVertexAttrib1hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HVNVPROC __glewVertexAttrib1hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HNVPROC __glewVertexAttrib2hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HVNVPROC __glewVertexAttrib2hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HNVPROC __glewVertexAttrib3hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HVNVPROC __glewVertexAttrib3hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HNVPROC __glewVertexAttrib4hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HVNVPROC __glewVertexAttrib4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1HVNVPROC __glewVertexAttribs1hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2HVNVPROC __glewVertexAttribs2hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3HVNVPROC __glewVertexAttribs3hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV; - -GLEW_FUN_EXPORT PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV; -GLEW_FUN_EXPORT PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV; -GLEW_FUN_EXPORT PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV; -GLEW_FUN_EXPORT PFNGLGENOCCLUSIONQUERIESNVPROC __glewGenOcclusionQueriesNV; -GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYIVNVPROC __glewGetOcclusionQueryivNV; -GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYUIVNVPROC __glewGetOcclusionQueryuivNV; -GLEW_FUN_EXPORT PFNGLISOCCLUSIONQUERYNVPROC __glewIsOcclusionQueryNV; - -GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC __glewProgramBufferParametersIivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC __glewProgramBufferParametersIuivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC __glewProgramBufferParametersfvNV; - -GLEW_FUN_EXPORT PFNGLCOPYPATHNVPROC __glewCopyPathNV; -GLEW_FUN_EXPORT PFNGLCOVERFILLPATHINSTANCEDNVPROC __glewCoverFillPathInstancedNV; -GLEW_FUN_EXPORT PFNGLCOVERFILLPATHNVPROC __glewCoverFillPathNV; -GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHINSTANCEDNVPROC __glewCoverStrokePathInstancedNV; -GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHNVPROC __glewCoverStrokePathNV; -GLEW_FUN_EXPORT PFNGLDELETEPATHSNVPROC __glewDeletePathsNV; -GLEW_FUN_EXPORT PFNGLGENPATHSNVPROC __glewGenPathsNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENFVNVPROC __glewGetPathColorGenfvNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENIVNVPROC __glewGetPathColorGenivNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOMMANDSNVPROC __glewGetPathCommandsNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOORDSNVPROC __glewGetPathCoordsNV; -GLEW_FUN_EXPORT PFNGLGETPATHDASHARRAYNVPROC __glewGetPathDashArrayNV; -GLEW_FUN_EXPORT PFNGLGETPATHLENGTHNVPROC __glewGetPathLengthNV; -GLEW_FUN_EXPORT PFNGLGETPATHMETRICRANGENVPROC __glewGetPathMetricRangeNV; -GLEW_FUN_EXPORT PFNGLGETPATHMETRICSNVPROC __glewGetPathMetricsNV; -GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERFVNVPROC __glewGetPathParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERIVNVPROC __glewGetPathParameterivNV; -GLEW_FUN_EXPORT PFNGLGETPATHSPACINGNVPROC __glewGetPathSpacingNV; -GLEW_FUN_EXPORT PFNGLGETPATHTEXGENFVNVPROC __glewGetPathTexGenfvNV; -GLEW_FUN_EXPORT PFNGLGETPATHTEXGENIVNVPROC __glewGetPathTexGenivNV; -GLEW_FUN_EXPORT PFNGLINTERPOLATEPATHSNVPROC __glewInterpolatePathsNV; -GLEW_FUN_EXPORT PFNGLISPATHNVPROC __glewIsPathNV; -GLEW_FUN_EXPORT PFNGLISPOINTINFILLPATHNVPROC __glewIsPointInFillPathNV; -GLEW_FUN_EXPORT PFNGLISPOINTINSTROKEPATHNVPROC __glewIsPointInStrokePathNV; -GLEW_FUN_EXPORT PFNGLPATHCOLORGENNVPROC __glewPathColorGenNV; -GLEW_FUN_EXPORT PFNGLPATHCOMMANDSNVPROC __glewPathCommandsNV; -GLEW_FUN_EXPORT PFNGLPATHCOORDSNVPROC __glewPathCoordsNV; -GLEW_FUN_EXPORT PFNGLPATHCOVERDEPTHFUNCNVPROC __glewPathCoverDepthFuncNV; -GLEW_FUN_EXPORT PFNGLPATHDASHARRAYNVPROC __glewPathDashArrayNV; -GLEW_FUN_EXPORT PFNGLPATHFOGGENNVPROC __glewPathFogGenNV; -GLEW_FUN_EXPORT PFNGLPATHGLYPHRANGENVPROC __glewPathGlyphRangeNV; -GLEW_FUN_EXPORT PFNGLPATHGLYPHSNVPROC __glewPathGlyphsNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERFNVPROC __glewPathParameterfNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERFVNVPROC __glewPathParameterfvNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERINVPROC __glewPathParameteriNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERIVNVPROC __glewPathParameterivNV; -GLEW_FUN_EXPORT PFNGLPATHSTENCILDEPTHOFFSETNVPROC __glewPathStencilDepthOffsetNV; -GLEW_FUN_EXPORT PFNGLPATHSTENCILFUNCNVPROC __glewPathStencilFuncNV; -GLEW_FUN_EXPORT PFNGLPATHSTRINGNVPROC __glewPathStringNV; -GLEW_FUN_EXPORT PFNGLPATHSUBCOMMANDSNVPROC __glewPathSubCommandsNV; -GLEW_FUN_EXPORT PFNGLPATHSUBCOORDSNVPROC __glewPathSubCoordsNV; -GLEW_FUN_EXPORT PFNGLPATHTEXGENNVPROC __glewPathTexGenNV; -GLEW_FUN_EXPORT PFNGLPOINTALONGPATHNVPROC __glewPointAlongPathNV; -GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHINSTANCEDNVPROC __glewStencilFillPathInstancedNV; -GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHNVPROC __glewStencilFillPathNV; -GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC __glewStencilStrokePathInstancedNV; -GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHNVPROC __glewStencilStrokePathNV; -GLEW_FUN_EXPORT PFNGLTRANSFORMPATHNVPROC __glewTransformPathNV; -GLEW_FUN_EXPORT PFNGLWEIGHTPATHSNVPROC __glewWeightPathsNV; - -GLEW_FUN_EXPORT PFNGLFLUSHPIXELDATARANGENVPROC __glewFlushPixelDataRangeNV; -GLEW_FUN_EXPORT PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV; - -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV; - -GLEW_FUN_EXPORT PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV; -GLEW_FUN_EXPORT PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV; -GLEW_FUN_EXPORT PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV; - -GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV; -GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV; - -GLEW_FUN_EXPORT PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV; -GLEW_FUN_EXPORT PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFVNVPROC __glewCombinerParameterfvNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERINVPROC __glewCombinerParameteriNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERIVNVPROC __glewCombinerParameterivNV; -GLEW_FUN_EXPORT PFNGLFINALCOMBINERINPUTNVPROC __glewFinalCombinerInputNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC __glewGetCombinerInputParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC __glewGetCombinerInputParameterivNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC __glewGetCombinerOutputParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC __glewGetCombinerOutputParameterivNV; -GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC __glewGetFinalCombinerInputParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombinerInputParameterivNV; - -GLEW_FUN_EXPORT PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV; - -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV; -GLEW_FUN_EXPORT PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV; -GLEW_FUN_EXPORT PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV; -GLEW_FUN_EXPORT PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV; -GLEW_FUN_EXPORT PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV; -GLEW_FUN_EXPORT PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV; -GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV; -GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORMUI64NVPROC __glewUniformui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV; - -GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV; - -GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTexImage3DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTextureImage2DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC __glewTextureImage2DMultisampleNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTextureImage3DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC __glewTextureImage3DMultisampleNV; - -GLEW_FUN_EXPORT PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV; -GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV; -GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETNVPROC __glewBindBufferOffsetNV; -GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGENVPROC __glewBindBufferRangeNV; -GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKNVPROC __glewEndTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLGETACTIVEVARYINGNVPROC __glewGetActiveVaryingNV; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC __glewGetTransformFeedbackVaryingNV; -GLEW_FUN_EXPORT PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV; - -GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV; -GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV; - -GLEW_FUN_EXPORT PFNGLVDPAUFININVPROC __glewVDPAUFiniNV; -GLEW_FUN_EXPORT PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV; -GLEW_FUN_EXPORT PFNGLVDPAUINITNVPROC __glewVDPAUInitNV; -GLEW_FUN_EXPORT PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV; -GLEW_FUN_EXPORT PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV; -GLEW_FUN_EXPORT PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV; -GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV; -GLEW_FUN_EXPORT PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV; -GLEW_FUN_EXPORT PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV; -GLEW_FUN_EXPORT PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV; - -GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV; - -GLEW_FUN_EXPORT PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV; -GLEW_FUN_EXPORT PFNGLCOLORFORMATNVPROC __glewColorFormatNV; -GLEW_FUN_EXPORT PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV; -GLEW_FUN_EXPORT PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV; -GLEW_FUN_EXPORT PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV; -GLEW_FUN_EXPORT PFNGLINDEXFORMATNVPROC __glewIndexFormatNV; -GLEW_FUN_EXPORT PFNGLNORMALFORMATNVPROC __glewNormalFormatNV; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV; -GLEW_FUN_EXPORT PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV; -GLEW_FUN_EXPORT PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV; - -GLEW_FUN_EXPORT PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV; -GLEW_FUN_EXPORT PFNGLBINDPROGRAMNVPROC __glewBindProgramNV; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV; -GLEW_FUN_EXPORT PFNGLEXECUTEPROGRAMNVPROC __glewExecuteProgramNV; -GLEW_FUN_EXPORT PFNGLGENPROGRAMSNVPROC __glewGenProgramsNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERDVNVPROC __glewGetProgramParameterdvNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERFVNVPROC __glewGetProgramParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGNVPROC __glewGetProgramStringNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMIVNVPROC __glewGetProgramivNV; -GLEW_FUN_EXPORT PFNGLGETTRACKMATRIXIVNVPROC __glewGetTrackMatrixivNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVNVPROC __glewGetVertexAttribPointervNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVNVPROC __glewGetVertexAttribdvNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVNVPROC __glewGetVertexAttribfvNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVNVPROC __glewGetVertexAttribivNV; -GLEW_FUN_EXPORT PFNGLISPROGRAMNVPROC __glewIsProgramNV; -GLEW_FUN_EXPORT PFNGLLOADPROGRAMNVPROC __glewLoadProgramNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DNVPROC __glewProgramParameter4dNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DVNVPROC __glewProgramParameter4dvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FNVPROC __glewProgramParameter4fNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FVNVPROC __glewProgramParameter4fvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4DVNVPROC __glewProgramParameters4dvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4FVNVPROC __glewProgramParameters4fvNV; -GLEW_FUN_EXPORT PFNGLREQUESTRESIDENTPROGRAMSNVPROC __glewRequestResidentProgramsNV; -GLEW_FUN_EXPORT PFNGLTRACKMATRIXNVPROC __glewTrackMatrixNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DNVPROC __glewVertexAttrib1dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVNVPROC __glewVertexAttrib1dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FNVPROC __glewVertexAttrib1fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVNVPROC __glewVertexAttrib1fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SNVPROC __glewVertexAttrib1sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVNVPROC __glewVertexAttrib1svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DNVPROC __glewVertexAttrib2dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVNVPROC __glewVertexAttrib2dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FNVPROC __glewVertexAttrib2fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVNVPROC __glewVertexAttrib2fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SNVPROC __glewVertexAttrib2sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVNVPROC __glewVertexAttrib2svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DNVPROC __glewVertexAttrib3dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVNVPROC __glewVertexAttrib3dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVNVPROC __glewVertexAttrib3fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SNVPROC __glewVertexAttrib3sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVNVPROC __glewVertexAttrib3svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DNVPROC __glewVertexAttrib4dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVNVPROC __glewVertexAttrib4dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FNVPROC __glewVertexAttrib4fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVNVPROC __glewVertexAttrib4fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SNVPROC __glewVertexAttrib4sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVNVPROC __glewVertexAttrib4svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBNVPROC __glewVertexAttrib4ubNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVNVPROC __glewVertexAttrib4ubvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERNVPROC __glewVertexAttribPointerNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1DVNVPROC __glewVertexAttribs1dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1FVNVPROC __glewVertexAttribs1fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1SVNVPROC __glewVertexAttribs1svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2DVNVPROC __glewVertexAttribs2dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2FVNVPROC __glewVertexAttribs2fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2SVNVPROC __glewVertexAttribs2svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3DVNVPROC __glewVertexAttribs3dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3FVNVPROC __glewVertexAttribs3fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3SVNVPROC __glewVertexAttribs3svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4DVNVPROC __glewVertexAttribs4dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV; - -GLEW_FUN_EXPORT PFNGLBEGINVIDEOCAPTURENVPROC __glewBeginVideoCaptureNV; -GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC __glewBindVideoCaptureStreamBufferNV; -GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC __glewBindVideoCaptureStreamTextureNV; -GLEW_FUN_EXPORT PFNGLENDVIDEOCAPTURENVPROC __glewEndVideoCaptureNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMDVNVPROC __glewGetVideoCaptureStreamdvNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMFVNVPROC __glewGetVideoCaptureStreamfvNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMIVNVPROC __glewGetVideoCaptureStreamivNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTUREIVNVPROC __glewGetVideoCaptureivNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURENVPROC __glewVideoCaptureNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV; - -GLEW_FUN_EXPORT PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES; -GLEW_FUN_EXPORT PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES; -GLEW_FUN_EXPORT PFNGLFRUSTUMFOESPROC __glewFrustumfOES; -GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES; -GLEW_FUN_EXPORT PFNGLORTHOFOESPROC __glewOrthofOES; - -GLEW_FUN_EXPORT PFNGLDETAILTEXFUNCSGISPROC __glewDetailTexFuncSGIS; -GLEW_FUN_EXPORT PFNGLGETDETAILTEXFUNCSGISPROC __glewGetDetailTexFuncSGIS; - -GLEW_FUN_EXPORT PFNGLFOGFUNCSGISPROC __glewFogFuncSGIS; -GLEW_FUN_EXPORT PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS; - -GLEW_FUN_EXPORT PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS; -GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS; - -GLEW_FUN_EXPORT PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS; -GLEW_FUN_EXPORT PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS; - -GLEW_FUN_EXPORT PFNGLTEXIMAGE4DSGISPROC __glewTexImage4DSGIS; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE4DSGISPROC __glewTexSubImage4DSGIS; - -GLEW_FUN_EXPORT PFNGLGETTEXFILTERFUNCSGISPROC __glewGetTexFilterFuncSGIS; -GLEW_FUN_EXPORT PFNGLTEXFILTERFUNCSGISPROC __glewTexFilterFuncSGIS; - -GLEW_FUN_EXPORT PFNGLASYNCMARKERSGIXPROC __glewAsyncMarkerSGIX; -GLEW_FUN_EXPORT PFNGLDELETEASYNCMARKERSSGIXPROC __glewDeleteAsyncMarkersSGIX; -GLEW_FUN_EXPORT PFNGLFINISHASYNCSGIXPROC __glewFinishAsyncSGIX; -GLEW_FUN_EXPORT PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX; -GLEW_FUN_EXPORT PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX; -GLEW_FUN_EXPORT PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX; - -GLEW_FUN_EXPORT PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX; - -GLEW_FUN_EXPORT PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX; - -GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX; - -GLEW_FUN_EXPORT PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX; - -GLEW_FUN_EXPORT PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX; - -GLEW_FUN_EXPORT PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX; - -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX; -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFVSGIXPROC __glewSpriteParameterfvSGIX; -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERISGIXPROC __glewSpriteParameteriSGIX; -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX; - -GLEW_FUN_EXPORT PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX; - -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI; -GLEW_FUN_EXPORT PFNGLCOLORTABLESGIPROC __glewColorTableSGI; -GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLESGIPROC __glewCopyColorTableSGI; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI; - -GLEW_FUN_EXPORT PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX; - -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORDSUNPROC __glewGlobalAlphaFactordSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORFSUNPROC __glewGlobalAlphaFactorfSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORISUNPROC __glewGlobalAlphaFactoriSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORSSUNPROC __glewGlobalAlphaFactorsSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUBSUNPROC __glewGlobalAlphaFactorubSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUISUNPROC __glewGlobalAlphaFactoruiSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUSSUNPROC __glewGlobalAlphaFactorusSUN; - -GLEW_FUN_EXPORT PFNGLREADVIDEOPIXELSSUNPROC __glewReadVideoPixelsSUN; - -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEPOINTERSUNPROC __glewReplacementCodePointerSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBSUNPROC __glewReplacementCodeubSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBVSUNPROC __glewReplacementCodeubvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUISUNPROC __glewReplacementCodeuiSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVSUNPROC __glewReplacementCodeuivSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSSUNPROC __glewReplacementCodeusSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSVSUNPROC __glewReplacementCodeusvSUN; - -GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FSUNPROC __glewColor3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FVSUNPROC __glewColor3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FSUNPROC __glewColor4ubVertex2fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FVSUNPROC __glewColor4ubVertex2fvSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FSUNPROC __glewColor4ubVertex3fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FVSUNPROC __glewColor4ubVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FSUNPROC __glewNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FVSUNPROC __glewNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC __glewReplacementCodeuiColor3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC __glewReplacementCodeuiColor4ubVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC __glewReplacementCodeuiColor4ubVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC __glewReplacementCodeuiVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC __glewReplacementCodeuiVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC __glewTexCoord2fColor3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC __glewTexCoord2fColor3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC __glewTexCoord2fColor4ubVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC __glewTexCoord2fColor4ubVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FSUNPROC __glewTexCoord2fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FVSUNPROC __glewTexCoord2fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN; - -GLEW_FUN_EXPORT PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN; - -#if defined(GLEW_MX) && !defined(_WIN32) -struct GLEWContextStruct -{ -#endif /* GLEW_MX */ - -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_3; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_4; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_5; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_0; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_0; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_2; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_3; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_0; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_2; -GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer; -GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_blend_minmax_factor; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_depth_clamp_separate; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_multi_draw_indirect; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sample_positions; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback3_lines_triangles; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_tessellator; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_aux_depth_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_client_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_element_array; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_fence; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_float_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_flush_buffer_range; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_object_purgeable; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_pixel_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_rgb_422; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_row_bytes; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_specular_vector; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_range; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_transform_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_range; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_program_evaluators; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_ycbcr_422; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES2_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_base_instance; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_blend_func_extended; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cl_event; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_color_buffer_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compressed_texture_pixel_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_conservative_depth; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_debug_output; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_buffer_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers_blend; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_elements_base_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_indirect; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_instanced; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_attrib_location; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_coord_conventions; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program_shadow; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_sRGB; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_geometry_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_program_binary; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader5; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_fp64; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_pixel; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_imaging; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_instanced_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_alignment; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_range; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_matrix_palette; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multitexture; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query2; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pixel_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_sprite; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_provoking_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_shading; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sampler_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cube_map; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_separate_shader_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_atomic_counters; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_bit_encoding; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_load_store; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_precision; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_stencil_export; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_subroutine; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_100; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_420pack; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_include; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_packing; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow_ambient; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sync; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_tessellation_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_border_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object_rgb32; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_bptc; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_rgtc; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map_array; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_add; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_combine; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_crossbar; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_dot3; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_gather; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirrored_repeat; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_non_power_of_two; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rg; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rgb10_a2ui; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_swizzle; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_timer_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback2; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback3; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback_instanced; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transpose_matrix; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_uniform_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_bgra; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_64bit; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_blend; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_program; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_viewport_array; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_window_pos; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_point_sprites; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_combine3; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_route; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_vertex_shader_output_point_size; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_draw_buffers; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_element_array; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_envmap_bumpmap; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_fragment_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_map_object_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_meminfo; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_pn_triangles; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_separate_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_shader_texture_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_text_fragment_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_compression_3dc; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_env_combine3; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_mirror_once; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_attrib_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_streams; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_422_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_Cg_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_abgr; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bgra; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bindable_uniform; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_color; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_equation_separate; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_separate; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_logic_op; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_minmax; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_subtract; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_volume_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cmyka; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_subtable; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compiled_vertex_array; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_convolution; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_coordinate_frame; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cull_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_bounds_test; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_direct_state_access; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers2; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_instanced; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_range_elements; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fog_coord; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_lighting; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_blit; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_sRGB; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_program_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_histogram; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_array_formats; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_func; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_material; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_light_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_misc_attribute; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_depth_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_float; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_paletted_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform_color_table; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_point_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_provoking_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_rescale_normal; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_scene_marker; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_secondary_color; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_shader_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_specular_color; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_store; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_funcs; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shared_texture_palette; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_clear_tag; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_two_side; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_wrap; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_subtexture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture3D; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_array; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_dxt1; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_latc; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_rgtc; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_edge_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_add; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_combine; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_dot3; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_anisotropic; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_integer; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_lod_bias; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_perturb_normal; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_decode; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shared_exponent; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_snorm; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_swizzle; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_timer_query; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_transform_feedback; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_x11_sync_object; -GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator; -GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_image_transform; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_occlusion_test; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_texture_lighting; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_cull_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_multimode_draw_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_rasterpos_clip; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_static_data; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_texture_mirrored_repeat; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_vertex_array_lists; -GLEW_VAR_EXPORT GLboolean __GLEW_INGR_color_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_INGR_interlace_read; -GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_parallel_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_texture_scissor; -GLEW_VAR_EXPORT GLboolean __GLEW_KTX_buffer_region; -GLEW_VAR_EXPORT GLboolean __GLEW_MESAX_texture_stack; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_pack_invert; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_resize_buffers; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_window_pos; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_ycbcr_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_conditional_render; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_depth_to_color; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_image; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_buffer_float; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_range_unclamped; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_evaluators; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fence; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_float_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fog_distance; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program_option; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample_coverage; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program_fp64; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_shader5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_half_float; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_light_max_exponent; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_coverage; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_filter_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_occlusion_query; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_depth_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_data_range; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_point_sprite; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_present_video; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_restart; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_tessellation_program5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_emboss; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_reflection; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader3; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_attrib_integer_64bit; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_buffer_unified_memory; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program1_1; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_video_capture; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_paletted_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_read_format; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_single_precision; -GLEW_VAR_EXPORT GLboolean __GLEW_OML_interlace; -GLEW_VAR_EXPORT GLboolean __GLEW_OML_resample; -GLEW_VAR_EXPORT GLboolean __GLEW_OML_subsample; -GLEW_VAR_EXPORT GLboolean __GLEW_PGI_misc_hints; -GLEW_VAR_EXPORT GLboolean __GLEW_PGI_vertex_hints; -GLEW_VAR_EXPORT GLboolean __GLEW_REND_screen_coordinates; -GLEW_VAR_EXPORT GLboolean __GLEW_S3_s3tc; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_color_range; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_detail_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_fog_function; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_generate_mipmap; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_pixel_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_point_line_texgen; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_sharpen_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture4D; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_border_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_edge_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_filter4; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_select; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_histogram; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_pixel; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_alpha_minmax; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_clipmap; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_convolution_accuracy; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_flush_raster; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_offset; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_specular_lighting; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_framezoom; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_interlace; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ir_instrument1; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_list_priority; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_bits; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_reference_plane; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_resample; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow_ambient; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_sprite; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_tag_sample_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_add_env; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_coordinate_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_lod_bias; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_multi_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_range; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_scale_bias; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb; -GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_matrix; -GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_table; -GLEW_VAR_EXPORT GLboolean __GLEW_SGI_texture_color_table; -GLEW_VAR_EXPORT GLboolean __GLEW_SUNX_constant_data; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_convolution_border_modes; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_global_alpha; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_mesh_array; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_read_video_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_slice_accum; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_triangle_list; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_WIN_phong_shading; -GLEW_VAR_EXPORT GLboolean __GLEW_WIN_specular_fog; -GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; - -#ifdef GLEW_MX -}; /* GLEWContextStruct */ -#endif /* GLEW_MX */ - -/* ------------------------------------------------------------------------- */ - -/* error codes */ -#define GLEW_OK 0 -#define GLEW_NO_ERROR 0 -#define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */ -#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */ -#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */ - -/* string codes */ -#define GLEW_VERSION 1 -#define GLEW_VERSION_MAJOR 2 -#define GLEW_VERSION_MINOR 3 -#define GLEW_VERSION_MICRO 4 - -/* API */ -#ifdef GLEW_MX - -typedef struct GLEWContextStruct GLEWContext; -GLEWAPI GLenum glewContextInit (GLEWContext* ctx); -GLEWAPI GLboolean glewContextIsSupported (const GLEWContext* ctx, const char* name); - -#define glewInit() glewContextInit(glewGetContext()) -#define glewIsSupported(x) glewContextIsSupported(glewGetContext(), x) -#define glewIsExtensionSupported(x) glewIsSupported(x) - -#define GLEW_GET_VAR(x) (*(const GLboolean*)&(glewGetContext()->x)) -#ifdef _WIN32 -# define GLEW_GET_FUN(x) glewGetContext()->x -#else -# define GLEW_GET_FUN(x) x -#endif - -#else /* GLEW_MX */ - -GLEWAPI GLenum glewInit (); -GLEWAPI GLboolean glewIsSupported (const char* name); -#define glewIsExtensionSupported(x) glewIsSupported(x) - -#define GLEW_GET_VAR(x) (*(const GLboolean*)&x) -#define GLEW_GET_FUN(x) x - -#endif /* GLEW_MX */ - -GLEWAPI GLboolean glewExperimental; -GLEWAPI GLboolean glewGetExtension (const char* name); -GLEWAPI const GLubyte* glewGetErrorString (GLenum error); -GLEWAPI const GLubyte* glewGetString (GLenum name); - -#ifdef __cplusplus -} -#endif - -#ifdef GLEW_APIENTRY_DEFINED -#undef GLEW_APIENTRY_DEFINED -#undef APIENTRY -#undef GLAPIENTRY -#define GLAPIENTRY -#endif - -#ifdef GLEW_CALLBACK_DEFINED -#undef GLEW_CALLBACK_DEFINED -#undef CALLBACK -#endif - -#ifdef GLEW_WINGDIAPI_DEFINED -#undef GLEW_WINGDIAPI_DEFINED -#undef WINGDIAPI -#endif - -#undef GLAPI -/* #undef GLEWAPI */ - -#endif /* __glew_h__ */ diff --git a/lib/osx/include/GL/glxew.h b/lib/osx/include/GL/glxew.h deleted file mode 100644 index 6d249f7..0000000 --- a/lib/osx/include/GL/glxew.h +++ /dev/null @@ -1,1587 +0,0 @@ -/* -** The OpenGL Extension Wrangler Library -** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org> -** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org> -** Copyright (C) 2002, Lev Povalahev -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are met: -** -** * Redistributions of source code must retain the above copyright notice, -** this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright notice, -** this list of conditions and the following disclaimer in the documentation -** and/or other materials provided with the distribution. -** * The name of the author may be used to endorse or promote products -** derived from this software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -** THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * Mesa 3-D graphics library - * Version: 7.0 - * - * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* -** Copyright (c) 2007 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -#ifndef __glxew_h__ -#define __glxew_h__ -#define __GLXEW_H__ - -#ifdef __glxext_h_ -#error glxext.h included before glxew.h -#endif - -#if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__) -#error glx.h included before glxew.h -#endif - -#define __glxext_h_ - -#define GLX_H -#define __GLX_glx_h__ -#define __glx_h__ - -#include <X11/Xlib.h> -#include <X11/Xutil.h> -#include <X11/Xmd.h> -#include <GL/glew.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* ---------------------------- GLX_VERSION_1_0 --------------------------- */ - -#ifndef GLX_VERSION_1_0 -#define GLX_VERSION_1_0 1 - -#define GLX_USE_GL 1 -#define GLX_BUFFER_SIZE 2 -#define GLX_LEVEL 3 -#define GLX_RGBA 4 -#define GLX_DOUBLEBUFFER 5 -#define GLX_STEREO 6 -#define GLX_AUX_BUFFERS 7 -#define GLX_RED_SIZE 8 -#define GLX_GREEN_SIZE 9 -#define GLX_BLUE_SIZE 10 -#define GLX_ALPHA_SIZE 11 -#define GLX_DEPTH_SIZE 12 -#define GLX_STENCIL_SIZE 13 -#define GLX_ACCUM_RED_SIZE 14 -#define GLX_ACCUM_GREEN_SIZE 15 -#define GLX_ACCUM_BLUE_SIZE 16 -#define GLX_ACCUM_ALPHA_SIZE 17 -#define GLX_BAD_SCREEN 1 -#define GLX_BAD_ATTRIBUTE 2 -#define GLX_NO_EXTENSION 3 -#define GLX_BAD_VISUAL 4 -#define GLX_BAD_CONTEXT 5 -#define GLX_BAD_VALUE 6 -#define GLX_BAD_ENUM 7 - -typedef XID GLXDrawable; -typedef XID GLXPixmap; -#ifdef __sun -typedef struct __glXContextRec *GLXContext; -#else -typedef struct __GLXcontextRec *GLXContext; -#endif - -typedef unsigned int GLXVideoDeviceNV; - -extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase); -extern Bool glXQueryVersion (Display *dpy, int *major, int *minor); -extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value); -extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList); -extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap); -extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix); -extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct); -extern void glXDestroyContext (Display *dpy, GLXContext ctx); -extern Bool glXIsDirect (Display *dpy, GLXContext ctx); -extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask); -extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx); -extern GLXContext glXGetCurrentContext (void); -extern GLXDrawable glXGetCurrentDrawable (void); -extern void glXWaitGL (void); -extern void glXWaitX (void); -extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable); -extern void glXUseXFont (Font font, int first, int count, int listBase); - -#define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0) - -#endif /* GLX_VERSION_1_0 */ - -/* ---------------------------- GLX_VERSION_1_1 --------------------------- */ - -#ifndef GLX_VERSION_1_1 -#define GLX_VERSION_1_1 - -#define GLX_VENDOR 0x1 -#define GLX_VERSION 0x2 -#define GLX_EXTENSIONS 0x3 - -extern const char* glXQueryExtensionsString (Display *dpy, int screen); -extern const char* glXGetClientString (Display *dpy, int name); -extern const char* glXQueryServerString (Display *dpy, int screen, int name); - -#define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1) - -#endif /* GLX_VERSION_1_1 */ - -/* ---------------------------- GLX_VERSION_1_2 ---------------------------- */ - -#ifndef GLX_VERSION_1_2 -#define GLX_VERSION_1_2 1 - -typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void); - -#define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay) - -#define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2) - -#endif /* GLX_VERSION_1_2 */ - -/* ---------------------------- GLX_VERSION_1_3 ---------------------------- */ - -#ifndef GLX_VERSION_1_3 -#define GLX_VERSION_1_3 1 - -#define GLX_RGBA_BIT 0x00000001 -#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 -#define GLX_WINDOW_BIT 0x00000001 -#define GLX_COLOR_INDEX_BIT 0x00000002 -#define GLX_PIXMAP_BIT 0x00000002 -#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 -#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 -#define GLX_PBUFFER_BIT 0x00000004 -#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 -#define GLX_AUX_BUFFERS_BIT 0x00000010 -#define GLX_CONFIG_CAVEAT 0x20 -#define GLX_DEPTH_BUFFER_BIT 0x00000020 -#define GLX_X_VISUAL_TYPE 0x22 -#define GLX_TRANSPARENT_TYPE 0x23 -#define GLX_TRANSPARENT_INDEX_VALUE 0x24 -#define GLX_TRANSPARENT_RED_VALUE 0x25 -#define GLX_TRANSPARENT_GREEN_VALUE 0x26 -#define GLX_TRANSPARENT_BLUE_VALUE 0x27 -#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 -#define GLX_STENCIL_BUFFER_BIT 0x00000040 -#define GLX_ACCUM_BUFFER_BIT 0x00000080 -#define GLX_NONE 0x8000 -#define GLX_SLOW_CONFIG 0x8001 -#define GLX_TRUE_COLOR 0x8002 -#define GLX_DIRECT_COLOR 0x8003 -#define GLX_PSEUDO_COLOR 0x8004 -#define GLX_STATIC_COLOR 0x8005 -#define GLX_GRAY_SCALE 0x8006 -#define GLX_STATIC_GRAY 0x8007 -#define GLX_TRANSPARENT_RGB 0x8008 -#define GLX_TRANSPARENT_INDEX 0x8009 -#define GLX_VISUAL_ID 0x800B -#define GLX_SCREEN 0x800C -#define GLX_NON_CONFORMANT_CONFIG 0x800D -#define GLX_DRAWABLE_TYPE 0x8010 -#define GLX_RENDER_TYPE 0x8011 -#define GLX_X_RENDERABLE 0x8012 -#define GLX_FBCONFIG_ID 0x8013 -#define GLX_RGBA_TYPE 0x8014 -#define GLX_COLOR_INDEX_TYPE 0x8015 -#define GLX_MAX_PBUFFER_WIDTH 0x8016 -#define GLX_MAX_PBUFFER_HEIGHT 0x8017 -#define GLX_MAX_PBUFFER_PIXELS 0x8018 -#define GLX_PRESERVED_CONTENTS 0x801B -#define GLX_LARGEST_PBUFFER 0x801C -#define GLX_WIDTH 0x801D -#define GLX_HEIGHT 0x801E -#define GLX_EVENT_MASK 0x801F -#define GLX_DAMAGED 0x8020 -#define GLX_SAVED 0x8021 -#define GLX_WINDOW 0x8022 -#define GLX_PBUFFER 0x8023 -#define GLX_PBUFFER_HEIGHT 0x8040 -#define GLX_PBUFFER_WIDTH 0x8041 -#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 -#define GLX_DONT_CARE 0xFFFFFFFF - -typedef XID GLXFBConfigID; -typedef XID GLXPbuffer; -typedef XID GLXWindow; -typedef struct __GLXFBConfigRec *GLXFBConfig; - -typedef struct { - int event_type; - int draw_type; - unsigned long serial; - Bool send_event; - Display *display; - GLXDrawable drawable; - unsigned int buffer_mask; - unsigned int aux_buffer; - int x, y; - int width, height; - int count; -} GLXPbufferClobberEvent; -typedef union __GLXEvent { - GLXPbufferClobberEvent glxpbufferclobber; - long pad[24]; -} GLXEvent; - -typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); -typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); -typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); -typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); -typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); -typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); -typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); -typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); -typedef GLXFBConfig* ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); -typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); -typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); -typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx); -typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); -typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); -typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); - -#define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig) -#define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext) -#define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer) -#define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap) -#define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow) -#define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer) -#define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap) -#define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow) -#define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable) -#define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib) -#define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs) -#define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent) -#define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig) -#define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent) -#define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext) -#define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable) -#define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent) - -#define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3) - -#endif /* GLX_VERSION_1_3 */ - -/* ---------------------------- GLX_VERSION_1_4 ---------------------------- */ - -#ifndef GLX_VERSION_1_4 -#define GLX_VERSION_1_4 1 - -#define GLX_SAMPLE_BUFFERS 100000 -#define GLX_SAMPLES 100001 - -extern void ( * glXGetProcAddress (const GLubyte *procName)) (void); - -#define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4) - -#endif /* GLX_VERSION_1_4 */ - -/* -------------------------- GLX_3DFX_multisample ------------------------- */ - -#ifndef GLX_3DFX_multisample -#define GLX_3DFX_multisample 1 - -#define GLX_SAMPLE_BUFFERS_3DFX 0x8050 -#define GLX_SAMPLES_3DFX 0x8051 - -#define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample) - -#endif /* GLX_3DFX_multisample */ - -/* ------------------------ GLX_AMD_gpu_association ------------------------ */ - -#ifndef GLX_AMD_gpu_association -#define GLX_AMD_gpu_association 1 - -#define GLX_GPU_VENDOR_AMD 0x1F00 -#define GLX_GPU_RENDERER_STRING_AMD 0x1F01 -#define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 -#define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 -#define GLX_GPU_RAM_AMD 0x21A3 -#define GLX_GPU_CLOCK_AMD 0x21A4 -#define GLX_GPU_NUM_PIPES_AMD 0x21A5 -#define GLX_GPU_NUM_SIMD_AMD 0x21A6 -#define GLX_GPU_NUM_RB_AMD 0x21A7 -#define GLX_GPU_NUM_SPI_AMD 0x21A8 - -#define GLXEW_AMD_gpu_association GLXEW_GET_VAR(__GLXEW_AMD_gpu_association) - -#endif /* GLX_AMD_gpu_association */ - -/* ------------------------- GLX_ARB_create_context ------------------------ */ - -#ifndef GLX_ARB_create_context -#define GLX_ARB_create_context 1 - -#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001 -#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 -#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 -#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 -#define GLX_CONTEXT_FLAGS_ARB 0x2094 - -typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); - -#define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB) - -#define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context) - -#endif /* GLX_ARB_create_context */ - -/* --------------------- GLX_ARB_create_context_profile -------------------- */ - -#ifndef GLX_ARB_create_context_profile -#define GLX_ARB_create_context_profile 1 - -#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 -#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 -#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 - -#define GLXEW_ARB_create_context_profile GLXEW_GET_VAR(__GLXEW_ARB_create_context_profile) - -#endif /* GLX_ARB_create_context_profile */ - -/* ------------------- GLX_ARB_create_context_robustness ------------------- */ - -#ifndef GLX_ARB_create_context_robustness -#define GLX_ARB_create_context_robustness 1 - -#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261 - -#define GLXEW_ARB_create_context_robustness GLXEW_GET_VAR(__GLXEW_ARB_create_context_robustness) - -#endif /* GLX_ARB_create_context_robustness */ - -/* ------------------------- GLX_ARB_fbconfig_float ------------------------ */ - -#ifndef GLX_ARB_fbconfig_float -#define GLX_ARB_fbconfig_float 1 - -#define GLX_RGBA_FLOAT_BIT 0x00000004 -#define GLX_RGBA_FLOAT_TYPE 0x20B9 - -#define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float) - -#endif /* GLX_ARB_fbconfig_float */ - -/* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */ - -#ifndef GLX_ARB_framebuffer_sRGB -#define GLX_ARB_framebuffer_sRGB 1 - -#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2 - -#define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB) - -#endif /* GLX_ARB_framebuffer_sRGB */ - -/* ------------------------ GLX_ARB_get_proc_address ----------------------- */ - -#ifndef GLX_ARB_get_proc_address -#define GLX_ARB_get_proc_address 1 - -extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void); - -#define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address) - -#endif /* GLX_ARB_get_proc_address */ - -/* -------------------------- GLX_ARB_multisample -------------------------- */ - -#ifndef GLX_ARB_multisample -#define GLX_ARB_multisample 1 - -#define GLX_SAMPLE_BUFFERS_ARB 100000 -#define GLX_SAMPLES_ARB 100001 - -#define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample) - -#endif /* GLX_ARB_multisample */ - -/* ---------------------- GLX_ARB_vertex_buffer_object --------------------- */ - -#ifndef GLX_ARB_vertex_buffer_object -#define GLX_ARB_vertex_buffer_object 1 - -#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095 - -#define GLXEW_ARB_vertex_buffer_object GLXEW_GET_VAR(__GLXEW_ARB_vertex_buffer_object) - -#endif /* GLX_ARB_vertex_buffer_object */ - -/* ----------------------- GLX_ATI_pixel_format_float ---------------------- */ - -#ifndef GLX_ATI_pixel_format_float -#define GLX_ATI_pixel_format_float 1 - -#define GLX_RGBA_FLOAT_ATI_BIT 0x00000100 - -#define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float) - -#endif /* GLX_ATI_pixel_format_float */ - -/* ------------------------- GLX_ATI_render_texture ------------------------ */ - -#ifndef GLX_ATI_render_texture -#define GLX_ATI_render_texture 1 - -#define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800 -#define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801 -#define GLX_TEXTURE_FORMAT_ATI 0x9802 -#define GLX_TEXTURE_TARGET_ATI 0x9803 -#define GLX_MIPMAP_TEXTURE_ATI 0x9804 -#define GLX_TEXTURE_RGB_ATI 0x9805 -#define GLX_TEXTURE_RGBA_ATI 0x9806 -#define GLX_NO_TEXTURE_ATI 0x9807 -#define GLX_TEXTURE_CUBE_MAP_ATI 0x9808 -#define GLX_TEXTURE_1D_ATI 0x9809 -#define GLX_TEXTURE_2D_ATI 0x980A -#define GLX_MIPMAP_LEVEL_ATI 0x980B -#define GLX_CUBE_MAP_FACE_ATI 0x980C -#define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D -#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E -#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F -#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810 -#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811 -#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812 -#define GLX_FRONT_LEFT_ATI 0x9813 -#define GLX_FRONT_RIGHT_ATI 0x9814 -#define GLX_BACK_LEFT_ATI 0x9815 -#define GLX_BACK_RIGHT_ATI 0x9816 -#define GLX_AUX0_ATI 0x9817 -#define GLX_AUX1_ATI 0x9818 -#define GLX_AUX2_ATI 0x9819 -#define GLX_AUX3_ATI 0x981A -#define GLX_AUX4_ATI 0x981B -#define GLX_AUX5_ATI 0x981C -#define GLX_AUX6_ATI 0x981D -#define GLX_AUX7_ATI 0x981E -#define GLX_AUX8_ATI 0x981F -#define GLX_AUX9_ATI 0x9820 -#define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821 -#define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822 - -typedef void ( * PFNGLXBINDTEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); -typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC) (Display *dpy, GLXDrawable draw, const int *attrib_list); -typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); - -#define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI) -#define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI) -#define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI) - -#define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture) - -#endif /* GLX_ATI_render_texture */ - -/* ------------------- GLX_EXT_create_context_es2_profile ------------------ */ - -#ifndef GLX_EXT_create_context_es2_profile -#define GLX_EXT_create_context_es2_profile 1 - -#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 - -#define GLXEW_EXT_create_context_es2_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es2_profile) - -#endif /* GLX_EXT_create_context_es2_profile */ - -/* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */ - -#ifndef GLX_EXT_fbconfig_packed_float -#define GLX_EXT_fbconfig_packed_float 1 - -#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 -#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 - -#define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float) - -#endif /* GLX_EXT_fbconfig_packed_float */ - -/* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */ - -#ifndef GLX_EXT_framebuffer_sRGB -#define GLX_EXT_framebuffer_sRGB 1 - -#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 - -#define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB) - -#endif /* GLX_EXT_framebuffer_sRGB */ - -/* ------------------------- GLX_EXT_import_context ------------------------ */ - -#ifndef GLX_EXT_import_context -#define GLX_EXT_import_context 1 - -#define GLX_SHARE_CONTEXT_EXT 0x800A -#define GLX_VISUAL_ID_EXT 0x800B -#define GLX_SCREEN_EXT 0x800C - -typedef XID GLXContextID; - -typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context); -typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); -typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID); -typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute,int *value); - -#define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT) -#define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT) -#define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT) -#define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT) - -#define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context) - -#endif /* GLX_EXT_import_context */ - -/* -------------------------- GLX_EXT_scene_marker ------------------------- */ - -#ifndef GLX_EXT_scene_marker -#define GLX_EXT_scene_marker 1 - -#define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker) - -#endif /* GLX_EXT_scene_marker */ - -/* -------------------------- GLX_EXT_swap_control ------------------------- */ - -#ifndef GLX_EXT_swap_control -#define GLX_EXT_swap_control 1 - -#define GLX_SWAP_INTERVAL_EXT 0x20F1 -#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 - -typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval); - -#define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT) - -#define GLXEW_EXT_swap_control GLXEW_GET_VAR(__GLXEW_EXT_swap_control) - -#endif /* GLX_EXT_swap_control */ - -/* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */ - -#ifndef GLX_EXT_texture_from_pixmap -#define GLX_EXT_texture_from_pixmap 1 - -#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 -#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 -#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 -#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 -#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 -#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 -#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 -#define GLX_Y_INVERTED_EXT 0x20D4 -#define GLX_TEXTURE_FORMAT_EXT 0x20D5 -#define GLX_TEXTURE_TARGET_EXT 0x20D6 -#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 -#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 -#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 -#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA -#define GLX_TEXTURE_1D_EXT 0x20DB -#define GLX_TEXTURE_2D_EXT 0x20DC -#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD -#define GLX_FRONT_LEFT_EXT 0x20DE -#define GLX_FRONT_RIGHT_EXT 0x20DF -#define GLX_BACK_LEFT_EXT 0x20E0 -#define GLX_BACK_RIGHT_EXT 0x20E1 -#define GLX_AUX0_EXT 0x20E2 -#define GLX_AUX1_EXT 0x20E3 -#define GLX_AUX2_EXT 0x20E4 -#define GLX_AUX3_EXT 0x20E5 -#define GLX_AUX4_EXT 0x20E6 -#define GLX_AUX5_EXT 0x20E7 -#define GLX_AUX6_EXT 0x20E8 -#define GLX_AUX7_EXT 0x20E9 -#define GLX_AUX8_EXT 0x20EA -#define GLX_AUX9_EXT 0x20EB - -typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list); -typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer); - -#define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT) -#define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT) - -#define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap) - -#endif /* GLX_EXT_texture_from_pixmap */ - -/* -------------------------- GLX_EXT_visual_info -------------------------- */ - -#ifndef GLX_EXT_visual_info -#define GLX_EXT_visual_info 1 - -#define GLX_X_VISUAL_TYPE_EXT 0x22 -#define GLX_TRANSPARENT_TYPE_EXT 0x23 -#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 -#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 -#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 -#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 -#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 -#define GLX_NONE_EXT 0x8000 -#define GLX_TRUE_COLOR_EXT 0x8002 -#define GLX_DIRECT_COLOR_EXT 0x8003 -#define GLX_PSEUDO_COLOR_EXT 0x8004 -#define GLX_STATIC_COLOR_EXT 0x8005 -#define GLX_GRAY_SCALE_EXT 0x8006 -#define GLX_STATIC_GRAY_EXT 0x8007 -#define GLX_TRANSPARENT_RGB_EXT 0x8008 -#define GLX_TRANSPARENT_INDEX_EXT 0x8009 - -#define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info) - -#endif /* GLX_EXT_visual_info */ - -/* ------------------------- GLX_EXT_visual_rating ------------------------- */ - -#ifndef GLX_EXT_visual_rating -#define GLX_EXT_visual_rating 1 - -#define GLX_VISUAL_CAVEAT_EXT 0x20 -#define GLX_SLOW_VISUAL_EXT 0x8001 -#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D - -#define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating) - -#endif /* GLX_EXT_visual_rating */ - -/* -------------------------- GLX_INTEL_swap_event ------------------------- */ - -#ifndef GLX_INTEL_swap_event -#define GLX_INTEL_swap_event 1 - -#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180 -#define GLX_COPY_COMPLETE_INTEL 0x8181 -#define GLX_FLIP_COMPLETE_INTEL 0x8182 -#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000 - -#define GLXEW_INTEL_swap_event GLXEW_GET_VAR(__GLXEW_INTEL_swap_event) - -#endif /* GLX_INTEL_swap_event */ - -/* -------------------------- GLX_MESA_agp_offset -------------------------- */ - -#ifndef GLX_MESA_agp_offset -#define GLX_MESA_agp_offset 1 - -typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer); - -#define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA) - -#define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset) - -#endif /* GLX_MESA_agp_offset */ - -/* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */ - -#ifndef GLX_MESA_copy_sub_buffer -#define GLX_MESA_copy_sub_buffer 1 - -typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height); - -#define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA) - -#define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer) - -#endif /* GLX_MESA_copy_sub_buffer */ - -/* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */ - -#ifndef GLX_MESA_pixmap_colormap -#define GLX_MESA_pixmap_colormap 1 - -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); - -#define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA) - -#define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap) - -#endif /* GLX_MESA_pixmap_colormap */ - -/* ------------------------ GLX_MESA_release_buffers ----------------------- */ - -#ifndef GLX_MESA_release_buffers -#define GLX_MESA_release_buffers 1 - -typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d); - -#define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA) - -#define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers) - -#endif /* GLX_MESA_release_buffers */ - -/* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */ - -#ifndef GLX_MESA_set_3dfx_mode -#define GLX_MESA_set_3dfx_mode 1 - -#define GLX_3DFX_WINDOW_MODE_MESA 0x1 -#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 - -typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode); - -#define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA) - -#define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode) - -#endif /* GLX_MESA_set_3dfx_mode */ - -/* ------------------------- GLX_MESA_swap_control ------------------------- */ - -#ifndef GLX_MESA_swap_control -#define GLX_MESA_swap_control 1 - -typedef int ( * PFNGLXGETSWAPINTERVALMESAPROC) (void); -typedef int ( * PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval); - -#define glXGetSwapIntervalMESA GLXEW_GET_FUN(__glewXGetSwapIntervalMESA) -#define glXSwapIntervalMESA GLXEW_GET_FUN(__glewXSwapIntervalMESA) - -#define GLXEW_MESA_swap_control GLXEW_GET_VAR(__GLXEW_MESA_swap_control) - -#endif /* GLX_MESA_swap_control */ - -/* --------------------------- GLX_NV_copy_image --------------------------- */ - -#ifndef GLX_NV_copy_image -#define GLX_NV_copy_image 1 - -typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); - -#define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV) - -#define GLXEW_NV_copy_image GLXEW_GET_VAR(__GLXEW_NV_copy_image) - -#endif /* GLX_NV_copy_image */ - -/* -------------------------- GLX_NV_float_buffer -------------------------- */ - -#ifndef GLX_NV_float_buffer -#define GLX_NV_float_buffer 1 - -#define GLX_FLOAT_COMPONENTS_NV 0x20B0 - -#define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer) - -#endif /* GLX_NV_float_buffer */ - -/* ---------------------- GLX_NV_multisample_coverage ---------------------- */ - -#ifndef GLX_NV_multisample_coverage -#define GLX_NV_multisample_coverage 1 - -#define GLX_COLOR_SAMPLES_NV 0x20B3 -#define GLX_COVERAGE_SAMPLES_NV 100001 - -#define GLXEW_NV_multisample_coverage GLXEW_GET_VAR(__GLXEW_NV_multisample_coverage) - -#endif /* GLX_NV_multisample_coverage */ - -/* -------------------------- GLX_NV_present_video ------------------------- */ - -#ifndef GLX_NV_present_video -#define GLX_NV_present_video 1 - -#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 - -typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); -typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); - -#define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV) -#define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV) - -#define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video) - -#endif /* GLX_NV_present_video */ - -/* --------------------------- GLX_NV_swap_group --------------------------- */ - -#ifndef GLX_NV_swap_group -#define GLX_NV_swap_group 1 - -typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier); -typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group); -typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count); -typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); -typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); -typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen); - -#define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV) -#define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV) -#define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV) -#define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV) -#define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV) -#define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV) - -#define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group) - -#endif /* GLX_NV_swap_group */ - -/* ----------------------- GLX_NV_vertex_array_range ----------------------- */ - -#ifndef GLX_NV_vertex_array_range -#define GLX_NV_vertex_array_range 1 - -typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); -typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer); - -#define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV) -#define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV) - -#define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range) - -#endif /* GLX_NV_vertex_array_range */ - -/* -------------------------- GLX_NV_video_capture ------------------------- */ - -#ifndef GLX_NV_video_capture -#define GLX_NV_video_capture 1 - -#define GLX_DEVICE_ID_NV 0x20CD -#define GLX_UNIQUE_ID_NV 0x20CE -#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF - -typedef XID GLXVideoCaptureDeviceNV; - -typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); -typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int *nelements); -typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); -typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); -typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); - -#define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV) -#define glXEnumerateVideoCaptureDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoCaptureDevicesNV) -#define glXLockVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXLockVideoCaptureDeviceNV) -#define glXQueryVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXQueryVideoCaptureDeviceNV) -#define glXReleaseVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoCaptureDeviceNV) - -#define GLXEW_NV_video_capture GLXEW_GET_VAR(__GLXEW_NV_video_capture) - -#endif /* GLX_NV_video_capture */ - -/* -------------------------- GLX_NV_video_output -------------------------- */ - -#ifndef GLX_NV_video_output -#define GLX_NV_video_output 1 - -#define GLX_VIDEO_OUT_COLOR_NV 0x20C3 -#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 -#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 -#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 -#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 -#define GLX_VIDEO_OUT_FRAME_NV 0x20C8 -#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 -#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA -#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB -#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC - -typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); -typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); -typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice); -typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf); -typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); - -#define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV) -#define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV) -#define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV) -#define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV) -#define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV) -#define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV) - -#define GLXEW_NV_video_output GLXEW_GET_VAR(__GLXEW_NV_video_output) - -#endif /* GLX_NV_video_output */ - -/* -------------------------- GLX_OML_swap_method -------------------------- */ - -#ifndef GLX_OML_swap_method -#define GLX_OML_swap_method 1 - -#define GLX_SWAP_METHOD_OML 0x8060 -#define GLX_SWAP_EXCHANGE_OML 0x8061 -#define GLX_SWAP_COPY_OML 0x8062 -#define GLX_SWAP_UNDEFINED_OML 0x8063 - -#define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method) - -#endif /* GLX_OML_swap_method */ - -/* -------------------------- GLX_OML_sync_control ------------------------- */ - -#ifndef GLX_OML_sync_control -#define GLX_OML_sync_control 1 - -typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator); -typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc); -typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); -typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc); -typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc); - -#define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML) -#define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML) -#define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML) -#define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML) -#define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML) - -#define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control) - -#endif /* GLX_OML_sync_control */ - -/* ------------------------ GLX_SGIS_blended_overlay ----------------------- */ - -#ifndef GLX_SGIS_blended_overlay -#define GLX_SGIS_blended_overlay 1 - -#define GLX_BLENDED_RGBA_SGIS 0x8025 - -#define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay) - -#endif /* GLX_SGIS_blended_overlay */ - -/* -------------------------- GLX_SGIS_color_range ------------------------- */ - -#ifndef GLX_SGIS_color_range -#define GLX_SGIS_color_range 1 - -#define GLX_MIN_RED_SGIS 0 -#define GLX_MAX_GREEN_SGIS 0 -#define GLX_MIN_BLUE_SGIS 0 -#define GLX_MAX_ALPHA_SGIS 0 -#define GLX_MIN_GREEN_SGIS 0 -#define GLX_MIN_ALPHA_SGIS 0 -#define GLX_MAX_RED_SGIS 0 -#define GLX_EXTENDED_RANGE_SGIS 0 -#define GLX_MAX_BLUE_SGIS 0 - -#define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range) - -#endif /* GLX_SGIS_color_range */ - -/* -------------------------- GLX_SGIS_multisample ------------------------- */ - -#ifndef GLX_SGIS_multisample -#define GLX_SGIS_multisample 1 - -#define GLX_SAMPLE_BUFFERS_SGIS 100000 -#define GLX_SAMPLES_SGIS 100001 - -#define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample) - -#endif /* GLX_SGIS_multisample */ - -/* ---------------------- GLX_SGIS_shared_multisample ---------------------- */ - -#ifndef GLX_SGIS_shared_multisample -#define GLX_SGIS_shared_multisample 1 - -#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 -#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 - -#define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample) - -#endif /* GLX_SGIS_shared_multisample */ - -/* --------------------------- GLX_SGIX_fbconfig --------------------------- */ - -#ifndef GLX_SGIX_fbconfig -#define GLX_SGIX_fbconfig 1 - -#define GLX_WINDOW_BIT_SGIX 0x00000001 -#define GLX_RGBA_BIT_SGIX 0x00000001 -#define GLX_PIXMAP_BIT_SGIX 0x00000002 -#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 -#define GLX_SCREEN_EXT 0x800C -#define GLX_DRAWABLE_TYPE_SGIX 0x8010 -#define GLX_RENDER_TYPE_SGIX 0x8011 -#define GLX_X_RENDERABLE_SGIX 0x8012 -#define GLX_FBCONFIG_ID_SGIX 0x8013 -#define GLX_RGBA_TYPE_SGIX 0x8014 -#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 - -typedef XID GLXFBConfigIDSGIX; -typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; - -typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, Pixmap pixmap); -typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int *value); -typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo *vis); -typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfig config); - -#define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX) -#define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX) -#define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX) -#define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX) -#define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX) -#define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX) - -#define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig) - -#endif /* GLX_SGIX_fbconfig */ - -/* --------------------------- GLX_SGIX_hyperpipe -------------------------- */ - -#ifndef GLX_SGIX_hyperpipe -#define GLX_SGIX_hyperpipe 1 - -#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 -#define GLX_PIPE_RECT_SGIX 0x00000001 -#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 -#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 -#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 -#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 -#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 -#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 -#define GLX_BAD_HYPERPIPE_SGIX 92 -#define GLX_HYPERPIPE_ID_SGIX 0x8030 - -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int networkId; -} GLXHyperpipeNetworkSGIX; -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int XOrigin; - int YOrigin; - int maxHeight; - int maxWidth; -} GLXPipeRectLimits; -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int channel; - unsigned int participationType; - int timeSlice; -} GLXHyperpipeConfigSGIX; -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int srcXOrigin; - int srcYOrigin; - int srcWidth; - int srcHeight; - int destXOrigin; - int destYOrigin; - int destWidth; - int destHeight; -} GLXPipeRect; - -typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); -typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); -typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); -typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); -typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); -typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); -typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); -typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); - -#define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX) -#define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX) -#define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX) -#define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX) -#define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX) -#define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX) -#define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX) -#define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX) - -#define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe) - -#endif /* GLX_SGIX_hyperpipe */ - -/* ---------------------------- GLX_SGIX_pbuffer --------------------------- */ - -#ifndef GLX_SGIX_pbuffer -#define GLX_SGIX_pbuffer 1 - -#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 -#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 -#define GLX_PBUFFER_BIT_SGIX 0x00000004 -#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 -#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 -#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 -#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 -#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 -#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 -#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 -#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 -#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 -#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 -#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 -#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A -#define GLX_PRESERVED_CONTENTS_SGIX 0x801B -#define GLX_LARGEST_PBUFFER_SGIX 0x801C -#define GLX_WIDTH_SGIX 0x801D -#define GLX_HEIGHT_SGIX 0x801E -#define GLX_EVENT_MASK_SGIX 0x801F -#define GLX_DAMAGED_SGIX 0x8020 -#define GLX_SAVED_SGIX 0x8021 -#define GLX_WINDOW_SGIX 0x8022 -#define GLX_PBUFFER_SGIX 0x8023 -#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 - -typedef XID GLXPbufferSGIX; -typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX; - -typedef GLXPbuffer ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list); -typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf); -typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long *mask); -typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf, int attribute, unsigned int *value); -typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask); - -#define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX) -#define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX) -#define glXGetSelectedEventSGIX GLXEW_GET_FUN(__glewXGetSelectedEventSGIX) -#define glXQueryGLXPbufferSGIX GLXEW_GET_FUN(__glewXQueryGLXPbufferSGIX) -#define glXSelectEventSGIX GLXEW_GET_FUN(__glewXSelectEventSGIX) - -#define GLXEW_SGIX_pbuffer GLXEW_GET_VAR(__GLXEW_SGIX_pbuffer) - -#endif /* GLX_SGIX_pbuffer */ - -/* ------------------------- GLX_SGIX_swap_barrier ------------------------- */ - -#ifndef GLX_SGIX_swap_barrier -#define GLX_SGIX_swap_barrier 1 - -typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); -typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); - -#define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX) -#define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX) - -#define GLXEW_SGIX_swap_barrier GLXEW_GET_VAR(__GLXEW_SGIX_swap_barrier) - -#endif /* GLX_SGIX_swap_barrier */ - -/* -------------------------- GLX_SGIX_swap_group -------------------------- */ - -#ifndef GLX_SGIX_swap_group -#define GLX_SGIX_swap_group 1 - -typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); - -#define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX) - -#define GLXEW_SGIX_swap_group GLXEW_GET_VAR(__GLXEW_SGIX_swap_group) - -#endif /* GLX_SGIX_swap_group */ - -/* ------------------------- GLX_SGIX_video_resize ------------------------- */ - -#ifndef GLX_SGIX_video_resize -#define GLX_SGIX_video_resize 1 - -#define GLX_SYNC_FRAME_SGIX 0x00000000 -#define GLX_SYNC_SWAP_SGIX 0x00000001 - -typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window); -typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h); -typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype); -typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int *x, int *y, int *w, int *h); -typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); - -#define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX) -#define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX) -#define glXChannelRectSyncSGIX GLXEW_GET_FUN(__glewXChannelRectSyncSGIX) -#define glXQueryChannelDeltasSGIX GLXEW_GET_FUN(__glewXQueryChannelDeltasSGIX) -#define glXQueryChannelRectSGIX GLXEW_GET_FUN(__glewXQueryChannelRectSGIX) - -#define GLXEW_SGIX_video_resize GLXEW_GET_VAR(__GLXEW_SGIX_video_resize) - -#endif /* GLX_SGIX_video_resize */ - -/* ---------------------- GLX_SGIX_visual_select_group --------------------- */ - -#ifndef GLX_SGIX_visual_select_group -#define GLX_SGIX_visual_select_group 1 - -#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 - -#define GLXEW_SGIX_visual_select_group GLXEW_GET_VAR(__GLXEW_SGIX_visual_select_group) - -#endif /* GLX_SGIX_visual_select_group */ - -/* ---------------------------- GLX_SGI_cushion ---------------------------- */ - -#ifndef GLX_SGI_cushion -#define GLX_SGI_cushion 1 - -typedef void ( * PFNGLXCUSHIONSGIPROC) (Display* dpy, Window window, float cushion); - -#define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI) - -#define GLXEW_SGI_cushion GLXEW_GET_VAR(__GLXEW_SGI_cushion) - -#endif /* GLX_SGI_cushion */ - -/* ----------------------- GLX_SGI_make_current_read ----------------------- */ - -#ifndef GLX_SGI_make_current_read -#define GLX_SGI_make_current_read 1 - -typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); -typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); - -#define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI) -#define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI) - -#define GLXEW_SGI_make_current_read GLXEW_GET_VAR(__GLXEW_SGI_make_current_read) - -#endif /* GLX_SGI_make_current_read */ - -/* -------------------------- GLX_SGI_swap_control ------------------------- */ - -#ifndef GLX_SGI_swap_control -#define GLX_SGI_swap_control 1 - -typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); - -#define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI) - -#define GLXEW_SGI_swap_control GLXEW_GET_VAR(__GLXEW_SGI_swap_control) - -#endif /* GLX_SGI_swap_control */ - -/* --------------------------- GLX_SGI_video_sync -------------------------- */ - -#ifndef GLX_SGI_video_sync -#define GLX_SGI_video_sync 1 - -typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int* count); -typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int* count); - -#define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI) -#define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI) - -#define GLXEW_SGI_video_sync GLXEW_GET_VAR(__GLXEW_SGI_video_sync) - -#endif /* GLX_SGI_video_sync */ - -/* --------------------- GLX_SUN_get_transparent_index --------------------- */ - -#ifndef GLX_SUN_get_transparent_index -#define GLX_SUN_get_transparent_index 1 - -typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex); - -#define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN) - -#define GLXEW_SUN_get_transparent_index GLXEW_GET_VAR(__GLXEW_SUN_get_transparent_index) - -#endif /* GLX_SUN_get_transparent_index */ - -/* -------------------------- GLX_SUN_video_resize ------------------------- */ - -#ifndef GLX_SUN_video_resize -#define GLX_SUN_video_resize 1 - -#define GLX_VIDEO_RESIZE_SUN 0x8171 -#define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD - -typedef int ( * PFNGLXGETVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float* factor); -typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float factor); - -#define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN) -#define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN) - -#define GLXEW_SUN_video_resize GLXEW_GET_VAR(__GLXEW_SUN_video_resize) - -#endif /* GLX_SUN_video_resize */ - -/* ------------------------------------------------------------------------- */ - -#ifdef GLEW_MX -#define GLXEW_EXPORT -#else -#define GLXEW_EXPORT extern -#endif /* GLEW_MX */ - -extern PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay; - -extern PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig; -extern PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext; -extern PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer; -extern PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap; -extern PFNGLXCREATEWINDOWPROC __glewXCreateWindow; -extern PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer; -extern PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap; -extern PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow; -extern PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable; -extern PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib; -extern PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs; -extern PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent; -extern PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig; -extern PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent; -extern PFNGLXQUERYCONTEXTPROC __glewXQueryContext; -extern PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable; -extern PFNGLXSELECTEVENTPROC __glewXSelectEvent; - -extern PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB; - -extern PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI; -extern PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI; -extern PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI; - -extern PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT; -extern PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT; -extern PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT; -extern PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT; - -extern PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT; - -extern PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT; -extern PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT; - -extern PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA; - -extern PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA; - -extern PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA; - -extern PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA; - -extern PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA; - -extern PFNGLXGETSWAPINTERVALMESAPROC __glewXGetSwapIntervalMESA; -extern PFNGLXSWAPINTERVALMESAPROC __glewXSwapIntervalMESA; - -extern PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV; - -extern PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV; -extern PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV; - -extern PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV; -extern PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV; -extern PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV; -extern PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV; -extern PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV; -extern PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV; - -extern PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV; -extern PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV; - -extern PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV; -extern PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV; -extern PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV; -extern PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV; -extern PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV; - -extern PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV; -extern PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV; -extern PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV; -extern PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV; -extern PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV; -extern PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV; - -extern PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML; -extern PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML; -extern PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML; -extern PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML; -extern PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML; - -extern PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX; -extern PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX; -extern PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX; -extern PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX; -extern PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX; -extern PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX; - -extern PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX; -extern PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX; -extern PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX; -extern PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX; -extern PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX; -extern PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX; -extern PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX; -extern PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX; - -extern PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX; -extern PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX; -extern PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX; -extern PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX; -extern PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX; - -extern PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX; -extern PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX; - -extern PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX; - -extern PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX; -extern PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX; -extern PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX; -extern PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX; -extern PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX; - -extern PFNGLXCUSHIONSGIPROC __glewXCushionSGI; - -extern PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI; -extern PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI; - -extern PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI; - -extern PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI; -extern PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI; - -extern PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN; - -extern PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN; -extern PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN; - -#if defined(GLEW_MX) -struct GLXEWContextStruct -{ -#endif /* GLEW_MX */ - -GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_0; -GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_1; -GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_2; -GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_3; -GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_4; -GLXEW_EXPORT GLboolean __GLXEW_3DFX_multisample; -GLXEW_EXPORT GLboolean __GLXEW_AMD_gpu_association; -GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context; -GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context_profile; -GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context_robustness; -GLXEW_EXPORT GLboolean __GLXEW_ARB_fbconfig_float; -GLXEW_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB; -GLXEW_EXPORT GLboolean __GLXEW_ARB_get_proc_address; -GLXEW_EXPORT GLboolean __GLXEW_ARB_multisample; -GLXEW_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object; -GLXEW_EXPORT GLboolean __GLXEW_ATI_pixel_format_float; -GLXEW_EXPORT GLboolean __GLXEW_ATI_render_texture; -GLXEW_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile; -GLXEW_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float; -GLXEW_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB; -GLXEW_EXPORT GLboolean __GLXEW_EXT_import_context; -GLXEW_EXPORT GLboolean __GLXEW_EXT_scene_marker; -GLXEW_EXPORT GLboolean __GLXEW_EXT_swap_control; -GLXEW_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap; -GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_info; -GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_rating; -GLXEW_EXPORT GLboolean __GLXEW_INTEL_swap_event; -GLXEW_EXPORT GLboolean __GLXEW_MESA_agp_offset; -GLXEW_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer; -GLXEW_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap; -GLXEW_EXPORT GLboolean __GLXEW_MESA_release_buffers; -GLXEW_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode; -GLXEW_EXPORT GLboolean __GLXEW_MESA_swap_control; -GLXEW_EXPORT GLboolean __GLXEW_NV_copy_image; -GLXEW_EXPORT GLboolean __GLXEW_NV_float_buffer; -GLXEW_EXPORT GLboolean __GLXEW_NV_multisample_coverage; -GLXEW_EXPORT GLboolean __GLXEW_NV_present_video; -GLXEW_EXPORT GLboolean __GLXEW_NV_swap_group; -GLXEW_EXPORT GLboolean __GLXEW_NV_vertex_array_range; -GLXEW_EXPORT GLboolean __GLXEW_NV_video_capture; -GLXEW_EXPORT GLboolean __GLXEW_NV_video_output; -GLXEW_EXPORT GLboolean __GLXEW_OML_swap_method; -GLXEW_EXPORT GLboolean __GLXEW_OML_sync_control; -GLXEW_EXPORT GLboolean __GLXEW_SGIS_blended_overlay; -GLXEW_EXPORT GLboolean __GLXEW_SGIS_color_range; -GLXEW_EXPORT GLboolean __GLXEW_SGIS_multisample; -GLXEW_EXPORT GLboolean __GLXEW_SGIS_shared_multisample; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_fbconfig; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_hyperpipe; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_pbuffer; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_barrier; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_group; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_video_resize; -GLXEW_EXPORT GLboolean __GLXEW_SGIX_visual_select_group; -GLXEW_EXPORT GLboolean __GLXEW_SGI_cushion; -GLXEW_EXPORT GLboolean __GLXEW_SGI_make_current_read; -GLXEW_EXPORT GLboolean __GLXEW_SGI_swap_control; -GLXEW_EXPORT GLboolean __GLXEW_SGI_video_sync; -GLXEW_EXPORT GLboolean __GLXEW_SUN_get_transparent_index; -GLXEW_EXPORT GLboolean __GLXEW_SUN_video_resize; - -#ifdef GLEW_MX -}; /* GLXEWContextStruct */ -#endif /* GLEW_MX */ - -/* ------------------------------------------------------------------------ */ - -#ifdef GLEW_MX - -typedef struct GLXEWContextStruct GLXEWContext; -extern GLenum glxewContextInit (GLXEWContext* ctx); -extern GLboolean glxewContextIsSupported (const GLXEWContext* ctx, const char* name); - -#define glxewInit() glxewContextInit(glxewGetContext()) -#define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x) - -#define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x)) -#define GLXEW_GET_FUN(x) x - -#else /* GLEW_MX */ - -#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) -#define GLXEW_GET_FUN(x) x - -extern GLboolean glxewIsSupported (const char* name); - -#endif /* GLEW_MX */ - -extern GLboolean glxewGetExtension (const char* name); - -#ifdef __cplusplus -} -#endif - -#endif /* __glxew_h__ */ diff --git a/lib/osx/include/GL/wglew.h b/lib/osx/include/GL/wglew.h deleted file mode 100644 index 05f054f..0000000 --- a/lib/osx/include/GL/wglew.h +++ /dev/null @@ -1,1363 +0,0 @@ -/* -** The OpenGL Extension Wrangler Library -** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org> -** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org> -** Copyright (C) 2002, Lev Povalahev -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are met: -** -** * Redistributions of source code must retain the above copyright notice, -** this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright notice, -** this list of conditions and the following disclaimer in the documentation -** and/or other materials provided with the distribution. -** * The name of the author may be used to endorse or promote products -** derived from this software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -** THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -** Copyright (c) 2007 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -#ifndef __wglew_h__ -#define __wglew_h__ -#define __WGLEW_H__ - -#ifdef __wglext_h_ -#error wglext.h included before wglew.h -#endif - -#define __wglext_h_ - -#if !defined(WINAPI) -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN 1 -# endif -#include <windows.h> -# undef WIN32_LEAN_AND_MEAN -#endif - -/* - * GLEW_STATIC needs to be set when using the static version. - * GLEW_BUILD is set when building the DLL version. - */ -#ifdef GLEW_STATIC -# define GLEWAPI extern -#else -# ifdef GLEW_BUILD -# define GLEWAPI extern __declspec(dllexport) -# else -# define GLEWAPI extern __declspec(dllimport) -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* -------------------------- WGL_3DFX_multisample ------------------------- */ - -#ifndef WGL_3DFX_multisample -#define WGL_3DFX_multisample 1 - -#define WGL_SAMPLE_BUFFERS_3DFX 0x2060 -#define WGL_SAMPLES_3DFX 0x2061 - -#define WGLEW_3DFX_multisample WGLEW_GET_VAR(__WGLEW_3DFX_multisample) - -#endif /* WGL_3DFX_multisample */ - -/* ------------------------- WGL_3DL_stereo_control ------------------------ */ - -#ifndef WGL_3DL_stereo_control -#define WGL_3DL_stereo_control 1 - -#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055 -#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056 -#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 -#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 - -typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState); - -#define wglSetStereoEmitterState3DL WGLEW_GET_FUN(__wglewSetStereoEmitterState3DL) - -#define WGLEW_3DL_stereo_control WGLEW_GET_VAR(__WGLEW_3DL_stereo_control) - -#endif /* WGL_3DL_stereo_control */ - -/* ------------------------ WGL_AMD_gpu_association ------------------------ */ - -#ifndef WGL_AMD_gpu_association -#define WGL_AMD_gpu_association 1 - -#define WGL_GPU_VENDOR_AMD 0x1F00 -#define WGL_GPU_RENDERER_STRING_AMD 0x1F01 -#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 -#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 -#define WGL_GPU_RAM_AMD 0x21A3 -#define WGL_GPU_CLOCK_AMD 0x21A4 -#define WGL_GPU_NUM_PIPES_AMD 0x21A5 -#define WGL_GPU_NUM_SIMD_AMD 0x21A6 -#define WGL_GPU_NUM_RB_AMD 0x21A7 -#define WGL_GPU_NUM_SPI_AMD 0x21A8 - -typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id); -typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int* attribList); -typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc); -typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc); -typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); -typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT* ids); -typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void* data); -typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc); - -#define wglBlitContextFramebufferAMD WGLEW_GET_FUN(__wglewBlitContextFramebufferAMD) -#define wglCreateAssociatedContextAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAMD) -#define wglCreateAssociatedContextAttribsAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAttribsAMD) -#define wglDeleteAssociatedContextAMD WGLEW_GET_FUN(__wglewDeleteAssociatedContextAMD) -#define wglGetContextGPUIDAMD WGLEW_GET_FUN(__wglewGetContextGPUIDAMD) -#define wglGetCurrentAssociatedContextAMD WGLEW_GET_FUN(__wglewGetCurrentAssociatedContextAMD) -#define wglGetGPUIDsAMD WGLEW_GET_FUN(__wglewGetGPUIDsAMD) -#define wglGetGPUInfoAMD WGLEW_GET_FUN(__wglewGetGPUInfoAMD) -#define wglMakeAssociatedContextCurrentAMD WGLEW_GET_FUN(__wglewMakeAssociatedContextCurrentAMD) - -#define WGLEW_AMD_gpu_association WGLEW_GET_VAR(__WGLEW_AMD_gpu_association) - -#endif /* WGL_AMD_gpu_association */ - -/* ------------------------- WGL_ARB_buffer_region ------------------------- */ - -#ifndef WGL_ARB_buffer_region -#define WGL_ARB_buffer_region 1 - -#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 -#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 -#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 -#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 - -typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); -typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); -typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); -typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); - -#define wglCreateBufferRegionARB WGLEW_GET_FUN(__wglewCreateBufferRegionARB) -#define wglDeleteBufferRegionARB WGLEW_GET_FUN(__wglewDeleteBufferRegionARB) -#define wglRestoreBufferRegionARB WGLEW_GET_FUN(__wglewRestoreBufferRegionARB) -#define wglSaveBufferRegionARB WGLEW_GET_FUN(__wglewSaveBufferRegionARB) - -#define WGLEW_ARB_buffer_region WGLEW_GET_VAR(__WGLEW_ARB_buffer_region) - -#endif /* WGL_ARB_buffer_region */ - -/* ------------------------- WGL_ARB_create_context ------------------------ */ - -#ifndef WGL_ARB_create_context -#define WGL_ARB_create_context 1 - -#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 -#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 -#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 -#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 -#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 -#define WGL_CONTEXT_FLAGS_ARB 0x2094 -#define ERROR_INVALID_VERSION_ARB 0x2095 -#define ERROR_INVALID_PROFILE_ARB 0x2096 - -typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList); - -#define wglCreateContextAttribsARB WGLEW_GET_FUN(__wglewCreateContextAttribsARB) - -#define WGLEW_ARB_create_context WGLEW_GET_VAR(__WGLEW_ARB_create_context) - -#endif /* WGL_ARB_create_context */ - -/* --------------------- WGL_ARB_create_context_profile -------------------- */ - -#ifndef WGL_ARB_create_context_profile -#define WGL_ARB_create_context_profile 1 - -#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 -#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 -#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 - -#define WGLEW_ARB_create_context_profile WGLEW_GET_VAR(__WGLEW_ARB_create_context_profile) - -#endif /* WGL_ARB_create_context_profile */ - -/* ------------------- WGL_ARB_create_context_robustness ------------------- */ - -#ifndef WGL_ARB_create_context_robustness -#define WGL_ARB_create_context_robustness 1 - -#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 - -#define WGLEW_ARB_create_context_robustness WGLEW_GET_VAR(__WGLEW_ARB_create_context_robustness) - -#endif /* WGL_ARB_create_context_robustness */ - -/* ----------------------- WGL_ARB_extensions_string ----------------------- */ - -#ifndef WGL_ARB_extensions_string -#define WGL_ARB_extensions_string 1 - -typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); - -#define wglGetExtensionsStringARB WGLEW_GET_FUN(__wglewGetExtensionsStringARB) - -#define WGLEW_ARB_extensions_string WGLEW_GET_VAR(__WGLEW_ARB_extensions_string) - -#endif /* WGL_ARB_extensions_string */ - -/* ------------------------ WGL_ARB_framebuffer_sRGB ----------------------- */ - -#ifndef WGL_ARB_framebuffer_sRGB -#define WGL_ARB_framebuffer_sRGB 1 - -#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9 - -#define WGLEW_ARB_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_ARB_framebuffer_sRGB) - -#endif /* WGL_ARB_framebuffer_sRGB */ - -/* ----------------------- WGL_ARB_make_current_read ----------------------- */ - -#ifndef WGL_ARB_make_current_read -#define WGL_ARB_make_current_read 1 - -#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 -#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 - -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); - -#define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB) -#define wglMakeContextCurrentARB WGLEW_GET_FUN(__wglewMakeContextCurrentARB) - -#define WGLEW_ARB_make_current_read WGLEW_GET_VAR(__WGLEW_ARB_make_current_read) - -#endif /* WGL_ARB_make_current_read */ - -/* -------------------------- WGL_ARB_multisample -------------------------- */ - -#ifndef WGL_ARB_multisample -#define WGL_ARB_multisample 1 - -#define WGL_SAMPLE_BUFFERS_ARB 0x2041 -#define WGL_SAMPLES_ARB 0x2042 - -#define WGLEW_ARB_multisample WGLEW_GET_VAR(__WGLEW_ARB_multisample) - -#endif /* WGL_ARB_multisample */ - -/* ---------------------------- WGL_ARB_pbuffer ---------------------------- */ - -#ifndef WGL_ARB_pbuffer -#define WGL_ARB_pbuffer 1 - -#define WGL_DRAW_TO_PBUFFER_ARB 0x202D -#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E -#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 -#define WGL_PBUFFER_LARGEST_ARB 0x2033 -#define WGL_PBUFFER_WIDTH_ARB 0x2034 -#define WGL_PBUFFER_HEIGHT_ARB 0x2035 -#define WGL_PBUFFER_LOST_ARB 0x2036 - -DECLARE_HANDLE(HPBUFFERARB); - -typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); -typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); -typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); -typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int* piValue); -typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); - -#define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB) -#define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB) -#define wglGetPbufferDCARB WGLEW_GET_FUN(__wglewGetPbufferDCARB) -#define wglQueryPbufferARB WGLEW_GET_FUN(__wglewQueryPbufferARB) -#define wglReleasePbufferDCARB WGLEW_GET_FUN(__wglewReleasePbufferDCARB) - -#define WGLEW_ARB_pbuffer WGLEW_GET_VAR(__WGLEW_ARB_pbuffer) - -#endif /* WGL_ARB_pbuffer */ - -/* -------------------------- WGL_ARB_pixel_format ------------------------- */ - -#ifndef WGL_ARB_pixel_format -#define WGL_ARB_pixel_format 1 - -#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 -#define WGL_DRAW_TO_WINDOW_ARB 0x2001 -#define WGL_DRAW_TO_BITMAP_ARB 0x2002 -#define WGL_ACCELERATION_ARB 0x2003 -#define WGL_NEED_PALETTE_ARB 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 -#define WGL_SWAP_METHOD_ARB 0x2007 -#define WGL_NUMBER_OVERLAYS_ARB 0x2008 -#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 -#define WGL_TRANSPARENT_ARB 0x200A -#define WGL_SHARE_DEPTH_ARB 0x200C -#define WGL_SHARE_STENCIL_ARB 0x200D -#define WGL_SHARE_ACCUM_ARB 0x200E -#define WGL_SUPPORT_GDI_ARB 0x200F -#define WGL_SUPPORT_OPENGL_ARB 0x2010 -#define WGL_DOUBLE_BUFFER_ARB 0x2011 -#define WGL_STEREO_ARB 0x2012 -#define WGL_PIXEL_TYPE_ARB 0x2013 -#define WGL_COLOR_BITS_ARB 0x2014 -#define WGL_RED_BITS_ARB 0x2015 -#define WGL_RED_SHIFT_ARB 0x2016 -#define WGL_GREEN_BITS_ARB 0x2017 -#define WGL_GREEN_SHIFT_ARB 0x2018 -#define WGL_BLUE_BITS_ARB 0x2019 -#define WGL_BLUE_SHIFT_ARB 0x201A -#define WGL_ALPHA_BITS_ARB 0x201B -#define WGL_ALPHA_SHIFT_ARB 0x201C -#define WGL_ACCUM_BITS_ARB 0x201D -#define WGL_ACCUM_RED_BITS_ARB 0x201E -#define WGL_ACCUM_GREEN_BITS_ARB 0x201F -#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 -#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 -#define WGL_DEPTH_BITS_ARB 0x2022 -#define WGL_STENCIL_BITS_ARB 0x2023 -#define WGL_AUX_BUFFERS_ARB 0x2024 -#define WGL_NO_ACCELERATION_ARB 0x2025 -#define WGL_GENERIC_ACCELERATION_ARB 0x2026 -#define WGL_FULL_ACCELERATION_ARB 0x2027 -#define WGL_SWAP_EXCHANGE_ARB 0x2028 -#define WGL_SWAP_COPY_ARB 0x2029 -#define WGL_SWAP_UNDEFINED_ARB 0x202A -#define WGL_TYPE_RGBA_ARB 0x202B -#define WGL_TYPE_COLORINDEX_ARB 0x202C -#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 -#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 -#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 -#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A -#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B - -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int *piValues); - -#define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB) -#define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB) -#define wglGetPixelFormatAttribivARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribivARB) - -#define WGLEW_ARB_pixel_format WGLEW_GET_VAR(__WGLEW_ARB_pixel_format) - -#endif /* WGL_ARB_pixel_format */ - -/* ----------------------- WGL_ARB_pixel_format_float ---------------------- */ - -#ifndef WGL_ARB_pixel_format_float -#define WGL_ARB_pixel_format_float 1 - -#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 - -#define WGLEW_ARB_pixel_format_float WGLEW_GET_VAR(__WGLEW_ARB_pixel_format_float) - -#endif /* WGL_ARB_pixel_format_float */ - -/* ------------------------- WGL_ARB_render_texture ------------------------ */ - -#ifndef WGL_ARB_render_texture -#define WGL_ARB_render_texture 1 - -#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 -#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 -#define WGL_TEXTURE_FORMAT_ARB 0x2072 -#define WGL_TEXTURE_TARGET_ARB 0x2073 -#define WGL_MIPMAP_TEXTURE_ARB 0x2074 -#define WGL_TEXTURE_RGB_ARB 0x2075 -#define WGL_TEXTURE_RGBA_ARB 0x2076 -#define WGL_NO_TEXTURE_ARB 0x2077 -#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 -#define WGL_TEXTURE_1D_ARB 0x2079 -#define WGL_TEXTURE_2D_ARB 0x207A -#define WGL_MIPMAP_LEVEL_ARB 0x207B -#define WGL_CUBE_MAP_FACE_ARB 0x207C -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 -#define WGL_FRONT_LEFT_ARB 0x2083 -#define WGL_FRONT_RIGHT_ARB 0x2084 -#define WGL_BACK_LEFT_ARB 0x2085 -#define WGL_BACK_RIGHT_ARB 0x2086 -#define WGL_AUX0_ARB 0x2087 -#define WGL_AUX1_ARB 0x2088 -#define WGL_AUX2_ARB 0x2089 -#define WGL_AUX3_ARB 0x208A -#define WGL_AUX4_ARB 0x208B -#define WGL_AUX5_ARB 0x208C -#define WGL_AUX6_ARB 0x208D -#define WGL_AUX7_ARB 0x208E -#define WGL_AUX8_ARB 0x208F -#define WGL_AUX9_ARB 0x2090 - -typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int* piAttribList); - -#define wglBindTexImageARB WGLEW_GET_FUN(__wglewBindTexImageARB) -#define wglReleaseTexImageARB WGLEW_GET_FUN(__wglewReleaseTexImageARB) -#define wglSetPbufferAttribARB WGLEW_GET_FUN(__wglewSetPbufferAttribARB) - -#define WGLEW_ARB_render_texture WGLEW_GET_VAR(__WGLEW_ARB_render_texture) - -#endif /* WGL_ARB_render_texture */ - -/* ----------------------- WGL_ATI_pixel_format_float ---------------------- */ - -#ifndef WGL_ATI_pixel_format_float -#define WGL_ATI_pixel_format_float 1 - -#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 -#define GL_RGBA_FLOAT_MODE_ATI 0x8820 -#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 - -#define WGLEW_ATI_pixel_format_float WGLEW_GET_VAR(__WGLEW_ATI_pixel_format_float) - -#endif /* WGL_ATI_pixel_format_float */ - -/* -------------------- WGL_ATI_render_texture_rectangle ------------------- */ - -#ifndef WGL_ATI_render_texture_rectangle -#define WGL_ATI_render_texture_rectangle 1 - -#define WGL_TEXTURE_RECTANGLE_ATI 0x21A5 - -#define WGLEW_ATI_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_ATI_render_texture_rectangle) - -#endif /* WGL_ATI_render_texture_rectangle */ - -/* ------------------- WGL_EXT_create_context_es2_profile ------------------ */ - -#ifndef WGL_EXT_create_context_es2_profile -#define WGL_EXT_create_context_es2_profile 1 - -#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 - -#define WGLEW_EXT_create_context_es2_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es2_profile) - -#endif /* WGL_EXT_create_context_es2_profile */ - -/* -------------------------- WGL_EXT_depth_float -------------------------- */ - -#ifndef WGL_EXT_depth_float -#define WGL_EXT_depth_float 1 - -#define WGL_DEPTH_FLOAT_EXT 0x2040 - -#define WGLEW_EXT_depth_float WGLEW_GET_VAR(__WGLEW_EXT_depth_float) - -#endif /* WGL_EXT_depth_float */ - -/* ---------------------- WGL_EXT_display_color_table ---------------------- */ - -#ifndef WGL_EXT_display_color_table -#define WGL_EXT_display_color_table 1 - -typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef void (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (GLushort* table, GLuint length); - -#define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT) -#define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT) -#define wglDestroyDisplayColorTableEXT WGLEW_GET_FUN(__wglewDestroyDisplayColorTableEXT) -#define wglLoadDisplayColorTableEXT WGLEW_GET_FUN(__wglewLoadDisplayColorTableEXT) - -#define WGLEW_EXT_display_color_table WGLEW_GET_VAR(__WGLEW_EXT_display_color_table) - -#endif /* WGL_EXT_display_color_table */ - -/* ----------------------- WGL_EXT_extensions_string ----------------------- */ - -#ifndef WGL_EXT_extensions_string -#define WGL_EXT_extensions_string 1 - -typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); - -#define wglGetExtensionsStringEXT WGLEW_GET_FUN(__wglewGetExtensionsStringEXT) - -#define WGLEW_EXT_extensions_string WGLEW_GET_VAR(__WGLEW_EXT_extensions_string) - -#endif /* WGL_EXT_extensions_string */ - -/* ------------------------ WGL_EXT_framebuffer_sRGB ----------------------- */ - -#ifndef WGL_EXT_framebuffer_sRGB -#define WGL_EXT_framebuffer_sRGB 1 - -#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 - -#define WGLEW_EXT_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_EXT_framebuffer_sRGB) - -#endif /* WGL_EXT_framebuffer_sRGB */ - -/* ----------------------- WGL_EXT_make_current_read ----------------------- */ - -#ifndef WGL_EXT_make_current_read -#define WGL_EXT_make_current_read 1 - -#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 - -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); - -#define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT) -#define wglMakeContextCurrentEXT WGLEW_GET_FUN(__wglewMakeContextCurrentEXT) - -#define WGLEW_EXT_make_current_read WGLEW_GET_VAR(__WGLEW_EXT_make_current_read) - -#endif /* WGL_EXT_make_current_read */ - -/* -------------------------- WGL_EXT_multisample -------------------------- */ - -#ifndef WGL_EXT_multisample -#define WGL_EXT_multisample 1 - -#define WGL_SAMPLE_BUFFERS_EXT 0x2041 -#define WGL_SAMPLES_EXT 0x2042 - -#define WGLEW_EXT_multisample WGLEW_GET_VAR(__WGLEW_EXT_multisample) - -#endif /* WGL_EXT_multisample */ - -/* ---------------------------- WGL_EXT_pbuffer ---------------------------- */ - -#ifndef WGL_EXT_pbuffer -#define WGL_EXT_pbuffer 1 - -#define WGL_DRAW_TO_PBUFFER_EXT 0x202D -#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E -#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 -#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 -#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 -#define WGL_PBUFFER_LARGEST_EXT 0x2033 -#define WGL_PBUFFER_WIDTH_EXT 0x2034 -#define WGL_PBUFFER_HEIGHT_EXT 0x2035 - -DECLARE_HANDLE(HPBUFFEREXT); - -typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); -typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); -typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); -typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int* piValue); -typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); - -#define wglCreatePbufferEXT WGLEW_GET_FUN(__wglewCreatePbufferEXT) -#define wglDestroyPbufferEXT WGLEW_GET_FUN(__wglewDestroyPbufferEXT) -#define wglGetPbufferDCEXT WGLEW_GET_FUN(__wglewGetPbufferDCEXT) -#define wglQueryPbufferEXT WGLEW_GET_FUN(__wglewQueryPbufferEXT) -#define wglReleasePbufferDCEXT WGLEW_GET_FUN(__wglewReleasePbufferDCEXT) - -#define WGLEW_EXT_pbuffer WGLEW_GET_VAR(__WGLEW_EXT_pbuffer) - -#endif /* WGL_EXT_pbuffer */ - -/* -------------------------- WGL_EXT_pixel_format ------------------------- */ - -#ifndef WGL_EXT_pixel_format -#define WGL_EXT_pixel_format 1 - -#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 -#define WGL_DRAW_TO_WINDOW_EXT 0x2001 -#define WGL_DRAW_TO_BITMAP_EXT 0x2002 -#define WGL_ACCELERATION_EXT 0x2003 -#define WGL_NEED_PALETTE_EXT 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 -#define WGL_SWAP_METHOD_EXT 0x2007 -#define WGL_NUMBER_OVERLAYS_EXT 0x2008 -#define WGL_NUMBER_UNDERLAYS_EXT 0x2009 -#define WGL_TRANSPARENT_EXT 0x200A -#define WGL_TRANSPARENT_VALUE_EXT 0x200B -#define WGL_SHARE_DEPTH_EXT 0x200C -#define WGL_SHARE_STENCIL_EXT 0x200D -#define WGL_SHARE_ACCUM_EXT 0x200E -#define WGL_SUPPORT_GDI_EXT 0x200F -#define WGL_SUPPORT_OPENGL_EXT 0x2010 -#define WGL_DOUBLE_BUFFER_EXT 0x2011 -#define WGL_STEREO_EXT 0x2012 -#define WGL_PIXEL_TYPE_EXT 0x2013 -#define WGL_COLOR_BITS_EXT 0x2014 -#define WGL_RED_BITS_EXT 0x2015 -#define WGL_RED_SHIFT_EXT 0x2016 -#define WGL_GREEN_BITS_EXT 0x2017 -#define WGL_GREEN_SHIFT_EXT 0x2018 -#define WGL_BLUE_BITS_EXT 0x2019 -#define WGL_BLUE_SHIFT_EXT 0x201A -#define WGL_ALPHA_BITS_EXT 0x201B -#define WGL_ALPHA_SHIFT_EXT 0x201C -#define WGL_ACCUM_BITS_EXT 0x201D -#define WGL_ACCUM_RED_BITS_EXT 0x201E -#define WGL_ACCUM_GREEN_BITS_EXT 0x201F -#define WGL_ACCUM_BLUE_BITS_EXT 0x2020 -#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 -#define WGL_DEPTH_BITS_EXT 0x2022 -#define WGL_STENCIL_BITS_EXT 0x2023 -#define WGL_AUX_BUFFERS_EXT 0x2024 -#define WGL_NO_ACCELERATION_EXT 0x2025 -#define WGL_GENERIC_ACCELERATION_EXT 0x2026 -#define WGL_FULL_ACCELERATION_EXT 0x2027 -#define WGL_SWAP_EXCHANGE_EXT 0x2028 -#define WGL_SWAP_COPY_EXT 0x2029 -#define WGL_SWAP_UNDEFINED_EXT 0x202A -#define WGL_TYPE_RGBA_EXT 0x202B -#define WGL_TYPE_COLORINDEX_EXT 0x202C - -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int *piValues); - -#define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT) -#define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT) -#define wglGetPixelFormatAttribivEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribivEXT) - -#define WGLEW_EXT_pixel_format WGLEW_GET_VAR(__WGLEW_EXT_pixel_format) - -#endif /* WGL_EXT_pixel_format */ - -/* ------------------- WGL_EXT_pixel_format_packed_float ------------------- */ - -#ifndef WGL_EXT_pixel_format_packed_float -#define WGL_EXT_pixel_format_packed_float 1 - -#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 - -#define WGLEW_EXT_pixel_format_packed_float WGLEW_GET_VAR(__WGLEW_EXT_pixel_format_packed_float) - -#endif /* WGL_EXT_pixel_format_packed_float */ - -/* -------------------------- WGL_EXT_swap_control ------------------------- */ - -#ifndef WGL_EXT_swap_control -#define WGL_EXT_swap_control 1 - -typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); -typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); - -#define wglGetSwapIntervalEXT WGLEW_GET_FUN(__wglewGetSwapIntervalEXT) -#define wglSwapIntervalEXT WGLEW_GET_FUN(__wglewSwapIntervalEXT) - -#define WGLEW_EXT_swap_control WGLEW_GET_VAR(__WGLEW_EXT_swap_control) - -#endif /* WGL_EXT_swap_control */ - -/* --------------------- WGL_I3D_digital_video_control --------------------- */ - -#ifndef WGL_I3D_digital_video_control -#define WGL_I3D_digital_video_control 1 - -#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 -#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 -#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 -#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 - -typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); - -#define wglGetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewGetDigitalVideoParametersI3D) -#define wglSetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewSetDigitalVideoParametersI3D) - -#define WGLEW_I3D_digital_video_control WGLEW_GET_VAR(__WGLEW_I3D_digital_video_control) - -#endif /* WGL_I3D_digital_video_control */ - -/* ----------------------------- WGL_I3D_gamma ----------------------------- */ - -#ifndef WGL_I3D_gamma -#define WGL_I3D_gamma 1 - -#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E -#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F - -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT *puGreen, USHORT *puBlue); -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT *puGreen, const USHORT *puBlue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); - -#define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D) -#define wglGetGammaTableParametersI3D WGLEW_GET_FUN(__wglewGetGammaTableParametersI3D) -#define wglSetGammaTableI3D WGLEW_GET_FUN(__wglewSetGammaTableI3D) -#define wglSetGammaTableParametersI3D WGLEW_GET_FUN(__wglewSetGammaTableParametersI3D) - -#define WGLEW_I3D_gamma WGLEW_GET_VAR(__WGLEW_I3D_gamma) - -#endif /* WGL_I3D_gamma */ - -/* ---------------------------- WGL_I3D_genlock ---------------------------- */ - -#ifndef WGL_I3D_genlock -#define WGL_I3D_genlock 1 - -#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 -#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045 -#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046 -#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047 -#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 -#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 -#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A -#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B -#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C - -typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC); -typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC); -typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT* uRate); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDelay); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource); -typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag); -typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT *uMaxPixelDelay); - -#define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D) -#define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D) -#define wglGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGenlockSampleRateI3D) -#define wglGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGenlockSourceDelayI3D) -#define wglGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGenlockSourceEdgeI3D) -#define wglGenlockSourceI3D WGLEW_GET_FUN(__wglewGenlockSourceI3D) -#define wglGetGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGetGenlockSampleRateI3D) -#define wglGetGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGetGenlockSourceDelayI3D) -#define wglGetGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGetGenlockSourceEdgeI3D) -#define wglGetGenlockSourceI3D WGLEW_GET_FUN(__wglewGetGenlockSourceI3D) -#define wglIsEnabledGenlockI3D WGLEW_GET_FUN(__wglewIsEnabledGenlockI3D) -#define wglQueryGenlockMaxSourceDelayI3D WGLEW_GET_FUN(__wglewQueryGenlockMaxSourceDelayI3D) - -#define WGLEW_I3D_genlock WGLEW_GET_VAR(__WGLEW_I3D_genlock) - -#endif /* WGL_I3D_genlock */ - -/* -------------------------- WGL_I3D_image_buffer ------------------------- */ - -#ifndef WGL_I3D_image_buffer -#define WGL_I3D_image_buffer 1 - -#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 -#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 - -typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, HANDLE* pEvent, LPVOID *pAddress, DWORD *pSize, UINT count); -typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); -typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); -typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* pAddress, UINT count); - -#define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D) -#define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D) -#define wglDestroyImageBufferI3D WGLEW_GET_FUN(__wglewDestroyImageBufferI3D) -#define wglReleaseImageBufferEventsI3D WGLEW_GET_FUN(__wglewReleaseImageBufferEventsI3D) - -#define WGLEW_I3D_image_buffer WGLEW_GET_VAR(__WGLEW_I3D_image_buffer) - -#endif /* WGL_I3D_image_buffer */ - -/* ------------------------ WGL_I3D_swap_frame_lock ------------------------ */ - -#ifndef WGL_I3D_swap_frame_lock -#define WGL_I3D_swap_frame_lock 1 - -typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag); - -#define wglDisableFrameLockI3D WGLEW_GET_FUN(__wglewDisableFrameLockI3D) -#define wglEnableFrameLockI3D WGLEW_GET_FUN(__wglewEnableFrameLockI3D) -#define wglIsEnabledFrameLockI3D WGLEW_GET_FUN(__wglewIsEnabledFrameLockI3D) -#define wglQueryFrameLockMasterI3D WGLEW_GET_FUN(__wglewQueryFrameLockMasterI3D) - -#define WGLEW_I3D_swap_frame_lock WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_lock) - -#endif /* WGL_I3D_swap_frame_lock */ - -/* ------------------------ WGL_I3D_swap_frame_usage ----------------------- */ - -#ifndef WGL_I3D_swap_frame_usage -#define WGL_I3D_swap_frame_usage 1 - -typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); - -#define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D) -#define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D) -#define wglGetFrameUsageI3D WGLEW_GET_FUN(__wglewGetFrameUsageI3D) -#define wglQueryFrameTrackingI3D WGLEW_GET_FUN(__wglewQueryFrameTrackingI3D) - -#define WGLEW_I3D_swap_frame_usage WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_usage) - -#endif /* WGL_I3D_swap_frame_usage */ - -/* --------------------------- WGL_NV_DX_interop --------------------------- */ - -#ifndef WGL_NV_DX_interop -#define WGL_NV_DX_interop 1 - -#define WGL_ACCESS_READ_ONLY_NV 0x0000 -#define WGL_ACCESS_READ_WRITE_NV 0x0001 -#define WGL_ACCESS_WRITE_DISCARD_NV 0x0002 - -typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice); -typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); -typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access); -typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void* dxDevice); -typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access); -typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void* dxObject, HANDLE shareHandle); -typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); -typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject); - -#define wglDXCloseDeviceNV WGLEW_GET_FUN(__wglewDXCloseDeviceNV) -#define wglDXLockObjectsNV WGLEW_GET_FUN(__wglewDXLockObjectsNV) -#define wglDXObjectAccessNV WGLEW_GET_FUN(__wglewDXObjectAccessNV) -#define wglDXOpenDeviceNV WGLEW_GET_FUN(__wglewDXOpenDeviceNV) -#define wglDXRegisterObjectNV WGLEW_GET_FUN(__wglewDXRegisterObjectNV) -#define wglDXSetResourceShareHandleNV WGLEW_GET_FUN(__wglewDXSetResourceShareHandleNV) -#define wglDXUnlockObjectsNV WGLEW_GET_FUN(__wglewDXUnlockObjectsNV) -#define wglDXUnregisterObjectNV WGLEW_GET_FUN(__wglewDXUnregisterObjectNV) - -#define WGLEW_NV_DX_interop WGLEW_GET_VAR(__WGLEW_NV_DX_interop) - -#endif /* WGL_NV_DX_interop */ - -/* --------------------------- WGL_NV_copy_image --------------------------- */ - -#ifndef WGL_NV_copy_image -#define WGL_NV_copy_image 1 - -typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); - -#define wglCopyImageSubDataNV WGLEW_GET_FUN(__wglewCopyImageSubDataNV) - -#define WGLEW_NV_copy_image WGLEW_GET_VAR(__WGLEW_NV_copy_image) - -#endif /* WGL_NV_copy_image */ - -/* -------------------------- WGL_NV_float_buffer -------------------------- */ - -#ifndef WGL_NV_float_buffer -#define WGL_NV_float_buffer 1 - -#define WGL_FLOAT_COMPONENTS_NV 0x20B0 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 -#define WGL_TEXTURE_FLOAT_R_NV 0x20B5 -#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 -#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 -#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 - -#define WGLEW_NV_float_buffer WGLEW_GET_VAR(__WGLEW_NV_float_buffer) - -#endif /* WGL_NV_float_buffer */ - -/* -------------------------- WGL_NV_gpu_affinity -------------------------- */ - -#ifndef WGL_NV_gpu_affinity -#define WGL_NV_gpu_affinity 1 - -#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 -#define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 - -DECLARE_HANDLE(HGPUNV); -typedef struct _GPU_DEVICE { - DWORD cb; - CHAR DeviceName[32]; - CHAR DeviceString[128]; - DWORD Flags; - RECT rcVirtualScreen; -} GPU_DEVICE, *PGPU_DEVICE; - -typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList); -typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc); -typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); -typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); -typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); - -#define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV) -#define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV) -#define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV) -#define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV) -#define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV) - -#define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity) - -#endif /* WGL_NV_gpu_affinity */ - -/* ---------------------- WGL_NV_multisample_coverage ---------------------- */ - -#ifndef WGL_NV_multisample_coverage -#define WGL_NV_multisample_coverage 1 - -#define WGL_COVERAGE_SAMPLES_NV 0x2042 -#define WGL_COLOR_SAMPLES_NV 0x20B9 - -#define WGLEW_NV_multisample_coverage WGLEW_GET_VAR(__WGLEW_NV_multisample_coverage) - -#endif /* WGL_NV_multisample_coverage */ - -/* -------------------------- WGL_NV_present_video ------------------------- */ - -#ifndef WGL_NV_present_video -#define WGL_NV_present_video 1 - -#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 - -DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); - -typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int* piAttribList); -typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDc, HVIDEOOUTPUTDEVICENV* phDeviceList); -typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* piValue); - -#define wglBindVideoDeviceNV WGLEW_GET_FUN(__wglewBindVideoDeviceNV) -#define wglEnumerateVideoDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoDevicesNV) -#define wglQueryCurrentContextNV WGLEW_GET_FUN(__wglewQueryCurrentContextNV) - -#define WGLEW_NV_present_video WGLEW_GET_VAR(__WGLEW_NV_present_video) - -#endif /* WGL_NV_present_video */ - -/* ---------------------- WGL_NV_render_depth_texture ---------------------- */ - -#ifndef WGL_NV_render_depth_texture -#define WGL_NV_render_depth_texture 1 - -#define WGL_NO_TEXTURE_ARB 0x2077 -#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 -#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 -#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 -#define WGL_DEPTH_COMPONENT_NV 0x20A7 - -#define WGLEW_NV_render_depth_texture WGLEW_GET_VAR(__WGLEW_NV_render_depth_texture) - -#endif /* WGL_NV_render_depth_texture */ - -/* -------------------- WGL_NV_render_texture_rectangle -------------------- */ - -#ifndef WGL_NV_render_texture_rectangle -#define WGL_NV_render_texture_rectangle 1 - -#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 -#define WGL_TEXTURE_RECTANGLE_NV 0x20A2 - -#define WGLEW_NV_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_NV_render_texture_rectangle) - -#endif /* WGL_NV_render_texture_rectangle */ - -/* --------------------------- WGL_NV_swap_group --------------------------- */ - -#ifndef WGL_NV_swap_group -#define WGL_NV_swap_group 1 - -typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); -typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count); -typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint *maxBarriers); -typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint *barrier); -typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); - -#define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV) -#define wglJoinSwapGroupNV WGLEW_GET_FUN(__wglewJoinSwapGroupNV) -#define wglQueryFrameCountNV WGLEW_GET_FUN(__wglewQueryFrameCountNV) -#define wglQueryMaxSwapGroupsNV WGLEW_GET_FUN(__wglewQueryMaxSwapGroupsNV) -#define wglQuerySwapGroupNV WGLEW_GET_FUN(__wglewQuerySwapGroupNV) -#define wglResetFrameCountNV WGLEW_GET_FUN(__wglewResetFrameCountNV) - -#define WGLEW_NV_swap_group WGLEW_GET_VAR(__WGLEW_NV_swap_group) - -#endif /* WGL_NV_swap_group */ - -/* ----------------------- WGL_NV_vertex_array_range ----------------------- */ - -#ifndef WGL_NV_vertex_array_range -#define WGL_NV_vertex_array_range 1 - -typedef void * (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); -typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); - -#define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV) -#define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV) - -#define WGLEW_NV_vertex_array_range WGLEW_GET_VAR(__WGLEW_NV_vertex_array_range) - -#endif /* WGL_NV_vertex_array_range */ - -/* -------------------------- WGL_NV_video_capture ------------------------- */ - -#ifndef WGL_NV_video_capture -#define WGL_NV_video_capture 1 - -#define WGL_UNIQUE_ID_NV 0x20CE -#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF - -DECLARE_HANDLE(HVIDEOINPUTDEVICENV); - -typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); -typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV* phDeviceList); -typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); -typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); - -#define wglBindVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewBindVideoCaptureDeviceNV) -#define wglEnumerateVideoCaptureDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoCaptureDevicesNV) -#define wglLockVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewLockVideoCaptureDeviceNV) -#define wglQueryVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewQueryVideoCaptureDeviceNV) -#define wglReleaseVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoCaptureDeviceNV) - -#define WGLEW_NV_video_capture WGLEW_GET_VAR(__WGLEW_NV_video_capture) - -#endif /* WGL_NV_video_capture */ - -/* -------------------------- WGL_NV_video_output -------------------------- */ - -#ifndef WGL_NV_video_output -#define WGL_NV_video_output 1 - -#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0 -#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1 -#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2 -#define WGL_VIDEO_OUT_COLOR_NV 0x20C3 -#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4 -#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5 -#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 -#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 -#define WGL_VIDEO_OUT_FRAME 0x20C8 -#define WGL_VIDEO_OUT_FIELD_1 0x20C9 -#define WGL_VIDEO_OUT_FIELD_2 0x20CA -#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB -#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC - -DECLARE_HANDLE(HPVIDEODEV); - -typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); -typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice); -typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); -typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock); - -#define wglBindVideoImageNV WGLEW_GET_FUN(__wglewBindVideoImageNV) -#define wglGetVideoDeviceNV WGLEW_GET_FUN(__wglewGetVideoDeviceNV) -#define wglGetVideoInfoNV WGLEW_GET_FUN(__wglewGetVideoInfoNV) -#define wglReleaseVideoDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoDeviceNV) -#define wglReleaseVideoImageNV WGLEW_GET_FUN(__wglewReleaseVideoImageNV) -#define wglSendPbufferToVideoNV WGLEW_GET_FUN(__wglewSendPbufferToVideoNV) - -#define WGLEW_NV_video_output WGLEW_GET_VAR(__WGLEW_NV_video_output) - -#endif /* WGL_NV_video_output */ - -/* -------------------------- WGL_OML_sync_control ------------------------- */ - -#ifndef WGL_OML_sync_control -#define WGL_OML_sync_control 1 - -typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32 *denominator); -typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64 *msc, INT64 *sbc); -typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64 *msc, INT64 *sbc); -typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64 *msc, INT64 *sbc); - -#define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML) -#define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML) -#define wglSwapBuffersMscOML WGLEW_GET_FUN(__wglewSwapBuffersMscOML) -#define wglSwapLayerBuffersMscOML WGLEW_GET_FUN(__wglewSwapLayerBuffersMscOML) -#define wglWaitForMscOML WGLEW_GET_FUN(__wglewWaitForMscOML) -#define wglWaitForSbcOML WGLEW_GET_FUN(__wglewWaitForSbcOML) - -#define WGLEW_OML_sync_control WGLEW_GET_VAR(__WGLEW_OML_sync_control) - -#endif /* WGL_OML_sync_control */ - -/* ------------------------------------------------------------------------- */ - -#ifdef GLEW_MX -#define WGLEW_EXPORT -#else -#define WGLEW_EXPORT GLEWAPI -#endif /* GLEW_MX */ - -#ifdef GLEW_MX -struct WGLEWContextStruct -{ -#endif /* GLEW_MX */ - -WGLEW_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL; - -WGLEW_EXPORT PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD; -WGLEW_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD; -WGLEW_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD; -WGLEW_EXPORT PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD; -WGLEW_EXPORT PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD; -WGLEW_EXPORT PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD; -WGLEW_EXPORT PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD; -WGLEW_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD; -WGLEW_EXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD; - -WGLEW_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB; -WGLEW_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB; -WGLEW_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB; -WGLEW_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB; - -WGLEW_EXPORT PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB; - -WGLEW_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB; - -WGLEW_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB; -WGLEW_EXPORT PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB; - -WGLEW_EXPORT PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB; -WGLEW_EXPORT PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB; -WGLEW_EXPORT PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB; -WGLEW_EXPORT PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB; -WGLEW_EXPORT PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB; - -WGLEW_EXPORT PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB; -WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB; -WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB; - -WGLEW_EXPORT PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB; -WGLEW_EXPORT PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB; -WGLEW_EXPORT PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB; - -WGLEW_EXPORT PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT; -WGLEW_EXPORT PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT; -WGLEW_EXPORT PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT; -WGLEW_EXPORT PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT; - -WGLEW_EXPORT PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT; - -WGLEW_EXPORT PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT; -WGLEW_EXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT; - -WGLEW_EXPORT PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT; -WGLEW_EXPORT PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT; -WGLEW_EXPORT PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT; -WGLEW_EXPORT PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT; -WGLEW_EXPORT PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT; - -WGLEW_EXPORT PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT; -WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT; -WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT; - -WGLEW_EXPORT PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT; -WGLEW_EXPORT PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT; - -WGLEW_EXPORT PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D; -WGLEW_EXPORT PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D; - -WGLEW_EXPORT PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D; -WGLEW_EXPORT PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D; -WGLEW_EXPORT PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D; -WGLEW_EXPORT PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D; - -WGLEW_EXPORT PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D; -WGLEW_EXPORT PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D; -WGLEW_EXPORT PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D; -WGLEW_EXPORT PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D; -WGLEW_EXPORT PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D; -WGLEW_EXPORT PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D; -WGLEW_EXPORT PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D; -WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D; -WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D; -WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D; -WGLEW_EXPORT PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D; -WGLEW_EXPORT PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D; - -WGLEW_EXPORT PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D; -WGLEW_EXPORT PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D; -WGLEW_EXPORT PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D; -WGLEW_EXPORT PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D; - -WGLEW_EXPORT PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D; -WGLEW_EXPORT PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D; -WGLEW_EXPORT PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D; -WGLEW_EXPORT PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D; - -WGLEW_EXPORT PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D; -WGLEW_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D; -WGLEW_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D; -WGLEW_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D; - -WGLEW_EXPORT PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV; -WGLEW_EXPORT PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV; -WGLEW_EXPORT PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV; -WGLEW_EXPORT PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV; -WGLEW_EXPORT PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV; -WGLEW_EXPORT PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV; -WGLEW_EXPORT PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV; -WGLEW_EXPORT PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV; - -WGLEW_EXPORT PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV; - -WGLEW_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV; -WGLEW_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV; -WGLEW_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV; -WGLEW_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV; -WGLEW_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV; - -WGLEW_EXPORT PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV; -WGLEW_EXPORT PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV; -WGLEW_EXPORT PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV; - -WGLEW_EXPORT PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV; -WGLEW_EXPORT PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV; -WGLEW_EXPORT PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV; -WGLEW_EXPORT PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV; -WGLEW_EXPORT PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV; -WGLEW_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV; - -WGLEW_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV; -WGLEW_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV; - -WGLEW_EXPORT PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV; -WGLEW_EXPORT PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV; -WGLEW_EXPORT PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV; -WGLEW_EXPORT PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV; -WGLEW_EXPORT PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV; - -WGLEW_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV; -WGLEW_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV; -WGLEW_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV; -WGLEW_EXPORT PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV; -WGLEW_EXPORT PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV; -WGLEW_EXPORT PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV; - -WGLEW_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML; -WGLEW_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML; -WGLEW_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML; -WGLEW_EXPORT PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML; -WGLEW_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML; -WGLEW_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML; -WGLEW_EXPORT GLboolean __WGLEW_3DFX_multisample; -WGLEW_EXPORT GLboolean __WGLEW_3DL_stereo_control; -WGLEW_EXPORT GLboolean __WGLEW_AMD_gpu_association; -WGLEW_EXPORT GLboolean __WGLEW_ARB_buffer_region; -WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context; -WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context_profile; -WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context_robustness; -WGLEW_EXPORT GLboolean __WGLEW_ARB_extensions_string; -WGLEW_EXPORT GLboolean __WGLEW_ARB_framebuffer_sRGB; -WGLEW_EXPORT GLboolean __WGLEW_ARB_make_current_read; -WGLEW_EXPORT GLboolean __WGLEW_ARB_multisample; -WGLEW_EXPORT GLboolean __WGLEW_ARB_pbuffer; -WGLEW_EXPORT GLboolean __WGLEW_ARB_pixel_format; -WGLEW_EXPORT GLboolean __WGLEW_ARB_pixel_format_float; -WGLEW_EXPORT GLboolean __WGLEW_ARB_render_texture; -WGLEW_EXPORT GLboolean __WGLEW_ATI_pixel_format_float; -WGLEW_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle; -WGLEW_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile; -WGLEW_EXPORT GLboolean __WGLEW_EXT_depth_float; -WGLEW_EXPORT GLboolean __WGLEW_EXT_display_color_table; -WGLEW_EXPORT GLboolean __WGLEW_EXT_extensions_string; -WGLEW_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB; -WGLEW_EXPORT GLboolean __WGLEW_EXT_make_current_read; -WGLEW_EXPORT GLboolean __WGLEW_EXT_multisample; -WGLEW_EXPORT GLboolean __WGLEW_EXT_pbuffer; -WGLEW_EXPORT GLboolean __WGLEW_EXT_pixel_format; -WGLEW_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float; -WGLEW_EXPORT GLboolean __WGLEW_EXT_swap_control; -WGLEW_EXPORT GLboolean __WGLEW_I3D_digital_video_control; -WGLEW_EXPORT GLboolean __WGLEW_I3D_gamma; -WGLEW_EXPORT GLboolean __WGLEW_I3D_genlock; -WGLEW_EXPORT GLboolean __WGLEW_I3D_image_buffer; -WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock; -WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage; -WGLEW_EXPORT GLboolean __WGLEW_NV_DX_interop; -WGLEW_EXPORT GLboolean __WGLEW_NV_copy_image; -WGLEW_EXPORT GLboolean __WGLEW_NV_float_buffer; -WGLEW_EXPORT GLboolean __WGLEW_NV_gpu_affinity; -WGLEW_EXPORT GLboolean __WGLEW_NV_multisample_coverage; -WGLEW_EXPORT GLboolean __WGLEW_NV_present_video; -WGLEW_EXPORT GLboolean __WGLEW_NV_render_depth_texture; -WGLEW_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle; -WGLEW_EXPORT GLboolean __WGLEW_NV_swap_group; -WGLEW_EXPORT GLboolean __WGLEW_NV_vertex_array_range; -WGLEW_EXPORT GLboolean __WGLEW_NV_video_capture; -WGLEW_EXPORT GLboolean __WGLEW_NV_video_output; -WGLEW_EXPORT GLboolean __WGLEW_OML_sync_control; - -#ifdef GLEW_MX -}; /* WGLEWContextStruct */ -#endif /* GLEW_MX */ - -/* ------------------------------------------------------------------------- */ - -#ifdef GLEW_MX - -typedef struct WGLEWContextStruct WGLEWContext; -GLEWAPI GLenum wglewContextInit (WGLEWContext* ctx); -GLEWAPI GLboolean wglewContextIsSupported (const WGLEWContext* ctx, const char* name); - -#define wglewInit() wglewContextInit(wglewGetContext()) -#define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x) - -#define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x)) -#define WGLEW_GET_FUN(x) wglewGetContext()->x - -#else /* GLEW_MX */ - -#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) -#define WGLEW_GET_FUN(x) x - -GLEWAPI GLboolean wglewIsSupported (const char* name); - -#endif /* GLEW_MX */ - -GLEWAPI GLboolean wglewGetExtension (const char* name); - -#ifdef __cplusplus -} -#endif - -#undef GLEWAPI - -#endif /* __wglew_h__ */ diff --git a/lib/osx/include/SDL.h b/lib/osx/include/SDL.h deleted file mode 100644 index 1a3fa28..0000000 --- a/lib/osx/include/SDL.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL.h - * - * Main include header for the SDL library - */ - - -#ifndef _SDL_H -#define _SDL_H - -#include "SDL_main.h" -#include "SDL_stdinc.h" -#include "SDL_assert.h" -#include "SDL_atomic.h" -#include "SDL_audio.h" -#include "SDL_clipboard.h" -#include "SDL_cpuinfo.h" -#include "SDL_endian.h" -#include "SDL_error.h" -#include "SDL_events.h" -#include "SDL_filesystem.h" -#include "SDL_joystick.h" -#include "SDL_gamecontroller.h" -#include "SDL_haptic.h" -#include "SDL_hints.h" -#include "SDL_loadso.h" -#include "SDL_log.h" -#include "SDL_messagebox.h" -#include "SDL_mutex.h" -#include "SDL_power.h" -#include "SDL_render.h" -#include "SDL_rwops.h" -#include "SDL_system.h" -#include "SDL_thread.h" -#include "SDL_timer.h" -#include "SDL_version.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* As of version 0.5, SDL is loaded dynamically into the application */ - -/** - * \name SDL_INIT_* - * - * These are the flags which may be passed to SDL_Init(). You should - * specify the subsystems which you will be using in your application. - */ -/* @{ */ -#define SDL_INIT_TIMER 0x00000001u -#define SDL_INIT_AUDIO 0x00000010u -#define SDL_INIT_VIDEO 0x00000020u /**< SDL_INIT_VIDEO implies SDL_INIT_EVENTS */ -#define SDL_INIT_JOYSTICK 0x00000200u /**< SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS */ -#define SDL_INIT_HAPTIC 0x00001000u -#define SDL_INIT_GAMECONTROLLER 0x00002000u /**< SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK */ -#define SDL_INIT_EVENTS 0x00004000u -#define SDL_INIT_NOPARACHUTE 0x00100000u /**< compatibility; this flag is ignored. */ -#define SDL_INIT_EVERYTHING ( \ - SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | \ - SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER \ - ) -/* @} */ - -/** - * This function initializes the subsystems specified by \c flags - */ -extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags); - -/** - * This function initializes specific SDL subsystems - * - * Subsystem initialization is ref-counted, you must call - * SDL_QuitSubSystem() for each SDL_InitSubSystem() to correctly - * shutdown a subsystem manually (or call SDL_Quit() to force shutdown). - * If a subsystem is already loaded then this call will - * increase the ref-count and return. - */ -extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags); - -/** - * This function cleans up specific SDL subsystems - */ -extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags); - -/** - * This function returns a mask of the specified subsystems which have - * previously been initialized. - * - * If \c flags is 0, it returns a mask of all initialized subsystems. - */ -extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags); - -/** - * This function cleans up all initialized subsystems. You should - * call it upon all exit conditions. - */ -extern DECLSPEC void SDLCALL SDL_Quit(void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_H */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_assert.h b/lib/osx/include/SDL_assert.h deleted file mode 100644 index 402981f..0000000 --- a/lib/osx/include/SDL_assert.h +++ /dev/null @@ -1,289 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_assert_h -#define _SDL_assert_h - -#include "SDL_config.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef SDL_ASSERT_LEVEL -#ifdef SDL_DEFAULT_ASSERT_LEVEL -#define SDL_ASSERT_LEVEL SDL_DEFAULT_ASSERT_LEVEL -#elif defined(_DEBUG) || defined(DEBUG) || \ - (defined(__GNUC__) && !defined(__OPTIMIZE__)) -#define SDL_ASSERT_LEVEL 2 -#else -#define SDL_ASSERT_LEVEL 1 -#endif -#endif /* SDL_ASSERT_LEVEL */ - -/* -These are macros and not first class functions so that the debugger breaks -on the assertion line and not in some random guts of SDL, and so each -assert can have unique static variables associated with it. -*/ - -#if defined(_MSC_VER) -/* Don't include intrin.h here because it contains C++ code */ - extern void __cdecl __debugbreak(void); - #define SDL_TriggerBreakpoint() __debugbreak() -#elif (!defined(__NACL__) && defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))) - #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" ) -#elif defined(HAVE_SIGNAL_H) - #include <signal.h> - #define SDL_TriggerBreakpoint() raise(SIGTRAP) -#else - /* How do we trigger breakpoints on this platform? */ - #define SDL_TriggerBreakpoint() -#endif - -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */ -# define SDL_FUNCTION __func__ -#elif ((__GNUC__ >= 2) || defined(_MSC_VER)) -# define SDL_FUNCTION __FUNCTION__ -#else -# define SDL_FUNCTION "???" -#endif -#define SDL_FILE __FILE__ -#define SDL_LINE __LINE__ - -/* -sizeof (x) makes the compiler still parse the expression even without -assertions enabled, so the code is always checked at compile time, but -doesn't actually generate code for it, so there are no side effects or -expensive checks at run time, just the constant size of what x WOULD be, -which presumably gets optimized out as unused. -This also solves the problem of... - - int somevalue = blah(); - SDL_assert(somevalue == 1); - -...which would cause compiles to complain that somevalue is unused if we -disable assertions. -*/ - -/* "while (0,0)" fools Microsoft's compiler's /W4 warning level into thinking - this condition isn't constant. And looks like an owl's face! */ -#ifdef _MSC_VER /* stupid /W4 warnings. */ -#define SDL_NULL_WHILE_LOOP_CONDITION (0,0) -#else -#define SDL_NULL_WHILE_LOOP_CONDITION (0) -#endif - -#define SDL_disabled_assert(condition) \ - do { (void) sizeof ((condition)); } while (SDL_NULL_WHILE_LOOP_CONDITION) - -typedef enum -{ - SDL_ASSERTION_RETRY, /**< Retry the assert immediately. */ - SDL_ASSERTION_BREAK, /**< Make the debugger trigger a breakpoint. */ - SDL_ASSERTION_ABORT, /**< Terminate the program. */ - SDL_ASSERTION_IGNORE, /**< Ignore the assert. */ - SDL_ASSERTION_ALWAYS_IGNORE /**< Ignore the assert from now on. */ -} SDL_AssertState; - -typedef struct SDL_AssertData -{ - int always_ignore; - unsigned int trigger_count; - const char *condition; - const char *filename; - int linenum; - const char *function; - const struct SDL_AssertData *next; -} SDL_AssertData; - -#if (SDL_ASSERT_LEVEL > 0) - -/* Never call this directly. Use the SDL_assert* macros. */ -extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *, - const char *, - const char *, int) -#if defined(__clang__) -#if __has_feature(attribute_analyzer_noreturn) -/* this tells Clang's static analysis that we're a custom assert function, - and that the analyzer should assume the condition was always true past this - SDL_assert test. */ - __attribute__((analyzer_noreturn)) -#endif -#endif -; - -/* the do {} while(0) avoids dangling else problems: - if (x) SDL_assert(y); else blah(); - ... without the do/while, the "else" could attach to this macro's "if". - We try to handle just the minimum we need here in a macro...the loop, - the static vars, and break points. The heavy lifting is handled in - SDL_ReportAssertion(), in SDL_assert.c. -*/ -#define SDL_enabled_assert(condition) \ - do { \ - while ( !(condition) ) { \ - static struct SDL_AssertData sdl_assert_data = { \ - 0, 0, #condition, 0, 0, 0, 0 \ - }; \ - const SDL_AssertState sdl_assert_state = SDL_ReportAssertion(&sdl_assert_data, SDL_FUNCTION, SDL_FILE, SDL_LINE); \ - if (sdl_assert_state == SDL_ASSERTION_RETRY) { \ - continue; /* go again. */ \ - } else if (sdl_assert_state == SDL_ASSERTION_BREAK) { \ - SDL_TriggerBreakpoint(); \ - } \ - break; /* not retrying. */ \ - } \ - } while (SDL_NULL_WHILE_LOOP_CONDITION) - -#endif /* enabled assertions support code */ - -/* Enable various levels of assertions. */ -#if SDL_ASSERT_LEVEL == 0 /* assertions disabled */ -# define SDL_assert(condition) SDL_disabled_assert(condition) -# define SDL_assert_release(condition) SDL_disabled_assert(condition) -# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) -#elif SDL_ASSERT_LEVEL == 1 /* release settings. */ -# define SDL_assert(condition) SDL_disabled_assert(condition) -# define SDL_assert_release(condition) SDL_enabled_assert(condition) -# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) -#elif SDL_ASSERT_LEVEL == 2 /* normal settings. */ -# define SDL_assert(condition) SDL_enabled_assert(condition) -# define SDL_assert_release(condition) SDL_enabled_assert(condition) -# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) -#elif SDL_ASSERT_LEVEL == 3 /* paranoid settings. */ -# define SDL_assert(condition) SDL_enabled_assert(condition) -# define SDL_assert_release(condition) SDL_enabled_assert(condition) -# define SDL_assert_paranoid(condition) SDL_enabled_assert(condition) -#else -# error Unknown assertion level. -#endif - -/* this assertion is never disabled at any level. */ -#define SDL_assert_always(condition) SDL_enabled_assert(condition) - - -typedef SDL_AssertState (SDLCALL *SDL_AssertionHandler)( - const SDL_AssertData* data, void* userdata); - -/** - * \brief Set an application-defined assertion handler. - * - * This allows an app to show its own assertion UI and/or force the - * response to an assertion failure. If the app doesn't provide this, SDL - * will try to do the right thing, popping up a system-specific GUI dialog, - * and probably minimizing any fullscreen windows. - * - * This callback may fire from any thread, but it runs wrapped in a mutex, so - * it will only fire from one thread at a time. - * - * Setting the callback to NULL restores SDL's original internal handler. - * - * This callback is NOT reset to SDL's internal handler upon SDL_Quit()! - * - * \return SDL_AssertState value of how to handle the assertion failure. - * - * \param handler Callback function, called when an assertion fails. - * \param userdata A pointer passed to the callback as-is. - */ -extern DECLSPEC void SDLCALL SDL_SetAssertionHandler( - SDL_AssertionHandler handler, - void *userdata); - -/** - * \brief Get the default assertion handler. - * - * This returns the function pointer that is called by default when an - * assertion is triggered. This is an internal function provided by SDL, - * that is used for assertions when SDL_SetAssertionHandler() hasn't been - * used to provide a different function. - * - * \return The default SDL_AssertionHandler that is called when an assert triggers. - */ -extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetDefaultAssertionHandler(void); - -/** - * \brief Get the current assertion handler. - * - * This returns the function pointer that is called when an assertion is - * triggered. This is either the value last passed to - * SDL_SetAssertionHandler(), or if no application-specified function is - * set, is equivalent to calling SDL_GetDefaultAssertionHandler(). - * - * \param puserdata Pointer to a void*, which will store the "userdata" - * pointer that was passed to SDL_SetAssertionHandler(). - * This value will always be NULL for the default handler. - * If you don't care about this data, it is safe to pass - * a NULL pointer to this function to ignore it. - * \return The SDL_AssertionHandler that is called when an assert triggers. - */ -extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetAssertionHandler(void **puserdata); - -/** - * \brief Get a list of all assertion failures. - * - * Get all assertions triggered since last call to SDL_ResetAssertionReport(), - * or the start of the program. - * - * The proper way to examine this data looks something like this: - * - * <code> - * const SDL_AssertData *item = SDL_GetAssertionReport(); - * while (item) { - * printf("'%s', %s (%s:%d), triggered %u times, always ignore: %s.\n", - * item->condition, item->function, item->filename, - * item->linenum, item->trigger_count, - * item->always_ignore ? "yes" : "no"); - * item = item->next; - * } - * </code> - * - * \return List of all assertions. - * \sa SDL_ResetAssertionReport - */ -extern DECLSPEC const SDL_AssertData * SDLCALL SDL_GetAssertionReport(void); - -/** - * \brief Reset the list of all assertion failures. - * - * Reset list of all assertions triggered. - * - * \sa SDL_GetAssertionReport - */ -extern DECLSPEC void SDLCALL SDL_ResetAssertionReport(void); - - -/* these had wrong naming conventions until 2.0.4. Please update your app! */ -#define SDL_assert_state SDL_AssertState -#define SDL_assert_data SDL_AssertData - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_assert_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_atomic.h b/lib/osx/include/SDL_atomic.h deleted file mode 100644 index 56aa81d..0000000 --- a/lib/osx/include/SDL_atomic.h +++ /dev/null @@ -1,268 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_atomic.h - * - * Atomic operations. - * - * IMPORTANT: - * If you are not an expert in concurrent lockless programming, you should - * only be using the atomic lock and reference counting functions in this - * file. In all other cases you should be protecting your data structures - * with full mutexes. - * - * The list of "safe" functions to use are: - * SDL_AtomicLock() - * SDL_AtomicUnlock() - * SDL_AtomicIncRef() - * SDL_AtomicDecRef() - * - * Seriously, here be dragons! - * ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - * - * You can find out a little more about lockless programming and the - * subtle issues that can arise here: - * http://msdn.microsoft.com/en-us/library/ee418650%28v=vs.85%29.aspx - * - * There's also lots of good information here: - * http://www.1024cores.net/home/lock-free-algorithms - * http://preshing.com/ - * - * These operations may or may not actually be implemented using - * processor specific atomic operations. When possible they are - * implemented as true processor specific atomic operations. When that - * is not possible the are implemented using locks that *do* use the - * available atomic operations. - * - * All of the atomic operations that modify memory are full memory barriers. - */ - -#ifndef _SDL_atomic_h_ -#define _SDL_atomic_h_ - -#include "SDL_stdinc.h" -#include "SDL_platform.h" - -#include "begin_code.h" - -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \name SDL AtomicLock - * - * The atomic locks are efficient spinlocks using CPU instructions, - * but are vulnerable to starvation and can spin forever if a thread - * holding a lock has been terminated. For this reason you should - * minimize the code executed inside an atomic lock and never do - * expensive things like API or system calls while holding them. - * - * The atomic locks are not safe to lock recursively. - * - * Porting Note: - * The spin lock functions and type are required and can not be - * emulated because they are used in the atomic emulation code. - */ -/* @{ */ - -typedef int SDL_SpinLock; - -/** - * \brief Try to lock a spin lock by setting it to a non-zero value. - * - * \param lock Points to the lock. - * - * \return SDL_TRUE if the lock succeeded, SDL_FALSE if the lock is already held. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_AtomicTryLock(SDL_SpinLock *lock); - -/** - * \brief Lock a spin lock by setting it to a non-zero value. - * - * \param lock Points to the lock. - */ -extern DECLSPEC void SDLCALL SDL_AtomicLock(SDL_SpinLock *lock); - -/** - * \brief Unlock a spin lock by setting it to 0. Always returns immediately - * - * \param lock Points to the lock. - */ -extern DECLSPEC void SDLCALL SDL_AtomicUnlock(SDL_SpinLock *lock); - -/* @} *//* SDL AtomicLock */ - - -/** - * The compiler barrier prevents the compiler from reordering - * reads and writes to globally visible variables across the call. - */ -#if defined(_MSC_VER) && (_MSC_VER > 1200) -void _ReadWriteBarrier(void); -#pragma intrinsic(_ReadWriteBarrier) -#define SDL_CompilerBarrier() _ReadWriteBarrier() -#elif (defined(__GNUC__) && !defined(__EMSCRIPTEN__)) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5120)) -/* This is correct for all CPUs when using GCC or Solaris Studio 12.1+. */ -#define SDL_CompilerBarrier() __asm__ __volatile__ ("" : : : "memory") -#else -#define SDL_CompilerBarrier() \ -{ SDL_SpinLock _tmp = 0; SDL_AtomicLock(&_tmp); SDL_AtomicUnlock(&_tmp); } -#endif - -/** - * Memory barriers are designed to prevent reads and writes from being - * reordered by the compiler and being seen out of order on multi-core CPUs. - * - * A typical pattern would be for thread A to write some data and a flag, - * and for thread B to read the flag and get the data. In this case you - * would insert a release barrier between writing the data and the flag, - * guaranteeing that the data write completes no later than the flag is - * written, and you would insert an acquire barrier between reading the - * flag and reading the data, to ensure that all the reads associated - * with the flag have completed. - * - * In this pattern you should always see a release barrier paired with - * an acquire barrier and you should gate the data reads/writes with a - * single flag variable. - * - * For more information on these semantics, take a look at the blog post: - * http://preshing.com/20120913/acquire-and-release-semantics - */ -#if defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("lwsync" : : : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("lwsync" : : : "memory") -#elif defined(__GNUC__) && defined(__arm__) -#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ish" : : : "memory") -#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) -#ifdef __thumb__ -/* The mcr instruction isn't available in thumb mode, use real functions */ -extern DECLSPEC void SDLCALL SDL_MemoryBarrierRelease(); -extern DECLSPEC void SDLCALL SDL_MemoryBarrierAcquire(); -#else -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") -#endif /* __thumb__ */ -#else -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("" : : : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("" : : : "memory") -#endif /* __GNUC__ && __arm__ */ -#else -#if (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5120)) -/* This is correct for all CPUs on Solaris when using Solaris Studio 12.1+. */ -#include <mbarrier.h> -#define SDL_MemoryBarrierRelease() __machine_rel_barrier() -#define SDL_MemoryBarrierAcquire() __machine_acq_barrier() -#else -/* This is correct for the x86 and x64 CPUs, and we'll expand this over time. */ -#define SDL_MemoryBarrierRelease() SDL_CompilerBarrier() -#define SDL_MemoryBarrierAcquire() SDL_CompilerBarrier() -#endif -#endif - -/** - * \brief A type representing an atomic integer value. It is a struct - * so people don't accidentally use numeric operations on it. - */ -typedef struct { int value; } SDL_atomic_t; - -/** - * \brief Set an atomic variable to a new value if it is currently an old value. - * - * \return SDL_TRUE if the atomic variable was set, SDL_FALSE otherwise. - * - * \note If you don't know what this function is for, you shouldn't use it! -*/ -extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCAS(SDL_atomic_t *a, int oldval, int newval); - -/** - * \brief Set an atomic variable to a value. - * - * \return The previous value of the atomic variable. - */ -extern DECLSPEC int SDLCALL SDL_AtomicSet(SDL_atomic_t *a, int v); - -/** - * \brief Get the value of an atomic variable - */ -extern DECLSPEC int SDLCALL SDL_AtomicGet(SDL_atomic_t *a); - -/** - * \brief Add to an atomic variable. - * - * \return The previous value of the atomic variable. - * - * \note This same style can be used for any number operation - */ -extern DECLSPEC int SDLCALL SDL_AtomicAdd(SDL_atomic_t *a, int v); - -/** - * \brief Increment an atomic variable used as a reference count. - */ -#ifndef SDL_AtomicIncRef -#define SDL_AtomicIncRef(a) SDL_AtomicAdd(a, 1) -#endif - -/** - * \brief Decrement an atomic variable used as a reference count. - * - * \return SDL_TRUE if the variable reached zero after decrementing, - * SDL_FALSE otherwise - */ -#ifndef SDL_AtomicDecRef -#define SDL_AtomicDecRef(a) (SDL_AtomicAdd(a, -1) == 1) -#endif - -/** - * \brief Set a pointer to a new value if it is currently an old value. - * - * \return SDL_TRUE if the pointer was set, SDL_FALSE otherwise. - * - * \note If you don't know what this function is for, you shouldn't use it! -*/ -extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCASPtr(void **a, void *oldval, void *newval); - -/** - * \brief Set a pointer to a value atomically. - * - * \return The previous value of the pointer. - */ -extern DECLSPEC void* SDLCALL SDL_AtomicSetPtr(void **a, void* v); - -/** - * \brief Get the value of a pointer atomically. - */ -extern DECLSPEC void* SDLCALL SDL_AtomicGetPtr(void **a); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif - -#include "close_code.h" - -#endif /* _SDL_atomic_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_audio.h b/lib/osx/include/SDL_audio.h deleted file mode 100644 index d51f0d1..0000000 --- a/lib/osx/include/SDL_audio.h +++ /dev/null @@ -1,672 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_audio.h - * - * Access to the raw audio mixing buffer for the SDL library. - */ - -#ifndef _SDL_audio_h -#define _SDL_audio_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_endian.h" -#include "SDL_mutex.h" -#include "SDL_thread.h" -#include "SDL_rwops.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief Audio format flags. - * - * These are what the 16 bits in SDL_AudioFormat currently mean... - * (Unspecified bits are always zero). - * - * \verbatim - ++-----------------------sample is signed if set - || - || ++-----------sample is bigendian if set - || || - || || ++---sample is float if set - || || || - || || || +---sample bit size---+ - || || || | | - 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 - \endverbatim - * - * There are macros in SDL 2.0 and later to query these bits. - */ -typedef Uint16 SDL_AudioFormat; - -/** - * \name Audio flags - */ -/* @{ */ - -#define SDL_AUDIO_MASK_BITSIZE (0xFF) -#define SDL_AUDIO_MASK_DATATYPE (1<<8) -#define SDL_AUDIO_MASK_ENDIAN (1<<12) -#define SDL_AUDIO_MASK_SIGNED (1<<15) -#define SDL_AUDIO_BITSIZE(x) (x & SDL_AUDIO_MASK_BITSIZE) -#define SDL_AUDIO_ISFLOAT(x) (x & SDL_AUDIO_MASK_DATATYPE) -#define SDL_AUDIO_ISBIGENDIAN(x) (x & SDL_AUDIO_MASK_ENDIAN) -#define SDL_AUDIO_ISSIGNED(x) (x & SDL_AUDIO_MASK_SIGNED) -#define SDL_AUDIO_ISINT(x) (!SDL_AUDIO_ISFLOAT(x)) -#define SDL_AUDIO_ISLITTLEENDIAN(x) (!SDL_AUDIO_ISBIGENDIAN(x)) -#define SDL_AUDIO_ISUNSIGNED(x) (!SDL_AUDIO_ISSIGNED(x)) - -/** - * \name Audio format flags - * - * Defaults to LSB byte order. - */ -/* @{ */ -#define AUDIO_U8 0x0008 /**< Unsigned 8-bit samples */ -#define AUDIO_S8 0x8008 /**< Signed 8-bit samples */ -#define AUDIO_U16LSB 0x0010 /**< Unsigned 16-bit samples */ -#define AUDIO_S16LSB 0x8010 /**< Signed 16-bit samples */ -#define AUDIO_U16MSB 0x1010 /**< As above, but big-endian byte order */ -#define AUDIO_S16MSB 0x9010 /**< As above, but big-endian byte order */ -#define AUDIO_U16 AUDIO_U16LSB -#define AUDIO_S16 AUDIO_S16LSB -/* @} */ - -/** - * \name int32 support - */ -/* @{ */ -#define AUDIO_S32LSB 0x8020 /**< 32-bit integer samples */ -#define AUDIO_S32MSB 0x9020 /**< As above, but big-endian byte order */ -#define AUDIO_S32 AUDIO_S32LSB -/* @} */ - -/** - * \name float32 support - */ -/* @{ */ -#define AUDIO_F32LSB 0x8120 /**< 32-bit floating point samples */ -#define AUDIO_F32MSB 0x9120 /**< As above, but big-endian byte order */ -#define AUDIO_F32 AUDIO_F32LSB -/* @} */ - -/** - * \name Native audio byte ordering - */ -/* @{ */ -#if SDL_BYTEORDER == SDL_LIL_ENDIAN -#define AUDIO_U16SYS AUDIO_U16LSB -#define AUDIO_S16SYS AUDIO_S16LSB -#define AUDIO_S32SYS AUDIO_S32LSB -#define AUDIO_F32SYS AUDIO_F32LSB -#else -#define AUDIO_U16SYS AUDIO_U16MSB -#define AUDIO_S16SYS AUDIO_S16MSB -#define AUDIO_S32SYS AUDIO_S32MSB -#define AUDIO_F32SYS AUDIO_F32MSB -#endif -/* @} */ - -/** - * \name Allow change flags - * - * Which audio format changes are allowed when opening a device. - */ -/* @{ */ -#define SDL_AUDIO_ALLOW_FREQUENCY_CHANGE 0x00000001 -#define SDL_AUDIO_ALLOW_FORMAT_CHANGE 0x00000002 -#define SDL_AUDIO_ALLOW_CHANNELS_CHANGE 0x00000004 -#define SDL_AUDIO_ALLOW_ANY_CHANGE (SDL_AUDIO_ALLOW_FREQUENCY_CHANGE|SDL_AUDIO_ALLOW_FORMAT_CHANGE|SDL_AUDIO_ALLOW_CHANNELS_CHANGE) -/* @} */ - -/* @} *//* Audio flags */ - -/** - * This function is called when the audio device needs more data. - * - * \param userdata An application-specific parameter saved in - * the SDL_AudioSpec structure - * \param stream A pointer to the audio data buffer. - * \param len The length of that buffer in bytes. - * - * Once the callback returns, the buffer will no longer be valid. - * Stereo samples are stored in a LRLRLR ordering. - * - * You can choose to avoid callbacks and use SDL_QueueAudio() instead, if - * you like. Just open your audio device with a NULL callback. - */ -typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream, - int len); - -/** - * The calculated values in this structure are calculated by SDL_OpenAudio(). - */ -typedef struct SDL_AudioSpec -{ - int freq; /**< DSP frequency -- samples per second */ - SDL_AudioFormat format; /**< Audio data format */ - Uint8 channels; /**< Number of channels: 1 mono, 2 stereo */ - Uint8 silence; /**< Audio buffer silence value (calculated) */ - Uint16 samples; /**< Audio buffer size in samples (power of 2) */ - Uint16 padding; /**< Necessary for some compile environments */ - Uint32 size; /**< Audio buffer size in bytes (calculated) */ - SDL_AudioCallback callback; /**< Callback that feeds the audio device (NULL to use SDL_QueueAudio()). */ - void *userdata; /**< Userdata passed to callback (ignored for NULL callbacks). */ -} SDL_AudioSpec; - - -struct SDL_AudioCVT; -typedef void (SDLCALL * SDL_AudioFilter) (struct SDL_AudioCVT * cvt, - SDL_AudioFormat format); - -/** - * A structure to hold a set of audio conversion filters and buffers. - */ -#ifdef __GNUC__ -/* This structure is 84 bytes on 32-bit architectures, make sure GCC doesn't - pad it out to 88 bytes to guarantee ABI compatibility between compilers. - vvv - The next time we rev the ABI, make sure to size the ints and add padding. -*/ -#define SDL_AUDIOCVT_PACKED __attribute__((packed)) -#else -#define SDL_AUDIOCVT_PACKED -#endif -/* */ -typedef struct SDL_AudioCVT -{ - int needed; /**< Set to 1 if conversion possible */ - SDL_AudioFormat src_format; /**< Source audio format */ - SDL_AudioFormat dst_format; /**< Target audio format */ - double rate_incr; /**< Rate conversion increment */ - Uint8 *buf; /**< Buffer to hold entire audio data */ - int len; /**< Length of original audio buffer */ - int len_cvt; /**< Length of converted audio buffer */ - int len_mult; /**< buffer must be len*len_mult big */ - double len_ratio; /**< Given len, final size is len*len_ratio */ - SDL_AudioFilter filters[10]; /**< Filter list */ - int filter_index; /**< Current audio conversion function */ -} SDL_AUDIOCVT_PACKED SDL_AudioCVT; - - -/* Function prototypes */ - -/** - * \name Driver discovery functions - * - * These functions return the list of built in audio drivers, in the - * order that they are normally initialized by default. - */ -/* @{ */ -extern DECLSPEC int SDLCALL SDL_GetNumAudioDrivers(void); -extern DECLSPEC const char *SDLCALL SDL_GetAudioDriver(int index); -/* @} */ - -/** - * \name Initialization and cleanup - * - * \internal These functions are used internally, and should not be used unless - * you have a specific need to specify the audio driver you want to - * use. You should normally use SDL_Init() or SDL_InitSubSystem(). - */ -/* @{ */ -extern DECLSPEC int SDLCALL SDL_AudioInit(const char *driver_name); -extern DECLSPEC void SDLCALL SDL_AudioQuit(void); -/* @} */ - -/** - * This function returns the name of the current audio driver, or NULL - * if no driver has been initialized. - */ -extern DECLSPEC const char *SDLCALL SDL_GetCurrentAudioDriver(void); - -/** - * This function opens the audio device with the desired parameters, and - * returns 0 if successful, placing the actual hardware parameters in the - * structure pointed to by \c obtained. If \c obtained is NULL, the audio - * data passed to the callback function will be guaranteed to be in the - * requested format, and will be automatically converted to the hardware - * audio format if necessary. This function returns -1 if it failed - * to open the audio device, or couldn't set up the audio thread. - * - * When filling in the desired audio spec structure, - * - \c desired->freq should be the desired audio frequency in samples-per- - * second. - * - \c desired->format should be the desired audio format. - * - \c desired->samples is the desired size of the audio buffer, in - * samples. This number should be a power of two, and may be adjusted by - * the audio driver to a value more suitable for the hardware. Good values - * seem to range between 512 and 8096 inclusive, depending on the - * application and CPU speed. Smaller values yield faster response time, - * but can lead to underflow if the application is doing heavy processing - * and cannot fill the audio buffer in time. A stereo sample consists of - * both right and left channels in LR ordering. - * Note that the number of samples is directly related to time by the - * following formula: \code ms = (samples*1000)/freq \endcode - * - \c desired->size is the size in bytes of the audio buffer, and is - * calculated by SDL_OpenAudio(). - * - \c desired->silence is the value used to set the buffer to silence, - * and is calculated by SDL_OpenAudio(). - * - \c desired->callback should be set to a function that will be called - * when the audio device is ready for more data. It is passed a pointer - * to the audio buffer, and the length in bytes of the audio buffer. - * This function usually runs in a separate thread, and so you should - * protect data structures that it accesses by calling SDL_LockAudio() - * and SDL_UnlockAudio() in your code. Alternately, you may pass a NULL - * pointer here, and call SDL_QueueAudio() with some frequency, to queue - * more audio samples to be played (or for capture devices, call - * SDL_DequeueAudio() with some frequency, to obtain audio samples). - * - \c desired->userdata is passed as the first parameter to your callback - * function. If you passed a NULL callback, this value is ignored. - * - * The audio device starts out playing silence when it's opened, and should - * be enabled for playing by calling \c SDL_PauseAudio(0) when you are ready - * for your audio callback function to be called. Since the audio driver - * may modify the requested size of the audio buffer, you should allocate - * any local mixing buffers after you open the audio device. - */ -extern DECLSPEC int SDLCALL SDL_OpenAudio(SDL_AudioSpec * desired, - SDL_AudioSpec * obtained); - -/** - * SDL Audio Device IDs. - * - * A successful call to SDL_OpenAudio() is always device id 1, and legacy - * SDL audio APIs assume you want this device ID. SDL_OpenAudioDevice() calls - * always returns devices >= 2 on success. The legacy calls are good both - * for backwards compatibility and when you don't care about multiple, - * specific, or capture devices. - */ -typedef Uint32 SDL_AudioDeviceID; - -/** - * Get the number of available devices exposed by the current driver. - * Only valid after a successfully initializing the audio subsystem. - * Returns -1 if an explicit list of devices can't be determined; this is - * not an error. For example, if SDL is set up to talk to a remote audio - * server, it can't list every one available on the Internet, but it will - * still allow a specific host to be specified to SDL_OpenAudioDevice(). - * - * In many common cases, when this function returns a value <= 0, it can still - * successfully open the default device (NULL for first argument of - * SDL_OpenAudioDevice()). - */ -extern DECLSPEC int SDLCALL SDL_GetNumAudioDevices(int iscapture); - -/** - * Get the human-readable name of a specific audio device. - * Must be a value between 0 and (number of audio devices-1). - * Only valid after a successfully initializing the audio subsystem. - * The values returned by this function reflect the latest call to - * SDL_GetNumAudioDevices(); recall that function to redetect available - * hardware. - * - * The string returned by this function is UTF-8 encoded, read-only, and - * managed internally. You are not to free it. If you need to keep the - * string for any length of time, you should make your own copy of it, as it - * will be invalid next time any of several other SDL functions is called. - */ -extern DECLSPEC const char *SDLCALL SDL_GetAudioDeviceName(int index, - int iscapture); - - -/** - * Open a specific audio device. Passing in a device name of NULL requests - * the most reasonable default (and is equivalent to calling SDL_OpenAudio()). - * - * The device name is a UTF-8 string reported by SDL_GetAudioDeviceName(), but - * some drivers allow arbitrary and driver-specific strings, such as a - * hostname/IP address for a remote audio server, or a filename in the - * diskaudio driver. - * - * \return 0 on error, a valid device ID that is >= 2 on success. - * - * SDL_OpenAudio(), unlike this function, always acts on device ID 1. - */ -extern DECLSPEC SDL_AudioDeviceID SDLCALL SDL_OpenAudioDevice(const char - *device, - int iscapture, - const - SDL_AudioSpec * - desired, - SDL_AudioSpec * - obtained, - int - allowed_changes); - - - -/** - * \name Audio state - * - * Get the current audio state. - */ -/* @{ */ -typedef enum -{ - SDL_AUDIO_STOPPED = 0, - SDL_AUDIO_PLAYING, - SDL_AUDIO_PAUSED -} SDL_AudioStatus; -extern DECLSPEC SDL_AudioStatus SDLCALL SDL_GetAudioStatus(void); - -extern DECLSPEC SDL_AudioStatus SDLCALL -SDL_GetAudioDeviceStatus(SDL_AudioDeviceID dev); -/* @} *//* Audio State */ - -/** - * \name Pause audio functions - * - * These functions pause and unpause the audio callback processing. - * They should be called with a parameter of 0 after opening the audio - * device to start playing sound. This is so you can safely initialize - * data for your callback function after opening the audio device. - * Silence will be written to the audio device during the pause. - */ -/* @{ */ -extern DECLSPEC void SDLCALL SDL_PauseAudio(int pause_on); -extern DECLSPEC void SDLCALL SDL_PauseAudioDevice(SDL_AudioDeviceID dev, - int pause_on); -/* @} *//* Pause audio functions */ - -/** - * This function loads a WAVE from the data source, automatically freeing - * that source if \c freesrc is non-zero. For example, to load a WAVE file, - * you could do: - * \code - * SDL_LoadWAV_RW(SDL_RWFromFile("sample.wav", "rb"), 1, ...); - * \endcode - * - * If this function succeeds, it returns the given SDL_AudioSpec, - * filled with the audio data format of the wave data, and sets - * \c *audio_buf to a malloc()'d buffer containing the audio data, - * and sets \c *audio_len to the length of that audio buffer, in bytes. - * You need to free the audio buffer with SDL_FreeWAV() when you are - * done with it. - * - * This function returns NULL and sets the SDL error message if the - * wave file cannot be opened, uses an unknown data format, or is - * corrupt. Currently raw and MS-ADPCM WAVE files are supported. - */ -extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src, - int freesrc, - SDL_AudioSpec * spec, - Uint8 ** audio_buf, - Uint32 * audio_len); - -/** - * Loads a WAV from a file. - * Compatibility convenience function. - */ -#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \ - SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"),1, spec,audio_buf,audio_len) - -/** - * This function frees data previously allocated with SDL_LoadWAV_RW() - */ -extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 * audio_buf); - -/** - * This function takes a source format and rate and a destination format - * and rate, and initializes the \c cvt structure with information needed - * by SDL_ConvertAudio() to convert a buffer of audio data from one format - * to the other. - * - * \return -1 if the format conversion is not supported, 0 if there's - * no conversion needed, or 1 if the audio filter is set up. - */ -extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT * cvt, - SDL_AudioFormat src_format, - Uint8 src_channels, - int src_rate, - SDL_AudioFormat dst_format, - Uint8 dst_channels, - int dst_rate); - -/** - * Once you have initialized the \c cvt structure using SDL_BuildAudioCVT(), - * created an audio buffer \c cvt->buf, and filled it with \c cvt->len bytes of - * audio data in the source format, this function will convert it in-place - * to the desired format. - * - * The data conversion may expand the size of the audio data, so the buffer - * \c cvt->buf should be allocated after the \c cvt structure is initialized by - * SDL_BuildAudioCVT(), and should be \c cvt->len*cvt->len_mult bytes long. - */ -extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT * cvt); - -#define SDL_MIX_MAXVOLUME 128 -/** - * This takes two audio buffers of the playing audio format and mixes - * them, performing addition, volume adjustment, and overflow clipping. - * The volume ranges from 0 - 128, and should be set to ::SDL_MIX_MAXVOLUME - * for full audio volume. Note this does not change hardware volume. - * This is provided for convenience -- you can mix your own audio data. - */ -extern DECLSPEC void SDLCALL SDL_MixAudio(Uint8 * dst, const Uint8 * src, - Uint32 len, int volume); - -/** - * This works like SDL_MixAudio(), but you specify the audio format instead of - * using the format of audio device 1. Thus it can be used when no audio - * device is open at all. - */ -extern DECLSPEC void SDLCALL SDL_MixAudioFormat(Uint8 * dst, - const Uint8 * src, - SDL_AudioFormat format, - Uint32 len, int volume); - -/** - * Queue more audio on non-callback devices. - * - * (If you are looking to retrieve queued audio from a non-callback capture - * device, you want SDL_DequeueAudio() instead. This will return -1 to - * signify an error if you use it with capture devices.) - * - * SDL offers two ways to feed audio to the device: you can either supply a - * callback that SDL triggers with some frequency to obtain more audio - * (pull method), or you can supply no callback, and then SDL will expect - * you to supply data at regular intervals (push method) with this function. - * - * There are no limits on the amount of data you can queue, short of - * exhaustion of address space. Queued data will drain to the device as - * necessary without further intervention from you. If the device needs - * audio but there is not enough queued, it will play silence to make up - * the difference. This means you will have skips in your audio playback - * if you aren't routinely queueing sufficient data. - * - * This function copies the supplied data, so you are safe to free it when - * the function returns. This function is thread-safe, but queueing to the - * same device from two threads at once does not promise which buffer will - * be queued first. - * - * You may not queue audio on a device that is using an application-supplied - * callback; doing so returns an error. You have to use the audio callback - * or queue audio with this function, but not both. - * - * You should not call SDL_LockAudio() on the device before queueing; SDL - * handles locking internally for this function. - * - * \param dev The device ID to which we will queue audio. - * \param data The data to queue to the device for later playback. - * \param len The number of bytes (not samples!) to which (data) points. - * \return zero on success, -1 on error. - * - * \sa SDL_GetQueuedAudioSize - * \sa SDL_ClearQueuedAudio - */ -extern DECLSPEC int SDLCALL SDL_QueueAudio(SDL_AudioDeviceID dev, const void *data, Uint32 len); - -/** - * Dequeue more audio on non-callback devices. - * - * (If you are looking to queue audio for output on a non-callback playback - * device, you want SDL_QueueAudio() instead. This will always return 0 - * if you use it with playback devices.) - * - * SDL offers two ways to retrieve audio from a capture device: you can - * either supply a callback that SDL triggers with some frequency as the - * device records more audio data, (push method), or you can supply no - * callback, and then SDL will expect you to retrieve data at regular - * intervals (pull method) with this function. - * - * There are no limits on the amount of data you can queue, short of - * exhaustion of address space. Data from the device will keep queuing as - * necessary without further intervention from you. This means you will - * eventually run out of memory if you aren't routinely dequeueing data. - * - * Capture devices will not queue data when paused; if you are expecting - * to not need captured audio for some length of time, use - * SDL_PauseAudioDevice() to stop the capture device from queueing more - * data. This can be useful during, say, level loading times. When - * unpaused, capture devices will start queueing data from that point, - * having flushed any capturable data available while paused. - * - * This function is thread-safe, but dequeueing from the same device from - * two threads at once does not promise which thread will dequeued data - * first. - * - * You may not dequeue audio from a device that is using an - * application-supplied callback; doing so returns an error. You have to use - * the audio callback, or dequeue audio with this function, but not both. - * - * You should not call SDL_LockAudio() on the device before queueing; SDL - * handles locking internally for this function. - * - * \param dev The device ID from which we will dequeue audio. - * \param data A pointer into where audio data should be copied. - * \param len The number of bytes (not samples!) to which (data) points. - * \return number of bytes dequeued, which could be less than requested. - * - * \sa SDL_GetQueuedAudioSize - * \sa SDL_ClearQueuedAudio - */ -extern DECLSPEC Uint32 SDLCALL SDL_DequeueAudio(SDL_AudioDeviceID dev, void *data, Uint32 len); - -/** - * Get the number of bytes of still-queued audio. - * - * For playback device: - * - * This is the number of bytes that have been queued for playback with - * SDL_QueueAudio(), but have not yet been sent to the hardware. This - * number may shrink at any time, so this only informs of pending data. - * - * Once we've sent it to the hardware, this function can not decide the - * exact byte boundary of what has been played. It's possible that we just - * gave the hardware several kilobytes right before you called this - * function, but it hasn't played any of it yet, or maybe half of it, etc. - * - * For capture devices: - * - * This is the number of bytes that have been captured by the device and - * are waiting for you to dequeue. This number may grow at any time, so - * this only informs of the lower-bound of available data. - * - * You may not queue audio on a device that is using an application-supplied - * callback; calling this function on such a device always returns 0. - * You have to queue audio with SDL_QueueAudio()/SDL_DequeueAudio(), or use - * the audio callback, but not both. - * - * You should not call SDL_LockAudio() on the device before querying; SDL - * handles locking internally for this function. - * - * \param dev The device ID of which we will query queued audio size. - * \return Number of bytes (not samples!) of queued audio. - * - * \sa SDL_QueueAudio - * \sa SDL_ClearQueuedAudio - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetQueuedAudioSize(SDL_AudioDeviceID dev); - -/** - * Drop any queued audio data. For playback devices, this is any queued data - * still waiting to be submitted to the hardware. For capture devices, this - * is any data that was queued by the device that hasn't yet been dequeued by - * the application. - * - * Immediately after this call, SDL_GetQueuedAudioSize() will return 0. For - * playback devices, the hardware will start playing silence if more audio - * isn't queued. Unpaused capture devices will start filling the queue again - * as soon as they have more data available (which, depending on the state - * of the hardware and the thread, could be before this function call - * returns!). - * - * This will not prevent playback of queued audio that's already been sent - * to the hardware, as we can not undo that, so expect there to be some - * fraction of a second of audio that might still be heard. This can be - * useful if you want to, say, drop any pending music during a level change - * in your game. - * - * You may not queue audio on a device that is using an application-supplied - * callback; calling this function on such a device is always a no-op. - * You have to queue audio with SDL_QueueAudio()/SDL_DequeueAudio(), or use - * the audio callback, but not both. - * - * You should not call SDL_LockAudio() on the device before clearing the - * queue; SDL handles locking internally for this function. - * - * This function always succeeds and thus returns void. - * - * \param dev The device ID of which to clear the audio queue. - * - * \sa SDL_QueueAudio - * \sa SDL_GetQueuedAudioSize - */ -extern DECLSPEC void SDLCALL SDL_ClearQueuedAudio(SDL_AudioDeviceID dev); - - -/** - * \name Audio lock functions - * - * The lock manipulated by these functions protects the callback function. - * During a SDL_LockAudio()/SDL_UnlockAudio() pair, you can be guaranteed that - * the callback function is not running. Do not call these from the callback - * function or you will cause deadlock. - */ -/* @{ */ -extern DECLSPEC void SDLCALL SDL_LockAudio(void); -extern DECLSPEC void SDLCALL SDL_LockAudioDevice(SDL_AudioDeviceID dev); -extern DECLSPEC void SDLCALL SDL_UnlockAudio(void); -extern DECLSPEC void SDLCALL SDL_UnlockAudioDevice(SDL_AudioDeviceID dev); -/* @} *//* Audio lock functions */ - -/** - * This function shuts down audio processing and closes the audio device. - */ -extern DECLSPEC void SDLCALL SDL_CloseAudio(void); -extern DECLSPEC void SDLCALL SDL_CloseAudioDevice(SDL_AudioDeviceID dev); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_audio_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_bits.h b/lib/osx/include/SDL_bits.h deleted file mode 100644 index 528da2e..0000000 --- a/lib/osx/include/SDL_bits.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_bits.h - * - * Functions for fiddling with bits and bitmasks. - */ - -#ifndef _SDL_bits_h -#define _SDL_bits_h - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file SDL_bits.h - */ - -/** - * Get the index of the most significant bit. Result is undefined when called - * with 0. This operation can also be stated as "count leading zeroes" and - * "log base 2". - * - * \return Index of the most significant bit, or -1 if the value is 0. - */ -SDL_FORCE_INLINE int -SDL_MostSignificantBitIndex32(Uint32 x) -{ -#if defined(__GNUC__) && __GNUC__ >= 4 - /* Count Leading Zeroes builtin in GCC. - * http://gcc.gnu.org/onlinedocs/gcc-4.3.4/gcc/Other-Builtins.html - */ - if (x == 0) { - return -1; - } - return 31 - __builtin_clz(x); -#else - /* Based off of Bit Twiddling Hacks by Sean Eron Anderson - * <seander@cs.stanford.edu>, released in the public domain. - * http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog - */ - const Uint32 b[] = {0x2, 0xC, 0xF0, 0xFF00, 0xFFFF0000}; - const int S[] = {1, 2, 4, 8, 16}; - - int msbIndex = 0; - int i; - - if (x == 0) { - return -1; - } - - for (i = 4; i >= 0; i--) - { - if (x & b[i]) - { - x >>= S[i]; - msbIndex |= S[i]; - } - } - - return msbIndex; -#endif -} - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_bits_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_blendmode.h b/lib/osx/include/SDL_blendmode.h deleted file mode 100644 index 56d8ad6..0000000 --- a/lib/osx/include/SDL_blendmode.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_blendmode.h - * - * Header file declaring the SDL_BlendMode enumeration - */ - -#ifndef _SDL_blendmode_h -#define _SDL_blendmode_h - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief The blend mode used in SDL_RenderCopy() and drawing operations. - */ -typedef enum -{ - SDL_BLENDMODE_NONE = 0x00000000, /**< no blending - dstRGBA = srcRGBA */ - SDL_BLENDMODE_BLEND = 0x00000001, /**< alpha blending - dstRGB = (srcRGB * srcA) + (dstRGB * (1-srcA)) - dstA = srcA + (dstA * (1-srcA)) */ - SDL_BLENDMODE_ADD = 0x00000002, /**< additive blending - dstRGB = (srcRGB * srcA) + dstRGB - dstA = dstA */ - SDL_BLENDMODE_MOD = 0x00000004 /**< color modulate - dstRGB = srcRGB * dstRGB - dstA = dstA */ -} SDL_BlendMode; - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_blendmode_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_clipboard.h b/lib/osx/include/SDL_clipboard.h deleted file mode 100644 index a5556f2..0000000 --- a/lib/osx/include/SDL_clipboard.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_clipboard.h - * - * Include file for SDL clipboard handling - */ - -#ifndef _SDL_clipboard_h -#define _SDL_clipboard_h - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Function prototypes */ - -/** - * \brief Put UTF-8 text into the clipboard - * - * \sa SDL_GetClipboardText() - */ -extern DECLSPEC int SDLCALL SDL_SetClipboardText(const char *text); - -/** - * \brief Get UTF-8 text from the clipboard, which must be freed with SDL_free() - * - * \sa SDL_SetClipboardText() - */ -extern DECLSPEC char * SDLCALL SDL_GetClipboardText(void); - -/** - * \brief Returns a flag indicating whether the clipboard exists and contains a text string that is non-empty - * - * \sa SDL_GetClipboardText() - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_clipboard_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_config.h b/lib/osx/include/SDL_config.h deleted file mode 100644 index 82905ce..0000000 --- a/lib/osx/include/SDL_config.h +++ /dev/null @@ -1,364 +0,0 @@ -/* include/SDL_config.h. Generated from SDL_config.h.in by configure. */ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_config_h -#define _SDL_config_h - -/** - * \file SDL_config.h.in - * - * This is a set of defines to configure the SDL features - */ - -/* General platform specific identifiers */ -#include "SDL_platform.h" - -/* Make sure that this isn't included by Visual C++ */ -#ifdef _MSC_VER -#error You should run hg revert SDL_config.h -#endif - -/* C language features */ -/* #undef const */ -/* #undef inline */ -/* #undef volatile */ - -/* C datatypes */ -#ifdef __LP64__ -#define SIZEOF_VOIDP 8 -#else -#define SIZEOF_VOIDP 4 -#endif -#define HAVE_GCC_ATOMICS 1 -/* #undef HAVE_GCC_SYNC_LOCK_TEST_AND_SET */ - -/* #undef HAVE_DDRAW_H */ -/* #undef HAVE_DINPUT_H */ -/* #undef HAVE_DSOUND_H */ -/* #undef HAVE_DXGI_H */ -/* #undef HAVE_XINPUT_H */ - -/* Comment this if you want to build without any C library requirements */ -#define HAVE_LIBC 1 -#if HAVE_LIBC - -/* Useful headers */ -#define HAVE_ALLOCA_H 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_STDIO_H 1 -#define STDC_HEADERS 1 -#define HAVE_STDLIB_H 1 -#define HAVE_STDARG_H 1 -/* #undef HAVE_MALLOC_H */ -#define HAVE_MEMORY_H 1 -#define HAVE_STRING_H 1 -#define HAVE_STRINGS_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_CTYPE_H 1 -#define HAVE_MATH_H 1 -#define HAVE_ICONV_H 1 -#define HAVE_SIGNAL_H 1 -/* #undef HAVE_ALTIVEC_H */ -/* #undef HAVE_PTHREAD_NP_H */ -/* #undef HAVE_LIBUDEV_H */ -/* #undef HAVE_DBUS_DBUS_H */ -/* #undef HAVE_IBUS_IBUS_H */ -/* #undef HAVE_FCITX_FRONTEND_H */ - -/* C library functions */ -#define HAVE_MALLOC 1 -#define HAVE_CALLOC 1 -#define HAVE_REALLOC 1 -#define HAVE_FREE 1 -#define HAVE_ALLOCA 1 -#ifndef __WIN32__ /* Don't use C runtime versions of these on Windows */ -#define HAVE_GETENV 1 -#define HAVE_SETENV 1 -#define HAVE_PUTENV 1 -#define HAVE_UNSETENV 1 -#endif -#define HAVE_QSORT 1 -#define HAVE_ABS 1 -#define HAVE_BCOPY 1 -#define HAVE_MEMSET 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_MEMCMP 1 -#define HAVE_STRLEN 1 -#define HAVE_STRLCPY 1 -#define HAVE_STRLCAT 1 -#define HAVE_STRDUP 1 -/* #undef HAVE__STRREV */ -/* #undef HAVE__STRUPR */ -/* #undef HAVE__STRLWR */ -/* #undef HAVE_INDEX */ -/* #undef HAVE_RINDEX */ -#define HAVE_STRCHR 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -/* #undef HAVE_ITOA */ -/* #undef HAVE__LTOA */ -/* #undef HAVE__UITOA */ -/* #undef HAVE__ULTOA */ -#define HAVE_STRTOL 1 -#define HAVE_STRTOUL 1 -/* #undef HAVE__I64TOA */ -/* #undef HAVE__UI64TOA */ -#define HAVE_STRTOLL 1 -#define HAVE_STRTOULL 1 -#define HAVE_STRTOD 1 -#define HAVE_ATOI 1 -#define HAVE_ATOF 1 -#define HAVE_STRCMP 1 -#define HAVE_STRNCMP 1 -/* #undef HAVE__STRICMP */ -#define HAVE_STRCASECMP 1 -/* #undef HAVE__STRNICMP */ -#define HAVE_STRNCASECMP 1 -/* #undef HAVE_SSCANF */ -#define HAVE_VSSCANF 1 -/* #undef HAVE_SNPRINTF */ -#define HAVE_VSNPRINTF 1 -#define HAVE_M_PI /**/ -#define HAVE_ATAN 1 -#define HAVE_ATAN2 1 -#define HAVE_ACOS 1 -#define HAVE_ASIN 1 -#define HAVE_CEIL 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COS 1 -#define HAVE_COSF 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_LOG 1 -#define HAVE_POW 1 -#define HAVE_SCALBN 1 -#define HAVE_SIN 1 -#define HAVE_SINF 1 -#define HAVE_SQRT 1 -#define HAVE_SQRTF 1 -#define HAVE_TAN 1 -#define HAVE_TANF 1 -#define HAVE_FSEEKO 1 -/* #undef HAVE_FSEEKO64 */ -#define HAVE_SIGACTION 1 -#define HAVE_SA_SIGACTION 1 -#define HAVE_SETJMP 1 -#define HAVE_NANOSLEEP 1 -#define HAVE_SYSCONF 1 -#define HAVE_SYSCTLBYNAME 1 -/* #undef HAVE_CLOCK_GETTIME */ -/* #undef HAVE_GETPAGESIZE */ -#define HAVE_MPROTECT 1 -#define HAVE_ICONV 1 -#define HAVE_PTHREAD_SETNAME_NP 1 -/* #undef HAVE_PTHREAD_SET_NAME_NP */ -/* #undef HAVE_SEM_TIMEDWAIT */ - -#else -#define HAVE_STDARG_H 1 -#define HAVE_STDDEF_H 1 -#define HAVE_STDINT_H 1 -#endif /* HAVE_LIBC */ - -/* SDL internal assertion support */ -/* #undef SDL_DEFAULT_ASSERT_LEVEL */ - -/* Allow disabling of core subsystems */ -/* #undef SDL_ATOMIC_DISABLED */ -/* #undef SDL_AUDIO_DISABLED */ -/* #undef SDL_CPUINFO_DISABLED */ -/* #undef SDL_EVENTS_DISABLED */ -/* #undef SDL_FILE_DISABLED */ -/* #undef SDL_JOYSTICK_DISABLED */ -/* #undef SDL_HAPTIC_DISABLED */ -/* #undef SDL_LOADSO_DISABLED */ -/* #undef SDL_RENDER_DISABLED */ -/* #undef SDL_THREADS_DISABLED */ -/* #undef SDL_TIMERS_DISABLED */ -/* #undef SDL_VIDEO_DISABLED */ -/* #undef SDL_POWER_DISABLED */ -/* #undef SDL_FILESYSTEM_DISABLED */ - -/* Enable various audio drivers */ -/* #undef SDL_AUDIO_DRIVER_ALSA */ -/* #undef SDL_AUDIO_DRIVER_ALSA_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_ARTS */ -/* #undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_PULSEAUDIO */ -/* #undef SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_HAIKU */ -/* #undef SDL_AUDIO_DRIVER_BSD */ -#define SDL_AUDIO_DRIVER_COREAUDIO 1 -#define SDL_AUDIO_DRIVER_DISK 1 -#define SDL_AUDIO_DRIVER_DUMMY 1 -/* #undef SDL_AUDIO_DRIVER_ANDROID */ -/* #undef SDL_AUDIO_DRIVER_XAUDIO2 */ -/* #undef SDL_AUDIO_DRIVER_DSOUND */ -/* #undef SDL_AUDIO_DRIVER_ESD */ -/* #undef SDL_AUDIO_DRIVER_ESD_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_NACL */ -/* #undef SDL_AUDIO_DRIVER_NAS */ -/* #undef SDL_AUDIO_DRIVER_NAS_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_SNDIO */ -/* #undef SDL_AUDIO_DRIVER_SNDIO_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_OSS */ -/* #undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H */ -/* #undef SDL_AUDIO_DRIVER_PAUDIO */ -/* #undef SDL_AUDIO_DRIVER_QSA */ -/* #undef SDL_AUDIO_DRIVER_SUNAUDIO */ -/* #undef SDL_AUDIO_DRIVER_WINMM */ -/* #undef SDL_AUDIO_DRIVER_FUSIONSOUND */ -/* #undef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_EMSCRIPTEN */ - -/* Enable various input drivers */ -/* #undef SDL_INPUT_LINUXEV */ -/* #undef SDL_INPUT_LINUXKD */ -/* #undef SDL_INPUT_TSLIB */ -/* #undef SDL_JOYSTICK_HAIKU */ -/* #undef SDL_JOYSTICK_DINPUT */ -/* #undef SDL_JOYSTICK_XINPUT */ -/* #undef SDL_JOYSTICK_DUMMY */ -#define SDL_JOYSTICK_IOKIT 1 -/* #undef SDL_JOYSTICK_LINUX */ -/* #undef SDL_JOYSTICK_ANDROID */ -/* #undef SDL_JOYSTICK_WINMM */ -/* #undef SDL_JOYSTICK_USBHID */ -/* #undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H */ -/* #undef SDL_JOYSTICK_EMSCRIPTEN */ -/* #undef SDL_HAPTIC_DUMMY */ -/* #undef SDL_HAPTIC_LINUX */ -#define SDL_HAPTIC_IOKIT 1 -/* #undef SDL_HAPTIC_DINPUT */ -/* #undef SDL_HAPTIC_XINPUT */ - -/* Enable various shared object loading systems */ -/* #undef SDL_LOADSO_HAIKU */ -#define SDL_LOADSO_DLOPEN 1 -/* #undef SDL_LOADSO_DUMMY */ -/* #undef SDL_LOADSO_LDG */ -/* #undef SDL_LOADSO_WINDOWS */ - -/* Enable various threading systems */ -#define SDL_THREAD_PTHREAD 1 -#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 -/* #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP */ -/* #undef SDL_THREAD_WINDOWS */ - -/* Enable various timer systems */ -/* #undef SDL_TIMER_HAIKU */ -/* #undef SDL_TIMER_DUMMY */ -#define SDL_TIMER_UNIX 1 -/* #undef SDL_TIMER_WINDOWS */ - -/* Enable various video drivers */ -/* #undef SDL_VIDEO_DRIVER_HAIKU */ -#define SDL_VIDEO_DRIVER_COCOA 1 -/* #undef SDL_VIDEO_DRIVER_DIRECTFB */ -/* #undef SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC */ -#define SDL_VIDEO_DRIVER_DUMMY 1 -/* #undef SDL_VIDEO_DRIVER_WINDOWS */ -/* #undef SDL_VIDEO_DRIVER_WAYLAND */ -/* #undef SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH */ -/* #undef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC */ -/* #undef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL */ -/* #undef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR */ -/* #undef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON */ -/* #undef SDL_VIDEO_DRIVER_MIR */ -/* #undef SDL_VIDEO_DRIVER_MIR_DYNAMIC */ -/* #undef SDL_VIDEO_DRIVER_MIR_DYNAMIC_XKBCOMMON */ -/* #undef SDL_VIDEO_DRIVER_X11 */ -/* #undef SDL_VIDEO_DRIVER_RPI */ -/* #undef SDL_VIDEO_DRIVER_ANDROID */ -/* #undef SDL_VIDEO_DRIVER_EMSCRIPTEN */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE */ -/* #undef SDL_VIDEO_DRIVER_X11_XCURSOR */ -/* #undef SDL_VIDEO_DRIVER_X11_XDBE */ -/* #undef SDL_VIDEO_DRIVER_X11_XINERAMA */ -/* #undef SDL_VIDEO_DRIVER_X11_XINPUT2 */ -/* #undef SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH */ -/* #undef SDL_VIDEO_DRIVER_X11_XRANDR */ -/* #undef SDL_VIDEO_DRIVER_X11_XSCRNSAVER */ -/* #undef SDL_VIDEO_DRIVER_X11_XSHAPE */ -/* #undef SDL_VIDEO_DRIVER_X11_XVIDMODE */ -/* #undef SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS */ -/* #undef SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY */ -/* #undef SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM */ -/* #undef SDL_VIDEO_DRIVER_NACL */ -/* #undef SDL_VIDEO_DRIVER_VIVANTE */ -/* #undef SDL_VIDEO_DRIVER_VIVANTE_VDK */ - -/* #undef SDL_VIDEO_RENDER_D3D */ -/* #undef SDL_VIDEO_RENDER_D3D11 */ -#define SDL_VIDEO_RENDER_OGL 1 -/* #undef SDL_VIDEO_RENDER_OGL_ES */ -/* #undef SDL_VIDEO_RENDER_OGL_ES2 */ -/* #undef SDL_VIDEO_RENDER_DIRECTFB */ - -/* Enable OpenGL support */ -#define SDL_VIDEO_OPENGL 1 -/* #undef SDL_VIDEO_OPENGL_ES */ -/* #undef SDL_VIDEO_OPENGL_ES2 */ -/* #undef SDL_VIDEO_OPENGL_BGL */ -#define SDL_VIDEO_OPENGL_CGL 1 -/* #undef SDL_VIDEO_OPENGL_EGL */ -/* #undef SDL_VIDEO_OPENGL_GLX */ -/* #undef SDL_VIDEO_OPENGL_WGL */ -/* #undef SDL_VIDEO_OPENGL_OSMESA */ -/* #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC */ - -/* Enable system power support */ -/* #undef SDL_POWER_LINUX */ -/* #undef SDL_POWER_WINDOWS */ -#define SDL_POWER_MACOSX 1 -/* #undef SDL_POWER_HAIKU */ -/* #undef SDL_POWER_ANDROID */ -/* #undef SDL_POWER_EMSCRIPTEN */ -/* #undef SDL_POWER_HARDWIRED */ - -/* Enable system filesystem support */ -/* #undef SDL_FILESYSTEM_HAIKU */ -#define SDL_FILESYSTEM_COCOA 1 -/* #undef SDL_FILESYSTEM_DUMMY */ -/* #undef SDL_FILESYSTEM_UNIX */ -/* #undef SDL_FILESYSTEM_WINDOWS */ -/* #undef SDL_FILESYSTEM_NACL */ -/* #undef SDL_FILESYSTEM_ANDROID */ -/* #undef SDL_FILESYSTEM_EMSCRIPTEN */ - -/* Enable assembly routines */ -#define SDL_ASSEMBLY_ROUTINES 1 -/* #undef SDL_ALTIVEC_BLITTERS */ - -/* Enable ime support */ -/* #undef SDL_USE_IME */ - -#endif /* _SDL_config_h */ diff --git a/lib/osx/include/SDL_config_android.h b/lib/osx/include/SDL_config_android.h deleted file mode 100644 index 738dd94..0000000 --- a/lib/osx/include/SDL_config_android.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_config_android_h -#define _SDL_config_android_h - -#include "SDL_platform.h" - -/** - * \file SDL_config_android.h - * - * This is a configuration that can be used to build SDL for Android - */ - -#include <stdarg.h> - -#define HAVE_GCC_ATOMICS 1 - -#define HAVE_ALLOCA_H 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_STDIO_H 1 -#define STDC_HEADERS 1 -#define HAVE_STRING_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_CTYPE_H 1 -#define HAVE_MATH_H 1 -#define HAVE_SIGNAL_H 1 - -/* C library functions */ -#define HAVE_MALLOC 1 -#define HAVE_CALLOC 1 -#define HAVE_REALLOC 1 -#define HAVE_FREE 1 -#define HAVE_ALLOCA 1 -#define HAVE_GETENV 1 -#define HAVE_SETENV 1 -#define HAVE_PUTENV 1 -#define HAVE_SETENV 1 -#define HAVE_UNSETENV 1 -#define HAVE_QSORT 1 -#define HAVE_ABS 1 -#define HAVE_BCOPY 1 -#define HAVE_MEMSET 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_MEMCMP 1 -#define HAVE_STRLEN 1 -#define HAVE_STRLCPY 1 -#define HAVE_STRLCAT 1 -#define HAVE_STRDUP 1 -#define HAVE_STRCHR 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -#define HAVE_STRTOL 1 -#define HAVE_STRTOUL 1 -#define HAVE_STRTOLL 1 -#define HAVE_STRTOULL 1 -#define HAVE_STRTOD 1 -#define HAVE_ATOI 1 -#define HAVE_ATOF 1 -#define HAVE_STRCMP 1 -#define HAVE_STRNCMP 1 -#define HAVE_STRCASECMP 1 -#define HAVE_STRNCASECMP 1 -#define HAVE_VSSCANF 1 -#define HAVE_VSNPRINTF 1 -#define HAVE_M_PI 1 -#define HAVE_ATAN 1 -#define HAVE_ATAN2 1 -#define HAVE_ACOS 1 -#define HAVE_ASIN 1 -#define HAVE_CEIL 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COS 1 -#define HAVE_COSF 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_LOG 1 -#define HAVE_POW 1 -#define HAVE_SCALBN 1 -#define HAVE_SIN 1 -#define HAVE_SINF 1 -#define HAVE_SQRT 1 -#define HAVE_SIGACTION 1 -#define HAVE_SETJMP 1 -#define HAVE_NANOSLEEP 1 -#define HAVE_SYSCONF 1 - -#define SIZEOF_VOIDP 4 - -/* Enable various audio drivers */ -#define SDL_AUDIO_DRIVER_ANDROID 1 -#define SDL_AUDIO_DRIVER_DUMMY 1 - -/* Enable various input drivers */ -#define SDL_JOYSTICK_ANDROID 1 -#define SDL_HAPTIC_DUMMY 1 - -/* Enable various shared object loading systems */ -#define SDL_LOADSO_DLOPEN 1 - -/* Enable various threading systems */ -#define SDL_THREAD_PTHREAD 1 -#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 - -/* Enable various timer systems */ -#define SDL_TIMER_UNIX 1 - -/* Enable various video drivers */ -#define SDL_VIDEO_DRIVER_ANDROID 1 - -/* Enable OpenGL ES */ -#define SDL_VIDEO_OPENGL_ES 1 -#define SDL_VIDEO_OPENGL_ES2 1 -#define SDL_VIDEO_OPENGL_EGL 1 -#define SDL_VIDEO_RENDER_OGL_ES 1 -#define SDL_VIDEO_RENDER_OGL_ES2 1 - -/* Enable system power support */ -#define SDL_POWER_ANDROID 1 - -/* !!! FIXME: what does Android do for filesystem stuff? */ -#define SDL_FILESYSTEM_DUMMY 1 - -#endif /* _SDL_config_android_h */ diff --git a/lib/osx/include/SDL_config_iphoneos.h b/lib/osx/include/SDL_config_iphoneos.h deleted file mode 100644 index a0f55b6..0000000 --- a/lib/osx/include/SDL_config_iphoneos.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_config_iphoneos_h -#define _SDL_config_iphoneos_h - -#include "SDL_platform.h" - -#ifdef __LP64__ -#define SIZEOF_VOIDP 8 -#else -#define SIZEOF_VOIDP 4 -#endif - -#define HAVE_GCC_ATOMICS 1 - -#define HAVE_ALLOCA_H 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_STDIO_H 1 -#define STDC_HEADERS 1 -#define HAVE_STRING_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_CTYPE_H 1 -#define HAVE_MATH_H 1 -#define HAVE_SIGNAL_H 1 - -/* C library functions */ -#define HAVE_MALLOC 1 -#define HAVE_CALLOC 1 -#define HAVE_REALLOC 1 -#define HAVE_FREE 1 -#define HAVE_ALLOCA 1 -#define HAVE_GETENV 1 -#define HAVE_SETENV 1 -#define HAVE_PUTENV 1 -#define HAVE_SETENV 1 -#define HAVE_UNSETENV 1 -#define HAVE_QSORT 1 -#define HAVE_ABS 1 -#define HAVE_BCOPY 1 -#define HAVE_MEMSET 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_MEMCMP 1 -#define HAVE_STRLEN 1 -#define HAVE_STRLCPY 1 -#define HAVE_STRLCAT 1 -#define HAVE_STRDUP 1 -#define HAVE_STRCHR 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -#define HAVE_STRTOL 1 -#define HAVE_STRTOUL 1 -#define HAVE_STRTOLL 1 -#define HAVE_STRTOULL 1 -#define HAVE_STRTOD 1 -#define HAVE_ATOI 1 -#define HAVE_ATOF 1 -#define HAVE_STRCMP 1 -#define HAVE_STRNCMP 1 -#define HAVE_STRCASECMP 1 -#define HAVE_STRNCASECMP 1 -#define HAVE_VSSCANF 1 -#define HAVE_VSNPRINTF 1 -#define HAVE_M_PI 1 -#define HAVE_ATAN 1 -#define HAVE_ATAN2 1 -#define HAVE_ACOS 1 -#define HAVE_ASIN 1 -#define HAVE_CEIL 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COS 1 -#define HAVE_COSF 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_LOG 1 -#define HAVE_POW 1 -#define HAVE_SCALBN 1 -#define HAVE_SIN 1 -#define HAVE_SINF 1 -#define HAVE_SQRT 1 -#define HAVE_SIGACTION 1 -#define HAVE_SETJMP 1 -#define HAVE_NANOSLEEP 1 -#define HAVE_SYSCONF 1 -#define HAVE_SYSCTLBYNAME 1 - -/* enable iPhone version of Core Audio driver */ -#define SDL_AUDIO_DRIVER_COREAUDIO 1 -/* Enable the dummy audio driver (src/audio/dummy/\*.c) */ -#define SDL_AUDIO_DRIVER_DUMMY 1 - -/* Enable the stub haptic driver (src/haptic/dummy/\*.c) */ -#define SDL_HAPTIC_DISABLED 1 - -/* Enable Unix style SO loading */ -/* Technically this works, but it violates the iPhone developer agreement */ -/* #define SDL_LOADSO_DLOPEN 1 */ - -/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */ -#define SDL_LOADSO_DISABLED 1 - -/* Enable various threading systems */ -#define SDL_THREAD_PTHREAD 1 -#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 - -/* Enable various timer systems */ -#define SDL_TIMER_UNIX 1 - -/* Supported video drivers */ -#define SDL_VIDEO_DRIVER_UIKIT 1 -#define SDL_VIDEO_DRIVER_DUMMY 1 - -/* enable OpenGL ES */ -#define SDL_VIDEO_OPENGL_ES 1 -#define SDL_VIDEO_RENDER_OGL_ES 1 -#define SDL_VIDEO_RENDER_OGL_ES2 1 - -/* Enable system power support */ -#define SDL_POWER_UIKIT 1 - -/* enable iPhone keyboard support */ -#define SDL_IPHONE_KEYBOARD 1 - -/* enable joystick subsystem */ -#define SDL_JOYSTICK_DISABLED 0 - -/* Set max recognized G-force from accelerometer - See src/joystick/uikit/SDLUIAccelerationDelegate.m for notes on why this is needed - */ -#define SDL_IPHONE_MAX_GFORCE 5.0 - -/* enable filesystem support */ -#define SDL_FILESYSTEM_COCOA 1 - -#endif /* _SDL_config_iphoneos_h */ diff --git a/lib/osx/include/SDL_config_macosx.h b/lib/osx/include/SDL_config_macosx.h deleted file mode 100644 index 5c8b7e0..0000000 --- a/lib/osx/include/SDL_config_macosx.h +++ /dev/null @@ -1,188 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_config_macosx_h -#define _SDL_config_macosx_h - -#include "SDL_platform.h" - -/* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */ -#include <AvailabilityMacros.h> - -/* This is a set of defines to configure the SDL features */ - -#ifdef __LP64__ - #define SIZEOF_VOIDP 8 -#else - #define SIZEOF_VOIDP 4 -#endif - -/* Useful headers */ -#define HAVE_ALLOCA_H 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_STDIO_H 1 -#define STDC_HEADERS 1 -#define HAVE_STRING_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_CTYPE_H 1 -#define HAVE_MATH_H 1 -#define HAVE_SIGNAL_H 1 - -/* C library functions */ -#define HAVE_MALLOC 1 -#define HAVE_CALLOC 1 -#define HAVE_REALLOC 1 -#define HAVE_FREE 1 -#define HAVE_ALLOCA 1 -#define HAVE_GETENV 1 -#define HAVE_SETENV 1 -#define HAVE_PUTENV 1 -#define HAVE_UNSETENV 1 -#define HAVE_QSORT 1 -#define HAVE_ABS 1 -#define HAVE_BCOPY 1 -#define HAVE_MEMSET 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_MEMCMP 1 -#define HAVE_STRLEN 1 -#define HAVE_STRLCPY 1 -#define HAVE_STRLCAT 1 -#define HAVE_STRDUP 1 -#define HAVE_STRCHR 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -#define HAVE_STRTOL 1 -#define HAVE_STRTOUL 1 -#define HAVE_STRTOLL 1 -#define HAVE_STRTOULL 1 -#define HAVE_STRTOD 1 -#define HAVE_ATOI 1 -#define HAVE_ATOF 1 -#define HAVE_STRCMP 1 -#define HAVE_STRNCMP 1 -#define HAVE_STRCASECMP 1 -#define HAVE_STRNCASECMP 1 -#define HAVE_VSSCANF 1 -#define HAVE_VSNPRINTF 1 -#define HAVE_CEIL 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COS 1 -#define HAVE_COSF 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_LOG 1 -#define HAVE_POW 1 -#define HAVE_SCALBN 1 -#define HAVE_SIN 1 -#define HAVE_SINF 1 -#define HAVE_SQRT 1 -#define HAVE_SQRTF 1 -#define HAVE_TAN 1 -#define HAVE_TANF 1 -#define HAVE_SIGACTION 1 -#define HAVE_SETJMP 1 -#define HAVE_NANOSLEEP 1 -#define HAVE_SYSCONF 1 -#define HAVE_SYSCTLBYNAME 1 -#define HAVE_ATAN 1 -#define HAVE_ATAN2 1 -#define HAVE_ACOS 1 -#define HAVE_ASIN 1 - -/* Enable various audio drivers */ -#define SDL_AUDIO_DRIVER_COREAUDIO 1 -#define SDL_AUDIO_DRIVER_DISK 1 -#define SDL_AUDIO_DRIVER_DUMMY 1 - -/* Enable various input drivers */ -#define SDL_JOYSTICK_IOKIT 1 -#define SDL_HAPTIC_IOKIT 1 - -/* Enable various shared object loading systems */ -#define SDL_LOADSO_DLOPEN 1 - -/* Enable various threading systems */ -#define SDL_THREAD_PTHREAD 1 -#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 - -/* Enable various timer systems */ -#define SDL_TIMER_UNIX 1 - -/* Enable various video drivers */ -#define SDL_VIDEO_DRIVER_COCOA 1 -#define SDL_VIDEO_DRIVER_DUMMY 1 -#undef SDL_VIDEO_DRIVER_X11 -#define SDL_VIDEO_DRIVER_X11_DYNAMIC "/usr/X11R6/lib/libX11.6.dylib" -#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/usr/X11R6/lib/libXext.6.dylib" -#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/usr/X11R6/lib/libXinerama.1.dylib" -#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/usr/X11R6/lib/libXi.6.dylib" -#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/usr/X11R6/lib/libXrandr.2.dylib" -#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/usr/X11R6/lib/libXss.1.dylib" -#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/usr/X11R6/lib/libXxf86vm.1.dylib" -#define SDL_VIDEO_DRIVER_X11_XDBE 1 -#define SDL_VIDEO_DRIVER_X11_XINERAMA 1 -#define SDL_VIDEO_DRIVER_X11_XRANDR 1 -#define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1 -#define SDL_VIDEO_DRIVER_X11_XSHAPE 1 -#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1 -#define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1 - -#ifdef MAC_OS_X_VERSION_10_8 -/* - * No matter the versions targeted, this is the 10.8 or later SDK, so you have - * to use the external Xquartz, which is a more modern Xlib. Previous SDKs - * used an older Xlib. - */ -#define SDL_VIDEO_DRIVER_X11_XINPUT2 1 -#define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1 -#define SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY 1 -#endif - -#ifndef SDL_VIDEO_RENDER_OGL -#define SDL_VIDEO_RENDER_OGL 1 -#endif - -/* Enable OpenGL support */ -#ifndef SDL_VIDEO_OPENGL -#define SDL_VIDEO_OPENGL 1 -#endif -#ifndef SDL_VIDEO_OPENGL_CGL -#define SDL_VIDEO_OPENGL_CGL 1 -#endif -#ifndef SDL_VIDEO_OPENGL_GLX -#define SDL_VIDEO_OPENGL_GLX 1 -#endif - -/* Enable system power support */ -#define SDL_POWER_MACOSX 1 - -/* enable filesystem support */ -#define SDL_FILESYSTEM_COCOA 1 - -/* Enable assembly routines */ -#define SDL_ASSEMBLY_ROUTINES 1 -#ifdef __ppc__ -#define SDL_ALTIVEC_BLITTERS 1 -#endif - -#endif /* _SDL_config_macosx_h */ diff --git a/lib/osx/include/SDL_config_minimal.h b/lib/osx/include/SDL_config_minimal.h deleted file mode 100644 index 1bddafe..0000000 --- a/lib/osx/include/SDL_config_minimal.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_config_minimal_h -#define _SDL_config_minimal_h - -#include "SDL_platform.h" - -/** - * \file SDL_config_minimal.h - * - * This is the minimal configuration that can be used to build SDL. - */ - -#define HAVE_STDARG_H 1 -#define HAVE_STDDEF_H 1 - -/* Most everything except Visual Studio 2008 and earlier has stdint.h now */ -#if defined(_MSC_VER) && (_MSC_VER < 1600) -/* Here are some reasonable defaults */ -typedef unsigned int size_t; -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef signed int int32_t; -typedef unsigned int uint32_t; -typedef signed long long int64_t; -typedef unsigned long long uint64_t; -typedef unsigned long uintptr_t; -#else -#define HAVE_STDINT_H 1 -#endif /* Visual Studio 2008 */ - -#ifdef __GNUC__ -#define HAVE_GCC_SYNC_LOCK_TEST_AND_SET 1 -#endif - -/* Enable the dummy audio driver (src/audio/dummy/\*.c) */ -#define SDL_AUDIO_DRIVER_DUMMY 1 - -/* Enable the stub joystick driver (src/joystick/dummy/\*.c) */ -#define SDL_JOYSTICK_DISABLED 1 - -/* Enable the stub haptic driver (src/haptic/dummy/\*.c) */ -#define SDL_HAPTIC_DISABLED 1 - -/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */ -#define SDL_LOADSO_DISABLED 1 - -/* Enable the stub thread support (src/thread/generic/\*.c) */ -#define SDL_THREADS_DISABLED 1 - -/* Enable the stub timer support (src/timer/dummy/\*.c) */ -#define SDL_TIMERS_DISABLED 1 - -/* Enable the dummy video driver (src/video/dummy/\*.c) */ -#define SDL_VIDEO_DRIVER_DUMMY 1 - -/* Enable the dummy filesystem driver (src/filesystem/dummy/\*.c) */ -#define SDL_FILESYSTEM_DUMMY 1 - -#endif /* _SDL_config_minimal_h */ diff --git a/lib/osx/include/SDL_config_pandora.h b/lib/osx/include/SDL_config_pandora.h deleted file mode 100644 index ac8b085..0000000 --- a/lib/osx/include/SDL_config_pandora.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_config_h -#define _SDL_config_h - -/* This is a set of defines to configure the SDL features */ - -/* General platform specific identifiers */ -#include "SDL_platform.h" - -#ifdef __LP64__ -#define SIZEOF_VOIDP 8 -#else -#define SIZEOF_VOIDP 4 -#endif - -#define SDL_BYTEORDER 1234 - -#define HAVE_ALLOCA_H 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_STDIO_H 1 -#define STDC_HEADERS 1 -#define HAVE_STDLIB_H 1 -#define HAVE_STDARG_H 1 -#define HAVE_MALLOC_H 1 -#define HAVE_MEMORY_H 1 -#define HAVE_STRING_H 1 -#define HAVE_STRINGS_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_CTYPE_H 1 -#define HAVE_MATH_H 1 -#define HAVE_ICONV_H 1 -#define HAVE_SIGNAL_H 1 -#define HAVE_MALLOC 1 -#define HAVE_CALLOC 1 -#define HAVE_REALLOC 1 -#define HAVE_FREE 1 -#define HAVE_ALLOCA 1 -#define HAVE_GETENV 1 -#define HAVE_SETENV 1 -#define HAVE_PUTENV 1 -#define HAVE_UNSETENV 1 -#define HAVE_QSORT 1 -#define HAVE_ABS 1 -#define HAVE_BCOPY 1 -#define HAVE_MEMSET 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_STRLEN 1 -#define HAVE_STRDUP 1 -#define HAVE_STRCHR 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -#define HAVE_STRTOL 1 -#define HAVE_STRTOUL 1 -#define HAVE_STRTOLL 1 -#define HAVE_STRTOULL 1 -#define HAVE_ATOI 1 -#define HAVE_ATOF 1 -#define HAVE_STRCMP 1 -#define HAVE_STRNCMP 1 -#define HAVE_STRCASECMP 1 -#define HAVE_STRNCASECMP 1 -#define HAVE_VSSCANF 1 -#define HAVE_VSNPRINTF 1 -#define HAVE_M_PI 1 -#define HAVE_CEIL 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COS 1 -#define HAVE_COSF 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_LOG 1 -#define HAVE_SCALBN 1 -#define HAVE_SIN 1 -#define HAVE_SINF 1 -#define HAVE_SQRT 1 -#define HAVE_SIGACTION 1 -#define HAVE_SETJMP 1 -#define HAVE_NANOSLEEP 1 - -#define SDL_AUDIO_DRIVER_DUMMY 1 -#define SDL_AUDIO_DRIVER_OSS 1 - -#define SDL_INPUT_LINUXEV 1 -#define SDL_INPUT_TSLIB 1 -#define SDL_JOYSTICK_LINUX 1 -#define SDL_HAPTIC_LINUX 1 - -#define SDL_LOADSO_DLOPEN 1 - -#define SDL_THREAD_PTHREAD 1 -#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP 1 - -#define SDL_TIMER_UNIX 1 -#define SDL_FILESYSTEM_UNIX 1 - -#define SDL_VIDEO_DRIVER_DUMMY 1 -#define SDL_VIDEO_DRIVER_X11 1 -#define SDL_VIDEO_DRIVER_PANDORA 1 -#define SDL_VIDEO_RENDER_OGL_ES 1 -#define SDL_VIDEO_OPENGL_ES 1 - -#endif /* _SDL_config_h */ diff --git a/lib/osx/include/SDL_config_psp.h b/lib/osx/include/SDL_config_psp.h deleted file mode 100644 index 2f9d023..0000000 --- a/lib/osx/include/SDL_config_psp.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_config_psp_h -#define _SDL_config_psp_h - -#include "SDL_platform.h" - - - -#ifdef __GNUC__ -#define HAVE_GCC_SYNC_LOCK_TEST_AND_SET 1 -#endif - -#define HAVE_GCC_ATOMICS 1 - -#define HAVE_ALLOCA_H 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_STDIO_H 1 -#define STDC_HEADERS 1 -#define HAVE_STRING_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_CTYPE_H 1 -#define HAVE_MATH_H 1 -#define HAVE_SIGNAL_H 1 - -/* C library functions */ -#define HAVE_MALLOC 1 -#define HAVE_CALLOC 1 -#define HAVE_REALLOC 1 -#define HAVE_FREE 1 -#define HAVE_ALLOCA 1 -#define HAVE_GETENV 1 -#define HAVE_SETENV 1 -#define HAVE_PUTENV 1 -#define HAVE_SETENV 1 -#define HAVE_UNSETENV 1 -#define HAVE_QSORT 1 -#define HAVE_ABS 1 -#define HAVE_BCOPY 1 -#define HAVE_MEMSET 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_MEMCMP 1 -#define HAVE_STRLEN 1 -#define HAVE_STRLCPY 1 -#define HAVE_STRLCAT 1 -#define HAVE_STRDUP 1 -#define HAVE_STRCHR 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -#define HAVE_STRTOL 1 -#define HAVE_STRTOUL 1 -#define HAVE_STRTOLL 1 -#define HAVE_STRTOULL 1 -#define HAVE_STRTOD 1 -#define HAVE_ATOI 1 -#define HAVE_ATOF 1 -#define HAVE_STRCMP 1 -#define HAVE_STRNCMP 1 -#define HAVE_STRCASECMP 1 -#define HAVE_STRNCASECMP 1 -#define HAVE_VSSCANF 1 -#define HAVE_VSNPRINTF 1 -#define HAVE_M_PI 1 -#define HAVE_ATAN 1 -#define HAVE_ATAN2 1 -#define HAVE_ACOS 1 -#define HAVE_ASIN 1 -#define HAVE_CEIL 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COS 1 -#define HAVE_COSF 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_LOG 1 -#define HAVE_POW 1 -#define HAVE_SCALBN 1 -#define HAVE_SIN 1 -#define HAVE_SINF 1 -#define HAVE_SQRT 1 -#define HAVE_SETJMP 1 -#define HAVE_NANOSLEEP 1 -/* #define HAVE_SYSCONF 1 */ -/* #define HAVE_SIGACTION 1 */ - - -/* PSP isn't that sophisticated */ -#define LACKS_SYS_MMAN_H 1 - -/* Enable the stub thread support (src/thread/psp/\*.c) */ -#define SDL_THREAD_PSP 1 - -/* Enable the stub timer support (src/timer/psp/\*.c) */ -#define SDL_TIMERS_PSP 1 - -/* Enable the stub joystick driver (src/joystick/psp/\*.c) */ -#define SDL_JOYSTICK_PSP 1 - -/* Enable the stub audio driver (src/audio/psp/\*.c) */ -#define SDL_AUDIO_DRIVER_PSP 1 - -/* PSP video dirver */ -#define SDL_VIDEO_DRIVER_PSP 1 - -/* PSP render dirver */ -#define SDL_VIDEO_RENDER_PSP 1 - -#define SDL_POWER_PSP 1 - -/* !!! FIXME: what does PSP do for filesystem stuff? */ -#define SDL_FILESYSTEM_DUMMY 1 - -/* PSP doesn't have haptic device (src/haptic/dummy/\*.c) */ -#define SDL_HAPTIC_DISABLED 1 - -/* PSP can't load shared object (src/loadso/dummy/\*.c) */ -#define SDL_LOADSO_DISABLED 1 - - -#endif /* _SDL_config_psp_h */ diff --git a/lib/osx/include/SDL_config_windows.h b/lib/osx/include/SDL_config_windows.h deleted file mode 100644 index 35eda46..0000000 --- a/lib/osx/include/SDL_config_windows.h +++ /dev/null @@ -1,210 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_config_windows_h -#define _SDL_config_windows_h - -#include "SDL_platform.h" - -/* This is a set of defines to configure the SDL features */ - -#if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) -#if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__) -#define HAVE_STDINT_H 1 -#elif defined(_MSC_VER) -typedef signed __int8 int8_t; -typedef unsigned __int8 uint8_t; -typedef signed __int16 int16_t; -typedef unsigned __int16 uint16_t; -typedef signed __int32 int32_t; -typedef unsigned __int32 uint32_t; -typedef signed __int64 int64_t; -typedef unsigned __int64 uint64_t; -#ifndef _UINTPTR_T_DEFINED -#ifdef _WIN64 -typedef unsigned __int64 uintptr_t; -#else -typedef unsigned int uintptr_t; -#endif -#define _UINTPTR_T_DEFINED -#endif -/* Older Visual C++ headers don't have the Win64-compatible typedefs... */ -#if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR))) -#define DWORD_PTR DWORD -#endif -#if ((_MSC_VER <= 1200) && (!defined(LONG_PTR))) -#define LONG_PTR LONG -#endif -#else /* !__GNUC__ && !_MSC_VER */ -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef signed int int32_t; -typedef unsigned int uint32_t; -typedef signed long long int64_t; -typedef unsigned long long uint64_t; -#ifndef _SIZE_T_DEFINED_ -#define _SIZE_T_DEFINED_ -typedef unsigned int size_t; -#endif -typedef unsigned int uintptr_t; -#endif /* __GNUC__ || _MSC_VER */ -#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ - -#ifdef _WIN64 -# define SIZEOF_VOIDP 8 -#else -# define SIZEOF_VOIDP 4 -#endif - -/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ -#ifdef HAVE_LIBC -/* Useful headers */ -#define HAVE_STDIO_H 1 -#define STDC_HEADERS 1 -#define HAVE_STRING_H 1 -#define HAVE_CTYPE_H 1 -#define HAVE_MATH_H 1 -#define HAVE_SIGNAL_H 1 - -/* C library functions */ -#define HAVE_MALLOC 1 -#define HAVE_CALLOC 1 -#define HAVE_REALLOC 1 -#define HAVE_FREE 1 -#define HAVE_ALLOCA 1 -#define HAVE_QSORT 1 -#define HAVE_ABS 1 -#define HAVE_MEMSET 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_MEMCMP 1 -#define HAVE_STRLEN 1 -#define HAVE__STRREV 1 -#define HAVE__STRUPR 1 -#define HAVE__STRLWR 1 -#define HAVE_STRCHR 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -#define HAVE__LTOA 1 -#define HAVE__ULTOA 1 -#define HAVE_STRTOL 1 -#define HAVE_STRTOUL 1 -#define HAVE_STRTOD 1 -#define HAVE_ATOI 1 -#define HAVE_ATOF 1 -#define HAVE_STRCMP 1 -#define HAVE_STRNCMP 1 -#define HAVE__STRICMP 1 -#define HAVE__STRNICMP 1 -#define HAVE_ATAN 1 -#define HAVE_ATAN2 1 -#define HAVE_ACOS 1 -#define HAVE_ASIN 1 -#define HAVE_CEIL 1 -#define HAVE_COS 1 -#define HAVE_COSF 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_LOG 1 -#define HAVE_POW 1 -#define HAVE_SIN 1 -#define HAVE_SINF 1 -#define HAVE_SQRT 1 -#if _MSC_VER >= 1800 -#define HAVE_STRTOLL 1 -#define HAVE_VSSCANF 1 -#define HAVE_COPYSIGN 1 -#define HAVE_SCALBN 1 -#endif -#if !defined(_MSC_VER) || defined(_USE_MATH_DEFINES) -#define HAVE_M_PI 1 -#endif -#else -#define HAVE_STDARG_H 1 -#define HAVE_STDDEF_H 1 -#endif - -/* Enable various audio drivers */ -#define SDL_AUDIO_DRIVER_DSOUND 1 -#define SDL_AUDIO_DRIVER_XAUDIO2 1 -#define SDL_AUDIO_DRIVER_WINMM 1 -#define SDL_AUDIO_DRIVER_DISK 1 -#define SDL_AUDIO_DRIVER_DUMMY 1 - -/* Enable various input drivers */ -#define SDL_JOYSTICK_DINPUT 1 -#define SDL_HAPTIC_DINPUT 1 - -/* Enable various shared object loading systems */ -#define SDL_LOADSO_WINDOWS 1 - -/* Enable various threading systems */ -#define SDL_THREAD_WINDOWS 1 - -/* Enable various timer systems */ -#define SDL_TIMER_WINDOWS 1 - -/* Enable various video drivers */ -#define SDL_VIDEO_DRIVER_DUMMY 1 -#define SDL_VIDEO_DRIVER_WINDOWS 1 - -#ifndef SDL_VIDEO_RENDER_D3D -#define SDL_VIDEO_RENDER_D3D 1 -#endif -#ifndef SDL_VIDEO_RENDER_D3D11 -#define SDL_VIDEO_RENDER_D3D11 0 -#endif - -/* Enable OpenGL support */ -#ifndef SDL_VIDEO_OPENGL -#define SDL_VIDEO_OPENGL 1 -#endif -#ifndef SDL_VIDEO_OPENGL_WGL -#define SDL_VIDEO_OPENGL_WGL 1 -#endif -#ifndef SDL_VIDEO_RENDER_OGL -#define SDL_VIDEO_RENDER_OGL 1 -#endif -#ifndef SDL_VIDEO_RENDER_OGL_ES2 -#define SDL_VIDEO_RENDER_OGL_ES2 1 -#endif -#ifndef SDL_VIDEO_OPENGL_ES2 -#define SDL_VIDEO_OPENGL_ES2 1 -#endif -#ifndef SDL_VIDEO_OPENGL_EGL -#define SDL_VIDEO_OPENGL_EGL 1 -#endif - - -/* Enable system power support */ -#define SDL_POWER_WINDOWS 1 - -/* Enable filesystem support */ -#define SDL_FILESYSTEM_WINDOWS 1 - -/* Enable assembly routines (Win64 doesn't have inline asm) */ -#ifndef _WIN64 -#define SDL_ASSEMBLY_ROUTINES 1 -#endif - -#endif /* _SDL_config_windows_h */ diff --git a/lib/osx/include/SDL_config_winrt.h b/lib/osx/include/SDL_config_winrt.h deleted file mode 100644 index 78b43ab..0000000 --- a/lib/osx/include/SDL_config_winrt.h +++ /dev/null @@ -1,190 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2012 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_config_windows_h -#define _SDL_config_windows_h - -#include "SDL_platform.h" - -/* This is a set of defines to configure the SDL features */ - -#if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) -#if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__) -#define HAVE_STDINT_H 1 -#elif defined(_MSC_VER) -typedef signed __int8 int8_t; -typedef unsigned __int8 uint8_t; -typedef signed __int16 int16_t; -typedef unsigned __int16 uint16_t; -typedef signed __int32 int32_t; -typedef unsigned __int32 uint32_t; -typedef signed __int64 int64_t; -typedef unsigned __int64 uint64_t; -#ifndef _UINTPTR_T_DEFINED -#ifdef _WIN64 -typedef unsigned __int64 uintptr_t; -#else -typedef unsigned int uintptr_t; -#endif -#define _UINTPTR_T_DEFINED -#endif -/* Older Visual C++ headers don't have the Win64-compatible typedefs... */ -#if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR))) -#define DWORD_PTR DWORD -#endif -#if ((_MSC_VER <= 1200) && (!defined(LONG_PTR))) -#define LONG_PTR LONG -#endif -#else /* !__GNUC__ && !_MSC_VER */ -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef signed int int32_t; -typedef unsigned int uint32_t; -typedef signed long long int64_t; -typedef unsigned long long uint64_t; -#ifndef _SIZE_T_DEFINED_ -#define _SIZE_T_DEFINED_ -typedef unsigned int size_t; -#endif -typedef unsigned int uintptr_t; -#endif /* __GNUC__ || _MSC_VER */ -#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ - -#ifdef _WIN64 -# define SIZEOF_VOIDP 8 -#else -# define SIZEOF_VOIDP 4 -#endif - -/* Useful headers */ -#define HAVE_LIBC 1 -#define HAVE_STDIO_H 1 -#define STDC_HEADERS 1 -#define HAVE_STRING_H 1 -#define HAVE_CTYPE_H 1 -#define HAVE_MATH_H 1 -#define HAVE_FLOAT_H 1 -#define HAVE_SIGNAL_H 1 - -/* C library functions */ -#define HAVE_MALLOC 1 -#define HAVE_CALLOC 1 -#define HAVE_REALLOC 1 -#define HAVE_FREE 1 -#define HAVE_ALLOCA 1 -#define HAVE_QSORT 1 -#define HAVE_ABS 1 -#define HAVE_MEMSET 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_MEMCMP 1 -#define HAVE_STRLEN 1 -#define HAVE__STRREV 1 -#define HAVE__STRUPR 1 -//#define HAVE__STRLWR 1 // TODO, WinRT: consider using _strlwr_s instead -#define HAVE_STRCHR 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -//#define HAVE_ITOA 1 // TODO, WinRT: consider using _itoa_s instead -//#define HAVE__LTOA 1 // TODO, WinRT: consider using _ltoa_s instead -//#define HAVE__ULTOA 1 // TODO, WinRT: consider using _ultoa_s instead -#define HAVE_STRTOL 1 -#define HAVE_STRTOUL 1 -//#define HAVE_STRTOLL 1 -#define HAVE_STRTOD 1 -#define HAVE_ATOI 1 -#define HAVE_ATOF 1 -#define HAVE_STRCMP 1 -#define HAVE_STRNCMP 1 -#define HAVE__STRICMP 1 -#define HAVE__STRNICMP 1 -#define HAVE_VSNPRINTF 1 -//#define HAVE_SSCANF 1 // TODO, WinRT: consider using sscanf_s instead -#define HAVE_M_PI 1 -#define HAVE_ATAN 1 -#define HAVE_ATAN2 1 -#define HAVE_CEIL 1 -#define HAVE__COPYSIGN 1 -#define HAVE_COS 1 -#define HAVE_COSF 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_LOG 1 -#define HAVE_POW 1 -//#define HAVE_SCALBN 1 -#define HAVE__SCALB 1 -#define HAVE_SIN 1 -#define HAVE_SINF 1 -#define HAVE_SQRT 1 -#define HAVE__FSEEKI64 1 - -/* Enable various audio drivers */ -#define SDL_AUDIO_DRIVER_XAUDIO2 1 -#define SDL_AUDIO_DRIVER_DISK 1 -#define SDL_AUDIO_DRIVER_DUMMY 1 - -/* Enable various input drivers */ -// TODO, WinRT: Get haptic support working -#define SDL_HAPTIC_DISABLED 1 - -#if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP -#define SDL_JOYSTICK_DISABLED 1 -#else -#define SDL_JOYSTICK_XINPUT 1 -#endif - -/* Enable various shared object loading systems */ -#define SDL_LOADSO_WINDOWS 1 - -/* Enable various threading systems */ -#define SDL_THREAD_STDCPP 1 - -/* Enable various timer systems */ -#define SDL_TIMER_WINDOWS 1 - -/* Enable various video drivers */ -#define SDL_VIDEO_DRIVER_WINRT 1 -#define SDL_VIDEO_DRIVER_DUMMY 1 - -/* Enable OpenGL ES 2.0 (via a modified ANGLE library) */ -#if WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP /* TODO, WinRT: try adding OpenGL ES 2 support for Windows Phone 8 */ -#define SDL_VIDEO_OPENGL_ES2 1 -#define SDL_VIDEO_OPENGL_EGL 1 -#endif - -/* Enable appropriate renderer(s) */ -#define SDL_VIDEO_RENDER_D3D11 1 - -#if SDL_VIDEO_OPENGL_ES2 -#define SDL_VIDEO_RENDER_OGL_ES2 1 -#endif - -/* Enable system power support */ -#define SDL_POWER_WINRT 1 - -/* Enable assembly routines (Win64 doesn't have inline asm) */ -#ifndef _WIN64 -#define SDL_ASSEMBLY_ROUTINES 1 -#endif - -#endif /* _SDL_config_windows_h */ diff --git a/lib/osx/include/SDL_config_wiz.h b/lib/osx/include/SDL_config_wiz.h deleted file mode 100644 index 7efc20b..0000000 --- a/lib/osx/include/SDL_config_wiz.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_config_h -#define _SDL_config_h - -/* This is a set of defines to configure the SDL features */ - -/* General platform specific identifiers */ -#include "SDL_platform.h" - -#define SDL_BYTEORDER 1234 - -#define HAVE_ALLOCA_H 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_STDIO_H 1 -#define STDC_HEADERS 1 -#define HAVE_STDLIB_H 1 -#define HAVE_STDARG_H 1 -#define HAVE_MALLOC_H 1 -#define HAVE_MEMORY_H 1 -#define HAVE_STRING_H 1 -#define HAVE_STRINGS_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_CTYPE_H 1 -#define HAVE_MATH_H 1 -#define HAVE_ICONV_H 1 -#define HAVE_SIGNAL_H 1 -#define HAVE_MALLOC 1 -#define HAVE_CALLOC 1 -#define HAVE_REALLOC 1 -#define HAVE_FREE 1 -#define HAVE_ALLOCA 1 -#define HAVE_GETENV 1 -#define HAVE_SETENV 1 -#define HAVE_PUTENV 1 -#define HAVE_UNSETENV 1 -#define HAVE_QSORT 1 -#define HAVE_ABS 1 -#define HAVE_BCOPY 1 -#define HAVE_MEMSET 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_STRLEN 1 -#define HAVE_STRDUP 1 -#define HAVE_STRCHR 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -#define HAVE_STRTOL 1 -#define HAVE_STRTOUL 1 -#define HAVE_STRTOLL 1 -#define HAVE_STRTOULL 1 -#define HAVE_ATOI 1 -#define HAVE_ATOF 1 -#define HAVE_STRCMP 1 -#define HAVE_STRNCMP 1 -#define HAVE_STRCASECMP 1 -#define HAVE_STRNCASECMP 1 -#define HAVE_VSSCANF 1 -#define HAVE_VSNPRINTF 1 -#define HAVE_M_PI 1 -#define HAVE_CEIL 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COS 1 -#define HAVE_COSF 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_LOG 1 -#define HAVE_SCALBN 1 -#define HAVE_SIN 1 -#define HAVE_SINF 1 -#define HAVE_SQRT 1 -#define HAVE_SIGACTION 1 -#define HAVE_SETJMP 1 -#define HAVE_NANOSLEEP 1 -#define HAVE_POW 1 - -#define SDL_CDROM_DISABLED 1 -#define SDL_AUDIO_DRIVER_DUMMY 1 -#define SDL_AUDIO_DRIVER_OSS 1 - -#define SDL_INPUT_LINUXEV 1 -#define SDL_INPUT_TSLIB 1 -#define SDL_JOYSTICK_LINUX 1 -#define SDL_HAPTIC_LINUX 1 - -#define SDL_LOADSO_DLOPEN 1 - -#define SDL_THREAD_PTHREAD 1 -#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP 1 - -#define SDL_TIMER_UNIX 1 - -#define SDL_VIDEO_DRIVER_DUMMY 1 -#define SDL_VIDEO_DRIVER_PANDORA 1 -#define SDL_VIDEO_RENDER_OGL_ES 1 -#define SDL_VIDEO_OPENGL_ES 1 - -#endif /* _SDL_config_h */ diff --git a/lib/osx/include/SDL_copying.h b/lib/osx/include/SDL_copying.h deleted file mode 100644 index 212da0e..0000000 --- a/lib/osx/include/SDL_copying.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ diff --git a/lib/osx/include/SDL_cpuinfo.h b/lib/osx/include/SDL_cpuinfo.h deleted file mode 100644 index d0ba47b..0000000 --- a/lib/osx/include/SDL_cpuinfo.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_cpuinfo.h - * - * CPU feature detection for SDL. - */ - -#ifndef _SDL_cpuinfo_h -#define _SDL_cpuinfo_h - -#include "SDL_stdinc.h" - -/* Need to do this here because intrin.h has C++ code in it */ -/* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */ -#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (defined(_M_IX86) || defined(_M_X64)) -#include <intrin.h> -#ifndef _WIN64 -#define __MMX__ -#define __3dNOW__ -#endif -#define __SSE__ -#define __SSE2__ -#elif defined(__MINGW64_VERSION_MAJOR) -#include <intrin.h> -#else -#ifdef __ALTIVEC__ -#if HAVE_ALTIVEC_H && !defined(__APPLE_ALTIVEC__) -#include <altivec.h> -#undef pixel -#endif -#endif -#ifdef __MMX__ -#include <mmintrin.h> -#endif -#ifdef __3dNOW__ -#include <mm3dnow.h> -#endif -#ifdef __SSE__ -#include <xmmintrin.h> -#endif -#ifdef __SSE2__ -#include <emmintrin.h> -#endif -#endif - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* This is a guess for the cacheline size used for padding. - * Most x86 processors have a 64 byte cache line. - * The 64-bit PowerPC processors have a 128 byte cache line. - * We'll use the larger value to be generally safe. - */ -#define SDL_CACHELINE_SIZE 128 - -/** - * This function returns the number of CPU cores available. - */ -extern DECLSPEC int SDLCALL SDL_GetCPUCount(void); - -/** - * This function returns the L1 cache line size of the CPU - * - * This is useful for determining multi-threaded structure padding - * or SIMD prefetch sizes. - */ -extern DECLSPEC int SDLCALL SDL_GetCPUCacheLineSize(void); - -/** - * This function returns true if the CPU has the RDTSC instruction. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasRDTSC(void); - -/** - * This function returns true if the CPU has AltiVec features. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void); - -/** - * This function returns true if the CPU has MMX features. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasMMX(void); - -/** - * This function returns true if the CPU has 3DNow! features. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_Has3DNow(void); - -/** - * This function returns true if the CPU has SSE features. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE(void); - -/** - * This function returns true if the CPU has SSE2 features. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE2(void); - -/** - * This function returns true if the CPU has SSE3 features. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE3(void); - -/** - * This function returns true if the CPU has SSE4.1 features. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE41(void); - -/** - * This function returns true if the CPU has SSE4.2 features. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE42(void); - -/** - * This function returns true if the CPU has AVX features. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX(void); - -/** - * This function returns true if the CPU has AVX2 features. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void); - -/** - * This function returns the amount of RAM configured in the system, in MB. - */ -extern DECLSPEC int SDLCALL SDL_GetSystemRAM(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_cpuinfo_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_egl.h b/lib/osx/include/SDL_egl.h deleted file mode 100644 index bea2a6c..0000000 --- a/lib/osx/include/SDL_egl.h +++ /dev/null @@ -1,1673 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_egl.h - * - * This is a simple file to encapsulate the EGL API headers. - */ -#ifndef _MSC_VER - -#include <EGL/egl.h> -#include <EGL/eglext.h> - -#else /* _MSC_VER */ - -/* EGL headers for Visual Studio */ - -#ifndef __khrplatform_h_ -#define __khrplatform_h_ - -/* -** Copyright (c) 2008-2009 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Khronos platform-specific types and definitions. -* -* $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $ -* -* Adopters may modify this file to suit their platform. Adopters are -* encouraged to submit platform specific modifications to the Khronos -* group so that they can be included in future versions of this file. -* Please submit changes by sending them to the public Khronos Bugzilla -* (http://khronos.org/bugzilla) by filing a bug against product -* "Khronos (general)" component "Registry". -* -* A predefined template which fills in some of the bug fields can be -* reached using http://tinyurl.com/khrplatform-h-bugreport, but you -* must create a Bugzilla login first. -* -* -* See the Implementer's Guidelines for information about where this file -* should be located on your system and for more details of its use: -* http://www.khronos.org/registry/implementers_guide.pdf -* -* This file should be included as -* #include <KHR/khrplatform.h> -* by Khronos client API header files that use its types and defines. -* -* The types in khrplatform.h should only be used to define API-specific types. -* -* Types defined in khrplatform.h: -* khronos_int8_t signed 8 bit -* khronos_uint8_t unsigned 8 bit -* khronos_int16_t signed 16 bit -* khronos_uint16_t unsigned 16 bit -* khronos_int32_t signed 32 bit -* khronos_uint32_t unsigned 32 bit -* khronos_int64_t signed 64 bit -* khronos_uint64_t unsigned 64 bit -* khronos_intptr_t signed same number of bits as a pointer -* khronos_uintptr_t unsigned same number of bits as a pointer -* khronos_ssize_t signed size -* khronos_usize_t unsigned size -* khronos_float_t signed 32 bit floating point -* khronos_time_ns_t unsigned 64 bit time in nanoseconds -* khronos_utime_nanoseconds_t unsigned time interval or absolute time in -* nanoseconds -* khronos_stime_nanoseconds_t signed time interval in nanoseconds -* khronos_boolean_enum_t enumerated boolean type. This should -* only be used as a base type when a client API's boolean type is -* an enum. Client APIs which use an integer or other type for -* booleans cannot use this as the base type for their boolean. -* -* Tokens defined in khrplatform.h: -* -* KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. -* -* KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. -* KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. -* -* Calling convention macros defined in this file: -* KHRONOS_APICALL -* KHRONOS_APIENTRY -* KHRONOS_APIATTRIBUTES -* -* These may be used in function prototypes as: -* -* KHRONOS_APICALL void KHRONOS_APIENTRY funcname( -* int arg1, -* int arg2) KHRONOS_APIATTRIBUTES; -*/ - -/*------------------------------------------------------------------------- -* Definition of KHRONOS_APICALL -*------------------------------------------------------------------------- -* This precedes the return type of the function in the function prototype. -*/ -#if defined(_WIN32) && !defined(__SCITECH_SNAP__) -# define KHRONOS_APICALL __declspec(dllimport) -#elif defined (__SYMBIAN32__) -# define KHRONOS_APICALL IMPORT_C -#else -# define KHRONOS_APICALL -#endif - -/*------------------------------------------------------------------------- -* Definition of KHRONOS_APIENTRY -*------------------------------------------------------------------------- -* This follows the return type of the function and precedes the function -* name in the function prototype. -*/ -#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) -/* Win32 but not WinCE */ -# define KHRONOS_APIENTRY __stdcall -#else -# define KHRONOS_APIENTRY -#endif - -/*------------------------------------------------------------------------- -* Definition of KHRONOS_APIATTRIBUTES -*------------------------------------------------------------------------- -* This follows the closing parenthesis of the function prototype arguments. -*/ -#if defined (__ARMCC_2__) -#define KHRONOS_APIATTRIBUTES __softfp -#else -#define KHRONOS_APIATTRIBUTES -#endif - -/*------------------------------------------------------------------------- -* basic type definitions -*-----------------------------------------------------------------------*/ -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) - - -/* -* Using <stdint.h> -*/ -#include <stdint.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__VMS ) || defined(__sgi) - -/* -* Using <inttypes.h> -*/ -#include <inttypes.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) - -/* -* Win32 -*/ -typedef __int32 khronos_int32_t; -typedef unsigned __int32 khronos_uint32_t; -typedef __int64 khronos_int64_t; -typedef unsigned __int64 khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__sun__) || defined(__digital__) - -/* -* Sun or Digital -*/ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#if defined(__arch64__) || defined(_LP64) -typedef long int khronos_int64_t; -typedef unsigned long int khronos_uint64_t; -#else -typedef long long int khronos_int64_t; -typedef unsigned long long int khronos_uint64_t; -#endif /* __arch64__ */ -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif 0 - -/* -* Hypothetical platform with no float or int64 support -*/ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#define KHRONOS_SUPPORT_INT64 0 -#define KHRONOS_SUPPORT_FLOAT 0 - -#else - -/* -* Generic fallback -*/ -#include <stdint.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#endif - - -/* -* Types that are (so far) the same on all platforms -*/ -typedef signed char khronos_int8_t; -typedef unsigned char khronos_uint8_t; -typedef signed short int khronos_int16_t; -typedef unsigned short int khronos_uint16_t; - -/* -* Types that differ between LLP64 and LP64 architectures - in LLP64, -* pointers are 64 bits, but 'long' is still 32 bits. Win64 appears -* to be the only LLP64 architecture in current use. -*/ -#ifdef _WIN64 -typedef signed long long int khronos_intptr_t; -typedef unsigned long long int khronos_uintptr_t; -typedef signed long long int khronos_ssize_t; -typedef unsigned long long int khronos_usize_t; -#else -typedef signed long int khronos_intptr_t; -typedef unsigned long int khronos_uintptr_t; -typedef signed long int khronos_ssize_t; -typedef unsigned long int khronos_usize_t; -#endif - -#if KHRONOS_SUPPORT_FLOAT -/* -* Float type -*/ -typedef float khronos_float_t; -#endif - -#if KHRONOS_SUPPORT_INT64 -/* Time types -* -* These types can be used to represent a time interval in nanoseconds or -* an absolute Unadjusted System Time. Unadjusted System Time is the number -* of nanoseconds since some arbitrary system event (e.g. since the last -* time the system booted). The Unadjusted System Time is an unsigned -* 64 bit value that wraps back to 0 every 584 years. Time intervals -* may be either signed or unsigned. -*/ -typedef khronos_uint64_t khronos_utime_nanoseconds_t; -typedef khronos_int64_t khronos_stime_nanoseconds_t; -#endif - -/* -* Dummy value used to pad enum types to 32 bits. -*/ -#ifndef KHRONOS_MAX_ENUM -#define KHRONOS_MAX_ENUM 0x7FFFFFFF -#endif - -/* -* Enumerated boolean type -* -* Values other than zero should be considered to be true. Therefore -* comparisons should not be made against KHRONOS_TRUE. -*/ -typedef enum { - KHRONOS_FALSE = 0, - KHRONOS_TRUE = 1, - KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM -} khronos_boolean_enum_t; - -#endif /* __khrplatform_h_ */ - - -#ifndef __eglplatform_h_ -#define __eglplatform_h_ - -/* -** Copyright (c) 2007-2009 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Platform-specific types and definitions for egl.h -* $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $ -* -* Adopters may modify khrplatform.h and this file to suit their platform. -* You are encouraged to submit all modifications to the Khronos group so that -* they can be included in future versions of this file. Please submit changes -* by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) -* by filing a bug against product "EGL" component "Registry". -*/ - -/*#include <KHR/khrplatform.h>*/ - -/* Macros used in EGL function prototype declarations. -* -* EGL functions should be prototyped as: -* -* EGLAPI return-type EGLAPIENTRY eglFunction(arguments); -* typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); -* -* KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h -*/ - -#ifndef EGLAPI -#define EGLAPI KHRONOS_APICALL -#endif - -#ifndef EGLAPIENTRY -#define EGLAPIENTRY KHRONOS_APIENTRY -#endif -#define EGLAPIENTRYP EGLAPIENTRY* - -/* The types NativeDisplayType, NativeWindowType, and NativePixmapType -* are aliases of window-system-dependent types, such as X Display * or -* Windows Device Context. They must be defined in platform-specific -* code below. The EGL-prefixed versions of Native*Type are the same -* types, renamed in EGL 1.3 so all types in the API start with "EGL". -* -* Khronos STRONGLY RECOMMENDS that you use the default definitions -* provided below, since these changes affect both binary and source -* portability of applications using EGL running on different EGL -* implementations. -*/ - -#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN 1 -#endif -#include <windows.h> - -#if __WINRT__ -#include <Unknwn.h> -typedef IUnknown * EGLNativeWindowType; -typedef IUnknown * EGLNativePixmapType; -typedef IUnknown * EGLNativeDisplayType; -#else -typedef HDC EGLNativeDisplayType; -typedef HBITMAP EGLNativePixmapType; -typedef HWND EGLNativeWindowType; -#endif - -#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ - -typedef int EGLNativeDisplayType; -typedef void *EGLNativeWindowType; -typedef void *EGLNativePixmapType; - -#elif defined(WL_EGL_PLATFORM) - -typedef struct wl_display *EGLNativeDisplayType; -typedef struct wl_egl_pixmap *EGLNativePixmapType; -typedef struct wl_egl_window *EGLNativeWindowType; - -#elif defined(__GBM__) - -typedef struct gbm_device *EGLNativeDisplayType; -typedef struct gbm_bo *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(__ANDROID__) /* Android */ - -struct ANativeWindow; -struct egl_native_pixmap_t; - -typedef struct ANativeWindow *EGLNativeWindowType; -typedef struct egl_native_pixmap_t *EGLNativePixmapType; -typedef void *EGLNativeDisplayType; - -#elif defined(MIR_EGL_PLATFORM) - -#include <mir_toolkit/mir_client_library.h> -typedef MirEGLNativeDisplayType EGLNativeDisplayType; -typedef void *EGLNativePixmapType; -typedef MirEGLNativeWindowType EGLNativeWindowType; - -#elif defined(__unix__) - -#ifdef MESA_EGL_NO_X11_HEADERS - -typedef void *EGLNativeDisplayType; -typedef khronos_uintptr_t EGLNativePixmapType; -typedef khronos_uintptr_t EGLNativeWindowType; - -#else - -/* X11 (tentative) */ -#include <X11/Xlib.h> -#include <X11/Xutil.h> - -typedef Display *EGLNativeDisplayType; -typedef Pixmap EGLNativePixmapType; -typedef Window EGLNativeWindowType; - -#endif /* MESA_EGL_NO_X11_HEADERS */ - -#else -#error "Platform not recognized" -#endif - -/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ -typedef EGLNativeDisplayType NativeDisplayType; -typedef EGLNativePixmapType NativePixmapType; -typedef EGLNativeWindowType NativeWindowType; - - -/* Define EGLint. This must be a signed integral type large enough to contain -* all legal attribute names and values passed into and out of EGL, whether -* their type is boolean, bitmask, enumerant (symbolic constant), integer, -* handle, or other. While in general a 32-bit integer will suffice, if -* handles are 64 bit types, then EGLint should be defined as a signed 64-bit -* integer type. -*/ -typedef khronos_int32_t EGLint; - -#endif /* __eglplatform_h */ - -#ifndef __egl_h_ -#define __egl_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2015 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.opengl.org/registry/ -** -** Khronos $Revision: 31566 $ on $Date: 2015-06-23 08:48:48 -0700 (Tue, 23 Jun 2015) $ -*/ - -/*#include <EGL/eglplatform.h>*/ - -/* Generated on date 20150623 */ - -/* Generated C header for: - * API: egl - * Versions considered: .* - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef EGL_VERSION_1_0 -#define EGL_VERSION_1_0 1 -typedef unsigned int EGLBoolean; -typedef void *EGLDisplay; -typedef void *EGLConfig; -typedef void *EGLSurface; -typedef void *EGLContext; -typedef void (*__eglMustCastToProperFunctionPointerType)(void); -#define EGL_ALPHA_SIZE 0x3021 -#define EGL_BAD_ACCESS 0x3002 -#define EGL_BAD_ALLOC 0x3003 -#define EGL_BAD_ATTRIBUTE 0x3004 -#define EGL_BAD_CONFIG 0x3005 -#define EGL_BAD_CONTEXT 0x3006 -#define EGL_BAD_CURRENT_SURFACE 0x3007 -#define EGL_BAD_DISPLAY 0x3008 -#define EGL_BAD_MATCH 0x3009 -#define EGL_BAD_NATIVE_PIXMAP 0x300A -#define EGL_BAD_NATIVE_WINDOW 0x300B -#define EGL_BAD_PARAMETER 0x300C -#define EGL_BAD_SURFACE 0x300D -#define EGL_BLUE_SIZE 0x3022 -#define EGL_BUFFER_SIZE 0x3020 -#define EGL_CONFIG_CAVEAT 0x3027 -#define EGL_CONFIG_ID 0x3028 -#define EGL_CORE_NATIVE_ENGINE 0x305B -#define EGL_DEPTH_SIZE 0x3025 -#define EGL_DONT_CARE ((EGLint)-1) -#define EGL_DRAW 0x3059 -#define EGL_EXTENSIONS 0x3055 -#define EGL_FALSE 0 -#define EGL_GREEN_SIZE 0x3023 -#define EGL_HEIGHT 0x3056 -#define EGL_LARGEST_PBUFFER 0x3058 -#define EGL_LEVEL 0x3029 -#define EGL_MAX_PBUFFER_HEIGHT 0x302A -#define EGL_MAX_PBUFFER_PIXELS 0x302B -#define EGL_MAX_PBUFFER_WIDTH 0x302C -#define EGL_NATIVE_RENDERABLE 0x302D -#define EGL_NATIVE_VISUAL_ID 0x302E -#define EGL_NATIVE_VISUAL_TYPE 0x302F -#define EGL_NONE 0x3038 -#define EGL_NON_CONFORMANT_CONFIG 0x3051 -#define EGL_NOT_INITIALIZED 0x3001 -#define EGL_NO_CONTEXT ((EGLContext)0) -#define EGL_NO_DISPLAY ((EGLDisplay)0) -#define EGL_NO_SURFACE ((EGLSurface)0) -#define EGL_PBUFFER_BIT 0x0001 -#define EGL_PIXMAP_BIT 0x0002 -#define EGL_READ 0x305A -#define EGL_RED_SIZE 0x3024 -#define EGL_SAMPLES 0x3031 -#define EGL_SAMPLE_BUFFERS 0x3032 -#define EGL_SLOW_CONFIG 0x3050 -#define EGL_STENCIL_SIZE 0x3026 -#define EGL_SUCCESS 0x3000 -#define EGL_SURFACE_TYPE 0x3033 -#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 -#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 -#define EGL_TRANSPARENT_RED_VALUE 0x3037 -#define EGL_TRANSPARENT_RGB 0x3052 -#define EGL_TRANSPARENT_TYPE 0x3034 -#define EGL_TRUE 1 -#define EGL_VENDOR 0x3053 -#define EGL_VERSION 0x3054 -#define EGL_WIDTH 0x3057 -#define EGL_WINDOW_BIT 0x0004 -EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); -EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); -EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface); -EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); -EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void); -EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw); -EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id); -EGLAPI EGLint EGLAPIENTRY eglGetError (void); -EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname); -EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor); -EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); -EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface); -EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine); -#endif /* EGL_VERSION_1_0 */ - -#ifndef EGL_VERSION_1_1 -#define EGL_VERSION_1_1 1 -#define EGL_BACK_BUFFER 0x3084 -#define EGL_BIND_TO_TEXTURE_RGB 0x3039 -#define EGL_BIND_TO_TEXTURE_RGBA 0x303A -#define EGL_CONTEXT_LOST 0x300E -#define EGL_MIN_SWAP_INTERVAL 0x303B -#define EGL_MAX_SWAP_INTERVAL 0x303C -#define EGL_MIPMAP_TEXTURE 0x3082 -#define EGL_MIPMAP_LEVEL 0x3083 -#define EGL_NO_TEXTURE 0x305C -#define EGL_TEXTURE_2D 0x305F -#define EGL_TEXTURE_FORMAT 0x3080 -#define EGL_TEXTURE_RGB 0x305D -#define EGL_TEXTURE_RGBA 0x305E -#define EGL_TEXTURE_TARGET 0x3081 -EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); -EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); -EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); -EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval); -#endif /* EGL_VERSION_1_1 */ - -#ifndef EGL_VERSION_1_2 -#define EGL_VERSION_1_2 1 -typedef unsigned int EGLenum; -typedef void *EGLClientBuffer; -#define EGL_ALPHA_FORMAT 0x3088 -#define EGL_ALPHA_FORMAT_NONPRE 0x308B -#define EGL_ALPHA_FORMAT_PRE 0x308C -#define EGL_ALPHA_MASK_SIZE 0x303E -#define EGL_BUFFER_PRESERVED 0x3094 -#define EGL_BUFFER_DESTROYED 0x3095 -#define EGL_CLIENT_APIS 0x308D -#define EGL_COLORSPACE 0x3087 -#define EGL_COLORSPACE_sRGB 0x3089 -#define EGL_COLORSPACE_LINEAR 0x308A -#define EGL_COLOR_BUFFER_TYPE 0x303F -#define EGL_CONTEXT_CLIENT_TYPE 0x3097 -#define EGL_DISPLAY_SCALING 10000 -#define EGL_HORIZONTAL_RESOLUTION 0x3090 -#define EGL_LUMINANCE_BUFFER 0x308F -#define EGL_LUMINANCE_SIZE 0x303D -#define EGL_OPENGL_ES_BIT 0x0001 -#define EGL_OPENVG_BIT 0x0002 -#define EGL_OPENGL_ES_API 0x30A0 -#define EGL_OPENVG_API 0x30A1 -#define EGL_OPENVG_IMAGE 0x3096 -#define EGL_PIXEL_ASPECT_RATIO 0x3092 -#define EGL_RENDERABLE_TYPE 0x3040 -#define EGL_RENDER_BUFFER 0x3086 -#define EGL_RGB_BUFFER 0x308E -#define EGL_SINGLE_BUFFER 0x3085 -#define EGL_SWAP_BEHAVIOR 0x3093 -#define EGL_UNKNOWN ((EGLint)-1) -#define EGL_VERTICAL_RESOLUTION 0x3091 -EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api); -EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void); -#endif /* EGL_VERSION_1_2 */ - -#ifndef EGL_VERSION_1_3 -#define EGL_VERSION_1_3 1 -#define EGL_CONFORMANT 0x3042 -#define EGL_CONTEXT_CLIENT_VERSION 0x3098 -#define EGL_MATCH_NATIVE_PIXMAP 0x3041 -#define EGL_OPENGL_ES2_BIT 0x0004 -#define EGL_VG_ALPHA_FORMAT 0x3088 -#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B -#define EGL_VG_ALPHA_FORMAT_PRE 0x308C -#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 -#define EGL_VG_COLORSPACE 0x3087 -#define EGL_VG_COLORSPACE_sRGB 0x3089 -#define EGL_VG_COLORSPACE_LINEAR 0x308A -#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 -#endif /* EGL_VERSION_1_3 */ - -#ifndef EGL_VERSION_1_4 -#define EGL_VERSION_1_4 1 -#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) -#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 -#define EGL_MULTISAMPLE_RESOLVE 0x3099 -#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A -#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B -#define EGL_OPENGL_API 0x30A2 -#define EGL_OPENGL_BIT 0x0008 -#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 -EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void); -#endif /* EGL_VERSION_1_4 */ - -#ifndef EGL_VERSION_1_5 -#define EGL_VERSION_1_5 1 -typedef void *EGLSync; -typedef intptr_t EGLAttrib; -typedef khronos_utime_nanoseconds_t EGLTime; -typedef void *EGLImage; -#define EGL_CONTEXT_MAJOR_VERSION 0x3098 -#define EGL_CONTEXT_MINOR_VERSION 0x30FB -#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD -#define EGL_NO_RESET_NOTIFICATION 0x31BE -#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF -#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001 -#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0 -#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1 -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 -#define EGL_OPENGL_ES3_BIT 0x00000040 -#define EGL_CL_EVENT_HANDLE 0x309C -#define EGL_SYNC_CL_EVENT 0x30FE -#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 -#define EGL_SYNC_TYPE 0x30F7 -#define EGL_SYNC_STATUS 0x30F1 -#define EGL_SYNC_CONDITION 0x30F8 -#define EGL_SIGNALED 0x30F2 -#define EGL_UNSIGNALED 0x30F3 -#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001 -#define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull -#define EGL_TIMEOUT_EXPIRED 0x30F5 -#define EGL_CONDITION_SATISFIED 0x30F6 -#define EGL_NO_SYNC ((EGLSync)0) -#define EGL_SYNC_FENCE 0x30F9 -#define EGL_GL_COLORSPACE 0x309D -#define EGL_GL_COLORSPACE_SRGB 0x3089 -#define EGL_GL_COLORSPACE_LINEAR 0x308A -#define EGL_GL_RENDERBUFFER 0x30B9 -#define EGL_GL_TEXTURE_2D 0x30B1 -#define EGL_GL_TEXTURE_LEVEL 0x30BC -#define EGL_GL_TEXTURE_3D 0x30B2 -#define EGL_GL_TEXTURE_ZOFFSET 0x30BD -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 -#define EGL_IMAGE_PRESERVED 0x30D2 -#define EGL_NO_IMAGE ((EGLImage)0) -EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync); -EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value); -EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image); -EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags); -#endif /* EGL_VERSION_1_5 */ - -#ifdef __cplusplus -} -#endif - -#endif /* __egl_h_ */ - - - -#ifndef __eglext_h_ -#define __eglext_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2015 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.opengl.org/registry/ -** -** Khronos $Revision: 31566 $ on $Date: 2015-06-23 08:48:48 -0700 (Tue, 23 Jun 2015) $ -*/ - -/*#include <EGL/eglplatform.h>*/ - -#define EGL_EGLEXT_VERSION 20150623 - -/* Generated C header for: - * API: egl - * Versions considered: .* - * Versions emitted: _nomatch_^ - * Default extensions included: egl - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef EGL_KHR_cl_event -#define EGL_KHR_cl_event 1 -#define EGL_CL_EVENT_HANDLE_KHR 0x309C -#define EGL_SYNC_CL_EVENT_KHR 0x30FE -#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF -#endif /* EGL_KHR_cl_event */ - -#ifndef EGL_KHR_cl_event2 -#define EGL_KHR_cl_event2 1 -typedef void *EGLSyncKHR; -typedef intptr_t EGLAttribKHR; -typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); -#endif -#endif /* EGL_KHR_cl_event2 */ - -#ifndef EGL_KHR_client_get_all_proc_addresses -#define EGL_KHR_client_get_all_proc_addresses 1 -#endif /* EGL_KHR_client_get_all_proc_addresses */ - -#ifndef EGL_KHR_config_attribs -#define EGL_KHR_config_attribs 1 -#define EGL_CONFORMANT_KHR 0x3042 -#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 -#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 -#endif /* EGL_KHR_config_attribs */ - -#ifndef EGL_KHR_create_context -#define EGL_KHR_create_context 1 -#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 -#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB -#define EGL_CONTEXT_FLAGS_KHR 0x30FC -#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD -#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE -#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF -#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 -#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 -#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 -#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 -#define EGL_OPENGL_ES3_BIT_KHR 0x00000040 -#endif /* EGL_KHR_create_context */ - -#ifndef EGL_KHR_create_context_no_error -#define EGL_KHR_create_context_no_error 1 -#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3 -#endif /* EGL_KHR_create_context_no_error */ - -#ifndef EGL_KHR_fence_sync -#define EGL_KHR_fence_sync 1 -typedef khronos_utime_nanoseconds_t EGLTimeKHR; -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 -#define EGL_SYNC_CONDITION_KHR 0x30F8 -#define EGL_SYNC_FENCE_KHR 0x30F9 -typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); -typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync); -EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_fence_sync */ - -#ifndef EGL_KHR_get_all_proc_addresses -#define EGL_KHR_get_all_proc_addresses 1 -#endif /* EGL_KHR_get_all_proc_addresses */ - -#ifndef EGL_KHR_gl_colorspace -#define EGL_KHR_gl_colorspace 1 -#define EGL_GL_COLORSPACE_KHR 0x309D -#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089 -#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A -#endif /* EGL_KHR_gl_colorspace */ - -#ifndef EGL_KHR_gl_renderbuffer_image -#define EGL_KHR_gl_renderbuffer_image 1 -#define EGL_GL_RENDERBUFFER_KHR 0x30B9 -#endif /* EGL_KHR_gl_renderbuffer_image */ - -#ifndef EGL_KHR_gl_texture_2D_image -#define EGL_KHR_gl_texture_2D_image 1 -#define EGL_GL_TEXTURE_2D_KHR 0x30B1 -#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC -#endif /* EGL_KHR_gl_texture_2D_image */ - -#ifndef EGL_KHR_gl_texture_3D_image -#define EGL_KHR_gl_texture_3D_image 1 -#define EGL_GL_TEXTURE_3D_KHR 0x30B2 -#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD -#endif /* EGL_KHR_gl_texture_3D_image */ - -#ifndef EGL_KHR_gl_texture_cubemap_image -#define EGL_KHR_gl_texture_cubemap_image 1 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 -#endif /* EGL_KHR_gl_texture_cubemap_image */ - -#ifndef EGL_KHR_image -#define EGL_KHR_image 1 -typedef void *EGLImageKHR; -#define EGL_NATIVE_PIXMAP_KHR 0x30B0 -#define EGL_NO_IMAGE_KHR ((EGLImageKHR)0) -typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image); -#endif -#endif /* EGL_KHR_image */ - -#ifndef EGL_KHR_image_base -#define EGL_KHR_image_base 1 -#define EGL_IMAGE_PRESERVED_KHR 0x30D2 -#endif /* EGL_KHR_image_base */ - -#ifndef EGL_KHR_image_pixmap -#define EGL_KHR_image_pixmap 1 -#endif /* EGL_KHR_image_pixmap */ - -#ifndef EGL_KHR_lock_surface -#define EGL_KHR_lock_surface 1 -#define EGL_READ_SURFACE_BIT_KHR 0x0001 -#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 -#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 -#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 -#define EGL_MATCH_FORMAT_KHR 0x3043 -#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 -#define EGL_FORMAT_RGB_565_KHR 0x30C1 -#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 -#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 -#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 -#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 -#define EGL_BITMAP_POINTER_KHR 0x30C6 -#define EGL_BITMAP_PITCH_KHR 0x30C7 -#define EGL_BITMAP_ORIGIN_KHR 0x30C8 -#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 -#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA -#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB -#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC -#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD -#define EGL_LOWER_LEFT_KHR 0x30CE -#define EGL_UPPER_LEFT_KHR 0x30CF -typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface); -#endif -#endif /* EGL_KHR_lock_surface */ - -#ifndef EGL_KHR_lock_surface2 -#define EGL_KHR_lock_surface2 1 -#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 -#endif /* EGL_KHR_lock_surface2 */ - -#ifndef EGL_KHR_lock_surface3 -#define EGL_KHR_lock_surface3 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); -#endif -#endif /* EGL_KHR_lock_surface3 */ - -#ifndef EGL_KHR_partial_update -#define EGL_KHR_partial_update 1 -#define EGL_BUFFER_AGE_KHR 0x313D -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#endif -#endif /* EGL_KHR_partial_update */ - -#ifndef EGL_KHR_platform_android -#define EGL_KHR_platform_android 1 -#define EGL_PLATFORM_ANDROID_KHR 0x3141 -#endif /* EGL_KHR_platform_android */ - -#ifndef EGL_KHR_platform_gbm -#define EGL_KHR_platform_gbm 1 -#define EGL_PLATFORM_GBM_KHR 0x31D7 -#endif /* EGL_KHR_platform_gbm */ - -#ifndef EGL_KHR_platform_wayland -#define EGL_KHR_platform_wayland 1 -#define EGL_PLATFORM_WAYLAND_KHR 0x31D8 -#endif /* EGL_KHR_platform_wayland */ - -#ifndef EGL_KHR_platform_x11 -#define EGL_KHR_platform_x11 1 -#define EGL_PLATFORM_X11_KHR 0x31D5 -#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6 -#endif /* EGL_KHR_platform_x11 */ - -#ifndef EGL_KHR_reusable_sync -#define EGL_KHR_reusable_sync 1 -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_SYNC_STATUS_KHR 0x30F1 -#define EGL_SIGNALED_KHR 0x30F2 -#define EGL_UNSIGNALED_KHR 0x30F3 -#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 -#define EGL_CONDITION_SATISFIED_KHR 0x30F6 -#define EGL_SYNC_TYPE_KHR 0x30F7 -#define EGL_SYNC_REUSABLE_KHR 0x30FA -#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 -#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull -#define EGL_NO_SYNC_KHR ((EGLSyncKHR)0) -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_reusable_sync */ - -#ifndef EGL_KHR_stream -#define EGL_KHR_stream 1 -typedef void *EGLStreamKHR; -typedef khronos_uint64_t EGLuint64KHR; -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_NO_STREAM_KHR ((EGLStreamKHR)0) -#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 -#define EGL_PRODUCER_FRAME_KHR 0x3212 -#define EGL_CONSUMER_FRAME_KHR 0x3213 -#define EGL_STREAM_STATE_KHR 0x3214 -#define EGL_STREAM_STATE_CREATED_KHR 0x3215 -#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 -#define EGL_STREAM_STATE_EMPTY_KHR 0x3217 -#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 -#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 -#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A -#define EGL_BAD_STREAM_KHR 0x321B -#define EGL_BAD_STATE_KHR 0x321C -typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_stream */ - -#ifndef EGL_KHR_stream_consumer_gltexture -#define EGL_KHR_stream_consumer_gltexture 1 -#ifdef EGL_KHR_stream -#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_consumer_gltexture */ - -#ifndef EGL_KHR_stream_cross_process_fd -#define EGL_KHR_stream_cross_process_fd 1 -typedef int EGLNativeFileDescriptorKHR; -#ifdef EGL_KHR_stream -#define EGL_NO_FILE_DESCRIPTOR_KHR ((EGLNativeFileDescriptorKHR)(-1)) -typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_cross_process_fd */ - -#ifndef EGL_KHR_stream_fifo -#define EGL_KHR_stream_fifo 1 -#ifdef EGL_KHR_stream -#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC -#define EGL_STREAM_TIME_NOW_KHR 0x31FD -#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE -#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_fifo */ - -#ifndef EGL_KHR_stream_producer_aldatalocator -#define EGL_KHR_stream_producer_aldatalocator 1 -#ifdef EGL_KHR_stream -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_producer_aldatalocator */ - -#ifndef EGL_KHR_stream_producer_eglsurface -#define EGL_KHR_stream_producer_eglsurface 1 -#ifdef EGL_KHR_stream -#define EGL_STREAM_BIT_KHR 0x0800 -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_producer_eglsurface */ - -#ifndef EGL_KHR_surfaceless_context -#define EGL_KHR_surfaceless_context 1 -#endif /* EGL_KHR_surfaceless_context */ - -#ifndef EGL_KHR_swap_buffers_with_damage -#define EGL_KHR_swap_buffers_with_damage 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#endif -#endif /* EGL_KHR_swap_buffers_with_damage */ - -#ifndef EGL_KHR_vg_parent_image -#define EGL_KHR_vg_parent_image 1 -#define EGL_VG_PARENT_IMAGE_KHR 0x30BA -#endif /* EGL_KHR_vg_parent_image */ - -#ifndef EGL_KHR_wait_sync -#define EGL_KHR_wait_sync 1 -typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); -#endif -#endif /* EGL_KHR_wait_sync */ - -#ifndef EGL_ANDROID_blob_cache -#define EGL_ANDROID_blob_cache 1 -typedef khronos_ssize_t EGLsizeiANDROID; -typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); -typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); -typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); -#endif -#endif /* EGL_ANDROID_blob_cache */ - -#ifndef EGL_ANDROID_framebuffer_target -#define EGL_ANDROID_framebuffer_target 1 -#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 -#endif /* EGL_ANDROID_framebuffer_target */ - -#ifndef EGL_ANDROID_image_native_buffer -#define EGL_ANDROID_image_native_buffer 1 -#define EGL_NATIVE_BUFFER_ANDROID 0x3140 -#endif /* EGL_ANDROID_image_native_buffer */ - -#ifndef EGL_ANDROID_native_fence_sync -#define EGL_ANDROID_native_fence_sync 1 -#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144 -#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145 -#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146 -#define EGL_NO_NATIVE_FENCE_FD_ANDROID -1 -typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync); -#endif -#endif /* EGL_ANDROID_native_fence_sync */ - -#ifndef EGL_ANDROID_recordable -#define EGL_ANDROID_recordable 1 -#define EGL_RECORDABLE_ANDROID 0x3142 -#endif /* EGL_ANDROID_recordable */ - -#ifndef EGL_ANGLE_d3d_share_handle_client_buffer -#define EGL_ANGLE_d3d_share_handle_client_buffer 1 -#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 -#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ - -#ifndef EGL_ANGLE_device_d3d -#define EGL_ANGLE_device_d3d 1 -#define EGL_D3D9_DEVICE_ANGLE 0x33A0 -#define EGL_D3D11_DEVICE_ANGLE 0x33A1 -#endif /* EGL_ANGLE_device_d3d */ - -#ifndef EGL_ANGLE_query_surface_pointer -#define EGL_ANGLE_query_surface_pointer 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); -#endif -#endif /* EGL_ANGLE_query_surface_pointer */ - -#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle -#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 -#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ - -#ifndef EGL_ANGLE_window_fixed_size -#define EGL_ANGLE_window_fixed_size 1 -#define EGL_FIXED_SIZE_ANGLE 0x3201 -#endif /* EGL_ANGLE_window_fixed_size */ - -#ifndef EGL_ARM_pixmap_multisample_discard -#define EGL_ARM_pixmap_multisample_discard 1 -#define EGL_DISCARD_SAMPLES_ARM 0x3286 -#endif /* EGL_ARM_pixmap_multisample_discard */ - -#ifndef EGL_EXT_buffer_age -#define EGL_EXT_buffer_age 1 -#define EGL_BUFFER_AGE_EXT 0x313D -#endif /* EGL_EXT_buffer_age */ - -#ifndef EGL_EXT_client_extensions -#define EGL_EXT_client_extensions 1 -#endif /* EGL_EXT_client_extensions */ - -#ifndef EGL_EXT_create_context_robustness -#define EGL_EXT_create_context_robustness 1 -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 -#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE -#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF -#endif /* EGL_EXT_create_context_robustness */ - -#ifndef EGL_EXT_device_base -#define EGL_EXT_device_base 1 -typedef void *EGLDeviceEXT; -#define EGL_NO_DEVICE_EXT ((EGLDeviceEXT)(0)) -#define EGL_BAD_DEVICE_EXT 0x322B -#define EGL_DEVICE_EXT 0x322C -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); -EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -#endif -#endif /* EGL_EXT_device_base */ - -#ifndef EGL_EXT_device_drm -#define EGL_EXT_device_drm 1 -#define EGL_DRM_DEVICE_FILE_EXT 0x3233 -#endif /* EGL_EXT_device_drm */ - -#ifndef EGL_EXT_device_enumeration -#define EGL_EXT_device_enumeration 1 -#endif /* EGL_EXT_device_enumeration */ - -#ifndef EGL_EXT_device_openwf -#define EGL_EXT_device_openwf 1 -#define EGL_OPENWF_DEVICE_ID_EXT 0x3237 -#endif /* EGL_EXT_device_openwf */ - -#ifndef EGL_EXT_device_query -#define EGL_EXT_device_query 1 -#endif /* EGL_EXT_device_query */ - -#ifndef EGL_EXT_image_dma_buf_import -#define EGL_EXT_image_dma_buf_import 1 -#define EGL_LINUX_DMA_BUF_EXT 0x3270 -#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 -#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 -#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 -#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 -#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 -#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 -#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 -#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 -#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 -#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A -#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B -#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C -#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D -#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E -#define EGL_ITU_REC601_EXT 0x327F -#define EGL_ITU_REC709_EXT 0x3280 -#define EGL_ITU_REC2020_EXT 0x3281 -#define EGL_YUV_FULL_RANGE_EXT 0x3282 -#define EGL_YUV_NARROW_RANGE_EXT 0x3283 -#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 -#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 -#endif /* EGL_EXT_image_dma_buf_import */ - -#ifndef EGL_EXT_multiview_window -#define EGL_EXT_multiview_window 1 -#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 -#endif /* EGL_EXT_multiview_window */ - -#ifndef EGL_EXT_output_base -#define EGL_EXT_output_base 1 -typedef void *EGLOutputLayerEXT; -typedef void *EGLOutputPortEXT; -#define EGL_NO_OUTPUT_LAYER_EXT ((EGLOutputLayerEXT)0) -#define EGL_NO_OUTPUT_PORT_EXT ((EGLOutputPortEXT)0) -#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D -#define EGL_BAD_OUTPUT_PORT_EXT 0x322E -#define EGL_SWAP_INTERVAL_EXT 0x322F -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); -EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); -EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); -EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); -EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); -#endif -#endif /* EGL_EXT_output_base */ - -#ifndef EGL_EXT_output_drm -#define EGL_EXT_output_drm 1 -#define EGL_DRM_CRTC_EXT 0x3234 -#define EGL_DRM_PLANE_EXT 0x3235 -#define EGL_DRM_CONNECTOR_EXT 0x3236 -#endif /* EGL_EXT_output_drm */ - -#ifndef EGL_EXT_output_openwf -#define EGL_EXT_output_openwf 1 -#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238 -#define EGL_OPENWF_PORT_ID_EXT 0x3239 -#endif /* EGL_EXT_output_openwf */ - -#ifndef EGL_EXT_platform_base -#define EGL_EXT_platform_base 1 -typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); -#endif -#endif /* EGL_EXT_platform_base */ - -#ifndef EGL_EXT_platform_device -#define EGL_EXT_platform_device 1 -#define EGL_PLATFORM_DEVICE_EXT 0x313F -#endif /* EGL_EXT_platform_device */ - -#ifndef EGL_EXT_platform_wayland -#define EGL_EXT_platform_wayland 1 -#define EGL_PLATFORM_WAYLAND_EXT 0x31D8 -#endif /* EGL_EXT_platform_wayland */ - -#ifndef EGL_EXT_platform_x11 -#define EGL_EXT_platform_x11 1 -#define EGL_PLATFORM_X11_EXT 0x31D5 -#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6 -#endif /* EGL_EXT_platform_x11 */ - -#ifndef EGL_EXT_protected_surface -#define EGL_EXT_protected_surface 1 -#define EGL_PROTECTED_CONTENT_EXT 0x32C0 -#endif /* EGL_EXT_protected_surface */ - -#ifndef EGL_EXT_stream_consumer_egloutput -#define EGL_EXT_stream_consumer_egloutput 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); -#endif -#endif /* EGL_EXT_stream_consumer_egloutput */ - -#ifndef EGL_EXT_swap_buffers_with_damage -#define EGL_EXT_swap_buffers_with_damage 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#endif -#endif /* EGL_EXT_swap_buffers_with_damage */ - -#ifndef EGL_EXT_yuv_surface -#define EGL_EXT_yuv_surface 1 -#define EGL_YUV_ORDER_EXT 0x3301 -#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 -#define EGL_YUV_SUBSAMPLE_EXT 0x3312 -#define EGL_YUV_DEPTH_RANGE_EXT 0x3317 -#define EGL_YUV_CSC_STANDARD_EXT 0x330A -#define EGL_YUV_PLANE_BPP_EXT 0x331A -#define EGL_YUV_BUFFER_EXT 0x3300 -#define EGL_YUV_ORDER_YUV_EXT 0x3302 -#define EGL_YUV_ORDER_YVU_EXT 0x3303 -#define EGL_YUV_ORDER_YUYV_EXT 0x3304 -#define EGL_YUV_ORDER_UYVY_EXT 0x3305 -#define EGL_YUV_ORDER_YVYU_EXT 0x3306 -#define EGL_YUV_ORDER_VYUY_EXT 0x3307 -#define EGL_YUV_ORDER_AYUV_EXT 0x3308 -#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313 -#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314 -#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315 -#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318 -#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319 -#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B -#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C -#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D -#define EGL_YUV_PLANE_BPP_0_EXT 0x331B -#define EGL_YUV_PLANE_BPP_8_EXT 0x331C -#define EGL_YUV_PLANE_BPP_10_EXT 0x331D -#endif /* EGL_EXT_yuv_surface */ - -#ifndef EGL_HI_clientpixmap -#define EGL_HI_clientpixmap 1 -struct EGLClientPixmapHI { - void *pData; - EGLint iWidth; - EGLint iHeight; - EGLint iStride; -}; -#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); -#endif -#endif /* EGL_HI_clientpixmap */ - -#ifndef EGL_HI_colorformats -#define EGL_HI_colorformats 1 -#define EGL_COLOR_FORMAT_HI 0x8F70 -#define EGL_COLOR_RGB_HI 0x8F71 -#define EGL_COLOR_RGBA_HI 0x8F72 -#define EGL_COLOR_ARGB_HI 0x8F73 -#endif /* EGL_HI_colorformats */ - -#ifndef EGL_IMG_context_priority -#define EGL_IMG_context_priority 1 -#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 -#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 -#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 -#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 -#endif /* EGL_IMG_context_priority */ - -#ifndef EGL_MESA_drm_image -#define EGL_MESA_drm_image 1 -#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 -#define EGL_DRM_BUFFER_USE_MESA 0x31D1 -#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 -#define EGL_DRM_BUFFER_MESA 0x31D3 -#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 -#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 -#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 -typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); -#endif -#endif /* EGL_MESA_drm_image */ - -#ifndef EGL_MESA_image_dma_buf_export -#define EGL_MESA_image_dma_buf_export 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); -EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); -#endif -#endif /* EGL_MESA_image_dma_buf_export */ - -#ifndef EGL_MESA_platform_gbm -#define EGL_MESA_platform_gbm 1 -#define EGL_PLATFORM_GBM_MESA 0x31D7 -#endif /* EGL_MESA_platform_gbm */ - -#ifndef EGL_NOK_swap_region -#define EGL_NOK_swap_region 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#endif -#endif /* EGL_NOK_swap_region */ - -#ifndef EGL_NOK_swap_region2 -#define EGL_NOK_swap_region2 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#endif -#endif /* EGL_NOK_swap_region2 */ - -#ifndef EGL_NOK_texture_from_pixmap -#define EGL_NOK_texture_from_pixmap 1 -#define EGL_Y_INVERTED_NOK 0x307F -#endif /* EGL_NOK_texture_from_pixmap */ - -#ifndef EGL_NV_3dvision_surface -#define EGL_NV_3dvision_surface 1 -#define EGL_AUTO_STEREO_NV 0x3136 -#endif /* EGL_NV_3dvision_surface */ - -#ifndef EGL_NV_coverage_sample -#define EGL_NV_coverage_sample 1 -#define EGL_COVERAGE_BUFFERS_NV 0x30E0 -#define EGL_COVERAGE_SAMPLES_NV 0x30E1 -#endif /* EGL_NV_coverage_sample */ - -#ifndef EGL_NV_coverage_sample_resolve -#define EGL_NV_coverage_sample_resolve 1 -#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 -#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 -#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 -#endif /* EGL_NV_coverage_sample_resolve */ - -#ifndef EGL_NV_cuda_event -#define EGL_NV_cuda_event 1 -#define EGL_CUDA_EVENT_HANDLE_NV 0x323B -#define EGL_SYNC_CUDA_EVENT_NV 0x323C -#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D -#endif /* EGL_NV_cuda_event */ - -#ifndef EGL_NV_depth_nonlinear -#define EGL_NV_depth_nonlinear 1 -#define EGL_DEPTH_ENCODING_NV 0x30E2 -#define EGL_DEPTH_ENCODING_NONE_NV 0 -#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 -#endif /* EGL_NV_depth_nonlinear */ - -#ifndef EGL_NV_device_cuda -#define EGL_NV_device_cuda 1 -#define EGL_CUDA_DEVICE_NV 0x323A -#endif /* EGL_NV_device_cuda */ - -#ifndef EGL_NV_native_query -#define EGL_NV_native_query 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); -#endif -#endif /* EGL_NV_native_query */ - -#ifndef EGL_NV_post_convert_rounding -#define EGL_NV_post_convert_rounding 1 -#endif /* EGL_NV_post_convert_rounding */ - -#ifndef EGL_NV_post_sub_buffer -#define EGL_NV_post_sub_buffer 1 -#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE -typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); -#endif -#endif /* EGL_NV_post_sub_buffer */ - -#ifndef EGL_NV_stream_sync -#define EGL_NV_stream_sync 1 -#define EGL_SYNC_NEW_FRAME_NV 0x321F -typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); -#endif -#endif /* EGL_NV_stream_sync */ - -#ifndef EGL_NV_sync -#define EGL_NV_sync 1 -typedef void *EGLSyncNV; -typedef khronos_utime_nanoseconds_t EGLTimeNV; -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 -#define EGL_SYNC_STATUS_NV 0x30E7 -#define EGL_SIGNALED_NV 0x30E8 -#define EGL_UNSIGNALED_NV 0x30E9 -#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 -#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull -#define EGL_ALREADY_SIGNALED_NV 0x30EA -#define EGL_TIMEOUT_EXPIRED_NV 0x30EB -#define EGL_CONDITION_SATISFIED_NV 0x30EC -#define EGL_SYNC_TYPE_NV 0x30ED -#define EGL_SYNC_CONDITION_NV 0x30EE -#define EGL_SYNC_FENCE_NV 0x30EF -#define EGL_NO_SYNC_NV ((EGLSyncNV)0) -typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync); -typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync); -EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync); -EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); -EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode); -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_NV_sync */ - -#ifndef EGL_NV_system_time -#define EGL_NV_system_time 1 -typedef khronos_utime_nanoseconds_t EGLuint64NV; -#ifdef KHRONOS_SUPPORT_INT64 -typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void); -typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void); -EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_NV_system_time */ - -#ifndef EGL_TIZEN_image_native_buffer -#define EGL_TIZEN_image_native_buffer 1 -#define EGL_NATIVE_BUFFER_TIZEN 0x32A0 -#endif /* EGL_TIZEN_image_native_buffer */ - -#ifndef EGL_TIZEN_image_native_surface -#define EGL_TIZEN_image_native_surface 1 -#define EGL_NATIVE_SURFACE_TIZEN 0x32A1 -#endif /* EGL_TIZEN_image_native_surface */ - -#ifdef __cplusplus -} -#endif - -#endif /* __eglext_h_ */ - - -#endif /* _MSC_VER */ diff --git a/lib/osx/include/SDL_endian.h b/lib/osx/include/SDL_endian.h deleted file mode 100644 index 9100b10..0000000 --- a/lib/osx/include/SDL_endian.h +++ /dev/null @@ -1,239 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_endian.h - * - * Functions for reading and writing endian-specific values - */ - -#ifndef _SDL_endian_h -#define _SDL_endian_h - -#include "SDL_stdinc.h" - -/** - * \name The two types of endianness - */ -/* @{ */ -#define SDL_LIL_ENDIAN 1234 -#define SDL_BIG_ENDIAN 4321 -/* @} */ - -#ifndef SDL_BYTEORDER /* Not defined in SDL_config.h? */ -#ifdef __linux__ -#include <endian.h> -#define SDL_BYTEORDER __BYTE_ORDER -#else /* __linux__ */ -#if defined(__hppa__) || \ - defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \ - (defined(__MIPS__) && defined(__MISPEB__)) || \ - defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \ - defined(__sparc__) -#define SDL_BYTEORDER SDL_BIG_ENDIAN -#else -#define SDL_BYTEORDER SDL_LIL_ENDIAN -#endif -#endif /* __linux__ */ -#endif /* !SDL_BYTEORDER */ - - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file SDL_endian.h - */ -#if defined(__GNUC__) && defined(__i386__) && \ - !(__GNUC__ == 2 && __GNUC_MINOR__ == 95 /* broken gcc version */) -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - __asm__("xchgb %b0,%h0": "=q"(x):"0"(x)); - return x; -} -#elif defined(__GNUC__) && defined(__x86_64__) -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - __asm__("xchgb %b0,%h0": "=Q"(x):"0"(x)); - return x; -} -#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - int result; - - __asm__("rlwimi %0,%2,8,16,23": "=&r"(result):"0"(x >> 8), "r"(x)); - return (Uint16)result; -} -#elif defined(__GNUC__) && (defined(__M68000__) || defined(__M68020__)) && !defined(__mcoldfire__) -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - __asm__("rorw #8,%0": "=d"(x): "0"(x):"cc"); - return x; -} -#else -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - return SDL_static_cast(Uint16, ((x << 8) | (x >> 8))); -} -#endif - -#if defined(__GNUC__) && defined(__i386__) -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - __asm__("bswap %0": "=r"(x):"0"(x)); - return x; -} -#elif defined(__GNUC__) && defined(__x86_64__) -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - __asm__("bswapl %0": "=r"(x):"0"(x)); - return x; -} -#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - Uint32 result; - - __asm__("rlwimi %0,%2,24,16,23": "=&r"(result):"0"(x >> 24), "r"(x)); - __asm__("rlwimi %0,%2,8,8,15": "=&r"(result):"0"(result), "r"(x)); - __asm__("rlwimi %0,%2,24,0,7": "=&r"(result):"0"(result), "r"(x)); - return result; -} -#elif defined(__GNUC__) && (defined(__M68000__) || defined(__M68020__)) && !defined(__mcoldfire__) -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - __asm__("rorw #8,%0\n\tswap %0\n\trorw #8,%0": "=d"(x): "0"(x):"cc"); - return x; -} -#else -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - return SDL_static_cast(Uint32, ((x << 24) | ((x << 8) & 0x00FF0000) | - ((x >> 8) & 0x0000FF00) | (x >> 24))); -} -#endif - -#if defined(__GNUC__) && defined(__i386__) -SDL_FORCE_INLINE Uint64 -SDL_Swap64(Uint64 x) -{ - union - { - struct - { - Uint32 a, b; - } s; - Uint64 u; - } v; - v.u = x; - __asm__("bswapl %0 ; bswapl %1 ; xchgl %0,%1": "=r"(v.s.a), "=r"(v.s.b):"0"(v.s.a), - "1"(v.s. - b)); - return v.u; -} -#elif defined(__GNUC__) && defined(__x86_64__) -SDL_FORCE_INLINE Uint64 -SDL_Swap64(Uint64 x) -{ - __asm__("bswapq %0": "=r"(x):"0"(x)); - return x; -} -#else -SDL_FORCE_INLINE Uint64 -SDL_Swap64(Uint64 x) -{ - Uint32 hi, lo; - - /* Separate into high and low 32-bit values and swap them */ - lo = SDL_static_cast(Uint32, x & 0xFFFFFFFF); - x >>= 32; - hi = SDL_static_cast(Uint32, x & 0xFFFFFFFF); - x = SDL_Swap32(lo); - x <<= 32; - x |= SDL_Swap32(hi); - return (x); -} -#endif - - -SDL_FORCE_INLINE float -SDL_SwapFloat(float x) -{ - union - { - float f; - Uint32 ui32; - } swapper; - swapper.f = x; - swapper.ui32 = SDL_Swap32(swapper.ui32); - return swapper.f; -} - - -/** - * \name Swap to native - * Byteswap item from the specified endianness to the native endianness. - */ -/* @{ */ -#if SDL_BYTEORDER == SDL_LIL_ENDIAN -#define SDL_SwapLE16(X) (X) -#define SDL_SwapLE32(X) (X) -#define SDL_SwapLE64(X) (X) -#define SDL_SwapFloatLE(X) (X) -#define SDL_SwapBE16(X) SDL_Swap16(X) -#define SDL_SwapBE32(X) SDL_Swap32(X) -#define SDL_SwapBE64(X) SDL_Swap64(X) -#define SDL_SwapFloatBE(X) SDL_SwapFloat(X) -#else -#define SDL_SwapLE16(X) SDL_Swap16(X) -#define SDL_SwapLE32(X) SDL_Swap32(X) -#define SDL_SwapLE64(X) SDL_Swap64(X) -#define SDL_SwapFloatLE(X) SDL_SwapFloat(X) -#define SDL_SwapBE16(X) (X) -#define SDL_SwapBE32(X) (X) -#define SDL_SwapBE64(X) (X) -#define SDL_SwapFloatBE(X) (X) -#endif -/* @} *//* Swap to native */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_endian_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_error.h b/lib/osx/include/SDL_error.h deleted file mode 100644 index 2f3b4b5..0000000 --- a/lib/osx/include/SDL_error.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_error.h - * - * Simple error message routines for SDL. - */ - -#ifndef _SDL_error_h -#define _SDL_error_h - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Public functions */ -/* SDL_SetError() unconditionally returns -1. */ -extern DECLSPEC int SDLCALL SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); -extern DECLSPEC const char *SDLCALL SDL_GetError(void); -extern DECLSPEC void SDLCALL SDL_ClearError(void); - -/** - * \name Internal error functions - * - * \internal - * Private error reporting function - used internally. - */ -/* @{ */ -#define SDL_OutOfMemory() SDL_Error(SDL_ENOMEM) -#define SDL_Unsupported() SDL_Error(SDL_UNSUPPORTED) -#define SDL_InvalidParamError(param) SDL_SetError("Parameter '%s' is invalid", (param)) -typedef enum -{ - SDL_ENOMEM, - SDL_EFREAD, - SDL_EFWRITE, - SDL_EFSEEK, - SDL_UNSUPPORTED, - SDL_LASTERROR -} SDL_errorcode; -/* SDL_Error() unconditionally returns -1. */ -extern DECLSPEC int SDLCALL SDL_Error(SDL_errorcode code); -/* @} *//* Internal error functions */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_error_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_events.h b/lib/osx/include/SDL_events.h deleted file mode 100644 index edb89ef..0000000 --- a/lib/osx/include/SDL_events.h +++ /dev/null @@ -1,754 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_events.h - * - * Include file for SDL event handling. - */ - -#ifndef _SDL_events_h -#define _SDL_events_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_video.h" -#include "SDL_keyboard.h" -#include "SDL_mouse.h" -#include "SDL_joystick.h" -#include "SDL_gamecontroller.h" -#include "SDL_quit.h" -#include "SDL_gesture.h" -#include "SDL_touch.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* General keyboard/mouse state definitions */ -#define SDL_RELEASED 0 -#define SDL_PRESSED 1 - -/** - * \brief The types of events that can be delivered. - */ -typedef enum -{ - SDL_FIRSTEVENT = 0, /**< Unused (do not remove) */ - - /* Application events */ - SDL_QUIT = 0x100, /**< User-requested quit */ - - /* These application events have special meaning on iOS, see README-ios.md for details */ - SDL_APP_TERMINATING, /**< The application is being terminated by the OS - Called on iOS in applicationWillTerminate() - Called on Android in onDestroy() - */ - SDL_APP_LOWMEMORY, /**< The application is low on memory, free memory if possible. - Called on iOS in applicationDidReceiveMemoryWarning() - Called on Android in onLowMemory() - */ - SDL_APP_WILLENTERBACKGROUND, /**< The application is about to enter the background - Called on iOS in applicationWillResignActive() - Called on Android in onPause() - */ - SDL_APP_DIDENTERBACKGROUND, /**< The application did enter the background and may not get CPU for some time - Called on iOS in applicationDidEnterBackground() - Called on Android in onPause() - */ - SDL_APP_WILLENTERFOREGROUND, /**< The application is about to enter the foreground - Called on iOS in applicationWillEnterForeground() - Called on Android in onResume() - */ - SDL_APP_DIDENTERFOREGROUND, /**< The application is now interactive - Called on iOS in applicationDidBecomeActive() - Called on Android in onResume() - */ - - /* Window events */ - SDL_WINDOWEVENT = 0x200, /**< Window state change */ - SDL_SYSWMEVENT, /**< System specific event */ - - /* Keyboard events */ - SDL_KEYDOWN = 0x300, /**< Key pressed */ - SDL_KEYUP, /**< Key released */ - SDL_TEXTEDITING, /**< Keyboard text editing (composition) */ - SDL_TEXTINPUT, /**< Keyboard text input */ - SDL_KEYMAPCHANGED, /**< Keymap changed due to a system event such as an - input language or keyboard layout change. - */ - - /* Mouse events */ - SDL_MOUSEMOTION = 0x400, /**< Mouse moved */ - SDL_MOUSEBUTTONDOWN, /**< Mouse button pressed */ - SDL_MOUSEBUTTONUP, /**< Mouse button released */ - SDL_MOUSEWHEEL, /**< Mouse wheel motion */ - - /* Joystick events */ - SDL_JOYAXISMOTION = 0x600, /**< Joystick axis motion */ - SDL_JOYBALLMOTION, /**< Joystick trackball motion */ - SDL_JOYHATMOTION, /**< Joystick hat position change */ - SDL_JOYBUTTONDOWN, /**< Joystick button pressed */ - SDL_JOYBUTTONUP, /**< Joystick button released */ - SDL_JOYDEVICEADDED, /**< A new joystick has been inserted into the system */ - SDL_JOYDEVICEREMOVED, /**< An opened joystick has been removed */ - - /* Game controller events */ - SDL_CONTROLLERAXISMOTION = 0x650, /**< Game controller axis motion */ - SDL_CONTROLLERBUTTONDOWN, /**< Game controller button pressed */ - SDL_CONTROLLERBUTTONUP, /**< Game controller button released */ - SDL_CONTROLLERDEVICEADDED, /**< A new Game controller has been inserted into the system */ - SDL_CONTROLLERDEVICEREMOVED, /**< An opened Game controller has been removed */ - SDL_CONTROLLERDEVICEREMAPPED, /**< The controller mapping was updated */ - - /* Touch events */ - SDL_FINGERDOWN = 0x700, - SDL_FINGERUP, - SDL_FINGERMOTION, - - /* Gesture events */ - SDL_DOLLARGESTURE = 0x800, - SDL_DOLLARRECORD, - SDL_MULTIGESTURE, - - /* Clipboard events */ - SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard changed */ - - /* Drag and drop events */ - SDL_DROPFILE = 0x1000, /**< The system requests a file open */ - SDL_DROPTEXT, /**< text/plain drag-and-drop event */ - SDL_DROPBEGIN, /**< A new set of drops is beginning (NULL filename) */ - SDL_DROPCOMPLETE, /**< Current set of drops is now complete (NULL filename) */ - - /* Audio hotplug events */ - SDL_AUDIODEVICEADDED = 0x1100, /**< A new audio device is available */ - SDL_AUDIODEVICEREMOVED, /**< An audio device has been removed. */ - - /* Render events */ - SDL_RENDER_TARGETS_RESET = 0x2000, /**< The render targets have been reset and their contents need to be updated */ - SDL_RENDER_DEVICE_RESET, /**< The device has been reset and all textures need to be recreated */ - - /** Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use, - * and should be allocated with SDL_RegisterEvents() - */ - SDL_USEREVENT = 0x8000, - - /** - * This last event is only for bounding internal arrays - */ - SDL_LASTEVENT = 0xFFFF -} SDL_EventType; - -/** - * \brief Fields shared by every event - */ -typedef struct SDL_CommonEvent -{ - Uint32 type; - Uint32 timestamp; -} SDL_CommonEvent; - -/** - * \brief Window state change event data (event.window.*) - */ -typedef struct SDL_WindowEvent -{ - Uint32 type; /**< ::SDL_WINDOWEVENT */ - Uint32 timestamp; - Uint32 windowID; /**< The associated window */ - Uint8 event; /**< ::SDL_WindowEventID */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint32 data1; /**< event dependent data */ - Sint32 data2; /**< event dependent data */ -} SDL_WindowEvent; - -/** - * \brief Keyboard button event structure (event.key.*) - */ -typedef struct SDL_KeyboardEvent -{ - Uint32 type; /**< ::SDL_KEYDOWN or ::SDL_KEYUP */ - Uint32 timestamp; - Uint32 windowID; /**< The window with keyboard focus, if any */ - Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ - Uint8 repeat; /**< Non-zero if this is a key repeat */ - Uint8 padding2; - Uint8 padding3; - SDL_Keysym keysym; /**< The key that was pressed or released */ -} SDL_KeyboardEvent; - -#define SDL_TEXTEDITINGEVENT_TEXT_SIZE (32) -/** - * \brief Keyboard text editing event structure (event.edit.*) - */ -typedef struct SDL_TextEditingEvent -{ - Uint32 type; /**< ::SDL_TEXTEDITING */ - Uint32 timestamp; - Uint32 windowID; /**< The window with keyboard focus, if any */ - char text[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; /**< The editing text */ - Sint32 start; /**< The start cursor of selected editing text */ - Sint32 length; /**< The length of selected editing text */ -} SDL_TextEditingEvent; - - -#define SDL_TEXTINPUTEVENT_TEXT_SIZE (32) -/** - * \brief Keyboard text input event structure (event.text.*) - */ -typedef struct SDL_TextInputEvent -{ - Uint32 type; /**< ::SDL_TEXTINPUT */ - Uint32 timestamp; - Uint32 windowID; /**< The window with keyboard focus, if any */ - char text[SDL_TEXTINPUTEVENT_TEXT_SIZE]; /**< The input text */ -} SDL_TextInputEvent; - -/** - * \brief Mouse motion event structure (event.motion.*) - */ -typedef struct SDL_MouseMotionEvent -{ - Uint32 type; /**< ::SDL_MOUSEMOTION */ - Uint32 timestamp; - Uint32 windowID; /**< The window with mouse focus, if any */ - Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ - Uint32 state; /**< The current button state */ - Sint32 x; /**< X coordinate, relative to window */ - Sint32 y; /**< Y coordinate, relative to window */ - Sint32 xrel; /**< The relative motion in the X direction */ - Sint32 yrel; /**< The relative motion in the Y direction */ -} SDL_MouseMotionEvent; - -/** - * \brief Mouse button event structure (event.button.*) - */ -typedef struct SDL_MouseButtonEvent -{ - Uint32 type; /**< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP */ - Uint32 timestamp; - Uint32 windowID; /**< The window with mouse focus, if any */ - Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ - Uint8 button; /**< The mouse button index */ - Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ - Uint8 clicks; /**< 1 for single-click, 2 for double-click, etc. */ - Uint8 padding1; - Sint32 x; /**< X coordinate, relative to window */ - Sint32 y; /**< Y coordinate, relative to window */ -} SDL_MouseButtonEvent; - -/** - * \brief Mouse wheel event structure (event.wheel.*) - */ -typedef struct SDL_MouseWheelEvent -{ - Uint32 type; /**< ::SDL_MOUSEWHEEL */ - Uint32 timestamp; - Uint32 windowID; /**< The window with mouse focus, if any */ - Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ - Sint32 x; /**< The amount scrolled horizontally, positive to the right and negative to the left */ - Sint32 y; /**< The amount scrolled vertically, positive away from the user and negative toward the user */ - Uint32 direction; /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */ -} SDL_MouseWheelEvent; - -/** - * \brief Joystick axis motion event structure (event.jaxis.*) - */ -typedef struct SDL_JoyAxisEvent -{ - Uint32 type; /**< ::SDL_JOYAXISMOTION */ - Uint32 timestamp; - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 axis; /**< The joystick axis index */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint16 value; /**< The axis value (range: -32768 to 32767) */ - Uint16 padding4; -} SDL_JoyAxisEvent; - -/** - * \brief Joystick trackball motion event structure (event.jball.*) - */ -typedef struct SDL_JoyBallEvent -{ - Uint32 type; /**< ::SDL_JOYBALLMOTION */ - Uint32 timestamp; - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 ball; /**< The joystick trackball index */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint16 xrel; /**< The relative motion in the X direction */ - Sint16 yrel; /**< The relative motion in the Y direction */ -} SDL_JoyBallEvent; - -/** - * \brief Joystick hat position change event structure (event.jhat.*) - */ -typedef struct SDL_JoyHatEvent -{ - Uint32 type; /**< ::SDL_JOYHATMOTION */ - Uint32 timestamp; - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 hat; /**< The joystick hat index */ - Uint8 value; /**< The hat position value. - * \sa ::SDL_HAT_LEFTUP ::SDL_HAT_UP ::SDL_HAT_RIGHTUP - * \sa ::SDL_HAT_LEFT ::SDL_HAT_CENTERED ::SDL_HAT_RIGHT - * \sa ::SDL_HAT_LEFTDOWN ::SDL_HAT_DOWN ::SDL_HAT_RIGHTDOWN - * - * Note that zero means the POV is centered. - */ - Uint8 padding1; - Uint8 padding2; -} SDL_JoyHatEvent; - -/** - * \brief Joystick button event structure (event.jbutton.*) - */ -typedef struct SDL_JoyButtonEvent -{ - Uint32 type; /**< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP */ - Uint32 timestamp; - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 button; /**< The joystick button index */ - Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ - Uint8 padding1; - Uint8 padding2; -} SDL_JoyButtonEvent; - -/** - * \brief Joystick device event structure (event.jdevice.*) - */ -typedef struct SDL_JoyDeviceEvent -{ - Uint32 type; /**< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED */ - Uint32 timestamp; - Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED event */ -} SDL_JoyDeviceEvent; - - -/** - * \brief Game controller axis motion event structure (event.caxis.*) - */ -typedef struct SDL_ControllerAxisEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERAXISMOTION */ - Uint32 timestamp; - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 axis; /**< The controller axis (SDL_GameControllerAxis) */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint16 value; /**< The axis value (range: -32768 to 32767) */ - Uint16 padding4; -} SDL_ControllerAxisEvent; - - -/** - * \brief Game controller button event structure (event.cbutton.*) - */ -typedef struct SDL_ControllerButtonEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP */ - Uint32 timestamp; - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 button; /**< The controller button (SDL_GameControllerButton) */ - Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ - Uint8 padding1; - Uint8 padding2; -} SDL_ControllerButtonEvent; - - -/** - * \brief Controller device event structure (event.cdevice.*) - */ -typedef struct SDL_ControllerDeviceEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED */ - Uint32 timestamp; - Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */ -} SDL_ControllerDeviceEvent; - -/** - * \brief Audio device event structure (event.adevice.*) - */ -typedef struct SDL_AudioDeviceEvent -{ - Uint32 type; /**< ::SDL_AUDIODEVICEADDED, or ::SDL_AUDIODEVICEREMOVED */ - Uint32 timestamp; - Uint32 which; /**< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event */ - Uint8 iscapture; /**< zero if an output device, non-zero if a capture device. */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; -} SDL_AudioDeviceEvent; - - -/** - * \brief Touch finger event structure (event.tfinger.*) - */ -typedef struct SDL_TouchFingerEvent -{ - Uint32 type; /**< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP */ - Uint32 timestamp; - SDL_TouchID touchId; /**< The touch device id */ - SDL_FingerID fingerId; - float x; /**< Normalized in the range 0...1 */ - float y; /**< Normalized in the range 0...1 */ - float dx; /**< Normalized in the range -1...1 */ - float dy; /**< Normalized in the range -1...1 */ - float pressure; /**< Normalized in the range 0...1 */ -} SDL_TouchFingerEvent; - - -/** - * \brief Multiple Finger Gesture Event (event.mgesture.*) - */ -typedef struct SDL_MultiGestureEvent -{ - Uint32 type; /**< ::SDL_MULTIGESTURE */ - Uint32 timestamp; - SDL_TouchID touchId; /**< The touch device index */ - float dTheta; - float dDist; - float x; - float y; - Uint16 numFingers; - Uint16 padding; -} SDL_MultiGestureEvent; - - -/** - * \brief Dollar Gesture Event (event.dgesture.*) - */ -typedef struct SDL_DollarGestureEvent -{ - Uint32 type; /**< ::SDL_DOLLARGESTURE or ::SDL_DOLLARRECORD */ - Uint32 timestamp; - SDL_TouchID touchId; /**< The touch device id */ - SDL_GestureID gestureId; - Uint32 numFingers; - float error; - float x; /**< Normalized center of gesture */ - float y; /**< Normalized center of gesture */ -} SDL_DollarGestureEvent; - - -/** - * \brief An event used to request a file open by the system (event.drop.*) - * This event is enabled by default, you can disable it with SDL_EventState(). - * \note If this event is enabled, you must free the filename in the event. - */ -typedef struct SDL_DropEvent -{ - Uint32 type; /**< ::SDL_DROPBEGIN or ::SDL_DROPFILE or ::SDL_DROPTEXT or ::SDL_DROPCOMPLETE */ - Uint32 timestamp; - char *file; /**< The file name, which should be freed with SDL_free(), is NULL on begin/complete */ - Uint32 windowID; /**< The window that was dropped on, if any */ -} SDL_DropEvent; - - -/** - * \brief The "quit requested" event - */ -typedef struct SDL_QuitEvent -{ - Uint32 type; /**< ::SDL_QUIT */ - Uint32 timestamp; -} SDL_QuitEvent; - -/** - * \brief OS Specific event - */ -typedef struct SDL_OSEvent -{ - Uint32 type; /**< ::SDL_QUIT */ - Uint32 timestamp; -} SDL_OSEvent; - -/** - * \brief A user-defined event type (event.user.*) - */ -typedef struct SDL_UserEvent -{ - Uint32 type; /**< ::SDL_USEREVENT through ::SDL_LASTEVENT-1 */ - Uint32 timestamp; - Uint32 windowID; /**< The associated window if any */ - Sint32 code; /**< User defined event code */ - void *data1; /**< User defined data pointer */ - void *data2; /**< User defined data pointer */ -} SDL_UserEvent; - - -struct SDL_SysWMmsg; -typedef struct SDL_SysWMmsg SDL_SysWMmsg; - -/** - * \brief A video driver dependent system event (event.syswm.*) - * This event is disabled by default, you can enable it with SDL_EventState() - * - * \note If you want to use this event, you should include SDL_syswm.h. - */ -typedef struct SDL_SysWMEvent -{ - Uint32 type; /**< ::SDL_SYSWMEVENT */ - Uint32 timestamp; - SDL_SysWMmsg *msg; /**< driver dependent data, defined in SDL_syswm.h */ -} SDL_SysWMEvent; - -/** - * \brief General event structure - */ -typedef union SDL_Event -{ - Uint32 type; /**< Event type, shared with all events */ - SDL_CommonEvent common; /**< Common event data */ - SDL_WindowEvent window; /**< Window event data */ - SDL_KeyboardEvent key; /**< Keyboard event data */ - SDL_TextEditingEvent edit; /**< Text editing event data */ - SDL_TextInputEvent text; /**< Text input event data */ - SDL_MouseMotionEvent motion; /**< Mouse motion event data */ - SDL_MouseButtonEvent button; /**< Mouse button event data */ - SDL_MouseWheelEvent wheel; /**< Mouse wheel event data */ - SDL_JoyAxisEvent jaxis; /**< Joystick axis event data */ - SDL_JoyBallEvent jball; /**< Joystick ball event data */ - SDL_JoyHatEvent jhat; /**< Joystick hat event data */ - SDL_JoyButtonEvent jbutton; /**< Joystick button event data */ - SDL_JoyDeviceEvent jdevice; /**< Joystick device change event data */ - SDL_ControllerAxisEvent caxis; /**< Game Controller axis event data */ - SDL_ControllerButtonEvent cbutton; /**< Game Controller button event data */ - SDL_ControllerDeviceEvent cdevice; /**< Game Controller device event data */ - SDL_AudioDeviceEvent adevice; /**< Audio device event data */ - SDL_QuitEvent quit; /**< Quit request event data */ - SDL_UserEvent user; /**< Custom event data */ - SDL_SysWMEvent syswm; /**< System dependent window event data */ - SDL_TouchFingerEvent tfinger; /**< Touch finger event data */ - SDL_MultiGestureEvent mgesture; /**< Gesture event data */ - SDL_DollarGestureEvent dgesture; /**< Gesture event data */ - SDL_DropEvent drop; /**< Drag and drop event data */ - - /* This is necessary for ABI compatibility between Visual C++ and GCC - Visual C++ will respect the push pack pragma and use 52 bytes for - this structure, and GCC will use the alignment of the largest datatype - within the union, which is 8 bytes. - - So... we'll add padding to force the size to be 56 bytes for both. - */ - Uint8 padding[56]; -} SDL_Event; - - -/* Function prototypes */ - -/** - * Pumps the event loop, gathering events from the input devices. - * - * This function updates the event queue and internal input device state. - * - * This should only be run in the thread that sets the video mode. - */ -extern DECLSPEC void SDLCALL SDL_PumpEvents(void); - -/* @{ */ -typedef enum -{ - SDL_ADDEVENT, - SDL_PEEKEVENT, - SDL_GETEVENT -} SDL_eventaction; - -/** - * Checks the event queue for messages and optionally returns them. - * - * If \c action is ::SDL_ADDEVENT, up to \c numevents events will be added to - * the back of the event queue. - * - * If \c action is ::SDL_PEEKEVENT, up to \c numevents events at the front - * of the event queue, within the specified minimum and maximum type, - * will be returned and will not be removed from the queue. - * - * If \c action is ::SDL_GETEVENT, up to \c numevents events at the front - * of the event queue, within the specified minimum and maximum type, - * will be returned and will be removed from the queue. - * - * \return The number of events actually stored, or -1 if there was an error. - * - * This function is thread-safe. - */ -extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event * events, int numevents, - SDL_eventaction action, - Uint32 minType, Uint32 maxType); -/* @} */ - -/** - * Checks to see if certain event types are in the event queue. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasEvent(Uint32 type); -extern DECLSPEC SDL_bool SDLCALL SDL_HasEvents(Uint32 minType, Uint32 maxType); - -/** - * This function clears events from the event queue - * This function only affects currently queued events. If you want to make - * sure that all pending OS events are flushed, you can call SDL_PumpEvents() - * on the main thread immediately before the flush call. - */ -extern DECLSPEC void SDLCALL SDL_FlushEvent(Uint32 type); -extern DECLSPEC void SDLCALL SDL_FlushEvents(Uint32 minType, Uint32 maxType); - -/** - * \brief Polls for currently pending events. - * - * \return 1 if there are any pending events, or 0 if there are none available. - * - * \param event If not NULL, the next event is removed from the queue and - * stored in that area. - */ -extern DECLSPEC int SDLCALL SDL_PollEvent(SDL_Event * event); - -/** - * \brief Waits indefinitely for the next available event. - * - * \return 1, or 0 if there was an error while waiting for events. - * - * \param event If not NULL, the next event is removed from the queue and - * stored in that area. - */ -extern DECLSPEC int SDLCALL SDL_WaitEvent(SDL_Event * event); - -/** - * \brief Waits until the specified timeout (in milliseconds) for the next - * available event. - * - * \return 1, or 0 if there was an error while waiting for events. - * - * \param event If not NULL, the next event is removed from the queue and - * stored in that area. - * \param timeout The timeout (in milliseconds) to wait for next event. - */ -extern DECLSPEC int SDLCALL SDL_WaitEventTimeout(SDL_Event * event, - int timeout); - -/** - * \brief Add an event to the event queue. - * - * \return 1 on success, 0 if the event was filtered, or -1 if the event queue - * was full or there was some other error. - */ -extern DECLSPEC int SDLCALL SDL_PushEvent(SDL_Event * event); - -typedef int (SDLCALL * SDL_EventFilter) (void *userdata, SDL_Event * event); - -/** - * Sets up a filter to process all events before they change internal state and - * are posted to the internal event queue. - * - * The filter is prototyped as: - * \code - * int SDL_EventFilter(void *userdata, SDL_Event * event); - * \endcode - * - * If the filter returns 1, then the event will be added to the internal queue. - * If it returns 0, then the event will be dropped from the queue, but the - * internal state will still be updated. This allows selective filtering of - * dynamically arriving events. - * - * \warning Be very careful of what you do in the event filter function, as - * it may run in a different thread! - * - * There is one caveat when dealing with the ::SDL_QuitEvent event type. The - * event filter is only called when the window manager desires to close the - * application window. If the event filter returns 1, then the window will - * be closed, otherwise the window will remain open if possible. - * - * If the quit event is generated by an interrupt signal, it will bypass the - * internal queue and be delivered to the application at the next event poll. - */ -extern DECLSPEC void SDLCALL SDL_SetEventFilter(SDL_EventFilter filter, - void *userdata); - -/** - * Return the current event filter - can be used to "chain" filters. - * If there is no event filter set, this function returns SDL_FALSE. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetEventFilter(SDL_EventFilter * filter, - void **userdata); - -/** - * Add a function which is called when an event is added to the queue. - */ -extern DECLSPEC void SDLCALL SDL_AddEventWatch(SDL_EventFilter filter, - void *userdata); - -/** - * Remove an event watch function added with SDL_AddEventWatch() - */ -extern DECLSPEC void SDLCALL SDL_DelEventWatch(SDL_EventFilter filter, - void *userdata); - -/** - * Run the filter function on the current event queue, removing any - * events for which the filter returns 0. - */ -extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter, - void *userdata); - -/* @{ */ -#define SDL_QUERY -1 -#define SDL_IGNORE 0 -#define SDL_DISABLE 0 -#define SDL_ENABLE 1 - -/** - * This function allows you to set the state of processing certain events. - * - If \c state is set to ::SDL_IGNORE, that event will be automatically - * dropped from the event queue and will not event be filtered. - * - If \c state is set to ::SDL_ENABLE, that event will be processed - * normally. - * - If \c state is set to ::SDL_QUERY, SDL_EventState() will return the - * current processing state of the specified event. - */ -extern DECLSPEC Uint8 SDLCALL SDL_EventState(Uint32 type, int state); -/* @} */ -#define SDL_GetEventState(type) SDL_EventState(type, SDL_QUERY) - -/** - * This function allocates a set of user-defined events, and returns - * the beginning event number for that set of events. - * - * If there aren't enough user-defined events left, this function - * returns (Uint32)-1 - */ -extern DECLSPEC Uint32 SDLCALL SDL_RegisterEvents(int numevents); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_events_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_filesystem.h b/lib/osx/include/SDL_filesystem.h deleted file mode 100644 index 02999ed..0000000 --- a/lib/osx/include/SDL_filesystem.h +++ /dev/null @@ -1,136 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_filesystem.h - * - * \brief Include file for filesystem SDL API functions - */ - -#ifndef _SDL_filesystem_h -#define _SDL_filesystem_h - -#include "SDL_stdinc.h" - -#include "begin_code.h" - -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief Get the path where the application resides. - * - * Get the "base path". This is the directory where the application was run - * from, which is probably the installation directory, and may or may not - * be the process's current working directory. - * - * This returns an absolute path in UTF-8 encoding, and is guaranteed to - * end with a path separator ('\\' on Windows, '/' most other places). - * - * The pointer returned by this function is owned by you. Please call - * SDL_free() on the pointer when you are done with it, or it will be a - * memory leak. This is not necessarily a fast call, though, so you should - * call this once near startup and save the string if you need it. - * - * Some platforms can't determine the application's path, and on other - * platforms, this might be meaningless. In such cases, this function will - * return NULL. - * - * \return String of base dir in UTF-8 encoding, or NULL on error. - * - * \sa SDL_GetPrefPath - */ -extern DECLSPEC char *SDLCALL SDL_GetBasePath(void); - -/** - * \brief Get the user-and-app-specific path where files can be written. - * - * Get the "pref dir". This is meant to be where users can write personal - * files (preferences and save games, etc) that are specific to your - * application. This directory is unique per user, per application. - * - * This function will decide the appropriate location in the native filesystem, - * create the directory if necessary, and return a string of the absolute - * path to the directory in UTF-8 encoding. - * - * On Windows, the string might look like: - * "C:\\Users\\bob\\AppData\\Roaming\\My Company\\My Program Name\\" - * - * On Linux, the string might look like: - * "/home/bob/.local/share/My Program Name/" - * - * On Mac OS X, the string might look like: - * "/Users/bob/Library/Application Support/My Program Name/" - * - * (etc.) - * - * You specify the name of your organization (if it's not a real organization, - * your name or an Internet domain you own might do) and the name of your - * application. These should be untranslated proper names. - * - * Both the org and app strings may become part of a directory name, so - * please follow these rules: - * - * - Try to use the same org string (including case-sensitivity) for - * all your applications that use this function. - * - Always use a unique app string for each one, and make sure it never - * changes for an app once you've decided on it. - * - Unicode characters are legal, as long as it's UTF-8 encoded, but... - * - ...only use letters, numbers, and spaces. Avoid punctuation like - * "Game Name 2: Bad Guy's Revenge!" ... "Game Name 2" is sufficient. - * - * This returns an absolute path in UTF-8 encoding, and is guaranteed to - * end with a path separator ('\\' on Windows, '/' most other places). - * - * The pointer returned by this function is owned by you. Please call - * SDL_free() on the pointer when you are done with it, or it will be a - * memory leak. This is not necessarily a fast call, though, so you should - * call this once near startup and save the string if you need it. - * - * You should assume the path returned by this function is the only safe - * place to write files (and that SDL_GetBasePath(), while it might be - * writable, or even the parent of the returned path, aren't where you - * should be writing things). - * - * Some platforms can't determine the pref path, and on other - * platforms, this might be meaningless. In such cases, this function will - * return NULL. - * - * \param org The name of your organization. - * \param app The name of your application. - * \return UTF-8 string of user dir in platform-dependent notation. NULL - * if there's a problem (creating directory failed, etc). - * - * \sa SDL_GetBasePath - */ -extern DECLSPEC char *SDLCALL SDL_GetPrefPath(const char *org, const char *app); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_filesystem_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_gamecontroller.h b/lib/osx/include/SDL_gamecontroller.h deleted file mode 100644 index e67fd9f..0000000 --- a/lib/osx/include/SDL_gamecontroller.h +++ /dev/null @@ -1,323 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_gamecontroller.h - * - * Include file for SDL game controller event handling - */ - -#ifndef _SDL_gamecontroller_h -#define _SDL_gamecontroller_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_rwops.h" -#include "SDL_joystick.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file SDL_gamecontroller.h - * - * In order to use these functions, SDL_Init() must have been called - * with the ::SDL_INIT_GAMECONTROLLER flag. This causes SDL to scan the system - * for game controllers, and load appropriate drivers. - * - * If you would like to receive controller updates while the application - * is in the background, you should set the following hint before calling - * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS - */ - -/* The gamecontroller structure used to identify an SDL game controller */ -struct _SDL_GameController; -typedef struct _SDL_GameController SDL_GameController; - - -typedef enum -{ - SDL_CONTROLLER_BINDTYPE_NONE = 0, - SDL_CONTROLLER_BINDTYPE_BUTTON, - SDL_CONTROLLER_BINDTYPE_AXIS, - SDL_CONTROLLER_BINDTYPE_HAT -} SDL_GameControllerBindType; - -/** - * Get the SDL joystick layer binding for this controller button/axis mapping - */ -typedef struct SDL_GameControllerButtonBind -{ - SDL_GameControllerBindType bindType; - union - { - int button; - int axis; - struct { - int hat; - int hat_mask; - } hat; - } value; - -} SDL_GameControllerButtonBind; - - -/** - * To count the number of game controllers in the system for the following: - * int nJoysticks = SDL_NumJoysticks(); - * int nGameControllers = 0; - * for ( int i = 0; i < nJoysticks; i++ ) { - * if ( SDL_IsGameController(i) ) { - * nGameControllers++; - * } - * } - * - * Using the SDL_HINT_GAMECONTROLLERCONFIG hint or the SDL_GameControllerAddMapping() you can add support for controllers SDL is unaware of or cause an existing controller to have a different binding. The format is: - * guid,name,mappings - * - * Where GUID is the string value from SDL_JoystickGetGUIDString(), name is the human readable string for the device and mappings are controller mappings to joystick ones. - * Under Windows there is a reserved GUID of "xinput" that covers any XInput devices. - * The mapping format for joystick is: - * bX - a joystick button, index X - * hX.Y - hat X with value Y - * aX - axis X of the joystick - * Buttons can be used as a controller axis and vice versa. - * - * This string shows an example of a valid mapping for a controller - * "341a3608000000000000504944564944,Afterglow PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7", - * - */ - -/** - * Load a set of mappings from a seekable SDL data stream (memory or file), filtered by the current SDL_GetPlatform() - * A community sourced database of controllers is available at https://raw.github.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt - * - * If \c freerw is non-zero, the stream will be closed after being read. - * - * \return number of mappings added, -1 on error - */ -extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW( SDL_RWops * rw, int freerw ); - -/** - * Load a set of mappings from a file, filtered by the current SDL_GetPlatform() - * - * Convenience macro. - */ -#define SDL_GameControllerAddMappingsFromFile(file) SDL_GameControllerAddMappingsFromRW(SDL_RWFromFile(file, "rb"), 1) - -/** - * Add or update an existing mapping configuration - * - * \return 1 if mapping is added, 0 if updated, -1 on error - */ -extern DECLSPEC int SDLCALL SDL_GameControllerAddMapping( const char* mappingString ); - -/** - * Get a mapping string for a GUID - * - * \return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available - */ -extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForGUID( SDL_JoystickGUID guid ); - -/** - * Get a mapping string for an open GameController - * - * \return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available - */ -extern DECLSPEC char * SDLCALL SDL_GameControllerMapping( SDL_GameController * gamecontroller ); - -/** - * Is the joystick on this index supported by the game controller interface? - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index); - - -/** - * Get the implementation dependent name of a game controller. - * This can be called before any controllers are opened. - * If no name can be found, this function returns NULL. - */ -extern DECLSPEC const char *SDLCALL SDL_GameControllerNameForIndex(int joystick_index); - -/** - * Open a game controller for use. - * The index passed as an argument refers to the N'th game controller on the system. - * This index is not the value which will identify this controller in future - * controller events. The joystick's instance id (::SDL_JoystickID) will be - * used there instead. - * - * \return A controller identifier, or NULL if an error occurred. - */ -extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerOpen(int joystick_index); - -/** - * Return the SDL_GameController associated with an instance id. - */ -extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromInstanceID(SDL_JoystickID joyid); - -/** - * Return the name for this currently opened controller - */ -extern DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller); - -/** - * Returns SDL_TRUE if the controller has been opened and currently connected, - * or SDL_FALSE if it has not. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerGetAttached(SDL_GameController *gamecontroller); - -/** - * Get the underlying joystick object used by a controller - */ -extern DECLSPEC SDL_Joystick *SDLCALL SDL_GameControllerGetJoystick(SDL_GameController *gamecontroller); - -/** - * Enable/disable controller event polling. - * - * If controller events are disabled, you must call SDL_GameControllerUpdate() - * yourself and check the state of the controller when you want controller - * information. - * - * The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerEventState(int state); - -/** - * Update the current state of the open game controllers. - * - * This is called automatically by the event loop if any game controller - * events are enabled. - */ -extern DECLSPEC void SDLCALL SDL_GameControllerUpdate(void); - - -/** - * The list of axes available from a controller - */ -typedef enum -{ - SDL_CONTROLLER_AXIS_INVALID = -1, - SDL_CONTROLLER_AXIS_LEFTX, - SDL_CONTROLLER_AXIS_LEFTY, - SDL_CONTROLLER_AXIS_RIGHTX, - SDL_CONTROLLER_AXIS_RIGHTY, - SDL_CONTROLLER_AXIS_TRIGGERLEFT, - SDL_CONTROLLER_AXIS_TRIGGERRIGHT, - SDL_CONTROLLER_AXIS_MAX -} SDL_GameControllerAxis; - -/** - * turn this string into a axis mapping - */ -extern DECLSPEC SDL_GameControllerAxis SDLCALL SDL_GameControllerGetAxisFromString(const char *pchString); - -/** - * turn this axis enum into a string mapping - */ -extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis axis); - -/** - * Get the SDL joystick layer binding for this controller button mapping - */ -extern DECLSPEC SDL_GameControllerButtonBind SDLCALL -SDL_GameControllerGetBindForAxis(SDL_GameController *gamecontroller, - SDL_GameControllerAxis axis); - -/** - * Get the current state of an axis control on a game controller. - * - * The state is a value ranging from -32768 to 32767 (except for the triggers, - * which range from 0 to 32767). - * - * The axis indices start at index 0. - */ -extern DECLSPEC Sint16 SDLCALL -SDL_GameControllerGetAxis(SDL_GameController *gamecontroller, - SDL_GameControllerAxis axis); - -/** - * The list of buttons available from a controller - */ -typedef enum -{ - SDL_CONTROLLER_BUTTON_INVALID = -1, - SDL_CONTROLLER_BUTTON_A, - SDL_CONTROLLER_BUTTON_B, - SDL_CONTROLLER_BUTTON_X, - SDL_CONTROLLER_BUTTON_Y, - SDL_CONTROLLER_BUTTON_BACK, - SDL_CONTROLLER_BUTTON_GUIDE, - SDL_CONTROLLER_BUTTON_START, - SDL_CONTROLLER_BUTTON_LEFTSTICK, - SDL_CONTROLLER_BUTTON_RIGHTSTICK, - SDL_CONTROLLER_BUTTON_LEFTSHOULDER, - SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, - SDL_CONTROLLER_BUTTON_DPAD_UP, - SDL_CONTROLLER_BUTTON_DPAD_DOWN, - SDL_CONTROLLER_BUTTON_DPAD_LEFT, - SDL_CONTROLLER_BUTTON_DPAD_RIGHT, - SDL_CONTROLLER_BUTTON_MAX -} SDL_GameControllerButton; - -/** - * turn this string into a button mapping - */ -extern DECLSPEC SDL_GameControllerButton SDLCALL SDL_GameControllerGetButtonFromString(const char *pchString); - -/** - * turn this button enum into a string mapping - */ -extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForButton(SDL_GameControllerButton button); - -/** - * Get the SDL joystick layer binding for this controller button mapping - */ -extern DECLSPEC SDL_GameControllerButtonBind SDLCALL -SDL_GameControllerGetBindForButton(SDL_GameController *gamecontroller, - SDL_GameControllerButton button); - - -/** - * Get the current state of a button on a game controller. - * - * The button indices start at index 0. - */ -extern DECLSPEC Uint8 SDLCALL SDL_GameControllerGetButton(SDL_GameController *gamecontroller, - SDL_GameControllerButton button); - -/** - * Close a controller previously opened with SDL_GameControllerOpen(). - */ -extern DECLSPEC void SDLCALL SDL_GameControllerClose(SDL_GameController *gamecontroller); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_gamecontroller_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_gesture.h b/lib/osx/include/SDL_gesture.h deleted file mode 100644 index 3c29ca7..0000000 --- a/lib/osx/include/SDL_gesture.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_gesture.h - * - * Include file for SDL gesture event handling. - */ - -#ifndef _SDL_gesture_h -#define _SDL_gesture_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_video.h" - -#include "SDL_touch.h" - - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -typedef Sint64 SDL_GestureID; - -/* Function prototypes */ - -/** - * \brief Begin Recording a gesture on the specified touch, or all touches (-1) - * - * - */ -extern DECLSPEC int SDLCALL SDL_RecordGesture(SDL_TouchID touchId); - - -/** - * \brief Save all currently loaded Dollar Gesture templates - * - * - */ -extern DECLSPEC int SDLCALL SDL_SaveAllDollarTemplates(SDL_RWops *dst); - -/** - * \brief Save a currently loaded Dollar Gesture template - * - * - */ -extern DECLSPEC int SDLCALL SDL_SaveDollarTemplate(SDL_GestureID gestureId,SDL_RWops *dst); - - -/** - * \brief Load Dollar Gesture templates from a file - * - * - */ -extern DECLSPEC int SDLCALL SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWops *src); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_gesture_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_haptic.h b/lib/osx/include/SDL_haptic.h deleted file mode 100644 index 9421c8f..0000000 --- a/lib/osx/include/SDL_haptic.h +++ /dev/null @@ -1,1223 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_haptic.h - * - * \brief The SDL Haptic subsystem allows you to control haptic (force feedback) - * devices. - * - * The basic usage is as follows: - * - Initialize the Subsystem (::SDL_INIT_HAPTIC). - * - Open a Haptic Device. - * - SDL_HapticOpen() to open from index. - * - SDL_HapticOpenFromJoystick() to open from an existing joystick. - * - Create an effect (::SDL_HapticEffect). - * - Upload the effect with SDL_HapticNewEffect(). - * - Run the effect with SDL_HapticRunEffect(). - * - (optional) Free the effect with SDL_HapticDestroyEffect(). - * - Close the haptic device with SDL_HapticClose(). - * - * \par Simple rumble example: - * \code - * SDL_Haptic *haptic; - * - * // Open the device - * haptic = SDL_HapticOpen( 0 ); - * if (haptic == NULL) - * return -1; - * - * // Initialize simple rumble - * if (SDL_HapticRumbleInit( haptic ) != 0) - * return -1; - * - * // Play effect at 50% strength for 2 seconds - * if (SDL_HapticRumblePlay( haptic, 0.5, 2000 ) != 0) - * return -1; - * SDL_Delay( 2000 ); - * - * // Clean up - * SDL_HapticClose( haptic ); - * \endcode - * - * \par Complete example: - * \code - * int test_haptic( SDL_Joystick * joystick ) { - * SDL_Haptic *haptic; - * SDL_HapticEffect effect; - * int effect_id; - * - * // Open the device - * haptic = SDL_HapticOpenFromJoystick( joystick ); - * if (haptic == NULL) return -1; // Most likely joystick isn't haptic - * - * // See if it can do sine waves - * if ((SDL_HapticQuery(haptic) & SDL_HAPTIC_SINE)==0) { - * SDL_HapticClose(haptic); // No sine effect - * return -1; - * } - * - * // Create the effect - * memset( &effect, 0, sizeof(SDL_HapticEffect) ); // 0 is safe default - * effect.type = SDL_HAPTIC_SINE; - * effect.periodic.direction.type = SDL_HAPTIC_POLAR; // Polar coordinates - * effect.periodic.direction.dir[0] = 18000; // Force comes from south - * effect.periodic.period = 1000; // 1000 ms - * effect.periodic.magnitude = 20000; // 20000/32767 strength - * effect.periodic.length = 5000; // 5 seconds long - * effect.periodic.attack_length = 1000; // Takes 1 second to get max strength - * effect.periodic.fade_length = 1000; // Takes 1 second to fade away - * - * // Upload the effect - * effect_id = SDL_HapticNewEffect( haptic, &effect ); - * - * // Test the effect - * SDL_HapticRunEffect( haptic, effect_id, 1 ); - * SDL_Delay( 5000); // Wait for the effect to finish - * - * // We destroy the effect, although closing the device also does this - * SDL_HapticDestroyEffect( haptic, effect_id ); - * - * // Close the device - * SDL_HapticClose(haptic); - * - * return 0; // Success - * } - * \endcode - */ - -#ifndef _SDL_haptic_h -#define _SDL_haptic_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_joystick.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * \typedef SDL_Haptic - * - * \brief The haptic structure used to identify an SDL haptic. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticOpenFromJoystick - * \sa SDL_HapticClose - */ -struct _SDL_Haptic; -typedef struct _SDL_Haptic SDL_Haptic; - - -/** - * \name Haptic features - * - * Different haptic features a device can have. - */ -/* @{ */ - -/** - * \name Haptic effects - */ -/* @{ */ - -/** - * \brief Constant effect supported. - * - * Constant haptic effect. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_CONSTANT (1u<<0) - -/** - * \brief Sine wave effect supported. - * - * Periodic haptic effect that simulates sine waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SINE (1u<<1) - -/** - * \brief Left/Right effect supported. - * - * Haptic effect for direct control over high/low frequency motors. - * - * \sa SDL_HapticLeftRight - * \warning this value was SDL_HAPTIC_SQUARE right before 2.0.0 shipped. Sorry, - * we ran out of bits, and this is important for XInput devices. - */ -#define SDL_HAPTIC_LEFTRIGHT (1u<<2) - -/* !!! FIXME: put this back when we have more bits in 2.1 */ -/* #define SDL_HAPTIC_SQUARE (1<<2) */ - -/** - * \brief Triangle wave effect supported. - * - * Periodic haptic effect that simulates triangular waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_TRIANGLE (1u<<3) - -/** - * \brief Sawtoothup wave effect supported. - * - * Periodic haptic effect that simulates saw tooth up waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SAWTOOTHUP (1u<<4) - -/** - * \brief Sawtoothdown wave effect supported. - * - * Periodic haptic effect that simulates saw tooth down waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SAWTOOTHDOWN (1u<<5) - -/** - * \brief Ramp effect supported. - * - * Ramp haptic effect. - * - * \sa SDL_HapticRamp - */ -#define SDL_HAPTIC_RAMP (1u<<6) - -/** - * \brief Spring effect supported - uses axes position. - * - * Condition haptic effect that simulates a spring. Effect is based on the - * axes position. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_SPRING (1u<<7) - -/** - * \brief Damper effect supported - uses axes velocity. - * - * Condition haptic effect that simulates dampening. Effect is based on the - * axes velocity. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_DAMPER (1u<<8) - -/** - * \brief Inertia effect supported - uses axes acceleration. - * - * Condition haptic effect that simulates inertia. Effect is based on the axes - * acceleration. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_INERTIA (1u<<9) - -/** - * \brief Friction effect supported - uses axes movement. - * - * Condition haptic effect that simulates friction. Effect is based on the - * axes movement. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_FRICTION (1u<<10) - -/** - * \brief Custom effect is supported. - * - * User defined custom haptic effect. - */ -#define SDL_HAPTIC_CUSTOM (1u<<11) - -/* @} *//* Haptic effects */ - -/* These last few are features the device has, not effects */ - -/** - * \brief Device can set global gain. - * - * Device supports setting the global gain. - * - * \sa SDL_HapticSetGain - */ -#define SDL_HAPTIC_GAIN (1u<<12) - -/** - * \brief Device can set autocenter. - * - * Device supports setting autocenter. - * - * \sa SDL_HapticSetAutocenter - */ -#define SDL_HAPTIC_AUTOCENTER (1u<<13) - -/** - * \brief Device can be queried for effect status. - * - * Device can be queried for effect status. - * - * \sa SDL_HapticGetEffectStatus - */ -#define SDL_HAPTIC_STATUS (1u<<14) - -/** - * \brief Device can be paused. - * - * \sa SDL_HapticPause - * \sa SDL_HapticUnpause - */ -#define SDL_HAPTIC_PAUSE (1u<<15) - - -/** - * \name Direction encodings - */ -/* @{ */ - -/** - * \brief Uses polar coordinates for the direction. - * - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_POLAR 0 - -/** - * \brief Uses cartesian coordinates for the direction. - * - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_CARTESIAN 1 - -/** - * \brief Uses spherical coordinates for the direction. - * - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_SPHERICAL 2 - -/* @} *//* Direction encodings */ - -/* @} *//* Haptic features */ - -/* - * Misc defines. - */ - -/** - * \brief Used to play a device an infinite number of times. - * - * \sa SDL_HapticRunEffect - */ -#define SDL_HAPTIC_INFINITY 4294967295U - - -/** - * \brief Structure that represents a haptic direction. - * - * This is the direction where the force comes from, - * instead of the direction in which the force is exerted. - * - * Directions can be specified by: - * - ::SDL_HAPTIC_POLAR : Specified by polar coordinates. - * - ::SDL_HAPTIC_CARTESIAN : Specified by cartesian coordinates. - * - ::SDL_HAPTIC_SPHERICAL : Specified by spherical coordinates. - * - * Cardinal directions of the haptic device are relative to the positioning - * of the device. North is considered to be away from the user. - * - * The following diagram represents the cardinal directions: - * \verbatim - .--. - |__| .-------. - |=.| |.-----.| - |--| || || - | | |'-----'| - |__|~')_____(' - [ COMPUTER ] - - - North (0,-1) - ^ - | - | - (-1,0) West <----[ HAPTIC ]----> East (1,0) - | - | - v - South (0,1) - - - [ USER ] - \|||/ - (o o) - ---ooO-(_)-Ooo--- - \endverbatim - * - * If type is ::SDL_HAPTIC_POLAR, direction is encoded by hundredths of a - * degree starting north and turning clockwise. ::SDL_HAPTIC_POLAR only uses - * the first \c dir parameter. The cardinal directions would be: - * - North: 0 (0 degrees) - * - East: 9000 (90 degrees) - * - South: 18000 (180 degrees) - * - West: 27000 (270 degrees) - * - * If type is ::SDL_HAPTIC_CARTESIAN, direction is encoded by three positions - * (X axis, Y axis and Z axis (with 3 axes)). ::SDL_HAPTIC_CARTESIAN uses - * the first three \c dir parameters. The cardinal directions would be: - * - North: 0,-1, 0 - * - East: 1, 0, 0 - * - South: 0, 1, 0 - * - West: -1, 0, 0 - * - * The Z axis represents the height of the effect if supported, otherwise - * it's unused. In cartesian encoding (1, 2) would be the same as (2, 4), you - * can use any multiple you want, only the direction matters. - * - * If type is ::SDL_HAPTIC_SPHERICAL, direction is encoded by two rotations. - * The first two \c dir parameters are used. The \c dir parameters are as - * follows (all values are in hundredths of degrees): - * - Degrees from (1, 0) rotated towards (0, 1). - * - Degrees towards (0, 0, 1) (device needs at least 3 axes). - * - * - * Example of force coming from the south with all encodings (force coming - * from the south means the user will have to pull the stick to counteract): - * \code - * SDL_HapticDirection direction; - * - * // Cartesian directions - * direction.type = SDL_HAPTIC_CARTESIAN; // Using cartesian direction encoding. - * direction.dir[0] = 0; // X position - * direction.dir[1] = 1; // Y position - * // Assuming the device has 2 axes, we don't need to specify third parameter. - * - * // Polar directions - * direction.type = SDL_HAPTIC_POLAR; // We'll be using polar direction encoding. - * direction.dir[0] = 18000; // Polar only uses first parameter - * - * // Spherical coordinates - * direction.type = SDL_HAPTIC_SPHERICAL; // Spherical encoding - * direction.dir[0] = 9000; // Since we only have two axes we don't need more parameters. - * \endcode - * - * \sa SDL_HAPTIC_POLAR - * \sa SDL_HAPTIC_CARTESIAN - * \sa SDL_HAPTIC_SPHERICAL - * \sa SDL_HapticEffect - * \sa SDL_HapticNumAxes - */ -typedef struct SDL_HapticDirection -{ - Uint8 type; /**< The type of encoding. */ - Sint32 dir[3]; /**< The encoded direction. */ -} SDL_HapticDirection; - - -/** - * \brief A structure containing a template for a Constant effect. - * - * The struct is exclusive to the ::SDL_HAPTIC_CONSTANT effect. - * - * A constant effect applies a constant force in the specified direction - * to the joystick. - * - * \sa SDL_HAPTIC_CONSTANT - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticConstant -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_CONSTANT */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Constant */ - Sint16 level; /**< Strength of the constant effect. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticConstant; - -/** - * \brief A structure containing a template for a Periodic effect. - * - * The struct handles the following effects: - * - ::SDL_HAPTIC_SINE - * - ::SDL_HAPTIC_LEFTRIGHT - * - ::SDL_HAPTIC_TRIANGLE - * - ::SDL_HAPTIC_SAWTOOTHUP - * - ::SDL_HAPTIC_SAWTOOTHDOWN - * - * A periodic effect consists in a wave-shaped effect that repeats itself - * over time. The type determines the shape of the wave and the parameters - * determine the dimensions of the wave. - * - * Phase is given by hundredth of a degree meaning that giving the phase a value - * of 9000 will displace it 25% of its period. Here are sample values: - * - 0: No phase displacement. - * - 9000: Displaced 25% of its period. - * - 18000: Displaced 50% of its period. - * - 27000: Displaced 75% of its period. - * - 36000: Displaced 100% of its period, same as 0, but 0 is preferred. - * - * Examples: - * \verbatim - SDL_HAPTIC_SINE - __ __ __ __ - / \ / \ / \ / - / \__/ \__/ \__/ - - SDL_HAPTIC_SQUARE - __ __ __ __ __ - | | | | | | | | | | - | |__| |__| |__| |__| | - - SDL_HAPTIC_TRIANGLE - /\ /\ /\ /\ /\ - / \ / \ / \ / \ / - / \/ \/ \/ \/ - - SDL_HAPTIC_SAWTOOTHUP - /| /| /| /| /| /| /| - / | / | / | / | / | / | / | - / |/ |/ |/ |/ |/ |/ | - - SDL_HAPTIC_SAWTOOTHDOWN - \ |\ |\ |\ |\ |\ |\ | - \ | \ | \ | \ | \ | \ | \ | - \| \| \| \| \| \| \| - \endverbatim - * - * \sa SDL_HAPTIC_SINE - * \sa SDL_HAPTIC_LEFTRIGHT - * \sa SDL_HAPTIC_TRIANGLE - * \sa SDL_HAPTIC_SAWTOOTHUP - * \sa SDL_HAPTIC_SAWTOOTHDOWN - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticPeriodic -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_SINE, ::SDL_HAPTIC_LEFTRIGHT, - ::SDL_HAPTIC_TRIANGLE, ::SDL_HAPTIC_SAWTOOTHUP or - ::SDL_HAPTIC_SAWTOOTHDOWN */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Periodic */ - Uint16 period; /**< Period of the wave. */ - Sint16 magnitude; /**< Peak value; if negative, equivalent to 180 degrees extra phase shift. */ - Sint16 offset; /**< Mean value of the wave. */ - Uint16 phase; /**< Positive phase shift given by hundredth of a degree. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticPeriodic; - -/** - * \brief A structure containing a template for a Condition effect. - * - * The struct handles the following effects: - * - ::SDL_HAPTIC_SPRING: Effect based on axes position. - * - ::SDL_HAPTIC_DAMPER: Effect based on axes velocity. - * - ::SDL_HAPTIC_INERTIA: Effect based on axes acceleration. - * - ::SDL_HAPTIC_FRICTION: Effect based on axes movement. - * - * Direction is handled by condition internals instead of a direction member. - * The condition effect specific members have three parameters. The first - * refers to the X axis, the second refers to the Y axis and the third - * refers to the Z axis. The right terms refer to the positive side of the - * axis and the left terms refer to the negative side of the axis. Please - * refer to the ::SDL_HapticDirection diagram for which side is positive and - * which is negative. - * - * \sa SDL_HapticDirection - * \sa SDL_HAPTIC_SPRING - * \sa SDL_HAPTIC_DAMPER - * \sa SDL_HAPTIC_INERTIA - * \sa SDL_HAPTIC_FRICTION - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticCondition -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_SPRING, ::SDL_HAPTIC_DAMPER, - ::SDL_HAPTIC_INERTIA or ::SDL_HAPTIC_FRICTION */ - SDL_HapticDirection direction; /**< Direction of the effect - Not used ATM. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Condition */ - Uint16 right_sat[3]; /**< Level when joystick is to the positive side; max 0xFFFF. */ - Uint16 left_sat[3]; /**< Level when joystick is to the negative side; max 0xFFFF. */ - Sint16 right_coeff[3]; /**< How fast to increase the force towards the positive side. */ - Sint16 left_coeff[3]; /**< How fast to increase the force towards the negative side. */ - Uint16 deadband[3]; /**< Size of the dead zone; max 0xFFFF: whole axis-range when 0-centered. */ - Sint16 center[3]; /**< Position of the dead zone. */ -} SDL_HapticCondition; - -/** - * \brief A structure containing a template for a Ramp effect. - * - * This struct is exclusively for the ::SDL_HAPTIC_RAMP effect. - * - * The ramp effect starts at start strength and ends at end strength. - * It augments in linear fashion. If you use attack and fade with a ramp - * the effects get added to the ramp effect making the effect become - * quadratic instead of linear. - * - * \sa SDL_HAPTIC_RAMP - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticRamp -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_RAMP */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Ramp */ - Sint16 start; /**< Beginning strength level. */ - Sint16 end; /**< Ending strength level. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticRamp; - -/** - * \brief A structure containing a template for a Left/Right effect. - * - * This struct is exclusively for the ::SDL_HAPTIC_LEFTRIGHT effect. - * - * The Left/Right effect is used to explicitly control the large and small - * motors, commonly found in modern game controllers. One motor is high - * frequency, the other is low frequency. - * - * \sa SDL_HAPTIC_LEFTRIGHT - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticLeftRight -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_LEFTRIGHT */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - - /* Rumble */ - Uint16 large_magnitude; /**< Control of the large controller motor. */ - Uint16 small_magnitude; /**< Control of the small controller motor. */ -} SDL_HapticLeftRight; - -/** - * \brief A structure containing a template for the ::SDL_HAPTIC_CUSTOM effect. - * - * A custom force feedback effect is much like a periodic effect, where the - * application can define its exact shape. You will have to allocate the - * data yourself. Data should consist of channels * samples Uint16 samples. - * - * If channels is one, the effect is rotated using the defined direction. - * Otherwise it uses the samples in data for the different axes. - * - * \sa SDL_HAPTIC_CUSTOM - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticCustom -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_CUSTOM */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Custom */ - Uint8 channels; /**< Axes to use, minimum of one. */ - Uint16 period; /**< Sample periods. */ - Uint16 samples; /**< Amount of samples. */ - Uint16 *data; /**< Should contain channels*samples items. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticCustom; - -/** - * \brief The generic template for any haptic effect. - * - * All values max at 32767 (0x7FFF). Signed values also can be negative. - * Time values unless specified otherwise are in milliseconds. - * - * You can also pass ::SDL_HAPTIC_INFINITY to length instead of a 0-32767 - * value. Neither delay, interval, attack_length nor fade_length support - * ::SDL_HAPTIC_INFINITY. Fade will also not be used since effect never ends. - * - * Additionally, the ::SDL_HAPTIC_RAMP effect does not support a duration of - * ::SDL_HAPTIC_INFINITY. - * - * Button triggers may not be supported on all devices, it is advised to not - * use them if possible. Buttons start at index 1 instead of index 0 like - * the joystick. - * - * If both attack_length and fade_level are 0, the envelope is not used, - * otherwise both values are used. - * - * Common parts: - * \code - * // Replay - All effects have this - * Uint32 length; // Duration of effect (ms). - * Uint16 delay; // Delay before starting effect. - * - * // Trigger - All effects have this - * Uint16 button; // Button that triggers effect. - * Uint16 interval; // How soon before effect can be triggered again. - * - * // Envelope - All effects except condition effects have this - * Uint16 attack_length; // Duration of the attack (ms). - * Uint16 attack_level; // Level at the start of the attack. - * Uint16 fade_length; // Duration of the fade out (ms). - * Uint16 fade_level; // Level at the end of the fade. - * \endcode - * - * - * Here we have an example of a constant effect evolution in time: - * \verbatim - Strength - ^ - | - | effect level --> _________________ - | / \ - | / \ - | / \ - | / \ - | attack_level --> | \ - | | | <--- fade_level - | - +--------------------------------------------------> Time - [--] [---] - attack_length fade_length - - [------------------][-----------------------] - delay length - \endverbatim - * - * Note either the attack_level or the fade_level may be above the actual - * effect level. - * - * \sa SDL_HapticConstant - * \sa SDL_HapticPeriodic - * \sa SDL_HapticCondition - * \sa SDL_HapticRamp - * \sa SDL_HapticLeftRight - * \sa SDL_HapticCustom - */ -typedef union SDL_HapticEffect -{ - /* Common for all force feedback effects */ - Uint16 type; /**< Effect type. */ - SDL_HapticConstant constant; /**< Constant effect. */ - SDL_HapticPeriodic periodic; /**< Periodic effect. */ - SDL_HapticCondition condition; /**< Condition effect. */ - SDL_HapticRamp ramp; /**< Ramp effect. */ - SDL_HapticLeftRight leftright; /**< Left/Right effect. */ - SDL_HapticCustom custom; /**< Custom effect. */ -} SDL_HapticEffect; - - -/* Function prototypes */ -/** - * \brief Count the number of haptic devices attached to the system. - * - * \return Number of haptic devices detected on the system. - */ -extern DECLSPEC int SDLCALL SDL_NumHaptics(void); - -/** - * \brief Get the implementation dependent name of a Haptic device. - * - * This can be called before any joysticks are opened. - * If no name can be found, this function returns NULL. - * - * \param device_index Index of the device to get its name. - * \return Name of the device or NULL on error. - * - * \sa SDL_NumHaptics - */ -extern DECLSPEC const char *SDLCALL SDL_HapticName(int device_index); - -/** - * \brief Opens a Haptic device for usage. - * - * The index passed as an argument refers to the N'th Haptic device on this - * system. - * - * When opening a haptic device, its gain will be set to maximum and - * autocenter will be disabled. To modify these values use - * SDL_HapticSetGain() and SDL_HapticSetAutocenter(). - * - * \param device_index Index of the device to open. - * \return Device identifier or NULL on error. - * - * \sa SDL_HapticIndex - * \sa SDL_HapticOpenFromMouse - * \sa SDL_HapticOpenFromJoystick - * \sa SDL_HapticClose - * \sa SDL_HapticSetGain - * \sa SDL_HapticSetAutocenter - * \sa SDL_HapticPause - * \sa SDL_HapticStopAll - */ -extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpen(int device_index); - -/** - * \brief Checks if the haptic device at index has been opened. - * - * \param device_index Index to check to see if it has been opened. - * \return 1 if it has been opened or 0 if it hasn't. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticIndex - */ -extern DECLSPEC int SDLCALL SDL_HapticOpened(int device_index); - -/** - * \brief Gets the index of a haptic device. - * - * \param haptic Haptic device to get the index of. - * \return The index of the haptic device or -1 on error. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticOpened - */ -extern DECLSPEC int SDLCALL SDL_HapticIndex(SDL_Haptic * haptic); - -/** - * \brief Gets whether or not the current mouse has haptic capabilities. - * - * \return SDL_TRUE if the mouse is haptic, SDL_FALSE if it isn't. - * - * \sa SDL_HapticOpenFromMouse - */ -extern DECLSPEC int SDLCALL SDL_MouseIsHaptic(void); - -/** - * \brief Tries to open a haptic device from the current mouse. - * - * \return The haptic device identifier or NULL on error. - * - * \sa SDL_MouseIsHaptic - * \sa SDL_HapticOpen - */ -extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromMouse(void); - -/** - * \brief Checks to see if a joystick has haptic features. - * - * \param joystick Joystick to test for haptic capabilities. - * \return 1 if the joystick is haptic, 0 if it isn't - * or -1 if an error ocurred. - * - * \sa SDL_HapticOpenFromJoystick - */ -extern DECLSPEC int SDLCALL SDL_JoystickIsHaptic(SDL_Joystick * joystick); - -/** - * \brief Opens a Haptic device for usage from a Joystick device. - * - * You must still close the haptic device separately. It will not be closed - * with the joystick. - * - * When opening from a joystick you should first close the haptic device before - * closing the joystick device. If not, on some implementations the haptic - * device will also get unallocated and you'll be unable to use force feedback - * on that device. - * - * \param joystick Joystick to create a haptic device from. - * \return A valid haptic device identifier on success or NULL on error. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticClose - */ -extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromJoystick(SDL_Joystick * - joystick); - -/** - * \brief Closes a Haptic device previously opened with SDL_HapticOpen(). - * - * \param haptic Haptic device to close. - */ -extern DECLSPEC void SDLCALL SDL_HapticClose(SDL_Haptic * haptic); - -/** - * \brief Returns the number of effects a haptic device can store. - * - * On some platforms this isn't fully supported, and therefore is an - * approximation. Always check to see if your created effect was actually - * created and do not rely solely on SDL_HapticNumEffects(). - * - * \param haptic The haptic device to query effect max. - * \return The number of effects the haptic device can store or - * -1 on error. - * - * \sa SDL_HapticNumEffectsPlaying - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticNumEffects(SDL_Haptic * haptic); - -/** - * \brief Returns the number of effects a haptic device can play at the same - * time. - * - * This is not supported on all platforms, but will always return a value. - * Added here for the sake of completeness. - * - * \param haptic The haptic device to query maximum playing effects. - * \return The number of effects the haptic device can play at the same time - * or -1 on error. - * - * \sa SDL_HapticNumEffects - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticNumEffectsPlaying(SDL_Haptic * haptic); - -/** - * \brief Gets the haptic device's supported features in bitwise manner. - * - * Example: - * \code - * if (SDL_HapticQuery(haptic) & SDL_HAPTIC_CONSTANT) { - * printf("We have constant haptic effect!"); - * } - * \endcode - * - * \param haptic The haptic device to query. - * \return Haptic features in bitwise manner (OR'd). - * - * \sa SDL_HapticNumEffects - * \sa SDL_HapticEffectSupported - */ -extern DECLSPEC unsigned int SDLCALL SDL_HapticQuery(SDL_Haptic * haptic); - - -/** - * \brief Gets the number of haptic axes the device has. - * - * \sa SDL_HapticDirection - */ -extern DECLSPEC int SDLCALL SDL_HapticNumAxes(SDL_Haptic * haptic); - -/** - * \brief Checks to see if effect is supported by haptic. - * - * \param haptic Haptic device to check on. - * \param effect Effect to check to see if it is supported. - * \return SDL_TRUE if effect is supported, SDL_FALSE if it isn't or -1 on error. - * - * \sa SDL_HapticQuery - * \sa SDL_HapticNewEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticEffectSupported(SDL_Haptic * haptic, - SDL_HapticEffect * - effect); - -/** - * \brief Creates a new haptic effect on the device. - * - * \param haptic Haptic device to create the effect on. - * \param effect Properties of the effect to create. - * \return The id of the effect on success or -1 on error. - * - * \sa SDL_HapticUpdateEffect - * \sa SDL_HapticRunEffect - * \sa SDL_HapticDestroyEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticNewEffect(SDL_Haptic * haptic, - SDL_HapticEffect * effect); - -/** - * \brief Updates the properties of an effect. - * - * Can be used dynamically, although behaviour when dynamically changing - * direction may be strange. Specifically the effect may reupload itself - * and start playing from the start. You cannot change the type either when - * running SDL_HapticUpdateEffect(). - * - * \param haptic Haptic device that has the effect. - * \param effect Effect to update. - * \param data New effect properties to use. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticNewEffect - * \sa SDL_HapticRunEffect - * \sa SDL_HapticDestroyEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticUpdateEffect(SDL_Haptic * haptic, - int effect, - SDL_HapticEffect * data); - -/** - * \brief Runs the haptic effect on its associated haptic device. - * - * If iterations are ::SDL_HAPTIC_INFINITY, it'll run the effect over and over - * repeating the envelope (attack and fade) every time. If you only want the - * effect to last forever, set ::SDL_HAPTIC_INFINITY in the effect's length - * parameter. - * - * \param haptic Haptic device to run the effect on. - * \param effect Identifier of the haptic effect to run. - * \param iterations Number of iterations to run the effect. Use - * ::SDL_HAPTIC_INFINITY for infinity. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticStopEffect - * \sa SDL_HapticDestroyEffect - * \sa SDL_HapticGetEffectStatus - */ -extern DECLSPEC int SDLCALL SDL_HapticRunEffect(SDL_Haptic * haptic, - int effect, - Uint32 iterations); - -/** - * \brief Stops the haptic effect on its associated haptic device. - * - * \param haptic Haptic device to stop the effect on. - * \param effect Identifier of the effect to stop. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticRunEffect - * \sa SDL_HapticDestroyEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticStopEffect(SDL_Haptic * haptic, - int effect); - -/** - * \brief Destroys a haptic effect on the device. - * - * This will stop the effect if it's running. Effects are automatically - * destroyed when the device is closed. - * - * \param haptic Device to destroy the effect on. - * \param effect Identifier of the effect to destroy. - * - * \sa SDL_HapticNewEffect - */ -extern DECLSPEC void SDLCALL SDL_HapticDestroyEffect(SDL_Haptic * haptic, - int effect); - -/** - * \brief Gets the status of the current effect on the haptic device. - * - * Device must support the ::SDL_HAPTIC_STATUS feature. - * - * \param haptic Haptic device to query the effect status on. - * \param effect Identifier of the effect to query its status. - * \return 0 if it isn't playing, 1 if it is playing or -1 on error. - * - * \sa SDL_HapticRunEffect - * \sa SDL_HapticStopEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticGetEffectStatus(SDL_Haptic * haptic, - int effect); - -/** - * \brief Sets the global gain of the device. - * - * Device must support the ::SDL_HAPTIC_GAIN feature. - * - * The user may specify the maximum gain by setting the environment variable - * SDL_HAPTIC_GAIN_MAX which should be between 0 and 100. All calls to - * SDL_HapticSetGain() will scale linearly using SDL_HAPTIC_GAIN_MAX as the - * maximum. - * - * \param haptic Haptic device to set the gain on. - * \param gain Value to set the gain to, should be between 0 and 100. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticSetGain(SDL_Haptic * haptic, int gain); - -/** - * \brief Sets the global autocenter of the device. - * - * Autocenter should be between 0 and 100. Setting it to 0 will disable - * autocentering. - * - * Device must support the ::SDL_HAPTIC_AUTOCENTER feature. - * - * \param haptic Haptic device to set autocentering on. - * \param autocenter Value to set autocenter to, 0 disables autocentering. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticSetAutocenter(SDL_Haptic * haptic, - int autocenter); - -/** - * \brief Pauses a haptic device. - * - * Device must support the ::SDL_HAPTIC_PAUSE feature. Call - * SDL_HapticUnpause() to resume playback. - * - * Do not modify the effects nor add new ones while the device is paused. - * That can cause all sorts of weird errors. - * - * \param haptic Haptic device to pause. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticUnpause - */ -extern DECLSPEC int SDLCALL SDL_HapticPause(SDL_Haptic * haptic); - -/** - * \brief Unpauses a haptic device. - * - * Call to unpause after SDL_HapticPause(). - * - * \param haptic Haptic device to unpause. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticPause - */ -extern DECLSPEC int SDLCALL SDL_HapticUnpause(SDL_Haptic * haptic); - -/** - * \brief Stops all the currently playing effects on a haptic device. - * - * \param haptic Haptic device to stop. - * \return 0 on success or -1 on error. - */ -extern DECLSPEC int SDLCALL SDL_HapticStopAll(SDL_Haptic * haptic); - -/** - * \brief Checks to see if rumble is supported on a haptic device. - * - * \param haptic Haptic device to check to see if it supports rumble. - * \return SDL_TRUE if effect is supported, SDL_FALSE if it isn't or -1 on error. - * - * \sa SDL_HapticRumbleInit - * \sa SDL_HapticRumblePlay - * \sa SDL_HapticRumbleStop - */ -extern DECLSPEC int SDLCALL SDL_HapticRumbleSupported(SDL_Haptic * haptic); - -/** - * \brief Initializes the haptic device for simple rumble playback. - * - * \param haptic Haptic device to initialize for simple rumble playback. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticRumbleSupported - * \sa SDL_HapticRumblePlay - * \sa SDL_HapticRumbleStop - */ -extern DECLSPEC int SDLCALL SDL_HapticRumbleInit(SDL_Haptic * haptic); - -/** - * \brief Runs simple rumble on a haptic device - * - * \param haptic Haptic device to play rumble effect on. - * \param strength Strength of the rumble to play as a 0-1 float value. - * \param length Length of the rumble to play in milliseconds. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticRumbleSupported - * \sa SDL_HapticRumbleInit - * \sa SDL_HapticRumbleStop - */ -extern DECLSPEC int SDLCALL SDL_HapticRumblePlay(SDL_Haptic * haptic, float strength, Uint32 length ); - -/** - * \brief Stops the simple rumble on a haptic device. - * - * \param haptic Haptic to stop the rumble on. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticRumbleSupported - * \sa SDL_HapticRumbleInit - * \sa SDL_HapticRumblePlay - */ -extern DECLSPEC int SDLCALL SDL_HapticRumbleStop(SDL_Haptic * haptic); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_haptic_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_hints.h b/lib/osx/include/SDL_hints.h deleted file mode 100644 index dd15464..0000000 --- a/lib/osx/include/SDL_hints.h +++ /dev/null @@ -1,795 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_hints.h - * - * Official documentation for SDL configuration variables - * - * This file contains functions to set and get configuration hints, - * as well as listing each of them alphabetically. - * - * The convention for naming hints is SDL_HINT_X, where "SDL_X" is - * the environment variable that can be used to override the default. - * - * In general these hints are just that - they may or may not be - * supported or applicable on any given platform, but they provide - * a way for an application or user to give the library a hint as - * to how they would like the library to work. - */ - -#ifndef _SDL_hints_h -#define _SDL_hints_h - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief A variable controlling how 3D acceleration is used to accelerate the SDL screen surface. - * - * SDL can try to accelerate the SDL screen surface by using streaming - * textures with a 3D rendering engine. This variable controls whether and - * how this is done. - * - * This variable can be set to the following values: - * "0" - Disable 3D acceleration - * "1" - Enable 3D acceleration, using the default renderer. - * "X" - Enable 3D acceleration, using X where X is one of the valid rendering drivers. (e.g. "direct3d", "opengl", etc.) - * - * By default SDL tries to make a best guess for each platform whether - * to use acceleration or not. - */ -#define SDL_HINT_FRAMEBUFFER_ACCELERATION "SDL_FRAMEBUFFER_ACCELERATION" - -/** - * \brief A variable specifying which render driver to use. - * - * If the application doesn't pick a specific renderer to use, this variable - * specifies the name of the preferred renderer. If the preferred renderer - * can't be initialized, the normal default renderer is used. - * - * This variable is case insensitive and can be set to the following values: - * "direct3d" - * "opengl" - * "opengles2" - * "opengles" - * "software" - * - * The default varies by platform, but it's the first one in the list that - * is available on the current platform. - */ -#define SDL_HINT_RENDER_DRIVER "SDL_RENDER_DRIVER" - -/** - * \brief A variable controlling whether the OpenGL render driver uses shaders if they are available. - * - * This variable can be set to the following values: - * "0" - Disable shaders - * "1" - Enable shaders - * - * By default shaders are used if OpenGL supports them. - */ -#define SDL_HINT_RENDER_OPENGL_SHADERS "SDL_RENDER_OPENGL_SHADERS" - -/** - * \brief A variable controlling whether the Direct3D device is initialized for thread-safe operations. - * - * This variable can be set to the following values: - * "0" - Thread-safety is not enabled (faster) - * "1" - Thread-safety is enabled - * - * By default the Direct3D device is created with thread-safety disabled. - */ -#define SDL_HINT_RENDER_DIRECT3D_THREADSAFE "SDL_RENDER_DIRECT3D_THREADSAFE" - -/** - * \brief A variable controlling whether to enable Direct3D 11+'s Debug Layer. - * - * This variable does not have any effect on the Direct3D 9 based renderer. - * - * This variable can be set to the following values: - * "0" - Disable Debug Layer use - * "1" - Enable Debug Layer use - * - * By default, SDL does not use Direct3D Debug Layer. - */ -#define SDL_HINT_RENDER_DIRECT3D11_DEBUG "SDL_RENDER_DIRECT3D11_DEBUG" - -/** - * \brief A variable controlling the scaling quality - * - * This variable can be set to the following values: - * "0" or "nearest" - Nearest pixel sampling - * "1" or "linear" - Linear filtering (supported by OpenGL and Direct3D) - * "2" or "best" - Currently this is the same as "linear" - * - * By default nearest pixel sampling is used - */ -#define SDL_HINT_RENDER_SCALE_QUALITY "SDL_RENDER_SCALE_QUALITY" - -/** - * \brief A variable controlling whether updates to the SDL screen surface should be synchronized with the vertical refresh, to avoid tearing. - * - * This variable can be set to the following values: - * "0" - Disable vsync - * "1" - Enable vsync - * - * By default SDL does not sync screen surface updates with vertical refresh. - */ -#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC" - -/** - * \brief A variable controlling whether the screensaver is enabled. - * - * This variable can be set to the following values: - * "0" - Disable screensaver - * "1" - Enable screensaver - * - * By default SDL will disable the screensaver. - */ -#define SDL_HINT_VIDEO_ALLOW_SCREENSAVER "SDL_VIDEO_ALLOW_SCREENSAVER" - -/** - * \brief A variable controlling whether the X11 VidMode extension should be used. - * - * This variable can be set to the following values: - * "0" - Disable XVidMode - * "1" - Enable XVidMode - * - * By default SDL will use XVidMode if it is available. - */ -#define SDL_HINT_VIDEO_X11_XVIDMODE "SDL_VIDEO_X11_XVIDMODE" - -/** - * \brief A variable controlling whether the X11 Xinerama extension should be used. - * - * This variable can be set to the following values: - * "0" - Disable Xinerama - * "1" - Enable Xinerama - * - * By default SDL will use Xinerama if it is available. - */ -#define SDL_HINT_VIDEO_X11_XINERAMA "SDL_VIDEO_X11_XINERAMA" - -/** - * \brief A variable controlling whether the X11 XRandR extension should be used. - * - * This variable can be set to the following values: - * "0" - Disable XRandR - * "1" - Enable XRandR - * - * By default SDL will not use XRandR because of window manager issues. - */ -#define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR" - -/** - * \brief A variable controlling whether the X11 _NET_WM_PING protocol should be supported. - * - * This variable can be set to the following values: - * "0" - Disable _NET_WM_PING - * "1" - Enable _NET_WM_PING - * - * By default SDL will use _NET_WM_PING, but for applications that know they - * will not always be able to respond to ping requests in a timely manner they can - * turn it off to avoid the window manager thinking the app is hung. - * The hint is checked in CreateWindow. - */ -#define SDL_HINT_VIDEO_X11_NET_WM_PING "SDL_VIDEO_X11_NET_WM_PING" - -/** - * \brief A variable controlling whether the window frame and title bar are interactive when the cursor is hidden - * - * This variable can be set to the following values: - * "0" - The window frame is not interactive when the cursor is hidden (no move, resize, etc) - * "1" - The window frame is interactive when the cursor is hidden - * - * By default SDL will allow interaction with the window frame when the cursor is hidden - */ -#define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN" - -/** - * \brief A variable controlling whether the windows message loop is processed by SDL - * - * This variable can be set to the following values: - * "0" - The window message loop is not run - * "1" - The window message loop is processed in SDL_PumpEvents() - * - * By default SDL will process the windows message loop - */ -#define SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP "SDL_WINDOWS_ENABLE_MESSAGELOOP" - -/** - * \brief A variable controlling whether grabbing input grabs the keyboard - * - * This variable can be set to the following values: - * "0" - Grab will affect only the mouse - * "1" - Grab will affect mouse and keyboard - * - * By default SDL will not grab the keyboard so system shortcuts still work. - */ -#define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD" - -/** - * \brief A variable controlling whether relative mouse mode is implemented using mouse warping - * - * This variable can be set to the following values: - * "0" - Relative mouse mode uses raw input - * "1" - Relative mouse mode uses mouse warping - * - * By default SDL will use raw input for relative mouse mode - */ -#define SDL_HINT_MOUSE_RELATIVE_MODE_WARP "SDL_MOUSE_RELATIVE_MODE_WARP" - -/** - * \brief Allow mouse click events when clicking to focus an SDL window - * - * This variable can be set to the following values: - * "0" - Ignore mouse clicks that activate a window - * "1" - Generate events for mouse clicks that activate a window - * - * By default SDL will ignore mouse clicks that activate a window - */ -#define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH "SDL_MOUSE_FOCUS_CLICKTHROUGH" - -/** - * \brief Minimize your SDL_Window if it loses key focus when in fullscreen mode. Defaults to true. - * - */ -#define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS" - -/** - * \brief A variable controlling whether the idle timer is disabled on iOS. - * - * When an iOS app does not receive touches for some time, the screen is - * dimmed automatically. For games where the accelerometer is the only input - * this is problematic. This functionality can be disabled by setting this - * hint. - * - * As of SDL 2.0.4, SDL_EnableScreenSaver() and SDL_DisableScreenSaver() - * accomplish the same thing on iOS. They should be preferred over this hint. - * - * This variable can be set to the following values: - * "0" - Enable idle timer - * "1" - Disable idle timer - */ -#define SDL_HINT_IDLE_TIMER_DISABLED "SDL_IOS_IDLE_TIMER_DISABLED" - -/** - * \brief A variable controlling which orientations are allowed on iOS. - * - * In some circumstances it is necessary to be able to explicitly control - * which UI orientations are allowed. - * - * This variable is a space delimited list of the following values: - * "LandscapeLeft", "LandscapeRight", "Portrait" "PortraitUpsideDown" - */ -#define SDL_HINT_ORIENTATIONS "SDL_IOS_ORIENTATIONS" - -/** - * \brief A variable controlling whether controllers used with the Apple TV - * generate UI events. - * - * When UI events are generated by controller input, the app will be - * backgrounded when the Apple TV remote's menu button is pressed, and when the - * pause or B buttons on gamepads are pressed. - * - * More information about properly making use of controllers for the Apple TV - * can be found here: - * https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/ - * - * This variable can be set to the following values: - * "0" - Controller input does not generate UI events (the default). - * "1" - Controller input generates UI events. - */ -#define SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS "SDL_APPLE_TV_CONTROLLER_UI_EVENTS" - -/** - * \brief A variable controlling whether the Apple TV remote's joystick axes - * will automatically match the rotation of the remote. - * - * This variable can be set to the following values: - * "0" - Remote orientation does not affect joystick axes (the default). - * "1" - Joystick axes are based on the orientation of the remote. - */ -#define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION" - -/** - * \brief A variable controlling whether the Android / iOS built-in - * accelerometer should be listed as a joystick device, rather than listing - * actual joysticks only. - * - * This variable can be set to the following values: - * "0" - List only real joysticks and accept input from them - * "1" - List real joysticks along with the accelerometer as if it were a 3 axis joystick (the default). - */ -#define SDL_HINT_ACCELEROMETER_AS_JOYSTICK "SDL_ACCELEROMETER_AS_JOYSTICK" - - -/** - * \brief A variable that lets you disable the detection and use of Xinput gamepad devices - * - * The variable can be set to the following values: - * "0" - Disable XInput detection (only uses direct input) - * "1" - Enable XInput detection (the default) - */ -#define SDL_HINT_XINPUT_ENABLED "SDL_XINPUT_ENABLED" - - -/** - * \brief A variable that causes SDL to use the old axis and button mapping for XInput devices. - * - * This hint is for backwards compatibility only and will be removed in SDL 2.1 - * - * The default value is "0". This hint must be set before SDL_Init() - */ -#define SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING" - - -/** - * \brief A variable that lets you manually hint extra gamecontroller db entries - * - * The variable should be newline delimited rows of gamecontroller config data, see SDL_gamecontroller.h - * - * This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) - * You can update mappings after the system is initialized with SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping() - */ -#define SDL_HINT_GAMECONTROLLERCONFIG "SDL_GAMECONTROLLERCONFIG" - - -/** - * \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background. - * - * The variable can be set to the following values: - * "0" - Disable joystick & gamecontroller input events when the - * application is in the background. - * "1" - Enable joystick & gamecontroller input events when the - * application is in the background. - * - * The default value is "0". This hint may be set at any time. - */ -#define SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS" - - -/** - * \brief If set to "0" then never set the top most bit on a SDL Window, even if the video mode expects it. - * This is a debugging aid for developers and not expected to be used by end users. The default is "1" - * - * This variable can be set to the following values: - * "0" - don't allow topmost - * "1" - allow topmost - */ -#define SDL_HINT_ALLOW_TOPMOST "SDL_ALLOW_TOPMOST" - - -/** - * \brief A variable that controls the timer resolution, in milliseconds. - * - * The higher resolution the timer, the more frequently the CPU services - * timer interrupts, and the more precise delays are, but this takes up - * power and CPU time. This hint is only used on Windows 7 and earlier. - * - * See this blog post for more information: - * http://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/ - * - * If this variable is set to "0", the system timer resolution is not set. - * - * The default value is "1". This hint may be set at any time. - */ -#define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION" - - - -/** -* \brief A string specifying SDL's threads stack size in bytes or "0" for the backend's default size -* -* Use this hint in case you need to set SDL's threads stack size to other than the default. -* This is specially useful if you build SDL against a non glibc libc library (such as musl) which -* provides a relatively small default thread stack size (a few kilobytes versus the default 8MB glibc uses). -* Support for this hint is currently available only in the pthread, Windows, and PSP backend. -*/ -#define SDL_HINT_THREAD_STACK_SIZE "SDL_THREAD_STACK_SIZE" - -/** - * \brief If set to 1, then do not allow high-DPI windows. ("Retina" on Mac and iOS) - */ -#define SDL_HINT_VIDEO_HIGHDPI_DISABLED "SDL_VIDEO_HIGHDPI_DISABLED" - -/** - * \brief A variable that determines whether ctrl+click should generate a right-click event on Mac - * - * If present, holding ctrl while left clicking will generate a right click - * event when on Mac. - */ -#define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK" - -/** -* \brief A variable specifying which shader compiler to preload when using the Chrome ANGLE binaries -* -* SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It -* can use two different sets of binaries, those compiled by the user from source -* or those provided by the Chrome browser. In the later case, these binaries require -* that SDL loads a DLL providing the shader compiler. -* -* This variable can be set to the following values: -* "d3dcompiler_46.dll" - default, best for Vista or later. -* "d3dcompiler_43.dll" - for XP support. -* "none" - do not load any library, useful if you compiled ANGLE from source and included the compiler in your binaries. -* -*/ -#define SDL_HINT_VIDEO_WIN_D3DCOMPILER "SDL_VIDEO_WIN_D3DCOMPILER" - -/** -* \brief A variable that is the address of another SDL_Window* (as a hex string formatted with "%p"). -* -* If this hint is set before SDL_CreateWindowFrom() and the SDL_Window* it is set to has -* SDL_WINDOW_OPENGL set (and running on WGL only, currently), then two things will occur on the newly -* created SDL_Window: -* -* 1. Its pixel format will be set to the same pixel format as this SDL_Window. This is -* needed for example when sharing an OpenGL context across multiple windows. -* -* 2. The flag SDL_WINDOW_OPENGL will be set on the new window so it can be used for -* OpenGL rendering. -* -* This variable can be set to the following values: -* The address (as a string "%p") of the SDL_Window* that new windows created with SDL_CreateWindowFrom() should -* share a pixel format with. -*/ -#define SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT" - -/** - * \brief A URL to a WinRT app's privacy policy - * - * All network-enabled WinRT apps must make a privacy policy available to its - * users. On Windows 8, 8.1, and RT, Microsoft mandates that this policy be - * be available in the Windows Settings charm, as accessed from within the app. - * SDL provides code to add a URL-based link there, which can point to the app's - * privacy policy. - * - * To setup a URL to an app's privacy policy, set SDL_HINT_WINRT_PRIVACY_POLICY_URL - * before calling any SDL_Init() functions. The contents of the hint should - * be a valid URL. For example, "http://www.example.com". - * - * The default value is "", which will prevent SDL from adding a privacy policy - * link to the Settings charm. This hint should only be set during app init. - * - * The label text of an app's "Privacy Policy" link may be customized via another - * hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. - * - * Please note that on Windows Phone, Microsoft does not provide standard UI - * for displaying a privacy policy link, and as such, SDL_HINT_WINRT_PRIVACY_POLICY_URL - * will not get used on that platform. Network-enabled phone apps should display - * their privacy policy through some other, in-app means. - */ -#define SDL_HINT_WINRT_PRIVACY_POLICY_URL "SDL_WINRT_PRIVACY_POLICY_URL" - -/** \brief Label text for a WinRT app's privacy policy link - * - * Network-enabled WinRT apps must include a privacy policy. On Windows 8, 8.1, and RT, - * Microsoft mandates that this policy be available via the Windows Settings charm. - * SDL provides code to add a link there, with its label text being set via the - * optional hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. - * - * Please note that a privacy policy's contents are not set via this hint. A separate - * hint, SDL_HINT_WINRT_PRIVACY_POLICY_URL, is used to link to the actual text of the - * policy. - * - * The contents of this hint should be encoded as a UTF8 string. - * - * The default value is "Privacy Policy". This hint should only be set during app - * initialization, preferably before any calls to SDL_Init(). - * - * For additional information on linking to a privacy policy, see the documentation for - * SDL_HINT_WINRT_PRIVACY_POLICY_URL. - */ -#define SDL_HINT_WINRT_PRIVACY_POLICY_LABEL "SDL_WINRT_PRIVACY_POLICY_LABEL" - -/** \brief Allows back-button-press events on Windows Phone to be marked as handled - * - * Windows Phone devices typically feature a Back button. When pressed, - * the OS will emit back-button-press events, which apps are expected to - * handle in an appropriate manner. If apps do not explicitly mark these - * events as 'Handled', then the OS will invoke its default behavior for - * unhandled back-button-press events, which on Windows Phone 8 and 8.1 is to - * terminate the app (and attempt to switch to the previous app, or to the - * device's home screen). - * - * Setting the SDL_HINT_WINRT_HANDLE_BACK_BUTTON hint to "1" will cause SDL - * to mark back-button-press events as Handled, if and when one is sent to - * the app. - * - * Internally, Windows Phone sends back button events as parameters to - * special back-button-press callback functions. Apps that need to respond - * to back-button-press events are expected to register one or more - * callback functions for such, shortly after being launched (during the - * app's initialization phase). After the back button is pressed, the OS - * will invoke these callbacks. If the app's callback(s) do not explicitly - * mark the event as handled by the time they return, or if the app never - * registers one of these callback, the OS will consider the event - * un-handled, and it will apply its default back button behavior (terminate - * the app). - * - * SDL registers its own back-button-press callback with the Windows Phone - * OS. This callback will emit a pair of SDL key-press events (SDL_KEYDOWN - * and SDL_KEYUP), each with a scancode of SDL_SCANCODE_AC_BACK, after which - * it will check the contents of the hint, SDL_HINT_WINRT_HANDLE_BACK_BUTTON. - * If the hint's value is set to "1", the back button event's Handled - * property will get set to 'true'. If the hint's value is set to something - * else, or if it is unset, SDL will leave the event's Handled property - * alone. (By default, the OS sets this property to 'false', to note.) - * - * SDL apps can either set SDL_HINT_WINRT_HANDLE_BACK_BUTTON well before a - * back button is pressed, or can set it in direct-response to a back button - * being pressed. - * - * In order to get notified when a back button is pressed, SDL apps should - * register a callback function with SDL_AddEventWatch(), and have it listen - * for SDL_KEYDOWN events that have a scancode of SDL_SCANCODE_AC_BACK. - * (Alternatively, SDL_KEYUP events can be listened-for. Listening for - * either event type is suitable.) Any value of SDL_HINT_WINRT_HANDLE_BACK_BUTTON - * set by such a callback, will be applied to the OS' current - * back-button-press event. - * - * More details on back button behavior in Windows Phone apps can be found - * at the following page, on Microsoft's developer site: - * http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj247550(v=vs.105).aspx - */ -#define SDL_HINT_WINRT_HANDLE_BACK_BUTTON "SDL_WINRT_HANDLE_BACK_BUTTON" - -/** - * \brief A variable that dictates policy for fullscreen Spaces on Mac OS X. - * - * This hint only applies to Mac OS X. - * - * The variable can be set to the following values: - * "0" - Disable Spaces support (FULLSCREEN_DESKTOP won't use them and - * SDL_WINDOW_RESIZABLE windows won't offer the "fullscreen" - * button on their titlebars). - * "1" - Enable Spaces support (FULLSCREEN_DESKTOP will use them and - * SDL_WINDOW_RESIZABLE windows will offer the "fullscreen" - * button on their titlebars). - * - * The default value is "1". Spaces are disabled regardless of this hint if - * the OS isn't at least Mac OS X Lion (10.7). This hint must be set before - * any windows are created. - */ -#define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES "SDL_VIDEO_MAC_FULLSCREEN_SPACES" - -/** -* \brief When set don't force the SDL app to become a foreground process -* -* This hint only applies to Mac OS X. -* -*/ -#define SDL_HINT_MAC_BACKGROUND_APP "SDL_MAC_BACKGROUND_APP" - -/** - * \brief Android APK expansion main file version. Should be a string number like "1", "2" etc. - * - * Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION. - * - * If both hints were set then SDL_RWFromFile() will look into expansion files - * after a given relative path was not found in the internal storage and assets. - * - * By default this hint is not set and the APK expansion files are not searched. - */ -#define SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION" - -/** - * \brief Android APK expansion patch file version. Should be a string number like "1", "2" etc. - * - * Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION. - * - * If both hints were set then SDL_RWFromFile() will look into expansion files - * after a given relative path was not found in the internal storage and assets. - * - * By default this hint is not set and the APK expansion files are not searched. - */ -#define SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION" - -/** - * \brief A variable to control whether certain IMEs should handle text editing internally instead of sending SDL_TEXTEDITING events. - * - * The variable can be set to the following values: - * "0" - SDL_TEXTEDITING events are sent, and it is the application's - * responsibility to render the text from these events and - * differentiate it somehow from committed text. (default) - * "1" - If supported by the IME then SDL_TEXTEDITING events are not sent, - * and text that is being composed will be rendered in its own UI. - */ -#define SDL_HINT_IME_INTERNAL_EDITING "SDL_IME_INTERNAL_EDITING" - - /** - * \brief A variable to control whether mouse and touch events are to be treated together or separately - * - * The variable can be set to the following values: - * "0" - Mouse events will be handled as touch events, and touch will raise fake mouse - * events. This is the behaviour of SDL <= 2.0.3. (default) - * "1" - Mouse events will be handled separately from pure touch events. - * - * The value of this hint is used at runtime, so it can be changed at any time. - */ -#define SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH "SDL_ANDROID_SEPARATE_MOUSE_AND_TOUCH" - -/** - * \brief override the binding element for keyboard inputs for Emscripten builds - * - * This hint only applies to the emscripten platform - * - * The variable can be one of - * "#window" - The javascript window object (this is the default) - * "#document" - The javascript document object - * "#screen" - the javascript window.screen object - * "#canvas" - the WebGL canvas element - * any other string without a leading # sign applies to the element on the page with that ID. - */ -#define SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT" - -/** - * \brief Tell SDL not to catch the SIGINT or SIGTERM signals. - * - * This hint only applies to Unix-like platforms. - * - * The variable can be set to the following values: - * "0" - SDL will install a SIGINT and SIGTERM handler, and when it - * catches a signal, convert it into an SDL_QUIT event. - * "1" - SDL will not install a signal handler at all. - */ -#define SDL_HINT_NO_SIGNAL_HANDLERS "SDL_NO_SIGNAL_HANDLERS" - -/** - * \brief Tell SDL not to generate window-close events for Alt+F4 on Windows. - * - * The variable can be set to the following values: - * "0" - SDL will generate a window-close event when it sees Alt+F4. - * "1" - SDL will only do normal key handling for Alt+F4. - */ -#define SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4" - -/** - * \brief Prevent SDL from using version 4 of the bitmap header when saving BMPs. - * - * The bitmap header version 4 is required for proper alpha channel support and - * SDL will use it when required. Should this not be desired, this hint can - * force the use of the 40 byte header version which is supported everywhere. - * - * The variable can be set to the following values: - * "0" - Surfaces with a colorkey or an alpha channel are saved to a - * 32-bit BMP file with an alpha mask. SDL will use the bitmap - * header version 4 and set the alpha mask accordingly. - * "1" - Surfaces with a colorkey or an alpha channel are saved to a - * 32-bit BMP file without an alpha mask. The alpha channel data - * will be in the file, but applications are going to ignore it. - * - * The default value is "0". - */ -#define SDL_HINT_BMP_SAVE_LEGACY_FORMAT "SDL_BMP_SAVE_LEGACY_FORMAT" - -/** - * \brief Tell SDL not to name threads on Windows. - * - * The variable can be set to the following values: - * "0" - SDL will raise the 0x406D1388 Exception to name threads. - * This is the default behavior of SDL <= 2.0.4. (default) - * "1" - SDL will not raise this exception, and threads will be unnamed. - * For .NET languages this is required when running under a debugger. - */ -#define SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING "SDL_WINDOWS_DISABLE_THREAD_NAMING" - -/** - * \brief Tell SDL which Dispmanx layer to use on a Raspberry PI - * - * Also known as Z-order. The variable can take a negative or positive value. - * The default is 10000. - */ -#define SDL_HINT_RPI_VIDEO_LAYER "SDL_RPI_VIDEO_LAYER" - -/** - * \brief An enumeration of hint priorities - */ -typedef enum -{ - SDL_HINT_DEFAULT, - SDL_HINT_NORMAL, - SDL_HINT_OVERRIDE -} SDL_HintPriority; - - -/** - * \brief Set a hint with a specific priority - * - * The priority controls the behavior when setting a hint that already - * has a value. Hints will replace existing hints of their priority and - * lower. Environment variables are considered to have override priority. - * - * \return SDL_TRUE if the hint was set, SDL_FALSE otherwise - */ -extern DECLSPEC SDL_bool SDLCALL SDL_SetHintWithPriority(const char *name, - const char *value, - SDL_HintPriority priority); - -/** - * \brief Set a hint with normal priority - * - * \return SDL_TRUE if the hint was set, SDL_FALSE otherwise - */ -extern DECLSPEC SDL_bool SDLCALL SDL_SetHint(const char *name, - const char *value); - -/** - * \brief Get a hint - * - * \return The string value of a hint variable. - */ -extern DECLSPEC const char * SDLCALL SDL_GetHint(const char *name); - -/** - * \brief Get a hint - * - * \return The boolean value of a hint variable. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetHintBoolean(const char *name, SDL_bool default_value); - -/** - * \brief Add a function to watch a particular hint - * - * \param name The hint to watch - * \param callback The function to call when the hint value changes - * \param userdata A pointer to pass to the callback function - */ -typedef void (*SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue); -extern DECLSPEC void SDLCALL SDL_AddHintCallback(const char *name, - SDL_HintCallback callback, - void *userdata); - -/** - * \brief Remove a function watching a particular hint - * - * \param name The hint being watched - * \param callback The function being called when the hint value changes - * \param userdata A pointer being passed to the callback function - */ -extern DECLSPEC void SDLCALL SDL_DelHintCallback(const char *name, - SDL_HintCallback callback, - void *userdata); - -/** - * \brief Clear all hints - * - * This function is called during SDL_Quit() to free stored hints. - */ -extern DECLSPEC void SDLCALL SDL_ClearHints(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_hints_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_joystick.h b/lib/osx/include/SDL_joystick.h deleted file mode 100644 index f5dbc94..0000000 --- a/lib/osx/include/SDL_joystick.h +++ /dev/null @@ -1,273 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_joystick.h - * - * Include file for SDL joystick event handling - * - * The term "device_index" identifies currently plugged in joystick devices between 0 and SDL_NumJoysticks(), with the exact joystick - * behind a device_index changing as joysticks are plugged and unplugged. - * - * The term "instance_id" is the current instantiation of a joystick device in the system, if the joystick is removed and then re-inserted - * then it will get a new instance_id, instance_id's are monotonically increasing identifiers of a joystick plugged in. - * - * The term JoystickGUID is a stable 128-bit identifier for a joystick device that does not change over time, it identifies class of - * the device (a X360 wired controller for example). This identifier is platform dependent. - * - * - */ - -#ifndef _SDL_joystick_h -#define _SDL_joystick_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file SDL_joystick.h - * - * In order to use these functions, SDL_Init() must have been called - * with the ::SDL_INIT_JOYSTICK flag. This causes SDL to scan the system - * for joysticks, and load appropriate drivers. - * - * If you would like to receive joystick updates while the application - * is in the background, you should set the following hint before calling - * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS - */ - -/* The joystick structure used to identify an SDL joystick */ -struct _SDL_Joystick; -typedef struct _SDL_Joystick SDL_Joystick; - -/* A structure that encodes the stable unique id for a joystick device */ -typedef struct { - Uint8 data[16]; -} SDL_JoystickGUID; - -typedef Sint32 SDL_JoystickID; - -typedef enum -{ - SDL_JOYSTICK_POWER_UNKNOWN = -1, - SDL_JOYSTICK_POWER_EMPTY, - SDL_JOYSTICK_POWER_LOW, - SDL_JOYSTICK_POWER_MEDIUM, - SDL_JOYSTICK_POWER_FULL, - SDL_JOYSTICK_POWER_WIRED, - SDL_JOYSTICK_POWER_MAX -} SDL_JoystickPowerLevel; - -/* Function prototypes */ -/** - * Count the number of joysticks attached to the system right now - */ -extern DECLSPEC int SDLCALL SDL_NumJoysticks(void); - -/** - * Get the implementation dependent name of a joystick. - * This can be called before any joysticks are opened. - * If no name can be found, this function returns NULL. - */ -extern DECLSPEC const char *SDLCALL SDL_JoystickNameForIndex(int device_index); - -/** - * Open a joystick for use. - * The index passed as an argument refers to the N'th joystick on the system. - * This index is not the value which will identify this joystick in future - * joystick events. The joystick's instance id (::SDL_JoystickID) will be used - * there instead. - * - * \return A joystick identifier, or NULL if an error occurred. - */ -extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickOpen(int device_index); - -/** - * Return the SDL_Joystick associated with an instance id. - */ -extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickFromInstanceID(SDL_JoystickID joyid); - -/** - * Return the name for this currently opened joystick. - * If no name can be found, this function returns NULL. - */ -extern DECLSPEC const char *SDLCALL SDL_JoystickName(SDL_Joystick * joystick); - -/** - * Return the GUID for the joystick at this index - */ -extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetDeviceGUID(int device_index); - -/** - * Return the GUID for this opened joystick - */ -extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUID(SDL_Joystick * joystick); - -/** - * Return a string representation for this guid. pszGUID must point to at least 33 bytes - * (32 for the string plus a NULL terminator). - */ -extern DECLSPEC void SDLCALL SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, char *pszGUID, int cbGUID); - -/** - * convert a string into a joystick formatted guid - */ -extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUIDFromString(const char *pchGUID); - -/** - * Returns SDL_TRUE if the joystick has been opened and currently connected, or SDL_FALSE if it has not. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickGetAttached(SDL_Joystick * joystick); - -/** - * Get the instance ID of an opened joystick or -1 if the joystick is invalid. - */ -extern DECLSPEC SDL_JoystickID SDLCALL SDL_JoystickInstanceID(SDL_Joystick * joystick); - -/** - * Get the number of general axis controls on a joystick. - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumAxes(SDL_Joystick * joystick); - -/** - * Get the number of trackballs on a joystick. - * - * Joystick trackballs have only relative motion events associated - * with them and their state cannot be polled. - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumBalls(SDL_Joystick * joystick); - -/** - * Get the number of POV hats on a joystick. - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumHats(SDL_Joystick * joystick); - -/** - * Get the number of buttons on a joystick. - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumButtons(SDL_Joystick * joystick); - -/** - * Update the current state of the open joysticks. - * - * This is called automatically by the event loop if any joystick - * events are enabled. - */ -extern DECLSPEC void SDLCALL SDL_JoystickUpdate(void); - -/** - * Enable/disable joystick event polling. - * - * If joystick events are disabled, you must call SDL_JoystickUpdate() - * yourself and check the state of the joystick when you want joystick - * information. - * - * The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE. - */ -extern DECLSPEC int SDLCALL SDL_JoystickEventState(int state); - -/** - * Get the current state of an axis control on a joystick. - * - * The state is a value ranging from -32768 to 32767. - * - * The axis indices start at index 0. - */ -extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick * joystick, - int axis); - -/** - * \name Hat positions - */ -/* @{ */ -#define SDL_HAT_CENTERED 0x00 -#define SDL_HAT_UP 0x01 -#define SDL_HAT_RIGHT 0x02 -#define SDL_HAT_DOWN 0x04 -#define SDL_HAT_LEFT 0x08 -#define SDL_HAT_RIGHTUP (SDL_HAT_RIGHT|SDL_HAT_UP) -#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN) -#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP) -#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN) -/* @} */ - -/** - * Get the current state of a POV hat on a joystick. - * - * The hat indices start at index 0. - * - * \return The return value is one of the following positions: - * - ::SDL_HAT_CENTERED - * - ::SDL_HAT_UP - * - ::SDL_HAT_RIGHT - * - ::SDL_HAT_DOWN - * - ::SDL_HAT_LEFT - * - ::SDL_HAT_RIGHTUP - * - ::SDL_HAT_RIGHTDOWN - * - ::SDL_HAT_LEFTUP - * - ::SDL_HAT_LEFTDOWN - */ -extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetHat(SDL_Joystick * joystick, - int hat); - -/** - * Get the ball axis change since the last poll. - * - * \return 0, or -1 if you passed it invalid parameters. - * - * The ball indices start at index 0. - */ -extern DECLSPEC int SDLCALL SDL_JoystickGetBall(SDL_Joystick * joystick, - int ball, int *dx, int *dy); - -/** - * Get the current state of a button on a joystick. - * - * The button indices start at index 0. - */ -extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetButton(SDL_Joystick * joystick, - int button); - -/** - * Close a joystick previously opened with SDL_JoystickOpen(). - */ -extern DECLSPEC void SDLCALL SDL_JoystickClose(SDL_Joystick * joystick); - -/** - * Return the battery level of this joystick - */ -extern DECLSPEC SDL_JoystickPowerLevel SDLCALL SDL_JoystickCurrentPowerLevel(SDL_Joystick * joystick); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_joystick_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_keyboard.h b/lib/osx/include/SDL_keyboard.h deleted file mode 100644 index f80b6d2..0000000 --- a/lib/osx/include/SDL_keyboard.h +++ /dev/null @@ -1,217 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_keyboard.h - * - * Include file for SDL keyboard event handling - */ - -#ifndef _SDL_keyboard_h -#define _SDL_keyboard_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_keycode.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief The SDL keysym structure, used in key events. - * - * \note If you are looking for translated character input, see the ::SDL_TEXTINPUT event. - */ -typedef struct SDL_Keysym -{ - SDL_Scancode scancode; /**< SDL physical key code - see ::SDL_Scancode for details */ - SDL_Keycode sym; /**< SDL virtual key code - see ::SDL_Keycode for details */ - Uint16 mod; /**< current key modifiers */ - Uint32 unused; -} SDL_Keysym; - -/* Function prototypes */ - -/** - * \brief Get the window which currently has keyboard focus. - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_GetKeyboardFocus(void); - -/** - * \brief Get a snapshot of the current state of the keyboard. - * - * \param numkeys if non-NULL, receives the length of the returned array. - * - * \return An array of key states. Indexes into this array are obtained by using ::SDL_Scancode values. - * - * \b Example: - * \code - * const Uint8 *state = SDL_GetKeyboardState(NULL); - * if ( state[SDL_SCANCODE_RETURN] ) { - * printf("<RETURN> is pressed.\n"); - * } - * \endcode - */ -extern DECLSPEC const Uint8 *SDLCALL SDL_GetKeyboardState(int *numkeys); - -/** - * \brief Get the current key modifier state for the keyboard. - */ -extern DECLSPEC SDL_Keymod SDLCALL SDL_GetModState(void); - -/** - * \brief Set the current key modifier state for the keyboard. - * - * \note This does not change the keyboard state, only the key modifier flags. - */ -extern DECLSPEC void SDLCALL SDL_SetModState(SDL_Keymod modstate); - -/** - * \brief Get the key code corresponding to the given scancode according - * to the current keyboard layout. - * - * See ::SDL_Keycode for details. - * - * \sa SDL_GetKeyName() - */ -extern DECLSPEC SDL_Keycode SDLCALL SDL_GetKeyFromScancode(SDL_Scancode scancode); - -/** - * \brief Get the scancode corresponding to the given key code according to the - * current keyboard layout. - * - * See ::SDL_Scancode for details. - * - * \sa SDL_GetScancodeName() - */ -extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromKey(SDL_Keycode key); - -/** - * \brief Get a human-readable name for a scancode. - * - * \return A pointer to the name for the scancode. - * If the scancode doesn't have a name, this function returns - * an empty string (""). - * - * \sa SDL_Scancode - */ -extern DECLSPEC const char *SDLCALL SDL_GetScancodeName(SDL_Scancode scancode); - -/** - * \brief Get a scancode from a human-readable name - * - * \return scancode, or SDL_SCANCODE_UNKNOWN if the name wasn't recognized - * - * \sa SDL_Scancode - */ -extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromName(const char *name); - -/** - * \brief Get a human-readable name for a key. - * - * \return A pointer to a UTF-8 string that stays valid at least until the next - * call to this function. If you need it around any longer, you must - * copy it. If the key doesn't have a name, this function returns an - * empty string (""). - * - * \sa SDL_Keycode - */ -extern DECLSPEC const char *SDLCALL SDL_GetKeyName(SDL_Keycode key); - -/** - * \brief Get a key code from a human-readable name - * - * \return key code, or SDLK_UNKNOWN if the name wasn't recognized - * - * \sa SDL_Keycode - */ -extern DECLSPEC SDL_Keycode SDLCALL SDL_GetKeyFromName(const char *name); - -/** - * \brief Start accepting Unicode text input events. - * This function will show the on-screen keyboard if supported. - * - * \sa SDL_StopTextInput() - * \sa SDL_SetTextInputRect() - * \sa SDL_HasScreenKeyboardSupport() - */ -extern DECLSPEC void SDLCALL SDL_StartTextInput(void); - -/** - * \brief Return whether or not Unicode text input events are enabled. - * - * \sa SDL_StartTextInput() - * \sa SDL_StopTextInput() - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsTextInputActive(void); - -/** - * \brief Stop receiving any text input events. - * This function will hide the on-screen keyboard if supported. - * - * \sa SDL_StartTextInput() - * \sa SDL_HasScreenKeyboardSupport() - */ -extern DECLSPEC void SDLCALL SDL_StopTextInput(void); - -/** - * \brief Set the rectangle used to type Unicode text inputs. - * This is used as a hint for IME and on-screen keyboard placement. - * - * \sa SDL_StartTextInput() - */ -extern DECLSPEC void SDLCALL SDL_SetTextInputRect(SDL_Rect *rect); - -/** - * \brief Returns whether the platform has some screen keyboard support. - * - * \return SDL_TRUE if some keyboard support is available else SDL_FALSE. - * - * \note Not all screen keyboard functions are supported on all platforms. - * - * \sa SDL_IsScreenKeyboardShown() - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasScreenKeyboardSupport(void); - -/** - * \brief Returns whether the screen keyboard is shown for given window. - * - * \param window The window for which screen keyboard should be queried. - * - * \return SDL_TRUE if screen keyboard is shown else SDL_FALSE. - * - * \sa SDL_HasScreenKeyboardSupport() - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenKeyboardShown(SDL_Window *window); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_keyboard_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_keycode.h b/lib/osx/include/SDL_keycode.h deleted file mode 100644 index 7be9635..0000000 --- a/lib/osx/include/SDL_keycode.h +++ /dev/null @@ -1,341 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_keycode.h - * - * Defines constants which identify keyboard keys and modifiers. - */ - -#ifndef _SDL_keycode_h -#define _SDL_keycode_h - -#include "SDL_stdinc.h" -#include "SDL_scancode.h" - -/** - * \brief The SDL virtual key representation. - * - * Values of this type are used to represent keyboard keys using the current - * layout of the keyboard. These values include Unicode values representing - * the unmodified character that would be generated by pressing the key, or - * an SDLK_* constant for those keys that do not generate characters. - */ -typedef Sint32 SDL_Keycode; - -#define SDLK_SCANCODE_MASK (1<<30) -#define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK) - -enum -{ - SDLK_UNKNOWN = 0, - - SDLK_RETURN = '\r', - SDLK_ESCAPE = '\033', - SDLK_BACKSPACE = '\b', - SDLK_TAB = '\t', - SDLK_SPACE = ' ', - SDLK_EXCLAIM = '!', - SDLK_QUOTEDBL = '"', - SDLK_HASH = '#', - SDLK_PERCENT = '%', - SDLK_DOLLAR = '$', - SDLK_AMPERSAND = '&', - SDLK_QUOTE = '\'', - SDLK_LEFTPAREN = '(', - SDLK_RIGHTPAREN = ')', - SDLK_ASTERISK = '*', - SDLK_PLUS = '+', - SDLK_COMMA = ',', - SDLK_MINUS = '-', - SDLK_PERIOD = '.', - SDLK_SLASH = '/', - SDLK_0 = '0', - SDLK_1 = '1', - SDLK_2 = '2', - SDLK_3 = '3', - SDLK_4 = '4', - SDLK_5 = '5', - SDLK_6 = '6', - SDLK_7 = '7', - SDLK_8 = '8', - SDLK_9 = '9', - SDLK_COLON = ':', - SDLK_SEMICOLON = ';', - SDLK_LESS = '<', - SDLK_EQUALS = '=', - SDLK_GREATER = '>', - SDLK_QUESTION = '?', - SDLK_AT = '@', - /* - Skip uppercase letters - */ - SDLK_LEFTBRACKET = '[', - SDLK_BACKSLASH = '\\', - SDLK_RIGHTBRACKET = ']', - SDLK_CARET = '^', - SDLK_UNDERSCORE = '_', - SDLK_BACKQUOTE = '`', - SDLK_a = 'a', - SDLK_b = 'b', - SDLK_c = 'c', - SDLK_d = 'd', - SDLK_e = 'e', - SDLK_f = 'f', - SDLK_g = 'g', - SDLK_h = 'h', - SDLK_i = 'i', - SDLK_j = 'j', - SDLK_k = 'k', - SDLK_l = 'l', - SDLK_m = 'm', - SDLK_n = 'n', - SDLK_o = 'o', - SDLK_p = 'p', - SDLK_q = 'q', - SDLK_r = 'r', - SDLK_s = 's', - SDLK_t = 't', - SDLK_u = 'u', - SDLK_v = 'v', - SDLK_w = 'w', - SDLK_x = 'x', - SDLK_y = 'y', - SDLK_z = 'z', - - SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK), - - SDLK_F1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F1), - SDLK_F2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F2), - SDLK_F3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F3), - SDLK_F4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F4), - SDLK_F5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F5), - SDLK_F6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F6), - SDLK_F7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F7), - SDLK_F8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F8), - SDLK_F9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F9), - SDLK_F10 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F10), - SDLK_F11 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F11), - SDLK_F12 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F12), - - SDLK_PRINTSCREEN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRINTSCREEN), - SDLK_SCROLLLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SCROLLLOCK), - SDLK_PAUSE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAUSE), - SDLK_INSERT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_INSERT), - SDLK_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HOME), - SDLK_PAGEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEUP), - SDLK_DELETE = '\177', - SDLK_END = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_END), - SDLK_PAGEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEDOWN), - SDLK_RIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RIGHT), - SDLK_LEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LEFT), - SDLK_DOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DOWN), - SDLK_UP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UP), - - SDLK_NUMLOCKCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_NUMLOCKCLEAR), - SDLK_KP_DIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DIVIDE), - SDLK_KP_MULTIPLY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MULTIPLY), - SDLK_KP_MINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MINUS), - SDLK_KP_PLUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUS), - SDLK_KP_ENTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_ENTER), - SDLK_KP_1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_1), - SDLK_KP_2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_2), - SDLK_KP_3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_3), - SDLK_KP_4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_4), - SDLK_KP_5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_5), - SDLK_KP_6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_6), - SDLK_KP_7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_7), - SDLK_KP_8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_8), - SDLK_KP_9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_9), - SDLK_KP_0 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_0), - SDLK_KP_PERIOD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERIOD), - - SDLK_APPLICATION = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APPLICATION), - SDLK_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_POWER), - SDLK_KP_EQUALS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALS), - SDLK_F13 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F13), - SDLK_F14 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F14), - SDLK_F15 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F15), - SDLK_F16 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F16), - SDLK_F17 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F17), - SDLK_F18 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F18), - SDLK_F19 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F19), - SDLK_F20 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F20), - SDLK_F21 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F21), - SDLK_F22 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F22), - SDLK_F23 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F23), - SDLK_F24 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F24), - SDLK_EXECUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXECUTE), - SDLK_HELP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HELP), - SDLK_MENU = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MENU), - SDLK_SELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SELECT), - SDLK_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_STOP), - SDLK_AGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AGAIN), - SDLK_UNDO = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UNDO), - SDLK_CUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CUT), - SDLK_COPY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COPY), - SDLK_PASTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PASTE), - SDLK_FIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_FIND), - SDLK_MUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MUTE), - SDLK_VOLUMEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEUP), - SDLK_VOLUMEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEDOWN), - SDLK_KP_COMMA = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COMMA), - SDLK_KP_EQUALSAS400 = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALSAS400), - - SDLK_ALTERASE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ALTERASE), - SDLK_SYSREQ = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SYSREQ), - SDLK_CANCEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CANCEL), - SDLK_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEAR), - SDLK_PRIOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRIOR), - SDLK_RETURN2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RETURN2), - SDLK_SEPARATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SEPARATOR), - SDLK_OUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OUT), - SDLK_OPER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OPER), - SDLK_CLEARAGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEARAGAIN), - SDLK_CRSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CRSEL), - SDLK_EXSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXSEL), - - SDLK_KP_00 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_00), - SDLK_KP_000 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_000), - SDLK_THOUSANDSSEPARATOR = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_THOUSANDSSEPARATOR), - SDLK_DECIMALSEPARATOR = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DECIMALSEPARATOR), - SDLK_CURRENCYUNIT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYUNIT), - SDLK_CURRENCYSUBUNIT = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYSUBUNIT), - SDLK_KP_LEFTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTPAREN), - SDLK_KP_RIGHTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTPAREN), - SDLK_KP_LEFTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTBRACE), - SDLK_KP_RIGHTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTBRACE), - SDLK_KP_TAB = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_TAB), - SDLK_KP_BACKSPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BACKSPACE), - SDLK_KP_A = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_A), - SDLK_KP_B = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_B), - SDLK_KP_C = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_C), - SDLK_KP_D = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_D), - SDLK_KP_E = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_E), - SDLK_KP_F = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_F), - SDLK_KP_XOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_XOR), - SDLK_KP_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_POWER), - SDLK_KP_PERCENT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERCENT), - SDLK_KP_LESS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LESS), - SDLK_KP_GREATER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_GREATER), - SDLK_KP_AMPERSAND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AMPERSAND), - SDLK_KP_DBLAMPERSAND = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLAMPERSAND), - SDLK_KP_VERTICALBAR = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_VERTICALBAR), - SDLK_KP_DBLVERTICALBAR = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLVERTICALBAR), - SDLK_KP_COLON = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COLON), - SDLK_KP_HASH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HASH), - SDLK_KP_SPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_SPACE), - SDLK_KP_AT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AT), - SDLK_KP_EXCLAM = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EXCLAM), - SDLK_KP_MEMSTORE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSTORE), - SDLK_KP_MEMRECALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMRECALL), - SDLK_KP_MEMCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMCLEAR), - SDLK_KP_MEMADD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMADD), - SDLK_KP_MEMSUBTRACT = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSUBTRACT), - SDLK_KP_MEMMULTIPLY = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMMULTIPLY), - SDLK_KP_MEMDIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMDIVIDE), - SDLK_KP_PLUSMINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUSMINUS), - SDLK_KP_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEAR), - SDLK_KP_CLEARENTRY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEARENTRY), - SDLK_KP_BINARY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BINARY), - SDLK_KP_OCTAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_OCTAL), - SDLK_KP_DECIMAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DECIMAL), - SDLK_KP_HEXADECIMAL = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HEXADECIMAL), - - SDLK_LCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LCTRL), - SDLK_LSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LSHIFT), - SDLK_LALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LALT), - SDLK_LGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LGUI), - SDLK_RCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RCTRL), - SDLK_RSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RSHIFT), - SDLK_RALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RALT), - SDLK_RGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RGUI), - - SDLK_MODE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MODE), - - SDLK_AUDIONEXT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIONEXT), - SDLK_AUDIOPREV = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPREV), - SDLK_AUDIOSTOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOSTOP), - SDLK_AUDIOPLAY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPLAY), - SDLK_AUDIOMUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOMUTE), - SDLK_MEDIASELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIASELECT), - SDLK_WWW = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_WWW), - SDLK_MAIL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MAIL), - SDLK_CALCULATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALCULATOR), - SDLK_COMPUTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COMPUTER), - SDLK_AC_SEARCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_SEARCH), - SDLK_AC_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_HOME), - SDLK_AC_BACK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BACK), - SDLK_AC_FORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_FORWARD), - SDLK_AC_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_STOP), - SDLK_AC_REFRESH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_REFRESH), - SDLK_AC_BOOKMARKS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BOOKMARKS), - - SDLK_BRIGHTNESSDOWN = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSDOWN), - SDLK_BRIGHTNESSUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSUP), - SDLK_DISPLAYSWITCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DISPLAYSWITCH), - SDLK_KBDILLUMTOGGLE = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMTOGGLE), - SDLK_KBDILLUMDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMDOWN), - SDLK_KBDILLUMUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMUP), - SDLK_EJECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EJECT), - SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP) -}; - -/** - * \brief Enumeration of valid key mods (possibly OR'd together). - */ -typedef enum -{ - KMOD_NONE = 0x0000, - KMOD_LSHIFT = 0x0001, - KMOD_RSHIFT = 0x0002, - KMOD_LCTRL = 0x0040, - KMOD_RCTRL = 0x0080, - KMOD_LALT = 0x0100, - KMOD_RALT = 0x0200, - KMOD_LGUI = 0x0400, - KMOD_RGUI = 0x0800, - KMOD_NUM = 0x1000, - KMOD_CAPS = 0x2000, - KMOD_MODE = 0x4000, - KMOD_RESERVED = 0x8000 -} SDL_Keymod; - -#define KMOD_CTRL (KMOD_LCTRL|KMOD_RCTRL) -#define KMOD_SHIFT (KMOD_LSHIFT|KMOD_RSHIFT) -#define KMOD_ALT (KMOD_LALT|KMOD_RALT) -#define KMOD_GUI (KMOD_LGUI|KMOD_RGUI) - -#endif /* _SDL_keycode_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_loadso.h b/lib/osx/include/SDL_loadso.h deleted file mode 100644 index 3d540bd..0000000 --- a/lib/osx/include/SDL_loadso.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_loadso.h - * - * System dependent library loading routines - * - * Some things to keep in mind: - * \li These functions only work on C function names. Other languages may - * have name mangling and intrinsic language support that varies from - * compiler to compiler. - * \li Make sure you declare your function pointers with the same calling - * convention as the actual library function. Your code will crash - * mysteriously if you do not do this. - * \li Avoid namespace collisions. If you load a symbol from the library, - * it is not defined whether or not it goes into the global symbol - * namespace for the application. If it does and it conflicts with - * symbols in your code or other shared libraries, you will not get - * the results you expect. :) - */ - -#ifndef _SDL_loadso_h -#define _SDL_loadso_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * This function dynamically loads a shared object and returns a pointer - * to the object handle (or NULL if there was an error). - * The 'sofile' parameter is a system dependent name of the object file. - */ -extern DECLSPEC void *SDLCALL SDL_LoadObject(const char *sofile); - -/** - * Given an object handle, this function looks up the address of the - * named function in the shared object and returns it. This address - * is no longer valid after calling SDL_UnloadObject(). - */ -extern DECLSPEC void *SDLCALL SDL_LoadFunction(void *handle, - const char *name); - -/** - * Unload a shared object from memory. - */ -extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_loadso_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_log.h b/lib/osx/include/SDL_log.h deleted file mode 100644 index 09be110..0000000 --- a/lib/osx/include/SDL_log.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_log.h - * - * Simple log messages with categories and priorities. - * - * By default logs are quiet, but if you're debugging SDL you might want: - * - * SDL_LogSetAllPriority(SDL_LOG_PRIORITY_WARN); - * - * Here's where the messages go on different platforms: - * Windows: debug output stream - * Android: log output - * Others: standard error output (stderr) - */ - -#ifndef _SDL_log_h -#define _SDL_log_h - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - - -/** - * \brief The maximum size of a log message - * - * Messages longer than the maximum size will be truncated - */ -#define SDL_MAX_LOG_MESSAGE 4096 - -/** - * \brief The predefined log categories - * - * By default the application category is enabled at the INFO level, - * the assert category is enabled at the WARN level, test is enabled - * at the VERBOSE level and all other categories are enabled at the - * CRITICAL level. - */ -enum -{ - SDL_LOG_CATEGORY_APPLICATION, - SDL_LOG_CATEGORY_ERROR, - SDL_LOG_CATEGORY_ASSERT, - SDL_LOG_CATEGORY_SYSTEM, - SDL_LOG_CATEGORY_AUDIO, - SDL_LOG_CATEGORY_VIDEO, - SDL_LOG_CATEGORY_RENDER, - SDL_LOG_CATEGORY_INPUT, - SDL_LOG_CATEGORY_TEST, - - /* Reserved for future SDL library use */ - SDL_LOG_CATEGORY_RESERVED1, - SDL_LOG_CATEGORY_RESERVED2, - SDL_LOG_CATEGORY_RESERVED3, - SDL_LOG_CATEGORY_RESERVED4, - SDL_LOG_CATEGORY_RESERVED5, - SDL_LOG_CATEGORY_RESERVED6, - SDL_LOG_CATEGORY_RESERVED7, - SDL_LOG_CATEGORY_RESERVED8, - SDL_LOG_CATEGORY_RESERVED9, - SDL_LOG_CATEGORY_RESERVED10, - - /* Beyond this point is reserved for application use, e.g. - enum { - MYAPP_CATEGORY_AWESOME1 = SDL_LOG_CATEGORY_CUSTOM, - MYAPP_CATEGORY_AWESOME2, - MYAPP_CATEGORY_AWESOME3, - ... - }; - */ - SDL_LOG_CATEGORY_CUSTOM -}; - -/** - * \brief The predefined log priorities - */ -typedef enum -{ - SDL_LOG_PRIORITY_VERBOSE = 1, - SDL_LOG_PRIORITY_DEBUG, - SDL_LOG_PRIORITY_INFO, - SDL_LOG_PRIORITY_WARN, - SDL_LOG_PRIORITY_ERROR, - SDL_LOG_PRIORITY_CRITICAL, - SDL_NUM_LOG_PRIORITIES -} SDL_LogPriority; - - -/** - * \brief Set the priority of all log categories - */ -extern DECLSPEC void SDLCALL SDL_LogSetAllPriority(SDL_LogPriority priority); - -/** - * \brief Set the priority of a particular log category - */ -extern DECLSPEC void SDLCALL SDL_LogSetPriority(int category, - SDL_LogPriority priority); - -/** - * \brief Get the priority of a particular log category - */ -extern DECLSPEC SDL_LogPriority SDLCALL SDL_LogGetPriority(int category); - -/** - * \brief Reset all priorities to default. - * - * \note This is called in SDL_Quit(). - */ -extern DECLSPEC void SDLCALL SDL_LogResetPriorities(void); - -/** - * \brief Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO - */ -extern DECLSPEC void SDLCALL SDL_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); - -/** - * \brief Log a message with SDL_LOG_PRIORITY_VERBOSE - */ -extern DECLSPEC void SDLCALL SDL_LogVerbose(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * \brief Log a message with SDL_LOG_PRIORITY_DEBUG - */ -extern DECLSPEC void SDLCALL SDL_LogDebug(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * \brief Log a message with SDL_LOG_PRIORITY_INFO - */ -extern DECLSPEC void SDLCALL SDL_LogInfo(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * \brief Log a message with SDL_LOG_PRIORITY_WARN - */ -extern DECLSPEC void SDLCALL SDL_LogWarn(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * \brief Log a message with SDL_LOG_PRIORITY_ERROR - */ -extern DECLSPEC void SDLCALL SDL_LogError(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * \brief Log a message with SDL_LOG_PRIORITY_CRITICAL - */ -extern DECLSPEC void SDLCALL SDL_LogCritical(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * \brief Log a message with the specified category and priority. - */ -extern DECLSPEC void SDLCALL SDL_LogMessage(int category, - SDL_LogPriority priority, - SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(3); - -/** - * \brief Log a message with the specified category and priority. - */ -extern DECLSPEC void SDLCALL SDL_LogMessageV(int category, - SDL_LogPriority priority, - const char *fmt, va_list ap); - -/** - * \brief The prototype for the log output function - */ -typedef void (*SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); - -/** - * \brief Get the current log output function. - */ -extern DECLSPEC void SDLCALL SDL_LogGetOutputFunction(SDL_LogOutputFunction *callback, void **userdata); - -/** - * \brief This function allows you to replace the default log output - * function with one of your own. - */ -extern DECLSPEC void SDLCALL SDL_LogSetOutputFunction(SDL_LogOutputFunction callback, void *userdata); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_log_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_main.h b/lib/osx/include/SDL_main.h deleted file mode 100644 index 67afea5..0000000 --- a/lib/osx/include/SDL_main.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_main_h -#define _SDL_main_h - -#include "SDL_stdinc.h" - -/** - * \file SDL_main.h - * - * Redefine main() on some platforms so that it is called by SDL. - */ - -#ifndef SDL_MAIN_HANDLED -#if defined(__WIN32__) -/* On Windows SDL provides WinMain(), which parses the command line and passes - the arguments to your main function. - - If you provide your own WinMain(), you may define SDL_MAIN_HANDLED - */ -#define SDL_MAIN_AVAILABLE - -#elif defined(__WINRT__) -/* On WinRT, SDL provides a main function that initializes CoreApplication, - creating an instance of IFrameworkView in the process. - - Please note that #include'ing SDL_main.h is not enough to get a main() - function working. In non-XAML apps, the file, - src/main/winrt/SDL_WinRT_main_NonXAML.cpp, or a copy of it, must be compiled - into the app itself. In XAML apps, the function, SDL_WinRTRunApp must be - called, with a pointer to the Direct3D-hosted XAML control passed in. -*/ -#define SDL_MAIN_NEEDED - -#elif defined(__IPHONEOS__) -/* On iOS SDL provides a main function that creates an application delegate - and starts the iOS application run loop. - - See src/video/uikit/SDL_uikitappdelegate.m for more details. - */ -#define SDL_MAIN_NEEDED - -#elif defined(__ANDROID__) -/* On Android SDL provides a Java class in SDLActivity.java that is the - main activity entry point. - - See README-android.md for more details on extending that class. - */ -#define SDL_MAIN_NEEDED - -#elif defined(__NACL__) -/* On NACL we use ppapi_simple to set up the application helper code, - then wait for the first PSE_INSTANCE_DIDCHANGEVIEW event before - starting the user main function. - All user code is run in a separate thread by ppapi_simple, thus - allowing for blocking io to take place via nacl_io -*/ -#define SDL_MAIN_NEEDED - -#endif -#endif /* SDL_MAIN_HANDLED */ - -#ifdef __cplusplus -#define C_LINKAGE "C" -#else -#define C_LINKAGE -#endif /* __cplusplus */ - -/** - * \file SDL_main.h - * - * The application's main() function must be called with C linkage, - * and should be declared like this: - * \code - * #ifdef __cplusplus - * extern "C" - * #endif - * int main(int argc, char *argv[]) - * { - * } - * \endcode - */ - -#if defined(SDL_MAIN_NEEDED) || defined(SDL_MAIN_AVAILABLE) -#define main SDL_main -#endif - -/** - * The prototype for the application's main() function - */ -extern C_LINKAGE int SDL_main(int argc, char *argv[]); - - -#include "begin_code.h" -#ifdef __cplusplus -extern "C" { -#endif - -/** - * This is called by the real SDL main function to let the rest of the - * library know that initialization was done properly. - * - * Calling this yourself without knowing what you're doing can cause - * crashes and hard to diagnose problems with your application. - */ -extern DECLSPEC void SDLCALL SDL_SetMainReady(void); - -#ifdef __WIN32__ - -/** - * This can be called to set the application class at startup - */ -extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style, - void *hInst); -extern DECLSPEC void SDLCALL SDL_UnregisterApp(void); - -#endif /* __WIN32__ */ - - -#ifdef __WINRT__ - -/** - * \brief Initializes and launches an SDL/WinRT application. - * - * \param mainFunction The SDL app's C-style main(). - * \param reserved Reserved for future use; should be NULL - * \return 0 on success, -1 on failure. On failure, use SDL_GetError to retrieve more - * information on the failure. - */ -extern DECLSPEC int SDLCALL SDL_WinRTRunApp(int (*mainFunction)(int, char **), void * reserved); - -#endif /* __WINRT__ */ - - -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_main_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_messagebox.h b/lib/osx/include/SDL_messagebox.h deleted file mode 100644 index ec370db..0000000 --- a/lib/osx/include/SDL_messagebox.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_messagebox_h -#define _SDL_messagebox_h - -#include "SDL_stdinc.h" -#include "SDL_video.h" /* For SDL_Window */ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief SDL_MessageBox flags. If supported will display warning icon, etc. - */ -typedef enum -{ - SDL_MESSAGEBOX_ERROR = 0x00000010, /**< error dialog */ - SDL_MESSAGEBOX_WARNING = 0x00000020, /**< warning dialog */ - SDL_MESSAGEBOX_INFORMATION = 0x00000040 /**< informational dialog */ -} SDL_MessageBoxFlags; - -/** - * \brief Flags for SDL_MessageBoxButtonData. - */ -typedef enum -{ - SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001, /**< Marks the default button when return is hit */ - SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002 /**< Marks the default button when escape is hit */ -} SDL_MessageBoxButtonFlags; - -/** - * \brief Individual button data. - */ -typedef struct -{ - Uint32 flags; /**< ::SDL_MessageBoxButtonFlags */ - int buttonid; /**< User defined button id (value returned via SDL_ShowMessageBox) */ - const char * text; /**< The UTF-8 button text */ -} SDL_MessageBoxButtonData; - -/** - * \brief RGB value used in a message box color scheme - */ -typedef struct -{ - Uint8 r, g, b; -} SDL_MessageBoxColor; - -typedef enum -{ - SDL_MESSAGEBOX_COLOR_BACKGROUND, - SDL_MESSAGEBOX_COLOR_TEXT, - SDL_MESSAGEBOX_COLOR_BUTTON_BORDER, - SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND, - SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED, - SDL_MESSAGEBOX_COLOR_MAX -} SDL_MessageBoxColorType; - -/** - * \brief A set of colors to use for message box dialogs - */ -typedef struct -{ - SDL_MessageBoxColor colors[SDL_MESSAGEBOX_COLOR_MAX]; -} SDL_MessageBoxColorScheme; - -/** - * \brief MessageBox structure containing title, text, window, etc. - */ -typedef struct -{ - Uint32 flags; /**< ::SDL_MessageBoxFlags */ - SDL_Window *window; /**< Parent window, can be NULL */ - const char *title; /**< UTF-8 title */ - const char *message; /**< UTF-8 message text */ - - int numbuttons; - const SDL_MessageBoxButtonData *buttons; - - const SDL_MessageBoxColorScheme *colorScheme; /**< ::SDL_MessageBoxColorScheme, can be NULL to use system settings */ -} SDL_MessageBoxData; - -/** - * \brief Create a modal message box. - * - * \param messageboxdata The SDL_MessageBoxData structure with title, text, etc. - * \param buttonid The pointer to which user id of hit button should be copied. - * - * \return -1 on error, otherwise 0 and buttonid contains user id of button - * hit or -1 if dialog was closed. - * - * \note This function should be called on the thread that created the parent - * window, or on the main thread if the messagebox has no parent. It will - * block execution of that thread until the user clicks a button or - * closes the messagebox. - */ -extern DECLSPEC int SDLCALL SDL_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid); - -/** - * \brief Create a simple modal message box - * - * \param flags ::SDL_MessageBoxFlags - * \param title UTF-8 title text - * \param message UTF-8 message text - * \param window The parent window, or NULL for no parent - * - * \return 0 on success, -1 on error - * - * \sa SDL_ShowMessageBox - */ -extern DECLSPEC int SDLCALL SDL_ShowSimpleMessageBox(Uint32 flags, const char *title, const char *message, SDL_Window *window); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_messagebox_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_mouse.h b/lib/osx/include/SDL_mouse.h deleted file mode 100644 index 46f046d..0000000 --- a/lib/osx/include/SDL_mouse.h +++ /dev/null @@ -1,302 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_mouse.h - * - * Include file for SDL mouse event handling. - */ - -#ifndef _SDL_mouse_h -#define _SDL_mouse_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct SDL_Cursor SDL_Cursor; /* Implementation dependent */ - -/** - * \brief Cursor types for SDL_CreateSystemCursor(). - */ -typedef enum -{ - SDL_SYSTEM_CURSOR_ARROW, /**< Arrow */ - SDL_SYSTEM_CURSOR_IBEAM, /**< I-beam */ - SDL_SYSTEM_CURSOR_WAIT, /**< Wait */ - SDL_SYSTEM_CURSOR_CROSSHAIR, /**< Crosshair */ - SDL_SYSTEM_CURSOR_WAITARROW, /**< Small wait cursor (or Wait if not available) */ - SDL_SYSTEM_CURSOR_SIZENWSE, /**< Double arrow pointing northwest and southeast */ - SDL_SYSTEM_CURSOR_SIZENESW, /**< Double arrow pointing northeast and southwest */ - SDL_SYSTEM_CURSOR_SIZEWE, /**< Double arrow pointing west and east */ - SDL_SYSTEM_CURSOR_SIZENS, /**< Double arrow pointing north and south */ - SDL_SYSTEM_CURSOR_SIZEALL, /**< Four pointed arrow pointing north, south, east, and west */ - SDL_SYSTEM_CURSOR_NO, /**< Slashed circle or crossbones */ - SDL_SYSTEM_CURSOR_HAND, /**< Hand */ - SDL_NUM_SYSTEM_CURSORS -} SDL_SystemCursor; - -/** - * \brief Scroll direction types for the Scroll event - */ -typedef enum -{ - SDL_MOUSEWHEEL_NORMAL, /**< The scroll direction is normal */ - SDL_MOUSEWHEEL_FLIPPED /**< The scroll direction is flipped / natural */ -} SDL_MouseWheelDirection; - -/* Function prototypes */ - -/** - * \brief Get the window which currently has mouse focus. - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_GetMouseFocus(void); - -/** - * \brief Retrieve the current state of the mouse. - * - * The current button state is returned as a button bitmask, which can - * be tested using the SDL_BUTTON(X) macros, and x and y are set to the - * mouse cursor position relative to the focus window for the currently - * selected mouse. You can pass NULL for either x or y. - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetMouseState(int *x, int *y); - -/** - * \brief Get the current state of the mouse, in relation to the desktop - * - * This works just like SDL_GetMouseState(), but the coordinates will be - * reported relative to the top-left of the desktop. This can be useful if - * you need to track the mouse outside of a specific window and - * SDL_CaptureMouse() doesn't fit your needs. For example, it could be - * useful if you need to track the mouse while dragging a window, where - * coordinates relative to a window might not be in sync at all times. - * - * \note SDL_GetMouseState() returns the mouse position as SDL understands - * it from the last pump of the event queue. This function, however, - * queries the OS for the current mouse position, and as such, might - * be a slightly less efficient function. Unless you know what you're - * doing and have a good reason to use this function, you probably want - * SDL_GetMouseState() instead. - * - * \param x Returns the current X coord, relative to the desktop. Can be NULL. - * \param y Returns the current Y coord, relative to the desktop. Can be NULL. - * \return The current button state as a bitmask, which can be tested using the SDL_BUTTON(X) macros. - * - * \sa SDL_GetMouseState - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetGlobalMouseState(int *x, int *y); - -/** - * \brief Retrieve the relative state of the mouse. - * - * The current button state is returned as a button bitmask, which can - * be tested using the SDL_BUTTON(X) macros, and x and y are set to the - * mouse deltas since the last call to SDL_GetRelativeMouseState(). - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetRelativeMouseState(int *x, int *y); - -/** - * \brief Moves the mouse to the given position within the window. - * - * \param window The window to move the mouse into, or NULL for the current mouse focus - * \param x The x coordinate within the window - * \param y The y coordinate within the window - * - * \note This function generates a mouse motion event - */ -extern DECLSPEC void SDLCALL SDL_WarpMouseInWindow(SDL_Window * window, - int x, int y); - -/** - * \brief Moves the mouse to the given position in global screen space. - * - * \param x The x coordinate - * \param y The y coordinate - * \return 0 on success, -1 on error (usually: unsupported by a platform). - * - * \note This function generates a mouse motion event - */ -extern DECLSPEC int SDLCALL SDL_WarpMouseGlobal(int x, int y); - -/** - * \brief Set relative mouse mode. - * - * \param enabled Whether or not to enable relative mode - * - * \return 0 on success, or -1 if relative mode is not supported. - * - * While the mouse is in relative mode, the cursor is hidden, and the - * driver will try to report continuous motion in the current window. - * Only relative motion events will be delivered, the mouse position - * will not change. - * - * \note This function will flush any pending mouse motion. - * - * \sa SDL_GetRelativeMouseMode() - */ -extern DECLSPEC int SDLCALL SDL_SetRelativeMouseMode(SDL_bool enabled); - -/** - * \brief Capture the mouse, to track input outside an SDL window. - * - * \param enabled Whether or not to enable capturing - * - * Capturing enables your app to obtain mouse events globally, instead of - * just within your window. Not all video targets support this function. - * When capturing is enabled, the current window will get all mouse events, - * but unlike relative mode, no change is made to the cursor and it is - * not restrained to your window. - * - * This function may also deny mouse input to other windows--both those in - * your application and others on the system--so you should use this - * function sparingly, and in small bursts. For example, you might want to - * track the mouse while the user is dragging something, until the user - * releases a mouse button. It is not recommended that you capture the mouse - * for long periods of time, such as the entire time your app is running. - * - * While captured, mouse events still report coordinates relative to the - * current (foreground) window, but those coordinates may be outside the - * bounds of the window (including negative values). Capturing is only - * allowed for the foreground window. If the window loses focus while - * capturing, the capture will be disabled automatically. - * - * While capturing is enabled, the current window will have the - * SDL_WINDOW_MOUSE_CAPTURE flag set. - * - * \return 0 on success, or -1 if not supported. - */ -extern DECLSPEC int SDLCALL SDL_CaptureMouse(SDL_bool enabled); - -/** - * \brief Query whether relative mouse mode is enabled. - * - * \sa SDL_SetRelativeMouseMode() - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetRelativeMouseMode(void); - -/** - * \brief Create a cursor, using the specified bitmap data and - * mask (in MSB format). - * - * The cursor width must be a multiple of 8 bits. - * - * The cursor is created in black and white according to the following: - * <table> - * <tr><td> data </td><td> mask </td><td> resulting pixel on screen </td></tr> - * <tr><td> 0 </td><td> 1 </td><td> White </td></tr> - * <tr><td> 1 </td><td> 1 </td><td> Black </td></tr> - * <tr><td> 0 </td><td> 0 </td><td> Transparent </td></tr> - * <tr><td> 1 </td><td> 0 </td><td> Inverted color if possible, black - * if not. </td></tr> - * </table> - * - * \sa SDL_FreeCursor() - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateCursor(const Uint8 * data, - const Uint8 * mask, - int w, int h, int hot_x, - int hot_y); - -/** - * \brief Create a color cursor. - * - * \sa SDL_FreeCursor() - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateColorCursor(SDL_Surface *surface, - int hot_x, - int hot_y); - -/** - * \brief Create a system cursor. - * - * \sa SDL_FreeCursor() - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateSystemCursor(SDL_SystemCursor id); - -/** - * \brief Set the active cursor. - */ -extern DECLSPEC void SDLCALL SDL_SetCursor(SDL_Cursor * cursor); - -/** - * \brief Return the active cursor. - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetCursor(void); - -/** - * \brief Return the default cursor. - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetDefaultCursor(void); - -/** - * \brief Frees a cursor created with SDL_CreateCursor() or similar functions. - * - * \sa SDL_CreateCursor() - * \sa SDL_CreateColorCursor() - * \sa SDL_CreateSystemCursor() - */ -extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor * cursor); - -/** - * \brief Toggle whether or not the cursor is shown. - * - * \param toggle 1 to show the cursor, 0 to hide it, -1 to query the current - * state. - * - * \return 1 if the cursor is shown, or 0 if the cursor is hidden. - */ -extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle); - -/** - * Used as a mask when testing buttons in buttonstate. - * - Button 1: Left mouse button - * - Button 2: Middle mouse button - * - Button 3: Right mouse button - */ -#define SDL_BUTTON(X) (1 << ((X)-1)) -#define SDL_BUTTON_LEFT 1 -#define SDL_BUTTON_MIDDLE 2 -#define SDL_BUTTON_RIGHT 3 -#define SDL_BUTTON_X1 4 -#define SDL_BUTTON_X2 5 -#define SDL_BUTTON_LMASK SDL_BUTTON(SDL_BUTTON_LEFT) -#define SDL_BUTTON_MMASK SDL_BUTTON(SDL_BUTTON_MIDDLE) -#define SDL_BUTTON_RMASK SDL_BUTTON(SDL_BUTTON_RIGHT) -#define SDL_BUTTON_X1MASK SDL_BUTTON(SDL_BUTTON_X1) -#define SDL_BUTTON_X2MASK SDL_BUTTON(SDL_BUTTON_X2) - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_mouse_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_mutex.h b/lib/osx/include/SDL_mutex.h deleted file mode 100644 index b7e3973..0000000 --- a/lib/osx/include/SDL_mutex.h +++ /dev/null @@ -1,251 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_mutex_h -#define _SDL_mutex_h - -/** - * \file SDL_mutex.h - * - * Functions to provide thread synchronization primitives. - */ - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Synchronization functions which can time out return this value - * if they time out. - */ -#define SDL_MUTEX_TIMEDOUT 1 - -/** - * This is the timeout value which corresponds to never time out. - */ -#define SDL_MUTEX_MAXWAIT (~(Uint32)0) - - -/** - * \name Mutex functions - */ -/* @{ */ - -/* The SDL mutex structure, defined in SDL_sysmutex.c */ -struct SDL_mutex; -typedef struct SDL_mutex SDL_mutex; - -/** - * Create a mutex, initialized unlocked. - */ -extern DECLSPEC SDL_mutex *SDLCALL SDL_CreateMutex(void); - -/** - * Lock the mutex. - * - * \return 0, or -1 on error. - */ -#define SDL_mutexP(m) SDL_LockMutex(m) -extern DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex * mutex); - -/** - * Try to lock the mutex - * - * \return 0, SDL_MUTEX_TIMEDOUT, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_TryLockMutex(SDL_mutex * mutex); - -/** - * Unlock the mutex. - * - * \return 0, or -1 on error. - * - * \warning It is an error to unlock a mutex that has not been locked by - * the current thread, and doing so results in undefined behavior. - */ -#define SDL_mutexV(m) SDL_UnlockMutex(m) -extern DECLSPEC int SDLCALL SDL_UnlockMutex(SDL_mutex * mutex); - -/** - * Destroy a mutex. - */ -extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_mutex * mutex); - -/* @} *//* Mutex functions */ - - -/** - * \name Semaphore functions - */ -/* @{ */ - -/* The SDL semaphore structure, defined in SDL_syssem.c */ -struct SDL_semaphore; -typedef struct SDL_semaphore SDL_sem; - -/** - * Create a semaphore, initialized with value, returns NULL on failure. - */ -extern DECLSPEC SDL_sem *SDLCALL SDL_CreateSemaphore(Uint32 initial_value); - -/** - * Destroy a semaphore. - */ -extern DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_sem * sem); - -/** - * This function suspends the calling thread until the semaphore pointed - * to by \c sem has a positive count. It then atomically decreases the - * semaphore count. - */ -extern DECLSPEC int SDLCALL SDL_SemWait(SDL_sem * sem); - -/** - * Non-blocking variant of SDL_SemWait(). - * - * \return 0 if the wait succeeds, ::SDL_MUTEX_TIMEDOUT if the wait would - * block, and -1 on error. - */ -extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem * sem); - -/** - * Variant of SDL_SemWait() with a timeout in milliseconds. - * - * \return 0 if the wait succeeds, ::SDL_MUTEX_TIMEDOUT if the wait does not - * succeed in the allotted time, and -1 on error. - * - * \warning On some platforms this function is implemented by looping with a - * delay of 1 ms, and so should be avoided if possible. - */ -extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem * sem, Uint32 ms); - -/** - * Atomically increases the semaphore's count (not blocking). - * - * \return 0, or -1 on error. - */ -extern DECLSPEC int SDLCALL SDL_SemPost(SDL_sem * sem); - -/** - * Returns the current count of the semaphore. - */ -extern DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem * sem); - -/* @} *//* Semaphore functions */ - - -/** - * \name Condition variable functions - */ -/* @{ */ - -/* The SDL condition variable structure, defined in SDL_syscond.c */ -struct SDL_cond; -typedef struct SDL_cond SDL_cond; - -/** - * Create a condition variable. - * - * Typical use of condition variables: - * - * Thread A: - * SDL_LockMutex(lock); - * while ( ! condition ) { - * SDL_CondWait(cond, lock); - * } - * SDL_UnlockMutex(lock); - * - * Thread B: - * SDL_LockMutex(lock); - * ... - * condition = true; - * ... - * SDL_CondSignal(cond); - * SDL_UnlockMutex(lock); - * - * There is some discussion whether to signal the condition variable - * with the mutex locked or not. There is some potential performance - * benefit to unlocking first on some platforms, but there are some - * potential race conditions depending on how your code is structured. - * - * In general it's safer to signal the condition variable while the - * mutex is locked. - */ -extern DECLSPEC SDL_cond *SDLCALL SDL_CreateCond(void); - -/** - * Destroy a condition variable. - */ -extern DECLSPEC void SDLCALL SDL_DestroyCond(SDL_cond * cond); - -/** - * Restart one of the threads that are waiting on the condition variable. - * - * \return 0 or -1 on error. - */ -extern DECLSPEC int SDLCALL SDL_CondSignal(SDL_cond * cond); - -/** - * Restart all threads that are waiting on the condition variable. - * - * \return 0 or -1 on error. - */ -extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond * cond); - -/** - * Wait on the condition variable, unlocking the provided mutex. - * - * \warning The mutex must be locked before entering this function! - * - * The mutex is re-locked once the condition variable is signaled. - * - * \return 0 when it is signaled, or -1 on error. - */ -extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond * cond, SDL_mutex * mutex); - -/** - * Waits for at most \c ms milliseconds, and returns 0 if the condition - * variable is signaled, ::SDL_MUTEX_TIMEDOUT if the condition is not - * signaled in the allotted time, and -1 on error. - * - * \warning On some platforms this function is implemented by looping with a - * delay of 1 ms, and so should be avoided if possible. - */ -extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond * cond, - SDL_mutex * mutex, Uint32 ms); - -/* @} *//* Condition variable functions */ - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_mutex_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_name.h b/lib/osx/include/SDL_name.h deleted file mode 100644 index 06cd4a5..0000000 --- a/lib/osx/include/SDL_name.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDLname_h_ -#define _SDLname_h_ - -#if defined(__STDC__) || defined(__cplusplus) -#define NeedFunctionPrototypes 1 -#endif - -#define SDL_NAME(X) SDL_##X - -#endif /* _SDLname_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_opengl.h b/lib/osx/include/SDL_opengl.h deleted file mode 100644 index 780919b..0000000 --- a/lib/osx/include/SDL_opengl.h +++ /dev/null @@ -1,2176 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_opengl.h - * - * This is a simple file to encapsulate the OpenGL API headers. - */ - -/** - * \def NO_SDL_GLEXT - * - * Define this if you have your own version of glext.h and want to disable the - * version included in SDL_opengl.h. - */ - -#ifndef _SDL_opengl_h -#define _SDL_opengl_h - -#include "SDL_config.h" - -#ifndef __IPHONEOS__ /* No OpenGL on iOS. */ - -/* - * Mesa 3-D graphics library - * - * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. - * Copyright (C) 2009 VMware, Inc. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - - -#ifndef __gl_h_ -#define __gl_h_ - -#if defined(USE_MGL_NAMESPACE) -#include "gl_mangle.h" -#endif - - -/********************************************************************** - * Begin system-specific stuff. - */ - -#if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) -#define __WIN32__ -#endif - -#if defined(__WIN32__) && !defined(__CYGWIN__) -# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ -# define GLAPI __declspec(dllexport) -# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ -# define GLAPI __declspec(dllimport) -# else /* for use with static link lib build of Win32 edition only */ -# define GLAPI extern -# endif /* _STATIC_MESA support */ -# if defined(__MINGW32__) && defined(GL_NO_STDCALL) || defined(UNDER_CE) /* The generated DLLs by MingW with STDCALL are not compatible with the ones done by Microsoft's compilers */ -# define GLAPIENTRY -# else -# define GLAPIENTRY __stdcall -# endif -#elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */ -# define GLAPI extern -# define GLAPIENTRY __stdcall -#elif (defined(__GNUC__) && __GNUC__ >= 4) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) -# define GLAPI __attribute__((visibility("default"))) -# define GLAPIENTRY -#endif /* WIN32 && !CYGWIN */ - -/* - * WINDOWS: Include windows.h here to define APIENTRY. - * It is also useful when applications include this file by - * including only glut.h, since glut.h depends on windows.h. - * Applications needing to include windows.h with parms other - * than "WIN32_LEAN_AND_MEAN" may include windows.h before - * glut.h or gl.h. - */ -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN 1 -#endif -#ifndef NOMINMAX /* don't define min() and max(). */ -#define NOMINMAX -#endif -#include <windows.h> -#endif - -#ifndef GLAPI -#define GLAPI extern -#endif - -#ifndef GLAPIENTRY -#define GLAPIENTRY -#endif - -#ifndef APIENTRY -#define APIENTRY GLAPIENTRY -#endif - -/* "P" suffix to be used for a pointer to a function */ -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif - -#ifndef GLAPIENTRYP -#define GLAPIENTRYP GLAPIENTRY * -#endif - -#if defined(PRAGMA_EXPORT_SUPPORTED) -#pragma export on -#endif - -/* - * End system-specific stuff. - **********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define GL_VERSION_1_1 1 -#define GL_VERSION_1_2 1 -#define GL_VERSION_1_3 1 -#define GL_ARB_imaging 1 - - -/* - * Datatypes - */ -typedef unsigned int GLenum; -typedef unsigned char GLboolean; -typedef unsigned int GLbitfield; -typedef void GLvoid; -typedef signed char GLbyte; /* 1-byte signed */ -typedef short GLshort; /* 2-byte signed */ -typedef int GLint; /* 4-byte signed */ -typedef unsigned char GLubyte; /* 1-byte unsigned */ -typedef unsigned short GLushort; /* 2-byte unsigned */ -typedef unsigned int GLuint; /* 4-byte unsigned */ -typedef int GLsizei; /* 4-byte signed */ -typedef float GLfloat; /* single precision float */ -typedef float GLclampf; /* single precision float in [0,1] */ -typedef double GLdouble; /* double precision float */ -typedef double GLclampd; /* double precision float in [0,1] */ - - - -/* - * Constants - */ - -/* Boolean values */ -#define GL_FALSE 0 -#define GL_TRUE 1 - -/* Data types */ -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_2_BYTES 0x1407 -#define GL_3_BYTES 0x1408 -#define GL_4_BYTES 0x1409 -#define GL_DOUBLE 0x140A - -/* Primitives */ -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_QUADS 0x0007 -#define GL_QUAD_STRIP 0x0008 -#define GL_POLYGON 0x0009 - -/* Vertex Arrays */ -#define GL_VERTEX_ARRAY 0x8074 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_COLOR_ARRAY 0x8076 -#define GL_INDEX_ARRAY 0x8077 -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_EDGE_FLAG_ARRAY 0x8079 -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_INDEX_ARRAY_TYPE 0x8085 -#define GL_INDEX_ARRAY_STRIDE 0x8086 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_INDEX_ARRAY_POINTER 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_C3F_V3F 0x2A24 -#define GL_N3F_V3F 0x2A25 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_V4F 0x2A28 -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T4F_C4F_N3F_V4F 0x2A2D - -/* Matrix Mode */ -#define GL_MATRIX_MODE 0x0BA0 -#define GL_MODELVIEW 0x1700 -#define GL_PROJECTION 0x1701 -#define GL_TEXTURE 0x1702 - -/* Points */ -#define GL_POINT_SMOOTH 0x0B10 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_POINT_SIZE_RANGE 0x0B12 - -/* Lines */ -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_STIPPLE 0x0B24 -#define GL_LINE_STIPPLE_PATTERN 0x0B25 -#define GL_LINE_STIPPLE_REPEAT 0x0B26 -#define GL_LINE_WIDTH 0x0B21 -#define GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_LINE_WIDTH_RANGE 0x0B22 - -/* Polygons */ -#define GL_POINT 0x1B00 -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_POLYGON_STIPPLE 0x0B42 -#define GL_EDGE_FLAG 0x0B43 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_POLYGON_OFFSET_FILL 0x8037 - -/* Display Lists */ -#define GL_COMPILE 0x1300 -#define GL_COMPILE_AND_EXECUTE 0x1301 -#define GL_LIST_BASE 0x0B32 -#define GL_LIST_INDEX 0x0B33 -#define GL_LIST_MODE 0x0B30 - -/* Depth buffer */ -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_BITS 0x0D56 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_COMPONENT 0x1902 - -/* Lighting */ -#define GL_LIGHTING 0x0B50 -#define GL_LIGHT0 0x4000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_QUADRATIC_ATTENUATION 0x1209 -#define GL_AMBIENT 0x1200 -#define GL_DIFFUSE 0x1201 -#define GL_SPECULAR 0x1202 -#define GL_SHININESS 0x1601 -#define GL_EMISSION 0x1600 -#define GL_POSITION 0x1203 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_COLOR_INDEXES 0x1603 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_SHADE_MODEL 0x0B54 -#define GL_FLAT 0x1D00 -#define GL_SMOOTH 0x1D01 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_COLOR_MATERIAL_FACE 0x0B55 -#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define GL_NORMALIZE 0x0BA1 - -/* User clipping planes */ -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 - -/* Accumulation buffer */ -#define GL_ACCUM_RED_BITS 0x0D58 -#define GL_ACCUM_GREEN_BITS 0x0D59 -#define GL_ACCUM_BLUE_BITS 0x0D5A -#define GL_ACCUM_ALPHA_BITS 0x0D5B -#define GL_ACCUM_CLEAR_VALUE 0x0B80 -#define GL_ACCUM 0x0100 -#define GL_ADD 0x0104 -#define GL_LOAD 0x0101 -#define GL_MULT 0x0103 -#define GL_RETURN 0x0102 - -/* Alpha testing */ -#define GL_ALPHA_TEST 0x0BC0 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_ALPHA_TEST_FUNC 0x0BC1 - -/* Blending */ -#define GL_BLEND 0x0BE2 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND_DST 0x0BE0 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 - -/* Render Mode */ -#define GL_FEEDBACK 0x1C01 -#define GL_RENDER 0x1C00 -#define GL_SELECT 0x1C02 - -/* Feedback */ -#define GL_2D 0x0600 -#define GL_3D 0x0601 -#define GL_3D_COLOR 0x0602 -#define GL_3D_COLOR_TEXTURE 0x0603 -#define GL_4D_COLOR_TEXTURE 0x0604 -#define GL_POINT_TOKEN 0x0701 -#define GL_LINE_TOKEN 0x0702 -#define GL_LINE_RESET_TOKEN 0x0707 -#define GL_POLYGON_TOKEN 0x0703 -#define GL_BITMAP_TOKEN 0x0704 -#define GL_DRAW_PIXEL_TOKEN 0x0705 -#define GL_COPY_PIXEL_TOKEN 0x0706 -#define GL_PASS_THROUGH_TOKEN 0x0700 -#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 - -/* Selection */ -#define GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define GL_SELECTION_BUFFER_SIZE 0x0DF4 - -/* Fog */ -#define GL_FOG 0x0B60 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_COLOR 0x0B66 -#define GL_FOG_INDEX 0x0B61 -#define GL_FOG_START 0x0B63 -#define GL_FOG_END 0x0B64 -#define GL_LINEAR 0x2601 -#define GL_EXP 0x0800 -#define GL_EXP2 0x0801 - -/* Logic Ops */ -#define GL_LOGIC_OP 0x0BF1 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_CLEAR 0x1500 -#define GL_SET 0x150F -#define GL_COPY 0x1503 -#define GL_COPY_INVERTED 0x150C -#define GL_NOOP 0x1505 -#define GL_INVERT 0x150A -#define GL_AND 0x1501 -#define GL_NAND 0x150E -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_XOR 0x1506 -#define GL_EQUIV 0x1509 -#define GL_AND_REVERSE 0x1502 -#define GL_AND_INVERTED 0x1504 -#define GL_OR_REVERSE 0x150B -#define GL_OR_INVERTED 0x150D - -/* Stencil */ -#define GL_STENCIL_BITS 0x0D57 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_INDEX 0x1901 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 - -/* Buffers, Pixel Drawing/Reading */ -#define GL_NONE 0 -#define GL_LEFT 0x0406 -#define GL_RIGHT 0x0407 -/*GL_FRONT 0x0404 */ -/*GL_BACK 0x0405 */ -/*GL_FRONT_AND_BACK 0x0408 */ -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_AUX0 0x0409 -#define GL_AUX1 0x040A -#define GL_AUX2 0x040B -#define GL_AUX3 0x040C -#define GL_COLOR_INDEX 0x1900 -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_ALPHA_BITS 0x0D55 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_INDEX_BITS 0x0D51 -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_AUX_BUFFERS 0x0C00 -#define GL_READ_BUFFER 0x0C02 -#define GL_DRAW_BUFFER 0x0C01 -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_STEREO 0x0C33 -#define GL_BITMAP 0x1A00 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_DITHER 0x0BD0 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 - -/* Implementation limits */ -#define GL_MAX_LIST_NESTING 0x0B31 -#define GL_MAX_EVAL_ORDER 0x0D30 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B - -/* Gets */ -#define GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_CURRENT_INDEX 0x0B01 -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_RASTER_COLOR 0x0B04 -#define GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define GL_CURRENT_RASTER_INDEX 0x0B05 -#define GL_CURRENT_RASTER_POSITION 0x0B07 -#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_INDEX_CLEAR_VALUE 0x0C20 -#define GL_INDEX_MODE 0x0C30 -#define GL_INDEX_WRITEMASK 0x0C21 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_NAME_STACK_DEPTH 0x0D70 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_RENDER_MODE 0x0C40 -#define GL_RGBA_MODE 0x0C31 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_VIEWPORT 0x0BA2 - -/* Evaluators */ -#define GL_AUTO_NORMAL 0x0D80 -#define GL_MAP1_COLOR_4 0x0D90 -#define GL_MAP1_INDEX 0x0D91 -#define GL_MAP1_NORMAL 0x0D92 -#define GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define GL_MAP1_VERTEX_3 0x0D97 -#define GL_MAP1_VERTEX_4 0x0D98 -#define GL_MAP2_COLOR_4 0x0DB0 -#define GL_MAP2_INDEX 0x0DB1 -#define GL_MAP2_NORMAL 0x0DB2 -#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define GL_MAP2_VERTEX_3 0x0DB7 -#define GL_MAP2_VERTEX_4 0x0DB8 -#define GL_MAP1_GRID_DOMAIN 0x0DD0 -#define GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define GL_MAP2_GRID_DOMAIN 0x0DD2 -#define GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define GL_COEFF 0x0A00 -#define GL_ORDER 0x0A01 -#define GL_DOMAIN 0x0A02 - -/* Hints */ -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_FOG_HINT 0x0C54 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 - -/* Scissor box */ -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 - -/* Pixel Mode / Transfer */ -#define GL_MAP_COLOR 0x0D10 -#define GL_MAP_STENCIL 0x0D11 -#define GL_INDEX_SHIFT 0x0D12 -#define GL_INDEX_OFFSET 0x0D13 -#define GL_RED_SCALE 0x0D14 -#define GL_RED_BIAS 0x0D15 -#define GL_GREEN_SCALE 0x0D18 -#define GL_GREEN_BIAS 0x0D19 -#define GL_BLUE_SCALE 0x0D1A -#define GL_BLUE_BIAS 0x0D1B -#define GL_ALPHA_SCALE 0x0D1C -#define GL_ALPHA_BIAS 0x0D1D -#define GL_DEPTH_SCALE 0x0D1E -#define GL_DEPTH_BIAS 0x0D1F -#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define GL_PIXEL_MAP_S_TO_S 0x0C71 -#define GL_PIXEL_MAP_I_TO_I 0x0C70 -#define GL_PIXEL_MAP_I_TO_R 0x0C72 -#define GL_PIXEL_MAP_I_TO_G 0x0C73 -#define GL_PIXEL_MAP_I_TO_B 0x0C74 -#define GL_PIXEL_MAP_I_TO_A 0x0C75 -#define GL_PIXEL_MAP_R_TO_R 0x0C76 -#define GL_PIXEL_MAP_G_TO_G 0x0C77 -#define GL_PIXEL_MAP_B_TO_B 0x0C78 -#define GL_PIXEL_MAP_A_TO_A 0x0C79 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_ZOOM_X 0x0D16 -#define GL_ZOOM_Y 0x0D17 - -/* Texture mapping */ -#define GL_TEXTURE_ENV 0x2300 -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_ENV_COLOR 0x2201 -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GEN_R 0x0C62 -#define GL_TEXTURE_GEN_Q 0x0C63 -#define GL_TEXTURE_GEN_MODE 0x2500 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_BORDER 0x1005 -#define GL_TEXTURE_COMPONENTS 0x1003 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_OBJECT_LINEAR 0x2401 -#define GL_OBJECT_PLANE 0x2501 -#define GL_EYE_LINEAR 0x2400 -#define GL_EYE_PLANE 0x2502 -#define GL_SPHERE_MAP 0x2402 -#define GL_DECAL 0x2101 -#define GL_MODULATE 0x2100 -#define GL_NEAREST 0x2600 -#define GL_REPEAT 0x2901 -#define GL_CLAMP 0x2900 -#define GL_S 0x2000 -#define GL_T 0x2001 -#define GL_R 0x2002 -#define GL_Q 0x2003 - -/* Utility */ -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 - -/* Errors */ -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_OUT_OF_MEMORY 0x0505 - -/* glPush/PopAttrib bits */ -#define GL_CURRENT_BIT 0x00000001 -#define GL_POINT_BIT 0x00000002 -#define GL_LINE_BIT 0x00000004 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_FOG_BIT 0x00000080 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_ENABLE_BIT 0x00002000 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_HINT_BIT 0x00008000 -#define GL_EVAL_BIT 0x00010000 -#define GL_LIST_BIT 0x00020000 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_ALL_ATTRIB_BITS 0x000FFFFF - - -/* OpenGL 1.1 */ -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_TEXTURE_PRIORITY 0x8066 -#define GL_TEXTURE_RESIDENT 0x8067 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_ALPHA4 0x803B -#define GL_ALPHA8 0x803C -#define GL_ALPHA12 0x803D -#define GL_ALPHA16 0x803E -#define GL_LUMINANCE4 0x803F -#define GL_LUMINANCE8 0x8040 -#define GL_LUMINANCE12 0x8041 -#define GL_LUMINANCE16 0x8042 -#define GL_LUMINANCE4_ALPHA4 0x8043 -#define GL_LUMINANCE6_ALPHA2 0x8044 -#define GL_LUMINANCE8_ALPHA8 0x8045 -#define GL_LUMINANCE12_ALPHA4 0x8046 -#define GL_LUMINANCE12_ALPHA12 0x8047 -#define GL_LUMINANCE16_ALPHA16 0x8048 -#define GL_INTENSITY 0x8049 -#define GL_INTENSITY4 0x804A -#define GL_INTENSITY8 0x804B -#define GL_INTENSITY12 0x804C -#define GL_INTENSITY16 0x804D -#define GL_R3_G3_B2 0x2A10 -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB8 0x8051 -#define GL_RGB10 0x8052 -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGBA2 0x8055 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_ALL_CLIENT_ATTRIB_BITS 0xFFFFFFFF -#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF - - - -/* - * Miscellaneous - */ - -GLAPI void GLAPIENTRY glClearIndex( GLfloat c ); - -GLAPI void GLAPIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); - -GLAPI void GLAPIENTRY glClear( GLbitfield mask ); - -GLAPI void GLAPIENTRY glIndexMask( GLuint mask ); - -GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ); - -GLAPI void GLAPIENTRY glAlphaFunc( GLenum func, GLclampf ref ); - -GLAPI void GLAPIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor ); - -GLAPI void GLAPIENTRY glLogicOp( GLenum opcode ); - -GLAPI void GLAPIENTRY glCullFace( GLenum mode ); - -GLAPI void GLAPIENTRY glFrontFace( GLenum mode ); - -GLAPI void GLAPIENTRY glPointSize( GLfloat size ); - -GLAPI void GLAPIENTRY glLineWidth( GLfloat width ); - -GLAPI void GLAPIENTRY glLineStipple( GLint factor, GLushort pattern ); - -GLAPI void GLAPIENTRY glPolygonMode( GLenum face, GLenum mode ); - -GLAPI void GLAPIENTRY glPolygonOffset( GLfloat factor, GLfloat units ); - -GLAPI void GLAPIENTRY glPolygonStipple( const GLubyte *mask ); - -GLAPI void GLAPIENTRY glGetPolygonStipple( GLubyte *mask ); - -GLAPI void GLAPIENTRY glEdgeFlag( GLboolean flag ); - -GLAPI void GLAPIENTRY glEdgeFlagv( const GLboolean *flag ); - -GLAPI void GLAPIENTRY glScissor( GLint x, GLint y, GLsizei width, GLsizei height); - -GLAPI void GLAPIENTRY glClipPlane( GLenum plane, const GLdouble *equation ); - -GLAPI void GLAPIENTRY glGetClipPlane( GLenum plane, GLdouble *equation ); - -GLAPI void GLAPIENTRY glDrawBuffer( GLenum mode ); - -GLAPI void GLAPIENTRY glReadBuffer( GLenum mode ); - -GLAPI void GLAPIENTRY glEnable( GLenum cap ); - -GLAPI void GLAPIENTRY glDisable( GLenum cap ); - -GLAPI GLboolean GLAPIENTRY glIsEnabled( GLenum cap ); - - -GLAPI void GLAPIENTRY glEnableClientState( GLenum cap ); /* 1.1 */ - -GLAPI void GLAPIENTRY glDisableClientState( GLenum cap ); /* 1.1 */ - - -GLAPI void GLAPIENTRY glGetBooleanv( GLenum pname, GLboolean *params ); - -GLAPI void GLAPIENTRY glGetDoublev( GLenum pname, GLdouble *params ); - -GLAPI void GLAPIENTRY glGetFloatv( GLenum pname, GLfloat *params ); - -GLAPI void GLAPIENTRY glGetIntegerv( GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glPushAttrib( GLbitfield mask ); - -GLAPI void GLAPIENTRY glPopAttrib( void ); - - -GLAPI void GLAPIENTRY glPushClientAttrib( GLbitfield mask ); /* 1.1 */ - -GLAPI void GLAPIENTRY glPopClientAttrib( void ); /* 1.1 */ - - -GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode ); - -GLAPI GLenum GLAPIENTRY glGetError( void ); - -GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name ); - -GLAPI void GLAPIENTRY glFinish( void ); - -GLAPI void GLAPIENTRY glFlush( void ); - -GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode ); - - -/* - * Depth Buffer - */ - -GLAPI void GLAPIENTRY glClearDepth( GLclampd depth ); - -GLAPI void GLAPIENTRY glDepthFunc( GLenum func ); - -GLAPI void GLAPIENTRY glDepthMask( GLboolean flag ); - -GLAPI void GLAPIENTRY glDepthRange( GLclampd near_val, GLclampd far_val ); - - -/* - * Accumulation Buffer - */ - -GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); - -GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value ); - - -/* - * Transformation - */ - -GLAPI void GLAPIENTRY glMatrixMode( GLenum mode ); - -GLAPI void GLAPIENTRY glOrtho( GLdouble left, GLdouble right, - GLdouble bottom, GLdouble top, - GLdouble near_val, GLdouble far_val ); - -GLAPI void GLAPIENTRY glFrustum( GLdouble left, GLdouble right, - GLdouble bottom, GLdouble top, - GLdouble near_val, GLdouble far_val ); - -GLAPI void GLAPIENTRY glViewport( GLint x, GLint y, - GLsizei width, GLsizei height ); - -GLAPI void GLAPIENTRY glPushMatrix( void ); - -GLAPI void GLAPIENTRY glPopMatrix( void ); - -GLAPI void GLAPIENTRY glLoadIdentity( void ); - -GLAPI void GLAPIENTRY glLoadMatrixd( const GLdouble *m ); -GLAPI void GLAPIENTRY glLoadMatrixf( const GLfloat *m ); - -GLAPI void GLAPIENTRY glMultMatrixd( const GLdouble *m ); -GLAPI void GLAPIENTRY glMultMatrixf( const GLfloat *m ); - -GLAPI void GLAPIENTRY glRotated( GLdouble angle, - GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glRotatef( GLfloat angle, - GLfloat x, GLfloat y, GLfloat z ); - -GLAPI void GLAPIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z ); - -GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z ); - - -/* - * Display Lists - */ - -GLAPI GLboolean GLAPIENTRY glIsList( GLuint list ); - -GLAPI void GLAPIENTRY glDeleteLists( GLuint list, GLsizei range ); - -GLAPI GLuint GLAPIENTRY glGenLists( GLsizei range ); - -GLAPI void GLAPIENTRY glNewList( GLuint list, GLenum mode ); - -GLAPI void GLAPIENTRY glEndList( void ); - -GLAPI void GLAPIENTRY glCallList( GLuint list ); - -GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type, - const GLvoid *lists ); - -GLAPI void GLAPIENTRY glListBase( GLuint base ); - - -/* - * Drawing Functions - */ - -GLAPI void GLAPIENTRY glBegin( GLenum mode ); - -GLAPI void GLAPIENTRY glEnd( void ); - - -GLAPI void GLAPIENTRY glVertex2d( GLdouble x, GLdouble y ); -GLAPI void GLAPIENTRY glVertex2f( GLfloat x, GLfloat y ); -GLAPI void GLAPIENTRY glVertex2i( GLint x, GLint y ); -GLAPI void GLAPIENTRY glVertex2s( GLshort x, GLshort y ); - -GLAPI void GLAPIENTRY glVertex3d( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glVertex3f( GLfloat x, GLfloat y, GLfloat z ); -GLAPI void GLAPIENTRY glVertex3i( GLint x, GLint y, GLint z ); -GLAPI void GLAPIENTRY glVertex3s( GLshort x, GLshort y, GLshort z ); - -GLAPI void GLAPIENTRY glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); -GLAPI void GLAPIENTRY glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); -GLAPI void GLAPIENTRY glVertex4i( GLint x, GLint y, GLint z, GLint w ); -GLAPI void GLAPIENTRY glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); - -GLAPI void GLAPIENTRY glVertex2dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glVertex2fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glVertex2iv( const GLint *v ); -GLAPI void GLAPIENTRY glVertex2sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glVertex3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glVertex3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glVertex3iv( const GLint *v ); -GLAPI void GLAPIENTRY glVertex3sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glVertex4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glVertex4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glVertex4iv( const GLint *v ); -GLAPI void GLAPIENTRY glVertex4sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz ); -GLAPI void GLAPIENTRY glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz ); -GLAPI void GLAPIENTRY glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz ); -GLAPI void GLAPIENTRY glNormal3i( GLint nx, GLint ny, GLint nz ); -GLAPI void GLAPIENTRY glNormal3s( GLshort nx, GLshort ny, GLshort nz ); - -GLAPI void GLAPIENTRY glNormal3bv( const GLbyte *v ); -GLAPI void GLAPIENTRY glNormal3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glNormal3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glNormal3iv( const GLint *v ); -GLAPI void GLAPIENTRY glNormal3sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glIndexd( GLdouble c ); -GLAPI void GLAPIENTRY glIndexf( GLfloat c ); -GLAPI void GLAPIENTRY glIndexi( GLint c ); -GLAPI void GLAPIENTRY glIndexs( GLshort c ); -GLAPI void GLAPIENTRY glIndexub( GLubyte c ); /* 1.1 */ - -GLAPI void GLAPIENTRY glIndexdv( const GLdouble *c ); -GLAPI void GLAPIENTRY glIndexfv( const GLfloat *c ); -GLAPI void GLAPIENTRY glIndexiv( const GLint *c ); -GLAPI void GLAPIENTRY glIndexsv( const GLshort *c ); -GLAPI void GLAPIENTRY glIndexubv( const GLubyte *c ); /* 1.1 */ - -GLAPI void GLAPIENTRY glColor3b( GLbyte red, GLbyte green, GLbyte blue ); -GLAPI void GLAPIENTRY glColor3d( GLdouble red, GLdouble green, GLdouble blue ); -GLAPI void GLAPIENTRY glColor3f( GLfloat red, GLfloat green, GLfloat blue ); -GLAPI void GLAPIENTRY glColor3i( GLint red, GLint green, GLint blue ); -GLAPI void GLAPIENTRY glColor3s( GLshort red, GLshort green, GLshort blue ); -GLAPI void GLAPIENTRY glColor3ub( GLubyte red, GLubyte green, GLubyte blue ); -GLAPI void GLAPIENTRY glColor3ui( GLuint red, GLuint green, GLuint blue ); -GLAPI void GLAPIENTRY glColor3us( GLushort red, GLushort green, GLushort blue ); - -GLAPI void GLAPIENTRY glColor4b( GLbyte red, GLbyte green, - GLbyte blue, GLbyte alpha ); -GLAPI void GLAPIENTRY glColor4d( GLdouble red, GLdouble green, - GLdouble blue, GLdouble alpha ); -GLAPI void GLAPIENTRY glColor4f( GLfloat red, GLfloat green, - GLfloat blue, GLfloat alpha ); -GLAPI void GLAPIENTRY glColor4i( GLint red, GLint green, - GLint blue, GLint alpha ); -GLAPI void GLAPIENTRY glColor4s( GLshort red, GLshort green, - GLshort blue, GLshort alpha ); -GLAPI void GLAPIENTRY glColor4ub( GLubyte red, GLubyte green, - GLubyte blue, GLubyte alpha ); -GLAPI void GLAPIENTRY glColor4ui( GLuint red, GLuint green, - GLuint blue, GLuint alpha ); -GLAPI void GLAPIENTRY glColor4us( GLushort red, GLushort green, - GLushort blue, GLushort alpha ); - - -GLAPI void GLAPIENTRY glColor3bv( const GLbyte *v ); -GLAPI void GLAPIENTRY glColor3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glColor3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glColor3iv( const GLint *v ); -GLAPI void GLAPIENTRY glColor3sv( const GLshort *v ); -GLAPI void GLAPIENTRY glColor3ubv( const GLubyte *v ); -GLAPI void GLAPIENTRY glColor3uiv( const GLuint *v ); -GLAPI void GLAPIENTRY glColor3usv( const GLushort *v ); - -GLAPI void GLAPIENTRY glColor4bv( const GLbyte *v ); -GLAPI void GLAPIENTRY glColor4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glColor4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glColor4iv( const GLint *v ); -GLAPI void GLAPIENTRY glColor4sv( const GLshort *v ); -GLAPI void GLAPIENTRY glColor4ubv( const GLubyte *v ); -GLAPI void GLAPIENTRY glColor4uiv( const GLuint *v ); -GLAPI void GLAPIENTRY glColor4usv( const GLushort *v ); - - -GLAPI void GLAPIENTRY glTexCoord1d( GLdouble s ); -GLAPI void GLAPIENTRY glTexCoord1f( GLfloat s ); -GLAPI void GLAPIENTRY glTexCoord1i( GLint s ); -GLAPI void GLAPIENTRY glTexCoord1s( GLshort s ); - -GLAPI void GLAPIENTRY glTexCoord2d( GLdouble s, GLdouble t ); -GLAPI void GLAPIENTRY glTexCoord2f( GLfloat s, GLfloat t ); -GLAPI void GLAPIENTRY glTexCoord2i( GLint s, GLint t ); -GLAPI void GLAPIENTRY glTexCoord2s( GLshort s, GLshort t ); - -GLAPI void GLAPIENTRY glTexCoord3d( GLdouble s, GLdouble t, GLdouble r ); -GLAPI void GLAPIENTRY glTexCoord3f( GLfloat s, GLfloat t, GLfloat r ); -GLAPI void GLAPIENTRY glTexCoord3i( GLint s, GLint t, GLint r ); -GLAPI void GLAPIENTRY glTexCoord3s( GLshort s, GLshort t, GLshort r ); - -GLAPI void GLAPIENTRY glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); -GLAPI void GLAPIENTRY glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q ); -GLAPI void GLAPIENTRY glTexCoord4i( GLint s, GLint t, GLint r, GLint q ); -GLAPI void GLAPIENTRY glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); - -GLAPI void GLAPIENTRY glTexCoord1dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord1fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord1iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord1sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glTexCoord2dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord2fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord2iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord2sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glTexCoord3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord3iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord3sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glTexCoord4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord4iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord4sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glRasterPos2d( GLdouble x, GLdouble y ); -GLAPI void GLAPIENTRY glRasterPos2f( GLfloat x, GLfloat y ); -GLAPI void GLAPIENTRY glRasterPos2i( GLint x, GLint y ); -GLAPI void GLAPIENTRY glRasterPos2s( GLshort x, GLshort y ); - -GLAPI void GLAPIENTRY glRasterPos3d( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glRasterPos3f( GLfloat x, GLfloat y, GLfloat z ); -GLAPI void GLAPIENTRY glRasterPos3i( GLint x, GLint y, GLint z ); -GLAPI void GLAPIENTRY glRasterPos3s( GLshort x, GLshort y, GLshort z ); - -GLAPI void GLAPIENTRY glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); -GLAPI void GLAPIENTRY glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); -GLAPI void GLAPIENTRY glRasterPos4i( GLint x, GLint y, GLint z, GLint w ); -GLAPI void GLAPIENTRY glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w ); - -GLAPI void GLAPIENTRY glRasterPos2dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glRasterPos2fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glRasterPos2iv( const GLint *v ); -GLAPI void GLAPIENTRY glRasterPos2sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glRasterPos3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glRasterPos3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glRasterPos3iv( const GLint *v ); -GLAPI void GLAPIENTRY glRasterPos3sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glRasterPos4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glRasterPos4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glRasterPos4iv( const GLint *v ); -GLAPI void GLAPIENTRY glRasterPos4sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 ); -GLAPI void GLAPIENTRY glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); -GLAPI void GLAPIENTRY glRecti( GLint x1, GLint y1, GLint x2, GLint y2 ); -GLAPI void GLAPIENTRY glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 ); - - -GLAPI void GLAPIENTRY glRectdv( const GLdouble *v1, const GLdouble *v2 ); -GLAPI void GLAPIENTRY glRectfv( const GLfloat *v1, const GLfloat *v2 ); -GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 ); -GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 ); - - -/* - * Vertex Arrays (1.1) - */ - -GLAPI void GLAPIENTRY glVertexPointer( GLint size, GLenum type, - GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glNormalPointer( GLenum type, GLsizei stride, - const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glColorPointer( GLint size, GLenum type, - GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glIndexPointer( GLenum type, GLsizei stride, - const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glTexCoordPointer( GLint size, GLenum type, - GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, GLvoid **params ); - -GLAPI void GLAPIENTRY glArrayElement( GLint i ); - -GLAPI void GLAPIENTRY glDrawArrays( GLenum mode, GLint first, GLsizei count ); - -GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count, - GLenum type, const GLvoid *indices ); - -GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride, - const GLvoid *pointer ); - -/* - * Lighting - */ - -GLAPI void GLAPIENTRY glShadeModel( GLenum mode ); - -GLAPI void GLAPIENTRY glLightf( GLenum light, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glLighti( GLenum light, GLenum pname, GLint param ); -GLAPI void GLAPIENTRY glLightfv( GLenum light, GLenum pname, - const GLfloat *params ); -GLAPI void GLAPIENTRY glLightiv( GLenum light, GLenum pname, - const GLint *params ); - -GLAPI void GLAPIENTRY glGetLightfv( GLenum light, GLenum pname, - GLfloat *params ); -GLAPI void GLAPIENTRY glGetLightiv( GLenum light, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glLightModelf( GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glLightModeli( GLenum pname, GLint param ); -GLAPI void GLAPIENTRY glLightModelfv( GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glLightModeliv( GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glMaterialf( GLenum face, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glMateriali( GLenum face, GLenum pname, GLint param ); -GLAPI void GLAPIENTRY glMaterialfv( GLenum face, GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glMaterialiv( GLenum face, GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params ); - -GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode ); - - -/* - * Raster functions - */ - -GLAPI void GLAPIENTRY glPixelZoom( GLfloat xfactor, GLfloat yfactor ); - -GLAPI void GLAPIENTRY glPixelStoref( GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glPixelStorei( GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glPixelTransferf( GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glPixelTransferi( GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLsizei mapsize, - const GLfloat *values ); -GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLsizei mapsize, - const GLuint *values ); -GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLsizei mapsize, - const GLushort *values ); - -GLAPI void GLAPIENTRY glGetPixelMapfv( GLenum map, GLfloat *values ); -GLAPI void GLAPIENTRY glGetPixelMapuiv( GLenum map, GLuint *values ); -GLAPI void GLAPIENTRY glGetPixelMapusv( GLenum map, GLushort *values ); - -GLAPI void GLAPIENTRY glBitmap( GLsizei width, GLsizei height, - GLfloat xorig, GLfloat yorig, - GLfloat xmove, GLfloat ymove, - const GLubyte *bitmap ); - -GLAPI void GLAPIENTRY glReadPixels( GLint x, GLint y, - GLsizei width, GLsizei height, - GLenum format, GLenum type, - GLvoid *pixels ); - -GLAPI void GLAPIENTRY glDrawPixels( GLsizei width, GLsizei height, - GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y, - GLsizei width, GLsizei height, - GLenum type ); - -/* - * Stenciling - */ - -GLAPI void GLAPIENTRY glStencilFunc( GLenum func, GLint ref, GLuint mask ); - -GLAPI void GLAPIENTRY glStencilMask( GLuint mask ); - -GLAPI void GLAPIENTRY glStencilOp( GLenum fail, GLenum zfail, GLenum zpass ); - -GLAPI void GLAPIENTRY glClearStencil( GLint s ); - - - -/* - * Texture mapping - */ - -GLAPI void GLAPIENTRY glTexGend( GLenum coord, GLenum pname, GLdouble param ); -GLAPI void GLAPIENTRY glTexGenf( GLenum coord, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glTexGeni( GLenum coord, GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glTexGendv( GLenum coord, GLenum pname, const GLdouble *params ); -GLAPI void GLAPIENTRY glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glTexGeniv( GLenum coord, GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params ); -GLAPI void GLAPIENTRY glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetTexGeniv( GLenum coord, GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glTexEnvf( GLenum target, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glTexEnvi( GLenum target, GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glTexEnviv( GLenum target, GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetTexEnviv( GLenum target, GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glTexParameterf( GLenum target, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glTexParameteri( GLenum target, GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glTexParameterfv( GLenum target, GLenum pname, - const GLfloat *params ); -GLAPI void GLAPIENTRY glTexParameteriv( GLenum target, GLenum pname, - const GLint *params ); - -GLAPI void GLAPIENTRY glGetTexParameterfv( GLenum target, - GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexParameteriv( GLenum target, - GLenum pname, GLint *params ); - -GLAPI void GLAPIENTRY glGetTexLevelParameterfv( GLenum target, GLint level, - GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetTexLevelParameteriv( GLenum target, GLint level, - GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glTexImage1D( GLenum target, GLint level, - GLint internalFormat, - GLsizei width, GLint border, - GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glTexImage2D( GLenum target, GLint level, - GLint internalFormat, - GLsizei width, GLsizei height, - GLint border, GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level, - GLenum format, GLenum type, - GLvoid *pixels ); - - -/* 1.1 functions */ - -GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures ); - -GLAPI void GLAPIENTRY glDeleteTextures( GLsizei n, const GLuint *textures); - -GLAPI void GLAPIENTRY glBindTexture( GLenum target, GLuint texture ); - -GLAPI void GLAPIENTRY glPrioritizeTextures( GLsizei n, - const GLuint *textures, - const GLclampf *priorities ); - -GLAPI GLboolean GLAPIENTRY glAreTexturesResident( GLsizei n, - const GLuint *textures, - GLboolean *residences ); - -GLAPI GLboolean GLAPIENTRY glIsTexture( GLuint texture ); - - -GLAPI void GLAPIENTRY glTexSubImage1D( GLenum target, GLint level, - GLint xoffset, - GLsizei width, GLenum format, - GLenum type, const GLvoid *pixels ); - - -GLAPI void GLAPIENTRY glTexSubImage2D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLsizei width, GLsizei height, - GLenum format, GLenum type, - const GLvoid *pixels ); - - -GLAPI void GLAPIENTRY glCopyTexImage1D( GLenum target, GLint level, - GLenum internalformat, - GLint x, GLint y, - GLsizei width, GLint border ); - - -GLAPI void GLAPIENTRY glCopyTexImage2D( GLenum target, GLint level, - GLenum internalformat, - GLint x, GLint y, - GLsizei width, GLsizei height, - GLint border ); - - -GLAPI void GLAPIENTRY glCopyTexSubImage1D( GLenum target, GLint level, - GLint xoffset, GLint x, GLint y, - GLsizei width ); - - -GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint x, GLint y, - GLsizei width, GLsizei height ); - - -/* - * Evaluators - */ - -GLAPI void GLAPIENTRY glMap1d( GLenum target, GLdouble u1, GLdouble u2, - GLint stride, - GLint order, const GLdouble *points ); -GLAPI void GLAPIENTRY glMap1f( GLenum target, GLfloat u1, GLfloat u2, - GLint stride, - GLint order, const GLfloat *points ); - -GLAPI void GLAPIENTRY glMap2d( GLenum target, - GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, - GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, - const GLdouble *points ); -GLAPI void GLAPIENTRY glMap2f( GLenum target, - GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, - GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, - const GLfloat *points ); - -GLAPI void GLAPIENTRY glGetMapdv( GLenum target, GLenum query, GLdouble *v ); -GLAPI void GLAPIENTRY glGetMapfv( GLenum target, GLenum query, GLfloat *v ); -GLAPI void GLAPIENTRY glGetMapiv( GLenum target, GLenum query, GLint *v ); - -GLAPI void GLAPIENTRY glEvalCoord1d( GLdouble u ); -GLAPI void GLAPIENTRY glEvalCoord1f( GLfloat u ); - -GLAPI void GLAPIENTRY glEvalCoord1dv( const GLdouble *u ); -GLAPI void GLAPIENTRY glEvalCoord1fv( const GLfloat *u ); - -GLAPI void GLAPIENTRY glEvalCoord2d( GLdouble u, GLdouble v ); -GLAPI void GLAPIENTRY glEvalCoord2f( GLfloat u, GLfloat v ); - -GLAPI void GLAPIENTRY glEvalCoord2dv( const GLdouble *u ); -GLAPI void GLAPIENTRY glEvalCoord2fv( const GLfloat *u ); - -GLAPI void GLAPIENTRY glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 ); -GLAPI void GLAPIENTRY glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 ); - -GLAPI void GLAPIENTRY glMapGrid2d( GLint un, GLdouble u1, GLdouble u2, - GLint vn, GLdouble v1, GLdouble v2 ); -GLAPI void GLAPIENTRY glMapGrid2f( GLint un, GLfloat u1, GLfloat u2, - GLint vn, GLfloat v1, GLfloat v2 ); - -GLAPI void GLAPIENTRY glEvalPoint1( GLint i ); - -GLAPI void GLAPIENTRY glEvalPoint2( GLint i, GLint j ); - -GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 ); - -GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ); - - -/* - * Fog - */ - -GLAPI void GLAPIENTRY glFogf( GLenum pname, GLfloat param ); - -GLAPI void GLAPIENTRY glFogi( GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params ); - -GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params ); - - -/* - * Selection and Feedback - */ - -GLAPI void GLAPIENTRY glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ); - -GLAPI void GLAPIENTRY glPassThrough( GLfloat token ); - -GLAPI void GLAPIENTRY glSelectBuffer( GLsizei size, GLuint *buffer ); - -GLAPI void GLAPIENTRY glInitNames( void ); - -GLAPI void GLAPIENTRY glLoadName( GLuint name ); - -GLAPI void GLAPIENTRY glPushName( GLuint name ); - -GLAPI void GLAPIENTRY glPopName( void ); - - - -/* - * OpenGL 1.2 - */ - -#define GL_RESCALE_NORMAL 0x803A -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_TEXTURE_BINDING_3D 0x806A - -GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start, - GLuint end, GLsizei count, GLenum type, const GLvoid *indices ); - -GLAPI void GLAPIENTRY glTexImage3D( GLenum target, GLint level, - GLint internalFormat, - GLsizei width, GLsizei height, - GLsizei depth, GLint border, - GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glTexSubImage3D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint zoffset, GLsizei width, - GLsizei height, GLsizei depth, - GLenum format, - GLenum type, const GLvoid *pixels); - -GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint zoffset, GLint x, - GLint y, GLsizei width, - GLsizei height ); - -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); - - -/* - * GL_ARB_imaging - */ - -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_BLEND_EQUATION 0x8009 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_FUNC_ADD 0x8006 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_COLOR 0x8005 - - -GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat, - GLsizei width, GLenum format, - GLenum type, const GLvoid *table ); - -GLAPI void GLAPIENTRY glColorSubTable( GLenum target, - GLsizei start, GLsizei count, - GLenum format, GLenum type, - const GLvoid *data ); - -GLAPI void GLAPIENTRY glColorTableParameteriv(GLenum target, GLenum pname, - const GLint *params); - -GLAPI void GLAPIENTRY glColorTableParameterfv(GLenum target, GLenum pname, - const GLfloat *params); - -GLAPI void GLAPIENTRY glCopyColorSubTable( GLenum target, GLsizei start, - GLint x, GLint y, GLsizei width ); - -GLAPI void GLAPIENTRY glCopyColorTable( GLenum target, GLenum internalformat, - GLint x, GLint y, GLsizei width ); - -GLAPI void GLAPIENTRY glGetColorTable( GLenum target, GLenum format, - GLenum type, GLvoid *table ); - -GLAPI void GLAPIENTRY glGetColorTableParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetColorTableParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glBlendEquation( GLenum mode ); - -GLAPI void GLAPIENTRY glBlendColor( GLclampf red, GLclampf green, - GLclampf blue, GLclampf alpha ); - -GLAPI void GLAPIENTRY glHistogram( GLenum target, GLsizei width, - GLenum internalformat, GLboolean sink ); - -GLAPI void GLAPIENTRY glResetHistogram( GLenum target ); - -GLAPI void GLAPIENTRY glGetHistogram( GLenum target, GLboolean reset, - GLenum format, GLenum type, - GLvoid *values ); - -GLAPI void GLAPIENTRY glGetHistogramParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetHistogramParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glMinmax( GLenum target, GLenum internalformat, - GLboolean sink ); - -GLAPI void GLAPIENTRY glResetMinmax( GLenum target ); - -GLAPI void GLAPIENTRY glGetMinmax( GLenum target, GLboolean reset, - GLenum format, GLenum types, - GLvoid *values ); - -GLAPI void GLAPIENTRY glGetMinmaxParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetMinmaxParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glConvolutionFilter1D( GLenum target, - GLenum internalformat, GLsizei width, GLenum format, GLenum type, - const GLvoid *image ); - -GLAPI void GLAPIENTRY glConvolutionFilter2D( GLenum target, - GLenum internalformat, GLsizei width, GLsizei height, GLenum format, - GLenum type, const GLvoid *image ); - -GLAPI void GLAPIENTRY glConvolutionParameterf( GLenum target, GLenum pname, - GLfloat params ); - -GLAPI void GLAPIENTRY glConvolutionParameterfv( GLenum target, GLenum pname, - const GLfloat *params ); - -GLAPI void GLAPIENTRY glConvolutionParameteri( GLenum target, GLenum pname, - GLint params ); - -GLAPI void GLAPIENTRY glConvolutionParameteriv( GLenum target, GLenum pname, - const GLint *params ); - -GLAPI void GLAPIENTRY glCopyConvolutionFilter1D( GLenum target, - GLenum internalformat, GLint x, GLint y, GLsizei width ); - -GLAPI void GLAPIENTRY glCopyConvolutionFilter2D( GLenum target, - GLenum internalformat, GLint x, GLint y, GLsizei width, - GLsizei height); - -GLAPI void GLAPIENTRY glGetConvolutionFilter( GLenum target, GLenum format, - GLenum type, GLvoid *image ); - -GLAPI void GLAPIENTRY glGetConvolutionParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetConvolutionParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target, - GLenum internalformat, GLsizei width, GLsizei height, GLenum format, - GLenum type, const GLvoid *row, const GLvoid *column ); - -GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format, - GLenum type, GLvoid *row, GLvoid *column, GLvoid *span ); - - - - -/* - * OpenGL 1.3 - */ - -/* multitexture */ -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -/* texture_cube_map */ -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -/* texture_compression */ -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -/* multisample */ -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_MULTISAMPLE_BIT 0x20000000 -/* transpose_matrix */ -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -/* texture_env_combine */ -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_SUBTRACT 0x84E7 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -/* texture_env_dot3 */ -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -/* texture_border_clamp */ -#define GL_CLAMP_TO_BORDER 0x812D - -GLAPI void GLAPIENTRY glActiveTexture( GLenum texture ); - -GLAPI void GLAPIENTRY glClientActiveTexture( GLenum texture ); - -GLAPI void GLAPIENTRY glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img ); - -GLAPI void GLAPIENTRY glMultiTexCoord1d( GLenum target, GLdouble s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord1f( GLenum target, GLfloat s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord1i( GLenum target, GLint s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord1s( GLenum target, GLshort s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1sv( GLenum target, const GLshort *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2i( GLenum target, GLint s, GLint t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2s( GLenum target, GLshort s, GLshort t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2sv( GLenum target, const GLshort *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3sv( GLenum target, const GLshort *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4sv( GLenum target, const GLshort *v ); - - -GLAPI void GLAPIENTRY glLoadTransposeMatrixd( const GLdouble m[16] ); - -GLAPI void GLAPIENTRY glLoadTransposeMatrixf( const GLfloat m[16] ); - -GLAPI void GLAPIENTRY glMultTransposeMatrixd( const GLdouble m[16] ); - -GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] ); - -GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert ); - - -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); - - - -/* - * GL_ARB_multitexture (ARB extension 1 and OpenGL 1.2.1) - */ -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 - -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 - -GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture); -GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture); -GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s); -GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s); -GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s); -GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s); -GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v); -GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); -GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); -GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); -GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); -GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v); -GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); -GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v); -GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); - -typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); - -#endif /* GL_ARB_multitexture */ - - - -/* - * Define this token if you want "old-style" header file behaviour (extensions - * defined in gl.h). Otherwise, extensions will be included from glext.h. - */ -#if !defined(NO_SDL_GLEXT) && !defined(GL_GLEXT_LEGACY) -#include "SDL_opengl_glext.h" -#endif /* GL_GLEXT_LEGACY */ - - - -/* - * ???. GL_MESA_packed_depth_stencil - * XXX obsolete - */ -#ifndef GL_MESA_packed_depth_stencil -#define GL_MESA_packed_depth_stencil 1 - -#define GL_DEPTH_STENCIL_MESA 0x8750 -#define GL_UNSIGNED_INT_24_8_MESA 0x8751 -#define GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 -#define GL_UNSIGNED_SHORT_15_1_MESA 0x8753 -#define GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 - -#endif /* GL_MESA_packed_depth_stencil */ - - -#ifndef GL_ATI_blend_equation_separate -#define GL_ATI_blend_equation_separate 1 - -#define GL_ALPHA_BLEND_EQUATION_ATI 0x883D - -GLAPI void GLAPIENTRY glBlendEquationSeparateATI( GLenum modeRGB, GLenum modeA ); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA); - -#endif /* GL_ATI_blend_equation_separate */ - - -/* GL_OES_EGL_image */ -#ifndef GL_OES_EGL_image -typedef void* GLeglImageOES; -#endif - -#ifndef GL_OES_EGL_image -#define GL_OES_EGL_image 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); -GLAPI void APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); -#endif -typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); -typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); -#endif - - -/** - ** NOTE!!!!! If you add new functions to this file, or update - ** glext.h be sure to regenerate the gl_mangle.h file. See comments - ** in that file for details. - **/ - - - -/********************************************************************** - * Begin system-specific stuff - */ -#if defined(PRAGMA_EXPORT_SUPPORTED) -#pragma export off -#endif - -/* - * End system-specific stuff - **********************************************************************/ - - -#ifdef __cplusplus -} -#endif - -#endif /* __gl_h_ */ - -#endif /* !__IPHONEOS__ */ - -#endif /* _SDL_opengl_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_opengl_glext.h b/lib/osx/include/SDL_opengl_glext.h deleted file mode 100644 index cd3869f..0000000 --- a/lib/osx/include/SDL_opengl_glext.h +++ /dev/null @@ -1,11177 +0,0 @@ -#ifndef __glext_h_ -#define __glext_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2014 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.opengl.org/registry/ -** -** Khronos $Revision: 26745 $ on $Date: 2014-05-21 03:12:26 -0700 (Wed, 21 May 2014) $ -*/ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN 1 -#endif -#include <windows.h> -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - -#define GL_GLEXT_VERSION 20140521 - -/* Generated C header for: - * API: gl - * Profile: compatibility - * Versions considered: .* - * Versions emitted: 1\.[2-9]|[234]\.[0-9] - * Default extensions included: gl - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_RESCALE_NORMAL 0x803A -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GLAPI void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_VERSION_1_2 */ - -#ifndef GL_VERSION_1_3 -#define GL_VERSION_1_3 1 -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_MULTISAMPLE_BIT 0x20000000 -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_SUBTRACT 0x84E7 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTexture (GLenum texture); -GLAPI void APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GLAPI void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, void *img); -GLAPI void APIENTRY glClientActiveTexture (GLenum texture); -GLAPI void APIENTRY glMultiTexCoord1d (GLenum target, GLdouble s); -GLAPI void APIENTRY glMultiTexCoord1dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord1f (GLenum target, GLfloat s); -GLAPI void APIENTRY glMultiTexCoord1fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord1i (GLenum target, GLint s); -GLAPI void APIENTRY glMultiTexCoord1iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord1s (GLenum target, GLshort s); -GLAPI void APIENTRY glMultiTexCoord1sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t); -GLAPI void APIENTRY glMultiTexCoord2dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t); -GLAPI void APIENTRY glMultiTexCoord2fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord2i (GLenum target, GLint s, GLint t); -GLAPI void APIENTRY glMultiTexCoord2iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord2s (GLenum target, GLshort s, GLshort t); -GLAPI void APIENTRY glMultiTexCoord2sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void APIENTRY glMultiTexCoord3dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void APIENTRY glMultiTexCoord3fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r); -GLAPI void APIENTRY glMultiTexCoord3iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void APIENTRY glMultiTexCoord3sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void APIENTRY glMultiTexCoord4dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void APIENTRY glMultiTexCoord4fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void APIENTRY glMultiTexCoord4iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void APIENTRY glMultiTexCoord4sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *m); -GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *m); -GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *m); -GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *m); -#endif -#endif /* GL_VERSION_1_3 */ - -#ifndef GL_VERSION_1_4 -#define GL_VERSION_1_4 1 -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_COMPARE_R_TO_TEXTURE 0x884E -#define GL_FUNC_ADD 0x8006 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GLAPI void APIENTRY glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); -GLAPI void APIENTRY glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); -GLAPI void APIENTRY glPointParameterf (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glPointParameteri (GLenum pname, GLint param); -GLAPI void APIENTRY glPointParameteriv (GLenum pname, const GLint *params); -GLAPI void APIENTRY glFogCoordf (GLfloat coord); -GLAPI void APIENTRY glFogCoordfv (const GLfloat *coord); -GLAPI void APIENTRY glFogCoordd (GLdouble coord); -GLAPI void APIENTRY glFogCoorddv (const GLdouble *coord); -GLAPI void APIENTRY glFogCoordPointer (GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue); -GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *v); -GLAPI void APIENTRY glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue); -GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *v); -GLAPI void APIENTRY glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue); -GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *v); -GLAPI void APIENTRY glSecondaryColor3i (GLint red, GLint green, GLint blue); -GLAPI void APIENTRY glSecondaryColor3iv (const GLint *v); -GLAPI void APIENTRY glSecondaryColor3s (GLshort red, GLshort green, GLshort blue); -GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *v); -GLAPI void APIENTRY glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue); -GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *v); -GLAPI void APIENTRY glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue); -GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *v); -GLAPI void APIENTRY glSecondaryColor3us (GLushort red, GLushort green, GLushort blue); -GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *v); -GLAPI void APIENTRY glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glWindowPos2d (GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dv (const GLdouble *v); -GLAPI void APIENTRY glWindowPos2f (GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fv (const GLfloat *v); -GLAPI void APIENTRY glWindowPos2i (GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2iv (const GLint *v); -GLAPI void APIENTRY glWindowPos2s (GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2sv (const GLshort *v); -GLAPI void APIENTRY glWindowPos3d (GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dv (const GLdouble *v); -GLAPI void APIENTRY glWindowPos3f (GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fv (const GLfloat *v); -GLAPI void APIENTRY glWindowPos3i (GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3iv (const GLint *v); -GLAPI void APIENTRY glWindowPos3s (GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3sv (const GLshort *v); -GLAPI void APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI void APIENTRY glBlendEquation (GLenum mode); -#endif -#endif /* GL_VERSION_1_4 */ - -#ifndef GL_VERSION_1_5 -#define GL_VERSION_1_5 1 -#include <stddef.h> -#ifdef __MACOSX__ -typedef long GLsizeiptr; -typedef long GLintptr; -#else -typedef ptrdiff_t GLsizeiptr; -typedef ptrdiff_t GLintptr; -#endif -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_SAMPLES_PASSED 0x8914 -#define GL_SRC1_ALPHA 0x8589 -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_FOG_COORD_SRC 0x8450 -#define GL_FOG_COORD 0x8451 -#define GL_CURRENT_FOG_COORD 0x8453 -#define GL_FOG_COORD_ARRAY_TYPE 0x8454 -#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORD_ARRAY_POINTER 0x8456 -#define GL_FOG_COORD_ARRAY 0x8457 -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D -#define GL_SRC0_RGB 0x8580 -#define GL_SRC1_RGB 0x8581 -#define GL_SRC2_RGB 0x8582 -#define GL_SRC0_ALPHA 0x8588 -#define GL_SRC2_ALPHA 0x858A -typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void *data); -typedef void *(APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsQuery (GLuint id); -GLAPI void APIENTRY glBeginQuery (GLenum target, GLuint id); -GLAPI void APIENTRY glEndQuery (GLenum target); -GLAPI void APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GLAPI GLboolean APIENTRY glIsBuffer (GLuint buffer); -GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GLAPI void APIENTRY glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, void *data); -GLAPI void *APIENTRY glMapBuffer (GLenum target, GLenum access); -GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum target); -GLAPI void APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -#endif -#endif /* GL_VERSION_1_5 */ - -#ifndef GL_VERSION_2_0 -#define GL_VERSION_2_0 1 -typedef char GLchar; -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_SHADER_TYPE 0x8B4F -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_DELETE_STATUS 0x8B80 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define GL_POINT_SPRITE 0x8861 -#define GL_COORD_REPLACE 0x8862 -#define GL_MAX_TEXTURE_COORDS 0x8871 -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GLAPI void APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GLAPI void APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GLAPI void APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader); -GLAPI void APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GLAPI void APIENTRY glCompileShader (GLuint shader); -GLAPI GLuint APIENTRY glCreateProgram (void); -GLAPI GLuint APIENTRY glCreateShader (GLenum type); -GLAPI void APIENTRY glDeleteProgram (GLuint program); -GLAPI void APIENTRY glDeleteShader (GLuint shader); -GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader); -GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index); -GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index); -GLAPI void APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GLAPI void APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GLAPI void APIENTRY glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GLAPI GLboolean APIENTRY glIsProgram (GLuint program); -GLAPI GLboolean APIENTRY glIsShader (GLuint shader); -GLAPI void APIENTRY glLinkProgram (GLuint program); -GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GLAPI void APIENTRY glUseProgram (GLuint program); -GLAPI void APIENTRY glUniform1f (GLint location, GLfloat v0); -GLAPI void APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glUniform1i (GLint location, GLint v0); -GLAPI void APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glValidateProgram (GLuint program); -GLAPI void APIENTRY glVertexAttrib1d (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1s (GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2s (GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4Niv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttrib4bv (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubv (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4usv (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -#endif -#endif /* GL_VERSION_2_0 */ - -#ifndef GL_VERSION_2_1 -#define GL_VERSION_2_1 1 -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F -#define GL_SLUMINANCE_ALPHA 0x8C44 -#define GL_SLUMINANCE8_ALPHA8 0x8C45 -#define GL_SLUMINANCE 0x8C46 -#define GL_SLUMINANCE8 0x8C47 -#define GL_COMPRESSED_SLUMINANCE 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif -#endif /* GL_VERSION_2_1 */ - -#ifndef GL_VERSION_3_0 -#define GL_VERSION_3_0 1 -typedef unsigned short GLhalf; -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_CLIP_DISTANCE0 0x3000 -#define GL_CLIP_DISTANCE1 0x3001 -#define GL_CLIP_DISTANCE2 0x3002 -#define GL_CLIP_DISTANCE3 0x3003 -#define GL_CLIP_DISTANCE4 0x3004 -#define GL_CLIP_DISTANCE5 0x3005 -#define GL_CLIP_DISTANCE6 0x3006 -#define GL_CLIP_DISTANCE7 0x3007 -#define GL_MAX_CLIP_DISTANCES 0x0D32 -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_CONTEXT_FLAGS 0x821E -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001 -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_CLAMP_READ_COLOR 0x891C -#define GL_FIXED_ONLY 0x891D -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_1D_ARRAY 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_GREEN_INTEGER 0x8D95 -#define GL_BLUE_INTEGER 0x8D96 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_BGR_INTEGER 0x8D9A -#define GL_BGRA_INTEGER 0x8D9B -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_QUERY_WAIT 0x8E13 -#define GL_QUERY_NO_WAIT 0x8E14 -#define GL_QUERY_BY_REGION_WAIT 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_STENCIL_INDEX1 0x8D46 -#define GL_STENCIL_INDEX4 0x8D47 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_STENCIL_INDEX16 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_INDEX 0x8222 -#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 -#define GL_FRAMEBUFFER_SRGB 0x8DB9 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_COMPRESSED_RED_RGTC1 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC -#define GL_COMPRESSED_RG_RGTC2 0x8DBD -#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_R16 0x822A -#define GL_RG8 0x822B -#define GL_RG16 0x822C -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_CLAMP_VERTEX_COLOR 0x891A -#define GL_CLAMP_FRAGMENT_COLOR 0x891B -#define GL_ALPHA_INTEGER 0x8D97 -typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GLAPI void APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); -GLAPI void APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GLAPI void APIENTRY glEnablei (GLenum target, GLuint index); -GLAPI void APIENTRY glDisablei (GLenum target, GLuint index); -GLAPI GLboolean APIENTRY glIsEnabledi (GLenum target, GLuint index); -GLAPI void APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedback (void); -GLAPI void APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glClampColor (GLenum target, GLenum clamp); -GLAPI void APIENTRY glBeginConditionalRender (GLuint id, GLenum mode); -GLAPI void APIENTRY glEndConditionalRender (void); -GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GLAPI void APIENTRY glVertexAttribI1i (GLuint index, GLint x); -GLAPI void APIENTRY glVertexAttribI2i (GLuint index, GLint x, GLint y); -GLAPI void APIENTRY glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexAttribI1ui (GLuint index, GLuint x); -GLAPI void APIENTRY glVertexAttribI2ui (GLuint index, GLuint x, GLuint y); -GLAPI void APIENTRY glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z); -GLAPI void APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glVertexAttribI1iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI2iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI3iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI1uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI2uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI3uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4bv (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttribI4sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttribI4ubv (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribI4usv (GLuint index, const GLushort *v); -GLAPI void APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GLAPI void APIENTRY glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glUniform1ui (GLint location, GLuint v0); -GLAPI void APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GLAPI void APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GLAPI void APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GLAPI void APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GLAPI const GLubyte *APIENTRY glGetStringi (GLenum name, GLuint index); -GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GLAPI void APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GLAPI void APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GLAPI void APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint framebuffer); -GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum target); -GLAPI void APIENTRY glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateMipmap (GLenum target); -GLAPI void APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void *APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GLAPI void APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GLAPI void APIENTRY glBindVertexArray (GLuint array); -GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array); -#endif -#endif /* GL_VERSION_3_0 */ - -#ifndef GL_VERSION_3_1 -#define GL_VERSION_3_1 1 -#define GL_SAMPLER_2D_RECT 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_2D_RECT 0x8DCD -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_RECTANGLE 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM 0x8F98 -#define GL_RG16_SNORM 0x8F99 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGBA16_SNORM 0x8F9B -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART 0x8F9D -#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index); -typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); -typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint index); -GLAPI void APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GLAPI void APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GLAPI void APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); -GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GLAPI void APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -#endif -#endif /* GL_VERSION_3_1 */ - -#ifndef GL_VERSION_3_2 -#define GL_VERSION_3_2 1 -typedef struct __GLsync *GLsync; -#ifndef GLEXT_64_TYPES_DEFINED -/* This code block is duplicated in glxext.h, so must be protected */ -#define GLEXT_64_TYPES_DEFINED -/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -/* (as used in the GL_EXT_timer_query extension). */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -#include <inttypes.h> -#elif defined(__sun__) || defined(__digital__) -#include <inttypes.h> -#if defined(__STDC__) -#if defined(__arch64__) || defined(_LP64) -typedef long int int64_t; -typedef unsigned long int uint64_t; -#else -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#endif /* __arch64__ */ -#endif /* __STDC__ */ -#elif defined( __VMS ) || defined(__sgi) -#include <inttypes.h> -#elif defined(__SCO__) || defined(__USLC__) -#include <stdint.h> -#elif defined(__UNIXOS2__) || defined(__SOL64__) -typedef long int int32_t; -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#elif defined(_WIN32) && defined(__GNUC__) -#include <stdint.h> -#elif defined(_WIN32) -typedef __int32 int32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -/* Fallback if nothing above works */ -#include <inttypes.h> -#endif -#endif -typedef uint64_t GLuint64; -typedef int64_t GLint64; -#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 -#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_PROGRAM_POINT_SIZE 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_CONTEXT_PROFILE_MASK 0x9126 -#define GL_DEPTH_CLAMP 0x864F -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F -#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); -typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode); -typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); -GLAPI void APIENTRY glProvokingVertex (GLenum mode); -GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GLAPI GLboolean APIENTRY glIsSync (GLsync sync); -GLAPI void APIENTRY glDeleteSync (GLsync sync); -GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); -GLAPI void APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); -#endif -#endif /* GL_VERSION_3_2 */ - -#ifndef GL_VERSION_3_3 -#define GL_VERSION_3_3 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_SRC1_COLOR 0x88F9 -#define GL_ONE_MINUS_SRC1_COLOR 0x88FA -#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 -#define GL_TIME_ELAPSED 0x88BF -#define GL_TIMESTAMP 0x8E28 -#define GL_INT_2_10_10_10_REV 0x8D9F -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params); -typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint *value); -typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (APIENTRYP PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint *color); -typedef void (APIENTRYP PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); -typedef void (APIENTRYP PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint *color); -typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint *color); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataIndex (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GLAPI GLboolean APIENTRY glIsSampler (GLuint sampler); -GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GLAPI void APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GLAPI void APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GLAPI void APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GLAPI void APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); -GLAPI void APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); -GLAPI void APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); -GLAPI void APIENTRY glQueryCounter (GLuint id, GLenum target); -GLAPI void APIENTRY glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params); -GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GLAPI void APIENTRY glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexP2ui (GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP2uiv (GLenum type, const GLuint *value); -GLAPI void APIENTRY glVertexP3ui (GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP3uiv (GLenum type, const GLuint *value); -GLAPI void APIENTRY glVertexP4ui (GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP4uiv (GLenum type, const GLuint *value); -GLAPI void APIENTRY glTexCoordP1ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP1uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP2ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP2uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP3ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP3uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP4ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP4uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP1ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP1uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP2ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP2uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP3ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP3uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP4ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP4uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glNormalP3ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glNormalP3uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glColorP3ui (GLenum type, GLuint color); -GLAPI void APIENTRY glColorP3uiv (GLenum type, const GLuint *color); -GLAPI void APIENTRY glColorP4ui (GLenum type, GLuint color); -GLAPI void APIENTRY glColorP4uiv (GLenum type, const GLuint *color); -GLAPI void APIENTRY glSecondaryColorP3ui (GLenum type, GLuint color); -GLAPI void APIENTRY glSecondaryColorP3uiv (GLenum type, const GLuint *color); -#endif -#endif /* GL_VERSION_3_3 */ - -#ifndef GL_VERSION_4_0 -#define GL_VERSION_4_0 1 -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -#define GL_MAX_VERTEX_STREAMS 0x8E71 -#define GL_DOUBLE_VEC2 0x8FFC -#define GL_DOUBLE_VEC3 0x8FFD -#define GL_DOUBLE_VEC4 0x8FFE -#define GL_DOUBLE_MAT2 0x8F46 -#define GL_DOUBLE_MAT3 0x8F47 -#define GL_DOUBLE_MAT4 0x8F48 -#define GL_DOUBLE_MAT2x3 0x8F49 -#define GL_DOUBLE_MAT2x4 0x8F4A -#define GL_DOUBLE_MAT3x2 0x8F4B -#define GL_DOUBLE_MAT3x4 0x8F4C -#define GL_DOUBLE_MAT4x2 0x8F4D -#define GL_DOUBLE_MAT4x3 0x8F4E -#define GL_ACTIVE_SUBROUTINES 0x8DE5 -#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 -#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 -#define GL_MAX_SUBROUTINES 0x8DE7 -#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 -#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A -#define GL_COMPATIBLE_SUBROUTINES 0x8E4B -#define GL_PATCHES 0x000E -#define GL_PATCH_VERTICES 0x8E72 -#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 -#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -#define GL_ISOLINES 0x8E7A -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRACTIONAL_EVEN 0x8E7C -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 -typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); -typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); -typedef void (APIENTRYP PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); -typedef void (APIENTRYP PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params); -typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name); -typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); -typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices); -typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values); -typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values); -typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); -typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMinSampleShading (GLfloat value); -GLAPI void APIENTRY glBlendEquationi (GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GLAPI void APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); -GLAPI void APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); -GLAPI void APIENTRY glUniform1d (GLint location, GLdouble x); -GLAPI void APIENTRY glUniform2d (GLint location, GLdouble x, GLdouble y); -GLAPI void APIENTRY glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glUniform1dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform2dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform3dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform4dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glGetUniformdv (GLuint program, GLint location, GLdouble *params); -GLAPI GLint APIENTRY glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name); -GLAPI GLuint APIENTRY glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name); -GLAPI void APIENTRY glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); -GLAPI void APIENTRY glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -GLAPI void APIENTRY glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -GLAPI void APIENTRY glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices); -GLAPI void APIENTRY glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params); -GLAPI void APIENTRY glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values); -GLAPI void APIENTRY glPatchParameteri (GLenum pname, GLint value); -GLAPI void APIENTRY glPatchParameterfv (GLenum pname, const GLfloat *values); -GLAPI void APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GLAPI void APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GLAPI GLboolean APIENTRY glIsTransformFeedback (GLuint id); -GLAPI void APIENTRY glPauseTransformFeedback (void); -GLAPI void APIENTRY glResumeTransformFeedback (void); -GLAPI void APIENTRY glDrawTransformFeedback (GLenum mode, GLuint id); -GLAPI void APIENTRY glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream); -GLAPI void APIENTRY glBeginQueryIndexed (GLenum target, GLuint index, GLuint id); -GLAPI void APIENTRY glEndQueryIndexed (GLenum target, GLuint index); -GLAPI void APIENTRY glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params); -#endif -#endif /* GL_VERSION_4_0 */ - -#ifndef GL_VERSION_4_1 -#define GL_VERSION_4_1 1 -#define GL_FIXED 0x140C -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_RGB565 0x8D62 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_MAX_VIEWPORTS 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE 0x825D -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F -#define GL_UNDEFINED_VERTEX 0x8260 -typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); -typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); -typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v); -typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLdouble n, GLdouble f); -typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReleaseShaderCompiler (void); -GLAPI void APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -GLAPI void APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GLAPI void APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GLAPI void APIENTRY glClearDepthf (GLfloat d); -GLAPI void APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GLAPI void APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GLAPI void APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GLAPI void APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); -GLAPI void APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); -GLAPI GLuint APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); -GLAPI void APIENTRY glBindProgramPipeline (GLuint pipeline); -GLAPI void APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); -GLAPI void APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); -GLAPI GLboolean APIENTRY glIsProgramPipeline (GLuint pipeline); -GLAPI void APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); -GLAPI void APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); -GLAPI void APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); -GLAPI void APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1d (GLuint program, GLint location, GLdouble v0); -GLAPI void APIENTRY glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); -GLAPI void APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1); -GLAPI void APIENTRY glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); -GLAPI void APIENTRY glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); -GLAPI void APIENTRY glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glValidateProgramPipeline (GLuint pipeline); -GLAPI void APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glVertexAttribL1d (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttribL1dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL2dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL3dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL4dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -GLAPI void APIENTRY glViewportIndexedfv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glScissorArrayv (GLuint first, GLsizei count, const GLint *v); -GLAPI void APIENTRY glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -GLAPI void APIENTRY glScissorIndexedv (GLuint index, const GLint *v); -GLAPI void APIENTRY glDepthRangeArrayv (GLuint first, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glDepthRangeIndexed (GLuint index, GLdouble n, GLdouble f); -GLAPI void APIENTRY glGetFloati_v (GLenum target, GLuint index, GLfloat *data); -GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data); -#endif -#endif /* GL_VERSION_4_1 */ - -#ifndef GL_VERSION_4_2 -#define GL_VERSION_4_2 1 -#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 -#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 -#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 -#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A -#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B -#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C -#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D -#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_1D 0x904C -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_2D_RECT 0x904F -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_IMAGE_1D_ARRAY 0x9052 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 -#define GL_INT_IMAGE_1D 0x9057 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_2D_RECT 0x905A -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_INT_IMAGE_1D_ARRAY 0x905D -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C -#define GL_MAX_IMAGE_SAMPLES 0x906D -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); -typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -typedef void (APIENTRYP PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); -typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei instancecount); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); -GLAPI void APIENTRY glDrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); -GLAPI void APIENTRY glDrawElementsInstancedBaseVertexBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); -GLAPI void APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -GLAPI void APIENTRY glGetActiveAtomicCounterBufferiv (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); -GLAPI void APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GLAPI void APIENTRY glMemoryBarrier (GLbitfield barriers); -GLAPI void APIENTRY glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GLAPI void APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GLAPI void APIENTRY glDrawTransformFeedbackInstanced (GLenum mode, GLuint id, GLsizei instancecount); -GLAPI void APIENTRY glDrawTransformFeedbackStreamInstanced (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); -#endif -#endif /* GL_VERSION_4_2 */ - -#ifndef GL_VERSION_4_3 -#define GL_VERSION_4_3 1 -typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9 -#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_COMPUTE_SHADER 0x91B9 -#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB -#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC -#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD -#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 -#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 -#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 -#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 -#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 -#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB -#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE -#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF -#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED -#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE -#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF -#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 -#define GL_DEBUG_SOURCE_API 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION 0x824A -#define GL_DEBUG_SOURCE_OTHER 0x824B -#define GL_DEBUG_TYPE_ERROR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 -#define GL_DEBUG_TYPE_OTHER 0x8251 -#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES 0x9145 -#define GL_DEBUG_SEVERITY_HIGH 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 -#define GL_DEBUG_SEVERITY_LOW 0x9148 -#define GL_DEBUG_TYPE_MARKER 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D -#define GL_BUFFER 0x82E0 -#define GL_SHADER 0x82E1 -#define GL_PROGRAM 0x82E2 -#define GL_QUERY 0x82E3 -#define GL_PROGRAM_PIPELINE 0x82E4 -#define GL_SAMPLER 0x82E6 -#define GL_MAX_LABEL_LENGTH 0x82E8 -#define GL_DEBUG_OUTPUT 0x92E0 -#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 -#define GL_MAX_UNIFORM_LOCATIONS 0x826E -#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 -#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 -#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 -#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 -#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 -#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 -#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 -#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 -#define GL_INTERNALFORMAT_SUPPORTED 0x826F -#define GL_INTERNALFORMAT_PREFERRED 0x8270 -#define GL_INTERNALFORMAT_RED_SIZE 0x8271 -#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272 -#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273 -#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274 -#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275 -#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276 -#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277 -#define GL_INTERNALFORMAT_RED_TYPE 0x8278 -#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279 -#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A -#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B -#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C -#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D -#define GL_MAX_WIDTH 0x827E -#define GL_MAX_HEIGHT 0x827F -#define GL_MAX_DEPTH 0x8280 -#define GL_MAX_LAYERS 0x8281 -#define GL_MAX_COMBINED_DIMENSIONS 0x8282 -#define GL_COLOR_COMPONENTS 0x8283 -#define GL_DEPTH_COMPONENTS 0x8284 -#define GL_STENCIL_COMPONENTS 0x8285 -#define GL_COLOR_RENDERABLE 0x8286 -#define GL_DEPTH_RENDERABLE 0x8287 -#define GL_STENCIL_RENDERABLE 0x8288 -#define GL_FRAMEBUFFER_RENDERABLE 0x8289 -#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A -#define GL_FRAMEBUFFER_BLEND 0x828B -#define GL_READ_PIXELS 0x828C -#define GL_READ_PIXELS_FORMAT 0x828D -#define GL_READ_PIXELS_TYPE 0x828E -#define GL_TEXTURE_IMAGE_FORMAT 0x828F -#define GL_TEXTURE_IMAGE_TYPE 0x8290 -#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291 -#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292 -#define GL_MIPMAP 0x8293 -#define GL_MANUAL_GENERATE_MIPMAP 0x8294 -#define GL_AUTO_GENERATE_MIPMAP 0x8295 -#define GL_COLOR_ENCODING 0x8296 -#define GL_SRGB_READ 0x8297 -#define GL_SRGB_WRITE 0x8298 -#define GL_FILTER 0x829A -#define GL_VERTEX_TEXTURE 0x829B -#define GL_TESS_CONTROL_TEXTURE 0x829C -#define GL_TESS_EVALUATION_TEXTURE 0x829D -#define GL_GEOMETRY_TEXTURE 0x829E -#define GL_FRAGMENT_TEXTURE 0x829F -#define GL_COMPUTE_TEXTURE 0x82A0 -#define GL_TEXTURE_SHADOW 0x82A1 -#define GL_TEXTURE_GATHER 0x82A2 -#define GL_TEXTURE_GATHER_SHADOW 0x82A3 -#define GL_SHADER_IMAGE_LOAD 0x82A4 -#define GL_SHADER_IMAGE_STORE 0x82A5 -#define GL_SHADER_IMAGE_ATOMIC 0x82A6 -#define GL_IMAGE_TEXEL_SIZE 0x82A7 -#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8 -#define GL_IMAGE_PIXEL_FORMAT 0x82A9 -#define GL_IMAGE_PIXEL_TYPE 0x82AA -#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC -#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD -#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE -#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF -#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1 -#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2 -#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3 -#define GL_CLEAR_BUFFER 0x82B4 -#define GL_TEXTURE_VIEW 0x82B5 -#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6 -#define GL_FULL_SUPPORT 0x82B7 -#define GL_CAVEAT_SUPPORT 0x82B8 -#define GL_IMAGE_CLASS_4_X_32 0x82B9 -#define GL_IMAGE_CLASS_2_X_32 0x82BA -#define GL_IMAGE_CLASS_1_X_32 0x82BB -#define GL_IMAGE_CLASS_4_X_16 0x82BC -#define GL_IMAGE_CLASS_2_X_16 0x82BD -#define GL_IMAGE_CLASS_1_X_16 0x82BE -#define GL_IMAGE_CLASS_4_X_8 0x82BF -#define GL_IMAGE_CLASS_2_X_8 0x82C0 -#define GL_IMAGE_CLASS_1_X_8 0x82C1 -#define GL_IMAGE_CLASS_11_11_10 0x82C2 -#define GL_IMAGE_CLASS_10_10_10_2 0x82C3 -#define GL_VIEW_CLASS_128_BITS 0x82C4 -#define GL_VIEW_CLASS_96_BITS 0x82C5 -#define GL_VIEW_CLASS_64_BITS 0x82C6 -#define GL_VIEW_CLASS_48_BITS 0x82C7 -#define GL_VIEW_CLASS_32_BITS 0x82C8 -#define GL_VIEW_CLASS_24_BITS 0x82C9 -#define GL_VIEW_CLASS_16_BITS 0x82CA -#define GL_VIEW_CLASS_8_BITS 0x82CB -#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC -#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD -#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE -#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF -#define GL_VIEW_CLASS_RGTC1_RED 0x82D0 -#define GL_VIEW_CLASS_RGTC2_RG 0x82D1 -#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2 -#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 -#define GL_UNIFORM 0x92E1 -#define GL_UNIFORM_BLOCK 0x92E2 -#define GL_PROGRAM_INPUT 0x92E3 -#define GL_PROGRAM_OUTPUT 0x92E4 -#define GL_BUFFER_VARIABLE 0x92E5 -#define GL_SHADER_STORAGE_BLOCK 0x92E6 -#define GL_VERTEX_SUBROUTINE 0x92E8 -#define GL_TESS_CONTROL_SUBROUTINE 0x92E9 -#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA -#define GL_GEOMETRY_SUBROUTINE 0x92EB -#define GL_FRAGMENT_SUBROUTINE 0x92EC -#define GL_COMPUTE_SUBROUTINE 0x92ED -#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE -#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF -#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0 -#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1 -#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2 -#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3 -#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 -#define GL_ACTIVE_RESOURCES 0x92F5 -#define GL_MAX_NAME_LENGTH 0x92F6 -#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 -#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8 -#define GL_NAME_LENGTH 0x92F9 -#define GL_TYPE 0x92FA -#define GL_ARRAY_SIZE 0x92FB -#define GL_OFFSET 0x92FC -#define GL_BLOCK_INDEX 0x92FD -#define GL_ARRAY_STRIDE 0x92FE -#define GL_MATRIX_STRIDE 0x92FF -#define GL_IS_ROW_MAJOR 0x9300 -#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 -#define GL_BUFFER_BINDING 0x9302 -#define GL_BUFFER_DATA_SIZE 0x9303 -#define GL_NUM_ACTIVE_VARIABLES 0x9304 -#define GL_ACTIVE_VARIABLES 0x9305 -#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 -#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 -#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A -#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B -#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C -#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D -#define GL_LOCATION 0x930E -#define GL_LOCATION_INDEX 0x930F -#define GL_IS_PER_PATCH 0x92E7 -#define GL_SHADER_STORAGE_BUFFER 0x90D2 -#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 -#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 -#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 -#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 -#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA -#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB -#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC -#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD -#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE -#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF -#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 -#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 -#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA -#define GL_TEXTURE_BUFFER_OFFSET 0x919D -#define GL_TEXTURE_BUFFER_SIZE 0x919E -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F -#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB -#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC -#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD -#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -#define GL_VERTEX_ATTRIB_BINDING 0x82D4 -#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 -#define GL_VERTEX_BINDING_DIVISOR 0x82D6 -#define GL_VERTEX_BINDING_OFFSET 0x82D7 -#define GL_VERTEX_BINDING_STRIDE 0x82D8 -#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_VERTEX_BINDING_BUFFER 0x8F4F -#define GL_DISPLAY_LIST 0x82E7 -typedef void (APIENTRYP PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); -typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -typedef void (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params); -typedef void (APIENTRYP PFNGLINVALIDATETEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); -typedef void (APIENTRYP PFNGLINVALIDATETEXIMAGEPROC) (GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLINVALIDATEBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (APIENTRYP PFNGLINVALIDATEBUFFERDATAPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); -typedef void (APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -typedef GLuint (APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (APIENTRYP PFNGLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); -typedef void (APIENTRYP PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); -typedef void (APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); -typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); -typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef void (APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void (APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void); -typedef void (APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void (APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); -typedef void (APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClearBufferData (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glClearBufferSubData (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -GLAPI void APIENTRY glDispatchComputeIndirect (GLintptr indirect); -GLAPI void APIENTRY glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -GLAPI void APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params); -GLAPI void APIENTRY glInvalidateTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); -GLAPI void APIENTRY glInvalidateTexImage (GLuint texture, GLint level); -GLAPI void APIENTRY glInvalidateBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr length); -GLAPI void APIENTRY glInvalidateBufferData (GLuint buffer); -GLAPI void APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GLAPI void APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glMultiDrawArraysIndirect (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); -GLAPI void APIENTRY glMultiDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); -GLAPI void APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -GLAPI GLuint APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); -GLAPI void APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GLAPI void APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -GLAPI GLint APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); -GLAPI GLint APIENTRY glGetProgramResourceLocationIndex (GLuint program, GLenum programInterface, const GLchar *name); -GLAPI void APIENTRY glShaderStorageBlockBinding (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); -GLAPI void APIENTRY glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTextureView (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -GLAPI void APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GLAPI void APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GLAPI void APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GLAPI void APIENTRY glVertexAttribLFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GLAPI void APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); -GLAPI void APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); -GLAPI void APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GLAPI void APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GLAPI void APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam); -GLAPI GLuint APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -GLAPI void APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message); -GLAPI void APIENTRY glPopDebugGroup (void); -GLAPI void APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -GLAPI void APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -GLAPI void APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label); -GLAPI void APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -#endif -#endif /* GL_VERSION_4_3 */ - -#ifndef GL_VERSION_4_4 -#define GL_VERSION_4_4 1 -#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 -#define GL_TEXTURE_BUFFER_BINDING 0x8C2A -#define GL_MAP_PERSISTENT_BIT 0x0040 -#define GL_MAP_COHERENT_BIT 0x0080 -#define GL_DYNAMIC_STORAGE_BIT 0x0100 -#define GL_CLIENT_STORAGE_BIT 0x0200 -#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000 -#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F -#define GL_BUFFER_STORAGE_FLAGS 0x8220 -#define GL_CLEAR_TEXTURE 0x9365 -#define GL_LOCATION_COMPONENT 0x934A -#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B -#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C -#define GL_QUERY_BUFFER 0x9192 -#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000 -#define GL_QUERY_BUFFER_BINDING 0x9193 -#define GL_QUERY_RESULT_NO_WAIT 0x9194 -#define GL_MIRROR_CLAMP_TO_EDGE 0x8743 -typedef void (APIENTRYP PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -typedef void (APIENTRYP PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLCLEARTEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLBINDBUFFERSBASEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers); -typedef void (APIENTRYP PFNGLBINDBUFFERSRANGEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); -typedef void (APIENTRYP PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures); -typedef void (APIENTRYP PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint *samplers); -typedef void (APIENTRYP PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures); -typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERSPROC) (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferStorage (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -GLAPI void APIENTRY glClearTexImage (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glClearTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glBindBuffersBase (GLenum target, GLuint first, GLsizei count, const GLuint *buffers); -GLAPI void APIENTRY glBindBuffersRange (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); -GLAPI void APIENTRY glBindTextures (GLuint first, GLsizei count, const GLuint *textures); -GLAPI void APIENTRY glBindSamplers (GLuint first, GLsizei count, const GLuint *samplers); -GLAPI void APIENTRY glBindImageTextures (GLuint first, GLsizei count, const GLuint *textures); -GLAPI void APIENTRY glBindVertexBuffers (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); -#endif -#endif /* GL_VERSION_4_4 */ - -#ifndef GL_ARB_ES2_compatibility -#define GL_ARB_ES2_compatibility 1 -#endif /* GL_ARB_ES2_compatibility */ - -#ifndef GL_ARB_ES3_compatibility -#define GL_ARB_ES3_compatibility 1 -#endif /* GL_ARB_ES3_compatibility */ - -#ifndef GL_ARB_arrays_of_arrays -#define GL_ARB_arrays_of_arrays 1 -#endif /* GL_ARB_arrays_of_arrays */ - -#ifndef GL_ARB_base_instance -#define GL_ARB_base_instance 1 -#endif /* GL_ARB_base_instance */ - -#ifndef GL_ARB_bindless_texture -#define GL_ARB_bindless_texture 1 -typedef uint64_t GLuint64EXT; -#define GL_UNSIGNED_INT64_ARB 0x140F -typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLEARBPROC) (GLuint texture); -typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLEARBPROC) (GLuint texture, GLuint sampler); -typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); -typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC) (GLuint64 handle); -typedef GLuint64 (APIENTRYP PFNGLGETIMAGEHANDLEARBPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle, GLenum access); -typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC) (GLuint64 handle); -typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64ARBPROC) (GLint location, GLuint64 value); -typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC) (GLuint program, GLint location, GLuint64 value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -typedef GLboolean (APIENTRYP PFNGLISTEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); -typedef GLboolean (APIENTRYP PFNGLISIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64ARBPROC) (GLuint index, GLuint64EXT x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VARBPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VARBPROC) (GLuint index, GLenum pname, GLuint64EXT *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint64 APIENTRY glGetTextureHandleARB (GLuint texture); -GLAPI GLuint64 APIENTRY glGetTextureSamplerHandleARB (GLuint texture, GLuint sampler); -GLAPI void APIENTRY glMakeTextureHandleResidentARB (GLuint64 handle); -GLAPI void APIENTRY glMakeTextureHandleNonResidentARB (GLuint64 handle); -GLAPI GLuint64 APIENTRY glGetImageHandleARB (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -GLAPI void APIENTRY glMakeImageHandleResidentARB (GLuint64 handle, GLenum access); -GLAPI void APIENTRY glMakeImageHandleNonResidentARB (GLuint64 handle); -GLAPI void APIENTRY glUniformHandleui64ARB (GLint location, GLuint64 value); -GLAPI void APIENTRY glUniformHandleui64vARB (GLint location, GLsizei count, const GLuint64 *value); -GLAPI void APIENTRY glProgramUniformHandleui64ARB (GLuint program, GLint location, GLuint64 value); -GLAPI void APIENTRY glProgramUniformHandleui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -GLAPI GLboolean APIENTRY glIsTextureHandleResidentARB (GLuint64 handle); -GLAPI GLboolean APIENTRY glIsImageHandleResidentARB (GLuint64 handle); -GLAPI void APIENTRY glVertexAttribL1ui64ARB (GLuint index, GLuint64EXT x); -GLAPI void APIENTRY glVertexAttribL1ui64vARB (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glGetVertexAttribLui64vARB (GLuint index, GLenum pname, GLuint64EXT *params); -#endif -#endif /* GL_ARB_bindless_texture */ - -#ifndef GL_ARB_blend_func_extended -#define GL_ARB_blend_func_extended 1 -#endif /* GL_ARB_blend_func_extended */ - -#ifndef GL_ARB_buffer_storage -#define GL_ARB_buffer_storage 1 -#endif /* GL_ARB_buffer_storage */ - -#ifndef GL_ARB_cl_event -#define GL_ARB_cl_event 1 -struct _cl_context; -struct _cl_event; -#define GL_SYNC_CL_EVENT_ARB 0x8240 -#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 -typedef GLsync (APIENTRYP PFNGLCREATESYNCFROMCLEVENTARBPROC) (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); -#endif -#endif /* GL_ARB_cl_event */ - -#ifndef GL_ARB_clear_buffer_object -#define GL_ARB_clear_buffer_object 1 -#endif /* GL_ARB_clear_buffer_object */ - -#ifndef GL_ARB_clear_texture -#define GL_ARB_clear_texture 1 -#endif /* GL_ARB_clear_texture */ - -#ifndef GL_ARB_color_buffer_float -#define GL_ARB_color_buffer_float 1 -#define GL_RGBA_FLOAT_MODE_ARB 0x8820 -#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A -#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B -#define GL_CLAMP_READ_COLOR_ARB 0x891C -#define GL_FIXED_ONLY_ARB 0x891D -typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClampColorARB (GLenum target, GLenum clamp); -#endif -#endif /* GL_ARB_color_buffer_float */ - -#ifndef GL_ARB_compatibility -#define GL_ARB_compatibility 1 -#endif /* GL_ARB_compatibility */ - -#ifndef GL_ARB_compressed_texture_pixel_storage -#define GL_ARB_compressed_texture_pixel_storage 1 -#endif /* GL_ARB_compressed_texture_pixel_storage */ - -#ifndef GL_ARB_compute_shader -#define GL_ARB_compute_shader 1 -#define GL_COMPUTE_SHADER_BIT 0x00000020 -#endif /* GL_ARB_compute_shader */ - -#ifndef GL_ARB_compute_variable_group_size -#define GL_ARB_compute_variable_group_size 1 -#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344 -#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB -#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345 -#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF -typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDispatchComputeGroupSizeARB (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); -#endif -#endif /* GL_ARB_compute_variable_group_size */ - -#ifndef GL_ARB_conservative_depth -#define GL_ARB_conservative_depth 1 -#endif /* GL_ARB_conservative_depth */ - -#ifndef GL_ARB_copy_buffer -#define GL_ARB_copy_buffer 1 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#endif /* GL_ARB_copy_buffer */ - -#ifndef GL_ARB_copy_image -#define GL_ARB_copy_image 1 -#endif /* GL_ARB_copy_image */ - -#ifndef GL_ARB_debug_output -#define GL_ARB_debug_output 1 -typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 -#define GL_DEBUG_SOURCE_API_ARB 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A -#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B -#define GL_DEBUG_TYPE_ERROR_ARB 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 -#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 -#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 -typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam); -typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDebugMessageControlARB (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GLAPI void APIENTRY glDebugMessageInsertARB (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GLAPI void APIENTRY glDebugMessageCallbackARB (GLDEBUGPROCARB callback, const void *userParam); -GLAPI GLuint APIENTRY glGetDebugMessageLogARB (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -#endif -#endif /* GL_ARB_debug_output */ - -#ifndef GL_ARB_depth_buffer_float -#define GL_ARB_depth_buffer_float 1 -#endif /* GL_ARB_depth_buffer_float */ - -#ifndef GL_ARB_depth_clamp -#define GL_ARB_depth_clamp 1 -#endif /* GL_ARB_depth_clamp */ - -#ifndef GL_ARB_depth_texture -#define GL_ARB_depth_texture 1 -#define GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B -#endif /* GL_ARB_depth_texture */ - -#ifndef GL_ARB_draw_buffers -#define GL_ARB_draw_buffers 1 -#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define GL_DRAW_BUFFER0_ARB 0x8825 -#define GL_DRAW_BUFFER1_ARB 0x8826 -#define GL_DRAW_BUFFER2_ARB 0x8827 -#define GL_DRAW_BUFFER3_ARB 0x8828 -#define GL_DRAW_BUFFER4_ARB 0x8829 -#define GL_DRAW_BUFFER5_ARB 0x882A -#define GL_DRAW_BUFFER6_ARB 0x882B -#define GL_DRAW_BUFFER7_ARB 0x882C -#define GL_DRAW_BUFFER8_ARB 0x882D -#define GL_DRAW_BUFFER9_ARB 0x882E -#define GL_DRAW_BUFFER10_ARB 0x882F -#define GL_DRAW_BUFFER11_ARB 0x8830 -#define GL_DRAW_BUFFER12_ARB 0x8831 -#define GL_DRAW_BUFFER13_ARB 0x8832 -#define GL_DRAW_BUFFER14_ARB 0x8833 -#define GL_DRAW_BUFFER15_ARB 0x8834 -typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersARB (GLsizei n, const GLenum *bufs); -#endif -#endif /* GL_ARB_draw_buffers */ - -#ifndef GL_ARB_draw_buffers_blend -#define GL_ARB_draw_buffers_blend 1 -typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationiARB (GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glBlendFunciARB (GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif -#endif /* GL_ARB_draw_buffers_blend */ - -#ifndef GL_ARB_draw_elements_base_vertex -#define GL_ARB_draw_elements_base_vertex 1 -#endif /* GL_ARB_draw_elements_base_vertex */ - -#ifndef GL_ARB_draw_indirect -#define GL_ARB_draw_indirect 1 -#endif /* GL_ARB_draw_indirect */ - -#ifndef GL_ARB_draw_instanced -#define GL_ARB_draw_instanced 1 -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#endif -#endif /* GL_ARB_draw_instanced */ - -#ifndef GL_ARB_enhanced_layouts -#define GL_ARB_enhanced_layouts 1 -#endif /* GL_ARB_enhanced_layouts */ - -#ifndef GL_ARB_explicit_attrib_location -#define GL_ARB_explicit_attrib_location 1 -#endif /* GL_ARB_explicit_attrib_location */ - -#ifndef GL_ARB_explicit_uniform_location -#define GL_ARB_explicit_uniform_location 1 -#endif /* GL_ARB_explicit_uniform_location */ - -#ifndef GL_ARB_fragment_coord_conventions -#define GL_ARB_fragment_coord_conventions 1 -#endif /* GL_ARB_fragment_coord_conventions */ - -#ifndef GL_ARB_fragment_layer_viewport -#define GL_ARB_fragment_layer_viewport 1 -#endif /* GL_ARB_fragment_layer_viewport */ - -#ifndef GL_ARB_fragment_program -#define GL_ARB_fragment_program 1 -#define GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define GL_PROGRAM_LENGTH_ARB 0x8627 -#define GL_PROGRAM_FORMAT_ARB 0x8876 -#define GL_PROGRAM_BINDING_ARB 0x8677 -#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define GL_PROGRAM_STRING_ARB 0x8628 -#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B -#define GL_CURRENT_MATRIX_ARB 0x8641 -#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 -#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 -#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 -#define GL_MATRIX0_ARB 0x88C0 -#define GL_MATRIX1_ARB 0x88C1 -#define GL_MATRIX2_ARB 0x88C2 -#define GL_MATRIX3_ARB 0x88C3 -#define GL_MATRIX4_ARB 0x88C4 -#define GL_MATRIX5_ARB 0x88C5 -#define GL_MATRIX6_ARB 0x88C6 -#define GL_MATRIX7_ARB 0x88C7 -#define GL_MATRIX8_ARB 0x88C8 -#define GL_MATRIX9_ARB 0x88C9 -#define GL_MATRIX10_ARB 0x88CA -#define GL_MATRIX11_ARB 0x88CB -#define GL_MATRIX12_ARB 0x88CC -#define GL_MATRIX13_ARB 0x88CD -#define GL_MATRIX14_ARB 0x88CE -#define GL_MATRIX15_ARB 0x88CF -#define GL_MATRIX16_ARB 0x88D0 -#define GL_MATRIX17_ARB 0x88D1 -#define GL_MATRIX18_ARB 0x88D2 -#define GL_MATRIX19_ARB 0x88D3 -#define GL_MATRIX20_ARB 0x88D4 -#define GL_MATRIX21_ARB 0x88D5 -#define GL_MATRIX22_ARB 0x88D6 -#define GL_MATRIX23_ARB 0x88D7 -#define GL_MATRIX24_ARB 0x88D8 -#define GL_MATRIX25_ARB 0x88D9 -#define GL_MATRIX26_ARB 0x88DA -#define GL_MATRIX27_ARB 0x88DB -#define GL_MATRIX28_ARB 0x88DC -#define GL_MATRIX29_ARB 0x88DD -#define GL_MATRIX30_ARB 0x88DE -#define GL_MATRIX31_ARB 0x88DF -typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void *string); -typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void *string); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramStringARB (GLenum target, GLenum format, GLsizei len, const void *string); -GLAPI void APIENTRY glBindProgramARB (GLenum target, GLuint program); -GLAPI void APIENTRY glDeleteProgramsARB (GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glGenProgramsARB (GLsizei n, GLuint *programs); -GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetProgramivARB (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramStringARB (GLenum target, GLenum pname, void *string); -GLAPI GLboolean APIENTRY glIsProgramARB (GLuint program); -#endif -#endif /* GL_ARB_fragment_program */ - -#ifndef GL_ARB_fragment_program_shadow -#define GL_ARB_fragment_program_shadow 1 -#endif /* GL_ARB_fragment_program_shadow */ - -#ifndef GL_ARB_fragment_shader -#define GL_ARB_fragment_shader 1 -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B -#endif /* GL_ARB_fragment_shader */ - -#ifndef GL_ARB_framebuffer_no_attachments -#define GL_ARB_framebuffer_no_attachments 1 -#endif /* GL_ARB_framebuffer_no_attachments */ - -#ifndef GL_ARB_framebuffer_object -#define GL_ARB_framebuffer_object 1 -#endif /* GL_ARB_framebuffer_object */ - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_ARB_framebuffer_sRGB 1 -#endif /* GL_ARB_framebuffer_sRGB */ - -#ifndef GL_KHR_context_flush_control -#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB -#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC -#endif /* GL_KHR_context_flush_control */ - -#ifndef GL_ARB_geometry_shader4 -#define GL_ARB_geometry_shader4 1 -#define GL_LINES_ADJACENCY_ARB 0x000A -#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B -#define GL_TRIANGLES_ADJACENCY_ARB 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D -#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 -#define GL_GEOMETRY_SHADER_ARB 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriARB (GLuint program, GLenum pname, GLint value); -GLAPI void APIENTRY glFramebufferTextureARB (GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif -#endif /* GL_ARB_geometry_shader4 */ - -#ifndef GL_ARB_get_program_binary -#define GL_ARB_get_program_binary 1 -#endif /* GL_ARB_get_program_binary */ - -#ifndef GL_ARB_gpu_shader5 -#define GL_ARB_gpu_shader5 1 -#endif /* GL_ARB_gpu_shader5 */ - -#ifndef GL_ARB_gpu_shader_fp64 -#define GL_ARB_gpu_shader_fp64 1 -#endif /* GL_ARB_gpu_shader_fp64 */ - -#ifndef GL_ARB_half_float_pixel -#define GL_ARB_half_float_pixel 1 -typedef unsigned short GLhalfARB; -#define GL_HALF_FLOAT_ARB 0x140B -#endif /* GL_ARB_half_float_pixel */ - -#ifndef GL_ARB_half_float_vertex -#define GL_ARB_half_float_vertex 1 -#endif /* GL_ARB_half_float_vertex */ - -#ifndef GL_ARB_imaging -#define GL_ARB_imaging 1 -#define GL_BLEND_COLOR 0x8005 -#define GL_BLEND_EQUATION 0x8009 -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 -typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, void *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, void *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); -GLAPI void APIENTRY glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glGetColorTable (GLenum target, GLenum format, GLenum type, void *table); -GLAPI void APIENTRY glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); -GLAPI void APIENTRY glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); -GLAPI void APIENTRY glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params); -GLAPI void APIENTRY glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glConvolutionParameteri (GLenum target, GLenum pname, GLint params); -GLAPI void APIENTRY glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, void *image); -GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSeparableFilter (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); -GLAPI void APIENTRY glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); -GLAPI void APIENTRY glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -GLAPI void APIENTRY glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glMinmax (GLenum target, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glResetHistogram (GLenum target); -GLAPI void APIENTRY glResetMinmax (GLenum target); -#endif -#endif /* GL_ARB_imaging */ - -#ifndef GL_ARB_indirect_parameters -#define GL_ARB_indirect_parameters 1 -#define GL_PARAMETER_BUFFER_ARB 0x80EE -#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysIndirectCountARB (GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -GLAPI void APIENTRY glMultiDrawElementsIndirectCountARB (GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -#endif -#endif /* GL_ARB_indirect_parameters */ - -#ifndef GL_ARB_instanced_arrays -#define GL_ARB_instanced_arrays 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE -typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor); -#endif -#endif /* GL_ARB_instanced_arrays */ - -#ifndef GL_ARB_internalformat_query -#define GL_ARB_internalformat_query 1 -#endif /* GL_ARB_internalformat_query */ - -#ifndef GL_ARB_internalformat_query2 -#define GL_ARB_internalformat_query2 1 -#define GL_SRGB_DECODE_ARB 0x8299 -#endif /* GL_ARB_internalformat_query2 */ - -#ifndef GL_ARB_invalidate_subdata -#define GL_ARB_invalidate_subdata 1 -#endif /* GL_ARB_invalidate_subdata */ - -#ifndef GL_ARB_map_buffer_alignment -#define GL_ARB_map_buffer_alignment 1 -#endif /* GL_ARB_map_buffer_alignment */ - -#ifndef GL_ARB_map_buffer_range -#define GL_ARB_map_buffer_range 1 -#endif /* GL_ARB_map_buffer_range */ - -#ifndef GL_ARB_matrix_palette -#define GL_ARB_matrix_palette 1 -#define GL_MATRIX_PALETTE_ARB 0x8840 -#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 -#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 -#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 -#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 -#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 -#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 -#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 -#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 -#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 -typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); -typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint index); -GLAPI void APIENTRY glMatrixIndexubvARB (GLint size, const GLubyte *indices); -GLAPI void APIENTRY glMatrixIndexusvARB (GLint size, const GLushort *indices); -GLAPI void APIENTRY glMatrixIndexuivARB (GLint size, const GLuint *indices); -GLAPI void APIENTRY glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, const void *pointer); -#endif -#endif /* GL_ARB_matrix_palette */ - -#ifndef GL_ARB_multi_bind -#define GL_ARB_multi_bind 1 -#endif /* GL_ARB_multi_bind */ - -#ifndef GL_ARB_multi_draw_indirect -#define GL_ARB_multi_draw_indirect 1 -#endif /* GL_ARB_multi_draw_indirect */ - -#ifndef GL_ARB_multisample -#define GL_ARB_multisample 1 -#define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define GL_MULTISAMPLE_BIT_ARB 0x20000000 -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLfloat value, GLboolean invert); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleCoverageARB (GLfloat value, GLboolean invert); -#endif -#endif /* GL_ARB_multisample */ - -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 -typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTextureARB (GLenum texture); -GLAPI void APIENTRY glClientActiveTextureARB (GLenum texture); -GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum target, GLdouble s); -GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum target, GLfloat s); -GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum target, GLint s); -GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum target, GLshort s); -GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t); -GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t); -GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum target, GLint s, GLint t); -GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t); -GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r); -GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum target, const GLshort *v); -#endif -#endif /* GL_ARB_multitexture */ - -#ifndef GL_ARB_occlusion_query -#define GL_ARB_occlusion_query 1 -#define GL_QUERY_COUNTER_BITS_ARB 0x8864 -#define GL_CURRENT_QUERY_ARB 0x8865 -#define GL_QUERY_RESULT_ARB 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define GL_SAMPLES_PASSED_ARB 0x8914 -typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueriesARB (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteQueriesARB (GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsQueryARB (GLuint id); -GLAPI void APIENTRY glBeginQueryARB (GLenum target, GLuint id); -GLAPI void APIENTRY glEndQueryARB (GLenum target); -GLAPI void APIENTRY glGetQueryivARB (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectivARB (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint id, GLenum pname, GLuint *params); -#endif -#endif /* GL_ARB_occlusion_query */ - -#ifndef GL_ARB_occlusion_query2 -#define GL_ARB_occlusion_query2 1 -#endif /* GL_ARB_occlusion_query2 */ - -#ifndef GL_ARB_pixel_buffer_object -#define GL_ARB_pixel_buffer_object 1 -#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF -#endif /* GL_ARB_pixel_buffer_object */ - -#ifndef GL_ARB_point_parameters -#define GL_ARB_point_parameters 1 -#define GL_POINT_SIZE_MIN_ARB 0x8126 -#define GL_POINT_SIZE_MAX_ARB 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 -typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfARB (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvARB (GLenum pname, const GLfloat *params); -#endif -#endif /* GL_ARB_point_parameters */ - -#ifndef GL_ARB_point_sprite -#define GL_ARB_point_sprite 1 -#define GL_POINT_SPRITE_ARB 0x8861 -#define GL_COORD_REPLACE_ARB 0x8862 -#endif /* GL_ARB_point_sprite */ - -#ifndef GL_ARB_program_interface_query -#define GL_ARB_program_interface_query 1 -#endif /* GL_ARB_program_interface_query */ - -#ifndef GL_ARB_provoking_vertex -#define GL_ARB_provoking_vertex 1 -#endif /* GL_ARB_provoking_vertex */ - -#ifndef GL_ARB_query_buffer_object -#define GL_ARB_query_buffer_object 1 -#endif /* GL_ARB_query_buffer_object */ - -#ifndef GL_ARB_robust_buffer_access_behavior -#define GL_ARB_robust_buffer_access_behavior 1 -#endif /* GL_ARB_robust_buffer_access_behavior */ - -#ifndef GL_ARB_robustness -#define GL_ARB_robustness 1 -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 -typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void); -typedef void (APIENTRYP PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img); -typedef void (APIENTRYP PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void *img); -typedef void (APIENTRYP PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -typedef void (APIENTRYP PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -typedef void (APIENTRYP PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -typedef void (APIENTRYP PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v); -typedef void (APIENTRYP PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat *values); -typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint *values); -typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort *values); -typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte *pattern); -typedef void (APIENTRYP PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); -typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); -typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); -typedef void (APIENTRYP PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -typedef void (APIENTRYP PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLenum APIENTRY glGetGraphicsResetStatusARB (void); -GLAPI void APIENTRY glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img); -GLAPI void APIENTRY glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GLAPI void APIENTRY glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, void *img); -GLAPI void APIENTRY glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GLAPI void APIENTRY glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint *params); -GLAPI void APIENTRY glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -GLAPI void APIENTRY glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -GLAPI void APIENTRY glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -GLAPI void APIENTRY glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -GLAPI void APIENTRY glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint *v); -GLAPI void APIENTRY glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat *values); -GLAPI void APIENTRY glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint *values); -GLAPI void APIENTRY glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort *values); -GLAPI void APIENTRY glGetnPolygonStippleARB (GLsizei bufSize, GLubyte *pattern); -GLAPI void APIENTRY glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); -GLAPI void APIENTRY glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); -GLAPI void APIENTRY glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); -GLAPI void APIENTRY glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -GLAPI void APIENTRY glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -#endif -#endif /* GL_ARB_robustness */ - -#ifndef GL_ARB_robustness_isolation -#define GL_ARB_robustness_isolation 1 -#endif /* GL_ARB_robustness_isolation */ - -#ifndef GL_ARB_sample_shading -#define GL_ARB_sample_shading 1 -#define GL_SAMPLE_SHADING_ARB 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 -typedef void (APIENTRYP PFNGLMINSAMPLESHADINGARBPROC) (GLfloat value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMinSampleShadingARB (GLfloat value); -#endif -#endif /* GL_ARB_sample_shading */ - -#ifndef GL_ARB_sampler_objects -#define GL_ARB_sampler_objects 1 -#endif /* GL_ARB_sampler_objects */ - -#ifndef GL_ARB_seamless_cube_map -#define GL_ARB_seamless_cube_map 1 -#endif /* GL_ARB_seamless_cube_map */ - -#ifndef GL_ARB_seamless_cubemap_per_texture -#define GL_ARB_seamless_cubemap_per_texture 1 -#endif /* GL_ARB_seamless_cubemap_per_texture */ - -#ifndef GL_ARB_separate_shader_objects -#define GL_ARB_separate_shader_objects 1 -#endif /* GL_ARB_separate_shader_objects */ - -#ifndef GL_ARB_shader_atomic_counters -#define GL_ARB_shader_atomic_counters 1 -#endif /* GL_ARB_shader_atomic_counters */ - -#ifndef GL_ARB_shader_bit_encoding -#define GL_ARB_shader_bit_encoding 1 -#endif /* GL_ARB_shader_bit_encoding */ - -#ifndef GL_ARB_shader_draw_parameters -#define GL_ARB_shader_draw_parameters 1 -#endif /* GL_ARB_shader_draw_parameters */ - -#ifndef GL_ARB_shader_group_vote -#define GL_ARB_shader_group_vote 1 -#endif /* GL_ARB_shader_group_vote */ - -#ifndef GL_ARB_shader_image_load_store -#define GL_ARB_shader_image_load_store 1 -#endif /* GL_ARB_shader_image_load_store */ - -#ifndef GL_ARB_shader_image_size -#define GL_ARB_shader_image_size 1 -#endif /* GL_ARB_shader_image_size */ - -#ifndef GL_ARB_shader_objects -#define GL_ARB_shader_objects 1 -#ifdef __APPLE__ -typedef void *GLhandleARB; -#else -typedef unsigned int GLhandleARB; -#endif -typedef char GLcharARB; -#define GL_PROGRAM_OBJECT_ARB 0x8B40 -#define GL_SHADER_OBJECT_ARB 0x8B48 -#define GL_OBJECT_TYPE_ARB 0x8B4E -#define GL_OBJECT_SUBTYPE_ARB 0x8B4F -#define GL_FLOAT_VEC2_ARB 0x8B50 -#define GL_FLOAT_VEC3_ARB 0x8B51 -#define GL_FLOAT_VEC4_ARB 0x8B52 -#define GL_INT_VEC2_ARB 0x8B53 -#define GL_INT_VEC3_ARB 0x8B54 -#define GL_INT_VEC4_ARB 0x8B55 -#define GL_BOOL_ARB 0x8B56 -#define GL_BOOL_VEC2_ARB 0x8B57 -#define GL_BOOL_VEC3_ARB 0x8B58 -#define GL_BOOL_VEC4_ARB 0x8B59 -#define GL_FLOAT_MAT2_ARB 0x8B5A -#define GL_FLOAT_MAT3_ARB 0x8B5B -#define GL_FLOAT_MAT4_ARB 0x8B5C -#define GL_SAMPLER_1D_ARB 0x8B5D -#define GL_SAMPLER_2D_ARB 0x8B5E -#define GL_SAMPLER_3D_ARB 0x8B5F -#define GL_SAMPLER_CUBE_ARB 0x8B60 -#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 -#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 -#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 -#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 -#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 -typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); -typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); -typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); -typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); -typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); -typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB obj); -GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum pname); -GLAPI void APIENTRY glDetachObjectARB (GLhandleARB containerObj, GLhandleARB attachedObj); -GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum shaderType); -GLAPI void APIENTRY glShaderSourceARB (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); -GLAPI void APIENTRY glCompileShaderARB (GLhandleARB shaderObj); -GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); -GLAPI void APIENTRY glAttachObjectARB (GLhandleARB containerObj, GLhandleARB obj); -GLAPI void APIENTRY glLinkProgramARB (GLhandleARB programObj); -GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB programObj); -GLAPI void APIENTRY glValidateProgramARB (GLhandleARB programObj); -GLAPI void APIENTRY glUniform1fARB (GLint location, GLfloat v0); -GLAPI void APIENTRY glUniform2fARB (GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glUniform3fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glUniform4fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glUniform1iARB (GLint location, GLint v0); -GLAPI void APIENTRY glUniform2iARB (GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glUniform3iARB (GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glUniform4iARB (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glUniform1fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform2fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform3fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform4fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform1ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform2ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform3ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform4ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniformMatrix2fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB obj, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB obj, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB programObj, const GLcharARB *name); -GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB programObj, GLint location, GLfloat *params); -GLAPI void APIENTRY glGetUniformivARB (GLhandleARB programObj, GLint location, GLint *params); -GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#endif -#endif /* GL_ARB_shader_objects */ - -#ifndef GL_ARB_shader_precision -#define GL_ARB_shader_precision 1 -#endif /* GL_ARB_shader_precision */ - -#ifndef GL_ARB_shader_stencil_export -#define GL_ARB_shader_stencil_export 1 -#endif /* GL_ARB_shader_stencil_export */ - -#ifndef GL_ARB_shader_storage_buffer_object -#define GL_ARB_shader_storage_buffer_object 1 -#endif /* GL_ARB_shader_storage_buffer_object */ - -#ifndef GL_ARB_shader_subroutine -#define GL_ARB_shader_subroutine 1 -#endif /* GL_ARB_shader_subroutine */ - -#ifndef GL_ARB_shader_texture_lod -#define GL_ARB_shader_texture_lod 1 -#endif /* GL_ARB_shader_texture_lod */ - -#ifndef GL_ARB_shading_language_100 -#define GL_ARB_shading_language_100 1 -#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C -#endif /* GL_ARB_shading_language_100 */ - -#ifndef GL_ARB_shading_language_420pack -#define GL_ARB_shading_language_420pack 1 -#endif /* GL_ARB_shading_language_420pack */ - -#ifndef GL_ARB_shading_language_include -#define GL_ARB_shading_language_include 1 -#define GL_SHADER_INCLUDE_ARB 0x8DAE -#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 -#define GL_NAMED_STRING_TYPE_ARB 0x8DEA -typedef void (APIENTRYP PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); -typedef void (APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); -typedef void (APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length); -typedef GLboolean (APIENTRYP PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); -typedef void (APIENTRYP PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); -typedef void (APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); -GLAPI void APIENTRY glDeleteNamedStringARB (GLint namelen, const GLchar *name); -GLAPI void APIENTRY glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length); -GLAPI GLboolean APIENTRY glIsNamedStringARB (GLint namelen, const GLchar *name); -GLAPI void APIENTRY glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); -GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params); -#endif -#endif /* GL_ARB_shading_language_include */ - -#ifndef GL_ARB_shading_language_packing -#define GL_ARB_shading_language_packing 1 -#endif /* GL_ARB_shading_language_packing */ - -#ifndef GL_ARB_shadow -#define GL_ARB_shadow 1 -#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C -#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D -#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E -#endif /* GL_ARB_shadow */ - -#ifndef GL_ARB_shadow_ambient -#define GL_ARB_shadow_ambient 1 -#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF -#endif /* GL_ARB_shadow_ambient */ - -#ifndef GL_ARB_sparse_texture -#define GL_ARB_sparse_texture 1 -#define GL_TEXTURE_SPARSE_ARB 0x91A6 -#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7 -#define GL_MIN_SPARSE_LEVEL_ARB 0x919B -#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8 -#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195 -#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196 -#define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197 -#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198 -#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199 -#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A -#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9 -typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident); -#endif -#endif /* GL_ARB_sparse_texture */ - -#ifndef GL_ARB_stencil_texturing -#define GL_ARB_stencil_texturing 1 -#endif /* GL_ARB_stencil_texturing */ - -#ifndef GL_ARB_sync -#define GL_ARB_sync 1 -#endif /* GL_ARB_sync */ - -#ifndef GL_ARB_tessellation_shader -#define GL_ARB_tessellation_shader 1 -#endif /* GL_ARB_tessellation_shader */ - -#ifndef GL_ARB_texture_border_clamp -#define GL_ARB_texture_border_clamp 1 -#define GL_CLAMP_TO_BORDER_ARB 0x812D -#endif /* GL_ARB_texture_border_clamp */ - -#ifndef GL_ARB_texture_buffer_object -#define GL_ARB_texture_buffer_object 1 -#define GL_TEXTURE_BUFFER_ARB 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E -typedef void (APIENTRYP PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferARB (GLenum target, GLenum internalformat, GLuint buffer); -#endif -#endif /* GL_ARB_texture_buffer_object */ - -#ifndef GL_ARB_texture_buffer_object_rgb32 -#define GL_ARB_texture_buffer_object_rgb32 1 -#endif /* GL_ARB_texture_buffer_object_rgb32 */ - -#ifndef GL_ARB_texture_buffer_range -#define GL_ARB_texture_buffer_range 1 -#endif /* GL_ARB_texture_buffer_range */ - -#ifndef GL_ARB_texture_compression -#define GL_ARB_texture_compression 1 -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, void *img); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum target, GLint level, void *img); -#endif -#endif /* GL_ARB_texture_compression */ - -#ifndef GL_ARB_texture_compression_bptc -#define GL_ARB_texture_compression_bptc 1 -#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F -#endif /* GL_ARB_texture_compression_bptc */ - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_ARB_texture_compression_rgtc 1 -#endif /* GL_ARB_texture_compression_rgtc */ - -#ifndef GL_ARB_texture_cube_map -#define GL_ARB_texture_cube_map 1 -#define GL_NORMAL_MAP_ARB 0x8511 -#define GL_REFLECTION_MAP_ARB 0x8512 -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C -#endif /* GL_ARB_texture_cube_map */ - -#ifndef GL_ARB_texture_cube_map_array -#define GL_ARB_texture_cube_map_array 1 -#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F -#endif /* GL_ARB_texture_cube_map_array */ - -#ifndef GL_ARB_texture_env_add -#define GL_ARB_texture_env_add 1 -#endif /* GL_ARB_texture_env_add */ - -#ifndef GL_ARB_texture_env_combine -#define GL_ARB_texture_env_combine 1 -#define GL_COMBINE_ARB 0x8570 -#define GL_COMBINE_RGB_ARB 0x8571 -#define GL_COMBINE_ALPHA_ARB 0x8572 -#define GL_SOURCE0_RGB_ARB 0x8580 -#define GL_SOURCE1_RGB_ARB 0x8581 -#define GL_SOURCE2_RGB_ARB 0x8582 -#define GL_SOURCE0_ALPHA_ARB 0x8588 -#define GL_SOURCE1_ALPHA_ARB 0x8589 -#define GL_SOURCE2_ALPHA_ARB 0x858A -#define GL_OPERAND0_RGB_ARB 0x8590 -#define GL_OPERAND1_RGB_ARB 0x8591 -#define GL_OPERAND2_RGB_ARB 0x8592 -#define GL_OPERAND0_ALPHA_ARB 0x8598 -#define GL_OPERAND1_ALPHA_ARB 0x8599 -#define GL_OPERAND2_ALPHA_ARB 0x859A -#define GL_RGB_SCALE_ARB 0x8573 -#define GL_ADD_SIGNED_ARB 0x8574 -#define GL_INTERPOLATE_ARB 0x8575 -#define GL_SUBTRACT_ARB 0x84E7 -#define GL_CONSTANT_ARB 0x8576 -#define GL_PRIMARY_COLOR_ARB 0x8577 -#define GL_PREVIOUS_ARB 0x8578 -#endif /* GL_ARB_texture_env_combine */ - -#ifndef GL_ARB_texture_env_crossbar -#define GL_ARB_texture_env_crossbar 1 -#endif /* GL_ARB_texture_env_crossbar */ - -#ifndef GL_ARB_texture_env_dot3 -#define GL_ARB_texture_env_dot3 1 -#define GL_DOT3_RGB_ARB 0x86AE -#define GL_DOT3_RGBA_ARB 0x86AF -#endif /* GL_ARB_texture_env_dot3 */ - -#ifndef GL_ARB_texture_float -#define GL_ARB_texture_float 1 -#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 -#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 -#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 -#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 -#define GL_RGBA32F_ARB 0x8814 -#define GL_RGB32F_ARB 0x8815 -#define GL_ALPHA32F_ARB 0x8816 -#define GL_INTENSITY32F_ARB 0x8817 -#define GL_LUMINANCE32F_ARB 0x8818 -#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 -#define GL_RGBA16F_ARB 0x881A -#define GL_RGB16F_ARB 0x881B -#define GL_ALPHA16F_ARB 0x881C -#define GL_INTENSITY16F_ARB 0x881D -#define GL_LUMINANCE16F_ARB 0x881E -#define GL_LUMINANCE_ALPHA16F_ARB 0x881F -#endif /* GL_ARB_texture_float */ - -#ifndef GL_ARB_texture_gather -#define GL_ARB_texture_gather 1 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F -#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F -#endif /* GL_ARB_texture_gather */ - -#ifndef GL_ARB_texture_mirror_clamp_to_edge -#define GL_ARB_texture_mirror_clamp_to_edge 1 -#endif /* GL_ARB_texture_mirror_clamp_to_edge */ - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_ARB_texture_mirrored_repeat 1 -#define GL_MIRRORED_REPEAT_ARB 0x8370 -#endif /* GL_ARB_texture_mirrored_repeat */ - -#ifndef GL_ARB_texture_multisample -#define GL_ARB_texture_multisample 1 -#endif /* GL_ARB_texture_multisample */ - -#ifndef GL_ARB_texture_non_power_of_two -#define GL_ARB_texture_non_power_of_two 1 -#endif /* GL_ARB_texture_non_power_of_two */ - -#ifndef GL_ARB_texture_query_levels -#define GL_ARB_texture_query_levels 1 -#endif /* GL_ARB_texture_query_levels */ - -#ifndef GL_ARB_texture_query_lod -#define GL_ARB_texture_query_lod 1 -#endif /* GL_ARB_texture_query_lod */ - -#ifndef GL_ARB_texture_rectangle -#define GL_ARB_texture_rectangle 1 -#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 -#endif /* GL_ARB_texture_rectangle */ - -#ifndef GL_ARB_texture_rg -#define GL_ARB_texture_rg 1 -#endif /* GL_ARB_texture_rg */ - -#ifndef GL_ARB_texture_rgb10_a2ui -#define GL_ARB_texture_rgb10_a2ui 1 -#endif /* GL_ARB_texture_rgb10_a2ui */ - -#ifndef GL_ARB_texture_stencil8 -#define GL_ARB_texture_stencil8 1 -#endif /* GL_ARB_texture_stencil8 */ - -#ifndef GL_ARB_texture_storage -#define GL_ARB_texture_storage 1 -#endif /* GL_ARB_texture_storage */ - -#ifndef GL_ARB_texture_storage_multisample -#define GL_ARB_texture_storage_multisample 1 -#endif /* GL_ARB_texture_storage_multisample */ - -#ifndef GL_ARB_texture_swizzle -#define GL_ARB_texture_swizzle 1 -#endif /* GL_ARB_texture_swizzle */ - -#ifndef GL_ARB_texture_view -#define GL_ARB_texture_view 1 -#endif /* GL_ARB_texture_view */ - -#ifndef GL_ARB_timer_query -#define GL_ARB_timer_query 1 -#endif /* GL_ARB_timer_query */ - -#ifndef GL_ARB_transform_feedback2 -#define GL_ARB_transform_feedback2 1 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#endif /* GL_ARB_transform_feedback2 */ - -#ifndef GL_ARB_transform_feedback3 -#define GL_ARB_transform_feedback3 1 -#endif /* GL_ARB_transform_feedback3 */ - -#ifndef GL_ARB_transform_feedback_instanced -#define GL_ARB_transform_feedback_instanced 1 -#endif /* GL_ARB_transform_feedback_instanced */ - -#ifndef GL_ARB_transpose_matrix -#define GL_ARB_transpose_matrix 1 -#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *m); -GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *m); -GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *m); -GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *m); -#endif -#endif /* GL_ARB_transpose_matrix */ - -#ifndef GL_ARB_uniform_buffer_object -#define GL_ARB_uniform_buffer_object 1 -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 -#endif /* GL_ARB_uniform_buffer_object */ - -#ifndef GL_ARB_vertex_array_bgra -#define GL_ARB_vertex_array_bgra 1 -#endif /* GL_ARB_vertex_array_bgra */ - -#ifndef GL_ARB_vertex_array_object -#define GL_ARB_vertex_array_object 1 -#endif /* GL_ARB_vertex_array_object */ - -#ifndef GL_ARB_vertex_attrib_64bit -#define GL_ARB_vertex_attrib_64bit 1 -#endif /* GL_ARB_vertex_attrib_64bit */ - -#ifndef GL_ARB_vertex_attrib_binding -#define GL_ARB_vertex_attrib_binding 1 -#endif /* GL_ARB_vertex_attrib_binding */ - -#ifndef GL_ARB_vertex_blend -#define GL_ARB_vertex_blend 1 -#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 -#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 -#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 -#define GL_VERTEX_BLEND_ARB 0x86A7 -#define GL_CURRENT_WEIGHT_ARB 0x86A8 -#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 -#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA -#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB -#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC -#define GL_WEIGHT_ARRAY_ARB 0x86AD -#define GL_MODELVIEW0_ARB 0x1700 -#define GL_MODELVIEW1_ARB 0x850A -#define GL_MODELVIEW2_ARB 0x8722 -#define GL_MODELVIEW3_ARB 0x8723 -#define GL_MODELVIEW4_ARB 0x8724 -#define GL_MODELVIEW5_ARB 0x8725 -#define GL_MODELVIEW6_ARB 0x8726 -#define GL_MODELVIEW7_ARB 0x8727 -#define GL_MODELVIEW8_ARB 0x8728 -#define GL_MODELVIEW9_ARB 0x8729 -#define GL_MODELVIEW10_ARB 0x872A -#define GL_MODELVIEW11_ARB 0x872B -#define GL_MODELVIEW12_ARB 0x872C -#define GL_MODELVIEW13_ARB 0x872D -#define GL_MODELVIEW14_ARB 0x872E -#define GL_MODELVIEW15_ARB 0x872F -#define GL_MODELVIEW16_ARB 0x8730 -#define GL_MODELVIEW17_ARB 0x8731 -#define GL_MODELVIEW18_ARB 0x8732 -#define GL_MODELVIEW19_ARB 0x8733 -#define GL_MODELVIEW20_ARB 0x8734 -#define GL_MODELVIEW21_ARB 0x8735 -#define GL_MODELVIEW22_ARB 0x8736 -#define GL_MODELVIEW23_ARB 0x8737 -#define GL_MODELVIEW24_ARB 0x8738 -#define GL_MODELVIEW25_ARB 0x8739 -#define GL_MODELVIEW26_ARB 0x873A -#define GL_MODELVIEW27_ARB 0x873B -#define GL_MODELVIEW28_ARB 0x873C -#define GL_MODELVIEW29_ARB 0x873D -#define GL_MODELVIEW30_ARB 0x873E -#define GL_MODELVIEW31_ARB 0x873F -typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); -typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); -typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); -typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); -typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); -typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); -typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWeightbvARB (GLint size, const GLbyte *weights); -GLAPI void APIENTRY glWeightsvARB (GLint size, const GLshort *weights); -GLAPI void APIENTRY glWeightivARB (GLint size, const GLint *weights); -GLAPI void APIENTRY glWeightfvARB (GLint size, const GLfloat *weights); -GLAPI void APIENTRY glWeightdvARB (GLint size, const GLdouble *weights); -GLAPI void APIENTRY glWeightubvARB (GLint size, const GLubyte *weights); -GLAPI void APIENTRY glWeightusvARB (GLint size, const GLushort *weights); -GLAPI void APIENTRY glWeightuivARB (GLint size, const GLuint *weights); -GLAPI void APIENTRY glWeightPointerARB (GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glVertexBlendARB (GLint count); -#endif -#endif /* GL_ARB_vertex_blend */ - -#ifndef GL_ARB_vertex_buffer_object -#define GL_ARB_vertex_buffer_object 1 -#ifdef __MACOSX__ /* The OS X headers haven't caught up with Khronos yet */ -typedef long GLsizeiptrARB; -typedef long GLintptrARB; -#else -typedef ptrdiff_t GLsizeiptrARB; -typedef ptrdiff_t GLintptrARB; -#endif -#define GL_BUFFER_SIZE_ARB 0x8764 -#define GL_BUFFER_USAGE_ARB 0x8765 -#define GL_ARRAY_BUFFER_ARB 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define GL_READ_ONLY_ARB 0x88B8 -#define GL_WRITE_ONLY_ARB 0x88B9 -#define GL_READ_WRITE_ARB 0x88BA -#define GL_BUFFER_ACCESS_ARB 0x88BB -#define GL_BUFFER_MAPPED_ARB 0x88BC -#define GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define GL_STREAM_DRAW_ARB 0x88E0 -#define GL_STREAM_READ_ARB 0x88E1 -#define GL_STREAM_COPY_ARB 0x88E2 -#define GL_STATIC_DRAW_ARB 0x88E4 -#define GL_STATIC_READ_ARB 0x88E5 -#define GL_STATIC_COPY_ARB 0x88E6 -#define GL_DYNAMIC_DRAW_ARB 0x88E8 -#define GL_DYNAMIC_READ_ARB 0x88E9 -#define GL_DYNAMIC_COPY_ARB 0x88EA -typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); -typedef void *(APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindBufferARB (GLenum target, GLuint buffer); -GLAPI void APIENTRY glDeleteBuffersARB (GLsizei n, const GLuint *buffers); -GLAPI void APIENTRY glGenBuffersARB (GLsizei n, GLuint *buffers); -GLAPI GLboolean APIENTRY glIsBufferARB (GLuint buffer); -GLAPI void APIENTRY glBufferDataARB (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); -GLAPI void APIENTRY glBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); -GLAPI void APIENTRY glGetBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); -GLAPI void *APIENTRY glMapBufferARB (GLenum target, GLenum access); -GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum target); -GLAPI void APIENTRY glGetBufferParameterivARB (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetBufferPointervARB (GLenum target, GLenum pname, void **params); -#endif -#endif /* GL_ARB_vertex_buffer_object */ - -#ifndef GL_ARB_vertex_program -#define GL_ARB_vertex_program 1 -#define GL_COLOR_SUM_ARB 0x8458 -#define GL_VERTEX_PROGRAM_ARB 0x8620 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void **pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttrib1dARB (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1fARB (GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1sARB (GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2dARB (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2fARB (GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2sARB (GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3sARB (GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4sARB (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribPointerARB (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint index); -GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint index); -GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribivARB (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint index, GLenum pname, void **pointer); -#endif -#endif /* GL_ARB_vertex_program */ - -#ifndef GL_ARB_vertex_shader -#define GL_ARB_vertex_shader 1 -#define GL_VERTEX_SHADER_ARB 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB programObj, GLuint index, const GLcharARB *name); -GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB programObj, const GLcharARB *name); -#endif -#endif /* GL_ARB_vertex_shader */ - -#ifndef GL_ARB_vertex_type_10f_11f_11f_rev -#define GL_ARB_vertex_type_10f_11f_11f_rev 1 -#endif /* GL_ARB_vertex_type_10f_11f_11f_rev */ - -#ifndef GL_ARB_vertex_type_2_10_10_10_rev -#define GL_ARB_vertex_type_2_10_10_10_rev 1 -#endif /* GL_ARB_vertex_type_2_10_10_10_rev */ - -#ifndef GL_ARB_viewport_array -#define GL_ARB_viewport_array 1 -#endif /* GL_ARB_viewport_array */ - -#ifndef GL_ARB_window_pos -#define GL_ARB_window_pos 1 -typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dARB (GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *v); -GLAPI void APIENTRY glWindowPos2fARB (GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *v); -GLAPI void APIENTRY glWindowPos2iARB (GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2ivARB (const GLint *v); -GLAPI void APIENTRY glWindowPos2sARB (GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2svARB (const GLshort *v); -GLAPI void APIENTRY glWindowPos3dARB (GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *v); -GLAPI void APIENTRY glWindowPos3fARB (GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *v); -GLAPI void APIENTRY glWindowPos3iARB (GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3ivARB (const GLint *v); -GLAPI void APIENTRY glWindowPos3sARB (GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3svARB (const GLshort *v); -#endif -#endif /* GL_ARB_window_pos */ - -#ifndef GL_KHR_debug -#define GL_KHR_debug 1 -#endif /* GL_KHR_debug */ - -#ifndef GL_KHR_texture_compression_astc_hdr -#define GL_KHR_texture_compression_astc_hdr 1 -#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 -#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 -#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 -#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 -#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 -#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 -#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 -#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 -#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 -#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 -#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA -#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB -#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC -#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD -#endif /* GL_KHR_texture_compression_astc_hdr */ - -#ifndef GL_KHR_texture_compression_astc_ldr -#define GL_KHR_texture_compression_astc_ldr 1 -#endif /* GL_KHR_texture_compression_astc_ldr */ - -#ifndef GL_OES_byte_coordinates -#define GL_OES_byte_coordinates 1 -typedef void (APIENTRYP PFNGLMULTITEXCOORD1BOESPROC) (GLenum texture, GLbyte s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1BVOESPROC) (GLenum texture, const GLbyte *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2BOESPROC) (GLenum texture, GLbyte s, GLbyte t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2BVOESPROC) (GLenum texture, const GLbyte *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3BOESPROC) (GLenum texture, GLbyte s, GLbyte t, GLbyte r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3BVOESPROC) (GLenum texture, const GLbyte *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4BOESPROC) (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4BVOESPROC) (GLenum texture, const GLbyte *coords); -typedef void (APIENTRYP PFNGLTEXCOORD1BOESPROC) (GLbyte s); -typedef void (APIENTRYP PFNGLTEXCOORD1BVOESPROC) (const GLbyte *coords); -typedef void (APIENTRYP PFNGLTEXCOORD2BOESPROC) (GLbyte s, GLbyte t); -typedef void (APIENTRYP PFNGLTEXCOORD2BVOESPROC) (const GLbyte *coords); -typedef void (APIENTRYP PFNGLTEXCOORD3BOESPROC) (GLbyte s, GLbyte t, GLbyte r); -typedef void (APIENTRYP PFNGLTEXCOORD3BVOESPROC) (const GLbyte *coords); -typedef void (APIENTRYP PFNGLTEXCOORD4BOESPROC) (GLbyte s, GLbyte t, GLbyte r, GLbyte q); -typedef void (APIENTRYP PFNGLTEXCOORD4BVOESPROC) (const GLbyte *coords); -typedef void (APIENTRYP PFNGLVERTEX2BOESPROC) (GLbyte x); -typedef void (APIENTRYP PFNGLVERTEX2BVOESPROC) (const GLbyte *coords); -typedef void (APIENTRYP PFNGLVERTEX3BOESPROC) (GLbyte x, GLbyte y); -typedef void (APIENTRYP PFNGLVERTEX3BVOESPROC) (const GLbyte *coords); -typedef void (APIENTRYP PFNGLVERTEX4BOESPROC) (GLbyte x, GLbyte y, GLbyte z); -typedef void (APIENTRYP PFNGLVERTEX4BVOESPROC) (const GLbyte *coords); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiTexCoord1bOES (GLenum texture, GLbyte s); -GLAPI void APIENTRY glMultiTexCoord1bvOES (GLenum texture, const GLbyte *coords); -GLAPI void APIENTRY glMultiTexCoord2bOES (GLenum texture, GLbyte s, GLbyte t); -GLAPI void APIENTRY glMultiTexCoord2bvOES (GLenum texture, const GLbyte *coords); -GLAPI void APIENTRY glMultiTexCoord3bOES (GLenum texture, GLbyte s, GLbyte t, GLbyte r); -GLAPI void APIENTRY glMultiTexCoord3bvOES (GLenum texture, const GLbyte *coords); -GLAPI void APIENTRY glMultiTexCoord4bOES (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q); -GLAPI void APIENTRY glMultiTexCoord4bvOES (GLenum texture, const GLbyte *coords); -GLAPI void APIENTRY glTexCoord1bOES (GLbyte s); -GLAPI void APIENTRY glTexCoord1bvOES (const GLbyte *coords); -GLAPI void APIENTRY glTexCoord2bOES (GLbyte s, GLbyte t); -GLAPI void APIENTRY glTexCoord2bvOES (const GLbyte *coords); -GLAPI void APIENTRY glTexCoord3bOES (GLbyte s, GLbyte t, GLbyte r); -GLAPI void APIENTRY glTexCoord3bvOES (const GLbyte *coords); -GLAPI void APIENTRY glTexCoord4bOES (GLbyte s, GLbyte t, GLbyte r, GLbyte q); -GLAPI void APIENTRY glTexCoord4bvOES (const GLbyte *coords); -GLAPI void APIENTRY glVertex2bOES (GLbyte x); -GLAPI void APIENTRY glVertex2bvOES (const GLbyte *coords); -GLAPI void APIENTRY glVertex3bOES (GLbyte x, GLbyte y); -GLAPI void APIENTRY glVertex3bvOES (const GLbyte *coords); -GLAPI void APIENTRY glVertex4bOES (GLbyte x, GLbyte y, GLbyte z); -GLAPI void APIENTRY glVertex4bvOES (const GLbyte *coords); -#endif -#endif /* GL_OES_byte_coordinates */ - -#ifndef GL_OES_compressed_paletted_texture -#define GL_OES_compressed_paletted_texture 1 -#define GL_PALETTE4_RGB8_OES 0x8B90 -#define GL_PALETTE4_RGBA8_OES 0x8B91 -#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 -#define GL_PALETTE4_RGBA4_OES 0x8B93 -#define GL_PALETTE4_RGB5_A1_OES 0x8B94 -#define GL_PALETTE8_RGB8_OES 0x8B95 -#define GL_PALETTE8_RGBA8_OES 0x8B96 -#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 -#define GL_PALETTE8_RGBA4_OES 0x8B98 -#define GL_PALETTE8_RGB5_A1_OES 0x8B99 -#endif /* GL_OES_compressed_paletted_texture */ - -#ifndef GL_OES_fixed_point -#define GL_OES_fixed_point 1 -typedef GLint GLfixed; -#define GL_FIXED_OES 0x140C -typedef void (APIENTRYP PFNGLALPHAFUNCXOESPROC) (GLenum func, GLfixed ref); -typedef void (APIENTRYP PFNGLCLEARCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (APIENTRYP PFNGLCLEARDEPTHXOESPROC) (GLfixed depth); -typedef void (APIENTRYP PFNGLCLIPPLANEXOESPROC) (GLenum plane, const GLfixed *equation); -typedef void (APIENTRYP PFNGLCOLOR4XOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (APIENTRYP PFNGLDEPTHRANGEXOESPROC) (GLfixed n, GLfixed f); -typedef void (APIENTRYP PFNGLFOGXOESPROC) (GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLFOGXVOESPROC) (GLenum pname, const GLfixed *param); -typedef void (APIENTRYP PFNGLFRUSTUMXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -typedef void (APIENTRYP PFNGLGETCLIPPLANEXOESPROC) (GLenum plane, GLfixed *equation); -typedef void (APIENTRYP PFNGLGETFIXEDVOESPROC) (GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLGETTEXENVXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLLIGHTMODELXOESPROC) (GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLLIGHTMODELXVOESPROC) (GLenum pname, const GLfixed *param); -typedef void (APIENTRYP PFNGLLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLLIGHTXVOESPROC) (GLenum light, GLenum pname, const GLfixed *params); -typedef void (APIENTRYP PFNGLLINEWIDTHXOESPROC) (GLfixed width); -typedef void (APIENTRYP PFNGLLOADMATRIXXOESPROC) (const GLfixed *m); -typedef void (APIENTRYP PFNGLMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLMATERIALXVOESPROC) (GLenum face, GLenum pname, const GLfixed *param); -typedef void (APIENTRYP PFNGLMULTMATRIXXOESPROC) (const GLfixed *m); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -typedef void (APIENTRYP PFNGLNORMAL3XOESPROC) (GLfixed nx, GLfixed ny, GLfixed nz); -typedef void (APIENTRYP PFNGLORTHOXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -typedef void (APIENTRYP PFNGLPOINTPARAMETERXVOESPROC) (GLenum pname, const GLfixed *params); -typedef void (APIENTRYP PFNGLPOINTSIZEXOESPROC) (GLfixed size); -typedef void (APIENTRYP PFNGLPOLYGONOFFSETXOESPROC) (GLfixed factor, GLfixed units); -typedef void (APIENTRYP PFNGLROTATEXOESPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEOESPROC) (GLfixed value, GLboolean invert); -typedef void (APIENTRYP PFNGLSCALEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (APIENTRYP PFNGLTEXENVXOESPROC) (GLenum target, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLTEXENVXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); -typedef void (APIENTRYP PFNGLTRANSLATEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (APIENTRYP PFNGLACCUMXOESPROC) (GLenum op, GLfixed value); -typedef void (APIENTRYP PFNGLBITMAPXOESPROC) (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap); -typedef void (APIENTRYP PFNGLBLENDCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (APIENTRYP PFNGLCLEARACCUMXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (APIENTRYP PFNGLCOLOR3XOESPROC) (GLfixed red, GLfixed green, GLfixed blue); -typedef void (APIENTRYP PFNGLCOLOR3XVOESPROC) (const GLfixed *components); -typedef void (APIENTRYP PFNGLCOLOR4XVOESPROC) (const GLfixed *components); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); -typedef void (APIENTRYP PFNGLEVALCOORD1XOESPROC) (GLfixed u); -typedef void (APIENTRYP PFNGLEVALCOORD1XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLEVALCOORD2XOESPROC) (GLfixed u, GLfixed v); -typedef void (APIENTRYP PFNGLEVALCOORD2XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLFEEDBACKBUFFERXOESPROC) (GLsizei n, GLenum type, const GLfixed *buffer); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLGETLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLGETMAPXVOESPROC) (GLenum target, GLenum query, GLfixed *v); -typedef void (APIENTRYP PFNGLGETMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLGETPIXELMAPXVPROC) (GLenum map, GLint size, GLfixed *values); -typedef void (APIENTRYP PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERXVOESPROC) (GLenum target, GLint level, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLINDEXXOESPROC) (GLfixed component); -typedef void (APIENTRYP PFNGLINDEXXVOESPROC) (const GLfixed *component); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXXOESPROC) (const GLfixed *m); -typedef void (APIENTRYP PFNGLMAP1XOESPROC) (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points); -typedef void (APIENTRYP PFNGLMAP2XOESPROC) (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points); -typedef void (APIENTRYP PFNGLMAPGRID1XOESPROC) (GLint n, GLfixed u1, GLfixed u2); -typedef void (APIENTRYP PFNGLMAPGRID2XOESPROC) (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXXOESPROC) (const GLfixed *m); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1XOESPROC) (GLenum texture, GLfixed s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1XVOESPROC) (GLenum texture, const GLfixed *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2XOESPROC) (GLenum texture, GLfixed s, GLfixed t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2XVOESPROC) (GLenum texture, const GLfixed *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3XVOESPROC) (GLenum texture, const GLfixed *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4XVOESPROC) (GLenum texture, const GLfixed *coords); -typedef void (APIENTRYP PFNGLNORMAL3XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLPASSTHROUGHXOESPROC) (GLfixed token); -typedef void (APIENTRYP PFNGLPIXELMAPXPROC) (GLenum map, GLint size, const GLfixed *values); -typedef void (APIENTRYP PFNGLPIXELSTOREXPROC) (GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLPIXELTRANSFERXOESPROC) (GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLPIXELZOOMXOESPROC) (GLfixed xfactor, GLfixed yfactor); -typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESXOESPROC) (GLsizei n, const GLuint *textures, const GLfixed *priorities); -typedef void (APIENTRYP PFNGLRASTERPOS2XOESPROC) (GLfixed x, GLfixed y); -typedef void (APIENTRYP PFNGLRASTERPOS2XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLRASTERPOS3XOESPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (APIENTRYP PFNGLRASTERPOS3XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLRASTERPOS4XOESPROC) (GLfixed x, GLfixed y, GLfixed z, GLfixed w); -typedef void (APIENTRYP PFNGLRASTERPOS4XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLRECTXOESPROC) (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2); -typedef void (APIENTRYP PFNGLRECTXVOESPROC) (const GLfixed *v1, const GLfixed *v2); -typedef void (APIENTRYP PFNGLTEXCOORD1XOESPROC) (GLfixed s); -typedef void (APIENTRYP PFNGLTEXCOORD1XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLTEXCOORD2XOESPROC) (GLfixed s, GLfixed t); -typedef void (APIENTRYP PFNGLTEXCOORD2XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLTEXCOORD3XOESPROC) (GLfixed s, GLfixed t, GLfixed r); -typedef void (APIENTRYP PFNGLTEXCOORD3XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLTEXCOORD4XOESPROC) (GLfixed s, GLfixed t, GLfixed r, GLfixed q); -typedef void (APIENTRYP PFNGLTEXCOORD4XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params); -typedef void (APIENTRYP PFNGLVERTEX2XOESPROC) (GLfixed x); -typedef void (APIENTRYP PFNGLVERTEX2XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLVERTEX3XOESPROC) (GLfixed x, GLfixed y); -typedef void (APIENTRYP PFNGLVERTEX3XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLVERTEX4XOESPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (APIENTRYP PFNGLVERTEX4XVOESPROC) (const GLfixed *coords); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glAlphaFuncxOES (GLenum func, GLfixed ref); -GLAPI void APIENTRY glClearColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GLAPI void APIENTRY glClearDepthxOES (GLfixed depth); -GLAPI void APIENTRY glClipPlanexOES (GLenum plane, const GLfixed *equation); -GLAPI void APIENTRY glColor4xOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GLAPI void APIENTRY glDepthRangexOES (GLfixed n, GLfixed f); -GLAPI void APIENTRY glFogxOES (GLenum pname, GLfixed param); -GLAPI void APIENTRY glFogxvOES (GLenum pname, const GLfixed *param); -GLAPI void APIENTRY glFrustumxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -GLAPI void APIENTRY glGetClipPlanexOES (GLenum plane, GLfixed *equation); -GLAPI void APIENTRY glGetFixedvOES (GLenum pname, GLfixed *params); -GLAPI void APIENTRY glGetTexEnvxvOES (GLenum target, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glGetTexParameterxvOES (GLenum target, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glLightModelxOES (GLenum pname, GLfixed param); -GLAPI void APIENTRY glLightModelxvOES (GLenum pname, const GLfixed *param); -GLAPI void APIENTRY glLightxOES (GLenum light, GLenum pname, GLfixed param); -GLAPI void APIENTRY glLightxvOES (GLenum light, GLenum pname, const GLfixed *params); -GLAPI void APIENTRY glLineWidthxOES (GLfixed width); -GLAPI void APIENTRY glLoadMatrixxOES (const GLfixed *m); -GLAPI void APIENTRY glMaterialxOES (GLenum face, GLenum pname, GLfixed param); -GLAPI void APIENTRY glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *param); -GLAPI void APIENTRY glMultMatrixxOES (const GLfixed *m); -GLAPI void APIENTRY glMultiTexCoord4xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -GLAPI void APIENTRY glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz); -GLAPI void APIENTRY glOrthoxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -GLAPI void APIENTRY glPointParameterxvOES (GLenum pname, const GLfixed *params); -GLAPI void APIENTRY glPointSizexOES (GLfixed size); -GLAPI void APIENTRY glPolygonOffsetxOES (GLfixed factor, GLfixed units); -GLAPI void APIENTRY glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -GLAPI void APIENTRY glSampleCoverageOES (GLfixed value, GLboolean invert); -GLAPI void APIENTRY glScalexOES (GLfixed x, GLfixed y, GLfixed z); -GLAPI void APIENTRY glTexEnvxOES (GLenum target, GLenum pname, GLfixed param); -GLAPI void APIENTRY glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params); -GLAPI void APIENTRY glTexParameterxOES (GLenum target, GLenum pname, GLfixed param); -GLAPI void APIENTRY glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); -GLAPI void APIENTRY glTranslatexOES (GLfixed x, GLfixed y, GLfixed z); -GLAPI void APIENTRY glAccumxOES (GLenum op, GLfixed value); -GLAPI void APIENTRY glBitmapxOES (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap); -GLAPI void APIENTRY glBlendColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GLAPI void APIENTRY glClearAccumxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GLAPI void APIENTRY glColor3xOES (GLfixed red, GLfixed green, GLfixed blue); -GLAPI void APIENTRY glColor3xvOES (const GLfixed *components); -GLAPI void APIENTRY glColor4xvOES (const GLfixed *components); -GLAPI void APIENTRY glConvolutionParameterxOES (GLenum target, GLenum pname, GLfixed param); -GLAPI void APIENTRY glConvolutionParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); -GLAPI void APIENTRY glEvalCoord1xOES (GLfixed u); -GLAPI void APIENTRY glEvalCoord1xvOES (const GLfixed *coords); -GLAPI void APIENTRY glEvalCoord2xOES (GLfixed u, GLfixed v); -GLAPI void APIENTRY glEvalCoord2xvOES (const GLfixed *coords); -GLAPI void APIENTRY glFeedbackBufferxOES (GLsizei n, GLenum type, const GLfixed *buffer); -GLAPI void APIENTRY glGetConvolutionParameterxvOES (GLenum target, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glGetHistogramParameterxvOES (GLenum target, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glGetLightxOES (GLenum light, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glGetMapxvOES (GLenum target, GLenum query, GLfixed *v); -GLAPI void APIENTRY glGetMaterialxOES (GLenum face, GLenum pname, GLfixed param); -GLAPI void APIENTRY glGetPixelMapxv (GLenum map, GLint size, GLfixed *values); -GLAPI void APIENTRY glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glGetTexLevelParameterxvOES (GLenum target, GLint level, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glIndexxOES (GLfixed component); -GLAPI void APIENTRY glIndexxvOES (const GLfixed *component); -GLAPI void APIENTRY glLoadTransposeMatrixxOES (const GLfixed *m); -GLAPI void APIENTRY glMap1xOES (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points); -GLAPI void APIENTRY glMap2xOES (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points); -GLAPI void APIENTRY glMapGrid1xOES (GLint n, GLfixed u1, GLfixed u2); -GLAPI void APIENTRY glMapGrid2xOES (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2); -GLAPI void APIENTRY glMultTransposeMatrixxOES (const GLfixed *m); -GLAPI void APIENTRY glMultiTexCoord1xOES (GLenum texture, GLfixed s); -GLAPI void APIENTRY glMultiTexCoord1xvOES (GLenum texture, const GLfixed *coords); -GLAPI void APIENTRY glMultiTexCoord2xOES (GLenum texture, GLfixed s, GLfixed t); -GLAPI void APIENTRY glMultiTexCoord2xvOES (GLenum texture, const GLfixed *coords); -GLAPI void APIENTRY glMultiTexCoord3xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r); -GLAPI void APIENTRY glMultiTexCoord3xvOES (GLenum texture, const GLfixed *coords); -GLAPI void APIENTRY glMultiTexCoord4xvOES (GLenum texture, const GLfixed *coords); -GLAPI void APIENTRY glNormal3xvOES (const GLfixed *coords); -GLAPI void APIENTRY glPassThroughxOES (GLfixed token); -GLAPI void APIENTRY glPixelMapx (GLenum map, GLint size, const GLfixed *values); -GLAPI void APIENTRY glPixelStorex (GLenum pname, GLfixed param); -GLAPI void APIENTRY glPixelTransferxOES (GLenum pname, GLfixed param); -GLAPI void APIENTRY glPixelZoomxOES (GLfixed xfactor, GLfixed yfactor); -GLAPI void APIENTRY glPrioritizeTexturesxOES (GLsizei n, const GLuint *textures, const GLfixed *priorities); -GLAPI void APIENTRY glRasterPos2xOES (GLfixed x, GLfixed y); -GLAPI void APIENTRY glRasterPos2xvOES (const GLfixed *coords); -GLAPI void APIENTRY glRasterPos3xOES (GLfixed x, GLfixed y, GLfixed z); -GLAPI void APIENTRY glRasterPos3xvOES (const GLfixed *coords); -GLAPI void APIENTRY glRasterPos4xOES (GLfixed x, GLfixed y, GLfixed z, GLfixed w); -GLAPI void APIENTRY glRasterPos4xvOES (const GLfixed *coords); -GLAPI void APIENTRY glRectxOES (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2); -GLAPI void APIENTRY glRectxvOES (const GLfixed *v1, const GLfixed *v2); -GLAPI void APIENTRY glTexCoord1xOES (GLfixed s); -GLAPI void APIENTRY glTexCoord1xvOES (const GLfixed *coords); -GLAPI void APIENTRY glTexCoord2xOES (GLfixed s, GLfixed t); -GLAPI void APIENTRY glTexCoord2xvOES (const GLfixed *coords); -GLAPI void APIENTRY glTexCoord3xOES (GLfixed s, GLfixed t, GLfixed r); -GLAPI void APIENTRY glTexCoord3xvOES (const GLfixed *coords); -GLAPI void APIENTRY glTexCoord4xOES (GLfixed s, GLfixed t, GLfixed r, GLfixed q); -GLAPI void APIENTRY glTexCoord4xvOES (const GLfixed *coords); -GLAPI void APIENTRY glTexGenxOES (GLenum coord, GLenum pname, GLfixed param); -GLAPI void APIENTRY glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed *params); -GLAPI void APIENTRY glVertex2xOES (GLfixed x); -GLAPI void APIENTRY glVertex2xvOES (const GLfixed *coords); -GLAPI void APIENTRY glVertex3xOES (GLfixed x, GLfixed y); -GLAPI void APIENTRY glVertex3xvOES (const GLfixed *coords); -GLAPI void APIENTRY glVertex4xOES (GLfixed x, GLfixed y, GLfixed z); -GLAPI void APIENTRY glVertex4xvOES (const GLfixed *coords); -#endif -#endif /* GL_OES_fixed_point */ - -#ifndef GL_OES_query_matrix -#define GL_OES_query_matrix 1 -typedef GLbitfield (APIENTRYP PFNGLQUERYMATRIXXOESPROC) (GLfixed *mantissa, GLint *exponent); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLbitfield APIENTRY glQueryMatrixxOES (GLfixed *mantissa, GLint *exponent); -#endif -#endif /* GL_OES_query_matrix */ - -#ifndef GL_OES_read_format -#define GL_OES_read_format 1 -#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B -#endif /* GL_OES_read_format */ - -#ifndef GL_OES_single_precision -#define GL_OES_single_precision 1 -typedef void (APIENTRYP PFNGLCLEARDEPTHFOESPROC) (GLclampf depth); -typedef void (APIENTRYP PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat *equation); -typedef void (APIENTRYP PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); -typedef void (APIENTRYP PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -typedef void (APIENTRYP PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat *equation); -typedef void (APIENTRYP PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClearDepthfOES (GLclampf depth); -GLAPI void APIENTRY glClipPlanefOES (GLenum plane, const GLfloat *equation); -GLAPI void APIENTRY glDepthRangefOES (GLclampf n, GLclampf f); -GLAPI void APIENTRY glFrustumfOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -GLAPI void APIENTRY glGetClipPlanefOES (GLenum plane, GLfloat *equation); -GLAPI void APIENTRY glOrthofOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -#endif -#endif /* GL_OES_single_precision */ - -#ifndef GL_3DFX_multisample -#define GL_3DFX_multisample 1 -#define GL_MULTISAMPLE_3DFX 0x86B2 -#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define GL_SAMPLES_3DFX 0x86B4 -#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 -#endif /* GL_3DFX_multisample */ - -#ifndef GL_3DFX_tbuffer -#define GL_3DFX_tbuffer 1 -typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTbufferMask3DFX (GLuint mask); -#endif -#endif /* GL_3DFX_tbuffer */ - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_3DFX_texture_compression_FXT1 1 -#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 -#endif /* GL_3DFX_texture_compression_FXT1 */ - -#ifndef GL_AMD_blend_minmax_factor -#define GL_AMD_blend_minmax_factor 1 -#define GL_FACTOR_MIN_AMD 0x901C -#define GL_FACTOR_MAX_AMD 0x901D -#endif /* GL_AMD_blend_minmax_factor */ - -#ifndef GL_AMD_conservative_depth -#define GL_AMD_conservative_depth 1 -#endif /* GL_AMD_conservative_depth */ - -#ifndef GL_AMD_debug_output -#define GL_AMD_debug_output 1 -typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); -#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 -#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 -#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 -#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A -#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B -#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C -#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D -#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E -#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F -#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 -typedef void (APIENTRYP PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); -typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam); -typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDebugMessageEnableAMD (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GLAPI void APIENTRY glDebugMessageInsertAMD (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); -GLAPI void APIENTRY glDebugMessageCallbackAMD (GLDEBUGPROCAMD callback, void *userParam); -GLAPI GLuint APIENTRY glGetDebugMessageLogAMD (GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); -#endif -#endif /* GL_AMD_debug_output */ - -#ifndef GL_AMD_depth_clamp_separate -#define GL_AMD_depth_clamp_separate 1 -#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E -#define GL_DEPTH_CLAMP_FAR_AMD 0x901F -#endif /* GL_AMD_depth_clamp_separate */ - -#ifndef GL_AMD_draw_buffers_blend -#define GL_AMD_draw_buffers_blend 1 -typedef void (APIENTRYP PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncIndexedAMD (GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparateIndexedAMD (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GLAPI void APIENTRY glBlendEquationIndexedAMD (GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -#endif -#endif /* GL_AMD_draw_buffers_blend */ - -#ifndef GL_AMD_gcn_shader -#define GL_AMD_gcn_shader 1 -#endif /* GL_AMD_gcn_shader */ - -#ifndef GL_AMD_gpu_shader_int64 -#define GL_AMD_gpu_shader_int64 1 -typedef int64_t GLint64EXT; -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F -#define GL_INT8_NV 0x8FE0 -#define GL_INT8_VEC2_NV 0x8FE1 -#define GL_INT8_VEC3_NV 0x8FE2 -#define GL_INT8_VEC4_NV 0x8FE3 -#define GL_INT16_NV 0x8FE4 -#define GL_INT16_VEC2_NV 0x8FE5 -#define GL_INT16_VEC3_NV 0x8FE6 -#define GL_INT16_VEC4_NV 0x8FE7 -#define GL_INT64_VEC2_NV 0x8FE9 -#define GL_INT64_VEC3_NV 0x8FEA -#define GL_INT64_VEC4_NV 0x8FEB -#define GL_UNSIGNED_INT8_NV 0x8FEC -#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED -#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE -#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF -#define GL_UNSIGNED_INT16_NV 0x8FF0 -#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 -#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 -#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 -#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 -#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 -#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 -#define GL_FLOAT16_NV 0x8FF8 -#define GL_FLOAT16_VEC2_NV 0x8FF9 -#define GL_FLOAT16_VEC3_NV 0x8FFA -#define GL_FLOAT16_VEC4_NV 0x8FFB -typedef void (APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); -typedef void (APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); -typedef void (APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); -typedef void (APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniform1i64NV (GLint location, GLint64EXT x); -GLAPI void APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x); -GLAPI void APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params); -GLAPI void APIENTRY glGetUniformui64vNV (GLuint program, GLint location, GLuint64EXT *params); -GLAPI void APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x); -GLAPI void APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x); -GLAPI void APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif -#endif /* GL_AMD_gpu_shader_int64 */ - -#ifndef GL_AMD_interleaved_elements -#define GL_AMD_interleaved_elements 1 -#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4 -#define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5 -typedef void (APIENTRYP PFNGLVERTEXATTRIBPARAMETERIAMDPROC) (GLuint index, GLenum pname, GLint param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribParameteriAMD (GLuint index, GLenum pname, GLint param); -#endif -#endif /* GL_AMD_interleaved_elements */ - -#ifndef GL_AMD_multi_draw_indirect -#define GL_AMD_multi_draw_indirect 1 -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysIndirectAMD (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); -GLAPI void APIENTRY glMultiDrawElementsIndirectAMD (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); -#endif -#endif /* GL_AMD_multi_draw_indirect */ - -#ifndef GL_AMD_name_gen_delete -#define GL_AMD_name_gen_delete 1 -#define GL_DATA_BUFFER_AMD 0x9151 -#define GL_PERFORMANCE_MONITOR_AMD 0x9152 -#define GL_QUERY_OBJECT_AMD 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 -#define GL_SAMPLER_OBJECT_AMD 0x9155 -typedef void (APIENTRYP PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint *names); -typedef void (APIENTRYP PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint *names); -typedef GLboolean (APIENTRYP PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenNamesAMD (GLenum identifier, GLuint num, GLuint *names); -GLAPI void APIENTRY glDeleteNamesAMD (GLenum identifier, GLuint num, const GLuint *names); -GLAPI GLboolean APIENTRY glIsNameAMD (GLenum identifier, GLuint name); -#endif -#endif /* GL_AMD_name_gen_delete */ - -#ifndef GL_AMD_occlusion_query_event -#define GL_AMD_occlusion_query_event 1 -#define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F -#define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001 -#define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002 -#define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004 -#define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008 -#define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF -typedef void (APIENTRYP PFNGLQUERYOBJECTPARAMETERUIAMDPROC) (GLenum target, GLuint id, GLenum pname, GLuint param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glQueryObjectParameteruiAMD (GLenum target, GLuint id, GLenum pname, GLuint param); -#endif -#endif /* GL_AMD_occlusion_query_event */ - -#ifndef GL_AMD_performance_monitor -#define GL_AMD_performance_monitor 1 -#define GL_COUNTER_TYPE_AMD 0x8BC0 -#define GL_COUNTER_RANGE_AMD 0x8BC1 -#define GL_UNSIGNED_INT64_AMD 0x8BC2 -#define GL_PERCENTAGE_AMD 0x8BC3 -#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 -#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 -#define GL_PERFMON_RESULT_AMD 0x8BC6 -typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); -typedef void (APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -typedef void (APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); -typedef void (APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -GLAPI void APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -GLAPI void APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -GLAPI void APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -GLAPI void APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data); -GLAPI void APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); -GLAPI void APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); -GLAPI void APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -GLAPI void APIENTRY glBeginPerfMonitorAMD (GLuint monitor); -GLAPI void APIENTRY glEndPerfMonitorAMD (GLuint monitor); -GLAPI void APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif -#endif /* GL_AMD_performance_monitor */ - -#ifndef GL_AMD_pinned_memory -#define GL_AMD_pinned_memory 1 -#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160 -#endif /* GL_AMD_pinned_memory */ - -#ifndef GL_AMD_query_buffer_object -#define GL_AMD_query_buffer_object 1 -#define GL_QUERY_BUFFER_AMD 0x9192 -#define GL_QUERY_BUFFER_BINDING_AMD 0x9193 -#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194 -#endif /* GL_AMD_query_buffer_object */ - -#ifndef GL_AMD_sample_positions -#define GL_AMD_sample_positions 1 -#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F -typedef void (APIENTRYP PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat *val); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLfloat *val); -#endif -#endif /* GL_AMD_sample_positions */ - -#ifndef GL_AMD_seamless_cubemap_per_texture -#define GL_AMD_seamless_cubemap_per_texture 1 -#endif /* GL_AMD_seamless_cubemap_per_texture */ - -#ifndef GL_AMD_shader_atomic_counter_ops -#define GL_AMD_shader_atomic_counter_ops 1 -#endif /* GL_AMD_shader_atomic_counter_ops */ - -#ifndef GL_AMD_shader_stencil_export -#define GL_AMD_shader_stencil_export 1 -#endif /* GL_AMD_shader_stencil_export */ - -#ifndef GL_AMD_shader_trinary_minmax -#define GL_AMD_shader_trinary_minmax 1 -#endif /* GL_AMD_shader_trinary_minmax */ - -#ifndef GL_AMD_sparse_texture -#define GL_AMD_sparse_texture 1 -#define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195 -#define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196 -#define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197 -#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198 -#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199 -#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A -#define GL_MIN_SPARSE_LEVEL_AMD 0x919B -#define GL_MIN_LOD_WARNING_AMD 0x919C -#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001 -typedef void (APIENTRYP PFNGLTEXSTORAGESPARSEAMDPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); -typedef void (APIENTRYP PFNGLTEXTURESTORAGESPARSEAMDPROC) (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexStorageSparseAMD (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); -GLAPI void APIENTRY glTextureStorageSparseAMD (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); -#endif -#endif /* GL_AMD_sparse_texture */ - -#ifndef GL_AMD_stencil_operation_extended -#define GL_AMD_stencil_operation_extended 1 -#define GL_SET_AMD 0x874A -#define GL_REPLACE_VALUE_AMD 0x874B -#define GL_STENCIL_OP_VALUE_AMD 0x874C -#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D -typedef void (APIENTRYP PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilOpValueAMD (GLenum face, GLuint value); -#endif -#endif /* GL_AMD_stencil_operation_extended */ - -#ifndef GL_AMD_texture_texture4 -#define GL_AMD_texture_texture4 1 -#endif /* GL_AMD_texture_texture4 */ - -#ifndef GL_AMD_transform_feedback3_lines_triangles -#define GL_AMD_transform_feedback3_lines_triangles 1 -#endif /* GL_AMD_transform_feedback3_lines_triangles */ - -#ifndef GL_AMD_transform_feedback4 -#define GL_AMD_transform_feedback4 1 -#define GL_STREAM_RASTERIZATION_AMD 0x91A0 -#endif /* GL_AMD_transform_feedback4 */ - -#ifndef GL_AMD_vertex_shader_layer -#define GL_AMD_vertex_shader_layer 1 -#endif /* GL_AMD_vertex_shader_layer */ - -#ifndef GL_AMD_vertex_shader_tessellator -#define GL_AMD_vertex_shader_tessellator 1 -#define GL_SAMPLER_BUFFER_AMD 0x9001 -#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 -#define GL_TESSELLATION_MODE_AMD 0x9004 -#define GL_TESSELLATION_FACTOR_AMD 0x9005 -#define GL_DISCRETE_AMD 0x9006 -#define GL_CONTINUOUS_AMD 0x9007 -typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); -typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTessellationFactorAMD (GLfloat factor); -GLAPI void APIENTRY glTessellationModeAMD (GLenum mode); -#endif -#endif /* GL_AMD_vertex_shader_tessellator */ - -#ifndef GL_AMD_vertex_shader_viewport_index -#define GL_AMD_vertex_shader_viewport_index 1 -#endif /* GL_AMD_vertex_shader_viewport_index */ - -#ifndef GL_APPLE_aux_depth_stencil -#define GL_APPLE_aux_depth_stencil 1 -#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 -#endif /* GL_APPLE_aux_depth_stencil */ - -#ifndef GL_APPLE_client_storage -#define GL_APPLE_client_storage 1 -#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 -#endif /* GL_APPLE_client_storage */ - -#ifndef GL_APPLE_element_array -#define GL_APPLE_element_array 1 -#define GL_ELEMENT_ARRAY_APPLE 0x8A0C -#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D -#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E -typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerAPPLE (GLenum type, const void *pointer); -GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum mode, GLint first, GLsizei count); -GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#endif -#endif /* GL_APPLE_element_array */ - -#ifndef GL_APPLE_fence -#define GL_APPLE_fence 1 -#define GL_DRAW_PIXELS_APPLE 0x8A0A -#define GL_FENCE_APPLE 0x8A0B -typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); -typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); -typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenFencesAPPLE (GLsizei n, GLuint *fences); -GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei n, const GLuint *fences); -GLAPI void APIENTRY glSetFenceAPPLE (GLuint fence); -GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint fence); -GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint fence); -GLAPI void APIENTRY glFinishFenceAPPLE (GLuint fence); -GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum object, GLuint name); -GLAPI void APIENTRY glFinishObjectAPPLE (GLenum object, GLint name); -#endif -#endif /* GL_APPLE_fence */ - -#ifndef GL_APPLE_float_pixels -#define GL_APPLE_float_pixels 1 -#define GL_HALF_APPLE 0x140B -#define GL_RGBA_FLOAT32_APPLE 0x8814 -#define GL_RGB_FLOAT32_APPLE 0x8815 -#define GL_ALPHA_FLOAT32_APPLE 0x8816 -#define GL_INTENSITY_FLOAT32_APPLE 0x8817 -#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 -#define GL_RGBA_FLOAT16_APPLE 0x881A -#define GL_RGB_FLOAT16_APPLE 0x881B -#define GL_ALPHA_FLOAT16_APPLE 0x881C -#define GL_INTENSITY_FLOAT16_APPLE 0x881D -#define GL_LUMINANCE_FLOAT16_APPLE 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F -#define GL_COLOR_FLOAT_APPLE 0x8A0F -#endif /* GL_APPLE_float_pixels */ - -#ifndef GL_APPLE_flush_buffer_range -#define GL_APPLE_flush_buffer_range 1 -#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 -#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 -typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum target, GLintptr offset, GLsizeiptr size); -#endif -#endif /* GL_APPLE_flush_buffer_range */ - -#ifndef GL_APPLE_object_purgeable -#define GL_APPLE_object_purgeable 1 -#define GL_BUFFER_OBJECT_APPLE 0x85B3 -#define GL_RELEASED_APPLE 0x8A19 -#define GL_VOLATILE_APPLE 0x8A1A -#define GL_RETAINED_APPLE 0x8A1B -#define GL_UNDEFINED_APPLE 0x8A1C -#define GL_PURGEABLE_APPLE 0x8A1D -typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); -typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); -GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); -GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params); -#endif -#endif /* GL_APPLE_object_purgeable */ - -#ifndef GL_APPLE_rgb_422 -#define GL_APPLE_rgb_422 1 -#define GL_RGB_422_APPLE 0x8A1F -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#define GL_RGB_RAW_422_APPLE 0x8A51 -#endif /* GL_APPLE_rgb_422 */ - -#ifndef GL_APPLE_row_bytes -#define GL_APPLE_row_bytes 1 -#define GL_PACK_ROW_BYTES_APPLE 0x8A15 -#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 -#endif /* GL_APPLE_row_bytes */ - -#ifndef GL_APPLE_specular_vector -#define GL_APPLE_specular_vector 1 -#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 -#endif /* GL_APPLE_specular_vector */ - -#ifndef GL_APPLE_texture_range -#define GL_APPLE_texture_range 1 -#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 -#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 -#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC -#define GL_STORAGE_PRIVATE_APPLE 0x85BD -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF -typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const void *pointer); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureRangeAPPLE (GLenum target, GLsizei length, const void *pointer); -GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, void **params); -#endif -#endif /* GL_APPLE_texture_range */ - -#ifndef GL_APPLE_transform_hint -#define GL_APPLE_transform_hint 1 -#define GL_TRANSFORM_HINT_APPLE 0x85B1 -#endif /* GL_APPLE_transform_hint */ - -#ifndef GL_APPLE_vertex_array_object -#define GL_APPLE_vertex_array_object 1 -#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint array); -GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei n, const GLuint *arrays); -GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei n, GLuint *arrays); -GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint array); -#endif -#endif /* GL_APPLE_vertex_array_object */ - -#ifndef GL_APPLE_vertex_array_range -#define GL_APPLE_vertex_array_range 1 -#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E -#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F -#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 -#define GL_STORAGE_CLIENT_APPLE 0x85B4 -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); -typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei length, void *pointer); -GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei length, void *pointer); -GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum pname, GLint param); -#endif -#endif /* GL_APPLE_vertex_array_range */ - -#ifndef GL_APPLE_vertex_program_evaluators -#define GL_APPLE_vertex_program_evaluators 1 -#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 -#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 -#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 -#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 -#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 -#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 -#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 -#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 -#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 -#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef GLboolean (APIENTRYP PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glEnableVertexAttribAPPLE (GLuint index, GLenum pname); -GLAPI void APIENTRY glDisableVertexAttribAPPLE (GLuint index, GLenum pname); -GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE (GLuint index, GLenum pname); -GLAPI void APIENTRY glMapVertexAttrib1dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -GLAPI void APIENTRY glMapVertexAttrib1fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -GLAPI void APIENTRY glMapVertexAttrib2dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -GLAPI void APIENTRY glMapVertexAttrib2fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -#endif -#endif /* GL_APPLE_vertex_program_evaluators */ - -#ifndef GL_APPLE_ycbcr_422 -#define GL_APPLE_ycbcr_422 1 -#define GL_YCBCR_422_APPLE 0x85B9 -#endif /* GL_APPLE_ycbcr_422 */ - -#ifndef GL_ATI_draw_buffers -#define GL_ATI_draw_buffers 1 -#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 -#define GL_DRAW_BUFFER0_ATI 0x8825 -#define GL_DRAW_BUFFER1_ATI 0x8826 -#define GL_DRAW_BUFFER2_ATI 0x8827 -#define GL_DRAW_BUFFER3_ATI 0x8828 -#define GL_DRAW_BUFFER4_ATI 0x8829 -#define GL_DRAW_BUFFER5_ATI 0x882A -#define GL_DRAW_BUFFER6_ATI 0x882B -#define GL_DRAW_BUFFER7_ATI 0x882C -#define GL_DRAW_BUFFER8_ATI 0x882D -#define GL_DRAW_BUFFER9_ATI 0x882E -#define GL_DRAW_BUFFER10_ATI 0x882F -#define GL_DRAW_BUFFER11_ATI 0x8830 -#define GL_DRAW_BUFFER12_ATI 0x8831 -#define GL_DRAW_BUFFER13_ATI 0x8832 -#define GL_DRAW_BUFFER14_ATI 0x8833 -#define GL_DRAW_BUFFER15_ATI 0x8834 -typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersATI (GLsizei n, const GLenum *bufs); -#endif -#endif /* GL_ATI_draw_buffers */ - -#ifndef GL_ATI_element_array -#define GL_ATI_element_array 1 -#define GL_ELEMENT_ARRAY_ATI 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A -typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerATI (GLenum type, const void *pointer); -GLAPI void APIENTRY glDrawElementArrayATI (GLenum mode, GLsizei count); -GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum mode, GLuint start, GLuint end, GLsizei count); -#endif -#endif /* GL_ATI_element_array */ - -#ifndef GL_ATI_envmap_bumpmap -#define GL_ATI_envmap_bumpmap 1 -#define GL_BUMP_ROT_MATRIX_ATI 0x8775 -#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 -#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 -#define GL_BUMP_TEX_UNITS_ATI 0x8778 -#define GL_DUDV_ATI 0x8779 -#define GL_DU8DV8_ATI 0x877A -#define GL_BUMP_ENVMAP_ATI 0x877B -#define GL_BUMP_TARGET_ATI 0x877C -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBumpParameterivATI (GLenum pname, const GLint *param); -GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum pname, const GLfloat *param); -GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum pname, GLint *param); -GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param); -#endif -#endif /* GL_ATI_envmap_bumpmap */ - -#ifndef GL_ATI_fragment_shader -#define GL_ATI_fragment_shader 1 -#define GL_FRAGMENT_SHADER_ATI 0x8920 -#define GL_REG_0_ATI 0x8921 -#define GL_REG_1_ATI 0x8922 -#define GL_REG_2_ATI 0x8923 -#define GL_REG_3_ATI 0x8924 -#define GL_REG_4_ATI 0x8925 -#define GL_REG_5_ATI 0x8926 -#define GL_REG_6_ATI 0x8927 -#define GL_REG_7_ATI 0x8928 -#define GL_REG_8_ATI 0x8929 -#define GL_REG_9_ATI 0x892A -#define GL_REG_10_ATI 0x892B -#define GL_REG_11_ATI 0x892C -#define GL_REG_12_ATI 0x892D -#define GL_REG_13_ATI 0x892E -#define GL_REG_14_ATI 0x892F -#define GL_REG_15_ATI 0x8930 -#define GL_REG_16_ATI 0x8931 -#define GL_REG_17_ATI 0x8932 -#define GL_REG_18_ATI 0x8933 -#define GL_REG_19_ATI 0x8934 -#define GL_REG_20_ATI 0x8935 -#define GL_REG_21_ATI 0x8936 -#define GL_REG_22_ATI 0x8937 -#define GL_REG_23_ATI 0x8938 -#define GL_REG_24_ATI 0x8939 -#define GL_REG_25_ATI 0x893A -#define GL_REG_26_ATI 0x893B -#define GL_REG_27_ATI 0x893C -#define GL_REG_28_ATI 0x893D -#define GL_REG_29_ATI 0x893E -#define GL_REG_30_ATI 0x893F -#define GL_REG_31_ATI 0x8940 -#define GL_CON_0_ATI 0x8941 -#define GL_CON_1_ATI 0x8942 -#define GL_CON_2_ATI 0x8943 -#define GL_CON_3_ATI 0x8944 -#define GL_CON_4_ATI 0x8945 -#define GL_CON_5_ATI 0x8946 -#define GL_CON_6_ATI 0x8947 -#define GL_CON_7_ATI 0x8948 -#define GL_CON_8_ATI 0x8949 -#define GL_CON_9_ATI 0x894A -#define GL_CON_10_ATI 0x894B -#define GL_CON_11_ATI 0x894C -#define GL_CON_12_ATI 0x894D -#define GL_CON_13_ATI 0x894E -#define GL_CON_14_ATI 0x894F -#define GL_CON_15_ATI 0x8950 -#define GL_CON_16_ATI 0x8951 -#define GL_CON_17_ATI 0x8952 -#define GL_CON_18_ATI 0x8953 -#define GL_CON_19_ATI 0x8954 -#define GL_CON_20_ATI 0x8955 -#define GL_CON_21_ATI 0x8956 -#define GL_CON_22_ATI 0x8957 -#define GL_CON_23_ATI 0x8958 -#define GL_CON_24_ATI 0x8959 -#define GL_CON_25_ATI 0x895A -#define GL_CON_26_ATI 0x895B -#define GL_CON_27_ATI 0x895C -#define GL_CON_28_ATI 0x895D -#define GL_CON_29_ATI 0x895E -#define GL_CON_30_ATI 0x895F -#define GL_CON_31_ATI 0x8960 -#define GL_MOV_ATI 0x8961 -#define GL_ADD_ATI 0x8963 -#define GL_MUL_ATI 0x8964 -#define GL_SUB_ATI 0x8965 -#define GL_DOT3_ATI 0x8966 -#define GL_DOT4_ATI 0x8967 -#define GL_MAD_ATI 0x8968 -#define GL_LERP_ATI 0x8969 -#define GL_CND_ATI 0x896A -#define GL_CND0_ATI 0x896B -#define GL_DOT2_ADD_ATI 0x896C -#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define GL_NUM_PASSES_ATI 0x8970 -#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define GL_SWIZZLE_STR_ATI 0x8976 -#define GL_SWIZZLE_STQ_ATI 0x8977 -#define GL_SWIZZLE_STR_DR_ATI 0x8978 -#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define GL_SWIZZLE_STRQ_ATI 0x897A -#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B -#define GL_RED_BIT_ATI 0x00000001 -#define GL_GREEN_BIT_ATI 0x00000002 -#define GL_BLUE_BIT_ATI 0x00000004 -#define GL_2X_BIT_ATI 0x00000001 -#define GL_4X_BIT_ATI 0x00000002 -#define GL_8X_BIT_ATI 0x00000004 -#define GL_HALF_BIT_ATI 0x00000008 -#define GL_QUARTER_BIT_ATI 0x00000010 -#define GL_EIGHTH_BIT_ATI 0x00000020 -#define GL_SATURATE_BIT_ATI 0x00000040 -#define GL_COMP_BIT_ATI 0x00000002 -#define GL_NEGATE_BIT_ATI 0x00000004 -#define GL_BIAS_BIT_ATI 0x00000008 -typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); -typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); -typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint range); -GLAPI void APIENTRY glBindFragmentShaderATI (GLuint id); -GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint id); -GLAPI void APIENTRY glBeginFragmentShaderATI (void); -GLAPI void APIENTRY glEndFragmentShaderATI (void); -GLAPI void APIENTRY glPassTexCoordATI (GLuint dst, GLuint coord, GLenum swizzle); -GLAPI void APIENTRY glSampleMapATI (GLuint dst, GLuint interp, GLenum swizzle); -GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint dst, const GLfloat *value); -#endif -#endif /* GL_ATI_fragment_shader */ - -#ifndef GL_ATI_map_object_buffer -#define GL_ATI_map_object_buffer 1 -typedef void *(APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void *APIENTRY glMapObjectBufferATI (GLuint buffer); -GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint buffer); -#endif -#endif /* GL_ATI_map_object_buffer */ - -#ifndef GL_ATI_meminfo -#define GL_ATI_meminfo 1 -#define GL_VBO_FREE_MEMORY_ATI 0x87FB -#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC -#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD -#endif /* GL_ATI_meminfo */ - -#ifndef GL_ATI_pixel_format_float -#define GL_ATI_pixel_format_float 1 -#define GL_RGBA_FLOAT_MODE_ATI 0x8820 -#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 -#endif /* GL_ATI_pixel_format_float */ - -#ifndef GL_ATI_pn_triangles -#define GL_ATI_pn_triangles 1 -#define GL_PN_TRIANGLES_ATI 0x87F0 -#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 -#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 -#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 -#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 -#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 -#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 -#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 -#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 -typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPNTrianglesiATI (GLenum pname, GLint param); -GLAPI void APIENTRY glPNTrianglesfATI (GLenum pname, GLfloat param); -#endif -#endif /* GL_ATI_pn_triangles */ - -#ifndef GL_ATI_separate_stencil -#define GL_ATI_separate_stencil 1 -#define GL_STENCIL_BACK_FUNC_ATI 0x8800 -#define GL_STENCIL_BACK_FAIL_ATI 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#endif -#endif /* GL_ATI_separate_stencil */ - -#ifndef GL_ATI_text_fragment_shader -#define GL_ATI_text_fragment_shader 1 -#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 -#endif /* GL_ATI_text_fragment_shader */ - -#ifndef GL_ATI_texture_env_combine3 -#define GL_ATI_texture_env_combine3 1 -#define GL_MODULATE_ADD_ATI 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 -#define GL_MODULATE_SUBTRACT_ATI 0x8746 -#endif /* GL_ATI_texture_env_combine3 */ - -#ifndef GL_ATI_texture_float -#define GL_ATI_texture_float 1 -#define GL_RGBA_FLOAT32_ATI 0x8814 -#define GL_RGB_FLOAT32_ATI 0x8815 -#define GL_ALPHA_FLOAT32_ATI 0x8816 -#define GL_INTENSITY_FLOAT32_ATI 0x8817 -#define GL_LUMINANCE_FLOAT32_ATI 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 -#define GL_RGBA_FLOAT16_ATI 0x881A -#define GL_RGB_FLOAT16_ATI 0x881B -#define GL_ALPHA_FLOAT16_ATI 0x881C -#define GL_INTENSITY_FLOAT16_ATI 0x881D -#define GL_LUMINANCE_FLOAT16_ATI 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F -#endif /* GL_ATI_texture_float */ - -#ifndef GL_ATI_texture_mirror_once -#define GL_ATI_texture_mirror_once 1 -#define GL_MIRROR_CLAMP_ATI 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 -#endif /* GL_ATI_texture_mirror_once */ - -#ifndef GL_ATI_vertex_array_object -#define GL_ATI_vertex_array_object 1 -#define GL_STATIC_ATI 0x8760 -#define GL_DYNAMIC_ATI 0x8761 -#define GL_PRESERVE_ATI 0x8762 -#define GL_DISCARD_ATI 0x8763 -#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 -typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void *pointer, GLenum usage); -typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei size, const void *pointer, GLenum usage); -GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint buffer); -GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); -GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint buffer, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetObjectBufferivATI (GLuint buffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glFreeObjectBufferATI (GLuint buffer); -GLAPI void APIENTRY glArrayObjectATI (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum array, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetArrayObjectivATI (GLenum array, GLenum pname, GLint *params); -GLAPI void APIENTRY glVariantArrayObjectATI (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint id, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint id, GLenum pname, GLint *params); -#endif -#endif /* GL_ATI_vertex_array_object */ - -#ifndef GL_ATI_vertex_attrib_array_object -#define GL_ATI_vertex_attrib_array_object 1 -typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint index, GLenum pname, GLint *params); -#endif -#endif /* GL_ATI_vertex_attrib_array_object */ - -#ifndef GL_ATI_vertex_streams -#define GL_ATI_vertex_streams 1 -#define GL_MAX_VERTEX_STREAMS_ATI 0x876B -#define GL_VERTEX_STREAM0_ATI 0x876C -#define GL_VERTEX_STREAM1_ATI 0x876D -#define GL_VERTEX_STREAM2_ATI 0x876E -#define GL_VERTEX_STREAM3_ATI 0x876F -#define GL_VERTEX_STREAM4_ATI 0x8770 -#define GL_VERTEX_STREAM5_ATI 0x8771 -#define GL_VERTEX_STREAM6_ATI 0x8772 -#define GL_VERTEX_STREAM7_ATI 0x8773 -#define GL_VERTEX_SOURCE_ATI 0x8774 -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexStream1sATI (GLenum stream, GLshort x); -GLAPI void APIENTRY glVertexStream1svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream1iATI (GLenum stream, GLint x); -GLAPI void APIENTRY glVertexStream1ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream1fATI (GLenum stream, GLfloat x); -GLAPI void APIENTRY glVertexStream1fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream1dATI (GLenum stream, GLdouble x); -GLAPI void APIENTRY glVertexStream1dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream2sATI (GLenum stream, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexStream2svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream2iATI (GLenum stream, GLint x, GLint y); -GLAPI void APIENTRY glVertexStream2ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexStream2fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexStream2dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexStream3svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexStream3ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexStream3fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexStream3dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexStream4svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexStream4ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexStream4fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexStream4dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glNormalStream3bATI (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -GLAPI void APIENTRY glNormalStream3bvATI (GLenum stream, const GLbyte *coords); -GLAPI void APIENTRY glNormalStream3sATI (GLenum stream, GLshort nx, GLshort ny, GLshort nz); -GLAPI void APIENTRY glNormalStream3svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glNormalStream3iATI (GLenum stream, GLint nx, GLint ny, GLint nz); -GLAPI void APIENTRY glNormalStream3ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glNormalStream3fATI (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -GLAPI void APIENTRY glNormalStream3fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glNormalStream3dATI (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -GLAPI void APIENTRY glNormalStream3dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum stream); -GLAPI void APIENTRY glVertexBlendEnviATI (GLenum pname, GLint param); -GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum pname, GLfloat param); -#endif -#endif /* GL_ATI_vertex_streams */ - -#ifndef GL_EXT_422_pixels -#define GL_EXT_422_pixels 1 -#define GL_422_EXT 0x80CC -#define GL_422_REV_EXT 0x80CD -#define GL_422_AVERAGE_EXT 0x80CE -#define GL_422_REV_AVERAGE_EXT 0x80CF -#endif /* GL_EXT_422_pixels */ - -#ifndef GL_EXT_abgr -#define GL_EXT_abgr 1 -#define GL_ABGR_EXT 0x8000 -#endif /* GL_EXT_abgr */ - -#ifndef GL_EXT_bgra -#define GL_EXT_bgra 1 -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 -#endif /* GL_EXT_bgra */ - -#ifndef GL_EXT_bindable_uniform -#define GL_EXT_bindable_uniform 1 -#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 -#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 -#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 -#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED -#define GL_UNIFORM_BUFFER_EXT 0x8DEE -#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF -typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); -typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); -typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformBufferEXT (GLuint program, GLint location, GLuint buffer); -GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint program, GLint location); -GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint program, GLint location); -#endif -#endif /* GL_EXT_bindable_uniform */ - -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 -typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColorEXT (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -#endif -#endif /* GL_EXT_blend_color */ - -#ifndef GL_EXT_blend_equation_separate -#define GL_EXT_blend_equation_separate 1 -#define GL_BLEND_EQUATION_RGB_EXT 0x8009 -#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum modeRGB, GLenum modeAlpha); -#endif -#endif /* GL_EXT_blend_equation_separate */ - -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif -#endif /* GL_EXT_blend_func_separate */ - -#ifndef GL_EXT_blend_logic_op -#define GL_EXT_blend_logic_op 1 -#endif /* GL_EXT_blend_logic_op */ - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_BLEND_EQUATION_EXT 0x8009 -typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationEXT (GLenum mode); -#endif -#endif /* GL_EXT_blend_minmax */ - -#ifndef GL_EXT_blend_subtract -#define GL_EXT_blend_subtract 1 -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B -#endif /* GL_EXT_blend_subtract */ - -#ifndef GL_EXT_clip_volume_hint -#define GL_EXT_clip_volume_hint 1 -#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 -#endif /* GL_EXT_clip_volume_hint */ - -#ifndef GL_EXT_cmyka -#define GL_EXT_cmyka 1 -#define GL_CMYK_EXT 0x800C -#define GL_CMYKA_EXT 0x800D -#define GL_PACK_CMYK_HINT_EXT 0x800E -#define GL_UNPACK_CMYK_HINT_EXT 0x800F -#endif /* GL_EXT_cmyka */ - -#ifndef GL_EXT_color_subtable -#define GL_EXT_color_subtable 1 -typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorSubTableEXT (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#endif -#endif /* GL_EXT_color_subtable */ - -#ifndef GL_EXT_compiled_vertex_array -#define GL_EXT_compiled_vertex_array 1 -#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 -#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 -typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLockArraysEXT (GLint first, GLsizei count); -GLAPI void APIENTRY glUnlockArraysEXT (void); -#endif -#endif /* GL_EXT_compiled_vertex_array */ - -#ifndef GL_EXT_convolution -#define GL_EXT_convolution 1 -#define GL_CONVOLUTION_1D_EXT 0x8010 -#define GL_CONVOLUTION_2D_EXT 0x8011 -#define GL_SEPARABLE_2D_EXT 0x8012 -#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define GL_REDUCE_EXT 0x8016 -#define GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); -GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); -GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum target, GLenum pname, GLfloat params); -GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum target, GLenum pname, GLint params); -GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum target, GLenum format, GLenum type, void *image); -GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); -GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); -#endif -#endif /* GL_EXT_convolution */ - -#ifndef GL_EXT_coordinate_frame -#define GL_EXT_coordinate_frame 1 -#define GL_TANGENT_ARRAY_EXT 0x8439 -#define GL_BINORMAL_ARRAY_EXT 0x843A -#define GL_CURRENT_TANGENT_EXT 0x843B -#define GL_CURRENT_BINORMAL_EXT 0x843C -#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define GL_MAP1_TANGENT_EXT 0x8444 -#define GL_MAP2_TANGENT_EXT 0x8445 -#define GL_MAP1_BINORMAL_EXT 0x8446 -#define GL_MAP2_BINORMAL_EXT 0x8447 -typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); -typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); -typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); -typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); -typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); -typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); -typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); -typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); -typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); -typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); -typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTangent3bEXT (GLbyte tx, GLbyte ty, GLbyte tz); -GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *v); -GLAPI void APIENTRY glTangent3dEXT (GLdouble tx, GLdouble ty, GLdouble tz); -GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *v); -GLAPI void APIENTRY glTangent3fEXT (GLfloat tx, GLfloat ty, GLfloat tz); -GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *v); -GLAPI void APIENTRY glTangent3iEXT (GLint tx, GLint ty, GLint tz); -GLAPI void APIENTRY glTangent3ivEXT (const GLint *v); -GLAPI void APIENTRY glTangent3sEXT (GLshort tx, GLshort ty, GLshort tz); -GLAPI void APIENTRY glTangent3svEXT (const GLshort *v); -GLAPI void APIENTRY glBinormal3bEXT (GLbyte bx, GLbyte by, GLbyte bz); -GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *v); -GLAPI void APIENTRY glBinormal3dEXT (GLdouble bx, GLdouble by, GLdouble bz); -GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *v); -GLAPI void APIENTRY glBinormal3fEXT (GLfloat bx, GLfloat by, GLfloat bz); -GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *v); -GLAPI void APIENTRY glBinormal3iEXT (GLint bx, GLint by, GLint bz); -GLAPI void APIENTRY glBinormal3ivEXT (const GLint *v); -GLAPI void APIENTRY glBinormal3sEXT (GLshort bx, GLshort by, GLshort bz); -GLAPI void APIENTRY glBinormal3svEXT (const GLshort *v); -GLAPI void APIENTRY glTangentPointerEXT (GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glBinormalPointerEXT (GLenum type, GLsizei stride, const void *pointer); -#endif -#endif /* GL_EXT_coordinate_frame */ - -#ifndef GL_EXT_copy_texture -#define GL_EXT_copy_texture 1 -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_EXT_copy_texture */ - -#ifndef GL_EXT_cull_vertex -#define GL_EXT_cull_vertex 1 -#define GL_CULL_VERTEX_EXT 0x81AA -#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB -#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC -typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCullParameterdvEXT (GLenum pname, GLdouble *params); -GLAPI void APIENTRY glCullParameterfvEXT (GLenum pname, GLfloat *params); -#endif -#endif /* GL_EXT_cull_vertex */ - -#ifndef GL_EXT_debug_label -#define GL_EXT_debug_label 1 -#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F -#define GL_PROGRAM_OBJECT_EXT 0x8B40 -#define GL_SHADER_OBJECT_EXT 0x8B48 -#define GL_BUFFER_OBJECT_EXT 0x9151 -#define GL_QUERY_OBJECT_EXT 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 -typedef void (APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); -typedef void (APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); -GLAPI void APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -#endif -#endif /* GL_EXT_debug_label */ - -#ifndef GL_EXT_debug_marker -#define GL_EXT_debug_marker 1 -typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); -GLAPI void APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); -GLAPI void APIENTRY glPopGroupMarkerEXT (void); -#endif -#endif /* GL_EXT_debug_marker */ - -#ifndef GL_EXT_depth_bounds_test -#define GL_EXT_depth_bounds_test 1 -#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 -#define GL_DEPTH_BOUNDS_EXT 0x8891 -typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthBoundsEXT (GLclampd zmin, GLclampd zmax); -#endif -#endif /* GL_EXT_depth_bounds_test */ - -#ifndef GL_EXT_direct_state_access -#define GL_EXT_direct_state_access 1 -#define GL_PROGRAM_MATRIX_EXT 0x8E2D -#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E -#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F -typedef void (APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -typedef void (APIENTRYP PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); -typedef void (APIENTRYP PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data); -typedef void (APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, void **data); -typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); -typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, void *img); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, void *img); -typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); -typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void **params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params); -typedef void (APIENTRYP PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, void **params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void *string); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); -typedef void (APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); -typedef void (APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); -typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); -typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, void **param); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, void **param); -typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); -typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEEXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC) (GLuint vaobj, GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixLoadIdentityEXT (GLenum mode); -GLAPI void APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glMatrixPopEXT (GLenum mode); -GLAPI void APIENTRY glMatrixPushEXT (GLenum mode); -GLAPI void APIENTRY glClientAttribDefaultEXT (GLbitfield mask); -GLAPI void APIENTRY glPushClientAttribDefaultEXT (GLbitfield mask); -GLAPI void APIENTRY glTextureParameterfEXT (GLuint texture, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glTextureParameteriEXT (GLuint texture, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetTextureImageEXT (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -GLAPI void APIENTRY glGetTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTextureLevelParameterfvEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetTextureLevelParameterivEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void APIENTRY glTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glCopyTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glBindMultiTextureEXT (GLenum texunit, GLenum target, GLuint texture); -GLAPI void APIENTRY glMultiTexCoordPointerEXT (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glMultiTexEnvfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexEnviEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexGendEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -GLAPI void APIENTRY glMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); -GLAPI void APIENTRY glMultiTexGenfEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexGeniEXT (GLenum texunit, GLenum coord, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); -GLAPI void APIENTRY glGetMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, GLint *params); -GLAPI void APIENTRY glMultiTexParameteriEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexParameterfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glCopyMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -GLAPI void APIENTRY glGetMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void APIENTRY glMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glEnableClientStateIndexedEXT (GLenum array, GLuint index); -GLAPI void APIENTRY glDisableClientStateIndexedEXT (GLenum array, GLuint index); -GLAPI void APIENTRY glGetFloatIndexedvEXT (GLenum target, GLuint index, GLfloat *data); -GLAPI void APIENTRY glGetDoubleIndexedvEXT (GLenum target, GLuint index, GLdouble *data); -GLAPI void APIENTRY glGetPointerIndexedvEXT (GLenum target, GLuint index, void **data); -GLAPI void APIENTRY glEnableIndexedEXT (GLenum target, GLuint index); -GLAPI void APIENTRY glDisableIndexedEXT (GLenum target, GLuint index); -GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum target, GLuint index); -GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum target, GLuint index, GLint *data); -GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum target, GLuint index, GLboolean *data); -GLAPI void APIENTRY glCompressedTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glGetCompressedTextureImageEXT (GLuint texture, GLenum target, GLint lod, void *img); -GLAPI void APIENTRY glCompressedMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glGetCompressedMultiTexImageEXT (GLenum texunit, GLenum target, GLint lod, void *img); -GLAPI void APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glNamedBufferDataEXT (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); -GLAPI void APIENTRY glNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -GLAPI void *APIENTRY glMapNamedBufferEXT (GLuint buffer, GLenum access); -GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT (GLuint buffer); -GLAPI void APIENTRY glGetNamedBufferParameterivEXT (GLuint buffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetNamedBufferPointervEXT (GLuint buffer, GLenum pname, void **params); -GLAPI void APIENTRY glGetNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); -GLAPI void APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0); -GLAPI void APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0); -GLAPI void APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glTextureBufferEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glMultiTexBufferEXT (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0); -GLAPI void APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT (GLuint program, GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT (GLuint program, GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT (GLuint program, GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT (GLuint program, GLenum target, GLuint index, GLuint *params); -GLAPI void APIENTRY glEnableClientStateiEXT (GLenum array, GLuint index); -GLAPI void APIENTRY glDisableClientStateiEXT (GLenum array, GLuint index); -GLAPI void APIENTRY glGetFloati_vEXT (GLenum pname, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetDoublei_vEXT (GLenum pname, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetPointeri_vEXT (GLenum pname, GLuint index, void **params); -GLAPI void APIENTRY glNamedProgramStringEXT (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); -GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT (GLuint program, GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT (GLuint program, GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT (GLuint program, GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT (GLuint program, GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetNamedProgramivEXT (GLuint program, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetNamedProgramStringEXT (GLuint program, GLenum target, GLenum pname, void *string); -GLAPI void APIENTRY glNamedRenderbufferStorageEXT (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT (GLuint renderbuffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT (GLuint framebuffer, GLenum target); -GLAPI void APIENTRY glNamedFramebufferTexture1DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTexture2DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTexture3DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateTextureMipmapEXT (GLuint texture, GLenum target); -GLAPI void APIENTRY glGenerateMultiTexMipmapEXT (GLenum texunit, GLenum target); -GLAPI void APIENTRY glFramebufferDrawBufferEXT (GLuint framebuffer, GLenum mode); -GLAPI void APIENTRY glFramebufferDrawBuffersEXT (GLuint framebuffer, GLsizei n, const GLenum *bufs); -GLAPI void APIENTRY glFramebufferReadBufferEXT (GLuint framebuffer, GLenum mode); -GLAPI void APIENTRY glGetFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glNamedCopyBufferSubDataEXT (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GLAPI void APIENTRY glNamedFramebufferTextureEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -GLAPI void APIENTRY glTextureRenderbufferEXT (GLuint texture, GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glMultiTexRenderbufferEXT (GLenum texunit, GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glVertexArrayVertexOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayEdgeFlagOffsetEXT (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayIndexOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayNormalOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayMultiTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayFogCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArraySecondaryColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayVertexAttribOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayVertexAttribIOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glEnableVertexArrayEXT (GLuint vaobj, GLenum array); -GLAPI void APIENTRY glDisableVertexArrayEXT (GLuint vaobj, GLenum array); -GLAPI void APIENTRY glEnableVertexArrayAttribEXT (GLuint vaobj, GLuint index); -GLAPI void APIENTRY glDisableVertexArrayAttribEXT (GLuint vaobj, GLuint index); -GLAPI void APIENTRY glGetVertexArrayIntegervEXT (GLuint vaobj, GLenum pname, GLint *param); -GLAPI void APIENTRY glGetVertexArrayPointervEXT (GLuint vaobj, GLenum pname, void **param); -GLAPI void APIENTRY glGetVertexArrayIntegeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, GLint *param); -GLAPI void APIENTRY glGetVertexArrayPointeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, void **param); -GLAPI void *APIENTRY glMapNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -GLAPI void APIENTRY glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length); -GLAPI void APIENTRY glNamedBufferStorageEXT (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); -GLAPI void APIENTRY glClearNamedBufferDataEXT (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glClearNamedBufferSubDataEXT (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glNamedFramebufferParameteriEXT (GLuint framebuffer, GLenum pname, GLint param); -GLAPI void APIENTRY glGetNamedFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x); -GLAPI void APIENTRY glProgramUniform2dEXT (GLuint program, GLint location, GLdouble x, GLdouble y); -GLAPI void APIENTRY glProgramUniform3dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glProgramUniform4dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramUniform1dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform2dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform3dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform4dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glTextureBufferRangeEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GLAPI void APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GLAPI void APIENTRY glTextureStorage2DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTextureStorage3DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glVertexArrayBindVertexBufferEXT (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GLAPI void APIENTRY glVertexArrayVertexAttribFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GLAPI void APIENTRY glVertexArrayVertexAttribIFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GLAPI void APIENTRY glVertexArrayVertexAttribLFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GLAPI void APIENTRY glVertexArrayVertexAttribBindingEXT (GLuint vaobj, GLuint attribindex, GLuint bindingindex); -GLAPI void APIENTRY glVertexArrayVertexBindingDivisorEXT (GLuint vaobj, GLuint bindingindex, GLuint divisor); -GLAPI void APIENTRY glVertexArrayVertexAttribLOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glTexturePageCommitmentEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident); -GLAPI void APIENTRY glVertexArrayVertexAttribDivisorEXT (GLuint vaobj, GLuint index, GLuint divisor); -#endif -#endif /* GL_EXT_direct_state_access */ - -#ifndef GL_EXT_draw_buffers2 -#define GL_EXT_draw_buffers2 1 -typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -#endif -#endif /* GL_EXT_draw_buffers2 */ - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#endif -#endif /* GL_EXT_draw_instanced */ - -#ifndef GL_EXT_draw_range_elements -#define GL_EXT_draw_range_elements 1 -#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -#endif -#endif /* GL_EXT_draw_range_elements */ - -#ifndef GL_EXT_fog_coord -#define GL_EXT_fog_coord 1 -#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define GL_FOG_COORDINATE_EXT 0x8451 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 -#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 -typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogCoordfEXT (GLfloat coord); -GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *coord); -GLAPI void APIENTRY glFogCoorddEXT (GLdouble coord); -GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *coord); -GLAPI void APIENTRY glFogCoordPointerEXT (GLenum type, GLsizei stride, const void *pointer); -#endif -#endif /* GL_EXT_fog_coord */ - -#ifndef GL_EXT_framebuffer_blit -#define GL_EXT_framebuffer_blit 1 -#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif -#endif /* GL_EXT_framebuffer_blit */ - -#ifndef GL_EXT_framebuffer_multisample -#define GL_EXT_framebuffer_multisample 1 -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_EXT_framebuffer_multisample */ - -#ifndef GL_EXT_framebuffer_multisample_blit_scaled -#define GL_EXT_framebuffer_multisample_blit_scaled 1 -#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA -#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB -#endif /* GL_EXT_framebuffer_multisample_blit_scaled */ - -#ifndef GL_EXT_framebuffer_object -#define GL_EXT_framebuffer_object 1 -#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 -#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 -#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 -#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 -#define GL_FRAMEBUFFER_EXT 0x8D40 -#define GL_RENDERBUFFER_EXT 0x8D41 -#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 -#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 -#define GL_STENCIL_INDEX1_EXT 0x8D46 -#define GL_STENCIL_INDEX4_EXT 0x8D47 -#define GL_STENCIL_INDEX8_EXT 0x8D48 -#define GL_STENCIL_INDEX16_EXT 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); -typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint renderbuffer); -GLAPI void APIENTRY glBindRenderbufferEXT (GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei n, const GLuint *renderbuffers); -GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei n, GLuint *renderbuffers); -GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint framebuffer); -GLAPI void APIENTRY glBindFramebufferEXT (GLenum target, GLuint framebuffer); -GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei n, const GLuint *framebuffers); -GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei n, GLuint *framebuffers); -GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum target); -GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateMipmapEXT (GLenum target); -#endif -#endif /* GL_EXT_framebuffer_object */ - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_EXT_framebuffer_sRGB 1 -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA -#endif /* GL_EXT_framebuffer_sRGB */ - -#ifndef GL_EXT_geometry_shader4 -#define GL_EXT_geometry_shader4 1 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE -#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 -#define GL_LINES_ADJACENCY_EXT 0x000A -#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B -#define GL_TRIANGLES_ADJACENCY_EXT 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); -#endif -#endif /* GL_EXT_geometry_shader4 */ - -#ifndef GL_EXT_gpu_program_parameters -#define GL_EXT_gpu_program_parameters 1 -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -#endif -#endif /* GL_EXT_gpu_program_parameters */ - -#ifndef GL_EXT_gpu_shader4 -#define GL_EXT_gpu_shader4 1 -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD -#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 -#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 -#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 -#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 -#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 -#define GL_INT_SAMPLER_1D_EXT 0x8DC9 -#define GL_INT_SAMPLER_2D_EXT 0x8DCA -#define GL_INT_SAMPLER_3D_EXT 0x8DCB -#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC -#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD -#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 -#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905 -typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetUniformuivEXT (GLuint program, GLint location, GLuint *params); -GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint program, const GLchar *name); -GLAPI void APIENTRY glUniform1uiEXT (GLint location, GLuint v0); -GLAPI void APIENTRY glUniform2uiEXT (GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value); -#endif -#endif /* GL_EXT_gpu_shader4 */ - -#ifndef GL_EXT_histogram -#define GL_EXT_histogram 1 -#define GL_HISTOGRAM_EXT 0x8024 -#define GL_PROXY_HISTOGRAM_EXT 0x8025 -#define GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define GL_HISTOGRAM_SINK_EXT 0x802D -#define GL_MINMAX_EXT 0x802E -#define GL_MINMAX_FORMAT_EXT 0x802F -#define GL_MINMAX_SINK_EXT 0x8030 -#define GL_TABLE_TOO_LARGE_EXT 0x8031 -typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetHistogramEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMinmaxEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glHistogramEXT (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glMinmaxEXT (GLenum target, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glResetHistogramEXT (GLenum target); -GLAPI void APIENTRY glResetMinmaxEXT (GLenum target); -#endif -#endif /* GL_EXT_histogram */ - -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 -#define GL_IUI_V2F_EXT 0x81AD -#define GL_IUI_V3F_EXT 0x81AE -#define GL_IUI_N3F_V2F_EXT 0x81AF -#define GL_IUI_N3F_V3F_EXT 0x81B0 -#define GL_T2F_IUI_V2F_EXT 0x81B1 -#define GL_T2F_IUI_V3F_EXT 0x81B2 -#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 -#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 -#endif /* GL_EXT_index_array_formats */ - -#ifndef GL_EXT_index_func -#define GL_EXT_index_func 1 -#define GL_INDEX_TEST_EXT 0x81B5 -#define GL_INDEX_TEST_FUNC_EXT 0x81B6 -#define GL_INDEX_TEST_REF_EXT 0x81B7 -typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexFuncEXT (GLenum func, GLclampf ref); -#endif -#endif /* GL_EXT_index_func */ - -#ifndef GL_EXT_index_material -#define GL_EXT_index_material 1 -#define GL_INDEX_MATERIAL_EXT 0x81B8 -#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 -#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA -typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexMaterialEXT (GLenum face, GLenum mode); -#endif -#endif /* GL_EXT_index_material */ - -#ifndef GL_EXT_index_texture -#define GL_EXT_index_texture 1 -#endif /* GL_EXT_index_texture */ - -#ifndef GL_EXT_light_texture -#define GL_EXT_light_texture 1 -#define GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define GL_FRAGMENT_NORMAL_EXT 0x834A -#define GL_FRAGMENT_COLOR_EXT 0x834C -#define GL_ATTENUATION_EXT 0x834D -#define GL_SHADOW_ATTENUATION_EXT 0x834E -#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define GL_TEXTURE_LIGHT_EXT 0x8350 -#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glApplyTextureEXT (GLenum mode); -GLAPI void APIENTRY glTextureLightEXT (GLenum pname); -GLAPI void APIENTRY glTextureMaterialEXT (GLenum face, GLenum mode); -#endif -#endif /* GL_EXT_light_texture */ - -#ifndef GL_EXT_misc_attribute -#define GL_EXT_misc_attribute 1 -#endif /* GL_EXT_misc_attribute */ - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); -#endif -#endif /* GL_EXT_multi_draw_arrays */ - -#ifndef GL_EXT_multisample -#define GL_EXT_multisample 1 -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define GL_SAMPLE_MASK_EXT 0x80A0 -#define GL_1PASS_EXT 0x80A1 -#define GL_2PASS_0_EXT 0x80A2 -#define GL_2PASS_1_EXT 0x80A3 -#define GL_4PASS_0_EXT 0x80A4 -#define GL_4PASS_1_EXT 0x80A5 -#define GL_4PASS_2_EXT 0x80A6 -#define GL_4PASS_3_EXT 0x80A7 -#define GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define GL_SAMPLES_EXT 0x80A9 -#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define GL_SAMPLE_PATTERN_EXT 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 -typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskEXT (GLclampf value, GLboolean invert); -GLAPI void APIENTRY glSamplePatternEXT (GLenum pattern); -#endif -#endif /* GL_EXT_multisample */ - -#ifndef GL_EXT_packed_depth_stencil -#define GL_EXT_packed_depth_stencil 1 -#define GL_DEPTH_STENCIL_EXT 0x84F9 -#define GL_UNSIGNED_INT_24_8_EXT 0x84FA -#define GL_DEPTH24_STENCIL8_EXT 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 -#endif /* GL_EXT_packed_depth_stencil */ - -#ifndef GL_EXT_packed_float -#define GL_EXT_packed_float 1 -#define GL_R11F_G11F_B10F_EXT 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B -#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C -#endif /* GL_EXT_packed_float */ - -#ifndef GL_EXT_packed_pixels -#define GL_EXT_packed_pixels 1 -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 -#endif /* GL_EXT_packed_pixels */ - -#ifndef GL_EXT_paletted_texture -#define GL_EXT_paletted_texture 1 -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void *data); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableEXT (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table); -GLAPI void APIENTRY glGetColorTableEXT (GLenum target, GLenum format, GLenum type, void *data); -GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -#endif -#endif /* GL_EXT_paletted_texture */ - -#ifndef GL_EXT_pixel_buffer_object -#define GL_EXT_pixel_buffer_object 1 -#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF -#endif /* GL_EXT_pixel_buffer_object */ - -#ifndef GL_EXT_pixel_transform -#define GL_EXT_pixel_transform 1 -#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define GL_CUBIC_EXT 0x8334 -#define GL_AVERAGE_EXT 0x8335 -#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetPixelTransformParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetPixelTransformParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -#endif -#endif /* GL_EXT_pixel_transform */ - -#ifndef GL_EXT_pixel_transform_color_table -#define GL_EXT_pixel_transform_color_table 1 -#endif /* GL_EXT_pixel_transform_color_table */ - -#ifndef GL_EXT_point_parameters -#define GL_EXT_point_parameters 1 -#define GL_POINT_SIZE_MIN_EXT 0x8126 -#define GL_POINT_SIZE_MAX_EXT 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define GL_DISTANCE_ATTENUATION_EXT 0x8129 -typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfEXT (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvEXT (GLenum pname, const GLfloat *params); -#endif -#endif /* GL_EXT_point_parameters */ - -#ifndef GL_EXT_polygon_offset -#define GL_EXT_polygon_offset 1 -#define GL_POLYGON_OFFSET_EXT 0x8037 -#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 -typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat factor, GLfloat bias); -#endif -#endif /* GL_EXT_polygon_offset */ - -#ifndef GL_EXT_provoking_vertex -#define GL_EXT_provoking_vertex 1 -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E -#define GL_PROVOKING_VERTEX_EXT 0x8E4F -typedef void (APIENTRYP PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProvokingVertexEXT (GLenum mode); -#endif -#endif /* GL_EXT_provoking_vertex */ - -#ifndef GL_EXT_rescale_normal -#define GL_EXT_rescale_normal 1 -#define GL_RESCALE_NORMAL_EXT 0x803A -#endif /* GL_EXT_rescale_normal */ - -#ifndef GL_EXT_secondary_color -#define GL_EXT_secondary_color 1 -#define GL_COLOR_SUM_EXT 0x8458 -#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue); -GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *v); -GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue); -GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *v); -GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue); -GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *v); -GLAPI void APIENTRY glSecondaryColor3iEXT (GLint red, GLint green, GLint blue); -GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *v); -GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue); -GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *v); -GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue); -GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *v); -GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue); -GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *v); -GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue); -GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *v); -GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer); -#endif -#endif /* GL_EXT_secondary_color */ - -#ifndef GL_EXT_separate_shader_objects -#define GL_EXT_separate_shader_objects 1 -#define GL_ACTIVE_PROGRAM_EXT 0x8B8D -typedef void (APIENTRYP PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); -typedef void (APIENTRYP PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar *string); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUseShaderProgramEXT (GLenum type, GLuint program); -GLAPI void APIENTRY glActiveProgramEXT (GLuint program); -GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *string); -#endif -#endif /* GL_EXT_separate_shader_objects */ - -#ifndef GL_EXT_separate_specular_color -#define GL_EXT_separate_specular_color 1 -#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define GL_SINGLE_COLOR_EXT 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA -#endif /* GL_EXT_separate_specular_color */ - -#ifndef GL_EXT_shader_image_load_formatted -#define GL_EXT_shader_image_load_formatted 1 -#endif /* GL_EXT_shader_image_load_formatted */ - -#ifndef GL_EXT_shader_image_load_store -#define GL_EXT_shader_image_load_store 1 -#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 -#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A -#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B -#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C -#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D -#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E -#define GL_IMAGE_1D_EXT 0x904C -#define GL_IMAGE_2D_EXT 0x904D -#define GL_IMAGE_3D_EXT 0x904E -#define GL_IMAGE_2D_RECT_EXT 0x904F -#define GL_IMAGE_CUBE_EXT 0x9050 -#define GL_IMAGE_BUFFER_EXT 0x9051 -#define GL_IMAGE_1D_ARRAY_EXT 0x9052 -#define GL_IMAGE_2D_ARRAY_EXT 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 -#define GL_INT_IMAGE_1D_EXT 0x9057 -#define GL_INT_IMAGE_2D_EXT 0x9058 -#define GL_INT_IMAGE_3D_EXT 0x9059 -#define GL_INT_IMAGE_2D_RECT_EXT 0x905A -#define GL_INT_IMAGE_CUBE_EXT 0x905B -#define GL_INT_IMAGE_BUFFER_EXT 0x905C -#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D -#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C -#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D -#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 -#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 -#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF -typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -typedef void (APIENTRYP PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindImageTextureEXT (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -GLAPI void APIENTRY glMemoryBarrierEXT (GLbitfield barriers); -#endif -#endif /* GL_EXT_shader_image_load_store */ - -#ifndef GL_EXT_shader_integer_mix -#define GL_EXT_shader_integer_mix 1 -#endif /* GL_EXT_shader_integer_mix */ - -#ifndef GL_EXT_shadow_funcs -#define GL_EXT_shadow_funcs 1 -#endif /* GL_EXT_shadow_funcs */ - -#ifndef GL_EXT_shared_texture_palette -#define GL_EXT_shared_texture_palette 1 -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB -#endif /* GL_EXT_shared_texture_palette */ - -#ifndef GL_EXT_stencil_clear_tag -#define GL_EXT_stencil_clear_tag 1 -#define GL_STENCIL_TAG_BITS_EXT 0x88F2 -#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 -typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilClearTagEXT (GLsizei stencilTagBits, GLuint stencilClearTag); -#endif -#endif /* GL_EXT_stencil_clear_tag */ - -#ifndef GL_EXT_stencil_two_side -#define GL_EXT_stencil_two_side 1 -#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 -#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 -typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum face); -#endif -#endif /* GL_EXT_stencil_two_side */ - -#ifndef GL_EXT_stencil_wrap -#define GL_EXT_stencil_wrap 1 -#define GL_INCR_WRAP_EXT 0x8507 -#define GL_DECR_WRAP_EXT 0x8508 -#endif /* GL_EXT_stencil_wrap */ - -#ifndef GL_EXT_subtexture -#define GL_EXT_subtexture 1 -typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -#endif -#endif /* GL_EXT_subtexture */ - -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 -#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 -#endif /* GL_EXT_texture */ - -#ifndef GL_EXT_texture3D -#define GL_EXT_texture3D 1 -#define GL_PACK_SKIP_IMAGES_EXT 0x806B -#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_TEXTURE_DEPTH_EXT 0x8071 -#define GL_TEXTURE_WRAP_R_EXT 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 -typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage3DEXT (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -#endif -#endif /* GL_EXT_texture3D */ - -#ifndef GL_EXT_texture_array -#define GL_EXT_texture_array 1 -#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 -#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D -#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF -#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E -#endif /* GL_EXT_texture_array */ - -#ifndef GL_EXT_texture_buffer_object -#define GL_EXT_texture_buffer_object 1 -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E -typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer); -#endif -#endif /* GL_EXT_texture_buffer_object */ - -#ifndef GL_EXT_texture_compression_latc -#define GL_EXT_texture_compression_latc 1 -#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 -#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 -#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 -#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 -#endif /* GL_EXT_texture_compression_latc */ - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_EXT_texture_compression_rgtc 1 -#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC -#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD -#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE -#endif /* GL_EXT_texture_compression_rgtc */ - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_EXT_texture_compression_s3tc 1 -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif /* GL_EXT_texture_compression_s3tc */ - -#ifndef GL_EXT_texture_cube_map -#define GL_EXT_texture_cube_map 1 -#define GL_NORMAL_MAP_EXT 0x8511 -#define GL_REFLECTION_MAP_EXT 0x8512 -#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C -#endif /* GL_EXT_texture_cube_map */ - -#ifndef GL_EXT_texture_env_add -#define GL_EXT_texture_env_add 1 -#endif /* GL_EXT_texture_env_add */ - -#ifndef GL_EXT_texture_env_combine -#define GL_EXT_texture_env_combine 1 -#define GL_COMBINE_EXT 0x8570 -#define GL_COMBINE_RGB_EXT 0x8571 -#define GL_COMBINE_ALPHA_EXT 0x8572 -#define GL_RGB_SCALE_EXT 0x8573 -#define GL_ADD_SIGNED_EXT 0x8574 -#define GL_INTERPOLATE_EXT 0x8575 -#define GL_CONSTANT_EXT 0x8576 -#define GL_PRIMARY_COLOR_EXT 0x8577 -#define GL_PREVIOUS_EXT 0x8578 -#define GL_SOURCE0_RGB_EXT 0x8580 -#define GL_SOURCE1_RGB_EXT 0x8581 -#define GL_SOURCE2_RGB_EXT 0x8582 -#define GL_SOURCE0_ALPHA_EXT 0x8588 -#define GL_SOURCE1_ALPHA_EXT 0x8589 -#define GL_SOURCE2_ALPHA_EXT 0x858A -#define GL_OPERAND0_RGB_EXT 0x8590 -#define GL_OPERAND1_RGB_EXT 0x8591 -#define GL_OPERAND2_RGB_EXT 0x8592 -#define GL_OPERAND0_ALPHA_EXT 0x8598 -#define GL_OPERAND1_ALPHA_EXT 0x8599 -#define GL_OPERAND2_ALPHA_EXT 0x859A -#endif /* GL_EXT_texture_env_combine */ - -#ifndef GL_EXT_texture_env_dot3 -#define GL_EXT_texture_env_dot3 1 -#define GL_DOT3_RGB_EXT 0x8740 -#define GL_DOT3_RGBA_EXT 0x8741 -#endif /* GL_EXT_texture_env_dot3 */ - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif /* GL_EXT_texture_filter_anisotropic */ - -#ifndef GL_EXT_texture_integer -#define GL_EXT_texture_integer 1 -#define GL_RGBA32UI_EXT 0x8D70 -#define GL_RGB32UI_EXT 0x8D71 -#define GL_ALPHA32UI_EXT 0x8D72 -#define GL_INTENSITY32UI_EXT 0x8D73 -#define GL_LUMINANCE32UI_EXT 0x8D74 -#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 -#define GL_RGBA16UI_EXT 0x8D76 -#define GL_RGB16UI_EXT 0x8D77 -#define GL_ALPHA16UI_EXT 0x8D78 -#define GL_INTENSITY16UI_EXT 0x8D79 -#define GL_LUMINANCE16UI_EXT 0x8D7A -#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B -#define GL_RGBA8UI_EXT 0x8D7C -#define GL_RGB8UI_EXT 0x8D7D -#define GL_ALPHA8UI_EXT 0x8D7E -#define GL_INTENSITY8UI_EXT 0x8D7F -#define GL_LUMINANCE8UI_EXT 0x8D80 -#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 -#define GL_RGBA32I_EXT 0x8D82 -#define GL_RGB32I_EXT 0x8D83 -#define GL_ALPHA32I_EXT 0x8D84 -#define GL_INTENSITY32I_EXT 0x8D85 -#define GL_LUMINANCE32I_EXT 0x8D86 -#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 -#define GL_RGBA16I_EXT 0x8D88 -#define GL_RGB16I_EXT 0x8D89 -#define GL_ALPHA16I_EXT 0x8D8A -#define GL_INTENSITY16I_EXT 0x8D8B -#define GL_LUMINANCE16I_EXT 0x8D8C -#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D -#define GL_RGBA8I_EXT 0x8D8E -#define GL_RGB8I_EXT 0x8D8F -#define GL_ALPHA8I_EXT 0x8D90 -#define GL_INTENSITY8I_EXT 0x8D91 -#define GL_LUMINANCE8I_EXT 0x8D92 -#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 -#define GL_RED_INTEGER_EXT 0x8D94 -#define GL_GREEN_INTEGER_EXT 0x8D95 -#define GL_BLUE_INTEGER_EXT 0x8D96 -#define GL_ALPHA_INTEGER_EXT 0x8D97 -#define GL_RGB_INTEGER_EXT 0x8D98 -#define GL_RGBA_INTEGER_EXT 0x8D99 -#define GL_BGR_INTEGER_EXT 0x8D9A -#define GL_BGRA_INTEGER_EXT 0x8D9B -#define GL_LUMINANCE_INTEGER_EXT 0x8D9C -#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D -#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E -typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); -typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha); -GLAPI void APIENTRY glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha); -#endif -#endif /* GL_EXT_texture_integer */ - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 -#endif /* GL_EXT_texture_lod_bias */ - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_EXT_texture_mirror_clamp 1 -#define GL_MIRROR_CLAMP_EXT 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 -#endif /* GL_EXT_texture_mirror_clamp */ - -#ifndef GL_EXT_texture_object -#define GL_EXT_texture_object 1 -#define GL_TEXTURE_PRIORITY_EXT 0x8066 -#define GL_TEXTURE_RESIDENT_EXT 0x8067 -#define GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define GL_TEXTURE_3D_BINDING_EXT 0x806A -typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); -typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); -typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); -typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei n, const GLuint *textures, GLboolean *residences); -GLAPI void APIENTRY glBindTextureEXT (GLenum target, GLuint texture); -GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei n, const GLuint *textures); -GLAPI void APIENTRY glGenTexturesEXT (GLsizei n, GLuint *textures); -GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint texture); -GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei n, const GLuint *textures, const GLclampf *priorities); -#endif -#endif /* GL_EXT_texture_object */ - -#ifndef GL_EXT_texture_perturb_normal -#define GL_EXT_texture_perturb_normal 1 -#define GL_PERTURB_EXT 0x85AE -#define GL_TEXTURE_NORMAL_EXT 0x85AF -typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureNormalEXT (GLenum mode); -#endif -#endif /* GL_EXT_texture_perturb_normal */ - -#ifndef GL_EXT_texture_sRGB -#define GL_EXT_texture_sRGB 1 -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB8_EXT 0x8C41 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 -#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 -#define GL_SLUMINANCE_EXT 0x8C46 -#define GL_SLUMINANCE8_EXT 0x8C47 -#define GL_COMPRESSED_SRGB_EXT 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 -#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#endif /* GL_EXT_texture_sRGB */ - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_EXT_texture_sRGB_decode 1 -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A -#endif /* GL_EXT_texture_sRGB_decode */ - -#ifndef GL_EXT_texture_shared_exponent -#define GL_EXT_texture_shared_exponent 1 -#define GL_RGB9_E5_EXT 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E -#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F -#endif /* GL_EXT_texture_shared_exponent */ - -#ifndef GL_EXT_texture_snorm -#define GL_EXT_texture_snorm 1 -#define GL_ALPHA_SNORM 0x9010 -#define GL_LUMINANCE_SNORM 0x9011 -#define GL_LUMINANCE_ALPHA_SNORM 0x9012 -#define GL_INTENSITY_SNORM 0x9013 -#define GL_ALPHA8_SNORM 0x9014 -#define GL_LUMINANCE8_SNORM 0x9015 -#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 -#define GL_INTENSITY8_SNORM 0x9017 -#define GL_ALPHA16_SNORM 0x9018 -#define GL_LUMINANCE16_SNORM 0x9019 -#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A -#define GL_INTENSITY16_SNORM 0x901B -#define GL_RED_SNORM 0x8F90 -#define GL_RG_SNORM 0x8F91 -#define GL_RGB_SNORM 0x8F92 -#define GL_RGBA_SNORM 0x8F93 -#endif /* GL_EXT_texture_snorm */ - -#ifndef GL_EXT_texture_swizzle -#define GL_EXT_texture_swizzle 1 -#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 -#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 -#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 -#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 -#endif /* GL_EXT_texture_swizzle */ - -#ifndef GL_EXT_timer_query -#define GL_EXT_timer_query 1 -#define GL_TIME_ELAPSED_EXT 0x88BF -typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params); -#endif -#endif /* GL_EXT_timer_query */ - -#ifndef GL_EXT_transform_feedback -#define GL_EXT_transform_feedback 1 -#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F -#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C -#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 -#define GL_RASTERIZER_DISCARD_EXT 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackEXT (GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedbackEXT (void); -GLAPI void APIENTRY glBindBufferRangeEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -GLAPI void APIENTRY glBindBufferBaseEXT (GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -#endif -#endif /* GL_EXT_transform_feedback */ - -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); -typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, void **params); -typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glArrayElementEXT (GLint i); -GLAPI void APIENTRY glColorPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -GLAPI void APIENTRY glDrawArraysEXT (GLenum mode, GLint first, GLsizei count); -GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei stride, GLsizei count, const GLboolean *pointer); -GLAPI void APIENTRY glGetPointervEXT (GLenum pname, void **params); -GLAPI void APIENTRY glIndexPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer); -GLAPI void APIENTRY glNormalPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer); -GLAPI void APIENTRY glTexCoordPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -GLAPI void APIENTRY glVertexPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -#endif -#endif /* GL_EXT_vertex_array */ - -#ifndef GL_EXT_vertex_array_bgra -#define GL_EXT_vertex_array_bgra 1 -#endif /* GL_EXT_vertex_array_bgra */ - -#ifndef GL_EXT_vertex_attrib_64bit -#define GL_EXT_vertex_attrib_64bit 1 -#define GL_DOUBLE_VEC2_EXT 0x8FFC -#define GL_DOUBLE_VEC3_EXT 0x8FFD -#define GL_DOUBLE_VEC4_EXT 0x8FFE -#define GL_DOUBLE_MAT2_EXT 0x8F46 -#define GL_DOUBLE_MAT3_EXT 0x8F47 -#define GL_DOUBLE_MAT4_EXT 0x8F48 -#define GL_DOUBLE_MAT2x3_EXT 0x8F49 -#define GL_DOUBLE_MAT2x4_EXT 0x8F4A -#define GL_DOUBLE_MAT3x2_EXT 0x8F4B -#define GL_DOUBLE_MAT3x4_EXT 0x8F4C -#define GL_DOUBLE_MAT4x2_EXT 0x8F4D -#define GL_DOUBLE_MAT4x3_EXT 0x8F4E -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1dEXT (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttribL2dEXT (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttribL3dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttribL4dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttribL1dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL2dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL3dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL4dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribLPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glGetVertexAttribLdvEXT (GLuint index, GLenum pname, GLdouble *params); -#endif -#endif /* GL_EXT_vertex_attrib_64bit */ - -#ifndef GL_EXT_vertex_shader -#define GL_EXT_vertex_shader 1 -#define GL_VERTEX_SHADER_EXT 0x8780 -#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define GL_OP_INDEX_EXT 0x8782 -#define GL_OP_NEGATE_EXT 0x8783 -#define GL_OP_DOT3_EXT 0x8784 -#define GL_OP_DOT4_EXT 0x8785 -#define GL_OP_MUL_EXT 0x8786 -#define GL_OP_ADD_EXT 0x8787 -#define GL_OP_MADD_EXT 0x8788 -#define GL_OP_FRAC_EXT 0x8789 -#define GL_OP_MAX_EXT 0x878A -#define GL_OP_MIN_EXT 0x878B -#define GL_OP_SET_GE_EXT 0x878C -#define GL_OP_SET_LT_EXT 0x878D -#define GL_OP_CLAMP_EXT 0x878E -#define GL_OP_FLOOR_EXT 0x878F -#define GL_OP_ROUND_EXT 0x8790 -#define GL_OP_EXP_BASE_2_EXT 0x8791 -#define GL_OP_LOG_BASE_2_EXT 0x8792 -#define GL_OP_POWER_EXT 0x8793 -#define GL_OP_RECIP_EXT 0x8794 -#define GL_OP_RECIP_SQRT_EXT 0x8795 -#define GL_OP_SUB_EXT 0x8796 -#define GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define GL_OP_MOV_EXT 0x8799 -#define GL_OUTPUT_VERTEX_EXT 0x879A -#define GL_OUTPUT_COLOR0_EXT 0x879B -#define GL_OUTPUT_COLOR1_EXT 0x879C -#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define GL_OUTPUT_FOG_EXT 0x87BD -#define GL_SCALAR_EXT 0x87BE -#define GL_VECTOR_EXT 0x87BF -#define GL_MATRIX_EXT 0x87C0 -#define GL_VARIANT_EXT 0x87C1 -#define GL_INVARIANT_EXT 0x87C2 -#define GL_LOCAL_CONSTANT_EXT 0x87C3 -#define GL_LOCAL_EXT 0x87C4 -#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define GL_X_EXT 0x87D5 -#define GL_Y_EXT 0x87D6 -#define GL_Z_EXT 0x87D7 -#define GL_W_EXT 0x87D8 -#define GL_NEGATIVE_X_EXT 0x87D9 -#define GL_NEGATIVE_Y_EXT 0x87DA -#define GL_NEGATIVE_Z_EXT 0x87DB -#define GL_NEGATIVE_W_EXT 0x87DC -#define GL_ZERO_EXT 0x87DD -#define GL_ONE_EXT 0x87DE -#define GL_NEGATIVE_ONE_EXT 0x87DF -#define GL_NORMALIZED_RANGE_EXT 0x87E0 -#define GL_FULL_RANGE_EXT 0x87E1 -#define GL_CURRENT_VERTEX_EXT 0x87E2 -#define GL_MVP_MATRIX_EXT 0x87E3 -#define GL_VARIANT_VALUE_EXT 0x87E4 -#define GL_VARIANT_DATATYPE_EXT 0x87E5 -#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define GL_VARIANT_ARRAY_EXT 0x87E8 -#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define GL_INVARIANT_VALUE_EXT 0x87EA -#define GL_INVARIANT_DATATYPE_EXT 0x87EB -#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED -typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); -typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); -typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const void *addr); -typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const void *addr); -typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); -typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); -typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); -typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); -typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); -typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); -typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); -typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); -typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const void *addr); -typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); -typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); -typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, void **data); -typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVertexShaderEXT (void); -GLAPI void APIENTRY glEndVertexShaderEXT (void); -GLAPI void APIENTRY glBindVertexShaderEXT (GLuint id); -GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint range); -GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint id); -GLAPI void APIENTRY glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1); -GLAPI void APIENTRY glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -GLAPI void APIENTRY glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -GLAPI void APIENTRY glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -GLAPI void APIENTRY glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -GLAPI void APIENTRY glInsertComponentEXT (GLuint res, GLuint src, GLuint num); -GLAPI void APIENTRY glExtractComponentEXT (GLuint res, GLuint src, GLuint num); -GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -GLAPI void APIENTRY glSetInvariantEXT (GLuint id, GLenum type, const void *addr); -GLAPI void APIENTRY glSetLocalConstantEXT (GLuint id, GLenum type, const void *addr); -GLAPI void APIENTRY glVariantbvEXT (GLuint id, const GLbyte *addr); -GLAPI void APIENTRY glVariantsvEXT (GLuint id, const GLshort *addr); -GLAPI void APIENTRY glVariantivEXT (GLuint id, const GLint *addr); -GLAPI void APIENTRY glVariantfvEXT (GLuint id, const GLfloat *addr); -GLAPI void APIENTRY glVariantdvEXT (GLuint id, const GLdouble *addr); -GLAPI void APIENTRY glVariantubvEXT (GLuint id, const GLubyte *addr); -GLAPI void APIENTRY glVariantusvEXT (GLuint id, const GLushort *addr); -GLAPI void APIENTRY glVariantuivEXT (GLuint id, const GLuint *addr); -GLAPI void APIENTRY glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, const void *addr); -GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint id); -GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint id); -GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum light, GLenum value); -GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum face, GLenum value); -GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value); -GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum unit, GLenum value); -GLAPI GLuint APIENTRY glBindParameterEXT (GLenum value); -GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint id, GLenum cap); -GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); -GLAPI void APIENTRY glGetVariantPointervEXT (GLuint id, GLenum value, void **data); -GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); -GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data); -#endif -#endif /* GL_EXT_vertex_shader */ - -#ifndef GL_EXT_vertex_weighting -#define GL_EXT_vertex_weighting 1 -#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 -#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6 -#define GL_MODELVIEW1_MATRIX_EXT 0x8506 -#define GL_VERTEX_WEIGHTING_EXT 0x8509 -#define GL_MODELVIEW0_EXT 0x1700 -#define GL_MODELVIEW1_EXT 0x850A -#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexWeightfEXT (GLfloat weight); -GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *weight); -GLAPI void APIENTRY glVertexWeightPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer); -#endif -#endif /* GL_EXT_vertex_weighting */ - -#ifndef GL_EXT_x11_sync_object -#define GL_EXT_x11_sync_object 1 -#define GL_SYNC_X11_FENCE_EXT 0x90E1 -typedef GLsync (APIENTRYP PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); -#endif -#endif /* GL_EXT_x11_sync_object */ - -#ifndef GL_GREMEDY_frame_terminator -#define GL_GREMEDY_frame_terminator 1 -typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameTerminatorGREMEDY (void); -#endif -#endif /* GL_GREMEDY_frame_terminator */ - -#ifndef GL_GREMEDY_string_marker -#define GL_GREMEDY_string_marker 1 -typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void *string); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei len, const void *string); -#endif -#endif /* GL_GREMEDY_string_marker */ - -#ifndef GL_HP_convolution_border_modes -#define GL_HP_convolution_border_modes 1 -#define GL_IGNORE_BORDER_HP 0x8150 -#define GL_CONSTANT_BORDER_HP 0x8151 -#define GL_REPLICATE_BORDER_HP 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 -#endif /* GL_HP_convolution_border_modes */ - -#ifndef GL_HP_image_transform -#define GL_HP_image_transform 1 -#define GL_IMAGE_SCALE_X_HP 0x8155 -#define GL_IMAGE_SCALE_Y_HP 0x8156 -#define GL_IMAGE_TRANSLATE_X_HP 0x8157 -#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 -#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 -#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A -#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B -#define GL_IMAGE_MAG_FILTER_HP 0x815C -#define GL_IMAGE_MIN_FILTER_HP 0x815D -#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E -#define GL_CUBIC_HP 0x815F -#define GL_AVERAGE_HP 0x8160 -#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 -#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 -#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glImageTransformParameteriHP (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glImageTransformParameterfHP (GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glImageTransformParameterivHP (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum target, GLenum pname, GLfloat *params); -#endif -#endif /* GL_HP_image_transform */ - -#ifndef GL_HP_occlusion_test -#define GL_HP_occlusion_test 1 -#define GL_OCCLUSION_TEST_HP 0x8165 -#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 -#endif /* GL_HP_occlusion_test */ - -#ifndef GL_HP_texture_lighting -#define GL_HP_texture_lighting 1 -#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 -#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 -#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 -#endif /* GL_HP_texture_lighting */ - -#ifndef GL_IBM_cull_vertex -#define GL_IBM_cull_vertex 1 -#define GL_CULL_VERTEX_IBM 103050 -#endif /* GL_IBM_cull_vertex */ - -#ifndef GL_IBM_multimode_draw_arrays -#define GL_IBM_multimode_draw_arrays 1 -typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride); -#endif -#endif /* GL_IBM_multimode_draw_arrays */ - -#ifndef GL_IBM_rasterpos_clip -#define GL_IBM_rasterpos_clip 1 -#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 -#endif /* GL_IBM_rasterpos_clip */ - -#ifndef GL_IBM_static_data -#define GL_IBM_static_data 1 -#define GL_ALL_STATIC_DATA_IBM 103060 -#define GL_STATIC_VERTEX_ARRAY_IBM 103061 -typedef void (APIENTRYP PFNGLFLUSHSTATICDATAIBMPROC) (GLenum target); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushStaticDataIBM (GLenum target); -#endif -#endif /* GL_IBM_static_data */ - -#ifndef GL_IBM_texture_mirrored_repeat -#define GL_IBM_texture_mirrored_repeat 1 -#define GL_MIRRORED_REPEAT_IBM 0x8370 -#endif /* GL_IBM_texture_mirrored_repeat */ - -#ifndef GL_IBM_vertex_array_lists -#define GL_IBM_vertex_array_lists 1 -#define GL_VERTEX_ARRAY_LIST_IBM 103070 -#define GL_NORMAL_ARRAY_LIST_IBM 103071 -#define GL_COLOR_ARRAY_LIST_IBM 103072 -#define GL_INDEX_ARRAY_LIST_IBM 103073 -#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 -typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint stride, const GLboolean **pointer, GLint ptrstride); -GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); -GLAPI void APIENTRY glIndexPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); -GLAPI void APIENTRY glNormalPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); -GLAPI void APIENTRY glTexCoordPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -GLAPI void APIENTRY glVertexPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -#endif -#endif /* GL_IBM_vertex_array_lists */ - -#ifndef GL_INGR_blend_func_separate -#define GL_INGR_blend_func_separate 1 -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif -#endif /* GL_INGR_blend_func_separate */ - -#ifndef GL_INGR_color_clamp -#define GL_INGR_color_clamp 1 -#define GL_RED_MIN_CLAMP_INGR 0x8560 -#define GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define GL_RED_MAX_CLAMP_INGR 0x8564 -#define GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 -#endif /* GL_INGR_color_clamp */ - -#ifndef GL_INGR_interlace_read -#define GL_INGR_interlace_read 1 -#define GL_INTERLACE_READ_INGR 0x8568 -#endif /* GL_INGR_interlace_read */ - -#ifndef GL_INTEL_fragment_shader_ordering -#define GL_INTEL_fragment_shader_ordering 1 -#endif /* GL_INTEL_fragment_shader_ordering */ - -#ifndef GL_INTEL_map_texture -#define GL_INTEL_map_texture 1 -#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF -#define GL_LAYOUT_DEFAULT_INTEL 0 -#define GL_LAYOUT_LINEAR_INTEL 1 -#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2 -typedef void (APIENTRYP PFNGLSYNCTEXTUREINTELPROC) (GLuint texture); -typedef void (APIENTRYP PFNGLUNMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level); -typedef void *(APIENTRYP PFNGLMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSyncTextureINTEL (GLuint texture); -GLAPI void APIENTRY glUnmapTexture2DINTEL (GLuint texture, GLint level); -GLAPI void *APIENTRY glMapTexture2DINTEL (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout); -#endif -#endif /* GL_INTEL_map_texture */ - -#ifndef GL_INTEL_parallel_arrays -#define GL_INTEL_parallel_arrays 1 -#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 -typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void **pointer); -typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexPointervINTEL (GLint size, GLenum type, const void **pointer); -GLAPI void APIENTRY glNormalPointervINTEL (GLenum type, const void **pointer); -GLAPI void APIENTRY glColorPointervINTEL (GLint size, GLenum type, const void **pointer); -GLAPI void APIENTRY glTexCoordPointervINTEL (GLint size, GLenum type, const void **pointer); -#endif -#endif /* GL_INTEL_parallel_arrays */ - -#ifndef GL_INTEL_performance_query -#define GL_INTEL_performance_query 1 -#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000 -#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001 -#define GL_PERFQUERY_WAIT_INTEL 0x83FB -#define GL_PERFQUERY_FLUSH_INTEL 0x83FA -#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 -#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 -#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 -#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 -#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 -#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 -#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 -#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 -#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 -#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA -#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB -#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC -#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD -#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE -#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF -#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 -typedef void (APIENTRYP PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (APIENTRYP PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint *queryHandle); -typedef void (APIENTRYP PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId); -typedef void (APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId); -typedef void (APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); -typedef void (APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten); -typedef void (APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId); -typedef void (APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginPerfQueryINTEL (GLuint queryHandle); -GLAPI void APIENTRY glCreatePerfQueryINTEL (GLuint queryId, GLuint *queryHandle); -GLAPI void APIENTRY glDeletePerfQueryINTEL (GLuint queryHandle); -GLAPI void APIENTRY glEndPerfQueryINTEL (GLuint queryHandle); -GLAPI void APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId); -GLAPI void APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId); -GLAPI void APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); -GLAPI void APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten); -GLAPI void APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId); -GLAPI void APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); -#endif -#endif /* GL_INTEL_performance_query */ - -#ifndef GL_MESAX_texture_stack -#define GL_MESAX_texture_stack 1 -#define GL_TEXTURE_1D_STACK_MESAX 0x8759 -#define GL_TEXTURE_2D_STACK_MESAX 0x875A -#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B -#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C -#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D -#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E -#endif /* GL_MESAX_texture_stack */ - -#ifndef GL_MESA_pack_invert -#define GL_MESA_pack_invert 1 -#define GL_PACK_INVERT_MESA 0x8758 -#endif /* GL_MESA_pack_invert */ - -#ifndef GL_MESA_resize_buffers -#define GL_MESA_resize_buffers 1 -typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glResizeBuffersMESA (void); -#endif -#endif /* GL_MESA_resize_buffers */ - -#ifndef GL_MESA_window_pos -#define GL_MESA_window_pos 1 -typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dMESA (GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *v); -GLAPI void APIENTRY glWindowPos2fMESA (GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *v); -GLAPI void APIENTRY glWindowPos2iMESA (GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *v); -GLAPI void APIENTRY glWindowPos2sMESA (GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *v); -GLAPI void APIENTRY glWindowPos3dMESA (GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *v); -GLAPI void APIENTRY glWindowPos3fMESA (GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *v); -GLAPI void APIENTRY glWindowPos3iMESA (GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *v); -GLAPI void APIENTRY glWindowPos3sMESA (GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *v); -GLAPI void APIENTRY glWindowPos4dMESA (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *v); -GLAPI void APIENTRY glWindowPos4fMESA (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *v); -GLAPI void APIENTRY glWindowPos4iMESA (GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *v); -GLAPI void APIENTRY glWindowPos4sMESA (GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *v); -#endif -#endif /* GL_MESA_window_pos */ - -#ifndef GL_MESA_ycbcr_texture -#define GL_MESA_ycbcr_texture 1 -#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB -#define GL_YCBCR_MESA 0x8757 -#endif /* GL_MESA_ycbcr_texture */ - -#ifndef GL_NVX_conditional_render -#define GL_NVX_conditional_render 1 -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVXPROC) (GLuint id); -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVXPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginConditionalRenderNVX (GLuint id); -GLAPI void APIENTRY glEndConditionalRenderNVX (void); -#endif -#endif /* GL_NVX_conditional_render */ - -#ifndef GL_NVX_gpu_memory_info -#define GL_NVX_gpu_memory_info 1 -#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 -#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 -#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 -#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A -#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B -#endif /* GL_NVX_gpu_memory_info */ - -#ifndef GL_NV_bindless_multi_draw_indirect -#define GL_NV_bindless_multi_draw_indirect 1 -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysIndirectBindlessNV (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); -GLAPI void APIENTRY glMultiDrawElementsIndirectBindlessNV (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); -#endif -#endif /* GL_NV_bindless_multi_draw_indirect */ - -#ifndef GL_NV_bindless_texture -#define GL_NV_bindless_texture 1 -typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); -typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); -typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef GLuint64 (APIENTRYP PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); -typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); -typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -typedef GLboolean (APIENTRYP PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef GLboolean (APIENTRYP PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint64 APIENTRY glGetTextureHandleNV (GLuint texture); -GLAPI GLuint64 APIENTRY glGetTextureSamplerHandleNV (GLuint texture, GLuint sampler); -GLAPI void APIENTRY glMakeTextureHandleResidentNV (GLuint64 handle); -GLAPI void APIENTRY glMakeTextureHandleNonResidentNV (GLuint64 handle); -GLAPI GLuint64 APIENTRY glGetImageHandleNV (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -GLAPI void APIENTRY glMakeImageHandleResidentNV (GLuint64 handle, GLenum access); -GLAPI void APIENTRY glMakeImageHandleNonResidentNV (GLuint64 handle); -GLAPI void APIENTRY glUniformHandleui64NV (GLint location, GLuint64 value); -GLAPI void APIENTRY glUniformHandleui64vNV (GLint location, GLsizei count, const GLuint64 *value); -GLAPI void APIENTRY glProgramUniformHandleui64NV (GLuint program, GLint location, GLuint64 value); -GLAPI void APIENTRY glProgramUniformHandleui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -GLAPI GLboolean APIENTRY glIsTextureHandleResidentNV (GLuint64 handle); -GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle); -#endif -#endif /* GL_NV_bindless_texture */ - -#ifndef GL_NV_blend_equation_advanced -#define GL_NV_blend_equation_advanced 1 -#define GL_BLEND_OVERLAP_NV 0x9281 -#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 -#define GL_BLUE_NV 0x1905 -#define GL_COLORBURN_NV 0x929A -#define GL_COLORDODGE_NV 0x9299 -#define GL_CONJOINT_NV 0x9284 -#define GL_CONTRAST_NV 0x92A1 -#define GL_DARKEN_NV 0x9297 -#define GL_DIFFERENCE_NV 0x929E -#define GL_DISJOINT_NV 0x9283 -#define GL_DST_ATOP_NV 0x928F -#define GL_DST_IN_NV 0x928B -#define GL_DST_NV 0x9287 -#define GL_DST_OUT_NV 0x928D -#define GL_DST_OVER_NV 0x9289 -#define GL_EXCLUSION_NV 0x92A0 -#define GL_GREEN_NV 0x1904 -#define GL_HARDLIGHT_NV 0x929B -#define GL_HARDMIX_NV 0x92A9 -#define GL_HSL_COLOR_NV 0x92AF -#define GL_HSL_HUE_NV 0x92AD -#define GL_HSL_LUMINOSITY_NV 0x92B0 -#define GL_HSL_SATURATION_NV 0x92AE -#define GL_INVERT_OVG_NV 0x92B4 -#define GL_INVERT_RGB_NV 0x92A3 -#define GL_LIGHTEN_NV 0x9298 -#define GL_LINEARBURN_NV 0x92A5 -#define GL_LINEARDODGE_NV 0x92A4 -#define GL_LINEARLIGHT_NV 0x92A7 -#define GL_MINUS_CLAMPED_NV 0x92B3 -#define GL_MINUS_NV 0x929F -#define GL_MULTIPLY_NV 0x9294 -#define GL_OVERLAY_NV 0x9296 -#define GL_PINLIGHT_NV 0x92A8 -#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 -#define GL_PLUS_CLAMPED_NV 0x92B1 -#define GL_PLUS_DARKER_NV 0x9292 -#define GL_PLUS_NV 0x9291 -#define GL_RED_NV 0x1903 -#define GL_SCREEN_NV 0x9295 -#define GL_SOFTLIGHT_NV 0x929C -#define GL_SRC_ATOP_NV 0x928E -#define GL_SRC_IN_NV 0x928A -#define GL_SRC_NV 0x9286 -#define GL_SRC_OUT_NV 0x928C -#define GL_SRC_OVER_NV 0x9288 -#define GL_UNCORRELATED_NV 0x9282 -#define GL_VIVIDLIGHT_NV 0x92A6 -#define GL_XOR_NV 0x1506 -typedef void (APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLBLENDBARRIERNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendParameteriNV (GLenum pname, GLint value); -GLAPI void APIENTRY glBlendBarrierNV (void); -#endif -#endif /* GL_NV_blend_equation_advanced */ - -#ifndef GL_NV_blend_equation_advanced_coherent -#define GL_NV_blend_equation_advanced_coherent 1 -#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 -#endif /* GL_NV_blend_equation_advanced_coherent */ - -#ifndef GL_NV_blend_square -#define GL_NV_blend_square 1 -#endif /* GL_NV_blend_square */ - -#ifndef GL_NV_compute_program5 -#define GL_NV_compute_program5 1 -#define GL_COMPUTE_PROGRAM_NV 0x90FB -#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC -#endif /* GL_NV_compute_program5 */ - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode); -GLAPI void APIENTRY glEndConditionalRenderNV (void); -#endif -#endif /* GL_NV_conditional_render */ - -#ifndef GL_NV_copy_depth_to_color -#define GL_NV_copy_depth_to_color 1 -#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E -#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F -#endif /* GL_NV_copy_depth_to_color */ - -#ifndef GL_NV_copy_image -#define GL_NV_copy_image 1 -typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyImageSubDataNV (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif -#endif /* GL_NV_copy_image */ - -#ifndef GL_NV_deep_texture3D -#define GL_NV_deep_texture3D 1 -#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0 -#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1 -#endif /* GL_NV_deep_texture3D */ - -#ifndef GL_NV_depth_buffer_float -#define GL_NV_depth_buffer_float 1 -#define GL_DEPTH_COMPONENT32F_NV 0x8DAB -#define GL_DEPTH32F_STENCIL8_NV 0x8DAC -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD -#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF -typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); -typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthRangedNV (GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glClearDepthdNV (GLdouble depth); -GLAPI void APIENTRY glDepthBoundsdNV (GLdouble zmin, GLdouble zmax); -#endif -#endif /* GL_NV_depth_buffer_float */ - -#ifndef GL_NV_depth_clamp -#define GL_NV_depth_clamp 1 -#define GL_DEPTH_CLAMP_NV 0x864F -#endif /* GL_NV_depth_clamp */ - -#ifndef GL_NV_draw_texture -#define GL_NV_draw_texture 1 -typedef void (APIENTRYP PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawTextureNV (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); -#endif -#endif /* GL_NV_draw_texture */ - -#ifndef GL_NV_evaluators -#define GL_NV_evaluators 1 -#define GL_EVAL_2D_NV 0x86C0 -#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define GL_MAP_TESSELLATION_NV 0x86C2 -#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 -typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); -typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); -GLAPI void APIENTRY glMapParameterivNV (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMapParameterfvNV (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); -GLAPI void APIENTRY glGetMapParameterivNV (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMapParameterfvNV (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum target, GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glEvalMapsNV (GLenum target, GLenum mode); -#endif -#endif /* GL_NV_evaluators */ - -#ifndef GL_NV_explicit_multisample -#define GL_NV_explicit_multisample 1 -#define GL_SAMPLE_POSITION_NV 0x8E50 -#define GL_SAMPLE_MASK_NV 0x8E51 -#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 -#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 -#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 -#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 -#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 -#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 -#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 -#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 -typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (APIENTRYP PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); -typedef void (APIENTRYP PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetMultisamplefvNV (GLenum pname, GLuint index, GLfloat *val); -GLAPI void APIENTRY glSampleMaskIndexedNV (GLuint index, GLbitfield mask); -GLAPI void APIENTRY glTexRenderbufferNV (GLenum target, GLuint renderbuffer); -#endif -#endif /* GL_NV_explicit_multisample */ - -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); -GLAPI void APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); -GLAPI GLboolean APIENTRY glIsFenceNV (GLuint fence); -GLAPI GLboolean APIENTRY glTestFenceNV (GLuint fence); -GLAPI void APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); -GLAPI void APIENTRY glFinishFenceNV (GLuint fence); -GLAPI void APIENTRY glSetFenceNV (GLuint fence, GLenum condition); -#endif -#endif /* GL_NV_fence */ - -#ifndef GL_NV_float_buffer -#define GL_NV_float_buffer 1 -#define GL_FLOAT_R_NV 0x8880 -#define GL_FLOAT_RG_NV 0x8881 -#define GL_FLOAT_RGB_NV 0x8882 -#define GL_FLOAT_RGBA_NV 0x8883 -#define GL_FLOAT_R16_NV 0x8884 -#define GL_FLOAT_R32_NV 0x8885 -#define GL_FLOAT_RG16_NV 0x8886 -#define GL_FLOAT_RG32_NV 0x8887 -#define GL_FLOAT_RGB16_NV 0x8888 -#define GL_FLOAT_RGB32_NV 0x8889 -#define GL_FLOAT_RGBA16_NV 0x888A -#define GL_FLOAT_RGBA32_NV 0x888B -#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define GL_FLOAT_RGBA_MODE_NV 0x888E -#endif /* GL_NV_float_buffer */ - -#ifndef GL_NV_fog_distance -#define GL_NV_fog_distance 1 -#define GL_FOG_DISTANCE_MODE_NV 0x855A -#define GL_EYE_RADIAL_NV 0x855B -#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C -#endif /* GL_NV_fog_distance */ - -#ifndef GL_NV_fragment_program -#define GL_NV_fragment_program 1 -#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 -#define GL_FRAGMENT_PROGRAM_NV 0x8870 -#define GL_MAX_TEXTURE_COORDS_NV 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 -#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 -#define GL_PROGRAM_ERROR_STRING_NV 0x8874 -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#endif -#endif /* GL_NV_fragment_program */ - -#ifndef GL_NV_fragment_program2 -#define GL_NV_fragment_program2 1 -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 -#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 -#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 -#endif /* GL_NV_fragment_program2 */ - -#ifndef GL_NV_fragment_program4 -#define GL_NV_fragment_program4 1 -#endif /* GL_NV_fragment_program4 */ - -#ifndef GL_NV_fragment_program_option -#define GL_NV_fragment_program_option 1 -#endif /* GL_NV_fragment_program_option */ - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_NV_framebuffer_multisample_coverage 1 -#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB -#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 -#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 -#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_NV_framebuffer_multisample_coverage */ - -#ifndef GL_NV_geometry_program4 -#define GL_NV_geometry_program4 1 -#define GL_GEOMETRY_PROGRAM_NV 0x8C26 -#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 -#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 -typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramVertexLimitNV (GLenum target, GLint limit); -GLAPI void APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif -#endif /* GL_NV_geometry_program4 */ - -#ifndef GL_NV_geometry_shader4 -#define GL_NV_geometry_shader4 1 -#endif /* GL_NV_geometry_shader4 */ - -#ifndef GL_NV_gpu_program4 -#define GL_NV_gpu_program4 1 -#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 -#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 -#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 -#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 -#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 -#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 -#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum target, GLuint index, GLuint *params); -GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum target, GLuint index, GLuint *params); -#endif -#endif /* GL_NV_gpu_program4 */ - -#ifndef GL_NV_gpu_program5 -#define GL_NV_gpu_program5 1 -#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C -#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F -#define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV 0x8F44 -#define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV 0x8F45 -typedef void (APIENTRYP PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC) (GLenum target, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC) (GLenum target, GLuint index, GLuint *param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramSubroutineParametersuivNV (GLenum target, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetProgramSubroutineParameteruivNV (GLenum target, GLuint index, GLuint *param); -#endif -#endif /* GL_NV_gpu_program5 */ - -#ifndef GL_NV_gpu_program5_mem_extended -#define GL_NV_gpu_program5_mem_extended 1 -#endif /* GL_NV_gpu_program5_mem_extended */ - -#ifndef GL_NV_gpu_shader5 -#define GL_NV_gpu_shader5 1 -#endif /* GL_NV_gpu_shader5 */ - -#ifndef GL_NV_half_float -#define GL_NV_half_float 1 -typedef unsigned short GLhalfNV; -#define GL_HALF_FLOAT_NV 0x140B -typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); -typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); -typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertex2hNV (GLhalfNV x, GLhalfNV y); -GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glVertex3hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z); -GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glVertex4hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glNormal3hNV (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glColor4hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV s); -GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV s, GLhalfNV t); -GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r); -GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum target, GLhalfNV s); -GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum target, GLhalfNV s, GLhalfNV t); -GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glFogCoordhNV (GLhalfNV fog); -GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *fog); -GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV weight); -GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *weight); -GLAPI void APIENTRY glVertexAttrib1hNV (GLuint index, GLhalfNV x); -GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib2hNV (GLuint index, GLhalfNV x, GLhalfNV y); -GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib3hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib4hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -#endif -#endif /* GL_NV_half_float */ - -#ifndef GL_NV_light_max_exponent -#define GL_NV_light_max_exponent 1 -#define GL_MAX_SHININESS_NV 0x8504 -#define GL_MAX_SPOT_EXPONENT_NV 0x8505 -#endif /* GL_NV_light_max_exponent */ - -#ifndef GL_NV_multisample_coverage -#define GL_NV_multisample_coverage 1 -#define GL_COLOR_SAMPLES_NV 0x8E20 -#endif /* GL_NV_multisample_coverage */ - -#ifndef GL_NV_multisample_filter_hint -#define GL_NV_multisample_filter_hint 1 -#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 -#endif /* GL_NV_multisample_filter_hint */ - -#ifndef GL_NV_occlusion_query -#define GL_NV_occlusion_query 1 -#define GL_PIXEL_COUNTER_BITS_NV 0x8864 -#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 -#define GL_PIXEL_COUNT_NV 0x8866 -#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 -typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint id); -GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint id); -GLAPI void APIENTRY glEndOcclusionQueryNV (void); -GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint id, GLenum pname, GLuint *params); -#endif -#endif /* GL_NV_occlusion_query */ - -#ifndef GL_NV_packed_depth_stencil -#define GL_NV_packed_depth_stencil 1 -#define GL_DEPTH_STENCIL_NV 0x84F9 -#define GL_UNSIGNED_INT_24_8_NV 0x84FA -#endif /* GL_NV_packed_depth_stencil */ - -#ifndef GL_NV_parameter_buffer_object -#define GL_NV_parameter_buffer_object 1 -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 -#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 -#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 -#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params); -#endif -#endif /* GL_NV_parameter_buffer_object */ - -#ifndef GL_NV_parameter_buffer_object2 -#define GL_NV_parameter_buffer_object2 1 -#endif /* GL_NV_parameter_buffer_object2 */ - -#ifndef GL_NV_path_rendering -#define GL_NV_path_rendering 1 -#define GL_PATH_FORMAT_SVG_NV 0x9070 -#define GL_PATH_FORMAT_PS_NV 0x9071 -#define GL_STANDARD_FONT_NAME_NV 0x9072 -#define GL_SYSTEM_FONT_NAME_NV 0x9073 -#define GL_FILE_NAME_NV 0x9074 -#define GL_PATH_STROKE_WIDTH_NV 0x9075 -#define GL_PATH_END_CAPS_NV 0x9076 -#define GL_PATH_INITIAL_END_CAP_NV 0x9077 -#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 -#define GL_PATH_JOIN_STYLE_NV 0x9079 -#define GL_PATH_MITER_LIMIT_NV 0x907A -#define GL_PATH_DASH_CAPS_NV 0x907B -#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C -#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D -#define GL_PATH_DASH_OFFSET_NV 0x907E -#define GL_PATH_CLIENT_LENGTH_NV 0x907F -#define GL_PATH_FILL_MODE_NV 0x9080 -#define GL_PATH_FILL_MASK_NV 0x9081 -#define GL_PATH_FILL_COVER_MODE_NV 0x9082 -#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 -#define GL_PATH_STROKE_MASK_NV 0x9084 -#define GL_COUNT_UP_NV 0x9088 -#define GL_COUNT_DOWN_NV 0x9089 -#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A -#define GL_CONVEX_HULL_NV 0x908B -#define GL_BOUNDING_BOX_NV 0x908D -#define GL_TRANSLATE_X_NV 0x908E -#define GL_TRANSLATE_Y_NV 0x908F -#define GL_TRANSLATE_2D_NV 0x9090 -#define GL_TRANSLATE_3D_NV 0x9091 -#define GL_AFFINE_2D_NV 0x9092 -#define GL_AFFINE_3D_NV 0x9094 -#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 -#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 -#define GL_UTF8_NV 0x909A -#define GL_UTF16_NV 0x909B -#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C -#define GL_PATH_COMMAND_COUNT_NV 0x909D -#define GL_PATH_COORD_COUNT_NV 0x909E -#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F -#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 -#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 -#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 -#define GL_SQUARE_NV 0x90A3 -#define GL_ROUND_NV 0x90A4 -#define GL_TRIANGULAR_NV 0x90A5 -#define GL_BEVEL_NV 0x90A6 -#define GL_MITER_REVERT_NV 0x90A7 -#define GL_MITER_TRUNCATE_NV 0x90A8 -#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 -#define GL_USE_MISSING_GLYPH_NV 0x90AA -#define GL_PATH_ERROR_POSITION_NV 0x90AB -#define GL_PATH_FOG_GEN_MODE_NV 0x90AC -#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD -#define GL_ADJACENT_PAIRS_NV 0x90AE -#define GL_FIRST_TO_REST_NV 0x90AF -#define GL_PATH_GEN_MODE_NV 0x90B0 -#define GL_PATH_GEN_COEFF_NV 0x90B1 -#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2 -#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 -#define GL_PATH_STENCIL_FUNC_NV 0x90B7 -#define GL_PATH_STENCIL_REF_NV 0x90B8 -#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 -#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD -#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE -#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF -#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 -#define GL_MOVE_TO_RESETS_NV 0x90B5 -#define GL_MOVE_TO_CONTINUES_NV 0x90B6 -#define GL_CLOSE_PATH_NV 0x00 -#define GL_MOVE_TO_NV 0x02 -#define GL_RELATIVE_MOVE_TO_NV 0x03 -#define GL_LINE_TO_NV 0x04 -#define GL_RELATIVE_LINE_TO_NV 0x05 -#define GL_HORIZONTAL_LINE_TO_NV 0x06 -#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 -#define GL_VERTICAL_LINE_TO_NV 0x08 -#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 -#define GL_QUADRATIC_CURVE_TO_NV 0x0A -#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B -#define GL_CUBIC_CURVE_TO_NV 0x0C -#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D -#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E -#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F -#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 -#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 -#define GL_SMALL_CCW_ARC_TO_NV 0x12 -#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 -#define GL_SMALL_CW_ARC_TO_NV 0x14 -#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 -#define GL_LARGE_CCW_ARC_TO_NV 0x16 -#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 -#define GL_LARGE_CW_ARC_TO_NV 0x18 -#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 -#define GL_RESTART_PATH_NV 0xF0 -#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 -#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 -#define GL_RECT_NV 0xF6 -#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 -#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA -#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC -#define GL_ARC_TO_NV 0xFE -#define GL_RELATIVE_ARC_TO_NV 0xFF -#define GL_BOLD_BIT_NV 0x01 -#define GL_ITALIC_BIT_NV 0x02 -#define GL_GLYPH_WIDTH_BIT_NV 0x01 -#define GL_GLYPH_HEIGHT_BIT_NV 0x02 -#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 -#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 -#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 -#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 -#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 -#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 -#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 -#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 -#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 -#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 -#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 -#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 -#define GL_FONT_ASCENDER_BIT_NV 0x00200000 -#define GL_FONT_DESCENDER_BIT_NV 0x00400000 -#define GL_FONT_HEIGHT_BIT_NV 0x00800000 -#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 -#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 -#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 -#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 -#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -typedef GLuint (APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range); -typedef void (APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); -typedef GLboolean (APIENTRYP PFNGLISPATHNVPROC) (GLuint path); -typedef void (APIENTRYP PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (APIENTRYP PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (APIENTRYP PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (APIENTRYP PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (APIENTRYP PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); -typedef void (APIENTRYP PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (APIENTRYP PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (APIENTRYP PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); -typedef void (APIENTRYP PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); -typedef void (APIENTRYP PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -typedef void (APIENTRYP PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); -typedef void (APIENTRYP PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint *value); -typedef void (APIENTRYP PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat *value); -typedef void (APIENTRYP PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); -typedef void (APIENTRYP PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); -typedef void (APIENTRYP PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (APIENTRYP PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); -typedef void (APIENTRYP PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); -typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); -typedef void (APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func); -typedef void (APIENTRYP PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs); -typedef void (APIENTRYP PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs); -typedef void (APIENTRYP PFNGLPATHFOGGENNVPROC) (GLenum genMode); -typedef void (APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (APIENTRYP PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint *value); -typedef void (APIENTRYP PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat *value); -typedef void (APIENTRYP PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte *commands); -typedef void (APIENTRYP PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat *coords); -typedef void (APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dashArray); -typedef void (APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -typedef void (APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); -typedef void (APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -typedef void (APIENTRYP PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint *value); -typedef void (APIENTRYP PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat *value); -typedef void (APIENTRYP PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint *value); -typedef void (APIENTRYP PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat *value); -typedef GLboolean (APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); -typedef GLboolean (APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); -typedef GLfloat (APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); -typedef GLboolean (APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glGenPathsNV (GLsizei range); -GLAPI void APIENTRY glDeletePathsNV (GLuint path, GLsizei range); -GLAPI GLboolean APIENTRY glIsPathNV (GLuint path); -GLAPI void APIENTRY glPathCommandsNV (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -GLAPI void APIENTRY glPathCoordsNV (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); -GLAPI void APIENTRY glPathSubCommandsNV (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -GLAPI void APIENTRY glPathSubCoordsNV (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); -GLAPI void APIENTRY glPathStringNV (GLuint path, GLenum format, GLsizei length, const void *pathString); -GLAPI void APIENTRY glPathGlyphsNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GLAPI void APIENTRY glPathGlyphRangeNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GLAPI void APIENTRY glWeightPathsNV (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); -GLAPI void APIENTRY glCopyPathNV (GLuint resultPath, GLuint srcPath); -GLAPI void APIENTRY glInterpolatePathsNV (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -GLAPI void APIENTRY glTransformPathNV (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); -GLAPI void APIENTRY glPathParameterivNV (GLuint path, GLenum pname, const GLint *value); -GLAPI void APIENTRY glPathParameteriNV (GLuint path, GLenum pname, GLint value); -GLAPI void APIENTRY glPathParameterfvNV (GLuint path, GLenum pname, const GLfloat *value); -GLAPI void APIENTRY glPathParameterfNV (GLuint path, GLenum pname, GLfloat value); -GLAPI void APIENTRY glPathDashArrayNV (GLuint path, GLsizei dashCount, const GLfloat *dashArray); -GLAPI void APIENTRY glPathStencilFuncNV (GLenum func, GLint ref, GLuint mask); -GLAPI void APIENTRY glPathStencilDepthOffsetNV (GLfloat factor, GLfloat units); -GLAPI void APIENTRY glStencilFillPathNV (GLuint path, GLenum fillMode, GLuint mask); -GLAPI void APIENTRY glStencilStrokePathNV (GLuint path, GLint reference, GLuint mask); -GLAPI void APIENTRY glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -GLAPI void APIENTRY glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -GLAPI void APIENTRY glPathCoverDepthFuncNV (GLenum func); -GLAPI void APIENTRY glPathColorGenNV (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs); -GLAPI void APIENTRY glPathTexGenNV (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs); -GLAPI void APIENTRY glPathFogGenNV (GLenum genMode); -GLAPI void APIENTRY glCoverFillPathNV (GLuint path, GLenum coverMode); -GLAPI void APIENTRY glCoverStrokePathNV (GLuint path, GLenum coverMode); -GLAPI void APIENTRY glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GLAPI void APIENTRY glCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GLAPI void APIENTRY glGetPathParameterivNV (GLuint path, GLenum pname, GLint *value); -GLAPI void APIENTRY glGetPathParameterfvNV (GLuint path, GLenum pname, GLfloat *value); -GLAPI void APIENTRY glGetPathCommandsNV (GLuint path, GLubyte *commands); -GLAPI void APIENTRY glGetPathCoordsNV (GLuint path, GLfloat *coords); -GLAPI void APIENTRY glGetPathDashArrayNV (GLuint path, GLfloat *dashArray); -GLAPI void APIENTRY glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -GLAPI void APIENTRY glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); -GLAPI void APIENTRY glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -GLAPI void APIENTRY glGetPathColorGenivNV (GLenum color, GLenum pname, GLint *value); -GLAPI void APIENTRY glGetPathColorGenfvNV (GLenum color, GLenum pname, GLfloat *value); -GLAPI void APIENTRY glGetPathTexGenivNV (GLenum texCoordSet, GLenum pname, GLint *value); -GLAPI void APIENTRY glGetPathTexGenfvNV (GLenum texCoordSet, GLenum pname, GLfloat *value); -GLAPI GLboolean APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y); -GLAPI GLboolean APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y); -GLAPI GLfloat APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments); -GLAPI GLboolean APIENTRY glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -#endif -#endif /* GL_NV_path_rendering */ - -#ifndef GL_NV_pixel_data_range -#define GL_NV_pixel_data_range 1 -#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 -#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 -#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A -#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B -#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C -#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D -typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, const void *pointer); -typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelDataRangeNV (GLenum target, GLsizei length, const void *pointer); -GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum target); -#endif -#endif /* GL_NV_pixel_data_range */ - -#ifndef GL_NV_point_sprite -#define GL_NV_point_sprite 1 -#define GL_POINT_SPRITE_NV 0x8861 -#define GL_COORD_REPLACE_NV 0x8862 -#define GL_POINT_SPRITE_R_MODE_NV 0x8863 -typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameteriNV (GLenum pname, GLint param); -GLAPI void APIENTRY glPointParameterivNV (GLenum pname, const GLint *params); -#endif -#endif /* GL_NV_point_sprite */ - -#ifndef GL_NV_present_video -#define GL_NV_present_video 1 -#define GL_FRAME_NV 0x8E26 -#define GL_FIELDS_NV 0x8E27 -#define GL_CURRENT_TIME_NV 0x8E28 -#define GL_NUM_FILL_STREAMS_NV 0x8E29 -#define GL_PRESENT_TIME_NV 0x8E2A -#define GL_PRESENT_DURATION_NV 0x8E2B -typedef void (APIENTRYP PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); -typedef void (APIENTRYP PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -typedef void (APIENTRYP PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPresentFrameKeyedNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); -GLAPI void APIENTRY glPresentFrameDualFillNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -GLAPI void APIENTRY glGetVideoivNV (GLuint video_slot, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint *params); -GLAPI void APIENTRY glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT *params); -#endif -#endif /* GL_NV_present_video */ - -#ifndef GL_NV_primitive_restart -#define GL_NV_primitive_restart 1 -#define GL_PRIMITIVE_RESTART_NV 0x8558 -#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPrimitiveRestartNV (void); -GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint index); -#endif -#endif /* GL_NV_primitive_restart */ - -#ifndef GL_NV_register_combiners -#define GL_NV_register_combiners 1 -#define GL_REGISTER_COMBINERS_NV 0x8522 -#define GL_VARIABLE_A_NV 0x8523 -#define GL_VARIABLE_B_NV 0x8524 -#define GL_VARIABLE_C_NV 0x8525 -#define GL_VARIABLE_D_NV 0x8526 -#define GL_VARIABLE_E_NV 0x8527 -#define GL_VARIABLE_F_NV 0x8528 -#define GL_VARIABLE_G_NV 0x8529 -#define GL_CONSTANT_COLOR0_NV 0x852A -#define GL_CONSTANT_COLOR1_NV 0x852B -#define GL_SPARE0_NV 0x852E -#define GL_SPARE1_NV 0x852F -#define GL_DISCARD_NV 0x8530 -#define GL_E_TIMES_F_NV 0x8531 -#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define GL_UNSIGNED_IDENTITY_NV 0x8536 -#define GL_UNSIGNED_INVERT_NV 0x8537 -#define GL_EXPAND_NORMAL_NV 0x8538 -#define GL_EXPAND_NEGATE_NV 0x8539 -#define GL_HALF_BIAS_NORMAL_NV 0x853A -#define GL_HALF_BIAS_NEGATE_NV 0x853B -#define GL_SIGNED_IDENTITY_NV 0x853C -#define GL_SIGNED_NEGATE_NV 0x853D -#define GL_SCALE_BY_TWO_NV 0x853E -#define GL_SCALE_BY_FOUR_NV 0x853F -#define GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define GL_COMBINER_INPUT_NV 0x8542 -#define GL_COMBINER_MAPPING_NV 0x8543 -#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define GL_COMBINER_MUX_SUM_NV 0x8547 -#define GL_COMBINER_SCALE_NV 0x8548 -#define GL_COMBINER_BIAS_NV 0x8549 -#define GL_COMBINER_AB_OUTPUT_NV 0x854A -#define GL_COMBINER_CD_OUTPUT_NV 0x854B -#define GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define GL_COLOR_SUM_CLAMP_NV 0x854F -#define GL_COMBINER0_NV 0x8550 -#define GL_COMBINER1_NV 0x8551 -#define GL_COMBINER2_NV 0x8552 -#define GL_COMBINER3_NV 0x8553 -#define GL_COMBINER4_NV 0x8554 -#define GL_COMBINER5_NV 0x8555 -#define GL_COMBINER6_NV 0x8556 -#define GL_COMBINER7_NV 0x8557 -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerParameterfvNV (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glCombinerParameterfNV (GLenum pname, GLfloat param); -GLAPI void APIENTRY glCombinerParameterivNV (GLenum pname, const GLint *params); -GLAPI void APIENTRY glCombinerParameteriNV (GLenum pname, GLint param); -GLAPI void APIENTRY glCombinerInputNV (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -GLAPI void APIENTRY glCombinerOutputNV (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -GLAPI void APIENTRY glFinalCombinerInputNV (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum stage, GLenum portion, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum variable, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum variable, GLenum pname, GLint *params); -#endif -#endif /* GL_NV_register_combiners */ - -#ifndef GL_NV_register_combiners2 -#define GL_NV_register_combiners2 1 -#define GL_PER_STAGE_CONSTANTS_NV 0x8535 -typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum stage, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname, GLfloat *params); -#endif -#endif /* GL_NV_register_combiners2 */ - -#ifndef GL_NV_shader_atomic_counters -#define GL_NV_shader_atomic_counters 1 -#endif /* GL_NV_shader_atomic_counters */ - -#ifndef GL_NV_shader_atomic_float -#define GL_NV_shader_atomic_float 1 -#endif /* GL_NV_shader_atomic_float */ - -#ifndef GL_NV_shader_buffer_load -#define GL_NV_shader_buffer_load 1 -#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D -#define GL_GPU_ADDRESS_NV 0x8F34 -#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 -typedef void (APIENTRYP PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); -typedef void (APIENTRYP PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); -typedef GLboolean (APIENTRYP PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); -typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); -typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); -typedef GLboolean (APIENTRYP PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT *result); -typedef void (APIENTRYP PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); -typedef void (APIENTRYP PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMakeBufferResidentNV (GLenum target, GLenum access); -GLAPI void APIENTRY glMakeBufferNonResidentNV (GLenum target); -GLAPI GLboolean APIENTRY glIsBufferResidentNV (GLenum target); -GLAPI void APIENTRY glMakeNamedBufferResidentNV (GLuint buffer, GLenum access); -GLAPI void APIENTRY glMakeNamedBufferNonResidentNV (GLuint buffer); -GLAPI GLboolean APIENTRY glIsNamedBufferResidentNV (GLuint buffer); -GLAPI void APIENTRY glGetBufferParameterui64vNV (GLenum target, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glGetNamedBufferParameterui64vNV (GLuint buffer, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glGetIntegerui64vNV (GLenum value, GLuint64EXT *result); -GLAPI void APIENTRY glUniformui64NV (GLint location, GLuint64EXT value); -GLAPI void APIENTRY glUniformui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniformui64NV (GLuint program, GLint location, GLuint64EXT value); -GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif -#endif /* GL_NV_shader_buffer_load */ - -#ifndef GL_NV_shader_buffer_store -#define GL_NV_shader_buffer_store 1 -#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010 -#endif /* GL_NV_shader_buffer_store */ - -#ifndef GL_NV_shader_storage_buffer_object -#define GL_NV_shader_storage_buffer_object 1 -#endif /* GL_NV_shader_storage_buffer_object */ - -#ifndef GL_NV_shader_thread_group -#define GL_NV_shader_thread_group 1 -#define GL_WARP_SIZE_NV 0x9339 -#define GL_WARPS_PER_SM_NV 0x933A -#define GL_SM_COUNT_NV 0x933B -#endif /* GL_NV_shader_thread_group */ - -#ifndef GL_NV_shader_thread_shuffle -#define GL_NV_shader_thread_shuffle 1 -#endif /* GL_NV_shader_thread_shuffle */ - -#ifndef GL_NV_tessellation_program5 -#define GL_NV_tessellation_program5 1 -#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 -#define GL_TESS_CONTROL_PROGRAM_NV 0x891E -#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F -#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 -#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 -#endif /* GL_NV_tessellation_program5 */ - -#ifndef GL_NV_texgen_emboss -#define GL_NV_texgen_emboss 1 -#define GL_EMBOSS_LIGHT_NV 0x855D -#define GL_EMBOSS_CONSTANT_NV 0x855E -#define GL_EMBOSS_MAP_NV 0x855F -#endif /* GL_NV_texgen_emboss */ - -#ifndef GL_NV_texgen_reflection -#define GL_NV_texgen_reflection 1 -#define GL_NORMAL_MAP_NV 0x8511 -#define GL_REFLECTION_MAP_NV 0x8512 -#endif /* GL_NV_texgen_reflection */ - -#ifndef GL_NV_texture_barrier -#define GL_NV_texture_barrier 1 -typedef void (APIENTRYP PFNGLTEXTUREBARRIERNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureBarrierNV (void); -#endif -#endif /* GL_NV_texture_barrier */ - -#ifndef GL_NV_texture_compression_vtc -#define GL_NV_texture_compression_vtc 1 -#endif /* GL_NV_texture_compression_vtc */ - -#ifndef GL_NV_texture_env_combine4 -#define GL_NV_texture_env_combine4 1 -#define GL_COMBINE4_NV 0x8503 -#define GL_SOURCE3_RGB_NV 0x8583 -#define GL_SOURCE3_ALPHA_NV 0x858B -#define GL_OPERAND3_RGB_NV 0x8593 -#define GL_OPERAND3_ALPHA_NV 0x859B -#endif /* GL_NV_texture_env_combine4 */ - -#ifndef GL_NV_texture_expand_normal -#define GL_NV_texture_expand_normal 1 -#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F -#endif /* GL_NV_texture_expand_normal */ - -#ifndef GL_NV_texture_multisample -#define GL_NV_texture_multisample 1 -#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 -#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 -typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage2DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTexImage3DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage2DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage3DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage2DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -#endif -#endif /* GL_NV_texture_multisample */ - -#ifndef GL_NV_texture_rectangle -#define GL_NV_texture_rectangle 1 -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 -#endif /* GL_NV_texture_rectangle */ - -#ifndef GL_NV_texture_shader -#define GL_NV_texture_shader 1 -#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_SHADER_CONSISTENT_NV 0x86DD -#define GL_TEXTURE_SHADER_NV 0x86DE -#define GL_SHADER_OPERATION_NV 0x86DF -#define GL_CULL_MODES_NV 0x86E0 -#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3 -#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define GL_CONST_EYE_NV 0x86E5 -#define GL_PASS_THROUGH_NV 0x86E6 -#define GL_CULL_FRAGMENT_NV 0x86E7 -#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define GL_DOT_PRODUCT_NV 0x86EC -#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define GL_HI_SCALE_NV 0x870E -#define GL_LO_SCALE_NV 0x870F -#define GL_DS_SCALE_NV 0x8710 -#define GL_DT_SCALE_NV 0x8711 -#define GL_MAGNITUDE_SCALE_NV 0x8712 -#define GL_VIBRANCE_SCALE_NV 0x8713 -#define GL_HI_BIAS_NV 0x8714 -#define GL_LO_BIAS_NV 0x8715 -#define GL_DS_BIAS_NV 0x8716 -#define GL_DT_BIAS_NV 0x8717 -#define GL_MAGNITUDE_BIAS_NV 0x8718 -#define GL_VIBRANCE_BIAS_NV 0x8719 -#define GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define GL_TEXTURE_HI_SIZE_NV 0x871B -#define GL_TEXTURE_LO_SIZE_NV 0x871C -#define GL_TEXTURE_DS_SIZE_NV 0x871D -#define GL_TEXTURE_DT_SIZE_NV 0x871E -#define GL_TEXTURE_MAG_SIZE_NV 0x871F -#endif /* GL_NV_texture_shader */ - -#ifndef GL_NV_texture_shader2 -#define GL_NV_texture_shader2 1 -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#endif /* GL_NV_texture_shader2 */ - -#ifndef GL_NV_texture_shader3 -#define GL_NV_texture_shader3 1 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 -#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 -#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 -#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 -#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 -#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A -#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B -#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C -#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D -#define GL_HILO8_NV 0x885E -#define GL_SIGNED_HILO8_NV 0x885F -#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 -#endif /* GL_NV_texture_shader3 */ - -#ifndef GL_NV_transform_feedback -#define GL_NV_transform_feedback 1 -#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 -#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 -#define GL_TEXTURE_COORD_NV 0x8C79 -#define GL_CLIP_DISTANCE_NV 0x8C7A -#define GL_VERTEX_ID_NV 0x8C7B -#define GL_PRIMITIVE_ID_NV 0x8C7C -#define GL_GENERIC_ATTRIB_NV 0x8C7D -#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 -#define GL_ACTIVE_VARYINGS_NV 0x8C81 -#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 -#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 -#define GL_PRIMITIVES_GENERATED_NV 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 -#define GL_RASTERIZER_DISCARD_NV 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C -#define GL_SEPARATE_ATTRIBS_NV 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F -#define GL_LAYER_NV 0x8DAA -#define GL_NEXT_BUFFER_NV -2 -#define GL_SKIP_COMPONENTS4_NV -3 -#define GL_SKIP_COMPONENTS3_NV -4 -#define GL_SKIP_COMPONENTS2_NV -5 -#define GL_SKIP_COMPONENTS1_NV -6 -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedbackNV (void); -GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint count, const GLint *attribs, GLenum bufferMode); -GLAPI void APIENTRY glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -GLAPI void APIENTRY glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -GLAPI void APIENTRY glActiveVaryingNV (GLuint program, const GLchar *name); -GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetActiveVaryingNV (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint program, GLuint index, GLint *location); -GLAPI void APIENTRY glTransformFeedbackStreamAttribsNV (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); -#endif -#endif /* GL_NV_transform_feedback */ - -#ifndef GL_NV_transform_feedback2 -#define GL_NV_transform_feedback2 1 -#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 -typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids); -typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindTransformFeedbackNV (GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteTransformFeedbacksNV (GLsizei n, const GLuint *ids); -GLAPI void APIENTRY glGenTransformFeedbacksNV (GLsizei n, GLuint *ids); -GLAPI GLboolean APIENTRY glIsTransformFeedbackNV (GLuint id); -GLAPI void APIENTRY glPauseTransformFeedbackNV (void); -GLAPI void APIENTRY glResumeTransformFeedbackNV (void); -GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum mode, GLuint id); -#endif -#endif /* GL_NV_transform_feedback2 */ - -#ifndef GL_NV_vdpau_interop -#define GL_NV_vdpau_interop 1 -typedef GLintptr GLvdpauSurfaceNV; -#define GL_SURFACE_STATE_NV 0x86EB -#define GL_SURFACE_REGISTERED_NV 0x86FD -#define GL_SURFACE_MAPPED_NV 0x8700 -#define GL_WRITE_DISCARD_NV 0x88BE -typedef void (APIENTRYP PFNGLVDPAUINITNVPROC) (const void *vdpDevice, const void *getProcAddress); -typedef void (APIENTRYP PFNGLVDPAUFININVPROC) (void); -typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef GLboolean (APIENTRYP PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); -typedef void (APIENTRYP PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); -typedef void (APIENTRYP PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (APIENTRYP PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); -typedef void (APIENTRYP PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); -typedef void (APIENTRYP PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVDPAUInitNV (const void *vdpDevice, const void *getProcAddress); -GLAPI void APIENTRY glVDPAUFiniNV (void); -GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -GLAPI GLboolean APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface); -GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface); -GLAPI void APIENTRY glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GLAPI void APIENTRY glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access); -GLAPI void APIENTRY glVDPAUMapSurfacesNV (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); -GLAPI void APIENTRY glVDPAUUnmapSurfacesNV (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); -#endif -#endif /* GL_NV_vdpau_interop */ - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range 1 -#define GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); -GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei length, const void *pointer); -#endif -#endif /* GL_NV_vertex_array_range */ - -#ifndef GL_NV_vertex_array_range2 -#define GL_NV_vertex_array_range2 1 -#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 -#endif /* GL_NV_vertex_array_range2 */ - -#ifndef GL_NV_vertex_attrib_integer_64bit -#define GL_NV_vertex_attrib_integer_64bit 1 -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1i64NV (GLuint index, GLint64EXT x); -GLAPI void APIENTRY glVertexAttribL2i64NV (GLuint index, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glVertexAttribL3i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glVertexAttribL4i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glVertexAttribL1i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL2i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL3i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL4i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL1ui64NV (GLuint index, GLuint64EXT x); -GLAPI void APIENTRY glVertexAttribL2ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glVertexAttribL3ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glVertexAttribL4ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glVertexAttribL1ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL2ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL3ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL4ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glGetVertexAttribLi64vNV (GLuint index, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetVertexAttribLui64vNV (GLuint index, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glVertexAttribLFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); -#endif -#endif /* GL_NV_vertex_attrib_integer_64bit */ - -#ifndef GL_NV_vertex_buffer_unified_memory -#define GL_NV_vertex_buffer_unified_memory 1 -#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E -#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F -#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 -#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 -#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 -#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 -#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 -#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 -#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 -#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 -#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 -#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 -#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A -#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B -#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C -#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D -#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E -#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F -#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 -#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 -#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 -#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 -#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 -#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 -#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 -typedef void (APIENTRYP PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -typedef void (APIENTRYP PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); -typedef void (APIENTRYP PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT *result); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferAddressRangeNV (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -GLAPI void APIENTRY glVertexFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glNormalFormatNV (GLenum type, GLsizei stride); -GLAPI void APIENTRY glColorFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glIndexFormatNV (GLenum type, GLsizei stride); -GLAPI void APIENTRY glTexCoordFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glEdgeFlagFormatNV (GLsizei stride); -GLAPI void APIENTRY glSecondaryColorFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glFogCoordFormatNV (GLenum type, GLsizei stride); -GLAPI void APIENTRY glVertexAttribFormatNV (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -GLAPI void APIENTRY glVertexAttribIFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glGetIntegerui64i_vNV (GLenum value, GLuint index, GLuint64EXT *result); -#endif -#endif /* GL_NV_vertex_buffer_unified_memory */ - -#ifndef GL_NV_vertex_program -#define GL_NV_vertex_program 1 -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define GL_CURRENT_ATTRIB_NV 0x8626 -#define GL_PROGRAM_LENGTH_NV 0x8627 -#define GL_PROGRAM_STRING_NV 0x8628 -#define GL_MODELVIEW_PROJECTION_NV 0x8629 -#define GL_IDENTITY_NV 0x862A -#define GL_INVERSE_NV 0x862B -#define GL_TRANSPOSE_NV 0x862C -#define GL_INVERSE_TRANSPOSE_NV 0x862D -#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define GL_MAX_TRACK_MATRICES_NV 0x862F -#define GL_MATRIX0_NV 0x8630 -#define GL_MATRIX1_NV 0x8631 -#define GL_MATRIX2_NV 0x8632 -#define GL_MATRIX3_NV 0x8633 -#define GL_MATRIX4_NV 0x8634 -#define GL_MATRIX5_NV 0x8635 -#define GL_MATRIX6_NV 0x8636 -#define GL_MATRIX7_NV 0x8637 -#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define GL_CURRENT_MATRIX_NV 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define GL_PROGRAM_PARAMETER_NV 0x8644 -#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define GL_PROGRAM_TARGET_NV 0x8646 -#define GL_PROGRAM_RESIDENT_NV 0x8647 -#define GL_TRACK_MATRIX_NV 0x8648 -#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F -typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); -typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); -typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, void **pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei n, const GLuint *programs, GLboolean *residences); -GLAPI void APIENTRY glBindProgramNV (GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteProgramsNV (GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glExecuteProgramNV (GLenum target, GLuint id, const GLfloat *params); -GLAPI void APIENTRY glGenProgramsNV (GLsizei n, GLuint *programs); -GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum target, GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetProgramivNV (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramStringNV (GLuint id, GLenum pname, GLubyte *program); -GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum target, GLuint address, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribivNV (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint index, GLenum pname, void **pointer); -GLAPI GLboolean APIENTRY glIsProgramNV (GLuint id); -GLAPI void APIENTRY glLoadProgramNV (GLenum target, GLuint id, GLsizei len, const GLubyte *program); -GLAPI void APIENTRY glProgramParameter4dNV (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramParameter4dvNV (GLenum target, GLuint index, const GLdouble *v); -GLAPI void APIENTRY glProgramParameter4fNV (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramParameter4fvNV (GLenum target, GLuint index, const GLfloat *v); -GLAPI void APIENTRY glProgramParameters4dvNV (GLenum target, GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glProgramParameters4fvNV (GLenum target, GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glTrackMatrixNV (GLenum target, GLuint address, GLenum matrix, GLenum transform); -GLAPI void APIENTRY glVertexAttribPointerNV (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glVertexAttrib1dNV (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1fNV (GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1sNV (GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2dNV (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2fNV (GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2sNV (GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3sNV (GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4sNV (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs1svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs2svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs3svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs4svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint index, GLsizei count, const GLubyte *v); -#endif -#endif /* GL_NV_vertex_program */ - -#ifndef GL_NV_vertex_program1_1 -#define GL_NV_vertex_program1_1 1 -#endif /* GL_NV_vertex_program1_1 */ - -#ifndef GL_NV_vertex_program2 -#define GL_NV_vertex_program2 1 -#endif /* GL_NV_vertex_program2 */ - -#ifndef GL_NV_vertex_program2_option -#define GL_NV_vertex_program2_option 1 -#endif /* GL_NV_vertex_program2_option */ - -#ifndef GL_NV_vertex_program3 -#define GL_NV_vertex_program3 1 -#endif /* GL_NV_vertex_program3 */ - -#ifndef GL_NV_vertex_program4 -#define GL_NV_vertex_program4 1 -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint index, GLint x); -GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint index, GLint x, GLint y); -GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint index, GLuint x); -GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y); -GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z); -GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params); -#endif -#endif /* GL_NV_vertex_program4 */ - -#ifndef GL_NV_video_capture -#define GL_NV_video_capture 1 -#define GL_VIDEO_BUFFER_NV 0x9020 -#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 -#define GL_FIELD_UPPER_NV 0x9022 -#define GL_FIELD_LOWER_NV 0x9023 -#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 -#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 -#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 -#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 -#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 -#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 -#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A -#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B -#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C -#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D -#define GL_PARTIAL_SUCCESS_NV 0x902E -#define GL_SUCCESS_NV 0x902F -#define GL_FAILURE_NV 0x9030 -#define GL_YCBYCR8_422_NV 0x9031 -#define GL_YCBAYCR8A_4224_NV 0x9032 -#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 -#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 -#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 -#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 -#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 -#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 -#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 -#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A -#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B -#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C -typedef void (APIENTRYP PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); -typedef GLenum (APIENTRYP PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); -typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVideoCaptureNV (GLuint video_capture_slot); -GLAPI void APIENTRY glBindVideoCaptureStreamBufferNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -GLAPI void APIENTRY glBindVideoCaptureStreamTextureNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -GLAPI void APIENTRY glEndVideoCaptureNV (GLuint video_capture_slot); -GLAPI void APIENTRY glGetVideoCaptureivNV (GLuint video_capture_slot, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); -GLAPI GLenum APIENTRY glVideoCaptureNV (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); -GLAPI void APIENTRY glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); -GLAPI void APIENTRY glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); -#endif -#endif /* GL_NV_video_capture */ - -#ifndef GL_OML_interlace -#define GL_OML_interlace 1 -#define GL_INTERLACE_OML 0x8980 -#define GL_INTERLACE_READ_OML 0x8981 -#endif /* GL_OML_interlace */ - -#ifndef GL_OML_resample -#define GL_OML_resample 1 -#define GL_PACK_RESAMPLE_OML 0x8984 -#define GL_UNPACK_RESAMPLE_OML 0x8985 -#define GL_RESAMPLE_REPLICATE_OML 0x8986 -#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 -#define GL_RESAMPLE_AVERAGE_OML 0x8988 -#define GL_RESAMPLE_DECIMATE_OML 0x8989 -#endif /* GL_OML_resample */ - -#ifndef GL_OML_subsample -#define GL_OML_subsample 1 -#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 -#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 -#endif /* GL_OML_subsample */ - -#ifndef GL_PGI_misc_hints -#define GL_PGI_misc_hints 1 -#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 -#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD -#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE -#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 -#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 -#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 -#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C -#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D -#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E -#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F -#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 -#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 -#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 -#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 -#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 -#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 -#define GL_CLIP_NEAR_HINT_PGI 0x1A220 -#define GL_CLIP_FAR_HINT_PGI 0x1A221 -#define GL_WIDE_LINE_HINT_PGI 0x1A222 -#define GL_BACK_NORMALS_HINT_PGI 0x1A223 -typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glHintPGI (GLenum target, GLint mode); -#endif -#endif /* GL_PGI_misc_hints */ - -#ifndef GL_PGI_vertex_hints -#define GL_PGI_vertex_hints 1 -#define GL_VERTEX_DATA_HINT_PGI 0x1A22A -#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B -#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C -#define GL_MAX_VERTEX_HINT_PGI 0x1A22D -#define GL_COLOR3_BIT_PGI 0x00010000 -#define GL_COLOR4_BIT_PGI 0x00020000 -#define GL_EDGEFLAG_BIT_PGI 0x00040000 -#define GL_INDEX_BIT_PGI 0x00080000 -#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define GL_NORMAL_BIT_PGI 0x08000000 -#define GL_TEXCOORD1_BIT_PGI 0x10000000 -#define GL_TEXCOORD2_BIT_PGI 0x20000000 -#define GL_TEXCOORD3_BIT_PGI 0x40000000 -#define GL_TEXCOORD4_BIT_PGI 0x80000000 -#define GL_VERTEX23_BIT_PGI 0x00000004 -#define GL_VERTEX4_BIT_PGI 0x00000008 -#endif /* GL_PGI_vertex_hints */ - -#ifndef GL_REND_screen_coordinates -#define GL_REND_screen_coordinates 1 -#define GL_SCREEN_COORDINATES_REND 0x8490 -#define GL_INVERTED_SCREEN_W_REND 0x8491 -#endif /* GL_REND_screen_coordinates */ - -#ifndef GL_S3_s3tc -#define GL_S3_s3tc 1 -#define GL_RGB_S3TC 0x83A0 -#define GL_RGB4_S3TC 0x83A1 -#define GL_RGBA_S3TC 0x83A2 -#define GL_RGBA4_S3TC 0x83A3 -#define GL_RGBA_DXT5_S3TC 0x83A4 -#define GL_RGBA4_DXT5_S3TC 0x83A5 -#endif /* GL_S3_s3tc */ - -#ifndef GL_SGIS_detail_texture -#define GL_SGIS_detail_texture 1 -#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 -#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 -#define GL_LINEAR_DETAIL_SGIS 0x8097 -#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 -#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 -#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A -#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B -#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C -typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum target, GLfloat *points); -#endif -#endif /* GL_SGIS_detail_texture */ - -#ifndef GL_SGIS_fog_function -#define GL_SGIS_fog_function 1 -#define GL_FOG_FUNC_SGIS 0x812A -#define GL_FOG_FUNC_POINTS_SGIS 0x812B -#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C -typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogFuncSGIS (GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *points); -#endif -#endif /* GL_SGIS_fog_function */ - -#ifndef GL_SGIS_generate_mipmap -#define GL_SGIS_generate_mipmap 1 -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 -#endif /* GL_SGIS_generate_mipmap */ - -#ifndef GL_SGIS_multisample -#define GL_SGIS_multisample 1 -#define GL_MULTISAMPLE_SGIS 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define GL_SAMPLE_MASK_SGIS 0x80A0 -#define GL_1PASS_SGIS 0x80A1 -#define GL_2PASS_0_SGIS 0x80A2 -#define GL_2PASS_1_SGIS 0x80A3 -#define GL_4PASS_0_SGIS 0x80A4 -#define GL_4PASS_1_SGIS 0x80A5 -#define GL_4PASS_2_SGIS 0x80A6 -#define GL_4PASS_3_SGIS 0x80A7 -#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define GL_SAMPLES_SGIS 0x80A9 -#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define GL_SAMPLE_PATTERN_SGIS 0x80AC -typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskSGIS (GLclampf value, GLboolean invert); -GLAPI void APIENTRY glSamplePatternSGIS (GLenum pattern); -#endif -#endif /* GL_SGIS_multisample */ - -#ifndef GL_SGIS_pixel_texture -#define GL_SGIS_pixel_texture 1 -#define GL_PIXEL_TEXTURE_SGIS 0x8353 -#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 -#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 -#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum pname, GLint param); -GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum pname, const GLint *params); -GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum pname, GLint *params); -GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum pname, GLfloat *params); -#endif -#endif /* GL_SGIS_pixel_texture */ - -#ifndef GL_SGIS_point_line_texgen -#define GL_SGIS_point_line_texgen 1 -#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 -#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 -#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 -#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 -#define GL_EYE_POINT_SGIS 0x81F4 -#define GL_OBJECT_POINT_SGIS 0x81F5 -#define GL_EYE_LINE_SGIS 0x81F6 -#define GL_OBJECT_LINE_SGIS 0x81F7 -#endif /* GL_SGIS_point_line_texgen */ - -#ifndef GL_SGIS_point_parameters -#define GL_SGIS_point_parameters 1 -#define GL_POINT_SIZE_MIN_SGIS 0x8126 -#define GL_POINT_SIZE_MAX_SGIS 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 -#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 -typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfSGIS (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvSGIS (GLenum pname, const GLfloat *params); -#endif -#endif /* GL_SGIS_point_parameters */ - -#ifndef GL_SGIS_sharpen_texture -#define GL_SGIS_sharpen_texture 1 -#define GL_LINEAR_SHARPEN_SGIS 0x80AD -#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE -#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF -#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 -typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum target, GLfloat *points); -#endif -#endif /* GL_SGIS_sharpen_texture */ - -#ifndef GL_SGIS_texture4D -#define GL_SGIS_texture4D 1 -#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 -#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 -#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 -#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 -#define GL_TEXTURE_4D_SGIS 0x8134 -#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 -#define GL_TEXTURE_4DSIZE_SGIS 0x8136 -#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 -#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 -#define GL_TEXTURE_4D_BINDING_SGIS 0x814F -typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage4DSGIS (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels); -#endif -#endif /* GL_SGIS_texture4D */ - -#ifndef GL_SGIS_texture_border_clamp -#define GL_SGIS_texture_border_clamp 1 -#define GL_CLAMP_TO_BORDER_SGIS 0x812D -#endif /* GL_SGIS_texture_border_clamp */ - -#ifndef GL_SGIS_texture_color_mask -#define GL_SGIS_texture_color_mask 1 -#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF -typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#endif -#endif /* GL_SGIS_texture_color_mask */ - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_SGIS_texture_edge_clamp 1 -#define GL_CLAMP_TO_EDGE_SGIS 0x812F -#endif /* GL_SGIS_texture_edge_clamp */ - -#ifndef GL_SGIS_texture_filter4 -#define GL_SGIS_texture_filter4 1 -#define GL_FILTER4_SGIS 0x8146 -#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 -typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); -typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum target, GLenum filter, GLfloat *weights); -GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#endif -#endif /* GL_SGIS_texture_filter4 */ - -#ifndef GL_SGIS_texture_lod -#define GL_SGIS_texture_lod 1 -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D -#endif /* GL_SGIS_texture_lod */ - -#ifndef GL_SGIS_texture_select -#define GL_SGIS_texture_select 1 -#define GL_DUAL_ALPHA4_SGIS 0x8110 -#define GL_DUAL_ALPHA8_SGIS 0x8111 -#define GL_DUAL_ALPHA12_SGIS 0x8112 -#define GL_DUAL_ALPHA16_SGIS 0x8113 -#define GL_DUAL_LUMINANCE4_SGIS 0x8114 -#define GL_DUAL_LUMINANCE8_SGIS 0x8115 -#define GL_DUAL_LUMINANCE12_SGIS 0x8116 -#define GL_DUAL_LUMINANCE16_SGIS 0x8117 -#define GL_DUAL_INTENSITY4_SGIS 0x8118 -#define GL_DUAL_INTENSITY8_SGIS 0x8119 -#define GL_DUAL_INTENSITY12_SGIS 0x811A -#define GL_DUAL_INTENSITY16_SGIS 0x811B -#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C -#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D -#define GL_QUAD_ALPHA4_SGIS 0x811E -#define GL_QUAD_ALPHA8_SGIS 0x811F -#define GL_QUAD_LUMINANCE4_SGIS 0x8120 -#define GL_QUAD_LUMINANCE8_SGIS 0x8121 -#define GL_QUAD_INTENSITY4_SGIS 0x8122 -#define GL_QUAD_INTENSITY8_SGIS 0x8123 -#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 -#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 -#endif /* GL_SGIS_texture_select */ - -#ifndef GL_SGIX_async -#define GL_SGIX_async 1 -#define GL_ASYNC_MARKER_SGIX 0x8329 -typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); -typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); -typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); -typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); -typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); -typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint marker); -GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *markerp); -GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *markerp); -GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei range); -GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint marker, GLsizei range); -GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint marker); -#endif -#endif /* GL_SGIX_async */ - -#ifndef GL_SGIX_async_histogram -#define GL_SGIX_async_histogram 1 -#define GL_ASYNC_HISTOGRAM_SGIX 0x832C -#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D -#endif /* GL_SGIX_async_histogram */ - -#ifndef GL_SGIX_async_pixel -#define GL_SGIX_async_pixel 1 -#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C -#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D -#define GL_ASYNC_READ_PIXELS_SGIX 0x835E -#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F -#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 -#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 -#endif /* GL_SGIX_async_pixel */ - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_SGIX_blend_alpha_minmax 1 -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 -#endif /* GL_SGIX_blend_alpha_minmax */ - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_SGIX_calligraphic_fragment 1 -#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 -#endif /* GL_SGIX_calligraphic_fragment */ - -#ifndef GL_SGIX_clipmap -#define GL_SGIX_clipmap 1 -#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 -#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 -#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 -#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 -#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 -#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 -#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 -#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 -#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 -#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D -#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E -#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F -#endif /* GL_SGIX_clipmap */ - -#ifndef GL_SGIX_convolution_accuracy -#define GL_SGIX_convolution_accuracy 1 -#define GL_CONVOLUTION_HINT_SGIX 0x8316 -#endif /* GL_SGIX_convolution_accuracy */ - -#ifndef GL_SGIX_depth_pass_instrument -#define GL_SGIX_depth_pass_instrument 1 -#endif /* GL_SGIX_depth_pass_instrument */ - -#ifndef GL_SGIX_depth_texture -#define GL_SGIX_depth_texture 1 -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 -#endif /* GL_SGIX_depth_texture */ - -#ifndef GL_SGIX_flush_raster -#define GL_SGIX_flush_raster 1 -typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushRasterSGIX (void); -#endif -#endif /* GL_SGIX_flush_raster */ - -#ifndef GL_SGIX_fog_offset -#define GL_SGIX_fog_offset 1 -#define GL_FOG_OFFSET_SGIX 0x8198 -#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 -#endif /* GL_SGIX_fog_offset */ - -#ifndef GL_SGIX_fragment_lighting -#define GL_SGIX_fragment_lighting 1 -#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 -#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 -#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 -#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 -#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 -#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 -#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 -#define GL_LIGHT_ENV_MODE_SGIX 0x8407 -#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 -#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 -#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A -#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B -#define GL_FRAGMENT_LIGHT0_SGIX 0x840C -#define GL_FRAGMENT_LIGHT1_SGIX 0x840D -#define GL_FRAGMENT_LIGHT2_SGIX 0x840E -#define GL_FRAGMENT_LIGHT3_SGIX 0x840F -#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 -#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 -#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 -#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 -typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum face, GLenum mode); -GLAPI void APIENTRY glFragmentLightfSGIX (GLenum light, GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum light, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentLightiSGIX (GLenum light, GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentLightivSGIX (GLenum light, GLenum pname, const GLint *params); -GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum pname, const GLint *params); -GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum face, GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum face, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum face, GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum face, GLenum pname, const GLint *params); -GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum light, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum light, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum face, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum face, GLenum pname, GLint *params); -GLAPI void APIENTRY glLightEnviSGIX (GLenum pname, GLint param); -#endif -#endif /* GL_SGIX_fragment_lighting */ - -#ifndef GL_SGIX_framezoom -#define GL_SGIX_framezoom 1 -#define GL_FRAMEZOOM_SGIX 0x818B -#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C -#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D -typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameZoomSGIX (GLint factor); -#endif -#endif /* GL_SGIX_framezoom */ - -#ifndef GL_SGIX_igloo_interface -#define GL_SGIX_igloo_interface 1 -typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const void *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum pname, const void *params); -#endif -#endif /* GL_SGIX_igloo_interface */ - -#ifndef GL_SGIX_instruments -#define GL_SGIX_instruments 1 -#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 -#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 -typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); -typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); -typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); -typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); -GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei size, GLint *buffer); -GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *marker_p); -GLAPI void APIENTRY glReadInstrumentsSGIX (GLint marker); -GLAPI void APIENTRY glStartInstrumentsSGIX (void); -GLAPI void APIENTRY glStopInstrumentsSGIX (GLint marker); -#endif -#endif /* GL_SGIX_instruments */ - -#ifndef GL_SGIX_interlace -#define GL_SGIX_interlace 1 -#define GL_INTERLACE_SGIX 0x8094 -#endif /* GL_SGIX_interlace */ - -#ifndef GL_SGIX_ir_instrument1 -#define GL_SGIX_ir_instrument1 1 -#define GL_IR_INSTRUMENT1_SGIX 0x817F -#endif /* GL_SGIX_ir_instrument1 */ - -#ifndef GL_SGIX_list_priority -#define GL_SGIX_list_priority 1 -#define GL_LIST_PRIORITY_SGIX 0x8182 -typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint list, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetListParameterivSGIX (GLuint list, GLenum pname, GLint *params); -GLAPI void APIENTRY glListParameterfSGIX (GLuint list, GLenum pname, GLfloat param); -GLAPI void APIENTRY glListParameterfvSGIX (GLuint list, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glListParameteriSGIX (GLuint list, GLenum pname, GLint param); -GLAPI void APIENTRY glListParameterivSGIX (GLuint list, GLenum pname, const GLint *params); -#endif -#endif /* GL_SGIX_list_priority */ - -#ifndef GL_SGIX_pixel_texture -#define GL_SGIX_pixel_texture 1 -#define GL_PIXEL_TEX_GEN_SGIX 0x8139 -#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B -typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenSGIX (GLenum mode); -#endif -#endif /* GL_SGIX_pixel_texture */ - -#ifndef GL_SGIX_pixel_tiles -#define GL_SGIX_pixel_tiles 1 -#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E -#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F -#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 -#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 -#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 -#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 -#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 -#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 -#endif /* GL_SGIX_pixel_tiles */ - -#ifndef GL_SGIX_polynomial_ffd -#define GL_SGIX_polynomial_ffd 1 -#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 -#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 -#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 -#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 -#define GL_DEFORMATIONS_MASK_SGIX 0x8196 -#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -GLAPI void APIENTRY glDeformSGIX (GLbitfield mask); -GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield mask); -#endif -#endif /* GL_SGIX_polynomial_ffd */ - -#ifndef GL_SGIX_reference_plane -#define GL_SGIX_reference_plane 1 -#define GL_REFERENCE_PLANE_SGIX 0x817D -#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E -typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *equation); -#endif -#endif /* GL_SGIX_reference_plane */ - -#ifndef GL_SGIX_resample -#define GL_SGIX_resample 1 -#define GL_PACK_RESAMPLE_SGIX 0x842C -#define GL_UNPACK_RESAMPLE_SGIX 0x842D -#define GL_RESAMPLE_REPLICATE_SGIX 0x842E -#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F -#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#endif /* GL_SGIX_resample */ - -#ifndef GL_SGIX_scalebias_hint -#define GL_SGIX_scalebias_hint 1 -#define GL_SCALEBIAS_HINT_SGIX 0x8322 -#endif /* GL_SGIX_scalebias_hint */ - -#ifndef GL_SGIX_shadow -#define GL_SGIX_shadow 1 -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D -#endif /* GL_SGIX_shadow */ - -#ifndef GL_SGIX_shadow_ambient -#define GL_SGIX_shadow_ambient 1 -#define GL_SHADOW_AMBIENT_SGIX 0x80BF -#endif /* GL_SGIX_shadow_ambient */ - -#ifndef GL_SGIX_sprite -#define GL_SGIX_sprite 1 -#define GL_SPRITE_SGIX 0x8148 -#define GL_SPRITE_MODE_SGIX 0x8149 -#define GL_SPRITE_AXIS_SGIX 0x814A -#define GL_SPRITE_TRANSLATION_SGIX 0x814B -#define GL_SPRITE_AXIAL_SGIX 0x814C -#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D -#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum pname, GLfloat param); -GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum pname, GLint param); -GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum pname, const GLint *params); -#endif -#endif /* GL_SGIX_sprite */ - -#ifndef GL_SGIX_subsample -#define GL_SGIX_subsample 1 -#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 -#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 -#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 -#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 -#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 -#endif /* GL_SGIX_subsample */ - -#ifndef GL_SGIX_tag_sample_buffer -#define GL_SGIX_tag_sample_buffer 1 -typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTagSampleBufferSGIX (void); -#endif -#endif /* GL_SGIX_tag_sample_buffer */ - -#ifndef GL_SGIX_texture_add_env -#define GL_SGIX_texture_add_env 1 -#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE -#endif /* GL_SGIX_texture_add_env */ - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_SGIX_texture_coordinate_clamp 1 -#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 -#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A -#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B -#endif /* GL_SGIX_texture_coordinate_clamp */ - -#ifndef GL_SGIX_texture_lod_bias -#define GL_SGIX_texture_lod_bias 1 -#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E -#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F -#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 -#endif /* GL_SGIX_texture_lod_bias */ - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_SGIX_texture_multi_buffer 1 -#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E -#endif /* GL_SGIX_texture_multi_buffer */ - -#ifndef GL_SGIX_texture_scale_bias -#define GL_SGIX_texture_scale_bias 1 -#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C -#endif /* GL_SGIX_texture_scale_bias */ - -#ifndef GL_SGIX_vertex_preclip -#define GL_SGIX_vertex_preclip 1 -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF -#endif /* GL_SGIX_vertex_preclip */ - -#ifndef GL_SGIX_ycrcb -#define GL_SGIX_ycrcb 1 -#define GL_YCRCB_422_SGIX 0x81BB -#define GL_YCRCB_444_SGIX 0x81BC -#endif /* GL_SGIX_ycrcb */ - -#ifndef GL_SGIX_ycrcb_subsample -#define GL_SGIX_ycrcb_subsample 1 -#endif /* GL_SGIX_ycrcb_subsample */ - -#ifndef GL_SGIX_ycrcba -#define GL_SGIX_ycrcba 1 -#define GL_YCRCB_SGIX 0x8318 -#define GL_YCRCBA_SGIX 0x8319 -#endif /* GL_SGIX_ycrcba */ - -#ifndef GL_SGI_color_matrix -#define GL_SGI_color_matrix 1 -#define GL_COLOR_MATRIX_SGI 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB -#endif /* GL_SGI_color_matrix */ - -#ifndef GL_SGI_color_table -#define GL_SGI_color_table 1 -#define GL_COLOR_TABLE_SGI 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF -typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableSGI (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); -GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glColorTableParameterivSGI (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyColorTableSGI (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glGetColorTableSGI (GLenum target, GLenum format, GLenum type, void *table); -GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum target, GLenum pname, GLint *params); -#endif -#endif /* GL_SGI_color_table */ - -#ifndef GL_SGI_texture_color_table -#define GL_SGI_texture_color_table 1 -#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD -#endif /* GL_SGI_texture_color_table */ - -#ifndef GL_SUNX_constant_data -#define GL_SUNX_constant_data 1 -#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 -typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFinishTextureSUNX (void); -#endif -#endif /* GL_SUNX_constant_data */ - -#ifndef GL_SUN_convolution_border_modes -#define GL_SUN_convolution_border_modes 1 -#define GL_WRAP_BORDER_SUN 0x81D4 -#endif /* GL_SUN_convolution_border_modes */ - -#ifndef GL_SUN_global_alpha -#define GL_SUN_global_alpha 1 -#define GL_GLOBAL_ALPHA_SUN 0x81D9 -#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte factor); -GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort factor); -GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint factor); -GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat factor); -GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble factor); -GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte factor); -GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort factor); -GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint factor); -#endif -#endif /* GL_SUN_global_alpha */ - -#ifndef GL_SUN_mesh_array -#define GL_SUN_mesh_array 1 -#define GL_QUAD_MESH_SUN 0x8614 -#define GL_TRIANGLE_MESH_SUN 0x8615 -typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum mode, GLint first, GLsizei count, GLsizei width); -#endif -#endif /* GL_SUN_mesh_array */ - -#ifndef GL_SUN_slice_accum -#define GL_SUN_slice_accum 1 -#define GL_SLICE_ACCUM_SUN 0x85CC -#endif /* GL_SUN_slice_accum */ - -#ifndef GL_SUN_triangle_list -#define GL_SUN_triangle_list 1 -#define GL_RESTART_SUN 0x0001 -#define GL_REPLACE_MIDDLE_SUN 0x0002 -#define GL_REPLACE_OLDEST_SUN 0x0003 -#define GL_TRIANGLE_LIST_SUN 0x81D7 -#define GL_REPLACEMENT_CODE_SUN 0x81D8 -#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define GL_R1UI_V3F_SUN 0x85C4 -#define GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define GL_R1UI_C3F_V3F_SUN 0x85C6 -#define GL_R1UI_N3F_V3F_SUN 0x85C7 -#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define GL_R1UI_T2F_V3F_SUN 0x85C9 -#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void **pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint code); -GLAPI void APIENTRY glReplacementCodeusSUN (GLushort code); -GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte code); -GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *code); -GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *code); -GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *code); -GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum type, GLsizei stride, const void **pointer); -#endif -#endif /* GL_SUN_triangle_list */ - -#ifndef GL_SUN_vertex -#define GL_SUN_vertex 1 -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *tc, const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *rc, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *rc, const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#endif -#endif /* GL_SUN_vertex */ - -#ifndef GL_WIN_phong_shading -#define GL_WIN_phong_shading 1 -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB -#endif /* GL_WIN_phong_shading */ - -#ifndef GL_WIN_specular_fog -#define GL_WIN_specular_fog 1 -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC -#endif /* GL_WIN_specular_fog */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/osx/include/SDL_opengles.h b/lib/osx/include/SDL_opengles.h deleted file mode 100644 index 15abee7..0000000 --- a/lib/osx/include/SDL_opengles.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_opengles.h - * - * This is a simple file to encapsulate the OpenGL ES 1.X API headers. - */ -#include "SDL_config.h" - -#ifdef __IPHONEOS__ -#include <OpenGLES/ES1/gl.h> -#include <OpenGLES/ES1/glext.h> -#else -#include <GLES/gl.h> -#include <GLES/glext.h> -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif diff --git a/lib/osx/include/SDL_opengles2.h b/lib/osx/include/SDL_opengles2.h deleted file mode 100644 index c961f0f..0000000 --- a/lib/osx/include/SDL_opengles2.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_opengles2.h - * - * This is a simple file to encapsulate the OpenGL ES 2.0 API headers. - */ -#include "SDL_config.h" - -#ifndef _MSC_VER - -#ifdef __IPHONEOS__ -#include <OpenGLES/ES2/gl.h> -#include <OpenGLES/ES2/glext.h> -#else -#include <GLES2/gl2platform.h> -#include <GLES2/gl2.h> -#include <GLES2/gl2ext.h> -#endif - -#else /* _MSC_VER */ - -/* OpenGL ES2 headers for Visual Studio */ -#include "SDL_opengles2_khrplatform.h" -#include "SDL_opengles2_gl2platform.h" -#include "SDL_opengles2_gl2.h" -#include "SDL_opengles2_gl2ext.h" - -#endif /* _MSC_VER */ - -#ifndef APIENTRY -#define APIENTRY GL_APIENTRY -#endif diff --git a/lib/osx/include/SDL_opengles2_gl2.h b/lib/osx/include/SDL_opengles2_gl2.h deleted file mode 100644 index c62fb0a..0000000 --- a/lib/osx/include/SDL_opengles2_gl2.h +++ /dev/null @@ -1,621 +0,0 @@ -#ifndef __gl2_h_ -#define __gl2_h_ - -/* $Revision: 20555 $ on $Date:: 2013-02-12 14:32:47 -0800 #$ */ - -/*#include <GLES2/gl2platform.h>*/ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This document is licensed under the SGI Free Software B License Version - * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . - */ - -/*------------------------------------------------------------------------- - * Data type definitions - *-----------------------------------------------------------------------*/ - -typedef void GLvoid; -typedef char GLchar; -typedef unsigned int GLenum; -typedef unsigned char GLboolean; -typedef unsigned int GLbitfield; -typedef khronos_int8_t GLbyte; -typedef short GLshort; -typedef int GLint; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -typedef unsigned short GLushort; -typedef unsigned int GLuint; -typedef khronos_float_t GLfloat; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; - -/* GL types for handling large vertex buffer objects */ -typedef khronos_intptr_t GLintptr; -typedef khronos_ssize_t GLsizeiptr; - -/* OpenGL ES core versions */ -#define GL_ES_VERSION_2_0 1 - -/* ClearBufferMask */ -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 - -/* Boolean */ -#define GL_FALSE 0 -#define GL_TRUE 1 - -/* BeginMode */ -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 - -/* AlphaFunction (not supported in ES20) */ -/* GL_NEVER */ -/* GL_LESS */ -/* GL_EQUAL */ -/* GL_LEQUAL */ -/* GL_GREATER */ -/* GL_NOTEQUAL */ -/* GL_GEQUAL */ -/* GL_ALWAYS */ - -/* BlendingFactorDest */ -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 - -/* BlendingFactorSrc */ -/* GL_ZERO */ -/* GL_ONE */ -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -/* GL_SRC_ALPHA */ -/* GL_ONE_MINUS_SRC_ALPHA */ -/* GL_DST_ALPHA */ -/* GL_ONE_MINUS_DST_ALPHA */ - -/* BlendEquationSeparate */ -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 /* same as BLEND_EQUATION */ -#define GL_BLEND_EQUATION_ALPHA 0x883D - -/* BlendSubtract */ -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B - -/* Separate Blend Functions */ -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 - -/* Buffer Objects */ -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 - -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 - -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 - -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 - -/* CullFaceMode */ -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 - -/* DepthFunction */ -/* GL_NEVER */ -/* GL_LESS */ -/* GL_EQUAL */ -/* GL_LEQUAL */ -/* GL_GREATER */ -/* GL_NOTEQUAL */ -/* GL_GEQUAL */ -/* GL_ALWAYS */ - -/* EnableCap */ -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 - -/* ErrorCode */ -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 - -/* FrontFaceDirection */ -#define GL_CW 0x0900 -#define GL_CCW 0x0901 - -/* GetPName */ -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -/* GL_SCISSOR_TEST */ -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -/* GL_POLYGON_OFFSET_FILL */ -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB - -/* GetTextureParameter */ -/* GL_TEXTURE_MAG_FILTER */ -/* GL_TEXTURE_MIN_FILTER */ -/* GL_TEXTURE_WRAP_S */ -/* GL_TEXTURE_WRAP_T */ - -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 - -/* HintMode */ -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 - -/* HintTarget */ -#define GL_GENERATE_MIPMAP_HINT 0x8192 - -/* DataType */ -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C - -/* PixelFormat */ -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A - -/* PixelType */ -/* GL_UNSIGNED_BYTE */ -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 - -/* Shaders */ -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D - -/* StencilFunction */ -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 - -/* StencilOp */ -/* GL_ZERO */ -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 - -/* StringName */ -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 - -/* TextureMagFilter */ -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 - -/* TextureMinFilter */ -/* GL_NEAREST */ -/* GL_LINEAR */ -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 - -/* TextureParameterName */ -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 - -/* TextureTarget */ -/* GL_TEXTURE_2D */ -#define GL_TEXTURE 0x1702 - -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C - -/* TextureUnit */ -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 - -/* TextureWrapMode */ -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 - -/* Uniform Types */ -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 - -/* Vertex Arrays */ -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F - -/* Read Format */ -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B - -/* Shader Source */ -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA - -/* Shader Binary */ -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 - -/* Shader Precision-Specified Types */ -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 - -/* Framebuffer Object. */ -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 - -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 - -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 - -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 - -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 - -#define GL_NONE 0 - -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD - -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 - -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 - -/*------------------------------------------------------------------------- - * GL core functions. - *-----------------------------------------------------------------------*/ - -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -GL_APICALL void GL_APIENTRY glBlendEquation ( GLenum mode ); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLclampf depth); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); -GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat x); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint x); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); - -#ifdef __cplusplus -} -#endif - -#endif /* __gl2_h_ */ - diff --git a/lib/osx/include/SDL_opengles2_gl2ext.h b/lib/osx/include/SDL_opengles2_gl2ext.h deleted file mode 100644 index e8ca8b1..0000000 --- a/lib/osx/include/SDL_opengles2_gl2ext.h +++ /dev/null @@ -1,2050 +0,0 @@ -#ifndef __gl2ext_h_ -#define __gl2ext_h_ - -/* $Revision: 22801 $ on $Date:: 2013-08-21 03:20:48 -0700 #$ */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This document is licensed under the SGI Free Software B License Version - * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . - */ - -#ifndef GL_APIENTRYP -# define GL_APIENTRYP GL_APIENTRY* -#endif - -/* New types shared by several extensions */ - -#ifndef __gl3_h_ -/* These are defined with respect to <inttypes.h> in the - * Apple extension spec, but they are also used by non-APPLE - * extensions, and in the Khronos header we use the Khronos - * portable types in khrplatform.h, which must be defined. - */ -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef struct __GLsync *GLsync; -#endif - - -/*------------------------------------------------------------------------* - * OES extension tokens - *------------------------------------------------------------------------*/ - -/* GL_OES_compressed_ETC1_RGB8_texture */ -#ifndef GL_OES_compressed_ETC1_RGB8_texture -#define GL_ETC1_RGB8_OES 0x8D64 -#endif - -/* GL_OES_compressed_paletted_texture */ -#ifndef GL_OES_compressed_paletted_texture -#define GL_PALETTE4_RGB8_OES 0x8B90 -#define GL_PALETTE4_RGBA8_OES 0x8B91 -#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 -#define GL_PALETTE4_RGBA4_OES 0x8B93 -#define GL_PALETTE4_RGB5_A1_OES 0x8B94 -#define GL_PALETTE8_RGB8_OES 0x8B95 -#define GL_PALETTE8_RGBA8_OES 0x8B96 -#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 -#define GL_PALETTE8_RGBA4_OES 0x8B98 -#define GL_PALETTE8_RGB5_A1_OES 0x8B99 -#endif - -/* GL_OES_depth24 */ -#ifndef GL_OES_depth24 -#define GL_DEPTH_COMPONENT24_OES 0x81A6 -#endif - -/* GL_OES_depth32 */ -#ifndef GL_OES_depth32 -#define GL_DEPTH_COMPONENT32_OES 0x81A7 -#endif - -/* GL_OES_depth_texture */ -/* No new tokens introduced by this extension. */ - -/* GL_OES_EGL_image */ -#ifndef GL_OES_EGL_image -typedef void* GLeglImageOES; -#endif - -/* GL_OES_EGL_image_external */ -#ifndef GL_OES_EGL_image_external -/* GLeglImageOES defined in GL_OES_EGL_image already. */ -#define GL_TEXTURE_EXTERNAL_OES 0x8D65 -#define GL_SAMPLER_EXTERNAL_OES 0x8D66 -#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 -#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 -#endif - -/* GL_OES_element_index_uint */ -#ifndef GL_OES_element_index_uint -#define GL_UNSIGNED_INT 0x1405 -#endif - -/* GL_OES_get_program_binary */ -#ifndef GL_OES_get_program_binary -#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE -#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF -#endif - -/* GL_OES_mapbuffer */ -#ifndef GL_OES_mapbuffer -#define GL_WRITE_ONLY_OES 0x88B9 -#define GL_BUFFER_ACCESS_OES 0x88BB -#define GL_BUFFER_MAPPED_OES 0x88BC -#define GL_BUFFER_MAP_POINTER_OES 0x88BD -#endif - -/* GL_OES_packed_depth_stencil */ -#ifndef GL_OES_packed_depth_stencil -#define GL_DEPTH_STENCIL_OES 0x84F9 -#define GL_UNSIGNED_INT_24_8_OES 0x84FA -#define GL_DEPTH24_STENCIL8_OES 0x88F0 -#endif - -/* GL_OES_required_internalformat */ -#ifndef GL_OES_required_internalformat -#define GL_ALPHA8_OES 0x803C -#define GL_DEPTH_COMPONENT16_OES 0x81A5 -/* reuse GL_DEPTH_COMPONENT24_OES */ -/* reuse GL_DEPTH24_STENCIL8_OES */ -/* reuse GL_DEPTH_COMPONENT32_OES */ -#define GL_LUMINANCE4_ALPHA4_OES 0x8043 -#define GL_LUMINANCE8_ALPHA8_OES 0x8045 -#define GL_LUMINANCE8_OES 0x8040 -#define GL_RGBA4_OES 0x8056 -#define GL_RGB5_A1_OES 0x8057 -#define GL_RGB565_OES 0x8D62 -/* reuse GL_RGB8_OES */ -/* reuse GL_RGBA8_OES */ -/* reuse GL_RGB10_EXT */ -/* reuse GL_RGB10_A2_EXT */ -#endif - -/* GL_OES_rgb8_rgba8 */ -#ifndef GL_OES_rgb8_rgba8 -#define GL_RGB8_OES 0x8051 -#define GL_RGBA8_OES 0x8058 -#endif - -/* GL_OES_standard_derivatives */ -#ifndef GL_OES_standard_derivatives -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B -#endif - -/* GL_OES_stencil1 */ -#ifndef GL_OES_stencil1 -#define GL_STENCIL_INDEX1_OES 0x8D46 -#endif - -/* GL_OES_stencil4 */ -#ifndef GL_OES_stencil4 -#define GL_STENCIL_INDEX4_OES 0x8D47 -#endif - -#ifndef GL_OES_surfaceless_context -#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 -#endif - -/* GL_OES_texture_3D */ -#ifndef GL_OES_texture_3D -#define GL_TEXTURE_WRAP_R_OES 0x8072 -#define GL_TEXTURE_3D_OES 0x806F -#define GL_TEXTURE_BINDING_3D_OES 0x806A -#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 -#define GL_SAMPLER_3D_OES 0x8B5F -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 -#endif - -/* GL_OES_texture_float */ -/* No new tokens introduced by this extension. */ - -/* GL_OES_texture_float_linear */ -/* No new tokens introduced by this extension. */ - -/* GL_OES_texture_half_float */ -#ifndef GL_OES_texture_half_float -#define GL_HALF_FLOAT_OES 0x8D61 -#endif - -/* GL_OES_texture_half_float_linear */ -/* No new tokens introduced by this extension. */ - -/* GL_OES_texture_npot */ -/* No new tokens introduced by this extension. */ - -/* GL_OES_vertex_array_object */ -#ifndef GL_OES_vertex_array_object -#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 -#endif - -/* GL_OES_vertex_half_float */ -/* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */ - -/* GL_OES_vertex_type_10_10_10_2 */ -#ifndef GL_OES_vertex_type_10_10_10_2 -#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 -#define GL_INT_10_10_10_2_OES 0x8DF7 -#endif - -/*------------------------------------------------------------------------* - * KHR extension tokens - *------------------------------------------------------------------------*/ - -#ifndef GL_KHR_debug -typedef void (GL_APIENTRYP GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245 -#define GL_DEBUG_SOURCE_API_KHR 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A -#define GL_DEBUG_SOURCE_OTHER_KHR 0x824B -#define GL_DEBUG_TYPE_ERROR_KHR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250 -#define GL_DEBUG_TYPE_OTHER_KHR 0x8251 -#define GL_DEBUG_TYPE_MARKER_KHR 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D -#define GL_BUFFER_KHR 0x82E0 -#define GL_SHADER_KHR 0x82E1 -#define GL_PROGRAM_KHR 0x82E2 -#define GL_QUERY_KHR 0x82E3 -/* PROGRAM_PIPELINE only in GL */ -#define GL_SAMPLER_KHR 0x82E6 -/* DISPLAY_LIST only in GL */ -#define GL_MAX_LABEL_LENGTH_KHR 0x82E8 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147 -#define GL_DEBUG_SEVERITY_LOW_KHR 0x9148 -#define GL_DEBUG_OUTPUT_KHR 0x92E0 -#define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002 -#define GL_STACK_OVERFLOW_KHR 0x0503 -#define GL_STACK_UNDERFLOW_KHR 0x0504 -#endif - -#ifndef GL_KHR_texture_compression_astc_ldr -#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 -#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 -#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 -#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 -#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 -#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 -#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 -#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 -#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 -#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 -#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA -#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB -#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC -#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD -#endif - -/*------------------------------------------------------------------------* - * AMD extension tokens - *------------------------------------------------------------------------*/ - -/* GL_AMD_compressed_3DC_texture */ -#ifndef GL_AMD_compressed_3DC_texture -#define GL_3DC_X_AMD 0x87F9 -#define GL_3DC_XY_AMD 0x87FA -#endif - -/* GL_AMD_compressed_ATC_texture */ -#ifndef GL_AMD_compressed_ATC_texture -#define GL_ATC_RGB_AMD 0x8C92 -#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 -#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE -#endif - -/* GL_AMD_performance_monitor */ -#ifndef GL_AMD_performance_monitor -#define GL_COUNTER_TYPE_AMD 0x8BC0 -#define GL_COUNTER_RANGE_AMD 0x8BC1 -#define GL_UNSIGNED_INT64_AMD 0x8BC2 -#define GL_PERCENTAGE_AMD 0x8BC3 -#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 -#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 -#define GL_PERFMON_RESULT_AMD 0x8BC6 -#endif - -/* GL_AMD_program_binary_Z400 */ -#ifndef GL_AMD_program_binary_Z400 -#define GL_Z400_BINARY_AMD 0x8740 -#endif - -/*------------------------------------------------------------------------* - * ANGLE extension tokens - *------------------------------------------------------------------------*/ - -/* GL_ANGLE_depth_texture */ -#ifndef GL_ANGLE_depth_texture -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_DEPTH_STENCIL_OES 0x84F9 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_UNSIGNED_INT 0x1405 -#define GL_UNSIGNED_INT_24_8_OES 0x84FA -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT32_OES 0x81A7 -#define GL_DEPTH24_STENCIL8_OES 0x88F0 -#endif - -/* GL_ANGLE_framebuffer_blit */ -#ifndef GL_ANGLE_framebuffer_blit -#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA -#endif - -/* GL_ANGLE_framebuffer_multisample */ -#ifndef GL_ANGLE_framebuffer_multisample -#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 -#define GL_MAX_SAMPLES_ANGLE 0x8D57 -#endif - -/* GL_ANGLE_instanced_arrays */ -#ifndef GL_ANGLE_instanced_arrays -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE -#endif - -/* GL_ANGLE_pack_reverse_row_order */ -#ifndef GL_ANGLE_pack_reverse_row_order -#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 -#endif - -/* GL_ANGLE_program_binary */ -#ifndef GL_ANGLE_program_binary -#define GL_PROGRAM_BINARY_ANGLE 0x93A6 -#endif - -/* GL_ANGLE_texture_compression_dxt3 */ -#ifndef GL_ANGLE_texture_compression_dxt3 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 -#endif - -/* GL_ANGLE_texture_compression_dxt5 */ -#ifndef GL_ANGLE_texture_compression_dxt5 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 -#endif - -/* GL_ANGLE_texture_usage */ -#ifndef GL_ANGLE_texture_usage -#define GL_TEXTURE_USAGE_ANGLE 0x93A2 -#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 -#endif - -/* GL_ANGLE_translated_shader_source */ -#ifndef GL_ANGLE_translated_shader_source -#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 -#endif - -/*------------------------------------------------------------------------* - * APPLE extension tokens - *------------------------------------------------------------------------*/ - -/* GL_APPLE_copy_texture_levels */ -/* No new tokens introduced by this extension. */ - -/* GL_APPLE_framebuffer_multisample */ -#ifndef GL_APPLE_framebuffer_multisample -#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 -#define GL_MAX_SAMPLES_APPLE 0x8D57 -#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA -#endif - -/* GL_APPLE_rgb_422 */ -#ifndef GL_APPLE_rgb_422 -#define GL_RGB_422_APPLE 0x8A1F -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#endif - -/* GL_APPLE_sync */ -#ifndef GL_APPLE_sync - -#define GL_SYNC_OBJECT_APPLE 0x8A53 -#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 -#define GL_OBJECT_TYPE_APPLE 0x9112 -#define GL_SYNC_CONDITION_APPLE 0x9113 -#define GL_SYNC_STATUS_APPLE 0x9114 -#define GL_SYNC_FLAGS_APPLE 0x9115 -#define GL_SYNC_FENCE_APPLE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 -#define GL_UNSIGNALED_APPLE 0x9118 -#define GL_SIGNALED_APPLE 0x9119 -#define GL_ALREADY_SIGNALED_APPLE 0x911A -#define GL_TIMEOUT_EXPIRED_APPLE 0x911B -#define GL_CONDITION_SATISFIED_APPLE 0x911C -#define GL_WAIT_FAILED_APPLE 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 -#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull -#endif - -/* GL_APPLE_texture_format_BGRA8888 */ -#ifndef GL_APPLE_texture_format_BGRA8888 -#define GL_BGRA_EXT 0x80E1 -#endif - -/* GL_APPLE_texture_max_level */ -#ifndef GL_APPLE_texture_max_level -#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D -#endif - -/*------------------------------------------------------------------------* - * ARM extension tokens - *------------------------------------------------------------------------*/ - -/* GL_ARM_mali_program_binary */ -#ifndef GL_ARM_mali_program_binary -#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 -#endif - -/* GL_ARM_mali_shader_binary */ -#ifndef GL_ARM_mali_shader_binary -#define GL_MALI_SHADER_BINARY_ARM 0x8F60 -#endif - -/* GL_ARM_rgba8 */ -/* No new tokens introduced by this extension. */ - -/*------------------------------------------------------------------------* - * EXT extension tokens - *------------------------------------------------------------------------*/ - -/* GL_EXT_blend_minmax */ -#ifndef GL_EXT_blend_minmax -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#endif - -/* GL_EXT_color_buffer_half_float */ -#ifndef GL_EXT_color_buffer_half_float -#define GL_RGBA16F_EXT 0x881A -#define GL_RGB16F_EXT 0x881B -#define GL_RG16F_EXT 0x822F -#define GL_R16F_EXT 0x822D -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 -#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 -#endif - -/* GL_EXT_debug_label */ -#ifndef GL_EXT_debug_label -#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F -#define GL_PROGRAM_OBJECT_EXT 0x8B40 -#define GL_SHADER_OBJECT_EXT 0x8B48 -#define GL_BUFFER_OBJECT_EXT 0x9151 -#define GL_QUERY_OBJECT_EXT 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 -#endif - -/* GL_EXT_debug_marker */ -/* No new tokens introduced by this extension. */ - -/* GL_EXT_discard_framebuffer */ -#ifndef GL_EXT_discard_framebuffer -#define GL_COLOR_EXT 0x1800 -#define GL_DEPTH_EXT 0x1801 -#define GL_STENCIL_EXT 0x1802 -#endif - -#ifndef GL_EXT_disjoint_timer_query -#define GL_QUERY_COUNTER_BITS_EXT 0x8864 -#define GL_CURRENT_QUERY_EXT 0x8865 -#define GL_QUERY_RESULT_EXT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 -#define GL_TIME_ELAPSED_EXT 0x88BF -#define GL_TIMESTAMP_EXT 0x8E28 -#define GL_GPU_DISJOINT_EXT 0x8FBB -#endif - -#ifndef GL_EXT_draw_buffers -#define GL_EXT_draw_buffers 1 -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_MAX_DRAW_BUFFERS_EXT 0x8824 -#define GL_DRAW_BUFFER0_EXT 0x8825 -#define GL_DRAW_BUFFER1_EXT 0x8826 -#define GL_DRAW_BUFFER2_EXT 0x8827 -#define GL_DRAW_BUFFER3_EXT 0x8828 -#define GL_DRAW_BUFFER4_EXT 0x8829 -#define GL_DRAW_BUFFER5_EXT 0x882A -#define GL_DRAW_BUFFER6_EXT 0x882B -#define GL_DRAW_BUFFER7_EXT 0x882C -#define GL_DRAW_BUFFER8_EXT 0x882D -#define GL_DRAW_BUFFER9_EXT 0x882E -#define GL_DRAW_BUFFER10_EXT 0x882F -#define GL_DRAW_BUFFER11_EXT 0x8830 -#define GL_DRAW_BUFFER12_EXT 0x8831 -#define GL_DRAW_BUFFER13_EXT 0x8832 -#define GL_DRAW_BUFFER14_EXT 0x8833 -#define GL_DRAW_BUFFER15_EXT 0x8834 -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -#endif - -/* GL_EXT_map_buffer_range */ -#ifndef GL_EXT_map_buffer_range -#define GL_MAP_READ_BIT_EXT 0x0001 -#define GL_MAP_WRITE_BIT_EXT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 -#endif - -/* GL_EXT_multisampled_render_to_texture */ -#ifndef GL_EXT_multisampled_render_to_texture -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C -/* reuse values from GL_EXT_framebuffer_multisample (desktop extension) */ -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -#endif - -/* GL_EXT_multiview_draw_buffers */ -#ifndef GL_EXT_multiview_draw_buffers -#define GL_COLOR_ATTACHMENT_EXT 0x90F0 -#define GL_MULTIVIEW_EXT 0x90F1 -#define GL_DRAW_BUFFER_EXT 0x0C01 -#define GL_READ_BUFFER_EXT 0x0C02 -#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 -#endif - -/* GL_EXT_multi_draw_arrays */ -/* No new tokens introduced by this extension. */ - -/* GL_EXT_occlusion_query_boolean */ -#ifndef GL_EXT_occlusion_query_boolean -#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A -#define GL_CURRENT_QUERY_EXT 0x8865 -#define GL_QUERY_RESULT_EXT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 -#endif - -/* GL_EXT_read_format_bgra */ -#ifndef GL_EXT_read_format_bgra -#define GL_BGRA_EXT 0x80E1 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 -#endif - -/* GL_EXT_robustness */ -#ifndef GL_EXT_robustness -/* reuse GL_NO_ERROR */ -#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 -#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 -#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 -#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 -#define GL_NO_RESET_NOTIFICATION_EXT 0x8261 -#endif - -/* GL_EXT_separate_shader_objects */ -#ifndef GL_EXT_separate_shader_objects -#define GL_VERTEX_SHADER_BIT_EXT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002 -#define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE_EXT 0x8258 -#define GL_ACTIVE_PROGRAM_EXT 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A -#endif - -/* GL_EXT_shader_framebuffer_fetch */ -#ifndef GL_EXT_shader_framebuffer_fetch -#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 -#endif - -/* GL_EXT_shader_texture_lod */ -/* No new tokens introduced by this extension. */ - -/* GL_EXT_shadow_samplers */ -#ifndef GL_EXT_shadow_samplers -#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C -#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D -#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E -#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 -#endif - -/* GL_EXT_sRGB */ -#ifndef GL_EXT_sRGB -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 -#endif - -/* GL_EXT_sRGB_write_control */ -#ifndef GL_EXT_sRGB_write_control -#define GL_EXT_sRGB_write_control 1 -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#endif - -/* GL_EXT_texture_compression_dxt1 */ -#ifndef GL_EXT_texture_compression_dxt1 -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#endif - -/* GL_EXT_texture_filter_anisotropic */ -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif - -/* GL_EXT_texture_format_BGRA8888 */ -#ifndef GL_EXT_texture_format_BGRA8888 -#define GL_BGRA_EXT 0x80E1 -#endif - -/* GL_EXT_texture_rg */ -#ifndef GL_EXT_texture_rg -#define GL_RED_EXT 0x1903 -#define GL_RG_EXT 0x8227 -#define GL_R8_EXT 0x8229 -#define GL_RG8_EXT 0x822B -#endif - -/* GL_EXT_texture_sRGB_decode */ -#ifndef GL_EXT_texture_sRGB_decode -#define GL_EXT_texture_sRGB_decode 1 -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A -#endif - -/* GL_EXT_texture_storage */ -#ifndef GL_EXT_texture_storage -#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F -#define GL_ALPHA8_EXT 0x803C -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_RGBA32F_EXT 0x8814 -#define GL_RGB32F_EXT 0x8815 -#define GL_ALPHA32F_EXT 0x8816 -#define GL_LUMINANCE32F_EXT 0x8818 -#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 -/* reuse GL_RGBA16F_EXT */ -/* reuse GL_RGB16F_EXT */ -#define GL_ALPHA16F_EXT 0x881C -#define GL_LUMINANCE16F_EXT 0x881E -#define GL_LUMINANCE_ALPHA16F_EXT 0x881F -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGB10_EXT 0x8052 -#define GL_BGRA8_EXT 0x93A1 -#define GL_R8_EXT 0x8229 -#define GL_RG8_EXT 0x822B -#define GL_R32F_EXT 0x822E -#define GL_RG32F_EXT 0x8230 -#define GL_R16F_EXT 0x822D -#define GL_RG16F_EXT 0x822F -#endif - -/* GL_EXT_texture_type_2_10_10_10_REV */ -#ifndef GL_EXT_texture_type_2_10_10_10_REV -#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 -#endif - -/* GL_EXT_unpack_subimage */ -#ifndef GL_EXT_unpack_subimage -#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2 -#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4 -#endif - -/*------------------------------------------------------------------------* - * DMP extension tokens - *------------------------------------------------------------------------*/ - -/* GL_DMP_shader_binary */ -#ifndef GL_DMP_shader_binary -#define GL_SHADER_BINARY_DMP 0x9250 -#endif - -/*------------------------------------------------------------------------* - * FJ extension tokens - *------------------------------------------------------------------------*/ - -/* GL_FJ_shader_binary_GCCSO */ -#ifndef GL_FJ_shader_binary_GCCSO -#define GL_GCCSO_SHADER_BINARY_FJ 0x9260 -#endif - -/*------------------------------------------------------------------------* - * IMG extension tokens - *------------------------------------------------------------------------*/ - -/* GL_IMG_program_binary */ -#ifndef GL_IMG_program_binary -#define GL_SGX_PROGRAM_BINARY_IMG 0x9130 -#endif - -/* GL_IMG_read_format */ -#ifndef GL_IMG_read_format -#define GL_BGRA_IMG 0x80E1 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 -#endif - -/* GL_IMG_shader_binary */ -#ifndef GL_IMG_shader_binary -#define GL_SGX_BINARY_IMG 0x8C0A -#endif - -/* GL_IMG_texture_compression_pvrtc */ -#ifndef GL_IMG_texture_compression_pvrtc -#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 -#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 -#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 -#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 -#endif - -/* GL_IMG_texture_compression_pvrtc2 */ -#ifndef GL_IMG_texture_compression_pvrtc2 -#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137 -#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138 -#endif - -/* GL_IMG_multisampled_render_to_texture */ -#ifndef GL_IMG_multisampled_render_to_texture -#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 -#define GL_MAX_SAMPLES_IMG 0x9135 -#define GL_TEXTURE_SAMPLES_IMG 0x9136 -#endif - -/*------------------------------------------------------------------------* - * NV extension tokens - *------------------------------------------------------------------------*/ - -/* GL_NV_coverage_sample */ -#ifndef GL_NV_coverage_sample -#define GL_COVERAGE_COMPONENT_NV 0x8ED0 -#define GL_COVERAGE_COMPONENT4_NV 0x8ED1 -#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2 -#define GL_COVERAGE_BUFFERS_NV 0x8ED3 -#define GL_COVERAGE_SAMPLES_NV 0x8ED4 -#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5 -#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6 -#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7 -#define GL_COVERAGE_BUFFER_BIT_NV 0x00008000 -#endif - -/* GL_NV_depth_nonlinear */ -#ifndef GL_NV_depth_nonlinear -#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C -#endif - -/* GL_NV_draw_buffers */ -#ifndef GL_NV_draw_buffers -#define GL_MAX_DRAW_BUFFERS_NV 0x8824 -#define GL_DRAW_BUFFER0_NV 0x8825 -#define GL_DRAW_BUFFER1_NV 0x8826 -#define GL_DRAW_BUFFER2_NV 0x8827 -#define GL_DRAW_BUFFER3_NV 0x8828 -#define GL_DRAW_BUFFER4_NV 0x8829 -#define GL_DRAW_BUFFER5_NV 0x882A -#define GL_DRAW_BUFFER6_NV 0x882B -#define GL_DRAW_BUFFER7_NV 0x882C -#define GL_DRAW_BUFFER8_NV 0x882D -#define GL_DRAW_BUFFER9_NV 0x882E -#define GL_DRAW_BUFFER10_NV 0x882F -#define GL_DRAW_BUFFER11_NV 0x8830 -#define GL_DRAW_BUFFER12_NV 0x8831 -#define GL_DRAW_BUFFER13_NV 0x8832 -#define GL_DRAW_BUFFER14_NV 0x8833 -#define GL_DRAW_BUFFER15_NV 0x8834 -#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 -#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 -#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 -#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 -#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 -#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 -#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 -#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 -#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 -#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 -#define GL_COLOR_ATTACHMENT10_NV 0x8CEA -#define GL_COLOR_ATTACHMENT11_NV 0x8CEB -#define GL_COLOR_ATTACHMENT12_NV 0x8CEC -#define GL_COLOR_ATTACHMENT13_NV 0x8CED -#define GL_COLOR_ATTACHMENT14_NV 0x8CEE -#define GL_COLOR_ATTACHMENT15_NV 0x8CEF -#endif - -/* GL_NV_draw_instanced */ -/* No new tokens introduced by this extension. */ - -/* GL_NV_fbo_color_attachments */ -#ifndef GL_NV_fbo_color_attachments -#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF -/* GL_COLOR_ATTACHMENT{0-15}_NV defined in GL_NV_draw_buffers already. */ -#endif - -/* GL_NV_fence */ -#ifndef GL_NV_fence -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -#endif - -/* GL_NV_framebuffer_blit */ -#ifndef GL_NV_framebuffer_blit -#define GL_READ_FRAMEBUFFER_NV 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA -#endif - -/* GL_NV_framebuffer_multisample */ -#ifndef GL_NV_framebuffer_multisample -#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56 -#define GL_MAX_SAMPLES_NV 0x8D57 -#endif - -/* GL_NV_generate_mipmap_sRGB */ -/* No new tokens introduced by this extension. */ - -/* GL_NV_instanced_arrays */ -#ifndef GL_NV_instanced_arrays -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE -#endif - -/* GL_NV_read_buffer */ -#ifndef GL_NV_read_buffer -#define GL_READ_BUFFER_NV 0x0C02 -#endif - -/* GL_NV_read_buffer_front */ -/* No new tokens introduced by this extension. */ - -/* GL_NV_read_depth */ -/* No new tokens introduced by this extension. */ - -/* GL_NV_read_depth_stencil */ -/* No new tokens introduced by this extension. */ - -/* GL_NV_read_stencil */ -/* No new tokens introduced by this extension. */ - -/* GL_NV_shadow_samplers_array */ -#ifndef GL_NV_shadow_samplers_array -#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 -#endif - -/* GL_NV_shadow_samplers_cube */ -#ifndef GL_NV_shadow_samplers_cube -#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 -#endif - -/* GL_NV_sRGB_formats */ -#ifndef GL_NV_sRGB_formats -#define GL_SLUMINANCE_NV 0x8C46 -#define GL_SLUMINANCE_ALPHA_NV 0x8C44 -#define GL_SRGB8_NV 0x8C41 -#define GL_SLUMINANCE8_NV 0x8C47 -#define GL_SLUMINANCE8_ALPHA8_NV 0x8C45 -#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F -#define GL_ETC1_SRGB8_NV 0x88EE -#endif - -/* GL_NV_texture_border_clamp */ -#ifndef GL_NV_texture_border_clamp -#define GL_TEXTURE_BORDER_COLOR_NV 0x1004 -#define GL_CLAMP_TO_BORDER_NV 0x812D -#endif - -/* GL_NV_texture_compression_s3tc_update */ -/* No new tokens introduced by this extension. */ - -/* GL_NV_texture_npot_2D_mipmap */ -/* No new tokens introduced by this extension. */ - -/*------------------------------------------------------------------------* - * QCOM extension tokens - *------------------------------------------------------------------------*/ - -/* GL_QCOM_alpha_test */ -#ifndef GL_QCOM_alpha_test -#define GL_ALPHA_TEST_QCOM 0x0BC0 -#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 -#define GL_ALPHA_TEST_REF_QCOM 0x0BC2 -#endif - -/* GL_QCOM_binning_control */ -#ifndef GL_QCOM_binning_control -#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 -#define GL_CPU_OPTIMIZED_QCOM 0x8FB1 -#define GL_GPU_OPTIMIZED_QCOM 0x8FB2 -#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 -#endif - -/* GL_QCOM_driver_control */ -/* No new tokens introduced by this extension. */ - -/* GL_QCOM_extended_get */ -#ifndef GL_QCOM_extended_get -#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 -#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 -#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 -#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 -#define GL_TEXTURE_FORMAT_QCOM 0x8BD6 -#define GL_TEXTURE_TYPE_QCOM 0x8BD7 -#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 -#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 -#define GL_TEXTURE_TARGET_QCOM 0x8BDA -#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB -#define GL_STATE_RESTORE 0x8BDC -#endif - -/* GL_QCOM_extended_get2 */ -/* No new tokens introduced by this extension. */ - -/* GL_QCOM_perfmon_global_mode */ -#ifndef GL_QCOM_perfmon_global_mode -#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 -#endif - -/* GL_QCOM_writeonly_rendering */ -#ifndef GL_QCOM_writeonly_rendering -#define GL_WRITEONLY_RENDERING_QCOM 0x8823 -#endif - -/* GL_QCOM_tiled_rendering */ -#ifndef GL_QCOM_tiled_rendering -#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 -#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 -#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 -#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 -#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 -#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 -#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 -#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 -#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 -#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 -#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 -#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 -#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 -#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 -#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 -#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 -#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 -#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 -#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 -#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 -#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 -#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 -#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 -#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 -#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 -#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 -#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 -#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 -#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 -#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 -#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 -#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 -#endif - -/*------------------------------------------------------------------------* - * VIV extension tokens - *------------------------------------------------------------------------*/ - -/* GL_VIV_shader_binary */ -#ifndef GL_VIV_shader_binary -#define GL_SHADER_BINARY_VIV 0x8FC4 -#endif - -/*------------------------------------------------------------------------* - * End of extension tokens, start of corresponding extension functions - *------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------* - * OES extension functions - *------------------------------------------------------------------------*/ - -/* GL_OES_compressed_ETC1_RGB8_texture */ -#ifndef GL_OES_compressed_ETC1_RGB8_texture -#define GL_OES_compressed_ETC1_RGB8_texture 1 -#endif - -/* GL_OES_compressed_paletted_texture */ -#ifndef GL_OES_compressed_paletted_texture -#define GL_OES_compressed_paletted_texture 1 -#endif - -/* GL_OES_depth24 */ -#ifndef GL_OES_depth24 -#define GL_OES_depth24 1 -#endif - -/* GL_OES_depth32 */ -#ifndef GL_OES_depth32 -#define GL_OES_depth32 1 -#endif - -/* GL_OES_depth_texture */ -#ifndef GL_OES_depth_texture -#define GL_OES_depth_texture 1 -#endif - -/* GL_OES_EGL_image */ -#ifndef GL_OES_EGL_image -#define GL_OES_EGL_image 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); -GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); -#endif -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); -#endif - -/* GL_OES_EGL_image_external */ -#ifndef GL_OES_EGL_image_external -#define GL_OES_EGL_image_external 1 -/* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */ -#endif - -/* GL_OES_element_index_uint */ -#ifndef GL_OES_element_index_uint -#define GL_OES_element_index_uint 1 -#endif - -/* GL_OES_fbo_render_mipmap */ -#ifndef GL_OES_fbo_render_mipmap -#define GL_OES_fbo_render_mipmap 1 -#endif - -/* GL_OES_fragment_precision_high */ -#ifndef GL_OES_fragment_precision_high -#define GL_OES_fragment_precision_high 1 -#endif - -/* GL_OES_get_program_binary */ -#ifndef GL_OES_get_program_binary -#define GL_OES_get_program_binary 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); -GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); -#endif -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); -#endif - -/* GL_OES_mapbuffer */ -#ifndef GL_OES_mapbuffer -#define GL_OES_mapbuffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); -GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid **params); -#endif -typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid **params); -#endif - -/* GL_OES_packed_depth_stencil */ -#ifndef GL_OES_packed_depth_stencil -#define GL_OES_packed_depth_stencil 1 -#endif - -/* GL_OES_required_internalformat */ -#ifndef GL_OES_required_internalformat -#define GL_OES_required_internalformat 1 -#endif - -/* GL_OES_rgb8_rgba8 */ -#ifndef GL_OES_rgb8_rgba8 -#define GL_OES_rgb8_rgba8 1 -#endif - -/* GL_OES_standard_derivatives */ -#ifndef GL_OES_standard_derivatives -#define GL_OES_standard_derivatives 1 -#endif - -/* GL_OES_stencil1 */ -#ifndef GL_OES_stencil1 -#define GL_OES_stencil1 1 -#endif - -/* GL_OES_stencil4 */ -#ifndef GL_OES_stencil4 -#define GL_OES_stencil4 1 -#endif - -#ifndef GL_OES_surfaceless_context -#define GL_OES_surfaceless_context 1 -#endif - -/* GL_OES_texture_3D */ -#ifndef GL_OES_texture_3D -#define GL_OES_texture_3D 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data); -GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -#endif -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -#endif - -/* GL_OES_texture_float */ -#ifndef GL_OES_texture_float -#define GL_OES_texture_float 1 -#endif - -/* GL_OES_texture_float_linear */ -#ifndef GL_OES_texture_float_linear -#define GL_OES_texture_float_linear 1 -#endif - -/* GL_OES_texture_half_float */ -#ifndef GL_OES_texture_half_float -#define GL_OES_texture_half_float 1 -#endif - -/* GL_OES_texture_half_float_linear */ -#ifndef GL_OES_texture_half_float_linear -#define GL_OES_texture_half_float_linear 1 -#endif - -/* GL_OES_texture_npot */ -#ifndef GL_OES_texture_npot -#define GL_OES_texture_npot 1 -#endif - -/* GL_OES_vertex_array_object */ -#ifndef GL_OES_vertex_array_object -#define GL_OES_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); -#endif -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); -#endif - -/* GL_OES_vertex_half_float */ -#ifndef GL_OES_vertex_half_float -#define GL_OES_vertex_half_float 1 -#endif - -/* GL_OES_vertex_type_10_10_10_2 */ -#ifndef GL_OES_vertex_type_10_10_10_2 -#define GL_OES_vertex_type_10_10_10_2 1 -#endif - -/*------------------------------------------------------------------------* - * KHR extension functions - *------------------------------------------------------------------------*/ - -#ifndef GL_KHR_debug -#define GL_KHR_debug 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDebugMessageControlKHR (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GL_APICALL void GL_APIENTRY glDebugMessageInsertKHR (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GL_APICALL void GL_APIENTRY glDebugMessageCallbackKHR (GLDEBUGPROCKHR callback, const void *userParam); -GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLogKHR (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -GL_APICALL void GL_APIENTRY glPushDebugGroupKHR (GLenum source, GLuint id, GLsizei length, const GLchar *message); -GL_APICALL void GL_APIENTRY glPopDebugGroupKHR (void); -GL_APICALL void GL_APIENTRY glObjectLabelKHR (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabelKHR (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glObjectPtrLabelKHR (const void *ptr, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectPtrLabelKHR (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetPointervKHR (GLenum pname, GLvoid **params); -#endif -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLKHRPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTKHRPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKKHRPROC) (GLDEBUGPROCKHR callback, const void *userParam); -typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRPROC) (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPKHRPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPKHRPROC) (void); -typedef void (GL_APIENTRYP PFNGLOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVKHRPROC) (GLenum pname, GLvoid **params); -#endif - -#ifndef GL_KHR_texture_compression_astc_ldr -#define GL_KHR_texture_compression_astc_ldr 1 -#endif - - -/*------------------------------------------------------------------------* - * AMD extension functions - *------------------------------------------------------------------------*/ - -/* GL_AMD_compressed_3DC_texture */ -#ifndef GL_AMD_compressed_3DC_texture -#define GL_AMD_compressed_3DC_texture 1 -#endif - -/* GL_AMD_compressed_ATC_texture */ -#ifndef GL_AMD_compressed_ATC_texture -#define GL_AMD_compressed_ATC_texture 1 -#endif - -/* AMD_performance_monitor */ -#ifndef GL_AMD_performance_monitor -#define GL_AMD_performance_monitor 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data); -GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); -GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); -GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); -GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor); -GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data); -typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); -typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif - -/* GL_AMD_program_binary_Z400 */ -#ifndef GL_AMD_program_binary_Z400 -#define GL_AMD_program_binary_Z400 1 -#endif - -/*------------------------------------------------------------------------* - * ANGLE extension functions - *------------------------------------------------------------------------*/ - -/* GL_ANGLE_depth_texture */ -#ifndef GL_ANGLE_depth_texture -#define GL_ANGLE_depth_texture 1 -#endif - -/* GL_ANGLE_framebuffer_blit */ -#ifndef GL_ANGLE_framebuffer_blit -#define GL_ANGLE_framebuffer_blit 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif - -/* GL_ANGLE_framebuffer_multisample */ -#ifndef GL_ANGLE_framebuffer_multisample -#define GL_ANGLE_framebuffer_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif - -#ifndef GL_ANGLE_instanced_arrays -#define GL_ANGLE_instanced_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor); -#endif -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); -#endif - -/* GL_ANGLE_pack_reverse_row_order */ -#ifndef GL_ANGLE_pack_reverse_row_order -#define GL_ANGLE_pack_reverse_row_order 1 -#endif - -/* GL_ANGLE_program_binary */ -#ifndef GL_ANGLE_program_binary -#define GL_ANGLE_program_binary 1 -#endif - -/* GL_ANGLE_texture_compression_dxt3 */ -#ifndef GL_ANGLE_texture_compression_dxt3 -#define GL_ANGLE_texture_compression_dxt3 1 -#endif - -/* GL_ANGLE_texture_compression_dxt5 */ -#ifndef GL_ANGLE_texture_compression_dxt5 -#define GL_ANGLE_texture_compression_dxt5 1 -#endif - -/* GL_ANGLE_texture_usage */ -#ifndef GL_ANGLE_texture_usage -#define GL_ANGLE_texture_usage 1 -#endif - -#ifndef GL_ANGLE_translated_shader_source -#define GL_ANGLE_translated_shader_source 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); -#endif -typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); -#endif - -/*------------------------------------------------------------------------* - * APPLE extension functions - *------------------------------------------------------------------------*/ - -/* GL_APPLE_copy_texture_levels */ -#ifndef GL_APPLE_copy_texture_levels -#define GL_APPLE_copy_texture_levels 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); -#endif -typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); -#endif - -/* GL_APPLE_framebuffer_multisample */ -#ifndef GL_APPLE_framebuffer_multisample -#define GL_APPLE_framebuffer_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); -#endif - -/* GL_APPLE_rgb_422 */ -#ifndef GL_APPLE_rgb_422 -#define GL_APPLE_rgb_422 1 -#endif - -/* GL_APPLE_sync */ -#ifndef GL_APPLE_sync -#define GL_APPLE_sync 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -#endif -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -#endif - -/* GL_APPLE_texture_format_BGRA8888 */ -#ifndef GL_APPLE_texture_format_BGRA8888 -#define GL_APPLE_texture_format_BGRA8888 1 -#endif - -/* GL_APPLE_texture_max_level */ -#ifndef GL_APPLE_texture_max_level -#define GL_APPLE_texture_max_level 1 -#endif - -/*------------------------------------------------------------------------* - * ARM extension functions - *------------------------------------------------------------------------*/ - -/* GL_ARM_mali_program_binary */ -#ifndef GL_ARM_mali_program_binary -#define GL_ARM_mali_program_binary 1 -#endif - -/* GL_ARM_mali_shader_binary */ -#ifndef GL_ARM_mali_shader_binary -#define GL_ARM_mali_shader_binary 1 -#endif - -/* GL_ARM_rgba8 */ -#ifndef GL_ARM_rgba8 -#define GL_ARM_rgba8 1 -#endif - -/*------------------------------------------------------------------------* - * EXT extension functions - *------------------------------------------------------------------------*/ - -/* GL_EXT_blend_minmax */ -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#endif - -/* GL_EXT_color_buffer_half_float */ -#ifndef GL_EXT_color_buffer_half_float -#define GL_EXT_color_buffer_half_float 1 -#endif - -/* GL_EXT_debug_label */ -#ifndef GL_EXT_debug_label -#define GL_EXT_debug_label 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -#endif -typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -#endif - -/* GL_EXT_debug_marker */ -#ifndef GL_EXT_debug_marker -#define GL_EXT_debug_marker 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); -GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); -GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void); -#endif -typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); -#endif - -/* GL_EXT_discard_framebuffer */ -#ifndef GL_EXT_discard_framebuffer -#define GL_EXT_discard_framebuffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); -#endif -typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -#endif - -#ifndef GL_EXT_disjoint_timer_query -#define GL_EXT_disjoint_timer_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target); -GL_APICALL void GL_APIENTRY glQueryCounterEXT (GLuint id, GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectivEXT (GLuint id, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params); -#endif -typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params); -#endif /* GL_EXT_disjoint_timer_query */ - -#ifndef GL_EXT_draw_buffers -#define GL_EXT_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawBuffersEXT (GLsizei n, const GLenum *bufs); -#endif -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum *bufs); -#endif /* GL_EXT_draw_buffers */ - -/* GL_EXT_map_buffer_range */ -#ifndef GL_EXT_map_buffer_range -#define GL_EXT_map_buffer_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void* GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length); -#endif -typedef void* (GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -#endif - -/* GL_EXT_multisampled_render_to_texture */ -#ifndef GL_EXT_multisampled_render_to_texture -#define GL_EXT_multisampled_render_to_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#endif -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#endif - -/* GL_EXT_multiview_draw_buffers */ -#ifndef GL_EXT_multiview_draw_buffers -#define GL_EXT_multiview_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index); -GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices); -GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data); -#endif -typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data); -#endif - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); -#endif - -/* GL_EXT_occlusion_query_boolean */ -#ifndef GL_EXT_occlusion_query_boolean -#define GL_EXT_occlusion_query_boolean 1 -/* All entry points also exist in GL_EXT_disjoint_timer_query */ -#endif - -/* GL_EXT_read_format_bgra */ -#ifndef GL_EXT_read_format_bgra -#define GL_EXT_read_format_bgra 1 -#endif - -/* GL_EXT_robustness */ -#ifndef GL_EXT_robustness -#define GL_EXT_robustness 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void); -GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); -GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params); -#endif -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -#endif - -/* GL_EXT_separate_shader_objects */ -#ifndef GL_EXT_separate_shader_objects -#define GL_EXT_separate_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings); -GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline); -GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint x); -GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint x, GLint y); -GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z); -GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat x); -GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -#endif -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint x); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint x, GLint y); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat x); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -#endif - -/* GL_EXT_shader_framebuffer_fetch */ -#ifndef GL_EXT_shader_framebuffer_fetch -#define GL_EXT_shader_framebuffer_fetch 1 -#endif - -/* GL_EXT_shader_texture_lod */ -#ifndef GL_EXT_shader_texture_lod -#define GL_EXT_shader_texture_lod 1 -#endif - -/* GL_EXT_shadow_samplers */ -#ifndef GL_EXT_shadow_samplers -#define GL_EXT_shadow_samplers 1 -#endif - -/* GL_EXT_sRGB */ -#ifndef GL_EXT_sRGB -#define GL_EXT_sRGB 1 -#endif - -/* GL_EXT_texture_compression_dxt1 */ -#ifndef GL_EXT_texture_compression_dxt1 -#define GL_EXT_texture_compression_dxt1 1 -#endif - -/* GL_EXT_texture_filter_anisotropic */ -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#endif - -/* GL_EXT_texture_format_BGRA8888 */ -#ifndef GL_EXT_texture_format_BGRA8888 -#define GL_EXT_texture_format_BGRA8888 1 -#endif - -/* GL_EXT_texture_rg */ -#ifndef GL_EXT_texture_rg -#define GL_EXT_texture_rg 1 -#endif - -/* GL_EXT_texture_storage */ -#ifndef GL_EXT_texture_storage -#define GL_EXT_texture_storage 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif - -/* GL_EXT_texture_type_2_10_10_10_REV */ -#ifndef GL_EXT_texture_type_2_10_10_10_REV -#define GL_EXT_texture_type_2_10_10_10_REV 1 -#endif - -/* GL_EXT_unpack_subimage */ -#ifndef GL_EXT_unpack_subimage -#define GL_EXT_unpack_subimage 1 -#endif - -/*------------------------------------------------------------------------* - * DMP extension functions - *------------------------------------------------------------------------*/ - -/* GL_DMP_shader_binary */ -#ifndef GL_DMP_shader_binary -#define GL_DMP_shader_binary 1 -#endif - -/*------------------------------------------------------------------------* - * FJ extension functions - *------------------------------------------------------------------------*/ - -/* GL_FJ_shader_binary_GCCSO */ -#ifndef GL_FJ_shader_binary_GCCSO -#define GL_FJ_shader_binary_GCCSO 1 -#endif - -/*------------------------------------------------------------------------* - * IMG extension functions - *------------------------------------------------------------------------*/ - -/* GL_IMG_program_binary */ -#ifndef GL_IMG_program_binary -#define GL_IMG_program_binary 1 -#endif - -/* GL_IMG_read_format */ -#ifndef GL_IMG_read_format -#define GL_IMG_read_format 1 -#endif - -/* GL_IMG_shader_binary */ -#ifndef GL_IMG_shader_binary -#define GL_IMG_shader_binary 1 -#endif - -/* GL_IMG_texture_compression_pvrtc */ -#ifndef GL_IMG_texture_compression_pvrtc -#define GL_IMG_texture_compression_pvrtc 1 -#endif - -/* GL_IMG_texture_compression_pvrtc2 */ -#ifndef GL_IMG_texture_compression_pvrtc2 -#define GL_IMG_texture_compression_pvrtc2 1 -#endif - -/* GL_IMG_multisampled_render_to_texture */ -#ifndef GL_IMG_multisampled_render_to_texture -#define GL_IMG_multisampled_render_to_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#endif -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#endif - -/*------------------------------------------------------------------------* - * NV extension functions - *------------------------------------------------------------------------*/ - -/* GL_NV_coverage_sample */ -#ifndef GL_NV_coverage_sample -#define GL_NV_coverage_sample 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask); -GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation); -#endif -typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask); -typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation); -#endif - -/* GL_NV_depth_nonlinear */ -#ifndef GL_NV_depth_nonlinear -#define GL_NV_depth_nonlinear 1 -#endif - -/* GL_NV_draw_buffers */ -#ifndef GL_NV_draw_buffers -#define GL_NV_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs); -#endif -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs); -#endif - -/* GL_NV_draw_instanced */ -#ifndef GL_NV_draw_instanced -#define GL_NV_draw_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedNV (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedNV (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif - -/* GL_NV_fbo_color_attachments */ -#ifndef GL_NV_fbo_color_attachments -#define GL_NV_fbo_color_attachments 1 -#endif - -/* GL_NV_fence */ -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); -GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); -GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint fence); -GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint fence); -GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint fence); -GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint fence, GLenum condition); -#endif -typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -#endif - -/* GL_NV_framebuffer_blit */ -#ifndef GL_NV_framebuffer_blit -#define GL_NV_framebuffer_blit 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlitFramebufferNV (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif - -/* GL_NV_framebuffer_multisample */ -#ifndef GL_NV_framebuffer_multisample -#define GL_NV_framebuffer_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleNV ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif - -/* GL_NV_generate_mipmap_sRGB */ -#ifndef GL_NV_generate_mipmap_sRGB -#define GL_NV_generate_mipmap_sRGB 1 -#endif - -/* GL_NV_instanced_arrays */ -#ifndef GL_NV_instanced_arrays -#define GL_NV_instanced_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glVertexAttribDivisorNV (GLuint index, GLuint divisor); -#endif -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor); -#endif - -/* GL_NV_read_buffer */ -#ifndef GL_NV_read_buffer -#define GL_NV_read_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode); -#endif -typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode); -#endif - -/* GL_NV_read_buffer_front */ -#ifndef GL_NV_read_buffer_front -#define GL_NV_read_buffer_front 1 -#endif - -/* GL_NV_read_depth */ -#ifndef GL_NV_read_depth -#define GL_NV_read_depth 1 -#endif - -/* GL_NV_read_depth_stencil */ -#ifndef GL_NV_read_depth_stencil -#define GL_NV_read_depth_stencil 1 -#endif - -/* GL_NV_read_stencil */ -#ifndef GL_NV_read_stencil -#define GL_NV_read_stencil 1 -#endif - -/* GL_NV_shadow_samplers_array */ -#ifndef GL_NV_shadow_samplers_array -#define GL_NV_shadow_samplers_array 1 -#endif - -/* GL_NV_shadow_samplers_cube */ -#ifndef GL_NV_shadow_samplers_cube -#define GL_NV_shadow_samplers_cube 1 -#endif - -/* GL_NV_sRGB_formats */ -#ifndef GL_NV_sRGB_formats -#define GL_NV_sRGB_formats 1 -#endif - -/* GL_NV_texture_border_clamp */ -#ifndef GL_NV_texture_border_clamp -#define GL_NV_texture_border_clamp 1 -#endif - -/* GL_NV_texture_compression_s3tc_update */ -#ifndef GL_NV_texture_compression_s3tc_update -#define GL_NV_texture_compression_s3tc_update 1 -#endif - -/* GL_NV_texture_npot_2D_mipmap */ -#ifndef GL_NV_texture_npot_2D_mipmap -#define GL_NV_texture_npot_2D_mipmap 1 -#endif - -/*------------------------------------------------------------------------* - * QCOM extension functions - *------------------------------------------------------------------------*/ - -/* GL_QCOM_alpha_test */ -#ifndef GL_QCOM_alpha_test -#define GL_QCOM_alpha_test 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref); -#endif -typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref); -#endif - -/* GL_QCOM_binning_control */ -#ifndef GL_QCOM_binning_control -#define GL_QCOM_binning_control 1 -#endif - -/* GL_QCOM_driver_control */ -#ifndef GL_QCOM_driver_control -#define GL_QCOM_driver_control 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); -GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); -GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); -GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); -#endif -typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); -typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); -typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); -typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); -#endif - -/* GL_QCOM_extended_get */ -#ifndef GL_QCOM_extended_get -#define GL_QCOM_extended_get 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); -GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); -GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); -GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); -GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels); -GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params); -#endif -typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); -typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels); -typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params); -#endif - -/* GL_QCOM_extended_get2 */ -#ifndef GL_QCOM_extended_get2 -#define GL_QCOM_extended_get2 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); -GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); -GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); -GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); -#endif -typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); -typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); -typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); -#endif - -/* GL_QCOM_perfmon_global_mode */ -#ifndef GL_QCOM_perfmon_global_mode -#define GL_QCOM_perfmon_global_mode 1 -#endif - -/* GL_QCOM_writeonly_rendering */ -#ifndef GL_QCOM_writeonly_rendering -#define GL_QCOM_writeonly_rendering 1 -#endif - -/* GL_QCOM_tiled_rendering */ -#ifndef GL_QCOM_tiled_rendering -#define GL_QCOM_tiled_rendering 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); -GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); -#endif -typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); -typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); -#endif - -/*------------------------------------------------------------------------* - * VIV extension tokens - *------------------------------------------------------------------------*/ - -/* GL_VIV_shader_binary */ -#ifndef GL_VIV_shader_binary -#define GL_VIV_shader_binary 1 -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __gl2ext_h_ */ diff --git a/lib/osx/include/SDL_opengles2_gl2platform.h b/lib/osx/include/SDL_opengles2_gl2platform.h deleted file mode 100644 index c325686..0000000 --- a/lib/osx/include/SDL_opengles2_gl2platform.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __gl2platform_h_ -#define __gl2platform_h_ - -/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */ - -/* - * This document is licensed under the SGI Free Software B License Version - * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . - */ - -/* Platform-specific types and definitions for OpenGL ES 2.X gl2.h - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * You are encouraged to submit all modifications to the Khronos group so that - * they can be included in future versions of this file. Please submit changes - * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) - * by filing a bug against product "OpenGL-ES" component "Registry". - */ - -/*#include <KHR/khrplatform.h>*/ - -#ifndef GL_APICALL -#define GL_APICALL KHRONOS_APICALL -#endif - -#ifndef GL_APIENTRY -#define GL_APIENTRY KHRONOS_APIENTRY -#endif - -#endif /* __gl2platform_h_ */ diff --git a/lib/osx/include/SDL_opengles2_khrplatform.h b/lib/osx/include/SDL_opengles2_khrplatform.h deleted file mode 100644 index c9e6f17..0000000 --- a/lib/osx/include/SDL_opengles2_khrplatform.h +++ /dev/null @@ -1,282 +0,0 @@ -#ifndef __khrplatform_h_ -#define __khrplatform_h_ - -/* -** Copyright (c) 2008-2009 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Khronos platform-specific types and definitions. - * - * $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $ - * - * Adopters may modify this file to suit their platform. Adopters are - * encouraged to submit platform specific modifications to the Khronos - * group so that they can be included in future versions of this file. - * Please submit changes by sending them to the public Khronos Bugzilla - * (http://khronos.org/bugzilla) by filing a bug against product - * "Khronos (general)" component "Registry". - * - * A predefined template which fills in some of the bug fields can be - * reached using http://tinyurl.com/khrplatform-h-bugreport, but you - * must create a Bugzilla login first. - * - * - * See the Implementer's Guidelines for information about where this file - * should be located on your system and for more details of its use: - * http://www.khronos.org/registry/implementers_guide.pdf - * - * This file should be included as - * #include <KHR/khrplatform.h> - * by Khronos client API header files that use its types and defines. - * - * The types in khrplatform.h should only be used to define API-specific types. - * - * Types defined in khrplatform.h: - * khronos_int8_t signed 8 bit - * khronos_uint8_t unsigned 8 bit - * khronos_int16_t signed 16 bit - * khronos_uint16_t unsigned 16 bit - * khronos_int32_t signed 32 bit - * khronos_uint32_t unsigned 32 bit - * khronos_int64_t signed 64 bit - * khronos_uint64_t unsigned 64 bit - * khronos_intptr_t signed same number of bits as a pointer - * khronos_uintptr_t unsigned same number of bits as a pointer - * khronos_ssize_t signed size - * khronos_usize_t unsigned size - * khronos_float_t signed 32 bit floating point - * khronos_time_ns_t unsigned 64 bit time in nanoseconds - * khronos_utime_nanoseconds_t unsigned time interval or absolute time in - * nanoseconds - * khronos_stime_nanoseconds_t signed time interval in nanoseconds - * khronos_boolean_enum_t enumerated boolean type. This should - * only be used as a base type when a client API's boolean type is - * an enum. Client APIs which use an integer or other type for - * booleans cannot use this as the base type for their boolean. - * - * Tokens defined in khrplatform.h: - * - * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. - * - * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. - * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. - * - * Calling convention macros defined in this file: - * KHRONOS_APICALL - * KHRONOS_APIENTRY - * KHRONOS_APIATTRIBUTES - * - * These may be used in function prototypes as: - * - * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( - * int arg1, - * int arg2) KHRONOS_APIATTRIBUTES; - */ - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APICALL - *------------------------------------------------------------------------- - * This precedes the return type of the function in the function prototype. - */ -#if defined(_WIN32) && !defined(__SCITECH_SNAP__) -# define KHRONOS_APICALL __declspec(dllimport) -#elif defined (__SYMBIAN32__) -# define KHRONOS_APICALL IMPORT_C -#else -# define KHRONOS_APICALL -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIENTRY - *------------------------------------------------------------------------- - * This follows the return type of the function and precedes the function - * name in the function prototype. - */ -#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) - /* Win32 but not WinCE */ -# define KHRONOS_APIENTRY __stdcall -#else -# define KHRONOS_APIENTRY -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIATTRIBUTES - *------------------------------------------------------------------------- - * This follows the closing parenthesis of the function prototype arguments. - */ -#if defined (__ARMCC_2__) -#define KHRONOS_APIATTRIBUTES __softfp -#else -#define KHRONOS_APIATTRIBUTES -#endif - -/*------------------------------------------------------------------------- - * basic type definitions - *-----------------------------------------------------------------------*/ -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) - - -/* - * Using <stdint.h> - */ -#include <stdint.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__VMS ) || defined(__sgi) - -/* - * Using <inttypes.h> - */ -#include <inttypes.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) - -/* - * Win32 - */ -typedef __int32 khronos_int32_t; -typedef unsigned __int32 khronos_uint32_t; -typedef __int64 khronos_int64_t; -typedef unsigned __int64 khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__sun__) || defined(__digital__) - -/* - * Sun or Digital - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#if defined(__arch64__) || defined(_LP64) -typedef long int khronos_int64_t; -typedef unsigned long int khronos_uint64_t; -#else -typedef long long int khronos_int64_t; -typedef unsigned long long int khronos_uint64_t; -#endif /* __arch64__ */ -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif 0 - -/* - * Hypothetical platform with no float or int64 support - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#define KHRONOS_SUPPORT_INT64 0 -#define KHRONOS_SUPPORT_FLOAT 0 - -#else - -/* - * Generic fallback - */ -#include <stdint.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#endif - - -/* - * Types that are (so far) the same on all platforms - */ -typedef signed char khronos_int8_t; -typedef unsigned char khronos_uint8_t; -typedef signed short int khronos_int16_t; -typedef unsigned short int khronos_uint16_t; - -/* - * Types that differ between LLP64 and LP64 architectures - in LLP64, - * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears - * to be the only LLP64 architecture in current use. - */ -#ifdef _WIN64 -typedef signed long long int khronos_intptr_t; -typedef unsigned long long int khronos_uintptr_t; -typedef signed long long int khronos_ssize_t; -typedef unsigned long long int khronos_usize_t; -#else -typedef signed long int khronos_intptr_t; -typedef unsigned long int khronos_uintptr_t; -typedef signed long int khronos_ssize_t; -typedef unsigned long int khronos_usize_t; -#endif - -#if KHRONOS_SUPPORT_FLOAT -/* - * Float type - */ -typedef float khronos_float_t; -#endif - -#if KHRONOS_SUPPORT_INT64 -/* Time types - * - * These types can be used to represent a time interval in nanoseconds or - * an absolute Unadjusted System Time. Unadjusted System Time is the number - * of nanoseconds since some arbitrary system event (e.g. since the last - * time the system booted). The Unadjusted System Time is an unsigned - * 64 bit value that wraps back to 0 every 584 years. Time intervals - * may be either signed or unsigned. - */ -typedef khronos_uint64_t khronos_utime_nanoseconds_t; -typedef khronos_int64_t khronos_stime_nanoseconds_t; -#endif - -/* - * Dummy value used to pad enum types to 32 bits. - */ -#ifndef KHRONOS_MAX_ENUM -#define KHRONOS_MAX_ENUM 0x7FFFFFFF -#endif - -/* - * Enumerated boolean type - * - * Values other than zero should be considered to be true. Therefore - * comparisons should not be made against KHRONOS_TRUE. - */ -typedef enum { - KHRONOS_FALSE = 0, - KHRONOS_TRUE = 1, - KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM -} khronos_boolean_enum_t; - -#endif /* __khrplatform_h_ */ diff --git a/lib/osx/include/SDL_pixels.h b/lib/osx/include/SDL_pixels.h deleted file mode 100644 index cf6a33f..0000000 --- a/lib/osx/include/SDL_pixels.h +++ /dev/null @@ -1,468 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_pixels.h - * - * Header for the enumerated pixel format definitions. - */ - -#ifndef _SDL_pixels_h -#define _SDL_pixels_h - -#include "SDL_stdinc.h" -#include "SDL_endian.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \name Transparency definitions - * - * These define alpha as the opacity of a surface. - */ -/* @{ */ -#define SDL_ALPHA_OPAQUE 255 -#define SDL_ALPHA_TRANSPARENT 0 -/* @} */ - -/** Pixel type. */ -enum -{ - SDL_PIXELTYPE_UNKNOWN, - SDL_PIXELTYPE_INDEX1, - SDL_PIXELTYPE_INDEX4, - SDL_PIXELTYPE_INDEX8, - SDL_PIXELTYPE_PACKED8, - SDL_PIXELTYPE_PACKED16, - SDL_PIXELTYPE_PACKED32, - SDL_PIXELTYPE_ARRAYU8, - SDL_PIXELTYPE_ARRAYU16, - SDL_PIXELTYPE_ARRAYU32, - SDL_PIXELTYPE_ARRAYF16, - SDL_PIXELTYPE_ARRAYF32 -}; - -/** Bitmap pixel order, high bit -> low bit. */ -enum -{ - SDL_BITMAPORDER_NONE, - SDL_BITMAPORDER_4321, - SDL_BITMAPORDER_1234 -}; - -/** Packed component order, high bit -> low bit. */ -enum -{ - SDL_PACKEDORDER_NONE, - SDL_PACKEDORDER_XRGB, - SDL_PACKEDORDER_RGBX, - SDL_PACKEDORDER_ARGB, - SDL_PACKEDORDER_RGBA, - SDL_PACKEDORDER_XBGR, - SDL_PACKEDORDER_BGRX, - SDL_PACKEDORDER_ABGR, - SDL_PACKEDORDER_BGRA -}; - -/** Array component order, low byte -> high byte. */ -/* !!! FIXME: in 2.1, make these not overlap differently with - !!! FIXME: SDL_PACKEDORDER_*, so we can simplify SDL_ISPIXELFORMAT_ALPHA */ -enum -{ - SDL_ARRAYORDER_NONE, - SDL_ARRAYORDER_RGB, - SDL_ARRAYORDER_RGBA, - SDL_ARRAYORDER_ARGB, - SDL_ARRAYORDER_BGR, - SDL_ARRAYORDER_BGRA, - SDL_ARRAYORDER_ABGR -}; - -/** Packed component layout. */ -enum -{ - SDL_PACKEDLAYOUT_NONE, - SDL_PACKEDLAYOUT_332, - SDL_PACKEDLAYOUT_4444, - SDL_PACKEDLAYOUT_1555, - SDL_PACKEDLAYOUT_5551, - SDL_PACKEDLAYOUT_565, - SDL_PACKEDLAYOUT_8888, - SDL_PACKEDLAYOUT_2101010, - SDL_PACKEDLAYOUT_1010102 -}; - -#define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D) - -#define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \ - ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \ - ((bits) << 8) | ((bytes) << 0)) - -#define SDL_PIXELFLAG(X) (((X) >> 28) & 0x0F) -#define SDL_PIXELTYPE(X) (((X) >> 24) & 0x0F) -#define SDL_PIXELORDER(X) (((X) >> 20) & 0x0F) -#define SDL_PIXELLAYOUT(X) (((X) >> 16) & 0x0F) -#define SDL_BITSPERPIXEL(X) (((X) >> 8) & 0xFF) -#define SDL_BYTESPERPIXEL(X) \ - (SDL_ISPIXELFORMAT_FOURCC(X) ? \ - ((((X) == SDL_PIXELFORMAT_YUY2) || \ - ((X) == SDL_PIXELFORMAT_UYVY) || \ - ((X) == SDL_PIXELFORMAT_YVYU)) ? 2 : 1) : (((X) >> 0) & 0xFF)) - -#define SDL_ISPIXELFORMAT_INDEXED(format) \ - (!SDL_ISPIXELFORMAT_FOURCC(format) && \ - ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX1) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX4) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX8))) - -#define SDL_ISPIXELFORMAT_PACKED(format) \ - (!SDL_ISPIXELFORMAT_FOURCC(format) && \ - ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED8) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED16) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED32))) - -#define SDL_ISPIXELFORMAT_ARRAY(format) \ - (!SDL_ISPIXELFORMAT_FOURCC(format) && \ - ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU8) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU16) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU32) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF16) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF32))) - -#define SDL_ISPIXELFORMAT_ALPHA(format) \ - ((SDL_ISPIXELFORMAT_PACKED(format) && \ - ((SDL_PIXELORDER(format) == SDL_PACKEDORDER_ARGB) || \ - (SDL_PIXELORDER(format) == SDL_PACKEDORDER_RGBA) || \ - (SDL_PIXELORDER(format) == SDL_PACKEDORDER_ABGR) || \ - (SDL_PIXELORDER(format) == SDL_PACKEDORDER_BGRA))) || \ - (SDL_ISPIXELFORMAT_ARRAY(format) && \ - ((SDL_PIXELORDER(format) == SDL_ARRAYORDER_ARGB) || \ - (SDL_PIXELORDER(format) == SDL_ARRAYORDER_RGBA) || \ - (SDL_PIXELORDER(format) == SDL_ARRAYORDER_ABGR) || \ - (SDL_PIXELORDER(format) == SDL_ARRAYORDER_BGRA)))) - -/* The flag is set to 1 because 0x1? is not in the printable ASCII range */ -#define SDL_ISPIXELFORMAT_FOURCC(format) \ - ((format) && (SDL_PIXELFLAG(format) != 1)) - -/* Note: If you modify this list, update SDL_GetPixelFormatName() */ -enum -{ - SDL_PIXELFORMAT_UNKNOWN, - SDL_PIXELFORMAT_INDEX1LSB = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_4321, 0, - 1, 0), - SDL_PIXELFORMAT_INDEX1MSB = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_1234, 0, - 1, 0), - SDL_PIXELFORMAT_INDEX4LSB = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_4321, 0, - 4, 0), - SDL_PIXELFORMAT_INDEX4MSB = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_1234, 0, - 4, 0), - SDL_PIXELFORMAT_INDEX8 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX8, 0, 0, 8, 1), - SDL_PIXELFORMAT_RGB332 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED8, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_332, 8, 1), - SDL_PIXELFORMAT_RGB444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_4444, 12, 2), - SDL_PIXELFORMAT_RGB555 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_1555, 15, 2), - SDL_PIXELFORMAT_BGR555 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_1555, 15, 2), - SDL_PIXELFORMAT_ARGB4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_RGBA4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, - SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_ABGR4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, - SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_BGRA4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, - SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_ARGB1555 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_1555, 16, 2), - SDL_PIXELFORMAT_RGBA5551 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, - SDL_PACKEDLAYOUT_5551, 16, 2), - SDL_PIXELFORMAT_ABGR1555 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, - SDL_PACKEDLAYOUT_1555, 16, 2), - SDL_PIXELFORMAT_BGRA5551 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, - SDL_PACKEDLAYOUT_5551, 16, 2), - SDL_PIXELFORMAT_RGB565 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_565, 16, 2), - SDL_PIXELFORMAT_BGR565 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_565, 16, 2), - SDL_PIXELFORMAT_RGB24 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_RGB, 0, - 24, 3), - SDL_PIXELFORMAT_BGR24 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_BGR, 0, - 24, 3), - SDL_PIXELFORMAT_RGB888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_8888, 24, 4), - SDL_PIXELFORMAT_RGBX8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBX, - SDL_PACKEDLAYOUT_8888, 24, 4), - SDL_PIXELFORMAT_BGR888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_8888, 24, 4), - SDL_PIXELFORMAT_BGRX8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRX, - SDL_PACKEDLAYOUT_8888, 24, 4), - SDL_PIXELFORMAT_ARGB8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_8888, 32, 4), - SDL_PIXELFORMAT_RGBA8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBA, - SDL_PACKEDLAYOUT_8888, 32, 4), - SDL_PIXELFORMAT_ABGR8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ABGR, - SDL_PACKEDLAYOUT_8888, 32, 4), - SDL_PIXELFORMAT_BGRA8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRA, - SDL_PACKEDLAYOUT_8888, 32, 4), - SDL_PIXELFORMAT_ARGB2101010 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_2101010, 32, 4), - - /* Aliases for RGBA byte arrays of color data, for the current platform */ -#if SDL_BYTEORDER == SDL_BIG_ENDIAN - SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_RGBA8888, - SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_ARGB8888, - SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_BGRA8888, - SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_ABGR8888, -#else - SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_ABGR8888, - SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_BGRA8888, - SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_ARGB8888, - SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_RGBA8888, -#endif - - SDL_PIXELFORMAT_YV12 = /**< Planar mode: Y + V + U (3 planes) */ - SDL_DEFINE_PIXELFOURCC('Y', 'V', '1', '2'), - SDL_PIXELFORMAT_IYUV = /**< Planar mode: Y + U + V (3 planes) */ - SDL_DEFINE_PIXELFOURCC('I', 'Y', 'U', 'V'), - SDL_PIXELFORMAT_YUY2 = /**< Packed mode: Y0+U0+Y1+V0 (1 plane) */ - SDL_DEFINE_PIXELFOURCC('Y', 'U', 'Y', '2'), - SDL_PIXELFORMAT_UYVY = /**< Packed mode: U0+Y0+V0+Y1 (1 plane) */ - SDL_DEFINE_PIXELFOURCC('U', 'Y', 'V', 'Y'), - SDL_PIXELFORMAT_YVYU = /**< Packed mode: Y0+V0+Y1+U0 (1 plane) */ - SDL_DEFINE_PIXELFOURCC('Y', 'V', 'Y', 'U'), - SDL_PIXELFORMAT_NV12 = /**< Planar mode: Y + U/V interleaved (2 planes) */ - SDL_DEFINE_PIXELFOURCC('N', 'V', '1', '2'), - SDL_PIXELFORMAT_NV21 = /**< Planar mode: Y + V/U interleaved (2 planes) */ - SDL_DEFINE_PIXELFOURCC('N', 'V', '2', '1') -}; - -typedef struct SDL_Color -{ - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -} SDL_Color; -#define SDL_Colour SDL_Color - -typedef struct SDL_Palette -{ - int ncolors; - SDL_Color *colors; - Uint32 version; - int refcount; -} SDL_Palette; - -/** - * \note Everything in the pixel format structure is read-only. - */ -typedef struct SDL_PixelFormat -{ - Uint32 format; - SDL_Palette *palette; - Uint8 BitsPerPixel; - Uint8 BytesPerPixel; - Uint8 padding[2]; - Uint32 Rmask; - Uint32 Gmask; - Uint32 Bmask; - Uint32 Amask; - Uint8 Rloss; - Uint8 Gloss; - Uint8 Bloss; - Uint8 Aloss; - Uint8 Rshift; - Uint8 Gshift; - Uint8 Bshift; - Uint8 Ashift; - int refcount; - struct SDL_PixelFormat *next; -} SDL_PixelFormat; - -/** - * \brief Get the human readable name of a pixel format - */ -extern DECLSPEC const char* SDLCALL SDL_GetPixelFormatName(Uint32 format); - -/** - * \brief Convert one of the enumerated pixel formats to a bpp and RGBA masks. - * - * \return SDL_TRUE, or SDL_FALSE if the conversion wasn't possible. - * - * \sa SDL_MasksToPixelFormatEnum() - */ -extern DECLSPEC SDL_bool SDLCALL SDL_PixelFormatEnumToMasks(Uint32 format, - int *bpp, - Uint32 * Rmask, - Uint32 * Gmask, - Uint32 * Bmask, - Uint32 * Amask); - -/** - * \brief Convert a bpp and RGBA masks to an enumerated pixel format. - * - * \return The pixel format, or ::SDL_PIXELFORMAT_UNKNOWN if the conversion - * wasn't possible. - * - * \sa SDL_PixelFormatEnumToMasks() - */ -extern DECLSPEC Uint32 SDLCALL SDL_MasksToPixelFormatEnum(int bpp, - Uint32 Rmask, - Uint32 Gmask, - Uint32 Bmask, - Uint32 Amask); - -/** - * \brief Create an SDL_PixelFormat structure from a pixel format enum. - */ -extern DECLSPEC SDL_PixelFormat * SDLCALL SDL_AllocFormat(Uint32 pixel_format); - -/** - * \brief Free an SDL_PixelFormat structure. - */ -extern DECLSPEC void SDLCALL SDL_FreeFormat(SDL_PixelFormat *format); - -/** - * \brief Create a palette structure with the specified number of color - * entries. - * - * \return A new palette, or NULL if there wasn't enough memory. - * - * \note The palette entries are initialized to white. - * - * \sa SDL_FreePalette() - */ -extern DECLSPEC SDL_Palette *SDLCALL SDL_AllocPalette(int ncolors); - -/** - * \brief Set the palette for a pixel format structure. - */ -extern DECLSPEC int SDLCALL SDL_SetPixelFormatPalette(SDL_PixelFormat * format, - SDL_Palette *palette); - -/** - * \brief Set a range of colors in a palette. - * - * \param palette The palette to modify. - * \param colors An array of colors to copy into the palette. - * \param firstcolor The index of the first palette entry to modify. - * \param ncolors The number of entries to modify. - * - * \return 0 on success, or -1 if not all of the colors could be set. - */ -extern DECLSPEC int SDLCALL SDL_SetPaletteColors(SDL_Palette * palette, - const SDL_Color * colors, - int firstcolor, int ncolors); - -/** - * \brief Free a palette created with SDL_AllocPalette(). - * - * \sa SDL_AllocPalette() - */ -extern DECLSPEC void SDLCALL SDL_FreePalette(SDL_Palette * palette); - -/** - * \brief Maps an RGB triple to an opaque pixel value for a given pixel format. - * - * \sa SDL_MapRGBA - */ -extern DECLSPEC Uint32 SDLCALL SDL_MapRGB(const SDL_PixelFormat * format, - Uint8 r, Uint8 g, Uint8 b); - -/** - * \brief Maps an RGBA quadruple to a pixel value for a given pixel format. - * - * \sa SDL_MapRGB - */ -extern DECLSPEC Uint32 SDLCALL SDL_MapRGBA(const SDL_PixelFormat * format, - Uint8 r, Uint8 g, Uint8 b, - Uint8 a); - -/** - * \brief Get the RGB components from a pixel of the specified format. - * - * \sa SDL_GetRGBA - */ -extern DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixel, - const SDL_PixelFormat * format, - Uint8 * r, Uint8 * g, Uint8 * b); - -/** - * \brief Get the RGBA components from a pixel of the specified format. - * - * \sa SDL_GetRGB - */ -extern DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixel, - const SDL_PixelFormat * format, - Uint8 * r, Uint8 * g, Uint8 * b, - Uint8 * a); - -/** - * \brief Calculate a 256 entry gamma ramp for a gamma value. - */ -extern DECLSPEC void SDLCALL SDL_CalculateGammaRamp(float gamma, Uint16 * ramp); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_pixels_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_platform.h b/lib/osx/include/SDL_platform.h deleted file mode 100644 index 03cf170..0000000 --- a/lib/osx/include/SDL_platform.h +++ /dev/null @@ -1,185 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_platform.h - * - * Try to get a standard set of platform defines. - */ - -#ifndef _SDL_platform_h -#define _SDL_platform_h - -#if defined(_AIX) -#undef __AIX__ -#define __AIX__ 1 -#endif -#if defined(__HAIKU__) -#undef __HAIKU__ -#define __HAIKU__ 1 -#endif -#if defined(bsdi) || defined(__bsdi) || defined(__bsdi__) -#undef __BSDI__ -#define __BSDI__ 1 -#endif -#if defined(_arch_dreamcast) -#undef __DREAMCAST__ -#define __DREAMCAST__ 1 -#endif -#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) -#undef __FREEBSD__ -#define __FREEBSD__ 1 -#endif -#if defined(hpux) || defined(__hpux) || defined(__hpux__) -#undef __HPUX__ -#define __HPUX__ 1 -#endif -#if defined(sgi) || defined(__sgi) || defined(__sgi__) || defined(_SGI_SOURCE) -#undef __IRIX__ -#define __IRIX__ 1 -#endif -#if (defined(linux) || defined(__linux) || defined(__linux__)) -#undef __LINUX__ -#define __LINUX__ 1 -#endif -#if defined(ANDROID) || defined(__ANDROID__) -#undef __ANDROID__ -#undef __LINUX__ /* do we need to do this? */ -#define __ANDROID__ 1 -#endif - -#if defined(__APPLE__) -/* lets us know what version of Mac OS X we're compiling on */ -#include "AvailabilityMacros.h" -#include "TargetConditionals.h" -#if TARGET_OS_TV -#undef __TVOS__ -#define __TVOS__ 1 -#endif -#if TARGET_OS_IPHONE -/* if compiling for iOS */ -#undef __IPHONEOS__ -#define __IPHONEOS__ 1 -#undef __MACOSX__ -#else -/* if not compiling for iOS */ -#undef __MACOSX__ -#define __MACOSX__ 1 -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 -# error SDL for Mac OS X only supports deploying on 10.6 and above. -#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1060 */ -#endif /* TARGET_OS_IPHONE */ -#endif /* defined(__APPLE__) */ - -#if defined(__NetBSD__) -#undef __NETBSD__ -#define __NETBSD__ 1 -#endif -#if defined(__OpenBSD__) -#undef __OPENBSD__ -#define __OPENBSD__ 1 -#endif -#if defined(__OS2__) -#undef __OS2__ -#define __OS2__ 1 -#endif -#if defined(osf) || defined(__osf) || defined(__osf__) || defined(_OSF_SOURCE) -#undef __OSF__ -#define __OSF__ 1 -#endif -#if defined(__QNXNTO__) -#undef __QNXNTO__ -#define __QNXNTO__ 1 -#endif -#if defined(riscos) || defined(__riscos) || defined(__riscos__) -#undef __RISCOS__ -#define __RISCOS__ 1 -#endif -#if defined(__sun) && defined(__SVR4) -#undef __SOLARIS__ -#define __SOLARIS__ 1 -#endif - -#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) -/* Try to find out if we're compiling for WinRT or non-WinRT */ -/* If _USING_V110_SDK71_ is defined it means we are using the v110_xp or v120_xp toolset. */ -#if (defined(_MSC_VER) && (_MSC_VER >= 1700) && !_USING_V110_SDK71_) /* _MSC_VER==1700 for MSVC 2012 */ -#include <winapifamily.h> -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#undef __WINDOWS__ -#define __WINDOWS__ 1 -/* See if we're compiling for WinRT: */ -#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) -#undef __WINRT__ -#define __WINRT__ 1 -#endif -#else -#undef __WINDOWS__ -#define __WINDOWS__ 1 -#endif /* _MSC_VER < 1700 */ -#endif /* defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) */ - -#if defined(__WINDOWS__) -#undef __WIN32__ -#define __WIN32__ 1 -#endif -#if defined(__PSP__) -#undef __PSP__ -#define __PSP__ 1 -#endif - -/* The NACL compiler defines __native_client__ and __pnacl__ - * Ref: http://www.chromium.org/nativeclient/pnacl/stability-of-the-pnacl-bitcode-abi - */ -#if defined(__native_client__) -#undef __LINUX__ -#undef __NACL__ -#define __NACL__ 1 -#endif -#if defined(__pnacl__) -#undef __LINUX__ -#undef __PNACL__ -#define __PNACL__ 1 -/* PNACL with newlib supports static linking only */ -#define __SDL_NOGETPROCADDR__ -#endif - - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief Gets the name of the platform. - */ -extern DECLSPEC const char * SDLCALL SDL_GetPlatform (void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_platform_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_power.h b/lib/osx/include/SDL_power.h deleted file mode 100644 index 24c0501..0000000 --- a/lib/osx/include/SDL_power.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_power_h -#define _SDL_power_h - -/** - * \file SDL_power.h - * - * Header for the SDL power management routines. - */ - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief The basic state for the system's power supply. - */ -typedef enum -{ - SDL_POWERSTATE_UNKNOWN, /**< cannot determine power status */ - SDL_POWERSTATE_ON_BATTERY, /**< Not plugged in, running on the battery */ - SDL_POWERSTATE_NO_BATTERY, /**< Plugged in, no battery available */ - SDL_POWERSTATE_CHARGING, /**< Plugged in, charging battery */ - SDL_POWERSTATE_CHARGED /**< Plugged in, battery charged */ -} SDL_PowerState; - - -/** - * \brief Get the current power supply details. - * - * \param secs Seconds of battery life left. You can pass a NULL here if - * you don't care. Will return -1 if we can't determine a - * value, or we're not running on a battery. - * - * \param pct Percentage of battery life left, between 0 and 100. You can - * pass a NULL here if you don't care. Will return -1 if we - * can't determine a value, or we're not running on a battery. - * - * \return The state of the battery (if any). - */ -extern DECLSPEC SDL_PowerState SDLCALL SDL_GetPowerInfo(int *secs, int *pct); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_power_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_quit.h b/lib/osx/include/SDL_quit.h deleted file mode 100644 index cc06f28..0000000 --- a/lib/osx/include/SDL_quit.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_quit.h - * - * Include file for SDL quit event handling. - */ - -#ifndef _SDL_quit_h -#define _SDL_quit_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -/** - * \file SDL_quit.h - * - * An ::SDL_QUIT event is generated when the user tries to close the application - * window. If it is ignored or filtered out, the window will remain open. - * If it is not ignored or filtered, it is queued normally and the window - * is allowed to close. When the window is closed, screen updates will - * complete, but have no effect. - * - * SDL_Init() installs signal handlers for SIGINT (keyboard interrupt) - * and SIGTERM (system termination request), if handlers do not already - * exist, that generate ::SDL_QUIT events as well. There is no way - * to determine the cause of an ::SDL_QUIT event, but setting a signal - * handler in your application will override the default generation of - * quit events for that signal. - * - * \sa SDL_Quit() - */ - -/* There are no functions directly affecting the quit event */ - -#define SDL_QuitRequested() \ - (SDL_PumpEvents(), (SDL_PeepEvents(NULL,0,SDL_PEEKEVENT,SDL_QUIT,SDL_QUIT) > 0)) - -#endif /* _SDL_quit_h */ diff --git a/lib/osx/include/SDL_rect.h b/lib/osx/include/SDL_rect.h deleted file mode 100644 index bbcb9a3..0000000 --- a/lib/osx/include/SDL_rect.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_rect.h - * - * Header file for SDL_rect definition and management functions. - */ - -#ifndef _SDL_rect_h -#define _SDL_rect_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_pixels.h" -#include "SDL_rwops.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief The structure that defines a point - * - * \sa SDL_EnclosePoints - * \sa SDL_PointInRect - */ -typedef struct SDL_Point -{ - int x; - int y; -} SDL_Point; - -/** - * \brief A rectangle, with the origin at the upper left. - * - * \sa SDL_RectEmpty - * \sa SDL_RectEquals - * \sa SDL_HasIntersection - * \sa SDL_IntersectRect - * \sa SDL_UnionRect - * \sa SDL_EnclosePoints - */ -typedef struct SDL_Rect -{ - int x, y; - int w, h; -} SDL_Rect; - -/** - * \brief Returns true if point resides inside a rectangle. - */ -SDL_FORCE_INLINE SDL_bool SDL_PointInRect(const SDL_Point *p, const SDL_Rect *r) -{ - return ( (p->x >= r->x) && (p->x < (r->x + r->w)) && - (p->y >= r->y) && (p->y < (r->y + r->h)) ) ? SDL_TRUE : SDL_FALSE; -} - -/** - * \brief Returns true if the rectangle has no area. - */ -SDL_FORCE_INLINE SDL_bool SDL_RectEmpty(const SDL_Rect *r) -{ - return ((!r) || (r->w <= 0) || (r->h <= 0)) ? SDL_TRUE : SDL_FALSE; -} - -/** - * \brief Returns true if the two rectangles are equal. - */ -SDL_FORCE_INLINE SDL_bool SDL_RectEquals(const SDL_Rect *a, const SDL_Rect *b) -{ - return (a && b && (a->x == b->x) && (a->y == b->y) && - (a->w == b->w) && (a->h == b->h)) ? SDL_TRUE : SDL_FALSE; -} - -/** - * \brief Determine whether two rectangles intersect. - * - * \return SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasIntersection(const SDL_Rect * A, - const SDL_Rect * B); - -/** - * \brief Calculate the intersection of two rectangles. - * - * \return SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRect(const SDL_Rect * A, - const SDL_Rect * B, - SDL_Rect * result); - -/** - * \brief Calculate the union of two rectangles. - */ -extern DECLSPEC void SDLCALL SDL_UnionRect(const SDL_Rect * A, - const SDL_Rect * B, - SDL_Rect * result); - -/** - * \brief Calculate a minimal rectangle enclosing a set of points - * - * \return SDL_TRUE if any points were within the clipping rect - */ -extern DECLSPEC SDL_bool SDLCALL SDL_EnclosePoints(const SDL_Point * points, - int count, - const SDL_Rect * clip, - SDL_Rect * result); - -/** - * \brief Calculate the intersection of a rectangle and line segment. - * - * \return SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRectAndLine(const SDL_Rect * - rect, int *X1, - int *Y1, int *X2, - int *Y2); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_rect_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_render.h b/lib/osx/include/SDL_render.h deleted file mode 100644 index 60c87b6..0000000 --- a/lib/osx/include/SDL_render.h +++ /dev/null @@ -1,905 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_render.h - * - * Header file for SDL 2D rendering functions. - * - * This API supports the following features: - * * single pixel points - * * single pixel lines - * * filled rectangles - * * texture images - * - * The primitives may be drawn in opaque, blended, or additive modes. - * - * The texture images may be drawn in opaque, blended, or additive modes. - * They can have an additional color tint or alpha modulation applied to - * them, and may also be stretched with linear interpolation. - * - * This API is designed to accelerate simple 2D operations. You may - * want more functionality such as polygons and particle effects and - * in that case you should use SDL's OpenGL/Direct3D support or one - * of the many good 3D engines. - * - * These functions must be called from the main thread. - * See this bug for details: http://bugzilla.libsdl.org/show_bug.cgi?id=1995 - */ - -#ifndef _SDL_render_h -#define _SDL_render_h - -#include "SDL_stdinc.h" -#include "SDL_rect.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief Flags used when creating a rendering context - */ -typedef enum -{ - SDL_RENDERER_SOFTWARE = 0x00000001, /**< The renderer is a software fallback */ - SDL_RENDERER_ACCELERATED = 0x00000002, /**< The renderer uses hardware - acceleration */ - SDL_RENDERER_PRESENTVSYNC = 0x00000004, /**< Present is synchronized - with the refresh rate */ - SDL_RENDERER_TARGETTEXTURE = 0x00000008 /**< The renderer supports - rendering to texture */ -} SDL_RendererFlags; - -/** - * \brief Information on the capabilities of a render driver or context. - */ -typedef struct SDL_RendererInfo -{ - const char *name; /**< The name of the renderer */ - Uint32 flags; /**< Supported ::SDL_RendererFlags */ - Uint32 num_texture_formats; /**< The number of available texture formats */ - Uint32 texture_formats[16]; /**< The available texture formats */ - int max_texture_width; /**< The maximum texture width */ - int max_texture_height; /**< The maximum texture height */ -} SDL_RendererInfo; - -/** - * \brief The access pattern allowed for a texture. - */ -typedef enum -{ - SDL_TEXTUREACCESS_STATIC, /**< Changes rarely, not lockable */ - SDL_TEXTUREACCESS_STREAMING, /**< Changes frequently, lockable */ - SDL_TEXTUREACCESS_TARGET /**< Texture can be used as a render target */ -} SDL_TextureAccess; - -/** - * \brief The texture channel modulation used in SDL_RenderCopy(). - */ -typedef enum -{ - SDL_TEXTUREMODULATE_NONE = 0x00000000, /**< No modulation */ - SDL_TEXTUREMODULATE_COLOR = 0x00000001, /**< srcC = srcC * color */ - SDL_TEXTUREMODULATE_ALPHA = 0x00000002 /**< srcA = srcA * alpha */ -} SDL_TextureModulate; - -/** - * \brief Flip constants for SDL_RenderCopyEx - */ -typedef enum -{ - SDL_FLIP_NONE = 0x00000000, /**< Do not flip */ - SDL_FLIP_HORIZONTAL = 0x00000001, /**< flip horizontally */ - SDL_FLIP_VERTICAL = 0x00000002 /**< flip vertically */ -} SDL_RendererFlip; - -/** - * \brief A structure representing rendering state - */ -struct SDL_Renderer; -typedef struct SDL_Renderer SDL_Renderer; - -/** - * \brief An efficient driver-specific representation of pixel data - */ -struct SDL_Texture; -typedef struct SDL_Texture SDL_Texture; - - -/* Function prototypes */ - -/** - * \brief Get the number of 2D rendering drivers available for the current - * display. - * - * A render driver is a set of code that handles rendering and texture - * management on a particular display. Normally there is only one, but - * some drivers may have several available with different capabilities. - * - * \sa SDL_GetRenderDriverInfo() - * \sa SDL_CreateRenderer() - */ -extern DECLSPEC int SDLCALL SDL_GetNumRenderDrivers(void); - -/** - * \brief Get information about a specific 2D rendering driver for the current - * display. - * - * \param index The index of the driver to query information about. - * \param info A pointer to an SDL_RendererInfo struct to be filled with - * information on the rendering driver. - * - * \return 0 on success, -1 if the index was out of range. - * - * \sa SDL_CreateRenderer() - */ -extern DECLSPEC int SDLCALL SDL_GetRenderDriverInfo(int index, - SDL_RendererInfo * info); - -/** - * \brief Create a window and default renderer - * - * \param width The width of the window - * \param height The height of the window - * \param window_flags The flags used to create the window - * \param window A pointer filled with the window, or NULL on error - * \param renderer A pointer filled with the renderer, or NULL on error - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_CreateWindowAndRenderer( - int width, int height, Uint32 window_flags, - SDL_Window **window, SDL_Renderer **renderer); - - -/** - * \brief Create a 2D rendering context for a window. - * - * \param window The window where rendering is displayed. - * \param index The index of the rendering driver to initialize, or -1 to - * initialize the first one supporting the requested flags. - * \param flags ::SDL_RendererFlags. - * - * \return A valid rendering context or NULL if there was an error. - * - * \sa SDL_CreateSoftwareRenderer() - * \sa SDL_GetRendererInfo() - * \sa SDL_DestroyRenderer() - */ -extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window * window, - int index, Uint32 flags); - -/** - * \brief Create a 2D software rendering context for a surface. - * - * \param surface The surface where rendering is done. - * - * \return A valid rendering context or NULL if there was an error. - * - * \sa SDL_CreateRenderer() - * \sa SDL_DestroyRenderer() - */ -extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateSoftwareRenderer(SDL_Surface * surface); - -/** - * \brief Get the renderer associated with a window. - */ -extern DECLSPEC SDL_Renderer * SDLCALL SDL_GetRenderer(SDL_Window * window); - -/** - * \brief Get information about a rendering context. - */ -extern DECLSPEC int SDLCALL SDL_GetRendererInfo(SDL_Renderer * renderer, - SDL_RendererInfo * info); - -/** - * \brief Get the output size in pixels of a rendering context. - */ -extern DECLSPEC int SDLCALL SDL_GetRendererOutputSize(SDL_Renderer * renderer, - int *w, int *h); - -/** - * \brief Create a texture for a rendering context. - * - * \param renderer The renderer. - * \param format The format of the texture. - * \param access One of the enumerated values in ::SDL_TextureAccess. - * \param w The width of the texture in pixels. - * \param h The height of the texture in pixels. - * - * \return The created texture is returned, or NULL if no rendering context was - * active, the format was unsupported, or the width or height were out - * of range. - * - * \sa SDL_QueryTexture() - * \sa SDL_UpdateTexture() - * \sa SDL_DestroyTexture() - */ -extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTexture(SDL_Renderer * renderer, - Uint32 format, - int access, int w, - int h); - -/** - * \brief Create a texture from an existing surface. - * - * \param renderer The renderer. - * \param surface The surface containing pixel data used to fill the texture. - * - * \return The created texture is returned, or NULL on error. - * - * \note The surface is not modified or freed by this function. - * - * \sa SDL_QueryTexture() - * \sa SDL_DestroyTexture() - */ -extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureFromSurface(SDL_Renderer * renderer, SDL_Surface * surface); - -/** - * \brief Query the attributes of a texture - * - * \param texture A texture to be queried. - * \param format A pointer filled in with the raw format of the texture. The - * actual format may differ, but pixel transfers will use this - * format. - * \param access A pointer filled in with the actual access to the texture. - * \param w A pointer filled in with the width of the texture in pixels. - * \param h A pointer filled in with the height of the texture in pixels. - * - * \return 0 on success, or -1 if the texture is not valid. - */ -extern DECLSPEC int SDLCALL SDL_QueryTexture(SDL_Texture * texture, - Uint32 * format, int *access, - int *w, int *h); - -/** - * \brief Set an additional color value used in render copy operations. - * - * \param texture The texture to update. - * \param r The red color value multiplied into copy operations. - * \param g The green color value multiplied into copy operations. - * \param b The blue color value multiplied into copy operations. - * - * \return 0 on success, or -1 if the texture is not valid or color modulation - * is not supported. - * - * \sa SDL_GetTextureColorMod() - */ -extern DECLSPEC int SDLCALL SDL_SetTextureColorMod(SDL_Texture * texture, - Uint8 r, Uint8 g, Uint8 b); - - -/** - * \brief Get the additional color value used in render copy operations. - * - * \param texture The texture to query. - * \param r A pointer filled in with the current red color value. - * \param g A pointer filled in with the current green color value. - * \param b A pointer filled in with the current blue color value. - * - * \return 0 on success, or -1 if the texture is not valid. - * - * \sa SDL_SetTextureColorMod() - */ -extern DECLSPEC int SDLCALL SDL_GetTextureColorMod(SDL_Texture * texture, - Uint8 * r, Uint8 * g, - Uint8 * b); - -/** - * \brief Set an additional alpha value used in render copy operations. - * - * \param texture The texture to update. - * \param alpha The alpha value multiplied into copy operations. - * - * \return 0 on success, or -1 if the texture is not valid or alpha modulation - * is not supported. - * - * \sa SDL_GetTextureAlphaMod() - */ -extern DECLSPEC int SDLCALL SDL_SetTextureAlphaMod(SDL_Texture * texture, - Uint8 alpha); - -/** - * \brief Get the additional alpha value used in render copy operations. - * - * \param texture The texture to query. - * \param alpha A pointer filled in with the current alpha value. - * - * \return 0 on success, or -1 if the texture is not valid. - * - * \sa SDL_SetTextureAlphaMod() - */ -extern DECLSPEC int SDLCALL SDL_GetTextureAlphaMod(SDL_Texture * texture, - Uint8 * alpha); - -/** - * \brief Set the blend mode used for texture copy operations. - * - * \param texture The texture to update. - * \param blendMode ::SDL_BlendMode to use for texture blending. - * - * \return 0 on success, or -1 if the texture is not valid or the blend mode is - * not supported. - * - * \note If the blend mode is not supported, the closest supported mode is - * chosen. - * - * \sa SDL_GetTextureBlendMode() - */ -extern DECLSPEC int SDLCALL SDL_SetTextureBlendMode(SDL_Texture * texture, - SDL_BlendMode blendMode); - -/** - * \brief Get the blend mode used for texture copy operations. - * - * \param texture The texture to query. - * \param blendMode A pointer filled in with the current blend mode. - * - * \return 0 on success, or -1 if the texture is not valid. - * - * \sa SDL_SetTextureBlendMode() - */ -extern DECLSPEC int SDLCALL SDL_GetTextureBlendMode(SDL_Texture * texture, - SDL_BlendMode *blendMode); - -/** - * \brief Update the given texture rectangle with new pixel data. - * - * \param texture The texture to update - * \param rect A pointer to the rectangle of pixels to update, or NULL to - * update the entire texture. - * \param pixels The raw pixel data. - * \param pitch The number of bytes in a row of pixel data, including padding between lines. - * - * \return 0 on success, or -1 if the texture is not valid. - * - * \note This is a fairly slow function. - */ -extern DECLSPEC int SDLCALL SDL_UpdateTexture(SDL_Texture * texture, - const SDL_Rect * rect, - const void *pixels, int pitch); - -/** - * \brief Update a rectangle within a planar YV12 or IYUV texture with new pixel data. - * - * \param texture The texture to update - * \param rect A pointer to the rectangle of pixels to update, or NULL to - * update the entire texture. - * \param Yplane The raw pixel data for the Y plane. - * \param Ypitch The number of bytes between rows of pixel data for the Y plane. - * \param Uplane The raw pixel data for the U plane. - * \param Upitch The number of bytes between rows of pixel data for the U plane. - * \param Vplane The raw pixel data for the V plane. - * \param Vpitch The number of bytes between rows of pixel data for the V plane. - * - * \return 0 on success, or -1 if the texture is not valid. - * - * \note You can use SDL_UpdateTexture() as long as your pixel data is - * a contiguous block of Y and U/V planes in the proper order, but - * this function is available if your pixel data is not contiguous. - */ -extern DECLSPEC int SDLCALL SDL_UpdateYUVTexture(SDL_Texture * texture, - const SDL_Rect * rect, - const Uint8 *Yplane, int Ypitch, - const Uint8 *Uplane, int Upitch, - const Uint8 *Vplane, int Vpitch); - -/** - * \brief Lock a portion of the texture for write-only pixel access. - * - * \param texture The texture to lock for access, which was created with - * ::SDL_TEXTUREACCESS_STREAMING. - * \param rect A pointer to the rectangle to lock for access. If the rect - * is NULL, the entire texture will be locked. - * \param pixels This is filled in with a pointer to the locked pixels, - * appropriately offset by the locked area. - * \param pitch This is filled in with the pitch of the locked pixels. - * - * \return 0 on success, or -1 if the texture is not valid or was not created with ::SDL_TEXTUREACCESS_STREAMING. - * - * \sa SDL_UnlockTexture() - */ -extern DECLSPEC int SDLCALL SDL_LockTexture(SDL_Texture * texture, - const SDL_Rect * rect, - void **pixels, int *pitch); - -/** - * \brief Unlock a texture, uploading the changes to video memory, if needed. - * - * \sa SDL_LockTexture() - */ -extern DECLSPEC void SDLCALL SDL_UnlockTexture(SDL_Texture * texture); - -/** - * \brief Determines whether a window supports the use of render targets - * - * \param renderer The renderer that will be checked - * - * \return SDL_TRUE if supported, SDL_FALSE if not. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_RenderTargetSupported(SDL_Renderer *renderer); - -/** - * \brief Set a texture as the current rendering target. - * - * \param renderer The renderer. - * \param texture The targeted texture, which must be created with the SDL_TEXTUREACCESS_TARGET flag, or NULL for the default render target - * - * \return 0 on success, or -1 on error - * - * \sa SDL_GetRenderTarget() - */ -extern DECLSPEC int SDLCALL SDL_SetRenderTarget(SDL_Renderer *renderer, - SDL_Texture *texture); - -/** - * \brief Get the current render target or NULL for the default render target. - * - * \return The current render target - * - * \sa SDL_SetRenderTarget() - */ -extern DECLSPEC SDL_Texture * SDLCALL SDL_GetRenderTarget(SDL_Renderer *renderer); - -/** - * \brief Set device independent resolution for rendering - * - * \param renderer The renderer for which resolution should be set. - * \param w The width of the logical resolution - * \param h The height of the logical resolution - * - * This function uses the viewport and scaling functionality to allow a fixed logical - * resolution for rendering, regardless of the actual output resolution. If the actual - * output resolution doesn't have the same aspect ratio the output rendering will be - * centered within the output display. - * - * If the output display is a window, mouse events in the window will be filtered - * and scaled so they seem to arrive within the logical resolution. - * - * \note If this function results in scaling or subpixel drawing by the - * rendering backend, it will be handled using the appropriate - * quality hints. - * - * \sa SDL_RenderGetLogicalSize() - * \sa SDL_RenderSetScale() - * \sa SDL_RenderSetViewport() - */ -extern DECLSPEC int SDLCALL SDL_RenderSetLogicalSize(SDL_Renderer * renderer, int w, int h); - -/** - * \brief Get device independent resolution for rendering - * - * \param renderer The renderer from which resolution should be queried. - * \param w A pointer filled with the width of the logical resolution - * \param h A pointer filled with the height of the logical resolution - * - * \sa SDL_RenderSetLogicalSize() - */ -extern DECLSPEC void SDLCALL SDL_RenderGetLogicalSize(SDL_Renderer * renderer, int *w, int *h); - -/** - * \brief Set whether to force integer scales for resolution-independent rendering - * - * \param renderer The renderer for which integer scaling should be set. - * \param enable Enable or disable integer scaling - * - * This function restricts the logical viewport to integer values - that is, when - * a resolution is between two multiples of a logical size, the viewport size is - * rounded down to the lower multiple. - * - * \sa SDL_RenderSetLogicalSize() - */ -extern DECLSPEC int SDLCALL SDL_RenderSetIntegerScale(SDL_Renderer * renderer, - SDL_bool enable); - -/** - * \brief Get whether integer scales are forced for resolution-independent rendering - * - * \param renderer The renderer from which integer scaling should be queried. - * - * \sa SDL_RenderSetIntegerScale() - */ -extern DECLSPEC SDL_bool SDLCALL SDL_RenderGetIntegerScale(SDL_Renderer * renderer); - -/** - * \brief Set the drawing area for rendering on the current target. - * - * \param renderer The renderer for which the drawing area should be set. - * \param rect The rectangle representing the drawing area, or NULL to set the viewport to the entire target. - * - * The x,y of the viewport rect represents the origin for rendering. - * - * \return 0 on success, or -1 on error - * - * \note If the window associated with the renderer is resized, the viewport is automatically reset. - * - * \sa SDL_RenderGetViewport() - * \sa SDL_RenderSetLogicalSize() - */ -extern DECLSPEC int SDLCALL SDL_RenderSetViewport(SDL_Renderer * renderer, - const SDL_Rect * rect); - -/** - * \brief Get the drawing area for the current target. - * - * \sa SDL_RenderSetViewport() - */ -extern DECLSPEC void SDLCALL SDL_RenderGetViewport(SDL_Renderer * renderer, - SDL_Rect * rect); - -/** - * \brief Set the clip rectangle for the current target. - * - * \param renderer The renderer for which clip rectangle should be set. - * \param rect A pointer to the rectangle to set as the clip rectangle, or - * NULL to disable clipping. - * - * \return 0 on success, or -1 on error - * - * \sa SDL_RenderGetClipRect() - */ -extern DECLSPEC int SDLCALL SDL_RenderSetClipRect(SDL_Renderer * renderer, - const SDL_Rect * rect); - -/** - * \brief Get the clip rectangle for the current target. - * - * \param renderer The renderer from which clip rectangle should be queried. - * \param rect A pointer filled in with the current clip rectangle, or - * an empty rectangle if clipping is disabled. - * - * \sa SDL_RenderSetClipRect() - */ -extern DECLSPEC void SDLCALL SDL_RenderGetClipRect(SDL_Renderer * renderer, - SDL_Rect * rect); - -/** - * \brief Get whether clipping is enabled on the given renderer. - * - * \param renderer The renderer from which clip state should be queried. - * - * \sa SDL_RenderGetClipRect() - */ -extern DECLSPEC SDL_bool SDLCALL SDL_RenderIsClipEnabled(SDL_Renderer * renderer); - - -/** - * \brief Set the drawing scale for rendering on the current target. - * - * \param renderer The renderer for which the drawing scale should be set. - * \param scaleX The horizontal scaling factor - * \param scaleY The vertical scaling factor - * - * The drawing coordinates are scaled by the x/y scaling factors - * before they are used by the renderer. This allows resolution - * independent drawing with a single coordinate system. - * - * \note If this results in scaling or subpixel drawing by the - * rendering backend, it will be handled using the appropriate - * quality hints. For best results use integer scaling factors. - * - * \sa SDL_RenderGetScale() - * \sa SDL_RenderSetLogicalSize() - */ -extern DECLSPEC int SDLCALL SDL_RenderSetScale(SDL_Renderer * renderer, - float scaleX, float scaleY); - -/** - * \brief Get the drawing scale for the current target. - * - * \param renderer The renderer from which drawing scale should be queried. - * \param scaleX A pointer filled in with the horizontal scaling factor - * \param scaleY A pointer filled in with the vertical scaling factor - * - * \sa SDL_RenderSetScale() - */ -extern DECLSPEC void SDLCALL SDL_RenderGetScale(SDL_Renderer * renderer, - float *scaleX, float *scaleY); - -/** - * \brief Set the color used for drawing operations (Rect, Line and Clear). - * - * \param renderer The renderer for which drawing color should be set. - * \param r The red value used to draw on the rendering target. - * \param g The green value used to draw on the rendering target. - * \param b The blue value used to draw on the rendering target. - * \param a The alpha value used to draw on the rendering target, usually - * ::SDL_ALPHA_OPAQUE (255). - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_SetRenderDrawColor(SDL_Renderer * renderer, - Uint8 r, Uint8 g, Uint8 b, - Uint8 a); - -/** - * \brief Get the color used for drawing operations (Rect, Line and Clear). - * - * \param renderer The renderer from which drawing color should be queried. - * \param r A pointer to the red value used to draw on the rendering target. - * \param g A pointer to the green value used to draw on the rendering target. - * \param b A pointer to the blue value used to draw on the rendering target. - * \param a A pointer to the alpha value used to draw on the rendering target, - * usually ::SDL_ALPHA_OPAQUE (255). - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_GetRenderDrawColor(SDL_Renderer * renderer, - Uint8 * r, Uint8 * g, Uint8 * b, - Uint8 * a); - -/** - * \brief Set the blend mode used for drawing operations (Fill and Line). - * - * \param renderer The renderer for which blend mode should be set. - * \param blendMode ::SDL_BlendMode to use for blending. - * - * \return 0 on success, or -1 on error - * - * \note If the blend mode is not supported, the closest supported mode is - * chosen. - * - * \sa SDL_GetRenderDrawBlendMode() - */ -extern DECLSPEC int SDLCALL SDL_SetRenderDrawBlendMode(SDL_Renderer * renderer, - SDL_BlendMode blendMode); - -/** - * \brief Get the blend mode used for drawing operations. - * - * \param renderer The renderer from which blend mode should be queried. - * \param blendMode A pointer filled in with the current blend mode. - * - * \return 0 on success, or -1 on error - * - * \sa SDL_SetRenderDrawBlendMode() - */ -extern DECLSPEC int SDLCALL SDL_GetRenderDrawBlendMode(SDL_Renderer * renderer, - SDL_BlendMode *blendMode); - -/** - * \brief Clear the current rendering target with the drawing color - * - * This function clears the entire rendering target, ignoring the viewport and - * the clip rectangle. - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_RenderClear(SDL_Renderer * renderer); - -/** - * \brief Draw a point on the current rendering target. - * - * \param renderer The renderer which should draw a point. - * \param x The x coordinate of the point. - * \param y The y coordinate of the point. - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawPoint(SDL_Renderer * renderer, - int x, int y); - -/** - * \brief Draw multiple points on the current rendering target. - * - * \param renderer The renderer which should draw multiple points. - * \param points The points to draw - * \param count The number of points to draw - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawPoints(SDL_Renderer * renderer, - const SDL_Point * points, - int count); - -/** - * \brief Draw a line on the current rendering target. - * - * \param renderer The renderer which should draw a line. - * \param x1 The x coordinate of the start point. - * \param y1 The y coordinate of the start point. - * \param x2 The x coordinate of the end point. - * \param y2 The y coordinate of the end point. - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawLine(SDL_Renderer * renderer, - int x1, int y1, int x2, int y2); - -/** - * \brief Draw a series of connected lines on the current rendering target. - * - * \param renderer The renderer which should draw multiple lines. - * \param points The points along the lines - * \param count The number of points, drawing count-1 lines - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawLines(SDL_Renderer * renderer, - const SDL_Point * points, - int count); - -/** - * \brief Draw a rectangle on the current rendering target. - * - * \param renderer The renderer which should draw a rectangle. - * \param rect A pointer to the destination rectangle, or NULL to outline the entire rendering target. - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawRect(SDL_Renderer * renderer, - const SDL_Rect * rect); - -/** - * \brief Draw some number of rectangles on the current rendering target. - * - * \param renderer The renderer which should draw multiple rectangles. - * \param rects A pointer to an array of destination rectangles. - * \param count The number of rectangles. - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawRects(SDL_Renderer * renderer, - const SDL_Rect * rects, - int count); - -/** - * \brief Fill a rectangle on the current rendering target with the drawing color. - * - * \param renderer The renderer which should fill a rectangle. - * \param rect A pointer to the destination rectangle, or NULL for the entire - * rendering target. - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_RenderFillRect(SDL_Renderer * renderer, - const SDL_Rect * rect); - -/** - * \brief Fill some number of rectangles on the current rendering target with the drawing color. - * - * \param renderer The renderer which should fill multiple rectangles. - * \param rects A pointer to an array of destination rectangles. - * \param count The number of rectangles. - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_RenderFillRects(SDL_Renderer * renderer, - const SDL_Rect * rects, - int count); - -/** - * \brief Copy a portion of the texture to the current rendering target. - * - * \param renderer The renderer which should copy parts of a texture. - * \param texture The source texture. - * \param srcrect A pointer to the source rectangle, or NULL for the entire - * texture. - * \param dstrect A pointer to the destination rectangle, or NULL for the - * entire rendering target. - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_RenderCopy(SDL_Renderer * renderer, - SDL_Texture * texture, - const SDL_Rect * srcrect, - const SDL_Rect * dstrect); - -/** - * \brief Copy a portion of the source texture to the current rendering target, rotating it by angle around the given center - * - * \param renderer The renderer which should copy parts of a texture. - * \param texture The source texture. - * \param srcrect A pointer to the source rectangle, or NULL for the entire - * texture. - * \param dstrect A pointer to the destination rectangle, or NULL for the - * entire rendering target. - * \param angle An angle in degrees that indicates the rotation that will be applied to dstrect - * \param center A pointer to a point indicating the point around which dstrect will be rotated (if NULL, rotation will be done around dstrect.w/2, dstrect.h/2). - * \param flip An SDL_RendererFlip value stating which flipping actions should be performed on the texture - * - * \return 0 on success, or -1 on error - */ -extern DECLSPEC int SDLCALL SDL_RenderCopyEx(SDL_Renderer * renderer, - SDL_Texture * texture, - const SDL_Rect * srcrect, - const SDL_Rect * dstrect, - const double angle, - const SDL_Point *center, - const SDL_RendererFlip flip); - -/** - * \brief Read pixels from the current rendering target. - * - * \param renderer The renderer from which pixels should be read. - * \param rect A pointer to the rectangle to read, or NULL for the entire - * render target. - * \param format The desired format of the pixel data, or 0 to use the format - * of the rendering target - * \param pixels A pointer to be filled in with the pixel data - * \param pitch The pitch of the pixels parameter. - * - * \return 0 on success, or -1 if pixel reading is not supported. - * - * \warning This is a very slow operation, and should not be used frequently. - */ -extern DECLSPEC int SDLCALL SDL_RenderReadPixels(SDL_Renderer * renderer, - const SDL_Rect * rect, - Uint32 format, - void *pixels, int pitch); - -/** - * \brief Update the screen with rendering performed. - */ -extern DECLSPEC void SDLCALL SDL_RenderPresent(SDL_Renderer * renderer); - -/** - * \brief Destroy the specified texture. - * - * \sa SDL_CreateTexture() - * \sa SDL_CreateTextureFromSurface() - */ -extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_Texture * texture); - -/** - * \brief Destroy the rendering context for a window and free associated - * textures. - * - * \sa SDL_CreateRenderer() - */ -extern DECLSPEC void SDLCALL SDL_DestroyRenderer(SDL_Renderer * renderer); - - -/** - * \brief Bind the texture to the current OpenGL/ES/ES2 context for use with - * OpenGL instructions. - * - * \param texture The SDL texture to bind - * \param texw A pointer to a float that will be filled with the texture width - * \param texh A pointer to a float that will be filled with the texture height - * - * \return 0 on success, or -1 if the operation is not supported - */ -extern DECLSPEC int SDLCALL SDL_GL_BindTexture(SDL_Texture *texture, float *texw, float *texh); - -/** - * \brief Unbind a texture from the current OpenGL/ES/ES2 context. - * - * \param texture The SDL texture to unbind - * - * \return 0 on success, or -1 if the operation is not supported - */ -extern DECLSPEC int SDLCALL SDL_GL_UnbindTexture(SDL_Texture *texture); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_render_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_revision.h b/lib/osx/include/SDL_revision.h deleted file mode 100644 index 341dc5c..0000000 --- a/lib/osx/include/SDL_revision.h +++ /dev/null @@ -1,2 +0,0 @@ -#define SDL_REVISION "hg-10556:007dfe83abf8" -#define SDL_REVISION_NUMBER 10556 diff --git a/lib/osx/include/SDL_rwops.h b/lib/osx/include/SDL_rwops.h deleted file mode 100644 index 1ad3ac4..0000000 --- a/lib/osx/include/SDL_rwops.h +++ /dev/null @@ -1,231 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_rwops.h - * - * This file provides a general interface for SDL to read and write - * data streams. It can easily be extended to files, memory, etc. - */ - -#ifndef _SDL_rwops_h -#define _SDL_rwops_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* RWops Types */ -#define SDL_RWOPS_UNKNOWN 0U /* Unknown stream type */ -#define SDL_RWOPS_WINFILE 1U /* Win32 file */ -#define SDL_RWOPS_STDFILE 2U /* Stdio file */ -#define SDL_RWOPS_JNIFILE 3U /* Android asset */ -#define SDL_RWOPS_MEMORY 4U /* Memory stream */ -#define SDL_RWOPS_MEMORY_RO 5U /* Read-Only memory stream */ - -/** - * This is the read/write operation structure -- very basic. - */ -typedef struct SDL_RWops -{ - /** - * Return the size of the file in this rwops, or -1 if unknown - */ - Sint64 (SDLCALL * size) (struct SDL_RWops * context); - - /** - * Seek to \c offset relative to \c whence, one of stdio's whence values: - * RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END - * - * \return the final offset in the data stream, or -1 on error. - */ - Sint64 (SDLCALL * seek) (struct SDL_RWops * context, Sint64 offset, - int whence); - - /** - * Read up to \c maxnum objects each of size \c size from the data - * stream to the area pointed at by \c ptr. - * - * \return the number of objects read, or 0 at error or end of file. - */ - size_t (SDLCALL * read) (struct SDL_RWops * context, void *ptr, - size_t size, size_t maxnum); - - /** - * Write exactly \c num objects each of size \c size from the area - * pointed at by \c ptr to data stream. - * - * \return the number of objects written, or 0 at error or end of file. - */ - size_t (SDLCALL * write) (struct SDL_RWops * context, const void *ptr, - size_t size, size_t num); - - /** - * Close and free an allocated SDL_RWops structure. - * - * \return 0 if successful or -1 on write error when flushing data. - */ - int (SDLCALL * close) (struct SDL_RWops * context); - - Uint32 type; - union - { -#if defined(__ANDROID__) - struct - { - void *fileNameRef; - void *inputStreamRef; - void *readableByteChannelRef; - void *readMethod; - void *assetFileDescriptorRef; - long position; - long size; - long offset; - int fd; - } androidio; -#elif defined(__WIN32__) - struct - { - SDL_bool append; - void *h; - struct - { - void *data; - size_t size; - size_t left; - } buffer; - } windowsio; -#endif - -#ifdef HAVE_STDIO_H - struct - { - SDL_bool autoclose; - FILE *fp; - } stdio; -#endif - struct - { - Uint8 *base; - Uint8 *here; - Uint8 *stop; - } mem; - struct - { - void *data1; - void *data2; - } unknown; - } hidden; - -} SDL_RWops; - - -/** - * \name RWFrom functions - * - * Functions to create SDL_RWops structures from various data streams. - */ -/* @{ */ - -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFile(const char *file, - const char *mode); - -#ifdef HAVE_STDIO_H -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFP(FILE * fp, - SDL_bool autoclose); -#else -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFP(void * fp, - SDL_bool autoclose); -#endif - -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromMem(void *mem, int size); -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromConstMem(const void *mem, - int size); - -/* @} *//* RWFrom functions */ - - -extern DECLSPEC SDL_RWops *SDLCALL SDL_AllocRW(void); -extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops * area); - -#define RW_SEEK_SET 0 /**< Seek from the beginning of data */ -#define RW_SEEK_CUR 1 /**< Seek relative to current read point */ -#define RW_SEEK_END 2 /**< Seek relative to the end of data */ - -/** - * \name Read/write macros - * - * Macros to easily read and write from an SDL_RWops structure. - */ -/* @{ */ -#define SDL_RWsize(ctx) (ctx)->size(ctx) -#define SDL_RWseek(ctx, offset, whence) (ctx)->seek(ctx, offset, whence) -#define SDL_RWtell(ctx) (ctx)->seek(ctx, 0, RW_SEEK_CUR) -#define SDL_RWread(ctx, ptr, size, n) (ctx)->read(ctx, ptr, size, n) -#define SDL_RWwrite(ctx, ptr, size, n) (ctx)->write(ctx, ptr, size, n) -#define SDL_RWclose(ctx) (ctx)->close(ctx) -/* @} *//* Read/write macros */ - - -/** - * \name Read endian functions - * - * Read an item of the specified endianness and return in native format. - */ -/* @{ */ -extern DECLSPEC Uint8 SDLCALL SDL_ReadU8(SDL_RWops * src); -extern DECLSPEC Uint16 SDLCALL SDL_ReadLE16(SDL_RWops * src); -extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops * src); -extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops * src); -extern DECLSPEC Uint32 SDLCALL SDL_ReadBE32(SDL_RWops * src); -extern DECLSPEC Uint64 SDLCALL SDL_ReadLE64(SDL_RWops * src); -extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops * src); -/* @} *//* Read endian functions */ - -/** - * \name Write endian functions - * - * Write an item of native format to the specified endianness. - */ -/* @{ */ -extern DECLSPEC size_t SDLCALL SDL_WriteU8(SDL_RWops * dst, Uint8 value); -extern DECLSPEC size_t SDLCALL SDL_WriteLE16(SDL_RWops * dst, Uint16 value); -extern DECLSPEC size_t SDLCALL SDL_WriteBE16(SDL_RWops * dst, Uint16 value); -extern DECLSPEC size_t SDLCALL SDL_WriteLE32(SDL_RWops * dst, Uint32 value); -extern DECLSPEC size_t SDLCALL SDL_WriteBE32(SDL_RWops * dst, Uint32 value); -extern DECLSPEC size_t SDLCALL SDL_WriteLE64(SDL_RWops * dst, Uint64 value); -extern DECLSPEC size_t SDLCALL SDL_WriteBE64(SDL_RWops * dst, Uint64 value); -/* @} *//* Write endian functions */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_rwops_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_scancode.h b/lib/osx/include/SDL_scancode.h deleted file mode 100644 index 0af1dd5..0000000 --- a/lib/osx/include/SDL_scancode.h +++ /dev/null @@ -1,401 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_scancode.h - * - * Defines keyboard scancodes. - */ - -#ifndef _SDL_scancode_h -#define _SDL_scancode_h - -#include "SDL_stdinc.h" - -/** - * \brief The SDL keyboard scancode representation. - * - * Values of this type are used to represent keyboard keys, among other places - * in the \link SDL_Keysym::scancode key.keysym.scancode \endlink field of the - * SDL_Event structure. - * - * The values in this enumeration are based on the USB usage page standard: - * http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf - */ -typedef enum -{ - SDL_SCANCODE_UNKNOWN = 0, - - /** - * \name Usage page 0x07 - * - * These values are from usage page 0x07 (USB keyboard page). - */ - /* @{ */ - - SDL_SCANCODE_A = 4, - SDL_SCANCODE_B = 5, - SDL_SCANCODE_C = 6, - SDL_SCANCODE_D = 7, - SDL_SCANCODE_E = 8, - SDL_SCANCODE_F = 9, - SDL_SCANCODE_G = 10, - SDL_SCANCODE_H = 11, - SDL_SCANCODE_I = 12, - SDL_SCANCODE_J = 13, - SDL_SCANCODE_K = 14, - SDL_SCANCODE_L = 15, - SDL_SCANCODE_M = 16, - SDL_SCANCODE_N = 17, - SDL_SCANCODE_O = 18, - SDL_SCANCODE_P = 19, - SDL_SCANCODE_Q = 20, - SDL_SCANCODE_R = 21, - SDL_SCANCODE_S = 22, - SDL_SCANCODE_T = 23, - SDL_SCANCODE_U = 24, - SDL_SCANCODE_V = 25, - SDL_SCANCODE_W = 26, - SDL_SCANCODE_X = 27, - SDL_SCANCODE_Y = 28, - SDL_SCANCODE_Z = 29, - - SDL_SCANCODE_1 = 30, - SDL_SCANCODE_2 = 31, - SDL_SCANCODE_3 = 32, - SDL_SCANCODE_4 = 33, - SDL_SCANCODE_5 = 34, - SDL_SCANCODE_6 = 35, - SDL_SCANCODE_7 = 36, - SDL_SCANCODE_8 = 37, - SDL_SCANCODE_9 = 38, - SDL_SCANCODE_0 = 39, - - SDL_SCANCODE_RETURN = 40, - SDL_SCANCODE_ESCAPE = 41, - SDL_SCANCODE_BACKSPACE = 42, - SDL_SCANCODE_TAB = 43, - SDL_SCANCODE_SPACE = 44, - - SDL_SCANCODE_MINUS = 45, - SDL_SCANCODE_EQUALS = 46, - SDL_SCANCODE_LEFTBRACKET = 47, - SDL_SCANCODE_RIGHTBRACKET = 48, - SDL_SCANCODE_BACKSLASH = 49, /**< Located at the lower left of the return - * key on ISO keyboards and at the right end - * of the QWERTY row on ANSI keyboards. - * Produces REVERSE SOLIDUS (backslash) and - * VERTICAL LINE in a US layout, REVERSE - * SOLIDUS and VERTICAL LINE in a UK Mac - * layout, NUMBER SIGN and TILDE in a UK - * Windows layout, DOLLAR SIGN and POUND SIGN - * in a Swiss German layout, NUMBER SIGN and - * APOSTROPHE in a German layout, GRAVE - * ACCENT and POUND SIGN in a French Mac - * layout, and ASTERISK and MICRO SIGN in a - * French Windows layout. - */ - SDL_SCANCODE_NONUSHASH = 50, /**< ISO USB keyboards actually use this code - * instead of 49 for the same key, but all - * OSes I've seen treat the two codes - * identically. So, as an implementor, unless - * your keyboard generates both of those - * codes and your OS treats them differently, - * you should generate SDL_SCANCODE_BACKSLASH - * instead of this code. As a user, you - * should not rely on this code because SDL - * will never generate it with most (all?) - * keyboards. - */ - SDL_SCANCODE_SEMICOLON = 51, - SDL_SCANCODE_APOSTROPHE = 52, - SDL_SCANCODE_GRAVE = 53, /**< Located in the top left corner (on both ANSI - * and ISO keyboards). Produces GRAVE ACCENT and - * TILDE in a US Windows layout and in US and UK - * Mac layouts on ANSI keyboards, GRAVE ACCENT - * and NOT SIGN in a UK Windows layout, SECTION - * SIGN and PLUS-MINUS SIGN in US and UK Mac - * layouts on ISO keyboards, SECTION SIGN and - * DEGREE SIGN in a Swiss German layout (Mac: - * only on ISO keyboards), CIRCUMFLEX ACCENT and - * DEGREE SIGN in a German layout (Mac: only on - * ISO keyboards), SUPERSCRIPT TWO and TILDE in a - * French Windows layout, COMMERCIAL AT and - * NUMBER SIGN in a French Mac layout on ISO - * keyboards, and LESS-THAN SIGN and GREATER-THAN - * SIGN in a Swiss German, German, or French Mac - * layout on ANSI keyboards. - */ - SDL_SCANCODE_COMMA = 54, - SDL_SCANCODE_PERIOD = 55, - SDL_SCANCODE_SLASH = 56, - - SDL_SCANCODE_CAPSLOCK = 57, - - SDL_SCANCODE_F1 = 58, - SDL_SCANCODE_F2 = 59, - SDL_SCANCODE_F3 = 60, - SDL_SCANCODE_F4 = 61, - SDL_SCANCODE_F5 = 62, - SDL_SCANCODE_F6 = 63, - SDL_SCANCODE_F7 = 64, - SDL_SCANCODE_F8 = 65, - SDL_SCANCODE_F9 = 66, - SDL_SCANCODE_F10 = 67, - SDL_SCANCODE_F11 = 68, - SDL_SCANCODE_F12 = 69, - - SDL_SCANCODE_PRINTSCREEN = 70, - SDL_SCANCODE_SCROLLLOCK = 71, - SDL_SCANCODE_PAUSE = 72, - SDL_SCANCODE_INSERT = 73, /**< insert on PC, help on some Mac keyboards (but - does send code 73, not 117) */ - SDL_SCANCODE_HOME = 74, - SDL_SCANCODE_PAGEUP = 75, - SDL_SCANCODE_DELETE = 76, - SDL_SCANCODE_END = 77, - SDL_SCANCODE_PAGEDOWN = 78, - SDL_SCANCODE_RIGHT = 79, - SDL_SCANCODE_LEFT = 80, - SDL_SCANCODE_DOWN = 81, - SDL_SCANCODE_UP = 82, - - SDL_SCANCODE_NUMLOCKCLEAR = 83, /**< num lock on PC, clear on Mac keyboards - */ - SDL_SCANCODE_KP_DIVIDE = 84, - SDL_SCANCODE_KP_MULTIPLY = 85, - SDL_SCANCODE_KP_MINUS = 86, - SDL_SCANCODE_KP_PLUS = 87, - SDL_SCANCODE_KP_ENTER = 88, - SDL_SCANCODE_KP_1 = 89, - SDL_SCANCODE_KP_2 = 90, - SDL_SCANCODE_KP_3 = 91, - SDL_SCANCODE_KP_4 = 92, - SDL_SCANCODE_KP_5 = 93, - SDL_SCANCODE_KP_6 = 94, - SDL_SCANCODE_KP_7 = 95, - SDL_SCANCODE_KP_8 = 96, - SDL_SCANCODE_KP_9 = 97, - SDL_SCANCODE_KP_0 = 98, - SDL_SCANCODE_KP_PERIOD = 99, - - SDL_SCANCODE_NONUSBACKSLASH = 100, /**< This is the additional key that ISO - * keyboards have over ANSI ones, - * located between left shift and Y. - * Produces GRAVE ACCENT and TILDE in a - * US or UK Mac layout, REVERSE SOLIDUS - * (backslash) and VERTICAL LINE in a - * US or UK Windows layout, and - * LESS-THAN SIGN and GREATER-THAN SIGN - * in a Swiss German, German, or French - * layout. */ - SDL_SCANCODE_APPLICATION = 101, /**< windows contextual menu, compose */ - SDL_SCANCODE_POWER = 102, /**< The USB document says this is a status flag, - * not a physical key - but some Mac keyboards - * do have a power key. */ - SDL_SCANCODE_KP_EQUALS = 103, - SDL_SCANCODE_F13 = 104, - SDL_SCANCODE_F14 = 105, - SDL_SCANCODE_F15 = 106, - SDL_SCANCODE_F16 = 107, - SDL_SCANCODE_F17 = 108, - SDL_SCANCODE_F18 = 109, - SDL_SCANCODE_F19 = 110, - SDL_SCANCODE_F20 = 111, - SDL_SCANCODE_F21 = 112, - SDL_SCANCODE_F22 = 113, - SDL_SCANCODE_F23 = 114, - SDL_SCANCODE_F24 = 115, - SDL_SCANCODE_EXECUTE = 116, - SDL_SCANCODE_HELP = 117, - SDL_SCANCODE_MENU = 118, - SDL_SCANCODE_SELECT = 119, - SDL_SCANCODE_STOP = 120, - SDL_SCANCODE_AGAIN = 121, /**< redo */ - SDL_SCANCODE_UNDO = 122, - SDL_SCANCODE_CUT = 123, - SDL_SCANCODE_COPY = 124, - SDL_SCANCODE_PASTE = 125, - SDL_SCANCODE_FIND = 126, - SDL_SCANCODE_MUTE = 127, - SDL_SCANCODE_VOLUMEUP = 128, - SDL_SCANCODE_VOLUMEDOWN = 129, -/* not sure whether there's a reason to enable these */ -/* SDL_SCANCODE_LOCKINGCAPSLOCK = 130, */ -/* SDL_SCANCODE_LOCKINGNUMLOCK = 131, */ -/* SDL_SCANCODE_LOCKINGSCROLLLOCK = 132, */ - SDL_SCANCODE_KP_COMMA = 133, - SDL_SCANCODE_KP_EQUALSAS400 = 134, - - SDL_SCANCODE_INTERNATIONAL1 = 135, /**< used on Asian keyboards, see - footnotes in USB doc */ - SDL_SCANCODE_INTERNATIONAL2 = 136, - SDL_SCANCODE_INTERNATIONAL3 = 137, /**< Yen */ - SDL_SCANCODE_INTERNATIONAL4 = 138, - SDL_SCANCODE_INTERNATIONAL5 = 139, - SDL_SCANCODE_INTERNATIONAL6 = 140, - SDL_SCANCODE_INTERNATIONAL7 = 141, - SDL_SCANCODE_INTERNATIONAL8 = 142, - SDL_SCANCODE_INTERNATIONAL9 = 143, - SDL_SCANCODE_LANG1 = 144, /**< Hangul/English toggle */ - SDL_SCANCODE_LANG2 = 145, /**< Hanja conversion */ - SDL_SCANCODE_LANG3 = 146, /**< Katakana */ - SDL_SCANCODE_LANG4 = 147, /**< Hiragana */ - SDL_SCANCODE_LANG5 = 148, /**< Zenkaku/Hankaku */ - SDL_SCANCODE_LANG6 = 149, /**< reserved */ - SDL_SCANCODE_LANG7 = 150, /**< reserved */ - SDL_SCANCODE_LANG8 = 151, /**< reserved */ - SDL_SCANCODE_LANG9 = 152, /**< reserved */ - - SDL_SCANCODE_ALTERASE = 153, /**< Erase-Eaze */ - SDL_SCANCODE_SYSREQ = 154, - SDL_SCANCODE_CANCEL = 155, - SDL_SCANCODE_CLEAR = 156, - SDL_SCANCODE_PRIOR = 157, - SDL_SCANCODE_RETURN2 = 158, - SDL_SCANCODE_SEPARATOR = 159, - SDL_SCANCODE_OUT = 160, - SDL_SCANCODE_OPER = 161, - SDL_SCANCODE_CLEARAGAIN = 162, - SDL_SCANCODE_CRSEL = 163, - SDL_SCANCODE_EXSEL = 164, - - SDL_SCANCODE_KP_00 = 176, - SDL_SCANCODE_KP_000 = 177, - SDL_SCANCODE_THOUSANDSSEPARATOR = 178, - SDL_SCANCODE_DECIMALSEPARATOR = 179, - SDL_SCANCODE_CURRENCYUNIT = 180, - SDL_SCANCODE_CURRENCYSUBUNIT = 181, - SDL_SCANCODE_KP_LEFTPAREN = 182, - SDL_SCANCODE_KP_RIGHTPAREN = 183, - SDL_SCANCODE_KP_LEFTBRACE = 184, - SDL_SCANCODE_KP_RIGHTBRACE = 185, - SDL_SCANCODE_KP_TAB = 186, - SDL_SCANCODE_KP_BACKSPACE = 187, - SDL_SCANCODE_KP_A = 188, - SDL_SCANCODE_KP_B = 189, - SDL_SCANCODE_KP_C = 190, - SDL_SCANCODE_KP_D = 191, - SDL_SCANCODE_KP_E = 192, - SDL_SCANCODE_KP_F = 193, - SDL_SCANCODE_KP_XOR = 194, - SDL_SCANCODE_KP_POWER = 195, - SDL_SCANCODE_KP_PERCENT = 196, - SDL_SCANCODE_KP_LESS = 197, - SDL_SCANCODE_KP_GREATER = 198, - SDL_SCANCODE_KP_AMPERSAND = 199, - SDL_SCANCODE_KP_DBLAMPERSAND = 200, - SDL_SCANCODE_KP_VERTICALBAR = 201, - SDL_SCANCODE_KP_DBLVERTICALBAR = 202, - SDL_SCANCODE_KP_COLON = 203, - SDL_SCANCODE_KP_HASH = 204, - SDL_SCANCODE_KP_SPACE = 205, - SDL_SCANCODE_KP_AT = 206, - SDL_SCANCODE_KP_EXCLAM = 207, - SDL_SCANCODE_KP_MEMSTORE = 208, - SDL_SCANCODE_KP_MEMRECALL = 209, - SDL_SCANCODE_KP_MEMCLEAR = 210, - SDL_SCANCODE_KP_MEMADD = 211, - SDL_SCANCODE_KP_MEMSUBTRACT = 212, - SDL_SCANCODE_KP_MEMMULTIPLY = 213, - SDL_SCANCODE_KP_MEMDIVIDE = 214, - SDL_SCANCODE_KP_PLUSMINUS = 215, - SDL_SCANCODE_KP_CLEAR = 216, - SDL_SCANCODE_KP_CLEARENTRY = 217, - SDL_SCANCODE_KP_BINARY = 218, - SDL_SCANCODE_KP_OCTAL = 219, - SDL_SCANCODE_KP_DECIMAL = 220, - SDL_SCANCODE_KP_HEXADECIMAL = 221, - - SDL_SCANCODE_LCTRL = 224, - SDL_SCANCODE_LSHIFT = 225, - SDL_SCANCODE_LALT = 226, /**< alt, option */ - SDL_SCANCODE_LGUI = 227, /**< windows, command (apple), meta */ - SDL_SCANCODE_RCTRL = 228, - SDL_SCANCODE_RSHIFT = 229, - SDL_SCANCODE_RALT = 230, /**< alt gr, option */ - SDL_SCANCODE_RGUI = 231, /**< windows, command (apple), meta */ - - SDL_SCANCODE_MODE = 257, /**< I'm not sure if this is really not covered - * by any of the above, but since there's a - * special KMOD_MODE for it I'm adding it here - */ - - /* @} *//* Usage page 0x07 */ - - /** - * \name Usage page 0x0C - * - * These values are mapped from usage page 0x0C (USB consumer page). - */ - /* @{ */ - - SDL_SCANCODE_AUDIONEXT = 258, - SDL_SCANCODE_AUDIOPREV = 259, - SDL_SCANCODE_AUDIOSTOP = 260, - SDL_SCANCODE_AUDIOPLAY = 261, - SDL_SCANCODE_AUDIOMUTE = 262, - SDL_SCANCODE_MEDIASELECT = 263, - SDL_SCANCODE_WWW = 264, - SDL_SCANCODE_MAIL = 265, - SDL_SCANCODE_CALCULATOR = 266, - SDL_SCANCODE_COMPUTER = 267, - SDL_SCANCODE_AC_SEARCH = 268, - SDL_SCANCODE_AC_HOME = 269, - SDL_SCANCODE_AC_BACK = 270, - SDL_SCANCODE_AC_FORWARD = 271, - SDL_SCANCODE_AC_STOP = 272, - SDL_SCANCODE_AC_REFRESH = 273, - SDL_SCANCODE_AC_BOOKMARKS = 274, - - /* @} *//* Usage page 0x0C */ - - /** - * \name Walther keys - * - * These are values that Christian Walther added (for mac keyboard?). - */ - /* @{ */ - - SDL_SCANCODE_BRIGHTNESSDOWN = 275, - SDL_SCANCODE_BRIGHTNESSUP = 276, - SDL_SCANCODE_DISPLAYSWITCH = 277, /**< display mirroring/dual display - switch, video mode switch */ - SDL_SCANCODE_KBDILLUMTOGGLE = 278, - SDL_SCANCODE_KBDILLUMDOWN = 279, - SDL_SCANCODE_KBDILLUMUP = 280, - SDL_SCANCODE_EJECT = 281, - SDL_SCANCODE_SLEEP = 282, - - SDL_SCANCODE_APP1 = 283, - SDL_SCANCODE_APP2 = 284, - - /* @} *//* Walther keys */ - - /* Add any other keys here. */ - - SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes - for array bounds */ -} SDL_Scancode; - -#endif /* _SDL_scancode_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_shape.h b/lib/osx/include/SDL_shape.h deleted file mode 100644 index db10a8f..0000000 --- a/lib/osx/include/SDL_shape.h +++ /dev/null @@ -1,143 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_shape_h -#define _SDL_shape_h - -#include "SDL_stdinc.h" -#include "SDL_pixels.h" -#include "SDL_rect.h" -#include "SDL_surface.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** \file SDL_shape.h - * - * Header file for the shaped window API. - */ - -#define SDL_NONSHAPEABLE_WINDOW -1 -#define SDL_INVALID_SHAPE_ARGUMENT -2 -#define SDL_WINDOW_LACKS_SHAPE -3 - -/** - * \brief Create a window that can be shaped with the specified position, dimensions, and flags. - * - * \param title The title of the window, in UTF-8 encoding. - * \param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or - * ::SDL_WINDOWPOS_UNDEFINED. - * \param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or - * ::SDL_WINDOWPOS_UNDEFINED. - * \param w The width of the window. - * \param h The height of the window. - * \param flags The flags for the window, a mask of SDL_WINDOW_BORDERLESS with any of the following: - * ::SDL_WINDOW_OPENGL, ::SDL_WINDOW_INPUT_GRABBED, - * ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_RESIZABLE, - * ::SDL_WINDOW_MAXIMIZED, ::SDL_WINDOW_MINIMIZED, - * ::SDL_WINDOW_BORDERLESS is always set, and ::SDL_WINDOW_FULLSCREEN is always unset. - * - * \return The window created, or NULL if window creation failed. - * - * \sa SDL_DestroyWindow() - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_CreateShapedWindow(const char *title,unsigned int x,unsigned int y,unsigned int w,unsigned int h,Uint32 flags); - -/** - * \brief Return whether the given window is a shaped window. - * - * \param window The window to query for being shaped. - * - * \return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if the window is unshaped or NULL. - * \sa SDL_CreateShapedWindow - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsShapedWindow(const SDL_Window *window); - -/** \brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union. */ -typedef enum { - /** \brief The default mode, a binarized alpha cutoff of 1. */ - ShapeModeDefault, - /** \brief A binarized alpha cutoff with a given integer value. */ - ShapeModeBinarizeAlpha, - /** \brief A binarized alpha cutoff with a given integer value, but with the opposite comparison. */ - ShapeModeReverseBinarizeAlpha, - /** \brief A color key is applied. */ - ShapeModeColorKey -} WindowShapeMode; - -#define SDL_SHAPEMODEALPHA(mode) (mode == ShapeModeDefault || mode == ShapeModeBinarizeAlpha || mode == ShapeModeReverseBinarizeAlpha) - -/** \brief A union containing parameters for shaped windows. */ -typedef union { - /** \brief a cutoff alpha value for binarization of the window shape's alpha channel. */ - Uint8 binarizationCutoff; - SDL_Color colorKey; -} SDL_WindowShapeParams; - -/** \brief A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents. */ -typedef struct SDL_WindowShapeMode { - /** \brief The mode of these window-shape parameters. */ - WindowShapeMode mode; - /** \brief Window-shape parameters. */ - SDL_WindowShapeParams parameters; -} SDL_WindowShapeMode; - -/** - * \brief Set the shape and parameters of a shaped window. - * - * \param window The shaped window whose parameters should be set. - * \param shape A surface encoding the desired shape for the window. - * \param shape_mode The parameters to set for the shaped window. - * - * \return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on invalid an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW - * if the SDL_Window* given does not reference a valid shaped window. - * - * \sa SDL_WindowShapeMode - * \sa SDL_GetShapedWindowMode. - */ -extern DECLSPEC int SDLCALL SDL_SetWindowShape(SDL_Window *window,SDL_Surface *shape,SDL_WindowShapeMode *shape_mode); - -/** - * \brief Get the shape parameters of a shaped window. - * - * \param window The shaped window whose parameters should be retrieved. - * \param shape_mode An empty shape-mode structure to fill, or NULL to check whether the window has a shape. - * - * \return 0 if the window has a shape and, provided shape_mode was not NULL, shape_mode has been filled with the mode - * data, SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped window, or SDL_WINDOW_LACKS_SHAPE if - * the SDL_Window* given is a shapeable window currently lacking a shape. - * - * \sa SDL_WindowShapeMode - * \sa SDL_SetWindowShape - */ -extern DECLSPEC int SDLCALL SDL_GetShapedWindowMode(SDL_Window *window,SDL_WindowShapeMode *shape_mode); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_shape_h */ diff --git a/lib/osx/include/SDL_stdinc.h b/lib/osx/include/SDL_stdinc.h deleted file mode 100644 index fdf9641..0000000 --- a/lib/osx/include/SDL_stdinc.h +++ /dev/null @@ -1,531 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_stdinc.h - * - * This is a general header that includes C language support. - */ - -#ifndef _SDL_stdinc_h -#define _SDL_stdinc_h - -#include "SDL_config.h" - -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_STDIO_H -#include <stdio.h> -#endif -#if defined(STDC_HEADERS) -# include <stdlib.h> -# include <stddef.h> -# include <stdarg.h> -#else -# if defined(HAVE_STDLIB_H) -# include <stdlib.h> -# elif defined(HAVE_MALLOC_H) -# include <malloc.h> -# endif -# if defined(HAVE_STDDEF_H) -# include <stddef.h> -# endif -# if defined(HAVE_STDARG_H) -# include <stdarg.h> -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H) -# include <memory.h> -# endif -# include <string.h> -#endif -#ifdef HAVE_STRINGS_H -# include <strings.h> -#endif -#if defined(HAVE_INTTYPES_H) -# include <inttypes.h> -#elif defined(HAVE_STDINT_H) -# include <stdint.h> -#endif -#ifdef HAVE_CTYPE_H -# include <ctype.h> -#endif -#ifdef HAVE_MATH_H -# if defined(__WINRT__) -/* Defining _USE_MATH_DEFINES is required to get M_PI to be defined on - WinRT. See http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx - for more information. -*/ -# define _USE_MATH_DEFINES -# endif -# include <math.h> -#endif -#ifdef HAVE_FLOAT_H -# include <float.h> -#endif - -/** - * The number of elements in an array. - */ -#define SDL_arraysize(array) (sizeof(array)/sizeof(array[0])) -#define SDL_TABLESIZE(table) SDL_arraysize(table) - -/** - * Macro useful for building other macros with strings in them - * - * e.g. #define LOG_ERROR(X) OutputDebugString(SDL_STRINGIFY_ARG(__FUNCTION__) ": " X "\n") - */ -#define SDL_STRINGIFY_ARG(arg) #arg - -/** - * \name Cast operators - * - * Use proper C++ casts when compiled as C++ to be compatible with the option - * -Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above). - */ -/* @{ */ -#ifdef __cplusplus -#define SDL_reinterpret_cast(type, expression) reinterpret_cast<type>(expression) -#define SDL_static_cast(type, expression) static_cast<type>(expression) -#define SDL_const_cast(type, expression) const_cast<type>(expression) -#else -#define SDL_reinterpret_cast(type, expression) ((type)(expression)) -#define SDL_static_cast(type, expression) ((type)(expression)) -#define SDL_const_cast(type, expression) ((type)(expression)) -#endif -/* @} *//* Cast operators */ - -/* Define a four character code as a Uint32 */ -#define SDL_FOURCC(A, B, C, D) \ - ((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \ - (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \ - (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \ - (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24)) - -/** - * \name Basic data types - */ -/* @{ */ - -typedef enum -{ - SDL_FALSE = 0, - SDL_TRUE = 1 -} SDL_bool; - -/** - * \brief A signed 8-bit integer type. - */ -typedef int8_t Sint8; -/** - * \brief An unsigned 8-bit integer type. - */ -typedef uint8_t Uint8; -/** - * \brief A signed 16-bit integer type. - */ -typedef int16_t Sint16; -/** - * \brief An unsigned 16-bit integer type. - */ -typedef uint16_t Uint16; -/** - * \brief A signed 32-bit integer type. - */ -typedef int32_t Sint32; -/** - * \brief An unsigned 32-bit integer type. - */ -typedef uint32_t Uint32; - -/** - * \brief A signed 64-bit integer type. - */ -typedef int64_t Sint64; -/** - * \brief An unsigned 64-bit integer type. - */ -typedef uint64_t Uint64; - -/* @} *//* Basic data types */ - -/* Make sure we have macros for printing 64 bit values. - * <stdint.h> should define these but this is not true all platforms. - * (for example win32) */ -#ifndef SDL_PRIs64 -#ifdef PRIs64 -#define SDL_PRIs64 PRIs64 -#elif defined(__WIN32__) -#define SDL_PRIs64 "I64d" -#elif defined(__LINUX__) && defined(__LP64__) -#define SDL_PRIs64 "ld" -#else -#define SDL_PRIs64 "lld" -#endif -#endif -#ifndef SDL_PRIu64 -#ifdef PRIu64 -#define SDL_PRIu64 PRIu64 -#elif defined(__WIN32__) -#define SDL_PRIu64 "I64u" -#elif defined(__LINUX__) && defined(__LP64__) -#define SDL_PRIu64 "lu" -#else -#define SDL_PRIu64 "llu" -#endif -#endif -#ifndef SDL_PRIx64 -#ifdef PRIx64 -#define SDL_PRIx64 PRIx64 -#elif defined(__WIN32__) -#define SDL_PRIx64 "I64x" -#elif defined(__LINUX__) && defined(__LP64__) -#define SDL_PRIx64 "lx" -#else -#define SDL_PRIx64 "llx" -#endif -#endif -#ifndef SDL_PRIX64 -#ifdef PRIX64 -#define SDL_PRIX64 PRIX64 -#elif defined(__WIN32__) -#define SDL_PRIX64 "I64X" -#elif defined(__LINUX__) && defined(__LP64__) -#define SDL_PRIX64 "lX" -#else -#define SDL_PRIX64 "llX" -#endif -#endif - -/* Annotations to help code analysis tools */ -#ifdef SDL_DISABLE_ANALYZE_MACROS -#define SDL_IN_BYTECAP(x) -#define SDL_INOUT_Z_CAP(x) -#define SDL_OUT_Z_CAP(x) -#define SDL_OUT_CAP(x) -#define SDL_OUT_BYTECAP(x) -#define SDL_OUT_Z_BYTECAP(x) -#define SDL_PRINTF_FORMAT_STRING -#define SDL_SCANF_FORMAT_STRING -#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) -#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) -#else -#if defined(_MSC_VER) && (_MSC_VER >= 1600) /* VS 2010 and above */ -#include <sal.h> - -#define SDL_IN_BYTECAP(x) _In_bytecount_(x) -#define SDL_INOUT_Z_CAP(x) _Inout_z_cap_(x) -#define SDL_OUT_Z_CAP(x) _Out_z_cap_(x) -#define SDL_OUT_CAP(x) _Out_cap_(x) -#define SDL_OUT_BYTECAP(x) _Out_bytecap_(x) -#define SDL_OUT_Z_BYTECAP(x) _Out_z_bytecap_(x) - -#define SDL_PRINTF_FORMAT_STRING _Printf_format_string_ -#define SDL_SCANF_FORMAT_STRING _Scanf_format_string_impl_ -#else -#define SDL_IN_BYTECAP(x) -#define SDL_INOUT_Z_CAP(x) -#define SDL_OUT_Z_CAP(x) -#define SDL_OUT_CAP(x) -#define SDL_OUT_BYTECAP(x) -#define SDL_OUT_Z_BYTECAP(x) -#define SDL_PRINTF_FORMAT_STRING -#define SDL_SCANF_FORMAT_STRING -#endif -#if defined(__GNUC__) -#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __printf__, fmtargnumber, fmtargnumber+1 ))) -#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __scanf__, fmtargnumber, fmtargnumber+1 ))) -#else -#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) -#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) -#endif -#endif /* SDL_DISABLE_ANALYZE_MACROS */ - -#define SDL_COMPILE_TIME_ASSERT(name, x) \ - typedef int SDL_dummy_ ## name[(x) * 2 - 1] -/** \cond */ -#ifndef DOXYGEN_SHOULD_IGNORE_THIS -SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1); -SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1); -SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2); -SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2); -SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4); -SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4); -SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8); -SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8); -#endif /* DOXYGEN_SHOULD_IGNORE_THIS */ -/** \endcond */ - -/* Check to make sure enums are the size of ints, for structure packing. - For both Watcom C/C++ and Borland C/C++ the compiler option that makes - enums having the size of an int must be enabled. - This is "-b" for Borland C/C++ and "-ei" for Watcom C/C++ (v11). -*/ - -/** \cond */ -#ifndef DOXYGEN_SHOULD_IGNORE_THIS -#if !defined(__ANDROID__) - /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */ -typedef enum -{ - DUMMY_ENUM_VALUE -} SDL_DUMMY_ENUM; - -SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int)); -#endif -#endif /* DOXYGEN_SHOULD_IGNORE_THIS */ -/** \endcond */ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(HAVE_ALLOCA) && !defined(alloca) -# if defined(HAVE_ALLOCA_H) -# include <alloca.h> -# elif defined(__GNUC__) -# define alloca __builtin_alloca -# elif defined(_MSC_VER) -# include <malloc.h> -# define alloca _alloca -# elif defined(__WATCOMC__) -# include <malloc.h> -# elif defined(__BORLANDC__) -# include <malloc.h> -# elif defined(__DMC__) -# include <stdlib.h> -# elif defined(__AIX__) -#pragma alloca -# elif defined(__MRC__) -void *alloca(unsigned); -# else -char *alloca(); -# endif -#endif -#ifdef HAVE_ALLOCA -#define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count)) -#define SDL_stack_free(data) -#else -#define SDL_stack_alloc(type, count) (type*)SDL_malloc(sizeof(type)*(count)) -#define SDL_stack_free(data) SDL_free(data) -#endif - -extern DECLSPEC void *SDLCALL SDL_malloc(size_t size); -extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size); -extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size); -extern DECLSPEC void SDLCALL SDL_free(void *mem); - -extern DECLSPEC char *SDLCALL SDL_getenv(const char *name); -extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite); - -extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (*compare) (const void *, const void *)); - -extern DECLSPEC int SDLCALL SDL_abs(int x); - -/* !!! FIXME: these have side effects. You probably shouldn't use them. */ -/* !!! FIXME: Maybe we do forceinline functions of SDL_mini, SDL_minf, etc? */ -#define SDL_min(x, y) (((x) < (y)) ? (x) : (y)) -#define SDL_max(x, y) (((x) > (y)) ? (x) : (y)) - -extern DECLSPEC int SDLCALL SDL_isdigit(int x); -extern DECLSPEC int SDLCALL SDL_isspace(int x); -extern DECLSPEC int SDLCALL SDL_toupper(int x); -extern DECLSPEC int SDLCALL SDL_tolower(int x); - -extern DECLSPEC void *SDLCALL SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c, size_t len); - -#define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x))) -#define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x))) - -/* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */ -SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords) -{ -#if defined(__GNUC__) && defined(i386) - int u0, u1, u2; - __asm__ __volatile__ ( - "cld \n\t" - "rep ; stosl \n\t" - : "=&D" (u0), "=&a" (u1), "=&c" (u2) - : "0" (dst), "1" (val), "2" (SDL_static_cast(Uint32, dwords)) - : "memory" - ); -#else - size_t _n = (dwords + 3) / 4; - Uint32 *_p = SDL_static_cast(Uint32 *, dst); - Uint32 _val = (val); - if (dwords == 0) - return; - switch (dwords % 4) - { - case 0: do { *_p++ = _val; - case 3: *_p++ = _val; - case 2: *_p++ = _val; - case 1: *_p++ = _val; - } while ( --_n ); - } -#endif -} - - -extern DECLSPEC void *SDLCALL SDL_memcpy(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len); - -extern DECLSPEC void *SDLCALL SDL_memmove(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len); -extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len); - -extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr); -extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); -extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); - -extern DECLSPEC size_t SDLCALL SDL_strlen(const char *str); -extern DECLSPEC size_t SDLCALL SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen); -extern DECLSPEC size_t SDLCALL SDL_utf8strlcpy(SDL_OUT_Z_CAP(dst_bytes) char *dst, const char *src, size_t dst_bytes); -extern DECLSPEC size_t SDLCALL SDL_strlcat(SDL_INOUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen); -extern DECLSPEC char *SDLCALL SDL_strdup(const char *str); -extern DECLSPEC char *SDLCALL SDL_strrev(char *str); -extern DECLSPEC char *SDLCALL SDL_strupr(char *str); -extern DECLSPEC char *SDLCALL SDL_strlwr(char *str); -extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c); -extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c); -extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle); - -extern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_ltoa(long value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *str, int radix); - -extern DECLSPEC int SDLCALL SDL_atoi(const char *str); -extern DECLSPEC double SDLCALL SDL_atof(const char *str); -extern DECLSPEC long SDLCALL SDL_strtol(const char *str, char **endp, int base); -extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *str, char **endp, int base); -extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *str, char **endp, int base); -extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *str, char **endp, int base); -extern DECLSPEC double SDLCALL SDL_strtod(const char *str, char **endp); - -extern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2); -extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen); -extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2); -extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t len); - -extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, SDL_SCANF_FORMAT_STRING const char *fmt, ...) SDL_SCANF_VARARG_FUNC(2); -extern DECLSPEC int SDLCALL SDL_vsscanf(const char *text, const char *fmt, va_list ap); -extern DECLSPEC int SDLCALL SDL_snprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, SDL_PRINTF_FORMAT_STRING const char *fmt, ... ) SDL_PRINTF_VARARG_FUNC(3); -extern DECLSPEC int SDLCALL SDL_vsnprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, const char *fmt, va_list ap); - -#ifndef HAVE_M_PI -#ifndef M_PI -#define M_PI 3.14159265358979323846264338327950288 /* pi */ -#endif -#endif - -extern DECLSPEC double SDLCALL SDL_acos(double x); -extern DECLSPEC double SDLCALL SDL_asin(double x); -extern DECLSPEC double SDLCALL SDL_atan(double x); -extern DECLSPEC double SDLCALL SDL_atan2(double x, double y); -extern DECLSPEC double SDLCALL SDL_ceil(double x); -extern DECLSPEC double SDLCALL SDL_copysign(double x, double y); -extern DECLSPEC double SDLCALL SDL_cos(double x); -extern DECLSPEC float SDLCALL SDL_cosf(float x); -extern DECLSPEC double SDLCALL SDL_fabs(double x); -extern DECLSPEC double SDLCALL SDL_floor(double x); -extern DECLSPEC double SDLCALL SDL_log(double x); -extern DECLSPEC double SDLCALL SDL_pow(double x, double y); -extern DECLSPEC double SDLCALL SDL_scalbn(double x, int n); -extern DECLSPEC double SDLCALL SDL_sin(double x); -extern DECLSPEC float SDLCALL SDL_sinf(float x); -extern DECLSPEC double SDLCALL SDL_sqrt(double x); -extern DECLSPEC float SDLCALL SDL_sqrtf(float x); -extern DECLSPEC double SDLCALL SDL_tan(double x); -extern DECLSPEC float SDLCALL SDL_tanf(float x); - -/* The SDL implementation of iconv() returns these error codes */ -#define SDL_ICONV_ERROR (size_t)-1 -#define SDL_ICONV_E2BIG (size_t)-2 -#define SDL_ICONV_EILSEQ (size_t)-3 -#define SDL_ICONV_EINVAL (size_t)-4 - -/* SDL_iconv_* are now always real symbols/types, not macros or inlined. */ -typedef struct _SDL_iconv_t *SDL_iconv_t; -extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode, - const char *fromcode); -extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd); -extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, - size_t * inbytesleft, char **outbuf, - size_t * outbytesleft); -/** - * This function converts a string between encodings in one pass, returning a - * string that must be freed with SDL_free() or NULL on error. - */ -extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode, - const char *fromcode, - const char *inbuf, - size_t inbytesleft); -#define SDL_iconv_utf8_locale(S) SDL_iconv_string("", "UTF-8", S, SDL_strlen(S)+1) -#define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2-INTERNAL", "UTF-8", S, SDL_strlen(S)+1) -#define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4-INTERNAL", "UTF-8", S, SDL_strlen(S)+1) - -/* force builds using Clang's static analysis tools to use literal C runtime - here, since there are possibly tests that are ineffective otherwise. */ -#if defined(__clang_analyzer__) && !defined(SDL_DISABLE_ANALYZE_MACROS) -#define SDL_malloc malloc -#define SDL_calloc calloc -#define SDL_realloc realloc -#define SDL_free free -#define SDL_memset memset -#define SDL_memcpy memcpy -#define SDL_memmove memmove -#define SDL_memcmp memcmp -#define SDL_strlen strlen -#define SDL_strlcpy strlcpy -#define SDL_strlcat strlcat -#define SDL_strdup strdup -#define SDL_strchr strchr -#define SDL_strrchr strrchr -#define SDL_strstr strstr -#define SDL_strcmp strcmp -#define SDL_strncmp strncmp -#define SDL_strcasecmp strcasecmp -#define SDL_strncasecmp strncasecmp -#define SDL_sscanf sscanf -#define SDL_vsscanf vsscanf -#define SDL_snprintf snprintf -#define SDL_vsnprintf vsnprintf -#endif - -SDL_FORCE_INLINE void *SDL_memcpy4(SDL_OUT_BYTECAP(dwords*4) void *dst, SDL_IN_BYTECAP(dwords*4) const void *src, size_t dwords) -{ - return SDL_memcpy(dst, src, dwords * 4); -} - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_stdinc_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_surface.h b/lib/osx/include/SDL_surface.h deleted file mode 100644 index e4a06a2..0000000 --- a/lib/osx/include/SDL_surface.h +++ /dev/null @@ -1,513 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_surface.h - * - * Header file for ::SDL_Surface definition and management functions. - */ - -#ifndef _SDL_surface_h -#define _SDL_surface_h - -#include "SDL_stdinc.h" -#include "SDL_pixels.h" -#include "SDL_rect.h" -#include "SDL_blendmode.h" -#include "SDL_rwops.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \name Surface flags - * - * These are the currently supported flags for the ::SDL_Surface. - * - * \internal - * Used internally (read-only). - */ -/* @{ */ -#define SDL_SWSURFACE 0 /**< Just here for compatibility */ -#define SDL_PREALLOC 0x00000001 /**< Surface uses preallocated memory */ -#define SDL_RLEACCEL 0x00000002 /**< Surface is RLE encoded */ -#define SDL_DONTFREE 0x00000004 /**< Surface is referenced internally */ -/* @} *//* Surface flags */ - -/** - * Evaluates to true if the surface needs to be locked before access. - */ -#define SDL_MUSTLOCK(S) (((S)->flags & SDL_RLEACCEL) != 0) - -/** - * \brief A collection of pixels used in software blitting. - * - * \note This structure should be treated as read-only, except for \c pixels, - * which, if not NULL, contains the raw pixel data for the surface. - */ -typedef struct SDL_Surface -{ - Uint32 flags; /**< Read-only */ - SDL_PixelFormat *format; /**< Read-only */ - int w, h; /**< Read-only */ - int pitch; /**< Read-only */ - void *pixels; /**< Read-write */ - - /** Application data associated with the surface */ - void *userdata; /**< Read-write */ - - /** information needed for surfaces requiring locks */ - int locked; /**< Read-only */ - void *lock_data; /**< Read-only */ - - /** clipping information */ - SDL_Rect clip_rect; /**< Read-only */ - - /** info for fast blit mapping to other surfaces */ - struct SDL_BlitMap *map; /**< Private */ - - /** Reference count -- used when freeing surface */ - int refcount; /**< Read-mostly */ -} SDL_Surface; - -/** - * \brief The type of function used for surface blitting functions. - */ -typedef int (*SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, - struct SDL_Surface * dst, SDL_Rect * dstrect); - -/** - * Allocate and free an RGB surface. - * - * If the depth is 4 or 8 bits, an empty palette is allocated for the surface. - * If the depth is greater than 8 bits, the pixel format is set using the - * flags '[RGB]mask'. - * - * If the function runs out of memory, it will return NULL. - * - * \param flags The \c flags are obsolete and should be set to 0. - * \param width The width in pixels of the surface to create. - * \param height The height in pixels of the surface to create. - * \param depth The depth in bits of the surface to create. - * \param Rmask The red mask of the surface to create. - * \param Gmask The green mask of the surface to create. - * \param Bmask The blue mask of the surface to create. - * \param Amask The alpha mask of the surface to create. - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurface - (Uint32 flags, int width, int height, int depth, - Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask); -extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormat - (Uint32 flags, int width, int height, int depth, Uint32 format); -extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels, - int width, - int height, - int depth, - int pitch, - Uint32 Rmask, - Uint32 Gmask, - Uint32 Bmask, - Uint32 Amask); -extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormatFrom - (void *pixels, int width, int height, int depth, int pitch, Uint32 format); -extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface * surface); - -/** - * \brief Set the palette used by a surface. - * - * \return 0, or -1 if the surface format doesn't use a palette. - * - * \note A single palette can be shared with many surfaces. - */ -extern DECLSPEC int SDLCALL SDL_SetSurfacePalette(SDL_Surface * surface, - SDL_Palette * palette); - -/** - * \brief Sets up a surface for directly accessing the pixels. - * - * Between calls to SDL_LockSurface() / SDL_UnlockSurface(), you can write - * to and read from \c surface->pixels, using the pixel format stored in - * \c surface->format. Once you are done accessing the surface, you should - * use SDL_UnlockSurface() to release it. - * - * Not all surfaces require locking. If SDL_MUSTLOCK(surface) evaluates - * to 0, then you can read and write to the surface at any time, and the - * pixel format of the surface will not change. - * - * No operating system or library calls should be made between lock/unlock - * pairs, as critical system locks may be held during this time. - * - * SDL_LockSurface() returns 0, or -1 if the surface couldn't be locked. - * - * \sa SDL_UnlockSurface() - */ -extern DECLSPEC int SDLCALL SDL_LockSurface(SDL_Surface * surface); -/** \sa SDL_LockSurface() */ -extern DECLSPEC void SDLCALL SDL_UnlockSurface(SDL_Surface * surface); - -/** - * Load a surface from a seekable SDL data stream (memory or file). - * - * If \c freesrc is non-zero, the stream will be closed after being read. - * - * The new surface should be freed with SDL_FreeSurface(). - * - * \return the new surface, or NULL if there was an error. - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_LoadBMP_RW(SDL_RWops * src, - int freesrc); - -/** - * Load a surface from a file. - * - * Convenience macro. - */ -#define SDL_LoadBMP(file) SDL_LoadBMP_RW(SDL_RWFromFile(file, "rb"), 1) - -/** - * Save a surface to a seekable SDL data stream (memory or file). - * - * Surfaces with a 24-bit, 32-bit and paletted 8-bit format get saved in the - * BMP directly. Other RGB formats with 8-bit or higher get converted to a - * 24-bit surface or, if they have an alpha mask or a colorkey, to a 32-bit - * surface before they are saved. YUV and paletted 1-bit and 4-bit formats are - * not supported. - * - * If \c freedst is non-zero, the stream will be closed after being written. - * - * \return 0 if successful or -1 if there was an error. - */ -extern DECLSPEC int SDLCALL SDL_SaveBMP_RW - (SDL_Surface * surface, SDL_RWops * dst, int freedst); - -/** - * Save a surface to a file. - * - * Convenience macro. - */ -#define SDL_SaveBMP(surface, file) \ - SDL_SaveBMP_RW(surface, SDL_RWFromFile(file, "wb"), 1) - -/** - * \brief Sets the RLE acceleration hint for a surface. - * - * \return 0 on success, or -1 if the surface is not valid - * - * \note If RLE is enabled, colorkey and alpha blending blits are much faster, - * but the surface must be locked before directly accessing the pixels. - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceRLE(SDL_Surface * surface, - int flag); - -/** - * \brief Sets the color key (transparent pixel) in a blittable surface. - * - * \param surface The surface to update - * \param flag Non-zero to enable colorkey and 0 to disable colorkey - * \param key The transparent pixel in the native surface format - * - * \return 0 on success, or -1 if the surface is not valid - * - * You can pass SDL_RLEACCEL to enable RLE accelerated blits. - */ -extern DECLSPEC int SDLCALL SDL_SetColorKey(SDL_Surface * surface, - int flag, Uint32 key); - -/** - * \brief Gets the color key (transparent pixel) in a blittable surface. - * - * \param surface The surface to update - * \param key A pointer filled in with the transparent pixel in the native - * surface format - * - * \return 0 on success, or -1 if the surface is not valid or colorkey is not - * enabled. - */ -extern DECLSPEC int SDLCALL SDL_GetColorKey(SDL_Surface * surface, - Uint32 * key); - -/** - * \brief Set an additional color value used in blit operations. - * - * \param surface The surface to update. - * \param r The red color value multiplied into blit operations. - * \param g The green color value multiplied into blit operations. - * \param b The blue color value multiplied into blit operations. - * - * \return 0 on success, or -1 if the surface is not valid. - * - * \sa SDL_GetSurfaceColorMod() - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceColorMod(SDL_Surface * surface, - Uint8 r, Uint8 g, Uint8 b); - - -/** - * \brief Get the additional color value used in blit operations. - * - * \param surface The surface to query. - * \param r A pointer filled in with the current red color value. - * \param g A pointer filled in with the current green color value. - * \param b A pointer filled in with the current blue color value. - * - * \return 0 on success, or -1 if the surface is not valid. - * - * \sa SDL_SetSurfaceColorMod() - */ -extern DECLSPEC int SDLCALL SDL_GetSurfaceColorMod(SDL_Surface * surface, - Uint8 * r, Uint8 * g, - Uint8 * b); - -/** - * \brief Set an additional alpha value used in blit operations. - * - * \param surface The surface to update. - * \param alpha The alpha value multiplied into blit operations. - * - * \return 0 on success, or -1 if the surface is not valid. - * - * \sa SDL_GetSurfaceAlphaMod() - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceAlphaMod(SDL_Surface * surface, - Uint8 alpha); - -/** - * \brief Get the additional alpha value used in blit operations. - * - * \param surface The surface to query. - * \param alpha A pointer filled in with the current alpha value. - * - * \return 0 on success, or -1 if the surface is not valid. - * - * \sa SDL_SetSurfaceAlphaMod() - */ -extern DECLSPEC int SDLCALL SDL_GetSurfaceAlphaMod(SDL_Surface * surface, - Uint8 * alpha); - -/** - * \brief Set the blend mode used for blit operations. - * - * \param surface The surface to update. - * \param blendMode ::SDL_BlendMode to use for blit blending. - * - * \return 0 on success, or -1 if the parameters are not valid. - * - * \sa SDL_GetSurfaceBlendMode() - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceBlendMode(SDL_Surface * surface, - SDL_BlendMode blendMode); - -/** - * \brief Get the blend mode used for blit operations. - * - * \param surface The surface to query. - * \param blendMode A pointer filled in with the current blend mode. - * - * \return 0 on success, or -1 if the surface is not valid. - * - * \sa SDL_SetSurfaceBlendMode() - */ -extern DECLSPEC int SDLCALL SDL_GetSurfaceBlendMode(SDL_Surface * surface, - SDL_BlendMode *blendMode); - -/** - * Sets the clipping rectangle for the destination surface in a blit. - * - * If the clip rectangle is NULL, clipping will be disabled. - * - * If the clip rectangle doesn't intersect the surface, the function will - * return SDL_FALSE and blits will be completely clipped. Otherwise the - * function returns SDL_TRUE and blits to the surface will be clipped to - * the intersection of the surface area and the clipping rectangle. - * - * Note that blits are automatically clipped to the edges of the source - * and destination surfaces. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_SetClipRect(SDL_Surface * surface, - const SDL_Rect * rect); - -/** - * Gets the clipping rectangle for the destination surface in a blit. - * - * \c rect must be a pointer to a valid rectangle which will be filled - * with the correct values. - */ -extern DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface * surface, - SDL_Rect * rect); - -/** - * Creates a new surface of the specified format, and then copies and maps - * the given surface to it so the blit of the converted surface will be as - * fast as possible. If this function fails, it returns NULL. - * - * The \c flags parameter is passed to SDL_CreateRGBSurface() and has those - * semantics. You can also pass ::SDL_RLEACCEL in the flags parameter and - * SDL will try to RLE accelerate colorkey and alpha blits in the resulting - * surface. - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurface - (SDL_Surface * src, const SDL_PixelFormat * fmt, Uint32 flags); -extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurfaceFormat - (SDL_Surface * src, Uint32 pixel_format, Uint32 flags); - -/** - * \brief Copy a block of pixels of one format to another format - * - * \return 0 on success, or -1 if there was an error - */ -extern DECLSPEC int SDLCALL SDL_ConvertPixels(int width, int height, - Uint32 src_format, - const void * src, int src_pitch, - Uint32 dst_format, - void * dst, int dst_pitch); - -/** - * Performs a fast fill of the given rectangle with \c color. - * - * If \c rect is NULL, the whole surface will be filled with \c color. - * - * The color should be a pixel of the format used by the surface, and - * can be generated by the SDL_MapRGB() function. - * - * \return 0 on success, or -1 on error. - */ -extern DECLSPEC int SDLCALL SDL_FillRect - (SDL_Surface * dst, const SDL_Rect * rect, Uint32 color); -extern DECLSPEC int SDLCALL SDL_FillRects - (SDL_Surface * dst, const SDL_Rect * rects, int count, Uint32 color); - -/** - * Performs a fast blit from the source surface to the destination surface. - * - * This assumes that the source and destination rectangles are - * the same size. If either \c srcrect or \c dstrect are NULL, the entire - * surface (\c src or \c dst) is copied. The final blit rectangles are saved - * in \c srcrect and \c dstrect after all clipping is performed. - * - * \return If the blit is successful, it returns 0, otherwise it returns -1. - * - * The blit function should not be called on a locked surface. - * - * The blit semantics for surfaces with and without blending and colorkey - * are defined as follows: - * \verbatim - RGBA->RGB: - Source surface blend mode set to SDL_BLENDMODE_BLEND: - alpha-blend (using the source alpha-channel and per-surface alpha) - SDL_SRCCOLORKEY ignored. - Source surface blend mode set to SDL_BLENDMODE_NONE: - copy RGB. - if SDL_SRCCOLORKEY set, only copy the pixels matching the - RGB values of the source color key, ignoring alpha in the - comparison. - - RGB->RGBA: - Source surface blend mode set to SDL_BLENDMODE_BLEND: - alpha-blend (using the source per-surface alpha) - Source surface blend mode set to SDL_BLENDMODE_NONE: - copy RGB, set destination alpha to source per-surface alpha value. - both: - if SDL_SRCCOLORKEY set, only copy the pixels matching the - source color key. - - RGBA->RGBA: - Source surface blend mode set to SDL_BLENDMODE_BLEND: - alpha-blend (using the source alpha-channel and per-surface alpha) - SDL_SRCCOLORKEY ignored. - Source surface blend mode set to SDL_BLENDMODE_NONE: - copy all of RGBA to the destination. - if SDL_SRCCOLORKEY set, only copy the pixels matching the - RGB values of the source color key, ignoring alpha in the - comparison. - - RGB->RGB: - Source surface blend mode set to SDL_BLENDMODE_BLEND: - alpha-blend (using the source per-surface alpha) - Source surface blend mode set to SDL_BLENDMODE_NONE: - copy RGB. - both: - if SDL_SRCCOLORKEY set, only copy the pixels matching the - source color key. - \endverbatim - * - * You should call SDL_BlitSurface() unless you know exactly how SDL - * blitting works internally and how to use the other blit functions. - */ -#define SDL_BlitSurface SDL_UpperBlit - -/** - * This is the public blit function, SDL_BlitSurface(), and it performs - * rectangle validation and clipping before passing it to SDL_LowerBlit() - */ -extern DECLSPEC int SDLCALL SDL_UpperBlit - (SDL_Surface * src, const SDL_Rect * srcrect, - SDL_Surface * dst, SDL_Rect * dstrect); - -/** - * This is a semi-private blit function and it performs low-level surface - * blitting only. - */ -extern DECLSPEC int SDLCALL SDL_LowerBlit - (SDL_Surface * src, SDL_Rect * srcrect, - SDL_Surface * dst, SDL_Rect * dstrect); - -/** - * \brief Perform a fast, low quality, stretch blit between two surfaces of the - * same pixel format. - * - * \note This function uses a static buffer, and is not thread-safe. - */ -extern DECLSPEC int SDLCALL SDL_SoftStretch(SDL_Surface * src, - const SDL_Rect * srcrect, - SDL_Surface * dst, - const SDL_Rect * dstrect); - -#define SDL_BlitScaled SDL_UpperBlitScaled - -/** - * This is the public scaled blit function, SDL_BlitScaled(), and it performs - * rectangle validation and clipping before passing it to SDL_LowerBlitScaled() - */ -extern DECLSPEC int SDLCALL SDL_UpperBlitScaled - (SDL_Surface * src, const SDL_Rect * srcrect, - SDL_Surface * dst, SDL_Rect * dstrect); - -/** - * This is a semi-private blit function and it performs low-level surface - * scaled blitting only. - */ -extern DECLSPEC int SDLCALL SDL_LowerBlitScaled - (SDL_Surface * src, SDL_Rect * srcrect, - SDL_Surface * dst, SDL_Rect * dstrect); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_surface_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_system.h b/lib/osx/include/SDL_system.h deleted file mode 100644 index 5da9adb..0000000 --- a/lib/osx/include/SDL_system.h +++ /dev/null @@ -1,216 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_system.h - * - * Include file for platform specific SDL API functions - */ - -#ifndef _SDL_system_h -#define _SDL_system_h - -#include "SDL_stdinc.h" -#include "SDL_keyboard.h" -#include "SDL_render.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - - -/* Platform specific functions for Windows */ -#ifdef __WIN32__ - -/** - \brief Set a function that is called for every windows message, before TranslateMessage() -*/ -typedef void (SDLCALL * SDL_WindowsMessageHook)(void *userdata, void *hWnd, unsigned int message, Uint64 wParam, Sint64 lParam); -extern DECLSPEC void SDLCALL SDL_SetWindowsMessageHook(SDL_WindowsMessageHook callback, void *userdata); - -/** - \brief Returns the D3D9 adapter index that matches the specified display index. - - This adapter index can be passed to IDirect3D9::CreateDevice and controls - on which monitor a full screen application will appear. -*/ -extern DECLSPEC int SDLCALL SDL_Direct3D9GetAdapterIndex( int displayIndex ); - -typedef struct IDirect3DDevice9 IDirect3DDevice9; -/** - \brief Returns the D3D device associated with a renderer, or NULL if it's not a D3D renderer. - - Once you are done using the device, you should release it to avoid a resource leak. - */ -extern DECLSPEC IDirect3DDevice9* SDLCALL SDL_RenderGetD3D9Device(SDL_Renderer * renderer); - -/** - \brief Returns the DXGI Adapter and Output indices for the specified display index. - - These can be passed to EnumAdapters and EnumOutputs respectively to get the objects - required to create a DX10 or DX11 device and swap chain. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_DXGIGetOutputInfo( int displayIndex, int *adapterIndex, int *outputIndex ); - -#endif /* __WIN32__ */ - - -/* Platform specific functions for iOS */ -#if defined(__IPHONEOS__) && __IPHONEOS__ - -#define SDL_iOSSetAnimationCallback(window, interval, callback, callbackParam) SDL_iPhoneSetAnimationCallback(window, interval, callback, callbackParam) -extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam); - -#define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled) -extern DECLSPEC void SDLCALL SDL_iPhoneSetEventPump(SDL_bool enabled); - -#endif /* __IPHONEOS__ */ - - -/* Platform specific functions for Android */ -#if defined(__ANDROID__) && __ANDROID__ - -/** - \brief Get the JNI environment for the current thread - - This returns JNIEnv*, but the prototype is void* so we don't need jni.h - */ -extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(); - -/** - \brief Get the SDL Activity object for the application - - This returns jobject, but the prototype is void* so we don't need jni.h - The jobject returned by SDL_AndroidGetActivity is a local reference. - It is the caller's responsibility to properly release it - (using env->Push/PopLocalFrame or manually with env->DeleteLocalRef) - */ -extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(); - -/** - See the official Android developer guide for more information: - http://developer.android.com/guide/topics/data/data-storage.html -*/ -#define SDL_ANDROID_EXTERNAL_STORAGE_READ 0x01 -#define SDL_ANDROID_EXTERNAL_STORAGE_WRITE 0x02 - -/** - \brief Get the path used for internal storage for this application. - - This path is unique to your application and cannot be written to - by other applications. - */ -extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath(); - -/** - \brief Get the current state of external storage, a bitmask of these values: - SDL_ANDROID_EXTERNAL_STORAGE_READ - SDL_ANDROID_EXTERNAL_STORAGE_WRITE - - If external storage is currently unavailable, this will return 0. -*/ -extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(); - -/** - \brief Get the path used for external storage for this application. - - This path is unique to your application, but is public and can be - written to by other applications. - */ -extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath(); - -#endif /* __ANDROID__ */ - -/* Platform specific functions for WinRT */ -#if defined(__WINRT__) && __WINRT__ - -/** - * \brief WinRT / Windows Phone path types - */ -typedef enum -{ - /** \brief The installed app's root directory. - Files here are likely to be read-only. */ - SDL_WINRT_PATH_INSTALLED_LOCATION, - - /** \brief The app's local data store. Files may be written here */ - SDL_WINRT_PATH_LOCAL_FOLDER, - - /** \brief The app's roaming data store. Unsupported on Windows Phone. - Files written here may be copied to other machines via a network - connection. - */ - SDL_WINRT_PATH_ROAMING_FOLDER, - - /** \brief The app's temporary data store. Unsupported on Windows Phone. - Files written here may be deleted at any time. */ - SDL_WINRT_PATH_TEMP_FOLDER -} SDL_WinRT_Path; - - -/** - * \brief Retrieves a WinRT defined path on the local file system - * - * \note Documentation on most app-specific path types on WinRT - * can be found on MSDN, at the URL: - * http://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx - * - * \param pathType The type of path to retrieve. - * \return A UCS-2 string (16-bit, wide-char) containing the path, or NULL - * if the path is not available for any reason. Not all paths are - * available on all versions of Windows. This is especially true on - * Windows Phone. Check the documentation for the given - * SDL_WinRT_Path for more information on which path types are - * supported where. - */ -extern DECLSPEC const wchar_t * SDLCALL SDL_WinRTGetFSPathUNICODE(SDL_WinRT_Path pathType); - -/** - * \brief Retrieves a WinRT defined path on the local file system - * - * \note Documentation on most app-specific path types on WinRT - * can be found on MSDN, at the URL: - * http://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx - * - * \param pathType The type of path to retrieve. - * \return A UTF-8 string (8-bit, multi-byte) containing the path, or NULL - * if the path is not available for any reason. Not all paths are - * available on all versions of Windows. This is especially true on - * Windows Phone. Check the documentation for the given - * SDL_WinRT_Path for more information on which path types are - * supported where. - */ -extern DECLSPEC const char * SDLCALL SDL_WinRTGetFSPathUTF8(SDL_WinRT_Path pathType); - -#endif /* __WINRT__ */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_system_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_syswm.h b/lib/osx/include/SDL_syswm.h deleted file mode 100644 index 71ba5f1..0000000 --- a/lib/osx/include/SDL_syswm.h +++ /dev/null @@ -1,321 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_syswm.h - * - * Include file for SDL custom system window manager hooks. - */ - -#ifndef _SDL_syswm_h -#define _SDL_syswm_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_video.h" -#include "SDL_version.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file SDL_syswm.h - * - * Your application has access to a special type of event ::SDL_SYSWMEVENT, - * which contains window-manager specific information and arrives whenever - * an unhandled window event occurs. This event is ignored by default, but - * you can enable it with SDL_EventState(). - */ -#ifdef SDL_PROTOTYPES_ONLY -struct SDL_SysWMinfo; -#else - -#if defined(SDL_VIDEO_DRIVER_WINDOWS) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include <windows.h> -#endif - -#if defined(SDL_VIDEO_DRIVER_WINRT) -#include <Inspectable.h> -#endif - -/* This is the structure for custom window manager events */ -#if defined(SDL_VIDEO_DRIVER_X11) -#if defined(__APPLE__) && defined(__MACH__) -/* conflicts with Quickdraw.h */ -#define Cursor X11Cursor -#endif - -#include <X11/Xlib.h> -#include <X11/Xatom.h> - -#if defined(__APPLE__) && defined(__MACH__) -/* matches the re-define above */ -#undef Cursor -#endif - -#endif /* defined(SDL_VIDEO_DRIVER_X11) */ - -#if defined(SDL_VIDEO_DRIVER_DIRECTFB) -#include <directfb.h> -#endif - -#if defined(SDL_VIDEO_DRIVER_COCOA) -#ifdef __OBJC__ -@class NSWindow; -#else -typedef struct _NSWindow NSWindow; -#endif -#endif - -#if defined(SDL_VIDEO_DRIVER_UIKIT) -#ifdef __OBJC__ -#include <UIKit/UIKit.h> -#else -typedef struct _UIWindow UIWindow; -typedef struct _UIViewController UIViewController; -#endif -typedef Uint32 GLuint; -#endif - -#if defined(SDL_VIDEO_DRIVER_ANDROID) -typedef struct ANativeWindow ANativeWindow; -typedef void *EGLSurface; -#endif - -#if defined(SDL_VIDEO_DRIVER_VIVANTE) -#include "SDL_egl.h" -#endif - -/** - * These are the various supported windowing subsystems - */ -typedef enum -{ - SDL_SYSWM_UNKNOWN, - SDL_SYSWM_WINDOWS, - SDL_SYSWM_X11, - SDL_SYSWM_DIRECTFB, - SDL_SYSWM_COCOA, - SDL_SYSWM_UIKIT, - SDL_SYSWM_WAYLAND, - SDL_SYSWM_MIR, - SDL_SYSWM_WINRT, - SDL_SYSWM_ANDROID, - SDL_SYSWM_VIVANTE -} SDL_SYSWM_TYPE; - -/** - * The custom event structure. - */ -struct SDL_SysWMmsg -{ - SDL_version version; - SDL_SYSWM_TYPE subsystem; - union - { -#if defined(SDL_VIDEO_DRIVER_WINDOWS) - struct { - HWND hwnd; /**< The window for the message */ - UINT msg; /**< The type of message */ - WPARAM wParam; /**< WORD message parameter */ - LPARAM lParam; /**< LONG message parameter */ - } win; -#endif -#if defined(SDL_VIDEO_DRIVER_X11) - struct { - XEvent event; - } x11; -#endif -#if defined(SDL_VIDEO_DRIVER_DIRECTFB) - struct { - DFBEvent event; - } dfb; -#endif -#if defined(SDL_VIDEO_DRIVER_COCOA) - struct - { - /* Latest version of Xcode clang complains about empty structs in C v. C++: - error: empty struct has size 0 in C, size 1 in C++ - */ - int dummy; - /* No Cocoa window events yet */ - } cocoa; -#endif -#if defined(SDL_VIDEO_DRIVER_UIKIT) - struct - { - int dummy; - /* No UIKit window events yet */ - } uikit; -#endif -#if defined(SDL_VIDEO_DRIVER_VIVANTE) - struct - { - int dummy; - /* No Vivante window events yet */ - } vivante; -#endif - /* Can't have an empty union */ - int dummy; - } msg; -}; - -/** - * The custom window manager information structure. - * - * When this structure is returned, it holds information about which - * low level system it is using, and will be one of SDL_SYSWM_TYPE. - */ -struct SDL_SysWMinfo -{ - SDL_version version; - SDL_SYSWM_TYPE subsystem; - union - { -#if defined(SDL_VIDEO_DRIVER_WINDOWS) - struct - { - HWND window; /**< The window handle */ - HDC hdc; /**< The window device context */ - } win; -#endif -#if defined(SDL_VIDEO_DRIVER_WINRT) - struct - { - IInspectable * window; /**< The WinRT CoreWindow */ - } winrt; -#endif -#if defined(SDL_VIDEO_DRIVER_X11) - struct - { - Display *display; /**< The X11 display */ - Window window; /**< The X11 window */ - } x11; -#endif -#if defined(SDL_VIDEO_DRIVER_DIRECTFB) - struct - { - IDirectFB *dfb; /**< The directfb main interface */ - IDirectFBWindow *window; /**< The directfb window handle */ - IDirectFBSurface *surface; /**< The directfb client surface */ - } dfb; -#endif -#if defined(SDL_VIDEO_DRIVER_COCOA) - struct - { -#if defined(__OBJC__) && defined(__has_feature) && __has_feature(objc_arc) - NSWindow __unsafe_unretained *window; /* The Cocoa window */ -#else - NSWindow *window; /* The Cocoa window */ -#endif - } cocoa; -#endif -#if defined(SDL_VIDEO_DRIVER_UIKIT) - struct - { -#if defined(__OBJC__) && defined(__has_feature) && __has_feature(objc_arc) - UIWindow __unsafe_unretained *window; /* The UIKit window */ -#else - UIWindow *window; /* The UIKit window */ -#endif - GLuint framebuffer; /* The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. */ - GLuint colorbuffer; /* The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. */ - GLuint resolveFramebuffer; /* The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. */ - } uikit; -#endif -#if defined(SDL_VIDEO_DRIVER_WAYLAND) - struct - { - struct wl_display *display; /**< Wayland display */ - struct wl_surface *surface; /**< Wayland surface */ - struct wl_shell_surface *shell_surface; /**< Wayland shell_surface (window manager handle) */ - } wl; -#endif -#if defined(SDL_VIDEO_DRIVER_MIR) - struct - { - struct MirConnection *connection; /**< Mir display server connection */ - struct MirSurface *surface; /**< Mir surface */ - } mir; -#endif - -#if defined(SDL_VIDEO_DRIVER_ANDROID) - struct - { - ANativeWindow *window; - EGLSurface surface; - } android; -#endif - -#if defined(SDL_VIDEO_DRIVER_VIVANTE) - struct - { - EGLNativeDisplayType display; - EGLNativeWindowType window; - } vivante; -#endif - - /* Can't have an empty union */ - int dummy; - } info; -}; - -#endif /* SDL_PROTOTYPES_ONLY */ - -typedef struct SDL_SysWMinfo SDL_SysWMinfo; - -/* Function prototypes */ -/** - * \brief This function allows access to driver-dependent window information. - * - * \param window The window about which information is being requested - * \param info This structure must be initialized with the SDL version, and is - * then filled in with information about the given window. - * - * \return SDL_TRUE if the function is implemented and the version member of - * the \c info struct is valid, SDL_FALSE otherwise. - * - * You typically use this function like this: - * \code - * SDL_SysWMinfo info; - * SDL_VERSION(&info.version); - * if ( SDL_GetWindowWMInfo(window, &info) ) { ... } - * \endcode - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window, - SDL_SysWMinfo * info); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_syswm_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_thread.h b/lib/osx/include/SDL_thread.h deleted file mode 100644 index 377e6c7..0000000 --- a/lib/osx/include/SDL_thread.h +++ /dev/null @@ -1,287 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_thread_h -#define _SDL_thread_h - -/** - * \file SDL_thread.h - * - * Header for the SDL thread management routines. - */ - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -/* Thread synchronization primitives */ -#include "SDL_atomic.h" -#include "SDL_mutex.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* The SDL thread structure, defined in SDL_thread.c */ -struct SDL_Thread; -typedef struct SDL_Thread SDL_Thread; - -/* The SDL thread ID */ -typedef unsigned long SDL_threadID; - -/* Thread local storage ID, 0 is the invalid ID */ -typedef unsigned int SDL_TLSID; - -/** - * The SDL thread priority. - * - * \note On many systems you require special privileges to set high priority. - */ -typedef enum { - SDL_THREAD_PRIORITY_LOW, - SDL_THREAD_PRIORITY_NORMAL, - SDL_THREAD_PRIORITY_HIGH -} SDL_ThreadPriority; - -/** - * The function passed to SDL_CreateThread(). - * It is passed a void* user context parameter and returns an int. - */ -typedef int (SDLCALL * SDL_ThreadFunction) (void *data); - -#if defined(__WIN32__) && !defined(HAVE_LIBC) -/** - * \file SDL_thread.h - * - * We compile SDL into a DLL. This means, that it's the DLL which - * creates a new thread for the calling process with the SDL_CreateThread() - * API. There is a problem with this, that only the RTL of the SDL.DLL will - * be initialized for those threads, and not the RTL of the calling - * application! - * - * To solve this, we make a little hack here. - * - * We'll always use the caller's _beginthread() and _endthread() APIs to - * start a new thread. This way, if it's the SDL.DLL which uses this API, - * then the RTL of SDL.DLL will be used to create the new thread, and if it's - * the application, then the RTL of the application will be used. - * - * So, in short: - * Always use the _beginthread() and _endthread() of the calling runtime - * library! - */ -#define SDL_PASSED_BEGINTHREAD_ENDTHREAD -#include <process.h> /* This has _beginthread() and _endthread() defined! */ - -typedef uintptr_t(__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned, - unsigned (__stdcall * - func) (void - *), - void *arg, unsigned, - unsigned *threadID); -typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code); - -/** - * Create a thread. - */ -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, - pfnSDL_CurrentBeginThread pfnBeginThread, - pfnSDL_CurrentEndThread pfnEndThread); - -/** - * Create a thread. - */ -#if defined(SDL_CreateThread) && SDL_DYNAMIC_API -#undef SDL_CreateThread -#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthreadex, (pfnSDL_CurrentEndThread)_endthreadex) -#else -#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthreadex, (pfnSDL_CurrentEndThread)_endthreadex) -#endif - -#else - -/** - * Create a thread. - * - * Thread naming is a little complicated: Most systems have very small - * limits for the string length (Haiku has 32 bytes, Linux currently has 16, - * Visual C++ 6.0 has nine!), and possibly other arbitrary rules. You'll - * have to see what happens with your system's debugger. The name should be - * UTF-8 (but using the naming limits of C identifiers is a better bet). - * There are no requirements for thread naming conventions, so long as the - * string is null-terminated UTF-8, but these guidelines are helpful in - * choosing a name: - * - * http://stackoverflow.com/questions/149932/naming-conventions-for-threads - * - * If a system imposes requirements, SDL will try to munge the string for - * it (truncate, etc), but the original string contents will be available - * from SDL_GetThreadName(). - */ -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data); - -#endif - -/** - * Get the thread name, as it was specified in SDL_CreateThread(). - * This function returns a pointer to a UTF-8 string that names the - * specified thread, or NULL if it doesn't have a name. This is internal - * memory, not to be free()'d by the caller, and remains valid until the - * specified thread is cleaned up by SDL_WaitThread(). - */ -extern DECLSPEC const char *SDLCALL SDL_GetThreadName(SDL_Thread *thread); - -/** - * Get the thread identifier for the current thread. - */ -extern DECLSPEC SDL_threadID SDLCALL SDL_ThreadID(void); - -/** - * Get the thread identifier for the specified thread. - * - * Equivalent to SDL_ThreadID() if the specified thread is NULL. - */ -extern DECLSPEC SDL_threadID SDLCALL SDL_GetThreadID(SDL_Thread * thread); - -/** - * Set the priority for the current thread - */ -extern DECLSPEC int SDLCALL SDL_SetThreadPriority(SDL_ThreadPriority priority); - -/** - * Wait for a thread to finish. Threads that haven't been detached will - * remain (as a "zombie") until this function cleans them up. Not doing so - * is a resource leak. - * - * Once a thread has been cleaned up through this function, the SDL_Thread - * that references it becomes invalid and should not be referenced again. - * As such, only one thread may call SDL_WaitThread() on another. - * - * The return code for the thread function is placed in the area - * pointed to by \c status, if \c status is not NULL. - * - * You may not wait on a thread that has been used in a call to - * SDL_DetachThread(). Use either that function or this one, but not - * both, or behavior is undefined. - * - * It is safe to pass NULL to this function; it is a no-op. - */ -extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread * thread, int *status); - -/** - * A thread may be "detached" to signify that it should not remain until - * another thread has called SDL_WaitThread() on it. Detaching a thread - * is useful for long-running threads that nothing needs to synchronize - * with or further manage. When a detached thread is done, it simply - * goes away. - * - * There is no way to recover the return code of a detached thread. If you - * need this, don't detach the thread and instead use SDL_WaitThread(). - * - * Once a thread is detached, you should usually assume the SDL_Thread isn't - * safe to reference again, as it will become invalid immediately upon - * the detached thread's exit, instead of remaining until someone has called - * SDL_WaitThread() to finally clean it up. As such, don't detach the same - * thread more than once. - * - * If a thread has already exited when passed to SDL_DetachThread(), it will - * stop waiting for a call to SDL_WaitThread() and clean up immediately. - * It is not safe to detach a thread that might be used with SDL_WaitThread(). - * - * You may not call SDL_WaitThread() on a thread that has been detached. - * Use either that function or this one, but not both, or behavior is - * undefined. - * - * It is safe to pass NULL to this function; it is a no-op. - */ -extern DECLSPEC void SDLCALL SDL_DetachThread(SDL_Thread * thread); - -/** - * \brief Create an identifier that is globally visible to all threads but refers to data that is thread-specific. - * - * \return The newly created thread local storage identifier, or 0 on error - * - * \code - * static SDL_SpinLock tls_lock; - * static SDL_TLSID thread_local_storage; - * - * void SetMyThreadData(void *value) - * { - * if (!thread_local_storage) { - * SDL_AtomicLock(&tls_lock); - * if (!thread_local_storage) { - * thread_local_storage = SDL_TLSCreate(); - * } - * SDL_AtomicUnlock(&tls_lock); - * } - * SDL_TLSSet(thread_local_storage, value, 0); - * } - * - * void *GetMyThreadData(void) - * { - * return SDL_TLSGet(thread_local_storage); - * } - * \endcode - * - * \sa SDL_TLSGet() - * \sa SDL_TLSSet() - */ -extern DECLSPEC SDL_TLSID SDLCALL SDL_TLSCreate(void); - -/** - * \brief Get the value associated with a thread local storage ID for the current thread. - * - * \param id The thread local storage ID - * - * \return The value associated with the ID for the current thread, or NULL if no value has been set. - * - * \sa SDL_TLSCreate() - * \sa SDL_TLSSet() - */ -extern DECLSPEC void * SDLCALL SDL_TLSGet(SDL_TLSID id); - -/** - * \brief Set the value associated with a thread local storage ID for the current thread. - * - * \param id The thread local storage ID - * \param value The value to associate with the ID for the current thread - * \param destructor A function called when the thread exits, to free the value. - * - * \return 0 on success, -1 on error - * - * \sa SDL_TLSCreate() - * \sa SDL_TLSGet() - */ -extern DECLSPEC int SDLCALL SDL_TLSSet(SDL_TLSID id, const void *value, void (*destructor)(void*)); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_thread_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_timer.h b/lib/osx/include/SDL_timer.h deleted file mode 100644 index e0d3785..0000000 --- a/lib/osx/include/SDL_timer.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef _SDL_timer_h -#define _SDL_timer_h - -/** - * \file SDL_timer.h - * - * Header for the SDL time management routines. - */ - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief Get the number of milliseconds since the SDL library initialization. - * - * \note This value wraps if the program runs for more than ~49 days. - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void); - -/** - * \brief Compare SDL ticks values, and return true if A has passed B - * - * e.g. if you want to wait 100 ms, you could do this: - * Uint32 timeout = SDL_GetTicks() + 100; - * while (!SDL_TICKS_PASSED(SDL_GetTicks(), timeout)) { - * ... do work until timeout has elapsed - * } - */ -#define SDL_TICKS_PASSED(A, B) ((Sint32)((B) - (A)) <= 0) - -/** - * \brief Get the current value of the high resolution counter - */ -extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceCounter(void); - -/** - * \brief Get the count per second of the high resolution counter - */ -extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceFrequency(void); - -/** - * \brief Wait a specified number of milliseconds before returning. - */ -extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms); - -/** - * Function prototype for the timer callback function. - * - * The callback function is passed the current timer interval and returns - * the next timer interval. If the returned value is the same as the one - * passed in, the periodic alarm continues, otherwise a new alarm is - * scheduled. If the callback returns 0, the periodic alarm is cancelled. - */ -typedef Uint32 (SDLCALL * SDL_TimerCallback) (Uint32 interval, void *param); - -/** - * Definition of the timer ID type. - */ -typedef int SDL_TimerID; - -/** - * \brief Add a new timer to the pool of timers already running. - * - * \return A timer ID, or 0 when an error occurs. - */ -extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval, - SDL_TimerCallback callback, - void *param); - -/** - * \brief Remove a timer knowing its ID. - * - * \return A boolean value indicating success or failure. - * - * \warning It is not safe to remove a timer multiple times. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID id); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_timer_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_touch.h b/lib/osx/include/SDL_touch.h deleted file mode 100644 index 2643e36..0000000 --- a/lib/osx/include/SDL_touch.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_touch.h - * - * Include file for SDL touch event handling. - */ - -#ifndef _SDL_touch_h -#define _SDL_touch_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -typedef Sint64 SDL_TouchID; -typedef Sint64 SDL_FingerID; - -typedef struct SDL_Finger -{ - SDL_FingerID id; - float x; - float y; - float pressure; -} SDL_Finger; - -/* Used as the device ID for mouse events simulated with touch input */ -#define SDL_TOUCH_MOUSEID ((Uint32)-1) - - -/* Function prototypes */ - -/** - * \brief Get the number of registered touch devices. - */ -extern DECLSPEC int SDLCALL SDL_GetNumTouchDevices(void); - -/** - * \brief Get the touch ID with the given index, or 0 if the index is invalid. - */ -extern DECLSPEC SDL_TouchID SDLCALL SDL_GetTouchDevice(int index); - -/** - * \brief Get the number of active fingers for a given touch device. - */ -extern DECLSPEC int SDLCALL SDL_GetNumTouchFingers(SDL_TouchID touchID); - -/** - * \brief Get the finger object of the given touch, with the given index. - */ -extern DECLSPEC SDL_Finger * SDLCALL SDL_GetTouchFinger(SDL_TouchID touchID, int index); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_touch_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_types.h b/lib/osx/include/SDL_types.h deleted file mode 100644 index 5118af2..0000000 --- a/lib/osx/include/SDL_types.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_types.h - * - * \deprecated - */ - -/* DEPRECATED */ -#include "SDL_stdinc.h" diff --git a/lib/osx/include/SDL_version.h b/lib/osx/include/SDL_version.h deleted file mode 100644 index 1700efd..0000000 --- a/lib/osx/include/SDL_version.h +++ /dev/null @@ -1,162 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_version.h - * - * This header defines the current SDL version. - */ - -#ifndef _SDL_version_h -#define _SDL_version_h - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief Information the version of SDL in use. - * - * Represents the library's version as three levels: major revision - * (increments with massive changes, additions, and enhancements), - * minor revision (increments with backwards-compatible changes to the - * major revision), and patchlevel (increments with fixes to the minor - * revision). - * - * \sa SDL_VERSION - * \sa SDL_GetVersion - */ -typedef struct SDL_version -{ - Uint8 major; /**< major version */ - Uint8 minor; /**< minor version */ - Uint8 patch; /**< update version */ -} SDL_version; - -/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL -*/ -#define SDL_MAJOR_VERSION 2 -#define SDL_MINOR_VERSION 0 -#define SDL_PATCHLEVEL 5 - -/** - * \brief Macro to determine SDL version program was compiled against. - * - * This macro fills in a SDL_version structure with the version of the - * library you compiled against. This is determined by what header the - * compiler uses. Note that if you dynamically linked the library, you might - * have a slightly newer or older version at runtime. That version can be - * determined with SDL_GetVersion(), which, unlike SDL_VERSION(), - * is not a macro. - * - * \param x A pointer to a SDL_version struct to initialize. - * - * \sa SDL_version - * \sa SDL_GetVersion - */ -#define SDL_VERSION(x) \ -{ \ - (x)->major = SDL_MAJOR_VERSION; \ - (x)->minor = SDL_MINOR_VERSION; \ - (x)->patch = SDL_PATCHLEVEL; \ -} - -/** - * This macro turns the version numbers into a numeric value: - * \verbatim - (1,2,3) -> (1203) - \endverbatim - * - * This assumes that there will never be more than 100 patchlevels. - */ -#define SDL_VERSIONNUM(X, Y, Z) \ - ((X)*1000 + (Y)*100 + (Z)) - -/** - * This is the version number macro for the current SDL version. - */ -#define SDL_COMPILEDVERSION \ - SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL) - -/** - * This macro will evaluate to true if compiled with SDL at least X.Y.Z. - */ -#define SDL_VERSION_ATLEAST(X, Y, Z) \ - (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z)) - -/** - * \brief Get the version of SDL that is linked against your program. - * - * If you are linking to SDL dynamically, then it is possible that the - * current version will be different than the version you compiled against. - * This function returns the current version, while SDL_VERSION() is a - * macro that tells you what version you compiled with. - * - * \code - * SDL_version compiled; - * SDL_version linked; - * - * SDL_VERSION(&compiled); - * SDL_GetVersion(&linked); - * printf("We compiled against SDL version %d.%d.%d ...\n", - * compiled.major, compiled.minor, compiled.patch); - * printf("But we linked against SDL version %d.%d.%d.\n", - * linked.major, linked.minor, linked.patch); - * \endcode - * - * This function may be called safely at any time, even before SDL_Init(). - * - * \sa SDL_VERSION - */ -extern DECLSPEC void SDLCALL SDL_GetVersion(SDL_version * ver); - -/** - * \brief Get the code revision of SDL that is linked against your program. - * - * Returns an arbitrary string (a hash value) uniquely identifying the - * exact revision of the SDL library in use, and is only useful in comparing - * against other revisions. It is NOT an incrementing number. - */ -extern DECLSPEC const char *SDLCALL SDL_GetRevision(void); - -/** - * \brief Get the revision number of SDL that is linked against your program. - * - * Returns a number uniquely identifying the exact revision of the SDL - * library in use. It is an incrementing number based on commits to - * hg.libsdl.org. - */ -extern DECLSPEC int SDLCALL SDL_GetRevisionNumber(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_version_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/SDL_video.h b/lib/osx/include/SDL_video.h deleted file mode 100644 index 73c33eb..0000000 --- a/lib/osx/include/SDL_video.h +++ /dev/null @@ -1,1218 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_video.h - * - * Header file for SDL video functions. - */ - -#ifndef _SDL_video_h -#define _SDL_video_h - -#include "SDL_stdinc.h" -#include "SDL_pixels.h" -#include "SDL_rect.h" -#include "SDL_surface.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief The structure that defines a display mode - * - * \sa SDL_GetNumDisplayModes() - * \sa SDL_GetDisplayMode() - * \sa SDL_GetDesktopDisplayMode() - * \sa SDL_GetCurrentDisplayMode() - * \sa SDL_GetClosestDisplayMode() - * \sa SDL_SetWindowDisplayMode() - * \sa SDL_GetWindowDisplayMode() - */ -typedef struct -{ - Uint32 format; /**< pixel format */ - int w; /**< width, in screen coordinates */ - int h; /**< height, in screen coordinates */ - int refresh_rate; /**< refresh rate (or zero for unspecified) */ - void *driverdata; /**< driver-specific data, initialize to 0 */ -} SDL_DisplayMode; - -/** - * \brief The type used to identify a window - * - * \sa SDL_CreateWindow() - * \sa SDL_CreateWindowFrom() - * \sa SDL_DestroyWindow() - * \sa SDL_GetWindowData() - * \sa SDL_GetWindowFlags() - * \sa SDL_GetWindowGrab() - * \sa SDL_GetWindowPosition() - * \sa SDL_GetWindowSize() - * \sa SDL_GetWindowTitle() - * \sa SDL_HideWindow() - * \sa SDL_MaximizeWindow() - * \sa SDL_MinimizeWindow() - * \sa SDL_RaiseWindow() - * \sa SDL_RestoreWindow() - * \sa SDL_SetWindowData() - * \sa SDL_SetWindowFullscreen() - * \sa SDL_SetWindowGrab() - * \sa SDL_SetWindowIcon() - * \sa SDL_SetWindowPosition() - * \sa SDL_SetWindowSize() - * \sa SDL_SetWindowBordered() - * \sa SDL_SetWindowResizable() - * \sa SDL_SetWindowTitle() - * \sa SDL_ShowWindow() - */ -typedef struct SDL_Window SDL_Window; - -/** - * \brief The flags on a window - * - * \sa SDL_GetWindowFlags() - */ -typedef enum -{ - /* !!! FIXME: change this to name = (1<<x). */ - SDL_WINDOW_FULLSCREEN = 0x00000001, /**< fullscreen window */ - SDL_WINDOW_OPENGL = 0x00000002, /**< window usable with OpenGL context */ - SDL_WINDOW_SHOWN = 0x00000004, /**< window is visible */ - SDL_WINDOW_HIDDEN = 0x00000008, /**< window is not visible */ - SDL_WINDOW_BORDERLESS = 0x00000010, /**< no window decoration */ - SDL_WINDOW_RESIZABLE = 0x00000020, /**< window can be resized */ - SDL_WINDOW_MINIMIZED = 0x00000040, /**< window is minimized */ - SDL_WINDOW_MAXIMIZED = 0x00000080, /**< window is maximized */ - SDL_WINDOW_INPUT_GRABBED = 0x00000100, /**< window has grabbed input focus */ - SDL_WINDOW_INPUT_FOCUS = 0x00000200, /**< window has input focus */ - SDL_WINDOW_MOUSE_FOCUS = 0x00000400, /**< window has mouse focus */ - SDL_WINDOW_FULLSCREEN_DESKTOP = ( SDL_WINDOW_FULLSCREEN | 0x00001000 ), - SDL_WINDOW_FOREIGN = 0x00000800, /**< window not created by SDL */ - SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /**< window should be created in high-DPI mode if supported */ - SDL_WINDOW_MOUSE_CAPTURE = 0x00004000, /**< window has mouse captured (unrelated to INPUT_GRABBED) */ - SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000, /**< window should always be above others */ - SDL_WINDOW_SKIP_TASKBAR = 0x00010000, /**< window should not be added to the taskbar */ - SDL_WINDOW_UTILITY = 0x00020000, /**< window should be treated as a utility window */ - SDL_WINDOW_TOOLTIP = 0x00040000, /**< window should be treated as a tooltip */ - SDL_WINDOW_POPUP_MENU = 0x00080000 /**< window should be treated as a popup menu */ -} SDL_WindowFlags; - -/** - * \brief Used to indicate that you don't care what the window position is. - */ -#define SDL_WINDOWPOS_UNDEFINED_MASK 0x1FFF0000u -#define SDL_WINDOWPOS_UNDEFINED_DISPLAY(X) (SDL_WINDOWPOS_UNDEFINED_MASK|(X)) -#define SDL_WINDOWPOS_UNDEFINED SDL_WINDOWPOS_UNDEFINED_DISPLAY(0) -#define SDL_WINDOWPOS_ISUNDEFINED(X) \ - (((X)&0xFFFF0000) == SDL_WINDOWPOS_UNDEFINED_MASK) - -/** - * \brief Used to indicate that the window position should be centered. - */ -#define SDL_WINDOWPOS_CENTERED_MASK 0x2FFF0000u -#define SDL_WINDOWPOS_CENTERED_DISPLAY(X) (SDL_WINDOWPOS_CENTERED_MASK|(X)) -#define SDL_WINDOWPOS_CENTERED SDL_WINDOWPOS_CENTERED_DISPLAY(0) -#define SDL_WINDOWPOS_ISCENTERED(X) \ - (((X)&0xFFFF0000) == SDL_WINDOWPOS_CENTERED_MASK) - -/** - * \brief Event subtype for window events - */ -typedef enum -{ - SDL_WINDOWEVENT_NONE, /**< Never used */ - SDL_WINDOWEVENT_SHOWN, /**< Window has been shown */ - SDL_WINDOWEVENT_HIDDEN, /**< Window has been hidden */ - SDL_WINDOWEVENT_EXPOSED, /**< Window has been exposed and should be - redrawn */ - SDL_WINDOWEVENT_MOVED, /**< Window has been moved to data1, data2 - */ - SDL_WINDOWEVENT_RESIZED, /**< Window has been resized to data1xdata2 */ - SDL_WINDOWEVENT_SIZE_CHANGED, /**< The window size has changed, either as - a result of an API call or through the - system or user changing the window size. */ - SDL_WINDOWEVENT_MINIMIZED, /**< Window has been minimized */ - SDL_WINDOWEVENT_MAXIMIZED, /**< Window has been maximized */ - SDL_WINDOWEVENT_RESTORED, /**< Window has been restored to normal size - and position */ - SDL_WINDOWEVENT_ENTER, /**< Window has gained mouse focus */ - SDL_WINDOWEVENT_LEAVE, /**< Window has lost mouse focus */ - SDL_WINDOWEVENT_FOCUS_GAINED, /**< Window has gained keyboard focus */ - SDL_WINDOWEVENT_FOCUS_LOST, /**< Window has lost keyboard focus */ - SDL_WINDOWEVENT_CLOSE, /**< The window manager requests that the window be closed */ - SDL_WINDOWEVENT_TAKE_FOCUS, /**< Window is being offered a focus (should SetWindowInputFocus() on itself or a subwindow, or ignore) */ - SDL_WINDOWEVENT_HIT_TEST /**< Window had a hit test that wasn't SDL_HITTEST_NORMAL. */ -} SDL_WindowEventID; - -/** - * \brief An opaque handle to an OpenGL context. - */ -typedef void *SDL_GLContext; - -/** - * \brief OpenGL configuration attributes - */ -typedef enum -{ - SDL_GL_RED_SIZE, - SDL_GL_GREEN_SIZE, - SDL_GL_BLUE_SIZE, - SDL_GL_ALPHA_SIZE, - SDL_GL_BUFFER_SIZE, - SDL_GL_DOUBLEBUFFER, - SDL_GL_DEPTH_SIZE, - SDL_GL_STENCIL_SIZE, - SDL_GL_ACCUM_RED_SIZE, - SDL_GL_ACCUM_GREEN_SIZE, - SDL_GL_ACCUM_BLUE_SIZE, - SDL_GL_ACCUM_ALPHA_SIZE, - SDL_GL_STEREO, - SDL_GL_MULTISAMPLEBUFFERS, - SDL_GL_MULTISAMPLESAMPLES, - SDL_GL_ACCELERATED_VISUAL, - SDL_GL_RETAINED_BACKING, - SDL_GL_CONTEXT_MAJOR_VERSION, - SDL_GL_CONTEXT_MINOR_VERSION, - SDL_GL_CONTEXT_EGL, - SDL_GL_CONTEXT_FLAGS, - SDL_GL_CONTEXT_PROFILE_MASK, - SDL_GL_SHARE_WITH_CURRENT_CONTEXT, - SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, - SDL_GL_CONTEXT_RELEASE_BEHAVIOR -} SDL_GLattr; - -typedef enum -{ - SDL_GL_CONTEXT_PROFILE_CORE = 0x0001, - SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002, - SDL_GL_CONTEXT_PROFILE_ES = 0x0004 /* GLX_CONTEXT_ES2_PROFILE_BIT_EXT */ -} SDL_GLprofile; - -typedef enum -{ - SDL_GL_CONTEXT_DEBUG_FLAG = 0x0001, - SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002, - SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004, - SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008 -} SDL_GLcontextFlag; - -typedef enum -{ - SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0x0000, - SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x0001 -} SDL_GLcontextReleaseFlag; - - -/* Function prototypes */ - -/** - * \brief Get the number of video drivers compiled into SDL - * - * \sa SDL_GetVideoDriver() - */ -extern DECLSPEC int SDLCALL SDL_GetNumVideoDrivers(void); - -/** - * \brief Get the name of a built in video driver. - * - * \note The video drivers are presented in the order in which they are - * normally checked during initialization. - * - * \sa SDL_GetNumVideoDrivers() - */ -extern DECLSPEC const char *SDLCALL SDL_GetVideoDriver(int index); - -/** - * \brief Initialize the video subsystem, optionally specifying a video driver. - * - * \param driver_name Initialize a specific driver by name, or NULL for the - * default video driver. - * - * \return 0 on success, -1 on error - * - * This function initializes the video subsystem; setting up a connection - * to the window manager, etc, and determines the available display modes - * and pixel formats, but does not initialize a window or graphics mode. - * - * \sa SDL_VideoQuit() - */ -extern DECLSPEC int SDLCALL SDL_VideoInit(const char *driver_name); - -/** - * \brief Shuts down the video subsystem. - * - * This function closes all windows, and restores the original video mode. - * - * \sa SDL_VideoInit() - */ -extern DECLSPEC void SDLCALL SDL_VideoQuit(void); - -/** - * \brief Returns the name of the currently initialized video driver. - * - * \return The name of the current video driver or NULL if no driver - * has been initialized - * - * \sa SDL_GetNumVideoDrivers() - * \sa SDL_GetVideoDriver() - */ -extern DECLSPEC const char *SDLCALL SDL_GetCurrentVideoDriver(void); - -/** - * \brief Returns the number of available video displays. - * - * \sa SDL_GetDisplayBounds() - */ -extern DECLSPEC int SDLCALL SDL_GetNumVideoDisplays(void); - -/** - * \brief Get the name of a display in UTF-8 encoding - * - * \return The name of a display, or NULL for an invalid display index. - * - * \sa SDL_GetNumVideoDisplays() - */ -extern DECLSPEC const char * SDLCALL SDL_GetDisplayName(int displayIndex); - -/** - * \brief Get the desktop area represented by a display, with the primary - * display located at 0,0 - * - * \return 0 on success, or -1 if the index is out of range. - * - * \sa SDL_GetNumVideoDisplays() - */ -extern DECLSPEC int SDLCALL SDL_GetDisplayBounds(int displayIndex, SDL_Rect * rect); - -/** - * \brief Get the dots/pixels-per-inch for a display - * - * \note Diagonal, horizontal and vertical DPI can all be optionally - * returned if the parameter is non-NULL. - * - * \return 0 on success, or -1 if no DPI information is available or the index is out of range. - * - * \sa SDL_GetNumVideoDisplays() - */ -extern DECLSPEC int SDLCALL SDL_GetDisplayDPI(int displayIndex, float * ddpi, float * hdpi, float * vdpi); - -/** - * \brief Get the usable desktop area represented by a display, with the - * primary display located at 0,0 - * - * This is the same area as SDL_GetDisplayBounds() reports, but with portions - * reserved by the system removed. For example, on Mac OS X, this subtracts - * the area occupied by the menu bar and dock. - * - * Setting a window to be fullscreen generally bypasses these unusable areas, - * so these are good guidelines for the maximum space available to a - * non-fullscreen window. - * - * \return 0 on success, or -1 if the index is out of range. - * - * \sa SDL_GetDisplayBounds() - * \sa SDL_GetNumVideoDisplays() - */ -extern DECLSPEC int SDLCALL SDL_GetDisplayUsableBounds(int displayIndex, SDL_Rect * rect); - -/** - * \brief Returns the number of available display modes. - * - * \sa SDL_GetDisplayMode() - */ -extern DECLSPEC int SDLCALL SDL_GetNumDisplayModes(int displayIndex); - -/** - * \brief Fill in information about a specific display mode. - * - * \note The display modes are sorted in this priority: - * \li bits per pixel -> more colors to fewer colors - * \li width -> largest to smallest - * \li height -> largest to smallest - * \li refresh rate -> highest to lowest - * - * \sa SDL_GetNumDisplayModes() - */ -extern DECLSPEC int SDLCALL SDL_GetDisplayMode(int displayIndex, int modeIndex, - SDL_DisplayMode * mode); - -/** - * \brief Fill in information about the desktop display mode. - */ -extern DECLSPEC int SDLCALL SDL_GetDesktopDisplayMode(int displayIndex, SDL_DisplayMode * mode); - -/** - * \brief Fill in information about the current display mode. - */ -extern DECLSPEC int SDLCALL SDL_GetCurrentDisplayMode(int displayIndex, SDL_DisplayMode * mode); - - -/** - * \brief Get the closest match to the requested display mode. - * - * \param displayIndex The index of display from which mode should be queried. - * \param mode The desired display mode - * \param closest A pointer to a display mode to be filled in with the closest - * match of the available display modes. - * - * \return The passed in value \c closest, or NULL if no matching video mode - * was available. - * - * The available display modes are scanned, and \c closest is filled in with the - * closest mode matching the requested mode and returned. The mode format and - * refresh_rate default to the desktop mode if they are 0. The modes are - * scanned with size being first priority, format being second priority, and - * finally checking the refresh_rate. If all the available modes are too - * small, then NULL is returned. - * - * \sa SDL_GetNumDisplayModes() - * \sa SDL_GetDisplayMode() - */ -extern DECLSPEC SDL_DisplayMode * SDLCALL SDL_GetClosestDisplayMode(int displayIndex, const SDL_DisplayMode * mode, SDL_DisplayMode * closest); - -/** - * \brief Get the display index associated with a window. - * - * \return the display index of the display containing the center of the - * window, or -1 on error. - */ -extern DECLSPEC int SDLCALL SDL_GetWindowDisplayIndex(SDL_Window * window); - -/** - * \brief Set the display mode used when a fullscreen window is visible. - * - * By default the window's dimensions and the desktop format and refresh rate - * are used. - * - * \param window The window for which the display mode should be set. - * \param mode The mode to use, or NULL for the default mode. - * - * \return 0 on success, or -1 if setting the display mode failed. - * - * \sa SDL_GetWindowDisplayMode() - * \sa SDL_SetWindowFullscreen() - */ -extern DECLSPEC int SDLCALL SDL_SetWindowDisplayMode(SDL_Window * window, - const SDL_DisplayMode - * mode); - -/** - * \brief Fill in information about the display mode used when a fullscreen - * window is visible. - * - * \sa SDL_SetWindowDisplayMode() - * \sa SDL_SetWindowFullscreen() - */ -extern DECLSPEC int SDLCALL SDL_GetWindowDisplayMode(SDL_Window * window, - SDL_DisplayMode * mode); - -/** - * \brief Get the pixel format associated with the window. - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetWindowPixelFormat(SDL_Window * window); - -/** - * \brief Create a window with the specified position, dimensions, and flags. - * - * \param title The title of the window, in UTF-8 encoding. - * \param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or - * ::SDL_WINDOWPOS_UNDEFINED. - * \param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or - * ::SDL_WINDOWPOS_UNDEFINED. - * \param w The width of the window, in screen coordinates. - * \param h The height of the window, in screen coordinates. - * \param flags The flags for the window, a mask of any of the following: - * ::SDL_WINDOW_FULLSCREEN, ::SDL_WINDOW_OPENGL, - * ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_BORDERLESS, - * ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED, - * ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED, - * ::SDL_WINDOW_ALLOW_HIGHDPI. - * - * \return The created window, or NULL if window creation failed. - * - * If the window is created with the SDL_WINDOW_ALLOW_HIGHDPI flag, its size - * in pixels may differ from its size in screen coordinates on platforms with - * high-DPI support (e.g. iOS and Mac OS X). Use SDL_GetWindowSize() to query - * the client area's size in screen coordinates, and SDL_GL_GetDrawableSize() - * or SDL_GetRendererOutputSize() to query the drawable size in pixels. - * - * \sa SDL_DestroyWindow() - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindow(const char *title, - int x, int y, int w, - int h, Uint32 flags); - -/** - * \brief Create an SDL window from an existing native window. - * - * \param data A pointer to driver-dependent window creation data - * - * \return The created window, or NULL if window creation failed. - * - * \sa SDL_DestroyWindow() - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindowFrom(const void *data); - -/** - * \brief Get the numeric ID of a window, for logging purposes. - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetWindowID(SDL_Window * window); - -/** - * \brief Get a window from a stored ID, or NULL if it doesn't exist. - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_GetWindowFromID(Uint32 id); - -/** - * \brief Get the window flags. - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetWindowFlags(SDL_Window * window); - -/** - * \brief Set the title of a window, in UTF-8 format. - * - * \sa SDL_GetWindowTitle() - */ -extern DECLSPEC void SDLCALL SDL_SetWindowTitle(SDL_Window * window, - const char *title); - -/** - * \brief Get the title of a window, in UTF-8 format. - * - * \sa SDL_SetWindowTitle() - */ -extern DECLSPEC const char *SDLCALL SDL_GetWindowTitle(SDL_Window * window); - -/** - * \brief Set the icon for a window. - * - * \param window The window for which the icon should be set. - * \param icon The icon for the window. - */ -extern DECLSPEC void SDLCALL SDL_SetWindowIcon(SDL_Window * window, - SDL_Surface * icon); - -/** - * \brief Associate an arbitrary named pointer with a window. - * - * \param window The window to associate with the pointer. - * \param name The name of the pointer. - * \param userdata The associated pointer. - * - * \return The previous value associated with 'name' - * - * \note The name is case-sensitive. - * - * \sa SDL_GetWindowData() - */ -extern DECLSPEC void* SDLCALL SDL_SetWindowData(SDL_Window * window, - const char *name, - void *userdata); - -/** - * \brief Retrieve the data pointer associated with a window. - * - * \param window The window to query. - * \param name The name of the pointer. - * - * \return The value associated with 'name' - * - * \sa SDL_SetWindowData() - */ -extern DECLSPEC void *SDLCALL SDL_GetWindowData(SDL_Window * window, - const char *name); - -/** - * \brief Set the position of a window. - * - * \param window The window to reposition. - * \param x The x coordinate of the window in screen coordinates, or - * ::SDL_WINDOWPOS_CENTERED or ::SDL_WINDOWPOS_UNDEFINED. - * \param y The y coordinate of the window in screen coordinates, or - * ::SDL_WINDOWPOS_CENTERED or ::SDL_WINDOWPOS_UNDEFINED. - * - * \note The window coordinate origin is the upper left of the display. - * - * \sa SDL_GetWindowPosition() - */ -extern DECLSPEC void SDLCALL SDL_SetWindowPosition(SDL_Window * window, - int x, int y); - -/** - * \brief Get the position of a window. - * - * \param window The window to query. - * \param x Pointer to variable for storing the x position, in screen - * coordinates. May be NULL. - * \param y Pointer to variable for storing the y position, in screen - * coordinates. May be NULL. - * - * \sa SDL_SetWindowPosition() - */ -extern DECLSPEC void SDLCALL SDL_GetWindowPosition(SDL_Window * window, - int *x, int *y); - -/** - * \brief Set the size of a window's client area. - * - * \param window The window to resize. - * \param w The width of the window, in screen coordinates. Must be >0. - * \param h The height of the window, in screen coordinates. Must be >0. - * - * \note You can't change the size of a fullscreen window, it automatically - * matches the size of the display mode. - * - * The window size in screen coordinates may differ from the size in pixels, if - * the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with - * high-dpi support (e.g. iOS or OS X). Use SDL_GL_GetDrawableSize() or - * SDL_GetRendererOutputSize() to get the real client area size in pixels. - * - * \sa SDL_GetWindowSize() - */ -extern DECLSPEC void SDLCALL SDL_SetWindowSize(SDL_Window * window, int w, - int h); - -/** - * \brief Get the size of a window's client area. - * - * \param window The window to query. - * \param w Pointer to variable for storing the width, in screen - * coordinates. May be NULL. - * \param h Pointer to variable for storing the height, in screen - * coordinates. May be NULL. - * - * The window size in screen coordinates may differ from the size in pixels, if - * the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with - * high-dpi support (e.g. iOS or OS X). Use SDL_GL_GetDrawableSize() or - * SDL_GetRendererOutputSize() to get the real client area size in pixels. - * - * \sa SDL_SetWindowSize() - */ -extern DECLSPEC void SDLCALL SDL_GetWindowSize(SDL_Window * window, int *w, - int *h); - -/** - * \brief Get the size of a window's borders (decorations) around the client area. - * - * \param window The window to query. - * \param top Pointer to variable for storing the size of the top border. NULL is permitted. - * \param left Pointer to variable for storing the size of the left border. NULL is permitted. - * \param bottom Pointer to variable for storing the size of the bottom border. NULL is permitted. - * \param right Pointer to variable for storing the size of the right border. NULL is permitted. - * - * \return 0 on success, or -1 if getting this information is not supported. - * - * \note if this function fails (returns -1), the size values will be - * initialized to 0, 0, 0, 0 (if a non-NULL pointer is provided), as - * if the window in question was borderless. - */ -extern DECLSPEC int SDLCALL SDL_GetWindowBordersSize(SDL_Window * window, - int *top, int *left, - int *bottom, int *right); - -/** - * \brief Set the minimum size of a window's client area. - * - * \param window The window to set a new minimum size. - * \param min_w The minimum width of the window, must be >0 - * \param min_h The minimum height of the window, must be >0 - * - * \note You can't change the minimum size of a fullscreen window, it - * automatically matches the size of the display mode. - * - * \sa SDL_GetWindowMinimumSize() - * \sa SDL_SetWindowMaximumSize() - */ -extern DECLSPEC void SDLCALL SDL_SetWindowMinimumSize(SDL_Window * window, - int min_w, int min_h); - -/** - * \brief Get the minimum size of a window's client area. - * - * \param window The window to query. - * \param w Pointer to variable for storing the minimum width, may be NULL - * \param h Pointer to variable for storing the minimum height, may be NULL - * - * \sa SDL_GetWindowMaximumSize() - * \sa SDL_SetWindowMinimumSize() - */ -extern DECLSPEC void SDLCALL SDL_GetWindowMinimumSize(SDL_Window * window, - int *w, int *h); - -/** - * \brief Set the maximum size of a window's client area. - * - * \param window The window to set a new maximum size. - * \param max_w The maximum width of the window, must be >0 - * \param max_h The maximum height of the window, must be >0 - * - * \note You can't change the maximum size of a fullscreen window, it - * automatically matches the size of the display mode. - * - * \sa SDL_GetWindowMaximumSize() - * \sa SDL_SetWindowMinimumSize() - */ -extern DECLSPEC void SDLCALL SDL_SetWindowMaximumSize(SDL_Window * window, - int max_w, int max_h); - -/** - * \brief Get the maximum size of a window's client area. - * - * \param window The window to query. - * \param w Pointer to variable for storing the maximum width, may be NULL - * \param h Pointer to variable for storing the maximum height, may be NULL - * - * \sa SDL_GetWindowMinimumSize() - * \sa SDL_SetWindowMaximumSize() - */ -extern DECLSPEC void SDLCALL SDL_GetWindowMaximumSize(SDL_Window * window, - int *w, int *h); - -/** - * \brief Set the border state of a window. - * - * This will add or remove the window's SDL_WINDOW_BORDERLESS flag and - * add or remove the border from the actual window. This is a no-op if the - * window's border already matches the requested state. - * - * \param window The window of which to change the border state. - * \param bordered SDL_FALSE to remove border, SDL_TRUE to add border. - * - * \note You can't change the border state of a fullscreen window. - * - * \sa SDL_GetWindowFlags() - */ -extern DECLSPEC void SDLCALL SDL_SetWindowBordered(SDL_Window * window, - SDL_bool bordered); - -/** - * \brief Set the user-resizable state of a window. - * - * This will add or remove the window's SDL_WINDOW_RESIZABLE flag and - * allow/disallow user resizing of the window. This is a no-op if the - * window's resizable state already matches the requested state. - * - * \param window The window of which to change the resizable state. - * \param resizable SDL_TRUE to allow resizing, SDL_FALSE to disallow. - * - * \note You can't change the resizable state of a fullscreen window. - * - * \sa SDL_GetWindowFlags() - */ -extern DECLSPEC void SDLCALL SDL_SetWindowResizable(SDL_Window * window, - SDL_bool resizable); - -/** - * \brief Show a window. - * - * \sa SDL_HideWindow() - */ -extern DECLSPEC void SDLCALL SDL_ShowWindow(SDL_Window * window); - -/** - * \brief Hide a window. - * - * \sa SDL_ShowWindow() - */ -extern DECLSPEC void SDLCALL SDL_HideWindow(SDL_Window * window); - -/** - * \brief Raise a window above other windows and set the input focus. - */ -extern DECLSPEC void SDLCALL SDL_RaiseWindow(SDL_Window * window); - -/** - * \brief Make a window as large as possible. - * - * \sa SDL_RestoreWindow() - */ -extern DECLSPEC void SDLCALL SDL_MaximizeWindow(SDL_Window * window); - -/** - * \brief Minimize a window to an iconic representation. - * - * \sa SDL_RestoreWindow() - */ -extern DECLSPEC void SDLCALL SDL_MinimizeWindow(SDL_Window * window); - -/** - * \brief Restore the size and position of a minimized or maximized window. - * - * \sa SDL_MaximizeWindow() - * \sa SDL_MinimizeWindow() - */ -extern DECLSPEC void SDLCALL SDL_RestoreWindow(SDL_Window * window); - -/** - * \brief Set a window's fullscreen state. - * - * \return 0 on success, or -1 if setting the display mode failed. - * - * \sa SDL_SetWindowDisplayMode() - * \sa SDL_GetWindowDisplayMode() - */ -extern DECLSPEC int SDLCALL SDL_SetWindowFullscreen(SDL_Window * window, - Uint32 flags); - -/** - * \brief Get the SDL surface associated with the window. - * - * \return The window's framebuffer surface, or NULL on error. - * - * A new surface will be created with the optimal format for the window, - * if necessary. This surface will be freed when the window is destroyed. - * - * \note You may not combine this with 3D or the rendering API on this window. - * - * \sa SDL_UpdateWindowSurface() - * \sa SDL_UpdateWindowSurfaceRects() - */ -extern DECLSPEC SDL_Surface * SDLCALL SDL_GetWindowSurface(SDL_Window * window); - -/** - * \brief Copy the window surface to the screen. - * - * \return 0 on success, or -1 on error. - * - * \sa SDL_GetWindowSurface() - * \sa SDL_UpdateWindowSurfaceRects() - */ -extern DECLSPEC int SDLCALL SDL_UpdateWindowSurface(SDL_Window * window); - -/** - * \brief Copy a number of rectangles on the window surface to the screen. - * - * \return 0 on success, or -1 on error. - * - * \sa SDL_GetWindowSurface() - * \sa SDL_UpdateWindowSurface() - */ -extern DECLSPEC int SDLCALL SDL_UpdateWindowSurfaceRects(SDL_Window * window, - const SDL_Rect * rects, - int numrects); - -/** - * \brief Set a window's input grab mode. - * - * \param window The window for which the input grab mode should be set. - * \param grabbed This is SDL_TRUE to grab input, and SDL_FALSE to release input. - * - * If the caller enables a grab while another window is currently grabbed, - * the other window loses its grab in favor of the caller's window. - * - * \sa SDL_GetWindowGrab() - */ -extern DECLSPEC void SDLCALL SDL_SetWindowGrab(SDL_Window * window, - SDL_bool grabbed); - -/** - * \brief Get a window's input grab mode. - * - * \return This returns SDL_TRUE if input is grabbed, and SDL_FALSE otherwise. - * - * \sa SDL_SetWindowGrab() - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowGrab(SDL_Window * window); - -/** - * \brief Get the window that currently has an input grab enabled. - * - * \return This returns the window if input is grabbed, and NULL otherwise. - * - * \sa SDL_SetWindowGrab() - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_GetGrabbedWindow(void); - -/** - * \brief Set the brightness (gamma correction) for a window. - * - * \return 0 on success, or -1 if setting the brightness isn't supported. - * - * \sa SDL_GetWindowBrightness() - * \sa SDL_SetWindowGammaRamp() - */ -extern DECLSPEC int SDLCALL SDL_SetWindowBrightness(SDL_Window * window, float brightness); - -/** - * \brief Get the brightness (gamma correction) for a window. - * - * \return The last brightness value passed to SDL_SetWindowBrightness() - * - * \sa SDL_SetWindowBrightness() - */ -extern DECLSPEC float SDLCALL SDL_GetWindowBrightness(SDL_Window * window); - -/** - * \brief Set the opacity for a window - * - * \param window The window which will be made transparent or opaque - * \param opacity Opacity (0.0f - transparent, 1.0f - opaque) This will be - * clamped internally between 0.0f and 1.0f. - * - * \return 0 on success, or -1 if setting the opacity isn't supported. - * - * \sa SDL_GetWindowOpacity() - */ -extern DECLSPEC int SDLCALL SDL_SetWindowOpacity(SDL_Window * window, float opacity); - -/** - * \brief Get the opacity of a window. - * - * If transparency isn't supported on this platform, opacity will be reported - * as 1.0f without error. - * - * \param window The window in question. - * \param out_opacity Opacity (0.0f - transparent, 1.0f - opaque) - * - * \return 0 on success, or -1 on error (invalid window, etc). - * - * \sa SDL_SetWindowOpacity() - */ -extern DECLSPEC int SDLCALL SDL_GetWindowOpacity(SDL_Window * window, float * out_opacity); - -/** - * \brief Sets the window as a modal for another window (TODO: reconsider this function and/or its name) - * - * \param modal_window The window that should be modal - * \param parent_window The parent window - * - * \return 0 on success, or -1 otherwise. - */ -extern DECLSPEC int SDLCALL SDL_SetWindowModalFor(SDL_Window * modal_window, SDL_Window * parent_window); - -/** - * \brief Explicitly sets input focus to the window. - * - * You almost certainly want SDL_RaiseWindow() instead of this function. Use - * this with caution, as you might give focus to a window that's completely - * obscured by other windows. - * - * \param window The window that should get the input focus - * - * \return 0 on success, or -1 otherwise. - * \sa SDL_RaiseWindow() - */ -extern DECLSPEC int SDLCALL SDL_SetWindowInputFocus(SDL_Window * window); - -/** - * \brief Set the gamma ramp for a window. - * - * \param window The window for which the gamma ramp should be set. - * \param red The translation table for the red channel, or NULL. - * \param green The translation table for the green channel, or NULL. - * \param blue The translation table for the blue channel, or NULL. - * - * \return 0 on success, or -1 if gamma ramps are unsupported. - * - * Set the gamma translation table for the red, green, and blue channels - * of the video hardware. Each table is an array of 256 16-bit quantities, - * representing a mapping between the input and output for that channel. - * The input is the index into the array, and the output is the 16-bit - * gamma value at that index, scaled to the output color precision. - * - * \sa SDL_GetWindowGammaRamp() - */ -extern DECLSPEC int SDLCALL SDL_SetWindowGammaRamp(SDL_Window * window, - const Uint16 * red, - const Uint16 * green, - const Uint16 * blue); - -/** - * \brief Get the gamma ramp for a window. - * - * \param window The window from which the gamma ramp should be queried. - * \param red A pointer to a 256 element array of 16-bit quantities to hold - * the translation table for the red channel, or NULL. - * \param green A pointer to a 256 element array of 16-bit quantities to hold - * the translation table for the green channel, or NULL. - * \param blue A pointer to a 256 element array of 16-bit quantities to hold - * the translation table for the blue channel, or NULL. - * - * \return 0 on success, or -1 if gamma ramps are unsupported. - * - * \sa SDL_SetWindowGammaRamp() - */ -extern DECLSPEC int SDLCALL SDL_GetWindowGammaRamp(SDL_Window * window, - Uint16 * red, - Uint16 * green, - Uint16 * blue); - -/** - * \brief Possible return values from the SDL_HitTest callback. - * - * \sa SDL_HitTest - */ -typedef enum -{ - SDL_HITTEST_NORMAL, /**< Region is normal. No special properties. */ - SDL_HITTEST_DRAGGABLE, /**< Region can drag entire window. */ - SDL_HITTEST_RESIZE_TOPLEFT, - SDL_HITTEST_RESIZE_TOP, - SDL_HITTEST_RESIZE_TOPRIGHT, - SDL_HITTEST_RESIZE_RIGHT, - SDL_HITTEST_RESIZE_BOTTOMRIGHT, - SDL_HITTEST_RESIZE_BOTTOM, - SDL_HITTEST_RESIZE_BOTTOMLEFT, - SDL_HITTEST_RESIZE_LEFT -} SDL_HitTestResult; - -/** - * \brief Callback used for hit-testing. - * - * \sa SDL_SetWindowHitTest - */ -typedef SDL_HitTestResult (SDLCALL *SDL_HitTest)(SDL_Window *win, - const SDL_Point *area, - void *data); - -/** - * \brief Provide a callback that decides if a window region has special properties. - * - * Normally windows are dragged and resized by decorations provided by the - * system window manager (a title bar, borders, etc), but for some apps, it - * makes sense to drag them from somewhere else inside the window itself; for - * example, one might have a borderless window that wants to be draggable - * from any part, or simulate its own title bar, etc. - * - * This function lets the app provide a callback that designates pieces of - * a given window as special. This callback is run during event processing - * if we need to tell the OS to treat a region of the window specially; the - * use of this callback is known as "hit testing." - * - * Mouse input may not be delivered to your application if it is within - * a special area; the OS will often apply that input to moving the window or - * resizing the window and not deliver it to the application. - * - * Specifying NULL for a callback disables hit-testing. Hit-testing is - * disabled by default. - * - * Platforms that don't support this functionality will return -1 - * unconditionally, even if you're attempting to disable hit-testing. - * - * Your callback may fire at any time, and its firing does not indicate any - * specific behavior (for example, on Windows, this certainly might fire - * when the OS is deciding whether to drag your window, but it fires for lots - * of other reasons, too, some unrelated to anything you probably care about - * _and when the mouse isn't actually at the location it is testing_). - * Since this can fire at any time, you should try to keep your callback - * efficient, devoid of allocations, etc. - * - * \param window The window to set hit-testing on. - * \param callback The callback to call when doing a hit-test. - * \param callback_data An app-defined void pointer passed to the callback. - * \return 0 on success, -1 on error (including unsupported). - */ -extern DECLSPEC int SDLCALL SDL_SetWindowHitTest(SDL_Window * window, - SDL_HitTest callback, - void *callback_data); - -/** - * \brief Destroy a window. - */ -extern DECLSPEC void SDLCALL SDL_DestroyWindow(SDL_Window * window); - - -/** - * \brief Returns whether the screensaver is currently enabled (default off). - * - * \sa SDL_EnableScreenSaver() - * \sa SDL_DisableScreenSaver() - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenSaverEnabled(void); - -/** - * \brief Allow the screen to be blanked by a screensaver - * - * \sa SDL_IsScreenSaverEnabled() - * \sa SDL_DisableScreenSaver() - */ -extern DECLSPEC void SDLCALL SDL_EnableScreenSaver(void); - -/** - * \brief Prevent the screen from being blanked by a screensaver - * - * \sa SDL_IsScreenSaverEnabled() - * \sa SDL_EnableScreenSaver() - */ -extern DECLSPEC void SDLCALL SDL_DisableScreenSaver(void); - - -/** - * \name OpenGL support functions - */ -/* @{ */ - -/** - * \brief Dynamically load an OpenGL library. - * - * \param path The platform dependent OpenGL library name, or NULL to open the - * default OpenGL library. - * - * \return 0 on success, or -1 if the library couldn't be loaded. - * - * This should be done after initializing the video driver, but before - * creating any OpenGL windows. If no OpenGL library is loaded, the default - * library will be loaded upon creation of the first OpenGL window. - * - * \note If you do this, you need to retrieve all of the GL functions used in - * your program from the dynamic library using SDL_GL_GetProcAddress(). - * - * \sa SDL_GL_GetProcAddress() - * \sa SDL_GL_UnloadLibrary() - */ -extern DECLSPEC int SDLCALL SDL_GL_LoadLibrary(const char *path); - -/** - * \brief Get the address of an OpenGL function. - */ -extern DECLSPEC void *SDLCALL SDL_GL_GetProcAddress(const char *proc); - -/** - * \brief Unload the OpenGL library previously loaded by SDL_GL_LoadLibrary(). - * - * \sa SDL_GL_LoadLibrary() - */ -extern DECLSPEC void SDLCALL SDL_GL_UnloadLibrary(void); - -/** - * \brief Return true if an OpenGL extension is supported for the current - * context. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GL_ExtensionSupported(const char - *extension); - -/** - * \brief Reset all previously set OpenGL context attributes to their default values - */ -extern DECLSPEC void SDLCALL SDL_GL_ResetAttributes(void); - -/** - * \brief Set an OpenGL window attribute before window creation. - */ -extern DECLSPEC int SDLCALL SDL_GL_SetAttribute(SDL_GLattr attr, int value); - -/** - * \brief Get the actual value for an attribute from the current context. - */ -extern DECLSPEC int SDLCALL SDL_GL_GetAttribute(SDL_GLattr attr, int *value); - -/** - * \brief Create an OpenGL context for use with an OpenGL window, and make it - * current. - * - * \sa SDL_GL_DeleteContext() - */ -extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_CreateContext(SDL_Window * - window); - -/** - * \brief Set up an OpenGL context for rendering into an OpenGL window. - * - * \note The context must have been created with a compatible window. - */ -extern DECLSPEC int SDLCALL SDL_GL_MakeCurrent(SDL_Window * window, - SDL_GLContext context); - -/** - * \brief Get the currently active OpenGL window. - */ -extern DECLSPEC SDL_Window* SDLCALL SDL_GL_GetCurrentWindow(void); - -/** - * \brief Get the currently active OpenGL context. - */ -extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_GetCurrentContext(void); - -/** - * \brief Get the size of a window's underlying drawable in pixels (for use - * with glViewport). - * - * \param window Window from which the drawable size should be queried - * \param w Pointer to variable for storing the width in pixels, may be NULL - * \param h Pointer to variable for storing the height in pixels, may be NULL - * - * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI - * drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a - * platform with high-DPI support (Apple calls this "Retina"), and not disabled - * by the SDL_HINT_VIDEO_HIGHDPI_DISABLED hint. - * - * \sa SDL_GetWindowSize() - * \sa SDL_CreateWindow() - */ -extern DECLSPEC void SDLCALL SDL_GL_GetDrawableSize(SDL_Window * window, int *w, - int *h); - -/** - * \brief Set the swap interval for the current OpenGL context. - * - * \param interval 0 for immediate updates, 1 for updates synchronized with the - * vertical retrace. If the system supports it, you may - * specify -1 to allow late swaps to happen immediately - * instead of waiting for the next retrace. - * - * \return 0 on success, or -1 if setting the swap interval is not supported. - * - * \sa SDL_GL_GetSwapInterval() - */ -extern DECLSPEC int SDLCALL SDL_GL_SetSwapInterval(int interval); - -/** - * \brief Get the swap interval for the current OpenGL context. - * - * \return 0 if there is no vertical retrace synchronization, 1 if the buffer - * swap is synchronized with the vertical retrace, and -1 if late - * swaps happen immediately instead of waiting for the next retrace. - * If the system can't determine the swap interval, or there isn't a - * valid current context, this will return 0 as a safe default. - * - * \sa SDL_GL_SetSwapInterval() - */ -extern DECLSPEC int SDLCALL SDL_GL_GetSwapInterval(void); - -/** - * \brief Swap the OpenGL buffers for a window, if double-buffering is - * supported. - */ -extern DECLSPEC void SDLCALL SDL_GL_SwapWindow(SDL_Window * window); - -/** - * \brief Delete an OpenGL context. - * - * \sa SDL_GL_CreateContext() - */ -extern DECLSPEC void SDLCALL SDL_GL_DeleteContext(SDL_GLContext context); - -/* @} *//* OpenGL support functions */ - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* _SDL_video_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/osx/include/begin_code.h b/lib/osx/include/begin_code.h deleted file mode 100644 index 04e78c6..0000000 --- a/lib/osx/include/begin_code.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file begin_code.h - * - * This file sets things up for C dynamic library function definitions, - * static inlined functions, and structures aligned at 4-byte alignment. - * If you don't like ugly C preprocessor code, don't look at this file. :) - */ - -/* This shouldn't be nested -- included it around code only. */ -#ifdef _begin_code_h -#error Nested inclusion of begin_code.h -#endif -#define _begin_code_h - -#ifndef SDL_DEPRECATED -# if (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */ -# define SDL_DEPRECATED __attribute__((deprecated)) -# else -# define SDL_DEPRECATED -# endif -#endif - -#ifndef SDL_UNUSED -# ifdef __GNUC__ -# define SDL_UNUSED __attribute__((unused)) -# else -# define SDL_UNUSED -# endif -#endif - -/* Some compilers use a special export keyword */ -#ifndef DECLSPEC -# if defined(__WIN32__) || defined(__WINRT__) -# ifdef __BORLANDC__ -# ifdef BUILD_SDL -# define DECLSPEC -# else -# define DECLSPEC __declspec(dllimport) -# endif -# else -# define DECLSPEC __declspec(dllexport) -# endif -# else -# if defined(__GNUC__) && __GNUC__ >= 4 -# define DECLSPEC __attribute__ ((visibility("default"))) -# else -# define DECLSPEC -# endif -# endif -#endif - -/* By default SDL uses the C calling convention */ -#ifndef SDLCALL -#if (defined(__WIN32__) || defined(__WINRT__)) && !defined(__GNUC__) -#define SDLCALL __cdecl -#else -#define SDLCALL -#endif -#endif /* SDLCALL */ - -/* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */ -#ifdef __SYMBIAN32__ -#undef DECLSPEC -#define DECLSPEC -#endif /* __SYMBIAN32__ */ - -/* Force structure packing at 4 byte alignment. - This is necessary if the header is included in code which has structure - packing set to an alternate value, say for loading structures from disk. - The packing is reset to the previous value in close_code.h - */ -#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) -#ifdef _MSC_VER -#pragma warning(disable: 4103) -#endif -#ifdef __BORLANDC__ -#pragma nopackwarning -#endif -#ifdef _M_X64 -/* Use 8-byte alignment on 64-bit architectures, so pointers are aligned */ -#pragma pack(push,8) -#else -#pragma pack(push,4) -#endif -#endif /* Compiler needs structure packing set */ - -#ifndef SDL_INLINE -#if defined(__GNUC__) -#define SDL_INLINE __inline__ -#elif defined(_MSC_VER) || defined(__BORLANDC__) || \ - defined(__DMC__) || defined(__SC__) || \ - defined(__WATCOMC__) || defined(__LCC__) || \ - defined(__DECC) -#define SDL_INLINE __inline -#ifndef __inline__ -#define __inline__ __inline -#endif -#else -#define SDL_INLINE inline -#ifndef __inline__ -#define __inline__ inline -#endif -#endif -#endif /* SDL_INLINE not defined */ - -#ifndef SDL_FORCE_INLINE -#if defined(_MSC_VER) -#define SDL_FORCE_INLINE __forceinline -#elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) ) -#define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__ -#else -#define SDL_FORCE_INLINE static SDL_INLINE -#endif -#endif /* SDL_FORCE_INLINE not defined */ - -/* Apparently this is needed by several Windows compilers */ -#if !defined(__MACH__) -#ifndef NULL -#ifdef __cplusplus -#define NULL 0 -#else -#define NULL ((void *)0) -#endif -#endif /* NULL */ -#endif /* ! Mac OS X - breaks precompiled headers */ diff --git a/lib/osx/include/close_code.h b/lib/osx/include/close_code.h deleted file mode 100644 index d908b00..0000000 --- a/lib/osx/include/close_code.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file close_code.h - * - * This file reverses the effects of begin_code.h and should be included - * after you finish any function and structure declarations in your headers - */ - -#undef _begin_code_h - -/* Reset structure packing at previous byte alignment */ -#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__WATCOMC__) || defined(__BORLANDC__) -#ifdef __BORLANDC__ -#pragma nopackwarning -#endif -#pragma pack(pop) -#endif /* Compiler needs structure packing set */ diff --git a/lib/osx/include/discord_game_sdk.h b/lib/osx/include/discord_game_sdk.h deleted file mode 100644 index f7a7927..0000000 --- a/lib/osx/include/discord_game_sdk.h +++ /dev/null @@ -1,429 +0,0 @@ -#ifndef _DISCORD_GAME_SDK_H_ -#define _DISCORD_GAME_SDK_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include <stdint.h> - -#define DISCORD_VERSION 1 -#define DISCORD_APPLICATION_VERSION 1 -#define DISCORD_USERS_VERSION 1 -#define DISCORD_IMAGES_VERSION 1 -#define DISCORD_ACTIVITIES_VERSION 1 -#define DISCORD_RELATIONSHIPS_VERSION 1 -#define DISCORD_LOBBIES_VERSION 1 -#define DISCORD_NETWORK_VERSION 1 -#define DISCORD_OVERLAY_VERSION 1 -#define DISCORD_STORAGE_VERSION 1 - -enum EDiscordResult { - DiscordResult_Ok, - DiscordResult_ServiceUnavailable, - DiscordResult_InvalidVersion, - DiscordResult_LockFailed, - DiscordResult_InternalError, - DiscordResult_InvalidPaylaod, - DiscordResult_InvalidCommand, - DiscordResult_InvalidPermissions, - DiscordResult_NotFetched, - DiscordResult_NotFound, - DiscordResult_Conflict, - DiscordResult_InvalidSecret, - DiscordResult_InvalidJoinSecret, - DiscordResult_NoEligibleActivity, - DiscordResult_InvalidInvite, - DiscordResult_NotAuthenticated, - DiscordResult_InvalidAccessToken, - DiscordResult_ApplicationMismatch, - DiscordResult_InvalidDataUrl, - DiscordResult_InvalidBase64, - DiscordResult_NotFiltered, - DiscordResult_LobbyFull, - DiscordResult_InvalidLobbySecret, - DiscordResult_InvalidFilename, - DiscordResult_InvalidFileSize, - DiscordResult_InvalidEntitlement, - DiscordResult_NotInstalled, - DiscordResult_NotRunning, -}; - -enum EDiscordCreateFlags { - DiscordCreateFlags_Default = 0, - DiscordCreateFlags_NoRequireDiscord = 1, -}; - -enum EDiscordLogLevel { - DiscordLogLevel_Error = 1, - DiscordLogLevel_Warn, - DiscordLogLevel_Info, - DiscordLogLevel_Debug, -}; - -enum EDiscordImageType { - DiscordImageType_User, -}; - -enum EDiscordActivityType { - DiscordActivityType_Playing, - DiscordActivityType_Streaming, - DiscordActivityType_Listening, - DiscordActivityType_Watching, -}; - -enum EDiscordActivityActionType { - DiscordActivityActionType_Join = 1, - DiscordActivityActionType_Spectate, -}; - -enum EDiscordActivityJoinRequestReply { - DiscordActivityJoinRequestReply_No, - DiscordActivityJoinRequestReply_Yes, - DiscordActivityJoinRequestReply_Ignore, -}; - -enum EDiscordStatus { - DiscordStatus_Offline = 0, - DiscordStatus_Online = 1, - DiscordStatus_Idle = 2, - DiscordStatus_DoNotDisturb = 4, -}; - -enum EDiscordRelationshipType { - DiscordRelationshipType_None, - DiscordRelationshipType_Friend, - DiscordRelationshipType_Blocked, - DiscordRelationshipType_PendingIncoming, - DiscordRelationshipType_PendingOutgoing, - DiscordRelationshipType_Implicit, -}; - -enum EDiscordLobbyType { - DiscordLobbyType_Private = 1, - DiscordLobbyType_Public, -}; - -enum EDiscordLobbySearchComparison { - DiscordLobbySearchComparison_LessThanOrEqual = -2, - DiscordLobbySearchComparison_LessThan, - DiscordLobbySearchComparison_Equal, - DiscordLobbySearchComparison_GreaterThan, - DiscordLobbySearchComparison_GreaterThanOrEqual, - DiscordLobbySearchComparison_NotEqual, -}; - -enum EDiscordLobbySearchCast { - DiscordLobbySearchCast_String = 1, - DiscordLobbySearchCast_Number, -}; - -typedef int64_t DiscordClientId; -typedef int32_t DiscordVersion; -typedef int64_t DiscordSnowflake; -typedef int64_t DiscordTimestamp; -typedef DiscordSnowflake DiscordUserId; -typedef char DiscordUserName[256]; -typedef char DiscordUserAvatar[128]; -typedef char DiscordUserDiscriminator[8]; -typedef char DiscordAccessToken[128]; -typedef char DiscordOAuth2Scopes[1024]; -typedef char DiscordLocale[128]; -typedef char DiscordBranch[4096]; -typedef uint8_t* DiscordImageData; -typedef char DiscordImageId[128]; -typedef char DiscordImageCaption[128]; -typedef char DiscordPartyId[128]; -typedef int32_t DiscordPartyMemberCount; -typedef char DiscordSecret[128]; -typedef DiscordSnowflake DiscordLobbyId; -typedef char DiscordLobbySecret[128]; -typedef char DiscordMetadataKey[256]; -typedef char DiscordMetadataValue[4096]; -typedef uint8_t* DiscordLobbyData; -typedef uint64_t DiscordNetworkSessionId; -typedef uint8_t DiscordNetworkChannelId; -typedef uint8_t* DiscordNetworkData; -typedef char DiscordStorageFileName[260]; -typedef uint8_t* DiscordStorageData; - -struct DiscordUser { - DiscordUserId id; - DiscordUserName username; - DiscordUserDiscriminator discriminator; - DiscordUserAvatar avatar; - int bot; -}; - -struct DiscordOAuth2Token { - DiscordAccessToken access_token; - DiscordOAuth2Scopes scopes; - DiscordTimestamp expires; -}; - -struct DiscordImageHandle { - enum EDiscordImageType type; - int64_t id; - uint32_t size; -}; - -struct DiscordImageDimensions { - uint32_t width; - uint32_t height; -}; - -struct DiscordActivityTimestamps { - DiscordTimestamp start; - DiscordTimestamp end; -}; - -struct DiscordActivityAssets { - DiscordImageId large_image; - DiscordImageCaption large_text; - DiscordImageId small_image; - DiscordImageCaption small_text; -}; - -struct DiscordPartySize { - DiscordPartyMemberCount current_size; - DiscordPartyMemberCount max_size; -}; - -struct DiscordActivityParty { - DiscordPartyId id; - struct DiscordPartySize size; -}; - -struct DiscordActivitySecrets { - DiscordSecret match; - DiscordSecret join; - DiscordSecret spectate; -}; - -struct DiscordActivity { - enum EDiscordActivityType type; - char name[128]; - char state[128]; - char details[128]; - struct DiscordActivityTimestamps timestamps; - struct DiscordActivityAssets assets; - struct DiscordActivityParty party; - struct DiscordActivitySecrets secrets; - int instance; -}; - -struct DiscordPresence { - enum EDiscordStatus status; - struct DiscordActivity activity; -}; - -struct DiscordRelationship { - enum EDiscordRelationshipType type; - struct DiscordUser user; - struct DiscordPresence presence; -}; - -struct DiscordLobby { - DiscordLobbyId id; - enum EDiscordLobbyType type; - DiscordSnowflake owner_id; - DiscordLobbySecret secret; - uint32_t capacity; -}; - -struct DiscordFileStat { - DiscordStorageFileName filename; - uint64_t size; - uint64_t last_modified; -}; - -struct IDiscordLobbyTransaction { - enum EDiscordResult (*set_type)(struct IDiscordLobbyTransaction* lobby_transaction, enum EDiscordLobbyType type); - enum EDiscordResult (*set_owner)(struct IDiscordLobbyTransaction* lobby_transaction, DiscordSnowflake owner_id); - enum EDiscordResult (*set_capacity)(struct IDiscordLobbyTransaction* lobby_transaction, uint32_t capacity); - enum EDiscordResult (*set_metadata)(struct IDiscordLobbyTransaction* lobby_transaction, DiscordMetadataKey key, DiscordMetadataValue value); - enum EDiscordResult (*delete_metadata)(struct IDiscordLobbyTransaction* lobby_transaction, DiscordMetadataKey key); -}; - -struct IDiscordLobbyMemberTransaction { - enum EDiscordResult (*set_metadata)(struct IDiscordLobbyMemberTransaction* lobby_member_transaction, DiscordMetadataKey key, DiscordMetadataValue value); - enum EDiscordResult (*delete_metadata)(struct IDiscordLobbyMemberTransaction* lobby_member_transaction, DiscordMetadataKey key); -}; - -struct IDiscordLobbySearch { - enum EDiscordResult (*filter)(struct IDiscordLobbySearch* lobby_search, DiscordMetadataKey key, enum EDiscordLobbySearchComparison comparison, enum EDiscordLobbySearchCast cast, DiscordMetadataValue value); - enum EDiscordResult (*sort)(struct IDiscordLobbySearch* lobby_search, DiscordMetadataKey key, enum EDiscordLobbySearchCast cast, DiscordMetadataValue value); - enum EDiscordResult (*limit)(struct IDiscordLobbySearch* lobby_search, uint32_t limit); -}; - -typedef void IDiscordApplicationEvents; - -struct IDiscordApplication { - enum EDiscordResult (*destroy)(struct IDiscordApplication* application); - enum EDiscordResult (*validate_or_exit)(struct IDiscordApplication* application, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*get_current_locale)(struct IDiscordApplication* application, DiscordLocale* locale); - enum EDiscordResult (*get_current_branch)(struct IDiscordApplication* application, DiscordBranch* branch); - enum EDiscordResult (*get_oauth2_token)(struct IDiscordApplication* application, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, struct DiscordOAuth2Token* oauth2_token)); -}; - -struct IDiscordUsersEvents { - void (*on_current_user_update)(void* event_data); -}; - -struct IDiscordUsers { - enum EDiscordResult (*destroy)(struct IDiscordUsers* users); - enum EDiscordResult (*get_current_user)(struct IDiscordUsers* users, struct DiscordUser* current_user); - enum EDiscordResult (*fetch)(struct IDiscordUsers* users, DiscordUserId user_id, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, struct DiscordUser* user)); -}; - -typedef void IDiscordImagesEvents; - -struct IDiscordImages { - enum EDiscordResult (*destroy)(struct IDiscordImages* images); - enum EDiscordResult (*fetch)(struct IDiscordImages* images, struct DiscordImageHandle handle, int refresh, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, struct DiscordImageHandle handle_result)); - enum EDiscordResult (*get_dimensions)(struct IDiscordImages* images, struct DiscordImageHandle handle, struct DiscordImageDimensions* dimensions); - enum EDiscordResult (*get_data)(struct IDiscordImages* images, struct DiscordImageHandle handle, DiscordImageData data, uint32_t data_length); -}; - -struct IDiscordActivitiesEvents { - void (*on_activity_join)(void* event_data, DiscordSecret secret); - void (*on_activity_spectate)(void* event_data, DiscordSecret secret); - void (*on_activity_join_request)(void* event_data, struct DiscordUser* user); - void (*on_activity_invite)(void* event_data, enum EDiscordActivityActionType type, struct DiscordUser* user, struct DiscordActivity* activity); -}; - -struct IDiscordActivities { - enum EDiscordResult (*destroy)(struct IDiscordActivities* activities); - enum EDiscordResult (*register_)(struct IDiscordActivities* activities, const char* command); - enum EDiscordResult (*register_steam)(struct IDiscordActivities* activities, uint32_t steam_id); - enum EDiscordResult (*update_activity)(struct IDiscordActivities* activities, struct DiscordActivity* activity, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*clear_activity)(struct IDiscordActivities* activities, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*respond)(struct IDiscordActivities* activities, DiscordUserId user_id, enum EDiscordActivityJoinRequestReply reply, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*invite_user)(struct IDiscordActivities* activities, DiscordUserId user_id, enum EDiscordActivityActionType type, const char* content, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*accept_invite)(struct IDiscordActivities* activities, DiscordUserId user_id, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); -}; - -struct IDiscordRelationshipsEvents { - void (*on_relationships_update)(void* event_data); - void (*on_relationship_update)(void* event_data, struct DiscordRelationship* relationship); -}; - -struct IDiscordRelationships { - enum EDiscordResult (*destroy)(struct IDiscordRelationships* relationships); - enum EDiscordResult (*filter)(struct IDiscordRelationships* relationships, void* filter_data, int (*filter)(void* filter_data, struct DiscordRelationship* relationship)); - enum EDiscordResult (*count)(struct IDiscordRelationships* relationships, int32_t* count); - enum EDiscordResult (*get)(struct IDiscordRelationships* relationships, DiscordUserId user_id, struct DiscordRelationship* relationship); - enum EDiscordResult (*at)(struct IDiscordRelationships* relationships, uint32_t index, struct DiscordRelationship* relationship); -}; - -struct IDiscordLobbiesEvents { - void (*on_lobby_update)(void* event_data, int64_t lobby_id); - void (*on_lobby_delete)(void* event_data, int64_t lobby_id, uint32_t reason); - void (*on_lobby_member_connect)(void* event_data, int64_t lobby_id, int64_t user_id); - void (*on_lobby_member_update)(void* event_data, int64_t lobby_id, int64_t user_id); - void (*on_lobby_member_disconnect)(void* event_data, int64_t lobby_id, int64_t user_id); - void (*on_lobby_message)(void* event_data, int64_t lobby_id, int64_t user_id, DiscordLobbyData data, uint32_t data_length); - void (*on_lobby_speaking)(void* event_data, int64_t lobby_id, int64_t user_id, int speaking); -}; - -struct IDiscordLobbies { - enum EDiscordResult (*destroy)(struct IDiscordLobbies* lobbies); - enum EDiscordResult (*create_lobby_transaction)(struct IDiscordLobbies* lobbies, struct IDiscordLobbyTransaction** transaction); - enum EDiscordResult (*get_lobby_transaction)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, struct IDiscordLobbyTransaction** transaction); - enum EDiscordResult (*get_member_transaction)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordUserId user_id, struct IDiscordLobbyMemberTransaction** transaction); - enum EDiscordResult (*create_lobby)(struct IDiscordLobbies* lobbies, struct IDiscordLobbyTransaction* transaction, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, struct DiscordLobby* lobby)); - enum EDiscordResult (*update_lobby)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, struct IDiscordLobbyTransaction* transaction, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*delete_lobby)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*connect)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordLobbySecret lobby_secret, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, struct DiscordLobby* lobby)); - enum EDiscordResult (*disconnect)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*get_lobby)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, struct DiscordLobby* lobby); - enum EDiscordResult (*get_lobby_metadata)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordMetadataKey key, DiscordMetadataValue* value); - enum EDiscordResult (*get_member_count)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, int32_t* count); - enum EDiscordResult (*get_member_user_id)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, int32_t index, DiscordUserId* user_id); - enum EDiscordResult (*get_member_user)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordUserId user_id, struct DiscordUser* user); - enum EDiscordResult (*get_member_metadata)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordUserId user_id, DiscordMetadataKey key, DiscordMetadataValue* value); - enum EDiscordResult (*update_member)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordUserId user_id, struct IDiscordLobbyMemberTransaction* transaction, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*send)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordLobbyData data, uint32_t data_length); - enum EDiscordResult (*create_lobby_search)(struct IDiscordLobbies* lobbies, struct IDiscordLobbySearch** lobby_search); - enum EDiscordResult (*search)(struct IDiscordLobbies* lobbies, struct IDiscordLobbySearch* query, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*get_lobby_count)(struct IDiscordLobbies* lobbies, int32_t* count); - enum EDiscordResult (*get_lobby_id)(struct IDiscordLobbies* lobbies, int32_t index, DiscordLobbyId* lobby_id); - enum EDiscordResult (*voice_connect)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*voice_disconnect)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); -}; - -struct IDiscordNetworkEvents { - void (*on_message)(void* event_data, DiscordNetworkSessionId from, DiscordNetworkChannelId channel, DiscordNetworkData data, uint32_t data_length); -}; - -struct IDiscordNetwork { - enum EDiscordResult (*destroy)(struct IDiscordNetwork* network); - enum EDiscordResult (*get_session_id)(struct IDiscordNetwork* network, DiscordNetworkSessionId* session_id); - enum EDiscordResult (*flush)(struct IDiscordNetwork* network); - enum EDiscordResult (*open_channel)(struct IDiscordNetwork* network, DiscordNetworkSessionId remote, DiscordNetworkChannelId channel); - enum EDiscordResult (*open_reliable_channel)(struct IDiscordNetwork* network, DiscordNetworkSessionId remote, DiscordNetworkChannelId channel); - enum EDiscordResult (*send)(struct IDiscordNetwork* network, DiscordNetworkSessionId remote, DiscordNetworkChannelId channel, DiscordNetworkData data, uint32_t data_length); - enum EDiscordResult (*close_channel)(struct IDiscordNetwork* network, DiscordNetworkSessionId remote, DiscordNetworkChannelId channel); -}; - -struct IDiscordOverlayEvents { - void (*on_overlay_locked)(void* event_data, int locked); -}; - -struct IDiscordOverlay { - enum EDiscordResult (*destroy)(struct IDiscordOverlay* overlay); - enum EDiscordResult (*is_enabled)(struct IDiscordOverlay* overlay, int* enabled); - enum EDiscordResult (*is_locked)(struct IDiscordOverlay* overlay, int* locked); - enum EDiscordResult (*set_locked)(struct IDiscordOverlay* overlay, int locked); - enum EDiscordResult (*open_activity_invite)(struct IDiscordOverlay* overlay, enum EDiscordActivityActionType type, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); -}; - -typedef void IDiscordStorageEvents; - -struct IDiscordStorage { - enum EDiscordResult (*destroy)(struct IDiscordStorage* storage); - enum EDiscordResult (*read)(struct IDiscordStorage* storage, DiscordStorageFileName name, DiscordStorageData data, uint32_t data_length, uint32_t* read); - enum EDiscordResult (*read_async)(struct IDiscordStorage* storage, DiscordStorageFileName name, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, DiscordStorageData data, uint32_t data_length)); - enum EDiscordResult (*read_async_partial)(struct IDiscordStorage* storage, DiscordStorageFileName name, uint64_t offset, uint64_t length, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, DiscordStorageData data, uint32_t data_length)); - enum EDiscordResult (*write)(struct IDiscordStorage* storage, DiscordStorageFileName name, DiscordStorageData data, uint32_t data_length); - enum EDiscordResult (*write_async)(struct IDiscordStorage* storage, DiscordStorageFileName name, DiscordStorageData data, uint32_t data_length, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*delete_)(struct IDiscordStorage* storage, DiscordStorageFileName name); - enum EDiscordResult (*exists)(struct IDiscordStorage* storage, DiscordStorageFileName name, int* exists); - enum EDiscordResult (*count)(struct IDiscordStorage* storage, int32_t* count); - enum EDiscordResult (*stat)(struct IDiscordStorage* storage, DiscordStorageFileName name, struct DiscordFileStat* stat); - enum EDiscordResult (*stat_index)(struct IDiscordStorage* storage, int32_t index, struct DiscordFileStat* stat); -}; - -struct IDiscordCoreEvents { - void (*on_ready)(void* event_data); -}; - -struct IDiscordCore { - enum EDiscordResult (*destroy)(struct IDiscordCore* core); - enum EDiscordResult (*run_callbacks)(struct IDiscordCore* core); - enum EDiscordResult (*set_log_hook)(struct IDiscordCore* core, enum EDiscordLogLevel min_level, void* hook_data, void (*hook)(void* hook_data, enum EDiscordLogLevel level, const char* message)); - enum EDiscordResult (*create_application)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordApplicationEvents* events, void* event_data, struct IDiscordApplication** result); - enum EDiscordResult (*create_users)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordUsersEvents* events, void* event_data, struct IDiscordUsers** result); - enum EDiscordResult (*create_images)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordImagesEvents* events, void* event_data, struct IDiscordImages** result); - enum EDiscordResult (*create_activities)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordActivitiesEvents* events, void* event_data, struct IDiscordActivities** result); - enum EDiscordResult (*create_relationships)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordRelationshipsEvents* events, void* event_data, struct IDiscordRelationships** result); - enum EDiscordResult (*create_lobbies)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordLobbiesEvents* events, void* event_data, struct IDiscordLobbies** result); - enum EDiscordResult (*create_network)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordNetworkEvents* events, void* event_data, struct IDiscordNetwork** result); - enum EDiscordResult (*create_overlay)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordOverlayEvents* events, void* event_data, struct IDiscordOverlay** result); - enum EDiscordResult (*create_storage)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordStorageEvents* events, void* event_data, struct IDiscordStorage** result); -}; - -struct DiscordCreateParams { - DiscordClientId client_id; - uint64_t flags; - struct IDiscordCoreEvents* events; - void* event_data; -}; - -enum EDiscordResult DiscordCreate(DiscordVersion version, struct DiscordCreateParams* params, struct IDiscordCore** result); - -#ifdef __cplusplus -} -#endif - -#endif \ No newline at end of file diff --git a/lib/osx/include/freetype/config/ftconfig.h b/lib/osx/include/freetype/config/ftconfig.h deleted file mode 100644 index d4d7993..0000000 --- a/lib/osx/include/freetype/config/ftconfig.h +++ /dev/null @@ -1,467 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftconfig.h */ -/* */ -/* ANSI-specific configuration file (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This header file contains a number of macro definitions that are used */ - /* by the rest of the engine. Most of the macros here are automatically */ - /* determined at compile time, and you should not need to change it to */ - /* port FreeType, except to compile the library with a non-ANSI */ - /* compiler. */ - /* */ - /* Note however that if some specific modifications are needed, we */ - /* advise you to place a modified copy in your build directory. */ - /* */ - /* The build directory is usually `builds/<system>', and contains */ - /* system-specific files that are always included first when building */ - /* the library. */ - /* */ - /* This ANSI version should stay in `include/config/'. */ - /* */ - /*************************************************************************/ - -#ifndef __FTCONFIG_H__ -#define __FTCONFIG_H__ - -#include <ft2build.h> -#include FT_CONFIG_OPTIONS_H -#include FT_CONFIG_STANDARD_LIBRARY_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* PLATFORM-SPECIFIC CONFIGURATION MACROS */ - /* */ - /* These macros can be toggled to suit a specific system. The current */ - /* ones are defaults used to compile FreeType in an ANSI C environment */ - /* (16bit compilers are also supported). Copy this file to your own */ - /* `builds/<system>' directory, and edit it to port the engine. */ - /* */ - /*************************************************************************/ - - - /* There are systems (like the Texas Instruments 'C54x) where a `char' */ - /* has 16 bits. ANSI C says that sizeof(char) is always 1. Since an */ - /* `int' has 16 bits also for this system, sizeof(int) gives 1 which */ - /* is probably unexpected. */ - /* */ - /* `CHAR_BIT' (defined in limits.h) gives the number of bits in a */ - /* `char' type. */ - -#ifndef FT_CHAR_BIT -#define FT_CHAR_BIT CHAR_BIT -#endif - - - /* The size of an `int' type. */ -#if FT_UINT_MAX == 0xFFFFUL -#define FT_SIZEOF_INT (16 / FT_CHAR_BIT) -#elif FT_UINT_MAX == 0xFFFFFFFFUL -#define FT_SIZEOF_INT (32 / FT_CHAR_BIT) -#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL -#define FT_SIZEOF_INT (64 / FT_CHAR_BIT) -#else -#error "Unsupported size of `int' type!" -#endif - - /* The size of a `long' type. A five-byte `long' (as used e.g. on the */ - /* DM642) is recognized but avoided. */ -#if FT_ULONG_MAX == 0xFFFFFFFFUL -#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) -#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL -#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) -#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL -#define FT_SIZEOF_LONG (64 / FT_CHAR_BIT) -#else -#error "Unsupported size of `long' type!" -#endif - - - /* FT_UNUSED is a macro used to indicate that a given parameter is not */ - /* used -- this is only used to get rid of unpleasant compiler warnings */ -#ifndef FT_UNUSED -#define FT_UNUSED( arg ) ( (arg) = (arg) ) -#endif - - - /*************************************************************************/ - /* */ - /* AUTOMATIC CONFIGURATION MACROS */ - /* */ - /* These macros are computed from the ones defined above. Don't touch */ - /* their definition, unless you know precisely what you are doing. No */ - /* porter should need to mess with them. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Mac support */ - /* */ - /* This is the only necessary change, so it is defined here instead */ - /* providing a new configuration file. */ - /* */ -#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) ) - /* no Carbon frameworks for 64bit 10.4.x */ - /* AvailabilityMacros.h is available since Mac OS X 10.2, */ - /* so guess the system version by maximum errno before inclusion */ -#include <errno.h> -#ifdef ECANCELED /* defined since 10.2 */ -#include "AvailabilityMacros.h" -#endif -#if defined( __LP64__ ) && \ - ( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 ) -#undef FT_MACINTOSH -#endif - -#elif defined( __SC__ ) || defined( __MRC__ ) - /* Classic MacOS compilers */ -#include "ConditionalMacros.h" -#if TARGET_OS_MAC -#define FT_MACINTOSH 1 -#endif - -#endif - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Int16 */ - /* */ - /* <Description> */ - /* A typedef for a 16bit signed integer type. */ - /* */ - typedef signed short FT_Int16; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UInt16 */ - /* */ - /* <Description> */ - /* A typedef for a 16bit unsigned integer type. */ - /* */ - typedef unsigned short FT_UInt16; - - /* */ - - - /* this #if 0 ... #endif clause is for documentation purposes */ -#if 0 - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Int32 */ - /* */ - /* <Description> */ - /* A typedef for a 32bit signed integer type. The size depends on */ - /* the configuration. */ - /* */ - typedef signed XXX FT_Int32; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UInt32 */ - /* */ - /* A typedef for a 32bit unsigned integer type. The size depends on */ - /* the configuration. */ - /* */ - typedef unsigned XXX FT_UInt32; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Int64 */ - /* */ - /* A typedef for a 64bit signed integer type. The size depends on */ - /* the configuration. Only defined if there is real 64bit support; */ - /* otherwise, it gets emulated with a structure (if necessary). */ - /* */ - typedef signed XXX FT_Int64; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UInt64 */ - /* */ - /* A typedef for a 64bit unsigned integer type. The size depends on */ - /* the configuration. Only defined if there is real 64bit support; */ - /* otherwise, it gets emulated with a structure (if necessary). */ - /* */ - typedef unsigned XXX FT_UInt64; - - /* */ - -#endif - -#if FT_SIZEOF_INT == (32 / FT_CHAR_BIT) - - typedef signed int FT_Int32; - typedef unsigned int FT_UInt32; - -#elif FT_SIZEOF_LONG == (32 / FT_CHAR_BIT) - - typedef signed long FT_Int32; - typedef unsigned long FT_UInt32; - -#else -#error "no 32bit type found -- please check your configuration files" -#endif - - - /* look up an integer type that is at least 32 bits */ -#if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT) - - typedef int FT_Fast; - typedef unsigned int FT_UFast; - -#elif FT_SIZEOF_LONG >= (32 / FT_CHAR_BIT) - - typedef long FT_Fast; - typedef unsigned long FT_UFast; - -#endif - - - /* determine whether we have a 64-bit int type for platforms without */ - /* Autoconf */ -#if FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) - - /* FT_LONG64 must be defined if a 64-bit type is available */ -#define FT_LONG64 -#define FT_INT64 long -#define FT_UINT64 unsigned long - - /*************************************************************************/ - /* */ - /* A 64-bit data type may create compilation problems if you compile */ - /* in strict ANSI mode. To avoid them, we disable other 64-bit data */ - /* types if __STDC__ is defined. You can however ignore this rule */ - /* by defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */ - /* */ -#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 ) - -#if defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ - - /* this compiler provides the __int64 type */ -#define FT_LONG64 -#define FT_INT64 __int64 -#define FT_UINT64 unsigned __int64 - -#elif defined( __BORLANDC__ ) /* Borland C++ */ - - /* XXXX: We should probably check the value of __BORLANDC__ in order */ - /* to test the compiler version. */ - - /* this compiler provides the __int64 type */ -#define FT_LONG64 -#define FT_INT64 __int64 -#define FT_UINT64 unsigned __int64 - -#elif defined( __WATCOMC__ ) /* Watcom C++ */ - - /* Watcom doesn't provide 64-bit data types */ - -#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */ - -#define FT_LONG64 -#define FT_INT64 long long int -#define FT_UINT64 unsigned long long int - -#elif defined( __GNUC__ ) - - /* GCC provides the `long long' type */ -#define FT_LONG64 -#define FT_INT64 long long int -#define FT_UINT64 unsigned long long int - -#endif /* _MSC_VER */ - -#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */ - -#ifdef FT_LONG64 - typedef FT_INT64 FT_Int64; - typedef FT_UINT64 FT_UInt64; -#endif - - - /*************************************************************************/ - /* */ - /* miscellaneous */ - /* */ - /*************************************************************************/ - - -#define FT_BEGIN_STMNT do { -#define FT_END_STMNT } while ( 0 ) -#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT - - - /* typeof condition taken from gnulib's `intprops.h' header file */ -#if ( __GNUC__ >= 2 || \ - defined( __IBM__TYPEOF__ ) || \ - ( __SUNPRO_C >= 0x5110 && !__STDC__ ) ) -#define FT_TYPEOF( type ) (__typeof__ (type)) -#else -#define FT_TYPEOF( type ) /* empty */ -#endif - - -#ifdef FT_MAKE_OPTION_SINGLE_OBJECT - -#define FT_LOCAL( x ) static x -#define FT_LOCAL_DEF( x ) static x - -#else - -#ifdef __cplusplus -#define FT_LOCAL( x ) extern "C" x -#define FT_LOCAL_DEF( x ) extern "C" x -#else -#define FT_LOCAL( x ) extern x -#define FT_LOCAL_DEF( x ) x -#endif - -#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */ - -#define FT_LOCAL_ARRAY( x ) extern const x -#define FT_LOCAL_ARRAY_DEF( x ) const x - - -#ifndef FT_BASE - -#ifdef __cplusplus -#define FT_BASE( x ) extern "C" x -#else -#define FT_BASE( x ) extern x -#endif - -#endif /* !FT_BASE */ - - -#ifndef FT_BASE_DEF - -#ifdef __cplusplus -#define FT_BASE_DEF( x ) x -#else -#define FT_BASE_DEF( x ) x -#endif - -#endif /* !FT_BASE_DEF */ - - -#ifndef FT_EXPORT - -#ifdef __cplusplus -#define FT_EXPORT( x ) extern "C" x -#else -#define FT_EXPORT( x ) extern x -#endif - -#endif /* !FT_EXPORT */ - - -#ifndef FT_EXPORT_DEF - -#ifdef __cplusplus -#define FT_EXPORT_DEF( x ) extern "C" x -#else -#define FT_EXPORT_DEF( x ) extern x -#endif - -#endif /* !FT_EXPORT_DEF */ - - -#ifndef FT_EXPORT_VAR - -#ifdef __cplusplus -#define FT_EXPORT_VAR( x ) extern "C" x -#else -#define FT_EXPORT_VAR( x ) extern x -#endif - -#endif /* !FT_EXPORT_VAR */ - - /* The following macros are needed to compile the library with a */ - /* C++ compiler and with 16bit compilers. */ - /* */ - - /* This is special. Within C++, you must specify `extern "C"' for */ - /* functions which are used via function pointers, and you also */ - /* must do that for structures which contain function pointers to */ - /* assure C linkage -- it's not possible to have (local) anonymous */ - /* functions which are accessed by (global) function pointers. */ - /* */ - /* */ - /* FT_CALLBACK_DEF is used to _define_ a callback function. */ - /* */ - /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */ - /* contains pointers to callback functions. */ - /* */ - /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */ - /* that contains pointers to callback functions. */ - /* */ - /* */ - /* Some 16bit compilers have to redefine these macros to insert */ - /* the infamous `_cdecl' or `__fastcall' declarations. */ - /* */ -#ifndef FT_CALLBACK_DEF -#ifdef __cplusplus -#define FT_CALLBACK_DEF( x ) extern "C" x -#else -#define FT_CALLBACK_DEF( x ) static x -#endif -#endif /* FT_CALLBACK_DEF */ - -#ifndef FT_CALLBACK_TABLE -#ifdef __cplusplus -#define FT_CALLBACK_TABLE extern "C" -#define FT_CALLBACK_TABLE_DEF extern "C" -#else -#define FT_CALLBACK_TABLE extern -#define FT_CALLBACK_TABLE_DEF /* nothing */ -#endif -#endif /* FT_CALLBACK_TABLE */ - - -FT_END_HEADER - - -#endif /* __FTCONFIG_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/config/ftheader.h b/lib/osx/include/freetype/config/ftheader.h deleted file mode 100644 index 55f833d..0000000 --- a/lib/osx/include/freetype/config/ftheader.h +++ /dev/null @@ -1,834 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftheader.h */ -/* */ -/* Build macros of the FreeType 2 library. */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -#ifndef __FT_HEADER_H__ -#define __FT_HEADER_H__ - - - /*@***********************************************************************/ - /* */ - /* <Macro> */ - /* FT_BEGIN_HEADER */ - /* */ - /* <Description> */ - /* This macro is used in association with @FT_END_HEADER in header */ - /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }' block when included from a */ - /* C++ compiler. */ - /* */ -#ifdef __cplusplus -#define FT_BEGIN_HEADER extern "C" { -#else -#define FT_BEGIN_HEADER /* nothing */ -#endif - - - /*@***********************************************************************/ - /* */ - /* <Macro> */ - /* FT_END_HEADER */ - /* */ - /* <Description> */ - /* This macro is used in association with @FT_BEGIN_HEADER in header */ - /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }' block when included from a */ - /* C++ compiler. */ - /* */ -#ifdef __cplusplus -#define FT_END_HEADER } -#else -#define FT_END_HEADER /* nothing */ -#endif - - - /*************************************************************************/ - /* */ - /* Aliases for the FreeType 2 public and configuration files. */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* <Section> */ - /* header_file_macros */ - /* */ - /* <Title> */ - /* Header File Macros */ - /* */ - /* <Abstract> */ - /* Macro definitions used to #include specific header files. */ - /* */ - /* <Description> */ - /* The following macros are defined to the name of specific */ - /* FreeType~2 header files. They can be used directly in #include */ - /* statements as in: */ - /* */ - /* { */ - /* #include FT_FREETYPE_H */ - /* #include FT_MULTIPLE_MASTERS_H */ - /* #include FT_GLYPH_H */ - /* } */ - /* */ - /* There are several reasons why we are now using macros to name */ - /* public header files. The first one is that such macros are not */ - /* limited to the infamous 8.3~naming rule required by DOS (and */ - /* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */ - /* */ - /* The second reason is that it allows for more flexibility in the */ - /* way FreeType~2 is installed on a given system. */ - /* */ - /*************************************************************************/ - - - /* configuration files */ - - /************************************************************************* - * - * @macro: - * FT_CONFIG_CONFIG_H - * - * @description: - * A macro used in #include statements to name the file containing - * FreeType~2 configuration data. - * - */ -#ifndef FT_CONFIG_CONFIG_H -#define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h> -#endif - - - /************************************************************************* - * - * @macro: - * FT_CONFIG_STANDARD_LIBRARY_H - * - * @description: - * A macro used in #include statements to name the file containing - * FreeType~2 interface to the standard C library functions. - * - */ -#ifndef FT_CONFIG_STANDARD_LIBRARY_H -#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h> -#endif - - - /************************************************************************* - * - * @macro: - * FT_CONFIG_OPTIONS_H - * - * @description: - * A macro used in #include statements to name the file containing - * FreeType~2 project-specific configuration options. - * - */ -#ifndef FT_CONFIG_OPTIONS_H -#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h> -#endif - - - /************************************************************************* - * - * @macro: - * FT_CONFIG_MODULES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * list of FreeType~2 modules that are statically linked to new library - * instances in @FT_Init_FreeType. - * - */ -#ifndef FT_CONFIG_MODULES_H -#define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h> -#endif - - /* */ - - /* public headers */ - - /************************************************************************* - * - * @macro: - * FT_FREETYPE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * base FreeType~2 API. - * - */ -#define FT_FREETYPE_H <freetype/freetype.h> - - - /************************************************************************* - * - * @macro: - * FT_ERRORS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * list of FreeType~2 error codes (and messages). - * - * It is included by @FT_FREETYPE_H. - * - */ -#define FT_ERRORS_H <freetype/fterrors.h> - - - /************************************************************************* - * - * @macro: - * FT_MODULE_ERRORS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * list of FreeType~2 module error offsets (and messages). - * - */ -#define FT_MODULE_ERRORS_H <freetype/ftmoderr.h> - - - /************************************************************************* - * - * @macro: - * FT_SYSTEM_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 interface to low-level operations (i.e., memory management - * and stream i/o). - * - * It is included by @FT_FREETYPE_H. - * - */ -#define FT_SYSTEM_H <freetype/ftsystem.h> - - - /************************************************************************* - * - * @macro: - * FT_IMAGE_H - * - * @description: - * A macro used in #include statements to name the file containing type - * definitions related to glyph images (i.e., bitmaps, outlines, - * scan-converter parameters). - * - * It is included by @FT_FREETYPE_H. - * - */ -#define FT_IMAGE_H <freetype/ftimage.h> - - - /************************************************************************* - * - * @macro: - * FT_TYPES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * basic data types defined by FreeType~2. - * - * It is included by @FT_FREETYPE_H. - * - */ -#define FT_TYPES_H <freetype/fttypes.h> - - - /************************************************************************* - * - * @macro: - * FT_LIST_H - * - * @description: - * A macro used in #include statements to name the file containing the - * list management API of FreeType~2. - * - * (Most applications will never need to include this file.) - * - */ -#define FT_LIST_H <freetype/ftlist.h> - - - /************************************************************************* - * - * @macro: - * FT_OUTLINE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * scalable outline management API of FreeType~2. - * - */ -#define FT_OUTLINE_H <freetype/ftoutln.h> - - - /************************************************************************* - * - * @macro: - * FT_SIZES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API which manages multiple @FT_Size objects per face. - * - */ -#define FT_SIZES_H <freetype/ftsizes.h> - - - /************************************************************************* - * - * @macro: - * FT_MODULE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * module management API of FreeType~2. - * - */ -#define FT_MODULE_H <freetype/ftmodapi.h> - - - /************************************************************************* - * - * @macro: - * FT_RENDER_H - * - * @description: - * A macro used in #include statements to name the file containing the - * renderer module management API of FreeType~2. - * - */ -#define FT_RENDER_H <freetype/ftrender.h> - - - /************************************************************************* - * - * @macro: - * FT_AUTOHINTER_H - * - * @description: - * A macro used in #include statements to name the file containing - * structures and macros related to the auto-hinting module. - * - */ -#define FT_AUTOHINTER_H <freetype/ftautoh.h> - - - /************************************************************************* - * - * @macro: - * FT_CFF_DRIVER_H - * - * @description: - * A macro used in #include statements to name the file containing - * structures and macros related to the CFF driver module. - * - */ -#define FT_CFF_DRIVER_H <freetype/ftcffdrv.h> - - - /************************************************************************* - * - * @macro: - * FT_TRUETYPE_DRIVER_H - * - * @description: - * A macro used in #include statements to name the file containing - * structures and macros related to the TrueType driver module. - * - */ -#define FT_TRUETYPE_DRIVER_H <freetype/ftttdrv.h> - - - /************************************************************************* - * - * @macro: - * FT_TYPE1_TABLES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * types and API specific to the Type~1 format. - * - */ -#define FT_TYPE1_TABLES_H <freetype/t1tables.h> - - - /************************************************************************* - * - * @macro: - * FT_TRUETYPE_IDS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * enumeration values which identify name strings, languages, encodings, - * etc. This file really contains a _large_ set of constant macro - * definitions, taken from the TrueType and OpenType specifications. - * - */ -#define FT_TRUETYPE_IDS_H <freetype/ttnameid.h> - - - /************************************************************************* - * - * @macro: - * FT_TRUETYPE_TABLES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * types and API specific to the TrueType (as well as OpenType) format. - * - */ -#define FT_TRUETYPE_TABLES_H <freetype/tttables.h> - - - /************************************************************************* - * - * @macro: - * FT_TRUETYPE_TAGS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of TrueType four-byte `tags' which identify blocks in - * SFNT-based font formats (i.e., TrueType and OpenType). - * - */ -#define FT_TRUETYPE_TAGS_H <freetype/tttags.h> - - - /************************************************************************* - * - * @macro: - * FT_BDF_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which accesses BDF-specific strings from a - * face. - * - */ -#define FT_BDF_H <freetype/ftbdf.h> - - - /************************************************************************* - * - * @macro: - * FT_CID_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which access CID font information from a - * face. - * - */ -#define FT_CID_H <freetype/ftcid.h> - - - /************************************************************************* - * - * @macro: - * FT_GZIP_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which supports gzip-compressed files. - * - */ -#define FT_GZIP_H <freetype/ftgzip.h> - - - /************************************************************************* - * - * @macro: - * FT_LZW_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which supports LZW-compressed files. - * - */ -#define FT_LZW_H <freetype/ftlzw.h> - - - /************************************************************************* - * - * @macro: - * FT_BZIP2_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which supports bzip2-compressed files. - * - */ -#define FT_BZIP2_H <freetype/ftbzip2.h> - - - /************************************************************************* - * - * @macro: - * FT_WINFONTS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which supports Windows FNT files. - * - */ -#define FT_WINFONTS_H <freetype/ftwinfnt.h> - - - /************************************************************************* - * - * @macro: - * FT_GLYPH_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API of the optional glyph management component. - * - */ -#define FT_GLYPH_H <freetype/ftglyph.h> - - - /************************************************************************* - * - * @macro: - * FT_BITMAP_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API of the optional bitmap conversion component. - * - */ -#define FT_BITMAP_H <freetype/ftbitmap.h> - - - /************************************************************************* - * - * @macro: - * FT_BBOX_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API of the optional exact bounding box computation routines. - * - */ -#define FT_BBOX_H <freetype/ftbbox.h> - - - /************************************************************************* - * - * @macro: - * FT_CACHE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API of the optional FreeType~2 cache sub-system. - * - */ -#define FT_CACHE_H <freetype/ftcache.h> - - - /************************************************************************* - * - * @macro: - * FT_CACHE_IMAGE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * `glyph image' API of the FreeType~2 cache sub-system. - * - * It is used to define a cache for @FT_Glyph elements. You can also - * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to - * store small glyph bitmaps, as it will use less memory. - * - * This macro is deprecated. Simply include @FT_CACHE_H to have all - * glyph image-related cache declarations. - * - */ -#define FT_CACHE_IMAGE_H FT_CACHE_H - - - /************************************************************************* - * - * @macro: - * FT_CACHE_SMALL_BITMAPS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * `small bitmaps' API of the FreeType~2 cache sub-system. - * - * It is used to define a cache for small glyph bitmaps in a relatively - * memory-efficient way. You can also use the API defined in - * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, - * including scalable outlines. - * - * This macro is deprecated. Simply include @FT_CACHE_H to have all - * small bitmaps-related cache declarations. - * - */ -#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H - - - /************************************************************************* - * - * @macro: - * FT_CACHE_CHARMAP_H - * - * @description: - * A macro used in #include statements to name the file containing the - * `charmap' API of the FreeType~2 cache sub-system. - * - * This macro is deprecated. Simply include @FT_CACHE_H to have all - * charmap-based cache declarations. - * - */ -#define FT_CACHE_CHARMAP_H FT_CACHE_H - - - /************************************************************************* - * - * @macro: - * FT_MAC_H - * - * @description: - * A macro used in #include statements to name the file containing the - * Macintosh-specific FreeType~2 API. The latter is used to access - * fonts embedded in resource forks. - * - * This header file must be explicitly included by client applications - * compiled on the Mac (note that the base API still works though). - * - */ -#define FT_MAC_H <freetype/ftmac.h> - - - /************************************************************************* - * - * @macro: - * FT_MULTIPLE_MASTERS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * optional multiple-masters management API of FreeType~2. - * - */ -#define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h> - - - /************************************************************************* - * - * @macro: - * FT_SFNT_NAMES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * optional FreeType~2 API which accesses embedded `name' strings in - * SFNT-based font formats (i.e., TrueType and OpenType). - * - */ -#define FT_SFNT_NAMES_H <freetype/ftsnames.h> - - - /************************************************************************* - * - * @macro: - * FT_OPENTYPE_VALIDATE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * optional FreeType~2 API which validates OpenType tables (BASE, GDEF, - * GPOS, GSUB, JSTF). - * - */ -#define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h> - - - /************************************************************************* - * - * @macro: - * FT_GX_VALIDATE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat, - * mort, morx, bsln, just, kern, opbd, trak, prop). - * - */ -#define FT_GX_VALIDATE_H <freetype/ftgxval.h> - - - /************************************************************************* - * - * @macro: - * FT_PFR_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which accesses PFR-specific data. - * - */ -#define FT_PFR_H <freetype/ftpfr.h> - - - /************************************************************************* - * - * @macro: - * FT_STROKER_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which provides functions to stroke outline paths. - */ -#define FT_STROKER_H <freetype/ftstroke.h> - - - /************************************************************************* - * - * @macro: - * FT_SYNTHESIS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs artificial obliquing and emboldening. - */ -#define FT_SYNTHESIS_H <freetype/ftsynth.h> - - - /************************************************************************* - * - * @macro: - * FT_FONT_FORMATS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which provides functions specific to font formats. - */ -#define FT_FONT_FORMATS_H <freetype/ftfntfmt.h> - - /* deprecated */ -#define FT_XFREE86_H FT_FONT_FORMATS_H - - - /************************************************************************* - * - * @macro: - * FT_TRIGONOMETRY_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs trigonometric computations (e.g., - * cosines and arc tangents). - */ -#define FT_TRIGONOMETRY_H <freetype/fttrigon.h> - - - /************************************************************************* - * - * @macro: - * FT_LCD_FILTER_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. - */ -#define FT_LCD_FILTER_H <freetype/ftlcdfil.h> - - - /************************************************************************* - * - * @macro: - * FT_UNPATENTED_HINTING_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. - */ -#define FT_UNPATENTED_HINTING_H <freetype/ttunpat.h> - - - /************************************************************************* - * - * @macro: - * FT_INCREMENTAL_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. - */ -#define FT_INCREMENTAL_H <freetype/ftincrem.h> - - - /************************************************************************* - * - * @macro: - * FT_GASP_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which returns entries from the TrueType GASP table. - */ -#define FT_GASP_H <freetype/ftgasp.h> - - - /************************************************************************* - * - * @macro: - * FT_ADVANCES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which returns individual and ranged glyph advances. - */ -#define FT_ADVANCES_H <freetype/ftadvanc.h> - - - /* */ - -#define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h> - - - /* The internals of the cache sub-system are no longer exposed. We */ - /* default to FT_CACHE_H at the moment just in case, but we know of */ - /* no rogue client that uses them. */ - /* */ -#define FT_CACHE_MANAGER_H <freetype/ftcache.h> -#define FT_CACHE_INTERNAL_MRU_H <freetype/ftcache.h> -#define FT_CACHE_INTERNAL_MANAGER_H <freetype/ftcache.h> -#define FT_CACHE_INTERNAL_CACHE_H <freetype/ftcache.h> -#define FT_CACHE_INTERNAL_GLYPH_H <freetype/ftcache.h> -#define FT_CACHE_INTERNAL_IMAGE_H <freetype/ftcache.h> -#define FT_CACHE_INTERNAL_SBITS_H <freetype/ftcache.h> - - -#define FT_INCREMENTAL_H <freetype/ftincrem.h> - -#define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h> - - - /* - * Include internal headers definitions from <internal/...> - * only when building the library. - */ -#ifdef FT2_BUILD_LIBRARY -#define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h> -#include FT_INTERNAL_INTERNAL_H -#endif /* FT2_BUILD_LIBRARY */ - - -#endif /* __FT2_BUILD_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/config/ftmodule.h b/lib/osx/include/freetype/config/ftmodule.h deleted file mode 100644 index 76d271a..0000000 --- a/lib/osx/include/freetype/config/ftmodule.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * This file registers the FreeType modules compiled into the library. - * - * If you use GNU make, this file IS NOT USED! Instead, it is created in - * the objects directory (normally `<topdir>/objs/') based on information - * from `<topdir>/modules.cfg'. - * - * Please read `docs/INSTALL.ANY' and `docs/CUSTOMIZE' how to compile - * FreeType without GNU make. - * - */ - -FT_USE_MODULE( FT_Module_Class, autofit_module_class ) -FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class ) -FT_USE_MODULE( FT_Module_Class, psaux_module_class ) -FT_USE_MODULE( FT_Module_Class, psnames_module_class ) -FT_USE_MODULE( FT_Module_Class, pshinter_module_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class ) -FT_USE_MODULE( FT_Module_Class, sfnt_module_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class ) -FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class ) - -/* EOF */ diff --git a/lib/osx/include/freetype/config/ftoption.h b/lib/osx/include/freetype/config/ftoption.h deleted file mode 100644 index b481f8f..0000000 --- a/lib/osx/include/freetype/config/ftoption.h +++ /dev/null @@ -1,904 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftoption.h */ -/* */ -/* User-selectable configuration macros (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTOPTION_H__ -#define __FTOPTION_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* USER-SELECTABLE CONFIGURATION MACROS */ - /* */ - /* This file contains the default configuration macro definitions for */ - /* a standard build of the FreeType library. There are three ways to */ - /* use this file to build project-specific versions of the library: */ - /* */ - /* - You can modify this file by hand, but this is not recommended in */ - /* cases where you would like to build several versions of the */ - /* library from a single source directory. */ - /* */ - /* - You can put a copy of this file in your build directory, more */ - /* precisely in `$BUILD/freetype/config/ftoption.h', where `$BUILD' */ - /* is the name of a directory that is included _before_ the FreeType */ - /* include path during compilation. */ - /* */ - /* The default FreeType Makefiles and Jamfiles use the build */ - /* directory `builds/<system>' by default, but you can easily change */ - /* that for your own projects. */ - /* */ - /* - Copy the file <ft2build.h> to `$BUILD/ft2build.h' and modify it */ - /* slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to */ - /* locate this file during the build. For example, */ - /* */ - /* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */ - /* #include <freetype/config/ftheader.h> */ - /* */ - /* will use `$BUILD/myftoptions.h' instead of this file for macro */ - /* definitions. */ - /* */ - /* Note also that you can similarly pre-define the macro */ - /* FT_CONFIG_MODULES_H used to locate the file listing of the modules */ - /* that are statically linked to the library at compile time. By */ - /* default, this file is <freetype/config/ftmodule.h>. */ - /* */ - /* We highly recommend using the third method whenever possible. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** G E N E R A L F R E E T Y P E 2 C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Uncomment the line below if you want to activate sub-pixel rendering */ - /* (a.k.a. LCD rendering, or ClearType) in this build of the library. */ - /* */ - /* Note that this feature is covered by several Microsoft patents */ - /* and should not be activated in any default build of the library. */ - /* */ - /* This macro has no impact on the FreeType API, only on its */ - /* _implementation_. For example, using FT_RENDER_MODE_LCD when calling */ - /* FT_Render_Glyph still generates a bitmap that is 3 times wider than */ - /* the original size in case this macro isn't defined; however, each */ - /* triplet of subpixels has R=G=B. */ - /* */ - /* This is done to allow FreeType clients to run unmodified, forcing */ - /* them to display normal gray-level anti-aliased glyphs. */ - /* */ -/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ - - - /*************************************************************************/ - /* */ - /* Many compilers provide a non-ANSI 64-bit data type that can be used */ - /* by FreeType to speed up some computations. However, this will create */ - /* some problems when compiling the library in strict ANSI mode. */ - /* */ - /* For this reason, the use of 64-bit integers is normally disabled when */ - /* the __STDC__ macro is defined. You can however disable this by */ - /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here. */ - /* */ - /* For most compilers, this will only create compilation warnings when */ - /* building the library. */ - /* */ - /* ObNote: The compiler-specific 64-bit integers are detected in the */ - /* file `ftconfig.h' either statically or through the */ - /* `configure' script on supported platforms. */ - /* */ -#undef FT_CONFIG_OPTION_FORCE_INT64 - - - /*************************************************************************/ - /* */ - /* If this macro is defined, do not try to use an assembler version of */ - /* performance-critical functions (e.g. FT_MulFix). You should only do */ - /* that to verify that the assembler function works properly, or to */ - /* execute benchmark tests of the various implementations. */ -/* #define FT_CONFIG_OPTION_NO_ASSEMBLER */ - - - /*************************************************************************/ - /* */ - /* If this macro is defined, try to use an inlined assembler version of */ - /* the `FT_MulFix' function, which is a `hotspot' when loading and */ - /* hinting glyphs, and which should be executed as fast as possible. */ - /* */ - /* Note that if your compiler or CPU is not supported, this will default */ - /* to the standard and portable implementation found in `ftcalc.c'. */ - /* */ -#define FT_CONFIG_OPTION_INLINE_MULFIX - - - /*************************************************************************/ - /* */ - /* LZW-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `compress' program. This is mostly used to parse many of the PCF */ - /* files that come with various X11 distributions. The implementation */ - /* uses NetBSD's `zopen' to partially uncompress the file on the fly */ - /* (see src/lzw/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -#define FT_CONFIG_OPTION_USE_LZW - - - /*************************************************************************/ - /* */ - /* Gzip-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `gzip' program. This is mostly used to parse many of the PCF files */ - /* that come with XFree86. The implementation uses `zlib' to */ - /* partially uncompress the file on the fly (see src/gzip/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. See also */ - /* the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below. */ - /* */ -#define FT_CONFIG_OPTION_USE_ZLIB - - - /*************************************************************************/ - /* */ - /* ZLib library selection */ - /* */ - /* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */ - /* It allows FreeType's `ftgzip' component to link to the system's */ - /* installation of the ZLib library. This is useful on systems like */ - /* Unix or VMS where it generally is already available. */ - /* */ - /* If you let it undefined, the component will use its own copy */ - /* of the zlib sources instead. These have been modified to be */ - /* included directly within the component and *not* export external */ - /* function names. This allows you to link any program with FreeType */ - /* _and_ ZLib without linking conflicts. */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ - - - /*************************************************************************/ - /* */ - /* Bzip2-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `bzip2' program. This is mostly used to parse many of the PCF */ - /* files that come with XFree86. The implementation uses `libbz2' to */ - /* partially uncompress the file on the fly (see src/bzip2/ftbzip2.c). */ - /* Contrary to gzip, bzip2 currently is not included and need to use */ - /* the system available bzip2 implementation. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -/* #define FT_CONFIG_OPTION_USE_BZIP2 */ - - - /*************************************************************************/ - /* */ - /* Define to disable the use of file stream functions and types, FILE, */ - /* fopen() etc. Enables the use of smaller system libraries on embedded */ - /* systems that have multiple system libraries, some with or without */ - /* file stream support, in the cases where file stream support is not */ - /* necessary such as memory loading of font files. */ - /* */ -/* #define FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT */ - - - /*************************************************************************/ - /* */ - /* PNG bitmap support. */ - /* */ - /* FreeType now handles loading color bitmap glyphs in the PNG format. */ - /* This requires help from the external libpng library. Uncompressed */ - /* color bitmaps do not need any external libraries and will be */ - /* supported regardless of this configuration. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -/* #define FT_CONFIG_OPTION_USE_PNG */ - - - /*************************************************************************/ - /* */ - /* HarfBuzz support. */ - /* */ - /* FreeType uses the HarfBuzz library to improve auto-hinting of */ - /* OpenType fonts. If available, many glyphs not directly addressable */ - /* by a font's character map will be hinted also. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -/* #define FT_CONFIG_OPTION_USE_HARFBUZZ */ - - - /*************************************************************************/ - /* */ - /* DLL export compilation */ - /* */ - /* When compiling FreeType as a DLL, some systems/compilers need a */ - /* special keyword in front OR after the return type of function */ - /* declarations. */ - /* */ - /* Two macros are used within the FreeType source code to define */ - /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */ - /* */ - /* FT_EXPORT( return_type ) */ - /* */ - /* is used in a function declaration, as in */ - /* */ - /* FT_EXPORT( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ); */ - /* */ - /* */ - /* FT_EXPORT_DEF( return_type ) */ - /* */ - /* is used in a function definition, as in */ - /* */ - /* FT_EXPORT_DEF( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ) */ - /* { */ - /* ... some code ... */ - /* return FT_Err_Ok; */ - /* } */ - /* */ - /* You can provide your own implementation of FT_EXPORT and */ - /* FT_EXPORT_DEF here if you want. If you leave them undefined, they */ - /* will be later automatically defined as `extern return_type' to */ - /* allow normal compilation. */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_EXPORT(x) extern x */ -/* #define FT_EXPORT_DEF(x) x */ - - - /*************************************************************************/ - /* */ - /* Glyph Postscript Names handling */ - /* */ - /* By default, FreeType 2 is compiled with the `psnames' module. This */ - /* module is in charge of converting a glyph name string into a */ - /* Unicode value, or return a Macintosh standard glyph name for the */ - /* use with the TrueType `post' table. */ - /* */ - /* Undefine this macro if you do not want `psnames' compiled in your */ - /* build of FreeType. This has the following effects: */ - /* */ - /* - The TrueType driver will provide its own set of glyph names, */ - /* if you build it to support postscript names in the TrueType */ - /* `post' table. */ - /* */ - /* - The Type 1 driver will not be able to synthesize a Unicode */ - /* charmap out of the glyphs found in the fonts. */ - /* */ - /* You would normally undefine this configuration macro when building */ - /* a version of FreeType that doesn't contain a Type 1 or CFF driver. */ - /* */ -#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES - - - /*************************************************************************/ - /* */ - /* Postscript Names to Unicode Values support */ - /* */ - /* By default, FreeType 2 is built with the `PSNames' module compiled */ - /* in. Among other things, the module is used to convert a glyph name */ - /* into a Unicode value. This is especially useful in order to */ - /* synthesize on the fly a Unicode charmap from the CFF/Type 1 driver */ - /* through a big table named the `Adobe Glyph List' (AGL). */ - /* */ - /* Undefine this macro if you do not want the Adobe Glyph List */ - /* compiled in your `PSNames' module. The Type 1 driver will not be */ - /* able to synthesize a Unicode charmap out of the glyphs found in the */ - /* fonts. */ - /* */ -#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST - - - /*************************************************************************/ - /* */ - /* Support for Mac fonts */ - /* */ - /* Define this macro if you want support for outline fonts in Mac */ - /* format (mac dfont, mac resource, macbinary containing a mac */ - /* resource) on non-Mac platforms. */ - /* */ - /* Note that the `FOND' resource isn't checked. */ - /* */ -#define FT_CONFIG_OPTION_MAC_FONTS - - - /*************************************************************************/ - /* */ - /* Guessing methods to access embedded resource forks */ - /* */ - /* Enable extra Mac fonts support on non-Mac platforms (e.g. */ - /* GNU/Linux). */ - /* */ - /* Resource forks which include fonts data are stored sometimes in */ - /* locations which users or developers don't expected. In some cases, */ - /* resource forks start with some offset from the head of a file. In */ - /* other cases, the actual resource fork is stored in file different */ - /* from what the user specifies. If this option is activated, */ - /* FreeType tries to guess whether such offsets or different file */ - /* names must be used. */ - /* */ - /* Note that normal, direct access of resource forks is controlled via */ - /* the FT_CONFIG_OPTION_MAC_FONTS option. */ - /* */ -#ifdef FT_CONFIG_OPTION_MAC_FONTS -#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK -#endif - - - /*************************************************************************/ - /* */ - /* Allow the use of FT_Incremental_Interface to load typefaces that */ - /* contain no glyph data, but supply it via a callback function. */ - /* This is required by clients supporting document formats which */ - /* supply font data incrementally as the document is parsed, such */ - /* as the Ghostscript interpreter for the PostScript language. */ - /* */ -#define FT_CONFIG_OPTION_INCREMENTAL - - - /*************************************************************************/ - /* */ - /* The size in bytes of the render pool used by the scan-line converter */ - /* to do all of its work. */ - /* */ -#define FT_RENDER_POOL_SIZE 16384L - - - /*************************************************************************/ - /* */ - /* FT_MAX_MODULES */ - /* */ - /* The maximum number of modules that can be registered in a single */ - /* FreeType library object. 32 is the default. */ - /* */ -#define FT_MAX_MODULES 32 - - - /*************************************************************************/ - /* */ - /* Debug level */ - /* */ - /* FreeType can be compiled in debug or trace mode. In debug mode, */ - /* errors are reported through the `ftdebug' component. In trace */ - /* mode, additional messages are sent to the standard output during */ - /* execution. */ - /* */ - /* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */ - /* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */ - /* */ - /* Don't define any of these macros to compile in `release' mode! */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_DEBUG_LEVEL_ERROR */ -/* #define FT_DEBUG_LEVEL_TRACE */ - - - /*************************************************************************/ - /* */ - /* Autofitter debugging */ - /* */ - /* If FT_DEBUG_AUTOFIT is defined, FreeType provides some means to */ - /* control the autofitter behaviour for debugging purposes with global */ - /* boolean variables (consequently, you should *never* enable this */ - /* while compiling in `release' mode): */ - /* */ - /* _af_debug_disable_horz_hints */ - /* _af_debug_disable_vert_hints */ - /* _af_debug_disable_blue_hints */ - /* */ - /* Additionally, the following functions provide dumps of various */ - /* internal autofit structures to stdout (using `printf'): */ - /* */ - /* af_glyph_hints_dump_points */ - /* af_glyph_hints_dump_segments */ - /* af_glyph_hints_dump_edges */ - /* af_glyph_hints_get_num_segments */ - /* af_glyph_hints_get_segment_offset */ - /* */ - /* As an argument, they use another global variable: */ - /* */ - /* _af_debug_hints */ - /* */ - /* Please have a look at the `ftgrid' demo program to see how those */ - /* variables and macros should be used. */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_DEBUG_AUTOFIT */ - - - /*************************************************************************/ - /* */ - /* Memory Debugging */ - /* */ - /* FreeType now comes with an integrated memory debugger that is */ - /* capable of detecting simple errors like memory leaks or double */ - /* deletes. To compile it within your build of the library, you */ - /* should define FT_DEBUG_MEMORY here. */ - /* */ - /* Note that the memory debugger is only activated at runtime when */ - /* when the _environment_ variable `FT2_DEBUG_MEMORY' is defined also! */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -/* #define FT_DEBUG_MEMORY */ - - - /*************************************************************************/ - /* */ - /* Module errors */ - /* */ - /* If this macro is set (which is _not_ the default), the higher byte */ - /* of an error code gives the module in which the error has occurred, */ - /* while the lower byte is the real error code. */ - /* */ - /* Setting this macro makes sense for debugging purposes only, since */ - /* it would break source compatibility of certain programs that use */ - /* FreeType 2. */ - /* */ - /* More details can be found in the files ftmoderr.h and fterrors.h. */ - /* */ -#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS - - - /*************************************************************************/ - /* */ - /* Position Independent Code */ - /* */ - /* If this macro is set (which is _not_ the default), FreeType2 will */ - /* avoid creating constants that require address fixups. Instead the */ - /* constants will be moved into a struct and additional intialization */ - /* code will be used. */ - /* */ - /* Setting this macro is needed for systems that prohibit address */ - /* fixups, such as BREW. */ - /* */ -/* #define FT_CONFIG_OPTION_PIC */ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** S F N T D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support */ - /* embedded bitmaps in all formats using the SFNT module (namely */ - /* TrueType & OpenType). */ - /* */ -#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to */ - /* load and enumerate the glyph Postscript names in a TrueType or */ - /* OpenType file. */ - /* */ - /* Note that when you do not compile the `PSNames' module by undefining */ - /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will */ - /* contain additional code used to read the PS Names table from a font. */ - /* */ - /* (By default, the module uses `PSNames' to extract glyph names.) */ - /* */ -#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to */ - /* access the internal name table in a SFNT-based format like TrueType */ - /* or OpenType. The name table contains various strings used to */ - /* describe the font, like family name, copyright, version, etc. It */ - /* does not contain any glyph name though. */ - /* */ - /* Accessing SFNT names is done through the functions declared in */ - /* `ftsnames.h'. */ - /* */ -#define TT_CONFIG_OPTION_SFNT_NAMES - - - /*************************************************************************/ - /* */ - /* TrueType CMap support */ - /* */ - /* Here you can fine-tune which TrueType CMap table format shall be */ - /* supported. */ -#define TT_CONFIG_CMAP_FORMAT_0 -#define TT_CONFIG_CMAP_FORMAT_2 -#define TT_CONFIG_CMAP_FORMAT_4 -#define TT_CONFIG_CMAP_FORMAT_6 -#define TT_CONFIG_CMAP_FORMAT_8 -#define TT_CONFIG_CMAP_FORMAT_10 -#define TT_CONFIG_CMAP_FORMAT_12 -#define TT_CONFIG_CMAP_FORMAT_13 -#define TT_CONFIG_CMAP_FORMAT_14 - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** T R U E T Y P E D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */ - /* a bytecode interpreter in the TrueType driver. */ - /* */ - /* By undefining this, you will only compile the code necessary to load */ - /* TrueType glyphs without hinting. */ - /* */ - /* Do not #undef this macro here, since the build system might */ - /* define it for certain configurations only. */ - /* */ -#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_SUBPIXEL_HINTING if you want to compile */ - /* EXPERIMENTAL subpixel hinting support into the TrueType driver. This */ - /* replaces the native TrueType hinting mechanism when anything but */ - /* FT_RENDER_MODE_MONO is requested. */ - /* */ - /* Enabling this causes the TrueType driver to ignore instructions under */ - /* certain conditions. This is done in accordance with the guide here, */ - /* with some minor differences: */ - /* */ - /* http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */ - /* */ - /* By undefining this, you only compile the code necessary to hint */ - /* TrueType glyphs with native TT hinting. */ - /* */ - /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be */ - /* defined. */ - /* */ -/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING */ - - - /*************************************************************************/ - /* */ - /* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */ - /* of the TrueType bytecode interpreter is used that doesn't implement */ - /* any of the patented opcodes and algorithms. The patents related to */ - /* TrueType hinting have expired worldwide since May 2010; this option */ - /* is now deprecated. */ - /* */ - /* Note that the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* */ - /* if you define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, */ - /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */ - /* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */ - /* */ - /* This macro is only useful for a small number of font files (mostly */ - /* for Asian scripts) that require bytecode interpretation to properly */ - /* load glyphs. For all other fonts, this produces unpleasant results, */ - /* thus the unpatented interpreter is never used to load glyphs from */ - /* TrueType fonts unless one of the following two options is used. */ - /* */ - /* - The unpatented interpreter is explicitly activated by the user */ - /* through the FT_PARAM_TAG_UNPATENTED_HINTING parameter tag */ - /* when opening the FT_Face. */ - /* */ - /* - FreeType detects that the FT_Face corresponds to one of the */ - /* `trick' fonts (e.g., `Mingliu') it knows about. The font engine */ - /* contains a hard-coded list of font names and other matching */ - /* parameters (see function `tt_face_init' in file */ - /* `src/truetype/ttobjs.c'). */ - /* */ - /* Here a sample code snippet for using FT_PARAM_TAG_UNPATENTED_HINTING. */ - /* */ - /* { */ - /* FT_Parameter parameter; */ - /* FT_Open_Args open_args; */ - /* */ - /* */ - /* parameter.tag = FT_PARAM_TAG_UNPATENTED_HINTING; */ - /* */ - /* open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; */ - /* open_args.pathname = my_font_pathname; */ - /* open_args.num_params = 1; */ - /* open_args.params = ¶meter; */ - /* */ - /* error = FT_Open_Face( library, &open_args, index, &face ); */ - /* ... */ - /* } */ - /* */ -/* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ - /* TrueType glyph loader to use Apple's definition of how to handle */ - /* component offsets in composite glyphs. */ - /* */ - /* Apple and MS disagree on the default behavior of component offsets */ - /* in composites. Apple says that they should be scaled by the scaling */ - /* factors in the transformation matrix (roughly, it's more complex) */ - /* while MS says they should not. OpenType defines two bits in the */ - /* composite flags array which can be used to disambiguate, but old */ - /* fonts will not have them. */ - /* */ - /* http://www.microsoft.com/typography/otspec/glyf.htm */ - /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html */ - /* */ -#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_GX_VAR_SUPPORT if you want to include */ - /* support for Apple's distortable font technology (fvar, gvar, cvar, */ - /* and avar tables). This has many similarities to Type 1 Multiple */ - /* Masters support. */ - /* */ -#define TT_CONFIG_OPTION_GX_VAR_SUPPORT - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_BDF if you want to include support for */ - /* an embedded `BDF ' table within SFNT-based bitmap formats. */ - /* */ -#define TT_CONFIG_OPTION_BDF - - - /*************************************************************************/ - /* */ - /* Option TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES controls the maximum */ - /* number of bytecode instructions executed for a single run of the */ - /* bytecode interpreter, needed to prevent infinite loops. You don't */ - /* want to change this except for very special situations (e.g., making */ - /* a library fuzzer spend less time to handle broken fonts). */ - /* */ - /* It is not expected that this value is ever modified by a configuring */ - /* script; instead, it gets surrounded with #ifndef ... #endif so that */ - /* the value can be set as a preprocessor option on the compiler's */ - /* command line. */ - /* */ -#ifndef TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES -#define TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES 1000000L -#endif - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* T1_MAX_DICT_DEPTH is the maximum depth of nest dictionaries and */ - /* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is */ - /* required. */ - /* */ -#define T1_MAX_DICT_DEPTH 5 - - - /*************************************************************************/ - /* */ - /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ - /* calls during glyph loading. */ - /* */ -#define T1_MAX_SUBRS_CALLS 16 - - - /*************************************************************************/ - /* */ - /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ - /* minimum of 16 is required. */ - /* */ - /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */ - /* */ -#define T1_MAX_CHARSTRINGS_OPERANDS 256 - - - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of `t1afm', which is in charge of reading Type 1 AFM */ - /* files into an existing face. Note that if set, the T1 driver will be */ - /* unable to produce kerning distances. */ - /* */ -#undef T1_CONFIG_OPTION_NO_AFM - - - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of the Multiple Masters font support in the Type 1 */ - /* driver. */ - /* */ -#undef T1_CONFIG_OPTION_NO_MM_SUPPORT - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** C F F D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Using CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} it is */ - /* possible to set up the default values of the four control points that */ - /* define the stem darkening behaviour of the (new) CFF engine. For */ - /* more details please read the documentation of the */ - /* `darkening-parameters' property of the cff driver module (file */ - /* `ftcffdrv.h'), which allows the control at run-time. */ - /* */ - /* Do *not* undefine these macros! */ - /* */ -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 500 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 400 - -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 1000 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 275 - -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 1667 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 275 - -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 2333 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 0 - - - /*************************************************************************/ - /* */ - /* CFF_CONFIG_OPTION_OLD_ENGINE controls whether the pre-Adobe CFF */ - /* engine gets compiled into FreeType. If defined, it is possible to */ - /* switch between the two engines using the `hinting-engine' property of */ - /* the cff driver module. */ - /* */ -/* #define CFF_CONFIG_OPTION_OLD_ENGINE */ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** A U T O F I T M O D U L E C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Compile autofit module with CJK (Chinese, Japanese, Korean) script */ - /* support. */ - /* */ -#define AF_CONFIG_OPTION_CJK - - /*************************************************************************/ - /* */ - /* Compile autofit module with Indic script support. */ - /* */ -#define AF_CONFIG_OPTION_INDIC - - /*************************************************************************/ - /* */ - /* Compile autofit module with warp hinting. The idea of the warping */ - /* code is to slightly scale and shift a glyph within a single dimension */ - /* so that as much of its segments are aligned (more or less) on the */ - /* grid. To find out the optimal scaling and shifting value, various */ - /* parameter combinations are tried and scored. */ - /* */ - /* This experimental option is active only if the rendering mode is */ - /* FT_RENDER_MODE_LIGHT; you can switch warping on and off with the */ - /* `warping' property of the auto-hinter (see file `ftautoh.h' for more */ - /* information; by default it is switched off). */ - /* */ -#define AF_CONFIG_OPTION_USE_WARPER - - /* */ - - - /* - * This macro is obsolete. Support has been removed in FreeType - * version 2.5. - */ -/* #define FT_CONFIG_OPTION_OLD_INTERNALS */ - - - /* - * This macro is defined if either unpatented or native TrueType - * hinting is requested by the definitions above. - */ -#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER -#define TT_USE_BYTECODE_INTERPRETER -#undef TT_CONFIG_OPTION_UNPATENTED_HINTING -#elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING -#define TT_USE_BYTECODE_INTERPRETER -#endif - - - /* - * Check CFF darkening parameters. The checks are the same as in function - * `cff_property_set' in file `cffdrivr.c'. - */ -#if CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 < 0 || \ - \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 < 0 || \ - \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 > \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 > \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 > \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 || \ - \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500 -#error "Invalid CFF darkening parameters!" -#endif - -FT_END_HEADER - - -#endif /* __FTOPTION_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/config/ftstdlib.h b/lib/osx/include/freetype/config/ftstdlib.h deleted file mode 100644 index 4b471d4..0000000 --- a/lib/osx/include/freetype/config/ftstdlib.h +++ /dev/null @@ -1,174 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftstdlib.h */ -/* */ -/* ANSI-specific library and header configuration file (specification */ -/* only). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file is used to group all #includes to the ANSI C library that */ - /* FreeType normally requires. It also defines macros to rename the */ - /* standard functions within the FreeType source code. */ - /* */ - /* Load a file which defines __FTSTDLIB_H__ before this one to override */ - /* it. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTSTDLIB_H__ -#define __FTSTDLIB_H__ - - -#include <stddef.h> - -#define ft_ptrdiff_t ptrdiff_t - - - /**********************************************************************/ - /* */ - /* integer limits */ - /* */ - /* UINT_MAX and ULONG_MAX are used to automatically compute the size */ - /* of `int' and `long' in bytes at compile-time. So far, this works */ - /* for all platforms the library has been tested on. */ - /* */ - /* Note that on the extremely rare platforms that do not provide */ - /* integer types that are _exactly_ 16 and 32 bits wide (e.g. some */ - /* old Crays where `int' is 36 bits), we do not make any guarantee */ - /* about the correct behaviour of FT2 with all fonts. */ - /* */ - /* In these case, `ftconfig.h' will refuse to compile anyway with a */ - /* message like `couldn't find 32-bit type' or something similar. */ - /* */ - /**********************************************************************/ - - -#include <limits.h> - -#define FT_CHAR_BIT CHAR_BIT -#define FT_USHORT_MAX USHRT_MAX -#define FT_INT_MAX INT_MAX -#define FT_INT_MIN INT_MIN -#define FT_UINT_MAX UINT_MAX -#define FT_LONG_MAX LONG_MAX -#define FT_ULONG_MAX ULONG_MAX - - - /**********************************************************************/ - /* */ - /* character and string processing */ - /* */ - /**********************************************************************/ - - -#include <string.h> - -#define ft_memchr memchr -#define ft_memcmp memcmp -#define ft_memcpy memcpy -#define ft_memmove memmove -#define ft_memset memset -#define ft_strcat strcat -#define ft_strcmp strcmp -#define ft_strcpy strcpy -#define ft_strlen strlen -#define ft_strncmp strncmp -#define ft_strncpy strncpy -#define ft_strrchr strrchr -#define ft_strstr strstr - - - /**********************************************************************/ - /* */ - /* file handling */ - /* */ - /**********************************************************************/ - - -#include <stdio.h> - -#define FT_FILE FILE -#define ft_fclose fclose -#define ft_fopen fopen -#define ft_fread fread -#define ft_fseek fseek -#define ft_ftell ftell -#define ft_sprintf sprintf - - - /**********************************************************************/ - /* */ - /* sorting */ - /* */ - /**********************************************************************/ - - -#include <stdlib.h> - -#define ft_qsort qsort - - - /**********************************************************************/ - /* */ - /* memory allocation */ - /* */ - /**********************************************************************/ - - -#define ft_scalloc calloc -#define ft_sfree free -#define ft_smalloc malloc -#define ft_srealloc realloc - - - /**********************************************************************/ - /* */ - /* miscellaneous */ - /* */ - /**********************************************************************/ - - -#define ft_atol atol - - - /**********************************************************************/ - /* */ - /* execution control */ - /* */ - /**********************************************************************/ - - -#include <setjmp.h> - -#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */ - /* jmp_buf is defined as a macro */ - /* on certain platforms */ - -#define ft_longjmp longjmp -#define ft_setjmp( b ) setjmp( *(ft_jmp_buf*) &(b) ) /* same thing here */ - - - /* the following is only used for debugging purposes, i.e., if */ - /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */ - -#include <stdarg.h> - - -#endif /* __FTSTDLIB_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/freetype.h b/lib/osx/include/freetype/freetype.h deleted file mode 100644 index 41379ea..0000000 --- a/lib/osx/include/freetype/freetype.h +++ /dev/null @@ -1,4284 +0,0 @@ -/***************************************************************************/ -/* */ -/* freetype.h */ -/* */ -/* FreeType high-level API and common types (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FREETYPE_H__ -#define __FREETYPE_H__ - - -#ifndef FT_FREETYPE_H -#error "`ft2build.h' hasn't been included yet!" -#error "Please always use macros to include FreeType header files." -#error "Example:" -#error " #include <ft2build.h>" -#error " #include FT_FREETYPE_H" -#endif - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_TYPES_H -#include FT_ERRORS_H - - -FT_BEGIN_HEADER - - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* header_inclusion */ - /* */ - /* <Title> */ - /* FreeType's header inclusion scheme */ - /* */ - /* <Abstract> */ - /* How client applications should include FreeType header files. */ - /* */ - /* <Description> */ - /* To be as flexible as possible (and for historical reasons), */ - /* FreeType uses a very special inclusion scheme to load header */ - /* files, for example */ - /* */ - /* { */ - /* #include <ft2build.h> */ - /* */ - /* #include FT_FREETYPE_H */ - /* #include FT_OUTLINE_H */ - /* } */ - /* */ - /* A compiler and its preprocessor only needs an include path to find */ - /* the file `ft2build.h'; the exact locations and names of the other */ - /* FreeType header files are hidden by preprocessor macro names, */ - /* loaded by `ft2build.h'. The API documentation always gives the */ - /* header macro name needed for a particular function. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* user_allocation */ - /* */ - /* <Title> */ - /* User allocation */ - /* */ - /* <Abstract> */ - /* How client applications should allocate FreeType data structures. */ - /* */ - /* <Description> */ - /* FreeType assumes that structures allocated by the user and passed */ - /* as arguments are zeroed out except for the actual data. In other */ - /* words, it is recommended to use `calloc' (or variants of it) */ - /* instead of `malloc' for allocation. */ - /* */ - /*************************************************************************/ - - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* B A S I C T Y P E S */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* base_interface */ - /* */ - /* <Title> */ - /* Base Interface */ - /* */ - /* <Abstract> */ - /* The FreeType~2 base font interface. */ - /* */ - /* <Description> */ - /* This section describes the most important public high-level API */ - /* functions of FreeType~2. */ - /* */ - /* <Order> */ - /* FT_Library */ - /* FT_Face */ - /* FT_Size */ - /* FT_GlyphSlot */ - /* FT_CharMap */ - /* FT_Encoding */ - /* FT_ENC_TAG */ - /* */ - /* FT_FaceRec */ - /* */ - /* FT_FACE_FLAG_SCALABLE */ - /* FT_FACE_FLAG_FIXED_SIZES */ - /* FT_FACE_FLAG_FIXED_WIDTH */ - /* FT_FACE_FLAG_HORIZONTAL */ - /* FT_FACE_FLAG_VERTICAL */ - /* FT_FACE_FLAG_COLOR */ - /* FT_FACE_FLAG_SFNT */ - /* FT_FACE_FLAG_CID_KEYED */ - /* FT_FACE_FLAG_TRICKY */ - /* FT_FACE_FLAG_KERNING */ - /* FT_FACE_FLAG_MULTIPLE_MASTERS */ - /* FT_FACE_FLAG_GLYPH_NAMES */ - /* FT_FACE_FLAG_EXTERNAL_STREAM */ - /* FT_FACE_FLAG_HINTER */ - /* FT_FACE_FLAG_TRICKY */ - /* */ - /* FT_HAS_HORIZONTAL */ - /* FT_HAS_VERTICAL */ - /* FT_HAS_KERNING */ - /* FT_HAS_FIXED_SIZES */ - /* FT_HAS_GLYPH_NAMES */ - /* FT_HAS_MULTIPLE_MASTERS */ - /* FT_HAS_COLOR */ - /* */ - /* FT_IS_SFNT */ - /* FT_IS_SCALABLE */ - /* FT_IS_FIXED_WIDTH */ - /* FT_IS_CID_KEYED */ - /* FT_IS_TRICKY */ - /* */ - /* FT_STYLE_FLAG_BOLD */ - /* FT_STYLE_FLAG_ITALIC */ - /* */ - /* FT_SizeRec */ - /* FT_Size_Metrics */ - /* */ - /* FT_GlyphSlotRec */ - /* FT_Glyph_Metrics */ - /* FT_SubGlyph */ - /* */ - /* FT_Bitmap_Size */ - /* */ - /* FT_Init_FreeType */ - /* FT_Done_FreeType */ - /* */ - /* FT_New_Face */ - /* FT_Done_Face */ - /* FT_Reference_Face */ - /* FT_New_Memory_Face */ - /* FT_Open_Face */ - /* FT_Open_Args */ - /* FT_Parameter */ - /* FT_Attach_File */ - /* FT_Attach_Stream */ - /* */ - /* FT_Set_Char_Size */ - /* FT_Set_Pixel_Sizes */ - /* FT_Request_Size */ - /* FT_Select_Size */ - /* FT_Size_Request_Type */ - /* FT_Size_RequestRec */ - /* FT_Size_Request */ - /* FT_Set_Transform */ - /* FT_Load_Glyph */ - /* FT_Get_Char_Index */ - /* FT_Get_First_Char */ - /* FT_Get_Next_Char */ - /* FT_Get_Name_Index */ - /* FT_Load_Char */ - /* */ - /* FT_OPEN_MEMORY */ - /* FT_OPEN_STREAM */ - /* FT_OPEN_PATHNAME */ - /* FT_OPEN_DRIVER */ - /* FT_OPEN_PARAMS */ - /* */ - /* FT_LOAD_DEFAULT */ - /* FT_LOAD_RENDER */ - /* FT_LOAD_MONOCHROME */ - /* FT_LOAD_LINEAR_DESIGN */ - /* FT_LOAD_NO_SCALE */ - /* FT_LOAD_NO_HINTING */ - /* FT_LOAD_NO_BITMAP */ - /* FT_LOAD_NO_AUTOHINT */ - /* FT_LOAD_COLOR */ - /* */ - /* FT_LOAD_VERTICAL_LAYOUT */ - /* FT_LOAD_IGNORE_TRANSFORM */ - /* FT_LOAD_FORCE_AUTOHINT */ - /* FT_LOAD_NO_RECURSE */ - /* FT_LOAD_PEDANTIC */ - /* */ - /* FT_LOAD_TARGET_NORMAL */ - /* FT_LOAD_TARGET_LIGHT */ - /* FT_LOAD_TARGET_MONO */ - /* FT_LOAD_TARGET_LCD */ - /* FT_LOAD_TARGET_LCD_V */ - /* */ - /* FT_LOAD_TARGET_MODE */ - /* */ - /* FT_Render_Glyph */ - /* FT_Render_Mode */ - /* FT_Get_Kerning */ - /* FT_Kerning_Mode */ - /* FT_Get_Track_Kerning */ - /* FT_Get_Glyph_Name */ - /* FT_Get_Postscript_Name */ - /* */ - /* FT_CharMapRec */ - /* FT_Select_Charmap */ - /* FT_Set_Charmap */ - /* FT_Get_Charmap_Index */ - /* */ - /* FT_Get_FSType_Flags */ - /* FT_Get_SubGlyph_Info */ - /* */ - /* FT_Face_Internal */ - /* FT_Size_Internal */ - /* FT_Slot_Internal */ - /* */ - /* FT_FACE_FLAG_XXX */ - /* FT_STYLE_FLAG_XXX */ - /* FT_OPEN_XXX */ - /* FT_LOAD_XXX */ - /* FT_LOAD_TARGET_XXX */ - /* FT_SUBGLYPH_FLAG_XXX */ - /* FT_FSTYPE_XXX */ - /* */ - /* FT_HAS_FAST_GLYPHS */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Glyph_Metrics */ - /* */ - /* <Description> */ - /* A structure used to model the metrics of a single glyph. The */ - /* values are expressed in 26.6 fractional pixel format; if the flag */ - /* @FT_LOAD_NO_SCALE has been used while loading the glyph, values */ - /* are expressed in font units instead. */ - /* */ - /* <Fields> */ - /* width :: */ - /* The glyph's width. */ - /* */ - /* height :: */ - /* The glyph's height. */ - /* */ - /* horiBearingX :: */ - /* Left side bearing for horizontal layout. */ - /* */ - /* horiBearingY :: */ - /* Top side bearing for horizontal layout. */ - /* */ - /* horiAdvance :: */ - /* Advance width for horizontal layout. */ - /* */ - /* vertBearingX :: */ - /* Left side bearing for vertical layout. */ - /* */ - /* vertBearingY :: */ - /* Top side bearing for vertical layout. Larger positive values */ - /* mean further below the vertical glyph origin. */ - /* */ - /* vertAdvance :: */ - /* Advance height for vertical layout. Positive values mean the */ - /* glyph has a positive advance downward. */ - /* */ - /* <Note> */ - /* If not disabled with @FT_LOAD_NO_HINTING, the values represent */ - /* dimensions of the hinted glyph (in case hinting is applicable). */ - /* */ - /* Stroking a glyph with an outside border does not increase */ - /* `horiAdvance' or `vertAdvance'; you have to manually adjust these */ - /* values to account for the added width and height. */ - /* */ - typedef struct FT_Glyph_Metrics_ - { - FT_Pos width; - FT_Pos height; - - FT_Pos horiBearingX; - FT_Pos horiBearingY; - FT_Pos horiAdvance; - - FT_Pos vertBearingX; - FT_Pos vertBearingY; - FT_Pos vertAdvance; - - } FT_Glyph_Metrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Bitmap_Size */ - /* */ - /* <Description> */ - /* This structure models the metrics of a bitmap strike (i.e., a set */ - /* of glyphs for a given point size and resolution) in a bitmap font. */ - /* It is used for the `available_sizes' field of @FT_Face. */ - /* */ - /* <Fields> */ - /* height :: The vertical distance, in pixels, between two */ - /* consecutive baselines. It is always positive. */ - /* */ - /* width :: The average width, in pixels, of all glyphs in the */ - /* strike. */ - /* */ - /* size :: The nominal size of the strike in 26.6 fractional */ - /* points. This field is not very useful. */ - /* */ - /* x_ppem :: The horizontal ppem (nominal width) in 26.6 fractional */ - /* pixels. */ - /* */ - /* y_ppem :: The vertical ppem (nominal height) in 26.6 fractional */ - /* pixels. */ - /* */ - /* <Note> */ - /* Windows FNT: */ - /* The nominal size given in a FNT font is not reliable. Thus when */ - /* the driver finds it incorrect, it sets `size' to some calculated */ - /* values and sets `x_ppem' and `y_ppem' to the pixel width and */ - /* height given in the font, respectively. */ - /* */ - /* TrueType embedded bitmaps: */ - /* `size', `width', and `height' values are not contained in the */ - /* bitmap strike itself. They are computed from the global font */ - /* parameters. */ - /* */ - typedef struct FT_Bitmap_Size_ - { - FT_Short height; - FT_Short width; - - FT_Pos size; - - FT_Pos x_ppem; - FT_Pos y_ppem; - - } FT_Bitmap_Size; - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* O B J E C T C L A S S E S */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Library */ - /* */ - /* <Description> */ - /* A handle to a FreeType library instance. Each `library' is */ - /* completely independent from the others; it is the `root' of a set */ - /* of objects like fonts, faces, sizes, etc. */ - /* */ - /* It also embeds a memory manager (see @FT_Memory), as well as a */ - /* scan-line converter object (see @FT_Raster). */ - /* */ - /* In multi-threaded applications it is easiest to use one */ - /* `FT_Library' object per thread. In case this is too cumbersome, */ - /* a single `FT_Library' object across threads is possible also */ - /* (since FreeType version 2.5.6), as long as a mutex lock is used */ - /* around @FT_New_Face and @FT_Done_Face. */ - /* */ - /* <Note> */ - /* Library objects are normally created by @FT_Init_FreeType, and */ - /* destroyed with @FT_Done_FreeType. If you need reference-counting */ - /* (cf. @FT_Reference_Library), use @FT_New_Library and */ - /* @FT_Done_Library. */ - /* */ - typedef struct FT_LibraryRec_ *FT_Library; - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* module_management */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Module */ - /* */ - /* <Description> */ - /* A handle to a given FreeType module object. Each module can be a */ - /* font driver, a renderer, or anything else that provides services */ - /* to the formers. */ - /* */ - typedef struct FT_ModuleRec_* FT_Module; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Driver */ - /* */ - /* <Description> */ - /* A handle to a given FreeType font driver object. Each font driver */ - /* is a special module capable of creating faces from font files. */ - /* */ - typedef struct FT_DriverRec_* FT_Driver; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Renderer */ - /* */ - /* <Description> */ - /* A handle to a given FreeType renderer. A renderer is a special */ - /* module in charge of converting a glyph image to a bitmap, when */ - /* necessary. Each renderer supports a given glyph image format, and */ - /* one or more target surface depths. */ - /* */ - typedef struct FT_RendererRec_* FT_Renderer; - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* base_interface */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Face */ - /* */ - /* <Description> */ - /* A handle to a given typographic face object. A face object models */ - /* a given typeface, in a given style. */ - /* */ - /* <Note> */ - /* Each face object also owns a single @FT_GlyphSlot object, as well */ - /* as one or more @FT_Size objects. */ - /* */ - /* Use @FT_New_Face or @FT_Open_Face to create a new face object from */ - /* a given filepathname or a custom input stream. */ - /* */ - /* Use @FT_Done_Face to destroy it (along with its slot and sizes). */ - /* */ - /* An `FT_Face' object can only be safely used from one thread at a */ - /* time. Similarly, creation and destruction of `FT_Face' with the */ - /* same @FT_Library object can only be done from one thread at a */ - /* time. On the other hand, functions like @FT_Load_Glyph and its */ - /* siblings are thread-safe and do not need the lock to be held as */ - /* long as the same `FT_Face' object is not used from multiple */ - /* threads at the same time. */ - /* */ - /* <Also> */ - /* See @FT_FaceRec for the publicly accessible fields of a given face */ - /* object. */ - /* */ - typedef struct FT_FaceRec_* FT_Face; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Size */ - /* */ - /* <Description> */ - /* A handle to an object used to model a face scaled to a given */ - /* character size. */ - /* */ - /* <Note> */ - /* Each @FT_Face has an _active_ @FT_Size object that is used by */ - /* functions like @FT_Load_Glyph to determine the scaling */ - /* transformation that in turn is used to load and hint glyphs and */ - /* metrics. */ - /* */ - /* You can use @FT_Set_Char_Size, @FT_Set_Pixel_Sizes, */ - /* @FT_Request_Size or even @FT_Select_Size to change the content */ - /* (i.e., the scaling values) of the active @FT_Size. */ - /* */ - /* You can use @FT_New_Size to create additional size objects for a */ - /* given @FT_Face, but they won't be used by other functions until */ - /* you activate it through @FT_Activate_Size. Only one size can be */ - /* activated at any given time per face. */ - /* */ - /* <Also> */ - /* See @FT_SizeRec for the publicly accessible fields of a given size */ - /* object. */ - /* */ - typedef struct FT_SizeRec_* FT_Size; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_GlyphSlot */ - /* */ - /* <Description> */ - /* A handle to a given `glyph slot'. A slot is a container where it */ - /* is possible to load any of the glyphs contained in its parent */ - /* face. */ - /* */ - /* In other words, each time you call @FT_Load_Glyph or */ - /* @FT_Load_Char, the slot's content is erased by the new glyph data, */ - /* i.e., the glyph's metrics, its image (bitmap or outline), and */ - /* other control information. */ - /* */ - /* <Also> */ - /* See @FT_GlyphSlotRec for the publicly accessible glyph fields. */ - /* */ - typedef struct FT_GlyphSlotRec_* FT_GlyphSlot; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_CharMap */ - /* */ - /* <Description> */ - /* A handle to a given character map. A charmap is used to translate */ - /* character codes in a given encoding into glyph indexes for its */ - /* parent's face. Some font formats may provide several charmaps per */ - /* font. */ - /* */ - /* Each face object owns zero or more charmaps, but only one of them */ - /* can be `active' and used by @FT_Get_Char_Index or @FT_Load_Char. */ - /* */ - /* The list of available charmaps in a face is available through the */ - /* `face->num_charmaps' and `face->charmaps' fields of @FT_FaceRec. */ - /* */ - /* The currently active charmap is available as `face->charmap'. */ - /* You should call @FT_Set_Charmap to change it. */ - /* */ - /* <Note> */ - /* When a new face is created (either through @FT_New_Face or */ - /* @FT_Open_Face), the library looks for a Unicode charmap within */ - /* the list and automatically activates it. */ - /* */ - /* <Also> */ - /* See @FT_CharMapRec for the publicly accessible fields of a given */ - /* character map. */ - /* */ - typedef struct FT_CharMapRec_* FT_CharMap; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_ENC_TAG */ - /* */ - /* <Description> */ - /* This macro converts four-letter tags into an unsigned long. It is */ - /* used to define `encoding' identifiers (see @FT_Encoding). */ - /* */ - /* <Note> */ - /* Since many 16-bit compilers don't like 32-bit enumerations, you */ - /* should redefine this macro in case of problems to something like */ - /* this: */ - /* */ - /* { */ - /* #define FT_ENC_TAG( value, a, b, c, d ) value */ - /* } */ - /* */ - /* to get a simple enumeration without assigning special numbers. */ - /* */ - -#ifndef FT_ENC_TAG -#define FT_ENC_TAG( value, a, b, c, d ) \ - value = ( ( (FT_UInt32)(a) << 24 ) | \ - ( (FT_UInt32)(b) << 16 ) | \ - ( (FT_UInt32)(c) << 8 ) | \ - (FT_UInt32)(d) ) - -#endif /* FT_ENC_TAG */ - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Encoding */ - /* */ - /* <Description> */ - /* An enumeration used to specify character sets supported by */ - /* charmaps. Used in the @FT_Select_Charmap API function. */ - /* */ - /* <Note> */ - /* Despite the name, this enumeration lists specific character */ - /* repertories (i.e., charsets), and not text encoding methods (e.g., */ - /* UTF-8, UTF-16, etc.). */ - /* */ - /* Other encodings might be defined in the future. */ - /* */ - /* <Values> */ - /* FT_ENCODING_NONE :: */ - /* The encoding value~0 is reserved. */ - /* */ - /* FT_ENCODING_UNICODE :: */ - /* Corresponds to the Unicode character set. This value covers */ - /* all versions of the Unicode repertoire, including ASCII and */ - /* Latin-1. Most fonts include a Unicode charmap, but not all */ - /* of them. */ - /* */ - /* For example, if you want to access Unicode value U+1F028 (and */ - /* the font contains it), use value 0x1F028 as the input value for */ - /* @FT_Get_Char_Index. */ - /* */ - /* FT_ENCODING_MS_SYMBOL :: */ - /* Corresponds to the Microsoft Symbol encoding, used to encode */ - /* mathematical symbols and wingdings. For more information, see */ - /* `http://www.microsoft.com/typography/otspec/recom.htm', */ - /* `http://www.kostis.net/charsets/symbol.htm', and */ - /* `http://www.kostis.net/charsets/wingding.htm'. */ - /* */ - /* This encoding uses character codes from the PUA (Private Unicode */ - /* Area) in the range U+F020-U+F0FF. */ - /* */ - /* FT_ENCODING_SJIS :: */ - /* Corresponds to Japanese SJIS encoding. More info at */ - /* at `http://en.wikipedia.org/wiki/Shift_JIS'. */ - /* See note on multi-byte encodings below. */ - /* */ - /* FT_ENCODING_GB2312 :: */ - /* Corresponds to an encoding system for Simplified Chinese as used */ - /* used in mainland China. */ - /* */ - /* FT_ENCODING_BIG5 :: */ - /* Corresponds to an encoding system for Traditional Chinese as */ - /* used in Taiwan and Hong Kong. */ - /* */ - /* FT_ENCODING_WANSUNG :: */ - /* Corresponds to the Korean encoding system known as Wansung. */ - /* For more information see */ - /* `https://msdn.microsoft.com/en-US/goglobal/cc305154'. */ - /* */ - /* FT_ENCODING_JOHAB :: */ - /* The Korean standard character set (KS~C 5601-1992), which */ - /* corresponds to MS Windows code page 1361. This character set */ - /* includes all possible Hangeul character combinations. */ - /* */ - /* FT_ENCODING_ADOBE_LATIN_1 :: */ - /* Corresponds to a Latin-1 encoding as defined in a Type~1 */ - /* PostScript font. It is limited to 256 character codes. */ - /* */ - /* FT_ENCODING_ADOBE_STANDARD :: */ - /* Corresponds to the Adobe Standard encoding, as found in Type~1, */ - /* CFF, and OpenType/CFF fonts. It is limited to 256 character */ - /* codes. */ - /* */ - /* FT_ENCODING_ADOBE_EXPERT :: */ - /* Corresponds to the Adobe Expert encoding, as found in Type~1, */ - /* CFF, and OpenType/CFF fonts. It is limited to 256 character */ - /* codes. */ - /* */ - /* FT_ENCODING_ADOBE_CUSTOM :: */ - /* Corresponds to a custom encoding, as found in Type~1, CFF, and */ - /* OpenType/CFF fonts. It is limited to 256 character codes. */ - /* */ - /* FT_ENCODING_APPLE_ROMAN :: */ - /* Corresponds to the 8-bit Apple roman encoding. Many TrueType */ - /* and OpenType fonts contain a charmap for this encoding, since */ - /* older versions of Mac OS are able to use it. */ - /* */ - /* FT_ENCODING_OLD_LATIN_2 :: */ - /* This value is deprecated and was never used nor reported by */ - /* FreeType. Don't use or test for it. */ - /* */ - /* FT_ENCODING_MS_SJIS :: */ - /* Same as FT_ENCODING_SJIS. Deprecated. */ - /* */ - /* FT_ENCODING_MS_GB2312 :: */ - /* Same as FT_ENCODING_GB2312. Deprecated. */ - /* */ - /* FT_ENCODING_MS_BIG5 :: */ - /* Same as FT_ENCODING_BIG5. Deprecated. */ - /* */ - /* FT_ENCODING_MS_WANSUNG :: */ - /* Same as FT_ENCODING_WANSUNG. Deprecated. */ - /* */ - /* FT_ENCODING_MS_JOHAB :: */ - /* Same as FT_ENCODING_JOHAB. Deprecated. */ - /* */ - /* <Note> */ - /* By default, FreeType automatically synthesizes a Unicode charmap */ - /* for PostScript fonts, using their glyph names dictionaries. */ - /* However, it also reports the encodings defined explicitly in the */ - /* font file, for the cases when they are needed, with the Adobe */ - /* values as well. */ - /* */ - /* FT_ENCODING_NONE is set by the BDF and PCF drivers if the charmap */ - /* is neither Unicode nor ISO-8859-1 (otherwise it is set to */ - /* FT_ENCODING_UNICODE). Use @FT_Get_BDF_Charset_ID to find out */ - /* which encoding is really present. If, for example, the */ - /* `cs_registry' field is `KOI8' and the `cs_encoding' field is `R', */ - /* the font is encoded in KOI8-R. */ - /* */ - /* FT_ENCODING_NONE is always set (with a single exception) by the */ - /* winfonts driver. Use @FT_Get_WinFNT_Header and examine the */ - /* `charset' field of the @FT_WinFNT_HeaderRec structure to find out */ - /* which encoding is really present. For example, */ - /* @FT_WinFNT_ID_CP1251 (204) means Windows code page 1251 (for */ - /* Russian). */ - /* */ - /* FT_ENCODING_NONE is set if `platform_id' is @TT_PLATFORM_MACINTOSH */ - /* and `encoding_id' is not @TT_MAC_ID_ROMAN (otherwise it is set to */ - /* FT_ENCODING_APPLE_ROMAN). */ - /* */ - /* If `platform_id' is @TT_PLATFORM_MACINTOSH, use the function */ - /* @FT_Get_CMap_Language_ID to query the Mac language ID that may */ - /* be needed to be able to distinguish Apple encoding variants. See */ - /* */ - /* http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt */ - /* */ - /* to get an idea how to do that. Basically, if the language ID */ - /* is~0, don't use it, otherwise subtract 1 from the language ID. */ - /* Then examine `encoding_id'. If, for example, `encoding_id' is */ - /* @TT_MAC_ID_ROMAN and the language ID (minus~1) is */ - /* `TT_MAC_LANGID_GREEK', it is the Greek encoding, not Roman. */ - /* @TT_MAC_ID_ARABIC with `TT_MAC_LANGID_FARSI' means the Farsi */ - /* variant the Arabic encoding. */ - /* */ - typedef enum FT_Encoding_ - { - FT_ENC_TAG( FT_ENCODING_NONE, 0, 0, 0, 0 ), - - FT_ENC_TAG( FT_ENCODING_MS_SYMBOL, 's', 'y', 'm', 'b' ), - FT_ENC_TAG( FT_ENCODING_UNICODE, 'u', 'n', 'i', 'c' ), - - FT_ENC_TAG( FT_ENCODING_SJIS, 's', 'j', 'i', 's' ), - FT_ENC_TAG( FT_ENCODING_GB2312, 'g', 'b', ' ', ' ' ), - FT_ENC_TAG( FT_ENCODING_BIG5, 'b', 'i', 'g', '5' ), - FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ), - FT_ENC_TAG( FT_ENCODING_JOHAB, 'j', 'o', 'h', 'a' ), - - /* for backwards compatibility */ - FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS, - FT_ENCODING_MS_GB2312 = FT_ENCODING_GB2312, - FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5, - FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG, - FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB, - - FT_ENC_TAG( FT_ENCODING_ADOBE_STANDARD, 'A', 'D', 'O', 'B' ), - FT_ENC_TAG( FT_ENCODING_ADOBE_EXPERT, 'A', 'D', 'B', 'E' ), - FT_ENC_TAG( FT_ENCODING_ADOBE_CUSTOM, 'A', 'D', 'B', 'C' ), - FT_ENC_TAG( FT_ENCODING_ADOBE_LATIN_1, 'l', 'a', 't', '1' ), - - FT_ENC_TAG( FT_ENCODING_OLD_LATIN_2, 'l', 'a', 't', '2' ), - - FT_ENC_TAG( FT_ENCODING_APPLE_ROMAN, 'a', 'r', 'm', 'n' ) - - } FT_Encoding; - - - /* these constants are deprecated; use the corresponding `FT_Encoding' */ - /* values instead */ -#define ft_encoding_none FT_ENCODING_NONE -#define ft_encoding_unicode FT_ENCODING_UNICODE -#define ft_encoding_symbol FT_ENCODING_MS_SYMBOL -#define ft_encoding_latin_1 FT_ENCODING_ADOBE_LATIN_1 -#define ft_encoding_latin_2 FT_ENCODING_OLD_LATIN_2 -#define ft_encoding_sjis FT_ENCODING_SJIS -#define ft_encoding_gb2312 FT_ENCODING_GB2312 -#define ft_encoding_big5 FT_ENCODING_BIG5 -#define ft_encoding_wansung FT_ENCODING_WANSUNG -#define ft_encoding_johab FT_ENCODING_JOHAB - -#define ft_encoding_adobe_standard FT_ENCODING_ADOBE_STANDARD -#define ft_encoding_adobe_expert FT_ENCODING_ADOBE_EXPERT -#define ft_encoding_adobe_custom FT_ENCODING_ADOBE_CUSTOM -#define ft_encoding_apple_roman FT_ENCODING_APPLE_ROMAN - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_CharMapRec */ - /* */ - /* <Description> */ - /* The base charmap structure. */ - /* */ - /* <Fields> */ - /* face :: A handle to the parent face object. */ - /* */ - /* encoding :: An @FT_Encoding tag identifying the charmap. Use */ - /* this with @FT_Select_Charmap. */ - /* */ - /* platform_id :: An ID number describing the platform for the */ - /* following encoding ID. This comes directly from */ - /* the TrueType specification and should be emulated */ - /* for other formats. */ - /* */ - /* encoding_id :: A platform specific encoding number. This also */ - /* comes from the TrueType specification and should be */ - /* emulated similarly. */ - /* */ - typedef struct FT_CharMapRec_ - { - FT_Face face; - FT_Encoding encoding; - FT_UShort platform_id; - FT_UShort encoding_id; - - } FT_CharMapRec; - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* B A S E O B J E C T C L A S S E S */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Face_Internal */ - /* */ - /* <Description> */ - /* An opaque handle to an `FT_Face_InternalRec' structure, used to */ - /* model private data of a given @FT_Face object. */ - /* */ - /* This structure might change between releases of FreeType~2 and is */ - /* not generally available to client applications. */ - /* */ - typedef struct FT_Face_InternalRec_* FT_Face_Internal; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_FaceRec */ - /* */ - /* <Description> */ - /* FreeType root face class structure. A face object models a */ - /* typeface in a font file. */ - /* */ - /* <Fields> */ - /* num_faces :: The number of faces in the font file. Some */ - /* font formats can have multiple faces in */ - /* a font file. */ - /* */ - /* face_index :: This field holds two different values. */ - /* Bits 0-15 are the index of the face in the */ - /* font file (starting with value~0). They */ - /* are set to~0 if there is only one face in */ - /* the font file. */ - /* */ - /* Bits 16-30 are relevant to GX variation */ - /* fonts only, holding the named instance */ - /* index for the current face index (starting */ - /* with value~1; value~0 indicates font access */ - /* without GX variation data). For non-GX */ - /* fonts, bits 16-30 are ignored. If we have */ - /* the third named instance of face~4, say, */ - /* `face_index' is set to 0x00030004. */ - /* */ - /* Bit 31 is always zero (this is, */ - /* `face_index' is always a positive value). */ - /* */ - /* face_flags :: A set of bit flags that give important */ - /* information about the face; see */ - /* @FT_FACE_FLAG_XXX for the details. */ - /* */ - /* style_flags :: The lower 16~bits contain a set of bit */ - /* flags indicating the style of the face; see */ - /* @FT_STYLE_FLAG_XXX for the details. Bits */ - /* 16-30 hold the number of named instances */ - /* available for the current face if we have a */ - /* GX variation (sub)font. Bit 31 is always */ - /* zero (this is, `style_flags' is always a */ - /* positive value). */ - /* */ - /* num_glyphs :: The number of glyphs in the face. If the */ - /* face is scalable and has sbits (see */ - /* `num_fixed_sizes'), it is set to the number */ - /* of outline glyphs. */ - /* */ - /* For CID-keyed fonts, this value gives the */ - /* highest CID used in the font. */ - /* */ - /* family_name :: The face's family name. This is an ASCII */ - /* string, usually in English, that describes */ - /* the typeface's family (like `Times New */ - /* Roman', `Bodoni', `Garamond', etc). This */ - /* is a least common denominator used to list */ - /* fonts. Some formats (TrueType & OpenType) */ - /* provide localized and Unicode versions of */ - /* this string. Applications should use the */ - /* format specific interface to access them. */ - /* Can be NULL (e.g., in fonts embedded in a */ - /* PDF file). */ - /* */ - /* In case the font doesn't provide a specific */ - /* family name entry, FreeType tries to */ - /* synthesize one, deriving it from other name */ - /* entries. */ - /* */ - /* style_name :: The face's style name. This is an ASCII */ - /* string, usually in English, that describes */ - /* the typeface's style (like `Italic', */ - /* `Bold', `Condensed', etc). Not all font */ - /* formats provide a style name, so this field */ - /* is optional, and can be set to NULL. As */ - /* for `family_name', some formats provide */ - /* localized and Unicode versions of this */ - /* string. Applications should use the format */ - /* specific interface to access them. */ - /* */ - /* num_fixed_sizes :: The number of bitmap strikes in the face. */ - /* Even if the face is scalable, there might */ - /* still be bitmap strikes, which are called */ - /* `sbits' in that case. */ - /* */ - /* available_sizes :: An array of @FT_Bitmap_Size for all bitmap */ - /* strikes in the face. It is set to NULL if */ - /* there is no bitmap strike. */ - /* */ - /* num_charmaps :: The number of charmaps in the face. */ - /* */ - /* charmaps :: An array of the charmaps of the face. */ - /* */ - /* generic :: A field reserved for client uses. See the */ - /* @FT_Generic type description. */ - /* */ - /* bbox :: The font bounding box. Coordinates are */ - /* expressed in font units (see */ - /* `units_per_EM'). The box is large enough */ - /* to contain any glyph from the font. Thus, */ - /* `bbox.yMax' can be seen as the `maximum */ - /* ascender', and `bbox.yMin' as the `minimum */ - /* descender'. Only relevant for scalable */ - /* formats. */ - /* */ - /* Note that the bounding box might be off by */ - /* (at least) one pixel for hinted fonts. See */ - /* @FT_Size_Metrics for further discussion. */ - /* */ - /* units_per_EM :: The number of font units per EM square for */ - /* this face. This is typically 2048 for */ - /* TrueType fonts, and 1000 for Type~1 fonts. */ - /* Only relevant for scalable formats. */ - /* */ - /* ascender :: The typographic ascender of the face, */ - /* expressed in font units. For font formats */ - /* not having this information, it is set to */ - /* `bbox.yMax'. Only relevant for scalable */ - /* formats. */ - /* */ - /* descender :: The typographic descender of the face, */ - /* expressed in font units. For font formats */ - /* not having this information, it is set to */ - /* `bbox.yMin'. Note that this field is */ - /* usually negative. Only relevant for */ - /* scalable formats. */ - /* */ - /* height :: This value is the vertical distance */ - /* between two consecutive baselines, */ - /* expressed in font units. It is always */ - /* positive. Only relevant for scalable */ - /* formats. */ - /* */ - /* If you want the global glyph height, use */ - /* `ascender - descender'. */ - /* */ - /* max_advance_width :: The maximum advance width, in font units, */ - /* for all glyphs in this face. This can be */ - /* used to make word wrapping computations */ - /* faster. Only relevant for scalable */ - /* formats. */ - /* */ - /* max_advance_height :: The maximum advance height, in font units, */ - /* for all glyphs in this face. This is only */ - /* relevant for vertical layouts, and is set */ - /* to `height' for fonts that do not provide */ - /* vertical metrics. Only relevant for */ - /* scalable formats. */ - /* */ - /* underline_position :: The position, in font units, of the */ - /* underline line for this face. It is the */ - /* center of the underlining stem. Only */ - /* relevant for scalable formats. */ - /* */ - /* underline_thickness :: The thickness, in font units, of the */ - /* underline for this face. Only relevant for */ - /* scalable formats. */ - /* */ - /* glyph :: The face's associated glyph slot(s). */ - /* */ - /* size :: The current active size for this face. */ - /* */ - /* charmap :: The current active charmap for this face. */ - /* */ - /* <Note> */ - /* Fields may be changed after a call to @FT_Attach_File or */ - /* @FT_Attach_Stream. */ - /* */ - typedef struct FT_FaceRec_ - { - FT_Long num_faces; - FT_Long face_index; - - FT_Long face_flags; - FT_Long style_flags; - - FT_Long num_glyphs; - - FT_String* family_name; - FT_String* style_name; - - FT_Int num_fixed_sizes; - FT_Bitmap_Size* available_sizes; - - FT_Int num_charmaps; - FT_CharMap* charmaps; - - FT_Generic generic; - - /*# The following member variables (down to `underline_thickness') */ - /*# are only relevant to scalable outlines; cf. @FT_Bitmap_Size */ - /*# for bitmap fonts. */ - FT_BBox bbox; - - FT_UShort units_per_EM; - FT_Short ascender; - FT_Short descender; - FT_Short height; - - FT_Short max_advance_width; - FT_Short max_advance_height; - - FT_Short underline_position; - FT_Short underline_thickness; - - FT_GlyphSlot glyph; - FT_Size size; - FT_CharMap charmap; - - /*@private begin */ - - FT_Driver driver; - FT_Memory memory; - FT_Stream stream; - - FT_ListRec sizes_list; - - FT_Generic autohint; /* face-specific auto-hinter data */ - void* extensions; /* unused */ - - FT_Face_Internal internal; - - /*@private end */ - - } FT_FaceRec; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_FACE_FLAG_XXX */ - /* */ - /* <Description> */ - /* A list of bit flags used in the `face_flags' field of the */ - /* @FT_FaceRec structure. They inform client applications of */ - /* properties of the corresponding face. */ - /* */ - /* <Values> */ - /* FT_FACE_FLAG_SCALABLE :: */ - /* Indicates that the face contains outline glyphs. This doesn't */ - /* prevent bitmap strikes, i.e., a face can have both this and */ - /* and @FT_FACE_FLAG_FIXED_SIZES set. */ - /* */ - /* FT_FACE_FLAG_FIXED_SIZES :: */ - /* Indicates that the face contains bitmap strikes. See also the */ - /* `num_fixed_sizes' and `available_sizes' fields of @FT_FaceRec. */ - /* */ - /* FT_FACE_FLAG_FIXED_WIDTH :: */ - /* Indicates that the face contains fixed-width characters (like */ - /* Courier, Lucido, MonoType, etc.). */ - /* */ - /* FT_FACE_FLAG_SFNT :: */ - /* Indicates that the face uses the `sfnt' storage scheme. For */ - /* now, this means TrueType and OpenType. */ - /* */ - /* FT_FACE_FLAG_HORIZONTAL :: */ - /* Indicates that the face contains horizontal glyph metrics. This */ - /* should be set for all common formats. */ - /* */ - /* FT_FACE_FLAG_VERTICAL :: */ - /* Indicates that the face contains vertical glyph metrics. This */ - /* is only available in some formats, not all of them. */ - /* */ - /* FT_FACE_FLAG_KERNING :: */ - /* Indicates that the face contains kerning information. If set, */ - /* the kerning distance can be retrieved through the function */ - /* @FT_Get_Kerning. Otherwise the function always return the */ - /* vector (0,0). Note that FreeType doesn't handle kerning data */ - /* from the `GPOS' table (as present in some OpenType fonts). */ - /* */ - /* FT_FACE_FLAG_FAST_GLYPHS :: */ - /* THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. */ - /* */ - /* FT_FACE_FLAG_MULTIPLE_MASTERS :: */ - /* Indicates that the font contains multiple masters and is capable */ - /* of interpolating between them. See the multiple-masters */ - /* specific API for details. */ - /* */ - /* FT_FACE_FLAG_GLYPH_NAMES :: */ - /* Indicates that the font contains glyph names that can be */ - /* retrieved through @FT_Get_Glyph_Name. Note that some TrueType */ - /* fonts contain broken glyph name tables. Use the function */ - /* @FT_Has_PS_Glyph_Names when needed. */ - /* */ - /* FT_FACE_FLAG_EXTERNAL_STREAM :: */ - /* Used internally by FreeType to indicate that a face's stream was */ - /* provided by the client application and should not be destroyed */ - /* when @FT_Done_Face is called. Don't read or test this flag. */ - /* */ - /* FT_FACE_FLAG_HINTER :: */ - /* Set if the font driver has a hinting machine of its own. For */ - /* example, with TrueType fonts, it makes sense to use data from */ - /* the SFNT `gasp' table only if the native TrueType hinting engine */ - /* (with the bytecode interpreter) is available and active. */ - /* */ - /* FT_FACE_FLAG_CID_KEYED :: */ - /* Set if the font is CID-keyed. In that case, the font is not */ - /* accessed by glyph indices but by CID values. For subsetted */ - /* CID-keyed fonts this has the consequence that not all index */ - /* values are a valid argument to FT_Load_Glyph. Only the CID */ - /* values for which corresponding glyphs in the subsetted font */ - /* exist make FT_Load_Glyph return successfully; in all other cases */ - /* you get an `FT_Err_Invalid_Argument' error. */ - /* */ - /* Note that CID-keyed fonts that are in an SFNT wrapper don't */ - /* have this flag set since the glyphs are accessed in the normal */ - /* way (using contiguous indices); the `CID-ness' isn't visible to */ - /* the application. */ - /* */ - /* FT_FACE_FLAG_TRICKY :: */ - /* Set if the font is `tricky', this is, it always needs the */ - /* font format's native hinting engine to get a reasonable result. */ - /* A typical example is the Chinese font `mingli.ttf' that uses */ - /* TrueType bytecode instructions to move and scale all of its */ - /* subglyphs. */ - /* */ - /* It is not possible to auto-hint such fonts using */ - /* @FT_LOAD_FORCE_AUTOHINT; it will also ignore */ - /* @FT_LOAD_NO_HINTING. You have to set both @FT_LOAD_NO_HINTING */ - /* and @FT_LOAD_NO_AUTOHINT to really disable hinting; however, you */ - /* probably never want this except for demonstration purposes. */ - /* */ - /* Currently, there are about a dozen TrueType fonts in the list of */ - /* tricky fonts; they are hard-coded in file `ttobjs.c'. */ - /* */ - /* FT_FACE_FLAG_COLOR :: */ - /* Set if the font has color glyph tables. To access color glyphs */ - /* use @FT_LOAD_COLOR. */ - /* */ -#define FT_FACE_FLAG_SCALABLE ( 1L << 0 ) -#define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 ) -#define FT_FACE_FLAG_FIXED_WIDTH ( 1L << 2 ) -#define FT_FACE_FLAG_SFNT ( 1L << 3 ) -#define FT_FACE_FLAG_HORIZONTAL ( 1L << 4 ) -#define FT_FACE_FLAG_VERTICAL ( 1L << 5 ) -#define FT_FACE_FLAG_KERNING ( 1L << 6 ) -#define FT_FACE_FLAG_FAST_GLYPHS ( 1L << 7 ) -#define FT_FACE_FLAG_MULTIPLE_MASTERS ( 1L << 8 ) -#define FT_FACE_FLAG_GLYPH_NAMES ( 1L << 9 ) -#define FT_FACE_FLAG_EXTERNAL_STREAM ( 1L << 10 ) -#define FT_FACE_FLAG_HINTER ( 1L << 11 ) -#define FT_FACE_FLAG_CID_KEYED ( 1L << 12 ) -#define FT_FACE_FLAG_TRICKY ( 1L << 13 ) -#define FT_FACE_FLAG_COLOR ( 1L << 14 ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_HORIZONTAL( face ) - * - * @description: - * A macro that returns true whenever a face object contains - * horizontal metrics (this is true for all font formats though). - * - * @also: - * @FT_HAS_VERTICAL can be used to check for vertical metrics. - * - */ -#define FT_HAS_HORIZONTAL( face ) \ - ( face->face_flags & FT_FACE_FLAG_HORIZONTAL ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_VERTICAL( face ) - * - * @description: - * A macro that returns true whenever a face object contains real - * vertical metrics (and not only synthesized ones). - * - */ -#define FT_HAS_VERTICAL( face ) \ - ( face->face_flags & FT_FACE_FLAG_VERTICAL ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_KERNING( face ) - * - * @description: - * A macro that returns true whenever a face object contains kerning - * data that can be accessed with @FT_Get_Kerning. - * - */ -#define FT_HAS_KERNING( face ) \ - ( face->face_flags & FT_FACE_FLAG_KERNING ) - - - /************************************************************************* - * - * @macro: - * FT_IS_SCALABLE( face ) - * - * @description: - * A macro that returns true whenever a face object contains a scalable - * font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF, - * and PFR font formats. - * - */ -#define FT_IS_SCALABLE( face ) \ - ( face->face_flags & FT_FACE_FLAG_SCALABLE ) - - - /************************************************************************* - * - * @macro: - * FT_IS_SFNT( face ) - * - * @description: - * A macro that returns true whenever a face object contains a font - * whose format is based on the SFNT storage scheme. This usually - * means: TrueType fonts, OpenType fonts, as well as SFNT-based embedded - * bitmap fonts. - * - * If this macro is true, all functions defined in @FT_SFNT_NAMES_H and - * @FT_TRUETYPE_TABLES_H are available. - * - */ -#define FT_IS_SFNT( face ) \ - ( face->face_flags & FT_FACE_FLAG_SFNT ) - - - /************************************************************************* - * - * @macro: - * FT_IS_FIXED_WIDTH( face ) - * - * @description: - * A macro that returns true whenever a face object contains a font face - * that contains fixed-width (or `monospace', `fixed-pitch', etc.) - * glyphs. - * - */ -#define FT_IS_FIXED_WIDTH( face ) \ - ( face->face_flags & FT_FACE_FLAG_FIXED_WIDTH ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_FIXED_SIZES( face ) - * - * @description: - * A macro that returns true whenever a face object contains some - * embedded bitmaps. See the `available_sizes' field of the - * @FT_FaceRec structure. - * - */ -#define FT_HAS_FIXED_SIZES( face ) \ - ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_FAST_GLYPHS( face ) - * - * @description: - * Deprecated. - * - */ -#define FT_HAS_FAST_GLYPHS( face ) 0 - - - /************************************************************************* - * - * @macro: - * FT_HAS_GLYPH_NAMES( face ) - * - * @description: - * A macro that returns true whenever a face object contains some glyph - * names that can be accessed through @FT_Get_Glyph_Name. - * - */ -#define FT_HAS_GLYPH_NAMES( face ) \ - ( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_MULTIPLE_MASTERS( face ) - * - * @description: - * A macro that returns true whenever a face object contains some - * multiple masters. The functions provided by @FT_MULTIPLE_MASTERS_H - * are then available to choose the exact design you want. - * - */ -#define FT_HAS_MULTIPLE_MASTERS( face ) \ - ( face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS ) - - - /************************************************************************* - * - * @macro: - * FT_IS_CID_KEYED( face ) - * - * @description: - * A macro that returns true whenever a face object contains a CID-keyed - * font. See the discussion of @FT_FACE_FLAG_CID_KEYED for more - * details. - * - * If this macro is true, all functions defined in @FT_CID_H are - * available. - * - */ -#define FT_IS_CID_KEYED( face ) \ - ( face->face_flags & FT_FACE_FLAG_CID_KEYED ) - - - /************************************************************************* - * - * @macro: - * FT_IS_TRICKY( face ) - * - * @description: - * A macro that returns true whenever a face represents a `tricky' font. - * See the discussion of @FT_FACE_FLAG_TRICKY for more details. - * - */ -#define FT_IS_TRICKY( face ) \ - ( face->face_flags & FT_FACE_FLAG_TRICKY ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_COLOR( face ) - * - * @description: - * A macro that returns true whenever a face object contains - * tables for color glyphs. - * - */ -#define FT_HAS_COLOR( face ) \ - ( face->face_flags & FT_FACE_FLAG_COLOR ) - - - /*************************************************************************/ - /* */ - /* <Const> */ - /* FT_STYLE_FLAG_XXX */ - /* */ - /* <Description> */ - /* A list of bit flags used to indicate the style of a given face. */ - /* These are used in the `style_flags' field of @FT_FaceRec. */ - /* */ - /* <Values> */ - /* FT_STYLE_FLAG_ITALIC :: */ - /* Indicates that a given face style is italic or oblique. */ - /* */ - /* FT_STYLE_FLAG_BOLD :: */ - /* Indicates that a given face is bold. */ - /* */ - /* <Note> */ - /* The style information as provided by FreeType is very basic. More */ - /* details are beyond the scope and should be done on a higher level */ - /* (for example, by analyzing various fields of the `OS/2' table in */ - /* SFNT based fonts). */ - /* */ -#define FT_STYLE_FLAG_ITALIC ( 1 << 0 ) -#define FT_STYLE_FLAG_BOLD ( 1 << 1 ) - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Size_Internal */ - /* */ - /* <Description> */ - /* An opaque handle to an `FT_Size_InternalRec' structure, used to */ - /* model private data of a given @FT_Size object. */ - /* */ - typedef struct FT_Size_InternalRec_* FT_Size_Internal; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_Metrics */ - /* */ - /* <Description> */ - /* The size metrics structure gives the metrics of a size object. */ - /* */ - /* <Fields> */ - /* x_ppem :: The width of the scaled EM square in pixels, hence */ - /* the term `ppem' (pixels per EM). It is also */ - /* referred to as `nominal width'. */ - /* */ - /* y_ppem :: The height of the scaled EM square in pixels, */ - /* hence the term `ppem' (pixels per EM). It is also */ - /* referred to as `nominal height'. */ - /* */ - /* x_scale :: A 16.16 fractional scaling value used to convert */ - /* horizontal metrics from font units to 26.6 */ - /* fractional pixels. Only relevant for scalable */ - /* font formats. */ - /* */ - /* y_scale :: A 16.16 fractional scaling value used to convert */ - /* vertical metrics from font units to 26.6 */ - /* fractional pixels. Only relevant for scalable */ - /* font formats. */ - /* */ - /* ascender :: The ascender in 26.6 fractional pixels. See */ - /* @FT_FaceRec for the details. */ - /* */ - /* descender :: The descender in 26.6 fractional pixels. See */ - /* @FT_FaceRec for the details. */ - /* */ - /* height :: The height in 26.6 fractional pixels. See */ - /* @FT_FaceRec for the details. */ - /* */ - /* max_advance :: The maximum advance width in 26.6 fractional */ - /* pixels. See @FT_FaceRec for the details. */ - /* */ - /* <Note> */ - /* The scaling values, if relevant, are determined first during a */ - /* size changing operation. The remaining fields are then set by the */ - /* driver. For scalable formats, they are usually set to scaled */ - /* values of the corresponding fields in @FT_FaceRec. */ - /* */ - /* Note that due to glyph hinting, these values might not be exact */ - /* for certain fonts. Thus they must be treated as unreliable */ - /* with an error margin of at least one pixel! */ - /* */ - /* Indeed, the only way to get the exact metrics is to render _all_ */ - /* glyphs. As this would be a definite performance hit, it is up to */ - /* client applications to perform such computations. */ - /* */ - /* The FT_Size_Metrics structure is valid for bitmap fonts also. */ - /* */ - typedef struct FT_Size_Metrics_ - { - FT_UShort x_ppem; /* horizontal pixels per EM */ - FT_UShort y_ppem; /* vertical pixels per EM */ - - FT_Fixed x_scale; /* scaling values used to convert font */ - FT_Fixed y_scale; /* units to 26.6 fractional pixels */ - - FT_Pos ascender; /* ascender in 26.6 frac. pixels */ - FT_Pos descender; /* descender in 26.6 frac. pixels */ - FT_Pos height; /* text height in 26.6 frac. pixels */ - FT_Pos max_advance; /* max horizontal advance, in 26.6 pixels */ - - } FT_Size_Metrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_SizeRec */ - /* */ - /* <Description> */ - /* FreeType root size class structure. A size object models a face */ - /* object at a given size. */ - /* */ - /* <Fields> */ - /* face :: Handle to the parent face object. */ - /* */ - /* generic :: A typeless pointer, unused by the FreeType library or */ - /* any of its drivers. It can be used by client */ - /* applications to link their own data to each size */ - /* object. */ - /* */ - /* metrics :: Metrics for this size object. This field is read-only. */ - /* */ - typedef struct FT_SizeRec_ - { - FT_Face face; /* parent face object */ - FT_Generic generic; /* generic pointer for client uses */ - FT_Size_Metrics metrics; /* size metrics */ - FT_Size_Internal internal; - - } FT_SizeRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_SubGlyph */ - /* */ - /* <Description> */ - /* The subglyph structure is an internal object used to describe */ - /* subglyphs (for example, in the case of composites). */ - /* */ - /* <Note> */ - /* The subglyph implementation is not part of the high-level API, */ - /* hence the forward structure declaration. */ - /* */ - /* You can however retrieve subglyph information with */ - /* @FT_Get_SubGlyph_Info. */ - /* */ - typedef struct FT_SubGlyphRec_* FT_SubGlyph; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Slot_Internal */ - /* */ - /* <Description> */ - /* An opaque handle to an `FT_Slot_InternalRec' structure, used to */ - /* model private data of a given @FT_GlyphSlot object. */ - /* */ - typedef struct FT_Slot_InternalRec_* FT_Slot_Internal; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_GlyphSlotRec */ - /* */ - /* <Description> */ - /* FreeType root glyph slot class structure. A glyph slot is a */ - /* container where individual glyphs can be loaded, be they in */ - /* outline or bitmap format. */ - /* */ - /* <Fields> */ - /* library :: A handle to the FreeType library instance */ - /* this slot belongs to. */ - /* */ - /* face :: A handle to the parent face object. */ - /* */ - /* next :: In some cases (like some font tools), several */ - /* glyph slots per face object can be a good */ - /* thing. As this is rare, the glyph slots are */ - /* listed through a direct, single-linked list */ - /* using its `next' field. */ - /* */ - /* generic :: A typeless pointer unused by the FreeType */ - /* library or any of its drivers. It can be */ - /* used by client applications to link their own */ - /* data to each glyph slot object. */ - /* */ - /* metrics :: The metrics of the last loaded glyph in the */ - /* slot. The returned values depend on the last */ - /* load flags (see the @FT_Load_Glyph API */ - /* function) and can be expressed either in 26.6 */ - /* fractional pixels or font units. */ - /* */ - /* Note that even when the glyph image is */ - /* transformed, the metrics are not. */ - /* */ - /* linearHoriAdvance :: The advance width of the unhinted glyph. */ - /* Its value is expressed in 16.16 fractional */ - /* pixels, unless @FT_LOAD_LINEAR_DESIGN is set */ - /* when loading the glyph. This field can be */ - /* important to perform correct WYSIWYG layout. */ - /* Only relevant for outline glyphs. */ - /* */ - /* linearVertAdvance :: The advance height of the unhinted glyph. */ - /* Its value is expressed in 16.16 fractional */ - /* pixels, unless @FT_LOAD_LINEAR_DESIGN is set */ - /* when loading the glyph. This field can be */ - /* important to perform correct WYSIWYG layout. */ - /* Only relevant for outline glyphs. */ - /* */ - /* advance :: This shorthand is, depending on */ - /* @FT_LOAD_IGNORE_TRANSFORM, the transformed */ - /* (hinted) advance width for the glyph, in 26.6 */ - /* fractional pixel format. As specified with */ - /* @FT_LOAD_VERTICAL_LAYOUT, it uses either the */ - /* `horiAdvance' or the `vertAdvance' value of */ - /* `metrics' field. */ - /* */ - /* format :: This field indicates the format of the image */ - /* contained in the glyph slot. Typically */ - /* @FT_GLYPH_FORMAT_BITMAP, */ - /* @FT_GLYPH_FORMAT_OUTLINE, or */ - /* @FT_GLYPH_FORMAT_COMPOSITE, but others are */ - /* possible. */ - /* */ - /* bitmap :: This field is used as a bitmap descriptor */ - /* when the slot format is */ - /* @FT_GLYPH_FORMAT_BITMAP. Note that the */ - /* address and content of the bitmap buffer can */ - /* change between calls of @FT_Load_Glyph and a */ - /* few other functions. */ - /* */ - /* bitmap_left :: The bitmap's left bearing expressed in */ - /* integer pixels. Only valid if the format is */ - /* @FT_GLYPH_FORMAT_BITMAP, this is, if the */ - /* glyph slot contains a bitmap. */ - /* */ - /* bitmap_top :: The bitmap's top bearing expressed in integer */ - /* pixels. Remember that this is the distance */ - /* from the baseline to the top-most glyph */ - /* scanline, upwards y~coordinates being */ - /* *positive*. */ - /* */ - /* outline :: The outline descriptor for the current glyph */ - /* image if its format is */ - /* @FT_GLYPH_FORMAT_OUTLINE. Once a glyph is */ - /* loaded, `outline' can be transformed, */ - /* distorted, embolded, etc. However, it must */ - /* not be freed. */ - /* */ - /* num_subglyphs :: The number of subglyphs in a composite glyph. */ - /* This field is only valid for the composite */ - /* glyph format that should normally only be */ - /* loaded with the @FT_LOAD_NO_RECURSE flag. */ - /* */ - /* subglyphs :: An array of subglyph descriptors for */ - /* composite glyphs. There are `num_subglyphs' */ - /* elements in there. Currently internal to */ - /* FreeType. */ - /* */ - /* control_data :: Certain font drivers can also return the */ - /* control data for a given glyph image (e.g. */ - /* TrueType bytecode, Type~1 charstrings, etc.). */ - /* This field is a pointer to such data. */ - /* */ - /* control_len :: This is the length in bytes of the control */ - /* data. */ - /* */ - /* other :: Really wicked formats can use this pointer to */ - /* present their own glyph image to client */ - /* applications. Note that the application */ - /* needs to know about the image format. */ - /* */ - /* lsb_delta :: The difference between hinted and unhinted */ - /* left side bearing while auto-hinting is */ - /* active. Zero otherwise. */ - /* */ - /* rsb_delta :: The difference between hinted and unhinted */ - /* right side bearing while auto-hinting is */ - /* active. Zero otherwise. */ - /* */ - /* <Note> */ - /* If @FT_Load_Glyph is called with default flags (see */ - /* @FT_LOAD_DEFAULT) the glyph image is loaded in the glyph slot in */ - /* its native format (e.g., an outline glyph for TrueType and Type~1 */ - /* formats). */ - /* */ - /* This image can later be converted into a bitmap by calling */ - /* @FT_Render_Glyph. This function finds the current renderer for */ - /* the native image's format, then invokes it. */ - /* */ - /* The renderer is in charge of transforming the native image through */ - /* the slot's face transformation fields, then converting it into a */ - /* bitmap that is returned in `slot->bitmap'. */ - /* */ - /* Note that `slot->bitmap_left' and `slot->bitmap_top' are also used */ - /* to specify the position of the bitmap relative to the current pen */ - /* position (e.g., coordinates (0,0) on the baseline). Of course, */ - /* `slot->format' is also changed to @FT_GLYPH_FORMAT_BITMAP. */ - /* */ - /* <Note> */ - /* Here is a small pseudo code fragment that shows how to use */ - /* `lsb_delta' and `rsb_delta': */ - /* */ - /* { */ - /* FT_Pos origin_x = 0; */ - /* FT_Pos prev_rsb_delta = 0; */ - /* */ - /* */ - /* for all glyphs do */ - /* <compute kern between current and previous glyph and add it to */ - /* `origin_x'> */ - /* */ - /* <load glyph with `FT_Load_Glyph'> */ - /* */ - /* if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 ) */ - /* origin_x -= 64; */ - /* else if ( prev_rsb_delta - face->glyph->lsb_delta < -32 ) */ - /* origin_x += 64; */ - /* */ - /* prev_rsb_delta = face->glyph->rsb_delta; */ - /* */ - /* <save glyph image, or render glyph, or ...> */ - /* */ - /* origin_x += face->glyph->advance.x; */ - /* endfor */ - /* } */ - /* */ - typedef struct FT_GlyphSlotRec_ - { - FT_Library library; - FT_Face face; - FT_GlyphSlot next; - FT_UInt reserved; /* retained for binary compatibility */ - FT_Generic generic; - - FT_Glyph_Metrics metrics; - FT_Fixed linearHoriAdvance; - FT_Fixed linearVertAdvance; - FT_Vector advance; - - FT_Glyph_Format format; - - FT_Bitmap bitmap; - FT_Int bitmap_left; - FT_Int bitmap_top; - - FT_Outline outline; - - FT_UInt num_subglyphs; - FT_SubGlyph subglyphs; - - void* control_data; - long control_len; - - FT_Pos lsb_delta; - FT_Pos rsb_delta; - - void* other; - - FT_Slot_Internal internal; - - } FT_GlyphSlotRec; - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* F U N C T I O N S */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Init_FreeType */ - /* */ - /* <Description> */ - /* Initialize a new FreeType library object. The set of modules */ - /* that are registered by this function is determined at build time. */ - /* */ - /* <Output> */ - /* alibrary :: A handle to a new library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* In case you want to provide your own memory allocating routines, */ - /* use @FT_New_Library instead, followed by a call to */ - /* @FT_Add_Default_Modules (or a series of calls to @FT_Add_Module). */ - /* */ - /* See the documentation of @FT_Library and @FT_Face for */ - /* multi-threading issues. */ - /* */ - /* If you need reference-counting (cf. @FT_Reference_Library), use */ - /* @FT_New_Library and @FT_Done_Library. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Init_FreeType( FT_Library *alibrary ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_FreeType */ - /* */ - /* <Description> */ - /* Destroy a given FreeType library object and all of its children, */ - /* including resources, drivers, faces, sizes, etc. */ - /* */ - /* <Input> */ - /* library :: A handle to the target library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Done_FreeType( FT_Library library ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_OPEN_XXX */ - /* */ - /* <Description> */ - /* A list of bit field constants used within the `flags' field of the */ - /* @FT_Open_Args structure. */ - /* */ - /* <Values> */ - /* FT_OPEN_MEMORY :: This is a memory-based stream. */ - /* */ - /* FT_OPEN_STREAM :: Copy the stream from the `stream' field. */ - /* */ - /* FT_OPEN_PATHNAME :: Create a new input stream from a C~path */ - /* name. */ - /* */ - /* FT_OPEN_DRIVER :: Use the `driver' field. */ - /* */ - /* FT_OPEN_PARAMS :: Use the `num_params' and `params' fields. */ - /* */ - /* <Note> */ - /* The `FT_OPEN_MEMORY', `FT_OPEN_STREAM', and `FT_OPEN_PATHNAME' */ - /* flags are mutually exclusive. */ - /* */ -#define FT_OPEN_MEMORY 0x1 -#define FT_OPEN_STREAM 0x2 -#define FT_OPEN_PATHNAME 0x4 -#define FT_OPEN_DRIVER 0x8 -#define FT_OPEN_PARAMS 0x10 - - - /* these constants are deprecated; use the corresponding `FT_OPEN_XXX' */ - /* values instead */ -#define ft_open_memory FT_OPEN_MEMORY -#define ft_open_stream FT_OPEN_STREAM -#define ft_open_pathname FT_OPEN_PATHNAME -#define ft_open_driver FT_OPEN_DRIVER -#define ft_open_params FT_OPEN_PARAMS - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Parameter */ - /* */ - /* <Description> */ - /* A simple structure used to pass more or less generic parameters to */ - /* @FT_Open_Face. */ - /* */ - /* <Fields> */ - /* tag :: A four-byte identification tag. */ - /* */ - /* data :: A pointer to the parameter data. */ - /* */ - /* <Note> */ - /* The ID and function of parameters are driver-specific. See the */ - /* various FT_PARAM_TAG_XXX flags for more information. */ - /* */ - typedef struct FT_Parameter_ - { - FT_ULong tag; - FT_Pointer data; - - } FT_Parameter; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Open_Args */ - /* */ - /* <Description> */ - /* A structure used to indicate how to open a new font file or */ - /* stream. A pointer to such a structure can be used as a parameter */ - /* for the functions @FT_Open_Face and @FT_Attach_Stream. */ - /* */ - /* <Fields> */ - /* flags :: A set of bit flags indicating how to use the */ - /* structure. */ - /* */ - /* memory_base :: The first byte of the file in memory. */ - /* */ - /* memory_size :: The size in bytes of the file in memory. */ - /* */ - /* pathname :: A pointer to an 8-bit file pathname. */ - /* */ - /* stream :: A handle to a source stream object. */ - /* */ - /* driver :: This field is exclusively used by @FT_Open_Face; */ - /* it simply specifies the font driver to use to open */ - /* the face. If set to~0, FreeType tries to load the */ - /* face with each one of the drivers in its list. */ - /* */ - /* num_params :: The number of extra parameters. */ - /* */ - /* params :: Extra parameters passed to the font driver when */ - /* opening a new face. */ - /* */ - /* <Note> */ - /* The stream type is determined by the contents of `flags' that */ - /* are tested in the following order by @FT_Open_Face: */ - /* */ - /* If the @FT_OPEN_MEMORY bit is set, assume that this is a */ - /* memory file of `memory_size' bytes, located at `memory_address'. */ - /* The data are are not copied, and the client is responsible for */ - /* releasing and destroying them _after_ the corresponding call to */ - /* @FT_Done_Face. */ - /* */ - /* Otherwise, if the @FT_OPEN_STREAM bit is set, assume that a */ - /* custom input stream `stream' is used. */ - /* */ - /* Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this */ - /* is a normal file and use `pathname' to open it. */ - /* */ - /* If the @FT_OPEN_DRIVER bit is set, @FT_Open_Face only tries to */ - /* open the file with the driver whose handler is in `driver'. */ - /* */ - /* If the @FT_OPEN_PARAMS bit is set, the parameters given by */ - /* `num_params' and `params' is used. They are ignored otherwise. */ - /* */ - /* Ideally, both the `pathname' and `params' fields should be tagged */ - /* as `const'; this is missing for API backwards compatibility. In */ - /* other words, applications should treat them as read-only. */ - /* */ - typedef struct FT_Open_Args_ - { - FT_UInt flags; - const FT_Byte* memory_base; - FT_Long memory_size; - FT_String* pathname; - FT_Stream stream; - FT_Module driver; - FT_Int num_params; - FT_Parameter* params; - - } FT_Open_Args; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face */ - /* */ - /* <Description> */ - /* This function calls @FT_Open_Face to open a font by its pathname. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* pathname :: A path to the font file. */ - /* */ - /* face_index :: See @FT_Open_Face for a detailed description of this */ - /* parameter. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. If `face_index' is */ - /* greater than or equal to zero, it must be non-NULL. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Use @FT_Done_Face to destroy the created @FT_Face object (along */ - /* with its slot and sizes). */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Face( FT_Library library, - const char* filepathname, - FT_Long face_index, - FT_Face *aface ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Memory_Face */ - /* */ - /* <Description> */ - /* This function calls @FT_Open_Face to open a font that has been */ - /* loaded into memory. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* file_base :: A pointer to the beginning of the font data. */ - /* */ - /* file_size :: The size of the memory chunk used by the font data. */ - /* */ - /* face_index :: See @FT_Open_Face for a detailed description of this */ - /* parameter. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. If `face_index' is */ - /* greater than or equal to zero, it must be non-NULL. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You must not deallocate the memory before calling @FT_Done_Face. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Memory_Face( FT_Library library, - const FT_Byte* file_base, - FT_Long file_size, - FT_Long face_index, - FT_Face *aface ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Open_Face */ - /* */ - /* <Description> */ - /* Create a face object from a given resource described by */ - /* @FT_Open_Args. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* args :: A pointer to an `FT_Open_Args' structure that must */ - /* be filled by the caller. */ - /* */ - /* face_index :: This field holds two different values. Bits 0-15 */ - /* are the index of the face in the font file (starting */ - /* with value~0). Set it to~0 if there is only one */ - /* face in the font file. */ - /* */ - /* Bits 16-30 are relevant to GX variation fonts only, */ - /* specifying the named instance index for the current */ - /* face index (starting with value~1; value~0 makes */ - /* FreeType ignore named instances). For non-GX fonts, */ - /* bits 16-30 are ignored. Assuming that you want to */ - /* access the third named instance in face~4, */ - /* `face_index' should be set to 0x00030004. If you */ - /* want to access face~4 without GX variation handling, */ - /* simply set `face_index' to value~4. */ - /* */ - /* FT_Open_Face and its siblings can be used to quickly */ - /* check whether the font format of a given font */ - /* resource is supported by FreeType. In general, if */ - /* the `face_index' argument is negative, the */ - /* function's return value is~0 if the font format is */ - /* recognized, or non-zero otherwise. The function */ - /* allocates a more or less empty face handle in */ - /* `*aface' (if `aface' isn't NULL); the only two */ - /* useful fields in this special case are */ - /* `face->num_faces' and `face->style_flags'. For any */ - /* negative value of `face_index', `face->num_faces' */ - /* gives the number of faces within the font file. For */ - /* the negative value `-(N+1)' (with `N' a 16-bit */ - /* value), bits 16-30 in `face->style_flags' give the */ - /* number of named instances in face `N' if we have a */ - /* GX variation font (or zero otherwise). After */ - /* examination, the returned @FT_Face structure should */ - /* be deallocated with a call to @FT_Done_Face. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. If `face_index' is */ - /* greater than or equal to zero, it must be non-NULL. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Unlike FreeType 1.x, this function automatically creates a glyph */ - /* slot for the face object that can be accessed directly through */ - /* `face->glyph'. */ - /* */ - /* Each new face object created with this function also owns a */ - /* default @FT_Size object, accessible as `face->size'. */ - /* */ - /* One @FT_Library instance can have multiple face objects, this is, */ - /* @FT_Open_Face and its siblings can be called multiple times using */ - /* the same `library' argument. */ - /* */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Face. */ - /* */ - /* To loop over all faces, use code similar to the following snippet */ - /* (omitting the error handling). */ - /* */ - /* { */ - /* ... */ - /* FT_Face face; */ - /* FT_Long i, num_faces; */ - /* */ - /* */ - /* error = FT_Open_Face( library, args, -1, &face ); */ - /* if ( error ) { ... } */ - /* */ - /* num_faces = face->num_faces; */ - /* FT_Done_Face( face ); */ - /* */ - /* for ( i = 0; i < num_faces; i++ ) */ - /* { */ - /* ... */ - /* error = FT_Open_Face( library, args, i, &face ); */ - /* ... */ - /* FT_Done_Face( face ); */ - /* ... */ - /* } */ - /* } */ - /* */ - /* To loop over all valid values for `face_index', use something */ - /* similar to the following snippet, again without error handling. */ - /* The code accesses all faces immediately (thus only a single call */ - /* of `FT_Open_Face' within the do-loop), with and without named */ - /* instances. */ - /* */ - /* { */ - /* ... */ - /* FT_Face face; */ - /* */ - /* FT_Long num_faces = 0; */ - /* FT_Long num_instances = 0; */ - /* */ - /* FT_Long face_idx = 0; */ - /* FT_Long instance_idx = 0; */ - /* */ - /* */ - /* do */ - /* { */ - /* FT_Long id = ( instance_idx << 16 ) + face_idx; */ - /* */ - /* */ - /* error = FT_Open_Face( library, args, id, &face ); */ - /* if ( error ) { ... } */ - /* */ - /* num_faces = face->num_faces; */ - /* num_instances = face->style_flags >> 16; */ - /* */ - /* ... */ - /* */ - /* FT_Done_Face( face ); */ - /* */ - /* if ( instance_idx < num_instances ) */ - /* instance_idx++; */ - /* else */ - /* { */ - /* face_idx++; */ - /* instance_idx = 0; */ - /* } */ - /* */ - /* } while ( face_idx < num_faces ) */ - /* } */ - /* */ - FT_EXPORT( FT_Error ) - FT_Open_Face( FT_Library library, - const FT_Open_Args* args, - FT_Long face_index, - FT_Face *aface ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Attach_File */ - /* */ - /* <Description> */ - /* This function calls @FT_Attach_Stream to attach a file. */ - /* */ - /* <InOut> */ - /* face :: The target face object. */ - /* */ - /* <Input> */ - /* filepathname :: The pathname. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Attach_File( FT_Face face, - const char* filepathname ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Attach_Stream */ - /* */ - /* <Description> */ - /* `Attach' data to a face object. Normally, this is used to read */ - /* additional information for the face object. For example, you can */ - /* attach an AFM file that comes with a Type~1 font to get the */ - /* kerning values and other metrics. */ - /* */ - /* <InOut> */ - /* face :: The target face object. */ - /* */ - /* <Input> */ - /* parameters :: A pointer to @FT_Open_Args that must be filled by */ - /* the caller. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The meaning of the `attach' (i.e., what really happens when the */ - /* new file is read) is not fixed by FreeType itself. It really */ - /* depends on the font format (and thus the font driver). */ - /* */ - /* Client applications are expected to know what they are doing */ - /* when invoking this function. Most drivers simply do not implement */ - /* file attachments. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Attach_Stream( FT_Face face, - FT_Open_Args* parameters ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Reference_Face */ - /* */ - /* <Description> */ - /* A counter gets initialized to~1 at the time an @FT_Face structure */ - /* is created. This function increments the counter. @FT_Done_Face */ - /* then only destroys a face if the counter is~1, otherwise it simply */ - /* decrements the counter. */ - /* */ - /* This function helps in managing life-cycles of structures that */ - /* reference @FT_Face objects. */ - /* */ - /* <Input> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Since> */ - /* 2.4.2 */ - /* */ - FT_EXPORT( FT_Error ) - FT_Reference_Face( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Face */ - /* */ - /* <Description> */ - /* Discard a given face object, as well as all of its child slots and */ - /* sizes. */ - /* */ - /* <Input> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Face. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Done_Face( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Select_Size */ - /* */ - /* <Description> */ - /* Select a bitmap strike. */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Input> */ - /* strike_index :: The index of the bitmap strike in the */ - /* `available_sizes' field of @FT_FaceRec structure. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Select_Size( FT_Face face, - FT_Int strike_index ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Size_Request_Type */ - /* */ - /* <Description> */ - /* An enumeration type that lists the supported size request types. */ - /* */ - /* <Values> */ - /* FT_SIZE_REQUEST_TYPE_NOMINAL :: */ - /* The nominal size. The `units_per_EM' field of @FT_FaceRec is */ - /* used to determine both scaling values. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_REAL_DIM :: */ - /* The real dimension. The sum of the the `ascender' and (minus */ - /* of) the `descender' fields of @FT_FaceRec are used to determine */ - /* both scaling values. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_BBOX :: */ - /* The font bounding box. The width and height of the `bbox' field */ - /* of @FT_FaceRec are used to determine the horizontal and vertical */ - /* scaling value, respectively. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_CELL :: */ - /* The `max_advance_width' field of @FT_FaceRec is used to */ - /* determine the horizontal scaling value; the vertical scaling */ - /* value is determined the same way as */ - /* @FT_SIZE_REQUEST_TYPE_REAL_DIM does. Finally, both scaling */ - /* values are set to the smaller one. This type is useful if you */ - /* want to specify the font size for, say, a window of a given */ - /* dimension and 80x24 cells. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_SCALES :: */ - /* Specify the scaling values directly. */ - /* */ - /* <Note> */ - /* The above descriptions only apply to scalable formats. For bitmap */ - /* formats, the behaviour is up to the driver. */ - /* */ - /* See the note section of @FT_Size_Metrics if you wonder how size */ - /* requesting relates to scaling values. */ - /* */ - typedef enum FT_Size_Request_Type_ - { - FT_SIZE_REQUEST_TYPE_NOMINAL, - FT_SIZE_REQUEST_TYPE_REAL_DIM, - FT_SIZE_REQUEST_TYPE_BBOX, - FT_SIZE_REQUEST_TYPE_CELL, - FT_SIZE_REQUEST_TYPE_SCALES, - - FT_SIZE_REQUEST_TYPE_MAX - - } FT_Size_Request_Type; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_RequestRec */ - /* */ - /* <Description> */ - /* A structure used to model a size request. */ - /* */ - /* <Fields> */ - /* type :: See @FT_Size_Request_Type. */ - /* */ - /* width :: The desired width. */ - /* */ - /* height :: The desired height. */ - /* */ - /* horiResolution :: The horizontal resolution. If set to zero, */ - /* `width' is treated as a 26.6 fractional pixel */ - /* value. */ - /* */ - /* vertResolution :: The vertical resolution. If set to zero, */ - /* `height' is treated as a 26.6 fractional pixel */ - /* value. */ - /* */ - /* <Note> */ - /* If `width' is zero, then the horizontal scaling value is set equal */ - /* to the vertical scaling value, and vice versa. */ - /* */ - typedef struct FT_Size_RequestRec_ - { - FT_Size_Request_Type type; - FT_Long width; - FT_Long height; - FT_UInt horiResolution; - FT_UInt vertResolution; - - } FT_Size_RequestRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_Request */ - /* */ - /* <Description> */ - /* A handle to a size request structure. */ - /* */ - typedef struct FT_Size_RequestRec_ *FT_Size_Request; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Request_Size */ - /* */ - /* <Description> */ - /* Resize the scale of the active @FT_Size object in a face. */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Input> */ - /* req :: A pointer to a @FT_Size_RequestRec. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Although drivers may select the bitmap strike matching the */ - /* request, you should not rely on this if you intend to select a */ - /* particular bitmap strike. Use @FT_Select_Size instead in that */ - /* case. */ - /* */ - /* The relation between the requested size and the resulting glyph */ - /* size is dependent entirely on how the size is defined in the */ - /* source face. The font designer chooses the final size of each */ - /* glyph relative to this size. For more information refer to */ - /* `http://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html' */ - /* */ - /* Don't use this function if you are using the FreeType cache API. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Request_Size( FT_Face face, - FT_Size_Request req ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Char_Size */ - /* */ - /* <Description> */ - /* This function calls @FT_Request_Size to request the nominal size */ - /* (in points). */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Input> */ - /* char_width :: The nominal width, in 26.6 fractional points. */ - /* */ - /* char_height :: The nominal height, in 26.6 fractional points. */ - /* */ - /* horz_resolution :: The horizontal resolution in dpi. */ - /* */ - /* vert_resolution :: The vertical resolution in dpi. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If either the character width or height is zero, it is set equal */ - /* to the other value. */ - /* */ - /* If either the horizontal or vertical resolution is zero, it is set */ - /* equal to the other value. */ - /* */ - /* A character width or height smaller than 1pt is set to 1pt; if */ - /* both resolution values are zero, they are set to 72dpi. */ - /* */ - /* Don't use this function if you are using the FreeType cache API. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Char_Size( FT_Face face, - FT_F26Dot6 char_width, - FT_F26Dot6 char_height, - FT_UInt horz_resolution, - FT_UInt vert_resolution ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Pixel_Sizes */ - /* */ - /* <Description> */ - /* This function calls @FT_Request_Size to request the nominal size */ - /* (in pixels). */ - /* */ - /* <InOut> */ - /* face :: A handle to the target face object. */ - /* */ - /* <Input> */ - /* pixel_width :: The nominal width, in pixels. */ - /* */ - /* pixel_height :: The nominal height, in pixels. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You should not rely on the resulting glyphs matching, or being */ - /* constrained, to this pixel size. Refer to @FT_Request_Size to */ - /* understand how requested sizes relate to actual sizes. */ - /* */ - /* Don't use this function if you are using the FreeType cache API. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Pixel_Sizes( FT_Face face, - FT_UInt pixel_width, - FT_UInt pixel_height ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Load_Glyph */ - /* */ - /* <Description> */ - /* A function used to load a single glyph into the glyph slot of a */ - /* face object. */ - /* */ - /* <InOut> */ - /* face :: A handle to the target face object where the glyph */ - /* is loaded. */ - /* */ - /* <Input> */ - /* glyph_index :: The index of the glyph in the font file. For */ - /* CID-keyed fonts (either in PS or in CFF format) */ - /* this argument specifies the CID value. */ - /* */ - /* load_flags :: A flag indicating what to load for this glyph. The */ - /* @FT_LOAD_XXX constants can be used to control the */ - /* glyph loading process (e.g., whether the outline */ - /* should be scaled, whether to load bitmaps or not, */ - /* whether to hint the outline, etc). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The loaded glyph may be transformed. See @FT_Set_Transform for */ - /* the details. */ - /* */ - /* For subsetted CID-keyed fonts, `FT_Err_Invalid_Argument' is */ - /* returned for invalid CID values (this is, for CID values that */ - /* don't have a corresponding glyph in the font). See the discussion */ - /* of the @FT_FACE_FLAG_CID_KEYED flag for more details. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Load_Glyph( FT_Face face, - FT_UInt glyph_index, - FT_Int32 load_flags ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Load_Char */ - /* */ - /* <Description> */ - /* A function used to load a single glyph into the glyph slot of a */ - /* face object, according to its character code. */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object where the glyph */ - /* is loaded. */ - /* */ - /* <Input> */ - /* char_code :: The glyph's character code, according to the */ - /* current charmap used in the face. */ - /* */ - /* load_flags :: A flag indicating what to load for this glyph. The */ - /* @FT_LOAD_XXX constants can be used to control the */ - /* glyph loading process (e.g., whether the outline */ - /* should be scaled, whether to load bitmaps or not, */ - /* whether to hint the outline, etc). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function simply calls @FT_Get_Char_Index and @FT_Load_Glyph. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Load_Char( FT_Face face, - FT_ULong char_code, - FT_Int32 load_flags ); - - - /************************************************************************* - * - * @enum: - * FT_LOAD_XXX - * - * @description: - * A list of bit field constants used with @FT_Load_Glyph to indicate - * what kind of operations to perform during glyph loading. - * - * @values: - * FT_LOAD_DEFAULT :: - * Corresponding to~0, this value is used as the default glyph load - * operation. In this case, the following happens: - * - * 1. FreeType looks for a bitmap for the glyph corresponding to the - * face's current size. If one is found, the function returns. - * The bitmap data can be accessed from the glyph slot (see note - * below). - * - * 2. If no embedded bitmap is searched or found, FreeType looks for a - * scalable outline. If one is found, it is loaded from the font - * file, scaled to device pixels, then `hinted' to the pixel grid - * in order to optimize it. The outline data can be accessed from - * the glyph slot (see note below). - * - * Note that by default, the glyph loader doesn't render outlines into - * bitmaps. The following flags are used to modify this default - * behaviour to more specific and useful cases. - * - * FT_LOAD_NO_SCALE :: - * Don't scale the loaded outline glyph but keep it in font units. - * - * This flag implies @FT_LOAD_NO_HINTING and @FT_LOAD_NO_BITMAP, and - * unsets @FT_LOAD_RENDER. - * - * If the font is `tricky' (see @FT_FACE_FLAG_TRICKY for more), using - * FT_LOAD_NO_SCALE usually yields meaningless outlines because the - * subglyphs must be scaled and positioned with hinting instructions. - * This can be solved by loading the font without FT_LOAD_NO_SCALE and - * setting the character size to `font->units_per_EM'. - * - * FT_LOAD_NO_HINTING :: - * Disable hinting. This generally generates `blurrier' bitmap glyphs - * when the glyph are rendered in any of the anti-aliased modes. See - * also the note below. - * - * This flag is implied by @FT_LOAD_NO_SCALE. - * - * FT_LOAD_RENDER :: - * Call @FT_Render_Glyph after the glyph is loaded. By default, the - * glyph is rendered in @FT_RENDER_MODE_NORMAL mode. This can be - * overridden by @FT_LOAD_TARGET_XXX or @FT_LOAD_MONOCHROME. - * - * This flag is unset by @FT_LOAD_NO_SCALE. - * - * FT_LOAD_NO_BITMAP :: - * Ignore bitmap strikes when loading. Bitmap-only fonts ignore this - * flag. - * - * @FT_LOAD_NO_SCALE always sets this flag. - * - * FT_LOAD_VERTICAL_LAYOUT :: - * Load the glyph for vertical text layout. In particular, the - * `advance' value in the @FT_GlyphSlotRec structure is set to the - * `vertAdvance' value of the `metrics' field. - * - * In case @FT_HAS_VERTICAL doesn't return true, you shouldn't use - * this flag currently. Reason is that in this case vertical metrics - * get synthesized, and those values are not always consistent across - * various font formats. - * - * FT_LOAD_FORCE_AUTOHINT :: - * Indicates that the auto-hinter is preferred over the font's native - * hinter. See also the note below. - * - * FT_LOAD_PEDANTIC :: - * Indicates that the font driver should perform pedantic verifications - * during glyph loading. This is mostly used to detect broken glyphs - * in fonts. By default, FreeType tries to handle broken fonts also. - * - * In particular, errors from the TrueType bytecode engine are not - * passed to the application if this flag is not set; this might - * result in partially hinted or distorted glyphs in case a glyph's - * bytecode is buggy. - * - * FT_LOAD_NO_RECURSE :: - * Indicate that the font driver should not load composite glyphs - * recursively. Instead, it should set the `num_subglyph' and - * `subglyphs' values of the glyph slot accordingly, and set - * `glyph->format' to @FT_GLYPH_FORMAT_COMPOSITE. The description of - * subglyphs can then be accessed with @FT_Get_SubGlyph_Info. - * - * This flag implies @FT_LOAD_NO_SCALE and @FT_LOAD_IGNORE_TRANSFORM. - * - * FT_LOAD_IGNORE_TRANSFORM :: - * Indicates that the transform matrix set by @FT_Set_Transform should - * be ignored. - * - * FT_LOAD_MONOCHROME :: - * This flag is used with @FT_LOAD_RENDER to indicate that you want to - * render an outline glyph to a 1-bit monochrome bitmap glyph, with - * 8~pixels packed into each byte of the bitmap data. - * - * Note that this has no effect on the hinting algorithm used. You - * should rather use @FT_LOAD_TARGET_MONO so that the - * monochrome-optimized hinting algorithm is used. - * - * FT_LOAD_LINEAR_DESIGN :: - * Indicates that the `linearHoriAdvance' and `linearVertAdvance' - * fields of @FT_GlyphSlotRec should be kept in font units. See - * @FT_GlyphSlotRec for details. - * - * FT_LOAD_NO_AUTOHINT :: - * Disable auto-hinter. See also the note below. - * - * FT_LOAD_COLOR :: - * This flag is used to request loading of color embedded-bitmap - * images. The resulting color bitmaps, if available, will have the - * @FT_PIXEL_MODE_BGRA format. When the flag is not used and color - * bitmaps are found, they will be converted to 256-level gray - * bitmaps transparently. Those bitmaps will be in the - * @FT_PIXEL_MODE_GRAY format. - * - * FT_LOAD_COMPUTE_METRICS :: - * This flag sets computing glyph metrics without the use of bundled - * metrics tables (for example, the `hdmx' table in TrueType fonts). - * Well-behaving fonts have optimized bundled metrics and these should - * be used. This flag is mainly used by font validating or font - * editing applications, which need to ignore, verify, or edit those - * tables. - * - * Currently, this flag is only implemented for TrueType fonts. - * - * FT_LOAD_CROP_BITMAP :: - * Ignored. Deprecated. - * - * FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH :: - * Ignored. Deprecated. - * - * @note: - * By default, hinting is enabled and the font's native hinter (see - * @FT_FACE_FLAG_HINTER) is preferred over the auto-hinter. You can - * disable hinting by setting @FT_LOAD_NO_HINTING or change the - * precedence by setting @FT_LOAD_FORCE_AUTOHINT. You can also set - * @FT_LOAD_NO_AUTOHINT in case you don't want the auto-hinter to be - * used at all. - * - * See the description of @FT_FACE_FLAG_TRICKY for a special exception - * (affecting only a handful of Asian fonts). - * - * Besides deciding which hinter to use, you can also decide which - * hinting algorithm to use. See @FT_LOAD_TARGET_XXX for details. - * - * Note that the auto-hinter needs a valid Unicode cmap (either a native - * one or synthesized by FreeType) for producing correct results. If a - * font provides an incorrect mapping (for example, assigning the - * character code U+005A, LATIN CAPITAL LETTER Z, to a glyph depicting a - * mathematical integral sign), the auto-hinter might produce useless - * results. - * - */ -#define FT_LOAD_DEFAULT 0x0 -#define FT_LOAD_NO_SCALE ( 1L << 0 ) -#define FT_LOAD_NO_HINTING ( 1L << 1 ) -#define FT_LOAD_RENDER ( 1L << 2 ) -#define FT_LOAD_NO_BITMAP ( 1L << 3 ) -#define FT_LOAD_VERTICAL_LAYOUT ( 1L << 4 ) -#define FT_LOAD_FORCE_AUTOHINT ( 1L << 5 ) -#define FT_LOAD_CROP_BITMAP ( 1L << 6 ) -#define FT_LOAD_PEDANTIC ( 1L << 7 ) -#define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ( 1L << 9 ) -#define FT_LOAD_NO_RECURSE ( 1L << 10 ) -#define FT_LOAD_IGNORE_TRANSFORM ( 1L << 11 ) -#define FT_LOAD_MONOCHROME ( 1L << 12 ) -#define FT_LOAD_LINEAR_DESIGN ( 1L << 13 ) -#define FT_LOAD_NO_AUTOHINT ( 1L << 15 ) - /* Bits 16..19 are used by `FT_LOAD_TARGET_' */ -#define FT_LOAD_COLOR ( 1L << 20 ) -#define FT_LOAD_COMPUTE_METRICS ( 1L << 21 ) - - /* */ - - /* used internally only by certain font drivers! */ -#define FT_LOAD_ADVANCE_ONLY ( 1L << 8 ) -#define FT_LOAD_SBITS_ONLY ( 1L << 14 ) - - - /************************************************************************** - * - * @enum: - * FT_LOAD_TARGET_XXX - * - * @description: - * A list of values that are used to select a specific hinting algorithm - * to use by the hinter. You should OR one of these values to your - * `load_flags' when calling @FT_Load_Glyph. - * - * Note that font's native hinters may ignore the hinting algorithm you - * have specified (e.g., the TrueType bytecode interpreter). You can set - * @FT_LOAD_FORCE_AUTOHINT to ensure that the auto-hinter is used. - * - * @values: - * FT_LOAD_TARGET_NORMAL :: - * This corresponds to the default hinting algorithm, optimized for - * standard gray-level rendering. For monochrome output, use - * @FT_LOAD_TARGET_MONO instead. - * - * FT_LOAD_TARGET_LIGHT :: - * A lighter hinting algorithm for gray-level modes. Many generated - * glyphs are fuzzier but better resemble their original shape. This - * is achieved by snapping glyphs to the pixel grid only vertically - * (Y-axis), as is done by Microsoft's ClearType and Adobe's - * proprietary font renderer. This preserves inter-glyph spacing in - * horizontal text. The snapping is done either by the native font - * driver if the driver itself and the font support it or by the - * auto-hinter. - * - * FT_LOAD_TARGET_MONO :: - * Strong hinting algorithm that should only be used for monochrome - * output. The result is probably unpleasant if the glyph is rendered - * in non-monochrome modes. - * - * FT_LOAD_TARGET_LCD :: - * A variant of @FT_LOAD_TARGET_NORMAL optimized for horizontally - * decimated LCD displays. - * - * FT_LOAD_TARGET_LCD_V :: - * A variant of @FT_LOAD_TARGET_NORMAL optimized for vertically - * decimated LCD displays. - * - * @note: - * You should use only _one_ of the FT_LOAD_TARGET_XXX values in your - * `load_flags'. They can't be ORed. - * - * If @FT_LOAD_RENDER is also set, the glyph is rendered in the - * corresponding mode (i.e., the mode that matches the used algorithm - * best). An exeption is FT_LOAD_TARGET_MONO since it implies - * @FT_LOAD_MONOCHROME. - * - * You can use a hinting algorithm that doesn't correspond to the same - * rendering mode. As an example, it is possible to use the `light' - * hinting algorithm and have the results rendered in horizontal LCD - * pixel mode, with code like - * - * { - * FT_Load_Glyph( face, glyph_index, - * load_flags | FT_LOAD_TARGET_LIGHT ); - * - * FT_Render_Glyph( face->glyph, FT_RENDER_MODE_LCD ); - * } - * - */ -#define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 15 ) << 16 ) - -#define FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL ) -#define FT_LOAD_TARGET_LIGHT FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT ) -#define FT_LOAD_TARGET_MONO FT_LOAD_TARGET_( FT_RENDER_MODE_MONO ) -#define FT_LOAD_TARGET_LCD FT_LOAD_TARGET_( FT_RENDER_MODE_LCD ) -#define FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V ) - - - /************************************************************************** - * - * @macro: - * FT_LOAD_TARGET_MODE - * - * @description: - * Return the @FT_Render_Mode corresponding to a given - * @FT_LOAD_TARGET_XXX value. - * - */ -#define FT_LOAD_TARGET_MODE( x ) ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) ) - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Transform */ - /* */ - /* <Description> */ - /* A function used to set the transformation that is applied to glyph */ - /* images when they are loaded into a glyph slot through */ - /* @FT_Load_Glyph. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to the transformation's 2x2 matrix. Use~0 for */ - /* the identity matrix. */ - /* delta :: A pointer to the translation vector. Use~0 for the null */ - /* vector. */ - /* */ - /* <Note> */ - /* The transformation is only applied to scalable image formats after */ - /* the glyph has been loaded. It means that hinting is unaltered by */ - /* the transformation and is performed on the character size given in */ - /* the last call to @FT_Set_Char_Size or @FT_Set_Pixel_Sizes. */ - /* */ - /* Note that this also transforms the `face.glyph.advance' field, but */ - /* *not* the values in `face.glyph.metrics'. */ - /* */ - FT_EXPORT( void ) - FT_Set_Transform( FT_Face face, - FT_Matrix* matrix, - FT_Vector* delta ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Render_Mode */ - /* */ - /* <Description> */ - /* An enumeration type that lists the render modes supported by */ - /* FreeType~2. Each mode corresponds to a specific type of scanline */ - /* conversion performed on the outline. */ - /* */ - /* For bitmap fonts and embedded bitmaps the `bitmap->pixel_mode' */ - /* field in the @FT_GlyphSlotRec structure gives the format of the */ - /* returned bitmap. */ - /* */ - /* All modes except @FT_RENDER_MODE_MONO use 256 levels of opacity, */ - /* indicating pixel coverage. Use linear alpha blending and gamma */ - /* correction to correctly render non-monochrome glyph bitmaps onto a */ - /* surface; see @FT_Render_Glyph. */ - /* */ - /* <Values> */ - /* FT_RENDER_MODE_NORMAL :: */ - /* This is the default render mode; it corresponds to 8-bit */ - /* anti-aliased bitmaps. */ - /* */ - /* FT_RENDER_MODE_LIGHT :: */ - /* This is equivalent to @FT_RENDER_MODE_NORMAL. It is only */ - /* defined as a separate value because render modes are also used */ - /* indirectly to define hinting algorithm selectors. See */ - /* @FT_LOAD_TARGET_XXX for details. */ - /* */ - /* FT_RENDER_MODE_MONO :: */ - /* This mode corresponds to 1-bit bitmaps (with 2~levels of */ - /* opacity). */ - /* */ - /* FT_RENDER_MODE_LCD :: */ - /* This mode corresponds to horizontal RGB and BGR sub-pixel */ - /* displays like LCD screens. It produces 8-bit bitmaps that are */ - /* 3~times the width of the original glyph outline in pixels, and */ - /* which use the @FT_PIXEL_MODE_LCD mode. */ - /* */ - /* FT_RENDER_MODE_LCD_V :: */ - /* This mode corresponds to vertical RGB and BGR sub-pixel displays */ - /* (like PDA screens, rotated LCD displays, etc.). It produces */ - /* 8-bit bitmaps that are 3~times the height of the original */ - /* glyph outline in pixels and use the @FT_PIXEL_MODE_LCD_V mode. */ - /* */ - /* <Note> */ - /* The LCD-optimized glyph bitmaps produced by FT_Render_Glyph can be */ - /* filtered to reduce color-fringes by using @FT_Library_SetLcdFilter */ - /* (not active in the default builds). It is up to the caller to */ - /* either call @FT_Library_SetLcdFilter (if available) or do the */ - /* filtering itself. */ - /* */ - /* The selected render mode only affects vector glyphs of a font. */ - /* Embedded bitmaps often have a different pixel mode like */ - /* @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform */ - /* them into 8-bit pixmaps. */ - /* */ - typedef enum FT_Render_Mode_ - { - FT_RENDER_MODE_NORMAL = 0, - FT_RENDER_MODE_LIGHT, - FT_RENDER_MODE_MONO, - FT_RENDER_MODE_LCD, - FT_RENDER_MODE_LCD_V, - - FT_RENDER_MODE_MAX - - } FT_Render_Mode; - - - /* these constants are deprecated; use the corresponding */ - /* `FT_Render_Mode' values instead */ -#define ft_render_mode_normal FT_RENDER_MODE_NORMAL -#define ft_render_mode_mono FT_RENDER_MODE_MONO - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Render_Glyph */ - /* */ - /* <Description> */ - /* Convert a given glyph image to a bitmap. It does so by inspecting */ - /* the glyph image format, finding the relevant renderer, and */ - /* invoking it. */ - /* */ - /* When FreeType outputs a bitmap of a glyph, it really outputs an */ - /* alpha coverage map. If a pixel is completely covered by a */ - /* filled-in outline, the bitmap contains 0xFF at that pixel, meaning */ - /* that 0xFF/0xFF fraction of that pixel is covered, meaning the */ - /* pixel is 100% black (or 0% bright). If a pixel is only 50% */ - /* covered (value 0x80), the pixel is made 50% black (50% bright or a */ - /* middle shade of grey). 0% covered means 0% black (100% bright or */ - /* white). */ - /* */ - /* On high-DPI screens like on smartphones and tablets, the pixels */ - /* are so small that their chance of being completely covered and */ - /* therefore completely black are fairly good. On the low-DPI */ - /* screens, however, the situation is different. The pixels are too */ - /* large for most of the details of a glyph and shades of gray are */ - /* the norm rather than the exception. */ - /* */ - /* This is relevant because all our screens have a second problem: */ - /* they are not linear. 1~+~1 is not~2. Twice the value does not */ - /* result in twice the brightness. When a pixel is only 50% covered, */ - /* the coverage map says 50% black, and this translates to a pixel */ - /* value of 128 when you use 8~bits per channel (0-255). However, */ - /* this does not translate to 50% brightness for that pixel on our */ - /* sRGB and gamma~2.2 screens. Due to their non-linearity, they */ - /* dwell longer in the darks and only a pixel value of about 186 */ - /* results in 50% brightness – 128 ends up too dark on both bright */ - /* and dark backgrounds. The net result is that dark text looks */ - /* burnt-out, pixely and blotchy on bright background, bright text */ - /* too frail on dark backgrounds, and colored text on colored */ - /* background (for example, red on green) seems to have dark halos or */ - /* `dirt' around it. The situation is especially ugly for diagonal */ - /* stems like in `w' glyph shapes where the quality of FreeType's */ - /* anti-aliasing depends on the correct display of grays. On */ - /* high-DPI screens where smaller, fully black pixels reign supreme, */ - /* this doesn't matter, but on our low-DPI screens with all the gray */ - /* shades, it does. 0% and 100% brightness are the same things in */ - /* linear and non-linear space, just all the shades in-between */ - /* aren't. */ - /* */ - /* The blending function for placing text over a background is */ - /* */ - /* { */ - /* dst = alpha * src + (1 - alpha) * dst , */ - /* } */ - /* */ - /* which is known as the OVER operator. */ - /* */ - /* To correctly composite an antialiased pixel of a glyph onto a */ - /* surface, */ - /* */ - /* 1. take the foreground and background colors (e.g., in sRGB space) */ - /* and apply gamma to get them in a linear space, */ - /* */ - /* 2. use OVER to blend the two linear colors using the glyph pixel */ - /* as the alpha value (remember, the glyph bitmap is an alpha */ - /* coverage bitmap), and */ - /* */ - /* 3. apply inverse gamma to the blended pixel and write it back to */ - /* the image. */ - /* */ - /* Internal testing at Adobe found that a target inverse gamma of~1.8 */ - /* for step~3 gives good results across a wide range of displays with */ - /* an sRGB gamma curve or a similar one. */ - /* */ - /* This process can cost performance. There is an approximation that */ - /* does not need to know about the background color; see */ - /* https://bel.fi/alankila/lcd/ and */ - /* https://bel.fi/alankila/lcd/alpcor.html for details. */ - /* */ - /* *ATTENTION*: Linear blending is even more important when dealing */ - /* with subpixel-rendered glyphs to prevent color-fringing! A */ - /* subpixel-rendered glyph must first be filtered with a filter that */ - /* gives equal weight to the three color primaries and does not */ - /* exceed a sum of 0x100, see section @lcd_filtering. Then the */ - /* only difference to gray linear blending is that subpixel-rendered */ - /* linear blending is done 3~times per pixel: red foreground subpixel */ - /* to red background subpixel and so on for green and blue. */ - /* */ - /* <InOut> */ - /* slot :: A handle to the glyph slot containing the image to */ - /* convert. */ - /* */ - /* <Input> */ - /* render_mode :: This is the render mode used to render the glyph */ - /* image into a bitmap. See @FT_Render_Mode for a */ - /* list of possible values. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* To get meaningful results, font scaling values must be set with */ - /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Render_Glyph( FT_GlyphSlot slot, - FT_Render_Mode render_mode ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Kerning_Mode */ - /* */ - /* <Description> */ - /* An enumeration used to specify which kerning values to return in */ - /* @FT_Get_Kerning. */ - /* */ - /* <Values> */ - /* FT_KERNING_DEFAULT :: Return grid-fitted kerning distances in */ - /* pixels (value is~0). Whether they are */ - /* scaled depends on @FT_LOAD_NO_SCALE. */ - /* */ - /* FT_KERNING_UNFITTED :: Return un-grid-fitted kerning distances in */ - /* 26.6 fractional pixels. Whether they are */ - /* scaled depends on @FT_LOAD_NO_SCALE. */ - /* */ - /* FT_KERNING_UNSCALED :: Return the kerning vector in original font */ - /* units. */ - /* */ - /* <Note> */ - /* FT_KERNING_DEFAULT returns full pixel values; it also makes */ - /* FreeType heuristically scale down kerning distances at small ppem */ - /* values so that they don't become too big. */ - /* */ - typedef enum FT_Kerning_Mode_ - { - FT_KERNING_DEFAULT = 0, - FT_KERNING_UNFITTED, - FT_KERNING_UNSCALED - - } FT_Kerning_Mode; - - - /* these constants are deprecated; use the corresponding */ - /* `FT_Kerning_Mode' values instead */ -#define ft_kerning_default FT_KERNING_DEFAULT -#define ft_kerning_unfitted FT_KERNING_UNFITTED -#define ft_kerning_unscaled FT_KERNING_UNSCALED - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Kerning */ - /* */ - /* <Description> */ - /* Return the kerning vector between two glyphs of a same face. */ - /* */ - /* <Input> */ - /* face :: A handle to a source face object. */ - /* */ - /* left_glyph :: The index of the left glyph in the kern pair. */ - /* */ - /* right_glyph :: The index of the right glyph in the kern pair. */ - /* */ - /* kern_mode :: See @FT_Kerning_Mode for more information. */ - /* Determines the scale and dimension of the returned */ - /* kerning vector. */ - /* */ - /* <Output> */ - /* akerning :: The kerning vector. This is either in font units, */ - /* fractional pixels (26.6 format), or pixels for */ - /* scalable formats, and in pixels for fixed-sizes */ - /* formats. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Only horizontal layouts (left-to-right & right-to-left) are */ - /* supported by this method. Other layouts, or more sophisticated */ - /* kernings, are out of the scope of this API function -- they can be */ - /* implemented through format-specific interfaces. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Kerning( FT_Face face, - FT_UInt left_glyph, - FT_UInt right_glyph, - FT_UInt kern_mode, - FT_Vector *akerning ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Track_Kerning */ - /* */ - /* <Description> */ - /* Return the track kerning for a given face object at a given size. */ - /* */ - /* <Input> */ - /* face :: A handle to a source face object. */ - /* */ - /* point_size :: The point size in 16.16 fractional points. */ - /* */ - /* degree :: The degree of tightness. Increasingly negative */ - /* values represent tighter track kerning, while */ - /* increasingly positive values represent looser track */ - /* kerning. Value zero means no track kerning. */ - /* */ - /* <Output> */ - /* akerning :: The kerning in 16.16 fractional points, to be */ - /* uniformly applied between all glyphs. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Currently, only the Type~1 font driver supports track kerning, */ - /* using data from AFM files (if attached with @FT_Attach_File or */ - /* @FT_Attach_Stream). */ - /* */ - /* Only very few AFM files come with track kerning data; please refer */ - /* to the Adobe's AFM specification for more details. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Track_Kerning( FT_Face face, - FT_Fixed point_size, - FT_Int degree, - FT_Fixed* akerning ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Glyph_Name */ - /* */ - /* <Description> */ - /* Retrieve the ASCII name of a given glyph in a face. This only */ - /* works for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1. */ - /* */ - /* <Input> */ - /* face :: A handle to a source face object. */ - /* */ - /* glyph_index :: The glyph index. */ - /* */ - /* buffer_max :: The maximum number of bytes available in the */ - /* buffer. */ - /* */ - /* <Output> */ - /* buffer :: A pointer to a target buffer where the name is */ - /* copied to. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* An error is returned if the face doesn't provide glyph names or if */ - /* the glyph index is invalid. In all cases of failure, the first */ - /* byte of `buffer' is set to~0 to indicate an empty name. */ - /* */ - /* The glyph name is truncated to fit within the buffer if it is too */ - /* long. The returned string is always zero-terminated. */ - /* */ - /* Be aware that FreeType reorders glyph indices internally so that */ - /* glyph index~0 always corresponds to the `missing glyph' (called */ - /* `.notdef'). */ - /* */ - /* This function always returns an error if the config macro */ - /* `FT_CONFIG_OPTION_NO_GLYPH_NAMES' is not defined in `ftoptions.h'. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Glyph_Name( FT_Face face, - FT_UInt glyph_index, - FT_Pointer buffer, - FT_UInt buffer_max ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Postscript_Name */ - /* */ - /* <Description> */ - /* Retrieve the ASCII PostScript name of a given face, if available. */ - /* This only works with PostScript and TrueType fonts. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Return> */ - /* A pointer to the face's PostScript name. NULL if unavailable. */ - /* */ - /* <Note> */ - /* The returned pointer is owned by the face and is destroyed with */ - /* it. */ - /* */ - FT_EXPORT( const char* ) - FT_Get_Postscript_Name( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Select_Charmap */ - /* */ - /* <Description> */ - /* Select a given charmap by its encoding tag (as listed in */ - /* `freetype.h'). */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Input> */ - /* encoding :: A handle to the selected encoding. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function returns an error if no charmap in the face */ - /* corresponds to the encoding queried here. */ - /* */ - /* Because many fonts contain more than a single cmap for Unicode */ - /* encoding, this function has some special code to select the one */ - /* that covers Unicode best (`best' in the sense that a UCS-4 cmap is */ - /* preferred to a UCS-2 cmap). It is thus preferable to */ - /* @FT_Set_Charmap in this case. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Select_Charmap( FT_Face face, - FT_Encoding encoding ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Charmap */ - /* */ - /* <Description> */ - /* Select a given charmap for character code to glyph index mapping. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Input> */ - /* charmap :: A handle to the selected charmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function returns an error if the charmap is not part of */ - /* the face (i.e., if it is not listed in the `face->charmaps' */ - /* table). */ - /* */ - /* It also fails if a type~14 charmap is selected. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Charmap( FT_Face face, - FT_CharMap charmap ); - - - /************************************************************************* - * - * @function: - * FT_Get_Charmap_Index - * - * @description: - * Retrieve index of a given charmap. - * - * @input: - * charmap :: - * A handle to a charmap. - * - * @return: - * The index into the array of character maps within the face to which - * `charmap' belongs. If an error occurs, -1 is returned. - * - */ - FT_EXPORT( FT_Int ) - FT_Get_Charmap_Index( FT_CharMap charmap ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Char_Index */ - /* */ - /* <Description> */ - /* Return the glyph index of a given character code. This function */ - /* uses a charmap object to do the mapping. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* charcode :: The character code. */ - /* */ - /* <Return> */ - /* The glyph index. 0~means `undefined character code'. */ - /* */ - /* <Note> */ - /* If you use FreeType to manipulate the contents of font files */ - /* directly, be aware that the glyph index returned by this function */ - /* doesn't always correspond to the internal indices used within the */ - /* file. This is done to ensure that value~0 always corresponds to */ - /* the `missing glyph'. If the first glyph is not named `.notdef', */ - /* then for Type~1 and Type~42 fonts, `.notdef' will be moved into */ - /* the glyph ID~0 position, and whatever was there will be moved to */ - /* the position `.notdef' had. For Type~1 fonts, if there is no */ - /* `.notdef' glyph at all, then one will be created at index~0 and */ - /* whatever was there will be moved to the last index -- Type~42 */ - /* fonts are considered invalid under this condition. */ - /* */ - FT_EXPORT( FT_UInt ) - FT_Get_Char_Index( FT_Face face, - FT_ULong charcode ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_First_Char */ - /* */ - /* <Description> */ - /* This function is used to return the first character code in the */ - /* current charmap of a given face. It also returns the */ - /* corresponding glyph index. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Output> */ - /* agindex :: Glyph index of first character code. 0~if charmap is */ - /* empty. */ - /* */ - /* <Return> */ - /* The charmap's first character code. */ - /* */ - /* <Note> */ - /* You should use this function with @FT_Get_Next_Char to be able to */ - /* parse all character codes available in a given charmap. The code */ - /* should look like this: */ - /* */ - /* { */ - /* FT_ULong charcode; */ - /* FT_UInt gindex; */ - /* */ - /* */ - /* charcode = FT_Get_First_Char( face, &gindex ); */ - /* while ( gindex != 0 ) */ - /* { */ - /* ... do something with (charcode,gindex) pair ... */ - /* */ - /* charcode = FT_Get_Next_Char( face, charcode, &gindex ); */ - /* } */ - /* } */ - /* */ - /* Be aware that character codes can have values up to 0xFFFFFFFF; */ - /* this might happen for non-Unicode or malformed cmaps. However, */ - /* even with regular Unicode encoding, so-called `last resort fonts' */ - /* (using SFNT cmap format 13, see function @FT_Get_CMap_Format) */ - /* normally have entries for all Unicode characters up to 0x1FFFFF, */ - /* which can cause *a lot* of iterations. */ - /* */ - /* Note that `*agindex' is set to~0 if the charmap is empty. The */ - /* result itself can be~0 in two cases: if the charmap is empty or */ - /* if the value~0 is the first valid character code. */ - /* */ - FT_EXPORT( FT_ULong ) - FT_Get_First_Char( FT_Face face, - FT_UInt *agindex ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Next_Char */ - /* */ - /* <Description> */ - /* This function is used to return the next character code in the */ - /* current charmap of a given face following the value `char_code', */ - /* as well as the corresponding glyph index. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* char_code :: The starting character code. */ - /* */ - /* <Output> */ - /* agindex :: Glyph index of next character code. 0~if charmap */ - /* is empty. */ - /* */ - /* <Return> */ - /* The charmap's next character code. */ - /* */ - /* <Note> */ - /* You should use this function with @FT_Get_First_Char to walk */ - /* over all character codes available in a given charmap. See the */ - /* note for this function for a simple code example. */ - /* */ - /* Note that `*agindex' is set to~0 when there are no more codes in */ - /* the charmap. */ - /* */ - FT_EXPORT( FT_ULong ) - FT_Get_Next_Char( FT_Face face, - FT_ULong char_code, - FT_UInt *agindex ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Name_Index */ - /* */ - /* <Description> */ - /* Return the glyph index of a given glyph name. This function uses */ - /* driver specific objects to do the translation. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* glyph_name :: The glyph name. */ - /* */ - /* <Return> */ - /* The glyph index. 0~means `undefined character code'. */ - /* */ - FT_EXPORT( FT_UInt ) - FT_Get_Name_Index( FT_Face face, - FT_String* glyph_name ); - - - /************************************************************************* - * - * @macro: - * FT_SUBGLYPH_FLAG_XXX - * - * @description: - * A list of constants used to describe subglyphs. Please refer to the - * TrueType specification for the meaning of the various flags. - * - * @values: - * FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS :: - * FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES :: - * FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID :: - * FT_SUBGLYPH_FLAG_SCALE :: - * FT_SUBGLYPH_FLAG_XY_SCALE :: - * FT_SUBGLYPH_FLAG_2X2 :: - * FT_SUBGLYPH_FLAG_USE_MY_METRICS :: - * - */ -#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS 1 -#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES 2 -#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID 4 -#define FT_SUBGLYPH_FLAG_SCALE 8 -#define FT_SUBGLYPH_FLAG_XY_SCALE 0x40 -#define FT_SUBGLYPH_FLAG_2X2 0x80 -#define FT_SUBGLYPH_FLAG_USE_MY_METRICS 0x200 - - - /************************************************************************* - * - * @func: - * FT_Get_SubGlyph_Info - * - * @description: - * Retrieve a description of a given subglyph. Only use it if - * `glyph->format' is @FT_GLYPH_FORMAT_COMPOSITE; an error is - * returned otherwise. - * - * @input: - * glyph :: - * The source glyph slot. - * - * sub_index :: - * The index of the subglyph. Must be less than - * `glyph->num_subglyphs'. - * - * @output: - * p_index :: - * The glyph index of the subglyph. - * - * p_flags :: - * The subglyph flags, see @FT_SUBGLYPH_FLAG_XXX. - * - * p_arg1 :: - * The subglyph's first argument (if any). - * - * p_arg2 :: - * The subglyph's second argument (if any). - * - * p_transform :: - * The subglyph transformation (if any). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The values of `*p_arg1', `*p_arg2', and `*p_transform' must be - * interpreted depending on the flags returned in `*p_flags'. See the - * TrueType specification for details. - * - */ - FT_EXPORT( FT_Error ) - FT_Get_SubGlyph_Info( FT_GlyphSlot glyph, - FT_UInt sub_index, - FT_Int *p_index, - FT_UInt *p_flags, - FT_Int *p_arg1, - FT_Int *p_arg2, - FT_Matrix *p_transform ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_FSTYPE_XXX */ - /* */ - /* <Description> */ - /* A list of bit flags used in the `fsType' field of the OS/2 table */ - /* in a TrueType or OpenType font and the `FSType' entry in a */ - /* PostScript font. These bit flags are returned by */ - /* @FT_Get_FSType_Flags; they inform client applications of embedding */ - /* and subsetting restrictions associated with a font. */ - /* */ - /* See */ - /* http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf */ - /* for more details. */ - /* */ - /* <Values> */ - /* FT_FSTYPE_INSTALLABLE_EMBEDDING :: */ - /* Fonts with no fsType bit set may be embedded and permanently */ - /* installed on the remote system by an application. */ - /* */ - /* FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING :: */ - /* Fonts that have only this bit set must not be modified, embedded */ - /* or exchanged in any manner without first obtaining permission of */ - /* the font software copyright owner. */ - /* */ - /* FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING :: */ - /* If this bit is set, the font may be embedded and temporarily */ - /* loaded on the remote system. Documents containing Preview & */ - /* Print fonts must be opened `read-only'; no edits can be applied */ - /* to the document. */ - /* */ - /* FT_FSTYPE_EDITABLE_EMBEDDING :: */ - /* If this bit is set, the font may be embedded but must only be */ - /* installed temporarily on other systems. In contrast to Preview */ - /* & Print fonts, documents containing editable fonts may be opened */ - /* for reading, editing is permitted, and changes may be saved. */ - /* */ - /* FT_FSTYPE_NO_SUBSETTING :: */ - /* If this bit is set, the font may not be subsetted prior to */ - /* embedding. */ - /* */ - /* FT_FSTYPE_BITMAP_EMBEDDING_ONLY :: */ - /* If this bit is set, only bitmaps contained in the font may be */ - /* embedded; no outline data may be embedded. If there are no */ - /* bitmaps available in the font, then the font is unembeddable. */ - /* */ - /* <Note> */ - /* The flags are ORed together, thus more than a single value can be */ - /* returned. */ - /* */ - /* While the fsType flags can indicate that a font may be embedded, a */ - /* license with the font vendor may be separately required to use the */ - /* font in this way. */ - /* */ -#define FT_FSTYPE_INSTALLABLE_EMBEDDING 0x0000 -#define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING 0x0002 -#define FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING 0x0004 -#define FT_FSTYPE_EDITABLE_EMBEDDING 0x0008 -#define FT_FSTYPE_NO_SUBSETTING 0x0100 -#define FT_FSTYPE_BITMAP_EMBEDDING_ONLY 0x0200 - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_FSType_Flags */ - /* */ - /* <Description> */ - /* Return the fsType flags for a font. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Return> */ - /* The fsType flags, @FT_FSTYPE_XXX. */ - /* */ - /* <Note> */ - /* Use this function rather than directly reading the `fs_type' field */ - /* in the @PS_FontInfoRec structure, which is only guaranteed to */ - /* return the correct results for Type~1 fonts. */ - /* */ - /* <Since> */ - /* 2.3.8 */ - /* */ - FT_EXPORT( FT_UShort ) - FT_Get_FSType_Flags( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* glyph_variants */ - /* */ - /* <Title> */ - /* Glyph Variants */ - /* */ - /* <Abstract> */ - /* The FreeType~2 interface to Unicode Ideographic Variation */ - /* Sequences (IVS), using the SFNT cmap format~14. */ - /* */ - /* <Description> */ - /* Many CJK characters have variant forms. They are a sort of grey */ - /* area somewhere between being totally irrelevant and semantically */ - /* distinct; for this reason, the Unicode consortium decided to */ - /* introduce Ideographic Variation Sequences (IVS), consisting of a */ - /* Unicode base character and one of 240 variant selectors */ - /* (U+E0100-U+E01EF), instead of further extending the already huge */ - /* code range for CJK characters. */ - /* */ - /* An IVS is registered and unique; for further details please refer */ - /* to Unicode Technical Standard #37, the Ideographic Variation */ - /* Database: */ - /* */ - /* http://www.unicode.org/reports/tr37/ */ - /* */ - /* To date (November 2014), the character with the most variants is */ - /* U+9089, having 32 such IVS. */ - /* */ - /* Adobe and MS decided to support IVS with a new cmap subtable */ - /* (format~14). It is an odd subtable because it is not a mapping of */ - /* input code points to glyphs, but contains lists of all variants */ - /* supported by the font. */ - /* */ - /* A variant may be either `default' or `non-default'. A default */ - /* variant is the one you will get for that code point if you look it */ - /* up in the standard Unicode cmap. A non-default variant is a */ - /* different glyph. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetCharVariantIndex */ - /* */ - /* <Description> */ - /* Return the glyph index of a given character code as modified by */ - /* the variation selector. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* charcode :: */ - /* The character code point in Unicode. */ - /* */ - /* variantSelector :: */ - /* The Unicode code point of the variation selector. */ - /* */ - /* <Return> */ - /* The glyph index. 0~means either `undefined character code', or */ - /* `undefined selector code', or `no variation selector cmap */ - /* subtable', or `current CharMap is not Unicode'. */ - /* */ - /* <Note> */ - /* If you use FreeType to manipulate the contents of font files */ - /* directly, be aware that the glyph index returned by this function */ - /* doesn't always correspond to the internal indices used within */ - /* the file. This is done to ensure that value~0 always corresponds */ - /* to the `missing glyph'. */ - /* */ - /* This function is only meaningful if */ - /* a) the font has a variation selector cmap sub table, */ - /* and */ - /* b) the current charmap has a Unicode encoding. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_UInt ) - FT_Face_GetCharVariantIndex( FT_Face face, - FT_ULong charcode, - FT_ULong variantSelector ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetCharVariantIsDefault */ - /* */ - /* <Description> */ - /* Check whether this variant of this Unicode character is the one to */ - /* be found in the `cmap'. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* charcode :: */ - /* The character codepoint in Unicode. */ - /* */ - /* variantSelector :: */ - /* The Unicode codepoint of the variation selector. */ - /* */ - /* <Return> */ - /* 1~if found in the standard (Unicode) cmap, 0~if found in the */ - /* variation selector cmap, or -1 if it is not a variant. */ - /* */ - /* <Note> */ - /* This function is only meaningful if the font has a variation */ - /* selector cmap subtable. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_Int ) - FT_Face_GetCharVariantIsDefault( FT_Face face, - FT_ULong charcode, - FT_ULong variantSelector ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetVariantSelectors */ - /* */ - /* <Description> */ - /* Return a zero-terminated list of Unicode variant selectors found */ - /* in the font. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* <Return> */ - /* A pointer to an array of selector code points, or NULL if there is */ - /* no valid variant selector cmap subtable. */ - /* */ - /* <Note> */ - /* The last item in the array is~0; the array is owned by the */ - /* @FT_Face object but can be overwritten or released on the next */ - /* call to a FreeType function. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_UInt32* ) - FT_Face_GetVariantSelectors( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetVariantsOfChar */ - /* */ - /* <Description> */ - /* Return a zero-terminated list of Unicode variant selectors found */ - /* for the specified character code. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* charcode :: */ - /* The character codepoint in Unicode. */ - /* */ - /* <Return> */ - /* A pointer to an array of variant selector code points that are */ - /* active for the given character, or NULL if the corresponding list */ - /* is empty. */ - /* */ - /* <Note> */ - /* The last item in the array is~0; the array is owned by the */ - /* @FT_Face object but can be overwritten or released on the next */ - /* call to a FreeType function. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_UInt32* ) - FT_Face_GetVariantsOfChar( FT_Face face, - FT_ULong charcode ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetCharsOfVariant */ - /* */ - /* <Description> */ - /* Return a zero-terminated list of Unicode character codes found for */ - /* the specified variant selector. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* variantSelector :: */ - /* The variant selector code point in Unicode. */ - /* */ - /* <Return> */ - /* A list of all the code points that are specified by this selector */ - /* (both default and non-default codes are returned) or NULL if there */ - /* is no valid cmap or the variant selector is invalid. */ - /* */ - /* <Note> */ - /* The last item in the array is~0; the array is owned by the */ - /* @FT_Face object but can be overwritten or released on the next */ - /* call to a FreeType function. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_UInt32* ) - FT_Face_GetCharsOfVariant( FT_Face face, - FT_ULong variantSelector ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* computations */ - /* */ - /* <Title> */ - /* Computations */ - /* */ - /* <Abstract> */ - /* Crunching fixed numbers and vectors. */ - /* */ - /* <Description> */ - /* This section contains various functions used to perform */ - /* computations on 16.16 fixed-float numbers or 2d vectors. */ - /* */ - /* <Order> */ - /* FT_MulDiv */ - /* FT_MulFix */ - /* FT_DivFix */ - /* FT_RoundFix */ - /* FT_CeilFix */ - /* FT_FloorFix */ - /* FT_Vector_Transform */ - /* FT_Matrix_Multiply */ - /* FT_Matrix_Invert */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_MulDiv */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation `(a*b)/c' */ - /* with maximum accuracy (it uses a 64-bit intermediate integer */ - /* whenever necessary). */ - /* */ - /* This function isn't necessarily as fast as some processor specific */ - /* operations, but is at least completely portable. */ - /* */ - /* <Input> */ - /* a :: The first multiplier. */ - /* b :: The second multiplier. */ - /* c :: The divisor. */ - /* */ - /* <Return> */ - /* The result of `(a*b)/c'. This function never traps when trying to */ - /* divide by zero; it simply returns `MaxInt' or `MinInt' depending */ - /* on the signs of `a' and `b'. */ - /* */ - FT_EXPORT( FT_Long ) - FT_MulDiv( FT_Long a, - FT_Long b, - FT_Long c ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_MulFix */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation */ - /* `(a*b)/0x10000' with maximum accuracy. Most of the time this is */ - /* used to multiply a given value by a 16.16 fixed-point factor. */ - /* */ - /* <Input> */ - /* a :: The first multiplier. */ - /* b :: The second multiplier. Use a 16.16 factor here whenever */ - /* possible (see note below). */ - /* */ - /* <Return> */ - /* The result of `(a*b)/0x10000'. */ - /* */ - /* <Note> */ - /* This function has been optimized for the case where the absolute */ - /* value of `a' is less than 2048, and `b' is a 16.16 scaling factor. */ - /* As this happens mainly when scaling from notional units to */ - /* fractional pixels in FreeType, it resulted in noticeable speed */ - /* improvements between versions 2.x and 1.x. */ - /* */ - /* As a conclusion, always try to place a 16.16 factor as the */ - /* _second_ argument of this function; this can make a great */ - /* difference. */ - /* */ - FT_EXPORT( FT_Long ) - FT_MulFix( FT_Long a, - FT_Long b ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_DivFix */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation */ - /* `(a*0x10000)/b' with maximum accuracy. Most of the time, this is */ - /* used to divide a given value by a 16.16 fixed-point factor. */ - /* */ - /* <Input> */ - /* a :: The numerator. */ - /* b :: The denominator. Use a 16.16 factor here. */ - /* */ - /* <Return> */ - /* The result of `(a*0x10000)/b'. */ - /* */ - FT_EXPORT( FT_Long ) - FT_DivFix( FT_Long a, - FT_Long b ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_RoundFix */ - /* */ - /* <Description> */ - /* A very simple function used to round a 16.16 fixed number. */ - /* */ - /* <Input> */ - /* a :: The number to be rounded. */ - /* */ - /* <Return> */ - /* `a' rounded to nearest 16.16 fixed integer, halfway cases away */ - /* from zero. */ - /* */ - FT_EXPORT( FT_Fixed ) - FT_RoundFix( FT_Fixed a ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_CeilFix */ - /* */ - /* <Description> */ - /* A very simple function used to compute the ceiling function of a */ - /* 16.16 fixed number. */ - /* */ - /* <Input> */ - /* a :: The number for which the ceiling function is to be computed. */ - /* */ - /* <Return> */ - /* `a' rounded towards plus infinity. */ - /* */ - FT_EXPORT( FT_Fixed ) - FT_CeilFix( FT_Fixed a ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_FloorFix */ - /* */ - /* <Description> */ - /* A very simple function used to compute the floor function of a */ - /* 16.16 fixed number. */ - /* */ - /* <Input> */ - /* a :: The number for which the floor function is to be computed. */ - /* */ - /* <Return> */ - /* `a' rounded towards minus infinity. */ - /* */ - FT_EXPORT( FT_Fixed ) - FT_FloorFix( FT_Fixed a ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Vector_Transform */ - /* */ - /* <Description> */ - /* Transform a single vector through a 2x2 matrix. */ - /* */ - /* <InOut> */ - /* vector :: The target vector to transform. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to the source 2x2 matrix. */ - /* */ - /* <Note> */ - /* The result is undefined if either `vector' or `matrix' is invalid. */ - /* */ - FT_EXPORT( void ) - FT_Vector_Transform( FT_Vector* vec, - const FT_Matrix* matrix ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* version */ - /* */ - /* <Title> */ - /* FreeType Version */ - /* */ - /* <Abstract> */ - /* Functions and macros related to FreeType versions. */ - /* */ - /* <Description> */ - /* Note that those functions and macros are of limited use because */ - /* even a new release of FreeType with only documentation changes */ - /* increases the version number. */ - /* */ - /* <Order> */ - /* FT_Library_Version */ - /* */ - /* FREETYPE_MAJOR */ - /* FREETYPE_MINOR */ - /* FREETYPE_PATCH */ - /* */ - /* FT_Face_CheckTrueTypePatents */ - /* FT_Face_SetUnpatentedHinting */ - /* */ - /* FREETYPE_XXX */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @enum: - * FREETYPE_XXX - * - * @description: - * These three macros identify the FreeType source code version. - * Use @FT_Library_Version to access them at runtime. - * - * @values: - * FREETYPE_MAJOR :: The major version number. - * FREETYPE_MINOR :: The minor version number. - * FREETYPE_PATCH :: The patch level. - * - * @note: - * The version number of FreeType if built as a dynamic link library - * with the `libtool' package is _not_ controlled by these three - * macros. - * - */ -#define FREETYPE_MAJOR 2 -#define FREETYPE_MINOR 6 -#define FREETYPE_PATCH 2 - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Library_Version */ - /* */ - /* <Description> */ - /* Return the version of the FreeType library being used. This is */ - /* useful when dynamically linking to the library, since one cannot */ - /* use the macros @FREETYPE_MAJOR, @FREETYPE_MINOR, and */ - /* @FREETYPE_PATCH. */ - /* */ - /* <Input> */ - /* library :: A source library handle. */ - /* */ - /* <Output> */ - /* amajor :: The major version number. */ - /* */ - /* aminor :: The minor version number. */ - /* */ - /* apatch :: The patch version number. */ - /* */ - /* <Note> */ - /* The reason why this function takes a `library' argument is because */ - /* certain programs implement library initialization in a custom way */ - /* that doesn't use @FT_Init_FreeType. */ - /* */ - /* In such cases, the library version might not be available before */ - /* the library object has been created. */ - /* */ - FT_EXPORT( void ) - FT_Library_Version( FT_Library library, - FT_Int *amajor, - FT_Int *aminor, - FT_Int *apatch ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_CheckTrueTypePatents */ - /* */ - /* <Description> */ - /* Parse all bytecode instructions of a TrueType font file to check */ - /* whether any of the patented opcodes are used. This is only useful */ - /* if you want to be able to use the unpatented hinter with */ - /* fonts that do *not* use these opcodes. */ - /* */ - /* Note that this function parses *all* glyph instructions in the */ - /* font file, which may be slow. */ - /* */ - /* <Input> */ - /* face :: A face handle. */ - /* */ - /* <Return> */ - /* 1~if this is a TrueType font that uses one of the patented */ - /* opcodes, 0~otherwise. */ - /* */ - /* <Note> */ - /* Since May 2010, TrueType hinting is no longer patented. */ - /* */ - /* <Since> */ - /* 2.3.5 */ - /* */ - FT_EXPORT( FT_Bool ) - FT_Face_CheckTrueTypePatents( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_SetUnpatentedHinting */ - /* */ - /* <Description> */ - /* Enable or disable the unpatented hinter for a given face. */ - /* Only enable it if you have determined that the face doesn't */ - /* use any patented opcodes (see @FT_Face_CheckTrueTypePatents). */ - /* */ - /* <Input> */ - /* face :: A face handle. */ - /* */ - /* value :: New boolean setting. */ - /* */ - /* <Return> */ - /* The old setting value. This will always be false if this is not */ - /* an SFNT font, or if the unpatented hinter is not compiled in this */ - /* instance of the library. */ - /* */ - /* <Note> */ - /* Since May 2010, TrueType hinting is no longer patented. */ - /* */ - /* <Since> */ - /* 2.3.5 */ - /* */ - FT_EXPORT( FT_Bool ) - FT_Face_SetUnpatentedHinting( FT_Face face, - FT_Bool value ); - - /* */ - - -FT_END_HEADER - -#endif /* __FREETYPE_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftadvanc.h b/lib/osx/include/freetype/ftadvanc.h deleted file mode 100644 index b4d2aed..0000000 --- a/lib/osx/include/freetype/ftadvanc.h +++ /dev/null @@ -1,187 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftadvanc.h */ -/* */ -/* Quick computation of advance widths (specification only). */ -/* */ -/* Copyright 2008-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTADVANC_H__ -#define __FTADVANC_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * quick_advance - * - * @title: - * Quick retrieval of advance values - * - * @abstract: - * Retrieve horizontal and vertical advance values without processing - * glyph outlines, if possible. - * - * @description: - * This section contains functions to quickly extract advance values - * without handling glyph outlines, if possible. - * - * @order: - * FT_Get_Advance - * FT_Get_Advances - * - */ - - - /*************************************************************************/ - /* */ - /* <Const> */ - /* FT_ADVANCE_FLAG_FAST_ONLY */ - /* */ - /* <Description> */ - /* A bit-flag to be OR-ed with the `flags' parameter of the */ - /* @FT_Get_Advance and @FT_Get_Advances functions. */ - /* */ - /* If set, it indicates that you want these functions to fail if the */ - /* corresponding hinting mode or font driver doesn't allow for very */ - /* quick advance computation. */ - /* */ - /* Typically, glyphs that are either unscaled, unhinted, bitmapped, */ - /* or light-hinted can have their advance width computed very */ - /* quickly. */ - /* */ - /* Normal and bytecode hinted modes that require loading, scaling, */ - /* and hinting of the glyph outline, are extremely slow by */ - /* comparison. */ - /* */ -#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000L - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Advance */ - /* */ - /* <Description> */ - /* Retrieve the advance value of a given glyph outline in an */ - /* @FT_Face. */ - /* */ - /* <Input> */ - /* face :: The source @FT_Face handle. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* load_flags :: A set of bit flags similar to those used when */ - /* calling @FT_Load_Glyph, used to determine what kind */ - /* of advances you need. */ - /* <Output> */ - /* padvance :: The advance value. If scaling is performed (based on */ - /* the value of `load_flags'), the advance value is in */ - /* 16.16 format. Otherwise, it is in font units. */ - /* */ - /* If @FT_LOAD_VERTICAL_LAYOUT is set, this is the */ - /* vertical advance corresponding to a vertical layout. */ - /* Otherwise, it is the horizontal advance in a */ - /* horizontal layout. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ - /* if the corresponding font backend doesn't have a quick way to */ - /* retrieve the advances. */ - /* */ - /* A scaled advance is returned in 16.16 format but isn't transformed */ - /* by the affine transformation specified by @FT_Set_Transform. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Advance( FT_Face face, - FT_UInt gindex, - FT_Int32 load_flags, - FT_Fixed *padvance ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Advances */ - /* */ - /* <Description> */ - /* Retrieve the advance values of several glyph outlines in an */ - /* @FT_Face. */ - /* */ - /* <Input> */ - /* face :: The source @FT_Face handle. */ - /* */ - /* start :: The first glyph index. */ - /* */ - /* count :: The number of advance values you want to retrieve. */ - /* */ - /* load_flags :: A set of bit flags similar to those used when */ - /* calling @FT_Load_Glyph. */ - /* */ - /* <Output> */ - /* padvance :: The advance values. This array, to be provided by the */ - /* caller, must contain at least `count' elements. */ - /* */ - /* If scaling is performed (based on the value of */ - /* `load_flags'), the advance values are in 16.16 format. */ - /* Otherwise, they are in font units. */ - /* */ - /* If @FT_LOAD_VERTICAL_LAYOUT is set, these are the */ - /* vertical advances corresponding to a vertical layout. */ - /* Otherwise, they are the horizontal advances in a */ - /* horizontal layout. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ - /* if the corresponding font backend doesn't have a quick way to */ - /* retrieve the advances. */ - /* */ - /* Scaled advances are returned in 16.16 format but aren't */ - /* transformed by the affine transformation specified by */ - /* @FT_Set_Transform. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Advances( FT_Face face, - FT_UInt start, - FT_UInt count, - FT_Int32 load_flags, - FT_Fixed *padvances ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTADVANC_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftautoh.h b/lib/osx/include/freetype/ftautoh.h deleted file mode 100644 index d0f6445..0000000 --- a/lib/osx/include/freetype/ftautoh.h +++ /dev/null @@ -1,503 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftautoh.h */ -/* */ -/* FreeType API for controlling the auto-hinter (specification only). */ -/* */ -/* Copyright 2012-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTAUTOH_H__ -#define __FTAUTOH_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * auto_hinter - * - * @title: - * The auto-hinter - * - * @abstract: - * Controlling the auto-hinting module. - * - * @description: - * While FreeType's auto-hinter doesn't expose API functions by itself, - * it is possible to control its behaviour with @FT_Property_Set and - * @FT_Property_Get. The following lists the available properties - * together with the necessary macros and structures. - * - * Note that the auto-hinter's module name is `autofitter' for - * historical reasons. - * - */ - - - /************************************************************************** - * - * @property: - * glyph-to-script-map - * - * @description: - * *Experimental* *only* - * - * The auto-hinter provides various script modules to hint glyphs. - * Examples of supported scripts are Latin or CJK. Before a glyph is - * auto-hinted, the Unicode character map of the font gets examined, and - * the script is then determined based on Unicode character ranges, see - * below. - * - * OpenType fonts, however, often provide much more glyphs than - * character codes (small caps, superscripts, ligatures, swashes, etc.), - * to be controlled by so-called `features'. Handling OpenType features - * can be quite complicated and thus needs a separate library on top of - * FreeType. - * - * The mapping between glyph indices and scripts (in the auto-hinter - * sense, see the @FT_AUTOHINTER_SCRIPT_XXX values) is stored as an - * array with `num_glyphs' elements, as found in the font's @FT_Face - * structure. The `glyph-to-script-map' property returns a pointer to - * this array, which can be modified as needed. Note that the - * modification should happen before the first glyph gets processed by - * the auto-hinter so that the global analysis of the font shapes - * actually uses the modified mapping. - * - * The following example code demonstrates how to access it (omitting - * the error handling). - * - * { - * FT_Library library; - * FT_Face face; - * FT_Prop_GlyphToScriptMap prop; - * - * - * FT_Init_FreeType( &library ); - * FT_New_Face( library, "foo.ttf", 0, &face ); - * - * prop.face = face; - * - * FT_Property_Get( library, "autofitter", - * "glyph-to-script-map", &prop ); - * - * // adjust `prop.map' as needed right here - * - * FT_Load_Glyph( face, ..., FT_LOAD_FORCE_AUTOHINT ); - * } - * - */ - - - /************************************************************************** - * - * @enum: - * FT_AUTOHINTER_SCRIPT_XXX - * - * @description: - * *Experimental* *only* - * - * A list of constants used for the @glyph-to-script-map property to - * specify the script submodule the auto-hinter should use for hinting a - * particular glyph. - * - * @values: - * FT_AUTOHINTER_SCRIPT_NONE :: - * Don't auto-hint this glyph. - * - * FT_AUTOHINTER_SCRIPT_LATIN :: - * Apply the latin auto-hinter. For the auto-hinter, `latin' is a - * very broad term, including Cyrillic and Greek also since characters - * from those scripts share the same design constraints. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * { - * U+0020 - U+007F // Basic Latin (no control characters) - * U+00A0 - U+00FF // Latin-1 Supplement (no control characters) - * U+0100 - U+017F // Latin Extended-A - * U+0180 - U+024F // Latin Extended-B - * U+0250 - U+02AF // IPA Extensions - * U+02B0 - U+02FF // Spacing Modifier Letters - * U+0300 - U+036F // Combining Diacritical Marks - * U+0370 - U+03FF // Greek and Coptic - * U+0400 - U+04FF // Cyrillic - * U+0500 - U+052F // Cyrillic Supplement - * U+1D00 - U+1D7F // Phonetic Extensions - * U+1D80 - U+1DBF // Phonetic Extensions Supplement - * U+1DC0 - U+1DFF // Combining Diacritical Marks Supplement - * U+1E00 - U+1EFF // Latin Extended Additional - * U+1F00 - U+1FFF // Greek Extended - * U+2000 - U+206F // General Punctuation - * U+2070 - U+209F // Superscripts and Subscripts - * U+20A0 - U+20CF // Currency Symbols - * U+2150 - U+218F // Number Forms - * U+2460 - U+24FF // Enclosed Alphanumerics - * U+2C60 - U+2C7F // Latin Extended-C - * U+2DE0 - U+2DFF // Cyrillic Extended-A - * U+2E00 - U+2E7F // Supplemental Punctuation - * U+A640 - U+A69F // Cyrillic Extended-B - * U+A720 - U+A7FF // Latin Extended-D - * U+FB00 - U+FB06 // Alphab. Present. Forms (Latin Ligatures) - * U+1D400 - U+1D7FF // Mathematical Alphanumeric Symbols - * U+1F100 - U+1F1FF // Enclosed Alphanumeric Supplement - * } - * - * FT_AUTOHINTER_SCRIPT_CJK :: - * Apply the CJK auto-hinter, covering Chinese, Japanese, Korean, old - * Vietnamese, and some other scripts. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * { - * U+1100 - U+11FF // Hangul Jamo - * U+2E80 - U+2EFF // CJK Radicals Supplement - * U+2F00 - U+2FDF // Kangxi Radicals - * U+2FF0 - U+2FFF // Ideographic Description Characters - * U+3000 - U+303F // CJK Symbols and Punctuation - * U+3040 - U+309F // Hiragana - * U+30A0 - U+30FF // Katakana - * U+3100 - U+312F // Bopomofo - * U+3130 - U+318F // Hangul Compatibility Jamo - * U+3190 - U+319F // Kanbun - * U+31A0 - U+31BF // Bopomofo Extended - * U+31C0 - U+31EF // CJK Strokes - * U+31F0 - U+31FF // Katakana Phonetic Extensions - * U+3200 - U+32FF // Enclosed CJK Letters and Months - * U+3300 - U+33FF // CJK Compatibility - * U+3400 - U+4DBF // CJK Unified Ideographs Extension A - * U+4DC0 - U+4DFF // Yijing Hexagram Symbols - * U+4E00 - U+9FFF // CJK Unified Ideographs - * U+A960 - U+A97F // Hangul Jamo Extended-A - * U+AC00 - U+D7AF // Hangul Syllables - * U+D7B0 - U+D7FF // Hangul Jamo Extended-B - * U+F900 - U+FAFF // CJK Compatibility Ideographs - * U+FE10 - U+FE1F // Vertical forms - * U+FE30 - U+FE4F // CJK Compatibility Forms - * U+FF00 - U+FFEF // Halfwidth and Fullwidth Forms - * U+1B000 - U+1B0FF // Kana Supplement - * U+1D300 - U+1D35F // Tai Xuan Hing Symbols - * U+1F200 - U+1F2FF // Enclosed Ideographic Supplement - * U+20000 - U+2A6DF // CJK Unified Ideographs Extension B - * U+2A700 - U+2B73F // CJK Unified Ideographs Extension C - * U+2B740 - U+2B81F // CJK Unified Ideographs Extension D - * U+2F800 - U+2FA1F // CJK Compatibility Ideographs Supplement - * } - * - * FT_AUTOHINTER_SCRIPT_INDIC :: - * Apply the indic auto-hinter, covering all major scripts from the - * Indian sub-continent and some other related scripts like Thai, Lao, - * or Tibetan. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * { - * U+0900 - U+0DFF // Indic Range - * U+0F00 - U+0FFF // Tibetan - * U+1900 - U+194F // Limbu - * U+1B80 - U+1BBF // Sundanese - * U+1C80 - U+1CDF // Meetei Mayak - * U+A800 - U+A82F // Syloti Nagri - * U+11800 - U+118DF // Sharada - * } - * - * Note that currently Indic support is rudimentary only, missing blue - * zone support. - * - */ -#define FT_AUTOHINTER_SCRIPT_NONE 0 -#define FT_AUTOHINTER_SCRIPT_LATIN 1 -#define FT_AUTOHINTER_SCRIPT_CJK 2 -#define FT_AUTOHINTER_SCRIPT_INDIC 3 - - - /************************************************************************** - * - * @struct: - * FT_Prop_GlyphToScriptMap - * - * @description: - * *Experimental* *only* - * - * The data exchange structure for the @glyph-to-script-map property. - * - */ - typedef struct FT_Prop_GlyphToScriptMap_ - { - FT_Face face; - FT_UShort* map; - - } FT_Prop_GlyphToScriptMap; - - - /************************************************************************** - * - * @property: - * fallback-script - * - * @description: - * *Experimental* *only* - * - * If no auto-hinter script module can be assigned to a glyph, a - * fallback script gets assigned to it (see also the - * @glyph-to-script-map property). By default, this is - * @FT_AUTOHINTER_SCRIPT_CJK. Using the `fallback-script' property, - * this fallback value can be changed. - * - * { - * FT_Library library; - * FT_UInt fallback_script = FT_AUTOHINTER_SCRIPT_NONE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", - * "fallback-script", &fallback_script ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * It's important to use the right timing for changing this value: The - * creation of the glyph-to-script map that eventually uses the - * fallback script value gets triggered either by setting or reading a - * face-specific property like @glyph-to-script-map, or by auto-hinting - * any glyph from that face. In particular, if you have already created - * an @FT_Face structure but not loaded any glyph (using the - * auto-hinter), a change of the fallback script will affect this face. - * - */ - - - /************************************************************************** - * - * @property: - * default-script - * - * @description: - * *Experimental* *only* - * - * If FreeType gets compiled with FT_CONFIG_OPTION_USE_HARFBUZZ to make - * the HarfBuzz library access OpenType features for getting better - * glyph coverages, this property sets the (auto-fitter) script to be - * used for the default (OpenType) script data of a font's GSUB table. - * Features for the default script are intended for all scripts not - * explicitly handled in GSUB; an example is a `dlig' feature, - * containing the combination of the characters `T', `E', and `L' to - * form a `TEL' ligature. - * - * By default, this is @FT_AUTOHINTER_SCRIPT_LATIN. Using the - * `default-script' property, this default value can be changed. - * - * { - * FT_Library library; - * FT_UInt default_script = FT_AUTOHINTER_SCRIPT_NONE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", - * "default-script", &default_script ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * It's important to use the right timing for changing this value: The - * creation of the glyph-to-script map that eventually uses the - * default script value gets triggered either by setting or reading a - * face-specific property like @glyph-to-script-map, or by auto-hinting - * any glyph from that face. In particular, if you have already created - * an @FT_Face structure but not loaded any glyph (using the - * auto-hinter), a change of the default script will affect this face. - * - */ - - - /************************************************************************** - * - * @property: - * increase-x-height - * - * @description: - * For ppem values in the range 6~<= ppem <= `increase-x-height', round - * up the font's x~height much more often than normally. If the value - * is set to~0, which is the default, this feature is switched off. Use - * this property to improve the legibility of small font sizes if - * necessary. - * - * { - * FT_Library library; - * FT_Face face; - * FT_Prop_IncreaseXHeight prop; - * - * - * FT_Init_FreeType( &library ); - * FT_New_Face( library, "foo.ttf", 0, &face ); - * FT_Set_Char_Size( face, 10 * 64, 0, 72, 0 ); - * - * prop.face = face; - * prop.limit = 14; - * - * FT_Property_Set( library, "autofitter", - * "increase-x-height", &prop ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * Set this value right after calling @FT_Set_Char_Size, but before - * loading any glyph (using the auto-hinter). - * - */ - - - /************************************************************************** - * - * @struct: - * FT_Prop_IncreaseXHeight - * - * @description: - * The data exchange structure for the @increase-x-height property. - * - */ - typedef struct FT_Prop_IncreaseXHeight_ - { - FT_Face face; - FT_UInt limit; - - } FT_Prop_IncreaseXHeight; - - - /************************************************************************** - * - * @property: - * warping - * - * @description: - * *Experimental* *only* - * - * If FreeType gets compiled with option AF_CONFIG_OPTION_USE_WARPER to - * activate the warp hinting code in the auto-hinter, this property - * switches warping on and off. - * - * Warping only works in `light' auto-hinting mode. The idea of the - * code is to slightly scale and shift a glyph along the non-hinted - * dimension (which is usually the horizontal axis) so that as much of - * its segments are aligned (more or less) to the grid. To find out a - * glyph's optimal scaling and shifting value, various parameter - * combinations are tried and scored. - * - * By default, warping is off. The example below shows how to switch on - * warping (omitting the error handling). - * - * { - * FT_Library library; - * FT_Bool warping = 1; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", - * "warping", &warping ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * The warping code can also change advance widths. Have a look at the - * `lsb_delta' and `rsb_delta' fields in the @FT_GlyphSlotRec structure - * for details on improving inter-glyph distances while rendering. - * - * Since warping is a global property of the auto-hinter it is best to - * change its value before rendering any face. Otherwise, you should - * reload all faces that get auto-hinted in `light' hinting mode. - * - */ - - - /************************************************************************** - * - * @property: - * no-stem-darkening[autofit] - * - * @description: - * *Experimental* *only,* *requires* *linear* *alpha* *blending* *and* - * *gamma* *correction* - * - * Stem darkening emboldens glyphs at smaller sizes to make them more - * readable on common low-DPI screens when using linear alpha blending - * and gamma correction, see @FT_Render_Glyph. When not using linear - * alpha blending and gamma correction, glyphs will appear heavy and - * fuzzy! - * - * Gamma correction essentially lightens fonts since shades of grey are - * shifted to higher pixel values (=~higher brightness) to match the - * original intention to the reality of our screens. The side-effect is - * that glyphs `thin out'. Mac OS~X and Adobe's proprietary font - * rendering library implement a counter-measure: stem darkening at - * smaller sizes where shades of gray dominate. By emboldening a glyph - * slightly in relation to its pixel size, individual pixels get higher - * coverage of filled-in outlines and are therefore `blacker'. This - * counteracts the `thinning out' of glyphs, making text remain readable - * at smaller sizes. All glyphs that pass through the auto-hinter will - * be emboldened unless this property is set to TRUE. - * - * See the description of the CFF driver for algorithmic details. Total - * consistency with the CFF driver is currently not achieved because the - * emboldening method differs and glyphs must be scaled down on the - * Y-axis to keep outline points inside their precomputed blue zones. - * The smaller the size (especially 9ppem and down), the higher the loss - * of emboldening versus the CFF driver. - * - */ - - - /************************************************************************** - * - * @property: - * darkening-parameters[autofit] - * - * @description: - * *Experimental* *only* - * - * See the description of the CFF driver for details. This - * implementation appropriates the - * CFF_CONFIG_OPTION_DARKENING_PARAMETER_* #defines for consistency. - * Note the differences described in @no-stem-darkening[autofit]. - * - */ - - - /* */ - - -FT_END_HEADER - -#endif /* __FTAUTOH_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftbbox.h b/lib/osx/include/freetype/ftbbox.h deleted file mode 100644 index 9d9d040..0000000 --- a/lib/osx/include/freetype/ftbbox.h +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftbbox.h */ -/* */ -/* FreeType exact bbox computation (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This component has a _single_ role: to compute exact outline bounding */ - /* boxes. */ - /* */ - /* It is separated from the rest of the engine for various technical */ - /* reasons. It may well be integrated in `ftoutln' later. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTBBOX_H__ -#define __FTBBOX_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* outline_processing */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Get_BBox */ - /* */ - /* <Description> */ - /* Compute the exact bounding box of an outline. This is slower */ - /* than computing the control box. However, it uses an advanced */ - /* algorithm that returns _very_ quickly when the two boxes */ - /* coincide. Otherwise, the outline Bézier arcs are traversed to */ - /* extract their extrema. */ - /* */ - /* <Input> */ - /* outline :: A pointer to the source outline. */ - /* */ - /* <Output> */ - /* abbox :: The outline's exact bounding box. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If the font is tricky and the glyph has been loaded with */ - /* @FT_LOAD_NO_SCALE, the resulting BBox is meaningless. To get */ - /* reasonable values for the BBox it is necessary to load the glyph */ - /* at a large ppem value (so that the hinting instructions can */ - /* properly shift and scale the subglyphs), then extracting the BBox, */ - /* which can be eventually converted back to font units. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Get_BBox( FT_Outline* outline, - FT_BBox *abbox ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTBBOX_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/osx/include/freetype/ftbdf.h b/lib/osx/include/freetype/ftbdf.h deleted file mode 100644 index 0bdabf4..0000000 --- a/lib/osx/include/freetype/ftbdf.h +++ /dev/null @@ -1,210 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftbdf.h */ -/* */ -/* FreeType API for accessing BDF-specific strings (specification). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTBDF_H__ -#define __FTBDF_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* bdf_fonts */ - /* */ - /* <Title> */ - /* BDF and PCF Files */ - /* */ - /* <Abstract> */ - /* BDF and PCF specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of functions specific to BDF */ - /* and PCF fonts. */ - /* */ - /*************************************************************************/ - - - /********************************************************************** - * - * @enum: - * BDF_PropertyType - * - * @description: - * A list of BDF property types. - * - * @values: - * BDF_PROPERTY_TYPE_NONE :: - * Value~0 is used to indicate a missing property. - * - * BDF_PROPERTY_TYPE_ATOM :: - * Property is a string atom. - * - * BDF_PROPERTY_TYPE_INTEGER :: - * Property is a 32-bit signed integer. - * - * BDF_PROPERTY_TYPE_CARDINAL :: - * Property is a 32-bit unsigned integer. - */ - typedef enum BDF_PropertyType_ - { - BDF_PROPERTY_TYPE_NONE = 0, - BDF_PROPERTY_TYPE_ATOM = 1, - BDF_PROPERTY_TYPE_INTEGER = 2, - BDF_PROPERTY_TYPE_CARDINAL = 3 - - } BDF_PropertyType; - - - /********************************************************************** - * - * @type: - * BDF_Property - * - * @description: - * A handle to a @BDF_PropertyRec structure to model a given - * BDF/PCF property. - */ - typedef struct BDF_PropertyRec_* BDF_Property; - - - /********************************************************************** - * - * @struct: - * BDF_PropertyRec - * - * @description: - * This structure models a given BDF/PCF property. - * - * @fields: - * type :: - * The property type. - * - * u.atom :: - * The atom string, if type is @BDF_PROPERTY_TYPE_ATOM. May be - * NULL, indicating an empty string. - * - * u.integer :: - * A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER. - * - * u.cardinal :: - * An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL. - */ - typedef struct BDF_PropertyRec_ - { - BDF_PropertyType type; - union { - const char* atom; - FT_Int32 integer; - FT_UInt32 cardinal; - - } u; - - } BDF_PropertyRec; - - - /********************************************************************** - * - * @function: - * FT_Get_BDF_Charset_ID - * - * @description: - * Retrieve a BDF font character set identity, according to - * the BDF specification. - * - * @input: - * face :: - * A handle to the input face. - * - * @output: - * acharset_encoding :: - * Charset encoding, as a C~string, owned by the face. - * - * acharset_registry :: - * Charset registry, as a C~string, owned by the face. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with BDF faces, returning an error otherwise. - */ - FT_EXPORT( FT_Error ) - FT_Get_BDF_Charset_ID( FT_Face face, - const char* *acharset_encoding, - const char* *acharset_registry ); - - - /********************************************************************** - * - * @function: - * FT_Get_BDF_Property - * - * @description: - * Retrieve a BDF property from a BDF or PCF font file. - * - * @input: - * face :: A handle to the input face. - * - * name :: The property name. - * - * @output: - * aproperty :: The property. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function works with BDF _and_ PCF fonts. It returns an error - * otherwise. It also returns an error if the property is not in the - * font. - * - * A `property' is a either key-value pair within the STARTPROPERTIES - * ... ENDPROPERTIES block of a BDF font or a key-value pair from the - * `info->props' array within a `FontRec' structure of a PCF font. - * - * Integer properties are always stored as `signed' within PCF fonts; - * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value - * for BDF fonts only. - * - * In case of error, `aproperty->type' is always set to - * @BDF_PROPERTY_TYPE_NONE. - */ - FT_EXPORT( FT_Error ) - FT_Get_BDF_Property( FT_Face face, - const char* prop_name, - BDF_PropertyRec *aproperty ); - - /* */ - -FT_END_HEADER - -#endif /* __FTBDF_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftbitmap.h b/lib/osx/include/freetype/ftbitmap.h deleted file mode 100644 index 46cc47b..0000000 --- a/lib/osx/include/freetype/ftbitmap.h +++ /dev/null @@ -1,240 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftbitmap.h */ -/* */ -/* FreeType utility functions for bitmaps (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTBITMAP_H__ -#define __FTBITMAP_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* bitmap_handling */ - /* */ - /* <Title> */ - /* Bitmap Handling */ - /* */ - /* <Abstract> */ - /* Handling FT_Bitmap objects. */ - /* */ - /* <Description> */ - /* This section contains functions for handling @FT_Bitmap objects. */ - /* Note that none of the functions changes the bitmap's `flow' (as */ - /* indicated by the sign of the `pitch' field in `FT_Bitmap'). */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Init */ - /* */ - /* <Description> */ - /* Initialize a pointer to an @FT_Bitmap structure. */ - /* */ - /* <InOut> */ - /* abitmap :: A pointer to the bitmap structure. */ - /* */ - /* <Note> */ - /* A deprecated name for the same function is `FT_Bitmap_New'. */ - /* */ - FT_EXPORT( void ) - FT_Bitmap_Init( FT_Bitmap *abitmap ); - - - /* deprecated */ - FT_EXPORT( void ) - FT_Bitmap_New( FT_Bitmap *abitmap ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Copy */ - /* */ - /* <Description> */ - /* Copy a bitmap into another one. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* source :: A handle to the source bitmap. */ - /* */ - /* <Output> */ - /* target :: A handle to the target bitmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Copy( FT_Library library, - const FT_Bitmap *source, - FT_Bitmap *target); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Embolden */ - /* */ - /* <Description> */ - /* Embolden a bitmap. The new bitmap will be about `xStrength' */ - /* pixels wider and `yStrength' pixels higher. The left and bottom */ - /* borders are kept unchanged. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* xStrength :: How strong the glyph is emboldened horizontally. */ - /* Expressed in 26.6 pixel format. */ - /* */ - /* yStrength :: How strong the glyph is emboldened vertically. */ - /* Expressed in 26.6 pixel format. */ - /* */ - /* <InOut> */ - /* bitmap :: A handle to the target bitmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The current implementation restricts `xStrength' to be less than */ - /* or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. */ - /* */ - /* If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, */ - /* you should call @FT_GlyphSlot_Own_Bitmap on the slot first. */ - /* */ - /* Bitmaps in @FT_PIXEL_MODE_GRAY2 and @FT_PIXEL_MODE_GRAY@ format */ - /* are converted to @FT_PIXEL_MODE_GRAY format (i.e., 8bpp). */ - /* */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Embolden( FT_Library library, - FT_Bitmap* bitmap, - FT_Pos xStrength, - FT_Pos yStrength ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Convert */ - /* */ - /* <Description> */ - /* Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp */ - /* to a bitmap object with depth 8bpp, making the number of used */ - /* bytes line (a.k.a. the `pitch') a multiple of `alignment'. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* source :: The source bitmap. */ - /* */ - /* alignment :: The pitch of the bitmap is a multiple of this */ - /* parameter. Common values are 1, 2, or 4. */ - /* */ - /* <Output> */ - /* target :: The target bitmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* It is possible to call @FT_Bitmap_Convert multiple times without */ - /* calling @FT_Bitmap_Done (the memory is simply reallocated). */ - /* */ - /* Use @FT_Bitmap_Done to finally remove the bitmap object. */ - /* */ - /* The `library' argument is taken to have access to FreeType's */ - /* memory handling functions. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Convert( FT_Library library, - const FT_Bitmap *source, - FT_Bitmap *target, - FT_Int alignment ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GlyphSlot_Own_Bitmap */ - /* */ - /* <Description> */ - /* Make sure that a glyph slot owns `slot->bitmap'. */ - /* */ - /* <Input> */ - /* slot :: The glyph slot. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function is to be used in combination with */ - /* @FT_Bitmap_Embolden. */ - /* */ - FT_EXPORT( FT_Error ) - FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Done */ - /* */ - /* <Description> */ - /* Destroy a bitmap object initialized with @FT_Bitmap_Init. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* bitmap :: The bitmap object to be freed. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The `library' argument is taken to have access to FreeType's */ - /* memory handling functions. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Done( FT_Library library, - FT_Bitmap *bitmap ); - - - /* */ - - -FT_END_HEADER - -#endif /* __FTBITMAP_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftbzip2.h b/lib/osx/include/freetype/ftbzip2.h deleted file mode 100644 index c25f946..0000000 --- a/lib/osx/include/freetype/ftbzip2.h +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftbzip2.h */ -/* */ -/* Bzip2-compressed stream support. */ -/* */ -/* Copyright 2010-2015 by */ -/* Joel Klinghed. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTBZIP2_H__ -#define __FTBZIP2_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* <Section> */ - /* bzip2 */ - /* */ - /* <Title> */ - /* BZIP2 Streams */ - /* */ - /* <Abstract> */ - /* Using bzip2-compressed font files. */ - /* */ - /* <Description> */ - /* This section contains the declaration of Bzip2-specific functions. */ - /* */ - /*************************************************************************/ - - - /************************************************************************ - * - * @function: - * FT_Stream_OpenBzip2 - * - * @description: - * Open a new stream to parse bzip2-compressed font files. This is - * mainly used to support the compressed `*.pcf.bz2' fonts that come - * with XFree86. - * - * @input: - * stream :: - * The target embedding stream. - * - * source :: - * The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close' on the new stream will - * *not* call `FT_Stream_Close' on the source stream. None of the stream - * objects will be released to the heap. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream. - * - * In certain builds of the library, bzip2 compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a bzip2 compressed stream - * from it and re-open the face with it. - * - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with bzip2 support. - */ - FT_EXPORT( FT_Error ) - FT_Stream_OpenBzip2( FT_Stream stream, - FT_Stream source ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTBZIP2_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftcache.h b/lib/osx/include/freetype/ftcache.h deleted file mode 100644 index 68525bb..0000000 --- a/lib/osx/include/freetype/ftcache.h +++ /dev/null @@ -1,1057 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcache.h */ -/* */ -/* FreeType Cache subsystem (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTCACHE_H__ -#define __FTCACHE_H__ - - -#include <ft2build.h> -#include FT_GLYPH_H - - -FT_BEGIN_HEADER - - - /************************************************************************* - * - * <Section> - * cache_subsystem - * - * <Title> - * Cache Sub-System - * - * <Abstract> - * How to cache face, size, and glyph data with FreeType~2. - * - * <Description> - * This section describes the FreeType~2 cache sub-system, which is used - * to limit the number of concurrently opened @FT_Face and @FT_Size - * objects, as well as caching information like character maps and glyph - * images while limiting their maximum memory usage. - * - * Note that all types and functions begin with the `FTC_' prefix. - * - * The cache is highly portable and thus doesn't know anything about the - * fonts installed on your system, or how to access them. This implies - * the following scheme: - * - * First, available or installed font faces are uniquely identified by - * @FTC_FaceID values, provided to the cache by the client. Note that - * the cache only stores and compares these values, and doesn't try to - * interpret them in any way. - * - * Second, the cache calls, only when needed, a client-provided function - * to convert an @FTC_FaceID into a new @FT_Face object. The latter is - * then completely managed by the cache, including its termination - * through @FT_Done_Face. To monitor termination of face objects, the - * finalizer callback in the `generic' field of the @FT_Face object can - * be used, which might also be used to store the @FTC_FaceID of the - * face. - * - * Clients are free to map face IDs to anything else. The most simple - * usage is to associate them to a (pathname,face_index) pair that is - * used to call @FT_New_Face. However, more complex schemes are also - * possible. - * - * Note that for the cache to work correctly, the face ID values must be - * *persistent*, which means that the contents they point to should not - * change at runtime, or that their value should not become invalid. - * - * If this is unavoidable (e.g., when a font is uninstalled at runtime), - * you should call @FTC_Manager_RemoveFaceID as soon as possible, to let - * the cache get rid of any references to the old @FTC_FaceID it may - * keep internally. Failure to do so will lead to incorrect behaviour - * or even crashes. - * - * To use the cache, start with calling @FTC_Manager_New to create a new - * @FTC_Manager object, which models a single cache instance. You can - * then look up @FT_Face and @FT_Size objects with - * @FTC_Manager_LookupFace and @FTC_Manager_LookupSize, respectively. - * - * If you want to use the charmap caching, call @FTC_CMapCache_New, then - * later use @FTC_CMapCache_Lookup to perform the equivalent of - * @FT_Get_Char_Index, only much faster. - * - * If you want to use the @FT_Glyph caching, call @FTC_ImageCache, then - * later use @FTC_ImageCache_Lookup to retrieve the corresponding - * @FT_Glyph objects from the cache. - * - * If you need lots of small bitmaps, it is much more memory efficient - * to call @FTC_SBitCache_New followed by @FTC_SBitCache_Lookup. This - * returns @FTC_SBitRec structures, which are used to store small - * bitmaps directly. (A small bitmap is one whose metrics and - * dimensions all fit into 8-bit integers). - * - * We hope to also provide a kerning cache in the near future. - * - * - * <Order> - * FTC_Manager - * FTC_FaceID - * FTC_Face_Requester - * - * FTC_Manager_New - * FTC_Manager_Reset - * FTC_Manager_Done - * FTC_Manager_LookupFace - * FTC_Manager_LookupSize - * FTC_Manager_RemoveFaceID - * - * FTC_Node - * FTC_Node_Unref - * - * FTC_ImageCache - * FTC_ImageCache_New - * FTC_ImageCache_Lookup - * - * FTC_SBit - * FTC_SBitCache - * FTC_SBitCache_New - * FTC_SBitCache_Lookup - * - * FTC_CMapCache - * FTC_CMapCache_New - * FTC_CMapCache_Lookup - * - *************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** BASIC TYPE DEFINITIONS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /************************************************************************* - * - * @type: FTC_FaceID - * - * @description: - * An opaque pointer type that is used to identity face objects. The - * contents of such objects is application-dependent. - * - * These pointers are typically used to point to a user-defined - * structure containing a font file path, and face index. - * - * @note: - * Never use NULL as a valid @FTC_FaceID. - * - * Face IDs are passed by the client to the cache manager that calls, - * when needed, the @FTC_Face_Requester to translate them into new - * @FT_Face objects. - * - * If the content of a given face ID changes at runtime, or if the value - * becomes invalid (e.g., when uninstalling a font), you should - * immediately call @FTC_Manager_RemoveFaceID before any other cache - * function. - * - * Failure to do so will result in incorrect behaviour or even - * memory leaks and crashes. - */ - typedef FT_Pointer FTC_FaceID; - - - /************************************************************************ - * - * @functype: - * FTC_Face_Requester - * - * @description: - * A callback function provided by client applications. It is used by - * the cache manager to translate a given @FTC_FaceID into a new valid - * @FT_Face object, on demand. - * - * <Input> - * face_id :: - * The face ID to resolve. - * - * library :: - * A handle to a FreeType library object. - * - * req_data :: - * Application-provided request data (see note below). - * - * <Output> - * aface :: - * A new @FT_Face handle. - * - * <Return> - * FreeType error code. 0~means success. - * - * <Note> - * The third parameter `req_data' is the same as the one passed by the - * client when @FTC_Manager_New is called. - * - * The face requester should not perform funny things on the returned - * face object, like creating a new @FT_Size for it, or setting a - * transformation through @FT_Set_Transform! - */ - typedef FT_Error - (*FTC_Face_Requester)( FTC_FaceID face_id, - FT_Library library, - FT_Pointer req_data, - FT_Face* aface ); - - /* */ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** CACHE MANAGER OBJECT *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_Manager */ - /* */ - /* <Description> */ - /* This object corresponds to one instance of the cache-subsystem. */ - /* It is used to cache one or more @FT_Face objects, along with */ - /* corresponding @FT_Size objects. */ - /* */ - /* The manager intentionally limits the total number of opened */ - /* @FT_Face and @FT_Size objects to control memory usage. See the */ - /* `max_faces' and `max_sizes' parameters of @FTC_Manager_New. */ - /* */ - /* The manager is also used to cache `nodes' of various types while */ - /* limiting their total memory usage. */ - /* */ - /* All limitations are enforced by keeping lists of managed objects */ - /* in most-recently-used order, and flushing old nodes to make room */ - /* for new ones. */ - /* */ - typedef struct FTC_ManagerRec_* FTC_Manager; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_Node */ - /* */ - /* <Description> */ - /* An opaque handle to a cache node object. Each cache node is */ - /* reference-counted. A node with a count of~0 might be flushed */ - /* out of a full cache whenever a lookup request is performed. */ - /* */ - /* If you look up nodes, you have the ability to `acquire' them, */ - /* i.e., to increment their reference count. This will prevent the */ - /* node from being flushed out of the cache until you explicitly */ - /* `release' it (see @FTC_Node_Unref). */ - /* */ - /* See also @FTC_SBitCache_Lookup and @FTC_ImageCache_Lookup. */ - /* */ - typedef struct FTC_NodeRec_* FTC_Node; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_New */ - /* */ - /* <Description> */ - /* Create a new cache manager. */ - /* */ - /* <Input> */ - /* library :: The parent FreeType library handle to use. */ - /* */ - /* max_faces :: Maximum number of opened @FT_Face objects managed by */ - /* this cache instance. Use~0 for defaults. */ - /* */ - /* max_sizes :: Maximum number of opened @FT_Size objects managed by */ - /* this cache instance. Use~0 for defaults. */ - /* */ - /* max_bytes :: Maximum number of bytes to use for cached data nodes. */ - /* Use~0 for defaults. Note that this value does not */ - /* account for managed @FT_Face and @FT_Size objects. */ - /* */ - /* requester :: An application-provided callback used to translate */ - /* face IDs into real @FT_Face objects. */ - /* */ - /* req_data :: A generic pointer that is passed to the requester */ - /* each time it is called (see @FTC_Face_Requester). */ - /* */ - /* <Output> */ - /* amanager :: A handle to a new manager object. 0~in case of */ - /* failure. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_Manager_New( FT_Library library, - FT_UInt max_faces, - FT_UInt max_sizes, - FT_ULong max_bytes, - FTC_Face_Requester requester, - FT_Pointer req_data, - FTC_Manager *amanager ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_Reset */ - /* */ - /* <Description> */ - /* Empty a given cache manager. This simply gets rid of all the */ - /* currently cached @FT_Face and @FT_Size objects within the manager. */ - /* */ - /* <InOut> */ - /* manager :: A handle to the manager. */ - /* */ - FT_EXPORT( void ) - FTC_Manager_Reset( FTC_Manager manager ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_Done */ - /* */ - /* <Description> */ - /* Destroy a given manager after emptying it. */ - /* */ - /* <Input> */ - /* manager :: A handle to the target cache manager object. */ - /* */ - FT_EXPORT( void ) - FTC_Manager_Done( FTC_Manager manager ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_LookupFace */ - /* */ - /* <Description> */ - /* Retrieve the @FT_Face object that corresponds to a given face ID */ - /* through a cache manager. */ - /* */ - /* <Input> */ - /* manager :: A handle to the cache manager. */ - /* */ - /* face_id :: The ID of the face object. */ - /* */ - /* <Output> */ - /* aface :: A handle to the face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned @FT_Face object is always owned by the manager. You */ - /* should never try to discard it yourself. */ - /* */ - /* The @FT_Face object doesn't necessarily have a current size object */ - /* (i.e., face->size can be~0). If you need a specific `font size', */ - /* use @FTC_Manager_LookupSize instead. */ - /* */ - /* Never change the face's transformation matrix (i.e., never call */ - /* the @FT_Set_Transform function) on a returned face! If you need */ - /* to transform glyphs, do it yourself after glyph loading. */ - /* */ - /* When you perform a lookup, out-of-memory errors are detected */ - /* _within_ the lookup and force incremental flushes of the cache */ - /* until enough memory is released for the lookup to succeed. */ - /* */ - /* If a lookup fails with `FT_Err_Out_Of_Memory' the cache has */ - /* already been completely flushed, and still no memory was available */ - /* for the operation. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_Manager_LookupFace( FTC_Manager manager, - FTC_FaceID face_id, - FT_Face *aface ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FTC_ScalerRec */ - /* */ - /* <Description> */ - /* A structure used to describe a given character size in either */ - /* pixels or points to the cache manager. See */ - /* @FTC_Manager_LookupSize. */ - /* */ - /* <Fields> */ - /* face_id :: The source face ID. */ - /* */ - /* width :: The character width. */ - /* */ - /* height :: The character height. */ - /* */ - /* pixel :: A Boolean. If 1, the `width' and `height' fields are */ - /* interpreted as integer pixel character sizes. */ - /* Otherwise, they are expressed as 1/64th of points. */ - /* */ - /* x_res :: Only used when `pixel' is value~0 to indicate the */ - /* horizontal resolution in dpi. */ - /* */ - /* y_res :: Only used when `pixel' is value~0 to indicate the */ - /* vertical resolution in dpi. */ - /* */ - /* <Note> */ - /* This type is mainly used to retrieve @FT_Size objects through the */ - /* cache manager. */ - /* */ - typedef struct FTC_ScalerRec_ - { - FTC_FaceID face_id; - FT_UInt width; - FT_UInt height; - FT_Int pixel; - FT_UInt x_res; - FT_UInt y_res; - - } FTC_ScalerRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FTC_Scaler */ - /* */ - /* <Description> */ - /* A handle to an @FTC_ScalerRec structure. */ - /* */ - typedef struct FTC_ScalerRec_* FTC_Scaler; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_LookupSize */ - /* */ - /* <Description> */ - /* Retrieve the @FT_Size object that corresponds to a given */ - /* @FTC_ScalerRec pointer through a cache manager. */ - /* */ - /* <Input> */ - /* manager :: A handle to the cache manager. */ - /* */ - /* scaler :: A scaler handle. */ - /* */ - /* <Output> */ - /* asize :: A handle to the size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned @FT_Size object is always owned by the manager. You */ - /* should never try to discard it by yourself. */ - /* */ - /* You can access the parent @FT_Face object simply as `size->face' */ - /* if you need it. Note that this object is also owned by the */ - /* manager. */ - /* */ - /* <Note> */ - /* When you perform a lookup, out-of-memory errors are detected */ - /* _within_ the lookup and force incremental flushes of the cache */ - /* until enough memory is released for the lookup to succeed. */ - /* */ - /* If a lookup fails with `FT_Err_Out_Of_Memory' the cache has */ - /* already been completely flushed, and still no memory is available */ - /* for the operation. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_Manager_LookupSize( FTC_Manager manager, - FTC_Scaler scaler, - FT_Size *asize ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Node_Unref */ - /* */ - /* <Description> */ - /* Decrement a cache node's internal reference count. When the count */ - /* reaches 0, it is not destroyed but becomes eligible for subsequent */ - /* cache flushes. */ - /* */ - /* <Input> */ - /* node :: The cache node handle. */ - /* */ - /* manager :: The cache manager handle. */ - /* */ - FT_EXPORT( void ) - FTC_Node_Unref( FTC_Node node, - FTC_Manager manager ); - - - /************************************************************************* - * - * @function: - * FTC_Manager_RemoveFaceID - * - * @description: - * A special function used to indicate to the cache manager that - * a given @FTC_FaceID is no longer valid, either because its - * content changed, or because it was deallocated or uninstalled. - * - * @input: - * manager :: - * The cache manager handle. - * - * face_id :: - * The @FTC_FaceID to be removed. - * - * @note: - * This function flushes all nodes from the cache corresponding to this - * `face_id', with the exception of nodes with a non-null reference - * count. - * - * Such nodes are however modified internally so as to never appear - * in later lookups with the same `face_id' value, and to be immediately - * destroyed when released by all their users. - * - */ - FT_EXPORT( void ) - FTC_Manager_RemoveFaceID( FTC_Manager manager, - FTC_FaceID face_id ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* cache_subsystem */ - /* */ - /*************************************************************************/ - - /************************************************************************* - * - * @type: - * FTC_CMapCache - * - * @description: - * An opaque handle used to model a charmap cache. This cache is to - * hold character codes -> glyph indices mappings. - * - */ - typedef struct FTC_CMapCacheRec_* FTC_CMapCache; - - - /************************************************************************* - * - * @function: - * FTC_CMapCache_New - * - * @description: - * Create a new charmap cache. - * - * @input: - * manager :: - * A handle to the cache manager. - * - * @output: - * acache :: - * A new cache handle. NULL in case of error. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Like all other caches, this one will be destroyed with the cache - * manager. - * - */ - FT_EXPORT( FT_Error ) - FTC_CMapCache_New( FTC_Manager manager, - FTC_CMapCache *acache ); - - - /************************************************************************ - * - * @function: - * FTC_CMapCache_Lookup - * - * @description: - * Translate a character code into a glyph index, using the charmap - * cache. - * - * @input: - * cache :: - * A charmap cache handle. - * - * face_id :: - * The source face ID. - * - * cmap_index :: - * The index of the charmap in the source face. Any negative value - * means to use the cache @FT_Face's default charmap. - * - * char_code :: - * The character code (in the corresponding charmap). - * - * @return: - * Glyph index. 0~means `no glyph'. - * - */ - FT_EXPORT( FT_UInt ) - FTC_CMapCache_Lookup( FTC_CMapCache cache, - FTC_FaceID face_id, - FT_Int cmap_index, - FT_UInt32 char_code ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* cache_subsystem */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** IMAGE CACHE OBJECT *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /************************************************************************* - * - * @struct: - * FTC_ImageTypeRec - * - * @description: - * A structure used to model the type of images in a glyph cache. - * - * @fields: - * face_id :: - * The face ID. - * - * width :: - * The width in pixels. - * - * height :: - * The height in pixels. - * - * flags :: - * The load flags, as in @FT_Load_Glyph. - * - */ - typedef struct FTC_ImageTypeRec_ - { - FTC_FaceID face_id; - FT_UInt width; - FT_UInt height; - FT_Int32 flags; - - } FTC_ImageTypeRec; - - - /************************************************************************* - * - * @type: - * FTC_ImageType - * - * @description: - * A handle to an @FTC_ImageTypeRec structure. - * - */ - typedef struct FTC_ImageTypeRec_* FTC_ImageType; - - - /* */ - - -#define FTC_IMAGE_TYPE_COMPARE( d1, d2 ) \ - ( (d1)->face_id == (d2)->face_id && \ - (d1)->width == (d2)->width && \ - (d1)->flags == (d2)->flags ) - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_ImageCache */ - /* */ - /* <Description> */ - /* A handle to a glyph image cache object. They are designed to */ - /* hold many distinct glyph images while not exceeding a certain */ - /* memory threshold. */ - /* */ - typedef struct FTC_ImageCacheRec_* FTC_ImageCache; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_ImageCache_New */ - /* */ - /* <Description> */ - /* Create a new glyph image cache. */ - /* */ - /* <Input> */ - /* manager :: The parent manager for the image cache. */ - /* */ - /* <Output> */ - /* acache :: A handle to the new glyph image cache object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_ImageCache_New( FTC_Manager manager, - FTC_ImageCache *acache ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_ImageCache_Lookup */ - /* */ - /* <Description> */ - /* Retrieve a given glyph image from a glyph image cache. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source glyph image cache. */ - /* */ - /* type :: A pointer to a glyph image type descriptor. */ - /* */ - /* gindex :: The glyph index to retrieve. */ - /* */ - /* <Output> */ - /* aglyph :: The corresponding @FT_Glyph object. 0~in case of */ - /* failure. */ - /* */ - /* anode :: Used to return the address of of the corresponding cache */ - /* node after incrementing its reference count (see note */ - /* below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned glyph is owned and managed by the glyph image cache. */ - /* Never try to transform or discard it manually! You can however */ - /* create a copy with @FT_Glyph_Copy and modify the new one. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the glyph image, after increasing its reference */ - /* count. This ensures that the node (as well as the @FT_Glyph) will */ - /* always be kept in the cache until you call @FTC_Node_Unref to */ - /* `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the @FT_Glyph could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - FT_EXPORT( FT_Error ) - FTC_ImageCache_Lookup( FTC_ImageCache cache, - FTC_ImageType type, - FT_UInt gindex, - FT_Glyph *aglyph, - FTC_Node *anode ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_ImageCache_LookupScaler */ - /* */ - /* <Description> */ - /* A variant of @FTC_ImageCache_Lookup that uses an @FTC_ScalerRec */ - /* to specify the face ID and its size. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source glyph image cache. */ - /* */ - /* scaler :: A pointer to a scaler descriptor. */ - /* */ - /* load_flags :: The corresponding load flags. */ - /* */ - /* gindex :: The glyph index to retrieve. */ - /* */ - /* <Output> */ - /* aglyph :: The corresponding @FT_Glyph object. 0~in case of */ - /* failure. */ - /* */ - /* anode :: Used to return the address of of the corresponding */ - /* cache node after incrementing its reference count */ - /* (see note below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned glyph is owned and managed by the glyph image cache. */ - /* Never try to transform or discard it manually! You can however */ - /* create a copy with @FT_Glyph_Copy and modify the new one. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the glyph image, after increasing its reference */ - /* count. This ensures that the node (as well as the @FT_Glyph) will */ - /* always be kept in the cache until you call @FTC_Node_Unref to */ - /* `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the @FT_Glyph could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - /* Calls to @FT_Set_Char_Size and friends have no effect on cached */ - /* glyphs; you should always use the FreeType cache API instead. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_ImageCache_LookupScaler( FTC_ImageCache cache, - FTC_Scaler scaler, - FT_ULong load_flags, - FT_UInt gindex, - FT_Glyph *aglyph, - FTC_Node *anode ); - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_SBit */ - /* */ - /* <Description> */ - /* A handle to a small bitmap descriptor. See the @FTC_SBitRec */ - /* structure for details. */ - /* */ - typedef struct FTC_SBitRec_* FTC_SBit; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FTC_SBitRec */ - /* */ - /* <Description> */ - /* A very compact structure used to describe a small glyph bitmap. */ - /* */ - /* <Fields> */ - /* width :: The bitmap width in pixels. */ - /* */ - /* height :: The bitmap height in pixels. */ - /* */ - /* left :: The horizontal distance from the pen position to the */ - /* left bitmap border (a.k.a. `left side bearing', or */ - /* `lsb'). */ - /* */ - /* top :: The vertical distance from the pen position (on the */ - /* baseline) to the upper bitmap border (a.k.a. `top */ - /* side bearing'). The distance is positive for upwards */ - /* y~coordinates. */ - /* */ - /* format :: The format of the glyph bitmap (monochrome or gray). */ - /* */ - /* max_grays :: Maximum gray level value (in the range 1 to~255). */ - /* */ - /* pitch :: The number of bytes per bitmap line. May be positive */ - /* or negative. */ - /* */ - /* xadvance :: The horizontal advance width in pixels. */ - /* */ - /* yadvance :: The vertical advance height in pixels. */ - /* */ - /* buffer :: A pointer to the bitmap pixels. */ - /* */ - typedef struct FTC_SBitRec_ - { - FT_Byte width; - FT_Byte height; - FT_Char left; - FT_Char top; - - FT_Byte format; - FT_Byte max_grays; - FT_Short pitch; - FT_Char xadvance; - FT_Char yadvance; - - FT_Byte* buffer; - - } FTC_SBitRec; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_SBitCache */ - /* */ - /* <Description> */ - /* A handle to a small bitmap cache. These are special cache objects */ - /* used to store small glyph bitmaps (and anti-aliased pixmaps) in a */ - /* much more efficient way than the traditional glyph image cache */ - /* implemented by @FTC_ImageCache. */ - /* */ - typedef struct FTC_SBitCacheRec_* FTC_SBitCache; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_SBitCache_New */ - /* */ - /* <Description> */ - /* Create a new cache to store small glyph bitmaps. */ - /* */ - /* <Input> */ - /* manager :: A handle to the source cache manager. */ - /* */ - /* <Output> */ - /* acache :: A handle to the new sbit cache. NULL in case of error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_SBitCache_New( FTC_Manager manager, - FTC_SBitCache *acache ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_SBitCache_Lookup */ - /* */ - /* <Description> */ - /* Look up a given small glyph bitmap in a given sbit cache and */ - /* `lock' it to prevent its flushing from the cache until needed. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source sbit cache. */ - /* */ - /* type :: A pointer to the glyph image type descriptor. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* <Output> */ - /* sbit :: A handle to a small bitmap descriptor. */ - /* */ - /* anode :: Used to return the address of of the corresponding cache */ - /* node after incrementing its reference count (see note */ - /* below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The small bitmap descriptor and its bit buffer are owned by the */ - /* cache and should never be freed by the application. They might */ - /* as well disappear from memory on the next cache lookup, so don't */ - /* treat them as persistent data. */ - /* */ - /* The descriptor's `buffer' field is set to~0 to indicate a missing */ - /* glyph bitmap. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the bitmap, after increasing its reference count. */ - /* This ensures that the node (as well as the image) will always be */ - /* kept in the cache until you call @FTC_Node_Unref to `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the bitmap could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - FT_EXPORT( FT_Error ) - FTC_SBitCache_Lookup( FTC_SBitCache cache, - FTC_ImageType type, - FT_UInt gindex, - FTC_SBit *sbit, - FTC_Node *anode ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_SBitCache_LookupScaler */ - /* */ - /* <Description> */ - /* A variant of @FTC_SBitCache_Lookup that uses an @FTC_ScalerRec */ - /* to specify the face ID and its size. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source sbit cache. */ - /* */ - /* scaler :: A pointer to the scaler descriptor. */ - /* */ - /* load_flags :: The corresponding load flags. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* <Output> */ - /* sbit :: A handle to a small bitmap descriptor. */ - /* */ - /* anode :: Used to return the address of of the corresponding */ - /* cache node after incrementing its reference count */ - /* (see note below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The small bitmap descriptor and its bit buffer are owned by the */ - /* cache and should never be freed by the application. They might */ - /* as well disappear from memory on the next cache lookup, so don't */ - /* treat them as persistent data. */ - /* */ - /* The descriptor's `buffer' field is set to~0 to indicate a missing */ - /* glyph bitmap. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the bitmap, after increasing its reference count. */ - /* This ensures that the node (as well as the image) will always be */ - /* kept in the cache until you call @FTC_Node_Unref to `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the bitmap could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - FT_EXPORT( FT_Error ) - FTC_SBitCache_LookupScaler( FTC_SBitCache cache, - FTC_Scaler scaler, - FT_ULong load_flags, - FT_UInt gindex, - FTC_SBit *sbit, - FTC_Node *anode ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTCACHE_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftcffdrv.h b/lib/osx/include/freetype/ftcffdrv.h deleted file mode 100644 index 8500346..0000000 --- a/lib/osx/include/freetype/ftcffdrv.h +++ /dev/null @@ -1,262 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcffdrv.h */ -/* */ -/* FreeType API for controlling the CFF driver (specification only). */ -/* */ -/* Copyright 2013-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTCFFDRV_H__ -#define __FTCFFDRV_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * cff_driver - * - * @title: - * The CFF driver - * - * @abstract: - * Controlling the CFF driver module. - * - * @description: - * While FreeType's CFF driver doesn't expose API functions by itself, - * it is possible to control its behaviour with @FT_Property_Set and - * @FT_Property_Get. The list below gives the available properties - * together with the necessary macros and structures. - * - * The CFF driver's module name is `cff'. - * - * *Hinting* *and* *antialiasing* *principles* *of* *the* *new* *engine* - * - * The rasterizer is positioning horizontal features (e.g., ascender - * height & x-height, or crossbars) on the pixel grid and minimizing the - * amount of antialiasing applied to them, while placing vertical - * features (vertical stems) on the pixel grid without hinting, thus - * representing the stem position and weight accurately. Sometimes the - * vertical stems may be only partially black. In this context, - * `antialiasing' means that stems are not positioned exactly on pixel - * borders, causing a fuzzy appearance. - * - * There are two principles behind this approach. - * - * 1) No hinting in the horizontal direction: Unlike `superhinted' - * TrueType, which changes glyph widths to accommodate regular - * inter-glyph spacing, Adobe's approach is `faithful to the design' in - * representing both the glyph width and the inter-glyph spacing - * designed for the font. This makes the screen display as close as it - * can be to the result one would get with infinite resolution, while - * preserving what is considered the key characteristics of each glyph. - * Note that the distances between unhinted and grid-fitted positions at - * small sizes are comparable to kerning values and thus would be - * noticeable (and distracting) while reading if hinting were applied. - * - * One of the reasons to not hint horizontally is antialiasing for LCD - * screens: The pixel geometry of modern displays supplies three - * vertical sub-pixels as the eye moves horizontally across each visible - * pixel. On devices where we can be certain this characteristic is - * present a rasterizer can take advantage of the sub-pixels to add - * increments of weight. In Western writing systems this turns out to - * be the more critical direction anyway; the weights and spacing of - * vertical stems (see above) are central to Armenian, Cyrillic, Greek, - * and Latin type designs. Even when the rasterizer uses greyscale - * antialiasing instead of color (a necessary compromise when one - * doesn't know the screen characteristics), the unhinted vertical - * features preserve the design's weight and spacing much better than - * aliased type would. - * - * 2) Aligment in the vertical direction: Weights and spacing along the - * y~axis are less critical; what is much more important is the visual - * alignment of related features (like cap-height and x-height). The - * sense of alignment for these is enhanced by the sharpness of grid-fit - * edges, while the cruder vertical resolution (full pixels instead of - * 1/3 pixels) is less of a problem. - * - * On the technical side, horizontal alignment zones for ascender, - * x-height, and other important height values (traditionally called - * `blue zones') as defined in the font are positioned independently, - * each being rounded to the nearest pixel edge, taking care of - * overshoot suppression at small sizes, stem darkening, and scaling. - * - * Hstems (this is, hint values defined in the font to help align - * horizontal features) that fall within a blue zone are said to be - * `captured' and are aligned to that zone. Uncaptured stems are moved - * in one of four ways, top edge up or down, bottom edge up or down. - * Unless there are conflicting hstems, the smallest movement is taken - * to minimize distortion. - * - * @order: - * hinting-engine - * no-stem-darkening[cff] - * darkening-parameters[cff] - * - */ - - - /************************************************************************** - * - * @property: - * hinting-engine - * - * @description: - * Thanks to Adobe, which contributed a new hinting (and parsing) - * engine, an application can select between `freetype' and `adobe' if - * compiled with CFF_CONFIG_OPTION_OLD_ENGINE. If this configuration - * macro isn't defined, `hinting-engine' does nothing. - * - * The default engine is `freetype' if CFF_CONFIG_OPTION_OLD_ENGINE is - * defined, and `adobe' otherwise. - * - * The following example code demonstrates how to select Adobe's hinting - * engine (omitting the error handling). - * - * { - * FT_Library library; - * FT_UInt hinting_engine = FT_CFF_HINTING_ADOBE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "hinting-engine", &hinting_engine ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - - /************************************************************************** - * - * @enum: - * FT_CFF_HINTING_XXX - * - * @description: - * A list of constants used for the @hinting-engine property to select - * the hinting engine for CFF fonts. - * - * @values: - * FT_CFF_HINTING_FREETYPE :: - * Use the old FreeType hinting engine. - * - * FT_CFF_HINTING_ADOBE :: - * Use the hinting engine contributed by Adobe. - * - */ -#define FT_CFF_HINTING_FREETYPE 0 -#define FT_CFF_HINTING_ADOBE 1 - - - /************************************************************************** - * - * @property: - * no-stem-darkening[cff] - * - * @description: - * By default, the Adobe CFF engine darkens stems at smaller sizes, - * regardless of hinting, to enhance contrast. This feature requires - * a rendering system with proper gamma correction. Setting this - * property, stem darkening gets switched off. - * - * Note that stem darkening is never applied if @FT_LOAD_NO_SCALE is set. - * - * { - * FT_Library library; - * FT_Bool no_stem_darkening = TRUE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "no-stem-darkening", &no_stem_darkening ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - - /************************************************************************** - * - * @property: - * darkening-parameters[cff] - * - * @description: - * By default, the Adobe CFF engine darkens stems as follows (if the - * `no-stem-darkening' property isn't set): - * - * { - * stem width <= 0.5px: darkening amount = 0.4px - * stem width = 1px: darkening amount = 0.275px - * stem width = 1.667px: darkening amount = 0.275px - * stem width >= 2.333px: darkening amount = 0px - * } - * - * and piecewise linear in-between. At configuration time, these four - * control points can be set with the macro - * `CFF_CONFIG_OPTION_DARKENING_PARAMETERS'. At runtime, the control - * points can be changed using the `darkening-parameters' property, as - * the following example demonstrates. - * - * { - * FT_Library library; - * FT_Int darken_params[8] = { 500, 300, // x1, y1 - * 1000, 200, // x2, y2 - * 1500, 100, // x3, y3 - * 2000, 0 }; // x4, y4 - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "darkening-parameters", darken_params ); - * } - * - * The x~values give the stem width, and the y~values the darkening - * amount. The unit is 1000th of pixels. All coordinate values must be - * positive; the x~values must be monotonically increasing; the - * y~values must be monotonically decreasing and smaller than or - * equal to 500 (corresponding to half a pixel); the slope of each - * linear piece must be shallower than -1 (e.g., -.4). - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - /* */ - - -FT_END_HEADER - - -#endif /* __FTCFFDRV_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftchapters.h b/lib/osx/include/freetype/ftchapters.h deleted file mode 100644 index ab43895..0000000 --- a/lib/osx/include/freetype/ftchapters.h +++ /dev/null @@ -1,135 +0,0 @@ -/***************************************************************************/ -/* */ -/* This file defines the structure of the FreeType reference. */ -/* It is used by the python script that generates the HTML files. */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* general_remarks */ -/* */ -/* <Title> */ -/* General Remarks */ -/* */ -/* <Sections> */ -/* header_inclusion */ -/* user_allocation */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* core_api */ -/* */ -/* <Title> */ -/* Core API */ -/* */ -/* <Sections> */ -/* version */ -/* basic_types */ -/* base_interface */ -/* glyph_variants */ -/* glyph_management */ -/* mac_specific */ -/* sizes_management */ -/* header_file_macros */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* format_specific */ -/* */ -/* <Title> */ -/* Format-Specific API */ -/* */ -/* <Sections> */ -/* multiple_masters */ -/* truetype_tables */ -/* type1_tables */ -/* sfnt_names */ -/* bdf_fonts */ -/* cid_fonts */ -/* pfr_fonts */ -/* winfnt_fonts */ -/* font_formats */ -/* gasp_table */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* module_specific */ -/* */ -/* <Title> */ -/* Controlling FreeType Modules */ -/* */ -/* <Sections> */ -/* auto_hinter */ -/* cff_driver */ -/* tt_driver */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* cache_subsystem */ -/* */ -/* <Title> */ -/* Cache Sub-System */ -/* */ -/* <Sections> */ -/* cache_subsystem */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* support_api */ -/* */ -/* <Title> */ -/* Support API */ -/* */ -/* <Sections> */ -/* computations */ -/* list_processing */ -/* outline_processing */ -/* quick_advance */ -/* bitmap_handling */ -/* raster */ -/* glyph_stroker */ -/* system_interface */ -/* module_management */ -/* gzip */ -/* lzw */ -/* bzip2 */ -/* lcd_filtering */ -/* */ -/***************************************************************************/ - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* error_codes */ -/* */ -/* <Title> */ -/* Error Codes */ -/* */ -/* <Sections> */ -/* error_enumerations */ -/* error_code_values */ -/* */ -/***************************************************************************/ diff --git a/lib/osx/include/freetype/ftcid.h b/lib/osx/include/freetype/ftcid.h deleted file mode 100644 index 05741c8..0000000 --- a/lib/osx/include/freetype/ftcid.h +++ /dev/null @@ -1,168 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcid.h */ -/* */ -/* FreeType API for accessing CID font information (specification). */ -/* */ -/* Copyright 2007-2015 by */ -/* Dereg Clegg and Michael Toftdal. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTCID_H__ -#define __FTCID_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* cid_fonts */ - /* */ - /* <Title> */ - /* CID Fonts */ - /* */ - /* <Abstract> */ - /* CID-keyed font specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of CID-keyed font specific */ - /* functions. */ - /* */ - /*************************************************************************/ - - - /********************************************************************** - * - * @function: - * FT_Get_CID_Registry_Ordering_Supplement - * - * @description: - * Retrieve the Registry/Ordering/Supplement triple (also known as the - * "R/O/S") from a CID-keyed font. - * - * @input: - * face :: - * A handle to the input face. - * - * @output: - * registry :: - * The registry, as a C~string, owned by the face. - * - * ordering :: - * The ordering, as a C~string, owned by the face. - * - * supplement :: - * The supplement. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with CID faces, returning an error - * otherwise. - * - * @since: - * 2.3.6 - */ - FT_EXPORT( FT_Error ) - FT_Get_CID_Registry_Ordering_Supplement( FT_Face face, - const char* *registry, - const char* *ordering, - FT_Int *supplement); - - - /********************************************************************** - * - * @function: - * FT_Get_CID_Is_Internally_CID_Keyed - * - * @description: - * Retrieve the type of the input face, CID keyed or not. In - * constrast to the @FT_IS_CID_KEYED macro this function returns - * successfully also for CID-keyed fonts in an SNFT wrapper. - * - * @input: - * face :: - * A handle to the input face. - * - * @output: - * is_cid :: - * The type of the face as an @FT_Bool. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with CID faces and OpenType fonts, - * returning an error otherwise. - * - * @since: - * 2.3.9 - */ - FT_EXPORT( FT_Error ) - FT_Get_CID_Is_Internally_CID_Keyed( FT_Face face, - FT_Bool *is_cid ); - - - /********************************************************************** - * - * @function: - * FT_Get_CID_From_Glyph_Index - * - * @description: - * Retrieve the CID of the input glyph index. - * - * @input: - * face :: - * A handle to the input face. - * - * glyph_index :: - * The input glyph index. - * - * @output: - * cid :: - * The CID as an @FT_UInt. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with CID faces and OpenType fonts, - * returning an error otherwise. - * - * @since: - * 2.3.9 - */ - FT_EXPORT( FT_Error ) - FT_Get_CID_From_Glyph_Index( FT_Face face, - FT_UInt glyph_index, - FT_UInt *cid ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTCID_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/fterrdef.h b/lib/osx/include/freetype/fterrdef.h deleted file mode 100644 index 3bf4e63..0000000 --- a/lib/osx/include/freetype/fterrdef.h +++ /dev/null @@ -1,276 +0,0 @@ -/***************************************************************************/ -/* */ -/* fterrdef.h */ -/* */ -/* FreeType error codes (specification). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* error_code_values */ - /* */ - /* <Title> */ - /* Error Code Values */ - /* */ - /* <Abstract> */ - /* All possible error codes returned by FreeType functions. */ - /* */ - /* <Description> */ - /* The list below is taken verbatim from the file `fterrdef.h' */ - /* (loaded automatically by including `FT_FREETYPE_H'). The first */ - /* argument of the `FT_ERROR_DEF_' macro is the error label; by */ - /* default, the prefix `FT_Err_' gets added so that you get error */ - /* names like `FT_Err_Cannot_Open_Resource'. The second argument is */ - /* the error code, and the last argument an error string, which is not */ - /* used by FreeType. */ - /* */ - /* Within your application you should *only* use error names and */ - /* *never* its numeric values! The latter might (and actually do) */ - /* change in forthcoming FreeType versions. */ - /* */ - /* Macro `FT_NOERRORDEF_' defines `FT_Err_Ok', which is always zero. */ - /* See the `Error Enumerations' subsection how to automatically */ - /* generate a list of error strings. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Err_XXX */ - /* */ - /*************************************************************************/ - - /* generic errors */ - - FT_NOERRORDEF_( Ok, 0x00, - "no error" ) - - FT_ERRORDEF_( Cannot_Open_Resource, 0x01, - "cannot open resource" ) - FT_ERRORDEF_( Unknown_File_Format, 0x02, - "unknown file format" ) - FT_ERRORDEF_( Invalid_File_Format, 0x03, - "broken file" ) - FT_ERRORDEF_( Invalid_Version, 0x04, - "invalid FreeType version" ) - FT_ERRORDEF_( Lower_Module_Version, 0x05, - "module version is too low" ) - FT_ERRORDEF_( Invalid_Argument, 0x06, - "invalid argument" ) - FT_ERRORDEF_( Unimplemented_Feature, 0x07, - "unimplemented feature" ) - FT_ERRORDEF_( Invalid_Table, 0x08, - "broken table" ) - FT_ERRORDEF_( Invalid_Offset, 0x09, - "broken offset within table" ) - FT_ERRORDEF_( Array_Too_Large, 0x0A, - "array allocation size too large" ) - FT_ERRORDEF_( Missing_Module, 0x0B, - "missing module" ) - FT_ERRORDEF_( Missing_Property, 0x0C, - "missing property" ) - - /* glyph/character errors */ - - FT_ERRORDEF_( Invalid_Glyph_Index, 0x10, - "invalid glyph index" ) - FT_ERRORDEF_( Invalid_Character_Code, 0x11, - "invalid character code" ) - FT_ERRORDEF_( Invalid_Glyph_Format, 0x12, - "unsupported glyph image format" ) - FT_ERRORDEF_( Cannot_Render_Glyph, 0x13, - "cannot render this glyph format" ) - FT_ERRORDEF_( Invalid_Outline, 0x14, - "invalid outline" ) - FT_ERRORDEF_( Invalid_Composite, 0x15, - "invalid composite glyph" ) - FT_ERRORDEF_( Too_Many_Hints, 0x16, - "too many hints" ) - FT_ERRORDEF_( Invalid_Pixel_Size, 0x17, - "invalid pixel size" ) - - /* handle errors */ - - FT_ERRORDEF_( Invalid_Handle, 0x20, - "invalid object handle" ) - FT_ERRORDEF_( Invalid_Library_Handle, 0x21, - "invalid library handle" ) - FT_ERRORDEF_( Invalid_Driver_Handle, 0x22, - "invalid module handle" ) - FT_ERRORDEF_( Invalid_Face_Handle, 0x23, - "invalid face handle" ) - FT_ERRORDEF_( Invalid_Size_Handle, 0x24, - "invalid size handle" ) - FT_ERRORDEF_( Invalid_Slot_Handle, 0x25, - "invalid glyph slot handle" ) - FT_ERRORDEF_( Invalid_CharMap_Handle, 0x26, - "invalid charmap handle" ) - FT_ERRORDEF_( Invalid_Cache_Handle, 0x27, - "invalid cache manager handle" ) - FT_ERRORDEF_( Invalid_Stream_Handle, 0x28, - "invalid stream handle" ) - - /* driver errors */ - - FT_ERRORDEF_( Too_Many_Drivers, 0x30, - "too many modules" ) - FT_ERRORDEF_( Too_Many_Extensions, 0x31, - "too many extensions" ) - - /* memory errors */ - - FT_ERRORDEF_( Out_Of_Memory, 0x40, - "out of memory" ) - FT_ERRORDEF_( Unlisted_Object, 0x41, - "unlisted object" ) - - /* stream errors */ - - FT_ERRORDEF_( Cannot_Open_Stream, 0x51, - "cannot open stream" ) - FT_ERRORDEF_( Invalid_Stream_Seek, 0x52, - "invalid stream seek" ) - FT_ERRORDEF_( Invalid_Stream_Skip, 0x53, - "invalid stream skip" ) - FT_ERRORDEF_( Invalid_Stream_Read, 0x54, - "invalid stream read" ) - FT_ERRORDEF_( Invalid_Stream_Operation, 0x55, - "invalid stream operation" ) - FT_ERRORDEF_( Invalid_Frame_Operation, 0x56, - "invalid frame operation" ) - FT_ERRORDEF_( Nested_Frame_Access, 0x57, - "nested frame access" ) - FT_ERRORDEF_( Invalid_Frame_Read, 0x58, - "invalid frame read" ) - - /* raster errors */ - - FT_ERRORDEF_( Raster_Uninitialized, 0x60, - "raster uninitialized" ) - FT_ERRORDEF_( Raster_Corrupted, 0x61, - "raster corrupted" ) - FT_ERRORDEF_( Raster_Overflow, 0x62, - "raster overflow" ) - FT_ERRORDEF_( Raster_Negative_Height, 0x63, - "negative height while rastering" ) - - /* cache errors */ - - FT_ERRORDEF_( Too_Many_Caches, 0x70, - "too many registered caches" ) - - /* TrueType and SFNT errors */ - - FT_ERRORDEF_( Invalid_Opcode, 0x80, - "invalid opcode" ) - FT_ERRORDEF_( Too_Few_Arguments, 0x81, - "too few arguments" ) - FT_ERRORDEF_( Stack_Overflow, 0x82, - "stack overflow" ) - FT_ERRORDEF_( Code_Overflow, 0x83, - "code overflow" ) - FT_ERRORDEF_( Bad_Argument, 0x84, - "bad argument" ) - FT_ERRORDEF_( Divide_By_Zero, 0x85, - "division by zero" ) - FT_ERRORDEF_( Invalid_Reference, 0x86, - "invalid reference" ) - FT_ERRORDEF_( Debug_OpCode, 0x87, - "found debug opcode" ) - FT_ERRORDEF_( ENDF_In_Exec_Stream, 0x88, - "found ENDF opcode in execution stream" ) - FT_ERRORDEF_( Nested_DEFS, 0x89, - "nested DEFS" ) - FT_ERRORDEF_( Invalid_CodeRange, 0x8A, - "invalid code range" ) - FT_ERRORDEF_( Execution_Too_Long, 0x8B, - "execution context too long" ) - FT_ERRORDEF_( Too_Many_Function_Defs, 0x8C, - "too many function definitions" ) - FT_ERRORDEF_( Too_Many_Instruction_Defs, 0x8D, - "too many instruction definitions" ) - FT_ERRORDEF_( Table_Missing, 0x8E, - "SFNT font table missing" ) - FT_ERRORDEF_( Horiz_Header_Missing, 0x8F, - "horizontal header (hhea) table missing" ) - FT_ERRORDEF_( Locations_Missing, 0x90, - "locations (loca) table missing" ) - FT_ERRORDEF_( Name_Table_Missing, 0x91, - "name table missing" ) - FT_ERRORDEF_( CMap_Table_Missing, 0x92, - "character map (cmap) table missing" ) - FT_ERRORDEF_( Hmtx_Table_Missing, 0x93, - "horizontal metrics (hmtx) table missing" ) - FT_ERRORDEF_( Post_Table_Missing, 0x94, - "PostScript (post) table missing" ) - FT_ERRORDEF_( Invalid_Horiz_Metrics, 0x95, - "invalid horizontal metrics" ) - FT_ERRORDEF_( Invalid_CharMap_Format, 0x96, - "invalid character map (cmap) format" ) - FT_ERRORDEF_( Invalid_PPem, 0x97, - "invalid ppem value" ) - FT_ERRORDEF_( Invalid_Vert_Metrics, 0x98, - "invalid vertical metrics" ) - FT_ERRORDEF_( Could_Not_Find_Context, 0x99, - "could not find context" ) - FT_ERRORDEF_( Invalid_Post_Table_Format, 0x9A, - "invalid PostScript (post) table format" ) - FT_ERRORDEF_( Invalid_Post_Table, 0x9B, - "invalid PostScript (post) table" ) - - /* CFF, CID, and Type 1 errors */ - - FT_ERRORDEF_( Syntax_Error, 0xA0, - "opcode syntax error" ) - FT_ERRORDEF_( Stack_Underflow, 0xA1, - "argument stack underflow" ) - FT_ERRORDEF_( Ignore, 0xA2, - "ignore" ) - FT_ERRORDEF_( No_Unicode_Glyph_Name, 0xA3, - "no Unicode glyph name found" ) - FT_ERRORDEF_( Glyph_Too_Big, 0xA4, - "glyph too big for hinting" ) - - /* BDF errors */ - - FT_ERRORDEF_( Missing_Startfont_Field, 0xB0, - "`STARTFONT' field missing" ) - FT_ERRORDEF_( Missing_Font_Field, 0xB1, - "`FONT' field missing" ) - FT_ERRORDEF_( Missing_Size_Field, 0xB2, - "`SIZE' field missing" ) - FT_ERRORDEF_( Missing_Fontboundingbox_Field, 0xB3, - "`FONTBOUNDINGBOX' field missing" ) - FT_ERRORDEF_( Missing_Chars_Field, 0xB4, - "`CHARS' field missing" ) - FT_ERRORDEF_( Missing_Startchar_Field, 0xB5, - "`STARTCHAR' field missing" ) - FT_ERRORDEF_( Missing_Encoding_Field, 0xB6, - "`ENCODING' field missing" ) - FT_ERRORDEF_( Missing_Bbx_Field, 0xB7, - "`BBX' field missing" ) - FT_ERRORDEF_( Bbx_Too_Big, 0xB8, - "`BBX' too big" ) - FT_ERRORDEF_( Corrupted_Font_Header, 0xB9, - "Font header corrupted or missing fields" ) - FT_ERRORDEF_( Corrupted_Font_Glyphs, 0xBA, - "Font glyphs corrupted or missing fields" ) - - /* */ - - -/* END */ diff --git a/lib/osx/include/freetype/fterrors.h b/lib/osx/include/freetype/fterrors.h deleted file mode 100644 index 0507b9a..0000000 --- a/lib/osx/include/freetype/fterrors.h +++ /dev/null @@ -1,216 +0,0 @@ -/***************************************************************************/ -/* */ -/* fterrors.h */ -/* */ -/* FreeType error code handling (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* error_enumerations */ - /* */ - /* <Title> */ - /* Error Enumerations */ - /* */ - /* <Abstract> */ - /* How to handle errors and error strings. */ - /* */ - /* <Description> */ - /* The header file `fterrors.h' (which is automatically included by */ - /* `freetype.h' defines the handling of FreeType's enumeration */ - /* constants. It can also be used to generate error message strings */ - /* with a small macro trick explained below. */ - /* */ - /* *Error* *Formats* */ - /* */ - /* The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be */ - /* defined in `ftoption.h' in order to make the higher byte indicate */ - /* the module where the error has happened (this is not compatible */ - /* with standard builds of FreeType 2, however). See the file */ - /* `ftmoderr.h' for more details. */ - /* */ - /* *Error* *Message* *Strings* */ - /* */ - /* Error definitions are set up with special macros that allow client */ - /* applications to build a table of error message strings. The */ - /* strings are not included in a normal build of FreeType 2 to */ - /* save space (most client applications do not use them). */ - /* */ - /* To do so, you have to define the following macros before including */ - /* this file. */ - /* */ - /* { */ - /* FT_ERROR_START_LIST */ - /* } */ - /* */ - /* This macro is called before anything else to define the start of */ - /* the error list. It is followed by several FT_ERROR_DEF calls. */ - /* */ - /* { */ - /* FT_ERROR_DEF( e, v, s ) */ - /* } */ - /* */ - /* This macro is called to define one single error. `e' is the error */ - /* code identifier (e.g., `Invalid_Argument'), `v' is the error's */ - /* numerical value, and `s' is the corresponding error string. */ - /* */ - /* { */ - /* FT_ERROR_END_LIST */ - /* } */ - /* */ - /* This macro ends the list. */ - /* */ - /* Additionally, you have to undefine `__FTERRORS_H__' before */ - /* #including this file. */ - /* */ - /* Here is a simple example. */ - /* */ - /* { */ - /* #undef __FTERRORS_H__ */ - /* #define FT_ERRORDEF( e, v, s ) { e, s }, */ - /* #define FT_ERROR_START_LIST { */ - /* #define FT_ERROR_END_LIST { 0, NULL } }; */ - /* */ - /* const struct */ - /* { */ - /* int err_code; */ - /* const char* err_msg; */ - /* } ft_errors[] = */ - /* */ - /* #include FT_ERRORS_H */ - /* } */ - /* */ - /* Note that `FT_Err_Ok' is _not_ defined with `FT_ERRORDEF' but with */ - /* `FT_NOERRORDEF'; it is always zero. */ - /* */ - /*************************************************************************/ - - /* */ - -#ifndef __FTERRORS_H__ -#define __FTERRORS_H__ - - - /* include module base error codes */ -#include FT_MODULE_ERRORS_H - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** SETUP MACROS *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - -#undef FT_NEED_EXTERN_C - - - /* FT_ERR_PREFIX is used as a prefix for error identifiers. */ - /* By default, we use `FT_Err_'. */ - /* */ -#ifndef FT_ERR_PREFIX -#define FT_ERR_PREFIX FT_Err_ -#endif - - - /* FT_ERR_BASE is used as the base for module-specific errors. */ - /* */ -#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS - -#ifndef FT_ERR_BASE -#define FT_ERR_BASE FT_Mod_Err_Base -#endif - -#else - -#undef FT_ERR_BASE -#define FT_ERR_BASE 0 - -#endif /* FT_CONFIG_OPTION_USE_MODULE_ERRORS */ - - - /* If FT_ERRORDEF is not defined, we need to define a simple */ - /* enumeration type. */ - /* */ -#ifndef FT_ERRORDEF - -#define FT_ERRORDEF( e, v, s ) e = v, -#define FT_ERROR_START_LIST enum { -#define FT_ERROR_END_LIST FT_ERR_CAT( FT_ERR_PREFIX, Max ) }; - -#ifdef __cplusplus -#define FT_NEED_EXTERN_C - extern "C" { -#endif - -#endif /* !FT_ERRORDEF */ - - - /* this macro is used to define an error */ -#define FT_ERRORDEF_( e, v, s ) \ - FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v + FT_ERR_BASE, s ) - - /* this is only used for <module>_Err_Ok, which must be 0! */ -#define FT_NOERRORDEF_( e, v, s ) \ - FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v, s ) - - -#ifdef FT_ERROR_START_LIST - FT_ERROR_START_LIST -#endif - - - /* now include the error codes */ -#include FT_ERROR_DEFINITIONS_H - - -#ifdef FT_ERROR_END_LIST - FT_ERROR_END_LIST -#endif - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** SIMPLE CLEANUP *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - -#ifdef FT_NEED_EXTERN_C - } -#endif - -#undef FT_ERROR_START_LIST -#undef FT_ERROR_END_LIST - -#undef FT_ERRORDEF -#undef FT_ERRORDEF_ -#undef FT_NOERRORDEF_ - -#undef FT_NEED_EXTERN_C -#undef FT_ERR_BASE - - /* FT_ERR_PREFIX is needed internally */ -#ifndef FT2_BUILD_LIBRARY -#undef FT_ERR_PREFIX -#endif - -#endif /* __FTERRORS_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftfntfmt.h b/lib/osx/include/freetype/ftfntfmt.h deleted file mode 100644 index 1f8ff28..0000000 --- a/lib/osx/include/freetype/ftfntfmt.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftfntfmt.h */ -/* */ -/* Support functions for font formats. */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTFNTFMT_H__ -#define __FTFNTFMT_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* font_formats */ - /* */ - /* <Title> */ - /* Font Formats */ - /* */ - /* <Abstract> */ - /* Getting the font format. */ - /* */ - /* <Description> */ - /* The single function in this section can be used to get the font */ - /* format. Note that this information is not needed normally; */ - /* however, there are special cases (like in PDF devices) where it is */ - /* important to differentiate, in spite of FreeType's uniform API. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Font_Format */ - /* */ - /* <Description> */ - /* Return a string describing the format of a given face. Possible */ - /* values are `TrueType', `Type~1', `BDF', `PCF', `Type~42', */ - /* `CID~Type~1', `CFF', `PFR', and `Windows~FNT'. */ - /* */ - /* The return value is suitable to be used as an X11 FONT_PROPERTY. */ - /* */ - /* <Input> */ - /* face :: */ - /* Input face handle. */ - /* */ - /* <Return> */ - /* Font format string. NULL in case of error. */ - /* */ - /* <Note> */ - /* A deprecated name for the same function is */ - /* `FT_Get_X11_Font_Format'. */ - /* */ - FT_EXPORT( const char* ) - FT_Get_Font_Format( FT_Face face ); - - - /* deprecated */ - FT_EXPORT( const char* ) - FT_Get_X11_Font_Format( FT_Face face ); - - - /* */ - - -FT_END_HEADER - -#endif /* __FTFNTFMT_H__ */ diff --git a/lib/osx/include/freetype/ftgasp.h b/lib/osx/include/freetype/ftgasp.h deleted file mode 100644 index 9a9b632..0000000 --- a/lib/osx/include/freetype/ftgasp.h +++ /dev/null @@ -1,129 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftgasp.h */ -/* */ -/* Access of TrueType's `gasp' table (specification). */ -/* */ -/* Copyright 2007-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef _FT_GASP_H_ -#define _FT_GASP_H_ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - - /*************************************************************************** - * - * @section: - * gasp_table - * - * @title: - * Gasp Table - * - * @abstract: - * Retrieving TrueType `gasp' table entries. - * - * @description: - * The function @FT_Get_Gasp can be used to query a TrueType or OpenType - * font for specific entries in its `gasp' table, if any. This is - * mainly useful when implementing native TrueType hinting with the - * bytecode interpreter to duplicate the Windows text rendering results. - */ - - /************************************************************************* - * - * @enum: - * FT_GASP_XXX - * - * @description: - * A list of values and/or bit-flags returned by the @FT_Get_Gasp - * function. - * - * @values: - * FT_GASP_NO_TABLE :: - * This special value means that there is no GASP table in this face. - * It is up to the client to decide what to do. - * - * FT_GASP_DO_GRIDFIT :: - * Grid-fitting and hinting should be performed at the specified ppem. - * This *really* means TrueType bytecode interpretation. If this bit - * is not set, no hinting gets applied. - * - * FT_GASP_DO_GRAY :: - * Anti-aliased rendering should be performed at the specified ppem. - * If not set, do monochrome rendering. - * - * FT_GASP_SYMMETRIC_SMOOTHING :: - * If set, smoothing along multiple axes must be used with ClearType. - * - * FT_GASP_SYMMETRIC_GRIDFIT :: - * Grid-fitting must be used with ClearType's symmetric smoothing. - * - * @note: - * The bit-flags `FT_GASP_DO_GRIDFIT' and `FT_GASP_DO_GRAY' are to be - * used for standard font rasterization only. Independently of that, - * `FT_GASP_SYMMETRIC_SMOOTHING' and `FT_GASP_SYMMETRIC_GRIDFIT' are to - * be used if ClearType is enabled (and `FT_GASP_DO_GRIDFIT' and - * `FT_GASP_DO_GRAY' are consequently ignored). - * - * `ClearType' is Microsoft's implementation of LCD rendering, partly - * protected by patents. - * - * @since: - * 2.3.0 - */ -#define FT_GASP_NO_TABLE -1 -#define FT_GASP_DO_GRIDFIT 0x01 -#define FT_GASP_DO_GRAY 0x02 -#define FT_GASP_SYMMETRIC_SMOOTHING 0x08 -#define FT_GASP_SYMMETRIC_GRIDFIT 0x10 - - - /************************************************************************* - * - * @func: - * FT_Get_Gasp - * - * @description: - * Read the `gasp' table from a TrueType or OpenType font file and - * return the entry corresponding to a given character pixel size. - * - * @input: - * face :: The source face handle. - * ppem :: The vertical character pixel size. - * - * @return: - * Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no - * `gasp' table in the face. - * - * @since: - * 2.3.0 - */ - FT_EXPORT( FT_Int ) - FT_Get_Gasp( FT_Face face, - FT_UInt ppem ); - - /* */ - - -#endif /* _FT_GASP_H_ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftglyph.h b/lib/osx/include/freetype/ftglyph.h deleted file mode 100644 index 803ad39..0000000 --- a/lib/osx/include/freetype/ftglyph.h +++ /dev/null @@ -1,605 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftglyph.h */ -/* */ -/* FreeType convenience functions to handle glyphs (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file contains the definition of several convenience functions */ - /* that can be used by client applications to easily retrieve glyph */ - /* bitmaps and outlines from a given face. */ - /* */ - /* These functions should be optional if you are writing a font server */ - /* or text layout engine on top of FreeType. However, they are pretty */ - /* handy for many other simple uses of the library. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTGLYPH_H__ -#define __FTGLYPH_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* glyph_management */ - /* */ - /* <Title> */ - /* Glyph Management */ - /* */ - /* <Abstract> */ - /* Generic interface to manage individual glyph data. */ - /* */ - /* <Description> */ - /* This section contains definitions used to manage glyph data */ - /* through generic FT_Glyph objects. Each of them can contain a */ - /* bitmap, a vector outline, or even images in other formats. */ - /* */ - /*************************************************************************/ - - - /* forward declaration to a private type */ - typedef struct FT_Glyph_Class_ FT_Glyph_Class; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Glyph */ - /* */ - /* <Description> */ - /* Handle to an object used to model generic glyph images. It is a */ - /* pointer to the @FT_GlyphRec structure and can contain a glyph */ - /* bitmap or pointer. */ - /* */ - /* <Note> */ - /* Glyph objects are not owned by the library. You must thus release */ - /* them manually (through @FT_Done_Glyph) _before_ calling */ - /* @FT_Done_FreeType. */ - /* */ - typedef struct FT_GlyphRec_* FT_Glyph; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_GlyphRec */ - /* */ - /* <Description> */ - /* The root glyph structure contains a given glyph image plus its */ - /* advance width in 16.16 fixed-point format. */ - /* */ - /* <Fields> */ - /* library :: A handle to the FreeType library object. */ - /* */ - /* clazz :: A pointer to the glyph's class. Private. */ - /* */ - /* format :: The format of the glyph's image. */ - /* */ - /* advance :: A 16.16 vector that gives the glyph's advance width. */ - /* */ - typedef struct FT_GlyphRec_ - { - FT_Library library; - const FT_Glyph_Class* clazz; - FT_Glyph_Format format; - FT_Vector advance; - - } FT_GlyphRec; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_BitmapGlyph */ - /* */ - /* <Description> */ - /* A handle to an object used to model a bitmap glyph image. This is */ - /* a sub-class of @FT_Glyph, and a pointer to @FT_BitmapGlyphRec. */ - /* */ - typedef struct FT_BitmapGlyphRec_* FT_BitmapGlyph; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_BitmapGlyphRec */ - /* */ - /* <Description> */ - /* A structure used for bitmap glyph images. This really is a */ - /* `sub-class' of @FT_GlyphRec. */ - /* */ - /* <Fields> */ - /* root :: The root @FT_Glyph fields. */ - /* */ - /* left :: The left-side bearing, i.e., the horizontal distance */ - /* from the current pen position to the left border of the */ - /* glyph bitmap. */ - /* */ - /* top :: The top-side bearing, i.e., the vertical distance from */ - /* the current pen position to the top border of the glyph */ - /* bitmap. This distance is positive for upwards~y! */ - /* */ - /* bitmap :: A descriptor for the bitmap. */ - /* */ - /* <Note> */ - /* You can typecast an @FT_Glyph to @FT_BitmapGlyph if you have */ - /* `glyph->format == FT_GLYPH_FORMAT_BITMAP'. This lets you access */ - /* the bitmap's contents easily. */ - /* */ - /* The corresponding pixel buffer is always owned by @FT_BitmapGlyph */ - /* and is thus created and destroyed with it. */ - /* */ - typedef struct FT_BitmapGlyphRec_ - { - FT_GlyphRec root; - FT_Int left; - FT_Int top; - FT_Bitmap bitmap; - - } FT_BitmapGlyphRec; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_OutlineGlyph */ - /* */ - /* <Description> */ - /* A handle to an object used to model an outline glyph image. This */ - /* is a sub-class of @FT_Glyph, and a pointer to @FT_OutlineGlyphRec. */ - /* */ - typedef struct FT_OutlineGlyphRec_* FT_OutlineGlyph; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_OutlineGlyphRec */ - /* */ - /* <Description> */ - /* A structure used for outline (vectorial) glyph images. This */ - /* really is a `sub-class' of @FT_GlyphRec. */ - /* */ - /* <Fields> */ - /* root :: The root @FT_Glyph fields. */ - /* */ - /* outline :: A descriptor for the outline. */ - /* */ - /* <Note> */ - /* You can typecast an @FT_Glyph to @FT_OutlineGlyph if you have */ - /* `glyph->format == FT_GLYPH_FORMAT_OUTLINE'. This lets you access */ - /* the outline's content easily. */ - /* */ - /* As the outline is extracted from a glyph slot, its coordinates are */ - /* expressed normally in 26.6 pixels, unless the flag */ - /* @FT_LOAD_NO_SCALE was used in @FT_Load_Glyph() or @FT_Load_Char(). */ - /* */ - /* The outline's tables are always owned by the object and are */ - /* destroyed with it. */ - /* */ - typedef struct FT_OutlineGlyphRec_ - { - FT_GlyphRec root; - FT_Outline outline; - - } FT_OutlineGlyphRec; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Glyph */ - /* */ - /* <Description> */ - /* A function used to extract a glyph image from a slot. Note that */ - /* the created @FT_Glyph object must be released with @FT_Done_Glyph. */ - /* */ - /* <Input> */ - /* slot :: A handle to the source glyph slot. */ - /* */ - /* <Output> */ - /* aglyph :: A handle to the glyph object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Glyph( FT_GlyphSlot slot, - FT_Glyph *aglyph ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_Copy */ - /* */ - /* <Description> */ - /* A function used to copy a glyph image. Note that the created */ - /* @FT_Glyph object must be released with @FT_Done_Glyph. */ - /* */ - /* <Input> */ - /* source :: A handle to the source glyph object. */ - /* */ - /* <Output> */ - /* target :: A handle to the target glyph object. 0~in case of */ - /* error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Glyph_Copy( FT_Glyph source, - FT_Glyph *target ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_Transform */ - /* */ - /* <Description> */ - /* Transform a glyph image if its format is scalable. */ - /* */ - /* <InOut> */ - /* glyph :: A handle to the target glyph object. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to a 2x2 matrix to apply. */ - /* */ - /* delta :: A pointer to a 2d vector to apply. Coordinates are */ - /* expressed in 1/64th of a pixel. */ - /* */ - /* <Return> */ - /* FreeType error code (if not 0, the glyph format is not scalable). */ - /* */ - /* <Note> */ - /* The 2x2 transformation matrix is also applied to the glyph's */ - /* advance vector. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Glyph_Transform( FT_Glyph glyph, - FT_Matrix* matrix, - FT_Vector* delta ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Glyph_BBox_Mode */ - /* */ - /* <Description> */ - /* The mode how the values of @FT_Glyph_Get_CBox are returned. */ - /* */ - /* <Values> */ - /* FT_GLYPH_BBOX_UNSCALED :: */ - /* Return unscaled font units. */ - /* */ - /* FT_GLYPH_BBOX_SUBPIXELS :: */ - /* Return unfitted 26.6 coordinates. */ - /* */ - /* FT_GLYPH_BBOX_GRIDFIT :: */ - /* Return grid-fitted 26.6 coordinates. */ - /* */ - /* FT_GLYPH_BBOX_TRUNCATE :: */ - /* Return coordinates in integer pixels. */ - /* */ - /* FT_GLYPH_BBOX_PIXELS :: */ - /* Return grid-fitted pixel coordinates. */ - /* */ - typedef enum FT_Glyph_BBox_Mode_ - { - FT_GLYPH_BBOX_UNSCALED = 0, - FT_GLYPH_BBOX_SUBPIXELS = 0, - FT_GLYPH_BBOX_GRIDFIT = 1, - FT_GLYPH_BBOX_TRUNCATE = 2, - FT_GLYPH_BBOX_PIXELS = 3 - - } FT_Glyph_BBox_Mode; - - - /* these constants are deprecated; use the corresponding */ - /* `FT_Glyph_BBox_Mode' values instead */ -#define ft_glyph_bbox_unscaled FT_GLYPH_BBOX_UNSCALED -#define ft_glyph_bbox_subpixels FT_GLYPH_BBOX_SUBPIXELS -#define ft_glyph_bbox_gridfit FT_GLYPH_BBOX_GRIDFIT -#define ft_glyph_bbox_truncate FT_GLYPH_BBOX_TRUNCATE -#define ft_glyph_bbox_pixels FT_GLYPH_BBOX_PIXELS - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_Get_CBox */ - /* */ - /* <Description> */ - /* Return a glyph's `control box'. The control box encloses all the */ - /* outline's points, including Bézier control points. Though it */ - /* coincides with the exact bounding box for most glyphs, it can be */ - /* slightly larger in some situations (like when rotating an outline */ - /* that contains Bézier outside arcs). */ - /* */ - /* Computing the control box is very fast, while getting the bounding */ - /* box can take much more time as it needs to walk over all segments */ - /* and arcs in the outline. To get the latter, you can use the */ - /* `ftbbox' component, which is dedicated to this single task. */ - /* */ - /* <Input> */ - /* glyph :: A handle to the source glyph object. */ - /* */ - /* mode :: The mode that indicates how to interpret the returned */ - /* bounding box values. */ - /* */ - /* <Output> */ - /* acbox :: The glyph coordinate bounding box. Coordinates are */ - /* expressed in 1/64th of pixels if it is grid-fitted. */ - /* */ - /* <Note> */ - /* Coordinates are relative to the glyph origin, using the y~upwards */ - /* convention. */ - /* */ - /* If the glyph has been loaded with @FT_LOAD_NO_SCALE, `bbox_mode' */ - /* must be set to @FT_GLYPH_BBOX_UNSCALED to get unscaled font */ - /* units in 26.6 pixel format. The value @FT_GLYPH_BBOX_SUBPIXELS */ - /* is another name for this constant. */ - /* */ - /* If the font is tricky and the glyph has been loaded with */ - /* @FT_LOAD_NO_SCALE, the resulting CBox is meaningless. To get */ - /* reasonable values for the CBox it is necessary to load the glyph */ - /* at a large ppem value (so that the hinting instructions can */ - /* properly shift and scale the subglyphs), then extracting the CBox, */ - /* which can be eventually converted back to font units. */ - /* */ - /* Note that the maximum coordinates are exclusive, which means that */ - /* one can compute the width and height of the glyph image (be it in */ - /* integer or 26.6 pixels) as: */ - /* */ - /* { */ - /* width = bbox.xMax - bbox.xMin; */ - /* height = bbox.yMax - bbox.yMin; */ - /* } */ - /* */ - /* Note also that for 26.6 coordinates, if `bbox_mode' is set to */ - /* @FT_GLYPH_BBOX_GRIDFIT, the coordinates will also be grid-fitted, */ - /* which corresponds to: */ - /* */ - /* { */ - /* bbox.xMin = FLOOR(bbox.xMin); */ - /* bbox.yMin = FLOOR(bbox.yMin); */ - /* bbox.xMax = CEILING(bbox.xMax); */ - /* bbox.yMax = CEILING(bbox.yMax); */ - /* } */ - /* */ - /* To get the bbox in pixel coordinates, set `bbox_mode' to */ - /* @FT_GLYPH_BBOX_TRUNCATE. */ - /* */ - /* To get the bbox in grid-fitted pixel coordinates, set `bbox_mode' */ - /* to @FT_GLYPH_BBOX_PIXELS. */ - /* */ - FT_EXPORT( void ) - FT_Glyph_Get_CBox( FT_Glyph glyph, - FT_UInt bbox_mode, - FT_BBox *acbox ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_To_Bitmap */ - /* */ - /* <Description> */ - /* Convert a given glyph object to a bitmap glyph object. */ - /* */ - /* <InOut> */ - /* the_glyph :: A pointer to a handle to the target glyph. */ - /* */ - /* <Input> */ - /* render_mode :: An enumeration that describes how the data is */ - /* rendered. */ - /* */ - /* origin :: A pointer to a vector used to translate the glyph */ - /* image before rendering. Can be~0 (if no */ - /* translation). The origin is expressed in */ - /* 26.6 pixels. */ - /* */ - /* destroy :: A boolean that indicates that the original glyph */ - /* image should be destroyed by this function. It is */ - /* never destroyed in case of error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function does nothing if the glyph format isn't scalable. */ - /* */ - /* The glyph image is translated with the `origin' vector before */ - /* rendering. */ - /* */ - /* The first parameter is a pointer to an @FT_Glyph handle, that will */ - /* be _replaced_ by this function (with newly allocated data). */ - /* Typically, you would use (omitting error handling): */ - /* */ - /* */ - /* { */ - /* FT_Glyph glyph; */ - /* FT_BitmapGlyph glyph_bitmap; */ - /* */ - /* */ - /* // load glyph */ - /* error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAUT ); */ - /* */ - /* // extract glyph image */ - /* error = FT_Get_Glyph( face->glyph, &glyph ); */ - /* */ - /* // convert to a bitmap (default render mode + destroying old) */ - /* if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) */ - /* { */ - /* error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_NORMAL, */ - /* 0, 1 ); */ - /* if ( error ) // `glyph' unchanged */ - /* ... */ - /* } */ - /* */ - /* // access bitmap content by typecasting */ - /* glyph_bitmap = (FT_BitmapGlyph)glyph; */ - /* */ - /* // do funny stuff with it, like blitting/drawing */ - /* ... */ - /* */ - /* // discard glyph image (bitmap or not) */ - /* FT_Done_Glyph( glyph ); */ - /* } */ - /* */ - /* */ - /* Here another example, again without error handling: */ - /* */ - /* */ - /* { */ - /* FT_Glyph glyphs[MAX_GLYPHS] */ - /* */ - /* */ - /* ... */ - /* */ - /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ - /* error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) || */ - /* FT_Get_Glyph ( face->glyph, &glyph[idx] ); */ - /* */ - /* ... */ - /* */ - /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ - /* { */ - /* FT_Glyph bitmap = glyphs[idx]; */ - /* */ - /* */ - /* ... */ - /* */ - /* // after this call, `bitmap' no longer points into */ - /* // the `glyphs' array (and the old value isn't destroyed) */ - /* FT_Glyph_To_Bitmap( &bitmap, FT_RENDER_MODE_MONO, 0, 0 ); */ - /* */ - /* ... */ - /* */ - /* FT_Done_Glyph( bitmap ); */ - /* } */ - /* */ - /* ... */ - /* */ - /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ - /* FT_Done_Glyph( glyphs[idx] ); */ - /* } */ - /* */ - FT_EXPORT( FT_Error ) - FT_Glyph_To_Bitmap( FT_Glyph* the_glyph, - FT_Render_Mode render_mode, - FT_Vector* origin, - FT_Bool destroy ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Glyph */ - /* */ - /* <Description> */ - /* Destroy a given glyph. */ - /* */ - /* <Input> */ - /* glyph :: A handle to the target glyph object. */ - /* */ - FT_EXPORT( void ) - FT_Done_Glyph( FT_Glyph glyph ); - - /* */ - - - /* other helpful functions */ - - /*************************************************************************/ - /* */ - /* <Section> */ - /* computations */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Matrix_Multiply */ - /* */ - /* <Description> */ - /* Perform the matrix operation `b = a*b'. */ - /* */ - /* <Input> */ - /* a :: A pointer to matrix `a'. */ - /* */ - /* <InOut> */ - /* b :: A pointer to matrix `b'. */ - /* */ - /* <Note> */ - /* The result is undefined if either `a' or `b' is zero. */ - /* */ - FT_EXPORT( void ) - FT_Matrix_Multiply( const FT_Matrix* a, - FT_Matrix* b ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Matrix_Invert */ - /* */ - /* <Description> */ - /* Invert a 2x2 matrix. Return an error if it can't be inverted. */ - /* */ - /* <InOut> */ - /* matrix :: A pointer to the target matrix. Remains untouched in */ - /* case of error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Matrix_Invert( FT_Matrix* matrix ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTGLYPH_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/osx/include/freetype/ftgxval.h b/lib/osx/include/freetype/ftgxval.h deleted file mode 100644 index 0e9ac1d..0000000 --- a/lib/osx/include/freetype/ftgxval.h +++ /dev/null @@ -1,357 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftgxval.h */ -/* */ -/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* Masatake YAMATO, Redhat K.K, */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/***************************************************************************/ -/* */ -/* gxvalid is derived from both gxlayout module and otvalid module. */ -/* Development of gxlayout is supported by the Information-technology */ -/* Promotion Agency(IPA), Japan. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTGXVAL_H__ -#define __FTGXVAL_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* gx_validation */ - /* */ - /* <Title> */ - /* TrueTypeGX/AAT Validation */ - /* */ - /* <Abstract> */ - /* An API to validate TrueTypeGX/AAT tables. */ - /* */ - /* <Description> */ - /* This section contains the declaration of functions to validate */ - /* some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, */ - /* trak, prop, lcar). */ - /* */ - /* <Order> */ - /* FT_TrueTypeGX_Validate */ - /* FT_TrueTypeGX_Free */ - /* */ - /* FT_ClassicKern_Validate */ - /* FT_ClassicKern_Free */ - /* */ - /* FT_VALIDATE_GX_LENGTH */ - /* FT_VALIDATE_GXXXX */ - /* FT_VALIDATE_CKERNXXX */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* */ - /* Warning: Use FT_VALIDATE_XXX to validate a table. */ - /* Following definitions are for gxvalid developers. */ - /* */ - /* */ - /*************************************************************************/ - -#define FT_VALIDATE_feat_INDEX 0 -#define FT_VALIDATE_mort_INDEX 1 -#define FT_VALIDATE_morx_INDEX 2 -#define FT_VALIDATE_bsln_INDEX 3 -#define FT_VALIDATE_just_INDEX 4 -#define FT_VALIDATE_kern_INDEX 5 -#define FT_VALIDATE_opbd_INDEX 6 -#define FT_VALIDATE_trak_INDEX 7 -#define FT_VALIDATE_prop_INDEX 8 -#define FT_VALIDATE_lcar_INDEX 9 -#define FT_VALIDATE_GX_LAST_INDEX FT_VALIDATE_lcar_INDEX - - - /************************************************************************* - * - * @macro: - * FT_VALIDATE_GX_LENGTH - * - * @description: - * The number of tables checked in this module. Use it as a parameter - * for the `table-length' argument of function @FT_TrueTypeGX_Validate. - */ -#define FT_VALIDATE_GX_LENGTH (FT_VALIDATE_GX_LAST_INDEX + 1) - - /* */ - - /* Up to 0x1000 is used by otvalid. - Ox2xxx is reserved for feature OT extension. */ -#define FT_VALIDATE_GX_START 0x4000 -#define FT_VALIDATE_GX_BITFIELD( tag ) \ - ( FT_VALIDATE_GX_START << FT_VALIDATE_##tag##_INDEX ) - - - /********************************************************************** - * - * @enum: - * FT_VALIDATE_GXXXX - * - * @description: - * A list of bit-field constants used with @FT_TrueTypeGX_Validate to - * indicate which TrueTypeGX/AAT Type tables should be validated. - * - * @values: - * FT_VALIDATE_feat :: - * Validate `feat' table. - * - * FT_VALIDATE_mort :: - * Validate `mort' table. - * - * FT_VALIDATE_morx :: - * Validate `morx' table. - * - * FT_VALIDATE_bsln :: - * Validate `bsln' table. - * - * FT_VALIDATE_just :: - * Validate `just' table. - * - * FT_VALIDATE_kern :: - * Validate `kern' table. - * - * FT_VALIDATE_opbd :: - * Validate `opbd' table. - * - * FT_VALIDATE_trak :: - * Validate `trak' table. - * - * FT_VALIDATE_prop :: - * Validate `prop' table. - * - * FT_VALIDATE_lcar :: - * Validate `lcar' table. - * - * FT_VALIDATE_GX :: - * Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern, - * opbd, trak, prop and lcar). - * - */ - -#define FT_VALIDATE_feat FT_VALIDATE_GX_BITFIELD( feat ) -#define FT_VALIDATE_mort FT_VALIDATE_GX_BITFIELD( mort ) -#define FT_VALIDATE_morx FT_VALIDATE_GX_BITFIELD( morx ) -#define FT_VALIDATE_bsln FT_VALIDATE_GX_BITFIELD( bsln ) -#define FT_VALIDATE_just FT_VALIDATE_GX_BITFIELD( just ) -#define FT_VALIDATE_kern FT_VALIDATE_GX_BITFIELD( kern ) -#define FT_VALIDATE_opbd FT_VALIDATE_GX_BITFIELD( opbd ) -#define FT_VALIDATE_trak FT_VALIDATE_GX_BITFIELD( trak ) -#define FT_VALIDATE_prop FT_VALIDATE_GX_BITFIELD( prop ) -#define FT_VALIDATE_lcar FT_VALIDATE_GX_BITFIELD( lcar ) - -#define FT_VALIDATE_GX ( FT_VALIDATE_feat | \ - FT_VALIDATE_mort | \ - FT_VALIDATE_morx | \ - FT_VALIDATE_bsln | \ - FT_VALIDATE_just | \ - FT_VALIDATE_kern | \ - FT_VALIDATE_opbd | \ - FT_VALIDATE_trak | \ - FT_VALIDATE_prop | \ - FT_VALIDATE_lcar ) - - - /********************************************************************** - * - * @function: - * FT_TrueTypeGX_Validate - * - * @description: - * Validate various TrueTypeGX tables to assure that all offsets and - * indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without - * error checking (which can be quite time consuming). - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the tables to be validated. See - * @FT_VALIDATE_GXXXX for possible values. - * - * table_length :: - * The size of the `tables' array. Normally, @FT_VALIDATE_GX_LENGTH - * should be passed. - * - * @output: - * tables :: - * The array where all validated sfnt tables are stored. - * The array itself must be allocated by a client. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with TrueTypeGX fonts, returning an error - * otherwise. - * - * After use, the application should deallocate the buffers pointed to by - * each `tables' element, by calling @FT_TrueTypeGX_Free. A NULL value - * indicates that the table either doesn't exist in the font, the - * application hasn't asked for validation, or the validator doesn't have - * the ability to validate the sfnt table. - */ - FT_EXPORT( FT_Error ) - FT_TrueTypeGX_Validate( FT_Face face, - FT_UInt validation_flags, - FT_Bytes tables[FT_VALIDATE_GX_LENGTH], - FT_UInt table_length ); - - - /********************************************************************** - * - * @function: - * FT_TrueTypeGX_Free - * - * @description: - * Free the buffer allocated by TrueTypeGX validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer allocated by - * @FT_TrueTypeGX_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_TrueTypeGX_Validate only. - */ - FT_EXPORT( void ) - FT_TrueTypeGX_Free( FT_Face face, - FT_Bytes table ); - - - /********************************************************************** - * - * @enum: - * FT_VALIDATE_CKERNXXX - * - * @description: - * A list of bit-field constants used with @FT_ClassicKern_Validate - * to indicate the classic kern dialect or dialects. If the selected - * type doesn't fit, @FT_ClassicKern_Validate regards the table as - * invalid. - * - * @values: - * FT_VALIDATE_MS :: - * Handle the `kern' table as a classic Microsoft kern table. - * - * FT_VALIDATE_APPLE :: - * Handle the `kern' table as a classic Apple kern table. - * - * FT_VALIDATE_CKERN :: - * Handle the `kern' as either classic Apple or Microsoft kern table. - */ -#define FT_VALIDATE_MS ( FT_VALIDATE_GX_START << 0 ) -#define FT_VALIDATE_APPLE ( FT_VALIDATE_GX_START << 1 ) - -#define FT_VALIDATE_CKERN ( FT_VALIDATE_MS | FT_VALIDATE_APPLE ) - - - /********************************************************************** - * - * @function: - * FT_ClassicKern_Validate - * - * @description: - * Validate classic (16-bit format) kern table to assure that the offsets - * and indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without error - * checking (which can be quite time consuming). - * - * The `kern' table validator in @FT_TrueTypeGX_Validate deals with both - * the new 32-bit format and the classic 16-bit format, while - * FT_ClassicKern_Validate only supports the classic 16-bit format. - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the dialect to be validated. See - * @FT_VALIDATE_CKERNXXX for possible values. - * - * @output: - * ckern_table :: - * A pointer to the kern table. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * After use, the application should deallocate the buffers pointed to by - * `ckern_table', by calling @FT_ClassicKern_Free. A NULL value - * indicates that the table doesn't exist in the font. - */ - FT_EXPORT( FT_Error ) - FT_ClassicKern_Validate( FT_Face face, - FT_UInt validation_flags, - FT_Bytes *ckern_table ); - - - /********************************************************************** - * - * @function: - * FT_ClassicKern_Free - * - * @description: - * Free the buffer allocated by classic Kern validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer that is allocated by - * @FT_ClassicKern_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_ClassicKern_Validate only. - */ - FT_EXPORT( void ) - FT_ClassicKern_Free( FT_Face face, - FT_Bytes table ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTGXVAL_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftgzip.h b/lib/osx/include/freetype/ftgzip.h deleted file mode 100644 index b3a532d..0000000 --- a/lib/osx/include/freetype/ftgzip.h +++ /dev/null @@ -1,148 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftgzip.h */ -/* */ -/* Gzip-compressed stream support. */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTGZIP_H__ -#define __FTGZIP_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* <Section> */ - /* gzip */ - /* */ - /* <Title> */ - /* GZIP Streams */ - /* */ - /* <Abstract> */ - /* Using gzip-compressed font files. */ - /* */ - /* <Description> */ - /* This section contains the declaration of Gzip-specific functions. */ - /* */ - /*************************************************************************/ - - - /************************************************************************ - * - * @function: - * FT_Stream_OpenGzip - * - * @description: - * Open a new stream to parse gzip-compressed font files. This is - * mainly used to support the compressed `*.pcf.gz' fonts that come - * with XFree86. - * - * @input: - * stream :: - * The target embedding stream. - * - * source :: - * The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close' on the new stream will - * *not* call `FT_Stream_Close' on the source stream. None of the stream - * objects will be released to the heap. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream. - * - * In certain builds of the library, gzip compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a gzipped stream from - * it and re-open the face with it. - * - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with zlib support. - */ - FT_EXPORT( FT_Error ) - FT_Stream_OpenGzip( FT_Stream stream, - FT_Stream source ); - - - /************************************************************************ - * - * @function: - * FT_Gzip_Uncompress - * - * @description: - * Decompress a zipped input buffer into an output buffer. This function - * is modeled after zlib's `uncompress' function. - * - * @input: - * memory :: - * A FreeType memory handle. - * - * input :: - * The input buffer. - * - * input_len :: - * The length of the input buffer. - * - * @output: - * output:: - * The output buffer. - * - * @inout: - * output_len :: - * Before calling the function, this is the the total size of the - * output buffer, which must be large enough to hold the entire - * uncompressed data (so the size of the uncompressed data must be - * known in advance). After calling the function, `output_len' is the - * size of the used data in `output'. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with zlib support. - */ - FT_EXPORT( FT_Error ) - FT_Gzip_Uncompress( FT_Memory memory, - FT_Byte* output, - FT_ULong* output_len, - const FT_Byte* input, - FT_ULong input_len ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTGZIP_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftimage.h b/lib/osx/include/freetype/ftimage.h deleted file mode 100644 index 82f284c..0000000 --- a/lib/osx/include/freetype/ftimage.h +++ /dev/null @@ -1,1214 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftimage.h */ -/* */ -/* FreeType glyph image formats and default raster interface */ -/* (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - /*************************************************************************/ - /* */ - /* Note: A `raster' is simply a scan-line converter, used to render */ - /* FT_Outlines into FT_Bitmaps. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTIMAGE_H__ -#define __FTIMAGE_H__ - - - /* _STANDALONE_ is from ftgrays.c */ -#ifndef _STANDALONE_ -#include <ft2build.h> -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Pos */ - /* */ - /* <Description> */ - /* The type FT_Pos is used to store vectorial coordinates. Depending */ - /* on the context, these can represent distances in integer font */ - /* units, or 16.16, or 26.6 fixed-point pixel coordinates. */ - /* */ - typedef signed long FT_Pos; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Vector */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2D vector; coordinates are of */ - /* the FT_Pos type. */ - /* */ - /* <Fields> */ - /* x :: The horizontal coordinate. */ - /* y :: The vertical coordinate. */ - /* */ - typedef struct FT_Vector_ - { - FT_Pos x; - FT_Pos y; - - } FT_Vector; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_BBox */ - /* */ - /* <Description> */ - /* A structure used to hold an outline's bounding box, i.e., the */ - /* coordinates of its extrema in the horizontal and vertical */ - /* directions. */ - /* */ - /* <Fields> */ - /* xMin :: The horizontal minimum (left-most). */ - /* */ - /* yMin :: The vertical minimum (bottom-most). */ - /* */ - /* xMax :: The horizontal maximum (right-most). */ - /* */ - /* yMax :: The vertical maximum (top-most). */ - /* */ - /* <Note> */ - /* The bounding box is specified with the coordinates of the lower */ - /* left and the upper right corner. In PostScript, those values are */ - /* often called (llx,lly) and (urx,ury), respectively. */ - /* */ - /* If `yMin' is negative, this value gives the glyph's descender. */ - /* Otherwise, the glyph doesn't descend below the baseline. */ - /* Similarly, if `ymax' is positive, this value gives the glyph's */ - /* ascender. */ - /* */ - /* `xMin' gives the horizontal distance from the glyph's origin to */ - /* the left edge of the glyph's bounding box. If `xMin' is negative, */ - /* the glyph extends to the left of the origin. */ - /* */ - typedef struct FT_BBox_ - { - FT_Pos xMin, yMin; - FT_Pos xMax, yMax; - - } FT_BBox; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Pixel_Mode */ - /* */ - /* <Description> */ - /* An enumeration type used to describe the format of pixels in a */ - /* given bitmap. Note that additional formats may be added in the */ - /* future. */ - /* */ - /* <Values> */ - /* FT_PIXEL_MODE_NONE :: */ - /* Value~0 is reserved. */ - /* */ - /* FT_PIXEL_MODE_MONO :: */ - /* A monochrome bitmap, using 1~bit per pixel. Note that pixels */ - /* are stored in most-significant order (MSB), which means that */ - /* the left-most pixel in a byte has value 128. */ - /* */ - /* FT_PIXEL_MODE_GRAY :: */ - /* An 8-bit bitmap, generally used to represent anti-aliased glyph */ - /* images. Each pixel is stored in one byte. Note that the number */ - /* of `gray' levels is stored in the `num_grays' field of the */ - /* @FT_Bitmap structure (it generally is 256). */ - /* */ - /* FT_PIXEL_MODE_GRAY2 :: */ - /* A 2-bit per pixel bitmap, used to represent embedded */ - /* anti-aliased bitmaps in font files according to the OpenType */ - /* specification. We haven't found a single font using this */ - /* format, however. */ - /* */ - /* FT_PIXEL_MODE_GRAY4 :: */ - /* A 4-bit per pixel bitmap, representing embedded anti-aliased */ - /* bitmaps in font files according to the OpenType specification. */ - /* We haven't found a single font using this format, however. */ - /* */ - /* FT_PIXEL_MODE_LCD :: */ - /* An 8-bit bitmap, representing RGB or BGR decimated glyph images */ - /* used for display on LCD displays; the bitmap is three times */ - /* wider than the original glyph image. See also */ - /* @FT_RENDER_MODE_LCD. */ - /* */ - /* FT_PIXEL_MODE_LCD_V :: */ - /* An 8-bit bitmap, representing RGB or BGR decimated glyph images */ - /* used for display on rotated LCD displays; the bitmap is three */ - /* times taller than the original glyph image. See also */ - /* @FT_RENDER_MODE_LCD_V. */ - /* */ - /* FT_PIXEL_MODE_BGRA :: */ - /* An image with four 8-bit channels per pixel, representing a */ - /* color image (such as emoticons) with alpha channel. For each */ - /* pixel, the format is BGRA, which means, the blue channel comes */ - /* first in memory. The color channels are pre-multiplied and in */ - /* the sRGB colorspace. For example, full red at half-translucent */ - /* opacity will be represented as `00,00,80,80', not `00,00,FF,80'. */ - /* See also @FT_LOAD_COLOR. */ - /* */ - typedef enum FT_Pixel_Mode_ - { - FT_PIXEL_MODE_NONE = 0, - FT_PIXEL_MODE_MONO, - FT_PIXEL_MODE_GRAY, - FT_PIXEL_MODE_GRAY2, - FT_PIXEL_MODE_GRAY4, - FT_PIXEL_MODE_LCD, - FT_PIXEL_MODE_LCD_V, - FT_PIXEL_MODE_BGRA, - - FT_PIXEL_MODE_MAX /* do not remove */ - - } FT_Pixel_Mode; - - - /* these constants are deprecated; use the corresponding `FT_Pixel_Mode' */ - /* values instead. */ -#define ft_pixel_mode_none FT_PIXEL_MODE_NONE -#define ft_pixel_mode_mono FT_PIXEL_MODE_MONO -#define ft_pixel_mode_grays FT_PIXEL_MODE_GRAY -#define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2 -#define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4 - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Bitmap */ - /* */ - /* <Description> */ - /* A structure used to describe a bitmap or pixmap to the raster. */ - /* Note that we now manage pixmaps of various depths through the */ - /* `pixel_mode' field. */ - /* */ - /* <Fields> */ - /* rows :: The number of bitmap rows. */ - /* */ - /* width :: The number of pixels in bitmap row. */ - /* */ - /* pitch :: The pitch's absolute value is the number of bytes */ - /* taken by one bitmap row, including padding. */ - /* However, the pitch is positive when the bitmap has */ - /* a `down' flow, and negative when it has an `up' */ - /* flow. In all cases, the pitch is an offset to add */ - /* to a bitmap pointer in order to go down one row. */ - /* */ - /* Note that `padding' means the alignment of a */ - /* bitmap to a byte border, and FreeType functions */ - /* normally align to the smallest possible integer */ - /* value. */ - /* */ - /* For the B/W rasterizer, `pitch' is always an even */ - /* number. */ - /* */ - /* To change the pitch of a bitmap (say, to make it a */ - /* multiple of 4), use @FT_Bitmap_Convert. */ - /* Alternatively, you might use callback functions to */ - /* directly render to the application's surface; see */ - /* the file `example2.cpp' in the tutorial for a */ - /* demonstration. */ - /* */ - /* buffer :: A typeless pointer to the bitmap buffer. This */ - /* value should be aligned on 32-bit boundaries in */ - /* most cases. */ - /* */ - /* num_grays :: This field is only used with */ - /* @FT_PIXEL_MODE_GRAY; it gives the number of gray */ - /* levels used in the bitmap. */ - /* */ - /* pixel_mode :: The pixel mode, i.e., how pixel bits are stored. */ - /* See @FT_Pixel_Mode for possible values. */ - /* */ - /* palette_mode :: This field is intended for paletted pixel modes; */ - /* it indicates how the palette is stored. Not */ - /* used currently. */ - /* */ - /* palette :: A typeless pointer to the bitmap palette; this */ - /* field is intended for paletted pixel modes. Not */ - /* used currently. */ - /* */ - typedef struct FT_Bitmap_ - { - unsigned int rows; - unsigned int width; - int pitch; - unsigned char* buffer; - unsigned short num_grays; - unsigned char pixel_mode; - unsigned char palette_mode; - void* palette; - - } FT_Bitmap; - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* outline_processing */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Outline */ - /* */ - /* <Description> */ - /* This structure is used to describe an outline to the scan-line */ - /* converter. */ - /* */ - /* <Fields> */ - /* n_contours :: The number of contours in the outline. */ - /* */ - /* n_points :: The number of points in the outline. */ - /* */ - /* points :: A pointer to an array of `n_points' @FT_Vector */ - /* elements, giving the outline's point coordinates. */ - /* */ - /* tags :: A pointer to an array of `n_points' chars, giving */ - /* each outline point's type. */ - /* */ - /* If bit~0 is unset, the point is `off' the curve, */ - /* i.e., a Bézier control point, while it is `on' if */ - /* set. */ - /* */ - /* Bit~1 is meaningful for `off' points only. If set, */ - /* it indicates a third-order Bézier arc control point; */ - /* and a second-order control point if unset. */ - /* */ - /* If bit~2 is set, bits 5-7 contain the drop-out mode */ - /* (as defined in the OpenType specification; the value */ - /* is the same as the argument to the SCANMODE */ - /* instruction). */ - /* */ - /* Bits 3 and~4 are reserved for internal purposes. */ - /* */ - /* contours :: An array of `n_contours' shorts, giving the end */ - /* point of each contour within the outline. For */ - /* example, the first contour is defined by the points */ - /* `0' to `contours[0]', the second one is defined by */ - /* the points `contours[0]+1' to `contours[1]', etc. */ - /* */ - /* flags :: A set of bit flags used to characterize the outline */ - /* and give hints to the scan-converter and hinter on */ - /* how to convert/grid-fit it. See @FT_OUTLINE_XXX. */ - /* */ - /* <Note> */ - /* The B/W rasterizer only checks bit~2 in the `tags' array for the */ - /* first point of each contour. The drop-out mode as given with */ - /* @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and */ - /* @FT_OUTLINE_INCLUDE_STUBS in `flags' is then overridden. */ - /* */ - typedef struct FT_Outline_ - { - short n_contours; /* number of contours in glyph */ - short n_points; /* number of points in the glyph */ - - FT_Vector* points; /* the outline's points */ - char* tags; /* the points flags */ - short* contours; /* the contour end points */ - - int flags; /* outline masks */ - - } FT_Outline; - - /* */ - - /* Following limits must be consistent with */ - /* FT_Outline.{n_contours,n_points} */ -#define FT_OUTLINE_CONTOURS_MAX SHRT_MAX -#define FT_OUTLINE_POINTS_MAX SHRT_MAX - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_OUTLINE_XXX */ - /* */ - /* <Description> */ - /* A list of bit-field constants use for the flags in an outline's */ - /* `flags' field. */ - /* */ - /* <Values> */ - /* FT_OUTLINE_NONE :: */ - /* Value~0 is reserved. */ - /* */ - /* FT_OUTLINE_OWNER :: */ - /* If set, this flag indicates that the outline's field arrays */ - /* (i.e., `points', `flags', and `contours') are `owned' by the */ - /* outline object, and should thus be freed when it is destroyed. */ - /* */ - /* FT_OUTLINE_EVEN_ODD_FILL :: */ - /* By default, outlines are filled using the non-zero winding rule. */ - /* If set to 1, the outline will be filled using the even-odd fill */ - /* rule (only works with the smooth rasterizer). */ - /* */ - /* FT_OUTLINE_REVERSE_FILL :: */ - /* By default, outside contours of an outline are oriented in */ - /* clock-wise direction, as defined in the TrueType specification. */ - /* This flag is set if the outline uses the opposite direction */ - /* (typically for Type~1 fonts). This flag is ignored by the scan */ - /* converter. */ - /* */ - /* FT_OUTLINE_IGNORE_DROPOUTS :: */ - /* By default, the scan converter will try to detect drop-outs in */ - /* an outline and correct the glyph bitmap to ensure consistent */ - /* shape continuity. If set, this flag hints the scan-line */ - /* converter to ignore such cases. See below for more information. */ - /* */ - /* FT_OUTLINE_SMART_DROPOUTS :: */ - /* Select smart dropout control. If unset, use simple dropout */ - /* control. Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. See */ - /* below for more information. */ - /* */ - /* FT_OUTLINE_INCLUDE_STUBS :: */ - /* If set, turn pixels on for `stubs', otherwise exclude them. */ - /* Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. See below for */ - /* more information. */ - /* */ - /* FT_OUTLINE_HIGH_PRECISION :: */ - /* This flag indicates that the scan-line converter should try to */ - /* convert this outline to bitmaps with the highest possible */ - /* quality. It is typically set for small character sizes. Note */ - /* that this is only a hint that might be completely ignored by a */ - /* given scan-converter. */ - /* */ - /* FT_OUTLINE_SINGLE_PASS :: */ - /* This flag is set to force a given scan-converter to only use a */ - /* single pass over the outline to render a bitmap glyph image. */ - /* Normally, it is set for very large character sizes. It is only */ - /* a hint that might be completely ignored by a given */ - /* scan-converter. */ - /* */ - /* <Note> */ - /* The flags @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, */ - /* and @FT_OUTLINE_INCLUDE_STUBS are ignored by the smooth */ - /* rasterizer. */ - /* */ - /* There exists a second mechanism to pass the drop-out mode to the */ - /* B/W rasterizer; see the `tags' field in @FT_Outline. */ - /* */ - /* Please refer to the description of the `SCANTYPE' instruction in */ - /* the OpenType specification (in file `ttinst1.doc') how simple */ - /* drop-outs, smart drop-outs, and stubs are defined. */ - /* */ -#define FT_OUTLINE_NONE 0x0 -#define FT_OUTLINE_OWNER 0x1 -#define FT_OUTLINE_EVEN_ODD_FILL 0x2 -#define FT_OUTLINE_REVERSE_FILL 0x4 -#define FT_OUTLINE_IGNORE_DROPOUTS 0x8 -#define FT_OUTLINE_SMART_DROPOUTS 0x10 -#define FT_OUTLINE_INCLUDE_STUBS 0x20 - -#define FT_OUTLINE_HIGH_PRECISION 0x100 -#define FT_OUTLINE_SINGLE_PASS 0x200 - - - /* these constants are deprecated; use the corresponding */ - /* `FT_OUTLINE_XXX' values instead */ -#define ft_outline_none FT_OUTLINE_NONE -#define ft_outline_owner FT_OUTLINE_OWNER -#define ft_outline_even_odd_fill FT_OUTLINE_EVEN_ODD_FILL -#define ft_outline_reverse_fill FT_OUTLINE_REVERSE_FILL -#define ft_outline_ignore_dropouts FT_OUTLINE_IGNORE_DROPOUTS -#define ft_outline_high_precision FT_OUTLINE_HIGH_PRECISION -#define ft_outline_single_pass FT_OUTLINE_SINGLE_PASS - - /* */ - -#define FT_CURVE_TAG( flag ) ( flag & 3 ) - -#define FT_CURVE_TAG_ON 1 -#define FT_CURVE_TAG_CONIC 0 -#define FT_CURVE_TAG_CUBIC 2 - -#define FT_CURVE_TAG_HAS_SCANMODE 4 - -#define FT_CURVE_TAG_TOUCH_X 8 /* reserved for the TrueType hinter */ -#define FT_CURVE_TAG_TOUCH_Y 16 /* reserved for the TrueType hinter */ - -#define FT_CURVE_TAG_TOUCH_BOTH ( FT_CURVE_TAG_TOUCH_X | \ - FT_CURVE_TAG_TOUCH_Y ) - -#define FT_Curve_Tag_On FT_CURVE_TAG_ON -#define FT_Curve_Tag_Conic FT_CURVE_TAG_CONIC -#define FT_Curve_Tag_Cubic FT_CURVE_TAG_CUBIC -#define FT_Curve_Tag_Touch_X FT_CURVE_TAG_TOUCH_X -#define FT_Curve_Tag_Touch_Y FT_CURVE_TAG_TOUCH_Y - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_MoveToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `move */ - /* to' function during outline walking/decomposition. */ - /* */ - /* A `move to' is emitted to start a new contour in an outline. */ - /* */ - /* <Input> */ - /* to :: A pointer to the target point of the `move to'. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of the */ - /* decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - typedef int - (*FT_Outline_MoveToFunc)( const FT_Vector* to, - void* user ); - -#define FT_Outline_MoveTo_Func FT_Outline_MoveToFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_LineToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `line */ - /* to' function during outline walking/decomposition. */ - /* */ - /* A `line to' is emitted to indicate a segment in the outline. */ - /* */ - /* <Input> */ - /* to :: A pointer to the target point of the `line to'. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of the */ - /* decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - typedef int - (*FT_Outline_LineToFunc)( const FT_Vector* to, - void* user ); - -#define FT_Outline_LineTo_Func FT_Outline_LineToFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_ConicToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `conic */ - /* to' function during outline walking or decomposition. */ - /* */ - /* A `conic to' is emitted to indicate a second-order Bézier arc in */ - /* the outline. */ - /* */ - /* <Input> */ - /* control :: An intermediate control point between the last position */ - /* and the new target in `to'. */ - /* */ - /* to :: A pointer to the target end point of the conic arc. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of */ - /* the decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - typedef int - (*FT_Outline_ConicToFunc)( const FT_Vector* control, - const FT_Vector* to, - void* user ); - -#define FT_Outline_ConicTo_Func FT_Outline_ConicToFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_CubicToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `cubic */ - /* to' function during outline walking or decomposition. */ - /* */ - /* A `cubic to' is emitted to indicate a third-order Bézier arc. */ - /* */ - /* <Input> */ - /* control1 :: A pointer to the first Bézier control point. */ - /* */ - /* control2 :: A pointer to the second Bézier control point. */ - /* */ - /* to :: A pointer to the target end point. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of */ - /* the decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - typedef int - (*FT_Outline_CubicToFunc)( const FT_Vector* control1, - const FT_Vector* control2, - const FT_Vector* to, - void* user ); - -#define FT_Outline_CubicTo_Func FT_Outline_CubicToFunc - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Outline_Funcs */ - /* */ - /* <Description> */ - /* A structure to hold various function pointers used during outline */ - /* decomposition in order to emit segments, conic, and cubic Béziers. */ - /* */ - /* <Fields> */ - /* move_to :: The `move to' emitter. */ - /* */ - /* line_to :: The segment emitter. */ - /* */ - /* conic_to :: The second-order Bézier arc emitter. */ - /* */ - /* cubic_to :: The third-order Bézier arc emitter. */ - /* */ - /* shift :: The shift that is applied to coordinates before they */ - /* are sent to the emitter. */ - /* */ - /* delta :: The delta that is applied to coordinates before they */ - /* are sent to the emitter, but after the shift. */ - /* */ - /* <Note> */ - /* The point coordinates sent to the emitters are the transformed */ - /* version of the original coordinates (this is important for high */ - /* accuracy during scan-conversion). The transformation is simple: */ - /* */ - /* { */ - /* x' = (x << shift) - delta */ - /* y' = (x << shift) - delta */ - /* } */ - /* */ - /* Set the values of `shift' and `delta' to~0 to get the original */ - /* point coordinates. */ - /* */ - typedef struct FT_Outline_Funcs_ - { - FT_Outline_MoveToFunc move_to; - FT_Outline_LineToFunc line_to; - FT_Outline_ConicToFunc conic_to; - FT_Outline_CubicToFunc cubic_to; - - int shift; - FT_Pos delta; - - } FT_Outline_Funcs; - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_IMAGE_TAG */ - /* */ - /* <Description> */ - /* This macro converts four-letter tags to an unsigned long type. */ - /* */ - /* <Note> */ - /* Since many 16-bit compilers don't like 32-bit enumerations, you */ - /* should redefine this macro in case of problems to something like */ - /* this: */ - /* */ - /* { */ - /* #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value */ - /* } */ - /* */ - /* to get a simple enumeration without assigning special numbers. */ - /* */ -#ifndef FT_IMAGE_TAG -#define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) \ - value = ( ( (unsigned long)_x1 << 24 ) | \ - ( (unsigned long)_x2 << 16 ) | \ - ( (unsigned long)_x3 << 8 ) | \ - (unsigned long)_x4 ) -#endif /* FT_IMAGE_TAG */ - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Glyph_Format */ - /* */ - /* <Description> */ - /* An enumeration type used to describe the format of a given glyph */ - /* image. Note that this version of FreeType only supports two image */ - /* formats, even though future font drivers will be able to register */ - /* their own format. */ - /* */ - /* <Values> */ - /* FT_GLYPH_FORMAT_NONE :: */ - /* The value~0 is reserved. */ - /* */ - /* FT_GLYPH_FORMAT_COMPOSITE :: */ - /* The glyph image is a composite of several other images. This */ - /* format is _only_ used with @FT_LOAD_NO_RECURSE, and is used to */ - /* report compound glyphs (like accented characters). */ - /* */ - /* FT_GLYPH_FORMAT_BITMAP :: */ - /* The glyph image is a bitmap, and can be described as an */ - /* @FT_Bitmap. You generally need to access the `bitmap' field of */ - /* the @FT_GlyphSlotRec structure to read it. */ - /* */ - /* FT_GLYPH_FORMAT_OUTLINE :: */ - /* The glyph image is a vectorial outline made of line segments */ - /* and Bézier arcs; it can be described as an @FT_Outline; you */ - /* generally want to access the `outline' field of the */ - /* @FT_GlyphSlotRec structure to read it. */ - /* */ - /* FT_GLYPH_FORMAT_PLOTTER :: */ - /* The glyph image is a vectorial path with no inside and outside */ - /* contours. Some Type~1 fonts, like those in the Hershey family, */ - /* contain glyphs in this format. These are described as */ - /* @FT_Outline, but FreeType isn't currently capable of rendering */ - /* them correctly. */ - /* */ - typedef enum FT_Glyph_Format_ - { - FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ), - - FT_IMAGE_TAG( FT_GLYPH_FORMAT_COMPOSITE, 'c', 'o', 'm', 'p' ), - FT_IMAGE_TAG( FT_GLYPH_FORMAT_BITMAP, 'b', 'i', 't', 's' ), - FT_IMAGE_TAG( FT_GLYPH_FORMAT_OUTLINE, 'o', 'u', 't', 'l' ), - FT_IMAGE_TAG( FT_GLYPH_FORMAT_PLOTTER, 'p', 'l', 'o', 't' ) - - } FT_Glyph_Format; - - - /* these constants are deprecated; use the corresponding */ - /* `FT_Glyph_Format' values instead. */ -#define ft_glyph_format_none FT_GLYPH_FORMAT_NONE -#define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE -#define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP -#define ft_glyph_format_outline FT_GLYPH_FORMAT_OUTLINE -#define ft_glyph_format_plotter FT_GLYPH_FORMAT_PLOTTER - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** R A S T E R D E F I N I T I O N S *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* A raster is a scan converter, in charge of rendering an outline into */ - /* a a bitmap. This section contains the public API for rasters. */ - /* */ - /* Note that in FreeType 2, all rasters are now encapsulated within */ - /* specific modules called `renderers'. See `ftrender.h' for more */ - /* details on renderers. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* raster */ - /* */ - /* <Title> */ - /* Scanline Converter */ - /* */ - /* <Abstract> */ - /* How vectorial outlines are converted into bitmaps and pixmaps. */ - /* */ - /* <Description> */ - /* This section contains technical definitions. */ - /* */ - /* <Order> */ - /* FT_Raster */ - /* FT_Span */ - /* FT_SpanFunc */ - /* */ - /* FT_Raster_Params */ - /* FT_RASTER_FLAG_XXX */ - /* */ - /* FT_Raster_NewFunc */ - /* FT_Raster_DoneFunc */ - /* FT_Raster_ResetFunc */ - /* FT_Raster_SetModeFunc */ - /* FT_Raster_RenderFunc */ - /* FT_Raster_Funcs */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Raster */ - /* */ - /* <Description> */ - /* An opaque handle (pointer) to a raster object. Each object can be */ - /* used independently to convert an outline into a bitmap or pixmap. */ - /* */ - typedef struct FT_RasterRec_* FT_Raster; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Span */ - /* */ - /* <Description> */ - /* A structure used to model a single span of gray pixels when */ - /* rendering an anti-aliased bitmap. */ - /* */ - /* <Fields> */ - /* x :: The span's horizontal start position. */ - /* */ - /* len :: The span's length in pixels. */ - /* */ - /* coverage :: The span color/coverage, ranging from 0 (background) */ - /* to 255 (foreground). */ - /* */ - /* <Note> */ - /* This structure is used by the span drawing callback type named */ - /* @FT_SpanFunc that takes the y~coordinate of the span as a */ - /* parameter. */ - /* */ - /* The coverage value is always between 0 and 255. If you want less */ - /* gray values, the callback function has to reduce them. */ - /* */ - typedef struct FT_Span_ - { - short x; - unsigned short len; - unsigned char coverage; - - } FT_Span; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_SpanFunc */ - /* */ - /* <Description> */ - /* A function used as a call-back by the anti-aliased renderer in */ - /* order to let client applications draw themselves the gray pixel */ - /* spans on each scan line. */ - /* */ - /* <Input> */ - /* y :: The scanline's y~coordinate. */ - /* */ - /* count :: The number of spans to draw on this scanline. */ - /* */ - /* spans :: A table of `count' spans to draw on the scanline. */ - /* */ - /* user :: User-supplied data that is passed to the callback. */ - /* */ - /* <Note> */ - /* This callback allows client applications to directly render the */ - /* gray spans of the anti-aliased bitmap to any kind of surfaces. */ - /* */ - /* This can be used to write anti-aliased outlines directly to a */ - /* given background bitmap, and even perform translucency. */ - /* */ - /* Note that the `count' field cannot be greater than a fixed value */ - /* defined by the `FT_MAX_GRAY_SPANS' configuration macro in */ - /* `ftoption.h'. By default, this value is set to~32, which means */ - /* that if there are more than 32~spans on a given scanline, the */ - /* callback is called several times with the same `y' parameter in */ - /* order to draw all callbacks. */ - /* */ - /* Otherwise, the callback is only called once per scan-line, and */ - /* only for those scanlines that do have `gray' pixels on them. */ - /* */ - typedef void - (*FT_SpanFunc)( int y, - int count, - const FT_Span* spans, - void* user ); - -#define FT_Raster_Span_Func FT_SpanFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_BitTest_Func */ - /* */ - /* <Description> */ - /* Deprecated, unimplemented. */ - /* */ - typedef int - (*FT_Raster_BitTest_Func)( int y, - int x, - void* user ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_BitSet_Func */ - /* */ - /* <Description> */ - /* Deprecated, unimplemented. */ - /* */ - typedef void - (*FT_Raster_BitSet_Func)( int y, - int x, - void* user ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_RASTER_FLAG_XXX */ - /* */ - /* <Description> */ - /* A list of bit flag constants as used in the `flags' field of a */ - /* @FT_Raster_Params structure. */ - /* */ - /* <Values> */ - /* FT_RASTER_FLAG_DEFAULT :: This value is 0. */ - /* */ - /* FT_RASTER_FLAG_AA :: This flag is set to indicate that an */ - /* anti-aliased glyph image should be */ - /* generated. Otherwise, it will be */ - /* monochrome (1-bit). */ - /* */ - /* FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct */ - /* rendering. In this mode, client */ - /* applications must provide their own span */ - /* callback. This lets them directly */ - /* draw or compose over an existing bitmap. */ - /* If this bit is not set, the target */ - /* pixmap's buffer _must_ be zeroed before */ - /* rendering. */ - /* */ - /* Direct rendering is only possible with */ - /* anti-aliased glyphs. */ - /* */ - /* FT_RASTER_FLAG_CLIP :: This flag is only used in direct */ - /* rendering mode. If set, the output will */ - /* be clipped to a box specified in the */ - /* `clip_box' field of the */ - /* @FT_Raster_Params structure. */ - /* */ - /* Note that by default, the glyph bitmap */ - /* is clipped to the target pixmap, except */ - /* in direct rendering mode where all spans */ - /* are generated if no clipping box is set. */ - /* */ -#define FT_RASTER_FLAG_DEFAULT 0x0 -#define FT_RASTER_FLAG_AA 0x1 -#define FT_RASTER_FLAG_DIRECT 0x2 -#define FT_RASTER_FLAG_CLIP 0x4 - - /* these constants are deprecated; use the corresponding */ - /* `FT_RASTER_FLAG_XXX' values instead */ -#define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT -#define ft_raster_flag_aa FT_RASTER_FLAG_AA -#define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT -#define ft_raster_flag_clip FT_RASTER_FLAG_CLIP - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Raster_Params */ - /* */ - /* <Description> */ - /* A structure to hold the arguments used by a raster's render */ - /* function. */ - /* */ - /* <Fields> */ - /* target :: The target bitmap. */ - /* */ - /* source :: A pointer to the source glyph image (e.g., an */ - /* @FT_Outline). */ - /* */ - /* flags :: The rendering flags. */ - /* */ - /* gray_spans :: The gray span drawing callback. */ - /* */ - /* black_spans :: Unused. */ - /* */ - /* bit_test :: Unused. */ - /* */ - /* bit_set :: Unused. */ - /* */ - /* user :: User-supplied data that is passed to each drawing */ - /* callback. */ - /* */ - /* clip_box :: An optional clipping box. It is only used in */ - /* direct rendering mode. Note that coordinates here */ - /* should be expressed in _integer_ pixels (and not in */ - /* 26.6 fixed-point units). */ - /* */ - /* <Note> */ - /* An anti-aliased glyph bitmap is drawn if the @FT_RASTER_FLAG_AA */ - /* bit flag is set in the `flags' field, otherwise a monochrome */ - /* bitmap is generated. */ - /* */ - /* If the @FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the */ - /* raster will call the `gray_spans' callback to draw gray pixel */ - /* spans. This allows direct composition over a pre-existing bitmap */ - /* through user-provided callbacks to perform the span drawing and */ - /* composition. Not supported by the monochrome rasterizer. */ - /* */ - typedef struct FT_Raster_Params_ - { - const FT_Bitmap* target; - const void* source; - int flags; - FT_SpanFunc gray_spans; - FT_SpanFunc black_spans; /* unused */ - FT_Raster_BitTest_Func bit_test; /* unused */ - FT_Raster_BitSet_Func bit_set; /* unused */ - void* user; - FT_BBox clip_box; - - } FT_Raster_Params; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_NewFunc */ - /* */ - /* <Description> */ - /* A function used to create a new raster object. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory allocator. */ - /* */ - /* <Output> */ - /* raster :: A handle to the new raster object. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - /* <Note> */ - /* The `memory' parameter is a typeless pointer in order to avoid */ - /* un-wanted dependencies on the rest of the FreeType code. In */ - /* practice, it is an @FT_Memory object, i.e., a handle to the */ - /* standard FreeType memory allocator. However, this field can be */ - /* completely ignored by a given raster implementation. */ - /* */ - typedef int - (*FT_Raster_NewFunc)( void* memory, - FT_Raster* raster ); - -#define FT_Raster_New_Func FT_Raster_NewFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_DoneFunc */ - /* */ - /* <Description> */ - /* A function used to destroy a given raster object. */ - /* */ - /* <Input> */ - /* raster :: A handle to the raster object. */ - /* */ - typedef void - (*FT_Raster_DoneFunc)( FT_Raster raster ); - -#define FT_Raster_Done_Func FT_Raster_DoneFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_ResetFunc */ - /* */ - /* <Description> */ - /* FreeType used to provide an area of memory called the `render */ - /* pool' available to all registered rasters. This was not thread */ - /* safe however and now FreeType never allocates this pool. NULL */ - /* is always passed in as pool_base. */ - /* */ - /* This function is called each time the render pool changes, or just */ - /* after a new raster object is created. */ - /* */ - /* <Input> */ - /* raster :: A handle to the new raster object. */ - /* */ - /* pool_base :: The address in memory of the render pool. */ - /* */ - /* pool_size :: The size in bytes of the render pool. */ - /* */ - /* <Note> */ - /* Rasters should ignore the render pool and rely on dynamic or stack */ - /* allocation if they want to (a handle to the memory allocator is */ - /* passed to the raster constructor). */ - /* */ - typedef void - (*FT_Raster_ResetFunc)( FT_Raster raster, - unsigned char* pool_base, - unsigned long pool_size ); - -#define FT_Raster_Reset_Func FT_Raster_ResetFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_SetModeFunc */ - /* */ - /* <Description> */ - /* This function is a generic facility to change modes or attributes */ - /* in a given raster. This can be used for debugging purposes, or */ - /* simply to allow implementation-specific `features' in a given */ - /* raster module. */ - /* */ - /* <Input> */ - /* raster :: A handle to the new raster object. */ - /* */ - /* mode :: A 4-byte tag used to name the mode or property. */ - /* */ - /* args :: A pointer to the new mode/property to use. */ - /* */ - typedef int - (*FT_Raster_SetModeFunc)( FT_Raster raster, - unsigned long mode, - void* args ); - -#define FT_Raster_Set_Mode_Func FT_Raster_SetModeFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_RenderFunc */ - /* */ - /* <Description> */ - /* Invoke a given raster to scan-convert a given glyph image into a */ - /* target bitmap. */ - /* */ - /* <Input> */ - /* raster :: A handle to the raster object. */ - /* */ - /* params :: A pointer to an @FT_Raster_Params structure used to */ - /* store the rendering parameters. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - /* <Note> */ - /* The exact format of the source image depends on the raster's glyph */ - /* format defined in its @FT_Raster_Funcs structure. It can be an */ - /* @FT_Outline or anything else in order to support a large array of */ - /* glyph formats. */ - /* */ - /* Note also that the render function can fail and return a */ - /* `FT_Err_Unimplemented_Feature' error code if the raster used does */ - /* not support direct composition. */ - /* */ - /* XXX: For now, the standard raster doesn't support direct */ - /* composition but this should change for the final release (see */ - /* the files `demos/src/ftgrays.c' and `demos/src/ftgrays2.c' */ - /* for examples of distinct implementations that support direct */ - /* composition). */ - /* */ - typedef int - (*FT_Raster_RenderFunc)( FT_Raster raster, - const FT_Raster_Params* params ); - -#define FT_Raster_Render_Func FT_Raster_RenderFunc - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Raster_Funcs */ - /* */ - /* <Description> */ - /* A structure used to describe a given raster class to the library. */ - /* */ - /* <Fields> */ - /* glyph_format :: The supported glyph format for this raster. */ - /* */ - /* raster_new :: The raster constructor. */ - /* */ - /* raster_reset :: Used to reset the render pool within the raster. */ - /* */ - /* raster_render :: A function to render a glyph into a given bitmap. */ - /* */ - /* raster_done :: The raster destructor. */ - /* */ - typedef struct FT_Raster_Funcs_ - { - FT_Glyph_Format glyph_format; - FT_Raster_NewFunc raster_new; - FT_Raster_ResetFunc raster_reset; - FT_Raster_SetModeFunc raster_set_mode; - FT_Raster_RenderFunc raster_render; - FT_Raster_DoneFunc raster_done; - - } FT_Raster_Funcs; - - /* */ - - -FT_END_HEADER - -#endif /* __FTIMAGE_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/osx/include/freetype/ftincrem.h b/lib/osx/include/freetype/ftincrem.h deleted file mode 100644 index 840af25..0000000 --- a/lib/osx/include/freetype/ftincrem.h +++ /dev/null @@ -1,354 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftincrem.h */ -/* */ -/* FreeType incremental loading (specification). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTINCREM_H__ -#define __FTINCREM_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************** - * - * @section: - * incremental - * - * @title: - * Incremental Loading - * - * @abstract: - * Custom Glyph Loading. - * - * @description: - * This section contains various functions used to perform so-called - * `incremental' glyph loading. This is a mode where all glyphs loaded - * from a given @FT_Face are provided by the client application. - * - * Apart from that, all other tables are loaded normally from the font - * file. This mode is useful when FreeType is used within another - * engine, e.g., a PostScript Imaging Processor. - * - * To enable this mode, you must use @FT_Open_Face, passing an - * @FT_Parameter with the @FT_PARAM_TAG_INCREMENTAL tag and an - * @FT_Incremental_Interface value. See the comments for - * @FT_Incremental_InterfaceRec for an example. - * - */ - - - /*************************************************************************** - * - * @type: - * FT_Incremental - * - * @description: - * An opaque type describing a user-provided object used to implement - * `incremental' glyph loading within FreeType. This is used to support - * embedded fonts in certain environments (e.g., PostScript interpreters), - * where the glyph data isn't in the font file, or must be overridden by - * different values. - * - * @note: - * It is up to client applications to create and implement @FT_Incremental - * objects, as long as they provide implementations for the methods - * @FT_Incremental_GetGlyphDataFunc, @FT_Incremental_FreeGlyphDataFunc - * and @FT_Incremental_GetGlyphMetricsFunc. - * - * See the description of @FT_Incremental_InterfaceRec to understand how - * to use incremental objects with FreeType. - * - */ - typedef struct FT_IncrementalRec_* FT_Incremental; - - - /*************************************************************************** - * - * @struct: - * FT_Incremental_MetricsRec - * - * @description: - * A small structure used to contain the basic glyph metrics returned - * by the @FT_Incremental_GetGlyphMetricsFunc method. - * - * @fields: - * bearing_x :: - * Left bearing, in font units. - * - * bearing_y :: - * Top bearing, in font units. - * - * advance :: - * Horizontal component of glyph advance, in font units. - * - * advance_v :: - * Vertical component of glyph advance, in font units. - * - * @note: - * These correspond to horizontal or vertical metrics depending on the - * value of the `vertical' argument to the function - * @FT_Incremental_GetGlyphMetricsFunc. - * - */ - typedef struct FT_Incremental_MetricsRec_ - { - FT_Long bearing_x; - FT_Long bearing_y; - FT_Long advance; - FT_Long advance_v; /* since 2.3.12 */ - - } FT_Incremental_MetricsRec; - - - /*************************************************************************** - * - * @struct: - * FT_Incremental_Metrics - * - * @description: - * A handle to an @FT_Incremental_MetricsRec structure. - * - */ - typedef struct FT_Incremental_MetricsRec_* FT_Incremental_Metrics; - - - /*************************************************************************** - * - * @type: - * FT_Incremental_GetGlyphDataFunc - * - * @description: - * A function called by FreeType to access a given glyph's data bytes - * during @FT_Load_Glyph or @FT_Load_Char if incremental loading is - * enabled. - * - * Note that the format of the glyph's data bytes depends on the font - * file format. For TrueType, it must correspond to the raw bytes within - * the `glyf' table. For PostScript formats, it must correspond to the - * *unencrypted* charstring bytes, without any `lenIV' header. It is - * undefined for any other format. - * - * @input: - * incremental :: - * Handle to an opaque @FT_Incremental handle provided by the client - * application. - * - * glyph_index :: - * Index of relevant glyph. - * - * @output: - * adata :: - * A structure describing the returned glyph data bytes (which will be - * accessed as a read-only byte block). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If this function returns successfully the method - * @FT_Incremental_FreeGlyphDataFunc will be called later to release - * the data bytes. - * - * Nested calls to @FT_Incremental_GetGlyphDataFunc can happen for - * compound glyphs. - * - */ - typedef FT_Error - (*FT_Incremental_GetGlyphDataFunc)( FT_Incremental incremental, - FT_UInt glyph_index, - FT_Data* adata ); - - - /*************************************************************************** - * - * @type: - * FT_Incremental_FreeGlyphDataFunc - * - * @description: - * A function used to release the glyph data bytes returned by a - * successful call to @FT_Incremental_GetGlyphDataFunc. - * - * @input: - * incremental :: - * A handle to an opaque @FT_Incremental handle provided by the client - * application. - * - * data :: - * A structure describing the glyph data bytes (which will be accessed - * as a read-only byte block). - * - */ - typedef void - (*FT_Incremental_FreeGlyphDataFunc)( FT_Incremental incremental, - FT_Data* data ); - - - /*************************************************************************** - * - * @type: - * FT_Incremental_GetGlyphMetricsFunc - * - * @description: - * A function used to retrieve the basic metrics of a given glyph index - * before accessing its data. This is necessary because, in certain - * formats like TrueType, the metrics are stored in a different place from - * the glyph images proper. - * - * @input: - * incremental :: - * A handle to an opaque @FT_Incremental handle provided by the client - * application. - * - * glyph_index :: - * Index of relevant glyph. - * - * vertical :: - * If true, return vertical metrics. - * - * ametrics :: - * This parameter is used for both input and output. - * The original glyph metrics, if any, in font units. If metrics are - * not available all the values must be set to zero. - * - * @output: - * ametrics :: - * The replacement glyph metrics in font units. - * - */ - typedef FT_Error - (*FT_Incremental_GetGlyphMetricsFunc) - ( FT_Incremental incremental, - FT_UInt glyph_index, - FT_Bool vertical, - FT_Incremental_MetricsRec *ametrics ); - - - /************************************************************************** - * - * @struct: - * FT_Incremental_FuncsRec - * - * @description: - * A table of functions for accessing fonts that load data - * incrementally. Used in @FT_Incremental_InterfaceRec. - * - * @fields: - * get_glyph_data :: - * The function to get glyph data. Must not be null. - * - * free_glyph_data :: - * The function to release glyph data. Must not be null. - * - * get_glyph_metrics :: - * The function to get glyph metrics. May be null if the font does - * not provide overriding glyph metrics. - * - */ - typedef struct FT_Incremental_FuncsRec_ - { - FT_Incremental_GetGlyphDataFunc get_glyph_data; - FT_Incremental_FreeGlyphDataFunc free_glyph_data; - FT_Incremental_GetGlyphMetricsFunc get_glyph_metrics; - - } FT_Incremental_FuncsRec; - - - /*************************************************************************** - * - * @struct: - * FT_Incremental_InterfaceRec - * - * @description: - * A structure to be used with @FT_Open_Face to indicate that the user - * wants to support incremental glyph loading. You should use it with - * @FT_PARAM_TAG_INCREMENTAL as in the following example: - * - * { - * FT_Incremental_InterfaceRec inc_int; - * FT_Parameter parameter; - * FT_Open_Args open_args; - * - * - * // set up incremental descriptor - * inc_int.funcs = my_funcs; - * inc_int.object = my_object; - * - * // set up optional parameter - * parameter.tag = FT_PARAM_TAG_INCREMENTAL; - * parameter.data = &inc_int; - * - * // set up FT_Open_Args structure - * open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; - * open_args.pathname = my_font_pathname; - * open_args.num_params = 1; - * open_args.params = ¶meter; // we use one optional argument - * - * // open the font - * error = FT_Open_Face( library, &open_args, index, &face ); - * ... - * } - * - */ - typedef struct FT_Incremental_InterfaceRec_ - { - const FT_Incremental_FuncsRec* funcs; - FT_Incremental object; - - } FT_Incremental_InterfaceRec; - - - /*************************************************************************** - * - * @type: - * FT_Incremental_Interface - * - * @description: - * A pointer to an @FT_Incremental_InterfaceRec structure. - * - */ - typedef FT_Incremental_InterfaceRec* FT_Incremental_Interface; - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_INCREMENTAL - * - * @description: - * A constant used as the tag of @FT_Parameter structures to indicate - * an incremental loading object to be used by FreeType. - * - */ -#define FT_PARAM_TAG_INCREMENTAL FT_MAKE_TAG( 'i', 'n', 'c', 'r' ) - - /* */ - - -FT_END_HEADER - -#endif /* __FTINCREM_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftlcdfil.h b/lib/osx/include/freetype/ftlcdfil.h deleted file mode 100644 index 653ed36..0000000 --- a/lib/osx/include/freetype/ftlcdfil.h +++ /dev/null @@ -1,293 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftlcdfil.h */ -/* */ -/* FreeType API for color filtering of subpixel bitmap glyphs */ -/* (specification). */ -/* */ -/* Copyright 2006-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FT_LCD_FILTER_H__ -#define __FT_LCD_FILTER_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************** - * - * @section: - * lcd_filtering - * - * @title: - * LCD Filtering - * - * @abstract: - * Reduce color fringes of subpixel-rendered bitmaps. - * - * @description: - * Subpixel rendering exploits the color-striped structure of LCD - * pixels, increasing the available resolution in the direction of the - * stripe (usually horizontal RGB) by a factor of~3. Since these - * subpixels are color pixels, using them unfiltered creates severe - * color fringes. Use the @FT_Library_SetLcdFilter API to specify a - * low-pass filter, which is then applied to subpixel-rendered bitmaps - * generated through @FT_Render_Glyph. The filter sacrifices some of - * the higher resolution to reduce color fringes, making the glyph image - * slightly blurrier. Positional improvements will remain. - * - * Note that no filter is active by default, and that this function is - * *not* implemented in default builds of the library. You need to - * #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your `ftoption.h' file - * in order to activate it. - * - * A filter should have two properties: - * - * 1) It should be normalized, meaning the sum of the 5~components - * should be 256 (0x100). It is possible to go above or under this - * target sum, however: going under means tossing out contrast, going - * over means invoking clamping and thereby non-linearities that - * increase contrast somewhat at the expense of greater distortion - * and color-fringing. Contrast is better enhanced through stem - * darkening. - * - * 2) It should be color-balanced, meaning a filter `{~a, b, c, b, a~}' - * where a~+ b~=~c. It distributes the computed coverage for one - * subpixel to all subpixels equally, sacrificing some won resolution - * but drastically reducing color-fringing. Positioning improvements - * remain! Note that color-fringing can only really be minimized - * when using a color-balanced filter and alpha-blending the glyph - * onto a surface in linear space; see @FT_Render_Glyph. - * - * Regarding the form, a filter can be a `boxy' filter or a `beveled' - * filter. Boxy filters are sharper but are less forgiving of non-ideal - * gamma curves of a screen (viewing angles!), beveled filters are - * fuzzier but more tolerant. - * - * Examples: - * - * - [0x10 0x40 0x70 0x40 0x10] is beveled and neither balanced nor - * normalized. - * - * - [0x1A 0x33 0x4D 0x33 0x1A] is beveled and balanced but not - * normalized. - * - * - [0x19 0x33 0x66 0x4c 0x19] is beveled and normalized but not - * balanced. - * - * - [0x00 0x4c 0x66 0x4c 0x00] is boxily beveled and normalized but not - * balanced. - * - * - [0x00 0x55 0x56 0x55 0x00] is boxy, normalized, and almost - * balanced. - * - * - [0x08 0x4D 0x56 0x4D 0x08] is beveled, normalized and, almost - * balanced. - * - * It is important to understand that linear alpha blending and gamma - * correction is critical for correctly rendering glyphs onto surfaces - * without artifacts and even more critical when subpixel rendering is - * involved. - * - * Each of the 3~alpha values (subpixels) is independently used to blend - * one color channel. That is, red alpha blends the red channel of the - * text color with the red channel of the background pixel. The - * distribution of density values by the color-balanced filter assumes - * alpha blending is done in linear space; only then color artifacts - * cancel out. - */ - - - /**************************************************************************** - * - * @enum: - * FT_LcdFilter - * - * @description: - * A list of values to identify various types of LCD filters. - * - * @values: - * FT_LCD_FILTER_NONE :: - * Do not perform filtering. When used with subpixel rendering, this - * results in sometimes severe color fringes. - * - * FT_LCD_FILTER_DEFAULT :: - * The default filter reduces color fringes considerably, at the cost - * of a slight blurriness in the output. - * - * It is a beveled, normalized, and color-balanced five-tap filter - * that is more forgiving to screens with non-ideal gamma curves and - * viewing angles. Note that while color-fringing is reduced, it can - * only be minimized by using linear alpha blending and gamma - * correction to render glyphs onto surfaces. - * - * FT_LCD_FILTER_LIGHT :: - * The light filter is a variant that is sharper at the cost of - * slightly more color fringes than the default one. - * - * It is a boxy, normalized, and color-balanced three-tap filter that - * is less forgiving to screens with non-ideal gamma curves and - * viewing angles. This filter works best when the rendering system - * uses linear alpha blending and gamma correction to render glyphs - * onto surfaces. - * - * FT_LCD_FILTER_LEGACY :: - * This filter corresponds to the original libXft color filter. It - * provides high contrast output but can exhibit really bad color - * fringes if glyphs are not extremely well hinted to the pixel grid. - * In other words, it only works well if the TrueType bytecode - * interpreter is enabled *and* high-quality hinted fonts are used. - * - * This filter is only provided for comparison purposes, and might be - * disabled or stay unsupported in the future. - * - * FT_LCD_FILTER_LEGACY1 :: - * For historical reasons, the FontConfig library returns a different - * enumeration value for legacy LCD filtering. To make code work that - * (incorrectly) forwards FontConfig's enumeration value to - * @FT_Library_SetLcdFilter without proper mapping, it is thus easiest - * to have another enumeration value, which is completely equal to - * `FT_LCD_FILTER_LEGACY'. - * - * @since: - * 2.3.0 (`FT_LCD_FILTER_LEGACY1' since 2.6.2) - */ - typedef enum FT_LcdFilter_ - { - FT_LCD_FILTER_NONE = 0, - FT_LCD_FILTER_DEFAULT = 1, - FT_LCD_FILTER_LIGHT = 2, - FT_LCD_FILTER_LEGACY1 = 3, - FT_LCD_FILTER_LEGACY = 16, - - FT_LCD_FILTER_MAX /* do not remove */ - - } FT_LcdFilter; - - - /************************************************************************** - * - * @func: - * FT_Library_SetLcdFilter - * - * @description: - * This function is used to apply color filtering to LCD decimated - * bitmaps, like the ones used when calling @FT_Render_Glyph with - * @FT_RENDER_MODE_LCD or @FT_RENDER_MODE_LCD_V. - * - * @input: - * library :: - * A handle to the target library instance. - * - * filter :: - * The filter type. - * - * You can use @FT_LCD_FILTER_NONE here to disable this feature, or - * @FT_LCD_FILTER_DEFAULT to use a default filter that should work - * well on most LCD screens. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This feature is always disabled by default. Clients must make an - * explicit call to this function with a `filter' value other than - * @FT_LCD_FILTER_NONE in order to enable it. - * - * Due to *PATENTS* covering subpixel rendering, this function doesn't - * do anything except returning `FT_Err_Unimplemented_Feature' if the - * configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not - * defined in your build of the library, which should correspond to all - * default builds of FreeType. - * - * The filter affects glyph bitmaps rendered through @FT_Render_Glyph, - * @FT_Outline_Get_Bitmap, @FT_Load_Glyph, and @FT_Load_Char. - * - * It does _not_ affect the output of @FT_Outline_Render and - * @FT_Outline_Get_Bitmap. - * - * If this feature is activated, the dimensions of LCD glyph bitmaps are - * either larger or taller than the dimensions of the corresponding - * outline with regards to the pixel grid. For example, for - * @FT_RENDER_MODE_LCD, the filter adds up to 3~pixels to the left, and - * up to 3~pixels to the right. - * - * The bitmap offset values are adjusted correctly, so clients shouldn't - * need to modify their layout and glyph positioning code when enabling - * the filter. - * - * @since: - * 2.3.0 - */ - FT_EXPORT( FT_Error ) - FT_Library_SetLcdFilter( FT_Library library, - FT_LcdFilter filter ); - - - /************************************************************************** - * - * @func: - * FT_Library_SetLcdFilterWeights - * - * @description: - * Use this function to override the filter weights selected by - * @FT_Library_SetLcdFilter. By default, FreeType uses the quintuple - * (0x00, 0x55, 0x56, 0x55, 0x00) for FT_LCD_FILTER_LIGHT, and (0x10, - * 0x40, 0x70, 0x40, 0x10) for FT_LCD_FILTER_DEFAULT and - * FT_LCD_FILTER_LEGACY. - * - * @input: - * library :: - * A handle to the target library instance. - * - * weights :: - * A pointer to an array; the function copies the first five bytes and - * uses them to specify the filter weights. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Due to *PATENTS* covering subpixel rendering, this function doesn't - * do anything except returning `FT_Err_Unimplemented_Feature' if the - * configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not - * defined in your build of the library, which should correspond to all - * default builds of FreeType. - * - * This function must be called after @FT_Library_SetLcdFilter to have - * any effect. - * - * @since: - * 2.4.0 - */ - FT_EXPORT( FT_Error ) - FT_Library_SetLcdFilterWeights( FT_Library library, - unsigned char *weights ); - - /* */ - - -FT_END_HEADER - -#endif /* __FT_LCD_FILTER_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftlist.h b/lib/osx/include/freetype/ftlist.h deleted file mode 100644 index 12b48c7..0000000 --- a/lib/osx/include/freetype/ftlist.h +++ /dev/null @@ -1,276 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftlist.h */ -/* */ -/* Generic list support for FreeType (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file implements functions relative to list processing. Its */ - /* data structures are defined in `freetype.h'. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTLIST_H__ -#define __FTLIST_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* list_processing */ - /* */ - /* <Title> */ - /* List Processing */ - /* */ - /* <Abstract> */ - /* Simple management of lists. */ - /* */ - /* <Description> */ - /* This section contains various definitions related to list */ - /* processing using doubly-linked nodes. */ - /* */ - /* <Order> */ - /* FT_List */ - /* FT_ListNode */ - /* FT_ListRec */ - /* FT_ListNodeRec */ - /* */ - /* FT_List_Add */ - /* FT_List_Insert */ - /* FT_List_Find */ - /* FT_List_Remove */ - /* FT_List_Up */ - /* FT_List_Iterate */ - /* FT_List_Iterator */ - /* FT_List_Finalize */ - /* FT_List_Destructor */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Find */ - /* */ - /* <Description> */ - /* Find the list node for a given listed object. */ - /* */ - /* <Input> */ - /* list :: A pointer to the parent list. */ - /* data :: The address of the listed object. */ - /* */ - /* <Return> */ - /* List node. NULL if it wasn't found. */ - /* */ - FT_EXPORT( FT_ListNode ) - FT_List_Find( FT_List list, - void* data ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Add */ - /* */ - /* <Description> */ - /* Append an element to the end of a list. */ - /* */ - /* <InOut> */ - /* list :: A pointer to the parent list. */ - /* node :: The node to append. */ - /* */ - FT_EXPORT( void ) - FT_List_Add( FT_List list, - FT_ListNode node ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Insert */ - /* */ - /* <Description> */ - /* Insert an element at the head of a list. */ - /* */ - /* <InOut> */ - /* list :: A pointer to parent list. */ - /* node :: The node to insert. */ - /* */ - FT_EXPORT( void ) - FT_List_Insert( FT_List list, - FT_ListNode node ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Remove */ - /* */ - /* <Description> */ - /* Remove a node from a list. This function doesn't check whether */ - /* the node is in the list! */ - /* */ - /* <Input> */ - /* node :: The node to remove. */ - /* */ - /* <InOut> */ - /* list :: A pointer to the parent list. */ - /* */ - FT_EXPORT( void ) - FT_List_Remove( FT_List list, - FT_ListNode node ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Up */ - /* */ - /* <Description> */ - /* Move a node to the head/top of a list. Used to maintain LRU */ - /* lists. */ - /* */ - /* <InOut> */ - /* list :: A pointer to the parent list. */ - /* node :: The node to move. */ - /* */ - FT_EXPORT( void ) - FT_List_Up( FT_List list, - FT_ListNode node ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_List_Iterator */ - /* */ - /* <Description> */ - /* An FT_List iterator function that is called during a list parse */ - /* by @FT_List_Iterate. */ - /* */ - /* <Input> */ - /* node :: The current iteration list node. */ - /* */ - /* user :: A typeless pointer passed to @FT_List_Iterate. */ - /* Can be used to point to the iteration's state. */ - /* */ - typedef FT_Error - (*FT_List_Iterator)( FT_ListNode node, - void* user ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Iterate */ - /* */ - /* <Description> */ - /* Parse a list and calls a given iterator function on each element. */ - /* Note that parsing is stopped as soon as one of the iterator calls */ - /* returns a non-zero value. */ - /* */ - /* <Input> */ - /* list :: A handle to the list. */ - /* iterator :: An iterator function, called on each node of the list. */ - /* user :: A user-supplied field that is passed as the second */ - /* argument to the iterator. */ - /* */ - /* <Return> */ - /* The result (a FreeType error code) of the last iterator call. */ - /* */ - FT_EXPORT( FT_Error ) - FT_List_Iterate( FT_List list, - FT_List_Iterator iterator, - void* user ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_List_Destructor */ - /* */ - /* <Description> */ - /* An @FT_List iterator function that is called during a list */ - /* finalization by @FT_List_Finalize to destroy all elements in a */ - /* given list. */ - /* */ - /* <Input> */ - /* system :: The current system object. */ - /* */ - /* data :: The current object to destroy. */ - /* */ - /* user :: A typeless pointer passed to @FT_List_Iterate. It can */ - /* be used to point to the iteration's state. */ - /* */ - typedef void - (*FT_List_Destructor)( FT_Memory memory, - void* data, - void* user ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Finalize */ - /* */ - /* <Description> */ - /* Destroy all elements in the list as well as the list itself. */ - /* */ - /* <Input> */ - /* list :: A handle to the list. */ - /* */ - /* destroy :: A list destructor that will be applied to each element */ - /* of the list. Set this to NULL if not needed. */ - /* */ - /* memory :: The current memory object that handles deallocation. */ - /* */ - /* user :: A user-supplied field that is passed as the last */ - /* argument to the destructor. */ - /* */ - /* <Note> */ - /* This function expects that all nodes added by @FT_List_Add or */ - /* @FT_List_Insert have been dynamically allocated. */ - /* */ - FT_EXPORT( void ) - FT_List_Finalize( FT_List list, - FT_List_Destructor destroy, - FT_Memory memory, - void* user ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTLIST_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftlzw.h b/lib/osx/include/freetype/ftlzw.h deleted file mode 100644 index d3ec28e..0000000 --- a/lib/osx/include/freetype/ftlzw.h +++ /dev/null @@ -1,99 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftlzw.h */ -/* */ -/* LZW-compressed stream support. */ -/* */ -/* Copyright 2004-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTLZW_H__ -#define __FTLZW_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* <Section> */ - /* lzw */ - /* */ - /* <Title> */ - /* LZW Streams */ - /* */ - /* <Abstract> */ - /* Using LZW-compressed font files. */ - /* */ - /* <Description> */ - /* This section contains the declaration of LZW-specific functions. */ - /* */ - /*************************************************************************/ - - /************************************************************************ - * - * @function: - * FT_Stream_OpenLZW - * - * @description: - * Open a new stream to parse LZW-compressed font files. This is - * mainly used to support the compressed `*.pcf.Z' fonts that come - * with XFree86. - * - * @input: - * stream :: The target embedding stream. - * - * source :: The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close' on the new stream will - * *not* call `FT_Stream_Close' on the source stream. None of the stream - * objects will be released to the heap. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream - * - * In certain builds of the library, LZW compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a LZW stream from it - * and re-open the face with it. - * - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with LZW support. - */ - FT_EXPORT( FT_Error ) - FT_Stream_OpenLZW( FT_Stream stream, - FT_Stream source ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTLZW_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftmac.h b/lib/osx/include/freetype/ftmac.h deleted file mode 100644 index 14c55cf..0000000 --- a/lib/osx/include/freetype/ftmac.h +++ /dev/null @@ -1,274 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmac.h */ -/* */ -/* Additional Mac-specific API. */ -/* */ -/* Copyright 1996-2015 by */ -/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* NOTE: Include this file after FT_FREETYPE_H and after any */ -/* Mac-specific headers (because this header uses Mac types such as */ -/* Handle, FSSpec, FSRef, etc.) */ -/* */ -/***************************************************************************/ - - -#ifndef __FTMAC_H__ -#define __FTMAC_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - -/* gcc-3.4.1 and later can warn about functions tagged as deprecated */ -#ifndef FT_DEPRECATED_ATTRIBUTE -#if defined(__GNUC__) && \ - ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))) -#define FT_DEPRECATED_ATTRIBUTE __attribute__((deprecated)) -#else -#define FT_DEPRECATED_ATTRIBUTE -#endif -#endif - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* mac_specific */ - /* */ - /* <Title> */ - /* Mac Specific Interface */ - /* */ - /* <Abstract> */ - /* Only available on the Macintosh. */ - /* */ - /* <Description> */ - /* The following definitions are only available if FreeType is */ - /* compiled on a Macintosh. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face_From_FOND */ - /* */ - /* <Description> */ - /* Create a new face object from a FOND resource. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* fond :: A FOND resource. */ - /* */ - /* face_index :: Only supported for the -1 `sanity check' special */ - /* case. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Notes> */ - /* This function can be used to create @FT_Face objects from fonts */ - /* that are installed in the system as follows. */ - /* */ - /* { */ - /* fond = GetResource( 'FOND', fontName ); */ - /* error = FT_New_Face_From_FOND( library, fond, 0, &face ); */ - /* } */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Face_From_FOND( FT_Library library, - Handle fond, - FT_Long face_index, - FT_Face *aface ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GetFile_From_Mac_Name */ - /* */ - /* <Description> */ - /* Return an FSSpec for the disk file containing the named font. */ - /* */ - /* <Input> */ - /* fontName :: Mac OS name of the font (e.g., Times New Roman */ - /* Bold). */ - /* */ - /* <Output> */ - /* pathSpec :: FSSpec to the file. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* face_index :: Index of the face. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_GetFile_From_Mac_Name( const char* fontName, - FSSpec* pathSpec, - FT_Long* face_index ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GetFile_From_Mac_ATS_Name */ - /* */ - /* <Description> */ - /* Return an FSSpec for the disk file containing the named font. */ - /* */ - /* <Input> */ - /* fontName :: Mac OS name of the font in ATS framework. */ - /* */ - /* <Output> */ - /* pathSpec :: FSSpec to the file. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* face_index :: Index of the face. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_GetFile_From_Mac_ATS_Name( const char* fontName, - FSSpec* pathSpec, - FT_Long* face_index ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GetFilePath_From_Mac_ATS_Name */ - /* */ - /* <Description> */ - /* Return a pathname of the disk file and face index for given font */ - /* name that is handled by ATS framework. */ - /* */ - /* <Input> */ - /* fontName :: Mac OS name of the font in ATS framework. */ - /* */ - /* <Output> */ - /* path :: Buffer to store pathname of the file. For passing */ - /* to @FT_New_Face. The client must allocate this */ - /* buffer before calling this function. */ - /* */ - /* maxPathSize :: Lengths of the buffer `path' that client allocated. */ - /* */ - /* face_index :: Index of the face. For passing to @FT_New_Face. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_GetFilePath_From_Mac_ATS_Name( const char* fontName, - UInt8* path, - UInt32 maxPathSize, - FT_Long* face_index ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face_From_FSSpec */ - /* */ - /* <Description> */ - /* Create a new face object from a given resource and typeface index */ - /* using an FSSpec to the font file. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* spec :: FSSpec to the font file. */ - /* */ - /* face_index :: The index of the face within the resource. The */ - /* first face has index~0. */ - /* <Output> */ - /* aface :: A handle to a new face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* @FT_New_Face_From_FSSpec is identical to @FT_New_Face except */ - /* it accepts an FSSpec instead of a path. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Face_From_FSSpec( FT_Library library, - const FSSpec *spec, - FT_Long face_index, - FT_Face *aface ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face_From_FSRef */ - /* */ - /* <Description> */ - /* Create a new face object from a given resource and typeface index */ - /* using an FSRef to the font file. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* spec :: FSRef to the font file. */ - /* */ - /* face_index :: The index of the face within the resource. The */ - /* first face has index~0. */ - /* <Output> */ - /* aface :: A handle to a new face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* @FT_New_Face_From_FSRef is identical to @FT_New_Face except */ - /* it accepts an FSRef instead of a path. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Face_From_FSRef( FT_Library library, - const FSRef *ref, - FT_Long face_index, - FT_Face *aface ) - FT_DEPRECATED_ATTRIBUTE; - - /* */ - - -FT_END_HEADER - - -#endif /* __FTMAC_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftmm.h b/lib/osx/include/freetype/ftmm.h deleted file mode 100644 index 96dd66e..0000000 --- a/lib/osx/include/freetype/ftmm.h +++ /dev/null @@ -1,384 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmm.h */ -/* */ -/* FreeType Multiple Master font interface (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTMM_H__ -#define __FTMM_H__ - - -#include <ft2build.h> -#include FT_TYPE1_TABLES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* multiple_masters */ - /* */ - /* <Title> */ - /* Multiple Masters */ - /* */ - /* <Abstract> */ - /* How to manage Multiple Masters fonts. */ - /* */ - /* <Description> */ - /* The following types and functions are used to manage Multiple */ - /* Master fonts, i.e., the selection of specific design instances by */ - /* setting design axis coordinates. */ - /* */ - /* George Williams has extended this interface to make it work with */ - /* both Type~1 Multiple Masters fonts and GX distortable (var) */ - /* fonts. Some of these routines only work with MM fonts, others */ - /* will work with both types. They are similar enough that a */ - /* consistent interface makes sense. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_MM_Axis */ - /* */ - /* <Description> */ - /* A simple structure used to model a given axis in design space for */ - /* Multiple Masters fonts. */ - /* */ - /* This structure can't be used for GX var fonts. */ - /* */ - /* <Fields> */ - /* name :: The axis's name. */ - /* */ - /* minimum :: The axis's minimum design coordinate. */ - /* */ - /* maximum :: The axis's maximum design coordinate. */ - /* */ - typedef struct FT_MM_Axis_ - { - FT_String* name; - FT_Long minimum; - FT_Long maximum; - - } FT_MM_Axis; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Multi_Master */ - /* */ - /* <Description> */ - /* A structure used to model the axes and space of a Multiple Masters */ - /* font. */ - /* */ - /* This structure can't be used for GX var fonts. */ - /* */ - /* <Fields> */ - /* num_axis :: Number of axes. Cannot exceed~4. */ - /* */ - /* num_designs :: Number of designs; should be normally 2^num_axis */ - /* even though the Type~1 specification strangely */ - /* allows for intermediate designs to be present. */ - /* This number cannot exceed~16. */ - /* */ - /* axis :: A table of axis descriptors. */ - /* */ - typedef struct FT_Multi_Master_ - { - FT_UInt num_axis; - FT_UInt num_designs; - FT_MM_Axis axis[T1_MAX_MM_AXIS]; - - } FT_Multi_Master; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Var_Axis */ - /* */ - /* <Description> */ - /* A simple structure used to model a given axis in design space for */ - /* Multiple Masters and GX var fonts. */ - /* */ - /* <Fields> */ - /* name :: The axis's name. */ - /* Not always meaningful for GX. */ - /* */ - /* minimum :: The axis's minimum design coordinate. */ - /* */ - /* def :: The axis's default design coordinate. */ - /* FreeType computes meaningful default values for MM; it */ - /* is then an integer value, not in 16.16 format. */ - /* */ - /* maximum :: The axis's maximum design coordinate. */ - /* */ - /* tag :: The axis's tag (the GX equivalent to `name'). */ - /* FreeType provides default values for MM if possible. */ - /* */ - /* strid :: The entry in `name' table (another GX version of */ - /* `name'). */ - /* Not meaningful for MM. */ - /* */ - typedef struct FT_Var_Axis_ - { - FT_String* name; - - FT_Fixed minimum; - FT_Fixed def; - FT_Fixed maximum; - - FT_ULong tag; - FT_UInt strid; - - } FT_Var_Axis; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Var_Named_Style */ - /* */ - /* <Description> */ - /* A simple structure used to model a named style in a GX var font. */ - /* */ - /* This structure can't be used for MM fonts. */ - /* */ - /* <Fields> */ - /* coords :: The design coordinates for this style. */ - /* This is an array with one entry for each axis. */ - /* */ - /* strid :: The entry in `name' table identifying this style. */ - /* */ - typedef struct FT_Var_Named_Style_ - { - FT_Fixed* coords; - FT_UInt strid; - - } FT_Var_Named_Style; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_MM_Var */ - /* */ - /* <Description> */ - /* A structure used to model the axes and space of a Multiple Masters */ - /* or GX var distortable font. */ - /* */ - /* Some fields are specific to one format and not to the other. */ - /* */ - /* <Fields> */ - /* num_axis :: The number of axes. The maximum value is~4 for */ - /* MM; no limit in GX. */ - /* */ - /* num_designs :: The number of designs; should be normally */ - /* 2^num_axis for MM fonts. Not meaningful for GX */ - /* (where every glyph could have a different */ - /* number of designs). */ - /* */ - /* num_namedstyles :: The number of named styles; only meaningful for */ - /* GX that allows certain design coordinates to */ - /* have a string ID (in the `name' table) */ - /* associated with them. The font can tell the */ - /* user that, for example, Weight=1.5 is `Bold'. */ - /* */ - /* axis :: An axis descriptor table. */ - /* GX fonts contain slightly more data than MM. */ - /* Memory management of this pointer is done */ - /* internally by FreeType. */ - /* */ - /* namedstyle :: A named style table. */ - /* Only meaningful with GX. */ - /* Memory management of this pointer is done */ - /* internally by FreeType. */ - /* */ - typedef struct FT_MM_Var_ - { - FT_UInt num_axis; - FT_UInt num_designs; - FT_UInt num_namedstyles; - FT_Var_Axis* axis; - FT_Var_Named_Style* namedstyle; - - } FT_MM_Var; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Multi_Master */ - /* */ - /* <Description> */ - /* Retrieve the Multiple Master descriptor of a given font. */ - /* */ - /* This function can't be used with GX fonts. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* <Output> */ - /* amaster :: The Multiple Masters descriptor. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Multi_Master( FT_Face face, - FT_Multi_Master *amaster ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_MM_Var */ - /* */ - /* <Description> */ - /* Retrieve the Multiple Master/GX var descriptor of a given font. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* <Output> */ - /* amaster :: The Multiple Masters/GX var descriptor. */ - /* Allocates a data structure, which the user must */ - /* deallocate with `free' after use. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_MM_Var( FT_Face face, - FT_MM_Var* *amaster ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_MM_Design_Coordinates */ - /* */ - /* <Description> */ - /* For Multiple Masters fonts, choose an interpolated font design */ - /* through design coordinates. */ - /* */ - /* This function can't be used with GX fonts. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face. */ - /* */ - /* <Input> */ - /* num_coords :: The number of available design coordinates. If it */ - /* is larger than the number of axes, ignore the excess */ - /* values. If it is smaller than the number of axes, */ - /* use default values for the remaining axes. */ - /* */ - /* coords :: An array of design coordinates. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_MM_Design_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Long* coords ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Var_Design_Coordinates */ - /* */ - /* <Description> */ - /* For Multiple Master or GX Var fonts, choose an interpolated font */ - /* design through design coordinates. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face. */ - /* */ - /* <Input> */ - /* num_coords :: The number of available design coordinates. If it */ - /* is larger than the number of axes, ignore the excess */ - /* values. If it is smaller than the number of axes, */ - /* use default values for the remaining axes. */ - /* */ - /* coords :: An array of design coordinates. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Var_Design_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_MM_Blend_Coordinates */ - /* */ - /* <Description> */ - /* For Multiple Masters and GX var fonts, choose an interpolated font */ - /* design through normalized blend coordinates. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face. */ - /* */ - /* <Input> */ - /* num_coords :: The number of available design coordinates. If it */ - /* is larger than the number of axes, ignore the excess */ - /* values. If it is smaller than the number of axes, */ - /* use default values for the remaining axes. */ - /* */ - /* coords :: The design coordinates array (each element must be */ - /* between 0 and 1.0). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_MM_Blend_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Var_Blend_Coordinates */ - /* */ - /* <Description> */ - /* This is another name of @FT_Set_MM_Blend_Coordinates. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Var_Blend_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTMM_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftmodapi.h b/lib/osx/include/freetype/ftmodapi.h deleted file mode 100644 index 89d9347..0000000 --- a/lib/osx/include/freetype/ftmodapi.h +++ /dev/null @@ -1,672 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmodapi.h */ -/* */ -/* FreeType modules public interface (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTMODAPI_H__ -#define __FTMODAPI_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* module_management */ - /* */ - /* <Title> */ - /* Module Management */ - /* */ - /* <Abstract> */ - /* How to add, upgrade, remove, and control modules from FreeType. */ - /* */ - /* <Description> */ - /* The definitions below are used to manage modules within FreeType. */ - /* Modules can be added, upgraded, and removed at runtime. */ - /* Additionally, some module properties can be controlled also. */ - /* */ - /* Here is a list of possible values of the `module_name' field in */ - /* the @FT_Module_Class structure. */ - /* */ - /* { */ - /* autofitter */ - /* bdf */ - /* cff */ - /* gxvalid */ - /* otvalid */ - /* pcf */ - /* pfr */ - /* psaux */ - /* pshinter */ - /* psnames */ - /* raster1 */ - /* sfnt */ - /* smooth, smooth-lcd, smooth-lcdv */ - /* truetype */ - /* type1 */ - /* type42 */ - /* t1cid */ - /* winfonts */ - /* } */ - /* */ - /* Note that the FreeType Cache sub-system is not a FreeType module. */ - /* */ - /* <Order> */ - /* FT_Module */ - /* FT_Module_Constructor */ - /* FT_Module_Destructor */ - /* FT_Module_Requester */ - /* FT_Module_Class */ - /* */ - /* FT_Add_Module */ - /* FT_Get_Module */ - /* FT_Remove_Module */ - /* FT_Add_Default_Modules */ - /* */ - /* FT_Property_Set */ - /* FT_Property_Get */ - /* */ - /* FT_New_Library */ - /* FT_Done_Library */ - /* FT_Reference_Library */ - /* */ - /* FT_Renderer */ - /* FT_Renderer_Class */ - /* */ - /* FT_Get_Renderer */ - /* FT_Set_Renderer */ - /* */ - /* FT_Set_Debug_Hook */ - /* */ - /*************************************************************************/ - - - /* module bit flags */ -#define FT_MODULE_FONT_DRIVER 1 /* this module is a font driver */ -#define FT_MODULE_RENDERER 2 /* this module is a renderer */ -#define FT_MODULE_HINTER 4 /* this module is a glyph hinter */ -#define FT_MODULE_STYLER 8 /* this module is a styler */ - -#define FT_MODULE_DRIVER_SCALABLE 0x100 /* the driver supports */ - /* scalable fonts */ -#define FT_MODULE_DRIVER_NO_OUTLINES 0x200 /* the driver does not */ - /* support vector outlines */ -#define FT_MODULE_DRIVER_HAS_HINTER 0x400 /* the driver provides its */ - /* own hinter */ -#define FT_MODULE_DRIVER_HINTS_LIGHTLY 0x800 /* the driver's hinter */ - /* produces LIGHT hints */ - - - /* deprecated values */ -#define ft_module_font_driver FT_MODULE_FONT_DRIVER -#define ft_module_renderer FT_MODULE_RENDERER -#define ft_module_hinter FT_MODULE_HINTER -#define ft_module_styler FT_MODULE_STYLER - -#define ft_module_driver_scalable FT_MODULE_DRIVER_SCALABLE -#define ft_module_driver_no_outlines FT_MODULE_DRIVER_NO_OUTLINES -#define ft_module_driver_has_hinter FT_MODULE_DRIVER_HAS_HINTER -#define ft_module_driver_hints_lightly FT_MODULE_DRIVER_HINTS_LIGHTLY - - - typedef FT_Pointer FT_Module_Interface; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Constructor */ - /* */ - /* <Description> */ - /* A function used to initialize (not create) a new module object. */ - /* */ - /* <Input> */ - /* module :: The module to initialize. */ - /* */ - typedef FT_Error - (*FT_Module_Constructor)( FT_Module module ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Destructor */ - /* */ - /* <Description> */ - /* A function used to finalize (not destroy) a given module object. */ - /* */ - /* <Input> */ - /* module :: The module to finalize. */ - /* */ - typedef void - (*FT_Module_Destructor)( FT_Module module ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Requester */ - /* */ - /* <Description> */ - /* A function used to query a given module for a specific interface. */ - /* */ - /* <Input> */ - /* module :: The module to be searched. */ - /* */ - /* name :: The name of the interface in the module. */ - /* */ - typedef FT_Module_Interface - (*FT_Module_Requester)( FT_Module module, - const char* name ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Module_Class */ - /* */ - /* <Description> */ - /* The module class descriptor. */ - /* */ - /* <Fields> */ - /* module_flags :: Bit flags describing the module. */ - /* */ - /* module_size :: The size of one module object/instance in */ - /* bytes. */ - /* */ - /* module_name :: The name of the module. */ - /* */ - /* module_version :: The version, as a 16.16 fixed number */ - /* (major.minor). */ - /* */ - /* module_requires :: The version of FreeType this module requires, */ - /* as a 16.16 fixed number (major.minor). Starts */ - /* at version 2.0, i.e., 0x20000. */ - /* */ - /* module_init :: The initializing function. */ - /* */ - /* module_done :: The finalizing function. */ - /* */ - /* get_interface :: The interface requesting function. */ - /* */ - typedef struct FT_Module_Class_ - { - FT_ULong module_flags; - FT_Long module_size; - const FT_String* module_name; - FT_Fixed module_version; - FT_Fixed module_requires; - - const void* module_interface; - - FT_Module_Constructor module_init; - FT_Module_Destructor module_done; - FT_Module_Requester get_interface; - - } FT_Module_Class; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Add_Module */ - /* */ - /* <Description> */ - /* Add a new module to a given library instance. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library object. */ - /* */ - /* <Input> */ - /* clazz :: A pointer to class descriptor for the module. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* An error will be returned if a module already exists by that name, */ - /* or if the module requires a version of FreeType that is too great. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Add_Module( FT_Library library, - const FT_Module_Class* clazz ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Module */ - /* */ - /* <Description> */ - /* Find a module by its name. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object. */ - /* */ - /* module_name :: The module's name (as an ASCII string). */ - /* */ - /* <Return> */ - /* A module handle. 0~if none was found. */ - /* */ - /* <Note> */ - /* FreeType's internal modules aren't documented very well, and you */ - /* should look up the source code for details. */ - /* */ - FT_EXPORT( FT_Module ) - FT_Get_Module( FT_Library library, - const char* module_name ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Remove_Module */ - /* */ - /* <Description> */ - /* Remove a given module from a library instance. */ - /* */ - /* <InOut> */ - /* library :: A handle to a library object. */ - /* */ - /* <Input> */ - /* module :: A handle to a module object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The module object is destroyed by the function in case of success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Remove_Module( FT_Library library, - FT_Module module ); - - - /********************************************************************** - * - * @function: - * FT_Property_Set - * - * @description: - * Set a property for a given module. - * - * @input: - * library :: - * A handle to the library the module is part of. - * - * module_name :: - * The module name. - * - * property_name :: - * The property name. Properties are described in the `Synopsis' - * subsection of the module's documentation. - * - * Note that only a few modules have properties. - * - * value :: - * A generic pointer to a variable or structure that gives the new - * value of the property. The exact definition of `value' is - * dependent on the property; see the `Synopsis' subsection of the - * module's documentation. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If `module_name' isn't a valid module name, or `property_name' - * doesn't specify a valid property, or if `value' doesn't represent a - * valid value for the given property, an error is returned. - * - * The following example sets property `bar' (a simple integer) in - * module `foo' to value~1. - * - * { - * FT_UInt bar; - * - * - * bar = 1; - * FT_Property_Set( library, "foo", "bar", &bar ); - * } - * - * Note that the FreeType Cache sub-system doesn't recognize module - * property changes. To avoid glyph lookup confusion within the cache - * you should call @FTC_Manager_Reset to completely flush the cache if - * a module property gets changed after @FTC_Manager_New has been - * called. - * - * It is not possible to set properties of the FreeType Cache - * sub-system itself with FT_Property_Set; use @FTC_Property_Set - * instead. - * - * @since: - * 2.4.11 - * - */ - FT_EXPORT( FT_Error ) - FT_Property_Set( FT_Library library, - const FT_String* module_name, - const FT_String* property_name, - const void* value ); - - - /********************************************************************** - * - * @function: - * FT_Property_Get - * - * @description: - * Get a module's property value. - * - * @input: - * library :: - * A handle to the library the module is part of. - * - * module_name :: - * The module name. - * - * property_name :: - * The property name. Properties are described in the `Synopsis' - * subsection of the module's documentation. - * - * @inout: - * value :: - * A generic pointer to a variable or structure that gives the - * value of the property. The exact definition of `value' is - * dependent on the property; see the `Synopsis' subsection of the - * module's documentation. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If `module_name' isn't a valid module name, or `property_name' - * doesn't specify a valid property, or if `value' doesn't represent a - * valid value for the given property, an error is returned. - * - * The following example gets property `baz' (a range) in module `foo'. - * - * { - * typedef range_ - * { - * FT_Int32 min; - * FT_Int32 max; - * - * } range; - * - * range baz; - * - * - * FT_Property_Get( library, "foo", "baz", &baz ); - * } - * - * It is not possible to retrieve properties of the FreeType Cache - * sub-system with FT_Property_Get; use @FTC_Property_Get instead. - * - * @since: - * 2.4.11 - * - */ - FT_EXPORT( FT_Error ) - FT_Property_Get( FT_Library library, - const FT_String* module_name, - const FT_String* property_name, - void* value ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Reference_Library */ - /* */ - /* <Description> */ - /* A counter gets initialized to~1 at the time an @FT_Library */ - /* structure is created. This function increments the counter. */ - /* @FT_Done_Library then only destroys a library if the counter is~1, */ - /* otherwise it simply decrements the counter. */ - /* */ - /* This function helps in managing life-cycles of structures that */ - /* reference @FT_Library objects. */ - /* */ - /* <Input> */ - /* library :: A handle to a target library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Since> */ - /* 2.4.2 */ - /* */ - FT_EXPORT( FT_Error ) - FT_Reference_Library( FT_Library library ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Library */ - /* */ - /* <Description> */ - /* This function is used to create a new FreeType library instance */ - /* from a given memory object. It is thus possible to use libraries */ - /* with distinct memory allocators within the same program. Note, */ - /* however, that the used @FT_Memory structure is expected to remain */ - /* valid for the life of the @FT_Library object. */ - /* */ - /* Normally, you would call this function (followed by a call to */ - /* @FT_Add_Default_Modules or a series of calls to @FT_Add_Module) */ - /* instead of @FT_Init_FreeType to initialize the FreeType library. */ - /* */ - /* Don't use @FT_Done_FreeType but @FT_Done_Library to destroy a */ - /* library instance. */ - /* */ - /* <Input> */ - /* memory :: A handle to the original memory object. */ - /* */ - /* <Output> */ - /* alibrary :: A pointer to handle of a new library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Library. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Library( FT_Memory memory, - FT_Library *alibrary ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Library */ - /* */ - /* <Description> */ - /* Discard a given library object. This closes all drivers and */ - /* discards all resource objects. */ - /* */ - /* <Input> */ - /* library :: A handle to the target library. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Library. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Done_Library( FT_Library library ); - - /* */ - - typedef void - (*FT_DebugHook_Func)( void* arg ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Debug_Hook */ - /* */ - /* <Description> */ - /* Set a debug hook function for debugging the interpreter of a font */ - /* format. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library object. */ - /* */ - /* <Input> */ - /* hook_index :: The index of the debug hook. You should use the */ - /* values defined in `ftobjs.h', e.g., */ - /* `FT_DEBUG_HOOK_TRUETYPE'. */ - /* */ - /* debug_hook :: The function used to debug the interpreter. */ - /* */ - /* <Note> */ - /* Currently, four debug hook slots are available, but only two (for */ - /* the TrueType and the Type~1 interpreter) are defined. */ - /* */ - /* Since the internal headers of FreeType are no longer installed, */ - /* the symbol `FT_DEBUG_HOOK_TRUETYPE' isn't available publicly. */ - /* This is a bug and will be fixed in a forthcoming release. */ - /* */ - FT_EXPORT( void ) - FT_Set_Debug_Hook( FT_Library library, - FT_UInt hook_index, - FT_DebugHook_Func debug_hook ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Add_Default_Modules */ - /* */ - /* <Description> */ - /* Add the set of default drivers to a given library object. */ - /* This is only useful when you create a library object with */ - /* @FT_New_Library (usually to plug a custom memory manager). */ - /* */ - /* <InOut> */ - /* library :: A handle to a new library object. */ - /* */ - FT_EXPORT( void ) - FT_Add_Default_Modules( FT_Library library ); - - - - /************************************************************************** - * - * @section: - * truetype_engine - * - * @title: - * The TrueType Engine - * - * @abstract: - * TrueType bytecode support. - * - * @description: - * This section contains a function used to query the level of TrueType - * bytecode support compiled in this version of the library. - * - */ - - - /************************************************************************** - * - * @enum: - * FT_TrueTypeEngineType - * - * @description: - * A list of values describing which kind of TrueType bytecode - * engine is implemented in a given FT_Library instance. It is used - * by the @FT_Get_TrueType_Engine_Type function. - * - * @values: - * FT_TRUETYPE_ENGINE_TYPE_NONE :: - * The library doesn't implement any kind of bytecode interpreter. - * - * FT_TRUETYPE_ENGINE_TYPE_UNPATENTED :: - * The library implements a bytecode interpreter that doesn't - * support the patented operations of the TrueType virtual machine. - * - * Its main use is to load certain Asian fonts that position and - * scale glyph components with bytecode instructions. It produces - * bad output for most other fonts. - * - * FT_TRUETYPE_ENGINE_TYPE_PATENTED :: - * The library implements a bytecode interpreter that covers - * the full instruction set of the TrueType virtual machine (this - * was governed by patents until May 2010, hence the name). - * - * @since: - * 2.2 - * - */ - typedef enum FT_TrueTypeEngineType_ - { - FT_TRUETYPE_ENGINE_TYPE_NONE = 0, - FT_TRUETYPE_ENGINE_TYPE_UNPATENTED, - FT_TRUETYPE_ENGINE_TYPE_PATENTED - - } FT_TrueTypeEngineType; - - - /************************************************************************** - * - * @func: - * FT_Get_TrueType_Engine_Type - * - * @description: - * Return an @FT_TrueTypeEngineType value to indicate which level of - * the TrueType virtual machine a given library instance supports. - * - * @input: - * library :: - * A library instance. - * - * @return: - * A value indicating which level is supported. - * - * @since: - * 2.2 - * - */ - FT_EXPORT( FT_TrueTypeEngineType ) - FT_Get_TrueType_Engine_Type( FT_Library library ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTMODAPI_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftmoderr.h b/lib/osx/include/freetype/ftmoderr.h deleted file mode 100644 index 9d7f981..0000000 --- a/lib/osx/include/freetype/ftmoderr.h +++ /dev/null @@ -1,194 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmoderr.h */ -/* */ -/* FreeType module error offsets (specification). */ -/* */ -/* Copyright 2001-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file is used to define the FreeType module error codes. */ - /* */ - /* If the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS in `ftoption.h' is */ - /* set, the lower byte of an error value identifies the error code as */ - /* usual. In addition, the higher byte identifies the module. For */ - /* example, the error `FT_Err_Invalid_File_Format' has value 0x0003, the */ - /* error `TT_Err_Invalid_File_Format' has value 0x1303, the error */ - /* `T1_Err_Invalid_File_Format' has value 0x1403, etc. */ - /* */ - /* Note that `FT_Err_Ok', `TT_Err_Ok', etc. are always equal to zero, */ - /* including the high byte. */ - /* */ - /* If FT_CONFIG_OPTION_USE_MODULE_ERRORS isn't set, the higher byte of */ - /* an error value is set to zero. */ - /* */ - /* To hide the various `XXX_Err_' prefixes in the source code, FreeType */ - /* provides some macros in `fttypes.h'. */ - /* */ - /* FT_ERR( err ) */ - /* Add current error module prefix (as defined with the */ - /* `FT_ERR_PREFIX' macro) to `err'. For example, in the BDF module */ - /* the line */ - /* */ - /* error = FT_ERR( Invalid_Outline ); */ - /* */ - /* expands to */ - /* */ - /* error = BDF_Err_Invalid_Outline; */ - /* */ - /* For simplicity, you can always use `FT_Err_Ok' directly instead */ - /* of `FT_ERR( Ok )'. */ - /* */ - /* FT_ERR_EQ( errcode, err ) */ - /* FT_ERR_NEQ( errcode, err ) */ - /* Compare error code `errcode' with the error `err' for equality */ - /* and inequality, respectively. Example: */ - /* */ - /* if ( FT_ERR_EQ( error, Invalid_Outline ) ) */ - /* ... */ - /* */ - /* Using this macro you don't have to think about error prefixes. */ - /* Of course, if module errors are not active, the above example is */ - /* the same as */ - /* */ - /* if ( error == FT_Err_Invalid_Outline ) */ - /* ... */ - /* */ - /* FT_ERROR_BASE( errcode ) */ - /* FT_ERROR_MODULE( errcode ) */ - /* Get base error and module error code, respectively. */ - /* */ - /* */ - /* It can also be used to create a module error message table easily */ - /* with something like */ - /* */ - /* { */ - /* #undef __FTMODERR_H__ */ - /* #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, */ - /* #define FT_MODERR_START_LIST { */ - /* #define FT_MODERR_END_LIST { 0, 0 } }; */ - /* */ - /* const struct */ - /* { */ - /* int mod_err_offset; */ - /* const char* mod_err_msg */ - /* } ft_mod_errors[] = */ - /* */ - /* #include FT_MODULE_ERRORS_H */ - /* } */ - /* */ - /*************************************************************************/ - - -#ifndef __FTMODERR_H__ -#define __FTMODERR_H__ - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** SETUP MACROS *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - -#undef FT_NEED_EXTERN_C - -#ifndef FT_MODERRDEF - -#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS -#define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = v, -#else -#define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = 0, -#endif - -#define FT_MODERR_START_LIST enum { -#define FT_MODERR_END_LIST FT_Mod_Err_Max }; - -#ifdef __cplusplus -#define FT_NEED_EXTERN_C - extern "C" { -#endif - -#endif /* !FT_MODERRDEF */ - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** LIST MODULE ERROR BASES *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - -#ifdef FT_MODERR_START_LIST - FT_MODERR_START_LIST -#endif - - - FT_MODERRDEF( Base, 0x000, "base module" ) - FT_MODERRDEF( Autofit, 0x100, "autofitter module" ) - FT_MODERRDEF( BDF, 0x200, "BDF module" ) - FT_MODERRDEF( Bzip2, 0x300, "Bzip2 module" ) - FT_MODERRDEF( Cache, 0x400, "cache module" ) - FT_MODERRDEF( CFF, 0x500, "CFF module" ) - FT_MODERRDEF( CID, 0x600, "CID module" ) - FT_MODERRDEF( Gzip, 0x700, "Gzip module" ) - FT_MODERRDEF( LZW, 0x800, "LZW module" ) - FT_MODERRDEF( OTvalid, 0x900, "OpenType validation module" ) - FT_MODERRDEF( PCF, 0xA00, "PCF module" ) - FT_MODERRDEF( PFR, 0xB00, "PFR module" ) - FT_MODERRDEF( PSaux, 0xC00, "PS auxiliary module" ) - FT_MODERRDEF( PShinter, 0xD00, "PS hinter module" ) - FT_MODERRDEF( PSnames, 0xE00, "PS names module" ) - FT_MODERRDEF( Raster, 0xF00, "raster module" ) - FT_MODERRDEF( SFNT, 0x1000, "SFNT module" ) - FT_MODERRDEF( Smooth, 0x1100, "smooth raster module" ) - FT_MODERRDEF( TrueType, 0x1200, "TrueType module" ) - FT_MODERRDEF( Type1, 0x1300, "Type 1 module" ) - FT_MODERRDEF( Type42, 0x1400, "Type 42 module" ) - FT_MODERRDEF( Winfonts, 0x1500, "Windows FON/FNT module" ) - FT_MODERRDEF( GXvalid, 0x1600, "GX validation module" ) - - -#ifdef FT_MODERR_END_LIST - FT_MODERR_END_LIST -#endif - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** CLEANUP *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - -#ifdef FT_NEED_EXTERN_C - } -#endif - -#undef FT_MODERR_START_LIST -#undef FT_MODERR_END_LIST -#undef FT_MODERRDEF -#undef FT_NEED_EXTERN_C - - -#endif /* __FTMODERR_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftotval.h b/lib/osx/include/freetype/ftotval.h deleted file mode 100644 index e744b71..0000000 --- a/lib/osx/include/freetype/ftotval.h +++ /dev/null @@ -1,204 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftotval.h */ -/* */ -/* FreeType API for validating OpenType tables (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* */ -/* Warning: This module might be moved to a different library in the */ -/* future to avoid a tight dependency between FreeType and the */ -/* OpenType specification. */ -/* */ -/* */ -/***************************************************************************/ - - -#ifndef __FTOTVAL_H__ -#define __FTOTVAL_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* ot_validation */ - /* */ - /* <Title> */ - /* OpenType Validation */ - /* */ - /* <Abstract> */ - /* An API to validate OpenType tables. */ - /* */ - /* <Description> */ - /* This section contains the declaration of functions to validate */ - /* some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). */ - /* */ - /* <Order> */ - /* FT_OpenType_Validate */ - /* FT_OpenType_Free */ - /* */ - /* FT_VALIDATE_OTXXX */ - /* */ - /*************************************************************************/ - - - /********************************************************************** - * - * @enum: - * FT_VALIDATE_OTXXX - * - * @description: - * A list of bit-field constants used with @FT_OpenType_Validate to - * indicate which OpenType tables should be validated. - * - * @values: - * FT_VALIDATE_BASE :: - * Validate BASE table. - * - * FT_VALIDATE_GDEF :: - * Validate GDEF table. - * - * FT_VALIDATE_GPOS :: - * Validate GPOS table. - * - * FT_VALIDATE_GSUB :: - * Validate GSUB table. - * - * FT_VALIDATE_JSTF :: - * Validate JSTF table. - * - * FT_VALIDATE_MATH :: - * Validate MATH table. - * - * FT_VALIDATE_OT :: - * Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). - * - */ -#define FT_VALIDATE_BASE 0x0100 -#define FT_VALIDATE_GDEF 0x0200 -#define FT_VALIDATE_GPOS 0x0400 -#define FT_VALIDATE_GSUB 0x0800 -#define FT_VALIDATE_JSTF 0x1000 -#define FT_VALIDATE_MATH 0x2000 - -#define FT_VALIDATE_OT FT_VALIDATE_BASE | \ - FT_VALIDATE_GDEF | \ - FT_VALIDATE_GPOS | \ - FT_VALIDATE_GSUB | \ - FT_VALIDATE_JSTF | \ - FT_VALIDATE_MATH - - /********************************************************************** - * - * @function: - * FT_OpenType_Validate - * - * @description: - * Validate various OpenType tables to assure that all offsets and - * indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without - * error checking (which can be quite time consuming). - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the tables to be validated. See - * @FT_VALIDATE_OTXXX for possible values. - * - * @output: - * BASE_table :: - * A pointer to the BASE table. - * - * GDEF_table :: - * A pointer to the GDEF table. - * - * GPOS_table :: - * A pointer to the GPOS table. - * - * GSUB_table :: - * A pointer to the GSUB table. - * - * JSTF_table :: - * A pointer to the JSTF table. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with OpenType fonts, returning an error - * otherwise. - * - * After use, the application should deallocate the five tables with - * @FT_OpenType_Free. A NULL value indicates that the table either - * doesn't exist in the font, or the application hasn't asked for - * validation. - */ - FT_EXPORT( FT_Error ) - FT_OpenType_Validate( FT_Face face, - FT_UInt validation_flags, - FT_Bytes *BASE_table, - FT_Bytes *GDEF_table, - FT_Bytes *GPOS_table, - FT_Bytes *GSUB_table, - FT_Bytes *JSTF_table ); - - /********************************************************************** - * - * @function: - * FT_OpenType_Free - * - * @description: - * Free the buffer allocated by OpenType validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer that is allocated by - * @FT_OpenType_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_OpenType_Validate only. - */ - FT_EXPORT( void ) - FT_OpenType_Free( FT_Face face, - FT_Bytes table ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTOTVAL_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftoutln.h b/lib/osx/include/freetype/ftoutln.h deleted file mode 100644 index b6ec70d..0000000 --- a/lib/osx/include/freetype/ftoutln.h +++ /dev/null @@ -1,574 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftoutln.h */ -/* */ -/* Support for the FT_Outline type used to store glyph shapes of */ -/* most scalable font formats (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTOUTLN_H__ -#define __FTOUTLN_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* outline_processing */ - /* */ - /* <Title> */ - /* Outline Processing */ - /* */ - /* <Abstract> */ - /* Functions to create, transform, and render vectorial glyph images. */ - /* */ - /* <Description> */ - /* This section contains routines used to create and destroy scalable */ - /* glyph images known as `outlines'. These can also be measured, */ - /* transformed, and converted into bitmaps and pixmaps. */ - /* */ - /* <Order> */ - /* FT_Outline */ - /* FT_Outline_New */ - /* FT_Outline_Done */ - /* FT_Outline_Copy */ - /* FT_Outline_Translate */ - /* FT_Outline_Transform */ - /* FT_Outline_Embolden */ - /* FT_Outline_EmboldenXY */ - /* FT_Outline_Reverse */ - /* FT_Outline_Check */ - /* */ - /* FT_Outline_Get_CBox */ - /* FT_Outline_Get_BBox */ - /* */ - /* FT_Outline_Get_Bitmap */ - /* FT_Outline_Render */ - /* FT_Outline_Decompose */ - /* FT_Outline_Funcs */ - /* FT_Outline_MoveToFunc */ - /* FT_Outline_LineToFunc */ - /* FT_Outline_ConicToFunc */ - /* FT_Outline_CubicToFunc */ - /* */ - /* FT_Orientation */ - /* FT_Outline_Get_Orientation */ - /* */ - /* FT_OUTLINE_XXX */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Decompose */ - /* */ - /* <Description> */ - /* Walk over an outline's structure to decompose it into individual */ - /* segments and Bézier arcs. This function also emits `move to' */ - /* operations to indicate the start of new contours in the outline. */ - /* */ - /* <Input> */ - /* outline :: A pointer to the source target. */ - /* */ - /* func_interface :: A table of `emitters', i.e., function pointers */ - /* called during decomposition to indicate path */ - /* operations. */ - /* */ - /* <InOut> */ - /* user :: A typeless pointer that is passed to each */ - /* emitter during the decomposition. It can be */ - /* used to store the state during the */ - /* decomposition. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* A contour that contains a single point only is represented by a */ - /* `move to' operation followed by `line to' to the same point. In */ - /* most cases, it is best to filter this out before using the */ - /* outline for stroking purposes (otherwise it would result in a */ - /* visible dot when round caps are used). */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Decompose( FT_Outline* outline, - const FT_Outline_Funcs* func_interface, - void* user ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_New */ - /* */ - /* <Description> */ - /* Create a new outline of a given size. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object from where the */ - /* outline is allocated. Note however that the new */ - /* outline will *not* necessarily be *freed*, when */ - /* destroying the library, by @FT_Done_FreeType. */ - /* */ - /* numPoints :: The maximum number of points within the outline. */ - /* Must be smaller than or equal to 0xFFFF (65535). */ - /* */ - /* numContours :: The maximum number of contours within the outline. */ - /* This value must be in the range 0 to `numPoints'. */ - /* */ - /* <Output> */ - /* anoutline :: A handle to the new outline. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The reason why this function takes a `library' parameter is simply */ - /* to use the library's memory allocator. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_New( FT_Library library, - FT_UInt numPoints, - FT_Int numContours, - FT_Outline *anoutline ); - - - FT_EXPORT( FT_Error ) - FT_Outline_New_Internal( FT_Memory memory, - FT_UInt numPoints, - FT_Int numContours, - FT_Outline *anoutline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Done */ - /* */ - /* <Description> */ - /* Destroy an outline created with @FT_Outline_New. */ - /* */ - /* <Input> */ - /* library :: A handle of the library object used to allocate the */ - /* outline. */ - /* */ - /* outline :: A pointer to the outline object to be discarded. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If the outline's `owner' field is not set, only the outline */ - /* descriptor will be released. */ - /* */ - /* The reason why this function takes an `library' parameter is */ - /* simply to use ft_mem_free(). */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Done( FT_Library library, - FT_Outline* outline ); - - - FT_EXPORT( FT_Error ) - FT_Outline_Done_Internal( FT_Memory memory, - FT_Outline* outline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Check */ - /* */ - /* <Description> */ - /* Check the contents of an outline descriptor. */ - /* */ - /* <Input> */ - /* outline :: A handle to a source outline. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Check( FT_Outline* outline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Get_CBox */ - /* */ - /* <Description> */ - /* Return an outline's `control box'. The control box encloses all */ - /* the outline's points, including Bézier control points. Though it */ - /* coincides with the exact bounding box for most glyphs, it can be */ - /* slightly larger in some situations (like when rotating an outline */ - /* that contains Bézier outside arcs). */ - /* */ - /* Computing the control box is very fast, while getting the bounding */ - /* box can take much more time as it needs to walk over all segments */ - /* and arcs in the outline. To get the latter, you can use the */ - /* `ftbbox' component, which is dedicated to this single task. */ - /* */ - /* <Input> */ - /* outline :: A pointer to the source outline descriptor. */ - /* */ - /* <Output> */ - /* acbox :: The outline's control box. */ - /* */ - /* <Note> */ - /* See @FT_Glyph_Get_CBox for a discussion of tricky fonts. */ - /* */ - FT_EXPORT( void ) - FT_Outline_Get_CBox( const FT_Outline* outline, - FT_BBox *acbox ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Translate */ - /* */ - /* <Description> */ - /* Apply a simple translation to the points of an outline. */ - /* */ - /* <InOut> */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* <Input> */ - /* xOffset :: The horizontal offset. */ - /* */ - /* yOffset :: The vertical offset. */ - /* */ - FT_EXPORT( void ) - FT_Outline_Translate( const FT_Outline* outline, - FT_Pos xOffset, - FT_Pos yOffset ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Copy */ - /* */ - /* <Description> */ - /* Copy an outline into another one. Both objects must have the */ - /* same sizes (number of points & number of contours) when this */ - /* function is called. */ - /* */ - /* <Input> */ - /* source :: A handle to the source outline. */ - /* */ - /* <Output> */ - /* target :: A handle to the target outline. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Copy( const FT_Outline* source, - FT_Outline *target ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Transform */ - /* */ - /* <Description> */ - /* Apply a simple 2x2 matrix to all of an outline's points. Useful */ - /* for applying rotations, slanting, flipping, etc. */ - /* */ - /* <InOut> */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to the transformation matrix. */ - /* */ - /* <Note> */ - /* You can use @FT_Outline_Translate if you need to translate the */ - /* outline's points. */ - /* */ - FT_EXPORT( void ) - FT_Outline_Transform( const FT_Outline* outline, - const FT_Matrix* matrix ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Embolden */ - /* */ - /* <Description> */ - /* Embolden an outline. The new outline will be at most 4~times */ - /* `strength' pixels wider and higher. You may think of the left and */ - /* bottom borders as unchanged. */ - /* */ - /* Negative `strength' values to reduce the outline thickness are */ - /* possible also. */ - /* */ - /* <InOut> */ - /* outline :: A handle to the target outline. */ - /* */ - /* <Input> */ - /* strength :: How strong the glyph is emboldened. Expressed in */ - /* 26.6 pixel format. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The used algorithm to increase or decrease the thickness of the */ - /* glyph doesn't change the number of points; this means that certain */ - /* situations like acute angles or intersections are sometimes */ - /* handled incorrectly. */ - /* */ - /* If you need `better' metrics values you should call */ - /* @FT_Outline_Get_CBox or @FT_Outline_Get_BBox. */ - /* */ - /* Example call: */ - /* */ - /* { */ - /* FT_Load_Glyph( face, index, FT_LOAD_DEFAULT ); */ - /* if ( face->glyph->format == FT_GLYPH_FORMAT_OUTLINE ) */ - /* FT_Outline_Embolden( &face->glyph->outline, strength ); */ - /* } */ - /* */ - /* To get meaningful results, font scaling values must be set with */ - /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Embolden( FT_Outline* outline, - FT_Pos strength ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_EmboldenXY */ - /* */ - /* <Description> */ - /* Embolden an outline. The new outline will be `xstrength' pixels */ - /* wider and `ystrength' pixels higher. Otherwise, it is similar to */ - /* @FT_Outline_Embolden, which uses the same strength in both */ - /* directions. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_EmboldenXY( FT_Outline* outline, - FT_Pos xstrength, - FT_Pos ystrength ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Reverse */ - /* */ - /* <Description> */ - /* Reverse the drawing direction of an outline. This is used to */ - /* ensure consistent fill conventions for mirrored glyphs. */ - /* */ - /* <InOut> */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* <Note> */ - /* This function toggles the bit flag @FT_OUTLINE_REVERSE_FILL in */ - /* the outline's `flags' field. */ - /* */ - /* It shouldn't be used by a normal client application, unless it */ - /* knows what it is doing. */ - /* */ - FT_EXPORT( void ) - FT_Outline_Reverse( FT_Outline* outline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Get_Bitmap */ - /* */ - /* <Description> */ - /* Render an outline within a bitmap. The outline's image is simply */ - /* OR-ed to the target bitmap. */ - /* */ - /* <Input> */ - /* library :: A handle to a FreeType library object. */ - /* */ - /* outline :: A pointer to the source outline descriptor. */ - /* */ - /* <InOut> */ - /* abitmap :: A pointer to the target bitmap descriptor. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function does NOT CREATE the bitmap, it only renders an */ - /* outline image within the one you pass to it! Consequently, the */ - /* various fields in `abitmap' should be set accordingly. */ - /* */ - /* It will use the raster corresponding to the default glyph format. */ - /* */ - /* The value of the `num_grays' field in `abitmap' is ignored. If */ - /* you select the gray-level rasterizer, and you want less than 256 */ - /* gray levels, you have to use @FT_Outline_Render directly. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Get_Bitmap( FT_Library library, - FT_Outline* outline, - const FT_Bitmap *abitmap ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Render */ - /* */ - /* <Description> */ - /* Render an outline within a bitmap using the current scan-convert. */ - /* This function uses an @FT_Raster_Params structure as an argument, */ - /* allowing advanced features like direct composition, translucency, */ - /* etc. */ - /* */ - /* <Input> */ - /* library :: A handle to a FreeType library object. */ - /* */ - /* outline :: A pointer to the source outline descriptor. */ - /* */ - /* <InOut> */ - /* params :: A pointer to an @FT_Raster_Params structure used to */ - /* describe the rendering operation. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You should know what you are doing and how @FT_Raster_Params works */ - /* to use this function. */ - /* */ - /* The field `params.source' will be set to `outline' before the scan */ - /* converter is called, which means that the value you give to it is */ - /* actually ignored. */ - /* */ - /* The gray-level rasterizer always uses 256 gray levels. If you */ - /* want less gray levels, you have to provide your own span callback. */ - /* See the @FT_RASTER_FLAG_DIRECT value of the `flags' field in the */ - /* @FT_Raster_Params structure for more details. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Render( FT_Library library, - FT_Outline* outline, - FT_Raster_Params* params ); - - - /************************************************************************** - * - * @enum: - * FT_Orientation - * - * @description: - * A list of values used to describe an outline's contour orientation. - * - * The TrueType and PostScript specifications use different conventions - * to determine whether outline contours should be filled or unfilled. - * - * @values: - * FT_ORIENTATION_TRUETYPE :: - * According to the TrueType specification, clockwise contours must - * be filled, and counter-clockwise ones must be unfilled. - * - * FT_ORIENTATION_POSTSCRIPT :: - * According to the PostScript specification, counter-clockwise contours - * must be filled, and clockwise ones must be unfilled. - * - * FT_ORIENTATION_FILL_RIGHT :: - * This is identical to @FT_ORIENTATION_TRUETYPE, but is used to - * remember that in TrueType, everything that is to the right of - * the drawing direction of a contour must be filled. - * - * FT_ORIENTATION_FILL_LEFT :: - * This is identical to @FT_ORIENTATION_POSTSCRIPT, but is used to - * remember that in PostScript, everything that is to the left of - * the drawing direction of a contour must be filled. - * - * FT_ORIENTATION_NONE :: - * The orientation cannot be determined. That is, different parts of - * the glyph have different orientation. - * - */ - typedef enum FT_Orientation_ - { - FT_ORIENTATION_TRUETYPE = 0, - FT_ORIENTATION_POSTSCRIPT = 1, - FT_ORIENTATION_FILL_RIGHT = FT_ORIENTATION_TRUETYPE, - FT_ORIENTATION_FILL_LEFT = FT_ORIENTATION_POSTSCRIPT, - FT_ORIENTATION_NONE - - } FT_Orientation; - - - /************************************************************************** - * - * @function: - * FT_Outline_Get_Orientation - * - * @description: - * This function analyzes a glyph outline and tries to compute its - * fill orientation (see @FT_Orientation). This is done by integrating - * the total area covered by the outline. The positive integral - * corresponds to the clockwise orientation and @FT_ORIENTATION_POSTSCRIPT - * is returned. The negative integral corresponds to the counter-clockwise - * orientation and @FT_ORIENTATION_TRUETYPE is returned. - * - * Note that this will return @FT_ORIENTATION_TRUETYPE for empty - * outlines. - * - * @input: - * outline :: - * A handle to the source outline. - * - * @return: - * The orientation. - * - */ - FT_EXPORT( FT_Orientation ) - FT_Outline_Get_Orientation( FT_Outline* outline ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTOUTLN_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/osx/include/freetype/ftpfr.h b/lib/osx/include/freetype/ftpfr.h deleted file mode 100644 index a1c02a2..0000000 --- a/lib/osx/include/freetype/ftpfr.h +++ /dev/null @@ -1,172 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftpfr.h */ -/* */ -/* FreeType API for accessing PFR-specific data (specification only). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTPFR_H__ -#define __FTPFR_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* pfr_fonts */ - /* */ - /* <Title> */ - /* PFR Fonts */ - /* */ - /* <Abstract> */ - /* PFR/TrueDoc specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of PFR-specific functions. */ - /* */ - /*************************************************************************/ - - - /********************************************************************** - * - * @function: - * FT_Get_PFR_Metrics - * - * @description: - * Return the outline and metrics resolutions of a given PFR face. - * - * @input: - * face :: Handle to the input face. It can be a non-PFR face. - * - * @output: - * aoutline_resolution :: - * Outline resolution. This is equivalent to `face->units_per_EM' - * for non-PFR fonts. Optional (parameter can be NULL). - * - * ametrics_resolution :: - * Metrics resolution. This is equivalent to `outline_resolution' - * for non-PFR fonts. Optional (parameter can be NULL). - * - * ametrics_x_scale :: - * A 16.16 fixed-point number used to scale distance expressed - * in metrics units to device sub-pixels. This is equivalent to - * `face->size->x_scale', but for metrics only. Optional (parameter - * can be NULL). - * - * ametrics_y_scale :: - * Same as `ametrics_x_scale' but for the vertical direction. - * optional (parameter can be NULL). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If the input face is not a PFR, this function will return an error. - * However, in all cases, it will return valid values. - */ - FT_EXPORT( FT_Error ) - FT_Get_PFR_Metrics( FT_Face face, - FT_UInt *aoutline_resolution, - FT_UInt *ametrics_resolution, - FT_Fixed *ametrics_x_scale, - FT_Fixed *ametrics_y_scale ); - - - /********************************************************************** - * - * @function: - * FT_Get_PFR_Kerning - * - * @description: - * Return the kerning pair corresponding to two glyphs in a PFR face. - * The distance is expressed in metrics units, unlike the result of - * @FT_Get_Kerning. - * - * @input: - * face :: A handle to the input face. - * - * left :: Index of the left glyph. - * - * right :: Index of the right glyph. - * - * @output: - * avector :: A kerning vector. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function always return distances in original PFR metrics - * units. This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED - * mode, which always returns distances converted to outline units. - * - * You can use the value of the `x_scale' and `y_scale' parameters - * returned by @FT_Get_PFR_Metrics to scale these to device sub-pixels. - */ - FT_EXPORT( FT_Error ) - FT_Get_PFR_Kerning( FT_Face face, - FT_UInt left, - FT_UInt right, - FT_Vector *avector ); - - - /********************************************************************** - * - * @function: - * FT_Get_PFR_Advance - * - * @description: - * Return a given glyph advance, expressed in original metrics units, - * from a PFR font. - * - * @input: - * face :: A handle to the input face. - * - * gindex :: The glyph index. - * - * @output: - * aadvance :: The glyph advance in metrics units. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You can use the `x_scale' or `y_scale' results of @FT_Get_PFR_Metrics - * to convert the advance to device sub-pixels (i.e., 1/64th of pixels). - */ - FT_EXPORT( FT_Error ) - FT_Get_PFR_Advance( FT_Face face, - FT_UInt gindex, - FT_Pos *aadvance ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTPFR_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftrender.h b/lib/osx/include/freetype/ftrender.h deleted file mode 100644 index ec8da70..0000000 --- a/lib/osx/include/freetype/ftrender.h +++ /dev/null @@ -1,232 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftrender.h */ -/* */ -/* FreeType renderer modules public interface (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTRENDER_H__ -#define __FTRENDER_H__ - - -#include <ft2build.h> -#include FT_MODULE_H -#include FT_GLYPH_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* module_management */ - /* */ - /*************************************************************************/ - - - /* create a new glyph object */ - typedef FT_Error - (*FT_Glyph_InitFunc)( FT_Glyph glyph, - FT_GlyphSlot slot ); - - /* destroys a given glyph object */ - typedef void - (*FT_Glyph_DoneFunc)( FT_Glyph glyph ); - - typedef void - (*FT_Glyph_TransformFunc)( FT_Glyph glyph, - const FT_Matrix* matrix, - const FT_Vector* delta ); - - typedef void - (*FT_Glyph_GetBBoxFunc)( FT_Glyph glyph, - FT_BBox* abbox ); - - typedef FT_Error - (*FT_Glyph_CopyFunc)( FT_Glyph source, - FT_Glyph target ); - - typedef FT_Error - (*FT_Glyph_PrepareFunc)( FT_Glyph glyph, - FT_GlyphSlot slot ); - -/* deprecated */ -#define FT_Glyph_Init_Func FT_Glyph_InitFunc -#define FT_Glyph_Done_Func FT_Glyph_DoneFunc -#define FT_Glyph_Transform_Func FT_Glyph_TransformFunc -#define FT_Glyph_BBox_Func FT_Glyph_GetBBoxFunc -#define FT_Glyph_Copy_Func FT_Glyph_CopyFunc -#define FT_Glyph_Prepare_Func FT_Glyph_PrepareFunc - - - struct FT_Glyph_Class_ - { - FT_Long glyph_size; - FT_Glyph_Format glyph_format; - FT_Glyph_InitFunc glyph_init; - FT_Glyph_DoneFunc glyph_done; - FT_Glyph_CopyFunc glyph_copy; - FT_Glyph_TransformFunc glyph_transform; - FT_Glyph_GetBBoxFunc glyph_bbox; - FT_Glyph_PrepareFunc glyph_prepare; - }; - - - typedef FT_Error - (*FT_Renderer_RenderFunc)( FT_Renderer renderer, - FT_GlyphSlot slot, - FT_UInt mode, - const FT_Vector* origin ); - - typedef FT_Error - (*FT_Renderer_TransformFunc)( FT_Renderer renderer, - FT_GlyphSlot slot, - const FT_Matrix* matrix, - const FT_Vector* delta ); - - - typedef void - (*FT_Renderer_GetCBoxFunc)( FT_Renderer renderer, - FT_GlyphSlot slot, - FT_BBox* cbox ); - - - typedef FT_Error - (*FT_Renderer_SetModeFunc)( FT_Renderer renderer, - FT_ULong mode_tag, - FT_Pointer mode_ptr ); - -/* deprecated identifiers */ -#define FTRenderer_render FT_Renderer_RenderFunc -#define FTRenderer_transform FT_Renderer_TransformFunc -#define FTRenderer_getCBox FT_Renderer_GetCBoxFunc -#define FTRenderer_setMode FT_Renderer_SetModeFunc - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Renderer_Class */ - /* */ - /* <Description> */ - /* The renderer module class descriptor. */ - /* */ - /* <Fields> */ - /* root :: The root @FT_Module_Class fields. */ - /* */ - /* glyph_format :: The glyph image format this renderer handles. */ - /* */ - /* render_glyph :: A method used to render the image that is in a */ - /* given glyph slot into a bitmap. */ - /* */ - /* transform_glyph :: A method used to transform the image that is in */ - /* a given glyph slot. */ - /* */ - /* get_glyph_cbox :: A method used to access the glyph's cbox. */ - /* */ - /* set_mode :: A method used to pass additional parameters. */ - /* */ - /* raster_class :: For @FT_GLYPH_FORMAT_OUTLINE renderers only. */ - /* This is a pointer to its raster's class. */ - /* */ - typedef struct FT_Renderer_Class_ - { - FT_Module_Class root; - - FT_Glyph_Format glyph_format; - - FT_Renderer_RenderFunc render_glyph; - FT_Renderer_TransformFunc transform_glyph; - FT_Renderer_GetCBoxFunc get_glyph_cbox; - FT_Renderer_SetModeFunc set_mode; - - FT_Raster_Funcs* raster_class; - - } FT_Renderer_Class; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Renderer */ - /* */ - /* <Description> */ - /* Retrieve the current renderer for a given glyph format. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object. */ - /* */ - /* format :: The glyph format. */ - /* */ - /* <Return> */ - /* A renderer handle. 0~if none found. */ - /* */ - /* <Note> */ - /* An error will be returned if a module already exists by that name, */ - /* or if the module requires a version of FreeType that is too great. */ - /* */ - /* To add a new renderer, simply use @FT_Add_Module. To retrieve a */ - /* renderer by its name, use @FT_Get_Module. */ - /* */ - FT_EXPORT( FT_Renderer ) - FT_Get_Renderer( FT_Library library, - FT_Glyph_Format format ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Renderer */ - /* */ - /* <Description> */ - /* Set the current renderer to use, and set additional mode. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library object. */ - /* */ - /* <Input> */ - /* renderer :: A handle to the renderer object. */ - /* */ - /* num_params :: The number of additional parameters. */ - /* */ - /* parameters :: Additional parameters. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* In case of success, the renderer will be used to convert glyph */ - /* images in the renderer's known format into bitmaps. */ - /* */ - /* This doesn't change the current renderer for other formats. */ - /* */ - /* Currently, no FreeType renderer module uses `parameters'; you */ - /* should thus always pass NULL as the value. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Renderer( FT_Library library, - FT_Renderer renderer, - FT_UInt num_params, - FT_Parameter* parameters ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTRENDER_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftsizes.h b/lib/osx/include/freetype/ftsizes.h deleted file mode 100644 index bef8424..0000000 --- a/lib/osx/include/freetype/ftsizes.h +++ /dev/null @@ -1,159 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsizes.h */ -/* */ -/* FreeType size objects management (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Typical application would normally not need to use these functions. */ - /* However, they have been placed in a public API for the rare cases */ - /* where they are needed. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTSIZES_H__ -#define __FTSIZES_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* sizes_management */ - /* */ - /* <Title> */ - /* Size Management */ - /* */ - /* <Abstract> */ - /* Managing multiple sizes per face. */ - /* */ - /* <Description> */ - /* When creating a new face object (e.g., with @FT_New_Face), an */ - /* @FT_Size object is automatically created and used to store all */ - /* pixel-size dependent information, available in the `face->size' */ - /* field. */ - /* */ - /* It is however possible to create more sizes for a given face, */ - /* mostly in order to manage several character pixel sizes of the */ - /* same font family and style. See @FT_New_Size and @FT_Done_Size. */ - /* */ - /* Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only */ - /* modify the contents of the current `active' size; you thus need */ - /* to use @FT_Activate_Size to change it. */ - /* */ - /* 99% of applications won't need the functions provided here, */ - /* especially if they use the caching sub-system, so be cautious */ - /* when using these. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Size */ - /* */ - /* <Description> */ - /* Create a new size object from a given face object. */ - /* */ - /* <Input> */ - /* face :: A handle to a parent face object. */ - /* */ - /* <Output> */ - /* asize :: A handle to a new size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You need to call @FT_Activate_Size in order to select the new size */ - /* for upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size, */ - /* @FT_Load_Glyph, @FT_Load_Char, etc. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Size( FT_Face face, - FT_Size* size ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Size */ - /* */ - /* <Description> */ - /* Discard a given size object. Note that @FT_Done_Face */ - /* automatically discards all size objects allocated with */ - /* @FT_New_Size. */ - /* */ - /* <Input> */ - /* size :: A handle to a target size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Done_Size( FT_Size size ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Activate_Size */ - /* */ - /* <Description> */ - /* Even though it is possible to create several size objects for a */ - /* given face (see @FT_New_Size for details), functions like */ - /* @FT_Load_Glyph or @FT_Load_Char only use the one that has been */ - /* activated last to determine the `current character pixel size'. */ - /* */ - /* This function can be used to `activate' a previously created size */ - /* object. */ - /* */ - /* <Input> */ - /* size :: A handle to a target size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If `face' is the size's parent face object, this function changes */ - /* the value of `face->size' to the input size handle. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Activate_Size( FT_Size size ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTSIZES_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftsnames.h b/lib/osx/include/freetype/ftsnames.h deleted file mode 100644 index 0f7fbe1..0000000 --- a/lib/osx/include/freetype/ftsnames.h +++ /dev/null @@ -1,200 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsnames.h */ -/* */ -/* Simple interface to access SFNT name tables (which are used */ -/* to hold font names, copyright info, notices, etc.) (specification). */ -/* */ -/* This is _not_ used to retrieve glyph names! */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FT_SFNT_NAMES_H__ -#define __FT_SFNT_NAMES_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* sfnt_names */ - /* */ - /* <Title> */ - /* SFNT Names */ - /* */ - /* <Abstract> */ - /* Access the names embedded in TrueType and OpenType files. */ - /* */ - /* <Description> */ - /* The TrueType and OpenType specifications allow the inclusion of */ - /* a special `names table' in font files. This table contains */ - /* textual (and internationalized) information regarding the font, */ - /* like family name, copyright, version, etc. */ - /* */ - /* The definitions below are used to access them if available. */ - /* */ - /* Note that this has nothing to do with glyph names! */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_SfntName */ - /* */ - /* <Description> */ - /* A structure used to model an SFNT `name' table entry. */ - /* */ - /* <Fields> */ - /* platform_id :: The platform ID for `string'. */ - /* */ - /* encoding_id :: The encoding ID for `string'. */ - /* */ - /* language_id :: The language ID for `string'. */ - /* */ - /* name_id :: An identifier for `string'. */ - /* */ - /* string :: The `name' string. Note that its format differs */ - /* depending on the (platform,encoding) pair. It can */ - /* be a Pascal String, a UTF-16 one, etc. */ - /* */ - /* Generally speaking, the string is not */ - /* zero-terminated. Please refer to the TrueType */ - /* specification for details. */ - /* */ - /* string_len :: The length of `string' in bytes. */ - /* */ - /* <Note> */ - /* Possible values for `platform_id', `encoding_id', `language_id', */ - /* and `name_id' are given in the file `ttnameid.h'. For details */ - /* please refer to the TrueType or OpenType specification. */ - /* */ - /* See also @TT_PLATFORM_XXX, @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX, */ - /* @TT_ISO_ID_XXX, and @TT_MS_ID_XXX. */ - /* */ - typedef struct FT_SfntName_ - { - FT_UShort platform_id; - FT_UShort encoding_id; - FT_UShort language_id; - FT_UShort name_id; - - FT_Byte* string; /* this string is *not* null-terminated! */ - FT_UInt string_len; /* in bytes */ - - } FT_SfntName; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Sfnt_Name_Count */ - /* */ - /* <Description> */ - /* Retrieve the number of name strings in the SFNT `name' table. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* <Return> */ - /* The number of strings in the `name' table. */ - /* */ - FT_EXPORT( FT_UInt ) - FT_Get_Sfnt_Name_Count( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Sfnt_Name */ - /* */ - /* <Description> */ - /* Retrieve a string of the SFNT `name' table for a given index. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* idx :: The index of the `name' string. */ - /* */ - /* <Output> */ - /* aname :: The indexed @FT_SfntName structure. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The `string' array returned in the `aname' structure is not */ - /* null-terminated. The application should deallocate it if it is no */ - /* longer in use. */ - /* */ - /* Use @FT_Get_Sfnt_Name_Count to get the total number of available */ - /* `name' table entries, then do a loop until you get the right */ - /* platform, encoding, and name ID. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Sfnt_Name( FT_Face face, - FT_UInt idx, - FT_SfntName *aname ); - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY - * - * @description: - * A constant used as the tag of @FT_Parameter structures to make - * FT_Open_Face() ignore preferred family subfamily names in `name' - * table since OpenType version 1.4. For backwards compatibility with - * legacy systems that have a 4-face-per-family restriction. - * - */ -#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY FT_MAKE_TAG( 'i', 'g', 'p', 'f' ) - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY - * - * @description: - * A constant used as the tag of @FT_Parameter structures to make - * FT_Open_Face() ignore preferred subfamily names in `name' table since - * OpenType version 1.4. For backwards compatibility with legacy - * systems that have a 4-face-per-family restriction. - * - */ -#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY FT_MAKE_TAG( 'i', 'g', 'p', 's' ) - - /* */ - - -FT_END_HEADER - -#endif /* __FT_SFNT_NAMES_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftstroke.h b/lib/osx/include/freetype/ftstroke.h deleted file mode 100644 index 7ebb1e7..0000000 --- a/lib/osx/include/freetype/ftstroke.h +++ /dev/null @@ -1,785 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftstroke.h */ -/* */ -/* FreeType path stroker (specification). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FT_STROKE_H__ -#define __FT_STROKE_H__ - -#include <ft2build.h> -#include FT_OUTLINE_H -#include FT_GLYPH_H - - -FT_BEGIN_HEADER - - - /************************************************************************ - * - * @section: - * glyph_stroker - * - * @title: - * Glyph Stroker - * - * @abstract: - * Generating bordered and stroked glyphs. - * - * @description: - * This component generates stroked outlines of a given vectorial - * glyph. It also allows you to retrieve the `outside' and/or the - * `inside' borders of the stroke. - * - * This can be useful to generate `bordered' glyph, i.e., glyphs - * displayed with a coloured (and anti-aliased) border around their - * shape. - * - * @order: - * FT_Stroker - * - * FT_Stroker_LineJoin - * FT_Stroker_LineCap - * FT_StrokerBorder - * - * FT_Outline_GetInsideBorder - * FT_Outline_GetOutsideBorder - * - * FT_Glyph_Stroke - * FT_Glyph_StrokeBorder - * - * FT_Stroker_New - * FT_Stroker_Set - * FT_Stroker_Rewind - * FT_Stroker_ParseOutline - * FT_Stroker_Done - * - * FT_Stroker_BeginSubPath - * FT_Stroker_EndSubPath - * - * FT_Stroker_LineTo - * FT_Stroker_ConicTo - * FT_Stroker_CubicTo - * - * FT_Stroker_GetBorderCounts - * FT_Stroker_ExportBorder - * FT_Stroker_GetCounts - * FT_Stroker_Export - * - */ - - - /************************************************************** - * - * @type: - * FT_Stroker - * - * @description: - * Opaque handle to a path stroker object. - */ - typedef struct FT_StrokerRec_* FT_Stroker; - - - /************************************************************** - * - * @enum: - * FT_Stroker_LineJoin - * - * @description: - * These values determine how two joining lines are rendered - * in a stroker. - * - * @values: - * FT_STROKER_LINEJOIN_ROUND :: - * Used to render rounded line joins. Circular arcs are used - * to join two lines smoothly. - * - * FT_STROKER_LINEJOIN_BEVEL :: - * Used to render beveled line joins. The outer corner of - * the joined lines is filled by enclosing the triangular - * region of the corner with a straight line between the - * outer corners of each stroke. - * - * FT_STROKER_LINEJOIN_MITER_FIXED :: - * Used to render mitered line joins, with fixed bevels if the - * miter limit is exceeded. The outer edges of the strokes - * for the two segments are extended until they meet at an - * angle. If the segments meet at too sharp an angle (such - * that the miter would extend from the intersection of the - * segments a distance greater than the product of the miter - * limit value and the border radius), then a bevel join (see - * above) is used instead. This prevents long spikes being - * created. FT_STROKER_LINEJOIN_MITER_FIXED generates a miter - * line join as used in PostScript and PDF. - * - * FT_STROKER_LINEJOIN_MITER_VARIABLE :: - * FT_STROKER_LINEJOIN_MITER :: - * Used to render mitered line joins, with variable bevels if - * the miter limit is exceeded. The intersection of the - * strokes is clipped at a line perpendicular to the bisector - * of the angle between the strokes, at the distance from the - * intersection of the segments equal to the product of the - * miter limit value and the border radius. This prevents - * long spikes being created. - * FT_STROKER_LINEJOIN_MITER_VARIABLE generates a mitered line - * join as used in XPS. FT_STROKER_LINEJOIN_MITER is an alias - * for FT_STROKER_LINEJOIN_MITER_VARIABLE, retained for - * backwards compatibility. - */ - typedef enum FT_Stroker_LineJoin_ - { - FT_STROKER_LINEJOIN_ROUND = 0, - FT_STROKER_LINEJOIN_BEVEL = 1, - FT_STROKER_LINEJOIN_MITER_VARIABLE = 2, - FT_STROKER_LINEJOIN_MITER = FT_STROKER_LINEJOIN_MITER_VARIABLE, - FT_STROKER_LINEJOIN_MITER_FIXED = 3 - - } FT_Stroker_LineJoin; - - - /************************************************************** - * - * @enum: - * FT_Stroker_LineCap - * - * @description: - * These values determine how the end of opened sub-paths are - * rendered in a stroke. - * - * @values: - * FT_STROKER_LINECAP_BUTT :: - * The end of lines is rendered as a full stop on the last - * point itself. - * - * FT_STROKER_LINECAP_ROUND :: - * The end of lines is rendered as a half-circle around the - * last point. - * - * FT_STROKER_LINECAP_SQUARE :: - * The end of lines is rendered as a square around the - * last point. - */ - typedef enum FT_Stroker_LineCap_ - { - FT_STROKER_LINECAP_BUTT = 0, - FT_STROKER_LINECAP_ROUND, - FT_STROKER_LINECAP_SQUARE - - } FT_Stroker_LineCap; - - - /************************************************************** - * - * @enum: - * FT_StrokerBorder - * - * @description: - * These values are used to select a given stroke border - * in @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder. - * - * @values: - * FT_STROKER_BORDER_LEFT :: - * Select the left border, relative to the drawing direction. - * - * FT_STROKER_BORDER_RIGHT :: - * Select the right border, relative to the drawing direction. - * - * @note: - * Applications are generally interested in the `inside' and `outside' - * borders. However, there is no direct mapping between these and the - * `left' and `right' ones, since this really depends on the glyph's - * drawing orientation, which varies between font formats. - * - * You can however use @FT_Outline_GetInsideBorder and - * @FT_Outline_GetOutsideBorder to get these. - */ - typedef enum FT_StrokerBorder_ - { - FT_STROKER_BORDER_LEFT = 0, - FT_STROKER_BORDER_RIGHT - - } FT_StrokerBorder; - - - /************************************************************** - * - * @function: - * FT_Outline_GetInsideBorder - * - * @description: - * Retrieve the @FT_StrokerBorder value corresponding to the - * `inside' borders of a given outline. - * - * @input: - * outline :: - * The source outline handle. - * - * @return: - * The border index. @FT_STROKER_BORDER_RIGHT for empty or invalid - * outlines. - */ - FT_EXPORT( FT_StrokerBorder ) - FT_Outline_GetInsideBorder( FT_Outline* outline ); - - - /************************************************************** - * - * @function: - * FT_Outline_GetOutsideBorder - * - * @description: - * Retrieve the @FT_StrokerBorder value corresponding to the - * `outside' borders of a given outline. - * - * @input: - * outline :: - * The source outline handle. - * - * @return: - * The border index. @FT_STROKER_BORDER_LEFT for empty or invalid - * outlines. - */ - FT_EXPORT( FT_StrokerBorder ) - FT_Outline_GetOutsideBorder( FT_Outline* outline ); - - - /************************************************************** - * - * @function: - * FT_Stroker_New - * - * @description: - * Create a new stroker object. - * - * @input: - * library :: - * FreeType library handle. - * - * @output: - * astroker :: - * A new stroker object handle. NULL in case of error. - * - * @return: - * FreeType error code. 0~means success. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_New( FT_Library library, - FT_Stroker *astroker ); - - - /************************************************************** - * - * @function: - * FT_Stroker_Set - * - * @description: - * Reset a stroker object's attributes. - * - * @input: - * stroker :: - * The target stroker handle. - * - * radius :: - * The border radius. - * - * line_cap :: - * The line cap style. - * - * line_join :: - * The line join style. - * - * miter_limit :: - * The miter limit for the FT_STROKER_LINEJOIN_MITER_FIXED and - * FT_STROKER_LINEJOIN_MITER_VARIABLE line join styles, - * expressed as 16.16 fixed-point value. - * - * @note: - * The radius is expressed in the same units as the outline - * coordinates. - * - * This function calls @FT_Stroker_Rewind automatically. - */ - FT_EXPORT( void ) - FT_Stroker_Set( FT_Stroker stroker, - FT_Fixed radius, - FT_Stroker_LineCap line_cap, - FT_Stroker_LineJoin line_join, - FT_Fixed miter_limit ); - - - /************************************************************** - * - * @function: - * FT_Stroker_Rewind - * - * @description: - * Reset a stroker object without changing its attributes. - * You should call this function before beginning a new - * series of calls to @FT_Stroker_BeginSubPath or - * @FT_Stroker_EndSubPath. - * - * @input: - * stroker :: - * The target stroker handle. - */ - FT_EXPORT( void ) - FT_Stroker_Rewind( FT_Stroker stroker ); - - - /************************************************************** - * - * @function: - * FT_Stroker_ParseOutline - * - * @description: - * A convenience function used to parse a whole outline with - * the stroker. The resulting outline(s) can be retrieved - * later by functions like @FT_Stroker_GetCounts and @FT_Stroker_Export. - * - * @input: - * stroker :: - * The target stroker handle. - * - * outline :: - * The source outline. - * - * opened :: - * A boolean. If~1, the outline is treated as an open path instead - * of a closed one. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If `opened' is~0 (the default), the outline is treated as a closed - * path, and the stroker generates two distinct `border' outlines. - * - * If `opened' is~1, the outline is processed as an open path, and the - * stroker generates a single `stroke' outline. - * - * This function calls @FT_Stroker_Rewind automatically. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_ParseOutline( FT_Stroker stroker, - FT_Outline* outline, - FT_Bool opened ); - - - /************************************************************** - * - * @function: - * FT_Stroker_BeginSubPath - * - * @description: - * Start a new sub-path in the stroker. - * - * @input: - * stroker :: - * The target stroker handle. - * - * to :: - * A pointer to the start vector. - * - * open :: - * A boolean. If~1, the sub-path is treated as an open one. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function is useful when you need to stroke a path that is - * not stored as an @FT_Outline object. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_BeginSubPath( FT_Stroker stroker, - FT_Vector* to, - FT_Bool open ); - - - /************************************************************** - * - * @function: - * FT_Stroker_EndSubPath - * - * @description: - * Close the current sub-path in the stroker. - * - * @input: - * stroker :: - * The target stroker handle. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should call this function after @FT_Stroker_BeginSubPath. - * If the subpath was not `opened', this function `draws' a - * single line segment to the start position when needed. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_EndSubPath( FT_Stroker stroker ); - - - /************************************************************** - * - * @function: - * FT_Stroker_LineTo - * - * @description: - * `Draw' a single line segment in the stroker's current sub-path, - * from the last position. - * - * @input: - * stroker :: - * The target stroker handle. - * - * to :: - * A pointer to the destination point. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should call this function between @FT_Stroker_BeginSubPath and - * @FT_Stroker_EndSubPath. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_LineTo( FT_Stroker stroker, - FT_Vector* to ); - - - /************************************************************** - * - * @function: - * FT_Stroker_ConicTo - * - * @description: - * `Draw' a single quadratic Bézier in the stroker's current sub-path, - * from the last position. - * - * @input: - * stroker :: - * The target stroker handle. - * - * control :: - * A pointer to a Bézier control point. - * - * to :: - * A pointer to the destination point. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should call this function between @FT_Stroker_BeginSubPath and - * @FT_Stroker_EndSubPath. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_ConicTo( FT_Stroker stroker, - FT_Vector* control, - FT_Vector* to ); - - - /************************************************************** - * - * @function: - * FT_Stroker_CubicTo - * - * @description: - * `Draw' a single cubic Bézier in the stroker's current sub-path, - * from the last position. - * - * @input: - * stroker :: - * The target stroker handle. - * - * control1 :: - * A pointer to the first Bézier control point. - * - * control2 :: - * A pointer to second Bézier control point. - * - * to :: - * A pointer to the destination point. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should call this function between @FT_Stroker_BeginSubPath and - * @FT_Stroker_EndSubPath. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_CubicTo( FT_Stroker stroker, - FT_Vector* control1, - FT_Vector* control2, - FT_Vector* to ); - - - /************************************************************** - * - * @function: - * FT_Stroker_GetBorderCounts - * - * @description: - * Call this function once you have finished parsing your paths - * with the stroker. It returns the number of points and - * contours necessary to export one of the `border' or `stroke' - * outlines generated by the stroker. - * - * @input: - * stroker :: - * The target stroker handle. - * - * border :: - * The border index. - * - * @output: - * anum_points :: - * The number of points. - * - * anum_contours :: - * The number of contours. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * When an outline, or a sub-path, is `closed', the stroker generates - * two independent `border' outlines, named `left' and `right'. - * - * When the outline, or a sub-path, is `opened', the stroker merges - * the `border' outlines with caps. The `left' border receives all - * points, while the `right' border becomes empty. - * - * Use the function @FT_Stroker_GetCounts instead if you want to - * retrieve the counts associated to both borders. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_GetBorderCounts( FT_Stroker stroker, - FT_StrokerBorder border, - FT_UInt *anum_points, - FT_UInt *anum_contours ); - - - /************************************************************** - * - * @function: - * FT_Stroker_ExportBorder - * - * @description: - * Call this function after @FT_Stroker_GetBorderCounts to - * export the corresponding border to your own @FT_Outline - * structure. - * - * Note that this function appends the border points and - * contours to your outline, but does not try to resize its - * arrays. - * - * @input: - * stroker :: - * The target stroker handle. - * - * border :: - * The border index. - * - * outline :: - * The target outline handle. - * - * @note: - * Always call this function after @FT_Stroker_GetBorderCounts to - * get sure that there is enough room in your @FT_Outline object to - * receive all new data. - * - * When an outline, or a sub-path, is `closed', the stroker generates - * two independent `border' outlines, named `left' and `right'. - * - * When the outline, or a sub-path, is `opened', the stroker merges - * the `border' outlines with caps. The `left' border receives all - * points, while the `right' border becomes empty. - * - * Use the function @FT_Stroker_Export instead if you want to - * retrieve all borders at once. - */ - FT_EXPORT( void ) - FT_Stroker_ExportBorder( FT_Stroker stroker, - FT_StrokerBorder border, - FT_Outline* outline ); - - - /************************************************************** - * - * @function: - * FT_Stroker_GetCounts - * - * @description: - * Call this function once you have finished parsing your paths - * with the stroker. It returns the number of points and - * contours necessary to export all points/borders from the stroked - * outline/path. - * - * @input: - * stroker :: - * The target stroker handle. - * - * @output: - * anum_points :: - * The number of points. - * - * anum_contours :: - * The number of contours. - * - * @return: - * FreeType error code. 0~means success. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_GetCounts( FT_Stroker stroker, - FT_UInt *anum_points, - FT_UInt *anum_contours ); - - - /************************************************************** - * - * @function: - * FT_Stroker_Export - * - * @description: - * Call this function after @FT_Stroker_GetBorderCounts to - * export all borders to your own @FT_Outline structure. - * - * Note that this function appends the border points and - * contours to your outline, but does not try to resize its - * arrays. - * - * @input: - * stroker :: - * The target stroker handle. - * - * outline :: - * The target outline handle. - */ - FT_EXPORT( void ) - FT_Stroker_Export( FT_Stroker stroker, - FT_Outline* outline ); - - - /************************************************************** - * - * @function: - * FT_Stroker_Done - * - * @description: - * Destroy a stroker object. - * - * @input: - * stroker :: - * A stroker handle. Can be NULL. - */ - FT_EXPORT( void ) - FT_Stroker_Done( FT_Stroker stroker ); - - - /************************************************************** - * - * @function: - * FT_Glyph_Stroke - * - * @description: - * Stroke a given outline glyph object with a given stroker. - * - * @inout: - * pglyph :: - * Source glyph handle on input, new glyph handle on output. - * - * @input: - * stroker :: - * A stroker handle. - * - * destroy :: - * A Boolean. If~1, the source glyph object is destroyed - * on success. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source glyph is untouched in case of error. - * - * Adding stroke may yield a significantly wider and taller glyph - * depending on how large of a radius was used to stroke the glyph. You - * may need to manually adjust horizontal and vertical advance amounts - * to account for this added size. - */ - FT_EXPORT( FT_Error ) - FT_Glyph_Stroke( FT_Glyph *pglyph, - FT_Stroker stroker, - FT_Bool destroy ); - - - /************************************************************** - * - * @function: - * FT_Glyph_StrokeBorder - * - * @description: - * Stroke a given outline glyph object with a given stroker, but - * only return either its inside or outside border. - * - * @inout: - * pglyph :: - * Source glyph handle on input, new glyph handle on output. - * - * @input: - * stroker :: - * A stroker handle. - * - * inside :: - * A Boolean. If~1, return the inside border, otherwise - * the outside border. - * - * destroy :: - * A Boolean. If~1, the source glyph object is destroyed - * on success. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source glyph is untouched in case of error. - * - * Adding stroke may yield a significantly wider and taller glyph - * depending on how large of a radius was used to stroke the glyph. You - * may need to manually adjust horizontal and vertical advance amounts - * to account for this added size. - */ - FT_EXPORT( FT_Error ) - FT_Glyph_StrokeBorder( FT_Glyph *pglyph, - FT_Stroker stroker, - FT_Bool inside, - FT_Bool destroy ); - - /* */ - -FT_END_HEADER - -#endif /* __FT_STROKE_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/osx/include/freetype/ftsynth.h b/lib/osx/include/freetype/ftsynth.h deleted file mode 100644 index fbcbad8..0000000 --- a/lib/osx/include/freetype/ftsynth.h +++ /dev/null @@ -1,84 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsynth.h */ -/* */ -/* FreeType synthesizing code for emboldening and slanting */ -/* (specification). */ -/* */ -/* Copyright 2000-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /********* *********/ - /********* WARNING, THIS IS ALPHA CODE! THIS API *********/ - /********* IS DUE TO CHANGE UNTIL STRICTLY NOTIFIED BY THE *********/ - /********* FREETYPE DEVELOPMENT TEAM *********/ - /********* *********/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* Main reason for not lifting the functions in this module to a */ - /* `standard' API is that the used parameters for emboldening and */ - /* slanting are not configurable. Consider the functions as a */ - /* code resource that should be copied into the application and */ - /* adapted to the particular needs. */ - - -#ifndef __FTSYNTH_H__ -#define __FTSYNTH_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /* Embolden a glyph by a `reasonable' value (which is highly a matter of */ - /* taste). This function is actually a convenience function, providing */ - /* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden. */ - /* */ - /* For emboldened outlines the height, width, and advance metrics are */ - /* increased by the strength of the emboldening -- this even affects */ - /* mono-width fonts! */ - /* */ - /* You can also call @FT_Outline_Get_CBox to get precise values. */ - FT_EXPORT( void ) - FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); - - /* Slant an outline glyph to the right by about 12 degrees. */ - FT_EXPORT( void ) - FT_GlyphSlot_Oblique( FT_GlyphSlot slot ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTSYNTH_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftsystem.h b/lib/osx/include/freetype/ftsystem.h deleted file mode 100644 index 2bc9999..0000000 --- a/lib/osx/include/freetype/ftsystem.h +++ /dev/null @@ -1,355 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsystem.h */ -/* */ -/* FreeType low-level system interface definition (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTSYSTEM_H__ -#define __FTSYSTEM_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* system_interface */ - /* */ - /* <Title> */ - /* System Interface */ - /* */ - /* <Abstract> */ - /* How FreeType manages memory and i/o. */ - /* */ - /* <Description> */ - /* This section contains various definitions related to memory */ - /* management and i/o access. You need to understand this */ - /* information if you want to use a custom memory manager or you own */ - /* i/o streams. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* M E M O R Y M A N A G E M E N T */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @type: - * FT_Memory - * - * @description: - * A handle to a given memory manager object, defined with an - * @FT_MemoryRec structure. - * - */ - typedef struct FT_MemoryRec_* FT_Memory; - - - /************************************************************************* - * - * @functype: - * FT_Alloc_Func - * - * @description: - * A function used to allocate `size' bytes from `memory'. - * - * @input: - * memory :: - * A handle to the source memory manager. - * - * size :: - * The size in bytes to allocate. - * - * @return: - * Address of new memory block. 0~in case of failure. - * - */ - typedef void* - (*FT_Alloc_Func)( FT_Memory memory, - long size ); - - - /************************************************************************* - * - * @functype: - * FT_Free_Func - * - * @description: - * A function used to release a given block of memory. - * - * @input: - * memory :: - * A handle to the source memory manager. - * - * block :: - * The address of the target memory block. - * - */ - typedef void - (*FT_Free_Func)( FT_Memory memory, - void* block ); - - - /************************************************************************* - * - * @functype: - * FT_Realloc_Func - * - * @description: - * A function used to re-allocate a given block of memory. - * - * @input: - * memory :: - * A handle to the source memory manager. - * - * cur_size :: - * The block's current size in bytes. - * - * new_size :: - * The block's requested new size. - * - * block :: - * The block's current address. - * - * @return: - * New block address. 0~in case of memory shortage. - * - * @note: - * In case of error, the old block must still be available. - * - */ - typedef void* - (*FT_Realloc_Func)( FT_Memory memory, - long cur_size, - long new_size, - void* block ); - - - /************************************************************************* - * - * @struct: - * FT_MemoryRec - * - * @description: - * A structure used to describe a given memory manager to FreeType~2. - * - * @fields: - * user :: - * A generic typeless pointer for user data. - * - * alloc :: - * A pointer type to an allocation function. - * - * free :: - * A pointer type to an memory freeing function. - * - * realloc :: - * A pointer type to a reallocation function. - * - */ - struct FT_MemoryRec_ - { - void* user; - FT_Alloc_Func alloc; - FT_Free_Func free; - FT_Realloc_Func realloc; - }; - - - /*************************************************************************/ - /* */ - /* I / O M A N A G E M E N T */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @type: - * FT_Stream - * - * @description: - * A handle to an input stream. - * - * @also: - * See @FT_StreamRec for the publicly accessible fields of a given - * stream object. - * - */ - typedef struct FT_StreamRec_* FT_Stream; - - - /************************************************************************* - * - * @struct: - * FT_StreamDesc - * - * @description: - * A union type used to store either a long or a pointer. This is used - * to store a file descriptor or a `FILE*' in an input stream. - * - */ - typedef union FT_StreamDesc_ - { - long value; - void* pointer; - - } FT_StreamDesc; - - - /************************************************************************* - * - * @functype: - * FT_Stream_IoFunc - * - * @description: - * A function used to seek and read data from a given input stream. - * - * @input: - * stream :: - * A handle to the source stream. - * - * offset :: - * The offset of read in stream (always from start). - * - * buffer :: - * The address of the read buffer. - * - * count :: - * The number of bytes to read from the stream. - * - * @return: - * The number of bytes effectively read by the stream. - * - * @note: - * This function might be called to perform a seek or skip operation - * with a `count' of~0. A non-zero return value then indicates an - * error. - * - */ - typedef unsigned long - (*FT_Stream_IoFunc)( FT_Stream stream, - unsigned long offset, - unsigned char* buffer, - unsigned long count ); - - - /************************************************************************* - * - * @functype: - * FT_Stream_CloseFunc - * - * @description: - * A function used to close a given input stream. - * - * @input: - * stream :: - * A handle to the target stream. - * - */ - typedef void - (*FT_Stream_CloseFunc)( FT_Stream stream ); - - - /************************************************************************* - * - * @struct: - * FT_StreamRec - * - * @description: - * A structure used to describe an input stream. - * - * @input: - * base :: - * For memory-based streams, this is the address of the first stream - * byte in memory. This field should always be set to NULL for - * disk-based streams. - * - * size :: - * The stream size in bytes. - * - * In case of compressed streams where the size is unknown before - * actually doing the decompression, the value is set to 0x7FFFFFFF. - * (Note that this size value can occur for normal streams also; it is - * thus just a hint.) - * - * pos :: - * The current position within the stream. - * - * descriptor :: - * This field is a union that can hold an integer or a pointer. It is - * used by stream implementations to store file descriptors or `FILE*' - * pointers. - * - * pathname :: - * This field is completely ignored by FreeType. However, it is often - * useful during debugging to use it to store the stream's filename - * (where available). - * - * read :: - * The stream's input function. - * - * close :: - * The stream's close function. - * - * memory :: - * The memory manager to use to preload frames. This is set - * internally by FreeType and shouldn't be touched by stream - * implementations. - * - * cursor :: - * This field is set and used internally by FreeType when parsing - * frames. - * - * limit :: - * This field is set and used internally by FreeType when parsing - * frames. - * - */ - typedef struct FT_StreamRec_ - { - unsigned char* base; - unsigned long size; - unsigned long pos; - - FT_StreamDesc descriptor; - FT_StreamDesc pathname; - FT_Stream_IoFunc read; - FT_Stream_CloseFunc close; - - FT_Memory memory; - unsigned char* cursor; - unsigned char* limit; - - } FT_StreamRec; - - /* */ - - -FT_END_HEADER - -#endif /* __FTSYSTEM_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/fttrigon.h b/lib/osx/include/freetype/fttrigon.h deleted file mode 100644 index 485ec51..0000000 --- a/lib/osx/include/freetype/fttrigon.h +++ /dev/null @@ -1,350 +0,0 @@ -/***************************************************************************/ -/* */ -/* fttrigon.h */ -/* */ -/* FreeType trigonometric functions (specification). */ -/* */ -/* Copyright 2001-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTTRIGON_H__ -#define __FTTRIGON_H__ - -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* computations */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @type: - * FT_Angle - * - * @description: - * This type is used to model angle values in FreeType. Note that the - * angle is a 16.16 fixed-point value expressed in degrees. - * - */ - typedef FT_Fixed FT_Angle; - - - /************************************************************************* - * - * @macro: - * FT_ANGLE_PI - * - * @description: - * The angle pi expressed in @FT_Angle units. - * - */ -#define FT_ANGLE_PI ( 180L << 16 ) - - - /************************************************************************* - * - * @macro: - * FT_ANGLE_2PI - * - * @description: - * The angle 2*pi expressed in @FT_Angle units. - * - */ -#define FT_ANGLE_2PI ( FT_ANGLE_PI * 2 ) - - - /************************************************************************* - * - * @macro: - * FT_ANGLE_PI2 - * - * @description: - * The angle pi/2 expressed in @FT_Angle units. - * - */ -#define FT_ANGLE_PI2 ( FT_ANGLE_PI / 2 ) - - - /************************************************************************* - * - * @macro: - * FT_ANGLE_PI4 - * - * @description: - * The angle pi/4 expressed in @FT_Angle units. - * - */ -#define FT_ANGLE_PI4 ( FT_ANGLE_PI / 4 ) - - - /************************************************************************* - * - * @function: - * FT_Sin - * - * @description: - * Return the sinus of a given angle in fixed-point format. - * - * @input: - * angle :: - * The input angle. - * - * @return: - * The sinus value. - * - * @note: - * If you need both the sinus and cosinus for a given angle, use the - * function @FT_Vector_Unit. - * - */ - FT_EXPORT( FT_Fixed ) - FT_Sin( FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Cos - * - * @description: - * Return the cosinus of a given angle in fixed-point format. - * - * @input: - * angle :: - * The input angle. - * - * @return: - * The cosinus value. - * - * @note: - * If you need both the sinus and cosinus for a given angle, use the - * function @FT_Vector_Unit. - * - */ - FT_EXPORT( FT_Fixed ) - FT_Cos( FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Tan - * - * @description: - * Return the tangent of a given angle in fixed-point format. - * - * @input: - * angle :: - * The input angle. - * - * @return: - * The tangent value. - * - */ - FT_EXPORT( FT_Fixed ) - FT_Tan( FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Atan2 - * - * @description: - * Return the arc-tangent corresponding to a given vector (x,y) in - * the 2d plane. - * - * @input: - * x :: - * The horizontal vector coordinate. - * - * y :: - * The vertical vector coordinate. - * - * @return: - * The arc-tangent value (i.e. angle). - * - */ - FT_EXPORT( FT_Angle ) - FT_Atan2( FT_Fixed x, - FT_Fixed y ); - - - /************************************************************************* - * - * @function: - * FT_Angle_Diff - * - * @description: - * Return the difference between two angles. The result is always - * constrained to the ]-PI..PI] interval. - * - * @input: - * angle1 :: - * First angle. - * - * angle2 :: - * Second angle. - * - * @return: - * Constrained value of `value2-value1'. - * - */ - FT_EXPORT( FT_Angle ) - FT_Angle_Diff( FT_Angle angle1, - FT_Angle angle2 ); - - - /************************************************************************* - * - * @function: - * FT_Vector_Unit - * - * @description: - * Return the unit vector corresponding to a given angle. After the - * call, the value of `vec.x' will be `cos(angle)', and the value of - * `vec.y' will be `sin(angle)'. - * - * This function is useful to retrieve both the sinus and cosinus of a - * given angle quickly. - * - * @output: - * vec :: - * The address of target vector. - * - * @input: - * angle :: - * The input angle. - * - */ - FT_EXPORT( void ) - FT_Vector_Unit( FT_Vector* vec, - FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Vector_Rotate - * - * @description: - * Rotate a vector by a given angle. - * - * @inout: - * vec :: - * The address of target vector. - * - * @input: - * angle :: - * The input angle. - * - */ - FT_EXPORT( void ) - FT_Vector_Rotate( FT_Vector* vec, - FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Vector_Length - * - * @description: - * Return the length of a given vector. - * - * @input: - * vec :: - * The address of target vector. - * - * @return: - * The vector length, expressed in the same units that the original - * vector coordinates. - * - */ - FT_EXPORT( FT_Fixed ) - FT_Vector_Length( FT_Vector* vec ); - - - /************************************************************************* - * - * @function: - * FT_Vector_Polarize - * - * @description: - * Compute both the length and angle of a given vector. - * - * @input: - * vec :: - * The address of source vector. - * - * @output: - * length :: - * The vector length. - * - * angle :: - * The vector angle. - * - */ - FT_EXPORT( void ) - FT_Vector_Polarize( FT_Vector* vec, - FT_Fixed *length, - FT_Angle *angle ); - - - /************************************************************************* - * - * @function: - * FT_Vector_From_Polar - * - * @description: - * Compute vector coordinates from a length and angle. - * - * @output: - * vec :: - * The address of source vector. - * - * @input: - * length :: - * The vector length. - * - * angle :: - * The vector angle. - * - */ - FT_EXPORT( void ) - FT_Vector_From_Polar( FT_Vector* vec, - FT_Fixed length, - FT_Angle angle ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTTRIGON_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftttdrv.h b/lib/osx/include/freetype/ftttdrv.h deleted file mode 100644 index dc0081a..0000000 --- a/lib/osx/include/freetype/ftttdrv.h +++ /dev/null @@ -1,310 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftttdrv.h */ -/* */ -/* FreeType API for controlling the TrueType driver */ -/* (specification only). */ -/* */ -/* Copyright 2013-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTTTDRV_H__ -#define __FTTTDRV_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * tt_driver - * - * @title: - * The TrueType driver - * - * @abstract: - * Controlling the TrueType driver module. - * - * @description: - * While FreeType's TrueType driver doesn't expose API functions by - * itself, it is possible to control its behaviour with @FT_Property_Set - * and @FT_Property_Get. The following lists the available properties - * together with the necessary macros and structures. - * - * The TrueType driver's module name is `truetype'. - * - * We start with a list of definitions, kindly provided by Greg - * Hitchcock. - * - * _Bi-Level_ _Rendering_ - * - * Monochromatic rendering, exclusively used in the early days of - * TrueType by both Apple and Microsoft. Microsoft's GDI interface - * supported hinting of the right-side bearing point, such that the - * advance width could be non-linear. Most often this was done to - * achieve some level of glyph symmetry. To enable reasonable - * performance (e.g., not having to run hinting on all glyphs just to - * get the widths) there was a bit in the head table indicating if the - * side bearing was hinted, and additional tables, `hdmx' and `LTSH', to - * cache hinting widths across multiple sizes and device aspect ratios. - * - * _Font_ _Smoothing_ - * - * Microsoft's GDI implementation of anti-aliasing. Not traditional - * anti-aliasing as the outlines were hinted before the sampling. The - * widths matched the bi-level rendering. - * - * _ClearType_ _Rendering_ - * - * Technique that uses physical subpixels to improve rendering on LCD - * (and other) displays. Because of the higher resolution, many methods - * of improving symmetry in glyphs through hinting the right-side - * bearing were no longer necessary. This lead to what GDI calls - * `natural widths' ClearType, see - * http://www.beatstamm.com/typography/RTRCh4.htm#Sec21. Since hinting - * has extra resolution, most non-linearity went away, but it is still - * possible for hints to change the advance widths in this mode. - * - * _ClearType_ _Compatible_ _Widths_ - * - * One of the earliest challenges with ClearType was allowing the - * implementation in GDI to be selected without requiring all UI and - * documents to reflow. To address this, a compatible method of - * rendering ClearType was added where the font hints are executed once - * to determine the width in bi-level rendering, and then re-run in - * ClearType, with the difference in widths being absorbed in the font - * hints for ClearType (mostly in the white space of hints); see - * http://www.beatstamm.com/typography/RTRCh4.htm#Sec20. Somewhat by - * definition, compatible width ClearType allows for non-linear widths, - * but only when the bi-level version has non-linear widths. - * - * _ClearType_ _Subpixel_ _Positioning_ - * - * One of the nice benefits of ClearType is the ability to more crisply - * display fractional widths; unfortunately, the GDI model of integer - * bitmaps did not support this. However, the WPF and Direct Write - * frameworks do support fractional widths. DWrite calls this `natural - * mode', not to be confused with GDI's `natural widths'. Subpixel - * positioning, in the current implementation of Direct Write, - * unfortunately does not support hinted advance widths, see - * http://www.beatstamm.com/typography/RTRCh4.htm#Sec22. Note that the - * TrueType interpreter fully allows the advance width to be adjusted in - * this mode, just the DWrite client will ignore those changes. - * - * _ClearType_ _Backwards_ _Compatibility_ - * - * This is a set of exceptions made in the TrueType interpreter to - * minimize hinting techniques that were problematic with the extra - * resolution of ClearType; see - * http://www.beatstamm.com/typography/RTRCh4.htm#Sec1 and - * http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx. - * This technique is not to be confused with ClearType compatible - * widths. ClearType backwards compatibility has no direct impact on - * changing advance widths, but there might be an indirect impact on - * disabling some deltas. This could be worked around in backwards - * compatibility mode. - * - * _Native_ _ClearType_ _Mode_ - * - * (Not to be confused with `natural widths'.) This mode removes all - * the exceptions in the TrueType interpreter when running with - * ClearType. Any issues on widths would still apply, though. - * - */ - - - /************************************************************************** - * - * @property: - * interpreter-version - * - * @description: - * Currently, two versions are available, representing the bytecode - * interpreter with and without subpixel hinting support, - * respectively. The default is subpixel support if - * TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel - * support otherwise (since it isn't available then). - * - * If subpixel hinting is on, many TrueType bytecode instructions behave - * differently compared to B/W or grayscale rendering (except if `native - * ClearType' is selected by the font). The main idea is to render at a - * much increased horizontal resolution, then sampling down the created - * output to subpixel precision. However, many older fonts are not - * suited to this and must be specially taken care of by applying - * (hardcoded) font-specific tweaks. - * - * Details on subpixel hinting and some of the necessary tweaks can be - * found in Greg Hitchcock's whitepaper at - * `http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'. - * - * The following example code demonstrates how to activate subpixel - * hinting (omitting the error handling). - * - * { - * FT_Library library; - * FT_Face face; - * FT_UInt interpreter_version = TT_INTERPRETER_VERSION_38; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "truetype", - * "interpreter-version", - * &interpreter_version ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - - /************************************************************************** - * - * @enum: - * TT_INTERPRETER_VERSION_XXX - * - * @description: - * A list of constants used for the @interpreter-version property to - * select the hinting engine for Truetype fonts. - * - * The numeric value in the constant names represents the version - * number as returned by the `GETINFO' bytecode instruction. - * - * @values: - * TT_INTERPRETER_VERSION_35 :: - * Version~35 corresponds to MS rasterizer v.1.7 as used e.g. in - * Windows~98; only grayscale and B/W rasterizing is supported. - * - * TT_INTERPRETER_VERSION_38 :: - * Version~38 corresponds to MS rasterizer v.1.9; it is roughly - * equivalent to the hinting provided by DirectWrite ClearType (as - * can be found, for example, in the Internet Explorer~9 running on - * Windows~7). - * - * @note: - * This property controls the behaviour of the bytecode interpreter - * and thus how outlines get hinted. It does *not* control how glyph - * get rasterized! In particular, it does not control subpixel color - * filtering. - * - * If FreeType has not been compiled with configuration option - * FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version~38 causes an - * `FT_Err_Unimplemented_Feature' error. - * - * Depending on the graphics framework, Microsoft uses different - * bytecode and rendering engines. As a consequence, the version - * numbers returned by a call to the `GETINFO' bytecode instruction are - * more convoluted than desired. - * - * Here are two tables that try to shed some light on the possible - * values for the MS rasterizer engine, together with the additional - * features introduced by it. - * - * { - * GETINFO framework version feature - * ------------------------------------------------------------------- - * 3 GDI (Win 3.1), v1.0 16-bit, first version - * TrueImage - * 33 GDI (Win NT 3.1), v1.5 32-bit - * HP Laserjet - * 34 GDI (Win 95) v1.6 font smoothing, - * new SCANTYPE opcode - * 35 GDI (Win 98/2000) v1.7 (UN)SCALED_COMPONENT_OFFSET - * bits in composite glyphs - * 36 MGDI (Win CE 2) v1.6+ classic ClearType - * 37 GDI (XP and later), v1.8 ClearType - * GDI+ old (before Vista) - * 38 GDI+ old (Vista, Win 7), v1.9 subpixel ClearType, - * WPF Y-direction ClearType, - * additional error checking - * 39 DWrite (before Win 8) v2.0 subpixel ClearType flags - * in GETINFO opcode, - * bug fixes - * 40 GDI+ (after Win 7), v2.1 Y-direction ClearType flag - * DWrite (Win 8) in GETINFO opcode, - * Gray ClearType - * } - * - * The `version' field gives a rough orientation only, since some - * applications provided certain features much earlier (as an example, - * Microsoft Reader used subpixel and Y-direction ClearType already in - * Windows 2000). Similarly, updates to a given framework might include - * improved hinting support. - * - * { - * version sampling rendering comment - * x y x y - * -------------------------------------------------------------- - * v1.0 normal normal B/W B/W bi-level - * v1.6 high high gray gray grayscale - * v1.8 high normal color-filter B/W (GDI) ClearType - * v1.9 high high color-filter gray Color ClearType - * v2.1 high normal gray B/W Gray ClearType - * v2.1 high high gray gray Gray ClearType - * } - * - * Color and Gray ClearType are the two available variants of - * `Y-direction ClearType', meaning grayscale rasterization along the - * Y-direction; the name used in the TrueType specification for this - * feature is `symmetric smoothing'. `Classic ClearType' is the - * original algorithm used before introducing a modified version in - * Win~XP. Another name for v1.6's grayscale rendering is `font - * smoothing', and `Color ClearType' is sometimes also called `DWrite - * ClearType'. To differentiate between today's Color ClearType and the - * earlier ClearType variant with B/W rendering along the vertical axis, - * the latter is sometimes called `GDI ClearType'. - * - * `Normal' and `high' sampling describe the (virtual) resolution to - * access the rasterized outline after the hinting process. `Normal' - * means 1 sample per grid line (i.e., B/W). In the current Microsoft - * implementation, `high' means an extra virtual resolution of 16x16 (or - * 16x1) grid lines per pixel for bytecode instructions like `MIRP'. - * After hinting, these 16 grid lines are mapped to 6x5 (or 6x1) grid - * lines for color filtering if Color ClearType is activated. - * - * Note that `Gray ClearType' is essentially the same as v1.6's - * grayscale rendering. However, the GETINFO instruction handles it - * differently: v1.6 returns bit~12 (hinting for grayscale), while v2.1 - * returns bits~13 (hinting for ClearType), 18 (symmetrical smoothing), - * and~19 (Gray ClearType). Also, this mode respects bits 2 and~3 for - * the version~1 gasp table exclusively (like Color ClearType), while - * v1.6 only respects the values of version~0 (bits 0 and~1). - * - * FreeType doesn't provide all capabilities of the most recent - * ClearType incarnation, thus we identify our subpixel support as - * version~38. - * - */ -#define TT_INTERPRETER_VERSION_35 35 -#define TT_INTERPRETER_VERSION_38 38 - - /* */ - - -FT_END_HEADER - - -#endif /* __FTTTDRV_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/fttypes.h b/lib/osx/include/freetype/fttypes.h deleted file mode 100644 index 706a1be..0000000 --- a/lib/osx/include/freetype/fttypes.h +++ /dev/null @@ -1,602 +0,0 @@ -/***************************************************************************/ -/* */ -/* fttypes.h */ -/* */ -/* FreeType simple types definitions (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTTYPES_H__ -#define __FTTYPES_H__ - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_SYSTEM_H -#include FT_IMAGE_H - -#include <stddef.h> - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /* <Title> */ - /* Basic Data Types */ - /* */ - /* <Abstract> */ - /* The basic data types defined by the library. */ - /* */ - /* <Description> */ - /* This section contains the basic data types defined by FreeType~2, */ - /* ranging from simple scalar types to bitmap descriptors. More */ - /* font-specific structures are defined in a different section. */ - /* */ - /* <Order> */ - /* FT_Byte */ - /* FT_Bytes */ - /* FT_Char */ - /* FT_Int */ - /* FT_UInt */ - /* FT_Int16 */ - /* FT_UInt16 */ - /* FT_Int32 */ - /* FT_UInt32 */ - /* FT_Int64 */ - /* FT_UInt64 */ - /* FT_Short */ - /* FT_UShort */ - /* FT_Long */ - /* FT_ULong */ - /* FT_Bool */ - /* FT_Offset */ - /* FT_PtrDist */ - /* FT_String */ - /* FT_Tag */ - /* FT_Error */ - /* FT_Fixed */ - /* FT_Pointer */ - /* FT_Pos */ - /* FT_Vector */ - /* FT_BBox */ - /* FT_Matrix */ - /* FT_FWord */ - /* FT_UFWord */ - /* FT_F2Dot14 */ - /* FT_UnitVector */ - /* FT_F26Dot6 */ - /* FT_Data */ - /* */ - /* FT_MAKE_TAG */ - /* */ - /* FT_Generic */ - /* FT_Generic_Finalizer */ - /* */ - /* FT_Bitmap */ - /* FT_Pixel_Mode */ - /* FT_Palette_Mode */ - /* FT_Glyph_Format */ - /* FT_IMAGE_TAG */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Bool */ - /* */ - /* <Description> */ - /* A typedef of unsigned char, used for simple booleans. As usual, */ - /* values 1 and~0 represent true and false, respectively. */ - /* */ - typedef unsigned char FT_Bool; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_FWord */ - /* */ - /* <Description> */ - /* A signed 16-bit integer used to store a distance in original font */ - /* units. */ - /* */ - typedef signed short FT_FWord; /* distance in FUnits */ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UFWord */ - /* */ - /* <Description> */ - /* An unsigned 16-bit integer used to store a distance in original */ - /* font units. */ - /* */ - typedef unsigned short FT_UFWord; /* unsigned distance */ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Char */ - /* */ - /* <Description> */ - /* A simple typedef for the _signed_ char type. */ - /* */ - typedef signed char FT_Char; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Byte */ - /* */ - /* <Description> */ - /* A simple typedef for the _unsigned_ char type. */ - /* */ - typedef unsigned char FT_Byte; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Bytes */ - /* */ - /* <Description> */ - /* A typedef for constant memory areas. */ - /* */ - typedef const FT_Byte* FT_Bytes; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Tag */ - /* */ - /* <Description> */ - /* A typedef for 32-bit tags (as used in the SFNT format). */ - /* */ - typedef FT_UInt32 FT_Tag; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_String */ - /* */ - /* <Description> */ - /* A simple typedef for the char type, usually used for strings. */ - /* */ - typedef char FT_String; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Short */ - /* */ - /* <Description> */ - /* A typedef for signed short. */ - /* */ - typedef signed short FT_Short; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UShort */ - /* */ - /* <Description> */ - /* A typedef for unsigned short. */ - /* */ - typedef unsigned short FT_UShort; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Int */ - /* */ - /* <Description> */ - /* A typedef for the int type. */ - /* */ - typedef signed int FT_Int; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UInt */ - /* */ - /* <Description> */ - /* A typedef for the unsigned int type. */ - /* */ - typedef unsigned int FT_UInt; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Long */ - /* */ - /* <Description> */ - /* A typedef for signed long. */ - /* */ - typedef signed long FT_Long; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_ULong */ - /* */ - /* <Description> */ - /* A typedef for unsigned long. */ - /* */ - typedef unsigned long FT_ULong; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_F2Dot14 */ - /* */ - /* <Description> */ - /* A signed 2.14 fixed-point type used for unit vectors. */ - /* */ - typedef signed short FT_F2Dot14; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_F26Dot6 */ - /* */ - /* <Description> */ - /* A signed 26.6 fixed-point type used for vectorial pixel */ - /* coordinates. */ - /* */ - typedef signed long FT_F26Dot6; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Fixed */ - /* */ - /* <Description> */ - /* This type is used to store 16.16 fixed-point values, like scaling */ - /* values or matrix coefficients. */ - /* */ - typedef signed long FT_Fixed; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Error */ - /* */ - /* <Description> */ - /* The FreeType error code type. A value of~0 is always interpreted */ - /* as a successful operation. */ - /* */ - typedef int FT_Error; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Pointer */ - /* */ - /* <Description> */ - /* A simple typedef for a typeless pointer. */ - /* */ - typedef void* FT_Pointer; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Offset */ - /* */ - /* <Description> */ - /* This is equivalent to the ANSI~C `size_t' type, i.e., the largest */ - /* _unsigned_ integer type used to express a file size or position, */ - /* or a memory block size. */ - /* */ - typedef size_t FT_Offset; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_PtrDist */ - /* */ - /* <Description> */ - /* This is equivalent to the ANSI~C `ptrdiff_t' type, i.e., the */ - /* largest _signed_ integer type used to express the distance */ - /* between two pointers. */ - /* */ - typedef ft_ptrdiff_t FT_PtrDist; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_UnitVector */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2D vector unit vector. Uses */ - /* FT_F2Dot14 types. */ - /* */ - /* <Fields> */ - /* x :: Horizontal coordinate. */ - /* */ - /* y :: Vertical coordinate. */ - /* */ - typedef struct FT_UnitVector_ - { - FT_F2Dot14 x; - FT_F2Dot14 y; - - } FT_UnitVector; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Matrix */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2x2 matrix. Coefficients are */ - /* in 16.16 fixed-point format. The computation performed is: */ - /* */ - /* { */ - /* x' = x*xx + y*xy */ - /* y' = x*yx + y*yy */ - /* } */ - /* */ - /* <Fields> */ - /* xx :: Matrix coefficient. */ - /* */ - /* xy :: Matrix coefficient. */ - /* */ - /* yx :: Matrix coefficient. */ - /* */ - /* yy :: Matrix coefficient. */ - /* */ - typedef struct FT_Matrix_ - { - FT_Fixed xx, xy; - FT_Fixed yx, yy; - - } FT_Matrix; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Data */ - /* */ - /* <Description> */ - /* Read-only binary data represented as a pointer and a length. */ - /* */ - /* <Fields> */ - /* pointer :: The data. */ - /* */ - /* length :: The length of the data in bytes. */ - /* */ - typedef struct FT_Data_ - { - const FT_Byte* pointer; - FT_Int length; - - } FT_Data; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Generic_Finalizer */ - /* */ - /* <Description> */ - /* Describe a function used to destroy the `client' data of any */ - /* FreeType object. See the description of the @FT_Generic type for */ - /* details of usage. */ - /* */ - /* <Input> */ - /* The address of the FreeType object that is under finalization. */ - /* Its client data is accessed through its `generic' field. */ - /* */ - typedef void (*FT_Generic_Finalizer)(void* object); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Generic */ - /* */ - /* <Description> */ - /* Client applications often need to associate their own data to a */ - /* variety of FreeType core objects. For example, a text layout API */ - /* might want to associate a glyph cache to a given size object. */ - /* */ - /* Some FreeType object contains a `generic' field, of type */ - /* FT_Generic, which usage is left to client applications and font */ - /* servers. */ - /* */ - /* It can be used to store a pointer to client-specific data, as well */ - /* as the address of a `finalizer' function, which will be called by */ - /* FreeType when the object is destroyed (for example, the previous */ - /* client example would put the address of the glyph cache destructor */ - /* in the `finalizer' field). */ - /* */ - /* <Fields> */ - /* data :: A typeless pointer to any client-specified data. This */ - /* field is completely ignored by the FreeType library. */ - /* */ - /* finalizer :: A pointer to a `generic finalizer' function, which */ - /* will be called when the object is destroyed. If this */ - /* field is set to NULL, no code will be called. */ - /* */ - typedef struct FT_Generic_ - { - void* data; - FT_Generic_Finalizer finalizer; - - } FT_Generic; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_MAKE_TAG */ - /* */ - /* <Description> */ - /* This macro converts four-letter tags that are used to label */ - /* TrueType tables into an unsigned long, to be used within FreeType. */ - /* */ - /* <Note> */ - /* The produced values *must* be 32-bit integers. Don't redefine */ - /* this macro. */ - /* */ -#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \ - (FT_Tag) \ - ( ( (FT_ULong)_x1 << 24 ) | \ - ( (FT_ULong)_x2 << 16 ) | \ - ( (FT_ULong)_x3 << 8 ) | \ - (FT_ULong)_x4 ) - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* L I S T M A N A G E M E N T */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* list_processing */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_ListNode */ - /* */ - /* <Description> */ - /* Many elements and objects in FreeType are listed through an */ - /* @FT_List record (see @FT_ListRec). As its name suggests, an */ - /* FT_ListNode is a handle to a single list element. */ - /* */ - typedef struct FT_ListNodeRec_* FT_ListNode; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_List */ - /* */ - /* <Description> */ - /* A handle to a list record (see @FT_ListRec). */ - /* */ - typedef struct FT_ListRec_* FT_List; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ListNodeRec */ - /* */ - /* <Description> */ - /* A structure used to hold a single list element. */ - /* */ - /* <Fields> */ - /* prev :: The previous element in the list. NULL if first. */ - /* */ - /* next :: The next element in the list. NULL if last. */ - /* */ - /* data :: A typeless pointer to the listed object. */ - /* */ - typedef struct FT_ListNodeRec_ - { - FT_ListNode prev; - FT_ListNode next; - void* data; - - } FT_ListNodeRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ListRec */ - /* */ - /* <Description> */ - /* A structure used to hold a simple doubly-linked list. These are */ - /* used in many parts of FreeType. */ - /* */ - /* <Fields> */ - /* head :: The head (first element) of doubly-linked list. */ - /* */ - /* tail :: The tail (last element) of doubly-linked list. */ - /* */ - typedef struct FT_ListRec_ - { - FT_ListNode head; - FT_ListNode tail; - - } FT_ListRec; - - /* */ - - -#define FT_IS_EMPTY( list ) ( (list).head == 0 ) -#define FT_BOOL( x ) ( (FT_Bool)( x ) ) - - /* concatenate C tokens */ -#define FT_ERR_XCAT( x, y ) x ## y -#define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y ) - - /* see `ftmoderr.h' for descriptions of the following macros */ - -#define FT_ERR( e ) FT_ERR_CAT( FT_ERR_PREFIX, e ) - -#define FT_ERROR_BASE( x ) ( (x) & 0xFF ) -#define FT_ERROR_MODULE( x ) ( (x) & 0xFF00U ) - -#define FT_ERR_EQ( x, e ) \ - ( FT_ERROR_BASE( x ) == FT_ERROR_BASE( FT_ERR( e ) ) ) -#define FT_ERR_NEQ( x, e ) \ - ( FT_ERROR_BASE( x ) != FT_ERROR_BASE( FT_ERR( e ) ) ) - - -FT_END_HEADER - -#endif /* __FTTYPES_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ftwinfnt.h b/lib/osx/include/freetype/ftwinfnt.h deleted file mode 100644 index caedaa1..0000000 --- a/lib/osx/include/freetype/ftwinfnt.h +++ /dev/null @@ -1,275 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftwinfnt.h */ -/* */ -/* FreeType API for accessing Windows fnt-specific data. */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTWINFNT_H__ -#define __FTWINFNT_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* winfnt_fonts */ - /* */ - /* <Title> */ - /* Window FNT Files */ - /* */ - /* <Abstract> */ - /* Windows FNT specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of Windows FNT specific */ - /* functions. */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @enum: - * FT_WinFNT_ID_XXX - * - * @description: - * A list of valid values for the `charset' byte in - * @FT_WinFNT_HeaderRec. Exact mapping tables for the various cpXXXX - * encodings (except for cp1361) can be found at - * ftp://ftp.unicode.org/Public in the MAPPINGS/VENDORS/MICSFT/WINDOWS - * subdirectory. cp1361 is roughly a superset of - * MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT. - * - * @values: - * FT_WinFNT_ID_DEFAULT :: - * This is used for font enumeration and font creation as a - * `don't care' value. Valid font files don't contain this value. - * When querying for information about the character set of the font - * that is currently selected into a specified device context, this - * return value (of the related Windows API) simply denotes failure. - * - * FT_WinFNT_ID_SYMBOL :: - * There is no known mapping table available. - * - * FT_WinFNT_ID_MAC :: - * Mac Roman encoding. - * - * FT_WinFNT_ID_OEM :: - * From Michael Pöttgen <michael@poettgen.de>: - * - * The `Windows Font Mapping' article says that FT_WinFNT_ID_OEM - * is used for the charset of vector fonts, like `modern.fon', - * `roman.fon', and `script.fon' on Windows. - * - * The `CreateFont' documentation says: The FT_WinFNT_ID_OEM value - * specifies a character set that is operating-system dependent. - * - * The `IFIMETRICS' documentation from the `Windows Driver - * Development Kit' says: This font supports an OEM-specific - * character set. The OEM character set is system dependent. - * - * In general OEM, as opposed to ANSI (i.e., cp1252), denotes the - * second default codepage that most international versions of - * Windows have. It is one of the OEM codepages from - * - * https://msdn.microsoft.com/en-us/goglobal/bb964655, - * - * and is used for the `DOS boxes', to support legacy applications. - * A German Windows version for example usually uses ANSI codepage - * 1252 and OEM codepage 850. - * - * FT_WinFNT_ID_CP874 :: - * A superset of Thai TIS 620 and ISO 8859-11. - * - * FT_WinFNT_ID_CP932 :: - * A superset of Japanese Shift-JIS (with minor deviations). - * - * FT_WinFNT_ID_CP936 :: - * A superset of simplified Chinese GB 2312-1980 (with different - * ordering and minor deviations). - * - * FT_WinFNT_ID_CP949 :: - * A superset of Korean Hangul KS~C 5601-1987 (with different - * ordering and minor deviations). - * - * FT_WinFNT_ID_CP950 :: - * A superset of traditional Chinese Big~5 ETen (with different - * ordering and minor deviations). - * - * FT_WinFNT_ID_CP1250 :: - * A superset of East European ISO 8859-2 (with slightly different - * ordering). - * - * FT_WinFNT_ID_CP1251 :: - * A superset of Russian ISO 8859-5 (with different ordering). - * - * FT_WinFNT_ID_CP1252 :: - * ANSI encoding. A superset of ISO 8859-1. - * - * FT_WinFNT_ID_CP1253 :: - * A superset of Greek ISO 8859-7 (with minor modifications). - * - * FT_WinFNT_ID_CP1254 :: - * A superset of Turkish ISO 8859-9. - * - * FT_WinFNT_ID_CP1255 :: - * A superset of Hebrew ISO 8859-8 (with some modifications). - * - * FT_WinFNT_ID_CP1256 :: - * A superset of Arabic ISO 8859-6 (with different ordering). - * - * FT_WinFNT_ID_CP1257 :: - * A superset of Baltic ISO 8859-13 (with some deviations). - * - * FT_WinFNT_ID_CP1258 :: - * For Vietnamese. This encoding doesn't cover all necessary - * characters. - * - * FT_WinFNT_ID_CP1361 :: - * Korean (Johab). - */ - -#define FT_WinFNT_ID_CP1252 0 -#define FT_WinFNT_ID_DEFAULT 1 -#define FT_WinFNT_ID_SYMBOL 2 -#define FT_WinFNT_ID_MAC 77 -#define FT_WinFNT_ID_CP932 128 -#define FT_WinFNT_ID_CP949 129 -#define FT_WinFNT_ID_CP1361 130 -#define FT_WinFNT_ID_CP936 134 -#define FT_WinFNT_ID_CP950 136 -#define FT_WinFNT_ID_CP1253 161 -#define FT_WinFNT_ID_CP1254 162 -#define FT_WinFNT_ID_CP1258 163 -#define FT_WinFNT_ID_CP1255 177 -#define FT_WinFNT_ID_CP1256 178 -#define FT_WinFNT_ID_CP1257 186 -#define FT_WinFNT_ID_CP1251 204 -#define FT_WinFNT_ID_CP874 222 -#define FT_WinFNT_ID_CP1250 238 -#define FT_WinFNT_ID_OEM 255 - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_WinFNT_HeaderRec */ - /* */ - /* <Description> */ - /* Windows FNT Header info. */ - /* */ - typedef struct FT_WinFNT_HeaderRec_ - { - FT_UShort version; - FT_ULong file_size; - FT_Byte copyright[60]; - FT_UShort file_type; - FT_UShort nominal_point_size; - FT_UShort vertical_resolution; - FT_UShort horizontal_resolution; - FT_UShort ascent; - FT_UShort internal_leading; - FT_UShort external_leading; - FT_Byte italic; - FT_Byte underline; - FT_Byte strike_out; - FT_UShort weight; - FT_Byte charset; - FT_UShort pixel_width; - FT_UShort pixel_height; - FT_Byte pitch_and_family; - FT_UShort avg_width; - FT_UShort max_width; - FT_Byte first_char; - FT_Byte last_char; - FT_Byte default_char; - FT_Byte break_char; - FT_UShort bytes_per_row; - FT_ULong device_offset; - FT_ULong face_name_offset; - FT_ULong bits_pointer; - FT_ULong bits_offset; - FT_Byte reserved; - FT_ULong flags; - FT_UShort A_space; - FT_UShort B_space; - FT_UShort C_space; - FT_UShort color_table_offset; - FT_ULong reserved1[4]; - - } FT_WinFNT_HeaderRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_WinFNT_Header */ - /* */ - /* <Description> */ - /* A handle to an @FT_WinFNT_HeaderRec structure. */ - /* */ - typedef struct FT_WinFNT_HeaderRec_* FT_WinFNT_Header; - - - /********************************************************************** - * - * @function: - * FT_Get_WinFNT_Header - * - * @description: - * Retrieve a Windows FNT font info header. - * - * @input: - * face :: A handle to the input face. - * - * @output: - * aheader :: The WinFNT header. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with Windows FNT faces, returning an error - * otherwise. - */ - FT_EXPORT( FT_Error ) - FT_Get_WinFNT_Header( FT_Face face, - FT_WinFNT_HeaderRec *aheader ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTWINFNT_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/osx/include/freetype/internal/autohint.h b/lib/osx/include/freetype/internal/autohint.h deleted file mode 100644 index 8d5a977..0000000 --- a/lib/osx/include/freetype/internal/autohint.h +++ /dev/null @@ -1,244 +0,0 @@ -/***************************************************************************/ -/* */ -/* autohint.h */ -/* */ -/* High-level `autohint' module-specific interface (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* The auto-hinter is used to load and automatically hint glyphs if a */ - /* format-specific hinter isn't available. */ - /* */ - /*************************************************************************/ - - -#ifndef __AUTOHINT_H__ -#define __AUTOHINT_H__ - - - /*************************************************************************/ - /* */ - /* A small technical note regarding automatic hinting in order to */ - /* clarify this module interface. */ - /* */ - /* An automatic hinter might compute two kinds of data for a given face: */ - /* */ - /* - global hints: Usually some metrics that describe global properties */ - /* of the face. It is computed by scanning more or less */ - /* aggressively the glyphs in the face, and thus can be */ - /* very slow to compute (even if the size of global */ - /* hints is really small). */ - /* */ - /* - glyph hints: These describe some important features of the glyph */ - /* outline, as well as how to align them. They are */ - /* generally much faster to compute than global hints. */ - /* */ - /* The current FreeType auto-hinter does a pretty good job while */ - /* performing fast computations for both global and glyph hints. */ - /* However, we might be interested in introducing more complex and */ - /* powerful algorithms in the future, like the one described in the John */ - /* D. Hobby paper, which unfortunately requires a lot more horsepower. */ - /* */ - /* Because a sufficiently sophisticated font management system would */ - /* typically implement an LRU cache of opened face objects to reduce */ - /* memory usage, it is a good idea to be able to avoid recomputing */ - /* global hints every time the same face is re-opened. */ - /* */ - /* We thus provide the ability to cache global hints outside of the face */ - /* object, in order to speed up font re-opening time. Of course, this */ - /* feature is purely optional, so most client programs won't even notice */ - /* it. */ - /* */ - /* I initially thought that it would be a good idea to cache the glyph */ - /* hints too. However, my general idea now is that if you really need */ - /* to cache these too, you are simply in need of a new font format, */ - /* where all this information could be stored within the font file and */ - /* decoded on the fly. */ - /* */ - /*************************************************************************/ - - -#include <ft2build.h> -#include FT_FREETYPE_H - - -FT_BEGIN_HEADER - - - typedef struct FT_AutoHinterRec_ *FT_AutoHinter; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_AutoHinter_GlobalGetFunc */ - /* */ - /* <Description> */ - /* Retrieve the global hints computed for a given face object. The */ - /* resulting data is dissociated from the face and will survive a */ - /* call to FT_Done_Face(). It must be discarded through the API */ - /* FT_AutoHinter_GlobalDoneFunc(). */ - /* */ - /* <Input> */ - /* hinter :: A handle to the source auto-hinter. */ - /* */ - /* face :: A handle to the source face object. */ - /* */ - /* <Output> */ - /* global_hints :: A typeless pointer to the global hints. */ - /* */ - /* global_len :: The size in bytes of the global hints. */ - /* */ - typedef void - (*FT_AutoHinter_GlobalGetFunc)( FT_AutoHinter hinter, - FT_Face face, - void** global_hints, - long* global_len ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_AutoHinter_GlobalDoneFunc */ - /* */ - /* <Description> */ - /* Discard the global hints retrieved through */ - /* FT_AutoHinter_GlobalGetFunc(). This is the only way these hints */ - /* are freed from memory. */ - /* */ - /* <Input> */ - /* hinter :: A handle to the auto-hinter module. */ - /* */ - /* global :: A pointer to retrieved global hints to discard. */ - /* */ - typedef void - (*FT_AutoHinter_GlobalDoneFunc)( FT_AutoHinter hinter, - void* global ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_AutoHinter_GlobalResetFunc */ - /* */ - /* <Description> */ - /* This function is used to recompute the global metrics in a given */ - /* font. This is useful when global font data changes (e.g. Multiple */ - /* Masters fonts where blend coordinates change). */ - /* */ - /* <Input> */ - /* hinter :: A handle to the source auto-hinter. */ - /* */ - /* face :: A handle to the face. */ - /* */ - typedef void - (*FT_AutoHinter_GlobalResetFunc)( FT_AutoHinter hinter, - FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_AutoHinter_GlyphLoadFunc */ - /* */ - /* <Description> */ - /* This function is used to load, scale, and automatically hint a */ - /* glyph from a given face. */ - /* */ - /* <Input> */ - /* face :: A handle to the face. */ - /* */ - /* glyph_index :: The glyph index. */ - /* */ - /* load_flags :: The load flags. */ - /* */ - /* <Note> */ - /* This function is capable of loading composite glyphs by hinting */ - /* each sub-glyph independently (which improves quality). */ - /* */ - /* It will call the font driver with @FT_Load_Glyph, with */ - /* @FT_LOAD_NO_SCALE set. */ - /* */ - typedef FT_Error - (*FT_AutoHinter_GlyphLoadFunc)( FT_AutoHinter hinter, - FT_GlyphSlot slot, - FT_Size size, - FT_UInt glyph_index, - FT_Int32 load_flags ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_AutoHinter_InterfaceRec */ - /* */ - /* <Description> */ - /* The auto-hinter module's interface. */ - /* */ - typedef struct FT_AutoHinter_InterfaceRec_ - { - FT_AutoHinter_GlobalResetFunc reset_face; - FT_AutoHinter_GlobalGetFunc get_global_hints; - FT_AutoHinter_GlobalDoneFunc done_global_hints; - FT_AutoHinter_GlyphLoadFunc load_glyph; - - } FT_AutoHinter_InterfaceRec, *FT_AutoHinter_Interface; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_AUTOHINTER_INTERFACE( \ - class_, \ - reset_face_, \ - get_global_hints_, \ - done_global_hints_, \ - load_glyph_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_AutoHinter_InterfaceRec class_ = \ - { \ - reset_face_, \ - get_global_hints_, \ - done_global_hints_, \ - load_glyph_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_AUTOHINTER_INTERFACE( \ - class_, \ - reset_face_, \ - get_global_hints_, \ - done_global_hints_, \ - load_glyph_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_AutoHinter_InterfaceRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->reset_face = reset_face_; \ - clazz->get_global_hints = get_global_hints_; \ - clazz->done_global_hints = done_global_hints_; \ - clazz->load_glyph = load_glyph_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - -FT_END_HEADER - -#endif /* __AUTOHINT_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/ftcalc.h b/lib/osx/include/freetype/internal/ftcalc.h deleted file mode 100644 index a76682b..0000000 --- a/lib/osx/include/freetype/internal/ftcalc.h +++ /dev/null @@ -1,418 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcalc.h */ -/* */ -/* Arithmetic computations (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTCALC_H__ -#define __FTCALC_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* FT_MulDiv() and FT_MulFix() are declared in freetype.h. */ - /* */ - /*************************************************************************/ - -#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER - /* Provide assembler fragments for performance-critical functions. */ - /* These must be defined `static __inline__' with GCC. */ - -#if defined( __CC_ARM ) || defined( __ARMCC__ ) /* RVCT */ - -#define FT_MULFIX_ASSEMBLER FT_MulFix_arm - - /* documentation is in freetype.h */ - - static __inline FT_Int32 - FT_MulFix_arm( FT_Int32 a, - FT_Int32 b ) - { - FT_Int32 t, t2; - - - __asm - { - smull t2, t, b, a /* (lo=t2,hi=t) = a*b */ - mov a, t, asr #31 /* a = (hi >> 31) */ - add a, a, #0x8000 /* a += 0x8000 */ - adds t2, t2, a /* t2 += a */ - adc t, t, #0 /* t += carry */ - mov a, t2, lsr #16 /* a = t2 >> 16 */ - orr a, a, t, lsl #16 /* a |= t << 16 */ - } - return a; - } - -#endif /* __CC_ARM || __ARMCC__ */ - - -#ifdef __GNUC__ - -#if defined( __arm__ ) && \ - ( !defined( __thumb__ ) || defined( __thumb2__ ) ) && \ - !( defined( __CC_ARM ) || defined( __ARMCC__ ) ) - -#define FT_MULFIX_ASSEMBLER FT_MulFix_arm - - /* documentation is in freetype.h */ - - static __inline__ FT_Int32 - FT_MulFix_arm( FT_Int32 a, - FT_Int32 b ) - { - FT_Int32 t, t2; - - - __asm__ __volatile__ ( - "smull %1, %2, %4, %3\n\t" /* (lo=%1,hi=%2) = a*b */ - "mov %0, %2, asr #31\n\t" /* %0 = (hi >> 31) */ -#if defined( __clang__ ) && defined( __thumb2__ ) - "add.w %0, %0, #0x8000\n\t" /* %0 += 0x8000 */ -#else - "add %0, %0, #0x8000\n\t" /* %0 += 0x8000 */ -#endif - "adds %1, %1, %0\n\t" /* %1 += %0 */ - "adc %2, %2, #0\n\t" /* %2 += carry */ - "mov %0, %1, lsr #16\n\t" /* %0 = %1 >> 16 */ - "orr %0, %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */ - : "=r"(a), "=&r"(t2), "=&r"(t) - : "r"(a), "r"(b) - : "cc" ); - return a; - } - -#endif /* __arm__ && */ - /* ( __thumb2__ || !__thumb__ ) && */ - /* !( __CC_ARM || __ARMCC__ ) */ - - -#if defined( __i386__ ) - -#define FT_MULFIX_ASSEMBLER FT_MulFix_i386 - - /* documentation is in freetype.h */ - - static __inline__ FT_Int32 - FT_MulFix_i386( FT_Int32 a, - FT_Int32 b ) - { - FT_Int32 result; - - - __asm__ __volatile__ ( - "imul %%edx\n" - "movl %%edx, %%ecx\n" - "sarl $31, %%ecx\n" - "addl $0x8000, %%ecx\n" - "addl %%ecx, %%eax\n" - "adcl $0, %%edx\n" - "shrl $16, %%eax\n" - "shll $16, %%edx\n" - "addl %%edx, %%eax\n" - : "=a"(result), "=d"(b) - : "a"(a), "d"(b) - : "%ecx", "cc" ); - return result; - } - -#endif /* i386 */ - -#endif /* __GNUC__ */ - - -#ifdef _MSC_VER /* Visual C++ */ - -#ifdef _M_IX86 - -#define FT_MULFIX_ASSEMBLER FT_MulFix_i386 - - /* documentation is in freetype.h */ - - static __inline FT_Int32 - FT_MulFix_i386( FT_Int32 a, - FT_Int32 b ) - { - FT_Int32 result; - - __asm - { - mov eax, a - mov edx, b - imul edx - mov ecx, edx - sar ecx, 31 - add ecx, 8000h - add eax, ecx - adc edx, 0 - shr eax, 16 - shl edx, 16 - add eax, edx - mov result, eax - } - return result; - } - -#endif /* _M_IX86 */ - -#endif /* _MSC_VER */ - - -#if defined( __GNUC__ ) && defined( __x86_64__ ) - -#define FT_MULFIX_ASSEMBLER FT_MulFix_x86_64 - - static __inline__ FT_Int32 - FT_MulFix_x86_64( FT_Int32 a, - FT_Int32 b ) - { - /* Temporarily disable the warning that C90 doesn't support */ - /* `long long'. */ -#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 ) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wlong-long" -#endif - -#if 1 - /* Technically not an assembly fragment, but GCC does a really good */ - /* job at inlining it and generating good machine code for it. */ - long long ret, tmp; - - - ret = (long long)a * b; - tmp = ret >> 63; - ret += 0x8000 + tmp; - - return (FT_Int32)( ret >> 16 ); -#else - - /* For some reason, GCC 4.6 on Ubuntu 12.04 generates invalid machine */ - /* code from the lines below. The main issue is that `wide_a' is not */ - /* properly initialized by sign-extending `a'. Instead, the generated */ - /* machine code assumes that the register that contains `a' on input */ - /* can be used directly as a 64-bit value, which is wrong most of the */ - /* time. */ - long long wide_a = (long long)a; - long long wide_b = (long long)b; - long long result; - - - __asm__ __volatile__ ( - "imul %2, %1\n" - "mov %1, %0\n" - "sar $63, %0\n" - "lea 0x8000(%1, %0), %0\n" - "sar $16, %0\n" - : "=&r"(result), "=&r"(wide_a) - : "r"(wide_b) - : "cc" ); - - return (FT_Int32)result; -#endif - -#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 ) -#pragma GCC diagnostic pop -#endif - } - -#endif /* __GNUC__ && __x86_64__ */ - -#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */ - - -#ifdef FT_CONFIG_OPTION_INLINE_MULFIX -#ifdef FT_MULFIX_ASSEMBLER -#define FT_MulFix( a, b ) FT_MULFIX_ASSEMBLER( (FT_Int32)(a), (FT_Int32)(b) ) -#endif -#endif - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_MulDiv_No_Round */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation `(a*b)/c' */ - /* (without rounding) with maximum accuracy (it uses a 64-bit */ - /* intermediate integer whenever necessary). */ - /* */ - /* This function isn't necessarily as fast as some processor specific */ - /* operations, but is at least completely portable. */ - /* */ - /* <Input> */ - /* a :: The first multiplier. */ - /* b :: The second multiplier. */ - /* c :: The divisor. */ - /* */ - /* <Return> */ - /* The result of `(a*b)/c'. This function never traps when trying to */ - /* divide by zero; it simply returns `MaxInt' or `MinInt' depending */ - /* on the signs of `a' and `b'. */ - /* */ - FT_BASE( FT_Long ) - FT_MulDiv_No_Round( FT_Long a, - FT_Long b, - FT_Long c ); - - - /* - * A variant of FT_Matrix_Multiply which scales its result afterwards. - * The idea is that both `a' and `b' are scaled by factors of 10 so that - * the values are as precise as possible to get a correct result during - * the 64bit multiplication. Let `sa' and `sb' be the scaling factors of - * `a' and `b', respectively, then the scaling factor of the result is - * `sa*sb'. - */ - FT_BASE( void ) - FT_Matrix_Multiply_Scaled( const FT_Matrix* a, - FT_Matrix *b, - FT_Long scaling ); - - - /* - * A variant of FT_Vector_Transform. See comments for - * FT_Matrix_Multiply_Scaled. - */ - FT_BASE( void ) - FT_Vector_Transform_Scaled( FT_Vector* vector, - const FT_Matrix* matrix, - FT_Long scaling ); - - - /* - * This function normalizes a vector and returns its original length. - * The normalized vector is a 16.16 fixed-point unit vector with length - * close to 0x10000. The accuracy of the returned length is limited to - * 16 bits also. The function utilizes quick inverse square root - * approximation without divisions and square roots relying on Newton's - * iterations instead. - */ - FT_BASE( FT_UInt32 ) - FT_Vector_NormLen( FT_Vector* vector ); - - - /* - * Return -1, 0, or +1, depending on the orientation of a given corner. - * We use the Cartesian coordinate system, with positive vertical values - * going upwards. The function returns +1 if the corner turns to the - * left, -1 to the right, and 0 for undecidable cases. - */ - FT_BASE( FT_Int ) - ft_corner_orientation( FT_Pos in_x, - FT_Pos in_y, - FT_Pos out_x, - FT_Pos out_y ); - - - /* - * Return TRUE if a corner is flat or nearly flat. This is equivalent to - * saying that the corner point is close to its neighbors, or inside an - * ellipse defined by the neighbor focal points to be more precise. - */ - FT_BASE( FT_Int ) - ft_corner_is_flat( FT_Pos in_x, - FT_Pos in_y, - FT_Pos out_x, - FT_Pos out_y ); - - - /* - * Return the most significant bit index. - */ - -#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER -#if defined( __GNUC__ ) && \ - ( __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 4 ) ) - -#if FT_SIZEOF_INT == 4 - -#define FT_MSB( x ) ( 31 - __builtin_clz( x ) ) - -#elif FT_SIZEOF_LONG == 4 - -#define FT_MSB( x ) ( 31 - __builtin_clzl( x ) ) - -#endif - -#endif /* __GNUC__ */ -#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */ - -#ifndef FT_MSB - - FT_BASE( FT_Int ) - FT_MSB( FT_UInt32 z ); - -#endif - - - /* - * Return sqrt(x*x+y*y), which is the same as `FT_Vector_Length' but uses - * two fixed-point arguments instead. - */ - FT_BASE( FT_Fixed ) - FT_Hypot( FT_Fixed x, - FT_Fixed y ); - - -#if 0 - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_SqrtFixed */ - /* */ - /* <Description> */ - /* Computes the square root of a 16.16 fixed-point value. */ - /* */ - /* <Input> */ - /* x :: The value to compute the root for. */ - /* */ - /* <Return> */ - /* The result of `sqrt(x)'. */ - /* */ - /* <Note> */ - /* This function is not very fast. */ - /* */ - FT_BASE( FT_Int32 ) - FT_SqrtFixed( FT_Int32 x ); - -#endif /* 0 */ - - -#define INT_TO_F26DOT6( x ) ( (FT_Long)(x) << 6 ) -#define INT_TO_F2DOT14( x ) ( (FT_Long)(x) << 14 ) -#define INT_TO_FIXED( x ) ( (FT_Long)(x) << 16 ) -#define F2DOT14_TO_FIXED( x ) ( (FT_Long)(x) << 2 ) -#define FLOAT_TO_FIXED( x ) ( (FT_Long)( x * 65536.0 ) ) -#define FIXED_TO_INT( x ) ( FT_RoundFix( x ) >> 16 ) - -#define ROUND_F26DOT6( x ) ( x >= 0 ? ( ( (x) + 32 ) & -64 ) \ - : ( -( ( 32 - (x) ) & -64 ) ) ) - - -FT_END_HEADER - -#endif /* __FTCALC_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/ftdebug.h b/lib/osx/include/freetype/internal/ftdebug.h deleted file mode 100644 index 216c730..0000000 --- a/lib/osx/include/freetype/internal/ftdebug.h +++ /dev/null @@ -1,255 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftdebug.h */ -/* */ -/* Debugging and logging component (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/* */ -/* IMPORTANT: A description of FreeType's debugging support can be */ -/* found in `docs/DEBUG.TXT'. Read it if you need to use or */ -/* understand this code. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTDEBUG_H__ -#define __FTDEBUG_H__ - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_FREETYPE_H - - -FT_BEGIN_HEADER - - - /* force the definition of FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE */ - /* is already defined; this simplifies the following #ifdefs */ - /* */ -#ifdef FT_DEBUG_LEVEL_TRACE -#undef FT_DEBUG_LEVEL_ERROR -#define FT_DEBUG_LEVEL_ERROR -#endif - - - /*************************************************************************/ - /* */ - /* Define the trace enums as well as the trace levels array when they */ - /* are needed. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_TRACE - -#define FT_TRACE_DEF( x ) trace_ ## x , - - /* defining the enumeration */ - typedef enum FT_Trace_ - { -#include FT_INTERNAL_TRACE_H - trace_count - - } FT_Trace; - - - /* defining the array of trace levels, provided by `src/base/ftdebug.c' */ - extern int ft_trace_levels[trace_count]; - -#undef FT_TRACE_DEF - -#endif /* FT_DEBUG_LEVEL_TRACE */ - - - /*************************************************************************/ - /* */ - /* Define the FT_TRACE macro */ - /* */ - /* IMPORTANT! */ - /* */ - /* Each component must define the macro FT_COMPONENT to a valid FT_Trace */ - /* value before using any TRACE macro. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_TRACE - -#define FT_TRACE( level, varformat ) \ - do \ - { \ - if ( ft_trace_levels[FT_COMPONENT] >= level ) \ - FT_Message varformat; \ - } while ( 0 ) - -#else /* !FT_DEBUG_LEVEL_TRACE */ - -#define FT_TRACE( level, varformat ) do { } while ( 0 ) /* nothing */ - -#endif /* !FT_DEBUG_LEVEL_TRACE */ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Trace_Get_Count */ - /* */ - /* <Description> */ - /* Return the number of available trace components. */ - /* */ - /* <Return> */ - /* The number of trace components. 0 if FreeType 2 is not built with */ - /* FT_DEBUG_LEVEL_TRACE definition. */ - /* */ - /* <Note> */ - /* This function may be useful if you want to access elements of */ - /* the internal `ft_trace_levels' array by an index. */ - /* */ - FT_BASE( FT_Int ) - FT_Trace_Get_Count( void ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Trace_Get_Name */ - /* */ - /* <Description> */ - /* Return the name of a trace component. */ - /* */ - /* <Input> */ - /* The index of the trace component. */ - /* */ - /* <Return> */ - /* The name of the trace component. This is a statically allocated */ - /* C string, so do not free it after use. NULL if FreeType 2 is not */ - /* built with FT_DEBUG_LEVEL_TRACE definition. */ - /* */ - /* <Note> */ - /* Use @FT_Trace_Get_Count to get the number of available trace */ - /* components. */ - /* */ - /* This function may be useful if you want to control FreeType 2's */ - /* debug level in your application. */ - /* */ - FT_BASE( const char* ) - FT_Trace_Get_Name( FT_Int idx ); - - - /*************************************************************************/ - /* */ - /* You need two opening and closing parentheses! */ - /* */ - /* Example: FT_TRACE0(( "Value is %i", foo )) */ - /* */ - /* Output of the FT_TRACEX macros is sent to stderr. */ - /* */ - /*************************************************************************/ - -#define FT_TRACE0( varformat ) FT_TRACE( 0, varformat ) -#define FT_TRACE1( varformat ) FT_TRACE( 1, varformat ) -#define FT_TRACE2( varformat ) FT_TRACE( 2, varformat ) -#define FT_TRACE3( varformat ) FT_TRACE( 3, varformat ) -#define FT_TRACE4( varformat ) FT_TRACE( 4, varformat ) -#define FT_TRACE5( varformat ) FT_TRACE( 5, varformat ) -#define FT_TRACE6( varformat ) FT_TRACE( 6, varformat ) -#define FT_TRACE7( varformat ) FT_TRACE( 7, varformat ) - - - /*************************************************************************/ - /* */ - /* Define the FT_ERROR macro. */ - /* */ - /* Output of this macro is sent to stderr. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_ERROR - -#define FT_ERROR( varformat ) FT_Message varformat - -#else /* !FT_DEBUG_LEVEL_ERROR */ - -#define FT_ERROR( varformat ) do { } while ( 0 ) /* nothing */ - -#endif /* !FT_DEBUG_LEVEL_ERROR */ - - - /*************************************************************************/ - /* */ - /* Define the FT_ASSERT and FT_THROW macros. The call to `FT_Throw' */ - /* makes it possible to easily set a breakpoint at this function. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_ERROR - -#define FT_ASSERT( condition ) \ - do \ - { \ - if ( !( condition ) ) \ - FT_Panic( "assertion failed on line %d of file %s\n", \ - __LINE__, __FILE__ ); \ - } while ( 0 ) - -#define FT_THROW( e ) \ - ( FT_Throw( FT_ERR_CAT( FT_ERR_PREFIX, e ), \ - __LINE__, \ - __FILE__ ) | \ - FT_ERR_CAT( FT_ERR_PREFIX, e ) ) - -#else /* !FT_DEBUG_LEVEL_ERROR */ - -#define FT_ASSERT( condition ) do { } while ( 0 ) - -#define FT_THROW( e ) FT_ERR_CAT( FT_ERR_PREFIX, e ) - -#endif /* !FT_DEBUG_LEVEL_ERROR */ - - - /*************************************************************************/ - /* */ - /* Define `FT_Message' and `FT_Panic' when needed. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_ERROR - -#include "stdio.h" /* for vfprintf() */ - - /* print a message */ - FT_BASE( void ) - FT_Message( const char* fmt, - ... ); - - /* print a message and exit */ - FT_BASE( void ) - FT_Panic( const char* fmt, - ... ); - - /* report file name and line number of an error */ - FT_BASE( int ) - FT_Throw( FT_Error error, - int line, - const char* file ); - -#endif /* FT_DEBUG_LEVEL_ERROR */ - - - FT_BASE( void ) - ft_debug_init( void ); - -FT_END_HEADER - -#endif /* __FTDEBUG_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/ftdriver.h b/lib/osx/include/freetype/internal/ftdriver.h deleted file mode 100644 index 16856d3..0000000 --- a/lib/osx/include/freetype/internal/ftdriver.h +++ /dev/null @@ -1,409 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftdriver.h */ -/* */ -/* FreeType font driver interface (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTDRIVER_H__ -#define __FTDRIVER_H__ - - -#include <ft2build.h> -#include FT_MODULE_H - - -FT_BEGIN_HEADER - - - typedef FT_Error - (*FT_Face_InitFunc)( FT_Stream stream, - FT_Face face, - FT_Int typeface_index, - FT_Int num_params, - FT_Parameter* parameters ); - - typedef void - (*FT_Face_DoneFunc)( FT_Face face ); - - - typedef FT_Error - (*FT_Size_InitFunc)( FT_Size size ); - - typedef void - (*FT_Size_DoneFunc)( FT_Size size ); - - - typedef FT_Error - (*FT_Slot_InitFunc)( FT_GlyphSlot slot ); - - typedef void - (*FT_Slot_DoneFunc)( FT_GlyphSlot slot ); - - - typedef FT_Error - (*FT_Size_RequestFunc)( FT_Size size, - FT_Size_Request req ); - - typedef FT_Error - (*FT_Size_SelectFunc)( FT_Size size, - FT_ULong size_index ); - - typedef FT_Error - (*FT_Slot_LoadFunc)( FT_GlyphSlot slot, - FT_Size size, - FT_UInt glyph_index, - FT_Int32 load_flags ); - - - typedef FT_UInt - (*FT_CharMap_CharIndexFunc)( FT_CharMap charmap, - FT_Long charcode ); - - typedef FT_Long - (*FT_CharMap_CharNextFunc)( FT_CharMap charmap, - FT_Long charcode ); - - - typedef FT_Error - (*FT_Face_GetKerningFunc)( FT_Face face, - FT_UInt left_glyph, - FT_UInt right_glyph, - FT_Vector* kerning ); - - - typedef FT_Error - (*FT_Face_AttachFunc)( FT_Face face, - FT_Stream stream ); - - - typedef FT_Error - (*FT_Face_GetAdvancesFunc)( FT_Face face, - FT_UInt first, - FT_UInt count, - FT_Int32 flags, - FT_Fixed* advances ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Driver_ClassRec */ - /* */ - /* <Description> */ - /* The font driver class. This structure mostly contains pointers to */ - /* driver methods. */ - /* */ - /* <Fields> */ - /* root :: The parent module. */ - /* */ - /* face_object_size :: The size of a face object in bytes. */ - /* */ - /* size_object_size :: The size of a size object in bytes. */ - /* */ - /* slot_object_size :: The size of a glyph object in bytes. */ - /* */ - /* init_face :: The format-specific face constructor. */ - /* */ - /* done_face :: The format-specific face destructor. */ - /* */ - /* init_size :: The format-specific size constructor. */ - /* */ - /* done_size :: The format-specific size destructor. */ - /* */ - /* init_slot :: The format-specific slot constructor. */ - /* */ - /* done_slot :: The format-specific slot destructor. */ - /* */ - /* */ - /* load_glyph :: A function handle to load a glyph to a slot. */ - /* This field is mandatory! */ - /* */ - /* get_kerning :: A function handle to return the unscaled */ - /* kerning for a given pair of glyphs. Can be */ - /* set to 0 if the format doesn't support */ - /* kerning. */ - /* */ - /* attach_file :: This function handle is used to read */ - /* additional data for a face from another */ - /* file/stream. For example, this can be used to */ - /* add data from AFM or PFM files on a Type 1 */ - /* face, or a CIDMap on a CID-keyed face. */ - /* */ - /* get_advances :: A function handle used to return advance */ - /* widths of `count' glyphs (in font units), */ - /* starting at `first'. The `vertical' flag must */ - /* be set to get vertical advance heights. The */ - /* `advances' buffer is caller-allocated. */ - /* The idea of this function is to be able to */ - /* perform device-independent text layout without */ - /* loading a single glyph image. */ - /* */ - /* request_size :: A handle to a function used to request the new */ - /* character size. Can be set to 0 if the */ - /* scaling done in the base layer suffices. */ - /* */ - /* select_size :: A handle to a function used to select a new */ - /* fixed size. It is used only if */ - /* @FT_FACE_FLAG_FIXED_SIZES is set. Can be set */ - /* to 0 if the scaling done in the base layer */ - /* suffices. */ - /* <Note> */ - /* Most function pointers, with the exception of `load_glyph', can be */ - /* set to 0 to indicate a default behaviour. */ - /* */ - typedef struct FT_Driver_ClassRec_ - { - FT_Module_Class root; - - FT_Long face_object_size; - FT_Long size_object_size; - FT_Long slot_object_size; - - FT_Face_InitFunc init_face; - FT_Face_DoneFunc done_face; - - FT_Size_InitFunc init_size; - FT_Size_DoneFunc done_size; - - FT_Slot_InitFunc init_slot; - FT_Slot_DoneFunc done_slot; - - FT_Slot_LoadFunc load_glyph; - - FT_Face_GetKerningFunc get_kerning; - FT_Face_AttachFunc attach_file; - FT_Face_GetAdvancesFunc get_advances; - - /* since version 2.2 */ - FT_Size_RequestFunc request_size; - FT_Size_SelectFunc select_size; - - } FT_Driver_ClassRec, *FT_Driver_Class; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DECLARE_DRIVER */ - /* */ - /* <Description> */ - /* Used to create a forward declaration of an FT_Driver_ClassRec */ - /* struct instance. */ - /* */ - /* <Macro> */ - /* FT_DEFINE_DRIVER */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Driver_ClassRec struct. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is defined a `create' function has to be */ - /* called with a pointer where the allocated structure is returned. */ - /* And when it is no longer needed a `destroy' function needs to be */ - /* called to release that allocation. */ - /* */ - /* `fcinit.c' (ft_create_default_module_classes) already contains a */ - /* mechanism to call these functions for the default modules */ - /* described in `ftmodule.h'. */ - /* */ - /* Notice that the created `create' and `destroy' functions call */ - /* `pic_init' and `pic_free' to allow you to manually allocate and */ - /* initialize any additional global data, like a module specific */ - /* interface, and put them in the global pic container defined in */ - /* `ftpic.h'. If you don't need them just implement the functions as */ - /* empty to resolve the link error. Also the `pic_init' and */ - /* `pic_free' functions should be declared in `pic.h', to be referred */ - /* by driver definition calling `FT_DEFINE_DRIVER' in following. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro is */ - /* used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DECLARE_DRIVER( class_ ) \ - FT_CALLBACK_TABLE \ - const FT_Driver_ClassRec class_; - -#define FT_DEFINE_DRIVER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - face_object_size_, \ - size_object_size_, \ - slot_object_size_, \ - init_face_, \ - done_face_, \ - init_size_, \ - done_size_, \ - init_slot_, \ - done_slot_, \ - load_glyph_, \ - get_kerning_, \ - attach_file_, \ - get_advances_, \ - request_size_, \ - select_size_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Driver_ClassRec class_ = \ - { \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - \ - face_object_size_, \ - size_object_size_, \ - slot_object_size_, \ - \ - init_face_, \ - done_face_, \ - \ - init_size_, \ - done_size_, \ - \ - init_slot_, \ - done_slot_, \ - \ - load_glyph_, \ - \ - get_kerning_, \ - attach_file_, \ - get_advances_, \ - \ - request_size_, \ - select_size_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DECLARE_DRIVER( class_ ) FT_DECLARE_MODULE( class_ ) - -#define FT_DEFINE_DRIVER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - face_object_size_, \ - size_object_size_, \ - slot_object_size_, \ - init_face_, \ - done_face_, \ - init_size_, \ - done_size_, \ - init_slot_, \ - done_slot_, \ - load_glyph_, \ - get_kerning_, \ - attach_file_, \ - get_advances_, \ - request_size_, \ - select_size_ ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_Module_Class* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - FT_Driver_Class dclazz = (FT_Driver_Class)clazz; \ - \ - \ - class_ ## _pic_free( library ); \ - if ( dclazz ) \ - FT_FREE( dclazz ); \ - } \ - \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_Module_Class** output_class ) \ - { \ - FT_Driver_Class clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \ - return error; \ - \ - error = class_ ## _pic_init( library ); \ - if ( error ) \ - { \ - FT_FREE( clazz ); \ - return error; \ - } \ - \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - \ - clazz->face_object_size = face_object_size_; \ - clazz->size_object_size = size_object_size_; \ - clazz->slot_object_size = slot_object_size_; \ - \ - clazz->init_face = init_face_; \ - clazz->done_face = done_face_; \ - \ - clazz->init_size = init_size_; \ - clazz->done_size = done_size_; \ - \ - clazz->init_slot = init_slot_; \ - clazz->done_slot = done_slot_; \ - \ - clazz->load_glyph = load_glyph_; \ - \ - clazz->get_kerning = get_kerning_; \ - clazz->attach_file = attach_file_; \ - clazz->get_advances = get_advances_; \ - \ - clazz->request_size = request_size_; \ - clazz->select_size = select_size_; \ - \ - *output_class = (FT_Module_Class*)clazz; \ - \ - return FT_Err_Ok; \ - } - - -#endif /* FT_CONFIG_OPTION_PIC */ - -FT_END_HEADER - -#endif /* __FTDRIVER_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/ftgloadr.h b/lib/osx/include/freetype/internal/ftgloadr.h deleted file mode 100644 index 970dd70..0000000 --- a/lib/osx/include/freetype/internal/ftgloadr.h +++ /dev/null @@ -1,172 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftgloadr.h */ -/* */ -/* The FreeType glyph loader (specification). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTGLOADR_H__ -#define __FTGLOADR_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_GlyphLoader */ - /* */ - /* <Description> */ - /* The glyph loader is an internal object used to load several glyphs */ - /* together (for example, in the case of composites). */ - /* */ - /* <Note> */ - /* The glyph loader implementation is not part of the high-level API, */ - /* hence the forward structure declaration. */ - /* */ - typedef struct FT_GlyphLoaderRec_* FT_GlyphLoader ; - - -#if 0 /* moved to freetype.h in version 2.2 */ -#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS 1 -#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES 2 -#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID 4 -#define FT_SUBGLYPH_FLAG_SCALE 8 -#define FT_SUBGLYPH_FLAG_XY_SCALE 0x40 -#define FT_SUBGLYPH_FLAG_2X2 0x80 -#define FT_SUBGLYPH_FLAG_USE_MY_METRICS 0x200 -#endif - - - typedef struct FT_SubGlyphRec_ - { - FT_Int index; - FT_UShort flags; - FT_Int arg1; - FT_Int arg2; - FT_Matrix transform; - - } FT_SubGlyphRec; - - - typedef struct FT_GlyphLoadRec_ - { - FT_Outline outline; /* outline */ - FT_Vector* extra_points; /* extra points table */ - FT_Vector* extra_points2; /* second extra points table */ - FT_UInt num_subglyphs; /* number of subglyphs */ - FT_SubGlyph subglyphs; /* subglyphs */ - - } FT_GlyphLoadRec, *FT_GlyphLoad; - - - typedef struct FT_GlyphLoaderRec_ - { - FT_Memory memory; - FT_UInt max_points; - FT_UInt max_contours; - FT_UInt max_subglyphs; - FT_Bool use_extra; - - FT_GlyphLoadRec base; - FT_GlyphLoadRec current; - - void* other; /* for possible future extension? */ - - } FT_GlyphLoaderRec; - - - /* create new empty glyph loader */ - FT_BASE( FT_Error ) - FT_GlyphLoader_New( FT_Memory memory, - FT_GlyphLoader *aloader ); - - /* add an extra points table to a glyph loader */ - FT_BASE( FT_Error ) - FT_GlyphLoader_CreateExtra( FT_GlyphLoader loader ); - - /* destroy a glyph loader */ - FT_BASE( void ) - FT_GlyphLoader_Done( FT_GlyphLoader loader ); - - /* reset a glyph loader (frees everything int it) */ - FT_BASE( void ) - FT_GlyphLoader_Reset( FT_GlyphLoader loader ); - - /* rewind a glyph loader */ - FT_BASE( void ) - FT_GlyphLoader_Rewind( FT_GlyphLoader loader ); - - /* check that there is enough space to add `n_points' and `n_contours' */ - /* to the glyph loader */ - FT_BASE( FT_Error ) - FT_GlyphLoader_CheckPoints( FT_GlyphLoader loader, - FT_UInt n_points, - FT_UInt n_contours ); - - -#define FT_GLYPHLOADER_CHECK_P( _loader, _count ) \ - ( (_count) == 0 || \ - ( (FT_UInt)(_loader)->base.outline.n_points + \ - (FT_UInt)(_loader)->current.outline.n_points + \ - (FT_UInt)(_count) ) <= (_loader)->max_points ) - -#define FT_GLYPHLOADER_CHECK_C( _loader, _count ) \ - ( (_count) == 0 || \ - ( (FT_UInt)(_loader)->base.outline.n_contours + \ - (FT_UInt)(_loader)->current.outline.n_contours + \ - (FT_UInt)(_count) ) <= (_loader)->max_contours ) - -#define FT_GLYPHLOADER_CHECK_POINTS( _loader, _points, _contours ) \ - ( ( FT_GLYPHLOADER_CHECK_P( _loader, _points ) && \ - FT_GLYPHLOADER_CHECK_C( _loader, _contours ) ) \ - ? 0 \ - : FT_GlyphLoader_CheckPoints( (_loader), \ - (FT_UInt)(_points), \ - (FT_UInt)(_contours) ) ) - - - /* check that there is enough space to add `n_subs' sub-glyphs to */ - /* a glyph loader */ - FT_BASE( FT_Error ) - FT_GlyphLoader_CheckSubGlyphs( FT_GlyphLoader loader, - FT_UInt n_subs ); - - /* prepare a glyph loader, i.e. empty the current glyph */ - FT_BASE( void ) - FT_GlyphLoader_Prepare( FT_GlyphLoader loader ); - - /* add the current glyph to the base glyph */ - FT_BASE( void ) - FT_GlyphLoader_Add( FT_GlyphLoader loader ); - - /* copy points from one glyph loader to another */ - FT_BASE( FT_Error ) - FT_GlyphLoader_CopyPoints( FT_GlyphLoader target, - FT_GlyphLoader source ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTGLOADR_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/ftmemory.h b/lib/osx/include/freetype/internal/ftmemory.h deleted file mode 100644 index c0c553b..0000000 --- a/lib/osx/include/freetype/internal/ftmemory.h +++ /dev/null @@ -1,386 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmemory.h */ -/* */ -/* The FreeType memory management macros (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTMEMORY_H__ -#define __FTMEMORY_H__ - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_TYPES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_SET_ERROR */ - /* */ - /* <Description> */ - /* This macro is used to set an implicit `error' variable to a given */ - /* expression's value (usually a function call), and convert it to a */ - /* boolean which is set whenever the value is != 0. */ - /* */ -#undef FT_SET_ERROR -#define FT_SET_ERROR( expression ) \ - ( ( error = (expression) ) != 0 ) - - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** M E M O R Y ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* - * C++ refuses to handle statements like p = (void*)anything, with `p' a - * typed pointer. Since we don't have a `typeof' operator in standard - * C++, we have to use a template to emulate it. - */ - -#ifdef __cplusplus - - extern "C++" - template <typename T> inline T* - cplusplus_typeof( T*, - void *v ) - { - return static_cast <T*> ( v ); - } - -#define FT_ASSIGNP( p, val ) (p) = cplusplus_typeof( (p), (val) ) - -#else - -#define FT_ASSIGNP( p, val ) (p) = (val) - -#endif - - - -#ifdef FT_DEBUG_MEMORY - - FT_BASE( const char* ) _ft_debug_file; - FT_BASE( long ) _ft_debug_lineno; - -#define FT_DEBUG_INNER( exp ) ( _ft_debug_file = __FILE__, \ - _ft_debug_lineno = __LINE__, \ - (exp) ) - -#define FT_ASSIGNP_INNER( p, exp ) ( _ft_debug_file = __FILE__, \ - _ft_debug_lineno = __LINE__, \ - FT_ASSIGNP( p, exp ) ) - -#else /* !FT_DEBUG_MEMORY */ - -#define FT_DEBUG_INNER( exp ) (exp) -#define FT_ASSIGNP_INNER( p, exp ) FT_ASSIGNP( p, exp ) - -#endif /* !FT_DEBUG_MEMORY */ - - - /* - * The allocation functions return a pointer, and the error code - * is written to through the `p_error' parameter. See below for - * for documentation. - */ - - FT_BASE( FT_Pointer ) - ft_mem_alloc( FT_Memory memory, - FT_Long size, - FT_Error *p_error ); - - FT_BASE( FT_Pointer ) - ft_mem_qalloc( FT_Memory memory, - FT_Long size, - FT_Error *p_error ); - - FT_BASE( FT_Pointer ) - ft_mem_realloc( FT_Memory memory, - FT_Long item_size, - FT_Long cur_count, - FT_Long new_count, - void* block, - FT_Error *p_error ); - - FT_BASE( FT_Pointer ) - ft_mem_qrealloc( FT_Memory memory, - FT_Long item_size, - FT_Long cur_count, - FT_Long new_count, - void* block, - FT_Error *p_error ); - - FT_BASE( void ) - ft_mem_free( FT_Memory memory, - const void* P ); - - -#define FT_MEM_ALLOC( ptr, size ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_alloc( memory, \ - (FT_Long)(size), \ - &error ) ) - -#define FT_MEM_FREE( ptr ) \ - FT_BEGIN_STMNT \ - ft_mem_free( memory, (ptr) ); \ - (ptr) = NULL; \ - FT_END_STMNT - -#define FT_MEM_NEW( ptr ) \ - FT_MEM_ALLOC( ptr, sizeof ( *(ptr) ) ) - -#define FT_MEM_REALLOC( ptr, cursz, newsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - 1, \ - (FT_Long)(cursz), \ - (FT_Long)(newsz), \ - (ptr), \ - &error ) ) - -#define FT_MEM_QALLOC( ptr, size ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qalloc( memory, \ - (FT_Long)(size), \ - &error ) ) - -#define FT_MEM_QNEW( ptr ) \ - FT_MEM_QALLOC( ptr, sizeof ( *(ptr) ) ) - -#define FT_MEM_QREALLOC( ptr, cursz, newsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - 1, \ - (FT_Long)(cursz), \ - (FT_Long)(newsz), \ - (ptr), \ - &error ) ) - -#define FT_MEM_ALLOC_MULT( ptr, count, item_size ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - (FT_Long)(item_size), \ - 0, \ - (FT_Long)(count), \ - NULL, \ - &error ) ) - -#define FT_MEM_REALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - (FT_Long)(itmsz), \ - (FT_Long)(oldcnt), \ - (FT_Long)(newcnt), \ - (ptr), \ - &error ) ) - -#define FT_MEM_QALLOC_MULT( ptr, count, item_size ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - (FT_Long)(item_size), \ - 0, \ - (FT_Long)(count), \ - NULL, \ - &error ) ) - -#define FT_MEM_QREALLOC_MULT( ptr, oldcnt, newcnt, itmsz) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - (FT_Long)(itmsz), \ - (FT_Long)(oldcnt), \ - (FT_Long)(newcnt), \ - (ptr), \ - &error ) ) - - -#define FT_MEM_SET_ERROR( cond ) ( (cond), error != 0 ) - - -#define FT_MEM_SET( dest, byte, count ) \ - ft_memset( dest, byte, (FT_Offset)(count) ) - -#define FT_MEM_COPY( dest, source, count ) \ - ft_memcpy( dest, source, (FT_Offset)(count) ) - -#define FT_MEM_MOVE( dest, source, count ) \ - ft_memmove( dest, source, (FT_Offset)(count) ) - - -#define FT_MEM_ZERO( dest, count ) FT_MEM_SET( dest, 0, count ) - -#define FT_ZERO( p ) FT_MEM_ZERO( p, sizeof ( *(p) ) ) - - -#define FT_ARRAY_ZERO( dest, count ) \ - FT_MEM_ZERO( dest, \ - (FT_Offset)(count) * sizeof ( *(dest) ) ) - -#define FT_ARRAY_COPY( dest, source, count ) \ - FT_MEM_COPY( dest, \ - source, \ - (FT_Offset)(count) * sizeof ( *(dest) ) ) - -#define FT_ARRAY_MOVE( dest, source, count ) \ - FT_MEM_MOVE( dest, \ - source, \ - (FT_Offset)(count) * sizeof ( *(dest) ) ) - - - /* - * Return the maximum number of addressable elements in an array. - * We limit ourselves to INT_MAX, rather than UINT_MAX, to avoid - * any problems. - */ -#define FT_ARRAY_MAX( ptr ) ( FT_INT_MAX / sizeof ( *(ptr) ) ) - -#define FT_ARRAY_CHECK( ptr, count ) ( (count) <= FT_ARRAY_MAX( ptr ) ) - - - /*************************************************************************/ - /* */ - /* The following functions macros expect that their pointer argument is */ - /* _typed_ in order to automatically compute array element sizes. */ - /* */ - -#define FT_MEM_NEW_ARRAY( ptr, count ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - sizeof ( *(ptr) ), \ - 0, \ - (FT_Long)(count), \ - NULL, \ - &error ) ) - -#define FT_MEM_RENEW_ARRAY( ptr, cursz, newsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - sizeof ( *(ptr) ), \ - (FT_Long)(cursz), \ - (FT_Long)(newsz), \ - (ptr), \ - &error ) ) - -#define FT_MEM_QNEW_ARRAY( ptr, count ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - sizeof ( *(ptr) ), \ - 0, \ - (FT_Long)(count), \ - NULL, \ - &error ) ) - -#define FT_MEM_QRENEW_ARRAY( ptr, cursz, newsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - sizeof ( *(ptr) ), \ - (FT_Long)(cursz), \ - (FT_Long)(newsz), \ - (ptr), \ - &error ) ) - -#define FT_ALLOC( ptr, size ) \ - FT_MEM_SET_ERROR( FT_MEM_ALLOC( ptr, size ) ) - -#define FT_REALLOC( ptr, cursz, newsz ) \ - FT_MEM_SET_ERROR( FT_MEM_REALLOC( ptr, cursz, newsz ) ) - -#define FT_ALLOC_MULT( ptr, count, item_size ) \ - FT_MEM_SET_ERROR( FT_MEM_ALLOC_MULT( ptr, count, item_size ) ) - -#define FT_REALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \ - FT_MEM_SET_ERROR( FT_MEM_REALLOC_MULT( ptr, oldcnt, \ - newcnt, itmsz ) ) - -#define FT_QALLOC( ptr, size ) \ - FT_MEM_SET_ERROR( FT_MEM_QALLOC( ptr, size ) ) - -#define FT_QREALLOC( ptr, cursz, newsz ) \ - FT_MEM_SET_ERROR( FT_MEM_QREALLOC( ptr, cursz, newsz ) ) - -#define FT_QALLOC_MULT( ptr, count, item_size ) \ - FT_MEM_SET_ERROR( FT_MEM_QALLOC_MULT( ptr, count, item_size ) ) - -#define FT_QREALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \ - FT_MEM_SET_ERROR( FT_MEM_QREALLOC_MULT( ptr, oldcnt, \ - newcnt, itmsz ) ) - -#define FT_FREE( ptr ) FT_MEM_FREE( ptr ) - -#define FT_NEW( ptr ) FT_MEM_SET_ERROR( FT_MEM_NEW( ptr ) ) - -#define FT_NEW_ARRAY( ptr, count ) \ - FT_MEM_SET_ERROR( FT_MEM_NEW_ARRAY( ptr, count ) ) - -#define FT_RENEW_ARRAY( ptr, curcnt, newcnt ) \ - FT_MEM_SET_ERROR( FT_MEM_RENEW_ARRAY( ptr, curcnt, newcnt ) ) - -#define FT_QNEW( ptr ) \ - FT_MEM_SET_ERROR( FT_MEM_QNEW( ptr ) ) - -#define FT_QNEW_ARRAY( ptr, count ) \ - FT_MEM_SET_ERROR( FT_MEM_NEW_ARRAY( ptr, count ) ) - -#define FT_QRENEW_ARRAY( ptr, curcnt, newcnt ) \ - FT_MEM_SET_ERROR( FT_MEM_RENEW_ARRAY( ptr, curcnt, newcnt ) ) - - - FT_BASE( FT_Pointer ) - ft_mem_strdup( FT_Memory memory, - const char* str, - FT_Error *p_error ); - - FT_BASE( FT_Pointer ) - ft_mem_dup( FT_Memory memory, - const void* address, - FT_ULong size, - FT_Error *p_error ); - - -#define FT_MEM_STRDUP( dst, str ) \ - (dst) = (char*)ft_mem_strdup( memory, (const char*)(str), &error ) - -#define FT_STRDUP( dst, str ) \ - FT_MEM_SET_ERROR( FT_MEM_STRDUP( dst, str ) ) - -#define FT_MEM_DUP( dst, address, size ) \ - (dst) = ft_mem_dup( memory, (address), (FT_ULong)(size), &error ) - -#define FT_DUP( dst, address, size ) \ - FT_MEM_SET_ERROR( FT_MEM_DUP( dst, address, size ) ) - - - /* Return >= 1 if a truncation occurs. */ - /* Return 0 if the source string fits the buffer. */ - /* This is *not* the same as strlcpy(). */ - FT_BASE( FT_Int ) - ft_mem_strcpyn( char* dst, - const char* src, - FT_ULong size ); - -#define FT_STRCPYN( dst, src, size ) \ - ft_mem_strcpyn( (char*)dst, (const char*)(src), (FT_ULong)(size) ) - - /* */ - - -FT_END_HEADER - -#endif /* __FTMEMORY_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/ftobjs.h b/lib/osx/include/freetype/internal/ftobjs.h deleted file mode 100644 index 9a333fc..0000000 --- a/lib/osx/include/freetype/internal/ftobjs.h +++ /dev/null @@ -1,1574 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftobjs.h */ -/* */ -/* The FreeType private base classes (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file contains the definition of all internal FreeType classes. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTOBJS_H__ -#define __FTOBJS_H__ - -#include <ft2build.h> -#include FT_RENDER_H -#include FT_SIZES_H -#include FT_LCD_FILTER_H -#include FT_INTERNAL_MEMORY_H -#include FT_INTERNAL_GLYPH_LOADER_H -#include FT_INTERNAL_DRIVER_H -#include FT_INTERNAL_AUTOHINT_H -#include FT_INTERNAL_SERVICE_H -#include FT_INTERNAL_PIC_H - -#ifdef FT_CONFIG_OPTION_INCREMENTAL -#include FT_INCREMENTAL_H -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* Some generic definitions. */ - /* */ -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef NULL -#define NULL (void*)0 -#endif - - - /*************************************************************************/ - /* */ - /* The min and max functions missing in C. As usual, be careful not to */ - /* write things like FT_MIN( a++, b++ ) to avoid side effects. */ - /* */ -#define FT_MIN( a, b ) ( (a) < (b) ? (a) : (b) ) -#define FT_MAX( a, b ) ( (a) > (b) ? (a) : (b) ) - -#define FT_ABS( a ) ( (a) < 0 ? -(a) : (a) ) - - /* - * Approximate sqrt(x*x+y*y) using the `alpha max plus beta min' - * algorithm. We use alpha = 1, beta = 3/8, giving us results with a - * largest error less than 7% compared to the exact value. - */ -#define FT_HYPOT( x, y ) \ - ( x = FT_ABS( x ), \ - y = FT_ABS( y ), \ - x > y ? x + ( 3 * y >> 3 ) \ - : y + ( 3 * x >> 3 ) ) - - /* we use FT_TYPEOF to suppress signedness compilation warnings */ -#define FT_PAD_FLOOR( x, n ) ( (x) & ~FT_TYPEOF( x )( (n)-1 ) ) -#define FT_PAD_ROUND( x, n ) FT_PAD_FLOOR( (x) + ((n)/2), n ) -#define FT_PAD_CEIL( x, n ) FT_PAD_FLOOR( (x) + ((n)-1), n ) - -#define FT_PIX_FLOOR( x ) ( (x) & ~FT_TYPEOF( x )63 ) -#define FT_PIX_ROUND( x ) FT_PIX_FLOOR( (x) + 32 ) -#define FT_PIX_CEIL( x ) FT_PIX_FLOOR( (x) + 63 ) - - - /* - * character classification functions -- since these are used to parse - * font files, we must not use those in <ctypes.h> which are - * locale-dependent - */ -#define ft_isdigit( x ) ( ( (unsigned)(x) - '0' ) < 10U ) - -#define ft_isxdigit( x ) ( ( (unsigned)(x) - '0' ) < 10U || \ - ( (unsigned)(x) - 'a' ) < 6U || \ - ( (unsigned)(x) - 'A' ) < 6U ) - - /* the next two macros assume ASCII representation */ -#define ft_isupper( x ) ( ( (unsigned)(x) - 'A' ) < 26U ) -#define ft_islower( x ) ( ( (unsigned)(x) - 'a' ) < 26U ) - -#define ft_isalpha( x ) ( ft_isupper( x ) || ft_islower( x ) ) -#define ft_isalnum( x ) ( ft_isdigit( x ) || ft_isalpha( x ) ) - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** C H A R M A P S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - /* handle to internal charmap object */ - typedef struct FT_CMapRec_* FT_CMap; - - /* handle to charmap class structure */ - typedef const struct FT_CMap_ClassRec_* FT_CMap_Class; - - /* internal charmap object structure */ - typedef struct FT_CMapRec_ - { - FT_CharMapRec charmap; - FT_CMap_Class clazz; - - } FT_CMapRec; - - /* typecase any pointer to a charmap handle */ -#define FT_CMAP( x ) ((FT_CMap)( x )) - - /* obvious macros */ -#define FT_CMAP_PLATFORM_ID( x ) FT_CMAP( x )->charmap.platform_id -#define FT_CMAP_ENCODING_ID( x ) FT_CMAP( x )->charmap.encoding_id -#define FT_CMAP_ENCODING( x ) FT_CMAP( x )->charmap.encoding -#define FT_CMAP_FACE( x ) FT_CMAP( x )->charmap.face - - - /* class method definitions */ - typedef FT_Error - (*FT_CMap_InitFunc)( FT_CMap cmap, - FT_Pointer init_data ); - - typedef void - (*FT_CMap_DoneFunc)( FT_CMap cmap ); - - typedef FT_UInt - (*FT_CMap_CharIndexFunc)( FT_CMap cmap, - FT_UInt32 char_code ); - - typedef FT_UInt - (*FT_CMap_CharNextFunc)( FT_CMap cmap, - FT_UInt32 *achar_code ); - - typedef FT_UInt - (*FT_CMap_CharVarIndexFunc)( FT_CMap cmap, - FT_CMap unicode_cmap, - FT_UInt32 char_code, - FT_UInt32 variant_selector ); - - typedef FT_Bool - (*FT_CMap_CharVarIsDefaultFunc)( FT_CMap cmap, - FT_UInt32 char_code, - FT_UInt32 variant_selector ); - - typedef FT_UInt32 * - (*FT_CMap_VariantListFunc)( FT_CMap cmap, - FT_Memory mem ); - - typedef FT_UInt32 * - (*FT_CMap_CharVariantListFunc)( FT_CMap cmap, - FT_Memory mem, - FT_UInt32 char_code ); - - typedef FT_UInt32 * - (*FT_CMap_VariantCharListFunc)( FT_CMap cmap, - FT_Memory mem, - FT_UInt32 variant_selector ); - - - typedef struct FT_CMap_ClassRec_ - { - FT_ULong size; - FT_CMap_InitFunc init; - FT_CMap_DoneFunc done; - FT_CMap_CharIndexFunc char_index; - FT_CMap_CharNextFunc char_next; - - /* Subsequent entries are special ones for format 14 -- the variant */ - /* selector subtable which behaves like no other */ - - FT_CMap_CharVarIndexFunc char_var_index; - FT_CMap_CharVarIsDefaultFunc char_var_default; - FT_CMap_VariantListFunc variant_list; - FT_CMap_CharVariantListFunc charvariant_list; - FT_CMap_VariantCharListFunc variantchar_list; - - } FT_CMap_ClassRec; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DECLARE_CMAP_CLASS( class_ ) \ - FT_CALLBACK_TABLE const FT_CMap_ClassRec class_; - -#define FT_DEFINE_CMAP_CLASS( \ - class_, \ - size_, \ - init_, \ - done_, \ - char_index_, \ - char_next_, \ - char_var_index_, \ - char_var_default_, \ - variant_list_, \ - charvariant_list_, \ - variantchar_list_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_CMap_ClassRec class_ = \ - { \ - size_, \ - init_, \ - done_, \ - char_index_, \ - char_next_, \ - char_var_index_, \ - char_var_default_, \ - variant_list_, \ - charvariant_list_, \ - variantchar_list_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DECLARE_CMAP_CLASS( class_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_CMap_ClassRec* clazz ); - -#define FT_DEFINE_CMAP_CLASS( \ - class_, \ - size_, \ - init_, \ - done_, \ - char_index_, \ - char_next_, \ - char_var_index_, \ - char_var_default_, \ - variant_list_, \ - charvariant_list_, \ - variantchar_list_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_CMap_ClassRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->size = size_; \ - clazz->init = init_; \ - clazz->done = done_; \ - clazz->char_index = char_index_; \ - clazz->char_next = char_next_; \ - clazz->char_var_index = char_var_index_; \ - clazz->char_var_default = char_var_default_; \ - clazz->variant_list = variant_list_; \ - clazz->charvariant_list = charvariant_list_; \ - clazz->variantchar_list = variantchar_list_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /* create a new charmap and add it to charmap->face */ - FT_BASE( FT_Error ) - FT_CMap_New( FT_CMap_Class clazz, - FT_Pointer init_data, - FT_CharMap charmap, - FT_CMap *acmap ); - - /* destroy a charmap and remove it from face's list */ - FT_BASE( void ) - FT_CMap_Done( FT_CMap cmap ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Face_InternalRec */ - /* */ - /* <Description> */ - /* This structure contains the internal fields of each FT_Face */ - /* object. These fields may change between different releases of */ - /* FreeType. */ - /* */ - /* <Fields> */ - /* max_points :: */ - /* The maximum number of points used to store the vectorial outline */ - /* of any glyph in this face. If this value cannot be known in */ - /* advance, or if the face isn't scalable, this should be set to 0. */ - /* Only relevant for scalable formats. */ - /* */ - /* max_contours :: */ - /* The maximum number of contours used to store the vectorial */ - /* outline of any glyph in this face. If this value cannot be */ - /* known in advance, or if the face isn't scalable, this should be */ - /* set to 0. Only relevant for scalable formats. */ - /* */ - /* transform_matrix :: */ - /* A 2x2 matrix of 16.16 coefficients used to transform glyph */ - /* outlines after they are loaded from the font. Only used by the */ - /* convenience functions. */ - /* */ - /* transform_delta :: */ - /* A translation vector used to transform glyph outlines after they */ - /* are loaded from the font. Only used by the convenience */ - /* functions. */ - /* */ - /* transform_flags :: */ - /* Some flags used to classify the transform. Only used by the */ - /* convenience functions. */ - /* */ - /* services :: */ - /* A cache for frequently used services. It should be only */ - /* accessed with the macro `FT_FACE_LOOKUP_SERVICE'. */ - /* */ - /* incremental_interface :: */ - /* If non-null, the interface through which glyph data and metrics */ - /* are loaded incrementally for faces that do not provide all of */ - /* this data when first opened. This field exists only if */ - /* @FT_CONFIG_OPTION_INCREMENTAL is defined. */ - /* */ - /* ignore_unpatented_hinter :: */ - /* This boolean flag instructs the glyph loader to ignore the */ - /* native font hinter, if one is found. This is exclusively used */ - /* in the case when the unpatented hinter is compiled within the */ - /* library. */ - /* */ - /* refcount :: */ - /* A counter initialized to~1 at the time an @FT_Face structure is */ - /* created. @FT_Reference_Face increments this counter, and */ - /* @FT_Done_Face only destroys a face if the counter is~1, */ - /* otherwise it simply decrements it. */ - /* */ - typedef struct FT_Face_InternalRec_ - { - FT_Matrix transform_matrix; - FT_Vector transform_delta; - FT_Int transform_flags; - - FT_ServiceCacheRec services; - -#ifdef FT_CONFIG_OPTION_INCREMENTAL - FT_Incremental_InterfaceRec* incremental_interface; -#endif - - FT_Bool ignore_unpatented_hinter; - FT_Int refcount; - - } FT_Face_InternalRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Slot_InternalRec */ - /* */ - /* <Description> */ - /* This structure contains the internal fields of each FT_GlyphSlot */ - /* object. These fields may change between different releases of */ - /* FreeType. */ - /* */ - /* <Fields> */ - /* loader :: The glyph loader object used to load outlines */ - /* into the glyph slot. */ - /* */ - /* flags :: Possible values are zero or */ - /* FT_GLYPH_OWN_BITMAP. The latter indicates */ - /* that the FT_GlyphSlot structure owns the */ - /* bitmap buffer. */ - /* */ - /* glyph_transformed :: Boolean. Set to TRUE when the loaded glyph */ - /* must be transformed through a specific */ - /* font transformation. This is _not_ the same */ - /* as the face transform set through */ - /* FT_Set_Transform(). */ - /* */ - /* glyph_matrix :: The 2x2 matrix corresponding to the glyph */ - /* transformation, if necessary. */ - /* */ - /* glyph_delta :: The 2d translation vector corresponding to */ - /* the glyph transformation, if necessary. */ - /* */ - /* glyph_hints :: Format-specific glyph hints management. */ - /* */ - -#define FT_GLYPH_OWN_BITMAP 0x1U - - typedef struct FT_Slot_InternalRec_ - { - FT_GlyphLoader loader; - FT_UInt flags; - FT_Bool glyph_transformed; - FT_Matrix glyph_matrix; - FT_Vector glyph_delta; - void* glyph_hints; - - } FT_GlyphSlot_InternalRec; - - -#if 0 - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_InternalRec */ - /* */ - /* <Description> */ - /* This structure contains the internal fields of each FT_Size */ - /* object. Currently, it's empty. */ - /* */ - /*************************************************************************/ - - typedef struct FT_Size_InternalRec_ - { - /* empty */ - - } FT_Size_InternalRec; - -#endif - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** M O D U L E S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ModuleRec */ - /* */ - /* <Description> */ - /* A module object instance. */ - /* */ - /* <Fields> */ - /* clazz :: A pointer to the module's class. */ - /* */ - /* library :: A handle to the parent library object. */ - /* */ - /* memory :: A handle to the memory manager. */ - /* */ - typedef struct FT_ModuleRec_ - { - FT_Module_Class* clazz; - FT_Library library; - FT_Memory memory; - - } FT_ModuleRec; - - - /* typecast an object to an FT_Module */ -#define FT_MODULE( x ) ((FT_Module)( x )) -#define FT_MODULE_CLASS( x ) FT_MODULE( x )->clazz -#define FT_MODULE_LIBRARY( x ) FT_MODULE( x )->library -#define FT_MODULE_MEMORY( x ) FT_MODULE( x )->memory - - -#define FT_MODULE_IS_DRIVER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_FONT_DRIVER ) - -#define FT_MODULE_IS_RENDERER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_RENDERER ) - -#define FT_MODULE_IS_HINTER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_HINTER ) - -#define FT_MODULE_IS_STYLER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_STYLER ) - -#define FT_DRIVER_IS_SCALABLE( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_DRIVER_SCALABLE ) - -#define FT_DRIVER_USES_OUTLINES( x ) !( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_DRIVER_NO_OUTLINES ) - -#define FT_DRIVER_HAS_HINTER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_DRIVER_HAS_HINTER ) - -#define FT_DRIVER_HINTS_LIGHTLY( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_DRIVER_HINTS_LIGHTLY ) - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Module_Interface */ - /* */ - /* <Description> */ - /* Finds a module and returns its specific interface as a typeless */ - /* pointer. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object. */ - /* */ - /* module_name :: The module's name (as an ASCII string). */ - /* */ - /* <Return> */ - /* A module-specific interface if available, 0 otherwise. */ - /* */ - /* <Note> */ - /* You should better be familiar with FreeType internals to know */ - /* which module to look for, and what its interface is :-) */ - /* */ - FT_BASE( const void* ) - FT_Get_Module_Interface( FT_Library library, - const char* mod_name ); - - FT_BASE( FT_Pointer ) - ft_module_get_service( FT_Module module, - const char* service_id ); - - /* */ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** F A C E, S I Z E & G L Y P H S L O T O B J E C T S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - /* a few macros used to perform easy typecasts with minimal brain damage */ - -#define FT_FACE( x ) ((FT_Face)(x)) -#define FT_SIZE( x ) ((FT_Size)(x)) -#define FT_SLOT( x ) ((FT_GlyphSlot)(x)) - -#define FT_FACE_DRIVER( x ) FT_FACE( x )->driver -#define FT_FACE_LIBRARY( x ) FT_FACE_DRIVER( x )->root.library -#define FT_FACE_MEMORY( x ) FT_FACE( x )->memory -#define FT_FACE_STREAM( x ) FT_FACE( x )->stream - -#define FT_SIZE_FACE( x ) FT_SIZE( x )->face -#define FT_SLOT_FACE( x ) FT_SLOT( x )->face - -#define FT_FACE_SLOT( x ) FT_FACE( x )->glyph -#define FT_FACE_SIZE( x ) FT_FACE( x )->size - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_GlyphSlot */ - /* */ - /* <Description> */ - /* It is sometimes useful to have more than one glyph slot for a */ - /* given face object. This function is used to create additional */ - /* slots. All of them are automatically discarded when the face is */ - /* destroyed. */ - /* */ - /* <Input> */ - /* face :: A handle to a parent face object. */ - /* */ - /* <Output> */ - /* aslot :: A handle to a new glyph slot object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - FT_BASE( FT_Error ) - FT_New_GlyphSlot( FT_Face face, - FT_GlyphSlot *aslot ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_GlyphSlot */ - /* */ - /* <Description> */ - /* Destroys a given glyph slot. Remember however that all slots are */ - /* automatically destroyed with its parent. Using this function is */ - /* not always mandatory. */ - /* */ - /* <Input> */ - /* slot :: A handle to a target glyph slot. */ - /* */ - FT_BASE( void ) - FT_Done_GlyphSlot( FT_GlyphSlot slot ); - - /* */ - -#define FT_REQUEST_WIDTH( req ) \ - ( (req)->horiResolution \ - ? ( (req)->width * (FT_Pos)(req)->horiResolution + 36 ) / 72 \ - : (req)->width ) - -#define FT_REQUEST_HEIGHT( req ) \ - ( (req)->vertResolution \ - ? ( (req)->height * (FT_Pos)(req)->vertResolution + 36 ) / 72 \ - : (req)->height ) - - - /* Set the metrics according to a bitmap strike. */ - FT_BASE( void ) - FT_Select_Metrics( FT_Face face, - FT_ULong strike_index ); - - - /* Set the metrics according to a size request. */ - FT_BASE( void ) - FT_Request_Metrics( FT_Face face, - FT_Size_Request req ); - - - /* Match a size request against `available_sizes'. */ - FT_BASE( FT_Error ) - FT_Match_Size( FT_Face face, - FT_Size_Request req, - FT_Bool ignore_width, - FT_ULong* size_index ); - - - /* Use the horizontal metrics to synthesize the vertical metrics. */ - /* If `advance' is zero, it is also synthesized. */ - FT_BASE( void ) - ft_synthesize_vertical_metrics( FT_Glyph_Metrics* metrics, - FT_Pos advance ); - - - /* Free the bitmap of a given glyphslot when needed (i.e., only when it */ - /* was allocated with ft_glyphslot_alloc_bitmap). */ - FT_BASE( void ) - ft_glyphslot_free_bitmap( FT_GlyphSlot slot ); - - - /* Allocate a new bitmap buffer in a glyph slot. */ - FT_BASE( FT_Error ) - ft_glyphslot_alloc_bitmap( FT_GlyphSlot slot, - FT_ULong size ); - - - /* Set the bitmap buffer in a glyph slot to a given pointer. The buffer */ - /* will not be freed by a later call to ft_glyphslot_free_bitmap. */ - FT_BASE( void ) - ft_glyphslot_set_bitmap( FT_GlyphSlot slot, - FT_Byte* buffer ); - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** R E N D E R E R S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - -#define FT_RENDERER( x ) ((FT_Renderer)( x )) -#define FT_GLYPH( x ) ((FT_Glyph)( x )) -#define FT_BITMAP_GLYPH( x ) ((FT_BitmapGlyph)( x )) -#define FT_OUTLINE_GLYPH( x ) ((FT_OutlineGlyph)( x )) - - - typedef struct FT_RendererRec_ - { - FT_ModuleRec root; - FT_Renderer_Class* clazz; - FT_Glyph_Format glyph_format; - FT_Glyph_Class glyph_class; - - FT_Raster raster; - FT_Raster_Render_Func raster_render; - FT_Renderer_RenderFunc render; - - } FT_RendererRec; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** F O N T D R I V E R S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* typecast a module into a driver easily */ -#define FT_DRIVER( x ) ((FT_Driver)(x)) - - /* typecast a module as a driver, and get its driver class */ -#define FT_DRIVER_CLASS( x ) FT_DRIVER( x )->clazz - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_DriverRec */ - /* */ - /* <Description> */ - /* The root font driver class. A font driver is responsible for */ - /* managing and loading font files of a given format. */ - /* */ - /* <Fields> */ - /* root :: Contains the fields of the root module class. */ - /* */ - /* clazz :: A pointer to the font driver's class. Note that */ - /* this is NOT root.clazz. `class' wasn't used */ - /* as it is a reserved word in C++. */ - /* */ - /* faces_list :: The list of faces currently opened by this */ - /* driver. */ - /* */ - /* glyph_loader :: Unused. Used to be glyph loader for all faces */ - /* managed by this driver. */ - /* */ - typedef struct FT_DriverRec_ - { - FT_ModuleRec root; - FT_Driver_Class clazz; - FT_ListRec faces_list; - FT_GlyphLoader glyph_loader; - - } FT_DriverRec; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** L I B R A R I E S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* This hook is used by the TrueType debugger. It must be set to an */ - /* alternate truetype bytecode interpreter function. */ -#define FT_DEBUG_HOOK_TRUETYPE 0 - - - /* Set this debug hook to a non-null pointer to force unpatented hinting */ - /* for all faces when both TT_USE_BYTECODE_INTERPRETER and */ - /* TT_CONFIG_OPTION_UNPATENTED_HINTING are defined. This is only used */ - /* during debugging. */ -#define FT_DEBUG_HOOK_UNPATENTED_HINTING 1 - - - typedef void (*FT_Bitmap_LcdFilterFunc)( FT_Bitmap* bitmap, - FT_Render_Mode render_mode, - FT_Library library ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_LibraryRec */ - /* */ - /* <Description> */ - /* The FreeType library class. This is the root of all FreeType */ - /* data. Use FT_New_Library() to create a library object, and */ - /* FT_Done_Library() to discard it and all child objects. */ - /* */ - /* <Fields> */ - /* memory :: The library's memory object. Manages memory */ - /* allocation. */ - /* */ - /* version_major :: The major version number of the library. */ - /* */ - /* version_minor :: The minor version number of the library. */ - /* */ - /* version_patch :: The current patch level of the library. */ - /* */ - /* num_modules :: The number of modules currently registered */ - /* within this library. This is set to 0 for new */ - /* libraries. New modules are added through the */ - /* FT_Add_Module() API function. */ - /* */ - /* modules :: A table used to store handles to the currently */ - /* registered modules. Note that each font driver */ - /* contains a list of its opened faces. */ - /* */ - /* renderers :: The list of renderers currently registered */ - /* within the library. */ - /* */ - /* cur_renderer :: The current outline renderer. This is a */ - /* shortcut used to avoid parsing the list on */ - /* each call to FT_Outline_Render(). It is a */ - /* handle to the current renderer for the */ - /* FT_GLYPH_FORMAT_OUTLINE format. */ - /* */ - /* auto_hinter :: XXX */ - /* */ - /* raster_pool :: The raster object's render pool. This can */ - /* ideally be changed dynamically at run-time. */ - /* */ - /* raster_pool_size :: The size of the render pool in bytes. */ - /* */ - /* debug_hooks :: XXX */ - /* */ - /* lcd_filter :: If subpixel rendering is activated, the */ - /* selected LCD filter mode. */ - /* */ - /* lcd_extra :: If subpixel rendering is activated, the number */ - /* of extra pixels needed for the LCD filter. */ - /* */ - /* lcd_weights :: If subpixel rendering is activated, the LCD */ - /* filter weights, if any. */ - /* */ - /* lcd_filter_func :: If subpixel rendering is activated, the LCD */ - /* filtering callback function. */ - /* */ - /* pic_container :: Contains global structs and tables, instead */ - /* of defining them globallly. */ - /* */ - /* refcount :: A counter initialized to~1 at the time an */ - /* @FT_Library structure is created. */ - /* @FT_Reference_Library increments this counter, */ - /* and @FT_Done_Library only destroys a library */ - /* if the counter is~1, otherwise it simply */ - /* decrements it. */ - /* */ - typedef struct FT_LibraryRec_ - { - FT_Memory memory; /* library's memory manager */ - - FT_Int version_major; - FT_Int version_minor; - FT_Int version_patch; - - FT_UInt num_modules; - FT_Module modules[FT_MAX_MODULES]; /* module objects */ - - FT_ListRec renderers; /* list of renderers */ - FT_Renderer cur_renderer; /* current outline renderer */ - FT_Module auto_hinter; - - FT_Byte* raster_pool; /* scan-line conversion */ - /* render pool */ - FT_ULong raster_pool_size; /* size of render pool in bytes */ - - FT_DebugHook_Func debug_hooks[4]; - -#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING - FT_LcdFilter lcd_filter; - FT_Int lcd_extra; /* number of extra pixels */ - FT_Byte lcd_weights[7]; /* filter weights, if any */ - FT_Bitmap_LcdFilterFunc lcd_filter_func; /* filtering callback */ -#endif - -#ifdef FT_CONFIG_OPTION_PIC - FT_PIC_Container pic_container; -#endif - - FT_Int refcount; - - } FT_LibraryRec; - - - FT_BASE( FT_Renderer ) - FT_Lookup_Renderer( FT_Library library, - FT_Glyph_Format format, - FT_ListNode* node ); - - FT_BASE( FT_Error ) - FT_Render_Glyph_Internal( FT_Library library, - FT_GlyphSlot slot, - FT_Render_Mode render_mode ); - - typedef const char* - (*FT_Face_GetPostscriptNameFunc)( FT_Face face ); - - typedef FT_Error - (*FT_Face_GetGlyphNameFunc)( FT_Face face, - FT_UInt glyph_index, - FT_Pointer buffer, - FT_UInt buffer_max ); - - typedef FT_UInt - (*FT_Face_GetGlyphNameIndexFunc)( FT_Face face, - FT_String* glyph_name ); - - -#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Memory */ - /* */ - /* <Description> */ - /* Creates a new memory object. */ - /* */ - /* <Return> */ - /* A pointer to the new memory object. 0 in case of error. */ - /* */ - FT_BASE( FT_Memory ) - FT_New_Memory( void ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Memory */ - /* */ - /* <Description> */ - /* Discards memory manager. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory manager. */ - /* */ - FT_BASE( void ) - FT_Done_Memory( FT_Memory memory ); - -#endif /* !FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM */ - - - /* Define default raster's interface. The default raster is located in */ - /* `src/base/ftraster.c'. */ - /* */ - /* Client applications can register new rasters through the */ - /* FT_Set_Raster() API. */ - -#ifndef FT_NO_DEFAULT_RASTER - FT_EXPORT_VAR( FT_Raster_Funcs ) ft_default_raster; -#endif - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** P I C S U P P O R T ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* PIC support macros for ftimage.h */ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DEFINE_OUTLINE_FUNCS */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Outline_Funcs struct. */ - /* When FT_CONFIG_OPTION_PIC is defined an init funtion will need to */ - /* be called with a pre-allocated structure to be filled. */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_OUTLINE_FUNCS( \ - class_, \ - move_to_, \ - line_to_, \ - conic_to_, \ - cubic_to_, \ - shift_, \ - delta_ ) \ - static const FT_Outline_Funcs class_ = \ - { \ - move_to_, \ - line_to_, \ - conic_to_, \ - cubic_to_, \ - shift_, \ - delta_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_OUTLINE_FUNCS( \ - class_, \ - move_to_, \ - line_to_, \ - conic_to_, \ - cubic_to_, \ - shift_, \ - delta_ ) \ - static FT_Error \ - Init_Class_ ## class_( FT_Outline_Funcs* clazz ) \ - { \ - clazz->move_to = move_to_; \ - clazz->line_to = line_to_; \ - clazz->conic_to = conic_to_; \ - clazz->cubic_to = cubic_to_; \ - clazz->shift = shift_; \ - clazz->delta = delta_; \ - \ - return FT_Err_Ok; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DEFINE_RASTER_FUNCS */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Raster_Funcs struct. */ - /* When FT_CONFIG_OPTION_PIC is defined an init funtion will need to */ - /* be called with a pre-allocated structure to be filled. */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_RASTER_FUNCS( \ - class_, \ - glyph_format_, \ - raster_new_, \ - raster_reset_, \ - raster_set_mode_, \ - raster_render_, \ - raster_done_ ) \ - const FT_Raster_Funcs class_ = \ - { \ - glyph_format_, \ - raster_new_, \ - raster_reset_, \ - raster_set_mode_, \ - raster_render_, \ - raster_done_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_RASTER_FUNCS( \ - class_, \ - glyph_format_, \ - raster_new_, \ - raster_reset_, \ - raster_set_mode_, \ - raster_render_, \ - raster_done_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Raster_Funcs* clazz ) \ - { \ - clazz->glyph_format = glyph_format_; \ - clazz->raster_new = raster_new_; \ - clazz->raster_reset = raster_reset_; \ - clazz->raster_set_mode = raster_set_mode_; \ - clazz->raster_render = raster_render_; \ - clazz->raster_done = raster_done_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /* PIC support macros for ftrender.h */ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DEFINE_GLYPH */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Glyph_Class struct. */ - /* When FT_CONFIG_OPTION_PIC is defined an init funtion will need to */ - /* be called with a pre-allocated stcture to be filled. */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_GLYPH( \ - class_, \ - size_, \ - format_, \ - init_, \ - done_, \ - copy_, \ - transform_, \ - bbox_, \ - prepare_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Glyph_Class class_ = \ - { \ - size_, \ - format_, \ - init_, \ - done_, \ - copy_, \ - transform_, \ - bbox_, \ - prepare_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_GLYPH( \ - class_, \ - size_, \ - format_, \ - init_, \ - done_, \ - copy_, \ - transform_, \ - bbox_, \ - prepare_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Glyph_Class* clazz ) \ - { \ - clazz->glyph_size = size_; \ - clazz->glyph_format = format_; \ - clazz->glyph_init = init_; \ - clazz->glyph_done = done_; \ - clazz->glyph_copy = copy_; \ - clazz->glyph_transform = transform_; \ - clazz->glyph_bbox = bbox_; \ - clazz->glyph_prepare = prepare_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DECLARE_RENDERER */ - /* */ - /* <Description> */ - /* Used to create a forward declaration of a */ - /* FT_Renderer_Class struct instance. */ - /* */ - /* <Macro> */ - /* FT_DEFINE_RENDERER */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Renderer_Class struct. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is defined a `create' funtion will need */ - /* to be called with a pointer where the allocated structure is */ - /* returned. And when it is no longer needed a `destroy' function */ - /* needs to be called to release that allocation. */ - /* `fcinit.c' (ft_create_default_module_classes) already contains */ - /* a mechanism to call these functions for the default modules */ - /* described in `ftmodule.h'. */ - /* */ - /* Notice that the created `create' and `destroy' functions call */ - /* `pic_init' and `pic_free' to allow you to manually allocate and */ - /* initialize any additional global data, like a module specific */ - /* interface, and put them in the global pic container defined in */ - /* `ftpic.h'. If you don't need them just implement the functions as */ - /* empty to resolve the link error. Also the `pic_init' and */ - /* `pic_free' functions should be declared in `pic.h', to be referred */ - /* by the renderer definition calling `FT_DEFINE_RENDERER' in the */ - /* following. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DECLARE_RENDERER( class_ ) \ - FT_EXPORT_VAR( const FT_Renderer_Class ) class_; - -#define FT_DEFINE_RENDERER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - glyph_format_, \ - render_glyph_, \ - transform_glyph_, \ - get_glyph_cbox_, \ - set_mode_, \ - raster_class_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Renderer_Class class_ = \ - { \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - glyph_format_, \ - \ - render_glyph_, \ - transform_glyph_, \ - get_glyph_cbox_, \ - set_mode_, \ - \ - raster_class_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DECLARE_RENDERER( class_ ) FT_DECLARE_MODULE( class_ ) - -#define FT_DEFINE_RENDERER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - glyph_format_, \ - render_glyph_, \ - transform_glyph_, \ - get_glyph_cbox_, \ - set_mode_, \ - raster_class_ ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_Module_Class* clazz ) \ - { \ - FT_Renderer_Class* rclazz = (FT_Renderer_Class*)clazz; \ - FT_Memory memory = library->memory; \ - \ - \ - class_ ## _pic_free( library ); \ - if ( rclazz ) \ - FT_FREE( rclazz ); \ - } \ - \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_Module_Class** output_class ) \ - { \ - FT_Renderer_Class* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \ - return error; \ - \ - error = class_ ## _pic_init( library ); \ - if ( error ) \ - { \ - FT_FREE( clazz ); \ - return error; \ - } \ - \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - \ - clazz->glyph_format = glyph_format_; \ - \ - clazz->render_glyph = render_glyph_; \ - clazz->transform_glyph = transform_glyph_; \ - clazz->get_glyph_cbox = get_glyph_cbox_; \ - clazz->set_mode = set_mode_; \ - \ - clazz->raster_class = raster_class_; \ - \ - *output_class = (FT_Module_Class*)clazz; \ - \ - return FT_Err_Ok; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /* PIC support macros for ftmodapi.h **/ - - -#ifdef FT_CONFIG_OPTION_PIC - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Creator */ - /* */ - /* <Description> */ - /* A function used to create (allocate) a new module class object. */ - /* The object's members are initialized, but the module itself is */ - /* not. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory manager. */ - /* output_class :: Initialized with the newly allocated class. */ - /* */ - typedef FT_Error - (*FT_Module_Creator)( FT_Memory memory, - FT_Module_Class** output_class ); - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Destroyer */ - /* */ - /* <Description> */ - /* A function used to destroy (deallocate) a module class object. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory manager. */ - /* clazz :: Module class to destroy. */ - /* */ - typedef void - (*FT_Module_Destroyer)( FT_Memory memory, - FT_Module_Class* clazz ); - -#endif - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DECLARE_MODULE */ - /* */ - /* <Description> */ - /* Used to create a forward declaration of a */ - /* FT_Module_Class struct instance. */ - /* */ - /* <Macro> */ - /* FT_DEFINE_MODULE */ - /* */ - /* <Description> */ - /* Used to initialize an instance of an FT_Module_Class struct. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is defined a `create' funtion needs to */ - /* be called with a pointer where the allocated structure is */ - /* returned. And when it is no longer needed a `destroy' function */ - /* needs to be called to release that allocation. */ - /* `fcinit.c' (ft_create_default_module_classes) already contains */ - /* a mechanism to call these functions for the default modules */ - /* described in `ftmodule.h'. */ - /* */ - /* Notice that the created `create' and `destroy' functions call */ - /* `pic_init' and `pic_free' to allow you to manually allocate and */ - /* initialize any additional global data, like a module specific */ - /* interface, and put them in the global pic container defined in */ - /* `ftpic.h'. If you don't need them just implement the functions as */ - /* empty to resolve the link error. Also the `pic_init' and */ - /* `pic_free' functions should be declared in `pic.h', to be referred */ - /* by the module definition calling `FT_DEFINE_MODULE' in the */ - /* following. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ - /* <Macro> */ - /* FT_DEFINE_ROOT_MODULE */ - /* */ - /* <Description> */ - /* Used to initialize an instance of an FT_Module_Class struct inside */ - /* another struct that contains it or in a function that initializes */ - /* that containing struct. */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DECLARE_MODULE( class_ ) \ - FT_CALLBACK_TABLE \ - const FT_Module_Class class_; - -#define FT_DEFINE_ROOT_MODULE( \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - { \ - flags_, \ - size_, \ - \ - name_, \ - version_, \ - requires_, \ - \ - interface_, \ - \ - init_, \ - done_, \ - get_interface_, \ - }, - -#define FT_DEFINE_MODULE( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Module_Class class_ = \ - { \ - flags_, \ - size_, \ - \ - name_, \ - version_, \ - requires_, \ - \ - interface_, \ - \ - init_, \ - done_, \ - get_interface_, \ - }; - - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DECLARE_MODULE( class_ ) \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_Module_Class** output_class ); \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_Module_Class* clazz ); - -#define FT_DEFINE_ROOT_MODULE( \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - clazz->root.module_flags = flags_; \ - clazz->root.module_size = size_; \ - clazz->root.module_name = name_; \ - clazz->root.module_version = version_; \ - clazz->root.module_requires = requires_; \ - \ - clazz->root.module_interface = interface_; \ - \ - clazz->root.module_init = init_; \ - clazz->root.module_done = done_; \ - clazz->root.get_interface = get_interface_; - -#define FT_DEFINE_MODULE( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_Module_Class* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - class_ ## _pic_free( library ); \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_Module_Class** output_class ) \ - { \ - FT_Memory memory = library->memory; \ - FT_Module_Class* clazz = NULL; \ - FT_Error error; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \ - return error; \ - error = class_ ## _pic_init( library ); \ - if ( error ) \ - { \ - FT_FREE( clazz ); \ - return error; \ - } \ - \ - clazz->module_flags = flags_; \ - clazz->module_size = size_; \ - clazz->module_name = name_; \ - clazz->module_version = version_; \ - clazz->module_requires = requires_; \ - \ - clazz->module_interface = interface_; \ - \ - clazz->module_init = init_; \ - clazz->module_done = done_; \ - clazz->get_interface = get_interface_; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - -FT_END_HEADER - -#endif /* __FTOBJS_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/ftpic.h b/lib/osx/include/freetype/internal/ftpic.h deleted file mode 100644 index 7f9154f..0000000 --- a/lib/osx/include/freetype/internal/ftpic.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftpic.h */ -/* */ -/* The FreeType position independent code services (declaration). */ -/* */ -/* Copyright 2009-2015 by */ -/* Oran Agra and Mickey Gabel. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - /*************************************************************************/ - /* */ - /* Modules that ordinarily have const global data that need address */ - /* can instead define pointers here. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTPIC_H__ -#define __FTPIC_H__ - - -FT_BEGIN_HEADER - -#ifdef FT_CONFIG_OPTION_PIC - - typedef struct FT_PIC_Container_ - { - /* pic containers for base */ - void* base; - - /* pic containers for modules */ - void* autofit; - void* cff; - void* pshinter; - void* psnames; - void* raster; - void* sfnt; - void* smooth; - void* truetype; - - } FT_PIC_Container; - - - /* Initialize the various function tables, structs, etc. */ - /* stored in the container. */ - FT_BASE( FT_Error ) - ft_pic_container_init( FT_Library library ); - - - /* Destroy the contents of the container. */ - FT_BASE( void ) - ft_pic_container_destroy( FT_Library library ); - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - -FT_END_HEADER - -#endif /* __FTPIC_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/ftrfork.h b/lib/osx/include/freetype/internal/ftrfork.h deleted file mode 100644 index da61ca7..0000000 --- a/lib/osx/include/freetype/internal/ftrfork.h +++ /dev/null @@ -1,266 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftrfork.h */ -/* */ -/* Embedded resource forks accessor (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* Masatake YAMATO and Redhat K.K. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/***************************************************************************/ -/* Development of the code in this file is support of */ -/* Information-technology Promotion Agency, Japan. */ -/***************************************************************************/ - - -#ifndef __FTRFORK_H__ -#define __FTRFORK_H__ - - -#include <ft2build.h> -#include FT_INTERNAL_OBJECTS_H - - -FT_BEGIN_HEADER - - - /* Number of guessing rules supported in `FT_Raccess_Guess'. */ - /* Don't forget to increment the number if you add a new guessing rule. */ -#define FT_RACCESS_N_RULES 9 - - - /* A structure to describe a reference in a resource by its resource ID */ - /* and internal offset. The `POST' resource expects to be concatenated */ - /* by the order of resource IDs instead of its appearance in the file. */ - - typedef struct FT_RFork_Ref_ - { - FT_UShort res_id; - FT_Long offset; - - } FT_RFork_Ref; - -#ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK - typedef FT_Error - (*ft_raccess_guess_func)( FT_Library library, - FT_Stream stream, - char *base_file_name, - char **result_file_name, - FT_Long *result_offset ); - - typedef enum FT_RFork_Rule_ { - FT_RFork_Rule_invalid = -2, - FT_RFork_Rule_uknown, /* -1 */ - FT_RFork_Rule_apple_double, - FT_RFork_Rule_apple_single, - FT_RFork_Rule_darwin_ufs_export, - FT_RFork_Rule_darwin_newvfs, - FT_RFork_Rule_darwin_hfsplus, - FT_RFork_Rule_vfat, - FT_RFork_Rule_linux_cap, - FT_RFork_Rule_linux_double, - FT_RFork_Rule_linux_netatalk - } FT_RFork_Rule; - - /* For fast translation between rule index and rule type, - * the macros FT_RFORK_xxx should be kept consistent with - * the raccess_guess_funcs table - */ - typedef struct ft_raccess_guess_rec_ { - ft_raccess_guess_func func; - FT_RFork_Rule type; - } ft_raccess_guess_rec; - -#ifndef FT_CONFIG_OPTION_PIC - - /* this array is a storage in non-PIC mode, so ; is needed in END */ -#define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type ) \ - static const type name[] = { -#define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix ) \ - { raccess_guess_ ## func_suffix, \ - FT_RFork_Rule_ ## type_suffix }, -#define CONST_FT_RFORK_RULE_ARRAY_END }; - -#else /* FT_CONFIG_OPTION_PIC */ - - /* this array is a function in PIC mode, so no ; is needed in END */ -#define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type ) \ - void \ - FT_Init_Table_ ## name( type* storage ) \ - { \ - type* local = storage; \ - \ - \ - int i = 0; -#define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix ) \ - local[i].func = raccess_guess_ ## func_suffix; \ - local[i].type = FT_RFork_Rule_ ## type_suffix; \ - i++; -#define CONST_FT_RFORK_RULE_ARRAY_END } - -#endif /* FT_CONFIG_OPTION_PIC */ - -#endif /* FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK */ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Raccess_Guess */ - /* */ - /* <Description> */ - /* Guess a file name and offset where the actual resource fork is */ - /* stored. The macro FT_RACCESS_N_RULES holds the number of */ - /* guessing rules; the guessed result for the Nth rule is */ - /* represented as a triplet: a new file name (new_names[N]), a file */ - /* offset (offsets[N]), and an error code (errors[N]). */ - /* */ - /* <Input> */ - /* library :: */ - /* A FreeType library instance. */ - /* */ - /* stream :: */ - /* A file stream containing the resource fork. */ - /* */ - /* base_name :: */ - /* The (base) file name of the resource fork used for some */ - /* guessing rules. */ - /* */ - /* <Output> */ - /* new_names :: */ - /* An array of guessed file names in which the resource forks may */ - /* exist. If `new_names[N]' is NULL, the guessed file name is */ - /* equal to `base_name'. */ - /* */ - /* offsets :: */ - /* An array of guessed file offsets. `offsets[N]' holds the file */ - /* offset of the possible start of the resource fork in file */ - /* `new_names[N]'. */ - /* */ - /* errors :: */ - /* An array of FreeType error codes. `errors[N]' is the error */ - /* code of Nth guessing rule function. If `errors[N]' is not */ - /* FT_Err_Ok, `new_names[N]' and `offsets[N]' are meaningless. */ - /* */ - FT_BASE( void ) - FT_Raccess_Guess( FT_Library library, - FT_Stream stream, - char* base_name, - char** new_names, - FT_Long* offsets, - FT_Error* errors ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Raccess_Get_HeaderInfo */ - /* */ - /* <Description> */ - /* Get the information from the header of resource fork. The */ - /* information includes the file offset where the resource map */ - /* starts, and the file offset where the resource data starts. */ - /* `FT_Raccess_Get_DataOffsets' requires these two data. */ - /* */ - /* <Input> */ - /* library :: */ - /* A FreeType library instance. */ - /* */ - /* stream :: */ - /* A file stream containing the resource fork. */ - /* */ - /* rfork_offset :: */ - /* The file offset where the resource fork starts. */ - /* */ - /* <Output> */ - /* map_offset :: */ - /* The file offset where the resource map starts. */ - /* */ - /* rdata_pos :: */ - /* The file offset where the resource data starts. */ - /* */ - /* <Return> */ - /* FreeType error code. FT_Err_Ok means success. */ - /* */ - FT_BASE( FT_Error ) - FT_Raccess_Get_HeaderInfo( FT_Library library, - FT_Stream stream, - FT_Long rfork_offset, - FT_Long *map_offset, - FT_Long *rdata_pos ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Raccess_Get_DataOffsets */ - /* */ - /* <Description> */ - /* Get the data offsets for a tag in a resource fork. Offsets are */ - /* stored in an array because, in some cases, resources in a resource */ - /* fork have the same tag. */ - /* */ - /* <Input> */ - /* library :: */ - /* A FreeType library instance. */ - /* */ - /* stream :: */ - /* A file stream containing the resource fork. */ - /* */ - /* map_offset :: */ - /* The file offset where the resource map starts. */ - /* */ - /* rdata_pos :: */ - /* The file offset where the resource data starts. */ - /* */ - /* tag :: */ - /* The resource tag. */ - /* */ - /* sort_by_res_id :: */ - /* A Boolean to sort the fragmented resource by their ids. */ - /* The fragmented resources for `POST' resource should be sorted */ - /* to restore Type1 font properly. For `snft' resources, sorting */ - /* may induce a different order of the faces in comparison to that */ - /* by QuickDraw API. */ - /* */ - /* <Output> */ - /* offsets :: */ - /* The stream offsets for the resource data specified by `tag'. */ - /* This array is allocated by the function, so you have to call */ - /* @ft_mem_free after use. */ - /* */ - /* count :: */ - /* The length of offsets array. */ - /* */ - /* <Return> */ - /* FreeType error code. FT_Err_Ok means success. */ - /* */ - /* <Note> */ - /* Normally you should use `FT_Raccess_Get_HeaderInfo' to get the */ - /* value for `map_offset' and `rdata_pos'. */ - /* */ - FT_BASE( FT_Error ) - FT_Raccess_Get_DataOffsets( FT_Library library, - FT_Stream stream, - FT_Long map_offset, - FT_Long rdata_pos, - FT_Long tag, - FT_Bool sort_by_res_id, - FT_Long **offsets, - FT_Long *count ); - - -FT_END_HEADER - -#endif /* __FTRFORK_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/ftserv.h b/lib/osx/include/freetype/internal/ftserv.h deleted file mode 100644 index 11a0c7f..0000000 --- a/lib/osx/include/freetype/internal/ftserv.h +++ /dev/null @@ -1,763 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftserv.h */ -/* */ -/* The FreeType services (specification only). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - /*************************************************************************/ - /* */ - /* Each module can export one or more `services'. Each service is */ - /* identified by a constant string and modeled by a pointer; the latter */ - /* generally corresponds to a structure containing function pointers. */ - /* */ - /* Note that a service's data cannot be a mere function pointer because */ - /* in C it is possible that function pointers might be implemented */ - /* differently than data pointers (e.g. 48 bits instead of 32). */ - /* */ - /*************************************************************************/ - - -#ifndef __FTSERV_H__ -#define __FTSERV_H__ - - -FT_BEGIN_HEADER - - /* - * @macro: - * FT_FACE_FIND_SERVICE - * - * @description: - * This macro is used to look up a service from a face's driver module. - * - * @input: - * face :: - * The source face handle. - * - * id :: - * A string describing the service as defined in the service's - * header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to - * `multi-masters'). It is automatically prefixed with - * `FT_SERVICE_ID_'. - * - * @output: - * ptr :: - * A variable that receives the service pointer. Will be NULL - * if not found. - */ -#ifdef __cplusplus - -#define FT_FACE_FIND_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ - FT_Pointer _tmp_ = NULL; \ - FT_Pointer* _pptr_ = (FT_Pointer*)&(ptr); \ - \ - \ - if ( module->clazz->get_interface ) \ - _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \ - *_pptr_ = _tmp_; \ - FT_END_STMNT - -#else /* !C++ */ - -#define FT_FACE_FIND_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ - FT_Pointer _tmp_ = NULL; \ - \ - if ( module->clazz->get_interface ) \ - _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \ - ptr = _tmp_; \ - FT_END_STMNT - -#endif /* !C++ */ - - - /* - * @macro: - * FT_FACE_FIND_GLOBAL_SERVICE - * - * @description: - * This macro is used to look up a service from all modules. - * - * @input: - * face :: - * The source face handle. - * - * id :: - * A string describing the service as defined in the service's - * header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to - * `multi-masters'). It is automatically prefixed with - * `FT_SERVICE_ID_'. - * - * @output: - * ptr :: - * A variable that receives the service pointer. Will be NULL - * if not found. - */ -#ifdef __cplusplus - -#define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ - FT_Pointer _tmp_; \ - FT_Pointer* _pptr_ = (FT_Pointer*)&(ptr); \ - \ - \ - _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \ - *_pptr_ = _tmp_; \ - FT_END_STMNT - -#else /* !C++ */ - -#define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ - FT_Pointer _tmp_; \ - \ - \ - _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \ - ptr = _tmp_; \ - FT_END_STMNT - -#endif /* !C++ */ - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** S E R V I C E D E S C R I P T O R S *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /* - * The following structure is used to _describe_ a given service - * to the library. This is useful to build simple static service lists. - */ - typedef struct FT_ServiceDescRec_ - { - const char* serv_id; /* service name */ - const void* serv_data; /* service pointer/data */ - - } FT_ServiceDescRec; - - typedef const FT_ServiceDescRec* FT_ServiceDesc; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DEFINE_SERVICEDESCREC1 */ - /* FT_DEFINE_SERVICEDESCREC2 */ - /* FT_DEFINE_SERVICEDESCREC3 */ - /* FT_DEFINE_SERVICEDESCREC4 */ - /* FT_DEFINE_SERVICEDESCREC5 */ - /* FT_DEFINE_SERVICEDESCREC6 */ - /* FT_DEFINE_SERVICEDESCREC7 */ - /* */ - /* <Description> */ - /* Used to initialize an array of FT_ServiceDescRec structures. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is defined a `create' function needs to */ - /* be called with a pointer to return an allocated array. As soon as */ - /* it is no longer needed, a `destroy' function needs to be called to */ - /* release that allocation. */ - /* */ - /* These functions should be manually called from the `pic_init' and */ - /* `pic_free' functions of your module (see FT_DEFINE_MODULE). */ - /* */ - /* When FT_CONFIG_OPTION_PIC is not defined the array will be */ - /* allocated in the global scope (or the scope where the macro is */ - /* used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICEDESCREC1( class_, \ - serv_id_1, serv_data_1 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC2( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC3( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC4( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { serv_id_4, serv_data_4 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC5( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { serv_id_4, serv_data_4 }, \ - { serv_id_5, serv_data_5 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC6( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5, \ - serv_id_6, serv_data_6 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { serv_id_4, serv_data_4 }, \ - { serv_id_5, serv_data_5 }, \ - { serv_id_6, serv_data_6 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC7( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5, \ - serv_id_6, serv_data_6, \ - serv_id_7, serv_data_7 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { serv_id_4, serv_data_4 }, \ - { serv_id_5, serv_data_5 }, \ - { serv_id_6, serv_data_6 }, \ - { serv_id_7, serv_data_7 }, \ - { NULL, NULL } \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICEDESCREC1( class_, \ - serv_id_1, serv_data_1 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 2 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = NULL; \ - clazz[1].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC2( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 3 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = NULL; \ - clazz[2].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC3( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 4 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = NULL; \ - clazz[3].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC4( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 5 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = serv_id_4; \ - clazz[3].serv_data = serv_data_4; \ - clazz[4].serv_id = NULL; \ - clazz[4].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC5( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 6 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = serv_id_4; \ - clazz[3].serv_data = serv_data_4; \ - clazz[4].serv_id = serv_id_5; \ - clazz[4].serv_data = serv_data_5; \ - clazz[5].serv_id = NULL; \ - clazz[5].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC6( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5, \ - serv_id_6, serv_data_6 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 7 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = serv_id_4; \ - clazz[3].serv_data = serv_data_4; \ - clazz[4].serv_id = serv_id_5; \ - clazz[4].serv_data = serv_data_5; \ - clazz[5].serv_id = serv_id_6; \ - clazz[5].serv_data = serv_data_6; \ - clazz[6].serv_id = NULL; \ - clazz[6].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC7( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5, \ - serv_id_6, serv_data_6, \ - serv_id_7, serv_data_7 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 8 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = serv_id_4; \ - clazz[3].serv_data = serv_data_4; \ - clazz[4].serv_id = serv_id_5; \ - clazz[4].serv_data = serv_data_5; \ - clazz[5].serv_id = serv_id_6; \ - clazz[5].serv_data = serv_data_6; \ - clazz[6].serv_id = serv_id_7; \ - clazz[6].serv_data = serv_data_7; \ - clazz[7].serv_id = NULL; \ - clazz[7].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /* - * Parse a list of FT_ServiceDescRec descriptors and look for - * a specific service by ID. Note that the last element in the - * array must be { NULL, NULL }, and that the function should - * return NULL if the service isn't available. - * - * This function can be used by modules to implement their - * `get_service' method. - */ - FT_BASE( FT_Pointer ) - ft_service_list_lookup( FT_ServiceDesc service_descriptors, - const char* service_id ); - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** S E R V I C E S C A C H E *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /* - * This structure is used to store a cache for several frequently used - * services. It is the type of `face->internal->services'. You - * should only use FT_FACE_LOOKUP_SERVICE to access it. - * - * All fields should have the type FT_Pointer to relax compilation - * dependencies. We assume the developer isn't completely stupid. - * - * Each field must be named `service_XXXX' where `XXX' corresponds to - * the correct FT_SERVICE_ID_XXXX macro. See the definition of - * FT_FACE_LOOKUP_SERVICE below how this is implemented. - * - */ - typedef struct FT_ServiceCacheRec_ - { - FT_Pointer service_POSTSCRIPT_FONT_NAME; - FT_Pointer service_MULTI_MASTERS; - FT_Pointer service_GLYPH_DICT; - FT_Pointer service_PFR_METRICS; - FT_Pointer service_WINFNT; - - } FT_ServiceCacheRec, *FT_ServiceCache; - - - /* - * A magic number used within the services cache. - */ - - /* ensure that value `1' has the same width as a pointer */ -#define FT_SERVICE_UNAVAILABLE ((FT_Pointer)~(FT_PtrDist)1) - - - /* - * @macro: - * FT_FACE_LOOKUP_SERVICE - * - * @description: - * This macro is used to lookup a service from a face's driver module - * using its cache. - * - * @input: - * face:: - * The source face handle containing the cache. - * - * field :: - * The field name in the cache. - * - * id :: - * The service ID. - * - * @output: - * ptr :: - * A variable receiving the service data. NULL if not available. - */ -#ifdef __cplusplus - -#define FT_FACE_LOOKUP_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Pointer svc; \ - FT_Pointer* Pptr = (FT_Pointer*)&(ptr); \ - \ - \ - svc = FT_FACE( face )->internal->services. service_ ## id; \ - if ( svc == FT_SERVICE_UNAVAILABLE ) \ - svc = NULL; \ - else if ( svc == NULL ) \ - { \ - FT_FACE_FIND_SERVICE( face, svc, id ); \ - \ - FT_FACE( face )->internal->services. service_ ## id = \ - (FT_Pointer)( svc != NULL ? svc \ - : FT_SERVICE_UNAVAILABLE ); \ - } \ - *Pptr = svc; \ - FT_END_STMNT - -#else /* !C++ */ - -#define FT_FACE_LOOKUP_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Pointer svc; \ - \ - \ - svc = FT_FACE( face )->internal->services. service_ ## id; \ - if ( svc == FT_SERVICE_UNAVAILABLE ) \ - svc = NULL; \ - else if ( svc == NULL ) \ - { \ - FT_FACE_FIND_SERVICE( face, svc, id ); \ - \ - FT_FACE( face )->internal->services. service_ ## id = \ - (FT_Pointer)( svc != NULL ? svc \ - : FT_SERVICE_UNAVAILABLE ); \ - } \ - ptr = svc; \ - FT_END_STMNT - -#endif /* !C++ */ - - /* - * A macro used to define new service structure types. - */ - -#define FT_DEFINE_SERVICE( name ) \ - typedef struct FT_Service_ ## name ## Rec_ \ - FT_Service_ ## name ## Rec ; \ - typedef struct FT_Service_ ## name ## Rec_ \ - const * FT_Service_ ## name ; \ - struct FT_Service_ ## name ## Rec_ - - /* */ - - /* - * The header files containing the services. - */ - -#define FT_SERVICE_BDF_H <freetype/internal/services/svbdf.h> -#define FT_SERVICE_CID_H <freetype/internal/services/svcid.h> -#define FT_SERVICE_GLYPH_DICT_H <freetype/internal/services/svgldict.h> -#define FT_SERVICE_GX_VALIDATE_H <freetype/internal/services/svgxval.h> -#define FT_SERVICE_KERNING_H <freetype/internal/services/svkern.h> -#define FT_SERVICE_MULTIPLE_MASTERS_H <freetype/internal/services/svmm.h> -#define FT_SERVICE_OPENTYPE_VALIDATE_H <freetype/internal/services/svotval.h> -#define FT_SERVICE_PFR_H <freetype/internal/services/svpfr.h> -#define FT_SERVICE_POSTSCRIPT_CMAPS_H <freetype/internal/services/svpscmap.h> -#define FT_SERVICE_POSTSCRIPT_INFO_H <freetype/internal/services/svpsinfo.h> -#define FT_SERVICE_POSTSCRIPT_NAME_H <freetype/internal/services/svpostnm.h> -#define FT_SERVICE_PROPERTIES_H <freetype/internal/services/svprop.h> -#define FT_SERVICE_SFNT_H <freetype/internal/services/svsfnt.h> -#define FT_SERVICE_TRUETYPE_ENGINE_H <freetype/internal/services/svtteng.h> -#define FT_SERVICE_TT_CMAP_H <freetype/internal/services/svttcmap.h> -#define FT_SERVICE_WINFNT_H <freetype/internal/services/svwinfnt.h> -#define FT_SERVICE_FONT_FORMAT_H <freetype/internal/services/svfntfmt.h> -#define FT_SERVICE_TRUETYPE_GLYF_H <freetype/internal/services/svttglyf.h> - - /* */ - -FT_END_HEADER - -#endif /* __FTSERV_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/ftstream.h b/lib/osx/include/freetype/internal/ftstream.h deleted file mode 100644 index 384e5df..0000000 --- a/lib/osx/include/freetype/internal/ftstream.h +++ /dev/null @@ -1,536 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftstream.h */ -/* */ -/* Stream handling (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTSTREAM_H__ -#define __FTSTREAM_H__ - - -#include <ft2build.h> -#include FT_SYSTEM_H -#include FT_INTERNAL_OBJECTS_H - - -FT_BEGIN_HEADER - - - /* format of an 8-bit frame_op value: */ - /* */ - /* bit 76543210 */ - /* xxxxxxes */ - /* */ - /* s is set to 1 if the value is signed. */ - /* e is set to 1 if the value is little-endian. */ - /* xxx is a command. */ - -#define FT_FRAME_OP_SHIFT 2 -#define FT_FRAME_OP_SIGNED 1 -#define FT_FRAME_OP_LITTLE 2 -#define FT_FRAME_OP_COMMAND( x ) ( x >> FT_FRAME_OP_SHIFT ) - -#define FT_MAKE_FRAME_OP( command, little, sign ) \ - ( ( command << FT_FRAME_OP_SHIFT ) | ( little << 1 ) | sign ) - -#define FT_FRAME_OP_END 0 -#define FT_FRAME_OP_START 1 /* start a new frame */ -#define FT_FRAME_OP_BYTE 2 /* read 1-byte value */ -#define FT_FRAME_OP_SHORT 3 /* read 2-byte value */ -#define FT_FRAME_OP_LONG 4 /* read 4-byte value */ -#define FT_FRAME_OP_OFF3 5 /* read 3-byte value */ -#define FT_FRAME_OP_BYTES 6 /* read a bytes sequence */ - - - typedef enum FT_Frame_Op_ - { - ft_frame_end = 0, - ft_frame_start = FT_MAKE_FRAME_OP( FT_FRAME_OP_START, 0, 0 ), - - ft_frame_byte = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE, 0, 0 ), - ft_frame_schar = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE, 0, 1 ), - - ft_frame_ushort_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 0 ), - ft_frame_short_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 1 ), - ft_frame_ushort_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 0 ), - ft_frame_short_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 1 ), - - ft_frame_ulong_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 0 ), - ft_frame_long_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 1 ), - ft_frame_ulong_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 1, 0 ), - ft_frame_long_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 1, 1 ), - - ft_frame_uoff3_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 0, 0 ), - ft_frame_off3_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 0, 1 ), - ft_frame_uoff3_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 0 ), - ft_frame_off3_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 1 ), - - ft_frame_bytes = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTES, 0, 0 ), - ft_frame_skip = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTES, 0, 1 ) - - } FT_Frame_Op; - - - typedef struct FT_Frame_Field_ - { - FT_Byte value; - FT_Byte size; - FT_UShort offset; - - } FT_Frame_Field; - - - /* Construct an FT_Frame_Field out of a structure type and a field name. */ - /* The structure type must be set in the FT_STRUCTURE macro before */ - /* calling the FT_FRAME_START() macro. */ - /* */ -#define FT_FIELD_SIZE( f ) \ - (FT_Byte)sizeof ( ((FT_STRUCTURE*)0)->f ) - -#define FT_FIELD_SIZE_DELTA( f ) \ - (FT_Byte)sizeof ( ((FT_STRUCTURE*)0)->f[0] ) - -#define FT_FIELD_OFFSET( f ) \ - (FT_UShort)( offsetof( FT_STRUCTURE, f ) ) - -#define FT_FRAME_FIELD( frame_op, field ) \ - { \ - frame_op, \ - FT_FIELD_SIZE( field ), \ - FT_FIELD_OFFSET( field ) \ - } - -#define FT_MAKE_EMPTY_FIELD( frame_op ) { frame_op, 0, 0 } - -#define FT_FRAME_START( size ) { ft_frame_start, 0, size } -#define FT_FRAME_END { ft_frame_end, 0, 0 } - -#define FT_FRAME_LONG( f ) FT_FRAME_FIELD( ft_frame_long_be, f ) -#define FT_FRAME_ULONG( f ) FT_FRAME_FIELD( ft_frame_ulong_be, f ) -#define FT_FRAME_SHORT( f ) FT_FRAME_FIELD( ft_frame_short_be, f ) -#define FT_FRAME_USHORT( f ) FT_FRAME_FIELD( ft_frame_ushort_be, f ) -#define FT_FRAME_OFF3( f ) FT_FRAME_FIELD( ft_frame_off3_be, f ) -#define FT_FRAME_UOFF3( f ) FT_FRAME_FIELD( ft_frame_uoff3_be, f ) -#define FT_FRAME_BYTE( f ) FT_FRAME_FIELD( ft_frame_byte, f ) -#define FT_FRAME_CHAR( f ) FT_FRAME_FIELD( ft_frame_schar, f ) - -#define FT_FRAME_LONG_LE( f ) FT_FRAME_FIELD( ft_frame_long_le, f ) -#define FT_FRAME_ULONG_LE( f ) FT_FRAME_FIELD( ft_frame_ulong_le, f ) -#define FT_FRAME_SHORT_LE( f ) FT_FRAME_FIELD( ft_frame_short_le, f ) -#define FT_FRAME_USHORT_LE( f ) FT_FRAME_FIELD( ft_frame_ushort_le, f ) -#define FT_FRAME_OFF3_LE( f ) FT_FRAME_FIELD( ft_frame_off3_le, f ) -#define FT_FRAME_UOFF3_LE( f ) FT_FRAME_FIELD( ft_frame_uoff3_le, f ) - -#define FT_FRAME_SKIP_LONG { ft_frame_long_be, 0, 0 } -#define FT_FRAME_SKIP_SHORT { ft_frame_short_be, 0, 0 } -#define FT_FRAME_SKIP_BYTE { ft_frame_byte, 0, 0 } - -#define FT_FRAME_BYTES( field, count ) \ - { \ - ft_frame_bytes, \ - count, \ - FT_FIELD_OFFSET( field ) \ - } - -#define FT_FRAME_SKIP_BYTES( count ) { ft_frame_skip, count, 0 } - - - /*************************************************************************/ - /* */ - /* Integer extraction macros -- the `buffer' parameter must ALWAYS be of */ - /* type `char*' or equivalent (1-byte elements). */ - /* */ - -#define FT_BYTE_( p, i ) ( ((const FT_Byte*)(p))[(i)] ) - -#define FT_INT16( x ) ( (FT_Int16)(x) ) -#define FT_UINT16( x ) ( (FT_UInt16)(x) ) -#define FT_INT32( x ) ( (FT_Int32)(x) ) -#define FT_UINT32( x ) ( (FT_UInt32)(x) ) - - -#define FT_BYTE_U16( p, i, s ) ( FT_UINT16( FT_BYTE_( p, i ) ) << (s) ) -#define FT_BYTE_U32( p, i, s ) ( FT_UINT32( FT_BYTE_( p, i ) ) << (s) ) - - -#define FT_PEEK_SHORT( p ) FT_INT16( FT_BYTE_U16( p, 0, 8) | \ - FT_BYTE_U16( p, 1, 0) ) - -#define FT_PEEK_USHORT( p ) FT_UINT16( FT_BYTE_U16( p, 0, 8 ) | \ - FT_BYTE_U16( p, 1, 0 ) ) - -#define FT_PEEK_LONG( p ) FT_INT32( FT_BYTE_U32( p, 0, 24 ) | \ - FT_BYTE_U32( p, 1, 16 ) | \ - FT_BYTE_U32( p, 2, 8 ) | \ - FT_BYTE_U32( p, 3, 0 ) ) - -#define FT_PEEK_ULONG( p ) FT_UINT32( FT_BYTE_U32( p, 0, 24 ) | \ - FT_BYTE_U32( p, 1, 16 ) | \ - FT_BYTE_U32( p, 2, 8 ) | \ - FT_BYTE_U32( p, 3, 0 ) ) - -#define FT_PEEK_OFF3( p ) FT_INT32( FT_BYTE_U32( p, 0, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 2, 0 ) ) - -#define FT_PEEK_UOFF3( p ) FT_UINT32( FT_BYTE_U32( p, 0, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 2, 0 ) ) - -#define FT_PEEK_SHORT_LE( p ) FT_INT16( FT_BYTE_U16( p, 1, 8 ) | \ - FT_BYTE_U16( p, 0, 0 ) ) - -#define FT_PEEK_USHORT_LE( p ) FT_UINT16( FT_BYTE_U16( p, 1, 8 ) | \ - FT_BYTE_U16( p, 0, 0 ) ) - -#define FT_PEEK_LONG_LE( p ) FT_INT32( FT_BYTE_U32( p, 3, 24 ) | \ - FT_BYTE_U32( p, 2, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 0, 0 ) ) - -#define FT_PEEK_ULONG_LE( p ) FT_UINT32( FT_BYTE_U32( p, 3, 24 ) | \ - FT_BYTE_U32( p, 2, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 0, 0 ) ) - -#define FT_PEEK_OFF3_LE( p ) FT_INT32( FT_BYTE_U32( p, 2, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 0, 0 ) ) - -#define FT_PEEK_UOFF3_LE( p ) FT_UINT32( FT_BYTE_U32( p, 2, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 0, 0 ) ) - - -#define FT_NEXT_CHAR( buffer ) \ - ( (signed char)*buffer++ ) - -#define FT_NEXT_BYTE( buffer ) \ - ( (unsigned char)*buffer++ ) - -#define FT_NEXT_SHORT( buffer ) \ - ( (short)( buffer += 2, FT_PEEK_SHORT( buffer - 2 ) ) ) - -#define FT_NEXT_USHORT( buffer ) \ - ( (unsigned short)( buffer += 2, FT_PEEK_USHORT( buffer - 2 ) ) ) - -#define FT_NEXT_OFF3( buffer ) \ - ( (long)( buffer += 3, FT_PEEK_OFF3( buffer - 3 ) ) ) - -#define FT_NEXT_UOFF3( buffer ) \ - ( (unsigned long)( buffer += 3, FT_PEEK_UOFF3( buffer - 3 ) ) ) - -#define FT_NEXT_LONG( buffer ) \ - ( (long)( buffer += 4, FT_PEEK_LONG( buffer - 4 ) ) ) - -#define FT_NEXT_ULONG( buffer ) \ - ( (unsigned long)( buffer += 4, FT_PEEK_ULONG( buffer - 4 ) ) ) - - -#define FT_NEXT_SHORT_LE( buffer ) \ - ( (short)( buffer += 2, FT_PEEK_SHORT_LE( buffer - 2 ) ) ) - -#define FT_NEXT_USHORT_LE( buffer ) \ - ( (unsigned short)( buffer += 2, FT_PEEK_USHORT_LE( buffer - 2 ) ) ) - -#define FT_NEXT_OFF3_LE( buffer ) \ - ( (long)( buffer += 3, FT_PEEK_OFF3_LE( buffer - 3 ) ) ) - -#define FT_NEXT_UOFF3_LE( buffer ) \ - ( (unsigned long)( buffer += 3, FT_PEEK_UOFF3_LE( buffer - 3 ) ) ) - -#define FT_NEXT_LONG_LE( buffer ) \ - ( (long)( buffer += 4, FT_PEEK_LONG_LE( buffer - 4 ) ) ) - -#define FT_NEXT_ULONG_LE( buffer ) \ - ( (unsigned long)( buffer += 4, FT_PEEK_ULONG_LE( buffer - 4 ) ) ) - - - /*************************************************************************/ - /* */ - /* Each GET_xxxx() macro uses an implicit `stream' variable. */ - /* */ -#if 0 -#define FT_GET_MACRO( type ) FT_NEXT_ ## type ( stream->cursor ) - -#define FT_GET_CHAR() FT_GET_MACRO( CHAR ) -#define FT_GET_BYTE() FT_GET_MACRO( BYTE ) -#define FT_GET_SHORT() FT_GET_MACRO( SHORT ) -#define FT_GET_USHORT() FT_GET_MACRO( USHORT ) -#define FT_GET_OFF3() FT_GET_MACRO( OFF3 ) -#define FT_GET_UOFF3() FT_GET_MACRO( UOFF3 ) -#define FT_GET_LONG() FT_GET_MACRO( LONG ) -#define FT_GET_ULONG() FT_GET_MACRO( ULONG ) -#define FT_GET_TAG4() FT_GET_MACRO( ULONG ) - -#define FT_GET_SHORT_LE() FT_GET_MACRO( SHORT_LE ) -#define FT_GET_USHORT_LE() FT_GET_MACRO( USHORT_LE ) -#define FT_GET_LONG_LE() FT_GET_MACRO( LONG_LE ) -#define FT_GET_ULONG_LE() FT_GET_MACRO( ULONG_LE ) - -#else -#define FT_GET_MACRO( func, type ) ( (type)func( stream ) ) - -#define FT_GET_CHAR() FT_GET_MACRO( FT_Stream_GetChar, FT_Char ) -#define FT_GET_BYTE() FT_GET_MACRO( FT_Stream_GetChar, FT_Byte ) -#define FT_GET_SHORT() FT_GET_MACRO( FT_Stream_GetUShort, FT_Short ) -#define FT_GET_USHORT() FT_GET_MACRO( FT_Stream_GetUShort, FT_UShort ) -#define FT_GET_OFF3() FT_GET_MACRO( FT_Stream_GetUOffset, FT_Long ) -#define FT_GET_UOFF3() FT_GET_MACRO( FT_Stream_GetUOffset, FT_ULong ) -#define FT_GET_LONG() FT_GET_MACRO( FT_Stream_GetULong, FT_Long ) -#define FT_GET_ULONG() FT_GET_MACRO( FT_Stream_GetULong, FT_ULong ) -#define FT_GET_TAG4() FT_GET_MACRO( FT_Stream_GetULong, FT_ULong ) - -#define FT_GET_SHORT_LE() FT_GET_MACRO( FT_Stream_GetUShortLE, FT_Short ) -#define FT_GET_USHORT_LE() FT_GET_MACRO( FT_Stream_GetUShortLE, FT_UShort ) -#define FT_GET_LONG_LE() FT_GET_MACRO( FT_Stream_GetULongLE, FT_Long ) -#define FT_GET_ULONG_LE() FT_GET_MACRO( FT_Stream_GetULongLE, FT_ULong ) -#endif - -#define FT_READ_MACRO( func, type, var ) \ - ( var = (type)func( stream, &error ), \ - error != FT_Err_Ok ) - -#define FT_READ_BYTE( var ) FT_READ_MACRO( FT_Stream_ReadChar, FT_Byte, var ) -#define FT_READ_CHAR( var ) FT_READ_MACRO( FT_Stream_ReadChar, FT_Char, var ) -#define FT_READ_SHORT( var ) FT_READ_MACRO( FT_Stream_ReadUShort, FT_Short, var ) -#define FT_READ_USHORT( var ) FT_READ_MACRO( FT_Stream_ReadUShort, FT_UShort, var ) -#define FT_READ_OFF3( var ) FT_READ_MACRO( FT_Stream_ReadUOffset, FT_Long, var ) -#define FT_READ_UOFF3( var ) FT_READ_MACRO( FT_Stream_ReadUOffset, FT_ULong, var ) -#define FT_READ_LONG( var ) FT_READ_MACRO( FT_Stream_ReadULong, FT_Long, var ) -#define FT_READ_ULONG( var ) FT_READ_MACRO( FT_Stream_ReadULong, FT_ULong, var ) - -#define FT_READ_SHORT_LE( var ) FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_Short, var ) -#define FT_READ_USHORT_LE( var ) FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_UShort, var ) -#define FT_READ_LONG_LE( var ) FT_READ_MACRO( FT_Stream_ReadULongLE, FT_Long, var ) -#define FT_READ_ULONG_LE( var ) FT_READ_MACRO( FT_Stream_ReadULongLE, FT_ULong, var ) - - -#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM - - /* initialize a stream for reading a regular system stream */ - FT_BASE( FT_Error ) - FT_Stream_Open( FT_Stream stream, - const char* filepathname ); - -#endif /* FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM */ - - - /* create a new (input) stream from an FT_Open_Args structure */ - FT_BASE( FT_Error ) - FT_Stream_New( FT_Library library, - const FT_Open_Args* args, - FT_Stream *astream ); - - /* free a stream */ - FT_BASE( void ) - FT_Stream_Free( FT_Stream stream, - FT_Int external ); - - /* initialize a stream for reading in-memory data */ - FT_BASE( void ) - FT_Stream_OpenMemory( FT_Stream stream, - const FT_Byte* base, - FT_ULong size ); - - /* close a stream (does not destroy the stream structure) */ - FT_BASE( void ) - FT_Stream_Close( FT_Stream stream ); - - - /* seek within a stream. position is relative to start of stream */ - FT_BASE( FT_Error ) - FT_Stream_Seek( FT_Stream stream, - FT_ULong pos ); - - /* skip bytes in a stream */ - FT_BASE( FT_Error ) - FT_Stream_Skip( FT_Stream stream, - FT_Long distance ); - - /* return current stream position */ - FT_BASE( FT_ULong ) - FT_Stream_Pos( FT_Stream stream ); - - /* read bytes from a stream into a user-allocated buffer, returns an */ - /* error if not all bytes could be read. */ - FT_BASE( FT_Error ) - FT_Stream_Read( FT_Stream stream, - FT_Byte* buffer, - FT_ULong count ); - - /* read bytes from a stream at a given position */ - FT_BASE( FT_Error ) - FT_Stream_ReadAt( FT_Stream stream, - FT_ULong pos, - FT_Byte* buffer, - FT_ULong count ); - - /* try to read bytes at the end of a stream; return number of bytes */ - /* really available */ - FT_BASE( FT_ULong ) - FT_Stream_TryRead( FT_Stream stream, - FT_Byte* buffer, - FT_ULong count ); - - /* Enter a frame of `count' consecutive bytes in a stream. Returns an */ - /* error if the frame could not be read/accessed. The caller can use */ - /* the FT_Stream_Get_XXX functions to retrieve frame data without */ - /* error checks. */ - /* */ - /* You must _always_ call FT_Stream_ExitFrame() once you have entered */ - /* a stream frame! */ - /* */ - FT_BASE( FT_Error ) - FT_Stream_EnterFrame( FT_Stream stream, - FT_ULong count ); - - /* exit a stream frame */ - FT_BASE( void ) - FT_Stream_ExitFrame( FT_Stream stream ); - - /* Extract a stream frame. If the stream is disk-based, a heap block */ - /* is allocated and the frame bytes are read into it. If the stream */ - /* is memory-based, this function simply set a pointer to the data. */ - /* */ - /* Useful to optimize access to memory-based streams transparently. */ - /* */ - /* All extracted frames must be `freed' with a call to the function */ - /* FT_Stream_ReleaseFrame(). */ - /* */ - FT_BASE( FT_Error ) - FT_Stream_ExtractFrame( FT_Stream stream, - FT_ULong count, - FT_Byte** pbytes ); - - /* release an extract frame (see FT_Stream_ExtractFrame) */ - FT_BASE( void ) - FT_Stream_ReleaseFrame( FT_Stream stream, - FT_Byte** pbytes ); - - /* read a byte from an entered frame */ - FT_BASE( FT_Char ) - FT_Stream_GetChar( FT_Stream stream ); - - /* read a 16-bit big-endian unsigned integer from an entered frame */ - FT_BASE( FT_UShort ) - FT_Stream_GetUShort( FT_Stream stream ); - - /* read a 24-bit big-endian unsigned integer from an entered frame */ - FT_BASE( FT_ULong ) - FT_Stream_GetUOffset( FT_Stream stream ); - - /* read a 32-bit big-endian unsigned integer from an entered frame */ - FT_BASE( FT_ULong ) - FT_Stream_GetULong( FT_Stream stream ); - - /* read a 16-bit little-endian unsigned integer from an entered frame */ - FT_BASE( FT_UShort ) - FT_Stream_GetUShortLE( FT_Stream stream ); - - /* read a 32-bit little-endian unsigned integer from an entered frame */ - FT_BASE( FT_ULong ) - FT_Stream_GetULongLE( FT_Stream stream ); - - - /* read a byte from a stream */ - FT_BASE( FT_Char ) - FT_Stream_ReadChar( FT_Stream stream, - FT_Error* error ); - - /* read a 16-bit big-endian unsigned integer from a stream */ - FT_BASE( FT_UShort ) - FT_Stream_ReadUShort( FT_Stream stream, - FT_Error* error ); - - /* read a 24-bit big-endian unsigned integer from a stream */ - FT_BASE( FT_ULong ) - FT_Stream_ReadUOffset( FT_Stream stream, - FT_Error* error ); - - /* read a 32-bit big-endian integer from a stream */ - FT_BASE( FT_ULong ) - FT_Stream_ReadULong( FT_Stream stream, - FT_Error* error ); - - /* read a 16-bit little-endian unsigned integer from a stream */ - FT_BASE( FT_UShort ) - FT_Stream_ReadUShortLE( FT_Stream stream, - FT_Error* error ); - - /* read a 32-bit little-endian unsigned integer from a stream */ - FT_BASE( FT_ULong ) - FT_Stream_ReadULongLE( FT_Stream stream, - FT_Error* error ); - - /* Read a structure from a stream. The structure must be described */ - /* by an array of FT_Frame_Field records. */ - FT_BASE( FT_Error ) - FT_Stream_ReadFields( FT_Stream stream, - const FT_Frame_Field* fields, - void* structure ); - - -#define FT_STREAM_POS() \ - FT_Stream_Pos( stream ) - -#define FT_STREAM_SEEK( position ) \ - FT_SET_ERROR( FT_Stream_Seek( stream, \ - (FT_ULong)(position) ) ) - -#define FT_STREAM_SKIP( distance ) \ - FT_SET_ERROR( FT_Stream_Skip( stream, \ - (FT_Long)(distance) ) ) - -#define FT_STREAM_READ( buffer, count ) \ - FT_SET_ERROR( FT_Stream_Read( stream, \ - (FT_Byte*)(buffer), \ - (FT_ULong)(count) ) ) - -#define FT_STREAM_READ_AT( position, buffer, count ) \ - FT_SET_ERROR( FT_Stream_ReadAt( stream, \ - (FT_ULong)(position), \ - (FT_Byte*)buffer, \ - (FT_ULong)(count) ) ) - -#define FT_STREAM_READ_FIELDS( fields, object ) \ - FT_SET_ERROR( FT_Stream_ReadFields( stream, fields, object ) ) - - -#define FT_FRAME_ENTER( size ) \ - FT_SET_ERROR( \ - FT_DEBUG_INNER( FT_Stream_EnterFrame( stream, \ - (FT_ULong)(size) ) ) ) - -#define FT_FRAME_EXIT() \ - FT_DEBUG_INNER( FT_Stream_ExitFrame( stream ) ) - -#define FT_FRAME_EXTRACT( size, bytes ) \ - FT_SET_ERROR( \ - FT_DEBUG_INNER( FT_Stream_ExtractFrame( stream, \ - (FT_ULong)(size), \ - (FT_Byte**)&(bytes) ) ) ) - -#define FT_FRAME_RELEASE( bytes ) \ - FT_DEBUG_INNER( FT_Stream_ReleaseFrame( stream, \ - (FT_Byte**)&(bytes) ) ) - - -FT_END_HEADER - -#endif /* __FTSTREAM_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/fttrace.h b/lib/osx/include/freetype/internal/fttrace.h deleted file mode 100644 index 9d28d21..0000000 --- a/lib/osx/include/freetype/internal/fttrace.h +++ /dev/null @@ -1,154 +0,0 @@ -/***************************************************************************/ -/* */ -/* fttrace.h */ -/* */ -/* Tracing handling (specification only). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /* definitions of trace levels for FreeType 2 */ - - /* the first level must always be `trace_any' */ -FT_TRACE_DEF( any ) - - /* base components */ -FT_TRACE_DEF( calc ) /* calculations (ftcalc.c) */ -FT_TRACE_DEF( memory ) /* memory manager (ftobjs.c) */ -FT_TRACE_DEF( stream ) /* stream manager (ftstream.c) */ -FT_TRACE_DEF( io ) /* i/o interface (ftsystem.c) */ -FT_TRACE_DEF( list ) /* list management (ftlist.c) */ -FT_TRACE_DEF( init ) /* initialization (ftinit.c) */ -FT_TRACE_DEF( objs ) /* base objects (ftobjs.c) */ -FT_TRACE_DEF( outline ) /* outline management (ftoutln.c) */ -FT_TRACE_DEF( glyph ) /* glyph management (ftglyph.c) */ -FT_TRACE_DEF( gloader ) /* glyph loader (ftgloadr.c) */ - -FT_TRACE_DEF( raster ) /* monochrome rasterizer (ftraster.c) */ -FT_TRACE_DEF( smooth ) /* anti-aliasing raster (ftgrays.c) */ -FT_TRACE_DEF( mm ) /* MM interface (ftmm.c) */ -FT_TRACE_DEF( raccess ) /* resource fork accessor (ftrfork.c) */ -FT_TRACE_DEF( synth ) /* bold/slant synthesizer (ftsynth.c) */ -FT_TRACE_DEF( bitmap ) /* bitmap checksum (ftobjs.c) */ - - /* Cache sub-system */ -FT_TRACE_DEF( cache ) /* cache sub-system (ftcache.c, etc.) */ - - /* SFNT driver components */ -FT_TRACE_DEF( sfdriver ) /* SFNT font driver (sfdriver.c) */ -FT_TRACE_DEF( sfobjs ) /* SFNT object handler (sfobjs.c) */ -FT_TRACE_DEF( ttcmap ) /* charmap handler (ttcmap.c) */ -FT_TRACE_DEF( ttkern ) /* kerning handler (ttkern.c) */ -FT_TRACE_DEF( ttload ) /* basic TrueType tables (ttload.c) */ -FT_TRACE_DEF( ttmtx ) /* metrics-related tables (ttmtx.c) */ -FT_TRACE_DEF( ttpost ) /* PS table processing (ttpost.c) */ -FT_TRACE_DEF( ttsbit ) /* TrueType sbit handling (ttsbit.c) */ -FT_TRACE_DEF( ttbdf ) /* TrueType embedded BDF (ttbdf.c) */ - - /* TrueType driver components */ -FT_TRACE_DEF( ttdriver ) /* TT font driver (ttdriver.c) */ -FT_TRACE_DEF( ttgload ) /* TT glyph loader (ttgload.c) */ -FT_TRACE_DEF( ttinterp ) /* bytecode interpreter (ttinterp.c) */ -FT_TRACE_DEF( ttobjs ) /* TT objects manager (ttobjs.c) */ -FT_TRACE_DEF( ttpload ) /* TT data/program loader (ttpload.c) */ -FT_TRACE_DEF( ttgxvar ) /* TrueType GX var handler (ttgxvar.c) */ - - /* Type 1 driver components */ -FT_TRACE_DEF( t1afm ) -FT_TRACE_DEF( t1driver ) -FT_TRACE_DEF( t1gload ) -FT_TRACE_DEF( t1hint ) -FT_TRACE_DEF( t1load ) -FT_TRACE_DEF( t1objs ) -FT_TRACE_DEF( t1parse ) - - /* PostScript helper module `psaux' */ -FT_TRACE_DEF( t1decode ) -FT_TRACE_DEF( psobjs ) -FT_TRACE_DEF( psconv ) - - /* PostScript hinting module `pshinter' */ -FT_TRACE_DEF( pshrec ) -FT_TRACE_DEF( pshalgo1 ) -FT_TRACE_DEF( pshalgo2 ) - - /* Type 2 driver components */ -FT_TRACE_DEF( cffdriver ) -FT_TRACE_DEF( cffgload ) -FT_TRACE_DEF( cffload ) -FT_TRACE_DEF( cffobjs ) -FT_TRACE_DEF( cffparse ) - -FT_TRACE_DEF( cf2blues ) -FT_TRACE_DEF( cf2hints ) -FT_TRACE_DEF( cf2interp ) - - /* Type 42 driver component */ -FT_TRACE_DEF( t42 ) - - /* CID driver components */ -FT_TRACE_DEF( cidafm ) -FT_TRACE_DEF( ciddriver ) -FT_TRACE_DEF( cidgload ) -FT_TRACE_DEF( cidload ) -FT_TRACE_DEF( cidobjs ) -FT_TRACE_DEF( cidparse ) - - /* Windows font component */ -FT_TRACE_DEF( winfnt ) - - /* PCF font components */ -FT_TRACE_DEF( pcfdriver ) -FT_TRACE_DEF( pcfread ) - - /* BDF font components */ -FT_TRACE_DEF( bdfdriver ) -FT_TRACE_DEF( bdflib ) - - /* PFR font component */ -FT_TRACE_DEF( pfr ) - - /* OpenType validation components */ -FT_TRACE_DEF( otvmodule ) -FT_TRACE_DEF( otvcommon ) -FT_TRACE_DEF( otvbase ) -FT_TRACE_DEF( otvgdef ) -FT_TRACE_DEF( otvgpos ) -FT_TRACE_DEF( otvgsub ) -FT_TRACE_DEF( otvjstf ) -FT_TRACE_DEF( otvmath ) - - /* TrueTypeGX/AAT validation components */ -FT_TRACE_DEF( gxvmodule ) -FT_TRACE_DEF( gxvcommon ) -FT_TRACE_DEF( gxvfeat ) -FT_TRACE_DEF( gxvmort ) -FT_TRACE_DEF( gxvmorx ) -FT_TRACE_DEF( gxvbsln ) -FT_TRACE_DEF( gxvjust ) -FT_TRACE_DEF( gxvkern ) -FT_TRACE_DEF( gxvopbd ) -FT_TRACE_DEF( gxvtrak ) -FT_TRACE_DEF( gxvprop ) -FT_TRACE_DEF( gxvlcar ) - - /* autofit components */ -FT_TRACE_DEF( afmodule ) -FT_TRACE_DEF( afhints ) -FT_TRACE_DEF( afcjk ) -FT_TRACE_DEF( aflatin ) -FT_TRACE_DEF( aflatin2 ) -FT_TRACE_DEF( afwarp ) -FT_TRACE_DEF( afharfbuzz ) -FT_TRACE_DEF( afglobal ) - -/* END */ diff --git a/lib/osx/include/freetype/internal/ftvalid.h b/lib/osx/include/freetype/internal/ftvalid.h deleted file mode 100644 index 9cda6ee..0000000 --- a/lib/osx/include/freetype/internal/ftvalid.h +++ /dev/null @@ -1,159 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftvalid.h */ -/* */ -/* FreeType validation support (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTVALID_H__ -#define __FTVALID_H__ - -#include <ft2build.h> -#include FT_CONFIG_STANDARD_LIBRARY_H /* for ft_setjmp and ft_longjmp */ - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** V A L I D A T I O N ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - /* handle to a validation object */ - typedef struct FT_ValidatorRec_ volatile* FT_Validator; - - - /*************************************************************************/ - /* */ - /* There are three distinct validation levels defined here: */ - /* */ - /* FT_VALIDATE_DEFAULT :: */ - /* A table that passes this validation level can be used reliably by */ - /* FreeType. It generally means that all offsets have been checked to */ - /* prevent out-of-bound reads, that array counts are correct, etc. */ - /* */ - /* FT_VALIDATE_TIGHT :: */ - /* A table that passes this validation level can be used reliably and */ - /* doesn't contain invalid data. For example, a charmap table that */ - /* returns invalid glyph indices will not pass, even though it can */ - /* be used with FreeType in default mode (the library will simply */ - /* return an error later when trying to load the glyph). */ - /* */ - /* It also checks that fields which must be a multiple of 2, 4, or 8, */ - /* don't have incorrect values, etc. */ - /* */ - /* FT_VALIDATE_PARANOID :: */ - /* Only for font debugging. Checks that a table follows the */ - /* specification by 100%. Very few fonts will be able to pass this */ - /* level anyway but it can be useful for certain tools like font */ - /* editors/converters. */ - /* */ - typedef enum FT_ValidationLevel_ - { - FT_VALIDATE_DEFAULT = 0, - FT_VALIDATE_TIGHT, - FT_VALIDATE_PARANOID - - } FT_ValidationLevel; - - -#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ - /* We disable the warning `structure was padded due to */ - /* __declspec(align())' in order to compile cleanly with */ - /* the maximum level of warnings. */ -#pragma warning( push ) -#pragma warning( disable : 4324 ) -#endif /* _MSC_VER */ - - /* validator structure */ - typedef struct FT_ValidatorRec_ - { - ft_jmp_buf jump_buffer; /* used for exception handling */ - - const FT_Byte* base; /* address of table in memory */ - const FT_Byte* limit; /* `base' + sizeof(table) in memory */ - FT_ValidationLevel level; /* validation level */ - FT_Error error; /* error returned. 0 means success */ - - } FT_ValidatorRec; - -#if defined( _MSC_VER ) -#pragma warning( pop ) -#endif - -#define FT_VALIDATOR( x ) ( (FT_Validator)( x ) ) - - - FT_BASE( void ) - ft_validator_init( FT_Validator valid, - const FT_Byte* base, - const FT_Byte* limit, - FT_ValidationLevel level ); - - /* Do not use this. It's broken and will cause your validator to crash */ - /* if you run it on an invalid font. */ - FT_BASE( FT_Int ) - ft_validator_run( FT_Validator valid ); - - /* Sets the error field in a validator, then calls `longjmp' to return */ - /* to high-level caller. Using `setjmp/longjmp' avoids many stupid */ - /* error checks within the validation routines. */ - /* */ - FT_BASE( void ) - ft_validator_error( FT_Validator valid, - FT_Error error ); - - - /* Calls ft_validate_error. Assumes that the `valid' local variable */ - /* holds a pointer to the current validator object. */ - /* */ -#define FT_INVALID( _error ) FT_INVALID_( _error ) -#define FT_INVALID_( _error ) \ - ft_validator_error( valid, FT_THROW( _error ) ) - - /* called when a broken table is detected */ -#define FT_INVALID_TOO_SHORT \ - FT_INVALID( Invalid_Table ) - - /* called when an invalid offset is detected */ -#define FT_INVALID_OFFSET \ - FT_INVALID( Invalid_Offset ) - - /* called when an invalid format/value is detected */ -#define FT_INVALID_FORMAT \ - FT_INVALID( Invalid_Table ) - - /* called when an invalid glyph index is detected */ -#define FT_INVALID_GLYPH_ID \ - FT_INVALID( Invalid_Glyph_Index ) - - /* called when an invalid field value is detected */ -#define FT_INVALID_DATA \ - FT_INVALID( Invalid_Table ) - - -FT_END_HEADER - -#endif /* __FTVALID_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/internal.h b/lib/osx/include/freetype/internal/internal.h deleted file mode 100644 index 809ce59..0000000 --- a/lib/osx/include/freetype/internal/internal.h +++ /dev/null @@ -1,63 +0,0 @@ -/***************************************************************************/ -/* */ -/* internal.h */ -/* */ -/* Internal header files (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file is automatically included by `ft2build.h'. */ - /* Do not include it manually! */ - /* */ - /*************************************************************************/ - - -#define FT_INTERNAL_OBJECTS_H <freetype/internal/ftobjs.h> -#define FT_INTERNAL_PIC_H <freetype/internal/ftpic.h> -#define FT_INTERNAL_STREAM_H <freetype/internal/ftstream.h> -#define FT_INTERNAL_MEMORY_H <freetype/internal/ftmemory.h> -#define FT_INTERNAL_DEBUG_H <freetype/internal/ftdebug.h> -#define FT_INTERNAL_CALC_H <freetype/internal/ftcalc.h> -#define FT_INTERNAL_DRIVER_H <freetype/internal/ftdriver.h> -#define FT_INTERNAL_TRACE_H <freetype/internal/fttrace.h> -#define FT_INTERNAL_GLYPH_LOADER_H <freetype/internal/ftgloadr.h> -#define FT_INTERNAL_SFNT_H <freetype/internal/sfnt.h> -#define FT_INTERNAL_SERVICE_H <freetype/internal/ftserv.h> -#define FT_INTERNAL_RFORK_H <freetype/internal/ftrfork.h> -#define FT_INTERNAL_VALIDATE_H <freetype/internal/ftvalid.h> - -#define FT_INTERNAL_TRUETYPE_TYPES_H <freetype/internal/tttypes.h> -#define FT_INTERNAL_TYPE1_TYPES_H <freetype/internal/t1types.h> - -#define FT_INTERNAL_POSTSCRIPT_AUX_H <freetype/internal/psaux.h> -#define FT_INTERNAL_POSTSCRIPT_HINTS_H <freetype/internal/pshints.h> -#define FT_INTERNAL_POSTSCRIPT_GLOBALS_H <freetype/internal/psglobal.h> - -#define FT_INTERNAL_AUTOHINT_H <freetype/internal/autohint.h> - - -#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ - - /* We disable the warning `conditional expression is constant' here */ - /* in order to compile cleanly with the maximum level of warnings. */ - /* In particular, the warning complains about stuff like `while(0)' */ - /* which is very useful in macro definitions. There is no benefit */ - /* in having it enabled. */ -#pragma warning( disable : 4127 ) - -#endif /* _MSC_VER */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/psaux.h b/lib/osx/include/freetype/internal/psaux.h deleted file mode 100644 index 1c5f784..0000000 --- a/lib/osx/include/freetype/internal/psaux.h +++ /dev/null @@ -1,877 +0,0 @@ -/***************************************************************************/ -/* */ -/* psaux.h */ -/* */ -/* Auxiliary functions and data structures related to PostScript fonts */ -/* (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __PSAUX_H__ -#define __PSAUX_H__ - - -#include <ft2build.h> -#include FT_INTERNAL_OBJECTS_H -#include FT_INTERNAL_TYPE1_TYPES_H -#include FT_SERVICE_POSTSCRIPT_CMAPS_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1_TABLE *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - - typedef struct PS_TableRec_* PS_Table; - typedef const struct PS_Table_FuncsRec_* PS_Table_Funcs; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_Table_FuncsRec */ - /* */ - /* <Description> */ - /* A set of function pointers to manage PS_Table objects. */ - /* */ - /* <Fields> */ - /* table_init :: Used to initialize a table. */ - /* */ - /* table_done :: Finalizes resp. destroy a given table. */ - /* */ - /* table_add :: Adds a new object to a table. */ - /* */ - /* table_release :: Releases table data, then finalizes it. */ - /* */ - typedef struct PS_Table_FuncsRec_ - { - FT_Error - (*init)( PS_Table table, - FT_Int count, - FT_Memory memory ); - - void - (*done)( PS_Table table ); - - FT_Error - (*add)( PS_Table table, - FT_Int idx, - void* object, - FT_UInt length ); - - void - (*release)( PS_Table table ); - - } PS_Table_FuncsRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_TableRec */ - /* */ - /* <Description> */ - /* A PS_Table is a simple object used to store an array of objects in */ - /* a single memory block. */ - /* */ - /* <Fields> */ - /* block :: The address in memory of the growheap's block. This */ - /* can change between two object adds, due to */ - /* reallocation. */ - /* */ - /* cursor :: The current top of the grow heap within its block. */ - /* */ - /* capacity :: The current size of the heap block. Increments by */ - /* 1kByte chunks. */ - /* */ - /* init :: Set to 0xDEADBEEF if `elements' and `lengths' have */ - /* been allocated. */ - /* */ - /* max_elems :: The maximum number of elements in table. */ - /* */ - /* num_elems :: The current number of elements in table. */ - /* */ - /* elements :: A table of element addresses within the block. */ - /* */ - /* lengths :: A table of element sizes within the block. */ - /* */ - /* memory :: The object used for memory operations */ - /* (alloc/realloc). */ - /* */ - /* funcs :: A table of method pointers for this object. */ - /* */ - typedef struct PS_TableRec_ - { - FT_Byte* block; /* current memory block */ - FT_Offset cursor; /* current cursor in memory block */ - FT_Offset capacity; /* current size of memory block */ - FT_ULong init; - - FT_Int max_elems; - FT_Int num_elems; - FT_Byte** elements; /* addresses of table elements */ - FT_UInt* lengths; /* lengths of table elements */ - - FT_Memory memory; - PS_Table_FuncsRec funcs; - - } PS_TableRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1 FIELDS & TOKENS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct PS_ParserRec_* PS_Parser; - - typedef struct T1_TokenRec_* T1_Token; - - typedef struct T1_FieldRec_* T1_Field; - - - /* simple enumeration type used to identify token types */ - typedef enum T1_TokenType_ - { - T1_TOKEN_TYPE_NONE = 0, - T1_TOKEN_TYPE_ANY, - T1_TOKEN_TYPE_STRING, - T1_TOKEN_TYPE_ARRAY, - T1_TOKEN_TYPE_KEY, /* aka `name' */ - - /* do not remove */ - T1_TOKEN_TYPE_MAX - - } T1_TokenType; - - - /* a simple structure used to identify tokens */ - typedef struct T1_TokenRec_ - { - FT_Byte* start; /* first character of token in input stream */ - FT_Byte* limit; /* first character after the token */ - T1_TokenType type; /* type of token */ - - } T1_TokenRec; - - - /* enumeration type used to identify object fields */ - typedef enum T1_FieldType_ - { - T1_FIELD_TYPE_NONE = 0, - T1_FIELD_TYPE_BOOL, - T1_FIELD_TYPE_INTEGER, - T1_FIELD_TYPE_FIXED, - T1_FIELD_TYPE_FIXED_1000, - T1_FIELD_TYPE_STRING, - T1_FIELD_TYPE_KEY, - T1_FIELD_TYPE_BBOX, - T1_FIELD_TYPE_MM_BBOX, - T1_FIELD_TYPE_INTEGER_ARRAY, - T1_FIELD_TYPE_FIXED_ARRAY, - T1_FIELD_TYPE_CALLBACK, - - /* do not remove */ - T1_FIELD_TYPE_MAX - - } T1_FieldType; - - - typedef enum T1_FieldLocation_ - { - T1_FIELD_LOCATION_CID_INFO, - T1_FIELD_LOCATION_FONT_DICT, - T1_FIELD_LOCATION_FONT_EXTRA, - T1_FIELD_LOCATION_FONT_INFO, - T1_FIELD_LOCATION_PRIVATE, - T1_FIELD_LOCATION_BBOX, - T1_FIELD_LOCATION_LOADER, - T1_FIELD_LOCATION_FACE, - T1_FIELD_LOCATION_BLEND, - - /* do not remove */ - T1_FIELD_LOCATION_MAX - - } T1_FieldLocation; - - - typedef void - (*T1_Field_ParseFunc)( FT_Face face, - FT_Pointer parser ); - - - /* structure type used to model object fields */ - typedef struct T1_FieldRec_ - { - const char* ident; /* field identifier */ - T1_FieldLocation location; - T1_FieldType type; /* type of field */ - T1_Field_ParseFunc reader; - FT_UInt offset; /* offset of field in object */ - FT_Byte size; /* size of field in bytes */ - FT_UInt array_max; /* maximum number of elements for */ - /* array */ - FT_UInt count_offset; /* offset of element count for */ - /* arrays; must not be zero if in */ - /* use -- in other words, a */ - /* `num_FOO' element must not */ - /* start the used structure if we */ - /* parse a `FOO' array */ - FT_UInt dict; /* where we expect it */ - } T1_FieldRec; - -#define T1_FIELD_DICT_FONTDICT ( 1 << 0 ) /* also FontInfo and FDArray */ -#define T1_FIELD_DICT_PRIVATE ( 1 << 1 ) - - - -#define T1_NEW_SIMPLE_FIELD( _ident, _type, _fname, _dict ) \ - { \ - _ident, T1CODE, _type, \ - 0, \ - FT_FIELD_OFFSET( _fname ), \ - FT_FIELD_SIZE( _fname ), \ - 0, 0, \ - _dict \ - }, - -#define T1_NEW_CALLBACK_FIELD( _ident, _reader, _dict ) \ - { \ - _ident, T1CODE, T1_FIELD_TYPE_CALLBACK, \ - (T1_Field_ParseFunc)_reader, \ - 0, 0, \ - 0, 0, \ - _dict \ - }, - -#define T1_NEW_TABLE_FIELD( _ident, _type, _fname, _max, _dict ) \ - { \ - _ident, T1CODE, _type, \ - 0, \ - FT_FIELD_OFFSET( _fname ), \ - FT_FIELD_SIZE_DELTA( _fname ), \ - _max, \ - FT_FIELD_OFFSET( num_ ## _fname ), \ - _dict \ - }, - -#define T1_NEW_TABLE_FIELD2( _ident, _type, _fname, _max, _dict ) \ - { \ - _ident, T1CODE, _type, \ - 0, \ - FT_FIELD_OFFSET( _fname ), \ - FT_FIELD_SIZE_DELTA( _fname ), \ - _max, 0, \ - _dict \ - }, - - -#define T1_FIELD_BOOL( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_BOOL, _fname, _dict ) - -#define T1_FIELD_NUM( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_INTEGER, _fname, _dict ) - -#define T1_FIELD_FIXED( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_FIXED, _fname, _dict ) - -#define T1_FIELD_FIXED_1000( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_FIXED_1000, _fname, \ - _dict ) - -#define T1_FIELD_STRING( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_STRING, _fname, _dict ) - -#define T1_FIELD_KEY( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_KEY, _fname, _dict ) - -#define T1_FIELD_BBOX( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_BBOX, _fname, _dict ) - - -#define T1_FIELD_NUM_TABLE( _ident, _fname, _fmax, _dict ) \ - T1_NEW_TABLE_FIELD( _ident, T1_FIELD_TYPE_INTEGER_ARRAY, \ - _fname, _fmax, _dict ) - -#define T1_FIELD_FIXED_TABLE( _ident, _fname, _fmax, _dict ) \ - T1_NEW_TABLE_FIELD( _ident, T1_FIELD_TYPE_FIXED_ARRAY, \ - _fname, _fmax, _dict ) - -#define T1_FIELD_NUM_TABLE2( _ident, _fname, _fmax, _dict ) \ - T1_NEW_TABLE_FIELD2( _ident, T1_FIELD_TYPE_INTEGER_ARRAY, \ - _fname, _fmax, _dict ) - -#define T1_FIELD_FIXED_TABLE2( _ident, _fname, _fmax, _dict ) \ - T1_NEW_TABLE_FIELD2( _ident, T1_FIELD_TYPE_FIXED_ARRAY, \ - _fname, _fmax, _dict ) - -#define T1_FIELD_CALLBACK( _ident, _name, _dict ) \ - T1_NEW_CALLBACK_FIELD( _ident, _name, _dict ) - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1 PARSER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef const struct PS_Parser_FuncsRec_* PS_Parser_Funcs; - - typedef struct PS_Parser_FuncsRec_ - { - void - (*init)( PS_Parser parser, - FT_Byte* base, - FT_Byte* limit, - FT_Memory memory ); - - void - (*done)( PS_Parser parser ); - - void - (*skip_spaces)( PS_Parser parser ); - void - (*skip_PS_token)( PS_Parser parser ); - - FT_Long - (*to_int)( PS_Parser parser ); - FT_Fixed - (*to_fixed)( PS_Parser parser, - FT_Int power_ten ); - - FT_Error - (*to_bytes)( PS_Parser parser, - FT_Byte* bytes, - FT_Offset max_bytes, - FT_ULong* pnum_bytes, - FT_Bool delimiters ); - - FT_Int - (*to_coord_array)( PS_Parser parser, - FT_Int max_coords, - FT_Short* coords ); - FT_Int - (*to_fixed_array)( PS_Parser parser, - FT_Int max_values, - FT_Fixed* values, - FT_Int power_ten ); - - void - (*to_token)( PS_Parser parser, - T1_Token token ); - void - (*to_token_array)( PS_Parser parser, - T1_Token tokens, - FT_UInt max_tokens, - FT_Int* pnum_tokens ); - - FT_Error - (*load_field)( PS_Parser parser, - const T1_Field field, - void** objects, - FT_UInt max_objects, - FT_ULong* pflags ); - - FT_Error - (*load_field_table)( PS_Parser parser, - const T1_Field field, - void** objects, - FT_UInt max_objects, - FT_ULong* pflags ); - - } PS_Parser_FuncsRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_ParserRec */ - /* */ - /* <Description> */ - /* A PS_Parser is an object used to parse a Type 1 font very quickly. */ - /* */ - /* <Fields> */ - /* cursor :: The current position in the text. */ - /* */ - /* base :: Start of the processed text. */ - /* */ - /* limit :: End of the processed text. */ - /* */ - /* error :: The last error returned. */ - /* */ - /* memory :: The object used for memory operations (alloc/realloc). */ - /* */ - /* funcs :: A table of functions for the parser. */ - /* */ - typedef struct PS_ParserRec_ - { - FT_Byte* cursor; - FT_Byte* base; - FT_Byte* limit; - FT_Error error; - FT_Memory memory; - - PS_Parser_FuncsRec funcs; - - } PS_ParserRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1 BUILDER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - - typedef struct T1_BuilderRec_* T1_Builder; - - - typedef FT_Error - (*T1_Builder_Check_Points_Func)( T1_Builder builder, - FT_Int count ); - - typedef void - (*T1_Builder_Add_Point_Func)( T1_Builder builder, - FT_Pos x, - FT_Pos y, - FT_Byte flag ); - - typedef FT_Error - (*T1_Builder_Add_Point1_Func)( T1_Builder builder, - FT_Pos x, - FT_Pos y ); - - typedef FT_Error - (*T1_Builder_Add_Contour_Func)( T1_Builder builder ); - - typedef FT_Error - (*T1_Builder_Start_Point_Func)( T1_Builder builder, - FT_Pos x, - FT_Pos y ); - - typedef void - (*T1_Builder_Close_Contour_Func)( T1_Builder builder ); - - - typedef const struct T1_Builder_FuncsRec_* T1_Builder_Funcs; - - typedef struct T1_Builder_FuncsRec_ - { - void - (*init)( T1_Builder builder, - FT_Face face, - FT_Size size, - FT_GlyphSlot slot, - FT_Bool hinting ); - - void - (*done)( T1_Builder builder ); - - T1_Builder_Check_Points_Func check_points; - T1_Builder_Add_Point_Func add_point; - T1_Builder_Add_Point1_Func add_point1; - T1_Builder_Add_Contour_Func add_contour; - T1_Builder_Start_Point_Func start_point; - T1_Builder_Close_Contour_Func close_contour; - - } T1_Builder_FuncsRec; - - - /* an enumeration type to handle charstring parsing states */ - typedef enum T1_ParseState_ - { - T1_Parse_Start, - T1_Parse_Have_Width, - T1_Parse_Have_Moveto, - T1_Parse_Have_Path - - } T1_ParseState; - - - /*************************************************************************/ - /* */ - /* <Structure> */ - /* T1_BuilderRec */ - /* */ - /* <Description> */ - /* A structure used during glyph loading to store its outline. */ - /* */ - /* <Fields> */ - /* memory :: The current memory object. */ - /* */ - /* face :: The current face object. */ - /* */ - /* glyph :: The current glyph slot. */ - /* */ - /* loader :: XXX */ - /* */ - /* base :: The base glyph outline. */ - /* */ - /* current :: The current glyph outline. */ - /* */ - /* max_points :: maximum points in builder outline */ - /* */ - /* max_contours :: Maximum number of contours in builder outline. */ - /* */ - /* pos_x :: The horizontal translation (if composite glyph). */ - /* */ - /* pos_y :: The vertical translation (if composite glyph). */ - /* */ - /* left_bearing :: The left side bearing point. */ - /* */ - /* advance :: The horizontal advance vector. */ - /* */ - /* bbox :: Unused. */ - /* */ - /* parse_state :: An enumeration which controls the charstring */ - /* parsing state. */ - /* */ - /* load_points :: If this flag is not set, no points are loaded. */ - /* */ - /* no_recurse :: Set but not used. */ - /* */ - /* metrics_only :: A boolean indicating that we only want to compute */ - /* the metrics of a given glyph, not load all of its */ - /* points. */ - /* */ - /* funcs :: An array of function pointers for the builder. */ - /* */ - typedef struct T1_BuilderRec_ - { - FT_Memory memory; - FT_Face face; - FT_GlyphSlot glyph; - FT_GlyphLoader loader; - FT_Outline* base; - FT_Outline* current; - - FT_Pos pos_x; - FT_Pos pos_y; - - FT_Vector left_bearing; - FT_Vector advance; - - FT_BBox bbox; /* bounding box */ - T1_ParseState parse_state; - FT_Bool load_points; - FT_Bool no_recurse; - - FT_Bool metrics_only; - - void* hints_funcs; /* hinter-specific */ - void* hints_globals; /* hinter-specific */ - - T1_Builder_FuncsRec funcs; - - } T1_BuilderRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1 DECODER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - -#if 0 - - /*************************************************************************/ - /* */ - /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ - /* calls during glyph loading. */ - /* */ -#define T1_MAX_SUBRS_CALLS 8 - - - /*************************************************************************/ - /* */ - /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ - /* minimum of 16 is required. */ - /* */ -#define T1_MAX_CHARSTRINGS_OPERANDS 32 - -#endif /* 0 */ - - - typedef struct T1_Decoder_ZoneRec_ - { - FT_Byte* cursor; - FT_Byte* base; - FT_Byte* limit; - - } T1_Decoder_ZoneRec, *T1_Decoder_Zone; - - - typedef struct T1_DecoderRec_* T1_Decoder; - typedef const struct T1_Decoder_FuncsRec_* T1_Decoder_Funcs; - - - typedef FT_Error - (*T1_Decoder_Callback)( T1_Decoder decoder, - FT_UInt glyph_index ); - - - typedef struct T1_Decoder_FuncsRec_ - { - FT_Error - (*init)( T1_Decoder decoder, - FT_Face face, - FT_Size size, - FT_GlyphSlot slot, - FT_Byte** glyph_names, - PS_Blend blend, - FT_Bool hinting, - FT_Render_Mode hint_mode, - T1_Decoder_Callback callback ); - - void - (*done)( T1_Decoder decoder ); - - FT_Error - (*parse_charstrings)( T1_Decoder decoder, - FT_Byte* base, - FT_UInt len ); - - } T1_Decoder_FuncsRec; - - - typedef struct T1_DecoderRec_ - { - T1_BuilderRec builder; - - FT_Long stack[T1_MAX_CHARSTRINGS_OPERANDS]; - FT_Long* top; - - T1_Decoder_ZoneRec zones[T1_MAX_SUBRS_CALLS + 1]; - T1_Decoder_Zone zone; - - FT_Service_PsCMaps psnames; /* for seac */ - FT_UInt num_glyphs; - FT_Byte** glyph_names; - - FT_Int lenIV; /* internal for sub routine calls */ - FT_Int num_subrs; - FT_Byte** subrs; - FT_UInt* subrs_len; /* array of subrs length (optional) */ - - FT_Matrix font_matrix; - FT_Vector font_offset; - - FT_Int flex_state; - FT_Int num_flex_vectors; - FT_Vector flex_vectors[7]; - - PS_Blend blend; /* for multiple master support */ - - FT_Render_Mode hint_mode; - - T1_Decoder_Callback parse_callback; - T1_Decoder_FuncsRec funcs; - - FT_Long* buildchar; - FT_UInt len_buildchar; - - FT_Bool seac; - - } T1_DecoderRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** AFM PARSER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct AFM_ParserRec_* AFM_Parser; - - typedef struct AFM_Parser_FuncsRec_ - { - FT_Error - (*init)( AFM_Parser parser, - FT_Memory memory, - FT_Byte* base, - FT_Byte* limit ); - - void - (*done)( AFM_Parser parser ); - - FT_Error - (*parse)( AFM_Parser parser ); - - } AFM_Parser_FuncsRec; - - - typedef struct AFM_StreamRec_* AFM_Stream; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* AFM_ParserRec */ - /* */ - /* <Description> */ - /* An AFM_Parser is a parser for the AFM files. */ - /* */ - /* <Fields> */ - /* memory :: The object used for memory operations (alloc and */ - /* realloc). */ - /* */ - /* stream :: This is an opaque object. */ - /* */ - /* FontInfo :: The result will be stored here. */ - /* */ - /* get_index :: A user provided function to get a glyph index by its */ - /* name. */ - /* */ - typedef struct AFM_ParserRec_ - { - FT_Memory memory; - AFM_Stream stream; - - AFM_FontInfo FontInfo; - - FT_Int - (*get_index)( const char* name, - FT_Offset len, - void* user_data ); - - void* user_data; - - } AFM_ParserRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** TYPE1 CHARMAPS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef const struct T1_CMap_ClassesRec_* T1_CMap_Classes; - - typedef struct T1_CMap_ClassesRec_ - { - FT_CMap_Class standard; - FT_CMap_Class expert; - FT_CMap_Class custom; - FT_CMap_Class unicode; - - } T1_CMap_ClassesRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** PSAux Module Interface *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct PSAux_ServiceRec_ - { - /* don't use `PS_Table_Funcs' and friends to avoid compiler warnings */ - const PS_Table_FuncsRec* ps_table_funcs; - const PS_Parser_FuncsRec* ps_parser_funcs; - const T1_Builder_FuncsRec* t1_builder_funcs; - const T1_Decoder_FuncsRec* t1_decoder_funcs; - - void - (*t1_decrypt)( FT_Byte* buffer, - FT_Offset length, - FT_UShort seed ); - - T1_CMap_Classes t1_cmap_classes; - - /* fields after this comment line were added after version 2.1.10 */ - const AFM_Parser_FuncsRec* afm_parser_funcs; - - } PSAux_ServiceRec, *PSAux_Service; - - /* backwards-compatible type definition */ - typedef PSAux_ServiceRec PSAux_Interface; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** Some convenience functions *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - -#define IS_PS_NEWLINE( ch ) \ - ( (ch) == '\r' || \ - (ch) == '\n' ) - -#define IS_PS_SPACE( ch ) \ - ( (ch) == ' ' || \ - IS_PS_NEWLINE( ch ) || \ - (ch) == '\t' || \ - (ch) == '\f' || \ - (ch) == '\0' ) - -#define IS_PS_SPECIAL( ch ) \ - ( (ch) == '/' || \ - (ch) == '(' || (ch) == ')' || \ - (ch) == '<' || (ch) == '>' || \ - (ch) == '[' || (ch) == ']' || \ - (ch) == '{' || (ch) == '}' || \ - (ch) == '%' ) - -#define IS_PS_DELIM( ch ) \ - ( IS_PS_SPACE( ch ) || \ - IS_PS_SPECIAL( ch ) ) - -#define IS_PS_DIGIT( ch ) \ - ( (ch) >= '0' && (ch) <= '9' ) - -#define IS_PS_XDIGIT( ch ) \ - ( IS_PS_DIGIT( ch ) || \ - ( (ch) >= 'A' && (ch) <= 'F' ) || \ - ( (ch) >= 'a' && (ch) <= 'f' ) ) - -#define IS_PS_BASE85( ch ) \ - ( (ch) >= '!' && (ch) <= 'u' ) - -#define IS_PS_TOKEN( cur, limit, token ) \ - ( (char)(cur)[0] == (token)[0] && \ - ( (cur) + sizeof ( (token) ) == (limit) || \ - ( (cur) + sizeof( (token) ) < (limit) && \ - IS_PS_DELIM( (cur)[sizeof ( (token) ) - 1] ) ) ) && \ - ft_strncmp( (char*)(cur), (token), sizeof ( (token) ) - 1 ) == 0 ) - - -FT_END_HEADER - -#endif /* __PSAUX_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/pshints.h b/lib/osx/include/freetype/internal/pshints.h deleted file mode 100644 index 12aaaba..0000000 --- a/lib/osx/include/freetype/internal/pshints.h +++ /dev/null @@ -1,722 +0,0 @@ -/***************************************************************************/ -/* */ -/* pshints.h */ -/* */ -/* Interface to Postscript-specific (Type 1 and Type 2) hints */ -/* recorders (specification only). These are used to support native */ -/* T1/T2 hints in the `type1', `cid', and `cff' font drivers. */ -/* */ -/* Copyright 2001-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __PSHINTS_H__ -#define __PSHINTS_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H -#include FT_TYPE1_TABLES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** INTERNAL REPRESENTATION OF GLOBALS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct PSH_GlobalsRec_* PSH_Globals; - - typedef FT_Error - (*PSH_Globals_NewFunc)( FT_Memory memory, - T1_Private* private_dict, - PSH_Globals* aglobals ); - - typedef void - (*PSH_Globals_SetScaleFunc)( PSH_Globals globals, - FT_Fixed x_scale, - FT_Fixed y_scale, - FT_Fixed x_delta, - FT_Fixed y_delta ); - - typedef void - (*PSH_Globals_DestroyFunc)( PSH_Globals globals ); - - - typedef struct PSH_Globals_FuncsRec_ - { - PSH_Globals_NewFunc create; - PSH_Globals_SetScaleFunc set_scale; - PSH_Globals_DestroyFunc destroy; - - } PSH_Globals_FuncsRec, *PSH_Globals_Funcs; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** PUBLIC TYPE 1 HINTS RECORDER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /************************************************************************* - * - * @type: - * T1_Hints - * - * @description: - * This is a handle to an opaque structure used to record glyph hints - * from a Type 1 character glyph character string. - * - * The methods used to operate on this object are defined by the - * @T1_Hints_FuncsRec structure. Recording glyph hints is normally - * achieved through the following scheme: - * - * - Open a new hint recording session by calling the `open' method. - * This rewinds the recorder and prepare it for new input. - * - * - For each hint found in the glyph charstring, call the corresponding - * method (`stem', `stem3', or `reset'). Note that these functions do - * not return an error code. - * - * - Close the recording session by calling the `close' method. It - * returns an error code if the hints were invalid or something - * strange happened (e.g., memory shortage). - * - * The hints accumulated in the object can later be used by the - * PostScript hinter. - * - */ - typedef struct T1_HintsRec_* T1_Hints; - - - /************************************************************************* - * - * @type: - * T1_Hints_Funcs - * - * @description: - * A pointer to the @T1_Hints_FuncsRec structure that defines the API of - * a given @T1_Hints object. - * - */ - typedef const struct T1_Hints_FuncsRec_* T1_Hints_Funcs; - - - /************************************************************************* - * - * @functype: - * T1_Hints_OpenFunc - * - * @description: - * A method of the @T1_Hints class used to prepare it for a new Type 1 - * hints recording session. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * @note: - * You should always call the @T1_Hints_CloseFunc method in order to - * close an opened recording session. - * - */ - typedef void - (*T1_Hints_OpenFunc)( T1_Hints hints ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_SetStemFunc - * - * @description: - * A method of the @T1_Hints class used to record a new horizontal or - * vertical stem. This corresponds to the Type 1 `hstem' and `vstem' - * operators. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * dimension :: - * 0 for horizontal stems (hstem), 1 for vertical ones (vstem). - * - * coords :: - * Array of 2 coordinates in 16.16 format, used as (position,length) - * stem descriptor. - * - * @note: - * Use vertical coordinates (y) for horizontal stems (dim=0). Use - * horizontal coordinates (x) for vertical stems (dim=1). - * - * `coords[0]' is the absolute stem position (lowest coordinate); - * `coords[1]' is the length. - * - * The length can be negative, in which case it must be either -20 or - * -21. It is interpreted as a `ghost' stem, according to the Type 1 - * specification. - * - * If the length is -21 (corresponding to a bottom ghost stem), then - * the real stem position is `coords[0]+coords[1]'. - * - */ - typedef void - (*T1_Hints_SetStemFunc)( T1_Hints hints, - FT_UInt dimension, - FT_Fixed* coords ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_SetStem3Func - * - * @description: - * A method of the @T1_Hints class used to record three - * counter-controlled horizontal or vertical stems at once. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * dimension :: - * 0 for horizontal stems, 1 for vertical ones. - * - * coords :: - * An array of 6 values in 16.16 format, holding 3 (position,length) - * pairs for the counter-controlled stems. - * - * @note: - * Use vertical coordinates (y) for horizontal stems (dim=0). Use - * horizontal coordinates (x) for vertical stems (dim=1). - * - * The lengths cannot be negative (ghost stems are never - * counter-controlled). - * - */ - typedef void - (*T1_Hints_SetStem3Func)( T1_Hints hints, - FT_UInt dimension, - FT_Fixed* coords ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_ResetFunc - * - * @description: - * A method of the @T1_Hints class used to reset the stems hints in a - * recording session. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * end_point :: - * The index of the last point in the input glyph in which the - * previously defined hints apply. - * - */ - typedef void - (*T1_Hints_ResetFunc)( T1_Hints hints, - FT_UInt end_point ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_CloseFunc - * - * @description: - * A method of the @T1_Hints class used to close a hint recording - * session. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * end_point :: - * The index of the last point in the input glyph. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * The error code is set to indicate that an error occurred during the - * recording session. - * - */ - typedef FT_Error - (*T1_Hints_CloseFunc)( T1_Hints hints, - FT_UInt end_point ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_ApplyFunc - * - * @description: - * A method of the @T1_Hints class used to apply hints to the - * corresponding glyph outline. Must be called once all hints have been - * recorded. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * outline :: - * A pointer to the target outline descriptor. - * - * globals :: - * The hinter globals for this font. - * - * hint_mode :: - * Hinting information. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * On input, all points within the outline are in font coordinates. On - * output, they are in 1/64th of pixels. - * - * The scaling transformation is taken from the `globals' object which - * must correspond to the same font as the glyph. - * - */ - typedef FT_Error - (*T1_Hints_ApplyFunc)( T1_Hints hints, - FT_Outline* outline, - PSH_Globals globals, - FT_Render_Mode hint_mode ); - - - /************************************************************************* - * - * @struct: - * T1_Hints_FuncsRec - * - * @description: - * The structure used to provide the API to @T1_Hints objects. - * - * @fields: - * hints :: - * A handle to the T1 Hints recorder. - * - * open :: - * The function to open a recording session. - * - * close :: - * The function to close a recording session. - * - * stem :: - * The function to set a simple stem. - * - * stem3 :: - * The function to set counter-controlled stems. - * - * reset :: - * The function to reset stem hints. - * - * apply :: - * The function to apply the hints to the corresponding glyph outline. - * - */ - typedef struct T1_Hints_FuncsRec_ - { - T1_Hints hints; - T1_Hints_OpenFunc open; - T1_Hints_CloseFunc close; - T1_Hints_SetStemFunc stem; - T1_Hints_SetStem3Func stem3; - T1_Hints_ResetFunc reset; - T1_Hints_ApplyFunc apply; - - } T1_Hints_FuncsRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** PUBLIC TYPE 2 HINTS RECORDER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /************************************************************************* - * - * @type: - * T2_Hints - * - * @description: - * This is a handle to an opaque structure used to record glyph hints - * from a Type 2 character glyph character string. - * - * The methods used to operate on this object are defined by the - * @T2_Hints_FuncsRec structure. Recording glyph hints is normally - * achieved through the following scheme: - * - * - Open a new hint recording session by calling the `open' method. - * This rewinds the recorder and prepare it for new input. - * - * - For each hint found in the glyph charstring, call the corresponding - * method (`stems', `hintmask', `counters'). Note that these - * functions do not return an error code. - * - * - Close the recording session by calling the `close' method. It - * returns an error code if the hints were invalid or something - * strange happened (e.g., memory shortage). - * - * The hints accumulated in the object can later be used by the - * Postscript hinter. - * - */ - typedef struct T2_HintsRec_* T2_Hints; - - - /************************************************************************* - * - * @type: - * T2_Hints_Funcs - * - * @description: - * A pointer to the @T2_Hints_FuncsRec structure that defines the API of - * a given @T2_Hints object. - * - */ - typedef const struct T2_Hints_FuncsRec_* T2_Hints_Funcs; - - - /************************************************************************* - * - * @functype: - * T2_Hints_OpenFunc - * - * @description: - * A method of the @T2_Hints class used to prepare it for a new Type 2 - * hints recording session. - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * @note: - * You should always call the @T2_Hints_CloseFunc method in order to - * close an opened recording session. - * - */ - typedef void - (*T2_Hints_OpenFunc)( T2_Hints hints ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_StemsFunc - * - * @description: - * A method of the @T2_Hints class used to set the table of stems in - * either the vertical or horizontal dimension. Equivalent to the - * `hstem', `vstem', `hstemhm', and `vstemhm' Type 2 operators. - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * dimension :: - * 0 for horizontal stems (hstem), 1 for vertical ones (vstem). - * - * count :: - * The number of stems. - * - * coords :: - * An array of `count' (position,length) pairs in 16.16 format. - * - * @note: - * Use vertical coordinates (y) for horizontal stems (dim=0). Use - * horizontal coordinates (x) for vertical stems (dim=1). - * - * There are `2*count' elements in the `coords' array. Each even - * element is an absolute position in font units, each odd element is a - * length in font units. - * - * A length can be negative, in which case it must be either -20 or - * -21. It is interpreted as a `ghost' stem, according to the Type 1 - * specification. - * - */ - typedef void - (*T2_Hints_StemsFunc)( T2_Hints hints, - FT_UInt dimension, - FT_Int count, - FT_Fixed* coordinates ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_MaskFunc - * - * @description: - * A method of the @T2_Hints class used to set a given hintmask (this - * corresponds to the `hintmask' Type 2 operator). - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * end_point :: - * The glyph index of the last point to which the previously defined - * or activated hints apply. - * - * bit_count :: - * The number of bits in the hint mask. - * - * bytes :: - * An array of bytes modelling the hint mask. - * - * @note: - * If the hintmask starts the charstring (before any glyph point - * definition), the value of `end_point' should be 0. - * - * `bit_count' is the number of meaningful bits in the `bytes' array; it - * must be equal to the total number of hints defined so far (i.e., - * horizontal+verticals). - * - * The `bytes' array can come directly from the Type 2 charstring and - * respects the same format. - * - */ - typedef void - (*T2_Hints_MaskFunc)( T2_Hints hints, - FT_UInt end_point, - FT_UInt bit_count, - const FT_Byte* bytes ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_CounterFunc - * - * @description: - * A method of the @T2_Hints class used to set a given counter mask - * (this corresponds to the `hintmask' Type 2 operator). - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * end_point :: - * A glyph index of the last point to which the previously defined or - * active hints apply. - * - * bit_count :: - * The number of bits in the hint mask. - * - * bytes :: - * An array of bytes modelling the hint mask. - * - * @note: - * If the hintmask starts the charstring (before any glyph point - * definition), the value of `end_point' should be 0. - * - * `bit_count' is the number of meaningful bits in the `bytes' array; it - * must be equal to the total number of hints defined so far (i.e., - * horizontal+verticals). - * - * The `bytes' array can come directly from the Type 2 charstring and - * respects the same format. - * - */ - typedef void - (*T2_Hints_CounterFunc)( T2_Hints hints, - FT_UInt bit_count, - const FT_Byte* bytes ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_CloseFunc - * - * @description: - * A method of the @T2_Hints class used to close a hint recording - * session. - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * end_point :: - * The index of the last point in the input glyph. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * The error code is set to indicate that an error occurred during the - * recording session. - * - */ - typedef FT_Error - (*T2_Hints_CloseFunc)( T2_Hints hints, - FT_UInt end_point ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_ApplyFunc - * - * @description: - * A method of the @T2_Hints class used to apply hints to the - * corresponding glyph outline. Must be called after the `close' - * method. - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * outline :: - * A pointer to the target outline descriptor. - * - * globals :: - * The hinter globals for this font. - * - * hint_mode :: - * Hinting information. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * On input, all points within the outline are in font coordinates. On - * output, they are in 1/64th of pixels. - * - * The scaling transformation is taken from the `globals' object which - * must correspond to the same font than the glyph. - * - */ - typedef FT_Error - (*T2_Hints_ApplyFunc)( T2_Hints hints, - FT_Outline* outline, - PSH_Globals globals, - FT_Render_Mode hint_mode ); - - - /************************************************************************* - * - * @struct: - * T2_Hints_FuncsRec - * - * @description: - * The structure used to provide the API to @T2_Hints objects. - * - * @fields: - * hints :: - * A handle to the T2 hints recorder object. - * - * open :: - * The function to open a recording session. - * - * close :: - * The function to close a recording session. - * - * stems :: - * The function to set the dimension's stems table. - * - * hintmask :: - * The function to set hint masks. - * - * counter :: - * The function to set counter masks. - * - * apply :: - * The function to apply the hints on the corresponding glyph outline. - * - */ - typedef struct T2_Hints_FuncsRec_ - { - T2_Hints hints; - T2_Hints_OpenFunc open; - T2_Hints_CloseFunc close; - T2_Hints_StemsFunc stems; - T2_Hints_MaskFunc hintmask; - T2_Hints_CounterFunc counter; - T2_Hints_ApplyFunc apply; - - } T2_Hints_FuncsRec; - - - /* */ - - - typedef struct PSHinter_Interface_ - { - PSH_Globals_Funcs (*get_globals_funcs)( FT_Module module ); - T1_Hints_Funcs (*get_t1_funcs) ( FT_Module module ); - T2_Hints_Funcs (*get_t2_funcs) ( FT_Module module ); - - } PSHinter_Interface; - - typedef PSHinter_Interface* PSHinter_Service; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_PSHINTER_INTERFACE( \ - class_, \ - get_globals_funcs_, \ - get_t1_funcs_, \ - get_t2_funcs_ ) \ - static const PSHinter_Interface class_ = \ - { \ - get_globals_funcs_, \ - get_t1_funcs_, \ - get_t2_funcs_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_PSHINTER_INTERFACE( \ - class_, \ - get_globals_funcs_, \ - get_t1_funcs_, \ - get_t2_funcs_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - PSHinter_Interface* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_globals_funcs = get_globals_funcs_; \ - clazz->get_t1_funcs = get_t1_funcs_; \ - clazz->get_t2_funcs = get_t2_funcs_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - -FT_END_HEADER - -#endif /* __PSHINTS_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svbdf.h b/lib/osx/include/freetype/internal/services/svbdf.h deleted file mode 100644 index 865b536..0000000 --- a/lib/osx/include/freetype/internal/services/svbdf.h +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************/ -/* */ -/* svbdf.h */ -/* */ -/* The FreeType BDF services (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVBDF_H__ -#define __SVBDF_H__ - -#include FT_BDF_H -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_BDF "bdf" - - typedef FT_Error - (*FT_BDF_GetCharsetIdFunc)( FT_Face face, - const char* *acharset_encoding, - const char* *acharset_registry ); - - typedef FT_Error - (*FT_BDF_GetPropertyFunc)( FT_Face face, - const char* prop_name, - BDF_PropertyRec *aproperty ); - - - FT_DEFINE_SERVICE( BDF ) - { - FT_BDF_GetCharsetIdFunc get_charset_id; - FT_BDF_GetPropertyFunc get_property; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_BDFRec( class_, \ - get_charset_id_, \ - get_property_ ) \ - static const FT_Service_BDFRec class_ = \ - { \ - get_charset_id_, get_property_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_BDFRec( class_, \ - get_charset_id_, \ - get_property_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_BDFRec* clazz ) \ - { \ - clazz->get_charset_id = get_charset_id_; \ - clazz->get_property = get_property_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVBDF_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svcid.h b/lib/osx/include/freetype/internal/services/svcid.h deleted file mode 100644 index 4a535a6..0000000 --- a/lib/osx/include/freetype/internal/services/svcid.h +++ /dev/null @@ -1,90 +0,0 @@ -/***************************************************************************/ -/* */ -/* svcid.h */ -/* */ -/* The FreeType CID font services (specification). */ -/* */ -/* Copyright 2007-2015 by */ -/* Derek Clegg and Michael Toftdal. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVCID_H__ -#define __SVCID_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_CID "CID" - - typedef FT_Error - (*FT_CID_GetRegistryOrderingSupplementFunc)( FT_Face face, - const char* *registry, - const char* *ordering, - FT_Int *supplement ); - typedef FT_Error - (*FT_CID_GetIsInternallyCIDKeyedFunc)( FT_Face face, - FT_Bool *is_cid ); - typedef FT_Error - (*FT_CID_GetCIDFromGlyphIndexFunc)( FT_Face face, - FT_UInt glyph_index, - FT_UInt *cid ); - - FT_DEFINE_SERVICE( CID ) - { - FT_CID_GetRegistryOrderingSupplementFunc get_ros; - FT_CID_GetIsInternallyCIDKeyedFunc get_is_cid; - FT_CID_GetCIDFromGlyphIndexFunc get_cid_from_glyph_index; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_CIDREC( class_, \ - get_ros_, \ - get_is_cid_, \ - get_cid_from_glyph_index_ ) \ - static const FT_Service_CIDRec class_ = \ - { \ - get_ros_, get_is_cid_, get_cid_from_glyph_index_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_CIDREC( class_, \ - get_ros_, \ - get_is_cid_, \ - get_cid_from_glyph_index_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_CIDRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_ros = get_ros_; \ - clazz->get_is_cid = get_is_cid_; \ - clazz->get_cid_from_glyph_index = get_cid_from_glyph_index_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVCID_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svfntfmt.h b/lib/osx/include/freetype/internal/services/svfntfmt.h deleted file mode 100644 index f8b3617..0000000 --- a/lib/osx/include/freetype/internal/services/svfntfmt.h +++ /dev/null @@ -1,55 +0,0 @@ -/***************************************************************************/ -/* */ -/* svfntfmt.h */ -/* */ -/* The FreeType font format service (specification only). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVFNTFMT_H__ -#define __SVFNTFMT_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - - /* - * A trivial service used to return the name of a face's font driver, - * according to the XFree86 nomenclature. Note that the service data - * is a simple constant string pointer. - */ - -#define FT_SERVICE_ID_FONT_FORMAT "font-format" - -#define FT_FONT_FORMAT_TRUETYPE "TrueType" -#define FT_FONT_FORMAT_TYPE_1 "Type 1" -#define FT_FONT_FORMAT_BDF "BDF" -#define FT_FONT_FORMAT_PCF "PCF" -#define FT_FONT_FORMAT_TYPE_42 "Type 42" -#define FT_FONT_FORMAT_CID "CID Type 1" -#define FT_FONT_FORMAT_CFF "CFF" -#define FT_FONT_FORMAT_PFR "PFR" -#define FT_FONT_FORMAT_WINFNT "Windows FNT" - - /* */ - - -FT_END_HEADER - - -#endif /* __SVFNTFMT_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svgldict.h b/lib/osx/include/freetype/internal/services/svgldict.h deleted file mode 100644 index f78bca5..0000000 --- a/lib/osx/include/freetype/internal/services/svgldict.h +++ /dev/null @@ -1,88 +0,0 @@ -/***************************************************************************/ -/* */ -/* svgldict.h */ -/* */ -/* The FreeType glyph dictionary services (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVGLDICT_H__ -#define __SVGLDICT_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - - /* - * A service used to retrieve glyph names, as well as to find the - * index of a given glyph name in a font. - * - */ - -#define FT_SERVICE_ID_GLYPH_DICT "glyph-dict" - - - typedef FT_Error - (*FT_GlyphDict_GetNameFunc)( FT_Face face, - FT_UInt glyph_index, - FT_Pointer buffer, - FT_UInt buffer_max ); - - typedef FT_UInt - (*FT_GlyphDict_NameIndexFunc)( FT_Face face, - FT_String* glyph_name ); - - - FT_DEFINE_SERVICE( GlyphDict ) - { - FT_GlyphDict_GetNameFunc get_name; - FT_GlyphDict_NameIndexFunc name_index; /* optional */ - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \ - get_name_, \ - name_index_) \ - static const FT_Service_GlyphDictRec class_ = \ - { \ - get_name_, name_index_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \ - get_name_, \ - name_index_) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_GlyphDictRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_name = get_name_; \ - clazz->name_index = name_index_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVGLDICT_H__ */ diff --git a/lib/osx/include/freetype/internal/services/svgxval.h b/lib/osx/include/freetype/internal/services/svgxval.h deleted file mode 100644 index 59cc3b7..0000000 --- a/lib/osx/include/freetype/internal/services/svgxval.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************/ -/* */ -/* svgxval.h */ -/* */ -/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* Masatake YAMATO, Red Hat K.K., */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/***************************************************************************/ -/* */ -/* gxvalid is derived from both gxlayout module and otvalid module. */ -/* Development of gxlayout is supported by the Information-technology */ -/* Promotion Agency(IPA), Japan. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVGXVAL_H__ -#define __SVGXVAL_H__ - -#include FT_GX_VALIDATE_H -#include FT_INTERNAL_VALIDATE_H - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_GX_VALIDATE "truetypegx-validate" -#define FT_SERVICE_ID_CLASSICKERN_VALIDATE "classickern-validate" - - typedef FT_Error - (*gxv_validate_func)( FT_Face face, - FT_UInt gx_flags, - FT_Bytes tables[FT_VALIDATE_GX_LENGTH], - FT_UInt table_length ); - - - typedef FT_Error - (*ckern_validate_func)( FT_Face face, - FT_UInt ckern_flags, - FT_Bytes *ckern_table ); - - - FT_DEFINE_SERVICE( GXvalidate ) - { - gxv_validate_func validate; - }; - - FT_DEFINE_SERVICE( CKERNvalidate ) - { - ckern_validate_func validate; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVGXVAL_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svkern.h b/lib/osx/include/freetype/internal/services/svkern.h deleted file mode 100644 index bc26f15..0000000 --- a/lib/osx/include/freetype/internal/services/svkern.h +++ /dev/null @@ -1,51 +0,0 @@ -/***************************************************************************/ -/* */ -/* svkern.h */ -/* */ -/* The FreeType Kerning service (specification). */ -/* */ -/* Copyright 2006-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVKERN_H__ -#define __SVKERN_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_TRUETYPE_TABLES_H - - -FT_BEGIN_HEADER - -#define FT_SERVICE_ID_KERNING "kerning" - - - typedef FT_Error - (*FT_Kerning_TrackGetFunc)( FT_Face face, - FT_Fixed point_size, - FT_Int degree, - FT_Fixed* akerning ); - - FT_DEFINE_SERVICE( Kerning ) - { - FT_Kerning_TrackGetFunc get_track; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVKERN_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svmm.h b/lib/osx/include/freetype/internal/services/svmm.h deleted file mode 100644 index f2cecfb..0000000 --- a/lib/osx/include/freetype/internal/services/svmm.h +++ /dev/null @@ -1,113 +0,0 @@ -/***************************************************************************/ -/* */ -/* svmm.h */ -/* */ -/* The FreeType Multiple Masters and GX var services (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVMM_H__ -#define __SVMM_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - - /* - * A service used to manage multiple-masters data in a given face. - * - * See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H). - * - */ - -#define FT_SERVICE_ID_MULTI_MASTERS "multi-masters" - - - typedef FT_Error - (*FT_Get_MM_Func)( FT_Face face, - FT_Multi_Master* master ); - - typedef FT_Error - (*FT_Get_MM_Var_Func)( FT_Face face, - FT_MM_Var* *master ); - - typedef FT_Error - (*FT_Set_MM_Design_Func)( FT_Face face, - FT_UInt num_coords, - FT_Long* coords ); - - typedef FT_Error - (*FT_Set_Var_Design_Func)( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - typedef FT_Error - (*FT_Set_MM_Blend_Func)( FT_Face face, - FT_UInt num_coords, - FT_Long* coords ); - - - FT_DEFINE_SERVICE( MultiMasters ) - { - FT_Get_MM_Func get_mm; - FT_Set_MM_Design_Func set_mm_design; - FT_Set_MM_Blend_Func set_mm_blend; - FT_Get_MM_Var_Func get_mm_var; - FT_Set_Var_Design_Func set_var_design; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \ - get_mm_, \ - set_mm_design_, \ - set_mm_blend_, \ - get_mm_var_, \ - set_var_design_ ) \ - static const FT_Service_MultiMastersRec class_ = \ - { \ - get_mm_, set_mm_design_, set_mm_blend_, get_mm_var_, set_var_design_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \ - get_mm_, \ - set_mm_design_, \ - set_mm_blend_, \ - get_mm_var_, \ - set_var_design_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_MultiMastersRec* clazz ) \ - { \ - clazz->get_mm = get_mm_; \ - clazz->set_mm_design = set_mm_design_; \ - clazz->set_mm_blend = set_mm_blend_; \ - clazz->get_mm_var = get_mm_var_; \ - clazz->set_var_design = set_var_design_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - -#endif /* __SVMM_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svotval.h b/lib/osx/include/freetype/internal/services/svotval.h deleted file mode 100644 index a82a642..0000000 --- a/lib/osx/include/freetype/internal/services/svotval.h +++ /dev/null @@ -1,55 +0,0 @@ -/***************************************************************************/ -/* */ -/* svotval.h */ -/* */ -/* The FreeType OpenType validation service (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVOTVAL_H__ -#define __SVOTVAL_H__ - -#include FT_OPENTYPE_VALIDATE_H -#include FT_INTERNAL_VALIDATE_H - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_OPENTYPE_VALIDATE "opentype-validate" - - - typedef FT_Error - (*otv_validate_func)( FT_Face volatile face, - FT_UInt ot_flags, - FT_Bytes *base, - FT_Bytes *gdef, - FT_Bytes *gpos, - FT_Bytes *gsub, - FT_Bytes *jstf ); - - - FT_DEFINE_SERVICE( OTvalidate ) - { - otv_validate_func validate; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVOTVAL_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svpfr.h b/lib/osx/include/freetype/internal/services/svpfr.h deleted file mode 100644 index d4eb169..0000000 --- a/lib/osx/include/freetype/internal/services/svpfr.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************/ -/* */ -/* svpfr.h */ -/* */ -/* Internal PFR service functions (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPFR_H__ -#define __SVPFR_H__ - -#include FT_PFR_H -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_PFR_METRICS "pfr-metrics" - - - typedef FT_Error - (*FT_PFR_GetMetricsFunc)( FT_Face face, - FT_UInt *aoutline, - FT_UInt *ametrics, - FT_Fixed *ax_scale, - FT_Fixed *ay_scale ); - - typedef FT_Error - (*FT_PFR_GetKerningFunc)( FT_Face face, - FT_UInt left, - FT_UInt right, - FT_Vector *avector ); - - typedef FT_Error - (*FT_PFR_GetAdvanceFunc)( FT_Face face, - FT_UInt gindex, - FT_Pos *aadvance ); - - - FT_DEFINE_SERVICE( PfrMetrics ) - { - FT_PFR_GetMetricsFunc get_metrics; - FT_PFR_GetKerningFunc get_kerning; - FT_PFR_GetAdvanceFunc get_advance; - - }; - - /* */ - -FT_END_HEADER - -#endif /* __SVPFR_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svpostnm.h b/lib/osx/include/freetype/internal/services/svpostnm.h deleted file mode 100644 index a89f79e..0000000 --- a/lib/osx/include/freetype/internal/services/svpostnm.h +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************/ -/* */ -/* svpostnm.h */ -/* */ -/* The FreeType PostScript name services (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPOSTNM_H__ -#define __SVPOSTNM_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - /* - * A trivial service used to retrieve the PostScript name of a given - * font when available. The `get_name' field should never be NULL. - * - * The corresponding function can return NULL to indicate that the - * PostScript name is not available. - * - * The name is owned by the face and will be destroyed with it. - */ - -#define FT_SERVICE_ID_POSTSCRIPT_FONT_NAME "postscript-font-name" - - - typedef const char* - (*FT_PsName_GetFunc)( FT_Face face ); - - - FT_DEFINE_SERVICE( PsFontName ) - { - FT_PsName_GetFunc get_ps_font_name; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \ - static const FT_Service_PsFontNameRec class_ = \ - { \ - get_ps_font_name_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_PsFontNameRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_ps_font_name = get_ps_font_name_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVPOSTNM_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svprop.h b/lib/osx/include/freetype/internal/services/svprop.h deleted file mode 100644 index c9f07ce..0000000 --- a/lib/osx/include/freetype/internal/services/svprop.h +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************/ -/* */ -/* svprop.h */ -/* */ -/* The FreeType property service (specification). */ -/* */ -/* Copyright 2012-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPROP_H__ -#define __SVPROP_H__ - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_PROPERTIES "properties" - - - typedef FT_Error - (*FT_Properties_SetFunc)( FT_Module module, - const char* property_name, - const void* value ); - - typedef FT_Error - (*FT_Properties_GetFunc)( FT_Module module, - const char* property_name, - void* value ); - - - FT_DEFINE_SERVICE( Properties ) - { - FT_Properties_SetFunc set_property; - FT_Properties_GetFunc get_property; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ - set_property_, \ - get_property_ ) \ - static const FT_Service_PropertiesRec class_ = \ - { \ - set_property_, \ - get_property_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ - set_property_, \ - get_property_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_PropertiesRec* clazz ) \ - { \ - clazz->set_property = set_property_; \ - clazz->get_property = get_property_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVPROP_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svpscmap.h b/lib/osx/include/freetype/internal/services/svpscmap.h deleted file mode 100644 index 66da6e1..0000000 --- a/lib/osx/include/freetype/internal/services/svpscmap.h +++ /dev/null @@ -1,177 +0,0 @@ -/***************************************************************************/ -/* */ -/* svpscmap.h */ -/* */ -/* The FreeType PostScript charmap service (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPSCMAP_H__ -#define __SVPSCMAP_H__ - -#include FT_INTERNAL_OBJECTS_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_POSTSCRIPT_CMAPS "postscript-cmaps" - - - /* - * Adobe glyph name to unicode value. - */ - typedef FT_UInt32 - (*PS_Unicode_ValueFunc)( const char* glyph_name ); - - /* - * Macintosh name id to glyph name. NULL if invalid index. - */ - typedef const char* - (*PS_Macintosh_NameFunc)( FT_UInt name_index ); - - /* - * Adobe standard string ID to glyph name. NULL if invalid index. - */ - typedef const char* - (*PS_Adobe_Std_StringsFunc)( FT_UInt string_index ); - - - /* - * Simple unicode -> glyph index charmap built from font glyph names - * table. - */ - typedef struct PS_UniMap_ - { - FT_UInt32 unicode; /* bit 31 set: is glyph variant */ - FT_UInt glyph_index; - - } PS_UniMap; - - - typedef struct PS_UnicodesRec_* PS_Unicodes; - - typedef struct PS_UnicodesRec_ - { - FT_CMapRec cmap; - FT_UInt num_maps; - PS_UniMap* maps; - - } PS_UnicodesRec; - - - /* - * A function which returns a glyph name for a given index. Returns - * NULL if invalid index. - */ - typedef const char* - (*PS_GetGlyphNameFunc)( FT_Pointer data, - FT_UInt string_index ); - - /* - * A function used to release the glyph name returned by - * PS_GetGlyphNameFunc, when needed - */ - typedef void - (*PS_FreeGlyphNameFunc)( FT_Pointer data, - const char* name ); - - typedef FT_Error - (*PS_Unicodes_InitFunc)( FT_Memory memory, - PS_Unicodes unicodes, - FT_UInt num_glyphs, - PS_GetGlyphNameFunc get_glyph_name, - PS_FreeGlyphNameFunc free_glyph_name, - FT_Pointer glyph_data ); - - typedef FT_UInt - (*PS_Unicodes_CharIndexFunc)( PS_Unicodes unicodes, - FT_UInt32 unicode ); - - typedef FT_UInt32 - (*PS_Unicodes_CharNextFunc)( PS_Unicodes unicodes, - FT_UInt32 *unicode ); - - - FT_DEFINE_SERVICE( PsCMaps ) - { - PS_Unicode_ValueFunc unicode_value; - - PS_Unicodes_InitFunc unicodes_init; - PS_Unicodes_CharIndexFunc unicodes_char_index; - PS_Unicodes_CharNextFunc unicodes_char_next; - - PS_Macintosh_NameFunc macintosh_name; - PS_Adobe_Std_StringsFunc adobe_std_strings; - const unsigned short* adobe_std_encoding; - const unsigned short* adobe_expert_encoding; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_PSCMAPSREC( class_, \ - unicode_value_, \ - unicodes_init_, \ - unicodes_char_index_, \ - unicodes_char_next_, \ - macintosh_name_, \ - adobe_std_strings_, \ - adobe_std_encoding_, \ - adobe_expert_encoding_ ) \ - static const FT_Service_PsCMapsRec class_ = \ - { \ - unicode_value_, unicodes_init_, \ - unicodes_char_index_, unicodes_char_next_, macintosh_name_, \ - adobe_std_strings_, adobe_std_encoding_, adobe_expert_encoding_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_PSCMAPSREC( class_, \ - unicode_value_, \ - unicodes_init_, \ - unicodes_char_index_, \ - unicodes_char_next_, \ - macintosh_name_, \ - adobe_std_strings_, \ - adobe_std_encoding_, \ - adobe_expert_encoding_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_PsCMapsRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->unicode_value = unicode_value_; \ - clazz->unicodes_init = unicodes_init_; \ - clazz->unicodes_char_index = unicodes_char_index_; \ - clazz->unicodes_char_next = unicodes_char_next_; \ - clazz->macintosh_name = macintosh_name_; \ - clazz->adobe_std_strings = adobe_std_strings_; \ - clazz->adobe_std_encoding = adobe_std_encoding_; \ - clazz->adobe_expert_encoding = adobe_expert_encoding_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVPSCMAP_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svpsinfo.h b/lib/osx/include/freetype/internal/services/svpsinfo.h deleted file mode 100644 index 752a266..0000000 --- a/lib/osx/include/freetype/internal/services/svpsinfo.h +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************/ -/* */ -/* svpsinfo.h */ -/* */ -/* The FreeType PostScript info service (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPSINFO_H__ -#define __SVPSINFO_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_INTERNAL_TYPE1_TYPES_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_POSTSCRIPT_INFO "postscript-info" - - - typedef FT_Error - (*PS_GetFontInfoFunc)( FT_Face face, - PS_FontInfoRec* afont_info ); - - typedef FT_Error - (*PS_GetFontExtraFunc)( FT_Face face, - PS_FontExtraRec* afont_extra ); - - typedef FT_Int - (*PS_HasGlyphNamesFunc)( FT_Face face ); - - typedef FT_Error - (*PS_GetFontPrivateFunc)( FT_Face face, - PS_PrivateRec* afont_private ); - - typedef FT_Long - (*PS_GetFontValueFunc)( FT_Face face, - PS_Dict_Keys key, - FT_UInt idx, - void *value, - FT_Long value_len ); - - - FT_DEFINE_SERVICE( PsInfo ) - { - PS_GetFontInfoFunc ps_get_font_info; - PS_GetFontExtraFunc ps_get_font_extra; - PS_HasGlyphNamesFunc ps_has_glyph_names; - PS_GetFontPrivateFunc ps_get_font_private; - PS_GetFontValueFunc ps_get_font_value; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_PSINFOREC( class_, \ - get_font_info_, \ - ps_get_font_extra_, \ - has_glyph_names_, \ - get_font_private_, \ - get_font_value_ ) \ - static const FT_Service_PsInfoRec class_ = \ - { \ - get_font_info_, ps_get_font_extra_, has_glyph_names_, \ - get_font_private_, get_font_value_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_PSINFOREC( class_, \ - get_font_info_, \ - ps_get_font_extra_, \ - has_glyph_names_, \ - get_font_private_, \ - get_font_value_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_PsInfoRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->ps_get_font_info = get_font_info_; \ - clazz->ps_get_font_extra = ps_get_font_extra_; \ - clazz->ps_has_glyph_names = has_glyph_names_; \ - clazz->ps_get_font_private = get_font_private_; \ - clazz->ps_get_font_value = get_font_value_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVPSINFO_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svsfnt.h b/lib/osx/include/freetype/internal/services/svsfnt.h deleted file mode 100644 index 252ae1c..0000000 --- a/lib/osx/include/freetype/internal/services/svsfnt.h +++ /dev/null @@ -1,103 +0,0 @@ -/***************************************************************************/ -/* */ -/* svsfnt.h */ -/* */ -/* The FreeType SFNT table loading service (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVSFNT_H__ -#define __SVSFNT_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_TRUETYPE_TABLES_H - - -FT_BEGIN_HEADER - - - /* - * SFNT table loading service. - */ - -#define FT_SERVICE_ID_SFNT_TABLE "sfnt-table" - - - /* - * Used to implement FT_Load_Sfnt_Table(). - */ - typedef FT_Error - (*FT_SFNT_TableLoadFunc)( FT_Face face, - FT_ULong tag, - FT_Long offset, - FT_Byte* buffer, - FT_ULong* length ); - - /* - * Used to implement FT_Get_Sfnt_Table(). - */ - typedef void* - (*FT_SFNT_TableGetFunc)( FT_Face face, - FT_Sfnt_Tag tag ); - - - /* - * Used to implement FT_Sfnt_Table_Info(). - */ - typedef FT_Error - (*FT_SFNT_TableInfoFunc)( FT_Face face, - FT_UInt idx, - FT_ULong *tag, - FT_ULong *offset, - FT_ULong *length ); - - - FT_DEFINE_SERVICE( SFNT_Table ) - { - FT_SFNT_TableLoadFunc load_table; - FT_SFNT_TableGetFunc get_table; - FT_SFNT_TableInfoFunc table_info; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ - static const FT_Service_SFNT_TableRec class_ = \ - { \ - load_, get_, info_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_SFNT_TableRec* clazz ) \ - { \ - clazz->load_table = load_; \ - clazz->get_table = get_; \ - clazz->table_info = info_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVSFNT_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svttcmap.h b/lib/osx/include/freetype/internal/services/svttcmap.h deleted file mode 100644 index cd95b9a..0000000 --- a/lib/osx/include/freetype/internal/services/svttcmap.h +++ /dev/null @@ -1,106 +0,0 @@ -/***************************************************************************/ -/* */ -/* svttcmap.h */ -/* */ -/* The FreeType TrueType/sfnt cmap extra information service. */ -/* */ -/* Copyright 2003-2015 by */ -/* Masatake YAMATO, Redhat K.K., */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/* Development of this service is support of - Information-technology Promotion Agency, Japan. */ - -#ifndef __SVTTCMAP_H__ -#define __SVTTCMAP_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_TRUETYPE_TABLES_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_TT_CMAP "tt-cmaps" - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_CMapInfo */ - /* */ - /* <Description> */ - /* A structure used to store TrueType/sfnt specific cmap information */ - /* which is not covered by the generic @FT_CharMap structure. This */ - /* structure can be accessed with the @FT_Get_TT_CMap_Info function. */ - /* */ - /* <Fields> */ - /* language :: */ - /* The language ID used in Mac fonts. Definitions of values are in */ - /* `ttnameid.h'. */ - /* */ - /* format :: */ - /* The cmap format. OpenType 1.6 defines the formats 0 (byte */ - /* encoding table), 2~(high-byte mapping through table), 4~(segment */ - /* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */ - /* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */ - /* coverage), 13~(last resort font), and 14 (Unicode Variation */ - /* Sequences). */ - /* */ - typedef struct TT_CMapInfo_ - { - FT_ULong language; - FT_Long format; - - } TT_CMapInfo; - - - typedef FT_Error - (*TT_CMap_Info_GetFunc)( FT_CharMap charmap, - TT_CMapInfo *cmap_info ); - - - FT_DEFINE_SERVICE( TTCMaps ) - { - TT_CMap_Info_GetFunc get_cmap_info; - }; - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ - static const FT_Service_TTCMapsRec class_ = \ - { \ - get_cmap_info_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_TTCMapsRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_cmap_info = get_cmap_info_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - -#endif /* __SVTTCMAP_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svtteng.h b/lib/osx/include/freetype/internal/services/svtteng.h deleted file mode 100644 index 272ee8c..0000000 --- a/lib/osx/include/freetype/internal/services/svtteng.h +++ /dev/null @@ -1,53 +0,0 @@ -/***************************************************************************/ -/* */ -/* svtteng.h */ -/* */ -/* The FreeType TrueType engine query service (specification). */ -/* */ -/* Copyright 2006-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVTTENG_H__ -#define __SVTTENG_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_MODULE_H - - -FT_BEGIN_HEADER - - - /* - * SFNT table loading service. - */ - -#define FT_SERVICE_ID_TRUETYPE_ENGINE "truetype-engine" - - /* - * Used to implement FT_Get_TrueType_Engine_Type - */ - - FT_DEFINE_SERVICE( TrueTypeEngine ) - { - FT_TrueTypeEngineType engine_type; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVTTENG_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svttglyf.h b/lib/osx/include/freetype/internal/services/svttglyf.h deleted file mode 100644 index f5cb76a..0000000 --- a/lib/osx/include/freetype/internal/services/svttglyf.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************/ -/* */ -/* svttglyf.h */ -/* */ -/* The FreeType TrueType glyph service. */ -/* */ -/* Copyright 2007-2015 by */ -/* David Turner. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -#ifndef __SVTTGLYF_H__ -#define __SVTTGLYF_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_TRUETYPE_TABLES_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_TT_GLYF "tt-glyf" - - - typedef FT_ULong - (*TT_Glyf_GetLocationFunc)( FT_Face face, - FT_UInt gindex, - FT_ULong *psize ); - - FT_DEFINE_SERVICE( TTGlyf ) - { - TT_Glyf_GetLocationFunc get_location; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_TTGLYFREC( class_, get_location_ ) \ - static const FT_Service_TTGlyfRec class_ = \ - { \ - get_location_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_TTGLYFREC( class_, get_location_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_TTGlyfRec* clazz ) \ - { \ - clazz->get_location = get_location_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - -#endif /* __SVTTGLYF_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/services/svwinfnt.h b/lib/osx/include/freetype/internal/services/svwinfnt.h deleted file mode 100644 index 0036929..0000000 --- a/lib/osx/include/freetype/internal/services/svwinfnt.h +++ /dev/null @@ -1,50 +0,0 @@ -/***************************************************************************/ -/* */ -/* svwinfnt.h */ -/* */ -/* The FreeType Windows FNT/FONT service (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVWINFNT_H__ -#define __SVWINFNT_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_WINFONTS_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_WINFNT "winfonts" - - typedef FT_Error - (*FT_WinFnt_GetHeaderFunc)( FT_Face face, - FT_WinFNT_HeaderRec *aheader ); - - - FT_DEFINE_SERVICE( WinFnt ) - { - FT_WinFnt_GetHeaderFunc get_header; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVWINFNT_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/sfnt.h b/lib/osx/include/freetype/internal/sfnt.h deleted file mode 100644 index 30f53bf..0000000 --- a/lib/osx/include/freetype/internal/sfnt.h +++ /dev/null @@ -1,748 +0,0 @@ -/***************************************************************************/ -/* */ -/* sfnt.h */ -/* */ -/* High-level `sfnt' driver interface (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SFNT_H__ -#define __SFNT_H__ - - -#include <ft2build.h> -#include FT_INTERNAL_DRIVER_H -#include FT_INTERNAL_TRUETYPE_TYPES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Init_Face_Func */ - /* */ - /* <Description> */ - /* First part of the SFNT face object initialization. This finds */ - /* the face in a SFNT file or collection, and load its format tag in */ - /* face->format_tag. */ - /* */ - /* <Input> */ - /* stream :: The input stream. */ - /* */ - /* face :: A handle to the target face object. */ - /* */ - /* face_index :: The index of the TrueType font, if we are opening a */ - /* collection, in bits 0-15. The numbered instance */ - /* index~+~1 of a GX (sub)font, if applicable, in bits */ - /* 16-30. */ - /* */ - /* num_params :: The number of additional parameters. */ - /* */ - /* params :: Optional additional parameters. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* The stream cursor must be at the font file's origin. */ - /* */ - /* This function recognizes fonts embedded in a `TrueType */ - /* collection'. */ - /* */ - /* Once the format tag has been validated by the font driver, it */ - /* should then call the TT_Load_Face_Func() callback to read the rest */ - /* of the SFNT tables in the object. */ - /* */ - typedef FT_Error - (*TT_Init_Face_Func)( FT_Stream stream, - TT_Face face, - FT_Int face_index, - FT_Int num_params, - FT_Parameter* params ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Face_Func */ - /* */ - /* <Description> */ - /* Second part of the SFNT face object initialization. This loads */ - /* the common SFNT tables (head, OS/2, maxp, metrics, etc.) in the */ - /* face object. */ - /* */ - /* <Input> */ - /* stream :: The input stream. */ - /* */ - /* face :: A handle to the target face object. */ - /* */ - /* face_index :: The index of the TrueType font, if we are opening a */ - /* collection, in bits 0-15. The numbered instance */ - /* index~+~1 of a GX (sub)font, if applicable, in bits */ - /* 16-30. */ - /* */ - /* num_params :: The number of additional parameters. */ - /* */ - /* params :: Optional additional parameters. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function must be called after TT_Init_Face_Func(). */ - /* */ - typedef FT_Error - (*TT_Load_Face_Func)( FT_Stream stream, - TT_Face face, - FT_Int face_index, - FT_Int num_params, - FT_Parameter* params ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Done_Face_Func */ - /* */ - /* <Description> */ - /* A callback used to delete the common SFNT data from a face. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* <Note> */ - /* This function does NOT destroy the face object. */ - /* */ - typedef void - (*TT_Done_Face_Func)( TT_Face face ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Any_Func */ - /* */ - /* <Description> */ - /* Load any font table into client memory. */ - /* */ - /* <Input> */ - /* face :: The face object to look for. */ - /* */ - /* tag :: The tag of table to load. Use the value 0 if you want */ - /* to access the whole font file, else set this parameter */ - /* to a valid TrueType table tag that you can forge with */ - /* the MAKE_TT_TAG macro. */ - /* */ - /* offset :: The starting offset in the table (or the file if */ - /* tag == 0). */ - /* */ - /* length :: The address of the decision variable: */ - /* */ - /* If length == NULL: */ - /* Loads the whole table. Returns an error if */ - /* `offset' == 0! */ - /* */ - /* If *length == 0: */ - /* Exits immediately; returning the length of the given */ - /* table or of the font file, depending on the value of */ - /* `tag'. */ - /* */ - /* If *length != 0: */ - /* Loads the next `length' bytes of table or font, */ - /* starting at offset `offset' (in table or font too). */ - /* */ - /* <Output> */ - /* buffer :: The address of target buffer. */ - /* */ - /* <Return> */ - /* TrueType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Load_Any_Func)( TT_Face face, - FT_ULong tag, - FT_Long offset, - FT_Byte *buffer, - FT_ULong* length ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Find_SBit_Image_Func */ - /* */ - /* <Description> */ - /* Check whether an embedded bitmap (an `sbit') exists for a given */ - /* glyph, at a given strike. */ - /* */ - /* <Input> */ - /* face :: The target face object. */ - /* */ - /* glyph_index :: The glyph index. */ - /* */ - /* strike_index :: The current strike index. */ - /* */ - /* <Output> */ - /* arange :: The SBit range containing the glyph index. */ - /* */ - /* astrike :: The SBit strike containing the glyph index. */ - /* */ - /* aglyph_offset :: The offset of the glyph data in `EBDT' table. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. Returns */ - /* SFNT_Err_Invalid_Argument if no sbit exists for the requested */ - /* glyph. */ - /* */ - typedef FT_Error - (*TT_Find_SBit_Image_Func)( TT_Face face, - FT_UInt glyph_index, - FT_ULong strike_index, - TT_SBit_Range *arange, - TT_SBit_Strike *astrike, - FT_ULong *aglyph_offset ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_SBit_Metrics_Func */ - /* */ - /* <Description> */ - /* Get the big metrics for a given embedded bitmap. */ - /* */ - /* <Input> */ - /* stream :: The input stream. */ - /* */ - /* range :: The SBit range containing the glyph. */ - /* */ - /* <Output> */ - /* big_metrics :: A big SBit metrics structure for the glyph. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* The stream cursor must be positioned at the glyph's offset within */ - /* the `EBDT' table before the call. */ - /* */ - /* If the image format uses variable metrics, the stream cursor is */ - /* positioned just after the metrics header in the `EBDT' table on */ - /* function exit. */ - /* */ - typedef FT_Error - (*TT_Load_SBit_Metrics_Func)( FT_Stream stream, - TT_SBit_Range range, - TT_SBit_Metrics metrics ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_SBit_Image_Func */ - /* */ - /* <Description> */ - /* Load a given glyph sbit image from the font resource. This also */ - /* returns its metrics. */ - /* */ - /* <Input> */ - /* face :: */ - /* The target face object. */ - /* */ - /* strike_index :: */ - /* The strike index. */ - /* */ - /* glyph_index :: */ - /* The current glyph index. */ - /* */ - /* load_flags :: */ - /* The current load flags. */ - /* */ - /* stream :: */ - /* The input stream. */ - /* */ - /* <Output> */ - /* amap :: */ - /* The target pixmap. */ - /* */ - /* ametrics :: */ - /* A big sbit metrics structure for the glyph image. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. Returns an error if no */ - /* glyph sbit exists for the index. */ - /* */ - /* <Note> */ - /* The `map.buffer' field is always freed before the glyph is loaded. */ - /* */ - typedef FT_Error - (*TT_Load_SBit_Image_Func)( TT_Face face, - FT_ULong strike_index, - FT_UInt glyph_index, - FT_UInt load_flags, - FT_Stream stream, - FT_Bitmap *amap, - TT_SBit_MetricsRec *ametrics ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Set_SBit_Strike_Func */ - /* */ - /* <Description> */ - /* Select an sbit strike for a given size request. */ - /* */ - /* <Input> */ - /* face :: The target face object. */ - /* */ - /* req :: The size request. */ - /* */ - /* <Output> */ - /* astrike_index :: The index of the sbit strike. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. Returns an error if no */ - /* sbit strike exists for the selected ppem values. */ - /* */ - typedef FT_Error - (*TT_Set_SBit_Strike_Func)( TT_Face face, - FT_Size_Request req, - FT_ULong* astrike_index ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Strike_Metrics_Func */ - /* */ - /* <Description> */ - /* Load the metrics of a given strike. */ - /* */ - /* <Input> */ - /* face :: The target face object. */ - /* */ - /* strike_index :: The strike index. */ - /* */ - /* <Output> */ - /* metrics :: the metrics of the strike. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. Returns an error if no */ - /* such sbit strike exists. */ - /* */ - typedef FT_Error - (*TT_Load_Strike_Metrics_Func)( TT_Face face, - FT_ULong strike_index, - FT_Size_Metrics* metrics ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Get_PS_Name_Func */ - /* */ - /* <Description> */ - /* Get the PostScript glyph name of a glyph. */ - /* */ - /* <Input> */ - /* idx :: The glyph index. */ - /* */ - /* PSname :: The address of a string pointer. Will be NULL in case */ - /* of error, otherwise it is a pointer to the glyph name. */ - /* */ - /* You must not modify the returned string! */ - /* */ - /* <Output> */ - /* FreeType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Get_PS_Name_Func)( TT_Face face, - FT_UInt idx, - FT_String** PSname ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Metrics_Func */ - /* */ - /* <Description> */ - /* Load a metrics table, which is a table with a horizontal and a */ - /* vertical version. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* stream :: The input stream. */ - /* */ - /* vertical :: A boolean flag. If set, load the vertical one. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Load_Metrics_Func)( TT_Face face, - FT_Stream stream, - FT_Bool vertical ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Get_Metrics_Func */ - /* */ - /* <Description> */ - /* Load the horizontal or vertical header in a face object. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* vertical :: A boolean flag. If set, load vertical metrics. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* <Output> */ - /* abearing :: The horizontal (or vertical) bearing. Set to zero in */ - /* case of error. */ - /* */ - /* aadvance :: The horizontal (or vertical) advance. Set to zero in */ - /* case of error. */ - /* */ - typedef void - (*TT_Get_Metrics_Func)( TT_Face face, - FT_Bool vertical, - FT_UInt gindex, - FT_Short* abearing, - FT_UShort* aadvance ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Get_Name_Func */ - /* */ - /* <Description> */ - /* From the `name' table, return a given ENGLISH name record in */ - /* ASCII. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* nameid :: The name id of the name record to return. */ - /* */ - /* <InOut> */ - /* name :: The address of an allocated string pointer. NULL if */ - /* no name is present. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Get_Name_Func)( TT_Face face, - FT_UShort nameid, - FT_String** name ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Table_Func */ - /* */ - /* <Description> */ - /* Load a given TrueType table. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* stream :: The input stream. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* The function uses `face->goto_table' to seek the stream to the */ - /* start of the table, except while loading the font directory. */ - /* */ - typedef FT_Error - (*TT_Load_Table_Func)( TT_Face face, - FT_Stream stream ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Free_Table_Func */ - /* */ - /* <Description> */ - /* Free a given TrueType table. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - typedef void - (*TT_Free_Table_Func)( TT_Face face ); - - - /* - * @functype: - * TT_Face_GetKerningFunc - * - * @description: - * Return the horizontal kerning value between two glyphs. - * - * @input: - * face :: A handle to the source face object. - * left_glyph :: The left glyph index. - * right_glyph :: The right glyph index. - * - * @return: - * The kerning value in font units. - */ - typedef FT_Int - (*TT_Face_GetKerningFunc)( TT_Face face, - FT_UInt left_glyph, - FT_UInt right_glyph ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* SFNT_Interface */ - /* */ - /* <Description> */ - /* This structure holds pointers to the functions used to load and */ - /* free the basic tables that are required in a `sfnt' font file. */ - /* */ - /* <Fields> */ - /* Check the various xxx_Func() descriptions for details. */ - /* */ - typedef struct SFNT_Interface_ - { - TT_Loader_GotoTableFunc goto_table; - - TT_Init_Face_Func init_face; - TT_Load_Face_Func load_face; - TT_Done_Face_Func done_face; - FT_Module_Requester get_interface; - - TT_Load_Any_Func load_any; - - /* these functions are called by `load_face' but they can also */ - /* be called from external modules, if there is a need to do so */ - TT_Load_Table_Func load_head; - TT_Load_Metrics_Func load_hhea; - TT_Load_Table_Func load_cmap; - TT_Load_Table_Func load_maxp; - TT_Load_Table_Func load_os2; - TT_Load_Table_Func load_post; - - TT_Load_Table_Func load_name; - TT_Free_Table_Func free_name; - - /* this field was called `load_kerning' up to version 2.1.10 */ - TT_Load_Table_Func load_kern; - - TT_Load_Table_Func load_gasp; - TT_Load_Table_Func load_pclt; - - /* see `ttload.h'; this field was called `load_bitmap_header' up to */ - /* version 2.1.10 */ - TT_Load_Table_Func load_bhed; - - TT_Load_SBit_Image_Func load_sbit_image; - - /* see `ttpost.h' */ - TT_Get_PS_Name_Func get_psname; - TT_Free_Table_Func free_psnames; - - /* starting here, the structure differs from version 2.1.7 */ - - /* this field was introduced in version 2.1.8, named `get_psname' */ - TT_Face_GetKerningFunc get_kerning; - - /* new elements introduced after version 2.1.10 */ - - /* load the font directory, i.e., the offset table and */ - /* the table directory */ - TT_Load_Table_Func load_font_dir; - TT_Load_Metrics_Func load_hmtx; - - TT_Load_Table_Func load_eblc; - TT_Free_Table_Func free_eblc; - - TT_Set_SBit_Strike_Func set_sbit_strike; - TT_Load_Strike_Metrics_Func load_strike_metrics; - - TT_Get_Metrics_Func get_metrics; - - TT_Get_Name_Func get_name; - - } SFNT_Interface; - - - /* transitional */ - typedef SFNT_Interface* SFNT_Service; - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SFNT_INTERFACE( \ - class_, \ - goto_table_, \ - init_face_, \ - load_face_, \ - done_face_, \ - get_interface_, \ - load_any_, \ - load_head_, \ - load_hhea_, \ - load_cmap_, \ - load_maxp_, \ - load_os2_, \ - load_post_, \ - load_name_, \ - free_name_, \ - load_kern_, \ - load_gasp_, \ - load_pclt_, \ - load_bhed_, \ - load_sbit_image_, \ - get_psname_, \ - free_psnames_, \ - get_kerning_, \ - load_font_dir_, \ - load_hmtx_, \ - load_eblc_, \ - free_eblc_, \ - set_sbit_strike_, \ - load_strike_metrics_, \ - get_metrics_, \ - get_name_ ) \ - static const SFNT_Interface class_ = \ - { \ - goto_table_, \ - init_face_, \ - load_face_, \ - done_face_, \ - get_interface_, \ - load_any_, \ - load_head_, \ - load_hhea_, \ - load_cmap_, \ - load_maxp_, \ - load_os2_, \ - load_post_, \ - load_name_, \ - free_name_, \ - load_kern_, \ - load_gasp_, \ - load_pclt_, \ - load_bhed_, \ - load_sbit_image_, \ - get_psname_, \ - free_psnames_, \ - get_kerning_, \ - load_font_dir_, \ - load_hmtx_, \ - load_eblc_, \ - free_eblc_, \ - set_sbit_strike_, \ - load_strike_metrics_, \ - get_metrics_, \ - get_name_, \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_INTERNAL( a, a_ ) \ - clazz->a = a_; - -#define FT_DEFINE_SFNT_INTERFACE( \ - class_, \ - goto_table_, \ - init_face_, \ - load_face_, \ - done_face_, \ - get_interface_, \ - load_any_, \ - load_head_, \ - load_hhea_, \ - load_cmap_, \ - load_maxp_, \ - load_os2_, \ - load_post_, \ - load_name_, \ - free_name_, \ - load_kern_, \ - load_gasp_, \ - load_pclt_, \ - load_bhed_, \ - load_sbit_image_, \ - get_psname_, \ - free_psnames_, \ - get_kerning_, \ - load_font_dir_, \ - load_hmtx_, \ - load_eblc_, \ - free_eblc_, \ - set_sbit_strike_, \ - load_strike_metrics_, \ - get_metrics_, \ - get_name_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - SFNT_Interface* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->goto_table = goto_table_; \ - clazz->init_face = init_face_; \ - clazz->load_face = load_face_; \ - clazz->done_face = done_face_; \ - clazz->get_interface = get_interface_; \ - clazz->load_any = load_any_; \ - clazz->load_head = load_head_; \ - clazz->load_hhea = load_hhea_; \ - clazz->load_cmap = load_cmap_; \ - clazz->load_maxp = load_maxp_; \ - clazz->load_os2 = load_os2_; \ - clazz->load_post = load_post_; \ - clazz->load_name = load_name_; \ - clazz->free_name = free_name_; \ - clazz->load_kern = load_kern_; \ - clazz->load_gasp = load_gasp_; \ - clazz->load_pclt = load_pclt_; \ - clazz->load_bhed = load_bhed_; \ - clazz->load_sbit_image = load_sbit_image_; \ - clazz->get_psname = get_psname_; \ - clazz->free_psnames = free_psnames_; \ - clazz->get_kerning = get_kerning_; \ - clazz->load_font_dir = load_font_dir_; \ - clazz->load_hmtx = load_hmtx_; \ - clazz->load_eblc = load_eblc_; \ - clazz->free_eblc = free_eblc_; \ - clazz->set_sbit_strike = set_sbit_strike_; \ - clazz->load_strike_metrics = load_strike_metrics_; \ - clazz->get_metrics = get_metrics_; \ - clazz->get_name = get_name_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - -FT_END_HEADER - -#endif /* __SFNT_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/t1types.h b/lib/osx/include/freetype/internal/t1types.h deleted file mode 100644 index 029acc4..0000000 --- a/lib/osx/include/freetype/internal/t1types.h +++ /dev/null @@ -1,255 +0,0 @@ -/***************************************************************************/ -/* */ -/* t1types.h */ -/* */ -/* Basic Type1/Type2 type definitions and interface (specification */ -/* only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __T1TYPES_H__ -#define __T1TYPES_H__ - - -#include <ft2build.h> -#include FT_TYPE1_TABLES_H -#include FT_INTERNAL_POSTSCRIPT_HINTS_H -#include FT_INTERNAL_SERVICE_H -#include FT_SERVICE_POSTSCRIPT_CMAPS_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** REQUIRED TYPE1/TYPE2 TABLES DEFINITIONS ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_EncodingRec */ - /* */ - /* <Description> */ - /* A structure modeling a custom encoding. */ - /* */ - /* <Fields> */ - /* num_chars :: The number of character codes in the encoding. */ - /* Usually 256. */ - /* */ - /* code_first :: The lowest valid character code in the encoding. */ - /* */ - /* code_last :: The highest valid character code in the encoding */ - /* + 1. When equal to code_first there are no valid */ - /* character codes. */ - /* */ - /* char_index :: An array of corresponding glyph indices. */ - /* */ - /* char_name :: An array of corresponding glyph names. */ - /* */ - typedef struct T1_EncodingRecRec_ - { - FT_Int num_chars; - FT_Int code_first; - FT_Int code_last; - - FT_UShort* char_index; - FT_String** char_name; - - } T1_EncodingRec, *T1_Encoding; - - - /* used to hold extra data of PS_FontInfoRec that - * cannot be stored in the publicly defined structure. - * - * Note these can't be blended with multiple-masters. - */ - typedef struct PS_FontExtraRec_ - { - FT_UShort fs_type; - - } PS_FontExtraRec; - - - typedef struct T1_FontRec_ - { - PS_FontInfoRec font_info; /* font info dictionary */ - PS_FontExtraRec font_extra; /* font info extra fields */ - PS_PrivateRec private_dict; /* private dictionary */ - FT_String* font_name; /* top-level dictionary */ - - T1_EncodingType encoding_type; - T1_EncodingRec encoding; - - FT_Byte* subrs_block; - FT_Byte* charstrings_block; - FT_Byte* glyph_names_block; - - FT_Int num_subrs; - FT_Byte** subrs; - FT_UInt* subrs_len; - - FT_Int num_glyphs; - FT_String** glyph_names; /* array of glyph names */ - FT_Byte** charstrings; /* array of glyph charstrings */ - FT_UInt* charstrings_len; - - FT_Byte paint_type; - FT_Byte font_type; - FT_Matrix font_matrix; - FT_Vector font_offset; - FT_BBox font_bbox; - FT_Long font_id; - - FT_Fixed stroke_width; - - } T1_FontRec, *T1_Font; - - - typedef struct CID_SubrsRec_ - { - FT_Int num_subrs; - FT_Byte** code; - - } CID_SubrsRec, *CID_Subrs; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** AFM FONT INFORMATION STRUCTURES ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct AFM_TrackKernRec_ - { - FT_Int degree; - FT_Fixed min_ptsize; - FT_Fixed min_kern; - FT_Fixed max_ptsize; - FT_Fixed max_kern; - - } AFM_TrackKernRec, *AFM_TrackKern; - - typedef struct AFM_KernPairRec_ - { - FT_UInt index1; - FT_UInt index2; - FT_Int x; - FT_Int y; - - } AFM_KernPairRec, *AFM_KernPair; - - typedef struct AFM_FontInfoRec_ - { - FT_Bool IsCIDFont; - FT_BBox FontBBox; - FT_Fixed Ascender; - FT_Fixed Descender; - AFM_TrackKern TrackKerns; /* free if non-NULL */ - FT_UInt NumTrackKern; - AFM_KernPair KernPairs; /* free if non-NULL */ - FT_UInt NumKernPair; - - } AFM_FontInfoRec, *AFM_FontInfo; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** ORIGINAL T1_FACE CLASS DEFINITION ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - typedef struct T1_FaceRec_* T1_Face; - typedef struct CID_FaceRec_* CID_Face; - - - typedef struct T1_FaceRec_ - { - FT_FaceRec root; - T1_FontRec type1; - const void* psnames; - const void* psaux; - const void* afm_data; - FT_CharMapRec charmaprecs[2]; - FT_CharMap charmaps[2]; - - /* support for Multiple Masters fonts */ - PS_Blend blend; - - /* undocumented, optional: indices of subroutines that express */ - /* the NormalizeDesignVector and the ConvertDesignVector procedure, */ - /* respectively, as Type 2 charstrings; -1 if keywords not present */ - FT_Int ndv_idx; - FT_Int cdv_idx; - - /* undocumented, optional: has the same meaning as len_buildchar */ - /* for Type 2 fonts; manipulated by othersubrs 19, 24, and 25 */ - FT_UInt len_buildchar; - FT_Long* buildchar; - - /* since version 2.1 - interface to PostScript hinter */ - const void* pshinter; - - } T1_FaceRec; - - - typedef struct CID_FaceRec_ - { - FT_FaceRec root; - void* psnames; - void* psaux; - CID_FaceInfoRec cid; - PS_FontExtraRec font_extra; -#if 0 - void* afm_data; -#endif - CID_Subrs subrs; - - /* since version 2.1 - interface to PostScript hinter */ - void* pshinter; - - /* since version 2.1.8, but was originally positioned after `afm_data' */ - FT_Byte* binary_data; /* used if hex data has been converted */ - FT_Stream cid_stream; - - } CID_FaceRec; - - -FT_END_HEADER - -#endif /* __T1TYPES_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/internal/tttypes.h b/lib/osx/include/freetype/internal/tttypes.h deleted file mode 100644 index 000c5a8..0000000 --- a/lib/osx/include/freetype/internal/tttypes.h +++ /dev/null @@ -1,1529 +0,0 @@ -/***************************************************************************/ -/* */ -/* tttypes.h */ -/* */ -/* Basic SFNT/TrueType type definitions and interface (specification */ -/* only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTTYPES_H__ -#define __TTTYPES_H__ - - -#include <ft2build.h> -#include FT_TRUETYPE_TABLES_H -#include FT_INTERNAL_OBJECTS_H - -#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT -#include FT_MULTIPLE_MASTERS_H -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** REQUIRED TRUETYPE/OPENTYPE TABLES DEFINITIONS ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TTC_HeaderRec */ - /* */ - /* <Description> */ - /* TrueType collection header. This table contains the offsets of */ - /* the font headers of each distinct TrueType face in the file. */ - /* */ - /* <Fields> */ - /* tag :: Must be `ttc ' to indicate a TrueType collection. */ - /* */ - /* version :: The version number. */ - /* */ - /* count :: The number of faces in the collection. The */ - /* specification says this should be an unsigned long, but */ - /* we use a signed long since we need the value -1 for */ - /* specific purposes. */ - /* */ - /* offsets :: The offsets of the font headers, one per face. */ - /* */ - typedef struct TTC_HeaderRec_ - { - FT_ULong tag; - FT_Fixed version; - FT_Long count; - FT_ULong* offsets; - - } TTC_HeaderRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* SFNT_HeaderRec */ - /* */ - /* <Description> */ - /* SFNT file format header. */ - /* */ - /* <Fields> */ - /* format_tag :: The font format tag. */ - /* */ - /* num_tables :: The number of tables in file. */ - /* */ - /* search_range :: Must be `16 * (max power of 2 <= num_tables)'. */ - /* */ - /* entry_selector :: Must be log2 of `search_range / 16'. */ - /* */ - /* range_shift :: Must be `num_tables * 16 - search_range'. */ - /* */ - typedef struct SFNT_HeaderRec_ - { - FT_ULong format_tag; - FT_UShort num_tables; - FT_UShort search_range; - FT_UShort entry_selector; - FT_UShort range_shift; - - FT_ULong offset; /* not in file */ - - } SFNT_HeaderRec, *SFNT_Header; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_TableRec */ - /* */ - /* <Description> */ - /* This structure describes a given table of a TrueType font. */ - /* */ - /* <Fields> */ - /* Tag :: A four-bytes tag describing the table. */ - /* */ - /* CheckSum :: The table checksum. This value can be ignored. */ - /* */ - /* Offset :: The offset of the table from the start of the TrueType */ - /* font in its resource. */ - /* */ - /* Length :: The table length (in bytes). */ - /* */ - typedef struct TT_TableRec_ - { - FT_ULong Tag; /* table type */ - FT_ULong CheckSum; /* table checksum */ - FT_ULong Offset; /* table file offset */ - FT_ULong Length; /* table length */ - - } TT_TableRec, *TT_Table; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* WOFF_HeaderRec */ - /* */ - /* <Description> */ - /* WOFF file format header. */ - /* */ - /* <Fields> */ - /* See */ - /* */ - /* http://www.w3.org/TR/WOFF/#WOFFHeader */ - /* */ - typedef struct WOFF_HeaderRec_ - { - FT_ULong signature; - FT_ULong flavor; - FT_ULong length; - FT_UShort num_tables; - FT_UShort reserved; - FT_ULong totalSfntSize; - FT_UShort majorVersion; - FT_UShort minorVersion; - FT_ULong metaOffset; - FT_ULong metaLength; - FT_ULong metaOrigLength; - FT_ULong privOffset; - FT_ULong privLength; - - } WOFF_HeaderRec, *WOFF_Header; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* WOFF_TableRec */ - /* */ - /* <Description> */ - /* This structure describes a given table of a WOFF font. */ - /* */ - /* <Fields> */ - /* Tag :: A four-bytes tag describing the table. */ - /* */ - /* Offset :: The offset of the table from the start of the WOFF */ - /* font in its resource. */ - /* */ - /* CompLength :: Compressed table length (in bytes). */ - /* */ - /* OrigLength :: Unompressed table length (in bytes). */ - /* */ - /* CheckSum :: The table checksum. This value can be ignored. */ - /* */ - /* OrigOffset :: The uncompressed table file offset. This value gets */ - /* computed while constructing the (uncompressed) SFNT */ - /* header. It is not contained in the WOFF file. */ - /* */ - typedef struct WOFF_TableRec_ - { - FT_ULong Tag; /* table ID */ - FT_ULong Offset; /* table file offset */ - FT_ULong CompLength; /* compressed table length */ - FT_ULong OrigLength; /* uncompressed table length */ - FT_ULong CheckSum; /* uncompressed checksum */ - - FT_ULong OrigOffset; /* uncompressed table file offset */ - /* (not in the WOFF file) */ - } WOFF_TableRec, *WOFF_Table; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_LongMetricsRec */ - /* */ - /* <Description> */ - /* A structure modeling the long metrics of the `hmtx' and `vmtx' */ - /* TrueType tables. The values are expressed in font units. */ - /* */ - /* <Fields> */ - /* advance :: The advance width or height for the glyph. */ - /* */ - /* bearing :: The left-side or top-side bearing for the glyph. */ - /* */ - typedef struct TT_LongMetricsRec_ - { - FT_UShort advance; - FT_Short bearing; - - } TT_LongMetricsRec, *TT_LongMetrics; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* TT_ShortMetrics */ - /* */ - /* <Description> */ - /* A simple type to model the short metrics of the `hmtx' and `vmtx' */ - /* tables. */ - /* */ - typedef FT_Short TT_ShortMetrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_NameEntryRec */ - /* */ - /* <Description> */ - /* A structure modeling TrueType name records. Name records are used */ - /* to store important strings like family name, style name, */ - /* copyright, etc. in _localized_ versions (i.e., language, encoding, */ - /* etc). */ - /* */ - /* <Fields> */ - /* platformID :: The ID of the name's encoding platform. */ - /* */ - /* encodingID :: The platform-specific ID for the name's encoding. */ - /* */ - /* languageID :: The platform-specific ID for the name's language. */ - /* */ - /* nameID :: The ID specifying what kind of name this is. */ - /* */ - /* stringLength :: The length of the string in bytes. */ - /* */ - /* stringOffset :: The offset to the string in the `name' table. */ - /* */ - /* string :: A pointer to the string's bytes. Note that these */ - /* are usually UTF-16 encoded characters. */ - /* */ - typedef struct TT_NameEntryRec_ - { - FT_UShort platformID; - FT_UShort encodingID; - FT_UShort languageID; - FT_UShort nameID; - FT_UShort stringLength; - FT_ULong stringOffset; - - /* this last field is not defined in the spec */ - /* but used by the FreeType engine */ - - FT_Byte* string; - - } TT_NameEntryRec, *TT_NameEntry; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_NameTableRec */ - /* */ - /* <Description> */ - /* A structure modeling the TrueType name table. */ - /* */ - /* <Fields> */ - /* format :: The format of the name table. */ - /* */ - /* numNameRecords :: The number of names in table. */ - /* */ - /* storageOffset :: The offset of the name table in the `name' */ - /* TrueType table. */ - /* */ - /* names :: An array of name records. */ - /* */ - /* stream :: the file's input stream. */ - /* */ - typedef struct TT_NameTableRec_ - { - FT_UShort format; - FT_UInt numNameRecords; - FT_UInt storageOffset; - TT_NameEntryRec* names; - FT_Stream stream; - - } TT_NameTableRec, *TT_NameTable; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** OPTIONAL TRUETYPE/OPENTYPE TABLES DEFINITIONS ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_GaspRangeRec */ - /* */ - /* <Description> */ - /* A tiny structure used to model a gasp range according to the */ - /* TrueType specification. */ - /* */ - /* <Fields> */ - /* maxPPEM :: The maximum ppem value to which `gaspFlag' applies. */ - /* */ - /* gaspFlag :: A flag describing the grid-fitting and anti-aliasing */ - /* modes to be used. */ - /* */ - typedef struct TT_GaspRangeRec_ - { - FT_UShort maxPPEM; - FT_UShort gaspFlag; - - } TT_GaspRangeRec, *TT_GaspRange; - - -#define TT_GASP_GRIDFIT 0x01 -#define TT_GASP_DOGRAY 0x02 - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_GaspRec */ - /* */ - /* <Description> */ - /* A structure modeling the TrueType `gasp' table used to specify */ - /* grid-fitting and anti-aliasing behaviour. */ - /* */ - /* <Fields> */ - /* version :: The version number. */ - /* */ - /* numRanges :: The number of gasp ranges in table. */ - /* */ - /* gaspRanges :: An array of gasp ranges. */ - /* */ - typedef struct TT_Gasp_ - { - FT_UShort version; - FT_UShort numRanges; - TT_GaspRange gaspRanges; - - } TT_GaspRec; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** EMBEDDED BITMAPS SUPPORT ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_MetricsRec */ - /* */ - /* <Description> */ - /* A structure used to hold the big metrics of a given glyph bitmap */ - /* in a TrueType or OpenType font. These are usually found in the */ - /* `EBDT' (Microsoft) or `bloc' (Apple) table. */ - /* */ - /* <Fields> */ - /* height :: The glyph height in pixels. */ - /* */ - /* width :: The glyph width in pixels. */ - /* */ - /* horiBearingX :: The horizontal left bearing. */ - /* */ - /* horiBearingY :: The horizontal top bearing. */ - /* */ - /* horiAdvance :: The horizontal advance. */ - /* */ - /* vertBearingX :: The vertical left bearing. */ - /* */ - /* vertBearingY :: The vertical top bearing. */ - /* */ - /* vertAdvance :: The vertical advance. */ - /* */ - typedef struct TT_SBit_MetricsRec_ - { - FT_UShort height; - FT_UShort width; - - FT_Short horiBearingX; - FT_Short horiBearingY; - FT_UShort horiAdvance; - - FT_Short vertBearingX; - FT_Short vertBearingY; - FT_UShort vertAdvance; - - } TT_SBit_MetricsRec, *TT_SBit_Metrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_SmallMetricsRec */ - /* */ - /* <Description> */ - /* A structure used to hold the small metrics of a given glyph bitmap */ - /* in a TrueType or OpenType font. These are usually found in the */ - /* `EBDT' (Microsoft) or the `bdat' (Apple) table. */ - /* */ - /* <Fields> */ - /* height :: The glyph height in pixels. */ - /* */ - /* width :: The glyph width in pixels. */ - /* */ - /* bearingX :: The left-side bearing. */ - /* */ - /* bearingY :: The top-side bearing. */ - /* */ - /* advance :: The advance width or height. */ - /* */ - typedef struct TT_SBit_Small_Metrics_ - { - FT_Byte height; - FT_Byte width; - - FT_Char bearingX; - FT_Char bearingY; - FT_Byte advance; - - } TT_SBit_SmallMetricsRec, *TT_SBit_SmallMetrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_LineMetricsRec */ - /* */ - /* <Description> */ - /* A structure used to describe the text line metrics of a given */ - /* bitmap strike, for either a horizontal or vertical layout. */ - /* */ - /* <Fields> */ - /* ascender :: The ascender in pixels. */ - /* */ - /* descender :: The descender in pixels. */ - /* */ - /* max_width :: The maximum glyph width in pixels. */ - /* */ - /* caret_slope_enumerator :: Rise of the caret slope, typically set */ - /* to 1 for non-italic fonts. */ - /* */ - /* caret_slope_denominator :: Rise of the caret slope, typically set */ - /* to 0 for non-italic fonts. */ - /* */ - /* caret_offset :: Offset in pixels to move the caret for */ - /* proper positioning. */ - /* */ - /* min_origin_SB :: Minimum of horiBearingX (resp. */ - /* vertBearingY). */ - /* min_advance_SB :: Minimum of */ - /* */ - /* horizontal advance - */ - /* ( horiBearingX + width ) */ - /* */ - /* resp. */ - /* */ - /* vertical advance - */ - /* ( vertBearingY + height ) */ - /* */ - /* max_before_BL :: Maximum of horiBearingY (resp. */ - /* vertBearingY). */ - /* */ - /* min_after_BL :: Minimum of */ - /* */ - /* horiBearingY - height */ - /* */ - /* resp. */ - /* */ - /* vertBearingX - width */ - /* */ - /* pads :: Unused (to make the size of the record */ - /* a multiple of 32 bits. */ - /* */ - typedef struct TT_SBit_LineMetricsRec_ - { - FT_Char ascender; - FT_Char descender; - FT_Byte max_width; - FT_Char caret_slope_numerator; - FT_Char caret_slope_denominator; - FT_Char caret_offset; - FT_Char min_origin_SB; - FT_Char min_advance_SB; - FT_Char max_before_BL; - FT_Char min_after_BL; - FT_Char pads[2]; - - } TT_SBit_LineMetricsRec, *TT_SBit_LineMetrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_RangeRec */ - /* */ - /* <Description> */ - /* A TrueType/OpenType subIndexTable as defined in the `EBLC' */ - /* (Microsoft) or `bloc' (Apple) tables. */ - /* */ - /* <Fields> */ - /* first_glyph :: The first glyph index in the range. */ - /* */ - /* last_glyph :: The last glyph index in the range. */ - /* */ - /* index_format :: The format of index table. Valid values are 1 */ - /* to 5. */ - /* */ - /* image_format :: The format of `EBDT' image data. */ - /* */ - /* image_offset :: The offset to image data in `EBDT'. */ - /* */ - /* image_size :: For index formats 2 and 5. This is the size in */ - /* bytes of each glyph bitmap. */ - /* */ - /* big_metrics :: For index formats 2 and 5. This is the big */ - /* metrics for each glyph bitmap. */ - /* */ - /* num_glyphs :: For index formats 4 and 5. This is the number of */ - /* glyphs in the code array. */ - /* */ - /* glyph_offsets :: For index formats 1 and 3. */ - /* */ - /* glyph_codes :: For index formats 4 and 5. */ - /* */ - /* table_offset :: The offset of the index table in the `EBLC' */ - /* table. Only used during strike loading. */ - /* */ - typedef struct TT_SBit_RangeRec_ - { - FT_UShort first_glyph; - FT_UShort last_glyph; - - FT_UShort index_format; - FT_UShort image_format; - FT_ULong image_offset; - - FT_ULong image_size; - TT_SBit_MetricsRec metrics; - FT_ULong num_glyphs; - - FT_ULong* glyph_offsets; - FT_UShort* glyph_codes; - - FT_ULong table_offset; - - } TT_SBit_RangeRec, *TT_SBit_Range; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_StrikeRec */ - /* */ - /* <Description> */ - /* A structure used describe a given bitmap strike in the `EBLC' */ - /* (Microsoft) or `bloc' (Apple) tables. */ - /* */ - /* <Fields> */ - /* num_index_ranges :: The number of index ranges. */ - /* */ - /* index_ranges :: An array of glyph index ranges. */ - /* */ - /* color_ref :: Unused. `color_ref' is put in for future */ - /* enhancements, but these fields are already */ - /* in use by other platforms (e.g. Newton). */ - /* For details, please see */ - /* */ - /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6bloc.html */ - /* */ - /* hori :: The line metrics for horizontal layouts. */ - /* */ - /* vert :: The line metrics for vertical layouts. */ - /* */ - /* start_glyph :: The lowest glyph index for this strike. */ - /* */ - /* end_glyph :: The highest glyph index for this strike. */ - /* */ - /* x_ppem :: The number of horizontal pixels per EM. */ - /* */ - /* y_ppem :: The number of vertical pixels per EM. */ - /* */ - /* bit_depth :: The bit depth. Valid values are 1, 2, 4, */ - /* and 8. */ - /* */ - /* flags :: Is this a vertical or horizontal strike? For */ - /* details, please see */ - /* */ - /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6bloc.html */ - /* */ - typedef struct TT_SBit_StrikeRec_ - { - FT_Int num_ranges; - TT_SBit_Range sbit_ranges; - FT_ULong ranges_offset; - - FT_ULong color_ref; - - TT_SBit_LineMetricsRec hori; - TT_SBit_LineMetricsRec vert; - - FT_UShort start_glyph; - FT_UShort end_glyph; - - FT_Byte x_ppem; - FT_Byte y_ppem; - - FT_Byte bit_depth; - FT_Char flags; - - } TT_SBit_StrikeRec, *TT_SBit_Strike; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_ComponentRec */ - /* */ - /* <Description> */ - /* A simple structure to describe a compound sbit element. */ - /* */ - /* <Fields> */ - /* glyph_code :: The element's glyph index. */ - /* */ - /* x_offset :: The element's left bearing. */ - /* */ - /* y_offset :: The element's top bearing. */ - /* */ - typedef struct TT_SBit_ComponentRec_ - { - FT_UShort glyph_code; - FT_Char x_offset; - FT_Char y_offset; - - } TT_SBit_ComponentRec, *TT_SBit_Component; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_ScaleRec */ - /* */ - /* <Description> */ - /* A structure used describe a given bitmap scaling table, as defined */ - /* in the `EBSC' table. */ - /* */ - /* <Fields> */ - /* hori :: The horizontal line metrics. */ - /* */ - /* vert :: The vertical line metrics. */ - /* */ - /* x_ppem :: The number of horizontal pixels per EM. */ - /* */ - /* y_ppem :: The number of vertical pixels per EM. */ - /* */ - /* x_ppem_substitute :: Substitution x_ppem value. */ - /* */ - /* y_ppem_substitute :: Substitution y_ppem value. */ - /* */ - typedef struct TT_SBit_ScaleRec_ - { - TT_SBit_LineMetricsRec hori; - TT_SBit_LineMetricsRec vert; - - FT_Byte x_ppem; - FT_Byte y_ppem; - - FT_Byte x_ppem_substitute; - FT_Byte y_ppem_substitute; - - } TT_SBit_ScaleRec, *TT_SBit_Scale; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** POSTSCRIPT GLYPH NAMES SUPPORT ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Post_20Rec */ - /* */ - /* <Description> */ - /* Postscript names sub-table, format 2.0. Stores the PS name of */ - /* each glyph in the font face. */ - /* */ - /* <Fields> */ - /* num_glyphs :: The number of named glyphs in the table. */ - /* */ - /* num_names :: The number of PS names stored in the table. */ - /* */ - /* glyph_indices :: The indices of the glyphs in the names arrays. */ - /* */ - /* glyph_names :: The PS names not in Mac Encoding. */ - /* */ - typedef struct TT_Post_20Rec_ - { - FT_UShort num_glyphs; - FT_UShort num_names; - FT_UShort* glyph_indices; - FT_Char** glyph_names; - - } TT_Post_20Rec, *TT_Post_20; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Post_25Rec */ - /* */ - /* <Description> */ - /* Postscript names sub-table, format 2.5. Stores the PS name of */ - /* each glyph in the font face. */ - /* */ - /* <Fields> */ - /* num_glyphs :: The number of glyphs in the table. */ - /* */ - /* offsets :: An array of signed offsets in a normal Mac */ - /* Postscript name encoding. */ - /* */ - typedef struct TT_Post_25_ - { - FT_UShort num_glyphs; - FT_Char* offsets; - - } TT_Post_25Rec, *TT_Post_25; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Post_NamesRec */ - /* */ - /* <Description> */ - /* Postscript names table, either format 2.0 or 2.5. */ - /* */ - /* <Fields> */ - /* loaded :: A flag to indicate whether the PS names are loaded. */ - /* */ - /* format_20 :: The sub-table used for format 2.0. */ - /* */ - /* format_25 :: The sub-table used for format 2.5. */ - /* */ - typedef struct TT_Post_NamesRec_ - { - FT_Bool loaded; - - union - { - TT_Post_20Rec format_20; - TT_Post_25Rec format_25; - - } names; - - } TT_Post_NamesRec, *TT_Post_Names; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** GX VARIATION TABLE SUPPORT ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - -#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT - typedef struct GX_BlendRec_ *GX_Blend; -#endif - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** EMBEDDED BDF PROPERTIES TABLE SUPPORT ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - /* - * These types are used to support a `BDF ' table that isn't part of the - * official TrueType specification. It is mainly used in SFNT-based - * bitmap fonts that were generated from a set of BDF fonts. - * - * The format of the table is as follows. - * - * USHORT version `BDF ' table version number, should be 0x0001. - * USHORT strikeCount Number of strikes (bitmap sizes) in this table. - * ULONG stringTable Offset (from start of BDF table) to string - * table. - * - * This is followed by an array of `strikeCount' descriptors, having the - * following format. - * - * USHORT ppem Vertical pixels per EM for this strike. - * USHORT numItems Number of items for this strike (properties and - * atoms). Maximum is 255. - * - * This array in turn is followed by `strikeCount' value sets. Each - * `value set' is an array of `numItems' items with the following format. - * - * ULONG item_name Offset in string table to item name. - * USHORT item_type The item type. Possible values are - * 0 => string (e.g., COMMENT) - * 1 => atom (e.g., FONT or even SIZE) - * 2 => int32 - * 3 => uint32 - * 0x10 => A flag to indicate a properties. This - * is ORed with the above values. - * ULONG item_value For strings => Offset into string table without - * the corresponding double quotes. - * For atoms => Offset into string table. - * For integers => Direct value. - * - * All strings in the string table consist of bytes and are - * zero-terminated. - * - */ - -#ifdef TT_CONFIG_OPTION_BDF - - typedef struct TT_BDFRec_ - { - FT_Byte* table; - FT_Byte* table_end; - FT_Byte* strings; - FT_ULong strings_size; - FT_UInt num_strikes; - FT_Bool loaded; - - } TT_BDFRec, *TT_BDF; - -#endif /* TT_CONFIG_OPTION_BDF */ - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** ORIGINAL TT_FACE CLASS DEFINITION ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This structure/class is defined here because it is common to the */ - /* following formats: TTF, OpenType-TT, and OpenType-CFF. */ - /* */ - /* Note, however, that the classes TT_Size and TT_GlyphSlot are not */ - /* shared between font drivers, and are thus defined in `ttobjs.h'. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* TT_Face */ - /* */ - /* <Description> */ - /* A handle to a TrueType face/font object. A TT_Face encapsulates */ - /* the resolution and scaling independent parts of a TrueType font */ - /* resource. */ - /* */ - /* <Note> */ - /* The TT_Face structure is also used as a `parent class' for the */ - /* OpenType-CFF class (T2_Face). */ - /* */ - typedef struct TT_FaceRec_* TT_Face; - - - /* a function type used for the truetype bytecode interpreter hooks */ - typedef FT_Error - (*TT_Interpreter)( void* exec_context ); - - /* forward declaration */ - typedef struct TT_LoaderRec_* TT_Loader; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Loader_GotoTableFunc */ - /* */ - /* <Description> */ - /* Seeks a stream to the start of a given TrueType table. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* tag :: A 4-byte tag used to name the table. */ - /* */ - /* stream :: The input stream. */ - /* */ - /* <Output> */ - /* length :: The length of the table in bytes. Set to 0 if not */ - /* needed. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* The stream cursor must be at the font file's origin. */ - /* */ - typedef FT_Error - (*TT_Loader_GotoTableFunc)( TT_Face face, - FT_ULong tag, - FT_Stream stream, - FT_ULong* length ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Loader_StartGlyphFunc */ - /* */ - /* <Description> */ - /* Seeks a stream to the start of a given glyph element, and opens a */ - /* frame for it. */ - /* */ - /* <Input> */ - /* loader :: The current TrueType glyph loader object. */ - /* */ - /* glyph index :: The index of the glyph to access. */ - /* */ - /* offset :: The offset of the glyph according to the */ - /* `locations' table. */ - /* */ - /* byte_count :: The size of the frame in bytes. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function is normally equivalent to FT_STREAM_SEEK(offset) */ - /* followed by FT_FRAME_ENTER(byte_count) with the loader's stream, */ - /* but alternative formats (e.g. compressed ones) might use something */ - /* different. */ - /* */ - typedef FT_Error - (*TT_Loader_StartGlyphFunc)( TT_Loader loader, - FT_UInt glyph_index, - FT_ULong offset, - FT_UInt byte_count ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Loader_ReadGlyphFunc */ - /* */ - /* <Description> */ - /* Reads one glyph element (its header, a simple glyph, or a */ - /* composite) from the loader's current stream frame. */ - /* */ - /* <Input> */ - /* loader :: The current TrueType glyph loader object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Loader_ReadGlyphFunc)( TT_Loader loader ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Loader_EndGlyphFunc */ - /* */ - /* <Description> */ - /* Closes the current loader stream frame for the glyph. */ - /* */ - /* <Input> */ - /* loader :: The current TrueType glyph loader object. */ - /* */ - typedef void - (*TT_Loader_EndGlyphFunc)( TT_Loader loader ); - - - typedef enum TT_SbitTableType_ - { - TT_SBIT_TABLE_TYPE_NONE = 0, - TT_SBIT_TABLE_TYPE_EBLC, /* `EBLC' (Microsoft), */ - /* `bloc' (Apple) */ - TT_SBIT_TABLE_TYPE_CBLC, /* `CBLC' (Google) */ - TT_SBIT_TABLE_TYPE_SBIX, /* `sbix' (Apple) */ - - /* do not remove */ - TT_SBIT_TABLE_TYPE_MAX - - } TT_SbitTableType; - - - /*************************************************************************/ - /* */ - /* TrueType Face Type */ - /* */ - /* <Struct> */ - /* TT_Face */ - /* */ - /* <Description> */ - /* The TrueType face class. These objects model the resolution and */ - /* point-size independent data found in a TrueType font file. */ - /* */ - /* <Fields> */ - /* root :: The base FT_Face structure, managed by the */ - /* base layer. */ - /* */ - /* ttc_header :: The TrueType collection header, used when */ - /* the file is a `ttc' rather than a `ttf'. */ - /* For ordinary font files, the field */ - /* `ttc_header.count' is set to 0. */ - /* */ - /* format_tag :: The font format tag. */ - /* */ - /* num_tables :: The number of TrueType tables in this font */ - /* file. */ - /* */ - /* dir_tables :: The directory of TrueType tables for this */ - /* font file. */ - /* */ - /* header :: The font's font header (`head' table). */ - /* Read on font opening. */ - /* */ - /* horizontal :: The font's horizontal header (`hhea' */ - /* table). This field also contains the */ - /* associated horizontal metrics table */ - /* (`hmtx'). */ - /* */ - /* max_profile :: The font's maximum profile table. Read on */ - /* font opening. Note that some maximum */ - /* values cannot be taken directly from this */ - /* table. We thus define additional fields */ - /* below to hold the computed maxima. */ - /* */ - /* vertical_info :: A boolean which is set when the font file */ - /* contains vertical metrics. If not, the */ - /* value of the `vertical' field is */ - /* undefined. */ - /* */ - /* vertical :: The font's vertical header (`vhea' table). */ - /* This field also contains the associated */ - /* vertical metrics table (`vmtx'), if found. */ - /* IMPORTANT: The contents of this field is */ - /* undefined if the `vertical_info' field is */ - /* unset. */ - /* */ - /* num_names :: The number of name records within this */ - /* TrueType font. */ - /* */ - /* name_table :: The table of name records (`name'). */ - /* */ - /* os2 :: The font's OS/2 table (`OS/2'). */ - /* */ - /* postscript :: The font's PostScript table (`post' */ - /* table). The PostScript glyph names are */ - /* not loaded by the driver on face opening. */ - /* See the `ttpost' module for more details. */ - /* */ - /* cmap_table :: Address of the face's `cmap' SFNT table */ - /* in memory (it's an extracted frame). */ - /* */ - /* cmap_size :: The size in bytes of the `cmap_table' */ - /* described above. */ - /* */ - /* goto_table :: A function called by each TrueType table */ - /* loader to position a stream's cursor to */ - /* the start of a given table according to */ - /* its tag. It defaults to TT_Goto_Face but */ - /* can be different for strange formats (e.g. */ - /* Type 42). */ - /* */ - /* access_glyph_frame :: A function used to access the frame of a */ - /* given glyph within the face's font file. */ - /* */ - /* forget_glyph_frame :: A function used to forget the frame of a */ - /* given glyph when all data has been loaded. */ - /* */ - /* read_glyph_header :: A function used to read a glyph header. */ - /* It must be called between an `access' and */ - /* `forget'. */ - /* */ - /* read_simple_glyph :: A function used to read a simple glyph. */ - /* It must be called after the header was */ - /* read, and before the `forget'. */ - /* */ - /* read_composite_glyph :: A function used to read a composite glyph. */ - /* It must be called after the header was */ - /* read, and before the `forget'. */ - /* */ - /* sfnt :: A pointer to the SFNT service. */ - /* */ - /* psnames :: A pointer to the PostScript names service. */ - /* */ - /* hdmx :: The face's horizontal device metrics */ - /* (`hdmx' table). This table is optional in */ - /* TrueType/OpenType fonts. */ - /* */ - /* gasp :: The grid-fitting and scaling properties */ - /* table (`gasp'). This table is optional in */ - /* TrueType/OpenType fonts. */ - /* */ - /* pclt :: The `pclt' SFNT table. */ - /* */ - /* num_sbit_scales :: The number of sbit scales for this font. */ - /* */ - /* sbit_scales :: Array of sbit scales embedded in this */ - /* font. This table is optional in a */ - /* TrueType/OpenType font. */ - /* */ - /* postscript_names :: A table used to store the Postscript names */ - /* of the glyphs for this font. See the */ - /* file `ttconfig.h' for comments on the */ - /* TT_CONFIG_OPTION_POSTSCRIPT_NAMES option. */ - /* */ - /* num_locations :: The number of glyph locations in this */ - /* TrueType file. This should be */ - /* identical to the number of glyphs. */ - /* Ignored for Type 2 fonts. */ - /* */ - /* glyph_locations :: An array of longs. These are offsets to */ - /* glyph data within the `glyf' table. */ - /* Ignored for Type 2 font faces. */ - /* */ - /* glyf_len :: The length of the `glyf' table. Needed */ - /* for malformed `loca' tables. */ - /* */ - /* font_program_size :: Size in bytecodes of the face's font */ - /* program. 0 if none defined. Ignored for */ - /* Type 2 fonts. */ - /* */ - /* font_program :: The face's font program (bytecode stream) */ - /* executed at load time, also used during */ - /* glyph rendering. Comes from the `fpgm' */ - /* table. Ignored for Type 2 font fonts. */ - /* */ - /* cvt_program_size :: The size in bytecodes of the face's cvt */ - /* program. Ignored for Type 2 fonts. */ - /* */ - /* cvt_program :: The face's cvt program (bytecode stream) */ - /* executed each time an instance/size is */ - /* changed/reset. Comes from the `prep' */ - /* table. Ignored for Type 2 fonts. */ - /* */ - /* cvt_size :: Size of the control value table (in */ - /* entries). Ignored for Type 2 fonts. */ - /* */ - /* cvt :: The face's original control value table. */ - /* Coordinates are expressed in unscaled font */ - /* units. Comes from the `cvt ' table. */ - /* Ignored for Type 2 fonts. */ - /* */ - /* num_kern_pairs :: The number of kerning pairs present in the */ - /* font file. The engine only loads the */ - /* first horizontal format 0 kern table it */ - /* finds in the font file. Ignored for */ - /* Type 2 fonts. */ - /* */ - /* kern_table_index :: The index of the kerning table in the font */ - /* kerning directory. Ignored for Type 2 */ - /* fonts. */ - /* */ - /* interpreter :: A pointer to the TrueType bytecode */ - /* interpreters field is also used to hook */ - /* the debugger in `ttdebug'. */ - /* */ - /* unpatented_hinting :: If true, use only unpatented methods in */ - /* the bytecode interpreter. */ - /* */ - /* doblend :: A boolean which is set if the font should */ - /* be blended (this is for GX var). */ - /* */ - /* blend :: Contains the data needed to control GX */ - /* variation tables (rather like Multiple */ - /* Master data). */ - /* */ - /* extra :: Reserved for third-party font drivers. */ - /* */ - /* postscript_name :: The PS name of the font. Used by the */ - /* postscript name service. */ - /* */ - typedef struct TT_FaceRec_ - { - FT_FaceRec root; - - TTC_HeaderRec ttc_header; - - FT_ULong format_tag; - FT_UShort num_tables; - TT_Table dir_tables; - - TT_Header header; /* TrueType header table */ - TT_HoriHeader horizontal; /* TrueType horizontal header */ - - TT_MaxProfile max_profile; - - FT_Bool vertical_info; - TT_VertHeader vertical; /* TT Vertical header, if present */ - - FT_UShort num_names; /* number of name records */ - TT_NameTableRec name_table; /* name table */ - - TT_OS2 os2; /* TrueType OS/2 table */ - TT_Postscript postscript; /* TrueType Postscript table */ - - FT_Byte* cmap_table; /* extracted `cmap' table */ - FT_ULong cmap_size; - - TT_Loader_GotoTableFunc goto_table; - - TT_Loader_StartGlyphFunc access_glyph_frame; - TT_Loader_EndGlyphFunc forget_glyph_frame; - TT_Loader_ReadGlyphFunc read_glyph_header; - TT_Loader_ReadGlyphFunc read_simple_glyph; - TT_Loader_ReadGlyphFunc read_composite_glyph; - - /* a typeless pointer to the SFNT_Interface table used to load */ - /* the basic TrueType tables in the face object */ - void* sfnt; - - /* a typeless pointer to the FT_Service_PsCMapsRec table used to */ - /* handle glyph names <-> unicode & Mac values */ - void* psnames; - - - /***********************************************************************/ - /* */ - /* Optional TrueType/OpenType tables */ - /* */ - /***********************************************************************/ - - /* grid-fitting and scaling table */ - TT_GaspRec gasp; /* the `gasp' table */ - - /* PCL 5 table */ - TT_PCLT pclt; - - /* embedded bitmaps support */ - FT_ULong num_sbit_scales; - TT_SBit_Scale sbit_scales; - - /* postscript names table */ - TT_Post_NamesRec postscript_names; - - - /***********************************************************************/ - /* */ - /* TrueType-specific fields (ignored by the OTF-Type2 driver) */ - /* */ - /***********************************************************************/ - - /* the font program, if any */ - FT_ULong font_program_size; - FT_Byte* font_program; - - /* the cvt program, if any */ - FT_ULong cvt_program_size; - FT_Byte* cvt_program; - - /* the original, unscaled, control value table */ - FT_ULong cvt_size; - FT_Short* cvt; - - /* A pointer to the bytecode interpreter to use. This is also */ - /* used to hook the debugger for the `ttdebug' utility. */ - TT_Interpreter interpreter; - -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - /* Use unpatented hinting only. */ - FT_Bool unpatented_hinting; -#endif - - /***********************************************************************/ - /* */ - /* Other tables or fields. This is used by derivative formats like */ - /* OpenType. */ - /* */ - /***********************************************************************/ - - FT_Generic extra; - - const char* postscript_name; - - FT_ULong glyf_len; - -#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT - FT_Bool doblend; - GX_Blend blend; -#endif - - /* since version 2.2 */ - - FT_Byte* horz_metrics; - FT_ULong horz_metrics_size; - - FT_Byte* vert_metrics; - FT_ULong vert_metrics_size; - - FT_ULong num_locations; /* in broken TTF, gid > 0xFFFF */ - FT_Byte* glyph_locations; - - FT_Byte* hdmx_table; - FT_ULong hdmx_table_size; - FT_UInt hdmx_record_count; - FT_ULong hdmx_record_size; - FT_Byte* hdmx_record_sizes; - - FT_Byte* sbit_table; - FT_ULong sbit_table_size; - TT_SbitTableType sbit_table_type; - FT_UInt sbit_num_strikes; - - FT_Byte* kern_table; - FT_ULong kern_table_size; - FT_UInt num_kern_tables; - FT_UInt32 kern_avail_bits; - FT_UInt32 kern_order_bits; - -#ifdef TT_CONFIG_OPTION_BDF - TT_BDFRec bdf; -#endif /* TT_CONFIG_OPTION_BDF */ - - /* since 2.3.0 */ - FT_ULong horz_metrics_offset; - FT_ULong vert_metrics_offset; - -#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING - /* since 2.4.12 */ - FT_ULong sph_found_func_flags; /* special functions found */ - /* for this face */ - FT_Bool sph_compatibility_mode; -#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */ - - } TT_FaceRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_GlyphZoneRec */ - /* */ - /* <Description> */ - /* A glyph zone is used to load, scale and hint glyph outline */ - /* coordinates. */ - /* */ - /* <Fields> */ - /* memory :: A handle to the memory manager. */ - /* */ - /* max_points :: The maximum size in points of the zone. */ - /* */ - /* max_contours :: Max size in links contours of the zone. */ - /* */ - /* n_points :: The current number of points in the zone. */ - /* */ - /* n_contours :: The current number of contours in the zone. */ - /* */ - /* org :: The original glyph coordinates (font */ - /* units/scaled). */ - /* */ - /* cur :: The current glyph coordinates (scaled/hinted). */ - /* */ - /* tags :: The point control tags. */ - /* */ - /* contours :: The contours end points. */ - /* */ - /* first_point :: Offset of the current subglyph's first point. */ - /* */ - typedef struct TT_GlyphZoneRec_ - { - FT_Memory memory; - FT_UShort max_points; - FT_Short max_contours; - FT_UShort n_points; /* number of points in zone */ - FT_Short n_contours; /* number of contours */ - - FT_Vector* org; /* original point coordinates */ - FT_Vector* cur; /* current point coordinates */ - FT_Vector* orus; /* original (unscaled) point coordinates */ - - FT_Byte* tags; /* current touch flags */ - FT_UShort* contours; /* contour end points */ - - FT_UShort first_point; /* offset of first (#0) point */ - - } TT_GlyphZoneRec, *TT_GlyphZone; - - - /* handle to execution context */ - typedef struct TT_ExecContextRec_* TT_ExecContext; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* TT_Size */ - /* */ - /* <Description> */ - /* A handle to a TrueType size object. */ - /* */ - typedef struct TT_SizeRec_* TT_Size; - - - /* glyph loader structure */ - typedef struct TT_LoaderRec_ - { - TT_Face face; - TT_Size size; - FT_GlyphSlot glyph; - FT_GlyphLoader gloader; - - FT_ULong load_flags; - FT_UInt glyph_index; - - FT_Stream stream; - FT_Int byte_len; - - FT_Short n_contours; - FT_BBox bbox; - FT_Int left_bearing; - FT_Int advance; - FT_Int linear; - FT_Bool linear_def; - FT_Vector pp1; - FT_Vector pp2; - - FT_ULong glyf_offset; - - /* the zone where we load our glyphs */ - TT_GlyphZoneRec base; - TT_GlyphZoneRec zone; - - TT_ExecContext exec; - FT_Byte* instructions; - FT_ULong ins_pos; - - /* for possible extensibility in other formats */ - void* other; - - /* since version 2.1.8 */ - FT_Int top_bearing; - FT_Int vadvance; - FT_Vector pp3; - FT_Vector pp4; - - /* since version 2.2.1 */ - FT_Byte* cursor; - FT_Byte* limit; - - /* since version 2.6.2 */ - FT_ListRec composites; - - } TT_LoaderRec; - - -FT_END_HEADER - -#endif /* __TTTYPES_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/t1tables.h b/lib/osx/include/freetype/t1tables.h deleted file mode 100644 index a6ea415..0000000 --- a/lib/osx/include/freetype/t1tables.h +++ /dev/null @@ -1,761 +0,0 @@ -/***************************************************************************/ -/* */ -/* t1tables.h */ -/* */ -/* Basic Type 1/Type 2 tables definitions and interface (specification */ -/* only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __T1TABLES_H__ -#define __T1TABLES_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* type1_tables */ - /* */ - /* <Title> */ - /* Type 1 Tables */ - /* */ - /* <Abstract> */ - /* Type~1 (PostScript) specific font tables. */ - /* */ - /* <Description> */ - /* This section contains the definition of Type 1-specific tables, */ - /* including structures related to other PostScript font formats. */ - /* */ - /* <Order> */ - /* PS_FontInfoRec */ - /* PS_FontInfo */ - /* PS_PrivateRec */ - /* PS_Private */ - /* */ - /* CID_FaceDictRec */ - /* CID_FaceDict */ - /* CID_FaceInfoRec */ - /* CID_FaceInfo */ - /* */ - /* FT_Has_PS_Glyph_Names */ - /* FT_Get_PS_Font_Info */ - /* FT_Get_PS_Font_Private */ - /* FT_Get_PS_Font_Value */ - /* */ - /* T1_Blend_Flags */ - /* T1_EncodingType */ - /* PS_Dict_Keys */ - /* */ - /*************************************************************************/ - - - /* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */ - /* structures in order to support Multiple Master fonts. */ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_FontInfoRec */ - /* */ - /* <Description> */ - /* A structure used to model a Type~1 or Type~2 FontInfo dictionary. */ - /* Note that for Multiple Master fonts, each instance has its own */ - /* FontInfo dictionary. */ - /* */ - typedef struct PS_FontInfoRec_ - { - FT_String* version; - FT_String* notice; - FT_String* full_name; - FT_String* family_name; - FT_String* weight; - FT_Long italic_angle; - FT_Bool is_fixed_pitch; - FT_Short underline_position; - FT_UShort underline_thickness; - - } PS_FontInfoRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_FontInfo */ - /* */ - /* <Description> */ - /* A handle to a @PS_FontInfoRec structure. */ - /* */ - typedef struct PS_FontInfoRec_* PS_FontInfo; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_FontInfo */ - /* */ - /* <Description> */ - /* This type is equivalent to @PS_FontInfoRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef PS_FontInfoRec T1_FontInfo; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_PrivateRec */ - /* */ - /* <Description> */ - /* A structure used to model a Type~1 or Type~2 private dictionary. */ - /* Note that for Multiple Master fonts, each instance has its own */ - /* Private dictionary. */ - /* */ - typedef struct PS_PrivateRec_ - { - FT_Int unique_id; - FT_Int lenIV; - - FT_Byte num_blue_values; - FT_Byte num_other_blues; - FT_Byte num_family_blues; - FT_Byte num_family_other_blues; - - FT_Short blue_values[14]; - FT_Short other_blues[10]; - - FT_Short family_blues [14]; - FT_Short family_other_blues[10]; - - FT_Fixed blue_scale; - FT_Int blue_shift; - FT_Int blue_fuzz; - - FT_UShort standard_width[1]; - FT_UShort standard_height[1]; - - FT_Byte num_snap_widths; - FT_Byte num_snap_heights; - FT_Bool force_bold; - FT_Bool round_stem_up; - - FT_Short snap_widths [13]; /* including std width */ - FT_Short snap_heights[13]; /* including std height */ - - FT_Fixed expansion_factor; - - FT_Long language_group; - FT_Long password; - - FT_Short min_feature[2]; - - } PS_PrivateRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_Private */ - /* */ - /* <Description> */ - /* A handle to a @PS_PrivateRec structure. */ - /* */ - typedef struct PS_PrivateRec_* PS_Private; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_Private */ - /* */ - /* <Description> */ - /* This type is equivalent to @PS_PrivateRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef PS_PrivateRec T1_Private; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* T1_Blend_Flags */ - /* */ - /* <Description> */ - /* A set of flags used to indicate which fields are present in a */ - /* given blend dictionary (font info or private). Used to support */ - /* Multiple Masters fonts. */ - /* */ - /* <Values> */ - /* T1_BLEND_UNDERLINE_POSITION :: */ - /* T1_BLEND_UNDERLINE_THICKNESS :: */ - /* T1_BLEND_ITALIC_ANGLE :: */ - /* T1_BLEND_BLUE_VALUES :: */ - /* T1_BLEND_OTHER_BLUES :: */ - /* T1_BLEND_STANDARD_WIDTH :: */ - /* T1_BLEND_STANDARD_HEIGHT :: */ - /* T1_BLEND_STEM_SNAP_WIDTHS :: */ - /* T1_BLEND_STEM_SNAP_HEIGHTS :: */ - /* T1_BLEND_BLUE_SCALE :: */ - /* T1_BLEND_BLUE_SHIFT :: */ - /* T1_BLEND_FAMILY_BLUES :: */ - /* T1_BLEND_FAMILY_OTHER_BLUES :: */ - /* T1_BLEND_FORCE_BOLD :: */ - /* */ - typedef enum T1_Blend_Flags_ - { - /* required fields in a FontInfo blend dictionary */ - T1_BLEND_UNDERLINE_POSITION = 0, - T1_BLEND_UNDERLINE_THICKNESS, - T1_BLEND_ITALIC_ANGLE, - - /* required fields in a Private blend dictionary */ - T1_BLEND_BLUE_VALUES, - T1_BLEND_OTHER_BLUES, - T1_BLEND_STANDARD_WIDTH, - T1_BLEND_STANDARD_HEIGHT, - T1_BLEND_STEM_SNAP_WIDTHS, - T1_BLEND_STEM_SNAP_HEIGHTS, - T1_BLEND_BLUE_SCALE, - T1_BLEND_BLUE_SHIFT, - T1_BLEND_FAMILY_BLUES, - T1_BLEND_FAMILY_OTHER_BLUES, - T1_BLEND_FORCE_BOLD, - - T1_BLEND_MAX /* do not remove */ - - } T1_Blend_Flags; - - - /* these constants are deprecated; use the corresponding */ - /* `T1_Blend_Flags' values instead */ -#define t1_blend_underline_position T1_BLEND_UNDERLINE_POSITION -#define t1_blend_underline_thickness T1_BLEND_UNDERLINE_THICKNESS -#define t1_blend_italic_angle T1_BLEND_ITALIC_ANGLE -#define t1_blend_blue_values T1_BLEND_BLUE_VALUES -#define t1_blend_other_blues T1_BLEND_OTHER_BLUES -#define t1_blend_standard_widths T1_BLEND_STANDARD_WIDTH -#define t1_blend_standard_height T1_BLEND_STANDARD_HEIGHT -#define t1_blend_stem_snap_widths T1_BLEND_STEM_SNAP_WIDTHS -#define t1_blend_stem_snap_heights T1_BLEND_STEM_SNAP_HEIGHTS -#define t1_blend_blue_scale T1_BLEND_BLUE_SCALE -#define t1_blend_blue_shift T1_BLEND_BLUE_SHIFT -#define t1_blend_family_blues T1_BLEND_FAMILY_BLUES -#define t1_blend_family_other_blues T1_BLEND_FAMILY_OTHER_BLUES -#define t1_blend_force_bold T1_BLEND_FORCE_BOLD -#define t1_blend_max T1_BLEND_MAX - - /* */ - - - /* maximum number of Multiple Masters designs, as defined in the spec */ -#define T1_MAX_MM_DESIGNS 16 - - /* maximum number of Multiple Masters axes, as defined in the spec */ -#define T1_MAX_MM_AXIS 4 - - /* maximum number of elements in a design map */ -#define T1_MAX_MM_MAP_POINTS 20 - - - /* this structure is used to store the BlendDesignMap entry for an axis */ - typedef struct PS_DesignMap_ - { - FT_Byte num_points; - FT_Long* design_points; - FT_Fixed* blend_points; - - } PS_DesignMapRec, *PS_DesignMap; - - /* backwards-compatible definition */ - typedef PS_DesignMapRec T1_DesignMap; - - - typedef struct PS_BlendRec_ - { - FT_UInt num_designs; - FT_UInt num_axis; - - FT_String* axis_names[T1_MAX_MM_AXIS]; - FT_Fixed* design_pos[T1_MAX_MM_DESIGNS]; - PS_DesignMapRec design_map[T1_MAX_MM_AXIS]; - - FT_Fixed* weight_vector; - FT_Fixed* default_weight_vector; - - PS_FontInfo font_infos[T1_MAX_MM_DESIGNS + 1]; - PS_Private privates [T1_MAX_MM_DESIGNS + 1]; - - FT_ULong blend_bitflags; - - FT_BBox* bboxes [T1_MAX_MM_DESIGNS + 1]; - - /* since 2.3.0 */ - - /* undocumented, optional: the default design instance; */ - /* corresponds to default_weight_vector -- */ - /* num_default_design_vector == 0 means it is not present */ - /* in the font and associated metrics files */ - FT_UInt default_design_vector[T1_MAX_MM_DESIGNS]; - FT_UInt num_default_design_vector; - - } PS_BlendRec, *PS_Blend; - - - /* backwards-compatible definition */ - typedef PS_BlendRec T1_Blend; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceDictRec */ - /* */ - /* <Description> */ - /* A structure used to represent data in a CID top-level dictionary. */ - /* */ - typedef struct CID_FaceDictRec_ - { - PS_PrivateRec private_dict; - - FT_UInt len_buildchar; - FT_Fixed forcebold_threshold; - FT_Pos stroke_width; - FT_Fixed expansion_factor; - - FT_Byte paint_type; - FT_Byte font_type; - FT_Matrix font_matrix; - FT_Vector font_offset; - - FT_UInt num_subrs; - FT_ULong subrmap_offset; - FT_Int sd_bytes; - - } CID_FaceDictRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceDict */ - /* */ - /* <Description> */ - /* A handle to a @CID_FaceDictRec structure. */ - /* */ - typedef struct CID_FaceDictRec_* CID_FaceDict; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FontDict */ - /* */ - /* <Description> */ - /* This type is equivalent to @CID_FaceDictRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef CID_FaceDictRec CID_FontDict; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceInfoRec */ - /* */ - /* <Description> */ - /* A structure used to represent CID Face information. */ - /* */ - typedef struct CID_FaceInfoRec_ - { - FT_String* cid_font_name; - FT_Fixed cid_version; - FT_Int cid_font_type; - - FT_String* registry; - FT_String* ordering; - FT_Int supplement; - - PS_FontInfoRec font_info; - FT_BBox font_bbox; - FT_ULong uid_base; - - FT_Int num_xuid; - FT_ULong xuid[16]; - - FT_ULong cidmap_offset; - FT_Int fd_bytes; - FT_Int gd_bytes; - FT_ULong cid_count; - - FT_Int num_dicts; - CID_FaceDict font_dicts; - - FT_ULong data_offset; - - } CID_FaceInfoRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceInfo */ - /* */ - /* <Description> */ - /* A handle to a @CID_FaceInfoRec structure. */ - /* */ - typedef struct CID_FaceInfoRec_* CID_FaceInfo; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_Info */ - /* */ - /* <Description> */ - /* This type is equivalent to @CID_FaceInfoRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef CID_FaceInfoRec CID_Info; - - - /************************************************************************ - * - * @function: - * FT_Has_PS_Glyph_Names - * - * @description: - * Return true if a given face provides reliable PostScript glyph - * names. This is similar to using the @FT_HAS_GLYPH_NAMES macro, - * except that certain fonts (mostly TrueType) contain incorrect - * glyph name tables. - * - * When this function returns true, the caller is sure that the glyph - * names returned by @FT_Get_Glyph_Name are reliable. - * - * @input: - * face :: - * face handle - * - * @return: - * Boolean. True if glyph names are reliable. - * - */ - FT_EXPORT( FT_Int ) - FT_Has_PS_Glyph_Names( FT_Face face ); - - - /************************************************************************ - * - * @function: - * FT_Get_PS_Font_Info - * - * @description: - * Retrieve the @PS_FontInfoRec structure corresponding to a given - * PostScript font. - * - * @input: - * face :: - * PostScript face handle. - * - * @output: - * afont_info :: - * Output font info structure pointer. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * String pointers within the @PS_FontInfoRec structure are owned by - * the face and don't need to be freed by the caller. Missing entries - * in the font's FontInfo dictionary are represented by NULL pointers. - * - * If the font's format is not PostScript-based, this function will - * return the `FT_Err_Invalid_Argument' error code. - * - */ - FT_EXPORT( FT_Error ) - FT_Get_PS_Font_Info( FT_Face face, - PS_FontInfo afont_info ); - - - /************************************************************************ - * - * @function: - * FT_Get_PS_Font_Private - * - * @description: - * Retrieve the @PS_PrivateRec structure corresponding to a given - * PostScript font. - * - * @input: - * face :: - * PostScript face handle. - * - * @output: - * afont_private :: - * Output private dictionary structure pointer. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The string pointers within the @PS_PrivateRec structure are owned by - * the face and don't need to be freed by the caller. - * - * If the font's format is not PostScript-based, this function returns - * the `FT_Err_Invalid_Argument' error code. - * - */ - FT_EXPORT( FT_Error ) - FT_Get_PS_Font_Private( FT_Face face, - PS_Private afont_private ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* T1_EncodingType */ - /* */ - /* <Description> */ - /* An enumeration describing the `Encoding' entry in a Type 1 */ - /* dictionary. */ - /* */ - /* <Values> */ - /* T1_ENCODING_TYPE_NONE :: */ - /* T1_ENCODING_TYPE_ARRAY :: */ - /* T1_ENCODING_TYPE_STANDARD :: */ - /* T1_ENCODING_TYPE_ISOLATIN1 :: */ - /* T1_ENCODING_TYPE_EXPERT :: */ - /* */ - typedef enum T1_EncodingType_ - { - T1_ENCODING_TYPE_NONE = 0, - T1_ENCODING_TYPE_ARRAY, - T1_ENCODING_TYPE_STANDARD, - T1_ENCODING_TYPE_ISOLATIN1, - T1_ENCODING_TYPE_EXPERT - - } T1_EncodingType; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* PS_Dict_Keys */ - /* */ - /* <Description> */ - /* An enumeration used in calls to @FT_Get_PS_Font_Value to identify */ - /* the Type~1 dictionary entry to retrieve. */ - /* */ - /* <Values> */ - /* PS_DICT_FONT_TYPE :: */ - /* PS_DICT_FONT_MATRIX :: */ - /* PS_DICT_FONT_BBOX :: */ - /* PS_DICT_PAINT_TYPE :: */ - /* PS_DICT_FONT_NAME :: */ - /* PS_DICT_UNIQUE_ID :: */ - /* PS_DICT_NUM_CHAR_STRINGS :: */ - /* PS_DICT_CHAR_STRING_KEY :: */ - /* PS_DICT_CHAR_STRING :: */ - /* PS_DICT_ENCODING_TYPE :: */ - /* PS_DICT_ENCODING_ENTRY :: */ - /* PS_DICT_NUM_SUBRS :: */ - /* PS_DICT_SUBR :: */ - /* PS_DICT_STD_HW :: */ - /* PS_DICT_STD_VW :: */ - /* PS_DICT_NUM_BLUE_VALUES :: */ - /* PS_DICT_BLUE_VALUE :: */ - /* PS_DICT_BLUE_FUZZ :: */ - /* PS_DICT_NUM_OTHER_BLUES :: */ - /* PS_DICT_OTHER_BLUE :: */ - /* PS_DICT_NUM_FAMILY_BLUES :: */ - /* PS_DICT_FAMILY_BLUE :: */ - /* PS_DICT_NUM_FAMILY_OTHER_BLUES :: */ - /* PS_DICT_FAMILY_OTHER_BLUE :: */ - /* PS_DICT_BLUE_SCALE :: */ - /* PS_DICT_BLUE_SHIFT :: */ - /* PS_DICT_NUM_STEM_SNAP_H :: */ - /* PS_DICT_STEM_SNAP_H :: */ - /* PS_DICT_NUM_STEM_SNAP_V :: */ - /* PS_DICT_STEM_SNAP_V :: */ - /* PS_DICT_FORCE_BOLD :: */ - /* PS_DICT_RND_STEM_UP :: */ - /* PS_DICT_MIN_FEATURE :: */ - /* PS_DICT_LEN_IV :: */ - /* PS_DICT_PASSWORD :: */ - /* PS_DICT_LANGUAGE_GROUP :: */ - /* PS_DICT_VERSION :: */ - /* PS_DICT_NOTICE :: */ - /* PS_DICT_FULL_NAME :: */ - /* PS_DICT_FAMILY_NAME :: */ - /* PS_DICT_WEIGHT :: */ - /* PS_DICT_IS_FIXED_PITCH :: */ - /* PS_DICT_UNDERLINE_POSITION :: */ - /* PS_DICT_UNDERLINE_THICKNESS :: */ - /* PS_DICT_FS_TYPE :: */ - /* PS_DICT_ITALIC_ANGLE :: */ - /* */ - typedef enum PS_Dict_Keys_ - { - /* conventionally in the font dictionary */ - PS_DICT_FONT_TYPE, /* FT_Byte */ - PS_DICT_FONT_MATRIX, /* FT_Fixed */ - PS_DICT_FONT_BBOX, /* FT_Fixed */ - PS_DICT_PAINT_TYPE, /* FT_Byte */ - PS_DICT_FONT_NAME, /* FT_String* */ - PS_DICT_UNIQUE_ID, /* FT_Int */ - PS_DICT_NUM_CHAR_STRINGS, /* FT_Int */ - PS_DICT_CHAR_STRING_KEY, /* FT_String* */ - PS_DICT_CHAR_STRING, /* FT_String* */ - PS_DICT_ENCODING_TYPE, /* T1_EncodingType */ - PS_DICT_ENCODING_ENTRY, /* FT_String* */ - - /* conventionally in the font Private dictionary */ - PS_DICT_NUM_SUBRS, /* FT_Int */ - PS_DICT_SUBR, /* FT_String* */ - PS_DICT_STD_HW, /* FT_UShort */ - PS_DICT_STD_VW, /* FT_UShort */ - PS_DICT_NUM_BLUE_VALUES, /* FT_Byte */ - PS_DICT_BLUE_VALUE, /* FT_Short */ - PS_DICT_BLUE_FUZZ, /* FT_Int */ - PS_DICT_NUM_OTHER_BLUES, /* FT_Byte */ - PS_DICT_OTHER_BLUE, /* FT_Short */ - PS_DICT_NUM_FAMILY_BLUES, /* FT_Byte */ - PS_DICT_FAMILY_BLUE, /* FT_Short */ - PS_DICT_NUM_FAMILY_OTHER_BLUES, /* FT_Byte */ - PS_DICT_FAMILY_OTHER_BLUE, /* FT_Short */ - PS_DICT_BLUE_SCALE, /* FT_Fixed */ - PS_DICT_BLUE_SHIFT, /* FT_Int */ - PS_DICT_NUM_STEM_SNAP_H, /* FT_Byte */ - PS_DICT_STEM_SNAP_H, /* FT_Short */ - PS_DICT_NUM_STEM_SNAP_V, /* FT_Byte */ - PS_DICT_STEM_SNAP_V, /* FT_Short */ - PS_DICT_FORCE_BOLD, /* FT_Bool */ - PS_DICT_RND_STEM_UP, /* FT_Bool */ - PS_DICT_MIN_FEATURE, /* FT_Short */ - PS_DICT_LEN_IV, /* FT_Int */ - PS_DICT_PASSWORD, /* FT_Long */ - PS_DICT_LANGUAGE_GROUP, /* FT_Long */ - - /* conventionally in the font FontInfo dictionary */ - PS_DICT_VERSION, /* FT_String* */ - PS_DICT_NOTICE, /* FT_String* */ - PS_DICT_FULL_NAME, /* FT_String* */ - PS_DICT_FAMILY_NAME, /* FT_String* */ - PS_DICT_WEIGHT, /* FT_String* */ - PS_DICT_IS_FIXED_PITCH, /* FT_Bool */ - PS_DICT_UNDERLINE_POSITION, /* FT_Short */ - PS_DICT_UNDERLINE_THICKNESS, /* FT_UShort */ - PS_DICT_FS_TYPE, /* FT_UShort */ - PS_DICT_ITALIC_ANGLE, /* FT_Long */ - - PS_DICT_MAX = PS_DICT_ITALIC_ANGLE - - } PS_Dict_Keys; - - - /************************************************************************ - * - * @function: - * FT_Get_PS_Font_Value - * - * @description: - * Retrieve the value for the supplied key from a PostScript font. - * - * @input: - * face :: - * PostScript face handle. - * - * key :: - * An enumeration value representing the dictionary key to retrieve. - * - * idx :: - * For array values, this specifies the index to be returned. - * - * value :: - * A pointer to memory into which to write the value. - * - * valen_len :: - * The size, in bytes, of the memory supplied for the value. - * - * @output: - * value :: - * The value matching the above key, if it exists. - * - * @return: - * The amount of memory (in bytes) required to hold the requested - * value (if it exists, -1 otherwise). - * - * @note: - * The values returned are not pointers into the internal structures of - * the face, but are `fresh' copies, so that the memory containing them - * belongs to the calling application. This also enforces the - * `read-only' nature of these values, i.e., this function cannot be - * used to manipulate the face. - * - * `value' is a void pointer because the values returned can be of - * various types. - * - * If either `value' is NULL or `value_len' is too small, just the - * required memory size for the requested entry is returned. - * - * The `idx' parameter is used, not only to retrieve elements of, for - * example, the FontMatrix or FontBBox, but also to retrieve name keys - * from the CharStrings dictionary, and the charstrings themselves. It - * is ignored for atomic values. - * - * PS_DICT_BLUE_SCALE returns a value that is scaled up by 1000. To - * get the value as in the font stream, you need to divide by - * 65536000.0 (to remove the FT_Fixed scale, and the x1000 scale). - * - * IMPORTANT: Only key/value pairs read by the FreeType interpreter can - * be retrieved. So, for example, PostScript procedures such as NP, - * ND, and RD are not available. Arbitrary keys are, obviously, not be - * available either. - * - * If the font's format is not PostScript-based, this function returns - * the `FT_Err_Invalid_Argument' error code. - * - */ - FT_EXPORT( FT_Long ) - FT_Get_PS_Font_Value( FT_Face face, - PS_Dict_Keys key, - FT_UInt idx, - void *value, - FT_Long value_len ); - - /* */ - -FT_END_HEADER - -#endif /* __T1TABLES_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ttnameid.h b/lib/osx/include/freetype/ttnameid.h deleted file mode 100644 index c9585f2..0000000 --- a/lib/osx/include/freetype/ttnameid.h +++ /dev/null @@ -1,1237 +0,0 @@ -/***************************************************************************/ -/* */ -/* ttnameid.h */ -/* */ -/* TrueType name ID definitions (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTNAMEID_H__ -#define __TTNAMEID_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* truetype_tables */ - /* */ - - - /*************************************************************************/ - /* */ - /* Possible values for the `platform' identifier code in the name */ - /* records of the TTF `name' table. */ - /* */ - /*************************************************************************/ - - - /*********************************************************************** - * - * @enum: - * TT_PLATFORM_XXX - * - * @description: - * A list of valid values for the `platform_id' identifier code in - * @FT_CharMapRec and @FT_SfntName structures. - * - * @values: - * TT_PLATFORM_APPLE_UNICODE :: - * Used by Apple to indicate a Unicode character map and/or name entry. - * See @TT_APPLE_ID_XXX for corresponding `encoding_id' values. Note - * that name entries in this format are coded as big-endian UCS-2 - * character codes _only_. - * - * TT_PLATFORM_MACINTOSH :: - * Used by Apple to indicate a MacOS-specific charmap and/or name entry. - * See @TT_MAC_ID_XXX for corresponding `encoding_id' values. Note that - * most TrueType fonts contain an Apple roman charmap to be usable on - * MacOS systems (even if they contain a Microsoft charmap as well). - * - * TT_PLATFORM_ISO :: - * This value was used to specify ISO/IEC 10646 charmaps. It is however - * now deprecated. See @TT_ISO_ID_XXX for a list of corresponding - * `encoding_id' values. - * - * TT_PLATFORM_MICROSOFT :: - * Used by Microsoft to indicate Windows-specific charmaps. See - * @TT_MS_ID_XXX for a list of corresponding `encoding_id' values. - * Note that most fonts contain a Unicode charmap using - * (TT_PLATFORM_MICROSOFT, @TT_MS_ID_UNICODE_CS). - * - * TT_PLATFORM_CUSTOM :: - * Used to indicate application-specific charmaps. - * - * TT_PLATFORM_ADOBE :: - * This value isn't part of any font format specification, but is used - * by FreeType to report Adobe-specific charmaps in an @FT_CharMapRec - * structure. See @TT_ADOBE_ID_XXX. - */ - -#define TT_PLATFORM_APPLE_UNICODE 0 -#define TT_PLATFORM_MACINTOSH 1 -#define TT_PLATFORM_ISO 2 /* deprecated */ -#define TT_PLATFORM_MICROSOFT 3 -#define TT_PLATFORM_CUSTOM 4 -#define TT_PLATFORM_ADOBE 7 /* artificial */ - - - /*********************************************************************** - * - * @enum: - * TT_APPLE_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_APPLE_UNICODE charmaps and name entries. - * - * @values: - * TT_APPLE_ID_DEFAULT :: - * Unicode version 1.0. - * - * TT_APPLE_ID_UNICODE_1_1 :: - * Unicode 1.1; specifies Hangul characters starting at U+34xx. - * - * TT_APPLE_ID_ISO_10646 :: - * Deprecated (identical to preceding). - * - * TT_APPLE_ID_UNICODE_2_0 :: - * Unicode 2.0 and beyond (UTF-16 BMP only). - * - * TT_APPLE_ID_UNICODE_32 :: - * Unicode 3.1 and beyond, using UTF-32. - * - * TT_APPLE_ID_VARIANT_SELECTOR :: - * From Adobe, not Apple. Not a normal cmap. Specifies variations - * on a real cmap. - */ - -#define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */ -#define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */ -#define TT_APPLE_ID_ISO_10646 2 /* deprecated */ -#define TT_APPLE_ID_UNICODE_2_0 3 /* or later */ -#define TT_APPLE_ID_UNICODE_32 4 /* 2.0 or later, full repertoire */ -#define TT_APPLE_ID_VARIANT_SELECTOR 5 /* variation selector data */ - - - /*********************************************************************** - * - * @enum: - * TT_MAC_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_MACINTOSH charmaps and name entries. - * - * @values: - * TT_MAC_ID_ROMAN :: - * TT_MAC_ID_JAPANESE :: - * TT_MAC_ID_TRADITIONAL_CHINESE :: - * TT_MAC_ID_KOREAN :: - * TT_MAC_ID_ARABIC :: - * TT_MAC_ID_HEBREW :: - * TT_MAC_ID_GREEK :: - * TT_MAC_ID_RUSSIAN :: - * TT_MAC_ID_RSYMBOL :: - * TT_MAC_ID_DEVANAGARI :: - * TT_MAC_ID_GURMUKHI :: - * TT_MAC_ID_GUJARATI :: - * TT_MAC_ID_ORIYA :: - * TT_MAC_ID_BENGALI :: - * TT_MAC_ID_TAMIL :: - * TT_MAC_ID_TELUGU :: - * TT_MAC_ID_KANNADA :: - * TT_MAC_ID_MALAYALAM :: - * TT_MAC_ID_SINHALESE :: - * TT_MAC_ID_BURMESE :: - * TT_MAC_ID_KHMER :: - * TT_MAC_ID_THAI :: - * TT_MAC_ID_LAOTIAN :: - * TT_MAC_ID_GEORGIAN :: - * TT_MAC_ID_ARMENIAN :: - * TT_MAC_ID_MALDIVIAN :: - * TT_MAC_ID_SIMPLIFIED_CHINESE :: - * TT_MAC_ID_TIBETAN :: - * TT_MAC_ID_MONGOLIAN :: - * TT_MAC_ID_GEEZ :: - * TT_MAC_ID_SLAVIC :: - * TT_MAC_ID_VIETNAMESE :: - * TT_MAC_ID_SINDHI :: - * TT_MAC_ID_UNINTERP :: - */ - -#define TT_MAC_ID_ROMAN 0 -#define TT_MAC_ID_JAPANESE 1 -#define TT_MAC_ID_TRADITIONAL_CHINESE 2 -#define TT_MAC_ID_KOREAN 3 -#define TT_MAC_ID_ARABIC 4 -#define TT_MAC_ID_HEBREW 5 -#define TT_MAC_ID_GREEK 6 -#define TT_MAC_ID_RUSSIAN 7 -#define TT_MAC_ID_RSYMBOL 8 -#define TT_MAC_ID_DEVANAGARI 9 -#define TT_MAC_ID_GURMUKHI 10 -#define TT_MAC_ID_GUJARATI 11 -#define TT_MAC_ID_ORIYA 12 -#define TT_MAC_ID_BENGALI 13 -#define TT_MAC_ID_TAMIL 14 -#define TT_MAC_ID_TELUGU 15 -#define TT_MAC_ID_KANNADA 16 -#define TT_MAC_ID_MALAYALAM 17 -#define TT_MAC_ID_SINHALESE 18 -#define TT_MAC_ID_BURMESE 19 -#define TT_MAC_ID_KHMER 20 -#define TT_MAC_ID_THAI 21 -#define TT_MAC_ID_LAOTIAN 22 -#define TT_MAC_ID_GEORGIAN 23 -#define TT_MAC_ID_ARMENIAN 24 -#define TT_MAC_ID_MALDIVIAN 25 -#define TT_MAC_ID_SIMPLIFIED_CHINESE 25 -#define TT_MAC_ID_TIBETAN 26 -#define TT_MAC_ID_MONGOLIAN 27 -#define TT_MAC_ID_GEEZ 28 -#define TT_MAC_ID_SLAVIC 29 -#define TT_MAC_ID_VIETNAMESE 30 -#define TT_MAC_ID_SINDHI 31 -#define TT_MAC_ID_UNINTERP 32 - - - /*********************************************************************** - * - * @enum: - * TT_ISO_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_ISO charmaps and name entries. - * - * Their use is now deprecated. - * - * @values: - * TT_ISO_ID_7BIT_ASCII :: - * ASCII. - * TT_ISO_ID_10646 :: - * ISO/10646. - * TT_ISO_ID_8859_1 :: - * Also known as Latin-1. - */ - -#define TT_ISO_ID_7BIT_ASCII 0 -#define TT_ISO_ID_10646 1 -#define TT_ISO_ID_8859_1 2 - - - /*********************************************************************** - * - * @enum: - * TT_MS_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_MICROSOFT charmaps and name entries. - * - * @values: - * TT_MS_ID_SYMBOL_CS :: - * Corresponds to Microsoft symbol encoding. See - * @FT_ENCODING_MS_SYMBOL. - * - * TT_MS_ID_UNICODE_CS :: - * Corresponds to a Microsoft WGL4 charmap, matching Unicode. See - * @FT_ENCODING_UNICODE. - * - * TT_MS_ID_SJIS :: - * Corresponds to SJIS Japanese encoding. See @FT_ENCODING_SJIS. - * - * TT_MS_ID_GB2312 :: - * Corresponds to Simplified Chinese as used in Mainland China. See - * @FT_ENCODING_GB2312. - * - * TT_MS_ID_BIG_5 :: - * Corresponds to Traditional Chinese as used in Taiwan and Hong Kong. - * See @FT_ENCODING_BIG5. - * - * TT_MS_ID_WANSUNG :: - * Corresponds to Korean Wansung encoding. See @FT_ENCODING_WANSUNG. - * - * TT_MS_ID_JOHAB :: - * Corresponds to Johab encoding. See @FT_ENCODING_JOHAB. - * - * TT_MS_ID_UCS_4 :: - * Corresponds to UCS-4 or UTF-32 charmaps. This has been added to - * the OpenType specification version 1.4 (mid-2001.) - */ - -#define TT_MS_ID_SYMBOL_CS 0 -#define TT_MS_ID_UNICODE_CS 1 -#define TT_MS_ID_SJIS 2 -#define TT_MS_ID_GB2312 3 -#define TT_MS_ID_BIG_5 4 -#define TT_MS_ID_WANSUNG 5 -#define TT_MS_ID_JOHAB 6 -#define TT_MS_ID_UCS_4 10 - - - /*********************************************************************** - * - * @enum: - * TT_ADOBE_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_ADOBE charmaps. This is a FreeType-specific extension! - * - * @values: - * TT_ADOBE_ID_STANDARD :: - * Adobe standard encoding. - * TT_ADOBE_ID_EXPERT :: - * Adobe expert encoding. - * TT_ADOBE_ID_CUSTOM :: - * Adobe custom encoding. - * TT_ADOBE_ID_LATIN_1 :: - * Adobe Latin~1 encoding. - */ - -#define TT_ADOBE_ID_STANDARD 0 -#define TT_ADOBE_ID_EXPERT 1 -#define TT_ADOBE_ID_CUSTOM 2 -#define TT_ADOBE_ID_LATIN_1 3 - - - /*************************************************************************/ - /* */ - /* Possible values of the language identifier field in the name records */ - /* of the TTF `name' table if the `platform' identifier code is */ - /* TT_PLATFORM_MACINTOSH. These values are also used as return values */ - /* for function @FT_Get_CMap_Language_ID. */ - /* */ - /* The canonical source for the Apple assigned Language ID's is at */ - /* */ - /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html */ - /* */ -#define TT_MAC_LANGID_ENGLISH 0 -#define TT_MAC_LANGID_FRENCH 1 -#define TT_MAC_LANGID_GERMAN 2 -#define TT_MAC_LANGID_ITALIAN 3 -#define TT_MAC_LANGID_DUTCH 4 -#define TT_MAC_LANGID_SWEDISH 5 -#define TT_MAC_LANGID_SPANISH 6 -#define TT_MAC_LANGID_DANISH 7 -#define TT_MAC_LANGID_PORTUGUESE 8 -#define TT_MAC_LANGID_NORWEGIAN 9 -#define TT_MAC_LANGID_HEBREW 10 -#define TT_MAC_LANGID_JAPANESE 11 -#define TT_MAC_LANGID_ARABIC 12 -#define TT_MAC_LANGID_FINNISH 13 -#define TT_MAC_LANGID_GREEK 14 -#define TT_MAC_LANGID_ICELANDIC 15 -#define TT_MAC_LANGID_MALTESE 16 -#define TT_MAC_LANGID_TURKISH 17 -#define TT_MAC_LANGID_CROATIAN 18 -#define TT_MAC_LANGID_CHINESE_TRADITIONAL 19 -#define TT_MAC_LANGID_URDU 20 -#define TT_MAC_LANGID_HINDI 21 -#define TT_MAC_LANGID_THAI 22 -#define TT_MAC_LANGID_KOREAN 23 -#define TT_MAC_LANGID_LITHUANIAN 24 -#define TT_MAC_LANGID_POLISH 25 -#define TT_MAC_LANGID_HUNGARIAN 26 -#define TT_MAC_LANGID_ESTONIAN 27 -#define TT_MAC_LANGID_LETTISH 28 -#define TT_MAC_LANGID_SAAMISK 29 -#define TT_MAC_LANGID_FAEROESE 30 -#define TT_MAC_LANGID_FARSI 31 -#define TT_MAC_LANGID_RUSSIAN 32 -#define TT_MAC_LANGID_CHINESE_SIMPLIFIED 33 -#define TT_MAC_LANGID_FLEMISH 34 -#define TT_MAC_LANGID_IRISH 35 -#define TT_MAC_LANGID_ALBANIAN 36 -#define TT_MAC_LANGID_ROMANIAN 37 -#define TT_MAC_LANGID_CZECH 38 -#define TT_MAC_LANGID_SLOVAK 39 -#define TT_MAC_LANGID_SLOVENIAN 40 -#define TT_MAC_LANGID_YIDDISH 41 -#define TT_MAC_LANGID_SERBIAN 42 -#define TT_MAC_LANGID_MACEDONIAN 43 -#define TT_MAC_LANGID_BULGARIAN 44 -#define TT_MAC_LANGID_UKRAINIAN 45 -#define TT_MAC_LANGID_BYELORUSSIAN 46 -#define TT_MAC_LANGID_UZBEK 47 -#define TT_MAC_LANGID_KAZAKH 48 -#define TT_MAC_LANGID_AZERBAIJANI 49 -#define TT_MAC_LANGID_AZERBAIJANI_CYRILLIC_SCRIPT 49 -#define TT_MAC_LANGID_AZERBAIJANI_ARABIC_SCRIPT 50 -#define TT_MAC_LANGID_ARMENIAN 51 -#define TT_MAC_LANGID_GEORGIAN 52 -#define TT_MAC_LANGID_MOLDAVIAN 53 -#define TT_MAC_LANGID_KIRGHIZ 54 -#define TT_MAC_LANGID_TAJIKI 55 -#define TT_MAC_LANGID_TURKMEN 56 -#define TT_MAC_LANGID_MONGOLIAN 57 -#define TT_MAC_LANGID_MONGOLIAN_MONGOLIAN_SCRIPT 57 -#define TT_MAC_LANGID_MONGOLIAN_CYRILLIC_SCRIPT 58 -#define TT_MAC_LANGID_PASHTO 59 -#define TT_MAC_LANGID_KURDISH 60 -#define TT_MAC_LANGID_KASHMIRI 61 -#define TT_MAC_LANGID_SINDHI 62 -#define TT_MAC_LANGID_TIBETAN 63 -#define TT_MAC_LANGID_NEPALI 64 -#define TT_MAC_LANGID_SANSKRIT 65 -#define TT_MAC_LANGID_MARATHI 66 -#define TT_MAC_LANGID_BENGALI 67 -#define TT_MAC_LANGID_ASSAMESE 68 -#define TT_MAC_LANGID_GUJARATI 69 -#define TT_MAC_LANGID_PUNJABI 70 -#define TT_MAC_LANGID_ORIYA 71 -#define TT_MAC_LANGID_MALAYALAM 72 -#define TT_MAC_LANGID_KANNADA 73 -#define TT_MAC_LANGID_TAMIL 74 -#define TT_MAC_LANGID_TELUGU 75 -#define TT_MAC_LANGID_SINHALESE 76 -#define TT_MAC_LANGID_BURMESE 77 -#define TT_MAC_LANGID_KHMER 78 -#define TT_MAC_LANGID_LAO 79 -#define TT_MAC_LANGID_VIETNAMESE 80 -#define TT_MAC_LANGID_INDONESIAN 81 -#define TT_MAC_LANGID_TAGALOG 82 -#define TT_MAC_LANGID_MALAY_ROMAN_SCRIPT 83 -#define TT_MAC_LANGID_MALAY_ARABIC_SCRIPT 84 -#define TT_MAC_LANGID_AMHARIC 85 -#define TT_MAC_LANGID_TIGRINYA 86 -#define TT_MAC_LANGID_GALLA 87 -#define TT_MAC_LANGID_SOMALI 88 -#define TT_MAC_LANGID_SWAHILI 89 -#define TT_MAC_LANGID_RUANDA 90 -#define TT_MAC_LANGID_RUNDI 91 -#define TT_MAC_LANGID_CHEWA 92 -#define TT_MAC_LANGID_MALAGASY 93 -#define TT_MAC_LANGID_ESPERANTO 94 -#define TT_MAC_LANGID_WELSH 128 -#define TT_MAC_LANGID_BASQUE 129 -#define TT_MAC_LANGID_CATALAN 130 -#define TT_MAC_LANGID_LATIN 131 -#define TT_MAC_LANGID_QUECHUA 132 -#define TT_MAC_LANGID_GUARANI 133 -#define TT_MAC_LANGID_AYMARA 134 -#define TT_MAC_LANGID_TATAR 135 -#define TT_MAC_LANGID_UIGHUR 136 -#define TT_MAC_LANGID_DZONGKHA 137 -#define TT_MAC_LANGID_JAVANESE 138 -#define TT_MAC_LANGID_SUNDANESE 139 - - -#if 0 /* these seem to be errors that have been dropped */ - -#define TT_MAC_LANGID_SCOTTISH_GAELIC 140 -#define TT_MAC_LANGID_IRISH_GAELIC 141 - -#endif - - - /* The following codes are new as of 2000-03-10 */ -#define TT_MAC_LANGID_GALICIAN 140 -#define TT_MAC_LANGID_AFRIKAANS 141 -#define TT_MAC_LANGID_BRETON 142 -#define TT_MAC_LANGID_INUKTITUT 143 -#define TT_MAC_LANGID_SCOTTISH_GAELIC 144 -#define TT_MAC_LANGID_MANX_GAELIC 145 -#define TT_MAC_LANGID_IRISH_GAELIC 146 -#define TT_MAC_LANGID_TONGAN 147 -#define TT_MAC_LANGID_GREEK_POLYTONIC 148 -#define TT_MAC_LANGID_GREELANDIC 149 -#define TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT 150 - - - /*************************************************************************/ - /* */ - /* Possible values of the language identifier field in the name records */ - /* of the TTF `name' table if the `platform' identifier code is */ - /* TT_PLATFORM_MICROSOFT. */ - /* */ - /* The canonical source for the MS assigned LCIDs is */ - /* */ - /* http://www.microsoft.com/globaldev/reference/lcid-all.mspx */ - /* */ - -#define TT_MS_LANGID_ARABIC_GENERAL 0x0001 -#define TT_MS_LANGID_ARABIC_SAUDI_ARABIA 0x0401 -#define TT_MS_LANGID_ARABIC_IRAQ 0x0801 -#define TT_MS_LANGID_ARABIC_EGYPT 0x0C01 -#define TT_MS_LANGID_ARABIC_LIBYA 0x1001 -#define TT_MS_LANGID_ARABIC_ALGERIA 0x1401 -#define TT_MS_LANGID_ARABIC_MOROCCO 0x1801 -#define TT_MS_LANGID_ARABIC_TUNISIA 0x1C01 -#define TT_MS_LANGID_ARABIC_OMAN 0x2001 -#define TT_MS_LANGID_ARABIC_YEMEN 0x2401 -#define TT_MS_LANGID_ARABIC_SYRIA 0x2801 -#define TT_MS_LANGID_ARABIC_JORDAN 0x2C01 -#define TT_MS_LANGID_ARABIC_LEBANON 0x3001 -#define TT_MS_LANGID_ARABIC_KUWAIT 0x3401 -#define TT_MS_LANGID_ARABIC_UAE 0x3801 -#define TT_MS_LANGID_ARABIC_BAHRAIN 0x3C01 -#define TT_MS_LANGID_ARABIC_QATAR 0x4001 -#define TT_MS_LANGID_BULGARIAN_BULGARIA 0x0402 -#define TT_MS_LANGID_CATALAN_SPAIN 0x0403 -#define TT_MS_LANGID_CHINESE_GENERAL 0x0004 -#define TT_MS_LANGID_CHINESE_TAIWAN 0x0404 -#define TT_MS_LANGID_CHINESE_PRC 0x0804 -#define TT_MS_LANGID_CHINESE_HONG_KONG 0x0C04 -#define TT_MS_LANGID_CHINESE_SINGAPORE 0x1004 - -#if 1 /* this looks like the correct value */ -#define TT_MS_LANGID_CHINESE_MACAU 0x1404 -#else /* but beware, Microsoft may change its mind... - the most recent Word reference has the following: */ -#define TT_MS_LANGID_CHINESE_MACAU TT_MS_LANGID_CHINESE_HONG_KONG -#endif - -#if 0 /* used only with .NET `cultures'; commented out */ -#define TT_MS_LANGID_CHINESE_TRADITIONAL 0x7C04 -#endif - -#define TT_MS_LANGID_CZECH_CZECH_REPUBLIC 0x0405 -#define TT_MS_LANGID_DANISH_DENMARK 0x0406 -#define TT_MS_LANGID_GERMAN_GERMANY 0x0407 -#define TT_MS_LANGID_GERMAN_SWITZERLAND 0x0807 -#define TT_MS_LANGID_GERMAN_AUSTRIA 0x0C07 -#define TT_MS_LANGID_GERMAN_LUXEMBOURG 0x1007 -#define TT_MS_LANGID_GERMAN_LIECHTENSTEI 0x1407 -#define TT_MS_LANGID_GREEK_GREECE 0x0408 - - /* don't ask what this one means... It is commented out currently. */ -#if 0 -#define TT_MS_LANGID_GREEK_GREECE2 0x2008 -#endif - -#define TT_MS_LANGID_ENGLISH_GENERAL 0x0009 -#define TT_MS_LANGID_ENGLISH_UNITED_STATES 0x0409 -#define TT_MS_LANGID_ENGLISH_UNITED_KINGDOM 0x0809 -#define TT_MS_LANGID_ENGLISH_AUSTRALIA 0x0C09 -#define TT_MS_LANGID_ENGLISH_CANADA 0x1009 -#define TT_MS_LANGID_ENGLISH_NEW_ZEALAND 0x1409 -#define TT_MS_LANGID_ENGLISH_IRELAND 0x1809 -#define TT_MS_LANGID_ENGLISH_SOUTH_AFRICA 0x1C09 -#define TT_MS_LANGID_ENGLISH_JAMAICA 0x2009 -#define TT_MS_LANGID_ENGLISH_CARIBBEAN 0x2409 -#define TT_MS_LANGID_ENGLISH_BELIZE 0x2809 -#define TT_MS_LANGID_ENGLISH_TRINIDAD 0x2C09 -#define TT_MS_LANGID_ENGLISH_ZIMBABWE 0x3009 -#define TT_MS_LANGID_ENGLISH_PHILIPPINES 0x3409 -#define TT_MS_LANGID_ENGLISH_INDONESIA 0x3809 -#define TT_MS_LANGID_ENGLISH_HONG_KONG 0x3C09 -#define TT_MS_LANGID_ENGLISH_INDIA 0x4009 -#define TT_MS_LANGID_ENGLISH_MALAYSIA 0x4409 -#define TT_MS_LANGID_ENGLISH_SINGAPORE 0x4809 -#define TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT 0x040A -#define TT_MS_LANGID_SPANISH_MEXICO 0x080A -#define TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT 0x0C0A -#define TT_MS_LANGID_SPANISH_GUATEMALA 0x100A -#define TT_MS_LANGID_SPANISH_COSTA_RICA 0x140A -#define TT_MS_LANGID_SPANISH_PANAMA 0x180A -#define TT_MS_LANGID_SPANISH_DOMINICAN_REPUBLIC 0x1C0A -#define TT_MS_LANGID_SPANISH_VENEZUELA 0x200A -#define TT_MS_LANGID_SPANISH_COLOMBIA 0x240A -#define TT_MS_LANGID_SPANISH_PERU 0x280A -#define TT_MS_LANGID_SPANISH_ARGENTINA 0x2C0A -#define TT_MS_LANGID_SPANISH_ECUADOR 0x300A -#define TT_MS_LANGID_SPANISH_CHILE 0x340A -#define TT_MS_LANGID_SPANISH_URUGUAY 0x380A -#define TT_MS_LANGID_SPANISH_PARAGUAY 0x3C0A -#define TT_MS_LANGID_SPANISH_BOLIVIA 0x400A -#define TT_MS_LANGID_SPANISH_EL_SALVADOR 0x440A -#define TT_MS_LANGID_SPANISH_HONDURAS 0x480A -#define TT_MS_LANGID_SPANISH_NICARAGUA 0x4C0A -#define TT_MS_LANGID_SPANISH_PUERTO_RICO 0x500A -#define TT_MS_LANGID_SPANISH_UNITED_STATES 0x540A - /* The following ID blatantly violate MS specs by using a */ - /* sublanguage > 0x1F. */ -#define TT_MS_LANGID_SPANISH_LATIN_AMERICA 0xE40AU -#define TT_MS_LANGID_FINNISH_FINLAND 0x040B -#define TT_MS_LANGID_FRENCH_FRANCE 0x040C -#define TT_MS_LANGID_FRENCH_BELGIUM 0x080C -#define TT_MS_LANGID_FRENCH_CANADA 0x0C0C -#define TT_MS_LANGID_FRENCH_SWITZERLAND 0x100C -#define TT_MS_LANGID_FRENCH_LUXEMBOURG 0x140C -#define TT_MS_LANGID_FRENCH_MONACO 0x180C -#define TT_MS_LANGID_FRENCH_WEST_INDIES 0x1C0C -#define TT_MS_LANGID_FRENCH_REUNION 0x200C -#define TT_MS_LANGID_FRENCH_CONGO 0x240C - /* which was formerly: */ -#define TT_MS_LANGID_FRENCH_ZAIRE TT_MS_LANGID_FRENCH_CONGO -#define TT_MS_LANGID_FRENCH_SENEGAL 0x280C -#define TT_MS_LANGID_FRENCH_CAMEROON 0x2C0C -#define TT_MS_LANGID_FRENCH_COTE_D_IVOIRE 0x300C -#define TT_MS_LANGID_FRENCH_MALI 0x340C -#define TT_MS_LANGID_FRENCH_MOROCCO 0x380C -#define TT_MS_LANGID_FRENCH_HAITI 0x3C0C - /* and another violation of the spec (see 0xE40AU) */ -#define TT_MS_LANGID_FRENCH_NORTH_AFRICA 0xE40CU -#define TT_MS_LANGID_HEBREW_ISRAEL 0x040D -#define TT_MS_LANGID_HUNGARIAN_HUNGARY 0x040E -#define TT_MS_LANGID_ICELANDIC_ICELAND 0x040F -#define TT_MS_LANGID_ITALIAN_ITALY 0x0410 -#define TT_MS_LANGID_ITALIAN_SWITZERLAND 0x0810 -#define TT_MS_LANGID_JAPANESE_JAPAN 0x0411 -#define TT_MS_LANGID_KOREAN_EXTENDED_WANSUNG_KOREA 0x0412 -#define TT_MS_LANGID_KOREAN_JOHAB_KOREA 0x0812 -#define TT_MS_LANGID_DUTCH_NETHERLANDS 0x0413 -#define TT_MS_LANGID_DUTCH_BELGIUM 0x0813 -#define TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL 0x0414 -#define TT_MS_LANGID_NORWEGIAN_NORWAY_NYNORSK 0x0814 -#define TT_MS_LANGID_POLISH_POLAND 0x0415 -#define TT_MS_LANGID_PORTUGUESE_BRAZIL 0x0416 -#define TT_MS_LANGID_PORTUGUESE_PORTUGAL 0x0816 -#define TT_MS_LANGID_RHAETO_ROMANIC_SWITZERLAND 0x0417 -#define TT_MS_LANGID_ROMANIAN_ROMANIA 0x0418 -#define TT_MS_LANGID_MOLDAVIAN_MOLDAVIA 0x0818 -#define TT_MS_LANGID_RUSSIAN_RUSSIA 0x0419 -#define TT_MS_LANGID_RUSSIAN_MOLDAVIA 0x0819 -#define TT_MS_LANGID_CROATIAN_CROATIA 0x041A -#define TT_MS_LANGID_SERBIAN_SERBIA_LATIN 0x081A -#define TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC 0x0C1A - -#if 0 /* this used to be this value, but it looks like we were wrong */ -#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x101A -#else /* current sources say */ -#define TT_MS_LANGID_CROATIAN_BOSNIA_HERZEGOVINA 0x101A -#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x141A - /* and XPsp2 Platform SDK added (2004-07-26) */ - /* Names are shortened to be significant within 40 chars. */ -#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_LATIN 0x181A -#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC 0x181A -#endif - -#define TT_MS_LANGID_SLOVAK_SLOVAKIA 0x041B -#define TT_MS_LANGID_ALBANIAN_ALBANIA 0x041C -#define TT_MS_LANGID_SWEDISH_SWEDEN 0x041D -#define TT_MS_LANGID_SWEDISH_FINLAND 0x081D -#define TT_MS_LANGID_THAI_THAILAND 0x041E -#define TT_MS_LANGID_TURKISH_TURKEY 0x041F -#define TT_MS_LANGID_URDU_PAKISTAN 0x0420 -#define TT_MS_LANGID_URDU_INDIA 0x0820 -#define TT_MS_LANGID_INDONESIAN_INDONESIA 0x0421 -#define TT_MS_LANGID_UKRAINIAN_UKRAINE 0x0422 -#define TT_MS_LANGID_BELARUSIAN_BELARUS 0x0423 -#define TT_MS_LANGID_SLOVENE_SLOVENIA 0x0424 -#define TT_MS_LANGID_ESTONIAN_ESTONIA 0x0425 -#define TT_MS_LANGID_LATVIAN_LATVIA 0x0426 -#define TT_MS_LANGID_LITHUANIAN_LITHUANIA 0x0427 -#define TT_MS_LANGID_CLASSIC_LITHUANIAN_LITHUANIA 0x0827 -#define TT_MS_LANGID_TAJIK_TAJIKISTAN 0x0428 -#define TT_MS_LANGID_FARSI_IRAN 0x0429 -#define TT_MS_LANGID_VIETNAMESE_VIET_NAM 0x042A -#define TT_MS_LANGID_ARMENIAN_ARMENIA 0x042B -#define TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN 0x042C -#define TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC 0x082C -#define TT_MS_LANGID_BASQUE_SPAIN 0x042D -#define TT_MS_LANGID_SORBIAN_GERMANY 0x042E -#define TT_MS_LANGID_MACEDONIAN_MACEDONIA 0x042F -#define TT_MS_LANGID_SUTU_SOUTH_AFRICA 0x0430 -#define TT_MS_LANGID_TSONGA_SOUTH_AFRICA 0x0431 -#define TT_MS_LANGID_TSWANA_SOUTH_AFRICA 0x0432 -#define TT_MS_LANGID_VENDA_SOUTH_AFRICA 0x0433 -#define TT_MS_LANGID_XHOSA_SOUTH_AFRICA 0x0434 -#define TT_MS_LANGID_ZULU_SOUTH_AFRICA 0x0435 -#define TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA 0x0436 -#define TT_MS_LANGID_GEORGIAN_GEORGIA 0x0437 -#define TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS 0x0438 -#define TT_MS_LANGID_HINDI_INDIA 0x0439 -#define TT_MS_LANGID_MALTESE_MALTA 0x043A - /* Added by XPsp2 Platform SDK (2004-07-26) */ -#define TT_MS_LANGID_SAMI_NORTHERN_NORWAY 0x043B -#define TT_MS_LANGID_SAMI_NORTHERN_SWEDEN 0x083B -#define TT_MS_LANGID_SAMI_NORTHERN_FINLAND 0x0C3B -#define TT_MS_LANGID_SAMI_LULE_NORWAY 0x103B -#define TT_MS_LANGID_SAMI_LULE_SWEDEN 0x143B -#define TT_MS_LANGID_SAMI_SOUTHERN_NORWAY 0x183B -#define TT_MS_LANGID_SAMI_SOUTHERN_SWEDEN 0x1C3B -#define TT_MS_LANGID_SAMI_SKOLT_FINLAND 0x203B -#define TT_MS_LANGID_SAMI_INARI_FINLAND 0x243B - /* ... and we also keep our old identifier... */ -#define TT_MS_LANGID_SAAMI_LAPONIA 0x043B - -#if 0 /* this seems to be a previous inversion */ -#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C -#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C -#else -#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C -#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C -#endif - -#define TT_MS_LANGID_YIDDISH_GERMANY 0x043D -#define TT_MS_LANGID_MALAY_MALAYSIA 0x043E -#define TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM 0x083E -#define TT_MS_LANGID_KAZAK_KAZAKSTAN 0x043F -#define TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN /* Cyrillic*/ 0x0440 - /* alias declared in Windows 2000 */ -#define TT_MS_LANGID_KIRGHIZ_KIRGHIZ_REPUBLIC \ - TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN - -#define TT_MS_LANGID_SWAHILI_KENYA 0x0441 -#define TT_MS_LANGID_TURKMEN_TURKMENISTAN 0x0442 -#define TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN 0x0443 -#define TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC 0x0843 -#define TT_MS_LANGID_TATAR_TATARSTAN 0x0444 -#define TT_MS_LANGID_BENGALI_INDIA 0x0445 -#define TT_MS_LANGID_BENGALI_BANGLADESH 0x0845 -#define TT_MS_LANGID_PUNJABI_INDIA 0x0446 -#define TT_MS_LANGID_PUNJABI_ARABIC_PAKISTAN 0x0846 -#define TT_MS_LANGID_GUJARATI_INDIA 0x0447 -#define TT_MS_LANGID_ORIYA_INDIA 0x0448 -#define TT_MS_LANGID_TAMIL_INDIA 0x0449 -#define TT_MS_LANGID_TELUGU_INDIA 0x044A -#define TT_MS_LANGID_KANNADA_INDIA 0x044B -#define TT_MS_LANGID_MALAYALAM_INDIA 0x044C -#define TT_MS_LANGID_ASSAMESE_INDIA 0x044D -#define TT_MS_LANGID_MARATHI_INDIA 0x044E -#define TT_MS_LANGID_SANSKRIT_INDIA 0x044F -#define TT_MS_LANGID_MONGOLIAN_MONGOLIA /* Cyrillic */ 0x0450 -#define TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN 0x0850 -#define TT_MS_LANGID_TIBETAN_CHINA 0x0451 - /* Don't use the next constant! It has */ - /* (1) the wrong spelling (Dzonghka) */ - /* (2) Microsoft doesn't officially define it -- */ - /* at least it is not in the List of Local */ - /* ID Values. */ - /* (3) Dzongkha is not the same language as */ - /* Tibetan, so merging it is wrong anyway. */ - /* */ - /* TT_MS_LANGID_TIBETAN_BHUTAN is correct, BTW. */ -#define TT_MS_LANGID_DZONGHKA_BHUTAN 0x0851 - -#if 0 - /* the following used to be defined */ -#define TT_MS_LANGID_TIBETAN_BHUTAN 0x0451 - /* ... but it was changed; */ -#else - /* So we will continue to #define it, but with the correct value */ -#define TT_MS_LANGID_TIBETAN_BHUTAN TT_MS_LANGID_DZONGHKA_BHUTAN -#endif - -#define TT_MS_LANGID_WELSH_WALES 0x0452 -#define TT_MS_LANGID_KHMER_CAMBODIA 0x0453 -#define TT_MS_LANGID_LAO_LAOS 0x0454 -#define TT_MS_LANGID_BURMESE_MYANMAR 0x0455 -#define TT_MS_LANGID_GALICIAN_SPAIN 0x0456 -#define TT_MS_LANGID_KONKANI_INDIA 0x0457 -#define TT_MS_LANGID_MANIPURI_INDIA /* Bengali */ 0x0458 -#define TT_MS_LANGID_SINDHI_INDIA /* Arabic */ 0x0459 -#define TT_MS_LANGID_SINDHI_PAKISTAN 0x0859 - /* Missing a LCID for Sindhi in Devanagari script */ -#define TT_MS_LANGID_SYRIAC_SYRIA 0x045A -#define TT_MS_LANGID_SINHALESE_SRI_LANKA 0x045B -#define TT_MS_LANGID_CHEROKEE_UNITED_STATES 0x045C -#define TT_MS_LANGID_INUKTITUT_CANADA 0x045D -#define TT_MS_LANGID_AMHARIC_ETHIOPIA 0x045E -#define TT_MS_LANGID_TAMAZIGHT_MOROCCO /* Arabic */ 0x045F -#define TT_MS_LANGID_TAMAZIGHT_MOROCCO_LATIN 0x085F - /* Missing a LCID for Tifinagh script */ -#define TT_MS_LANGID_KASHMIRI_PAKISTAN /* Arabic */ 0x0460 - /* Spelled this way by XPsp2 Platform SDK (2004-07-26) */ - /* script is yet unclear... might be Arabic, Nagari or Sharada */ -#define TT_MS_LANGID_KASHMIRI_SASIA 0x0860 - /* ... and aliased (by MS) for compatibility reasons. */ -#define TT_MS_LANGID_KASHMIRI_INDIA TT_MS_LANGID_KASHMIRI_SASIA -#define TT_MS_LANGID_NEPALI_NEPAL 0x0461 -#define TT_MS_LANGID_NEPALI_INDIA 0x0861 -#define TT_MS_LANGID_FRISIAN_NETHERLANDS 0x0462 -#define TT_MS_LANGID_PASHTO_AFGHANISTAN 0x0463 -#define TT_MS_LANGID_FILIPINO_PHILIPPINES 0x0464 -#define TT_MS_LANGID_DHIVEHI_MALDIVES 0x0465 - /* alias declared in Windows 2000 */ -#define TT_MS_LANGID_DIVEHI_MALDIVES TT_MS_LANGID_DHIVEHI_MALDIVES -#define TT_MS_LANGID_EDO_NIGERIA 0x0466 -#define TT_MS_LANGID_FULFULDE_NIGERIA 0x0467 -#define TT_MS_LANGID_HAUSA_NIGERIA 0x0468 -#define TT_MS_LANGID_IBIBIO_NIGERIA 0x0469 -#define TT_MS_LANGID_YORUBA_NIGERIA 0x046A -#define TT_MS_LANGID_QUECHUA_BOLIVIA 0x046B -#define TT_MS_LANGID_QUECHUA_ECUADOR 0x086B -#define TT_MS_LANGID_QUECHUA_PERU 0x0C6B -#define TT_MS_LANGID_SEPEDI_SOUTH_AFRICA 0x046C - /* Also spelled by XPsp2 Platform SDK (2004-07-26) */ -#define TT_MS_LANGID_SOTHO_SOUTHERN_SOUTH_AFRICA \ - TT_MS_LANGID_SEPEDI_SOUTH_AFRICA - /* language codes 0x046D, 0x046E and 0x046F are (still) unknown. */ -#define TT_MS_LANGID_IGBO_NIGERIA 0x0470 -#define TT_MS_LANGID_KANURI_NIGERIA 0x0471 -#define TT_MS_LANGID_OROMO_ETHIOPIA 0x0472 -#define TT_MS_LANGID_TIGRIGNA_ETHIOPIA 0x0473 -#define TT_MS_LANGID_TIGRIGNA_ERYTHREA 0x0873 - /* also spelled in the `Passport SDK' list as: */ -#define TT_MS_LANGID_TIGRIGNA_ERYTREA TT_MS_LANGID_TIGRIGNA_ERYTHREA -#define TT_MS_LANGID_GUARANI_PARAGUAY 0x0474 -#define TT_MS_LANGID_HAWAIIAN_UNITED_STATES 0x0475 -#define TT_MS_LANGID_LATIN 0x0476 -#define TT_MS_LANGID_SOMALI_SOMALIA 0x0477 - /* Note: Yi does not have a (proper) ISO 639-2 code, since it is mostly */ - /* not written (but OTOH the peculiar writing system is worth */ - /* studying). */ -#define TT_MS_LANGID_YI_CHINA 0x0478 -#define TT_MS_LANGID_PAPIAMENTU_NETHERLANDS_ANTILLES 0x0479 - /* language codes from 0x047A to 0x047F are (still) unknown. */ -#define TT_MS_LANGID_UIGHUR_CHINA 0x0480 -#define TT_MS_LANGID_MAORI_NEW_ZEALAND 0x0481 - -#if 0 /* not deemed useful for fonts */ -#define TT_MS_LANGID_HUMAN_INTERFACE_DEVICE 0x04FF -#endif - - - /*************************************************************************/ - /* */ - /* Possible values of the `name' identifier field in the name records of */ - /* the TTF `name' table. These values are platform independent. */ - /* */ -#define TT_NAME_ID_COPYRIGHT 0 -#define TT_NAME_ID_FONT_FAMILY 1 -#define TT_NAME_ID_FONT_SUBFAMILY 2 -#define TT_NAME_ID_UNIQUE_ID 3 -#define TT_NAME_ID_FULL_NAME 4 -#define TT_NAME_ID_VERSION_STRING 5 -#define TT_NAME_ID_PS_NAME 6 -#define TT_NAME_ID_TRADEMARK 7 - - /* the following values are from the OpenType spec */ -#define TT_NAME_ID_MANUFACTURER 8 -#define TT_NAME_ID_DESIGNER 9 -#define TT_NAME_ID_DESCRIPTION 10 -#define TT_NAME_ID_VENDOR_URL 11 -#define TT_NAME_ID_DESIGNER_URL 12 -#define TT_NAME_ID_LICENSE 13 -#define TT_NAME_ID_LICENSE_URL 14 - /* number 15 is reserved */ -#define TT_NAME_ID_PREFERRED_FAMILY 16 -#define TT_NAME_ID_PREFERRED_SUBFAMILY 17 -#define TT_NAME_ID_MAC_FULL_NAME 18 - - /* The following code is new as of 2000-01-21 */ -#define TT_NAME_ID_SAMPLE_TEXT 19 - - /* This is new in OpenType 1.3 */ -#define TT_NAME_ID_CID_FINDFONT_NAME 20 - - /* This is new in OpenType 1.5 */ -#define TT_NAME_ID_WWS_FAMILY 21 -#define TT_NAME_ID_WWS_SUBFAMILY 22 - - - /*************************************************************************/ - /* */ - /* Bit mask values for the Unicode Ranges from the TTF `OS2 ' table. */ - /* */ - /* Updated 08-Nov-2008. */ - /* */ - - /* Bit 0 Basic Latin */ -#define TT_UCR_BASIC_LATIN (1L << 0) /* U+0020-U+007E */ - /* Bit 1 C1 Controls and Latin-1 Supplement */ -#define TT_UCR_LATIN1_SUPPLEMENT (1L << 1) /* U+0080-U+00FF */ - /* Bit 2 Latin Extended-A */ -#define TT_UCR_LATIN_EXTENDED_A (1L << 2) /* U+0100-U+017F */ - /* Bit 3 Latin Extended-B */ -#define TT_UCR_LATIN_EXTENDED_B (1L << 3) /* U+0180-U+024F */ - /* Bit 4 IPA Extensions */ - /* Phonetic Extensions */ - /* Phonetic Extensions Supplement */ -#define TT_UCR_IPA_EXTENSIONS (1L << 4) /* U+0250-U+02AF */ - /* U+1D00-U+1D7F */ - /* U+1D80-U+1DBF */ - /* Bit 5 Spacing Modifier Letters */ - /* Modifier Tone Letters */ -#define TT_UCR_SPACING_MODIFIER (1L << 5) /* U+02B0-U+02FF */ - /* U+A700-U+A71F */ - /* Bit 6 Combining Diacritical Marks */ - /* Combining Diacritical Marks Supplement */ -#define TT_UCR_COMBINING_DIACRITICS (1L << 6) /* U+0300-U+036F */ - /* U+1DC0-U+1DFF */ - /* Bit 7 Greek and Coptic */ -#define TT_UCR_GREEK (1L << 7) /* U+0370-U+03FF */ - /* Bit 8 Coptic */ -#define TT_UCR_COPTIC (1L << 8) /* U+2C80-U+2CFF */ - /* Bit 9 Cyrillic */ - /* Cyrillic Supplement */ - /* Cyrillic Extended-A */ - /* Cyrillic Extended-B */ -#define TT_UCR_CYRILLIC (1L << 9) /* U+0400-U+04FF */ - /* U+0500-U+052F */ - /* U+2DE0-U+2DFF */ - /* U+A640-U+A69F */ - /* Bit 10 Armenian */ -#define TT_UCR_ARMENIAN (1L << 10) /* U+0530-U+058F */ - /* Bit 11 Hebrew */ -#define TT_UCR_HEBREW (1L << 11) /* U+0590-U+05FF */ - /* Bit 12 Vai */ -#define TT_UCR_VAI (1L << 12) /* U+A500-U+A63F */ - /* Bit 13 Arabic */ - /* Arabic Supplement */ -#define TT_UCR_ARABIC (1L << 13) /* U+0600-U+06FF */ - /* U+0750-U+077F */ - /* Bit 14 NKo */ -#define TT_UCR_NKO (1L << 14) /* U+07C0-U+07FF */ - /* Bit 15 Devanagari */ -#define TT_UCR_DEVANAGARI (1L << 15) /* U+0900-U+097F */ - /* Bit 16 Bengali */ -#define TT_UCR_BENGALI (1L << 16) /* U+0980-U+09FF */ - /* Bit 17 Gurmukhi */ -#define TT_UCR_GURMUKHI (1L << 17) /* U+0A00-U+0A7F */ - /* Bit 18 Gujarati */ -#define TT_UCR_GUJARATI (1L << 18) /* U+0A80-U+0AFF */ - /* Bit 19 Oriya */ -#define TT_UCR_ORIYA (1L << 19) /* U+0B00-U+0B7F */ - /* Bit 20 Tamil */ -#define TT_UCR_TAMIL (1L << 20) /* U+0B80-U+0BFF */ - /* Bit 21 Telugu */ -#define TT_UCR_TELUGU (1L << 21) /* U+0C00-U+0C7F */ - /* Bit 22 Kannada */ -#define TT_UCR_KANNADA (1L << 22) /* U+0C80-U+0CFF */ - /* Bit 23 Malayalam */ -#define TT_UCR_MALAYALAM (1L << 23) /* U+0D00-U+0D7F */ - /* Bit 24 Thai */ -#define TT_UCR_THAI (1L << 24) /* U+0E00-U+0E7F */ - /* Bit 25 Lao */ -#define TT_UCR_LAO (1L << 25) /* U+0E80-U+0EFF */ - /* Bit 26 Georgian */ - /* Georgian Supplement */ -#define TT_UCR_GEORGIAN (1L << 26) /* U+10A0-U+10FF */ - /* U+2D00-U+2D2F */ - /* Bit 27 Balinese */ -#define TT_UCR_BALINESE (1L << 27) /* U+1B00-U+1B7F */ - /* Bit 28 Hangul Jamo */ -#define TT_UCR_HANGUL_JAMO (1L << 28) /* U+1100-U+11FF */ - /* Bit 29 Latin Extended Additional */ - /* Latin Extended-C */ - /* Latin Extended-D */ -#define TT_UCR_LATIN_EXTENDED_ADDITIONAL (1L << 29) /* U+1E00-U+1EFF */ - /* U+2C60-U+2C7F */ - /* U+A720-U+A7FF */ - /* Bit 30 Greek Extended */ -#define TT_UCR_GREEK_EXTENDED (1L << 30) /* U+1F00-U+1FFF */ - /* Bit 31 General Punctuation */ - /* Supplemental Punctuation */ -#define TT_UCR_GENERAL_PUNCTUATION (1L << 31) /* U+2000-U+206F */ - /* U+2E00-U+2E7F */ - /* Bit 32 Superscripts And Subscripts */ -#define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS (1L << 0) /* U+2070-U+209F */ - /* Bit 33 Currency Symbols */ -#define TT_UCR_CURRENCY_SYMBOLS (1L << 1) /* U+20A0-U+20CF */ - /* Bit 34 Combining Diacritical Marks For Symbols */ -#define TT_UCR_COMBINING_DIACRITICS_SYMB (1L << 2) /* U+20D0-U+20FF */ - /* Bit 35 Letterlike Symbols */ -#define TT_UCR_LETTERLIKE_SYMBOLS (1L << 3) /* U+2100-U+214F */ - /* Bit 36 Number Forms */ -#define TT_UCR_NUMBER_FORMS (1L << 4) /* U+2150-U+218F */ - /* Bit 37 Arrows */ - /* Supplemental Arrows-A */ - /* Supplemental Arrows-B */ - /* Miscellaneous Symbols and Arrows */ -#define TT_UCR_ARROWS (1L << 5) /* U+2190-U+21FF */ - /* U+27F0-U+27FF */ - /* U+2900-U+297F */ - /* U+2B00-U+2BFF */ - /* Bit 38 Mathematical Operators */ - /* Supplemental Mathematical Operators */ - /* Miscellaneous Mathematical Symbols-A */ - /* Miscellaneous Mathematical Symbols-B */ -#define TT_UCR_MATHEMATICAL_OPERATORS (1L << 6) /* U+2200-U+22FF */ - /* U+2A00-U+2AFF */ - /* U+27C0-U+27EF */ - /* U+2980-U+29FF */ - /* Bit 39 Miscellaneous Technical */ -#define TT_UCR_MISCELLANEOUS_TECHNICAL (1L << 7) /* U+2300-U+23FF */ - /* Bit 40 Control Pictures */ -#define TT_UCR_CONTROL_PICTURES (1L << 8) /* U+2400-U+243F */ - /* Bit 41 Optical Character Recognition */ -#define TT_UCR_OCR (1L << 9) /* U+2440-U+245F */ - /* Bit 42 Enclosed Alphanumerics */ -#define TT_UCR_ENCLOSED_ALPHANUMERICS (1L << 10) /* U+2460-U+24FF */ - /* Bit 43 Box Drawing */ -#define TT_UCR_BOX_DRAWING (1L << 11) /* U+2500-U+257F */ - /* Bit 44 Block Elements */ -#define TT_UCR_BLOCK_ELEMENTS (1L << 12) /* U+2580-U+259F */ - /* Bit 45 Geometric Shapes */ -#define TT_UCR_GEOMETRIC_SHAPES (1L << 13) /* U+25A0-U+25FF */ - /* Bit 46 Miscellaneous Symbols */ -#define TT_UCR_MISCELLANEOUS_SYMBOLS (1L << 14) /* U+2600-U+26FF */ - /* Bit 47 Dingbats */ -#define TT_UCR_DINGBATS (1L << 15) /* U+2700-U+27BF */ - /* Bit 48 CJK Symbols and Punctuation */ -#define TT_UCR_CJK_SYMBOLS (1L << 16) /* U+3000-U+303F */ - /* Bit 49 Hiragana */ -#define TT_UCR_HIRAGANA (1L << 17) /* U+3040-U+309F */ - /* Bit 50 Katakana */ - /* Katakana Phonetic Extensions */ -#define TT_UCR_KATAKANA (1L << 18) /* U+30A0-U+30FF */ - /* U+31F0-U+31FF */ - /* Bit 51 Bopomofo */ - /* Bopomofo Extended */ -#define TT_UCR_BOPOMOFO (1L << 19) /* U+3100-U+312F */ - /* U+31A0-U+31BF */ - /* Bit 52 Hangul Compatibility Jamo */ -#define TT_UCR_HANGUL_COMPATIBILITY_JAMO (1L << 20) /* U+3130-U+318F */ - /* Bit 53 Phags-Pa */ -#define TT_UCR_CJK_MISC (1L << 21) /* U+A840-U+A87F */ -#define TT_UCR_KANBUN TT_UCR_CJK_MISC /* deprecated */ -#define TT_UCR_PHAGSPA - /* Bit 54 Enclosed CJK Letters and Months */ -#define TT_UCR_ENCLOSED_CJK_LETTERS_MONTHS (1L << 22) /* U+3200-U+32FF */ - /* Bit 55 CJK Compatibility */ -#define TT_UCR_CJK_COMPATIBILITY (1L << 23) /* U+3300-U+33FF */ - /* Bit 56 Hangul Syllables */ -#define TT_UCR_HANGUL (1L << 24) /* U+AC00-U+D7A3 */ - /* Bit 57 High Surrogates */ - /* High Private Use Surrogates */ - /* Low Surrogates */ - /* */ - /* According to OpenType specs v.1.3+, */ - /* setting bit 57 implies that there is */ - /* at least one codepoint beyond the */ - /* Basic Multilingual Plane that is */ - /* supported by this font. So it really */ - /* means >= U+10000 */ -#define TT_UCR_SURROGATES (1L << 25) /* U+D800-U+DB7F */ - /* U+DB80-U+DBFF */ - /* U+DC00-U+DFFF */ -#define TT_UCR_NON_PLANE_0 TT_UCR_SURROGATES - /* Bit 58 Phoenician */ -#define TT_UCR_PHOENICIAN (1L << 26) /*U+10900-U+1091F*/ - /* Bit 59 CJK Unified Ideographs */ - /* CJK Radicals Supplement */ - /* Kangxi Radicals */ - /* Ideographic Description Characters */ - /* CJK Unified Ideographs Extension A */ - /* CJK Unified Ideographs Extension B */ - /* Kanbun */ -#define TT_UCR_CJK_UNIFIED_IDEOGRAPHS (1L << 27) /* U+4E00-U+9FFF */ - /* U+2E80-U+2EFF */ - /* U+2F00-U+2FDF */ - /* U+2FF0-U+2FFF */ - /* U+3400-U+4DB5 */ - /*U+20000-U+2A6DF*/ - /* U+3190-U+319F */ - /* Bit 60 Private Use */ -#define TT_UCR_PRIVATE_USE (1L << 28) /* U+E000-U+F8FF */ - /* Bit 61 CJK Strokes */ - /* CJK Compatibility Ideographs */ - /* CJK Compatibility Ideographs Supplement */ -#define TT_UCR_CJK_COMPATIBILITY_IDEOGRAPHS (1L << 29) /* U+31C0-U+31EF */ - /* U+F900-U+FAFF */ - /*U+2F800-U+2FA1F*/ - /* Bit 62 Alphabetic Presentation Forms */ -#define TT_UCR_ALPHABETIC_PRESENTATION_FORMS (1L << 30) /* U+FB00-U+FB4F */ - /* Bit 63 Arabic Presentation Forms-A */ -#define TT_UCR_ARABIC_PRESENTATIONS_A (1L << 31) /* U+FB50-U+FDFF */ - /* Bit 64 Combining Half Marks */ -#define TT_UCR_COMBINING_HALF_MARKS (1L << 0) /* U+FE20-U+FE2F */ - /* Bit 65 Vertical forms */ - /* CJK Compatibility Forms */ -#define TT_UCR_CJK_COMPATIBILITY_FORMS (1L << 1) /* U+FE10-U+FE1F */ - /* U+FE30-U+FE4F */ - /* Bit 66 Small Form Variants */ -#define TT_UCR_SMALL_FORM_VARIANTS (1L << 2) /* U+FE50-U+FE6F */ - /* Bit 67 Arabic Presentation Forms-B */ -#define TT_UCR_ARABIC_PRESENTATIONS_B (1L << 3) /* U+FE70-U+FEFE */ - /* Bit 68 Halfwidth and Fullwidth Forms */ -#define TT_UCR_HALFWIDTH_FULLWIDTH_FORMS (1L << 4) /* U+FF00-U+FFEF */ - /* Bit 69 Specials */ -#define TT_UCR_SPECIALS (1L << 5) /* U+FFF0-U+FFFD */ - /* Bit 70 Tibetan */ -#define TT_UCR_TIBETAN (1L << 6) /* U+0F00-U+0FFF */ - /* Bit 71 Syriac */ -#define TT_UCR_SYRIAC (1L << 7) /* U+0700-U+074F */ - /* Bit 72 Thaana */ -#define TT_UCR_THAANA (1L << 8) /* U+0780-U+07BF */ - /* Bit 73 Sinhala */ -#define TT_UCR_SINHALA (1L << 9) /* U+0D80-U+0DFF */ - /* Bit 74 Myanmar */ -#define TT_UCR_MYANMAR (1L << 10) /* U+1000-U+109F */ - /* Bit 75 Ethiopic */ - /* Ethiopic Supplement */ - /* Ethiopic Extended */ -#define TT_UCR_ETHIOPIC (1L << 11) /* U+1200-U+137F */ - /* U+1380-U+139F */ - /* U+2D80-U+2DDF */ - /* Bit 76 Cherokee */ -#define TT_UCR_CHEROKEE (1L << 12) /* U+13A0-U+13FF */ - /* Bit 77 Unified Canadian Aboriginal Syllabics */ -#define TT_UCR_CANADIAN_ABORIGINAL_SYLLABICS (1L << 13) /* U+1400-U+167F */ - /* Bit 78 Ogham */ -#define TT_UCR_OGHAM (1L << 14) /* U+1680-U+169F */ - /* Bit 79 Runic */ -#define TT_UCR_RUNIC (1L << 15) /* U+16A0-U+16FF */ - /* Bit 80 Khmer */ - /* Khmer Symbols */ -#define TT_UCR_KHMER (1L << 16) /* U+1780-U+17FF */ - /* U+19E0-U+19FF */ - /* Bit 81 Mongolian */ -#define TT_UCR_MONGOLIAN (1L << 17) /* U+1800-U+18AF */ - /* Bit 82 Braille Patterns */ -#define TT_UCR_BRAILLE (1L << 18) /* U+2800-U+28FF */ - /* Bit 83 Yi Syllables */ - /* Yi Radicals */ -#define TT_UCR_YI (1L << 19) /* U+A000-U+A48F */ - /* U+A490-U+A4CF */ - /* Bit 84 Tagalog */ - /* Hanunoo */ - /* Buhid */ - /* Tagbanwa */ -#define TT_UCR_PHILIPPINE (1L << 20) /* U+1700-U+171F */ - /* U+1720-U+173F */ - /* U+1740-U+175F */ - /* U+1760-U+177F */ - /* Bit 85 Old Italic */ -#define TT_UCR_OLD_ITALIC (1L << 21) /*U+10300-U+1032F*/ - /* Bit 86 Gothic */ -#define TT_UCR_GOTHIC (1L << 22) /*U+10330-U+1034F*/ - /* Bit 87 Deseret */ -#define TT_UCR_DESERET (1L << 23) /*U+10400-U+1044F*/ - /* Bit 88 Byzantine Musical Symbols */ - /* Musical Symbols */ - /* Ancient Greek Musical Notation */ -#define TT_UCR_MUSICAL_SYMBOLS (1L << 24) /*U+1D000-U+1D0FF*/ - /*U+1D100-U+1D1FF*/ - /*U+1D200-U+1D24F*/ - /* Bit 89 Mathematical Alphanumeric Symbols */ -#define TT_UCR_MATH_ALPHANUMERIC_SYMBOLS (1L << 25) /*U+1D400-U+1D7FF*/ - /* Bit 90 Private Use (plane 15) */ - /* Private Use (plane 16) */ -#define TT_UCR_PRIVATE_USE_SUPPLEMENTARY (1L << 26) /*U+F0000-U+FFFFD*/ - /*U+100000-U+10FFFD*/ - /* Bit 91 Variation Selectors */ - /* Variation Selectors Supplement */ -#define TT_UCR_VARIATION_SELECTORS (1L << 27) /* U+FE00-U+FE0F */ - /*U+E0100-U+E01EF*/ - /* Bit 92 Tags */ -#define TT_UCR_TAGS (1L << 28) /*U+E0000-U+E007F*/ - /* Bit 93 Limbu */ -#define TT_UCR_LIMBU (1L << 29) /* U+1900-U+194F */ - /* Bit 94 Tai Le */ -#define TT_UCR_TAI_LE (1L << 30) /* U+1950-U+197F */ - /* Bit 95 New Tai Lue */ -#define TT_UCR_NEW_TAI_LUE (1L << 31) /* U+1980-U+19DF */ - /* Bit 96 Buginese */ -#define TT_UCR_BUGINESE (1L << 0) /* U+1A00-U+1A1F */ - /* Bit 97 Glagolitic */ -#define TT_UCR_GLAGOLITIC (1L << 1) /* U+2C00-U+2C5F */ - /* Bit 98 Tifinagh */ -#define TT_UCR_TIFINAGH (1L << 2) /* U+2D30-U+2D7F */ - /* Bit 99 Yijing Hexagram Symbols */ -#define TT_UCR_YIJING (1L << 3) /* U+4DC0-U+4DFF */ - /* Bit 100 Syloti Nagri */ -#define TT_UCR_SYLOTI_NAGRI (1L << 4) /* U+A800-U+A82F */ - /* Bit 101 Linear B Syllabary */ - /* Linear B Ideograms */ - /* Aegean Numbers */ -#define TT_UCR_LINEAR_B (1L << 5) /*U+10000-U+1007F*/ - /*U+10080-U+100FF*/ - /*U+10100-U+1013F*/ - /* Bit 102 Ancient Greek Numbers */ -#define TT_UCR_ANCIENT_GREEK_NUMBERS (1L << 6) /*U+10140-U+1018F*/ - /* Bit 103 Ugaritic */ -#define TT_UCR_UGARITIC (1L << 7) /*U+10380-U+1039F*/ - /* Bit 104 Old Persian */ -#define TT_UCR_OLD_PERSIAN (1L << 8) /*U+103A0-U+103DF*/ - /* Bit 105 Shavian */ -#define TT_UCR_SHAVIAN (1L << 9) /*U+10450-U+1047F*/ - /* Bit 106 Osmanya */ -#define TT_UCR_OSMANYA (1L << 10) /*U+10480-U+104AF*/ - /* Bit 107 Cypriot Syllabary */ -#define TT_UCR_CYPRIOT_SYLLABARY (1L << 11) /*U+10800-U+1083F*/ - /* Bit 108 Kharoshthi */ -#define TT_UCR_KHAROSHTHI (1L << 12) /*U+10A00-U+10A5F*/ - /* Bit 109 Tai Xuan Jing Symbols */ -#define TT_UCR_TAI_XUAN_JING (1L << 13) /*U+1D300-U+1D35F*/ - /* Bit 110 Cuneiform */ - /* Cuneiform Numbers and Punctuation */ -#define TT_UCR_CUNEIFORM (1L << 14) /*U+12000-U+123FF*/ - /*U+12400-U+1247F*/ - /* Bit 111 Counting Rod Numerals */ -#define TT_UCR_COUNTING_ROD_NUMERALS (1L << 15) /*U+1D360-U+1D37F*/ - /* Bit 112 Sundanese */ -#define TT_UCR_SUNDANESE (1L << 16) /* U+1B80-U+1BBF */ - /* Bit 113 Lepcha */ -#define TT_UCR_LEPCHA (1L << 17) /* U+1C00-U+1C4F */ - /* Bit 114 Ol Chiki */ -#define TT_UCR_OL_CHIKI (1L << 18) /* U+1C50-U+1C7F */ - /* Bit 115 Saurashtra */ -#define TT_UCR_SAURASHTRA (1L << 19) /* U+A880-U+A8DF */ - /* Bit 116 Kayah Li */ -#define TT_UCR_KAYAH_LI (1L << 20) /* U+A900-U+A92F */ - /* Bit 117 Rejang */ -#define TT_UCR_REJANG (1L << 21) /* U+A930-U+A95F */ - /* Bit 118 Cham */ -#define TT_UCR_CHAM (1L << 22) /* U+AA00-U+AA5F */ - /* Bit 119 Ancient Symbols */ -#define TT_UCR_ANCIENT_SYMBOLS (1L << 23) /*U+10190-U+101CF*/ - /* Bit 120 Phaistos Disc */ -#define TT_UCR_PHAISTOS_DISC (1L << 24) /*U+101D0-U+101FF*/ - /* Bit 121 Carian */ - /* Lycian */ - /* Lydian */ -#define TT_UCR_OLD_ANATOLIAN (1L << 25) /*U+102A0-U+102DF*/ - /*U+10280-U+1029F*/ - /*U+10920-U+1093F*/ - /* Bit 122 Domino Tiles */ - /* Mahjong Tiles */ -#define TT_UCR_GAME_TILES (1L << 26) /*U+1F030-U+1F09F*/ - /*U+1F000-U+1F02F*/ - /* Bit 123-127 Reserved for process-internal usage */ - - - /*************************************************************************/ - /* */ - /* Some compilers have a very limited length of identifiers. */ - /* */ -#if defined( __TURBOC__ ) && __TURBOC__ < 0x0410 || defined( __PACIFIC__ ) -#define HAVE_LIMIT_ON_IDENTS -#endif - - -#ifndef HAVE_LIMIT_ON_IDENTS - - - /*************************************************************************/ - /* */ - /* Here some alias #defines in order to be clearer. */ - /* */ - /* These are not always #defined to stay within the 31~character limit, */ - /* which some compilers have. */ - /* */ - /* Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern */ - /* Borland compilers (read: from BC++ 3.1 on) can increase this limit. */ - /* If you get a warning with such a compiler, use the -i40 switch. */ - /* */ -#define TT_UCR_ARABIC_PRESENTATION_FORMS_A \ - TT_UCR_ARABIC_PRESENTATIONS_A -#define TT_UCR_ARABIC_PRESENTATION_FORMS_B \ - TT_UCR_ARABIC_PRESENTATIONS_B - -#define TT_UCR_COMBINING_DIACRITICAL_MARKS \ - TT_UCR_COMBINING_DIACRITICS -#define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \ - TT_UCR_COMBINING_DIACRITICS_SYMB - - -#endif /* !HAVE_LIMIT_ON_IDENTS */ - - -FT_END_HEADER - -#endif /* __TTNAMEID_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/tttables.h b/lib/osx/include/freetype/tttables.h deleted file mode 100644 index 1568f40..0000000 --- a/lib/osx/include/freetype/tttables.h +++ /dev/null @@ -1,829 +0,0 @@ -/***************************************************************************/ -/* */ -/* tttables.h */ -/* */ -/* Basic SFNT/TrueType tables definitions and interface */ -/* (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTTABLES_H__ -#define __TTTABLES_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* <Section> */ - /* truetype_tables */ - /* */ - /* <Title> */ - /* TrueType Tables */ - /* */ - /* <Abstract> */ - /* TrueType specific table types and functions. */ - /* */ - /* <Description> */ - /* This section contains the definition of TrueType-specific tables */ - /* as well as some routines used to access and process them. */ - /* */ - /* <Order> */ - /* TT_Header */ - /* TT_HoriHeader */ - /* TT_VertHeader */ - /* TT_OS2 */ - /* TT_Postscript */ - /* TT_PCLT */ - /* TT_MaxProfile */ - /* */ - /* FT_Sfnt_Tag */ - /* FT_Get_Sfnt_Table */ - /* FT_Load_Sfnt_Table */ - /* FT_Sfnt_Table_Info */ - /* */ - /* FT_Get_CMap_Language_ID */ - /* FT_Get_CMap_Format */ - /* */ - /* FT_PARAM_TAG_UNPATENTED_HINTING */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Header */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType font header table. All */ - /* fields follow the TrueType specification. */ - /* */ - typedef struct TT_Header_ - { - FT_Fixed Table_Version; - FT_Fixed Font_Revision; - - FT_Long CheckSum_Adjust; - FT_Long Magic_Number; - - FT_UShort Flags; - FT_UShort Units_Per_EM; - - FT_Long Created [2]; - FT_Long Modified[2]; - - FT_Short xMin; - FT_Short yMin; - FT_Short xMax; - FT_Short yMax; - - FT_UShort Mac_Style; - FT_UShort Lowest_Rec_PPEM; - - FT_Short Font_Direction; - FT_Short Index_To_Loc_Format; - FT_Short Glyph_Data_Format; - - } TT_Header; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_HoriHeader */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType horizontal header, the `hhea' */ - /* table, as well as the corresponding horizontal metrics table, */ - /* i.e., the `hmtx' table. */ - /* */ - /* <Fields> */ - /* Version :: The table version. */ - /* */ - /* Ascender :: The font's ascender, i.e., the distance */ - /* from the baseline to the top-most of all */ - /* glyph points found in the font. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of the */ - /* glyphs found in the font (maybe ASCII). */ - /* */ - /* You should use the `sTypoAscender' field */ - /* of the OS/2 table instead if you want */ - /* the correct one. */ - /* */ - /* Descender :: The font's descender, i.e., the distance */ - /* from the baseline to the bottom-most of */ - /* all glyph points found in the font. It */ - /* is negative. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of the */ - /* glyphs found in the font (maybe ASCII). */ - /* */ - /* You should use the `sTypoDescender' */ - /* field of the OS/2 table instead if you */ - /* want the correct one. */ - /* */ - /* Line_Gap :: The font's line gap, i.e., the distance */ - /* to add to the ascender and descender to */ - /* get the BTB, i.e., the */ - /* baseline-to-baseline distance for the */ - /* font. */ - /* */ - /* advance_Width_Max :: This field is the maximum of all advance */ - /* widths found in the font. It can be */ - /* used to compute the maximum width of an */ - /* arbitrary string of text. */ - /* */ - /* min_Left_Side_Bearing :: The minimum left side bearing of all */ - /* glyphs within the font. */ - /* */ - /* min_Right_Side_Bearing :: The minimum right side bearing of all */ - /* glyphs within the font. */ - /* */ - /* xMax_Extent :: The maximum horizontal extent (i.e., the */ - /* `width' of a glyph's bounding box) for */ - /* all glyphs in the font. */ - /* */ - /* caret_Slope_Rise :: The rise coefficient of the cursor's */ - /* slope of the cursor (slope=rise/run). */ - /* */ - /* caret_Slope_Run :: The run coefficient of the cursor's */ - /* slope. */ - /* */ - /* Reserved :: 8~reserved bytes. */ - /* */ - /* metric_Data_Format :: Always~0. */ - /* */ - /* number_Of_HMetrics :: Number of HMetrics entries in the `hmtx' */ - /* table -- this value can be smaller than */ - /* the total number of glyphs in the font. */ - /* */ - /* long_metrics :: A pointer into the `hmtx' table. */ - /* */ - /* short_metrics :: A pointer into the `hmtx' table. */ - /* */ - /* <Note> */ - /* IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should */ - /* be identical except for the names of their fields, */ - /* which are different. */ - /* */ - /* This ensures that a single function in the `ttload' */ - /* module is able to read both the horizontal and vertical */ - /* headers. */ - /* */ - typedef struct TT_HoriHeader_ - { - FT_Fixed Version; - FT_Short Ascender; - FT_Short Descender; - FT_Short Line_Gap; - - FT_UShort advance_Width_Max; /* advance width maximum */ - - FT_Short min_Left_Side_Bearing; /* minimum left-sb */ - FT_Short min_Right_Side_Bearing; /* minimum right-sb */ - FT_Short xMax_Extent; /* xmax extents */ - FT_Short caret_Slope_Rise; - FT_Short caret_Slope_Run; - FT_Short caret_Offset; - - FT_Short Reserved[4]; - - FT_Short metric_Data_Format; - FT_UShort number_Of_HMetrics; - - /* The following fields are not defined by the TrueType specification */ - /* but they are used to connect the metrics header to the relevant */ - /* `HMTX' table. */ - - void* long_metrics; - void* short_metrics; - - } TT_HoriHeader; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_VertHeader */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType vertical header, the `vhea' */ - /* table, as well as the corresponding vertical metrics table, i.e., */ - /* the `vmtx' table. */ - /* */ - /* <Fields> */ - /* Version :: The table version. */ - /* */ - /* Ascender :: The font's ascender, i.e., the distance */ - /* from the baseline to the top-most of */ - /* all glyph points found in the font. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of */ - /* the glyphs found in the font (maybe */ - /* ASCII). */ - /* */ - /* You should use the `sTypoAscender' */ - /* field of the OS/2 table instead if you */ - /* want the correct one. */ - /* */ - /* Descender :: The font's descender, i.e., the */ - /* distance from the baseline to the */ - /* bottom-most of all glyph points found */ - /* in the font. It is negative. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of */ - /* the glyphs found in the font (maybe */ - /* ASCII). */ - /* */ - /* You should use the `sTypoDescender' */ - /* field of the OS/2 table instead if you */ - /* want the correct one. */ - /* */ - /* Line_Gap :: The font's line gap, i.e., the distance */ - /* to add to the ascender and descender to */ - /* get the BTB, i.e., the */ - /* baseline-to-baseline distance for the */ - /* font. */ - /* */ - /* advance_Height_Max :: This field is the maximum of all */ - /* advance heights found in the font. It */ - /* can be used to compute the maximum */ - /* height of an arbitrary string of text. */ - /* */ - /* min_Top_Side_Bearing :: The minimum top side bearing of all */ - /* glyphs within the font. */ - /* */ - /* min_Bottom_Side_Bearing :: The minimum bottom side bearing of all */ - /* glyphs within the font. */ - /* */ - /* yMax_Extent :: The maximum vertical extent (i.e., the */ - /* `height' of a glyph's bounding box) for */ - /* all glyphs in the font. */ - /* */ - /* caret_Slope_Rise :: The rise coefficient of the cursor's */ - /* slope of the cursor (slope=rise/run). */ - /* */ - /* caret_Slope_Run :: The run coefficient of the cursor's */ - /* slope. */ - /* */ - /* caret_Offset :: The cursor's offset for slanted fonts. */ - /* This value is `reserved' in vmtx */ - /* version 1.0. */ - /* */ - /* Reserved :: 8~reserved bytes. */ - /* */ - /* metric_Data_Format :: Always~0. */ - /* */ - /* number_Of_HMetrics :: Number of VMetrics entries in the */ - /* `vmtx' table -- this value can be */ - /* smaller than the total number of glyphs */ - /* in the font. */ - /* */ - /* long_metrics :: A pointer into the `vmtx' table. */ - /* */ - /* short_metrics :: A pointer into the `vmtx' table. */ - /* */ - /* <Note> */ - /* IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should */ - /* be identical except for the names of their fields, */ - /* which are different. */ - /* */ - /* This ensures that a single function in the `ttload' */ - /* module is able to read both the horizontal and vertical */ - /* headers. */ - /* */ - typedef struct TT_VertHeader_ - { - FT_Fixed Version; - FT_Short Ascender; - FT_Short Descender; - FT_Short Line_Gap; - - FT_UShort advance_Height_Max; /* advance height maximum */ - - FT_Short min_Top_Side_Bearing; /* minimum left-sb or top-sb */ - FT_Short min_Bottom_Side_Bearing; /* minimum right-sb or bottom-sb */ - FT_Short yMax_Extent; /* xmax or ymax extents */ - FT_Short caret_Slope_Rise; - FT_Short caret_Slope_Run; - FT_Short caret_Offset; - - FT_Short Reserved[4]; - - FT_Short metric_Data_Format; - FT_UShort number_Of_VMetrics; - - /* The following fields are not defined by the TrueType specification */ - /* but they're used to connect the metrics header to the relevant */ - /* `HMTX' or `VMTX' table. */ - - void* long_metrics; - void* short_metrics; - - } TT_VertHeader; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_OS2 */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType OS/2 table. All fields */ - /* comply to the OpenType specification. */ - /* */ - /* Note that we now support old Mac fonts that do not include an OS/2 */ - /* table. In this case, the `version' field is always set to 0xFFFF. */ - /* */ - typedef struct TT_OS2_ - { - FT_UShort version; /* 0x0001 - more or 0xFFFF */ - FT_Short xAvgCharWidth; - FT_UShort usWeightClass; - FT_UShort usWidthClass; - FT_UShort fsType; - FT_Short ySubscriptXSize; - FT_Short ySubscriptYSize; - FT_Short ySubscriptXOffset; - FT_Short ySubscriptYOffset; - FT_Short ySuperscriptXSize; - FT_Short ySuperscriptYSize; - FT_Short ySuperscriptXOffset; - FT_Short ySuperscriptYOffset; - FT_Short yStrikeoutSize; - FT_Short yStrikeoutPosition; - FT_Short sFamilyClass; - - FT_Byte panose[10]; - - FT_ULong ulUnicodeRange1; /* Bits 0-31 */ - FT_ULong ulUnicodeRange2; /* Bits 32-63 */ - FT_ULong ulUnicodeRange3; /* Bits 64-95 */ - FT_ULong ulUnicodeRange4; /* Bits 96-127 */ - - FT_Char achVendID[4]; - - FT_UShort fsSelection; - FT_UShort usFirstCharIndex; - FT_UShort usLastCharIndex; - FT_Short sTypoAscender; - FT_Short sTypoDescender; - FT_Short sTypoLineGap; - FT_UShort usWinAscent; - FT_UShort usWinDescent; - - /* only version 1 and higher: */ - - FT_ULong ulCodePageRange1; /* Bits 0-31 */ - FT_ULong ulCodePageRange2; /* Bits 32-63 */ - - /* only version 2 and higher: */ - - FT_Short sxHeight; - FT_Short sCapHeight; - FT_UShort usDefaultChar; - FT_UShort usBreakChar; - FT_UShort usMaxContext; - - /* only version 5 and higher: */ - - FT_UShort usLowerOpticalPointSize; /* in twips (1/20th points) */ - FT_UShort usUpperOpticalPointSize; /* in twips (1/20th points) */ - - } TT_OS2; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Postscript */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType PostScript table. All fields */ - /* comply to the TrueType specification. This structure does not */ - /* reference the PostScript glyph names, which can be nevertheless */ - /* accessed with the `ttpost' module. */ - /* */ - typedef struct TT_Postscript_ - { - FT_Fixed FormatType; - FT_Fixed italicAngle; - FT_Short underlinePosition; - FT_Short underlineThickness; - FT_ULong isFixedPitch; - FT_ULong minMemType42; - FT_ULong maxMemType42; - FT_ULong minMemType1; - FT_ULong maxMemType1; - - /* Glyph names follow in the file, but we don't */ - /* load them by default. See the ttpost.c file. */ - - } TT_Postscript; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_PCLT */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType PCLT table. All fields */ - /* comply to the TrueType specification. */ - /* */ - typedef struct TT_PCLT_ - { - FT_Fixed Version; - FT_ULong FontNumber; - FT_UShort Pitch; - FT_UShort xHeight; - FT_UShort Style; - FT_UShort TypeFamily; - FT_UShort CapHeight; - FT_UShort SymbolSet; - FT_Char TypeFace[16]; - FT_Char CharacterComplement[8]; - FT_Char FileName[6]; - FT_Char StrokeWeight; - FT_Char WidthType; - FT_Byte SerifStyle; - FT_Byte Reserved; - - } TT_PCLT; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_MaxProfile */ - /* */ - /* <Description> */ - /* The maximum profile is a table containing many max values, which */ - /* can be used to pre-allocate arrays. This ensures that no memory */ - /* allocation occurs during a glyph load. */ - /* */ - /* <Fields> */ - /* version :: The version number. */ - /* */ - /* numGlyphs :: The number of glyphs in this TrueType */ - /* font. */ - /* */ - /* maxPoints :: The maximum number of points in a */ - /* non-composite TrueType glyph. See also */ - /* the structure element */ - /* `maxCompositePoints'. */ - /* */ - /* maxContours :: The maximum number of contours in a */ - /* non-composite TrueType glyph. See also */ - /* the structure element */ - /* `maxCompositeContours'. */ - /* */ - /* maxCompositePoints :: The maximum number of points in a */ - /* composite TrueType glyph. See also the */ - /* structure element `maxPoints'. */ - /* */ - /* maxCompositeContours :: The maximum number of contours in a */ - /* composite TrueType glyph. See also the */ - /* structure element `maxContours'. */ - /* */ - /* maxZones :: The maximum number of zones used for */ - /* glyph hinting. */ - /* */ - /* maxTwilightPoints :: The maximum number of points in the */ - /* twilight zone used for glyph hinting. */ - /* */ - /* maxStorage :: The maximum number of elements in the */ - /* storage area used for glyph hinting. */ - /* */ - /* maxFunctionDefs :: The maximum number of function */ - /* definitions in the TrueType bytecode for */ - /* this font. */ - /* */ - /* maxInstructionDefs :: The maximum number of instruction */ - /* definitions in the TrueType bytecode for */ - /* this font. */ - /* */ - /* maxStackElements :: The maximum number of stack elements used */ - /* during bytecode interpretation. */ - /* */ - /* maxSizeOfInstructions :: The maximum number of TrueType opcodes */ - /* used for glyph hinting. */ - /* */ - /* maxComponentElements :: The maximum number of simple (i.e., non- */ - /* composite) glyphs in a composite glyph. */ - /* */ - /* maxComponentDepth :: The maximum nesting depth of composite */ - /* glyphs. */ - /* */ - /* <Note> */ - /* This structure is only used during font loading. */ - /* */ - typedef struct TT_MaxProfile_ - { - FT_Fixed version; - FT_UShort numGlyphs; - FT_UShort maxPoints; - FT_UShort maxContours; - FT_UShort maxCompositePoints; - FT_UShort maxCompositeContours; - FT_UShort maxZones; - FT_UShort maxTwilightPoints; - FT_UShort maxStorage; - FT_UShort maxFunctionDefs; - FT_UShort maxInstructionDefs; - FT_UShort maxStackElements; - FT_UShort maxSizeOfInstructions; - FT_UShort maxComponentElements; - FT_UShort maxComponentDepth; - - } TT_MaxProfile; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Sfnt_Tag */ - /* */ - /* <Description> */ - /* An enumeration used to specify the index of an SFNT table. */ - /* Used in the @FT_Get_Sfnt_Table API function. */ - /* */ - /* <Values> */ - /* FT_SFNT_HEAD :: To access the font's @TT_Header structure. */ - /* */ - /* FT_SFNT_MAXP :: To access the font's @TT_MaxProfile structure. */ - /* */ - /* FT_SFNT_OS2 :: To access the font's @TT_OS2 structure. */ - /* */ - /* FT_SFNT_HHEA :: To access the font's @TT_HoriHeader structure. */ - /* */ - /* FT_SFNT_VHEA :: To access the font's @TT_VertHeader struture. */ - /* */ - /* FT_SFNT_POST :: To access the font's @TT_Postscript structure. */ - /* */ - /* FT_SFNT_PCLT :: To access the font's @TT_PCLT structure. */ - /* */ - typedef enum FT_Sfnt_Tag_ - { - FT_SFNT_HEAD, - FT_SFNT_MAXP, - FT_SFNT_OS2, - FT_SFNT_HHEA, - FT_SFNT_VHEA, - FT_SFNT_POST, - FT_SFNT_PCLT, - - FT_SFNT_MAX - - } FT_Sfnt_Tag; - - /* these constants are deprecated; use the corresponding `FT_Sfnt_Tag' */ - /* values instead */ -#define ft_sfnt_head FT_SFNT_HEAD -#define ft_sfnt_maxp FT_SFNT_MAXP -#define ft_sfnt_os2 FT_SFNT_OS2 -#define ft_sfnt_hhea FT_SFNT_HHEA -#define ft_sfnt_vhea FT_SFNT_VHEA -#define ft_sfnt_post FT_SFNT_POST -#define ft_sfnt_pclt FT_SFNT_PCLT - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Sfnt_Table */ - /* */ - /* <Description> */ - /* Return a pointer to a given SFNT table within a face. */ - /* */ - /* <Input> */ - /* face :: A handle to the source. */ - /* */ - /* tag :: The index of the SFNT table. */ - /* */ - /* <Return> */ - /* A type-less pointer to the table. This will be~0 in case of */ - /* error, or if the corresponding table was not found *OR* loaded */ - /* from the file. */ - /* */ - /* Use a typecast according to `tag' to access the structure */ - /* elements. */ - /* */ - /* <Note> */ - /* The table is owned by the face object and disappears with it. */ - /* */ - /* This function is only useful to access SFNT tables that are loaded */ - /* by the sfnt, truetype, and opentype drivers. See @FT_Sfnt_Tag for */ - /* a list. */ - /* */ - /* Here an example how to access the `vhea' table: */ - /* */ - /* { */ - /* TT_VertHeader* vert_header; */ - /* */ - /* */ - /* vert_header = */ - /* (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA ); */ - /* } */ - /* */ - FT_EXPORT( void* ) - FT_Get_Sfnt_Table( FT_Face face, - FT_Sfnt_Tag tag ); - - - /************************************************************************** - * - * @function: - * FT_Load_Sfnt_Table - * - * @description: - * Load any font table into client memory. - * - * @input: - * face :: - * A handle to the source face. - * - * tag :: - * The four-byte tag of the table to load. Use the value~0 if you want - * to access the whole font file. Otherwise, you can use one of the - * definitions found in the @FT_TRUETYPE_TAGS_H file, or forge a new - * one with @FT_MAKE_TAG. - * - * offset :: - * The starting offset in the table (or file if tag == 0). - * - * @output: - * buffer :: - * The target buffer address. The client must ensure that the memory - * array is big enough to hold the data. - * - * @inout: - * length :: - * If the `length' parameter is NULL, then try to load the whole table. - * Return an error code if it fails. - * - * Else, if `*length' is~0, exit immediately while returning the - * table's (or file) full size in it. - * - * Else the number of bytes to read from the table or file, from the - * starting offset. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If you need to determine the table's length you should first call this - * function with `*length' set to~0, as in the following example: - * - * { - * FT_ULong length = 0; - * - * - * error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length ); - * if ( error ) { ... table does not exist ... } - * - * buffer = malloc( length ); - * if ( buffer == NULL ) { ... not enough memory ... } - * - * error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &length ); - * if ( error ) { ... could not load table ... } - * } - * - * Note that structures like @TT_Header or @TT_OS2 can't be used with - * this function; they are limited to @FT_Get_Sfnt_Table. Reason is that - * those structures depend on the processor architecture, with varying - * size (e.g. 32bit vs. 64bit) or order (big endian vs. little endian). - * - */ - FT_EXPORT( FT_Error ) - FT_Load_Sfnt_Table( FT_Face face, - FT_ULong tag, - FT_Long offset, - FT_Byte* buffer, - FT_ULong* length ); - - - /************************************************************************** - * - * @function: - * FT_Sfnt_Table_Info - * - * @description: - * Return information on an SFNT table. - * - * @input: - * face :: - * A handle to the source face. - * - * table_index :: - * The index of an SFNT table. The function returns - * FT_Err_Table_Missing for an invalid value. - * - * @inout: - * tag :: - * The name tag of the SFNT table. If the value is NULL, `table_index' - * is ignored, and `length' returns the number of SFNT tables in the - * font. - * - * @output: - * length :: - * The length of the SFNT table (or the number of SFNT tables, depending - * on `tag'). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * While parsing fonts, FreeType handles SFNT tables with length zero as - * missing. - * - */ - FT_EXPORT( FT_Error ) - FT_Sfnt_Table_Info( FT_Face face, - FT_UInt table_index, - FT_ULong *tag, - FT_ULong *length ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_CMap_Language_ID */ - /* */ - /* <Description> */ - /* Return TrueType/sfnt specific cmap language ID. Definitions of */ - /* language ID values are in `ttnameid.h'. */ - /* */ - /* <Input> */ - /* charmap :: */ - /* The target charmap. */ - /* */ - /* <Return> */ - /* The language ID of `charmap'. If `charmap' doesn't belong to a */ - /* TrueType/sfnt face, just return~0 as the default value. */ - /* */ - /* For a format~14 cmap (to access Unicode IVS), the return value is */ - /* 0xFFFFFFFF. */ - /* */ - FT_EXPORT( FT_ULong ) - FT_Get_CMap_Language_ID( FT_CharMap charmap ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_CMap_Format */ - /* */ - /* <Description> */ - /* Return TrueType/sfnt specific cmap format. */ - /* */ - /* <Input> */ - /* charmap :: */ - /* The target charmap. */ - /* */ - /* <Return> */ - /* The format of `charmap'. If `charmap' doesn't belong to a */ - /* TrueType/sfnt face, return -1. */ - /* */ - FT_EXPORT( FT_Long ) - FT_Get_CMap_Format( FT_CharMap charmap ); - - /* */ - - -FT_END_HEADER - -#endif /* __TTTABLES_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/tttags.h b/lib/osx/include/freetype/tttags.h deleted file mode 100644 index 3836c7b..0000000 --- a/lib/osx/include/freetype/tttags.h +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************/ -/* */ -/* tttags.h */ -/* */ -/* Tags for TrueType and OpenType tables (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTAGS_H__ -#define __TTAGS_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - -#define TTAG_avar FT_MAKE_TAG( 'a', 'v', 'a', 'r' ) -#define TTAG_BASE FT_MAKE_TAG( 'B', 'A', 'S', 'E' ) -#define TTAG_bdat FT_MAKE_TAG( 'b', 'd', 'a', 't' ) -#define TTAG_BDF FT_MAKE_TAG( 'B', 'D', 'F', ' ' ) -#define TTAG_bhed FT_MAKE_TAG( 'b', 'h', 'e', 'd' ) -#define TTAG_bloc FT_MAKE_TAG( 'b', 'l', 'o', 'c' ) -#define TTAG_bsln FT_MAKE_TAG( 'b', 's', 'l', 'n' ) -#define TTAG_CBDT FT_MAKE_TAG( 'C', 'B', 'D', 'T' ) -#define TTAG_CBLC FT_MAKE_TAG( 'C', 'B', 'L', 'C' ) -#define TTAG_CFF FT_MAKE_TAG( 'C', 'F', 'F', ' ' ) -#define TTAG_CID FT_MAKE_TAG( 'C', 'I', 'D', ' ' ) -#define TTAG_cmap FT_MAKE_TAG( 'c', 'm', 'a', 'p' ) -#define TTAG_cvar FT_MAKE_TAG( 'c', 'v', 'a', 'r' ) -#define TTAG_cvt FT_MAKE_TAG( 'c', 'v', 't', ' ' ) -#define TTAG_DSIG FT_MAKE_TAG( 'D', 'S', 'I', 'G' ) -#define TTAG_EBDT FT_MAKE_TAG( 'E', 'B', 'D', 'T' ) -#define TTAG_EBLC FT_MAKE_TAG( 'E', 'B', 'L', 'C' ) -#define TTAG_EBSC FT_MAKE_TAG( 'E', 'B', 'S', 'C' ) -#define TTAG_feat FT_MAKE_TAG( 'f', 'e', 'a', 't' ) -#define TTAG_FOND FT_MAKE_TAG( 'F', 'O', 'N', 'D' ) -#define TTAG_fpgm FT_MAKE_TAG( 'f', 'p', 'g', 'm' ) -#define TTAG_fvar FT_MAKE_TAG( 'f', 'v', 'a', 'r' ) -#define TTAG_gasp FT_MAKE_TAG( 'g', 'a', 's', 'p' ) -#define TTAG_GDEF FT_MAKE_TAG( 'G', 'D', 'E', 'F' ) -#define TTAG_glyf FT_MAKE_TAG( 'g', 'l', 'y', 'f' ) -#define TTAG_GPOS FT_MAKE_TAG( 'G', 'P', 'O', 'S' ) -#define TTAG_GSUB FT_MAKE_TAG( 'G', 'S', 'U', 'B' ) -#define TTAG_gvar FT_MAKE_TAG( 'g', 'v', 'a', 'r' ) -#define TTAG_hdmx FT_MAKE_TAG( 'h', 'd', 'm', 'x' ) -#define TTAG_head FT_MAKE_TAG( 'h', 'e', 'a', 'd' ) -#define TTAG_hhea FT_MAKE_TAG( 'h', 'h', 'e', 'a' ) -#define TTAG_hmtx FT_MAKE_TAG( 'h', 'm', 't', 'x' ) -#define TTAG_JSTF FT_MAKE_TAG( 'J', 'S', 'T', 'F' ) -#define TTAG_just FT_MAKE_TAG( 'j', 'u', 's', 't' ) -#define TTAG_kern FT_MAKE_TAG( 'k', 'e', 'r', 'n' ) -#define TTAG_lcar FT_MAKE_TAG( 'l', 'c', 'a', 'r' ) -#define TTAG_loca FT_MAKE_TAG( 'l', 'o', 'c', 'a' ) -#define TTAG_LTSH FT_MAKE_TAG( 'L', 'T', 'S', 'H' ) -#define TTAG_LWFN FT_MAKE_TAG( 'L', 'W', 'F', 'N' ) -#define TTAG_MATH FT_MAKE_TAG( 'M', 'A', 'T', 'H' ) -#define TTAG_maxp FT_MAKE_TAG( 'm', 'a', 'x', 'p' ) -#define TTAG_META FT_MAKE_TAG( 'M', 'E', 'T', 'A' ) -#define TTAG_MMFX FT_MAKE_TAG( 'M', 'M', 'F', 'X' ) -#define TTAG_MMSD FT_MAKE_TAG( 'M', 'M', 'S', 'D' ) -#define TTAG_mort FT_MAKE_TAG( 'm', 'o', 'r', 't' ) -#define TTAG_morx FT_MAKE_TAG( 'm', 'o', 'r', 'x' ) -#define TTAG_name FT_MAKE_TAG( 'n', 'a', 'm', 'e' ) -#define TTAG_opbd FT_MAKE_TAG( 'o', 'p', 'b', 'd' ) -#define TTAG_OS2 FT_MAKE_TAG( 'O', 'S', '/', '2' ) -#define TTAG_OTTO FT_MAKE_TAG( 'O', 'T', 'T', 'O' ) -#define TTAG_PCLT FT_MAKE_TAG( 'P', 'C', 'L', 'T' ) -#define TTAG_POST FT_MAKE_TAG( 'P', 'O', 'S', 'T' ) -#define TTAG_post FT_MAKE_TAG( 'p', 'o', 's', 't' ) -#define TTAG_prep FT_MAKE_TAG( 'p', 'r', 'e', 'p' ) -#define TTAG_prop FT_MAKE_TAG( 'p', 'r', 'o', 'p' ) -#define TTAG_sbix FT_MAKE_TAG( 's', 'b', 'i', 'x' ) -#define TTAG_sfnt FT_MAKE_TAG( 's', 'f', 'n', 't' ) -#define TTAG_SING FT_MAKE_TAG( 'S', 'I', 'N', 'G' ) -#define TTAG_trak FT_MAKE_TAG( 't', 'r', 'a', 'k' ) -#define TTAG_true FT_MAKE_TAG( 't', 'r', 'u', 'e' ) -#define TTAG_ttc FT_MAKE_TAG( 't', 't', 'c', ' ' ) -#define TTAG_ttcf FT_MAKE_TAG( 't', 't', 'c', 'f' ) -#define TTAG_TYP1 FT_MAKE_TAG( 'T', 'Y', 'P', '1' ) -#define TTAG_typ1 FT_MAKE_TAG( 't', 'y', 'p', '1' ) -#define TTAG_VDMX FT_MAKE_TAG( 'V', 'D', 'M', 'X' ) -#define TTAG_vhea FT_MAKE_TAG( 'v', 'h', 'e', 'a' ) -#define TTAG_vmtx FT_MAKE_TAG( 'v', 'm', 't', 'x' ) -#define TTAG_wOFF FT_MAKE_TAG( 'w', 'O', 'F', 'F' ) - - -FT_END_HEADER - -#endif /* __TTAGS_H__ */ - - -/* END */ diff --git a/lib/osx/include/freetype/ttunpat.h b/lib/osx/include/freetype/ttunpat.h deleted file mode 100644 index 8ea5568..0000000 --- a/lib/osx/include/freetype/ttunpat.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************/ -/* */ -/* ttunpat.h */ -/* */ -/* Definitions for the unpatented TrueType hinting system */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Written by Graham Asher <graham.asher@btinternet.com> */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTUNPAT_H__ -#define __TTUNPAT_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_UNPATENTED_HINTING - * - * @description: - * A constant used as the tag of an @FT_Parameter structure to indicate - * that unpatented methods only should be used by the TrueType bytecode - * interpreter for a typeface opened by @FT_Open_Face. - * - */ -#define FT_PARAM_TAG_UNPATENTED_HINTING FT_MAKE_TAG( 'u', 'n', 'p', 'a' ) - - /* */ - - -FT_END_HEADER - - -#endif /* __TTUNPAT_H__ */ - - -/* END */ diff --git a/lib/osx/include/ft2build.h b/lib/osx/include/ft2build.h deleted file mode 100644 index 419b80a..0000000 --- a/lib/osx/include/ft2build.h +++ /dev/null @@ -1,42 +0,0 @@ -/***************************************************************************/ -/* */ -/* ft2build.h */ -/* */ -/* FreeType 2 build and setup macros. */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This is the `entry point' for FreeType header file inclusions. It is */ - /* the only header file which should be included directly; all other */ - /* FreeType header files should be accessed with macro names (after */ - /* including `ft2build.h'). */ - /* */ - /* A typical example is */ - /* */ - /* #include <ft2build.h> */ - /* #include FT_FREETYPE_H */ - /* */ - /*************************************************************************/ - - -#ifndef __FT2BUILD_H__ -#define __FT2BUILD_H__ - -#include <freetype/config/ftheader.h> - -#endif /* __FT2BUILD_H__ */ - - -/* END */ diff --git a/lib/osx/include/ogg/config_types.h b/lib/osx/include/ogg/config_types.h deleted file mode 100644 index 4b00047..0000000 --- a/lib/osx/include/ogg/config_types.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __CONFIG_TYPES_H__ -#define __CONFIG_TYPES_H__ - -/* these are filled in by configure */ -#define INCLUDE_INTTYPES_H 1 -#define INCLUDE_STDINT_H 1 -#define INCLUDE_SYS_TYPES_H 1 - -#if INCLUDE_INTTYPES_H -# include <inttypes.h> -#endif -#if INCLUDE_STDINT_H -# include <stdint.h> -#endif -#if INCLUDE_SYS_TYPES_H -# include <sys/types.h> -#endif - -typedef int16_t ogg_int16_t; -typedef uint16_t ogg_uint16_t; -typedef int32_t ogg_int32_t; -typedef uint32_t ogg_uint32_t; -typedef int64_t ogg_int64_t; - -#endif diff --git a/lib/osx/include/ogg/ogg.h b/lib/osx/include/ogg/ogg.h deleted file mode 100644 index cea4ebe..0000000 --- a/lib/osx/include/ogg/ogg.h +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel libogg include - last mod: $Id: ogg.h 18044 2011-08-01 17:55:20Z gmaxwell $ - - ********************************************************************/ -#ifndef _OGG_H -#define _OGG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <stddef.h> -#include <ogg/os_types.h> - -typedef struct { - void *iov_base; - size_t iov_len; -} ogg_iovec_t; - -typedef struct { - long endbyte; - int endbit; - - unsigned char *buffer; - unsigned char *ptr; - long storage; -} oggpack_buffer; - -/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ - -typedef struct { - unsigned char *header; - long header_len; - unsigned char *body; - long body_len; -} ogg_page; - -/* ogg_stream_state contains the current encode/decode state of a logical - Ogg bitstream **********************************************************/ - -typedef struct { - unsigned char *body_data; /* bytes from packet bodies */ - long body_storage; /* storage elements allocated */ - long body_fill; /* elements stored; fill mark */ - long body_returned; /* elements of fill returned */ - - - int *lacing_vals; /* The values that will go to the segment table */ - ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact - this way, but it is simple coupled to the - lacing fifo */ - long lacing_storage; - long lacing_fill; - long lacing_packet; - long lacing_returned; - - unsigned char header[282]; /* working space for header encode */ - int header_fill; - - int e_o_s; /* set when we have buffered the last packet in the - logical bitstream */ - int b_o_s; /* set after we've written the initial page - of a logical bitstream */ - long serialno; - long pageno; - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a separate abstraction - layer) also knows about the gap */ - ogg_int64_t granulepos; - -} ogg_stream_state; - -/* ogg_packet is used to encapsulate the data and metadata belonging - to a single raw Ogg/Vorbis packet *************************************/ - -typedef struct { - unsigned char *packet; - long bytes; - long b_o_s; - long e_o_s; - - ogg_int64_t granulepos; - - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a separate abstraction - layer) also knows about the gap */ -} ogg_packet; - -typedef struct { - unsigned char *data; - int storage; - int fill; - int returned; - - int unsynced; - int headerbytes; - int bodybytes; -} ogg_sync_state; - -/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ - -extern void oggpack_writeinit(oggpack_buffer *b); -extern int oggpack_writecheck(oggpack_buffer *b); -extern void oggpack_writetrunc(oggpack_buffer *b,long bits); -extern void oggpack_writealign(oggpack_buffer *b); -extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpack_reset(oggpack_buffer *b); -extern void oggpack_writeclear(oggpack_buffer *b); -extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpack_look(oggpack_buffer *b,int bits); -extern long oggpack_look1(oggpack_buffer *b); -extern void oggpack_adv(oggpack_buffer *b,int bits); -extern void oggpack_adv1(oggpack_buffer *b); -extern long oggpack_read(oggpack_buffer *b,int bits); -extern long oggpack_read1(oggpack_buffer *b); -extern long oggpack_bytes(oggpack_buffer *b); -extern long oggpack_bits(oggpack_buffer *b); -extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); - -extern void oggpackB_writeinit(oggpack_buffer *b); -extern int oggpackB_writecheck(oggpack_buffer *b); -extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); -extern void oggpackB_writealign(oggpack_buffer *b); -extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpackB_reset(oggpack_buffer *b); -extern void oggpackB_writeclear(oggpack_buffer *b); -extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpackB_look(oggpack_buffer *b,int bits); -extern long oggpackB_look1(oggpack_buffer *b); -extern void oggpackB_adv(oggpack_buffer *b,int bits); -extern void oggpackB_adv1(oggpack_buffer *b); -extern long oggpackB_read(oggpack_buffer *b,int bits); -extern long oggpackB_read1(oggpack_buffer *b); -extern long oggpackB_bytes(oggpack_buffer *b); -extern long oggpackB_bits(oggpack_buffer *b); -extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); - -/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ - -extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); -extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, - int count, long e_o_s, ogg_int64_t granulepos); -extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); -extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); - -/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ - -extern int ogg_sync_init(ogg_sync_state *oy); -extern int ogg_sync_clear(ogg_sync_state *oy); -extern int ogg_sync_reset(ogg_sync_state *oy); -extern int ogg_sync_destroy(ogg_sync_state *oy); -extern int ogg_sync_check(ogg_sync_state *oy); - -extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); -extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); -extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); -extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); -extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); -extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); - -/* Ogg BITSTREAM PRIMITIVES: general ***************************/ - -extern int ogg_stream_init(ogg_stream_state *os,int serialno); -extern int ogg_stream_clear(ogg_stream_state *os); -extern int ogg_stream_reset(ogg_stream_state *os); -extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); -extern int ogg_stream_destroy(ogg_stream_state *os); -extern int ogg_stream_check(ogg_stream_state *os); -extern int ogg_stream_eos(ogg_stream_state *os); - -extern void ogg_page_checksum_set(ogg_page *og); - -extern int ogg_page_version(const ogg_page *og); -extern int ogg_page_continued(const ogg_page *og); -extern int ogg_page_bos(const ogg_page *og); -extern int ogg_page_eos(const ogg_page *og); -extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); -extern int ogg_page_serialno(const ogg_page *og); -extern long ogg_page_pageno(const ogg_page *og); -extern int ogg_page_packets(const ogg_page *og); - -extern void ogg_packet_clear(ogg_packet *op); - - -#ifdef __cplusplus -} -#endif - -#endif /* _OGG_H */ diff --git a/lib/osx/include/ogg/os_types.h b/lib/osx/include/ogg/os_types.h deleted file mode 100644 index 8bf8210..0000000 --- a/lib/osx/include/ogg/os_types.h +++ /dev/null @@ -1,147 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: #ifdef jail to whip a few platforms into the UNIX ideal. - last mod: $Id: os_types.h 19098 2014-02-26 19:06:45Z giles $ - - ********************************************************************/ -#ifndef _OS_TYPES_H -#define _OS_TYPES_H - -/* make it easy on the folks that want to compile the libs with a - different malloc than stdlib */ -#define _ogg_malloc malloc -#define _ogg_calloc calloc -#define _ogg_realloc realloc -#define _ogg_free free - -#if defined(_WIN32) - -# if defined(__CYGWIN__) -# include <stdint.h> - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - typedef uint64_t ogg_uint64_t; -# elif defined(__MINGW32__) -# include <sys/types.h> - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - typedef unsigned long long ogg_uint64_t; -# elif defined(__MWERKS__) - typedef long long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; -# else - /* MSVC/Borland */ - typedef __int64 ogg_int64_t; - typedef __int32 ogg_int32_t; - typedef unsigned __int32 ogg_uint32_t; - typedef __int16 ogg_int16_t; - typedef unsigned __int16 ogg_uint16_t; -# endif - -#elif defined(__MACOS__) - -# include <sys/types.h> - typedef SInt16 ogg_int16_t; - typedef UInt16 ogg_uint16_t; - typedef SInt32 ogg_int32_t; - typedef UInt32 ogg_uint32_t; - typedef SInt64 ogg_int64_t; - -#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ - -# include <inttypes.h> - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined(__HAIKU__) - - /* Haiku */ -# include <sys/types.h> - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(__BEOS__) - - /* Be */ -# include <inttypes.h> - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined (__EMX__) - - /* OS/2 GCC */ - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined (DJGPP) - - /* DJGPP */ - typedef short ogg_int16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(R5900) - - /* PS2 EE */ - typedef long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned ogg_uint32_t; - typedef short ogg_int16_t; - -#elif defined(__SYMBIAN32__) - - /* Symbian GCC */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#elif defined(__TMS320C6X__) - - /* TI C64x compiler */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#else - -# include <ogg/config_types.h> - -#endif - -#endif /* _OS_TYPES_H */ diff --git a/lib/osx/include/png.h b/lib/osx/include/png.h deleted file mode 100644 index f2013cf..0000000 --- a/lib/osx/include/png.h +++ /dev/null @@ -1,3265 +0,0 @@ - -/* png.h - header file for PNG reference library - * - * libpng version 1.6.18, July 23, 2015 - * - * Copyright (c) 1998-2015 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) - * - * This code is released under the libpng license (See LICENSE, below) - * - * Authors and maintainers: - * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat - * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.6.18, July 23, 2015: Glenn - * See also "Contributing Authors", below. - * - * Note about libpng version numbers: - * - * Due to various miscommunications, unforeseen code incompatibilities - * and occasional factors outside the authors' control, version numbering - * on the library has not always been consistent and straightforward. - * The following table summarizes matters since version 0.89c, which was - * the first widely used release: - * - * source png.h png.h shared-lib - * version string int version - * ------- ------ ----- ---------- - * 0.89c "1.0 beta 3" 0.89 89 1.0.89 - * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] - * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] - * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96] - * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97] - * 0.97c 0.97 97 2.0.97 - * 0.98 0.98 98 2.0.98 - * 0.99 0.99 98 2.0.99 - * 0.99a-m 0.99 99 2.0.99 - * 1.00 1.00 100 2.1.0 [100 should be 10000] - * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000] - * 1.0.1 png.h string is 10001 2.1.0 - * 1.0.1a-e identical to the 10002 from here on, the shared library - * 1.0.2 source version) 10002 is 2.V where V is the source code - * 1.0.2a-b 10003 version, except as noted. - * 1.0.3 10003 - * 1.0.3a-d 10004 - * 1.0.4 10004 - * 1.0.4a-f 10005 - * 1.0.5 (+ 2 patches) 10005 - * 1.0.5a-d 10006 - * 1.0.5e-r 10100 (not source compatible) - * 1.0.5s-v 10006 (not binary compatible) - * 1.0.6 (+ 3 patches) 10006 (still binary incompatible) - * 1.0.6d-f 10007 (still binary incompatible) - * 1.0.6g 10007 - * 1.0.6h 10007 10.6h (testing xy.z so-numbering) - * 1.0.6i 10007 10.6i - * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0) - * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible) - * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible) - * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) - * 1.0.7 1 10007 (still compatible) - * 1.0.8beta1-4 1 10008 2.1.0.8beta1-4 - * 1.0.8rc1 1 10008 2.1.0.8rc1 - * 1.0.8 1 10008 2.1.0.8 - * 1.0.9beta1-6 1 10009 2.1.0.9beta1-6 - * 1.0.9rc1 1 10009 2.1.0.9rc1 - * 1.0.9beta7-10 1 10009 2.1.0.9beta7-10 - * 1.0.9rc2 1 10009 2.1.0.9rc2 - * 1.0.9 1 10009 2.1.0.9 - * 1.0.10beta1 1 10010 2.1.0.10beta1 - * 1.0.10rc1 1 10010 2.1.0.10rc1 - * 1.0.10 1 10010 2.1.0.10 - * 1.0.11beta1-3 1 10011 2.1.0.11beta1-3 - * 1.0.11rc1 1 10011 2.1.0.11rc1 - * 1.0.11 1 10011 2.1.0.11 - * 1.0.12beta1-2 2 10012 2.1.0.12beta1-2 - * 1.0.12rc1 2 10012 2.1.0.12rc1 - * 1.0.12 2 10012 2.1.0.12 - * 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned) - * 1.2.0beta1-2 2 10200 2.1.2.0beta1-2 - * 1.2.0beta3-5 3 10200 3.1.2.0beta3-5 - * 1.2.0rc1 3 10200 3.1.2.0rc1 - * 1.2.0 3 10200 3.1.2.0 - * 1.2.1beta1-4 3 10201 3.1.2.1beta1-4 - * 1.2.1rc1-2 3 10201 3.1.2.1rc1-2 - * 1.2.1 3 10201 3.1.2.1 - * 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6 - * 1.0.13beta1 10 10013 10.so.0.1.0.13beta1 - * 1.0.13rc1 10 10013 10.so.0.1.0.13rc1 - * 1.2.2rc1 12 10202 12.so.0.1.2.2rc1 - * 1.0.13 10 10013 10.so.0.1.0.13 - * 1.2.2 12 10202 12.so.0.1.2.2 - * 1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6 - * 1.2.3 12 10203 12.so.0.1.2.3 - * 1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3 - * 1.0.14rc1 13 10014 10.so.0.1.0.14rc1 - * 1.2.4rc1 13 10204 12.so.0.1.2.4rc1 - * 1.0.14 10 10014 10.so.0.1.0.14 - * 1.2.4 13 10204 12.so.0.1.2.4 - * 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2 - * 1.0.15rc1-3 10 10015 10.so.0.1.0.15rc1-3 - * 1.2.5rc1-3 13 10205 12.so.0.1.2.5rc1-3 - * 1.0.15 10 10015 10.so.0.1.0.15 - * 1.2.5 13 10205 12.so.0.1.2.5 - * 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4 - * 1.0.16 10 10016 10.so.0.1.0.16 - * 1.2.6 13 10206 12.so.0.1.2.6 - * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2 - * 1.0.17rc1 10 10017 12.so.0.1.0.17rc1 - * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1 - * 1.0.17 10 10017 12.so.0.1.0.17 - * 1.2.7 13 10207 12.so.0.1.2.7 - * 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5 - * 1.0.18rc1-5 10 10018 12.so.0.1.0.18rc1-5 - * 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5 - * 1.0.18 10 10018 12.so.0.1.0.18 - * 1.2.8 13 10208 12.so.0.1.2.8 - * 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3 - * 1.2.9beta4-11 13 10209 12.so.0.9[.0] - * 1.2.9rc1 13 10209 12.so.0.9[.0] - * 1.2.9 13 10209 12.so.0.9[.0] - * 1.2.10beta1-7 13 10210 12.so.0.10[.0] - * 1.2.10rc1-2 13 10210 12.so.0.10[.0] - * 1.2.10 13 10210 12.so.0.10[.0] - * 1.4.0beta1-5 14 10400 14.so.0.0[.0] - * 1.2.11beta1-4 13 10211 12.so.0.11[.0] - * 1.4.0beta7-8 14 10400 14.so.0.0[.0] - * 1.2.11 13 10211 12.so.0.11[.0] - * 1.2.12 13 10212 12.so.0.12[.0] - * 1.4.0beta9-14 14 10400 14.so.0.0[.0] - * 1.2.13 13 10213 12.so.0.13[.0] - * 1.4.0beta15-36 14 10400 14.so.0.0[.0] - * 1.4.0beta37-87 14 10400 14.so.14.0[.0] - * 1.4.0rc01 14 10400 14.so.14.0[.0] - * 1.4.0beta88-109 14 10400 14.so.14.0[.0] - * 1.4.0rc02-08 14 10400 14.so.14.0[.0] - * 1.4.0 14 10400 14.so.14.0[.0] - * 1.4.1beta01-03 14 10401 14.so.14.1[.0] - * 1.4.1rc01 14 10401 14.so.14.1[.0] - * 1.4.1beta04-12 14 10401 14.so.14.1[.0] - * 1.4.1 14 10401 14.so.14.1[.0] - * 1.4.2 14 10402 14.so.14.2[.0] - * 1.4.3 14 10403 14.so.14.3[.0] - * 1.4.4 14 10404 14.so.14.4[.0] - * 1.5.0beta01-58 15 10500 15.so.15.0[.0] - * 1.5.0rc01-07 15 10500 15.so.15.0[.0] - * 1.5.0 15 10500 15.so.15.0[.0] - * 1.5.1beta01-11 15 10501 15.so.15.1[.0] - * 1.5.1rc01-02 15 10501 15.so.15.1[.0] - * 1.5.1 15 10501 15.so.15.1[.0] - * 1.5.2beta01-03 15 10502 15.so.15.2[.0] - * 1.5.2rc01-03 15 10502 15.so.15.2[.0] - * 1.5.2 15 10502 15.so.15.2[.0] - * 1.5.3beta01-10 15 10503 15.so.15.3[.0] - * 1.5.3rc01-02 15 10503 15.so.15.3[.0] - * 1.5.3beta11 15 10503 15.so.15.3[.0] - * 1.5.3 [omitted] - * 1.5.4beta01-08 15 10504 15.so.15.4[.0] - * 1.5.4rc01 15 10504 15.so.15.4[.0] - * 1.5.4 15 10504 15.so.15.4[.0] - * 1.5.5beta01-08 15 10505 15.so.15.5[.0] - * 1.5.5rc01 15 10505 15.so.15.5[.0] - * 1.5.5 15 10505 15.so.15.5[.0] - * 1.5.6beta01-07 15 10506 15.so.15.6[.0] - * 1.5.6rc01-03 15 10506 15.so.15.6[.0] - * 1.5.6 15 10506 15.so.15.6[.0] - * 1.5.7beta01-05 15 10507 15.so.15.7[.0] - * 1.5.7rc01-03 15 10507 15.so.15.7[.0] - * 1.5.7 15 10507 15.so.15.7[.0] - * 1.6.0beta01-40 16 10600 16.so.16.0[.0] - * 1.6.0rc01-08 16 10600 16.so.16.0[.0] - * 1.6.0 16 10600 16.so.16.0[.0] - * 1.6.1beta01-09 16 10601 16.so.16.1[.0] - * 1.6.1rc01 16 10601 16.so.16.1[.0] - * 1.6.1 16 10601 16.so.16.1[.0] - * 1.6.2beta01 16 10602 16.so.16.2[.0] - * 1.6.2rc01-06 16 10602 16.so.16.2[.0] - * 1.6.2 16 10602 16.so.16.2[.0] - * 1.6.3beta01-11 16 10603 16.so.16.3[.0] - * 1.6.3rc01 16 10603 16.so.16.3[.0] - * 1.6.3 16 10603 16.so.16.3[.0] - * 1.6.4beta01-02 16 10604 16.so.16.4[.0] - * 1.6.4rc01 16 10604 16.so.16.4[.0] - * 1.6.4 16 10604 16.so.16.4[.0] - * 1.6.5 16 10605 16.so.16.5[.0] - * 1.6.6 16 10606 16.so.16.6[.0] - * 1.6.7beta01-04 16 10607 16.so.16.7[.0] - * 1.6.7rc01-03 16 10607 16.so.16.7[.0] - * 1.6.7 16 10607 16.so.16.7[.0] - * 1.6.8beta01-02 16 10608 16.so.16.8[.0] - * 1.6.8rc01-02 16 10608 16.so.16.8[.0] - * 1.6.8 16 10608 16.so.16.8[.0] - * 1.6.9beta01-04 16 10609 16.so.16.9[.0] - * 1.6.9rc01-02 16 10609 16.so.16.9[.0] - * 1.6.9 16 10609 16.so.16.9[.0] - * 1.6.10beta01-03 16 10610 16.so.16.10[.0] - * 1.6.10rc01-03 16 10610 16.so.16.10[.0] - * 1.6.10 16 10610 16.so.16.10[.0] - * 1.6.11beta01-06 16 10611 16.so.16.11[.0] - * 1.6.11rc01-02 16 10611 16.so.16.11[.0] - * 1.6.11 16 10611 16.so.16.11[.0] - * 1.6.12rc01-03 16 10612 16.so.16.12[.0] - * 1.6.12 16 10612 16.so.16.12[.0] - * 1.6.13beta01-04 16 10613 16.so.16.13[.0] - * 1.6.13rc01-02 16 10613 16.so.16.13[.0] - * 1.6.13 16 10613 16.so.16.13[.0] - * 1.6.14beta01-07 16 10614 16.so.16.14[.0] - * 1.6.14rc01-02 16 10614 16.so.16.14[.0] - * 1.6.14 16 10614 16.so.16.14[.0] - * 1.6.15beta01-08 16 10615 16.so.16.15[.0] - * 1.6.15rc01-03 16 10615 16.so.16.15[.0] - * 1.6.15 16 10615 16.so.16.15[.0] - * 1.6.16beta01-03 16 10616 16.so.16.16[.0] - * 1.6.16rc01-02 16 10616 16.so.16.16[.0] - * 1.6.16 16 10616 16.so.16.16[.0] - * 1.6.17beta01-06 16 10617 16.so.16.17[.0] - * 1.6.17rc01-06 16 10617 16.so.16.17[.0] - * 1.6.17 16 10617 16.so.16.17[.0] - * 1.6.18beta01-09 16 10618 16.so.16.18[.0] - * 1.6.18rc01-03 16 10618 16.so.16.18[.0] - * 1.6.18 16 10618 16.so.16.18[.0] - * - * Henceforth the source version will match the shared-library major - * and minor numbers; the shared-library major version number will be - * used for changes in backward compatibility, as it is intended. The - * PNG_LIBPNG_VER macro, which is not used within libpng but is available - * for applications, is an unsigned integer of the form xyyzz corresponding - * to the source version x.y.z (leading zeros in y and z). Beta versions - * were given the previous public release number plus a letter, until - * version 1.0.6j; from then on they were given the upcoming public - * release number plus "betaNN" or "rcNN". - * - * Binary incompatibility exists only when applications make direct access - * to the info_ptr or png_ptr members through png.h, and the compiled - * application is loaded with a different version of the library. - * - * DLLNUM will change each time there are forward or backward changes - * in binary compatibility (e.g., when a new feature is added). - * - * See libpng-manual.txt or libpng.3 for more information. The PNG - * specification is available as a W3C Recommendation and as an ISO - * Specification, <http://www.w3.org/TR/2003/REC-PNG-20031110/ - */ - -/* - * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: - * - * If you modify libpng you may insert additional notices immediately following - * this sentence. - * - * This code is released under the libpng license. - * - * libpng versions 1.0.7, July 1, 2000, through 1.6.18, July 23, 2015, are - * Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are - * distributed according to the same disclaimer and license as libpng-1.0.6 - * with the following individuals added to the list of Contributing Authors: - * - * Simon-Pierre Cadieux - * Mans Rullgard - * Cosmin Truta - * Gilles Vollant - * James Yu - * - * and with the following additions to the disclaimer: - * - * There is no warranty against interference with your enjoyment of the - * library or against infringement. There is no warranty that our - * efforts or the library will fulfill any of your particular purposes - * or needs. This library is provided with all faults, and the entire - * risk of satisfactory quality, performance, accuracy, and effort is with - * the user. - * - * libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are - * Copyright (c) 1998-2000 Glenn Randers-Pehrson, and are distributed according - * to the same disclaimer and license as libpng-0.96, with the following - * individuals added to the list of Contributing Authors: - * - * Tom Lane - * Glenn Randers-Pehrson - * Eric S. Raymond - * Willem van Schaik - * - * libpng versions 0.89, June 1996, through 0.96, May 1997, are - * Copyright (c) 1996-1997 Andreas Dilger, and are - * distributed according to the same disclaimer and license as libpng-0.88, - * with the following individuals added to the list of Contributing Authors: - * - * John Bowler - * Kevin Bracey - * Sam Bushell - * Magnus Holmgren - * Greg Roelofs - * Tom Tanner - * - * libpng versions 0.5, May 1995, through 0.88, January 1996, are - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * For the purposes of this copyright and license, "Contributing Authors" - * is defined as the following set of individuals: - * - * Andreas Dilger - * Dave Martindale - * Guy Eric Schalnat - * Paul Schmidt - * Tim Wegner - * - * The PNG Reference Library is supplied "AS IS". The Contributing Authors - * and Group 42, Inc. disclaim all warranties, expressed or implied, - * including, without limitation, the warranties of merchantability and of - * fitness for any purpose. The Contributing Authors and Group 42, Inc. - * assume no liability for direct, indirect, incidental, special, exemplary, - * or consequential damages, which may result from the use of the PNG - * Reference Library, even if advised of the possibility of such damage. - * - * Permission is hereby granted to use, copy, modify, and distribute this - * source code, or portions hereof, for any purpose, without fee, subject - * to the following restrictions: - * - * 1. The origin of this source code must not be misrepresented. - * - * 2. Altered versions must be plainly marked as such and must not - * be misrepresented as being the original source. - * - * 3. This Copyright notice may not be removed or altered from any - * source or altered source distribution. - * - * The Contributing Authors and Group 42, Inc. specifically permit, without - * fee, and encourage the use of this source code as a component to - * supporting the PNG file format in commercial products. If you use this - * source code in a product, acknowledgment is not required but would be - * appreciated. - */ - -/* - * A "png_get_copyright" function is available, for convenient use in "about" - * boxes and the like: - * - * printf("%s", png_get_copyright(NULL)); - * - * Also, the PNG logo (in PNG format, of course) is supplied in the - * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). - */ - -/* - * Libpng is OSI Certified Open Source Software. OSI Certified Open Source is - * a certification mark of the Open Source Initiative. OSI has not addressed - * the additional disclaimers inserted at version 1.0.7. - */ - -/* - * The contributing authors would like to thank all those who helped - * with testing, bug fixes, and patience. This wouldn't have been - * possible without all of you. - * - * Thanks to Frank J. T. Wojcik for helping with the documentation. - */ - -/* - * Y2K compliance in libpng: - * ========================= - * - * July 23, 2015 - * - * Since the PNG Development group is an ad-hoc body, we can't make - * an official declaration. - * - * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.6.18 are Y2K compliant. It is my belief that - * earlier versions were also Y2K compliant. - * - * Libpng only has two year fields. One is a 2-byte unsigned integer - * that will hold years up to 65535. The other, which is deprecated, - * holds the date in text format, and will hold years up to 9999. - * - * The integer is - * "png_uint_16 year" in png_time_struct. - * - * The string is - * "char time_buffer[29]" in png_struct. This is no longer used - * in libpng-1.6.x and will be removed from libpng-1.7.0. - * - * There are seven time-related functions: - * png.c: png_convert_to_rfc_1123_buffer() in png.c - * (formerly png_convert_to_rfc_1123() prior to libpng-1.5.x and - * png_convert_to_rfc_1152() in error prior to libpng-0.98) - * png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c - * png_convert_from_time_t() in pngwrite.c - * png_get_tIME() in pngget.c - * png_handle_tIME() in pngrutil.c, called in pngread.c - * png_set_tIME() in pngset.c - * png_write_tIME() in pngwutil.c, called in pngwrite.c - * - * All handle dates properly in a Y2K environment. The - * png_convert_from_time_t() function calls gmtime() to convert from system - * clock time, which returns (year - 1900), which we properly convert to - * the full 4-digit year. There is a possibility that libpng applications - * are not passing 4-digit years into the png_convert_to_rfc_1123_buffer() - * function, or that they are incorrectly passing only a 2-digit year - * instead of "year - 1900" into the png_convert_from_struct_tm() function, - * but this is not under our control. The libpng documentation has always - * stated that it works with 4-digit years, and the APIs have been - * documented as such. - * - * The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned - * integer to hold the year, and can hold years as large as 65535. - * - * zlib, upon which libpng depends, is also Y2K compliant. It contains - * no date-related code. - * - * Glenn Randers-Pehrson - * libpng maintainer - * PNG Development Group - */ - -#ifndef PNG_H -#define PNG_H - -/* This is not the place to learn how to use libpng. The file libpng-manual.txt - * describes how to use libpng, and the file example.c summarizes it - * with some code on which to build. This file is useful for looking - * at the actual function definitions and structure components. If that - * file has been stripped from your copy of libpng, you can find it at - * <http://www.libpng.org/pub/png/libpng-manual.txt> - * - * If you just need to read a PNG file and don't want to read the documentation - * skip to the end of this file and read the section entitled 'simplified API'. - */ - -/* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.6.18" -#define PNG_HEADER_VERSION_STRING \ - " libpng version 1.6.18 - July 23, 2015\n" - -#define PNG_LIBPNG_VER_SONUM 16 -#define PNG_LIBPNG_VER_DLLNUM 16 - -/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ -#define PNG_LIBPNG_VER_MAJOR 1 -#define PNG_LIBPNG_VER_MINOR 6 -#define PNG_LIBPNG_VER_RELEASE 18 - -/* This should match the numeric part of the final component of - * PNG_LIBPNG_VER_STRING, omitting any leading zero: - */ - -#define PNG_LIBPNG_VER_BUILD 0 - -/* Release Status */ -#define PNG_LIBPNG_BUILD_ALPHA 1 -#define PNG_LIBPNG_BUILD_BETA 2 -#define PNG_LIBPNG_BUILD_RC 3 -#define PNG_LIBPNG_BUILD_STABLE 4 -#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7 - -/* Release-Specific Flags */ -#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with - PNG_LIBPNG_BUILD_STABLE only */ -#define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with - PNG_LIBPNG_BUILD_SPECIAL */ -#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with - PNG_LIBPNG_BUILD_PRIVATE */ - -#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE - -/* Careful here. At one time, Guy wanted to use 082, but that would be octal. - * We must not include leading zeros. - * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only - * version 1.0.0 was mis-numbered 100 instead of 10000). From - * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release - */ -#define PNG_LIBPNG_VER 10618 /* 1.6.18 */ - -/* Library configuration: these options cannot be changed after - * the library has been built. - */ -#ifndef PNGLCONF_H - /* If pnglibconf.h is missing, you can - * copy scripts/pnglibconf.h.prebuilt to pnglibconf.h - */ -# include "pnglibconf.h" -#endif - -#ifndef PNG_VERSION_INFO_ONLY - /* Machine specific configuration. */ -# include "pngconf.h" -#endif - -/* - * Added at libpng-1.2.8 - * - * Ref MSDN: Private as priority over Special - * VS_FF_PRIVATEBUILD File *was not* built using standard release - * procedures. If this value is given, the StringFileInfo block must - * contain a PrivateBuild string. - * - * VS_FF_SPECIALBUILD File *was* built by the original company using - * standard release procedures but is a variation of the standard - * file of the same version number. If this value is given, the - * StringFileInfo block must contain a SpecialBuild string. - */ - -#ifdef PNG_USER_PRIVATEBUILD /* From pnglibconf.h */ -# define PNG_LIBPNG_BUILD_TYPE \ - (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) -#else -# ifdef PNG_LIBPNG_SPECIALBUILD -# define PNG_LIBPNG_BUILD_TYPE \ - (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) -# else -# define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE) -# endif -#endif - -#ifndef PNG_VERSION_INFO_ONLY - -/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Version information for C files, stored in png.c. This had better match - * the version above. - */ -#define png_libpng_ver png_get_header_ver(NULL) - -/* This file is arranged in several sections: - * - * 1. Any configuration options that can be specified by for the application - * code when it is built. (Build time configuration is in pnglibconf.h) - * 2. Type definitions (base types are defined in pngconf.h), structure - * definitions. - * 3. Exported library functions. - * 4. Simplified API. - * - * The library source code has additional files (principally pngpriv.h) that - * allow configuration of the library. - */ -/* Section 1: run time configuration - * See pnglibconf.h for build time configuration - * - * Run time configuration allows the application to choose between - * implementations of certain arithmetic APIs. The default is set - * at build time and recorded in pnglibconf.h, but it is safe to - * override these (and only these) settings. Note that this won't - * change what the library does, only application code, and the - * settings can (and probably should) be made on a per-file basis - * by setting the #defines before including png.h - * - * Use macros to read integers from PNG data or use the exported - * functions? - * PNG_USE_READ_MACROS: use the macros (see below) Note that - * the macros evaluate their argument multiple times. - * PNG_NO_USE_READ_MACROS: call the relevant library function. - * - * Use the alternative algorithm for compositing alpha samples that - * does not use division? - * PNG_READ_COMPOSITE_NODIV_SUPPORTED: use the 'no division' - * algorithm. - * PNG_NO_READ_COMPOSITE_NODIV: use the 'division' algorithm. - * - * How to handle benign errors if PNG_ALLOW_BENIGN_ERRORS is - * false? - * PNG_ALLOW_BENIGN_ERRORS: map calls to the benign error - * APIs to png_warning. - * Otherwise the calls are mapped to png_error. - */ - -/* Section 2: type definitions, including structures and compile time - * constants. - * See pngconf.h for base types that vary by machine/system - */ - -/* This triggers a compiler error in png.c, if png.c and png.h - * do not agree upon the version number. - */ -typedef char* png_libpng_version_1_6_18; - -/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. - * - * png_struct is the cache of information used while reading or writing a single - * PNG file. One of these is always required, although the simplified API - * (below) hides the creation and destruction of it. - */ -typedef struct png_struct_def png_struct; -typedef const png_struct * png_const_structp; -typedef png_struct * png_structp; -typedef png_struct * * png_structpp; - -/* png_info contains information read from or to be written to a PNG file. One - * or more of these must exist while reading or creating a PNG file. The - * information is not used by libpng during read but is used to control what - * gets written when a PNG file is created. "png_get_" function calls read - * information during read and "png_set_" functions calls write information - * when creating a PNG. - * been moved into a separate header file that is not accessible to - * applications. Read libpng-manual.txt or libpng.3 for more info. - */ -typedef struct png_info_def png_info; -typedef png_info * png_infop; -typedef const png_info * png_const_infop; -typedef png_info * * png_infopp; - -/* Types with names ending 'p' are pointer types. The corresponding types with - * names ending 'rp' are identical pointer types except that the pointer is - * marked 'restrict', which means that it is the only pointer to the object - * passed to the function. Applications should not use the 'restrict' types; - * it is always valid to pass 'p' to a pointer with a function argument of the - * corresponding 'rp' type. Different compilers have different rules with - * regard to type matching in the presence of 'restrict'. For backward - * compatibility libpng callbacks never have 'restrict' in their parameters and, - * consequentially, writing portable application code is extremely difficult if - * an attempt is made to use 'restrict'. - */ -typedef png_struct * PNG_RESTRICT png_structrp; -typedef const png_struct * PNG_RESTRICT png_const_structrp; -typedef png_info * PNG_RESTRICT png_inforp; -typedef const png_info * PNG_RESTRICT png_const_inforp; - -/* Three color definitions. The order of the red, green, and blue, (and the - * exact size) is not important, although the size of the fields need to - * be png_byte or png_uint_16 (as defined below). - */ -typedef struct png_color_struct -{ - png_byte red; - png_byte green; - png_byte blue; -} png_color; -typedef png_color * png_colorp; -typedef const png_color * png_const_colorp; -typedef png_color * * png_colorpp; - -typedef struct png_color_16_struct -{ - png_byte index; /* used for palette files */ - png_uint_16 red; /* for use in red green blue files */ - png_uint_16 green; - png_uint_16 blue; - png_uint_16 gray; /* for use in grayscale files */ -} png_color_16; -typedef png_color_16 * png_color_16p; -typedef const png_color_16 * png_const_color_16p; -typedef png_color_16 * * png_color_16pp; - -typedef struct png_color_8_struct -{ - png_byte red; /* for use in red green blue files */ - png_byte green; - png_byte blue; - png_byte gray; /* for use in grayscale files */ - png_byte alpha; /* for alpha channel files */ -} png_color_8; -typedef png_color_8 * png_color_8p; -typedef const png_color_8 * png_const_color_8p; -typedef png_color_8 * * png_color_8pp; - -/* - * The following two structures are used for the in-core representation - * of sPLT chunks. - */ -typedef struct png_sPLT_entry_struct -{ - png_uint_16 red; - png_uint_16 green; - png_uint_16 blue; - png_uint_16 alpha; - png_uint_16 frequency; -} png_sPLT_entry; -typedef png_sPLT_entry * png_sPLT_entryp; -typedef const png_sPLT_entry * png_const_sPLT_entryp; -typedef png_sPLT_entry * * png_sPLT_entrypp; - -/* When the depth of the sPLT palette is 8 bits, the color and alpha samples - * occupy the LSB of their respective members, and the MSB of each member - * is zero-filled. The frequency member always occupies the full 16 bits. - */ - -typedef struct png_sPLT_struct -{ - png_charp name; /* palette name */ - png_byte depth; /* depth of palette samples */ - png_sPLT_entryp entries; /* palette entries */ - png_int_32 nentries; /* number of palette entries */ -} png_sPLT_t; -typedef png_sPLT_t * png_sPLT_tp; -typedef const png_sPLT_t * png_const_sPLT_tp; -typedef png_sPLT_t * * png_sPLT_tpp; - -#ifdef PNG_TEXT_SUPPORTED -/* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file, - * and whether that contents is compressed or not. The "key" field - * points to a regular zero-terminated C string. The "text" fields can be a - * regular C string, an empty string, or a NULL pointer. - * However, the structure returned by png_get_text() will always contain - * the "text" field as a regular zero-terminated C string (possibly - * empty), never a NULL pointer, so it can be safely used in printf() and - * other string-handling functions. Note that the "itxt_length", "lang", and - * "lang_key" members of the structure only exist when the library is built - * with iTXt chunk support. Prior to libpng-1.4.0 the library was built by - * default without iTXt support. Also note that when iTXt *is* supported, - * the "lang" and "lang_key" fields contain NULL pointers when the - * "compression" field contains * PNG_TEXT_COMPRESSION_NONE or - * PNG_TEXT_COMPRESSION_zTXt. Note that the "compression value" is not the - * same as what appears in the PNG tEXt/zTXt/iTXt chunk's "compression flag" - * which is always 0 or 1, or its "compression method" which is always 0. - */ -typedef struct png_text_struct -{ - int compression; /* compression value: - -1: tEXt, none - 0: zTXt, deflate - 1: iTXt, none - 2: iTXt, deflate */ - png_charp key; /* keyword, 1-79 character description of "text" */ - png_charp text; /* comment, may be an empty string (ie "") - or a NULL pointer */ - png_size_t text_length; /* length of the text string */ - png_size_t itxt_length; /* length of the itxt string */ - png_charp lang; /* language code, 0-79 characters - or a NULL pointer */ - png_charp lang_key; /* keyword translated UTF-8 string, 0 or more - chars or a NULL pointer */ -} png_text; -typedef png_text * png_textp; -typedef const png_text * png_const_textp; -typedef png_text * * png_textpp; -#endif - -/* Supported compression types for text in PNG files (tEXt, and zTXt). - * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */ -#define PNG_TEXT_COMPRESSION_NONE_WR -3 -#define PNG_TEXT_COMPRESSION_zTXt_WR -2 -#define PNG_TEXT_COMPRESSION_NONE -1 -#define PNG_TEXT_COMPRESSION_zTXt 0 -#define PNG_ITXT_COMPRESSION_NONE 1 -#define PNG_ITXT_COMPRESSION_zTXt 2 -#define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */ - -/* png_time is a way to hold the time in an machine independent way. - * Two conversions are provided, both from time_t and struct tm. There - * is no portable way to convert to either of these structures, as far - * as I know. If you know of a portable way, send it to me. As a side - * note - PNG has always been Year 2000 compliant! - */ -typedef struct png_time_struct -{ - png_uint_16 year; /* full year, as in, 1995 */ - png_byte month; /* month of year, 1 - 12 */ - png_byte day; /* day of month, 1 - 31 */ - png_byte hour; /* hour of day, 0 - 23 */ - png_byte minute; /* minute of hour, 0 - 59 */ - png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ -} png_time; -typedef png_time * png_timep; -typedef const png_time * png_const_timep; -typedef png_time * * png_timepp; - -#if defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) ||\ - defined(PNG_USER_CHUNKS_SUPPORTED) -/* png_unknown_chunk is a structure to hold queued chunks for which there is - * no specific support. The idea is that we can use this to queue - * up private chunks for output even though the library doesn't actually - * know about their semantics. - * - * The data in the structure is set by libpng on read and used on write. - */ -typedef struct png_unknown_chunk_t -{ - png_byte name[5]; /* Textual chunk name with '\0' terminator */ - png_byte *data; /* Data, should not be modified on read! */ - png_size_t size; - - /* On write 'location' must be set using the flag values listed below. - * Notice that on read it is set by libpng however the values stored have - * more bits set than are listed below. Always treat the value as a - * bitmask. On write set only one bit - setting multiple bits may cause the - * chunk to be written in multiple places. - */ - png_byte location; /* mode of operation at read time */ -} -png_unknown_chunk; - -typedef png_unknown_chunk * png_unknown_chunkp; -typedef const png_unknown_chunk * png_const_unknown_chunkp; -typedef png_unknown_chunk * * png_unknown_chunkpp; -#endif - -/* Flag values for the unknown chunk location byte. */ -#define PNG_HAVE_IHDR 0x01 -#define PNG_HAVE_PLTE 0x02 -#define PNG_AFTER_IDAT 0x08 - -/* Maximum positive integer used in PNG is (2^31)-1 */ -#define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) -#define PNG_UINT_32_MAX ((png_uint_32)(-1)) -#define PNG_SIZE_MAX ((png_size_t)(-1)) - -/* These are constants for fixed point values encoded in the - * PNG specification manner (x100000) - */ -#define PNG_FP_1 100000 -#define PNG_FP_HALF 50000 -#define PNG_FP_MAX ((png_fixed_point)0x7fffffffL) -#define PNG_FP_MIN (-PNG_FP_MAX) - -/* These describe the color_type field in png_info. */ -/* color type masks */ -#define PNG_COLOR_MASK_PALETTE 1 -#define PNG_COLOR_MASK_COLOR 2 -#define PNG_COLOR_MASK_ALPHA 4 - -/* color types. Note that not all combinations are legal */ -#define PNG_COLOR_TYPE_GRAY 0 -#define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE) -#define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR) -#define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA) -#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA) -/* aliases */ -#define PNG_COLOR_TYPE_RGBA PNG_COLOR_TYPE_RGB_ALPHA -#define PNG_COLOR_TYPE_GA PNG_COLOR_TYPE_GRAY_ALPHA - -/* This is for compression type. PNG 1.0-1.2 only define the single type. */ -#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */ -#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE - -/* This is for filter type. PNG 1.0-1.2 only define the single type. */ -#define PNG_FILTER_TYPE_BASE 0 /* Single row per-byte filtering */ -#define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */ -#define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE - -/* These are for the interlacing type. These values should NOT be changed. */ -#define PNG_INTERLACE_NONE 0 /* Non-interlaced image */ -#define PNG_INTERLACE_ADAM7 1 /* Adam7 interlacing */ -#define PNG_INTERLACE_LAST 2 /* Not a valid value */ - -/* These are for the oFFs chunk. These values should NOT be changed. */ -#define PNG_OFFSET_PIXEL 0 /* Offset in pixels */ -#define PNG_OFFSET_MICROMETER 1 /* Offset in micrometers (1/10^6 meter) */ -#define PNG_OFFSET_LAST 2 /* Not a valid value */ - -/* These are for the pCAL chunk. These values should NOT be changed. */ -#define PNG_EQUATION_LINEAR 0 /* Linear transformation */ -#define PNG_EQUATION_BASE_E 1 /* Exponential base e transform */ -#define PNG_EQUATION_ARBITRARY 2 /* Arbitrary base exponential transform */ -#define PNG_EQUATION_HYPERBOLIC 3 /* Hyperbolic sine transformation */ -#define PNG_EQUATION_LAST 4 /* Not a valid value */ - -/* These are for the sCAL chunk. These values should NOT be changed. */ -#define PNG_SCALE_UNKNOWN 0 /* unknown unit (image scale) */ -#define PNG_SCALE_METER 1 /* meters per pixel */ -#define PNG_SCALE_RADIAN 2 /* radians per pixel */ -#define PNG_SCALE_LAST 3 /* Not a valid value */ - -/* These are for the pHYs chunk. These values should NOT be changed. */ -#define PNG_RESOLUTION_UNKNOWN 0 /* pixels/unknown unit (aspect ratio) */ -#define PNG_RESOLUTION_METER 1 /* pixels/meter */ -#define PNG_RESOLUTION_LAST 2 /* Not a valid value */ - -/* These are for the sRGB chunk. These values should NOT be changed. */ -#define PNG_sRGB_INTENT_PERCEPTUAL 0 -#define PNG_sRGB_INTENT_RELATIVE 1 -#define PNG_sRGB_INTENT_SATURATION 2 -#define PNG_sRGB_INTENT_ABSOLUTE 3 -#define PNG_sRGB_INTENT_LAST 4 /* Not a valid value */ - -/* This is for text chunks */ -#define PNG_KEYWORD_MAX_LENGTH 79 - -/* Maximum number of entries in PLTE/sPLT/tRNS arrays */ -#define PNG_MAX_PALETTE_LENGTH 256 - -/* These determine if an ancillary chunk's data has been successfully read - * from the PNG header, or if the application has filled in the corresponding - * data in the info_struct to be written into the output file. The values - * of the PNG_INFO_<chunk> defines should NOT be changed. - */ -#define PNG_INFO_gAMA 0x0001 -#define PNG_INFO_sBIT 0x0002 -#define PNG_INFO_cHRM 0x0004 -#define PNG_INFO_PLTE 0x0008 -#define PNG_INFO_tRNS 0x0010 -#define PNG_INFO_bKGD 0x0020 -#define PNG_INFO_hIST 0x0040 -#define PNG_INFO_pHYs 0x0080 -#define PNG_INFO_oFFs 0x0100 -#define PNG_INFO_tIME 0x0200 -#define PNG_INFO_pCAL 0x0400 -#define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */ -#define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ -#define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ -#define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ -#define PNG_INFO_IDAT 0x8000 /* ESR, 1.0.6 */ - -/* This is used for the transformation routines, as some of them - * change these values for the row. It also should enable using - * the routines for other purposes. - */ -typedef struct png_row_info_struct -{ - png_uint_32 width; /* width of row */ - png_size_t rowbytes; /* number of bytes in row */ - png_byte color_type; /* color type of row */ - png_byte bit_depth; /* bit depth of row */ - png_byte channels; /* number of channels (1, 2, 3, or 4) */ - png_byte pixel_depth; /* bits per pixel (depth * channels) */ -} png_row_info; - -typedef png_row_info * png_row_infop; -typedef png_row_info * * png_row_infopp; - -/* These are the function types for the I/O functions and for the functions - * that allow the user to override the default I/O functions with his or her - * own. The png_error_ptr type should match that of user-supplied warning - * and error functions, while the png_rw_ptr type should match that of the - * user read/write data functions. Note that the 'write' function must not - * modify the buffer it is passed. The 'read' function, on the other hand, is - * expected to return the read data in the buffer. - */ -typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp)); -typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, png_size_t)); -typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp)); -typedef PNG_CALLBACK(void, *png_read_status_ptr, (png_structp, png_uint_32, - int)); -typedef PNG_CALLBACK(void, *png_write_status_ptr, (png_structp, png_uint_32, - int)); - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop)); -typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop)); - -/* The following callback receives png_uint_32 row_number, int pass for the - * png_bytep data of the row. When transforming an interlaced image the - * row number is the row number within the sub-image of the interlace pass, so - * the value will increase to the height of the sub-image (not the full image) - * then reset to 0 for the next pass. - * - * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to - * find the output pixel (x,y) given an interlaced sub-image pixel - * (row,col,pass). (See below for these macros.) - */ -typedef PNG_CALLBACK(void, *png_progressive_row_ptr, (png_structp, png_bytep, - png_uint_32, int)); -#endif - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) -typedef PNG_CALLBACK(void, *png_user_transform_ptr, (png_structp, png_row_infop, - png_bytep)); -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp, - png_unknown_chunkp)); -#endif -#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED -/* not used anywhere */ -/* typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp)); */ -#endif - -#ifdef PNG_SETJMP_SUPPORTED -/* This must match the function definition in <setjmp.h>, and the application - * must include this before png.h to obtain the definition of jmp_buf. The - * function is required to be PNG_NORETURN, but this is not checked. If the - * function does return the application will crash via an abort() or similar - * system level call. - * - * If you get a warning here while building the library you may need to make - * changes to ensure that pnglibconf.h records the calling convention used by - * your compiler. This may be very difficult - try using a different compiler - * to build the library! - */ -PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), typedef); -#endif - -/* Transform masks for the high-level interface */ -#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ -#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ -#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ -#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ -#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ -#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ -#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ -#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ -#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ -#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ -#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ -#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ -#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only */ -/* Added to libpng-1.2.34 */ -#define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER -#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ -/* Added to libpng-1.4.0 */ -#define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ -/* Added to libpng-1.5.4 */ -#define PNG_TRANSFORM_EXPAND_16 0x4000 /* read only */ -#define PNG_TRANSFORM_SCALE_16 0x8000 /* read only */ - -/* Flags for MNG supported features */ -#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 -#define PNG_FLAG_MNG_FILTER_64 0x04 -#define PNG_ALL_MNG_FEATURES 0x05 - -/* NOTE: prior to 1.5 these functions had no 'API' style declaration, - * this allowed the zlib default functions to be used on Windows - * platforms. In 1.5 the zlib default malloc (which just calls malloc and - * ignores the first argument) should be completely compatible with the - * following. - */ -typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp, - png_alloc_size_t)); -typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp)); - -/* Section 3: exported functions - * Here are the function definitions most commonly used. This is not - * the place to find out how to use libpng. See libpng-manual.txt for the - * full explanation, see example.c for the summary. This just provides - * a simple one line description of the use of each function. - * - * The PNG_EXPORT() and PNG_EXPORTA() macros used below are defined in - * pngconf.h and in the *.dfn files in the scripts directory. - * - * PNG_EXPORT(ordinal, type, name, (args)); - * - * ordinal: ordinal that is used while building - * *.def files. The ordinal value is only - * relevant when preprocessing png.h with - * the *.dfn files for building symbol table - * entries, and are removed by pngconf.h. - * type: return type of the function - * name: function name - * args: function arguments, with types - * - * When we wish to append attributes to a function prototype we use - * the PNG_EXPORTA() macro instead. - * - * PNG_EXPORTA(ordinal, type, name, (args), attributes); - * - * ordinal, type, name, and args: same as in PNG_EXPORT(). - * attributes: function attributes - */ - -/* Returns the version number of the library */ -PNG_EXPORT(1, png_uint_32, png_access_version_number, (void)); - -/* Tell lib we have already handled the first <num_bytes> magic bytes. - * Handling more than 8 bytes from the beginning of the file is an error. - */ -PNG_EXPORT(2, void, png_set_sig_bytes, (png_structrp png_ptr, int num_bytes)); - -/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a - * PNG file. Returns zero if the supplied bytes match the 8-byte PNG - * signature, and non-zero otherwise. Having num_to_check == 0 or - * start > 7 will always fail (ie return non-zero). - */ -PNG_EXPORT(3, int, png_sig_cmp, (png_const_bytep sig, png_size_t start, - png_size_t num_to_check)); - -/* Simple signature checking function. This is the same as calling - * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). - */ -#define png_check_sig(sig, n) !png_sig_cmp((sig), 0, (n)) - -/* Allocate and initialize png_ptr struct for reading, and any other memory. */ -PNG_EXPORTA(4, png_structp, png_create_read_struct, - (png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn), - PNG_ALLOCATED); - -/* Allocate and initialize png_ptr struct for writing, and any other memory */ -PNG_EXPORTA(5, png_structp, png_create_write_struct, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn), - PNG_ALLOCATED); - -PNG_EXPORT(6, png_size_t, png_get_compression_buffer_size, - (png_const_structrp png_ptr)); - -PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structrp png_ptr, - png_size_t size)); - -/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp - * match up. - */ -#ifdef PNG_SETJMP_SUPPORTED -/* This function returns the jmp_buf built in to *png_ptr. It must be - * supplied with an appropriate 'longjmp' function to use on that jmp_buf - * unless the default error function is overridden in which case NULL is - * acceptable. The size of the jmp_buf is checked against the actual size - * allocated by the library - the call will return NULL on a mismatch - * indicating an ABI mismatch. - */ -PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structrp png_ptr, - png_longjmp_ptr longjmp_fn, size_t jmp_buf_size)); -# define png_jmpbuf(png_ptr) \ - (*png_set_longjmp_fn((png_ptr), longjmp, (sizeof (jmp_buf)))) -#else -# define png_jmpbuf(png_ptr) \ - (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) -#endif -/* This function should be used by libpng applications in place of - * longjmp(png_ptr->jmpbuf, val). If longjmp_fn() has been set, it - * will use it; otherwise it will call PNG_ABORT(). This function was - * added in libpng-1.5.0. - */ -PNG_EXPORTA(9, void, png_longjmp, (png_const_structrp png_ptr, int val), - PNG_NORETURN); - -#ifdef PNG_READ_SUPPORTED -/* Reset the compression stream */ -PNG_EXPORTA(10, int, png_reset_zstream, (png_structrp png_ptr), PNG_DEPRECATED); -#endif - -/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ -#ifdef PNG_USER_MEM_SUPPORTED -PNG_EXPORTA(11, png_structp, png_create_read_struct_2, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn, - png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), - PNG_ALLOCATED); -PNG_EXPORTA(12, png_structp, png_create_write_struct_2, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn, - png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), - PNG_ALLOCATED); -#endif - -/* Write the PNG file signature. */ -PNG_EXPORT(13, void, png_write_sig, (png_structrp png_ptr)); - -/* Write a PNG chunk - size, type, (optional) data, CRC. */ -PNG_EXPORT(14, void, png_write_chunk, (png_structrp png_ptr, png_const_bytep - chunk_name, png_const_bytep data, png_size_t length)); - -/* Write the start of a PNG chunk - length and chunk name. */ -PNG_EXPORT(15, void, png_write_chunk_start, (png_structrp png_ptr, - png_const_bytep chunk_name, png_uint_32 length)); - -/* Write the data of a PNG chunk started with png_write_chunk_start(). */ -PNG_EXPORT(16, void, png_write_chunk_data, (png_structrp png_ptr, - png_const_bytep data, png_size_t length)); - -/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ -PNG_EXPORT(17, void, png_write_chunk_end, (png_structrp png_ptr)); - -/* Allocate and initialize the info structure */ -PNG_EXPORTA(18, png_infop, png_create_info_struct, (png_const_structrp png_ptr), - PNG_ALLOCATED); - -/* DEPRECATED: this function allowed init structures to be created using the - * default allocation method (typically malloc). Use is deprecated in 1.6.0 and - * the API will be removed in the future. - */ -PNG_EXPORTA(19, void, png_info_init_3, (png_infopp info_ptr, - png_size_t png_info_struct_size), PNG_DEPRECATED); - -/* Writes all the PNG information before the image. */ -PNG_EXPORT(20, void, png_write_info_before_PLTE, - (png_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(21, void, png_write_info, - (png_structrp png_ptr, png_const_inforp info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the information before the actual image data. */ -PNG_EXPORT(22, void, png_read_info, - (png_structrp png_ptr, png_inforp info_ptr)); -#endif - -#ifdef PNG_TIME_RFC1123_SUPPORTED - /* Convert to a US string format: there is no localization support in this - * routine. The original implementation used a 29 character buffer in - * png_struct, this will be removed in future versions. - */ -#if PNG_LIBPNG_VER < 10700 -/* To do: remove this from libpng17 (and from libpng17/png.c and pngstruct.h) */ -PNG_EXPORTA(23, png_const_charp, png_convert_to_rfc1123, (png_structrp png_ptr, - png_const_timep ptime),PNG_DEPRECATED); -#endif -PNG_EXPORT(241, int, png_convert_to_rfc1123_buffer, (char out[29], - png_const_timep ptime)); -#endif - -#ifdef PNG_CONVERT_tIME_SUPPORTED -/* Convert from a struct tm to png_time */ -PNG_EXPORT(24, void, png_convert_from_struct_tm, (png_timep ptime, - const struct tm * ttime)); - -/* Convert from time_t to png_time. Uses gmtime() */ -PNG_EXPORT(25, void, png_convert_from_time_t, (png_timep ptime, time_t ttime)); -#endif /* CONVERT_tIME */ - -#ifdef PNG_READ_EXPAND_SUPPORTED -/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ -PNG_EXPORT(26, void, png_set_expand, (png_structrp png_ptr)); -PNG_EXPORT(27, void, png_set_expand_gray_1_2_4_to_8, (png_structrp png_ptr)); -PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structrp png_ptr)); -PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_EXPAND_16_SUPPORTED -/* Expand to 16-bit channels, forces conversion of palette to RGB and expansion - * of a tRNS chunk if present. - */ -PNG_EXPORT(221, void, png_set_expand_16, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -/* Use blue, green, red order for pixels. */ -PNG_EXPORT(30, void, png_set_bgr, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED -/* Expand the grayscale to 24-bit RGB if necessary. */ -PNG_EXPORT(31, void, png_set_gray_to_rgb, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -/* Reduce RGB to grayscale. */ -#define PNG_ERROR_ACTION_NONE 1 -#define PNG_ERROR_ACTION_WARN 2 -#define PNG_ERROR_ACTION_ERROR 3 -#define PNG_RGB_TO_GRAY_DEFAULT (-1)/*for red/green coefficients*/ - -PNG_FP_EXPORT(32, void, png_set_rgb_to_gray, (png_structrp png_ptr, - int error_action, double red, double green)) -PNG_FIXED_EXPORT(33, void, png_set_rgb_to_gray_fixed, (png_structrp png_ptr, - int error_action, png_fixed_point red, png_fixed_point green)) - -PNG_EXPORT(34, png_byte, png_get_rgb_to_gray_status, (png_const_structrp - png_ptr)); -#endif - -#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED -PNG_EXPORT(35, void, png_build_grayscale_palette, (int bit_depth, - png_colorp palette)); -#endif - -#ifdef PNG_READ_ALPHA_MODE_SUPPORTED -/* How the alpha channel is interpreted - this affects how the color channels - * of a PNG file are returned to the calling application when an alpha channel, - * or a tRNS chunk in a palette file, is present. - * - * This has no effect on the way pixels are written into a PNG output - * datastream. The color samples in a PNG datastream are never premultiplied - * with the alpha samples. - * - * The default is to return data according to the PNG specification: the alpha - * channel is a linear measure of the contribution of the pixel to the - * corresponding composited pixel, and the color channels are unassociated - * (not premultiplied). The gamma encoded color channels must be scaled - * according to the contribution and to do this it is necessary to undo - * the encoding, scale the color values, perform the composition and reencode - * the values. This is the 'PNG' mode. - * - * The alternative is to 'associate' the alpha with the color information by - * storing color channel values that have been scaled by the alpha. - * image. These are the 'STANDARD', 'ASSOCIATED' or 'PREMULTIPLIED' modes - * (the latter being the two common names for associated alpha color channels). - * - * For the 'OPTIMIZED' mode, a pixel is treated as opaque only if the alpha - * value is equal to the maximum value. - * - * The final choice is to gamma encode the alpha channel as well. This is - * broken because, in practice, no implementation that uses this choice - * correctly undoes the encoding before handling alpha composition. Use this - * choice only if other serious errors in the software or hardware you use - * mandate it; the typical serious error is for dark halos to appear around - * opaque areas of the composited PNG image because of arithmetic overflow. - * - * The API function png_set_alpha_mode specifies which of these choices to use - * with an enumerated 'mode' value and the gamma of the required output: - */ -#define PNG_ALPHA_PNG 0 /* according to the PNG standard */ -#define PNG_ALPHA_STANDARD 1 /* according to Porter/Duff */ -#define PNG_ALPHA_ASSOCIATED 1 /* as above; this is the normal practice */ -#define PNG_ALPHA_PREMULTIPLIED 1 /* as above */ -#define PNG_ALPHA_OPTIMIZED 2 /* 'PNG' for opaque pixels, else 'STANDARD' */ -#define PNG_ALPHA_BROKEN 3 /* the alpha channel is gamma encoded */ - -PNG_FP_EXPORT(227, void, png_set_alpha_mode, (png_structrp png_ptr, int mode, - double output_gamma)) -PNG_FIXED_EXPORT(228, void, png_set_alpha_mode_fixed, (png_structrp png_ptr, - int mode, png_fixed_point output_gamma)) -#endif - -#if defined(PNG_GAMMA_SUPPORTED) || defined(PNG_READ_ALPHA_MODE_SUPPORTED) -/* The output_gamma value is a screen gamma in libpng terminology: it expresses - * how to decode the output values, not how they are encoded. - */ -#define PNG_DEFAULT_sRGB -1 /* sRGB gamma and color space */ -#define PNG_GAMMA_MAC_18 -2 /* Old Mac '1.8' gamma and color space */ -#define PNG_GAMMA_sRGB 220000 /* Television standards--matches sRGB gamma */ -#define PNG_GAMMA_LINEAR PNG_FP_1 /* Linear */ -#endif - -/* The following are examples of calls to png_set_alpha_mode to achieve the - * required overall gamma correction and, where necessary, alpha - * premultiplication. - * - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); - * This is the default libpng handling of the alpha channel - it is not - * pre-multiplied into the color components. In addition the call states - * that the output is for a sRGB system and causes all PNG files without gAMA - * chunks to be assumed to be encoded using sRGB. - * - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); - * In this case the output is assumed to be something like an sRGB conformant - * display preceeded by a power-law lookup table of power 1.45. This is how - * early Mac systems behaved. - * - * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_GAMMA_LINEAR); - * This is the classic Jim Blinn approach and will work in academic - * environments where everything is done by the book. It has the shortcoming - * of assuming that input PNG data with no gamma information is linear - this - * is unlikely to be correct unless the PNG files where generated locally. - * Most of the time the output precision will be so low as to show - * significant banding in dark areas of the image. - * - * png_set_expand_16(pp); - * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_DEFAULT_sRGB); - * This is a somewhat more realistic Jim Blinn inspired approach. PNG files - * are assumed to have the sRGB encoding if not marked with a gamma value and - * the output is always 16 bits per component. This permits accurate scaling - * and processing of the data. If you know that your input PNG files were - * generated locally you might need to replace PNG_DEFAULT_sRGB with the - * correct value for your system. - * - * png_set_alpha_mode(pp, PNG_ALPHA_OPTIMIZED, PNG_DEFAULT_sRGB); - * If you just need to composite the PNG image onto an existing background - * and if you control the code that does this you can use the optimization - * setting. In this case you just copy completely opaque pixels to the - * output. For pixels that are not completely transparent (you just skip - * those) you do the composition math using png_composite or png_composite_16 - * below then encode the resultant 8-bit or 16-bit values to match the output - * encoding. - * - * Other cases - * If neither the PNG nor the standard linear encoding work for you because - * of the software or hardware you use then you have a big problem. The PNG - * case will probably result in halos around the image. The linear encoding - * will probably result in a washed out, too bright, image (it's actually too - * contrasty.) Try the ALPHA_OPTIMIZED mode above - this will probably - * substantially reduce the halos. Alternatively try: - * - * png_set_alpha_mode(pp, PNG_ALPHA_BROKEN, PNG_DEFAULT_sRGB); - * This option will also reduce the halos, but there will be slight dark - * halos round the opaque parts of the image where the background is light. - * In the OPTIMIZED mode the halos will be light halos where the background - * is dark. Take your pick - the halos are unavoidable unless you can get - * your hardware/software fixed! (The OPTIMIZED approach is slightly - * faster.) - * - * When the default gamma of PNG files doesn't match the output gamma. - * If you have PNG files with no gamma information png_set_alpha_mode allows - * you to provide a default gamma, but it also sets the ouput gamma to the - * matching value. If you know your PNG files have a gamma that doesn't - * match the output you can take advantage of the fact that - * png_set_alpha_mode always sets the output gamma but only sets the PNG - * default if it is not already set: - * - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); - * The first call sets both the default and the output gamma values, the - * second call overrides the output gamma without changing the default. This - * is easier than achieving the same effect with png_set_gamma. You must use - * PNG_ALPHA_PNG for the first call - internal checking in png_set_alpha will - * fire if more than one call to png_set_alpha_mode and png_set_background is - * made in the same read operation, however multiple calls with PNG_ALPHA_PNG - * are ignored. - */ - -#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED -PNG_EXPORT(36, void, png_set_strip_alpha, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) -PNG_EXPORT(37, void, png_set_swap_alpha, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) -PNG_EXPORT(38, void, png_set_invert_alpha, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) -/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ -PNG_EXPORT(39, void, png_set_filler, (png_structrp png_ptr, png_uint_32 filler, - int flags)); -/* The values of the PNG_FILLER_ defines should NOT be changed */ -# define PNG_FILLER_BEFORE 0 -# define PNG_FILLER_AFTER 1 -/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ -PNG_EXPORT(40, void, png_set_add_alpha, (png_structrp png_ptr, - png_uint_32 filler, int flags)); -#endif /* READ_FILLER || WRITE_FILLER */ - -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -/* Swap bytes in 16-bit depth files. */ -PNG_EXPORT(41, void, png_set_swap, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) -/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ -PNG_EXPORT(42, void, png_set_packing, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ - defined(PNG_WRITE_PACKSWAP_SUPPORTED) -/* Swap packing order of pixels in bytes. */ -PNG_EXPORT(43, void, png_set_packswap, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) -/* Converts files to legal bit depths. */ -PNG_EXPORT(44, void, png_set_shift, (png_structrp png_ptr, png_const_color_8p - true_bits)); -#endif - -#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ - defined(PNG_WRITE_INTERLACING_SUPPORTED) -/* Have the code handle the interlacing. Returns the number of passes. - * MUST be called before png_read_update_info or png_start_read_image, - * otherwise it will not have the desired effect. Note that it is still - * necessary to call png_read_row or png_read_rows png_get_image_height - * times for each pass. -*/ -PNG_EXPORT(45, int, png_set_interlace_handling, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -/* Invert monochrome files */ -PNG_EXPORT(46, void, png_set_invert_mono, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_BACKGROUND_SUPPORTED -/* Handle alpha and tRNS by replacing with a background color. Prior to - * libpng-1.5.4 this API must not be called before the PNG file header has been - * read. Doing so will result in unexpected behavior and possible warnings or - * errors if the PNG file contains a bKGD chunk. - */ -PNG_FP_EXPORT(47, void, png_set_background, (png_structrp png_ptr, - png_const_color_16p background_color, int background_gamma_code, - int need_expand, double background_gamma)) -PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structrp png_ptr, - png_const_color_16p background_color, int background_gamma_code, - int need_expand, png_fixed_point background_gamma)) -#endif -#ifdef PNG_READ_BACKGROUND_SUPPORTED -# define PNG_BACKGROUND_GAMMA_UNKNOWN 0 -# define PNG_BACKGROUND_GAMMA_SCREEN 1 -# define PNG_BACKGROUND_GAMMA_FILE 2 -# define PNG_BACKGROUND_GAMMA_UNIQUE 3 -#endif - -#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED -/* Scale a 16-bit depth file down to 8-bit, accurately. */ -PNG_EXPORT(229, void, png_set_scale_16, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED -#define PNG_READ_16_TO_8 SUPPORTED /* Name prior to 1.5.4 */ -/* Strip the second byte of information from a 16-bit depth file. */ -PNG_EXPORT(48, void, png_set_strip_16, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_QUANTIZE_SUPPORTED -/* Turn on quantizing, and reduce the palette to the number of colors - * available. - */ -PNG_EXPORT(49, void, png_set_quantize, (png_structrp png_ptr, - png_colorp palette, int num_palette, int maximum_colors, - png_const_uint_16p histogram, int full_quantize)); -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED -/* The threshold on gamma processing is configurable but hard-wired into the - * library. The following is the floating point variant. - */ -#define PNG_GAMMA_THRESHOLD (PNG_GAMMA_THRESHOLD_FIXED*.00001) - -/* Handle gamma correction. Screen_gamma=(display_exponent). - * NOTE: this API simply sets the screen and file gamma values. It will - * therefore override the value for gamma in a PNG file if it is called after - * the file header has been read - use with care - call before reading the PNG - * file for best results! - * - * These routines accept the same gamma values as png_set_alpha_mode (described - * above). The PNG_GAMMA_ defines and PNG_DEFAULT_sRGB can be passed to either - * API (floating point or fixed.) Notice, however, that the 'file_gamma' value - * is the inverse of a 'screen gamma' value. - */ -PNG_FP_EXPORT(50, void, png_set_gamma, (png_structrp png_ptr, - double screen_gamma, double override_file_gamma)) -PNG_FIXED_EXPORT(208, void, png_set_gamma_fixed, (png_structrp png_ptr, - png_fixed_point screen_gamma, png_fixed_point override_file_gamma)) -#endif - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -/* Set how many lines between output flushes - 0 for no flushing */ -PNG_EXPORT(51, void, png_set_flush, (png_structrp png_ptr, int nrows)); -/* Flush the current PNG output buffer */ -PNG_EXPORT(52, void, png_write_flush, (png_structrp png_ptr)); -#endif - -/* Optional update palette with requested transformations */ -PNG_EXPORT(53, void, png_start_read_image, (png_structrp png_ptr)); - -/* Optional call to update the users info structure */ -PNG_EXPORT(54, void, png_read_update_info, (png_structrp png_ptr, - png_inforp info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read one or more rows of image data. */ -PNG_EXPORT(55, void, png_read_rows, (png_structrp png_ptr, png_bytepp row, - png_bytepp display_row, png_uint_32 num_rows)); -#endif - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read a row of data. */ -PNG_EXPORT(56, void, png_read_row, (png_structrp png_ptr, png_bytep row, - png_bytep display_row)); -#endif - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the whole image into memory at once. */ -PNG_EXPORT(57, void, png_read_image, (png_structrp png_ptr, png_bytepp image)); -#endif - -/* Write a row of image data */ -PNG_EXPORT(58, void, png_write_row, (png_structrp png_ptr, - png_const_bytep row)); - -/* Write a few rows of image data: (*row) is not written; however, the type - * is declared as writeable to maintain compatibility with previous versions - * of libpng and to allow the 'display_row' array from read_rows to be passed - * unchanged to write_rows. - */ -PNG_EXPORT(59, void, png_write_rows, (png_structrp png_ptr, png_bytepp row, - png_uint_32 num_rows)); - -/* Write the image data */ -PNG_EXPORT(60, void, png_write_image, (png_structrp png_ptr, png_bytepp image)); - -/* Write the end of the PNG file. */ -PNG_EXPORT(61, void, png_write_end, (png_structrp png_ptr, - png_inforp info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the end of the PNG file. */ -PNG_EXPORT(62, void, png_read_end, (png_structrp png_ptr, png_inforp info_ptr)); -#endif - -/* Free any memory associated with the png_info_struct */ -PNG_EXPORT(63, void, png_destroy_info_struct, (png_const_structrp png_ptr, - png_infopp info_ptr_ptr)); - -/* Free any memory associated with the png_struct and the png_info_structs */ -PNG_EXPORT(64, void, png_destroy_read_struct, (png_structpp png_ptr_ptr, - png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); - -/* Free any memory associated with the png_struct and the png_info_structs */ -PNG_EXPORT(65, void, png_destroy_write_struct, (png_structpp png_ptr_ptr, - png_infopp info_ptr_ptr)); - -/* Set the libpng method of handling chunk CRC errors */ -PNG_EXPORT(66, void, png_set_crc_action, (png_structrp png_ptr, int crit_action, - int ancil_action)); - -/* Values for png_set_crc_action() say how to handle CRC errors in - * ancillary and critical chunks, and whether to use the data contained - * therein. Note that it is impossible to "discard" data in a critical - * chunk. For versions prior to 0.90, the action was always error/quit, - * whereas in version 0.90 and later, the action for CRC errors in ancillary - * chunks is warn/discard. These values should NOT be changed. - * - * value action:critical action:ancillary - */ -#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ -#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ -#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ -#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ -#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ -#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ - -#ifdef PNG_WRITE_SUPPORTED -/* These functions give the user control over the scan-line filtering in - * libpng and the compression methods used by zlib. These functions are - * mainly useful for testing, as the defaults should work with most users. - * Those users who are tight on memory or want faster performance at the - * expense of compression can modify them. See the compression library - * header file (zlib.h) for an explination of the compression functions. - */ - -/* Set the filtering method(s) used by libpng. Currently, the only valid - * value for "method" is 0. - */ -PNG_EXPORT(67, void, png_set_filter, (png_structrp png_ptr, int method, - int filters)); -#endif /* WRITE */ - -/* Flags for png_set_filter() to say which filters to use. The flags - * are chosen so that they don't conflict with real filter types - * below, in case they are supplied instead of the #defined constants. - * These values should NOT be changed. - */ -#define PNG_NO_FILTERS 0x00 -#define PNG_FILTER_NONE 0x08 -#define PNG_FILTER_SUB 0x10 -#define PNG_FILTER_UP 0x20 -#define PNG_FILTER_AVG 0x40 -#define PNG_FILTER_PAETH 0x80 -#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \ - PNG_FILTER_AVG | PNG_FILTER_PAETH) - -/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. - * These defines should NOT be changed. - */ -#define PNG_FILTER_VALUE_NONE 0 -#define PNG_FILTER_VALUE_SUB 1 -#define PNG_FILTER_VALUE_UP 2 -#define PNG_FILTER_VALUE_AVG 3 -#define PNG_FILTER_VALUE_PAETH 4 -#define PNG_FILTER_VALUE_LAST 5 - -#ifdef PNG_WRITE_SUPPORTED -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* DEPRECATED */ -PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structrp png_ptr, - int heuristic_method, int num_weights, png_const_doublep filter_weights, - png_const_doublep filter_costs)) -PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, - (png_structrp png_ptr, int heuristic_method, int num_weights, - png_const_fixed_point_p filter_weights, - png_const_fixed_point_p filter_costs)) -#endif /* WRITE_WEIGHTED_FILTER */ - -/* The following are no longer used and will be removed from libpng-1.7: */ -#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ -#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ -#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ -#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ - -/* Set the library compression level. Currently, valid values range from - * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 - * (0 - no compression, 9 - "maximal" compression). Note that tests have - * shown that zlib compression levels 3-6 usually perform as well as level 9 - * for PNG images, and do considerably fewer caclulations. In the future, - * these values may not correspond directly to the zlib compression levels. - */ -#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED -PNG_EXPORT(69, void, png_set_compression_level, (png_structrp png_ptr, - int level)); - -PNG_EXPORT(70, void, png_set_compression_mem_level, (png_structrp png_ptr, - int mem_level)); - -PNG_EXPORT(71, void, png_set_compression_strategy, (png_structrp png_ptr, - int strategy)); - -/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a - * smaller value of window_bits if it can do so safely. - */ -PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structrp png_ptr, - int window_bits)); - -PNG_EXPORT(73, void, png_set_compression_method, (png_structrp png_ptr, - int method)); -#endif /* WRITE_CUSTOMIZE_COMPRESSION */ - -#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED -/* Also set zlib parameters for compressing non-IDAT chunks */ -PNG_EXPORT(222, void, png_set_text_compression_level, (png_structrp png_ptr, - int level)); - -PNG_EXPORT(223, void, png_set_text_compression_mem_level, (png_structrp png_ptr, - int mem_level)); - -PNG_EXPORT(224, void, png_set_text_compression_strategy, (png_structrp png_ptr, - int strategy)); - -/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a - * smaller value of window_bits if it can do so safely. - */ -PNG_EXPORT(225, void, png_set_text_compression_window_bits, - (png_structrp png_ptr, int window_bits)); - -PNG_EXPORT(226, void, png_set_text_compression_method, (png_structrp png_ptr, - int method)); -#endif /* WRITE_CUSTOMIZE_ZTXT_COMPRESSION */ -#endif /* WRITE */ - -/* These next functions are called for input/output, memory, and error - * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, - * and call standard C I/O routines such as fread(), fwrite(), and - * fprintf(). These functions can be made to use other I/O routines - * at run time for those applications that need to handle I/O in a - * different manner by calling png_set_???_fn(). See libpng-manual.txt for - * more information. - */ - -#ifdef PNG_STDIO_SUPPORTED -/* Initialize the input/output for the PNG file to the default functions. */ -PNG_EXPORT(74, void, png_init_io, (png_structrp png_ptr, png_FILE_p fp)); -#endif - -/* Replace the (error and abort), and warning functions with user - * supplied functions. If no messages are to be printed you must still - * write and use replacement functions. The replacement error_fn should - * still do a longjmp to the last setjmp location if you are using this - * method of error handling. If error_fn or warning_fn is NULL, the - * default function will be used. - */ - -PNG_EXPORT(75, void, png_set_error_fn, (png_structrp png_ptr, - png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); - -/* Return the user pointer associated with the error functions */ -PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structrp png_ptr)); - -/* Replace the default data output functions with a user supplied one(s). - * If buffered output is not used, then output_flush_fn can be set to NULL. - * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time - * output_flush_fn will be ignored (and thus can be NULL). - * It is probably a mistake to use NULL for output_flush_fn if - * write_data_fn is not also NULL unless you have built libpng with - * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's - * default flush function, which uses the standard *FILE structure, will - * be used. - */ -PNG_EXPORT(77, void, png_set_write_fn, (png_structrp png_ptr, png_voidp io_ptr, - png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); - -/* Replace the default data input function with a user supplied one. */ -PNG_EXPORT(78, void, png_set_read_fn, (png_structrp png_ptr, png_voidp io_ptr, - png_rw_ptr read_data_fn)); - -/* Return the user pointer associated with the I/O functions */ -PNG_EXPORT(79, png_voidp, png_get_io_ptr, (png_const_structrp png_ptr)); - -PNG_EXPORT(80, void, png_set_read_status_fn, (png_structrp png_ptr, - png_read_status_ptr read_row_fn)); - -PNG_EXPORT(81, void, png_set_write_status_fn, (png_structrp png_ptr, - png_write_status_ptr write_row_fn)); - -#ifdef PNG_USER_MEM_SUPPORTED -/* Replace the default memory allocation functions with user supplied one(s). */ -PNG_EXPORT(82, void, png_set_mem_fn, (png_structrp png_ptr, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn)); -/* Return the user pointer associated with the memory functions */ -PNG_EXPORT(83, png_voidp, png_get_mem_ptr, (png_const_structrp png_ptr)); -#endif - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED -PNG_EXPORT(84, void, png_set_read_user_transform_fn, (png_structrp png_ptr, - png_user_transform_ptr read_user_transform_fn)); -#endif - -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED -PNG_EXPORT(85, void, png_set_write_user_transform_fn, (png_structrp png_ptr, - png_user_transform_ptr write_user_transform_fn)); -#endif - -#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED -PNG_EXPORT(86, void, png_set_user_transform_info, (png_structrp png_ptr, - png_voidp user_transform_ptr, int user_transform_depth, - int user_transform_channels)); -/* Return the user pointer associated with the user transform functions */ -PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr, - (png_const_structrp png_ptr)); -#endif - -#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED -/* Return information about the row currently being processed. Note that these - * APIs do not fail but will return unexpected results if called outside a user - * transform callback. Also note that when transforming an interlaced image the - * row number is the row number within the sub-image of the interlace pass, so - * the value will increase to the height of the sub-image (not the full image) - * then reset to 0 for the next pass. - * - * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to - * find the output pixel (x,y) given an interlaced sub-image pixel - * (row,col,pass). (See below for these macros.) - */ -PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structrp)); -PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structrp)); -#endif - -#ifdef PNG_READ_USER_CHUNKS_SUPPORTED -/* This callback is called only for *unknown* chunks. If - * PNG_HANDLE_AS_UNKNOWN_SUPPORTED is set then it is possible to set known - * chunks to be treated as unknown, however in this case the callback must do - * any processing required by the chunk (e.g. by calling the appropriate - * png_set_ APIs.) - * - * There is no write support - on write, by default, all the chunks in the - * 'unknown' list are written in the specified position. - * - * The integer return from the callback function is interpreted thus: - * - * negative: An error occurred; png_chunk_error will be called. - * zero: The chunk was not handled, the chunk will be saved. A critical - * chunk will cause an error at this point unless it is to be saved. - * positive: The chunk was handled, libpng will ignore/discard it. - * - * See "INTERACTION WTIH USER CHUNK CALLBACKS" below for important notes about - * how this behavior will change in libpng 1.7 - */ -PNG_EXPORT(88, void, png_set_read_user_chunk_fn, (png_structrp png_ptr, - png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -PNG_EXPORT(89, png_voidp, png_get_user_chunk_ptr, (png_const_structrp png_ptr)); -#endif - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -/* Sets the function callbacks for the push reader, and a pointer to a - * user-defined structure available to the callback functions. - */ -PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structrp png_ptr, - png_voidp progressive_ptr, png_progressive_info_ptr info_fn, - png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)); - -/* Returns the user pointer associated with the push read functions */ -PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, - (png_const_structrp png_ptr)); - -/* Function to be called when data becomes available */ -PNG_EXPORT(92, void, png_process_data, (png_structrp png_ptr, - png_inforp info_ptr, png_bytep buffer, png_size_t buffer_size)); - -/* A function which may be called *only* within png_process_data to stop the - * processing of any more data. The function returns the number of bytes - * remaining, excluding any that libpng has cached internally. A subsequent - * call to png_process_data must supply these bytes again. If the argument - * 'save' is set to true the routine will first save all the pending data and - * will always return 0. - */ -PNG_EXPORT(219, png_size_t, png_process_data_pause, (png_structrp, int save)); - -/* A function which may be called *only* outside (after) a call to - * png_process_data. It returns the number of bytes of data to skip in the - * input. Normally it will return 0, but if it returns a non-zero value the - * application must skip than number of bytes of input data and pass the - * following data to the next call to png_process_data. - */ -PNG_EXPORT(220, png_uint_32, png_process_data_skip, (png_structrp)); - -/* Function that combines rows. 'new_row' is a flag that should come from - * the callback and be non-NULL if anything needs to be done; the library - * stores its own version of the new data internally and ignores the passed - * in value. - */ -PNG_EXPORT(93, void, png_progressive_combine_row, (png_const_structrp png_ptr, - png_bytep old_row, png_const_bytep new_row)); -#endif /* PROGRESSIVE_READ */ - -PNG_EXPORTA(94, png_voidp, png_malloc, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); -/* Added at libpng version 1.4.0 */ -PNG_EXPORTA(95, png_voidp, png_calloc, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); - -/* Added at libpng version 1.2.4 */ -PNG_EXPORTA(96, png_voidp, png_malloc_warn, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); - -/* Frees a pointer allocated by png_malloc() */ -PNG_EXPORT(97, void, png_free, (png_const_structrp png_ptr, png_voidp ptr)); - -/* Free data that was allocated internally */ -PNG_EXPORT(98, void, png_free_data, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 free_me, int num)); - -/* Reassign responsibility for freeing existing data, whether allocated - * by libpng or by the application; this works on the png_info structure passed - * in, it does not change the state for other png_info structures. - * - * It is unlikely that this function works correctly as of 1.6.0 and using it - * may result either in memory leaks or double free of allocated data. - */ -PNG_EXPORT(99, void, png_data_freer, (png_const_structrp png_ptr, - png_inforp info_ptr, int freer, png_uint_32 mask)); - -/* Assignments for png_data_freer */ -#define PNG_DESTROY_WILL_FREE_DATA 1 -#define PNG_SET_WILL_FREE_DATA 1 -#define PNG_USER_WILL_FREE_DATA 2 -/* Flags for png_ptr->free_me and info_ptr->free_me */ -#define PNG_FREE_HIST 0x0008 -#define PNG_FREE_ICCP 0x0010 -#define PNG_FREE_SPLT 0x0020 -#define PNG_FREE_ROWS 0x0040 -#define PNG_FREE_PCAL 0x0080 -#define PNG_FREE_SCAL 0x0100 -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -# define PNG_FREE_UNKN 0x0200 -#endif -/* PNG_FREE_LIST 0x0400 removed in 1.6.0 because it is ignored */ -#define PNG_FREE_PLTE 0x1000 -#define PNG_FREE_TRNS 0x2000 -#define PNG_FREE_TEXT 0x4000 -#define PNG_FREE_ALL 0x7fff -#define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ - -#ifdef PNG_USER_MEM_SUPPORTED -PNG_EXPORTA(100, png_voidp, png_malloc_default, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED PNG_DEPRECATED); -PNG_EXPORTA(101, void, png_free_default, (png_const_structrp png_ptr, - png_voidp ptr), PNG_DEPRECATED); -#endif - -#ifdef PNG_ERROR_TEXT_SUPPORTED -/* Fatal error in PNG image of libpng - can't continue */ -PNG_EXPORTA(102, void, png_error, (png_const_structrp png_ptr, - png_const_charp error_message), PNG_NORETURN); - -/* The same, but the chunk name is prepended to the error string. */ -PNG_EXPORTA(103, void, png_chunk_error, (png_const_structrp png_ptr, - png_const_charp error_message), PNG_NORETURN); - -#else -/* Fatal error in PNG image of libpng - can't continue */ -PNG_EXPORTA(104, void, png_err, (png_const_structrp png_ptr), PNG_NORETURN); -# define png_error(s1,s2) png_err(s1) -# define png_chunk_error(s1,s2) png_err(s1) -#endif - -#ifdef PNG_WARNINGS_SUPPORTED -/* Non-fatal error in libpng. Can continue, but may have a problem. */ -PNG_EXPORT(105, void, png_warning, (png_const_structrp png_ptr, - png_const_charp warning_message)); - -/* Non-fatal error in libpng, chunk name is prepended to message. */ -PNG_EXPORT(106, void, png_chunk_warning, (png_const_structrp png_ptr, - png_const_charp warning_message)); -#else -# define png_warning(s1,s2) ((void)(s1)) -# define png_chunk_warning(s1,s2) ((void)(s1)) -#endif - -#ifdef PNG_BENIGN_ERRORS_SUPPORTED -/* Benign error in libpng. Can continue, but may have a problem. - * User can choose whether to handle as a fatal error or as a warning. */ -PNG_EXPORT(107, void, png_benign_error, (png_const_structrp png_ptr, - png_const_charp warning_message)); - -#ifdef PNG_READ_SUPPORTED -/* Same, chunk name is prepended to message (only during read) */ -PNG_EXPORT(108, void, png_chunk_benign_error, (png_const_structrp png_ptr, - png_const_charp warning_message)); -#endif - -PNG_EXPORT(109, void, png_set_benign_errors, - (png_structrp png_ptr, int allowed)); -#else -# ifdef PNG_ALLOW_BENIGN_ERRORS -# define png_benign_error png_warning -# define png_chunk_benign_error png_chunk_warning -# else -# define png_benign_error png_error -# define png_chunk_benign_error png_chunk_error -# endif -#endif - -/* The png_set_<chunk> functions are for storing values in the png_info_struct. - * Similarly, the png_get_<chunk> calls are used to read values from the - * png_info_struct, either storing the parameters in the passed variables, or - * setting pointers into the png_info_struct where the data is stored. The - * png_get_<chunk> functions return a non-zero value if the data was available - * in info_ptr, or return zero and do not change any of the parameters if the - * data was not available. - * - * These functions should be used instead of directly accessing png_info - * to avoid problems with future changes in the size and internal layout of - * png_info_struct. - */ -/* Returns "flag" if chunk data is valid in info_ptr. */ -PNG_EXPORT(110, png_uint_32, png_get_valid, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 flag)); - -/* Returns number of bytes needed to hold a transformed row. */ -PNG_EXPORT(111, png_size_t, png_get_rowbytes, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -#ifdef PNG_INFO_IMAGE_SUPPORTED -/* Returns row_pointers, which is an array of pointers to scanlines that was - * returned from png_read_png(). - */ -PNG_EXPORT(112, png_bytepp, png_get_rows, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Set row_pointers, which is an array of pointers to scanlines for use - * by png_write_png(). - */ -PNG_EXPORT(113, void, png_set_rows, (png_const_structrp png_ptr, - png_inforp info_ptr, png_bytepp row_pointers)); -#endif - -/* Returns number of color channels in image. */ -PNG_EXPORT(114, png_byte, png_get_channels, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -#ifdef PNG_EASY_ACCESS_SUPPORTED -/* Returns image width in pixels. */ -PNG_EXPORT(115, png_uint_32, png_get_image_width, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image height in pixels. */ -PNG_EXPORT(116, png_uint_32, png_get_image_height, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image bit_depth. */ -PNG_EXPORT(117, png_byte, png_get_bit_depth, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image color_type. */ -PNG_EXPORT(118, png_byte, png_get_color_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image filter_type. */ -PNG_EXPORT(119, png_byte, png_get_filter_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image interlace_type. */ -PNG_EXPORT(120, png_byte, png_get_interlace_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image compression_type. */ -PNG_EXPORT(121, png_byte, png_get_compression_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image resolution in pixels per meter, from pHYs chunk data. */ -PNG_EXPORT(122, png_uint_32, png_get_pixels_per_meter, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(123, png_uint_32, png_get_x_pixels_per_meter, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(124, png_uint_32, png_get_y_pixels_per_meter, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -/* Returns pixel aspect ratio, computed from pHYs chunk data. */ -PNG_FP_EXPORT(125, float, png_get_pixel_aspect_ratio, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -PNG_FIXED_EXPORT(210, png_fixed_point, png_get_pixel_aspect_ratio_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) - -/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ -PNG_EXPORT(126, png_int_32, png_get_x_offset_pixels, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(127, png_int_32, png_get_y_offset_pixels, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(128, png_int_32, png_get_x_offset_microns, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(129, png_int_32, png_get_y_offset_microns, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -#endif /* EASY_ACCESS */ - -#ifdef PNG_READ_SUPPORTED -/* Returns pointer to signature string read from PNG header */ -PNG_EXPORT(130, png_const_bytep, png_get_signature, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); -#endif - -#ifdef PNG_bKGD_SUPPORTED -PNG_EXPORT(131, png_uint_32, png_get_bKGD, (png_const_structrp png_ptr, - png_inforp info_ptr, png_color_16p *background)); -#endif - -#ifdef PNG_bKGD_SUPPORTED -PNG_EXPORT(132, void, png_set_bKGD, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_color_16p background)); -#endif - -#ifdef PNG_cHRM_SUPPORTED -PNG_FP_EXPORT(133, png_uint_32, png_get_cHRM, (png_const_structrp png_ptr, - png_const_inforp info_ptr, double *white_x, double *white_y, double *red_x, - double *red_y, double *green_x, double *green_y, double *blue_x, - double *blue_y)) -PNG_FP_EXPORT(230, png_uint_32, png_get_cHRM_XYZ, (png_const_structrp png_ptr, - png_const_inforp info_ptr, double *red_X, double *red_Y, double *red_Z, - double *green_X, double *green_Y, double *green_Z, double *blue_X, - double *blue_Y, double *blue_Z)) -PNG_FIXED_EXPORT(134, png_uint_32, png_get_cHRM_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_white_x, png_fixed_point *int_white_y, - png_fixed_point *int_red_x, png_fixed_point *int_red_y, - png_fixed_point *int_green_x, png_fixed_point *int_green_y, - png_fixed_point *int_blue_x, png_fixed_point *int_blue_y)) -PNG_FIXED_EXPORT(231, png_uint_32, png_get_cHRM_XYZ_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_red_X, png_fixed_point *int_red_Y, - png_fixed_point *int_red_Z, png_fixed_point *int_green_X, - png_fixed_point *int_green_Y, png_fixed_point *int_green_Z, - png_fixed_point *int_blue_X, png_fixed_point *int_blue_Y, - png_fixed_point *int_blue_Z)) -#endif - -#ifdef PNG_cHRM_SUPPORTED -PNG_FP_EXPORT(135, void, png_set_cHRM, (png_const_structrp png_ptr, - png_inforp info_ptr, - double white_x, double white_y, double red_x, double red_y, double green_x, - double green_y, double blue_x, double blue_y)) -PNG_FP_EXPORT(232, void, png_set_cHRM_XYZ, (png_const_structrp png_ptr, - png_inforp info_ptr, double red_X, double red_Y, double red_Z, - double green_X, double green_Y, double green_Z, double blue_X, - double blue_Y, double blue_Z)) -PNG_FIXED_EXPORT(136, void, png_set_cHRM_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, png_fixed_point int_white_x, - png_fixed_point int_white_y, png_fixed_point int_red_x, - png_fixed_point int_red_y, png_fixed_point int_green_x, - png_fixed_point int_green_y, png_fixed_point int_blue_x, - png_fixed_point int_blue_y)) -PNG_FIXED_EXPORT(233, void, png_set_cHRM_XYZ_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, png_fixed_point int_red_X, png_fixed_point int_red_Y, - png_fixed_point int_red_Z, png_fixed_point int_green_X, - png_fixed_point int_green_Y, png_fixed_point int_green_Z, - png_fixed_point int_blue_X, png_fixed_point int_blue_Y, - png_fixed_point int_blue_Z)) -#endif - -#ifdef PNG_gAMA_SUPPORTED -PNG_FP_EXPORT(137, png_uint_32, png_get_gAMA, (png_const_structrp png_ptr, - png_const_inforp info_ptr, double *file_gamma)) -PNG_FIXED_EXPORT(138, png_uint_32, png_get_gAMA_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_file_gamma)) -#endif - -#ifdef PNG_gAMA_SUPPORTED -PNG_FP_EXPORT(139, void, png_set_gAMA, (png_const_structrp png_ptr, - png_inforp info_ptr, double file_gamma)) -PNG_FIXED_EXPORT(140, void, png_set_gAMA_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, png_fixed_point int_file_gamma)) -#endif - -#ifdef PNG_hIST_SUPPORTED -PNG_EXPORT(141, png_uint_32, png_get_hIST, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_16p *hist)); -#endif - -#ifdef PNG_hIST_SUPPORTED -PNG_EXPORT(142, void, png_set_hIST, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_uint_16p hist)); -#endif - -PNG_EXPORT(143, png_uint_32, png_get_IHDR, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *width, png_uint_32 *height, - int *bit_depth, int *color_type, int *interlace_method, - int *compression_method, int *filter_method)); - -PNG_EXPORT(144, void, png_set_IHDR, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, - int color_type, int interlace_method, int compression_method, - int filter_method)); - -#ifdef PNG_oFFs_SUPPORTED -PNG_EXPORT(145, png_uint_32, png_get_oFFs, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, - int *unit_type)); -#endif - -#ifdef PNG_oFFs_SUPPORTED -PNG_EXPORT(146, void, png_set_oFFs, (png_const_structrp png_ptr, - png_inforp info_ptr, png_int_32 offset_x, png_int_32 offset_y, - int unit_type)); -#endif - -#ifdef PNG_pCAL_SUPPORTED -PNG_EXPORT(147, png_uint_32, png_get_pCAL, (png_const_structrp png_ptr, - png_inforp info_ptr, png_charp *purpose, png_int_32 *X0, - png_int_32 *X1, int *type, int *nparams, png_charp *units, - png_charpp *params)); -#endif - -#ifdef PNG_pCAL_SUPPORTED -PNG_EXPORT(148, void, png_set_pCAL, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_charp purpose, png_int_32 X0, png_int_32 X1, - int type, int nparams, png_const_charp units, png_charpp params)); -#endif - -#ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(149, png_uint_32, png_get_pHYs, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, - int *unit_type)); -#endif - -#ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(150, void, png_set_pHYs, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); -#endif - -PNG_EXPORT(151, png_uint_32, png_get_PLTE, (png_const_structrp png_ptr, - png_inforp info_ptr, png_colorp *palette, int *num_palette)); - -PNG_EXPORT(152, void, png_set_PLTE, (png_structrp png_ptr, - png_inforp info_ptr, png_const_colorp palette, int num_palette)); - -#ifdef PNG_sBIT_SUPPORTED -PNG_EXPORT(153, png_uint_32, png_get_sBIT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_color_8p *sig_bit)); -#endif - -#ifdef PNG_sBIT_SUPPORTED -PNG_EXPORT(154, void, png_set_sBIT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_color_8p sig_bit)); -#endif - -#ifdef PNG_sRGB_SUPPORTED -PNG_EXPORT(155, png_uint_32, png_get_sRGB, (png_const_structrp png_ptr, - png_const_inforp info_ptr, int *file_srgb_intent)); -#endif - -#ifdef PNG_sRGB_SUPPORTED -PNG_EXPORT(156, void, png_set_sRGB, (png_const_structrp png_ptr, - png_inforp info_ptr, int srgb_intent)); -PNG_EXPORT(157, void, png_set_sRGB_gAMA_and_cHRM, (png_const_structrp png_ptr, - png_inforp info_ptr, int srgb_intent)); -#endif - -#ifdef PNG_iCCP_SUPPORTED -PNG_EXPORT(158, png_uint_32, png_get_iCCP, (png_const_structrp png_ptr, - png_inforp info_ptr, png_charpp name, int *compression_type, - png_bytepp profile, png_uint_32 *proflen)); -#endif - -#ifdef PNG_iCCP_SUPPORTED -PNG_EXPORT(159, void, png_set_iCCP, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_charp name, int compression_type, - png_const_bytep profile, png_uint_32 proflen)); -#endif - -#ifdef PNG_sPLT_SUPPORTED -PNG_EXPORT(160, int, png_get_sPLT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_sPLT_tpp entries)); -#endif - -#ifdef PNG_sPLT_SUPPORTED -PNG_EXPORT(161, void, png_set_sPLT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_sPLT_tp entries, int nentries)); -#endif - -#ifdef PNG_TEXT_SUPPORTED -/* png_get_text also returns the number of text chunks in *num_text */ -PNG_EXPORT(162, int, png_get_text, (png_const_structrp png_ptr, - png_inforp info_ptr, png_textp *text_ptr, int *num_text)); -#endif - -/* Note while png_set_text() will accept a structure whose text, - * language, and translated keywords are NULL pointers, the structure - * returned by png_get_text will always contain regular - * zero-terminated C strings. They might be empty strings but - * they will never be NULL pointers. - */ - -#ifdef PNG_TEXT_SUPPORTED -PNG_EXPORT(163, void, png_set_text, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_textp text_ptr, int num_text)); -#endif - -#ifdef PNG_tIME_SUPPORTED -PNG_EXPORT(164, png_uint_32, png_get_tIME, (png_const_structrp png_ptr, - png_inforp info_ptr, png_timep *mod_time)); -#endif - -#ifdef PNG_tIME_SUPPORTED -PNG_EXPORT(165, void, png_set_tIME, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_timep mod_time)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -PNG_EXPORT(166, png_uint_32, png_get_tRNS, (png_const_structrp png_ptr, - png_inforp info_ptr, png_bytep *trans_alpha, int *num_trans, - png_color_16p *trans_color)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -PNG_EXPORT(167, void, png_set_tRNS, (png_structrp png_ptr, - png_inforp info_ptr, png_const_bytep trans_alpha, int num_trans, - png_const_color_16p trans_color)); -#endif - -#ifdef PNG_sCAL_SUPPORTED -PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, (png_const_structrp png_ptr, - png_const_inforp info_ptr, int *unit, double *width, double *height)) -#if defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) || \ - defined(PNG_FLOATING_POINT_SUPPORTED) -/* NOTE: this API is currently implemented using floating point arithmetic, - * consequently it can only be used on systems with floating point support. - * In any case the range of values supported by png_fixed_point is small and it - * is highly recommended that png_get_sCAL_s be used instead. - */ -PNG_FIXED_EXPORT(214, png_uint_32, png_get_sCAL_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, - png_fixed_point *width, png_fixed_point *height)) -#endif -PNG_EXPORT(169, png_uint_32, png_get_sCAL_s, - (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, - png_charpp swidth, png_charpp sheight)); - -PNG_FP_EXPORT(170, void, png_set_sCAL, (png_const_structrp png_ptr, - png_inforp info_ptr, int unit, double width, double height)) -PNG_FIXED_EXPORT(213, void, png_set_sCAL_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, int unit, png_fixed_point width, - png_fixed_point height)) -PNG_EXPORT(171, void, png_set_sCAL_s, (png_const_structrp png_ptr, - png_inforp info_ptr, int unit, - png_const_charp swidth, png_const_charp sheight)); -#endif /* sCAL */ - -#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED -/* Provide the default handling for all unknown chunks or, optionally, for - * specific unknown chunks. - * - * NOTE: prior to 1.6.0 the handling specified for particular chunks on read was - * ignored and the default was used, the per-chunk setting only had an effect on - * write. If you wish to have chunk-specific handling on read in code that must - * work on earlier versions you must use a user chunk callback to specify the - * desired handling (keep or discard.) - * - * The 'keep' parameter is a PNG_HANDLE_CHUNK_ value as listed below. The - * parameter is interpreted as follows: - * - * READ: - * PNG_HANDLE_CHUNK_AS_DEFAULT: - * Known chunks: do normal libpng processing, do not keep the chunk (but - * see the comments below about PNG_HANDLE_AS_UNKNOWN_SUPPORTED) - * Unknown chunks: for a specific chunk use the global default, when used - * as the default discard the chunk data. - * PNG_HANDLE_CHUNK_NEVER: - * Discard the chunk data. - * PNG_HANDLE_CHUNK_IF_SAFE: - * Keep the chunk data if the chunk is not critical else raise a chunk - * error. - * PNG_HANDLE_CHUNK_ALWAYS: - * Keep the chunk data. - * - * If the chunk data is saved it can be retrieved using png_get_unknown_chunks, - * below. Notice that specifying "AS_DEFAULT" as a global default is equivalent - * to specifying "NEVER", however when "AS_DEFAULT" is used for specific chunks - * it simply resets the behavior to the libpng default. - * - * INTERACTION WTIH USER CHUNK CALLBACKS: - * The per-chunk handling is always used when there is a png_user_chunk_ptr - * callback and the callback returns 0; the chunk is then always stored *unless* - * it is critical and the per-chunk setting is other than ALWAYS. Notice that - * the global default is *not* used in this case. (In effect the per-chunk - * value is incremented to at least IF_SAFE.) - * - * IMPORTANT NOTE: this behavior will change in libpng 1.7 - the global and - * per-chunk defaults will be honored. If you want to preserve the current - * behavior when your callback returns 0 you must set PNG_HANDLE_CHUNK_IF_SAFE - * as the default - if you don't do this libpng 1.6 will issue a warning. - * - * If you want unhandled unknown chunks to be discarded in libpng 1.6 and - * earlier simply return '1' (handled). - * - * PNG_HANDLE_AS_UNKNOWN_SUPPORTED: - * If this is *not* set known chunks will always be handled by libpng and - * will never be stored in the unknown chunk list. Known chunks listed to - * png_set_keep_unknown_chunks will have no effect. If it is set then known - * chunks listed with a keep other than AS_DEFAULT will *never* be processed - * by libpng, in addition critical chunks must either be processed by the - * callback or saved. - * - * The IHDR and IEND chunks must not be listed. Because this turns off the - * default handling for chunks that would otherwise be recognized the - * behavior of libpng transformations may well become incorrect! - * - * WRITE: - * When writing chunks the options only apply to the chunks specified by - * png_set_unknown_chunks (below), libpng will *always* write known chunks - * required by png_set_ calls and will always write the core critical chunks - * (as required for PLTE). - * - * Each chunk in the png_set_unknown_chunks list is looked up in the - * png_set_keep_unknown_chunks list to find the keep setting, this is then - * interpreted as follows: - * - * PNG_HANDLE_CHUNK_AS_DEFAULT: - * Write safe-to-copy chunks and write other chunks if the global - * default is set to _ALWAYS, otherwise don't write this chunk. - * PNG_HANDLE_CHUNK_NEVER: - * Do not write the chunk. - * PNG_HANDLE_CHUNK_IF_SAFE: - * Write the chunk if it is safe-to-copy, otherwise do not write it. - * PNG_HANDLE_CHUNK_ALWAYS: - * Write the chunk. - * - * Note that the default behavior is effectively the opposite of the read case - - * in read unknown chunks are not stored by default, in write they are written - * by default. Also the behavior of PNG_HANDLE_CHUNK_IF_SAFE is very different - * - on write the safe-to-copy bit is checked, on read the critical bit is - * checked and on read if the chunk is critical an error will be raised. - * - * num_chunks: - * =========== - * If num_chunks is positive, then the "keep" parameter specifies the manner - * for handling only those chunks appearing in the chunk_list array, - * otherwise the chunk list array is ignored. - * - * If num_chunks is 0 the "keep" parameter specifies the default behavior for - * unknown chunks, as described above. - * - * If num_chunks is negative, then the "keep" parameter specifies the manner - * for handling all unknown chunks plus all chunks recognized by libpng - * except for the IHDR, PLTE, tRNS, IDAT, and IEND chunks (which continue to - * be processed by libpng. - */ -PNG_EXPORT(172, void, png_set_keep_unknown_chunks, (png_structrp png_ptr, - int keep, png_const_bytep chunk_list, int num_chunks)); - -/* The "keep" PNG_HANDLE_CHUNK_ parameter for the specified chunk is returned; - * the result is therefore true (non-zero) if special handling is required, - * false for the default handling. - */ -PNG_EXPORT(173, int, png_handle_as_unknown, (png_const_structrp png_ptr, - png_const_bytep chunk_name)); -#endif - -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -PNG_EXPORT(174, void, png_set_unknown_chunks, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_unknown_chunkp unknowns, - int num_unknowns)); - /* NOTE: prior to 1.6.0 this routine set the 'location' field of the added - * unknowns to the location currently stored in the png_struct. This is - * invariably the wrong value on write. To fix this call the following API - * for each chunk in the list with the correct location. If you know your - * code won't be compiled on earlier versions you can rely on - * png_set_unknown_chunks(write-ptr, png_get_unknown_chunks(read-ptr)) doing - * the correct thing. - */ - -PNG_EXPORT(175, void, png_set_unknown_chunk_location, - (png_const_structrp png_ptr, png_inforp info_ptr, int chunk, int location)); - -PNG_EXPORT(176, int, png_get_unknown_chunks, (png_const_structrp png_ptr, - png_inforp info_ptr, png_unknown_chunkpp entries)); -#endif - -/* Png_free_data() will turn off the "valid" flag for anything it frees. - * If you need to turn it off for a chunk that your application has freed, - * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); - */ -PNG_EXPORT(177, void, png_set_invalid, (png_const_structrp png_ptr, - png_inforp info_ptr, int mask)); - -#ifdef PNG_INFO_IMAGE_SUPPORTED -/* The "params" pointer is currently not used and is for future expansion. */ -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -PNG_EXPORT(178, void, png_read_png, (png_structrp png_ptr, png_inforp info_ptr, - int transforms, png_voidp params)); -#endif -#ifdef PNG_WRITE_SUPPORTED -PNG_EXPORT(179, void, png_write_png, (png_structrp png_ptr, png_inforp info_ptr, - int transforms, png_voidp params)); -#endif -#endif - -PNG_EXPORT(180, png_const_charp, png_get_copyright, - (png_const_structrp png_ptr)); -PNG_EXPORT(181, png_const_charp, png_get_header_ver, - (png_const_structrp png_ptr)); -PNG_EXPORT(182, png_const_charp, png_get_header_version, - (png_const_structrp png_ptr)); -PNG_EXPORT(183, png_const_charp, png_get_libpng_ver, - (png_const_structrp png_ptr)); - -#ifdef PNG_MNG_FEATURES_SUPPORTED -PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structrp png_ptr, - png_uint_32 mng_features_permitted)); -#endif - -/* For use in png_set_keep_unknown, added to version 1.2.6 */ -#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 -#define PNG_HANDLE_CHUNK_NEVER 1 -#define PNG_HANDLE_CHUNK_IF_SAFE 2 -#define PNG_HANDLE_CHUNK_ALWAYS 3 -#define PNG_HANDLE_CHUNK_LAST 4 - -/* Strip the prepended error numbers ("#nnn ") from error and warning - * messages before passing them to the error or warning handler. - */ -#ifdef PNG_ERROR_NUMBERS_SUPPORTED -PNG_EXPORT(185, void, png_set_strip_error_numbers, (png_structrp png_ptr, - png_uint_32 strip_mode)); -#endif - -/* Added in libpng-1.2.6 */ -#ifdef PNG_SET_USER_LIMITS_SUPPORTED -PNG_EXPORT(186, void, png_set_user_limits, (png_structrp png_ptr, - png_uint_32 user_width_max, png_uint_32 user_height_max)); -PNG_EXPORT(187, png_uint_32, png_get_user_width_max, - (png_const_structrp png_ptr)); -PNG_EXPORT(188, png_uint_32, png_get_user_height_max, - (png_const_structrp png_ptr)); -/* Added in libpng-1.4.0 */ -PNG_EXPORT(189, void, png_set_chunk_cache_max, (png_structrp png_ptr, - png_uint_32 user_chunk_cache_max)); -PNG_EXPORT(190, png_uint_32, png_get_chunk_cache_max, - (png_const_structrp png_ptr)); -/* Added in libpng-1.4.1 */ -PNG_EXPORT(191, void, png_set_chunk_malloc_max, (png_structrp png_ptr, - png_alloc_size_t user_chunk_cache_max)); -PNG_EXPORT(192, png_alloc_size_t, png_get_chunk_malloc_max, - (png_const_structrp png_ptr)); -#endif - -#if defined(PNG_INCH_CONVERSIONS_SUPPORTED) -PNG_EXPORT(193, png_uint_32, png_get_pixels_per_inch, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -PNG_EXPORT(194, png_uint_32, png_get_x_pixels_per_inch, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -PNG_EXPORT(195, png_uint_32, png_get_y_pixels_per_inch, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -PNG_FP_EXPORT(196, float, png_get_x_offset_inches, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ -PNG_FIXED_EXPORT(211, png_fixed_point, png_get_x_offset_inches_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -#endif - -PNG_FP_EXPORT(197, float, png_get_y_offset_inches, (png_const_structrp png_ptr, - png_const_inforp info_ptr)) -#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ -PNG_FIXED_EXPORT(212, png_fixed_point, png_get_y_offset_inches_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -#endif - -# ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(198, png_uint_32, png_get_pHYs_dpi, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, - int *unit_type)); -# endif /* pHYs */ -#endif /* INCH_CONVERSIONS */ - -/* Added in libpng-1.4.0 */ -#ifdef PNG_IO_STATE_SUPPORTED -PNG_EXPORT(199, png_uint_32, png_get_io_state, (png_const_structrp png_ptr)); - -/* Removed from libpng 1.6; use png_get_io_chunk_type. */ -PNG_REMOVED(200, png_const_bytep, png_get_io_chunk_name, (png_structrp png_ptr), - PNG_DEPRECATED) - -PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, - (png_const_structrp png_ptr)); - -/* The flags returned by png_get_io_state() are the following: */ -# define PNG_IO_NONE 0x0000 /* no I/O at this moment */ -# define PNG_IO_READING 0x0001 /* currently reading */ -# define PNG_IO_WRITING 0x0002 /* currently writing */ -# define PNG_IO_SIGNATURE 0x0010 /* currently at the file signature */ -# define PNG_IO_CHUNK_HDR 0x0020 /* currently at the chunk header */ -# define PNG_IO_CHUNK_DATA 0x0040 /* currently at the chunk data */ -# define PNG_IO_CHUNK_CRC 0x0080 /* currently at the chunk crc */ -# define PNG_IO_MASK_OP 0x000f /* current operation: reading/writing */ -# define PNG_IO_MASK_LOC 0x00f0 /* current location: sig/hdr/data/crc */ -#endif /* IO_STATE */ - -/* Interlace support. The following macros are always defined so that if - * libpng interlace handling is turned off the macros may be used to handle - * interlaced images within the application. - */ -#define PNG_INTERLACE_ADAM7_PASSES 7 - -/* Two macros to return the first row and first column of the original, - * full, image which appears in a given pass. 'pass' is in the range 0 - * to 6 and the result is in the range 0 to 7. - */ -#define PNG_PASS_START_ROW(pass) (((1&~(pass))<<(3-((pass)>>1)))&7) -#define PNG_PASS_START_COL(pass) (((1& (pass))<<(3-(((pass)+1)>>1)))&7) - -/* A macro to return the offset between pixels in the output row for a pair of - * pixels in the input - effectively the inverse of the 'COL_SHIFT' macro that - * follows. Note that ROW_OFFSET is the offset from one row to the next whereas - * COL_OFFSET is from one column to the next, within a row. - */ -#define PNG_PASS_ROW_OFFSET(pass) ((pass)>2?(8>>(((pass)-1)>>1)):8) -#define PNG_PASS_COL_OFFSET(pass) (1<<((7-(pass))>>1)) - -/* Two macros to help evaluate the number of rows or columns in each - * pass. This is expressed as a shift - effectively log2 of the number or - * rows or columns in each 8x8 tile of the original image. - */ -#define PNG_PASS_ROW_SHIFT(pass) ((pass)>2?(8-(pass))>>1:3) -#define PNG_PASS_COL_SHIFT(pass) ((pass)>1?(7-(pass))>>1:3) - -/* Hence two macros to determine the number of rows or columns in a given - * pass of an image given its height or width. In fact these macros may - * return non-zero even though the sub-image is empty, because the other - * dimension may be empty for a small image. - */ -#define PNG_PASS_ROWS(height, pass) (((height)+(((1<<PNG_PASS_ROW_SHIFT(pass))\ - -1)-PNG_PASS_START_ROW(pass)))>>PNG_PASS_ROW_SHIFT(pass)) -#define PNG_PASS_COLS(width, pass) (((width)+(((1<<PNG_PASS_COL_SHIFT(pass))\ - -1)-PNG_PASS_START_COL(pass)))>>PNG_PASS_COL_SHIFT(pass)) - -/* For the reader row callbacks (both progressive and sequential) it is - * necessary to find the row in the output image given a row in an interlaced - * image, so two more macros: - */ -#define PNG_ROW_FROM_PASS_ROW(y_in, pass) \ - (((y_in)<<PNG_PASS_ROW_SHIFT(pass))+PNG_PASS_START_ROW(pass)) -#define PNG_COL_FROM_PASS_COL(x_in, pass) \ - (((x_in)<<PNG_PASS_COL_SHIFT(pass))+PNG_PASS_START_COL(pass)) - -/* Two macros which return a boolean (0 or 1) saying whether the given row - * or column is in a particular pass. These use a common utility macro that - * returns a mask for a given pass - the offset 'off' selects the row or - * column version. The mask has the appropriate bit set for each column in - * the tile. - */ -#define PNG_PASS_MASK(pass,off) ( \ - ((0x110145AF>>(((7-(off))-(pass))<<2)) & 0xF) | \ - ((0x01145AF0>>(((7-(off))-(pass))<<2)) & 0xF0)) - -#define PNG_ROW_IN_INTERLACE_PASS(y, pass) \ - ((PNG_PASS_MASK(pass,0) >> ((y)&7)) & 1) -#define PNG_COL_IN_INTERLACE_PASS(x, pass) \ - ((PNG_PASS_MASK(pass,1) >> ((x)&7)) & 1) - -#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED -/* With these routines we avoid an integer divide, which will be slower on - * most machines. However, it does take more operations than the corresponding - * divide method, so it may be slower on a few RISC systems. There are two - * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. - * - * Note that the rounding factors are NOT supposed to be the same! 128 and - * 32768 are correct for the NODIV code; 127 and 32767 are correct for the - * standard method. - * - * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] - */ - - /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ - -# define png_composite(composite, fg, alpha, bg) \ - { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \ - * (png_uint_16)(alpha) \ - + (png_uint_16)(bg)*(png_uint_16)(255 \ - - (png_uint_16)(alpha)) + 128); \ - (composite) = (png_byte)(((temp + (temp >> 8)) >> 8) & 0xff); } - -# define png_composite_16(composite, fg, alpha, bg) \ - { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) \ - * (png_uint_32)(alpha) \ - + (png_uint_32)(bg)*(65535 \ - - (png_uint_32)(alpha)) + 32768); \ - (composite) = (png_uint_16)(0xffff & ((temp + (temp >> 16)) >> 16)); } - -#else /* Standard method using integer division */ - -# define png_composite(composite, fg, alpha, bg) \ - (composite) = \ - (png_byte)(0xff & (((png_uint_16)(fg) * (png_uint_16)(alpha) + \ - (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ - 127) / 255)) - -# define png_composite_16(composite, fg, alpha, bg) \ - (composite) = \ - (png_uint_16)(0xffff & (((png_uint_32)(fg) * (png_uint_32)(alpha) + \ - (png_uint_32)(bg)*(png_uint_32)(65535 - (png_uint_32)(alpha)) + \ - 32767) / 65535)) -#endif /* READ_COMPOSITE_NODIV */ - -#ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(201, png_uint_32, png_get_uint_32, (png_const_bytep buf)); -PNG_EXPORT(202, png_uint_16, png_get_uint_16, (png_const_bytep buf)); -PNG_EXPORT(203, png_int_32, png_get_int_32, (png_const_bytep buf)); -#endif - -PNG_EXPORT(204, png_uint_32, png_get_uint_31, (png_const_structrp png_ptr, - png_const_bytep buf)); -/* No png_get_int_16 -- may be added if there's a real need for it. */ - -/* Place a 32-bit number into a buffer in PNG byte order (big-endian). */ -#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(205, void, png_save_uint_32, (png_bytep buf, png_uint_32 i)); -#endif -#ifdef PNG_SAVE_INT_32_SUPPORTED -PNG_EXPORT(206, void, png_save_int_32, (png_bytep buf, png_int_32 i)); -#endif - -/* Place a 16-bit number into a buffer in PNG byte order. - * The parameter is declared unsigned int, not png_uint_16, - * just to avoid potential problems on pre-ANSI C compilers. - */ -#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); -/* No png_save_int_16 -- may be added if there's a real need for it. */ -#endif - -#ifdef PNG_USE_READ_MACROS -/* Inline macros to do direct reads of bytes from the input buffer. - * The png_get_int_32() routine assumes we are using two's complement - * format for negative values, which is almost certainly true. - */ -# define PNG_get_uint_32(buf) \ - (((png_uint_32)(*(buf)) << 24) + \ - ((png_uint_32)(*((buf) + 1)) << 16) + \ - ((png_uint_32)(*((buf) + 2)) << 8) + \ - ((png_uint_32)(*((buf) + 3)))) - - /* From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the - * function) incorrectly returned a value of type png_uint_32. - */ -# define PNG_get_uint_16(buf) \ - ((png_uint_16) \ - (((unsigned int)(*(buf)) << 8) + \ - ((unsigned int)(*((buf) + 1))))) - -# define PNG_get_int_32(buf) \ - ((png_int_32)((*(buf) & 0x80) \ - ? -((png_int_32)((png_get_uint_32(buf) ^ 0xffffffffL) + 1)) \ - : (png_int_32)png_get_uint_32(buf))) - - /* If PNG_PREFIX is defined the same thing as below happens in pnglibconf.h, - * but defining a macro name prefixed with PNG_PREFIX. - */ -# ifndef PNG_PREFIX -# define png_get_uint_32(buf) PNG_get_uint_32(buf) -# define png_get_uint_16(buf) PNG_get_uint_16(buf) -# define png_get_int_32(buf) PNG_get_int_32(buf) -# endif -#else -# ifdef PNG_PREFIX - /* No macros; revert to the (redefined) function */ -# define PNG_get_uint_32 (png_get_uint_32) -# define PNG_get_uint_16 (png_get_uint_16) -# define PNG_get_int_32 (png_get_int_32) -# endif -#endif - -#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) || \ - defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) -/******************************************************************************* - * SIMPLIFIED API - ******************************************************************************* - * - * Please read the documentation in libpng-manual.txt (TODO: write said - * documentation) if you don't understand what follows. - * - * The simplified API hides the details of both libpng and the PNG file format - * itself. It allows PNG files to be read into a very limited number of - * in-memory bitmap formats or to be written from the same formats. If these - * formats do not accomodate your needs then you can, and should, use the more - * sophisticated APIs above - these support a wide variety of in-memory formats - * and a wide variety of sophisticated transformations to those formats as well - * as a wide variety of APIs to manipulate ancillary information. - * - * To read a PNG file using the simplified API: - * - * 1) Declare a 'png_image' structure (see below) on the stack, set the - * version field to PNG_IMAGE_VERSION and the 'opaque' pointer to NULL - * (this is REQUIRED, your program may crash if you don't do it.) - * 2) Call the appropriate png_image_begin_read... function. - * 3) Set the png_image 'format' member to the required sample format. - * 4) Allocate a buffer for the image and, if required, the color-map. - * 5) Call png_image_finish_read to read the image and, if required, the - * color-map into your buffers. - * - * There are no restrictions on the format of the PNG input itself; all valid - * color types, bit depths, and interlace methods are acceptable, and the - * input image is transformed as necessary to the requested in-memory format - * during the png_image_finish_read() step. The only caveat is that if you - * request a color-mapped image from a PNG that is full-color or makes - * complex use of an alpha channel the transformation is extremely lossy and the - * result may look terrible. - * - * To write a PNG file using the simplified API: - * - * 1) Declare a 'png_image' structure on the stack and memset() it to all zero. - * 2) Initialize the members of the structure that describe the image, setting - * the 'format' member to the format of the image samples. - * 3) Call the appropriate png_image_write... function with a pointer to the - * image and, if necessary, the color-map to write the PNG data. - * - * png_image is a structure that describes the in-memory format of an image - * when it is being read or defines the in-memory format of an image that you - * need to write: - */ -#define PNG_IMAGE_VERSION 1 - -typedef struct png_control *png_controlp; -typedef struct -{ - png_controlp opaque; /* Initialize to NULL, free with png_image_free */ - png_uint_32 version; /* Set to PNG_IMAGE_VERSION */ - png_uint_32 width; /* Image width in pixels (columns) */ - png_uint_32 height; /* Image height in pixels (rows) */ - png_uint_32 format; /* Image format as defined below */ - png_uint_32 flags; /* A bit mask containing informational flags */ - png_uint_32 colormap_entries; - /* Number of entries in the color-map */ - - /* In the event of an error or warning the following field will be set to a - * non-zero value and the 'message' field will contain a '\0' terminated - * string with the libpng error or warning message. If both warnings and - * an error were encountered, only the error is recorded. If there - * are multiple warnings, only the first one is recorded. - * - * The upper 30 bits of this value are reserved, the low two bits contain - * a value as follows: - */ -# define PNG_IMAGE_WARNING 1 -# define PNG_IMAGE_ERROR 2 - /* - * The result is a two-bit code such that a value more than 1 indicates - * a failure in the API just called: - * - * 0 - no warning or error - * 1 - warning - * 2 - error - * 3 - error preceded by warning - */ -# define PNG_IMAGE_FAILED(png_cntrl) ((((png_cntrl).warning_or_error)&0x03)>1) - - png_uint_32 warning_or_error; - - char message[64]; -} png_image, *png_imagep; - -/* The samples of the image have one to four channels whose components have - * original values in the range 0 to 1.0: - * - * 1: A single gray or luminance channel (G). - * 2: A gray/luminance channel and an alpha channel (GA). - * 3: Three red, green, blue color channels (RGB). - * 4: Three color channels and an alpha channel (RGBA). - * - * The components are encoded in one of two ways: - * - * a) As a small integer, value 0..255, contained in a single byte. For the - * alpha channel the original value is simply value/255. For the color or - * luminance channels the value is encoded according to the sRGB specification - * and matches the 8-bit format expected by typical display devices. - * - * The color/gray channels are not scaled (pre-multiplied) by the alpha - * channel and are suitable for passing to color management software. - * - * b) As a value in the range 0..65535, contained in a 2-byte integer. All - * channels can be converted to the original value by dividing by 65535; all - * channels are linear. Color channels use the RGB encoding (RGB end-points) of - * the sRGB specification. This encoding is identified by the - * PNG_FORMAT_FLAG_LINEAR flag below. - * - * When the simplified API needs to convert between sRGB and linear colorspaces, - * the actual sRGB transfer curve defined in the sRGB specification (see the - * article at http://en.wikipedia.org/wiki/SRGB) is used, not the gamma=1/2.2 - * approximation used elsewhere in libpng. - * - * When an alpha channel is present it is expected to denote pixel coverage - * of the color or luminance channels and is returned as an associated alpha - * channel: the color/gray channels are scaled (pre-multiplied) by the alpha - * value. - * - * The samples are either contained directly in the image data, between 1 and 8 - * bytes per pixel according to the encoding, or are held in a color-map indexed - * by bytes in the image data. In the case of a color-map the color-map entries - * are individual samples, encoded as above, and the image data has one byte per - * pixel to select the relevant sample from the color-map. - */ - -/* PNG_FORMAT_* - * - * #defines to be used in png_image::format. Each #define identifies a - * particular layout of sample data and, if present, alpha values. There are - * separate defines for each of the two component encodings. - * - * A format is built up using single bit flag values. All combinations are - * valid. Formats can be built up from the flag values or you can use one of - * the predefined values below. When testing formats always use the FORMAT_FLAG - * macros to test for individual features - future versions of the library may - * add new flags. - * - * When reading or writing color-mapped images the format should be set to the - * format of the entries in the color-map then png_image_{read,write}_colormap - * called to read or write the color-map and set the format correctly for the - * image data. Do not set the PNG_FORMAT_FLAG_COLORMAP bit directly! - * - * NOTE: libpng can be built with particular features disabled, if you see - * compiler errors because the definition of one of the following flags has been - * compiled out it is because libpng does not have the required support. It is - * possible, however, for the libpng configuration to enable the format on just - * read or just write; in that case you may see an error at run time. You can - * guard against this by checking for the definition of the appropriate - * "_SUPPORTED" macro, one of: - * - * PNG_SIMPLIFIED_{READ,WRITE}_{BGR,AFIRST}_SUPPORTED - */ -#define PNG_FORMAT_FLAG_ALPHA 0x01U /* format with an alpha channel */ -#define PNG_FORMAT_FLAG_COLOR 0x02U /* color format: otherwise grayscale */ -#define PNG_FORMAT_FLAG_LINEAR 0x04U /* 2 byte channels else 1 byte */ -#define PNG_FORMAT_FLAG_COLORMAP 0x08U /* image data is color-mapped */ - -#ifdef PNG_FORMAT_BGR_SUPPORTED -# define PNG_FORMAT_FLAG_BGR 0x10U /* BGR colors, else order is RGB */ -#endif - -#ifdef PNG_FORMAT_AFIRST_SUPPORTED -# define PNG_FORMAT_FLAG_AFIRST 0x20U /* alpha channel comes first */ -#endif - -/* Commonly used formats have predefined macros. - * - * First the single byte (sRGB) formats: - */ -#define PNG_FORMAT_GRAY 0 -#define PNG_FORMAT_GA PNG_FORMAT_FLAG_ALPHA -#define PNG_FORMAT_AG (PNG_FORMAT_GA|PNG_FORMAT_FLAG_AFIRST) -#define PNG_FORMAT_RGB PNG_FORMAT_FLAG_COLOR -#define PNG_FORMAT_BGR (PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_BGR) -#define PNG_FORMAT_RGBA (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_ALPHA) -#define PNG_FORMAT_ARGB (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_AFIRST) -#define PNG_FORMAT_BGRA (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_ALPHA) -#define PNG_FORMAT_ABGR (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_AFIRST) - -/* Then the linear 2-byte formats. When naming these "Y" is used to - * indicate a luminance (gray) channel. - */ -#define PNG_FORMAT_LINEAR_Y PNG_FORMAT_FLAG_LINEAR -#define PNG_FORMAT_LINEAR_Y_ALPHA (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_ALPHA) -#define PNG_FORMAT_LINEAR_RGB (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR) -#define PNG_FORMAT_LINEAR_RGB_ALPHA \ - (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA) - -/* With color-mapped formats the image data is one byte for each pixel, the byte - * is an index into the color-map which is formatted as above. To obtain a - * color-mapped format it is sufficient just to add the PNG_FOMAT_FLAG_COLORMAP - * to one of the above definitions, or you can use one of the definitions below. - */ -#define PNG_FORMAT_RGB_COLORMAP (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_BGR_COLORMAP (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_RGBA_COLORMAP (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_ARGB_COLORMAP (PNG_FORMAT_ARGB|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_BGRA_COLORMAP (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_ABGR_COLORMAP (PNG_FORMAT_ABGR|PNG_FORMAT_FLAG_COLORMAP) - -/* PNG_IMAGE macros - * - * These are convenience macros to derive information from a png_image - * structure. The PNG_IMAGE_SAMPLE_ macros return values appropriate to the - * actual image sample values - either the entries in the color-map or the - * pixels in the image. The PNG_IMAGE_PIXEL_ macros return corresponding values - * for the pixels and will always return 1 for color-mapped formats. The - * remaining macros return information about the rows in the image and the - * complete image. - * - * NOTE: All the macros that take a png_image::format parameter are compile time - * constants if the format parameter is, itself, a constant. Therefore these - * macros can be used in array declarations and case labels where required. - * Similarly the macros are also pre-processor constants (sizeof is not used) so - * they can be used in #if tests. - * - * First the information about the samples. - */ -#define PNG_IMAGE_SAMPLE_CHANNELS(fmt)\ - (((fmt)&(PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA))+1) - /* Return the total number of channels in a given format: 1..4 */ - -#define PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)\ - ((((fmt) & PNG_FORMAT_FLAG_LINEAR) >> 2)+1) - /* Return the size in bytes of a single component of a pixel or color-map - * entry (as appropriate) in the image: 1 or 2. - */ - -#define PNG_IMAGE_SAMPLE_SIZE(fmt)\ - (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)) - /* This is the size of the sample data for one sample. If the image is - * color-mapped it is the size of one color-map entry (and image pixels are - * one byte in size), otherwise it is the size of one image pixel. - */ - -#define PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(fmt)\ - (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * 256) - /* The maximum size of the color-map required by the format expressed in a - * count of components. This can be used to compile-time allocate a - * color-map: - * - * png_uint_16 colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(linear_fmt)]; - * - * png_byte colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(sRGB_fmt)]; - * - * Alternatively use the PNG_IMAGE_COLORMAP_SIZE macro below to use the - * information from one of the png_image_begin_read_ APIs and dynamically - * allocate the required memory. - */ - -/* Corresponding information about the pixels */ -#define PNG_IMAGE_PIXEL_(test,fmt)\ - (((fmt)&PNG_FORMAT_FLAG_COLORMAP)?1:test(fmt)) - -#define PNG_IMAGE_PIXEL_CHANNELS(fmt)\ - PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_CHANNELS,fmt) - /* The number of separate channels (components) in a pixel; 1 for a - * color-mapped image. - */ - -#define PNG_IMAGE_PIXEL_COMPONENT_SIZE(fmt)\ - PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_COMPONENT_SIZE,fmt) - /* The size, in bytes, of each component in a pixel; 1 for a color-mapped - * image. - */ - -#define PNG_IMAGE_PIXEL_SIZE(fmt) PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_SIZE,fmt) - /* The size, in bytes, of a complete pixel; 1 for a color-mapped image. */ - -/* Information about the whole row, or whole image */ -#define PNG_IMAGE_ROW_STRIDE(image)\ - (PNG_IMAGE_PIXEL_CHANNELS((image).format) * (image).width) - /* Return the total number of components in a single row of the image; this - * is the minimum 'row stride', the minimum count of components between each - * row. For a color-mapped image this is the minimum number of bytes in a - * row. - */ - -#define PNG_IMAGE_BUFFER_SIZE(image, row_stride)\ - (PNG_IMAGE_PIXEL_COMPONENT_SIZE((image).format)*(image).height*(row_stride)) - /* Return the size, in bytes, of an image buffer given a png_image and a row - * stride - the number of components to leave space for in each row. - */ - -#define PNG_IMAGE_SIZE(image)\ - PNG_IMAGE_BUFFER_SIZE(image, PNG_IMAGE_ROW_STRIDE(image)) - /* Return the size, in bytes, of the image in memory given just a png_image; - * the row stride is the minimum stride required for the image. - */ - -#define PNG_IMAGE_COLORMAP_SIZE(image)\ - (PNG_IMAGE_SAMPLE_SIZE((image).format) * (image).colormap_entries) - /* Return the size, in bytes, of the color-map of this image. If the image - * format is not a color-map format this will return a size sufficient for - * 256 entries in the given format; check PNG_FORMAT_FLAG_COLORMAP if - * you don't want to allocate a color-map in this case. - */ - -/* PNG_IMAGE_FLAG_* - * - * Flags containing additional information about the image are held in the - * 'flags' field of png_image. - */ -#define PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB 0x01 - /* This indicates the the RGB values of the in-memory bitmap do not - * correspond to the red, green and blue end-points defined by sRGB. - */ - -#define PNG_IMAGE_FLAG_FAST 0x02 - /* On write emphasise speed over compression; the resultant PNG file will be - * larger but will be produced significantly faster, particular for large - * images. Do not use this option for images which will be distributed, only - * used it when producing intermediate files that will be read back in - * repeatedly. For a typical 24-bit image the option will double the read - * speed at the cost of increasing the image size by 25%, however for many - * more compressible images the PNG file can be 10 times larger with only a - * slight speed gain. - */ - -#define PNG_IMAGE_FLAG_16BIT_sRGB 0x04 - /* On read if the image is a 16-bit per component image and there is no gAMA - * or sRGB chunk assume that the components are sRGB encoded. Notice that - * images output by the simplified API always have gamma information; setting - * this flag only affects the interpretation of 16-bit images from an - * external source. It is recommended that the application expose this flag - * to the user; the user can normally easily recognize the difference between - * linear and sRGB encoding. This flag has no effect on write - the data - * passed to the write APIs must have the correct encoding (as defined - * above.) - * - * If the flag is not set (the default) input 16-bit per component data is - * assumed to be linear. - * - * NOTE: the flag can only be set after the png_image_begin_read_ call, - * because that call initializes the 'flags' field. - */ - -#ifdef PNG_SIMPLIFIED_READ_SUPPORTED -/* READ APIs - * --------- - * - * The png_image passed to the read APIs must have been initialized by setting - * the png_controlp field 'opaque' to NULL (or, safer, memset the whole thing.) - */ -#ifdef PNG_STDIO_SUPPORTED -PNG_EXPORT(234, int, png_image_begin_read_from_file, (png_imagep image, - const char *file_name)); - /* The named file is opened for read and the image header is filled in - * from the PNG header in the file. - */ - -PNG_EXPORT(235, int, png_image_begin_read_from_stdio, (png_imagep image, - FILE* file)); - /* The PNG header is read from the stdio FILE object. */ -#endif /* STDIO */ - -PNG_EXPORT(236, int, png_image_begin_read_from_memory, (png_imagep image, - png_const_voidp memory, png_size_t size)); - /* The PNG header is read from the given memory buffer. */ - -PNG_EXPORT(237, int, png_image_finish_read, (png_imagep image, - png_const_colorp background, void *buffer, png_int_32 row_stride, - void *colormap)); - /* Finish reading the image into the supplied buffer and clean up the - * png_image structure. - * - * row_stride is the step, in byte or 2-byte units as appropriate, - * between adjacent rows. A positive stride indicates that the top-most row - * is first in the buffer - the normal top-down arrangement. A negative - * stride indicates that the bottom-most row is first in the buffer. - * - * background need only be supplied if an alpha channel must be removed from - * a png_byte format and the removal is to be done by compositing on a solid - * color; otherwise it may be NULL and any composition will be done directly - * onto the buffer. The value is an sRGB color to use for the background, - * for grayscale output the green channel is used. - * - * background must be supplied when an alpha channel must be removed from a - * single byte color-mapped output format, in other words if: - * - * 1) The original format from png_image_begin_read_from_* had - * PNG_FORMAT_FLAG_ALPHA set. - * 2) The format set by the application does not. - * 3) The format set by the application has PNG_FORMAT_FLAG_COLORMAP set and - * PNG_FORMAT_FLAG_LINEAR *not* set. - * - * For linear output removing the alpha channel is always done by compositing - * on black and background is ignored. - * - * colormap must be supplied when PNG_FORMAT_FLAG_COLORMAP is set. It must - * be at least the size (in bytes) returned by PNG_IMAGE_COLORMAP_SIZE. - * image->colormap_entries will be updated to the actual number of entries - * written to the colormap; this may be less than the original value. - */ - -PNG_EXPORT(238, void, png_image_free, (png_imagep image)); - /* Free any data allocated by libpng in image->opaque, setting the pointer to - * NULL. May be called at any time after the structure is initialized. - */ -#endif /* SIMPLIFIED_READ */ - -#ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED -#ifdef PNG_STDIO_SUPPORTED -/* WRITE APIS - * ---------- - * For write you must initialize a png_image structure to describe the image to - * be written. To do this use memset to set the whole structure to 0 then - * initialize fields describing your image. - * - * version: must be set to PNG_IMAGE_VERSION - * opaque: must be initialized to NULL - * width: image width in pixels - * height: image height in rows - * format: the format of the data (image and color-map) you wish to write - * flags: set to 0 unless one of the defined flags applies; set - * PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB for color format images where the RGB - * values do not correspond to the colors in sRGB. - * colormap_entries: set to the number of entries in the color-map (0 to 256) - */ -PNG_EXPORT(239, int, png_image_write_to_file, (png_imagep image, - const char *file, int convert_to_8bit, const void *buffer, - png_int_32 row_stride, const void *colormap)); - /* Write the image to the named file. */ - -PNG_EXPORT(240, int, png_image_write_to_stdio, (png_imagep image, FILE *file, - int convert_to_8_bit, const void *buffer, png_int_32 row_stride, - const void *colormap)); - /* Write the image to the given (FILE*). */ - -/* With both write APIs if image is in one of the linear formats with 16-bit - * data then setting convert_to_8_bit will cause the output to be an 8-bit PNG - * gamma encoded according to the sRGB specification, otherwise a 16-bit linear - * encoded PNG file is written. - * - * With color-mapped data formats the colormap parameter point to a color-map - * with at least image->colormap_entries encoded in the specified format. If - * the format is linear the written PNG color-map will be converted to sRGB - * regardless of the convert_to_8_bit flag. - * - * With all APIs row_stride is handled as in the read APIs - it is the spacing - * from one row to the next in component sized units (1 or 2 bytes) and if - * negative indicates a bottom-up row layout in the buffer. If row_stride is zero, - * libpng will calculate it for you from the image width and number of channels. - * - * Note that the write API does not support interlacing, sub-8-bit pixels, indexed - * PNG (color_type 3) or most ancillary chunks. - */ -#endif /* STDIO */ -#endif /* SIMPLIFIED_WRITE */ -/******************************************************************************* - * END OF SIMPLIFIED API - ******************************************************************************/ -#endif /* SIMPLIFIED_{READ|WRITE} */ - -#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED -PNG_EXPORT(242, void, png_set_check_for_invalid_index, - (png_structrp png_ptr, int allowed)); -# ifdef PNG_GET_PALETTE_MAX_SUPPORTED -PNG_EXPORT(243, int, png_get_palette_max, (png_const_structp png_ptr, - png_const_infop info_ptr)); -# endif -#endif /* CHECK_FOR_INVALID_INDEX */ - -/******************************************************************************* - * IMPLEMENTATION OPTIONS - ******************************************************************************* - * - * Support for arbitrary implementation-specific optimizations. The API allows - * particular options to be turned on or off. 'Option' is the number of the - * option and 'onoff' is 0 (off) or non-0 (on). The value returned is given - * by the PNG_OPTION_ defines below. - * - * HARDWARE: normally hardware capabilites, such as the Intel SSE instructions, - * are detected at run time, however sometimes it may be impossible - * to do this in user mode, in which case it is necessary to discover - * the capabilities in an OS specific way. Such capabilities are - * listed here when libpng has support for them and must be turned - * ON by the application if present. - * - * SOFTWARE: sometimes software optimizations actually result in performance - * decrease on some architectures or systems, or with some sets of - * PNG images. 'Software' options allow such optimizations to be - * selected at run time. - */ -#ifdef PNG_SET_OPTION_SUPPORTED -#ifdef PNG_ARM_NEON_API_SUPPORTED -# define PNG_ARM_NEON 0 /* HARDWARE: ARM Neon SIMD instructions supported */ -#endif -#define PNG_MAXIMUM_INFLATE_WINDOW 2 /* SOFTWARE: force maximum window */ -#define PNG_SKIP_sRGB_CHECK_PROFILE 4 /* SOFTWARE: Check ICC profile for sRGB */ -#define PNG_OPTION_NEXT 6 /* Next option - numbers must be even */ - -/* Return values: NOTE: there are four values and 'off' is *not* zero */ -#define PNG_OPTION_UNSET 0 /* Unset - defaults to off */ -#define PNG_OPTION_INVALID 1 /* Option number out of range */ -#define PNG_OPTION_OFF 2 -#define PNG_OPTION_ON 3 - -PNG_EXPORT(244, int, png_set_option, (png_structrp png_ptr, int option, - int onoff)); -#endif /* SET_OPTION */ - -/******************************************************************************* - * END OF HARDWARE AND SOFTWARE OPTIONS - ******************************************************************************/ - -/* Maintainer: Put new public prototypes here ^, in libpng.3, in project - * defs, and in scripts/symbols.def. - */ - -/* The last ordinal number (this is the *last* one already used; the next - * one to use is one more than this.) - */ -#ifdef PNG_EXPORT_LAST_ORDINAL - PNG_EXPORT_LAST_ORDINAL(244); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* PNG_VERSION_INFO_ONLY */ -/* Do not put anything past this line */ -#endif /* PNG_H */ diff --git a/lib/osx/include/pngconf.h b/lib/osx/include/pngconf.h deleted file mode 100644 index 62e37cf..0000000 --- a/lib/osx/include/pngconf.h +++ /dev/null @@ -1,622 +0,0 @@ - -/* pngconf.h - machine configurable file for libpng - * - * libpng version 1.6.18, July 23, 2015 - * - * Copyright (c) 1998-2015 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * Any machine specific code is near the front of this file, so if you - * are configuring libpng for a machine, you may want to read the section - * starting here down to where it starts to typedef png_color, png_text, - * and png_info. - */ - -#ifndef PNGCONF_H -#define PNGCONF_H - -#ifndef PNG_BUILDING_SYMBOL_TABLE /* else includes may cause problems */ - -/* From libpng 1.6.0 libpng requires an ANSI X3.159-1989 ("ISOC90") compliant C - * compiler for correct compilation. The following header files are required by - * the standard. If your compiler doesn't provide these header files, or they - * do not match the standard, you will need to provide/improve them. - */ -#include <limits.h> -#include <stddef.h> - -/* Library header files. These header files are all defined by ISOC90; libpng - * expects conformant implementations, however, an ISOC90 conformant system need - * not provide these header files if the functionality cannot be implemented. - * In this case it will be necessary to disable the relevant parts of libpng in - * the build of pnglibconf.h. - * - * Prior to 1.6.0 string.h was included here; the API changes in 1.6.0 to not - * include this unnecessary header file. - */ - -#ifdef PNG_STDIO_SUPPORTED - /* Required for the definition of FILE: */ -# include <stdio.h> -#endif - -#ifdef PNG_SETJMP_SUPPORTED - /* Required for the definition of jmp_buf and the declaration of longjmp: */ -# include <setjmp.h> -#endif - -#ifdef PNG_CONVERT_tIME_SUPPORTED - /* Required for struct tm: */ -# include <time.h> -#endif - -#endif /* PNG_BUILDING_SYMBOL_TABLE */ - -/* Prior to 1.6.0 it was possible to turn off 'const' in declarations using - * PNG_NO_CONST; this is no longer supported except for data declarations which - * apparently still cause problems in 2011 on some compilers. - */ -#define PNG_CONST const /* backward compatibility only */ - -/* This controls optimization of the reading of 16 and 32 bit values - * from PNG files. It can be set on a per-app-file basis - it - * just changes whether a macro is used when the function is called. - * The library builder sets the default; if read functions are not - * built into the library the macro implementation is forced on. - */ -#ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED -# define PNG_USE_READ_MACROS -#endif -#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) -# if PNG_DEFAULT_READ_MACROS -# define PNG_USE_READ_MACROS -# endif -#endif - -/* COMPILER SPECIFIC OPTIONS. - * - * These options are provided so that a variety of difficult compilers - * can be used. Some are fixed at build time (e.g. PNG_API_RULE - * below) but still have compiler specific implementations, others - * may be changed on a per-file basis when compiling against libpng. - */ - -/* The PNGARG macro was used in versions of libpng prior to 1.6.0 to protect - * against legacy (pre ISOC90) compilers that did not understand function - * prototypes. It is not required for modern C compilers. - */ -#ifndef PNGARG -# define PNGARG(arglist) arglist -#endif - -/* Function calling conventions. - * ============================= - * Normally it is not necessary to specify to the compiler how to call - * a function - it just does it - however on x86 systems derived from - * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems - * and some others) there are multiple ways to call a function and the - * default can be changed on the compiler command line. For this reason - * libpng specifies the calling convention of every exported function and - * every function called via a user supplied function pointer. This is - * done in this file by defining the following macros: - * - * PNGAPI Calling convention for exported functions. - * PNGCBAPI Calling convention for user provided (callback) functions. - * PNGCAPI Calling convention used by the ANSI-C library (required - * for longjmp callbacks and sometimes used internally to - * specify the calling convention for zlib). - * - * These macros should never be overridden. If it is necessary to - * change calling convention in a private build this can be done - * by setting PNG_API_RULE (which defaults to 0) to one of the values - * below to select the correct 'API' variants. - * - * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout. - * This is correct in every known environment. - * PNG_API_RULE=1 Use the operating system convention for PNGAPI and - * the 'C' calling convention (from PNGCAPI) for - * callbacks (PNGCBAPI). This is no longer required - * in any known environment - if it has to be used - * please post an explanation of the problem to the - * libpng mailing list. - * - * These cases only differ if the operating system does not use the C - * calling convention, at present this just means the above cases - * (x86 DOS/Windows sytems) and, even then, this does not apply to - * Cygwin running on those systems. - * - * Note that the value must be defined in pnglibconf.h so that what - * the application uses to call the library matches the conventions - * set when building the library. - */ - -/* Symbol export - * ============= - * When building a shared library it is almost always necessary to tell - * the compiler which symbols to export. The png.h macro 'PNG_EXPORT' - * is used to mark the symbols. On some systems these symbols can be - * extracted at link time and need no special processing by the compiler, - * on other systems the symbols are flagged by the compiler and just - * the declaration requires a special tag applied (unfortunately) in a - * compiler dependent way. Some systems can do either. - * - * A small number of older systems also require a symbol from a DLL to - * be flagged to the program that calls it. This is a problem because - * we do not know in the header file included by application code that - * the symbol will come from a shared library, as opposed to a statically - * linked one. For this reason the application must tell us by setting - * the magic flag PNG_USE_DLL to turn on the special processing before - * it includes png.h. - * - * Four additional macros are used to make this happen: - * - * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from - * the build or imported if PNG_USE_DLL is set - compiler - * and system specific. - * - * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to - * 'type', compiler specific. - * - * PNG_DLL_EXPORT Set to the magic to use during a libpng build to - * make a symbol exported from the DLL. Not used in the - * public header files; see pngpriv.h for how it is used - * in the libpng build. - * - * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come - * from a DLL - used to define PNG_IMPEXP when - * PNG_USE_DLL is set. - */ - -/* System specific discovery. - * ========================== - * This code is used at build time to find PNG_IMPEXP, the API settings - * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL - * import processing is possible. On Windows systems it also sets - * compiler-specific macros to the values required to change the calling - * conventions of the various functions. - */ -#if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ - defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) - /* Windows system (DOS doesn't support DLLs). Includes builds under Cygwin or - * MinGW on any architecture currently supported by Windows. Also includes - * Watcom builds but these need special treatment because they are not - * compatible with GCC or Visual C because of different calling conventions. - */ -# if PNG_API_RULE == 2 - /* If this line results in an error, either because __watcall is not - * understood or because of a redefine just below you cannot use *this* - * build of the library with the compiler you are using. *This* build was - * build using Watcom and applications must also be built using Watcom! - */ -# define PNGCAPI __watcall -# endif - -# if defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 800)) -# define PNGCAPI __cdecl -# if PNG_API_RULE == 1 - /* If this line results in an error __stdcall is not understood and - * PNG_API_RULE should not have been set to '1'. - */ -# define PNGAPI __stdcall -# endif -# else - /* An older compiler, or one not detected (erroneously) above, - * if necessary override on the command line to get the correct - * variants for the compiler. - */ -# ifndef PNGCAPI -# define PNGCAPI _cdecl -# endif -# if PNG_API_RULE == 1 && !defined(PNGAPI) -# define PNGAPI _stdcall -# endif -# endif /* compiler/api */ - - /* NOTE: PNGCBAPI always defaults to PNGCAPI. */ - -# if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD) -# error "PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed" -# endif - -# if (defined(_MSC_VER) && _MSC_VER < 800) ||\ - (defined(__BORLANDC__) && __BORLANDC__ < 0x500) - /* older Borland and MSC - * compilers used '__export' and required this to be after - * the type. - */ -# ifndef PNG_EXPORT_TYPE -# define PNG_EXPORT_TYPE(type) type PNG_IMPEXP -# endif -# define PNG_DLL_EXPORT __export -# else /* newer compiler */ -# define PNG_DLL_EXPORT __declspec(dllexport) -# ifndef PNG_DLL_IMPORT -# define PNG_DLL_IMPORT __declspec(dllimport) -# endif -# endif /* compiler */ - -#else /* !Windows */ -# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) -# define PNGAPI _System -# else /* !Windows/x86 && !OS/2 */ - /* Use the defaults, or define PNG*API on the command line (but - * this will have to be done for every compile!) - */ -# endif /* other system, !OS/2 */ -#endif /* !Windows/x86 */ - -/* Now do all the defaulting . */ -#ifndef PNGCAPI -# define PNGCAPI -#endif -#ifndef PNGCBAPI -# define PNGCBAPI PNGCAPI -#endif -#ifndef PNGAPI -# define PNGAPI PNGCAPI -#endif - -/* PNG_IMPEXP may be set on the compilation system command line or (if not set) - * then in an internal header file when building the library, otherwise (when - * using the library) it is set here. - */ -#ifndef PNG_IMPEXP -# if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) - /* This forces use of a DLL, disallowing static linking */ -# define PNG_IMPEXP PNG_DLL_IMPORT -# endif - -# ifndef PNG_IMPEXP -# define PNG_IMPEXP -# endif -#endif - -/* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat - * 'attributes' as a storage class - the attributes go at the start of the - * function definition, and attributes are always appended regardless of the - * compiler. This considerably simplifies these macros but may cause problems - * if any compilers both need function attributes and fail to handle them as - * a storage class (this is unlikely.) - */ -#ifndef PNG_FUNCTION -# define PNG_FUNCTION(type, name, args, attributes) attributes type name args -#endif - -#ifndef PNG_EXPORT_TYPE -# define PNG_EXPORT_TYPE(type) PNG_IMPEXP type -#endif - - /* The ordinal value is only relevant when preprocessing png.h for symbol - * table entries, so we discard it here. See the .dfn files in the - * scripts directory. - */ - -#ifndef PNG_EXPORTA -# define PNG_EXPORTA(ordinal, type, name, args, attributes) \ - PNG_FUNCTION(PNG_EXPORT_TYPE(type), (PNGAPI name), PNGARG(args), \ - PNG_LINKAGE_API attributes) -#endif - -/* ANSI-C (C90) does not permit a macro to be invoked with an empty argument, - * so make something non-empty to satisfy the requirement: - */ -#define PNG_EMPTY /*empty list*/ - -#define PNG_EXPORT(ordinal, type, name, args) \ - PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY) - -/* Use PNG_REMOVED to comment out a removed interface. */ -#ifndef PNG_REMOVED -# define PNG_REMOVED(ordinal, type, name, args, attributes) -#endif - -#ifndef PNG_CALLBACK -# define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args) -#endif - -/* Support for compiler specific function attributes. These are used - * so that where compiler support is available incorrect use of API - * functions in png.h will generate compiler warnings. - * - * Added at libpng-1.2.41. - */ - -#ifndef PNG_NO_PEDANTIC_WARNINGS -# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED -# define PNG_PEDANTIC_WARNINGS_SUPPORTED -# endif -#endif - -#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED - /* Support for compiler specific function attributes. These are used - * so that where compiler support is available, incorrect use of API - * functions in png.h will generate compiler warnings. Added at libpng - * version 1.2.41. Disabling these removes the warnings but may also produce - * less efficient code. - */ -# if defined(__clang__) && defined(__has_attribute) - /* Clang defines both __clang__ and __GNUC__. Check __clang__ first. */ -# if !defined(PNG_USE_RESULT) && __has_attribute(__warn_unused_result__) -# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) -# endif -# if !defined(PNG_NORETURN) && __has_attribute(__noreturn__) -# define PNG_NORETURN __attribute__((__noreturn__)) -# endif -# if !defined(PNG_ALLOCATED) && __has_attribute(__malloc__) -# define PNG_ALLOCATED __attribute__((__malloc__)) -# endif -# if !defined(PNG_DEPRECATED) && __has_attribute(__deprecated__) -# define PNG_DEPRECATED __attribute__((__deprecated__)) -# endif -# if !defined(PNG_PRIVATE) -# ifdef __has_extension -# if __has_extension(attribute_unavailable_with_message) -# define PNG_PRIVATE __attribute__((__unavailable__(\ - "This function is not exported by libpng."))) -# endif -# endif -# endif -# ifndef PNG_RESTRICT -# define PNG_RESTRICT __restrict -# endif - -# elif defined(__GNUC__) -# ifndef PNG_USE_RESULT -# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) -# endif -# ifndef PNG_NORETURN -# define PNG_NORETURN __attribute__((__noreturn__)) -# endif -# if __GNUC__ >= 3 -# ifndef PNG_ALLOCATED -# define PNG_ALLOCATED __attribute__((__malloc__)) -# endif -# ifndef PNG_DEPRECATED -# define PNG_DEPRECATED __attribute__((__deprecated__)) -# endif -# ifndef PNG_PRIVATE -# if 0 /* Doesn't work so we use deprecated instead*/ -# define PNG_PRIVATE \ - __attribute__((warning("This function is not exported by libpng."))) -# else -# define PNG_PRIVATE \ - __attribute__((__deprecated__)) -# endif -# endif -# if ((__GNUC__ > 3) || !defined(__GNUC_MINOR__) || (__GNUC_MINOR__ >= 1)) -# ifndef PNG_RESTRICT -# define PNG_RESTRICT __restrict -# endif -# endif /* __GNUC__.__GNUC_MINOR__ > 3.0 */ -# endif /* __GNUC__ >= 3 */ - -# elif defined(_MSC_VER) && (_MSC_VER >= 1300) -# ifndef PNG_USE_RESULT -# define PNG_USE_RESULT /* not supported */ -# endif -# ifndef PNG_NORETURN -# define PNG_NORETURN __declspec(noreturn) -# endif -# ifndef PNG_ALLOCATED -# if (_MSC_VER >= 1400) -# define PNG_ALLOCATED __declspec(restrict) -# endif -# endif -# ifndef PNG_DEPRECATED -# define PNG_DEPRECATED __declspec(deprecated) -# endif -# ifndef PNG_PRIVATE -# define PNG_PRIVATE __declspec(deprecated) -# endif -# ifndef PNG_RESTRICT -# if (_MSC_VER >= 1400) -# define PNG_RESTRICT __restrict -# endif -# endif - -# elif defined(__WATCOMC__) -# ifndef PNG_RESTRICT -# define PNG_RESTRICT __restrict -# endif -# endif -#endif /* PNG_PEDANTIC_WARNINGS */ - -#ifndef PNG_DEPRECATED -# define PNG_DEPRECATED /* Use of this function is deprecated */ -#endif -#ifndef PNG_USE_RESULT -# define PNG_USE_RESULT /* The result of this function must be checked */ -#endif -#ifndef PNG_NORETURN -# define PNG_NORETURN /* This function does not return */ -#endif -#ifndef PNG_ALLOCATED -# define PNG_ALLOCATED /* The result of the function is new memory */ -#endif -#ifndef PNG_PRIVATE -# define PNG_PRIVATE /* This is a private libpng function */ -#endif -#ifndef PNG_RESTRICT -# define PNG_RESTRICT /* The C99 "restrict" feature */ -#endif - -#ifndef PNG_FP_EXPORT /* A floating point API. */ -# ifdef PNG_FLOATING_POINT_SUPPORTED -# define PNG_FP_EXPORT(ordinal, type, name, args)\ - PNG_EXPORT(ordinal, type, name, args); -# else /* No floating point APIs */ -# define PNG_FP_EXPORT(ordinal, type, name, args) -# endif -#endif -#ifndef PNG_FIXED_EXPORT /* A fixed point API. */ -# ifdef PNG_FIXED_POINT_SUPPORTED -# define PNG_FIXED_EXPORT(ordinal, type, name, args)\ - PNG_EXPORT(ordinal, type, name, args); -# else /* No fixed point APIs */ -# define PNG_FIXED_EXPORT(ordinal, type, name, args) -# endif -#endif - -#ifndef PNG_BUILDING_SYMBOL_TABLE -/* Some typedefs to get us started. These should be safe on most of the common - * platforms. - * - * png_uint_32 and png_int_32 may, currently, be larger than required to hold a - * 32-bit value however this is not normally advisable. - * - * png_uint_16 and png_int_16 should always be two bytes in size - this is - * verified at library build time. - * - * png_byte must always be one byte in size. - * - * The checks below use constants from limits.h, as defined by the ISOC90 - * standard. - */ -#if CHAR_BIT == 8 && UCHAR_MAX == 255 - typedef unsigned char png_byte; -#else -# error "libpng requires 8 bit bytes" -#endif - -#if INT_MIN == -32768 && INT_MAX == 32767 - typedef int png_int_16; -#elif SHRT_MIN == -32768 && SHRT_MAX == 32767 - typedef short png_int_16; -#else -# error "libpng requires a signed 16 bit type" -#endif - -#if UINT_MAX == 65535 - typedef unsigned int png_uint_16; -#elif USHRT_MAX == 65535 - typedef unsigned short png_uint_16; -#else -# error "libpng requires an unsigned 16 bit type" -#endif - -#if INT_MIN < -2147483646 && INT_MAX > 2147483646 - typedef int png_int_32; -#elif LONG_MIN < -2147483646 && LONG_MAX > 2147483646 - typedef long int png_int_32; -#else -# error "libpng requires a signed 32 bit (or more) type" -#endif - -#if UINT_MAX > 4294967294 - typedef unsigned int png_uint_32; -#elif ULONG_MAX > 4294967294 - typedef unsigned long int png_uint_32; -#else -# error "libpng requires an unsigned 32 bit (or more) type" -#endif - -/* Prior to 1.6.0 it was possible to disable the use of size_t, 1.6.0, however, - * requires an ISOC90 compiler and relies on consistent behavior of sizeof. - */ -typedef size_t png_size_t; -typedef ptrdiff_t png_ptrdiff_t; - -/* libpng needs to know the maximum value of 'size_t' and this controls the - * definition of png_alloc_size_t, below. This maximum value of size_t limits - * but does not control the maximum allocations the library makes - there is - * direct application control of this through png_set_user_limits(). - */ -#ifndef PNG_SMALL_SIZE_T - /* Compiler specific tests for systems where size_t is known to be less than - * 32 bits (some of these systems may no longer work because of the lack of - * 'far' support; see above.) - */ -# if (defined(__TURBOC__) && !defined(__FLAT__)) ||\ - (defined(_MSC_VER) && defined(MAXSEG_64K)) -# define PNG_SMALL_SIZE_T -# endif -#endif - -/* png_alloc_size_t is guaranteed to be no smaller than png_size_t, and no - * smaller than png_uint_32. Casts from png_size_t or png_uint_32 to - * png_alloc_size_t are not necessary; in fact, it is recommended not to use - * them at all so that the compiler can complain when something turns out to be - * problematic. - * - * Casts in the other direction (from png_alloc_size_t to png_size_t or - * png_uint_32) should be explicitly applied; however, we do not expect to - * encounter practical situations that require such conversions. - * - * PNG_SMALL_SIZE_T must be defined if the maximum value of size_t is less than - * 4294967295 - i.e. less than the maximum value of png_uint_32. - */ -#ifdef PNG_SMALL_SIZE_T - typedef png_uint_32 png_alloc_size_t; -#else - typedef png_size_t png_alloc_size_t; -#endif - -/* Prior to 1.6.0 libpng offered limited support for Microsoft C compiler - * implementations of Intel CPU specific support of user-mode segmented address - * spaces, where 16-bit pointers address more than 65536 bytes of memory using - * separate 'segment' registers. The implementation requires two different - * types of pointer (only one of which includes the segment value.) - * - * If required this support is available in version 1.2 of libpng and may be - * available in versions through 1.5, although the correctness of the code has - * not been verified recently. - */ - -/* Typedef for floating-point numbers that are converted to fixed-point with a - * multiple of 100,000, e.g., gamma - */ -typedef png_int_32 png_fixed_point; - -/* Add typedefs for pointers */ -typedef void * png_voidp; -typedef const void * png_const_voidp; -typedef png_byte * png_bytep; -typedef const png_byte * png_const_bytep; -typedef png_uint_32 * png_uint_32p; -typedef const png_uint_32 * png_const_uint_32p; -typedef png_int_32 * png_int_32p; -typedef const png_int_32 * png_const_int_32p; -typedef png_uint_16 * png_uint_16p; -typedef const png_uint_16 * png_const_uint_16p; -typedef png_int_16 * png_int_16p; -typedef const png_int_16 * png_const_int_16p; -typedef char * png_charp; -typedef const char * png_const_charp; -typedef png_fixed_point * png_fixed_point_p; -typedef const png_fixed_point * png_const_fixed_point_p; -typedef png_size_t * png_size_tp; -typedef const png_size_t * png_const_size_tp; - -#ifdef PNG_STDIO_SUPPORTED -typedef FILE * png_FILE_p; -#endif - -#ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double * png_doublep; -typedef const double * png_const_doublep; -#endif - -/* Pointers to pointers; i.e. arrays */ -typedef png_byte * * png_bytepp; -typedef png_uint_32 * * png_uint_32pp; -typedef png_int_32 * * png_int_32pp; -typedef png_uint_16 * * png_uint_16pp; -typedef png_int_16 * * png_int_16pp; -typedef const char * * png_const_charpp; -typedef char * * png_charpp; -typedef png_fixed_point * * png_fixed_point_pp; -#ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double * * png_doublepp; -#endif - -/* Pointers to pointers to pointers; i.e., pointer to array */ -typedef char * * * png_charppp; - -#endif /* PNG_BUILDING_SYMBOL_TABLE */ - -#endif /* PNGCONF_H */ diff --git a/lib/osx/include/pnglibconf.h b/lib/osx/include/pnglibconf.h deleted file mode 100644 index a8144c8..0000000 --- a/lib/osx/include/pnglibconf.h +++ /dev/null @@ -1,214 +0,0 @@ -/* pnglibconf.h - library build configuration */ - -/* libpng version 1.6.18, July 23, 2015 */ - -/* Copyright (c) 1998-2014 Glenn Randers-Pehrson */ - -/* This code is released under the libpng license. */ -/* For conditions of distribution and use, see the disclaimer */ -/* and license in png.h */ - -/* pnglibconf.h */ -/* Machine generated file: DO NOT EDIT */ -/* Derived from: scripts/pnglibconf.dfa */ -#ifndef PNGLCONF_H -#define PNGLCONF_H -/* options */ -#define PNG_16BIT_SUPPORTED -#define PNG_ALIGNED_MEMORY_SUPPORTED -/*#undef PNG_ARM_NEON_API_SUPPORTED*/ -/*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ -#define PNG_BENIGN_ERRORS_SUPPORTED -#define PNG_BENIGN_READ_ERRORS_SUPPORTED -/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ -#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED -#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED -#define PNG_COLORSPACE_SUPPORTED -#define PNG_CONSOLE_IO_SUPPORTED -#define PNG_CONVERT_tIME_SUPPORTED -#define PNG_EASY_ACCESS_SUPPORTED -/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ -#define PNG_ERROR_TEXT_SUPPORTED -#define PNG_FIXED_POINT_SUPPORTED -#define PNG_FLOATING_ARITHMETIC_SUPPORTED -#define PNG_FLOATING_POINT_SUPPORTED -#define PNG_FORMAT_AFIRST_SUPPORTED -#define PNG_FORMAT_BGR_SUPPORTED -#define PNG_GAMMA_SUPPORTED -#define PNG_GET_PALETTE_MAX_SUPPORTED -#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED -#define PNG_INCH_CONVERSIONS_SUPPORTED -#define PNG_INFO_IMAGE_SUPPORTED -#define PNG_IO_STATE_SUPPORTED -#define PNG_MNG_FEATURES_SUPPORTED -#define PNG_POINTER_INDEXING_SUPPORTED -#define PNG_PROGRESSIVE_READ_SUPPORTED -#define PNG_READ_16BIT_SUPPORTED -#define PNG_READ_ALPHA_MODE_SUPPORTED -#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED -#define PNG_READ_BACKGROUND_SUPPORTED -#define PNG_READ_BGR_SUPPORTED -#define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED -#define PNG_READ_COMPOSITE_NODIV_SUPPORTED -#define PNG_READ_COMPRESSED_TEXT_SUPPORTED -#define PNG_READ_EXPAND_16_SUPPORTED -#define PNG_READ_EXPAND_SUPPORTED -#define PNG_READ_FILLER_SUPPORTED -#define PNG_READ_GAMMA_SUPPORTED -#define PNG_READ_GET_PALETTE_MAX_SUPPORTED -#define PNG_READ_GRAY_TO_RGB_SUPPORTED -#define PNG_READ_INTERLACING_SUPPORTED -#define PNG_READ_INT_FUNCTIONS_SUPPORTED -#define PNG_READ_INVERT_ALPHA_SUPPORTED -#define PNG_READ_INVERT_SUPPORTED -#define PNG_READ_OPT_PLTE_SUPPORTED -#define PNG_READ_PACKSWAP_SUPPORTED -#define PNG_READ_PACK_SUPPORTED -#define PNG_READ_QUANTIZE_SUPPORTED -#define PNG_READ_RGB_TO_GRAY_SUPPORTED -#define PNG_READ_SCALE_16_TO_8_SUPPORTED -#define PNG_READ_SHIFT_SUPPORTED -#define PNG_READ_STRIP_16_TO_8_SUPPORTED -#define PNG_READ_STRIP_ALPHA_SUPPORTED -#define PNG_READ_SUPPORTED -#define PNG_READ_SWAP_ALPHA_SUPPORTED -#define PNG_READ_SWAP_SUPPORTED -#define PNG_READ_TEXT_SUPPORTED -#define PNG_READ_TRANSFORMS_SUPPORTED -#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_READ_USER_CHUNKS_SUPPORTED -#define PNG_READ_USER_TRANSFORM_SUPPORTED -#define PNG_READ_bKGD_SUPPORTED -#define PNG_READ_cHRM_SUPPORTED -#define PNG_READ_gAMA_SUPPORTED -#define PNG_READ_hIST_SUPPORTED -#define PNG_READ_iCCP_SUPPORTED -#define PNG_READ_iTXt_SUPPORTED -#define PNG_READ_oFFs_SUPPORTED -#define PNG_READ_pCAL_SUPPORTED -#define PNG_READ_pHYs_SUPPORTED -#define PNG_READ_sBIT_SUPPORTED -#define PNG_READ_sCAL_SUPPORTED -#define PNG_READ_sPLT_SUPPORTED -#define PNG_READ_sRGB_SUPPORTED -#define PNG_READ_tEXt_SUPPORTED -#define PNG_READ_tIME_SUPPORTED -#define PNG_READ_tRNS_SUPPORTED -#define PNG_READ_zTXt_SUPPORTED -#define PNG_SAVE_INT_32_SUPPORTED -#define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_SEQUENTIAL_READ_SUPPORTED -#define PNG_SETJMP_SUPPORTED -#define PNG_SET_OPTION_SUPPORTED -#define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_SET_USER_LIMITS_SUPPORTED -#define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED -#define PNG_SIMPLIFIED_READ_BGR_SUPPORTED -#define PNG_SIMPLIFIED_READ_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_SUPPORTED -#define PNG_STDIO_SUPPORTED -#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_TEXT_SUPPORTED -#define PNG_TIME_RFC1123_SUPPORTED -#define PNG_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_USER_CHUNKS_SUPPORTED -#define PNG_USER_LIMITS_SUPPORTED -#define PNG_USER_MEM_SUPPORTED -#define PNG_USER_TRANSFORM_INFO_SUPPORTED -#define PNG_USER_TRANSFORM_PTR_SUPPORTED -#define PNG_WARNINGS_SUPPORTED -#define PNG_WRITE_16BIT_SUPPORTED -#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED -#define PNG_WRITE_BGR_SUPPORTED -#define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED -#define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED -#define PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED -#define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED -#define PNG_WRITE_FILLER_SUPPORTED -#define PNG_WRITE_FILTER_SUPPORTED -#define PNG_WRITE_FLUSH_SUPPORTED -#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED -#define PNG_WRITE_INTERLACING_SUPPORTED -#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED -#define PNG_WRITE_INVERT_ALPHA_SUPPORTED -#define PNG_WRITE_INVERT_SUPPORTED -#define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED -#define PNG_WRITE_PACKSWAP_SUPPORTED -#define PNG_WRITE_PACK_SUPPORTED -#define PNG_WRITE_SHIFT_SUPPORTED -#define PNG_WRITE_SUPPORTED -#define PNG_WRITE_SWAP_ALPHA_SUPPORTED -#define PNG_WRITE_SWAP_SUPPORTED -#define PNG_WRITE_TEXT_SUPPORTED -#define PNG_WRITE_TRANSFORMS_SUPPORTED -#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_WRITE_USER_TRANSFORM_SUPPORTED -#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED -#define PNG_WRITE_bKGD_SUPPORTED -#define PNG_WRITE_cHRM_SUPPORTED -#define PNG_WRITE_gAMA_SUPPORTED -#define PNG_WRITE_hIST_SUPPORTED -#define PNG_WRITE_iCCP_SUPPORTED -#define PNG_WRITE_iTXt_SUPPORTED -#define PNG_WRITE_oFFs_SUPPORTED -#define PNG_WRITE_pCAL_SUPPORTED -#define PNG_WRITE_pHYs_SUPPORTED -#define PNG_WRITE_sBIT_SUPPORTED -#define PNG_WRITE_sCAL_SUPPORTED -#define PNG_WRITE_sPLT_SUPPORTED -#define PNG_WRITE_sRGB_SUPPORTED -#define PNG_WRITE_tEXt_SUPPORTED -#define PNG_WRITE_tIME_SUPPORTED -#define PNG_WRITE_tRNS_SUPPORTED -#define PNG_WRITE_zTXt_SUPPORTED -#define PNG_bKGD_SUPPORTED -#define PNG_cHRM_SUPPORTED -#define PNG_gAMA_SUPPORTED -#define PNG_hIST_SUPPORTED -#define PNG_iCCP_SUPPORTED -#define PNG_iTXt_SUPPORTED -#define PNG_oFFs_SUPPORTED -#define PNG_pCAL_SUPPORTED -#define PNG_pHYs_SUPPORTED -#define PNG_sBIT_SUPPORTED -#define PNG_sCAL_SUPPORTED -#define PNG_sPLT_SUPPORTED -#define PNG_sRGB_SUPPORTED -#define PNG_tEXt_SUPPORTED -#define PNG_tIME_SUPPORTED -#define PNG_tRNS_SUPPORTED -#define PNG_zTXt_SUPPORTED -/* end of options */ -/* settings */ -#define PNG_API_RULE 0 -#define PNG_COST_SHIFT 3 -#define PNG_DEFAULT_READ_MACROS 1 -#define PNG_GAMMA_THRESHOLD_FIXED 5000 -#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE -#define PNG_INFLATE_BUF_SIZE 1024 -#define PNG_LINKAGE_API extern -#define PNG_LINKAGE_CALLBACK extern -#define PNG_LINKAGE_DATA extern -#define PNG_LINKAGE_FUNCTION extern -#define PNG_MAX_GAMMA_8 11 -#define PNG_QUANTIZE_BLUE_BITS 5 -#define PNG_QUANTIZE_GREEN_BITS 5 -#define PNG_QUANTIZE_RED_BITS 5 -#define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1) -#define PNG_TEXT_Z_DEFAULT_STRATEGY 0 -#define PNG_USER_CHUNK_CACHE_MAX 1000 -#define PNG_USER_CHUNK_MALLOC_MAX 8000000 -#define PNG_USER_HEIGHT_MAX 1000000 -#define PNG_USER_WIDTH_MAX 1000000 -#define PNG_WEIGHT_SHIFT 8 -#define PNG_ZBUF_SIZE 8192 -#define PNG_ZLIB_VERNUM 0x1250 -#define PNG_Z_DEFAULT_COMPRESSION (-1) -#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0 -#define PNG_Z_DEFAULT_STRATEGY 1 -#define PNG_sCAL_PRECISION 5 -#define PNG_sRGB_PROFILE_CHECKS 2 -/* end of settings */ -#endif /* PNGLCONF_H */ diff --git a/lib/osx/include/steam/isteamapplist.h b/lib/osx/include/steam/isteamapplist.h deleted file mode 100644 index d678909..0000000 --- a/lib/osx/include/steam/isteamapplist.h +++ /dev/null @@ -1,63 +0,0 @@ -//====== Copyright © 1996-2008, Valve Corporation, All rights reserved. ======= -// -// Purpose: interface to app data in Steam -// -//============================================================================= - -#ifndef ISTEAMAPPLIST_H -#define ISTEAMAPPLIST_H -#ifdef _WIN32 -#pragma once -#endif - -#include "isteamclient.h" -#include "steamtypes.h" - -//----------------------------------------------------------------------------- -// Purpose: This is a restricted interface that can only be used by previously approved apps, -// contact your Steam Account Manager if you believe you need access to this API. -// This interface lets you detect installed apps for the local Steam client, useful for debugging tools -// to offer lists of apps to debug via Steam. -//----------------------------------------------------------------------------- -class ISteamAppList -{ -public: - virtual uint32 GetNumInstalledApps() = 0; - virtual uint32 GetInstalledApps( AppId_t *pvecAppID, uint32 unMaxAppIDs ) = 0; - - virtual int GetAppName( AppId_t nAppID, OUT_STRING() char *pchName, int cchNameMax ) = 0; // returns -1 if no name was found - virtual int GetAppInstallDir( AppId_t nAppID, char *pchDirectory, int cchNameMax ) = 0; // returns -1 if no dir was found - - virtual int GetAppBuildId( AppId_t nAppID ) = 0; // return the buildid of this app, may change at any time based on backend updates to the game -}; - -#define STEAMAPPLIST_INTERFACE_VERSION "STEAMAPPLIST_INTERFACE_VERSION001" - -// callbacks -#if defined( VALVE_CALLBACK_PACK_SMALL ) -#pragma pack( push, 4 ) -#elif defined( VALVE_CALLBACK_PACK_LARGE ) -#pragma pack( push, 8 ) -#else -#error isteamclient.h must be included -#endif - - -//--------------------------------------------------------------------------------- -// Purpose: Sent when a new app is installed -//--------------------------------------------------------------------------------- -DEFINE_CALLBACK( SteamAppInstalled_t, k_iSteamAppListCallbacks + 1 ); - CALLBACK_MEMBER( 0, AppId_t, m_nAppID ) // ID of the app that installs -END_DEFINE_CALLBACK_1() - - -//--------------------------------------------------------------------------------- -// Purpose: Sent when an app is uninstalled -//--------------------------------------------------------------------------------- -DEFINE_CALLBACK( SteamAppUninstalled_t, k_iSteamAppListCallbacks + 2 ); - CALLBACK_MEMBER( 0, AppId_t, m_nAppID ) // ID of the app that installs -END_DEFINE_CALLBACK_1() - - -#pragma pack( pop ) -#endif // ISTEAMAPPLIST_H diff --git a/lib/osx/include/steam/isteamapps.h b/lib/osx/include/steam/isteamapps.h index 9a97b4a..8a2197e 100644 --- a/lib/osx/include/steam/isteamapps.h +++ b/lib/osx/include/steam/isteamapps.h @@ -10,6 +10,8 @@ #pragma once #endif +#include "steam_api_common.h" + const int k_cubAppProofOfPurchaseKeyMax = 240; // max supported length of a legacy cd key @@ -65,13 +67,16 @@ public: virtual uint32 GetAppInstallDir( AppId_t appID, char *pchFolder, uint32 cchFolderBufferSize ) = 0; virtual bool BIsAppInstalled( AppId_t appID ) = 0; // returns true if that app is installed (not necessarily owned) - virtual CSteamID GetAppOwner() = 0; // returns the SteamID of the original owner. If different from current user, it's borrowed + // returns the SteamID of the original owner. If this CSteamID is different from ISteamUser::GetSteamID(), + // the user has a temporary license borrowed via Family Sharing + virtual CSteamID GetAppOwner() = 0; - // Returns the associated launch param if the game is run via steam://run/<appid>//?param1=value1;param2=value2;param3=value3 etc. + // Returns the associated launch param if the game is run via steam://run/<appid>//?param1=value1¶m2=value2¶m3=value3 etc. // Parameter names starting with the character '@' are reserved for internal use and will always return and empty string. // Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, // but it is advised that you not param names beginning with an underscore for your own features. - virtual const char *GetLaunchQueryParam( const char *pchKey ) = 0; + // Check for new launch parameters on callback NewUrlLaunchParameters_t + virtual const char *GetLaunchQueryParam( const char *pchKey ) = 0; // get download progress for optional DLC virtual bool GetDlcDownloadProgress( AppId_t nAppID, uint64 *punBytesDownloaded, uint64 *punBytesTotal ) = 0; @@ -85,19 +90,42 @@ public: // member is k_uAppIdInvalid (zero). virtual void RequestAllProofOfPurchaseKeys() = 0; - CALL_RESULT( FileDetailsResult_t ) + STEAM_CALL_RESULT( FileDetailsResult_t ) virtual SteamAPICall_t GetFileDetails( const char* pszFileName ) = 0; + + // Get command line if game was launched via Steam URL, e.g. steam://run/<appid>//<command line>/. + // This method of passing a connect string (used when joining via rich presence, accepting an + // invite, etc) is preferable to passing the connect string on the operating system command + // line, which is a security risk. In order for rich presence joins to go through this + // path and not be placed on the OS command line, you must set a value in your app's + // configuration on Steam. Ask Valve for help with this. + // + // If game was already running and launched again, the NewUrlLaunchParameters_t will be fired. + virtual int GetLaunchCommandLine( char *pszCommandLine, int cubCommandLine ) = 0; + + // Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + virtual bool BIsSubscribedFromFamilySharing() = 0; + + // check if game is a timed trial with limited playtime + virtual bool BIsTimedTrial( uint32* punSecondsAllowed, uint32* punSecondsPlayed ) = 0; + + // set current DLC AppID being played (or 0 if none). Allows Steam to track usage of major DLC extensions + virtual bool SetDlcContext( AppId_t nAppID ) = 0; }; #define STEAMAPPS_INTERFACE_VERSION "STEAMAPPS_INTERFACE_VERSION008" +// Global interface accessor +inline ISteamApps *SteamApps(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamApps *, SteamApps, STEAMAPPS_INTERFACE_VERSION ); + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- // Purpose: posted after the user gains ownership of DLC & that DLC is installed @@ -109,37 +137,13 @@ struct DlcInstalled_t }; -//----------------------------------------------------------------------------- -// Purpose: possible results when registering an activation code -//----------------------------------------------------------------------------- -enum ERegisterActivationCodeResult -{ - k_ERegisterActivationCodeResultOK = 0, - k_ERegisterActivationCodeResultFail = 1, - k_ERegisterActivationCodeResultAlreadyRegistered = 2, - k_ERegisterActivationCodeResultTimeout = 3, - k_ERegisterActivationCodeAlreadyOwned = 4, -}; - - -//----------------------------------------------------------------------------- -// Purpose: response to RegisterActivationCode() -//----------------------------------------------------------------------------- -struct RegisterActivationCodeResponse_t -{ - enum { k_iCallback = k_iSteamAppsCallbacks + 8 }; - ERegisterActivationCodeResult m_eResult; - uint32 m_unPackageRegistered; // package that was registered. Only set on success -}; - - //--------------------------------------------------------------------------------- -// Purpose: posted after the user gains executes a steam url with query parameters -// such as steam://run/<appid>//?param1=value1;param2=value2;param3=value3; etc +// Purpose: posted after the user gains executes a Steam URL with command line or query parameters +// such as steam://run/<appid>//-commandline/?param1=value1¶m2=value2¶m3=value3 etc // while the game is already running. The new params can be queried -// with GetLaunchQueryParam. +// with GetLaunchQueryParam and GetLaunchCommandLine //--------------------------------------------------------------------------------- -struct NewLaunchQueryParameters_t +struct NewUrlLaunchParameters_t { enum { k_iCallback = k_iSteamAppsCallbacks + 14 }; }; @@ -172,5 +176,17 @@ struct FileDetailsResult_t }; +//----------------------------------------------------------------------------- +// Purpose: called for games in Timed Trial mode +//----------------------------------------------------------------------------- +struct TimedTrialStatus_t +{ + enum { k_iCallback = k_iSteamAppsCallbacks + 30 }; + AppId_t m_unAppID; // appID + bool m_bIsOffline; // if true, time allowed / played refers to offline time, not total time + uint32 m_unSecondsAllowed; // how many seconds the app can be played in total + uint32 m_unSecondsPlayed; // how many seconds the app was already played +}; + #pragma pack( pop ) #endif // ISTEAMAPPS_H diff --git a/lib/osx/include/steam/isteamclient.h b/lib/osx/include/steam/isteamclient.h index 45d707d..e457e87 100644 --- a/lib/osx/include/steam/isteamclient.h +++ b/lib/osx/include/steam/isteamclient.h @@ -1,8 +1,9 @@ -//====== Copyright � 1996-2008, Valve Corporation, All rights reserved. ======= +//====== Copyright Valve Corporation, All rights reserved. ==================== // -// Purpose: Main interface for loading and accessing Steamworks API's from the -// Steam client. -// For most uses, this code is wrapped inside of SteamAPI_Init() +// Internal low-level access to Steamworks interfaces. +// +// Most users of the Steamworks SDK do not need to include this file. +// You should only include this if you are doing something special. //============================================================================= #ifndef ISTEAMCLIENT_H @@ -11,102 +12,7 @@ #pragma once #endif -#include "steamtypes.h" -#include "steamclientpublic.h" - -// Define compile time assert macros to let us validate the structure sizes. -#define VALVE_COMPILE_TIME_ASSERT( pred ) typedef char compile_time_assert_type[(pred) ? 1 : -1]; - -#ifndef REFERENCE -#define REFERENCE(arg) ((void)arg) -#endif - -#if defined(STEAM_API_EXPORTS) && !defined(API_GEN) -#define STEAM_PRIVATE_API( ... ) __VA_ARGS__ -#elif defined(STEAM_API_EXPORTS) && defined(API_GEN) -#define STEAM_PRIVATE_API( ... ) -#else -#define STEAM_PRIVATE_API( ... ) protected: __VA_ARGS__ public: -#endif - -#if defined(__linux__) || defined(__APPLE__) -// The 32-bit version of gcc has the alignment requirement for uint64 and double set to -// 4 meaning that even with #pragma pack(8) these types will only be four-byte aligned. -// The 64-bit version of gcc has the alignment requirement for these types set to -// 8 meaning that unless we use #pragma pack(4) our structures will get bigger. -// The 64-bit structure packing has to match the 32-bit structure packing for each platform. -#define VALVE_CALLBACK_PACK_SMALL -#else -#define VALVE_CALLBACK_PACK_LARGE -#endif - -#if defined( VALVE_CALLBACK_PACK_SMALL ) -#pragma pack( push, 4 ) -#elif defined( VALVE_CALLBACK_PACK_LARGE ) -#pragma pack( push, 8 ) -#else -#error ??? -#endif - -typedef struct ValvePackingSentinel_t -{ - uint32 m_u32; - uint64 m_u64; - uint16 m_u16; - double m_d; -} ValvePackingSentinel_t; - -#pragma pack( pop ) - - -#if defined(VALVE_CALLBACK_PACK_SMALL) -VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 24 ) -#elif defined(VALVE_CALLBACK_PACK_LARGE) -VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 32 ) -#else -#error ??? -#endif - - -// handle to a communication pipe to the Steam client -typedef int32 HSteamPipe; -// handle to single instance of a steam user -typedef int32 HSteamUser; -// function prototype -#if defined( POSIX ) -#define __cdecl -#endif -extern "C" typedef void (__cdecl *SteamAPIWarningMessageHook_t)(int, const char *); -extern "C" typedef uint32 ( *SteamAPI_CheckCallbackRegistered_t )( int iCallbackNum ); -#if defined( __SNC__ ) - #pragma diag_suppress=1700 // warning 1700: class "%s" has virtual functions but non-virtual destructor -#endif - -// interface predec -class ISteamUser; -class ISteamGameServer; -class ISteamFriends; -class ISteamUtils; -class ISteamMatchmaking; -class ISteamContentServer; -class ISteamMatchmakingServers; -class ISteamUserStats; -class ISteamApps; -class ISteamNetworking; -class ISteamRemoteStorage; -class ISteamScreenshots; -class ISteamMusic; -class ISteamMusicRemote; -class ISteamGameServerStats; -class ISteamPS3OverlayRender; -class ISteamHTTP; -class ISteamUnifiedMessages; -class ISteamController; -class ISteamUGC; -class ISteamAppList; -class ISteamHTMLSurface; -class ISteamInventory; -class ISteamVideo; +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: Interface to creating a new steam instance, or to @@ -150,7 +56,7 @@ public: // set the local IP and Port to bind to // this must be set before CreateLocalUser() - virtual void SetLocalIPBinding( uint32 unIP, uint16 usPort ) = 0; + virtual void SetLocalIPBinding( const SteamIPAddress_t &unIP, uint16 usPort ) = 0; // returns the ISteamFriends interface virtual ISteamFriends *GetISteamFriends( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; @@ -185,6 +91,9 @@ public: // user screenshots virtual ISteamScreenshots *GetISteamScreenshots( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + // game search + virtual ISteamGameSearch *GetISteamGameSearch( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + // Deprecated. Applications should use SteamAPI_RunCallbacks() or SteamGameServer_RunCallbacks() instead. STEAM_PRIVATE_API( virtual void RunFrame() = 0; ) @@ -206,18 +115,12 @@ public: // Expose HTTP interface virtual ISteamHTTP *GetISteamHTTP( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; - // Exposes the ISteamUnifiedMessages interface - virtual ISteamUnifiedMessages *GetISteamUnifiedMessages( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; - - // Exposes the ISteamController interface + // Exposes the ISteamController interface - deprecated in favor of Steam Input virtual ISteamController *GetISteamController( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; // Exposes the ISteamUGC interface virtual ISteamUGC *GetISteamUGC( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; - // returns app list interface, only available on specially registered apps - virtual ISteamAppList *GetISteamAppList( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; - // Music Player virtual ISteamMusic *GetISteamMusic( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; @@ -237,284 +140,34 @@ public: // Video virtual ISteamVideo *GetISteamVideo( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Parental controls + virtual ISteamParentalSettings *GetISteamParentalSettings( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Exposes the Steam Input interface for controller support + virtual ISteamInput *GetISteamInput( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Steam Parties interface + virtual ISteamParties *GetISteamParties( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Steam Remote Play interface + virtual ISteamRemotePlay *GetISteamRemotePlay( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + STEAM_PRIVATE_API( virtual void DestroyAllInterfaces() = 0; ) + }; +#define STEAMCLIENT_INTERFACE_VERSION "SteamClient021" +#ifndef STEAM_API_EXPORTS -#define STEAMCLIENT_INTERFACE_VERSION "SteamClient017" +// Global ISteamClient interface accessor +inline ISteamClient *SteamClient(); +STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamClient *, SteamClient, SteamInternal_CreateInterface( STEAMCLIENT_INTERFACE_VERSION ), "global", STEAMCLIENT_INTERFACE_VERSION ); -//----------------------------------------------------------------------------- -// Purpose: Base values for callback identifiers, each callback must -// have a unique ID. -//----------------------------------------------------------------------------- -enum { k_iSteamUserCallbacks = 100 }; -enum { k_iSteamGameServerCallbacks = 200 }; -enum { k_iSteamFriendsCallbacks = 300 }; -enum { k_iSteamBillingCallbacks = 400 }; -enum { k_iSteamMatchmakingCallbacks = 500 }; -enum { k_iSteamContentServerCallbacks = 600 }; -enum { k_iSteamUtilsCallbacks = 700 }; -enum { k_iClientFriendsCallbacks = 800 }; -enum { k_iClientUserCallbacks = 900 }; -enum { k_iSteamAppsCallbacks = 1000 }; -enum { k_iSteamUserStatsCallbacks = 1100 }; -enum { k_iSteamNetworkingCallbacks = 1200 }; -enum { k_iClientRemoteStorageCallbacks = 1300 }; -enum { k_iClientDepotBuilderCallbacks = 1400 }; -enum { k_iSteamGameServerItemsCallbacks = 1500 }; -enum { k_iClientUtilsCallbacks = 1600 }; -enum { k_iSteamGameCoordinatorCallbacks = 1700 }; -enum { k_iSteamGameServerStatsCallbacks = 1800 }; -enum { k_iSteam2AsyncCallbacks = 1900 }; -enum { k_iSteamGameStatsCallbacks = 2000 }; -enum { k_iClientHTTPCallbacks = 2100 }; -enum { k_iClientScreenshotsCallbacks = 2200 }; -enum { k_iSteamScreenshotsCallbacks = 2300 }; -enum { k_iClientAudioCallbacks = 2400 }; -enum { k_iClientUnifiedMessagesCallbacks = 2500 }; -enum { k_iSteamStreamLauncherCallbacks = 2600 }; -enum { k_iClientControllerCallbacks = 2700 }; -enum { k_iSteamControllerCallbacks = 2800 }; -enum { k_iClientParentalSettingsCallbacks = 2900 }; -enum { k_iClientDeviceAuthCallbacks = 3000 }; -enum { k_iClientNetworkDeviceManagerCallbacks = 3100 }; -enum { k_iClientMusicCallbacks = 3200 }; -enum { k_iClientRemoteClientManagerCallbacks = 3300 }; -enum { k_iClientUGCCallbacks = 3400 }; -enum { k_iSteamStreamClientCallbacks = 3500 }; -enum { k_IClientProductBuilderCallbacks = 3600 }; -enum { k_iClientShortcutsCallbacks = 3700 }; -enum { k_iClientRemoteControlManagerCallbacks = 3800 }; -enum { k_iSteamAppListCallbacks = 3900 }; -enum { k_iSteamMusicCallbacks = 4000 }; -enum { k_iSteamMusicRemoteCallbacks = 4100 }; -enum { k_iClientVRCallbacks = 4200 }; -enum { k_iClientGameNotificationCallbacks = 4300 }; -enum { k_iSteamGameNotificationCallbacks = 4400 }; -enum { k_iSteamHTMLSurfaceCallbacks = 4500 }; -enum { k_iClientVideoCallbacks = 4600 }; -enum { k_iClientInventoryCallbacks = 4700 }; -enum { k_iClientBluetoothManagerCallbacks = 4800 }; - -//----------------------------------------------------------------------------- -// The CALLBACK macros are for client side callback logging enabled with -// log_callback <first callnbackID> <last callbackID> -// Do not change any of these. -//----------------------------------------------------------------------------- - -#ifdef STEAM_CALLBACK_INSPECTION_ENABLED - -#define DEFINE_CALLBACK( callbackname, callbackid ) \ -struct callbackname { \ - typedef callbackname SteamCallback_t; \ - enum { k_iCallback = callbackid }; \ - static callbackname *GetNullPointer() { return 0; } \ - static const char *GetCallbackName() { return #callbackname; } \ - static uint32 GetCallbackID() { return callbackname::k_iCallback; } - -#define CALLBACK_MEMBER( varidx, vartype, varname ) \ - public: vartype varname ; \ - static void GetMemberVar_##varidx( unsigned int &varOffset, unsigned int &varSize, uint32 &varCount, const char **pszName, const char **pszType ) { \ - varOffset = (unsigned int)(size_t)&GetNullPointer()->varname; \ - varSize = sizeof( vartype ); \ - varCount = 1; \ - *pszName = #varname; *pszType = #vartype; } - -#define CALLBACK_ARRAY( varidx, vartype, varname, varcount ) \ - public: vartype varname [ varcount ]; \ - static void GetMemberVar_##varidx( unsigned int &varOffset, unsigned int &varSize, uint32 &varCount, const char **pszName, const char **pszType ) { \ - varOffset = (unsigned int)(size_t)&GetNullPointer()->varname[0]; \ - varSize = sizeof( vartype ); \ - varCount = varcount; \ - *pszName = #varname; *pszType = #vartype; } - - -#define END_CALLBACK_INTERNAL_BEGIN( numvars ) \ - static uint32 GetNumMemberVariables() { return numvars; } \ - static bool GetMemberVariable( uint32 index, uint32 &varOffset, uint32 &varSize, uint32 &varCount, const char **pszName, const char **pszType ) { \ - switch ( index ) { default : return false; - - -#define END_CALLBACK_INTERNAL_SWITCH( varidx ) case varidx : GetMemberVar_##varidx( varOffset, varSize, varCount, pszName, pszType ); return true; - -#define END_CALLBACK_INTERNAL_END() }; } }; - -#define END_DEFINE_CALLBACK_0() \ - static uint32 GetNumMemberVariables() { return 0; } \ - static bool GetMemberVariable( uint32 index, uint32 &varOffset, uint32 &varSize, uint32 &varCount, const char **pszName, const char **pszType ) { REFERENCE( pszType ); REFERENCE( pszName ); REFERENCE( varCount ); REFERENCE( varSize ); REFERENCE( varOffset ); REFERENCE( index ); return false; } \ - }; - -#else - -#define DEFINE_CALLBACK( callbackname, callbackid ) struct callbackname { typedef callbackname SteamCallback_t; enum { k_iCallback = callbackid }; -#define CALLBACK_MEMBER( varidx, vartype, varname ) public: vartype varname ; -#define CALLBACK_ARRAY( varidx, vartype, varname, varcount ) public: vartype varname [ varcount ]; -#define END_CALLBACK_INTERNAL_BEGIN( numvars ) -#define END_CALLBACK_INTERNAL_SWITCH( varidx ) -#define END_CALLBACK_INTERNAL_END() }; -#define END_DEFINE_CALLBACK_0() }; +// The internal ISteamClient used for the gameserver interface. +// (This is actually the same thing. You really shouldn't need to access any of this stuff directly.) +inline ISteamClient *SteamGameServerClient() { return SteamClient(); } #endif -#define END_DEFINE_CALLBACK_1() \ - END_CALLBACK_INTERNAL_BEGIN( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_2() \ - END_CALLBACK_INTERNAL_BEGIN( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_3() \ - END_CALLBACK_INTERNAL_BEGIN( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_4() \ - END_CALLBACK_INTERNAL_BEGIN( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_5() \ - END_CALLBACK_INTERNAL_BEGIN( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_END() - - -#define END_DEFINE_CALLBACK_6() \ - END_CALLBACK_INTERNAL_BEGIN( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_7() \ - END_CALLBACK_INTERNAL_BEGIN( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_8() \ - END_CALLBACK_INTERNAL_BEGIN( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_9() \ - END_CALLBACK_INTERNAL_BEGIN( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_10() \ - END_CALLBACK_INTERNAL_BEGIN( 10 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_11() \ - END_CALLBACK_INTERNAL_BEGIN( 11 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 10 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_12() \ - END_CALLBACK_INTERNAL_BEGIN( 12 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 10 ) \ - END_CALLBACK_INTERNAL_SWITCH( 11 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_13() \ - END_CALLBACK_INTERNAL_BEGIN( 13 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 10 ) \ - END_CALLBACK_INTERNAL_SWITCH( 11 ) \ - END_CALLBACK_INTERNAL_SWITCH( 12 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_14() \ - END_CALLBACK_INTERNAL_BEGIN( 14 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 10 ) \ - END_CALLBACK_INTERNAL_SWITCH( 11 ) \ - END_CALLBACK_INTERNAL_SWITCH( 12 ) \ - END_CALLBACK_INTERNAL_SWITCH( 13 ) \ - END_CALLBACK_INTERNAL_END() - #endif // ISTEAMCLIENT_H diff --git a/lib/osx/include/steam/isteamcontroller.h b/lib/osx/include/steam/isteamcontroller.h index 68f7af6..057606c 100644 --- a/lib/osx/include/steam/isteamcontroller.h +++ b/lib/osx/include/steam/isteamcontroller.h @@ -1,6 +1,12 @@ -//====== Copyright 1996-2013, Valve Corporation, All rights reserved. ======= +//====== Copyright 1996-2018, Valve Corporation, All rights reserved. ======= +// Note: The older ISteamController interface has been deprecated in favor of ISteamInput - this interface +// was updated in this SDK but will be removed from future SDK's. The Steam Client will retain +// compatibility with the older interfaces so your any existing integrations should be unaffected. // -// Purpose: interface to valve controller +// Purpose: Steam Input is a flexible input API that supports over three hundred devices including all +// common variants of Xbox, Playstation, Nintendo Switch Pro, and Steam Controllers. +// For more info including a getting started guide for developers +// please visit: https://partner.steamgames.com/doc/features/steam_controller // //============================================================================= @@ -10,63 +16,40 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" +#include "isteaminput.h" #define STEAM_CONTROLLER_MAX_COUNT 16 -#define STEAM_CONTROLLER_MAX_ANALOG_ACTIONS 16 +#define STEAM_CONTROLLER_MAX_ANALOG_ACTIONS 24 -#define STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS 128 +#define STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS 256 #define STEAM_CONTROLLER_MAX_ORIGINS 8 +#define STEAM_CONTROLLER_MAX_ACTIVE_LAYERS 16 + // When sending an option to a specific controller handle, you can send to all controllers via this command #define STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS UINT64_MAX #define STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATA -1.0f #define STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATA 1.0f +#ifndef ISTEAMINPUT_H enum ESteamControllerPad { k_ESteamControllerPad_Left, k_ESteamControllerPad_Right }; +#endif -enum EControllerSource -{ - k_EControllerSource_None, - k_EControllerSource_LeftTrackpad, - k_EControllerSource_RightTrackpad, - k_EControllerSource_Joystick, - k_EControllerSource_ABXY, - k_EControllerSource_Switch, - k_EControllerSource_LeftTrigger, - k_EControllerSource_RightTrigger, - k_EControllerSource_Gyro, - k_EControllerSource_Count -}; - -enum EControllerSourceMode -{ - k_EControllerSourceMode_None, - k_EControllerSourceMode_Dpad, - k_EControllerSourceMode_Buttons, - k_EControllerSourceMode_FourButtons, - k_EControllerSourceMode_AbsoluteMouse, - k_EControllerSourceMode_RelativeMouse, - k_EControllerSourceMode_JoystickMove, - k_EControllerSourceMode_JoystickCamera, - k_EControllerSourceMode_ScrollWheel, - k_EControllerSourceMode_Trigger, - k_EControllerSourceMode_TouchMenu, - k_EControllerSourceMode_MouseJoystick, - k_EControllerSourceMode_MouseRegion, - k_EControllerSourceMode_RadialMenu, - k_EControllerSourceMode_Switches -}; - +// Note: Please do not use action origins as a way to identify controller types. There is no +// guarantee that they will be added in a contiguous manner - use GetInputTypeForHandle instead +// Versions of Steam that add new controller types in the future will extend this enum if you're +// using a lookup table please check the bounds of any origins returned by Steam. enum EControllerActionOrigin { + // Steam Controller k_EControllerActionOrigin_None, k_EControllerActionOrigin_A, k_EControllerActionOrigin_B, @@ -107,7 +90,436 @@ enum EControllerActionOrigin k_EControllerActionOrigin_Gyro_Yaw, k_EControllerActionOrigin_Gyro_Roll, - k_EControllerActionOrigin_Count + // PS4 Dual Shock + k_EControllerActionOrigin_PS4_X, + k_EControllerActionOrigin_PS4_Circle, + k_EControllerActionOrigin_PS4_Triangle, + k_EControllerActionOrigin_PS4_Square, + k_EControllerActionOrigin_PS4_LeftBumper, + k_EControllerActionOrigin_PS4_RightBumper, + k_EControllerActionOrigin_PS4_Options, //Start + k_EControllerActionOrigin_PS4_Share, //Back + k_EControllerActionOrigin_PS4_LeftPad_Touch, + k_EControllerActionOrigin_PS4_LeftPad_Swipe, + k_EControllerActionOrigin_PS4_LeftPad_Click, + k_EControllerActionOrigin_PS4_LeftPad_DPadNorth, + k_EControllerActionOrigin_PS4_LeftPad_DPadSouth, + k_EControllerActionOrigin_PS4_LeftPad_DPadWest, + k_EControllerActionOrigin_PS4_LeftPad_DPadEast, + k_EControllerActionOrigin_PS4_RightPad_Touch, + k_EControllerActionOrigin_PS4_RightPad_Swipe, + k_EControllerActionOrigin_PS4_RightPad_Click, + k_EControllerActionOrigin_PS4_RightPad_DPadNorth, + k_EControllerActionOrigin_PS4_RightPad_DPadSouth, + k_EControllerActionOrigin_PS4_RightPad_DPadWest, + k_EControllerActionOrigin_PS4_RightPad_DPadEast, + k_EControllerActionOrigin_PS4_CenterPad_Touch, + k_EControllerActionOrigin_PS4_CenterPad_Swipe, + k_EControllerActionOrigin_PS4_CenterPad_Click, + k_EControllerActionOrigin_PS4_CenterPad_DPadNorth, + k_EControllerActionOrigin_PS4_CenterPad_DPadSouth, + k_EControllerActionOrigin_PS4_CenterPad_DPadWest, + k_EControllerActionOrigin_PS4_CenterPad_DPadEast, + k_EControllerActionOrigin_PS4_LeftTrigger_Pull, + k_EControllerActionOrigin_PS4_LeftTrigger_Click, + k_EControllerActionOrigin_PS4_RightTrigger_Pull, + k_EControllerActionOrigin_PS4_RightTrigger_Click, + k_EControllerActionOrigin_PS4_LeftStick_Move, + k_EControllerActionOrigin_PS4_LeftStick_Click, + k_EControllerActionOrigin_PS4_LeftStick_DPadNorth, + k_EControllerActionOrigin_PS4_LeftStick_DPadSouth, + k_EControllerActionOrigin_PS4_LeftStick_DPadWest, + k_EControllerActionOrigin_PS4_LeftStick_DPadEast, + k_EControllerActionOrigin_PS4_RightStick_Move, + k_EControllerActionOrigin_PS4_RightStick_Click, + k_EControllerActionOrigin_PS4_RightStick_DPadNorth, + k_EControllerActionOrigin_PS4_RightStick_DPadSouth, + k_EControllerActionOrigin_PS4_RightStick_DPadWest, + k_EControllerActionOrigin_PS4_RightStick_DPadEast, + k_EControllerActionOrigin_PS4_DPad_North, + k_EControllerActionOrigin_PS4_DPad_South, + k_EControllerActionOrigin_PS4_DPad_West, + k_EControllerActionOrigin_PS4_DPad_East, + k_EControllerActionOrigin_PS4_Gyro_Move, + k_EControllerActionOrigin_PS4_Gyro_Pitch, + k_EControllerActionOrigin_PS4_Gyro_Yaw, + k_EControllerActionOrigin_PS4_Gyro_Roll, + + // XBox One + k_EControllerActionOrigin_XBoxOne_A, + k_EControllerActionOrigin_XBoxOne_B, + k_EControllerActionOrigin_XBoxOne_X, + k_EControllerActionOrigin_XBoxOne_Y, + k_EControllerActionOrigin_XBoxOne_LeftBumper, + k_EControllerActionOrigin_XBoxOne_RightBumper, + k_EControllerActionOrigin_XBoxOne_Menu, //Start + k_EControllerActionOrigin_XBoxOne_View, //Back + k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull, + k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click, + k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull, + k_EControllerActionOrigin_XBoxOne_RightTrigger_Click, + k_EControllerActionOrigin_XBoxOne_LeftStick_Move, + k_EControllerActionOrigin_XBoxOne_LeftStick_Click, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast, + k_EControllerActionOrigin_XBoxOne_RightStick_Move, + k_EControllerActionOrigin_XBoxOne_RightStick_Click, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast, + k_EControllerActionOrigin_XBoxOne_DPad_North, + k_EControllerActionOrigin_XBoxOne_DPad_South, + k_EControllerActionOrigin_XBoxOne_DPad_West, + k_EControllerActionOrigin_XBoxOne_DPad_East, + + // XBox 360 + k_EControllerActionOrigin_XBox360_A, + k_EControllerActionOrigin_XBox360_B, + k_EControllerActionOrigin_XBox360_X, + k_EControllerActionOrigin_XBox360_Y, + k_EControllerActionOrigin_XBox360_LeftBumper, + k_EControllerActionOrigin_XBox360_RightBumper, + k_EControllerActionOrigin_XBox360_Start, //Start + k_EControllerActionOrigin_XBox360_Back, //Back + k_EControllerActionOrigin_XBox360_LeftTrigger_Pull, + k_EControllerActionOrigin_XBox360_LeftTrigger_Click, + k_EControllerActionOrigin_XBox360_RightTrigger_Pull, + k_EControllerActionOrigin_XBox360_RightTrigger_Click, + k_EControllerActionOrigin_XBox360_LeftStick_Move, + k_EControllerActionOrigin_XBox360_LeftStick_Click, + k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth, + k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth, + k_EControllerActionOrigin_XBox360_LeftStick_DPadWest, + k_EControllerActionOrigin_XBox360_LeftStick_DPadEast, + k_EControllerActionOrigin_XBox360_RightStick_Move, + k_EControllerActionOrigin_XBox360_RightStick_Click, + k_EControllerActionOrigin_XBox360_RightStick_DPadNorth, + k_EControllerActionOrigin_XBox360_RightStick_DPadSouth, + k_EControllerActionOrigin_XBox360_RightStick_DPadWest, + k_EControllerActionOrigin_XBox360_RightStick_DPadEast, + k_EControllerActionOrigin_XBox360_DPad_North, + k_EControllerActionOrigin_XBox360_DPad_South, + k_EControllerActionOrigin_XBox360_DPad_West, + k_EControllerActionOrigin_XBox360_DPad_East, + + // SteamController V2 + k_EControllerActionOrigin_SteamV2_A, + k_EControllerActionOrigin_SteamV2_B, + k_EControllerActionOrigin_SteamV2_X, + k_EControllerActionOrigin_SteamV2_Y, + k_EControllerActionOrigin_SteamV2_LeftBumper, + k_EControllerActionOrigin_SteamV2_RightBumper, + k_EControllerActionOrigin_SteamV2_LeftGrip_Lower, + k_EControllerActionOrigin_SteamV2_LeftGrip_Upper, + k_EControllerActionOrigin_SteamV2_RightGrip_Lower, + k_EControllerActionOrigin_SteamV2_RightGrip_Upper, + k_EControllerActionOrigin_SteamV2_LeftBumper_Pressure, + k_EControllerActionOrigin_SteamV2_RightBumper_Pressure, + k_EControllerActionOrigin_SteamV2_LeftGrip_Pressure, + k_EControllerActionOrigin_SteamV2_RightGrip_Pressure, + k_EControllerActionOrigin_SteamV2_LeftGrip_Upper_Pressure, + k_EControllerActionOrigin_SteamV2_RightGrip_Upper_Pressure, + k_EControllerActionOrigin_SteamV2_Start, + k_EControllerActionOrigin_SteamV2_Back, + k_EControllerActionOrigin_SteamV2_LeftPad_Touch, + k_EControllerActionOrigin_SteamV2_LeftPad_Swipe, + k_EControllerActionOrigin_SteamV2_LeftPad_Click, + k_EControllerActionOrigin_SteamV2_LeftPad_Pressure, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast, + k_EControllerActionOrigin_SteamV2_RightPad_Touch, + k_EControllerActionOrigin_SteamV2_RightPad_Swipe, + k_EControllerActionOrigin_SteamV2_RightPad_Click, + k_EControllerActionOrigin_SteamV2_RightPad_Pressure, + k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth, + k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth, + k_EControllerActionOrigin_SteamV2_RightPad_DPadWest, + k_EControllerActionOrigin_SteamV2_RightPad_DPadEast, + k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull, + k_EControllerActionOrigin_SteamV2_LeftTrigger_Click, + k_EControllerActionOrigin_SteamV2_RightTrigger_Pull, + k_EControllerActionOrigin_SteamV2_RightTrigger_Click, + k_EControllerActionOrigin_SteamV2_LeftStick_Move, + k_EControllerActionOrigin_SteamV2_LeftStick_Click, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast, + k_EControllerActionOrigin_SteamV2_Gyro_Move, + k_EControllerActionOrigin_SteamV2_Gyro_Pitch, + k_EControllerActionOrigin_SteamV2_Gyro_Yaw, + k_EControllerActionOrigin_SteamV2_Gyro_Roll, + + // Switch - Pro or Joycons used as a single input device. + // This does not apply to a single joycon + k_EControllerActionOrigin_Switch_A, + k_EControllerActionOrigin_Switch_B, + k_EControllerActionOrigin_Switch_X, + k_EControllerActionOrigin_Switch_Y, + k_EControllerActionOrigin_Switch_LeftBumper, + k_EControllerActionOrigin_Switch_RightBumper, + k_EControllerActionOrigin_Switch_Plus, //Start + k_EControllerActionOrigin_Switch_Minus, //Back + k_EControllerActionOrigin_Switch_Capture, + k_EControllerActionOrigin_Switch_LeftTrigger_Pull, + k_EControllerActionOrigin_Switch_LeftTrigger_Click, + k_EControllerActionOrigin_Switch_RightTrigger_Pull, + k_EControllerActionOrigin_Switch_RightTrigger_Click, + k_EControllerActionOrigin_Switch_LeftStick_Move, + k_EControllerActionOrigin_Switch_LeftStick_Click, + k_EControllerActionOrigin_Switch_LeftStick_DPadNorth, + k_EControllerActionOrigin_Switch_LeftStick_DPadSouth, + k_EControllerActionOrigin_Switch_LeftStick_DPadWest, + k_EControllerActionOrigin_Switch_LeftStick_DPadEast, + k_EControllerActionOrigin_Switch_RightStick_Move, + k_EControllerActionOrigin_Switch_RightStick_Click, + k_EControllerActionOrigin_Switch_RightStick_DPadNorth, + k_EControllerActionOrigin_Switch_RightStick_DPadSouth, + k_EControllerActionOrigin_Switch_RightStick_DPadWest, + k_EControllerActionOrigin_Switch_RightStick_DPadEast, + k_EControllerActionOrigin_Switch_DPad_North, + k_EControllerActionOrigin_Switch_DPad_South, + k_EControllerActionOrigin_Switch_DPad_West, + k_EControllerActionOrigin_Switch_DPad_East, + k_EControllerActionOrigin_Switch_ProGyro_Move, // Primary Gyro in Pro Controller, or Right JoyCon + k_EControllerActionOrigin_Switch_ProGyro_Pitch, // Primary Gyro in Pro Controller, or Right JoyCon + k_EControllerActionOrigin_Switch_ProGyro_Yaw, // Primary Gyro in Pro Controller, or Right JoyCon + k_EControllerActionOrigin_Switch_ProGyro_Roll, // Primary Gyro in Pro Controller, or Right JoyCon + // Switch JoyCon Specific + k_EControllerActionOrigin_Switch_RightGyro_Move, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_RightGyro_Pitch, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_RightGyro_Yaw, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_RightGyro_Roll, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_LeftGyro_Move, + k_EControllerActionOrigin_Switch_LeftGyro_Pitch, + k_EControllerActionOrigin_Switch_LeftGyro_Yaw, + k_EControllerActionOrigin_Switch_LeftGyro_Roll, + k_EControllerActionOrigin_Switch_LeftGrip_Lower, // Left JoyCon SR Button + k_EControllerActionOrigin_Switch_LeftGrip_Upper, // Left JoyCon SL Button + k_EControllerActionOrigin_Switch_RightGrip_Lower, // Right JoyCon SL Button + k_EControllerActionOrigin_Switch_RightGrip_Upper, // Right JoyCon SR Button + + // Added in SDK 1.45 + k_EControllerActionOrigin_PS4_DPad_Move, + k_EControllerActionOrigin_XBoxOne_DPad_Move, + k_EControllerActionOrigin_XBox360_DPad_Move, + k_EControllerActionOrigin_Switch_DPad_Move, + + // Added in SDK 1.51 + k_EControllerActionOrigin_PS5_X, + k_EControllerActionOrigin_PS5_Circle, + k_EControllerActionOrigin_PS5_Triangle, + k_EControllerActionOrigin_PS5_Square, + k_EControllerActionOrigin_PS5_LeftBumper, + k_EControllerActionOrigin_PS5_RightBumper, + k_EControllerActionOrigin_PS5_Option, //Start + k_EControllerActionOrigin_PS5_Create, //Back + k_EControllerActionOrigin_PS5_Mute, + k_EControllerActionOrigin_PS5_LeftPad_Touch, + k_EControllerActionOrigin_PS5_LeftPad_Swipe, + k_EControllerActionOrigin_PS5_LeftPad_Click, + k_EControllerActionOrigin_PS5_LeftPad_DPadNorth, + k_EControllerActionOrigin_PS5_LeftPad_DPadSouth, + k_EControllerActionOrigin_PS5_LeftPad_DPadWest, + k_EControllerActionOrigin_PS5_LeftPad_DPadEast, + k_EControllerActionOrigin_PS5_RightPad_Touch, + k_EControllerActionOrigin_PS5_RightPad_Swipe, + k_EControllerActionOrigin_PS5_RightPad_Click, + k_EControllerActionOrigin_PS5_RightPad_DPadNorth, + k_EControllerActionOrigin_PS5_RightPad_DPadSouth, + k_EControllerActionOrigin_PS5_RightPad_DPadWest, + k_EControllerActionOrigin_PS5_RightPad_DPadEast, + k_EControllerActionOrigin_PS5_CenterPad_Touch, + k_EControllerActionOrigin_PS5_CenterPad_Swipe, + k_EControllerActionOrigin_PS5_CenterPad_Click, + k_EControllerActionOrigin_PS5_CenterPad_DPadNorth, + k_EControllerActionOrigin_PS5_CenterPad_DPadSouth, + k_EControllerActionOrigin_PS5_CenterPad_DPadWest, + k_EControllerActionOrigin_PS5_CenterPad_DPadEast, + k_EControllerActionOrigin_PS5_LeftTrigger_Pull, + k_EControllerActionOrigin_PS5_LeftTrigger_Click, + k_EControllerActionOrigin_PS5_RightTrigger_Pull, + k_EControllerActionOrigin_PS5_RightTrigger_Click, + k_EControllerActionOrigin_PS5_LeftStick_Move, + k_EControllerActionOrigin_PS5_LeftStick_Click, + k_EControllerActionOrigin_PS5_LeftStick_DPadNorth, + k_EControllerActionOrigin_PS5_LeftStick_DPadSouth, + k_EControllerActionOrigin_PS5_LeftStick_DPadWest, + k_EControllerActionOrigin_PS5_LeftStick_DPadEast, + k_EControllerActionOrigin_PS5_RightStick_Move, + k_EControllerActionOrigin_PS5_RightStick_Click, + k_EControllerActionOrigin_PS5_RightStick_DPadNorth, + k_EControllerActionOrigin_PS5_RightStick_DPadSouth, + k_EControllerActionOrigin_PS5_RightStick_DPadWest, + k_EControllerActionOrigin_PS5_RightStick_DPadEast, + k_EControllerActionOrigin_PS5_DPad_Move, + k_EControllerActionOrigin_PS5_DPad_North, + k_EControllerActionOrigin_PS5_DPad_South, + k_EControllerActionOrigin_PS5_DPad_West, + k_EControllerActionOrigin_PS5_DPad_East, + k_EControllerActionOrigin_PS5_Gyro_Move, + k_EControllerActionOrigin_PS5_Gyro_Pitch, + k_EControllerActionOrigin_PS5_Gyro_Yaw, + k_EControllerActionOrigin_PS5_Gyro_Roll, + + k_EControllerActionOrigin_XBoxOne_LeftGrip_Lower, + k_EControllerActionOrigin_XBoxOne_LeftGrip_Upper, + k_EControllerActionOrigin_XBoxOne_RightGrip_Lower, + k_EControllerActionOrigin_XBoxOne_RightGrip_Upper, + k_EControllerActionOrigin_XBoxOne_Share, + + // Added in SDK 1.53 + k_EControllerActionOrigin_SteamDeck_A, + k_EControllerActionOrigin_SteamDeck_B, + k_EControllerActionOrigin_SteamDeck_X, + k_EControllerActionOrigin_SteamDeck_Y, + k_EControllerActionOrigin_SteamDeck_L1, + k_EControllerActionOrigin_SteamDeck_R1, + k_EControllerActionOrigin_SteamDeck_Menu, + k_EControllerActionOrigin_SteamDeck_View, + k_EControllerActionOrigin_SteamDeck_LeftPad_Touch, + k_EControllerActionOrigin_SteamDeck_LeftPad_Swipe, + k_EControllerActionOrigin_SteamDeck_LeftPad_Click, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadNorth, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadSouth, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadWest, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadEast, + k_EControllerActionOrigin_SteamDeck_RightPad_Touch, + k_EControllerActionOrigin_SteamDeck_RightPad_Swipe, + k_EControllerActionOrigin_SteamDeck_RightPad_Click, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadNorth, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadSouth, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadWest, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadEast, + k_EControllerActionOrigin_SteamDeck_L2_SoftPull, + k_EControllerActionOrigin_SteamDeck_L2, + k_EControllerActionOrigin_SteamDeck_R2_SoftPull, + k_EControllerActionOrigin_SteamDeck_R2, + k_EControllerActionOrigin_SteamDeck_LeftStick_Move, + k_EControllerActionOrigin_SteamDeck_L3, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadNorth, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadSouth, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadWest, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadEast, + k_EControllerActionOrigin_SteamDeck_LeftStick_Touch, + k_EControllerActionOrigin_SteamDeck_RightStick_Move, + k_EControllerActionOrigin_SteamDeck_R3, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadNorth, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadSouth, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadWest, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadEast, + k_EControllerActionOrigin_SteamDeck_RightStick_Touch, + k_EControllerActionOrigin_SteamDeck_L4, + k_EControllerActionOrigin_SteamDeck_R4, + k_EControllerActionOrigin_SteamDeck_L5, + k_EControllerActionOrigin_SteamDeck_R5, + k_EControllerActionOrigin_SteamDeck_DPad_Move, + k_EControllerActionOrigin_SteamDeck_DPad_North, + k_EControllerActionOrigin_SteamDeck_DPad_South, + k_EControllerActionOrigin_SteamDeck_DPad_West, + k_EControllerActionOrigin_SteamDeck_DPad_East, + k_EControllerActionOrigin_SteamDeck_Gyro_Move, + k_EControllerActionOrigin_SteamDeck_Gyro_Pitch, + k_EControllerActionOrigin_SteamDeck_Gyro_Yaw, + k_EControllerActionOrigin_SteamDeck_Gyro_Roll, + k_EControllerActionOrigin_SteamDeck_Reserved1, + k_EControllerActionOrigin_SteamDeck_Reserved2, + k_EControllerActionOrigin_SteamDeck_Reserved3, + k_EControllerActionOrigin_SteamDeck_Reserved4, + k_EControllerActionOrigin_SteamDeck_Reserved5, + k_EControllerActionOrigin_SteamDeck_Reserved6, + k_EControllerActionOrigin_SteamDeck_Reserved7, + k_EControllerActionOrigin_SteamDeck_Reserved8, + k_EControllerActionOrigin_SteamDeck_Reserved9, + k_EControllerActionOrigin_SteamDeck_Reserved10, + k_EControllerActionOrigin_SteamDeck_Reserved11, + k_EControllerActionOrigin_SteamDeck_Reserved12, + k_EControllerActionOrigin_SteamDeck_Reserved13, + k_EControllerActionOrigin_SteamDeck_Reserved14, + k_EControllerActionOrigin_SteamDeck_Reserved15, + k_EControllerActionOrigin_SteamDeck_Reserved16, + k_EControllerActionOrigin_SteamDeck_Reserved17, + k_EControllerActionOrigin_SteamDeck_Reserved18, + k_EControllerActionOrigin_SteamDeck_Reserved19, + k_EControllerActionOrigin_SteamDeck_Reserved20, + + k_EControllerActionOrigin_Switch_JoyConButton_N, // With a Horizontal JoyCon this will be Y or what would be Dpad Right when vertical + k_EControllerActionOrigin_Switch_JoyConButton_E, // X + k_EControllerActionOrigin_Switch_JoyConButton_S, // A + k_EControllerActionOrigin_Switch_JoyConButton_W, // B + + k_EControllerActionOrigin_PS5_LeftGrip, + k_EControllerActionOrigin_PS5_RightGrip, + k_EControllerActionOrigin_PS5_LeftFn, + k_EControllerActionOrigin_PS5_RightFn, + + k_EControllerActionOrigin_Count, // If Steam has added support for new controllers origins will go here. + k_EControllerActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits. +}; + +#ifndef ISTEAMINPUT_H +enum EXboxOrigin +{ + k_EXboxOrigin_A, + k_EXboxOrigin_B, + k_EXboxOrigin_X, + k_EXboxOrigin_Y, + k_EXboxOrigin_LeftBumper, + k_EXboxOrigin_RightBumper, + k_EXboxOrigin_Menu, //Start + k_EXboxOrigin_View, //Back + k_EXboxOrigin_LeftTrigger_Pull, + k_EXboxOrigin_LeftTrigger_Click, + k_EXboxOrigin_RightTrigger_Pull, + k_EXboxOrigin_RightTrigger_Click, + k_EXboxOrigin_LeftStick_Move, + k_EXboxOrigin_LeftStick_Click, + k_EXboxOrigin_LeftStick_DPadNorth, + k_EXboxOrigin_LeftStick_DPadSouth, + k_EXboxOrigin_LeftStick_DPadWest, + k_EXboxOrigin_LeftStick_DPadEast, + k_EXboxOrigin_RightStick_Move, + k_EXboxOrigin_RightStick_Click, + k_EXboxOrigin_RightStick_DPadNorth, + k_EXboxOrigin_RightStick_DPadSouth, + k_EXboxOrigin_RightStick_DPadWest, + k_EXboxOrigin_RightStick_DPadEast, + k_EXboxOrigin_DPad_North, + k_EXboxOrigin_DPad_South, + k_EXboxOrigin_DPad_West, + k_EXboxOrigin_DPad_East, +}; + +enum ESteamInputType +{ + k_ESteamInputType_Unknown, + k_ESteamInputType_SteamController, + k_ESteamInputType_XBox360Controller, + k_ESteamInputType_XBoxOneController, + k_ESteamInputType_GenericGamepad, // DirectInput controllers + k_ESteamInputType_PS4Controller, + k_ESteamInputType_AppleMFiController, // Unused + k_ESteamInputType_AndroidController, // Unused + k_ESteamInputType_SwitchJoyConPair, // Unused + k_ESteamInputType_SwitchJoyConSingle, // Unused + k_ESteamInputType_SwitchProController, + k_ESteamInputType_MobileTouch, // Steam Link App On-screen Virtual Controller + k_ESteamInputType_PS3Controller, // Currently uses PS4 Origins + k_ESteamInputType_PS5Controller, // Added in SDK 151 + k_ESteamInputType_Count, + k_ESteamInputType_MaximumPossibleValue = 255, +}; +#endif + +enum ESteamControllerLEDFlag +{ + k_ESteamControllerLEDFlag_SetColor, + k_ESteamControllerLEDFlag_RestoreUserDefault }; // ControllerHandle_t is used to refer to a specific controller. @@ -123,6 +535,11 @@ typedef uint64 ControllerAnalogActionHandle_t; #pragma pack( push, 1 ) +#ifdef ISTEAMINPUT_H +#define ControllerAnalogActionData_t InputAnalogActionData_t +#define ControllerDigitalActionData_t InputDigitalActionData_t +#define ControllerMotionData_t InputMotionData_t +#else struct ControllerAnalogActionData_t { // Type of data coming from this action, this will match what got specified in the action set @@ -162,12 +579,12 @@ struct ControllerMotionData_t float rotVelY; float rotVelZ; }; - +#endif #pragma pack( pop ) //----------------------------------------------------------------------------- -// Purpose: Native Steam controller support API +// Purpose: Steam Input API //----------------------------------------------------------------------------- class ISteamController { @@ -179,19 +596,19 @@ public: // Synchronize API state with the latest Steam Controller inputs available. This // is performed automatically by SteamAPI_RunCallbacks, but for the absolute lowest - // possible latency, you call this directly before reading controller state. + // possible latency, you call this directly before reading controller state. This must + // be called from somewhere before GetConnectedControllers will return any handles virtual void RunFrame() = 0; // Enumerate currently connected controllers // handlesOut should point to a STEAM_CONTROLLER_MAX_COUNT sized array of ControllerHandle_t handles // Returns the number of handles written to handlesOut - virtual int GetConnectedControllers( ControllerHandle_t *handlesOut ) = 0; - - // Invokes the Steam overlay and brings up the binding screen - // Returns false is overlay is disabled / unavailable, or the user is not in Big Picture mode - virtual bool ShowBindingPanel( ControllerHandle_t controllerHandle ) = 0; + virtual int GetConnectedControllers( STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_COUNT, Receives list of connected controllers ) ControllerHandle_t *handlesOut ) = 0; + //----------------------------------------------------------------------------- // ACTION SETS + //----------------------------------------------------------------------------- + // Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls. virtual ControllerActionSetHandle_t GetActionSetHandle( const char *pszActionSetName ) = 0; @@ -200,8 +617,20 @@ public: // your state loops, instead of trying to place it in all of your state transitions. virtual void ActivateActionSet( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle ) = 0; virtual ControllerActionSetHandle_t GetCurrentActionSet( ControllerHandle_t controllerHandle ) = 0; - + + // ACTION SET LAYERS + virtual void ActivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle ) = 0; + // Enumerate currently active layers + // handlesOut should point to a STEAM_CONTROLLER_MAX_ACTIVE_LAYERS sized array of ControllerActionSetHandle_t handles. + // Returns the number of handles written to handlesOut + virtual int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ACTIVE_LAYERS, Receives list of active layers ) ControllerActionSetHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- // ACTIONS + //----------------------------------------------------------------------------- + // Lookup the handle for a digital action. Best to do this once on startup, and store the handles for all future API calls. virtual ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName ) = 0; @@ -209,8 +638,9 @@ public: virtual ControllerDigitalActionData_t GetDigitalActionData( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle ) = 0; // Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. - // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles - virtual int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin *originsOut ) = 0; + // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles. The EControllerActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ORIGINS, Receives list of aciton origins ) EControllerActionOrigin *originsOut ) = 0; // Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls. virtual ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName ) = 0; @@ -219,11 +649,25 @@ public: virtual ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle ) = 0; // Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. - // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles - virtual int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin *originsOut ) = 0; - - virtual void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction ) = 0; + // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles. The EControllerActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ORIGINS, Receives list of action origins ) EControllerActionOrigin *originsOut ) = 0; + // Get a local path to art for on-screen glyph for a particular origin - this call is cheap + virtual const char *GetGlyphForActionOrigin( EControllerActionOrigin eOrigin ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified origin - this call is serialized + virtual const char *GetStringForActionOrigin( EControllerActionOrigin eOrigin ) = 0; + + virtual void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction ) = 0; + + // Returns raw motion data from the specified controller + virtual ControllerMotionData_t GetMotionData( ControllerHandle_t controllerHandle ) = 0; + + //----------------------------------------------------------------------------- + // OUTPUTS + //----------------------------------------------------------------------------- + // Trigger a haptic pulse on a controller virtual void TriggerHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ) = 0; @@ -231,21 +675,52 @@ public: // nFlags is currently unused and reserved for future use. virtual void TriggerRepeatedHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ) = 0; - // Returns the associated gamepad index for the specified controller, if emulating a gamepad + // Trigger a vibration event on supported controllers. + virtual void TriggerVibration( ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ) = 0; + + // Set the controller LED color on supported controllers. + virtual void SetLEDColor( ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ) = 0; + + //----------------------------------------------------------------------------- + // Utility functions available without using the rest of Steam Input API + //----------------------------------------------------------------------------- + + // Invokes the Steam overlay and brings up the binding screen if the user is using Big Picture Mode + // If the user is not in Big Picture Mode it will open up the binding in a new window + virtual bool ShowBindingPanel( ControllerHandle_t controllerHandle ) = 0; + + // Returns the input type for a particular handle - unlike EControllerActionOrigin which update with Steam and may return unrecognized values + // ESteamInputType will remain static and only return valid values from your SDK version + virtual ESteamInputType GetInputTypeForHandle( ControllerHandle_t controllerHandle ) = 0; + + // Returns the associated controller handle for the specified emulated gamepad - can be used with the above 2 functions + // to identify controllers presented to your game over Xinput. Returns 0 if the Xinput index isn't associated with Steam Input + virtual ControllerHandle_t GetControllerForGamepadIndex( int nIndex ) = 0; + + // Returns the associated gamepad index for the specified controller, if emulating a gamepad or -1 if not associated with an Xinput index virtual int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle ) = 0; - // Returns the associated controller handle for the specified emulated gamepad - virtual ControllerHandle_t GetControllerForGamepadIndex( int nIndex ) = 0; - - // Returns raw motion data from the specified controller - virtual ControllerMotionData_t GetMotionData( ControllerHandle_t controllerHandle ) = 0; - - // Attempt to display origins of given action in the controller HUD, for the currently active action set - // Returns false is overlay is disabled / unavailable, or the user is not in Big Picture mode - virtual bool ShowDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition ) = 0; - virtual bool ShowAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle, float flScale, float flXPosition, float flYPosition ) = 0; + // Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. + virtual const char *GetStringForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get a local path to art for on-screen glyph for a particular Xbox controller origin. + virtual const char *GetGlyphForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get the equivalent ActionOrigin for a given Xbox controller origin this can be chained with GetGlyphForActionOrigin to provide future proof glyphs for + // non-Steam Input API action games. Note - this only translates the buttons directly and doesn't take into account any remapping a user has made in their configuration + virtual EControllerActionOrigin GetActionOriginFromXboxOrigin( ControllerHandle_t controllerHandle, EXboxOrigin eOrigin ) = 0; + + // Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EControllerActionOrigin_None + virtual EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin ) = 0; + + // Get the binding revision for a given device. Returns false if the handle was not valid or if a mapping is not yet loaded for the device + virtual bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor ) = 0; }; -#define STEAMCONTROLLER_INTERFACE_VERSION "SteamController004" +#define STEAMCONTROLLER_INTERFACE_VERSION "SteamController008" + +// Global interface accessor +inline ISteamController *SteamController(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamController *, SteamController, STEAMCONTROLLER_INTERFACE_VERSION ); #endif // ISTEAMCONTROLLER_H diff --git a/lib/osx/include/steam/isteamdualsense.h b/lib/osx/include/steam/isteamdualsense.h new file mode 100644 index 0000000..5acc857 --- /dev/null +++ b/lib/osx/include/steam/isteamdualsense.h @@ -0,0 +1,169 @@ +/* SIE CONFIDENTIAL + * $PSLibId$ + * Copyright (C) 2019 Sony Interactive Entertainment Inc. + * All Rights Reserved. + */ + + +#ifndef _SCE_PAD_TRIGGER_EFFECT_H +#define _SCE_PAD_TRIGGER_EFFECT_H + + +#define SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_L2 0x01 +#define SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_R2 0x02 + +#define SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_L2 0 +#define SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_R2 1 + +#define SCE_PAD_TRIGGER_EFFECT_TRIGGER_NUM 2 + +/* Definition of control point num */ +#define SCE_PAD_TRIGGER_EFFECT_CONTROL_POINT_NUM 10 + +typedef enum ScePadTriggerEffectMode{ + SCE_PAD_TRIGGER_EFFECT_MODE_OFF, + SCE_PAD_TRIGGER_EFFECT_MODE_FEEDBACK, + SCE_PAD_TRIGGER_EFFECT_MODE_WEAPON, + SCE_PAD_TRIGGER_EFFECT_MODE_VIBRATION, + SCE_PAD_TRIGGER_EFFECT_MODE_MULTIPLE_POSITION_FEEDBACK, + SCE_PAD_TRIGGER_EFFECT_MODE_SLOPE_FEEDBACK, + SCE_PAD_TRIGGER_EFFECT_MODE_MULTIPLE_POSITION_VIBRATION, +} ScePadTriggerEffectMode; + +/** + *E + * @brief parameter for setting the trigger effect to off mode. + * Off Mode: Stop trigger effect. + **/ +typedef struct ScePadTriggerEffectOffParam{ + uint8_t padding[48]; +} ScePadTriggerEffectOffParam; + +/** + *E + * @brief parameter for setting the trigger effect to Feedback mode. + * Feedback Mode: The motor arm pushes back trigger. + * Trigger obtains stiffness at specified position. + **/ +typedef struct ScePadTriggerEffectFeedbackParam{ + uint8_t position; /*E position where the strength of target trigger start changing(0~9). */ + uint8_t strength; /*E strength that the motor arm pushes back target trigger(0~8 (0: Same as Off mode)). */ + uint8_t padding[46]; +} ScePadTriggerEffectFeedbackParam; + +/** + *E + * @brief parameter for setting the trigger effect to Weapon mode. + * Weapon Mode: Emulate weapon like gun trigger. + **/ +typedef struct ScePadTriggerEffectWeaponParam{ + uint8_t startPosition; /*E position where the stiffness of trigger start changing(2~7). */ + uint8_t endPosition; /*E position where the stiffness of trigger finish changing(startPosition+1~8). */ + uint8_t strength; /*E strength of gun trigger(0~8 (0: Same as Off mode)). */ + uint8_t padding[45]; +} ScePadTriggerEffectWeaponParam; + +/** + *E + * @brief parameter for setting the trigger effect to Vibration mode. + * Vibration Mode: Vibrates motor arm around specified position. + **/ +typedef struct ScePadTriggerEffectVibrationParam{ + uint8_t position; /*E position where the motor arm start vibrating(0~9). */ + uint8_t amplitude; /*E vibration amplitude(0~8 (0: Same as Off mode)). */ + uint8_t frequency; /*E vibration frequency(0~255[Hz] (0: Same as Off mode)). */ + uint8_t padding[45]; +} ScePadTriggerEffectVibrationParam; + +/** + *E + * @brief parameter for setting the trigger effect to ScePadTriggerEffectMultiplePositionFeedbackParam mode. + * Multi Position Feedback Mode: The motor arm pushes back trigger. + * Trigger obtains specified stiffness at each control point. + **/ +typedef struct ScePadTriggerEffectMultiplePositionFeedbackParam{ + uint8_t strength[SCE_PAD_TRIGGER_EFFECT_CONTROL_POINT_NUM]; /*E strength that the motor arm pushes back target trigger at position(0~8 (0: Same as Off mode)). + * strength[0] means strength of motor arm at position0. + * strength[1] means strength of motor arm at position1. + * ... + * */ + uint8_t padding[38]; +} ScePadTriggerEffectMultiplePositionFeedbackParam; + +/** + *E + * @brief parameter for setting the trigger effect to Feedback3 mode. + * Slope Feedback Mode: The motor arm pushes back trigger between two spedified control points. + * Stiffness of the trigger is changing depending on the set place. + **/ +typedef struct ScePadTriggerEffectSlopeFeedbackParam{ + + uint8_t startPosition; /*E position where the strength of target trigger start changing(0~endPosition). */ + uint8_t endPosition; /*E position where the strength of target trigger finish changing(startPosition+1~9). */ + uint8_t startStrength; /*E strength when trigger's position is startPosition(1~8) */ + uint8_t endStrength; /*E strength when trigger's position is endPosition(1~8) */ + uint8_t padding[44]; +} ScePadTriggerEffectSlopeFeedbackParam; + +/** + *E + * @brief parameter for setting the trigger effect to Vibration2 mode. + * Multi Position Vibration Mode: Vibrates motor arm around specified control point. + * Trigger vibrates specified amplitude at each control point. + **/ +typedef struct ScePadTriggerEffectMultiplePositionVibrationParam{ + uint8_t frequency; /*E vibration frequency(0~255 (0: Same as Off mode)) */ + uint8_t amplitude[SCE_PAD_TRIGGER_EFFECT_CONTROL_POINT_NUM]; /*E vibration amplitude at position(0~8 (0: Same as Off mode)). + * amplitude[0] means amplitude of vibration at position0. + * amplitude[1] means amplitude of vibration at position1. + * ... + * */ + uint8_t padding[37]; +} ScePadTriggerEffectMultiplePositionVibrationParam; + +/** + *E + * @brief parameter for setting the trigger effect mode. + **/ +typedef union ScePadTriggerEffectCommandData{ + ScePadTriggerEffectOffParam offParam; + ScePadTriggerEffectFeedbackParam feedbackParam; + ScePadTriggerEffectWeaponParam weaponParam; + ScePadTriggerEffectVibrationParam vibrationParam; + ScePadTriggerEffectMultiplePositionFeedbackParam multiplePositionFeedbackParam; + ScePadTriggerEffectSlopeFeedbackParam slopeFeedbackParam; + ScePadTriggerEffectMultiplePositionVibrationParam multiplePositionVibrationParam; +} ScePadTriggerEffectCommandData; + +/** + *E + * @brief parameter for setting the trigger effect. + **/ +typedef struct ScePadTriggerEffectCommand{ + ScePadTriggerEffectMode mode; + uint8_t padding[4]; + ScePadTriggerEffectCommandData commandData; +} ScePadTriggerEffectCommand; + +/** + *E + * @brief parameter for the scePadSetTriggerEffect function. + **/ +typedef struct ScePadTriggerEffectParam{ + + uint8_t triggerMask; /*E Set trigger mask to activate trigger effect commands. + * SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_L2 : 0x01 + * SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_R2 : 0x02 + * */ + uint8_t padding[7]; + + ScePadTriggerEffectCommand command[SCE_PAD_TRIGGER_EFFECT_TRIGGER_NUM]; /*E command[SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_L2] is for L2 trigger setting + * and param[SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_R2] is for R2 trgger setting. + * */ +} ScePadTriggerEffectParam; + +#if defined(__cplusplus) && __cplusplus >= 201103L +static_assert( sizeof( ScePadTriggerEffectParam ) == 120, "ScePadTriggerEffectParam has incorrect size" ); +#endif + +#endif /* _SCE_PAD_TRIGGER_EFFECT_H */ diff --git a/lib/osx/include/steam/isteamfriends.h b/lib/osx/include/steam/isteamfriends.h index 8013356..26351ee 100644 --- a/lib/osx/include/steam/isteamfriends.h +++ b/lib/osx/include/steam/isteamfriends.h @@ -1,4 +1,4 @@ -//====== Copyright (C) 1996-2008, Valve Corporation, All rights reserved. ===== +//====== Copyright Valve Corporation, All rights reserved. ==================== // // Purpose: interface to both friends list data and general information about users // @@ -10,9 +10,7 @@ #pragma once #endif -#include "isteamclient.h" -#include "steamclientpublic.h" - +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: set of relationships to other users @@ -59,6 +57,7 @@ enum EPersonaState k_EPersonaStateSnooze = 4, // auto-away for a long time k_EPersonaStateLookingToTrade = 5, // Online, trading k_EPersonaStateLookingToPlay = 6, // Online, wanting to play + k_EPersonaStateInvisible = 7, // Online, but appears offline to friends. This status is never published to clients. k_EPersonaStateMax, }; @@ -80,7 +79,7 @@ enum EFriendFlags k_EFriendFlagRequestingInfo = 0x100, k_EFriendFlagIgnored = 0x200, k_EFriendFlagIgnoredFriend = 0x400, - k_EFriendFlagSuggested = 0x800, + // k_EFriendFlagSuggested = 0x800, // not used k_EFriendFlagChatMember = 0x1000, k_EFriendFlagAll = 0xFFFF, }; @@ -92,7 +91,7 @@ enum EFriendFlags #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct FriendGameInfo_t { @@ -104,6 +103,10 @@ struct FriendGameInfo_t }; #pragma pack( pop ) +// special values for FriendGameInfo_t::m_usQueryPort +const uint16 k_usFriendGameInfoQueryPort_NotInitialized = 0xFFFF; // We haven't asked the GS for this query port's actual value yet. Was #define QUERY_PORT_NOT_INITIALIZED in older versions of Steamworks SDK. +const uint16 k_usFriendGameInfoQueryPort_Error = 0xFFFE; // We were unable to get the query port for this server. Was #define QUERY_PORT_ERROR in older versions of Steamworks SDK. + // maximum number of characters in a user's name. Two flavors; one for UTF-8 and one for UTF-16. // The UTF-8 version has to be very generous to accomodate characters that get large when encoded // in UTF-8. @@ -128,22 +131,11 @@ enum EUserRestriction k_nUserRestrictionTrading = 64, // user cannot participate in trading (console, mobile) }; -//----------------------------------------------------------------------------- -// Purpose: information about user sessions -//----------------------------------------------------------------------------- -struct FriendSessionStateInfo_t -{ - uint32 m_uiOnlineSessionInstances; - uint8 m_uiPublishedToFriendsSessionInstance; -}; - - - // size limit on chat room or member metadata const uint32 k_cubChatMetadataMax = 8192; // size limits on Rich Presence data -enum { k_cchMaxRichPresenceKeys = 20 }; +enum { k_cchMaxRichPresenceKeys = 30 }; enum { k_cchMaxRichPresenceKeyLength = 64 }; enum { k_cchMaxRichPresenceValueLength = 256 }; @@ -155,6 +147,47 @@ enum EOverlayToStoreFlag k_EOverlayToStoreFlag_AddToCartAndShow = 2, }; + +//----------------------------------------------------------------------------- +// Purpose: Tells Steam where to place the browser window inside the overlay +//----------------------------------------------------------------------------- +enum EActivateGameOverlayToWebPageMode +{ + k_EActivateGameOverlayToWebPageMode_Default = 0, // Browser will open next to all other windows that the user has open in the overlay. + // The window will remain open, even if the user closes then re-opens the overlay. + + k_EActivateGameOverlayToWebPageMode_Modal = 1 // Browser will be opened in a special overlay configuration which hides all other windows + // that the user has open in the overlay. When the user closes the overlay, the browser window + // will also close. When the user closes the browser window, the overlay will automatically close. +}; + +//----------------------------------------------------------------------------- +// Purpose: See GetProfileItemPropertyString and GetProfileItemPropertyUint +//----------------------------------------------------------------------------- +enum ECommunityProfileItemType +{ + k_ECommunityProfileItemType_AnimatedAvatar = 0, + k_ECommunityProfileItemType_AvatarFrame = 1, + k_ECommunityProfileItemType_ProfileModifier = 2, + k_ECommunityProfileItemType_ProfileBackground = 3, + k_ECommunityProfileItemType_MiniProfileBackground = 4, +}; +enum ECommunityProfileItemProperty +{ + k_ECommunityProfileItemProperty_ImageSmall = 0, // string + k_ECommunityProfileItemProperty_ImageLarge = 1, // string + k_ECommunityProfileItemProperty_InternalName = 2, // string + k_ECommunityProfileItemProperty_Title = 3, // string + k_ECommunityProfileItemProperty_Description = 4, // string + k_ECommunityProfileItemProperty_AppID = 5, // uint32 + k_ECommunityProfileItemProperty_TypeID = 6, // uint32 + k_ECommunityProfileItemProperty_Class = 7, // uint32 + k_ECommunityProfileItemProperty_MovieWebM = 8, // string + k_ECommunityProfileItemProperty_MovieMP4 = 9, // string + k_ECommunityProfileItemProperty_MovieWebMSmall = 10, // string + k_ECommunityProfileItemProperty_MovieMP4Small = 11, // string +}; + //----------------------------------------------------------------------------- // Purpose: interface to accessing information about individual users, // that can be a friend, in a group, on a game server or in a lobby with the local user @@ -176,7 +209,7 @@ public: // // If the name change fails to happen on the server, then an additional global PersonaStateChange_t will be posted // to change the name back, in addition to the SetPersonaNameResponse_t callback. - CALL_RESULT( SetPersonaNameResponse_t ) + STEAM_CALL_RESULT( SetPersonaNameResponse_t ) virtual SteamAPICall_t SetPersonaName( const char *pchPersonaName ) = 0; // gets the status of the current user @@ -207,13 +240,14 @@ public: virtual const char *GetFriendPersonaName( CSteamID steamIDFriend ) = 0; // returns true if the friend is actually in a game, and fills in pFriendGameInfo with an extra details - virtual bool GetFriendGamePlayed( CSteamID steamIDFriend, OUT_STRUCT() FriendGameInfo_t *pFriendGameInfo ) = 0; + virtual bool GetFriendGamePlayed( CSteamID steamIDFriend, STEAM_OUT_STRUCT() FriendGameInfo_t *pFriendGameInfo ) = 0; // accesses old friends names - returns an empty string when their are no more items in the history virtual const char *GetFriendPersonaNameHistory( CSteamID steamIDFriend, int iPersonaName ) = 0; // friends steam level virtual int GetFriendSteamLevel( CSteamID steamIDFriend ) = 0; // Returns nickname the current user has set for the specified player. Returns NULL if the no nickname has been set for that player. + // DEPRECATED: GetPersonaName follows the Steam nickname preferences, so apps shouldn't need to care about nicknames explicitly. virtual const char *GetPlayerNickname( CSteamID steamIDPlayer ) = 0; // friend grouping (tag) apis @@ -226,7 +260,7 @@ public: // returns the number of members in a given friends group virtual int GetFriendsGroupMembersCount( FriendsGroupID_t friendsGroupID ) = 0; // gets up to nMembersCount members of the given friends group, if fewer exist than requested those positions' SteamIDs will be invalid - virtual void GetFriendsGroupMembersList( FriendsGroupID_t friendsGroupID, OUT_ARRAY_CALL(nMembersCount, GetFriendsGroupMembersCount, friendsGroupID ) CSteamID *pOutSteamIDMembers, int nMembersCount ) = 0; + virtual void GetFriendsGroupMembersList( FriendsGroupID_t friendsGroupID, STEAM_OUT_ARRAY_CALL(nMembersCount, GetFriendsGroupMembersCount, friendsGroupID ) CSteamID *pOutSteamIDMembers, int nMembersCount ) = 0; // returns true if the specified user meets any of the criteria specified in iFriendFlags // iFriendFlags can be the union (binary or, |) of one or more k_EFriendFlags values @@ -239,8 +273,10 @@ public: virtual const char *GetClanTag( CSteamID steamIDClan ) = 0; // returns the most recent information we have about what's happening in a clan virtual bool GetClanActivityCounts( CSteamID steamIDClan, int *pnOnline, int *pnInGame, int *pnChatting ) = 0; + // for clans a user is a member of, they will have reasonably up-to-date information, but for others you'll have to download the info to have the latest - virtual SteamAPICall_t DownloadClanActivityCounts( ARRAY_COUNT(cClansToRequest) CSteamID *psteamIDClans, int cClansToRequest ) = 0; + STEAM_CALL_RESULT( DownloadClanActivityCountsResult_t ) + virtual SteamAPICall_t DownloadClanActivityCounts( STEAM_ARRAY_COUNT(cClansToRequest) CSteamID *psteamIDClans, int cClansToRequest ) = 0; // iterators for getting users in a chat room, lobby, game server or clan // note that large clans that cannot be iterated by the local user @@ -256,7 +292,8 @@ public: virtual void SetInGameVoiceSpeaking( CSteamID steamIDUser, bool bSpeaking ) = 0; // activates the game overlay, with an optional dialog to open - // valid options are "Friends", "Community", "Players", "Settings", "OfficialGameGroup", "Stats", "Achievements" + // valid options include "Friends", "Community", "Players", "Settings", "OfficialGameGroup", "Stats", "Achievements", + // "chatroomgroup/nnnn" virtual void ActivateGameOverlay( const char *pchDialog ) = 0; // activates game overlay to a specific place @@ -274,7 +311,7 @@ public: // activates game overlay web browser directly to the specified URL // full address with protocol type is required, e.g. http://www.steamgames.com/ - virtual void ActivateGameOverlayToWebPage( const char *pchURL ) = 0; + virtual void ActivateGameOverlayToWebPage( const char *pchURL, EActivateGameOverlayToWebPageMode eMode = k_EActivateGameOverlayToWebPageMode_Default ) = 0; // activates game overlay to store page for app virtual void ActivateGameOverlayToStore( AppId_t nAppID, EOverlayToStoreFlag eFlag ) = 0; @@ -309,7 +346,7 @@ public: // you can only ask about clans that a user is a member of // note that this won't download avatars automatically; if you get an officer, // and no avatar image is available, call RequestUserInformation( steamID, false ) to download the avatar - CALL_RESULT( ClanOfficerListResponse_t ) + STEAM_CALL_RESULT( ClanOfficerListResponse_t ) virtual SteamAPICall_t RequestClanOfficerList( CSteamID steamIDClan ) = 0; // iteration of clan officers - can only be done when a RequestClanOfficerList() call has completed @@ -328,9 +365,15 @@ public: // Rich Presence data is automatically shared between friends who are in the same game // Each user has a set of Key/Value pairs // Note the following limits: k_cchMaxRichPresenceKeys, k_cchMaxRichPresenceKeyLength, k_cchMaxRichPresenceValueLength - // There are two magic keys: + // There are five magic keys: // "status" - a UTF-8 string that will show up in the 'view game info' dialog in the Steam friends list // "connect" - a UTF-8 string that contains the command-line for how a friend can connect to a game + // "steam_display" - Names a rich presence localization token that will be displayed in the viewing user's selected language + // in the Steam client UI. For more info: https://partner.steamgames.com/doc/api/ISteamFriends#richpresencelocalization + // "steam_player_group" - When set, indicates to the Steam client that the player is a member of a particular group. Players in the same group + // may be organized together in various places in the Steam UI. + // "steam_player_group_size" - When set, indicates the total number of players in the steam_player_group. The Steam client may use this number to + // display additional information about a group when all of the members are not part of a user's friends list. // GetFriendRichPresence() returns an empty string "" if no value is set // SetRichPresence() to a NULL or an empty string deletes the key // You can iterate the current set of keys for a friend with GetFriendRichPresenceKeyCount() @@ -343,10 +386,9 @@ public: // Requests rich presence for a specific user. virtual void RequestFriendRichPresence( CSteamID steamIDFriend ) = 0; - // rich invite support - // if the target accepts the invite, the pchConnectString gets added to the command-line for launching the game - // if the game is already running, a GameRichPresenceJoinRequested_t callback is posted containing the connect string - // invites can only be sent to friends + // Rich invite support. + // If the target accepts the invite, a GameRichPresenceJoinRequested_t callback is posted containing the connect string. + // (Or you can configure your game so that it is passed on the command line instead. This is a deprecated path; ask us if you really need this.) virtual bool InviteUserToGame( CSteamID steamIDFriend, const char *pchConnectString ) = 0; // recently-played-with friends iteration @@ -361,13 +403,13 @@ public: // this allows in-game access to group (clan) chats from in the game // the behavior is somewhat sophisticated, because the user may or may not be already in the group chat from outside the game or in the overlay // use ActivateGameOverlayToUser( "chat", steamIDClan ) to open the in-game overlay version of the chat - CALL_RESULT( JoinClanChatRoomCompletionResult_t ) + STEAM_CALL_RESULT( JoinClanChatRoomCompletionResult_t ) virtual SteamAPICall_t JoinClanChatRoom( CSteamID steamIDClan ) = 0; virtual bool LeaveClanChatRoom( CSteamID steamIDClan ) = 0; virtual int GetClanChatMemberCount( CSteamID steamIDClan ) = 0; virtual CSteamID GetChatMemberByIndex( CSteamID steamIDClan, int iUser ) = 0; virtual bool SendClanChatMessage( CSteamID steamIDClanChat, const char *pchText ) = 0; - virtual int GetClanChatMessage( CSteamID steamIDClanChat, int iMessage, void *prgchText, int cchTextMax, EChatEntryType *peChatEntryType, OUT_STRUCT() CSteamID *psteamidChatter ) = 0; + virtual int GetClanChatMessage( CSteamID steamIDClanChat, int iMessage, void *prgchText, int cchTextMax, EChatEntryType *peChatEntryType, STEAM_OUT_STRUCT() CSteamID *psteamidChatter ) = 0; virtual bool IsClanChatAdmin( CSteamID steamIDClanChat, CSteamID steamIDUser ) = 0; // interact with the Steam (game overlay / desktop) @@ -382,15 +424,49 @@ public: virtual int GetFriendMessage( CSteamID steamIDFriend, int iMessageID, void *pvData, int cubData, EChatEntryType *peChatEntryType ) = 0; // following apis - CALL_RESULT( FriendsGetFollowerCount_t ) + STEAM_CALL_RESULT( FriendsGetFollowerCount_t ) virtual SteamAPICall_t GetFollowerCount( CSteamID steamID ) = 0; - CALL_RESULT( FriendsIsFollowing_t ) + STEAM_CALL_RESULT( FriendsIsFollowing_t ) virtual SteamAPICall_t IsFollowing( CSteamID steamID ) = 0; - CALL_RESULT( FriendsEnumerateFollowingList_t ) + STEAM_CALL_RESULT( FriendsEnumerateFollowingList_t ) virtual SteamAPICall_t EnumerateFollowingList( uint32 unStartIndex ) = 0; + + virtual bool IsClanPublic( CSteamID steamIDClan ) = 0; + virtual bool IsClanOfficialGameGroup( CSteamID steamIDClan ) = 0; + + /// Return the number of chats (friends or chat rooms) with unread messages. + /// A "priority" message is one that would generate some sort of toast or + /// notification, and depends on user settings. + /// + /// You can register for UnreadChatMessagesChanged_t callbacks to know when this + /// has potentially changed. + virtual int GetNumChatsWithUnreadPriorityMessages() = 0; + + // activates game overlay to open the remote play together invite dialog. Invitations will be sent for remote play together + virtual void ActivateGameOverlayRemotePlayTogetherInviteDialog( CSteamID steamIDLobby ) = 0; + + // Call this before calling ActivateGameOverlayToWebPage() to have the Steam Overlay Browser block navigations + // to your specified protocol (scheme) uris and instead dispatch a OverlayBrowserProtocolNavigation_t callback to your game. + // ActivateGameOverlayToWebPage() must have been called with k_EActivateGameOverlayToWebPageMode_Modal + virtual bool RegisterProtocolInOverlayBrowser( const char *pchProtocol ) = 0; + + // Activates the game overlay to open an invite dialog that will send the provided Rich Presence connect string to selected friends + virtual void ActivateGameOverlayInviteDialogConnectString( const char *pchConnectString ) = 0; + + // Steam Community items equipped by a user on their profile + // You can register for EquippedProfileItemsChanged_t to know when a friend has changed their equipped profile items + STEAM_CALL_RESULT( EquippedProfileItems_t ) + virtual SteamAPICall_t RequestEquippedProfileItems( CSteamID steamID ) = 0; + virtual bool BHasEquippedProfileItem( CSteamID steamID, ECommunityProfileItemType itemType ) = 0; + virtual const char *GetProfileItemPropertyString( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ) = 0; + virtual uint32 GetProfileItemPropertyUint( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ) = 0; }; -#define STEAMFRIENDS_INTERFACE_VERSION "SteamFriends015" +#define STEAMFRIENDS_INTERFACE_VERSION "SteamFriends017" + +// Global interface accessor +inline ISteamFriends *SteamFriends(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamFriends *, SteamFriends, STEAMFRIENDS_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -398,7 +474,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- @@ -428,9 +504,10 @@ enum EPersonaChange k_EPersonaChangeLeftSource = 0x0100, k_EPersonaChangeRelationshipChanged = 0x0200, k_EPersonaChangeNameFirstSet = 0x0400, - k_EPersonaChangeFacebookInfo = 0x0800, + k_EPersonaChangeBroadcast = 0x0800, k_EPersonaChangeNickname = 0x1000, k_EPersonaChangeSteamLevel = 0x2000, + k_EPersonaChangeRichPresence = 0x4000, }; @@ -441,7 +518,10 @@ enum EPersonaChange struct GameOverlayActivated_t { enum { k_iCallback = k_iSteamFriendsCallbacks + 31 }; - uint8 m_bActive; // true if it's just been activated, false otherwise + uint8 m_bActive; // true if it's just been activated, false otherwise + bool m_bUserInitiated; // true if the user asked for the overlay to be activated/deactivated + AppId_t m_nAppID; // the appID of the game (should always be the current game) + uint32 m_dwOverlayPID; // used internally }; @@ -630,6 +710,47 @@ struct SetPersonaNameResponse_t EResult m_result; // detailed result code }; +//----------------------------------------------------------------------------- +// Purpose: Invoked when the status of unread messages changes +//----------------------------------------------------------------------------- +struct UnreadChatMessagesChanged_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 48 }; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Dispatched when an overlay browser instance is navigated to a protocol/scheme registered by RegisterProtocolInOverlayBrowser() +//----------------------------------------------------------------------------- +struct OverlayBrowserProtocolNavigation_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 49 }; + char rgchURI[ 1024 ]; +}; + +//----------------------------------------------------------------------------- +// Purpose: A user's equipped profile items have changed +//----------------------------------------------------------------------------- +struct EquippedProfileItemsChanged_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 50 }; + CSteamID m_steamID; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +struct EquippedProfileItems_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 51 }; + EResult m_eResult; + CSteamID m_steamID; + bool m_bHasAnimatedAvatar; + bool m_bHasAvatarFrame; + bool m_bHasProfileModifier; + bool m_bHasProfileBackground; + bool m_bHasMiniProfileBackground; +}; #pragma pack( pop ) diff --git a/lib/osx/include/steam/isteamgamecoordinator.h b/lib/osx/include/steam/isteamgamecoordinator.h index 5ab0637..89b740d 100644 --- a/lib/osx/include/steam/isteamgamecoordinator.h +++ b/lib/osx/include/steam/isteamgamecoordinator.h @@ -10,8 +10,7 @@ #pragma once #endif -#include "steamtypes.h" -#include "steamclientpublic.h" +#include "steam_api_common.h" // list of possible return values from the ISteamGameCoordinator API @@ -54,7 +53,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif // callback notification - A new message is available for reading from the message queue diff --git a/lib/osx/include/steam/isteamgameserver.h b/lib/osx/include/steam/isteamgameserver.h index e19f1dd..ba4d125 100644 --- a/lib/osx/include/steam/isteamgameserver.h +++ b/lib/osx/include/steam/isteamgameserver.h @@ -10,9 +10,7 @@ #pragma once #endif -#include "isteamclient.h" - -#define MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE ((uint16)-1) +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: Functions for authenticating users via Steam to play on a game server @@ -27,7 +25,7 @@ public: // /// This is called by SteamGameServer_Init, and you will usually not need to call it directly - virtual bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString ) = 0; + STEAM_PRIVATE_API( virtual bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString ) = 0; ) /// Game product identifier. This is currently used by the master server for version checking purposes. /// It's a required field, but will eventually will go away, and the AppID will be used for this purpose. @@ -93,14 +91,23 @@ public: /// Set name of map to report in the server browser /// - /// @see k_cbMaxGameServerName + /// @see k_cbMaxGameServerMapName virtual void SetMapName( const char *pszMapName ) = 0; /// Let people know if your server will require a password virtual void SetPasswordProtected( bool bPasswordProtected ) = 0; - /// Spectator server. The default value is zero, meaning the service - /// is not used. + /// Spectator server port to advertise. The default value is zero, meaning the + /// service is not used. If your server receives any info requests on the LAN, + /// this is the value that will be placed into the reply for such local queries. + /// + /// This is also the value that will be advertised by the master server. + /// The only exception is if your server is using a FakeIP. Then then the second + /// fake port number (index 1) assigned to your server will be listed on the master + /// server as the spectator port, if you set this value to any nonzero value. + /// + /// This function merely controls the values that are advertised -- it's up to you to + /// configure the server to actually listen on this port and handle any spectator traffic virtual void SetSpectatorPort( uint16 unSpectatorPort ) = 0; /// Name of the spectator server. (Only used if spectator port is nonzero.) @@ -122,8 +129,6 @@ public: /// Sets a string defining the "gamedata" for this server, this is optional, but if it is set /// it allows users to filter in the matchmaking/server-browser interfaces based on the value - /// don't set this unless it actually changes, its only uploaded to the master once (when - /// acknowledged) /// /// @see k_cbMaxGameServerGameData virtual void SetGameData( const char *pchGameData ) = 0; @@ -131,45 +136,25 @@ public: /// Region identifier. This is an optional field, the default value is empty, meaning the "world" region virtual void SetRegion( const char *pszRegion ) = 0; + /// Indicate whether you wish to be listed on the master server list + /// and/or respond to server browser / LAN discovery packets. + /// The server starts with this value set to false. You should set all + /// relevant server parameters before enabling advertisement on the server. + /// + /// (This function used to be named EnableHeartbeats, so if you are wondering + /// where that function went, it's right here. It does the same thing as before, + /// the old name was just confusing.) + virtual void SetAdvertiseServerActive( bool bActive ) = 0; + // -// Player list management / authentication +// Player list management / authentication. // - // Handles receiving a new connection from a Steam user. This call will ask the Steam - // servers to validate the users identity, app ownership, and VAC status. If the Steam servers - // are off-line, then it will validate the cached ticket itself which will validate app ownership - // and identity. The AuthBlob here should be acquired on the game client using SteamUser()->InitiateGameConnection() - // and must then be sent up to the game server for authentication. - // - // Return Value: returns true if the users ticket passes basic checks. pSteamIDUser will contain the Steam ID of this user. pSteamIDUser must NOT be NULL - // If the call succeeds then you should expect a GSClientApprove_t or GSClientDeny_t callback which will tell you whether authentication - // for the user has succeeded or failed (the steamid in the callback will match the one returned by this call) - virtual bool SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser ) = 0; - - // Creates a fake user (ie, a bot) which will be listed as playing on the server, but skips validation. - // - // Return Value: Returns a SteamID for the user to be tracked with, you should call HandleUserDisconnect() - // when this user leaves the server just like you would for a real user. - virtual CSteamID CreateUnauthenticatedUserConnection() = 0; - - // Should be called whenever a user leaves our game server, this lets Steam internally - // track which users are currently on which servers for the purposes of preventing a single - // account being logged into multiple servers, showing who is currently on a server, etc. - virtual void SendUserDisconnect( CSteamID steamIDUser ) = 0; - - // Update the data to be displayed in the server browser and matchmaking interfaces for a user - // currently connected to the server. For regular users you must call this after you receive a - // GSUserValidationSuccess callback. - // - // Return Value: true if successful, false if failure (ie, steamIDUser wasn't for an active player) - virtual bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore ) = 0; - - // New auth system APIs - do not mix with the old auth system APIs. - // ---------------------------------------------------------------- - // Retrieve ticket to be sent to the entity who wishes to authenticate you ( using BeginAuthSession API ). // pcbTicket retrieves the length of the actual ticket. - virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket ) = 0; + // SteamNetworkingIdentity is an optional parameter to hold the public IP address of the entity you are connecting to + // if an IP address is passed Steam will only allow the ticket to be used by an entity with that IP address + virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket, const SteamNetworkingIdentity *pSnid ) = 0; // Authenticate ticket ( from GetAuthSessionTicket ) from entity steamID to be sure it is valid and isnt reused // Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse ) @@ -193,21 +178,18 @@ public: // these two functions s are deprecated, and will not return results // they will be removed in a future version of the SDK virtual void GetGameplayStats( ) = 0; - CALL_RESULT( GSReputation_t ) + STEAM_CALL_RESULT( GSReputation_t ) virtual SteamAPICall_t GetServerReputation() = 0; // Returns the public IP of the server according to Steam, useful when the server is // behind NAT and you want to advertise its IP in a lobby for other clients to directly // connect to - virtual uint32 GetPublicIP() = 0; + virtual SteamIPAddress_t GetPublicIP() = 0; + +// Server browser related query packet processing for shared socket mode. These are used +// when you pass STEAMGAMESERVER_QUERY_PORT_SHARED as the query port to SteamGameServer_Init. +// IP address and port are in host order, i.e 127.0.0.1 == 0x7f000001 -// These are in GameSocketShare mode, where instead of ISteamGameServer creating its own -// socket to talk to the master server on, it lets the game use its socket to forward messages -// back and forth. This prevents us from requiring server ops to open up yet another port -// in their firewalls. -// -// the IP address and port should be in host order, i.e 127.0.0.1 == 0x7f000001 - // These are used when you've elected to multiplex the game server's UDP socket // rather than having the master server updater use its own sockets. // @@ -225,45 +207,70 @@ public: virtual int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort ) = 0; // -// Control heartbeats / advertisement with master server +// Server clan association // - // Call this as often as you like to tell the master server updater whether or not - // you want it to be active (default: off). - virtual void EnableHeartbeats( bool bActive ) = 0; - - // You usually don't need to modify this. - // Pass -1 to use the default value for iHeartbeatInterval. - // Some mods change this. - virtual void SetHeartbeatInterval( int iHeartbeatInterval ) = 0; - - // Force a heartbeat to steam at the next opportunity - virtual void ForceHeartbeat() = 0; - // associate this game server with this clan for the purposes of computing player compat - CALL_RESULT( AssociateWithClanResult_t ) + STEAM_CALL_RESULT( AssociateWithClanResult_t ) virtual SteamAPICall_t AssociateWithClan( CSteamID steamIDClan ) = 0; // ask if any of the current players dont want to play with this new player - or vice versa - CALL_RESULT( ComputeNewPlayerCompatibilityResult_t ) + STEAM_CALL_RESULT( ComputeNewPlayerCompatibilityResult_t ) virtual SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer ) = 0; + + + + // Handles receiving a new connection from a Steam user. This call will ask the Steam + // servers to validate the users identity, app ownership, and VAC status. If the Steam servers + // are off-line, then it will validate the cached ticket itself which will validate app ownership + // and identity. The AuthBlob here should be acquired on the game client using SteamUser()->InitiateGameConnection() + // and must then be sent up to the game server for authentication. + // + // Return Value: returns true if the users ticket passes basic checks. pSteamIDUser will contain the Steam ID of this user. pSteamIDUser must NOT be NULL + // If the call succeeds then you should expect a GSClientApprove_t or GSClientDeny_t callback which will tell you whether authentication + // for the user has succeeded or failed (the steamid in the callback will match the one returned by this call) + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual bool SendUserConnectAndAuthenticate_DEPRECATED( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser ) = 0; + + // Creates a fake user (ie, a bot) which will be listed as playing on the server, but skips validation. + // + // Return Value: Returns a SteamID for the user to be tracked with, you should call EndAuthSession() + // when this user leaves the server just like you would for a real user. + virtual CSteamID CreateUnauthenticatedUserConnection() = 0; + + // Should be called whenever a user leaves our game server, this lets Steam internally + // track which users are currently on which servers for the purposes of preventing a single + // account being logged into multiple servers, showing who is currently on a server, etc. + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual void SendUserDisconnect_DEPRECATED( CSteamID steamIDUser ) = 0; + + // Update the data to be displayed in the server browser and matchmaking interfaces for a user + // currently connected to the server. For regular users you must call this after you receive a + // GSUserValidationSuccess callback. + // + // Return Value: true if successful, false if failure (ie, steamIDUser wasn't for an active player) + virtual bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore ) = 0; + +// Deprecated functions. These will be removed in a future version of the SDK. +// If you really need these, please contact us and help us understand what you are +// using them for. + + STEAM_PRIVATE_API( + virtual void SetMasterServerHeartbeatInterval_DEPRECATED( int iHeartbeatInterval ) = 0; + virtual void ForceMasterServerHeartbeat_DEPRECATED() = 0; + ) }; -#define STEAMGAMESERVER_INTERFACE_VERSION "SteamGameServer012" - -// game server flags -const uint32 k_unServerFlagNone = 0x00; -const uint32 k_unServerFlagActive = 0x01; // server has users playing -const uint32 k_unServerFlagSecure = 0x02; // server wants to be secure -const uint32 k_unServerFlagDedicated = 0x04; // server is dedicated -const uint32 k_unServerFlagLinux = 0x08; // linux build -const uint32 k_unServerFlagPassworded = 0x10; // password protected -const uint32 k_unServerFlagPrivate = 0x20; // server shouldn't list on master server and - // won't enforce authentication of users that connect to the server. - // Useful when you run a server where the clients may not - // be connected to the internet but you want them to play (i.e LANs) +#define STEAMGAMESERVER_INTERFACE_VERSION "SteamGameServer015" +// Global accessor +inline ISteamGameServer *SteamGameServer(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamGameServer *, SteamGameServer, STEAMGAMESERVER_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -271,7 +278,7 @@ const uint32 k_unServerFlagPrivate = 0x20; // server shouldn't list on master #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif diff --git a/lib/osx/include/steam/isteamgameserverstats.h b/lib/osx/include/steam/isteamgameserverstats.h index e7922c9..5019279 100644 --- a/lib/osx/include/steam/isteamgameserverstats.h +++ b/lib/osx/include/steam/isteamgameserverstats.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: Functions for authenticating users via Steam to play on a game server @@ -23,20 +23,29 @@ public: // if the user has no stats, GSStatsReceived_t.m_eResult will be set to k_EResultFail // these stats will only be auto-updated for clients playing on the server. For other // users you'll need to call RequestUserStats() again to refresh any data - CALL_RESULT( GSStatsReceived_t ) + STEAM_CALL_RESULT( GSStatsReceived_t ) virtual SteamAPICall_t RequestUserStats( CSteamID steamIDUser ) = 0; // requests stat information for a user, usable after a successful call to RequestUserStats() + STEAM_FLAT_NAME( GetUserStatInt32 ) virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, int32 *pData ) = 0; + + STEAM_FLAT_NAME( GetUserStatFloat ) virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, float *pData ) = 0; + virtual bool GetUserAchievement( CSteamID steamIDUser, const char *pchName, bool *pbAchieved ) = 0; // Set / update stats and achievements. // Note: These updates will work only on stats game servers are allowed to edit and only for // game servers that have been declared as officially controlled by the game creators. // Set the IP range of your official servers on the Steamworks page + + STEAM_FLAT_NAME( SetUserStatInt32 ) virtual bool SetUserStat( CSteamID steamIDUser, const char *pchName, int32 nData ) = 0; + + STEAM_FLAT_NAME( SetUserStatFloat ) virtual bool SetUserStat( CSteamID steamIDUser, const char *pchName, float fData ) = 0; + virtual bool UpdateUserAvgRateStat( CSteamID steamIDUser, const char *pchName, float flCountThisSession, double dSessionLength ) = 0; virtual bool SetUserAchievement( CSteamID steamIDUser, const char *pchName ) = 0; @@ -48,19 +57,23 @@ public: // uploaded has been rejected, either because they broke constraints // or were out of date. In this case the server sends back updated values. // The stats should be re-iterated to keep in sync. - CALL_RESULT( GSStatsStored_t ) + STEAM_CALL_RESULT( GSStatsStored_t ) virtual SteamAPICall_t StoreUserStats( CSteamID steamIDUser ) = 0; }; - #define STEAMGAMESERVERSTATS_INTERFACE_VERSION "SteamGameServerStats001" +// Global accessor +inline ISteamGameServerStats *SteamGameServerStats(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamGameServerStats *, SteamGameServerStats, STEAMGAMESERVERSTATS_INTERFACE_VERSION ); + + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- diff --git a/lib/osx/include/steam/isteamhtmlsurface.h b/lib/osx/include/steam/isteamhtmlsurface.h index ccfc6af..dd30fe2 100644 --- a/lib/osx/include/steam/isteamhtmlsurface.h +++ b/lib/osx/include/steam/isteamhtmlsurface.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" typedef uint32 HHTMLBrowser; const uint32 INVALID_HTMLBROWSER = 0; @@ -40,7 +40,7 @@ public: // not implement these callback handlers, the browser may appear to hang instead of // navigating to new pages or triggering javascript popups. // - CALL_RESULT( HTML_BrowserReady_t ) + STEAM_CALL_RESULT( HTML_BrowserReady_t ) virtual SteamAPICall_t CreateBrowser( const char *pchUserAgent, const char *pchUserCSS ) = 0; // Call this when you are done with a html surface, this lets us free the resources being used by it @@ -137,8 +137,9 @@ public: k_eHTMLKeyModifier_ShiftDown = 1 << 2, }; - // keyboard interactions, native keycode is the virtual key code value from your OS - virtual void KeyDown( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0; + // keyboard interactions, native keycode is the virtual key code value from your OS, system key flags the key to not + // be sent as a typed character as well as a key down + virtual void KeyDown( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers, bool bIsSystemKey = false ) = 0; virtual void KeyUp( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0; // cUnicodeChar is the unicode character point for this keypress (and potentially multiple chars per press) virtual void KeyChar( HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0; @@ -177,6 +178,13 @@ public: // When background mode is disabled, any video or audio objects with that property will resume with ".play()". virtual void SetBackgroundMode( HHTMLBrowser unBrowserHandle, bool bBackgroundMode ) = 0; + // Scale the output display space by this factor, this is useful when displaying content on high dpi devices. + // Specifies the ratio between physical and logical pixels. + virtual void SetDPIScalingFactor( HHTMLBrowser unBrowserHandle, float flDPIScaling ) = 0; + + // Open HTML/JS developer tools + virtual void OpenDeveloperTools( HHTMLBrowser unBrowserHandle ) = 0; + // CALLBACKS // // These set of functions are used as responses to callback requests @@ -193,11 +201,14 @@ public: virtual void JSDialogResponse( HHTMLBrowser unBrowserHandle, bool bResult ) = 0; // You MUST call this in response to a HTML_FileOpenDialog_t callback - IGNOREATTR() virtual void FileLoadDialogResponse( HHTMLBrowser unBrowserHandle, const char **pchSelectedFiles ) = 0; }; -#define STEAMHTMLSURFACE_INTERFACE_VERSION "STEAMHTMLSURFACE_INTERFACE_VERSION_003" +#define STEAMHTMLSURFACE_INTERFACE_VERSION "STEAMHTMLSURFACE_INTERFACE_VERSION_005" + +// Global interface accessor +inline ISteamHTMLSurface *SteamHTMLSurface(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamHTMLSurface *, SteamHTMLSurface, STEAMHTMLSURFACE_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -205,156 +216,156 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- // Purpose: The browser is ready for use //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_BrowserReady_t, k_iSteamHTMLSurfaceCallbacks + 1 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // this browser is now fully created and ready to navigate to pages -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( HTML_BrowserReady_t, k_iSteamHTMLSurfaceCallbacks + 1 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // this browser is now fully created and ready to navigate to pages +STEAM_CALLBACK_END(1) //----------------------------------------------------------------------------- // Purpose: the browser has a pending paint //----------------------------------------------------------------------------- -DEFINE_CALLBACK(HTML_NeedsPaint_t, k_iSteamHTMLSurfaceCallbacks + 2) -CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the browser that needs the paint -CALLBACK_MEMBER(1, const char *, pBGRA ) // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called -CALLBACK_MEMBER(2, uint32, unWide) // the total width of the pBGRA texture -CALLBACK_MEMBER(3, uint32, unTall) // the total height of the pBGRA texture -CALLBACK_MEMBER(4, uint32, unUpdateX) // the offset in X for the damage rect for this update -CALLBACK_MEMBER(5, uint32, unUpdateY) // the offset in Y for the damage rect for this update -CALLBACK_MEMBER(6, uint32, unUpdateWide) // the width of the damage rect for this update -CALLBACK_MEMBER(7, uint32, unUpdateTall) // the height of the damage rect for this update -CALLBACK_MEMBER(8, uint32, unScrollX) // the page scroll the browser was at when this texture was rendered -CALLBACK_MEMBER(9, uint32, unScrollY) // the page scroll the browser was at when this texture was rendered -CALLBACK_MEMBER(10, float, flPageScale) // the page scale factor on this page when rendered -CALLBACK_MEMBER(11, uint32, unPageSerial) // incremented on each new page load, you can use this to reject draws while navigating to new pages -END_DEFINE_CALLBACK_12() +STEAM_CALLBACK_BEGIN(HTML_NeedsPaint_t, k_iSteamHTMLSurfaceCallbacks + 2) +STEAM_CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the browser that needs the paint +STEAM_CALLBACK_MEMBER(1, const char *, pBGRA ) // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called +STEAM_CALLBACK_MEMBER(2, uint32, unWide) // the total width of the pBGRA texture +STEAM_CALLBACK_MEMBER(3, uint32, unTall) // the total height of the pBGRA texture +STEAM_CALLBACK_MEMBER(4, uint32, unUpdateX) // the offset in X for the damage rect for this update +STEAM_CALLBACK_MEMBER(5, uint32, unUpdateY) // the offset in Y for the damage rect for this update +STEAM_CALLBACK_MEMBER(6, uint32, unUpdateWide) // the width of the damage rect for this update +STEAM_CALLBACK_MEMBER(7, uint32, unUpdateTall) // the height of the damage rect for this update +STEAM_CALLBACK_MEMBER(8, uint32, unScrollX) // the page scroll the browser was at when this texture was rendered +STEAM_CALLBACK_MEMBER(9, uint32, unScrollY) // the page scroll the browser was at when this texture was rendered +STEAM_CALLBACK_MEMBER(10, float, flPageScale) // the page scale factor on this page when rendered +STEAM_CALLBACK_MEMBER(11, uint32, unPageSerial) // incremented on each new page load, you can use this to reject draws while navigating to new pages +STEAM_CALLBACK_END(12) //----------------------------------------------------------------------------- // Purpose: The browser wanted to navigate to a new page // NOTE - you MUST call AllowStartRequest in response to this callback //----------------------------------------------------------------------------- -DEFINE_CALLBACK(HTML_StartRequest_t, k_iSteamHTMLSurfaceCallbacks + 3) -CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface navigating -CALLBACK_MEMBER(1, const char *, pchURL) // the url they wish to navigate to -CALLBACK_MEMBER(2, const char *, pchTarget) // the html link target type (i.e _blank, _self, _parent, _top ) -CALLBACK_MEMBER(3, const char *, pchPostData ) // any posted data for the request -CALLBACK_MEMBER(4, bool, bIsRedirect) // true if this was a http/html redirect from the last load request -END_DEFINE_CALLBACK_5() +STEAM_CALLBACK_BEGIN(HTML_StartRequest_t, k_iSteamHTMLSurfaceCallbacks + 3) +STEAM_CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface navigating +STEAM_CALLBACK_MEMBER(1, const char *, pchURL) // the url they wish to navigate to +STEAM_CALLBACK_MEMBER(2, const char *, pchTarget) // the html link target type (i.e _blank, _self, _parent, _top ) +STEAM_CALLBACK_MEMBER(3, const char *, pchPostData ) // any posted data for the request +STEAM_CALLBACK_MEMBER(4, bool, bIsRedirect) // true if this was a http/html redirect from the last load request +STEAM_CALLBACK_END(5) //----------------------------------------------------------------------------- // Purpose: The browser has been requested to close due to user interaction (usually from a javascript window.close() call) //----------------------------------------------------------------------------- -DEFINE_CALLBACK(HTML_CloseBrowser_t, k_iSteamHTMLSurfaceCallbacks + 4) -CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN(HTML_CloseBrowser_t, k_iSteamHTMLSurfaceCallbacks + 4) +STEAM_CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface +STEAM_CALLBACK_END(1) //----------------------------------------------------------------------------- // Purpose: the browser is navigating to a new url //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_URLChanged_t, k_iSteamHTMLSurfaceCallbacks + 5 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface navigating -CALLBACK_MEMBER( 1, const char *, pchURL ) // the url they wish to navigate to -CALLBACK_MEMBER( 2, const char *, pchPostData ) // any posted data for the request -CALLBACK_MEMBER( 3, bool, bIsRedirect ) // true if this was a http/html redirect from the last load request -CALLBACK_MEMBER( 4, const char *, pchPageTitle ) // the title of the page -CALLBACK_MEMBER( 5, bool, bNewNavigation ) // true if this was from a fresh tab and not a click on an existing page -END_DEFINE_CALLBACK_6() +STEAM_CALLBACK_BEGIN( HTML_URLChanged_t, k_iSteamHTMLSurfaceCallbacks + 5 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface navigating +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // the url they wish to navigate to +STEAM_CALLBACK_MEMBER( 2, const char *, pchPostData ) // any posted data for the request +STEAM_CALLBACK_MEMBER( 3, bool, bIsRedirect ) // true if this was a http/html redirect from the last load request +STEAM_CALLBACK_MEMBER( 4, const char *, pchPageTitle ) // the title of the page +STEAM_CALLBACK_MEMBER( 5, bool, bNewNavigation ) // true if this was from a fresh tab and not a click on an existing page +STEAM_CALLBACK_END(6) //----------------------------------------------------------------------------- // Purpose: A page is finished loading //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_FinishedRequest_t, k_iSteamHTMLSurfaceCallbacks + 6 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchURL ) // -CALLBACK_MEMBER( 2, const char *, pchPageTitle ) // -END_DEFINE_CALLBACK_3() +STEAM_CALLBACK_BEGIN( HTML_FinishedRequest_t, k_iSteamHTMLSurfaceCallbacks + 6 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // +STEAM_CALLBACK_MEMBER( 2, const char *, pchPageTitle ) // +STEAM_CALLBACK_END(3) //----------------------------------------------------------------------------- // Purpose: a request to load this url in a new tab //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_OpenLinkInNewTab_t, k_iSteamHTMLSurfaceCallbacks + 7 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchURL ) // -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_OpenLinkInNewTab_t, k_iSteamHTMLSurfaceCallbacks + 7 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: the page has a new title now //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_ChangedTitle_t, k_iSteamHTMLSurfaceCallbacks + 8 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchTitle ) // -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_ChangedTitle_t, k_iSteamHTMLSurfaceCallbacks + 8 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchTitle ) // +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: results from a search //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_SearchResults_t, k_iSteamHTMLSurfaceCallbacks + 9 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, unResults ) // -CALLBACK_MEMBER( 2, uint32, unCurrentMatch ) // -END_DEFINE_CALLBACK_3() +STEAM_CALLBACK_BEGIN( HTML_SearchResults_t, k_iSteamHTMLSurfaceCallbacks + 9 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, unResults ) // +STEAM_CALLBACK_MEMBER( 2, uint32, unCurrentMatch ) // +STEAM_CALLBACK_END(3) //----------------------------------------------------------------------------- // Purpose: page history status changed on the ability to go backwards and forward //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_CanGoBackAndForward_t, k_iSteamHTMLSurfaceCallbacks + 10 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, bool, bCanGoBack ) // -CALLBACK_MEMBER( 2, bool, bCanGoForward ) // -END_DEFINE_CALLBACK_3() +STEAM_CALLBACK_BEGIN( HTML_CanGoBackAndForward_t, k_iSteamHTMLSurfaceCallbacks + 10 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, bool, bCanGoBack ) // +STEAM_CALLBACK_MEMBER( 2, bool, bCanGoForward ) // +STEAM_CALLBACK_END(3) //----------------------------------------------------------------------------- // Purpose: details on the visibility and size of the horizontal scrollbar //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_HorizontalScroll_t, k_iSteamHTMLSurfaceCallbacks + 11 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, unScrollMax ) // -CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // -CALLBACK_MEMBER( 3, float, flPageScale ) // -CALLBACK_MEMBER( 4, bool , bVisible ) // -CALLBACK_MEMBER( 5, uint32, unPageSize ) // -END_DEFINE_CALLBACK_6() +STEAM_CALLBACK_BEGIN( HTML_HorizontalScroll_t, k_iSteamHTMLSurfaceCallbacks + 11 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, unScrollMax ) // +STEAM_CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // +STEAM_CALLBACK_MEMBER( 3, float, flPageScale ) // +STEAM_CALLBACK_MEMBER( 4, bool , bVisible ) // +STEAM_CALLBACK_MEMBER( 5, uint32, unPageSize ) // +STEAM_CALLBACK_END(6) //----------------------------------------------------------------------------- // Purpose: details on the visibility and size of the vertical scrollbar //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_VerticalScroll_t, k_iSteamHTMLSurfaceCallbacks + 12 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, unScrollMax ) // -CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // -CALLBACK_MEMBER( 3, float, flPageScale ) // -CALLBACK_MEMBER( 4, bool, bVisible ) // -CALLBACK_MEMBER( 5, uint32, unPageSize ) // -END_DEFINE_CALLBACK_6() +STEAM_CALLBACK_BEGIN( HTML_VerticalScroll_t, k_iSteamHTMLSurfaceCallbacks + 12 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, unScrollMax ) // +STEAM_CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // +STEAM_CALLBACK_MEMBER( 3, float, flPageScale ) // +STEAM_CALLBACK_MEMBER( 4, bool, bVisible ) // +STEAM_CALLBACK_MEMBER( 5, uint32, unPageSize ) // +STEAM_CALLBACK_END(6) //----------------------------------------------------------------------------- // Purpose: response to GetLinkAtPosition call //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_LinkAtPosition_t, k_iSteamHTMLSurfaceCallbacks + 13 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, x ) // NOTE - Not currently set -CALLBACK_MEMBER( 2, uint32, y ) // NOTE - Not currently set -CALLBACK_MEMBER( 3, const char *, pchURL ) // -CALLBACK_MEMBER( 4, bool, bInput ) // -CALLBACK_MEMBER( 5, bool, bLiveLink ) // -END_DEFINE_CALLBACK_6() +STEAM_CALLBACK_BEGIN( HTML_LinkAtPosition_t, k_iSteamHTMLSurfaceCallbacks + 13 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, x ) // NOTE - Not currently set +STEAM_CALLBACK_MEMBER( 2, uint32, y ) // NOTE - Not currently set +STEAM_CALLBACK_MEMBER( 3, const char *, pchURL ) // +STEAM_CALLBACK_MEMBER( 4, bool, bInput ) // +STEAM_CALLBACK_MEMBER( 5, bool, bLiveLink ) // +STEAM_CALLBACK_END(6) @@ -362,89 +373,104 @@ END_DEFINE_CALLBACK_6() // Purpose: show a Javascript alert dialog, call JSDialogResponse // when the user dismisses this dialog (or right away to ignore it) //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_JSAlert_t, k_iSteamHTMLSurfaceCallbacks + 14 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMessage ) // -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_JSAlert_t, k_iSteamHTMLSurfaceCallbacks + 14 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMessage ) // +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: show a Javascript confirmation dialog, call JSDialogResponse // when the user dismisses this dialog (or right away to ignore it) //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_JSConfirm_t, k_iSteamHTMLSurfaceCallbacks + 15 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMessage ) // -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_JSConfirm_t, k_iSteamHTMLSurfaceCallbacks + 15 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMessage ) // +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: when received show a file open dialog // then call FileLoadDialogResponse with the file(s) the user selected. //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_FileOpenDialog_t, k_iSteamHTMLSurfaceCallbacks + 16 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchTitle ) // -CALLBACK_MEMBER( 2, const char *, pchInitialFile ) // -END_DEFINE_CALLBACK_3() +STEAM_CALLBACK_BEGIN( HTML_FileOpenDialog_t, k_iSteamHTMLSurfaceCallbacks + 16 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchTitle ) // +STEAM_CALLBACK_MEMBER( 2, const char *, pchInitialFile ) // +STEAM_CALLBACK_END(3) //----------------------------------------------------------------------------- -// Purpose: a new html window has been created +// Purpose: a new html window is being created. +// +// IMPORTANT NOTE: at this time, the API does not allow you to acknowledge or +// render the contents of this new window, so the new window is always destroyed +// immediately. The URL and other parameters of the new window are passed here +// to give your application the opportunity to call CreateBrowser and set up +// a new browser in response to the attempted popup, if you wish to do so. //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_NewWindow_t, k_iSteamHTMLSurfaceCallbacks + 21 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the current surface -CALLBACK_MEMBER( 1, const char *, pchURL ) // the page to load -CALLBACK_MEMBER( 2, uint32, unX ) // the x pos into the page to display the popup -CALLBACK_MEMBER( 3, uint32, unY ) // the y pos into the page to display the popup -CALLBACK_MEMBER( 4, uint32, unWide ) // the total width of the pBGRA texture -CALLBACK_MEMBER( 5, uint32, unTall ) // the total height of the pBGRA texture -CALLBACK_MEMBER( 6, HHTMLBrowser, unNewWindow_BrowserHandle ) // the handle of the new window surface -END_DEFINE_CALLBACK_7() +STEAM_CALLBACK_BEGIN( HTML_NewWindow_t, k_iSteamHTMLSurfaceCallbacks + 21 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the current surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // the page to load +STEAM_CALLBACK_MEMBER( 2, uint32, unX ) // the x pos into the page to display the popup +STEAM_CALLBACK_MEMBER( 3, uint32, unY ) // the y pos into the page to display the popup +STEAM_CALLBACK_MEMBER( 4, uint32, unWide ) // the total width of the pBGRA texture +STEAM_CALLBACK_MEMBER( 5, uint32, unTall ) // the total height of the pBGRA texture +STEAM_CALLBACK_MEMBER( 6, HHTMLBrowser, unNewWindow_BrowserHandle_IGNORE ) +STEAM_CALLBACK_END(7) //----------------------------------------------------------------------------- // Purpose: change the cursor to display //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_SetCursor_t, k_iSteamHTMLSurfaceCallbacks + 22 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, eMouseCursor ) // the EMouseCursor to display -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_SetCursor_t, k_iSteamHTMLSurfaceCallbacks + 22 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, eMouseCursor ) // the EMouseCursor to display +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: informational message from the browser //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_StatusText_t, k_iSteamHTMLSurfaceCallbacks + 23 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_StatusText_t, k_iSteamHTMLSurfaceCallbacks + 23 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: show a tooltip //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_ShowToolTip_t, k_iSteamHTMLSurfaceCallbacks + 24 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_ShowToolTip_t, k_iSteamHTMLSurfaceCallbacks + 24 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: update the text of an existing tooltip //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_UpdateToolTip_t, k_iSteamHTMLSurfaceCallbacks + 25 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_UpdateToolTip_t, k_iSteamHTMLSurfaceCallbacks + 25 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: hide the tooltip you are showing //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_HideToolTip_t, k_iSteamHTMLSurfaceCallbacks + 26 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( HTML_HideToolTip_t, k_iSteamHTMLSurfaceCallbacks + 26 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_END(1) + + +//----------------------------------------------------------------------------- +// Purpose: The browser has restarted due to an internal failure, use this new handle value +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_BrowserRestarted_t, k_iSteamHTMLSurfaceCallbacks + 27 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // this is the new browser handle after the restart +STEAM_CALLBACK_MEMBER( 1, HHTMLBrowser, unOldBrowserHandle ) // the handle for the browser before the restart, if your handle was this then switch to using unBrowserHandle for API calls +STEAM_CALLBACK_END(2) #pragma pack( pop ) diff --git a/lib/osx/include/steam/isteamhttp.h b/lib/osx/include/steam/isteamhttp.h index 8fab537..fb034ca 100644 --- a/lib/osx/include/steam/isteamhttp.h +++ b/lib/osx/include/steam/isteamhttp.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" #include "steamhttpenums.h" // Handle to a HTTP Request handle @@ -128,7 +128,8 @@ public: // Set the extra user agent info for a request, this doesn't clobber the normal user agent, it just adds the extra info on the end virtual bool SetHTTPRequestUserAgentInfo( HTTPRequestHandle hRequest, const char *pchUserAgentInfo ) = 0; - // Set that https request should require verified SSL certificate via machines certificate trust store + // Disable or re-enable verification of SSL/TLS certificates. + // By default, certificates are checked for all HTTPS requests. virtual bool SetHTTPRequestRequiresVerifiedCertificate( HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate ) = 0; // Set an absolute timeout on the HTTP request, this is just a total time timeout different than the network activity timeout @@ -139,7 +140,15 @@ public: virtual bool GetHTTPRequestWasTimedOut( HTTPRequestHandle hRequest, bool *pbWasTimedOut ) = 0; }; -#define STEAMHTTP_INTERFACE_VERSION "STEAMHTTP_INTERFACE_VERSION002" +#define STEAMHTTP_INTERFACE_VERSION "STEAMHTTP_INTERFACE_VERSION003" + +// Global interface accessor +inline ISteamHTTP *SteamHTTP(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamHTTP *, SteamHTTP, STEAMHTTP_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamHTTP *SteamGameServerHTTP(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamHTTP *, SteamGameServerHTTP, STEAMHTTP_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -147,12 +156,12 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct HTTPRequestCompleted_t { - enum { k_iCallback = k_iClientHTTPCallbacks + 1 }; + enum { k_iCallback = k_iSteamHTTPCallbacks + 1 }; // Handle value for the request that has completed. HTTPRequestHandle m_hRequest; @@ -175,7 +184,7 @@ struct HTTPRequestCompleted_t struct HTTPRequestHeadersReceived_t { - enum { k_iCallback = k_iClientHTTPCallbacks + 2 }; + enum { k_iCallback = k_iSteamHTTPCallbacks + 2 }; // Handle value for the request that has received headers. HTTPRequestHandle m_hRequest; @@ -187,7 +196,7 @@ struct HTTPRequestHeadersReceived_t struct HTTPRequestDataReceived_t { - enum { k_iCallback = k_iClientHTTPCallbacks + 3 }; + enum { k_iCallback = k_iSteamHTTPCallbacks + 3 }; // Handle value for the request that has received data. HTTPRequestHandle m_hRequest; diff --git a/lib/osx/include/steam/isteaminput.h b/lib/osx/include/steam/isteaminput.h new file mode 100644 index 0000000..335f23f --- /dev/null +++ b/lib/osx/include/steam/isteaminput.h @@ -0,0 +1,982 @@ +//====== Copyright 1996-2018, Valve Corporation, All rights reserved. ======= +// +// Purpose: Steam Input is a flexible input API that supports over three hundred devices including all +// common variants of Xbox, Playstation, Nintendo Switch Pro, and Steam Controllers. +// For more info including a getting started guide for developers +// please visit: https://partner.steamgames.com/doc/features/steam_controller +// +//============================================================================= + +#ifndef ISTEAMINPUT_H +#define ISTEAMINPUT_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +#define STEAM_INPUT_MAX_COUNT 16 + +#define STEAM_INPUT_MAX_ANALOG_ACTIONS 24 + +#define STEAM_INPUT_MAX_DIGITAL_ACTIONS 256 + +#define STEAM_INPUT_MAX_ORIGINS 8 + +#define STEAM_INPUT_MAX_ACTIVE_LAYERS 16 + +// When sending an option to a specific controller handle, you can send to all devices via this command +#define STEAM_INPUT_HANDLE_ALL_CONTROLLERS UINT64_MAX + +#define STEAM_INPUT_MIN_ANALOG_ACTION_DATA -1.0f +#define STEAM_INPUT_MAX_ANALOG_ACTION_DATA 1.0f + +enum EInputSourceMode +{ + k_EInputSourceMode_None, + k_EInputSourceMode_Dpad, + k_EInputSourceMode_Buttons, + k_EInputSourceMode_FourButtons, + k_EInputSourceMode_AbsoluteMouse, + k_EInputSourceMode_RelativeMouse, + k_EInputSourceMode_JoystickMove, + k_EInputSourceMode_JoystickMouse, + k_EInputSourceMode_JoystickCamera, + k_EInputSourceMode_ScrollWheel, + k_EInputSourceMode_Trigger, + k_EInputSourceMode_TouchMenu, + k_EInputSourceMode_MouseJoystick, + k_EInputSourceMode_MouseRegion, + k_EInputSourceMode_RadialMenu, + k_EInputSourceMode_SingleButton, + k_EInputSourceMode_Switches +}; + +// Note: Please do not use action origins as a way to identify controller types. There is no +// guarantee that they will be added in a contiguous manner - use GetInputTypeForHandle instead. +// Versions of Steam that add new controller types in the future will extend this enum so if you're +// using a lookup table please check the bounds of any origins returned by Steam. +enum EInputActionOrigin +{ + // Steam Controller + k_EInputActionOrigin_None, + k_EInputActionOrigin_SteamController_A, + k_EInputActionOrigin_SteamController_B, + k_EInputActionOrigin_SteamController_X, + k_EInputActionOrigin_SteamController_Y, + k_EInputActionOrigin_SteamController_LeftBumper, + k_EInputActionOrigin_SteamController_RightBumper, + k_EInputActionOrigin_SteamController_LeftGrip, + k_EInputActionOrigin_SteamController_RightGrip, + k_EInputActionOrigin_SteamController_Start, + k_EInputActionOrigin_SteamController_Back, + k_EInputActionOrigin_SteamController_LeftPad_Touch, + k_EInputActionOrigin_SteamController_LeftPad_Swipe, + k_EInputActionOrigin_SteamController_LeftPad_Click, + k_EInputActionOrigin_SteamController_LeftPad_DPadNorth, + k_EInputActionOrigin_SteamController_LeftPad_DPadSouth, + k_EInputActionOrigin_SteamController_LeftPad_DPadWest, + k_EInputActionOrigin_SteamController_LeftPad_DPadEast, + k_EInputActionOrigin_SteamController_RightPad_Touch, + k_EInputActionOrigin_SteamController_RightPad_Swipe, + k_EInputActionOrigin_SteamController_RightPad_Click, + k_EInputActionOrigin_SteamController_RightPad_DPadNorth, + k_EInputActionOrigin_SteamController_RightPad_DPadSouth, + k_EInputActionOrigin_SteamController_RightPad_DPadWest, + k_EInputActionOrigin_SteamController_RightPad_DPadEast, + k_EInputActionOrigin_SteamController_LeftTrigger_Pull, + k_EInputActionOrigin_SteamController_LeftTrigger_Click, + k_EInputActionOrigin_SteamController_RightTrigger_Pull, + k_EInputActionOrigin_SteamController_RightTrigger_Click, + k_EInputActionOrigin_SteamController_LeftStick_Move, + k_EInputActionOrigin_SteamController_LeftStick_Click, + k_EInputActionOrigin_SteamController_LeftStick_DPadNorth, + k_EInputActionOrigin_SteamController_LeftStick_DPadSouth, + k_EInputActionOrigin_SteamController_LeftStick_DPadWest, + k_EInputActionOrigin_SteamController_LeftStick_DPadEast, + k_EInputActionOrigin_SteamController_Gyro_Move, + k_EInputActionOrigin_SteamController_Gyro_Pitch, + k_EInputActionOrigin_SteamController_Gyro_Yaw, + k_EInputActionOrigin_SteamController_Gyro_Roll, + k_EInputActionOrigin_SteamController_Reserved0, + k_EInputActionOrigin_SteamController_Reserved1, + k_EInputActionOrigin_SteamController_Reserved2, + k_EInputActionOrigin_SteamController_Reserved3, + k_EInputActionOrigin_SteamController_Reserved4, + k_EInputActionOrigin_SteamController_Reserved5, + k_EInputActionOrigin_SteamController_Reserved6, + k_EInputActionOrigin_SteamController_Reserved7, + k_EInputActionOrigin_SteamController_Reserved8, + k_EInputActionOrigin_SteamController_Reserved9, + k_EInputActionOrigin_SteamController_Reserved10, + + // PS4 Dual Shock + k_EInputActionOrigin_PS4_X, + k_EInputActionOrigin_PS4_Circle, + k_EInputActionOrigin_PS4_Triangle, + k_EInputActionOrigin_PS4_Square, + k_EInputActionOrigin_PS4_LeftBumper, + k_EInputActionOrigin_PS4_RightBumper, + k_EInputActionOrigin_PS4_Options, //Start + k_EInputActionOrigin_PS4_Share, //Back + k_EInputActionOrigin_PS4_LeftPad_Touch, + k_EInputActionOrigin_PS4_LeftPad_Swipe, + k_EInputActionOrigin_PS4_LeftPad_Click, + k_EInputActionOrigin_PS4_LeftPad_DPadNorth, + k_EInputActionOrigin_PS4_LeftPad_DPadSouth, + k_EInputActionOrigin_PS4_LeftPad_DPadWest, + k_EInputActionOrigin_PS4_LeftPad_DPadEast, + k_EInputActionOrigin_PS4_RightPad_Touch, + k_EInputActionOrigin_PS4_RightPad_Swipe, + k_EInputActionOrigin_PS4_RightPad_Click, + k_EInputActionOrigin_PS4_RightPad_DPadNorth, + k_EInputActionOrigin_PS4_RightPad_DPadSouth, + k_EInputActionOrigin_PS4_RightPad_DPadWest, + k_EInputActionOrigin_PS4_RightPad_DPadEast, + k_EInputActionOrigin_PS4_CenterPad_Touch, + k_EInputActionOrigin_PS4_CenterPad_Swipe, + k_EInputActionOrigin_PS4_CenterPad_Click, + k_EInputActionOrigin_PS4_CenterPad_DPadNorth, + k_EInputActionOrigin_PS4_CenterPad_DPadSouth, + k_EInputActionOrigin_PS4_CenterPad_DPadWest, + k_EInputActionOrigin_PS4_CenterPad_DPadEast, + k_EInputActionOrigin_PS4_LeftTrigger_Pull, + k_EInputActionOrigin_PS4_LeftTrigger_Click, + k_EInputActionOrigin_PS4_RightTrigger_Pull, + k_EInputActionOrigin_PS4_RightTrigger_Click, + k_EInputActionOrigin_PS4_LeftStick_Move, + k_EInputActionOrigin_PS4_LeftStick_Click, + k_EInputActionOrigin_PS4_LeftStick_DPadNorth, + k_EInputActionOrigin_PS4_LeftStick_DPadSouth, + k_EInputActionOrigin_PS4_LeftStick_DPadWest, + k_EInputActionOrigin_PS4_LeftStick_DPadEast, + k_EInputActionOrigin_PS4_RightStick_Move, + k_EInputActionOrigin_PS4_RightStick_Click, + k_EInputActionOrigin_PS4_RightStick_DPadNorth, + k_EInputActionOrigin_PS4_RightStick_DPadSouth, + k_EInputActionOrigin_PS4_RightStick_DPadWest, + k_EInputActionOrigin_PS4_RightStick_DPadEast, + k_EInputActionOrigin_PS4_DPad_North, + k_EInputActionOrigin_PS4_DPad_South, + k_EInputActionOrigin_PS4_DPad_West, + k_EInputActionOrigin_PS4_DPad_East, + k_EInputActionOrigin_PS4_Gyro_Move, + k_EInputActionOrigin_PS4_Gyro_Pitch, + k_EInputActionOrigin_PS4_Gyro_Yaw, + k_EInputActionOrigin_PS4_Gyro_Roll, + k_EInputActionOrigin_PS4_DPad_Move, + k_EInputActionOrigin_PS4_Reserved1, + k_EInputActionOrigin_PS4_Reserved2, + k_EInputActionOrigin_PS4_Reserved3, + k_EInputActionOrigin_PS4_Reserved4, + k_EInputActionOrigin_PS4_Reserved5, + k_EInputActionOrigin_PS4_Reserved6, + k_EInputActionOrigin_PS4_Reserved7, + k_EInputActionOrigin_PS4_Reserved8, + k_EInputActionOrigin_PS4_Reserved9, + k_EInputActionOrigin_PS4_Reserved10, + + // XBox One + k_EInputActionOrigin_XBoxOne_A, + k_EInputActionOrigin_XBoxOne_B, + k_EInputActionOrigin_XBoxOne_X, + k_EInputActionOrigin_XBoxOne_Y, + k_EInputActionOrigin_XBoxOne_LeftBumper, + k_EInputActionOrigin_XBoxOne_RightBumper, + k_EInputActionOrigin_XBoxOne_Menu, //Start + k_EInputActionOrigin_XBoxOne_View, //Back + k_EInputActionOrigin_XBoxOne_LeftTrigger_Pull, + k_EInputActionOrigin_XBoxOne_LeftTrigger_Click, + k_EInputActionOrigin_XBoxOne_RightTrigger_Pull, + k_EInputActionOrigin_XBoxOne_RightTrigger_Click, + k_EInputActionOrigin_XBoxOne_LeftStick_Move, + k_EInputActionOrigin_XBoxOne_LeftStick_Click, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadNorth, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadSouth, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadWest, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadEast, + k_EInputActionOrigin_XBoxOne_RightStick_Move, + k_EInputActionOrigin_XBoxOne_RightStick_Click, + k_EInputActionOrigin_XBoxOne_RightStick_DPadNorth, + k_EInputActionOrigin_XBoxOne_RightStick_DPadSouth, + k_EInputActionOrigin_XBoxOne_RightStick_DPadWest, + k_EInputActionOrigin_XBoxOne_RightStick_DPadEast, + k_EInputActionOrigin_XBoxOne_DPad_North, + k_EInputActionOrigin_XBoxOne_DPad_South, + k_EInputActionOrigin_XBoxOne_DPad_West, + k_EInputActionOrigin_XBoxOne_DPad_East, + k_EInputActionOrigin_XBoxOne_DPad_Move, + k_EInputActionOrigin_XBoxOne_LeftGrip_Lower, + k_EInputActionOrigin_XBoxOne_LeftGrip_Upper, + k_EInputActionOrigin_XBoxOne_RightGrip_Lower, + k_EInputActionOrigin_XBoxOne_RightGrip_Upper, + k_EInputActionOrigin_XBoxOne_Share, // Xbox Series X controllers only + k_EInputActionOrigin_XBoxOne_Reserved6, + k_EInputActionOrigin_XBoxOne_Reserved7, + k_EInputActionOrigin_XBoxOne_Reserved8, + k_EInputActionOrigin_XBoxOne_Reserved9, + k_EInputActionOrigin_XBoxOne_Reserved10, + + // XBox 360 + k_EInputActionOrigin_XBox360_A, + k_EInputActionOrigin_XBox360_B, + k_EInputActionOrigin_XBox360_X, + k_EInputActionOrigin_XBox360_Y, + k_EInputActionOrigin_XBox360_LeftBumper, + k_EInputActionOrigin_XBox360_RightBumper, + k_EInputActionOrigin_XBox360_Start, //Start + k_EInputActionOrigin_XBox360_Back, //Back + k_EInputActionOrigin_XBox360_LeftTrigger_Pull, + k_EInputActionOrigin_XBox360_LeftTrigger_Click, + k_EInputActionOrigin_XBox360_RightTrigger_Pull, + k_EInputActionOrigin_XBox360_RightTrigger_Click, + k_EInputActionOrigin_XBox360_LeftStick_Move, + k_EInputActionOrigin_XBox360_LeftStick_Click, + k_EInputActionOrigin_XBox360_LeftStick_DPadNorth, + k_EInputActionOrigin_XBox360_LeftStick_DPadSouth, + k_EInputActionOrigin_XBox360_LeftStick_DPadWest, + k_EInputActionOrigin_XBox360_LeftStick_DPadEast, + k_EInputActionOrigin_XBox360_RightStick_Move, + k_EInputActionOrigin_XBox360_RightStick_Click, + k_EInputActionOrigin_XBox360_RightStick_DPadNorth, + k_EInputActionOrigin_XBox360_RightStick_DPadSouth, + k_EInputActionOrigin_XBox360_RightStick_DPadWest, + k_EInputActionOrigin_XBox360_RightStick_DPadEast, + k_EInputActionOrigin_XBox360_DPad_North, + k_EInputActionOrigin_XBox360_DPad_South, + k_EInputActionOrigin_XBox360_DPad_West, + k_EInputActionOrigin_XBox360_DPad_East, + k_EInputActionOrigin_XBox360_DPad_Move, + k_EInputActionOrigin_XBox360_Reserved1, + k_EInputActionOrigin_XBox360_Reserved2, + k_EInputActionOrigin_XBox360_Reserved3, + k_EInputActionOrigin_XBox360_Reserved4, + k_EInputActionOrigin_XBox360_Reserved5, + k_EInputActionOrigin_XBox360_Reserved6, + k_EInputActionOrigin_XBox360_Reserved7, + k_EInputActionOrigin_XBox360_Reserved8, + k_EInputActionOrigin_XBox360_Reserved9, + k_EInputActionOrigin_XBox360_Reserved10, + + + // Switch - Pro or Joycons used as a single input device. + // This does not apply to a single joycon + k_EInputActionOrigin_Switch_A, + k_EInputActionOrigin_Switch_B, + k_EInputActionOrigin_Switch_X, + k_EInputActionOrigin_Switch_Y, + k_EInputActionOrigin_Switch_LeftBumper, + k_EInputActionOrigin_Switch_RightBumper, + k_EInputActionOrigin_Switch_Plus, //Start + k_EInputActionOrigin_Switch_Minus, //Back + k_EInputActionOrigin_Switch_Capture, + k_EInputActionOrigin_Switch_LeftTrigger_Pull, + k_EInputActionOrigin_Switch_LeftTrigger_Click, + k_EInputActionOrigin_Switch_RightTrigger_Pull, + k_EInputActionOrigin_Switch_RightTrigger_Click, + k_EInputActionOrigin_Switch_LeftStick_Move, + k_EInputActionOrigin_Switch_LeftStick_Click, + k_EInputActionOrigin_Switch_LeftStick_DPadNorth, + k_EInputActionOrigin_Switch_LeftStick_DPadSouth, + k_EInputActionOrigin_Switch_LeftStick_DPadWest, + k_EInputActionOrigin_Switch_LeftStick_DPadEast, + k_EInputActionOrigin_Switch_RightStick_Move, + k_EInputActionOrigin_Switch_RightStick_Click, + k_EInputActionOrigin_Switch_RightStick_DPadNorth, + k_EInputActionOrigin_Switch_RightStick_DPadSouth, + k_EInputActionOrigin_Switch_RightStick_DPadWest, + k_EInputActionOrigin_Switch_RightStick_DPadEast, + k_EInputActionOrigin_Switch_DPad_North, + k_EInputActionOrigin_Switch_DPad_South, + k_EInputActionOrigin_Switch_DPad_West, + k_EInputActionOrigin_Switch_DPad_East, + k_EInputActionOrigin_Switch_ProGyro_Move, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_ProGyro_Pitch, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_ProGyro_Yaw, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_ProGyro_Roll, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_DPad_Move, + k_EInputActionOrigin_Switch_Reserved1, + k_EInputActionOrigin_Switch_Reserved2, + k_EInputActionOrigin_Switch_Reserved3, + k_EInputActionOrigin_Switch_Reserved4, + k_EInputActionOrigin_Switch_Reserved5, + k_EInputActionOrigin_Switch_Reserved6, + k_EInputActionOrigin_Switch_Reserved7, + k_EInputActionOrigin_Switch_Reserved8, + k_EInputActionOrigin_Switch_Reserved9, + k_EInputActionOrigin_Switch_Reserved10, + + // Switch JoyCon Specific + k_EInputActionOrigin_Switch_RightGyro_Move, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_RightGyro_Pitch, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_RightGyro_Yaw, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_RightGyro_Roll, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_LeftGyro_Move, + k_EInputActionOrigin_Switch_LeftGyro_Pitch, + k_EInputActionOrigin_Switch_LeftGyro_Yaw, + k_EInputActionOrigin_Switch_LeftGyro_Roll, + k_EInputActionOrigin_Switch_LeftGrip_Lower, // Left JoyCon SR Button + k_EInputActionOrigin_Switch_LeftGrip_Upper, // Left JoyCon SL Button + k_EInputActionOrigin_Switch_RightGrip_Lower, // Right JoyCon SL Button + k_EInputActionOrigin_Switch_RightGrip_Upper, // Right JoyCon SR Button + k_EInputActionOrigin_Switch_JoyConButton_N, // With a Horizontal JoyCon this will be Y or what would be Dpad Right when vertical + k_EInputActionOrigin_Switch_JoyConButton_E, // X + k_EInputActionOrigin_Switch_JoyConButton_S, // A + k_EInputActionOrigin_Switch_JoyConButton_W, // B + k_EInputActionOrigin_Switch_Reserved15, + k_EInputActionOrigin_Switch_Reserved16, + k_EInputActionOrigin_Switch_Reserved17, + k_EInputActionOrigin_Switch_Reserved18, + k_EInputActionOrigin_Switch_Reserved19, + k_EInputActionOrigin_Switch_Reserved20, + + // Added in SDK 1.51 + k_EInputActionOrigin_PS5_X, + k_EInputActionOrigin_PS5_Circle, + k_EInputActionOrigin_PS5_Triangle, + k_EInputActionOrigin_PS5_Square, + k_EInputActionOrigin_PS5_LeftBumper, + k_EInputActionOrigin_PS5_RightBumper, + k_EInputActionOrigin_PS5_Option, //Start + k_EInputActionOrigin_PS5_Create, //Back + k_EInputActionOrigin_PS5_Mute, + k_EInputActionOrigin_PS5_LeftPad_Touch, + k_EInputActionOrigin_PS5_LeftPad_Swipe, + k_EInputActionOrigin_PS5_LeftPad_Click, + k_EInputActionOrigin_PS5_LeftPad_DPadNorth, + k_EInputActionOrigin_PS5_LeftPad_DPadSouth, + k_EInputActionOrigin_PS5_LeftPad_DPadWest, + k_EInputActionOrigin_PS5_LeftPad_DPadEast, + k_EInputActionOrigin_PS5_RightPad_Touch, + k_EInputActionOrigin_PS5_RightPad_Swipe, + k_EInputActionOrigin_PS5_RightPad_Click, + k_EInputActionOrigin_PS5_RightPad_DPadNorth, + k_EInputActionOrigin_PS5_RightPad_DPadSouth, + k_EInputActionOrigin_PS5_RightPad_DPadWest, + k_EInputActionOrigin_PS5_RightPad_DPadEast, + k_EInputActionOrigin_PS5_CenterPad_Touch, + k_EInputActionOrigin_PS5_CenterPad_Swipe, + k_EInputActionOrigin_PS5_CenterPad_Click, + k_EInputActionOrigin_PS5_CenterPad_DPadNorth, + k_EInputActionOrigin_PS5_CenterPad_DPadSouth, + k_EInputActionOrigin_PS5_CenterPad_DPadWest, + k_EInputActionOrigin_PS5_CenterPad_DPadEast, + k_EInputActionOrigin_PS5_LeftTrigger_Pull, + k_EInputActionOrigin_PS5_LeftTrigger_Click, + k_EInputActionOrigin_PS5_RightTrigger_Pull, + k_EInputActionOrigin_PS5_RightTrigger_Click, + k_EInputActionOrigin_PS5_LeftStick_Move, + k_EInputActionOrigin_PS5_LeftStick_Click, + k_EInputActionOrigin_PS5_LeftStick_DPadNorth, + k_EInputActionOrigin_PS5_LeftStick_DPadSouth, + k_EInputActionOrigin_PS5_LeftStick_DPadWest, + k_EInputActionOrigin_PS5_LeftStick_DPadEast, + k_EInputActionOrigin_PS5_RightStick_Move, + k_EInputActionOrigin_PS5_RightStick_Click, + k_EInputActionOrigin_PS5_RightStick_DPadNorth, + k_EInputActionOrigin_PS5_RightStick_DPadSouth, + k_EInputActionOrigin_PS5_RightStick_DPadWest, + k_EInputActionOrigin_PS5_RightStick_DPadEast, + k_EInputActionOrigin_PS5_DPad_North, + k_EInputActionOrigin_PS5_DPad_South, + k_EInputActionOrigin_PS5_DPad_West, + k_EInputActionOrigin_PS5_DPad_East, + k_EInputActionOrigin_PS5_Gyro_Move, + k_EInputActionOrigin_PS5_Gyro_Pitch, + k_EInputActionOrigin_PS5_Gyro_Yaw, + k_EInputActionOrigin_PS5_Gyro_Roll, + k_EInputActionOrigin_PS5_DPad_Move, + k_EInputActionOrigin_PS5_LeftGrip, + k_EInputActionOrigin_PS5_RightGrip, + k_EInputActionOrigin_PS5_LeftFn, + k_EInputActionOrigin_PS5_RightFn, + k_EInputActionOrigin_PS5_Reserved5, + k_EInputActionOrigin_PS5_Reserved6, + k_EInputActionOrigin_PS5_Reserved7, + k_EInputActionOrigin_PS5_Reserved8, + k_EInputActionOrigin_PS5_Reserved9, + k_EInputActionOrigin_PS5_Reserved10, + k_EInputActionOrigin_PS5_Reserved11, + k_EInputActionOrigin_PS5_Reserved12, + k_EInputActionOrigin_PS5_Reserved13, + k_EInputActionOrigin_PS5_Reserved14, + k_EInputActionOrigin_PS5_Reserved15, + k_EInputActionOrigin_PS5_Reserved16, + k_EInputActionOrigin_PS5_Reserved17, + k_EInputActionOrigin_PS5_Reserved18, + k_EInputActionOrigin_PS5_Reserved19, + k_EInputActionOrigin_PS5_Reserved20, + + // Added in SDK 1.53 + k_EInputActionOrigin_SteamDeck_A, + k_EInputActionOrigin_SteamDeck_B, + k_EInputActionOrigin_SteamDeck_X, + k_EInputActionOrigin_SteamDeck_Y, + k_EInputActionOrigin_SteamDeck_L1, + k_EInputActionOrigin_SteamDeck_R1, + k_EInputActionOrigin_SteamDeck_Menu, + k_EInputActionOrigin_SteamDeck_View, + k_EInputActionOrigin_SteamDeck_LeftPad_Touch, + k_EInputActionOrigin_SteamDeck_LeftPad_Swipe, + k_EInputActionOrigin_SteamDeck_LeftPad_Click, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadNorth, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadSouth, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadWest, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadEast, + k_EInputActionOrigin_SteamDeck_RightPad_Touch, + k_EInputActionOrigin_SteamDeck_RightPad_Swipe, + k_EInputActionOrigin_SteamDeck_RightPad_Click, + k_EInputActionOrigin_SteamDeck_RightPad_DPadNorth, + k_EInputActionOrigin_SteamDeck_RightPad_DPadSouth, + k_EInputActionOrigin_SteamDeck_RightPad_DPadWest, + k_EInputActionOrigin_SteamDeck_RightPad_DPadEast, + k_EInputActionOrigin_SteamDeck_L2_SoftPull, + k_EInputActionOrigin_SteamDeck_L2, + k_EInputActionOrigin_SteamDeck_R2_SoftPull, + k_EInputActionOrigin_SteamDeck_R2, + k_EInputActionOrigin_SteamDeck_LeftStick_Move, + k_EInputActionOrigin_SteamDeck_L3, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadNorth, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadSouth, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadWest, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadEast, + k_EInputActionOrigin_SteamDeck_LeftStick_Touch, + k_EInputActionOrigin_SteamDeck_RightStick_Move, + k_EInputActionOrigin_SteamDeck_R3, + k_EInputActionOrigin_SteamDeck_RightStick_DPadNorth, + k_EInputActionOrigin_SteamDeck_RightStick_DPadSouth, + k_EInputActionOrigin_SteamDeck_RightStick_DPadWest, + k_EInputActionOrigin_SteamDeck_RightStick_DPadEast, + k_EInputActionOrigin_SteamDeck_RightStick_Touch, + k_EInputActionOrigin_SteamDeck_L4, + k_EInputActionOrigin_SteamDeck_R4, + k_EInputActionOrigin_SteamDeck_L5, + k_EInputActionOrigin_SteamDeck_R5, + k_EInputActionOrigin_SteamDeck_DPad_Move, + k_EInputActionOrigin_SteamDeck_DPad_North, + k_EInputActionOrigin_SteamDeck_DPad_South, + k_EInputActionOrigin_SteamDeck_DPad_West, + k_EInputActionOrigin_SteamDeck_DPad_East, + k_EInputActionOrigin_SteamDeck_Gyro_Move, + k_EInputActionOrigin_SteamDeck_Gyro_Pitch, + k_EInputActionOrigin_SteamDeck_Gyro_Yaw, + k_EInputActionOrigin_SteamDeck_Gyro_Roll, + k_EInputActionOrigin_SteamDeck_Reserved1, + k_EInputActionOrigin_SteamDeck_Reserved2, + k_EInputActionOrigin_SteamDeck_Reserved3, + k_EInputActionOrigin_SteamDeck_Reserved4, + k_EInputActionOrigin_SteamDeck_Reserved5, + k_EInputActionOrigin_SteamDeck_Reserved6, + k_EInputActionOrigin_SteamDeck_Reserved7, + k_EInputActionOrigin_SteamDeck_Reserved8, + k_EInputActionOrigin_SteamDeck_Reserved9, + k_EInputActionOrigin_SteamDeck_Reserved10, + k_EInputActionOrigin_SteamDeck_Reserved11, + k_EInputActionOrigin_SteamDeck_Reserved12, + k_EInputActionOrigin_SteamDeck_Reserved13, + k_EInputActionOrigin_SteamDeck_Reserved14, + k_EInputActionOrigin_SteamDeck_Reserved15, + k_EInputActionOrigin_SteamDeck_Reserved16, + k_EInputActionOrigin_SteamDeck_Reserved17, + k_EInputActionOrigin_SteamDeck_Reserved18, + k_EInputActionOrigin_SteamDeck_Reserved19, + k_EInputActionOrigin_SteamDeck_Reserved20, + + k_EInputActionOrigin_Count, // If Steam has added support for new controllers origins will go here. + k_EInputActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits. +}; + +enum EXboxOrigin +{ + k_EXboxOrigin_A, + k_EXboxOrigin_B, + k_EXboxOrigin_X, + k_EXboxOrigin_Y, + k_EXboxOrigin_LeftBumper, + k_EXboxOrigin_RightBumper, + k_EXboxOrigin_Menu, //Start + k_EXboxOrigin_View, //Back + k_EXboxOrigin_LeftTrigger_Pull, + k_EXboxOrigin_LeftTrigger_Click, + k_EXboxOrigin_RightTrigger_Pull, + k_EXboxOrigin_RightTrigger_Click, + k_EXboxOrigin_LeftStick_Move, + k_EXboxOrigin_LeftStick_Click, + k_EXboxOrigin_LeftStick_DPadNorth, + k_EXboxOrigin_LeftStick_DPadSouth, + k_EXboxOrigin_LeftStick_DPadWest, + k_EXboxOrigin_LeftStick_DPadEast, + k_EXboxOrigin_RightStick_Move, + k_EXboxOrigin_RightStick_Click, + k_EXboxOrigin_RightStick_DPadNorth, + k_EXboxOrigin_RightStick_DPadSouth, + k_EXboxOrigin_RightStick_DPadWest, + k_EXboxOrigin_RightStick_DPadEast, + k_EXboxOrigin_DPad_North, + k_EXboxOrigin_DPad_South, + k_EXboxOrigin_DPad_West, + k_EXboxOrigin_DPad_East, + k_EXboxOrigin_Count, +}; + +enum ESteamControllerPad +{ + k_ESteamControllerPad_Left, + k_ESteamControllerPad_Right +}; + +enum EControllerHapticLocation +{ + k_EControllerHapticLocation_Left = ( 1 << k_ESteamControllerPad_Left ), + k_EControllerHapticLocation_Right = ( 1 << k_ESteamControllerPad_Right ), + k_EControllerHapticLocation_Both = ( 1 << k_ESteamControllerPad_Left | 1 << k_ESteamControllerPad_Right ), +}; + +enum EControllerHapticType +{ + k_EControllerHapticType_Off, + k_EControllerHapticType_Tick, + k_EControllerHapticType_Click, +}; + +enum ESteamInputType +{ + k_ESteamInputType_Unknown, + k_ESteamInputType_SteamController, + k_ESteamInputType_XBox360Controller, + k_ESteamInputType_XBoxOneController, + k_ESteamInputType_GenericGamepad, // DirectInput controllers + k_ESteamInputType_PS4Controller, + k_ESteamInputType_AppleMFiController, // Unused + k_ESteamInputType_AndroidController, // Unused + k_ESteamInputType_SwitchJoyConPair, // Unused + k_ESteamInputType_SwitchJoyConSingle, // Unused + k_ESteamInputType_SwitchProController, + k_ESteamInputType_MobileTouch, // Steam Link App On-screen Virtual Controller + k_ESteamInputType_PS3Controller, // Currently uses PS4 Origins + k_ESteamInputType_PS5Controller, // Added in SDK 151 + k_ESteamInputType_SteamDeckController, // Added in SDK 153 + k_ESteamInputType_Count, + k_ESteamInputType_MaximumPossibleValue = 255, +}; + +// Individual values are used by the GetSessionInputConfigurationSettings bitmask +enum ESteamInputConfigurationEnableType +{ + k_ESteamInputConfigurationEnableType_None = 0x0000, + k_ESteamInputConfigurationEnableType_Playstation = 0x0001, + k_ESteamInputConfigurationEnableType_Xbox = 0x0002, + k_ESteamInputConfigurationEnableType_Generic = 0x0004, + k_ESteamInputConfigurationEnableType_Switch = 0x0008, +}; + +// These values are passed into SetLEDColor +enum ESteamInputLEDFlag +{ + k_ESteamInputLEDFlag_SetColor, + // Restore the LED color to the user's preference setting as set in the controller personalization menu. + // This also happens automatically on exit of your game. + k_ESteamInputLEDFlag_RestoreUserDefault +}; + +// These values are passed into GetGlyphPNGForActionOrigin +enum ESteamInputGlyphSize +{ + k_ESteamInputGlyphSize_Small, // 32x32 pixels + k_ESteamInputGlyphSize_Medium, // 128x128 pixels + k_ESteamInputGlyphSize_Large, // 256x256 pixels + k_ESteamInputGlyphSize_Count, +}; + +enum ESteamInputGlyphStyle +{ + // Base-styles - cannot mix + ESteamInputGlyphStyle_Knockout = 0x0, // Face buttons will have colored labels/outlines on a knocked out background + // Rest of inputs will have white detail/borders on a knocked out background + ESteamInputGlyphStyle_Light = 0x1, // Black detail/borders on a white background + ESteamInputGlyphStyle_Dark = 0x2, // White detail/borders on a black background + + // Modifiers + // Default ABXY/PS equivalent glyphs have a solid fill w/ color matching the physical buttons on the device + ESteamInputGlyphStyle_NeutralColorABXY = 0x10, // ABXY Buttons will match the base style color instead of their normal associated color + ESteamInputGlyphStyle_SolidABXY = 0x20, // ABXY Buttons will have a solid fill +}; + +enum ESteamInputActionEventType +{ + ESteamInputActionEventType_DigitalAction, + ESteamInputActionEventType_AnalogAction, +}; + +// InputHandle_t is used to refer to a specific controller. +// This handle will consistently identify a controller, even if it is disconnected and re-connected +typedef uint64 InputHandle_t; + +// These handles are used to refer to a specific in-game action or action set +// All action handles should be queried during initialization for performance reasons +typedef uint64 InputActionSetHandle_t; +typedef uint64 InputDigitalActionHandle_t; +typedef uint64 InputAnalogActionHandle_t; + +#pragma pack( push, 1 ) + +struct InputAnalogActionData_t +{ + // Type of data coming from this action, this will match what got specified in the action set + EInputSourceMode eMode; + + // The current state of this action; will be delta updates for mouse actions + float x, y; + + // Whether or not this action is currently available to be bound in the active action set + bool bActive; +}; + +struct InputDigitalActionData_t +{ + // The current state of this action; will be true if currently pressed + bool bState; + + // Whether or not this action is currently available to be bound in the active action set + bool bActive; +}; + +struct InputMotionData_t +{ + // Sensor-fused absolute rotation; will drift in heading toward average + float rotQuatX; + float rotQuatY; + float rotQuatZ; + float rotQuatW; + + // Positional acceleration + float posAccelX; + float posAccelY; + float posAccelZ; + + // Angular velocity + float rotVelX; + float rotVelY; + float rotVelZ; +}; + +//----------------------------------------------------------------------------- +// Purpose: when callbacks are enabled this fires each time a controller action +// state changes +//----------------------------------------------------------------------------- +struct SteamInputActionEvent_t +{ + InputHandle_t controllerHandle; + ESteamInputActionEventType eEventType; + struct AnalogAction_t { + InputAnalogActionHandle_t actionHandle; + InputAnalogActionData_t analogActionData; + }; + struct DigitalAction_t { + InputDigitalActionHandle_t actionHandle; + InputDigitalActionData_t digitalActionData; + }; + union { + AnalogAction_t analogAction; + DigitalAction_t digitalAction; + }; +}; + +//----------------------------------------------------------------------------- +// Forward declaration for ScePadTriggerEffectParam, defined in isteamdualsense.h +//----------------------------------------------------------------------------- +struct ScePadTriggerEffectParam; + +#pragma pack( pop ) + +typedef void ( *SteamInputActionEventCallbackPointer )( SteamInputActionEvent_t * ); + +//----------------------------------------------------------------------------- +// Purpose: Steam Input API +//----------------------------------------------------------------------------- +class ISteamInput +{ +public: + + // Init and Shutdown must be called when starting/ending use of this interface. + // if bExplicitlyCallRunFrame is called then you will need to manually call RunFrame + // each frame, otherwise Steam Input will updated when SteamAPI_RunCallbacks() is called + virtual bool Init( bool bExplicitlyCallRunFrame ) = 0; + virtual bool Shutdown() = 0; + + // Set the absolute path to the Input Action Manifest file containing the in-game actions + // and file paths to the official configurations. Used in games that bundle Steam Input + // configurations inside of the game depot instead of using the Steam Workshop + virtual bool SetInputActionManifestFilePath( const char *pchInputActionManifestAbsolutePath ) = 0; + + // Synchronize API state with the latest Steam Input action data available. This + // is performed automatically by SteamAPI_RunCallbacks, but for the absolute lowest + // possible latency, you call this directly before reading controller state. + // Note: This must be called from somewhere before GetConnectedControllers will + // return any handles + virtual void RunFrame( bool bReservedValue = true ) = 0; + + // Waits on an IPC event from Steam sent when there is new data to be fetched from + // the data drop. Returns true when data was recievied before the timeout expires. + // Useful for games with a dedicated input thread + virtual bool BWaitForData( bool bWaitForever, uint32 unTimeout ) = 0; + + // Returns true if new data has been received since the last time action data was accessed + // via GetDigitalActionData or GetAnalogActionData. The game will still need to call + // SteamInput()->RunFrame() or SteamAPI_RunCallbacks() before this to update the data stream + virtual bool BNewDataAvailable() = 0; + + // Enumerate currently connected Steam Input enabled devices - developers can opt in controller by type (ex: Xbox/Playstation/etc) via + // the Steam Input settings in the Steamworks site or users can opt-in in their controller settings in Steam. + // handlesOut should point to a STEAM_INPUT_MAX_COUNT sized array of InputHandle_t handles + // Returns the number of handles written to handlesOut + virtual int GetConnectedControllers( STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_COUNT, Receives list of connected controllers ) InputHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- + // CALLBACKS + //----------------------------------------------------------------------------- + + // Controller configuration loaded - these callbacks will always fire if you have + // a handler. Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + STEAM_CALL_BACK( SteamInputConfigurationLoaded_t ) + + // Enable SteamInputDeviceConnected_t and SteamInputDeviceDisconnected_t callbacks. + // Each controller that is already connected will generate a device connected + // callback when you enable them + virtual void EnableDeviceCallbacks() = 0; + + // Controller Connected - provides info about a single newly connected controller + // Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + STEAM_CALL_BACK( SteamInputDeviceConnected_t ) + + // Controller Disconnected - provides info about a single disconnected controller + // Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + STEAM_CALL_BACK( SteamInputDeviceDisconnected_t ) + + // Controllers using Gamepad emulation (XInput, DirectInput, etc) will be seated in the order that + // input is sent by the device. This callback will fire on first input for each device and when the + // a user has manually changed the order via the Steam overlay. This also has the device type info + // so that you can change out glyph sets without making additional API calls + STEAM_CALL_BACK( SteamInputGamepadSlotChange_t ) + + // Enable SteamInputActionEvent_t callbacks. Directly calls your callback function + // for lower latency than standard Steam callbacks. Supports one callback at a time. + // Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + virtual void EnableActionEventCallbacks( SteamInputActionEventCallbackPointer pCallback ) = 0; + + //----------------------------------------------------------------------------- + // ACTION SETS + //----------------------------------------------------------------------------- + + // Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls. + virtual InputActionSetHandle_t GetActionSetHandle( const char *pszActionSetName ) = 0; + + // Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + // This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + // your state loops, instead of trying to place it in all of your state transitions. + virtual void ActivateActionSet( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle ) = 0; + virtual InputActionSetHandle_t GetCurrentActionSet( InputHandle_t inputHandle ) = 0; + + // ACTION SET LAYERS + virtual void ActivateActionSetLayer( InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateActionSetLayer( InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateAllActionSetLayers( InputHandle_t inputHandle ) = 0; + + // Enumerate currently active layers. + // handlesOut should point to a STEAM_INPUT_MAX_ACTIVE_LAYERS sized array of InputActionSetHandle_t handles + // Returns the number of handles written to handlesOut + virtual int GetActiveActionSetLayers( InputHandle_t inputHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ACTIVE_LAYERS, Receives list of active layers ) InputActionSetHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- + // ACTIONS + //----------------------------------------------------------------------------- + + // Lookup the handle for a digital action. Best to do this once on startup, and store the handles for all future API calls. + virtual InputDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName ) = 0; + + // Returns the current state of the supplied digital game action + virtual InputDigitalActionData_t GetDigitalActionData( InputHandle_t inputHandle, InputDigitalActionHandle_t digitalActionHandle ) = 0; + + // Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. + // originsOut should point to a STEAM_INPUT_MAX_ORIGINS sized array of EInputActionOrigin handles. The EInputActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetDigitalActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ORIGINS, Receives list of action origins ) EInputActionOrigin *originsOut ) = 0; + + // Returns a localized string (from Steam's language setting) for the user-facing action name corresponding to the specified handle + virtual const char *GetStringForDigitalActionName( InputDigitalActionHandle_t eActionHandle ) = 0; + + // Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls. + virtual InputAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName ) = 0; + + // Returns the current state of these supplied analog game action + virtual InputAnalogActionData_t GetAnalogActionData( InputHandle_t inputHandle, InputAnalogActionHandle_t analogActionHandle ) = 0; + + // Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. + // originsOut should point to a STEAM_INPUT_MAX_ORIGINS sized array of EInputActionOrigin handles. The EInputActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetAnalogActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ORIGINS, Receives list of action origins ) EInputActionOrigin *originsOut ) = 0; + + // Get a local path to a PNG file for the provided origin's glyph. + virtual const char *GetGlyphPNGForActionOrigin( EInputActionOrigin eOrigin, ESteamInputGlyphSize eSize, uint32 unFlags ) = 0; + + // Get a local path to a SVG file for the provided origin's glyph. + virtual const char *GetGlyphSVGForActionOrigin( EInputActionOrigin eOrigin, uint32 unFlags ) = 0; + + // Get a local path to an older, Big Picture Mode-style PNG file for a particular origin + virtual const char *GetGlyphForActionOrigin_Legacy( EInputActionOrigin eOrigin ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified origin. + virtual const char *GetStringForActionOrigin( EInputActionOrigin eOrigin ) = 0; + + // Returns a localized string (from Steam's language setting) for the user-facing action name corresponding to the specified handle + virtual const char *GetStringForAnalogActionName( InputAnalogActionHandle_t eActionHandle ) = 0; + + // Stop analog momentum for the action if it is a mouse action in trackball mode + virtual void StopAnalogActionMomentum( InputHandle_t inputHandle, InputAnalogActionHandle_t eAction ) = 0; + + // Returns raw motion data from the specified device + virtual InputMotionData_t GetMotionData( InputHandle_t inputHandle ) = 0; + + //----------------------------------------------------------------------------- + // OUTPUTS + //----------------------------------------------------------------------------- + + // Trigger a vibration event on supported controllers - Steam will translate these commands into haptic pulses for Steam Controllers + virtual void TriggerVibration( InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ) = 0; + + // Trigger a vibration event on supported controllers including Xbox trigger impulse rumble - Steam will translate these commands into haptic pulses for Steam Controllers + virtual void TriggerVibrationExtended( InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed, unsigned short usLeftTriggerSpeed, unsigned short usRightTriggerSpeed ) = 0; + + // Send a haptic pulse, works on Steam Deck and Steam Controller devices + virtual void TriggerSimpleHapticEvent( InputHandle_t inputHandle, EControllerHapticLocation eHapticLocation, uint8 nIntensity, char nGainDB, uint8 nOtherIntensity, char nOtherGainDB ) = 0; + + // Set the controller LED color on supported controllers. nFlags is a bitmask of values from ESteamInputLEDFlag - 0 will default to setting a color. Steam will handle + // the behavior on exit of your program so you don't need to try restore the default as you are shutting down + virtual void SetLEDColor( InputHandle_t inputHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ) = 0; + + // Trigger a haptic pulse on a Steam Controller - if you are approximating rumble you may want to use TriggerVibration instead. + // Good uses for Haptic pulses include chimes, noises, or directional gameplay feedback (taking damage, footstep locations, etc). + virtual void Legacy_TriggerHapticPulse( InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ) = 0; + + // Trigger a haptic pulse with a duty cycle of usDurationMicroSec / usOffMicroSec, unRepeat times. If you are approximating rumble you may want to use TriggerVibration instead. + // nFlags is currently unused and reserved for future use. + virtual void Legacy_TriggerRepeatedHapticPulse( InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ) = 0; + + //----------------------------------------------------------------------------- + // Utility functions available without using the rest of Steam Input API + //----------------------------------------------------------------------------- + + // Invokes the Steam overlay and brings up the binding screen if the user is using Big Picture Mode + // If the user is not in Big Picture Mode it will open up the binding in a new window + virtual bool ShowBindingPanel( InputHandle_t inputHandle ) = 0; + + // Returns the input type for a particular handle - unlike EInputActionOrigin which update with Steam and may return unrecognized values + // ESteamInputType will remain static and only return valid values from your SDK version + virtual ESteamInputType GetInputTypeForHandle( InputHandle_t inputHandle ) = 0; + + // Returns the associated controller handle for the specified emulated gamepad - can be used with the above 2 functions + // to identify controllers presented to your game over Xinput. Returns 0 if the Xinput index isn't associated with Steam Input + virtual InputHandle_t GetControllerForGamepadIndex( int nIndex ) = 0; + + // Returns the associated gamepad index for the specified controller, if emulating a gamepad or -1 if not associated with an Xinput index + virtual int GetGamepadIndexForController( InputHandle_t ulinputHandle ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. + virtual const char *GetStringForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get a local path to art for on-screen glyph for a particular Xbox controller origin + virtual const char *GetGlyphForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get the equivalent ActionOrigin for a given Xbox controller origin this can be chained with GetGlyphForActionOrigin to provide future proof glyphs for + // non-Steam Input API action games. Note - this only translates the buttons directly and doesn't take into account any remapping a user has made in their configuration + virtual EInputActionOrigin GetActionOriginFromXboxOrigin( InputHandle_t inputHandle, EXboxOrigin eOrigin ) = 0; + + // Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EInputActionOrigin_None + // When a new input type is added you will be able to pass in k_ESteamInputType_Unknown and the closest origin that your version of the SDK recognized will be returned + // ex: if a Playstation 5 controller was released this function would return Playstation 4 origins. + virtual EInputActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin ) = 0; + + // Get the binding revision for a given device. Returns false if the handle was not valid or if a mapping is not yet loaded for the device + virtual bool GetDeviceBindingRevision( InputHandle_t inputHandle, int *pMajor, int *pMinor ) = 0; + + // Get the Steam Remote Play session ID associated with a device, or 0 if there is no session associated with it + // See isteamremoteplay.h for more information on Steam Remote Play sessions + virtual uint32 GetRemotePlaySessionID( InputHandle_t inputHandle ) = 0; + + // Get a bitmask of the Steam Input Configuration types opted in for the current session. Returns ESteamInputConfigurationEnableType values. + // Note: user can override the settings from the Steamworks Partner site so the returned values may not exactly match your default configuration + virtual uint16 GetSessionInputConfigurationSettings() = 0; + + // Set the trigger effect for a DualSense controller + virtual void SetDualSenseTriggerEffect( InputHandle_t inputHandle, const ScePadTriggerEffectParam *pParam ) = 0; +}; + +#define STEAMINPUT_INTERFACE_VERSION "SteamInput006" + +// Global interface accessor +inline ISteamInput *SteamInput(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamInput *, SteamInput, STEAMINPUT_INTERFACE_VERSION ); + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +//----------------------------------------------------------------------------- +// Purpose: called when a new controller has been connected, will fire once +// per controller if multiple new controllers connect in the same frame +//----------------------------------------------------------------------------- +struct SteamInputDeviceConnected_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 1 }; + InputHandle_t m_ulConnectedDeviceHandle; // Handle for device +}; + +//----------------------------------------------------------------------------- +// Purpose: called when a new controller has been connected, will fire once +// per controller if multiple new controllers connect in the same frame +//----------------------------------------------------------------------------- +struct SteamInputDeviceDisconnected_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 2 }; + InputHandle_t m_ulDisconnectedDeviceHandle; // Handle for device +}; + +//----------------------------------------------------------------------------- +// Purpose: called when a controller configuration has been loaded, will fire once +// per controller per focus change for Steam Input enabled controllers +//----------------------------------------------------------------------------- +struct SteamInputConfigurationLoaded_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 3 }; + AppId_t m_unAppID; + InputHandle_t m_ulDeviceHandle; // Handle for device + CSteamID m_ulMappingCreator; // May differ from local user when using + // an unmodified community or official config + uint32 m_unMajorRevision; // Binding revision from In-game Action File. + // Same value as queried by GetDeviceBindingRevision + uint32 m_unMinorRevision; + bool m_bUsesSteamInputAPI; // Does the configuration contain any Analog/Digital actions? + bool m_bUsesGamepadAPI; // Does the configuration contain any Xinput bindings? +}; + +//----------------------------------------------------------------------------- +// Purpose: called when controller gamepad slots change - on Linux/macOS these +// slots are shared for all running apps. +//----------------------------------------------------------------------------- +struct SteamInputGamepadSlotChange_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 4 }; + AppId_t m_unAppID; + InputHandle_t m_ulDeviceHandle; // Handle for device + ESteamInputType m_eDeviceType; // Type of device + int m_nOldGamepadSlot; // Previous GamepadSlot - can be -1 controller doesn't uses gamepad bindings + int m_nNewGamepadSlot; // New Gamepad Slot - can be -1 controller doesn't uses gamepad bindings +}; + +#pragma pack( pop ) + +#endif // ISTEAMINPUT_H diff --git a/lib/osx/include/steam/isteaminventory.h b/lib/osx/include/steam/isteaminventory.h index 5d236a5..7066592 100644 --- a/lib/osx/include/steam/isteaminventory.h +++ b/lib/osx/include/steam/isteaminventory.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -18,7 +18,7 @@ #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif @@ -61,6 +61,8 @@ typedef int32 SteamInventoryResult_t; static const SteamInventoryResult_t k_SteamInventoryResultInvalid = -1; +typedef uint64 SteamInventoryUpdateHandle_t; +const SteamInventoryUpdateHandle_t k_SteamInventoryUpdateHandleInvalid = 0xffffffffffffffffull; //----------------------------------------------------------------------------- // Purpose: Steam Inventory query and manipulation API @@ -84,29 +86,41 @@ public: // k_EResultServiceUnavailable - ERROR: service temporarily down, you may retry later // k_EResultLimitExceeded - ERROR: operation would exceed per-user inventory limits // k_EResultFail - ERROR: unknown / generic error - METHOD_DESC(Find out the status of an asynchronous inventory result handle.) virtual EResult GetResultStatus( SteamInventoryResult_t resultHandle ) = 0; // Copies the contents of a result set into a flat array. The specific // contents of the result set depend on which query which was used. - METHOD_DESC(Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used.) virtual bool GetResultItems( SteamInventoryResult_t resultHandle, - OUT_ARRAY_COUNT( punOutItemsArraySize,Output array) SteamItemDetails_t *pOutItemsArray, + STEAM_OUT_ARRAY_COUNT( punOutItemsArraySize,Output array) SteamItemDetails_t *pOutItemsArray, uint32 *punOutItemsArraySize ) = 0; + // In combination with GetResultItems, you can use GetResultItemProperty to retrieve + // dynamic string properties for a given item returned in the result set. + // + // Property names are always composed of ASCII letters, numbers, and/or underscores. + // + // Pass a NULL pointer for pchPropertyName to get a comma - separated list of available + // property names. + // + // If pchValueBuffer is NULL, *punValueBufferSize will contain the + // suggested buffer size. Otherwise it will be the number of bytes actually copied + // to pchValueBuffer. If the results do not fit in the given buffer, partial + // results may be copied. + virtual bool GetResultItemProperty( SteamInventoryResult_t resultHandle, + uint32 unItemIndex, + const char *pchPropertyName, + STEAM_OUT_STRING_COUNT( punValueBufferSizeOut ) char *pchValueBuffer, uint32 *punValueBufferSizeOut ) = 0; + // Returns the server time at which the result was generated. Compare against // the value of IClientUtils::GetServerRealTime() to determine age. - METHOD_DESC(Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age.) virtual uint32 GetResultTimestamp( SteamInventoryResult_t resultHandle ) = 0; // Returns true if the result belongs to the target steam ID, false if the // result does not. This is important when using DeserializeResult, to verify // that a remote player is not pretending to have a different user's inventory. - METHOD_DESC(Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory.) virtual bool CheckResultSteamID( SteamInventoryResult_t resultHandle, CSteamID steamIDExpected ) = 0; // Destroys a result handle and frees all associated memory. - METHOD_DESC(Destroys a result handle and frees all associated memory.) virtual void DestroyResult( SteamInventoryResult_t resultHandle ) = 0; @@ -120,7 +134,6 @@ public: // cached results if called too frequently. It is suggested that you call // this function only when you are about to display the user's full inventory, // or if you expect that the inventory may have changed. - METHOD_DESC(Captures the entire state of the current users Steam inventory.) virtual bool GetAllItems( SteamInventoryResult_t *pResultHandle ) = 0; @@ -131,8 +144,7 @@ public: // For example, you could call GetItemsByID with the IDs of the user's // currently equipped cosmetic items and serialize this to a buffer, and // then transmit this buffer to other players upon joining a game. - METHOD_DESC(Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs.) - virtual bool GetItemsByID( SteamInventoryResult_t *pResultHandle, ARRAY_COUNT( unCountInstanceIDs ) const SteamItemInstanceID_t *pInstanceIDs, uint32 unCountInstanceIDs ) = 0; + virtual bool GetItemsByID( SteamInventoryResult_t *pResultHandle, STEAM_ARRAY_COUNT( unCountInstanceIDs ) const SteamItemInstanceID_t *pInstanceIDs, uint32 unCountInstanceIDs ) = 0; // RESULT SERIALIZATION AND AUTHENTICATION @@ -150,7 +162,7 @@ public: // recommended to use "GetItemsByID" first to create a minimal result set. // Results have a built-in timestamp which will be considered "expired" after // an hour has elapsed. See DeserializeResult for expiration handling. - virtual bool SerializeResult( SteamInventoryResult_t resultHandle, OUT_BUFFER_COUNT(punOutBufferSize) void *pOutBuffer, uint32 *punOutBufferSize ) = 0; + virtual bool SerializeResult( SteamInventoryResult_t resultHandle, STEAM_OUT_BUFFER_COUNT(punOutBufferSize) void *pOutBuffer, uint32 *punOutBufferSize ) = 0; // Deserializes a result set and verifies the signature bytes. Returns false // if bRequireFullOnlineVerify is set but Steam is running in Offline mode. @@ -168,26 +180,24 @@ public: // ISteamUtils::GetServerRealTime() to determine how old the data is. You could // simply ignore the "expired" result code and continue as normal, or you // could challenge the player with expired data to send an updated result set. - virtual bool DeserializeResult( SteamInventoryResult_t *pOutResultHandle, BUFFER_COUNT(punOutBufferSize) const void *pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE = false ) = 0; + virtual bool DeserializeResult( SteamInventoryResult_t *pOutResultHandle, STEAM_BUFFER_COUNT(punOutBufferSize) const void *pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE = false ) = 0; // INVENTORY ASYNC MODIFICATION // // GenerateItems() creates one or more items and then generates a SteamInventoryCallback_t - // notification with a matching nCallbackContext parameter. This API is insecure, and could - // be abused by hacked clients. It is, however, very useful as a development cheat or as - // a means of prototyping item-related features for your game. The use of GenerateItems can - // be restricted to certain item definitions or fully blocked via the Steamworks website. + // notification with a matching nCallbackContext parameter. This API is only intended + // for prototyping - it is only usable by Steam accounts that belong to the publisher group + // for your game. // If punArrayQuantity is not NULL, it should be the same length as pArrayItems and should // describe the quantity of each item to generate. - virtual bool GenerateItems( SteamInventoryResult_t *pResultHandle, ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, ARRAY_COUNT(unArrayLength) const uint32 *punArrayQuantity, uint32 unArrayLength ) = 0; + virtual bool GenerateItems( SteamInventoryResult_t *pResultHandle, STEAM_ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, STEAM_ARRAY_COUNT(unArrayLength) const uint32 *punArrayQuantity, uint32 unArrayLength ) = 0; // GrantPromoItems() checks the list of promotional items for which the user may be eligible // and grants the items (one time only). On success, the result set will include items which // were granted, if any. If no items were granted because the user isn't eligible for any // promotions, this is still considered a success. - METHOD_DESC(GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only).) virtual bool GrantPromoItems( SteamInventoryResult_t *pResultHandle ) = 0; // AddPromoItem() / AddPromoItems() are restricted versions of GrantPromoItems(). Instead of @@ -195,29 +205,24 @@ public: // definition or set of item definitions. This can be useful if your game has custom UI for // showing a specific promo item to the user. virtual bool AddPromoItem( SteamInventoryResult_t *pResultHandle, SteamItemDef_t itemDef ) = 0; - virtual bool AddPromoItems( SteamInventoryResult_t *pResultHandle, ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, uint32 unArrayLength ) = 0; + virtual bool AddPromoItems( SteamInventoryResult_t *pResultHandle, STEAM_ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, uint32 unArrayLength ) = 0; // ConsumeItem() removes items from the inventory, permanently. They cannot be recovered. // Not for the faint of heart - if your game implements item removal at all, a high-friction - // UI confirmation process is highly recommended. Similar to GenerateItems, punArrayQuantity - // can be NULL or else an array of the same length as pArrayItems which describe the quantity - // of each item to destroy. ConsumeItem can be restricted to certain item definitions or - // fully blocked via the Steamworks website to minimize support/abuse issues such as the - // clasic "my brother borrowed my laptop and deleted all of my rare items". - METHOD_DESC(ConsumeItem() removes items from the inventory permanently.) + // UI confirmation process is highly recommended. virtual bool ConsumeItem( SteamInventoryResult_t *pResultHandle, SteamItemInstanceID_t itemConsume, uint32 unQuantity ) = 0; - // ExchangeItems() is an atomic combination of GenerateItems and DestroyItems. It can be - // used to implement crafting recipes or transmutations, or items which unpack themselves - // into other items. Like GenerateItems, this is a flexible and dangerous API which is - // meant for rapid prototyping. You can configure restrictions on ExchangeItems via the - // Steamworks website, such as limiting it to a whitelist of input/output combinations - // corresponding to recipes. - // (Note: although GenerateItems may be hard or impossible to use securely in your game, - // ExchangeItems is perfectly reasonable to use once the whitelists are set accordingly.) + // ExchangeItems() is an atomic combination of item generation and consumption. + // It can be used to implement crafting recipes or transmutations, or items which unpack + // themselves into other items (e.g., a chest). + // Exchange recipes are defined in the ItemDef, and explicitly list the required item + // types and resulting generated type. + // Exchange recipes are evaluated atomically by the Inventory Service; if the supplied + // components do not match the recipe, or do not contain sufficient quantity, the + // exchange will fail. virtual bool ExchangeItems( SteamInventoryResult_t *pResultHandle, - ARRAY_COUNT(unArrayGenerateLength) const SteamItemDef_t *pArrayGenerate, ARRAY_COUNT(unArrayGenerateLength) const uint32 *punArrayGenerateQuantity, uint32 unArrayGenerateLength, - ARRAY_COUNT(unArrayDestroyLength) const SteamItemInstanceID_t *pArrayDestroy, ARRAY_COUNT(unArrayDestroyLength) const uint32 *punArrayDestroyQuantity, uint32 unArrayDestroyLength ) = 0; + STEAM_ARRAY_COUNT(unArrayGenerateLength) const SteamItemDef_t *pArrayGenerate, STEAM_ARRAY_COUNT(unArrayGenerateLength) const uint32 *punArrayGenerateQuantity, uint32 unArrayGenerateLength, + STEAM_ARRAY_COUNT(unArrayDestroyLength) const SteamItemInstanceID_t *pArrayDestroy, STEAM_ARRAY_COUNT(unArrayDestroyLength) const uint32 *punArrayDestroyQuantity, uint32 unArrayDestroyLength ) = 0; // TransferItemQuantity() is intended for use with items which are "stackable" (can have @@ -230,21 +235,7 @@ public: // TIMED DROPS AND PLAYTIME CREDIT // - // Applications which use timed-drop mechanics should call SendItemDropHeartbeat() when - // active gameplay begins, and at least once every two minutes afterwards. The backend - // performs its own time calculations, so the precise timing of the heartbeat is not - // critical as long as you send at least one heartbeat every two minutes. Calling the - // function more often than that is not harmful, it will simply have no effect. Note: - // players may be able to spoof this message by hacking their client, so you should not - // attempt to use this as a mechanism to restrict playtime credits. It is simply meant - // to distinguish between being in any kind of gameplay situation vs the main menu or - // a pre-game launcher window. (If you are stingy with handing out playtime credit, it - // will only encourage players to run bots or use mouse/kb event simulators.) - // - // Playtime credit accumulation can be capped on a daily or weekly basis through your - // Steamworks configuration. - // - METHOD_DESC(Applications which use timed-drop mechanics should call SendItemDropHeartbeat() when active gameplay begins and at least once every two minutes afterwards.) + // Deprecated. Calling this method is not required for proper playtime accounting. virtual void SendItemDropHeartbeat() = 0; // Playtime credit must be consumed and turned into item drops by your game. Only item @@ -253,26 +244,16 @@ public: // Your game should call TriggerItemDrop at an appropriate time for the user to receive // new items, such as between rounds or while the player is dead. Note that players who // hack their clients could modify the value of "dropListDefinition", so do not use it - // to directly control rarity. It is primarily useful during testing and development, - // where you may wish to perform experiments with different types of drops. - METHOD_DESC(Playtime credit must be consumed and turned into item drops by your game.) + // to directly control rarity. + // See your Steamworks configuration to set playtime drop rates for individual itemdefs. + // The client library will suppress too-frequent calls to this method. virtual bool TriggerItemDrop( SteamInventoryResult_t *pResultHandle, SteamItemDef_t dropListDefinition ) = 0; - // IN-GAME TRADING - // - // TradeItems() implements limited in-game trading of items, if you prefer not to use - // the overlay or an in-game web browser to perform Steam Trading through the website. - // You should implement a UI where both players can see and agree to a trade, and then - // each client should call TradeItems simultaneously (+/- 5 seconds) with matching - // (but reversed) parameters. The result is the same as if both players performed a - // Steam Trading transaction through the web. Each player will get an inventory result - // confirming the removal or quantity changes of the items given away, and the new - // item instance id numbers and quantities of the received items. - // (Note: new item instance IDs are generated whenever an item changes ownership.) + // Deprecated. This method is not supported. virtual bool TradeItems( SteamInventoryResult_t *pResultHandle, CSteamID steamIDTradePartner, - ARRAY_COUNT(nArrayGiveLength) const SteamItemInstanceID_t *pArrayGive, ARRAY_COUNT(nArrayGiveLength) const uint32 *pArrayGiveQuantity, uint32 nArrayGiveLength, - ARRAY_COUNT(nArrayGetLength) const SteamItemInstanceID_t *pArrayGet, ARRAY_COUNT(nArrayGetLength) const uint32 *pArrayGetQuantity, uint32 nArrayGetLength ) = 0; + STEAM_ARRAY_COUNT(nArrayGiveLength) const SteamItemInstanceID_t *pArrayGive, STEAM_ARRAY_COUNT(nArrayGiveLength) const uint32 *pArrayGiveQuantity, uint32 nArrayGiveLength, + STEAM_ARRAY_COUNT(nArrayGetLength) const SteamItemInstanceID_t *pArrayGet, STEAM_ARRAY_COUNT(nArrayGetLength) const uint32 *pArrayGetQuantity, uint32 nArrayGetLength ) = 0; // ITEM DEFINITIONS @@ -289,7 +270,6 @@ public: // Every time new item definitions are available (eg, from the dynamic addition of new // item types while players are still in-game), a SteamInventoryDefinitionUpdate_t // callback will be fired. - METHOD_DESC(LoadItemDefinitions triggers the automatic load and refresh of item definitions.) virtual bool LoadItemDefinitions() = 0; // GetItemDefinitionIDs returns the set of all defined item definition IDs (which are @@ -298,8 +278,8 @@ public: // contain the total size necessary for a subsequent call. Otherwise, the call will // return false if and only if there is not enough space in the output array. virtual bool GetItemDefinitionIDs( - OUT_ARRAY_COUNT(punItemDefIDsArraySize,List of item definition IDs) SteamItemDef_t *pItemDefIDs, - DESC(Size of array is passed in and actual size used is returned in this param) uint32 *punItemDefIDsArraySize ) = 0; + STEAM_OUT_ARRAY_COUNT(punItemDefIDsArraySize,List of item definition IDs) SteamItemDef_t *pItemDefIDs, + STEAM_DESC(Size of array is passed in and actual size used is returned in this param) uint32 *punItemDefIDsArraySize ) = 0; // GetItemDefinitionProperty returns a string property from a given item definition. // Note that some properties (for example, "name") may be localized and will depend @@ -311,18 +291,88 @@ public: // to pchValueBuffer. If the results do not fit in the given buffer, partial // results may be copied. virtual bool GetItemDefinitionProperty( SteamItemDef_t iDefinition, const char *pchPropertyName, - OUT_STRING_COUNT(punValueBufferSizeOut) char *pchValueBuffer, uint32 *punValueBufferSizeOut ) = 0; + STEAM_OUT_STRING_COUNT(punValueBufferSizeOut) char *pchValueBuffer, uint32 *punValueBufferSizeOut ) = 0; + + // Request the list of "eligible" promo items that can be manually granted to the given + // user. These are promo items of type "manual" that won't be granted automatically. + // An example usage of this is an item that becomes available every week. + STEAM_CALL_RESULT( SteamInventoryEligiblePromoItemDefIDs_t ) + virtual SteamAPICall_t RequestEligiblePromoItemDefinitionsIDs( CSteamID steamID ) = 0; + + // After handling a SteamInventoryEligiblePromoItemDefIDs_t call result, use this + // function to pull out the list of item definition ids that the user can be + // manually granted via the AddPromoItems() call. + virtual bool GetEligiblePromoItemDefinitionIDs( + CSteamID steamID, + STEAM_OUT_ARRAY_COUNT(punItemDefIDsArraySize,List of item definition IDs) SteamItemDef_t *pItemDefIDs, + STEAM_DESC(Size of array is passed in and actual size used is returned in this param) uint32 *punItemDefIDsArraySize ) = 0; + + // Starts the purchase process for the given item definitions. The callback SteamInventoryStartPurchaseResult_t + // will be posted if Steam was able to initialize the transaction. + // + // Once the purchase has been authorized and completed by the user, the callback SteamInventoryResultReady_t + // will be posted. + STEAM_CALL_RESULT( SteamInventoryStartPurchaseResult_t ) + virtual SteamAPICall_t StartPurchase( STEAM_ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, STEAM_ARRAY_COUNT(unArrayLength) const uint32 *punArrayQuantity, uint32 unArrayLength ) = 0; + + // Request current prices for all applicable item definitions + STEAM_CALL_RESULT( SteamInventoryRequestPricesResult_t ) + virtual SteamAPICall_t RequestPrices() = 0; + + // Returns the number of items with prices. Need to call RequestPrices() first. + virtual uint32 GetNumItemsWithPrices() = 0; + + // Returns item definition ids and their prices in the user's local currency. + // Need to call RequestPrices() first. + virtual bool GetItemsWithPrices( STEAM_ARRAY_COUNT(unArrayLength) STEAM_OUT_ARRAY_COUNT(pArrayItemDefs, Items with prices) SteamItemDef_t *pArrayItemDefs, + STEAM_ARRAY_COUNT(unArrayLength) STEAM_OUT_ARRAY_COUNT(pPrices, List of prices for the given item defs) uint64 *pCurrentPrices, + STEAM_ARRAY_COUNT(unArrayLength) STEAM_OUT_ARRAY_COUNT(pPrices, List of prices for the given item defs) uint64 *pBasePrices, + uint32 unArrayLength ) = 0; + + // Retrieves the price for the item definition id + // Returns false if there is no price stored for the item definition. + virtual bool GetItemPrice( SteamItemDef_t iDefinition, uint64 *pCurrentPrice, uint64 *pBasePrice ) = 0; + + // Create a request to update properties on items + virtual SteamInventoryUpdateHandle_t StartUpdateProperties() = 0; + // Remove the property on the item + virtual bool RemoveProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName ) = 0; + // Accessor methods to set properties on items + + STEAM_FLAT_NAME( SetPropertyString ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, const char *pchPropertyValue ) = 0; + + STEAM_FLAT_NAME( SetPropertyBool ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, bool bValue ) = 0; + + STEAM_FLAT_NAME( SetPropertyInt64 ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, int64 nValue ) = 0; + + STEAM_FLAT_NAME( SetPropertyFloat ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, float flValue ) = 0; + + // Submit the update request by handle + virtual bool SubmitUpdateProperties( SteamInventoryUpdateHandle_t handle, SteamInventoryResult_t * pResultHandle ) = 0; + + virtual bool InspectItem( SteamInventoryResult_t *pResultHandle, const char *pchItemToken ) = 0; }; -#define STEAMINVENTORY_INTERFACE_VERSION "STEAMINVENTORY_INTERFACE_V001" +#define STEAMINVENTORY_INTERFACE_VERSION "STEAMINVENTORY_INTERFACE_V003" +// Global interface accessor +inline ISteamInventory *SteamInventory(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamInventory *, SteamInventory, STEAMINVENTORY_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamInventory *SteamGameServerInventory(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamInventory *, SteamGameServerInventory, STEAMINVENTORY_INTERFACE_VERSION ); // SteamInventoryResultReady_t callbacks are fired whenever asynchronous // results transition from "Pending" to "OK" or an error state. There will // always be exactly one callback per handle. struct SteamInventoryResultReady_t { - enum { k_iCallback = k_iClientInventoryCallbacks + 0 }; + enum { k_iCallback = k_iSteamInventoryCallbacks + 0 }; SteamInventoryResult_t m_handle; EResult m_result; }; @@ -337,7 +387,7 @@ struct SteamInventoryResultReady_t // afterwards; this is an additional notification for your convenience. struct SteamInventoryFullUpdate_t { - enum { k_iCallback = k_iClientInventoryCallbacks + 1 }; + enum { k_iCallback = k_iSteamInventoryCallbacks + 1 }; SteamInventoryResult_t m_handle; }; @@ -348,7 +398,35 @@ struct SteamInventoryFullUpdate_t // a definition update in order to process results from the server. struct SteamInventoryDefinitionUpdate_t { - enum { k_iCallback = k_iClientInventoryCallbacks + 2 }; + enum { k_iCallback = k_iSteamInventoryCallbacks + 2 }; +}; + +// Returned +struct SteamInventoryEligiblePromoItemDefIDs_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 3 }; + EResult m_result; + CSteamID m_steamID; + int m_numEligiblePromoItemDefs; + bool m_bCachedData; // indicates that the data was retrieved from the cache and not the server +}; + +// Triggered from StartPurchase call +struct SteamInventoryStartPurchaseResult_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 4 }; + EResult m_result; + uint64 m_ulOrderID; + uint64 m_ulTransID; +}; + + +// Triggered from RequestPrices +struct SteamInventoryRequestPricesResult_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 5 }; + EResult m_result; + char m_rgchCurrency[4]; }; #pragma pack( pop ) diff --git a/lib/osx/include/steam/isteammasterserverupdater.h b/lib/osx/include/steam/isteammasterserverupdater.h deleted file mode 100644 index 4be0ca5..0000000 --- a/lib/osx/include/steam/isteammasterserverupdater.h +++ /dev/null @@ -1 +0,0 @@ -#error "This file isn't used any more" diff --git a/lib/osx/include/steam/isteammatchmaking.h b/lib/osx/include/steam/isteammatchmaking.h index 837d98b..12189c7 100644 --- a/lib/osx/include/steam/isteammatchmaking.h +++ b/lib/osx/include/steam/isteammatchmaking.h @@ -10,10 +10,8 @@ #pragma once #endif -#include "steamtypes.h" -#include "steamclientpublic.h" +#include "steam_api_common.h" #include "matchmakingtypes.h" -#include "isteamclient.h" #include "isteamfriends.h" // lobby type description @@ -25,6 +23,8 @@ enum ELobbyType k_ELobbyTypeInvisible = 3, // returned by search, but not visible to other friends // useful if you want a user in two lobbies, for example matching groups together // a user can be in only one regular lobby, and up to two invisible lobbies + k_ELobbyTypePrivateUnique = 4, // private, unique and does not delete when empty - only one of these may exist per unique keypair set + // can only create from webapi }; // lobby search filter tools @@ -103,7 +103,7 @@ public: } */ // - CALL_RESULT( LobbyMatchList_t ) + STEAM_CALL_RESULT( LobbyMatchList_t ) virtual SteamAPICall_t RequestLobbyList() = 0; // filters for lobbies // this needs to be called before RequestLobbyList() to take effect @@ -134,14 +134,14 @@ public: // this is an asynchronous request // results will be returned by LobbyCreated_t callback and call result; lobby is joined & ready to use at this point // a LobbyEnter_t callback will also be received (since the local user is joining their own lobby) - CALL_RESULT( LobbyCreated_t ) + STEAM_CALL_RESULT( LobbyCreated_t ) virtual SteamAPICall_t CreateLobby( ELobbyType eLobbyType, int cMaxMembers ) = 0; // Joins an existing lobby // this is an asynchronous request // results will be returned by LobbyEnter_t callback & call result, check m_EChatRoomEnterResponse to see if was successful // lobby metadata is available to use immediately on this call completing - CALL_RESULT( LobbyEnter_t ) + STEAM_CALL_RESULT( LobbyEnter_t ) virtual SteamAPICall_t JoinLobby( CSteamID steamIDLobby ) = 0; // Leave a lobby; this will take effect immediately on the client side @@ -204,7 +204,7 @@ public: // *pSteamIDUser is filled in with the CSteamID of the member // *pvData is filled in with the message itself // return value is the number of bytes written into the buffer - virtual int GetLobbyChatEntry( CSteamID steamIDLobby, int iChatID, OUT_STRUCT() CSteamID *pSteamIDUser, void *pvData, int cubData, EChatEntryType *peChatEntryType ) = 0; + virtual int GetLobbyChatEntry( CSteamID steamIDLobby, int iChatID, STEAM_OUT_STRUCT() CSteamID *pSteamIDUser, void *pvData, int cubData, EChatEntryType *peChatEntryType ) = 0; // Refreshes metadata for a lobby you're not necessarily in right now // you never do this for lobbies you're a member of, only if your @@ -220,7 +220,7 @@ public: // either the IP/Port or the steamID of the game server has to be valid, depending on how you want the clients to be able to connect virtual void SetLobbyGameServer( CSteamID steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, CSteamID steamIDGameServer ) = 0; // returns the details of a game server set in a lobby - returns false if there is no game server set, or that lobby doesn't exist - virtual bool GetLobbyGameServer( CSteamID steamIDLobby, uint32 *punGameServerIP, uint16 *punGameServerPort, OUT_STRUCT() CSteamID *psteamIDGameServer ) = 0; + virtual bool GetLobbyGameServer( CSteamID steamIDLobby, uint32 *punGameServerIP, uint16 *punGameServerPort, STEAM_OUT_STRUCT() CSteamID *psteamIDGameServer ) = 0; // set the limit on the # of users who can join the lobby virtual bool SetLobbyMemberLimit( CSteamID steamIDLobby, int cMaxMembers ) = 0; @@ -256,10 +256,12 @@ public: // after completion, the local user will no longer be the owner virtual void CheckForPSNGameBootInvite( unsigned int iGameBootAttributes ) = 0; #endif - CALL_BACK( LobbyChatUpdate_t ) }; #define STEAMMATCHMAKING_INTERFACE_VERSION "SteamMatchMaking009" +// Global interface accessor +inline ISteamMatchmaking *SteamMatchmaking(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMatchmaking *, SteamMatchmaking, STEAMMATCHMAKING_INTERFACE_VERSION ); //----------------------------------------------------------------------------- // Callback interfaces for server list functions (see ISteamMatchmakingServers below) @@ -391,12 +393,12 @@ public: // Request a new list of servers of a particular type. These calls each correspond to one of the EMatchMakingType values. // Each call allocates a new asynchronous request object. // Request object must be released by calling ReleaseRequest( hServerListRequest ) - virtual HServerListRequest RequestInternetServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestInternetServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; virtual HServerListRequest RequestLANServerList( AppId_t iApp, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; - virtual HServerListRequest RequestFriendsServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; - virtual HServerListRequest RequestFavoritesServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; - virtual HServerListRequest RequestHistoryServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; - virtual HServerListRequest RequestSpectatorServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestFriendsServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestFavoritesServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestHistoryServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestSpectatorServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; // Releases the asynchronous request object and cancels any pending query on it if there's a pending query in progress. // RefreshComplete callback is not posted when request is released. @@ -522,6 +524,10 @@ public: }; #define STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION "SteamMatchMakingServers002" +// Global interface accessor +inline ISteamMatchmakingServers *SteamMatchmakingServers(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMatchmakingServers *, SteamMatchmakingServers, STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION ); + // game server flags const uint32 k_unFavoriteFlagNone = 0x00; const uint32 k_unFavoriteFlagFavorite = 0x01; // this game favorite entry is for the favorites list @@ -545,16 +551,181 @@ enum EChatMemberStateChange #define BChatMemberStateChangeRemoved( rgfChatMemberStateChangeFlags ) ( rgfChatMemberStateChangeFlags & ( k_EChatMemberStateChangeDisconnected | k_EChatMemberStateChangeLeft | k_EChatMemberStateChangeKicked | k_EChatMemberStateChangeBanned ) ) + //----------------------------------------------------------------------------- -// Callbacks for ISteamMatchmaking (which go through the regular Steam callback registration system) +// Purpose: Functions for match making services for clients to get to favorites +// and to operate on game lobbies. +//----------------------------------------------------------------------------- +class ISteamGameSearch +{ +public: + // ============================================================================================= + // Game Player APIs + + // a keyname and a list of comma separated values: one of which is must be found in order for the match to qualify + // fails if a search is currently in progress + virtual EGameSearchErrorCode_t AddGameSearchParams( const char *pchKeyToFind, const char *pchValuesToFind ) = 0; + + // all players in lobby enter the queue and await a SearchForGameNotificationCallback_t callback. fails if another search is currently in progress + // if not the owner of the lobby or search already in progress this call fails + // periodic callbacks will be sent as queue time estimates change + virtual EGameSearchErrorCode_t SearchForGameWithLobby( CSteamID steamIDLobby, int nPlayerMin, int nPlayerMax ) = 0; + + // user enter the queue and await a SearchForGameNotificationCallback_t callback. fails if another search is currently in progress + // periodic callbacks will be sent as queue time estimates change + virtual EGameSearchErrorCode_t SearchForGameSolo( int nPlayerMin, int nPlayerMax ) = 0; + + // after receiving SearchForGameResultCallback_t, accept or decline the game + // multiple SearchForGameResultCallback_t will follow as players accept game until the host starts or cancels the game + virtual EGameSearchErrorCode_t AcceptGame() = 0; + virtual EGameSearchErrorCode_t DeclineGame() = 0; + + // after receiving GameStartedByHostCallback_t get connection details to server + virtual EGameSearchErrorCode_t RetrieveConnectionDetails( CSteamID steamIDHost, char *pchConnectionDetails, int cubConnectionDetails ) = 0; + + // leaves queue if still waiting + virtual EGameSearchErrorCode_t EndGameSearch() = 0; + + // ============================================================================================= + // Game Host APIs + + // a keyname and a list of comma separated values: all the values you allow + virtual EGameSearchErrorCode_t SetGameHostParams( const char *pchKey, const char *pchValue ) = 0; + + // set connection details for players once game is found so they can connect to this server + virtual EGameSearchErrorCode_t SetConnectionDetails( const char *pchConnectionDetails, int cubConnectionDetails ) = 0; + + // mark server as available for more players with nPlayerMin,nPlayerMax desired + // accept no lobbies with playercount greater than nMaxTeamSize + // the set of lobbies returned must be partitionable into teams of no more than nMaxTeamSize + // RequestPlayersForGameNotificationCallback_t callback will be sent when the search has started + // multple RequestPlayersForGameResultCallback_t callbacks will follow when players are found + virtual EGameSearchErrorCode_t RequestPlayersForGame( int nPlayerMin, int nPlayerMax, int nMaxTeamSize ) = 0; + + // accept the player list and release connection details to players + // players will only be given connection details and host steamid when this is called + // ( allows host to accept after all players confirm, some confirm, or none confirm. decision is entirely up to the host ) + virtual EGameSearchErrorCode_t HostConfirmGameStart( uint64 ullUniqueGameID ) = 0; + + // cancel request and leave the pool of game hosts looking for players + // if a set of players has already been sent to host, all players will receive SearchForGameHostFailedToConfirm_t + virtual EGameSearchErrorCode_t CancelRequestPlayersForGame() = 0; + + // submit a result for one player. does not end the game. ullUniqueGameID continues to describe this game + virtual EGameSearchErrorCode_t SubmitPlayerResult( uint64 ullUniqueGameID, CSteamID steamIDPlayer, EPlayerResult_t EPlayerResult ) = 0; + + // ends the game. no further SubmitPlayerResults for ullUniqueGameID will be accepted + // any future requests will provide a new ullUniqueGameID + virtual EGameSearchErrorCode_t EndGame( uint64 ullUniqueGameID ) = 0; + +}; +#define STEAMGAMESEARCH_INTERFACE_VERSION "SteamMatchGameSearch001" + +// Global interface accessor +inline ISteamGameSearch *SteamGameSearch(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamGameSearch *, SteamGameSearch, STEAMGAMESEARCH_INTERFACE_VERSION ); + + +//----------------------------------------------------------------------------- +// Purpose: Functions for quickly creating a Party with friends or acquaintances, +// EG from chat rooms. +//----------------------------------------------------------------------------- +enum ESteamPartyBeaconLocationType +{ + k_ESteamPartyBeaconLocationType_Invalid = 0, + k_ESteamPartyBeaconLocationType_ChatGroup = 1, + + k_ESteamPartyBeaconLocationType_Max, +}; + + #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif + +struct SteamPartyBeaconLocation_t +{ + ESteamPartyBeaconLocationType m_eType; + uint64 m_ulLocationID; +}; + +enum ESteamPartyBeaconLocationData +{ + k_ESteamPartyBeaconLocationDataInvalid = 0, + k_ESteamPartyBeaconLocationDataName = 1, + k_ESteamPartyBeaconLocationDataIconURLSmall = 2, + k_ESteamPartyBeaconLocationDataIconURLMedium = 3, + k_ESteamPartyBeaconLocationDataIconURLLarge = 4, +}; + +class ISteamParties +{ +public: + + // ============================================================================================= + // Party Client APIs + + // Enumerate any active beacons for parties you may wish to join + virtual uint32 GetNumActiveBeacons() = 0; + virtual PartyBeaconID_t GetBeaconByIndex( uint32 unIndex ) = 0; + virtual bool GetBeaconDetails( PartyBeaconID_t ulBeaconID, CSteamID *pSteamIDBeaconOwner, STEAM_OUT_STRUCT() SteamPartyBeaconLocation_t *pLocation, STEAM_OUT_STRING_COUNT(cchMetadata) char *pchMetadata, int cchMetadata ) = 0; + + // Join an open party. Steam will reserve one beacon slot for your SteamID, + // and return the necessary JoinGame string for you to use to connect + STEAM_CALL_RESULT( JoinPartyCallback_t ) + virtual SteamAPICall_t JoinParty( PartyBeaconID_t ulBeaconID ) = 0; + + // ============================================================================================= + // Party Host APIs + + // Get a list of possible beacon locations + virtual bool GetNumAvailableBeaconLocations( uint32 *puNumLocations ) = 0; + virtual bool GetAvailableBeaconLocations( SteamPartyBeaconLocation_t *pLocationList, uint32 uMaxNumLocations ) = 0; + + // Create a new party beacon and activate it in the selected location. + // unOpenSlots is the maximum number of users that Steam will send to you. + // When people begin responding to your beacon, Steam will send you + // PartyReservationCallback_t callbacks to let you know who is on the way. + STEAM_CALL_RESULT( CreateBeaconCallback_t ) + virtual SteamAPICall_t CreateBeacon( uint32 unOpenSlots, SteamPartyBeaconLocation_t *pBeaconLocation, const char *pchConnectString, const char *pchMetadata ) = 0; + + // Call this function when a user that had a reservation (see callback below) + // has successfully joined your party. + // Steam will manage the remaining open slots automatically. + virtual void OnReservationCompleted( PartyBeaconID_t ulBeacon, CSteamID steamIDUser ) = 0; + + // To cancel a reservation (due to timeout or user input), call this. + // Steam will open a new reservation slot. + // Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + virtual void CancelReservation( PartyBeaconID_t ulBeacon, CSteamID steamIDUser ) = 0; + + // Change the number of open beacon reservation slots. + // Call this if, for example, someone without a reservation joins your party (eg a friend, or via your own matchmaking system). + STEAM_CALL_RESULT( ChangeNumOpenSlotsCallback_t ) + virtual SteamAPICall_t ChangeNumOpenSlots( PartyBeaconID_t ulBeacon, uint32 unOpenSlots ) = 0; + + // Turn off the beacon. + virtual bool DestroyBeacon( PartyBeaconID_t ulBeacon ) = 0; + + // Utils + virtual bool GetBeaconLocationData( SteamPartyBeaconLocation_t BeaconLocation, ESteamPartyBeaconLocationData eData, STEAM_OUT_STRING_COUNT(cchDataStringOut) char *pchDataStringOut, int cchDataStringOut ) = 0; + +}; +#define STEAMPARTIES_INTERFACE_VERSION "SteamParties002" + +// Global interface accessor +inline ISteamParties *SteamParties(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamParties *, SteamParties, STEAMPARTIES_INTERFACE_VERSION ); + + +//----------------------------------------------------------------------------- +// Callbacks for ISteamMatchmaking (which go through the regular Steam callback registration system) + //----------------------------------------------------------------------------- // Purpose: a server was added/removed from the favorites list, you should refresh now //----------------------------------------------------------------------------- @@ -745,6 +916,171 @@ struct FavoritesListAccountsUpdated_t EResult m_eResult; }; + + +//----------------------------------------------------------------------------- +// Callbacks for ISteamGameSearch (which go through the regular Steam callback registration system) + +struct SearchForGameProgressCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 1 }; + + uint64 m_ullSearchID; // all future callbacks referencing this search will include this Search ID + + EResult m_eResult; // if search has started this result will be k_EResultOK, any other value indicates search has failed to start or has terminated + CSteamID m_lobbyID; // lobby ID if lobby search, invalid steamID otherwise + CSteamID m_steamIDEndedSearch; // if search was terminated, steamID that terminated search + + int32 m_nSecondsRemainingEstimate; + int32 m_cPlayersSearching; +}; + +// notification to all players searching that a game has been found +struct SearchForGameResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 2 }; + + uint64 m_ullSearchID; + + EResult m_eResult; // if game/host was lost this will be an error value + + // if m_bGameFound is true the following are non-zero + int32 m_nCountPlayersInGame; + int32 m_nCountAcceptedGame; + // if m_steamIDHost is valid the host has started the game + CSteamID m_steamIDHost; + bool m_bFinalCallback; +}; + + +//----------------------------------------------------------------------------- +// ISteamGameSearch : Game Host API callbacks + +// callback from RequestPlayersForGame when the matchmaking service has started or ended search +// callback will also follow a call from CancelRequestPlayersForGame - m_bSearchInProgress will be false +struct RequestPlayersForGameProgressCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 11 }; + + EResult m_eResult; // m_ullSearchID will be non-zero if this is k_EResultOK + uint64 m_ullSearchID; // all future callbacks referencing this search will include this Search ID +}; + +// callback from RequestPlayersForGame +// one of these will be sent per player +// followed by additional callbacks when players accept or decline the game +struct RequestPlayersForGameResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 12 }; + + EResult m_eResult; // m_ullSearchID will be non-zero if this is k_EResultOK + uint64 m_ullSearchID; + + CSteamID m_SteamIDPlayerFound; // player steamID + CSteamID m_SteamIDLobby; // if the player is in a lobby, the lobby ID + enum PlayerAcceptState_t + { + k_EStateUnknown = 0, + k_EStatePlayerAccepted = 1, + k_EStatePlayerDeclined = 2, + }; + PlayerAcceptState_t m_ePlayerAcceptState; + int32 m_nPlayerIndex; + int32 m_nTotalPlayersFound; // expect this many callbacks at minimum + int32 m_nTotalPlayersAcceptedGame; + int32 m_nSuggestedTeamIndex; + uint64 m_ullUniqueGameID; +}; + + +struct RequestPlayersForGameFinalResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 13 }; + + EResult m_eResult; + uint64 m_ullSearchID; + uint64 m_ullUniqueGameID; +}; + + + +// this callback confirms that results were received by the matchmaking service for this player +struct SubmitPlayerResultResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 14 }; + + EResult m_eResult; + uint64 ullUniqueGameID; + CSteamID steamIDPlayer; +}; + + +// this callback confirms that the game is recorded as complete on the matchmaking service +// the next call to RequestPlayersForGame will generate a new unique game ID +struct EndGameResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 15 }; + + EResult m_eResult; + uint64 ullUniqueGameID; +}; + + +// Steam has responded to the user request to join a party via the given Beacon ID. +// If successful, the connect string contains game-specific instructions to connect +// to the game with that party. +struct JoinPartyCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 1 }; + + EResult m_eResult; + PartyBeaconID_t m_ulBeaconID; + CSteamID m_SteamIDBeaconOwner; + char m_rgchConnectString[256]; +}; + +// Response to CreateBeacon request. If successful, the beacon ID is provided. +struct CreateBeaconCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 2 }; + + EResult m_eResult; + PartyBeaconID_t m_ulBeaconID; +}; + +// Someone has used the beacon to join your party - they are in-flight now +// and we've reserved one of the open slots for them. +// You should confirm when they join your party by calling OnReservationCompleted(). +// Otherwise, Steam may timeout their reservation eventually. +struct ReservationNotificationCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 3 }; + + PartyBeaconID_t m_ulBeaconID; + CSteamID m_steamIDJoiner; +}; + +// Response to ChangeNumOpenSlots call +struct ChangeNumOpenSlotsCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 4 }; + + EResult m_eResult; +}; + +// The list of possible Party beacon locations has changed +struct AvailableBeaconLocationsUpdated_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 5 }; +}; + +// The list of active beacons may have changed +struct ActiveBeaconsUpdated_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 6 }; +}; + + #pragma pack( pop ) diff --git a/lib/osx/include/steam/isteammusic.h b/lib/osx/include/steam/isteammusic.h index 779a4c2..ffa49a0 100644 --- a/lib/osx/include/steam/isteammusic.h +++ b/lib/osx/include/steam/isteammusic.h @@ -6,7 +6,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: @@ -44,22 +44,26 @@ public: #define STEAMMUSIC_INTERFACE_VERSION "STEAMMUSIC_INTERFACE_VERSION001" +// Global interface accessor +inline ISteamMusic *SteamMusic(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMusic *, SteamMusic, STEAMMUSIC_INTERFACE_VERSION ); + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif -DEFINE_CALLBACK( PlaybackStatusHasChanged_t, k_iSteamMusicCallbacks + 1 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( PlaybackStatusHasChanged_t, k_iSteamMusicCallbacks + 1 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( VolumeHasChanged_t, k_iSteamMusicCallbacks + 2 ) - CALLBACK_MEMBER( 0, float, m_flNewVolume ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( VolumeHasChanged_t, k_iSteamMusicCallbacks + 2 ) + STEAM_CALLBACK_MEMBER( 0, float, m_flNewVolume ) +STEAM_CALLBACK_END(1) #pragma pack( pop ) diff --git a/lib/osx/include/steam/isteammusicremote.h b/lib/osx/include/steam/isteammusicremote.h index ea29a7d..a36f4f8 100644 --- a/lib/osx/include/steam/isteammusicremote.h +++ b/lib/osx/include/steam/isteammusicremote.h @@ -6,7 +6,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" #include "isteammusic.h" #define k_SteamMusicNameMaxLength 255 @@ -64,63 +64,67 @@ public: #define STEAMMUSICREMOTE_INTERFACE_VERSION "STEAMMUSICREMOTE_INTERFACE_VERSION001" +// Global interface accessor +inline ISteamMusicRemote *SteamMusicRemote(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMusicRemote *, SteamMusicRemote, STEAMMUSICREMOTE_INTERFACE_VERSION ); + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif -DEFINE_CALLBACK( MusicPlayerRemoteWillActivate_t, k_iSteamMusicRemoteCallbacks + 1) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerRemoteWillActivate_t, k_iSteamMusicRemoteCallbacks + 1) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerRemoteWillDeactivate_t, k_iSteamMusicRemoteCallbacks + 2 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerRemoteWillDeactivate_t, k_iSteamMusicRemoteCallbacks + 2 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerRemoteToFront_t, k_iSteamMusicRemoteCallbacks + 3 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerRemoteToFront_t, k_iSteamMusicRemoteCallbacks + 3 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWillQuit_t, k_iSteamMusicRemoteCallbacks + 4 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWillQuit_t, k_iSteamMusicRemoteCallbacks + 4 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsPlay_t, k_iSteamMusicRemoteCallbacks + 5 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPlay_t, k_iSteamMusicRemoteCallbacks + 5 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsPause_t, k_iSteamMusicRemoteCallbacks + 6 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPause_t, k_iSteamMusicRemoteCallbacks + 6 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsPlayPrevious_t, k_iSteamMusicRemoteCallbacks + 7 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPlayPrevious_t, k_iSteamMusicRemoteCallbacks + 7 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsPlayNext_t, k_iSteamMusicRemoteCallbacks + 8 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPlayNext_t, k_iSteamMusicRemoteCallbacks + 8 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsShuffled_t, k_iSteamMusicRemoteCallbacks + 9 ) - CALLBACK_MEMBER( 0, bool, m_bShuffled ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsShuffled_t, k_iSteamMusicRemoteCallbacks + 9 ) + STEAM_CALLBACK_MEMBER( 0, bool, m_bShuffled ) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerWantsLooped_t, k_iSteamMusicRemoteCallbacks + 10 ) - CALLBACK_MEMBER(0, bool, m_bLooped ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsLooped_t, k_iSteamMusicRemoteCallbacks + 10 ) + STEAM_CALLBACK_MEMBER(0, bool, m_bLooped ) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerWantsVolume_t, k_iSteamMusicCallbacks + 11 ) - CALLBACK_MEMBER(0, float, m_flNewVolume) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsVolume_t, k_iSteamMusicCallbacks + 11 ) + STEAM_CALLBACK_MEMBER(0, float, m_flNewVolume) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerSelectsQueueEntry_t, k_iSteamMusicCallbacks + 12 ) - CALLBACK_MEMBER(0, int, nID ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerSelectsQueueEntry_t, k_iSteamMusicCallbacks + 12 ) + STEAM_CALLBACK_MEMBER(0, int, nID ) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerSelectsPlaylistEntry_t, k_iSteamMusicCallbacks + 13 ) - CALLBACK_MEMBER(0, int, nID ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerSelectsPlaylistEntry_t, k_iSteamMusicCallbacks + 13 ) + STEAM_CALLBACK_MEMBER(0, int, nID ) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerWantsPlayingRepeatStatus_t, k_iSteamMusicRemoteCallbacks + 14 ) - CALLBACK_MEMBER(0, int, m_nPlayingRepeatStatus ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPlayingRepeatStatus_t, k_iSteamMusicRemoteCallbacks + 14 ) + STEAM_CALLBACK_MEMBER(0, int, m_nPlayingRepeatStatus ) +STEAM_CALLBACK_END(1) #pragma pack( pop ) diff --git a/lib/osx/include/steam/isteamnetworking.h b/lib/osx/include/steam/isteamnetworking.h index 8f70819..b7e077a 100644 --- a/lib/osx/include/steam/isteamnetworking.h +++ b/lib/osx/include/steam/isteamnetworking.h @@ -10,21 +10,23 @@ #pragma once #endif -#include "steamtypes.h" -#include "steamclientpublic.h" - +#include "steam_api_common.h" // list of possible errors returned by SendP2PPacket() API // these will be posted in the P2PSessionConnectFail_t callback enum EP2PSessionError { k_EP2PSessionErrorNone = 0, - k_EP2PSessionErrorNotRunningApp = 1, // target is not running the same game k_EP2PSessionErrorNoRightsToApp = 2, // local user doesn't own the app that is running - k_EP2PSessionErrorDestinationNotLoggedIn = 3, // target user isn't connected to Steam k_EP2PSessionErrorTimeout = 4, // target isn't responding, perhaps not calling AcceptP2PSessionWithUser() // corporate firewalls can also block this (NAT traversal is not firewall traversal) // make sure that UDP ports 3478, 4379, and 4380 are open in an outbound direction + + // The following error codes were removed and will never be sent. + // For privacy reasons, there is no reply if the user is offline or playing another game. + k_EP2PSessionErrorNotRunningApp_DELETED = 1, + k_EP2PSessionErrorDestinationNotLoggedIn_DELETED = 3, + k_EP2PSessionErrorMax = 5 }; @@ -63,7 +65,7 @@ enum EP2PSend #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct P2PSessionState_t { @@ -122,13 +124,26 @@ enum ESNetSocketConnectionType //----------------------------------------------------------------------------- // Purpose: Functions for making connections and sending data between clients, // traversing NAT's where possible +// +// NOTE: This interface is deprecated and may be removed in a future release of +/// the Steamworks SDK. Please see ISteamNetworkingSockets and +/// ISteamNetworkingMessages //----------------------------------------------------------------------------- class ISteamNetworking { public: //////////////////////////////////////////////////////////////////////////////////////////// - // Session-less connection functions - // automatically establishes NAT-traversing or Relay server connections + // + // UDP-style (connectionless) networking interface. These functions send messages using + // an API organized around the destination. Reliable and unreliable messages are supported. + // + // For a more TCP-style interface (meaning you have a connection handle), see the functions below. + // Both interface styles can send both reliable and unreliable messages. + // + // Automatically establishes NAT-traversing or Relay server connections + // + // These APIs are deprecated, and may be removed in a future version of the Steamworks + // SDK. See ISteamNetworkingMessages. // Sends a P2P packet to the specified user // UDP-like, unreliable and a max packet size of 1200 bytes @@ -177,15 +192,29 @@ public: // or to existing connections that need to automatically reconnect after this value is set. // // P2P packet relay is allowed by default + // + // NOTE: This function is deprecated and may be removed in a future version of the SDK. For + // security purposes, we may decide to relay the traffic to certain peers, even if you pass false + // to this function, to prevent revealing the client's IP address top another peer. virtual bool AllowP2PPacketRelay( bool bAllow ) = 0; //////////////////////////////////////////////////////////////////////////////////////////// - // LISTEN / CONNECT style interface functions // - // This is an older set of functions designed around the Berkeley TCP sockets model - // it's preferential that you use the above P2P functions, they're more robust - // and these older functions will be removed eventually + // LISTEN / CONNECT connection-oriented interface functions + // + // These functions are more like a client-server TCP API. One side is the "server" + // and "listens" for incoming connections, which then must be "accepted." The "client" + // initiates a connection by "connecting." Sending and receiving is done through a + // connection handle. + // + // For a more UDP-style interface, where you do not track connection handles but + // simply send messages to a SteamID, use the UDP-style functions above. + // + // Both methods can send both reliable and unreliable methods. + // + // These APIs are deprecated, and may be removed in a future version of the Steamworks + // SDK. See ISteamNetworkingSockets. // //////////////////////////////////////////////////////////////////////////////////////////// @@ -198,14 +227,14 @@ public: // pass in 0 if you just want the default local IP // unPort is the port to use // pass in 0 if you don't want users to be able to connect via IP/Port, but expect to be always peer-to-peer connections only - virtual SNetListenSocket_t CreateListenSocket( int nVirtualP2PPort, uint32 nIP, uint16 nPort, bool bAllowUseOfPacketRelay ) = 0; + virtual SNetListenSocket_t CreateListenSocket( int nVirtualP2PPort, SteamIPAddress_t nIP, uint16 nPort, bool bAllowUseOfPacketRelay ) = 0; // creates a socket and begin connection to a remote destination // can connect via a known steamID (client or game server), or directly to an IP // on success will trigger a SocketStatusCallback_t callback // on failure or timeout will trigger a SocketStatusCallback_t callback with a failure code in m_eSNetSocketState virtual SNetSocket_t CreateP2PConnectionSocket( CSteamID steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay ) = 0; - virtual SNetSocket_t CreateConnectionSocket( uint32 nIP, uint16 nPort, int nTimeoutSec ) = 0; + virtual SNetSocket_t CreateConnectionSocket( SteamIPAddress_t nIP, uint16 nPort, int nTimeoutSec ) = 0; // disconnects the connection to the socket, if any, and invalidates the handle // any unread data on the socket will be thrown away @@ -247,11 +276,11 @@ public: virtual bool RetrieveData( SNetListenSocket_t hListenSocket, void *pubDest, uint32 cubDest, uint32 *pcubMsgSize, SNetSocket_t *phSocket ) = 0; // returns information about the specified socket, filling out the contents of the pointers - virtual bool GetSocketInfo( SNetSocket_t hSocket, CSteamID *pSteamIDRemote, int *peSocketStatus, uint32 *punIPRemote, uint16 *punPortRemote ) = 0; + virtual bool GetSocketInfo( SNetSocket_t hSocket, CSteamID *pSteamIDRemote, int *peSocketStatus, SteamIPAddress_t *punIPRemote, uint16 *punPortRemote ) = 0; // returns which local port the listen socket is bound to // *pnIP and *pnPort will be 0 if the socket is set to listen for P2P connections only - virtual bool GetListenSocketInfo( SNetListenSocket_t hListenSocket, uint32 *pnIP, uint16 *pnPort ) = 0; + virtual bool GetListenSocketInfo( SNetListenSocket_t hListenSocket, SteamIPAddress_t *pnIP, uint16 *pnPort ) = 0; // returns true to describe how the socket ended up connecting virtual ESNetSocketConnectionType GetSocketConnectionType( SNetSocket_t hSocket ) = 0; @@ -259,7 +288,15 @@ public: // max packet size, in bytes virtual int GetMaxPacketSize( SNetSocket_t hSocket ) = 0; }; -#define STEAMNETWORKING_INTERFACE_VERSION "SteamNetworking005" +#define STEAMNETWORKING_INTERFACE_VERSION "SteamNetworking006" + +// Global interface accessor +inline ISteamNetworking *SteamNetworking(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworking *, SteamNetworking, STEAMNETWORKING_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamNetworking *SteamGameServerNetworking(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworking *, SteamGameServerNetworking, STEAMNETWORKING_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -267,7 +304,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif // callback notification - a user wants to talk to us over the P2P channel via the SendP2PPacket() API diff --git a/lib/osx/include/steam/isteamnetworkingmessages.h b/lib/osx/include/steam/isteamnetworkingmessages.h new file mode 100644 index 0000000..b7a2cd0 --- /dev/null +++ b/lib/osx/include/steam/isteamnetworkingmessages.h @@ -0,0 +1,198 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== + +#ifndef ISTEAMNETWORKINGMESSAGES +#define ISTEAMNETWORKINGMESSAGES +#pragma once + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +//----------------------------------------------------------------------------- +/// The non-connection-oriented interface to send and receive messages +/// (whether they be "clients" or "servers"). +/// +/// ISteamNetworkingSockets is connection-oriented (like TCP), meaning you +/// need to listen and connect, and then you send messages using a connection +/// handle. ISteamNetworkingMessages is more like UDP, in that you can just send +/// messages to arbitrary peers at any time. The underlying connections are +/// established implicitly. +/// +/// Under the hood ISteamNetworkingMessages works on top of the ISteamNetworkingSockets +/// code, so you get the same routing and messaging efficiency. The difference is +/// mainly in your responsibility to explicitly establish a connection and +/// the type of feedback you get about the state of the connection. Both +/// interfaces can do "P2P" communications, and both support both unreliable +/// and reliable messages, fragmentation and reassembly. +/// +/// The primary purpose of this interface is to be "like UDP", so that UDP-based code +/// can be ported easily to take advantage of relayed connections. If you find +/// yourself needing more low level information or control, or to be able to better +/// handle failure, then you probably need to use ISteamNetworkingSockets directly. +/// Also, note that if your main goal is to obtain a connection between two peers +/// without concerning yourself with assigning roles of "client" and "server", +/// you may find the symmetric connection mode of ISteamNetworkingSockets useful. +/// (See k_ESteamNetworkingConfig_SymmetricConnect.) +/// +class ISteamNetworkingMessages +{ +public: + /// Sends a message to the specified host. If we don't already have a session with that user, + /// a session is implicitly created. There might be some handshaking that needs to happen + /// before we can actually begin sending message data. If this handshaking fails and we can't + /// get through, an error will be posted via the callback SteamNetworkingMessagesSessionFailed_t. + /// There is no notification when the operation succeeds. (You should have the peer send a reply + /// for this purpose.) + /// + /// Sending a message to a host will also implicitly accept any incoming connection from that host. + /// + /// nSendFlags is a bitmask of k_nSteamNetworkingSend_xxx options + /// + /// nRemoteChannel is a routing number you can use to help route message to different systems. + /// You'll have to call ReceiveMessagesOnChannel() with the same channel number in order to retrieve + /// the data on the other end. + /// + /// Using different channels to talk to the same user will still use the same underlying + /// connection, saving on resources. If you don't need this feature, use 0. + /// Otherwise, small integers are the most efficient. + /// + /// It is guaranteed that reliable messages to the same host on the same channel + /// will be be received by the remote host (if they are received at all) exactly once, + /// and in the same order that they were sent. + /// + /// NO other order guarantees exist! In particular, unreliable messages may be dropped, + /// received out of order with respect to each other and with respect to reliable data, + /// or may be received multiple times. Messages on different channels are *not* guaranteed + /// to be received in the order they were sent. + /// + /// A note for those familiar with TCP/IP ports, or converting an existing codebase that + /// opened multiple sockets: You might notice that there is only one channel, and with + /// TCP/IP each endpoint has a port number. You can think of the channel number as the + /// *destination* port. If you need each message to also include a "source port" (so the + /// recipient can route the reply), then just put that in your message. That is essentially + /// how UDP works! + /// + /// Returns: + /// - k_EREsultOK on success. + /// - k_EResultNoConnection, if the session has failed or was closed by the peer and + /// k_nSteamNetworkingSend_AutoRestartBrokenSession was not specified. (You can + /// use GetSessionConnectionInfo to get the details.) In order to acknowledge the + /// broken session and start a new one, you must call CloseSessionWithUser, or you may + /// repeat the call with k_nSteamNetworkingSend_AutoRestartBrokenSession. See + /// k_nSteamNetworkingSend_AutoRestartBrokenSession for more details. + /// - See ISteamNetworkingSockets::SendMessageToConnection for more possible return values + virtual EResult SendMessageToUser( const SteamNetworkingIdentity &identityRemote, const void *pubData, uint32 cubData, int nSendFlags, int nRemoteChannel ) = 0; + + /// Reads the next message that has been sent from another user via SendMessageToUser() on the given channel. + /// Returns number of messages returned into your list. (0 if no message are available on that channel.) + /// + /// When you're done with the message object(s), make sure and call SteamNetworkingMessage_t::Release()! + virtual int ReceiveMessagesOnChannel( int nLocalChannel, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + /// Call this in response to a SteamNetworkingMessagesSessionRequest_t callback. + /// SteamNetworkingMessagesSessionRequest_t are posted when a user tries to send you a message, + /// and you haven't tried to talk to them first. If you don't want to talk to them, just ignore + /// the request. If the user continues to send you messages, SteamNetworkingMessagesSessionRequest_t + /// callbacks will continue to be posted periodically. + /// + /// Returns false if there is no session with the user pending or otherwise. If there is an + /// existing active session, this function will return true, even if it is not pending. + /// + /// Calling SendMessageToUser() will implicitly accepts any pending session request to that user. + virtual bool AcceptSessionWithUser( const SteamNetworkingIdentity &identityRemote ) = 0; + + /// Call this when you're done talking to a user to immediately free up resources under-the-hood. + /// If the remote user tries to send data to you again, another SteamNetworkingMessagesSessionRequest_t + /// callback will be posted. + /// + /// Note that sessions that go unused for a few minutes are automatically timed out. + virtual bool CloseSessionWithUser( const SteamNetworkingIdentity &identityRemote ) = 0; + + /// Call this when you're done talking to a user on a specific channel. Once all + /// open channels to a user have been closed, the open session to the user will be + /// closed, and any new data from this user will trigger a + /// SteamSteamNetworkingMessagesSessionRequest_t callback + virtual bool CloseChannelWithUser( const SteamNetworkingIdentity &identityRemote, int nLocalChannel ) = 0; + + /// Returns information about the latest state of a connection, if any, with the given peer. + /// Primarily intended for debugging purposes, but can also be used to get more detailed + /// failure information. (See SendMessageToUser and k_nSteamNetworkingSend_AutoRestartBrokenSession.) + /// + /// Returns the value of SteamNetConnectionInfo_t::m_eState, or k_ESteamNetworkingConnectionState_None + /// if no connection exists with specified peer. You may pass nullptr for either parameter if + /// you do not need the corresponding details. Note that sessions time out after a while, + /// so if a connection fails, or SendMessageToUser returns k_EResultNoConnection, you cannot wait + /// indefinitely to obtain the reason for failure. + virtual ESteamNetworkingConnectionState GetSessionConnectionInfo( const SteamNetworkingIdentity &identityRemote, SteamNetConnectionInfo_t *pConnectionInfo, SteamNetConnectionRealTimeStatus_t *pQuickStatus ) = 0; +}; +#define STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "SteamNetworkingMessages002" + +// +// Callbacks +// + +#pragma pack( push, 1 ) + +/// Posted when a remote host is sending us a message, and we do not already have a session with them +struct SteamNetworkingMessagesSessionRequest_t +{ + enum { k_iCallback = k_iSteamNetworkingMessagesCallbacks + 1 }; + SteamNetworkingIdentity m_identityRemote; // user who wants to talk to us +}; + +/// Posted when we fail to establish a connection, or we detect that communications +/// have been disrupted it an unusual way. There is no notification when a peer proactively +/// closes the session. ("Closed by peer" is not a concept of UDP-style communications, and +/// SteamNetworkingMessages is primarily intended to make porting UDP code easy.) +/// +/// Remember: callbacks are asynchronous. See notes on SendMessageToUser, +/// and k_nSteamNetworkingSend_AutoRestartBrokenSession in particular. +/// +/// Also, if a session times out due to inactivity, no callbacks will be posted. The only +/// way to detect that this is happening is that querying the session state may return +/// none, connecting, and findingroute again. +struct SteamNetworkingMessagesSessionFailed_t +{ + enum { k_iCallback = k_iSteamNetworkingMessagesCallbacks + 2 }; + + /// Detailed info about the session that failed. + /// SteamNetConnectionInfo_t::m_identityRemote indicates who this session + /// was with. + SteamNetConnectionInfo_t m_info; +}; + +#pragma pack(pop) + +// Global accessors + +// Using standalone lib +#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB + + static_assert( STEAMNETWORKINGMESSAGES_INTERFACE_VERSION[25] == '2', "Version mismatch" ); + + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamNetworkingMessages_LibV2(); + inline ISteamNetworkingMessages *SteamNetworkingMessages_Lib() { return SteamNetworkingMessages_LibV2(); } + + // If running in context of steam, we also define a gameserver instance. + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamGameServerNetworkingMessages_LibV2(); + inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages_Lib() { return SteamGameServerNetworkingMessages_LibV2(); } + + #ifndef STEAMNETWORKINGSOCKETS_STEAMAPI + inline ISteamNetworkingMessages *SteamNetworkingMessages() { return SteamNetworkingMessages_LibV2(); } + inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages() { return SteamGameServerNetworkingMessages_LibV2(); } + #endif +#endif + +// Using Steamworks SDK +#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI + + // Steamworks SDK + STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworkingMessages *, SteamNetworkingMessages_SteamAPI, STEAMNETWORKINGMESSAGES_INTERFACE_VERSION ); + STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingMessages *, SteamGameServerNetworkingMessages_SteamAPI, STEAMNETWORKINGMESSAGES_INTERFACE_VERSION ); + + #ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB + inline ISteamNetworkingMessages *SteamNetworkingMessages() { return SteamNetworkingMessages_SteamAPI(); } + inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages() { return SteamGameServerNetworkingMessages_SteamAPI(); } + #endif +#endif + +#endif // ISTEAMNETWORKINGMESSAGES diff --git a/lib/osx/include/steam/isteamnetworkingsockets.h b/lib/osx/include/steam/isteamnetworkingsockets.h new file mode 100644 index 0000000..427727a --- /dev/null +++ b/lib/osx/include/steam/isteamnetworkingsockets.h @@ -0,0 +1,1030 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== + +#ifndef ISTEAMNETWORKINGSOCKETS +#define ISTEAMNETWORKINGSOCKETS +#pragma once + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +struct SteamNetAuthenticationStatus_t; +struct SteamNetworkingFakeIPResult_t; +class ISteamNetworkingConnectionSignaling; +class ISteamNetworkingSignalingRecvContext; +class ISteamNetworkingFakeUDPPort; + +//----------------------------------------------------------------------------- +/// Lower level networking API. +/// +/// - Connection-oriented API (like TCP, not UDP). When sending and receiving +/// messages, a connection handle is used. (For a UDP-style interface, where +/// the peer is identified by their address with each send/recv call, see +/// ISteamNetworkingMessages.) The typical pattern is for a "server" to "listen" +/// on a "listen socket." A "client" will "connect" to the server, and the +/// server will "accept" the connection. If you have a symmetric situation +/// where either peer may initiate the connection and server/client roles are +/// not clearly defined, check out k_ESteamNetworkingConfig_SymmetricConnect. +/// - But unlike TCP, it's message-oriented, not stream-oriented. +/// - Mix of reliable and unreliable messages +/// - Fragmentation and reassembly +/// - Supports connectivity over plain UDP +/// - Also supports SDR ("Steam Datagram Relay") connections, which are +/// addressed by the identity of the peer. There is a "P2P" use case and +/// a "hosted dedicated server" use case. +/// +/// Note that neither of the terms "connection" nor "socket" necessarily correspond +/// one-to-one with an underlying UDP socket. An attempt has been made to +/// keep the semantics as similar to the standard socket model when appropriate, +/// but some deviations do exist. +/// +/// See also: ISteamNetworkingMessages, the UDP-style interface. This API might be +/// easier to use, especially when porting existing UDP code. +class ISteamNetworkingSockets +{ +public: + + /// Creates a "server" socket that listens for clients to connect to by + /// calling ConnectByIPAddress, over ordinary UDP (IPv4 or IPv6) + /// + /// You must select a specific local port to listen on and set it + /// the port field of the local address. + /// + /// Usually you will set the IP portion of the address to zero (SteamNetworkingIPAddr::Clear()). + /// This means that you will not bind to any particular local interface (i.e. the same + /// as INADDR_ANY in plain socket code). Furthermore, if possible the socket will be bound + /// in "dual stack" mode, which means that it can accept both IPv4 and IPv6 client connections. + /// If you really do wish to bind a particular interface, then set the local address to the + /// appropriate IPv4 or IPv6 IP. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + /// + /// When a client attempts to connect, a SteamNetConnectionStatusChangedCallback_t + /// will be posted. The connection will be in the connecting state. + virtual HSteamListenSocket CreateListenSocketIP( const SteamNetworkingIPAddr &localAddress, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Creates a connection and begins talking to a "server" over UDP at the + /// given IPv4 or IPv6 address. The remote host must be listening with a + /// matching call to CreateListenSocketIP on the specified port. + /// + /// A SteamNetConnectionStatusChangedCallback_t callback will be triggered when we start + /// connecting, and then another one on either timeout or successful connection. + /// + /// If the server does not have any identity configured, then their network address + /// will be the only identity in use. Or, the network host may provide a platform-specific + /// identity with or without a valid certificate to authenticate that identity. (These + /// details will be contained in the SteamNetConnectionStatusChangedCallback_t.) It's + /// up to your application to decide whether to allow the connection. + /// + /// By default, all connections will get basic encryption sufficient to prevent + /// casual eavesdropping. But note that without certificates (or a shared secret + /// distributed through some other out-of-band mechanism), you don't have any + /// way of knowing who is actually on the other end, and thus are vulnerable to + /// man-in-the-middle attacks. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamNetConnection ConnectByIPAddress( const SteamNetworkingIPAddr &address, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Like CreateListenSocketIP, but clients will connect using ConnectP2P. + /// + /// nLocalVirtualPort specifies how clients can connect to this socket using + /// ConnectP2P. It's very common for applications to only have one listening socket; + /// in that case, use zero. If you need to open multiple listen sockets and have clients + /// be able to connect to one or the other, then nLocalVirtualPort should be a small + /// integer (<1000) unique to each listen socket you create. + /// + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() + /// when your app initializes. + /// + /// If you are listening on a dedicated servers in known data center, + /// then you can listen using this function instead of CreateHostedDedicatedServerListenSocket, + /// to allow clients to connect without a ticket. Any user that owns + /// the app and is signed into Steam will be able to attempt to connect to + /// your server. Also, a connection attempt may require the client to + /// be connected to Steam, which is one more moving part that may fail. When + /// tickets are used, then once a ticket is obtained, a client can connect to + /// your server even if they got disconnected from Steam or Steam is offline. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamListenSocket CreateListenSocketP2P( int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Begin connecting to a peer that is identified using a platform-specific identifier. + /// This uses the default rendezvous service, which depends on the platform and library + /// configuration. (E.g. on Steam, it goes through the steam backend.) + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + /// + /// To use your own signaling service, see: + /// - ConnectP2PCustomSignaling + /// - k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling + virtual HSteamNetConnection ConnectP2P( const SteamNetworkingIdentity &identityRemote, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Accept an incoming connection that has been received on a listen socket. + /// + /// When a connection attempt is received (perhaps after a few basic handshake + /// packets have been exchanged to prevent trivial spoofing), a connection interface + /// object is created in the k_ESteamNetworkingConnectionState_Connecting state + /// and a SteamNetConnectionStatusChangedCallback_t is posted. At this point, your + /// application MUST either accept or close the connection. (It may not ignore it.) + /// Accepting the connection will transition it either into the connected state, + /// or the finding route state, depending on the connection type. + /// + /// You should take action within a second or two, because accepting the connection is + /// what actually sends the reply notifying the client that they are connected. If you + /// delay taking action, from the client's perspective it is the same as the network + /// being unresponsive, and the client may timeout the connection attempt. In other + /// words, the client cannot distinguish between a delay caused by network problems + /// and a delay caused by the application. + /// + /// This means that if your application goes for more than a few seconds without + /// processing callbacks (for example, while loading a map), then there is a chance + /// that a client may attempt to connect in that interval and fail due to timeout. + /// + /// If the application does not respond to the connection attempt in a timely manner, + /// and we stop receiving communication from the client, the connection attempt will + /// be timed out locally, transitioning the connection to the + /// k_ESteamNetworkingConnectionState_ProblemDetectedLocally state. The client may also + /// close the connection before it is accepted, and a transition to the + /// k_ESteamNetworkingConnectionState_ClosedByPeer is also possible depending the exact + /// sequence of events. + /// + /// Returns k_EResultInvalidParam if the handle is invalid. + /// Returns k_EResultInvalidState if the connection is not in the appropriate state. + /// (Remember that the connection state could change in between the time that the + /// notification being posted to the queue and when it is received by the application.) + /// + /// A note about connection configuration options. If you need to set any configuration + /// options that are common to all connections accepted through a particular listen + /// socket, consider setting the options on the listen socket, since such options are + /// inherited automatically. If you really do need to set options that are connection + /// specific, it is safe to set them on the connection before accepting the connection. + virtual EResult AcceptConnection( HSteamNetConnection hConn ) = 0; + + /// Disconnects from the remote host and invalidates the connection handle. + /// Any unread data on the connection is discarded. + /// + /// nReason is an application defined code that will be received on the other + /// end and recorded (when possible) in backend analytics. The value should + /// come from a restricted range. (See ESteamNetConnectionEnd.) If you don't need + /// to communicate any information to the remote host, and do not want analytics to + /// be able to distinguish "normal" connection terminations from "exceptional" ones, + /// You may pass zero, in which case the generic value of + /// k_ESteamNetConnectionEnd_App_Generic will be used. + /// + /// pszDebug is an optional human-readable diagnostic string that will be received + /// by the remote host and recorded (when possible) in backend analytics. + /// + /// If you wish to put the socket into a "linger" state, where an attempt is made to + /// flush any remaining sent data, use bEnableLinger=true. Otherwise reliable data + /// is not flushed. + /// + /// If the connection has already ended and you are just freeing up the + /// connection interface, the reason code, debug string, and linger flag are + /// ignored. + virtual bool CloseConnection( HSteamNetConnection hPeer, int nReason, const char *pszDebug, bool bEnableLinger ) = 0; + + /// Destroy a listen socket. All the connections that were accepting on the listen + /// socket are closed ungracefully. + virtual bool CloseListenSocket( HSteamListenSocket hSocket ) = 0; + + /// Set connection user data. the data is returned in the following places + /// - You can query it using GetConnectionUserData. + /// - The SteamNetworkingmessage_t structure. + /// - The SteamNetConnectionInfo_t structure. + /// (Which is a member of SteamNetConnectionStatusChangedCallback_t -- but see WARNINGS below!!!!) + /// + /// Do you need to set this atomically when the connection is created? + /// See k_ESteamNetworkingConfig_ConnectionUserData. + /// + /// WARNING: Be *very careful* when using the value provided in callbacks structs. + /// Callbacks are queued, and the value that you will receive in your + /// callback is the userdata that was effective at the time the callback + /// was queued. There are subtle race conditions that can happen if you + /// don't understand this! + /// + /// If any incoming messages for this connection are queued, the userdata + /// field is updated, so that when when you receive messages (e.g. with + /// ReceiveMessagesOnConnection), they will always have the very latest + /// userdata. So the tricky race conditions that can happen with callbacks + /// do not apply to retrieving messages. + /// + /// Returns false if the handle is invalid. + virtual bool SetConnectionUserData( HSteamNetConnection hPeer, int64 nUserData ) = 0; + + /// Fetch connection user data. Returns -1 if handle is invalid + /// or if you haven't set any userdata on the connection. + virtual int64 GetConnectionUserData( HSteamNetConnection hPeer ) = 0; + + /// Set a name for the connection, used mostly for debugging + virtual void SetConnectionName( HSteamNetConnection hPeer, const char *pszName ) = 0; + + /// Fetch connection name. Returns false if handle is invalid + virtual bool GetConnectionName( HSteamNetConnection hPeer, char *pszName, int nMaxLen ) = 0; + + /// Send a message to the remote host on the specified connection. + /// + /// nSendFlags determines the delivery guarantees that will be provided, + /// when data should be buffered, etc. E.g. k_nSteamNetworkingSend_Unreliable + /// + /// Note that the semantics we use for messages are not precisely + /// the same as the semantics of a standard "stream" socket. + /// (SOCK_STREAM) For an ordinary stream socket, the boundaries + /// between chunks are not considered relevant, and the sizes of + /// the chunks of data written will not necessarily match up to + /// the sizes of the chunks that are returned by the reads on + /// the other end. The remote host might read a partial chunk, + /// or chunks might be coalesced. For the message semantics + /// used here, however, the sizes WILL match. Each send call + /// will match a successful read call on the remote host + /// one-for-one. If you are porting existing stream-oriented + /// code to the semantics of reliable messages, your code should + /// work the same, since reliable message semantics are more + /// strict than stream semantics. The only caveat is related to + /// performance: there is per-message overhead to retain the + /// message sizes, and so if your code sends many small chunks + /// of data, performance will suffer. Any code based on stream + /// sockets that does not write excessively small chunks will + /// work without any changes. + /// + /// The pOutMessageNumber is an optional pointer to receive the + /// message number assigned to the message, if sending was successful. + /// + /// Returns: + /// - k_EResultInvalidParam: invalid connection handle, or the individual message is too big. + /// (See k_cbMaxSteamNetworkingSocketsMessageSizeSend) + /// - k_EResultInvalidState: connection is in an invalid state + /// - k_EResultNoConnection: connection has ended + /// - k_EResultIgnored: You used k_nSteamNetworkingSend_NoDelay, and the message was dropped because + /// we were not ready to send it. + /// - k_EResultLimitExceeded: there was already too much data queued to be sent. + /// (See k_ESteamNetworkingConfig_SendBufferSize) + virtual EResult SendMessageToConnection( HSteamNetConnection hConn, const void *pData, uint32 cbData, int nSendFlags, int64 *pOutMessageNumber ) = 0; + + /// Send one or more messages without copying the message payload. + /// This is the most efficient way to send messages. To use this + /// function, you must first allocate a message object using + /// ISteamNetworkingUtils::AllocateMessage. (Do not declare one + /// on the stack or allocate your own.) + /// + /// You should fill in the message payload. You can either let + /// it allocate the buffer for you and then fill in the payload, + /// or if you already have a buffer allocated, you can just point + /// m_pData at your buffer and set the callback to the appropriate function + /// to free it. Note that if you use your own buffer, it MUST remain valid + /// until the callback is executed. And also note that your callback can be + /// invoked at any time from any thread (perhaps even before SendMessages + /// returns!), so it MUST be fast and threadsafe. + /// + /// You MUST also fill in: + /// - m_conn - the handle of the connection to send the message to + /// - m_nFlags - bitmask of k_nSteamNetworkingSend_xxx flags. + /// + /// All other fields are currently reserved and should not be modified. + /// + /// The library will take ownership of the message structures. They may + /// be modified or become invalid at any time, so you must not read them + /// after passing them to this function. + /// + /// pOutMessageNumberOrResult is an optional array that will receive, + /// for each message, the message number that was assigned to the message + /// if sending was successful. If sending failed, then a negative EResult + /// value is placed into the array. For example, the array will hold + /// -k_EResultInvalidState if the connection was in an invalid state. + /// See ISteamNetworkingSockets::SendMessageToConnection for possible + /// failure codes. + virtual void SendMessages( int nMessages, SteamNetworkingMessage_t *const *pMessages, int64 *pOutMessageNumberOrResult ) = 0; + + /// Flush any messages waiting on the Nagle timer and send them + /// at the next transmission opportunity (often that means right now). + /// + /// If Nagle is enabled (it's on by default) then when calling + /// SendMessageToConnection the message will be buffered, up to the Nagle time + /// before being sent, to merge small messages into the same packet. + /// (See k_ESteamNetworkingConfig_NagleTime) + /// + /// Returns: + /// k_EResultInvalidParam: invalid connection handle + /// k_EResultInvalidState: connection is in an invalid state + /// k_EResultNoConnection: connection has ended + /// k_EResultIgnored: We weren't (yet) connected, so this operation has no effect. + virtual EResult FlushMessagesOnConnection( HSteamNetConnection hConn ) = 0; + + /// Fetch the next available message(s) from the connection, if any. + /// Returns the number of messages returned into your array, up to nMaxMessages. + /// If the connection handle is invalid, -1 is returned. + /// + /// The order of the messages returned in the array is relevant. + /// Reliable messages will be received in the order they were sent (and with the + /// same sizes --- see SendMessageToConnection for on this subtle difference from a stream socket). + /// + /// Unreliable messages may be dropped, or delivered out of order with respect to + /// each other or with respect to reliable messages. The same unreliable message + /// may be received multiple times. + /// + /// If any messages are returned, you MUST call SteamNetworkingMessage_t::Release() on each + /// of them free up resources after you are done. It is safe to keep the object alive for + /// a little while (put it into some queue, etc), and you may call Release() from any thread. + virtual int ReceiveMessagesOnConnection( HSteamNetConnection hConn, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + /// Returns basic information about the high-level state of the connection. + virtual bool GetConnectionInfo( HSteamNetConnection hConn, SteamNetConnectionInfo_t *pInfo ) = 0; + + /// Returns a small set of information about the real-time state of the connection + /// and the queue status of each lane. + /// + /// - pStatus may be NULL if the information is not desired. (E.g. you are only interested + /// in the lane information.) + /// - On entry, nLanes specifies the length of the pLanes array. This may be 0 + /// if you do not wish to receive any lane data. It's OK for this to be smaller than + /// the total number of configured lanes. + /// - pLanes points to an array that will receive lane-specific info. It can be NULL + /// if this is not needed. + /// + /// Return value: + /// - k_EResultNoConnection - connection handle is invalid or connection has been closed. + /// - k_EResultInvalidParam - nLanes is bad + virtual EResult GetConnectionRealTimeStatus( HSteamNetConnection hConn, SteamNetConnectionRealTimeStatus_t *pStatus, + int nLanes, SteamNetConnectionRealTimeLaneStatus_t *pLanes ) = 0; + + /// Returns detailed connection stats in text format. Useful + /// for dumping to a log, etc. + /// + /// Returns: + /// -1 failure (bad connection handle) + /// 0 OK, your buffer was filled in and '\0'-terminated + /// >0 Your buffer was either nullptr, or it was too small and the text got truncated. + /// Try again with a buffer of at least N bytes. + virtual int GetDetailedConnectionStatus( HSteamNetConnection hConn, char *pszBuf, int cbBuf ) = 0; + + /// Returns local IP and port that a listen socket created using CreateListenSocketIP is bound to. + /// + /// An IPv6 address of ::0 means "any IPv4 or IPv6" + /// An IPv6 address of ::ffff:0000:0000 means "any IPv4" + virtual bool GetListenSocketAddress( HSteamListenSocket hSocket, SteamNetworkingIPAddr *address ) = 0; + + /// Create a pair of connections that are talking to each other, e.g. a loopback connection. + /// This is very useful for testing, or so that your client/server code can work the same + /// even when you are running a local "server". + /// + /// The two connections will immediately be placed into the connected state, and no callbacks + /// will be posted immediately. After this, if you close either connection, the other connection + /// will receive a callback, exactly as if they were communicating over the network. You must + /// close *both* sides in order to fully clean up the resources! + /// + /// By default, internal buffers are used, completely bypassing the network, the chopping up of + /// messages into packets, encryption, copying the payload, etc. This means that loopback + /// packets, by default, will not simulate lag or loss. Passing true for bUseNetworkLoopback will + /// cause the socket pair to send packets through the local network loopback device (127.0.0.1) + /// on ephemeral ports. Fake lag and loss are supported in this case, and CPU time is expended + /// to encrypt and decrypt. + /// + /// If you wish to assign a specific identity to either connection, you may pass a particular + /// identity. Otherwise, if you pass nullptr, the respective connection will assume a generic + /// "localhost" identity. If you use real network loopback, this might be translated to the + /// actual bound loopback port. Otherwise, the port will be zero. + virtual bool CreateSocketPair( HSteamNetConnection *pOutConnection1, HSteamNetConnection *pOutConnection2, bool bUseNetworkLoopback, const SteamNetworkingIdentity *pIdentity1, const SteamNetworkingIdentity *pIdentity2 ) = 0; + + /// Configure multiple outbound messages streams ("lanes") on a connection, and + /// control head-of-line blocking between them. Messages within a given lane + /// are always sent in the order they are queued, but messages from different + /// lanes may be sent out of order. Each lane has its own message number + /// sequence. The first message sent on each lane will be assigned the number 1. + /// + /// Each lane has a "priority". Lanes with higher numeric values will only be processed + /// when all lanes with lower number values are empty. The magnitudes of the priority + /// values are not relevant, only their sort order. + /// + /// Each lane also is assigned a weight, which controls the approximate proportion + /// of the bandwidth that will be consumed by the lane, relative to other lanes + /// of the same priority. (This is assuming the lane stays busy. An idle lane + /// does not build up "credits" to be be spent once a message is queued.) + /// This value is only meaningful as a proportion, relative to other lanes with + /// the same priority. For lanes with different priorities, the strict priority + /// order will prevail, and their weights relative to each other are not relevant. + /// Thus, if a lane has a unique priority value, the weight value for that lane is + /// not relevant. + /// + /// Example: 3 lanes, with priorities [ 0, 10, 10 ] and weights [ (NA), 20, 5 ]. + /// Messages sent on the first will always be sent first, before messages in the + /// other two lanes. Its weight value is irrelevant, since there are no other + /// lanes with priority=0. The other two lanes will share bandwidth, with the second + /// and third lanes sharing bandwidth using a ratio of approximately 4:1. + /// (The weights [ NA, 4, 1 ] would be equivalent.) + /// + /// Notes: + /// - At the time of this writing, some code has performance cost that is linear + /// in the number of lanes, so keep the number of lanes to an absolute minimum. + /// 3 or so is fine; >8 is a lot. The max number of lanes on Steam is 255, + /// which is a very large number and not recommended! If you are compiling this + /// library from source, see STEAMNETWORKINGSOCKETS_MAX_LANES.) + /// - Lane priority values may be any int. Their absolute value is not relevant, + /// only the order matters. + /// - Weights must be positive, and due to implementation details, they are restricted + /// to 16-bit values. The absolute magnitudes don't matter, just the proportions. + /// - Messages sent on a lane index other than 0 have a small overhead on the wire, + /// so for maximum wire efficiency, lane 0 should be the "most common" lane, regardless + /// of priorities or weights. + /// - A connection has a single lane by default. Calling this function with + /// nNumLanes=1 is legal, but pointless, since the priority and weight values are + /// irrelevant in that case. + /// - You may reconfigure connection lanes at any time, however reducing the number of + /// lanes is not allowed. + /// - Reconfiguring lanes might restart any bandwidth sharing balancing. Usually you + /// will call this function once, near the start of the connection, perhaps after + /// exchanging a few messages. + /// - To assign all lanes the same priority, you may use pLanePriorities=NULL. + /// - If you wish all lanes with the same priority to share bandwidth equally (or + /// if no two lanes have the same priority value, and thus priority values are + /// irrelevant), you may use pLaneWeights=NULL + /// - Priorities and weights determine the order that messages are SENT on the wire. + /// There are NO GUARANTEES on the order that messages are RECEIVED! Due to packet + /// loss, out-of-order delivery, and subtle details of packet serialization, messages + /// might still be received slightly out-of-order! The *only* strong guarantee is that + /// *reliable* messages on the *same lane* will be delivered in the order they are sent. + /// - Each host configures the lanes for the packets they send; the lanes for the flow + /// in one direction are completely unrelated to the lanes in the opposite direction. + /// + /// Return value: + /// - k_EResultNoConnection - bad hConn + /// - k_EResultInvalidParam - Invalid number of lanes, bad weights, or you tried to reduce the number of lanes + /// - k_EResultInvalidState - Connection is already dead, etc + /// + /// See also: + /// SteamNetworkingMessage_t::m_idxLane + virtual EResult ConfigureConnectionLanes( HSteamNetConnection hConn, int nNumLanes, const int *pLanePriorities, const uint16 *pLaneWeights ) = 0; + + // + // Identity and authentication + // + + /// Get the identity assigned to this interface. + /// E.g. on Steam, this is the user's SteamID, or for the gameserver interface, the SteamID assigned + /// to the gameserver. Returns false and sets the result to an invalid identity if we don't know + /// our identity yet. (E.g. GameServer has not logged in. On Steam, the user will know their SteamID + /// even if they are not signed into Steam.) + virtual bool GetIdentity( SteamNetworkingIdentity *pIdentity ) = 0; + + /// Indicate our desire to be ready participate in authenticated communications. + /// If we are currently not ready, then steps will be taken to obtain the necessary + /// certificates. (This includes a certificate for us, as well as any CA certificates + /// needed to authenticate peers.) + /// + /// You can call this at program init time if you know that you are going to + /// be making authenticated connections, so that we will be ready immediately when + /// those connections are attempted. (Note that essentially all connections require + /// authentication, with the exception of ordinary UDP connections with authentication + /// disabled using k_ESteamNetworkingConfig_IP_AllowWithoutAuth.) If you don't call + /// this function, we will wait until a feature is utilized that that necessitates + /// these resources. + /// + /// You can also call this function to force a retry, if failure has occurred. + /// Once we make an attempt and fail, we will not automatically retry. + /// In this respect, the behavior of the system after trying and failing is the same + /// as before the first attempt: attempting authenticated communication or calling + /// this function will call the system to attempt to acquire the necessary resources. + /// + /// You can use GetAuthenticationStatus or listen for SteamNetAuthenticationStatus_t + /// to monitor the status. + /// + /// Returns the current value that would be returned from GetAuthenticationStatus. + virtual ESteamNetworkingAvailability InitAuthentication() = 0; + + /// Query our readiness to participate in authenticated communications. A + /// SteamNetAuthenticationStatus_t callback is posted any time this status changes, + /// but you can use this function to query it at any time. + /// + /// The value of SteamNetAuthenticationStatus_t::m_eAvail is returned. If you only + /// want this high level status, you can pass NULL for pDetails. If you want further + /// details, pass non-NULL to receive them. + virtual ESteamNetworkingAvailability GetAuthenticationStatus( SteamNetAuthenticationStatus_t *pDetails ) = 0; + + // + // Poll groups. A poll group is a set of connections that can be polled efficiently. + // (In our API, to "poll" a connection means to retrieve all pending messages. We + // actually don't have an API to "poll" the connection *state*, like BSD sockets.) + // + + /// Create a new poll group. + /// + /// You should destroy the poll group when you are done using DestroyPollGroup + virtual HSteamNetPollGroup CreatePollGroup() = 0; + + /// Destroy a poll group created with CreatePollGroup(). + /// + /// If there are any connections in the poll group, they are removed from the group, + /// and left in a state where they are not part of any poll group. + /// Returns false if passed an invalid poll group handle. + virtual bool DestroyPollGroup( HSteamNetPollGroup hPollGroup ) = 0; + + /// Assign a connection to a poll group. Note that a connection may only belong to a + /// single poll group. Adding a connection to a poll group implicitly removes it from + /// any other poll group it is in. + /// + /// You can pass k_HSteamNetPollGroup_Invalid to remove a connection from its current + /// poll group without adding it to a new poll group. + /// + /// If there are received messages currently pending on the connection, an attempt + /// is made to add them to the queue of messages for the poll group in approximately + /// the order that would have applied if the connection was already part of the poll + /// group at the time that the messages were received. + /// + /// Returns false if the connection handle is invalid, or if the poll group handle + /// is invalid (and not k_HSteamNetPollGroup_Invalid). + virtual bool SetConnectionPollGroup( HSteamNetConnection hConn, HSteamNetPollGroup hPollGroup ) = 0; + + /// Same as ReceiveMessagesOnConnection, but will return the next messages available + /// on any connection in the poll group. Examine SteamNetworkingMessage_t::m_conn + /// to know which connection. (SteamNetworkingMessage_t::m_nConnUserData might also + /// be useful.) + /// + /// Delivery order of messages among different connections will usually match the + /// order that the last packet was received which completed the message. But this + /// is not a strong guarantee, especially for packets received right as a connection + /// is being assigned to poll group. + /// + /// Delivery order of messages on the same connection is well defined and the + /// same guarantees are present as mentioned in ReceiveMessagesOnConnection. + /// (But the messages are not grouped by connection, so they will not necessarily + /// appear consecutively in the list; they may be interleaved with messages for + /// other connections.) + virtual int ReceiveMessagesOnPollGroup( HSteamNetPollGroup hPollGroup, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + // + // Clients connecting to dedicated servers hosted in a data center, + // using tickets issued by your game coordinator. If you are not + // issuing your own tickets to restrict who can attempt to connect + // to your server, then you won't use these functions. + // + + /// Call this when you receive a ticket from your backend / matchmaking system. Puts the + /// ticket into a persistent cache, and optionally returns the parsed ticket. + /// + /// See stamdatagram_ticketgen.h for more details. + virtual bool ReceivedRelayAuthTicket( const void *pvTicket, int cbTicket, SteamDatagramRelayAuthTicket *pOutParsedTicket ) = 0; + + /// Search cache for a ticket to talk to the server on the specified virtual port. + /// If found, returns the number of seconds until the ticket expires, and optionally + /// the complete cracked ticket. Returns 0 if we don't have a ticket. + /// + /// Typically this is useful just to confirm that you have a ticket, before you + /// call ConnectToHostedDedicatedServer to connect to the server. + virtual int FindRelayAuthTicketForServer( const SteamNetworkingIdentity &identityGameServer, int nRemoteVirtualPort, SteamDatagramRelayAuthTicket *pOutParsedTicket ) = 0; + + /// Client call to connect to a server hosted in a Valve data center, on the specified virtual + /// port. You must have placed a ticket for this server into the cache, or else this connect + /// attempt will fail! If you are not issuing your own tickets, then to connect to a dedicated + /// server via SDR in auto-ticket mode, use ConnectP2P. (The server must be configured to allow + /// this type of connection by listening using CreateListenSocketP2P.) + /// + /// You may wonder why tickets are stored in a cache, instead of simply being passed as an argument + /// here. The reason is to make reconnection to a gameserver robust, even if the client computer loses + /// connection to Steam or the central backend, or the app is restarted or crashes, etc. + /// + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() + /// when your app initializes + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamNetConnection ConnectToHostedDedicatedServer( const SteamNetworkingIdentity &identityTarget, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + // + // Servers hosted in data centers known to the Valve relay network + // + + /// Returns the value of the SDR_LISTEN_PORT environment variable. This + /// is the UDP server your server will be listening on. This will + /// configured automatically for you in production environments. + /// + /// In development, you'll need to set it yourself. See + /// https://partner.steamgames.com/doc/api/ISteamNetworkingSockets + /// for more information on how to configure dev environments. + virtual uint16 GetHostedDedicatedServerPort() = 0; + + /// Returns 0 if SDR_LISTEN_PORT is not set. Otherwise, returns the data center the server + /// is running in. This will be k_SteamDatagramPOPID_dev in non-production environment. + virtual SteamNetworkingPOPID GetHostedDedicatedServerPOPID() = 0; + + /// Return info about the hosted server. This contains the PoPID of the server, + /// and opaque routing information that can be used by the relays to send traffic + /// to your server. + /// + /// You will need to send this information to your backend, and put it in tickets, + /// so that the relays will know how to forward traffic from + /// clients to your server. See SteamDatagramRelayAuthTicket for more info. + /// + /// Also, note that the routing information is contained in SteamDatagramGameCoordinatorServerLogin, + /// so if possible, it's preferred to use GetGameCoordinatorServerLogin to send this info + /// to your game coordinator service, and also login securely at the same time. + /// + /// On a successful exit, k_EResultOK is returned + /// + /// Unsuccessful exit: + /// - Something other than k_EResultOK is returned. + /// - k_EResultInvalidState: We are not configured to listen for SDR (SDR_LISTEN_SOCKET + /// is not set.) + /// - k_EResultPending: we do not (yet) have the authentication information needed. + /// (See GetAuthenticationStatus.) If you use environment variables to pre-fetch + /// the network config, this data should always be available immediately. + /// - A non-localized diagnostic debug message will be placed in m_data that describes + /// the cause of the failure. + /// + /// NOTE: The returned blob is not encrypted. Send it to your backend, but don't + /// directly share it with clients. + virtual EResult GetHostedDedicatedServerAddress( SteamDatagramHostedAddress *pRouting ) = 0; + + /// Create a listen socket on the specified virtual port. The physical UDP port to use + /// will be determined by the SDR_LISTEN_PORT environment variable. If a UDP port is not + /// configured, this call will fail. + /// + /// This call MUST be made through the SteamGameServerNetworkingSockets() interface. + /// + /// This function should be used when you are using the ticket generator library + /// to issue your own tickets. Clients connecting to the server on this virtual + /// port will need a ticket, and they must connect using ConnectToHostedDedicatedServer. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamListenSocket CreateHostedDedicatedServerListenSocket( int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Generate an authentication blob that can be used to securely login with + /// your backend, using SteamDatagram_ParseHostedServerLogin. (See + /// steamdatagram_gamecoordinator.h) + /// + /// Before calling the function: + /// - Populate the app data in pLoginInfo (m_cbAppData and m_appData). You can leave + /// all other fields uninitialized. + /// - *pcbSignedBlob contains the size of the buffer at pBlob. (It should be + /// at least k_cbMaxSteamDatagramGameCoordinatorServerLoginSerialized.) + /// + /// On a successful exit: + /// - k_EResultOK is returned + /// - All of the remaining fields of pLoginInfo will be filled out. + /// - *pcbSignedBlob contains the size of the serialized blob that has been + /// placed into pBlob. + /// + /// Unsuccessful exit: + /// - Something other than k_EResultOK is returned. + /// - k_EResultNotLoggedOn: you are not logged in (yet) + /// - See GetHostedDedicatedServerAddress for more potential failure return values. + /// - A non-localized diagnostic debug message will be placed in pBlob that describes + /// the cause of the failure. + /// + /// This works by signing the contents of the SteamDatagramGameCoordinatorServerLogin + /// with the cert that is issued to this server. In dev environments, it's OK if you do + /// not have a cert. (You will need to enable insecure dev login in SteamDatagram_ParseHostedServerLogin.) + /// Otherwise, you will need a signed cert. + /// + /// NOTE: The routing blob returned here is not encrypted. Send it to your backend + /// and don't share it directly with clients. + virtual EResult GetGameCoordinatorServerLogin( SteamDatagramGameCoordinatorServerLogin *pLoginInfo, int *pcbSignedBlob, void *pBlob ) = 0; + + + // + // Relayed connections using custom signaling protocol + // + // This is used if you have your own method of sending out-of-band + // signaling / rendezvous messages through a mutually trusted channel. + // + + /// Create a P2P "client" connection that does signaling over a custom + /// rendezvous/signaling channel. + /// + /// pSignaling points to a new object that you create just for this connection. + /// It must stay valid until Release() is called. Once you pass the + /// object to this function, it assumes ownership. Release() will be called + /// from within the function call if the call fails. Furthermore, until Release() + /// is called, you should be prepared for methods to be invoked on your + /// object from any thread! You need to make sure your object is threadsafe! + /// Furthermore, you should make sure that dispatching the methods is done + /// as quickly as possible. + /// + /// This function will immediately construct a connection in the "connecting" + /// state. Soon after (perhaps before this function returns, perhaps in another thread), + /// the connection will begin sending signaling messages by calling + /// ISteamNetworkingConnectionSignaling::SendSignal. + /// + /// When the remote peer accepts the connection (See + /// ISteamNetworkingSignalingRecvContext::OnConnectRequest), + /// it will begin sending signaling messages. When these messages are received, + /// you can pass them to the connection using ReceivedP2PCustomSignal. + /// + /// If you know the identity of the peer that you expect to be on the other end, + /// you can pass their identity to improve debug output or just detect bugs. + /// If you don't know their identity yet, you can pass NULL, and their + /// identity will be established in the connection handshake. + /// + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() + /// when your app initializes + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamNetConnection ConnectP2PCustomSignaling( ISteamNetworkingConnectionSignaling *pSignaling, const SteamNetworkingIdentity *pPeerIdentity, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Called when custom signaling has received a message. When your + /// signaling channel receives a message, it should save off whatever + /// routing information was in the envelope into the context object, + /// and then pass the payload to this function. + /// + /// A few different things can happen next, depending on the message: + /// + /// - If the signal is associated with existing connection, it is dealt + /// with immediately. If any replies need to be sent, they will be + /// dispatched using the ISteamNetworkingConnectionSignaling + /// associated with the connection. + /// - If the message represents a connection request (and the request + /// is not redundant for an existing connection), a new connection + /// will be created, and ReceivedConnectRequest will be called on your + /// context object to determine how to proceed. + /// - Otherwise, the message is for a connection that does not + /// exist (anymore). In this case, we *may* call SendRejectionReply + /// on your context object. + /// + /// In any case, we will not save off pContext or access it after this + /// function returns. + /// + /// Returns true if the message was parsed and dispatched without anything + /// unusual or suspicious happening. Returns false if there was some problem + /// with the message that prevented ordinary handling. (Debug output will + /// usually have more information.) + /// + /// If you expect to be using relayed connections, then you probably want + /// to call ISteamNetworkingUtils::InitRelayNetworkAccess() when your app initializes + virtual bool ReceivedP2PCustomSignal( const void *pMsg, int cbMsg, ISteamNetworkingSignalingRecvContext *pContext ) = 0; + + // + // Certificate provision by the application. On Steam, we normally handle all this automatically + // and you will not need to use these advanced functions. + // + + /// Get blob that describes a certificate request. You can send this to your game coordinator. + /// Upon entry, *pcbBlob should contain the size of the buffer. On successful exit, it will + /// return the number of bytes that were populated. You can pass pBlob=NULL to query for the required + /// size. (512 bytes is a conservative estimate.) + /// + /// Pass this blob to your game coordinator and call SteamDatagram_CreateCert. + virtual bool GetCertificateRequest( int *pcbBlob, void *pBlob, SteamNetworkingErrMsg &errMsg ) = 0; + + /// Set the certificate. The certificate blob should be the output of + /// SteamDatagram_CreateCert. + virtual bool SetCertificate( const void *pCertificate, int cbCertificate, SteamNetworkingErrMsg &errMsg ) = 0; + + /// Reset the identity associated with this instance. + /// Any open connections are closed. Any previous certificates, etc are discarded. + /// You can pass a specific identity that you want to use, or you can pass NULL, + /// in which case the identity will be invalid until you set it using SetCertificate + /// + /// NOTE: This function is not actually supported on Steam! It is included + /// for use on other platforms where the active user can sign out and + /// a new user can sign in. + virtual void ResetIdentity( const SteamNetworkingIdentity *pIdentity ) = 0; + + // + // Misc + // + + /// Invoke all callback functions queued for this interface. + /// See k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, etc + /// + /// You don't need to call this if you are using Steam's callback dispatch + /// mechanism (SteamAPI_RunCallbacks and SteamGameserver_RunCallbacks). + virtual void RunCallbacks() = 0; + + // + // "FakeIP" system. + // + // A FakeIP is essentially a temporary, arbitrary identifier that + // happens to be a valid IPv4 address. The purpose of this system is to make it + // easy to integrate with existing code that identifies hosts using IPv4 addresses. + // The FakeIP address will never actually be used to send or receive any packets + // on the Internet, it is strictly an identifier. + // + // FakeIP addresses are designed to (hopefully) pass through existing code as + // transparently as possible, while conflicting with "real" addresses that might + // be in use on networks (both the Internet and LANs) in the same code as little + // as possible. At the time this comment is being written, they come from the + // 169.254.0.0/16 range, and the port number will always be >1024. HOWEVER, + // this is subject to change! Do not make assumptions about these addresses, + // or your code might break in the future. In particular, you should use + // functions such as ISteamNetworkingUtils::IsFakeIP to determine if an IP + // address is a "fake" one used by this system. + // + + /// Begin asynchronous process of allocating a fake IPv4 address that other + /// peers can use to contact us via P2P. IP addresses returned by this + /// function are globally unique for a given appid. + /// + /// nNumPorts is the numbers of ports you wish to reserve. This is useful + /// for the same reason that listening on multiple UDP ports is useful for + /// different types of traffic. Because these allocations come from a global + /// namespace, there is a relatively strict limit on the maximum number of + /// ports you may request. (At the time of this writing, the limit is 4.) + /// The port assignments are *not* guaranteed to have any particular order + /// or relationship! Do *not* assume they are contiguous, even though that + /// may often occur in practice. + /// + /// Returns false if a request was already in progress, true if a new request + /// was started. A SteamNetworkingFakeIPResult_t will be posted when the request + /// completes. + /// + /// For gameservers, you *must* call this after initializing the SDK but before + /// beginning login. Steam needs to know in advance that FakeIP will be used. + /// Everywhere your public IP would normally appear (such as the server browser) will be + /// replaced by the FakeIP, and the fake port at index 0. The request is actually queued + /// until the logon completes, so you must not wait until the allocation completes + /// before logging in. Except for trivial failures that can be detected locally + /// (e.g. invalid parameter), a SteamNetworkingFakeIPResult_t callback (whether success or + /// failure) will not be posted until after we have logged in. Furthermore, it is assumed + /// that FakeIP allocation is essential for your application to function, and so failure + /// will not be reported until *several* retries have been attempted. This process may + /// last several minutes. It is *highly* recommended to treat failure as fatal. + /// + /// To communicate using a connection-oriented (TCP-style) API: + /// - Server creates a listen socket using CreateListenSocketP2PFakeIP + /// - Client connects using ConnectByIPAddress, passing in the FakeIP address. + /// - The connection will behave mostly like a P2P connection. The identities + /// that appear in SteamNetConnectionInfo_t will be the FakeIP identity until + /// we know the real identity. Then it will be the real identity. If the + /// SteamNetConnectionInfo_t::m_addrRemote is valid, it will be a real IPv4 + /// address of a NAT-punched connection. Otherwise, it will not be valid. + /// + /// To communicate using an ad-hoc sendto/recv from (UDP-style) API, + /// use CreateFakeUDPPort. + virtual bool BeginAsyncRequestFakeIP( int nNumPorts ) = 0; + + /// Return info about the FakeIP and port(s) that we have been assigned, + /// if any. idxFirstPort is currently reserved and must be zero. + /// Make sure and check SteamNetworkingFakeIPResult_t::m_eResult + virtual void GetFakeIP( int idxFirstPort, SteamNetworkingFakeIPResult_t *pInfo ) = 0; + + /// Create a listen socket that will listen for P2P connections sent + /// to our FakeIP. A peer can initiate connections to this listen + /// socket by calling ConnectByIPAddress. + /// + /// idxFakePort refers to the *index* of the fake port requested, + /// not the actual port number. For example, pass 0 to refer to the + /// first port in the reservation. You must call this only after calling + /// BeginAsyncRequestFakeIP. However, you do not need to wait for the + /// request to complete before creating the listen socket. + virtual HSteamListenSocket CreateListenSocketP2PFakeIP( int idxFakePort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// If the connection was initiated using the "FakeIP" system, then we + /// we can get an IP address for the remote host. If the remote host had + /// a global FakeIP at the time the connection was established, this + /// function will return that global IP. Otherwise, a FakeIP that is + /// unique locally will be allocated from the local FakeIP address space, + /// and that will be returned. + /// + /// The allocation of local FakeIPs attempts to assign addresses in + /// a consistent manner. If multiple connections are made to the + /// same remote host, they *probably* will return the same FakeIP. + /// However, since the namespace is limited, this cannot be guaranteed. + /// + /// On failure, returns: + /// - k_EResultInvalidParam: invalid connection handle + /// - k_EResultIPNotFound: This connection wasn't made using FakeIP system + virtual EResult GetRemoteFakeIPForConnection( HSteamNetConnection hConn, SteamNetworkingIPAddr *pOutAddr ) = 0; + + /// Get an interface that can be used like a UDP port to send/receive + /// datagrams to a FakeIP address. This is intended to make it easy + /// to port existing UDP-based code to take advantage of SDR. + /// + /// idxFakeServerPort refers to the *index* of the port allocated using + /// BeginAsyncRequestFakeIP and is used to create "server" ports. You may + /// call this before the allocation has completed. However, any attempts + /// to send packets will fail until the allocation has succeeded. When + /// the peer receives packets sent from this interface, the from address + /// of the packet will be the globally-unique FakeIP. If you call this + /// function multiple times and pass the same (nonnegative) fake port index, + /// the same object will be returned, and this object is not reference counted. + /// + /// To create a "client" port (e.g. the equivalent of an ephemeral UDP port) + /// pass -1. In this case, a distinct object will be returned for each call. + /// When the peer receives packets sent from this interface, the peer will + /// assign a FakeIP from its own locally-controlled namespace. + virtual ISteamNetworkingFakeUDPPort *CreateFakeUDPPort( int idxFakeServerPort ) = 0; + +protected: + ~ISteamNetworkingSockets(); // Silence some warnings +}; +#define STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "SteamNetworkingSockets012" + +// Global accessors + +// Using standalone lib +#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB + + static_assert( STEAMNETWORKINGSOCKETS_INTERFACE_VERSION[24] == '2', "Version mismatch" ); + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamNetworkingSockets_LibV12(); + inline ISteamNetworkingSockets *SteamNetworkingSockets_Lib() { return SteamNetworkingSockets_LibV12(); } + + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamGameServerNetworkingSockets_LibV12(); + inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets_Lib() { return SteamGameServerNetworkingSockets_LibV12(); } + + #ifndef STEAMNETWORKINGSOCKETS_STEAMAPI + inline ISteamNetworkingSockets *SteamNetworkingSockets() { return SteamNetworkingSockets_LibV12(); } + inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets() { return SteamGameServerNetworkingSockets_LibV12(); } + #endif +#endif + +// Using Steamworks SDK +#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI + STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamNetworkingSockets_SteamAPI, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION ); + STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamGameServerNetworkingSockets_SteamAPI, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION ); + + #ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB + inline ISteamNetworkingSockets *SteamNetworkingSockets() { return SteamNetworkingSockets_SteamAPI(); } + inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets() { return SteamGameServerNetworkingSockets_SteamAPI(); } + #endif +#endif + +/// Callback struct used to notify when a connection has changed state +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error "Must define VALVE_CALLBACK_PACK_SMALL or VALVE_CALLBACK_PACK_LARGE" +#endif + +/// This callback is posted whenever a connection is created, destroyed, or changes state. +/// The m_info field will contain a complete description of the connection at the time the +/// change occurred and the callback was posted. In particular, m_eState will have the +/// new connection state. +/// +/// You will usually need to listen for this callback to know when: +/// - A new connection arrives on a listen socket. +/// m_info.m_hListenSocket will be set, m_eOldState = k_ESteamNetworkingConnectionState_None, +/// and m_info.m_eState = k_ESteamNetworkingConnectionState_Connecting. +/// See ISteamNetworkigSockets::AcceptConnection. +/// - A connection you initiated has been accepted by the remote host. +/// m_eOldState = k_ESteamNetworkingConnectionState_Connecting, and +/// m_info.m_eState = k_ESteamNetworkingConnectionState_Connected. +/// Some connections might transition to k_ESteamNetworkingConnectionState_FindingRoute first. +/// - A connection has been actively rejected or closed by the remote host. +/// m_eOldState = k_ESteamNetworkingConnectionState_Connecting or k_ESteamNetworkingConnectionState_Connected, +/// and m_info.m_eState = k_ESteamNetworkingConnectionState_ClosedByPeer. m_info.m_eEndReason +/// and m_info.m_szEndDebug will have for more details. +/// NOTE: upon receiving this callback, you must still destroy the connection using +/// ISteamNetworkingSockets::CloseConnection to free up local resources. (The details +/// passed to the function are not used in this case, since the connection is already closed.) +/// - A problem was detected with the connection, and it has been closed by the local host. +/// The most common failure is timeout, but other configuration or authentication failures +/// can cause this. m_eOldState = k_ESteamNetworkingConnectionState_Connecting or +/// k_ESteamNetworkingConnectionState_Connected, and m_info.m_eState = k_ESteamNetworkingConnectionState_ProblemDetectedLocally. +/// m_info.m_eEndReason and m_info.m_szEndDebug will have for more details. +/// NOTE: upon receiving this callback, you must still destroy the connection using +/// ISteamNetworkingSockets::CloseConnection to free up local resources. (The details +/// passed to the function are not used in this case, since the connection is already closed.) +/// +/// Remember that callbacks are posted to a queue, and networking connections can +/// change at any time. It is possible that the connection has already changed +/// state by the time you process this callback. +/// +/// Also note that callbacks will be posted when connections are created and destroyed by your own API calls. +struct SteamNetConnectionStatusChangedCallback_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 1 }; + + /// Connection handle + HSteamNetConnection m_hConn; + + /// Full connection info + SteamNetConnectionInfo_t m_info; + + /// Previous state. (Current state is in m_info.m_eState) + ESteamNetworkingConnectionState m_eOldState; +}; + +/// A struct used to describe our readiness to participate in authenticated, +/// encrypted communication. In order to do this we need: +/// +/// - The list of trusted CA certificates that might be relevant for this +/// app. +/// - A valid certificate issued by a CA. +/// +/// This callback is posted whenever the state of our readiness changes. +struct SteamNetAuthenticationStatus_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 2 }; + + /// Status + ESteamNetworkingAvailability m_eAvail; + + /// Non-localized English language status. For diagnostic/debugging + /// purposes only. + char m_debugMsg[ 256 ]; +}; + +#pragma pack( pop ) + +#endif // ISTEAMNETWORKINGSOCKETS diff --git a/lib/osx/include/steam/isteamnetworkingutils.h b/lib/osx/include/steam/isteamnetworkingutils.h new file mode 100644 index 0000000..626efed --- /dev/null +++ b/lib/osx/include/steam/isteamnetworkingutils.h @@ -0,0 +1,500 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Purpose: misc networking utilities +// +//============================================================================= + +#ifndef ISTEAMNETWORKINGUTILS +#define ISTEAMNETWORKINGUTILS +#pragma once + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +struct SteamDatagramRelayAuthTicket; +struct SteamRelayNetworkStatus_t; + +//----------------------------------------------------------------------------- +/// Misc networking utilities for checking the local networking environment +/// and estimating pings. +class ISteamNetworkingUtils +{ +public: + // + // Efficient message sending + // + + /// Allocate and initialize a message object. Usually the reason + /// you call this is to pass it to ISteamNetworkingSockets::SendMessages. + /// The returned object will have all of the relevant fields cleared to zero. + /// + /// Optionally you can also request that this system allocate space to + /// hold the payload itself. If cbAllocateBuffer is nonzero, the system + /// will allocate memory to hold a payload of at least cbAllocateBuffer bytes. + /// m_pData will point to the allocated buffer, m_cbSize will be set to the + /// size, and m_pfnFreeData will be set to the proper function to free up + /// the buffer. + /// + /// If cbAllocateBuffer=0, then no buffer is allocated. m_pData will be NULL, + /// m_cbSize will be zero, and m_pfnFreeData will be NULL. You will need to + /// set each of these. + virtual SteamNetworkingMessage_t *AllocateMessage( int cbAllocateBuffer ) = 0; + + // + // Access to Steam Datagram Relay (SDR) network + // + + // + // Initialization and status check + // + + /// If you know that you are going to be using the relay network (for example, + /// because you anticipate making P2P connections), call this to initialize the + /// relay network. If you do not call this, the initialization will + /// be delayed until the first time you use a feature that requires access + /// to the relay network, which will delay that first access. + /// + /// You can also call this to force a retry if the previous attempt has failed. + /// Performing any action that requires access to the relay network will also + /// trigger a retry, and so calling this function is never strictly necessary, + /// but it can be useful to call it a program launch time, if access to the + /// relay network is anticipated. + /// + /// Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + /// callbacks to know when initialization has completed. + /// Typically initialization completes in a few seconds. + /// + /// Note: dedicated servers hosted in known data centers do *not* need + /// to call this, since they do not make routing decisions. However, if + /// the dedicated server will be using P2P functionality, it will act as + /// a "client" and this should be called. + inline void InitRelayNetworkAccess(); + + /// Fetch current status of the relay network. + /// + /// SteamRelayNetworkStatus_t is also a callback. It will be triggered on + /// both the user and gameserver interfaces any time the status changes, or + /// ping measurement starts or stops. + /// + /// SteamRelayNetworkStatus_t::m_eAvail is returned. If you want + /// more details, you can pass a non-NULL value. + virtual ESteamNetworkingAvailability GetRelayNetworkStatus( SteamRelayNetworkStatus_t *pDetails ) = 0; + + // + // "Ping location" functions + // + // We use the ping times to the valve relays deployed worldwide to + // generate a "marker" that describes the location of an Internet host. + // Given two such markers, we can estimate the network latency between + // two hosts, without sending any packets. The estimate is based on the + // optimal route that is found through the Valve network. If you are + // using the Valve network to carry the traffic, then this is precisely + // the ping you want. If you are not, then the ping time will probably + // still be a reasonable estimate. + // + // This is extremely useful to select peers for matchmaking! + // + // The markers can also be converted to a string, so they can be transmitted. + // We have a separate library you can use on your app's matchmaking/coordinating + // server to manipulate these objects. (See steamdatagram_gamecoordinator.h) + + /// Return location info for the current host. Returns the approximate + /// age of the data, in seconds, or -1 if no data is available. + /// + /// It takes a few seconds to initialize access to the relay network. If + /// you call this very soon after calling InitRelayNetworkAccess, + /// the data may not be available yet. + /// + /// This always return the most up-to-date information we have available + /// right now, even if we are in the middle of re-calculating ping times. + virtual float GetLocalPingLocation( SteamNetworkPingLocation_t &result ) = 0; + + /// Estimate the round-trip latency between two arbitrary locations, in + /// milliseconds. This is a conservative estimate, based on routing through + /// the relay network. For most basic relayed connections, this ping time + /// will be pretty accurate, since it will be based on the route likely to + /// be actually used. + /// + /// If a direct IP route is used (perhaps via NAT traversal), then the route + /// will be different, and the ping time might be better. Or it might actually + /// be a bit worse! Standard IP routing is frequently suboptimal! + /// + /// But even in this case, the estimate obtained using this method is a + /// reasonable upper bound on the ping time. (Also it has the advantage + /// of returning immediately and not sending any packets.) + /// + /// In a few cases we might not able to estimate the route. In this case + /// a negative value is returned. k_nSteamNetworkingPing_Failed means + /// the reason was because of some networking difficulty. (Failure to + /// ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + /// currently answer the question for some other reason. + /// + /// Do you need to be able to do this from a backend/matchmaking server? + /// You are looking for the "game coordinator" library. + virtual int EstimatePingTimeBetweenTwoLocations( const SteamNetworkPingLocation_t &location1, const SteamNetworkPingLocation_t &location2 ) = 0; + + /// Same as EstimatePingTime, but assumes that one location is the local host. + /// This is a bit faster, especially if you need to calculate a bunch of + /// these in a loop to find the fastest one. + /// + /// In rare cases this might return a slightly different estimate than combining + /// GetLocalPingLocation with EstimatePingTimeBetweenTwoLocations. That's because + /// this function uses a slightly more complete set of information about what + /// route would be taken. + virtual int EstimatePingTimeFromLocalHost( const SteamNetworkPingLocation_t &remoteLocation ) = 0; + + /// Convert a ping location into a text format suitable for sending over the wire. + /// The format is a compact and human readable. However, it is subject to change + /// so please do not parse it yourself. Your buffer must be at least + /// k_cchMaxSteamNetworkingPingLocationString bytes. + virtual void ConvertPingLocationToString( const SteamNetworkPingLocation_t &location, char *pszBuf, int cchBufSize ) = 0; + + /// Parse back SteamNetworkPingLocation_t string. Returns false if we couldn't understand + /// the string. + virtual bool ParsePingLocationString( const char *pszString, SteamNetworkPingLocation_t &result ) = 0; + + /// Check if the ping data of sufficient recency is available, and if + /// it's too old, start refreshing it. + /// + /// Please only call this function when you *really* do need to force an + /// immediate refresh of the data. (For example, in response to a specific + /// user input to refresh this information.) Don't call it "just in case", + /// before every connection, etc. That will cause extra traffic to be sent + /// for no benefit. The library will automatically refresh the information + /// as needed. + /// + /// Returns true if sufficiently recent data is already available. + /// + /// Returns false if sufficiently recent data is not available. In this + /// case, ping measurement is initiated, if it is not already active. + /// (You cannot restart a measurement already in progress.) + /// + /// You can use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + /// to know when ping measurement completes. + virtual bool CheckPingDataUpToDate( float flMaxAgeSeconds ) = 0; + + // + // List of Valve data centers, and ping times to them. This might + // be useful to you if you are use our hosting, or just need to measure + // latency to a cloud data center where we are running relays. + // + + /// Fetch ping time of best available relayed route from this host to + /// the specified data center. + virtual int GetPingToDataCenter( SteamNetworkingPOPID popID, SteamNetworkingPOPID *pViaRelayPoP ) = 0; + + /// Get *direct* ping time to the relays at the data center. + virtual int GetDirectPingToPOP( SteamNetworkingPOPID popID ) = 0; + + /// Get number of network points of presence in the config + virtual int GetPOPCount() = 0; + + /// Get list of all POP IDs. Returns the number of entries that were filled into + /// your list. + virtual int GetPOPList( SteamNetworkingPOPID *list, int nListSz ) = 0; + + // + // Misc + // + + /// Fetch current timestamp. This timer has the following properties: + /// + /// - Monotonicity is guaranteed. + /// - The initial value will be at least 24*3600*30*1e6, i.e. about + /// 30 days worth of microseconds. In this way, the timestamp value of + /// 0 will always be at least "30 days ago". Also, negative numbers + /// will never be returned. + /// - Wraparound / overflow is not a practical concern. + /// + /// If you are running under the debugger and stop the process, the clock + /// might not advance the full wall clock time that has elapsed between + /// calls. If the process is not blocked from normal operation, the + /// timestamp values will track wall clock time, even if you don't call + /// the function frequently. + /// + /// The value is only meaningful for this run of the process. Don't compare + /// it to values obtained on another computer, or other runs of the same process. + virtual SteamNetworkingMicroseconds GetLocalTimestamp() = 0; + + /// Set a function to receive network-related information that is useful for debugging. + /// This can be very useful during development, but it can also be useful for troubleshooting + /// problems with tech savvy end users. If you have a console or other log that customers + /// can examine, these log messages can often be helpful to troubleshoot network issues. + /// (Especially any warning/error messages.) + /// + /// The detail level indicates what message to invoke your callback on. Lower numeric + /// value means more important, and the value you pass is the lowest priority (highest + /// numeric value) you wish to receive callbacks for. + /// + /// The value here controls the detail level for most messages. You can control the + /// detail level for various subsystems (perhaps only for certain connections) by + /// adjusting the configuration values k_ESteamNetworkingConfig_LogLevel_Xxxxx. + /// + /// Except when debugging, you should only use k_ESteamNetworkingSocketsDebugOutputType_Msg + /// or k_ESteamNetworkingSocketsDebugOutputType_Warning. For best performance, do NOT + /// request a high detail level and then filter out messages in your callback. This incurs + /// all of the expense of formatting the messages, which are then discarded. Setting a high + /// priority value (low numeric value) here allows the library to avoid doing this work. + /// + /// IMPORTANT: This may be called from a service thread, while we own a mutex, etc. + /// Your output function must be threadsafe and fast! Do not make any other + /// Steamworks calls from within the handler. + virtual void SetDebugOutputFunction( ESteamNetworkingSocketsDebugOutputType eDetailLevel, FSteamNetworkingSocketsDebugOutput pfnFunc ) = 0; + + // + // Fake IP + // + // Useful for interfacing with code that assumes peers are identified using an IPv4 address + // + + /// Return true if an IPv4 address is one that might be used as a "fake" one. + /// This function is fast; it just does some logical tests on the IP and does + /// not need to do any lookup operations. + inline bool IsFakeIPv4( uint32 nIPv4 ) { return GetIPv4FakeIPType( nIPv4 ) > k_ESteamNetworkingFakeIPType_NotFake; } + virtual ESteamNetworkingFakeIPType GetIPv4FakeIPType( uint32 nIPv4 ) = 0; + + /// Get the real identity associated with a given FakeIP. + /// + /// On failure, returns: + /// - k_EResultInvalidParam: the IP is not a FakeIP. + /// - k_EResultNoMatch: we don't recognize that FakeIP and don't know the corresponding identity. + /// + /// FakeIP's used by active connections, or the FakeIPs assigned to local identities, + /// will always work. FakeIPs for recently destroyed connections will continue to + /// return results for a little while, but not forever. At some point, we will forget + /// FakeIPs to save space. It's reasonably safe to assume that you can read back the + /// real identity of a connection very soon after it is destroyed. But do not wait + /// indefinitely. + virtual EResult GetRealIdentityForFakeIP( const SteamNetworkingIPAddr &fakeIP, SteamNetworkingIdentity *pOutRealIdentity ) = 0; + + // + // Set and get configuration values, see ESteamNetworkingConfigValue for individual descriptions. + // + + // Shortcuts for common cases. (Implemented as inline functions below) + bool SetGlobalConfigValueInt32( ESteamNetworkingConfigValue eValue, int32 val ); + bool SetGlobalConfigValueFloat( ESteamNetworkingConfigValue eValue, float val ); + bool SetGlobalConfigValueString( ESteamNetworkingConfigValue eValue, const char *val ); + bool SetGlobalConfigValuePtr( ESteamNetworkingConfigValue eValue, void *val ); + bool SetConnectionConfigValueInt32( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ); + bool SetConnectionConfigValueFloat( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ); + bool SetConnectionConfigValueString( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char *val ); + + // + // Set global callbacks. If you do not want to use Steam's callback dispatch mechanism and you + // want to use the same callback on all (or most) listen sockets and connections, then + // simply install these callbacks first thing, and you are good to go. + // See ISteamNetworkingSockets::RunCallbacks + // + bool SetGlobalCallback_SteamNetConnectionStatusChanged( FnSteamNetConnectionStatusChanged fnCallback ); + bool SetGlobalCallback_SteamNetAuthenticationStatusChanged( FnSteamNetAuthenticationStatusChanged fnCallback ); + bool SetGlobalCallback_SteamRelayNetworkStatusChanged( FnSteamRelayNetworkStatusChanged fnCallback ); + bool SetGlobalCallback_FakeIPResult( FnSteamNetworkingFakeIPResult fnCallback ); + bool SetGlobalCallback_MessagesSessionRequest( FnSteamNetworkingMessagesSessionRequest fnCallback ); + bool SetGlobalCallback_MessagesSessionFailed( FnSteamNetworkingMessagesSessionFailed fnCallback ); + + /// Set a configuration value. + /// - eValue: which value is being set + /// - eScope: Onto what type of object are you applying the setting? + /// - scopeArg: Which object you want to change? (Ignored for global scope). E.g. connection handle, listen socket handle, interface pointer, etc. + /// - eDataType: What type of data is in the buffer at pValue? This must match the type of the variable exactly! + /// - pArg: Value to set it to. You can pass NULL to remove a non-global setting at this scope, + /// causing the value for that object to use global defaults. Or at global scope, passing NULL + /// will reset any custom value and restore it to the system default. + /// NOTE: When setting pointers (e.g. callback functions), do not pass the function pointer directly. + /// Your argument should be a pointer to a function pointer. + virtual bool SetConfigValue( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, + ESteamNetworkingConfigDataType eDataType, const void *pArg ) = 0; + + /// Set a configuration value, using a struct to pass the value. + /// (This is just a convenience shortcut; see below for the implementation and + /// a little insight into how SteamNetworkingConfigValue_t is used when + /// setting config options during listen socket and connection creation.) + bool SetConfigValueStruct( const SteamNetworkingConfigValue_t &opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj ); + + /// Get a configuration value. + /// - eValue: which value to fetch + /// - eScopeType: query setting on what type of object + /// - eScopeArg: the object to query the setting for + /// - pOutDataType: If non-NULL, the data type of the value is returned. + /// - pResult: Where to put the result. Pass NULL to query the required buffer size. (k_ESteamNetworkingGetConfigValue_BufferTooSmall will be returned.) + /// - cbResult: IN: the size of your buffer. OUT: the number of bytes filled in or required. + virtual ESteamNetworkingGetConfigValueResult GetConfigValue( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, + ESteamNetworkingConfigDataType *pOutDataType, void *pResult, size_t *cbResult ) = 0; + + /// Get info about a configuration value. Returns the name of the value, + /// or NULL if the value doesn't exist. Other output parameters can be NULL + /// if you do not need them. + virtual const char *GetConfigValueInfo( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigDataType *pOutDataType, + ESteamNetworkingConfigScope *pOutScope ) = 0; + + /// Iterate the list of all configuration values in the current environment that it might + /// be possible to display or edit using a generic UI. To get the first iterable value, + /// pass k_ESteamNetworkingConfig_Invalid. Returns k_ESteamNetworkingConfig_Invalid + /// to signal end of list. + /// + /// The bEnumerateDevVars argument can be used to include "dev" vars. These are vars that + /// are recommended to only be editable in "debug" or "dev" mode and typically should not be + /// shown in a retail environment where a malicious local user might use this to cheat. + virtual ESteamNetworkingConfigValue IterateGenericEditableConfigValues( ESteamNetworkingConfigValue eCurrent, bool bEnumerateDevVars ) = 0; + + // + // String conversions. You'll usually access these using the respective + // inline methods. + // + virtual void SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr &addr, char *buf, size_t cbBuf, bool bWithPort ) = 0; + virtual bool SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr ) = 0; + virtual ESteamNetworkingFakeIPType SteamNetworkingIPAddr_GetFakeIPType( const SteamNetworkingIPAddr &addr ) = 0; + virtual void SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity &identity, char *buf, size_t cbBuf ) = 0; + virtual bool SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, const char *pszStr ) = 0; + +protected: + ~ISteamNetworkingUtils(); // Silence some warnings +}; +#define STEAMNETWORKINGUTILS_INTERFACE_VERSION "SteamNetworkingUtils004" + +// Global accessors +// Using standalone lib +#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB + + // Standalone lib + static_assert( STEAMNETWORKINGUTILS_INTERFACE_VERSION[22] == '4', "Version mismatch" ); + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingUtils *SteamNetworkingUtils_LibV4(); + inline ISteamNetworkingUtils *SteamNetworkingUtils_Lib() { return SteamNetworkingUtils_LibV4(); } + + #ifndef STEAMNETWORKINGSOCKETS_STEAMAPI + inline ISteamNetworkingUtils *SteamNetworkingUtils() { return SteamNetworkingUtils_LibV4(); } + #endif +#endif + +// Using Steamworks SDK +#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI + STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamNetworkingUtils *, SteamNetworkingUtils_SteamAPI, + /* Prefer user version of the interface. But if it isn't found, then use + gameserver one. Yes, this is a completely terrible hack */ + SteamInternal_FindOrCreateUserInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ) ? + SteamInternal_FindOrCreateUserInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ) : + SteamInternal_FindOrCreateGameServerInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ), + "global", + STEAMNETWORKINGUTILS_INTERFACE_VERSION + ) + + #ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB + inline ISteamNetworkingUtils *SteamNetworkingUtils() { return SteamNetworkingUtils_SteamAPI(); } + #endif +#endif + +/// A struct used to describe our readiness to use the relay network. +/// To do this we first need to fetch the network configuration, +/// which describes what POPs are available. +struct SteamRelayNetworkStatus_t +{ + enum { k_iCallback = k_iSteamNetworkingUtilsCallbacks + 1 }; + + /// Summary status. When this is "current", initialization has + /// completed. Anything else means you are not ready yet, or + /// there is a significant problem. + ESteamNetworkingAvailability m_eAvail; + + /// Nonzero if latency measurement is in progress (or pending, + /// awaiting a prerequisite). + int m_bPingMeasurementInProgress; + + /// Status obtaining the network config. This is a prerequisite + /// for relay network access. + /// + /// Failure to obtain the network config almost always indicates + /// a problem with the local internet connection. + ESteamNetworkingAvailability m_eAvailNetworkConfig; + + /// Current ability to communicate with ANY relay. Note that + /// the complete failure to communicate with any relays almost + /// always indicates a problem with the local Internet connection. + /// (However, just because you can reach a single relay doesn't + /// mean that the local connection is in perfect health.) + ESteamNetworkingAvailability m_eAvailAnyRelay; + + /// Non-localized English language status. For diagnostic/debugging + /// purposes only. + char m_debugMsg[ 256 ]; +}; + +#ifndef API_GEN + +/// Utility class for printing a SteamNetworkingIdentity. +/// E.g. printf( "Identity is '%s'\n", SteamNetworkingIdentityRender( identity ).c_str() ); +struct SteamNetworkingIdentityRender +{ + SteamNetworkingIdentityRender( const SteamNetworkingIdentity &x ) { x.ToString( buf, sizeof(buf) ); } + inline const char *c_str() const { return buf; } +private: + char buf[ SteamNetworkingIdentity::k_cchMaxString ]; +}; + +/// Utility class for printing a SteamNetworkingIPAddrRender. +struct SteamNetworkingIPAddrRender +{ + SteamNetworkingIPAddrRender( const SteamNetworkingIPAddr &x, bool bWithPort = true ) { x.ToString( buf, sizeof(buf), bWithPort ); } + inline const char *c_str() const { return buf; } +private: + char buf[ SteamNetworkingIPAddr::k_cchMaxString ]; +}; + +#endif + +/////////////////////////////////////////////////////////////////////////////// +// +// Internal stuff + +inline void ISteamNetworkingUtils::InitRelayNetworkAccess() { CheckPingDataUpToDate( 1e10f ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValueInt32( ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Int32, &val ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValueFloat( ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Float, &val ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValueString( ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_String, val ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValuePtr( ESteamNetworkingConfigValue eValue, void *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Ptr, &val ); } // Note: passing pointer to pointer. +inline bool ISteamNetworkingUtils::SetConnectionConfigValueInt32( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Int32, &val ); } +inline bool ISteamNetworkingUtils::SetConnectionConfigValueFloat( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Float, &val ); } +inline bool ISteamNetworkingUtils::SetConnectionConfigValueString( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_String, val ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_SteamNetConnectionStatusChanged( FnSteamNetConnectionStatusChanged fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_SteamNetAuthenticationStatusChanged( FnSteamNetAuthenticationStatusChanged fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_AuthStatusChanged, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_SteamRelayNetworkStatusChanged( FnSteamRelayNetworkStatusChanged fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_FakeIPResult( FnSteamNetworkingFakeIPResult fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_FakeIPResult, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionRequest( FnSteamNetworkingMessagesSessionRequest fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_MessagesSessionRequest, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionFailed( FnSteamNetworkingMessagesSessionFailed fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_MessagesSessionFailed, (void*)fnCallback ); } + +inline bool ISteamNetworkingUtils::SetConfigValueStruct( const SteamNetworkingConfigValue_t &opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj ) +{ + // Locate the argument. Strings are a special case, since the + // "value" (the whole string buffer) doesn't fit in the struct + // NOTE: for pointer values, we pass a pointer to the pointer, + // we do not pass the pointer directly. + const void *pVal = ( opt.m_eDataType == k_ESteamNetworkingConfig_String ) ? (const void *)opt.m_val.m_string : (const void *)&opt.m_val; + return SetConfigValue( opt.m_eValue, eScopeType, scopeObj, opt.m_eDataType, pVal ); +} + +// How to get helper functions. +#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) || defined(STEAMNETWORKINGSOCKETS_FOREXPORT) || defined( STEAMNETWORKINGSOCKETS_STANDALONELIB ) + + // Call direct to static functions + STEAMNETWORKINGSOCKETS_INTERFACE void SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr *pAddr, char *buf, size_t cbBuf, bool bWithPort ); + STEAMNETWORKINGSOCKETS_INTERFACE bool SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr ); + STEAMNETWORKINGSOCKETS_INTERFACE ESteamNetworkingFakeIPType SteamNetworkingIPAddr_GetFakeIPType( const SteamNetworkingIPAddr *pAddr ); + STEAMNETWORKINGSOCKETS_INTERFACE void SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity *pIdentity, char *buf, size_t cbBuf ); + STEAMNETWORKINGSOCKETS_INTERFACE bool SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, size_t sizeofIdentity, const char *pszStr ); + inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingIPAddr_ToString( this, buf, cbBuf, bWithPort ); } + inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingIPAddr_ParseString( this, pszStr ); } + inline ESteamNetworkingFakeIPType SteamNetworkingIPAddr::GetFakeIPType() const { return SteamNetworkingIPAddr_GetFakeIPType( this ); } + inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingIdentity_ToString( this, buf, cbBuf ); } + inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingIdentity_ParseString( this, sizeof(*this), pszStr ); } + +#elif defined( STEAMNETWORKINGSOCKETS_STEAMAPI ) + // Using steamworks SDK - go through SteamNetworkingUtils() + inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingUtils()->SteamNetworkingIPAddr_ToString( *this, buf, cbBuf, bWithPort ); } + inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIPAddr_ParseString( this, pszStr ); } + inline ESteamNetworkingFakeIPType SteamNetworkingIPAddr::GetFakeIPType() const { return SteamNetworkingUtils()->SteamNetworkingIPAddr_GetFakeIPType( *this ); } + inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingUtils()->SteamNetworkingIdentity_ToString( *this, buf, cbBuf ); } + inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIdentity_ParseString( this, pszStr ); } +#else + #error "Invalid config" +#endif + +#endif // ISTEAMNETWORKINGUTILS diff --git a/lib/osx/include/steam/isteamparentalsettings.h b/lib/osx/include/steam/isteamparentalsettings.h new file mode 100644 index 0000000..bf3d0c6 --- /dev/null +++ b/lib/osx/include/steam/isteamparentalsettings.h @@ -0,0 +1,64 @@ +//====== Copyright � 2013-, Valve Corporation, All rights reserved. ======= +// +// Purpose: Interface to Steam parental settings (Family View) +// +//============================================================================= + +#ifndef ISTEAMPARENTALSETTINGS_H +#define ISTEAMPARENTALSETTINGS_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +// Feature types for parental settings +enum EParentalFeature +{ + k_EFeatureInvalid = 0, + k_EFeatureStore = 1, + k_EFeatureCommunity = 2, + k_EFeatureProfile = 3, + k_EFeatureFriends = 4, + k_EFeatureNews = 5, + k_EFeatureTrading = 6, + k_EFeatureSettings = 7, + k_EFeatureConsole = 8, + k_EFeatureBrowser = 9, + k_EFeatureParentalSetup = 10, + k_EFeatureLibrary = 11, + k_EFeatureTest = 12, + k_EFeatureSiteLicense = 13, + k_EFeatureKioskMode_Deprecated = 14, + k_EFeatureMax +}; + +class ISteamParentalSettings +{ +public: + virtual bool BIsParentalLockEnabled() = 0; + virtual bool BIsParentalLockLocked() = 0; + + virtual bool BIsAppBlocked( AppId_t nAppID ) = 0; + virtual bool BIsAppInBlockList( AppId_t nAppID ) = 0; + + virtual bool BIsFeatureBlocked( EParentalFeature eFeature ) = 0; + virtual bool BIsFeatureInBlockList( EParentalFeature eFeature ) = 0; +}; + +#define STEAMPARENTALSETTINGS_INTERFACE_VERSION "STEAMPARENTALSETTINGS_INTERFACE_VERSION001" + +// Global interface accessor +inline ISteamParentalSettings *SteamParentalSettings(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamParentalSettings *, SteamParentalSettings, STEAMPARENTALSETTINGS_INTERFACE_VERSION ); + +//----------------------------------------------------------------------------- +// Purpose: Callback for querying UGC +//----------------------------------------------------------------------------- +struct SteamParentalSettingsChanged_t +{ + enum { k_iCallback = k_ISteamParentalSettingsCallbacks + 1 }; +}; + + +#endif // ISTEAMPARENTALSETTINGS_H diff --git a/lib/osx/include/steam/isteamremoteplay.h b/lib/osx/include/steam/isteamremoteplay.h new file mode 100644 index 0000000..df5ca3f --- /dev/null +++ b/lib/osx/include/steam/isteamremoteplay.h @@ -0,0 +1,99 @@ +//============ Copyright (c) Valve Corporation, All rights reserved. ============ + +#ifndef ISTEAMREMOTEPLAY_H +#define ISTEAMREMOTEPLAY_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + + +//----------------------------------------------------------------------------- +// Purpose: The form factor of a device +//----------------------------------------------------------------------------- +enum ESteamDeviceFormFactor +{ + k_ESteamDeviceFormFactorUnknown = 0, + k_ESteamDeviceFormFactorPhone = 1, + k_ESteamDeviceFormFactorTablet = 2, + k_ESteamDeviceFormFactorComputer = 3, + k_ESteamDeviceFormFactorTV = 4, + k_ESteamDeviceFormFactorVRHeadset = 5, +}; + +// Steam Remote Play session ID +typedef uint32 RemotePlaySessionID_t; + + +//----------------------------------------------------------------------------- +// Purpose: Functions to provide information about Steam Remote Play sessions +//----------------------------------------------------------------------------- +class ISteamRemotePlay +{ +public: + // Get the number of currently connected Steam Remote Play sessions + virtual uint32 GetSessionCount() = 0; + + // Get the currently connected Steam Remote Play session ID at the specified index. Returns zero if index is out of bounds. + virtual RemotePlaySessionID_t GetSessionID( int iSessionIndex ) = 0; + + // Get the SteamID of the connected user + virtual CSteamID GetSessionSteamID( RemotePlaySessionID_t unSessionID ) = 0; + + // Get the name of the session client device + // This returns NULL if the sessionID is not valid + virtual const char *GetSessionClientName( RemotePlaySessionID_t unSessionID ) = 0; + + // Get the form factor of the session client device + virtual ESteamDeviceFormFactor GetSessionClientFormFactor( RemotePlaySessionID_t unSessionID ) = 0; + + // Get the resolution, in pixels, of the session client device + // This is set to 0x0 if the resolution is not available + virtual bool BGetSessionClientResolution( RemotePlaySessionID_t unSessionID, int *pnResolutionX, int *pnResolutionY ) = 0; + + // Start Remote Play Together and optionally show the UI in the overlay + // This returns false if Remote Play Together can't be started or your game is not configured for Remote Play Together + virtual bool BStartRemotePlayTogether( bool bShowOverlay = true ) = 0; + + // Invite a friend to Remote Play Together, or create a guest invite if steamIDFriend is empty + // This will automatically start Remote Play Together if it hasn't already been started + // This returns false if the invite can't be sent or your game is not configured for Remote Play Together + virtual bool BSendRemotePlayTogetherInvite( CSteamID steamIDFriend ) = 0; +}; + +#define STEAMREMOTEPLAY_INTERFACE_VERSION "STEAMREMOTEPLAY_INTERFACE_VERSION002" + +// Global interface accessor +inline ISteamRemotePlay *SteamRemotePlay(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamRemotePlay *, SteamRemotePlay, STEAMREMOTEPLAY_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + + +STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionConnected_t, k_iSteamRemotePlayCallbacks + 1 ) + STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID ) +STEAM_CALLBACK_END( 0 ) + + +STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionDisconnected_t, k_iSteamRemotePlayCallbacks + 2 ) + STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID ) +STEAM_CALLBACK_END( 0 ) + + +STEAM_CALLBACK_BEGIN( SteamRemotePlayTogetherGuestInvite_t, k_iSteamRemotePlayCallbacks + 3 ) + STEAM_CALLBACK_MEMBER_ARRAY( 0, char, m_szConnectURL, 1024 ) +STEAM_CALLBACK_END( 0 ) + + +#pragma pack( pop ) + + +#endif // #define ISTEAMREMOTEPLAY_H diff --git a/lib/osx/include/steam/isteamremotestorage.h b/lib/osx/include/steam/isteamremotestorage.h index 3ac2871..c0da367 100644 --- a/lib/osx/include/steam/isteamremotestorage.h +++ b/lib/osx/include/steam/isteamremotestorage.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" //----------------------------------------------------------------------------- @@ -28,7 +28,7 @@ const uint32 k_unMaxCloudFileChunkSize = 100 * 1024 * 1024; #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct SteamParamStringArray_t { @@ -65,7 +65,10 @@ enum ERemoteStoragePlatform k_ERemoteStoragePlatformOSX = (1 << 1), k_ERemoteStoragePlatformPS3 = (1 << 2), k_ERemoteStoragePlatformLinux = (1 << 3), - k_ERemoteStoragePlatformReserved2 = (1 << 4), + k_ERemoteStoragePlatformSwitch = (1 << 4), + k_ERemoteStoragePlatformAndroid = (1 << 5), + k_ERemoteStoragePlatformIOS = (1 << 6), + // NB we get one more before we need to widen some things k_ERemoteStoragePlatformAll = 0xffffffff }; @@ -75,6 +78,7 @@ enum ERemoteStoragePublishedFileVisibility k_ERemoteStoragePublishedFileVisibilityPublic = 0, k_ERemoteStoragePublishedFileVisibilityFriendsOnly = 1, k_ERemoteStoragePublishedFileVisibilityPrivate = 2, + k_ERemoteStoragePublishedFileVisibilityUnlisted = 3, }; @@ -98,9 +102,10 @@ enum EWorkshopFileType k_EWorkshopFileTypeSteamworksAccessInvite = 13, // internal k_EWorkshopFileTypeSteamVideo = 14, // Steam video k_EWorkshopFileTypeGameManagedItem = 15, // managed completely by the game, not the user, and not shown on the web + k_EWorkshopFileTypeClip = 16, // internal // Update k_EWorkshopFileTypeMax if you add values. - k_EWorkshopFileTypeMax = 16 + k_EWorkshopFileTypeMax = 17 }; @@ -152,6 +157,28 @@ enum EUGCReadAction k_EUGCRead_Close = 2, }; +enum ERemoteStorageLocalFileChange +{ + k_ERemoteStorageLocalFileChange_Invalid = 0, + + // The file was updated from another device + k_ERemoteStorageLocalFileChange_FileUpdated = 1, + + // The file was deleted by another device + k_ERemoteStorageLocalFileChange_FileDeleted = 2, +}; + +enum ERemoteStorageFilePathType +{ + k_ERemoteStorageFilePathType_Invalid = 0, + + // The file is directly accessed by the game and this is the full path + k_ERemoteStorageFilePathType_Absolute = 1, + + // The file is accessed via the ISteamRemoteStorage API and this is the filename + k_ERemoteStorageFilePathType_APIFilename = 2, +}; + //----------------------------------------------------------------------------- // Purpose: Functions for accessing, reading and writing files stored remotely @@ -171,16 +198,16 @@ class ISteamRemoteStorage virtual bool FileWrite( const char *pchFile, const void *pvData, int32 cubData ) = 0; virtual int32 FileRead( const char *pchFile, void *pvData, int32 cubDataToRead ) = 0; - CALL_RESULT( RemoteStorageFileWriteAsyncComplete_t ) + STEAM_CALL_RESULT( RemoteStorageFileWriteAsyncComplete_t ) virtual SteamAPICall_t FileWriteAsync( const char *pchFile, const void *pvData, uint32 cubData ) = 0; - CALL_RESULT( RemoteStorageFileReadAsyncComplete_t ) + STEAM_CALL_RESULT( RemoteStorageFileReadAsyncComplete_t ) virtual SteamAPICall_t FileReadAsync( const char *pchFile, uint32 nOffset, uint32 cubToRead ) = 0; virtual bool FileReadAsyncComplete( SteamAPICall_t hReadCall, void *pvBuffer, uint32 cubToRead ) = 0; virtual bool FileForget( const char *pchFile ) = 0; virtual bool FileDelete( const char *pchFile ) = 0; - CALL_RESULT( RemoteStorageFileShareResult_t ) + STEAM_CALL_RESULT( RemoteStorageFileShareResult_t ) virtual SteamAPICall_t FileShare( const char *pchFile ) = 0; virtual bool SetSyncPlatforms( const char *pchFile, ERemoteStoragePlatform eRemoteStoragePlatform ) = 0; @@ -212,7 +239,7 @@ class ISteamRemoteStorage // Downloads a UGC file. A priority value of 0 will download the file immediately, // otherwise it will wait to download the file until all downloads with a lower priority // value are completed. Downloads with equal priority will occur simultaneously. - CALL_RESULT( RemoteStorageDownloadUGCResult_t ) + STEAM_CALL_RESULT( RemoteStorageDownloadUGCResult_t ) virtual SteamAPICall_t UGCDownload( UGCHandle_t hContent, uint32 unPriority ) = 0; // Gets the amount of data downloaded so far for a piece of content. pnBytesExpected can be 0 if function returns false @@ -220,7 +247,7 @@ class ISteamRemoteStorage virtual bool GetUGCDownloadProgress( UGCHandle_t hContent, int32 *pnBytesDownloaded, int32 *pnBytesExpected ) = 0; // Gets metadata for a file after it has been downloaded. This is the same metadata given in the RemoteStorageDownloadUGCResult_t call result - virtual bool GetUGCDetails( UGCHandle_t hContent, AppId_t *pnAppID, OUT_STRING() char **ppchName, int32 *pnFileSizeInBytes, OUT_STRUCT() CSteamID *pSteamIDOwner ) = 0; + virtual bool GetUGCDetails( UGCHandle_t hContent, AppId_t *pnAppID, STEAM_OUT_STRING() char **ppchName, int32 *pnFileSizeInBytes, STEAM_OUT_STRUCT() CSteamID *pSteamIDOwner ) = 0; // After download, gets the content of the file. // Small files can be read all at once by calling this function with an offset of 0 and cubDataToRead equal to the size of the file. @@ -234,26 +261,8 @@ class ISteamRemoteStorage virtual int32 GetCachedUGCCount() = 0; virtual UGCHandle_t GetCachedUGCHandle( int32 iCachedContent ) = 0; - // The following functions are only necessary on the Playstation 3. On PC & Mac, the Steam client will handle these operations for you - // On Playstation 3, the game controls which files are stored in the cloud, via FilePersist, FileFetch, and FileForget. - -#if defined(_PS3) || defined(_SERVER) - // Connect to Steam and get a list of files in the Cloud - results in a RemoteStorageAppSyncStatusCheck_t callback - virtual void GetFileListFromServer() = 0; - // Indicate this file should be downloaded in the next sync - virtual bool FileFetch( const char *pchFile ) = 0; - // Indicate this file should be persisted in the next sync - virtual bool FilePersist( const char *pchFile ) = 0; - // Pull any requested files down from the Cloud - results in a RemoteStorageAppSyncedClient_t callback - virtual bool SynchronizeToClient() = 0; - // Upload any requested files to the Cloud - results in a RemoteStorageAppSyncedServer_t callback - virtual bool SynchronizeToServer() = 0; - // Reset any fetch/persist/etc requests - virtual bool ResetFileRequestState() = 0; -#endif - // publishing UGC - CALL_RESULT( RemoteStoragePublishFileProgress_t ) + STEAM_CALL_RESULT( RemoteStoragePublishFileProgress_t ) virtual SteamAPICall_t PublishWorkshopFile( const char *pchFile, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags, EWorkshopFileType eWorkshopFileType ) = 0; virtual PublishedFileUpdateHandle_t CreatePublishedFileUpdateRequest( PublishedFileId_t unPublishedFileId ) = 0; virtual bool UpdatePublishedFileFile( PublishedFileUpdateHandle_t updateHandle, const char *pchFile ) = 0; @@ -262,49 +271,61 @@ class ISteamRemoteStorage virtual bool UpdatePublishedFileDescription( PublishedFileUpdateHandle_t updateHandle, const char *pchDescription ) = 0; virtual bool UpdatePublishedFileVisibility( PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility ) = 0; virtual bool UpdatePublishedFileTags( PublishedFileUpdateHandle_t updateHandle, SteamParamStringArray_t *pTags ) = 0; - CALL_RESULT( RemoteStorageUpdatePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageUpdatePublishedFileResult_t ) virtual SteamAPICall_t CommitPublishedFileUpdate( PublishedFileUpdateHandle_t updateHandle ) = 0; // Gets published file details for the given publishedfileid. If unMaxSecondsOld is greater than 0, // cached data may be returned, depending on how long ago it was cached. A value of 0 will force a refresh. // A value of k_WorkshopForceLoadPublishedFileDetailsFromCache will use cached data if it exists, no matter how old it is. - CALL_RESULT( RemoteStorageGetPublishedFileDetailsResult_t ) + STEAM_CALL_RESULT( RemoteStorageGetPublishedFileDetailsResult_t ) virtual SteamAPICall_t GetPublishedFileDetails( PublishedFileId_t unPublishedFileId, uint32 unMaxSecondsOld ) = 0; - CALL_RESULT( RemoteStorageDeletePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageDeletePublishedFileResult_t ) virtual SteamAPICall_t DeletePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; // enumerate the files that the current user published with this app - CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) virtual SteamAPICall_t EnumerateUserPublishedFiles( uint32 unStartIndex ) = 0; - CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) virtual SteamAPICall_t SubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; - CALL_RESULT( RemoteStorageEnumerateUserSubscribedFilesResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumerateUserSubscribedFilesResult_t ) virtual SteamAPICall_t EnumerateUserSubscribedFiles( uint32 unStartIndex ) = 0; - CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) virtual SteamAPICall_t UnsubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; virtual bool UpdatePublishedFileSetChangeDescription( PublishedFileUpdateHandle_t updateHandle, const char *pchChangeDescription ) = 0; - CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) + STEAM_CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) virtual SteamAPICall_t GetPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0; - CALL_RESULT( RemoteStorageUpdateUserPublishedItemVoteResult_t ) + STEAM_CALL_RESULT( RemoteStorageUpdateUserPublishedItemVoteResult_t ) virtual SteamAPICall_t UpdateUserPublishedItemVote( PublishedFileId_t unPublishedFileId, bool bVoteUp ) = 0; - CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) + STEAM_CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) virtual SteamAPICall_t GetUserPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0; - CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) virtual SteamAPICall_t EnumerateUserSharedWorkshopFiles( CSteamID steamId, uint32 unStartIndex, SteamParamStringArray_t *pRequiredTags, SteamParamStringArray_t *pExcludedTags ) = 0; - CALL_RESULT( RemoteStoragePublishFileProgress_t ) + STEAM_CALL_RESULT( RemoteStoragePublishFileProgress_t ) virtual SteamAPICall_t PublishVideo( EWorkshopVideoProvider eVideoProvider, const char *pchVideoAccount, const char *pchVideoIdentifier, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags ) = 0; - CALL_RESULT( RemoteStorageSetUserPublishedFileActionResult_t ) + STEAM_CALL_RESULT( RemoteStorageSetUserPublishedFileActionResult_t ) virtual SteamAPICall_t SetUserPublishedFileAction( PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction ) = 0; - CALL_RESULT( RemoteStorageEnumeratePublishedFilesByUserActionResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumeratePublishedFilesByUserActionResult_t ) virtual SteamAPICall_t EnumeratePublishedFilesByUserAction( EWorkshopFileAction eAction, uint32 unStartIndex ) = 0; // this method enumerates the public view of workshop files - CALL_RESULT( RemoteStorageEnumerateWorkshopFilesResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumerateWorkshopFilesResult_t ) virtual SteamAPICall_t EnumeratePublishedWorkshopFiles( EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, SteamParamStringArray_t *pTags, SteamParamStringArray_t *pUserTags ) = 0; - CALL_RESULT( RemoteStorageDownloadUGCResult_t ) + STEAM_CALL_RESULT( RemoteStorageDownloadUGCResult_t ) virtual SteamAPICall_t UGCDownloadToLocation( UGCHandle_t hContent, const char *pchLocation, uint32 unPriority ) = 0; + + // Cloud dynamic state change notification + virtual int32 GetLocalFileChangeCount() = 0; + virtual const char *GetLocalFileChange( int iFile, ERemoteStorageLocalFileChange *pEChangeType, ERemoteStorageFilePathType *pEFilePathType ) = 0; + + // Indicate to Steam the beginning / end of a set of local file + // operations - for example, writing a game save that requires updating two files. + virtual bool BeginFileWriteBatch() = 0; + virtual bool EndFileWriteBatch() = 0; }; -#define STEAMREMOTESTORAGE_INTERFACE_VERSION "STEAMREMOTESTORAGE_INTERFACE_VERSION014" +#define STEAMREMOTESTORAGE_INTERFACE_VERSION "STEAMREMOTESTORAGE_INTERFACE_VERSION016" +// Global interface accessor +inline ISteamRemoteStorage *SteamRemoteStorage(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamRemoteStorage *, SteamRemoteStorage, STEAMREMOTESTORAGE_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -312,62 +333,10 @@ class ISteamRemoteStorage #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif -//----------------------------------------------------------------------------- -// Purpose: sent when the local file cache is fully synced with the server for an app -// That means that an application can be started and has all latest files -//----------------------------------------------------------------------------- -struct RemoteStorageAppSyncedClient_t -{ - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 1 }; - AppId_t m_nAppID; - EResult m_eResult; - int m_unNumDownloads; -}; -//----------------------------------------------------------------------------- -// Purpose: sent when the server is fully synced with the local file cache for an app -// That means that we can shutdown Steam and our data is stored on the server -//----------------------------------------------------------------------------- -struct RemoteStorageAppSyncedServer_t -{ - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 2 }; - AppId_t m_nAppID; - EResult m_eResult; - int m_unNumUploads; -}; - -//----------------------------------------------------------------------------- -// Purpose: Status of up and downloads during a sync session -// -//----------------------------------------------------------------------------- -struct RemoteStorageAppSyncProgress_t -{ - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 3 }; - char m_rgchCurrentFile[k_cchFilenameMax]; // Current file being transferred - AppId_t m_nAppID; // App this info relates to - uint32 m_uBytesTransferredThisChunk; // Bytes transferred this chunk - double m_dAppPercentComplete; // Percent complete that this app's transfers are - bool m_bUploading; // if false, downloading -}; - -// -// IMPORTANT! k_iClientRemoteStorageCallbacks + 4 is used, see iclientremotestorage.h -// - - -//----------------------------------------------------------------------------- -// Purpose: Sent after we've determined the list of files that are out of sync -// with the server. -//----------------------------------------------------------------------------- -struct RemoteStorageAppSyncStatusCheck_t -{ - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 5 }; - AppId_t m_nAppID; - EResult m_eResult; -}; //----------------------------------------------------------------------------- @@ -375,14 +344,14 @@ struct RemoteStorageAppSyncStatusCheck_t //----------------------------------------------------------------------------- struct RemoteStorageFileShareResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 7 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 7 }; EResult m_eResult; // The result of the operation UGCHandle_t m_hFile; // The handle that can be shared with users and features char m_rgchFilename[k_cchFilenameMax]; // The name of the file that was shared }; -// k_iClientRemoteStorageCallbacks + 8 is deprecated! Do not reuse +// k_iSteamRemoteStorageCallbacks + 8 is deprecated! Do not reuse //----------------------------------------------------------------------------- @@ -390,19 +359,22 @@ struct RemoteStorageFileShareResult_t //----------------------------------------------------------------------------- struct RemoteStoragePublishFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 9 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 9 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; bool m_bUserNeedsToAcceptWorkshopLegalAgreement; }; +// k_iSteamRemoteStorageCallbacks + 10 is deprecated! Do not reuse + + //----------------------------------------------------------------------------- // Purpose: The result of a call to DeletePublishedFile() //----------------------------------------------------------------------------- struct RemoteStorageDeletePublishedFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 11 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 11 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; }; @@ -413,7 +385,7 @@ struct RemoteStorageDeletePublishedFileResult_t //----------------------------------------------------------------------------- struct RemoteStorageEnumerateUserPublishedFilesResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 12 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 12 }; EResult m_eResult; // The result of the operation. int32 m_nResultsReturned; int32 m_nTotalResultCount; @@ -426,7 +398,7 @@ struct RemoteStorageEnumerateUserPublishedFilesResult_t //----------------------------------------------------------------------------- struct RemoteStorageSubscribePublishedFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 13 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 13 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; }; @@ -437,7 +409,7 @@ struct RemoteStorageSubscribePublishedFileResult_t //----------------------------------------------------------------------------- struct RemoteStorageEnumerateUserSubscribedFilesResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 14 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 14 }; EResult m_eResult; // The result of the operation. int32 m_nResultsReturned; int32 m_nTotalResultCount; @@ -450,7 +422,7 @@ struct RemoteStorageEnumerateUserSubscribedFilesResult_t #elif defined(VALVE_CALLBACK_PACK_LARGE) VALVE_COMPILE_TIME_ASSERT( sizeof( RemoteStorageEnumerateUserSubscribedFilesResult_t ) == (1 + 1 + 1 + 50 + 100) * 4 + 4 ); #else -#warning You must first include isteamclient.h +#warning You must first include steam_api_common.h #endif //----------------------------------------------------------------------------- @@ -458,7 +430,7 @@ struct RemoteStorageEnumerateUserSubscribedFilesResult_t //----------------------------------------------------------------------------- struct RemoteStorageUnsubscribePublishedFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 15 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 15 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; }; @@ -469,7 +441,7 @@ struct RemoteStorageUnsubscribePublishedFileResult_t //----------------------------------------------------------------------------- struct RemoteStorageUpdatePublishedFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 16 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 16 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; bool m_bUserNeedsToAcceptWorkshopLegalAgreement; @@ -481,7 +453,7 @@ struct RemoteStorageUpdatePublishedFileResult_t //----------------------------------------------------------------------------- struct RemoteStorageDownloadUGCResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 17 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 17 }; EResult m_eResult; // The result of the operation. UGCHandle_t m_hFile; // The handle to the file that was attempted to be downloaded. AppId_t m_nAppID; // ID of the app that created this file. @@ -496,7 +468,7 @@ struct RemoteStorageDownloadUGCResult_t //----------------------------------------------------------------------------- struct RemoteStorageGetPublishedFileDetailsResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 18 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 18 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; AppId_t m_nCreatorAppID; // ID of the app that created this file. @@ -523,7 +495,7 @@ struct RemoteStorageGetPublishedFileDetailsResult_t struct RemoteStorageEnumerateWorkshopFilesResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 19 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 19 }; EResult m_eResult; int32 m_nResultsReturned; int32 m_nTotalResultCount; @@ -539,7 +511,7 @@ struct RemoteStorageEnumerateWorkshopFilesResult_t //----------------------------------------------------------------------------- struct RemoteStorageGetPublishedItemVoteDetailsResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 20 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 20 }; EResult m_eResult; PublishedFileId_t m_unPublishedFileId; int32 m_nVotesFor; @@ -554,7 +526,7 @@ struct RemoteStorageGetPublishedItemVoteDetailsResult_t //----------------------------------------------------------------------------- struct RemoteStoragePublishedFileSubscribed_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 21 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 21 }; PublishedFileId_t m_nPublishedFileId; // The published file id AppId_t m_nAppID; // ID of the app that will consume this file. }; @@ -564,7 +536,7 @@ struct RemoteStoragePublishedFileSubscribed_t //----------------------------------------------------------------------------- struct RemoteStoragePublishedFileUnsubscribed_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 22 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 22 }; PublishedFileId_t m_nPublishedFileId; // The published file id AppId_t m_nAppID; // ID of the app that will consume this file. }; @@ -575,7 +547,7 @@ struct RemoteStoragePublishedFileUnsubscribed_t //----------------------------------------------------------------------------- struct RemoteStoragePublishedFileDeleted_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 23 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 23 }; PublishedFileId_t m_nPublishedFileId; // The published file id AppId_t m_nAppID; // ID of the app that will consume this file. }; @@ -586,7 +558,7 @@ struct RemoteStoragePublishedFileDeleted_t //----------------------------------------------------------------------------- struct RemoteStorageUpdateUserPublishedItemVoteResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 24 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 24 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; // The published file id }; @@ -597,7 +569,7 @@ struct RemoteStorageUpdateUserPublishedItemVoteResult_t //----------------------------------------------------------------------------- struct RemoteStorageUserVoteDetails_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 25 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 25 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; // The published file id EWorkshopVote m_eVote; // what the user voted @@ -605,7 +577,7 @@ struct RemoteStorageUserVoteDetails_t struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 26 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 26 }; EResult m_eResult; // The result of the operation. int32 m_nResultsReturned; int32 m_nTotalResultCount; @@ -614,7 +586,7 @@ struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t struct RemoteStorageSetUserPublishedFileActionResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 27 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 27 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; // The published file id EWorkshopFileAction m_eAction; // the action that was attempted @@ -622,7 +594,7 @@ struct RemoteStorageSetUserPublishedFileActionResult_t struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 28 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 28 }; EResult m_eResult; // The result of the operation. EWorkshopFileAction m_eAction; // the action that was filtered on int32 m_nResultsReturned; @@ -637,7 +609,7 @@ struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t //----------------------------------------------------------------------------- struct RemoteStoragePublishFileProgress_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 29 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 29 }; double m_dPercentFile; bool m_bPreview; }; @@ -648,7 +620,7 @@ struct RemoteStoragePublishFileProgress_t //----------------------------------------------------------------------------- struct RemoteStoragePublishedFileUpdated_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 30 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 30 }; PublishedFileId_t m_nPublishedFileId; // The published file id AppId_t m_nAppID; // ID of the app that will consume this file. uint64 m_ulUnused; // not used anymore @@ -659,7 +631,7 @@ struct RemoteStoragePublishedFileUpdated_t //----------------------------------------------------------------------------- struct RemoteStorageFileWriteAsyncComplete_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 31 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 31 }; EResult m_eResult; // result }; @@ -668,13 +640,21 @@ struct RemoteStorageFileWriteAsyncComplete_t //----------------------------------------------------------------------------- struct RemoteStorageFileReadAsyncComplete_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 32 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 32 }; SteamAPICall_t m_hFileReadAsync; // call handle of the async read which was made EResult m_eResult; // result uint32 m_nOffset; // offset in the file this read was at uint32 m_cubRead; // amount read - will the <= the amount requested }; +//----------------------------------------------------------------------------- +// Purpose: one or more files for this app have changed locally after syncing +// to remote session changes +// Note: only posted if this happens DURING the local app session +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( RemoteStorageLocalFileChange_t, k_iSteamRemoteStorageCallbacks + 33 ) +STEAM_CALLBACK_END( 0 ) + #pragma pack( pop ) diff --git a/lib/osx/include/steam/isteamscreenshots.h b/lib/osx/include/steam/isteamscreenshots.h index 6095705..1824268 100644 --- a/lib/osx/include/steam/isteamscreenshots.h +++ b/lib/osx/include/steam/isteamscreenshots.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" const uint32 k_nScreenshotMaxTaggedUsers = 32; const uint32 k_nScreenshotMaxTaggedPublishedFiles = 32; @@ -81,13 +81,17 @@ public: #define STEAMSCREENSHOTS_INTERFACE_VERSION "STEAMSCREENSHOTS_INTERFACE_VERSION003" +// Global interface accessor +inline ISteamScreenshots *SteamScreenshots(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamScreenshots *, SteamScreenshots, STEAMSCREENSHOTS_INTERFACE_VERSION ); + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- // Purpose: Screenshot successfully written or otherwise added to the library diff --git a/lib/osx/include/steam/isteamugc.h b/lib/osx/include/steam/isteamugc.h index 1827fc6..96e9b9d 100644 --- a/lib/osx/include/steam/isteamugc.h +++ b/lib/osx/include/steam/isteamugc.h @@ -10,7 +10,8 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" +#include "isteamremotestorage.h" // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -18,7 +19,7 @@ #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif @@ -46,7 +47,7 @@ enum EUGCMatchingUGCType k_EUGCMatchingUGCType_UsableInGame = 10, // ready-to-use items and integrated guides k_EUGCMatchingUGCType_ControllerBindings = 11, k_EUGCMatchingUGCType_GameManagedItems = 12, // game managed items (not managed by users) - k_EUGCMatchingUGCType_All = ~0, // return everything + k_EUGCMatchingUGCType_All = ~0, // @note: will only be valid for CreateQueryUserUGCRequest requests }; // Different lists of published UGC for a user. @@ -98,6 +99,7 @@ enum EUGCQuery k_EUGCQuery_RankedByLifetimeAveragePlaytime = 16, k_EUGCQuery_RankedByPlaytimeSessionsTrend = 17, k_EUGCQuery_RankedByLifetimePlaytimeSessions = 18, + k_EUGCQuery_RankedByLastUpdatedDate = 19, }; enum EItemUpdateStatus @@ -119,21 +121,24 @@ enum EItemState k_EItemStateNeedsUpdate = 8, // items needs an update. Either because it's not installed yet or creator updated content k_EItemStateDownloading = 16, // item update is currently downloading k_EItemStateDownloadPending = 32, // DownloadItem() was called for this item, content isn't available until DownloadItemResult_t is fired + k_EItemStateDisabledLocally = 64, // Item is disabled locally, so it shouldn't be considered subscribed }; enum EItemStatistic { - k_EItemStatistic_NumSubscriptions = 0, - k_EItemStatistic_NumFavorites = 1, - k_EItemStatistic_NumFollowers = 2, - k_EItemStatistic_NumUniqueSubscriptions = 3, - k_EItemStatistic_NumUniqueFavorites = 4, - k_EItemStatistic_NumUniqueFollowers = 5, - k_EItemStatistic_NumUniqueWebsiteViews = 6, - k_EItemStatistic_ReportScore = 7, - k_EItemStatistic_NumSecondsPlayed = 8, - k_EItemStatistic_NumPlaytimeSessions = 9, - k_EItemStatistic_NumComments = 10, + k_EItemStatistic_NumSubscriptions = 0, + k_EItemStatistic_NumFavorites = 1, + k_EItemStatistic_NumFollowers = 2, + k_EItemStatistic_NumUniqueSubscriptions = 3, + k_EItemStatistic_NumUniqueFavorites = 4, + k_EItemStatistic_NumUniqueFollowers = 5, + k_EItemStatistic_NumUniqueWebsiteViews = 6, + k_EItemStatistic_ReportScore = 7, + k_EItemStatistic_NumSecondsPlayed = 8, + k_EItemStatistic_NumPlaytimeSessions = 9, + k_EItemStatistic_NumComments = 10, + k_EItemStatistic_NumSecondsPlayedDuringTimePeriod = 11, + k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod = 12, }; enum EItemPreviewType @@ -150,9 +155,19 @@ enum EItemPreviewType // | |Dn | | // +---+---+---+---+ k_EItemPreviewType_EnvironmentMap_LatLong = 4, // standard image file expected + k_EItemPreviewType_Clip = 5, // clip id is stored k_EItemPreviewType_ReservedMax = 255, // you can specify your own types above this value }; +enum EUGCContentDescriptorID +{ + k_EUGCContentDescriptor_NudityOrSexualContent = 1, + k_EUGCContentDescriptor_FrequentViolenceOrGore = 2, + k_EUGCContentDescriptor_AdultOnlySexualContent = 3, + k_EUGCContentDescriptor_GratuitousSexualContent = 4, + k_EUGCContentDescriptor_AnyMatureContent = 5, +}; + const uint32 kNumUGCResultsPerPage = 50; const uint32 k_cchDeveloperMetadataMax = 5000; @@ -201,31 +216,46 @@ public: virtual UGCQueryHandle_t CreateQueryUserUGCRequest( AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ) = 0; // Query for all matching UGC. Creator app id or consumer app id must be valid and be set to the current running app. unPage should start at 1. + STEAM_FLAT_NAME( CreateQueryAllUGCRequestPage ) virtual UGCQueryHandle_t CreateQueryAllUGCRequest( EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ) = 0; + // Query for all matching UGC using the new deep paging interface. Creator app id or consumer app id must be valid and be set to the current running app. pchCursor should be set to NULL or "*" to get the first result set. + STEAM_FLAT_NAME( CreateQueryAllUGCRequestCursor ) + virtual UGCQueryHandle_t CreateQueryAllUGCRequest( EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, const char *pchCursor = NULL ) = 0; + // Query for the details of the given published file ids (the RequestUGCDetails call is deprecated and replaced with this) virtual UGCQueryHandle_t CreateQueryUGCDetailsRequest( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0; // Send the query to Steam - CALL_RESULT( SteamUGCQueryCompleted_t ) + STEAM_CALL_RESULT( SteamUGCQueryCompleted_t ) virtual SteamAPICall_t SendQueryUGCRequest( UGCQueryHandle_t handle ) = 0; // Retrieve an individual result after receiving the callback for querying UGC virtual bool GetQueryUGCResult( UGCQueryHandle_t handle, uint32 index, SteamUGCDetails_t *pDetails ) = 0; - virtual bool GetQueryUGCPreviewURL( UGCQueryHandle_t handle, uint32 index, OUT_STRING_COUNT(cchURLSize) char *pchURL, uint32 cchURLSize ) = 0; - virtual bool GetQueryUGCMetadata( UGCQueryHandle_t handle, uint32 index, OUT_STRING_COUNT(cchMetadatasize) char *pchMetadata, uint32 cchMetadatasize ) = 0; + virtual uint32 GetQueryUGCNumTags( UGCQueryHandle_t handle, uint32 index ) = 0; + virtual bool GetQueryUGCTag( UGCQueryHandle_t handle, uint32 index, uint32 indexTag, STEAM_OUT_STRING_COUNT( cchValueSize ) char* pchValue, uint32 cchValueSize ) = 0; + virtual bool GetQueryUGCTagDisplayName( UGCQueryHandle_t handle, uint32 index, uint32 indexTag, STEAM_OUT_STRING_COUNT( cchValueSize ) char* pchValue, uint32 cchValueSize ) = 0; + virtual bool GetQueryUGCPreviewURL( UGCQueryHandle_t handle, uint32 index, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchURL, uint32 cchURLSize ) = 0; + virtual bool GetQueryUGCMetadata( UGCQueryHandle_t handle, uint32 index, STEAM_OUT_STRING_COUNT(cchMetadatasize) char *pchMetadata, uint32 cchMetadatasize ) = 0; virtual bool GetQueryUGCChildren( UGCQueryHandle_t handle, uint32 index, PublishedFileId_t* pvecPublishedFileID, uint32 cMaxEntries ) = 0; virtual bool GetQueryUGCStatistic( UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 *pStatValue ) = 0; virtual uint32 GetQueryUGCNumAdditionalPreviews( UGCQueryHandle_t handle, uint32 index ) = 0; - virtual bool GetQueryUGCAdditionalPreview( UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, OUT_STRING_COUNT(cchURLSize) char *pchURLOrVideoID, uint32 cchURLSize, OUT_STRING_COUNT(cchURLSize) char *pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType *pPreviewType ) = 0; + virtual bool GetQueryUGCAdditionalPreview( UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchURLOrVideoID, uint32 cchURLSize, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType *pPreviewType ) = 0; virtual uint32 GetQueryUGCNumKeyValueTags( UGCQueryHandle_t handle, uint32 index ) = 0; - virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, OUT_STRING_COUNT(cchKeySize) char *pchKey, uint32 cchKeySize, OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; + virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, STEAM_OUT_STRING_COUNT(cchKeySize) char *pchKey, uint32 cchKeySize, STEAM_OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; + // Return the first value matching the pchKey. Note that a key may map to multiple values. Returns false if there was an error or no matching value was found. + STEAM_FLAT_NAME( GetQueryFirstUGCKeyValueTag ) + virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, const char *pchKey, STEAM_OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; + + virtual uint32 GetQueryUGCContentDescriptors( UGCQueryHandle_t handle, uint32 index, EUGCContentDescriptorID *pvecDescriptors, uint32 cMaxEntries ) = 0; + // Release the request to free up memory, after retrieving results virtual bool ReleaseQueryUGCRequest( UGCQueryHandle_t handle ) = 0; // Options to set for querying UGC virtual bool AddRequiredTag( UGCQueryHandle_t handle, const char *pTagName ) = 0; + virtual bool AddRequiredTagGroup( UGCQueryHandle_t handle, const SteamParamStringArray_t *pTagGroups ) = 0; // match any of the tags in this group virtual bool AddExcludedTag( UGCQueryHandle_t handle, const char *pTagName ) = 0; virtual bool SetReturnOnlyIDs( UGCQueryHandle_t handle, bool bReturnOnlyIDs ) = 0; virtual bool SetReturnKeyValueTags( UGCQueryHandle_t handle, bool bReturnKeyValueTags ) = 0; @@ -234,6 +264,7 @@ public: virtual bool SetReturnChildren( UGCQueryHandle_t handle, bool bReturnChildren ) = 0; virtual bool SetReturnAdditionalPreviews( UGCQueryHandle_t handle, bool bReturnAdditionalPreviews ) = 0; virtual bool SetReturnTotalOnly( UGCQueryHandle_t handle, bool bReturnTotalOnly ) = 0; + virtual bool SetReturnPlaytimeStats( UGCQueryHandle_t handle, uint32 unDays ) = 0; virtual bool SetLanguage( UGCQueryHandle_t handle, const char *pchLanguage ) = 0; virtual bool SetAllowCachedResponse( UGCQueryHandle_t handle, uint32 unMaxAgeSeconds ) = 0; @@ -244,13 +275,16 @@ public: virtual bool SetMatchAnyTag( UGCQueryHandle_t handle, bool bMatchAnyTag ) = 0; virtual bool SetSearchText( UGCQueryHandle_t handle, const char *pSearchText ) = 0; virtual bool SetRankedByTrendDays( UGCQueryHandle_t handle, uint32 unDays ) = 0; + virtual bool SetTimeCreatedDateRange( UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ) = 0; + virtual bool SetTimeUpdatedDateRange( UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ) = 0; virtual bool AddRequiredKeyValueTag( UGCQueryHandle_t handle, const char *pKey, const char *pValue ) = 0; // DEPRECATED - Use CreateQueryUGCDetailsRequest call above instead! + STEAM_CALL_RESULT( SteamUGCRequestUGCDetailsResult_t ) virtual SteamAPICall_t RequestUGCDetails( PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds ) = 0; // Steam Workshop Creator API - CALL_RESULT( CreateItemResult_t ) + STEAM_CALL_RESULT( CreateItemResult_t ) virtual SteamAPICall_t CreateItem( AppId_t nConsumerAppId, EWorkshopFileType eFileType ) = 0; // create new item for this app with no content attached yet virtual UGCUpdateHandle_t StartItemUpdate( AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID ) = 0; // start an UGC item update. Set changed properties before commiting update with CommitItemUpdate() @@ -260,9 +294,11 @@ public: virtual bool SetItemUpdateLanguage( UGCUpdateHandle_t handle, const char *pchLanguage ) = 0; // specify the language of the title or description that will be set virtual bool SetItemMetadata( UGCUpdateHandle_t handle, const char *pchMetaData ) = 0; // change the metadata of an UGC item (max = k_cchDeveloperMetadataMax) virtual bool SetItemVisibility( UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility ) = 0; // change the visibility of an UGC item - virtual bool SetItemTags( UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t *pTags ) = 0; // change the tags of an UGC item + virtual bool SetItemTags( UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t *pTags, bool bAllowAdminTags = false ) = 0; // change the tags of an UGC item virtual bool SetItemContent( UGCUpdateHandle_t handle, const char *pszContentFolder ) = 0; // update item content from this local folder virtual bool SetItemPreview( UGCUpdateHandle_t handle, const char *pszPreviewFile ) = 0; // change preview image file for this item. pszPreviewFile points to local image file, which must be under 1MB in size + virtual bool SetAllowLegacyUpload( UGCUpdateHandle_t handle, bool bAllowLegacyUpload ) = 0; // use legacy upload for a single small file. The parameter to SetItemContent() should either be a directory with one file or the full path to the file. The file must also be less than 10MB in size. + virtual bool RemoveAllItemKeyValueTags( UGCUpdateHandle_t handle ) = 0; // remove all existing key-value tags (you can add new ones via the AddItemKeyValueTag function) virtual bool RemoveItemKeyValueTags( UGCUpdateHandle_t handle, const char *pchKey ) = 0; // remove any existing key-value tags with the specified key virtual bool AddItemKeyValueTag( UGCUpdateHandle_t handle, const char *pchKey, const char *pchValue ) = 0; // add new key-value tags for the item. Note that there can be multiple values for a tag. virtual bool AddItemPreviewFile( UGCUpdateHandle_t handle, const char *pszPreviewFile, EItemPreviewType type ) = 0; // add preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size @@ -270,23 +306,25 @@ public: virtual bool UpdateItemPreviewFile( UGCUpdateHandle_t handle, uint32 index, const char *pszPreviewFile ) = 0; // updates an existing preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size virtual bool UpdateItemPreviewVideo( UGCUpdateHandle_t handle, uint32 index, const char *pszVideoID ) = 0; // updates an existing preview video for this item virtual bool RemoveItemPreview( UGCUpdateHandle_t handle, uint32 index ) = 0; // remove a preview by index starting at 0 (previews are sorted) + virtual bool AddContentDescriptor( UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ) = 0; + virtual bool RemoveContentDescriptor( UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ) = 0; - CALL_RESULT( SubmitItemUpdateResult_t ) + STEAM_CALL_RESULT( SubmitItemUpdateResult_t ) virtual SteamAPICall_t SubmitItemUpdate( UGCUpdateHandle_t handle, const char *pchChangeNote ) = 0; // commit update process started with StartItemUpdate() virtual EItemUpdateStatus GetItemUpdateProgress( UGCUpdateHandle_t handle, uint64 *punBytesProcessed, uint64* punBytesTotal ) = 0; // Steam Workshop Consumer API - CALL_RESULT( SetUserItemVoteResult_t ) + STEAM_CALL_RESULT( SetUserItemVoteResult_t ) virtual SteamAPICall_t SetUserItemVote( PublishedFileId_t nPublishedFileID, bool bVoteUp ) = 0; - CALL_RESULT( GetUserItemVoteResult_t ) + STEAM_CALL_RESULT( GetUserItemVoteResult_t ) virtual SteamAPICall_t GetUserItemVote( PublishedFileId_t nPublishedFileID ) = 0; - CALL_RESULT( UserFavoriteItemsListChanged_t ) + STEAM_CALL_RESULT( UserFavoriteItemsListChanged_t ) virtual SteamAPICall_t AddItemToFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID ) = 0; - CALL_RESULT( UserFavoriteItemsListChanged_t ) + STEAM_CALL_RESULT( UserFavoriteItemsListChanged_t ) virtual SteamAPICall_t RemoveItemFromFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID ) = 0; - CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) virtual SteamAPICall_t SubscribeItem( PublishedFileId_t nPublishedFileID ) = 0; // subscribe to this item, will be installed ASAP - CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) virtual SteamAPICall_t UnsubscribeItem( PublishedFileId_t nPublishedFileID ) = 0; // unsubscribe from this item, will be uninstalled after game quits virtual uint32 GetNumSubscribedItems() = 0; // number of subscribed items virtual uint32 GetSubscribedItems( PublishedFileId_t* pvecPublishedFileID, uint32 cMaxEntries ) = 0; // all subscribed item PublishFileIDs @@ -296,7 +334,7 @@ public: // get info about currently installed content on disc for items that have k_EItemStateInstalled set // if k_EItemStateLegacyItem is set, pchFolder contains the path to the legacy file itself (not a folder) - virtual bool GetItemInstallInfo( PublishedFileId_t nPublishedFileID, uint64 *punSizeOnDisk, OUT_STRING_COUNT( cchFolderSize ) char *pchFolder, uint32 cchFolderSize, uint32 *punTimeStamp ) = 0; + virtual bool GetItemInstallInfo( PublishedFileId_t nPublishedFileID, uint64 *punSizeOnDisk, STEAM_OUT_STRING_COUNT( cchFolderSize ) char *pchFolder, uint32 cchFolderSize, uint32 *punTimeStamp ) = 0; // get info about pending update for items that have k_EItemStateNeedsUpdate set. punBytesTotal will be valid after download started once virtual bool GetItemDownloadInfo( PublishedFileId_t nPublishedFileID, uint64 *punBytesDownloaded, uint64 *punBytesTotal ) = 0; @@ -314,27 +352,65 @@ public: virtual void SuspendDownloads( bool bSuspend ) = 0; // usage tracking - CALL_RESULT( StartPlaytimeTrackingResult_t ); + STEAM_CALL_RESULT( StartPlaytimeTrackingResult_t ) virtual SteamAPICall_t StartPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0; - CALL_RESULT( StopPlaytimeTrackingResult_t ); + STEAM_CALL_RESULT( StopPlaytimeTrackingResult_t ) virtual SteamAPICall_t StopPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0; - CALL_RESULT( StopPlaytimeTrackingResult_t ); + STEAM_CALL_RESULT( StopPlaytimeTrackingResult_t ) virtual SteamAPICall_t StopPlaytimeTrackingForAllItems() = 0; + + // parent-child relationship or dependency management + STEAM_CALL_RESULT( AddUGCDependencyResult_t ) + virtual SteamAPICall_t AddDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ) = 0; + STEAM_CALL_RESULT( RemoveUGCDependencyResult_t ) + virtual SteamAPICall_t RemoveDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ) = 0; + + // add/remove app dependence/requirements (usually DLC) + STEAM_CALL_RESULT( AddAppDependencyResult_t ) + virtual SteamAPICall_t AddAppDependency( PublishedFileId_t nPublishedFileID, AppId_t nAppID ) = 0; + STEAM_CALL_RESULT( RemoveAppDependencyResult_t ) + virtual SteamAPICall_t RemoveAppDependency( PublishedFileId_t nPublishedFileID, AppId_t nAppID ) = 0; + // request app dependencies. note that whatever callback you register for GetAppDependenciesResult_t may be called multiple times + // until all app dependencies have been returned + STEAM_CALL_RESULT( GetAppDependenciesResult_t ) + virtual SteamAPICall_t GetAppDependencies( PublishedFileId_t nPublishedFileID ) = 0; + + // delete the item without prompting the user + STEAM_CALL_RESULT( DeleteItemResult_t ) + virtual SteamAPICall_t DeleteItem( PublishedFileId_t nPublishedFileID ) = 0; + + // Show the app's latest Workshop EULA to the user in an overlay window, where they can accept it or not + virtual bool ShowWorkshopEULA() = 0; + // Retrieve information related to the user's acceptance or not of the app's specific Workshop EULA + STEAM_CALL_RESULT( WorkshopEULAStatus_t ) + virtual SteamAPICall_t GetWorkshopEULAStatus() = 0; + + // Return the user's community content descriptor preferences + virtual uint32 GetUserContentDescriptorPreferences( EUGCContentDescriptorID *pvecDescriptors, uint32 cMaxEntries ) = 0; }; -#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION009" +#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION018" + +// Global interface accessor +inline ISteamUGC *SteamUGC(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamUGC *, SteamUGC, STEAMUGC_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamUGC *SteamGameServerUGC(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamUGC *, SteamGameServerUGC, STEAMUGC_INTERFACE_VERSION ); //----------------------------------------------------------------------------- // Purpose: Callback for querying UGC //----------------------------------------------------------------------------- struct SteamUGCQueryCompleted_t { - enum { k_iCallback = k_iClientUGCCallbacks + 1 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 1 }; UGCQueryHandle_t m_handle; EResult m_eResult; uint32 m_unNumResultsReturned; uint32 m_unTotalMatchingResults; bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache + char m_rgchNextCursor[k_cchPublishedFileURLMax]; // If a paging cursor was used, then this will be the next cursor to get the next result set. }; @@ -343,7 +419,7 @@ struct SteamUGCQueryCompleted_t //----------------------------------------------------------------------------- struct SteamUGCRequestUGCDetailsResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 2 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 2 }; SteamUGCDetails_t m_details; bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache }; @@ -354,7 +430,7 @@ struct SteamUGCRequestUGCDetailsResult_t //----------------------------------------------------------------------------- struct CreateItemResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 3 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 3 }; EResult m_eResult; PublishedFileId_t m_nPublishedFileId; // new item got this UGC PublishFileID bool m_bUserNeedsToAcceptWorkshopLegalAgreement; @@ -366,9 +442,10 @@ struct CreateItemResult_t //----------------------------------------------------------------------------- struct SubmitItemUpdateResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 4 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 4 }; EResult m_eResult; bool m_bUserNeedsToAcceptWorkshopLegalAgreement; + PublishedFileId_t m_nPublishedFileId; }; @@ -377,7 +454,7 @@ struct SubmitItemUpdateResult_t //----------------------------------------------------------------------------- struct ItemInstalled_t { - enum { k_iCallback = k_iClientUGCCallbacks + 5 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 5 }; AppId_t m_unAppID; PublishedFileId_t m_nPublishedFileId; }; @@ -388,7 +465,7 @@ struct ItemInstalled_t //----------------------------------------------------------------------------- struct DownloadItemResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 6 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 6 }; AppId_t m_unAppID; PublishedFileId_t m_nPublishedFileId; EResult m_eResult; @@ -399,7 +476,7 @@ struct DownloadItemResult_t //----------------------------------------------------------------------------- struct UserFavoriteItemsListChanged_t { - enum { k_iCallback = k_iClientUGCCallbacks + 7 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 7 }; PublishedFileId_t m_nPublishedFileId; EResult m_eResult; bool m_bWasAddRequest; @@ -410,7 +487,7 @@ struct UserFavoriteItemsListChanged_t //----------------------------------------------------------------------------- struct SetUserItemVoteResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 8 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 8 }; PublishedFileId_t m_nPublishedFileId; EResult m_eResult; bool m_bVoteUp; @@ -421,7 +498,7 @@ struct SetUserItemVoteResult_t //----------------------------------------------------------------------------- struct GetUserItemVoteResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 9 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 9 }; PublishedFileId_t m_nPublishedFileId; EResult m_eResult; bool m_bVotedUp; @@ -434,7 +511,7 @@ struct GetUserItemVoteResult_t //----------------------------------------------------------------------------- struct StartPlaytimeTrackingResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 10 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 10 }; EResult m_eResult; }; @@ -443,10 +520,103 @@ struct StartPlaytimeTrackingResult_t //----------------------------------------------------------------------------- struct StopPlaytimeTrackingResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 11 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 11 }; EResult m_eResult; }; +//----------------------------------------------------------------------------- +// Purpose: The result of a call to AddDependency +//----------------------------------------------------------------------------- +struct AddUGCDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 12 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + PublishedFileId_t m_nChildPublishedFileId; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to RemoveDependency +//----------------------------------------------------------------------------- +struct RemoveUGCDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 13 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + PublishedFileId_t m_nChildPublishedFileId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to AddAppDependency +//----------------------------------------------------------------------------- +struct AddAppDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 14 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + AppId_t m_nAppID; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to RemoveAppDependency +//----------------------------------------------------------------------------- +struct RemoveAppDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 15 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + AppId_t m_nAppID; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to GetAppDependencies. Callback may be called +// multiple times until all app dependencies have been returned. +//----------------------------------------------------------------------------- +struct GetAppDependenciesResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 16 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + AppId_t m_rgAppIDs[32]; + uint32 m_nNumAppDependencies; // number returned in this struct + uint32 m_nTotalNumAppDependencies; // total found +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to DeleteItem +//----------------------------------------------------------------------------- +struct DeleteItemResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 17 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: signal that the list of subscribed items changed +//----------------------------------------------------------------------------- +struct UserSubscribedItemsListChanged_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 18 }; + AppId_t m_nAppID; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Status of the user's acceptable/rejection of the app's specific Workshop EULA +//----------------------------------------------------------------------------- +struct WorkshopEULAStatus_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 20 }; + EResult m_eResult; + AppId_t m_nAppID; + uint32 m_unVersion; + RTime32 m_rtAction; + bool m_bAccepted; + bool m_bNeedsAction; +}; #pragma pack( pop ) diff --git a/lib/osx/include/steam/isteamunifiedmessages.h b/lib/osx/include/steam/isteamunifiedmessages.h deleted file mode 100644 index 684f4e8..0000000 --- a/lib/osx/include/steam/isteamunifiedmessages.h +++ /dev/null @@ -1,63 +0,0 @@ -//====== Copyright � 1996-2007, Valve Corporation, All rights reserved. ======= -// -// Purpose: Interface to unified messages client -// -// You should not need to use this interface except if your product is using a language other than C++. -// Contact your Steam Tech contact for more details. -// -//============================================================================= - -#ifndef ISTEAMUNIFIEDMESSAGES_H -#define ISTEAMUNIFIEDMESSAGES_H -#ifdef _WIN32 -#pragma once -#endif - -typedef uint64 ClientUnifiedMessageHandle; - -class ISteamUnifiedMessages -{ -public: - static const ClientUnifiedMessageHandle k_InvalidUnifiedMessageHandle = 0; - - // Sends a service method (in binary serialized form) using the Steam Client. - // Returns a unified message handle (k_InvalidUnifiedMessageHandle if could not send the message). - virtual ClientUnifiedMessageHandle SendMethod( const char *pchServiceMethod, const void *pRequestBuffer, uint32 unRequestBufferSize, uint64 unContext ) = 0; - - // Gets the size of the response and the EResult. Returns false if the response is not ready yet. - virtual bool GetMethodResponseInfo( ClientUnifiedMessageHandle hHandle, uint32 *punResponseSize, EResult *peResult ) = 0; - - // Gets a response in binary serialized form (and optionally release the corresponding allocated memory). - virtual bool GetMethodResponseData( ClientUnifiedMessageHandle hHandle, void *pResponseBuffer, uint32 unResponseBufferSize, bool bAutoRelease ) = 0; - - // Releases the message and its corresponding allocated memory. - virtual bool ReleaseMethod( ClientUnifiedMessageHandle hHandle ) = 0; - - // Sends a service notification (in binary serialized form) using the Steam Client. - // Returns true if the notification was sent successfully. - virtual bool SendNotification( const char *pchServiceNotification, const void *pNotificationBuffer, uint32 unNotificationBufferSize ) = 0; -}; - -#define STEAMUNIFIEDMESSAGES_INTERFACE_VERSION "STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001" - -// callbacks -#if defined( VALVE_CALLBACK_PACK_SMALL ) -#pragma pack( push, 4 ) -#elif defined( VALVE_CALLBACK_PACK_LARGE ) -#pragma pack( push, 8 ) -#else -#error isteamclient.h must be included -#endif - -struct SteamUnifiedMessagesSendMethodResult_t -{ - enum { k_iCallback = k_iClientUnifiedMessagesCallbacks + 1 }; - ClientUnifiedMessageHandle m_hHandle; // The handle returned by SendMethod(). - uint64 m_unContext; // Context provided when calling SendMethod(). - EResult m_eResult; // The result of the method call. - uint32 m_unResponseSize; // The size of the response. -}; - -#pragma pack( pop ) - -#endif // ISTEAMUNIFIEDMESSAGES_H diff --git a/lib/osx/include/steam/isteamuser.h b/lib/osx/include/steam/isteamuser.h index f97a057..182f02e 100644 --- a/lib/osx/include/steam/isteamuser.h +++ b/lib/osx/include/steam/isteamuser.h @@ -10,26 +10,7 @@ #pragma once #endif -#include "isteamclient.h" - -// structure that contains client callback data -// see callbacks documentation for more details -#if defined( VALVE_CALLBACK_PACK_SMALL ) -#pragma pack( push, 4 ) -#elif defined( VALVE_CALLBACK_PACK_LARGE ) -#pragma pack( push, 8 ) -#else -#error isteamclient.h must be included -#endif -struct CallbackMsg_t -{ - HSteamUser m_hSteamUser; - int m_iCallback; - uint8 *m_pubParam; - int m_cubParam; -}; -#pragma pack( pop ) - +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: Functions for accessing and manipulating a steam account @@ -66,11 +47,17 @@ public: // // return value - returns the number of bytes written to pBlob. If the return is 0, then the buffer passed in was too small, and the call has failed // The contents of pBlob should then be sent to the game server, for it to use to complete the authentication process. - virtual int InitiateGameConnection( void *pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure ) = 0; + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual int InitiateGameConnection_DEPRECATED( void *pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure ) = 0; // notify of disconnect // needs to occur when the game client leaves the specified game server, needs to match with the InitiateGameConnection() call - virtual void TerminateGameConnection( uint32 unIPServer, uint16 usPortServer ) = 0; + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual void TerminateGameConnection_DEPRECATED( uint32 unIPServer, uint16 usPortServer ) = 0; // Legacy functions @@ -89,41 +76,64 @@ public: // k_eVoiceResultNotRecording virtual void StopVoiceRecording( ) = 0; - // Determine the amount of captured audio data that is available in bytes. - // This provides both the compressed and uncompressed data. Please note that the uncompressed - // data is not the raw feed from the microphone: data may only be available if audible - // levels of speech are detected. - // nUncompressedVoiceDesiredSampleRate is necessary to know the number of bytes to return in pcbUncompressed - can be set to 0 if you don't need uncompressed (the usual case) - // If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nUncompressedVoiceDesiredSampleRate - virtual EVoiceResult GetAvailableVoice( uint32 *pcbCompressed, uint32 *pcbUncompressed, uint32 nUncompressedVoiceDesiredSampleRate ) = 0; + // Determine the size of captured audio data that is available from GetVoice. + // Most applications will only use compressed data and should ignore the other + // parameters, which exist primarily for backwards compatibility. See comments + // below for further explanation of "uncompressed" data. + virtual EVoiceResult GetAvailableVoice( uint32 *pcbCompressed, uint32 *pcbUncompressed_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 ) = 0; - // Gets the latest voice data from the microphone. Compressed data is an arbitrary format, and is meant to be handed back to - // DecompressVoice() for playback later as a binary blob. Uncompressed data is 16-bit, signed integer, 11025Hz PCM format. - // Please note that the uncompressed data is not the raw feed from the microphone: data may only be available if audible - // levels of speech are detected, and may have passed through denoising filters, etc. - // This function should be called as often as possible once recording has started; once per frame at least. - // nBytesWritten is set to the number of bytes written to pDestBuffer. - // nUncompressedBytesWritten is set to the number of bytes written to pUncompressedDestBuffer. - // You must grab both compressed and uncompressed here at the same time, if you want both. - // Matching data that is not read during this call will be thrown away. - // GetAvailableVoice() can be used to determine how much data is actually available. - // If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nUncompressedVoiceDesiredSampleRate - virtual EVoiceResult GetVoice( bool bWantCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, bool bWantUncompressed, void *pUncompressedDestBuffer, uint32 cbUncompressedDestBufferSize, uint32 *nUncompressBytesWritten, uint32 nUncompressedVoiceDesiredSampleRate ) = 0; + // --------------------------------------------------------------------------- + // NOTE: "uncompressed" audio is a deprecated feature and should not be used + // by most applications. It is raw single-channel 16-bit PCM wave data which + // may have been run through preprocessing filters and/or had silence removed, + // so the uncompressed audio could have a shorter duration than you expect. + // There may be no data at all during long periods of silence. Also, fetching + // uncompressed audio will cause GetVoice to discard any leftover compressed + // audio, so you must fetch both types at once. Finally, GetAvailableVoice is + // not precisely accurate when the uncompressed size is requested. So if you + // really need to use uncompressed audio, you should call GetVoice frequently + // with two very large (20kb+) output buffers instead of trying to allocate + // perfectly-sized buffers. But most applications should ignore all of these + // details and simply leave the "uncompressed" parameters as NULL/zero. + // --------------------------------------------------------------------------- - // Decompresses a chunk of compressed data produced by GetVoice(). - // nBytesWritten is set to the number of bytes written to pDestBuffer unless the return value is k_EVoiceResultBufferTooSmall. - // In that case, nBytesWritten is set to the size of the buffer required to decompress the given - // data. The suggested buffer size for the destination buffer is 22 kilobytes. - // The output format of the data is 16-bit signed at the requested samples per second. - // If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nDesiredSampleRate + // Read captured audio data from the microphone buffer. This should be called + // at least once per frame, and preferably every few milliseconds, to keep the + // microphone input delay as low as possible. Most applications will only use + // compressed data and should pass NULL/zero for the "uncompressed" parameters. + // Compressed data can be transmitted by your application and decoded into raw + // using the DecompressVoice function below. + virtual EVoiceResult GetVoice( bool bWantCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, bool bWantUncompressed_Deprecated = false, void *pUncompressedDestBuffer_Deprecated = 0, uint32 cbUncompressedDestBufferSize_Deprecated = 0, uint32 *nUncompressBytesWritten_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 ) = 0; + + // Decodes the compressed voice data returned by GetVoice. The output data is + // raw single-channel 16-bit PCM audio. The decoder supports any sample rate + // from 11025 to 48000; see GetVoiceOptimalSampleRate() below for details. + // If the output buffer is not large enough, then *nBytesWritten will be set + // to the required buffer size, and k_EVoiceResultBufferTooSmall is returned. + // It is suggested to start with a 20kb buffer and reallocate as necessary. virtual EVoiceResult DecompressVoice( const void *pCompressed, uint32 cbCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, uint32 nDesiredSampleRate ) = 0; - // This returns the frequency of the voice data as it's stored internally; calling DecompressVoice() with this size will yield the best results + // This returns the native sample rate of the Steam voice decompressor; using + // this sample rate for DecompressVoice will perform the least CPU processing. + // However, the final audio quality will depend on how well the audio device + // (and/or your application's audio output SDK) deals with lower sample rates. + // You may find that you get the best audio output quality when you ignore + // this function and use the native sample rate of your audio output device, + // which is usually 48000 or 44100. virtual uint32 GetVoiceOptimalSampleRate() = 0; // Retrieve ticket to be sent to the entity who wishes to authenticate you. // pcbTicket retrieves the length of the actual ticket. - virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket ) = 0; + // SteamNetworkingIdentity is an optional input parameter to hold the public IP address or SteamID of the entity you are connecting to + // if an IP address is passed Steam will only allow the ticket to be used by an entity with that IP address + // if a Steam ID is passed Steam will only allow the ticket to be used by that Steam ID + // not to be used for "ISteamUserAuth\AuthenticateUserTicket" - it will fail + virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket, const SteamNetworkingIdentity *pSteamNetworkingIdentity ) = 0; + + // Request a ticket which will be used for webapi "ISteamUserAuth\AuthenticateUserTicket" + // pchIdentity is an optional input parameter to identify the service the ticket will be sent to + // the ticket will be returned in callback GetTicketForWebApiResponse_t + virtual HAuthTicket GetAuthTicketForWebApi( const char *pchIdentity ) = 0; // Authenticate ticket from entity steamID to be sure it is valid and isnt reused // Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse ) @@ -151,10 +161,15 @@ public: // Requests a ticket encrypted with an app specific shared key // pDataToInclude, cbDataToInclude will be encrypted into the ticket // ( This is asynchronous, you must wait for the ticket to be completed by the server ) - CALL_RESULT( EncryptedAppTicketResponse_t ) + STEAM_CALL_RESULT( EncryptedAppTicketResponse_t ) virtual SteamAPICall_t RequestEncryptedAppTicket( void *pDataToInclude, int cbDataToInclude ) = 0; - // retrieve a finished ticket + // Retrieves a finished ticket. + // If no ticket is available, or your buffer is too small, returns false. + // Upon exit, *pcbTicket will be either the size of the ticket copied into your buffer + // (if true was returned), or the size needed (if false was returned). To determine the + // proper size of the ticket, you can pass pTicket=NULL and cbMaxTicket=0; if a ticket + // is available, *pcbTicket will contain the size needed, otherwise it will be zero. virtual bool GetEncryptedAppTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket ) = 0; // Trading Card badges data access @@ -175,7 +190,7 @@ public: // or else immediately navigate to the result URL using a hidden browser window. // NOTE 2: The resulting authorization cookie has an expiration time of one day, // so it would be a good idea to request and visit a new auth URL every 12 hours. - CALL_RESULT( StoreAuthURLResponse_t ) + STEAM_CALL_RESULT( StoreAuthURLResponse_t ) virtual SteamAPICall_t RequestStoreAuthURL( const char *pchRedirectURL ) = 0; // gets whether the users phone number is verified @@ -190,10 +205,25 @@ public: // gets whether the users phone number is awaiting (re)verification virtual bool BIsPhoneRequiringVerification() = 0; + STEAM_CALL_RESULT( MarketEligibilityResponse_t ) + virtual SteamAPICall_t GetMarketEligibility() = 0; + + // Retrieves anti indulgence / duration control for current user + STEAM_CALL_RESULT( DurationControl_t ) + virtual SteamAPICall_t GetDurationControl() = 0; + + // Advise steam china duration control system about the online state of the game. + // This will prevent offline gameplay time from counting against a user's + // playtime limits. + virtual bool BSetDurationControlOnlineState( EDurationControlOnlineState eNewState ) = 0; + }; -#define STEAMUSER_INTERFACE_VERSION "SteamUser019" +#define STEAMUSER_INTERFACE_VERSION "SteamUser023" +// Global interface accessor +inline ISteamUser *SteamUser(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamUser *, SteamUser, STEAMUSER_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -201,15 +231,16 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif + //----------------------------------------------------------------------------- -// Purpose: called when a connections to the Steam back-end has been established -// this means the Steam client now has a working connection to the Steam servers -// usually this will have occurred before the game has launched, and should +// Purpose: Called when an authenticated connection to the Steam back-end has been established. +// This means the Steam client now has a working connection to the Steam servers. +// Usually this will have occurred before the game has launched, and should // only be seen if the user has dropped connection due to a networking issue -// or a Steam server update +// or a Steam server update. //----------------------------------------------------------------------------- struct SteamServersConnected_t { @@ -329,7 +360,6 @@ struct GetAuthSessionTicketResponse_t EResult m_eResult; }; - //----------------------------------------------------------------------------- // Purpose: sent to your game in response to a steam://gamewebcallback/ command //----------------------------------------------------------------------------- @@ -349,6 +379,60 @@ struct StoreAuthURLResponse_t }; +//----------------------------------------------------------------------------- +// Purpose: sent in response to ISteamUser::GetMarketEligibility +//----------------------------------------------------------------------------- +struct MarketEligibilityResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 66 }; + bool m_bAllowed; + EMarketNotAllowedReasonFlags m_eNotAllowedReason; + RTime32 m_rtAllowedAtTime; + + int m_cdaySteamGuardRequiredDays; // The number of days any user is required to have had Steam Guard before they can use the market + int m_cdayNewDeviceCooldown; // The number of days after initial device authorization a user must wait before using the market on that device +}; + + +//----------------------------------------------------------------------------- +// Purpose: sent for games with enabled anti indulgence / duration control, for +// enabled users. Lets the game know whether the user can keep playing or +// whether the game should exit, and returns info about remaining gameplay time. +// +// This callback is fired asynchronously in response to timers triggering. +// It is also fired in response to calls to GetDurationControl(). +//----------------------------------------------------------------------------- +struct DurationControl_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 67 }; + + EResult m_eResult; // result of call (always k_EResultOK for asynchronous timer-based notifications) + AppId_t m_appid; // appid generating playtime + + bool m_bApplicable; // is duration control applicable to user + game combination + int32 m_csecsLast5h; // playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + + EDurationControlProgress m_progress; // recommended progress (either everything is fine, or please exit game) + EDurationControlNotification m_notification; // notification to show, if any (always k_EDurationControlNotification_None for API calls) + + int32 m_csecsToday; // playtime on current calendar day + int32 m_csecsRemaining; // playtime remaining until the user hits a regulatory limit +}; + + +//----------------------------------------------------------------------------- +// callback for GetTicketForWebApi +//----------------------------------------------------------------------------- +struct GetTicketForWebApiResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 68 }; + HAuthTicket m_hAuthTicket; + EResult m_eResult; + int m_cubTicket; + static const int k_nCubTicketMaxLength = 2560; + uint8 m_rgubTicket[k_nCubTicketMaxLength]; +}; + #pragma pack( pop ) diff --git a/lib/osx/include/steam/isteamuserstats.h b/lib/osx/include/steam/isteamuserstats.h index 29ae38b..8bb0c90 100644 --- a/lib/osx/include/steam/isteamuserstats.h +++ b/lib/osx/include/steam/isteamuserstats.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" #include "isteamremotestorage.h" // size limit on stat or achievement name (UTF-8 encoded) @@ -67,7 +67,7 @@ enum ELeaderboardUploadScoreMethod #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct LeaderboardEntry_t @@ -89,16 +89,23 @@ class ISteamUserStats { public: // Ask the server to send down this user's data and achievements for this game - CALL_BACK( UserStatsReceived_t ) + STEAM_CALL_BACK( UserStatsReceived_t ) virtual bool RequestCurrentStats() = 0; // Data accessors + STEAM_FLAT_NAME( GetStatInt32 ) virtual bool GetStat( const char *pchName, int32 *pData ) = 0; + + STEAM_FLAT_NAME( GetStatFloat ) virtual bool GetStat( const char *pchName, float *pData ) = 0; // Set / update data + STEAM_FLAT_NAME( SetStatInt32 ) virtual bool SetStat( const char *pchName, int32 nData ) = 0; + + STEAM_FLAT_NAME( SetStatFloat ) virtual bool SetStat( const char *pchName, float fData ) = 0; + virtual bool UpdateAvgRateStat( const char *pchName, float flCountThisSession, double dSessionLength ) = 0; // Achievement flag accessors @@ -149,12 +156,16 @@ public: // returns a UserStatsReceived_t received when completed // if the other user has no stats, UserStatsReceived_t.m_eResult will be set to k_EResultFail // these stats won't be auto-updated; you'll need to call RequestUserStats() again to refresh any data - CALL_RESULT( UserStatsReceived_t ) + STEAM_CALL_RESULT( UserStatsReceived_t ) virtual SteamAPICall_t RequestUserStats( CSteamID steamIDUser ) = 0; // requests stat information for a user, usable after a successful call to RequestUserStats() + STEAM_FLAT_NAME( GetUserStatInt32 ) virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, int32 *pData ) = 0; + + STEAM_FLAT_NAME( GetUserStatFloat ) virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, float *pData ) = 0; + virtual bool GetUserAchievement( CSteamID steamIDUser, const char *pchName, bool *pbAchieved ) = 0; // See notes for GetAchievementAndUnlockTime above virtual bool GetUserAchievementAndUnlockTime( CSteamID steamIDUser, const char *pchName, bool *pbAchieved, uint32 *punUnlockTime ) = 0; @@ -166,12 +177,12 @@ public: // asks the Steam back-end for a leaderboard by name, and will create it if it's not yet // This call is asynchronous, with the result returned in LeaderboardFindResult_t - CALL_RESULT(LeaderboardFindResult_t) + STEAM_CALL_RESULT(LeaderboardFindResult_t) virtual SteamAPICall_t FindOrCreateLeaderboard( const char *pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType ) = 0; // as above, but won't create the leaderboard if it's not found // This call is asynchronous, with the result returned in LeaderboardFindResult_t - CALL_RESULT( LeaderboardFindResult_t ) + STEAM_CALL_RESULT( LeaderboardFindResult_t ) virtual SteamAPICall_t FindLeaderboard( const char *pchLeaderboardName ) = 0; // returns the name of a leaderboard @@ -194,15 +205,14 @@ public: // k_ELeaderboardDataRequestGlobalAroundUser requests rows around the current user, nRangeStart being negate // e.g. DownloadLeaderboardEntries( hLeaderboard, k_ELeaderboardDataRequestGlobalAroundUser, -3, 3 ) will return 7 rows, 3 before the user, 3 after // k_ELeaderboardDataRequestFriends requests all the rows for friends of the current user - CALL_RESULT( LeaderboardScoresDownloaded_t ) + STEAM_CALL_RESULT( LeaderboardScoresDownloaded_t ) virtual SteamAPICall_t DownloadLeaderboardEntries( SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd ) = 0; // as above, but downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers // if a user doesn't have a leaderboard entry, they won't be included in the result // a max of 100 users can be downloaded at a time, with only one outstanding call at a time - METHOD_DESC(Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers) - CALL_RESULT( LeaderboardScoresDownloaded_t ) + STEAM_CALL_RESULT( LeaderboardScoresDownloaded_t ) virtual SteamAPICall_t DownloadLeaderboardEntriesForUsers( SteamLeaderboard_t hSteamLeaderboard, - ARRAY_COUNT_D(cUsers, Array of users to retrieve) CSteamID *prgUsers, int cUsers ) = 0; + STEAM_ARRAY_COUNT_D(cUsers, Array of users to retrieve) CSteamID *prgUsers, int cUsers ) = 0; // Returns data about a single leaderboard entry // use a for loop from 0 to LeaderboardScoresDownloaded_t::m_cEntryCount to get all the downloaded entries @@ -224,24 +234,24 @@ public: // This call is asynchronous, with the result returned in LeaderboardScoreUploaded_t // Details are extra game-defined information regarding how the user got that score // pScoreDetails points to an array of int32's, cScoreDetailsCount is the number of int32's in the list - CALL_RESULT( LeaderboardScoreUploaded_t ) + STEAM_CALL_RESULT( LeaderboardScoreUploaded_t ) virtual SteamAPICall_t UploadLeaderboardScore( SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32 *pScoreDetails, int cScoreDetailsCount ) = 0; // Attaches a piece of user generated content the user's entry on a leaderboard. // hContent is a handle to a piece of user generated content that was shared using ISteamUserRemoteStorage::FileShare(). // This call is asynchronous, with the result returned in LeaderboardUGCSet_t. - CALL_RESULT( LeaderboardUGCSet_t ) + STEAM_CALL_RESULT( LeaderboardUGCSet_t ) virtual SteamAPICall_t AttachLeaderboardUGC( SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC ) = 0; // Retrieves the number of players currently playing your game (online + offline) // This call is asynchronous, with the result returned in NumberOfCurrentPlayers_t - CALL_RESULT( NumberOfCurrentPlayers_t ) + STEAM_CALL_RESULT( NumberOfCurrentPlayers_t ) virtual SteamAPICall_t GetNumberOfCurrentPlayers() = 0; // Requests that Steam fetch data on the percentage of players who have received each achievement // for the game globally. // This call is asynchronous, with the result returned in GlobalAchievementPercentagesReady_t. - CALL_RESULT( GlobalAchievementPercentagesReady_t ) + STEAM_CALL_RESULT( GlobalAchievementPercentagesReady_t ) virtual SteamAPICall_t RequestGlobalAchievementPercentages() = 0; // Get the info on the most achieved achievement for the game, returns an iterator index you can use to fetch @@ -261,42 +271,43 @@ public: // This call is asynchronous, with the results returned in GlobalStatsReceived_t. // nHistoryDays specifies how many days of day-by-day history to retrieve in addition // to the overall totals. The limit is 60. - CALL_RESULT( GlobalStatsReceived_t ) + STEAM_CALL_RESULT( GlobalStatsReceived_t ) virtual SteamAPICall_t RequestGlobalStats( int nHistoryDays ) = 0; // Gets the lifetime totals for an aggregated stat + STEAM_FLAT_NAME( GetGlobalStatInt64 ) virtual bool GetGlobalStat( const char *pchStatName, int64 *pData ) = 0; + + STEAM_FLAT_NAME( GetGlobalStatDouble ) virtual bool GetGlobalStat( const char *pchStatName, double *pData ) = 0; // Gets history for an aggregated stat. pData will be filled with daily values, starting with today. // So when called, pData[0] will be today, pData[1] will be yesterday, and pData[2] will be two days ago, // etc. cubData is the size in bytes of the pubData buffer. Returns the number of // elements actually set. - virtual int32 GetGlobalStatHistory( const char *pchStatName, ARRAY_COUNT(cubData) int64 *pData, uint32 cubData ) = 0; - virtual int32 GetGlobalStatHistory( const char *pchStatName, ARRAY_COUNT(cubData) double *pData, uint32 cubData ) = 0; -#ifdef _PS3 - // Call to kick off installation of the PS3 trophies. This call is asynchronous, and the results will be returned in a PS3TrophiesInstalled_t - // callback. - virtual bool InstallPS3Trophies() = 0; + STEAM_FLAT_NAME( GetGlobalStatHistoryInt64 ) + virtual int32 GetGlobalStatHistory( const char *pchStatName, STEAM_ARRAY_COUNT(cubData) int64 *pData, uint32 cubData ) = 0; - // Returns the amount of space required at boot to install trophies. This value can be used when comparing the amount of space needed - // by the game to the available space value passed to the game at boot. The value is set during InstallPS3Trophies(). - virtual uint64 GetTrophySpaceRequiredBeforeInstall() = 0; + STEAM_FLAT_NAME( GetGlobalStatHistoryDouble ) + virtual int32 GetGlobalStatHistory( const char *pchStatName, STEAM_ARRAY_COUNT(cubData) double *pData, uint32 cubData ) = 0; - // On PS3, user stats & achievement progress through Steam must be stored with the user's saved game data. - // At startup, before calling RequestCurrentStats(), you must pass the user's stats data to Steam via this method. - // If you do not have any user data, call this function with pvData = NULL and cubData = 0 - virtual bool SetUserStatsData( const void *pvData, uint32 cubData ) = 0; + // For achievements that have related Progress stats, use this to query what the bounds of that progress are. + // You may want this info to selectively call IndicateAchievementProgress when appropriate milestones of progress + // have been made, to show a progress notification to the user. + STEAM_FLAT_NAME( GetAchievementProgressLimitsInt32 ) + virtual bool GetAchievementProgressLimits( const char *pchName, int32 *pnMinProgress, int32 *pnMaxProgress ) = 0; + + STEAM_FLAT_NAME( GetAchievementProgressLimitsFloat ) + virtual bool GetAchievementProgressLimits( const char *pchName, float *pfMinProgress, float *pfMaxProgress ) = 0; - // Call to get the user's current stats data. You should retrieve this data after receiving successful UserStatsReceived_t & UserStatsStored_t - // callbacks, and store the data with the user's save game data. You can call this method with pvData = NULL and cubData = 0 to get the required - // buffer size. - virtual bool GetUserStatsData( void *pvData, uint32 cubData, uint32 *pcubWritten ) = 0; -#endif }; -#define STEAMUSERSTATS_INTERFACE_VERSION "STEAMUSERSTATS_INTERFACE_VERSION011" +#define STEAMUSERSTATS_INTERFACE_VERSION "STEAMUSERSTATS_INTERFACE_VERSION012" + +// Global interface accessor +inline ISteamUserStats *SteamUserStats(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamUserStats *, SteamUserStats, STEAMUSERSTATS_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -304,7 +315,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- diff --git a/lib/osx/include/steam/isteamutils.h b/lib/osx/include/steam/isteamutils.h index aaf839f..be5acb2 100644 --- a/lib/osx/include/steam/isteamutils.h +++ b/lib/osx/include/steam/isteamutils.h @@ -6,11 +6,8 @@ #ifndef ISTEAMUTILS_H #define ISTEAMUTILS_H -#ifdef _WIN32 -#pragma once -#endif -#include "isteamclient.h" +#include "steam_api_common.h" // Steam API call failure results @@ -41,12 +38,24 @@ enum EGamepadTextInputLineMode k_EGamepadTextInputLineModeMultipleLines = 1 }; +enum EFloatingGamepadTextInputMode +{ + k_EFloatingGamepadTextInputModeModeSingleLine = 0, // Enter dismisses the keyboard + k_EFloatingGamepadTextInputModeModeMultipleLines = 1, // User needs to explictly close the keyboard + k_EFloatingGamepadTextInputModeModeEmail = 2, // Keyboard layout is email, enter dismisses the keyboard + k_EFloatingGamepadTextInputModeModeNumeric = 3, // Keyboard layout is numeric, enter dismisses the keyboard + +}; + +// The context where text filtering is being done +enum ETextFilteringContext +{ + k_ETextFilteringContextUnknown = 0, // Unknown context + k_ETextFilteringContextGameContent = 1, // Game content, only legally required filtering is performed + k_ETextFilteringContextChat = 2, // Chat from another player + k_ETextFilteringContextName = 3, // Character or item name +}; -// function prototype for warning message hook -#if defined( POSIX ) -#define __cdecl -#endif -extern "C" typedef void (__cdecl *SteamAPIWarningMessageHook_t)(int, const char *); //----------------------------------------------------------------------------- // Purpose: interface to user independent utility functions @@ -76,8 +85,8 @@ public: // the destination buffer size should be 4 * height * width * sizeof(char) virtual bool GetImageRGBA( int iImage, uint8 *pubDest, int nDestBufferSize ) = 0; - // returns the IP of the reporting server for valve - currently only used in Source engine games - virtual bool GetCSERIPPort( uint32 *unIP, uint16 *usPort ) = 0; + // Deprecated. Do not call this. + STEAM_PRIVATE_API( virtual bool GetCSERIPPort( uint32 *unIP, uint16 *usPort ) = 0; ) // return the amount of battery power left in the current system in % [0..100], 255 for being on AC power virtual uint8 GetCurrentBatteryPower() = 0; @@ -133,10 +142,10 @@ public: // k_ECheckFileSignatureFileNotFound - The file does not exist on disk. // k_ECheckFileSignatureInvalidSignature - The file exists, and the signing tab has been set for this file, but the file is either not signed or the signature does not match. // k_ECheckFileSignatureValidSignature - The file is signed and the signature is valid. - CALL_RESULT( CheckFileSignature_t ) + STEAM_CALL_RESULT( CheckFileSignature_t ) virtual SteamAPICall_t CheckFileSignature( const char *szFileName ) = 0; - // Activates the Big Picture text input dialog which only supports gamepad input + // Activates the full-screen text input dialog which takes a initial text string and returns the text the user has typed virtual bool ShowGamepadTextInput( EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char *pchDescription, uint32 unCharMax, const char *pchExistingText ) = 0; // Returns previously entered text & length @@ -159,10 +168,67 @@ public: // ask SteamUI to create and render its OpenVR dashboard virtual void StartVRDashboard() = 0; + + // Returns true if the HMD content will be streamed via Steam Remote Play + virtual bool IsVRHeadsetStreamingEnabled() = 0; + + // Set whether the HMD content will be streamed via Steam Remote Play + // If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + // If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + // The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + // (this is useful for games that have asymmetric multiplayer gameplay) + virtual void SetVRHeadsetStreamingEnabled( bool bEnabled ) = 0; + + // Returns whether this steam client is a Steam China specific client, vs the global client. + virtual bool IsSteamChinaLauncher() = 0; + + // Initializes text filtering, loading dictionaries for the language the game is running in. + // unFilterOptions are reserved for future use and should be set to 0 + // Returns false if filtering is unavailable for the game's language, in which case FilterText() will act as a passthrough. + // + // Users can customize the text filter behavior in their Steam Account preferences: + // https://store.steampowered.com/account/preferences#CommunityContentPreferences + virtual bool InitFilterText( uint32 unFilterOptions = 0 ) = 0; + + // Filters the provided input message and places the filtered result into pchOutFilteredText, using legally required filtering and additional filtering based on the context and user settings + // eContext is the type of content in the input string + // sourceSteamID is the Steam ID that is the source of the input string (e.g. the player with the name, or who said the chat text) + // pchInputText is the input string that should be filtered, which can be ASCII or UTF-8 + // pchOutFilteredText is where the output will be placed, even if no filtering is performed + // nByteSizeOutFilteredText is the size (in bytes) of pchOutFilteredText, should be at least strlen(pchInputText)+1 + // Returns the number of characters (not bytes) filtered + virtual int FilterText( ETextFilteringContext eContext, CSteamID sourceSteamID, const char *pchInputMessage, char *pchOutFilteredText, uint32 nByteSizeOutFilteredText ) = 0; + + // Return what we believe your current ipv6 connectivity to "the internet" is on the specified protocol. + // This does NOT tell you if the Steam client is currently connected to Steam via ipv6. + virtual ESteamIPv6ConnectivityState GetIPv6ConnectivityState( ESteamIPv6ConnectivityProtocol eProtocol ) = 0; + + // returns true if currently running on the Steam Deck device + virtual bool IsSteamRunningOnSteamDeck() = 0; + + // Opens a floating keyboard over the game content and sends OS keyboard keys directly to the game. + // The text field position is specified in pixels relative the origin of the game window and is used to position the floating keyboard in a way that doesn't cover the text field + virtual bool ShowFloatingGamepadTextInput( EFloatingGamepadTextInputMode eKeyboardMode, int nTextFieldXPosition, int nTextFieldYPosition, int nTextFieldWidth, int nTextFieldHeight ) = 0; + + // In game launchers that don't have controller support you can call this to have Steam Input translate the controller input into mouse/kb to navigate the launcher + virtual void SetGameLauncherMode( bool bLauncherMode ) = 0; + + // Dismisses the floating keyboard. + virtual bool DismissFloatingGamepadTextInput() = 0; + + // Dismisses the full-screen text input dialog. + virtual bool DismissGamepadTextInput() = 0; }; -#define STEAMUTILS_INTERFACE_VERSION "SteamUtils008" +#define STEAMUTILS_INTERFACE_VERSION "SteamUtils010" +// Global interface accessor +inline ISteamUtils *SteamUtils(); +STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamUtils *, SteamUtils, SteamInternal_FindOrCreateUserInterface( 0, STEAMUTILS_INTERFACE_VERSION ), "user", STEAMUTILS_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamUtils *SteamGameServerUtils(); +STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamUtils *, SteamGameServerUtils, SteamInternal_FindOrCreateGameServerInterface( 0, STEAMUTILS_INTERFACE_VERSION ), "gameserver", STEAMUTILS_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -170,7 +236,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- @@ -183,7 +249,7 @@ struct IPCountry_t //----------------------------------------------------------------------------- -// Purpose: Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute +// Purpose: Fired when running on a handheld PC or laptop with less than 10 minutes of battery is left, fires then every minute //----------------------------------------------------------------------------- struct LowBatteryPower_t { @@ -238,16 +304,39 @@ struct CheckFileSignature_t //----------------------------------------------------------------------------- -// Big Picture gamepad text input has been closed +// Full Screen gamepad text input has been closed //----------------------------------------------------------------------------- struct GamepadTextInputDismissed_t { enum { k_iCallback = k_iSteamUtilsCallbacks + 14 }; bool m_bSubmitted; // true if user entered & accepted text (Call ISteamUtils::GetEnteredGamepadTextInput() for text), false if canceled input uint32 m_unSubmittedText; + AppId_t m_unAppID; }; -// k_iSteamUtilsCallbacks + 15 is taken +// k_iSteamUtilsCallbacks + 15 through 35 are taken + +STEAM_CALLBACK_BEGIN( AppResumingFromSuspend_t, k_iSteamUtilsCallbacks + 36 ) +STEAM_CALLBACK_END(0) + +// k_iSteamUtilsCallbacks + 37 is taken + +//----------------------------------------------------------------------------- +// The floating on-screen keyboard has been closed +//----------------------------------------------------------------------------- +struct FloatingGamepadTextInputDismissed_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 38 }; +}; + +//----------------------------------------------------------------------------- +// The text filtering dictionary has changed +//----------------------------------------------------------------------------- +struct FilterTextDictionaryChanged_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 39 }; + int m_eLanguage; // One of ELanguage, or k_LegallyRequiredFiltering +}; #pragma pack( pop ) diff --git a/lib/osx/include/steam/isteamvideo.h b/lib/osx/include/steam/isteamvideo.h index 6893f0b..4832d7b 100644 --- a/lib/osx/include/steam/isteamvideo.h +++ b/lib/osx/include/steam/isteamvideo.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -18,7 +18,7 @@ #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif @@ -36,22 +36,30 @@ public: // returns true if user is uploading a live broadcast virtual bool IsBroadcasting( int *pnNumViewers ) = 0; + + // Get the OPF Details for 360 Video Playback + STEAM_CALL_BACK( GetOPFSettingsResult_t ) + virtual void GetOPFSettings( AppId_t unVideoAppID ) = 0; + virtual bool GetOPFStringForApp( AppId_t unVideoAppID, char *pchBuffer, int32 *pnBufferSize ) = 0; }; -#define STEAMVIDEO_INTERFACE_VERSION "STEAMVIDEO_INTERFACE_V001" +#define STEAMVIDEO_INTERFACE_VERSION "STEAMVIDEO_INTERFACE_V002" -DEFINE_CALLBACK( BroadcastUploadStart_t, k_iClientVideoCallbacks + 4 ) -END_DEFINE_CALLBACK_0() +// Global interface accessor +inline ISteamVideo *SteamVideo(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamVideo *, SteamVideo, STEAMVIDEO_INTERFACE_VERSION ); -DEFINE_CALLBACK( BroadcastUploadStop_t, k_iClientVideoCallbacks + 5 ) - CALLBACK_MEMBER( 0, EBroadcastUploadResult, m_eResult ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( GetVideoURLResult_t, k_iSteamVideoCallbacks + 11 ) + STEAM_CALLBACK_MEMBER( 0, EResult, m_eResult ) + STEAM_CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID ) + STEAM_CALLBACK_MEMBER( 2, char, m_rgchURL[256] ) +STEAM_CALLBACK_END(3) -DEFINE_CALLBACK( GetVideoURLResult_t, k_iClientVideoCallbacks + 11 ) - CALLBACK_MEMBER( 0, EResult, m_eResult ) - CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID ) - CALLBACK_MEMBER( 2, char, m_rgchURL[256] ) -END_DEFINE_CALLBACK_1() + +STEAM_CALLBACK_BEGIN( GetOPFSettingsResult_t, k_iSteamVideoCallbacks + 24 ) + STEAM_CALLBACK_MEMBER( 0, EResult, m_eResult ) + STEAM_CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID ) +STEAM_CALLBACK_END(2) #pragma pack( pop ) diff --git a/lib/osx/include/steam/matchmakingtypes.h b/lib/osx/include/steam/matchmakingtypes.h index e52cfc6..791802a 100644 --- a/lib/osx/include/steam/matchmakingtypes.h +++ b/lib/osx/include/steam/matchmakingtypes.h @@ -8,16 +8,6 @@ #ifndef MATCHMAKINGTYPES_H #define MATCHMAKINGTYPES_H -#ifdef _WIN32 -#pragma once -#endif - -#ifdef POSIX -#ifndef _snprintf -#define _snprintf snprintf -#endif -#endif - #include <stdio.h> #include <string.h> @@ -68,9 +58,6 @@ public: servernetadr_t() : m_usConnectionPort( 0 ), m_usQueryPort( 0 ), m_unIP( 0 ) {} void Init( unsigned int ip, uint16 usQueryPort, uint16 usConnectionPort ); -#ifdef NETADR_H - netadr_t GetIPAndQueryPort(); -#endif // Access the query port. uint16 GetQueryPort() const; @@ -82,7 +69,7 @@ public: // Access the IP uint32 GetIP() const; - void SetIP( uint32 ); + void SetIP( uint32 unIP ); // This gets the 'a.b.c.d:port' string with the connection port (instead of the query port). const char *GetConnectionAddressString() const; @@ -113,13 +100,6 @@ inline void servernetadr_t::Init( unsigned int ip, uint16 usQueryPort, uint16 us m_usConnectionPort = usConnectionPort; } -#ifdef NETADR_H -inline netadr_t servernetadr_t::GetIPAndQueryPort() -{ - return netadr_t( m_unIP, m_usQueryPort ); -} -#endif - inline uint16 servernetadr_t::GetQueryPort() const { return m_usQueryPort; @@ -156,9 +136,9 @@ inline const char *servernetadr_t::ToString( uint32 unIP, uint16 usPort ) const static int nBuf = 0; unsigned char *ipByte = (unsigned char *)&unIP; #ifdef VALVE_BIG_ENDIAN - _snprintf (s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[0]), (int)(ipByte[1]), (int)(ipByte[2]), (int)(ipByte[3]), usPort ); + snprintf(s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[0]), (int)(ipByte[1]), (int)(ipByte[2]), (int)(ipByte[3]), usPort ); #else - _snprintf (s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[3]), (int)(ipByte[2]), (int)(ipByte[1]), (int)(ipByte[0]), usPort ); + snprintf(s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[3]), (int)(ipByte[2]), (int)(ipByte[1]), (int)(ipByte[0]), usPort ); #endif const char *pchRet = s[nBuf]; ++nBuf; diff --git a/lib/osx/include/steam/steam_api.h b/lib/osx/include/steam/steam_api.h index e3a31ae..55d90e4 100644 --- a/lib/osx/include/steam/steam_api.h +++ b/lib/osx/include/steam/steam_api.h @@ -1,6 +1,13 @@ -//====== Copyright 1996-2008, Valve Corporation, All rights reserved. ======= +//====== Copyright Valve Corporation, All rights reserved. ==================== // -// Purpose: +// This header includes *all* of the interfaces and callback structures +// in the Steamworks SDK, and some high level functions to control the SDK +// (init, shutdown, etc) that you probably only need in one or two files. +// +// To save your compile times, we recommend that you not include this file +// in header files. Instead, include the specific headers for the interfaces +// and callback structures you need. The one file you might consider including +// in your precompiled header (e.g. stdafx.h) is steam_api_common.h // //============================================================================= @@ -10,6 +17,10 @@ #pragma once #endif +// Basic stuff +#include "steam_api_common.h" + +// All of the interfaces #include "isteamclient.h" #include "isteamuser.h" #include "isteamfriends.h" @@ -23,38 +34,19 @@ #include "isteammusic.h" #include "isteammusicremote.h" #include "isteamhttp.h" -#include "isteamunifiedmessages.h" #include "isteamcontroller.h" #include "isteamugc.h" -#include "isteamapplist.h" #include "isteamhtmlsurface.h" #include "isteaminventory.h" #include "isteamvideo.h" +#include "isteamparentalsettings.h" +#include "isteaminput.h" +#include "isteamremoteplay.h" +#include "isteamnetworkingmessages.h" +#include "isteamnetworkingsockets.h" +#include "isteamnetworkingutils.h" -// Steam API export macro -#if defined( _WIN32 ) && !defined( _X360 ) - #if defined( STEAM_API_EXPORTS ) - #define S_API extern "C" __declspec( dllexport ) - #elif defined( STEAM_API_NODLL ) - #define S_API extern "C" - #else - #define S_API extern "C" __declspec( dllimport ) - #endif // STEAM_API_EXPORTS -#elif defined( GNUC ) - #if defined( STEAM_API_EXPORTS ) - #define S_API extern "C" __attribute__ ((visibility("default"))) - #else - #define S_API extern "C" - #endif // STEAM_API_EXPORTS -#else // !WIN32 - #if defined( STEAM_API_EXPORTS ) - #define S_API extern "C" - #else - #define S_API extern "C" - #endif // STEAM_API_EXPORTS -#endif - //----------------------------------------------------------------------------------------------------------------------------------------------------------// // Steam API setup & shutdown // @@ -62,10 +54,54 @@ // //----------------------------------------------------------------------------------------------------------------------------------------------------------// +enum ESteamAPIInitResult +{ + k_ESteamAPIInitResult_OK = 0, + k_ESteamAPIInitResult_FailedGeneric = 1, // Some other failure + k_ESteamAPIInitResult_NoSteamClient = 2, // We cannot connect to Steam, steam probably isn't running + k_ESteamAPIInitResult_VersionMismatch = 3, // Steam client appears to be out of date +}; -// SteamAPI_Init must be called before using any other API functions. If it fails, an -// error message will be output to the debugger (or stderr) with further information. -S_API bool S_CALLTYPE SteamAPI_Init(); +// Initializing the Steamworks SDK +// ----------------------------- +// +// There are three different methods you can use to initialize the Steamworks SDK, depending on +// your project's environment. You should only use one method in your project. +// +// If you are able to include this C++ header in your project, we recommend using the following +// initialization methods. They will ensure that all ISteam* interfaces defined in other +// C++ header files have versions that are supported by the user's Steam Client: +// - SteamAPI_InitEx() for new projects so you can show a detailed error message to the user +// - SteamAPI_Init() for existing projects that only display a generic error message +// +// If you are unable to include this C++ header in your project and are dynamically loading +// Steamworks SDK methods from dll/so, you can use the following method: +// - SteamAPI_InitFlat() + + +// See "Initializing the Steamworks SDK" above for how to choose an init method. +// On success k_ESteamAPIInitResult_OK is returned. Otherwise, returns a value that can be used +// to create a localized error message for the user. If pOutErrMsg is non-NULL, +// it will receive an example error message, in English, that explains the reason for the failure. +// +// Example usage: +// +// SteamErrMsg errMsg; +// if ( SteamAPI_Init(&errMsg) != k_ESteamAPIInitResult_OK ) +// FatalError( "Failed to init Steam. %s", errMsg ); +inline ESteamAPIInitResult SteamAPI_InitEx( SteamErrMsg *pOutErrMsg ); + +// See "Initializing the Steamworks SDK" above for how to choose an init method. +// Returns true on success +inline bool SteamAPI_Init() +{ + return SteamAPI_InitEx( NULL ) == k_ESteamAPIInitResult_OK; +} + +// See "Initializing the Steamworks SDK" above for how to choose an init method. +// Same usage as SteamAPI_InitEx(), however does not verify ISteam* interfaces are +// supported by the user's client and is exported from the dll +S_API ESteamAPIInitResult S_CALLTYPE SteamAPI_InitFlat( SteamErrMsg *pOutErrMsg ); // SteamAPI_Shutdown should be called during process shutdown if possible. S_API void S_CALLTYPE SteamAPI_Shutdown(); @@ -93,263 +129,6 @@ S_API void S_CALLTYPE SteamAPI_ReleaseCurrentThreadMemory(); S_API void S_CALLTYPE SteamAPI_WriteMiniDump( uint32 uStructuredExceptionCode, void* pvExceptionInfo, uint32 uBuildID ); S_API void S_CALLTYPE SteamAPI_SetMiniDumpComment( const char *pchMsg ); - -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -// Global accessors for Steamworks C++ APIs. See individual isteam*.h files for details. -// You should not cache the results of these accessors or pass the result pointers across -// modules! Different modules may be compiled against different SDK header versions, and -// the interface pointers could therefore be different across modules. Every line of code -// which calls into a Steamworks API should retrieve the interface from a global accessor. -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -#if !defined( STEAM_API_EXPORTS ) -inline ISteamClient *SteamClient(); -inline ISteamUser *SteamUser(); -inline ISteamFriends *SteamFriends(); -inline ISteamUtils *SteamUtils(); -inline ISteamMatchmaking *SteamMatchmaking(); -inline ISteamUserStats *SteamUserStats(); -inline ISteamApps *SteamApps(); -inline ISteamNetworking *SteamNetworking(); -inline ISteamMatchmakingServers *SteamMatchmakingServers(); -inline ISteamRemoteStorage *SteamRemoteStorage(); -inline ISteamScreenshots *SteamScreenshots(); -inline ISteamHTTP *SteamHTTP(); -inline ISteamUnifiedMessages *SteamUnifiedMessages(); -inline ISteamController *SteamController(); -inline ISteamUGC *SteamUGC(); -inline ISteamAppList *SteamAppList(); -inline ISteamMusic *SteamMusic(); -inline ISteamMusicRemote *SteamMusicRemote(); -inline ISteamHTMLSurface *SteamHTMLSurface(); -inline ISteamInventory *SteamInventory(); -inline ISteamVideo *SteamVideo(); -#endif // VERSION_SAFE_STEAM_API_INTERFACES - - -// CSteamAPIContext encapsulates the Steamworks API global accessors into -// a single object. This is DEPRECATED and only remains for compatibility. -class CSteamAPIContext -{ -public: - // DEPRECATED - there is no benefit to using this over the global accessors - CSteamAPIContext() { Clear(); } - void Clear(); - bool Init(); - ISteamClient* SteamClient() const { return m_pSteamClient; } - ISteamUser* SteamUser() const { return m_pSteamUser; } - ISteamFriends* SteamFriends() const { return m_pSteamFriends; } - ISteamUtils* SteamUtils() const { return m_pSteamUtils; } - ISteamMatchmaking* SteamMatchmaking() const { return m_pSteamMatchmaking; } - ISteamUserStats* SteamUserStats() const { return m_pSteamUserStats; } - ISteamApps* SteamApps() const { return m_pSteamApps; } - ISteamMatchmakingServers* SteamMatchmakingServers() const { return m_pSteamMatchmakingServers; } - ISteamNetworking* SteamNetworking() const { return m_pSteamNetworking; } - ISteamRemoteStorage* SteamRemoteStorage() const { return m_pSteamRemoteStorage; } - ISteamScreenshots* SteamScreenshots() const { return m_pSteamScreenshots; } - ISteamHTTP* SteamHTTP() const { return m_pSteamHTTP; } - ISteamUnifiedMessages* SteamUnifiedMessages() const { return m_pSteamUnifiedMessages; } - ISteamController* SteamController() const { return m_pController; } - ISteamUGC* SteamUGC() const { return m_pSteamUGC; } - ISteamAppList* SteamAppList() const { return m_pSteamAppList; } - ISteamMusic* SteamMusic() const { return m_pSteamMusic; } - ISteamMusicRemote* SteamMusicRemote() const { return m_pSteamMusicRemote; } - ISteamHTMLSurface* SteamHTMLSurface() const { return m_pSteamHTMLSurface; } - ISteamInventory* SteamInventory() const { return m_pSteamInventory; } - ISteamVideo* SteamVideo() const { return m_pSteamVideo; } - // DEPRECATED - there is no benefit to using this over the global accessors -private: - ISteamClient *m_pSteamClient; - ISteamUser *m_pSteamUser; - ISteamFriends *m_pSteamFriends; - ISteamUtils *m_pSteamUtils; - ISteamMatchmaking *m_pSteamMatchmaking; - ISteamUserStats *m_pSteamUserStats; - ISteamApps *m_pSteamApps; - ISteamMatchmakingServers *m_pSteamMatchmakingServers; - ISteamNetworking *m_pSteamNetworking; - ISteamRemoteStorage *m_pSteamRemoteStorage; - ISteamScreenshots *m_pSteamScreenshots; - ISteamHTTP *m_pSteamHTTP; - ISteamUnifiedMessages *m_pSteamUnifiedMessages; - ISteamController *m_pController; - ISteamUGC *m_pSteamUGC; - ISteamAppList *m_pSteamAppList; - ISteamMusic *m_pSteamMusic; - ISteamMusicRemote *m_pSteamMusicRemote; - ISteamHTMLSurface *m_pSteamHTMLSurface; - ISteamInventory *m_pSteamInventory; - ISteamVideo *m_pSteamVideo; -}; - - -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -// steam callback and call-result helpers -// -// The following macros and classes are used to register your application for -// callbacks and call-results, which are delivered in a predictable manner. -// -// STEAM_CALLBACK macros are meant for use inside of a C++ class definition. -// They map a Steam notification callback directly to a class member function -// which is automatically prototyped as "void func( callback_type *pParam )". -// -// CCallResult is used with specific Steam APIs that return "result handles". -// The handle can be passed to a CCallResult object's Set function, along with -// an object pointer and member-function pointer. The member function will -// be executed once the results of the Steam API call are available. -// -// CCallback and CCallbackManual classes can be used instead of STEAM_CALLBACK -// macros if you require finer control over registration and unregistration. -// -// Callbacks and call-results are queued automatically and are only -// delivered/executed when your application calls SteamAPI_RunCallbacks(). -//----------------------------------------------------------------------------------------------------------------------------------------------------------// - -// SteamAPI_RunCallbacks is safe to call from multiple threads simultaneously, -// but if you choose to do this, callback code could be executed on any thread. -// One alternative is to call SteamAPI_RunCallbacks from the main thread only, -// and call SteamAPI_ReleaseCurrentThreadMemory regularly on other threads. -S_API void S_CALLTYPE SteamAPI_RunCallbacks(); - - -// Declares a callback member function plus a helper member variable which -// registers the callback on object creation and unregisters on destruction. -// The optional fourth 'var' param exists only for backwards-compatibility -// and can be ignored. -#define STEAM_CALLBACK( thisclass, func, .../*callback_type, [deprecated] var*/ ) \ - _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, 4, 3 ), ( /**/, thisclass, func, __VA_ARGS__ ) ) - -// Declares a callback function and a named CCallbackManual variable which -// has Register and Unregister functions instead of automatic registration. -#define STEAM_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ - CCallbackManual< thisclass, callback_type > var; void func( callback_type *pParam ) - - -// Internal functions used by the utility CCallback objects to receive callbacks -S_API void S_CALLTYPE SteamAPI_RegisterCallback( class CCallbackBase *pCallback, int iCallback ); -S_API void S_CALLTYPE SteamAPI_UnregisterCallback( class CCallbackBase *pCallback ); -// Internal functions used by the utility CCallResult objects to receive async call results -S_API void S_CALLTYPE SteamAPI_RegisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); -S_API void S_CALLTYPE SteamAPI_UnregisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); - - -//----------------------------------------------------------------------------- -// Purpose: base for callbacks and call results - internal implementation detail -//----------------------------------------------------------------------------- -class CCallbackBase -{ -public: - CCallbackBase() { m_nCallbackFlags = 0; m_iCallback = 0; } - // don't add a virtual destructor because we export this binary interface across dll's - virtual void Run( void *pvParam ) = 0; - virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ) = 0; - int GetICallback() { return m_iCallback; } - virtual int GetCallbackSizeBytes() = 0; - -protected: - enum { k_ECallbackFlagsRegistered = 0x01, k_ECallbackFlagsGameServer = 0x02 }; - uint8 m_nCallbackFlags; - int m_iCallback; - friend class CCallbackMgr; - -private: - CCallbackBase( const CCallbackBase& ); - CCallbackBase& operator=( const CCallbackBase& ); -}; - -//----------------------------------------------------------------------------- -// Purpose: templated base for callbacks - internal implementation detail -//----------------------------------------------------------------------------- -template< int sizeof_P > -class CCallbackImpl : protected CCallbackBase -{ -public: - ~CCallbackImpl() { if ( m_nCallbackFlags & k_ECallbackFlagsRegistered ) SteamAPI_UnregisterCallback( this ); } - void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } - -protected: - virtual void Run( void *pvParam ) = 0; - virtual void Run( void *pvParam, bool /*bIOFailure*/, SteamAPICall_t /*hSteamAPICall*/ ) { Run( pvParam ); } - virtual int GetCallbackSizeBytes() { return sizeof_P; } -}; - - -//----------------------------------------------------------------------------- -// Purpose: maps a steam async call result to a class member function -// template params: T = local class, P = parameter struct -//----------------------------------------------------------------------------- -template< class T, class P > -class CCallResult : private CCallbackBase -{ -public: - typedef void (T::*func_t)( P*, bool ); - - CCallResult(); - ~CCallResult(); - - void Set( SteamAPICall_t hAPICall, T *p, func_t func ); - bool IsActive() const; - void Cancel(); - - void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } -private: - virtual void Run( void *pvParam ); - virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ); - virtual int GetCallbackSizeBytes() { return sizeof( P ); } - - SteamAPICall_t m_hAPICall; - T *m_pObj; - func_t m_Func; -}; - - - -//----------------------------------------------------------------------------- -// Purpose: maps a steam callback to a class member function -// template params: T = local class, P = parameter struct, -// bGameserver = listen for gameserver callbacks instead of client callbacks -//----------------------------------------------------------------------------- -template< class T, class P, bool bGameserver = false > -class CCallback : public CCallbackImpl< sizeof( P ) > -{ -public: - typedef void (T::*func_t)(P*); - - // NOTE: If you can't provide the correct parameters at construction time, you should - // use the CCallbackManual callback object (STEAM_CALLBACK_MANUAL macro) instead. - CCallback( T *pObj, func_t func ); - - void Register( T *pObj, func_t func ); - void Unregister(); - -protected: - virtual void Run( void *pvParam ); - - T *m_pObj; - func_t m_Func; -}; - - -//----------------------------------------------------------------------------- -// Purpose: subclass of CCallback which allows default-construction in -// an unregistered state; you must call Register manually -//----------------------------------------------------------------------------- -template< class T, class P, bool bGameServer = false > -class CCallbackManual : public CCallback< T, P, bGameServer > -{ -public: - CCallbackManual() : CCallback< T, P, bGameServer >( NULL, NULL ) {} - - // Inherits public Register and Unregister functions from base class -}; - - - -#ifdef _WIN32 -// disable this warning; this pattern need for steam callback registration -#pragma warning( disable: 4355 ) // 'this' : used in base member initializer list -#endif - - //----------------------------------------------------------------------------------------------------------------------------------------------------------// // steamclient.dll private wrapper functions // @@ -359,36 +138,237 @@ public: // SteamAPI_IsSteamRunning() returns true if Steam is currently running S_API bool S_CALLTYPE SteamAPI_IsSteamRunning(); -// Pumps out all the steam messages, calling registered callbacks. -// NOT THREADSAFE - do not call from multiple threads simultaneously. -S_API void Steam_RunCallbacks( HSteamPipe hSteamPipe, bool bGameServerCallbacks ); - -// register the callback funcs to use to interact with the steam dll -S_API void Steam_RegisterInterfaceFuncs( void *hModule ); - -// returns the HSteamUser of the last user to dispatch a callback -S_API HSteamUser Steam_GetHSteamUserCurrent(); - // returns the filename path of the current running Steam process, used if you need to load an explicit steam dll by name. // DEPRECATED - implementation is Windows only, and the path returned is a UTF-8 string which must be converted to UTF-16 for use with Win32 APIs S_API const char *SteamAPI_GetSteamInstallPath(); -// returns the pipe we are communicating to Steam with -S_API HSteamPipe SteamAPI_GetHSteamPipe(); - // sets whether or not Steam_RunCallbacks() should do a try {} catch (...) {} around calls to issuing callbacks +// This is ignored if you are using the manual callback dispatch method S_API void SteamAPI_SetTryCatchCallbacks( bool bTryCatchCallbacks ); -// backwards compat export, passes through to SteamAPI_ variants -S_API HSteamPipe GetHSteamPipe(); -S_API HSteamUser GetHSteamUser(); - - #if defined( VERSION_SAFE_STEAM_API_INTERFACES ) // exists only for backwards compat with code written against older SDKs S_API bool S_CALLTYPE SteamAPI_InitSafe(); #endif -#include "steam_api_internal.h" +#if defined(USE_BREAKPAD_HANDLER) || defined(STEAM_API_EXPORTS) +// this should be called before the game initialized the steam APIs +// pchDate should be of the format "Mmm dd yyyy" (such as from the __ DATE __ macro ) +// pchTime should be of the format "hh:mm:ss" (such as from the __ TIME __ macro ) +// bFullMemoryDumps (Win32 only) -- writes out a uuid-full.dmp in the client/dumps folder +// pvContext-- can be NULL, will be the void * context passed into m_pfnPreMinidumpCallback +// PFNPreMinidumpCallback m_pfnPreMinidumpCallback -- optional callback which occurs just before a .dmp file is written during a crash. Applications can hook this to allow adding additional information into the .dmp comment stream. +S_API void S_CALLTYPE SteamAPI_UseBreakpadCrashHandler( char const *pchVersion, char const *pchDate, char const *pchTime, bool bFullMemoryDumps, void *pvContext, PFNPreMinidumpCallback m_pfnPreMinidumpCallback ); +S_API void S_CALLTYPE SteamAPI_SetBreakpadAppID( uint32 unAppID ); +#endif + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// +// Manual callback loop +// +// An alternative method for dispatching callbacks. Similar to a windows message loop. +// +// If you use the manual callback dispatch, you must NOT use: +// +// - SteamAPI_RunCallbacks or SteamGameServer_RunCallbacks +// - STEAM_CALLBACK, CCallResult, CCallback, or CCallbackManual +// +// Here is the basic template for replacing SteamAPI_RunCallbacks() with manual dispatch +/* + + HSteamPipe hSteamPipe = SteamAPI_GetHSteamPipe(); // See also SteamGameServer_GetHSteamPipe() + SteamAPI_ManualDispatch_RunFrame( hSteamPipe ) + CallbackMsg_t callback; + while ( SteamAPI_ManualDispatch_GetNextCallback( hSteamPipe, &callback ) ) + { + // Check for dispatching API call results + if ( callback.m_iCallback == SteamAPICallCompleted_t::k_iCallback ) + { + SteamAPICallCompleted_t *pCallCompleted = (SteamAPICallCompleted_t *)callback. + void *pTmpCallResult = malloc( pCallback->m_cubParam ); + bool bFailed; + if ( SteamAPI_ManualDispatch_GetAPICallResult( hSteamPipe, pCallCompleted->m_hAsyncCall, pTmpCallResult, pCallback->m_cubParam, pCallback->m_iCallback, &bFailed ) ) + { + // Dispatch the call result to the registered handler(s) for the + // call identified by pCallCompleted->m_hAsyncCall + } + free( pTmpCallResult ); + } + else + { + // Look at callback.m_iCallback to see what kind of callback it is, + // and dispatch to appropriate handler(s) + } + SteamAPI_ManualDispatch_FreeLastCallback( hSteamPipe ); + } + +*/ +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +/// Inform the API that you wish to use manual event dispatch. This must be called after SteamAPI_Init, but before +/// you use any of the other manual dispatch functions below. +S_API void S_CALLTYPE SteamAPI_ManualDispatch_Init(); + +/// Perform certain periodic actions that need to be performed. +S_API void S_CALLTYPE SteamAPI_ManualDispatch_RunFrame( HSteamPipe hSteamPipe ); + +/// Fetch the next pending callback on the given pipe, if any. If a callback is available, true is returned +/// and the structure is populated. In this case, you MUST call SteamAPI_ManualDispatch_FreeLastCallback +/// (after dispatching the callback) before calling SteamAPI_ManualDispatch_GetNextCallback again. +S_API bool S_CALLTYPE SteamAPI_ManualDispatch_GetNextCallback( HSteamPipe hSteamPipe, CallbackMsg_t *pCallbackMsg ); + +/// You must call this after dispatching the callback, if SteamAPI_ManualDispatch_GetNextCallback returns true. +S_API void S_CALLTYPE SteamAPI_ManualDispatch_FreeLastCallback( HSteamPipe hSteamPipe ); + +/// Return the call result for the specified call on the specified pipe. You really should +/// only call this in a handler for SteamAPICallCompleted_t callback. +S_API bool S_CALLTYPE SteamAPI_ManualDispatch_GetAPICallResult( HSteamPipe hSteamPipe, SteamAPICall_t hSteamAPICall, void *pCallback, int cubCallback, int iCallbackExpected, bool *pbFailed ); + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// +// CSteamAPIContext +// +// Deprecated! This is not necessary any more. Please use the global accessors directly +// +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +#ifndef STEAM_API_EXPORTS + +inline bool CSteamAPIContext::Init() +{ + m_pSteamClient = ::SteamClient(); + if ( !m_pSteamClient ) + return false; + + m_pSteamUser = ::SteamUser(); + if ( !m_pSteamUser ) + return false; + + m_pSteamFriends = ::SteamFriends(); + if ( !m_pSteamFriends ) + return false; + + m_pSteamUtils = ::SteamUtils(); + if ( !m_pSteamUtils ) + return false; + + m_pSteamMatchmaking = ::SteamMatchmaking(); + if ( !m_pSteamMatchmaking ) + return false; + + m_pSteamGameSearch = ::SteamGameSearch(); + if ( !m_pSteamGameSearch ) + return false; + +#if !defined( IOSALL) // Not yet supported on iOS. + m_pSteamMatchmakingServers = ::SteamMatchmakingServers(); + if ( !m_pSteamMatchmakingServers ) + return false; +#endif + + m_pSteamUserStats = ::SteamUserStats(); + if ( !m_pSteamUserStats ) + return false; + + m_pSteamApps = ::SteamApps(); + if ( !m_pSteamApps ) + return false; + + m_pSteamNetworking = ::SteamNetworking(); + if ( !m_pSteamNetworking ) + return false; + + m_pSteamRemoteStorage = ::SteamRemoteStorage(); + if ( !m_pSteamRemoteStorage ) + return false; + + m_pSteamScreenshots = ::SteamScreenshots(); + if ( !m_pSteamScreenshots ) + return false; + + m_pSteamHTTP = ::SteamHTTP(); + if ( !m_pSteamHTTP ) + return false; + + m_pController = ::SteamController(); + if ( !m_pController ) + return false; + + m_pSteamUGC = ::SteamUGC(); + if ( !m_pSteamUGC ) + return false; + + m_pSteamMusic = ::SteamMusic(); + if ( !m_pSteamMusic ) + return false; + + m_pSteamMusicRemote = ::SteamMusicRemote(); + if ( !m_pSteamMusicRemote ) + return false; + +#if !defined( ANDROID ) && !defined( IOSALL) // Not yet supported on Android or ios. + m_pSteamHTMLSurface = ::SteamHTMLSurface(); + if ( !m_pSteamHTMLSurface ) + return false; +#endif + + m_pSteamInventory = ::SteamInventory(); + if ( !m_pSteamInventory ) + return false; + + m_pSteamVideo = ::SteamVideo(); + if ( !m_pSteamVideo ) + return false; + + m_pSteamParentalSettings = ::SteamParentalSettings(); + if ( !m_pSteamParentalSettings ) + return false; + + m_pSteamInput = ::SteamInput(); + if ( !m_pSteamInput ) + return false; + + return true; +} + +#endif + +// Internal implementation of SteamAPI_InitEx. This is done in a way that checks +// all of the versions of interfaces from headers being compiled into this code. +S_API ESteamAPIInitResult S_CALLTYPE SteamInternal_SteamAPI_Init( const char *pszInternalCheckInterfaceVersions, SteamErrMsg *pOutErrMsg ); +inline ESteamAPIInitResult SteamAPI_InitEx( SteamErrMsg *pOutErrMsg ) +{ + const char *pszInternalCheckInterfaceVersions = + STEAMUTILS_INTERFACE_VERSION "\0" + STEAMNETWORKINGUTILS_INTERFACE_VERSION "\0" + STEAMAPPS_INTERFACE_VERSION "\0" + STEAMCONTROLLER_INTERFACE_VERSION "\0" + STEAMFRIENDS_INTERFACE_VERSION "\0" + STEAMGAMESEARCH_INTERFACE_VERSION "\0" + STEAMHTMLSURFACE_INTERFACE_VERSION "\0" + STEAMHTTP_INTERFACE_VERSION "\0" + STEAMINPUT_INTERFACE_VERSION "\0" + STEAMINVENTORY_INTERFACE_VERSION "\0" + STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION "\0" + STEAMMATCHMAKING_INTERFACE_VERSION "\0" + STEAMMUSICREMOTE_INTERFACE_VERSION "\0" + STEAMMUSIC_INTERFACE_VERSION "\0" + STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "\0" + STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "\0" + STEAMNETWORKING_INTERFACE_VERSION "\0" + STEAMPARENTALSETTINGS_INTERFACE_VERSION "\0" + STEAMPARTIES_INTERFACE_VERSION "\0" + STEAMREMOTEPLAY_INTERFACE_VERSION "\0" + STEAMREMOTESTORAGE_INTERFACE_VERSION "\0" + STEAMSCREENSHOTS_INTERFACE_VERSION "\0" + STEAMUGC_INTERFACE_VERSION "\0" + STEAMUSERSTATS_INTERFACE_VERSION "\0" + STEAMUSER_INTERFACE_VERSION "\0" + STEAMVIDEO_INTERFACE_VERSION "\0" + + "\0"; + + return SteamInternal_SteamAPI_Init( pszInternalCheckInterfaceVersions, pOutErrMsg ); +} #endif // STEAM_API_H diff --git a/lib/osx/include/steam/steam_api.json b/lib/osx/include/steam/steam_api.json index 09adb0c..7acd8ff 100644 --- a/lib/osx/include/steam/steam_api.json +++ b/lib/osx/include/steam/steam_api.json @@ -1,7576 +1,14042 @@ -{"typedefs":[{"typedef": "uint8","type": "unsigned char"} -,{"typedef": "uint8","type": "unsigned char"} -,{"typedef": "int8","type": "signed char"} -,{"typedef": "int16","type": "short"} -,{"typedef": "uint16","type": "unsigned short"} -,{"typedef": "int32","type": "int"} -,{"typedef": "uint32","type": "unsigned int"} -,{"typedef": "int64","type": "long long"} -,{"typedef": "uint64","type": "unsigned long long"} -,{"typedef": "lint64","type": "int64"} -,{"typedef": "ulint64","type": "uint64"} -,{"typedef": "intp","type": "long long"} -,{"typedef": "uintp","type": "unsigned long long"} -,{"typedef": "Salt_t","type": "uint8 [8]"} -,{"typedef": "GID_t","type": "uint64"} -,{"typedef": "JobID_t","type": "uint64"} -,{"typedef": "TxnID_t","type": "GID_t"} -,{"typedef": "PackageId_t","type": "uint32"} -,{"typedef": "BundleId_t","type": "uint32"} -,{"typedef": "AppId_t","type": "uint32"} -,{"typedef": "AssetClassId_t","type": "uint64"} -,{"typedef": "PhysicalItemId_t","type": "uint32"} -,{"typedef": "DepotId_t","type": "uint32"} -,{"typedef": "RTime32","type": "uint32"} -,{"typedef": "CellID_t","type": "uint32"} -,{"typedef": "SteamAPICall_t","type": "uint64"} -,{"typedef": "AccountID_t","type": "uint32"} -,{"typedef": "PartnerId_t","type": "uint32"} -,{"typedef": "ManifestId_t","type": "uint64"} -,{"typedef": "HAuthTicket","type": "uint32"} -,{"typedef": "PFNLegacyKeyRegistration","type": "void (*)(const char *, const char *)"} -,{"typedef": "PFNLegacyKeyInstalled","type": "_Bool (*)(void)"} -,{"typedef": "PFNPreMinidumpCallback","type": "void (*)(void *)"} -,{"typedef": "BREAKPAD_HANDLE","type": "void *"} -,{"typedef": "ValvePackingSentinel_t","type": "struct ValvePackingSentinel_t"} -,{"typedef": "compile_time_assert_type","type": "char [1]"} -,{"typedef": "HSteamPipe","type": "int32"} -,{"typedef": "HSteamUser","type": "int32"} -,{"typedef": "SteamAPIWarningMessageHook_t","type": "void (*)(int, const char *) __attribute__((cdecl))"} -,{"typedef": "SteamAPI_CheckCallbackRegistered_t","type": "uint32 (*)(int)"} -,{"typedef": "FriendsGroupID_t","type": "int16"} -,{"typedef": "SteamAPIWarningMessageHook_t","type": "void (*)(int, const char *) __attribute__((cdecl))"} -,{"typedef": "HServerListRequest","type": "void *"} -,{"typedef": "HServerQuery","type": "int"} -,{"typedef": "UGCHandle_t","type": "uint64"} -,{"typedef": "PublishedFileUpdateHandle_t","type": "uint64"} -,{"typedef": "PublishedFileId_t","type": "uint64"} -,{"typedef": "UGCFileWriteStreamHandle_t","type": "uint64"} -,{"typedef": "compile_time_assert_type","type": "char [1]"} -,{"typedef": "SteamLeaderboard_t","type": "uint64"} -,{"typedef": "SteamLeaderboardEntries_t","type": "uint64"} -,{"typedef": "SNetSocket_t","type": "uint32"} -,{"typedef": "SNetListenSocket_t","type": "uint32"} -,{"typedef": "ScreenshotHandle","type": "uint32"} -,{"typedef": "PlaybackStatusHasChanged_t::SteamCallback_t","type": "struct PlaybackStatusHasChanged_t"} -,{"typedef": "VolumeHasChanged_t::SteamCallback_t","type": "struct VolumeHasChanged_t"} -,{"typedef": "MusicPlayerRemoteWillActivate_t::SteamCallback_t","type": "struct MusicPlayerRemoteWillActivate_t"} -,{"typedef": "MusicPlayerRemoteWillDeactivate_t::SteamCallback_t","type": "struct MusicPlayerRemoteWillDeactivate_t"} -,{"typedef": "MusicPlayerRemoteToFront_t::SteamCallback_t","type": "struct MusicPlayerRemoteToFront_t"} -,{"typedef": "MusicPlayerWillQuit_t::SteamCallback_t","type": "struct MusicPlayerWillQuit_t"} -,{"typedef": "MusicPlayerWantsPlay_t::SteamCallback_t","type": "struct MusicPlayerWantsPlay_t"} -,{"typedef": "MusicPlayerWantsPause_t::SteamCallback_t","type": "struct MusicPlayerWantsPause_t"} -,{"typedef": "MusicPlayerWantsPlayPrevious_t::SteamCallback_t","type": "struct MusicPlayerWantsPlayPrevious_t"} -,{"typedef": "MusicPlayerWantsPlayNext_t::SteamCallback_t","type": "struct MusicPlayerWantsPlayNext_t"} -,{"typedef": "MusicPlayerWantsShuffled_t::SteamCallback_t","type": "struct MusicPlayerWantsShuffled_t"} -,{"typedef": "MusicPlayerWantsLooped_t::SteamCallback_t","type": "struct MusicPlayerWantsLooped_t"} -,{"typedef": "MusicPlayerWantsVolume_t::SteamCallback_t","type": "struct MusicPlayerWantsVolume_t"} -,{"typedef": "MusicPlayerSelectsQueueEntry_t::SteamCallback_t","type": "struct MusicPlayerSelectsQueueEntry_t"} -,{"typedef": "MusicPlayerSelectsPlaylistEntry_t::SteamCallback_t","type": "struct MusicPlayerSelectsPlaylistEntry_t"} -,{"typedef": "MusicPlayerWantsPlayingRepeatStatus_t::SteamCallback_t","type": "struct MusicPlayerWantsPlayingRepeatStatus_t"} -,{"typedef": "HTTPRequestHandle","type": "uint32"} -,{"typedef": "HTTPCookieContainerHandle","type": "uint32"} -,{"typedef": "ClientUnifiedMessageHandle","type": "uint64"} -,{"typedef": "ControllerHandle_t","type": "uint64"} -,{"typedef": "ControllerActionSetHandle_t","type": "uint64"} -,{"typedef": "ControllerDigitalActionHandle_t","type": "uint64"} -,{"typedef": "ControllerAnalogActionHandle_t","type": "uint64"} -,{"typedef": "UGCQueryHandle_t","type": "uint64"} -,{"typedef": "UGCUpdateHandle_t","type": "uint64"} -,{"typedef": "SteamAppInstalled_t::SteamCallback_t","type": "struct SteamAppInstalled_t"} -,{"typedef": "SteamAppUninstalled_t::SteamCallback_t","type": "struct SteamAppUninstalled_t"} -,{"typedef": "HHTMLBrowser","type": "uint32"} -,{"typedef": "HTML_BrowserReady_t::SteamCallback_t","type": "struct HTML_BrowserReady_t"} -,{"typedef": "HTML_NeedsPaint_t::SteamCallback_t","type": "struct HTML_NeedsPaint_t"} -,{"typedef": "HTML_StartRequest_t::SteamCallback_t","type": "struct HTML_StartRequest_t"} -,{"typedef": "HTML_CloseBrowser_t::SteamCallback_t","type": "struct HTML_CloseBrowser_t"} -,{"typedef": "HTML_URLChanged_t::SteamCallback_t","type": "struct HTML_URLChanged_t"} -,{"typedef": "HTML_FinishedRequest_t::SteamCallback_t","type": "struct HTML_FinishedRequest_t"} -,{"typedef": "HTML_OpenLinkInNewTab_t::SteamCallback_t","type": "struct HTML_OpenLinkInNewTab_t"} -,{"typedef": "HTML_ChangedTitle_t::SteamCallback_t","type": "struct HTML_ChangedTitle_t"} -,{"typedef": "HTML_SearchResults_t::SteamCallback_t","type": "struct HTML_SearchResults_t"} -,{"typedef": "HTML_CanGoBackAndForward_t::SteamCallback_t","type": "struct HTML_CanGoBackAndForward_t"} -,{"typedef": "HTML_HorizontalScroll_t::SteamCallback_t","type": "struct HTML_HorizontalScroll_t"} -,{"typedef": "HTML_VerticalScroll_t::SteamCallback_t","type": "struct HTML_VerticalScroll_t"} -,{"typedef": "HTML_LinkAtPosition_t::SteamCallback_t","type": "struct HTML_LinkAtPosition_t"} -,{"typedef": "HTML_JSAlert_t::SteamCallback_t","type": "struct HTML_JSAlert_t"} -,{"typedef": "HTML_JSConfirm_t::SteamCallback_t","type": "struct HTML_JSConfirm_t"} -,{"typedef": "HTML_FileOpenDialog_t::SteamCallback_t","type": "struct HTML_FileOpenDialog_t"} -,{"typedef": "HTML_NewWindow_t::SteamCallback_t","type": "struct HTML_NewWindow_t"} -,{"typedef": "HTML_SetCursor_t::SteamCallback_t","type": "struct HTML_SetCursor_t"} -,{"typedef": "HTML_StatusText_t::SteamCallback_t","type": "struct HTML_StatusText_t"} -,{"typedef": "HTML_ShowToolTip_t::SteamCallback_t","type": "struct HTML_ShowToolTip_t"} -,{"typedef": "HTML_UpdateToolTip_t::SteamCallback_t","type": "struct HTML_UpdateToolTip_t"} -,{"typedef": "HTML_HideToolTip_t::SteamCallback_t","type": "struct HTML_HideToolTip_t"} -,{"typedef": "SteamItemInstanceID_t","type": "uint64"} -,{"typedef": "SteamItemDef_t","type": "int32"} -,{"typedef": "SteamInventoryResult_t","type": "int32"} -,{"typedef": "BroadcastUploadStart_t::SteamCallback_t","type": "struct BroadcastUploadStart_t"} -,{"typedef": "BroadcastUploadStop_t::SteamCallback_t","type": "struct BroadcastUploadStop_t"} -,{"typedef": "GetVideoURLResult_t::SteamCallback_t","type": "struct GetVideoURLResult_t"} -,{"typedef": "CCallResult::func_t","type": "void (T::*)(P *, _Bool)"} -,{"typedef": "CCallback::func_t","type": "void (T::*)(P *)"} -], -"enums":[ - {"enumname": "EUniverse","values": [ - {"name": "k_EUniverseInvalid","value": "0"} - ,{"name": "k_EUniversePublic","value": "1"} - ,{"name": "k_EUniverseBeta","value": "2"} - ,{"name": "k_EUniverseInternal","value": "3"} - ,{"name": "k_EUniverseDev","value": "4"} - ,{"name": "k_EUniverseMax","value": "5"} -]} -, {"enumname": "EResult","values": [ - {"name": "k_EResultOK","value": "1"} - ,{"name": "k_EResultFail","value": "2"} - ,{"name": "k_EResultNoConnection","value": "3"} - ,{"name": "k_EResultInvalidPassword","value": "5"} - ,{"name": "k_EResultLoggedInElsewhere","value": "6"} - ,{"name": "k_EResultInvalidProtocolVer","value": "7"} - ,{"name": "k_EResultInvalidParam","value": "8"} - ,{"name": "k_EResultFileNotFound","value": "9"} - ,{"name": "k_EResultBusy","value": "10"} - ,{"name": "k_EResultInvalidState","value": "11"} - ,{"name": "k_EResultInvalidName","value": "12"} - ,{"name": "k_EResultInvalidEmail","value": "13"} - ,{"name": "k_EResultDuplicateName","value": "14"} - ,{"name": "k_EResultAccessDenied","value": "15"} - ,{"name": "k_EResultTimeout","value": "16"} - ,{"name": "k_EResultBanned","value": "17"} - ,{"name": "k_EResultAccountNotFound","value": "18"} - ,{"name": "k_EResultInvalidSteamID","value": "19"} - ,{"name": "k_EResultServiceUnavailable","value": "20"} - ,{"name": "k_EResultNotLoggedOn","value": "21"} - ,{"name": "k_EResultPending","value": "22"} - ,{"name": "k_EResultEncryptionFailure","value": "23"} - ,{"name": "k_EResultInsufficientPrivilege","value": "24"} - ,{"name": "k_EResultLimitExceeded","value": "25"} - ,{"name": "k_EResultRevoked","value": "26"} - ,{"name": "k_EResultExpired","value": "27"} - ,{"name": "k_EResultAlreadyRedeemed","value": "28"} - ,{"name": "k_EResultDuplicateRequest","value": "29"} - ,{"name": "k_EResultAlreadyOwned","value": "30"} - ,{"name": "k_EResultIPNotFound","value": "31"} - ,{"name": "k_EResultPersistFailed","value": "32"} - ,{"name": "k_EResultLockingFailed","value": "33"} - ,{"name": "k_EResultLogonSessionReplaced","value": "34"} - ,{"name": "k_EResultConnectFailed","value": "35"} - ,{"name": "k_EResultHandshakeFailed","value": "36"} - ,{"name": "k_EResultIOFailure","value": "37"} - ,{"name": "k_EResultRemoteDisconnect","value": "38"} - ,{"name": "k_EResultShoppingCartNotFound","value": "39"} - ,{"name": "k_EResultBlocked","value": "40"} - ,{"name": "k_EResultIgnored","value": "41"} - ,{"name": "k_EResultNoMatch","value": "42"} - ,{"name": "k_EResultAccountDisabled","value": "43"} - ,{"name": "k_EResultServiceReadOnly","value": "44"} - ,{"name": "k_EResultAccountNotFeatured","value": "45"} - ,{"name": "k_EResultAdministratorOK","value": "46"} - ,{"name": "k_EResultContentVersion","value": "47"} - ,{"name": "k_EResultTryAnotherCM","value": "48"} - ,{"name": "k_EResultPasswordRequiredToKickSession","value": "49"} - ,{"name": "k_EResultAlreadyLoggedInElsewhere","value": "50"} - ,{"name": "k_EResultSuspended","value": "51"} - ,{"name": "k_EResultCancelled","value": "52"} - ,{"name": "k_EResultDataCorruption","value": "53"} - ,{"name": "k_EResultDiskFull","value": "54"} - ,{"name": "k_EResultRemoteCallFailed","value": "55"} - ,{"name": "k_EResultPasswordUnset","value": "56"} - ,{"name": "k_EResultExternalAccountUnlinked","value": "57"} - ,{"name": "k_EResultPSNTicketInvalid","value": "58"} - ,{"name": "k_EResultExternalAccountAlreadyLinked","value": "59"} - ,{"name": "k_EResultRemoteFileConflict","value": "60"} - ,{"name": "k_EResultIllegalPassword","value": "61"} - ,{"name": "k_EResultSameAsPreviousValue","value": "62"} - ,{"name": "k_EResultAccountLogonDenied","value": "63"} - ,{"name": "k_EResultCannotUseOldPassword","value": "64"} - ,{"name": "k_EResultInvalidLoginAuthCode","value": "65"} - ,{"name": "k_EResultAccountLogonDeniedNoMail","value": "66"} - ,{"name": "k_EResultHardwareNotCapableOfIPT","value": "67"} - ,{"name": "k_EResultIPTInitError","value": "68"} - ,{"name": "k_EResultParentalControlRestricted","value": "69"} - ,{"name": "k_EResultFacebookQueryError","value": "70"} - ,{"name": "k_EResultExpiredLoginAuthCode","value": "71"} - ,{"name": "k_EResultIPLoginRestrictionFailed","value": "72"} - ,{"name": "k_EResultAccountLockedDown","value": "73"} - ,{"name": "k_EResultAccountLogonDeniedVerifiedEmailRequired","value": "74"} - ,{"name": "k_EResultNoMatchingURL","value": "75"} - ,{"name": "k_EResultBadResponse","value": "76"} - ,{"name": "k_EResultRequirePasswordReEntry","value": "77"} - ,{"name": "k_EResultValueOutOfRange","value": "78"} - ,{"name": "k_EResultUnexpectedError","value": "79"} - ,{"name": "k_EResultDisabled","value": "80"} - ,{"name": "k_EResultInvalidCEGSubmission","value": "81"} - ,{"name": "k_EResultRestrictedDevice","value": "82"} - ,{"name": "k_EResultRegionLocked","value": "83"} - ,{"name": "k_EResultRateLimitExceeded","value": "84"} - ,{"name": "k_EResultAccountLoginDeniedNeedTwoFactor","value": "85"} - ,{"name": "k_EResultItemDeleted","value": "86"} - ,{"name": "k_EResultAccountLoginDeniedThrottle","value": "87"} - ,{"name": "k_EResultTwoFactorCodeMismatch","value": "88"} - ,{"name": "k_EResultTwoFactorActivationCodeMismatch","value": "89"} - ,{"name": "k_EResultAccountAssociatedToMultiplePartners","value": "90"} - ,{"name": "k_EResultNotModified","value": "91"} - ,{"name": "k_EResultNoMobileDevice","value": "92"} - ,{"name": "k_EResultTimeNotSynced","value": "93"} - ,{"name": "k_EResultSmsCodeFailed","value": "94"} - ,{"name": "k_EResultAccountLimitExceeded","value": "95"} - ,{"name": "k_EResultAccountActivityLimitExceeded","value": "96"} - ,{"name": "k_EResultPhoneActivityLimitExceeded","value": "97"} - ,{"name": "k_EResultRefundToWallet","value": "98"} - ,{"name": "k_EResultEmailSendFailure","value": "99"} - ,{"name": "k_EResultNotSettled","value": "100"} - ,{"name": "k_EResultNeedCaptcha","value": "101"} - ,{"name": "k_EResultGSLTDenied","value": "102"} - ,{"name": "k_EResultGSOwnerDenied","value": "103"} - ,{"name": "k_EResultInvalidItemType","value": "104"} - ,{"name": "k_EResultIPBanned","value": "105"} - ,{"name": "k_EResultGSLTExpired","value": "106"} -]} -, {"enumname": "EVoiceResult","values": [ - {"name": "k_EVoiceResultOK","value": "0"} - ,{"name": "k_EVoiceResultNotInitialized","value": "1"} - ,{"name": "k_EVoiceResultNotRecording","value": "2"} - ,{"name": "k_EVoiceResultNoData","value": "3"} - ,{"name": "k_EVoiceResultBufferTooSmall","value": "4"} - ,{"name": "k_EVoiceResultDataCorrupted","value": "5"} - ,{"name": "k_EVoiceResultRestricted","value": "6"} - ,{"name": "k_EVoiceResultUnsupportedCodec","value": "7"} - ,{"name": "k_EVoiceResultReceiverOutOfDate","value": "8"} - ,{"name": "k_EVoiceResultReceiverDidNotAnswer","value": "9"} -]} -, {"enumname": "EDenyReason","values": [ - {"name": "k_EDenyInvalid","value": "0"} - ,{"name": "k_EDenyInvalidVersion","value": "1"} - ,{"name": "k_EDenyGeneric","value": "2"} - ,{"name": "k_EDenyNotLoggedOn","value": "3"} - ,{"name": "k_EDenyNoLicense","value": "4"} - ,{"name": "k_EDenyCheater","value": "5"} - ,{"name": "k_EDenyLoggedInElseWhere","value": "6"} - ,{"name": "k_EDenyUnknownText","value": "7"} - ,{"name": "k_EDenyIncompatibleAnticheat","value": "8"} - ,{"name": "k_EDenyMemoryCorruption","value": "9"} - ,{"name": "k_EDenyIncompatibleSoftware","value": "10"} - ,{"name": "k_EDenySteamConnectionLost","value": "11"} - ,{"name": "k_EDenySteamConnectionError","value": "12"} - ,{"name": "k_EDenySteamResponseTimedOut","value": "13"} - ,{"name": "k_EDenySteamValidationStalled","value": "14"} - ,{"name": "k_EDenySteamOwnerLeftGuestUser","value": "15"} -]} -, {"enumname": "EBeginAuthSessionResult","values": [ - {"name": "k_EBeginAuthSessionResultOK","value": "0"} - ,{"name": "k_EBeginAuthSessionResultInvalidTicket","value": "1"} - ,{"name": "k_EBeginAuthSessionResultDuplicateRequest","value": "2"} - ,{"name": "k_EBeginAuthSessionResultInvalidVersion","value": "3"} - ,{"name": "k_EBeginAuthSessionResultGameMismatch","value": "4"} - ,{"name": "k_EBeginAuthSessionResultExpiredTicket","value": "5"} -]} -, {"enumname": "EAuthSessionResponse","values": [ - {"name": "k_EAuthSessionResponseOK","value": "0"} - ,{"name": "k_EAuthSessionResponseUserNotConnectedToSteam","value": "1"} - ,{"name": "k_EAuthSessionResponseNoLicenseOrExpired","value": "2"} - ,{"name": "k_EAuthSessionResponseVACBanned","value": "3"} - ,{"name": "k_EAuthSessionResponseLoggedInElseWhere","value": "4"} - ,{"name": "k_EAuthSessionResponseVACCheckTimedOut","value": "5"} - ,{"name": "k_EAuthSessionResponseAuthTicketCanceled","value": "6"} - ,{"name": "k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed","value": "7"} - ,{"name": "k_EAuthSessionResponseAuthTicketInvalid","value": "8"} - ,{"name": "k_EAuthSessionResponsePublisherIssuedBan","value": "9"} -]} -, {"enumname": "EUserHasLicenseForAppResult","values": [ - {"name": "k_EUserHasLicenseResultHasLicense","value": "0"} - ,{"name": "k_EUserHasLicenseResultDoesNotHaveLicense","value": "1"} - ,{"name": "k_EUserHasLicenseResultNoAuth","value": "2"} -]} -, {"enumname": "EAccountType","values": [ - {"name": "k_EAccountTypeInvalid","value": "0"} - ,{"name": "k_EAccountTypeIndividual","value": "1"} - ,{"name": "k_EAccountTypeMultiseat","value": "2"} - ,{"name": "k_EAccountTypeGameServer","value": "3"} - ,{"name": "k_EAccountTypeAnonGameServer","value": "4"} - ,{"name": "k_EAccountTypePending","value": "5"} - ,{"name": "k_EAccountTypeContentServer","value": "6"} - ,{"name": "k_EAccountTypeClan","value": "7"} - ,{"name": "k_EAccountTypeChat","value": "8"} - ,{"name": "k_EAccountTypeConsoleUser","value": "9"} - ,{"name": "k_EAccountTypeAnonUser","value": "10"} - ,{"name": "k_EAccountTypeMax","value": "11"} -]} -, {"enumname": "EAppReleaseState","values": [ - {"name": "k_EAppReleaseState_Unknown","value": "0"} - ,{"name": "k_EAppReleaseState_Unavailable","value": "1"} - ,{"name": "k_EAppReleaseState_Prerelease","value": "2"} - ,{"name": "k_EAppReleaseState_PreloadOnly","value": "3"} - ,{"name": "k_EAppReleaseState_Released","value": "4"} -]} -, {"enumname": "EAppOwnershipFlags","values": [ - {"name": "k_EAppOwnershipFlags_None","value": "0"} - ,{"name": "k_EAppOwnershipFlags_OwnsLicense","value": "1"} - ,{"name": "k_EAppOwnershipFlags_FreeLicense","value": "2"} - ,{"name": "k_EAppOwnershipFlags_RegionRestricted","value": "4"} - ,{"name": "k_EAppOwnershipFlags_LowViolence","value": "8"} - ,{"name": "k_EAppOwnershipFlags_InvalidPlatform","value": "16"} - ,{"name": "k_EAppOwnershipFlags_SharedLicense","value": "32"} - ,{"name": "k_EAppOwnershipFlags_FreeWeekend","value": "64"} - ,{"name": "k_EAppOwnershipFlags_RetailLicense","value": "128"} - ,{"name": "k_EAppOwnershipFlags_LicenseLocked","value": "256"} - ,{"name": "k_EAppOwnershipFlags_LicensePending","value": "512"} - ,{"name": "k_EAppOwnershipFlags_LicenseExpired","value": "1024"} - ,{"name": "k_EAppOwnershipFlags_LicensePermanent","value": "2048"} - ,{"name": "k_EAppOwnershipFlags_LicenseRecurring","value": "4096"} - ,{"name": "k_EAppOwnershipFlags_LicenseCanceled","value": "8192"} - ,{"name": "k_EAppOwnershipFlags_AutoGrant","value": "16384"} - ,{"name": "k_EAppOwnershipFlags_PendingGift","value": "32768"} - ,{"name": "k_EAppOwnershipFlags_RentalNotActivated","value": "65536"} - ,{"name": "k_EAppOwnershipFlags_Rental","value": "131072"} -]} -, {"enumname": "EAppType","values": [ - {"name": "k_EAppType_Invalid","value": "0"} - ,{"name": "k_EAppType_Game","value": "1"} - ,{"name": "k_EAppType_Application","value": "2"} - ,{"name": "k_EAppType_Tool","value": "4"} - ,{"name": "k_EAppType_Demo","value": "8"} - ,{"name": "k_EAppType_Media_DEPRECATED","value": "16"} - ,{"name": "k_EAppType_DLC","value": "32"} - ,{"name": "k_EAppType_Guide","value": "64"} - ,{"name": "k_EAppType_Driver","value": "128"} - ,{"name": "k_EAppType_Config","value": "256"} - ,{"name": "k_EAppType_Hardware","value": "512"} - ,{"name": "k_EAppType_Franchise","value": "1024"} - ,{"name": "k_EAppType_Video","value": "2048"} - ,{"name": "k_EAppType_Plugin","value": "4096"} - ,{"name": "k_EAppType_Music","value": "8192"} - ,{"name": "k_EAppType_Series","value": "16384"} - ,{"name": "k_EAppType_Shortcut","value": "1073741824"} - ,{"name": "k_EAppType_DepotOnly","value": "-2147483648"} -]} -, {"enumname": "ESteamUserStatType","values": [ - {"name": "k_ESteamUserStatTypeINVALID","value": "0"} - ,{"name": "k_ESteamUserStatTypeINT","value": "1"} - ,{"name": "k_ESteamUserStatTypeFLOAT","value": "2"} - ,{"name": "k_ESteamUserStatTypeAVGRATE","value": "3"} - ,{"name": "k_ESteamUserStatTypeACHIEVEMENTS","value": "4"} - ,{"name": "k_ESteamUserStatTypeGROUPACHIEVEMENTS","value": "5"} - ,{"name": "k_ESteamUserStatTypeMAX","value": "6"} -]} -, {"enumname": "EChatEntryType","values": [ - {"name": "k_EChatEntryTypeInvalid","value": "0"} - ,{"name": "k_EChatEntryTypeChatMsg","value": "1"} - ,{"name": "k_EChatEntryTypeTyping","value": "2"} - ,{"name": "k_EChatEntryTypeInviteGame","value": "3"} - ,{"name": "k_EChatEntryTypeEmote","value": "4"} - ,{"name": "k_EChatEntryTypeLeftConversation","value": "6"} - ,{"name": "k_EChatEntryTypeEntered","value": "7"} - ,{"name": "k_EChatEntryTypeWasKicked","value": "8"} - ,{"name": "k_EChatEntryTypeWasBanned","value": "9"} - ,{"name": "k_EChatEntryTypeDisconnected","value": "10"} - ,{"name": "k_EChatEntryTypeHistoricalChat","value": "11"} - ,{"name": "k_EChatEntryTypeLinkBlocked","value": "14"} -]} -, {"enumname": "EChatRoomEnterResponse","values": [ - {"name": "k_EChatRoomEnterResponseSuccess","value": "1"} - ,{"name": "k_EChatRoomEnterResponseDoesntExist","value": "2"} - ,{"name": "k_EChatRoomEnterResponseNotAllowed","value": "3"} - ,{"name": "k_EChatRoomEnterResponseFull","value": "4"} - ,{"name": "k_EChatRoomEnterResponseError","value": "5"} - ,{"name": "k_EChatRoomEnterResponseBanned","value": "6"} - ,{"name": "k_EChatRoomEnterResponseLimited","value": "7"} - ,{"name": "k_EChatRoomEnterResponseClanDisabled","value": "8"} - ,{"name": "k_EChatRoomEnterResponseCommunityBan","value": "9"} - ,{"name": "k_EChatRoomEnterResponseMemberBlockedYou","value": "10"} - ,{"name": "k_EChatRoomEnterResponseYouBlockedMember","value": "11"} -]} -, {"enumname": "EChatSteamIDInstanceFlags","values": [ - {"name": "k_EChatAccountInstanceMask","value": "4095"} - ,{"name": "k_EChatInstanceFlagClan","value": "524288"} - ,{"name": "k_EChatInstanceFlagLobby","value": "262144"} - ,{"name": "k_EChatInstanceFlagMMSLobby","value": "131072"} -]} -, {"enumname": "EMarketingMessageFlags","values": [ - {"name": "k_EMarketingMessageFlagsNone","value": "0"} - ,{"name": "k_EMarketingMessageFlagsHighPriority","value": "1"} - ,{"name": "k_EMarketingMessageFlagsPlatformWindows","value": "2"} - ,{"name": "k_EMarketingMessageFlagsPlatformMac","value": "4"} - ,{"name": "k_EMarketingMessageFlagsPlatformLinux","value": "8"} - ,{"name": "k_EMarketingMessageFlagsPlatformRestrictions","value": "14"} -]} -, {"enumname": "ENotificationPosition","values": [ - {"name": "k_EPositionTopLeft","value": "0"} - ,{"name": "k_EPositionTopRight","value": "1"} - ,{"name": "k_EPositionBottomLeft","value": "2"} - ,{"name": "k_EPositionBottomRight","value": "3"} -]} -, {"enumname": "EBroadcastUploadResult","values": [ - {"name": "k_EBroadcastUploadResultNone","value": "0"} - ,{"name": "k_EBroadcastUploadResultOK","value": "1"} - ,{"name": "k_EBroadcastUploadResultInitFailed","value": "2"} - ,{"name": "k_EBroadcastUploadResultFrameFailed","value": "3"} - ,{"name": "k_EBroadcastUploadResultTimeout","value": "4"} - ,{"name": "k_EBroadcastUploadResultBandwidthExceeded","value": "5"} - ,{"name": "k_EBroadcastUploadResultLowFPS","value": "6"} - ,{"name": "k_EBroadcastUploadResultMissingKeyFrames","value": "7"} - ,{"name": "k_EBroadcastUploadResultNoConnection","value": "8"} - ,{"name": "k_EBroadcastUploadResultRelayFailed","value": "9"} - ,{"name": "k_EBroadcastUploadResultSettingsChanged","value": "10"} - ,{"name": "k_EBroadcastUploadResultMissingAudio","value": "11"} - ,{"name": "k_EBroadcastUploadResultTooFarBehind","value": "12"} - ,{"name": "k_EBroadcastUploadResultTranscodeBehind","value": "13"} -]} -, {"enumname": "ELaunchOptionType","values": [ - {"name": "k_ELaunchOptionType_None","value": "0"} - ,{"name": "k_ELaunchOptionType_Default","value": "1"} - ,{"name": "k_ELaunchOptionType_SafeMode","value": "2"} - ,{"name": "k_ELaunchOptionType_Multiplayer","value": "3"} - ,{"name": "k_ELaunchOptionType_Config","value": "4"} - ,{"name": "k_ELaunchOptionType_OpenVR","value": "5"} - ,{"name": "k_ELaunchOptionType_Server","value": "6"} - ,{"name": "k_ELaunchOptionType_Editor","value": "7"} - ,{"name": "k_ELaunchOptionType_Manual","value": "8"} - ,{"name": "k_ELaunchOptionType_Benchmark","value": "9"} - ,{"name": "k_ELaunchOptionType_Option1","value": "10"} - ,{"name": "k_ELaunchOptionType_Option2","value": "11"} - ,{"name": "k_ELaunchOptionType_Option3","value": "12"} - ,{"name": "k_ELaunchOptionType_OculusVR","value": "13"} - ,{"name": "k_ELaunchOptionType_OpenVROverlay","value": "14"} - ,{"name": "k_ELaunchOptionType_OSVR","value": "15"} - ,{"name": "k_ELaunchOptionType_Dialog","value": "1000"} -]} -, {"enumname": "EVRHMDType","values": [ - {"name": "k_eEVRHMDType_None","value": "-1"} - ,{"name": "k_eEVRHMDType_Unknown","value": "0"} - ,{"name": "k_eEVRHMDType_HTC_Dev","value": "1"} - ,{"name": "k_eEVRHMDType_HTC_VivePre","value": "2"} - ,{"name": "k_eEVRHMDType_HTC_Vive","value": "3"} - ,{"name": "k_eEVRHMDType_HTC_Unknown","value": "20"} - ,{"name": "k_eEVRHMDType_Oculus_DK1","value": "21"} - ,{"name": "k_eEVRHMDType_Oculus_DK2","value": "22"} - ,{"name": "k_eEVRHMDType_Oculus_Rift","value": "23"} - ,{"name": "k_eEVRHMDType_Oculus_Unknown","value": "40"} -]} -, {"enumname": "EControllerType","values": [ - {"name": "k_eControllerType_None","value": "-1"} - ,{"name": "k_eControllerType_Unknown","value": "0"} - ,{"name": "k_eControllerType_UnknownSteamController","value": "1"} - ,{"name": "k_eControllerType_SteamController","value": "2"} - ,{"name": "k_eControllerType_UnknownNonSteamController","value": "30"} - ,{"name": "k_eControllerType_XBox360Controller","value": "31"} - ,{"name": "k_eControllerType_XBoxOneController","value": "32"} - ,{"name": "k_eControllerType_PS3Controller","value": "33"} - ,{"name": "k_eControllerType_PS4Controller","value": "34"} - ,{"name": "k_eControllerType_WiiController","value": "35"} - ,{"name": "k_eControllerType_AppleController","value": "36"} -]} -, {"enumname": "CGameID::EGameIDType","values": [ - {"name": "k_EGameIDTypeApp","value": "0"} - ,{"name": "k_EGameIDTypeGameMod","value": "1"} - ,{"name": "k_EGameIDTypeShortcut","value": "2"} - ,{"name": "k_EGameIDTypeP2P","value": "3"} -]} -, {"enumname": "IPCFailure_t::EFailureType","values": [ - {"name": "k_EFailureFlushedCallbackQueue","value": "0"} - ,{"name": "k_EFailurePipeFail","value": "1"} -]} -, {"enumname": "EFriendRelationship","values": [ - {"name": "k_EFriendRelationshipNone","value": "0"} - ,{"name": "k_EFriendRelationshipBlocked","value": "1"} - ,{"name": "k_EFriendRelationshipRequestRecipient","value": "2"} - ,{"name": "k_EFriendRelationshipFriend","value": "3"} - ,{"name": "k_EFriendRelationshipRequestInitiator","value": "4"} - ,{"name": "k_EFriendRelationshipIgnored","value": "5"} - ,{"name": "k_EFriendRelationshipIgnoredFriend","value": "6"} - ,{"name": "k_EFriendRelationshipSuggested_DEPRECATED","value": "7"} - ,{"name": "k_EFriendRelationshipMax","value": "8"} -]} -, {"enumname": "EPersonaState","values": [ - {"name": "k_EPersonaStateOffline","value": "0"} - ,{"name": "k_EPersonaStateOnline","value": "1"} - ,{"name": "k_EPersonaStateBusy","value": "2"} - ,{"name": "k_EPersonaStateAway","value": "3"} - ,{"name": "k_EPersonaStateSnooze","value": "4"} - ,{"name": "k_EPersonaStateLookingToTrade","value": "5"} - ,{"name": "k_EPersonaStateLookingToPlay","value": "6"} - ,{"name": "k_EPersonaStateMax","value": "7"} -]} -, {"enumname": "EFriendFlags","values": [ - {"name": "k_EFriendFlagNone","value": "0"} - ,{"name": "k_EFriendFlagBlocked","value": "1"} - ,{"name": "k_EFriendFlagFriendshipRequested","value": "2"} - ,{"name": "k_EFriendFlagImmediate","value": "4"} - ,{"name": "k_EFriendFlagClanMember","value": "8"} - ,{"name": "k_EFriendFlagOnGameServer","value": "16"} - ,{"name": "k_EFriendFlagRequestingFriendship","value": "128"} - ,{"name": "k_EFriendFlagRequestingInfo","value": "256"} - ,{"name": "k_EFriendFlagIgnored","value": "512"} - ,{"name": "k_EFriendFlagIgnoredFriend","value": "1024"} - ,{"name": "k_EFriendFlagSuggested","value": "2048"} - ,{"name": "k_EFriendFlagChatMember","value": "4096"} - ,{"name": "k_EFriendFlagAll","value": "65535"} -]} -, {"enumname": "EUserRestriction","values": [ - {"name": "k_nUserRestrictionNone","value": "0"} - ,{"name": "k_nUserRestrictionUnknown","value": "1"} - ,{"name": "k_nUserRestrictionAnyChat","value": "2"} - ,{"name": "k_nUserRestrictionVoiceChat","value": "4"} - ,{"name": "k_nUserRestrictionGroupChat","value": "8"} - ,{"name": "k_nUserRestrictionRating","value": "16"} - ,{"name": "k_nUserRestrictionGameInvites","value": "32"} - ,{"name": "k_nUserRestrictionTrading","value": "64"} -]} -, {"enumname": "EOverlayToStoreFlag","values": [ - {"name": "k_EOverlayToStoreFlag_None","value": "0"} - ,{"name": "k_EOverlayToStoreFlag_AddToCart","value": "1"} - ,{"name": "k_EOverlayToStoreFlag_AddToCartAndShow","value": "2"} -]} -, {"enumname": "EPersonaChange","values": [ - {"name": "k_EPersonaChangeName","value": "1"} - ,{"name": "k_EPersonaChangeStatus","value": "2"} - ,{"name": "k_EPersonaChangeComeOnline","value": "4"} - ,{"name": "k_EPersonaChangeGoneOffline","value": "8"} - ,{"name": "k_EPersonaChangeGamePlayed","value": "16"} - ,{"name": "k_EPersonaChangeGameServer","value": "32"} - ,{"name": "k_EPersonaChangeAvatar","value": "64"} - ,{"name": "k_EPersonaChangeJoinedSource","value": "128"} - ,{"name": "k_EPersonaChangeLeftSource","value": "256"} - ,{"name": "k_EPersonaChangeRelationshipChanged","value": "512"} - ,{"name": "k_EPersonaChangeNameFirstSet","value": "1024"} - ,{"name": "k_EPersonaChangeFacebookInfo","value": "2048"} - ,{"name": "k_EPersonaChangeNickname","value": "4096"} - ,{"name": "k_EPersonaChangeSteamLevel","value": "8192"} -]} -, {"enumname": "ESteamAPICallFailure","values": [ - {"name": "k_ESteamAPICallFailureNone","value": "-1"} - ,{"name": "k_ESteamAPICallFailureSteamGone","value": "0"} - ,{"name": "k_ESteamAPICallFailureNetworkFailure","value": "1"} - ,{"name": "k_ESteamAPICallFailureInvalidHandle","value": "2"} - ,{"name": "k_ESteamAPICallFailureMismatchedCallback","value": "3"} -]} -, {"enumname": "EGamepadTextInputMode","values": [ - {"name": "k_EGamepadTextInputModeNormal","value": "0"} - ,{"name": "k_EGamepadTextInputModePassword","value": "1"} -]} -, {"enumname": "EGamepadTextInputLineMode","values": [ - {"name": "k_EGamepadTextInputLineModeSingleLine","value": "0"} - ,{"name": "k_EGamepadTextInputLineModeMultipleLines","value": "1"} -]} -, {"enumname": "ECheckFileSignature","values": [ - {"name": "k_ECheckFileSignatureInvalidSignature","value": "0"} - ,{"name": "k_ECheckFileSignatureValidSignature","value": "1"} - ,{"name": "k_ECheckFileSignatureFileNotFound","value": "2"} - ,{"name": "k_ECheckFileSignatureNoSignaturesFoundForThisApp","value": "3"} - ,{"name": "k_ECheckFileSignatureNoSignaturesFoundForThisFile","value": "4"} -]} -, {"enumname": "EMatchMakingServerResponse","values": [ - {"name": "eServerResponded","value": "0"} - ,{"name": "eServerFailedToRespond","value": "1"} - ,{"name": "eNoServersListedOnMasterServer","value": "2"} -]} -, {"enumname": "ELobbyType","values": [ - {"name": "k_ELobbyTypePrivate","value": "0"} - ,{"name": "k_ELobbyTypeFriendsOnly","value": "1"} - ,{"name": "k_ELobbyTypePublic","value": "2"} - ,{"name": "k_ELobbyTypeInvisible","value": "3"} -]} -, {"enumname": "ELobbyComparison","values": [ - {"name": "k_ELobbyComparisonEqualToOrLessThan","value": "-2"} - ,{"name": "k_ELobbyComparisonLessThan","value": "-1"} - ,{"name": "k_ELobbyComparisonEqual","value": "0"} - ,{"name": "k_ELobbyComparisonGreaterThan","value": "1"} - ,{"name": "k_ELobbyComparisonEqualToOrGreaterThan","value": "2"} - ,{"name": "k_ELobbyComparisonNotEqual","value": "3"} -]} -, {"enumname": "ELobbyDistanceFilter","values": [ - {"name": "k_ELobbyDistanceFilterClose","value": "0"} - ,{"name": "k_ELobbyDistanceFilterDefault","value": "1"} - ,{"name": "k_ELobbyDistanceFilterFar","value": "2"} - ,{"name": "k_ELobbyDistanceFilterWorldwide","value": "3"} -]} -, {"enumname": "EChatMemberStateChange","values": [ - {"name": "k_EChatMemberStateChangeEntered","value": "1"} - ,{"name": "k_EChatMemberStateChangeLeft","value": "2"} - ,{"name": "k_EChatMemberStateChangeDisconnected","value": "4"} - ,{"name": "k_EChatMemberStateChangeKicked","value": "8"} - ,{"name": "k_EChatMemberStateChangeBanned","value": "16"} -]} -, {"enumname": "ERemoteStoragePlatform","values": [ - {"name": "k_ERemoteStoragePlatformNone","value": "0"} - ,{"name": "k_ERemoteStoragePlatformWindows","value": "1"} - ,{"name": "k_ERemoteStoragePlatformOSX","value": "2"} - ,{"name": "k_ERemoteStoragePlatformPS3","value": "4"} - ,{"name": "k_ERemoteStoragePlatformLinux","value": "8"} - ,{"name": "k_ERemoteStoragePlatformReserved2","value": "16"} - ,{"name": "k_ERemoteStoragePlatformAll","value": "-1"} -]} -, {"enumname": "ERemoteStoragePublishedFileVisibility","values": [ - {"name": "k_ERemoteStoragePublishedFileVisibilityPublic","value": "0"} - ,{"name": "k_ERemoteStoragePublishedFileVisibilityFriendsOnly","value": "1"} - ,{"name": "k_ERemoteStoragePublishedFileVisibilityPrivate","value": "2"} -]} -, {"enumname": "EWorkshopFileType","values": [ - {"name": "k_EWorkshopFileTypeFirst","value": "0"} - ,{"name": "k_EWorkshopFileTypeCommunity","value": "0"} - ,{"name": "k_EWorkshopFileTypeMicrotransaction","value": "1"} - ,{"name": "k_EWorkshopFileTypeCollection","value": "2"} - ,{"name": "k_EWorkshopFileTypeArt","value": "3"} - ,{"name": "k_EWorkshopFileTypeVideo","value": "4"} - ,{"name": "k_EWorkshopFileTypeScreenshot","value": "5"} - ,{"name": "k_EWorkshopFileTypeGame","value": "6"} - ,{"name": "k_EWorkshopFileTypeSoftware","value": "7"} - ,{"name": "k_EWorkshopFileTypeConcept","value": "8"} - ,{"name": "k_EWorkshopFileTypeWebGuide","value": "9"} - ,{"name": "k_EWorkshopFileTypeIntegratedGuide","value": "10"} - ,{"name": "k_EWorkshopFileTypeMerch","value": "11"} - ,{"name": "k_EWorkshopFileTypeControllerBinding","value": "12"} - ,{"name": "k_EWorkshopFileTypeSteamworksAccessInvite","value": "13"} - ,{"name": "k_EWorkshopFileTypeSteamVideo","value": "14"} - ,{"name": "k_EWorkshopFileTypeGameManagedItem","value": "15"} - ,{"name": "k_EWorkshopFileTypeMax","value": "16"} -]} -, {"enumname": "EWorkshopVote","values": [ - {"name": "k_EWorkshopVoteUnvoted","value": "0"} - ,{"name": "k_EWorkshopVoteFor","value": "1"} - ,{"name": "k_EWorkshopVoteAgainst","value": "2"} - ,{"name": "k_EWorkshopVoteLater","value": "3"} -]} -, {"enumname": "EWorkshopFileAction","values": [ - {"name": "k_EWorkshopFileActionPlayed","value": "0"} - ,{"name": "k_EWorkshopFileActionCompleted","value": "1"} -]} -, {"enumname": "EWorkshopEnumerationType","values": [ - {"name": "k_EWorkshopEnumerationTypeRankedByVote","value": "0"} - ,{"name": "k_EWorkshopEnumerationTypeRecent","value": "1"} - ,{"name": "k_EWorkshopEnumerationTypeTrending","value": "2"} - ,{"name": "k_EWorkshopEnumerationTypeFavoritesOfFriends","value": "3"} - ,{"name": "k_EWorkshopEnumerationTypeVotedByFriends","value": "4"} - ,{"name": "k_EWorkshopEnumerationTypeContentByFriends","value": "5"} - ,{"name": "k_EWorkshopEnumerationTypeRecentFromFollowedUsers","value": "6"} -]} -, {"enumname": "EWorkshopVideoProvider","values": [ - {"name": "k_EWorkshopVideoProviderNone","value": "0"} - ,{"name": "k_EWorkshopVideoProviderYoutube","value": "1"} -]} -, {"enumname": "EUGCReadAction","values": [ - {"name": "k_EUGCRead_ContinueReadingUntilFinished","value": "0"} - ,{"name": "k_EUGCRead_ContinueReading","value": "1"} - ,{"name": "k_EUGCRead_Close","value": "2"} -]} -, {"enumname": "ELeaderboardDataRequest","values": [ - {"name": "k_ELeaderboardDataRequestGlobal","value": "0"} - ,{"name": "k_ELeaderboardDataRequestGlobalAroundUser","value": "1"} - ,{"name": "k_ELeaderboardDataRequestFriends","value": "2"} - ,{"name": "k_ELeaderboardDataRequestUsers","value": "3"} -]} -, {"enumname": "ELeaderboardSortMethod","values": [ - {"name": "k_ELeaderboardSortMethodNone","value": "0"} - ,{"name": "k_ELeaderboardSortMethodAscending","value": "1"} - ,{"name": "k_ELeaderboardSortMethodDescending","value": "2"} -]} -, {"enumname": "ELeaderboardDisplayType","values": [ - {"name": "k_ELeaderboardDisplayTypeNone","value": "0"} - ,{"name": "k_ELeaderboardDisplayTypeNumeric","value": "1"} - ,{"name": "k_ELeaderboardDisplayTypeTimeSeconds","value": "2"} - ,{"name": "k_ELeaderboardDisplayTypeTimeMilliSeconds","value": "3"} -]} -, {"enumname": "ELeaderboardUploadScoreMethod","values": [ - {"name": "k_ELeaderboardUploadScoreMethodNone","value": "0"} - ,{"name": "k_ELeaderboardUploadScoreMethodKeepBest","value": "1"} - ,{"name": "k_ELeaderboardUploadScoreMethodForceUpdate","value": "2"} -]} -, {"enumname": "ERegisterActivationCodeResult","values": [ - {"name": "k_ERegisterActivationCodeResultOK","value": "0"} - ,{"name": "k_ERegisterActivationCodeResultFail","value": "1"} - ,{"name": "k_ERegisterActivationCodeResultAlreadyRegistered","value": "2"} - ,{"name": "k_ERegisterActivationCodeResultTimeout","value": "3"} - ,{"name": "k_ERegisterActivationCodeAlreadyOwned","value": "4"} -]} -, {"enumname": "EP2PSessionError","values": [ - {"name": "k_EP2PSessionErrorNone","value": "0"} - ,{"name": "k_EP2PSessionErrorNotRunningApp","value": "1"} - ,{"name": "k_EP2PSessionErrorNoRightsToApp","value": "2"} - ,{"name": "k_EP2PSessionErrorDestinationNotLoggedIn","value": "3"} - ,{"name": "k_EP2PSessionErrorTimeout","value": "4"} - ,{"name": "k_EP2PSessionErrorMax","value": "5"} -]} -, {"enumname": "EP2PSend","values": [ - {"name": "k_EP2PSendUnreliable","value": "0"} - ,{"name": "k_EP2PSendUnreliableNoDelay","value": "1"} - ,{"name": "k_EP2PSendReliable","value": "2"} - ,{"name": "k_EP2PSendReliableWithBuffering","value": "3"} -]} -, {"enumname": "ESNetSocketState","values": [ - {"name": "k_ESNetSocketStateInvalid","value": "0"} - ,{"name": "k_ESNetSocketStateConnected","value": "1"} - ,{"name": "k_ESNetSocketStateInitiated","value": "10"} - ,{"name": "k_ESNetSocketStateLocalCandidatesFound","value": "11"} - ,{"name": "k_ESNetSocketStateReceivedRemoteCandidates","value": "12"} - ,{"name": "k_ESNetSocketStateChallengeHandshake","value": "15"} - ,{"name": "k_ESNetSocketStateDisconnecting","value": "21"} - ,{"name": "k_ESNetSocketStateLocalDisconnect","value": "22"} - ,{"name": "k_ESNetSocketStateTimeoutDuringConnect","value": "23"} - ,{"name": "k_ESNetSocketStateRemoteEndDisconnected","value": "24"} - ,{"name": "k_ESNetSocketStateConnectionBroken","value": "25"} -]} -, {"enumname": "ESNetSocketConnectionType","values": [ - {"name": "k_ESNetSocketConnectionTypeNotConnected","value": "0"} - ,{"name": "k_ESNetSocketConnectionTypeUDP","value": "1"} - ,{"name": "k_ESNetSocketConnectionTypeUDPRelay","value": "2"} -]} -, {"enumname": "EVRScreenshotType","values": [ - {"name": "k_EVRScreenshotType_None","value": "0"} - ,{"name": "k_EVRScreenshotType_Mono","value": "1"} - ,{"name": "k_EVRScreenshotType_Stereo","value": "2"} - ,{"name": "k_EVRScreenshotType_MonoCubemap","value": "3"} - ,{"name": "k_EVRScreenshotType_MonoPanorama","value": "4"} - ,{"name": "k_EVRScreenshotType_StereoPanorama","value": "5"} -]} -, {"enumname": "AudioPlayback_Status","values": [ - {"name": "AudioPlayback_Undefined","value": "0"} - ,{"name": "AudioPlayback_Playing","value": "1"} - ,{"name": "AudioPlayback_Paused","value": "2"} - ,{"name": "AudioPlayback_Idle","value": "3"} -]} -, {"enumname": "EHTTPMethod","values": [ - {"name": "k_EHTTPMethodInvalid","value": "0"} - ,{"name": "k_EHTTPMethodGET","value": "1"} - ,{"name": "k_EHTTPMethodHEAD","value": "2"} - ,{"name": "k_EHTTPMethodPOST","value": "3"} - ,{"name": "k_EHTTPMethodPUT","value": "4"} - ,{"name": "k_EHTTPMethodDELETE","value": "5"} - ,{"name": "k_EHTTPMethodOPTIONS","value": "6"} - ,{"name": "k_EHTTPMethodPATCH","value": "7"} -]} -, {"enumname": "EHTTPStatusCode","values": [ - {"name": "k_EHTTPStatusCodeInvalid","value": "0"} - ,{"name": "k_EHTTPStatusCode100Continue","value": "100"} - ,{"name": "k_EHTTPStatusCode101SwitchingProtocols","value": "101"} - ,{"name": "k_EHTTPStatusCode200OK","value": "200"} - ,{"name": "k_EHTTPStatusCode201Created","value": "201"} - ,{"name": "k_EHTTPStatusCode202Accepted","value": "202"} - ,{"name": "k_EHTTPStatusCode203NonAuthoritative","value": "203"} - ,{"name": "k_EHTTPStatusCode204NoContent","value": "204"} - ,{"name": "k_EHTTPStatusCode205ResetContent","value": "205"} - ,{"name": "k_EHTTPStatusCode206PartialContent","value": "206"} - ,{"name": "k_EHTTPStatusCode300MultipleChoices","value": "300"} - ,{"name": "k_EHTTPStatusCode301MovedPermanently","value": "301"} - ,{"name": "k_EHTTPStatusCode302Found","value": "302"} - ,{"name": "k_EHTTPStatusCode303SeeOther","value": "303"} - ,{"name": "k_EHTTPStatusCode304NotModified","value": "304"} - ,{"name": "k_EHTTPStatusCode305UseProxy","value": "305"} - ,{"name": "k_EHTTPStatusCode307TemporaryRedirect","value": "307"} - ,{"name": "k_EHTTPStatusCode400BadRequest","value": "400"} - ,{"name": "k_EHTTPStatusCode401Unauthorized","value": "401"} - ,{"name": "k_EHTTPStatusCode402PaymentRequired","value": "402"} - ,{"name": "k_EHTTPStatusCode403Forbidden","value": "403"} - ,{"name": "k_EHTTPStatusCode404NotFound","value": "404"} - ,{"name": "k_EHTTPStatusCode405MethodNotAllowed","value": "405"} - ,{"name": "k_EHTTPStatusCode406NotAcceptable","value": "406"} - ,{"name": "k_EHTTPStatusCode407ProxyAuthRequired","value": "407"} - ,{"name": "k_EHTTPStatusCode408RequestTimeout","value": "408"} - ,{"name": "k_EHTTPStatusCode409Conflict","value": "409"} - ,{"name": "k_EHTTPStatusCode410Gone","value": "410"} - ,{"name": "k_EHTTPStatusCode411LengthRequired","value": "411"} - ,{"name": "k_EHTTPStatusCode412PreconditionFailed","value": "412"} - ,{"name": "k_EHTTPStatusCode413RequestEntityTooLarge","value": "413"} - ,{"name": "k_EHTTPStatusCode414RequestURITooLong","value": "414"} - ,{"name": "k_EHTTPStatusCode415UnsupportedMediaType","value": "415"} - ,{"name": "k_EHTTPStatusCode416RequestedRangeNotSatisfiable","value": "416"} - ,{"name": "k_EHTTPStatusCode417ExpectationFailed","value": "417"} - ,{"name": "k_EHTTPStatusCode4xxUnknown","value": "418"} - ,{"name": "k_EHTTPStatusCode429TooManyRequests","value": "429"} - ,{"name": "k_EHTTPStatusCode500InternalServerError","value": "500"} - ,{"name": "k_EHTTPStatusCode501NotImplemented","value": "501"} - ,{"name": "k_EHTTPStatusCode502BadGateway","value": "502"} - ,{"name": "k_EHTTPStatusCode503ServiceUnavailable","value": "503"} - ,{"name": "k_EHTTPStatusCode504GatewayTimeout","value": "504"} - ,{"name": "k_EHTTPStatusCode505HTTPVersionNotSupported","value": "505"} - ,{"name": "k_EHTTPStatusCode5xxUnknown","value": "599"} -]} -, {"enumname": "ESteamControllerPad","values": [ - {"name": "k_ESteamControllerPad_Left","value": "0"} - ,{"name": "k_ESteamControllerPad_Right","value": "1"} -]} -, {"enumname": "EControllerSource","values": [ - {"name": "k_EControllerSource_None","value": "0"} - ,{"name": "k_EControllerSource_LeftTrackpad","value": "1"} - ,{"name": "k_EControllerSource_RightTrackpad","value": "2"} - ,{"name": "k_EControllerSource_Joystick","value": "3"} - ,{"name": "k_EControllerSource_ABXY","value": "4"} - ,{"name": "k_EControllerSource_Switch","value": "5"} - ,{"name": "k_EControllerSource_LeftTrigger","value": "6"} - ,{"name": "k_EControllerSource_RightTrigger","value": "7"} - ,{"name": "k_EControllerSource_Gyro","value": "8"} - ,{"name": "k_EControllerSource_Count","value": "9"} -]} -, {"enumname": "EControllerSourceMode","values": [ - {"name": "k_EControllerSourceMode_None","value": "0"} - ,{"name": "k_EControllerSourceMode_Dpad","value": "1"} - ,{"name": "k_EControllerSourceMode_Buttons","value": "2"} - ,{"name": "k_EControllerSourceMode_FourButtons","value": "3"} - ,{"name": "k_EControllerSourceMode_AbsoluteMouse","value": "4"} - ,{"name": "k_EControllerSourceMode_RelativeMouse","value": "5"} - ,{"name": "k_EControllerSourceMode_JoystickMove","value": "6"} - ,{"name": "k_EControllerSourceMode_JoystickCamera","value": "7"} - ,{"name": "k_EControllerSourceMode_ScrollWheel","value": "8"} - ,{"name": "k_EControllerSourceMode_Trigger","value": "9"} - ,{"name": "k_EControllerSourceMode_TouchMenu","value": "10"} - ,{"name": "k_EControllerSourceMode_MouseJoystick","value": "11"} - ,{"name": "k_EControllerSourceMode_MouseRegion","value": "12"} - ,{"name": "k_EControllerSourceMode_RadialMenu","value": "13"} - ,{"name": "k_EControllerSourceMode_Switches","value": "14"} -]} -, {"enumname": "EControllerActionOrigin","values": [ - {"name": "k_EControllerActionOrigin_None","value": "0"} - ,{"name": "k_EControllerActionOrigin_A","value": "1"} - ,{"name": "k_EControllerActionOrigin_B","value": "2"} - ,{"name": "k_EControllerActionOrigin_X","value": "3"} - ,{"name": "k_EControllerActionOrigin_Y","value": "4"} - ,{"name": "k_EControllerActionOrigin_LeftBumper","value": "5"} - ,{"name": "k_EControllerActionOrigin_RightBumper","value": "6"} - ,{"name": "k_EControllerActionOrigin_LeftGrip","value": "7"} - ,{"name": "k_EControllerActionOrigin_RightGrip","value": "8"} - ,{"name": "k_EControllerActionOrigin_Start","value": "9"} - ,{"name": "k_EControllerActionOrigin_Back","value": "10"} - ,{"name": "k_EControllerActionOrigin_LeftPad_Touch","value": "11"} - ,{"name": "k_EControllerActionOrigin_LeftPad_Swipe","value": "12"} - ,{"name": "k_EControllerActionOrigin_LeftPad_Click","value": "13"} - ,{"name": "k_EControllerActionOrigin_LeftPad_DPadNorth","value": "14"} - ,{"name": "k_EControllerActionOrigin_LeftPad_DPadSouth","value": "15"} - ,{"name": "k_EControllerActionOrigin_LeftPad_DPadWest","value": "16"} - ,{"name": "k_EControllerActionOrigin_LeftPad_DPadEast","value": "17"} - ,{"name": "k_EControllerActionOrigin_RightPad_Touch","value": "18"} - ,{"name": "k_EControllerActionOrigin_RightPad_Swipe","value": "19"} - ,{"name": "k_EControllerActionOrigin_RightPad_Click","value": "20"} - ,{"name": "k_EControllerActionOrigin_RightPad_DPadNorth","value": "21"} - ,{"name": "k_EControllerActionOrigin_RightPad_DPadSouth","value": "22"} - ,{"name": "k_EControllerActionOrigin_RightPad_DPadWest","value": "23"} - ,{"name": "k_EControllerActionOrigin_RightPad_DPadEast","value": "24"} - ,{"name": "k_EControllerActionOrigin_LeftTrigger_Pull","value": "25"} - ,{"name": "k_EControllerActionOrigin_LeftTrigger_Click","value": "26"} - ,{"name": "k_EControllerActionOrigin_RightTrigger_Pull","value": "27"} - ,{"name": "k_EControllerActionOrigin_RightTrigger_Click","value": "28"} - ,{"name": "k_EControllerActionOrigin_LeftStick_Move","value": "29"} - ,{"name": "k_EControllerActionOrigin_LeftStick_Click","value": "30"} - ,{"name": "k_EControllerActionOrigin_LeftStick_DPadNorth","value": "31"} - ,{"name": "k_EControllerActionOrigin_LeftStick_DPadSouth","value": "32"} - ,{"name": "k_EControllerActionOrigin_LeftStick_DPadWest","value": "33"} - ,{"name": "k_EControllerActionOrigin_LeftStick_DPadEast","value": "34"} - ,{"name": "k_EControllerActionOrigin_Gyro_Move","value": "35"} - ,{"name": "k_EControllerActionOrigin_Gyro_Pitch","value": "36"} - ,{"name": "k_EControllerActionOrigin_Gyro_Yaw","value": "37"} - ,{"name": "k_EControllerActionOrigin_Gyro_Roll","value": "38"} - ,{"name": "k_EControllerActionOrigin_Count","value": "39"} -]} -, {"enumname": "EControllerActivationType","values": [ - {"name": "k_EControllerActivationType_None","value": "0"} - ,{"name": "k_EControllerActivationType_FullPress","value": "1"} - ,{"name": "k_EControllerActivationType_SoftPress","value": "2"} - ,{"name": "k_EControllerActivationType_StartPress","value": "3"} - ,{"name": "k_EControllerActivationType_Release","value": "4"} - ,{"name": "k_EControllerActivationType_LongPress","value": "5"} - ,{"name": "k_EControllerActivationType_DoublePress","value": "6"} - ,{"name": "k_EControllerActivationType_Analog","value": "7"} -]} -, {"enumname": "EControllerPressureButton","values": [ - {"name": "k_EControllerPressureButton_LeftTrackPad","value": "0"} - ,{"name": "k_EControllerPressureButton_RightTrackPad","value": "1"} - ,{"name": "k_EControllerPressureButton_LeftBumper","value": "2"} - ,{"name": "k_EControllerPressureButton_RightBumper","value": "3"} - ,{"name": "k_EControllerPressureButton_LeftGripLower","value": "4"} - ,{"name": "k_EControllerPressureButton_RightGripLower","value": "5"} - ,{"name": "k_EControllerPressureButton_LeftGripUpper","value": "6"} - ,{"name": "k_EControllerPressureButton_RightGripUpper","value": "7"} - ,{"name": "k_EControllerPressureButton_Invalid","value": "8"} -]} -, {"enumname": "EControllerActivatorOutputAxis","values": [ - {"name": "k_EOutputAxisLeftTrigger","value": "0"} - ,{"name": "k_EOutputAxisRightTrigger","value": "1"} - ,{"name": "k_EOutputAxisLeftThumbXPos","value": "2"} - ,{"name": "k_EOutputAxisLeftThumbXNeg","value": "3"} - ,{"name": "k_EOutputAxisLeftThumbYPos","value": "4"} - ,{"name": "k_EOutputAxisLeftThumbYNeg","value": "5"} - ,{"name": "k_EOutputAxisRightThumbXPos","value": "6"} - ,{"name": "k_EOutputAxisRightThumbXNeg","value": "7"} - ,{"name": "k_EOutputAxisRightThumbYPos","value": "8"} - ,{"name": "k_EOutputAxisRightThumbYNeg","value": "9"} -]} -, {"enumname": "EControllerConfigFeature","values": [ - {"name": "k_EControllerConfigFeature_None","value": "0"} - ,{"name": "k_EControllerConfigFeature_Gamepad","value": "1"} - ,{"name": "k_EControllerConfigFeature_Keyboard","value": "2"} - ,{"name": "k_EControllerConfigFeature_Mouse","value": "3"} - ,{"name": "k_EControllerConfigFeature_Gyro","value": "4"} - ,{"name": "k_EControllerConfigFeature_TouchMenu","value": "5"} - ,{"name": "k_EControllerConfigFeature_ModeShift","value": "6"} - ,{"name": "k_EControllerConfigFeature_ActionSet","value": "7"} - ,{"name": "k_EControllerConfigFeature_Activator","value": "8"} -]} -, {"enumname": "EControllerPopupMenuActivationType","values": [ - {"name": "k_EMenuButtonPress","value": "0"} - ,{"name": "k_EMenuButtonRelease","value": "1"} - ,{"name": "k_EMenuTouchRelease","value": "2"} - ,{"name": "k_EMenuTouchAlways","value": "3"} -]} -, {"enumname": "EUGCMatchingUGCType","values": [ - {"name": "k_EUGCMatchingUGCType_Items","value": "0"} - ,{"name": "k_EUGCMatchingUGCType_Items_Mtx","value": "1"} - ,{"name": "k_EUGCMatchingUGCType_Items_ReadyToUse","value": "2"} - ,{"name": "k_EUGCMatchingUGCType_Collections","value": "3"} - ,{"name": "k_EUGCMatchingUGCType_Artwork","value": "4"} - ,{"name": "k_EUGCMatchingUGCType_Videos","value": "5"} - ,{"name": "k_EUGCMatchingUGCType_Screenshots","value": "6"} - ,{"name": "k_EUGCMatchingUGCType_AllGuides","value": "7"} - ,{"name": "k_EUGCMatchingUGCType_WebGuides","value": "8"} - ,{"name": "k_EUGCMatchingUGCType_IntegratedGuides","value": "9"} - ,{"name": "k_EUGCMatchingUGCType_UsableInGame","value": "10"} - ,{"name": "k_EUGCMatchingUGCType_ControllerBindings","value": "11"} - ,{"name": "k_EUGCMatchingUGCType_GameManagedItems","value": "12"} - ,{"name": "k_EUGCMatchingUGCType_All","value": "-1"} -]} -, {"enumname": "EUserUGCList","values": [ - {"name": "k_EUserUGCList_Published","value": "0"} - ,{"name": "k_EUserUGCList_VotedOn","value": "1"} - ,{"name": "k_EUserUGCList_VotedUp","value": "2"} - ,{"name": "k_EUserUGCList_VotedDown","value": "3"} - ,{"name": "k_EUserUGCList_WillVoteLater","value": "4"} - ,{"name": "k_EUserUGCList_Favorited","value": "5"} - ,{"name": "k_EUserUGCList_Subscribed","value": "6"} - ,{"name": "k_EUserUGCList_UsedOrPlayed","value": "7"} - ,{"name": "k_EUserUGCList_Followed","value": "8"} -]} -, {"enumname": "EUserUGCListSortOrder","values": [ - {"name": "k_EUserUGCListSortOrder_CreationOrderDesc","value": "0"} - ,{"name": "k_EUserUGCListSortOrder_CreationOrderAsc","value": "1"} - ,{"name": "k_EUserUGCListSortOrder_TitleAsc","value": "2"} - ,{"name": "k_EUserUGCListSortOrder_LastUpdatedDesc","value": "3"} - ,{"name": "k_EUserUGCListSortOrder_SubscriptionDateDesc","value": "4"} - ,{"name": "k_EUserUGCListSortOrder_VoteScoreDesc","value": "5"} - ,{"name": "k_EUserUGCListSortOrder_ForModeration","value": "6"} -]} -, {"enumname": "EUGCQuery","values": [ - {"name": "k_EUGCQuery_RankedByVote","value": "0"} - ,{"name": "k_EUGCQuery_RankedByPublicationDate","value": "1"} - ,{"name": "k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate","value": "2"} - ,{"name": "k_EUGCQuery_RankedByTrend","value": "3"} - ,{"name": "k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate","value": "4"} - ,{"name": "k_EUGCQuery_CreatedByFriendsRankedByPublicationDate","value": "5"} - ,{"name": "k_EUGCQuery_RankedByNumTimesReported","value": "6"} - ,{"name": "k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate","value": "7"} - ,{"name": "k_EUGCQuery_NotYetRated","value": "8"} - ,{"name": "k_EUGCQuery_RankedByTotalVotesAsc","value": "9"} - ,{"name": "k_EUGCQuery_RankedByVotesUp","value": "10"} - ,{"name": "k_EUGCQuery_RankedByTextSearch","value": "11"} - ,{"name": "k_EUGCQuery_RankedByTotalUniqueSubscriptions","value": "12"} - ,{"name": "k_EUGCQuery_RankedByPlaytimeTrend","value": "13"} - ,{"name": "k_EUGCQuery_RankedByTotalPlaytime","value": "14"} - ,{"name": "k_EUGCQuery_RankedByAveragePlaytimeTrend","value": "15"} - ,{"name": "k_EUGCQuery_RankedByLifetimeAveragePlaytime","value": "16"} - ,{"name": "k_EUGCQuery_RankedByPlaytimeSessionsTrend","value": "17"} - ,{"name": "k_EUGCQuery_RankedByLifetimePlaytimeSessions","value": "18"} -]} -, {"enumname": "EItemUpdateStatus","values": [ - {"name": "k_EItemUpdateStatusInvalid","value": "0"} - ,{"name": "k_EItemUpdateStatusPreparingConfig","value": "1"} - ,{"name": "k_EItemUpdateStatusPreparingContent","value": "2"} - ,{"name": "k_EItemUpdateStatusUploadingContent","value": "3"} - ,{"name": "k_EItemUpdateStatusUploadingPreviewFile","value": "4"} - ,{"name": "k_EItemUpdateStatusCommittingChanges","value": "5"} -]} -, {"enumname": "EItemState","values": [ - {"name": "k_EItemStateNone","value": "0"} - ,{"name": "k_EItemStateSubscribed","value": "1"} - ,{"name": "k_EItemStateLegacyItem","value": "2"} - ,{"name": "k_EItemStateInstalled","value": "4"} - ,{"name": "k_EItemStateNeedsUpdate","value": "8"} - ,{"name": "k_EItemStateDownloading","value": "16"} - ,{"name": "k_EItemStateDownloadPending","value": "32"} -]} -, {"enumname": "EItemStatistic","values": [ - {"name": "k_EItemStatistic_NumSubscriptions","value": "0"} - ,{"name": "k_EItemStatistic_NumFavorites","value": "1"} - ,{"name": "k_EItemStatistic_NumFollowers","value": "2"} - ,{"name": "k_EItemStatistic_NumUniqueSubscriptions","value": "3"} - ,{"name": "k_EItemStatistic_NumUniqueFavorites","value": "4"} - ,{"name": "k_EItemStatistic_NumUniqueFollowers","value": "5"} - ,{"name": "k_EItemStatistic_NumUniqueWebsiteViews","value": "6"} - ,{"name": "k_EItemStatistic_ReportScore","value": "7"} - ,{"name": "k_EItemStatistic_NumSecondsPlayed","value": "8"} - ,{"name": "k_EItemStatistic_NumPlaytimeSessions","value": "9"} - ,{"name": "k_EItemStatistic_NumComments","value": "10"} -]} -, {"enumname": "EItemPreviewType","values": [ - {"name": "k_EItemPreviewType_Image","value": "0"} - ,{"name": "k_EItemPreviewType_YouTubeVideo","value": "1"} - ,{"name": "k_EItemPreviewType_Sketchfab","value": "2"} - ,{"name": "k_EItemPreviewType_EnvironmentMap_HorizontalCross","value": "3"} - ,{"name": "k_EItemPreviewType_EnvironmentMap_LatLong","value": "4"} - ,{"name": "k_EItemPreviewType_ReservedMax","value": "255"} -]} -, {"enumname": "ISteamHTMLSurface::EHTMLMouseButton","values": [ - {"name": "eHTMLMouseButton_Left","value": "0"} - ,{"name": "eHTMLMouseButton_Right","value": "1"} - ,{"name": "eHTMLMouseButton_Middle","value": "2"} -]} -, {"enumname": "ISteamHTMLSurface::EMouseCursor","values": [ - {"name": "dc_user","value": "0"} - ,{"name": "dc_none","value": "1"} - ,{"name": "dc_arrow","value": "2"} - ,{"name": "dc_ibeam","value": "3"} - ,{"name": "dc_hourglass","value": "4"} - ,{"name": "dc_waitarrow","value": "5"} - ,{"name": "dc_crosshair","value": "6"} - ,{"name": "dc_up","value": "7"} - ,{"name": "dc_sizenw","value": "8"} - ,{"name": "dc_sizese","value": "9"} - ,{"name": "dc_sizene","value": "10"} - ,{"name": "dc_sizesw","value": "11"} - ,{"name": "dc_sizew","value": "12"} - ,{"name": "dc_sizee","value": "13"} - ,{"name": "dc_sizen","value": "14"} - ,{"name": "dc_sizes","value": "15"} - ,{"name": "dc_sizewe","value": "16"} - ,{"name": "dc_sizens","value": "17"} - ,{"name": "dc_sizeall","value": "18"} - ,{"name": "dc_no","value": "19"} - ,{"name": "dc_hand","value": "20"} - ,{"name": "dc_blank","value": "21"} - ,{"name": "dc_middle_pan","value": "22"} - ,{"name": "dc_north_pan","value": "23"} - ,{"name": "dc_north_east_pan","value": "24"} - ,{"name": "dc_east_pan","value": "25"} - ,{"name": "dc_south_east_pan","value": "26"} - ,{"name": "dc_south_pan","value": "27"} - ,{"name": "dc_south_west_pan","value": "28"} - ,{"name": "dc_west_pan","value": "29"} - ,{"name": "dc_north_west_pan","value": "30"} - ,{"name": "dc_alias","value": "31"} - ,{"name": "dc_cell","value": "32"} - ,{"name": "dc_colresize","value": "33"} - ,{"name": "dc_copycur","value": "34"} - ,{"name": "dc_verticaltext","value": "35"} - ,{"name": "dc_rowresize","value": "36"} - ,{"name": "dc_zoomin","value": "37"} - ,{"name": "dc_zoomout","value": "38"} - ,{"name": "dc_help","value": "39"} - ,{"name": "dc_custom","value": "40"} - ,{"name": "dc_last","value": "41"} -]} -, {"enumname": "ISteamHTMLSurface::EHTMLKeyModifiers","values": [ - {"name": "k_eHTMLKeyModifier_None","value": "0"} - ,{"name": "k_eHTMLKeyModifier_AltDown","value": "1"} - ,{"name": "k_eHTMLKeyModifier_CtrlDown","value": "2"} - ,{"name": "k_eHTMLKeyModifier_ShiftDown","value": "4"} -]} -, {"enumname": "ESteamItemFlags","values": [ - {"name": "k_ESteamItemNoTrade","value": "1"} - ,{"name": "k_ESteamItemRemoved","value": "256"} - ,{"name": "k_ESteamItemConsumed","value": "512"} -]} -], -"consts":[{ - "constname": "k_iSteamUserCallbacks","consttype": "int", "constval": "100"} -,{ - "constname": "k_iSteamGameServerCallbacks","consttype": "int", "constval": "200"} -,{ - "constname": "k_iSteamFriendsCallbacks","consttype": "int", "constval": "300"} -,{ - "constname": "k_iSteamBillingCallbacks","consttype": "int", "constval": "400"} -,{ - "constname": "k_iSteamMatchmakingCallbacks","consttype": "int", "constval": "500"} -,{ - "constname": "k_iSteamContentServerCallbacks","consttype": "int", "constval": "600"} -,{ - "constname": "k_iSteamUtilsCallbacks","consttype": "int", "constval": "700"} -,{ - "constname": "k_iClientFriendsCallbacks","consttype": "int", "constval": "800"} -,{ - "constname": "k_iClientUserCallbacks","consttype": "int", "constval": "900"} -,{ - "constname": "k_iSteamAppsCallbacks","consttype": "int", "constval": "1000"} -,{ - "constname": "k_iSteamUserStatsCallbacks","consttype": "int", "constval": "1100"} -,{ - "constname": "k_iSteamNetworkingCallbacks","consttype": "int", "constval": "1200"} -,{ - "constname": "k_iClientRemoteStorageCallbacks","consttype": "int", "constval": "1300"} -,{ - "constname": "k_iClientDepotBuilderCallbacks","consttype": "int", "constval": "1400"} -,{ - "constname": "k_iSteamGameServerItemsCallbacks","consttype": "int", "constval": "1500"} -,{ - "constname": "k_iClientUtilsCallbacks","consttype": "int", "constval": "1600"} -,{ - "constname": "k_iSteamGameCoordinatorCallbacks","consttype": "int", "constval": "1700"} -,{ - "constname": "k_iSteamGameServerStatsCallbacks","consttype": "int", "constval": "1800"} -,{ - "constname": "k_iSteam2AsyncCallbacks","consttype": "int", "constval": "1900"} -,{ - "constname": "k_iSteamGameStatsCallbacks","consttype": "int", "constval": "2000"} -,{ - "constname": "k_iClientHTTPCallbacks","consttype": "int", "constval": "2100"} -,{ - "constname": "k_iClientScreenshotsCallbacks","consttype": "int", "constval": "2200"} -,{ - "constname": "k_iSteamScreenshotsCallbacks","consttype": "int", "constval": "2300"} -,{ - "constname": "k_iClientAudioCallbacks","consttype": "int", "constval": "2400"} -,{ - "constname": "k_iClientUnifiedMessagesCallbacks","consttype": "int", "constval": "2500"} -,{ - "constname": "k_iSteamStreamLauncherCallbacks","consttype": "int", "constval": "2600"} -,{ - "constname": "k_iClientControllerCallbacks","consttype": "int", "constval": "2700"} -,{ - "constname": "k_iSteamControllerCallbacks","consttype": "int", "constval": "2800"} -,{ - "constname": "k_iClientParentalSettingsCallbacks","consttype": "int", "constval": "2900"} -,{ - "constname": "k_iClientDeviceAuthCallbacks","consttype": "int", "constval": "3000"} -,{ - "constname": "k_iClientNetworkDeviceManagerCallbacks","consttype": "int", "constval": "3100"} -,{ - "constname": "k_iClientMusicCallbacks","consttype": "int", "constval": "3200"} -,{ - "constname": "k_iClientRemoteClientManagerCallbacks","consttype": "int", "constval": "3300"} -,{ - "constname": "k_iClientUGCCallbacks","consttype": "int", "constval": "3400"} -,{ - "constname": "k_iSteamStreamClientCallbacks","consttype": "int", "constval": "3500"} -,{ - "constname": "k_IClientProductBuilderCallbacks","consttype": "int", "constval": "3600"} -,{ - "constname": "k_iClientShortcutsCallbacks","consttype": "int", "constval": "3700"} -,{ - "constname": "k_iClientRemoteControlManagerCallbacks","consttype": "int", "constval": "3800"} -,{ - "constname": "k_iSteamAppListCallbacks","consttype": "int", "constval": "3900"} -,{ - "constname": "k_iSteamMusicCallbacks","consttype": "int", "constval": "4000"} -,{ - "constname": "k_iSteamMusicRemoteCallbacks","consttype": "int", "constval": "4100"} -,{ - "constname": "k_iClientVRCallbacks","consttype": "int", "constval": "4200"} -,{ - "constname": "k_iClientGameNotificationCallbacks","consttype": "int", "constval": "4300"} -,{ - "constname": "k_iSteamGameNotificationCallbacks","consttype": "int", "constval": "4400"} -,{ - "constname": "k_iSteamHTMLSurfaceCallbacks","consttype": "int", "constval": "4500"} -,{ - "constname": "k_iClientVideoCallbacks","consttype": "int", "constval": "4600"} -,{ - "constname": "k_iClientInventoryCallbacks","consttype": "int", "constval": "4700"} -,{ - "constname": "k_iClientBluetoothManagerCallbacks","consttype": "int", "constval": "4800"} -,{ - "constname": "k_cchPersonaNameMax","consttype": "int", "constval": "128"} -,{ - "constname": "k_cwchPersonaNameMax","consttype": "int", "constval": "32"} -,{ - "constname": "k_cchMaxRichPresenceKeys","consttype": "int", "constval": "20"} -,{ - "constname": "k_cchMaxRichPresenceKeyLength","consttype": "int", "constval": "64"} -,{ - "constname": "k_cchMaxRichPresenceValueLength","consttype": "int", "constval": "256"} -,{ - "constname": "k_cchStatNameMax","consttype": "int", "constval": "128"} -,{ - "constname": "k_cchLeaderboardNameMax","consttype": "int", "constval": "128"} -,{ - "constname": "k_cLeaderboardDetailsMax","consttype": "int", "constval": "64"} -,{ - "constname": "k_InvalidUnifiedMessageHandle","consttype": "const ClientUnifiedMessageHandle", "constval": "0"} -,{ - "constname": "k_SteamItemInstanceIDInvalid","consttype": "const SteamItemInstanceID_t", "constval": "18446744073709551615"} -,{ - "constname": "k_SteamInventoryResultInvalid","consttype": "const SteamInventoryResult_t", "constval": "-1"} -], -"structs":[{"struct": "CSteamID","fields": [ -{ "fieldname": "m_steamid", "fieldtype": "union SteamID_t"}]} -,{"struct": "CSteamID::SteamID_t","fields": [ -{ "fieldname": "m_comp", "fieldtype": "struct SteamIDComponent_t"}, -{ "fieldname": "m_unAll64Bits", "fieldtype": "uint64"}]} -,{"struct": "CSteamID::SteamID_t::SteamIDComponent_t","fields": [ -{ "fieldname": "m_unAccountID", "fieldtype": "uint32"}, -{ "fieldname": "m_unAccountInstance", "fieldtype": "unsigned int"}, -{ "fieldname": "m_EAccountType", "fieldtype": "unsigned int"}, -{ "fieldname": "m_EUniverse", "fieldtype": "enum EUniverse"}]} -,{"struct": "CGameID::GameID_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "unsigned int"}, -{ "fieldname": "m_nType", "fieldtype": "unsigned int"}, -{ "fieldname": "m_nModID", "fieldtype": "unsigned int"}]} -,{"struct": "CGameID::(anonymous)","fields": [ -{ "fieldname": "m_ulGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_gameID", "fieldtype": "struct CGameID::GameID_t"}]} -,{"struct": "ValvePackingSentinel_t","fields": [ -{ "fieldname": "m_u32", "fieldtype": "uint32"}, -{ "fieldname": "m_u64", "fieldtype": "uint64"}, -{ "fieldname": "m_u16", "fieldtype": "uint16"}, -{ "fieldname": "m_d", "fieldtype": "double"}]} -,{"struct": "CallbackMsg_t","fields": [ -{ "fieldname": "m_hSteamUser", "fieldtype": "HSteamUser"}, -{ "fieldname": "m_iCallback", "fieldtype": "int"}, -{ "fieldname": "m_pubParam", "fieldtype": "uint8 *"}, -{ "fieldname": "m_cubParam", "fieldtype": "int"}]} -,{"struct": "SteamServerConnectFailure_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bStillRetrying", "fieldtype": "_Bool"}]} -,{"struct": "SteamServersDisconnected_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "ClientGameServerDeny_t","fields": [ -{ "fieldname": "m_uAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_unGameServerIP", "fieldtype": "uint32"}, -{ "fieldname": "m_usGameServerPort", "fieldtype": "uint16"}, -{ "fieldname": "m_bSecure", "fieldtype": "uint16"}, -{ "fieldname": "m_uReason", "fieldtype": "uint32"}]} -,{"struct": "ValidateAuthTicketResponse_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eAuthSessionResponse", "fieldtype": "enum EAuthSessionResponse"}, -{ "fieldname": "m_OwnerSteamID", "fieldtype": "class CSteamID"}]} -,{"struct": "MicroTxnAuthorizationResponse_t","fields": [ -{ "fieldname": "m_unAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_ulOrderID", "fieldtype": "uint64"}, -{ "fieldname": "m_bAuthorized", "fieldtype": "uint8"}]} -,{"struct": "EncryptedAppTicketResponse_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "GetAuthSessionTicketResponse_t","fields": [ -{ "fieldname": "m_hAuthTicket", "fieldtype": "HAuthTicket"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "GameWebCallback_t","fields": [ -{ "fieldname": "m_szURL", "fieldtype": "char [256]"}]} -,{"struct": "StoreAuthURLResponse_t","fields": [ -{ "fieldname": "m_szURL", "fieldtype": "char [512]"}]} -,{"struct": "FriendGameInfo_t","fields": [ -{ "fieldname": "m_gameID", "fieldtype": "class CGameID"}, -{ "fieldname": "m_unGameIP", "fieldtype": "uint32"}, -{ "fieldname": "m_usGamePort", "fieldtype": "uint16"}, -{ "fieldname": "m_usQueryPort", "fieldtype": "uint16"}, -{ "fieldname": "m_steamIDLobby", "fieldtype": "class CSteamID"}]} -,{"struct": "FriendSessionStateInfo_t","fields": [ -{ "fieldname": "m_uiOnlineSessionInstances", "fieldtype": "uint32"}, -{ "fieldname": "m_uiPublishedToFriendsSessionInstance", "fieldtype": "uint8"}]} -,{"struct": "PersonaStateChange_t","fields": [ -{ "fieldname": "m_ulSteamID", "fieldtype": "uint64"}, -{ "fieldname": "m_nChangeFlags", "fieldtype": "int"}]} -,{"struct": "GameOverlayActivated_t","fields": [ -{ "fieldname": "m_bActive", "fieldtype": "uint8"}]} -,{"struct": "GameServerChangeRequested_t","fields": [ -{ "fieldname": "m_rgchServer", "fieldtype": "char [64]"}, -{ "fieldname": "m_rgchPassword", "fieldtype": "char [64]"}]} -,{"struct": "GameLobbyJoinRequested_t","fields": [ -{ "fieldname": "m_steamIDLobby", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_steamIDFriend", "fieldtype": "class CSteamID"}]} -,{"struct": "AvatarImageLoaded_t","fields": [ -{ "fieldname": "m_steamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_iImage", "fieldtype": "int"}, -{ "fieldname": "m_iWide", "fieldtype": "int"}, -{ "fieldname": "m_iTall", "fieldtype": "int"}]} -,{"struct": "ClanOfficerListResponse_t","fields": [ -{ "fieldname": "m_steamIDClan", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_cOfficers", "fieldtype": "int"}, -{ "fieldname": "m_bSuccess", "fieldtype": "uint8"}]} -,{"struct": "FriendRichPresenceUpdate_t","fields": [ -{ "fieldname": "m_steamIDFriend", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "GameRichPresenceJoinRequested_t","fields": [ -{ "fieldname": "m_steamIDFriend", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_rgchConnect", "fieldtype": "char [256]"}]} -,{"struct": "GameConnectedClanChatMsg_t","fields": [ -{ "fieldname": "m_steamIDClanChat", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_iMessageID", "fieldtype": "int"}]} -,{"struct": "GameConnectedChatJoin_t","fields": [ -{ "fieldname": "m_steamIDClanChat", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "GameConnectedChatLeave_t","fields": [ -{ "fieldname": "m_steamIDClanChat", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_bKicked", "fieldtype": "_Bool"}, -{ "fieldname": "m_bDropped", "fieldtype": "_Bool"}]} -,{"struct": "DownloadClanActivityCountsResult_t","fields": [ -{ "fieldname": "m_bSuccess", "fieldtype": "_Bool"}]} -,{"struct": "JoinClanChatRoomCompletionResult_t","fields": [ -{ "fieldname": "m_steamIDClanChat", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eChatRoomEnterResponse", "fieldtype": "enum EChatRoomEnterResponse"}]} -,{"struct": "GameConnectedFriendChatMsg_t","fields": [ -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_iMessageID", "fieldtype": "int"}]} -,{"struct": "FriendsGetFollowerCount_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_nCount", "fieldtype": "int"}]} -,{"struct": "FriendsIsFollowing_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_bIsFollowing", "fieldtype": "_Bool"}]} -,{"struct": "FriendsEnumerateFollowingList_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_rgSteamID", "fieldtype": "class CSteamID [50]"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}]} -,{"struct": "SetPersonaNameResponse_t","fields": [ -{ "fieldname": "m_bSuccess", "fieldtype": "_Bool"}, -{ "fieldname": "m_bLocalSuccess", "fieldtype": "_Bool"}, -{ "fieldname": "m_result", "fieldtype": "enum EResult"}]} -,{"struct": "LowBatteryPower_t","fields": [ -{ "fieldname": "m_nMinutesBatteryLeft", "fieldtype": "uint8"}]} -,{"struct": "SteamAPICallCompleted_t","fields": [ -{ "fieldname": "m_hAsyncCall", "fieldtype": "SteamAPICall_t"}, -{ "fieldname": "m_iCallback", "fieldtype": "int"}, -{ "fieldname": "m_cubParam", "fieldtype": "uint32"}]} -,{"struct": "CheckFileSignature_t","fields": [ -{ "fieldname": "m_eCheckFileSignature", "fieldtype": "enum ECheckFileSignature"}]} -,{"struct": "GamepadTextInputDismissed_t","fields": [ -{ "fieldname": "m_bSubmitted", "fieldtype": "_Bool"}, -{ "fieldname": "m_unSubmittedText", "fieldtype": "uint32"}]} -,{"struct": "MatchMakingKeyValuePair_t","fields": [ -{ "fieldname": "m_szKey", "fieldtype": "char [256]"}, -{ "fieldname": "m_szValue", "fieldtype": "char [256]"}]} -,{"struct": "servernetadr_t","fields": [ -{ "fieldname": "m_usConnectionPort", "fieldtype": "uint16"}, -{ "fieldname": "m_usQueryPort", "fieldtype": "uint16"}, -{ "fieldname": "m_unIP", "fieldtype": "uint32"}]} -,{"struct": "gameserveritem_t","fields": [ -{ "fieldname": "m_NetAdr", "fieldtype": "class servernetadr_t"}, -{ "fieldname": "m_nPing", "fieldtype": "int"}, -{ "fieldname": "m_bHadSuccessfulResponse", "fieldtype": "_Bool"}, -{ "fieldname": "m_bDoNotRefresh", "fieldtype": "_Bool"}, -{ "fieldname": "m_szGameDir", "fieldtype": "char [32]"}, -{ "fieldname": "m_szMap", "fieldtype": "char [32]"}, -{ "fieldname": "m_szGameDescription", "fieldtype": "char [64]"}, -{ "fieldname": "m_nAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_nPlayers", "fieldtype": "int"}, -{ "fieldname": "m_nMaxPlayers", "fieldtype": "int"}, -{ "fieldname": "m_nBotPlayers", "fieldtype": "int"}, -{ "fieldname": "m_bPassword", "fieldtype": "_Bool"}, -{ "fieldname": "m_bSecure", "fieldtype": "_Bool"}, -{ "fieldname": "m_ulTimeLastPlayed", "fieldtype": "uint32"}, -{ "fieldname": "m_nServerVersion", "fieldtype": "int"}, -{ "fieldname": "m_szServerName", "fieldtype": "char [64]"}, -{ "fieldname": "m_szGameTags", "fieldtype": "char [128]"}, -{ "fieldname": "m_steamID", "fieldtype": "class CSteamID"}]} -,{"struct": "FavoritesListChanged_t","fields": [ -{ "fieldname": "m_nIP", "fieldtype": "uint32"}, -{ "fieldname": "m_nQueryPort", "fieldtype": "uint32"}, -{ "fieldname": "m_nConnPort", "fieldtype": "uint32"}, -{ "fieldname": "m_nAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_nFlags", "fieldtype": "uint32"}, -{ "fieldname": "m_bAdd", "fieldtype": "_Bool"}, -{ "fieldname": "m_unAccountId", "fieldtype": "AccountID_t"}]} -,{"struct": "LobbyInvite_t","fields": [ -{ "fieldname": "m_ulSteamIDUser", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulGameID", "fieldtype": "uint64"}]} -,{"struct": "LobbyEnter_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_rgfChatPermissions", "fieldtype": "uint32"}, -{ "fieldname": "m_bLocked", "fieldtype": "_Bool"}, -{ "fieldname": "m_EChatRoomEnterResponse", "fieldtype": "uint32"}]} -,{"struct": "LobbyDataUpdate_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDMember", "fieldtype": "uint64"}, -{ "fieldname": "m_bSuccess", "fieldtype": "uint8"}]} -,{"struct": "LobbyChatUpdate_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDUserChanged", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDMakingChange", "fieldtype": "uint64"}, -{ "fieldname": "m_rgfChatMemberStateChange", "fieldtype": "uint32"}]} -,{"struct": "LobbyChatMsg_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDUser", "fieldtype": "uint64"}, -{ "fieldname": "m_eChatEntryType", "fieldtype": "uint8"}, -{ "fieldname": "m_iChatID", "fieldtype": "uint32"}]} -,{"struct": "LobbyGameCreated_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDGameServer", "fieldtype": "uint64"}, -{ "fieldname": "m_unIP", "fieldtype": "uint32"}, -{ "fieldname": "m_usPort", "fieldtype": "uint16"}]} -,{"struct": "LobbyMatchList_t","fields": [ -{ "fieldname": "m_nLobbiesMatching", "fieldtype": "uint32"}]} -,{"struct": "LobbyKicked_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDAdmin", "fieldtype": "uint64"}, -{ "fieldname": "m_bKickedDueToDisconnect", "fieldtype": "uint8"}]} -,{"struct": "LobbyCreated_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}]} -,{"struct": "PSNGameBootInviteResult_t","fields": [ -{ "fieldname": "m_bGameBootInviteExists", "fieldtype": "_Bool"}, -{ "fieldname": "m_steamIDLobby", "fieldtype": "class CSteamID"}]} -,{"struct": "FavoritesListAccountsUpdated_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "SteamParamStringArray_t","fields": [ -{ "fieldname": "m_ppStrings", "fieldtype": "const char **"}, -{ "fieldname": "m_nNumStrings", "fieldtype": "int32"}]} -,{"struct": "RemoteStorageAppSyncedClient_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unNumDownloads", "fieldtype": "int"}]} -,{"struct": "RemoteStorageAppSyncedServer_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unNumUploads", "fieldtype": "int"}]} -,{"struct": "RemoteStorageAppSyncProgress_t","fields": [ -{ "fieldname": "m_rgchCurrentFile", "fieldtype": "char [260]"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_uBytesTransferredThisChunk", "fieldtype": "uint32"}, -{ "fieldname": "m_dAppPercentComplete", "fieldtype": "double"}, -{ "fieldname": "m_bUploading", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStorageAppSyncStatusCheck_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "RemoteStorageFileShareResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_hFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_rgchFilename", "fieldtype": "char [260]"}]} -,{"struct": "RemoteStoragePublishFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStorageDeletePublishedFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}]} -,{"struct": "RemoteStorageEnumerateUserPublishedFilesResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}]} -,{"struct": "RemoteStorageSubscribePublishedFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}]} -,{"struct": "RemoteStorageEnumerateUserSubscribedFilesResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}, -{ "fieldname": "m_rgRTimeSubscribed", "fieldtype": "uint32 [50]"}]} -,{"struct": "RemoteStorageUnsubscribePublishedFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}]} -,{"struct": "RemoteStorageUpdatePublishedFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStorageDownloadUGCResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_hFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_nSizeInBytes", "fieldtype": "int32"}, -{ "fieldname": "m_pchFileName", "fieldtype": "char [260]"}, -{ "fieldname": "m_ulSteamIDOwner", "fieldtype": "uint64"}]} -,{"struct": "RemoteStorageGetPublishedFileDetailsResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nCreatorAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_nConsumerAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_rgchTitle", "fieldtype": "char [129]"}, -{ "fieldname": "m_rgchDescription", "fieldtype": "char [8000]"}, -{ "fieldname": "m_hFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_hPreviewFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_ulSteamIDOwner", "fieldtype": "uint64"}, -{ "fieldname": "m_rtimeCreated", "fieldtype": "uint32"}, -{ "fieldname": "m_rtimeUpdated", "fieldtype": "uint32"}, -{ "fieldname": "m_eVisibility", "fieldtype": "enum ERemoteStoragePublishedFileVisibility"}, -{ "fieldname": "m_bBanned", "fieldtype": "_Bool"}, -{ "fieldname": "m_rgchTags", "fieldtype": "char [1025]"}, -{ "fieldname": "m_bTagsTruncated", "fieldtype": "_Bool"}, -{ "fieldname": "m_pchFileName", "fieldtype": "char [260]"}, -{ "fieldname": "m_nFileSize", "fieldtype": "int32"}, -{ "fieldname": "m_nPreviewFileSize", "fieldtype": "int32"}, -{ "fieldname": "m_rgchURL", "fieldtype": "char [256]"}, -{ "fieldname": "m_eFileType", "fieldtype": "enum EWorkshopFileType"}, -{ "fieldname": "m_bAcceptedForUse", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStorageEnumerateWorkshopFilesResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}, -{ "fieldname": "m_rgScore", "fieldtype": "float [50]"}, -{ "fieldname": "m_nAppId", "fieldtype": "AppId_t"}, -{ "fieldname": "m_unStartIndex", "fieldtype": "uint32"}]} -,{"struct": "RemoteStorageGetPublishedItemVoteDetailsResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nVotesFor", "fieldtype": "int32"}, -{ "fieldname": "m_nVotesAgainst", "fieldtype": "int32"}, -{ "fieldname": "m_nReports", "fieldtype": "int32"}, -{ "fieldname": "m_fScore", "fieldtype": "float"}]} -,{"struct": "RemoteStoragePublishedFileSubscribed_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "RemoteStoragePublishedFileUnsubscribed_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "RemoteStoragePublishedFileDeleted_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "RemoteStorageUpdateUserPublishedItemVoteResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}]} -,{"struct": "RemoteStorageUserVoteDetails_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eVote", "fieldtype": "enum EWorkshopVote"}]} -,{"struct": "RemoteStorageEnumerateUserSharedWorkshopFilesResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}]} -,{"struct": "RemoteStorageSetUserPublishedFileActionResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eAction", "fieldtype": "enum EWorkshopFileAction"}]} -,{"struct": "RemoteStorageEnumeratePublishedFilesByUserActionResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_eAction", "fieldtype": "enum EWorkshopFileAction"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}, -{ "fieldname": "m_rgRTimeUpdated", "fieldtype": "uint32 [50]"}]} -,{"struct": "RemoteStoragePublishFileProgress_t","fields": [ -{ "fieldname": "m_dPercentFile", "fieldtype": "double"}, -{ "fieldname": "m_bPreview", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStoragePublishedFileUpdated_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_ulUnused", "fieldtype": "uint64"}]} -,{"struct": "RemoteStorageFileWriteAsyncComplete_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "RemoteStorageFileReadAsyncComplete_t","fields": [ -{ "fieldname": "m_hFileReadAsync", "fieldtype": "SteamAPICall_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nOffset", "fieldtype": "uint32"}, -{ "fieldname": "m_cubRead", "fieldtype": "uint32"}]} -,{"struct": "LeaderboardEntry_t","fields": [ -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_nGlobalRank", "fieldtype": "int32"}, -{ "fieldname": "m_nScore", "fieldtype": "int32"}, -{ "fieldname": "m_cDetails", "fieldtype": "int32"}, -{ "fieldname": "m_hUGC", "fieldtype": "UGCHandle_t"}]} -,{"struct": "UserStatsReceived_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "UserStatsStored_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "UserAchievementStored_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_bGroupAchievement", "fieldtype": "_Bool"}, -{ "fieldname": "m_rgchAchievementName", "fieldtype": "char [128]"}, -{ "fieldname": "m_nCurProgress", "fieldtype": "uint32"}, -{ "fieldname": "m_nMaxProgress", "fieldtype": "uint32"}]} -,{"struct": "LeaderboardFindResult_t","fields": [ -{ "fieldname": "m_hSteamLeaderboard", "fieldtype": "SteamLeaderboard_t"}, -{ "fieldname": "m_bLeaderboardFound", "fieldtype": "uint8"}]} -,{"struct": "LeaderboardScoresDownloaded_t","fields": [ -{ "fieldname": "m_hSteamLeaderboard", "fieldtype": "SteamLeaderboard_t"}, -{ "fieldname": "m_hSteamLeaderboardEntries", "fieldtype": "SteamLeaderboardEntries_t"}, -{ "fieldname": "m_cEntryCount", "fieldtype": "int"}]} -,{"struct": "LeaderboardScoreUploaded_t","fields": [ -{ "fieldname": "m_bSuccess", "fieldtype": "uint8"}, -{ "fieldname": "m_hSteamLeaderboard", "fieldtype": "SteamLeaderboard_t"}, -{ "fieldname": "m_nScore", "fieldtype": "int32"}, -{ "fieldname": "m_bScoreChanged", "fieldtype": "uint8"}, -{ "fieldname": "m_nGlobalRankNew", "fieldtype": "int"}, -{ "fieldname": "m_nGlobalRankPrevious", "fieldtype": "int"}]} -,{"struct": "NumberOfCurrentPlayers_t","fields": [ -{ "fieldname": "m_bSuccess", "fieldtype": "uint8"}, -{ "fieldname": "m_cPlayers", "fieldtype": "int32"}]} -,{"struct": "UserStatsUnloaded_t","fields": [ -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "UserAchievementIconFetched_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "class CGameID"}, -{ "fieldname": "m_rgchAchievementName", "fieldtype": "char [128]"}, -{ "fieldname": "m_bAchieved", "fieldtype": "_Bool"}, -{ "fieldname": "m_nIconHandle", "fieldtype": "int"}]} -,{"struct": "GlobalAchievementPercentagesReady_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "LeaderboardUGCSet_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_hSteamLeaderboard", "fieldtype": "SteamLeaderboard_t"}]} -,{"struct": "PS3TrophiesInstalled_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_ulRequiredDiskSpace", "fieldtype": "uint64"}]} -,{"struct": "GlobalStatsReceived_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "DlcInstalled_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "RegisterActivationCodeResponse_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum ERegisterActivationCodeResult"}, -{ "fieldname": "m_unPackageRegistered", "fieldtype": "uint32"}]} -,{"struct": "AppProofOfPurchaseKeyResponse_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_cchKeyLength", "fieldtype": "uint32"}, -{ "fieldname": "m_rgchKey", "fieldtype": "char [240]"}]} -,{"struct": "FileDetailsResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_ulFileSize", "fieldtype": "uint64"}, -{ "fieldname": "m_FileSHA", "fieldtype": "uint8 [20]"}, -{ "fieldname": "m_unFlags", "fieldtype": "uint32"}]} -,{"struct": "P2PSessionState_t","fields": [ -{ "fieldname": "m_bConnectionActive", "fieldtype": "uint8"}, -{ "fieldname": "m_bConnecting", "fieldtype": "uint8"}, -{ "fieldname": "m_eP2PSessionError", "fieldtype": "uint8"}, -{ "fieldname": "m_bUsingRelay", "fieldtype": "uint8"}, -{ "fieldname": "m_nBytesQueuedForSend", "fieldtype": "int32"}, -{ "fieldname": "m_nPacketsQueuedForSend", "fieldtype": "int32"}, -{ "fieldname": "m_nRemoteIP", "fieldtype": "uint32"}, -{ "fieldname": "m_nRemotePort", "fieldtype": "uint16"}]} -,{"struct": "P2PSessionRequest_t","fields": [ -{ "fieldname": "m_steamIDRemote", "fieldtype": "class CSteamID"}]} -,{"struct": "P2PSessionConnectFail_t","fields": [ -{ "fieldname": "m_steamIDRemote", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eP2PSessionError", "fieldtype": "uint8"}]} -,{"struct": "SocketStatusCallback_t","fields": [ -{ "fieldname": "m_hSocket", "fieldtype": "SNetSocket_t"}, -{ "fieldname": "m_hListenSocket", "fieldtype": "SNetListenSocket_t"}, -{ "fieldname": "m_steamIDRemote", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eSNetSocketState", "fieldtype": "int"}]} -,{"struct": "ScreenshotReady_t","fields": [ -{ "fieldname": "m_hLocal", "fieldtype": "ScreenshotHandle"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "VolumeHasChanged_t","fields": [ -{ "fieldname": "m_flNewVolume", "fieldtype": "float"}]} -,{"struct": "MusicPlayerWantsShuffled_t","fields": [ -{ "fieldname": "m_bShuffled", "fieldtype": "_Bool"}]} -,{"struct": "MusicPlayerWantsLooped_t","fields": [ -{ "fieldname": "m_bLooped", "fieldtype": "_Bool"}]} -,{"struct": "MusicPlayerWantsVolume_t","fields": [ -{ "fieldname": "m_flNewVolume", "fieldtype": "float"}]} -,{"struct": "MusicPlayerSelectsQueueEntry_t","fields": [ -{ "fieldname": "nID", "fieldtype": "int"}]} -,{"struct": "MusicPlayerSelectsPlaylistEntry_t","fields": [ -{ "fieldname": "nID", "fieldtype": "int"}]} -,{"struct": "MusicPlayerWantsPlayingRepeatStatus_t","fields": [ -{ "fieldname": "m_nPlayingRepeatStatus", "fieldtype": "int"}]} -,{"struct": "HTTPRequestCompleted_t","fields": [ -{ "fieldname": "m_hRequest", "fieldtype": "HTTPRequestHandle"}, -{ "fieldname": "m_ulContextValue", "fieldtype": "uint64"}, -{ "fieldname": "m_bRequestSuccessful", "fieldtype": "_Bool"}, -{ "fieldname": "m_eStatusCode", "fieldtype": "enum EHTTPStatusCode"}, -{ "fieldname": "m_unBodySize", "fieldtype": "uint32"}]} -,{"struct": "HTTPRequestHeadersReceived_t","fields": [ -{ "fieldname": "m_hRequest", "fieldtype": "HTTPRequestHandle"}, -{ "fieldname": "m_ulContextValue", "fieldtype": "uint64"}]} -,{"struct": "HTTPRequestDataReceived_t","fields": [ -{ "fieldname": "m_hRequest", "fieldtype": "HTTPRequestHandle"}, -{ "fieldname": "m_ulContextValue", "fieldtype": "uint64"}, -{ "fieldname": "m_cOffset", "fieldtype": "uint32"}, -{ "fieldname": "m_cBytesReceived", "fieldtype": "uint32"}]} -,{"struct": "SteamUnifiedMessagesSendMethodResult_t","fields": [ -{ "fieldname": "m_hHandle", "fieldtype": "ClientUnifiedMessageHandle"}, -{ "fieldname": "m_unContext", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unResponseSize", "fieldtype": "uint32"}]} -,{"struct": "ControllerAnalogActionData_t","fields": [ -{ "fieldname": "eMode", "fieldtype": "enum EControllerSourceMode"}, -{ "fieldname": "x", "fieldtype": "float"}, -{ "fieldname": "y", "fieldtype": "float"}, -{ "fieldname": "bActive", "fieldtype": "_Bool"}]} -,{"struct": "ControllerDigitalActionData_t","fields": [ -{ "fieldname": "bState", "fieldtype": "_Bool"}, -{ "fieldname": "bActive", "fieldtype": "_Bool"}]} -,{"struct": "ControllerMotionData_t","fields": [ -{ "fieldname": "rotQuatX", "fieldtype": "float"}, -{ "fieldname": "rotQuatY", "fieldtype": "float"}, -{ "fieldname": "rotQuatZ", "fieldtype": "float"}, -{ "fieldname": "rotQuatW", "fieldtype": "float"}, -{ "fieldname": "posAccelX", "fieldtype": "float"}, -{ "fieldname": "posAccelY", "fieldtype": "float"}, -{ "fieldname": "posAccelZ", "fieldtype": "float"}, -{ "fieldname": "rotVelX", "fieldtype": "float"}, -{ "fieldname": "rotVelY", "fieldtype": "float"}, -{ "fieldname": "rotVelZ", "fieldtype": "float"}]} -,{"struct": "SteamUGCDetails_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_eFileType", "fieldtype": "enum EWorkshopFileType"}, -{ "fieldname": "m_nCreatorAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_nConsumerAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_rgchTitle", "fieldtype": "char [129]"}, -{ "fieldname": "m_rgchDescription", "fieldtype": "char [8000]"}, -{ "fieldname": "m_ulSteamIDOwner", "fieldtype": "uint64"}, -{ "fieldname": "m_rtimeCreated", "fieldtype": "uint32"}, -{ "fieldname": "m_rtimeUpdated", "fieldtype": "uint32"}, -{ "fieldname": "m_rtimeAddedToUserList", "fieldtype": "uint32"}, -{ "fieldname": "m_eVisibility", "fieldtype": "enum ERemoteStoragePublishedFileVisibility"}, -{ "fieldname": "m_bBanned", "fieldtype": "_Bool"}, -{ "fieldname": "m_bAcceptedForUse", "fieldtype": "_Bool"}, -{ "fieldname": "m_bTagsTruncated", "fieldtype": "_Bool"}, -{ "fieldname": "m_rgchTags", "fieldtype": "char [1025]"}, -{ "fieldname": "m_hFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_hPreviewFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_pchFileName", "fieldtype": "char [260]"}, -{ "fieldname": "m_nFileSize", "fieldtype": "int32"}, -{ "fieldname": "m_nPreviewFileSize", "fieldtype": "int32"}, -{ "fieldname": "m_rgchURL", "fieldtype": "char [256]"}, -{ "fieldname": "m_unVotesUp", "fieldtype": "uint32"}, -{ "fieldname": "m_unVotesDown", "fieldtype": "uint32"}, -{ "fieldname": "m_flScore", "fieldtype": "float"}, -{ "fieldname": "m_unNumChildren", "fieldtype": "uint32"}]} -,{"struct": "SteamUGCQueryCompleted_t","fields": [ -{ "fieldname": "m_handle", "fieldtype": "UGCQueryHandle_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unNumResultsReturned", "fieldtype": "uint32"}, -{ "fieldname": "m_unTotalMatchingResults", "fieldtype": "uint32"}, -{ "fieldname": "m_bCachedData", "fieldtype": "_Bool"}]} -,{"struct": "SteamUGCRequestUGCDetailsResult_t","fields": [ -{ "fieldname": "m_details", "fieldtype": "struct SteamUGCDetails_t"}, -{ "fieldname": "m_bCachedData", "fieldtype": "_Bool"}]} -,{"struct": "CreateItemResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype": "_Bool"}]} -,{"struct": "SubmitItemUpdateResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype": "_Bool"}]} -,{"struct": "DownloadItemResult_t","fields": [ -{ "fieldname": "m_unAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "UserFavoriteItemsListChanged_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bWasAddRequest", "fieldtype": "_Bool"}]} -,{"struct": "SetUserItemVoteResult_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bVoteUp", "fieldtype": "_Bool"}]} -,{"struct": "GetUserItemVoteResult_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bVotedUp", "fieldtype": "_Bool"}, -{ "fieldname": "m_bVotedDown", "fieldtype": "_Bool"}, -{ "fieldname": "m_bVoteSkipped", "fieldtype": "_Bool"}]} -,{"struct": "StartPlaytimeTrackingResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "StopPlaytimeTrackingResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "SteamAppInstalled_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "SteamAppUninstalled_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "HTML_BrowserReady_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}]} -,{"struct": "HTML_NeedsPaint_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pBGRA", "fieldtype": "const char *"}, -{ "fieldname": "unWide", "fieldtype": "uint32"}, -{ "fieldname": "unTall", "fieldtype": "uint32"}, -{ "fieldname": "unUpdateX", "fieldtype": "uint32"}, -{ "fieldname": "unUpdateY", "fieldtype": "uint32"}, -{ "fieldname": "unUpdateWide", "fieldtype": "uint32"}, -{ "fieldname": "unUpdateTall", "fieldtype": "uint32"}, -{ "fieldname": "unScrollX", "fieldtype": "uint32"}, -{ "fieldname": "unScrollY", "fieldtype": "uint32"}, -{ "fieldname": "flPageScale", "fieldtype": "float"}, -{ "fieldname": "unPageSerial", "fieldtype": "uint32"}]} -,{"struct": "HTML_StartRequest_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "pchTarget", "fieldtype": "const char *"}, -{ "fieldname": "pchPostData", "fieldtype": "const char *"}, -{ "fieldname": "bIsRedirect", "fieldtype": "_Bool"}]} -,{"struct": "HTML_CloseBrowser_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}]} -,{"struct": "HTML_URLChanged_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "pchPostData", "fieldtype": "const char *"}, -{ "fieldname": "bIsRedirect", "fieldtype": "_Bool"}, -{ "fieldname": "pchPageTitle", "fieldtype": "const char *"}, -{ "fieldname": "bNewNavigation", "fieldtype": "_Bool"}]} -,{"struct": "HTML_FinishedRequest_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "pchPageTitle", "fieldtype": "const char *"}]} -,{"struct": "HTML_OpenLinkInNewTab_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}]} -,{"struct": "HTML_ChangedTitle_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchTitle", "fieldtype": "const char *"}]} -,{"struct": "HTML_SearchResults_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "unResults", "fieldtype": "uint32"}, -{ "fieldname": "unCurrentMatch", "fieldtype": "uint32"}]} -,{"struct": "HTML_CanGoBackAndForward_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "bCanGoBack", "fieldtype": "_Bool"}, -{ "fieldname": "bCanGoForward", "fieldtype": "_Bool"}]} -,{"struct": "HTML_HorizontalScroll_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "unScrollMax", "fieldtype": "uint32"}, -{ "fieldname": "unScrollCurrent", "fieldtype": "uint32"}, -{ "fieldname": "flPageScale", "fieldtype": "float"}, -{ "fieldname": "bVisible", "fieldtype": "_Bool"}, -{ "fieldname": "unPageSize", "fieldtype": "uint32"}]} -,{"struct": "HTML_VerticalScroll_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "unScrollMax", "fieldtype": "uint32"}, -{ "fieldname": "unScrollCurrent", "fieldtype": "uint32"}, -{ "fieldname": "flPageScale", "fieldtype": "float"}, -{ "fieldname": "bVisible", "fieldtype": "_Bool"}, -{ "fieldname": "unPageSize", "fieldtype": "uint32"}]} -,{"struct": "HTML_LinkAtPosition_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "x", "fieldtype": "uint32"}, -{ "fieldname": "y", "fieldtype": "uint32"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "bInput", "fieldtype": "_Bool"}, -{ "fieldname": "bLiveLink", "fieldtype": "_Bool"}]} -,{"struct": "HTML_JSAlert_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMessage", "fieldtype": "const char *"}]} -,{"struct": "HTML_JSConfirm_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMessage", "fieldtype": "const char *"}]} -,{"struct": "HTML_FileOpenDialog_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchTitle", "fieldtype": "const char *"}, -{ "fieldname": "pchInitialFile", "fieldtype": "const char *"}]} -,{"struct": "HTML_NewWindow_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "unX", "fieldtype": "uint32"}, -{ "fieldname": "unY", "fieldtype": "uint32"}, -{ "fieldname": "unWide", "fieldtype": "uint32"}, -{ "fieldname": "unTall", "fieldtype": "uint32"}, -{ "fieldname": "unNewWindow_BrowserHandle", "fieldtype": "HHTMLBrowser"}]} -,{"struct": "HTML_SetCursor_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "eMouseCursor", "fieldtype": "uint32"}]} -,{"struct": "HTML_StatusText_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMsg", "fieldtype": "const char *"}]} -,{"struct": "HTML_ShowToolTip_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMsg", "fieldtype": "const char *"}]} -,{"struct": "HTML_UpdateToolTip_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMsg", "fieldtype": "const char *"}]} -,{"struct": "HTML_HideToolTip_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}]} -,{"struct": "SteamItemDetails_t","fields": [ -{ "fieldname": "m_itemId", "fieldtype": "SteamItemInstanceID_t"}, -{ "fieldname": "m_iDefinition", "fieldtype": "SteamItemDef_t"}, -{ "fieldname": "m_unQuantity", "fieldtype": "uint16"}, -{ "fieldname": "m_unFlags", "fieldtype": "uint16"}]} -,{"struct": "SteamInventoryResultReady_t","fields": [ -{ "fieldname": "m_handle", "fieldtype": "SteamInventoryResult_t"}, -{ "fieldname": "m_result", "fieldtype": "enum EResult"}]} -,{"struct": "SteamInventoryFullUpdate_t","fields": [ -{ "fieldname": "m_handle", "fieldtype": "SteamInventoryResult_t"}]} -,{"struct": "BroadcastUploadStop_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EBroadcastUploadResult"}]} -,{"struct": "GetVideoURLResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unVideoAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_rgchURL", "fieldtype": "char [256]"}]} -,{"struct": "CSteamAPIContext","fields": [ -{ "fieldname": "m_pSteamClient", "fieldtype": "class ISteamClient *"}, -{ "fieldname": "m_pSteamUser", "fieldtype": "class ISteamUser *"}, -{ "fieldname": "m_pSteamFriends", "fieldtype": "class ISteamFriends *"}, -{ "fieldname": "m_pSteamUtils", "fieldtype": "class ISteamUtils *"}, -{ "fieldname": "m_pSteamMatchmaking", "fieldtype": "class ISteamMatchmaking *"}, -{ "fieldname": "m_pSteamUserStats", "fieldtype": "class ISteamUserStats *"}, -{ "fieldname": "m_pSteamApps", "fieldtype": "class ISteamApps *"}, -{ "fieldname": "m_pSteamMatchmakingServers", "fieldtype": "class ISteamMatchmakingServers *"}, -{ "fieldname": "m_pSteamNetworking", "fieldtype": "class ISteamNetworking *"}, -{ "fieldname": "m_pSteamRemoteStorage", "fieldtype": "class ISteamRemoteStorage *"}, -{ "fieldname": "m_pSteamScreenshots", "fieldtype": "class ISteamScreenshots *"}, -{ "fieldname": "m_pSteamHTTP", "fieldtype": "class ISteamHTTP *"}, -{ "fieldname": "m_pSteamUnifiedMessages", "fieldtype": "class ISteamUnifiedMessages *"}, -{ "fieldname": "m_pController", "fieldtype": "class ISteamController *"}, -{ "fieldname": "m_pSteamUGC", "fieldtype": "class ISteamUGC *"}, -{ "fieldname": "m_pSteamAppList", "fieldtype": "class ISteamAppList *"}, -{ "fieldname": "m_pSteamMusic", "fieldtype": "class ISteamMusic *"}, -{ "fieldname": "m_pSteamMusicRemote", "fieldtype": "class ISteamMusicRemote *"}, -{ "fieldname": "m_pSteamHTMLSurface", "fieldtype": "class ISteamHTMLSurface *"}, -{ "fieldname": "m_pSteamInventory", "fieldtype": "class ISteamInventory *"}, -{ "fieldname": "m_pSteamVideo", "fieldtype": "class ISteamVideo *"}]} -,{"struct": "CCallbackBase","fields": [ -{ "fieldname": "m_nCallbackFlags", "fieldtype": "uint8"}, -{ "fieldname": "m_iCallback", "fieldtype": "int"}]} -,{"struct": "CCallResult","fields": [ -{ "fieldname": "m_hAPICall", "fieldtype": "SteamAPICall_t"}, -{ "fieldname": "m_pObj", "fieldtype": "T *"}, -{ "fieldname": "m_Func", "fieldtype": "func_t"}]} -,{"struct": "CCallback","fields": [ -{ "fieldname": "m_pObj", "fieldtype": "T *"}, -{ "fieldname": "m_Func", "fieldtype": "func_t"}]} -,{"struct": "GSClientApprove_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_OwnerSteamID", "fieldtype": "class CSteamID"}]} -,{"struct": "GSClientDeny_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eDenyReason", "fieldtype": "enum EDenyReason"}, -{ "fieldname": "m_rgchOptionalText", "fieldtype": "char [128]"}]} -,{"struct": "GSClientKick_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eDenyReason", "fieldtype": "enum EDenyReason"}]} -,{"struct": "GSClientAchievementStatus_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "uint64"}, -{ "fieldname": "m_pchAchievement", "fieldtype": "char [128]"}, -{ "fieldname": "m_bUnlocked", "fieldtype": "_Bool"}]} -,{"struct": "GSPolicyResponse_t","fields": [ -{ "fieldname": "m_bSecure", "fieldtype": "uint8"}]} -,{"struct": "GSGameplayStats_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nRank", "fieldtype": "int32"}, -{ "fieldname": "m_unTotalConnects", "fieldtype": "uint32"}, -{ "fieldname": "m_unTotalMinutesPlayed", "fieldtype": "uint32"}]} -,{"struct": "GSClientGroupStatus_t","fields": [ -{ "fieldname": "m_SteamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_SteamIDGroup", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_bMember", "fieldtype": "_Bool"}, -{ "fieldname": "m_bOfficer", "fieldtype": "_Bool"}]} -,{"struct": "GSReputation_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unReputationScore", "fieldtype": "uint32"}, -{ "fieldname": "m_bBanned", "fieldtype": "_Bool"}, -{ "fieldname": "m_unBannedIP", "fieldtype": "uint32"}, -{ "fieldname": "m_usBannedPort", "fieldtype": "uint16"}, -{ "fieldname": "m_ulBannedGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_unBanExpires", "fieldtype": "uint32"}]} -,{"struct": "AssociateWithClanResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "ComputeNewPlayerCompatibilityResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_cPlayersThatDontLikeCandidate", "fieldtype": "int"}, -{ "fieldname": "m_cPlayersThatCandidateDoesntLike", "fieldtype": "int"}, -{ "fieldname": "m_cClanPlayersThatDontLikeCandidate", "fieldtype": "int"}, -{ "fieldname": "m_SteamIDCandidate", "fieldtype": "class CSteamID"}]} -,{"struct": "GSStatsReceived_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "GSStatsStored_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "GSStatsUnloaded_t","fields": [ -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -], -"methods":[{ - "classname": "ISteamClient", - "methodname": "CreateSteamPipe", - "returntype": "HSteamPipe" +{ + "callback_structs": [ + { + "callback_id": 101, + "fields": [], + "struct": "SteamServersConnected_t" + }, + { + "callback_id": 102, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bStillRetrying", "fieldtype":"bool" } + ], + "struct": "SteamServerConnectFailure_t" + }, + { + "callback_id": 103, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "SteamServersDisconnected_t" + }, + { + "callback_id": 113, + "fields": [ + { "fieldname":"m_uAppID", "fieldtype":"uint32" }, + { "fieldname":"m_unGameServerIP", "fieldtype":"uint32" }, + { "fieldname":"m_usGameServerPort", "fieldtype":"uint16" }, + { "fieldname":"m_bSecure", "fieldtype":"uint16" }, + { "fieldname":"m_uReason", "fieldtype":"uint32" } + ], + "struct": "ClientGameServerDeny_t" + }, + { + "callback_id": 117, + "enums": [ + { + "enumname": "EFailureType", + "fqname": "IPCFailure_t::EFailureType", + "values": [ + { "name":"k_EFailureFlushedCallbackQueue", "value":"0" }, + { "name":"k_EFailurePipeFail", "value":"1" } + ] + } + ], + "fields": [ + { "fieldname":"m_eFailureType", "fieldtype":"uint8" } + ], + "struct": "IPCFailure_t" + }, + { + "callback_id": 125, + "fields": [], + "struct": "LicensesUpdated_t" + }, + { + "callback_id": 143, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_eAuthSessionResponse", "fieldtype":"EAuthSessionResponse" }, + { "fieldname":"m_OwnerSteamID", "fieldtype":"CSteamID" } + ], + "struct": "ValidateAuthTicketResponse_t" + }, + { + "callback_id": 152, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"uint32" }, + { "fieldname":"m_ulOrderID", "fieldtype":"uint64" }, + { "fieldname":"m_bAuthorized", "fieldtype":"uint8" } + ], + "struct": "MicroTxnAuthorizationResponse_t" + }, + { + "callback_id": 154, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "EncryptedAppTicketResponse_t" + }, + { + "callback_id": 163, + "fields": [ + { "fieldname":"m_hAuthTicket", "fieldtype":"HAuthTicket" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "GetAuthSessionTicketResponse_t" + }, + { + "callback_id": 164, + "fields": [ + { "fieldname":"m_szURL", "fieldtype":"char [256]" } + ], + "struct": "GameWebCallback_t" + }, + { + "callback_id": 165, + "fields": [ + { "fieldname":"m_szURL", "fieldtype":"char [512]" } + ], + "struct": "StoreAuthURLResponse_t" + }, + { + "callback_id": 166, + "fields": [ + { "fieldname":"m_bAllowed", "fieldtype":"bool" }, + { "fieldname":"m_eNotAllowedReason", "fieldtype":"EMarketNotAllowedReasonFlags" }, + { "fieldname":"m_rtAllowedAtTime", "fieldtype":"RTime32" }, + { "fieldname":"m_cdaySteamGuardRequiredDays", "fieldtype":"int" }, + { "fieldname":"m_cdayNewDeviceCooldown", "fieldtype":"int" } + ], + "struct": "MarketEligibilityResponse_t" + }, + { + "callback_id": 167, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_appid", "fieldtype":"AppId_t" }, + { "fieldname":"m_bApplicable", "fieldtype":"bool" }, + { "fieldname":"m_csecsLast5h", "fieldtype":"int32" }, + { "fieldname":"m_progress", "fieldtype":"EDurationControlProgress" }, + { "fieldname":"m_notification", "fieldtype":"EDurationControlNotification" }, + { "fieldname":"m_csecsToday", "fieldtype":"int32" }, + { "fieldname":"m_csecsRemaining", "fieldtype":"int32" } + ], + "struct": "DurationControl_t" + }, + { + "callback_id": 168, + "fields": [ + { "fieldname":"m_hAuthTicket", "fieldtype":"HAuthTicket" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_cubTicket", "fieldtype":"int" }, + { "fieldname":"m_rgubTicket", "fieldtype":"uint8 [2560]" } + ], + "struct": "GetTicketForWebApiResponse_t" + }, + { + "callback_id": 304, + "fields": [ + { "fieldname":"m_ulSteamID", "fieldtype":"uint64" }, + { "fieldname":"m_nChangeFlags", "fieldtype":"int" } + ], + "struct": "PersonaStateChange_t" + }, + { + "callback_id": 331, + "fields": [ + { "fieldname":"m_bActive", "fieldtype":"uint8" }, + { "fieldname":"m_bUserInitiated", "fieldtype":"bool" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_dwOverlayPID", "fieldtype":"uint32" } + ], + "struct": "GameOverlayActivated_t" + }, + { + "callback_id": 332, + "fields": [ + { "fieldname":"m_rgchServer", "fieldtype":"char [64]" }, + { "fieldname":"m_rgchPassword", "fieldtype":"char [64]" } + ], + "struct": "GameServerChangeRequested_t" + }, + { + "callback_id": 333, + "fields": [ + { "fieldname":"m_steamIDLobby", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDFriend", "fieldtype":"CSteamID" } + ], + "struct": "GameLobbyJoinRequested_t" + }, + { + "callback_id": 334, + "fields": [ + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_iImage", "fieldtype":"int" }, + { "fieldname":"m_iWide", "fieldtype":"int" }, + { "fieldname":"m_iTall", "fieldtype":"int" } + ], + "struct": "AvatarImageLoaded_t" + }, + { + "callback_id": 335, + "fields": [ + { "fieldname":"m_steamIDClan", "fieldtype":"CSteamID" }, + { "fieldname":"m_cOfficers", "fieldtype":"int" }, + { "fieldname":"m_bSuccess", "fieldtype":"uint8" } + ], + "struct": "ClanOfficerListResponse_t" + }, + { + "callback_id": 336, + "fields": [ + { "fieldname":"m_steamIDFriend", "fieldtype":"CSteamID" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "FriendRichPresenceUpdate_t" + }, + { + "callback_id": 337, + "fields": [ + { "fieldname":"m_steamIDFriend", "fieldtype":"CSteamID" }, + { "fieldname":"m_rgchConnect", "fieldtype":"char [256]" } + ], + "struct": "GameRichPresenceJoinRequested_t" + }, + { + "callback_id": 338, + "fields": [ + { "fieldname":"m_steamIDClanChat", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_iMessageID", "fieldtype":"int" } + ], + "struct": "GameConnectedClanChatMsg_t" + }, + { + "callback_id": 339, + "fields": [ + { "fieldname":"m_steamIDClanChat", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "GameConnectedChatJoin_t" + }, + { + "callback_id": 340, + "fields": [ + { "fieldname":"m_steamIDClanChat", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_bKicked", "fieldtype":"bool" }, + { "fieldname":"m_bDropped", "fieldtype":"bool" } + ], + "struct": "GameConnectedChatLeave_t" + }, + { + "callback_id": 341, + "fields": [ + { "fieldname":"m_bSuccess", "fieldtype":"bool" } + ], + "struct": "DownloadClanActivityCountsResult_t" + }, + { + "callback_id": 342, + "fields": [ + { "fieldname":"m_steamIDClanChat", "fieldtype":"CSteamID" }, + { "fieldname":"m_eChatRoomEnterResponse", "fieldtype":"EChatRoomEnterResponse" } + ], + "struct": "JoinClanChatRoomCompletionResult_t" + }, + { + "callback_id": 343, + "fields": [ + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_iMessageID", "fieldtype":"int" } + ], + "struct": "GameConnectedFriendChatMsg_t" + }, + { + "callback_id": 344, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_nCount", "fieldtype":"int" } + ], + "struct": "FriendsGetFollowerCount_t" + }, + { + "callback_id": 345, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_bIsFollowing", "fieldtype":"bool" } + ], + "struct": "FriendsIsFollowing_t" + }, + { + "callback_id": 346, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_rgSteamID", "fieldtype":"CSteamID [50]" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" } + ], + "struct": "FriendsEnumerateFollowingList_t" + }, + { + "callback_id": 347, + "fields": [ + { "fieldname":"m_bSuccess", "fieldtype":"bool" }, + { "fieldname":"m_bLocalSuccess", "fieldtype":"bool" }, + { "fieldname":"m_result", "fieldtype":"EResult" } + ], + "struct": "SetPersonaNameResponse_t" + }, + { + "callback_id": 348, + "fields": [], + "struct": "UnreadChatMessagesChanged_t" + }, + { + "callback_id": 349, + "fields": [ + { "fieldname":"rgchURI", "fieldtype":"char [1024]" } + ], + "struct": "OverlayBrowserProtocolNavigation_t" + }, + { + "callback_id": 350, + "fields": [ + { "fieldname":"m_steamID", "fieldtype":"CSteamID" } + ], + "struct": "EquippedProfileItemsChanged_t" + }, + { + "callback_id": 351, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_bHasAnimatedAvatar", "fieldtype":"bool" }, + { "fieldname":"m_bHasAvatarFrame", "fieldtype":"bool" }, + { "fieldname":"m_bHasProfileModifier", "fieldtype":"bool" }, + { "fieldname":"m_bHasProfileBackground", "fieldtype":"bool" }, + { "fieldname":"m_bHasMiniProfileBackground", "fieldtype":"bool" } + ], + "struct": "EquippedProfileItems_t" + }, + { + "callback_id": 701, + "fields": [], + "struct": "IPCountry_t" + }, + { + "callback_id": 702, + "fields": [ + { "fieldname":"m_nMinutesBatteryLeft", "fieldtype":"uint8" } + ], + "struct": "LowBatteryPower_t" + }, + { + "callback_id": 703, + "fields": [ + { "fieldname":"m_hAsyncCall", "fieldtype":"SteamAPICall_t" }, + { "fieldname":"m_iCallback", "fieldtype":"int" }, + { "fieldname":"m_cubParam", "fieldtype":"uint32" } + ], + "struct": "SteamAPICallCompleted_t" + }, + { + "callback_id": 704, + "fields": [], + "struct": "SteamShutdown_t" + }, + { + "callback_id": 705, + "fields": [ + { "fieldname":"m_eCheckFileSignature", "fieldtype":"ECheckFileSignature" } + ], + "struct": "CheckFileSignature_t" + }, + { + "callback_id": 714, + "fields": [ + { "fieldname":"m_bSubmitted", "fieldtype":"bool" }, + { "fieldname":"m_unSubmittedText", "fieldtype":"uint32" }, + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" } + ], + "struct": "GamepadTextInputDismissed_t" + }, + { + "callback_id": 736, + "fields": [], + "struct": "AppResumingFromSuspend_t" + }, + { + "callback_id": 738, + "fields": [], + "struct": "FloatingGamepadTextInputDismissed_t" + }, + { + "callback_id": 739, + "fields": [ + { "fieldname":"m_eLanguage", "fieldtype":"int" } + ], + "struct": "FilterTextDictionaryChanged_t" + }, + { + "callback_id": 502, + "fields": [ + { "fieldname":"m_nIP", "fieldtype":"uint32" }, + { "fieldname":"m_nQueryPort", "fieldtype":"uint32" }, + { "fieldname":"m_nConnPort", "fieldtype":"uint32" }, + { "fieldname":"m_nAppID", "fieldtype":"uint32" }, + { "fieldname":"m_nFlags", "fieldtype":"uint32" }, + { "fieldname":"m_bAdd", "fieldtype":"bool" }, + { "fieldname":"m_unAccountId", "fieldtype":"AccountID_t" } + ], + "struct": "FavoritesListChanged_t" + }, + { + "callback_id": 503, + "fields": [ + { "fieldname":"m_ulSteamIDUser", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulGameID", "fieldtype":"uint64" } + ], + "struct": "LobbyInvite_t" + }, + { + "callback_id": 504, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_rgfChatPermissions", "fieldtype":"uint32" }, + { "fieldname":"m_bLocked", "fieldtype":"bool" }, + { "fieldname":"m_EChatRoomEnterResponse", "fieldtype":"uint32" } + ], + "struct": "LobbyEnter_t" + }, + { + "callback_id": 505, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDMember", "fieldtype":"uint64" }, + { "fieldname":"m_bSuccess", "fieldtype":"uint8" } + ], + "struct": "LobbyDataUpdate_t" + }, + { + "callback_id": 506, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDUserChanged", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDMakingChange", "fieldtype":"uint64" }, + { "fieldname":"m_rgfChatMemberStateChange", "fieldtype":"uint32" } + ], + "struct": "LobbyChatUpdate_t" + }, + { + "callback_id": 507, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDUser", "fieldtype":"uint64" }, + { "fieldname":"m_eChatEntryType", "fieldtype":"uint8" }, + { "fieldname":"m_iChatID", "fieldtype":"uint32" } + ], + "struct": "LobbyChatMsg_t" + }, + { + "callback_id": 509, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDGameServer", "fieldtype":"uint64" }, + { "fieldname":"m_unIP", "fieldtype":"uint32" }, + { "fieldname":"m_usPort", "fieldtype":"uint16" } + ], + "struct": "LobbyGameCreated_t" + }, + { + "callback_id": 510, + "fields": [ + { "fieldname":"m_nLobbiesMatching", "fieldtype":"uint32" } + ], + "struct": "LobbyMatchList_t" + }, + { + "callback_id": 512, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDAdmin", "fieldtype":"uint64" }, + { "fieldname":"m_bKickedDueToDisconnect", "fieldtype":"uint8" } + ], + "struct": "LobbyKicked_t" + }, + { + "callback_id": 513, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" } + ], + "struct": "LobbyCreated_t" + }, + { + "callback_id": 515, + "fields": [ + { "fieldname":"m_bGameBootInviteExists", "fieldtype":"bool" }, + { "fieldname":"m_steamIDLobby", "fieldtype":"CSteamID" } + ], + "struct": "PSNGameBootInviteResult_t" + }, + { + "callback_id": 516, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "FavoritesListAccountsUpdated_t" + }, + { + "callback_id": 5201, + "fields": [ + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_lobbyID", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDEndedSearch", "fieldtype":"CSteamID" }, + { "fieldname":"m_nSecondsRemainingEstimate", "fieldtype":"int32" }, + { "fieldname":"m_cPlayersSearching", "fieldtype":"int32" } + ], + "struct": "SearchForGameProgressCallback_t" + }, + { + "callback_id": 5202, + "fields": [ + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nCountPlayersInGame", "fieldtype":"int32" }, + { "fieldname":"m_nCountAcceptedGame", "fieldtype":"int32" }, + { "fieldname":"m_steamIDHost", "fieldtype":"CSteamID" }, + { "fieldname":"m_bFinalCallback", "fieldtype":"bool" } + ], + "struct": "SearchForGameResultCallback_t" + }, + { + "callback_id": 5211, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" } + ], + "struct": "RequestPlayersForGameProgressCallback_t" + }, + { + "callback_id": 5212, + "enums": [ + { + "enumname": "PlayerAcceptState_t", + "fqname": "RequestPlayersForGameResultCallback_t::PlayerAcceptState_t", + "values": [ + { "name":"k_EStateUnknown", "value":"0" }, + { "name":"k_EStatePlayerAccepted", "value":"1" }, + { "name":"k_EStatePlayerDeclined", "value":"2" } + ] + } + ], + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" }, + { "fieldname":"m_SteamIDPlayerFound", "fieldtype":"CSteamID" }, + { "fieldname":"m_SteamIDLobby", "fieldtype":"CSteamID" }, + { "fieldname":"m_ePlayerAcceptState", "fieldtype":"RequestPlayersForGameResultCallback_t::PlayerAcceptState_t" }, + { "fieldname":"m_nPlayerIndex", "fieldtype":"int32" }, + { "fieldname":"m_nTotalPlayersFound", "fieldtype":"int32" }, + { "fieldname":"m_nTotalPlayersAcceptedGame", "fieldtype":"int32" }, + { "fieldname":"m_nSuggestedTeamIndex", "fieldtype":"int32" }, + { "fieldname":"m_ullUniqueGameID", "fieldtype":"uint64" } + ], + "struct": "RequestPlayersForGameResultCallback_t" + }, + { + "callback_id": 5213, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" }, + { "fieldname":"m_ullUniqueGameID", "fieldtype":"uint64" } + ], + "struct": "RequestPlayersForGameFinalResultCallback_t" + }, + { + "callback_id": 5214, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"ullUniqueGameID", "fieldtype":"uint64" }, + { "fieldname":"steamIDPlayer", "fieldtype":"CSteamID" } + ], + "struct": "SubmitPlayerResultResultCallback_t" + }, + { + "callback_id": 5215, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"ullUniqueGameID", "fieldtype":"uint64" } + ], + "struct": "EndGameResultCallback_t" + }, + { + "callback_id": 5301, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulBeaconID", "fieldtype":"PartyBeaconID_t" }, + { "fieldname":"m_SteamIDBeaconOwner", "fieldtype":"CSteamID" }, + { "fieldname":"m_rgchConnectString", "fieldtype":"char [256]" } + ], + "struct": "JoinPartyCallback_t" + }, + { + "callback_id": 5302, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulBeaconID", "fieldtype":"PartyBeaconID_t" } + ], + "struct": "CreateBeaconCallback_t" + }, + { + "callback_id": 5303, + "fields": [ + { "fieldname":"m_ulBeaconID", "fieldtype":"PartyBeaconID_t" }, + { "fieldname":"m_steamIDJoiner", "fieldtype":"CSteamID" } + ], + "struct": "ReservationNotificationCallback_t" + }, + { + "callback_id": 5304, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "ChangeNumOpenSlotsCallback_t" + }, + { + "callback_id": 5305, + "fields": [], + "struct": "AvailableBeaconLocationsUpdated_t" + }, + { + "callback_id": 5306, + "fields": [], + "struct": "ActiveBeaconsUpdated_t" + }, + { + "callback_id": 1307, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_hFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_rgchFilename", "fieldtype":"char [260]" } + ], + "struct": "RemoteStorageFileShareResult_t" + }, + { + "callback_id": 1309, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype":"bool" } + ], + "struct": "RemoteStoragePublishFileResult_t" + }, + { + "callback_id": 1311, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoteStorageDeletePublishedFileResult_t" + }, + { + "callback_id": 1312, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" } + ], + "struct": "RemoteStorageEnumerateUserPublishedFilesResult_t" + }, + { + "callback_id": 1313, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoteStorageSubscribePublishedFileResult_t" + }, + { + "callback_id": 1314, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" }, + { "fieldname":"m_rgRTimeSubscribed", "fieldtype":"uint32 [50]" } + ], + "struct": "RemoteStorageEnumerateUserSubscribedFilesResult_t" + }, + { + "callback_id": 1315, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoteStorageUnsubscribePublishedFileResult_t" + }, + { + "callback_id": 1316, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype":"bool" } + ], + "struct": "RemoteStorageUpdatePublishedFileResult_t" + }, + { + "callback_id": 1317, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_hFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nSizeInBytes", "fieldtype":"int32" }, + { "fieldname":"m_pchFileName", "fieldtype":"char [260]" }, + { "fieldname":"m_ulSteamIDOwner", "fieldtype":"uint64" } + ], + "struct": "RemoteStorageDownloadUGCResult_t" + }, + { + "callback_id": 1318, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nCreatorAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nConsumerAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_rgchTitle", "fieldtype":"char [129]" }, + { "fieldname":"m_rgchDescription", "fieldtype":"char [8000]" }, + { "fieldname":"m_hFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_hPreviewFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_ulSteamIDOwner", "fieldtype":"uint64" }, + { "fieldname":"m_rtimeCreated", "fieldtype":"uint32" }, + { "fieldname":"m_rtimeUpdated", "fieldtype":"uint32" }, + { "fieldname":"m_eVisibility", "fieldtype":"ERemoteStoragePublishedFileVisibility" }, + { "fieldname":"m_bBanned", "fieldtype":"bool" }, + { "fieldname":"m_rgchTags", "fieldtype":"char [1025]" }, + { "fieldname":"m_bTagsTruncated", "fieldtype":"bool" }, + { "fieldname":"m_pchFileName", "fieldtype":"char [260]" }, + { "fieldname":"m_nFileSize", "fieldtype":"int32" }, + { "fieldname":"m_nPreviewFileSize", "fieldtype":"int32" }, + { "fieldname":"m_rgchURL", "fieldtype":"char [256]" }, + { "fieldname":"m_eFileType", "fieldtype":"EWorkshopFileType" }, + { "fieldname":"m_bAcceptedForUse", "fieldtype":"bool" } + ], + "struct": "RemoteStorageGetPublishedFileDetailsResult_t" + }, + { + "callback_id": 1319, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" }, + { "fieldname":"m_rgScore", "fieldtype":"float [50]" }, + { "fieldname":"m_nAppId", "fieldtype":"AppId_t" }, + { "fieldname":"m_unStartIndex", "fieldtype":"uint32" } + ], + "struct": "RemoteStorageEnumerateWorkshopFilesResult_t" + }, + { + "callback_id": 1320, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nVotesFor", "fieldtype":"int32" }, + { "fieldname":"m_nVotesAgainst", "fieldtype":"int32" }, + { "fieldname":"m_nReports", "fieldtype":"int32" }, + { "fieldname":"m_fScore", "fieldtype":"float" } + ], + "struct": "RemoteStorageGetPublishedItemVoteDetailsResult_t" + }, + { + "callback_id": 1321, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "RemoteStoragePublishedFileSubscribed_t" + }, + { + "callback_id": 1322, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "RemoteStoragePublishedFileUnsubscribed_t" + }, + { + "callback_id": 1323, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "RemoteStoragePublishedFileDeleted_t" + }, + { + "callback_id": 1324, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoteStorageUpdateUserPublishedItemVoteResult_t" + }, + { + "callback_id": 1325, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eVote", "fieldtype":"EWorkshopVote" } + ], + "struct": "RemoteStorageUserVoteDetails_t" + }, + { + "callback_id": 1326, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" } + ], + "struct": "RemoteStorageEnumerateUserSharedWorkshopFilesResult_t" + }, + { + "callback_id": 1327, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eAction", "fieldtype":"EWorkshopFileAction" } + ], + "struct": "RemoteStorageSetUserPublishedFileActionResult_t" + }, + { + "callback_id": 1328, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_eAction", "fieldtype":"EWorkshopFileAction" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" }, + { "fieldname":"m_rgRTimeUpdated", "fieldtype":"uint32 [50]" } + ], + "struct": "RemoteStorageEnumeratePublishedFilesByUserActionResult_t" + }, + { + "callback_id": 1329, + "fields": [ + { "fieldname":"m_dPercentFile", "fieldtype":"double" }, + { "fieldname":"m_bPreview", "fieldtype":"bool" } + ], + "struct": "RemoteStoragePublishFileProgress_t" + }, + { + "callback_id": 1330, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_ulUnused", "fieldtype":"uint64" } + ], + "struct": "RemoteStoragePublishedFileUpdated_t" + }, + { + "callback_id": 1331, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "RemoteStorageFileWriteAsyncComplete_t" + }, + { + "callback_id": 1332, + "fields": [ + { "fieldname":"m_hFileReadAsync", "fieldtype":"SteamAPICall_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nOffset", "fieldtype":"uint32" }, + { "fieldname":"m_cubRead", "fieldtype":"uint32" } + ], + "struct": "RemoteStorageFileReadAsyncComplete_t" + }, + { + "callback_id": 1333, + "fields": [], + "struct": "RemoteStorageLocalFileChange_t" + }, + { + "callback_id": 1101, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "UserStatsReceived_t" + }, + { + "callback_id": 1102, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "UserStatsStored_t" + }, + { + "callback_id": 1103, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_bGroupAchievement", "fieldtype":"bool" }, + { "fieldname":"m_rgchAchievementName", "fieldtype":"char [128]" }, + { "fieldname":"m_nCurProgress", "fieldtype":"uint32" }, + { "fieldname":"m_nMaxProgress", "fieldtype":"uint32" } + ], + "struct": "UserAchievementStored_t" + }, + { + "callback_id": 1104, + "fields": [ + { "fieldname":"m_hSteamLeaderboard", "fieldtype":"SteamLeaderboard_t" }, + { "fieldname":"m_bLeaderboardFound", "fieldtype":"uint8" } + ], + "struct": "LeaderboardFindResult_t" + }, + { + "callback_id": 1105, + "fields": [ + { "fieldname":"m_hSteamLeaderboard", "fieldtype":"SteamLeaderboard_t" }, + { "fieldname":"m_hSteamLeaderboardEntries", "fieldtype":"SteamLeaderboardEntries_t" }, + { "fieldname":"m_cEntryCount", "fieldtype":"int" } + ], + "struct": "LeaderboardScoresDownloaded_t" + }, + { + "callback_id": 1106, + "fields": [ + { "fieldname":"m_bSuccess", "fieldtype":"uint8" }, + { "fieldname":"m_hSteamLeaderboard", "fieldtype":"SteamLeaderboard_t" }, + { "fieldname":"m_nScore", "fieldtype":"int32" }, + { "fieldname":"m_bScoreChanged", "fieldtype":"uint8" }, + { "fieldname":"m_nGlobalRankNew", "fieldtype":"int" }, + { "fieldname":"m_nGlobalRankPrevious", "fieldtype":"int" } + ], + "struct": "LeaderboardScoreUploaded_t" + }, + { + "callback_id": 1107, + "fields": [ + { "fieldname":"m_bSuccess", "fieldtype":"uint8" }, + { "fieldname":"m_cPlayers", "fieldtype":"int32" } + ], + "struct": "NumberOfCurrentPlayers_t" + }, + { + "callback_id": 1108, + "fields": [ + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "UserStatsUnloaded_t" + }, + { + "callback_id": 1109, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"CGameID" }, + { "fieldname":"m_rgchAchievementName", "fieldtype":"char [128]" }, + { "fieldname":"m_bAchieved", "fieldtype":"bool" }, + { "fieldname":"m_nIconHandle", "fieldtype":"int" } + ], + "struct": "UserAchievementIconFetched_t" + }, + { + "callback_id": 1110, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "GlobalAchievementPercentagesReady_t" + }, + { + "callback_id": 1111, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_hSteamLeaderboard", "fieldtype":"SteamLeaderboard_t" } + ], + "struct": "LeaderboardUGCSet_t" + }, + { + "callback_id": 1112, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulRequiredDiskSpace", "fieldtype":"uint64" } + ], + "struct": "PS3TrophiesInstalled_t" + }, + { + "callback_id": 1112, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "GlobalStatsReceived_t" + }, + { + "callback_id": 1005, + "fields": [ + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "DlcInstalled_t" + }, + { + "callback_id": 1014, + "fields": [], + "struct": "NewUrlLaunchParameters_t" + }, + { + "callback_id": 1021, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nAppID", "fieldtype":"uint32" }, + { "fieldname":"m_cchKeyLength", "fieldtype":"uint32" }, + { "fieldname":"m_rgchKey", "fieldtype":"char [240]" } + ], + "struct": "AppProofOfPurchaseKeyResponse_t" + }, + { + "callback_id": 1023, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulFileSize", "fieldtype":"uint64" }, + { "fieldname":"m_FileSHA", "fieldtype":"uint8 [20]" }, + { "fieldname":"m_unFlags", "fieldtype":"uint32" } + ], + "struct": "FileDetailsResult_t" + }, + { + "callback_id": 1030, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_bIsOffline", "fieldtype":"bool" }, + { "fieldname":"m_unSecondsAllowed", "fieldtype":"uint32" }, + { "fieldname":"m_unSecondsPlayed", "fieldtype":"uint32" } + ], + "struct": "TimedTrialStatus_t" + }, + { + "callback_id": 1202, + "fields": [ + { "fieldname":"m_steamIDRemote", "fieldtype":"CSteamID" } + ], + "struct": "P2PSessionRequest_t" + }, + { + "callback_id": 1203, + "fields": [ + { "fieldname":"m_steamIDRemote", "fieldtype":"CSteamID" }, + { "fieldname":"m_eP2PSessionError", "fieldtype":"uint8" } + ], + "struct": "P2PSessionConnectFail_t" + }, + { + "callback_id": 1201, + "fields": [ + { "fieldname":"m_hSocket", "fieldtype":"SNetSocket_t" }, + { "fieldname":"m_hListenSocket", "fieldtype":"SNetListenSocket_t" }, + { "fieldname":"m_steamIDRemote", "fieldtype":"CSteamID" }, + { "fieldname":"m_eSNetSocketState", "fieldtype":"int" } + ], + "struct": "SocketStatusCallback_t" + }, + { + "callback_id": 2301, + "fields": [ + { "fieldname":"m_hLocal", "fieldtype":"ScreenshotHandle" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "ScreenshotReady_t" + }, + { + "callback_id": 2302, + "fields": [], + "struct": "ScreenshotRequested_t" + }, + { + "callback_id": 4001, + "fields": [], + "struct": "PlaybackStatusHasChanged_t" + }, + { + "callback_id": 4002, + "fields": [ + { "fieldname":"m_flNewVolume", "fieldtype":"float" } + ], + "struct": "VolumeHasChanged_t" + }, + { + "callback_id": 4101, + "fields": [], + "struct": "MusicPlayerRemoteWillActivate_t" + }, + { + "callback_id": 4102, + "fields": [], + "struct": "MusicPlayerRemoteWillDeactivate_t" + }, + { + "callback_id": 4103, + "fields": [], + "struct": "MusicPlayerRemoteToFront_t" + }, + { + "callback_id": 4104, + "fields": [], + "struct": "MusicPlayerWillQuit_t" + }, + { + "callback_id": 4105, + "fields": [], + "struct": "MusicPlayerWantsPlay_t" + }, + { + "callback_id": 4106, + "fields": [], + "struct": "MusicPlayerWantsPause_t" + }, + { + "callback_id": 4107, + "fields": [], + "struct": "MusicPlayerWantsPlayPrevious_t" + }, + { + "callback_id": 4108, + "fields": [], + "struct": "MusicPlayerWantsPlayNext_t" + }, + { + "callback_id": 4109, + "fields": [ + { "fieldname":"m_bShuffled", "fieldtype":"bool" } + ], + "struct": "MusicPlayerWantsShuffled_t" + }, + { + "callback_id": 4110, + "fields": [ + { "fieldname":"m_bLooped", "fieldtype":"bool" } + ], + "struct": "MusicPlayerWantsLooped_t" + }, + { + "callback_id": 4011, + "fields": [ + { "fieldname":"m_flNewVolume", "fieldtype":"float" } + ], + "struct": "MusicPlayerWantsVolume_t" + }, + { + "callback_id": 4012, + "fields": [ + { "fieldname":"nID", "fieldtype":"int" } + ], + "struct": "MusicPlayerSelectsQueueEntry_t" + }, + { + "callback_id": 4013, + "fields": [ + { "fieldname":"nID", "fieldtype":"int" } + ], + "struct": "MusicPlayerSelectsPlaylistEntry_t" + }, + { + "callback_id": 4114, + "fields": [ + { "fieldname":"m_nPlayingRepeatStatus", "fieldtype":"int" } + ], + "struct": "MusicPlayerWantsPlayingRepeatStatus_t" + }, + { + "callback_id": 2101, + "fields": [ + { "fieldname":"m_hRequest", "fieldtype":"HTTPRequestHandle" }, + { "fieldname":"m_ulContextValue", "fieldtype":"uint64" }, + { "fieldname":"m_bRequestSuccessful", "fieldtype":"bool" }, + { "fieldname":"m_eStatusCode", "fieldtype":"EHTTPStatusCode" }, + { "fieldname":"m_unBodySize", "fieldtype":"uint32" } + ], + "struct": "HTTPRequestCompleted_t" + }, + { + "callback_id": 2102, + "fields": [ + { "fieldname":"m_hRequest", "fieldtype":"HTTPRequestHandle" }, + { "fieldname":"m_ulContextValue", "fieldtype":"uint64" } + ], + "struct": "HTTPRequestHeadersReceived_t" + }, + { + "callback_id": 2103, + "fields": [ + { "fieldname":"m_hRequest", "fieldtype":"HTTPRequestHandle" }, + { "fieldname":"m_ulContextValue", "fieldtype":"uint64" }, + { "fieldname":"m_cOffset", "fieldtype":"uint32" }, + { "fieldname":"m_cBytesReceived", "fieldtype":"uint32" } + ], + "struct": "HTTPRequestDataReceived_t" + }, + { + "callback_id": 2801, + "fields": [ + { "fieldname":"m_ulConnectedDeviceHandle", "fieldtype":"InputHandle_t" } + ], + "struct": "SteamInputDeviceConnected_t" + }, + { + "callback_id": 2802, + "fields": [ + { "fieldname":"m_ulDisconnectedDeviceHandle", "fieldtype":"InputHandle_t" } + ], + "struct": "SteamInputDeviceDisconnected_t" + }, + { + "callback_id": 2803, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_ulDeviceHandle", "fieldtype":"InputHandle_t" }, + { "fieldname":"m_ulMappingCreator", "fieldtype":"CSteamID" }, + { "fieldname":"m_unMajorRevision", "fieldtype":"uint32" }, + { "fieldname":"m_unMinorRevision", "fieldtype":"uint32" }, + { "fieldname":"m_bUsesSteamInputAPI", "fieldtype":"bool" }, + { "fieldname":"m_bUsesGamepadAPI", "fieldtype":"bool" } + ], + "struct": "SteamInputConfigurationLoaded_t" + }, + { + "callback_id": 2804, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_ulDeviceHandle", "fieldtype":"InputHandle_t" }, + { "fieldname":"m_eDeviceType", "fieldtype":"ESteamInputType" }, + { "fieldname":"m_nOldGamepadSlot", "fieldtype":"int" }, + { "fieldname":"m_nNewGamepadSlot", "fieldtype":"int" } + ], + "struct": "SteamInputGamepadSlotChange_t" + }, + { + "callback_id": 3401, + "fields": [ + { "fieldname":"m_handle", "fieldtype":"UGCQueryHandle_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unNumResultsReturned", "fieldtype":"uint32" }, + { "fieldname":"m_unTotalMatchingResults", "fieldtype":"uint32" }, + { "fieldname":"m_bCachedData", "fieldtype":"bool" }, + { "fieldname":"m_rgchNextCursor", "fieldtype":"char [256]" } + ], + "struct": "SteamUGCQueryCompleted_t" + }, + { + "callback_id": 3402, + "fields": [ + { "fieldname":"m_details", "fieldtype":"SteamUGCDetails_t" }, + { "fieldname":"m_bCachedData", "fieldtype":"bool" } + ], + "struct": "SteamUGCRequestUGCDetailsResult_t" + }, + { + "callback_id": 3403, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype":"bool" } + ], + "struct": "CreateItemResult_t" + }, + { + "callback_id": 3404, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype":"bool" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "SubmitItemUpdateResult_t" + }, + { + "callback_id": 3405, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "ItemInstalled_t" + }, + { + "callback_id": 3406, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "DownloadItemResult_t" + }, + { + "callback_id": 3407, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bWasAddRequest", "fieldtype":"bool" } + ], + "struct": "UserFavoriteItemsListChanged_t" + }, + { + "callback_id": 3408, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bVoteUp", "fieldtype":"bool" } + ], + "struct": "SetUserItemVoteResult_t" + }, + { + "callback_id": 3409, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bVotedUp", "fieldtype":"bool" }, + { "fieldname":"m_bVotedDown", "fieldtype":"bool" }, + { "fieldname":"m_bVoteSkipped", "fieldtype":"bool" } + ], + "struct": "GetUserItemVoteResult_t" + }, + { + "callback_id": 3410, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "StartPlaytimeTrackingResult_t" + }, + { + "callback_id": 3411, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "StopPlaytimeTrackingResult_t" + }, + { + "callback_id": 3412, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nChildPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "AddUGCDependencyResult_t" + }, + { + "callback_id": 3413, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nChildPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoveUGCDependencyResult_t" + }, + { + "callback_id": 3414, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "AddAppDependencyResult_t" + }, + { + "callback_id": 3415, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "RemoveAppDependencyResult_t" + }, + { + "callback_id": 3416, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_rgAppIDs", "fieldtype":"AppId_t [32]" }, + { "fieldname":"m_nNumAppDependencies", "fieldtype":"uint32" }, + { "fieldname":"m_nTotalNumAppDependencies", "fieldtype":"uint32" } + ], + "struct": "GetAppDependenciesResult_t" + }, + { + "callback_id": 3417, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "DeleteItemResult_t" + }, + { + "callback_id": 3418, + "fields": [ + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "UserSubscribedItemsListChanged_t" + }, + { + "callback_id": 3420, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_unVersion", "fieldtype":"uint32" }, + { "fieldname":"m_rtAction", "fieldtype":"RTime32" }, + { "fieldname":"m_bAccepted", "fieldtype":"bool" }, + { "fieldname":"m_bNeedsAction", "fieldtype":"bool" } + ], + "struct": "WorkshopEULAStatus_t" + }, + { + "callback_id": 4501, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_BrowserReady_t" + }, + { + "callback_id": 4502, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pBGRA", "fieldtype":"const char *" }, + { "fieldname":"unWide", "fieldtype":"uint32" }, + { "fieldname":"unTall", "fieldtype":"uint32" }, + { "fieldname":"unUpdateX", "fieldtype":"uint32" }, + { "fieldname":"unUpdateY", "fieldtype":"uint32" }, + { "fieldname":"unUpdateWide", "fieldtype":"uint32" }, + { "fieldname":"unUpdateTall", "fieldtype":"uint32" }, + { "fieldname":"unScrollX", "fieldtype":"uint32" }, + { "fieldname":"unScrollY", "fieldtype":"uint32" }, + { "fieldname":"flPageScale", "fieldtype":"float" }, + { "fieldname":"unPageSerial", "fieldtype":"uint32" } + ], + "struct": "HTML_NeedsPaint_t" + }, + { + "callback_id": 4503, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"pchTarget", "fieldtype":"const char *" }, + { "fieldname":"pchPostData", "fieldtype":"const char *" }, + { "fieldname":"bIsRedirect", "fieldtype":"bool" } + ], + "struct": "HTML_StartRequest_t" + }, + { + "callback_id": 4504, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_CloseBrowser_t" + }, + { + "callback_id": 4505, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"pchPostData", "fieldtype":"const char *" }, + { "fieldname":"bIsRedirect", "fieldtype":"bool" }, + { "fieldname":"pchPageTitle", "fieldtype":"const char *" }, + { "fieldname":"bNewNavigation", "fieldtype":"bool" } + ], + "struct": "HTML_URLChanged_t" + }, + { + "callback_id": 4506, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"pchPageTitle", "fieldtype":"const char *" } + ], + "struct": "HTML_FinishedRequest_t" + }, + { + "callback_id": 4507, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" } + ], + "struct": "HTML_OpenLinkInNewTab_t" + }, + { + "callback_id": 4508, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchTitle", "fieldtype":"const char *" } + ], + "struct": "HTML_ChangedTitle_t" + }, + { + "callback_id": 4509, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"unResults", "fieldtype":"uint32" }, + { "fieldname":"unCurrentMatch", "fieldtype":"uint32" } + ], + "struct": "HTML_SearchResults_t" + }, + { + "callback_id": 4510, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"bCanGoBack", "fieldtype":"bool" }, + { "fieldname":"bCanGoForward", "fieldtype":"bool" } + ], + "struct": "HTML_CanGoBackAndForward_t" + }, + { + "callback_id": 4511, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"unScrollMax", "fieldtype":"uint32" }, + { "fieldname":"unScrollCurrent", "fieldtype":"uint32" }, + { "fieldname":"flPageScale", "fieldtype":"float" }, + { "fieldname":"bVisible", "fieldtype":"bool" }, + { "fieldname":"unPageSize", "fieldtype":"uint32" } + ], + "struct": "HTML_HorizontalScroll_t" + }, + { + "callback_id": 4512, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"unScrollMax", "fieldtype":"uint32" }, + { "fieldname":"unScrollCurrent", "fieldtype":"uint32" }, + { "fieldname":"flPageScale", "fieldtype":"float" }, + { "fieldname":"bVisible", "fieldtype":"bool" }, + { "fieldname":"unPageSize", "fieldtype":"uint32" } + ], + "struct": "HTML_VerticalScroll_t" + }, + { + "callback_id": 4513, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"x", "fieldtype":"uint32" }, + { "fieldname":"y", "fieldtype":"uint32" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"bInput", "fieldtype":"bool" }, + { "fieldname":"bLiveLink", "fieldtype":"bool" } + ], + "struct": "HTML_LinkAtPosition_t" + }, + { + "callback_id": 4514, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMessage", "fieldtype":"const char *" } + ], + "struct": "HTML_JSAlert_t" + }, + { + "callback_id": 4515, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMessage", "fieldtype":"const char *" } + ], + "struct": "HTML_JSConfirm_t" + }, + { + "callback_id": 4516, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchTitle", "fieldtype":"const char *" }, + { "fieldname":"pchInitialFile", "fieldtype":"const char *" } + ], + "struct": "HTML_FileOpenDialog_t" + }, + { + "callback_id": 4521, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"unX", "fieldtype":"uint32" }, + { "fieldname":"unY", "fieldtype":"uint32" }, + { "fieldname":"unWide", "fieldtype":"uint32" }, + { "fieldname":"unTall", "fieldtype":"uint32" }, + { "fieldname":"unNewWindow_BrowserHandle_IGNORE", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_NewWindow_t" + }, + { + "callback_id": 4522, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"eMouseCursor", "fieldtype":"uint32" } + ], + "struct": "HTML_SetCursor_t" + }, + { + "callback_id": 4523, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMsg", "fieldtype":"const char *" } + ], + "struct": "HTML_StatusText_t" + }, + { + "callback_id": 4524, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMsg", "fieldtype":"const char *" } + ], + "struct": "HTML_ShowToolTip_t" + }, + { + "callback_id": 4525, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMsg", "fieldtype":"const char *" } + ], + "struct": "HTML_UpdateToolTip_t" + }, + { + "callback_id": 4526, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_HideToolTip_t" + }, + { + "callback_id": 4527, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"unOldBrowserHandle", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_BrowserRestarted_t" + }, + { + "callback_id": 4700, + "fields": [ + { "fieldname":"m_handle", "fieldtype":"SteamInventoryResult_t" }, + { "fieldname":"m_result", "fieldtype":"EResult" } + ], + "struct": "SteamInventoryResultReady_t" + }, + { + "callback_id": 4701, + "fields": [ + { "fieldname":"m_handle", "fieldtype":"SteamInventoryResult_t" } + ], + "struct": "SteamInventoryFullUpdate_t" + }, + { + "callback_id": 4702, + "fields": [], + "struct": "SteamInventoryDefinitionUpdate_t" + }, + { + "callback_id": 4703, + "fields": [ + { "fieldname":"m_result", "fieldtype":"EResult" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_numEligiblePromoItemDefs", "fieldtype":"int" }, + { "fieldname":"m_bCachedData", "fieldtype":"bool" } + ], + "struct": "SteamInventoryEligiblePromoItemDefIDs_t" + }, + { + "callback_id": 4704, + "fields": [ + { "fieldname":"m_result", "fieldtype":"EResult" }, + { "fieldname":"m_ulOrderID", "fieldtype":"uint64" }, + { "fieldname":"m_ulTransID", "fieldtype":"uint64" } + ], + "struct": "SteamInventoryStartPurchaseResult_t" + }, + { + "callback_id": 4705, + "fields": [ + { "fieldname":"m_result", "fieldtype":"EResult" }, + { "fieldname":"m_rgchCurrency", "fieldtype":"char [4]" } + ], + "struct": "SteamInventoryRequestPricesResult_t" + }, + { + "callback_id": 4611, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unVideoAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_rgchURL", "fieldtype":"char [256]" } + ], + "struct": "GetVideoURLResult_t" + }, + { + "callback_id": 4624, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unVideoAppID", "fieldtype":"AppId_t" } + ], + "struct": "GetOPFSettingsResult_t" + }, + { + "callback_id": 5001, + "fields": [], + "struct": "SteamParentalSettingsChanged_t" + }, + { + "callback_id": 5701, + "fields": [ + { "fieldname":"m_unSessionID", "fieldtype":"RemotePlaySessionID_t" } + ], + "struct": "SteamRemotePlaySessionConnected_t" + }, + { + "callback_id": 5702, + "fields": [ + { "fieldname":"m_unSessionID", "fieldtype":"RemotePlaySessionID_t" } + ], + "struct": "SteamRemotePlaySessionDisconnected_t" + }, + { + "callback_id": 5703, + "fields": [ + { "fieldname":"m_szConnectURL", "fieldtype":"char [1024]" } + ], + "struct": "SteamRemotePlayTogetherGuestInvite_t" + }, + { + "callback_id": 1251, + "fields": [ + { "fieldname":"m_identityRemote", "fieldtype":"SteamNetworkingIdentity" } + ], + "struct": "SteamNetworkingMessagesSessionRequest_t" + }, + { + "callback_id": 1252, + "fields": [ + { "fieldname":"m_info", "fieldtype":"SteamNetConnectionInfo_t" } + ], + "struct": "SteamNetworkingMessagesSessionFailed_t" + }, + { + "callback_id": 1221, + "fields": [ + { "fieldname":"m_hConn", "fieldtype":"HSteamNetConnection" }, + { "fieldname":"m_info", "fieldtype":"SteamNetConnectionInfo_t" }, + { "fieldname":"m_eOldState", "fieldtype":"ESteamNetworkingConnectionState" } + ], + "struct": "SteamNetConnectionStatusChangedCallback_t" + }, + { + "callback_id": 1222, + "fields": [ + { "fieldname":"m_eAvail", "fieldtype":"ESteamNetworkingAvailability" }, + { "fieldname":"m_debugMsg", "fieldtype":"char [256]" } + ], + "struct": "SteamNetAuthenticationStatus_t" + }, + { + "callback_id": 1281, + "fields": [ + { "fieldname":"m_eAvail", "fieldtype":"ESteamNetworkingAvailability" }, + { "fieldname":"m_bPingMeasurementInProgress", "fieldtype":"int" }, + { "fieldname":"m_eAvailNetworkConfig", "fieldtype":"ESteamNetworkingAvailability" }, + { "fieldname":"m_eAvailAnyRelay", "fieldtype":"ESteamNetworkingAvailability" }, + { "fieldname":"m_debugMsg", "fieldtype":"char [256]" } + ], + "struct": "SteamRelayNetworkStatus_t" + }, + { + "callback_id": 201, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_OwnerSteamID", "fieldtype":"CSteamID" } + ], + "struct": "GSClientApprove_t" + }, + { + "callback_id": 202, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_eDenyReason", "fieldtype":"EDenyReason" }, + { "fieldname":"m_rgchOptionalText", "fieldtype":"char [128]" } + ], + "struct": "GSClientDeny_t" + }, + { + "callback_id": 203, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_eDenyReason", "fieldtype":"EDenyReason" } + ], + "struct": "GSClientKick_t" + }, + { + "callback_id": 206, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"uint64" }, + { "fieldname":"m_pchAchievement", "fieldtype":"char [128]" }, + { "fieldname":"m_bUnlocked", "fieldtype":"bool" } + ], + "struct": "GSClientAchievementStatus_t" + }, + { + "callback_id": 115, + "fields": [ + { "fieldname":"m_bSecure", "fieldtype":"uint8" } + ], + "struct": "GSPolicyResponse_t" + }, + { + "callback_id": 207, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nRank", "fieldtype":"int32" }, + { "fieldname":"m_unTotalConnects", "fieldtype":"uint32" }, + { "fieldname":"m_unTotalMinutesPlayed", "fieldtype":"uint32" } + ], + "struct": "GSGameplayStats_t" + }, + { + "callback_id": 208, + "fields": [ + { "fieldname":"m_SteamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_SteamIDGroup", "fieldtype":"CSteamID" }, + { "fieldname":"m_bMember", "fieldtype":"bool" }, + { "fieldname":"m_bOfficer", "fieldtype":"bool" } + ], + "struct": "GSClientGroupStatus_t" + }, + { + "callback_id": 209, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unReputationScore", "fieldtype":"uint32" }, + { "fieldname":"m_bBanned", "fieldtype":"bool" }, + { "fieldname":"m_unBannedIP", "fieldtype":"uint32" }, + { "fieldname":"m_usBannedPort", "fieldtype":"uint16" }, + { "fieldname":"m_ulBannedGameID", "fieldtype":"uint64" }, + { "fieldname":"m_unBanExpires", "fieldtype":"uint32" } + ], + "struct": "GSReputation_t" + }, + { + "callback_id": 210, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "AssociateWithClanResult_t" + }, + { + "callback_id": 211, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_cPlayersThatDontLikeCandidate", "fieldtype":"int" }, + { "fieldname":"m_cPlayersThatCandidateDoesntLike", "fieldtype":"int" }, + { "fieldname":"m_cClanPlayersThatDontLikeCandidate", "fieldtype":"int" }, + { "fieldname":"m_SteamIDCandidate", "fieldtype":"CSteamID" } + ], + "struct": "ComputeNewPlayerCompatibilityResult_t" + }, + { + "callback_id": 1800, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "GSStatsReceived_t" + }, + { + "callback_id": 1801, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "GSStatsStored_t" + }, + { + "callback_id": 1108, + "fields": [ + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "GSStatsUnloaded_t" + }, + { + "callback_id": 1223, + "consts": [ + { "constname":"k_nMaxReturnPorts", "consttype":"int", "constval":"8" } + ], + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_identity", "fieldtype":"SteamNetworkingIdentity" }, + { "fieldname":"m_unIP", "fieldtype":"uint32" }, + { "fieldname":"m_unPorts", "fieldtype":"uint16 [8]" } + ], + "struct": "SteamNetworkingFakeIPResult_t" + } + ], + "consts": [ + { "constname":"k_uAppIdInvalid", "consttype":"AppId_t", "constval":"0x0" }, + { "constname":"k_uDepotIdInvalid", "consttype":"DepotId_t", "constval":"0x0" }, + { "constname":"k_uAPICallInvalid", "consttype":"SteamAPICall_t", "constval":"0x0" }, + { "constname":"k_uAccountIdInvalid", "consttype":"AccountID_t", "constval":"0" }, + { "constname":"k_ulPartyBeaconIdInvalid", "consttype":"PartyBeaconID_t", "constval":"0" }, + { "constname":"k_HAuthTicketInvalid", "consttype":"HAuthTicket", "constval":"0" }, + { "constname":"k_unSteamAccountIDMask", "consttype":"unsigned int", "constval":"0xFFFFFFFF" }, + { "constname":"k_unSteamAccountInstanceMask", "consttype":"unsigned int", "constval":"0x000FFFFF" }, + { "constname":"k_unSteamUserDefaultInstance", "consttype":"unsigned int", "constval":"1" }, + { "constname":"k_cchGameExtraInfoMax", "consttype":"int", "constval":"64" }, + { "constname":"k_cchMaxSteamErrMsg", "consttype":"int", "constval":"1024" }, + { "constname":"k_cchMaxFriendsGroupName", "consttype":"int", "constval":"64" }, + { "constname":"k_cFriendsGroupLimit", "consttype":"int", "constval":"100" }, + { "constname":"k_FriendsGroupID_Invalid", "consttype":"FriendsGroupID_t", "constval":"- 1" }, + { "constname":"k_cEnumerateFollowersMax", "consttype":"int", "constval":"50" }, + { "constname":"k_usFriendGameInfoQueryPort_NotInitialized", "consttype":"uint16", "constval":"0xFFFF" }, + { "constname":"k_usFriendGameInfoQueryPort_Error", "consttype":"uint16", "constval":"0xFFFE" }, + { "constname":"k_cubChatMetadataMax", "consttype":"uint32", "constval":"8192" }, + { "constname":"k_cbMaxGameServerGameDir", "consttype":"int", "constval":"32" }, + { "constname":"k_cbMaxGameServerMapName", "consttype":"int", "constval":"32" }, + { "constname":"k_cbMaxGameServerGameDescription", "consttype":"int", "constval":"64" }, + { "constname":"k_cbMaxGameServerName", "consttype":"int", "constval":"64" }, + { "constname":"k_cbMaxGameServerTags", "consttype":"int", "constval":"128" }, + { "constname":"k_cbMaxGameServerGameData", "consttype":"int", "constval":"2048" }, + { "constname":"HSERVERQUERY_INVALID", "consttype":"int", "constval":"0xffffffff" }, + { "constname":"k_unFavoriteFlagNone", "consttype":"uint32", "constval":"0x00" }, + { "constname":"k_unFavoriteFlagFavorite", "consttype":"uint32", "constval":"0x01" }, + { "constname":"k_unFavoriteFlagHistory", "consttype":"uint32", "constval":"0x02" }, + { "constname":"k_unMaxCloudFileChunkSize", "consttype":"uint32", "constval":"100 * 1024 * 1024" }, + { "constname":"k_PublishedFileIdInvalid", "consttype":"PublishedFileId_t", "constval":"0" }, + { "constname":"k_UGCHandleInvalid", "consttype":"UGCHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_PublishedFileUpdateHandleInvalid", "consttype":"PublishedFileUpdateHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_UGCFileStreamHandleInvalid", "consttype":"UGCFileWriteStreamHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_cchPublishedDocumentTitleMax", "consttype":"uint32", "constval":"128 + 1" }, + { "constname":"k_cchPublishedDocumentDescriptionMax", "consttype":"uint32", "constval":"8000" }, + { "constname":"k_cchPublishedDocumentChangeDescriptionMax", "consttype":"uint32", "constval":"8000" }, + { "constname":"k_unEnumeratePublishedFilesMaxResults", "consttype":"uint32", "constval":"50" }, + { "constname":"k_cchTagListMax", "consttype":"uint32", "constval":"1024 + 1" }, + { "constname":"k_cchFilenameMax", "consttype":"uint32", "constval":"260" }, + { "constname":"k_cchPublishedFileURLMax", "consttype":"uint32", "constval":"256" }, + { "constname":"k_cubAppProofOfPurchaseKeyMax", "consttype":"int", "constval":"240" }, + { "constname":"k_nScreenshotMaxTaggedUsers", "consttype":"uint32", "constval":"32" }, + { "constname":"k_nScreenshotMaxTaggedPublishedFiles", "consttype":"uint32", "constval":"32" }, + { "constname":"k_cubUFSTagTypeMax", "consttype":"int", "constval":"255" }, + { "constname":"k_cubUFSTagValueMax", "consttype":"int", "constval":"255" }, + { "constname":"k_ScreenshotThumbWidth", "consttype":"int", "constval":"200" }, + { "constname":"k_UGCQueryHandleInvalid", "consttype":"UGCQueryHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_UGCUpdateHandleInvalid", "consttype":"UGCUpdateHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"kNumUGCResultsPerPage", "consttype":"uint32", "constval":"50" }, + { "constname":"k_cchDeveloperMetadataMax", "consttype":"uint32", "constval":"5000" }, + { "constname":"INVALID_HTMLBROWSER", "consttype":"uint32", "constval":"0" }, + { "constname":"k_SteamItemInstanceIDInvalid", "consttype":"SteamItemInstanceID_t", "constval":"( SteamItemInstanceID_t ) ~ 0" }, + { "constname":"k_SteamInventoryResultInvalid", "consttype":"SteamInventoryResult_t", "constval":"- 1" }, + { "constname":"k_SteamInventoryUpdateHandleInvalid", "consttype":"SteamInventoryUpdateHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_nMaxTimelineRangeIDLength", "consttype":"int", "constval":"64" }, + { "constname":"k_HSteamNetConnection_Invalid", "consttype":"HSteamNetConnection", "constval":"0" }, + { "constname":"k_HSteamListenSocket_Invalid", "consttype":"HSteamListenSocket", "constval":"0" }, + { "constname":"k_HSteamNetPollGroup_Invalid", "consttype":"HSteamNetPollGroup", "constval":"0" }, + { "constname":"k_cchMaxSteamNetworkingErrMsg", "consttype":"int", "constval":"1024" }, + { "constname":"k_cchSteamNetworkingMaxConnectionCloseReason", "consttype":"int", "constval":"128" }, + { "constname":"k_cchSteamNetworkingMaxConnectionDescription", "consttype":"int", "constval":"128" }, + { "constname":"k_cchSteamNetworkingMaxConnectionAppName", "consttype":"int", "constval":"32" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_Unauthenticated", "consttype":"int", "constval":"1" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_Unencrypted", "consttype":"int", "constval":"2" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_LoopbackBuffers", "consttype":"int", "constval":"4" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_Fast", "consttype":"int", "constval":"8" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_Relayed", "consttype":"int", "constval":"16" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_DualWifi", "consttype":"int", "constval":"32" }, + { "constname":"k_cbMaxSteamNetworkingSocketsMessageSizeSend", "consttype":"int", "constval":"512 * 1024" }, + { "constname":"k_nSteamNetworkingSend_Unreliable", "consttype":"int", "constval":"0" }, + { "constname":"k_nSteamNetworkingSend_NoNagle", "consttype":"int", "constval":"1" }, + { "constname":"k_nSteamNetworkingSend_UnreliableNoNagle", "consttype":"int", "constval":"k_nSteamNetworkingSend_Unreliable | k_nSteamNetworkingSend_NoNagle" }, + { "constname":"k_nSteamNetworkingSend_NoDelay", "consttype":"int", "constval":"4" }, + { "constname":"k_nSteamNetworkingSend_UnreliableNoDelay", "consttype":"int", "constval":"k_nSteamNetworkingSend_Unreliable | k_nSteamNetworkingSend_NoDelay | k_nSteamNetworkingSend_NoNagle" }, + { "constname":"k_nSteamNetworkingSend_Reliable", "consttype":"int", "constval":"8" }, + { "constname":"k_nSteamNetworkingSend_ReliableNoNagle", "consttype":"int", "constval":"k_nSteamNetworkingSend_Reliable | k_nSteamNetworkingSend_NoNagle" }, + { "constname":"k_nSteamNetworkingSend_UseCurrentThread", "consttype":"int", "constval":"16" }, + { "constname":"k_nSteamNetworkingSend_AutoRestartBrokenSession", "consttype":"int", "constval":"32" }, + { "constname":"k_cchMaxSteamNetworkingPingLocationString", "consttype":"int", "constval":"1024" }, + { "constname":"k_nSteamNetworkingPing_Failed", "consttype":"int", "constval":"- 1" }, + { "constname":"k_nSteamNetworkingPing_Unknown", "consttype":"int", "constval":"- 2" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Default", "consttype":"int", "constval":"- 1" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Disable", "consttype":"int", "constval":"0" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Relay", "consttype":"int", "constval":"1" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Private", "consttype":"int", "constval":"2" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Public", "consttype":"int", "constval":"4" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_All", "consttype":"int", "constval":"0x7fffffff" }, + { "constname":"k_SteamDatagramPOPID_dev", "consttype":"SteamNetworkingPOPID", "constval":"( ( uint32 ) 'd' << 16U ) | ( ( uint32 ) 'e' << 8U ) | ( uint32 ) 'v'" }, + { "constname":"STEAMGAMESERVER_QUERY_PORT_SHARED", "consttype":"uint16", "constval":"0xffff" }, + { "constname":"MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE", "consttype":"uint16", "constval":"STEAMGAMESERVER_QUERY_PORT_SHARED" }, + { "constname":"k_cbSteamDatagramMaxSerializedTicket", "consttype":"uint32", "constval":"512" }, + { "constname":"k_cbMaxSteamDatagramGameCoordinatorServerLoginAppData", "consttype":"uint32", "constval":"2048" }, + { "constname":"k_cbMaxSteamDatagramGameCoordinatorServerLoginSerialized", "consttype":"uint32", "constval":"4096" }, + { "constname":"k_cbSteamNetworkingSocketsFakeUDPPortRecommendedMTU", "consttype":"int", "constval":"1200" }, + { "constname":"k_cbSteamNetworkingSocketsFakeUDPPortMaxMessageSize", "consttype":"int", "constval":"4096" } + ], + "enums": [ + { + "enumname": "ESteamIPType", + "values": [ + { "name":"k_ESteamIPTypeIPv4", "value":"0" }, + { "name":"k_ESteamIPTypeIPv6", "value":"1" } + ] + }, + { + "enumname": "EUniverse", + "values": [ + { "name":"k_EUniverseInvalid", "value":"0" }, + { "name":"k_EUniversePublic", "value":"1" }, + { "name":"k_EUniverseBeta", "value":"2" }, + { "name":"k_EUniverseInternal", "value":"3" }, + { "name":"k_EUniverseDev", "value":"4" }, + { "name":"k_EUniverseMax", "value":"5" } + ] + }, + { + "enumname": "EResult", + "values": [ + { "name":"k_EResultNone", "value":"0" }, + { "name":"k_EResultOK", "value":"1" }, + { "name":"k_EResultFail", "value":"2" }, + { "name":"k_EResultNoConnection", "value":"3" }, + { "name":"k_EResultInvalidPassword", "value":"5" }, + { "name":"k_EResultLoggedInElsewhere", "value":"6" }, + { "name":"k_EResultInvalidProtocolVer", "value":"7" }, + { "name":"k_EResultInvalidParam", "value":"8" }, + { "name":"k_EResultFileNotFound", "value":"9" }, + { "name":"k_EResultBusy", "value":"10" }, + { "name":"k_EResultInvalidState", "value":"11" }, + { "name":"k_EResultInvalidName", "value":"12" }, + { "name":"k_EResultInvalidEmail", "value":"13" }, + { "name":"k_EResultDuplicateName", "value":"14" }, + { "name":"k_EResultAccessDenied", "value":"15" }, + { "name":"k_EResultTimeout", "value":"16" }, + { "name":"k_EResultBanned", "value":"17" }, + { "name":"k_EResultAccountNotFound", "value":"18" }, + { "name":"k_EResultInvalidSteamID", "value":"19" }, + { "name":"k_EResultServiceUnavailable", "value":"20" }, + { "name":"k_EResultNotLoggedOn", "value":"21" }, + { "name":"k_EResultPending", "value":"22" }, + { "name":"k_EResultEncryptionFailure", "value":"23" }, + { "name":"k_EResultInsufficientPrivilege", "value":"24" }, + { "name":"k_EResultLimitExceeded", "value":"25" }, + { "name":"k_EResultRevoked", "value":"26" }, + { "name":"k_EResultExpired", "value":"27" }, + { "name":"k_EResultAlreadyRedeemed", "value":"28" }, + { "name":"k_EResultDuplicateRequest", "value":"29" }, + { "name":"k_EResultAlreadyOwned", "value":"30" }, + { "name":"k_EResultIPNotFound", "value":"31" }, + { "name":"k_EResultPersistFailed", "value":"32" }, + { "name":"k_EResultLockingFailed", "value":"33" }, + { "name":"k_EResultLogonSessionReplaced", "value":"34" }, + { "name":"k_EResultConnectFailed", "value":"35" }, + { "name":"k_EResultHandshakeFailed", "value":"36" }, + { "name":"k_EResultIOFailure", "value":"37" }, + { "name":"k_EResultRemoteDisconnect", "value":"38" }, + { "name":"k_EResultShoppingCartNotFound", "value":"39" }, + { "name":"k_EResultBlocked", "value":"40" }, + { "name":"k_EResultIgnored", "value":"41" }, + { "name":"k_EResultNoMatch", "value":"42" }, + { "name":"k_EResultAccountDisabled", "value":"43" }, + { "name":"k_EResultServiceReadOnly", "value":"44" }, + { "name":"k_EResultAccountNotFeatured", "value":"45" }, + { "name":"k_EResultAdministratorOK", "value":"46" }, + { "name":"k_EResultContentVersion", "value":"47" }, + { "name":"k_EResultTryAnotherCM", "value":"48" }, + { "name":"k_EResultPasswordRequiredToKickSession", "value":"49" }, + { "name":"k_EResultAlreadyLoggedInElsewhere", "value":"50" }, + { "name":"k_EResultSuspended", "value":"51" }, + { "name":"k_EResultCancelled", "value":"52" }, + { "name":"k_EResultDataCorruption", "value":"53" }, + { "name":"k_EResultDiskFull", "value":"54" }, + { "name":"k_EResultRemoteCallFailed", "value":"55" }, + { "name":"k_EResultPasswordUnset", "value":"56" }, + { "name":"k_EResultExternalAccountUnlinked", "value":"57" }, + { "name":"k_EResultPSNTicketInvalid", "value":"58" }, + { "name":"k_EResultExternalAccountAlreadyLinked", "value":"59" }, + { "name":"k_EResultRemoteFileConflict", "value":"60" }, + { "name":"k_EResultIllegalPassword", "value":"61" }, + { "name":"k_EResultSameAsPreviousValue", "value":"62" }, + { "name":"k_EResultAccountLogonDenied", "value":"63" }, + { "name":"k_EResultCannotUseOldPassword", "value":"64" }, + { "name":"k_EResultInvalidLoginAuthCode", "value":"65" }, + { "name":"k_EResultAccountLogonDeniedNoMail", "value":"66" }, + { "name":"k_EResultHardwareNotCapableOfIPT", "value":"67" }, + { "name":"k_EResultIPTInitError", "value":"68" }, + { "name":"k_EResultParentalControlRestricted", "value":"69" }, + { "name":"k_EResultFacebookQueryError", "value":"70" }, + { "name":"k_EResultExpiredLoginAuthCode", "value":"71" }, + { "name":"k_EResultIPLoginRestrictionFailed", "value":"72" }, + { "name":"k_EResultAccountLockedDown", "value":"73" }, + { "name":"k_EResultAccountLogonDeniedVerifiedEmailRequired", "value":"74" }, + { "name":"k_EResultNoMatchingURL", "value":"75" }, + { "name":"k_EResultBadResponse", "value":"76" }, + { "name":"k_EResultRequirePasswordReEntry", "value":"77" }, + { "name":"k_EResultValueOutOfRange", "value":"78" }, + { "name":"k_EResultUnexpectedError", "value":"79" }, + { "name":"k_EResultDisabled", "value":"80" }, + { "name":"k_EResultInvalidCEGSubmission", "value":"81" }, + { "name":"k_EResultRestrictedDevice", "value":"82" }, + { "name":"k_EResultRegionLocked", "value":"83" }, + { "name":"k_EResultRateLimitExceeded", "value":"84" }, + { "name":"k_EResultAccountLoginDeniedNeedTwoFactor", "value":"85" }, + { "name":"k_EResultItemDeleted", "value":"86" }, + { "name":"k_EResultAccountLoginDeniedThrottle", "value":"87" }, + { "name":"k_EResultTwoFactorCodeMismatch", "value":"88" }, + { "name":"k_EResultTwoFactorActivationCodeMismatch", "value":"89" }, + { "name":"k_EResultAccountAssociatedToMultiplePartners", "value":"90" }, + { "name":"k_EResultNotModified", "value":"91" }, + { "name":"k_EResultNoMobileDevice", "value":"92" }, + { "name":"k_EResultTimeNotSynced", "value":"93" }, + { "name":"k_EResultSmsCodeFailed", "value":"94" }, + { "name":"k_EResultAccountLimitExceeded", "value":"95" }, + { "name":"k_EResultAccountActivityLimitExceeded", "value":"96" }, + { "name":"k_EResultPhoneActivityLimitExceeded", "value":"97" }, + { "name":"k_EResultRefundToWallet", "value":"98" }, + { "name":"k_EResultEmailSendFailure", "value":"99" }, + { "name":"k_EResultNotSettled", "value":"100" }, + { "name":"k_EResultNeedCaptcha", "value":"101" }, + { "name":"k_EResultGSLTDenied", "value":"102" }, + { "name":"k_EResultGSOwnerDenied", "value":"103" }, + { "name":"k_EResultInvalidItemType", "value":"104" }, + { "name":"k_EResultIPBanned", "value":"105" }, + { "name":"k_EResultGSLTExpired", "value":"106" }, + { "name":"k_EResultInsufficientFunds", "value":"107" }, + { "name":"k_EResultTooManyPending", "value":"108" }, + { "name":"k_EResultNoSiteLicensesFound", "value":"109" }, + { "name":"k_EResultWGNetworkSendExceeded", "value":"110" }, + { "name":"k_EResultAccountNotFriends", "value":"111" }, + { "name":"k_EResultLimitedUserAccount", "value":"112" }, + { "name":"k_EResultCantRemoveItem", "value":"113" }, + { "name":"k_EResultAccountDeleted", "value":"114" }, + { "name":"k_EResultExistingUserCancelledLicense", "value":"115" }, + { "name":"k_EResultCommunityCooldown", "value":"116" }, + { "name":"k_EResultNoLauncherSpecified", "value":"117" }, + { "name":"k_EResultMustAgreeToSSA", "value":"118" }, + { "name":"k_EResultLauncherMigrated", "value":"119" }, + { "name":"k_EResultSteamRealmMismatch", "value":"120" }, + { "name":"k_EResultInvalidSignature", "value":"121" }, + { "name":"k_EResultParseFailure", "value":"122" }, + { "name":"k_EResultNoVerifiedPhone", "value":"123" }, + { "name":"k_EResultInsufficientBattery", "value":"124" }, + { "name":"k_EResultChargerRequired", "value":"125" }, + { "name":"k_EResultCachedCredentialInvalid", "value":"126" }, + { "name":"K_EResultPhoneNumberIsVOIP", "value":"127" }, + { "name":"k_EResultNotSupported", "value":"128" }, + { "name":"k_EResultFamilySizeLimitExceeded", "value":"129" } + ] + }, + { + "enumname": "EVoiceResult", + "values": [ + { "name":"k_EVoiceResultOK", "value":"0" }, + { "name":"k_EVoiceResultNotInitialized", "value":"1" }, + { "name":"k_EVoiceResultNotRecording", "value":"2" }, + { "name":"k_EVoiceResultNoData", "value":"3" }, + { "name":"k_EVoiceResultBufferTooSmall", "value":"4" }, + { "name":"k_EVoiceResultDataCorrupted", "value":"5" }, + { "name":"k_EVoiceResultRestricted", "value":"6" }, + { "name":"k_EVoiceResultUnsupportedCodec", "value":"7" }, + { "name":"k_EVoiceResultReceiverOutOfDate", "value":"8" }, + { "name":"k_EVoiceResultReceiverDidNotAnswer", "value":"9" } + ] + }, + { + "enumname": "EDenyReason", + "values": [ + { "name":"k_EDenyInvalid", "value":"0" }, + { "name":"k_EDenyInvalidVersion", "value":"1" }, + { "name":"k_EDenyGeneric", "value":"2" }, + { "name":"k_EDenyNotLoggedOn", "value":"3" }, + { "name":"k_EDenyNoLicense", "value":"4" }, + { "name":"k_EDenyCheater", "value":"5" }, + { "name":"k_EDenyLoggedInElseWhere", "value":"6" }, + { "name":"k_EDenyUnknownText", "value":"7" }, + { "name":"k_EDenyIncompatibleAnticheat", "value":"8" }, + { "name":"k_EDenyMemoryCorruption", "value":"9" }, + { "name":"k_EDenyIncompatibleSoftware", "value":"10" }, + { "name":"k_EDenySteamConnectionLost", "value":"11" }, + { "name":"k_EDenySteamConnectionError", "value":"12" }, + { "name":"k_EDenySteamResponseTimedOut", "value":"13" }, + { "name":"k_EDenySteamValidationStalled", "value":"14" }, + { "name":"k_EDenySteamOwnerLeftGuestUser", "value":"15" } + ] + }, + { + "enumname": "EBeginAuthSessionResult", + "values": [ + { "name":"k_EBeginAuthSessionResultOK", "value":"0" }, + { "name":"k_EBeginAuthSessionResultInvalidTicket", "value":"1" }, + { "name":"k_EBeginAuthSessionResultDuplicateRequest", "value":"2" }, + { "name":"k_EBeginAuthSessionResultInvalidVersion", "value":"3" }, + { "name":"k_EBeginAuthSessionResultGameMismatch", "value":"4" }, + { "name":"k_EBeginAuthSessionResultExpiredTicket", "value":"5" } + ] + }, + { + "enumname": "EAuthSessionResponse", + "values": [ + { "name":"k_EAuthSessionResponseOK", "value":"0" }, + { "name":"k_EAuthSessionResponseUserNotConnectedToSteam", "value":"1" }, + { "name":"k_EAuthSessionResponseNoLicenseOrExpired", "value":"2" }, + { "name":"k_EAuthSessionResponseVACBanned", "value":"3" }, + { "name":"k_EAuthSessionResponseLoggedInElseWhere", "value":"4" }, + { "name":"k_EAuthSessionResponseVACCheckTimedOut", "value":"5" }, + { "name":"k_EAuthSessionResponseAuthTicketCanceled", "value":"6" }, + { "name":"k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed", "value":"7" }, + { "name":"k_EAuthSessionResponseAuthTicketInvalid", "value":"8" }, + { "name":"k_EAuthSessionResponsePublisherIssuedBan", "value":"9" }, + { "name":"k_EAuthSessionResponseAuthTicketNetworkIdentityFailure", "value":"10" } + ] + }, + { + "enumname": "EUserHasLicenseForAppResult", + "values": [ + { "name":"k_EUserHasLicenseResultHasLicense", "value":"0" }, + { "name":"k_EUserHasLicenseResultDoesNotHaveLicense", "value":"1" }, + { "name":"k_EUserHasLicenseResultNoAuth", "value":"2" } + ] + }, + { + "enumname": "EAccountType", + "values": [ + { "name":"k_EAccountTypeInvalid", "value":"0" }, + { "name":"k_EAccountTypeIndividual", "value":"1" }, + { "name":"k_EAccountTypeMultiseat", "value":"2" }, + { "name":"k_EAccountTypeGameServer", "value":"3" }, + { "name":"k_EAccountTypeAnonGameServer", "value":"4" }, + { "name":"k_EAccountTypePending", "value":"5" }, + { "name":"k_EAccountTypeContentServer", "value":"6" }, + { "name":"k_EAccountTypeClan", "value":"7" }, + { "name":"k_EAccountTypeChat", "value":"8" }, + { "name":"k_EAccountTypeConsoleUser", "value":"9" }, + { "name":"k_EAccountTypeAnonUser", "value":"10" }, + { "name":"k_EAccountTypeMax", "value":"11" } + ] + }, + { + "enumname": "EChatEntryType", + "values": [ + { "name":"k_EChatEntryTypeInvalid", "value":"0" }, + { "name":"k_EChatEntryTypeChatMsg", "value":"1" }, + { "name":"k_EChatEntryTypeTyping", "value":"2" }, + { "name":"k_EChatEntryTypeInviteGame", "value":"3" }, + { "name":"k_EChatEntryTypeEmote", "value":"4" }, + { "name":"k_EChatEntryTypeLeftConversation", "value":"6" }, + { "name":"k_EChatEntryTypeEntered", "value":"7" }, + { "name":"k_EChatEntryTypeWasKicked", "value":"8" }, + { "name":"k_EChatEntryTypeWasBanned", "value":"9" }, + { "name":"k_EChatEntryTypeDisconnected", "value":"10" }, + { "name":"k_EChatEntryTypeHistoricalChat", "value":"11" }, + { "name":"k_EChatEntryTypeLinkBlocked", "value":"14" } + ] + }, + { + "enumname": "EChatRoomEnterResponse", + "values": [ + { "name":"k_EChatRoomEnterResponseSuccess", "value":"1" }, + { "name":"k_EChatRoomEnterResponseDoesntExist", "value":"2" }, + { "name":"k_EChatRoomEnterResponseNotAllowed", "value":"3" }, + { "name":"k_EChatRoomEnterResponseFull", "value":"4" }, + { "name":"k_EChatRoomEnterResponseError", "value":"5" }, + { "name":"k_EChatRoomEnterResponseBanned", "value":"6" }, + { "name":"k_EChatRoomEnterResponseLimited", "value":"7" }, + { "name":"k_EChatRoomEnterResponseClanDisabled", "value":"8" }, + { "name":"k_EChatRoomEnterResponseCommunityBan", "value":"9" }, + { "name":"k_EChatRoomEnterResponseMemberBlockedYou", "value":"10" }, + { "name":"k_EChatRoomEnterResponseYouBlockedMember", "value":"11" }, + { "name":"k_EChatRoomEnterResponseRatelimitExceeded", "value":"15" } + ] + }, + { + "enumname": "EChatSteamIDInstanceFlags", + "values": [ + { "name":"k_EChatAccountInstanceMask", "value":"4095" }, + { "name":"k_EChatInstanceFlagClan", "value":"524288" }, + { "name":"k_EChatInstanceFlagLobby", "value":"262144" }, + { "name":"k_EChatInstanceFlagMMSLobby", "value":"131072" } + ] + }, + { + "enumname": "ENotificationPosition", + "values": [ + { "name":"k_EPositionInvalid", "value":"-1" }, + { "name":"k_EPositionTopLeft", "value":"0" }, + { "name":"k_EPositionTopRight", "value":"1" }, + { "name":"k_EPositionBottomLeft", "value":"2" }, + { "name":"k_EPositionBottomRight", "value":"3" } + ] + }, + { + "enumname": "EBroadcastUploadResult", + "values": [ + { "name":"k_EBroadcastUploadResultNone", "value":"0" }, + { "name":"k_EBroadcastUploadResultOK", "value":"1" }, + { "name":"k_EBroadcastUploadResultInitFailed", "value":"2" }, + { "name":"k_EBroadcastUploadResultFrameFailed", "value":"3" }, + { "name":"k_EBroadcastUploadResultTimeout", "value":"4" }, + { "name":"k_EBroadcastUploadResultBandwidthExceeded", "value":"5" }, + { "name":"k_EBroadcastUploadResultLowFPS", "value":"6" }, + { "name":"k_EBroadcastUploadResultMissingKeyFrames", "value":"7" }, + { "name":"k_EBroadcastUploadResultNoConnection", "value":"8" }, + { "name":"k_EBroadcastUploadResultRelayFailed", "value":"9" }, + { "name":"k_EBroadcastUploadResultSettingsChanged", "value":"10" }, + { "name":"k_EBroadcastUploadResultMissingAudio", "value":"11" }, + { "name":"k_EBroadcastUploadResultTooFarBehind", "value":"12" }, + { "name":"k_EBroadcastUploadResultTranscodeBehind", "value":"13" }, + { "name":"k_EBroadcastUploadResultNotAllowedToPlay", "value":"14" }, + { "name":"k_EBroadcastUploadResultBusy", "value":"15" }, + { "name":"k_EBroadcastUploadResultBanned", "value":"16" }, + { "name":"k_EBroadcastUploadResultAlreadyActive", "value":"17" }, + { "name":"k_EBroadcastUploadResultForcedOff", "value":"18" }, + { "name":"k_EBroadcastUploadResultAudioBehind", "value":"19" }, + { "name":"k_EBroadcastUploadResultShutdown", "value":"20" }, + { "name":"k_EBroadcastUploadResultDisconnect", "value":"21" }, + { "name":"k_EBroadcastUploadResultVideoInitFailed", "value":"22" }, + { "name":"k_EBroadcastUploadResultAudioInitFailed", "value":"23" } + ] + }, + { + "enumname": "EMarketNotAllowedReasonFlags", + "values": [ + { "name":"k_EMarketNotAllowedReason_None", "value":"0" }, + { "name":"k_EMarketNotAllowedReason_TemporaryFailure", "value":"1" }, + { "name":"k_EMarketNotAllowedReason_AccountDisabled", "value":"2" }, + { "name":"k_EMarketNotAllowedReason_AccountLockedDown", "value":"4" }, + { "name":"k_EMarketNotAllowedReason_AccountLimited", "value":"8" }, + { "name":"k_EMarketNotAllowedReason_TradeBanned", "value":"16" }, + { "name":"k_EMarketNotAllowedReason_AccountNotTrusted", "value":"32" }, + { "name":"k_EMarketNotAllowedReason_SteamGuardNotEnabled", "value":"64" }, + { "name":"k_EMarketNotAllowedReason_SteamGuardOnlyRecentlyEnabled", "value":"128" }, + { "name":"k_EMarketNotAllowedReason_RecentPasswordReset", "value":"256" }, + { "name":"k_EMarketNotAllowedReason_NewPaymentMethod", "value":"512" }, + { "name":"k_EMarketNotAllowedReason_InvalidCookie", "value":"1024" }, + { "name":"k_EMarketNotAllowedReason_UsingNewDevice", "value":"2048" }, + { "name":"k_EMarketNotAllowedReason_RecentSelfRefund", "value":"4096" }, + { "name":"k_EMarketNotAllowedReason_NewPaymentMethodCannotBeVerified", "value":"8192" }, + { "name":"k_EMarketNotAllowedReason_NoRecentPurchases", "value":"16384" }, + { "name":"k_EMarketNotAllowedReason_AcceptedWalletGift", "value":"32768" } + ] + }, + { + "enumname": "EDurationControlProgress", + "values": [ + { "name":"k_EDurationControlProgress_Full", "value":"0" }, + { "name":"k_EDurationControlProgress_Half", "value":"1" }, + { "name":"k_EDurationControlProgress_None", "value":"2" }, + { "name":"k_EDurationControl_ExitSoon_3h", "value":"3" }, + { "name":"k_EDurationControl_ExitSoon_5h", "value":"4" }, + { "name":"k_EDurationControl_ExitSoon_Night", "value":"5" } + ] + }, + { + "enumname": "EDurationControlNotification", + "values": [ + { "name":"k_EDurationControlNotification_None", "value":"0" }, + { "name":"k_EDurationControlNotification_1Hour", "value":"1" }, + { "name":"k_EDurationControlNotification_3Hours", "value":"2" }, + { "name":"k_EDurationControlNotification_HalfProgress", "value":"3" }, + { "name":"k_EDurationControlNotification_NoProgress", "value":"4" }, + { "name":"k_EDurationControlNotification_ExitSoon_3h", "value":"5" }, + { "name":"k_EDurationControlNotification_ExitSoon_5h", "value":"6" }, + { "name":"k_EDurationControlNotification_ExitSoon_Night", "value":"7" } + ] + }, + { + "enumname": "EDurationControlOnlineState", + "values": [ + { "name":"k_EDurationControlOnlineState_Invalid", "value":"0" }, + { "name":"k_EDurationControlOnlineState_Offline", "value":"1" }, + { "name":"k_EDurationControlOnlineState_Online", "value":"2" }, + { "name":"k_EDurationControlOnlineState_OnlineHighPri", "value":"3" } + ] + }, + { + "enumname": "EGameSearchErrorCode_t", + "values": [ + { "name":"k_EGameSearchErrorCode_OK", "value":"1" }, + { "name":"k_EGameSearchErrorCode_Failed_Search_Already_In_Progress", "value":"2" }, + { "name":"k_EGameSearchErrorCode_Failed_No_Search_In_Progress", "value":"3" }, + { "name":"k_EGameSearchErrorCode_Failed_Not_Lobby_Leader", "value":"4" }, + { "name":"k_EGameSearchErrorCode_Failed_No_Host_Available", "value":"5" }, + { "name":"k_EGameSearchErrorCode_Failed_Search_Params_Invalid", "value":"6" }, + { "name":"k_EGameSearchErrorCode_Failed_Offline", "value":"7" }, + { "name":"k_EGameSearchErrorCode_Failed_NotAuthorized", "value":"8" }, + { "name":"k_EGameSearchErrorCode_Failed_Unknown_Error", "value":"9" } + ] + }, + { + "enumname": "EPlayerResult_t", + "values": [ + { "name":"k_EPlayerResultFailedToConnect", "value":"1" }, + { "name":"k_EPlayerResultAbandoned", "value":"2" }, + { "name":"k_EPlayerResultKicked", "value":"3" }, + { "name":"k_EPlayerResultIncomplete", "value":"4" }, + { "name":"k_EPlayerResultCompleted", "value":"5" } + ] + }, + { + "enumname": "ESteamIPv6ConnectivityProtocol", + "values": [ + { "name":"k_ESteamIPv6ConnectivityProtocol_Invalid", "value":"0" }, + { "name":"k_ESteamIPv6ConnectivityProtocol_HTTP", "value":"1" }, + { "name":"k_ESteamIPv6ConnectivityProtocol_UDP", "value":"2" } + ] + }, + { + "enumname": "ESteamIPv6ConnectivityState", + "values": [ + { "name":"k_ESteamIPv6ConnectivityState_Unknown", "value":"0" }, + { "name":"k_ESteamIPv6ConnectivityState_Good", "value":"1" }, + { "name":"k_ESteamIPv6ConnectivityState_Bad", "value":"2" } + ] + }, + { + "enumname": "EFriendRelationship", + "values": [ + { "name":"k_EFriendRelationshipNone", "value":"0" }, + { "name":"k_EFriendRelationshipBlocked", "value":"1" }, + { "name":"k_EFriendRelationshipRequestRecipient", "value":"2" }, + { "name":"k_EFriendRelationshipFriend", "value":"3" }, + { "name":"k_EFriendRelationshipRequestInitiator", "value":"4" }, + { "name":"k_EFriendRelationshipIgnored", "value":"5" }, + { "name":"k_EFriendRelationshipIgnoredFriend", "value":"6" }, + { "name":"k_EFriendRelationshipSuggested_DEPRECATED", "value":"7" }, + { "name":"k_EFriendRelationshipMax", "value":"8" } + ] + }, + { + "enumname": "EPersonaState", + "values": [ + { "name":"k_EPersonaStateOffline", "value":"0" }, + { "name":"k_EPersonaStateOnline", "value":"1" }, + { "name":"k_EPersonaStateBusy", "value":"2" }, + { "name":"k_EPersonaStateAway", "value":"3" }, + { "name":"k_EPersonaStateSnooze", "value":"4" }, + { "name":"k_EPersonaStateLookingToTrade", "value":"5" }, + { "name":"k_EPersonaStateLookingToPlay", "value":"6" }, + { "name":"k_EPersonaStateInvisible", "value":"7" }, + { "name":"k_EPersonaStateMax", "value":"8" } + ] + }, + { + "enumname": "EFriendFlags", + "values": [ + { "name":"k_EFriendFlagNone", "value":"0" }, + { "name":"k_EFriendFlagBlocked", "value":"1" }, + { "name":"k_EFriendFlagFriendshipRequested", "value":"2" }, + { "name":"k_EFriendFlagImmediate", "value":"4" }, + { "name":"k_EFriendFlagClanMember", "value":"8" }, + { "name":"k_EFriendFlagOnGameServer", "value":"16" }, + { "name":"k_EFriendFlagRequestingFriendship", "value":"128" }, + { "name":"k_EFriendFlagRequestingInfo", "value":"256" }, + { "name":"k_EFriendFlagIgnored", "value":"512" }, + { "name":"k_EFriendFlagIgnoredFriend", "value":"1024" }, + { "name":"k_EFriendFlagChatMember", "value":"4096" }, + { "name":"k_EFriendFlagAll", "value":"65535" } + ] + }, + { + "enumname": "EUserRestriction", + "values": [ + { "name":"k_nUserRestrictionNone", "value":"0" }, + { "name":"k_nUserRestrictionUnknown", "value":"1" }, + { "name":"k_nUserRestrictionAnyChat", "value":"2" }, + { "name":"k_nUserRestrictionVoiceChat", "value":"4" }, + { "name":"k_nUserRestrictionGroupChat", "value":"8" }, + { "name":"k_nUserRestrictionRating", "value":"16" }, + { "name":"k_nUserRestrictionGameInvites", "value":"32" }, + { "name":"k_nUserRestrictionTrading", "value":"64" } + ] + }, + { + "enumname": "EOverlayToStoreFlag", + "values": [ + { "name":"k_EOverlayToStoreFlag_None", "value":"0" }, + { "name":"k_EOverlayToStoreFlag_AddToCart", "value":"1" }, + { "name":"k_EOverlayToStoreFlag_AddToCartAndShow", "value":"2" } + ] + }, + { + "enumname": "EActivateGameOverlayToWebPageMode", + "values": [ + { "name":"k_EActivateGameOverlayToWebPageMode_Default", "value":"0" }, + { "name":"k_EActivateGameOverlayToWebPageMode_Modal", "value":"1" } + ] + }, + { + "enumname": "ECommunityProfileItemType", + "values": [ + { "name":"k_ECommunityProfileItemType_AnimatedAvatar", "value":"0" }, + { "name":"k_ECommunityProfileItemType_AvatarFrame", "value":"1" }, + { "name":"k_ECommunityProfileItemType_ProfileModifier", "value":"2" }, + { "name":"k_ECommunityProfileItemType_ProfileBackground", "value":"3" }, + { "name":"k_ECommunityProfileItemType_MiniProfileBackground", "value":"4" } + ] + }, + { + "enumname": "ECommunityProfileItemProperty", + "values": [ + { "name":"k_ECommunityProfileItemProperty_ImageSmall", "value":"0" }, + { "name":"k_ECommunityProfileItemProperty_ImageLarge", "value":"1" }, + { "name":"k_ECommunityProfileItemProperty_InternalName", "value":"2" }, + { "name":"k_ECommunityProfileItemProperty_Title", "value":"3" }, + { "name":"k_ECommunityProfileItemProperty_Description", "value":"4" }, + { "name":"k_ECommunityProfileItemProperty_AppID", "value":"5" }, + { "name":"k_ECommunityProfileItemProperty_TypeID", "value":"6" }, + { "name":"k_ECommunityProfileItemProperty_Class", "value":"7" }, + { "name":"k_ECommunityProfileItemProperty_MovieWebM", "value":"8" }, + { "name":"k_ECommunityProfileItemProperty_MovieMP4", "value":"9" }, + { "name":"k_ECommunityProfileItemProperty_MovieWebMSmall", "value":"10" }, + { "name":"k_ECommunityProfileItemProperty_MovieMP4Small", "value":"11" } + ] + }, + { + "enumname": "EPersonaChange", + "values": [ + { "name":"k_EPersonaChangeName", "value":"1" }, + { "name":"k_EPersonaChangeStatus", "value":"2" }, + { "name":"k_EPersonaChangeComeOnline", "value":"4" }, + { "name":"k_EPersonaChangeGoneOffline", "value":"8" }, + { "name":"k_EPersonaChangeGamePlayed", "value":"16" }, + { "name":"k_EPersonaChangeGameServer", "value":"32" }, + { "name":"k_EPersonaChangeAvatar", "value":"64" }, + { "name":"k_EPersonaChangeJoinedSource", "value":"128" }, + { "name":"k_EPersonaChangeLeftSource", "value":"256" }, + { "name":"k_EPersonaChangeRelationshipChanged", "value":"512" }, + { "name":"k_EPersonaChangeNameFirstSet", "value":"1024" }, + { "name":"k_EPersonaChangeBroadcast", "value":"2048" }, + { "name":"k_EPersonaChangeNickname", "value":"4096" }, + { "name":"k_EPersonaChangeSteamLevel", "value":"8192" }, + { "name":"k_EPersonaChangeRichPresence", "value":"16384" } + ] + }, + { + "enumname": "ESteamAPICallFailure", + "values": [ + { "name":"k_ESteamAPICallFailureNone", "value":"-1" }, + { "name":"k_ESteamAPICallFailureSteamGone", "value":"0" }, + { "name":"k_ESteamAPICallFailureNetworkFailure", "value":"1" }, + { "name":"k_ESteamAPICallFailureInvalidHandle", "value":"2" }, + { "name":"k_ESteamAPICallFailureMismatchedCallback", "value":"3" } + ] + }, + { + "enumname": "EGamepadTextInputMode", + "values": [ + { "name":"k_EGamepadTextInputModeNormal", "value":"0" }, + { "name":"k_EGamepadTextInputModePassword", "value":"1" } + ] + }, + { + "enumname": "EGamepadTextInputLineMode", + "values": [ + { "name":"k_EGamepadTextInputLineModeSingleLine", "value":"0" }, + { "name":"k_EGamepadTextInputLineModeMultipleLines", "value":"1" } + ] + }, + { + "enumname": "EFloatingGamepadTextInputMode", + "values": [ + { "name":"k_EFloatingGamepadTextInputModeModeSingleLine", "value":"0" }, + { "name":"k_EFloatingGamepadTextInputModeModeMultipleLines", "value":"1" }, + { "name":"k_EFloatingGamepadTextInputModeModeEmail", "value":"2" }, + { "name":"k_EFloatingGamepadTextInputModeModeNumeric", "value":"3" } + ] + }, + { + "enumname": "ETextFilteringContext", + "values": [ + { "name":"k_ETextFilteringContextUnknown", "value":"0" }, + { "name":"k_ETextFilteringContextGameContent", "value":"1" }, + { "name":"k_ETextFilteringContextChat", "value":"2" }, + { "name":"k_ETextFilteringContextName", "value":"3" } + ] + }, + { + "enumname": "ECheckFileSignature", + "values": [ + { "name":"k_ECheckFileSignatureInvalidSignature", "value":"0" }, + { "name":"k_ECheckFileSignatureValidSignature", "value":"1" }, + { "name":"k_ECheckFileSignatureFileNotFound", "value":"2" }, + { "name":"k_ECheckFileSignatureNoSignaturesFoundForThisApp", "value":"3" }, + { "name":"k_ECheckFileSignatureNoSignaturesFoundForThisFile", "value":"4" } + ] + }, + { + "enumname": "EMatchMakingServerResponse", + "values": [ + { "name":"eServerResponded", "value":"0" }, + { "name":"eServerFailedToRespond", "value":"1" }, + { "name":"eNoServersListedOnMasterServer", "value":"2" } + ] + }, + { + "enumname": "ELobbyType", + "values": [ + { "name":"k_ELobbyTypePrivate", "value":"0" }, + { "name":"k_ELobbyTypeFriendsOnly", "value":"1" }, + { "name":"k_ELobbyTypePublic", "value":"2" }, + { "name":"k_ELobbyTypeInvisible", "value":"3" }, + { "name":"k_ELobbyTypePrivateUnique", "value":"4" } + ] + }, + { + "enumname": "ELobbyComparison", + "values": [ + { "name":"k_ELobbyComparisonEqualToOrLessThan", "value":"-2" }, + { "name":"k_ELobbyComparisonLessThan", "value":"-1" }, + { "name":"k_ELobbyComparisonEqual", "value":"0" }, + { "name":"k_ELobbyComparisonGreaterThan", "value":"1" }, + { "name":"k_ELobbyComparisonEqualToOrGreaterThan", "value":"2" }, + { "name":"k_ELobbyComparisonNotEqual", "value":"3" } + ] + }, + { + "enumname": "ELobbyDistanceFilter", + "values": [ + { "name":"k_ELobbyDistanceFilterClose", "value":"0" }, + { "name":"k_ELobbyDistanceFilterDefault", "value":"1" }, + { "name":"k_ELobbyDistanceFilterFar", "value":"2" }, + { "name":"k_ELobbyDistanceFilterWorldwide", "value":"3" } + ] + }, + { + "enumname": "EChatMemberStateChange", + "values": [ + { "name":"k_EChatMemberStateChangeEntered", "value":"1" }, + { "name":"k_EChatMemberStateChangeLeft", "value":"2" }, + { "name":"k_EChatMemberStateChangeDisconnected", "value":"4" }, + { "name":"k_EChatMemberStateChangeKicked", "value":"8" }, + { "name":"k_EChatMemberStateChangeBanned", "value":"16" } + ] + }, + { + "enumname": "ESteamPartyBeaconLocationType", + "values": [ + { "name":"k_ESteamPartyBeaconLocationType_Invalid", "value":"0" }, + { "name":"k_ESteamPartyBeaconLocationType_ChatGroup", "value":"1" }, + { "name":"k_ESteamPartyBeaconLocationType_Max", "value":"2" } + ] + }, + { + "enumname": "ESteamPartyBeaconLocationData", + "values": [ + { "name":"k_ESteamPartyBeaconLocationDataInvalid", "value":"0" }, + { "name":"k_ESteamPartyBeaconLocationDataName", "value":"1" }, + { "name":"k_ESteamPartyBeaconLocationDataIconURLSmall", "value":"2" }, + { "name":"k_ESteamPartyBeaconLocationDataIconURLMedium", "value":"3" }, + { "name":"k_ESteamPartyBeaconLocationDataIconURLLarge", "value":"4" } + ] + }, + { + "enumname": "ERemoteStoragePlatform", + "values": [ + { "name":"k_ERemoteStoragePlatformNone", "value":"0" }, + { "name":"k_ERemoteStoragePlatformWindows", "value":"1" }, + { "name":"k_ERemoteStoragePlatformOSX", "value":"2" }, + { "name":"k_ERemoteStoragePlatformPS3", "value":"4" }, + { "name":"k_ERemoteStoragePlatformLinux", "value":"8" }, + { "name":"k_ERemoteStoragePlatformSwitch", "value":"16" }, + { "name":"k_ERemoteStoragePlatformAndroid", "value":"32" }, + { "name":"k_ERemoteStoragePlatformIOS", "value":"64" }, + { "name":"k_ERemoteStoragePlatformAll", "value":"-1" } + ] + }, + { + "enumname": "ERemoteStoragePublishedFileVisibility", + "values": [ + { "name":"k_ERemoteStoragePublishedFileVisibilityPublic", "value":"0" }, + { "name":"k_ERemoteStoragePublishedFileVisibilityFriendsOnly", "value":"1" }, + { "name":"k_ERemoteStoragePublishedFileVisibilityPrivate", "value":"2" }, + { "name":"k_ERemoteStoragePublishedFileVisibilityUnlisted", "value":"3" } + ] + }, + { + "enumname": "EWorkshopFileType", + "values": [ + { "name":"k_EWorkshopFileTypeFirst", "value":"0" }, + { "name":"k_EWorkshopFileTypeCommunity", "value":"0" }, + { "name":"k_EWorkshopFileTypeMicrotransaction", "value":"1" }, + { "name":"k_EWorkshopFileTypeCollection", "value":"2" }, + { "name":"k_EWorkshopFileTypeArt", "value":"3" }, + { "name":"k_EWorkshopFileTypeVideo", "value":"4" }, + { "name":"k_EWorkshopFileTypeScreenshot", "value":"5" }, + { "name":"k_EWorkshopFileTypeGame", "value":"6" }, + { "name":"k_EWorkshopFileTypeSoftware", "value":"7" }, + { "name":"k_EWorkshopFileTypeConcept", "value":"8" }, + { "name":"k_EWorkshopFileTypeWebGuide", "value":"9" }, + { "name":"k_EWorkshopFileTypeIntegratedGuide", "value":"10" }, + { "name":"k_EWorkshopFileTypeMerch", "value":"11" }, + { "name":"k_EWorkshopFileTypeControllerBinding", "value":"12" }, + { "name":"k_EWorkshopFileTypeSteamworksAccessInvite", "value":"13" }, + { "name":"k_EWorkshopFileTypeSteamVideo", "value":"14" }, + { "name":"k_EWorkshopFileTypeGameManagedItem", "value":"15" }, + { "name":"k_EWorkshopFileTypeClip", "value":"16" }, + { "name":"k_EWorkshopFileTypeMax", "value":"17" } + ] + }, + { + "enumname": "EWorkshopVote", + "values": [ + { "name":"k_EWorkshopVoteUnvoted", "value":"0" }, + { "name":"k_EWorkshopVoteFor", "value":"1" }, + { "name":"k_EWorkshopVoteAgainst", "value":"2" }, + { "name":"k_EWorkshopVoteLater", "value":"3" } + ] + }, + { + "enumname": "EWorkshopFileAction", + "values": [ + { "name":"k_EWorkshopFileActionPlayed", "value":"0" }, + { "name":"k_EWorkshopFileActionCompleted", "value":"1" } + ] + }, + { + "enumname": "EWorkshopEnumerationType", + "values": [ + { "name":"k_EWorkshopEnumerationTypeRankedByVote", "value":"0" }, + { "name":"k_EWorkshopEnumerationTypeRecent", "value":"1" }, + { "name":"k_EWorkshopEnumerationTypeTrending", "value":"2" }, + { "name":"k_EWorkshopEnumerationTypeFavoritesOfFriends", "value":"3" }, + { "name":"k_EWorkshopEnumerationTypeVotedByFriends", "value":"4" }, + { "name":"k_EWorkshopEnumerationTypeContentByFriends", "value":"5" }, + { "name":"k_EWorkshopEnumerationTypeRecentFromFollowedUsers", "value":"6" } + ] + }, + { + "enumname": "EWorkshopVideoProvider", + "values": [ + { "name":"k_EWorkshopVideoProviderNone", "value":"0" }, + { "name":"k_EWorkshopVideoProviderYoutube", "value":"1" } + ] + }, + { + "enumname": "EUGCReadAction", + "values": [ + { "name":"k_EUGCRead_ContinueReadingUntilFinished", "value":"0" }, + { "name":"k_EUGCRead_ContinueReading", "value":"1" }, + { "name":"k_EUGCRead_Close", "value":"2" } + ] + }, + { + "enumname": "ERemoteStorageLocalFileChange", + "values": [ + { "name":"k_ERemoteStorageLocalFileChange_Invalid", "value":"0" }, + { "name":"k_ERemoteStorageLocalFileChange_FileUpdated", "value":"1" }, + { "name":"k_ERemoteStorageLocalFileChange_FileDeleted", "value":"2" } + ] + }, + { + "enumname": "ERemoteStorageFilePathType", + "values": [ + { "name":"k_ERemoteStorageFilePathType_Invalid", "value":"0" }, + { "name":"k_ERemoteStorageFilePathType_Absolute", "value":"1" }, + { "name":"k_ERemoteStorageFilePathType_APIFilename", "value":"2" } + ] + }, + { + "enumname": "ELeaderboardDataRequest", + "values": [ + { "name":"k_ELeaderboardDataRequestGlobal", "value":"0" }, + { "name":"k_ELeaderboardDataRequestGlobalAroundUser", "value":"1" }, + { "name":"k_ELeaderboardDataRequestFriends", "value":"2" }, + { "name":"k_ELeaderboardDataRequestUsers", "value":"3" } + ] + }, + { + "enumname": "ELeaderboardSortMethod", + "values": [ + { "name":"k_ELeaderboardSortMethodNone", "value":"0" }, + { "name":"k_ELeaderboardSortMethodAscending", "value":"1" }, + { "name":"k_ELeaderboardSortMethodDescending", "value":"2" } + ] + }, + { + "enumname": "ELeaderboardDisplayType", + "values": [ + { "name":"k_ELeaderboardDisplayTypeNone", "value":"0" }, + { "name":"k_ELeaderboardDisplayTypeNumeric", "value":"1" }, + { "name":"k_ELeaderboardDisplayTypeTimeSeconds", "value":"2" }, + { "name":"k_ELeaderboardDisplayTypeTimeMilliSeconds", "value":"3" } + ] + }, + { + "enumname": "ELeaderboardUploadScoreMethod", + "values": [ + { "name":"k_ELeaderboardUploadScoreMethodNone", "value":"0" }, + { "name":"k_ELeaderboardUploadScoreMethodKeepBest", "value":"1" }, + { "name":"k_ELeaderboardUploadScoreMethodForceUpdate", "value":"2" } + ] + }, + { + "enumname": "EP2PSessionError", + "values": [ + { "name":"k_EP2PSessionErrorNone", "value":"0" }, + { "name":"k_EP2PSessionErrorNoRightsToApp", "value":"2" }, + { "name":"k_EP2PSessionErrorTimeout", "value":"4" }, + { "name":"k_EP2PSessionErrorNotRunningApp_DELETED", "value":"1" }, + { "name":"k_EP2PSessionErrorDestinationNotLoggedIn_DELETED", "value":"3" }, + { "name":"k_EP2PSessionErrorMax", "value":"5" } + ] + }, + { + "enumname": "EP2PSend", + "values": [ + { "name":"k_EP2PSendUnreliable", "value":"0" }, + { "name":"k_EP2PSendUnreliableNoDelay", "value":"1" }, + { "name":"k_EP2PSendReliable", "value":"2" }, + { "name":"k_EP2PSendReliableWithBuffering", "value":"3" } + ] + }, + { + "enumname": "ESNetSocketState", + "values": [ + { "name":"k_ESNetSocketStateInvalid", "value":"0" }, + { "name":"k_ESNetSocketStateConnected", "value":"1" }, + { "name":"k_ESNetSocketStateInitiated", "value":"10" }, + { "name":"k_ESNetSocketStateLocalCandidatesFound", "value":"11" }, + { "name":"k_ESNetSocketStateReceivedRemoteCandidates", "value":"12" }, + { "name":"k_ESNetSocketStateChallengeHandshake", "value":"15" }, + { "name":"k_ESNetSocketStateDisconnecting", "value":"21" }, + { "name":"k_ESNetSocketStateLocalDisconnect", "value":"22" }, + { "name":"k_ESNetSocketStateTimeoutDuringConnect", "value":"23" }, + { "name":"k_ESNetSocketStateRemoteEndDisconnected", "value":"24" }, + { "name":"k_ESNetSocketStateConnectionBroken", "value":"25" } + ] + }, + { + "enumname": "ESNetSocketConnectionType", + "values": [ + { "name":"k_ESNetSocketConnectionTypeNotConnected", "value":"0" }, + { "name":"k_ESNetSocketConnectionTypeUDP", "value":"1" }, + { "name":"k_ESNetSocketConnectionTypeUDPRelay", "value":"2" } + ] + }, + { + "enumname": "EVRScreenshotType", + "values": [ + { "name":"k_EVRScreenshotType_None", "value":"0" }, + { "name":"k_EVRScreenshotType_Mono", "value":"1" }, + { "name":"k_EVRScreenshotType_Stereo", "value":"2" }, + { "name":"k_EVRScreenshotType_MonoCubemap", "value":"3" }, + { "name":"k_EVRScreenshotType_MonoPanorama", "value":"4" }, + { "name":"k_EVRScreenshotType_StereoPanorama", "value":"5" } + ] + }, + { + "enumname": "AudioPlayback_Status", + "values": [ + { "name":"AudioPlayback_Undefined", "value":"0" }, + { "name":"AudioPlayback_Playing", "value":"1" }, + { "name":"AudioPlayback_Paused", "value":"2" }, + { "name":"AudioPlayback_Idle", "value":"3" } + ] + }, + { + "enumname": "EHTTPMethod", + "values": [ + { "name":"k_EHTTPMethodInvalid", "value":"0" }, + { "name":"k_EHTTPMethodGET", "value":"1" }, + { "name":"k_EHTTPMethodHEAD", "value":"2" }, + { "name":"k_EHTTPMethodPOST", "value":"3" }, + { "name":"k_EHTTPMethodPUT", "value":"4" }, + { "name":"k_EHTTPMethodDELETE", "value":"5" }, + { "name":"k_EHTTPMethodOPTIONS", "value":"6" }, + { "name":"k_EHTTPMethodPATCH", "value":"7" } + ] + }, + { + "enumname": "EHTTPStatusCode", + "values": [ + { "name":"k_EHTTPStatusCodeInvalid", "value":"0" }, + { "name":"k_EHTTPStatusCode100Continue", "value":"100" }, + { "name":"k_EHTTPStatusCode101SwitchingProtocols", "value":"101" }, + { "name":"k_EHTTPStatusCode200OK", "value":"200" }, + { "name":"k_EHTTPStatusCode201Created", "value":"201" }, + { "name":"k_EHTTPStatusCode202Accepted", "value":"202" }, + { "name":"k_EHTTPStatusCode203NonAuthoritative", "value":"203" }, + { "name":"k_EHTTPStatusCode204NoContent", "value":"204" }, + { "name":"k_EHTTPStatusCode205ResetContent", "value":"205" }, + { "name":"k_EHTTPStatusCode206PartialContent", "value":"206" }, + { "name":"k_EHTTPStatusCode300MultipleChoices", "value":"300" }, + { "name":"k_EHTTPStatusCode301MovedPermanently", "value":"301" }, + { "name":"k_EHTTPStatusCode302Found", "value":"302" }, + { "name":"k_EHTTPStatusCode303SeeOther", "value":"303" }, + { "name":"k_EHTTPStatusCode304NotModified", "value":"304" }, + { "name":"k_EHTTPStatusCode305UseProxy", "value":"305" }, + { "name":"k_EHTTPStatusCode307TemporaryRedirect", "value":"307" }, + { "name":"k_EHTTPStatusCode308PermanentRedirect", "value":"308" }, + { "name":"k_EHTTPStatusCode400BadRequest", "value":"400" }, + { "name":"k_EHTTPStatusCode401Unauthorized", "value":"401" }, + { "name":"k_EHTTPStatusCode402PaymentRequired", "value":"402" }, + { "name":"k_EHTTPStatusCode403Forbidden", "value":"403" }, + { "name":"k_EHTTPStatusCode404NotFound", "value":"404" }, + { "name":"k_EHTTPStatusCode405MethodNotAllowed", "value":"405" }, + { "name":"k_EHTTPStatusCode406NotAcceptable", "value":"406" }, + { "name":"k_EHTTPStatusCode407ProxyAuthRequired", "value":"407" }, + { "name":"k_EHTTPStatusCode408RequestTimeout", "value":"408" }, + { "name":"k_EHTTPStatusCode409Conflict", "value":"409" }, + { "name":"k_EHTTPStatusCode410Gone", "value":"410" }, + { "name":"k_EHTTPStatusCode411LengthRequired", "value":"411" }, + { "name":"k_EHTTPStatusCode412PreconditionFailed", "value":"412" }, + { "name":"k_EHTTPStatusCode413RequestEntityTooLarge", "value":"413" }, + { "name":"k_EHTTPStatusCode414RequestURITooLong", "value":"414" }, + { "name":"k_EHTTPStatusCode415UnsupportedMediaType", "value":"415" }, + { "name":"k_EHTTPStatusCode416RequestedRangeNotSatisfiable", "value":"416" }, + { "name":"k_EHTTPStatusCode417ExpectationFailed", "value":"417" }, + { "name":"k_EHTTPStatusCode4xxUnknown", "value":"418" }, + { "name":"k_EHTTPStatusCode429TooManyRequests", "value":"429" }, + { "name":"k_EHTTPStatusCode444ConnectionClosed", "value":"444" }, + { "name":"k_EHTTPStatusCode500InternalServerError", "value":"500" }, + { "name":"k_EHTTPStatusCode501NotImplemented", "value":"501" }, + { "name":"k_EHTTPStatusCode502BadGateway", "value":"502" }, + { "name":"k_EHTTPStatusCode503ServiceUnavailable", "value":"503" }, + { "name":"k_EHTTPStatusCode504GatewayTimeout", "value":"504" }, + { "name":"k_EHTTPStatusCode505HTTPVersionNotSupported", "value":"505" }, + { "name":"k_EHTTPStatusCode5xxUnknown", "value":"599" } + ] + }, + { + "enumname": "EInputSourceMode", + "values": [ + { "name":"k_EInputSourceMode_None", "value":"0" }, + { "name":"k_EInputSourceMode_Dpad", "value":"1" }, + { "name":"k_EInputSourceMode_Buttons", "value":"2" }, + { "name":"k_EInputSourceMode_FourButtons", "value":"3" }, + { "name":"k_EInputSourceMode_AbsoluteMouse", "value":"4" }, + { "name":"k_EInputSourceMode_RelativeMouse", "value":"5" }, + { "name":"k_EInputSourceMode_JoystickMove", "value":"6" }, + { "name":"k_EInputSourceMode_JoystickMouse", "value":"7" }, + { "name":"k_EInputSourceMode_JoystickCamera", "value":"8" }, + { "name":"k_EInputSourceMode_ScrollWheel", "value":"9" }, + { "name":"k_EInputSourceMode_Trigger", "value":"10" }, + { "name":"k_EInputSourceMode_TouchMenu", "value":"11" }, + { "name":"k_EInputSourceMode_MouseJoystick", "value":"12" }, + { "name":"k_EInputSourceMode_MouseRegion", "value":"13" }, + { "name":"k_EInputSourceMode_RadialMenu", "value":"14" }, + { "name":"k_EInputSourceMode_SingleButton", "value":"15" }, + { "name":"k_EInputSourceMode_Switches", "value":"16" } + ] + }, + { + "enumname": "EInputActionOrigin", + "values": [ + { "name":"k_EInputActionOrigin_None", "value":"0" }, + { "name":"k_EInputActionOrigin_SteamController_A", "value":"1" }, + { "name":"k_EInputActionOrigin_SteamController_B", "value":"2" }, + { "name":"k_EInputActionOrigin_SteamController_X", "value":"3" }, + { "name":"k_EInputActionOrigin_SteamController_Y", "value":"4" }, + { "name":"k_EInputActionOrigin_SteamController_LeftBumper", "value":"5" }, + { "name":"k_EInputActionOrigin_SteamController_RightBumper", "value":"6" }, + { "name":"k_EInputActionOrigin_SteamController_LeftGrip", "value":"7" }, + { "name":"k_EInputActionOrigin_SteamController_RightGrip", "value":"8" }, + { "name":"k_EInputActionOrigin_SteamController_Start", "value":"9" }, + { "name":"k_EInputActionOrigin_SteamController_Back", "value":"10" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_Touch", "value":"11" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_Swipe", "value":"12" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_Click", "value":"13" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_DPadNorth", "value":"14" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_DPadSouth", "value":"15" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_DPadWest", "value":"16" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_DPadEast", "value":"17" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_Touch", "value":"18" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_Swipe", "value":"19" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_Click", "value":"20" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_DPadNorth", "value":"21" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_DPadSouth", "value":"22" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_DPadWest", "value":"23" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_DPadEast", "value":"24" }, + { "name":"k_EInputActionOrigin_SteamController_LeftTrigger_Pull", "value":"25" }, + { "name":"k_EInputActionOrigin_SteamController_LeftTrigger_Click", "value":"26" }, + { "name":"k_EInputActionOrigin_SteamController_RightTrigger_Pull", "value":"27" }, + { "name":"k_EInputActionOrigin_SteamController_RightTrigger_Click", "value":"28" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_Move", "value":"29" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_Click", "value":"30" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_DPadNorth", "value":"31" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_DPadSouth", "value":"32" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_DPadWest", "value":"33" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_DPadEast", "value":"34" }, + { "name":"k_EInputActionOrigin_SteamController_Gyro_Move", "value":"35" }, + { "name":"k_EInputActionOrigin_SteamController_Gyro_Pitch", "value":"36" }, + { "name":"k_EInputActionOrigin_SteamController_Gyro_Yaw", "value":"37" }, + { "name":"k_EInputActionOrigin_SteamController_Gyro_Roll", "value":"38" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved0", "value":"39" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved1", "value":"40" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved2", "value":"41" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved3", "value":"42" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved4", "value":"43" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved5", "value":"44" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved6", "value":"45" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved7", "value":"46" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved8", "value":"47" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved9", "value":"48" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved10", "value":"49" }, + { "name":"k_EInputActionOrigin_PS4_X", "value":"50" }, + { "name":"k_EInputActionOrigin_PS4_Circle", "value":"51" }, + { "name":"k_EInputActionOrigin_PS4_Triangle", "value":"52" }, + { "name":"k_EInputActionOrigin_PS4_Square", "value":"53" }, + { "name":"k_EInputActionOrigin_PS4_LeftBumper", "value":"54" }, + { "name":"k_EInputActionOrigin_PS4_RightBumper", "value":"55" }, + { "name":"k_EInputActionOrigin_PS4_Options", "value":"56" }, + { "name":"k_EInputActionOrigin_PS4_Share", "value":"57" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_Touch", "value":"58" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_Swipe", "value":"59" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_Click", "value":"60" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_DPadNorth", "value":"61" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_DPadSouth", "value":"62" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_DPadWest", "value":"63" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_DPadEast", "value":"64" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_Touch", "value":"65" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_Swipe", "value":"66" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_Click", "value":"67" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_DPadNorth", "value":"68" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_DPadSouth", "value":"69" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_DPadWest", "value":"70" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_DPadEast", "value":"71" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_Touch", "value":"72" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_Swipe", "value":"73" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_Click", "value":"74" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_DPadNorth", "value":"75" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_DPadSouth", "value":"76" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_DPadWest", "value":"77" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_DPadEast", "value":"78" }, + { "name":"k_EInputActionOrigin_PS4_LeftTrigger_Pull", "value":"79" }, + { "name":"k_EInputActionOrigin_PS4_LeftTrigger_Click", "value":"80" }, + { "name":"k_EInputActionOrigin_PS4_RightTrigger_Pull", "value":"81" }, + { "name":"k_EInputActionOrigin_PS4_RightTrigger_Click", "value":"82" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_Move", "value":"83" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_Click", "value":"84" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_DPadNorth", "value":"85" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_DPadSouth", "value":"86" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_DPadWest", "value":"87" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_DPadEast", "value":"88" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_Move", "value":"89" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_Click", "value":"90" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_DPadNorth", "value":"91" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_DPadSouth", "value":"92" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_DPadWest", "value":"93" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_DPadEast", "value":"94" }, + { "name":"k_EInputActionOrigin_PS4_DPad_North", "value":"95" }, + { "name":"k_EInputActionOrigin_PS4_DPad_South", "value":"96" }, + { "name":"k_EInputActionOrigin_PS4_DPad_West", "value":"97" }, + { "name":"k_EInputActionOrigin_PS4_DPad_East", "value":"98" }, + { "name":"k_EInputActionOrigin_PS4_Gyro_Move", "value":"99" }, + { "name":"k_EInputActionOrigin_PS4_Gyro_Pitch", "value":"100" }, + { "name":"k_EInputActionOrigin_PS4_Gyro_Yaw", "value":"101" }, + { "name":"k_EInputActionOrigin_PS4_Gyro_Roll", "value":"102" }, + { "name":"k_EInputActionOrigin_PS4_DPad_Move", "value":"103" }, + { "name":"k_EInputActionOrigin_PS4_Reserved1", "value":"104" }, + { "name":"k_EInputActionOrigin_PS4_Reserved2", "value":"105" }, + { "name":"k_EInputActionOrigin_PS4_Reserved3", "value":"106" }, + { "name":"k_EInputActionOrigin_PS4_Reserved4", "value":"107" }, + { "name":"k_EInputActionOrigin_PS4_Reserved5", "value":"108" }, + { "name":"k_EInputActionOrigin_PS4_Reserved6", "value":"109" }, + { "name":"k_EInputActionOrigin_PS4_Reserved7", "value":"110" }, + { "name":"k_EInputActionOrigin_PS4_Reserved8", "value":"111" }, + { "name":"k_EInputActionOrigin_PS4_Reserved9", "value":"112" }, + { "name":"k_EInputActionOrigin_PS4_Reserved10", "value":"113" }, + { "name":"k_EInputActionOrigin_XBoxOne_A", "value":"114" }, + { "name":"k_EInputActionOrigin_XBoxOne_B", "value":"115" }, + { "name":"k_EInputActionOrigin_XBoxOne_X", "value":"116" }, + { "name":"k_EInputActionOrigin_XBoxOne_Y", "value":"117" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftBumper", "value":"118" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightBumper", "value":"119" }, + { "name":"k_EInputActionOrigin_XBoxOne_Menu", "value":"120" }, + { "name":"k_EInputActionOrigin_XBoxOne_View", "value":"121" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftTrigger_Pull", "value":"122" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftTrigger_Click", "value":"123" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightTrigger_Pull", "value":"124" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightTrigger_Click", "value":"125" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_Move", "value":"126" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_Click", "value":"127" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_DPadNorth", "value":"128" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_DPadSouth", "value":"129" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_DPadWest", "value":"130" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_DPadEast", "value":"131" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_Move", "value":"132" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_Click", "value":"133" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_DPadNorth", "value":"134" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_DPadSouth", "value":"135" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_DPadWest", "value":"136" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_DPadEast", "value":"137" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_North", "value":"138" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_South", "value":"139" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_West", "value":"140" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_East", "value":"141" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_Move", "value":"142" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftGrip_Lower", "value":"143" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftGrip_Upper", "value":"144" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightGrip_Lower", "value":"145" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightGrip_Upper", "value":"146" }, + { "name":"k_EInputActionOrigin_XBoxOne_Share", "value":"147" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved6", "value":"148" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved7", "value":"149" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved8", "value":"150" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved9", "value":"151" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved10", "value":"152" }, + { "name":"k_EInputActionOrigin_XBox360_A", "value":"153" }, + { "name":"k_EInputActionOrigin_XBox360_B", "value":"154" }, + { "name":"k_EInputActionOrigin_XBox360_X", "value":"155" }, + { "name":"k_EInputActionOrigin_XBox360_Y", "value":"156" }, + { "name":"k_EInputActionOrigin_XBox360_LeftBumper", "value":"157" }, + { "name":"k_EInputActionOrigin_XBox360_RightBumper", "value":"158" }, + { "name":"k_EInputActionOrigin_XBox360_Start", "value":"159" }, + { "name":"k_EInputActionOrigin_XBox360_Back", "value":"160" }, + { "name":"k_EInputActionOrigin_XBox360_LeftTrigger_Pull", "value":"161" }, + { "name":"k_EInputActionOrigin_XBox360_LeftTrigger_Click", "value":"162" }, + { "name":"k_EInputActionOrigin_XBox360_RightTrigger_Pull", "value":"163" }, + { "name":"k_EInputActionOrigin_XBox360_RightTrigger_Click", "value":"164" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_Move", "value":"165" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_Click", "value":"166" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_DPadNorth", "value":"167" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_DPadSouth", "value":"168" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_DPadWest", "value":"169" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_DPadEast", "value":"170" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_Move", "value":"171" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_Click", "value":"172" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_DPadNorth", "value":"173" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_DPadSouth", "value":"174" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_DPadWest", "value":"175" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_DPadEast", "value":"176" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_North", "value":"177" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_South", "value":"178" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_West", "value":"179" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_East", "value":"180" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_Move", "value":"181" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved1", "value":"182" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved2", "value":"183" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved3", "value":"184" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved4", "value":"185" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved5", "value":"186" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved6", "value":"187" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved7", "value":"188" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved8", "value":"189" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved9", "value":"190" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved10", "value":"191" }, + { "name":"k_EInputActionOrigin_Switch_A", "value":"192" }, + { "name":"k_EInputActionOrigin_Switch_B", "value":"193" }, + { "name":"k_EInputActionOrigin_Switch_X", "value":"194" }, + { "name":"k_EInputActionOrigin_Switch_Y", "value":"195" }, + { "name":"k_EInputActionOrigin_Switch_LeftBumper", "value":"196" }, + { "name":"k_EInputActionOrigin_Switch_RightBumper", "value":"197" }, + { "name":"k_EInputActionOrigin_Switch_Plus", "value":"198" }, + { "name":"k_EInputActionOrigin_Switch_Minus", "value":"199" }, + { "name":"k_EInputActionOrigin_Switch_Capture", "value":"200" }, + { "name":"k_EInputActionOrigin_Switch_LeftTrigger_Pull", "value":"201" }, + { "name":"k_EInputActionOrigin_Switch_LeftTrigger_Click", "value":"202" }, + { "name":"k_EInputActionOrigin_Switch_RightTrigger_Pull", "value":"203" }, + { "name":"k_EInputActionOrigin_Switch_RightTrigger_Click", "value":"204" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_Move", "value":"205" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_Click", "value":"206" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_DPadNorth", "value":"207" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_DPadSouth", "value":"208" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_DPadWest", "value":"209" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_DPadEast", "value":"210" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_Move", "value":"211" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_Click", "value":"212" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_DPadNorth", "value":"213" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_DPadSouth", "value":"214" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_DPadWest", "value":"215" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_DPadEast", "value":"216" }, + { "name":"k_EInputActionOrigin_Switch_DPad_North", "value":"217" }, + { "name":"k_EInputActionOrigin_Switch_DPad_South", "value":"218" }, + { "name":"k_EInputActionOrigin_Switch_DPad_West", "value":"219" }, + { "name":"k_EInputActionOrigin_Switch_DPad_East", "value":"220" }, + { "name":"k_EInputActionOrigin_Switch_ProGyro_Move", "value":"221" }, + { "name":"k_EInputActionOrigin_Switch_ProGyro_Pitch", "value":"222" }, + { "name":"k_EInputActionOrigin_Switch_ProGyro_Yaw", "value":"223" }, + { "name":"k_EInputActionOrigin_Switch_ProGyro_Roll", "value":"224" }, + { "name":"k_EInputActionOrigin_Switch_DPad_Move", "value":"225" }, + { "name":"k_EInputActionOrigin_Switch_Reserved1", "value":"226" }, + { "name":"k_EInputActionOrigin_Switch_Reserved2", "value":"227" }, + { "name":"k_EInputActionOrigin_Switch_Reserved3", "value":"228" }, + { "name":"k_EInputActionOrigin_Switch_Reserved4", "value":"229" }, + { "name":"k_EInputActionOrigin_Switch_Reserved5", "value":"230" }, + { "name":"k_EInputActionOrigin_Switch_Reserved6", "value":"231" }, + { "name":"k_EInputActionOrigin_Switch_Reserved7", "value":"232" }, + { "name":"k_EInputActionOrigin_Switch_Reserved8", "value":"233" }, + { "name":"k_EInputActionOrigin_Switch_Reserved9", "value":"234" }, + { "name":"k_EInputActionOrigin_Switch_Reserved10", "value":"235" }, + { "name":"k_EInputActionOrigin_Switch_RightGyro_Move", "value":"236" }, + { "name":"k_EInputActionOrigin_Switch_RightGyro_Pitch", "value":"237" }, + { "name":"k_EInputActionOrigin_Switch_RightGyro_Yaw", "value":"238" }, + { "name":"k_EInputActionOrigin_Switch_RightGyro_Roll", "value":"239" }, + { "name":"k_EInputActionOrigin_Switch_LeftGyro_Move", "value":"240" }, + { "name":"k_EInputActionOrigin_Switch_LeftGyro_Pitch", "value":"241" }, + { "name":"k_EInputActionOrigin_Switch_LeftGyro_Yaw", "value":"242" }, + { "name":"k_EInputActionOrigin_Switch_LeftGyro_Roll", "value":"243" }, + { "name":"k_EInputActionOrigin_Switch_LeftGrip_Lower", "value":"244" }, + { "name":"k_EInputActionOrigin_Switch_LeftGrip_Upper", "value":"245" }, + { "name":"k_EInputActionOrigin_Switch_RightGrip_Lower", "value":"246" }, + { "name":"k_EInputActionOrigin_Switch_RightGrip_Upper", "value":"247" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_N", "value":"248" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_E", "value":"249" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_S", "value":"250" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_W", "value":"251" }, + { "name":"k_EInputActionOrigin_Switch_Reserved15", "value":"252" }, + { "name":"k_EInputActionOrigin_Switch_Reserved16", "value":"253" }, + { "name":"k_EInputActionOrigin_Switch_Reserved17", "value":"254" }, + { "name":"k_EInputActionOrigin_Switch_Reserved18", "value":"255" }, + { "name":"k_EInputActionOrigin_Switch_Reserved19", "value":"256" }, + { "name":"k_EInputActionOrigin_Switch_Reserved20", "value":"257" }, + { "name":"k_EInputActionOrigin_PS5_X", "value":"258" }, + { "name":"k_EInputActionOrigin_PS5_Circle", "value":"259" }, + { "name":"k_EInputActionOrigin_PS5_Triangle", "value":"260" }, + { "name":"k_EInputActionOrigin_PS5_Square", "value":"261" }, + { "name":"k_EInputActionOrigin_PS5_LeftBumper", "value":"262" }, + { "name":"k_EInputActionOrigin_PS5_RightBumper", "value":"263" }, + { "name":"k_EInputActionOrigin_PS5_Option", "value":"264" }, + { "name":"k_EInputActionOrigin_PS5_Create", "value":"265" }, + { "name":"k_EInputActionOrigin_PS5_Mute", "value":"266" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_Touch", "value":"267" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_Swipe", "value":"268" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_Click", "value":"269" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_DPadNorth", "value":"270" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_DPadSouth", "value":"271" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_DPadWest", "value":"272" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_DPadEast", "value":"273" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_Touch", "value":"274" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_Swipe", "value":"275" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_Click", "value":"276" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_DPadNorth", "value":"277" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_DPadSouth", "value":"278" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_DPadWest", "value":"279" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_DPadEast", "value":"280" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_Touch", "value":"281" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_Swipe", "value":"282" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_Click", "value":"283" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_DPadNorth", "value":"284" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_DPadSouth", "value":"285" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_DPadWest", "value":"286" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_DPadEast", "value":"287" }, + { "name":"k_EInputActionOrigin_PS5_LeftTrigger_Pull", "value":"288" }, + { "name":"k_EInputActionOrigin_PS5_LeftTrigger_Click", "value":"289" }, + { "name":"k_EInputActionOrigin_PS5_RightTrigger_Pull", "value":"290" }, + { "name":"k_EInputActionOrigin_PS5_RightTrigger_Click", "value":"291" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_Move", "value":"292" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_Click", "value":"293" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_DPadNorth", "value":"294" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_DPadSouth", "value":"295" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_DPadWest", "value":"296" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_DPadEast", "value":"297" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_Move", "value":"298" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_Click", "value":"299" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_DPadNorth", "value":"300" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_DPadSouth", "value":"301" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_DPadWest", "value":"302" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_DPadEast", "value":"303" }, + { "name":"k_EInputActionOrigin_PS5_DPad_North", "value":"304" }, + { "name":"k_EInputActionOrigin_PS5_DPad_South", "value":"305" }, + { "name":"k_EInputActionOrigin_PS5_DPad_West", "value":"306" }, + { "name":"k_EInputActionOrigin_PS5_DPad_East", "value":"307" }, + { "name":"k_EInputActionOrigin_PS5_Gyro_Move", "value":"308" }, + { "name":"k_EInputActionOrigin_PS5_Gyro_Pitch", "value":"309" }, + { "name":"k_EInputActionOrigin_PS5_Gyro_Yaw", "value":"310" }, + { "name":"k_EInputActionOrigin_PS5_Gyro_Roll", "value":"311" }, + { "name":"k_EInputActionOrigin_PS5_DPad_Move", "value":"312" }, + { "name":"k_EInputActionOrigin_PS5_LeftGrip", "value":"313" }, + { "name":"k_EInputActionOrigin_PS5_RightGrip", "value":"314" }, + { "name":"k_EInputActionOrigin_PS5_LeftFn", "value":"315" }, + { "name":"k_EInputActionOrigin_PS5_RightFn", "value":"316" }, + { "name":"k_EInputActionOrigin_PS5_Reserved5", "value":"317" }, + { "name":"k_EInputActionOrigin_PS5_Reserved6", "value":"318" }, + { "name":"k_EInputActionOrigin_PS5_Reserved7", "value":"319" }, + { "name":"k_EInputActionOrigin_PS5_Reserved8", "value":"320" }, + { "name":"k_EInputActionOrigin_PS5_Reserved9", "value":"321" }, + { "name":"k_EInputActionOrigin_PS5_Reserved10", "value":"322" }, + { "name":"k_EInputActionOrigin_PS5_Reserved11", "value":"323" }, + { "name":"k_EInputActionOrigin_PS5_Reserved12", "value":"324" }, + { "name":"k_EInputActionOrigin_PS5_Reserved13", "value":"325" }, + { "name":"k_EInputActionOrigin_PS5_Reserved14", "value":"326" }, + { "name":"k_EInputActionOrigin_PS5_Reserved15", "value":"327" }, + { "name":"k_EInputActionOrigin_PS5_Reserved16", "value":"328" }, + { "name":"k_EInputActionOrigin_PS5_Reserved17", "value":"329" }, + { "name":"k_EInputActionOrigin_PS5_Reserved18", "value":"330" }, + { "name":"k_EInputActionOrigin_PS5_Reserved19", "value":"331" }, + { "name":"k_EInputActionOrigin_PS5_Reserved20", "value":"332" }, + { "name":"k_EInputActionOrigin_SteamDeck_A", "value":"333" }, + { "name":"k_EInputActionOrigin_SteamDeck_B", "value":"334" }, + { "name":"k_EInputActionOrigin_SteamDeck_X", "value":"335" }, + { "name":"k_EInputActionOrigin_SteamDeck_Y", "value":"336" }, + { "name":"k_EInputActionOrigin_SteamDeck_L1", "value":"337" }, + { "name":"k_EInputActionOrigin_SteamDeck_R1", "value":"338" }, + { "name":"k_EInputActionOrigin_SteamDeck_Menu", "value":"339" }, + { "name":"k_EInputActionOrigin_SteamDeck_View", "value":"340" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_Touch", "value":"341" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_Swipe", "value":"342" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_Click", "value":"343" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_DPadNorth", "value":"344" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_DPadSouth", "value":"345" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_DPadWest", "value":"346" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_DPadEast", "value":"347" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_Touch", "value":"348" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_Swipe", "value":"349" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_Click", "value":"350" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_DPadNorth", "value":"351" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_DPadSouth", "value":"352" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_DPadWest", "value":"353" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_DPadEast", "value":"354" }, + { "name":"k_EInputActionOrigin_SteamDeck_L2_SoftPull", "value":"355" }, + { "name":"k_EInputActionOrigin_SteamDeck_L2", "value":"356" }, + { "name":"k_EInputActionOrigin_SteamDeck_R2_SoftPull", "value":"357" }, + { "name":"k_EInputActionOrigin_SteamDeck_R2", "value":"358" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_Move", "value":"359" }, + { "name":"k_EInputActionOrigin_SteamDeck_L3", "value":"360" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_DPadNorth", "value":"361" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_DPadSouth", "value":"362" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_DPadWest", "value":"363" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_DPadEast", "value":"364" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_Touch", "value":"365" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_Move", "value":"366" }, + { "name":"k_EInputActionOrigin_SteamDeck_R3", "value":"367" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_DPadNorth", "value":"368" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_DPadSouth", "value":"369" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_DPadWest", "value":"370" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_DPadEast", "value":"371" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_Touch", "value":"372" }, + { "name":"k_EInputActionOrigin_SteamDeck_L4", "value":"373" }, + { "name":"k_EInputActionOrigin_SteamDeck_R4", "value":"374" }, + { "name":"k_EInputActionOrigin_SteamDeck_L5", "value":"375" }, + { "name":"k_EInputActionOrigin_SteamDeck_R5", "value":"376" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_Move", "value":"377" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_North", "value":"378" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_South", "value":"379" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_West", "value":"380" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_East", "value":"381" }, + { "name":"k_EInputActionOrigin_SteamDeck_Gyro_Move", "value":"382" }, + { "name":"k_EInputActionOrigin_SteamDeck_Gyro_Pitch", "value":"383" }, + { "name":"k_EInputActionOrigin_SteamDeck_Gyro_Yaw", "value":"384" }, + { "name":"k_EInputActionOrigin_SteamDeck_Gyro_Roll", "value":"385" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved1", "value":"386" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved2", "value":"387" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved3", "value":"388" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved4", "value":"389" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved5", "value":"390" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved6", "value":"391" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved7", "value":"392" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved8", "value":"393" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved9", "value":"394" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved10", "value":"395" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved11", "value":"396" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved12", "value":"397" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved13", "value":"398" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved14", "value":"399" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved15", "value":"400" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved16", "value":"401" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved17", "value":"402" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved18", "value":"403" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved19", "value":"404" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved20", "value":"405" }, + { "name":"k_EInputActionOrigin_Count", "value":"406" }, + { "name":"k_EInputActionOrigin_MaximumPossibleValue", "value":"32767" } + ] + }, + { + "enumname": "EXboxOrigin", + "values": [ + { "name":"k_EXboxOrigin_A", "value":"0" }, + { "name":"k_EXboxOrigin_B", "value":"1" }, + { "name":"k_EXboxOrigin_X", "value":"2" }, + { "name":"k_EXboxOrigin_Y", "value":"3" }, + { "name":"k_EXboxOrigin_LeftBumper", "value":"4" }, + { "name":"k_EXboxOrigin_RightBumper", "value":"5" }, + { "name":"k_EXboxOrigin_Menu", "value":"6" }, + { "name":"k_EXboxOrigin_View", "value":"7" }, + { "name":"k_EXboxOrigin_LeftTrigger_Pull", "value":"8" }, + { "name":"k_EXboxOrigin_LeftTrigger_Click", "value":"9" }, + { "name":"k_EXboxOrigin_RightTrigger_Pull", "value":"10" }, + { "name":"k_EXboxOrigin_RightTrigger_Click", "value":"11" }, + { "name":"k_EXboxOrigin_LeftStick_Move", "value":"12" }, + { "name":"k_EXboxOrigin_LeftStick_Click", "value":"13" }, + { "name":"k_EXboxOrigin_LeftStick_DPadNorth", "value":"14" }, + { "name":"k_EXboxOrigin_LeftStick_DPadSouth", "value":"15" }, + { "name":"k_EXboxOrigin_LeftStick_DPadWest", "value":"16" }, + { "name":"k_EXboxOrigin_LeftStick_DPadEast", "value":"17" }, + { "name":"k_EXboxOrigin_RightStick_Move", "value":"18" }, + { "name":"k_EXboxOrigin_RightStick_Click", "value":"19" }, + { "name":"k_EXboxOrigin_RightStick_DPadNorth", "value":"20" }, + { "name":"k_EXboxOrigin_RightStick_DPadSouth", "value":"21" }, + { "name":"k_EXboxOrigin_RightStick_DPadWest", "value":"22" }, + { "name":"k_EXboxOrigin_RightStick_DPadEast", "value":"23" }, + { "name":"k_EXboxOrigin_DPad_North", "value":"24" }, + { "name":"k_EXboxOrigin_DPad_South", "value":"25" }, + { "name":"k_EXboxOrigin_DPad_West", "value":"26" }, + { "name":"k_EXboxOrigin_DPad_East", "value":"27" }, + { "name":"k_EXboxOrigin_Count", "value":"28" } + ] + }, + { + "enumname": "ESteamControllerPad", + "values": [ + { "name":"k_ESteamControllerPad_Left", "value":"0" }, + { "name":"k_ESteamControllerPad_Right", "value":"1" } + ] + }, + { + "enumname": "EControllerHapticLocation", + "values": [ + { "name":"k_EControllerHapticLocation_Left", "value":"1" }, + { "name":"k_EControllerHapticLocation_Right", "value":"2" }, + { "name":"k_EControllerHapticLocation_Both", "value":"3" } + ] + }, + { + "enumname": "EControllerHapticType", + "values": [ + { "name":"k_EControllerHapticType_Off", "value":"0" }, + { "name":"k_EControllerHapticType_Tick", "value":"1" }, + { "name":"k_EControllerHapticType_Click", "value":"2" } + ] + }, + { + "enumname": "ESteamInputType", + "values": [ + { "name":"k_ESteamInputType_Unknown", "value":"0" }, + { "name":"k_ESteamInputType_SteamController", "value":"1" }, + { "name":"k_ESteamInputType_XBox360Controller", "value":"2" }, + { "name":"k_ESteamInputType_XBoxOneController", "value":"3" }, + { "name":"k_ESteamInputType_GenericGamepad", "value":"4" }, + { "name":"k_ESteamInputType_PS4Controller", "value":"5" }, + { "name":"k_ESteamInputType_AppleMFiController", "value":"6" }, + { "name":"k_ESteamInputType_AndroidController", "value":"7" }, + { "name":"k_ESteamInputType_SwitchJoyConPair", "value":"8" }, + { "name":"k_ESteamInputType_SwitchJoyConSingle", "value":"9" }, + { "name":"k_ESteamInputType_SwitchProController", "value":"10" }, + { "name":"k_ESteamInputType_MobileTouch", "value":"11" }, + { "name":"k_ESteamInputType_PS3Controller", "value":"12" }, + { "name":"k_ESteamInputType_PS5Controller", "value":"13" }, + { "name":"k_ESteamInputType_SteamDeckController", "value":"14" }, + { "name":"k_ESteamInputType_Count", "value":"15" }, + { "name":"k_ESteamInputType_MaximumPossibleValue", "value":"255" } + ] + }, + { + "enumname": "ESteamInputConfigurationEnableType", + "values": [ + { "name":"k_ESteamInputConfigurationEnableType_None", "value":"0" }, + { "name":"k_ESteamInputConfigurationEnableType_Playstation", "value":"1" }, + { "name":"k_ESteamInputConfigurationEnableType_Xbox", "value":"2" }, + { "name":"k_ESteamInputConfigurationEnableType_Generic", "value":"4" }, + { "name":"k_ESteamInputConfigurationEnableType_Switch", "value":"8" } + ] + }, + { + "enumname": "ESteamInputLEDFlag", + "values": [ + { "name":"k_ESteamInputLEDFlag_SetColor", "value":"0" }, + { "name":"k_ESteamInputLEDFlag_RestoreUserDefault", "value":"1" } + ] + }, + { + "enumname": "ESteamInputGlyphSize", + "values": [ + { "name":"k_ESteamInputGlyphSize_Small", "value":"0" }, + { "name":"k_ESteamInputGlyphSize_Medium", "value":"1" }, + { "name":"k_ESteamInputGlyphSize_Large", "value":"2" }, + { "name":"k_ESteamInputGlyphSize_Count", "value":"3" } + ] + }, + { + "enumname": "ESteamInputGlyphStyle", + "values": [ + { "name":"ESteamInputGlyphStyle_Knockout", "value":"0" }, + { "name":"ESteamInputGlyphStyle_Light", "value":"1" }, + { "name":"ESteamInputGlyphStyle_Dark", "value":"2" }, + { "name":"ESteamInputGlyphStyle_NeutralColorABXY", "value":"16" }, + { "name":"ESteamInputGlyphStyle_SolidABXY", "value":"32" } + ] + }, + { + "enumname": "ESteamInputActionEventType", + "values": [ + { "name":"ESteamInputActionEventType_DigitalAction", "value":"0" }, + { "name":"ESteamInputActionEventType_AnalogAction", "value":"1" } + ] + }, + { + "enumname": "EControllerActionOrigin", + "values": [ + { "name":"k_EControllerActionOrigin_None", "value":"0" }, + { "name":"k_EControllerActionOrigin_A", "value":"1" }, + { "name":"k_EControllerActionOrigin_B", "value":"2" }, + { "name":"k_EControllerActionOrigin_X", "value":"3" }, + { "name":"k_EControllerActionOrigin_Y", "value":"4" }, + { "name":"k_EControllerActionOrigin_LeftBumper", "value":"5" }, + { "name":"k_EControllerActionOrigin_RightBumper", "value":"6" }, + { "name":"k_EControllerActionOrigin_LeftGrip", "value":"7" }, + { "name":"k_EControllerActionOrigin_RightGrip", "value":"8" }, + { "name":"k_EControllerActionOrigin_Start", "value":"9" }, + { "name":"k_EControllerActionOrigin_Back", "value":"10" }, + { "name":"k_EControllerActionOrigin_LeftPad_Touch", "value":"11" }, + { "name":"k_EControllerActionOrigin_LeftPad_Swipe", "value":"12" }, + { "name":"k_EControllerActionOrigin_LeftPad_Click", "value":"13" }, + { "name":"k_EControllerActionOrigin_LeftPad_DPadNorth", "value":"14" }, + { "name":"k_EControllerActionOrigin_LeftPad_DPadSouth", "value":"15" }, + { "name":"k_EControllerActionOrigin_LeftPad_DPadWest", "value":"16" }, + { "name":"k_EControllerActionOrigin_LeftPad_DPadEast", "value":"17" }, + { "name":"k_EControllerActionOrigin_RightPad_Touch", "value":"18" }, + { "name":"k_EControllerActionOrigin_RightPad_Swipe", "value":"19" }, + { "name":"k_EControllerActionOrigin_RightPad_Click", "value":"20" }, + { "name":"k_EControllerActionOrigin_RightPad_DPadNorth", "value":"21" }, + { "name":"k_EControllerActionOrigin_RightPad_DPadSouth", "value":"22" }, + { "name":"k_EControllerActionOrigin_RightPad_DPadWest", "value":"23" }, + { "name":"k_EControllerActionOrigin_RightPad_DPadEast", "value":"24" }, + { "name":"k_EControllerActionOrigin_LeftTrigger_Pull", "value":"25" }, + { "name":"k_EControllerActionOrigin_LeftTrigger_Click", "value":"26" }, + { "name":"k_EControllerActionOrigin_RightTrigger_Pull", "value":"27" }, + { "name":"k_EControllerActionOrigin_RightTrigger_Click", "value":"28" }, + { "name":"k_EControllerActionOrigin_LeftStick_Move", "value":"29" }, + { "name":"k_EControllerActionOrigin_LeftStick_Click", "value":"30" }, + { "name":"k_EControllerActionOrigin_LeftStick_DPadNorth", "value":"31" }, + { "name":"k_EControllerActionOrigin_LeftStick_DPadSouth", "value":"32" }, + { "name":"k_EControllerActionOrigin_LeftStick_DPadWest", "value":"33" }, + { "name":"k_EControllerActionOrigin_LeftStick_DPadEast", "value":"34" }, + { "name":"k_EControllerActionOrigin_Gyro_Move", "value":"35" }, + { "name":"k_EControllerActionOrigin_Gyro_Pitch", "value":"36" }, + { "name":"k_EControllerActionOrigin_Gyro_Yaw", "value":"37" }, + { "name":"k_EControllerActionOrigin_Gyro_Roll", "value":"38" }, + { "name":"k_EControllerActionOrigin_PS4_X", "value":"39" }, + { "name":"k_EControllerActionOrigin_PS4_Circle", "value":"40" }, + { "name":"k_EControllerActionOrigin_PS4_Triangle", "value":"41" }, + { "name":"k_EControllerActionOrigin_PS4_Square", "value":"42" }, + { "name":"k_EControllerActionOrigin_PS4_LeftBumper", "value":"43" }, + { "name":"k_EControllerActionOrigin_PS4_RightBumper", "value":"44" }, + { "name":"k_EControllerActionOrigin_PS4_Options", "value":"45" }, + { "name":"k_EControllerActionOrigin_PS4_Share", "value":"46" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_Touch", "value":"47" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_Swipe", "value":"48" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_Click", "value":"49" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_DPadNorth", "value":"50" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_DPadSouth", "value":"51" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_DPadWest", "value":"52" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_DPadEast", "value":"53" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_Touch", "value":"54" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_Swipe", "value":"55" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_Click", "value":"56" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_DPadNorth", "value":"57" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_DPadSouth", "value":"58" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_DPadWest", "value":"59" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_DPadEast", "value":"60" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_Touch", "value":"61" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_Swipe", "value":"62" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_Click", "value":"63" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_DPadNorth", "value":"64" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_DPadSouth", "value":"65" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_DPadWest", "value":"66" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_DPadEast", "value":"67" }, + { "name":"k_EControllerActionOrigin_PS4_LeftTrigger_Pull", "value":"68" }, + { "name":"k_EControllerActionOrigin_PS4_LeftTrigger_Click", "value":"69" }, + { "name":"k_EControllerActionOrigin_PS4_RightTrigger_Pull", "value":"70" }, + { "name":"k_EControllerActionOrigin_PS4_RightTrigger_Click", "value":"71" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_Move", "value":"72" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_Click", "value":"73" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_DPadNorth", "value":"74" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_DPadSouth", "value":"75" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_DPadWest", "value":"76" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_DPadEast", "value":"77" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_Move", "value":"78" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_Click", "value":"79" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_DPadNorth", "value":"80" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_DPadSouth", "value":"81" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_DPadWest", "value":"82" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_DPadEast", "value":"83" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_North", "value":"84" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_South", "value":"85" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_West", "value":"86" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_East", "value":"87" }, + { "name":"k_EControllerActionOrigin_PS4_Gyro_Move", "value":"88" }, + { "name":"k_EControllerActionOrigin_PS4_Gyro_Pitch", "value":"89" }, + { "name":"k_EControllerActionOrigin_PS4_Gyro_Yaw", "value":"90" }, + { "name":"k_EControllerActionOrigin_PS4_Gyro_Roll", "value":"91" }, + { "name":"k_EControllerActionOrigin_XBoxOne_A", "value":"92" }, + { "name":"k_EControllerActionOrigin_XBoxOne_B", "value":"93" }, + { "name":"k_EControllerActionOrigin_XBoxOne_X", "value":"94" }, + { "name":"k_EControllerActionOrigin_XBoxOne_Y", "value":"95" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftBumper", "value":"96" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightBumper", "value":"97" }, + { "name":"k_EControllerActionOrigin_XBoxOne_Menu", "value":"98" }, + { "name":"k_EControllerActionOrigin_XBoxOne_View", "value":"99" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull", "value":"100" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click", "value":"101" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull", "value":"102" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightTrigger_Click", "value":"103" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_Move", "value":"104" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_Click", "value":"105" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth", "value":"106" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth", "value":"107" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest", "value":"108" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast", "value":"109" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_Move", "value":"110" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_Click", "value":"111" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth", "value":"112" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth", "value":"113" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest", "value":"114" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast", "value":"115" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_North", "value":"116" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_South", "value":"117" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_West", "value":"118" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_East", "value":"119" }, + { "name":"k_EControllerActionOrigin_XBox360_A", "value":"120" }, + { "name":"k_EControllerActionOrigin_XBox360_B", "value":"121" }, + { "name":"k_EControllerActionOrigin_XBox360_X", "value":"122" }, + { "name":"k_EControllerActionOrigin_XBox360_Y", "value":"123" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftBumper", "value":"124" }, + { "name":"k_EControllerActionOrigin_XBox360_RightBumper", "value":"125" }, + { "name":"k_EControllerActionOrigin_XBox360_Start", "value":"126" }, + { "name":"k_EControllerActionOrigin_XBox360_Back", "value":"127" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftTrigger_Pull", "value":"128" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftTrigger_Click", "value":"129" }, + { "name":"k_EControllerActionOrigin_XBox360_RightTrigger_Pull", "value":"130" }, + { "name":"k_EControllerActionOrigin_XBox360_RightTrigger_Click", "value":"131" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_Move", "value":"132" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_Click", "value":"133" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth", "value":"134" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth", "value":"135" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_DPadWest", "value":"136" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_DPadEast", "value":"137" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_Move", "value":"138" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_Click", "value":"139" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_DPadNorth", "value":"140" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_DPadSouth", "value":"141" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_DPadWest", "value":"142" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_DPadEast", "value":"143" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_North", "value":"144" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_South", "value":"145" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_West", "value":"146" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_East", "value":"147" }, + { "name":"k_EControllerActionOrigin_SteamV2_A", "value":"148" }, + { "name":"k_EControllerActionOrigin_SteamV2_B", "value":"149" }, + { "name":"k_EControllerActionOrigin_SteamV2_X", "value":"150" }, + { "name":"k_EControllerActionOrigin_SteamV2_Y", "value":"151" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftBumper", "value":"152" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightBumper", "value":"153" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftGrip_Lower", "value":"154" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftGrip_Upper", "value":"155" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightGrip_Lower", "value":"156" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightGrip_Upper", "value":"157" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftBumper_Pressure", "value":"158" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightBumper_Pressure", "value":"159" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftGrip_Pressure", "value":"160" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightGrip_Pressure", "value":"161" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftGrip_Upper_Pressure", "value":"162" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightGrip_Upper_Pressure", "value":"163" }, + { "name":"k_EControllerActionOrigin_SteamV2_Start", "value":"164" }, + { "name":"k_EControllerActionOrigin_SteamV2_Back", "value":"165" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_Touch", "value":"166" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_Swipe", "value":"167" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_Click", "value":"168" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_Pressure", "value":"169" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth", "value":"170" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth", "value":"171" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest", "value":"172" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast", "value":"173" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_Touch", "value":"174" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_Swipe", "value":"175" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_Click", "value":"176" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_Pressure", "value":"177" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth", "value":"178" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth", "value":"179" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_DPadWest", "value":"180" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_DPadEast", "value":"181" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull", "value":"182" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftTrigger_Click", "value":"183" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightTrigger_Pull", "value":"184" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightTrigger_Click", "value":"185" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_Move", "value":"186" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_Click", "value":"187" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth", "value":"188" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth", "value":"189" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest", "value":"190" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast", "value":"191" }, + { "name":"k_EControllerActionOrigin_SteamV2_Gyro_Move", "value":"192" }, + { "name":"k_EControllerActionOrigin_SteamV2_Gyro_Pitch", "value":"193" }, + { "name":"k_EControllerActionOrigin_SteamV2_Gyro_Yaw", "value":"194" }, + { "name":"k_EControllerActionOrigin_SteamV2_Gyro_Roll", "value":"195" }, + { "name":"k_EControllerActionOrigin_Switch_A", "value":"196" }, + { "name":"k_EControllerActionOrigin_Switch_B", "value":"197" }, + { "name":"k_EControllerActionOrigin_Switch_X", "value":"198" }, + { "name":"k_EControllerActionOrigin_Switch_Y", "value":"199" }, + { "name":"k_EControllerActionOrigin_Switch_LeftBumper", "value":"200" }, + { "name":"k_EControllerActionOrigin_Switch_RightBumper", "value":"201" }, + { "name":"k_EControllerActionOrigin_Switch_Plus", "value":"202" }, + { "name":"k_EControllerActionOrigin_Switch_Minus", "value":"203" }, + { "name":"k_EControllerActionOrigin_Switch_Capture", "value":"204" }, + { "name":"k_EControllerActionOrigin_Switch_LeftTrigger_Pull", "value":"205" }, + { "name":"k_EControllerActionOrigin_Switch_LeftTrigger_Click", "value":"206" }, + { "name":"k_EControllerActionOrigin_Switch_RightTrigger_Pull", "value":"207" }, + { "name":"k_EControllerActionOrigin_Switch_RightTrigger_Click", "value":"208" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_Move", "value":"209" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_Click", "value":"210" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_DPadNorth", "value":"211" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_DPadSouth", "value":"212" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_DPadWest", "value":"213" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_DPadEast", "value":"214" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_Move", "value":"215" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_Click", "value":"216" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_DPadNorth", "value":"217" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_DPadSouth", "value":"218" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_DPadWest", "value":"219" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_DPadEast", "value":"220" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_North", "value":"221" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_South", "value":"222" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_West", "value":"223" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_East", "value":"224" }, + { "name":"k_EControllerActionOrigin_Switch_ProGyro_Move", "value":"225" }, + { "name":"k_EControllerActionOrigin_Switch_ProGyro_Pitch", "value":"226" }, + { "name":"k_EControllerActionOrigin_Switch_ProGyro_Yaw", "value":"227" }, + { "name":"k_EControllerActionOrigin_Switch_ProGyro_Roll", "value":"228" }, + { "name":"k_EControllerActionOrigin_Switch_RightGyro_Move", "value":"229" }, + { "name":"k_EControllerActionOrigin_Switch_RightGyro_Pitch", "value":"230" }, + { "name":"k_EControllerActionOrigin_Switch_RightGyro_Yaw", "value":"231" }, + { "name":"k_EControllerActionOrigin_Switch_RightGyro_Roll", "value":"232" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGyro_Move", "value":"233" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGyro_Pitch", "value":"234" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGyro_Yaw", "value":"235" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGyro_Roll", "value":"236" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGrip_Lower", "value":"237" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGrip_Upper", "value":"238" }, + { "name":"k_EControllerActionOrigin_Switch_RightGrip_Lower", "value":"239" }, + { "name":"k_EControllerActionOrigin_Switch_RightGrip_Upper", "value":"240" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_Move", "value":"241" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_Move", "value":"242" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_Move", "value":"243" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_Move", "value":"244" }, + { "name":"k_EControllerActionOrigin_PS5_X", "value":"245" }, + { "name":"k_EControllerActionOrigin_PS5_Circle", "value":"246" }, + { "name":"k_EControllerActionOrigin_PS5_Triangle", "value":"247" }, + { "name":"k_EControllerActionOrigin_PS5_Square", "value":"248" }, + { "name":"k_EControllerActionOrigin_PS5_LeftBumper", "value":"249" }, + { "name":"k_EControllerActionOrigin_PS5_RightBumper", "value":"250" }, + { "name":"k_EControllerActionOrigin_PS5_Option", "value":"251" }, + { "name":"k_EControllerActionOrigin_PS5_Create", "value":"252" }, + { "name":"k_EControllerActionOrigin_PS5_Mute", "value":"253" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_Touch", "value":"254" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_Swipe", "value":"255" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_Click", "value":"256" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadNorth", "value":"257" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadSouth", "value":"258" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadWest", "value":"259" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadEast", "value":"260" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_Touch", "value":"261" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_Swipe", "value":"262" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_Click", "value":"263" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_DPadNorth", "value":"264" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_DPadSouth", "value":"265" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_DPadWest", "value":"266" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_DPadEast", "value":"267" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_Touch", "value":"268" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_Swipe", "value":"269" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_Click", "value":"270" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadNorth", "value":"271" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadSouth", "value":"272" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadWest", "value":"273" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadEast", "value":"274" }, + { "name":"k_EControllerActionOrigin_PS5_LeftTrigger_Pull", "value":"275" }, + { "name":"k_EControllerActionOrigin_PS5_LeftTrigger_Click", "value":"276" }, + { "name":"k_EControllerActionOrigin_PS5_RightTrigger_Pull", "value":"277" }, + { "name":"k_EControllerActionOrigin_PS5_RightTrigger_Click", "value":"278" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_Move", "value":"279" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_Click", "value":"280" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadNorth", "value":"281" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadSouth", "value":"282" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadWest", "value":"283" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadEast", "value":"284" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_Move", "value":"285" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_Click", "value":"286" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_DPadNorth", "value":"287" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_DPadSouth", "value":"288" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_DPadWest", "value":"289" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_DPadEast", "value":"290" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_Move", "value":"291" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_North", "value":"292" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_South", "value":"293" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_West", "value":"294" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_East", "value":"295" }, + { "name":"k_EControllerActionOrigin_PS5_Gyro_Move", "value":"296" }, + { "name":"k_EControllerActionOrigin_PS5_Gyro_Pitch", "value":"297" }, + { "name":"k_EControllerActionOrigin_PS5_Gyro_Yaw", "value":"298" }, + { "name":"k_EControllerActionOrigin_PS5_Gyro_Roll", "value":"299" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftGrip_Lower", "value":"300" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftGrip_Upper", "value":"301" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightGrip_Lower", "value":"302" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightGrip_Upper", "value":"303" }, + { "name":"k_EControllerActionOrigin_XBoxOne_Share", "value":"304" }, + { "name":"k_EControllerActionOrigin_SteamDeck_A", "value":"305" }, + { "name":"k_EControllerActionOrigin_SteamDeck_B", "value":"306" }, + { "name":"k_EControllerActionOrigin_SteamDeck_X", "value":"307" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Y", "value":"308" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L1", "value":"309" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R1", "value":"310" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Menu", "value":"311" }, + { "name":"k_EControllerActionOrigin_SteamDeck_View", "value":"312" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_Touch", "value":"313" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_Swipe", "value":"314" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_Click", "value":"315" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_DPadNorth", "value":"316" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_DPadSouth", "value":"317" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_DPadWest", "value":"318" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_DPadEast", "value":"319" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_Touch", "value":"320" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_Swipe", "value":"321" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_Click", "value":"322" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_DPadNorth", "value":"323" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_DPadSouth", "value":"324" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_DPadWest", "value":"325" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_DPadEast", "value":"326" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L2_SoftPull", "value":"327" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L2", "value":"328" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R2_SoftPull", "value":"329" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R2", "value":"330" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_Move", "value":"331" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L3", "value":"332" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_DPadNorth", "value":"333" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_DPadSouth", "value":"334" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_DPadWest", "value":"335" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_DPadEast", "value":"336" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_Touch", "value":"337" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_Move", "value":"338" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R3", "value":"339" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_DPadNorth", "value":"340" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_DPadSouth", "value":"341" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_DPadWest", "value":"342" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_DPadEast", "value":"343" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_Touch", "value":"344" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L4", "value":"345" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R4", "value":"346" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L5", "value":"347" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R5", "value":"348" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_Move", "value":"349" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_North", "value":"350" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_South", "value":"351" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_West", "value":"352" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_East", "value":"353" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Gyro_Move", "value":"354" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Gyro_Pitch", "value":"355" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Gyro_Yaw", "value":"356" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Gyro_Roll", "value":"357" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved1", "value":"358" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved2", "value":"359" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved3", "value":"360" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved4", "value":"361" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved5", "value":"362" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved6", "value":"363" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved7", "value":"364" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved8", "value":"365" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved9", "value":"366" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved10", "value":"367" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved11", "value":"368" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved12", "value":"369" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved13", "value":"370" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved14", "value":"371" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved15", "value":"372" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved16", "value":"373" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved17", "value":"374" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved18", "value":"375" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved19", "value":"376" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved20", "value":"377" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_N", "value":"378" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_E", "value":"379" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_S", "value":"380" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_W", "value":"381" }, + { "name":"k_EControllerActionOrigin_PS5_LeftGrip", "value":"382" }, + { "name":"k_EControllerActionOrigin_PS5_RightGrip", "value":"383" }, + { "name":"k_EControllerActionOrigin_PS5_LeftFn", "value":"384" }, + { "name":"k_EControllerActionOrigin_PS5_RightFn", "value":"385" }, + { "name":"k_EControllerActionOrigin_Count", "value":"386" }, + { "name":"k_EControllerActionOrigin_MaximumPossibleValue", "value":"32767" } + ] + }, + { + "enumname": "ESteamControllerLEDFlag", + "values": [ + { "name":"k_ESteamControllerLEDFlag_SetColor", "value":"0" }, + { "name":"k_ESteamControllerLEDFlag_RestoreUserDefault", "value":"1" } + ] + }, + { + "enumname": "EUGCMatchingUGCType", + "values": [ + { "name":"k_EUGCMatchingUGCType_Items", "value":"0" }, + { "name":"k_EUGCMatchingUGCType_Items_Mtx", "value":"1" }, + { "name":"k_EUGCMatchingUGCType_Items_ReadyToUse", "value":"2" }, + { "name":"k_EUGCMatchingUGCType_Collections", "value":"3" }, + { "name":"k_EUGCMatchingUGCType_Artwork", "value":"4" }, + { "name":"k_EUGCMatchingUGCType_Videos", "value":"5" }, + { "name":"k_EUGCMatchingUGCType_Screenshots", "value":"6" }, + { "name":"k_EUGCMatchingUGCType_AllGuides", "value":"7" }, + { "name":"k_EUGCMatchingUGCType_WebGuides", "value":"8" }, + { "name":"k_EUGCMatchingUGCType_IntegratedGuides", "value":"9" }, + { "name":"k_EUGCMatchingUGCType_UsableInGame", "value":"10" }, + { "name":"k_EUGCMatchingUGCType_ControllerBindings", "value":"11" }, + { "name":"k_EUGCMatchingUGCType_GameManagedItems", "value":"12" }, + { "name":"k_EUGCMatchingUGCType_All", "value":"-1" } + ] + }, + { + "enumname": "EUserUGCList", + "values": [ + { "name":"k_EUserUGCList_Published", "value":"0" }, + { "name":"k_EUserUGCList_VotedOn", "value":"1" }, + { "name":"k_EUserUGCList_VotedUp", "value":"2" }, + { "name":"k_EUserUGCList_VotedDown", "value":"3" }, + { "name":"k_EUserUGCList_WillVoteLater", "value":"4" }, + { "name":"k_EUserUGCList_Favorited", "value":"5" }, + { "name":"k_EUserUGCList_Subscribed", "value":"6" }, + { "name":"k_EUserUGCList_UsedOrPlayed", "value":"7" }, + { "name":"k_EUserUGCList_Followed", "value":"8" } + ] + }, + { + "enumname": "EUserUGCListSortOrder", + "values": [ + { "name":"k_EUserUGCListSortOrder_CreationOrderDesc", "value":"0" }, + { "name":"k_EUserUGCListSortOrder_CreationOrderAsc", "value":"1" }, + { "name":"k_EUserUGCListSortOrder_TitleAsc", "value":"2" }, + { "name":"k_EUserUGCListSortOrder_LastUpdatedDesc", "value":"3" }, + { "name":"k_EUserUGCListSortOrder_SubscriptionDateDesc", "value":"4" }, + { "name":"k_EUserUGCListSortOrder_VoteScoreDesc", "value":"5" }, + { "name":"k_EUserUGCListSortOrder_ForModeration", "value":"6" } + ] + }, + { + "enumname": "EUGCQuery", + "values": [ + { "name":"k_EUGCQuery_RankedByVote", "value":"0" }, + { "name":"k_EUGCQuery_RankedByPublicationDate", "value":"1" }, + { "name":"k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate", "value":"2" }, + { "name":"k_EUGCQuery_RankedByTrend", "value":"3" }, + { "name":"k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate", "value":"4" }, + { "name":"k_EUGCQuery_CreatedByFriendsRankedByPublicationDate", "value":"5" }, + { "name":"k_EUGCQuery_RankedByNumTimesReported", "value":"6" }, + { "name":"k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate", "value":"7" }, + { "name":"k_EUGCQuery_NotYetRated", "value":"8" }, + { "name":"k_EUGCQuery_RankedByTotalVotesAsc", "value":"9" }, + { "name":"k_EUGCQuery_RankedByVotesUp", "value":"10" }, + { "name":"k_EUGCQuery_RankedByTextSearch", "value":"11" }, + { "name":"k_EUGCQuery_RankedByTotalUniqueSubscriptions", "value":"12" }, + { "name":"k_EUGCQuery_RankedByPlaytimeTrend", "value":"13" }, + { "name":"k_EUGCQuery_RankedByTotalPlaytime", "value":"14" }, + { "name":"k_EUGCQuery_RankedByAveragePlaytimeTrend", "value":"15" }, + { "name":"k_EUGCQuery_RankedByLifetimeAveragePlaytime", "value":"16" }, + { "name":"k_EUGCQuery_RankedByPlaytimeSessionsTrend", "value":"17" }, + { "name":"k_EUGCQuery_RankedByLifetimePlaytimeSessions", "value":"18" }, + { "name":"k_EUGCQuery_RankedByLastUpdatedDate", "value":"19" } + ] + }, + { + "enumname": "EItemUpdateStatus", + "values": [ + { "name":"k_EItemUpdateStatusInvalid", "value":"0" }, + { "name":"k_EItemUpdateStatusPreparingConfig", "value":"1" }, + { "name":"k_EItemUpdateStatusPreparingContent", "value":"2" }, + { "name":"k_EItemUpdateStatusUploadingContent", "value":"3" }, + { "name":"k_EItemUpdateStatusUploadingPreviewFile", "value":"4" }, + { "name":"k_EItemUpdateStatusCommittingChanges", "value":"5" } + ] + }, + { + "enumname": "EItemState", + "values": [ + { "name":"k_EItemStateNone", "value":"0" }, + { "name":"k_EItemStateSubscribed", "value":"1" }, + { "name":"k_EItemStateLegacyItem", "value":"2" }, + { "name":"k_EItemStateInstalled", "value":"4" }, + { "name":"k_EItemStateNeedsUpdate", "value":"8" }, + { "name":"k_EItemStateDownloading", "value":"16" }, + { "name":"k_EItemStateDownloadPending", "value":"32" }, + { "name":"k_EItemStateDisabledLocally", "value":"64" } + ] + }, + { + "enumname": "EItemStatistic", + "values": [ + { "name":"k_EItemStatistic_NumSubscriptions", "value":"0" }, + { "name":"k_EItemStatistic_NumFavorites", "value":"1" }, + { "name":"k_EItemStatistic_NumFollowers", "value":"2" }, + { "name":"k_EItemStatistic_NumUniqueSubscriptions", "value":"3" }, + { "name":"k_EItemStatistic_NumUniqueFavorites", "value":"4" }, + { "name":"k_EItemStatistic_NumUniqueFollowers", "value":"5" }, + { "name":"k_EItemStatistic_NumUniqueWebsiteViews", "value":"6" }, + { "name":"k_EItemStatistic_ReportScore", "value":"7" }, + { "name":"k_EItemStatistic_NumSecondsPlayed", "value":"8" }, + { "name":"k_EItemStatistic_NumPlaytimeSessions", "value":"9" }, + { "name":"k_EItemStatistic_NumComments", "value":"10" }, + { "name":"k_EItemStatistic_NumSecondsPlayedDuringTimePeriod", "value":"11" }, + { "name":"k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod", "value":"12" } + ] + }, + { + "enumname": "EItemPreviewType", + "values": [ + { "name":"k_EItemPreviewType_Image", "value":"0" }, + { "name":"k_EItemPreviewType_YouTubeVideo", "value":"1" }, + { "name":"k_EItemPreviewType_Sketchfab", "value":"2" }, + { "name":"k_EItemPreviewType_EnvironmentMap_HorizontalCross", "value":"3" }, + { "name":"k_EItemPreviewType_EnvironmentMap_LatLong", "value":"4" }, + { "name":"k_EItemPreviewType_Clip", "value":"5" }, + { "name":"k_EItemPreviewType_ReservedMax", "value":"255" } + ] + }, + { + "enumname": "EUGCContentDescriptorID", + "values": [ + { "name":"k_EUGCContentDescriptor_NudityOrSexualContent", "value":"1" }, + { "name":"k_EUGCContentDescriptor_FrequentViolenceOrGore", "value":"2" }, + { "name":"k_EUGCContentDescriptor_AdultOnlySexualContent", "value":"3" }, + { "name":"k_EUGCContentDescriptor_GratuitousSexualContent", "value":"4" }, + { "name":"k_EUGCContentDescriptor_AnyMatureContent", "value":"5" } + ] + }, + { + "enumname": "ESteamItemFlags", + "values": [ + { "name":"k_ESteamItemNoTrade", "value":"1" }, + { "name":"k_ESteamItemRemoved", "value":"256" }, + { "name":"k_ESteamItemConsumed", "value":"512" } + ] + }, + { + "enumname": "ETimelineGameMode", + "values": [ + { "name":"k_ETimelineGameMode_Invalid", "value":"0" }, + { "name":"k_ETimelineGameMode_Playing", "value":"1" }, + { "name":"k_ETimelineGameMode_Staging", "value":"2" }, + { "name":"k_ETimelineGameMode_Menus", "value":"3" }, + { "name":"k_ETimelineGameMode_LoadingScreen", "value":"4" }, + { "name":"k_ETimelineGameMode_Max", "value":"5" } + ] + }, + { + "enumname": "EParentalFeature", + "values": [ + { "name":"k_EFeatureInvalid", "value":"0" }, + { "name":"k_EFeatureStore", "value":"1" }, + { "name":"k_EFeatureCommunity", "value":"2" }, + { "name":"k_EFeatureProfile", "value":"3" }, + { "name":"k_EFeatureFriends", "value":"4" }, + { "name":"k_EFeatureNews", "value":"5" }, + { "name":"k_EFeatureTrading", "value":"6" }, + { "name":"k_EFeatureSettings", "value":"7" }, + { "name":"k_EFeatureConsole", "value":"8" }, + { "name":"k_EFeatureBrowser", "value":"9" }, + { "name":"k_EFeatureParentalSetup", "value":"10" }, + { "name":"k_EFeatureLibrary", "value":"11" }, + { "name":"k_EFeatureTest", "value":"12" }, + { "name":"k_EFeatureSiteLicense", "value":"13" }, + { "name":"k_EFeatureKioskMode_Deprecated", "value":"14" }, + { "name":"k_EFeatureMax", "value":"15" } + ] + }, + { + "enumname": "ESteamDeviceFormFactor", + "values": [ + { "name":"k_ESteamDeviceFormFactorUnknown", "value":"0" }, + { "name":"k_ESteamDeviceFormFactorPhone", "value":"1" }, + { "name":"k_ESteamDeviceFormFactorTablet", "value":"2" }, + { "name":"k_ESteamDeviceFormFactorComputer", "value":"3" }, + { "name":"k_ESteamDeviceFormFactorTV", "value":"4" }, + { "name":"k_ESteamDeviceFormFactorVRHeadset", "value":"5" } + ] + }, + { + "enumname": "ESteamNetworkingAvailability", + "values": [ + { "name":"k_ESteamNetworkingAvailability_CannotTry", "value":"-102" }, + { "name":"k_ESteamNetworkingAvailability_Failed", "value":"-101" }, + { "name":"k_ESteamNetworkingAvailability_Previously", "value":"-100" }, + { "name":"k_ESteamNetworkingAvailability_Retrying", "value":"-10" }, + { "name":"k_ESteamNetworkingAvailability_NeverTried", "value":"1" }, + { "name":"k_ESteamNetworkingAvailability_Waiting", "value":"2" }, + { "name":"k_ESteamNetworkingAvailability_Attempting", "value":"3" }, + { "name":"k_ESteamNetworkingAvailability_Current", "value":"100" }, + { "name":"k_ESteamNetworkingAvailability_Unknown", "value":"0" }, + { "name":"k_ESteamNetworkingAvailability__Force32bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingIdentityType", + "values": [ + { "name":"k_ESteamNetworkingIdentityType_Invalid", "value":"0" }, + { "name":"k_ESteamNetworkingIdentityType_SteamID", "value":"16" }, + { "name":"k_ESteamNetworkingIdentityType_XboxPairwiseID", "value":"17" }, + { "name":"k_ESteamNetworkingIdentityType_SonyPSN", "value":"18" }, + { "name":"k_ESteamNetworkingIdentityType_GoogleStadia", "value":"19" }, + { "name":"k_ESteamNetworkingIdentityType_IPAddress", "value":"1" }, + { "name":"k_ESteamNetworkingIdentityType_GenericString", "value":"2" }, + { "name":"k_ESteamNetworkingIdentityType_GenericBytes", "value":"3" }, + { "name":"k_ESteamNetworkingIdentityType_UnknownType", "value":"4" }, + { "name":"k_ESteamNetworkingIdentityType__Force32bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingFakeIPType", + "values": [ + { "name":"k_ESteamNetworkingFakeIPType_Invalid", "value":"0" }, + { "name":"k_ESteamNetworkingFakeIPType_NotFake", "value":"1" }, + { "name":"k_ESteamNetworkingFakeIPType_GlobalIPv4", "value":"2" }, + { "name":"k_ESteamNetworkingFakeIPType_LocalIPv4", "value":"3" }, + { "name":"k_ESteamNetworkingFakeIPType__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingConnectionState", + "values": [ + { "name":"k_ESteamNetworkingConnectionState_None", "value":"0" }, + { "name":"k_ESteamNetworkingConnectionState_Connecting", "value":"1" }, + { "name":"k_ESteamNetworkingConnectionState_FindingRoute", "value":"2" }, + { "name":"k_ESteamNetworkingConnectionState_Connected", "value":"3" }, + { "name":"k_ESteamNetworkingConnectionState_ClosedByPeer", "value":"4" }, + { "name":"k_ESteamNetworkingConnectionState_ProblemDetectedLocally", "value":"5" }, + { "name":"k_ESteamNetworkingConnectionState_FinWait", "value":"-1" }, + { "name":"k_ESteamNetworkingConnectionState_Linger", "value":"-2" }, + { "name":"k_ESteamNetworkingConnectionState_Dead", "value":"-3" }, + { "name":"k_ESteamNetworkingConnectionState__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetConnectionEnd", + "values": [ + { "name":"k_ESteamNetConnectionEnd_Invalid", "value":"0" }, + { "name":"k_ESteamNetConnectionEnd_App_Min", "value":"1000" }, + { "name":"k_ESteamNetConnectionEnd_App_Generic", "value":"1000" }, + { "name":"k_ESteamNetConnectionEnd_App_Max", "value":"1999" }, + { "name":"k_ESteamNetConnectionEnd_AppException_Min", "value":"2000" }, + { "name":"k_ESteamNetConnectionEnd_AppException_Generic", "value":"2000" }, + { "name":"k_ESteamNetConnectionEnd_AppException_Max", "value":"2999" }, + { "name":"k_ESteamNetConnectionEnd_Local_Min", "value":"3000" }, + { "name":"k_ESteamNetConnectionEnd_Local_OfflineMode", "value":"3001" }, + { "name":"k_ESteamNetConnectionEnd_Local_ManyRelayConnectivity", "value":"3002" }, + { "name":"k_ESteamNetConnectionEnd_Local_HostedServerPrimaryRelay", "value":"3003" }, + { "name":"k_ESteamNetConnectionEnd_Local_NetworkConfig", "value":"3004" }, + { "name":"k_ESteamNetConnectionEnd_Local_Rights", "value":"3005" }, + { "name":"k_ESteamNetConnectionEnd_Local_P2P_ICE_NoPublicAddresses", "value":"3006" }, + { "name":"k_ESteamNetConnectionEnd_Local_Max", "value":"3999" }, + { "name":"k_ESteamNetConnectionEnd_Remote_Min", "value":"4000" }, + { "name":"k_ESteamNetConnectionEnd_Remote_Timeout", "value":"4001" }, + { "name":"k_ESteamNetConnectionEnd_Remote_BadCrypt", "value":"4002" }, + { "name":"k_ESteamNetConnectionEnd_Remote_BadCert", "value":"4003" }, + { "name":"k_ESteamNetConnectionEnd_Remote_BadProtocolVersion", "value":"4006" }, + { "name":"k_ESteamNetConnectionEnd_Remote_P2P_ICE_NoPublicAddresses", "value":"4007" }, + { "name":"k_ESteamNetConnectionEnd_Remote_Max", "value":"4999" }, + { "name":"k_ESteamNetConnectionEnd_Misc_Min", "value":"5000" }, + { "name":"k_ESteamNetConnectionEnd_Misc_Generic", "value":"5001" }, + { "name":"k_ESteamNetConnectionEnd_Misc_InternalError", "value":"5002" }, + { "name":"k_ESteamNetConnectionEnd_Misc_Timeout", "value":"5003" }, + { "name":"k_ESteamNetConnectionEnd_Misc_SteamConnectivity", "value":"5005" }, + { "name":"k_ESteamNetConnectionEnd_Misc_NoRelaySessionsToClient", "value":"5006" }, + { "name":"k_ESteamNetConnectionEnd_Misc_P2P_Rendezvous", "value":"5008" }, + { "name":"k_ESteamNetConnectionEnd_Misc_P2P_NAT_Firewall", "value":"5009" }, + { "name":"k_ESteamNetConnectionEnd_Misc_PeerSentNoConnection", "value":"5010" }, + { "name":"k_ESteamNetConnectionEnd_Misc_Max", "value":"5999" }, + { "name":"k_ESteamNetConnectionEnd__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingConfigScope", + "values": [ + { "name":"k_ESteamNetworkingConfig_Global", "value":"1" }, + { "name":"k_ESteamNetworkingConfig_SocketsInterface", "value":"2" }, + { "name":"k_ESteamNetworkingConfig_ListenSocket", "value":"3" }, + { "name":"k_ESteamNetworkingConfig_Connection", "value":"4" }, + { "name":"k_ESteamNetworkingConfigScope__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingConfigDataType", + "values": [ + { "name":"k_ESteamNetworkingConfig_Int32", "value":"1" }, + { "name":"k_ESteamNetworkingConfig_Int64", "value":"2" }, + { "name":"k_ESteamNetworkingConfig_Float", "value":"3" }, + { "name":"k_ESteamNetworkingConfig_String", "value":"4" }, + { "name":"k_ESteamNetworkingConfig_Ptr", "value":"5" }, + { "name":"k_ESteamNetworkingConfigDataType__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingConfigValue", + "values": [ + { "name":"k_ESteamNetworkingConfig_Invalid", "value":"0" }, + { "name":"k_ESteamNetworkingConfig_TimeoutInitial", "value":"24" }, + { "name":"k_ESteamNetworkingConfig_TimeoutConnected", "value":"25" }, + { "name":"k_ESteamNetworkingConfig_SendBufferSize", "value":"9" }, + { "name":"k_ESteamNetworkingConfig_RecvBufferSize", "value":"47" }, + { "name":"k_ESteamNetworkingConfig_RecvBufferMessages", "value":"48" }, + { "name":"k_ESteamNetworkingConfig_RecvMaxMessageSize", "value":"49" }, + { "name":"k_ESteamNetworkingConfig_RecvMaxSegmentsPerPacket", "value":"50" }, + { "name":"k_ESteamNetworkingConfig_ConnectionUserData", "value":"40" }, + { "name":"k_ESteamNetworkingConfig_SendRateMin", "value":"10" }, + { "name":"k_ESteamNetworkingConfig_SendRateMax", "value":"11" }, + { "name":"k_ESteamNetworkingConfig_NagleTime", "value":"12" }, + { "name":"k_ESteamNetworkingConfig_IP_AllowWithoutAuth", "value":"23" }, + { "name":"k_ESteamNetworkingConfig_MTU_PacketSize", "value":"32" }, + { "name":"k_ESteamNetworkingConfig_MTU_DataSize", "value":"33" }, + { "name":"k_ESteamNetworkingConfig_Unencrypted", "value":"34" }, + { "name":"k_ESteamNetworkingConfig_SymmetricConnect", "value":"37" }, + { "name":"k_ESteamNetworkingConfig_LocalVirtualPort", "value":"38" }, + { "name":"k_ESteamNetworkingConfig_DualWifi_Enable", "value":"39" }, + { "name":"k_ESteamNetworkingConfig_EnableDiagnosticsUI", "value":"46" }, + { "name":"k_ESteamNetworkingConfig_FakePacketLoss_Send", "value":"2" }, + { "name":"k_ESteamNetworkingConfig_FakePacketLoss_Recv", "value":"3" }, + { "name":"k_ESteamNetworkingConfig_FakePacketLag_Send", "value":"4" }, + { "name":"k_ESteamNetworkingConfig_FakePacketLag_Recv", "value":"5" }, + { "name":"k_ESteamNetworkingConfig_FakePacketReorder_Send", "value":"6" }, + { "name":"k_ESteamNetworkingConfig_FakePacketReorder_Recv", "value":"7" }, + { "name":"k_ESteamNetworkingConfig_FakePacketReorder_Time", "value":"8" }, + { "name":"k_ESteamNetworkingConfig_FakePacketDup_Send", "value":"26" }, + { "name":"k_ESteamNetworkingConfig_FakePacketDup_Recv", "value":"27" }, + { "name":"k_ESteamNetworkingConfig_FakePacketDup_TimeMax", "value":"28" }, + { "name":"k_ESteamNetworkingConfig_PacketTraceMaxBytes", "value":"41" }, + { "name":"k_ESteamNetworkingConfig_FakeRateLimit_Send_Rate", "value":"42" }, + { "name":"k_ESteamNetworkingConfig_FakeRateLimit_Send_Burst", "value":"43" }, + { "name":"k_ESteamNetworkingConfig_FakeRateLimit_Recv_Rate", "value":"44" }, + { "name":"k_ESteamNetworkingConfig_FakeRateLimit_Recv_Burst", "value":"45" }, + { "name":"k_ESteamNetworkingConfig_OutOfOrderCorrectionWindowMicroseconds", "value":"51" }, + { "name":"k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged", "value":"201" }, + { "name":"k_ESteamNetworkingConfig_Callback_AuthStatusChanged", "value":"202" }, + { "name":"k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged", "value":"203" }, + { "name":"k_ESteamNetworkingConfig_Callback_MessagesSessionRequest", "value":"204" }, + { "name":"k_ESteamNetworkingConfig_Callback_MessagesSessionFailed", "value":"205" }, + { "name":"k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling", "value":"206" }, + { "name":"k_ESteamNetworkingConfig_Callback_FakeIPResult", "value":"207" }, + { "name":"k_ESteamNetworkingConfig_P2P_STUN_ServerList", "value":"103" }, + { "name":"k_ESteamNetworkingConfig_P2P_Transport_ICE_Enable", "value":"104" }, + { "name":"k_ESteamNetworkingConfig_P2P_Transport_ICE_Penalty", "value":"105" }, + { "name":"k_ESteamNetworkingConfig_P2P_Transport_SDR_Penalty", "value":"106" }, + { "name":"k_ESteamNetworkingConfig_P2P_TURN_ServerList", "value":"107" }, + { "name":"k_ESteamNetworkingConfig_P2P_TURN_UserList", "value":"108" }, + { "name":"k_ESteamNetworkingConfig_P2P_TURN_PassList", "value":"109" }, + { "name":"k_ESteamNetworkingConfig_P2P_Transport_ICE_Implementation", "value":"110" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFailInitial", "value":"19" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFail", "value":"20" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_MinPingsBeforePingAccurate", "value":"21" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_SingleSocket", "value":"22" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_ForceRelayCluster", "value":"29" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_DevTicket", "value":"30" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_ForceProxyAddr", "value":"31" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_FakeClusterPing", "value":"36" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_LimitPingProbesToNearestN", "value":"60" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_AckRTT", "value":"13" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_PacketDecode", "value":"14" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_Message", "value":"15" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_PacketGaps", "value":"16" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_P2PRendezvous", "value":"17" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_SDRRelayPings", "value":"18" }, + { "name":"k_ESteamNetworkingConfig_ECN", "value":"999" }, + { "name":"k_ESteamNetworkingConfig_DELETED_EnumerateDevVars", "value":"35" }, + { "name":"k_ESteamNetworkingConfigValue__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingGetConfigValueResult", + "values": [ + { "name":"k_ESteamNetworkingGetConfigValue_BadValue", "value":"-1" }, + { "name":"k_ESteamNetworkingGetConfigValue_BadScopeObj", "value":"-2" }, + { "name":"k_ESteamNetworkingGetConfigValue_BufferTooSmall", "value":"-3" }, + { "name":"k_ESteamNetworkingGetConfigValue_OK", "value":"1" }, + { "name":"k_ESteamNetworkingGetConfigValue_OKInherited", "value":"2" }, + { "name":"k_ESteamNetworkingGetConfigValueResult__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingSocketsDebugOutputType", + "values": [ + { "name":"k_ESteamNetworkingSocketsDebugOutputType_None", "value":"0" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Bug", "value":"1" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Error", "value":"2" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Important", "value":"3" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Warning", "value":"4" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Msg", "value":"5" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Verbose", "value":"6" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Debug", "value":"7" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Everything", "value":"8" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamAPIInitResult", + "values": [ + { "name":"k_ESteamAPIInitResult_OK", "value":"0" }, + { "name":"k_ESteamAPIInitResult_FailedGeneric", "value":"1" }, + { "name":"k_ESteamAPIInitResult_NoSteamClient", "value":"2" }, + { "name":"k_ESteamAPIInitResult_VersionMismatch", "value":"3" } + ] + }, + { + "enumname": "EServerMode", + "values": [ + { "name":"eServerModeInvalid", "value":"0" }, + { "name":"eServerModeNoAuthentication", "value":"1" }, + { "name":"eServerModeAuthentication", "value":"2" }, + { "name":"eServerModeAuthenticationAndSecure", "value":"3" } + ] + } + ], + "interfaces": [ + { + "classname": "ISteamClient", + "fields": [], + "methods": [ + { + "methodname": "CreateSteamPipe", + "methodname_flat": "SteamAPI_ISteamClient_CreateSteamPipe", + "params": [], + "returntype": "HSteamPipe" + }, + { + "methodname": "BReleaseSteamPipe", + "methodname_flat": "SteamAPI_ISteamClient_BReleaseSteamPipe", + "params": [ + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" } + ], + "returntype": "bool" + }, + { + "methodname": "ConnectToGlobalUser", + "methodname_flat": "SteamAPI_ISteamClient_ConnectToGlobalUser", + "params": [ + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" } + ], + "returntype": "HSteamUser" + }, + { + "methodname": "CreateLocalUser", + "methodname_flat": "SteamAPI_ISteamClient_CreateLocalUser", + "params": [ + { "paramname":"phSteamPipe", "paramtype":"HSteamPipe *" }, + { "paramname":"eAccountType", "paramtype":"EAccountType" } + ], + "returntype": "HSteamUser" + }, + { + "methodname": "ReleaseUser", + "methodname_flat": "SteamAPI_ISteamClient_ReleaseUser", + "params": [ + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"hUser", "paramtype":"HSteamUser" } + ], + "returntype": "void" + }, + { + "methodname": "GetISteamUser", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamUser", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamUser *" + }, + { + "methodname": "GetISteamGameServer", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamGameServer", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamGameServer *" + }, + { + "methodname": "SetLocalIPBinding", + "methodname_flat": "SteamAPI_ISteamClient_SetLocalIPBinding", + "params": [ + { "paramname":"unIP", "paramtype":"const SteamIPAddress_t &" }, + { "paramname":"usPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetISteamFriends", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamFriends", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamFriends *" + }, + { + "methodname": "GetISteamUtils", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamUtils", + "params": [ + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamUtils *" + }, + { + "methodname": "GetISteamMatchmaking", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamMatchmaking", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamMatchmaking *" + }, + { + "methodname": "GetISteamMatchmakingServers", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamMatchmakingServers", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamMatchmakingServers *" + }, + { + "methodname": "GetISteamGenericInterface", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamGenericInterface", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "void *" + }, + { + "methodname": "GetISteamUserStats", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamUserStats", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamUserStats *" + }, + { + "methodname": "GetISteamGameServerStats", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamGameServerStats", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamGameServerStats *" + }, + { + "methodname": "GetISteamApps", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamApps", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamApps *" + }, + { + "methodname": "GetISteamNetworking", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamNetworking", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamNetworking *" + }, + { + "methodname": "GetISteamRemoteStorage", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamRemoteStorage", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamRemoteStorage *" + }, + { + "methodname": "GetISteamScreenshots", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamScreenshots", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamScreenshots *" + }, + { + "methodname": "GetISteamGameSearch", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamGameSearch", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamGameSearch *" + }, + { + "methodname": "GetIPCCallCount", + "methodname_flat": "SteamAPI_ISteamClient_GetIPCCallCount", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetWarningMessageHook", + "methodname_flat": "SteamAPI_ISteamClient_SetWarningMessageHook", + "params": [ + { "paramname":"pFunction", "paramtype":"SteamAPIWarningMessageHook_t" } + ], + "returntype": "void" + }, + { + "methodname": "BShutdownIfAllPipesClosed", + "methodname_flat": "SteamAPI_ISteamClient_BShutdownIfAllPipesClosed", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetISteamHTTP", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamHTTP", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamHTTP *" + }, + { + "methodname": "GetISteamController", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamController", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamController *" + }, + { + "methodname": "GetISteamUGC", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamUGC", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamUGC *" + }, + { + "methodname": "GetISteamMusic", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamMusic", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamMusic *" + }, + { + "methodname": "GetISteamMusicRemote", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamMusicRemote", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamMusicRemote *" + }, + { + "methodname": "GetISteamHTMLSurface", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamHTMLSurface", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamHTMLSurface *" + }, + { + "methodname": "GetISteamInventory", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamInventory", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamInventory *" + }, + { + "methodname": "GetISteamParentalSettings", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamParentalSettings", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamParentalSettings *" + }, + { + "methodname": "GetISteamInput", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamInput", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamInput *" + }, + { + "methodname": "GetISteamParties", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamParties", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamParties *" + }, + { + "methodname": "GetISteamRemotePlay", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamRemotePlay", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamRemotePlay *" + } + ] + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamUser", + "name_flat": "SteamAPI_SteamUser_v023" + } + ], + "classname": "ISteamUser", + "fields": [], + "methods": [ + { + "methodname": "GetHSteamUser", + "methodname_flat": "SteamAPI_ISteamUser_GetHSteamUser", + "params": [], + "returntype": "HSteamUser" + }, + { + "methodname": "BLoggedOn", + "methodname_flat": "SteamAPI_ISteamUser_BLoggedOn", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetSteamID", + "methodname_flat": "SteamAPI_ISteamUser_GetSteamID", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "InitiateGameConnection_DEPRECATED", + "methodname_flat": "SteamAPI_ISteamUser_InitiateGameConnection_DEPRECATED", + "params": [ + { "paramname":"pAuthBlob", "paramtype":"void *" }, + { "paramname":"cbMaxAuthBlob", "paramtype":"int" }, + { "paramname":"steamIDGameServer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"unIPServer", "paramtype":"uint32" }, + { "paramname":"usPortServer", "paramtype":"uint16" }, + { "paramname":"bSecure", "paramtype":"bool" } + ], + "returntype": "int" + }, + { + "methodname": "TerminateGameConnection_DEPRECATED", + "methodname_flat": "SteamAPI_ISteamUser_TerminateGameConnection_DEPRECATED", + "params": [ + { "paramname":"unIPServer", "paramtype":"uint32" }, + { "paramname":"usPortServer", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "TrackAppUsageEvent", + "methodname_flat": "SteamAPI_ISteamUser_TrackAppUsageEvent", + "params": [ + { "paramname":"gameID", "paramtype":"CGameID", "paramtype_flat":"uint64_gameid" }, + { "paramname":"eAppUsageEvent", "paramtype":"int" }, + { "paramname":"pchExtraInfo", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "GetUserDataFolder", + "methodname_flat": "SteamAPI_ISteamUser_GetUserDataFolder", + "params": [ + { "paramname":"pchBuffer", "paramtype":"char *" }, + { "paramname":"cubBuffer", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "StartVoiceRecording", + "methodname_flat": "SteamAPI_ISteamUser_StartVoiceRecording", + "params": [], + "returntype": "void" + }, + { + "methodname": "StopVoiceRecording", + "methodname_flat": "SteamAPI_ISteamUser_StopVoiceRecording", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetAvailableVoice", + "methodname_flat": "SteamAPI_ISteamUser_GetAvailableVoice", + "params": [ + { "paramname":"pcbCompressed", "paramtype":"uint32 *" }, + { "paramname":"pcbUncompressed_Deprecated", "paramtype":"uint32 *" }, + { "paramname":"nUncompressedVoiceDesiredSampleRate_Deprecated", "paramtype":"uint32" } + ], + "returntype": "EVoiceResult" + }, + { + "methodname": "GetVoice", + "methodname_flat": "SteamAPI_ISteamUser_GetVoice", + "params": [ + { "paramname":"bWantCompressed", "paramtype":"bool" }, + { "paramname":"pDestBuffer", "paramtype":"void *" }, + { "paramname":"cbDestBufferSize", "paramtype":"uint32" }, + { "paramname":"nBytesWritten", "paramtype":"uint32 *" }, + { "paramname":"bWantUncompressed_Deprecated", "paramtype":"bool" }, + { "paramname":"pUncompressedDestBuffer_Deprecated", "paramtype":"void *" }, + { "paramname":"cbUncompressedDestBufferSize_Deprecated", "paramtype":"uint32" }, + { "paramname":"nUncompressBytesWritten_Deprecated", "paramtype":"uint32 *" }, + { "paramname":"nUncompressedVoiceDesiredSampleRate_Deprecated", "paramtype":"uint32" } + ], + "returntype": "EVoiceResult" + }, + { + "methodname": "DecompressVoice", + "methodname_flat": "SteamAPI_ISteamUser_DecompressVoice", + "params": [ + { "paramname":"pCompressed", "paramtype":"const void *" }, + { "paramname":"cbCompressed", "paramtype":"uint32" }, + { "paramname":"pDestBuffer", "paramtype":"void *" }, + { "paramname":"cbDestBufferSize", "paramtype":"uint32" }, + { "paramname":"nBytesWritten", "paramtype":"uint32 *" }, + { "paramname":"nDesiredSampleRate", "paramtype":"uint32" } + ], + "returntype": "EVoiceResult" + }, + { + "methodname": "GetVoiceOptimalSampleRate", + "methodname_flat": "SteamAPI_ISteamUser_GetVoiceOptimalSampleRate", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetAuthSessionTicket", + "methodname_flat": "SteamAPI_ISteamUser_GetAuthSessionTicket", + "params": [ + { "paramname":"pTicket", "paramtype":"void *" }, + { "paramname":"cbMaxTicket", "paramtype":"int" }, + { "paramname":"pcbTicket", "paramtype":"uint32 *" }, + { "paramname":"pSteamNetworkingIdentity", "paramtype":"const SteamNetworkingIdentity *" } + ], + "returntype": "HAuthTicket" + }, + { + "methodname": "GetAuthTicketForWebApi", + "methodname_flat": "SteamAPI_ISteamUser_GetAuthTicketForWebApi", + "params": [ + { "paramname":"pchIdentity", "paramtype":"const char *" } + ], + "returntype": "HAuthTicket" + }, + { + "methodname": "BeginAuthSession", + "methodname_flat": "SteamAPI_ISteamUser_BeginAuthSession", + "params": [ + { "paramname":"pAuthTicket", "paramtype":"const void *" }, + { "paramname":"cbAuthTicket", "paramtype":"int" }, + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "EBeginAuthSessionResult" + }, + { + "methodname": "EndAuthSession", + "methodname_flat": "SteamAPI_ISteamUser_EndAuthSession", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "CancelAuthTicket", + "methodname_flat": "SteamAPI_ISteamUser_CancelAuthTicket", + "params": [ + { "paramname":"hAuthTicket", "paramtype":"HAuthTicket" } + ], + "returntype": "void" + }, + { + "methodname": "UserHasLicenseForApp", + "methodname_flat": "SteamAPI_ISteamUser_UserHasLicenseForApp", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "EUserHasLicenseForAppResult" + }, + { + "methodname": "BIsBehindNAT", + "methodname_flat": "SteamAPI_ISteamUser_BIsBehindNAT", + "params": [], + "returntype": "bool" + }, + { + "methodname": "AdvertiseGame", + "methodname_flat": "SteamAPI_ISteamUser_AdvertiseGame", + "params": [ + { "paramname":"steamIDGameServer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"unIPServer", "paramtype":"uint32" }, + { "paramname":"usPortServer", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "callresult": "EncryptedAppTicketResponse_t", + "methodname": "RequestEncryptedAppTicket", + "methodname_flat": "SteamAPI_ISteamUser_RequestEncryptedAppTicket", + "params": [ + { "paramname":"pDataToInclude", "paramtype":"void *" }, + { "paramname":"cbDataToInclude", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetEncryptedAppTicket", + "methodname_flat": "SteamAPI_ISteamUser_GetEncryptedAppTicket", + "params": [ + { "paramname":"pTicket", "paramtype":"void *" }, + { "paramname":"cbMaxTicket", "paramtype":"int" }, + { "paramname":"pcbTicket", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGameBadgeLevel", + "methodname_flat": "SteamAPI_ISteamUser_GetGameBadgeLevel", + "params": [ + { "paramname":"nSeries", "paramtype":"int" }, + { "paramname":"bFoil", "paramtype":"bool" } + ], + "returntype": "int" + }, + { + "methodname": "GetPlayerSteamLevel", + "methodname_flat": "SteamAPI_ISteamUser_GetPlayerSteamLevel", + "params": [], + "returntype": "int" + }, + { + "callresult": "StoreAuthURLResponse_t", + "methodname": "RequestStoreAuthURL", + "methodname_flat": "SteamAPI_ISteamUser_RequestStoreAuthURL", + "params": [ + { "paramname":"pchRedirectURL", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "BIsPhoneVerified", + "methodname_flat": "SteamAPI_ISteamUser_BIsPhoneVerified", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsTwoFactorEnabled", + "methodname_flat": "SteamAPI_ISteamUser_BIsTwoFactorEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsPhoneIdentifying", + "methodname_flat": "SteamAPI_ISteamUser_BIsPhoneIdentifying", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsPhoneRequiringVerification", + "methodname_flat": "SteamAPI_ISteamUser_BIsPhoneRequiringVerification", + "params": [], + "returntype": "bool" + }, + { + "callresult": "MarketEligibilityResponse_t", + "methodname": "GetMarketEligibility", + "methodname_flat": "SteamAPI_ISteamUser_GetMarketEligibility", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "DurationControl_t", + "methodname": "GetDurationControl", + "methodname_flat": "SteamAPI_ISteamUser_GetDurationControl", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "BSetDurationControlOnlineState", + "methodname_flat": "SteamAPI_ISteamUser_BSetDurationControlOnlineState", + "params": [ + { "paramname":"eNewState", "paramtype":"EDurationControlOnlineState" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamUser023" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamFriends", + "name_flat": "SteamAPI_SteamFriends_v017" + } + ], + "classname": "ISteamFriends", + "fields": [], + "methods": [ + { + "methodname": "GetPersonaName", + "methodname_flat": "SteamAPI_ISteamFriends_GetPersonaName", + "params": [], + "returntype": "const char *" + }, + { + "callresult": "SetPersonaNameResponse_t", + "methodname": "SetPersonaName", + "methodname_flat": "SteamAPI_ISteamFriends_SetPersonaName", + "params": [ + { "paramname":"pchPersonaName", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetPersonaState", + "methodname_flat": "SteamAPI_ISteamFriends_GetPersonaState", + "params": [], + "returntype": "EPersonaState" + }, + { + "methodname": "GetFriendCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendCount", + "params": [ + { "paramname":"iFriendFlags", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendByIndex", + "params": [ + { "paramname":"iFriend", "paramtype":"int" }, + { "paramname":"iFriendFlags", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetFriendRelationship", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendRelationship", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "EFriendRelationship" + }, + { + "methodname": "GetFriendPersonaState", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendPersonaState", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "EPersonaState" + }, + { + "methodname": "GetFriendPersonaName", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendPersonaName", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendGamePlayed", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendGamePlayed", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { + "out_struct": "", + "paramname": "pFriendGameInfo", + "paramtype": "FriendGameInfo_t *" + } + ], + "returntype": "bool" + }, + { + "methodname": "GetFriendPersonaNameHistory", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendPersonaNameHistory", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iPersonaName", "paramtype":"int" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendSteamLevel", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendSteamLevel", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetPlayerNickname", + "methodname_flat": "SteamAPI_ISteamFriends_GetPlayerNickname", + "params": [ + { "paramname":"steamIDPlayer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendsGroupCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetFriendsGroupIDByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex", + "params": [ + { "paramname":"iFG", "paramtype":"int" } + ], + "returntype": "FriendsGroupID_t" + }, + { + "methodname": "GetFriendsGroupName", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupName", + "params": [ + { "paramname":"friendsGroupID", "paramtype":"FriendsGroupID_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendsGroupMembersCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupMembersCount", + "params": [ + { "paramname":"friendsGroupID", "paramtype":"FriendsGroupID_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendsGroupMembersList", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupMembersList", + "params": [ + { "paramname":"friendsGroupID", "paramtype":"FriendsGroupID_t" }, + { + "out_array_call": "nMembersCount,GetFriendsGroupMembersCount,friendsGroupID", + "paramname": "pOutSteamIDMembers", + "paramtype": "CSteamID *" + }, + { "paramname":"nMembersCount", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "HasFriend", + "methodname_flat": "SteamAPI_ISteamFriends_HasFriend", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iFriendFlags", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetClanCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetClanByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanByIndex", + "params": [ + { "paramname":"iClan", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetClanName", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanName", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetClanTag", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanTag", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetClanActivityCounts", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanActivityCounts", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pnOnline", "paramtype":"int *" }, + { "paramname":"pnInGame", "paramtype":"int *" }, + { "paramname":"pnChatting", "paramtype":"int *" } + ], + "returntype": "bool" + }, + { + "callresult": "DownloadClanActivityCountsResult_t", + "methodname": "DownloadClanActivityCounts", + "methodname_flat": "SteamAPI_ISteamFriends_DownloadClanActivityCounts", + "params": [ + { + "array_count": "cClansToRequest", + "paramname": "psteamIDClans", + "paramtype": "CSteamID *" + }, + { "paramname":"cClansToRequest", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetFriendCountFromSource", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendCountFromSource", + "params": [ + { "paramname":"steamIDSource", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendFromSourceByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendFromSourceByIndex", + "params": [ + { "paramname":"steamIDSource", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iFriend", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "IsUserInSource", + "methodname_flat": "SteamAPI_ISteamFriends_IsUserInSource", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDSource", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "SetInGameVoiceSpeaking", + "methodname_flat": "SteamAPI_ISteamFriends_SetInGameVoiceSpeaking", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"bSpeaking", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlay", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlay", + "params": [ + { "paramname":"pchDialog", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlayToUser", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayToUser", + "params": [ + { "paramname":"pchDialog", "paramtype":"const char *" }, + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlayToWebPage", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage", + "params": [ + { "paramname":"pchURL", "paramtype":"const char *" }, + { "paramname":"eMode", "paramtype":"EActivateGameOverlayToWebPageMode" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlayToStore", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayToStore", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" }, + { "paramname":"eFlag", "paramtype":"EOverlayToStoreFlag" } + ], + "returntype": "void" + }, + { + "methodname": "SetPlayedWith", + "methodname_flat": "SteamAPI_ISteamFriends_SetPlayedWith", + "params": [ + { "paramname":"steamIDUserPlayedWith", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlayInviteDialog", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "GetSmallFriendAvatar", + "methodname_flat": "SteamAPI_ISteamFriends_GetSmallFriendAvatar", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetMediumFriendAvatar", + "methodname_flat": "SteamAPI_ISteamFriends_GetMediumFriendAvatar", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetLargeFriendAvatar", + "methodname_flat": "SteamAPI_ISteamFriends_GetLargeFriendAvatar", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "RequestUserInformation", + "methodname_flat": "SteamAPI_ISteamFriends_RequestUserInformation", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"bRequireNameOnly", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "callresult": "ClanOfficerListResponse_t", + "methodname": "RequestClanOfficerList", + "methodname_flat": "SteamAPI_ISteamFriends_RequestClanOfficerList", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetClanOwner", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanOwner", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetClanOfficerCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanOfficerCount", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetClanOfficerByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanOfficerByIndex", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iOfficer", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetUserRestrictions", + "methodname_flat": "SteamAPI_ISteamFriends_GetUserRestrictions", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetRichPresence", + "methodname_flat": "SteamAPI_ISteamFriends_SetRichPresence", + "params": [ + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "ClearRichPresence", + "methodname_flat": "SteamAPI_ISteamFriends_ClearRichPresence", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetFriendRichPresence", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendRichPresence", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendRichPresenceKeyCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendRichPresenceKeyByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iKey", "paramtype":"int" } + ], + "returntype": "const char *" + }, + { + "methodname": "RequestFriendRichPresence", + "methodname_flat": "SteamAPI_ISteamFriends_RequestFriendRichPresence", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "InviteUserToGame", + "methodname_flat": "SteamAPI_ISteamFriends_InviteUserToGame", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchConnectString", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetCoplayFriendCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetCoplayFriendCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetCoplayFriend", + "methodname_flat": "SteamAPI_ISteamFriends_GetCoplayFriend", + "params": [ + { "paramname":"iCoplayFriend", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetFriendCoplayTime", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendCoplayTime", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendCoplayGame", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendCoplayGame", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "AppId_t" + }, + { + "callresult": "JoinClanChatRoomCompletionResult_t", + "methodname": "JoinClanChatRoom", + "methodname_flat": "SteamAPI_ISteamFriends_JoinClanChatRoom", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "LeaveClanChatRoom", + "methodname_flat": "SteamAPI_ISteamFriends_LeaveClanChatRoom", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "GetClanChatMemberCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanChatMemberCount", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetChatMemberByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetChatMemberByIndex", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iUser", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "SendClanChatMessage", + "methodname_flat": "SteamAPI_ISteamFriends_SendClanChatMessage", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetClanChatMessage", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanChatMessage", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iMessage", "paramtype":"int" }, + { "paramname":"prgchText", "paramtype":"void *" }, + { "paramname":"cchTextMax", "paramtype":"int" }, + { "paramname":"peChatEntryType", "paramtype":"EChatEntryType *" }, + { + "out_struct": "", + "paramname": "psteamidChatter", + "paramtype": "CSteamID *" + } + ], + "returntype": "int" + }, + { + "methodname": "IsClanChatAdmin", + "methodname_flat": "SteamAPI_ISteamFriends_IsClanChatAdmin", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "IsClanChatWindowOpenInSteam", + "methodname_flat": "SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "OpenClanChatWindowInSteam", + "methodname_flat": "SteamAPI_ISteamFriends_OpenClanChatWindowInSteam", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseClanChatWindowInSteam", + "methodname_flat": "SteamAPI_ISteamFriends_CloseClanChatWindowInSteam", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "SetListenForFriendsMessages", + "methodname_flat": "SteamAPI_ISteamFriends_SetListenForFriendsMessages", + "params": [ + { "paramname":"bInterceptEnabled", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "ReplyToFriendMessage", + "methodname_flat": "SteamAPI_ISteamFriends_ReplyToFriendMessage", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchMsgToSend", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetFriendMessage", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendMessage", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iMessageID", "paramtype":"int" }, + { "paramname":"pvData", "paramtype":"void *" }, + { "paramname":"cubData", "paramtype":"int" }, + { "paramname":"peChatEntryType", "paramtype":"EChatEntryType *" } + ], + "returntype": "int" + }, + { + "callresult": "FriendsGetFollowerCount_t", + "methodname": "GetFollowerCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFollowerCount", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "FriendsIsFollowing_t", + "methodname": "IsFollowing", + "methodname_flat": "SteamAPI_ISteamFriends_IsFollowing", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "FriendsEnumerateFollowingList_t", + "methodname": "EnumerateFollowingList", + "methodname_flat": "SteamAPI_ISteamFriends_EnumerateFollowingList", + "params": [ + { "paramname":"unStartIndex", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "IsClanPublic", + "methodname_flat": "SteamAPI_ISteamFriends_IsClanPublic", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "IsClanOfficialGameGroup", + "methodname_flat": "SteamAPI_ISteamFriends_IsClanOfficialGameGroup", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNumChatsWithUnreadPriorityMessages", + "methodname_flat": "SteamAPI_ISteamFriends_GetNumChatsWithUnreadPriorityMessages", + "params": [], + "returntype": "int" + }, + { + "methodname": "ActivateGameOverlayRemotePlayTogetherInviteDialog", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "RegisterProtocolInOverlayBrowser", + "methodname_flat": "SteamAPI_ISteamFriends_RegisterProtocolInOverlayBrowser", + "params": [ + { "paramname":"pchProtocol", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "ActivateGameOverlayInviteDialogConnectString", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialogConnectString", + "params": [ + { "paramname":"pchConnectString", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "callresult": "EquippedProfileItems_t", + "methodname": "RequestEquippedProfileItems", + "methodname_flat": "SteamAPI_ISteamFriends_RequestEquippedProfileItems", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "BHasEquippedProfileItem", + "methodname_flat": "SteamAPI_ISteamFriends_BHasEquippedProfileItem", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"itemType", "paramtype":"ECommunityProfileItemType" } + ], + "returntype": "bool" + }, + { + "methodname": "GetProfileItemPropertyString", + "methodname_flat": "SteamAPI_ISteamFriends_GetProfileItemPropertyString", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"itemType", "paramtype":"ECommunityProfileItemType" }, + { "paramname":"prop", "paramtype":"ECommunityProfileItemProperty" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetProfileItemPropertyUint", + "methodname_flat": "SteamAPI_ISteamFriends_GetProfileItemPropertyUint", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"itemType", "paramtype":"ECommunityProfileItemType" }, + { "paramname":"prop", "paramtype":"ECommunityProfileItemProperty" } + ], + "returntype": "uint32" + } + ], + "version_string": "SteamFriends017" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamUtils", + "name_flat": "SteamAPI_SteamUtils_v010" + }, + { + "kind": "gameserver", + "name": "SteamGameServerUtils", + "name_flat": "SteamAPI_SteamGameServerUtils_v010" + } + ], + "classname": "ISteamUtils", + "fields": [], + "methods": [ + { + "methodname": "GetSecondsSinceAppActive", + "methodname_flat": "SteamAPI_ISteamUtils_GetSecondsSinceAppActive", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetSecondsSinceComputerActive", + "methodname_flat": "SteamAPI_ISteamUtils_GetSecondsSinceComputerActive", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetConnectedUniverse", + "methodname_flat": "SteamAPI_ISteamUtils_GetConnectedUniverse", + "params": [], + "returntype": "EUniverse" + }, + { + "methodname": "GetServerRealTime", + "methodname_flat": "SteamAPI_ISteamUtils_GetServerRealTime", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetIPCountry", + "methodname_flat": "SteamAPI_ISteamUtils_GetIPCountry", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "GetImageSize", + "methodname_flat": "SteamAPI_ISteamUtils_GetImageSize", + "params": [ + { "paramname":"iImage", "paramtype":"int" }, + { "paramname":"pnWidth", "paramtype":"uint32 *" }, + { "paramname":"pnHeight", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetImageRGBA", + "methodname_flat": "SteamAPI_ISteamUtils_GetImageRGBA", + "params": [ + { "paramname":"iImage", "paramtype":"int" }, + { "paramname":"pubDest", "paramtype":"uint8 *" }, + { "paramname":"nDestBufferSize", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetCurrentBatteryPower", + "methodname_flat": "SteamAPI_ISteamUtils_GetCurrentBatteryPower", + "params": [], + "returntype": "uint8" + }, + { + "methodname": "GetAppID", + "methodname_flat": "SteamAPI_ISteamUtils_GetAppID", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetOverlayNotificationPosition", + "methodname_flat": "SteamAPI_ISteamUtils_SetOverlayNotificationPosition", + "params": [ + { "paramname":"eNotificationPosition", "paramtype":"ENotificationPosition" } + ], + "returntype": "void" + }, + { + "methodname": "IsAPICallCompleted", + "methodname_flat": "SteamAPI_ISteamUtils_IsAPICallCompleted", + "params": [ + { "paramname":"hSteamAPICall", "paramtype":"SteamAPICall_t" }, + { "paramname":"pbFailed", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAPICallFailureReason", + "methodname_flat": "SteamAPI_ISteamUtils_GetAPICallFailureReason", + "params": [ + { "paramname":"hSteamAPICall", "paramtype":"SteamAPICall_t" } + ], + "returntype": "ESteamAPICallFailure" + }, + { + "methodname": "GetAPICallResult", + "methodname_flat": "SteamAPI_ISteamUtils_GetAPICallResult", + "params": [ + { "paramname":"hSteamAPICall", "paramtype":"SteamAPICall_t" }, + { "paramname":"pCallback", "paramtype":"void *" }, + { "paramname":"cubCallback", "paramtype":"int" }, + { "paramname":"iCallbackExpected", "paramtype":"int" }, + { "paramname":"pbFailed", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetIPCCallCount", + "methodname_flat": "SteamAPI_ISteamUtils_GetIPCCallCount", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetWarningMessageHook", + "methodname_flat": "SteamAPI_ISteamUtils_SetWarningMessageHook", + "params": [ + { "paramname":"pFunction", "paramtype":"SteamAPIWarningMessageHook_t" } + ], + "returntype": "void" + }, + { + "methodname": "IsOverlayEnabled", + "methodname_flat": "SteamAPI_ISteamUtils_IsOverlayEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BOverlayNeedsPresent", + "methodname_flat": "SteamAPI_ISteamUtils_BOverlayNeedsPresent", + "params": [], + "returntype": "bool" + }, + { + "callresult": "CheckFileSignature_t", + "methodname": "CheckFileSignature", + "methodname_flat": "SteamAPI_ISteamUtils_CheckFileSignature", + "params": [ + { "paramname":"szFileName", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "ShowGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_ShowGamepadTextInput", + "params": [ + { "paramname":"eInputMode", "paramtype":"EGamepadTextInputMode" }, + { "paramname":"eLineInputMode", "paramtype":"EGamepadTextInputLineMode" }, + { "paramname":"pchDescription", "paramtype":"const char *" }, + { "paramname":"unCharMax", "paramtype":"uint32" }, + { "paramname":"pchExistingText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetEnteredGamepadTextLength", + "methodname_flat": "SteamAPI_ISteamUtils_GetEnteredGamepadTextLength", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetEnteredGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_GetEnteredGamepadTextInput", + "params": [ + { "paramname":"pchText", "paramtype":"char *" }, + { "paramname":"cchText", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetSteamUILanguage", + "methodname_flat": "SteamAPI_ISteamUtils_GetSteamUILanguage", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "IsSteamRunningInVR", + "methodname_flat": "SteamAPI_ISteamUtils_IsSteamRunningInVR", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetOverlayNotificationInset", + "methodname_flat": "SteamAPI_ISteamUtils_SetOverlayNotificationInset", + "params": [ + { "paramname":"nHorizontalInset", "paramtype":"int" }, + { "paramname":"nVerticalInset", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "IsSteamInBigPictureMode", + "methodname_flat": "SteamAPI_ISteamUtils_IsSteamInBigPictureMode", + "params": [], + "returntype": "bool" + }, + { + "methodname": "StartVRDashboard", + "methodname_flat": "SteamAPI_ISteamUtils_StartVRDashboard", + "params": [], + "returntype": "void" + }, + { + "methodname": "IsVRHeadsetStreamingEnabled", + "methodname_flat": "SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetVRHeadsetStreamingEnabled", + "methodname_flat": "SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled", + "params": [ + { "paramname":"bEnabled", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "IsSteamChinaLauncher", + "methodname_flat": "SteamAPI_ISteamUtils_IsSteamChinaLauncher", + "params": [], + "returntype": "bool" + }, + { + "methodname": "InitFilterText", + "methodname_flat": "SteamAPI_ISteamUtils_InitFilterText", + "params": [ + { "paramname":"unFilterOptions", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "FilterText", + "methodname_flat": "SteamAPI_ISteamUtils_FilterText", + "params": [ + { "paramname":"eContext", "paramtype":"ETextFilteringContext" }, + { "paramname":"sourceSteamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchInputMessage", "paramtype":"const char *" }, + { "paramname":"pchOutFilteredText", "paramtype":"char *" }, + { "paramname":"nByteSizeOutFilteredText", "paramtype":"uint32" } + ], + "returntype": "int" + }, + { + "methodname": "GetIPv6ConnectivityState", + "methodname_flat": "SteamAPI_ISteamUtils_GetIPv6ConnectivityState", + "params": [ + { "paramname":"eProtocol", "paramtype":"ESteamIPv6ConnectivityProtocol" } + ], + "returntype": "ESteamIPv6ConnectivityState" + }, + { + "methodname": "IsSteamRunningOnSteamDeck", + "methodname_flat": "SteamAPI_ISteamUtils_IsSteamRunningOnSteamDeck", + "params": [], + "returntype": "bool" + }, + { + "methodname": "ShowFloatingGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_ShowFloatingGamepadTextInput", + "params": [ + { "paramname":"eKeyboardMode", "paramtype":"EFloatingGamepadTextInputMode" }, + { "paramname":"nTextFieldXPosition", "paramtype":"int" }, + { "paramname":"nTextFieldYPosition", "paramtype":"int" }, + { "paramname":"nTextFieldWidth", "paramtype":"int" }, + { "paramname":"nTextFieldHeight", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGameLauncherMode", + "methodname_flat": "SteamAPI_ISteamUtils_SetGameLauncherMode", + "params": [ + { "paramname":"bLauncherMode", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "DismissFloatingGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_DismissFloatingGamepadTextInput", + "params": [], + "returntype": "bool" + }, + { + "methodname": "DismissGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_DismissGamepadTextInput", + "params": [], + "returntype": "bool" + } + ], + "version_string": "SteamUtils010" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamMatchmaking", + "name_flat": "SteamAPI_SteamMatchmaking_v009" + } + ], + "classname": "ISteamMatchmaking", + "fields": [], + "methods": [ + { + "methodname": "GetFavoriteGameCount", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetFavoriteGameCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetFavoriteGame", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetFavoriteGame", + "params": [ + { "paramname":"iGame", "paramtype":"int" }, + { "paramname":"pnAppID", "paramtype":"AppId_t *" }, + { "paramname":"pnIP", "paramtype":"uint32 *" }, + { "paramname":"pnConnPort", "paramtype":"uint16 *" }, + { "paramname":"pnQueryPort", "paramtype":"uint16 *" }, + { "paramname":"punFlags", "paramtype":"uint32 *" }, + { "paramname":"pRTime32LastPlayedOnServer", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddFavoriteGame", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddFavoriteGame", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" }, + { "paramname":"nIP", "paramtype":"uint32" }, + { "paramname":"nConnPort", "paramtype":"uint16" }, + { "paramname":"nQueryPort", "paramtype":"uint16" }, + { "paramname":"unFlags", "paramtype":"uint32" }, + { "paramname":"rTime32LastPlayedOnServer", "paramtype":"uint32" } + ], + "returntype": "int" + }, + { + "methodname": "RemoveFavoriteGame", + "methodname_flat": "SteamAPI_ISteamMatchmaking_RemoveFavoriteGame", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" }, + { "paramname":"nIP", "paramtype":"uint32" }, + { "paramname":"nConnPort", "paramtype":"uint16" }, + { "paramname":"nQueryPort", "paramtype":"uint16" }, + { "paramname":"unFlags", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "callresult": "LobbyMatchList_t", + "methodname": "RequestLobbyList", + "methodname_flat": "SteamAPI_ISteamMatchmaking_RequestLobbyList", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "AddRequestLobbyListStringFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter", + "params": [ + { "paramname":"pchKeyToMatch", "paramtype":"const char *" }, + { "paramname":"pchValueToMatch", "paramtype":"const char *" }, + { "paramname":"eComparisonType", "paramtype":"ELobbyComparison" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListNumericalFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter", + "params": [ + { "paramname":"pchKeyToMatch", "paramtype":"const char *" }, + { "paramname":"nValueToMatch", "paramtype":"int" }, + { "paramname":"eComparisonType", "paramtype":"ELobbyComparison" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListNearValueFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter", + "params": [ + { "paramname":"pchKeyToMatch", "paramtype":"const char *" }, + { "paramname":"nValueToBeCloseTo", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListFilterSlotsAvailable", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable", + "params": [ + { "paramname":"nSlotsAvailable", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListDistanceFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter", + "params": [ + { "paramname":"eLobbyDistanceFilter", "paramtype":"ELobbyDistanceFilter" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListResultCountFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter", + "params": [ + { "paramname":"cMaxResults", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListCompatibleMembersFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "GetLobbyByIndex", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyByIndex", + "params": [ + { "paramname":"iLobby", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "callresult": "LobbyCreated_t", + "methodname": "CreateLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_CreateLobby", + "params": [ + { "paramname":"eLobbyType", "paramtype":"ELobbyType" }, + { "paramname":"cMaxMembers", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "LobbyEnter_t", + "methodname": "JoinLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_JoinLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "LeaveLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_LeaveLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "InviteUserToLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_InviteUserToLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDInvitee", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNumLobbyMembers", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetNumLobbyMembers", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetLobbyMemberByIndex", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iMember", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetLobbyData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "SetLobbyData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyDataCount", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyDataCount", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetLobbyDataByIndex", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iLobbyData", "paramtype":"int" }, + { "paramname":"pchKey", "paramtype":"char *" }, + { "paramname":"cchKeyBufferSize", "paramtype":"int" }, + { "paramname":"pchValue", "paramtype":"char *" }, + { "paramname":"cchValueBufferSize", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "DeleteLobbyData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_DeleteLobbyData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyMemberData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyMemberData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "SetLobbyMemberData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyMemberData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SendLobbyChatMsg", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SendLobbyChatMsg", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pvMsgBody", "paramtype":"const void *" }, + { "paramname":"cubMsgBody", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyChatEntry", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyChatEntry", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iChatID", "paramtype":"int" }, + { + "out_struct": "", + "paramname": "pSteamIDUser", + "paramtype": "CSteamID *" + }, + { "paramname":"pvData", "paramtype":"void *" }, + { "paramname":"cubData", "paramtype":"int" }, + { "paramname":"peChatEntryType", "paramtype":"EChatEntryType *" } + ], + "returntype": "int" + }, + { + "methodname": "RequestLobbyData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_RequestLobbyData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "SetLobbyGameServer", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyGameServer", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"unGameServerIP", "paramtype":"uint32" }, + { "paramname":"unGameServerPort", "paramtype":"uint16" }, + { "paramname":"steamIDGameServer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "GetLobbyGameServer", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyGameServer", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"punGameServerIP", "paramtype":"uint32 *" }, + { "paramname":"punGameServerPort", "paramtype":"uint16 *" }, + { + "out_struct": "", + "paramname": "psteamIDGameServer", + "paramtype": "CSteamID *" + } + ], + "returntype": "bool" + }, + { + "methodname": "SetLobbyMemberLimit", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"cMaxMembers", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyMemberLimit", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "SetLobbyType", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyType", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"eLobbyType", "paramtype":"ELobbyType" } + ], + "returntype": "bool" + }, + { + "methodname": "SetLobbyJoinable", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyJoinable", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"bLobbyJoinable", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyOwner", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyOwner", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "SetLobbyOwner", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyOwner", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDNewOwner", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "SetLinkedLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLinkedLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDLobbyDependent", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamMatchMaking009" + }, + { + "classname": "ISteamMatchmakingServerListResponse", + "fields": [], + "methods": [ + { + "methodname": "ServerResponded", + "methodname_flat": "SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"iServer", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "ServerFailedToRespond", + "methodname_flat": "SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"iServer", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "RefreshComplete", + "methodname_flat": "SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"response", "paramtype":"EMatchMakingServerResponse" } + ], + "returntype": "void" + } + ] + }, + { + "classname": "ISteamMatchmakingPingResponse", + "fields": [], + "methods": [ + { + "methodname": "ServerResponded", + "methodname_flat": "SteamAPI_ISteamMatchmakingPingResponse_ServerResponded", + "params": [ + { "paramname":"server", "paramtype":"gameserveritem_t &" } + ], + "returntype": "void" + }, + { + "methodname": "ServerFailedToRespond", + "methodname_flat": "SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond", + "params": [], + "returntype": "void" + } + ] + }, + { + "classname": "ISteamMatchmakingPlayersResponse", + "fields": [], + "methods": [ + { + "methodname": "AddPlayerToList", + "methodname_flat": "SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"nScore", "paramtype":"int" }, + { "paramname":"flTimePlayed", "paramtype":"float" } + ], + "returntype": "void" + }, + { + "methodname": "PlayersFailedToRespond", + "methodname_flat": "SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond", + "params": [], + "returntype": "void" + }, + { + "methodname": "PlayersRefreshComplete", + "methodname_flat": "SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete", + "params": [], + "returntype": "void" + } + ] + }, + { + "classname": "ISteamMatchmakingRulesResponse", + "fields": [], + "methods": [ + { + "methodname": "RulesResponded", + "methodname_flat": "SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded", + "params": [ + { "paramname":"pchRule", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "RulesFailedToRespond", + "methodname_flat": "SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond", + "params": [], + "returntype": "void" + }, + { + "methodname": "RulesRefreshComplete", + "methodname_flat": "SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete", + "params": [], + "returntype": "void" + } + ] + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamMatchmakingServers", + "name_flat": "SteamAPI_SteamMatchmakingServers_v002" + } + ], + "classname": "ISteamMatchmakingServers", + "fields": [], + "methods": [ + { + "methodname": "RequestInternetServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestInternetServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestLANServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestLANServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestFriendsServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestFavoritesServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestHistoryServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestSpectatorServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "ReleaseRequest", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_ReleaseRequest", + "params": [ + { "paramname":"hServerListRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "void" + }, + { + "methodname": "GetServerDetails", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_GetServerDetails", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"iServer", "paramtype":"int" } + ], + "returntype": "gameserveritem_t *" + }, + { + "methodname": "CancelQuery", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_CancelQuery", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "void" + }, + { + "methodname": "RefreshQuery", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RefreshQuery", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "void" + }, + { + "methodname": "IsRefreshing", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_IsRefreshing", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "bool" + }, + { + "methodname": "GetServerCount", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_GetServerCount", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "int" + }, + { + "methodname": "RefreshServer", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RefreshServer", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"iServer", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "PingServer", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_PingServer", + "params": [ + { "paramname":"unIP", "paramtype":"uint32" }, + { "paramname":"usPort", "paramtype":"uint16" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingPingResponse *" } + ], + "returntype": "HServerQuery" + }, + { + "methodname": "PlayerDetails", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_PlayerDetails", + "params": [ + { "paramname":"unIP", "paramtype":"uint32" }, + { "paramname":"usPort", "paramtype":"uint16" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingPlayersResponse *" } + ], + "returntype": "HServerQuery" + }, + { + "methodname": "ServerRules", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_ServerRules", + "params": [ + { "paramname":"unIP", "paramtype":"uint32" }, + { "paramname":"usPort", "paramtype":"uint16" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingRulesResponse *" } + ], + "returntype": "HServerQuery" + }, + { + "methodname": "CancelServerQuery", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_CancelServerQuery", + "params": [ + { "paramname":"hServerQuery", "paramtype":"HServerQuery" } + ], + "returntype": "void" + } + ], + "version_string": "SteamMatchMakingServers002" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamGameSearch", + "name_flat": "SteamAPI_SteamGameSearch_v001" + } + ], + "classname": "ISteamGameSearch", + "fields": [], + "methods": [ + { + "methodname": "AddGameSearchParams", + "methodname_flat": "SteamAPI_ISteamGameSearch_AddGameSearchParams", + "params": [ + { "paramname":"pchKeyToFind", "paramtype":"const char *" }, + { "paramname":"pchValuesToFind", "paramtype":"const char *" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SearchForGameWithLobby", + "methodname_flat": "SteamAPI_ISteamGameSearch_SearchForGameWithLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"nPlayerMin", "paramtype":"int" }, + { "paramname":"nPlayerMax", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SearchForGameSolo", + "methodname_flat": "SteamAPI_ISteamGameSearch_SearchForGameSolo", + "params": [ + { "paramname":"nPlayerMin", "paramtype":"int" }, + { "paramname":"nPlayerMax", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "AcceptGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_AcceptGame", + "params": [], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "DeclineGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_DeclineGame", + "params": [], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "RetrieveConnectionDetails", + "methodname_flat": "SteamAPI_ISteamGameSearch_RetrieveConnectionDetails", + "params": [ + { "paramname":"steamIDHost", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchConnectionDetails", "paramtype":"char *" }, + { "paramname":"cubConnectionDetails", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "EndGameSearch", + "methodname_flat": "SteamAPI_ISteamGameSearch_EndGameSearch", + "params": [], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SetGameHostParams", + "methodname_flat": "SteamAPI_ISteamGameSearch_SetGameHostParams", + "params": [ + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SetConnectionDetails", + "methodname_flat": "SteamAPI_ISteamGameSearch_SetConnectionDetails", + "params": [ + { "paramname":"pchConnectionDetails", "paramtype":"const char *" }, + { "paramname":"cubConnectionDetails", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "RequestPlayersForGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_RequestPlayersForGame", + "params": [ + { "paramname":"nPlayerMin", "paramtype":"int" }, + { "paramname":"nPlayerMax", "paramtype":"int" }, + { "paramname":"nMaxTeamSize", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "HostConfirmGameStart", + "methodname_flat": "SteamAPI_ISteamGameSearch_HostConfirmGameStart", + "params": [ + { "paramname":"ullUniqueGameID", "paramtype":"uint64" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "CancelRequestPlayersForGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_CancelRequestPlayersForGame", + "params": [], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SubmitPlayerResult", + "methodname_flat": "SteamAPI_ISteamGameSearch_SubmitPlayerResult", + "params": [ + { "paramname":"ullUniqueGameID", "paramtype":"uint64" }, + { "paramname":"steamIDPlayer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"EPlayerResult", "paramtype":"EPlayerResult_t" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "EndGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_EndGame", + "params": [ + { "paramname":"ullUniqueGameID", "paramtype":"uint64" } + ], + "returntype": "EGameSearchErrorCode_t" + } + ], + "version_string": "SteamMatchGameSearch001" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamParties", + "name_flat": "SteamAPI_SteamParties_v002" + } + ], + "classname": "ISteamParties", + "fields": [], + "methods": [ + { + "methodname": "GetNumActiveBeacons", + "methodname_flat": "SteamAPI_ISteamParties_GetNumActiveBeacons", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetBeaconByIndex", + "methodname_flat": "SteamAPI_ISteamParties_GetBeaconByIndex", + "params": [ + { "paramname":"unIndex", "paramtype":"uint32" } + ], + "returntype": "PartyBeaconID_t" + }, + { + "methodname": "GetBeaconDetails", + "methodname_flat": "SteamAPI_ISteamParties_GetBeaconDetails", + "params": [ + { "paramname":"ulBeaconID", "paramtype":"PartyBeaconID_t" }, + { "paramname":"pSteamIDBeaconOwner", "paramtype":"CSteamID *" }, + { + "out_struct": "", + "paramname": "pLocation", + "paramtype": "SteamPartyBeaconLocation_t *" + }, + { + "out_string_count": "cchMetadata", + "paramname": "pchMetadata", + "paramtype": "char *" + }, + { "paramname":"cchMetadata", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "callresult": "JoinPartyCallback_t", + "methodname": "JoinParty", + "methodname_flat": "SteamAPI_ISteamParties_JoinParty", + "params": [ + { "paramname":"ulBeaconID", "paramtype":"PartyBeaconID_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetNumAvailableBeaconLocations", + "methodname_flat": "SteamAPI_ISteamParties_GetNumAvailableBeaconLocations", + "params": [ + { "paramname":"puNumLocations", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAvailableBeaconLocations", + "methodname_flat": "SteamAPI_ISteamParties_GetAvailableBeaconLocations", + "params": [ + { "paramname":"pLocationList", "paramtype":"SteamPartyBeaconLocation_t *" }, + { "paramname":"uMaxNumLocations", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "callresult": "CreateBeaconCallback_t", + "methodname": "CreateBeacon", + "methodname_flat": "SteamAPI_ISteamParties_CreateBeacon", + "params": [ + { "paramname":"unOpenSlots", "paramtype":"uint32" }, + { "paramname":"pBeaconLocation", "paramtype":"SteamPartyBeaconLocation_t *" }, + { "paramname":"pchConnectString", "paramtype":"const char *" }, + { "paramname":"pchMetadata", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "OnReservationCompleted", + "methodname_flat": "SteamAPI_ISteamParties_OnReservationCompleted", + "params": [ + { "paramname":"ulBeacon", "paramtype":"PartyBeaconID_t" }, + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "CancelReservation", + "methodname_flat": "SteamAPI_ISteamParties_CancelReservation", + "params": [ + { "paramname":"ulBeacon", "paramtype":"PartyBeaconID_t" }, + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "callresult": "ChangeNumOpenSlotsCallback_t", + "methodname": "ChangeNumOpenSlots", + "methodname_flat": "SteamAPI_ISteamParties_ChangeNumOpenSlots", + "params": [ + { "paramname":"ulBeacon", "paramtype":"PartyBeaconID_t" }, + { "paramname":"unOpenSlots", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "DestroyBeacon", + "methodname_flat": "SteamAPI_ISteamParties_DestroyBeacon", + "params": [ + { "paramname":"ulBeacon", "paramtype":"PartyBeaconID_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetBeaconLocationData", + "methodname_flat": "SteamAPI_ISteamParties_GetBeaconLocationData", + "params": [ + { "paramname":"BeaconLocation", "paramtype":"SteamPartyBeaconLocation_t" }, + { "paramname":"eData", "paramtype":"ESteamPartyBeaconLocationData" }, + { + "out_string_count": "cchDataStringOut", + "paramname": "pchDataStringOut", + "paramtype": "char *" + }, + { "paramname":"cchDataStringOut", "paramtype":"int" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamParties002" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamRemoteStorage", + "name_flat": "SteamAPI_SteamRemoteStorage_v016" + } + ], + "classname": "ISteamRemoteStorage", + "fields": [], + "methods": [ + { + "methodname": "FileWrite", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWrite", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"pvData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "FileRead", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileRead", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"pvData", "paramtype":"void *" }, + { "paramname":"cubDataToRead", "paramtype":"int32" } + ], + "returntype": "int32" + }, + { + "callresult": "RemoteStorageFileWriteAsyncComplete_t", + "methodname": "FileWriteAsync", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteAsync", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"pvData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageFileReadAsyncComplete_t", + "methodname": "FileReadAsync", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileReadAsync", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"nOffset", "paramtype":"uint32" }, + { "paramname":"cubToRead", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "FileReadAsyncComplete", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete", + "params": [ + { "paramname":"hReadCall", "paramtype":"SteamAPICall_t" }, + { "paramname":"pvBuffer", "paramtype":"void *" }, + { "paramname":"cubToRead", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "FileForget", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileForget", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "FileDelete", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileDelete", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "callresult": "RemoteStorageFileShareResult_t", + "methodname": "FileShare", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileShare", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "SetSyncPlatforms", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_SetSyncPlatforms", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"eRemoteStoragePlatform", "paramtype":"ERemoteStoragePlatform" } + ], + "returntype": "bool" + }, + { + "methodname": "FileWriteStreamOpen", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "UGCFileWriteStreamHandle_t" + }, + { + "methodname": "FileWriteStreamWriteChunk", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk", + "params": [ + { "paramname":"writeHandle", "paramtype":"UGCFileWriteStreamHandle_t" }, + { "paramname":"pvData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "FileWriteStreamClose", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteStreamClose", + "params": [ + { "paramname":"writeHandle", "paramtype":"UGCFileWriteStreamHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "FileWriteStreamCancel", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel", + "params": [ + { "paramname":"writeHandle", "paramtype":"UGCFileWriteStreamHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "FileExists", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileExists", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "FilePersisted", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FilePersisted", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetFileSize", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetFileSize", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "int32" + }, + { + "methodname": "GetFileTimestamp", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetFileTimestamp", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "int64" + }, + { + "methodname": "GetSyncPlatforms", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetSyncPlatforms", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "ERemoteStoragePlatform" + }, + { + "methodname": "GetFileCount", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetFileCount", + "params": [], + "returntype": "int32" + }, + { + "methodname": "GetFileNameAndSize", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetFileNameAndSize", + "params": [ + { "paramname":"iFile", "paramtype":"int" }, + { "paramname":"pnFileSizeInBytes", "paramtype":"int32 *" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetQuota", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetQuota", + "params": [ + { "paramname":"pnTotalBytes", "paramtype":"uint64 *" }, + { "paramname":"puAvailableBytes", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "IsCloudEnabledForAccount", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount", + "params": [], + "returntype": "bool" + }, + { + "methodname": "IsCloudEnabledForApp", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetCloudEnabledForApp", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp", + "params": [ + { "paramname":"bEnabled", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "callresult": "RemoteStorageDownloadUGCResult_t", + "methodname": "UGCDownload", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UGCDownload", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"unPriority", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetUGCDownloadProgress", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"pnBytesDownloaded", "paramtype":"int32 *" }, + { "paramname":"pnBytesExpected", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUGCDetails", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetUGCDetails", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"pnAppID", "paramtype":"AppId_t *" }, + { + "out_string": "", + "paramname": "ppchName", + "paramtype": "char **" + }, + { "paramname":"pnFileSizeInBytes", "paramtype":"int32 *" }, + { + "out_struct": "", + "paramname": "pSteamIDOwner", + "paramtype": "CSteamID *" + } + ], + "returntype": "bool" + }, + { + "methodname": "UGCRead", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UGCRead", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"pvData", "paramtype":"void *" }, + { "paramname":"cubDataToRead", "paramtype":"int32" }, + { "paramname":"cOffset", "paramtype":"uint32" }, + { "paramname":"eAction", "paramtype":"EUGCReadAction" } + ], + "returntype": "int32" + }, + { + "methodname": "GetCachedUGCCount", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetCachedUGCCount", + "params": [], + "returntype": "int32" + }, + { + "methodname": "GetCachedUGCHandle", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle", + "params": [ + { "paramname":"iCachedContent", "paramtype":"int32" } + ], + "returntype": "UGCHandle_t" + }, + { + "callresult": "RemoteStoragePublishFileProgress_t", + "methodname": "PublishWorkshopFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_PublishWorkshopFile", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"pchPreviewFile", "paramtype":"const char *" }, + { "paramname":"nConsumerAppId", "paramtype":"AppId_t" }, + { "paramname":"pchTitle", "paramtype":"const char *" }, + { "paramname":"pchDescription", "paramtype":"const char *" }, + { "paramname":"eVisibility", "paramtype":"ERemoteStoragePublishedFileVisibility" }, + { "paramname":"pTags", "paramtype":"SteamParamStringArray_t *" }, + { "paramname":"eWorkshopFileType", "paramtype":"EWorkshopFileType" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "CreatePublishedFileUpdateRequest", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "PublishedFileUpdateHandle_t" + }, + { + "methodname": "UpdatePublishedFileFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFilePreviewFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchPreviewFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFileTitle", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchTitle", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFileDescription", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchDescription", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFileVisibility", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"eVisibility", "paramtype":"ERemoteStoragePublishedFileVisibility" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFileTags", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pTags", "paramtype":"SteamParamStringArray_t *" } + ], + "returntype": "bool" + }, + { + "callresult": "RemoteStorageUpdatePublishedFileResult_t", + "methodname": "CommitPublishedFileUpdate", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageGetPublishedFileDetailsResult_t", + "methodname": "GetPublishedFileDetails", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" }, + { "paramname":"unMaxSecondsOld", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageDeletePublishedFileResult_t", + "methodname": "DeletePublishedFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_DeletePublishedFile", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumerateUserPublishedFilesResult_t", + "methodname": "EnumerateUserPublishedFiles", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles", + "params": [ + { "paramname":"unStartIndex", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageSubscribePublishedFileResult_t", + "methodname": "SubscribePublishedFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_SubscribePublishedFile", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumerateUserSubscribedFilesResult_t", + "methodname": "EnumerateUserSubscribedFiles", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles", + "params": [ + { "paramname":"unStartIndex", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageUnsubscribePublishedFileResult_t", + "methodname": "UnsubscribePublishedFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "UpdatePublishedFileSetChangeDescription", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchChangeDescription", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "callresult": "RemoteStorageGetPublishedItemVoteDetailsResult_t", + "methodname": "GetPublishedItemVoteDetails", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageUpdateUserPublishedItemVoteResult_t", + "methodname": "UpdateUserPublishedItemVote", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" }, + { "paramname":"bVoteUp", "paramtype":"bool" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageGetPublishedItemVoteDetailsResult_t", + "methodname": "GetUserPublishedItemVoteDetails", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumerateUserPublishedFilesResult_t", + "methodname": "EnumerateUserSharedWorkshopFiles", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles", + "params": [ + { "paramname":"steamId", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"unStartIndex", "paramtype":"uint32" }, + { "paramname":"pRequiredTags", "paramtype":"SteamParamStringArray_t *" }, + { "paramname":"pExcludedTags", "paramtype":"SteamParamStringArray_t *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStoragePublishFileProgress_t", + "methodname": "PublishVideo", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_PublishVideo", + "params": [ + { "paramname":"eVideoProvider", "paramtype":"EWorkshopVideoProvider" }, + { "paramname":"pchVideoAccount", "paramtype":"const char *" }, + { "paramname":"pchVideoIdentifier", "paramtype":"const char *" }, + { "paramname":"pchPreviewFile", "paramtype":"const char *" }, + { "paramname":"nConsumerAppId", "paramtype":"AppId_t" }, + { "paramname":"pchTitle", "paramtype":"const char *" }, + { "paramname":"pchDescription", "paramtype":"const char *" }, + { "paramname":"eVisibility", "paramtype":"ERemoteStoragePublishedFileVisibility" }, + { "paramname":"pTags", "paramtype":"SteamParamStringArray_t *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageSetUserPublishedFileActionResult_t", + "methodname": "SetUserPublishedFileAction", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" }, + { "paramname":"eAction", "paramtype":"EWorkshopFileAction" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumeratePublishedFilesByUserActionResult_t", + "methodname": "EnumeratePublishedFilesByUserAction", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction", + "params": [ + { "paramname":"eAction", "paramtype":"EWorkshopFileAction" }, + { "paramname":"unStartIndex", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumerateWorkshopFilesResult_t", + "methodname": "EnumeratePublishedWorkshopFiles", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles", + "params": [ + { "paramname":"eEnumerationType", "paramtype":"EWorkshopEnumerationType" }, + { "paramname":"unStartIndex", "paramtype":"uint32" }, + { "paramname":"unCount", "paramtype":"uint32" }, + { "paramname":"unDays", "paramtype":"uint32" }, + { "paramname":"pTags", "paramtype":"SteamParamStringArray_t *" }, + { "paramname":"pUserTags", "paramtype":"SteamParamStringArray_t *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageDownloadUGCResult_t", + "methodname": "UGCDownloadToLocation", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"pchLocation", "paramtype":"const char *" }, + { "paramname":"unPriority", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetLocalFileChangeCount", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetLocalFileChangeCount", + "params": [], + "returntype": "int32" + }, + { + "methodname": "GetLocalFileChange", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetLocalFileChange", + "params": [ + { "paramname":"iFile", "paramtype":"int" }, + { "paramname":"pEChangeType", "paramtype":"ERemoteStorageLocalFileChange *" }, + { "paramname":"pEFilePathType", "paramtype":"ERemoteStorageFilePathType *" } + ], + "returntype": "const char *" + }, + { + "methodname": "BeginFileWriteBatch", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_BeginFileWriteBatch", + "params": [], + "returntype": "bool" + }, + { + "methodname": "EndFileWriteBatch", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EndFileWriteBatch", + "params": [], + "returntype": "bool" + } + ], + "version_string": "STEAMREMOTESTORAGE_INTERFACE_VERSION016" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamUserStats", + "name_flat": "SteamAPI_SteamUserStats_v012" + } + ], + "classname": "ISteamUserStats", + "fields": [], + "methods": [ + { + "callback": "UserStatsReceived_t", + "methodname": "RequestCurrentStats", + "methodname_flat": "SteamAPI_ISteamUserStats_RequestCurrentStats", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetStatInt32", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetStatFloat", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetStat", + "methodname_flat": "SteamAPI_ISteamUserStats_SetStatInt32", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"nData", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetStat", + "methodname_flat": "SteamAPI_ISteamUserStats_SetStatFloat", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"fData", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateAvgRateStat", + "methodname_flat": "SteamAPI_ISteamUserStats_UpdateAvgRateStat", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"flCountThisSession", "paramtype":"float" }, + { "paramname":"dSessionLength", "paramtype":"double" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAchievement", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievement", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetAchievement", + "methodname_flat": "SteamAPI_ISteamUserStats_SetAchievement", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "ClearAchievement", + "methodname_flat": "SteamAPI_ISteamUserStats_ClearAchievement", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAchievementAndUnlockTime", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" }, + { "paramname":"punUnlockTime", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "StoreStats", + "methodname_flat": "SteamAPI_ISteamUserStats_StoreStats", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetAchievementIcon", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementIcon", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "int" + }, + { + "methodname": "GetAchievementDisplayAttribute", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "IndicateAchievementProgress", + "methodname_flat": "SteamAPI_ISteamUserStats_IndicateAchievementProgress", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"nCurProgress", "paramtype":"uint32" }, + { "paramname":"nMaxProgress", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNumAchievements", + "methodname_flat": "SteamAPI_ISteamUserStats_GetNumAchievements", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetAchievementName", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementName", + "params": [ + { "paramname":"iAchievement", "paramtype":"uint32" } + ], + "returntype": "const char *" + }, + { + "callresult": "UserStatsReceived_t", + "methodname": "RequestUserStats", + "methodname_flat": "SteamAPI_ISteamUserStats_RequestUserStats", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetUserStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetUserStatInt32", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetUserStatFloat", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserAchievement", + "methodname_flat": "SteamAPI_ISteamUserStats_GetUserAchievement", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserAchievementAndUnlockTime", + "methodname_flat": "SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" }, + { "paramname":"punUnlockTime", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "ResetAllStats", + "methodname_flat": "SteamAPI_ISteamUserStats_ResetAllStats", + "params": [ + { "paramname":"bAchievementsToo", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "callresult": "LeaderboardFindResult_t", + "methodname": "FindOrCreateLeaderboard", + "methodname_flat": "SteamAPI_ISteamUserStats_FindOrCreateLeaderboard", + "params": [ + { "paramname":"pchLeaderboardName", "paramtype":"const char *" }, + { "paramname":"eLeaderboardSortMethod", "paramtype":"ELeaderboardSortMethod" }, + { "paramname":"eLeaderboardDisplayType", "paramtype":"ELeaderboardDisplayType" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "LeaderboardFindResult_t", + "methodname": "FindLeaderboard", + "methodname_flat": "SteamAPI_ISteamUserStats_FindLeaderboard", + "params": [ + { "paramname":"pchLeaderboardName", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetLeaderboardName", + "methodname_flat": "SteamAPI_ISteamUserStats_GetLeaderboardName", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetLeaderboardEntryCount", + "methodname_flat": "SteamAPI_ISteamUserStats_GetLeaderboardEntryCount", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetLeaderboardSortMethod", + "methodname_flat": "SteamAPI_ISteamUserStats_GetLeaderboardSortMethod", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" } + ], + "returntype": "ELeaderboardSortMethod" + }, + { + "methodname": "GetLeaderboardDisplayType", + "methodname_flat": "SteamAPI_ISteamUserStats_GetLeaderboardDisplayType", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" } + ], + "returntype": "ELeaderboardDisplayType" + }, + { + "callresult": "LeaderboardScoresDownloaded_t", + "methodname": "DownloadLeaderboardEntries", + "methodname_flat": "SteamAPI_ISteamUserStats_DownloadLeaderboardEntries", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" }, + { "paramname":"eLeaderboardDataRequest", "paramtype":"ELeaderboardDataRequest" }, + { "paramname":"nRangeStart", "paramtype":"int" }, + { "paramname":"nRangeEnd", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "LeaderboardScoresDownloaded_t", + "methodname": "DownloadLeaderboardEntriesForUsers", + "methodname_flat": "SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" }, + { + "array_count": "cUsers", + "desc": "Array of users to retrieve", + "paramname": "prgUsers", + "paramtype": "CSteamID *" + }, + { "paramname":"cUsers", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetDownloadedLeaderboardEntry", + "methodname_flat": "SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry", + "params": [ + { "paramname":"hSteamLeaderboardEntries", "paramtype":"SteamLeaderboardEntries_t" }, + { "paramname":"index", "paramtype":"int" }, + { "paramname":"pLeaderboardEntry", "paramtype":"LeaderboardEntry_t *" }, + { "paramname":"pDetails", "paramtype":"int32 *" }, + { "paramname":"cDetailsMax", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "callresult": "LeaderboardScoreUploaded_t", + "methodname": "UploadLeaderboardScore", + "methodname_flat": "SteamAPI_ISteamUserStats_UploadLeaderboardScore", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" }, + { "paramname":"eLeaderboardUploadScoreMethod", "paramtype":"ELeaderboardUploadScoreMethod" }, + { "paramname":"nScore", "paramtype":"int32" }, + { "paramname":"pScoreDetails", "paramtype":"const int32 *" }, + { "paramname":"cScoreDetailsCount", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "LeaderboardUGCSet_t", + "methodname": "AttachLeaderboardUGC", + "methodname_flat": "SteamAPI_ISteamUserStats_AttachLeaderboardUGC", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" }, + { "paramname":"hUGC", "paramtype":"UGCHandle_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "NumberOfCurrentPlayers_t", + "methodname": "GetNumberOfCurrentPlayers", + "methodname_flat": "SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "GlobalAchievementPercentagesReady_t", + "methodname": "RequestGlobalAchievementPercentages", + "methodname_flat": "SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetMostAchievedAchievementInfo", + "methodname_flat": "SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo", + "params": [ + { "paramname":"pchName", "paramtype":"char *" }, + { "paramname":"unNameBufLen", "paramtype":"uint32" }, + { "paramname":"pflPercent", "paramtype":"float *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "int" + }, + { + "methodname": "GetNextMostAchievedAchievementInfo", + "methodname_flat": "SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo", + "params": [ + { "paramname":"iIteratorPrevious", "paramtype":"int" }, + { "paramname":"pchName", "paramtype":"char *" }, + { "paramname":"unNameBufLen", "paramtype":"uint32" }, + { "paramname":"pflPercent", "paramtype":"float *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "int" + }, + { + "methodname": "GetAchievementAchievedPercent", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementAchievedPercent", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pflPercent", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "callresult": "GlobalStatsReceived_t", + "methodname": "RequestGlobalStats", + "methodname_flat": "SteamAPI_ISteamUserStats_RequestGlobalStats", + "params": [ + { "paramname":"nHistoryDays", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetGlobalStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetGlobalStatInt64", + "params": [ + { "paramname":"pchStatName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"int64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGlobalStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetGlobalStatDouble", + "params": [ + { "paramname":"pchStatName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"double *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGlobalStatHistory", + "methodname_flat": "SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64", + "params": [ + { "paramname":"pchStatName", "paramtype":"const char *" }, + { + "array_count": "cubData", + "paramname": "pData", + "paramtype": "int64 *" + }, + { "paramname":"cubData", "paramtype":"uint32" } + ], + "returntype": "int32" + }, + { + "methodname": "GetGlobalStatHistory", + "methodname_flat": "SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble", + "params": [ + { "paramname":"pchStatName", "paramtype":"const char *" }, + { + "array_count": "cubData", + "paramname": "pData", + "paramtype": "double *" + }, + { "paramname":"cubData", "paramtype":"uint32" } + ], + "returntype": "int32" + }, + { + "methodname": "GetAchievementProgressLimits", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementProgressLimitsInt32", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pnMinProgress", "paramtype":"int32 *" }, + { "paramname":"pnMaxProgress", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAchievementProgressLimits", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementProgressLimitsFloat", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pfMinProgress", "paramtype":"float *" }, + { "paramname":"pfMaxProgress", "paramtype":"float *" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMUSERSTATS_INTERFACE_VERSION012" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamApps", + "name_flat": "SteamAPI_SteamApps_v008" + } + ], + "classname": "ISteamApps", + "fields": [], + "methods": [ + { + "methodname": "BIsSubscribed", + "methodname_flat": "SteamAPI_ISteamApps_BIsSubscribed", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsLowViolence", + "methodname_flat": "SteamAPI_ISteamApps_BIsLowViolence", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsCybercafe", + "methodname_flat": "SteamAPI_ISteamApps_BIsCybercafe", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsVACBanned", + "methodname_flat": "SteamAPI_ISteamApps_BIsVACBanned", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetCurrentGameLanguage", + "methodname_flat": "SteamAPI_ISteamApps_GetCurrentGameLanguage", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "GetAvailableGameLanguages", + "methodname_flat": "SteamAPI_ISteamApps_GetAvailableGameLanguages", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "BIsSubscribedApp", + "methodname_flat": "SteamAPI_ISteamApps_BIsSubscribedApp", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "BIsDlcInstalled", + "methodname_flat": "SteamAPI_ISteamApps_BIsDlcInstalled", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetEarliestPurchaseUnixTime", + "methodname_flat": "SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "BIsSubscribedFromFreeWeekend", + "methodname_flat": "SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetDLCCount", + "methodname_flat": "SteamAPI_ISteamApps_GetDLCCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "BGetDLCDataByIndex", + "methodname_flat": "SteamAPI_ISteamApps_BGetDLCDataByIndex", + "params": [ + { "paramname":"iDLC", "paramtype":"int" }, + { "paramname":"pAppID", "paramtype":"AppId_t *" }, + { "paramname":"pbAvailable", "paramtype":"bool *" }, + { "paramname":"pchName", "paramtype":"char *" }, + { "paramname":"cchNameBufferSize", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "InstallDLC", + "methodname_flat": "SteamAPI_ISteamApps_InstallDLC", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "void" + }, + { + "methodname": "UninstallDLC", + "methodname_flat": "SteamAPI_ISteamApps_UninstallDLC", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "void" + }, + { + "methodname": "RequestAppProofOfPurchaseKey", + "methodname_flat": "SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetCurrentBetaName", + "methodname_flat": "SteamAPI_ISteamApps_GetCurrentBetaName", + "params": [ + { "paramname":"pchName", "paramtype":"char *" }, + { "paramname":"cchNameBufferSize", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "MarkContentCorrupt", + "methodname_flat": "SteamAPI_ISteamApps_MarkContentCorrupt", + "params": [ + { "paramname":"bMissingFilesOnly", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "GetInstalledDepots", + "methodname_flat": "SteamAPI_ISteamApps_GetInstalledDepots", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" }, + { "paramname":"pvecDepots", "paramtype":"DepotId_t *" }, + { "paramname":"cMaxDepots", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetAppInstallDir", + "methodname_flat": "SteamAPI_ISteamApps_GetAppInstallDir", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" }, + { "paramname":"pchFolder", "paramtype":"char *" }, + { "paramname":"cchFolderBufferSize", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "BIsAppInstalled", + "methodname_flat": "SteamAPI_ISteamApps_BIsAppInstalled", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAppOwner", + "methodname_flat": "SteamAPI_ISteamApps_GetAppOwner", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetLaunchQueryParam", + "methodname_flat": "SteamAPI_ISteamApps_GetLaunchQueryParam", + "params": [ + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetDlcDownloadProgress", + "methodname_flat": "SteamAPI_ISteamApps_GetDlcDownloadProgress", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" }, + { "paramname":"punBytesDownloaded", "paramtype":"uint64 *" }, + { "paramname":"punBytesTotal", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAppBuildId", + "methodname_flat": "SteamAPI_ISteamApps_GetAppBuildId", + "params": [], + "returntype": "int" + }, + { + "methodname": "RequestAllProofOfPurchaseKeys", + "methodname_flat": "SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys", + "params": [], + "returntype": "void" + }, + { + "callresult": "FileDetailsResult_t", + "methodname": "GetFileDetails", + "methodname_flat": "SteamAPI_ISteamApps_GetFileDetails", + "params": [ + { "paramname":"pszFileName", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetLaunchCommandLine", + "methodname_flat": "SteamAPI_ISteamApps_GetLaunchCommandLine", + "params": [ + { "paramname":"pszCommandLine", "paramtype":"char *" }, + { "paramname":"cubCommandLine", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "BIsSubscribedFromFamilySharing", + "methodname_flat": "SteamAPI_ISteamApps_BIsSubscribedFromFamilySharing", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsTimedTrial", + "methodname_flat": "SteamAPI_ISteamApps_BIsTimedTrial", + "params": [ + { "paramname":"punSecondsAllowed", "paramtype":"uint32 *" }, + { "paramname":"punSecondsPlayed", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetDlcContext", + "methodname_flat": "SteamAPI_ISteamApps_SetDlcContext", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMAPPS_INTERFACE_VERSION008" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamNetworking", + "name_flat": "SteamAPI_SteamNetworking_v006" + }, + { + "kind": "gameserver", + "name": "SteamGameServerNetworking", + "name_flat": "SteamAPI_SteamGameServerNetworking_v006" + } + ], + "classname": "ISteamNetworking", + "fields": [], + "methods": [ + { + "methodname": "SendP2PPacket", + "methodname_flat": "SteamAPI_ISteamNetworking_SendP2PPacket", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pubData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"uint32" }, + { "paramname":"eP2PSendType", "paramtype":"EP2PSend" }, + { "paramname":"nChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "IsP2PPacketAvailable", + "methodname_flat": "SteamAPI_ISteamNetworking_IsP2PPacketAvailable", + "params": [ + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" }, + { "paramname":"nChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "ReadP2PPacket", + "methodname_flat": "SteamAPI_ISteamNetworking_ReadP2PPacket", + "params": [ + { "paramname":"pubDest", "paramtype":"void *" }, + { "paramname":"cubDest", "paramtype":"uint32" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" }, + { "paramname":"psteamIDRemote", "paramtype":"CSteamID *" }, + { "paramname":"nChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "AcceptP2PSessionWithUser", + "methodname_flat": "SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseP2PSessionWithUser", + "methodname_flat": "SteamAPI_ISteamNetworking_CloseP2PSessionWithUser", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseP2PChannelWithUser", + "methodname_flat": "SteamAPI_ISteamNetworking_CloseP2PChannelWithUser", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"nChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetP2PSessionState", + "methodname_flat": "SteamAPI_ISteamNetworking_GetP2PSessionState", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pConnectionState", "paramtype":"P2PSessionState_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "AllowP2PPacketRelay", + "methodname_flat": "SteamAPI_ISteamNetworking_AllowP2PPacketRelay", + "params": [ + { "paramname":"bAllow", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "CreateListenSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_CreateListenSocket", + "params": [ + { "paramname":"nVirtualP2PPort", "paramtype":"int" }, + { "paramname":"nIP", "paramtype":"SteamIPAddress_t" }, + { "paramname":"nPort", "paramtype":"uint16" }, + { "paramname":"bAllowUseOfPacketRelay", "paramtype":"bool" } + ], + "returntype": "SNetListenSocket_t" + }, + { + "methodname": "CreateP2PConnectionSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_CreateP2PConnectionSocket", + "params": [ + { "paramname":"steamIDTarget", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"nVirtualPort", "paramtype":"int" }, + { "paramname":"nTimeoutSec", "paramtype":"int" }, + { "paramname":"bAllowUseOfPacketRelay", "paramtype":"bool" } + ], + "returntype": "SNetSocket_t" + }, + { + "methodname": "CreateConnectionSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_CreateConnectionSocket", + "params": [ + { "paramname":"nIP", "paramtype":"SteamIPAddress_t" }, + { "paramname":"nPort", "paramtype":"uint16" }, + { "paramname":"nTimeoutSec", "paramtype":"int" } + ], + "returntype": "SNetSocket_t" + }, + { + "methodname": "DestroySocket", + "methodname_flat": "SteamAPI_ISteamNetworking_DestroySocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"bNotifyRemoteEnd", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "DestroyListenSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_DestroyListenSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetListenSocket_t" }, + { "paramname":"bNotifyRemoteEnd", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SendDataOnSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_SendDataOnSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"pubData", "paramtype":"void *" }, + { "paramname":"cubData", "paramtype":"uint32" }, + { "paramname":"bReliable", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "IsDataAvailableOnSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_IsDataAvailableOnSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "RetrieveDataFromSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_RetrieveDataFromSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"pubDest", "paramtype":"void *" }, + { "paramname":"cubDest", "paramtype":"uint32" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "IsDataAvailable", + "methodname_flat": "SteamAPI_ISteamNetworking_IsDataAvailable", + "params": [ + { "paramname":"hListenSocket", "paramtype":"SNetListenSocket_t" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" }, + { "paramname":"phSocket", "paramtype":"SNetSocket_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "RetrieveData", + "methodname_flat": "SteamAPI_ISteamNetworking_RetrieveData", + "params": [ + { "paramname":"hListenSocket", "paramtype":"SNetListenSocket_t" }, + { "paramname":"pubDest", "paramtype":"void *" }, + { "paramname":"cubDest", "paramtype":"uint32" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" }, + { "paramname":"phSocket", "paramtype":"SNetSocket_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetSocketInfo", + "methodname_flat": "SteamAPI_ISteamNetworking_GetSocketInfo", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"pSteamIDRemote", "paramtype":"CSteamID *" }, + { "paramname":"peSocketStatus", "paramtype":"int *" }, + { "paramname":"punIPRemote", "paramtype":"SteamIPAddress_t *" }, + { "paramname":"punPortRemote", "paramtype":"uint16 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetListenSocketInfo", + "methodname_flat": "SteamAPI_ISteamNetworking_GetListenSocketInfo", + "params": [ + { "paramname":"hListenSocket", "paramtype":"SNetListenSocket_t" }, + { "paramname":"pnIP", "paramtype":"SteamIPAddress_t *" }, + { "paramname":"pnPort", "paramtype":"uint16 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetSocketConnectionType", + "methodname_flat": "SteamAPI_ISteamNetworking_GetSocketConnectionType", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" } + ], + "returntype": "ESNetSocketConnectionType" + }, + { + "methodname": "GetMaxPacketSize", + "methodname_flat": "SteamAPI_ISteamNetworking_GetMaxPacketSize", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" } + ], + "returntype": "int" + } + ], + "version_string": "SteamNetworking006" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamScreenshots", + "name_flat": "SteamAPI_SteamScreenshots_v003" + } + ], + "classname": "ISteamScreenshots", + "fields": [], + "methods": [ + { + "methodname": "WriteScreenshot", + "methodname_flat": "SteamAPI_ISteamScreenshots_WriteScreenshot", + "params": [ + { "paramname":"pubRGB", "paramtype":"void *" }, + { "paramname":"cubRGB", "paramtype":"uint32" }, + { "paramname":"nWidth", "paramtype":"int" }, + { "paramname":"nHeight", "paramtype":"int" } + ], + "returntype": "ScreenshotHandle" + }, + { + "methodname": "AddScreenshotToLibrary", + "methodname_flat": "SteamAPI_ISteamScreenshots_AddScreenshotToLibrary", + "params": [ + { "paramname":"pchFilename", "paramtype":"const char *" }, + { "paramname":"pchThumbnailFilename", "paramtype":"const char *" }, + { "paramname":"nWidth", "paramtype":"int" }, + { "paramname":"nHeight", "paramtype":"int" } + ], + "returntype": "ScreenshotHandle" + }, + { + "methodname": "TriggerScreenshot", + "methodname_flat": "SteamAPI_ISteamScreenshots_TriggerScreenshot", + "params": [], + "returntype": "void" + }, + { + "methodname": "HookScreenshots", + "methodname_flat": "SteamAPI_ISteamScreenshots_HookScreenshots", + "params": [ + { "paramname":"bHook", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SetLocation", + "methodname_flat": "SteamAPI_ISteamScreenshots_SetLocation", + "params": [ + { "paramname":"hScreenshot", "paramtype":"ScreenshotHandle" }, + { "paramname":"pchLocation", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "TagUser", + "methodname_flat": "SteamAPI_ISteamScreenshots_TagUser", + "params": [ + { "paramname":"hScreenshot", "paramtype":"ScreenshotHandle" }, + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "TagPublishedFile", + "methodname_flat": "SteamAPI_ISteamScreenshots_TagPublishedFile", + "params": [ + { "paramname":"hScreenshot", "paramtype":"ScreenshotHandle" }, + { "paramname":"unPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "IsScreenshotsHooked", + "methodname_flat": "SteamAPI_ISteamScreenshots_IsScreenshotsHooked", + "params": [], + "returntype": "bool" + }, + { + "methodname": "AddVRScreenshotToLibrary", + "methodname_flat": "SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary", + "params": [ + { "paramname":"eType", "paramtype":"EVRScreenshotType" }, + { "paramname":"pchFilename", "paramtype":"const char *" }, + { "paramname":"pchVRFilename", "paramtype":"const char *" } + ], + "returntype": "ScreenshotHandle" + } + ], + "version_string": "STEAMSCREENSHOTS_INTERFACE_VERSION003" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamMusic", + "name_flat": "SteamAPI_SteamMusic_v001" + } + ], + "classname": "ISteamMusic", + "fields": [], + "methods": [ + { + "methodname": "BIsEnabled", + "methodname_flat": "SteamAPI_ISteamMusic_BIsEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsPlaying", + "methodname_flat": "SteamAPI_ISteamMusic_BIsPlaying", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetPlaybackStatus", + "methodname_flat": "SteamAPI_ISteamMusic_GetPlaybackStatus", + "params": [], + "returntype": "AudioPlayback_Status" + }, + { + "methodname": "Play", + "methodname_flat": "SteamAPI_ISteamMusic_Play", + "params": [], + "returntype": "void" + }, + { + "methodname": "Pause", + "methodname_flat": "SteamAPI_ISteamMusic_Pause", + "params": [], + "returntype": "void" + }, + { + "methodname": "PlayPrevious", + "methodname_flat": "SteamAPI_ISteamMusic_PlayPrevious", + "params": [], + "returntype": "void" + }, + { + "methodname": "PlayNext", + "methodname_flat": "SteamAPI_ISteamMusic_PlayNext", + "params": [], + "returntype": "void" + }, + { + "methodname": "SetVolume", + "methodname_flat": "SteamAPI_ISteamMusic_SetVolume", + "params": [ + { "paramname":"flVolume", "paramtype":"float" } + ], + "returntype": "void" + }, + { + "methodname": "GetVolume", + "methodname_flat": "SteamAPI_ISteamMusic_GetVolume", + "params": [], + "returntype": "float" + } + ], + "version_string": "STEAMMUSIC_INTERFACE_VERSION001" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamMusicRemote", + "name_flat": "SteamAPI_SteamMusicRemote_v001" + } + ], + "classname": "ISteamMusicRemote", + "fields": [], + "methods": [ + { + "methodname": "RegisterSteamMusicRemote", + "methodname_flat": "SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "DeregisterSteamMusicRemote", + "methodname_flat": "SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsCurrentMusicRemote", + "methodname_flat": "SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BActivationSuccess", + "methodname_flat": "SteamAPI_ISteamMusicRemote_BActivationSuccess", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetDisplayName", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetDisplayName", + "params": [ + { "paramname":"pchDisplayName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetPNGIcon_64x64", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64", + "params": [ + { "paramname":"pvBuffer", "paramtype":"void *" }, + { "paramname":"cbBufferLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "EnablePlayPrevious", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnablePlayPrevious", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnablePlayNext", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnablePlayNext", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnableShuffled", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnableShuffled", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnableLooped", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnableLooped", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnableQueue", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnableQueue", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnablePlaylists", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnablePlaylists", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePlaybackStatus", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus", + "params": [ + { "paramname":"nStatus", "paramtype":"AudioPlayback_Status" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateShuffled", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateShuffled", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateLooped", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateLooped", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateVolume", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateVolume", + "params": [ + { "paramname":"flValue", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "CurrentEntryWillChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_CurrentEntryWillChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "CurrentEntryIsAvailable", + "methodname_flat": "SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable", + "params": [ + { "paramname":"bAvailable", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateCurrentEntryText", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText", + "params": [ + { "paramname":"pchText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateCurrentEntryElapsedSeconds", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds", + "params": [ + { "paramname":"nValue", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateCurrentEntryCoverArt", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt", + "params": [ + { "paramname":"pvBuffer", "paramtype":"void *" }, + { "paramname":"cbBufferLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "CurrentEntryDidChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_CurrentEntryDidChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "QueueWillChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_QueueWillChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "ResetQueueEntries", + "methodname_flat": "SteamAPI_ISteamMusicRemote_ResetQueueEntries", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetQueueEntry", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetQueueEntry", + "params": [ + { "paramname":"nID", "paramtype":"int" }, + { "paramname":"nPosition", "paramtype":"int" }, + { "paramname":"pchEntryText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCurrentQueueEntry", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry", + "params": [ + { "paramname":"nID", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "QueueDidChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_QueueDidChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "PlaylistWillChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_PlaylistWillChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "ResetPlaylistEntries", + "methodname_flat": "SteamAPI_ISteamMusicRemote_ResetPlaylistEntries", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetPlaylistEntry", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetPlaylistEntry", + "params": [ + { "paramname":"nID", "paramtype":"int" }, + { "paramname":"nPosition", "paramtype":"int" }, + { "paramname":"pchEntryText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCurrentPlaylistEntry", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry", + "params": [ + { "paramname":"nID", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "PlaylistDidChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_PlaylistDidChange", + "params": [], + "returntype": "bool" + } + ], + "version_string": "STEAMMUSICREMOTE_INTERFACE_VERSION001" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamHTTP", + "name_flat": "SteamAPI_SteamHTTP_v003" + }, + { + "kind": "gameserver", + "name": "SteamGameServerHTTP", + "name_flat": "SteamAPI_SteamGameServerHTTP_v003" + } + ], + "classname": "ISteamHTTP", + "fields": [], + "methods": [ + { + "methodname": "CreateHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_CreateHTTPRequest", + "params": [ + { "paramname":"eHTTPRequestMethod", "paramtype":"EHTTPMethod" }, + { "paramname":"pchAbsoluteURL", "paramtype":"const char *" } + ], + "returntype": "HTTPRequestHandle" + }, + { + "methodname": "SetHTTPRequestContextValue", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestContextValue", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"ulContextValue", "paramtype":"uint64" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestNetworkActivityTimeout", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"unTimeoutSeconds", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestHeaderValue", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchHeaderName", "paramtype":"const char *" }, + { "paramname":"pchHeaderValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestGetOrPostParameter", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchParamName", "paramtype":"const char *" }, + { "paramname":"pchParamValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SendHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_SendHTTPRequest", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pCallHandle", "paramtype":"SteamAPICall_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "SendHTTPRequestAndStreamResponse", + "methodname_flat": "SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pCallHandle", "paramtype":"SteamAPICall_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "DeferHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_DeferHTTPRequest", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "PrioritizeHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_PrioritizeHTTPRequest", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPResponseHeaderSize", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchHeaderName", "paramtype":"const char *" }, + { "paramname":"unResponseHeaderSize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPResponseHeaderValue", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchHeaderName", "paramtype":"const char *" }, + { "paramname":"pHeaderValueBuffer", "paramtype":"uint8 *" }, + { "paramname":"unBufferSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPResponseBodySize", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPResponseBodySize", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"unBodySize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPResponseBodyData", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPResponseBodyData", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pBodyDataBuffer", "paramtype":"uint8 *" }, + { "paramname":"unBufferSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPStreamingResponseBodyData", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"cOffset", "paramtype":"uint32" }, + { "paramname":"pBodyDataBuffer", "paramtype":"uint8 *" }, + { "paramname":"unBufferSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "ReleaseHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_ReleaseHTTPRequest", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPDownloadProgressPct", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pflPercentOut", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestRawPostBody", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchContentType", "paramtype":"const char *" }, + { "paramname":"pubBody", "paramtype":"uint8 *" }, + { "paramname":"unBodyLen", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "CreateCookieContainer", + "methodname_flat": "SteamAPI_ISteamHTTP_CreateCookieContainer", + "params": [ + { "paramname":"bAllowResponsesToModify", "paramtype":"bool" } + ], + "returntype": "HTTPCookieContainerHandle" + }, + { + "methodname": "ReleaseCookieContainer", + "methodname_flat": "SteamAPI_ISteamHTTP_ReleaseCookieContainer", + "params": [ + { "paramname":"hCookieContainer", "paramtype":"HTTPCookieContainerHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCookie", + "methodname_flat": "SteamAPI_ISteamHTTP_SetCookie", + "params": [ + { "paramname":"hCookieContainer", "paramtype":"HTTPCookieContainerHandle" }, + { "paramname":"pchHost", "paramtype":"const char *" }, + { "paramname":"pchUrl", "paramtype":"const char *" }, + { "paramname":"pchCookie", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestCookieContainer", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"hCookieContainer", "paramtype":"HTTPCookieContainerHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestUserAgentInfo", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchUserAgentInfo", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestRequiresVerifiedCertificate", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"bRequireVerifiedCertificate", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestAbsoluteTimeoutMS", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"unMilliseconds", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPRequestWasTimedOut", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pbWasTimedOut", "paramtype":"bool *" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMHTTP_INTERFACE_VERSION003" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamInput", + "name_flat": "SteamAPI_SteamInput_v006" + } + ], + "classname": "ISteamInput", + "fields": [], + "methods": [ + { + "methodname": "Init", + "methodname_flat": "SteamAPI_ISteamInput_Init", + "params": [ + { "paramname":"bExplicitlyCallRunFrame", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "Shutdown", + "methodname_flat": "SteamAPI_ISteamInput_Shutdown", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetInputActionManifestFilePath", + "methodname_flat": "SteamAPI_ISteamInput_SetInputActionManifestFilePath", + "params": [ + { "paramname":"pchInputActionManifestAbsolutePath", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "RunFrame", + "methodname_flat": "SteamAPI_ISteamInput_RunFrame", + "params": [ + { "paramname":"bReservedValue", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "BWaitForData", + "methodname_flat": "SteamAPI_ISteamInput_BWaitForData", + "params": [ + { "paramname":"bWaitForever", "paramtype":"bool" }, + { "paramname":"unTimeout", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "BNewDataAvailable", + "methodname_flat": "SteamAPI_ISteamInput_BNewDataAvailable", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetConnectedControllers", + "methodname_flat": "SteamAPI_ISteamInput_GetConnectedControllers", + "params": [ + { + "desc": "Receives list of connected controllers", + "out_array_count": "STEAM_INPUT_MAX_COUNT", + "paramname": "handlesOut", + "paramtype": "InputHandle_t *" + } + ], + "returntype": "int" + }, + { + "callback": "SteamInputConfigurationLoaded_t", + "methodname": "EnableDeviceCallbacks", + "methodname_flat": "SteamAPI_ISteamInput_EnableDeviceCallbacks", + "params": [], + "returntype": "void" + }, + { + "callback": "SteamInputGamepadSlotChange_t", + "methodname": "EnableActionEventCallbacks", + "methodname_flat": "SteamAPI_ISteamInput_EnableActionEventCallbacks", + "params": [ + { "paramname":"pCallback", "paramtype":"SteamInputActionEventCallbackPointer" } + ], + "returntype": "void" + }, + { + "methodname": "GetActionSetHandle", + "methodname_flat": "SteamAPI_ISteamInput_GetActionSetHandle", + "params": [ + { "paramname":"pszActionSetName", "paramtype":"const char *" } + ], + "returntype": "InputActionSetHandle_t" + }, + { + "methodname": "ActivateActionSet", + "methodname_flat": "SteamAPI_ISteamInput_ActivateActionSet", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"InputActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetCurrentActionSet", + "methodname_flat": "SteamAPI_ISteamInput_GetCurrentActionSet", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "InputActionSetHandle_t" + }, + { + "methodname": "ActivateActionSetLayer", + "methodname_flat": "SteamAPI_ISteamInput_ActivateActionSetLayer", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetLayerHandle", "paramtype":"InputActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "DeactivateActionSetLayer", + "methodname_flat": "SteamAPI_ISteamInput_DeactivateActionSetLayer", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetLayerHandle", "paramtype":"InputActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "DeactivateAllActionSetLayers", + "methodname_flat": "SteamAPI_ISteamInput_DeactivateAllActionSetLayers", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetActiveActionSetLayers", + "methodname_flat": "SteamAPI_ISteamInput_GetActiveActionSetLayers", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { + "desc": "Receives list of active layers", + "out_array_count": "STEAM_INPUT_MAX_ACTIVE_LAYERS", + "paramname": "handlesOut", + "paramtype": "InputActionSetHandle_t *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetDigitalActionHandle", + "methodname_flat": "SteamAPI_ISteamInput_GetDigitalActionHandle", + "params": [ + { "paramname":"pszActionName", "paramtype":"const char *" } + ], + "returntype": "InputDigitalActionHandle_t" + }, + { + "methodname": "GetDigitalActionData", + "methodname_flat": "SteamAPI_ISteamInput_GetDigitalActionData", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"digitalActionHandle", "paramtype":"InputDigitalActionHandle_t" } + ], + "returntype": "InputDigitalActionData_t" + }, + { + "methodname": "GetDigitalActionOrigins", + "methodname_flat": "SteamAPI_ISteamInput_GetDigitalActionOrigins", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"InputActionSetHandle_t" }, + { "paramname":"digitalActionHandle", "paramtype":"InputDigitalActionHandle_t" }, + { + "desc": "Receives list of action origins", + "out_array_count": "STEAM_INPUT_MAX_ORIGINS", + "paramname": "originsOut", + "paramtype": "EInputActionOrigin *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetStringForDigitalActionName", + "methodname_flat": "SteamAPI_ISteamInput_GetStringForDigitalActionName", + "params": [ + { "paramname":"eActionHandle", "paramtype":"InputDigitalActionHandle_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetAnalogActionHandle", + "methodname_flat": "SteamAPI_ISteamInput_GetAnalogActionHandle", + "params": [ + { "paramname":"pszActionName", "paramtype":"const char *" } + ], + "returntype": "InputAnalogActionHandle_t" + }, + { + "methodname": "GetAnalogActionData", + "methodname_flat": "SteamAPI_ISteamInput_GetAnalogActionData", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"analogActionHandle", "paramtype":"InputAnalogActionHandle_t" } + ], + "returntype": "InputAnalogActionData_t" + }, + { + "methodname": "GetAnalogActionOrigins", + "methodname_flat": "SteamAPI_ISteamInput_GetAnalogActionOrigins", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"InputActionSetHandle_t" }, + { "paramname":"analogActionHandle", "paramtype":"InputAnalogActionHandle_t" }, + { + "desc": "Receives list of action origins", + "out_array_count": "STEAM_INPUT_MAX_ORIGINS", + "paramname": "originsOut", + "paramtype": "EInputActionOrigin *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetGlyphPNGForActionOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetGlyphPNGForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EInputActionOrigin" }, + { "paramname":"eSize", "paramtype":"ESteamInputGlyphSize" }, + { "paramname":"unFlags", "paramtype":"uint32" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetGlyphSVGForActionOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetGlyphSVGForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EInputActionOrigin" }, + { "paramname":"unFlags", "paramtype":"uint32" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetGlyphForActionOrigin_Legacy", + "methodname_flat": "SteamAPI_ISteamInput_GetGlyphForActionOrigin_Legacy", + "params": [ + { "paramname":"eOrigin", "paramtype":"EInputActionOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetStringForActionOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetStringForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EInputActionOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetStringForAnalogActionName", + "methodname_flat": "SteamAPI_ISteamInput_GetStringForAnalogActionName", + "params": [ + { "paramname":"eActionHandle", "paramtype":"InputAnalogActionHandle_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "StopAnalogActionMomentum", + "methodname_flat": "SteamAPI_ISteamInput_StopAnalogActionMomentum", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eAction", "paramtype":"InputAnalogActionHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetMotionData", + "methodname_flat": "SteamAPI_ISteamInput_GetMotionData", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "InputMotionData_t" + }, + { + "methodname": "TriggerVibration", + "methodname_flat": "SteamAPI_ISteamInput_TriggerVibration", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"usLeftSpeed", "paramtype":"unsigned short" }, + { "paramname":"usRightSpeed", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "TriggerVibrationExtended", + "methodname_flat": "SteamAPI_ISteamInput_TriggerVibrationExtended", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"usLeftSpeed", "paramtype":"unsigned short" }, + { "paramname":"usRightSpeed", "paramtype":"unsigned short" }, + { "paramname":"usLeftTriggerSpeed", "paramtype":"unsigned short" }, + { "paramname":"usRightTriggerSpeed", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "TriggerSimpleHapticEvent", + "methodname_flat": "SteamAPI_ISteamInput_TriggerSimpleHapticEvent", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eHapticLocation", "paramtype":"EControllerHapticLocation" }, + { "paramname":"nIntensity", "paramtype":"uint8" }, + { "paramname":"nGainDB", "paramtype":"char" }, + { "paramname":"nOtherIntensity", "paramtype":"uint8" }, + { "paramname":"nOtherGainDB", "paramtype":"char" } + ], + "returntype": "void" + }, + { + "methodname": "SetLEDColor", + "methodname_flat": "SteamAPI_ISteamInput_SetLEDColor", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"nColorR", "paramtype":"uint8" }, + { "paramname":"nColorG", "paramtype":"uint8" }, + { "paramname":"nColorB", "paramtype":"uint8" }, + { "paramname":"nFlags", "paramtype":"unsigned int" } + ], + "returntype": "void" + }, + { + "methodname": "Legacy_TriggerHapticPulse", + "methodname_flat": "SteamAPI_ISteamInput_Legacy_TriggerHapticPulse", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eTargetPad", "paramtype":"ESteamControllerPad" }, + { "paramname":"usDurationMicroSec", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "Legacy_TriggerRepeatedHapticPulse", + "methodname_flat": "SteamAPI_ISteamInput_Legacy_TriggerRepeatedHapticPulse", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eTargetPad", "paramtype":"ESteamControllerPad" }, + { "paramname":"usDurationMicroSec", "paramtype":"unsigned short" }, + { "paramname":"usOffMicroSec", "paramtype":"unsigned short" }, + { "paramname":"unRepeat", "paramtype":"unsigned short" }, + { "paramname":"nFlags", "paramtype":"unsigned int" } + ], + "returntype": "void" + }, + { + "methodname": "ShowBindingPanel", + "methodname_flat": "SteamAPI_ISteamInput_ShowBindingPanel", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetInputTypeForHandle", + "methodname_flat": "SteamAPI_ISteamInput_GetInputTypeForHandle", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "ESteamInputType" + }, + { + "methodname": "GetControllerForGamepadIndex", + "methodname_flat": "SteamAPI_ISteamInput_GetControllerForGamepadIndex", + "params": [ + { "paramname":"nIndex", "paramtype":"int" } + ], + "returntype": "InputHandle_t" + }, + { + "methodname": "GetGamepadIndexForController", + "methodname_flat": "SteamAPI_ISteamInput_GetGamepadIndexForController", + "params": [ + { "paramname":"ulinputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetStringForXboxOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetStringForXboxOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetGlyphForXboxOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetGlyphForXboxOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetActionOriginFromXboxOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetActionOriginFromXboxOrigin", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "EInputActionOrigin" + }, + { + "methodname": "TranslateActionOrigin", + "methodname_flat": "SteamAPI_ISteamInput_TranslateActionOrigin", + "params": [ + { "paramname":"eDestinationInputType", "paramtype":"ESteamInputType" }, + { "paramname":"eSourceOrigin", "paramtype":"EInputActionOrigin" } + ], + "returntype": "EInputActionOrigin" + }, + { + "methodname": "GetDeviceBindingRevision", + "methodname_flat": "SteamAPI_ISteamInput_GetDeviceBindingRevision", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"pMajor", "paramtype":"int *" }, + { "paramname":"pMinor", "paramtype":"int *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetRemotePlaySessionID", + "methodname_flat": "SteamAPI_ISteamInput_GetRemotePlaySessionID", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetSessionInputConfigurationSettings", + "methodname_flat": "SteamAPI_ISteamInput_GetSessionInputConfigurationSettings", + "params": [], + "returntype": "uint16" + }, + { + "methodname": "SetDualSenseTriggerEffect", + "methodname_flat": "SteamAPI_ISteamInput_SetDualSenseTriggerEffect", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"pParam", "paramtype":"const ScePadTriggerEffectParam *" } + ], + "returntype": "void" + } + ], + "version_string": "SteamInput006" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamController", + "name_flat": "SteamAPI_SteamController_v008" + } + ], + "classname": "ISteamController", + "fields": [], + "methods": [ + { + "methodname": "Init", + "methodname_flat": "SteamAPI_ISteamController_Init", + "params": [], + "returntype": "bool" + }, + { + "methodname": "Shutdown", + "methodname_flat": "SteamAPI_ISteamController_Shutdown", + "params": [], + "returntype": "bool" + }, + { + "methodname": "RunFrame", + "methodname_flat": "SteamAPI_ISteamController_RunFrame", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetConnectedControllers", + "methodname_flat": "SteamAPI_ISteamController_GetConnectedControllers", + "params": [ + { + "desc": "Receives list of connected controllers", + "out_array_count": "STEAM_CONTROLLER_MAX_COUNT", + "paramname": "handlesOut", + "paramtype": "ControllerHandle_t *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetActionSetHandle", + "methodname_flat": "SteamAPI_ISteamController_GetActionSetHandle", + "params": [ + { "paramname":"pszActionSetName", "paramtype":"const char *" } + ], + "returntype": "ControllerActionSetHandle_t" + }, + { + "methodname": "ActivateActionSet", + "methodname_flat": "SteamAPI_ISteamController_ActivateActionSet", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"ControllerActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetCurrentActionSet", + "methodname_flat": "SteamAPI_ISteamController_GetCurrentActionSet", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "ControllerActionSetHandle_t" + }, + { + "methodname": "ActivateActionSetLayer", + "methodname_flat": "SteamAPI_ISteamController_ActivateActionSetLayer", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetLayerHandle", "paramtype":"ControllerActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "DeactivateActionSetLayer", + "methodname_flat": "SteamAPI_ISteamController_DeactivateActionSetLayer", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetLayerHandle", "paramtype":"ControllerActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "DeactivateAllActionSetLayers", + "methodname_flat": "SteamAPI_ISteamController_DeactivateAllActionSetLayers", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetActiveActionSetLayers", + "methodname_flat": "SteamAPI_ISteamController_GetActiveActionSetLayers", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { + "desc": "Receives list of active layers", + "out_array_count": "STEAM_CONTROLLER_MAX_ACTIVE_LAYERS", + "paramname": "handlesOut", + "paramtype": "ControllerActionSetHandle_t *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetDigitalActionHandle", + "methodname_flat": "SteamAPI_ISteamController_GetDigitalActionHandle", + "params": [ + { "paramname":"pszActionName", "paramtype":"const char *" } + ], + "returntype": "ControllerDigitalActionHandle_t" + }, + { + "methodname": "GetDigitalActionData", + "methodname_flat": "SteamAPI_ISteamController_GetDigitalActionData", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"digitalActionHandle", "paramtype":"ControllerDigitalActionHandle_t" } + ], + "returntype": "InputDigitalActionData_t" + }, + { + "methodname": "GetDigitalActionOrigins", + "methodname_flat": "SteamAPI_ISteamController_GetDigitalActionOrigins", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"ControllerActionSetHandle_t" }, + { "paramname":"digitalActionHandle", "paramtype":"ControllerDigitalActionHandle_t" }, + { + "desc": "Receives list of aciton origins", + "out_array_count": "STEAM_CONTROLLER_MAX_ORIGINS", + "paramname": "originsOut", + "paramtype": "EControllerActionOrigin *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetAnalogActionHandle", + "methodname_flat": "SteamAPI_ISteamController_GetAnalogActionHandle", + "params": [ + { "paramname":"pszActionName", "paramtype":"const char *" } + ], + "returntype": "ControllerAnalogActionHandle_t" + }, + { + "methodname": "GetAnalogActionData", + "methodname_flat": "SteamAPI_ISteamController_GetAnalogActionData", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"analogActionHandle", "paramtype":"ControllerAnalogActionHandle_t" } + ], + "returntype": "InputAnalogActionData_t" + }, + { + "methodname": "GetAnalogActionOrigins", + "methodname_flat": "SteamAPI_ISteamController_GetAnalogActionOrigins", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"ControllerActionSetHandle_t" }, + { "paramname":"analogActionHandle", "paramtype":"ControllerAnalogActionHandle_t" }, + { + "desc": "Receives list of action origins", + "out_array_count": "STEAM_CONTROLLER_MAX_ORIGINS", + "paramname": "originsOut", + "paramtype": "EControllerActionOrigin *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetGlyphForActionOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetGlyphForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EControllerActionOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetStringForActionOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetStringForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EControllerActionOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "StopAnalogActionMomentum", + "methodname_flat": "SteamAPI_ISteamController_StopAnalogActionMomentum", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"eAction", "paramtype":"ControllerAnalogActionHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetMotionData", + "methodname_flat": "SteamAPI_ISteamController_GetMotionData", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "InputMotionData_t" + }, + { + "methodname": "TriggerHapticPulse", + "methodname_flat": "SteamAPI_ISteamController_TriggerHapticPulse", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"eTargetPad", "paramtype":"ESteamControllerPad" }, + { "paramname":"usDurationMicroSec", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "TriggerRepeatedHapticPulse", + "methodname_flat": "SteamAPI_ISteamController_TriggerRepeatedHapticPulse", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"eTargetPad", "paramtype":"ESteamControllerPad" }, + { "paramname":"usDurationMicroSec", "paramtype":"unsigned short" }, + { "paramname":"usOffMicroSec", "paramtype":"unsigned short" }, + { "paramname":"unRepeat", "paramtype":"unsigned short" }, + { "paramname":"nFlags", "paramtype":"unsigned int" } + ], + "returntype": "void" + }, + { + "methodname": "TriggerVibration", + "methodname_flat": "SteamAPI_ISteamController_TriggerVibration", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"usLeftSpeed", "paramtype":"unsigned short" }, + { "paramname":"usRightSpeed", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "SetLEDColor", + "methodname_flat": "SteamAPI_ISteamController_SetLEDColor", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"nColorR", "paramtype":"uint8" }, + { "paramname":"nColorG", "paramtype":"uint8" }, + { "paramname":"nColorB", "paramtype":"uint8" }, + { "paramname":"nFlags", "paramtype":"unsigned int" } + ], + "returntype": "void" + }, + { + "methodname": "ShowBindingPanel", + "methodname_flat": "SteamAPI_ISteamController_ShowBindingPanel", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetInputTypeForHandle", + "methodname_flat": "SteamAPI_ISteamController_GetInputTypeForHandle", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "ESteamInputType" + }, + { + "methodname": "GetControllerForGamepadIndex", + "methodname_flat": "SteamAPI_ISteamController_GetControllerForGamepadIndex", + "params": [ + { "paramname":"nIndex", "paramtype":"int" } + ], + "returntype": "ControllerHandle_t" + }, + { + "methodname": "GetGamepadIndexForController", + "methodname_flat": "SteamAPI_ISteamController_GetGamepadIndexForController", + "params": [ + { "paramname":"ulControllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetStringForXboxOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetStringForXboxOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetGlyphForXboxOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetGlyphForXboxOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetActionOriginFromXboxOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetActionOriginFromXboxOrigin", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "EControllerActionOrigin" + }, + { + "methodname": "TranslateActionOrigin", + "methodname_flat": "SteamAPI_ISteamController_TranslateActionOrigin", + "params": [ + { "paramname":"eDestinationInputType", "paramtype":"ESteamInputType" }, + { "paramname":"eSourceOrigin", "paramtype":"EControllerActionOrigin" } + ], + "returntype": "EControllerActionOrigin" + }, + { + "methodname": "GetControllerBindingRevision", + "methodname_flat": "SteamAPI_ISteamController_GetControllerBindingRevision", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"pMajor", "paramtype":"int *" }, + { "paramname":"pMinor", "paramtype":"int *" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamController008" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamUGC", + "name_flat": "SteamAPI_SteamUGC_v018" + }, + { + "kind": "gameserver", + "name": "SteamGameServerUGC", + "name_flat": "SteamAPI_SteamGameServerUGC_v018" + } + ], + "classname": "ISteamUGC", + "fields": [], + "methods": [ + { + "methodname": "CreateQueryUserUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_CreateQueryUserUGCRequest", + "params": [ + { "paramname":"unAccountID", "paramtype":"AccountID_t" }, + { "paramname":"eListType", "paramtype":"EUserUGCList" }, + { "paramname":"eMatchingUGCType", "paramtype":"EUGCMatchingUGCType" }, + { "paramname":"eSortOrder", "paramtype":"EUserUGCListSortOrder" }, + { "paramname":"nCreatorAppID", "paramtype":"AppId_t" }, + { "paramname":"nConsumerAppID", "paramtype":"AppId_t" }, + { "paramname":"unPage", "paramtype":"uint32" } + ], + "returntype": "UGCQueryHandle_t" + }, + { + "methodname": "CreateQueryAllUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage", + "params": [ + { "paramname":"eQueryType", "paramtype":"EUGCQuery" }, + { "paramname":"eMatchingeMatchingUGCTypeFileType", "paramtype":"EUGCMatchingUGCType" }, + { "paramname":"nCreatorAppID", "paramtype":"AppId_t" }, + { "paramname":"nConsumerAppID", "paramtype":"AppId_t" }, + { "paramname":"unPage", "paramtype":"uint32" } + ], + "returntype": "UGCQueryHandle_t" + }, + { + "methodname": "CreateQueryAllUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor", + "params": [ + { "paramname":"eQueryType", "paramtype":"EUGCQuery" }, + { "paramname":"eMatchingeMatchingUGCTypeFileType", "paramtype":"EUGCMatchingUGCType" }, + { "paramname":"nCreatorAppID", "paramtype":"AppId_t" }, + { "paramname":"nConsumerAppID", "paramtype":"AppId_t" }, + { "paramname":"pchCursor", "paramtype":"const char *" } + ], + "returntype": "UGCQueryHandle_t" + }, + { + "methodname": "CreateQueryUGCDetailsRequest", + "methodname_flat": "SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest", + "params": [ + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"unNumPublishedFileIDs", "paramtype":"uint32" } + ], + "returntype": "UGCQueryHandle_t" + }, + { + "callresult": "SteamUGCQueryCompleted_t", + "methodname": "SendQueryUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_SendQueryUGCRequest", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetQueryUGCResult", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCResult", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pDetails", "paramtype":"SteamUGCDetails_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCNumTags", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCNumTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetQueryUGCTag", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"indexTag", "paramtype":"uint32" }, + { + "out_string_count": "cchValueSize", + "paramname": "pchValue", + "paramtype": "char *" + }, + { "paramname":"cchValueSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCTagDisplayName", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"indexTag", "paramtype":"uint32" }, + { + "out_string_count": "cchValueSize", + "paramname": "pchValue", + "paramtype": "char *" + }, + { "paramname":"cchValueSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCPreviewURL", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCPreviewURL", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { + "out_string_count": "cchURLSize", + "paramname": "pchURL", + "paramtype": "char *" + }, + { "paramname":"cchURLSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCMetadata", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCMetadata", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { + "out_string_count": "cchMetadatasize", + "paramname": "pchMetadata", + "paramtype": "char *" + }, + { "paramname":"cchMetadatasize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCChildren", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCChildren", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCStatistic", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCStatistic", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"eStatType", "paramtype":"EItemStatistic" }, + { "paramname":"pStatValue", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCNumAdditionalPreviews", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetQueryUGCAdditionalPreview", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"previewIndex", "paramtype":"uint32" }, + { + "out_string_count": "cchURLSize", + "paramname": "pchURLOrVideoID", + "paramtype": "char *" + }, + { "paramname":"cchURLSize", "paramtype":"uint32" }, + { + "out_string_count": "cchURLSize", + "paramname": "pchOriginalFileName", + "paramtype": "char *" + }, + { "paramname":"cchOriginalFileNameSize", "paramtype":"uint32" }, + { "paramname":"pPreviewType", "paramtype":"EItemPreviewType *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCNumKeyValueTags", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetQueryUGCKeyValueTag", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"keyValueTagIndex", "paramtype":"uint32" }, + { + "out_string_count": "cchKeySize", + "paramname": "pchKey", + "paramtype": "char *" + }, + { "paramname":"cchKeySize", "paramtype":"uint32" }, + { + "out_string_count": "cchValueSize", + "paramname": "pchValue", + "paramtype": "char *" + }, + { "paramname":"cchValueSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCKeyValueTag", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryFirstUGCKeyValueTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { + "out_string_count": "cchValueSize", + "paramname": "pchValue", + "paramtype": "char *" + }, + { "paramname":"cchValueSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCContentDescriptors", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCContentDescriptors", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pvecDescriptors", "paramtype":"EUGCContentDescriptorID *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "ReleaseQueryUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_ReleaseQueryUGCRequest", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "AddRequiredTag", + "methodname_flat": "SteamAPI_ISteamUGC_AddRequiredTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pTagName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddRequiredTagGroup", + "methodname_flat": "SteamAPI_ISteamUGC_AddRequiredTagGroup", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pTagGroups", "paramtype":"const SteamParamStringArray_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddExcludedTag", + "methodname_flat": "SteamAPI_ISteamUGC_AddExcludedTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pTagName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnOnlyIDs", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnOnlyIDs", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnOnlyIDs", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnKeyValueTags", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnKeyValueTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnKeyValueTags", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnLongDescription", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnLongDescription", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnLongDescription", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnMetadata", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnMetadata", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnMetadata", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnChildren", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnChildren", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnChildren", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnAdditionalPreviews", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnAdditionalPreviews", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnAdditionalPreviews", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnTotalOnly", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnTotalOnly", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnTotalOnly", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnPlaytimeStats", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnPlaytimeStats", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"unDays", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetLanguage", + "methodname_flat": "SteamAPI_ISteamUGC_SetLanguage", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pchLanguage", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetAllowCachedResponse", + "methodname_flat": "SteamAPI_ISteamUGC_SetAllowCachedResponse", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"unMaxAgeSeconds", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCloudFileNameFilter", + "methodname_flat": "SteamAPI_ISteamUGC_SetCloudFileNameFilter", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pMatchCloudFileName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetMatchAnyTag", + "methodname_flat": "SteamAPI_ISteamUGC_SetMatchAnyTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bMatchAnyTag", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetSearchText", + "methodname_flat": "SteamAPI_ISteamUGC_SetSearchText", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pSearchText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetRankedByTrendDays", + "methodname_flat": "SteamAPI_ISteamUGC_SetRankedByTrendDays", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"unDays", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetTimeCreatedDateRange", + "methodname_flat": "SteamAPI_ISteamUGC_SetTimeCreatedDateRange", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"rtStart", "paramtype":"RTime32" }, + { "paramname":"rtEnd", "paramtype":"RTime32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetTimeUpdatedDateRange", + "methodname_flat": "SteamAPI_ISteamUGC_SetTimeUpdatedDateRange", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"rtStart", "paramtype":"RTime32" }, + { "paramname":"rtEnd", "paramtype":"RTime32" } + ], + "returntype": "bool" + }, + { + "methodname": "AddRequiredKeyValueTag", + "methodname_flat": "SteamAPI_ISteamUGC_AddRequiredKeyValueTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pKey", "paramtype":"const char *" }, + { "paramname":"pValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "callresult": "SteamUGCRequestUGCDetailsResult_t", + "methodname": "RequestUGCDetails", + "methodname_flat": "SteamAPI_ISteamUGC_RequestUGCDetails", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"unMaxAgeSeconds", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "CreateItemResult_t", + "methodname": "CreateItem", + "methodname_flat": "SteamAPI_ISteamUGC_CreateItem", + "params": [ + { "paramname":"nConsumerAppId", "paramtype":"AppId_t" }, + { "paramname":"eFileType", "paramtype":"EWorkshopFileType" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "StartItemUpdate", + "methodname_flat": "SteamAPI_ISteamUGC_StartItemUpdate", + "params": [ + { "paramname":"nConsumerAppId", "paramtype":"AppId_t" }, + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "UGCUpdateHandle_t" + }, + { + "methodname": "SetItemTitle", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemTitle", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchTitle", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemDescription", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemDescription", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchDescription", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemUpdateLanguage", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemUpdateLanguage", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchLanguage", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemMetadata", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemMetadata", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchMetaData", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemVisibility", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemVisibility", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"eVisibility", "paramtype":"ERemoteStoragePublishedFileVisibility" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemTags", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemTags", + "params": [ + { "paramname":"updateHandle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pTags", "paramtype":"const SteamParamStringArray_t *" }, + { "paramname":"bAllowAdminTags", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemContent", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemContent", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pszContentFolder", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemPreview", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemPreview", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pszPreviewFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetAllowLegacyUpload", + "methodname_flat": "SteamAPI_ISteamUGC_SetAllowLegacyUpload", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"bAllowLegacyUpload", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveAllItemKeyValueTags", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveItemKeyValueTags", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveItemKeyValueTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddItemKeyValueTag", + "methodname_flat": "SteamAPI_ISteamUGC_AddItemKeyValueTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddItemPreviewFile", + "methodname_flat": "SteamAPI_ISteamUGC_AddItemPreviewFile", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pszPreviewFile", "paramtype":"const char *" }, + { "paramname":"type", "paramtype":"EItemPreviewType" } + ], + "returntype": "bool" + }, + { + "methodname": "AddItemPreviewVideo", + "methodname_flat": "SteamAPI_ISteamUGC_AddItemPreviewVideo", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pszVideoID", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateItemPreviewFile", + "methodname_flat": "SteamAPI_ISteamUGC_UpdateItemPreviewFile", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pszPreviewFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateItemPreviewVideo", + "methodname_flat": "SteamAPI_ISteamUGC_UpdateItemPreviewVideo", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pszVideoID", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveItemPreview", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveItemPreview", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"index", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "AddContentDescriptor", + "methodname_flat": "SteamAPI_ISteamUGC_AddContentDescriptor", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"descid", "paramtype":"EUGCContentDescriptorID" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveContentDescriptor", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveContentDescriptor", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"descid", "paramtype":"EUGCContentDescriptorID" } + ], + "returntype": "bool" + }, + { + "callresult": "SubmitItemUpdateResult_t", + "methodname": "SubmitItemUpdate", + "methodname_flat": "SteamAPI_ISteamUGC_SubmitItemUpdate", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchChangeNote", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetItemUpdateProgress", + "methodname_flat": "SteamAPI_ISteamUGC_GetItemUpdateProgress", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"punBytesProcessed", "paramtype":"uint64 *" }, + { "paramname":"punBytesTotal", "paramtype":"uint64 *" } + ], + "returntype": "EItemUpdateStatus" + }, + { + "callresult": "SetUserItemVoteResult_t", + "methodname": "SetUserItemVote", + "methodname_flat": "SteamAPI_ISteamUGC_SetUserItemVote", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"bVoteUp", "paramtype":"bool" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "GetUserItemVoteResult_t", + "methodname": "GetUserItemVote", + "methodname_flat": "SteamAPI_ISteamUGC_GetUserItemVote", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "UserFavoriteItemsListChanged_t", + "methodname": "AddItemToFavorites", + "methodname_flat": "SteamAPI_ISteamUGC_AddItemToFavorites", + "params": [ + { "paramname":"nAppId", "paramtype":"AppId_t" }, + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "UserFavoriteItemsListChanged_t", + "methodname": "RemoveItemFromFavorites", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveItemFromFavorites", + "params": [ + { "paramname":"nAppId", "paramtype":"AppId_t" }, + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageSubscribePublishedFileResult_t", + "methodname": "SubscribeItem", + "methodname_flat": "SteamAPI_ISteamUGC_SubscribeItem", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageUnsubscribePublishedFileResult_t", + "methodname": "UnsubscribeItem", + "methodname_flat": "SteamAPI_ISteamUGC_UnsubscribeItem", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetNumSubscribedItems", + "methodname_flat": "SteamAPI_ISteamUGC_GetNumSubscribedItems", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetSubscribedItems", + "methodname_flat": "SteamAPI_ISteamUGC_GetSubscribedItems", + "params": [ + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetItemState", + "methodname_flat": "SteamAPI_ISteamUGC_GetItemState", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetItemInstallInfo", + "methodname_flat": "SteamAPI_ISteamUGC_GetItemInstallInfo", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"punSizeOnDisk", "paramtype":"uint64 *" }, + { + "out_string_count": "cchFolderSize", + "paramname": "pchFolder", + "paramtype": "char *" + }, + { "paramname":"cchFolderSize", "paramtype":"uint32" }, + { "paramname":"punTimeStamp", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetItemDownloadInfo", + "methodname_flat": "SteamAPI_ISteamUGC_GetItemDownloadInfo", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"punBytesDownloaded", "paramtype":"uint64 *" }, + { "paramname":"punBytesTotal", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "DownloadItem", + "methodname_flat": "SteamAPI_ISteamUGC_DownloadItem", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"bHighPriority", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "BInitWorkshopForGameServer", + "methodname_flat": "SteamAPI_ISteamUGC_BInitWorkshopForGameServer", + "params": [ + { "paramname":"unWorkshopDepotID", "paramtype":"DepotId_t" }, + { "paramname":"pszFolder", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SuspendDownloads", + "methodname_flat": "SteamAPI_ISteamUGC_SuspendDownloads", + "params": [ + { "paramname":"bSuspend", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "callresult": "StartPlaytimeTrackingResult_t", + "methodname": "StartPlaytimeTracking", + "methodname_flat": "SteamAPI_ISteamUGC_StartPlaytimeTracking", + "params": [ + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"unNumPublishedFileIDs", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "StopPlaytimeTrackingResult_t", + "methodname": "StopPlaytimeTracking", + "methodname_flat": "SteamAPI_ISteamUGC_StopPlaytimeTracking", + "params": [ + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"unNumPublishedFileIDs", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "StopPlaytimeTrackingResult_t", + "methodname": "StopPlaytimeTrackingForAllItems", + "methodname_flat": "SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "AddUGCDependencyResult_t", + "methodname": "AddDependency", + "methodname_flat": "SteamAPI_ISteamUGC_AddDependency", + "params": [ + { "paramname":"nParentPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"nChildPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoveUGCDependencyResult_t", + "methodname": "RemoveDependency", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveDependency", + "params": [ + { "paramname":"nParentPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"nChildPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "AddAppDependencyResult_t", + "methodname": "AddAppDependency", + "methodname_flat": "SteamAPI_ISteamUGC_AddAppDependency", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoveAppDependencyResult_t", + "methodname": "RemoveAppDependency", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveAppDependency", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "GetAppDependenciesResult_t", + "methodname": "GetAppDependencies", + "methodname_flat": "SteamAPI_ISteamUGC_GetAppDependencies", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "DeleteItemResult_t", + "methodname": "DeleteItem", + "methodname_flat": "SteamAPI_ISteamUGC_DeleteItem", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "ShowWorkshopEULA", + "methodname_flat": "SteamAPI_ISteamUGC_ShowWorkshopEULA", + "params": [], + "returntype": "bool" + }, + { + "callresult": "WorkshopEULAStatus_t", + "methodname": "GetWorkshopEULAStatus", + "methodname_flat": "SteamAPI_ISteamUGC_GetWorkshopEULAStatus", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetUserContentDescriptorPreferences", + "methodname_flat": "SteamAPI_ISteamUGC_GetUserContentDescriptorPreferences", + "params": [ + { "paramname":"pvecDescriptors", "paramtype":"EUGCContentDescriptorID *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "uint32" + } + ], + "version_string": "STEAMUGC_INTERFACE_VERSION018" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamHTMLSurface", + "name_flat": "SteamAPI_SteamHTMLSurface_v005" + } + ], + "classname": "ISteamHTMLSurface", + "enums": [ + { + "enumname": "EHTMLMouseButton", + "fqname": "ISteamHTMLSurface::EHTMLMouseButton", + "values": [ + { "name":"eHTMLMouseButton_Left", "value":"0" }, + { "name":"eHTMLMouseButton_Right", "value":"1" }, + { "name":"eHTMLMouseButton_Middle", "value":"2" } + ] + }, + { + "enumname": "EMouseCursor", + "fqname": "ISteamHTMLSurface::EMouseCursor", + "values": [ + { "name":"dc_user", "value":"0" }, + { "name":"dc_none", "value":"1" }, + { "name":"dc_arrow", "value":"2" }, + { "name":"dc_ibeam", "value":"3" }, + { "name":"dc_hourglass", "value":"4" }, + { "name":"dc_waitarrow", "value":"5" }, + { "name":"dc_crosshair", "value":"6" }, + { "name":"dc_up", "value":"7" }, + { "name":"dc_sizenw", "value":"8" }, + { "name":"dc_sizese", "value":"9" }, + { "name":"dc_sizene", "value":"10" }, + { "name":"dc_sizesw", "value":"11" }, + { "name":"dc_sizew", "value":"12" }, + { "name":"dc_sizee", "value":"13" }, + { "name":"dc_sizen", "value":"14" }, + { "name":"dc_sizes", "value":"15" }, + { "name":"dc_sizewe", "value":"16" }, + { "name":"dc_sizens", "value":"17" }, + { "name":"dc_sizeall", "value":"18" }, + { "name":"dc_no", "value":"19" }, + { "name":"dc_hand", "value":"20" }, + { "name":"dc_blank", "value":"21" }, + { "name":"dc_middle_pan", "value":"22" }, + { "name":"dc_north_pan", "value":"23" }, + { "name":"dc_north_east_pan", "value":"24" }, + { "name":"dc_east_pan", "value":"25" }, + { "name":"dc_south_east_pan", "value":"26" }, + { "name":"dc_south_pan", "value":"27" }, + { "name":"dc_south_west_pan", "value":"28" }, + { "name":"dc_west_pan", "value":"29" }, + { "name":"dc_north_west_pan", "value":"30" }, + { "name":"dc_alias", "value":"31" }, + { "name":"dc_cell", "value":"32" }, + { "name":"dc_colresize", "value":"33" }, + { "name":"dc_copycur", "value":"34" }, + { "name":"dc_verticaltext", "value":"35" }, + { "name":"dc_rowresize", "value":"36" }, + { "name":"dc_zoomin", "value":"37" }, + { "name":"dc_zoomout", "value":"38" }, + { "name":"dc_help", "value":"39" }, + { "name":"dc_custom", "value":"40" }, + { "name":"dc_last", "value":"41" } + ] + }, + { + "enumname": "EHTMLKeyModifiers", + "fqname": "ISteamHTMLSurface::EHTMLKeyModifiers", + "values": [ + { "name":"k_eHTMLKeyModifier_None", "value":"0" }, + { "name":"k_eHTMLKeyModifier_AltDown", "value":"1" }, + { "name":"k_eHTMLKeyModifier_CtrlDown", "value":"2" }, + { "name":"k_eHTMLKeyModifier_ShiftDown", "value":"4" } + ] + } + ], + "fields": [], + "methods": [ + { + "methodname": "Init", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_Init", + "params": [], + "returntype": "bool" + }, + { + "methodname": "Shutdown", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_Shutdown", + "params": [], + "returntype": "bool" + }, + { + "callresult": "HTML_BrowserReady_t", + "methodname": "CreateBrowser", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_CreateBrowser", + "params": [ + { "paramname":"pchUserAgent", "paramtype":"const char *" }, + { "paramname":"pchUserCSS", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "RemoveBrowser", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_RemoveBrowser", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "LoadURL", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_LoadURL", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchURL", "paramtype":"const char *" }, + { "paramname":"pchPostData", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetSize", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetSize", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"unWidth", "paramtype":"uint32" }, + { "paramname":"unHeight", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "StopLoad", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_StopLoad", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "Reload", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_Reload", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "GoBack", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_GoBack", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "GoForward", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_GoForward", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "AddHeader", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_AddHeader", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "ExecuteJavascript", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_ExecuteJavascript", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchScript", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "MouseUp", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseUp", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"eMouseButton", "paramtype":"ISteamHTMLSurface::EHTMLMouseButton" } + ], + "returntype": "void" + }, + { + "methodname": "MouseDown", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseDown", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"eMouseButton", "paramtype":"ISteamHTMLSurface::EHTMLMouseButton" } + ], + "returntype": "void" + }, + { + "methodname": "MouseDoubleClick", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseDoubleClick", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"eMouseButton", "paramtype":"ISteamHTMLSurface::EHTMLMouseButton" } + ], + "returntype": "void" + }, + { + "methodname": "MouseMove", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseMove", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"x", "paramtype":"int" }, + { "paramname":"y", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "MouseWheel", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseWheel", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nDelta", "paramtype":"int32" } + ], + "returntype": "void" + }, + { + "methodname": "KeyDown", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_KeyDown", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nNativeKeyCode", "paramtype":"uint32" }, + { "paramname":"eHTMLKeyModifiers", "paramtype":"ISteamHTMLSurface::EHTMLKeyModifiers" }, + { "paramname":"bIsSystemKey", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "KeyUp", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_KeyUp", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nNativeKeyCode", "paramtype":"uint32" }, + { "paramname":"eHTMLKeyModifiers", "paramtype":"ISteamHTMLSurface::EHTMLKeyModifiers" } + ], + "returntype": "void" + }, + { + "methodname": "KeyChar", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_KeyChar", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"cUnicodeChar", "paramtype":"uint32" }, + { "paramname":"eHTMLKeyModifiers", "paramtype":"ISteamHTMLSurface::EHTMLKeyModifiers" } + ], + "returntype": "void" + }, + { + "methodname": "SetHorizontalScroll", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetHorizontalScroll", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nAbsolutePixelScroll", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "SetVerticalScroll", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetVerticalScroll", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nAbsolutePixelScroll", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "SetKeyFocus", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetKeyFocus", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"bHasKeyFocus", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "ViewSource", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_ViewSource", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "CopyToClipboard", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_CopyToClipboard", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "PasteFromClipboard", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_PasteFromClipboard", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "Find", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_Find", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchSearchStr", "paramtype":"const char *" }, + { "paramname":"bCurrentlyInFind", "paramtype":"bool" }, + { "paramname":"bReverse", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "StopFind", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_StopFind", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "GetLinkAtPosition", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_GetLinkAtPosition", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"x", "paramtype":"int" }, + { "paramname":"y", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "SetCookie", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetCookie", + "params": [ + { "paramname":"pchHostname", "paramtype":"const char *" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" }, + { "paramname":"pchPath", "paramtype":"const char *" }, + { "paramname":"nExpires", "paramtype":"RTime32" }, + { "paramname":"bSecure", "paramtype":"bool" }, + { "paramname":"bHTTPOnly", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SetPageScaleFactor", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetPageScaleFactor", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"flZoom", "paramtype":"float" }, + { "paramname":"nPointX", "paramtype":"int" }, + { "paramname":"nPointY", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "SetBackgroundMode", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetBackgroundMode", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"bBackgroundMode", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SetDPIScalingFactor", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetDPIScalingFactor", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"flDPIScaling", "paramtype":"float" } + ], + "returntype": "void" + }, + { + "methodname": "OpenDeveloperTools", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_OpenDeveloperTools", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "AllowStartRequest", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_AllowStartRequest", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"bAllowed", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "JSDialogResponse", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_JSDialogResponse", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"bResult", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "FileLoadDialogResponse", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_FileLoadDialogResponse", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchSelectedFiles", "paramtype":"const char **" } + ], + "returntype": "void" + } + ], + "version_string": "STEAMHTMLSURFACE_INTERFACE_VERSION_005" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamInventory", + "name_flat": "SteamAPI_SteamInventory_v003" + }, + { + "kind": "gameserver", + "name": "SteamGameServerInventory", + "name_flat": "SteamAPI_SteamGameServerInventory_v003" + } + ], + "classname": "ISteamInventory", + "fields": [], + "methods": [ + { + "methodname": "GetResultStatus", + "methodname_flat": "SteamAPI_ISteamInventory_GetResultStatus", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" } + ], + "returntype": "EResult" + }, + { + "methodname": "GetResultItems", + "methodname_flat": "SteamAPI_ISteamInventory_GetResultItems", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" }, + { + "desc": "Output array", + "out_array_count": "punOutItemsArraySize", + "paramname": "pOutItemsArray", + "paramtype": "SteamItemDetails_t *" + }, + { "paramname":"punOutItemsArraySize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetResultItemProperty", + "methodname_flat": "SteamAPI_ISteamInventory_GetResultItemProperty", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" }, + { "paramname":"unItemIndex", "paramtype":"uint32" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { + "out_string_count": "punValueBufferSizeOut", + "paramname": "pchValueBuffer", + "paramtype": "char *" + }, + { "paramname":"punValueBufferSizeOut", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetResultTimestamp", + "methodname_flat": "SteamAPI_ISteamInventory_GetResultTimestamp", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "CheckResultSteamID", + "methodname_flat": "SteamAPI_ISteamInventory_CheckResultSteamID", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" }, + { "paramname":"steamIDExpected", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "DestroyResult", + "methodname_flat": "SteamAPI_ISteamInventory_DestroyResult", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetAllItems", + "methodname_flat": "SteamAPI_ISteamInventory_GetAllItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetItemsByID", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemsByID", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "array_count": "unCountInstanceIDs", + "paramname": "pInstanceIDs", + "paramtype": "const SteamItemInstanceID_t *" + }, + { "paramname":"unCountInstanceIDs", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SerializeResult", + "methodname_flat": "SteamAPI_ISteamInventory_SerializeResult", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" }, + { + "out_buffer_count": "punOutBufferSize", + "paramname": "pOutBuffer", + "paramtype": "void *" + }, + { "paramname":"punOutBufferSize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "DeserializeResult", + "methodname_flat": "SteamAPI_ISteamInventory_DeserializeResult", + "params": [ + { "paramname":"pOutResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "buffer_count": "punOutBufferSize", + "paramname": "pBuffer", + "paramtype": "const void *" + }, + { "paramname":"unBufferSize", "paramtype":"uint32" }, + { "paramname":"bRESERVED_MUST_BE_FALSE", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "GenerateItems", + "methodname_flat": "SteamAPI_ISteamInventory_GenerateItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "array_count": "unArrayLength", + "paramname": "pArrayItemDefs", + "paramtype": "const SteamItemDef_t *" + }, + { + "array_count": "unArrayLength", + "paramname": "punArrayQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"unArrayLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GrantPromoItems", + "methodname_flat": "SteamAPI_ISteamInventory_GrantPromoItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddPromoItem", + "methodname_flat": "SteamAPI_ISteamInventory_AddPromoItem", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"itemDef", "paramtype":"SteamItemDef_t" } + ], + "returntype": "bool" + }, + { + "methodname": "AddPromoItems", + "methodname_flat": "SteamAPI_ISteamInventory_AddPromoItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "array_count": "unArrayLength", + "paramname": "pArrayItemDefs", + "paramtype": "const SteamItemDef_t *" + }, + { "paramname":"unArrayLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "ConsumeItem", + "methodname_flat": "SteamAPI_ISteamInventory_ConsumeItem", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"itemConsume", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"unQuantity", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "ExchangeItems", + "methodname_flat": "SteamAPI_ISteamInventory_ExchangeItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "array_count": "unArrayGenerateLength", + "paramname": "pArrayGenerate", + "paramtype": "const SteamItemDef_t *" + }, + { + "array_count": "unArrayGenerateLength", + "paramname": "punArrayGenerateQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"unArrayGenerateLength", "paramtype":"uint32" }, + { + "array_count": "unArrayDestroyLength", + "paramname": "pArrayDestroy", + "paramtype": "const SteamItemInstanceID_t *" + }, + { + "array_count": "unArrayDestroyLength", + "paramname": "punArrayDestroyQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"unArrayDestroyLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "TransferItemQuantity", + "methodname_flat": "SteamAPI_ISteamInventory_TransferItemQuantity", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"itemIdSource", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"unQuantity", "paramtype":"uint32" }, + { "paramname":"itemIdDest", "paramtype":"SteamItemInstanceID_t" } + ], + "returntype": "bool" + }, + { + "methodname": "SendItemDropHeartbeat", + "methodname_flat": "SteamAPI_ISteamInventory_SendItemDropHeartbeat", + "params": [], + "returntype": "void" + }, + { + "methodname": "TriggerItemDrop", + "methodname_flat": "SteamAPI_ISteamInventory_TriggerItemDrop", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"dropListDefinition", "paramtype":"SteamItemDef_t" } + ], + "returntype": "bool" + }, + { + "methodname": "TradeItems", + "methodname_flat": "SteamAPI_ISteamInventory_TradeItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"steamIDTradePartner", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { + "array_count": "nArrayGiveLength", + "paramname": "pArrayGive", + "paramtype": "const SteamItemInstanceID_t *" + }, + { + "array_count": "nArrayGiveLength", + "paramname": "pArrayGiveQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"nArrayGiveLength", "paramtype":"uint32" }, + { + "array_count": "nArrayGetLength", + "paramname": "pArrayGet", + "paramtype": "const SteamItemInstanceID_t *" + }, + { + "array_count": "nArrayGetLength", + "paramname": "pArrayGetQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"nArrayGetLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "LoadItemDefinitions", + "methodname_flat": "SteamAPI_ISteamInventory_LoadItemDefinitions", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetItemDefinitionIDs", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemDefinitionIDs", + "params": [ + { + "desc": "List of item definition IDs", + "out_array_count": "punItemDefIDsArraySize", + "paramname": "pItemDefIDs", + "paramtype": "SteamItemDef_t *" + }, + { + "desc": "Size of array is passed in and actual size used is returned in this param", + "paramname": "punItemDefIDsArraySize", + "paramtype": "uint32 *" + } + ], + "returntype": "bool" + }, + { + "methodname": "GetItemDefinitionProperty", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemDefinitionProperty", + "params": [ + { "paramname":"iDefinition", "paramtype":"SteamItemDef_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { + "out_string_count": "punValueBufferSizeOut", + "paramname": "pchValueBuffer", + "paramtype": "char *" + }, + { "paramname":"punValueBufferSizeOut", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "callresult": "SteamInventoryEligiblePromoItemDefIDs_t", + "methodname": "RequestEligiblePromoItemDefinitionsIDs", + "methodname_flat": "SteamAPI_ISteamInventory_RequestEligiblePromoItemDefinitionsIDs", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetEligiblePromoItemDefinitionIDs", + "methodname_flat": "SteamAPI_ISteamInventory_GetEligiblePromoItemDefinitionIDs", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { + "desc": "List of item definition IDs", + "out_array_count": "punItemDefIDsArraySize", + "paramname": "pItemDefIDs", + "paramtype": "SteamItemDef_t *" + }, + { + "desc": "Size of array is passed in and actual size used is returned in this param", + "paramname": "punItemDefIDsArraySize", + "paramtype": "uint32 *" + } + ], + "returntype": "bool" + }, + { + "callresult": "SteamInventoryStartPurchaseResult_t", + "methodname": "StartPurchase", + "methodname_flat": "SteamAPI_ISteamInventory_StartPurchase", + "params": [ + { + "array_count": "unArrayLength", + "paramname": "pArrayItemDefs", + "paramtype": "const SteamItemDef_t *" + }, + { + "array_count": "unArrayLength", + "paramname": "punArrayQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"unArrayLength", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "SteamInventoryRequestPricesResult_t", + "methodname": "RequestPrices", + "methodname_flat": "SteamAPI_ISteamInventory_RequestPrices", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetNumItemsWithPrices", + "methodname_flat": "SteamAPI_ISteamInventory_GetNumItemsWithPrices", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetItemsWithPrices", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemsWithPrices", + "params": [ + { + "array_count": "unArrayLength", + "desc": "Items with prices", + "out_array_count": "pArrayItemDefs", + "paramname": "pArrayItemDefs", + "paramtype": "SteamItemDef_t *" + }, + { + "array_count": "unArrayLength", + "desc": "List of prices for the given item defs", + "out_array_count": "pPrices", + "paramname": "pCurrentPrices", + "paramtype": "uint64 *" + }, + { + "array_count": "unArrayLength", + "desc": "List of prices for the given item defs", + "out_array_count": "pPrices", + "paramname": "pBasePrices", + "paramtype": "uint64 *" + }, + { "paramname":"unArrayLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetItemPrice", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemPrice", + "params": [ + { "paramname":"iDefinition", "paramtype":"SteamItemDef_t" }, + { "paramname":"pCurrentPrice", "paramtype":"uint64 *" }, + { "paramname":"pBasePrice", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "StartUpdateProperties", + "methodname_flat": "SteamAPI_ISteamInventory_StartUpdateProperties", + "params": [], + "returntype": "SteamInventoryUpdateHandle_t" + }, + { + "methodname": "RemoveProperty", + "methodname_flat": "SteamAPI_ISteamInventory_RemoveProperty", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetProperty", + "methodname_flat": "SteamAPI_ISteamInventory_SetPropertyString", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { "paramname":"pchPropertyValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetProperty", + "methodname_flat": "SteamAPI_ISteamInventory_SetPropertyBool", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetProperty", + "methodname_flat": "SteamAPI_ISteamInventory_SetPropertyInt64", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { "paramname":"nValue", "paramtype":"int64" } + ], + "returntype": "bool" + }, + { + "methodname": "SetProperty", + "methodname_flat": "SteamAPI_ISteamInventory_SetPropertyFloat", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { "paramname":"flValue", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "SubmitUpdateProperties", + "methodname_flat": "SteamAPI_ISteamInventory_SubmitUpdateProperties", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "InspectItem", + "methodname_flat": "SteamAPI_ISteamInventory_InspectItem", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"pchItemToken", "paramtype":"const char *" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMINVENTORY_INTERFACE_V003" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamParentalSettings", + "name_flat": "SteamAPI_SteamParentalSettings_v001" + } + ], + "classname": "ISteamParentalSettings", + "fields": [], + "methods": [ + { + "methodname": "BIsParentalLockEnabled", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsParentalLockEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsParentalLockLocked", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsParentalLockLocked", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsAppBlocked", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsAppBlocked", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "BIsAppInBlockList", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsAppInBlockList", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "BIsFeatureBlocked", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsFeatureBlocked", + "params": [ + { "paramname":"eFeature", "paramtype":"EParentalFeature" } + ], + "returntype": "bool" + }, + { + "methodname": "BIsFeatureInBlockList", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsFeatureInBlockList", + "params": [ + { "paramname":"eFeature", "paramtype":"EParentalFeature" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMPARENTALSETTINGS_INTERFACE_VERSION001" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamRemotePlay", + "name_flat": "SteamAPI_SteamRemotePlay_v002" + } + ], + "classname": "ISteamRemotePlay", + "fields": [], + "methods": [ + { + "methodname": "GetSessionCount", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionCount", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetSessionID", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionID", + "params": [ + { "paramname":"iSessionIndex", "paramtype":"int" } + ], + "returntype": "RemotePlaySessionID_t" + }, + { + "methodname": "GetSessionSteamID", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionSteamID", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetSessionClientName", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionClientName", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetSessionClientFormFactor", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionClientFormFactor", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "ESteamDeviceFormFactor" + }, + { + "methodname": "BGetSessionClientResolution", + "methodname_flat": "SteamAPI_ISteamRemotePlay_BGetSessionClientResolution", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" }, + { "paramname":"pnResolutionX", "paramtype":"int *" }, + { "paramname":"pnResolutionY", "paramtype":"int *" } + ], + "returntype": "bool" + }, + { + "methodname": "BStartRemotePlayTogether", + "methodname_flat": "SteamAPI_ISteamRemotePlay_BStartRemotePlayTogether", + "params": [ + { "paramname":"bShowOverlay", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "BSendRemotePlayTogetherInvite", + "methodname_flat": "SteamAPI_ISteamRemotePlay_BSendRemotePlayTogetherInvite", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMREMOTEPLAY_INTERFACE_VERSION002" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamNetworkingMessages_SteamAPI", + "name_flat": "SteamAPI_SteamNetworkingMessages_SteamAPI_v002" + }, + { + "kind": "gameserver", + "name": "SteamGameServerNetworkingMessages_SteamAPI", + "name_flat": "SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002" + } + ], + "classname": "ISteamNetworkingMessages", + "fields": [], + "methods": [ + { + "methodname": "SendMessageToUser", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_SendMessageToUser", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"pubData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"uint32" }, + { "paramname":"nSendFlags", "paramtype":"int" }, + { "paramname":"nRemoteChannel", "paramtype":"int" } + ], + "returntype": "EResult" + }, + { + "methodname": "ReceiveMessagesOnChannel", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_ReceiveMessagesOnChannel", + "params": [ + { "paramname":"nLocalChannel", "paramtype":"int" }, + { "paramname":"ppOutMessages", "paramtype":"SteamNetworkingMessage_t **" }, + { "paramname":"nMaxMessages", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "AcceptSessionWithUser", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_AcceptSessionWithUser", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseSessionWithUser", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_CloseSessionWithUser", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseChannelWithUser", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_CloseChannelWithUser", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"nLocalChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetSessionConnectionInfo", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_GetSessionConnectionInfo", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"pConnectionInfo", "paramtype":"SteamNetConnectionInfo_t *" }, + { "paramname":"pQuickStatus", "paramtype":"SteamNetConnectionRealTimeStatus_t *" } + ], + "returntype": "ESteamNetworkingConnectionState" + } + ], + "version_string": "SteamNetworkingMessages002" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamNetworkingSockets_SteamAPI", + "name_flat": "SteamAPI_SteamNetworkingSockets_SteamAPI_v012" + }, + { + "kind": "gameserver", + "name": "SteamGameServerNetworkingSockets_SteamAPI", + "name_flat": "SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v012" + } + ], + "classname": "ISteamNetworkingSockets", + "fields": [], + "methods": [ + { + "methodname": "CreateListenSocketIP", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateListenSocketIP", + "params": [ + { "paramname":"localAddress", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamListenSocket" + }, + { + "methodname": "ConnectByIPAddress", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectByIPAddress", + "params": [ + { "paramname":"address", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamNetConnection" + }, + { + "methodname": "CreateListenSocketP2P", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2P", + "params": [ + { "paramname":"nLocalVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamListenSocket" + }, + { + "methodname": "ConnectP2P", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectP2P", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"nRemoteVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamNetConnection" + }, + { + "methodname": "AcceptConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_AcceptConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" } + ], + "returntype": "EResult" + }, + { + "methodname": "CloseConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CloseConnection", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" }, + { "paramname":"nReason", "paramtype":"int" }, + { "paramname":"pszDebug", "paramtype":"const char *" }, + { "paramname":"bEnableLinger", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseListenSocket", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CloseListenSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"HSteamListenSocket" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionUserData", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SetConnectionUserData", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" }, + { "paramname":"nUserData", "paramtype":"int64" } + ], + "returntype": "bool" + }, + { + "methodname": "GetConnectionUserData", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetConnectionUserData", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" } + ], + "returntype": "int64" + }, + { + "methodname": "SetConnectionName", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SetConnectionName", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" }, + { "paramname":"pszName", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "GetConnectionName", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetConnectionName", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" }, + { "paramname":"pszName", "paramtype":"char *" }, + { "paramname":"nMaxLen", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "SendMessageToConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SendMessageToConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pData", "paramtype":"const void *" }, + { "paramname":"cbData", "paramtype":"uint32" }, + { "paramname":"nSendFlags", "paramtype":"int" }, + { "paramname":"pOutMessageNumber", "paramtype":"int64 *" } + ], + "returntype": "EResult" + }, + { + "methodname": "SendMessages", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SendMessages", + "params": [ + { "paramname":"nMessages", "paramtype":"int" }, + { "paramname":"pMessages", "paramtype":"SteamNetworkingMessage_t *const *" }, + { "paramname":"pOutMessageNumberOrResult", "paramtype":"int64 *" } + ], + "returntype": "void" + }, + { + "methodname": "FlushMessagesOnConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_FlushMessagesOnConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" } + ], + "returntype": "EResult" + }, + { + "methodname": "ReceiveMessagesOnConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"ppOutMessages", "paramtype":"SteamNetworkingMessage_t **" }, + { "paramname":"nMaxMessages", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "GetConnectionInfo", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetConnectionInfo", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pInfo", "paramtype":"SteamNetConnectionInfo_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetConnectionRealTimeStatus", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetConnectionRealTimeStatus", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pStatus", "paramtype":"SteamNetConnectionRealTimeStatus_t *" }, + { "paramname":"nLanes", "paramtype":"int" }, + { "paramname":"pLanes", "paramtype":"SteamNetConnectionRealTimeLaneStatus_t *" } + ], + "returntype": "EResult" + }, + { + "methodname": "GetDetailedConnectionStatus", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetDetailedConnectionStatus", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pszBuf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "GetListenSocketAddress", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetListenSocketAddress", + "params": [ + { "paramname":"hSocket", "paramtype":"HSteamListenSocket" }, + { "paramname":"address", "paramtype":"SteamNetworkingIPAddr *" } + ], + "returntype": "bool" + }, + { + "methodname": "CreateSocketPair", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateSocketPair", + "params": [ + { "paramname":"pOutConnection1", "paramtype":"HSteamNetConnection *" }, + { "paramname":"pOutConnection2", "paramtype":"HSteamNetConnection *" }, + { "paramname":"bUseNetworkLoopback", "paramtype":"bool" }, + { "paramname":"pIdentity1", "paramtype":"const SteamNetworkingIdentity *" }, + { "paramname":"pIdentity2", "paramtype":"const SteamNetworkingIdentity *" } + ], + "returntype": "bool" + }, + { + "methodname": "ConfigureConnectionLanes", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConfigureConnectionLanes", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"nNumLanes", "paramtype":"int" }, + { "paramname":"pLanePriorities", "paramtype":"const int *" }, + { "paramname":"pLaneWeights", "paramtype":"const uint16 *" } + ], + "returntype": "EResult" + }, + { + "methodname": "GetIdentity", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetIdentity", + "params": [ + { "paramname":"pIdentity", "paramtype":"SteamNetworkingIdentity *" } + ], + "returntype": "bool" + }, + { + "methodname": "InitAuthentication", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_InitAuthentication", + "params": [], + "returntype": "ESteamNetworkingAvailability" + }, + { + "methodname": "GetAuthenticationStatus", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetAuthenticationStatus", + "params": [ + { "paramname":"pDetails", "paramtype":"SteamNetAuthenticationStatus_t *" } + ], + "returntype": "ESteamNetworkingAvailability" + }, + { + "methodname": "CreatePollGroup", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreatePollGroup", + "params": [], + "returntype": "HSteamNetPollGroup" + }, + { + "methodname": "DestroyPollGroup", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_DestroyPollGroup", + "params": [ + { "paramname":"hPollGroup", "paramtype":"HSteamNetPollGroup" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionPollGroup", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SetConnectionPollGroup", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"hPollGroup", "paramtype":"HSteamNetPollGroup" } + ], + "returntype": "bool" + }, + { + "methodname": "ReceiveMessagesOnPollGroup", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnPollGroup", + "params": [ + { "paramname":"hPollGroup", "paramtype":"HSteamNetPollGroup" }, + { "paramname":"ppOutMessages", "paramtype":"SteamNetworkingMessage_t **" }, + { "paramname":"nMaxMessages", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "ReceivedRelayAuthTicket", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ReceivedRelayAuthTicket", + "params": [ + { "paramname":"pvTicket", "paramtype":"const void *" }, + { "paramname":"cbTicket", "paramtype":"int" }, + { "paramname":"pOutParsedTicket", "paramtype":"SteamDatagramRelayAuthTicket *" } + ], + "returntype": "bool" + }, + { + "methodname": "FindRelayAuthTicketForServer", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_FindRelayAuthTicketForServer", + "params": [ + { "paramname":"identityGameServer", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"nRemoteVirtualPort", "paramtype":"int" }, + { "paramname":"pOutParsedTicket", "paramtype":"SteamDatagramRelayAuthTicket *" } + ], + "returntype": "int" + }, + { + "methodname": "ConnectToHostedDedicatedServer", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectToHostedDedicatedServer", + "params": [ + { "paramname":"identityTarget", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"nRemoteVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamNetConnection" + }, + { + "methodname": "GetHostedDedicatedServerPort", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPort", + "params": [], + "returntype": "uint16" + }, + { + "methodname": "GetHostedDedicatedServerPOPID", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPOPID", + "params": [], + "returntype": "SteamNetworkingPOPID" + }, + { + "methodname": "GetHostedDedicatedServerAddress", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerAddress", + "params": [ + { "paramname":"pRouting", "paramtype":"SteamDatagramHostedAddress *" } + ], + "returntype": "EResult" + }, + { + "methodname": "CreateHostedDedicatedServerListenSocket", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket", + "params": [ + { "paramname":"nLocalVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamListenSocket" + }, + { + "methodname": "GetGameCoordinatorServerLogin", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetGameCoordinatorServerLogin", + "params": [ + { "paramname":"pLoginInfo", "paramtype":"SteamDatagramGameCoordinatorServerLogin *" }, + { "paramname":"pcbSignedBlob", "paramtype":"int *" }, + { "paramname":"pBlob", "paramtype":"void *" } + ], + "returntype": "EResult" + }, + { + "methodname": "ConnectP2PCustomSignaling", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectP2PCustomSignaling", + "params": [ + { "paramname":"pSignaling", "paramtype":"ISteamNetworkingConnectionSignaling *" }, + { "paramname":"pPeerIdentity", "paramtype":"const SteamNetworkingIdentity *" }, + { "paramname":"nRemoteVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamNetConnection" + }, + { + "methodname": "ReceivedP2PCustomSignal", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ReceivedP2PCustomSignal", + "params": [ + { "paramname":"pMsg", "paramtype":"const void *" }, + { "paramname":"cbMsg", "paramtype":"int" }, + { "paramname":"pContext", "paramtype":"ISteamNetworkingSignalingRecvContext *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetCertificateRequest", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetCertificateRequest", + "params": [ + { "paramname":"pcbBlob", "paramtype":"int *" }, + { "paramname":"pBlob", "paramtype":"void *" }, + { "paramname":"errMsg", "paramtype":"SteamNetworkingErrMsg &" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCertificate", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SetCertificate", + "params": [ + { "paramname":"pCertificate", "paramtype":"const void *" }, + { "paramname":"cbCertificate", "paramtype":"int" }, + { "paramname":"errMsg", "paramtype":"SteamNetworkingErrMsg &" } + ], + "returntype": "bool" + }, + { + "methodname": "ResetIdentity", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ResetIdentity", + "params": [ + { "paramname":"pIdentity", "paramtype":"const SteamNetworkingIdentity *" } + ], + "returntype": "void" + }, + { + "methodname": "RunCallbacks", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_RunCallbacks", + "params": [], + "returntype": "void" + }, + { + "methodname": "BeginAsyncRequestFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_BeginAsyncRequestFakeIP", + "params": [ + { "paramname":"nNumPorts", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetFakeIP", + "params": [ + { "paramname":"idxFirstPort", "paramtype":"int" }, + { "paramname":"pInfo", "paramtype":"SteamNetworkingFakeIPResult_t *" } + ], + "returntype": "void" + }, + { + "methodname": "CreateListenSocketP2PFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2PFakeIP", + "params": [ + { "paramname":"idxFakePort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamListenSocket" + }, + { + "methodname": "GetRemoteFakeIPForConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetRemoteFakeIPForConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pOutAddr", "paramtype":"SteamNetworkingIPAddr *" } + ], + "returntype": "EResult" + }, + { + "methodname": "CreateFakeUDPPort", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateFakeUDPPort", + "params": [ + { "paramname":"idxFakeServerPort", "paramtype":"int" } + ], + "returntype": "ISteamNetworkingFakeUDPPort *" + } + ], + "version_string": "SteamNetworkingSockets012" + }, + { + "accessors": [ + { + "kind": "global", + "name": "SteamNetworkingUtils_SteamAPI", + "name_flat": "SteamAPI_SteamNetworkingUtils_SteamAPI_v004" + } + ], + "classname": "ISteamNetworkingUtils", + "fields": [], + "methods": [ + { + "methodname": "AllocateMessage", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_AllocateMessage", + "params": [ + { "paramname":"cbAllocateBuffer", "paramtype":"int" } + ], + "returntype": "SteamNetworkingMessage_t *" + }, + { + "methodname": "InitRelayNetworkAccess", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_InitRelayNetworkAccess", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetRelayNetworkStatus", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetRelayNetworkStatus", + "params": [ + { "paramname":"pDetails", "paramtype":"SteamRelayNetworkStatus_t *" } + ], + "returntype": "ESteamNetworkingAvailability" + }, + { + "methodname": "GetLocalPingLocation", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetLocalPingLocation", + "params": [ + { "paramname":"result", "paramtype":"SteamNetworkPingLocation_t &" } + ], + "returntype": "float" + }, + { + "methodname": "EstimatePingTimeBetweenTwoLocations", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_EstimatePingTimeBetweenTwoLocations", + "params": [ + { "paramname":"location1", "paramtype":"const SteamNetworkPingLocation_t &" }, + { "paramname":"location2", "paramtype":"const SteamNetworkPingLocation_t &" } + ], + "returntype": "int" + }, + { + "methodname": "EstimatePingTimeFromLocalHost", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_EstimatePingTimeFromLocalHost", + "params": [ + { "paramname":"remoteLocation", "paramtype":"const SteamNetworkPingLocation_t &" } + ], + "returntype": "int" + }, + { + "methodname": "ConvertPingLocationToString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_ConvertPingLocationToString", + "params": [ + { "paramname":"location", "paramtype":"const SteamNetworkPingLocation_t &" }, + { "paramname":"pszBuf", "paramtype":"char *" }, + { "paramname":"cchBufSize", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "ParsePingLocationString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_ParsePingLocationString", + "params": [ + { "paramname":"pszString", "paramtype":"const char *" }, + { "paramname":"result", "paramtype":"SteamNetworkPingLocation_t &" } + ], + "returntype": "bool" + }, + { + "methodname": "CheckPingDataUpToDate", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_CheckPingDataUpToDate", + "params": [ + { "paramname":"flMaxAgeSeconds", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "GetPingToDataCenter", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetPingToDataCenter", + "params": [ + { "paramname":"popID", "paramtype":"SteamNetworkingPOPID" }, + { "paramname":"pViaRelayPoP", "paramtype":"SteamNetworkingPOPID *" } + ], + "returntype": "int" + }, + { + "methodname": "GetDirectPingToPOP", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetDirectPingToPOP", + "params": [ + { "paramname":"popID", "paramtype":"SteamNetworkingPOPID" } + ], + "returntype": "int" + }, + { + "methodname": "GetPOPCount", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetPOPCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetPOPList", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetPOPList", + "params": [ + { "paramname":"list", "paramtype":"SteamNetworkingPOPID *" }, + { "paramname":"nListSz", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "GetLocalTimestamp", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetLocalTimestamp", + "params": [], + "returntype": "SteamNetworkingMicroseconds" + }, + { + "methodname": "SetDebugOutputFunction", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetDebugOutputFunction", + "params": [ + { "paramname":"eDetailLevel", "paramtype":"ESteamNetworkingSocketsDebugOutputType" }, + { "paramname":"pfnFunc", "paramtype":"FSteamNetworkingSocketsDebugOutput" } + ], + "returntype": "void" + }, + { + "methodname": "IsFakeIPv4", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_IsFakeIPv4", + "params": [ + { "paramname":"nIPv4", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetIPv4FakeIPType", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetIPv4FakeIPType", + "params": [ + { "paramname":"nIPv4", "paramtype":"uint32" } + ], + "returntype": "ESteamNetworkingFakeIPType" + }, + { + "methodname": "GetRealIdentityForFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetRealIdentityForFakeIP", + "params": [ + { "paramname":"fakeIP", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"pOutRealIdentity", "paramtype":"SteamNetworkingIdentity *" } + ], + "returntype": "EResult" + }, + { + "methodname": "SetGlobalConfigValueInt32", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueInt32", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalConfigValueFloat", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueFloat", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalConfigValueString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueString", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalConfigValuePtr", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValuePtr", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"void *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionConfigValueInt32", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueInt32", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionConfigValueFloat", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueFloat", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionConfigValueString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueString", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_SteamNetConnectionStatusChanged", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetConnectionStatusChanged", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetConnectionStatusChanged" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_SteamNetAuthenticationStatusChanged", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetAuthenticationStatusChanged", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetAuthenticationStatusChanged" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_SteamRelayNetworkStatusChanged", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamRelayNetworkStatusChanged", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamRelayNetworkStatusChanged" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_FakeIPResult", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_FakeIPResult", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetworkingFakeIPResult" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_MessagesSessionRequest", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionRequest", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetworkingMessagesSessionRequest" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_MessagesSessionFailed", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionFailed", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetworkingMessagesSessionFailed" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConfigValue", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConfigValue", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"eScopeType", "paramtype":"ESteamNetworkingConfigScope" }, + { "paramname":"scopeObj", "paramtype":"intptr_t" }, + { "paramname":"eDataType", "paramtype":"ESteamNetworkingConfigDataType" }, + { "paramname":"pArg", "paramtype":"const void *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConfigValueStruct", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConfigValueStruct", + "params": [ + { "paramname":"opt", "paramtype":"const SteamNetworkingConfigValue_t &" }, + { "paramname":"eScopeType", "paramtype":"ESteamNetworkingConfigScope" }, + { "paramname":"scopeObj", "paramtype":"intptr_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetConfigValue", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetConfigValue", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"eScopeType", "paramtype":"ESteamNetworkingConfigScope" }, + { "paramname":"scopeObj", "paramtype":"intptr_t" }, + { "paramname":"pOutDataType", "paramtype":"ESteamNetworkingConfigDataType *" }, + { "paramname":"pResult", "paramtype":"void *" }, + { "paramname":"cbResult", "paramtype":"size_t *" } + ], + "returntype": "ESteamNetworkingGetConfigValueResult" + }, + { + "methodname": "GetConfigValueInfo", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetConfigValueInfo", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"pOutDataType", "paramtype":"ESteamNetworkingConfigDataType *" }, + { "paramname":"pOutScope", "paramtype":"ESteamNetworkingConfigScope *" } + ], + "returntype": "const char *" + }, + { + "methodname": "IterateGenericEditableConfigValues", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_IterateGenericEditableConfigValues", + "params": [ + { "paramname":"eCurrent", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"bEnumerateDevVars", "paramtype":"bool" } + ], + "returntype": "ESteamNetworkingConfigValue" + }, + { + "methodname": "SteamNetworkingIPAddr_ToString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ToString", + "params": [ + { "paramname":"addr", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"buf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"uint32" }, + { "paramname":"bWithPort", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SteamNetworkingIPAddr_ParseString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ParseString", + "params": [ + { "paramname":"pAddr", "paramtype":"SteamNetworkingIPAddr *" }, + { "paramname":"pszStr", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SteamNetworkingIPAddr_GetFakeIPType", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_GetFakeIPType", + "params": [ + { "paramname":"addr", "paramtype":"const SteamNetworkingIPAddr &" } + ], + "returntype": "ESteamNetworkingFakeIPType" + }, + { + "methodname": "SteamNetworkingIdentity_ToString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ToString", + "params": [ + { "paramname":"identity", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"buf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "SteamNetworkingIdentity_ParseString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString", + "params": [ + { "paramname":"pIdentity", "paramtype":"SteamNetworkingIdentity *" }, + { "paramname":"pszStr", "paramtype":"const char *" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamNetworkingUtils004" + }, + { + "accessors": [ + { + "kind": "gameserver", + "name": "SteamGameServer", + "name_flat": "SteamAPI_SteamGameServer_v015" + } + ], + "classname": "ISteamGameServer", + "fields": [], + "methods": [ + { + "methodname": "SetProduct", + "methodname_flat": "SteamAPI_ISteamGameServer_SetProduct", + "params": [ + { "paramname":"pszProduct", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetGameDescription", + "methodname_flat": "SteamAPI_ISteamGameServer_SetGameDescription", + "params": [ + { "paramname":"pszGameDescription", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetModDir", + "methodname_flat": "SteamAPI_ISteamGameServer_SetModDir", + "params": [ + { "paramname":"pszModDir", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetDedicatedServer", + "methodname_flat": "SteamAPI_ISteamGameServer_SetDedicatedServer", + "params": [ + { "paramname":"bDedicated", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "LogOn", + "methodname_flat": "SteamAPI_ISteamGameServer_LogOn", + "params": [ + { "paramname":"pszToken", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "LogOnAnonymous", + "methodname_flat": "SteamAPI_ISteamGameServer_LogOnAnonymous", + "params": [], + "returntype": "void" + }, + { + "methodname": "LogOff", + "methodname_flat": "SteamAPI_ISteamGameServer_LogOff", + "params": [], + "returntype": "void" + }, + { + "methodname": "BLoggedOn", + "methodname_flat": "SteamAPI_ISteamGameServer_BLoggedOn", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BSecure", + "methodname_flat": "SteamAPI_ISteamGameServer_BSecure", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetSteamID", + "methodname_flat": "SteamAPI_ISteamGameServer_GetSteamID", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "WasRestartRequested", + "methodname_flat": "SteamAPI_ISteamGameServer_WasRestartRequested", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetMaxPlayerCount", + "methodname_flat": "SteamAPI_ISteamGameServer_SetMaxPlayerCount", + "params": [ + { "paramname":"cPlayersMax", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "SetBotPlayerCount", + "methodname_flat": "SteamAPI_ISteamGameServer_SetBotPlayerCount", + "params": [ + { "paramname":"cBotplayers", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "SetServerName", + "methodname_flat": "SteamAPI_ISteamGameServer_SetServerName", + "params": [ + { "paramname":"pszServerName", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetMapName", + "methodname_flat": "SteamAPI_ISteamGameServer_SetMapName", + "params": [ + { "paramname":"pszMapName", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetPasswordProtected", + "methodname_flat": "SteamAPI_ISteamGameServer_SetPasswordProtected", + "params": [ + { "paramname":"bPasswordProtected", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SetSpectatorPort", + "methodname_flat": "SteamAPI_ISteamGameServer_SetSpectatorPort", + "params": [ + { "paramname":"unSpectatorPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "SetSpectatorServerName", + "methodname_flat": "SteamAPI_ISteamGameServer_SetSpectatorServerName", + "params": [ + { "paramname":"pszSpectatorServerName", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "ClearAllKeyValues", + "methodname_flat": "SteamAPI_ISteamGameServer_ClearAllKeyValues", + "params": [], + "returntype": "void" + }, + { + "methodname": "SetKeyValue", + "methodname_flat": "SteamAPI_ISteamGameServer_SetKeyValue", + "params": [ + { "paramname":"pKey", "paramtype":"const char *" }, + { "paramname":"pValue", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetGameTags", + "methodname_flat": "SteamAPI_ISteamGameServer_SetGameTags", + "params": [ + { "paramname":"pchGameTags", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetGameData", + "methodname_flat": "SteamAPI_ISteamGameServer_SetGameData", + "params": [ + { "paramname":"pchGameData", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetRegion", + "methodname_flat": "SteamAPI_ISteamGameServer_SetRegion", + "params": [ + { "paramname":"pszRegion", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetAdvertiseServerActive", + "methodname_flat": "SteamAPI_ISteamGameServer_SetAdvertiseServerActive", + "params": [ + { "paramname":"bActive", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "GetAuthSessionTicket", + "methodname_flat": "SteamAPI_ISteamGameServer_GetAuthSessionTicket", + "params": [ + { "paramname":"pTicket", "paramtype":"void *" }, + { "paramname":"cbMaxTicket", "paramtype":"int" }, + { "paramname":"pcbTicket", "paramtype":"uint32 *" }, + { "paramname":"pSnid", "paramtype":"const SteamNetworkingIdentity *" } + ], + "returntype": "HAuthTicket" + }, + { + "methodname": "BeginAuthSession", + "methodname_flat": "SteamAPI_ISteamGameServer_BeginAuthSession", + "params": [ + { "paramname":"pAuthTicket", "paramtype":"const void *" }, + { "paramname":"cbAuthTicket", "paramtype":"int" }, + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "EBeginAuthSessionResult" + }, + { + "methodname": "EndAuthSession", + "methodname_flat": "SteamAPI_ISteamGameServer_EndAuthSession", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "CancelAuthTicket", + "methodname_flat": "SteamAPI_ISteamGameServer_CancelAuthTicket", + "params": [ + { "paramname":"hAuthTicket", "paramtype":"HAuthTicket" } + ], + "returntype": "void" + }, + { + "methodname": "UserHasLicenseForApp", + "methodname_flat": "SteamAPI_ISteamGameServer_UserHasLicenseForApp", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "EUserHasLicenseForAppResult" + }, + { + "methodname": "RequestUserGroupStatus", + "methodname_flat": "SteamAPI_ISteamGameServer_RequestUserGroupStatus", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDGroup", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGameplayStats", + "methodname_flat": "SteamAPI_ISteamGameServer_GetGameplayStats", + "params": [], + "returntype": "void" + }, + { + "callresult": "GSReputation_t", + "methodname": "GetServerReputation", + "methodname_flat": "SteamAPI_ISteamGameServer_GetServerReputation", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetPublicIP", + "methodname_flat": "SteamAPI_ISteamGameServer_GetPublicIP", + "params": [], + "returntype": "SteamIPAddress_t" + }, + { + "methodname": "HandleIncomingPacket", + "methodname_flat": "SteamAPI_ISteamGameServer_HandleIncomingPacket", + "params": [ + { "paramname":"pData", "paramtype":"const void *" }, + { "paramname":"cbData", "paramtype":"int" }, + { "paramname":"srcIP", "paramtype":"uint32" }, + { "paramname":"srcPort", "paramtype":"uint16" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNextOutgoingPacket", + "methodname_flat": "SteamAPI_ISteamGameServer_GetNextOutgoingPacket", + "params": [ + { "paramname":"pOut", "paramtype":"void *" }, + { "paramname":"cbMaxOut", "paramtype":"int" }, + { "paramname":"pNetAdr", "paramtype":"uint32 *" }, + { "paramname":"pPort", "paramtype":"uint16 *" } + ], + "returntype": "int" + }, + { + "callresult": "AssociateWithClanResult_t", + "methodname": "AssociateWithClan", + "methodname_flat": "SteamAPI_ISteamGameServer_AssociateWithClan", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "ComputeNewPlayerCompatibilityResult_t", + "methodname": "ComputeNewPlayerCompatibility", + "methodname_flat": "SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility", + "params": [ + { "paramname":"steamIDNewPlayer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "SendUserConnectAndAuthenticate_DEPRECATED", + "methodname_flat": "SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate_DEPRECATED", + "params": [ + { "paramname":"unIPClient", "paramtype":"uint32" }, + { "paramname":"pvAuthBlob", "paramtype":"const void *" }, + { "paramname":"cubAuthBlobSize", "paramtype":"uint32" }, + { "paramname":"pSteamIDUser", "paramtype":"CSteamID *" } + ], + "returntype": "bool" + }, + { + "methodname": "CreateUnauthenticatedUserConnection", + "methodname_flat": "SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "SendUserDisconnect_DEPRECATED", + "methodname_flat": "SteamAPI_ISteamGameServer_SendUserDisconnect_DEPRECATED", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "BUpdateUserData", + "methodname_flat": "SteamAPI_ISteamGameServer_BUpdateUserData", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchPlayerName", "paramtype":"const char *" }, + { "paramname":"uScore", "paramtype":"uint32" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamGameServer015" + }, + { + "accessors": [ + { + "kind": "gameserver", + "name": "SteamGameServerStats", + "name_flat": "SteamAPI_SteamGameServerStats_v001" + } + ], + "classname": "ISteamGameServerStats", + "fields": [], + "methods": [ + { + "callresult": "GSStatsReceived_t", + "methodname": "RequestUserStats", + "methodname_flat": "SteamAPI_ISteamGameServerStats_RequestUserStats", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetUserStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_GetUserStatInt32", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_GetUserStatFloat", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserAchievement", + "methodname_flat": "SteamAPI_ISteamGameServerStats_GetUserAchievement", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetUserStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_SetUserStatInt32", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"nData", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetUserStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_SetUserStatFloat", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"fData", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateUserAvgRateStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"flCountThisSession", "paramtype":"float" }, + { "paramname":"dSessionLength", "paramtype":"double" } + ], + "returntype": "bool" + }, + { + "methodname": "SetUserAchievement", + "methodname_flat": "SteamAPI_ISteamGameServerStats_SetUserAchievement", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "ClearUserAchievement", + "methodname_flat": "SteamAPI_ISteamGameServerStats_ClearUserAchievement", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "callresult": "GSStatsStored_t", + "methodname": "StoreUserStats", + "methodname_flat": "SteamAPI_ISteamGameServerStats_StoreUserStats", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + } + ], + "version_string": "SteamGameServerStats001" + }, + { + "classname": "ISteamNetworkingFakeUDPPort", + "fields": [], + "methods": [ + { + "methodname": "DestroyFakeUDPPort", + "methodname_flat": "SteamAPI_ISteamNetworkingFakeUDPPort_DestroyFakeUDPPort", + "params": [], + "returntype": "void" + }, + { + "methodname": "SendMessageToFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingFakeUDPPort_SendMessageToFakeIP", + "params": [ + { "paramname":"remoteAddress", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"pData", "paramtype":"const void *" }, + { "paramname":"cbData", "paramtype":"uint32" }, + { "paramname":"nSendFlags", "paramtype":"int" } + ], + "returntype": "EResult" + }, + { + "methodname": "ReceiveMessages", + "methodname_flat": "SteamAPI_ISteamNetworkingFakeUDPPort_ReceiveMessages", + "params": [ + { "paramname":"ppOutMessages", "paramtype":"SteamNetworkingMessage_t **" }, + { "paramname":"nMaxMessages", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "ScheduleCleanup", + "methodname_flat": "SteamAPI_ISteamNetworkingFakeUDPPort_ScheduleCleanup", + "params": [ + { "paramname":"remoteAddress", "paramtype":"const SteamNetworkingIPAddr &" } + ], + "returntype": "void" + } + ] + } + ], + "structs": [ + { + "fields": [ + { "fieldname":"m_rgubIPv6", "fieldtype":"uint8 [16]" }, + { "fieldname":"m_eType", "fieldtype":"ESteamIPType" } + ], + "methods": [ + { + "methodname": "IsSet", + "methodname_flat": "SteamAPI_SteamIPAddress_t_IsSet", + "params": [], + "returntype": "bool" + } + ], + "struct": "SteamIPAddress_t" + }, + { + "fields": [ + { "fieldname":"m_gameID", "fieldtype":"CGameID" }, + { "fieldname":"m_unGameIP", "fieldtype":"uint32" }, + { "fieldname":"m_usGamePort", "fieldtype":"uint16" }, + { "fieldname":"m_usQueryPort", "fieldtype":"uint16" }, + { "fieldname":"m_steamIDLobby", "fieldtype":"CSteamID" } + ], + "struct": "FriendGameInfo_t" + }, + { + "fields": [ + { "fieldname":"m_szKey", "fieldtype":"char [256]" }, + { "fieldname":"m_szValue", "fieldtype":"char [256]" } + ], + "methods": [ + { + "methodname": "Construct", + "methodname_flat": "SteamAPI_MatchMakingKeyValuePair_t_Construct", + "params": [], + "returntype": "void" + } + ], + "struct": "MatchMakingKeyValuePair_t" + }, + { + "fields": [ + { + "fieldname": "m_usConnectionPort", + "fieldtype": "uint16", + "private": true + }, + { + "fieldname": "m_usQueryPort", + "fieldtype": "uint16", + "private": true + }, + { + "fieldname": "m_unIP", + "fieldtype": "uint32", + "private": true + } + ], + "methods": [ + { + "methodname": "Construct", + "methodname_flat": "SteamAPI_servernetadr_t_Construct", + "params": [], + "returntype": "void" + }, + { + "methodname": "Init", + "methodname_flat": "SteamAPI_servernetadr_t_Init", + "params": [ + { "paramname":"ip", "paramtype":"unsigned int" }, + { "paramname":"usQueryPort", "paramtype":"uint16" }, + { "paramname":"usConnectionPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetQueryPort", + "methodname_flat": "SteamAPI_servernetadr_t_GetQueryPort", + "params": [], + "returntype": "uint16" + }, + { + "methodname": "SetQueryPort", + "methodname_flat": "SteamAPI_servernetadr_t_SetQueryPort", + "params": [ + { "paramname":"usPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetConnectionPort", + "methodname_flat": "SteamAPI_servernetadr_t_GetConnectionPort", + "params": [], + "returntype": "uint16" + }, + { + "methodname": "SetConnectionPort", + "methodname_flat": "SteamAPI_servernetadr_t_SetConnectionPort", + "params": [ + { "paramname":"usPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetIP", + "methodname_flat": "SteamAPI_servernetadr_t_GetIP", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetIP", + "methodname_flat": "SteamAPI_servernetadr_t_SetIP", + "params": [ + { "paramname":"unIP", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "GetConnectionAddressString", + "methodname_flat": "SteamAPI_servernetadr_t_GetConnectionAddressString", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "GetQueryAddressString", + "methodname_flat": "SteamAPI_servernetadr_t_GetQueryAddressString", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "operator<", + "methodname_flat": "SteamAPI_servernetadr_t_IsLessThan", + "params": [ + { "paramname":"netadr", "paramtype":"const servernetadr_t &" } + ], + "returntype": "bool" + }, + { + "methodname": "operator=", + "methodname_flat": "SteamAPI_servernetadr_t_Assign", + "params": [ + { "paramname":"that", "paramtype":"const servernetadr_t &" } + ], + "returntype": "void" + } + ], + "struct": "servernetadr_t" + }, + { + "fields": [ + { "fieldname":"m_NetAdr", "fieldtype":"servernetadr_t" }, + { "fieldname":"m_nPing", "fieldtype":"int" }, + { "fieldname":"m_bHadSuccessfulResponse", "fieldtype":"bool" }, + { "fieldname":"m_bDoNotRefresh", "fieldtype":"bool" }, + { "fieldname":"m_szGameDir", "fieldtype":"char [32]" }, + { "fieldname":"m_szMap", "fieldtype":"char [32]" }, + { "fieldname":"m_szGameDescription", "fieldtype":"char [64]" }, + { "fieldname":"m_nAppID", "fieldtype":"uint32" }, + { "fieldname":"m_nPlayers", "fieldtype":"int" }, + { "fieldname":"m_nMaxPlayers", "fieldtype":"int" }, + { "fieldname":"m_nBotPlayers", "fieldtype":"int" }, + { "fieldname":"m_bPassword", "fieldtype":"bool" }, + { "fieldname":"m_bSecure", "fieldtype":"bool" }, + { "fieldname":"m_ulTimeLastPlayed", "fieldtype":"uint32" }, + { "fieldname":"m_nServerVersion", "fieldtype":"int" }, + { + "fieldname": "m_szServerName", + "fieldtype": "char [64]", + "private": true + }, + { "fieldname":"m_szGameTags", "fieldtype":"char [128]" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" } + ], + "methods": [ + { + "methodname": "Construct", + "methodname_flat": "SteamAPI_gameserveritem_t_Construct", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetName", + "methodname_flat": "SteamAPI_gameserveritem_t_GetName", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "SetName", + "methodname_flat": "SteamAPI_gameserveritem_t_SetName", + "params": [ + { "paramname":"pName", "paramtype":"const char *" } + ], + "returntype": "void" + } + ], + "struct": "gameserveritem_t" + }, + { + "fields": [ + { "fieldname":"m_eType", "fieldtype":"ESteamPartyBeaconLocationType" }, + { "fieldname":"m_ulLocationID", "fieldtype":"uint64" } + ], + "struct": "SteamPartyBeaconLocation_t" + }, + { + "fields": [ + { "fieldname":"m_ppStrings", "fieldtype":"const char **" }, + { "fieldname":"m_nNumStrings", "fieldtype":"int32" } + ], + "struct": "SteamParamStringArray_t" + }, + { + "fields": [ + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_nGlobalRank", "fieldtype":"int32" }, + { "fieldname":"m_nScore", "fieldtype":"int32" }, + { "fieldname":"m_cDetails", "fieldtype":"int32" }, + { "fieldname":"m_hUGC", "fieldtype":"UGCHandle_t" } + ], + "struct": "LeaderboardEntry_t" + }, + { + "fields": [ + { "fieldname":"m_bConnectionActive", "fieldtype":"uint8" }, + { "fieldname":"m_bConnecting", "fieldtype":"uint8" }, + { "fieldname":"m_eP2PSessionError", "fieldtype":"uint8" }, + { "fieldname":"m_bUsingRelay", "fieldtype":"uint8" }, + { "fieldname":"m_nBytesQueuedForSend", "fieldtype":"int32" }, + { "fieldname":"m_nPacketsQueuedForSend", "fieldtype":"int32" }, + { "fieldname":"m_nRemoteIP", "fieldtype":"uint32" }, + { "fieldname":"m_nRemotePort", "fieldtype":"uint16" } + ], + "struct": "P2PSessionState_t" + }, + { + "fields": [ + { "fieldname":"eMode", "fieldtype":"EInputSourceMode" }, + { "fieldname":"x", "fieldtype":"float" }, + { "fieldname":"y", "fieldtype":"float" }, + { "fieldname":"bActive", "fieldtype":"bool" } + ], + "struct": "InputAnalogActionData_t" + }, + { + "fields": [ + { "fieldname":"bState", "fieldtype":"bool" }, + { "fieldname":"bActive", "fieldtype":"bool" } + ], + "struct": "InputDigitalActionData_t" + }, + { + "fields": [ + { "fieldname":"rotQuatX", "fieldtype":"float" }, + { "fieldname":"rotQuatY", "fieldtype":"float" }, + { "fieldname":"rotQuatZ", "fieldtype":"float" }, + { "fieldname":"rotQuatW", "fieldtype":"float" }, + { "fieldname":"posAccelX", "fieldtype":"float" }, + { "fieldname":"posAccelY", "fieldtype":"float" }, + { "fieldname":"posAccelZ", "fieldtype":"float" }, + { "fieldname":"rotVelX", "fieldtype":"float" }, + { "fieldname":"rotVelY", "fieldtype":"float" }, + { "fieldname":"rotVelZ", "fieldtype":"float" } + ], + "struct": "InputMotionData_t" + }, + { + "fields": [ + { "fieldname":"controllerHandle", "fieldtype":"InputHandle_t" }, + { "fieldname":"eEventType", "fieldtype":"ESteamInputActionEventType" }, + { "fieldname":"analogAction", "fieldtype":"SteamInputActionEvent_t::AnalogAction_t" } + ], + "struct": "SteamInputActionEvent_t" + }, + { + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_eFileType", "fieldtype":"EWorkshopFileType" }, + { "fieldname":"m_nCreatorAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nConsumerAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_rgchTitle", "fieldtype":"char [129]" }, + { "fieldname":"m_rgchDescription", "fieldtype":"char [8000]" }, + { "fieldname":"m_ulSteamIDOwner", "fieldtype":"uint64" }, + { "fieldname":"m_rtimeCreated", "fieldtype":"uint32" }, + { "fieldname":"m_rtimeUpdated", "fieldtype":"uint32" }, + { "fieldname":"m_rtimeAddedToUserList", "fieldtype":"uint32" }, + { "fieldname":"m_eVisibility", "fieldtype":"ERemoteStoragePublishedFileVisibility" }, + { "fieldname":"m_bBanned", "fieldtype":"bool" }, + { "fieldname":"m_bAcceptedForUse", "fieldtype":"bool" }, + { "fieldname":"m_bTagsTruncated", "fieldtype":"bool" }, + { "fieldname":"m_rgchTags", "fieldtype":"char [1025]" }, + { "fieldname":"m_hFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_hPreviewFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_pchFileName", "fieldtype":"char [260]" }, + { "fieldname":"m_nFileSize", "fieldtype":"int32" }, + { "fieldname":"m_nPreviewFileSize", "fieldtype":"int32" }, + { "fieldname":"m_rgchURL", "fieldtype":"char [256]" }, + { "fieldname":"m_unVotesUp", "fieldtype":"uint32" }, + { "fieldname":"m_unVotesDown", "fieldtype":"uint32" }, + { "fieldname":"m_flScore", "fieldtype":"float" }, + { "fieldname":"m_unNumChildren", "fieldtype":"uint32" } + ], + "struct": "SteamUGCDetails_t" + }, + { + "fields": [ + { "fieldname":"m_itemId", "fieldtype":"SteamItemInstanceID_t" }, + { "fieldname":"m_iDefinition", "fieldtype":"SteamItemDef_t" }, + { "fieldname":"m_unQuantity", "fieldtype":"uint16" }, + { "fieldname":"m_unFlags", "fieldtype":"uint16" } + ], + "struct": "SteamItemDetails_t" + }, + { + "consts": [ + { "constname":"k_cchMaxString", "consttype":"int", "constval":"48" } + ], + "fields": [ + { "fieldname":"m_ipv6", "fieldtype":"uint8 [16]" }, + { "fieldname":"m_port", "fieldtype":"uint16" } + ], + "methods": [ + { + "methodname": "Clear", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_Clear", + "params": [], + "returntype": "void" + }, + { + "methodname": "IsIPv6AllZeros", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsIPv6AllZeros", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetIPv6", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_SetIPv6", + "params": [ + { "paramname":"ipv6", "paramtype":"const uint8 *" }, + { "paramname":"nPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "SetIPv4", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_SetIPv4", + "params": [ + { "paramname":"nIP", "paramtype":"uint32" }, + { "paramname":"nPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "IsIPv4", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsIPv4", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetIPv4", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_GetIPv4", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetIPv6LocalHost", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_SetIPv6LocalHost", + "params": [ + { "paramname":"nPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "IsLocalHost", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsLocalHost", + "params": [], + "returntype": "bool" + }, + { + "methodname": "ToString", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_ToString", + "params": [ + { "paramname":"buf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"uint32" }, + { "paramname":"bWithPort", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "ParseString", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_ParseString", + "params": [ + { "paramname":"pszStr", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "operator==", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsEqualTo", + "params": [ + { "paramname":"x", "paramtype":"const SteamNetworkingIPAddr &" } + ], + "returntype": "bool" + }, + { + "methodname": "GetFakeIPType", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_GetFakeIPType", + "params": [], + "returntype": "ESteamNetworkingFakeIPType" + }, + { + "methodname": "IsFakeIP", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsFakeIP", + "params": [], + "returntype": "bool" + } + ], + "struct": "SteamNetworkingIPAddr" + }, + { + "consts": [ + { "constname":"k_cchMaxString", "consttype":"int", "constval":"128" }, + { "constname":"k_cchMaxGenericString", "consttype":"int", "constval":"32" }, + { "constname":"k_cchMaxXboxPairwiseID", "consttype":"int", "constval":"33" }, + { "constname":"k_cbMaxGenericBytes", "consttype":"int", "constval":"32" } + ], + "fields": [ + { "fieldname":"m_eType", "fieldtype":"ESteamNetworkingIdentityType" }, + { "fieldname":"m_cbSize", "fieldtype":"int" }, + { "fieldname":"m_szUnknownRawString", "fieldtype":"char [128]" } + ], + "methods": [ + { + "methodname": "Clear", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_Clear", + "params": [], + "returntype": "void" + }, + { + "methodname": "IsInvalid", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_IsInvalid", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetSteamID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetSteamID", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "GetSteamID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetSteamID", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "SetSteamID64", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetSteamID64", + "params": [ + { "paramname":"steamID", "paramtype":"uint64" } + ], + "returntype": "void" + }, + { + "methodname": "GetSteamID64", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetSteamID64", + "params": [], + "returntype": "uint64" + }, + { + "methodname": "SetXboxPairwiseID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetXboxPairwiseID", + "params": [ + { "paramname":"pszString", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetXboxPairwiseID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetXboxPairwiseID", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "SetPSNID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetPSNID", + "params": [ + { "paramname":"id", "paramtype":"uint64" } + ], + "returntype": "void" + }, + { + "methodname": "GetPSNID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetPSNID", + "params": [], + "returntype": "uint64" + }, + { + "methodname": "SetStadiaID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetStadiaID", + "params": [ + { "paramname":"id", "paramtype":"uint64" } + ], + "returntype": "void" + }, + { + "methodname": "GetStadiaID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetStadiaID", + "params": [], + "returntype": "uint64" + }, + { + "methodname": "SetIPAddr", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetIPAddr", + "params": [ + { "paramname":"addr", "paramtype":"const SteamNetworkingIPAddr &" } + ], + "returntype": "void" + }, + { + "methodname": "GetIPAddr", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetIPAddr", + "params": [], + "returntype": "const SteamNetworkingIPAddr *" + }, + { + "methodname": "SetIPv4Addr", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetIPv4Addr", + "params": [ + { "paramname":"nIPv4", "paramtype":"uint32" }, + { "paramname":"nPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetIPv4", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetIPv4", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetFakeIPType", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetFakeIPType", + "params": [], + "returntype": "ESteamNetworkingFakeIPType" + }, + { + "methodname": "IsFakeIP", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_IsFakeIP", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetLocalHost", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetLocalHost", + "params": [], + "returntype": "void" + }, + { + "methodname": "IsLocalHost", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_IsLocalHost", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetGenericString", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetGenericString", + "params": [ + { "paramname":"pszString", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGenericString", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetGenericString", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "SetGenericBytes", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetGenericBytes", + "params": [ + { "paramname":"data", "paramtype":"const void *" }, + { "paramname":"cbLen", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGenericBytes", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetGenericBytes", + "params": [ + { "paramname":"cbLen", "paramtype":"int &" } + ], + "returntype": "const uint8 *" + }, + { + "methodname": "operator==", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_IsEqualTo", + "params": [ + { "paramname":"x", "paramtype":"const SteamNetworkingIdentity &" } + ], + "returntype": "bool" + }, + { + "methodname": "ToString", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_ToString", + "params": [ + { "paramname":"buf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "ParseString", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_ParseString", + "params": [ + { "paramname":"pszStr", "paramtype":"const char *" } + ], + "returntype": "bool" + } + ], + "struct": "SteamNetworkingIdentity" + }, + { + "fields": [ + { "fieldname":"m_identityRemote", "fieldtype":"SteamNetworkingIdentity" }, + { "fieldname":"m_nUserData", "fieldtype":"int64" }, + { "fieldname":"m_hListenSocket", "fieldtype":"HSteamListenSocket" }, + { "fieldname":"m_addrRemote", "fieldtype":"SteamNetworkingIPAddr" }, + { "fieldname":"m__pad1", "fieldtype":"uint16" }, + { "fieldname":"m_idPOPRemote", "fieldtype":"SteamNetworkingPOPID" }, + { "fieldname":"m_idPOPRelay", "fieldtype":"SteamNetworkingPOPID" }, + { "fieldname":"m_eState", "fieldtype":"ESteamNetworkingConnectionState" }, + { "fieldname":"m_eEndReason", "fieldtype":"int" }, + { "fieldname":"m_szEndDebug", "fieldtype":"char [128]" }, + { "fieldname":"m_szConnectionDescription", "fieldtype":"char [128]" }, + { "fieldname":"m_nFlags", "fieldtype":"int" }, + { "fieldname":"reserved", "fieldtype":"uint32 [63]" } + ], + "struct": "SteamNetConnectionInfo_t" + }, + { + "fields": [ + { "fieldname":"m_eState", "fieldtype":"ESteamNetworkingConnectionState" }, + { "fieldname":"m_nPing", "fieldtype":"int" }, + { "fieldname":"m_flConnectionQualityLocal", "fieldtype":"float" }, + { "fieldname":"m_flConnectionQualityRemote", "fieldtype":"float" }, + { "fieldname":"m_flOutPacketsPerSec", "fieldtype":"float" }, + { "fieldname":"m_flOutBytesPerSec", "fieldtype":"float" }, + { "fieldname":"m_flInPacketsPerSec", "fieldtype":"float" }, + { "fieldname":"m_flInBytesPerSec", "fieldtype":"float" }, + { "fieldname":"m_nSendRateBytesPerSecond", "fieldtype":"int" }, + { "fieldname":"m_cbPendingUnreliable", "fieldtype":"int" }, + { "fieldname":"m_cbPendingReliable", "fieldtype":"int" }, + { "fieldname":"m_cbSentUnackedReliable", "fieldtype":"int" }, + { "fieldname":"m_usecQueueTime", "fieldtype":"SteamNetworkingMicroseconds" }, + { "fieldname":"reserved", "fieldtype":"uint32 [16]" } + ], + "struct": "SteamNetConnectionRealTimeStatus_t" + }, + { + "fields": [ + { "fieldname":"m_cbPendingUnreliable", "fieldtype":"int" }, + { "fieldname":"m_cbPendingReliable", "fieldtype":"int" }, + { "fieldname":"m_cbSentUnackedReliable", "fieldtype":"int" }, + { "fieldname":"_reservePad1", "fieldtype":"int" }, + { "fieldname":"m_usecQueueTime", "fieldtype":"SteamNetworkingMicroseconds" }, + { "fieldname":"reserved", "fieldtype":"uint32 [10]" } + ], + "struct": "SteamNetConnectionRealTimeLaneStatus_t" + }, + { + "fields": [ + { "fieldname":"m_pData", "fieldtype":"void *" }, + { "fieldname":"m_cbSize", "fieldtype":"int" }, + { "fieldname":"m_conn", "fieldtype":"HSteamNetConnection" }, + { "fieldname":"m_identityPeer", "fieldtype":"SteamNetworkingIdentity" }, + { "fieldname":"m_nConnUserData", "fieldtype":"int64" }, + { "fieldname":"m_usecTimeReceived", "fieldtype":"SteamNetworkingMicroseconds" }, + { "fieldname":"m_nMessageNumber", "fieldtype":"int64" }, + { "fieldname":"m_pfnFreeData", "fieldtype":"void (*)(SteamNetworkingMessage_t *)" }, + { "fieldname":"m_pfnRelease", "fieldtype":"void (*)(SteamNetworkingMessage_t *)" }, + { "fieldname":"m_nChannel", "fieldtype":"int" }, + { "fieldname":"m_nFlags", "fieldtype":"int" }, + { "fieldname":"m_nUserData", "fieldtype":"int64" }, + { "fieldname":"m_idxLane", "fieldtype":"uint16" }, + { "fieldname":"_pad1__", "fieldtype":"uint16" } + ], + "methods": [ + { + "methodname": "Release", + "methodname_flat": "SteamAPI_SteamNetworkingMessage_t_Release", + "params": [], + "returntype": "void" + } + ], + "struct": "SteamNetworkingMessage_t" + }, + { + "fields": [ + { "fieldname":"m_data", "fieldtype":"uint8 [512]" } + ], + "struct": "SteamNetworkPingLocation_t" + }, + { + "fields": [ + { "fieldname":"m_eValue", "fieldtype":"ESteamNetworkingConfigValue" }, + { "fieldname":"m_eDataType", "fieldtype":"ESteamNetworkingConfigDataType" }, + { "fieldname":"m_int64", "fieldtype":"int64_t" } + ], + "methods": [ + { + "methodname": "SetInt32", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetInt32", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"int32_t" } + ], + "returntype": "void" + }, + { + "methodname": "SetInt64", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetInt64", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"int64_t" } + ], + "returntype": "void" + }, + { + "methodname": "SetFloat", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetFloat", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"float" } + ], + "returntype": "void" + }, + { + "methodname": "SetPtr", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetPtr", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"void *" } + ], + "returntype": "void" + }, + { + "methodname": "SetString", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetString", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"const char *" } + ], + "returntype": "void" + } + ], + "struct": "SteamNetworkingConfigValue_t" + }, + { + "fields": [ + { "fieldname":"m_cbSize", "fieldtype":"int" }, + { "fieldname":"m_data", "fieldtype":"char [128]" } + ], + "methods": [ + { + "methodname": "Clear", + "methodname_flat": "SteamAPI_SteamDatagramHostedAddress_Clear", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetPopID", + "methodname_flat": "SteamAPI_SteamDatagramHostedAddress_GetPopID", + "params": [], + "returntype": "SteamNetworkingPOPID" + }, + { + "methodname": "SetDevAddress", + "methodname_flat": "SteamAPI_SteamDatagramHostedAddress_SetDevAddress", + "params": [ + { "paramname":"nIP", "paramtype":"uint32" }, + { "paramname":"nPort", "paramtype":"uint16" }, + { "paramname":"popid", "paramtype":"SteamNetworkingPOPID" } + ], + "returntype": "void" + } + ], + "struct": "SteamDatagramHostedAddress" + }, + { + "fields": [ + { "fieldname":"m_identity", "fieldtype":"SteamNetworkingIdentity" }, + { "fieldname":"m_routing", "fieldtype":"SteamDatagramHostedAddress" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_rtime", "fieldtype":"RTime32" }, + { "fieldname":"m_cbAppData", "fieldtype":"int" }, + { "fieldname":"m_appData", "fieldtype":"char [2048]" } + ], + "struct": "SteamDatagramGameCoordinatorServerLogin" + } + ], + "typedefs": [ + { "typedef":"uint8", "type":"unsigned char" }, + { "typedef":"int8", "type":"signed char" }, + { "typedef":"int16", "type":"short" }, + { "typedef":"uint16", "type":"unsigned short" }, + { "typedef":"int32", "type":"int" }, + { "typedef":"uint32", "type":"unsigned int" }, + { "typedef":"int64", "type":"long long" }, + { "typedef":"uint64", "type":"unsigned long long" }, + { "typedef":"lint64", "type":"long long" }, + { "typedef":"ulint64", "type":"unsigned long long" }, + { "typedef":"intp", "type":"long long" }, + { "typedef":"uintp", "type":"unsigned long long" }, + { "typedef":"AppId_t", "type":"unsigned int" }, + { "typedef":"DepotId_t", "type":"unsigned int" }, + { "typedef":"RTime32", "type":"unsigned int" }, + { "typedef":"SteamAPICall_t", "type":"unsigned long long" }, + { "typedef":"AccountID_t", "type":"unsigned int" }, + { "typedef":"PartyBeaconID_t", "type":"unsigned long long" }, + { "typedef":"HAuthTicket", "type":"unsigned int" }, + { "typedef":"PFNPreMinidumpCallback", "type":"void (*)(void *)" }, + { "typedef":"HSteamPipe", "type":"int" }, + { "typedef":"HSteamUser", "type":"int" }, + { "typedef":"SteamErrMsg", "type":"char [1024]" }, + { "typedef":"FriendsGroupID_t", "type":"short" }, + { "typedef":"HServerListRequest", "type":"void *" }, + { "typedef":"HServerQuery", "type":"int" }, + { "typedef":"UGCHandle_t", "type":"unsigned long long" }, + { "typedef":"PublishedFileUpdateHandle_t", "type":"unsigned long long" }, + { "typedef":"PublishedFileId_t", "type":"unsigned long long" }, + { "typedef":"UGCFileWriteStreamHandle_t", "type":"unsigned long long" }, + { "typedef":"SteamLeaderboard_t", "type":"unsigned long long" }, + { "typedef":"SteamLeaderboardEntries_t", "type":"unsigned long long" }, + { "typedef":"SNetSocket_t", "type":"unsigned int" }, + { "typedef":"SNetListenSocket_t", "type":"unsigned int" }, + { "typedef":"ScreenshotHandle", "type":"unsigned int" }, + { "typedef":"HTTPRequestHandle", "type":"unsigned int" }, + { "typedef":"HTTPCookieContainerHandle", "type":"unsigned int" }, + { "typedef":"InputHandle_t", "type":"unsigned long long" }, + { "typedef":"InputActionSetHandle_t", "type":"unsigned long long" }, + { "typedef":"InputDigitalActionHandle_t", "type":"unsigned long long" }, + { "typedef":"InputAnalogActionHandle_t", "type":"unsigned long long" }, + { "typedef":"SteamInputActionEventCallbackPointer", "type":"void (*)(SteamInputActionEvent_t *)" }, + { "typedef":"ControllerHandle_t", "type":"unsigned long long" }, + { "typedef":"ControllerActionSetHandle_t", "type":"unsigned long long" }, + { "typedef":"ControllerDigitalActionHandle_t", "type":"unsigned long long" }, + { "typedef":"ControllerAnalogActionHandle_t", "type":"unsigned long long" }, + { "typedef":"UGCQueryHandle_t", "type":"unsigned long long" }, + { "typedef":"UGCUpdateHandle_t", "type":"unsigned long long" }, + { "typedef":"HHTMLBrowser", "type":"unsigned int" }, + { "typedef":"SteamItemInstanceID_t", "type":"unsigned long long" }, + { "typedef":"SteamItemDef_t", "type":"int" }, + { "typedef":"SteamInventoryResult_t", "type":"int" }, + { "typedef":"SteamInventoryUpdateHandle_t", "type":"unsigned long long" }, + { "typedef":"RemotePlaySessionID_t", "type":"unsigned int" }, + { "typedef":"FnSteamNetConnectionStatusChanged", "type":"void (*)(SteamNetConnectionStatusChangedCallback_t *)" }, + { "typedef":"FnSteamNetAuthenticationStatusChanged", "type":"void (*)(SteamNetAuthenticationStatus_t *)" }, + { "typedef":"FnSteamRelayNetworkStatusChanged", "type":"void (*)(SteamRelayNetworkStatus_t *)" }, + { "typedef":"FnSteamNetworkingMessagesSessionRequest", "type":"void (*)(SteamNetworkingMessagesSessionRequest_t *)" }, + { "typedef":"FnSteamNetworkingMessagesSessionFailed", "type":"void (*)(SteamNetworkingMessagesSessionFailed_t *)" }, + { "typedef":"FnSteamNetworkingFakeIPResult", "type":"void (*)(SteamNetworkingFakeIPResult_t *)" }, + { "typedef":"HSteamNetConnection", "type":"unsigned int" }, + { "typedef":"HSteamListenSocket", "type":"unsigned int" }, + { "typedef":"HSteamNetPollGroup", "type":"unsigned int" }, + { "typedef":"SteamNetworkingErrMsg", "type":"char [1024]" }, + { "typedef":"SteamNetworkingPOPID", "type":"unsigned int" }, + { "typedef":"SteamNetworkingMicroseconds", "type":"long long" }, + { "typedef":"FSteamNetworkingSocketsDebugOutput", "type":"void (*)(ESteamNetworkingSocketsDebugOutputType, const char *)" } + ] } -,{ - "classname": "ISteamClient", - "methodname": "BReleaseSteamPipe", - "returntype": "bool", - "params": [ -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "ConnectToGlobalUser", - "returntype": "HSteamUser", - "params": [ -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "CreateLocalUser", - "returntype": "HSteamUser", - "params": [ -{ "paramname": "phSteamPipe" ,"paramtype": "HSteamPipe *"}, -{ "paramname": "eAccountType" ,"paramtype": "EAccountType"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "ReleaseUser", - "returntype": "void", - "params": [ -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "hUser" ,"paramtype": "HSteamUser"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUser", - "returntype": "class ISteamUser *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamGameServer", - "returntype": "class ISteamGameServer *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "SetLocalIPBinding", - "returntype": "void", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usPort" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamFriends", - "returntype": "class ISteamFriends *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUtils", - "returntype": "class ISteamUtils *", - "params": [ -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamMatchmaking", - "returntype": "class ISteamMatchmaking *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamMatchmakingServers", - "returntype": "class ISteamMatchmakingServers *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamGenericInterface", - "returntype": "void *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUserStats", - "returntype": "class ISteamUserStats *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamGameServerStats", - "returntype": "class ISteamGameServerStats *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamApps", - "returntype": "class ISteamApps *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamNetworking", - "returntype": "class ISteamNetworking *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamRemoteStorage", - "returntype": "class ISteamRemoteStorage *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamScreenshots", - "returntype": "class ISteamScreenshots *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetIPCCallCount", - "returntype": "uint32" -} -,{ - "classname": "ISteamClient", - "methodname": "SetWarningMessageHook", - "returntype": "void", - "params": [ -{ "paramname": "pFunction" ,"paramtype": "SteamAPIWarningMessageHook_t"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "BShutdownIfAllPipesClosed", - "returntype": "bool" -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamHTTP", - "returntype": "class ISteamHTTP *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUnifiedMessages", - "returntype": "class ISteamUnifiedMessages *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamController", - "returntype": "class ISteamController *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUGC", - "returntype": "class ISteamUGC *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamAppList", - "returntype": "class ISteamAppList *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamMusic", - "returntype": "class ISteamMusic *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamMusicRemote", - "returntype": "class ISteamMusicRemote *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamHTMLSurface", - "returntype": "class ISteamHTMLSurface *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamInventory", - "returntype": "class ISteamInventory *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamVideo", - "returntype": "class ISteamVideo *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetHSteamUser", - "returntype": "HSteamUser" -} -,{ - "classname": "ISteamUser", - "methodname": "BLoggedOn", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "GetSteamID", - "returntype": "class CSteamID" -} -,{ - "classname": "ISteamUser", - "methodname": "InitiateGameConnection", - "returntype": "int", - "params": [ -{ "paramname": "pAuthBlob" ,"paramtype": "void *"}, -{ "paramname": "cbMaxAuthBlob" ,"paramtype": "int"}, -{ "paramname": "steamIDGameServer" ,"paramtype": "class CSteamID"}, -{ "paramname": "unIPServer" ,"paramtype": "uint32"}, -{ "paramname": "usPortServer" ,"paramtype": "uint16"}, -{ "paramname": "bSecure" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "TerminateGameConnection", - "returntype": "void", - "params": [ -{ "paramname": "unIPServer" ,"paramtype": "uint32"}, -{ "paramname": "usPortServer" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "TrackAppUsageEvent", - "returntype": "void", - "params": [ -{ "paramname": "gameID" ,"paramtype": "class CGameID"}, -{ "paramname": "eAppUsageEvent" ,"paramtype": "int"}, -{ "paramname": "pchExtraInfo" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetUserDataFolder", - "returntype": "bool", - "params": [ -{ "paramname": "pchBuffer" ,"paramtype": "char *"}, -{ "paramname": "cubBuffer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "StartVoiceRecording", - "returntype": "void" -} -,{ - "classname": "ISteamUser", - "methodname": "StopVoiceRecording", - "returntype": "void" -} -,{ - "classname": "ISteamUser", - "methodname": "GetAvailableVoice", - "returntype": "EVoiceResult", - "params": [ -{ "paramname": "pcbCompressed" ,"paramtype": "uint32 *"}, -{ "paramname": "pcbUncompressed" ,"paramtype": "uint32 *"}, -{ "paramname": "nUncompressedVoiceDesiredSampleRate" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetVoice", - "returntype": "EVoiceResult", - "params": [ -{ "paramname": "bWantCompressed" ,"paramtype": "bool"}, -{ "paramname": "pDestBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbDestBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "nBytesWritten" ,"paramtype": "uint32 *"}, -{ "paramname": "bWantUncompressed" ,"paramtype": "bool"}, -{ "paramname": "pUncompressedDestBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbUncompressedDestBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "nUncompressBytesWritten" ,"paramtype": "uint32 *"}, -{ "paramname": "nUncompressedVoiceDesiredSampleRate" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "DecompressVoice", - "returntype": "EVoiceResult", - "params": [ -{ "paramname": "pCompressed" ,"paramtype": "const void *"}, -{ "paramname": "cbCompressed" ,"paramtype": "uint32"}, -{ "paramname": "pDestBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbDestBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "nBytesWritten" ,"paramtype": "uint32 *"}, -{ "paramname": "nDesiredSampleRate" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetVoiceOptimalSampleRate", - "returntype": "uint32" -} -,{ - "classname": "ISteamUser", - "methodname": "GetAuthSessionTicket", - "returntype": "HAuthTicket", - "params": [ -{ "paramname": "pTicket" ,"paramtype": "void *"}, -{ "paramname": "cbMaxTicket" ,"paramtype": "int"}, -{ "paramname": "pcbTicket" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "BeginAuthSession", - "returntype": "EBeginAuthSessionResult", - "params": [ -{ "paramname": "pAuthTicket" ,"paramtype": "const void *"}, -{ "paramname": "cbAuthTicket" ,"paramtype": "int"}, -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "EndAuthSession", - "returntype": "void", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "CancelAuthTicket", - "returntype": "void", - "params": [ -{ "paramname": "hAuthTicket" ,"paramtype": "HAuthTicket"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "UserHasLicenseForApp", - "returntype": "EUserHasLicenseForAppResult", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"}, -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "BIsBehindNAT", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "AdvertiseGame", - "returntype": "void", - "params": [ -{ "paramname": "steamIDGameServer" ,"paramtype": "class CSteamID"}, -{ "paramname": "unIPServer" ,"paramtype": "uint32"}, -{ "paramname": "usPortServer" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "RequestEncryptedAppTicket", "callresult": "EncryptedAppTicketResponse_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pDataToInclude" ,"paramtype": "void *"}, -{ "paramname": "cbDataToInclude" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetEncryptedAppTicket", - "returntype": "bool", - "params": [ -{ "paramname": "pTicket" ,"paramtype": "void *"}, -{ "paramname": "cbMaxTicket" ,"paramtype": "int"}, -{ "paramname": "pcbTicket" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetGameBadgeLevel", - "returntype": "int", - "params": [ -{ "paramname": "nSeries" ,"paramtype": "int"}, -{ "paramname": "bFoil" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetPlayerSteamLevel", - "returntype": "int" -} -,{ - "classname": "ISteamUser", - "methodname": "RequestStoreAuthURL", "callresult": "StoreAuthURLResponse_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchRedirectURL" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "BIsPhoneVerified", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "BIsTwoFactorEnabled", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "BIsPhoneIdentifying", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "BIsPhoneRequiringVerification", - "returntype": "bool" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetPersonaName", - "returntype": "const char *" -} -,{ - "classname": "ISteamFriends", - "methodname": "SetPersonaName", "callresult": "SetPersonaNameResponse_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchPersonaName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetPersonaState", - "returntype": "EPersonaState" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendCount", - "returntype": "int", - "params": [ -{ "paramname": "iFriendFlags" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "iFriend" ,"paramtype": "int"}, -{ "paramname": "iFriendFlags" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendRelationship", - "returntype": "EFriendRelationship", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendPersonaState", - "returntype": "EPersonaState", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendPersonaName", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendGamePlayed", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "pFriendGameInfo" ,"out_struct": " " ,"paramtype": "struct FriendGameInfo_t *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendPersonaNameHistory", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "iPersonaName" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendSteamLevel", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetPlayerNickname", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDPlayer" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupCount", - "returntype": "int" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupIDByIndex", - "returntype": "FriendsGroupID_t", - "params": [ -{ "paramname": "iFG" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupName", - "returntype": "const char *", - "params": [ -{ "paramname": "friendsGroupID" ,"paramtype": "FriendsGroupID_t"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupMembersCount", - "returntype": "int", - "params": [ -{ "paramname": "friendsGroupID" ,"paramtype": "FriendsGroupID_t"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupMembersList", - "returntype": "void", - "params": [ -{ "paramname": "friendsGroupID" ,"paramtype": "FriendsGroupID_t"}, -{ "paramname": "pOutSteamIDMembers" ,"out_array_call": "nMembersCount,GetFriendsGroupMembersCount,friendsGroupID" ,"paramtype": "class CSteamID *"}, -{ "paramname": "nMembersCount" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "HasFriend", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "iFriendFlags" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanCount", - "returntype": "int" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "iClan" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanName", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanTag", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanActivityCounts", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"}, -{ "paramname": "pnOnline" ,"paramtype": "int *"}, -{ "paramname": "pnInGame" ,"paramtype": "int *"}, -{ "paramname": "pnChatting" ,"paramtype": "int *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "DownloadClanActivityCounts", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "psteamIDClans" ,"array_count": "cClansToRequest" ,"paramtype": "class CSteamID *"}, -{ "paramname": "cClansToRequest" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendCountFromSource", - "returntype": "int", - "params": [ -{ "paramname": "steamIDSource" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendFromSourceByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDSource" ,"paramtype": "class CSteamID"}, -{ "paramname": "iFriend" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "IsUserInSource", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDSource" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "SetInGameVoiceSpeaking", - "returntype": "void", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "bSpeaking" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlay", - "returntype": "void", - "params": [ -{ "paramname": "pchDialog" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlayToUser", - "returntype": "void", - "params": [ -{ "paramname": "pchDialog" ,"paramtype": "const char *"}, -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlayToWebPage", - "returntype": "void", - "params": [ -{ "paramname": "pchURL" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlayToStore", - "returntype": "void", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "eFlag" ,"paramtype": "EOverlayToStoreFlag"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "SetPlayedWith", - "returntype": "void", - "params": [ -{ "paramname": "steamIDUserPlayedWith" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlayInviteDialog", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetSmallFriendAvatar", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetMediumFriendAvatar", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetLargeFriendAvatar", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "RequestUserInformation", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "bRequireNameOnly" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "RequestClanOfficerList", "callresult": "ClanOfficerListResponse_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanOwner", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanOfficerCount", - "returntype": "int", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanOfficerByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"}, -{ "paramname": "iOfficer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetUserRestrictions", - "returntype": "uint32" -} -,{ - "classname": "ISteamFriends", - "methodname": "SetRichPresence", - "returntype": "bool", - "params": [ -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ClearRichPresence", - "returntype": "void" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendRichPresence", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendRichPresenceKeyCount", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendRichPresenceKeyByIndex", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "iKey" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "RequestFriendRichPresence", - "returntype": "void", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "InviteUserToGame", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchConnectString" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetCoplayFriendCount", - "returntype": "int" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetCoplayFriend", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "iCoplayFriend" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendCoplayTime", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendCoplayGame", - "returntype": "AppId_t", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "JoinClanChatRoom", "callresult": "JoinClanChatRoomCompletionResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "LeaveClanChatRoom", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanChatMemberCount", - "returntype": "int", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetChatMemberByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"}, -{ "paramname": "iUser" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "SendClanChatMessage", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanChatMessage", - "returntype": "int", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"}, -{ "paramname": "iMessage" ,"paramtype": "int"}, -{ "paramname": "prgchText" ,"paramtype": "void *"}, -{ "paramname": "cchTextMax" ,"paramtype": "int"}, -{ "paramname": "peChatEntryType" ,"paramtype": "EChatEntryType *"}, -{ "paramname": "psteamidChatter" ,"out_struct": " " ,"paramtype": "class CSteamID *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "IsClanChatAdmin", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "IsClanChatWindowOpenInSteam", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "OpenClanChatWindowInSteam", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "CloseClanChatWindowInSteam", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "SetListenForFriendsMessages", - "returntype": "bool", - "params": [ -{ "paramname": "bInterceptEnabled" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ReplyToFriendMessage", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchMsgToSend" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendMessage", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "iMessageID" ,"paramtype": "int"}, -{ "paramname": "pvData" ,"paramtype": "void *"}, -{ "paramname": "cubData" ,"paramtype": "int"}, -{ "paramname": "peChatEntryType" ,"paramtype": "EChatEntryType *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFollowerCount", "callresult": "FriendsGetFollowerCount_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "IsFollowing", "callresult": "FriendsIsFollowing_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "EnumerateFollowingList", "callresult": "FriendsEnumerateFollowingList_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unStartIndex" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetSecondsSinceAppActive", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetSecondsSinceComputerActive", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetConnectedUniverse", - "returntype": "EUniverse" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetServerRealTime", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetIPCountry", - "returntype": "const char *" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetImageSize", - "returntype": "bool", - "params": [ -{ "paramname": "iImage" ,"paramtype": "int"}, -{ "paramname": "pnWidth" ,"paramtype": "uint32 *"}, -{ "paramname": "pnHeight" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetImageRGBA", - "returntype": "bool", - "params": [ -{ "paramname": "iImage" ,"paramtype": "int"}, -{ "paramname": "pubDest" ,"paramtype": "uint8 *"}, -{ "paramname": "nDestBufferSize" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetCSERIPPort", - "returntype": "bool", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32 *"}, -{ "paramname": "usPort" ,"paramtype": "uint16 *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetCurrentBatteryPower", - "returntype": "uint8" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetAppID", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "SetOverlayNotificationPosition", - "returntype": "void", - "params": [ -{ "paramname": "eNotificationPosition" ,"paramtype": "ENotificationPosition"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "IsAPICallCompleted", - "returntype": "bool", - "params": [ -{ "paramname": "hSteamAPICall" ,"paramtype": "SteamAPICall_t"}, -{ "paramname": "pbFailed" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetAPICallFailureReason", - "returntype": "ESteamAPICallFailure", - "params": [ -{ "paramname": "hSteamAPICall" ,"paramtype": "SteamAPICall_t"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetAPICallResult", - "returntype": "bool", - "params": [ -{ "paramname": "hSteamAPICall" ,"paramtype": "SteamAPICall_t"}, -{ "paramname": "pCallback" ,"paramtype": "void *"}, -{ "paramname": "cubCallback" ,"paramtype": "int"}, -{ "paramname": "iCallbackExpected" ,"paramtype": "int"}, -{ "paramname": "pbFailed" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetIPCCallCount", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "SetWarningMessageHook", - "returntype": "void", - "params": [ -{ "paramname": "pFunction" ,"paramtype": "SteamAPIWarningMessageHook_t"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "IsOverlayEnabled", - "returntype": "bool" -} -,{ - "classname": "ISteamUtils", - "methodname": "BOverlayNeedsPresent", - "returntype": "bool" -} -,{ - "classname": "ISteamUtils", - "methodname": "CheckFileSignature", "callresult": "CheckFileSignature_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "szFileName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "ShowGamepadTextInput", - "returntype": "bool", - "params": [ -{ "paramname": "eInputMode" ,"paramtype": "EGamepadTextInputMode"}, -{ "paramname": "eLineInputMode" ,"paramtype": "EGamepadTextInputLineMode"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"}, -{ "paramname": "unCharMax" ,"paramtype": "uint32"}, -{ "paramname": "pchExistingText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetEnteredGamepadTextLength", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetEnteredGamepadTextInput", - "returntype": "bool", - "params": [ -{ "paramname": "pchText" ,"paramtype": "char *"}, -{ "paramname": "cchText" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetSteamUILanguage", - "returntype": "const char *" -} -,{ - "classname": "ISteamUtils", - "methodname": "IsSteamRunningInVR", - "returntype": "bool" -} -,{ - "classname": "ISteamUtils", - "methodname": "SetOverlayNotificationInset", - "returntype": "void", - "params": [ -{ "paramname": "nHorizontalInset" ,"paramtype": "int"}, -{ "paramname": "nVerticalInset" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "IsSteamInBigPictureMode", - "returntype": "bool" -} -,{ - "classname": "ISteamUtils", - "methodname": "StartVRDashboard", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetFavoriteGameCount", - "returntype": "int" -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetFavoriteGame", - "returntype": "bool", - "params": [ -{ "paramname": "iGame" ,"paramtype": "int"}, -{ "paramname": "pnAppID" ,"paramtype": "AppId_t *"}, -{ "paramname": "pnIP" ,"paramtype": "uint32 *"}, -{ "paramname": "pnConnPort" ,"paramtype": "uint16 *"}, -{ "paramname": "pnQueryPort" ,"paramtype": "uint16 *"}, -{ "paramname": "punFlags" ,"paramtype": "uint32 *"}, -{ "paramname": "pRTime32LastPlayedOnServer" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddFavoriteGame", - "returntype": "int", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "nIP" ,"paramtype": "uint32"}, -{ "paramname": "nConnPort" ,"paramtype": "uint16"}, -{ "paramname": "nQueryPort" ,"paramtype": "uint16"}, -{ "paramname": "unFlags" ,"paramtype": "uint32"}, -{ "paramname": "rTime32LastPlayedOnServer" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "RemoveFavoriteGame", - "returntype": "bool", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "nIP" ,"paramtype": "uint32"}, -{ "paramname": "nConnPort" ,"paramtype": "uint16"}, -{ "paramname": "nQueryPort" ,"paramtype": "uint16"}, -{ "paramname": "unFlags" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "RequestLobbyList", "callresult": "LobbyMatchList_t", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListStringFilter", - "returntype": "void", - "params": [ -{ "paramname": "pchKeyToMatch" ,"paramtype": "const char *"}, -{ "paramname": "pchValueToMatch" ,"paramtype": "const char *"}, -{ "paramname": "eComparisonType" ,"paramtype": "ELobbyComparison"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListNumericalFilter", - "returntype": "void", - "params": [ -{ "paramname": "pchKeyToMatch" ,"paramtype": "const char *"}, -{ "paramname": "nValueToMatch" ,"paramtype": "int"}, -{ "paramname": "eComparisonType" ,"paramtype": "ELobbyComparison"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListNearValueFilter", - "returntype": "void", - "params": [ -{ "paramname": "pchKeyToMatch" ,"paramtype": "const char *"}, -{ "paramname": "nValueToBeCloseTo" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListFilterSlotsAvailable", - "returntype": "void", - "params": [ -{ "paramname": "nSlotsAvailable" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListDistanceFilter", - "returntype": "void", - "params": [ -{ "paramname": "eLobbyDistanceFilter" ,"paramtype": "ELobbyDistanceFilter"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListResultCountFilter", - "returntype": "void", - "params": [ -{ "paramname": "cMaxResults" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListCompatibleMembersFilter", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "iLobby" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "CreateLobby", "callresult": "LobbyCreated_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "eLobbyType" ,"paramtype": "ELobbyType"}, -{ "paramname": "cMaxMembers" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "JoinLobby", "callresult": "LobbyEnter_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "LeaveLobby", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "InviteUserToLobby", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDInvitee" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetNumLobbyMembers", - "returntype": "int", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyMemberByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "iMember" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyData", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyData", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyDataCount", - "returntype": "int", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyDataByIndex", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "iLobbyData" ,"paramtype": "int"}, -{ "paramname": "pchKey" ,"paramtype": "char *"}, -{ "paramname": "cchKeyBufferSize" ,"paramtype": "int"}, -{ "paramname": "pchValue" ,"paramtype": "char *"}, -{ "paramname": "cchValueBufferSize" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "DeleteLobbyData", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyMemberData", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyMemberData", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SendLobbyChatMsg", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pvMsgBody" ,"paramtype": "const void *"}, -{ "paramname": "cubMsgBody" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyChatEntry", - "returntype": "int", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "iChatID" ,"paramtype": "int"}, -{ "paramname": "pSteamIDUser" ,"out_struct": " " ,"paramtype": "class CSteamID *"}, -{ "paramname": "pvData" ,"paramtype": "void *"}, -{ "paramname": "cubData" ,"paramtype": "int"}, -{ "paramname": "peChatEntryType" ,"paramtype": "EChatEntryType *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "RequestLobbyData", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyGameServer", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "unGameServerIP" ,"paramtype": "uint32"}, -{ "paramname": "unGameServerPort" ,"paramtype": "uint16"}, -{ "paramname": "steamIDGameServer" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyGameServer", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "punGameServerIP" ,"paramtype": "uint32 *"}, -{ "paramname": "punGameServerPort" ,"paramtype": "uint16 *"}, -{ "paramname": "psteamIDGameServer" ,"out_struct": " " ,"paramtype": "class CSteamID *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyMemberLimit", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "cMaxMembers" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyMemberLimit", - "returntype": "int", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyType", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "eLobbyType" ,"paramtype": "ELobbyType"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyJoinable", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "bLobbyJoinable" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyOwner", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyOwner", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDNewOwner" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLinkedLobby", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDLobbyDependent" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmakingServerListResponse", - "methodname": "ServerResponded", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "iServer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmakingServerListResponse", - "methodname": "ServerFailedToRespond", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "iServer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmakingServerListResponse", - "methodname": "RefreshComplete", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "response" ,"paramtype": "EMatchMakingServerResponse"} - ] -} -,{ - "classname": "ISteamMatchmakingPingResponse", - "methodname": "ServerResponded", - "returntype": "void", - "params": [ -{ "paramname": "server" ,"paramtype": "class gameserveritem_t &"} - ] -} -,{ - "classname": "ISteamMatchmakingPingResponse", - "methodname": "ServerFailedToRespond", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingPlayersResponse", - "methodname": "AddPlayerToList", - "returntype": "void", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "nScore" ,"paramtype": "int"}, -{ "paramname": "flTimePlayed" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamMatchmakingPlayersResponse", - "methodname": "PlayersFailedToRespond", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingPlayersResponse", - "methodname": "PlayersRefreshComplete", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingRulesResponse", - "methodname": "RulesResponded", - "returntype": "void", - "params": [ -{ "paramname": "pchRule" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmakingRulesResponse", - "methodname": "RulesFailedToRespond", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingRulesResponse", - "methodname": "RulesRefreshComplete", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestInternetServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestLANServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestFriendsServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestFavoritesServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestHistoryServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestSpectatorServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "ReleaseRequest", - "returntype": "void", - "params": [ -{ "paramname": "hServerListRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "GetServerDetails", - "returntype": "class gameserveritem_t *", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "iServer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "CancelQuery", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RefreshQuery", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "IsRefreshing", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "GetServerCount", - "returntype": "int", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RefreshServer", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "iServer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "PingServer", - "returntype": "HServerQuery", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usPort" ,"paramtype": "uint16"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingPingResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "PlayerDetails", - "returntype": "HServerQuery", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usPort" ,"paramtype": "uint16"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingPlayersResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "ServerRules", - "returntype": "HServerQuery", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usPort" ,"paramtype": "uint16"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingRulesResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "CancelServerQuery", - "returntype": "void", - "params": [ -{ "paramname": "hServerQuery" ,"paramtype": "HServerQuery"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWrite", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "pvData" ,"paramtype": "const void *"}, -{ "paramname": "cubData" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileRead", - "returntype": "int32", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "pvData" ,"paramtype": "void *"}, -{ "paramname": "cubDataToRead" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteAsync", "callresult": "RemoteStorageFileWriteAsyncComplete_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "pvData" ,"paramtype": "const void *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileReadAsync", "callresult": "RemoteStorageFileReadAsyncComplete_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "nOffset" ,"paramtype": "uint32"}, -{ "paramname": "cubToRead" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileReadAsyncComplete", - "returntype": "bool", - "params": [ -{ "paramname": "hReadCall" ,"paramtype": "SteamAPICall_t"}, -{ "paramname": "pvBuffer" ,"paramtype": "void *"}, -{ "paramname": "cubToRead" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileForget", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileDelete", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileShare", "callresult": "RemoteStorageFileShareResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "SetSyncPlatforms", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "eRemoteStoragePlatform" ,"paramtype": "ERemoteStoragePlatform"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteStreamOpen", - "returntype": "UGCFileWriteStreamHandle_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteStreamWriteChunk", - "returntype": "bool", - "params": [ -{ "paramname": "writeHandle" ,"paramtype": "UGCFileWriteStreamHandle_t"}, -{ "paramname": "pvData" ,"paramtype": "const void *"}, -{ "paramname": "cubData" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteStreamClose", - "returntype": "bool", - "params": [ -{ "paramname": "writeHandle" ,"paramtype": "UGCFileWriteStreamHandle_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteStreamCancel", - "returntype": "bool", - "params": [ -{ "paramname": "writeHandle" ,"paramtype": "UGCFileWriteStreamHandle_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileExists", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FilePersisted", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetFileSize", - "returntype": "int32", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetFileTimestamp", - "returntype": "int64", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetSyncPlatforms", - "returntype": "ERemoteStoragePlatform", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetFileCount", - "returntype": "int32" -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetFileNameAndSize", - "returntype": "const char *", - "params": [ -{ "paramname": "iFile" ,"paramtype": "int"}, -{ "paramname": "pnFileSizeInBytes" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetQuota", - "returntype": "bool", - "params": [ -{ "paramname": "pnTotalBytes" ,"paramtype": "uint64 *"}, -{ "paramname": "puAvailableBytes" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "IsCloudEnabledForAccount", - "returntype": "bool" -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "IsCloudEnabledForApp", - "returntype": "bool" -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "SetCloudEnabledForApp", - "returntype": "void", - "params": [ -{ "paramname": "bEnabled" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UGCDownload", "callresult": "RemoteStorageDownloadUGCResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "unPriority" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetUGCDownloadProgress", - "returntype": "bool", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "pnBytesDownloaded" ,"paramtype": "int32 *"}, -{ "paramname": "pnBytesExpected" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetUGCDetails", - "returntype": "bool", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "pnAppID" ,"paramtype": "AppId_t *"}, -{ "paramname": "ppchName" ,"out_string": " " ,"paramtype": "char **"}, -{ "paramname": "pnFileSizeInBytes" ,"paramtype": "int32 *"}, -{ "paramname": "pSteamIDOwner" ,"out_struct": " " ,"paramtype": "class CSteamID *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UGCRead", - "returntype": "int32", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "pvData" ,"paramtype": "void *"}, -{ "paramname": "cubDataToRead" ,"paramtype": "int32"}, -{ "paramname": "cOffset" ,"paramtype": "uint32"}, -{ "paramname": "eAction" ,"paramtype": "EUGCReadAction"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetCachedUGCCount", - "returntype": "int32" -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetCachedUGCHandle", - "returntype": "UGCHandle_t", - "params": [ -{ "paramname": "iCachedContent" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "PublishWorkshopFile", "callresult": "RemoteStoragePublishFileProgress_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "pchPreviewFile" ,"paramtype": "const char *"}, -{ "paramname": "nConsumerAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "pchTitle" ,"paramtype": "const char *"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"}, -{ "paramname": "eVisibility" ,"paramtype": "ERemoteStoragePublishedFileVisibility"}, -{ "paramname": "pTags" ,"paramtype": "struct SteamParamStringArray_t *"}, -{ "paramname": "eWorkshopFileType" ,"paramtype": "EWorkshopFileType"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "CreatePublishedFileUpdateRequest", - "returntype": "PublishedFileUpdateHandle_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileFile", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFilePreviewFile", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchPreviewFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileTitle", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchTitle" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileDescription", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileVisibility", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "eVisibility" ,"paramtype": "ERemoteStoragePublishedFileVisibility"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileTags", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pTags" ,"paramtype": "struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "CommitPublishedFileUpdate", "callresult": "RemoteStorageUpdatePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetPublishedFileDetails", "callresult": "RemoteStorageGetPublishedFileDetailsResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "unMaxSecondsOld" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "DeletePublishedFile", "callresult": "RemoteStorageDeletePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumerateUserPublishedFiles", "callresult": "RemoteStorageEnumerateUserPublishedFilesResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unStartIndex" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "SubscribePublishedFile", "callresult": "RemoteStorageSubscribePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumerateUserSubscribedFiles", "callresult": "RemoteStorageEnumerateUserSubscribedFilesResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unStartIndex" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UnsubscribePublishedFile", "callresult": "RemoteStorageUnsubscribePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileSetChangeDescription", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchChangeDescription" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetPublishedItemVoteDetails", "callresult": "RemoteStorageGetPublishedItemVoteDetailsResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdateUserPublishedItemVote", "callresult": "RemoteStorageUpdateUserPublishedItemVoteResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "bVoteUp" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetUserPublishedItemVoteDetails", "callresult": "RemoteStorageGetPublishedItemVoteDetailsResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumerateUserSharedWorkshopFiles", "callresult": "RemoteStorageEnumerateUserPublishedFilesResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamId" ,"paramtype": "class CSteamID"}, -{ "paramname": "unStartIndex" ,"paramtype": "uint32"}, -{ "paramname": "pRequiredTags" ,"paramtype": "struct SteamParamStringArray_t *"}, -{ "paramname": "pExcludedTags" ,"paramtype": "struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "PublishVideo", "callresult": "RemoteStoragePublishFileProgress_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "eVideoProvider" ,"paramtype": "EWorkshopVideoProvider"}, -{ "paramname": "pchVideoAccount" ,"paramtype": "const char *"}, -{ "paramname": "pchVideoIdentifier" ,"paramtype": "const char *"}, -{ "paramname": "pchPreviewFile" ,"paramtype": "const char *"}, -{ "paramname": "nConsumerAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "pchTitle" ,"paramtype": "const char *"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"}, -{ "paramname": "eVisibility" ,"paramtype": "ERemoteStoragePublishedFileVisibility"}, -{ "paramname": "pTags" ,"paramtype": "struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "SetUserPublishedFileAction", "callresult": "RemoteStorageSetUserPublishedFileActionResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "eAction" ,"paramtype": "EWorkshopFileAction"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumeratePublishedFilesByUserAction", "callresult": "RemoteStorageEnumeratePublishedFilesByUserActionResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "eAction" ,"paramtype": "EWorkshopFileAction"}, -{ "paramname": "unStartIndex" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumeratePublishedWorkshopFiles", "callresult": "RemoteStorageEnumerateWorkshopFilesResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "eEnumerationType" ,"paramtype": "EWorkshopEnumerationType"}, -{ "paramname": "unStartIndex" ,"paramtype": "uint32"}, -{ "paramname": "unCount" ,"paramtype": "uint32"}, -{ "paramname": "unDays" ,"paramtype": "uint32"}, -{ "paramname": "pTags" ,"paramtype": "struct SteamParamStringArray_t *"}, -{ "paramname": "pUserTags" ,"paramtype": "struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UGCDownloadToLocation", "callresult": "RemoteStorageDownloadUGCResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "pchLocation" ,"paramtype": "const char *"}, -{ "paramname": "unPriority" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "RequestCurrentStats", "callback": "UserStatsReceived_t", - "returntype": "bool" -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "SetStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "nData" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "SetStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "fData" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "UpdateAvgRateStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "flCountThisSession" ,"paramtype": "float"}, -{ "paramname": "dSessionLength" ,"paramtype": "double"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "SetAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "ClearAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementAndUnlockTime", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"}, -{ "paramname": "punUnlockTime" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "StoreStats", - "returntype": "bool" -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementIcon", - "returntype": "int", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementDisplayAttribute", - "returntype": "const char *", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "IndicateAchievementProgress", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "nCurProgress" ,"paramtype": "uint32"}, -{ "paramname": "nMaxProgress" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetNumAchievements", - "returntype": "uint32" -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementName", - "returntype": "const char *", - "params": [ -{ "paramname": "iAchievement" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "RequestUserStats", "callresult": "UserStatsReceived_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetUserAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetUserAchievementAndUnlockTime", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"}, -{ "paramname": "punUnlockTime" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "ResetAllStats", - "returntype": "bool", - "params": [ -{ "paramname": "bAchievementsToo" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "FindOrCreateLeaderboard", "callresult": "LeaderboardFindResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchLeaderboardName" ,"paramtype": "const char *"}, -{ "paramname": "eLeaderboardSortMethod" ,"paramtype": "ELeaderboardSortMethod"}, -{ "paramname": "eLeaderboardDisplayType" ,"paramtype": "ELeaderboardDisplayType"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "FindLeaderboard", "callresult": "LeaderboardFindResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchLeaderboardName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetLeaderboardName", - "returntype": "const char *", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetLeaderboardEntryCount", - "returntype": "int", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetLeaderboardSortMethod", - "returntype": "ELeaderboardSortMethod", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetLeaderboardDisplayType", - "returntype": "ELeaderboardDisplayType", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "DownloadLeaderboardEntries", "callresult": "LeaderboardScoresDownloaded_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"}, -{ "paramname": "eLeaderboardDataRequest" ,"paramtype": "ELeaderboardDataRequest"}, -{ "paramname": "nRangeStart" ,"paramtype": "int"}, -{ "paramname": "nRangeEnd" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "DownloadLeaderboardEntriesForUsers", "callresult": "LeaderboardScoresDownloaded_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"}, -{ "paramname": "prgUsers" ,"array_count": "cUsers" ,"desc": "Array of users to retrieve" ,"paramtype": "class CSteamID *"}, -{ "paramname": "cUsers" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetDownloadedLeaderboardEntry", - "returntype": "bool", - "params": [ -{ "paramname": "hSteamLeaderboardEntries" ,"paramtype": "SteamLeaderboardEntries_t"}, -{ "paramname": "index" ,"paramtype": "int"}, -{ "paramname": "pLeaderboardEntry" ,"paramtype": "struct LeaderboardEntry_t *"}, -{ "paramname": "pDetails" ,"paramtype": "int32 *"}, -{ "paramname": "cDetailsMax" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "UploadLeaderboardScore", "callresult": "LeaderboardScoreUploaded_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"}, -{ "paramname": "eLeaderboardUploadScoreMethod" ,"paramtype": "ELeaderboardUploadScoreMethod"}, -{ "paramname": "nScore" ,"paramtype": "int32"}, -{ "paramname": "pScoreDetails" ,"paramtype": "const int32 *"}, -{ "paramname": "cScoreDetailsCount" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "AttachLeaderboardUGC", "callresult": "LeaderboardUGCSet_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"}, -{ "paramname": "hUGC" ,"paramtype": "UGCHandle_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetNumberOfCurrentPlayers", "callresult": "NumberOfCurrentPlayers_t", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamUserStats", - "methodname": "RequestGlobalAchievementPercentages", "callresult": "GlobalAchievementPercentagesReady_t", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetMostAchievedAchievementInfo", - "returntype": "int", - "params": [ -{ "paramname": "pchName" ,"paramtype": "char *"}, -{ "paramname": "unNameBufLen" ,"paramtype": "uint32"}, -{ "paramname": "pflPercent" ,"paramtype": "float *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetNextMostAchievedAchievementInfo", - "returntype": "int", - "params": [ -{ "paramname": "iIteratorPrevious" ,"paramtype": "int"}, -{ "paramname": "pchName" ,"paramtype": "char *"}, -{ "paramname": "unNameBufLen" ,"paramtype": "uint32"}, -{ "paramname": "pflPercent" ,"paramtype": "float *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementAchievedPercent", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pflPercent" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "RequestGlobalStats", "callresult": "GlobalStatsReceived_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nHistoryDays" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetGlobalStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchStatName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "int64 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetGlobalStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchStatName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "double *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetGlobalStatHistory", - "returntype": "int32", - "params": [ -{ "paramname": "pchStatName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"array_count": "cubData" ,"paramtype": "int64 *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetGlobalStatHistory", - "returntype": "int32", - "params": [ -{ "paramname": "pchStatName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"array_count": "cubData" ,"paramtype": "double *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "BIsSubscribed", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "BIsLowViolence", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "BIsCybercafe", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "BIsVACBanned", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "GetCurrentGameLanguage", - "returntype": "const char *" -} -,{ - "classname": "ISteamApps", - "methodname": "GetAvailableGameLanguages", - "returntype": "const char *" -} -,{ - "classname": "ISteamApps", - "methodname": "BIsSubscribedApp", - "returntype": "bool", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "BIsDlcInstalled", - "returntype": "bool", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetEarliestPurchaseUnixTime", - "returntype": "uint32", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "BIsSubscribedFromFreeWeekend", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "GetDLCCount", - "returntype": "int" -} -,{ - "classname": "ISteamApps", - "methodname": "BGetDLCDataByIndex", - "returntype": "bool", - "params": [ -{ "paramname": "iDLC" ,"paramtype": "int"}, -{ "paramname": "pAppID" ,"paramtype": "AppId_t *"}, -{ "paramname": "pbAvailable" ,"paramtype": "bool *"}, -{ "paramname": "pchName" ,"paramtype": "char *"}, -{ "paramname": "cchNameBufferSize" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "InstallDLC", - "returntype": "void", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "UninstallDLC", - "returntype": "void", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "RequestAppProofOfPurchaseKey", - "returntype": "void", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetCurrentBetaName", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "char *"}, -{ "paramname": "cchNameBufferSize" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "MarkContentCorrupt", - "returntype": "bool", - "params": [ -{ "paramname": "bMissingFilesOnly" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetInstalledDepots", - "returntype": "uint32", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"}, -{ "paramname": "pvecDepots" ,"paramtype": "DepotId_t *"}, -{ "paramname": "cMaxDepots" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetAppInstallDir", - "returntype": "uint32", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"}, -{ "paramname": "pchFolder" ,"paramtype": "char *"}, -{ "paramname": "cchFolderBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "BIsAppInstalled", - "returntype": "bool", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetAppOwner", - "returntype": "class CSteamID" -} -,{ - "classname": "ISteamApps", - "methodname": "GetLaunchQueryParam", - "returntype": "const char *", - "params": [ -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetDlcDownloadProgress", - "returntype": "bool", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "punBytesDownloaded" ,"paramtype": "uint64 *"}, -{ "paramname": "punBytesTotal" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetAppBuildId", - "returntype": "int" -} -,{ - "classname": "ISteamApps", - "methodname": "RequestAllProofOfPurchaseKeys", - "returntype": "void" -} -,{ - "classname": "ISteamApps", - "methodname": "GetFileDetails", "callresult": "FileDetailsResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pszFileName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "SendP2PPacket", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"}, -{ "paramname": "pubData" ,"paramtype": "const void *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"}, -{ "paramname": "eP2PSendType" ,"paramtype": "EP2PSend"}, -{ "paramname": "nChannel" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "IsP2PPacketAvailable", - "returntype": "bool", - "params": [ -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"}, -{ "paramname": "nChannel" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "ReadP2PPacket", - "returntype": "bool", - "params": [ -{ "paramname": "pubDest" ,"paramtype": "void *"}, -{ "paramname": "cubDest" ,"paramtype": "uint32"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"}, -{ "paramname": "psteamIDRemote" ,"paramtype": "class CSteamID *"}, -{ "paramname": "nChannel" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "AcceptP2PSessionWithUser", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CloseP2PSessionWithUser", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CloseP2PChannelWithUser", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"}, -{ "paramname": "nChannel" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetP2PSessionState", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"}, -{ "paramname": "pConnectionState" ,"paramtype": "struct P2PSessionState_t *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "AllowP2PPacketRelay", - "returntype": "bool", - "params": [ -{ "paramname": "bAllow" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CreateListenSocket", - "returntype": "SNetListenSocket_t", - "params": [ -{ "paramname": "nVirtualP2PPort" ,"paramtype": "int"}, -{ "paramname": "nIP" ,"paramtype": "uint32"}, -{ "paramname": "nPort" ,"paramtype": "uint16"}, -{ "paramname": "bAllowUseOfPacketRelay" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CreateP2PConnectionSocket", - "returntype": "SNetSocket_t", - "params": [ -{ "paramname": "steamIDTarget" ,"paramtype": "class CSteamID"}, -{ "paramname": "nVirtualPort" ,"paramtype": "int"}, -{ "paramname": "nTimeoutSec" ,"paramtype": "int"}, -{ "paramname": "bAllowUseOfPacketRelay" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CreateConnectionSocket", - "returntype": "SNetSocket_t", - "params": [ -{ "paramname": "nIP" ,"paramtype": "uint32"}, -{ "paramname": "nPort" ,"paramtype": "uint16"}, -{ "paramname": "nTimeoutSec" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "DestroySocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "bNotifyRemoteEnd" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "DestroyListenSocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetListenSocket_t"}, -{ "paramname": "bNotifyRemoteEnd" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "SendDataOnSocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "pubData" ,"paramtype": "void *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"}, -{ "paramname": "bReliable" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "IsDataAvailableOnSocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "RetrieveDataFromSocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "pubDest" ,"paramtype": "void *"}, -{ "paramname": "cubDest" ,"paramtype": "uint32"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "IsDataAvailable", - "returntype": "bool", - "params": [ -{ "paramname": "hListenSocket" ,"paramtype": "SNetListenSocket_t"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"}, -{ "paramname": "phSocket" ,"paramtype": "SNetSocket_t *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "RetrieveData", - "returntype": "bool", - "params": [ -{ "paramname": "hListenSocket" ,"paramtype": "SNetListenSocket_t"}, -{ "paramname": "pubDest" ,"paramtype": "void *"}, -{ "paramname": "cubDest" ,"paramtype": "uint32"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"}, -{ "paramname": "phSocket" ,"paramtype": "SNetSocket_t *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetSocketInfo", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "pSteamIDRemote" ,"paramtype": "class CSteamID *"}, -{ "paramname": "peSocketStatus" ,"paramtype": "int *"}, -{ "paramname": "punIPRemote" ,"paramtype": "uint32 *"}, -{ "paramname": "punPortRemote" ,"paramtype": "uint16 *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetListenSocketInfo", - "returntype": "bool", - "params": [ -{ "paramname": "hListenSocket" ,"paramtype": "SNetListenSocket_t"}, -{ "paramname": "pnIP" ,"paramtype": "uint32 *"}, -{ "paramname": "pnPort" ,"paramtype": "uint16 *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetSocketConnectionType", - "returntype": "ESNetSocketConnectionType", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetMaxPacketSize", - "returntype": "int", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "WriteScreenshot", - "returntype": "ScreenshotHandle", - "params": [ -{ "paramname": "pubRGB" ,"paramtype": "void *"}, -{ "paramname": "cubRGB" ,"paramtype": "uint32"}, -{ "paramname": "nWidth" ,"paramtype": "int"}, -{ "paramname": "nHeight" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "AddScreenshotToLibrary", - "returntype": "ScreenshotHandle", - "params": [ -{ "paramname": "pchFilename" ,"paramtype": "const char *"}, -{ "paramname": "pchThumbnailFilename" ,"paramtype": "const char *"}, -{ "paramname": "nWidth" ,"paramtype": "int"}, -{ "paramname": "nHeight" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "TriggerScreenshot", - "returntype": "void" -} -,{ - "classname": "ISteamScreenshots", - "methodname": "HookScreenshots", - "returntype": "void", - "params": [ -{ "paramname": "bHook" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "SetLocation", - "returntype": "bool", - "params": [ -{ "paramname": "hScreenshot" ,"paramtype": "ScreenshotHandle"}, -{ "paramname": "pchLocation" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "TagUser", - "returntype": "bool", - "params": [ -{ "paramname": "hScreenshot" ,"paramtype": "ScreenshotHandle"}, -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "TagPublishedFile", - "returntype": "bool", - "params": [ -{ "paramname": "hScreenshot" ,"paramtype": "ScreenshotHandle"}, -{ "paramname": "unPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "IsScreenshotsHooked", - "returntype": "bool" -} -,{ - "classname": "ISteamScreenshots", - "methodname": "AddVRScreenshotToLibrary", - "returntype": "ScreenshotHandle", - "params": [ -{ "paramname": "eType" ,"paramtype": "EVRScreenshotType"}, -{ "paramname": "pchFilename" ,"paramtype": "const char *"}, -{ "paramname": "pchVRFilename" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusic", - "methodname": "BIsEnabled", - "returntype": "bool" -} -,{ - "classname": "ISteamMusic", - "methodname": "BIsPlaying", - "returntype": "bool" -} -,{ - "classname": "ISteamMusic", - "methodname": "GetPlaybackStatus", - "returntype": "AudioPlayback_Status" -} -,{ - "classname": "ISteamMusic", - "methodname": "Play", - "returntype": "void" -} -,{ - "classname": "ISteamMusic", - "methodname": "Pause", - "returntype": "void" -} -,{ - "classname": "ISteamMusic", - "methodname": "PlayPrevious", - "returntype": "void" -} -,{ - "classname": "ISteamMusic", - "methodname": "PlayNext", - "returntype": "void" -} -,{ - "classname": "ISteamMusic", - "methodname": "SetVolume", - "returntype": "void", - "params": [ -{ "paramname": "flVolume" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamMusic", - "methodname": "GetVolume", - "returntype": "float" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "RegisterSteamMusicRemote", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "DeregisterSteamMusicRemote", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "BIsCurrentMusicRemote", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "BActivationSuccess", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetDisplayName", - "returntype": "bool", - "params": [ -{ "paramname": "pchDisplayName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetPNGIcon_64x64", - "returntype": "bool", - "params": [ -{ "paramname": "pvBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbBufferLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnablePlayPrevious", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnablePlayNext", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnableShuffled", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnableLooped", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnableQueue", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnablePlaylists", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdatePlaybackStatus", - "returntype": "bool", - "params": [ -{ "paramname": "nStatus" ,"paramtype": "AudioPlayback_Status"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateShuffled", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateLooped", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateVolume", - "returntype": "bool", - "params": [ -{ "paramname": "flValue" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "CurrentEntryWillChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "CurrentEntryIsAvailable", - "returntype": "bool", - "params": [ -{ "paramname": "bAvailable" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateCurrentEntryText", - "returntype": "bool", - "params": [ -{ "paramname": "pchText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateCurrentEntryElapsedSeconds", - "returntype": "bool", - "params": [ -{ "paramname": "nValue" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateCurrentEntryCoverArt", - "returntype": "bool", - "params": [ -{ "paramname": "pvBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbBufferLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "CurrentEntryDidChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "QueueWillChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "ResetQueueEntries", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetQueueEntry", - "returntype": "bool", - "params": [ -{ "paramname": "nID" ,"paramtype": "int"}, -{ "paramname": "nPosition" ,"paramtype": "int"}, -{ "paramname": "pchEntryText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetCurrentQueueEntry", - "returntype": "bool", - "params": [ -{ "paramname": "nID" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "QueueDidChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "PlaylistWillChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "ResetPlaylistEntries", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetPlaylistEntry", - "returntype": "bool", - "params": [ -{ "paramname": "nID" ,"paramtype": "int"}, -{ "paramname": "nPosition" ,"paramtype": "int"}, -{ "paramname": "pchEntryText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetCurrentPlaylistEntry", - "returntype": "bool", - "params": [ -{ "paramname": "nID" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "PlaylistDidChange", - "returntype": "bool" -} -,{ - "classname": "ISteamHTTP", - "methodname": "CreateHTTPRequest", - "returntype": "HTTPRequestHandle", - "params": [ -{ "paramname": "eHTTPRequestMethod" ,"paramtype": "EHTTPMethod"}, -{ "paramname": "pchAbsoluteURL" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestContextValue", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "ulContextValue" ,"paramtype": "uint64"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestNetworkActivityTimeout", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "unTimeoutSeconds" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestHeaderValue", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchHeaderName" ,"paramtype": "const char *"}, -{ "paramname": "pchHeaderValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestGetOrPostParameter", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchParamName" ,"paramtype": "const char *"}, -{ "paramname": "pchParamValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SendHTTPRequest", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pCallHandle" ,"paramtype": "SteamAPICall_t *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SendHTTPRequestAndStreamResponse", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pCallHandle" ,"paramtype": "SteamAPICall_t *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "DeferHTTPRequest", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "PrioritizeHTTPRequest", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPResponseHeaderSize", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchHeaderName" ,"paramtype": "const char *"}, -{ "paramname": "unResponseHeaderSize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPResponseHeaderValue", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchHeaderName" ,"paramtype": "const char *"}, -{ "paramname": "pHeaderValueBuffer" ,"paramtype": "uint8 *"}, -{ "paramname": "unBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPResponseBodySize", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "unBodySize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPResponseBodyData", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pBodyDataBuffer" ,"paramtype": "uint8 *"}, -{ "paramname": "unBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPStreamingResponseBodyData", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "cOffset" ,"paramtype": "uint32"}, -{ "paramname": "pBodyDataBuffer" ,"paramtype": "uint8 *"}, -{ "paramname": "unBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "ReleaseHTTPRequest", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPDownloadProgressPct", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pflPercentOut" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestRawPostBody", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchContentType" ,"paramtype": "const char *"}, -{ "paramname": "pubBody" ,"paramtype": "uint8 *"}, -{ "paramname": "unBodyLen" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "CreateCookieContainer", - "returntype": "HTTPCookieContainerHandle", - "params": [ -{ "paramname": "bAllowResponsesToModify" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "ReleaseCookieContainer", - "returntype": "bool", - "params": [ -{ "paramname": "hCookieContainer" ,"paramtype": "HTTPCookieContainerHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetCookie", - "returntype": "bool", - "params": [ -{ "paramname": "hCookieContainer" ,"paramtype": "HTTPCookieContainerHandle"}, -{ "paramname": "pchHost" ,"paramtype": "const char *"}, -{ "paramname": "pchUrl" ,"paramtype": "const char *"}, -{ "paramname": "pchCookie" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestCookieContainer", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "hCookieContainer" ,"paramtype": "HTTPCookieContainerHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestUserAgentInfo", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchUserAgentInfo" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestRequiresVerifiedCertificate", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "bRequireVerifiedCertificate" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestAbsoluteTimeoutMS", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "unMilliseconds" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPRequestWasTimedOut", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pbWasTimedOut" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "SendMethod", - "returntype": "ClientUnifiedMessageHandle", - "params": [ -{ "paramname": "pchServiceMethod" ,"paramtype": "const char *"}, -{ "paramname": "pRequestBuffer" ,"paramtype": "const void *"}, -{ "paramname": "unRequestBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "unContext" ,"paramtype": "uint64"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "GetMethodResponseInfo", - "returntype": "bool", - "params": [ -{ "paramname": "hHandle" ,"paramtype": "ClientUnifiedMessageHandle"}, -{ "paramname": "punResponseSize" ,"paramtype": "uint32 *"}, -{ "paramname": "peResult" ,"paramtype": "EResult *"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "GetMethodResponseData", - "returntype": "bool", - "params": [ -{ "paramname": "hHandle" ,"paramtype": "ClientUnifiedMessageHandle"}, -{ "paramname": "pResponseBuffer" ,"paramtype": "void *"}, -{ "paramname": "unResponseBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "bAutoRelease" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "ReleaseMethod", - "returntype": "bool", - "params": [ -{ "paramname": "hHandle" ,"paramtype": "ClientUnifiedMessageHandle"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "SendNotification", - "returntype": "bool", - "params": [ -{ "paramname": "pchServiceNotification" ,"paramtype": "const char *"}, -{ "paramname": "pNotificationBuffer" ,"paramtype": "const void *"}, -{ "paramname": "unNotificationBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "Init", - "returntype": "bool" -} -,{ - "classname": "ISteamController", - "methodname": "Shutdown", - "returntype": "bool" -} -,{ - "classname": "ISteamController", - "methodname": "RunFrame", - "returntype": "void" -} -,{ - "classname": "ISteamController", - "methodname": "GetConnectedControllers", - "returntype": "int", - "params": [ -{ "paramname": "handlesOut" ,"paramtype": "ControllerHandle_t *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "ShowBindingPanel", - "returntype": "bool", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetActionSetHandle", - "returntype": "ControllerActionSetHandle_t", - "params": [ -{ "paramname": "pszActionSetName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "ActivateActionSet", - "returntype": "void", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "actionSetHandle" ,"paramtype": "ControllerActionSetHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetCurrentActionSet", - "returntype": "ControllerActionSetHandle_t", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetDigitalActionHandle", - "returntype": "ControllerDigitalActionHandle_t", - "params": [ -{ "paramname": "pszActionName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetDigitalActionData", - "returntype": "struct ControllerDigitalActionData_t", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "digitalActionHandle" ,"paramtype": "ControllerDigitalActionHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetDigitalActionOrigins", - "returntype": "int", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "actionSetHandle" ,"paramtype": "ControllerActionSetHandle_t"}, -{ "paramname": "digitalActionHandle" ,"paramtype": "ControllerDigitalActionHandle_t"}, -{ "paramname": "originsOut" ,"paramtype": "EControllerActionOrigin *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetAnalogActionHandle", - "returntype": "ControllerAnalogActionHandle_t", - "params": [ -{ "paramname": "pszActionName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetAnalogActionData", - "returntype": "struct ControllerAnalogActionData_t", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "analogActionHandle" ,"paramtype": "ControllerAnalogActionHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetAnalogActionOrigins", - "returntype": "int", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "actionSetHandle" ,"paramtype": "ControllerActionSetHandle_t"}, -{ "paramname": "analogActionHandle" ,"paramtype": "ControllerAnalogActionHandle_t"}, -{ "paramname": "originsOut" ,"paramtype": "EControllerActionOrigin *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "StopAnalogActionMomentum", - "returntype": "void", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "eAction" ,"paramtype": "ControllerAnalogActionHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "TriggerHapticPulse", - "returntype": "void", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "eTargetPad" ,"paramtype": "ESteamControllerPad"}, -{ "paramname": "usDurationMicroSec" ,"paramtype": "unsigned short"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "TriggerRepeatedHapticPulse", - "returntype": "void", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "eTargetPad" ,"paramtype": "ESteamControllerPad"}, -{ "paramname": "usDurationMicroSec" ,"paramtype": "unsigned short"}, -{ "paramname": "usOffMicroSec" ,"paramtype": "unsigned short"}, -{ "paramname": "unRepeat" ,"paramtype": "unsigned short"}, -{ "paramname": "nFlags" ,"paramtype": "unsigned int"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetGamepadIndexForController", - "returntype": "int", - "params": [ -{ "paramname": "ulControllerHandle" ,"paramtype": "ControllerHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetControllerForGamepadIndex", - "returntype": "ControllerHandle_t", - "params": [ -{ "paramname": "nIndex" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetMotionData", - "returntype": "struct ControllerMotionData_t", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "ShowDigitalActionOrigins", - "returntype": "bool", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "digitalActionHandle" ,"paramtype": "ControllerDigitalActionHandle_t"}, -{ "paramname": "flScale" ,"paramtype": "float"}, -{ "paramname": "flXPosition" ,"paramtype": "float"}, -{ "paramname": "flYPosition" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "ShowAnalogActionOrigins", - "returntype": "bool", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "analogActionHandle" ,"paramtype": "ControllerAnalogActionHandle_t"}, -{ "paramname": "flScale" ,"paramtype": "float"}, -{ "paramname": "flXPosition" ,"paramtype": "float"}, -{ "paramname": "flYPosition" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "CreateQueryUserUGCRequest", - "returntype": "UGCQueryHandle_t", - "params": [ -{ "paramname": "unAccountID" ,"paramtype": "AccountID_t"}, -{ "paramname": "eListType" ,"paramtype": "EUserUGCList"}, -{ "paramname": "eMatchingUGCType" ,"paramtype": "EUGCMatchingUGCType"}, -{ "paramname": "eSortOrder" ,"paramtype": "EUserUGCListSortOrder"}, -{ "paramname": "nCreatorAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "nConsumerAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "unPage" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "CreateQueryAllUGCRequest", - "returntype": "UGCQueryHandle_t", - "params": [ -{ "paramname": "eQueryType" ,"paramtype": "EUGCQuery"}, -{ "paramname": "eMatchingeMatchingUGCTypeFileType" ,"paramtype": "EUGCMatchingUGCType"}, -{ "paramname": "nCreatorAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "nConsumerAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "unPage" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "CreateQueryUGCDetailsRequest", - "returntype": "UGCQueryHandle_t", - "params": [ -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "unNumPublishedFileIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SendQueryUGCRequest", "callresult": "SteamUGCQueryCompleted_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCResult", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pDetails" ,"paramtype": "struct SteamUGCDetails_t *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCPreviewURL", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pchURL" ,"out_string_count": "cchURLSize" ,"paramtype": "char *"}, -{ "paramname": "cchURLSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCMetadata", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pchMetadata" ,"out_string_count": "cchMetadatasize" ,"paramtype": "char *"}, -{ "paramname": "cchMetadatasize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCChildren", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "cMaxEntries" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCStatistic", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "eStatType" ,"paramtype": "EItemStatistic"}, -{ "paramname": "pStatValue" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCNumAdditionalPreviews", - "returntype": "uint32", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCAdditionalPreview", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "previewIndex" ,"paramtype": "uint32"}, -{ "paramname": "pchURLOrVideoID" ,"out_string_count": "cchURLSize" ,"paramtype": "char *"}, -{ "paramname": "cchURLSize" ,"paramtype": "uint32"}, -{ "paramname": "pchOriginalFileName" ,"out_string_count": "cchURLSize" ,"paramtype": "char *"}, -{ "paramname": "cchOriginalFileNameSize" ,"paramtype": "uint32"}, -{ "paramname": "pPreviewType" ,"paramtype": "EItemPreviewType *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCNumKeyValueTags", - "returntype": "uint32", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCKeyValueTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "keyValueTagIndex" ,"paramtype": "uint32"}, -{ "paramname": "pchKey" ,"out_string_count": "cchKeySize" ,"paramtype": "char *"}, -{ "paramname": "cchKeySize" ,"paramtype": "uint32"}, -{ "paramname": "pchValue" ,"out_string_count": "cchValueSize" ,"paramtype": "char *"}, -{ "paramname": "cchValueSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "ReleaseQueryUGCRequest", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddRequiredTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pTagName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddExcludedTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pTagName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnOnlyIDs", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnOnlyIDs" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnKeyValueTags", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnKeyValueTags" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnLongDescription", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnLongDescription" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnMetadata", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnMetadata" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnChildren", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnChildren" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnAdditionalPreviews", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnAdditionalPreviews" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnTotalOnly", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnTotalOnly" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetLanguage", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pchLanguage" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetAllowCachedResponse", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "unMaxAgeSeconds" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetCloudFileNameFilter", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pMatchCloudFileName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetMatchAnyTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bMatchAnyTag" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetSearchText", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pSearchText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetRankedByTrendDays", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "unDays" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddRequiredKeyValueTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pKey" ,"paramtype": "const char *"}, -{ "paramname": "pValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "RequestUGCDetails", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "unMaxAgeSeconds" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "CreateItem", "callresult": "CreateItemResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nConsumerAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "eFileType" ,"paramtype": "EWorkshopFileType"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "StartItemUpdate", - "returntype": "UGCUpdateHandle_t", - "params": [ -{ "paramname": "nConsumerAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemTitle", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchTitle" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemDescription", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemUpdateLanguage", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchLanguage" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemMetadata", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchMetaData" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemVisibility", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "eVisibility" ,"paramtype": "ERemoteStoragePublishedFileVisibility"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemTags", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pTags" ,"paramtype": "const struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemContent", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pszContentFolder" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemPreview", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pszPreviewFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "RemoveItemKeyValueTags", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddItemKeyValueTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddItemPreviewFile", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pszPreviewFile" ,"paramtype": "const char *"}, -{ "paramname": "type" ,"paramtype": "EItemPreviewType"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddItemPreviewVideo", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pszVideoID" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "UpdateItemPreviewFile", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pszPreviewFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "UpdateItemPreviewVideo", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pszVideoID" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "RemoveItemPreview", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SubmitItemUpdate", "callresult": "SubmitItemUpdateResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchChangeNote" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetItemUpdateProgress", - "returntype": "EItemUpdateStatus", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "punBytesProcessed" ,"paramtype": "uint64 *"}, -{ "paramname": "punBytesTotal" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetUserItemVote", "callresult": "SetUserItemVoteResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "bVoteUp" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetUserItemVote", "callresult": "GetUserItemVoteResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddItemToFavorites", "callresult": "UserFavoriteItemsListChanged_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "RemoveItemFromFavorites", "callresult": "UserFavoriteItemsListChanged_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SubscribeItem", "callresult": "RemoteStorageSubscribePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "UnsubscribeItem", "callresult": "RemoteStorageUnsubscribePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetNumSubscribedItems", - "returntype": "uint32" -} -,{ - "classname": "ISteamUGC", - "methodname": "GetSubscribedItems", - "returntype": "uint32", - "params": [ -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "cMaxEntries" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetItemState", - "returntype": "uint32", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetItemInstallInfo", - "returntype": "bool", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "punSizeOnDisk" ,"paramtype": "uint64 *"}, -{ "paramname": "pchFolder" ,"out_string_count": "cchFolderSize" ,"paramtype": "char *"}, -{ "paramname": "cchFolderSize" ,"paramtype": "uint32"}, -{ "paramname": "punTimeStamp" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetItemDownloadInfo", - "returntype": "bool", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "punBytesDownloaded" ,"paramtype": "uint64 *"}, -{ "paramname": "punBytesTotal" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "DownloadItem", - "returntype": "bool", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "bHighPriority" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "BInitWorkshopForGameServer", - "returntype": "bool", - "params": [ -{ "paramname": "unWorkshopDepotID" ,"paramtype": "DepotId_t"}, -{ "paramname": "pszFolder" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SuspendDownloads", - "returntype": "void", - "params": [ -{ "paramname": "bSuspend" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "StartPlaytimeTracking", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "unNumPublishedFileIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "StopPlaytimeTracking", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "unNumPublishedFileIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "StopPlaytimeTrackingForAllItems", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamAppList", - "methodname": "GetNumInstalledApps", - "returntype": "uint32" -} -,{ - "classname": "ISteamAppList", - "methodname": "GetInstalledApps", - "returntype": "uint32", - "params": [ -{ "paramname": "pvecAppID" ,"paramtype": "AppId_t *"}, -{ "paramname": "unMaxAppIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamAppList", - "methodname": "GetAppName", - "returntype": "int", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "pchName" ,"out_string": " " ,"paramtype": "char *"}, -{ "paramname": "cchNameMax" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamAppList", - "methodname": "GetAppInstallDir", - "returntype": "int", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "pchDirectory" ,"paramtype": "char *"}, -{ "paramname": "cchNameMax" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamAppList", - "methodname": "GetAppBuildId", - "returntype": "int", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "DestructISteamHTMLSurface", - "returntype": "void" -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "Init", - "returntype": "bool" -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "Shutdown", - "returntype": "bool" -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "CreateBrowser", "callresult": "HTML_BrowserReady_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchUserAgent" ,"paramtype": "const char *"}, -{ "paramname": "pchUserCSS" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "RemoveBrowser", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "LoadURL", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "pchURL" ,"paramtype": "const char *"}, -{ "paramname": "pchPostData" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetSize", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "unWidth" ,"paramtype": "uint32"}, -{ "paramname": "unHeight" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "StopLoad", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "Reload", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "GoBack", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "GoForward", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "AddHeader", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "ExecuteJavascript", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "pchScript" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseUp", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "eMouseButton" ,"paramtype": "ISteamHTMLSurface::EHTMLMouseButton"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseDown", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "eMouseButton" ,"paramtype": "ISteamHTMLSurface::EHTMLMouseButton"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseDoubleClick", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "eMouseButton" ,"paramtype": "ISteamHTMLSurface::EHTMLMouseButton"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseMove", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "x" ,"paramtype": "int"}, -{ "paramname": "y" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseWheel", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nDelta" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "KeyDown", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nNativeKeyCode" ,"paramtype": "uint32"}, -{ "paramname": "eHTMLKeyModifiers" ,"paramtype": "ISteamHTMLSurface::EHTMLKeyModifiers"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "KeyUp", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nNativeKeyCode" ,"paramtype": "uint32"}, -{ "paramname": "eHTMLKeyModifiers" ,"paramtype": "ISteamHTMLSurface::EHTMLKeyModifiers"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "KeyChar", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "cUnicodeChar" ,"paramtype": "uint32"}, -{ "paramname": "eHTMLKeyModifiers" ,"paramtype": "ISteamHTMLSurface::EHTMLKeyModifiers"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetHorizontalScroll", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nAbsolutePixelScroll" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetVerticalScroll", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nAbsolutePixelScroll" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetKeyFocus", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "bHasKeyFocus" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "ViewSource", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "CopyToClipboard", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "PasteFromClipboard", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "Find", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "pchSearchStr" ,"paramtype": "const char *"}, -{ "paramname": "bCurrentlyInFind" ,"paramtype": "bool"}, -{ "paramname": "bReverse" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "StopFind", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "GetLinkAtPosition", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "x" ,"paramtype": "int"}, -{ "paramname": "y" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetCookie", - "returntype": "void", - "params": [ -{ "paramname": "pchHostname" ,"paramtype": "const char *"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"}, -{ "paramname": "pchPath" ,"paramtype": "const char *"}, -{ "paramname": "nExpires" ,"paramtype": "RTime32"}, -{ "paramname": "bSecure" ,"paramtype": "bool"}, -{ "paramname": "bHTTPOnly" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetPageScaleFactor", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "flZoom" ,"paramtype": "float"}, -{ "paramname": "nPointX" ,"paramtype": "int"}, -{ "paramname": "nPointY" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetBackgroundMode", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "bBackgroundMode" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "AllowStartRequest", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "bAllowed" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "JSDialogResponse", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "bResult" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetResultStatus", "desc": "Find out the status of an asynchronous inventory result handle.", - "returntype": "EResult", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetResultItems", "desc": "Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used.", - "returntype": "bool", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"}, -{ "paramname": "pOutItemsArray" ,"out_array_count": "punOutItemsArraySize" ,"desc": "Output array" ,"paramtype": "struct SteamItemDetails_t *"}, -{ "paramname": "punOutItemsArraySize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetResultTimestamp", "desc": "Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age.", - "returntype": "uint32", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "CheckResultSteamID", "desc": "Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory.", - "returntype": "bool", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"}, -{ "paramname": "steamIDExpected" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "DestroyResult", "desc": "Destroys a result handle and frees all associated memory.", - "returntype": "void", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetAllItems", "desc": "Captures the entire state of the current users Steam inventory.", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetItemsByID", "desc": "Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs.", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pInstanceIDs" ,"array_count": "unCountInstanceIDs" ,"paramtype": "const SteamItemInstanceID_t *"}, -{ "paramname": "unCountInstanceIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "SerializeResult", - "returntype": "bool", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"}, -{ "paramname": "pOutBuffer" ,"out_buffer_count": "punOutBufferSize" ,"paramtype": "void *"}, -{ "paramname": "punOutBufferSize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "DeserializeResult", - "returntype": "bool", - "params": [ -{ "paramname": "pOutResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pBuffer" ,"buffer_count": "punOutBufferSize" ,"paramtype": "const void *"}, -{ "paramname": "unBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "bRESERVED_MUST_BE_FALSE" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GenerateItems", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pArrayItemDefs" ,"array_count": "unArrayLength" ,"paramtype": "const SteamItemDef_t *"}, -{ "paramname": "punArrayQuantity" ,"array_count": "unArrayLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "unArrayLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GrantPromoItems", "desc": "GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only).", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "AddPromoItem", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "itemDef" ,"paramtype": "SteamItemDef_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "AddPromoItems", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pArrayItemDefs" ,"array_count": "unArrayLength" ,"paramtype": "const SteamItemDef_t *"}, -{ "paramname": "unArrayLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "ConsumeItem", "desc": "ConsumeItem() removes items from the inventory permanently.", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "itemConsume" ,"paramtype": "SteamItemInstanceID_t"}, -{ "paramname": "unQuantity" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "ExchangeItems", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pArrayGenerate" ,"array_count": "unArrayGenerateLength" ,"paramtype": "const SteamItemDef_t *"}, -{ "paramname": "punArrayGenerateQuantity" ,"array_count": "unArrayGenerateLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "unArrayGenerateLength" ,"paramtype": "uint32"}, -{ "paramname": "pArrayDestroy" ,"array_count": "unArrayDestroyLength" ,"paramtype": "const SteamItemInstanceID_t *"}, -{ "paramname": "punArrayDestroyQuantity" ,"array_count": "unArrayDestroyLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "unArrayDestroyLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "TransferItemQuantity", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "itemIdSource" ,"paramtype": "SteamItemInstanceID_t"}, -{ "paramname": "unQuantity" ,"paramtype": "uint32"}, -{ "paramname": "itemIdDest" ,"paramtype": "SteamItemInstanceID_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "SendItemDropHeartbeat", "desc": "Applications which use timed-drop mechanics should call SendItemDropHeartbeat() when active gameplay begins and at least once every two minutes afterwards.", - "returntype": "void" -} -,{ - "classname": "ISteamInventory", - "methodname": "TriggerItemDrop", "desc": "Playtime credit must be consumed and turned into item drops by your game.", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "dropListDefinition" ,"paramtype": "SteamItemDef_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "TradeItems", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "steamIDTradePartner" ,"paramtype": "class CSteamID"}, -{ "paramname": "pArrayGive" ,"array_count": "nArrayGiveLength" ,"paramtype": "const SteamItemInstanceID_t *"}, -{ "paramname": "pArrayGiveQuantity" ,"array_count": "nArrayGiveLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "nArrayGiveLength" ,"paramtype": "uint32"}, -{ "paramname": "pArrayGet" ,"array_count": "nArrayGetLength" ,"paramtype": "const SteamItemInstanceID_t *"}, -{ "paramname": "pArrayGetQuantity" ,"array_count": "nArrayGetLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "nArrayGetLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "LoadItemDefinitions", "desc": "LoadItemDefinitions triggers the automatic load and refresh of item definitions.", - "returntype": "bool" -} -,{ - "classname": "ISteamInventory", - "methodname": "GetItemDefinitionIDs", - "returntype": "bool", - "params": [ -{ "paramname": "pItemDefIDs" ,"out_array_count": "punItemDefIDsArraySize" ,"desc": "List of item definition IDs" ,"paramtype": "SteamItemDef_t *"}, -{ "paramname": "punItemDefIDsArraySize" ,"desc": "Size of array is passed in and actual size used is returned in this param" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetItemDefinitionProperty", - "returntype": "bool", - "params": [ -{ "paramname": "iDefinition" ,"paramtype": "SteamItemDef_t"}, -{ "paramname": "pchPropertyName" ,"paramtype": "const char *"}, -{ "paramname": "pchValueBuffer" ,"out_string_count": "punValueBufferSizeOut" ,"paramtype": "char *"}, -{ "paramname": "punValueBufferSizeOut" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamVideo", - "methodname": "GetVideoURL", - "returntype": "void", - "params": [ -{ "paramname": "unVideoAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamVideo", - "methodname": "IsBroadcasting", - "returntype": "bool", - "params": [ -{ "paramname": "pnNumViewers" ,"paramtype": "int *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "InitGameServer", - "returntype": "bool", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usGamePort" ,"paramtype": "uint16"}, -{ "paramname": "usQueryPort" ,"paramtype": "uint16"}, -{ "paramname": "unFlags" ,"paramtype": "uint32"}, -{ "paramname": "nGameAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "pchVersionString" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetProduct", - "returntype": "void", - "params": [ -{ "paramname": "pszProduct" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetGameDescription", - "returntype": "void", - "params": [ -{ "paramname": "pszGameDescription" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetModDir", - "returntype": "void", - "params": [ -{ "paramname": "pszModDir" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetDedicatedServer", - "returntype": "void", - "params": [ -{ "paramname": "bDedicated" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "LogOn", - "returntype": "void", - "params": [ -{ "paramname": "pszToken" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "LogOnAnonymous", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "LogOff", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "BLoggedOn", - "returntype": "bool" -} -,{ - "classname": "ISteamGameServer", - "methodname": "BSecure", - "returntype": "bool" -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetSteamID", - "returntype": "class CSteamID" -} -,{ - "classname": "ISteamGameServer", - "methodname": "WasRestartRequested", - "returntype": "bool" -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetMaxPlayerCount", - "returntype": "void", - "params": [ -{ "paramname": "cPlayersMax" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetBotPlayerCount", - "returntype": "void", - "params": [ -{ "paramname": "cBotplayers" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetServerName", - "returntype": "void", - "params": [ -{ "paramname": "pszServerName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetMapName", - "returntype": "void", - "params": [ -{ "paramname": "pszMapName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetPasswordProtected", - "returntype": "void", - "params": [ -{ "paramname": "bPasswordProtected" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetSpectatorPort", - "returntype": "void", - "params": [ -{ "paramname": "unSpectatorPort" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetSpectatorServerName", - "returntype": "void", - "params": [ -{ "paramname": "pszSpectatorServerName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "ClearAllKeyValues", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetKeyValue", - "returntype": "void", - "params": [ -{ "paramname": "pKey" ,"paramtype": "const char *"}, -{ "paramname": "pValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetGameTags", - "returntype": "void", - "params": [ -{ "paramname": "pchGameTags" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetGameData", - "returntype": "void", - "params": [ -{ "paramname": "pchGameData" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetRegion", - "returntype": "void", - "params": [ -{ "paramname": "pszRegion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SendUserConnectAndAuthenticate", - "returntype": "bool", - "params": [ -{ "paramname": "unIPClient" ,"paramtype": "uint32"}, -{ "paramname": "pvAuthBlob" ,"paramtype": "const void *"}, -{ "paramname": "cubAuthBlobSize" ,"paramtype": "uint32"}, -{ "paramname": "pSteamIDUser" ,"paramtype": "class CSteamID *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "CreateUnauthenticatedUserConnection", - "returntype": "class CSteamID" -} -,{ - "classname": "ISteamGameServer", - "methodname": "SendUserDisconnect", - "returntype": "void", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "BUpdateUserData", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchPlayerName" ,"paramtype": "const char *"}, -{ "paramname": "uScore" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetAuthSessionTicket", - "returntype": "HAuthTicket", - "params": [ -{ "paramname": "pTicket" ,"paramtype": "void *"}, -{ "paramname": "cbMaxTicket" ,"paramtype": "int"}, -{ "paramname": "pcbTicket" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "BeginAuthSession", - "returntype": "EBeginAuthSessionResult", - "params": [ -{ "paramname": "pAuthTicket" ,"paramtype": "const void *"}, -{ "paramname": "cbAuthTicket" ,"paramtype": "int"}, -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "EndAuthSession", - "returntype": "void", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "CancelAuthTicket", - "returntype": "void", - "params": [ -{ "paramname": "hAuthTicket" ,"paramtype": "HAuthTicket"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "UserHasLicenseForApp", - "returntype": "EUserHasLicenseForAppResult", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"}, -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "RequestUserGroupStatus", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDGroup" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetGameplayStats", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetServerReputation", "callresult": "GSReputation_t", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetPublicIP", - "returntype": "uint32" -} -,{ - "classname": "ISteamGameServer", - "methodname": "HandleIncomingPacket", - "returntype": "bool", - "params": [ -{ "paramname": "pData" ,"paramtype": "const void *"}, -{ "paramname": "cbData" ,"paramtype": "int"}, -{ "paramname": "srcIP" ,"paramtype": "uint32"}, -{ "paramname": "srcPort" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetNextOutgoingPacket", - "returntype": "int", - "params": [ -{ "paramname": "pOut" ,"paramtype": "void *"}, -{ "paramname": "cbMaxOut" ,"paramtype": "int"}, -{ "paramname": "pNetAdr" ,"paramtype": "uint32 *"}, -{ "paramname": "pPort" ,"paramtype": "uint16 *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "EnableHeartbeats", - "returntype": "void", - "params": [ -{ "paramname": "bActive" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetHeartbeatInterval", - "returntype": "void", - "params": [ -{ "paramname": "iHeartbeatInterval" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "ForceHeartbeat", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "AssociateWithClan", "callresult": "AssociateWithClanResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "ComputeNewPlayerCompatibility", "callresult": "ComputeNewPlayerCompatibilityResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDNewPlayer" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "RequestUserStats", "callresult": "GSStatsReceived_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "GetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "GetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "GetUserAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "SetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "nData" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "SetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "fData" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "UpdateUserAvgRateStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "flCountThisSession" ,"paramtype": "float"}, -{ "paramname": "dSessionLength" ,"paramtype": "double"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "SetUserAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "ClearUserAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "StoreUserStats", "callresult": "GSStatsStored_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -] -} \ No newline at end of file diff --git a/lib/osx/include/steam/steam_api_common.h b/lib/osx/include/steam/steam_api_common.h new file mode 100644 index 0000000..cb8e6b7 --- /dev/null +++ b/lib/osx/include/steam/steam_api_common.h @@ -0,0 +1,249 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Steamworks SDK minimal include +// +// Defines the minimal set of things we need to use any single interface +// or register for any callback. +// +//============================================================================= + +#ifndef STEAM_API_COMMON_H +#define STEAM_API_COMMON_H + +#include "steamtypes.h" +#include "steamclientpublic.h" + +// S_API defines the linkage and calling conventions for steam_api.dll exports +#if defined( _WIN32 ) && !defined( _X360 ) + #if defined( STEAM_API_EXPORTS ) + #define S_API extern "C" __declspec( dllexport ) + #elif defined( STEAM_API_NODLL ) + #define S_API extern "C" + #else + #define S_API extern "C" __declspec( dllimport ) + #endif // STEAM_API_EXPORTS +#elif defined( __GNUC__ ) + #if defined( STEAM_API_EXPORTS ) + #define S_API extern "C" __attribute__ ((visibility("default"))) + #else + #define S_API extern "C" + #endif // STEAM_API_EXPORTS +#else // !WIN32 + #if defined( STEAM_API_EXPORTS ) + #define S_API extern "C" + #else + #define S_API extern "C" + #endif // STEAM_API_EXPORTS +#endif + +#if defined( __cplusplus ) && ( __cplusplus >= 201103L ) + #define S_OVERRIDE override +#else + #define S_OVERRIDE +#endif + +#if ( defined(STEAM_API_EXPORTS) || defined(STEAM_API_NODLL) ) && !defined(API_GEN) +#define STEAM_PRIVATE_API( ... ) __VA_ARGS__ +#elif defined(STEAM_API_EXPORTS) && defined(API_GEN) +#define STEAM_PRIVATE_API( ... ) +#else +#define STEAM_PRIVATE_API( ... ) protected: __VA_ARGS__ public: +#endif + +// handle to a communication pipe to the Steam client +typedef int32 HSteamPipe; +// handle to single instance of a steam user +typedef int32 HSteamUser; + +// A fixed size buffer to receive an error message that is returned by some API +// calls. +const int k_cchMaxSteamErrMsg = 1024; +typedef char SteamErrMsg[ k_cchMaxSteamErrMsg ]; + +// #define away __cdecl on posix. +// This is really, really bad. We're sorry. But it's been this way for +// a long time now and it's scary to change it, as there may be others that +// depend on it. +#ifndef _WIN32 + #define __cdecl +#endif + +// function prototype +extern "C" typedef void ( S_CALLTYPE *SteamAPIWarningMessageHook_t )( int, const char * ); +extern "C" typedef uint32 ( S_CALLTYPE *SteamAPI_CheckCallbackRegistered_t )( int iCallbackNum ); +#if defined( __SNC__ ) + #pragma diag_suppress=1700 // warning 1700: class "%s" has virtual functions but non-virtual destructor +#endif + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// steam callback and call-result helpers +// +// The following macros and classes are used to register your application for +// callbacks and call-results, which are delivered in a predictable manner. +// +// STEAM_CALLBACK macros are meant for use inside of a C++ class definition. +// They map a Steam notification callback directly to a class member function +// which is automatically prototyped as "void func( callback_type *pParam )". +// +// CCallResult is used with specific Steam APIs that return "result handles". +// The handle can be passed to a CCallResult object's Set function, along with +// an object pointer and member-function pointer. The member function will +// be executed once the results of the Steam API call are available. +// +// CCallback and CCallbackManual classes can be used instead of STEAM_CALLBACK +// macros if you require finer control over registration and unregistration. +// +// Callbacks and call-results are queued automatically and are only +// delivered/executed when your application calls SteamAPI_RunCallbacks(). +// +// Note that there is an alternative, lower level callback dispatch mechanism. +// See SteamAPI_ManualDispatch_Init +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +// Dispatch all queued Steamworks callbacks. +// +// This is safe to call from multiple threads simultaneously, +// but if you choose to do this, callback code could be executed on any thread. +// One alternative is to call SteamAPI_RunCallbacks from the main thread only, +// and call SteamAPI_ReleaseCurrentThreadMemory regularly on other threads. +S_API void S_CALLTYPE SteamAPI_RunCallbacks(); + +// Declares a callback member function plus a helper member variable which +// registers the callback on object creation and unregisters on destruction. +// The optional fourth 'var' param exists only for backwards-compatibility +// and can be ignored. +#define STEAM_CALLBACK( thisclass, func, .../*callback_type, [deprecated] var*/ ) \ + _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, 4, 3 ), ( /**/, thisclass, func, __VA_ARGS__ ) ) + +// Declares a callback function and a named CCallbackManual variable which +// has Register and Unregister functions instead of automatic registration. +#define STEAM_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ + CCallbackManual< thisclass, callback_type > var; void func( callback_type *pParam ) + +// Dispatch callbacks relevant to the gameserver client and interfaces. +// To register for these, you need to use STEAM_GAMESERVER_CALLBACK. +// (Or call SetGameserverFlag on your CCallbackBase object.) +S_API void S_CALLTYPE SteamGameServer_RunCallbacks(); + +// Same as STEAM_CALLBACK, but for callbacks on the gameserver interface. +// These will be dispatched during SteamGameServer_RunCallbacks +#define STEAM_GAMESERVER_CALLBACK( thisclass, func, /*callback_type, [deprecated] var*/... ) \ + _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, GS, 3 ), ( this->SetGameserverFlag();, thisclass, func, __VA_ARGS__ ) ) +#define STEAM_GAMESERVER_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ + CCallbackManual< thisclass, callback_type, true > var; void func( callback_type *pParam ) + +//----------------------------------------------------------------------------- +// Purpose: base for callbacks and call results - internal implementation detail +//----------------------------------------------------------------------------- +class CCallbackBase +{ +public: + CCallbackBase() { m_nCallbackFlags = 0; m_iCallback = 0; } + // don't add a virtual destructor because we export this binary interface across dll's + virtual void Run( void *pvParam ) = 0; + virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ) = 0; + int GetICallback() { return m_iCallback; } + virtual int GetCallbackSizeBytes() = 0; + +protected: + enum { k_ECallbackFlagsRegistered = 0x01, k_ECallbackFlagsGameServer = 0x02 }; + uint8 m_nCallbackFlags; + int m_iCallback; + friend class CCallbackMgr; + +private: + CCallbackBase( const CCallbackBase& ); + CCallbackBase& operator=( const CCallbackBase& ); +}; + +//----------------------------------------------------------------------------- +// Purpose: templated base for callbacks - internal implementation detail +//----------------------------------------------------------------------------- +template< int sizeof_P > +class CCallbackImpl : protected CCallbackBase +{ +public: + virtual ~CCallbackImpl() { if ( m_nCallbackFlags & k_ECallbackFlagsRegistered ) SteamAPI_UnregisterCallback( this ); } + void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } + +protected: + friend class CCallbackMgr; + virtual void Run( void *pvParam ) S_OVERRIDE = 0; + virtual void Run( void *pvParam, bool /*bIOFailure*/, SteamAPICall_t /*hSteamAPICall*/ ) S_OVERRIDE { Run( pvParam ); } + virtual int GetCallbackSizeBytes() S_OVERRIDE { return sizeof_P; } +}; + + +//----------------------------------------------------------------------------- +// Purpose: maps a steam async call result to a class member function +// template params: T = local class, P = parameter struct +//----------------------------------------------------------------------------- +template< class T, class P > +class CCallResult : private CCallbackBase +{ +public: + typedef void (T::*func_t)( P*, bool ); + + CCallResult(); + ~CCallResult(); + + void Set( SteamAPICall_t hAPICall, T *p, func_t func ); + bool IsActive() const; + void Cancel(); + + void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } +private: + virtual void Run( void *pvParam ) S_OVERRIDE; + virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ) S_OVERRIDE; + virtual int GetCallbackSizeBytes() S_OVERRIDE { return sizeof( P ); } + + SteamAPICall_t m_hAPICall; + T *m_pObj; + func_t m_Func; +}; + + + +//----------------------------------------------------------------------------- +// Purpose: maps a steam callback to a class member function +// template params: T = local class, P = parameter struct, +// bGameserver = listen for gameserver callbacks instead of client callbacks +//----------------------------------------------------------------------------- +template< class T, class P, bool bGameserver = false > +class CCallback : public CCallbackImpl< sizeof( P ) > +{ +public: + typedef void (T::*func_t)(P*); + + // NOTE: If you can't provide the correct parameters at construction time, you should + // use the CCallbackManual callback object (STEAM_CALLBACK_MANUAL macro) instead. + CCallback( T *pObj, func_t func ); + + void Register( T *pObj, func_t func ); + void Unregister(); + +protected: + virtual void Run( void *pvParam ) S_OVERRIDE; + + T *m_pObj; + func_t m_Func; +}; + + +//----------------------------------------------------------------------------- +// Purpose: subclass of CCallback which allows default-construction in +// an unregistered state; you must call Register manually +//----------------------------------------------------------------------------- +template< class T, class P, bool bGameServer = false > +class CCallbackManual : public CCallback< T, P, bGameServer > +{ +public: + CCallbackManual() : CCallback< T, P, bGameServer >( nullptr, nullptr ) {} + + // Inherits public Register and Unregister functions from base class +}; + +// Internal implementation details for all of the above +#include "steam_api_internal.h" + +#endif // STEAM_API_COMMON_H diff --git a/lib/osx/include/steam/steam_api_flat.h b/lib/osx/include/steam/steam_api_flat.h index e77e4cb..a0e7ce4 100644 --- a/lib/osx/include/steam/steam_api_flat.h +++ b/lib/osx/include/steam/steam_api_flat.h @@ -1,802 +1,1268 @@ -//====== Copyright (c) 1996-2014, Valve Corporation, All rights reserved. ======= +//====== Copyright Valve Corporation, All rights reserved. ==================== // -// Purpose: Header for flatted SteamAPI. Use this for binding to other languages. +// Purpose: Header for "flat" SteamAPI. Use this for binding to other languages. // This file is auto-generated, do not edit it. // //============================================================================= #ifndef STEAMAPIFLAT_H #define STEAMAPIFLAT_H -#ifdef _WIN32 -#pragma once -#endif -#include <stdint.h> +#include "steam/steam_api.h" +#include "steam/isteamgameserver.h" +#include "steam/isteamgameserverstats.h" - -typedef unsigned char uint8; -typedef unsigned char uint8; -typedef signed char int8; -typedef short int16; -typedef unsigned short uint16; -typedef int int32; -typedef unsigned int uint32; -typedef long long int64; -typedef unsigned long long uint64; -typedef int64 lint64; -typedef uint64 ulint64; -typedef uint8 Salt_t[8]; -typedef uint64 GID_t; -typedef uint64 JobID_t; -typedef GID_t TxnID_t; -typedef uint32 PackageId_t; -typedef uint32 BundleId_t; -typedef uint32 AppId_t; -typedef uint64 AssetClassId_t; -typedef uint32 PhysicalItemId_t; -typedef uint32 DepotId_t; -typedef uint32 RTime32; -typedef uint32 CellID_t; -typedef uint64 SteamAPICall_t; -typedef uint32 AccountID_t; -typedef uint32 PartnerId_t; -typedef uint64 ManifestId_t; -typedef uint32 HAuthTicket; -typedef void * BREAKPAD_HANDLE; -typedef char compile_time_assert_type[1]; -typedef int32 HSteamPipe; -typedef int32 HSteamUser; -typedef int16 FriendsGroupID_t; -typedef void * HServerListRequest; -typedef int HServerQuery; -typedef uint64 UGCHandle_t; -typedef uint64 PublishedFileUpdateHandle_t; -typedef uint64 PublishedFileId_t; -typedef uint64 UGCFileWriteStreamHandle_t; -typedef char compile_time_assert_type[1]; -typedef uint64 SteamLeaderboard_t; -typedef uint64 SteamLeaderboardEntries_t; -typedef uint32 SNetSocket_t; -typedef uint32 SNetListenSocket_t; -typedef uint32 ScreenshotHandle; -typedef uint32 HTTPRequestHandle; -typedef uint32 HTTPCookieContainerHandle; -typedef uint64 ClientUnifiedMessageHandle; -typedef uint64 ControllerHandle_t; -typedef uint64 ControllerActionSetHandle_t; -typedef uint64 ControllerDigitalActionHandle_t; -typedef uint64 ControllerAnalogActionHandle_t; -typedef uint64 UGCQueryHandle_t; -typedef uint64 UGCUpdateHandle_t; -typedef uint32 HHTMLBrowser; -typedef uint64 SteamItemInstanceID_t; -typedef int32 SteamItemDef_t; -typedef int32 SteamInventoryResult_t; -// OpenVR Constants -int const_k_iSteamUserCallbacks = 100; -int const_k_iSteamGameServerCallbacks = 200; -int const_k_iSteamFriendsCallbacks = 300; -int const_k_iSteamBillingCallbacks = 400; -int const_k_iSteamMatchmakingCallbacks = 500; -int const_k_iSteamContentServerCallbacks = 600; -int const_k_iSteamUtilsCallbacks = 700; -int const_k_iClientFriendsCallbacks = 800; -int const_k_iClientUserCallbacks = 900; -int const_k_iSteamAppsCallbacks = 1000; -int const_k_iSteamUserStatsCallbacks = 1100; -int const_k_iSteamNetworkingCallbacks = 1200; -int const_k_iClientRemoteStorageCallbacks = 1300; -int const_k_iClientDepotBuilderCallbacks = 1400; -int const_k_iSteamGameServerItemsCallbacks = 1500; -int const_k_iClientUtilsCallbacks = 1600; -int const_k_iSteamGameCoordinatorCallbacks = 1700; -int const_k_iSteamGameServerStatsCallbacks = 1800; -int const_k_iSteam2AsyncCallbacks = 1900; -int const_k_iSteamGameStatsCallbacks = 2000; -int const_k_iClientHTTPCallbacks = 2100; -int const_k_iClientScreenshotsCallbacks = 2200; -int const_k_iSteamScreenshotsCallbacks = 2300; -int const_k_iClientAudioCallbacks = 2400; -int const_k_iClientUnifiedMessagesCallbacks = 2500; -int const_k_iSteamStreamLauncherCallbacks = 2600; -int const_k_iClientControllerCallbacks = 2700; -int const_k_iSteamControllerCallbacks = 2800; -int const_k_iClientParentalSettingsCallbacks = 2900; -int const_k_iClientDeviceAuthCallbacks = 3000; -int const_k_iClientNetworkDeviceManagerCallbacks = 3100; -int const_k_iClientMusicCallbacks = 3200; -int const_k_iClientRemoteClientManagerCallbacks = 3300; -int const_k_iClientUGCCallbacks = 3400; -int const_k_iSteamStreamClientCallbacks = 3500; -int const_k_IClientProductBuilderCallbacks = 3600; -int const_k_iClientShortcutsCallbacks = 3700; -int const_k_iClientRemoteControlManagerCallbacks = 3800; -int const_k_iSteamAppListCallbacks = 3900; -int const_k_iSteamMusicCallbacks = 4000; -int const_k_iSteamMusicRemoteCallbacks = 4100; -int const_k_iClientVRCallbacks = 4200; -int const_k_iClientGameNotificationCallbacks = 4300; -int const_k_iSteamGameNotificationCallbacks = 4400; -int const_k_iSteamHTMLSurfaceCallbacks = 4500; -int const_k_iClientVideoCallbacks = 4600; -int const_k_iClientInventoryCallbacks = 4700; -int const_k_iClientBluetoothManagerCallbacks = 4800; -int const_k_cchPersonaNameMax = 128; -int const_k_cwchPersonaNameMax = 32; -int const_k_cchMaxRichPresenceKeys = 20; -int const_k_cchMaxRichPresenceKeyLength = 64; -int const_k_cchMaxRichPresenceValueLength = 256; -int const_k_cchStatNameMax = 128; -int const_k_cchLeaderboardNameMax = 128; -int const_k_cLeaderboardDetailsMax = 64; -unsigned long const_k_InvalidUnifiedMessageHandle = 0; -unsigned long const_k_SteamItemInstanceIDInvalid = 0xffffffff; -int const_k_SteamInventoryResultInvalid = -1; +typedef uint64 uint64_steamid; // Used when passing or returning CSteamID +typedef uint64 uint64_gameid; // Used when passing or return CGameID -// OpenVR Enums -// OpenVR Structs +// ISteamClient +S_API HSteamPipe SteamAPI_ISteamClient_CreateSteamPipe( ISteamClient* self ); +S_API bool SteamAPI_ISteamClient_BReleaseSteamPipe( ISteamClient* self, HSteamPipe hSteamPipe ); +S_API HSteamUser SteamAPI_ISteamClient_ConnectToGlobalUser( ISteamClient* self, HSteamPipe hSteamPipe ); +S_API HSteamUser SteamAPI_ISteamClient_CreateLocalUser( ISteamClient* self, HSteamPipe * phSteamPipe, EAccountType eAccountType ); +S_API void SteamAPI_ISteamClient_ReleaseUser( ISteamClient* self, HSteamPipe hSteamPipe, HSteamUser hUser ); +S_API ISteamUser * SteamAPI_ISteamClient_GetISteamUser( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamGameServer * SteamAPI_ISteamClient_GetISteamGameServer( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API void SteamAPI_ISteamClient_SetLocalIPBinding( ISteamClient* self, const SteamIPAddress_t & unIP, uint16 usPort ); +S_API ISteamFriends * SteamAPI_ISteamClient_GetISteamFriends( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamUtils * SteamAPI_ISteamClient_GetISteamUtils( ISteamClient* self, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMatchmaking * SteamAPI_ISteamClient_GetISteamMatchmaking( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMatchmakingServers * SteamAPI_ISteamClient_GetISteamMatchmakingServers( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API void * SteamAPI_ISteamClient_GetISteamGenericInterface( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamUserStats * SteamAPI_ISteamClient_GetISteamUserStats( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamGameServerStats * SteamAPI_ISteamClient_GetISteamGameServerStats( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamApps * SteamAPI_ISteamClient_GetISteamApps( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamNetworking * SteamAPI_ISteamClient_GetISteamNetworking( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamRemoteStorage * SteamAPI_ISteamClient_GetISteamRemoteStorage( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamScreenshots * SteamAPI_ISteamClient_GetISteamScreenshots( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamGameSearch * SteamAPI_ISteamClient_GetISteamGameSearch( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API uint32 SteamAPI_ISteamClient_GetIPCCallCount( ISteamClient* self ); +S_API void SteamAPI_ISteamClient_SetWarningMessageHook( ISteamClient* self, SteamAPIWarningMessageHook_t pFunction ); +S_API bool SteamAPI_ISteamClient_BShutdownIfAllPipesClosed( ISteamClient* self ); +S_API ISteamHTTP * SteamAPI_ISteamClient_GetISteamHTTP( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamController * SteamAPI_ISteamClient_GetISteamController( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamUGC * SteamAPI_ISteamClient_GetISteamUGC( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMusic * SteamAPI_ISteamClient_GetISteamMusic( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMusicRemote * SteamAPI_ISteamClient_GetISteamMusicRemote( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamHTMLSurface * SteamAPI_ISteamClient_GetISteamHTMLSurface( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamInventory * SteamAPI_ISteamClient_GetISteamInventory( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamVideo * SteamAPI_ISteamClient_GetISteamVideo( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamParentalSettings * SteamAPI_ISteamClient_GetISteamParentalSettings( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamInput * SteamAPI_ISteamClient_GetISteamInput( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamParties * SteamAPI_ISteamClient_GetISteamParties( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamRemotePlay * SteamAPI_ISteamClient_GetISteamRemotePlay( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +// ISteamUser +// A versioned accessor is exported by the library +S_API ISteamUser *SteamAPI_SteamUser_v023(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUser(), but using this ensures that you are using a matching library. +inline ISteamUser *SteamAPI_SteamUser() { return SteamAPI_SteamUser_v023(); } +S_API HSteamUser SteamAPI_ISteamUser_GetHSteamUser( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BLoggedOn( ISteamUser* self ); +S_API uint64_steamid SteamAPI_ISteamUser_GetSteamID( ISteamUser* self ); +S_API int SteamAPI_ISteamUser_InitiateGameConnection_DEPRECATED( ISteamUser* self, void * pAuthBlob, int cbMaxAuthBlob, uint64_steamid steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure ); +S_API void SteamAPI_ISteamUser_TerminateGameConnection_DEPRECATED( ISteamUser* self, uint32 unIPServer, uint16 usPortServer ); +S_API void SteamAPI_ISteamUser_TrackAppUsageEvent( ISteamUser* self, uint64_gameid gameID, int eAppUsageEvent, const char * pchExtraInfo ); +S_API bool SteamAPI_ISteamUser_GetUserDataFolder( ISteamUser* self, char * pchBuffer, int cubBuffer ); +S_API void SteamAPI_ISteamUser_StartVoiceRecording( ISteamUser* self ); +S_API void SteamAPI_ISteamUser_StopVoiceRecording( ISteamUser* self ); +S_API EVoiceResult SteamAPI_ISteamUser_GetAvailableVoice( ISteamUser* self, uint32 * pcbCompressed, uint32 * pcbUncompressed_Deprecated, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated ); +S_API EVoiceResult SteamAPI_ISteamUser_GetVoice( ISteamUser* self, bool bWantCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, bool bWantUncompressed_Deprecated, void * pUncompressedDestBuffer_Deprecated, uint32 cbUncompressedDestBufferSize_Deprecated, uint32 * nUncompressBytesWritten_Deprecated, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated ); +S_API EVoiceResult SteamAPI_ISteamUser_DecompressVoice( ISteamUser* self, const void * pCompressed, uint32 cbCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, uint32 nDesiredSampleRate ); +S_API uint32 SteamAPI_ISteamUser_GetVoiceOptimalSampleRate( ISteamUser* self ); +S_API HAuthTicket SteamAPI_ISteamUser_GetAuthSessionTicket( ISteamUser* self, void * pTicket, int cbMaxTicket, uint32 * pcbTicket, const SteamNetworkingIdentity * pSteamNetworkingIdentity ); +S_API HAuthTicket SteamAPI_ISteamUser_GetAuthTicketForWebApi( ISteamUser* self, const char * pchIdentity ); +S_API EBeginAuthSessionResult SteamAPI_ISteamUser_BeginAuthSession( ISteamUser* self, const void * pAuthTicket, int cbAuthTicket, uint64_steamid steamID ); +S_API void SteamAPI_ISteamUser_EndAuthSession( ISteamUser* self, uint64_steamid steamID ); +S_API void SteamAPI_ISteamUser_CancelAuthTicket( ISteamUser* self, HAuthTicket hAuthTicket ); +S_API EUserHasLicenseForAppResult SteamAPI_ISteamUser_UserHasLicenseForApp( ISteamUser* self, uint64_steamid steamID, AppId_t appID ); +S_API bool SteamAPI_ISteamUser_BIsBehindNAT( ISteamUser* self ); +S_API void SteamAPI_ISteamUser_AdvertiseGame( ISteamUser* self, uint64_steamid steamIDGameServer, uint32 unIPServer, uint16 usPortServer ); +S_API SteamAPICall_t SteamAPI_ISteamUser_RequestEncryptedAppTicket( ISteamUser* self, void * pDataToInclude, int cbDataToInclude ); +S_API bool SteamAPI_ISteamUser_GetEncryptedAppTicket( ISteamUser* self, void * pTicket, int cbMaxTicket, uint32 * pcbTicket ); +S_API int SteamAPI_ISteamUser_GetGameBadgeLevel( ISteamUser* self, int nSeries, bool bFoil ); +S_API int SteamAPI_ISteamUser_GetPlayerSteamLevel( ISteamUser* self ); +S_API SteamAPICall_t SteamAPI_ISteamUser_RequestStoreAuthURL( ISteamUser* self, const char * pchRedirectURL ); +S_API bool SteamAPI_ISteamUser_BIsPhoneVerified( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BIsTwoFactorEnabled( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BIsPhoneIdentifying( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BIsPhoneRequiringVerification( ISteamUser* self ); +S_API SteamAPICall_t SteamAPI_ISteamUser_GetMarketEligibility( ISteamUser* self ); +S_API SteamAPICall_t SteamAPI_ISteamUser_GetDurationControl( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BSetDurationControlOnlineState( ISteamUser* self, EDurationControlOnlineState eNewState ); -S_API HSteamPipe SteamAPI_ISteamClient_CreateSteamPipe(intptr_t instancePtr); -S_API bool SteamAPI_ISteamClient_BReleaseSteamPipe(intptr_t instancePtr, HSteamPipe hSteamPipe); -S_API HSteamUser SteamAPI_ISteamClient_ConnectToGlobalUser(intptr_t instancePtr, HSteamPipe hSteamPipe); -S_API HSteamUser SteamAPI_ISteamClient_CreateLocalUser(intptr_t instancePtr, HSteamPipe * phSteamPipe, EAccountType eAccountType); -S_API void SteamAPI_ISteamClient_ReleaseUser(intptr_t instancePtr, HSteamPipe hSteamPipe, HSteamUser hUser); -S_API class ISteamUser * SteamAPI_ISteamClient_GetISteamUser(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamGameServer * SteamAPI_ISteamClient_GetISteamGameServer(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API void SteamAPI_ISteamClient_SetLocalIPBinding(intptr_t instancePtr, uint32 unIP, uint16 usPort); -S_API class ISteamFriends * SteamAPI_ISteamClient_GetISteamFriends(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamUtils * SteamAPI_ISteamClient_GetISteamUtils(intptr_t instancePtr, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamMatchmaking * SteamAPI_ISteamClient_GetISteamMatchmaking(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamMatchmakingServers * SteamAPI_ISteamClient_GetISteamMatchmakingServers(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API void * SteamAPI_ISteamClient_GetISteamGenericInterface(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamUserStats * SteamAPI_ISteamClient_GetISteamUserStats(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamGameServerStats * SteamAPI_ISteamClient_GetISteamGameServerStats(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamApps * SteamAPI_ISteamClient_GetISteamApps(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamNetworking * SteamAPI_ISteamClient_GetISteamNetworking(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamRemoteStorage * SteamAPI_ISteamClient_GetISteamRemoteStorage(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamScreenshots * SteamAPI_ISteamClient_GetISteamScreenshots(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API uint32 SteamAPI_ISteamClient_GetIPCCallCount(intptr_t instancePtr); -S_API void SteamAPI_ISteamClient_SetWarningMessageHook(intptr_t instancePtr, SteamAPIWarningMessageHook_t pFunction); -S_API bool SteamAPI_ISteamClient_BShutdownIfAllPipesClosed(intptr_t instancePtr); -S_API class ISteamHTTP * SteamAPI_ISteamClient_GetISteamHTTP(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamUnifiedMessages * SteamAPI_ISteamClient_GetISteamUnifiedMessages(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamController * SteamAPI_ISteamClient_GetISteamController(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamUGC * SteamAPI_ISteamClient_GetISteamUGC(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamAppList * SteamAPI_ISteamClient_GetISteamAppList(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamMusic * SteamAPI_ISteamClient_GetISteamMusic(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamMusicRemote * SteamAPI_ISteamClient_GetISteamMusicRemote(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamHTMLSurface * SteamAPI_ISteamClient_GetISteamHTMLSurface(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamInventory * SteamAPI_ISteamClient_GetISteamInventory(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamVideo * SteamAPI_ISteamClient_GetISteamVideo(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API HSteamUser SteamAPI_ISteamUser_GetHSteamUser(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUser_BLoggedOn(intptr_t instancePtr); -S_API uint64 SteamAPI_ISteamUser_GetSteamID(intptr_t instancePtr); -S_API int SteamAPI_ISteamUser_InitiateGameConnection(intptr_t instancePtr, void * pAuthBlob, int cbMaxAuthBlob, class CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure); -S_API void SteamAPI_ISteamUser_TerminateGameConnection(intptr_t instancePtr, uint32 unIPServer, uint16 usPortServer); -S_API void SteamAPI_ISteamUser_TrackAppUsageEvent(intptr_t instancePtr, class CGameID gameID, int eAppUsageEvent, const char * pchExtraInfo); -S_API bool SteamAPI_ISteamUser_GetUserDataFolder(intptr_t instancePtr, char * pchBuffer, int cubBuffer); -S_API void SteamAPI_ISteamUser_StartVoiceRecording(intptr_t instancePtr); -S_API void SteamAPI_ISteamUser_StopVoiceRecording(intptr_t instancePtr); -S_API EVoiceResult SteamAPI_ISteamUser_GetAvailableVoice(intptr_t instancePtr, uint32 * pcbCompressed, uint32 * pcbUncompressed, uint32 nUncompressedVoiceDesiredSampleRate); -S_API EVoiceResult SteamAPI_ISteamUser_GetVoice(intptr_t instancePtr, bool bWantCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, bool bWantUncompressed, void * pUncompressedDestBuffer, uint32 cbUncompressedDestBufferSize, uint32 * nUncompressBytesWritten, uint32 nUncompressedVoiceDesiredSampleRate); -S_API EVoiceResult SteamAPI_ISteamUser_DecompressVoice(intptr_t instancePtr, const void * pCompressed, uint32 cbCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, uint32 nDesiredSampleRate); -S_API uint32 SteamAPI_ISteamUser_GetVoiceOptimalSampleRate(intptr_t instancePtr); -S_API HAuthTicket SteamAPI_ISteamUser_GetAuthSessionTicket(intptr_t instancePtr, void * pTicket, int cbMaxTicket, uint32 * pcbTicket); -S_API EBeginAuthSessionResult SteamAPI_ISteamUser_BeginAuthSession(intptr_t instancePtr, const void * pAuthTicket, int cbAuthTicket, class CSteamID steamID); -S_API void SteamAPI_ISteamUser_EndAuthSession(intptr_t instancePtr, class CSteamID steamID); -S_API void SteamAPI_ISteamUser_CancelAuthTicket(intptr_t instancePtr, HAuthTicket hAuthTicket); -S_API EUserHasLicenseForAppResult SteamAPI_ISteamUser_UserHasLicenseForApp(intptr_t instancePtr, class CSteamID steamID, AppId_t appID); -S_API bool SteamAPI_ISteamUser_BIsBehindNAT(intptr_t instancePtr); -S_API void SteamAPI_ISteamUser_AdvertiseGame(intptr_t instancePtr, class CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer); -S_API SteamAPICall_t SteamAPI_ISteamUser_RequestEncryptedAppTicket(intptr_t instancePtr, void * pDataToInclude, int cbDataToInclude); -S_API bool SteamAPI_ISteamUser_GetEncryptedAppTicket(intptr_t instancePtr, void * pTicket, int cbMaxTicket, uint32 * pcbTicket); -S_API int SteamAPI_ISteamUser_GetGameBadgeLevel(intptr_t instancePtr, int nSeries, bool bFoil); -S_API int SteamAPI_ISteamUser_GetPlayerSteamLevel(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamUser_RequestStoreAuthURL(intptr_t instancePtr, const char * pchRedirectURL); -S_API bool SteamAPI_ISteamUser_BIsPhoneVerified(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUser_BIsTwoFactorEnabled(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUser_BIsPhoneIdentifying(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUser_BIsPhoneRequiringVerification(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamFriends_GetPersonaName(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamFriends_SetPersonaName(intptr_t instancePtr, const char * pchPersonaName); -S_API EPersonaState SteamAPI_ISteamFriends_GetPersonaState(intptr_t instancePtr); -S_API int SteamAPI_ISteamFriends_GetFriendCount(intptr_t instancePtr, int iFriendFlags); -S_API uint64 SteamAPI_ISteamFriends_GetFriendByIndex(intptr_t instancePtr, int iFriend, int iFriendFlags); -S_API EFriendRelationship SteamAPI_ISteamFriends_GetFriendRelationship(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API EPersonaState SteamAPI_ISteamFriends_GetFriendPersonaState(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaName(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API bool SteamAPI_ISteamFriends_GetFriendGamePlayed(intptr_t instancePtr, class CSteamID steamIDFriend, struct FriendGameInfo_t * pFriendGameInfo); -S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaNameHistory(intptr_t instancePtr, class CSteamID steamIDFriend, int iPersonaName); -S_API int SteamAPI_ISteamFriends_GetFriendSteamLevel(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API const char * SteamAPI_ISteamFriends_GetPlayerNickname(intptr_t instancePtr, class CSteamID steamIDPlayer); -S_API int SteamAPI_ISteamFriends_GetFriendsGroupCount(intptr_t instancePtr); -S_API FriendsGroupID_t SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex(intptr_t instancePtr, int iFG); -S_API const char * SteamAPI_ISteamFriends_GetFriendsGroupName(intptr_t instancePtr, FriendsGroupID_t friendsGroupID); -S_API int SteamAPI_ISteamFriends_GetFriendsGroupMembersCount(intptr_t instancePtr, FriendsGroupID_t friendsGroupID); -S_API void SteamAPI_ISteamFriends_GetFriendsGroupMembersList(intptr_t instancePtr, FriendsGroupID_t friendsGroupID, class CSteamID * pOutSteamIDMembers, int nMembersCount); -S_API bool SteamAPI_ISteamFriends_HasFriend(intptr_t instancePtr, class CSteamID steamIDFriend, int iFriendFlags); -S_API int SteamAPI_ISteamFriends_GetClanCount(intptr_t instancePtr); -S_API uint64 SteamAPI_ISteamFriends_GetClanByIndex(intptr_t instancePtr, int iClan); -S_API const char * SteamAPI_ISteamFriends_GetClanName(intptr_t instancePtr, class CSteamID steamIDClan); -S_API const char * SteamAPI_ISteamFriends_GetClanTag(intptr_t instancePtr, class CSteamID steamIDClan); -S_API bool SteamAPI_ISteamFriends_GetClanActivityCounts(intptr_t instancePtr, class CSteamID steamIDClan, int * pnOnline, int * pnInGame, int * pnChatting); -S_API SteamAPICall_t SteamAPI_ISteamFriends_DownloadClanActivityCounts(intptr_t instancePtr, class CSteamID * psteamIDClans, int cClansToRequest); -S_API int SteamAPI_ISteamFriends_GetFriendCountFromSource(intptr_t instancePtr, class CSteamID steamIDSource); -S_API uint64 SteamAPI_ISteamFriends_GetFriendFromSourceByIndex(intptr_t instancePtr, class CSteamID steamIDSource, int iFriend); -S_API bool SteamAPI_ISteamFriends_IsUserInSource(intptr_t instancePtr, class CSteamID steamIDUser, class CSteamID steamIDSource); -S_API void SteamAPI_ISteamFriends_SetInGameVoiceSpeaking(intptr_t instancePtr, class CSteamID steamIDUser, bool bSpeaking); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlay(intptr_t instancePtr, const char * pchDialog); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToUser(intptr_t instancePtr, const char * pchDialog, class CSteamID steamID); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage(intptr_t instancePtr, const char * pchURL); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToStore(intptr_t instancePtr, AppId_t nAppID, EOverlayToStoreFlag eFlag); -S_API void SteamAPI_ISteamFriends_SetPlayedWith(intptr_t instancePtr, class CSteamID steamIDUserPlayedWith); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API int SteamAPI_ISteamFriends_GetSmallFriendAvatar(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API int SteamAPI_ISteamFriends_GetMediumFriendAvatar(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API int SteamAPI_ISteamFriends_GetLargeFriendAvatar(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API bool SteamAPI_ISteamFriends_RequestUserInformation(intptr_t instancePtr, class CSteamID steamIDUser, bool bRequireNameOnly); -S_API SteamAPICall_t SteamAPI_ISteamFriends_RequestClanOfficerList(intptr_t instancePtr, class CSteamID steamIDClan); -S_API uint64 SteamAPI_ISteamFriends_GetClanOwner(intptr_t instancePtr, class CSteamID steamIDClan); -S_API int SteamAPI_ISteamFriends_GetClanOfficerCount(intptr_t instancePtr, class CSteamID steamIDClan); -S_API uint64 SteamAPI_ISteamFriends_GetClanOfficerByIndex(intptr_t instancePtr, class CSteamID steamIDClan, int iOfficer); -S_API uint32 SteamAPI_ISteamFriends_GetUserRestrictions(intptr_t instancePtr); -S_API bool SteamAPI_ISteamFriends_SetRichPresence(intptr_t instancePtr, const char * pchKey, const char * pchValue); -S_API void SteamAPI_ISteamFriends_ClearRichPresence(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresence(intptr_t instancePtr, class CSteamID steamIDFriend, const char * pchKey); -S_API int SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex(intptr_t instancePtr, class CSteamID steamIDFriend, int iKey); -S_API void SteamAPI_ISteamFriends_RequestFriendRichPresence(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API bool SteamAPI_ISteamFriends_InviteUserToGame(intptr_t instancePtr, class CSteamID steamIDFriend, const char * pchConnectString); -S_API int SteamAPI_ISteamFriends_GetCoplayFriendCount(intptr_t instancePtr); -S_API uint64 SteamAPI_ISteamFriends_GetCoplayFriend(intptr_t instancePtr, int iCoplayFriend); -S_API int SteamAPI_ISteamFriends_GetFriendCoplayTime(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API AppId_t SteamAPI_ISteamFriends_GetFriendCoplayGame(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API SteamAPICall_t SteamAPI_ISteamFriends_JoinClanChatRoom(intptr_t instancePtr, class CSteamID steamIDClan); -S_API bool SteamAPI_ISteamFriends_LeaveClanChatRoom(intptr_t instancePtr, class CSteamID steamIDClan); -S_API int SteamAPI_ISteamFriends_GetClanChatMemberCount(intptr_t instancePtr, class CSteamID steamIDClan); -S_API uint64 SteamAPI_ISteamFriends_GetChatMemberByIndex(intptr_t instancePtr, class CSteamID steamIDClan, int iUser); -S_API bool SteamAPI_ISteamFriends_SendClanChatMessage(intptr_t instancePtr, class CSteamID steamIDClanChat, const char * pchText); -S_API int SteamAPI_ISteamFriends_GetClanChatMessage(intptr_t instancePtr, class CSteamID steamIDClanChat, int iMessage, void * prgchText, int cchTextMax, EChatEntryType * peChatEntryType, class CSteamID * psteamidChatter); -S_API bool SteamAPI_ISteamFriends_IsClanChatAdmin(intptr_t instancePtr, class CSteamID steamIDClanChat, class CSteamID steamIDUser); -S_API bool SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam(intptr_t instancePtr, class CSteamID steamIDClanChat); -S_API bool SteamAPI_ISteamFriends_OpenClanChatWindowInSteam(intptr_t instancePtr, class CSteamID steamIDClanChat); -S_API bool SteamAPI_ISteamFriends_CloseClanChatWindowInSteam(intptr_t instancePtr, class CSteamID steamIDClanChat); -S_API bool SteamAPI_ISteamFriends_SetListenForFriendsMessages(intptr_t instancePtr, bool bInterceptEnabled); -S_API bool SteamAPI_ISteamFriends_ReplyToFriendMessage(intptr_t instancePtr, class CSteamID steamIDFriend, const char * pchMsgToSend); -S_API int SteamAPI_ISteamFriends_GetFriendMessage(intptr_t instancePtr, class CSteamID steamIDFriend, int iMessageID, void * pvData, int cubData, EChatEntryType * peChatEntryType); -S_API SteamAPICall_t SteamAPI_ISteamFriends_GetFollowerCount(intptr_t instancePtr, class CSteamID steamID); -S_API SteamAPICall_t SteamAPI_ISteamFriends_IsFollowing(intptr_t instancePtr, class CSteamID steamID); -S_API SteamAPICall_t SteamAPI_ISteamFriends_EnumerateFollowingList(intptr_t instancePtr, uint32 unStartIndex); -S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceAppActive(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceComputerActive(intptr_t instancePtr); -S_API EUniverse SteamAPI_ISteamUtils_GetConnectedUniverse(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamUtils_GetServerRealTime(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamUtils_GetIPCountry(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUtils_GetImageSize(intptr_t instancePtr, int iImage, uint32 * pnWidth, uint32 * pnHeight); -S_API bool SteamAPI_ISteamUtils_GetImageRGBA(intptr_t instancePtr, int iImage, uint8 * pubDest, int nDestBufferSize); -S_API bool SteamAPI_ISteamUtils_GetCSERIPPort(intptr_t instancePtr, uint32 * unIP, uint16 * usPort); -S_API uint8 SteamAPI_ISteamUtils_GetCurrentBatteryPower(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamUtils_GetAppID(intptr_t instancePtr); -S_API void SteamAPI_ISteamUtils_SetOverlayNotificationPosition(intptr_t instancePtr, ENotificationPosition eNotificationPosition); -S_API bool SteamAPI_ISteamUtils_IsAPICallCompleted(intptr_t instancePtr, SteamAPICall_t hSteamAPICall, bool * pbFailed); -S_API ESteamAPICallFailure SteamAPI_ISteamUtils_GetAPICallFailureReason(intptr_t instancePtr, SteamAPICall_t hSteamAPICall); -S_API bool SteamAPI_ISteamUtils_GetAPICallResult(intptr_t instancePtr, SteamAPICall_t hSteamAPICall, void * pCallback, int cubCallback, int iCallbackExpected, bool * pbFailed); -S_API uint32 SteamAPI_ISteamUtils_GetIPCCallCount(intptr_t instancePtr); -S_API void SteamAPI_ISteamUtils_SetWarningMessageHook(intptr_t instancePtr, SteamAPIWarningMessageHook_t pFunction); -S_API bool SteamAPI_ISteamUtils_IsOverlayEnabled(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUtils_BOverlayNeedsPresent(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamUtils_CheckFileSignature(intptr_t instancePtr, const char * szFileName); -S_API bool SteamAPI_ISteamUtils_ShowGamepadTextInput(intptr_t instancePtr, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32 unCharMax, const char * pchExistingText); -S_API uint32 SteamAPI_ISteamUtils_GetEnteredGamepadTextLength(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUtils_GetEnteredGamepadTextInput(intptr_t instancePtr, char * pchText, uint32 cchText); -S_API const char * SteamAPI_ISteamUtils_GetSteamUILanguage(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUtils_IsSteamRunningInVR(intptr_t instancePtr); -S_API void SteamAPI_ISteamUtils_SetOverlayNotificationInset(intptr_t instancePtr, int nHorizontalInset, int nVerticalInset); -S_API bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode(intptr_t instancePtr); -S_API void SteamAPI_ISteamUtils_StartVRDashboard(intptr_t instancePtr); -S_API int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMatchmaking_GetFavoriteGame(intptr_t instancePtr, int iGame, AppId_t * pnAppID, uint32 * pnIP, uint16 * pnConnPort, uint16 * pnQueryPort, uint32 * punFlags, uint32 * pRTime32LastPlayedOnServer); -S_API int SteamAPI_ISteamMatchmaking_AddFavoriteGame(intptr_t instancePtr, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer); -S_API bool SteamAPI_ISteamMatchmaking_RemoveFavoriteGame(intptr_t instancePtr, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags); -S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_RequestLobbyList(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter(intptr_t instancePtr, const char * pchKeyToMatch, const char * pchValueToMatch, ELobbyComparison eComparisonType); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter(intptr_t instancePtr, const char * pchKeyToMatch, int nValueToMatch, ELobbyComparison eComparisonType); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter(intptr_t instancePtr, const char * pchKeyToMatch, int nValueToBeCloseTo); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(intptr_t instancePtr, int nSlotsAvailable); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter(intptr_t instancePtr, ELobbyDistanceFilter eLobbyDistanceFilter); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter(intptr_t instancePtr, int cMaxResults); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API uint64 SteamAPI_ISteamMatchmaking_GetLobbyByIndex(intptr_t instancePtr, int iLobby); -S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_CreateLobby(intptr_t instancePtr, ELobbyType eLobbyType, int cMaxMembers); -S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_JoinLobby(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API void SteamAPI_ISteamMatchmaking_LeaveLobby(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API bool SteamAPI_ISteamMatchmaking_InviteUserToLobby(intptr_t instancePtr, class CSteamID steamIDLobby, class CSteamID steamIDInvitee); -S_API int SteamAPI_ISteamMatchmaking_GetNumLobbyMembers(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API uint64 SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex(intptr_t instancePtr, class CSteamID steamIDLobby, int iMember); -S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyData(intptr_t instancePtr, class CSteamID steamIDLobby, const char * pchKey); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyData(intptr_t instancePtr, class CSteamID steamIDLobby, const char * pchKey, const char * pchValue); -S_API int SteamAPI_ISteamMatchmaking_GetLobbyDataCount(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API bool SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex(intptr_t instancePtr, class CSteamID steamIDLobby, int iLobbyData, char * pchKey, int cchKeyBufferSize, char * pchValue, int cchValueBufferSize); -S_API bool SteamAPI_ISteamMatchmaking_DeleteLobbyData(intptr_t instancePtr, class CSteamID steamIDLobby, const char * pchKey); -S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyMemberData(intptr_t instancePtr, class CSteamID steamIDLobby, class CSteamID steamIDUser, const char * pchKey); -S_API void SteamAPI_ISteamMatchmaking_SetLobbyMemberData(intptr_t instancePtr, class CSteamID steamIDLobby, const char * pchKey, const char * pchValue); -S_API bool SteamAPI_ISteamMatchmaking_SendLobbyChatMsg(intptr_t instancePtr, class CSteamID steamIDLobby, const void * pvMsgBody, int cubMsgBody); -S_API int SteamAPI_ISteamMatchmaking_GetLobbyChatEntry(intptr_t instancePtr, class CSteamID steamIDLobby, int iChatID, class CSteamID * pSteamIDUser, void * pvData, int cubData, EChatEntryType * peChatEntryType); -S_API bool SteamAPI_ISteamMatchmaking_RequestLobbyData(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API void SteamAPI_ISteamMatchmaking_SetLobbyGameServer(intptr_t instancePtr, class CSteamID steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, class CSteamID steamIDGameServer); -S_API bool SteamAPI_ISteamMatchmaking_GetLobbyGameServer(intptr_t instancePtr, class CSteamID steamIDLobby, uint32 * punGameServerIP, uint16 * punGameServerPort, class CSteamID * psteamIDGameServer); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit(intptr_t instancePtr, class CSteamID steamIDLobby, int cMaxMembers); -S_API int SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyType(intptr_t instancePtr, class CSteamID steamIDLobby, ELobbyType eLobbyType); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyJoinable(intptr_t instancePtr, class CSteamID steamIDLobby, bool bLobbyJoinable); -S_API uint64 SteamAPI_ISteamMatchmaking_GetLobbyOwner(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyOwner(intptr_t instancePtr, class CSteamID steamIDLobby, class CSteamID steamIDNewOwner); -S_API bool SteamAPI_ISteamMatchmaking_SetLinkedLobby(intptr_t instancePtr, class CSteamID steamIDLobby, class CSteamID steamIDLobbyDependent); -S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded(intptr_t instancePtr, HServerListRequest hRequest, int iServer); -S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond(intptr_t instancePtr, HServerListRequest hRequest, int iServer); -S_API void SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete(intptr_t instancePtr, HServerListRequest hRequest, EMatchMakingServerResponse response); -S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerResponded(intptr_t instancePtr, class gameserveritem_t & server); -S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList(intptr_t instancePtr, const char * pchName, int nScore, float flTimePlayed); -S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded(intptr_t instancePtr, const char * pchRule, const char * pchValue); -S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete(intptr_t instancePtr); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestInternetServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestLANServerList(intptr_t instancePtr, AppId_t iApp, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API void SteamAPI_ISteamMatchmakingServers_ReleaseRequest(intptr_t instancePtr, HServerListRequest hServerListRequest); -S_API class gameserveritem_t * SteamAPI_ISteamMatchmakingServers_GetServerDetails(intptr_t instancePtr, HServerListRequest hRequest, int iServer); -S_API void SteamAPI_ISteamMatchmakingServers_CancelQuery(intptr_t instancePtr, HServerListRequest hRequest); -S_API void SteamAPI_ISteamMatchmakingServers_RefreshQuery(intptr_t instancePtr, HServerListRequest hRequest); -S_API bool SteamAPI_ISteamMatchmakingServers_IsRefreshing(intptr_t instancePtr, HServerListRequest hRequest); -S_API int SteamAPI_ISteamMatchmakingServers_GetServerCount(intptr_t instancePtr, HServerListRequest hRequest); -S_API void SteamAPI_ISteamMatchmakingServers_RefreshServer(intptr_t instancePtr, HServerListRequest hRequest, int iServer); -S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PingServer(intptr_t instancePtr, uint32 unIP, uint16 usPort, class ISteamMatchmakingPingResponse * pRequestServersResponse); -S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PlayerDetails(intptr_t instancePtr, uint32 unIP, uint16 usPort, class ISteamMatchmakingPlayersResponse * pRequestServersResponse); -S_API HServerQuery SteamAPI_ISteamMatchmakingServers_ServerRules(intptr_t instancePtr, uint32 unIP, uint16 usPort, class ISteamMatchmakingRulesResponse * pRequestServersResponse); -S_API void SteamAPI_ISteamMatchmakingServers_CancelServerQuery(intptr_t instancePtr, HServerQuery hServerQuery); -S_API bool SteamAPI_ISteamRemoteStorage_FileWrite(intptr_t instancePtr, const char * pchFile, const void * pvData, int32 cubData); -S_API int32 SteamAPI_ISteamRemoteStorage_FileRead(intptr_t instancePtr, const char * pchFile, void * pvData, int32 cubDataToRead); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileWriteAsync(intptr_t instancePtr, const char * pchFile, const void * pvData, uint32 cubData); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileReadAsync(intptr_t instancePtr, const char * pchFile, uint32 nOffset, uint32 cubToRead); -S_API bool SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete(intptr_t instancePtr, SteamAPICall_t hReadCall, void * pvBuffer, uint32 cubToRead); -S_API bool SteamAPI_ISteamRemoteStorage_FileForget(intptr_t instancePtr, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_FileDelete(intptr_t instancePtr, const char * pchFile); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileShare(intptr_t instancePtr, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_SetSyncPlatforms(intptr_t instancePtr, const char * pchFile, ERemoteStoragePlatform eRemoteStoragePlatform); -S_API UGCFileWriteStreamHandle_t SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen(intptr_t instancePtr, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk(intptr_t instancePtr, UGCFileWriteStreamHandle_t writeHandle, const void * pvData, int32 cubData); -S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamClose(intptr_t instancePtr, UGCFileWriteStreamHandle_t writeHandle); -S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel(intptr_t instancePtr, UGCFileWriteStreamHandle_t writeHandle); -S_API bool SteamAPI_ISteamRemoteStorage_FileExists(intptr_t instancePtr, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_FilePersisted(intptr_t instancePtr, const char * pchFile); -S_API int32 SteamAPI_ISteamRemoteStorage_GetFileSize(intptr_t instancePtr, const char * pchFile); -S_API int64 SteamAPI_ISteamRemoteStorage_GetFileTimestamp(intptr_t instancePtr, const char * pchFile); -S_API ERemoteStoragePlatform SteamAPI_ISteamRemoteStorage_GetSyncPlatforms(intptr_t instancePtr, const char * pchFile); -S_API int32 SteamAPI_ISteamRemoteStorage_GetFileCount(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamRemoteStorage_GetFileNameAndSize(intptr_t instancePtr, int iFile, int32 * pnFileSizeInBytes); -S_API bool SteamAPI_ISteamRemoteStorage_GetQuota(intptr_t instancePtr, uint64 * pnTotalBytes, uint64 * puAvailableBytes); -S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount(intptr_t instancePtr); -S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp(intptr_t instancePtr); -S_API void SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp(intptr_t instancePtr, bool bEnabled); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownload(intptr_t instancePtr, UGCHandle_t hContent, uint32 unPriority); -S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress(intptr_t instancePtr, UGCHandle_t hContent, int32 * pnBytesDownloaded, int32 * pnBytesExpected); -S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDetails(intptr_t instancePtr, UGCHandle_t hContent, AppId_t * pnAppID, char ** ppchName, int32 * pnFileSizeInBytes, class CSteamID * pSteamIDOwner); -S_API int32 SteamAPI_ISteamRemoteStorage_UGCRead(intptr_t instancePtr, UGCHandle_t hContent, void * pvData, int32 cubDataToRead, uint32 cOffset, EUGCReadAction eAction); -S_API int32 SteamAPI_ISteamRemoteStorage_GetCachedUGCCount(intptr_t instancePtr); -S_API UGCHandle_t SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle(intptr_t instancePtr, int32 iCachedContent); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishWorkshopFile(intptr_t instancePtr, const char * pchFile, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, struct SteamParamStringArray_t * pTags, EWorkshopFileType eWorkshopFileType); -S_API PublishedFileUpdateHandle_t SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchPreviewFile); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchTitle); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchDescription); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, struct SteamParamStringArray_t * pTags); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails(intptr_t instancePtr, PublishedFileId_t unPublishedFileId, uint32 unMaxSecondsOld); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_DeletePublishedFile(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles(intptr_t instancePtr, uint32 unStartIndex); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SubscribePublishedFile(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles(intptr_t instancePtr, uint32 unStartIndex); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchChangeDescription); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote(intptr_t instancePtr, PublishedFileId_t unPublishedFileId, bool bVoteUp); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(intptr_t instancePtr, class CSteamID steamId, uint32 unStartIndex, struct SteamParamStringArray_t * pRequiredTags, struct SteamParamStringArray_t * pExcludedTags); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishVideo(intptr_t instancePtr, EWorkshopVideoProvider eVideoProvider, const char * pchVideoAccount, const char * pchVideoIdentifier, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, struct SteamParamStringArray_t * pTags); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction(intptr_t instancePtr, PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(intptr_t instancePtr, EWorkshopFileAction eAction, uint32 unStartIndex); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(intptr_t instancePtr, EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, struct SteamParamStringArray_t * pTags, struct SteamParamStringArray_t * pUserTags); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation(intptr_t instancePtr, UGCHandle_t hContent, const char * pchLocation, uint32 unPriority); -S_API bool SteamAPI_ISteamUserStats_RequestCurrentStats(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUserStats_GetStat(intptr_t instancePtr, const char * pchName, int32 * pData); -S_API bool SteamAPI_ISteamUserStats_GetStat0(intptr_t instancePtr, const char * pchName, float * pData); -S_API bool SteamAPI_ISteamUserStats_SetStat(intptr_t instancePtr, const char * pchName, int32 nData); -S_API bool SteamAPI_ISteamUserStats_SetStat0(intptr_t instancePtr, const char * pchName, float fData); -S_API bool SteamAPI_ISteamUserStats_UpdateAvgRateStat(intptr_t instancePtr, const char * pchName, float flCountThisSession, double dSessionLength); -S_API bool SteamAPI_ISteamUserStats_GetAchievement(intptr_t instancePtr, const char * pchName, bool * pbAchieved); -S_API bool SteamAPI_ISteamUserStats_SetAchievement(intptr_t instancePtr, const char * pchName); -S_API bool SteamAPI_ISteamUserStats_ClearAchievement(intptr_t instancePtr, const char * pchName); -S_API bool SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime(intptr_t instancePtr, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime); -S_API bool SteamAPI_ISteamUserStats_StoreStats(intptr_t instancePtr); -S_API int SteamAPI_ISteamUserStats_GetAchievementIcon(intptr_t instancePtr, const char * pchName); -S_API const char * SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute(intptr_t instancePtr, const char * pchName, const char * pchKey); -S_API bool SteamAPI_ISteamUserStats_IndicateAchievementProgress(intptr_t instancePtr, const char * pchName, uint32 nCurProgress, uint32 nMaxProgress); -S_API uint32 SteamAPI_ISteamUserStats_GetNumAchievements(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamUserStats_GetAchievementName(intptr_t instancePtr, uint32 iAchievement); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestUserStats(intptr_t instancePtr, class CSteamID steamIDUser); -S_API bool SteamAPI_ISteamUserStats_GetUserStat(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, int32 * pData); -S_API bool SteamAPI_ISteamUserStats_GetUserStat0(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, float * pData); -S_API bool SteamAPI_ISteamUserStats_GetUserAchievement(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, bool * pbAchieved); -S_API bool SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime); -S_API bool SteamAPI_ISteamUserStats_ResetAllStats(intptr_t instancePtr, bool bAchievementsToo); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindOrCreateLeaderboard(intptr_t instancePtr, const char * pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindLeaderboard(intptr_t instancePtr, const char * pchLeaderboardName); -S_API const char * SteamAPI_ISteamUserStats_GetLeaderboardName(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard); -S_API int SteamAPI_ISteamUserStats_GetLeaderboardEntryCount(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard); -S_API ELeaderboardSortMethod SteamAPI_ISteamUserStats_GetLeaderboardSortMethod(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard); -S_API ELeaderboardDisplayType SteamAPI_ISteamUserStats_GetLeaderboardDisplayType(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntries(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard, class CSteamID * prgUsers, int cUsers); -S_API bool SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry(intptr_t instancePtr, SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, struct LeaderboardEntry_t * pLeaderboardEntry, int32 * pDetails, int cDetailsMax); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_UploadLeaderboardScore(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32 * pScoreDetails, int cScoreDetailsCount); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_AttachLeaderboardUGC(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages(intptr_t instancePtr); -S_API int SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo(intptr_t instancePtr, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved); -S_API int SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo(intptr_t instancePtr, int iIteratorPrevious, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved); -S_API bool SteamAPI_ISteamUserStats_GetAchievementAchievedPercent(intptr_t instancePtr, const char * pchName, float * pflPercent); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalStats(intptr_t instancePtr, int nHistoryDays); -S_API bool SteamAPI_ISteamUserStats_GetGlobalStat(intptr_t instancePtr, const char * pchStatName, int64 * pData); -S_API bool SteamAPI_ISteamUserStats_GetGlobalStat0(intptr_t instancePtr, const char * pchStatName, double * pData); -S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistory(intptr_t instancePtr, const char * pchStatName, int64 * pData, uint32 cubData); -S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistory0(intptr_t instancePtr, const char * pchStatName, double * pData, uint32 cubData); -S_API bool SteamAPI_ISteamApps_BIsSubscribed(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BIsLowViolence(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BIsCybercafe(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BIsVACBanned(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamApps_GetCurrentGameLanguage(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamApps_GetAvailableGameLanguages(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BIsSubscribedApp(intptr_t instancePtr, AppId_t appID); -S_API bool SteamAPI_ISteamApps_BIsDlcInstalled(intptr_t instancePtr, AppId_t appID); -S_API uint32 SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime(intptr_t instancePtr, AppId_t nAppID); -S_API bool SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend(intptr_t instancePtr); -S_API int SteamAPI_ISteamApps_GetDLCCount(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BGetDLCDataByIndex(intptr_t instancePtr, int iDLC, AppId_t * pAppID, bool * pbAvailable, char * pchName, int cchNameBufferSize); -S_API void SteamAPI_ISteamApps_InstallDLC(intptr_t instancePtr, AppId_t nAppID); -S_API void SteamAPI_ISteamApps_UninstallDLC(intptr_t instancePtr, AppId_t nAppID); -S_API void SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey(intptr_t instancePtr, AppId_t nAppID); -S_API bool SteamAPI_ISteamApps_GetCurrentBetaName(intptr_t instancePtr, char * pchName, int cchNameBufferSize); -S_API bool SteamAPI_ISteamApps_MarkContentCorrupt(intptr_t instancePtr, bool bMissingFilesOnly); -S_API uint32 SteamAPI_ISteamApps_GetInstalledDepots(intptr_t instancePtr, AppId_t appID, DepotId_t * pvecDepots, uint32 cMaxDepots); -S_API uint32 SteamAPI_ISteamApps_GetAppInstallDir(intptr_t instancePtr, AppId_t appID, char * pchFolder, uint32 cchFolderBufferSize); -S_API bool SteamAPI_ISteamApps_BIsAppInstalled(intptr_t instancePtr, AppId_t appID); -S_API uint64 SteamAPI_ISteamApps_GetAppOwner(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamApps_GetLaunchQueryParam(intptr_t instancePtr, const char * pchKey); -S_API bool SteamAPI_ISteamApps_GetDlcDownloadProgress(intptr_t instancePtr, AppId_t nAppID, uint64 * punBytesDownloaded, uint64 * punBytesTotal); -S_API int SteamAPI_ISteamApps_GetAppBuildId(intptr_t instancePtr); -S_API void SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamApps_GetFileDetails(intptr_t instancePtr, const char * pszFileName); -S_API bool SteamAPI_ISteamNetworking_SendP2PPacket(intptr_t instancePtr, class CSteamID steamIDRemote, const void * pubData, uint32 cubData, EP2PSend eP2PSendType, int nChannel); -S_API bool SteamAPI_ISteamNetworking_IsP2PPacketAvailable(intptr_t instancePtr, uint32 * pcubMsgSize, int nChannel); -S_API bool SteamAPI_ISteamNetworking_ReadP2PPacket(intptr_t instancePtr, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, class CSteamID * psteamIDRemote, int nChannel); -S_API bool SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser(intptr_t instancePtr, class CSteamID steamIDRemote); -S_API bool SteamAPI_ISteamNetworking_CloseP2PSessionWithUser(intptr_t instancePtr, class CSteamID steamIDRemote); -S_API bool SteamAPI_ISteamNetworking_CloseP2PChannelWithUser(intptr_t instancePtr, class CSteamID steamIDRemote, int nChannel); -S_API bool SteamAPI_ISteamNetworking_GetP2PSessionState(intptr_t instancePtr, class CSteamID steamIDRemote, struct P2PSessionState_t * pConnectionState); -S_API bool SteamAPI_ISteamNetworking_AllowP2PPacketRelay(intptr_t instancePtr, bool bAllow); -S_API SNetListenSocket_t SteamAPI_ISteamNetworking_CreateListenSocket(intptr_t instancePtr, int nVirtualP2PPort, uint32 nIP, uint16 nPort, bool bAllowUseOfPacketRelay); -S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateP2PConnectionSocket(intptr_t instancePtr, class CSteamID steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay); -S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateConnectionSocket(intptr_t instancePtr, uint32 nIP, uint16 nPort, int nTimeoutSec); -S_API bool SteamAPI_ISteamNetworking_DestroySocket(intptr_t instancePtr, SNetSocket_t hSocket, bool bNotifyRemoteEnd); -S_API bool SteamAPI_ISteamNetworking_DestroyListenSocket(intptr_t instancePtr, SNetListenSocket_t hSocket, bool bNotifyRemoteEnd); -S_API bool SteamAPI_ISteamNetworking_SendDataOnSocket(intptr_t instancePtr, SNetSocket_t hSocket, void * pubData, uint32 cubData, bool bReliable); -S_API bool SteamAPI_ISteamNetworking_IsDataAvailableOnSocket(intptr_t instancePtr, SNetSocket_t hSocket, uint32 * pcubMsgSize); -S_API bool SteamAPI_ISteamNetworking_RetrieveDataFromSocket(intptr_t instancePtr, SNetSocket_t hSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize); -S_API bool SteamAPI_ISteamNetworking_IsDataAvailable(intptr_t instancePtr, SNetListenSocket_t hListenSocket, uint32 * pcubMsgSize, SNetSocket_t * phSocket); -S_API bool SteamAPI_ISteamNetworking_RetrieveData(intptr_t instancePtr, SNetListenSocket_t hListenSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, SNetSocket_t * phSocket); -S_API bool SteamAPI_ISteamNetworking_GetSocketInfo(intptr_t instancePtr, SNetSocket_t hSocket, class CSteamID * pSteamIDRemote, int * peSocketStatus, uint32 * punIPRemote, uint16 * punPortRemote); -S_API bool SteamAPI_ISteamNetworking_GetListenSocketInfo(intptr_t instancePtr, SNetListenSocket_t hListenSocket, uint32 * pnIP, uint16 * pnPort); -S_API ESNetSocketConnectionType SteamAPI_ISteamNetworking_GetSocketConnectionType(intptr_t instancePtr, SNetSocket_t hSocket); -S_API int SteamAPI_ISteamNetworking_GetMaxPacketSize(intptr_t instancePtr, SNetSocket_t hSocket); -S_API ScreenshotHandle SteamAPI_ISteamScreenshots_WriteScreenshot(intptr_t instancePtr, void * pubRGB, uint32 cubRGB, int nWidth, int nHeight); -S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddScreenshotToLibrary(intptr_t instancePtr, const char * pchFilename, const char * pchThumbnailFilename, int nWidth, int nHeight); -S_API void SteamAPI_ISteamScreenshots_TriggerScreenshot(intptr_t instancePtr); -S_API void SteamAPI_ISteamScreenshots_HookScreenshots(intptr_t instancePtr, bool bHook); -S_API bool SteamAPI_ISteamScreenshots_SetLocation(intptr_t instancePtr, ScreenshotHandle hScreenshot, const char * pchLocation); -S_API bool SteamAPI_ISteamScreenshots_TagUser(intptr_t instancePtr, ScreenshotHandle hScreenshot, class CSteamID steamID); -S_API bool SteamAPI_ISteamScreenshots_TagPublishedFile(intptr_t instancePtr, ScreenshotHandle hScreenshot, PublishedFileId_t unPublishedFileID); -S_API bool SteamAPI_ISteamScreenshots_IsScreenshotsHooked(intptr_t instancePtr); -S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary(intptr_t instancePtr, EVRScreenshotType eType, const char * pchFilename, const char * pchVRFilename); -S_API bool SteamAPI_ISteamMusic_BIsEnabled(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusic_BIsPlaying(intptr_t instancePtr); -S_API AudioPlayback_Status SteamAPI_ISteamMusic_GetPlaybackStatus(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_Play(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_Pause(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_PlayPrevious(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_PlayNext(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_SetVolume(intptr_t instancePtr, float flVolume); -S_API float SteamAPI_ISteamMusic_GetVolume(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote(intptr_t instancePtr, const char * pchName); -S_API bool SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_BActivationSuccess(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_SetDisplayName(intptr_t instancePtr, const char * pchDisplayName); -S_API bool SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64(intptr_t instancePtr, void * pvBuffer, uint32 cbBufferLength); -S_API bool SteamAPI_ISteamMusicRemote_EnablePlayPrevious(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnablePlayNext(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnableShuffled(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnableLooped(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnableQueue(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnablePlaylists(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus(intptr_t instancePtr, AudioPlayback_Status nStatus); -S_API bool SteamAPI_ISteamMusicRemote_UpdateShuffled(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_UpdateLooped(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_UpdateVolume(intptr_t instancePtr, float flValue); -S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryWillChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable(intptr_t instancePtr, bool bAvailable); -S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText(intptr_t instancePtr, const char * pchText); -S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds(intptr_t instancePtr, int nValue); -S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt(intptr_t instancePtr, void * pvBuffer, uint32 cbBufferLength); -S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryDidChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_QueueWillChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_ResetQueueEntries(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_SetQueueEntry(intptr_t instancePtr, int nID, int nPosition, const char * pchEntryText); -S_API bool SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry(intptr_t instancePtr, int nID); -S_API bool SteamAPI_ISteamMusicRemote_QueueDidChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_PlaylistWillChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_ResetPlaylistEntries(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_SetPlaylistEntry(intptr_t instancePtr, int nID, int nPosition, const char * pchEntryText); -S_API bool SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry(intptr_t instancePtr, int nID); -S_API bool SteamAPI_ISteamMusicRemote_PlaylistDidChange(intptr_t instancePtr); -S_API HTTPRequestHandle SteamAPI_ISteamHTTP_CreateHTTPRequest(intptr_t instancePtr, EHTTPMethod eHTTPRequestMethod, const char * pchAbsoluteURL); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestContextValue(intptr_t instancePtr, HTTPRequestHandle hRequest, uint64 ulContextValue); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(intptr_t instancePtr, HTTPRequestHandle hRequest, uint32 unTimeoutSeconds); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchHeaderName, const char * pchHeaderValue); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchParamName, const char * pchParamValue); -S_API bool SteamAPI_ISteamHTTP_SendHTTPRequest(intptr_t instancePtr, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle); -S_API bool SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse(intptr_t instancePtr, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle); -S_API bool SteamAPI_ISteamHTTP_DeferHTTPRequest(intptr_t instancePtr, HTTPRequestHandle hRequest); -S_API bool SteamAPI_ISteamHTTP_PrioritizeHTTPRequest(intptr_t instancePtr, HTTPRequestHandle hRequest); -S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchHeaderName, uint32 * unResponseHeaderSize); -S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchHeaderName, uint8 * pHeaderValueBuffer, uint32 unBufferSize); -S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodySize(intptr_t instancePtr, HTTPRequestHandle hRequest, uint32 * unBodySize); -S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodyData(intptr_t instancePtr, HTTPRequestHandle hRequest, uint8 * pBodyDataBuffer, uint32 unBufferSize); -S_API bool SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData(intptr_t instancePtr, HTTPRequestHandle hRequest, uint32 cOffset, uint8 * pBodyDataBuffer, uint32 unBufferSize); -S_API bool SteamAPI_ISteamHTTP_ReleaseHTTPRequest(intptr_t instancePtr, HTTPRequestHandle hRequest); -S_API bool SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct(intptr_t instancePtr, HTTPRequestHandle hRequest, float * pflPercentOut); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchContentType, uint8 * pubBody, uint32 unBodyLen); -S_API HTTPCookieContainerHandle SteamAPI_ISteamHTTP_CreateCookieContainer(intptr_t instancePtr, bool bAllowResponsesToModify); -S_API bool SteamAPI_ISteamHTTP_ReleaseCookieContainer(intptr_t instancePtr, HTTPCookieContainerHandle hCookieContainer); -S_API bool SteamAPI_ISteamHTTP_SetCookie(intptr_t instancePtr, HTTPCookieContainerHandle hCookieContainer, const char * pchHost, const char * pchUrl, const char * pchCookie); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer(intptr_t instancePtr, HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchUserAgentInfo); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(intptr_t instancePtr, HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(intptr_t instancePtr, HTTPRequestHandle hRequest, uint32 unMilliseconds); -S_API bool SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut(intptr_t instancePtr, HTTPRequestHandle hRequest, bool * pbWasTimedOut); -S_API ClientUnifiedMessageHandle SteamAPI_ISteamUnifiedMessages_SendMethod(intptr_t instancePtr, const char * pchServiceMethod, const void * pRequestBuffer, uint32 unRequestBufferSize, uint64 unContext); -S_API bool SteamAPI_ISteamUnifiedMessages_GetMethodResponseInfo(intptr_t instancePtr, ClientUnifiedMessageHandle hHandle, uint32 * punResponseSize, EResult * peResult); -S_API bool SteamAPI_ISteamUnifiedMessages_GetMethodResponseData(intptr_t instancePtr, ClientUnifiedMessageHandle hHandle, void * pResponseBuffer, uint32 unResponseBufferSize, bool bAutoRelease); -S_API bool SteamAPI_ISteamUnifiedMessages_ReleaseMethod(intptr_t instancePtr, ClientUnifiedMessageHandle hHandle); -S_API bool SteamAPI_ISteamUnifiedMessages_SendNotification(intptr_t instancePtr, const char * pchServiceNotification, const void * pNotificationBuffer, uint32 unNotificationBufferSize); -S_API bool SteamAPI_ISteamController_Init(intptr_t instancePtr); -S_API bool SteamAPI_ISteamController_Shutdown(intptr_t instancePtr); -S_API void SteamAPI_ISteamController_RunFrame(intptr_t instancePtr); -S_API int SteamAPI_ISteamController_GetConnectedControllers(intptr_t instancePtr, ControllerHandle_t * handlesOut); -S_API bool SteamAPI_ISteamController_ShowBindingPanel(intptr_t instancePtr, ControllerHandle_t controllerHandle); -S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetActionSetHandle(intptr_t instancePtr, const char * pszActionSetName); -S_API void SteamAPI_ISteamController_ActivateActionSet(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle); -S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetCurrentActionSet(intptr_t instancePtr, ControllerHandle_t controllerHandle); -S_API ControllerDigitalActionHandle_t SteamAPI_ISteamController_GetDigitalActionHandle(intptr_t instancePtr, const char * pszActionName); -S_API struct ControllerDigitalActionData_t SteamAPI_ISteamController_GetDigitalActionData(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle); -S_API int SteamAPI_ISteamController_GetDigitalActionOrigins(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin * originsOut); -S_API ControllerAnalogActionHandle_t SteamAPI_ISteamController_GetAnalogActionHandle(intptr_t instancePtr, const char * pszActionName); -S_API struct ControllerAnalogActionData_t SteamAPI_ISteamController_GetAnalogActionData(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle); -S_API int SteamAPI_ISteamController_GetAnalogActionOrigins(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin * originsOut); -S_API void SteamAPI_ISteamController_StopAnalogActionMomentum(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction); -S_API void SteamAPI_ISteamController_TriggerHapticPulse(intptr_t instancePtr, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec); -S_API void SteamAPI_ISteamController_TriggerRepeatedHapticPulse(intptr_t instancePtr, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags); -S_API int SteamAPI_ISteamController_GetGamepadIndexForController(intptr_t instancePtr, ControllerHandle_t ulControllerHandle); -S_API ControllerHandle_t SteamAPI_ISteamController_GetControllerForGamepadIndex(intptr_t instancePtr, int nIndex); -S_API struct ControllerMotionData_t SteamAPI_ISteamController_GetMotionData(intptr_t instancePtr, ControllerHandle_t controllerHandle); -S_API bool SteamAPI_ISteamController_ShowDigitalActionOrigins(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition); -S_API bool SteamAPI_ISteamController_ShowAnalogActionOrigins(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle, float flScale, float flXPosition, float flYPosition); -S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(intptr_t instancePtr, AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage); -S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequest(intptr_t instancePtr, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage); -S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs); -S_API SteamAPICall_t SteamAPI_ISteamUGC_SendQueryUGCRequest(intptr_t instancePtr, UGCQueryHandle_t handle); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCResult(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, struct SteamUGCDetails_t * pDetails); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCPreviewURL(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, char * pchURL, uint32 cchURLSize); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCMetadata(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, char * pchMetadata, uint32 cchMetadatasize); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCChildren(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCStatistic(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 * pStatValue); -S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, char * pchURLOrVideoID, uint32 cchURLSize, char * pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType * pPreviewType); -S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, char * pchKey, uint32 cchKeySize, char * pchValue, uint32 cchValueSize); -S_API bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(intptr_t instancePtr, UGCQueryHandle_t handle); -S_API bool SteamAPI_ISteamUGC_AddRequiredTag(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pTagName); -S_API bool SteamAPI_ISteamUGC_AddExcludedTag(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pTagName); -S_API bool SteamAPI_ISteamUGC_SetReturnOnlyIDs(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnOnlyIDs); -S_API bool SteamAPI_ISteamUGC_SetReturnKeyValueTags(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnKeyValueTags); -S_API bool SteamAPI_ISteamUGC_SetReturnLongDescription(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnLongDescription); -S_API bool SteamAPI_ISteamUGC_SetReturnMetadata(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnMetadata); -S_API bool SteamAPI_ISteamUGC_SetReturnChildren(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnChildren); -S_API bool SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnAdditionalPreviews); -S_API bool SteamAPI_ISteamUGC_SetReturnTotalOnly(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnTotalOnly); -S_API bool SteamAPI_ISteamUGC_SetLanguage(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pchLanguage); -S_API bool SteamAPI_ISteamUGC_SetAllowCachedResponse(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 unMaxAgeSeconds); -S_API bool SteamAPI_ISteamUGC_SetCloudFileNameFilter(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pMatchCloudFileName); -S_API bool SteamAPI_ISteamUGC_SetMatchAnyTag(intptr_t instancePtr, UGCQueryHandle_t handle, bool bMatchAnyTag); -S_API bool SteamAPI_ISteamUGC_SetSearchText(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pSearchText); -S_API bool SteamAPI_ISteamUGC_SetRankedByTrendDays(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 unDays); -S_API bool SteamAPI_ISteamUGC_AddRequiredKeyValueTag(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pKey, const char * pValue); -S_API SteamAPICall_t SteamAPI_ISteamUGC_RequestUGCDetails(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds); -S_API SteamAPICall_t SteamAPI_ISteamUGC_CreateItem(intptr_t instancePtr, AppId_t nConsumerAppId, EWorkshopFileType eFileType); -S_API UGCUpdateHandle_t SteamAPI_ISteamUGC_StartItemUpdate(intptr_t instancePtr, AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID); -S_API bool SteamAPI_ISteamUGC_SetItemTitle(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchTitle); -S_API bool SteamAPI_ISteamUGC_SetItemDescription(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchDescription); -S_API bool SteamAPI_ISteamUGC_SetItemUpdateLanguage(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchLanguage); -S_API bool SteamAPI_ISteamUGC_SetItemMetadata(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchMetaData); -S_API bool SteamAPI_ISteamUGC_SetItemVisibility(intptr_t instancePtr, UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility); -S_API bool SteamAPI_ISteamUGC_SetItemTags(intptr_t instancePtr, UGCUpdateHandle_t updateHandle, const struct SteamParamStringArray_t * pTags); -S_API bool SteamAPI_ISteamUGC_SetItemContent(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszContentFolder); -S_API bool SteamAPI_ISteamUGC_SetItemPreview(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszPreviewFile); -S_API bool SteamAPI_ISteamUGC_RemoveItemKeyValueTags(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchKey); -S_API bool SteamAPI_ISteamUGC_AddItemKeyValueTag(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchKey, const char * pchValue); -S_API bool SteamAPI_ISteamUGC_AddItemPreviewFile(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszPreviewFile, EItemPreviewType type); -S_API bool SteamAPI_ISteamUGC_AddItemPreviewVideo(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszVideoID); -S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewFile(intptr_t instancePtr, UGCUpdateHandle_t handle, uint32 index, const char * pszPreviewFile); -S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewVideo(intptr_t instancePtr, UGCUpdateHandle_t handle, uint32 index, const char * pszVideoID); -S_API bool SteamAPI_ISteamUGC_RemoveItemPreview(intptr_t instancePtr, UGCUpdateHandle_t handle, uint32 index); -S_API SteamAPICall_t SteamAPI_ISteamUGC_SubmitItemUpdate(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchChangeNote); -S_API EItemUpdateStatus SteamAPI_ISteamUGC_GetItemUpdateProgress(intptr_t instancePtr, UGCUpdateHandle_t handle, uint64 * punBytesProcessed, uint64 * punBytesTotal); -S_API SteamAPICall_t SteamAPI_ISteamUGC_SetUserItemVote(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, bool bVoteUp); -S_API SteamAPICall_t SteamAPI_ISteamUGC_GetUserItemVote(intptr_t instancePtr, PublishedFileId_t nPublishedFileID); -S_API SteamAPICall_t SteamAPI_ISteamUGC_AddItemToFavorites(intptr_t instancePtr, AppId_t nAppId, PublishedFileId_t nPublishedFileID); -S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveItemFromFavorites(intptr_t instancePtr, AppId_t nAppId, PublishedFileId_t nPublishedFileID); -S_API SteamAPICall_t SteamAPI_ISteamUGC_SubscribeItem(intptr_t instancePtr, PublishedFileId_t nPublishedFileID); -S_API SteamAPICall_t SteamAPI_ISteamUGC_UnsubscribeItem(intptr_t instancePtr, PublishedFileId_t nPublishedFileID); -S_API uint32 SteamAPI_ISteamUGC_GetNumSubscribedItems(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamUGC_GetSubscribedItems(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries); -S_API uint32 SteamAPI_ISteamUGC_GetItemState(intptr_t instancePtr, PublishedFileId_t nPublishedFileID); -S_API bool SteamAPI_ISteamUGC_GetItemInstallInfo(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, uint64 * punSizeOnDisk, char * pchFolder, uint32 cchFolderSize, uint32 * punTimeStamp); -S_API bool SteamAPI_ISteamUGC_GetItemDownloadInfo(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, uint64 * punBytesDownloaded, uint64 * punBytesTotal); -S_API bool SteamAPI_ISteamUGC_DownloadItem(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, bool bHighPriority); -S_API bool SteamAPI_ISteamUGC_BInitWorkshopForGameServer(intptr_t instancePtr, DepotId_t unWorkshopDepotID, const char * pszFolder); -S_API void SteamAPI_ISteamUGC_SuspendDownloads(intptr_t instancePtr, bool bSuspend); -S_API SteamAPICall_t SteamAPI_ISteamUGC_StartPlaytimeTracking(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs); -S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTracking(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs); -S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamAppList_GetNumInstalledApps(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamAppList_GetInstalledApps(intptr_t instancePtr, AppId_t * pvecAppID, uint32 unMaxAppIDs); -S_API int SteamAPI_ISteamAppList_GetAppName(intptr_t instancePtr, AppId_t nAppID, char * pchName, int cchNameMax); -S_API int SteamAPI_ISteamAppList_GetAppInstallDir(intptr_t instancePtr, AppId_t nAppID, char * pchDirectory, int cchNameMax); -S_API int SteamAPI_ISteamAppList_GetAppBuildId(intptr_t instancePtr, AppId_t nAppID); -S_API void SteamAPI_ISteamHTMLSurface_DestructISteamHTMLSurface(intptr_t instancePtr); -S_API bool SteamAPI_ISteamHTMLSurface_Init(intptr_t instancePtr); -S_API bool SteamAPI_ISteamHTMLSurface_Shutdown(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamHTMLSurface_CreateBrowser(intptr_t instancePtr, const char * pchUserAgent, const char * pchUserCSS); -S_API void SteamAPI_ISteamHTMLSurface_RemoveBrowser(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_LoadURL(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, const char * pchURL, const char * pchPostData); -S_API void SteamAPI_ISteamHTMLSurface_SetSize(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 unWidth, uint32 unHeight); -S_API void SteamAPI_ISteamHTMLSurface_StopLoad(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_Reload(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_GoBack(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_GoForward(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_AddHeader(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, const char * pchKey, const char * pchValue); -S_API void SteamAPI_ISteamHTMLSurface_ExecuteJavascript(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, const char * pchScript); -S_API void SteamAPI_ISteamHTMLSurface_MouseUp(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton); -S_API void SteamAPI_ISteamHTMLSurface_MouseDown(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton); -S_API void SteamAPI_ISteamHTMLSurface_MouseDoubleClick(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton); -S_API void SteamAPI_ISteamHTMLSurface_MouseMove(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, int x, int y); -S_API void SteamAPI_ISteamHTMLSurface_MouseWheel(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, int32 nDelta); -S_API void SteamAPI_ISteamHTMLSurface_KeyDown(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers); -S_API void SteamAPI_ISteamHTMLSurface_KeyUp(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers); -S_API void SteamAPI_ISteamHTMLSurface_KeyChar(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers); -S_API void SteamAPI_ISteamHTMLSurface_SetHorizontalScroll(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll); -S_API void SteamAPI_ISteamHTMLSurface_SetVerticalScroll(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll); -S_API void SteamAPI_ISteamHTMLSurface_SetKeyFocus(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bHasKeyFocus); -S_API void SteamAPI_ISteamHTMLSurface_ViewSource(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_CopyToClipboard(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_PasteFromClipboard(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_Find(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, const char * pchSearchStr, bool bCurrentlyInFind, bool bReverse); -S_API void SteamAPI_ISteamHTMLSurface_StopFind(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_GetLinkAtPosition(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, int x, int y); -S_API void SteamAPI_ISteamHTMLSurface_SetCookie(intptr_t instancePtr, const char * pchHostname, const char * pchKey, const char * pchValue, const char * pchPath, RTime32 nExpires, bool bSecure, bool bHTTPOnly); -S_API void SteamAPI_ISteamHTMLSurface_SetPageScaleFactor(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY); -S_API void SteamAPI_ISteamHTMLSurface_SetBackgroundMode(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bBackgroundMode); -S_API void SteamAPI_ISteamHTMLSurface_AllowStartRequest(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bAllowed); -S_API void SteamAPI_ISteamHTMLSurface_JSDialogResponse(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bResult); -S_API EResult SteamAPI_ISteamInventory_GetResultStatus(intptr_t instancePtr, SteamInventoryResult_t resultHandle); -S_API bool SteamAPI_ISteamInventory_GetResultItems(intptr_t instancePtr, SteamInventoryResult_t resultHandle, struct SteamItemDetails_t * pOutItemsArray, uint32 * punOutItemsArraySize); -S_API uint32 SteamAPI_ISteamInventory_GetResultTimestamp(intptr_t instancePtr, SteamInventoryResult_t resultHandle); -S_API bool SteamAPI_ISteamInventory_CheckResultSteamID(intptr_t instancePtr, SteamInventoryResult_t resultHandle, class CSteamID steamIDExpected); -S_API void SteamAPI_ISteamInventory_DestroyResult(intptr_t instancePtr, SteamInventoryResult_t resultHandle); -S_API bool SteamAPI_ISteamInventory_GetAllItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle); -S_API bool SteamAPI_ISteamInventory_GetItemsByID(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, const SteamItemInstanceID_t * pInstanceIDs, uint32 unCountInstanceIDs); -S_API bool SteamAPI_ISteamInventory_SerializeResult(intptr_t instancePtr, SteamInventoryResult_t resultHandle, void * pOutBuffer, uint32 * punOutBufferSize); -S_API bool SteamAPI_ISteamInventory_DeserializeResult(intptr_t instancePtr, SteamInventoryResult_t * pOutResultHandle, const void * pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE); -S_API bool SteamAPI_ISteamInventory_GenerateItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, const uint32 * punArrayQuantity, uint32 unArrayLength); -S_API bool SteamAPI_ISteamInventory_GrantPromoItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle); -S_API bool SteamAPI_ISteamInventory_AddPromoItem(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, SteamItemDef_t itemDef); -S_API bool SteamAPI_ISteamInventory_AddPromoItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, uint32 unArrayLength); -S_API bool SteamAPI_ISteamInventory_ConsumeItem(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemConsume, uint32 unQuantity); -S_API bool SteamAPI_ISteamInventory_ExchangeItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayGenerate, const uint32 * punArrayGenerateQuantity, uint32 unArrayGenerateLength, const SteamItemInstanceID_t * pArrayDestroy, const uint32 * punArrayDestroyQuantity, uint32 unArrayDestroyLength); -S_API bool SteamAPI_ISteamInventory_TransferItemQuantity(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemIdSource, uint32 unQuantity, SteamItemInstanceID_t itemIdDest); -S_API void SteamAPI_ISteamInventory_SendItemDropHeartbeat(intptr_t instancePtr); -S_API bool SteamAPI_ISteamInventory_TriggerItemDrop(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, SteamItemDef_t dropListDefinition); -S_API bool SteamAPI_ISteamInventory_TradeItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, class CSteamID steamIDTradePartner, const SteamItemInstanceID_t * pArrayGive, const uint32 * pArrayGiveQuantity, uint32 nArrayGiveLength, const SteamItemInstanceID_t * pArrayGet, const uint32 * pArrayGetQuantity, uint32 nArrayGetLength); -S_API bool SteamAPI_ISteamInventory_LoadItemDefinitions(intptr_t instancePtr); -S_API bool SteamAPI_ISteamInventory_GetItemDefinitionIDs(intptr_t instancePtr, SteamItemDef_t * pItemDefIDs, uint32 * punItemDefIDsArraySize); -S_API bool SteamAPI_ISteamInventory_GetItemDefinitionProperty(intptr_t instancePtr, SteamItemDef_t iDefinition, const char * pchPropertyName, char * pchValueBuffer, uint32 * punValueBufferSizeOut); -S_API void SteamAPI_ISteamVideo_GetVideoURL(intptr_t instancePtr, AppId_t unVideoAppID); -S_API bool SteamAPI_ISteamVideo_IsBroadcasting(intptr_t instancePtr, int * pnNumViewers); -S_API bool SteamAPI_ISteamGameServer_InitGameServer(intptr_t instancePtr, uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char * pchVersionString); -S_API void SteamAPI_ISteamGameServer_SetProduct(intptr_t instancePtr, const char * pszProduct); -S_API void SteamAPI_ISteamGameServer_SetGameDescription(intptr_t instancePtr, const char * pszGameDescription); -S_API void SteamAPI_ISteamGameServer_SetModDir(intptr_t instancePtr, const char * pszModDir); -S_API void SteamAPI_ISteamGameServer_SetDedicatedServer(intptr_t instancePtr, bool bDedicated); -S_API void SteamAPI_ISteamGameServer_LogOn(intptr_t instancePtr, const char * pszToken); -S_API void SteamAPI_ISteamGameServer_LogOnAnonymous(intptr_t instancePtr); -S_API void SteamAPI_ISteamGameServer_LogOff(intptr_t instancePtr); -S_API bool SteamAPI_ISteamGameServer_BLoggedOn(intptr_t instancePtr); -S_API bool SteamAPI_ISteamGameServer_BSecure(intptr_t instancePtr); -S_API uint64 SteamAPI_ISteamGameServer_GetSteamID(intptr_t instancePtr); -S_API bool SteamAPI_ISteamGameServer_WasRestartRequested(intptr_t instancePtr); -S_API void SteamAPI_ISteamGameServer_SetMaxPlayerCount(intptr_t instancePtr, int cPlayersMax); -S_API void SteamAPI_ISteamGameServer_SetBotPlayerCount(intptr_t instancePtr, int cBotplayers); -S_API void SteamAPI_ISteamGameServer_SetServerName(intptr_t instancePtr, const char * pszServerName); -S_API void SteamAPI_ISteamGameServer_SetMapName(intptr_t instancePtr, const char * pszMapName); -S_API void SteamAPI_ISteamGameServer_SetPasswordProtected(intptr_t instancePtr, bool bPasswordProtected); -S_API void SteamAPI_ISteamGameServer_SetSpectatorPort(intptr_t instancePtr, uint16 unSpectatorPort); -S_API void SteamAPI_ISteamGameServer_SetSpectatorServerName(intptr_t instancePtr, const char * pszSpectatorServerName); -S_API void SteamAPI_ISteamGameServer_ClearAllKeyValues(intptr_t instancePtr); -S_API void SteamAPI_ISteamGameServer_SetKeyValue(intptr_t instancePtr, const char * pKey, const char * pValue); -S_API void SteamAPI_ISteamGameServer_SetGameTags(intptr_t instancePtr, const char * pchGameTags); -S_API void SteamAPI_ISteamGameServer_SetGameData(intptr_t instancePtr, const char * pchGameData); -S_API void SteamAPI_ISteamGameServer_SetRegion(intptr_t instancePtr, const char * pszRegion); -S_API bool SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate(intptr_t instancePtr, uint32 unIPClient, const void * pvAuthBlob, uint32 cubAuthBlobSize, class CSteamID * pSteamIDUser); -S_API uint64 SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection(intptr_t instancePtr); -S_API void SteamAPI_ISteamGameServer_SendUserDisconnect(intptr_t instancePtr, class CSteamID steamIDUser); -S_API bool SteamAPI_ISteamGameServer_BUpdateUserData(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchPlayerName, uint32 uScore); -S_API HAuthTicket SteamAPI_ISteamGameServer_GetAuthSessionTicket(intptr_t instancePtr, void * pTicket, int cbMaxTicket, uint32 * pcbTicket); -S_API EBeginAuthSessionResult SteamAPI_ISteamGameServer_BeginAuthSession(intptr_t instancePtr, const void * pAuthTicket, int cbAuthTicket, class CSteamID steamID); -S_API void SteamAPI_ISteamGameServer_EndAuthSession(intptr_t instancePtr, class CSteamID steamID); -S_API void SteamAPI_ISteamGameServer_CancelAuthTicket(intptr_t instancePtr, HAuthTicket hAuthTicket); -S_API EUserHasLicenseForAppResult SteamAPI_ISteamGameServer_UserHasLicenseForApp(intptr_t instancePtr, class CSteamID steamID, AppId_t appID); -S_API bool SteamAPI_ISteamGameServer_RequestUserGroupStatus(intptr_t instancePtr, class CSteamID steamIDUser, class CSteamID steamIDGroup); -S_API void SteamAPI_ISteamGameServer_GetGameplayStats(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamGameServer_GetServerReputation(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamGameServer_GetPublicIP(intptr_t instancePtr); -S_API bool SteamAPI_ISteamGameServer_HandleIncomingPacket(intptr_t instancePtr, const void * pData, int cbData, uint32 srcIP, uint16 srcPort); -S_API int SteamAPI_ISteamGameServer_GetNextOutgoingPacket(intptr_t instancePtr, void * pOut, int cbMaxOut, uint32 * pNetAdr, uint16 * pPort); -S_API void SteamAPI_ISteamGameServer_EnableHeartbeats(intptr_t instancePtr, bool bActive); -S_API void SteamAPI_ISteamGameServer_SetHeartbeatInterval(intptr_t instancePtr, int iHeartbeatInterval); -S_API void SteamAPI_ISteamGameServer_ForceHeartbeat(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamGameServer_AssociateWithClan(intptr_t instancePtr, class CSteamID steamIDClan); -S_API SteamAPICall_t SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility(intptr_t instancePtr, class CSteamID steamIDNewPlayer); -S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_RequestUserStats(intptr_t instancePtr, class CSteamID steamIDUser); -S_API bool SteamAPI_ISteamGameServerStats_GetUserStat(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, int32 * pData); -S_API bool SteamAPI_ISteamGameServerStats_GetUserStat0(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, float * pData); -S_API bool SteamAPI_ISteamGameServerStats_GetUserAchievement(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, bool * pbAchieved); -S_API bool SteamAPI_ISteamGameServerStats_SetUserStat(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, int32 nData); -S_API bool SteamAPI_ISteamGameServerStats_SetUserStat0(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, float fData); -S_API bool SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, float flCountThisSession, double dSessionLength); -S_API bool SteamAPI_ISteamGameServerStats_SetUserAchievement(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName); -S_API bool SteamAPI_ISteamGameServerStats_ClearUserAchievement(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName); -S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_StoreUserStats(intptr_t instancePtr, class CSteamID steamIDUser); +// ISteamFriends + +// A versioned accessor is exported by the library +S_API ISteamFriends *SteamAPI_SteamFriends_v017(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamFriends(), but using this ensures that you are using a matching library. +inline ISteamFriends *SteamAPI_SteamFriends() { return SteamAPI_SteamFriends_v017(); } +S_API const char * SteamAPI_ISteamFriends_GetPersonaName( ISteamFriends* self ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_SetPersonaName( ISteamFriends* self, const char * pchPersonaName ); +S_API EPersonaState SteamAPI_ISteamFriends_GetPersonaState( ISteamFriends* self ); +S_API int SteamAPI_ISteamFriends_GetFriendCount( ISteamFriends* self, int iFriendFlags ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetFriendByIndex( ISteamFriends* self, int iFriend, int iFriendFlags ); +S_API EFriendRelationship SteamAPI_ISteamFriends_GetFriendRelationship( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API EPersonaState SteamAPI_ISteamFriends_GetFriendPersonaState( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaName( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamFriends_GetFriendGamePlayed( ISteamFriends* self, uint64_steamid steamIDFriend, FriendGameInfo_t * pFriendGameInfo ); +S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaNameHistory( ISteamFriends* self, uint64_steamid steamIDFriend, int iPersonaName ); +S_API int SteamAPI_ISteamFriends_GetFriendSteamLevel( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API const char * SteamAPI_ISteamFriends_GetPlayerNickname( ISteamFriends* self, uint64_steamid steamIDPlayer ); +S_API int SteamAPI_ISteamFriends_GetFriendsGroupCount( ISteamFriends* self ); +S_API FriendsGroupID_t SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex( ISteamFriends* self, int iFG ); +S_API const char * SteamAPI_ISteamFriends_GetFriendsGroupName( ISteamFriends* self, FriendsGroupID_t friendsGroupID ); +S_API int SteamAPI_ISteamFriends_GetFriendsGroupMembersCount( ISteamFriends* self, FriendsGroupID_t friendsGroupID ); +S_API void SteamAPI_ISteamFriends_GetFriendsGroupMembersList( ISteamFriends* self, FriendsGroupID_t friendsGroupID, CSteamID * pOutSteamIDMembers, int nMembersCount ); +S_API bool SteamAPI_ISteamFriends_HasFriend( ISteamFriends* self, uint64_steamid steamIDFriend, int iFriendFlags ); +S_API int SteamAPI_ISteamFriends_GetClanCount( ISteamFriends* self ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetClanByIndex( ISteamFriends* self, int iClan ); +S_API const char * SteamAPI_ISteamFriends_GetClanName( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API const char * SteamAPI_ISteamFriends_GetClanTag( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API bool SteamAPI_ISteamFriends_GetClanActivityCounts( ISteamFriends* self, uint64_steamid steamIDClan, int * pnOnline, int * pnInGame, int * pnChatting ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_DownloadClanActivityCounts( ISteamFriends* self, CSteamID * psteamIDClans, int cClansToRequest ); +S_API int SteamAPI_ISteamFriends_GetFriendCountFromSource( ISteamFriends* self, uint64_steamid steamIDSource ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetFriendFromSourceByIndex( ISteamFriends* self, uint64_steamid steamIDSource, int iFriend ); +S_API bool SteamAPI_ISteamFriends_IsUserInSource( ISteamFriends* self, uint64_steamid steamIDUser, uint64_steamid steamIDSource ); +S_API void SteamAPI_ISteamFriends_SetInGameVoiceSpeaking( ISteamFriends* self, uint64_steamid steamIDUser, bool bSpeaking ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlay( ISteamFriends* self, const char * pchDialog ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToUser( ISteamFriends* self, const char * pchDialog, uint64_steamid steamID ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage( ISteamFriends* self, const char * pchURL, EActivateGameOverlayToWebPageMode eMode ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToStore( ISteamFriends* self, AppId_t nAppID, EOverlayToStoreFlag eFlag ); +S_API void SteamAPI_ISteamFriends_SetPlayedWith( ISteamFriends* self, uint64_steamid steamIDUserPlayedWith ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog( ISteamFriends* self, uint64_steamid steamIDLobby ); +S_API int SteamAPI_ISteamFriends_GetSmallFriendAvatar( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API int SteamAPI_ISteamFriends_GetMediumFriendAvatar( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API int SteamAPI_ISteamFriends_GetLargeFriendAvatar( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamFriends_RequestUserInformation( ISteamFriends* self, uint64_steamid steamIDUser, bool bRequireNameOnly ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_RequestClanOfficerList( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetClanOwner( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API int SteamAPI_ISteamFriends_GetClanOfficerCount( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetClanOfficerByIndex( ISteamFriends* self, uint64_steamid steamIDClan, int iOfficer ); +S_API uint32 SteamAPI_ISteamFriends_GetUserRestrictions( ISteamFriends* self ); +S_API bool SteamAPI_ISteamFriends_SetRichPresence( ISteamFriends* self, const char * pchKey, const char * pchValue ); +S_API void SteamAPI_ISteamFriends_ClearRichPresence( ISteamFriends* self ); +S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresence( ISteamFriends* self, uint64_steamid steamIDFriend, const char * pchKey ); +S_API int SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex( ISteamFriends* self, uint64_steamid steamIDFriend, int iKey ); +S_API void SteamAPI_ISteamFriends_RequestFriendRichPresence( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamFriends_InviteUserToGame( ISteamFriends* self, uint64_steamid steamIDFriend, const char * pchConnectString ); +S_API int SteamAPI_ISteamFriends_GetCoplayFriendCount( ISteamFriends* self ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetCoplayFriend( ISteamFriends* self, int iCoplayFriend ); +S_API int SteamAPI_ISteamFriends_GetFriendCoplayTime( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API AppId_t SteamAPI_ISteamFriends_GetFriendCoplayGame( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_JoinClanChatRoom( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API bool SteamAPI_ISteamFriends_LeaveClanChatRoom( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API int SteamAPI_ISteamFriends_GetClanChatMemberCount( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetChatMemberByIndex( ISteamFriends* self, uint64_steamid steamIDClan, int iUser ); +S_API bool SteamAPI_ISteamFriends_SendClanChatMessage( ISteamFriends* self, uint64_steamid steamIDClanChat, const char * pchText ); +S_API int SteamAPI_ISteamFriends_GetClanChatMessage( ISteamFriends* self, uint64_steamid steamIDClanChat, int iMessage, void * prgchText, int cchTextMax, EChatEntryType * peChatEntryType, CSteamID * psteamidChatter ); +S_API bool SteamAPI_ISteamFriends_IsClanChatAdmin( ISteamFriends* self, uint64_steamid steamIDClanChat, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam( ISteamFriends* self, uint64_steamid steamIDClanChat ); +S_API bool SteamAPI_ISteamFriends_OpenClanChatWindowInSteam( ISteamFriends* self, uint64_steamid steamIDClanChat ); +S_API bool SteamAPI_ISteamFriends_CloseClanChatWindowInSteam( ISteamFriends* self, uint64_steamid steamIDClanChat ); +S_API bool SteamAPI_ISteamFriends_SetListenForFriendsMessages( ISteamFriends* self, bool bInterceptEnabled ); +S_API bool SteamAPI_ISteamFriends_ReplyToFriendMessage( ISteamFriends* self, uint64_steamid steamIDFriend, const char * pchMsgToSend ); +S_API int SteamAPI_ISteamFriends_GetFriendMessage( ISteamFriends* self, uint64_steamid steamIDFriend, int iMessageID, void * pvData, int cubData, EChatEntryType * peChatEntryType ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_GetFollowerCount( ISteamFriends* self, uint64_steamid steamID ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_IsFollowing( ISteamFriends* self, uint64_steamid steamID ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_EnumerateFollowingList( ISteamFriends* self, uint32 unStartIndex ); +S_API bool SteamAPI_ISteamFriends_IsClanPublic( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API bool SteamAPI_ISteamFriends_IsClanOfficialGameGroup( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API int SteamAPI_ISteamFriends_GetNumChatsWithUnreadPriorityMessages( ISteamFriends* self ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog( ISteamFriends* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamFriends_RegisterProtocolInOverlayBrowser( ISteamFriends* self, const char * pchProtocol ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialogConnectString( ISteamFriends* self, const char * pchConnectString ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_RequestEquippedProfileItems( ISteamFriends* self, uint64_steamid steamID ); +S_API bool SteamAPI_ISteamFriends_BHasEquippedProfileItem( ISteamFriends* self, uint64_steamid steamID, ECommunityProfileItemType itemType ); +S_API const char * SteamAPI_ISteamFriends_GetProfileItemPropertyString( ISteamFriends* self, uint64_steamid steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ); +S_API uint32 SteamAPI_ISteamFriends_GetProfileItemPropertyUint( ISteamFriends* self, uint64_steamid steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ); + +// ISteamUtils + +// A versioned accessor is exported by the library +S_API ISteamUtils *SteamAPI_SteamUtils_v010(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUtils(), but using this ensures that you are using a matching library. +inline ISteamUtils *SteamAPI_SteamUtils() { return SteamAPI_SteamUtils_v010(); } + +// A versioned accessor is exported by the library +S_API ISteamUtils *SteamAPI_SteamGameServerUtils_v010(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerUtils(), but using this ensures that you are using a matching library. +inline ISteamUtils *SteamAPI_SteamGameServerUtils() { return SteamAPI_SteamGameServerUtils_v010(); } +S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceAppActive( ISteamUtils* self ); +S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceComputerActive( ISteamUtils* self ); +S_API EUniverse SteamAPI_ISteamUtils_GetConnectedUniverse( ISteamUtils* self ); +S_API uint32 SteamAPI_ISteamUtils_GetServerRealTime( ISteamUtils* self ); +S_API const char * SteamAPI_ISteamUtils_GetIPCountry( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_GetImageSize( ISteamUtils* self, int iImage, uint32 * pnWidth, uint32 * pnHeight ); +S_API bool SteamAPI_ISteamUtils_GetImageRGBA( ISteamUtils* self, int iImage, uint8 * pubDest, int nDestBufferSize ); +S_API uint8 SteamAPI_ISteamUtils_GetCurrentBatteryPower( ISteamUtils* self ); +S_API uint32 SteamAPI_ISteamUtils_GetAppID( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetOverlayNotificationPosition( ISteamUtils* self, ENotificationPosition eNotificationPosition ); +S_API bool SteamAPI_ISteamUtils_IsAPICallCompleted( ISteamUtils* self, SteamAPICall_t hSteamAPICall, bool * pbFailed ); +S_API ESteamAPICallFailure SteamAPI_ISteamUtils_GetAPICallFailureReason( ISteamUtils* self, SteamAPICall_t hSteamAPICall ); +S_API bool SteamAPI_ISteamUtils_GetAPICallResult( ISteamUtils* self, SteamAPICall_t hSteamAPICall, void * pCallback, int cubCallback, int iCallbackExpected, bool * pbFailed ); +S_API uint32 SteamAPI_ISteamUtils_GetIPCCallCount( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetWarningMessageHook( ISteamUtils* self, SteamAPIWarningMessageHook_t pFunction ); +S_API bool SteamAPI_ISteamUtils_IsOverlayEnabled( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_BOverlayNeedsPresent( ISteamUtils* self ); +S_API SteamAPICall_t SteamAPI_ISteamUtils_CheckFileSignature( ISteamUtils* self, const char * szFileName ); +S_API bool SteamAPI_ISteamUtils_ShowGamepadTextInput( ISteamUtils* self, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32 unCharMax, const char * pchExistingText ); +S_API uint32 SteamAPI_ISteamUtils_GetEnteredGamepadTextLength( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_GetEnteredGamepadTextInput( ISteamUtils* self, char * pchText, uint32 cchText ); +S_API const char * SteamAPI_ISteamUtils_GetSteamUILanguage( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_IsSteamRunningInVR( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetOverlayNotificationInset( ISteamUtils* self, int nHorizontalInset, int nVerticalInset ); +S_API bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_StartVRDashboard( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled( ISteamUtils* self, bool bEnabled ); +S_API bool SteamAPI_ISteamUtils_IsSteamChinaLauncher( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_InitFilterText( ISteamUtils* self, uint32 unFilterOptions ); +S_API int SteamAPI_ISteamUtils_FilterText( ISteamUtils* self, ETextFilteringContext eContext, uint64_steamid sourceSteamID, const char * pchInputMessage, char * pchOutFilteredText, uint32 nByteSizeOutFilteredText ); +S_API ESteamIPv6ConnectivityState SteamAPI_ISteamUtils_GetIPv6ConnectivityState( ISteamUtils* self, ESteamIPv6ConnectivityProtocol eProtocol ); +S_API bool SteamAPI_ISteamUtils_IsSteamRunningOnSteamDeck( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_ShowFloatingGamepadTextInput( ISteamUtils* self, EFloatingGamepadTextInputMode eKeyboardMode, int nTextFieldXPosition, int nTextFieldYPosition, int nTextFieldWidth, int nTextFieldHeight ); +S_API void SteamAPI_ISteamUtils_SetGameLauncherMode( ISteamUtils* self, bool bLauncherMode ); +S_API bool SteamAPI_ISteamUtils_DismissFloatingGamepadTextInput( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_DismissGamepadTextInput( ISteamUtils* self ); + +// ISteamMatchmaking + +// A versioned accessor is exported by the library +S_API ISteamMatchmaking *SteamAPI_SteamMatchmaking_v009(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMatchmaking(), but using this ensures that you are using a matching library. +inline ISteamMatchmaking *SteamAPI_SteamMatchmaking() { return SteamAPI_SteamMatchmaking_v009(); } +S_API int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount( ISteamMatchmaking* self ); +S_API bool SteamAPI_ISteamMatchmaking_GetFavoriteGame( ISteamMatchmaking* self, int iGame, AppId_t * pnAppID, uint32 * pnIP, uint16 * pnConnPort, uint16 * pnQueryPort, uint32 * punFlags, uint32 * pRTime32LastPlayedOnServer ); +S_API int SteamAPI_ISteamMatchmaking_AddFavoriteGame( ISteamMatchmaking* self, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer ); +S_API bool SteamAPI_ISteamMatchmaking_RemoveFavoriteGame( ISteamMatchmaking* self, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags ); +S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_RequestLobbyList( ISteamMatchmaking* self ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter( ISteamMatchmaking* self, const char * pchKeyToMatch, const char * pchValueToMatch, ELobbyComparison eComparisonType ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter( ISteamMatchmaking* self, const char * pchKeyToMatch, int nValueToMatch, ELobbyComparison eComparisonType ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter( ISteamMatchmaking* self, const char * pchKeyToMatch, int nValueToBeCloseTo ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable( ISteamMatchmaking* self, int nSlotsAvailable ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter( ISteamMatchmaking* self, ELobbyDistanceFilter eLobbyDistanceFilter ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter( ISteamMatchmaking* self, int cMaxResults ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API uint64_steamid SteamAPI_ISteamMatchmaking_GetLobbyByIndex( ISteamMatchmaking* self, int iLobby ); +S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_CreateLobby( ISteamMatchmaking* self, ELobbyType eLobbyType, int cMaxMembers ); +S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_JoinLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API void SteamAPI_ISteamMatchmaking_LeaveLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_InviteUserToLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDInvitee ); +S_API int SteamAPI_ISteamMatchmaking_GetNumLobbyMembers( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API uint64_steamid SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int iMember ); +S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey, const char * pchValue ); +S_API int SteamAPI_ISteamMatchmaking_GetLobbyDataCount( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int iLobbyData, char * pchKey, int cchKeyBufferSize, char * pchValue, int cchValueBufferSize ); +S_API bool SteamAPI_ISteamMatchmaking_DeleteLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey ); +S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyMemberData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDUser, const char * pchKey ); +S_API void SteamAPI_ISteamMatchmaking_SetLobbyMemberData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey, const char * pchValue ); +S_API bool SteamAPI_ISteamMatchmaking_SendLobbyChatMsg( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const void * pvMsgBody, int cubMsgBody ); +S_API int SteamAPI_ISteamMatchmaking_GetLobbyChatEntry( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int iChatID, CSteamID * pSteamIDUser, void * pvData, int cubData, EChatEntryType * peChatEntryType ); +S_API bool SteamAPI_ISteamMatchmaking_RequestLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API void SteamAPI_ISteamMatchmaking_SetLobbyGameServer( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, uint64_steamid steamIDGameServer ); +S_API bool SteamAPI_ISteamMatchmaking_GetLobbyGameServer( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint32 * punGameServerIP, uint16 * punGameServerPort, CSteamID * psteamIDGameServer ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int cMaxMembers ); +S_API int SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyType( ISteamMatchmaking* self, uint64_steamid steamIDLobby, ELobbyType eLobbyType ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyJoinable( ISteamMatchmaking* self, uint64_steamid steamIDLobby, bool bLobbyJoinable ); +S_API uint64_steamid SteamAPI_ISteamMatchmaking_GetLobbyOwner( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyOwner( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDNewOwner ); +S_API bool SteamAPI_ISteamMatchmaking_SetLinkedLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDLobbyDependent ); + +// ISteamMatchmakingServerListResponse +S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded( ISteamMatchmakingServerListResponse* self, HServerListRequest hRequest, int iServer ); +S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond( ISteamMatchmakingServerListResponse* self, HServerListRequest hRequest, int iServer ); +S_API void SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete( ISteamMatchmakingServerListResponse* self, HServerListRequest hRequest, EMatchMakingServerResponse response ); + +// ISteamMatchmakingPingResponse +S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerResponded( ISteamMatchmakingPingResponse* self, gameserveritem_t & server ); +S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond( ISteamMatchmakingPingResponse* self ); + +// ISteamMatchmakingPlayersResponse +S_API void SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList( ISteamMatchmakingPlayersResponse* self, const char * pchName, int nScore, float flTimePlayed ); +S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond( ISteamMatchmakingPlayersResponse* self ); +S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete( ISteamMatchmakingPlayersResponse* self ); + +// ISteamMatchmakingRulesResponse +S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded( ISteamMatchmakingRulesResponse* self, const char * pchRule, const char * pchValue ); +S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond( ISteamMatchmakingRulesResponse* self ); +S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete( ISteamMatchmakingRulesResponse* self ); + +// ISteamMatchmakingServers + +// A versioned accessor is exported by the library +S_API ISteamMatchmakingServers *SteamAPI_SteamMatchmakingServers_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMatchmakingServers(), but using this ensures that you are using a matching library. +inline ISteamMatchmakingServers *SteamAPI_SteamMatchmakingServers() { return SteamAPI_SteamMatchmakingServers_v002(); } +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestInternetServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestLANServerList( ISteamMatchmakingServers* self, AppId_t iApp, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API void SteamAPI_ISteamMatchmakingServers_ReleaseRequest( ISteamMatchmakingServers* self, HServerListRequest hServerListRequest ); +S_API gameserveritem_t * SteamAPI_ISteamMatchmakingServers_GetServerDetails( ISteamMatchmakingServers* self, HServerListRequest hRequest, int iServer ); +S_API void SteamAPI_ISteamMatchmakingServers_CancelQuery( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API void SteamAPI_ISteamMatchmakingServers_RefreshQuery( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API bool SteamAPI_ISteamMatchmakingServers_IsRefreshing( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API int SteamAPI_ISteamMatchmakingServers_GetServerCount( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API void SteamAPI_ISteamMatchmakingServers_RefreshServer( ISteamMatchmakingServers* self, HServerListRequest hRequest, int iServer ); +S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PingServer( ISteamMatchmakingServers* self, uint32 unIP, uint16 usPort, ISteamMatchmakingPingResponse * pRequestServersResponse ); +S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PlayerDetails( ISteamMatchmakingServers* self, uint32 unIP, uint16 usPort, ISteamMatchmakingPlayersResponse * pRequestServersResponse ); +S_API HServerQuery SteamAPI_ISteamMatchmakingServers_ServerRules( ISteamMatchmakingServers* self, uint32 unIP, uint16 usPort, ISteamMatchmakingRulesResponse * pRequestServersResponse ); +S_API void SteamAPI_ISteamMatchmakingServers_CancelServerQuery( ISteamMatchmakingServers* self, HServerQuery hServerQuery ); + +// ISteamGameSearch + +// A versioned accessor is exported by the library +S_API ISteamGameSearch *SteamAPI_SteamGameSearch_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameSearch(), but using this ensures that you are using a matching library. +inline ISteamGameSearch *SteamAPI_SteamGameSearch() { return SteamAPI_SteamGameSearch_v001(); } +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_AddGameSearchParams( ISteamGameSearch* self, const char * pchKeyToFind, const char * pchValuesToFind ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SearchForGameWithLobby( ISteamGameSearch* self, uint64_steamid steamIDLobby, int nPlayerMin, int nPlayerMax ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SearchForGameSolo( ISteamGameSearch* self, int nPlayerMin, int nPlayerMax ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_AcceptGame( ISteamGameSearch* self ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_DeclineGame( ISteamGameSearch* self ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_RetrieveConnectionDetails( ISteamGameSearch* self, uint64_steamid steamIDHost, char * pchConnectionDetails, int cubConnectionDetails ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_EndGameSearch( ISteamGameSearch* self ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SetGameHostParams( ISteamGameSearch* self, const char * pchKey, const char * pchValue ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SetConnectionDetails( ISteamGameSearch* self, const char * pchConnectionDetails, int cubConnectionDetails ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_RequestPlayersForGame( ISteamGameSearch* self, int nPlayerMin, int nPlayerMax, int nMaxTeamSize ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_HostConfirmGameStart( ISteamGameSearch* self, uint64 ullUniqueGameID ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_CancelRequestPlayersForGame( ISteamGameSearch* self ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SubmitPlayerResult( ISteamGameSearch* self, uint64 ullUniqueGameID, uint64_steamid steamIDPlayer, EPlayerResult_t EPlayerResult ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_EndGame( ISteamGameSearch* self, uint64 ullUniqueGameID ); + +// ISteamParties + +// A versioned accessor is exported by the library +S_API ISteamParties *SteamAPI_SteamParties_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamParties(), but using this ensures that you are using a matching library. +inline ISteamParties *SteamAPI_SteamParties() { return SteamAPI_SteamParties_v002(); } +S_API uint32 SteamAPI_ISteamParties_GetNumActiveBeacons( ISteamParties* self ); +S_API PartyBeaconID_t SteamAPI_ISteamParties_GetBeaconByIndex( ISteamParties* self, uint32 unIndex ); +S_API bool SteamAPI_ISteamParties_GetBeaconDetails( ISteamParties* self, PartyBeaconID_t ulBeaconID, CSteamID * pSteamIDBeaconOwner, SteamPartyBeaconLocation_t * pLocation, char * pchMetadata, int cchMetadata ); +S_API SteamAPICall_t SteamAPI_ISteamParties_JoinParty( ISteamParties* self, PartyBeaconID_t ulBeaconID ); +S_API bool SteamAPI_ISteamParties_GetNumAvailableBeaconLocations( ISteamParties* self, uint32 * puNumLocations ); +S_API bool SteamAPI_ISteamParties_GetAvailableBeaconLocations( ISteamParties* self, SteamPartyBeaconLocation_t * pLocationList, uint32 uMaxNumLocations ); +S_API SteamAPICall_t SteamAPI_ISteamParties_CreateBeacon( ISteamParties* self, uint32 unOpenSlots, SteamPartyBeaconLocation_t * pBeaconLocation, const char * pchConnectString, const char * pchMetadata ); +S_API void SteamAPI_ISteamParties_OnReservationCompleted( ISteamParties* self, PartyBeaconID_t ulBeacon, uint64_steamid steamIDUser ); +S_API void SteamAPI_ISteamParties_CancelReservation( ISteamParties* self, PartyBeaconID_t ulBeacon, uint64_steamid steamIDUser ); +S_API SteamAPICall_t SteamAPI_ISteamParties_ChangeNumOpenSlots( ISteamParties* self, PartyBeaconID_t ulBeacon, uint32 unOpenSlots ); +S_API bool SteamAPI_ISteamParties_DestroyBeacon( ISteamParties* self, PartyBeaconID_t ulBeacon ); +S_API bool SteamAPI_ISteamParties_GetBeaconLocationData( ISteamParties* self, SteamPartyBeaconLocation_t BeaconLocation, ESteamPartyBeaconLocationData eData, char * pchDataStringOut, int cchDataStringOut ); + +// ISteamRemoteStorage + +// A versioned accessor is exported by the library +S_API ISteamRemoteStorage *SteamAPI_SteamRemoteStorage_v016(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamRemoteStorage(), but using this ensures that you are using a matching library. +inline ISteamRemoteStorage *SteamAPI_SteamRemoteStorage() { return SteamAPI_SteamRemoteStorage_v016(); } +S_API bool SteamAPI_ISteamRemoteStorage_FileWrite( ISteamRemoteStorage* self, const char * pchFile, const void * pvData, int32 cubData ); +S_API int32 SteamAPI_ISteamRemoteStorage_FileRead( ISteamRemoteStorage* self, const char * pchFile, void * pvData, int32 cubDataToRead ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileWriteAsync( ISteamRemoteStorage* self, const char * pchFile, const void * pvData, uint32 cubData ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileReadAsync( ISteamRemoteStorage* self, const char * pchFile, uint32 nOffset, uint32 cubToRead ); +S_API bool SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete( ISteamRemoteStorage* self, SteamAPICall_t hReadCall, void * pvBuffer, uint32 cubToRead ); +S_API bool SteamAPI_ISteamRemoteStorage_FileForget( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_FileDelete( ISteamRemoteStorage* self, const char * pchFile ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileShare( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_SetSyncPlatforms( ISteamRemoteStorage* self, const char * pchFile, ERemoteStoragePlatform eRemoteStoragePlatform ); +S_API UGCFileWriteStreamHandle_t SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk( ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle, const void * pvData, int32 cubData ); +S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamClose( ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle ); +S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel( ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle ); +S_API bool SteamAPI_ISteamRemoteStorage_FileExists( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_FilePersisted( ISteamRemoteStorage* self, const char * pchFile ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetFileSize( ISteamRemoteStorage* self, const char * pchFile ); +S_API int64 SteamAPI_ISteamRemoteStorage_GetFileTimestamp( ISteamRemoteStorage* self, const char * pchFile ); +S_API ERemoteStoragePlatform SteamAPI_ISteamRemoteStorage_GetSyncPlatforms( ISteamRemoteStorage* self, const char * pchFile ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetFileCount( ISteamRemoteStorage* self ); +S_API const char * SteamAPI_ISteamRemoteStorage_GetFileNameAndSize( ISteamRemoteStorage* self, int iFile, int32 * pnFileSizeInBytes ); +S_API bool SteamAPI_ISteamRemoteStorage_GetQuota( ISteamRemoteStorage* self, uint64 * pnTotalBytes, uint64 * puAvailableBytes ); +S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount( ISteamRemoteStorage* self ); +S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp( ISteamRemoteStorage* self ); +S_API void SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp( ISteamRemoteStorage* self, bool bEnabled ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownload( ISteamRemoteStorage* self, UGCHandle_t hContent, uint32 unPriority ); +S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress( ISteamRemoteStorage* self, UGCHandle_t hContent, int32 * pnBytesDownloaded, int32 * pnBytesExpected ); +S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDetails( ISteamRemoteStorage* self, UGCHandle_t hContent, AppId_t * pnAppID, char ** ppchName, int32 * pnFileSizeInBytes, CSteamID * pSteamIDOwner ); +S_API int32 SteamAPI_ISteamRemoteStorage_UGCRead( ISteamRemoteStorage* self, UGCHandle_t hContent, void * pvData, int32 cubDataToRead, uint32 cOffset, EUGCReadAction eAction ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetCachedUGCCount( ISteamRemoteStorage* self ); +S_API UGCHandle_t SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle( ISteamRemoteStorage* self, int32 iCachedContent ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishWorkshopFile( ISteamRemoteStorage* self, const char * pchFile, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t * pTags, EWorkshopFileType eWorkshopFileType ); +S_API PublishedFileUpdateHandle_t SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchPreviewFile ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchTitle ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchDescription ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, SteamParamStringArray_t * pTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, uint32 unMaxSecondsOld ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_DeletePublishedFile( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles( ISteamRemoteStorage* self, uint32 unStartIndex ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SubscribePublishedFile( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles( ISteamRemoteStorage* self, uint32 unStartIndex ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchChangeDescription ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, bool bVoteUp ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles( ISteamRemoteStorage* self, uint64_steamid steamId, uint32 unStartIndex, SteamParamStringArray_t * pRequiredTags, SteamParamStringArray_t * pExcludedTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishVideo( ISteamRemoteStorage* self, EWorkshopVideoProvider eVideoProvider, const char * pchVideoAccount, const char * pchVideoIdentifier, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t * pTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction( ISteamRemoteStorage* self, EWorkshopFileAction eAction, uint32 unStartIndex ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles( ISteamRemoteStorage* self, EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, SteamParamStringArray_t * pTags, SteamParamStringArray_t * pUserTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation( ISteamRemoteStorage* self, UGCHandle_t hContent, const char * pchLocation, uint32 unPriority ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetLocalFileChangeCount( ISteamRemoteStorage* self ); +S_API const char * SteamAPI_ISteamRemoteStorage_GetLocalFileChange( ISteamRemoteStorage* self, int iFile, ERemoteStorageLocalFileChange * pEChangeType, ERemoteStorageFilePathType * pEFilePathType ); +S_API bool SteamAPI_ISteamRemoteStorage_BeginFileWriteBatch( ISteamRemoteStorage* self ); +S_API bool SteamAPI_ISteamRemoteStorage_EndFileWriteBatch( ISteamRemoteStorage* self ); + +// ISteamUserStats + +// A versioned accessor is exported by the library +S_API ISteamUserStats *SteamAPI_SteamUserStats_v012(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUserStats(), but using this ensures that you are using a matching library. +inline ISteamUserStats *SteamAPI_SteamUserStats() { return SteamAPI_SteamUserStats_v012(); } +S_API bool SteamAPI_ISteamUserStats_RequestCurrentStats( ISteamUserStats* self ); +S_API bool SteamAPI_ISteamUserStats_GetStatInt32( ISteamUserStats* self, const char * pchName, int32 * pData ); +S_API bool SteamAPI_ISteamUserStats_GetStatFloat( ISteamUserStats* self, const char * pchName, float * pData ); +S_API bool SteamAPI_ISteamUserStats_SetStatInt32( ISteamUserStats* self, const char * pchName, int32 nData ); +S_API bool SteamAPI_ISteamUserStats_SetStatFloat( ISteamUserStats* self, const char * pchName, float fData ); +S_API bool SteamAPI_ISteamUserStats_UpdateAvgRateStat( ISteamUserStats* self, const char * pchName, float flCountThisSession, double dSessionLength ); +S_API bool SteamAPI_ISteamUserStats_GetAchievement( ISteamUserStats* self, const char * pchName, bool * pbAchieved ); +S_API bool SteamAPI_ISteamUserStats_SetAchievement( ISteamUserStats* self, const char * pchName ); +S_API bool SteamAPI_ISteamUserStats_ClearAchievement( ISteamUserStats* self, const char * pchName ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime( ISteamUserStats* self, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime ); +S_API bool SteamAPI_ISteamUserStats_StoreStats( ISteamUserStats* self ); +S_API int SteamAPI_ISteamUserStats_GetAchievementIcon( ISteamUserStats* self, const char * pchName ); +S_API const char * SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute( ISteamUserStats* self, const char * pchName, const char * pchKey ); +S_API bool SteamAPI_ISteamUserStats_IndicateAchievementProgress( ISteamUserStats* self, const char * pchName, uint32 nCurProgress, uint32 nMaxProgress ); +S_API uint32 SteamAPI_ISteamUserStats_GetNumAchievements( ISteamUserStats* self ); +S_API const char * SteamAPI_ISteamUserStats_GetAchievementName( ISteamUserStats* self, uint32 iAchievement ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestUserStats( ISteamUserStats* self, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamUserStats_GetUserStatInt32( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, int32 * pData ); +S_API bool SteamAPI_ISteamUserStats_GetUserStatFloat( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, float * pData ); +S_API bool SteamAPI_ISteamUserStats_GetUserAchievement( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, bool * pbAchieved ); +S_API bool SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime ); +S_API bool SteamAPI_ISteamUserStats_ResetAllStats( ISteamUserStats* self, bool bAchievementsToo ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindOrCreateLeaderboard( ISteamUserStats* self, const char * pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindLeaderboard( ISteamUserStats* self, const char * pchLeaderboardName ); +S_API const char * SteamAPI_ISteamUserStats_GetLeaderboardName( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API int SteamAPI_ISteamUserStats_GetLeaderboardEntryCount( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API ELeaderboardSortMethod SteamAPI_ISteamUserStats_GetLeaderboardSortMethod( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API ELeaderboardDisplayType SteamAPI_ISteamUserStats_GetLeaderboardDisplayType( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntries( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, CSteamID * prgUsers, int cUsers ); +S_API bool SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry( ISteamUserStats* self, SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, LeaderboardEntry_t * pLeaderboardEntry, int32 * pDetails, int cDetailsMax ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_UploadLeaderboardScore( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32 * pScoreDetails, int cScoreDetailsCount ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_AttachLeaderboardUGC( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers( ISteamUserStats* self ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages( ISteamUserStats* self ); +S_API int SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo( ISteamUserStats* self, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved ); +S_API int SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo( ISteamUserStats* self, int iIteratorPrevious, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementAchievedPercent( ISteamUserStats* self, const char * pchName, float * pflPercent ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalStats( ISteamUserStats* self, int nHistoryDays ); +S_API bool SteamAPI_ISteamUserStats_GetGlobalStatInt64( ISteamUserStats* self, const char * pchStatName, int64 * pData ); +S_API bool SteamAPI_ISteamUserStats_GetGlobalStatDouble( ISteamUserStats* self, const char * pchStatName, double * pData ); +S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64( ISteamUserStats* self, const char * pchStatName, int64 * pData, uint32 cubData ); +S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble( ISteamUserStats* self, const char * pchStatName, double * pData, uint32 cubData ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementProgressLimitsInt32( ISteamUserStats* self, const char * pchName, int32 * pnMinProgress, int32 * pnMaxProgress ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementProgressLimitsFloat( ISteamUserStats* self, const char * pchName, float * pfMinProgress, float * pfMaxProgress ); + +// ISteamApps + +// A versioned accessor is exported by the library +S_API ISteamApps *SteamAPI_SteamApps_v008(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamApps(), but using this ensures that you are using a matching library. +inline ISteamApps *SteamAPI_SteamApps() { return SteamAPI_SteamApps_v008(); } +S_API bool SteamAPI_ISteamApps_BIsSubscribed( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsLowViolence( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsCybercafe( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsVACBanned( ISteamApps* self ); +S_API const char * SteamAPI_ISteamApps_GetCurrentGameLanguage( ISteamApps* self ); +S_API const char * SteamAPI_ISteamApps_GetAvailableGameLanguages( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsSubscribedApp( ISteamApps* self, AppId_t appID ); +S_API bool SteamAPI_ISteamApps_BIsDlcInstalled( ISteamApps* self, AppId_t appID ); +S_API uint32 SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime( ISteamApps* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend( ISteamApps* self ); +S_API int SteamAPI_ISteamApps_GetDLCCount( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BGetDLCDataByIndex( ISteamApps* self, int iDLC, AppId_t * pAppID, bool * pbAvailable, char * pchName, int cchNameBufferSize ); +S_API void SteamAPI_ISteamApps_InstallDLC( ISteamApps* self, AppId_t nAppID ); +S_API void SteamAPI_ISteamApps_UninstallDLC( ISteamApps* self, AppId_t nAppID ); +S_API void SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey( ISteamApps* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamApps_GetCurrentBetaName( ISteamApps* self, char * pchName, int cchNameBufferSize ); +S_API bool SteamAPI_ISteamApps_MarkContentCorrupt( ISteamApps* self, bool bMissingFilesOnly ); +S_API uint32 SteamAPI_ISteamApps_GetInstalledDepots( ISteamApps* self, AppId_t appID, DepotId_t * pvecDepots, uint32 cMaxDepots ); +S_API uint32 SteamAPI_ISteamApps_GetAppInstallDir( ISteamApps* self, AppId_t appID, char * pchFolder, uint32 cchFolderBufferSize ); +S_API bool SteamAPI_ISteamApps_BIsAppInstalled( ISteamApps* self, AppId_t appID ); +S_API uint64_steamid SteamAPI_ISteamApps_GetAppOwner( ISteamApps* self ); +S_API const char * SteamAPI_ISteamApps_GetLaunchQueryParam( ISteamApps* self, const char * pchKey ); +S_API bool SteamAPI_ISteamApps_GetDlcDownloadProgress( ISteamApps* self, AppId_t nAppID, uint64 * punBytesDownloaded, uint64 * punBytesTotal ); +S_API int SteamAPI_ISteamApps_GetAppBuildId( ISteamApps* self ); +S_API void SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys( ISteamApps* self ); +S_API SteamAPICall_t SteamAPI_ISteamApps_GetFileDetails( ISteamApps* self, const char * pszFileName ); +S_API int SteamAPI_ISteamApps_GetLaunchCommandLine( ISteamApps* self, char * pszCommandLine, int cubCommandLine ); +S_API bool SteamAPI_ISteamApps_BIsSubscribedFromFamilySharing( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsTimedTrial( ISteamApps* self, uint32 * punSecondsAllowed, uint32 * punSecondsPlayed ); +S_API bool SteamAPI_ISteamApps_SetDlcContext( ISteamApps* self, AppId_t nAppID ); + +// ISteamNetworking + +// A versioned accessor is exported by the library +S_API ISteamNetworking *SteamAPI_SteamNetworking_v006(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworking(), but using this ensures that you are using a matching library. +inline ISteamNetworking *SteamAPI_SteamNetworking() { return SteamAPI_SteamNetworking_v006(); } + +// A versioned accessor is exported by the library +S_API ISteamNetworking *SteamAPI_SteamGameServerNetworking_v006(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerNetworking(), but using this ensures that you are using a matching library. +inline ISteamNetworking *SteamAPI_SteamGameServerNetworking() { return SteamAPI_SteamGameServerNetworking_v006(); } +S_API bool SteamAPI_ISteamNetworking_SendP2PPacket( ISteamNetworking* self, uint64_steamid steamIDRemote, const void * pubData, uint32 cubData, EP2PSend eP2PSendType, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_IsP2PPacketAvailable( ISteamNetworking* self, uint32 * pcubMsgSize, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_ReadP2PPacket( ISteamNetworking* self, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, CSteamID * psteamIDRemote, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser( ISteamNetworking* self, uint64_steamid steamIDRemote ); +S_API bool SteamAPI_ISteamNetworking_CloseP2PSessionWithUser( ISteamNetworking* self, uint64_steamid steamIDRemote ); +S_API bool SteamAPI_ISteamNetworking_CloseP2PChannelWithUser( ISteamNetworking* self, uint64_steamid steamIDRemote, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_GetP2PSessionState( ISteamNetworking* self, uint64_steamid steamIDRemote, P2PSessionState_t * pConnectionState ); +S_API bool SteamAPI_ISteamNetworking_AllowP2PPacketRelay( ISteamNetworking* self, bool bAllow ); +S_API SNetListenSocket_t SteamAPI_ISteamNetworking_CreateListenSocket( ISteamNetworking* self, int nVirtualP2PPort, SteamIPAddress_t nIP, uint16 nPort, bool bAllowUseOfPacketRelay ); +S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateP2PConnectionSocket( ISteamNetworking* self, uint64_steamid steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay ); +S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateConnectionSocket( ISteamNetworking* self, SteamIPAddress_t nIP, uint16 nPort, int nTimeoutSec ); +S_API bool SteamAPI_ISteamNetworking_DestroySocket( ISteamNetworking* self, SNetSocket_t hSocket, bool bNotifyRemoteEnd ); +S_API bool SteamAPI_ISteamNetworking_DestroyListenSocket( ISteamNetworking* self, SNetListenSocket_t hSocket, bool bNotifyRemoteEnd ); +S_API bool SteamAPI_ISteamNetworking_SendDataOnSocket( ISteamNetworking* self, SNetSocket_t hSocket, void * pubData, uint32 cubData, bool bReliable ); +S_API bool SteamAPI_ISteamNetworking_IsDataAvailableOnSocket( ISteamNetworking* self, SNetSocket_t hSocket, uint32 * pcubMsgSize ); +S_API bool SteamAPI_ISteamNetworking_RetrieveDataFromSocket( ISteamNetworking* self, SNetSocket_t hSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize ); +S_API bool SteamAPI_ISteamNetworking_IsDataAvailable( ISteamNetworking* self, SNetListenSocket_t hListenSocket, uint32 * pcubMsgSize, SNetSocket_t * phSocket ); +S_API bool SteamAPI_ISteamNetworking_RetrieveData( ISteamNetworking* self, SNetListenSocket_t hListenSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, SNetSocket_t * phSocket ); +S_API bool SteamAPI_ISteamNetworking_GetSocketInfo( ISteamNetworking* self, SNetSocket_t hSocket, CSteamID * pSteamIDRemote, int * peSocketStatus, SteamIPAddress_t * punIPRemote, uint16 * punPortRemote ); +S_API bool SteamAPI_ISteamNetworking_GetListenSocketInfo( ISteamNetworking* self, SNetListenSocket_t hListenSocket, SteamIPAddress_t * pnIP, uint16 * pnPort ); +S_API ESNetSocketConnectionType SteamAPI_ISteamNetworking_GetSocketConnectionType( ISteamNetworking* self, SNetSocket_t hSocket ); +S_API int SteamAPI_ISteamNetworking_GetMaxPacketSize( ISteamNetworking* self, SNetSocket_t hSocket ); + +// ISteamScreenshots + +// A versioned accessor is exported by the library +S_API ISteamScreenshots *SteamAPI_SteamScreenshots_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamScreenshots(), but using this ensures that you are using a matching library. +inline ISteamScreenshots *SteamAPI_SteamScreenshots() { return SteamAPI_SteamScreenshots_v003(); } +S_API ScreenshotHandle SteamAPI_ISteamScreenshots_WriteScreenshot( ISteamScreenshots* self, void * pubRGB, uint32 cubRGB, int nWidth, int nHeight ); +S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddScreenshotToLibrary( ISteamScreenshots* self, const char * pchFilename, const char * pchThumbnailFilename, int nWidth, int nHeight ); +S_API void SteamAPI_ISteamScreenshots_TriggerScreenshot( ISteamScreenshots* self ); +S_API void SteamAPI_ISteamScreenshots_HookScreenshots( ISteamScreenshots* self, bool bHook ); +S_API bool SteamAPI_ISteamScreenshots_SetLocation( ISteamScreenshots* self, ScreenshotHandle hScreenshot, const char * pchLocation ); +S_API bool SteamAPI_ISteamScreenshots_TagUser( ISteamScreenshots* self, ScreenshotHandle hScreenshot, uint64_steamid steamID ); +S_API bool SteamAPI_ISteamScreenshots_TagPublishedFile( ISteamScreenshots* self, ScreenshotHandle hScreenshot, PublishedFileId_t unPublishedFileID ); +S_API bool SteamAPI_ISteamScreenshots_IsScreenshotsHooked( ISteamScreenshots* self ); +S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary( ISteamScreenshots* self, EVRScreenshotType eType, const char * pchFilename, const char * pchVRFilename ); + +// ISteamMusic + +// A versioned accessor is exported by the library +S_API ISteamMusic *SteamAPI_SteamMusic_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMusic(), but using this ensures that you are using a matching library. +inline ISteamMusic *SteamAPI_SteamMusic() { return SteamAPI_SteamMusic_v001(); } +S_API bool SteamAPI_ISteamMusic_BIsEnabled( ISteamMusic* self ); +S_API bool SteamAPI_ISteamMusic_BIsPlaying( ISteamMusic* self ); +S_API AudioPlayback_Status SteamAPI_ISteamMusic_GetPlaybackStatus( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_Play( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_Pause( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_PlayPrevious( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_PlayNext( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_SetVolume( ISteamMusic* self, float flVolume ); +S_API float SteamAPI_ISteamMusic_GetVolume( ISteamMusic* self ); + +// ISteamMusicRemote + +// A versioned accessor is exported by the library +S_API ISteamMusicRemote *SteamAPI_SteamMusicRemote_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMusicRemote(), but using this ensures that you are using a matching library. +inline ISteamMusicRemote *SteamAPI_SteamMusicRemote() { return SteamAPI_SteamMusicRemote_v001(); } +S_API bool SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote( ISteamMusicRemote* self, const char * pchName ); +S_API bool SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_BActivationSuccess( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_SetDisplayName( ISteamMusicRemote* self, const char * pchDisplayName ); +S_API bool SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64( ISteamMusicRemote* self, void * pvBuffer, uint32 cbBufferLength ); +S_API bool SteamAPI_ISteamMusicRemote_EnablePlayPrevious( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnablePlayNext( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnableShuffled( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnableLooped( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnableQueue( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnablePlaylists( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus( ISteamMusicRemote* self, AudioPlayback_Status nStatus ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateShuffled( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateLooped( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateVolume( ISteamMusicRemote* self, float flValue ); +S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryWillChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable( ISteamMusicRemote* self, bool bAvailable ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText( ISteamMusicRemote* self, const char * pchText ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds( ISteamMusicRemote* self, int nValue ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt( ISteamMusicRemote* self, void * pvBuffer, uint32 cbBufferLength ); +S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryDidChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_QueueWillChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_ResetQueueEntries( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_SetQueueEntry( ISteamMusicRemote* self, int nID, int nPosition, const char * pchEntryText ); +S_API bool SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry( ISteamMusicRemote* self, int nID ); +S_API bool SteamAPI_ISteamMusicRemote_QueueDidChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_PlaylistWillChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_ResetPlaylistEntries( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_SetPlaylistEntry( ISteamMusicRemote* self, int nID, int nPosition, const char * pchEntryText ); +S_API bool SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry( ISteamMusicRemote* self, int nID ); +S_API bool SteamAPI_ISteamMusicRemote_PlaylistDidChange( ISteamMusicRemote* self ); + +// ISteamHTTP + +// A versioned accessor is exported by the library +S_API ISteamHTTP *SteamAPI_SteamHTTP_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamHTTP(), but using this ensures that you are using a matching library. +inline ISteamHTTP *SteamAPI_SteamHTTP() { return SteamAPI_SteamHTTP_v003(); } + +// A versioned accessor is exported by the library +S_API ISteamHTTP *SteamAPI_SteamGameServerHTTP_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerHTTP(), but using this ensures that you are using a matching library. +inline ISteamHTTP *SteamAPI_SteamGameServerHTTP() { return SteamAPI_SteamGameServerHTTP_v003(); } +S_API HTTPRequestHandle SteamAPI_ISteamHTTP_CreateHTTPRequest( ISteamHTTP* self, EHTTPMethod eHTTPRequestMethod, const char * pchAbsoluteURL ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestContextValue( ISteamHTTP* self, HTTPRequestHandle hRequest, uint64 ulContextValue ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 unTimeoutSeconds ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchHeaderName, const char * pchHeaderValue ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchParamName, const char * pchParamValue ); +S_API bool SteamAPI_ISteamHTTP_SendHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle ); +S_API bool SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse( ISteamHTTP* self, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle ); +S_API bool SteamAPI_ISteamHTTP_DeferHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest ); +S_API bool SteamAPI_ISteamHTTP_PrioritizeHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchHeaderName, uint32 * unResponseHeaderSize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchHeaderName, uint8 * pHeaderValueBuffer, uint32 unBufferSize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodySize( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 * unBodySize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodyData( ISteamHTTP* self, HTTPRequestHandle hRequest, uint8 * pBodyDataBuffer, uint32 unBufferSize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 cOffset, uint8 * pBodyDataBuffer, uint32 unBufferSize ); +S_API bool SteamAPI_ISteamHTTP_ReleaseHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct( ISteamHTTP* self, HTTPRequestHandle hRequest, float * pflPercentOut ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchContentType, uint8 * pubBody, uint32 unBodyLen ); +S_API HTTPCookieContainerHandle SteamAPI_ISteamHTTP_CreateCookieContainer( ISteamHTTP* self, bool bAllowResponsesToModify ); +S_API bool SteamAPI_ISteamHTTP_ReleaseCookieContainer( ISteamHTTP* self, HTTPCookieContainerHandle hCookieContainer ); +S_API bool SteamAPI_ISteamHTTP_SetCookie( ISteamHTTP* self, HTTPCookieContainerHandle hCookieContainer, const char * pchHost, const char * pchUrl, const char * pchCookie ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer( ISteamHTTP* self, HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchUserAgentInfo ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate( ISteamHTTP* self, HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 unMilliseconds ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut( ISteamHTTP* self, HTTPRequestHandle hRequest, bool * pbWasTimedOut ); + +// ISteamInput + +// A versioned accessor is exported by the library +S_API ISteamInput *SteamAPI_SteamInput_v006(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamInput(), but using this ensures that you are using a matching library. +inline ISteamInput *SteamAPI_SteamInput() { return SteamAPI_SteamInput_v006(); } +S_API bool SteamAPI_ISteamInput_Init( ISteamInput* self, bool bExplicitlyCallRunFrame ); +S_API bool SteamAPI_ISteamInput_Shutdown( ISteamInput* self ); +S_API bool SteamAPI_ISteamInput_SetInputActionManifestFilePath( ISteamInput* self, const char * pchInputActionManifestAbsolutePath ); +S_API void SteamAPI_ISteamInput_RunFrame( ISteamInput* self, bool bReservedValue ); +S_API bool SteamAPI_ISteamInput_BWaitForData( ISteamInput* self, bool bWaitForever, uint32 unTimeout ); +S_API bool SteamAPI_ISteamInput_BNewDataAvailable( ISteamInput* self ); +S_API int SteamAPI_ISteamInput_GetConnectedControllers( ISteamInput* self, InputHandle_t * handlesOut ); +S_API void SteamAPI_ISteamInput_EnableDeviceCallbacks( ISteamInput* self ); +S_API void SteamAPI_ISteamInput_EnableActionEventCallbacks( ISteamInput* self, SteamInputActionEventCallbackPointer pCallback ); +S_API InputActionSetHandle_t SteamAPI_ISteamInput_GetActionSetHandle( ISteamInput* self, const char * pszActionSetName ); +S_API void SteamAPI_ISteamInput_ActivateActionSet( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle ); +S_API InputActionSetHandle_t SteamAPI_ISteamInput_GetCurrentActionSet( ISteamInput* self, InputHandle_t inputHandle ); +S_API void SteamAPI_ISteamInput_ActivateActionSetLayer( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamInput_DeactivateActionSetLayer( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamInput_DeactivateAllActionSetLayers( ISteamInput* self, InputHandle_t inputHandle ); +S_API int SteamAPI_ISteamInput_GetActiveActionSetLayers( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t * handlesOut ); +S_API InputDigitalActionHandle_t SteamAPI_ISteamInput_GetDigitalActionHandle( ISteamInput* self, const char * pszActionName ); +S_API InputDigitalActionData_t SteamAPI_ISteamInput_GetDigitalActionData( ISteamInput* self, InputHandle_t inputHandle, InputDigitalActionHandle_t digitalActionHandle ); +S_API int SteamAPI_ISteamInput_GetDigitalActionOrigins( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, EInputActionOrigin * originsOut ); +S_API const char * SteamAPI_ISteamInput_GetStringForDigitalActionName( ISteamInput* self, InputDigitalActionHandle_t eActionHandle ); +S_API InputAnalogActionHandle_t SteamAPI_ISteamInput_GetAnalogActionHandle( ISteamInput* self, const char * pszActionName ); +S_API InputAnalogActionData_t SteamAPI_ISteamInput_GetAnalogActionData( ISteamInput* self, InputHandle_t inputHandle, InputAnalogActionHandle_t analogActionHandle ); +S_API int SteamAPI_ISteamInput_GetAnalogActionOrigins( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, EInputActionOrigin * originsOut ); +S_API const char * SteamAPI_ISteamInput_GetGlyphPNGForActionOrigin( ISteamInput* self, EInputActionOrigin eOrigin, ESteamInputGlyphSize eSize, uint32 unFlags ); +S_API const char * SteamAPI_ISteamInput_GetGlyphSVGForActionOrigin( ISteamInput* self, EInputActionOrigin eOrigin, uint32 unFlags ); +S_API const char * SteamAPI_ISteamInput_GetGlyphForActionOrigin_Legacy( ISteamInput* self, EInputActionOrigin eOrigin ); +S_API const char * SteamAPI_ISteamInput_GetStringForActionOrigin( ISteamInput* self, EInputActionOrigin eOrigin ); +S_API const char * SteamAPI_ISteamInput_GetStringForAnalogActionName( ISteamInput* self, InputAnalogActionHandle_t eActionHandle ); +S_API void SteamAPI_ISteamInput_StopAnalogActionMomentum( ISteamInput* self, InputHandle_t inputHandle, InputAnalogActionHandle_t eAction ); +S_API InputMotionData_t SteamAPI_ISteamInput_GetMotionData( ISteamInput* self, InputHandle_t inputHandle ); +S_API void SteamAPI_ISteamInput_TriggerVibration( ISteamInput* self, InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ); +S_API void SteamAPI_ISteamInput_TriggerVibrationExtended( ISteamInput* self, InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed, unsigned short usLeftTriggerSpeed, unsigned short usRightTriggerSpeed ); +S_API void SteamAPI_ISteamInput_TriggerSimpleHapticEvent( ISteamInput* self, InputHandle_t inputHandle, EControllerHapticLocation eHapticLocation, uint8 nIntensity, char nGainDB, uint8 nOtherIntensity, char nOtherGainDB ); +S_API void SteamAPI_ISteamInput_SetLEDColor( ISteamInput* self, InputHandle_t inputHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ); +S_API void SteamAPI_ISteamInput_Legacy_TriggerHapticPulse( ISteamInput* self, InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ); +S_API void SteamAPI_ISteamInput_Legacy_TriggerRepeatedHapticPulse( ISteamInput* self, InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ); +S_API bool SteamAPI_ISteamInput_ShowBindingPanel( ISteamInput* self, InputHandle_t inputHandle ); +S_API ESteamInputType SteamAPI_ISteamInput_GetInputTypeForHandle( ISteamInput* self, InputHandle_t inputHandle ); +S_API InputHandle_t SteamAPI_ISteamInput_GetControllerForGamepadIndex( ISteamInput* self, int nIndex ); +S_API int SteamAPI_ISteamInput_GetGamepadIndexForController( ISteamInput* self, InputHandle_t ulinputHandle ); +S_API const char * SteamAPI_ISteamInput_GetStringForXboxOrigin( ISteamInput* self, EXboxOrigin eOrigin ); +S_API const char * SteamAPI_ISteamInput_GetGlyphForXboxOrigin( ISteamInput* self, EXboxOrigin eOrigin ); +S_API EInputActionOrigin SteamAPI_ISteamInput_GetActionOriginFromXboxOrigin( ISteamInput* self, InputHandle_t inputHandle, EXboxOrigin eOrigin ); +S_API EInputActionOrigin SteamAPI_ISteamInput_TranslateActionOrigin( ISteamInput* self, ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin ); +S_API bool SteamAPI_ISteamInput_GetDeviceBindingRevision( ISteamInput* self, InputHandle_t inputHandle, int * pMajor, int * pMinor ); +S_API uint32 SteamAPI_ISteamInput_GetRemotePlaySessionID( ISteamInput* self, InputHandle_t inputHandle ); +S_API uint16 SteamAPI_ISteamInput_GetSessionInputConfigurationSettings( ISteamInput* self ); +S_API void SteamAPI_ISteamInput_SetDualSenseTriggerEffect( ISteamInput* self, InputHandle_t inputHandle, const ScePadTriggerEffectParam * pParam ); + +// ISteamController + +// A versioned accessor is exported by the library +S_API ISteamController *SteamAPI_SteamController_v008(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamController(), but using this ensures that you are using a matching library. +inline ISteamController *SteamAPI_SteamController() { return SteamAPI_SteamController_v008(); } +S_API bool SteamAPI_ISteamController_Init( ISteamController* self ); +S_API bool SteamAPI_ISteamController_Shutdown( ISteamController* self ); +S_API void SteamAPI_ISteamController_RunFrame( ISteamController* self ); +S_API int SteamAPI_ISteamController_GetConnectedControllers( ISteamController* self, ControllerHandle_t * handlesOut ); +S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetActionSetHandle( ISteamController* self, const char * pszActionSetName ); +S_API void SteamAPI_ISteamController_ActivateActionSet( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle ); +S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetCurrentActionSet( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API void SteamAPI_ISteamController_ActivateActionSetLayer( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamController_DeactivateActionSetLayer( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamController_DeactivateAllActionSetLayers( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API int SteamAPI_ISteamController_GetActiveActionSetLayers( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t * handlesOut ); +S_API ControllerDigitalActionHandle_t SteamAPI_ISteamController_GetDigitalActionHandle( ISteamController* self, const char * pszActionName ); +S_API InputDigitalActionData_t SteamAPI_ISteamController_GetDigitalActionData( ISteamController* self, ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle ); +S_API int SteamAPI_ISteamController_GetDigitalActionOrigins( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin * originsOut ); +S_API ControllerAnalogActionHandle_t SteamAPI_ISteamController_GetAnalogActionHandle( ISteamController* self, const char * pszActionName ); +S_API InputAnalogActionData_t SteamAPI_ISteamController_GetAnalogActionData( ISteamController* self, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle ); +S_API int SteamAPI_ISteamController_GetAnalogActionOrigins( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin * originsOut ); +S_API const char * SteamAPI_ISteamController_GetGlyphForActionOrigin( ISteamController* self, EControllerActionOrigin eOrigin ); +S_API const char * SteamAPI_ISteamController_GetStringForActionOrigin( ISteamController* self, EControllerActionOrigin eOrigin ); +S_API void SteamAPI_ISteamController_StopAnalogActionMomentum( ISteamController* self, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction ); +S_API InputMotionData_t SteamAPI_ISteamController_GetMotionData( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API void SteamAPI_ISteamController_TriggerHapticPulse( ISteamController* self, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ); +S_API void SteamAPI_ISteamController_TriggerRepeatedHapticPulse( ISteamController* self, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ); +S_API void SteamAPI_ISteamController_TriggerVibration( ISteamController* self, ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ); +S_API void SteamAPI_ISteamController_SetLEDColor( ISteamController* self, ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ); +S_API bool SteamAPI_ISteamController_ShowBindingPanel( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API ESteamInputType SteamAPI_ISteamController_GetInputTypeForHandle( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API ControllerHandle_t SteamAPI_ISteamController_GetControllerForGamepadIndex( ISteamController* self, int nIndex ); +S_API int SteamAPI_ISteamController_GetGamepadIndexForController( ISteamController* self, ControllerHandle_t ulControllerHandle ); +S_API const char * SteamAPI_ISteamController_GetStringForXboxOrigin( ISteamController* self, EXboxOrigin eOrigin ); +S_API const char * SteamAPI_ISteamController_GetGlyphForXboxOrigin( ISteamController* self, EXboxOrigin eOrigin ); +S_API EControllerActionOrigin SteamAPI_ISteamController_GetActionOriginFromXboxOrigin( ISteamController* self, ControllerHandle_t controllerHandle, EXboxOrigin eOrigin ); +S_API EControllerActionOrigin SteamAPI_ISteamController_TranslateActionOrigin( ISteamController* self, ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin ); +S_API bool SteamAPI_ISteamController_GetControllerBindingRevision( ISteamController* self, ControllerHandle_t controllerHandle, int * pMajor, int * pMinor ); + +// ISteamUGC + +// A versioned accessor is exported by the library +S_API ISteamUGC *SteamAPI_SteamUGC_v018(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUGC(), but using this ensures that you are using a matching library. +inline ISteamUGC *SteamAPI_SteamUGC() { return SteamAPI_SteamUGC_v018(); } + +// A versioned accessor is exported by the library +S_API ISteamUGC *SteamAPI_SteamGameServerUGC_v018(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerUGC(), but using this ensures that you are using a matching library. +inline ISteamUGC *SteamAPI_SteamGameServerUGC() { return SteamAPI_SteamGameServerUGC_v018(); } +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUserUGCRequest( ISteamUGC* self, AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ); +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage( ISteamUGC* self, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ); +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor( ISteamUGC* self, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, const char * pchCursor ); +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SendQueryUGCRequest( ISteamUGC* self, UGCQueryHandle_t handle ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCResult( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, SteamUGCDetails_t * pDetails ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumTags( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 indexTag, char * pchValue, uint32 cchValueSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 indexTag, char * pchValue, uint32 cchValueSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCPreviewURL( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, char * pchURL, uint32 cchURLSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCMetadata( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, char * pchMetadata, uint32 cchMetadatasize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCChildren( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCStatistic( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 * pStatValue ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, char * pchURLOrVideoID, uint32 cchURLSize, char * pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType * pPreviewType ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, char * pchKey, uint32 cchKeySize, char * pchValue, uint32 cchValueSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryFirstUGCKeyValueTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, const char * pchKey, char * pchValue, uint32 cchValueSize ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCContentDescriptors( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, EUGCContentDescriptorID * pvecDescriptors, uint32 cMaxEntries ); +S_API bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest( ISteamUGC* self, UGCQueryHandle_t handle ); +S_API bool SteamAPI_ISteamUGC_AddRequiredTag( ISteamUGC* self, UGCQueryHandle_t handle, const char * pTagName ); +S_API bool SteamAPI_ISteamUGC_AddRequiredTagGroup( ISteamUGC* self, UGCQueryHandle_t handle, const SteamParamStringArray_t * pTagGroups ); +S_API bool SteamAPI_ISteamUGC_AddExcludedTag( ISteamUGC* self, UGCQueryHandle_t handle, const char * pTagName ); +S_API bool SteamAPI_ISteamUGC_SetReturnOnlyIDs( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnOnlyIDs ); +S_API bool SteamAPI_ISteamUGC_SetReturnKeyValueTags( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnKeyValueTags ); +S_API bool SteamAPI_ISteamUGC_SetReturnLongDescription( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnLongDescription ); +S_API bool SteamAPI_ISteamUGC_SetReturnMetadata( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnMetadata ); +S_API bool SteamAPI_ISteamUGC_SetReturnChildren( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnChildren ); +S_API bool SteamAPI_ISteamUGC_SetReturnAdditionalPreviews( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnAdditionalPreviews ); +S_API bool SteamAPI_ISteamUGC_SetReturnTotalOnly( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnTotalOnly ); +S_API bool SteamAPI_ISteamUGC_SetReturnPlaytimeStats( ISteamUGC* self, UGCQueryHandle_t handle, uint32 unDays ); +S_API bool SteamAPI_ISteamUGC_SetLanguage( ISteamUGC* self, UGCQueryHandle_t handle, const char * pchLanguage ); +S_API bool SteamAPI_ISteamUGC_SetAllowCachedResponse( ISteamUGC* self, UGCQueryHandle_t handle, uint32 unMaxAgeSeconds ); +S_API bool SteamAPI_ISteamUGC_SetCloudFileNameFilter( ISteamUGC* self, UGCQueryHandle_t handle, const char * pMatchCloudFileName ); +S_API bool SteamAPI_ISteamUGC_SetMatchAnyTag( ISteamUGC* self, UGCQueryHandle_t handle, bool bMatchAnyTag ); +S_API bool SteamAPI_ISteamUGC_SetSearchText( ISteamUGC* self, UGCQueryHandle_t handle, const char * pSearchText ); +S_API bool SteamAPI_ISteamUGC_SetRankedByTrendDays( ISteamUGC* self, UGCQueryHandle_t handle, uint32 unDays ); +S_API bool SteamAPI_ISteamUGC_SetTimeCreatedDateRange( ISteamUGC* self, UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ); +S_API bool SteamAPI_ISteamUGC_SetTimeUpdatedDateRange( ISteamUGC* self, UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ); +S_API bool SteamAPI_ISteamUGC_AddRequiredKeyValueTag( ISteamUGC* self, UGCQueryHandle_t handle, const char * pKey, const char * pValue ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RequestUGCDetails( ISteamUGC* self, PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_CreateItem( ISteamUGC* self, AppId_t nConsumerAppId, EWorkshopFileType eFileType ); +S_API UGCUpdateHandle_t SteamAPI_ISteamUGC_StartItemUpdate( ISteamUGC* self, AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID ); +S_API bool SteamAPI_ISteamUGC_SetItemTitle( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchTitle ); +S_API bool SteamAPI_ISteamUGC_SetItemDescription( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchDescription ); +S_API bool SteamAPI_ISteamUGC_SetItemUpdateLanguage( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchLanguage ); +S_API bool SteamAPI_ISteamUGC_SetItemMetadata( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchMetaData ); +S_API bool SteamAPI_ISteamUGC_SetItemVisibility( ISteamUGC* self, UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility ); +S_API bool SteamAPI_ISteamUGC_SetItemTags( ISteamUGC* self, UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t * pTags, bool bAllowAdminTags ); +S_API bool SteamAPI_ISteamUGC_SetItemContent( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszContentFolder ); +S_API bool SteamAPI_ISteamUGC_SetItemPreview( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszPreviewFile ); +S_API bool SteamAPI_ISteamUGC_SetAllowLegacyUpload( ISteamUGC* self, UGCUpdateHandle_t handle, bool bAllowLegacyUpload ); +S_API bool SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags( ISteamUGC* self, UGCUpdateHandle_t handle ); +S_API bool SteamAPI_ISteamUGC_RemoveItemKeyValueTags( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchKey ); +S_API bool SteamAPI_ISteamUGC_AddItemKeyValueTag( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchKey, const char * pchValue ); +S_API bool SteamAPI_ISteamUGC_AddItemPreviewFile( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszPreviewFile, EItemPreviewType type ); +S_API bool SteamAPI_ISteamUGC_AddItemPreviewVideo( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszVideoID ); +S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewFile( ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index, const char * pszPreviewFile ); +S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewVideo( ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index, const char * pszVideoID ); +S_API bool SteamAPI_ISteamUGC_RemoveItemPreview( ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_AddContentDescriptor( ISteamUGC* self, UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ); +S_API bool SteamAPI_ISteamUGC_RemoveContentDescriptor( ISteamUGC* self, UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SubmitItemUpdate( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchChangeNote ); +S_API EItemUpdateStatus SteamAPI_ISteamUGC_GetItemUpdateProgress( ISteamUGC* self, UGCUpdateHandle_t handle, uint64 * punBytesProcessed, uint64 * punBytesTotal ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SetUserItemVote( ISteamUGC* self, PublishedFileId_t nPublishedFileID, bool bVoteUp ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_GetUserItemVote( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_AddItemToFavorites( ISteamUGC* self, AppId_t nAppId, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveItemFromFavorites( ISteamUGC* self, AppId_t nAppId, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SubscribeItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_UnsubscribeItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API uint32 SteamAPI_ISteamUGC_GetNumSubscribedItems( ISteamUGC* self ); +S_API uint32 SteamAPI_ISteamUGC_GetSubscribedItems( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries ); +S_API uint32 SteamAPI_ISteamUGC_GetItemState( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API bool SteamAPI_ISteamUGC_GetItemInstallInfo( ISteamUGC* self, PublishedFileId_t nPublishedFileID, uint64 * punSizeOnDisk, char * pchFolder, uint32 cchFolderSize, uint32 * punTimeStamp ); +S_API bool SteamAPI_ISteamUGC_GetItemDownloadInfo( ISteamUGC* self, PublishedFileId_t nPublishedFileID, uint64 * punBytesDownloaded, uint64 * punBytesTotal ); +S_API bool SteamAPI_ISteamUGC_DownloadItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID, bool bHighPriority ); +S_API bool SteamAPI_ISteamUGC_BInitWorkshopForGameServer( ISteamUGC* self, DepotId_t unWorkshopDepotID, const char * pszFolder ); +S_API void SteamAPI_ISteamUGC_SuspendDownloads( ISteamUGC* self, bool bSuspend ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_StartPlaytimeTracking( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTracking( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems( ISteamUGC* self ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_AddDependency( ISteamUGC* self, PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveDependency( ISteamUGC* self, PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_AddAppDependency( ISteamUGC* self, PublishedFileId_t nPublishedFileID, AppId_t nAppID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveAppDependency( ISteamUGC* self, PublishedFileId_t nPublishedFileID, AppId_t nAppID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_GetAppDependencies( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_DeleteItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API bool SteamAPI_ISteamUGC_ShowWorkshopEULA( ISteamUGC* self ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_GetWorkshopEULAStatus( ISteamUGC* self ); +S_API uint32 SteamAPI_ISteamUGC_GetUserContentDescriptorPreferences( ISteamUGC* self, EUGCContentDescriptorID * pvecDescriptors, uint32 cMaxEntries ); + +// ISteamHTMLSurface + +// A versioned accessor is exported by the library +S_API ISteamHTMLSurface *SteamAPI_SteamHTMLSurface_v005(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamHTMLSurface(), but using this ensures that you are using a matching library. +inline ISteamHTMLSurface *SteamAPI_SteamHTMLSurface() { return SteamAPI_SteamHTMLSurface_v005(); } +S_API bool SteamAPI_ISteamHTMLSurface_Init( ISteamHTMLSurface* self ); +S_API bool SteamAPI_ISteamHTMLSurface_Shutdown( ISteamHTMLSurface* self ); +S_API SteamAPICall_t SteamAPI_ISteamHTMLSurface_CreateBrowser( ISteamHTMLSurface* self, const char * pchUserAgent, const char * pchUserCSS ); +S_API void SteamAPI_ISteamHTMLSurface_RemoveBrowser( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_LoadURL( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchURL, const char * pchPostData ); +S_API void SteamAPI_ISteamHTMLSurface_SetSize( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 unWidth, uint32 unHeight ); +S_API void SteamAPI_ISteamHTMLSurface_StopLoad( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_Reload( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_GoBack( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_GoForward( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_AddHeader( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchKey, const char * pchValue ); +S_API void SteamAPI_ISteamHTMLSurface_ExecuteJavascript( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchScript ); +S_API void SteamAPI_ISteamHTMLSurface_MouseUp( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton ); +S_API void SteamAPI_ISteamHTMLSurface_MouseDown( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton ); +S_API void SteamAPI_ISteamHTMLSurface_MouseDoubleClick( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton ); +S_API void SteamAPI_ISteamHTMLSurface_MouseMove( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, int x, int y ); +S_API void SteamAPI_ISteamHTMLSurface_MouseWheel( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, int32 nDelta ); +S_API void SteamAPI_ISteamHTMLSurface_KeyDown( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers, bool bIsSystemKey ); +S_API void SteamAPI_ISteamHTMLSurface_KeyUp( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers ); +S_API void SteamAPI_ISteamHTMLSurface_KeyChar( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers ); +S_API void SteamAPI_ISteamHTMLSurface_SetHorizontalScroll( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll ); +S_API void SteamAPI_ISteamHTMLSurface_SetVerticalScroll( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll ); +S_API void SteamAPI_ISteamHTMLSurface_SetKeyFocus( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bHasKeyFocus ); +S_API void SteamAPI_ISteamHTMLSurface_ViewSource( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_CopyToClipboard( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_PasteFromClipboard( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_Find( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchSearchStr, bool bCurrentlyInFind, bool bReverse ); +S_API void SteamAPI_ISteamHTMLSurface_StopFind( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_GetLinkAtPosition( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, int x, int y ); +S_API void SteamAPI_ISteamHTMLSurface_SetCookie( ISteamHTMLSurface* self, const char * pchHostname, const char * pchKey, const char * pchValue, const char * pchPath, RTime32 nExpires, bool bSecure, bool bHTTPOnly ); +S_API void SteamAPI_ISteamHTMLSurface_SetPageScaleFactor( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY ); +S_API void SteamAPI_ISteamHTMLSurface_SetBackgroundMode( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bBackgroundMode ); +S_API void SteamAPI_ISteamHTMLSurface_SetDPIScalingFactor( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, float flDPIScaling ); +S_API void SteamAPI_ISteamHTMLSurface_OpenDeveloperTools( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_AllowStartRequest( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bAllowed ); +S_API void SteamAPI_ISteamHTMLSurface_JSDialogResponse( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bResult ); +S_API void SteamAPI_ISteamHTMLSurface_FileLoadDialogResponse( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char ** pchSelectedFiles ); + +// ISteamInventory + +// A versioned accessor is exported by the library +S_API ISteamInventory *SteamAPI_SteamInventory_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamInventory(), but using this ensures that you are using a matching library. +inline ISteamInventory *SteamAPI_SteamInventory() { return SteamAPI_SteamInventory_v003(); } + +// A versioned accessor is exported by the library +S_API ISteamInventory *SteamAPI_SteamGameServerInventory_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerInventory(), but using this ensures that you are using a matching library. +inline ISteamInventory *SteamAPI_SteamGameServerInventory() { return SteamAPI_SteamGameServerInventory_v003(); } +S_API EResult SteamAPI_ISteamInventory_GetResultStatus( ISteamInventory* self, SteamInventoryResult_t resultHandle ); +S_API bool SteamAPI_ISteamInventory_GetResultItems( ISteamInventory* self, SteamInventoryResult_t resultHandle, SteamItemDetails_t * pOutItemsArray, uint32 * punOutItemsArraySize ); +S_API bool SteamAPI_ISteamInventory_GetResultItemProperty( ISteamInventory* self, SteamInventoryResult_t resultHandle, uint32 unItemIndex, const char * pchPropertyName, char * pchValueBuffer, uint32 * punValueBufferSizeOut ); +S_API uint32 SteamAPI_ISteamInventory_GetResultTimestamp( ISteamInventory* self, SteamInventoryResult_t resultHandle ); +S_API bool SteamAPI_ISteamInventory_CheckResultSteamID( ISteamInventory* self, SteamInventoryResult_t resultHandle, uint64_steamid steamIDExpected ); +S_API void SteamAPI_ISteamInventory_DestroyResult( ISteamInventory* self, SteamInventoryResult_t resultHandle ); +S_API bool SteamAPI_ISteamInventory_GetAllItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle ); +S_API bool SteamAPI_ISteamInventory_GetItemsByID( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemInstanceID_t * pInstanceIDs, uint32 unCountInstanceIDs ); +S_API bool SteamAPI_ISteamInventory_SerializeResult( ISteamInventory* self, SteamInventoryResult_t resultHandle, void * pOutBuffer, uint32 * punOutBufferSize ); +S_API bool SteamAPI_ISteamInventory_DeserializeResult( ISteamInventory* self, SteamInventoryResult_t * pOutResultHandle, const void * pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE ); +S_API bool SteamAPI_ISteamInventory_GenerateItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, const uint32 * punArrayQuantity, uint32 unArrayLength ); +S_API bool SteamAPI_ISteamInventory_GrantPromoItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle ); +S_API bool SteamAPI_ISteamInventory_AddPromoItem( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemDef_t itemDef ); +S_API bool SteamAPI_ISteamInventory_AddPromoItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, uint32 unArrayLength ); +S_API bool SteamAPI_ISteamInventory_ConsumeItem( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemConsume, uint32 unQuantity ); +S_API bool SteamAPI_ISteamInventory_ExchangeItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayGenerate, const uint32 * punArrayGenerateQuantity, uint32 unArrayGenerateLength, const SteamItemInstanceID_t * pArrayDestroy, const uint32 * punArrayDestroyQuantity, uint32 unArrayDestroyLength ); +S_API bool SteamAPI_ISteamInventory_TransferItemQuantity( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemIdSource, uint32 unQuantity, SteamItemInstanceID_t itemIdDest ); +S_API void SteamAPI_ISteamInventory_SendItemDropHeartbeat( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_TriggerItemDrop( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemDef_t dropListDefinition ); +S_API bool SteamAPI_ISteamInventory_TradeItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, uint64_steamid steamIDTradePartner, const SteamItemInstanceID_t * pArrayGive, const uint32 * pArrayGiveQuantity, uint32 nArrayGiveLength, const SteamItemInstanceID_t * pArrayGet, const uint32 * pArrayGetQuantity, uint32 nArrayGetLength ); +S_API bool SteamAPI_ISteamInventory_LoadItemDefinitions( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_GetItemDefinitionIDs( ISteamInventory* self, SteamItemDef_t * pItemDefIDs, uint32 * punItemDefIDsArraySize ); +S_API bool SteamAPI_ISteamInventory_GetItemDefinitionProperty( ISteamInventory* self, SteamItemDef_t iDefinition, const char * pchPropertyName, char * pchValueBuffer, uint32 * punValueBufferSizeOut ); +S_API SteamAPICall_t SteamAPI_ISteamInventory_RequestEligiblePromoItemDefinitionsIDs( ISteamInventory* self, uint64_steamid steamID ); +S_API bool SteamAPI_ISteamInventory_GetEligiblePromoItemDefinitionIDs( ISteamInventory* self, uint64_steamid steamID, SteamItemDef_t * pItemDefIDs, uint32 * punItemDefIDsArraySize ); +S_API SteamAPICall_t SteamAPI_ISteamInventory_StartPurchase( ISteamInventory* self, const SteamItemDef_t * pArrayItemDefs, const uint32 * punArrayQuantity, uint32 unArrayLength ); +S_API SteamAPICall_t SteamAPI_ISteamInventory_RequestPrices( ISteamInventory* self ); +S_API uint32 SteamAPI_ISteamInventory_GetNumItemsWithPrices( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_GetItemsWithPrices( ISteamInventory* self, SteamItemDef_t * pArrayItemDefs, uint64 * pCurrentPrices, uint64 * pBasePrices, uint32 unArrayLength ); +S_API bool SteamAPI_ISteamInventory_GetItemPrice( ISteamInventory* self, SteamItemDef_t iDefinition, uint64 * pCurrentPrice, uint64 * pBasePrice ); +S_API SteamInventoryUpdateHandle_t SteamAPI_ISteamInventory_StartUpdateProperties( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_RemoveProperty( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName ); +S_API bool SteamAPI_ISteamInventory_SetPropertyString( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, const char * pchPropertyValue ); +S_API bool SteamAPI_ISteamInventory_SetPropertyBool( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, bool bValue ); +S_API bool SteamAPI_ISteamInventory_SetPropertyInt64( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, int64 nValue ); +S_API bool SteamAPI_ISteamInventory_SetPropertyFloat( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, float flValue ); +S_API bool SteamAPI_ISteamInventory_SubmitUpdateProperties( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamInventoryResult_t * pResultHandle ); +S_API bool SteamAPI_ISteamInventory_InspectItem( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const char * pchItemToken ); + +// ISteamVideo + +// A versioned accessor is exported by the library +S_API ISteamVideo *SteamAPI_SteamVideo_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamVideo(), but using this ensures that you are using a matching library. +inline ISteamVideo *SteamAPI_SteamVideo() { return SteamAPI_SteamVideo_v002(); } +S_API void SteamAPI_ISteamVideo_GetVideoURL( ISteamVideo* self, AppId_t unVideoAppID ); +S_API bool SteamAPI_ISteamVideo_IsBroadcasting( ISteamVideo* self, int * pnNumViewers ); +S_API void SteamAPI_ISteamVideo_GetOPFSettings( ISteamVideo* self, AppId_t unVideoAppID ); +S_API bool SteamAPI_ISteamVideo_GetOPFStringForApp( ISteamVideo* self, AppId_t unVideoAppID, char * pchBuffer, int32 * pnBufferSize ); + +// ISteamParentalSettings + +// A versioned accessor is exported by the library +S_API ISteamParentalSettings *SteamAPI_SteamParentalSettings_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamParentalSettings(), but using this ensures that you are using a matching library. +inline ISteamParentalSettings *SteamAPI_SteamParentalSettings() { return SteamAPI_SteamParentalSettings_v001(); } +S_API bool SteamAPI_ISteamParentalSettings_BIsParentalLockEnabled( ISteamParentalSettings* self ); +S_API bool SteamAPI_ISteamParentalSettings_BIsParentalLockLocked( ISteamParentalSettings* self ); +S_API bool SteamAPI_ISteamParentalSettings_BIsAppBlocked( ISteamParentalSettings* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamParentalSettings_BIsAppInBlockList( ISteamParentalSettings* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamParentalSettings_BIsFeatureBlocked( ISteamParentalSettings* self, EParentalFeature eFeature ); +S_API bool SteamAPI_ISteamParentalSettings_BIsFeatureInBlockList( ISteamParentalSettings* self, EParentalFeature eFeature ); + +// ISteamRemotePlay + +// A versioned accessor is exported by the library +S_API ISteamRemotePlay *SteamAPI_SteamRemotePlay_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamRemotePlay(), but using this ensures that you are using a matching library. +inline ISteamRemotePlay *SteamAPI_SteamRemotePlay() { return SteamAPI_SteamRemotePlay_v002(); } +S_API uint32 SteamAPI_ISteamRemotePlay_GetSessionCount( ISteamRemotePlay* self ); +S_API RemotePlaySessionID_t SteamAPI_ISteamRemotePlay_GetSessionID( ISteamRemotePlay* self, int iSessionIndex ); +S_API uint64_steamid SteamAPI_ISteamRemotePlay_GetSessionSteamID( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API const char * SteamAPI_ISteamRemotePlay_GetSessionClientName( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API ESteamDeviceFormFactor SteamAPI_ISteamRemotePlay_GetSessionClientFormFactor( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API bool SteamAPI_ISteamRemotePlay_BGetSessionClientResolution( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID, int * pnResolutionX, int * pnResolutionY ); +S_API bool SteamAPI_ISteamRemotePlay_BStartRemotePlayTogether( ISteamRemotePlay* self, bool bShowOverlay ); +S_API bool SteamAPI_ISteamRemotePlay_BSendRemotePlayTogetherInvite( ISteamRemotePlay* self, uint64_steamid steamIDFriend ); + +// ISteamNetworkingMessages + +// A versioned accessor is exported by the library +S_API ISteamNetworkingMessages *SteamAPI_SteamNetworkingMessages_SteamAPI_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworkingMessages_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingMessages *SteamAPI_SteamNetworkingMessages_SteamAPI() { return SteamAPI_SteamNetworkingMessages_SteamAPI_v002(); } + +// A versioned accessor is exported by the library +S_API ISteamNetworkingMessages *SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerNetworkingMessages_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingMessages *SteamAPI_SteamGameServerNetworkingMessages_SteamAPI() { return SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002(); } +S_API EResult SteamAPI_ISteamNetworkingMessages_SendMessageToUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, const void * pubData, uint32 cubData, int nSendFlags, int nRemoteChannel ); +S_API int SteamAPI_ISteamNetworkingMessages_ReceiveMessagesOnChannel( ISteamNetworkingMessages* self, int nLocalChannel, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API bool SteamAPI_ISteamNetworkingMessages_AcceptSessionWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote ); +S_API bool SteamAPI_ISteamNetworkingMessages_CloseSessionWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote ); +S_API bool SteamAPI_ISteamNetworkingMessages_CloseChannelWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, int nLocalChannel ); +S_API ESteamNetworkingConnectionState SteamAPI_ISteamNetworkingMessages_GetSessionConnectionInfo( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, SteamNetConnectionInfo_t * pConnectionInfo, SteamNetConnectionRealTimeStatus_t * pQuickStatus ); + +// ISteamNetworkingSockets + +// A versioned accessor is exported by the library +S_API ISteamNetworkingSockets *SteamAPI_SteamNetworkingSockets_SteamAPI_v012(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworkingSockets_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingSockets *SteamAPI_SteamNetworkingSockets_SteamAPI() { return SteamAPI_SteamNetworkingSockets_SteamAPI_v012(); } + +// A versioned accessor is exported by the library +S_API ISteamNetworkingSockets *SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v012(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerNetworkingSockets_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingSockets *SteamAPI_SteamGameServerNetworkingSockets_SteamAPI() { return SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v012(); } +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketIP( ISteamNetworkingSockets* self, const SteamNetworkingIPAddr & localAddress, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectByIPAddress( ISteamNetworkingSockets* self, const SteamNetworkingIPAddr & address, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2P( ISteamNetworkingSockets* self, int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectP2P( ISteamNetworkingSockets* self, const SteamNetworkingIdentity & identityRemote, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API EResult SteamAPI_ISteamNetworkingSockets_AcceptConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn ); +S_API bool SteamAPI_ISteamNetworkingSockets_CloseConnection( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, int nReason, const char * pszDebug, bool bEnableLinger ); +S_API bool SteamAPI_ISteamNetworkingSockets_CloseListenSocket( ISteamNetworkingSockets* self, HSteamListenSocket hSocket ); +S_API bool SteamAPI_ISteamNetworkingSockets_SetConnectionUserData( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, int64 nUserData ); +S_API int64 SteamAPI_ISteamNetworkingSockets_GetConnectionUserData( ISteamNetworkingSockets* self, HSteamNetConnection hPeer ); +S_API void SteamAPI_ISteamNetworkingSockets_SetConnectionName( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, const char * pszName ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetConnectionName( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, char * pszName, int nMaxLen ); +S_API EResult SteamAPI_ISteamNetworkingSockets_SendMessageToConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn, const void * pData, uint32 cbData, int nSendFlags, int64 * pOutMessageNumber ); +S_API void SteamAPI_ISteamNetworkingSockets_SendMessages( ISteamNetworkingSockets* self, int nMessages, SteamNetworkingMessage_t *const * pMessages, int64 * pOutMessageNumberOrResult ); +S_API EResult SteamAPI_ISteamNetworkingSockets_FlushMessagesOnConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn ); +S_API int SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetConnectionInfo( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetConnectionInfo_t * pInfo ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetConnectionRealTimeStatus( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetConnectionRealTimeStatus_t * pStatus, int nLanes, SteamNetConnectionRealTimeLaneStatus_t * pLanes ); +S_API int SteamAPI_ISteamNetworkingSockets_GetDetailedConnectionStatus( ISteamNetworkingSockets* self, HSteamNetConnection hConn, char * pszBuf, int cbBuf ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetListenSocketAddress( ISteamNetworkingSockets* self, HSteamListenSocket hSocket, SteamNetworkingIPAddr * address ); +S_API bool SteamAPI_ISteamNetworkingSockets_CreateSocketPair( ISteamNetworkingSockets* self, HSteamNetConnection * pOutConnection1, HSteamNetConnection * pOutConnection2, bool bUseNetworkLoopback, const SteamNetworkingIdentity * pIdentity1, const SteamNetworkingIdentity * pIdentity2 ); +S_API EResult SteamAPI_ISteamNetworkingSockets_ConfigureConnectionLanes( ISteamNetworkingSockets* self, HSteamNetConnection hConn, int nNumLanes, const int * pLanePriorities, const uint16 * pLaneWeights ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetIdentity( ISteamNetworkingSockets* self, SteamNetworkingIdentity * pIdentity ); +S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingSockets_InitAuthentication( ISteamNetworkingSockets* self ); +S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingSockets_GetAuthenticationStatus( ISteamNetworkingSockets* self, SteamNetAuthenticationStatus_t * pDetails ); +S_API HSteamNetPollGroup SteamAPI_ISteamNetworkingSockets_CreatePollGroup( ISteamNetworkingSockets* self ); +S_API bool SteamAPI_ISteamNetworkingSockets_DestroyPollGroup( ISteamNetworkingSockets* self, HSteamNetPollGroup hPollGroup ); +S_API bool SteamAPI_ISteamNetworkingSockets_SetConnectionPollGroup( ISteamNetworkingSockets* self, HSteamNetConnection hConn, HSteamNetPollGroup hPollGroup ); +S_API int SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnPollGroup( ISteamNetworkingSockets* self, HSteamNetPollGroup hPollGroup, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API bool SteamAPI_ISteamNetworkingSockets_ReceivedRelayAuthTicket( ISteamNetworkingSockets* self, const void * pvTicket, int cbTicket, SteamDatagramRelayAuthTicket * pOutParsedTicket ); +S_API int SteamAPI_ISteamNetworkingSockets_FindRelayAuthTicketForServer( ISteamNetworkingSockets* self, const SteamNetworkingIdentity & identityGameServer, int nRemoteVirtualPort, SteamDatagramRelayAuthTicket * pOutParsedTicket ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectToHostedDedicatedServer( ISteamNetworkingSockets* self, const SteamNetworkingIdentity & identityTarget, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API uint16 SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPort( ISteamNetworkingSockets* self ); +S_API SteamNetworkingPOPID SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPOPID( ISteamNetworkingSockets* self ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerAddress( ISteamNetworkingSockets* self, SteamDatagramHostedAddress * pRouting ); +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket( ISteamNetworkingSockets* self, int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetGameCoordinatorServerLogin( ISteamNetworkingSockets* self, SteamDatagramGameCoordinatorServerLogin * pLoginInfo, int * pcbSignedBlob, void * pBlob ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectP2PCustomSignaling( ISteamNetworkingSockets* self, ISteamNetworkingConnectionSignaling * pSignaling, const SteamNetworkingIdentity * pPeerIdentity, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API bool SteamAPI_ISteamNetworkingSockets_ReceivedP2PCustomSignal( ISteamNetworkingSockets* self, const void * pMsg, int cbMsg, ISteamNetworkingSignalingRecvContext * pContext ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetCertificateRequest( ISteamNetworkingSockets* self, int * pcbBlob, void * pBlob, SteamNetworkingErrMsg & errMsg ); +S_API bool SteamAPI_ISteamNetworkingSockets_SetCertificate( ISteamNetworkingSockets* self, const void * pCertificate, int cbCertificate, SteamNetworkingErrMsg & errMsg ); +S_API void SteamAPI_ISteamNetworkingSockets_ResetIdentity( ISteamNetworkingSockets* self, const SteamNetworkingIdentity * pIdentity ); +S_API void SteamAPI_ISteamNetworkingSockets_RunCallbacks( ISteamNetworkingSockets* self ); +S_API bool SteamAPI_ISteamNetworkingSockets_BeginAsyncRequestFakeIP( ISteamNetworkingSockets* self, int nNumPorts ); +S_API void SteamAPI_ISteamNetworkingSockets_GetFakeIP( ISteamNetworkingSockets* self, int idxFirstPort, SteamNetworkingFakeIPResult_t * pInfo ); +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2PFakeIP( ISteamNetworkingSockets* self, int idxFakePort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetRemoteFakeIPForConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetworkingIPAddr * pOutAddr ); +S_API ISteamNetworkingFakeUDPPort * SteamAPI_ISteamNetworkingSockets_CreateFakeUDPPort( ISteamNetworkingSockets* self, int idxFakeServerPort ); + +// ISteamNetworkingUtils + +// A versioned accessor is exported by the library +S_API ISteamNetworkingUtils *SteamAPI_SteamNetworkingUtils_SteamAPI_v004(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworkingUtils_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingUtils *SteamAPI_SteamNetworkingUtils_SteamAPI() { return SteamAPI_SteamNetworkingUtils_SteamAPI_v004(); } +S_API SteamNetworkingMessage_t * SteamAPI_ISteamNetworkingUtils_AllocateMessage( ISteamNetworkingUtils* self, int cbAllocateBuffer ); +S_API void SteamAPI_ISteamNetworkingUtils_InitRelayNetworkAccess( ISteamNetworkingUtils* self ); +S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingUtils_GetRelayNetworkStatus( ISteamNetworkingUtils* self, SteamRelayNetworkStatus_t * pDetails ); +S_API float SteamAPI_ISteamNetworkingUtils_GetLocalPingLocation( ISteamNetworkingUtils* self, SteamNetworkPingLocation_t & result ); +S_API int SteamAPI_ISteamNetworkingUtils_EstimatePingTimeBetweenTwoLocations( ISteamNetworkingUtils* self, const SteamNetworkPingLocation_t & location1, const SteamNetworkPingLocation_t & location2 ); +S_API int SteamAPI_ISteamNetworkingUtils_EstimatePingTimeFromLocalHost( ISteamNetworkingUtils* self, const SteamNetworkPingLocation_t & remoteLocation ); +S_API void SteamAPI_ISteamNetworkingUtils_ConvertPingLocationToString( ISteamNetworkingUtils* self, const SteamNetworkPingLocation_t & location, char * pszBuf, int cchBufSize ); +S_API bool SteamAPI_ISteamNetworkingUtils_ParsePingLocationString( ISteamNetworkingUtils* self, const char * pszString, SteamNetworkPingLocation_t & result ); +S_API bool SteamAPI_ISteamNetworkingUtils_CheckPingDataUpToDate( ISteamNetworkingUtils* self, float flMaxAgeSeconds ); +S_API int SteamAPI_ISteamNetworkingUtils_GetPingToDataCenter( ISteamNetworkingUtils* self, SteamNetworkingPOPID popID, SteamNetworkingPOPID * pViaRelayPoP ); +S_API int SteamAPI_ISteamNetworkingUtils_GetDirectPingToPOP( ISteamNetworkingUtils* self, SteamNetworkingPOPID popID ); +S_API int SteamAPI_ISteamNetworkingUtils_GetPOPCount( ISteamNetworkingUtils* self ); +S_API int SteamAPI_ISteamNetworkingUtils_GetPOPList( ISteamNetworkingUtils* self, SteamNetworkingPOPID * list, int nListSz ); +S_API SteamNetworkingMicroseconds SteamAPI_ISteamNetworkingUtils_GetLocalTimestamp( ISteamNetworkingUtils* self ); +S_API void SteamAPI_ISteamNetworkingUtils_SetDebugOutputFunction( ISteamNetworkingUtils* self, ESteamNetworkingSocketsDebugOutputType eDetailLevel, FSteamNetworkingSocketsDebugOutput pfnFunc ); +S_API bool SteamAPI_ISteamNetworkingUtils_IsFakeIPv4( ISteamNetworkingUtils* self, uint32 nIPv4 ); +S_API ESteamNetworkingFakeIPType SteamAPI_ISteamNetworkingUtils_GetIPv4FakeIPType( ISteamNetworkingUtils* self, uint32 nIPv4 ); +S_API EResult SteamAPI_ISteamNetworkingUtils_GetRealIdentityForFakeIP( ISteamNetworkingUtils* self, const SteamNetworkingIPAddr & fakeIP, SteamNetworkingIdentity * pOutRealIdentity ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueInt32( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, int32 val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueFloat( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, float val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueString( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, const char * val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValuePtr( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, void * val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueInt32( ISteamNetworkingUtils* self, HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueFloat( ISteamNetworkingUtils* self, HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueString( ISteamNetworkingUtils* self, HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char * val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetConnectionStatusChanged( ISteamNetworkingUtils* self, FnSteamNetConnectionStatusChanged fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetAuthenticationStatusChanged( ISteamNetworkingUtils* self, FnSteamNetAuthenticationStatusChanged fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamRelayNetworkStatusChanged( ISteamNetworkingUtils* self, FnSteamRelayNetworkStatusChanged fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_FakeIPResult( ISteamNetworkingUtils* self, FnSteamNetworkingFakeIPResult fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionRequest( ISteamNetworkingUtils* self, FnSteamNetworkingMessagesSessionRequest fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionFailed( ISteamNetworkingUtils* self, FnSteamNetworkingMessagesSessionFailed fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConfigValue( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, ESteamNetworkingConfigDataType eDataType, const void * pArg ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConfigValueStruct( ISteamNetworkingUtils* self, const SteamNetworkingConfigValue_t & opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj ); +S_API ESteamNetworkingGetConfigValueResult SteamAPI_ISteamNetworkingUtils_GetConfigValue( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, ESteamNetworkingConfigDataType * pOutDataType, void * pResult, size_t * cbResult ); +S_API const char * SteamAPI_ISteamNetworkingUtils_GetConfigValueInfo( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigDataType * pOutDataType, ESteamNetworkingConfigScope * pOutScope ); +S_API ESteamNetworkingConfigValue SteamAPI_ISteamNetworkingUtils_IterateGenericEditableConfigValues( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eCurrent, bool bEnumerateDevVars ); +S_API void SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ToString( ISteamNetworkingUtils* self, const SteamNetworkingIPAddr & addr, char * buf, uint32 cbBuf, bool bWithPort ); +S_API bool SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ParseString( ISteamNetworkingUtils* self, SteamNetworkingIPAddr * pAddr, const char * pszStr ); +S_API ESteamNetworkingFakeIPType SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_GetFakeIPType( ISteamNetworkingUtils* self, const SteamNetworkingIPAddr & addr ); +S_API void SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ToString( ISteamNetworkingUtils* self, const SteamNetworkingIdentity & identity, char * buf, uint32 cbBuf ); +S_API bool SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString( ISteamNetworkingUtils* self, SteamNetworkingIdentity * pIdentity, const char * pszStr ); + +// ISteamGameServer + +// A versioned accessor is exported by the library +S_API ISteamGameServer *SteamAPI_SteamGameServer_v015(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServer(), but using this ensures that you are using a matching library. +inline ISteamGameServer *SteamAPI_SteamGameServer() { return SteamAPI_SteamGameServer_v015(); } +S_API void SteamAPI_ISteamGameServer_SetProduct( ISteamGameServer* self, const char * pszProduct ); +S_API void SteamAPI_ISteamGameServer_SetGameDescription( ISteamGameServer* self, const char * pszGameDescription ); +S_API void SteamAPI_ISteamGameServer_SetModDir( ISteamGameServer* self, const char * pszModDir ); +S_API void SteamAPI_ISteamGameServer_SetDedicatedServer( ISteamGameServer* self, bool bDedicated ); +S_API void SteamAPI_ISteamGameServer_LogOn( ISteamGameServer* self, const char * pszToken ); +S_API void SteamAPI_ISteamGameServer_LogOnAnonymous( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_LogOff( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_BLoggedOn( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_BSecure( ISteamGameServer* self ); +S_API uint64_steamid SteamAPI_ISteamGameServer_GetSteamID( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_WasRestartRequested( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_SetMaxPlayerCount( ISteamGameServer* self, int cPlayersMax ); +S_API void SteamAPI_ISteamGameServer_SetBotPlayerCount( ISteamGameServer* self, int cBotplayers ); +S_API void SteamAPI_ISteamGameServer_SetServerName( ISteamGameServer* self, const char * pszServerName ); +S_API void SteamAPI_ISteamGameServer_SetMapName( ISteamGameServer* self, const char * pszMapName ); +S_API void SteamAPI_ISteamGameServer_SetPasswordProtected( ISteamGameServer* self, bool bPasswordProtected ); +S_API void SteamAPI_ISteamGameServer_SetSpectatorPort( ISteamGameServer* self, uint16 unSpectatorPort ); +S_API void SteamAPI_ISteamGameServer_SetSpectatorServerName( ISteamGameServer* self, const char * pszSpectatorServerName ); +S_API void SteamAPI_ISteamGameServer_ClearAllKeyValues( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_SetKeyValue( ISteamGameServer* self, const char * pKey, const char * pValue ); +S_API void SteamAPI_ISteamGameServer_SetGameTags( ISteamGameServer* self, const char * pchGameTags ); +S_API void SteamAPI_ISteamGameServer_SetGameData( ISteamGameServer* self, const char * pchGameData ); +S_API void SteamAPI_ISteamGameServer_SetRegion( ISteamGameServer* self, const char * pszRegion ); +S_API void SteamAPI_ISteamGameServer_SetAdvertiseServerActive( ISteamGameServer* self, bool bActive ); +S_API HAuthTicket SteamAPI_ISteamGameServer_GetAuthSessionTicket( ISteamGameServer* self, void * pTicket, int cbMaxTicket, uint32 * pcbTicket, const SteamNetworkingIdentity * pSnid ); +S_API EBeginAuthSessionResult SteamAPI_ISteamGameServer_BeginAuthSession( ISteamGameServer* self, const void * pAuthTicket, int cbAuthTicket, uint64_steamid steamID ); +S_API void SteamAPI_ISteamGameServer_EndAuthSession( ISteamGameServer* self, uint64_steamid steamID ); +S_API void SteamAPI_ISteamGameServer_CancelAuthTicket( ISteamGameServer* self, HAuthTicket hAuthTicket ); +S_API EUserHasLicenseForAppResult SteamAPI_ISteamGameServer_UserHasLicenseForApp( ISteamGameServer* self, uint64_steamid steamID, AppId_t appID ); +S_API bool SteamAPI_ISteamGameServer_RequestUserGroupStatus( ISteamGameServer* self, uint64_steamid steamIDUser, uint64_steamid steamIDGroup ); +S_API void SteamAPI_ISteamGameServer_GetGameplayStats( ISteamGameServer* self ); +S_API SteamAPICall_t SteamAPI_ISteamGameServer_GetServerReputation( ISteamGameServer* self ); +S_API SteamIPAddress_t SteamAPI_ISteamGameServer_GetPublicIP( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_HandleIncomingPacket( ISteamGameServer* self, const void * pData, int cbData, uint32 srcIP, uint16 srcPort ); +S_API int SteamAPI_ISteamGameServer_GetNextOutgoingPacket( ISteamGameServer* self, void * pOut, int cbMaxOut, uint32 * pNetAdr, uint16 * pPort ); +S_API SteamAPICall_t SteamAPI_ISteamGameServer_AssociateWithClan( ISteamGameServer* self, uint64_steamid steamIDClan ); +S_API SteamAPICall_t SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility( ISteamGameServer* self, uint64_steamid steamIDNewPlayer ); +S_API bool SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate_DEPRECATED( ISteamGameServer* self, uint32 unIPClient, const void * pvAuthBlob, uint32 cubAuthBlobSize, CSteamID * pSteamIDUser ); +S_API uint64_steamid SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_SendUserDisconnect_DEPRECATED( ISteamGameServer* self, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamGameServer_BUpdateUserData( ISteamGameServer* self, uint64_steamid steamIDUser, const char * pchPlayerName, uint32 uScore ); + +// ISteamGameServerStats + +// A versioned accessor is exported by the library +S_API ISteamGameServerStats *SteamAPI_SteamGameServerStats_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerStats(), but using this ensures that you are using a matching library. +inline ISteamGameServerStats *SteamAPI_SteamGameServerStats() { return SteamAPI_SteamGameServerStats_v001(); } +S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_RequestUserStats( ISteamGameServerStats* self, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamGameServerStats_GetUserStatInt32( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, int32 * pData ); +S_API bool SteamAPI_ISteamGameServerStats_GetUserStatFloat( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, float * pData ); +S_API bool SteamAPI_ISteamGameServerStats_GetUserAchievement( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, bool * pbAchieved ); +S_API bool SteamAPI_ISteamGameServerStats_SetUserStatInt32( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, int32 nData ); +S_API bool SteamAPI_ISteamGameServerStats_SetUserStatFloat( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, float fData ); +S_API bool SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, float flCountThisSession, double dSessionLength ); +S_API bool SteamAPI_ISteamGameServerStats_SetUserAchievement( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName ); +S_API bool SteamAPI_ISteamGameServerStats_ClearUserAchievement( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName ); +S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_StoreUserStats( ISteamGameServerStats* self, uint64_steamid steamIDUser ); + +// ISteamNetworkingFakeUDPPort +S_API void SteamAPI_ISteamNetworkingFakeUDPPort_DestroyFakeUDPPort( ISteamNetworkingFakeUDPPort* self ); +S_API EResult SteamAPI_ISteamNetworkingFakeUDPPort_SendMessageToFakeIP( ISteamNetworkingFakeUDPPort* self, const SteamNetworkingIPAddr & remoteAddress, const void * pData, uint32 cbData, int nSendFlags ); +S_API int SteamAPI_ISteamNetworkingFakeUDPPort_ReceiveMessages( ISteamNetworkingFakeUDPPort* self, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API void SteamAPI_ISteamNetworkingFakeUDPPort_ScheduleCleanup( ISteamNetworkingFakeUDPPort* self, const SteamNetworkingIPAddr & remoteAddress ); + +// SteamIPAddress_t +S_API bool SteamAPI_SteamIPAddress_t_IsSet( SteamIPAddress_t* self ); + +// MatchMakingKeyValuePair_t +S_API void SteamAPI_MatchMakingKeyValuePair_t_Construct( MatchMakingKeyValuePair_t* self ); + +// servernetadr_t +S_API void SteamAPI_servernetadr_t_Construct( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_Init( servernetadr_t* self, unsigned int ip, uint16 usQueryPort, uint16 usConnectionPort ); +S_API uint16 SteamAPI_servernetadr_t_GetQueryPort( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_SetQueryPort( servernetadr_t* self, uint16 usPort ); +S_API uint16 SteamAPI_servernetadr_t_GetConnectionPort( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_SetConnectionPort( servernetadr_t* self, uint16 usPort ); +S_API uint32 SteamAPI_servernetadr_t_GetIP( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_SetIP( servernetadr_t* self, uint32 unIP ); +S_API const char * SteamAPI_servernetadr_t_GetConnectionAddressString( servernetadr_t* self ); +S_API const char * SteamAPI_servernetadr_t_GetQueryAddressString( servernetadr_t* self ); +S_API bool SteamAPI_servernetadr_t_IsLessThan( servernetadr_t* self, const servernetadr_t & netadr ); +S_API void SteamAPI_servernetadr_t_Assign( servernetadr_t* self, const servernetadr_t & that ); + +// gameserveritem_t +S_API void SteamAPI_gameserveritem_t_Construct( gameserveritem_t* self ); +S_API const char * SteamAPI_gameserveritem_t_GetName( gameserveritem_t* self ); +S_API void SteamAPI_gameserveritem_t_SetName( gameserveritem_t* self, const char * pName ); + +// SteamNetworkingIPAddr +S_API void SteamAPI_SteamNetworkingIPAddr_Clear( SteamNetworkingIPAddr* self ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsIPv6AllZeros( SteamNetworkingIPAddr* self ); +S_API void SteamAPI_SteamNetworkingIPAddr_SetIPv6( SteamNetworkingIPAddr* self, const uint8 * ipv6, uint16 nPort ); +S_API void SteamAPI_SteamNetworkingIPAddr_SetIPv4( SteamNetworkingIPAddr* self, uint32 nIP, uint16 nPort ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsIPv4( SteamNetworkingIPAddr* self ); +S_API uint32 SteamAPI_SteamNetworkingIPAddr_GetIPv4( SteamNetworkingIPAddr* self ); +S_API void SteamAPI_SteamNetworkingIPAddr_SetIPv6LocalHost( SteamNetworkingIPAddr* self, uint16 nPort ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsLocalHost( SteamNetworkingIPAddr* self ); +S_API void SteamAPI_SteamNetworkingIPAddr_ToString( SteamNetworkingIPAddr* self, char * buf, uint32 cbBuf, bool bWithPort ); +S_API bool SteamAPI_SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr* self, const char * pszStr ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsEqualTo( SteamNetworkingIPAddr* self, const SteamNetworkingIPAddr & x ); +S_API ESteamNetworkingFakeIPType SteamAPI_SteamNetworkingIPAddr_GetFakeIPType( SteamNetworkingIPAddr* self ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsFakeIP( SteamNetworkingIPAddr* self ); + +// SteamNetworkingIdentity +S_API void SteamAPI_SteamNetworkingIdentity_Clear( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsInvalid( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetSteamID( SteamNetworkingIdentity* self, uint64_steamid steamID ); +S_API uint64_steamid SteamAPI_SteamNetworkingIdentity_GetSteamID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetSteamID64( SteamNetworkingIdentity* self, uint64 steamID ); +S_API uint64 SteamAPI_SteamNetworkingIdentity_GetSteamID64( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_SetXboxPairwiseID( SteamNetworkingIdentity* self, const char * pszString ); +S_API const char * SteamAPI_SteamNetworkingIdentity_GetXboxPairwiseID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetPSNID( SteamNetworkingIdentity* self, uint64 id ); +S_API uint64 SteamAPI_SteamNetworkingIdentity_GetPSNID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetStadiaID( SteamNetworkingIdentity* self, uint64 id ); +S_API uint64 SteamAPI_SteamNetworkingIdentity_GetStadiaID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetIPAddr( SteamNetworkingIdentity* self, const SteamNetworkingIPAddr & addr ); +S_API const SteamNetworkingIPAddr * SteamAPI_SteamNetworkingIdentity_GetIPAddr( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetIPv4Addr( SteamNetworkingIdentity* self, uint32 nIPv4, uint16 nPort ); +S_API uint32 SteamAPI_SteamNetworkingIdentity_GetIPv4( SteamNetworkingIdentity* self ); +S_API ESteamNetworkingFakeIPType SteamAPI_SteamNetworkingIdentity_GetFakeIPType( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsFakeIP( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetLocalHost( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsLocalHost( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_SetGenericString( SteamNetworkingIdentity* self, const char * pszString ); +S_API const char * SteamAPI_SteamNetworkingIdentity_GetGenericString( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_SetGenericBytes( SteamNetworkingIdentity* self, const void * data, uint32 cbLen ); +S_API const uint8 * SteamAPI_SteamNetworkingIdentity_GetGenericBytes( SteamNetworkingIdentity* self, int & cbLen ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsEqualTo( SteamNetworkingIdentity* self, const SteamNetworkingIdentity & x ); +S_API void SteamAPI_SteamNetworkingIdentity_ToString( SteamNetworkingIdentity* self, char * buf, uint32 cbBuf ); +S_API bool SteamAPI_SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity* self, const char * pszStr ); + +// SteamNetworkingMessage_t +S_API void SteamAPI_SteamNetworkingMessage_t_Release( SteamNetworkingMessage_t* self ); + +// SteamNetworkingConfigValue_t +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetInt32( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, int32_t data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetInt64( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, int64_t data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetFloat( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, float data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetPtr( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, void * data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetString( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, const char * data ); + +// SteamDatagramHostedAddress +S_API void SteamAPI_SteamDatagramHostedAddress_Clear( SteamDatagramHostedAddress* self ); +S_API SteamNetworkingPOPID SteamAPI_SteamDatagramHostedAddress_GetPopID( SteamDatagramHostedAddress* self ); +S_API void SteamAPI_SteamDatagramHostedAddress_SetDevAddress( SteamDatagramHostedAddress* self, uint32 nIP, uint16 nPort, SteamNetworkingPOPID popid ); #endif // STEAMAPIFLAT_H - - diff --git a/lib/osx/include/steam/steam_api_internal.h b/lib/osx/include/steam/steam_api_internal.h index ed0423b..e3aa18f 100644 --- a/lib/osx/include/steam/steam_api_internal.h +++ b/lib/osx/include/steam/steam_api_internal.h @@ -1,187 +1,60 @@ -//====== Copyright 1996-2015, Valve Corporation, All rights reserved. ======= +//====== Copyright Valve Corporation, All rights reserved. ==================== // -// Purpose: Internal private Steamworks API declarations and definitions +// Internal implementation details of the steamworks SDK. // -//============================================================================= - -#ifndef STEAM_API_INTERNAL_H -#define STEAM_API_INTERNAL_H - -S_API HSteamUser SteamAPI_GetHSteamUser(); -S_API void * S_CALLTYPE SteamInternal_ContextInit( void *pContextInitData ); -S_API void * S_CALLTYPE SteamInternal_CreateInterface( const char *ver ); - -#if !defined( STEAM_API_EXPORTS ) - -inline void S_CALLTYPE SteamInternal_OnContextInit( void* p ) -{ - ((CSteamAPIContext*)p)->Clear(); - if ( SteamAPI_GetHSteamPipe() ) - ((CSteamAPIContext*)p)->Init(); -} -inline CSteamAPIContext& SteamInternal_ModuleContext() -{ - // SteamInternal_ContextInit takes a base pointer for the equivalent of - // struct { void (*pFn)(void* pCtx); uintp counter; CSteamAPIContext ctx; } - // Do not change layout of 2 + sizeof... or add non-pointer aligned data! - // NOTE: declaring "static CSteamAPIConext" creates a large function - // which queries the initialization status of the object. We know that - // it is pointer-aligned and fully memset with zeros, so just alias a - // static buffer of the appropriate size and call it a CSteamAPIContext. - static void* s_CallbackCounterAndContext[ 2 + sizeof(CSteamAPIContext)/sizeof(void*) ] = { (void*)&SteamInternal_OnContextInit, 0 }; - return *(CSteamAPIContext*)SteamInternal_ContextInit( s_CallbackCounterAndContext ); -} - -inline ISteamClient *SteamClient() { return SteamInternal_ModuleContext().SteamClient(); } -inline ISteamUser *SteamUser() { return SteamInternal_ModuleContext().SteamUser(); } -inline ISteamFriends *SteamFriends() { return SteamInternal_ModuleContext().SteamFriends(); } -inline ISteamUtils *SteamUtils() { return SteamInternal_ModuleContext().SteamUtils(); } -inline ISteamMatchmaking *SteamMatchmaking() { return SteamInternal_ModuleContext().SteamMatchmaking(); } -inline ISteamUserStats *SteamUserStats() { return SteamInternal_ModuleContext().SteamUserStats(); } -inline ISteamApps *SteamApps() { return SteamInternal_ModuleContext().SteamApps(); } -inline ISteamMatchmakingServers *SteamMatchmakingServers() { return SteamInternal_ModuleContext().SteamMatchmakingServers(); } -inline ISteamNetworking *SteamNetworking() { return SteamInternal_ModuleContext().SteamNetworking(); } -inline ISteamRemoteStorage *SteamRemoteStorage() { return SteamInternal_ModuleContext().SteamRemoteStorage(); } -inline ISteamScreenshots *SteamScreenshots() { return SteamInternal_ModuleContext().SteamScreenshots(); } -inline ISteamHTTP *SteamHTTP() { return SteamInternal_ModuleContext().SteamHTTP(); } -inline ISteamUnifiedMessages *SteamUnifiedMessages() { return SteamInternal_ModuleContext().SteamUnifiedMessages(); } -inline ISteamController *SteamController() { return SteamInternal_ModuleContext().SteamController(); } -inline ISteamUGC *SteamUGC() { return SteamInternal_ModuleContext().SteamUGC(); } -inline ISteamAppList *SteamAppList() { return SteamInternal_ModuleContext().SteamAppList(); } -inline ISteamMusic *SteamMusic() { return SteamInternal_ModuleContext().SteamMusic(); } -inline ISteamMusicRemote *SteamMusicRemote() { return SteamInternal_ModuleContext().SteamMusicRemote(); } -inline ISteamHTMLSurface *SteamHTMLSurface() { return SteamInternal_ModuleContext().SteamHTMLSurface(); } -inline ISteamInventory *SteamInventory() { return SteamInternal_ModuleContext().SteamInventory(); } -inline ISteamVideo *SteamVideo() { return SteamInternal_ModuleContext().SteamVideo(); } - -#endif // !defined( STEAM_API_EXPORTS ) - - -inline void CSteamAPIContext::Clear() -{ - m_pSteamClient = NULL; - m_pSteamUser = NULL; - m_pSteamFriends = NULL; - m_pSteamUtils = NULL; - m_pSteamMatchmaking = NULL; - m_pSteamUserStats = NULL; - m_pSteamApps = NULL; - m_pSteamMatchmakingServers = NULL; - m_pSteamNetworking = NULL; - m_pSteamRemoteStorage = NULL; - m_pSteamHTTP = NULL; - m_pSteamScreenshots = NULL; - m_pSteamMusic = NULL; - m_pSteamUnifiedMessages = NULL; - m_pController = NULL; - m_pSteamUGC = NULL; - m_pSteamAppList = NULL; - m_pSteamMusic = NULL; - m_pSteamMusicRemote = NULL; - m_pSteamHTMLSurface = NULL; - m_pSteamInventory = NULL; -} - - -// This function must be declared inline in the header so the module using steam_api.dll gets the version names they want. -inline bool CSteamAPIContext::Init() -{ - HSteamUser hSteamUser = SteamAPI_GetHSteamUser(); - HSteamPipe hSteamPipe = SteamAPI_GetHSteamPipe(); - if ( !hSteamPipe ) - return false; - - m_pSteamClient = (ISteamClient*) SteamInternal_CreateInterface( STEAMCLIENT_INTERFACE_VERSION ); - if ( !m_pSteamClient ) - return false; - - m_pSteamUser = m_pSteamClient->GetISteamUser( hSteamUser, hSteamPipe, STEAMUSER_INTERFACE_VERSION ); - if ( !m_pSteamUser ) - return false; - - m_pSteamFriends = m_pSteamClient->GetISteamFriends( hSteamUser, hSteamPipe, STEAMFRIENDS_INTERFACE_VERSION ); - if ( !m_pSteamFriends ) - return false; - - m_pSteamUtils = m_pSteamClient->GetISteamUtils( hSteamPipe, STEAMUTILS_INTERFACE_VERSION ); - if ( !m_pSteamUtils ) - return false; - - m_pSteamMatchmaking = m_pSteamClient->GetISteamMatchmaking( hSteamUser, hSteamPipe, STEAMMATCHMAKING_INTERFACE_VERSION ); - if ( !m_pSteamMatchmaking ) - return false; - - m_pSteamMatchmakingServers = m_pSteamClient->GetISteamMatchmakingServers( hSteamUser, hSteamPipe, STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION ); - if ( !m_pSteamMatchmakingServers ) - return false; - - m_pSteamUserStats = m_pSteamClient->GetISteamUserStats( hSteamUser, hSteamPipe, STEAMUSERSTATS_INTERFACE_VERSION ); - if ( !m_pSteamUserStats ) - return false; - - m_pSteamApps = m_pSteamClient->GetISteamApps( hSteamUser, hSteamPipe, STEAMAPPS_INTERFACE_VERSION ); - if ( !m_pSteamApps ) - return false; - - m_pSteamNetworking = m_pSteamClient->GetISteamNetworking( hSteamUser, hSteamPipe, STEAMNETWORKING_INTERFACE_VERSION ); - if ( !m_pSteamNetworking ) - return false; - - m_pSteamRemoteStorage = m_pSteamClient->GetISteamRemoteStorage( hSteamUser, hSteamPipe, STEAMREMOTESTORAGE_INTERFACE_VERSION ); - if ( !m_pSteamRemoteStorage ) - return false; - - m_pSteamScreenshots = m_pSteamClient->GetISteamScreenshots( hSteamUser, hSteamPipe, STEAMSCREENSHOTS_INTERFACE_VERSION ); - if ( !m_pSteamScreenshots ) - return false; - - m_pSteamHTTP = m_pSteamClient->GetISteamHTTP( hSteamUser, hSteamPipe, STEAMHTTP_INTERFACE_VERSION ); - if ( !m_pSteamHTTP ) - return false; - - m_pSteamUnifiedMessages = m_pSteamClient->GetISteamUnifiedMessages( hSteamUser, hSteamPipe, STEAMUNIFIEDMESSAGES_INTERFACE_VERSION ); - if ( !m_pSteamUnifiedMessages ) - return false; - - m_pController = m_pSteamClient->GetISteamController( hSteamUser, hSteamPipe, STEAMCONTROLLER_INTERFACE_VERSION ); - if ( !m_pController ) - return false; - - m_pSteamUGC = m_pSteamClient->GetISteamUGC( hSteamUser, hSteamPipe, STEAMUGC_INTERFACE_VERSION ); - if ( !m_pSteamUGC ) - return false; - - m_pSteamAppList = m_pSteamClient->GetISteamAppList( hSteamUser, hSteamPipe, STEAMAPPLIST_INTERFACE_VERSION ); - if ( !m_pSteamAppList ) - return false; - - m_pSteamMusic = m_pSteamClient->GetISteamMusic( hSteamUser, hSteamPipe, STEAMMUSIC_INTERFACE_VERSION ); - if ( !m_pSteamMusic ) - return false; - - m_pSteamMusicRemote = m_pSteamClient->GetISteamMusicRemote( hSteamUser, hSteamPipe, STEAMMUSICREMOTE_INTERFACE_VERSION ); - if ( !m_pSteamMusicRemote ) - return false; - - m_pSteamHTMLSurface = m_pSteamClient->GetISteamHTMLSurface( hSteamUser, hSteamPipe, STEAMHTMLSURFACE_INTERFACE_VERSION ); - if ( !m_pSteamHTMLSurface ) - return false; - - m_pSteamInventory = m_pSteamClient->GetISteamInventory( hSteamUser, hSteamPipe, STEAMINVENTORY_INTERFACE_VERSION ); - if ( !m_pSteamInventory ) - return false; - - m_pSteamVideo = m_pSteamClient->GetISteamVideo( hSteamUser, hSteamPipe, STEAMVIDEO_INTERFACE_VERSION ); - if ( !m_pSteamVideo ) - return false; - - return true; -} - - -//----------------------------------------------------------------------------- -// The following macros are implementation details, not intended for public use +// You should be able to figure out how to use the SDK by reading +// steam_api_common.h, and should not need to understand anything in here. +// //----------------------------------------------------------------------------- + +#ifdef STEAM_CALLBACK_BEGIN +#error "This file should only be included from steam_api_common.h" +#endif + +#include <string.h> + +// Internal functions used to locate/create interfaces +S_API HSteamPipe S_CALLTYPE SteamAPI_GetHSteamPipe(); +S_API HSteamUser S_CALLTYPE SteamAPI_GetHSteamUser(); +S_API HSteamPipe S_CALLTYPE SteamGameServer_GetHSteamPipe(); +S_API HSteamUser S_CALLTYPE SteamGameServer_GetHSteamUser(); +S_API void *S_CALLTYPE SteamInternal_ContextInit( void *pContextInitData ); +S_API void *S_CALLTYPE SteamInternal_CreateInterface( const char *ver ); +S_API void *S_CALLTYPE SteamInternal_FindOrCreateUserInterface( HSteamUser hSteamUser, const char *pszVersion ); +S_API void *S_CALLTYPE SteamInternal_FindOrCreateGameServerInterface( HSteamUser hSteamUser, const char *pszVersion ); + +// Macro used to define a type-safe accessor that will always return the version +// of the interface of the *header file* you are compiling with! We also bounce +// through a safety function that checks for interfaces being created or destroyed. +// +// SteamInternal_ContextInit takes a base pointer for the equivalent of +// struct { void (*pFn)(void* pCtx); uintptr_t counter; void *ptr; } +// Do not change layout or add non-pointer aligned data! +#define STEAM_DEFINE_INTERFACE_ACCESSOR( type, name, expr, kind, version ) \ + inline void S_CALLTYPE SteamInternal_Init_ ## name( type *p ) { *p = (type)( expr ); } \ + STEAM_CLANG_ATTR( "interface_accessor_kind:" kind ";interface_accessor_version:" version ";" ) \ + inline type name() { \ + static void* s_CallbackCounterAndContext[ 3 ] = { (void*)&SteamInternal_Init_ ## name, 0, 0 }; \ + return *(type*)SteamInternal_ContextInit( s_CallbackCounterAndContext ); \ + } + +#define STEAM_DEFINE_USER_INTERFACE_ACCESSOR( type, name, version ) \ + STEAM_DEFINE_INTERFACE_ACCESSOR( type, name, SteamInternal_FindOrCreateUserInterface( SteamAPI_GetHSteamUser(), version ), "user", version ) +#define STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( type, name, version ) \ + STEAM_DEFINE_INTERFACE_ACCESSOR( type, name, SteamInternal_FindOrCreateGameServerInterface( SteamGameServer_GetHSteamUser(), version ), "gameserver", version ) + +// +// Internal stuff used for the standard, higher-level callback mechanism +// + +// Internal functions used by the utility CCallback objects to receive callbacks +S_API void S_CALLTYPE SteamAPI_RegisterCallback( class CCallbackBase *pCallback, int iCallback ); +S_API void S_CALLTYPE SteamAPI_UnregisterCallback( class CCallbackBase *pCallback ); +// Internal functions used by the utility CCallResult objects to receive async call results +S_API void S_CALLTYPE SteamAPI_RegisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); +S_API void S_CALLTYPE SteamAPI_UnregisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); + +#define _STEAM_CALLBACK_OFFSETOF( type, member ) ( (size_t)( (char *)&( (type *)0 )->member ) ) #define _STEAM_CALLBACK_AUTO_HOOK( thisclass, func, param ) #define _STEAM_CALLBACK_HELPER( _1, _2, SELECTED, ... ) _STEAM_CALLBACK_##SELECTED #define _STEAM_CALLBACK_SELECT( X, Y ) _STEAM_CALLBACK_HELPER X Y @@ -190,25 +63,24 @@ inline bool CSteamAPIContext::Init() CCallbackInternal_ ## func () { extra_code SteamAPI_RegisterCallback( this, param::k_iCallback ); } \ CCallbackInternal_ ## func ( const CCallbackInternal_ ## func & ) { extra_code SteamAPI_RegisterCallback( this, param::k_iCallback ); } \ CCallbackInternal_ ## func & operator=( const CCallbackInternal_ ## func & ) { return *this; } \ - private: virtual void Run( void *pvParam ) { _STEAM_CALLBACK_AUTO_HOOK( thisclass, func, param ) \ - thisclass *pOuter = reinterpret_cast<thisclass*>( reinterpret_cast<char*>(this) - offsetof( thisclass, m_steamcallback_ ## func ) ); \ + private: virtual void Run( void *pvParam ) S_OVERRIDE { _STEAM_CALLBACK_AUTO_HOOK( thisclass, func, param ) \ + thisclass *pOuter = reinterpret_cast<thisclass*>( reinterpret_cast<char*>(this) - _STEAM_CALLBACK_OFFSETOF( thisclass, m_steamcallback_ ## func ) ); \ pOuter->func( reinterpret_cast<param*>( pvParam ) ); \ } \ } m_steamcallback_ ## func ; void func( param *pParam ) #define _STEAM_CALLBACK_4( _, thisclass, func, param, var ) \ CCallback< thisclass, param > var; void func( param *pParam ) +#define _STEAM_CALLBACK_GS( _, thisclass, func, param, var ) \ + CCallback< thisclass, param, true > var; void func( param *pParam ) +#ifndef API_GEN -//----------------------------------------------------------------------------- -// Purpose: maps a steam async call result to a class member function -// template params: T = local class, P = parameter struct -//----------------------------------------------------------------------------- template< class T, class P > inline CCallResult<T, P>::CCallResult() { m_hAPICall = k_uAPICallInvalid; - m_pObj = NULL; - m_Func = NULL; + m_pObj = nullptr; + m_Func = nullptr; m_iCallback = P::k_iCallback; } @@ -240,7 +112,6 @@ inline void CCallResult<T, P>::Cancel() SteamAPI_UnregisterCallResult( this, m_hAPICall ); m_hAPICall = k_uAPICallInvalid; } - } template< class T, class P > @@ -266,15 +137,9 @@ inline void CCallResult<T, P>::Run( void *pvParam, bool bIOFailure, SteamAPICall } } - -//----------------------------------------------------------------------------- -// Purpose: maps a steam callback to a class member function -// template params: T = local class, P = parameter struct, -// bGameserver = listen for gameserver callbacks instead of client callbacks -//----------------------------------------------------------------------------- template< class T, class P, bool bGameserver > inline CCallback< T, P, bGameserver >::CCallback( T *pObj, func_t func ) - : m_pObj( NULL ), m_Func( NULL ) + : m_pObj( nullptr ), m_Func( nullptr ) { if ( bGameserver ) { @@ -311,17 +176,221 @@ inline void CCallback< T, P, bGameserver >::Run( void *pvParam ) (m_pObj->*m_Func)((P *)pvParam); } +#endif // #ifndef API_GEN -#if defined(USE_BREAKPAD_HANDLER) || defined(STEAM_API_EXPORTS) -// this should be called before the game initialized the steam APIs -// pchDate should be of the format "Mmm dd yyyy" (such as from the __ DATE __ macro ) -// pchTime should be of the format "hh:mm:ss" (such as from the __ TIME __ macro ) -// bFullMemoryDumps (Win32 only) -- writes out a uuid-full.dmp in the client/dumps folder -// pvContext-- can be NULL, will be the void * context passed into m_pfnPreMinidumpCallback -// PFNPreMinidumpCallback m_pfnPreMinidumpCallback -- optional callback which occurs just before a .dmp file is written during a crash. Applications can hook this to allow adding additional information into the .dmp comment stream. -S_API void S_CALLTYPE SteamAPI_UseBreakpadCrashHandler( char const *pchVersion, char const *pchDate, char const *pchTime, bool bFullMemoryDumps, void *pvContext, PFNPreMinidumpCallback m_pfnPreMinidumpCallback ); -S_API void S_CALLTYPE SteamAPI_SetBreakpadAppID( uint32 unAppID ); +// structure that contains client callback data +// see callbacks documentation for more details +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +/// Internal structure used in manual callback dispatch +struct CallbackMsg_t +{ + HSteamUser m_hSteamUser; // Specific user to whom this callback applies. + int m_iCallback; // Callback identifier. (Corresponds to the k_iCallback enum in the callback structure.) + uint8 *m_pubParam; // Points to the callback structure + int m_cubParam; // Size of the data pointed to by m_pubParam +}; +#pragma pack( pop ) + +// Macros to define steam callback structures. Used internally for debugging +#ifdef STEAM_CALLBACK_INSPECTION_ENABLED + #include "../../clientdll/steam_api_callback_inspection.h" +#else + #define STEAM_CALLBACK_BEGIN( callbackname, callbackid ) struct callbackname { enum { k_iCallback = callbackid }; + #define STEAM_CALLBACK_MEMBER( varidx, vartype, varname ) vartype varname ; + #define STEAM_CALLBACK_MEMBER_ARRAY( varidx, vartype, varname, varcount ) vartype varname [ varcount ]; + #define STEAM_CALLBACK_END(nArgs) }; #endif +// Forward declare all of the Steam interfaces. (Do we really need to do this?) +class ISteamClient; +class ISteamUser; +class ISteamGameServer; +class ISteamFriends; +class ISteamUtils; +class ISteamMatchmaking; +class ISteamContentServer; +class ISteamMatchmakingServers; +class ISteamUserStats; +class ISteamApps; +class ISteamNetworking; +class ISteamRemoteStorage; +class ISteamScreenshots; +class ISteamMusic; +class ISteamMusicRemote; +class ISteamGameServerStats; +class ISteamPS3OverlayRender; +class ISteamHTTP; +class ISteamController; +class ISteamUGC; +class ISteamHTMLSurface; +class ISteamInventory; +class ISteamVideo; +class ISteamParentalSettings; +class ISteamGameSearch; +class ISteamInput; +class ISteamParties; +class ISteamRemotePlay; + +// Forward declare types +struct SteamNetworkingIdentity; + +//----------------------------------------------------------------------------- +// Purpose: Base values for callback identifiers, each callback must +// have a unique ID. +//----------------------------------------------------------------------------- +enum { k_iSteamUserCallbacks = 100 }; +enum { k_iSteamGameServerCallbacks = 200 }; +enum { k_iSteamFriendsCallbacks = 300 }; +enum { k_iSteamBillingCallbacks = 400 }; +enum { k_iSteamMatchmakingCallbacks = 500 }; +enum { k_iSteamContentServerCallbacks = 600 }; +enum { k_iSteamUtilsCallbacks = 700 }; +enum { k_iSteamAppsCallbacks = 1000 }; +enum { k_iSteamUserStatsCallbacks = 1100 }; +enum { k_iSteamNetworkingCallbacks = 1200 }; +enum { k_iSteamNetworkingSocketsCallbacks = 1220 }; +enum { k_iSteamNetworkingMessagesCallbacks = 1250 }; +enum { k_iSteamNetworkingUtilsCallbacks = 1280 }; +enum { k_iSteamRemoteStorageCallbacks = 1300 }; +enum { k_iSteamGameServerItemsCallbacks = 1500 }; +enum { k_iSteamGameCoordinatorCallbacks = 1700 }; +enum { k_iSteamGameServerStatsCallbacks = 1800 }; +enum { k_iSteam2AsyncCallbacks = 1900 }; +enum { k_iSteamGameStatsCallbacks = 2000 }; +enum { k_iSteamHTTPCallbacks = 2100 }; +enum { k_iSteamScreenshotsCallbacks = 2300 }; +// NOTE: 2500-2599 are reserved +enum { k_iSteamStreamLauncherCallbacks = 2600 }; +enum { k_iSteamControllerCallbacks = 2800 }; +enum { k_iSteamUGCCallbacks = 3400 }; +enum { k_iSteamStreamClientCallbacks = 3500 }; +enum { k_iSteamMusicCallbacks = 4000 }; +enum { k_iSteamMusicRemoteCallbacks = 4100 }; +enum { k_iSteamGameNotificationCallbacks = 4400 }; +enum { k_iSteamHTMLSurfaceCallbacks = 4500 }; +enum { k_iSteamVideoCallbacks = 4600 }; +enum { k_iSteamInventoryCallbacks = 4700 }; +enum { k_ISteamParentalSettingsCallbacks = 5000 }; +enum { k_iSteamGameSearchCallbacks = 5200 }; +enum { k_iSteamPartiesCallbacks = 5300 }; +enum { k_iSteamSTARCallbacks = 5500 }; +enum { k_iSteamRemotePlayCallbacks = 5700 }; +enum { k_iSteamChatCallbacks = 5900 }; +// NOTE: Internal "IClientXxx" callback IDs go in clientenums.h + +// Macros used to annotate various Steamworks interfaces to generate the +// flat API +#ifdef API_GEN +# define STEAM_CLANG_ATTR(ATTR) __attribute__((annotate( ATTR ))) +#else +# define STEAM_CLANG_ATTR(ATTR) +#endif + +#define STEAM_OUT_STRUCT() STEAM_CLANG_ATTR( "out_struct: ;" ) +#define STEAM_OUT_STRING() STEAM_CLANG_ATTR( "out_string: ;" ) +#define STEAM_OUT_ARRAY_CALL(COUNTER,FUNCTION,PARAMS) STEAM_CLANG_ATTR( "out_array_call:" #COUNTER "," #FUNCTION "," #PARAMS ";" ) +#define STEAM_OUT_ARRAY_COUNT(COUNTER, DESC) STEAM_CLANG_ATTR( "out_array_count:" #COUNTER ";desc:" #DESC ) +#define STEAM_ARRAY_COUNT(COUNTER) STEAM_CLANG_ATTR( "array_count:" #COUNTER ";" ) +#define STEAM_ARRAY_COUNT_D(COUNTER, DESC) STEAM_CLANG_ATTR( "array_count:" #COUNTER ";desc:" #DESC ) +#define STEAM_BUFFER_COUNT(COUNTER) STEAM_CLANG_ATTR( "buffer_count:" #COUNTER ";" ) +#define STEAM_OUT_BUFFER_COUNT(COUNTER) STEAM_CLANG_ATTR( "out_buffer_count:" #COUNTER ";" ) +#define STEAM_OUT_STRING_COUNT(COUNTER) STEAM_CLANG_ATTR( "out_string_count:" #COUNTER ";" ) +#define STEAM_DESC(DESC) STEAM_CLANG_ATTR("desc:" #DESC ";") +#define STEAM_CALL_RESULT(RESULT_TYPE) STEAM_CLANG_ATTR("callresult:" #RESULT_TYPE ";") +#define STEAM_CALL_BACK(RESULT_TYPE) STEAM_CLANG_ATTR("callback:" #RESULT_TYPE ";") +#define STEAM_FLAT_NAME(NAME) STEAM_CLANG_ATTR("flat_name:" #NAME ";") + +// CSteamAPIContext encapsulates the Steamworks API global accessors into +// a single object. +// +// DEPRECATED: Used the global interface accessors instead! +// +// This will be removed in a future iteration of the SDK +class CSteamAPIContext +{ +public: + CSteamAPIContext() { Clear(); } + inline void Clear() { memset( this, 0, sizeof(*this) ); } + inline bool Init(); // NOTE: This is defined in steam_api.h, to avoid this file having to include everything + ISteamClient* SteamClient() const { return m_pSteamClient; } + ISteamUser* SteamUser() const { return m_pSteamUser; } + ISteamFriends* SteamFriends() const { return m_pSteamFriends; } + ISteamUtils* SteamUtils() const { return m_pSteamUtils; } + ISteamMatchmaking* SteamMatchmaking() const { return m_pSteamMatchmaking; } + ISteamGameSearch* SteamGameSearch() const { return m_pSteamGameSearch; } + ISteamUserStats* SteamUserStats() const { return m_pSteamUserStats; } + ISteamApps* SteamApps() const { return m_pSteamApps; } + ISteamMatchmakingServers* SteamMatchmakingServers() const { return m_pSteamMatchmakingServers; } + ISteamNetworking* SteamNetworking() const { return m_pSteamNetworking; } + ISteamRemoteStorage* SteamRemoteStorage() const { return m_pSteamRemoteStorage; } + ISteamScreenshots* SteamScreenshots() const { return m_pSteamScreenshots; } + ISteamHTTP* SteamHTTP() const { return m_pSteamHTTP; } + ISteamController* SteamController() const { return m_pController; } + ISteamUGC* SteamUGC() const { return m_pSteamUGC; } + ISteamMusic* SteamMusic() const { return m_pSteamMusic; } + ISteamMusicRemote* SteamMusicRemote() const { return m_pSteamMusicRemote; } + ISteamHTMLSurface* SteamHTMLSurface() const { return m_pSteamHTMLSurface; } + ISteamInventory* SteamInventory() const { return m_pSteamInventory; } + ISteamVideo* SteamVideo() const { return m_pSteamVideo; } + ISteamParentalSettings* SteamParentalSettings() const { return m_pSteamParentalSettings; } + ISteamInput* SteamInput() const { return m_pSteamInput; } +private: + ISteamClient *m_pSteamClient; + ISteamUser *m_pSteamUser; + ISteamFriends *m_pSteamFriends; + ISteamUtils *m_pSteamUtils; + ISteamMatchmaking *m_pSteamMatchmaking; + ISteamGameSearch *m_pSteamGameSearch; + ISteamUserStats *m_pSteamUserStats; + ISteamApps *m_pSteamApps; + ISteamMatchmakingServers *m_pSteamMatchmakingServers; + ISteamNetworking *m_pSteamNetworking; + ISteamRemoteStorage *m_pSteamRemoteStorage; + ISteamScreenshots *m_pSteamScreenshots; + ISteamHTTP *m_pSteamHTTP; + ISteamController *m_pController; + ISteamUGC *m_pSteamUGC; + ISteamMusic *m_pSteamMusic; + ISteamMusicRemote *m_pSteamMusicRemote; + ISteamHTMLSurface *m_pSteamHTMLSurface; + ISteamInventory *m_pSteamInventory; + ISteamVideo *m_pSteamVideo; + ISteamParentalSettings *m_pSteamParentalSettings; + ISteamInput *m_pSteamInput; +}; + +class CSteamGameServerAPIContext +{ +public: + CSteamGameServerAPIContext() { Clear(); } + inline void Clear() { memset( this, 0, sizeof(*this) ); } + inline bool Init(); // NOTE: This is defined in steam_gameserver.h, to avoid this file having to include everything + + ISteamClient *SteamClient() const { return m_pSteamClient; } + ISteamGameServer *SteamGameServer() const { return m_pSteamGameServer; } + ISteamUtils *SteamGameServerUtils() const { return m_pSteamGameServerUtils; } + ISteamNetworking *SteamGameServerNetworking() const { return m_pSteamGameServerNetworking; } + ISteamGameServerStats *SteamGameServerStats() const { return m_pSteamGameServerStats; } + ISteamHTTP *SteamHTTP() const { return m_pSteamHTTP; } + ISteamInventory *SteamInventory() const { return m_pSteamInventory; } + ISteamUGC *SteamUGC() const { return m_pSteamUGC; } + +private: + ISteamClient *m_pSteamClient; + ISteamGameServer *m_pSteamGameServer; + ISteamUtils *m_pSteamGameServerUtils; + ISteamNetworking *m_pSteamGameServerNetworking; + ISteamGameServerStats *m_pSteamGameServerStats; + ISteamHTTP *m_pSteamHTTP; + ISteamInventory *m_pSteamInventory; + ISteamUGC *m_pSteamUGC; +}; + -#endif // STEAM_API_INTERNAL_H diff --git a/lib/osx/include/steam/steam_api_interop.cs b/lib/osx/include/steam/steam_api_interop.cs deleted file mode 100644 index f7a6775..0000000 --- a/lib/osx/include/steam/steam_api_interop.cs +++ /dev/null @@ -1,10470 +0,0 @@ -//====== Copyright 1996-2016, Valve Corporation, All rights reserved. ======= -// -// Purpose: This file contains C#/managed code bindings for the SteamAPI interfaces -// This file is auto-generated, do not edit it. -// -//============================================================================= - -using System; -using System.Runtime.InteropServices; -using Valve.Steamworks; -using Valve.Interop; - -namespace Valve.Interop -{ - -public class NativeEntrypoints -{ - - -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_CreateSteamPipe")] -internal static extern uint SteamAPI_ISteamClient_CreateSteamPipe(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_BReleaseSteamPipe")] -internal static extern bool SteamAPI_ISteamClient_BReleaseSteamPipe(IntPtr instancePtr, uint hSteamPipe); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_ConnectToGlobalUser")] -internal static extern uint SteamAPI_ISteamClient_ConnectToGlobalUser(IntPtr instancePtr, uint hSteamPipe); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_CreateLocalUser")] -internal static extern uint SteamAPI_ISteamClient_CreateLocalUser(IntPtr instancePtr, ref uint phSteamPipe, uint eAccountType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_ReleaseUser")] -internal static extern void SteamAPI_ISteamClient_ReleaseUser(IntPtr instancePtr, uint hSteamPipe, uint hUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUser")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUser(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamGameServer")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamGameServer(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_SetLocalIPBinding")] -internal static extern void SteamAPI_ISteamClient_SetLocalIPBinding(IntPtr instancePtr, uint unIP, char usPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamFriends")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamFriends(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUtils")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUtils(IntPtr instancePtr, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamMatchmaking")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamMatchmaking(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamMatchmakingServers")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamMatchmakingServers(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamGenericInterface")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamGenericInterface(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUserStats")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUserStats(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamGameServerStats")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamGameServerStats(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamApps")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamApps(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamNetworking")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamNetworking(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamRemoteStorage")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamRemoteStorage(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamScreenshots")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamScreenshots(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetIPCCallCount")] -internal static extern uint SteamAPI_ISteamClient_GetIPCCallCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_SetWarningMessageHook")] -internal static extern void SteamAPI_ISteamClient_SetWarningMessageHook(IntPtr instancePtr, IntPtr pFunction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_BShutdownIfAllPipesClosed")] -internal static extern bool SteamAPI_ISteamClient_BShutdownIfAllPipesClosed(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamHTTP")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamHTTP(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUnifiedMessages")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUnifiedMessages(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamController")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamController(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUGC")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUGC(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamAppList")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamAppList(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamMusic")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamMusic(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamMusicRemote")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamMusicRemote(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamHTMLSurface")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamHTMLSurface(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamInventory")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamInventory(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamVideo")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamVideo(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetHSteamUser")] -internal static extern uint SteamAPI_ISteamUser_GetHSteamUser(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BLoggedOn")] -internal static extern bool SteamAPI_ISteamUser_BLoggedOn(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetSteamID")] -internal static extern ulong SteamAPI_ISteamUser_GetSteamID(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_InitiateGameConnection")] -internal static extern int SteamAPI_ISteamUser_InitiateGameConnection(IntPtr instancePtr, IntPtr pAuthBlob, int cbMaxAuthBlob, ulong steamIDGameServer, uint unIPServer, char usPortServer, bool bSecure); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_TerminateGameConnection")] -internal static extern void SteamAPI_ISteamUser_TerminateGameConnection(IntPtr instancePtr, uint unIPServer, char usPortServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_TrackAppUsageEvent")] -internal static extern void SteamAPI_ISteamUser_TrackAppUsageEvent(IntPtr instancePtr, ulong gameID, int eAppUsageEvent, string pchExtraInfo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetUserDataFolder")] -internal static extern bool SteamAPI_ISteamUser_GetUserDataFolder(IntPtr instancePtr, string pchBuffer, int cubBuffer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_StartVoiceRecording")] -internal static extern void SteamAPI_ISteamUser_StartVoiceRecording(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_StopVoiceRecording")] -internal static extern void SteamAPI_ISteamUser_StopVoiceRecording(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetAvailableVoice")] -internal static extern uint SteamAPI_ISteamUser_GetAvailableVoice(IntPtr instancePtr, ref uint pcbCompressed, ref uint pcbUncompressed, uint nUncompressedVoiceDesiredSampleRate); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetVoice")] -internal static extern uint SteamAPI_ISteamUser_GetVoice(IntPtr instancePtr, bool bWantCompressed, IntPtr pDestBuffer, uint cbDestBufferSize, ref uint nBytesWritten, bool bWantUncompressed, IntPtr pUncompressedDestBuffer, uint cbUncompressedDestBufferSize, ref uint nUncompressBytesWritten, uint nUncompressedVoiceDesiredSampleRate); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_DecompressVoice")] -internal static extern uint SteamAPI_ISteamUser_DecompressVoice(IntPtr instancePtr, IntPtr pCompressed, uint cbCompressed, IntPtr pDestBuffer, uint cbDestBufferSize, ref uint nBytesWritten, uint nDesiredSampleRate); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetVoiceOptimalSampleRate")] -internal static extern uint SteamAPI_ISteamUser_GetVoiceOptimalSampleRate(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetAuthSessionTicket")] -internal static extern uint SteamAPI_ISteamUser_GetAuthSessionTicket(IntPtr instancePtr, IntPtr pTicket, int cbMaxTicket, ref uint pcbTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BeginAuthSession")] -internal static extern uint SteamAPI_ISteamUser_BeginAuthSession(IntPtr instancePtr, IntPtr pAuthTicket, int cbAuthTicket, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_EndAuthSession")] -internal static extern void SteamAPI_ISteamUser_EndAuthSession(IntPtr instancePtr, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_CancelAuthTicket")] -internal static extern void SteamAPI_ISteamUser_CancelAuthTicket(IntPtr instancePtr, uint hAuthTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_UserHasLicenseForApp")] -internal static extern uint SteamAPI_ISteamUser_UserHasLicenseForApp(IntPtr instancePtr, ulong steamID, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsBehindNAT")] -internal static extern bool SteamAPI_ISteamUser_BIsBehindNAT(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_AdvertiseGame")] -internal static extern void SteamAPI_ISteamUser_AdvertiseGame(IntPtr instancePtr, ulong steamIDGameServer, uint unIPServer, char usPortServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_RequestEncryptedAppTicket")] -internal static extern ulong SteamAPI_ISteamUser_RequestEncryptedAppTicket(IntPtr instancePtr, IntPtr pDataToInclude, int cbDataToInclude); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetEncryptedAppTicket")] -internal static extern bool SteamAPI_ISteamUser_GetEncryptedAppTicket(IntPtr instancePtr, IntPtr pTicket, int cbMaxTicket, ref uint pcbTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetGameBadgeLevel")] -internal static extern int SteamAPI_ISteamUser_GetGameBadgeLevel(IntPtr instancePtr, int nSeries, bool bFoil); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetPlayerSteamLevel")] -internal static extern int SteamAPI_ISteamUser_GetPlayerSteamLevel(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_RequestStoreAuthURL")] -internal static extern ulong SteamAPI_ISteamUser_RequestStoreAuthURL(IntPtr instancePtr, string pchRedirectURL); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsPhoneVerified")] -internal static extern bool SteamAPI_ISteamUser_BIsPhoneVerified(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsTwoFactorEnabled")] -internal static extern bool SteamAPI_ISteamUser_BIsTwoFactorEnabled(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsPhoneIdentifying")] -internal static extern bool SteamAPI_ISteamUser_BIsPhoneIdentifying(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsPhoneRequiringVerification")] -internal static extern bool SteamAPI_ISteamUser_BIsPhoneRequiringVerification(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetPersonaName")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetPersonaName(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetPersonaName")] -internal static extern ulong SteamAPI_ISteamFriends_SetPersonaName(IntPtr instancePtr, string pchPersonaName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetPersonaState")] -internal static extern uint SteamAPI_ISteamFriends_GetPersonaState(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendCount")] -internal static extern int SteamAPI_ISteamFriends_GetFriendCount(IntPtr instancePtr, int iFriendFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetFriendByIndex(IntPtr instancePtr, int iFriend, int iFriendFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendRelationship")] -internal static extern uint SteamAPI_ISteamFriends_GetFriendRelationship(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendPersonaState")] -internal static extern uint SteamAPI_ISteamFriends_GetFriendPersonaState(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendPersonaName")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendPersonaName(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendGamePlayed")] -internal static extern bool SteamAPI_ISteamFriends_GetFriendGamePlayed(IntPtr instancePtr, ulong steamIDFriend, ref FriendGameInfo_t pFriendGameInfo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendPersonaNameHistory")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendPersonaNameHistory(IntPtr instancePtr, ulong steamIDFriend, int iPersonaName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendSteamLevel")] -internal static extern int SteamAPI_ISteamFriends_GetFriendSteamLevel(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetPlayerNickname")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetPlayerNickname(IntPtr instancePtr, ulong steamIDPlayer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupCount")] -internal static extern int SteamAPI_ISteamFriends_GetFriendsGroupCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex")] -internal static extern char SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex(IntPtr instancePtr, int iFG); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupName")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendsGroupName(IntPtr instancePtr, char friendsGroupID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupMembersCount")] -internal static extern int SteamAPI_ISteamFriends_GetFriendsGroupMembersCount(IntPtr instancePtr, char friendsGroupID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupMembersList")] -internal static extern void SteamAPI_ISteamFriends_GetFriendsGroupMembersList(IntPtr instancePtr, char friendsGroupID, [In, Out] CSteamID[] pOutSteamIDMembers, int nMembersCount); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_HasFriend")] -internal static extern bool SteamAPI_ISteamFriends_HasFriend(IntPtr instancePtr, ulong steamIDFriend, int iFriendFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanCount")] -internal static extern int SteamAPI_ISteamFriends_GetClanCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetClanByIndex(IntPtr instancePtr, int iClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanName")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetClanName(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanTag")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetClanTag(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanActivityCounts")] -internal static extern bool SteamAPI_ISteamFriends_GetClanActivityCounts(IntPtr instancePtr, ulong steamIDClan, ref int pnOnline, ref int pnInGame, ref int pnChatting); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_DownloadClanActivityCounts")] -internal static extern ulong SteamAPI_ISteamFriends_DownloadClanActivityCounts(IntPtr instancePtr, [In, Out] CSteamID[] psteamIDClans, int cClansToRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendCountFromSource")] -internal static extern int SteamAPI_ISteamFriends_GetFriendCountFromSource(IntPtr instancePtr, ulong steamIDSource); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendFromSourceByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetFriendFromSourceByIndex(IntPtr instancePtr, ulong steamIDSource, int iFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_IsUserInSource")] -internal static extern bool SteamAPI_ISteamFriends_IsUserInSource(IntPtr instancePtr, ulong steamIDUser, ulong steamIDSource); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetInGameVoiceSpeaking")] -internal static extern void SteamAPI_ISteamFriends_SetInGameVoiceSpeaking(IntPtr instancePtr, ulong steamIDUser, bool bSpeaking); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlay")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlay(IntPtr instancePtr, string pchDialog); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayToUser")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlayToUser(IntPtr instancePtr, string pchDialog, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage(IntPtr instancePtr, string pchURL); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayToStore")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlayToStore(IntPtr instancePtr, uint nAppID, char eFlag); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetPlayedWith")] -internal static extern void SteamAPI_ISteamFriends_SetPlayedWith(IntPtr instancePtr, ulong steamIDUserPlayedWith); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetSmallFriendAvatar")] -internal static extern int SteamAPI_ISteamFriends_GetSmallFriendAvatar(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetMediumFriendAvatar")] -internal static extern int SteamAPI_ISteamFriends_GetMediumFriendAvatar(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetLargeFriendAvatar")] -internal static extern int SteamAPI_ISteamFriends_GetLargeFriendAvatar(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_RequestUserInformation")] -internal static extern bool SteamAPI_ISteamFriends_RequestUserInformation(IntPtr instancePtr, ulong steamIDUser, bool bRequireNameOnly); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_RequestClanOfficerList")] -internal static extern ulong SteamAPI_ISteamFriends_RequestClanOfficerList(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanOwner")] -internal static extern ulong SteamAPI_ISteamFriends_GetClanOwner(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanOfficerCount")] -internal static extern int SteamAPI_ISteamFriends_GetClanOfficerCount(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanOfficerByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetClanOfficerByIndex(IntPtr instancePtr, ulong steamIDClan, int iOfficer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetUserRestrictions")] -internal static extern uint SteamAPI_ISteamFriends_GetUserRestrictions(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetRichPresence")] -internal static extern bool SteamAPI_ISteamFriends_SetRichPresence(IntPtr instancePtr, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ClearRichPresence")] -internal static extern void SteamAPI_ISteamFriends_ClearRichPresence(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendRichPresence")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendRichPresence(IntPtr instancePtr, ulong steamIDFriend, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount")] -internal static extern int SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex(IntPtr instancePtr, ulong steamIDFriend, int iKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_RequestFriendRichPresence")] -internal static extern void SteamAPI_ISteamFriends_RequestFriendRichPresence(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_InviteUserToGame")] -internal static extern bool SteamAPI_ISteamFriends_InviteUserToGame(IntPtr instancePtr, ulong steamIDFriend, string pchConnectString); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetCoplayFriendCount")] -internal static extern int SteamAPI_ISteamFriends_GetCoplayFriendCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetCoplayFriend")] -internal static extern ulong SteamAPI_ISteamFriends_GetCoplayFriend(IntPtr instancePtr, int iCoplayFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendCoplayTime")] -internal static extern int SteamAPI_ISteamFriends_GetFriendCoplayTime(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendCoplayGame")] -internal static extern uint SteamAPI_ISteamFriends_GetFriendCoplayGame(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_JoinClanChatRoom")] -internal static extern ulong SteamAPI_ISteamFriends_JoinClanChatRoom(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_LeaveClanChatRoom")] -internal static extern bool SteamAPI_ISteamFriends_LeaveClanChatRoom(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanChatMemberCount")] -internal static extern int SteamAPI_ISteamFriends_GetClanChatMemberCount(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetChatMemberByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetChatMemberByIndex(IntPtr instancePtr, ulong steamIDClan, int iUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SendClanChatMessage")] -internal static extern bool SteamAPI_ISteamFriends_SendClanChatMessage(IntPtr instancePtr, ulong steamIDClanChat, string pchText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanChatMessage")] -internal static extern int SteamAPI_ISteamFriends_GetClanChatMessage(IntPtr instancePtr, ulong steamIDClanChat, int iMessage, IntPtr prgchText, int cchTextMax, ref uint peChatEntryType, ref CSteamID psteamidChatter); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_IsClanChatAdmin")] -internal static extern bool SteamAPI_ISteamFriends_IsClanChatAdmin(IntPtr instancePtr, ulong steamIDClanChat, ulong steamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam")] -internal static extern bool SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam(IntPtr instancePtr, ulong steamIDClanChat); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_OpenClanChatWindowInSteam")] -internal static extern bool SteamAPI_ISteamFriends_OpenClanChatWindowInSteam(IntPtr instancePtr, ulong steamIDClanChat); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_CloseClanChatWindowInSteam")] -internal static extern bool SteamAPI_ISteamFriends_CloseClanChatWindowInSteam(IntPtr instancePtr, ulong steamIDClanChat); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetListenForFriendsMessages")] -internal static extern bool SteamAPI_ISteamFriends_SetListenForFriendsMessages(IntPtr instancePtr, bool bInterceptEnabled); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ReplyToFriendMessage")] -internal static extern bool SteamAPI_ISteamFriends_ReplyToFriendMessage(IntPtr instancePtr, ulong steamIDFriend, string pchMsgToSend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendMessage")] -internal static extern int SteamAPI_ISteamFriends_GetFriendMessage(IntPtr instancePtr, ulong steamIDFriend, int iMessageID, IntPtr pvData, int cubData, ref uint peChatEntryType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFollowerCount")] -internal static extern ulong SteamAPI_ISteamFriends_GetFollowerCount(IntPtr instancePtr, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_IsFollowing")] -internal static extern ulong SteamAPI_ISteamFriends_IsFollowing(IntPtr instancePtr, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_EnumerateFollowingList")] -internal static extern ulong SteamAPI_ISteamFriends_EnumerateFollowingList(IntPtr instancePtr, uint unStartIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetSecondsSinceAppActive")] -internal static extern uint SteamAPI_ISteamUtils_GetSecondsSinceAppActive(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetSecondsSinceComputerActive")] -internal static extern uint SteamAPI_ISteamUtils_GetSecondsSinceComputerActive(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetConnectedUniverse")] -internal static extern int SteamAPI_ISteamUtils_GetConnectedUniverse(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetServerRealTime")] -internal static extern uint SteamAPI_ISteamUtils_GetServerRealTime(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetIPCountry")] -internal static extern IntPtr SteamAPI_ISteamUtils_GetIPCountry(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetImageSize")] -internal static extern bool SteamAPI_ISteamUtils_GetImageSize(IntPtr instancePtr, int iImage, ref uint pnWidth, ref uint pnHeight); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetImageRGBA")] -internal static extern bool SteamAPI_ISteamUtils_GetImageRGBA(IntPtr instancePtr, int iImage, IntPtr pubDest, int nDestBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetCSERIPPort")] -internal static extern bool SteamAPI_ISteamUtils_GetCSERIPPort(IntPtr instancePtr, ref uint unIP, ref char usPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetCurrentBatteryPower")] -internal static extern byte SteamAPI_ISteamUtils_GetCurrentBatteryPower(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetAppID")] -internal static extern uint SteamAPI_ISteamUtils_GetAppID(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_SetOverlayNotificationPosition")] -internal static extern void SteamAPI_ISteamUtils_SetOverlayNotificationPosition(IntPtr instancePtr, uint eNotificationPosition); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsAPICallCompleted")] -internal static extern bool SteamAPI_ISteamUtils_IsAPICallCompleted(IntPtr instancePtr, ulong hSteamAPICall, ref bool pbFailed); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetAPICallFailureReason")] -internal static extern int SteamAPI_ISteamUtils_GetAPICallFailureReason(IntPtr instancePtr, ulong hSteamAPICall); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetAPICallResult")] -internal static extern bool SteamAPI_ISteamUtils_GetAPICallResult(IntPtr instancePtr, ulong hSteamAPICall, IntPtr pCallback, int cubCallback, int iCallbackExpected, ref bool pbFailed); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetIPCCallCount")] -internal static extern uint SteamAPI_ISteamUtils_GetIPCCallCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_SetWarningMessageHook")] -internal static extern void SteamAPI_ISteamUtils_SetWarningMessageHook(IntPtr instancePtr, IntPtr pFunction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsOverlayEnabled")] -internal static extern bool SteamAPI_ISteamUtils_IsOverlayEnabled(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_BOverlayNeedsPresent")] -internal static extern bool SteamAPI_ISteamUtils_BOverlayNeedsPresent(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_CheckFileSignature")] -internal static extern ulong SteamAPI_ISteamUtils_CheckFileSignature(IntPtr instancePtr, string szFileName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_ShowGamepadTextInput")] -internal static extern bool SteamAPI_ISteamUtils_ShowGamepadTextInput(IntPtr instancePtr, int eInputMode, int eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetEnteredGamepadTextLength")] -internal static extern uint SteamAPI_ISteamUtils_GetEnteredGamepadTextLength(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetEnteredGamepadTextInput")] -internal static extern bool SteamAPI_ISteamUtils_GetEnteredGamepadTextInput(IntPtr instancePtr, string pchText, uint cchText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetSteamUILanguage")] -internal static extern IntPtr SteamAPI_ISteamUtils_GetSteamUILanguage(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsSteamRunningInVR")] -internal static extern bool SteamAPI_ISteamUtils_IsSteamRunningInVR(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_SetOverlayNotificationInset")] -internal static extern void SteamAPI_ISteamUtils_SetOverlayNotificationInset(IntPtr instancePtr, int nHorizontalInset, int nVerticalInset); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsSteamInBigPictureMode")] -internal static extern bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_StartVRDashboard")] -internal static extern void SteamAPI_ISteamUtils_StartVRDashboard(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetFavoriteGameCount")] -internal static extern int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetFavoriteGame")] -internal static extern bool SteamAPI_ISteamMatchmaking_GetFavoriteGame(IntPtr instancePtr, int iGame, ref uint pnAppID, ref uint pnIP, ref char pnConnPort, ref char pnQueryPort, ref uint punFlags, ref uint pRTime32LastPlayedOnServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddFavoriteGame")] -internal static extern int SteamAPI_ISteamMatchmaking_AddFavoriteGame(IntPtr instancePtr, uint nAppID, uint nIP, char nConnPort, char nQueryPort, uint unFlags, uint rTime32LastPlayedOnServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_RemoveFavoriteGame")] -internal static extern bool SteamAPI_ISteamMatchmaking_RemoveFavoriteGame(IntPtr instancePtr, uint nAppID, uint nIP, char nConnPort, char nQueryPort, uint unFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_RequestLobbyList")] -internal static extern ulong SteamAPI_ISteamMatchmaking_RequestLobbyList(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter(IntPtr instancePtr, string pchKeyToMatch, string pchValueToMatch, uint eComparisonType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter(IntPtr instancePtr, string pchKeyToMatch, int nValueToMatch, uint eComparisonType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter(IntPtr instancePtr, string pchKeyToMatch, int nValueToBeCloseTo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(IntPtr instancePtr, int nSlotsAvailable); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter(IntPtr instancePtr, uint eLobbyDistanceFilter); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter(IntPtr instancePtr, int cMaxResults); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyByIndex")] -internal static extern ulong SteamAPI_ISteamMatchmaking_GetLobbyByIndex(IntPtr instancePtr, int iLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_CreateLobby")] -internal static extern ulong SteamAPI_ISteamMatchmaking_CreateLobby(IntPtr instancePtr, uint eLobbyType, int cMaxMembers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_JoinLobby")] -internal static extern ulong SteamAPI_ISteamMatchmaking_JoinLobby(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_LeaveLobby")] -internal static extern void SteamAPI_ISteamMatchmaking_LeaveLobby(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_InviteUserToLobby")] -internal static extern bool SteamAPI_ISteamMatchmaking_InviteUserToLobby(IntPtr instancePtr, ulong steamIDLobby, ulong steamIDInvitee); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetNumLobbyMembers")] -internal static extern int SteamAPI_ISteamMatchmaking_GetNumLobbyMembers(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex")] -internal static extern ulong SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex(IntPtr instancePtr, ulong steamIDLobby, int iMember); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyData")] -internal static extern IntPtr SteamAPI_ISteamMatchmaking_GetLobbyData(IntPtr instancePtr, ulong steamIDLobby, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyData")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyData(IntPtr instancePtr, ulong steamIDLobby, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyDataCount")] -internal static extern int SteamAPI_ISteamMatchmaking_GetLobbyDataCount(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex")] -internal static extern bool SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex(IntPtr instancePtr, ulong steamIDLobby, int iLobbyData, string pchKey, int cchKeyBufferSize, string pchValue, int cchValueBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_DeleteLobbyData")] -internal static extern bool SteamAPI_ISteamMatchmaking_DeleteLobbyData(IntPtr instancePtr, ulong steamIDLobby, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyMemberData")] -internal static extern IntPtr SteamAPI_ISteamMatchmaking_GetLobbyMemberData(IntPtr instancePtr, ulong steamIDLobby, ulong steamIDUser, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyMemberData")] -internal static extern void SteamAPI_ISteamMatchmaking_SetLobbyMemberData(IntPtr instancePtr, ulong steamIDLobby, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SendLobbyChatMsg")] -internal static extern bool SteamAPI_ISteamMatchmaking_SendLobbyChatMsg(IntPtr instancePtr, ulong steamIDLobby, IntPtr pvMsgBody, int cubMsgBody); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyChatEntry")] -internal static extern int SteamAPI_ISteamMatchmaking_GetLobbyChatEntry(IntPtr instancePtr, ulong steamIDLobby, int iChatID, ref CSteamID pSteamIDUser, IntPtr pvData, int cubData, ref uint peChatEntryType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_RequestLobbyData")] -internal static extern bool SteamAPI_ISteamMatchmaking_RequestLobbyData(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyGameServer")] -internal static extern void SteamAPI_ISteamMatchmaking_SetLobbyGameServer(IntPtr instancePtr, ulong steamIDLobby, uint unGameServerIP, char unGameServerPort, ulong steamIDGameServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyGameServer")] -internal static extern bool SteamAPI_ISteamMatchmaking_GetLobbyGameServer(IntPtr instancePtr, ulong steamIDLobby, ref uint punGameServerIP, ref char punGameServerPort, ref CSteamID psteamIDGameServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit(IntPtr instancePtr, ulong steamIDLobby, int cMaxMembers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit")] -internal static extern int SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyType")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyType(IntPtr instancePtr, ulong steamIDLobby, uint eLobbyType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyJoinable")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyJoinable(IntPtr instancePtr, ulong steamIDLobby, bool bLobbyJoinable); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyOwner")] -internal static extern ulong SteamAPI_ISteamMatchmaking_GetLobbyOwner(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyOwner")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyOwner(IntPtr instancePtr, ulong steamIDLobby, ulong steamIDNewOwner); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLinkedLobby")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLinkedLobby(IntPtr instancePtr, ulong steamIDLobby, ulong steamIDLobbyDependent); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded")] -internal static extern void SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded(IntPtr instancePtr, uint hRequest, int iServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond")] -internal static extern void SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond(IntPtr instancePtr, uint hRequest, int iServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete")] -internal static extern void SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete(IntPtr instancePtr, uint hRequest, uint response); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPingResponse_ServerResponded")] -internal static extern void SteamAPI_ISteamMatchmakingPingResponse_ServerResponded(IntPtr instancePtr, IntPtr server); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond")] -internal static extern void SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList")] -internal static extern void SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList(IntPtr instancePtr, string pchName, int nScore, float flTimePlayed); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond")] -internal static extern void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete")] -internal static extern void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded")] -internal static extern void SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded(IntPtr instancePtr, string pchRule, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond")] -internal static extern void SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete")] -internal static extern void SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestInternetServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestInternetServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestLANServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestLANServerList(IntPtr instancePtr, uint iApp, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_ReleaseRequest")] -internal static extern void SteamAPI_ISteamMatchmakingServers_ReleaseRequest(IntPtr instancePtr, uint hServerListRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_GetServerDetails")] -internal static extern IntPtr SteamAPI_ISteamMatchmakingServers_GetServerDetails(IntPtr instancePtr, uint hRequest, int iServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_CancelQuery")] -internal static extern void SteamAPI_ISteamMatchmakingServers_CancelQuery(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RefreshQuery")] -internal static extern void SteamAPI_ISteamMatchmakingServers_RefreshQuery(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_IsRefreshing")] -internal static extern bool SteamAPI_ISteamMatchmakingServers_IsRefreshing(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_GetServerCount")] -internal static extern int SteamAPI_ISteamMatchmakingServers_GetServerCount(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RefreshServer")] -internal static extern void SteamAPI_ISteamMatchmakingServers_RefreshServer(IntPtr instancePtr, uint hRequest, int iServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_PingServer")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_PingServer(IntPtr instancePtr, uint unIP, char usPort, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_PlayerDetails")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_PlayerDetails(IntPtr instancePtr, uint unIP, char usPort, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_ServerRules")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_ServerRules(IntPtr instancePtr, uint unIP, char usPort, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_CancelServerQuery")] -internal static extern void SteamAPI_ISteamMatchmakingServers_CancelServerQuery(IntPtr instancePtr, uint hServerQuery); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWrite")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileWrite(IntPtr instancePtr, string pchFile, IntPtr pvData, int cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileRead")] -internal static extern int SteamAPI_ISteamRemoteStorage_FileRead(IntPtr instancePtr, string pchFile, IntPtr pvData, int cubDataToRead); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteAsync")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_FileWriteAsync(IntPtr instancePtr, string pchFile, IntPtr pvData, uint cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileReadAsync")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_FileReadAsync(IntPtr instancePtr, string pchFile, uint nOffset, uint cubToRead); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete(IntPtr instancePtr, ulong hReadCall, IntPtr pvBuffer, uint cubToRead); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileForget")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileForget(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileDelete")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileDelete(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileShare")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_FileShare(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_SetSyncPlatforms")] -internal static extern bool SteamAPI_ISteamRemoteStorage_SetSyncPlatforms(IntPtr instancePtr, string pchFile, uint eRemoteStoragePlatform); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk(IntPtr instancePtr, ulong writeHandle, IntPtr pvData, int cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamClose")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileWriteStreamClose(IntPtr instancePtr, ulong writeHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel(IntPtr instancePtr, ulong writeHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileExists")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileExists(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FilePersisted")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FilePersisted(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileSize")] -internal static extern int SteamAPI_ISteamRemoteStorage_GetFileSize(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileTimestamp")] -internal static extern long SteamAPI_ISteamRemoteStorage_GetFileTimestamp(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetSyncPlatforms")] -internal static extern uint SteamAPI_ISteamRemoteStorage_GetSyncPlatforms(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileCount")] -internal static extern int SteamAPI_ISteamRemoteStorage_GetFileCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileNameAndSize")] -internal static extern IntPtr SteamAPI_ISteamRemoteStorage_GetFileNameAndSize(IntPtr instancePtr, int iFile, ref int pnFileSizeInBytes); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetQuota")] -internal static extern bool SteamAPI_ISteamRemoteStorage_GetQuota(IntPtr instancePtr, ref ulong pnTotalBytes, ref ulong puAvailableBytes); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount")] -internal static extern bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp")] -internal static extern bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp")] -internal static extern void SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp(IntPtr instancePtr, bool bEnabled); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UGCDownload")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_UGCDownload(IntPtr instancePtr, ulong hContent, uint unPriority); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress")] -internal static extern bool SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress(IntPtr instancePtr, ulong hContent, ref int pnBytesDownloaded, ref int pnBytesExpected); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetUGCDetails")] -internal static extern bool SteamAPI_ISteamRemoteStorage_GetUGCDetails(IntPtr instancePtr, ulong hContent, ref uint pnAppID, System.Text.StringBuilder ppchName, ref int pnFileSizeInBytes, ref CSteamID pSteamIDOwner); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UGCRead")] -internal static extern int SteamAPI_ISteamRemoteStorage_UGCRead(IntPtr instancePtr, ulong hContent, IntPtr pvData, int cubDataToRead, uint cOffset, uint eAction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetCachedUGCCount")] -internal static extern int SteamAPI_ISteamRemoteStorage_GetCachedUGCCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle(IntPtr instancePtr, int iCachedContent); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_PublishWorkshopFile")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_PublishWorkshopFile(IntPtr instancePtr, string pchFile, string pchPreviewFile, uint nConsumerAppId, string pchTitle, string pchDescription, uint eVisibility, ref SteamParamStringArray_t pTags, uint eWorkshopFileType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile(IntPtr instancePtr, ulong updateHandle, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile(IntPtr instancePtr, ulong updateHandle, string pchPreviewFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle(IntPtr instancePtr, ulong updateHandle, string pchTitle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription(IntPtr instancePtr, ulong updateHandle, string pchDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility(IntPtr instancePtr, ulong updateHandle, uint eVisibility); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags(IntPtr instancePtr, ulong updateHandle, ref SteamParamStringArray_t pTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate(IntPtr instancePtr, ulong updateHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails(IntPtr instancePtr, ulong unPublishedFileId, uint unMaxSecondsOld); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_DeletePublishedFile")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_DeletePublishedFile(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles(IntPtr instancePtr, uint unStartIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_SubscribePublishedFile")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_SubscribePublishedFile(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles(IntPtr instancePtr, uint unStartIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(IntPtr instancePtr, ulong updateHandle, string pchChangeDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote(IntPtr instancePtr, ulong unPublishedFileId, bool bVoteUp); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(IntPtr instancePtr, ulong steamId, uint unStartIndex, ref SteamParamStringArray_t pRequiredTags, ref SteamParamStringArray_t pExcludedTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_PublishVideo")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_PublishVideo(IntPtr instancePtr, uint eVideoProvider, string pchVideoAccount, string pchVideoIdentifier, string pchPreviewFile, uint nConsumerAppId, string pchTitle, string pchDescription, uint eVisibility, ref SteamParamStringArray_t pTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction(IntPtr instancePtr, ulong unPublishedFileId, uint eAction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(IntPtr instancePtr, uint eAction, uint unStartIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(IntPtr instancePtr, uint eEnumerationType, uint unStartIndex, uint unCount, uint unDays, ref SteamParamStringArray_t pTags, ref SteamParamStringArray_t pUserTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation(IntPtr instancePtr, ulong hContent, string pchLocation, uint unPriority); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_RequestCurrentStats")] -internal static extern bool SteamAPI_ISteamUserStats_RequestCurrentStats(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetStat")] -internal static extern bool SteamAPI_ISteamUserStats_GetStat(IntPtr instancePtr, string pchName, ref int pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetStat0")] -internal static extern bool SteamAPI_ISteamUserStats_GetStat0(IntPtr instancePtr, string pchName, ref float pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_SetStat")] -internal static extern bool SteamAPI_ISteamUserStats_SetStat(IntPtr instancePtr, string pchName, int nData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_SetStat0")] -internal static extern bool SteamAPI_ISteamUserStats_SetStat0(IntPtr instancePtr, string pchName, float fData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_UpdateAvgRateStat")] -internal static extern bool SteamAPI_ISteamUserStats_UpdateAvgRateStat(IntPtr instancePtr, string pchName, float flCountThisSession, double dSessionLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievement")] -internal static extern bool SteamAPI_ISteamUserStats_GetAchievement(IntPtr instancePtr, string pchName, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_SetAchievement")] -internal static extern bool SteamAPI_ISteamUserStats_SetAchievement(IntPtr instancePtr, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_ClearAchievement")] -internal static extern bool SteamAPI_ISteamUserStats_ClearAchievement(IntPtr instancePtr, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime")] -internal static extern bool SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime(IntPtr instancePtr, string pchName, ref bool pbAchieved, ref uint punUnlockTime); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_StoreStats")] -internal static extern bool SteamAPI_ISteamUserStats_StoreStats(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementIcon")] -internal static extern int SteamAPI_ISteamUserStats_GetAchievementIcon(IntPtr instancePtr, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute")] -internal static extern IntPtr SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute(IntPtr instancePtr, string pchName, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_IndicateAchievementProgress")] -internal static extern bool SteamAPI_ISteamUserStats_IndicateAchievementProgress(IntPtr instancePtr, string pchName, uint nCurProgress, uint nMaxProgress); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetNumAchievements")] -internal static extern uint SteamAPI_ISteamUserStats_GetNumAchievements(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementName")] -internal static extern IntPtr SteamAPI_ISteamUserStats_GetAchievementName(IntPtr instancePtr, uint iAchievement); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_RequestUserStats")] -internal static extern ulong SteamAPI_ISteamUserStats_RequestUserStats(IntPtr instancePtr, ulong steamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetUserStat")] -internal static extern bool SteamAPI_ISteamUserStats_GetUserStat(IntPtr instancePtr, ulong steamIDUser, string pchName, ref int pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetUserStat0")] -internal static extern bool SteamAPI_ISteamUserStats_GetUserStat0(IntPtr instancePtr, ulong steamIDUser, string pchName, ref float pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetUserAchievement")] -internal static extern bool SteamAPI_ISteamUserStats_GetUserAchievement(IntPtr instancePtr, ulong steamIDUser, string pchName, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime")] -internal static extern bool SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime(IntPtr instancePtr, ulong steamIDUser, string pchName, ref bool pbAchieved, ref uint punUnlockTime); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_ResetAllStats")] -internal static extern bool SteamAPI_ISteamUserStats_ResetAllStats(IntPtr instancePtr, bool bAchievementsToo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_FindOrCreateLeaderboard")] -internal static extern ulong SteamAPI_ISteamUserStats_FindOrCreateLeaderboard(IntPtr instancePtr, string pchLeaderboardName, uint eLeaderboardSortMethod, uint eLeaderboardDisplayType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_FindLeaderboard")] -internal static extern ulong SteamAPI_ISteamUserStats_FindLeaderboard(IntPtr instancePtr, string pchLeaderboardName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardName")] -internal static extern IntPtr SteamAPI_ISteamUserStats_GetLeaderboardName(IntPtr instancePtr, ulong hSteamLeaderboard); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardEntryCount")] -internal static extern int SteamAPI_ISteamUserStats_GetLeaderboardEntryCount(IntPtr instancePtr, ulong hSteamLeaderboard); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardSortMethod")] -internal static extern uint SteamAPI_ISteamUserStats_GetLeaderboardSortMethod(IntPtr instancePtr, ulong hSteamLeaderboard); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardDisplayType")] -internal static extern uint SteamAPI_ISteamUserStats_GetLeaderboardDisplayType(IntPtr instancePtr, ulong hSteamLeaderboard); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_DownloadLeaderboardEntries")] -internal static extern ulong SteamAPI_ISteamUserStats_DownloadLeaderboardEntries(IntPtr instancePtr, ulong hSteamLeaderboard, uint eLeaderboardDataRequest, int nRangeStart, int nRangeEnd); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers")] -internal static extern ulong SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers(IntPtr instancePtr, ulong hSteamLeaderboard, [In, Out] CSteamID[] prgUsers, int cUsers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry")] -internal static extern bool SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry(IntPtr instancePtr, ulong hSteamLeaderboardEntries, int index, ref LeaderboardEntry_t pLeaderboardEntry, ref int pDetails, int cDetailsMax); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_UploadLeaderboardScore")] -internal static extern ulong SteamAPI_ISteamUserStats_UploadLeaderboardScore(IntPtr instancePtr, ulong hSteamLeaderboard, uint eLeaderboardUploadScoreMethod, int nScore, ref int pScoreDetails, int cScoreDetailsCount); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_AttachLeaderboardUGC")] -internal static extern ulong SteamAPI_ISteamUserStats_AttachLeaderboardUGC(IntPtr instancePtr, ulong hSteamLeaderboard, ulong hUGC); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers")] -internal static extern ulong SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages")] -internal static extern ulong SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo")] -internal static extern int SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo(IntPtr instancePtr, string pchName, uint unNameBufLen, ref float pflPercent, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo")] -internal static extern int SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo(IntPtr instancePtr, int iIteratorPrevious, string pchName, uint unNameBufLen, ref float pflPercent, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementAchievedPercent")] -internal static extern bool SteamAPI_ISteamUserStats_GetAchievementAchievedPercent(IntPtr instancePtr, string pchName, ref float pflPercent); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_RequestGlobalStats")] -internal static extern ulong SteamAPI_ISteamUserStats_RequestGlobalStats(IntPtr instancePtr, int nHistoryDays); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStat")] -internal static extern bool SteamAPI_ISteamUserStats_GetGlobalStat(IntPtr instancePtr, string pchStatName, ref long pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStat0")] -internal static extern bool SteamAPI_ISteamUserStats_GetGlobalStat0(IntPtr instancePtr, string pchStatName, ref double pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStatHistory")] -internal static extern int SteamAPI_ISteamUserStats_GetGlobalStatHistory(IntPtr instancePtr, string pchStatName, [In, Out] long[] pData, uint cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStatHistory0")] -internal static extern int SteamAPI_ISteamUserStats_GetGlobalStatHistory0(IntPtr instancePtr, string pchStatName, [In, Out] double[] pData, uint cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsSubscribed")] -internal static extern bool SteamAPI_ISteamApps_BIsSubscribed(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsLowViolence")] -internal static extern bool SteamAPI_ISteamApps_BIsLowViolence(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsCybercafe")] -internal static extern bool SteamAPI_ISteamApps_BIsCybercafe(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsVACBanned")] -internal static extern bool SteamAPI_ISteamApps_BIsVACBanned(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetCurrentGameLanguage")] -internal static extern IntPtr SteamAPI_ISteamApps_GetCurrentGameLanguage(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetAvailableGameLanguages")] -internal static extern IntPtr SteamAPI_ISteamApps_GetAvailableGameLanguages(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsSubscribedApp")] -internal static extern bool SteamAPI_ISteamApps_BIsSubscribedApp(IntPtr instancePtr, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsDlcInstalled")] -internal static extern bool SteamAPI_ISteamApps_BIsDlcInstalled(IntPtr instancePtr, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime")] -internal static extern uint SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend")] -internal static extern bool SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetDLCCount")] -internal static extern int SteamAPI_ISteamApps_GetDLCCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BGetDLCDataByIndex")] -internal static extern bool SteamAPI_ISteamApps_BGetDLCDataByIndex(IntPtr instancePtr, int iDLC, ref uint pAppID, ref bool pbAvailable, string pchName, int cchNameBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_InstallDLC")] -internal static extern void SteamAPI_ISteamApps_InstallDLC(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_UninstallDLC")] -internal static extern void SteamAPI_ISteamApps_UninstallDLC(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey")] -internal static extern void SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetCurrentBetaName")] -internal static extern bool SteamAPI_ISteamApps_GetCurrentBetaName(IntPtr instancePtr, string pchName, int cchNameBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_MarkContentCorrupt")] -internal static extern bool SteamAPI_ISteamApps_MarkContentCorrupt(IntPtr instancePtr, bool bMissingFilesOnly); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetInstalledDepots")] -internal static extern uint SteamAPI_ISteamApps_GetInstalledDepots(IntPtr instancePtr, uint appID, ref uint pvecDepots, uint cMaxDepots); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetAppInstallDir")] -internal static extern uint SteamAPI_ISteamApps_GetAppInstallDir(IntPtr instancePtr, uint appID, string pchFolder, uint cchFolderBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsAppInstalled")] -internal static extern bool SteamAPI_ISteamApps_BIsAppInstalled(IntPtr instancePtr, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetAppOwner")] -internal static extern ulong SteamAPI_ISteamApps_GetAppOwner(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetLaunchQueryParam")] -internal static extern IntPtr SteamAPI_ISteamApps_GetLaunchQueryParam(IntPtr instancePtr, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetDlcDownloadProgress")] -internal static extern bool SteamAPI_ISteamApps_GetDlcDownloadProgress(IntPtr instancePtr, uint nAppID, ref ulong punBytesDownloaded, ref ulong punBytesTotal); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetAppBuildId")] -internal static extern int SteamAPI_ISteamApps_GetAppBuildId(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys")] -internal static extern void SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetFileDetails")] -internal static extern ulong SteamAPI_ISteamApps_GetFileDetails(IntPtr instancePtr, string pszFileName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_SendP2PPacket")] -internal static extern bool SteamAPI_ISteamNetworking_SendP2PPacket(IntPtr instancePtr, ulong steamIDRemote, IntPtr pubData, uint cubData, uint eP2PSendType, int nChannel); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_IsP2PPacketAvailable")] -internal static extern bool SteamAPI_ISteamNetworking_IsP2PPacketAvailable(IntPtr instancePtr, ref uint pcubMsgSize, int nChannel); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_ReadP2PPacket")] -internal static extern bool SteamAPI_ISteamNetworking_ReadP2PPacket(IntPtr instancePtr, IntPtr pubDest, uint cubDest, ref uint pcubMsgSize, ref CSteamID psteamIDRemote, int nChannel); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser")] -internal static extern bool SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser(IntPtr instancePtr, ulong steamIDRemote); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CloseP2PSessionWithUser")] -internal static extern bool SteamAPI_ISteamNetworking_CloseP2PSessionWithUser(IntPtr instancePtr, ulong steamIDRemote); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CloseP2PChannelWithUser")] -internal static extern bool SteamAPI_ISteamNetworking_CloseP2PChannelWithUser(IntPtr instancePtr, ulong steamIDRemote, int nChannel); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetP2PSessionState")] -internal static extern bool SteamAPI_ISteamNetworking_GetP2PSessionState(IntPtr instancePtr, ulong steamIDRemote, ref P2PSessionState_t pConnectionState); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_AllowP2PPacketRelay")] -internal static extern bool SteamAPI_ISteamNetworking_AllowP2PPacketRelay(IntPtr instancePtr, bool bAllow); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CreateListenSocket")] -internal static extern uint SteamAPI_ISteamNetworking_CreateListenSocket(IntPtr instancePtr, int nVirtualP2PPort, uint nIP, char nPort, bool bAllowUseOfPacketRelay); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CreateP2PConnectionSocket")] -internal static extern uint SteamAPI_ISteamNetworking_CreateP2PConnectionSocket(IntPtr instancePtr, ulong steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CreateConnectionSocket")] -internal static extern uint SteamAPI_ISteamNetworking_CreateConnectionSocket(IntPtr instancePtr, uint nIP, char nPort, int nTimeoutSec); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_DestroySocket")] -internal static extern bool SteamAPI_ISteamNetworking_DestroySocket(IntPtr instancePtr, uint hSocket, bool bNotifyRemoteEnd); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_DestroyListenSocket")] -internal static extern bool SteamAPI_ISteamNetworking_DestroyListenSocket(IntPtr instancePtr, uint hSocket, bool bNotifyRemoteEnd); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_SendDataOnSocket")] -internal static extern bool SteamAPI_ISteamNetworking_SendDataOnSocket(IntPtr instancePtr, uint hSocket, IntPtr pubData, uint cubData, bool bReliable); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_IsDataAvailableOnSocket")] -internal static extern bool SteamAPI_ISteamNetworking_IsDataAvailableOnSocket(IntPtr instancePtr, uint hSocket, ref uint pcubMsgSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_RetrieveDataFromSocket")] -internal static extern bool SteamAPI_ISteamNetworking_RetrieveDataFromSocket(IntPtr instancePtr, uint hSocket, IntPtr pubDest, uint cubDest, ref uint pcubMsgSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_IsDataAvailable")] -internal static extern bool SteamAPI_ISteamNetworking_IsDataAvailable(IntPtr instancePtr, uint hListenSocket, ref uint pcubMsgSize, ref uint phSocket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_RetrieveData")] -internal static extern bool SteamAPI_ISteamNetworking_RetrieveData(IntPtr instancePtr, uint hListenSocket, IntPtr pubDest, uint cubDest, ref uint pcubMsgSize, ref uint phSocket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetSocketInfo")] -internal static extern bool SteamAPI_ISteamNetworking_GetSocketInfo(IntPtr instancePtr, uint hSocket, ref CSteamID pSteamIDRemote, ref int peSocketStatus, ref uint punIPRemote, ref char punPortRemote); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetListenSocketInfo")] -internal static extern bool SteamAPI_ISteamNetworking_GetListenSocketInfo(IntPtr instancePtr, uint hListenSocket, ref uint pnIP, ref char pnPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetSocketConnectionType")] -internal static extern uint SteamAPI_ISteamNetworking_GetSocketConnectionType(IntPtr instancePtr, uint hSocket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetMaxPacketSize")] -internal static extern int SteamAPI_ISteamNetworking_GetMaxPacketSize(IntPtr instancePtr, uint hSocket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_WriteScreenshot")] -internal static extern uint SteamAPI_ISteamScreenshots_WriteScreenshot(IntPtr instancePtr, IntPtr pubRGB, uint cubRGB, int nWidth, int nHeight); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_AddScreenshotToLibrary")] -internal static extern uint SteamAPI_ISteamScreenshots_AddScreenshotToLibrary(IntPtr instancePtr, string pchFilename, string pchThumbnailFilename, int nWidth, int nHeight); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_TriggerScreenshot")] -internal static extern void SteamAPI_ISteamScreenshots_TriggerScreenshot(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_HookScreenshots")] -internal static extern void SteamAPI_ISteamScreenshots_HookScreenshots(IntPtr instancePtr, bool bHook); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_SetLocation")] -internal static extern bool SteamAPI_ISteamScreenshots_SetLocation(IntPtr instancePtr, uint hScreenshot, string pchLocation); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_TagUser")] -internal static extern bool SteamAPI_ISteamScreenshots_TagUser(IntPtr instancePtr, uint hScreenshot, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_TagPublishedFile")] -internal static extern bool SteamAPI_ISteamScreenshots_TagPublishedFile(IntPtr instancePtr, uint hScreenshot, ulong unPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_IsScreenshotsHooked")] -internal static extern bool SteamAPI_ISteamScreenshots_IsScreenshotsHooked(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary")] -internal static extern uint SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary(IntPtr instancePtr, uint eType, string pchFilename, string pchVRFilename); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_BIsEnabled")] -internal static extern bool SteamAPI_ISteamMusic_BIsEnabled(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_BIsPlaying")] -internal static extern bool SteamAPI_ISteamMusic_BIsPlaying(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_GetPlaybackStatus")] -internal static extern int SteamAPI_ISteamMusic_GetPlaybackStatus(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_Play")] -internal static extern void SteamAPI_ISteamMusic_Play(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_Pause")] -internal static extern void SteamAPI_ISteamMusic_Pause(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_PlayPrevious")] -internal static extern void SteamAPI_ISteamMusic_PlayPrevious(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_PlayNext")] -internal static extern void SteamAPI_ISteamMusic_PlayNext(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_SetVolume")] -internal static extern void SteamAPI_ISteamMusic_SetVolume(IntPtr instancePtr, float flVolume); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_GetVolume")] -internal static extern float SteamAPI_ISteamMusic_GetVolume(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote")] -internal static extern bool SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote(IntPtr instancePtr, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote")] -internal static extern bool SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote")] -internal static extern bool SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_BActivationSuccess")] -internal static extern bool SteamAPI_ISteamMusicRemote_BActivationSuccess(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetDisplayName")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetDisplayName(IntPtr instancePtr, string pchDisplayName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64(IntPtr instancePtr, IntPtr pvBuffer, uint cbBufferLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnablePlayPrevious")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnablePlayPrevious(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnablePlayNext")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnablePlayNext(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnableShuffled")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnableShuffled(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnableLooped")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnableLooped(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnableQueue")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnableQueue(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnablePlaylists")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnablePlaylists(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus(IntPtr instancePtr, int nStatus); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateShuffled")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateShuffled(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateLooped")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateLooped(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateVolume")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateVolume(IntPtr instancePtr, float flValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_CurrentEntryWillChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_CurrentEntryWillChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable")] -internal static extern bool SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable(IntPtr instancePtr, bool bAvailable); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText(IntPtr instancePtr, string pchText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds(IntPtr instancePtr, int nValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt(IntPtr instancePtr, IntPtr pvBuffer, uint cbBufferLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_CurrentEntryDidChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_CurrentEntryDidChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_QueueWillChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_QueueWillChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_ResetQueueEntries")] -internal static extern bool SteamAPI_ISteamMusicRemote_ResetQueueEntries(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetQueueEntry")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetQueueEntry(IntPtr instancePtr, int nID, int nPosition, string pchEntryText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry(IntPtr instancePtr, int nID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_QueueDidChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_QueueDidChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_PlaylistWillChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_PlaylistWillChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_ResetPlaylistEntries")] -internal static extern bool SteamAPI_ISteamMusicRemote_ResetPlaylistEntries(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetPlaylistEntry")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetPlaylistEntry(IntPtr instancePtr, int nID, int nPosition, string pchEntryText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry(IntPtr instancePtr, int nID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_PlaylistDidChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_PlaylistDidChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_CreateHTTPRequest")] -internal static extern uint SteamAPI_ISteamHTTP_CreateHTTPRequest(IntPtr instancePtr, uint eHTTPRequestMethod, string pchAbsoluteURL); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestContextValue")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestContextValue(IntPtr instancePtr, uint hRequest, ulong ulContextValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(IntPtr instancePtr, uint hRequest, uint unTimeoutSeconds); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue(IntPtr instancePtr, uint hRequest, string pchHeaderName, string pchHeaderValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter(IntPtr instancePtr, uint hRequest, string pchParamName, string pchParamValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SendHTTPRequest")] -internal static extern bool SteamAPI_ISteamHTTP_SendHTTPRequest(IntPtr instancePtr, uint hRequest, ref ulong pCallHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse")] -internal static extern bool SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse(IntPtr instancePtr, uint hRequest, ref ulong pCallHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_DeferHTTPRequest")] -internal static extern bool SteamAPI_ISteamHTTP_DeferHTTPRequest(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_PrioritizeHTTPRequest")] -internal static extern bool SteamAPI_ISteamHTTP_PrioritizeHTTPRequest(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize(IntPtr instancePtr, uint hRequest, string pchHeaderName, ref uint unResponseHeaderSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue(IntPtr instancePtr, uint hRequest, string pchHeaderName, IntPtr pHeaderValueBuffer, uint unBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseBodySize")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPResponseBodySize(IntPtr instancePtr, uint hRequest, ref uint unBodySize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseBodyData")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPResponseBodyData(IntPtr instancePtr, uint hRequest, IntPtr pBodyDataBuffer, uint unBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData(IntPtr instancePtr, uint hRequest, uint cOffset, IntPtr pBodyDataBuffer, uint unBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_ReleaseHTTPRequest")] -internal static extern bool SteamAPI_ISteamHTTP_ReleaseHTTPRequest(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct(IntPtr instancePtr, uint hRequest, ref float pflPercentOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody(IntPtr instancePtr, uint hRequest, string pchContentType, IntPtr pubBody, uint unBodyLen); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_CreateCookieContainer")] -internal static extern uint SteamAPI_ISteamHTTP_CreateCookieContainer(IntPtr instancePtr, bool bAllowResponsesToModify); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_ReleaseCookieContainer")] -internal static extern bool SteamAPI_ISteamHTTP_ReleaseCookieContainer(IntPtr instancePtr, uint hCookieContainer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetCookie")] -internal static extern bool SteamAPI_ISteamHTTP_SetCookie(IntPtr instancePtr, uint hCookieContainer, string pchHost, string pchUrl, string pchCookie); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer(IntPtr instancePtr, uint hRequest, uint hCookieContainer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo(IntPtr instancePtr, uint hRequest, string pchUserAgentInfo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(IntPtr instancePtr, uint hRequest, bool bRequireVerifiedCertificate); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(IntPtr instancePtr, uint hRequest, uint unMilliseconds); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut(IntPtr instancePtr, uint hRequest, ref bool pbWasTimedOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_SendMethod")] -internal static extern ulong SteamAPI_ISteamUnifiedMessages_SendMethod(IntPtr instancePtr, string pchServiceMethod, IntPtr pRequestBuffer, uint unRequestBufferSize, ulong unContext); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_GetMethodResponseInfo")] -internal static extern bool SteamAPI_ISteamUnifiedMessages_GetMethodResponseInfo(IntPtr instancePtr, ulong hHandle, ref uint punResponseSize, ref uint peResult); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_GetMethodResponseData")] -internal static extern bool SteamAPI_ISteamUnifiedMessages_GetMethodResponseData(IntPtr instancePtr, ulong hHandle, IntPtr pResponseBuffer, uint unResponseBufferSize, bool bAutoRelease); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_ReleaseMethod")] -internal static extern bool SteamAPI_ISteamUnifiedMessages_ReleaseMethod(IntPtr instancePtr, ulong hHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_SendNotification")] -internal static extern bool SteamAPI_ISteamUnifiedMessages_SendNotification(IntPtr instancePtr, string pchServiceNotification, IntPtr pNotificationBuffer, uint unNotificationBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_Init")] -internal static extern bool SteamAPI_ISteamController_Init(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_Shutdown")] -internal static extern bool SteamAPI_ISteamController_Shutdown(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_RunFrame")] -internal static extern void SteamAPI_ISteamController_RunFrame(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetConnectedControllers")] -internal static extern int SteamAPI_ISteamController_GetConnectedControllers(IntPtr instancePtr, ref ulong handlesOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ShowBindingPanel")] -internal static extern bool SteamAPI_ISteamController_ShowBindingPanel(IntPtr instancePtr, ulong controllerHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetActionSetHandle")] -internal static extern ulong SteamAPI_ISteamController_GetActionSetHandle(IntPtr instancePtr, string pszActionSetName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ActivateActionSet")] -internal static extern void SteamAPI_ISteamController_ActivateActionSet(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetCurrentActionSet")] -internal static extern ulong SteamAPI_ISteamController_GetCurrentActionSet(IntPtr instancePtr, ulong controllerHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetDigitalActionHandle")] -internal static extern ulong SteamAPI_ISteamController_GetDigitalActionHandle(IntPtr instancePtr, string pszActionName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetDigitalActionData")] -internal static extern ControllerDigitalActionData_t SteamAPI_ISteamController_GetDigitalActionData(IntPtr instancePtr, ulong controllerHandle, ulong digitalActionHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetDigitalActionOrigins")] -internal static extern int SteamAPI_ISteamController_GetDigitalActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle, ulong digitalActionHandle, ref uint originsOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetAnalogActionHandle")] -internal static extern ulong SteamAPI_ISteamController_GetAnalogActionHandle(IntPtr instancePtr, string pszActionName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetAnalogActionData")] -internal static extern ControllerAnalogActionData_t SteamAPI_ISteamController_GetAnalogActionData(IntPtr instancePtr, ulong controllerHandle, ulong analogActionHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetAnalogActionOrigins")] -internal static extern int SteamAPI_ISteamController_GetAnalogActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle, ulong analogActionHandle, ref uint originsOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_StopAnalogActionMomentum")] -internal static extern void SteamAPI_ISteamController_StopAnalogActionMomentum(IntPtr instancePtr, ulong controllerHandle, ulong eAction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_TriggerHapticPulse")] -internal static extern void SteamAPI_ISteamController_TriggerHapticPulse(IntPtr instancePtr, ulong controllerHandle, uint eTargetPad, char usDurationMicroSec); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_TriggerRepeatedHapticPulse")] -internal static extern void SteamAPI_ISteamController_TriggerRepeatedHapticPulse(IntPtr instancePtr, ulong controllerHandle, uint eTargetPad, char usDurationMicroSec, char usOffMicroSec, char unRepeat, uint nFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetGamepadIndexForController")] -internal static extern int SteamAPI_ISteamController_GetGamepadIndexForController(IntPtr instancePtr, ulong ulControllerHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetControllerForGamepadIndex")] -internal static extern ulong SteamAPI_ISteamController_GetControllerForGamepadIndex(IntPtr instancePtr, int nIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetMotionData")] -internal static extern ControllerMotionData_t SteamAPI_ISteamController_GetMotionData(IntPtr instancePtr, ulong controllerHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ShowDigitalActionOrigins")] -internal static extern bool SteamAPI_ISteamController_ShowDigitalActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong digitalActionHandle, float flScale, float flXPosition, float flYPosition); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ShowAnalogActionOrigins")] -internal static extern bool SteamAPI_ISteamController_ShowAnalogActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong analogActionHandle, float flScale, float flXPosition, float flYPosition); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateQueryUserUGCRequest")] -internal static extern ulong SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(IntPtr instancePtr, uint unAccountID, uint eListType, uint eMatchingUGCType, uint eSortOrder, uint nCreatorAppID, uint nConsumerAppID, uint unPage); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateQueryAllUGCRequest")] -internal static extern ulong SteamAPI_ISteamUGC_CreateQueryAllUGCRequest(IntPtr instancePtr, uint eQueryType, uint eMatchingeMatchingUGCTypeFileType, uint nCreatorAppID, uint nConsumerAppID, uint unPage); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest")] -internal static extern ulong SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint unNumPublishedFileIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SendQueryUGCRequest")] -internal static extern ulong SteamAPI_ISteamUGC_SendQueryUGCRequest(IntPtr instancePtr, ulong handle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCResult")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCResult(IntPtr instancePtr, ulong handle, uint index, ref SteamUGCDetails_t pDetails); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCPreviewURL")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCPreviewURL(IntPtr instancePtr, ulong handle, uint index, System.Text.StringBuilder pchURL, uint cchURLSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCMetadata")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCMetadata(IntPtr instancePtr, ulong handle, uint index, System.Text.StringBuilder pchMetadata, uint cchMetadatasize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCChildren")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCChildren(IntPtr instancePtr, ulong handle, uint index, ref ulong pvecPublishedFileID, uint cMaxEntries); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCStatistic")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCStatistic(IntPtr instancePtr, ulong handle, uint index, uint eStatType, ref ulong pStatValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews")] -internal static extern uint SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews(IntPtr instancePtr, ulong handle, uint index); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(IntPtr instancePtr, ulong handle, uint index, uint previewIndex, System.Text.StringBuilder pchURLOrVideoID, uint cchURLSize, System.Text.StringBuilder pchOriginalFileName, uint cchOriginalFileNameSize, ref uint pPreviewType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags")] -internal static extern uint SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(IntPtr instancePtr, ulong handle, uint index); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(IntPtr instancePtr, ulong handle, uint index, uint keyValueTagIndex, System.Text.StringBuilder pchKey, uint cchKeySize, System.Text.StringBuilder pchValue, uint cchValueSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_ReleaseQueryUGCRequest")] -internal static extern bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(IntPtr instancePtr, ulong handle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddRequiredTag")] -internal static extern bool SteamAPI_ISteamUGC_AddRequiredTag(IntPtr instancePtr, ulong handle, string pTagName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddExcludedTag")] -internal static extern bool SteamAPI_ISteamUGC_AddExcludedTag(IntPtr instancePtr, ulong handle, string pTagName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnOnlyIDs")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnOnlyIDs(IntPtr instancePtr, ulong handle, bool bReturnOnlyIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnKeyValueTags")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnKeyValueTags(IntPtr instancePtr, ulong handle, bool bReturnKeyValueTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnLongDescription")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnLongDescription(IntPtr instancePtr, ulong handle, bool bReturnLongDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnMetadata")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnMetadata(IntPtr instancePtr, ulong handle, bool bReturnMetadata); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnChildren")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnChildren(IntPtr instancePtr, ulong handle, bool bReturnChildren); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnAdditionalPreviews")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(IntPtr instancePtr, ulong handle, bool bReturnAdditionalPreviews); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnTotalOnly")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnTotalOnly(IntPtr instancePtr, ulong handle, bool bReturnTotalOnly); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetLanguage")] -internal static extern bool SteamAPI_ISteamUGC_SetLanguage(IntPtr instancePtr, ulong handle, string pchLanguage); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetAllowCachedResponse")] -internal static extern bool SteamAPI_ISteamUGC_SetAllowCachedResponse(IntPtr instancePtr, ulong handle, uint unMaxAgeSeconds); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetCloudFileNameFilter")] -internal static extern bool SteamAPI_ISteamUGC_SetCloudFileNameFilter(IntPtr instancePtr, ulong handle, string pMatchCloudFileName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetMatchAnyTag")] -internal static extern bool SteamAPI_ISteamUGC_SetMatchAnyTag(IntPtr instancePtr, ulong handle, bool bMatchAnyTag); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetSearchText")] -internal static extern bool SteamAPI_ISteamUGC_SetSearchText(IntPtr instancePtr, ulong handle, string pSearchText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetRankedByTrendDays")] -internal static extern bool SteamAPI_ISteamUGC_SetRankedByTrendDays(IntPtr instancePtr, ulong handle, uint unDays); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddRequiredKeyValueTag")] -internal static extern bool SteamAPI_ISteamUGC_AddRequiredKeyValueTag(IntPtr instancePtr, ulong handle, string pKey, string pValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RequestUGCDetails")] -internal static extern ulong SteamAPI_ISteamUGC_RequestUGCDetails(IntPtr instancePtr, ulong nPublishedFileID, uint unMaxAgeSeconds); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateItem")] -internal static extern ulong SteamAPI_ISteamUGC_CreateItem(IntPtr instancePtr, uint nConsumerAppId, uint eFileType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StartItemUpdate")] -internal static extern ulong SteamAPI_ISteamUGC_StartItemUpdate(IntPtr instancePtr, uint nConsumerAppId, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemTitle")] -internal static extern bool SteamAPI_ISteamUGC_SetItemTitle(IntPtr instancePtr, ulong handle, string pchTitle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemDescription")] -internal static extern bool SteamAPI_ISteamUGC_SetItemDescription(IntPtr instancePtr, ulong handle, string pchDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemUpdateLanguage")] -internal static extern bool SteamAPI_ISteamUGC_SetItemUpdateLanguage(IntPtr instancePtr, ulong handle, string pchLanguage); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemMetadata")] -internal static extern bool SteamAPI_ISteamUGC_SetItemMetadata(IntPtr instancePtr, ulong handle, string pchMetaData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemVisibility")] -internal static extern bool SteamAPI_ISteamUGC_SetItemVisibility(IntPtr instancePtr, ulong handle, uint eVisibility); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemTags")] -internal static extern bool SteamAPI_ISteamUGC_SetItemTags(IntPtr instancePtr, ulong updateHandle, ref SteamParamStringArray_t pTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemContent")] -internal static extern bool SteamAPI_ISteamUGC_SetItemContent(IntPtr instancePtr, ulong handle, string pszContentFolder); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemPreview")] -internal static extern bool SteamAPI_ISteamUGC_SetItemPreview(IntPtr instancePtr, ulong handle, string pszPreviewFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RemoveItemKeyValueTags")] -internal static extern bool SteamAPI_ISteamUGC_RemoveItemKeyValueTags(IntPtr instancePtr, ulong handle, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemKeyValueTag")] -internal static extern bool SteamAPI_ISteamUGC_AddItemKeyValueTag(IntPtr instancePtr, ulong handle, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemPreviewFile")] -internal static extern bool SteamAPI_ISteamUGC_AddItemPreviewFile(IntPtr instancePtr, ulong handle, string pszPreviewFile, uint type); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemPreviewVideo")] -internal static extern bool SteamAPI_ISteamUGC_AddItemPreviewVideo(IntPtr instancePtr, ulong handle, string pszVideoID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_UpdateItemPreviewFile")] -internal static extern bool SteamAPI_ISteamUGC_UpdateItemPreviewFile(IntPtr instancePtr, ulong handle, uint index, string pszPreviewFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_UpdateItemPreviewVideo")] -internal static extern bool SteamAPI_ISteamUGC_UpdateItemPreviewVideo(IntPtr instancePtr, ulong handle, uint index, string pszVideoID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RemoveItemPreview")] -internal static extern bool SteamAPI_ISteamUGC_RemoveItemPreview(IntPtr instancePtr, ulong handle, uint index); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SubmitItemUpdate")] -internal static extern ulong SteamAPI_ISteamUGC_SubmitItemUpdate(IntPtr instancePtr, ulong handle, string pchChangeNote); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetItemUpdateProgress")] -internal static extern uint SteamAPI_ISteamUGC_GetItemUpdateProgress(IntPtr instancePtr, ulong handle, ref ulong punBytesProcessed, ref ulong punBytesTotal); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetUserItemVote")] -internal static extern ulong SteamAPI_ISteamUGC_SetUserItemVote(IntPtr instancePtr, ulong nPublishedFileID, bool bVoteUp); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetUserItemVote")] -internal static extern ulong SteamAPI_ISteamUGC_GetUserItemVote(IntPtr instancePtr, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemToFavorites")] -internal static extern ulong SteamAPI_ISteamUGC_AddItemToFavorites(IntPtr instancePtr, uint nAppId, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RemoveItemFromFavorites")] -internal static extern ulong SteamAPI_ISteamUGC_RemoveItemFromFavorites(IntPtr instancePtr, uint nAppId, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SubscribeItem")] -internal static extern ulong SteamAPI_ISteamUGC_SubscribeItem(IntPtr instancePtr, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_UnsubscribeItem")] -internal static extern ulong SteamAPI_ISteamUGC_UnsubscribeItem(IntPtr instancePtr, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetNumSubscribedItems")] -internal static extern uint SteamAPI_ISteamUGC_GetNumSubscribedItems(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetSubscribedItems")] -internal static extern uint SteamAPI_ISteamUGC_GetSubscribedItems(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint cMaxEntries); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetItemState")] -internal static extern uint SteamAPI_ISteamUGC_GetItemState(IntPtr instancePtr, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetItemInstallInfo")] -internal static extern bool SteamAPI_ISteamUGC_GetItemInstallInfo(IntPtr instancePtr, ulong nPublishedFileID, ref ulong punSizeOnDisk, System.Text.StringBuilder pchFolder, uint cchFolderSize, ref uint punTimeStamp); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetItemDownloadInfo")] -internal static extern bool SteamAPI_ISteamUGC_GetItemDownloadInfo(IntPtr instancePtr, ulong nPublishedFileID, ref ulong punBytesDownloaded, ref ulong punBytesTotal); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_DownloadItem")] -internal static extern bool SteamAPI_ISteamUGC_DownloadItem(IntPtr instancePtr, ulong nPublishedFileID, bool bHighPriority); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_BInitWorkshopForGameServer")] -internal static extern bool SteamAPI_ISteamUGC_BInitWorkshopForGameServer(IntPtr instancePtr, uint unWorkshopDepotID, string pszFolder); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SuspendDownloads")] -internal static extern void SteamAPI_ISteamUGC_SuspendDownloads(IntPtr instancePtr, bool bSuspend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StartPlaytimeTracking")] -internal static extern ulong SteamAPI_ISteamUGC_StartPlaytimeTracking(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint unNumPublishedFileIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StopPlaytimeTracking")] -internal static extern ulong SteamAPI_ISteamUGC_StopPlaytimeTracking(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint unNumPublishedFileIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems")] -internal static extern ulong SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetNumInstalledApps")] -internal static extern uint SteamAPI_ISteamAppList_GetNumInstalledApps(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetInstalledApps")] -internal static extern uint SteamAPI_ISteamAppList_GetInstalledApps(IntPtr instancePtr, ref uint pvecAppID, uint unMaxAppIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetAppName")] -internal static extern int SteamAPI_ISteamAppList_GetAppName(IntPtr instancePtr, uint nAppID, System.Text.StringBuilder pchName, int cchNameMax); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetAppInstallDir")] -internal static extern int SteamAPI_ISteamAppList_GetAppInstallDir(IntPtr instancePtr, uint nAppID, string pchDirectory, int cchNameMax); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetAppBuildId")] -internal static extern int SteamAPI_ISteamAppList_GetAppBuildId(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_DestructISteamHTMLSurface")] -internal static extern void SteamAPI_ISteamHTMLSurface_DestructISteamHTMLSurface(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_Init")] -internal static extern bool SteamAPI_ISteamHTMLSurface_Init(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_Shutdown")] -internal static extern bool SteamAPI_ISteamHTMLSurface_Shutdown(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_CreateBrowser")] -internal static extern ulong SteamAPI_ISteamHTMLSurface_CreateBrowser(IntPtr instancePtr, string pchUserAgent, string pchUserCSS); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_RemoveBrowser")] -internal static extern void SteamAPI_ISteamHTMLSurface_RemoveBrowser(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_LoadURL")] -internal static extern void SteamAPI_ISteamHTMLSurface_LoadURL(IntPtr instancePtr, uint unBrowserHandle, string pchURL, string pchPostData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetSize")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetSize(IntPtr instancePtr, uint unBrowserHandle, uint unWidth, uint unHeight); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_StopLoad")] -internal static extern void SteamAPI_ISteamHTMLSurface_StopLoad(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_Reload")] -internal static extern void SteamAPI_ISteamHTMLSurface_Reload(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_GoBack")] -internal static extern void SteamAPI_ISteamHTMLSurface_GoBack(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_GoForward")] -internal static extern void SteamAPI_ISteamHTMLSurface_GoForward(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_AddHeader")] -internal static extern void SteamAPI_ISteamHTMLSurface_AddHeader(IntPtr instancePtr, uint unBrowserHandle, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_ExecuteJavascript")] -internal static extern void SteamAPI_ISteamHTMLSurface_ExecuteJavascript(IntPtr instancePtr, uint unBrowserHandle, string pchScript); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseUp")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseUp(IntPtr instancePtr, uint unBrowserHandle, uint eMouseButton); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseDown")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseDown(IntPtr instancePtr, uint unBrowserHandle, uint eMouseButton); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseDoubleClick")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseDoubleClick(IntPtr instancePtr, uint unBrowserHandle, uint eMouseButton); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseMove")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseMove(IntPtr instancePtr, uint unBrowserHandle, int x, int y); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseWheel")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseWheel(IntPtr instancePtr, uint unBrowserHandle, int nDelta); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_KeyDown")] -internal static extern void SteamAPI_ISteamHTMLSurface_KeyDown(IntPtr instancePtr, uint unBrowserHandle, uint nNativeKeyCode, uint eHTMLKeyModifiers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_KeyUp")] -internal static extern void SteamAPI_ISteamHTMLSurface_KeyUp(IntPtr instancePtr, uint unBrowserHandle, uint nNativeKeyCode, uint eHTMLKeyModifiers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_KeyChar")] -internal static extern void SteamAPI_ISteamHTMLSurface_KeyChar(IntPtr instancePtr, uint unBrowserHandle, uint cUnicodeChar, uint eHTMLKeyModifiers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetHorizontalScroll")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetHorizontalScroll(IntPtr instancePtr, uint unBrowserHandle, uint nAbsolutePixelScroll); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetVerticalScroll")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetVerticalScroll(IntPtr instancePtr, uint unBrowserHandle, uint nAbsolutePixelScroll); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetKeyFocus")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetKeyFocus(IntPtr instancePtr, uint unBrowserHandle, bool bHasKeyFocus); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_ViewSource")] -internal static extern void SteamAPI_ISteamHTMLSurface_ViewSource(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_CopyToClipboard")] -internal static extern void SteamAPI_ISteamHTMLSurface_CopyToClipboard(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_PasteFromClipboard")] -internal static extern void SteamAPI_ISteamHTMLSurface_PasteFromClipboard(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_Find")] -internal static extern void SteamAPI_ISteamHTMLSurface_Find(IntPtr instancePtr, uint unBrowserHandle, string pchSearchStr, bool bCurrentlyInFind, bool bReverse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_StopFind")] -internal static extern void SteamAPI_ISteamHTMLSurface_StopFind(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_GetLinkAtPosition")] -internal static extern void SteamAPI_ISteamHTMLSurface_GetLinkAtPosition(IntPtr instancePtr, uint unBrowserHandle, int x, int y); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetCookie")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetCookie(IntPtr instancePtr, string pchHostname, string pchKey, string pchValue, string pchPath, ulong nExpires, bool bSecure, bool bHTTPOnly); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetPageScaleFactor")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetPageScaleFactor(IntPtr instancePtr, uint unBrowserHandle, float flZoom, int nPointX, int nPointY); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetBackgroundMode")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetBackgroundMode(IntPtr instancePtr, uint unBrowserHandle, bool bBackgroundMode); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_AllowStartRequest")] -internal static extern void SteamAPI_ISteamHTMLSurface_AllowStartRequest(IntPtr instancePtr, uint unBrowserHandle, bool bAllowed); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_JSDialogResponse")] -internal static extern void SteamAPI_ISteamHTMLSurface_JSDialogResponse(IntPtr instancePtr, uint unBrowserHandle, bool bResult); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetResultStatus")] -internal static extern uint SteamAPI_ISteamInventory_GetResultStatus(IntPtr instancePtr, int resultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetResultItems")] -internal static extern bool SteamAPI_ISteamInventory_GetResultItems(IntPtr instancePtr, int resultHandle, [In, Out] SteamItemDetails_t[] pOutItemsArray, ref uint punOutItemsArraySize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetResultTimestamp")] -internal static extern uint SteamAPI_ISteamInventory_GetResultTimestamp(IntPtr instancePtr, int resultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_CheckResultSteamID")] -internal static extern bool SteamAPI_ISteamInventory_CheckResultSteamID(IntPtr instancePtr, int resultHandle, ulong steamIDExpected); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_DestroyResult")] -internal static extern void SteamAPI_ISteamInventory_DestroyResult(IntPtr instancePtr, int resultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetAllItems")] -internal static extern bool SteamAPI_ISteamInventory_GetAllItems(IntPtr instancePtr, ref int pResultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetItemsByID")] -internal static extern bool SteamAPI_ISteamInventory_GetItemsByID(IntPtr instancePtr, ref int pResultHandle, [In, Out] ulong[] pInstanceIDs, uint unCountInstanceIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_SerializeResult")] -internal static extern bool SteamAPI_ISteamInventory_SerializeResult(IntPtr instancePtr, int resultHandle, IntPtr pOutBuffer, ref uint punOutBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_DeserializeResult")] -internal static extern bool SteamAPI_ISteamInventory_DeserializeResult(IntPtr instancePtr, ref int pOutResultHandle, IntPtr pBuffer, uint unBufferSize, bool bRESERVED_MUST_BE_FALSE); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GenerateItems")] -internal static extern bool SteamAPI_ISteamInventory_GenerateItems(IntPtr instancePtr, ref int pResultHandle, [In, Out] int[] pArrayItemDefs, [In, Out] uint[] punArrayQuantity, uint unArrayLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GrantPromoItems")] -internal static extern bool SteamAPI_ISteamInventory_GrantPromoItems(IntPtr instancePtr, ref int pResultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_AddPromoItem")] -internal static extern bool SteamAPI_ISteamInventory_AddPromoItem(IntPtr instancePtr, ref int pResultHandle, int itemDef); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_AddPromoItems")] -internal static extern bool SteamAPI_ISteamInventory_AddPromoItems(IntPtr instancePtr, ref int pResultHandle, [In, Out] int[] pArrayItemDefs, uint unArrayLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_ConsumeItem")] -internal static extern bool SteamAPI_ISteamInventory_ConsumeItem(IntPtr instancePtr, ref int pResultHandle, ulong itemConsume, uint unQuantity); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_ExchangeItems")] -internal static extern bool SteamAPI_ISteamInventory_ExchangeItems(IntPtr instancePtr, ref int pResultHandle, [In, Out] int[] pArrayGenerate, [In, Out] uint[] punArrayGenerateQuantity, uint unArrayGenerateLength, [In, Out] ulong[] pArrayDestroy, [In, Out] uint[] punArrayDestroyQuantity, uint unArrayDestroyLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_TransferItemQuantity")] -internal static extern bool SteamAPI_ISteamInventory_TransferItemQuantity(IntPtr instancePtr, ref int pResultHandle, ulong itemIdSource, uint unQuantity, ulong itemIdDest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_SendItemDropHeartbeat")] -internal static extern void SteamAPI_ISteamInventory_SendItemDropHeartbeat(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_TriggerItemDrop")] -internal static extern bool SteamAPI_ISteamInventory_TriggerItemDrop(IntPtr instancePtr, ref int pResultHandle, int dropListDefinition); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_TradeItems")] -internal static extern bool SteamAPI_ISteamInventory_TradeItems(IntPtr instancePtr, ref int pResultHandle, ulong steamIDTradePartner, [In, Out] ulong[] pArrayGive, [In, Out] uint[] pArrayGiveQuantity, uint nArrayGiveLength, [In, Out] ulong[] pArrayGet, [In, Out] uint[] pArrayGetQuantity, uint nArrayGetLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_LoadItemDefinitions")] -internal static extern bool SteamAPI_ISteamInventory_LoadItemDefinitions(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetItemDefinitionIDs")] -internal static extern bool SteamAPI_ISteamInventory_GetItemDefinitionIDs(IntPtr instancePtr, [In, Out] int[] pItemDefIDs, ref uint punItemDefIDsArraySize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetItemDefinitionProperty")] -internal static extern bool SteamAPI_ISteamInventory_GetItemDefinitionProperty(IntPtr instancePtr, int iDefinition, string pchPropertyName, System.Text.StringBuilder pchValueBuffer, ref uint punValueBufferSizeOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamVideo_GetVideoURL")] -internal static extern void SteamAPI_ISteamVideo_GetVideoURL(IntPtr instancePtr, uint unVideoAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamVideo_IsBroadcasting")] -internal static extern bool SteamAPI_ISteamVideo_IsBroadcasting(IntPtr instancePtr, ref int pnNumViewers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_InitGameServer")] -internal static extern bool SteamAPI_ISteamGameServer_InitGameServer(IntPtr instancePtr, uint unIP, char usGamePort, char usQueryPort, uint unFlags, uint nGameAppId, string pchVersionString); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetProduct")] -internal static extern void SteamAPI_ISteamGameServer_SetProduct(IntPtr instancePtr, string pszProduct); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetGameDescription")] -internal static extern void SteamAPI_ISteamGameServer_SetGameDescription(IntPtr instancePtr, string pszGameDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetModDir")] -internal static extern void SteamAPI_ISteamGameServer_SetModDir(IntPtr instancePtr, string pszModDir); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetDedicatedServer")] -internal static extern void SteamAPI_ISteamGameServer_SetDedicatedServer(IntPtr instancePtr, bool bDedicated); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_LogOn")] -internal static extern void SteamAPI_ISteamGameServer_LogOn(IntPtr instancePtr, string pszToken); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_LogOnAnonymous")] -internal static extern void SteamAPI_ISteamGameServer_LogOnAnonymous(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_LogOff")] -internal static extern void SteamAPI_ISteamGameServer_LogOff(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_BLoggedOn")] -internal static extern bool SteamAPI_ISteamGameServer_BLoggedOn(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_BSecure")] -internal static extern bool SteamAPI_ISteamGameServer_BSecure(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetSteamID")] -internal static extern ulong SteamAPI_ISteamGameServer_GetSteamID(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_WasRestartRequested")] -internal static extern bool SteamAPI_ISteamGameServer_WasRestartRequested(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetMaxPlayerCount")] -internal static extern void SteamAPI_ISteamGameServer_SetMaxPlayerCount(IntPtr instancePtr, int cPlayersMax); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetBotPlayerCount")] -internal static extern void SteamAPI_ISteamGameServer_SetBotPlayerCount(IntPtr instancePtr, int cBotplayers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetServerName")] -internal static extern void SteamAPI_ISteamGameServer_SetServerName(IntPtr instancePtr, string pszServerName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetMapName")] -internal static extern void SteamAPI_ISteamGameServer_SetMapName(IntPtr instancePtr, string pszMapName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetPasswordProtected")] -internal static extern void SteamAPI_ISteamGameServer_SetPasswordProtected(IntPtr instancePtr, bool bPasswordProtected); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetSpectatorPort")] -internal static extern void SteamAPI_ISteamGameServer_SetSpectatorPort(IntPtr instancePtr, char unSpectatorPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetSpectatorServerName")] -internal static extern void SteamAPI_ISteamGameServer_SetSpectatorServerName(IntPtr instancePtr, string pszSpectatorServerName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_ClearAllKeyValues")] -internal static extern void SteamAPI_ISteamGameServer_ClearAllKeyValues(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetKeyValue")] -internal static extern void SteamAPI_ISteamGameServer_SetKeyValue(IntPtr instancePtr, string pKey, string pValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetGameTags")] -internal static extern void SteamAPI_ISteamGameServer_SetGameTags(IntPtr instancePtr, string pchGameTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetGameData")] -internal static extern void SteamAPI_ISteamGameServer_SetGameData(IntPtr instancePtr, string pchGameData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetRegion")] -internal static extern void SteamAPI_ISteamGameServer_SetRegion(IntPtr instancePtr, string pszRegion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate")] -internal static extern bool SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate(IntPtr instancePtr, uint unIPClient, IntPtr pvAuthBlob, uint cubAuthBlobSize, ref CSteamID pSteamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection")] -internal static extern ulong SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SendUserDisconnect")] -internal static extern void SteamAPI_ISteamGameServer_SendUserDisconnect(IntPtr instancePtr, ulong steamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_BUpdateUserData")] -internal static extern bool SteamAPI_ISteamGameServer_BUpdateUserData(IntPtr instancePtr, ulong steamIDUser, string pchPlayerName, uint uScore); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetAuthSessionTicket")] -internal static extern uint SteamAPI_ISteamGameServer_GetAuthSessionTicket(IntPtr instancePtr, IntPtr pTicket, int cbMaxTicket, ref uint pcbTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_BeginAuthSession")] -internal static extern uint SteamAPI_ISteamGameServer_BeginAuthSession(IntPtr instancePtr, IntPtr pAuthTicket, int cbAuthTicket, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_EndAuthSession")] -internal static extern void SteamAPI_ISteamGameServer_EndAuthSession(IntPtr instancePtr, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_CancelAuthTicket")] -internal static extern void SteamAPI_ISteamGameServer_CancelAuthTicket(IntPtr instancePtr, uint hAuthTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_UserHasLicenseForApp")] -internal static extern uint SteamAPI_ISteamGameServer_UserHasLicenseForApp(IntPtr instancePtr, ulong steamID, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_RequestUserGroupStatus")] -internal static extern bool SteamAPI_ISteamGameServer_RequestUserGroupStatus(IntPtr instancePtr, ulong steamIDUser, ulong steamIDGroup); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetGameplayStats")] -internal static extern void SteamAPI_ISteamGameServer_GetGameplayStats(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetServerReputation")] -internal static extern ulong SteamAPI_ISteamGameServer_GetServerReputation(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetPublicIP")] -internal static extern uint SteamAPI_ISteamGameServer_GetPublicIP(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_HandleIncomingPacket")] -internal static extern bool SteamAPI_ISteamGameServer_HandleIncomingPacket(IntPtr instancePtr, IntPtr pData, int cbData, uint srcIP, char srcPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetNextOutgoingPacket")] -internal static extern int SteamAPI_ISteamGameServer_GetNextOutgoingPacket(IntPtr instancePtr, IntPtr pOut, int cbMaxOut, ref uint pNetAdr, ref char pPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_EnableHeartbeats")] -internal static extern void SteamAPI_ISteamGameServer_EnableHeartbeats(IntPtr instancePtr, bool bActive); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetHeartbeatInterval")] -internal static extern void SteamAPI_ISteamGameServer_SetHeartbeatInterval(IntPtr instancePtr, int iHeartbeatInterval); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_ForceHeartbeat")] -internal static extern void SteamAPI_ISteamGameServer_ForceHeartbeat(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_AssociateWithClan")] -internal static extern ulong SteamAPI_ISteamGameServer_AssociateWithClan(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility")] -internal static extern ulong SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility(IntPtr instancePtr, ulong steamIDNewPlayer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_RequestUserStats")] -internal static extern ulong SteamAPI_ISteamGameServerStats_RequestUserStats(IntPtr instancePtr, ulong steamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_GetUserStat")] -internal static extern bool SteamAPI_ISteamGameServerStats_GetUserStat(IntPtr instancePtr, ulong steamIDUser, string pchName, ref int pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_GetUserStat0")] -internal static extern bool SteamAPI_ISteamGameServerStats_GetUserStat0(IntPtr instancePtr, ulong steamIDUser, string pchName, ref float pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_GetUserAchievement")] -internal static extern bool SteamAPI_ISteamGameServerStats_GetUserAchievement(IntPtr instancePtr, ulong steamIDUser, string pchName, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_SetUserStat")] -internal static extern bool SteamAPI_ISteamGameServerStats_SetUserStat(IntPtr instancePtr, ulong steamIDUser, string pchName, int nData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_SetUserStat0")] -internal static extern bool SteamAPI_ISteamGameServerStats_SetUserStat0(IntPtr instancePtr, ulong steamIDUser, string pchName, float fData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat")] -internal static extern bool SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat(IntPtr instancePtr, ulong steamIDUser, string pchName, float flCountThisSession, double dSessionLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_SetUserAchievement")] -internal static extern bool SteamAPI_ISteamGameServerStats_SetUserAchievement(IntPtr instancePtr, ulong steamIDUser, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_ClearUserAchievement")] -internal static extern bool SteamAPI_ISteamGameServerStats_ClearUserAchievement(IntPtr instancePtr, ulong steamIDUser, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_StoreUserStats")] -internal static extern ulong SteamAPI_ISteamGameServerStats_StoreUserStats(IntPtr instancePtr, ulong steamIDUser); -public delegate void SteamAPI_UserStatsReceived_t_Callback(UserStatsReceived_t pUserStatsReceived_t); -[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_SetCallback")] -public static extern ulong CUserStatsReceived_t_SetCallback(SteamAPI_UserStatsReceived_t_Callback func); -[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_RemoveCallback")] -public static extern ulong CUserStatsReceived_t_RemoveCallback(ulong handle); -public delegate void SteamAPI_RemoteStorageFileReadAsyncComplete_t_CallResult(RemoteStorageFileReadAsyncComplete_t pRemoteStorageFileReadAsyncComplete_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileReadAsyncComplete_t_SetCallResult")] -public static extern ulong CRemoteStorageFileReadAsyncComplete_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageFileReadAsyncComplete_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileReadAsyncComplete_t_RemoveCallResult")] -public static extern ulong CRemoteStorageFileReadAsyncComplete_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult(RemoteStorageGetPublishedItemVoteDetailsResult_t pRemoteStorageGetPublishedItemVoteDetailsResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedItemVoteDetailsResult_t_SetCallResult")] -public static extern ulong CRemoteStorageGetPublishedItemVoteDetailsResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedItemVoteDetailsResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageGetPublishedItemVoteDetailsResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_FileDetailsResult_t_CallResult(FileDetailsResult_t pFileDetailsResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CFileDetailsResult_t_SetCallResult")] -public static extern ulong CFileDetailsResult_t_SetCallResult(ulong hAPICall, SteamAPI_FileDetailsResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CFileDetailsResult_t_RemoveCallResult")] -public static extern ulong CFileDetailsResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GSStatsStored_t_CallResult(GSStatsStored_t pGSStatsStored_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGSStatsStored_t_SetCallResult")] -public static extern ulong CGSStatsStored_t_SetCallResult(ulong hAPICall, SteamAPI_GSStatsStored_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGSStatsStored_t_RemoveCallResult")] -public static extern ulong CGSStatsStored_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_HTML_BrowserReady_t_CallResult(HTML_BrowserReady_t pHTML_BrowserReady_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CHTML_BrowserReady_t_SetCallResult")] -public static extern ulong CHTML_BrowserReady_t_SetCallResult(ulong hAPICall, SteamAPI_HTML_BrowserReady_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CHTML_BrowserReady_t_RemoveCallResult")] -public static extern ulong CHTML_BrowserReady_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_FriendsGetFollowerCount_t_CallResult(FriendsGetFollowerCount_t pFriendsGetFollowerCount_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsGetFollowerCount_t_SetCallResult")] -public static extern ulong CFriendsGetFollowerCount_t_SetCallResult(ulong hAPICall, SteamAPI_FriendsGetFollowerCount_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsGetFollowerCount_t_RemoveCallResult")] -public static extern ulong CFriendsGetFollowerCount_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_FriendsIsFollowing_t_CallResult(FriendsIsFollowing_t pFriendsIsFollowing_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsIsFollowing_t_SetCallResult")] -public static extern ulong CFriendsIsFollowing_t_SetCallResult(ulong hAPICall, SteamAPI_FriendsIsFollowing_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsIsFollowing_t_RemoveCallResult")] -public static extern ulong CFriendsIsFollowing_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LobbyMatchList_t_CallResult(LobbyMatchList_t pLobbyMatchList_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyMatchList_t_SetCallResult")] -public static extern ulong CLobbyMatchList_t_SetCallResult(ulong hAPICall, SteamAPI_LobbyMatchList_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyMatchList_t_RemoveCallResult")] -public static extern ulong CLobbyMatchList_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageUpdatePublishedFileResult_t_CallResult(RemoteStorageUpdatePublishedFileResult_t pRemoteStorageUpdatePublishedFileResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUpdatePublishedFileResult_t_SetCallResult")] -public static extern ulong CRemoteStorageUpdatePublishedFileResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageUpdatePublishedFileResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUpdatePublishedFileResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageUpdatePublishedFileResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_StoreAuthURLResponse_t_CallResult(StoreAuthURLResponse_t pStoreAuthURLResponse_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CStoreAuthURLResponse_t_SetCallResult")] -public static extern ulong CStoreAuthURLResponse_t_SetCallResult(ulong hAPICall, SteamAPI_StoreAuthURLResponse_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CStoreAuthURLResponse_t_RemoveCallResult")] -public static extern ulong CStoreAuthURLResponse_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LobbyCreated_t_CallResult(LobbyCreated_t pLobbyCreated_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyCreated_t_SetCallResult")] -public static extern ulong CLobbyCreated_t_SetCallResult(ulong hAPICall, SteamAPI_LobbyCreated_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyCreated_t_RemoveCallResult")] -public static extern ulong CLobbyCreated_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageFileWriteAsyncComplete_t_CallResult(RemoteStorageFileWriteAsyncComplete_t pRemoteStorageFileWriteAsyncComplete_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileWriteAsyncComplete_t_SetCallResult")] -public static extern ulong CRemoteStorageFileWriteAsyncComplete_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageFileWriteAsyncComplete_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileWriteAsyncComplete_t_RemoveCallResult")] -public static extern ulong CRemoteStorageFileWriteAsyncComplete_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageDeletePublishedFileResult_t_CallResult(RemoteStorageDeletePublishedFileResult_t pRemoteStorageDeletePublishedFileResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDeletePublishedFileResult_t_SetCallResult")] -public static extern ulong CRemoteStorageDeletePublishedFileResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageDeletePublishedFileResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDeletePublishedFileResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageDeletePublishedFileResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageGetPublishedFileDetailsResult_t_CallResult(RemoteStorageGetPublishedFileDetailsResult_t pRemoteStorageGetPublishedFileDetailsResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedFileDetailsResult_t_SetCallResult")] -public static extern ulong CRemoteStorageGetPublishedFileDetailsResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageGetPublishedFileDetailsResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageDownloadUGCResult_t_CallResult(RemoteStorageDownloadUGCResult_t pRemoteStorageDownloadUGCResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDownloadUGCResult_t_SetCallResult")] -public static extern ulong CRemoteStorageDownloadUGCResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageDownloadUGCResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDownloadUGCResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageDownloadUGCResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_SteamUGCQueryCompleted_t_CallResult(SteamUGCQueryCompleted_t pSteamUGCQueryCompleted_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CSteamUGCQueryCompleted_t_SetCallResult")] -public static extern ulong CSteamUGCQueryCompleted_t_SetCallResult(ulong hAPICall, SteamAPI_SteamUGCQueryCompleted_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CSteamUGCQueryCompleted_t_RemoveCallResult")] -public static extern ulong CSteamUGCQueryCompleted_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageFileShareResult_t_CallResult(RemoteStorageFileShareResult_t pRemoteStorageFileShareResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileShareResult_t_SetCallResult")] -public static extern ulong CRemoteStorageFileShareResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageFileShareResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileShareResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageFileShareResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LobbyEnter_t_CallResult(LobbyEnter_t pLobbyEnter_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyEnter_t_SetCallResult")] -public static extern ulong CLobbyEnter_t_SetCallResult(ulong hAPICall, SteamAPI_LobbyEnter_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyEnter_t_RemoveCallResult")] -public static extern ulong CLobbyEnter_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_SubmitItemUpdateResult_t_CallResult(SubmitItemUpdateResult_t pSubmitItemUpdateResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CSubmitItemUpdateResult_t_SetCallResult")] -public static extern ulong CSubmitItemUpdateResult_t_SetCallResult(ulong hAPICall, SteamAPI_SubmitItemUpdateResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CSubmitItemUpdateResult_t_RemoveCallResult")] -public static extern ulong CSubmitItemUpdateResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_NumberOfCurrentPlayers_t_CallResult(NumberOfCurrentPlayers_t pNumberOfCurrentPlayers_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CNumberOfCurrentPlayers_t_SetCallResult")] -public static extern ulong CNumberOfCurrentPlayers_t_SetCallResult(ulong hAPICall, SteamAPI_NumberOfCurrentPlayers_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CNumberOfCurrentPlayers_t_RemoveCallResult")] -public static extern ulong CNumberOfCurrentPlayers_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GSStatsReceived_t_CallResult(GSStatsReceived_t pGSStatsReceived_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGSStatsReceived_t_SetCallResult")] -public static extern ulong CGSStatsReceived_t_SetCallResult(ulong hAPICall, SteamAPI_GSStatsReceived_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGSStatsReceived_t_RemoveCallResult")] -public static extern ulong CGSStatsReceived_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LeaderboardScoresDownloaded_t_CallResult(LeaderboardScoresDownloaded_t pLeaderboardScoresDownloaded_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardScoresDownloaded_t_SetCallResult")] -public static extern ulong CLeaderboardScoresDownloaded_t_SetCallResult(ulong hAPICall, SteamAPI_LeaderboardScoresDownloaded_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardScoresDownloaded_t_RemoveCallResult")] -public static extern ulong CLeaderboardScoresDownloaded_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult(RemoteStorageUpdateUserPublishedItemVoteResult_t pRemoteStorageUpdateUserPublishedItemVoteResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUpdateUserPublishedItemVoteResult_t_SetCallResult")] -public static extern ulong CRemoteStorageUpdateUserPublishedItemVoteResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUpdateUserPublishedItemVoteResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageUpdateUserPublishedItemVoteResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult(RemoteStorageEnumerateUserSubscribedFilesResult_t pRemoteStorageEnumerateUserSubscribedFilesResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateUserSubscribedFilesResult_t_SetCallResult")] -public static extern ulong CRemoteStorageEnumerateUserSubscribedFilesResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateUserSubscribedFilesResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageEnumerateUserSubscribedFilesResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_CreateItemResult_t_CallResult(CreateItemResult_t pCreateItemResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CCreateItemResult_t_SetCallResult")] -public static extern ulong CCreateItemResult_t_SetCallResult(ulong hAPICall, SteamAPI_CreateItemResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CCreateItemResult_t_RemoveCallResult")] -public static extern ulong CCreateItemResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_SetUserItemVoteResult_t_CallResult(SetUserItemVoteResult_t pSetUserItemVoteResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CSetUserItemVoteResult_t_SetCallResult")] -public static extern ulong CSetUserItemVoteResult_t_SetCallResult(ulong hAPICall, SteamAPI_SetUserItemVoteResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CSetUserItemVoteResult_t_RemoveCallResult")] -public static extern ulong CSetUserItemVoteResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_ComputeNewPlayerCompatibilityResult_t_CallResult(ComputeNewPlayerCompatibilityResult_t pComputeNewPlayerCompatibilityResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CComputeNewPlayerCompatibilityResult_t_SetCallResult")] -public static extern ulong CComputeNewPlayerCompatibilityResult_t_SetCallResult(ulong hAPICall, SteamAPI_ComputeNewPlayerCompatibilityResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CComputeNewPlayerCompatibilityResult_t_RemoveCallResult")] -public static extern ulong CComputeNewPlayerCompatibilityResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LeaderboardScoreUploaded_t_CallResult(LeaderboardScoreUploaded_t pLeaderboardScoreUploaded_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardScoreUploaded_t_SetCallResult")] -public static extern ulong CLeaderboardScoreUploaded_t_SetCallResult(ulong hAPICall, SteamAPI_LeaderboardScoreUploaded_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardScoreUploaded_t_RemoveCallResult")] -public static extern ulong CLeaderboardScoreUploaded_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GlobalAchievementPercentagesReady_t_CallResult(GlobalAchievementPercentagesReady_t pGlobalAchievementPercentagesReady_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGlobalAchievementPercentagesReady_t_SetCallResult")] -public static extern ulong CGlobalAchievementPercentagesReady_t_SetCallResult(ulong hAPICall, SteamAPI_GlobalAchievementPercentagesReady_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGlobalAchievementPercentagesReady_t_RemoveCallResult")] -public static extern ulong CGlobalAchievementPercentagesReady_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GlobalStatsReceived_t_CallResult(GlobalStatsReceived_t pGlobalStatsReceived_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGlobalStatsReceived_t_SetCallResult")] -public static extern ulong CGlobalStatsReceived_t_SetCallResult(ulong hAPICall, SteamAPI_GlobalStatsReceived_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGlobalStatsReceived_t_RemoveCallResult")] -public static extern ulong CGlobalStatsReceived_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult(RemoteStorageEnumeratePublishedFilesByUserActionResult_t pRemoteStorageEnumeratePublishedFilesByUserActionResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_SetCallResult")] -public static extern ulong CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_ClanOfficerListResponse_t_CallResult(ClanOfficerListResponse_t pClanOfficerListResponse_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CClanOfficerListResponse_t_SetCallResult")] -public static extern ulong CClanOfficerListResponse_t_SetCallResult(ulong hAPICall, SteamAPI_ClanOfficerListResponse_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CClanOfficerListResponse_t_RemoveCallResult")] -public static extern ulong CClanOfficerListResponse_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStoragePublishFileProgress_t_CallResult(RemoteStoragePublishFileProgress_t pRemoteStoragePublishFileProgress_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStoragePublishFileProgress_t_SetCallResult")] -public static extern ulong CRemoteStoragePublishFileProgress_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStoragePublishFileProgress_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStoragePublishFileProgress_t_RemoveCallResult")] -public static extern ulong CRemoteStoragePublishFileProgress_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallResult(RemoteStorageEnumerateWorkshopFilesResult_t pRemoteStorageEnumerateWorkshopFilesResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult")] -public static extern ulong CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GSReputation_t_CallResult(GSReputation_t pGSReputation_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGSReputation_t_SetCallResult")] -public static extern ulong CGSReputation_t_SetCallResult(ulong hAPICall, SteamAPI_GSReputation_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGSReputation_t_RemoveCallResult")] -public static extern ulong CGSReputation_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_UserFavoriteItemsListChanged_t_CallResult(UserFavoriteItemsListChanged_t pUserFavoriteItemsListChanged_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CUserFavoriteItemsListChanged_t_SetCallResult")] -public static extern ulong CUserFavoriteItemsListChanged_t_SetCallResult(ulong hAPICall, SteamAPI_UserFavoriteItemsListChanged_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CUserFavoriteItemsListChanged_t_RemoveCallResult")] -public static extern ulong CUserFavoriteItemsListChanged_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_EncryptedAppTicketResponse_t_CallResult(EncryptedAppTicketResponse_t pEncryptedAppTicketResponse_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CEncryptedAppTicketResponse_t_SetCallResult")] -public static extern ulong CEncryptedAppTicketResponse_t_SetCallResult(ulong hAPICall, SteamAPI_EncryptedAppTicketResponse_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CEncryptedAppTicketResponse_t_RemoveCallResult")] -public static extern ulong CEncryptedAppTicketResponse_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageSetUserPublishedFileActionResult_t_CallResult(RemoteStorageSetUserPublishedFileActionResult_t pRemoteStorageSetUserPublishedFileActionResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageSetUserPublishedFileActionResult_t_SetCallResult")] -public static extern ulong CRemoteStorageSetUserPublishedFileActionResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageSetUserPublishedFileActionResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageSetUserPublishedFileActionResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageSetUserPublishedFileActionResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageEnumerateUserPublishedFilesResult_t_CallResult(RemoteStorageEnumerateUserPublishedFilesResult_t pRemoteStorageEnumerateUserPublishedFilesResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateUserPublishedFilesResult_t_SetCallResult")] -public static extern ulong CRemoteStorageEnumerateUserPublishedFilesResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumerateUserPublishedFilesResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateUserPublishedFilesResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageEnumerateUserPublishedFilesResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_FriendsEnumerateFollowingList_t_CallResult(FriendsEnumerateFollowingList_t pFriendsEnumerateFollowingList_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsEnumerateFollowingList_t_SetCallResult")] -public static extern ulong CFriendsEnumerateFollowingList_t_SetCallResult(ulong hAPICall, SteamAPI_FriendsEnumerateFollowingList_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsEnumerateFollowingList_t_RemoveCallResult")] -public static extern ulong CFriendsEnumerateFollowingList_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageSubscribePublishedFileResult_t_CallResult(RemoteStorageSubscribePublishedFileResult_t pRemoteStorageSubscribePublishedFileResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageSubscribePublishedFileResult_t_SetCallResult")] -public static extern ulong CRemoteStorageSubscribePublishedFileResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageSubscribePublishedFileResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageSubscribePublishedFileResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageSubscribePublishedFileResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GetUserItemVoteResult_t_CallResult(GetUserItemVoteResult_t pGetUserItemVoteResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGetUserItemVoteResult_t_SetCallResult")] -public static extern ulong CGetUserItemVoteResult_t_SetCallResult(ulong hAPICall, SteamAPI_GetUserItemVoteResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGetUserItemVoteResult_t_RemoveCallResult")] -public static extern ulong CGetUserItemVoteResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_AssociateWithClanResult_t_CallResult(AssociateWithClanResult_t pAssociateWithClanResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CAssociateWithClanResult_t_SetCallResult")] -public static extern ulong CAssociateWithClanResult_t_SetCallResult(ulong hAPICall, SteamAPI_AssociateWithClanResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CAssociateWithClanResult_t_RemoveCallResult")] -public static extern ulong CAssociateWithClanResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LeaderboardUGCSet_t_CallResult(LeaderboardUGCSet_t pLeaderboardUGCSet_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardUGCSet_t_SetCallResult")] -public static extern ulong CLeaderboardUGCSet_t_SetCallResult(ulong hAPICall, SteamAPI_LeaderboardUGCSet_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardUGCSet_t_RemoveCallResult")] -public static extern ulong CLeaderboardUGCSet_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_CheckFileSignature_t_CallResult(CheckFileSignature_t pCheckFileSignature_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CCheckFileSignature_t_SetCallResult")] -public static extern ulong CCheckFileSignature_t_SetCallResult(ulong hAPICall, SteamAPI_CheckFileSignature_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CCheckFileSignature_t_RemoveCallResult")] -public static extern ulong CCheckFileSignature_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageUnsubscribePublishedFileResult_t_CallResult(RemoteStorageUnsubscribePublishedFileResult_t pRemoteStorageUnsubscribePublishedFileResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUnsubscribePublishedFileResult_t_SetCallResult")] -public static extern ulong CRemoteStorageUnsubscribePublishedFileResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageUnsubscribePublishedFileResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUnsubscribePublishedFileResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageUnsubscribePublishedFileResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_SetPersonaNameResponse_t_CallResult(SetPersonaNameResponse_t pSetPersonaNameResponse_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CSetPersonaNameResponse_t_SetCallResult")] -public static extern ulong CSetPersonaNameResponse_t_SetCallResult(ulong hAPICall, SteamAPI_SetPersonaNameResponse_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CSetPersonaNameResponse_t_RemoveCallResult")] -public static extern ulong CSetPersonaNameResponse_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_UserStatsReceived_t_CallResult(UserStatsReceived_t pUserStatsReceived_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_SetCallResult")] -public static extern ulong CUserStatsReceived_t_SetCallResult(ulong hAPICall, SteamAPI_UserStatsReceived_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_RemoveCallResult")] -public static extern ulong CUserStatsReceived_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_JoinClanChatRoomCompletionResult_t_CallResult(JoinClanChatRoomCompletionResult_t pJoinClanChatRoomCompletionResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CJoinClanChatRoomCompletionResult_t_SetCallResult")] -public static extern ulong CJoinClanChatRoomCompletionResult_t_SetCallResult(ulong hAPICall, SteamAPI_JoinClanChatRoomCompletionResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CJoinClanChatRoomCompletionResult_t_RemoveCallResult")] -public static extern ulong CJoinClanChatRoomCompletionResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LeaderboardFindResult_t_CallResult(LeaderboardFindResult_t pLeaderboardFindResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardFindResult_t_SetCallResult")] -public static extern ulong CLeaderboardFindResult_t_SetCallResult(ulong hAPICall, SteamAPI_LeaderboardFindResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardFindResult_t_RemoveCallResult")] -public static extern ulong CLeaderboardFindResult_t_RemoveCallResult(ulong handle); - -} - -} - -namespace Valve.Steamworks -{ - - public abstract class ISteamClient - { - public abstract IntPtr GetIntPtr(); - public abstract uint CreateSteamPipe(); - public abstract bool BReleaseSteamPipe(uint hSteamPipe); - public abstract uint ConnectToGlobalUser(uint hSteamPipe); - public abstract uint CreateLocalUser(ref uint phSteamPipe,uint eAccountType); - public abstract void ReleaseUser(uint hSteamPipe,uint hUser); - public abstract ISteamUser GetISteamUser(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamGameServer GetISteamGameServer(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract void SetLocalIPBinding(uint unIP,char usPort); - public abstract ISteamFriends GetISteamFriends(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamUtils GetISteamUtils(uint hSteamPipe,string pchVersion); - public abstract ISteamMatchmaking GetISteamMatchmaking(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamMatchmakingServers GetISteamMatchmakingServers(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract IntPtr GetISteamGenericInterface(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamUserStats GetISteamUserStats(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamGameServerStats GetISteamGameServerStats(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamApps GetISteamApps(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamNetworking GetISteamNetworking(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamRemoteStorage GetISteamRemoteStorage(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamScreenshots GetISteamScreenshots(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract uint GetIPCCallCount(); - public abstract void SetWarningMessageHook(IntPtr pFunction); - public abstract bool BShutdownIfAllPipesClosed(); - public abstract ISteamHTTP GetISteamHTTP(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamUnifiedMessages GetISteamUnifiedMessages(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamController GetISteamController(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamUGC GetISteamUGC(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamAppList GetISteamAppList(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamMusic GetISteamMusic(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamMusicRemote GetISteamMusicRemote(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamHTMLSurface GetISteamHTMLSurface(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamInventory GetISteamInventory(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamVideo GetISteamVideo(uint hSteamuser,uint hSteamPipe,string pchVersion); - } - - - public abstract class ISteamUser - { - public abstract IntPtr GetIntPtr(); - public abstract uint GetHSteamUser(); - public abstract bool BLoggedOn(); - public abstract ulong GetSteamID(); - public abstract int InitiateGameConnection(IntPtr pAuthBlob,int cbMaxAuthBlob,ulong steamIDGameServer,uint unIPServer,char usPortServer,bool bSecure); - public abstract void TerminateGameConnection(uint unIPServer,char usPortServer); - public abstract void TrackAppUsageEvent(ulong gameID,int eAppUsageEvent,string pchExtraInfo); - public abstract bool GetUserDataFolder(string pchBuffer,int cubBuffer); - public abstract void StartVoiceRecording(); - public abstract void StopVoiceRecording(); - public abstract uint GetAvailableVoice(ref uint pcbCompressed,ref uint pcbUncompressed,uint nUncompressedVoiceDesiredSampleRate); - public abstract uint GetVoice(bool bWantCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,bool bWantUncompressed,IntPtr pUncompressedDestBuffer,uint cbUncompressedDestBufferSize,ref uint nUncompressBytesWritten,uint nUncompressedVoiceDesiredSampleRate); - public abstract uint DecompressVoice(IntPtr pCompressed,uint cbCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,uint nDesiredSampleRate); - public abstract uint GetVoiceOptimalSampleRate(); - public abstract uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket); - public abstract uint BeginAuthSession(IntPtr pAuthTicket,int cbAuthTicket,ulong steamID); - public abstract void EndAuthSession(ulong steamID); - public abstract void CancelAuthTicket(uint hAuthTicket); - public abstract uint UserHasLicenseForApp(ulong steamID,uint appID); - public abstract bool BIsBehindNAT(); - public abstract void AdvertiseGame(ulong steamIDGameServer,uint unIPServer,char usPortServer); - public abstract ulong RequestEncryptedAppTicket(IntPtr pDataToInclude,int cbDataToInclude); - public abstract bool GetEncryptedAppTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket); - public abstract int GetGameBadgeLevel(int nSeries,bool bFoil); - public abstract int GetPlayerSteamLevel(); - public abstract ulong RequestStoreAuthURL(string pchRedirectURL); - public abstract bool BIsPhoneVerified(); - public abstract bool BIsTwoFactorEnabled(); - public abstract bool BIsPhoneIdentifying(); - public abstract bool BIsPhoneRequiringVerification(); - } - - - public abstract class ISteamFriends - { - public abstract IntPtr GetIntPtr(); - public abstract string GetPersonaName(); - public abstract ulong SetPersonaName(string pchPersonaName); - public abstract uint GetPersonaState(); - public abstract int GetFriendCount(int iFriendFlags); - public abstract ulong GetFriendByIndex(int iFriend,int iFriendFlags); - public abstract uint GetFriendRelationship(ulong steamIDFriend); - public abstract uint GetFriendPersonaState(ulong steamIDFriend); - public abstract string GetFriendPersonaName(ulong steamIDFriend); - public abstract bool GetFriendGamePlayed(ulong steamIDFriend,out FriendGameInfo_t pFriendGameInfo); - public abstract string GetFriendPersonaNameHistory(ulong steamIDFriend,int iPersonaName); - public abstract int GetFriendSteamLevel(ulong steamIDFriend); - public abstract string GetPlayerNickname(ulong steamIDPlayer); - public abstract int GetFriendsGroupCount(); - public abstract char GetFriendsGroupIDByIndex(int iFG); - public abstract string GetFriendsGroupName(char friendsGroupID); - public abstract int GetFriendsGroupMembersCount(char friendsGroupID); - public abstract void GetFriendsGroupMembersList(char friendsGroupID,out CSteamID [] pOutSteamIDMembers); - public abstract bool HasFriend(ulong steamIDFriend,int iFriendFlags); - public abstract int GetClanCount(); - public abstract ulong GetClanByIndex(int iClan); - public abstract string GetClanName(ulong steamIDClan); - public abstract string GetClanTag(ulong steamIDClan); - public abstract bool GetClanActivityCounts(ulong steamIDClan,ref int pnOnline,ref int pnInGame,ref int pnChatting); - public abstract ulong DownloadClanActivityCounts(CSteamID [] psteamIDClans); - public abstract int GetFriendCountFromSource(ulong steamIDSource); - public abstract ulong GetFriendFromSourceByIndex(ulong steamIDSource,int iFriend); - public abstract bool IsUserInSource(ulong steamIDUser,ulong steamIDSource); - public abstract void SetInGameVoiceSpeaking(ulong steamIDUser,bool bSpeaking); - public abstract void ActivateGameOverlay(string pchDialog); - public abstract void ActivateGameOverlayToUser(string pchDialog,ulong steamID); - public abstract void ActivateGameOverlayToWebPage(string pchURL); - public abstract void ActivateGameOverlayToStore(uint nAppID,char eFlag); - public abstract void SetPlayedWith(ulong steamIDUserPlayedWith); - public abstract void ActivateGameOverlayInviteDialog(ulong steamIDLobby); - public abstract int GetSmallFriendAvatar(ulong steamIDFriend); - public abstract int GetMediumFriendAvatar(ulong steamIDFriend); - public abstract int GetLargeFriendAvatar(ulong steamIDFriend); - public abstract bool RequestUserInformation(ulong steamIDUser,bool bRequireNameOnly); - public abstract ulong RequestClanOfficerList(ulong steamIDClan); - public abstract ulong GetClanOwner(ulong steamIDClan); - public abstract int GetClanOfficerCount(ulong steamIDClan); - public abstract ulong GetClanOfficerByIndex(ulong steamIDClan,int iOfficer); - public abstract uint GetUserRestrictions(); - public abstract bool SetRichPresence(string pchKey,string pchValue); - public abstract void ClearRichPresence(); - public abstract string GetFriendRichPresence(ulong steamIDFriend,string pchKey); - public abstract int GetFriendRichPresenceKeyCount(ulong steamIDFriend); - public abstract string GetFriendRichPresenceKeyByIndex(ulong steamIDFriend,int iKey); - public abstract void RequestFriendRichPresence(ulong steamIDFriend); - public abstract bool InviteUserToGame(ulong steamIDFriend,string pchConnectString); - public abstract int GetCoplayFriendCount(); - public abstract ulong GetCoplayFriend(int iCoplayFriend); - public abstract int GetFriendCoplayTime(ulong steamIDFriend); - public abstract uint GetFriendCoplayGame(ulong steamIDFriend); - public abstract ulong JoinClanChatRoom(ulong steamIDClan); - public abstract bool LeaveClanChatRoom(ulong steamIDClan); - public abstract int GetClanChatMemberCount(ulong steamIDClan); - public abstract ulong GetChatMemberByIndex(ulong steamIDClan,int iUser); - public abstract bool SendClanChatMessage(ulong steamIDClanChat,string pchText); - public abstract int GetClanChatMessage(ulong steamIDClanChat,int iMessage,IntPtr prgchText,int cchTextMax,ref uint peChatEntryType,out CSteamID psteamidChatter); - public abstract bool IsClanChatAdmin(ulong steamIDClanChat,ulong steamIDUser); - public abstract bool IsClanChatWindowOpenInSteam(ulong steamIDClanChat); - public abstract bool OpenClanChatWindowInSteam(ulong steamIDClanChat); - public abstract bool CloseClanChatWindowInSteam(ulong steamIDClanChat); - public abstract bool SetListenForFriendsMessages(bool bInterceptEnabled); - public abstract bool ReplyToFriendMessage(ulong steamIDFriend,string pchMsgToSend); - public abstract int GetFriendMessage(ulong steamIDFriend,int iMessageID,IntPtr pvData,int cubData,ref uint peChatEntryType); - public abstract ulong GetFollowerCount(ulong steamID); - public abstract ulong IsFollowing(ulong steamID); - public abstract ulong EnumerateFollowingList(uint unStartIndex); - } - - - public abstract class ISteamUtils - { - public abstract IntPtr GetIntPtr(); - public abstract uint GetSecondsSinceAppActive(); - public abstract uint GetSecondsSinceComputerActive(); - public abstract int GetConnectedUniverse(); - public abstract uint GetServerRealTime(); - public abstract string GetIPCountry(); - public abstract bool GetImageSize(int iImage,ref uint pnWidth,ref uint pnHeight); - public abstract bool GetImageRGBA(int iImage,IntPtr pubDest,int nDestBufferSize); - public abstract bool GetCSERIPPort(ref uint unIP,ref char usPort); - public abstract byte GetCurrentBatteryPower(); - public abstract uint GetAppID(); - public abstract void SetOverlayNotificationPosition(uint eNotificationPosition); - public abstract bool IsAPICallCompleted(ulong hSteamAPICall,ref bool pbFailed); - public abstract int GetAPICallFailureReason(ulong hSteamAPICall); - public abstract bool GetAPICallResult(ulong hSteamAPICall,IntPtr pCallback,int cubCallback,int iCallbackExpected,ref bool pbFailed); - public abstract uint GetIPCCallCount(); - public abstract void SetWarningMessageHook(IntPtr pFunction); - public abstract bool IsOverlayEnabled(); - public abstract bool BOverlayNeedsPresent(); - public abstract ulong CheckFileSignature(string szFileName); - public abstract bool ShowGamepadTextInput(int eInputMode,int eLineInputMode,string pchDescription,uint unCharMax,string pchExistingText); - public abstract uint GetEnteredGamepadTextLength(); - public abstract bool GetEnteredGamepadTextInput(string pchText,uint cchText); - public abstract string GetSteamUILanguage(); - public abstract bool IsSteamRunningInVR(); - public abstract void SetOverlayNotificationInset(int nHorizontalInset,int nVerticalInset); - public abstract bool IsSteamInBigPictureMode(); - public abstract void StartVRDashboard(); - } - - - public abstract class ISteamMatchmaking - { - public abstract IntPtr GetIntPtr(); - public abstract int GetFavoriteGameCount(); - public abstract bool GetFavoriteGame(int iGame,ref uint pnAppID,ref uint pnIP,ref char pnConnPort,ref char pnQueryPort,ref uint punFlags,ref uint pRTime32LastPlayedOnServer); - public abstract int AddFavoriteGame(uint nAppID,uint nIP,char nConnPort,char nQueryPort,uint unFlags,uint rTime32LastPlayedOnServer); - public abstract bool RemoveFavoriteGame(uint nAppID,uint nIP,char nConnPort,char nQueryPort,uint unFlags); - public abstract ulong RequestLobbyList(); - public abstract void AddRequestLobbyListStringFilter(string pchKeyToMatch,string pchValueToMatch,uint eComparisonType); - public abstract void AddRequestLobbyListNumericalFilter(string pchKeyToMatch,int nValueToMatch,uint eComparisonType); - public abstract void AddRequestLobbyListNearValueFilter(string pchKeyToMatch,int nValueToBeCloseTo); - public abstract void AddRequestLobbyListFilterSlotsAvailable(int nSlotsAvailable); - public abstract void AddRequestLobbyListDistanceFilter(uint eLobbyDistanceFilter); - public abstract void AddRequestLobbyListResultCountFilter(int cMaxResults); - public abstract void AddRequestLobbyListCompatibleMembersFilter(ulong steamIDLobby); - public abstract ulong GetLobbyByIndex(int iLobby); - public abstract ulong CreateLobby(uint eLobbyType,int cMaxMembers); - public abstract ulong JoinLobby(ulong steamIDLobby); - public abstract void LeaveLobby(ulong steamIDLobby); - public abstract bool InviteUserToLobby(ulong steamIDLobby,ulong steamIDInvitee); - public abstract int GetNumLobbyMembers(ulong steamIDLobby); - public abstract ulong GetLobbyMemberByIndex(ulong steamIDLobby,int iMember); - public abstract string GetLobbyData(ulong steamIDLobby,string pchKey); - public abstract bool SetLobbyData(ulong steamIDLobby,string pchKey,string pchValue); - public abstract int GetLobbyDataCount(ulong steamIDLobby); - public abstract bool GetLobbyDataByIndex(ulong steamIDLobby,int iLobbyData,string pchKey,int cchKeyBufferSize,string pchValue,int cchValueBufferSize); - public abstract bool DeleteLobbyData(ulong steamIDLobby,string pchKey); - public abstract string GetLobbyMemberData(ulong steamIDLobby,ulong steamIDUser,string pchKey); - public abstract void SetLobbyMemberData(ulong steamIDLobby,string pchKey,string pchValue); - public abstract bool SendLobbyChatMsg(ulong steamIDLobby,IntPtr pvMsgBody,int cubMsgBody); - public abstract int GetLobbyChatEntry(ulong steamIDLobby,int iChatID,out CSteamID pSteamIDUser,IntPtr pvData,int cubData,ref uint peChatEntryType); - public abstract bool RequestLobbyData(ulong steamIDLobby); - public abstract void SetLobbyGameServer(ulong steamIDLobby,uint unGameServerIP,char unGameServerPort,ulong steamIDGameServer); - public abstract bool GetLobbyGameServer(ulong steamIDLobby,ref uint punGameServerIP,ref char punGameServerPort,out CSteamID psteamIDGameServer); - public abstract bool SetLobbyMemberLimit(ulong steamIDLobby,int cMaxMembers); - public abstract int GetLobbyMemberLimit(ulong steamIDLobby); - public abstract bool SetLobbyType(ulong steamIDLobby,uint eLobbyType); - public abstract bool SetLobbyJoinable(ulong steamIDLobby,bool bLobbyJoinable); - public abstract ulong GetLobbyOwner(ulong steamIDLobby); - public abstract bool SetLobbyOwner(ulong steamIDLobby,ulong steamIDNewOwner); - public abstract bool SetLinkedLobby(ulong steamIDLobby,ulong steamIDLobbyDependent); - } - - - public abstract class ISteamMatchmakingServerListResponse - { - public abstract IntPtr GetIntPtr(); - public abstract void ServerResponded(uint hRequest,int iServer); - public abstract void ServerFailedToRespond(uint hRequest,int iServer); - public abstract void RefreshComplete(uint hRequest,uint response); - } - - - public abstract class ISteamMatchmakingPingResponse - { - public abstract IntPtr GetIntPtr(); - public abstract void ServerResponded(IntPtr server); - public abstract void ServerFailedToRespond(); - } - - - public abstract class ISteamMatchmakingPlayersResponse - { - public abstract IntPtr GetIntPtr(); - public abstract void AddPlayerToList(string pchName,int nScore,float flTimePlayed); - public abstract void PlayersFailedToRespond(); - public abstract void PlayersRefreshComplete(); - } - - - public abstract class ISteamMatchmakingRulesResponse - { - public abstract IntPtr GetIntPtr(); - public abstract void RulesResponded(string pchRule,string pchValue); - public abstract void RulesFailedToRespond(); - public abstract void RulesRefreshComplete(); - } - - - public abstract class ISteamMatchmakingServers - { - public abstract IntPtr GetIntPtr(); - public abstract uint RequestInternetServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestLANServerList(uint iApp,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestFriendsServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestFavoritesServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestHistoryServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestSpectatorServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract void ReleaseRequest(uint hServerListRequest); - public abstract gameserveritem_t GetServerDetails(uint hRequest,int iServer); - public abstract void CancelQuery(uint hRequest); - public abstract void RefreshQuery(uint hRequest); - public abstract bool IsRefreshing(uint hRequest); - public abstract int GetServerCount(uint hRequest); - public abstract void RefreshServer(uint hRequest,int iServer); - public abstract uint PingServer(uint unIP,char usPort,ISteamMatchmakingPingResponse pRequestServersResponse); - public abstract uint PlayerDetails(uint unIP,char usPort,ISteamMatchmakingPlayersResponse pRequestServersResponse); - public abstract uint ServerRules(uint unIP,char usPort,ISteamMatchmakingRulesResponse pRequestServersResponse); - public abstract void CancelServerQuery(uint hServerQuery); - } - - - public abstract class ISteamRemoteStorage - { - public abstract IntPtr GetIntPtr(); - public abstract bool FileWrite(string pchFile,IntPtr pvData,int cubData); - public abstract int FileRead(string pchFile,IntPtr pvData,int cubDataToRead); - public abstract ulong FileWriteAsync(string pchFile,IntPtr pvData,uint cubData); - public abstract ulong FileReadAsync(string pchFile,uint nOffset,uint cubToRead); - public abstract bool FileReadAsyncComplete(ulong hReadCall,IntPtr pvBuffer,uint cubToRead); - public abstract bool FileForget(string pchFile); - public abstract bool FileDelete(string pchFile); - public abstract ulong FileShare(string pchFile); - public abstract bool SetSyncPlatforms(string pchFile,uint eRemoteStoragePlatform); - public abstract ulong FileWriteStreamOpen(string pchFile); - public abstract bool FileWriteStreamWriteChunk(ulong writeHandle,IntPtr pvData,int cubData); - public abstract bool FileWriteStreamClose(ulong writeHandle); - public abstract bool FileWriteStreamCancel(ulong writeHandle); - public abstract bool FileExists(string pchFile); - public abstract bool FilePersisted(string pchFile); - public abstract int GetFileSize(string pchFile); - public abstract long GetFileTimestamp(string pchFile); - public abstract uint GetSyncPlatforms(string pchFile); - public abstract int GetFileCount(); - public abstract string GetFileNameAndSize(int iFile,ref int pnFileSizeInBytes); - public abstract bool GetQuota(ref ulong pnTotalBytes,ref ulong puAvailableBytes); - public abstract bool IsCloudEnabledForAccount(); - public abstract bool IsCloudEnabledForApp(); - public abstract void SetCloudEnabledForApp(bool bEnabled); - public abstract ulong UGCDownload(ulong hContent,uint unPriority); - public abstract bool GetUGCDownloadProgress(ulong hContent,ref int pnBytesDownloaded,ref int pnBytesExpected); - public abstract bool GetUGCDetails(ulong hContent,ref uint pnAppID,System.Text.StringBuilder ppchName,ref int pnFileSizeInBytes,out CSteamID pSteamIDOwner); - public abstract int UGCRead(ulong hContent,IntPtr pvData,int cubDataToRead,uint cOffset,uint eAction); - public abstract int GetCachedUGCCount(); - public abstract ulong GetCachedUGCHandle(int iCachedContent); - public abstract ulong PublishWorkshopFile(string pchFile,string pchPreviewFile,uint nConsumerAppId,string pchTitle,string pchDescription,uint eVisibility,ref SteamParamStringArray_t pTags,uint eWorkshopFileType); - public abstract ulong CreatePublishedFileUpdateRequest(ulong unPublishedFileId); - public abstract bool UpdatePublishedFileFile(ulong updateHandle,string pchFile); - public abstract bool UpdatePublishedFilePreviewFile(ulong updateHandle,string pchPreviewFile); - public abstract bool UpdatePublishedFileTitle(ulong updateHandle,string pchTitle); - public abstract bool UpdatePublishedFileDescription(ulong updateHandle,string pchDescription); - public abstract bool UpdatePublishedFileVisibility(ulong updateHandle,uint eVisibility); - public abstract bool UpdatePublishedFileTags(ulong updateHandle,ref SteamParamStringArray_t pTags); - public abstract ulong CommitPublishedFileUpdate(ulong updateHandle); - public abstract ulong GetPublishedFileDetails(ulong unPublishedFileId,uint unMaxSecondsOld); - public abstract ulong DeletePublishedFile(ulong unPublishedFileId); - public abstract ulong EnumerateUserPublishedFiles(uint unStartIndex); - public abstract ulong SubscribePublishedFile(ulong unPublishedFileId); - public abstract ulong EnumerateUserSubscribedFiles(uint unStartIndex); - public abstract ulong UnsubscribePublishedFile(ulong unPublishedFileId); - public abstract bool UpdatePublishedFileSetChangeDescription(ulong updateHandle,string pchChangeDescription); - public abstract ulong GetPublishedItemVoteDetails(ulong unPublishedFileId); - public abstract ulong UpdateUserPublishedItemVote(ulong unPublishedFileId,bool bVoteUp); - public abstract ulong GetUserPublishedItemVoteDetails(ulong unPublishedFileId); - public abstract ulong EnumerateUserSharedWorkshopFiles(ulong steamId,uint unStartIndex,ref SteamParamStringArray_t pRequiredTags,ref SteamParamStringArray_t pExcludedTags); - public abstract ulong PublishVideo(uint eVideoProvider,string pchVideoAccount,string pchVideoIdentifier,string pchPreviewFile,uint nConsumerAppId,string pchTitle,string pchDescription,uint eVisibility,ref SteamParamStringArray_t pTags); - public abstract ulong SetUserPublishedFileAction(ulong unPublishedFileId,uint eAction); - public abstract ulong EnumeratePublishedFilesByUserAction(uint eAction,uint unStartIndex); - public abstract ulong EnumeratePublishedWorkshopFiles(uint eEnumerationType,uint unStartIndex,uint unCount,uint unDays,ref SteamParamStringArray_t pTags,ref SteamParamStringArray_t pUserTags); - public abstract ulong UGCDownloadToLocation(ulong hContent,string pchLocation,uint unPriority); - } - - - public abstract class ISteamUserStats - { - public abstract IntPtr GetIntPtr(); - public abstract bool RequestCurrentStats(); - public abstract bool GetStat(string pchName,ref int pData); - public abstract bool GetStat0(string pchName,ref float pData); - public abstract bool SetStat(string pchName,int nData); - public abstract bool SetStat0(string pchName,float fData); - public abstract bool UpdateAvgRateStat(string pchName,float flCountThisSession,double dSessionLength); - public abstract bool GetAchievement(string pchName,ref bool pbAchieved); - public abstract bool SetAchievement(string pchName); - public abstract bool ClearAchievement(string pchName); - public abstract bool GetAchievementAndUnlockTime(string pchName,ref bool pbAchieved,ref uint punUnlockTime); - public abstract bool StoreStats(); - public abstract int GetAchievementIcon(string pchName); - public abstract string GetAchievementDisplayAttribute(string pchName,string pchKey); - public abstract bool IndicateAchievementProgress(string pchName,uint nCurProgress,uint nMaxProgress); - public abstract uint GetNumAchievements(); - public abstract string GetAchievementName(uint iAchievement); - public abstract ulong RequestUserStats(ulong steamIDUser); - public abstract bool GetUserStat(ulong steamIDUser,string pchName,ref int pData); - public abstract bool GetUserStat0(ulong steamIDUser,string pchName,ref float pData); - public abstract bool GetUserAchievement(ulong steamIDUser,string pchName,ref bool pbAchieved); - public abstract bool GetUserAchievementAndUnlockTime(ulong steamIDUser,string pchName,ref bool pbAchieved,ref uint punUnlockTime); - public abstract bool ResetAllStats(bool bAchievementsToo); - public abstract ulong FindOrCreateLeaderboard(string pchLeaderboardName,uint eLeaderboardSortMethod,uint eLeaderboardDisplayType); - public abstract ulong FindLeaderboard(string pchLeaderboardName); - public abstract string GetLeaderboardName(ulong hSteamLeaderboard); - public abstract int GetLeaderboardEntryCount(ulong hSteamLeaderboard); - public abstract uint GetLeaderboardSortMethod(ulong hSteamLeaderboard); - public abstract uint GetLeaderboardDisplayType(ulong hSteamLeaderboard); - public abstract ulong DownloadLeaderboardEntries(ulong hSteamLeaderboard,uint eLeaderboardDataRequest,int nRangeStart,int nRangeEnd); - public abstract ulong DownloadLeaderboardEntriesForUsers(ulong hSteamLeaderboard,CSteamID [] prgUsers); - public abstract bool GetDownloadedLeaderboardEntry(ulong hSteamLeaderboardEntries,int index,ref LeaderboardEntry_t pLeaderboardEntry,ref int pDetails,int cDetailsMax); - public abstract ulong UploadLeaderboardScore(ulong hSteamLeaderboard,uint eLeaderboardUploadScoreMethod,int nScore,ref int pScoreDetails,int cScoreDetailsCount); - public abstract ulong AttachLeaderboardUGC(ulong hSteamLeaderboard,ulong hUGC); - public abstract ulong GetNumberOfCurrentPlayers(); - public abstract ulong RequestGlobalAchievementPercentages(); - public abstract int GetMostAchievedAchievementInfo(string pchName,uint unNameBufLen,ref float pflPercent,ref bool pbAchieved); - public abstract int GetNextMostAchievedAchievementInfo(int iIteratorPrevious,string pchName,uint unNameBufLen,ref float pflPercent,ref bool pbAchieved); - public abstract bool GetAchievementAchievedPercent(string pchName,ref float pflPercent); - public abstract ulong RequestGlobalStats(int nHistoryDays); - public abstract bool GetGlobalStat(string pchStatName,ref long pData); - public abstract bool GetGlobalStat0(string pchStatName,ref double pData); - public abstract int GetGlobalStatHistory(string pchStatName,long [] pData); - public abstract int GetGlobalStatHistory0(string pchStatName,double [] pData); - } - - - public abstract class ISteamApps - { - public abstract IntPtr GetIntPtr(); - public abstract bool BIsSubscribed(); - public abstract bool BIsLowViolence(); - public abstract bool BIsCybercafe(); - public abstract bool BIsVACBanned(); - public abstract string GetCurrentGameLanguage(); - public abstract string GetAvailableGameLanguages(); - public abstract bool BIsSubscribedApp(uint appID); - public abstract bool BIsDlcInstalled(uint appID); - public abstract uint GetEarliestPurchaseUnixTime(uint nAppID); - public abstract bool BIsSubscribedFromFreeWeekend(); - public abstract int GetDLCCount(); - public abstract bool BGetDLCDataByIndex(int iDLC,ref uint pAppID,ref bool pbAvailable,string pchName,int cchNameBufferSize); - public abstract void InstallDLC(uint nAppID); - public abstract void UninstallDLC(uint nAppID); - public abstract void RequestAppProofOfPurchaseKey(uint nAppID); - public abstract bool GetCurrentBetaName(string pchName,int cchNameBufferSize); - public abstract bool MarkContentCorrupt(bool bMissingFilesOnly); - public abstract uint GetInstalledDepots(uint appID,ref uint pvecDepots,uint cMaxDepots); - public abstract uint GetAppInstallDir(uint appID,string pchFolder,uint cchFolderBufferSize); - public abstract bool BIsAppInstalled(uint appID); - public abstract ulong GetAppOwner(); - public abstract string GetLaunchQueryParam(string pchKey); - public abstract bool GetDlcDownloadProgress(uint nAppID,ref ulong punBytesDownloaded,ref ulong punBytesTotal); - public abstract int GetAppBuildId(); - public abstract void RequestAllProofOfPurchaseKeys(); - public abstract ulong GetFileDetails(string pszFileName); - } - - - public abstract class ISteamNetworking - { - public abstract IntPtr GetIntPtr(); - public abstract bool SendP2PPacket(ulong steamIDRemote,IntPtr pubData,uint cubData,uint eP2PSendType,int nChannel); - public abstract bool IsP2PPacketAvailable(ref uint pcubMsgSize,int nChannel); - public abstract bool ReadP2PPacket(IntPtr pubDest,uint cubDest,ref uint pcubMsgSize,ref CSteamID psteamIDRemote,int nChannel); - public abstract bool AcceptP2PSessionWithUser(ulong steamIDRemote); - public abstract bool CloseP2PSessionWithUser(ulong steamIDRemote); - public abstract bool CloseP2PChannelWithUser(ulong steamIDRemote,int nChannel); - public abstract bool GetP2PSessionState(ulong steamIDRemote,ref P2PSessionState_t pConnectionState); - public abstract bool AllowP2PPacketRelay(bool bAllow); - public abstract uint CreateListenSocket(int nVirtualP2PPort,uint nIP,char nPort,bool bAllowUseOfPacketRelay); - public abstract uint CreateP2PConnectionSocket(ulong steamIDTarget,int nVirtualPort,int nTimeoutSec,bool bAllowUseOfPacketRelay); - public abstract uint CreateConnectionSocket(uint nIP,char nPort,int nTimeoutSec); - public abstract bool DestroySocket(uint hSocket,bool bNotifyRemoteEnd); - public abstract bool DestroyListenSocket(uint hSocket,bool bNotifyRemoteEnd); - public abstract bool SendDataOnSocket(uint hSocket,IntPtr pubData,uint cubData,bool bReliable); - public abstract bool IsDataAvailableOnSocket(uint hSocket,ref uint pcubMsgSize); - public abstract bool RetrieveDataFromSocket(uint hSocket,IntPtr pubDest,uint cubDest,ref uint pcubMsgSize); - public abstract bool IsDataAvailable(uint hListenSocket,ref uint pcubMsgSize,ref uint phSocket); - public abstract bool RetrieveData(uint hListenSocket,IntPtr pubDest,uint cubDest,ref uint pcubMsgSize,ref uint phSocket); - public abstract bool GetSocketInfo(uint hSocket,ref CSteamID pSteamIDRemote,ref int peSocketStatus,ref uint punIPRemote,ref char punPortRemote); - public abstract bool GetListenSocketInfo(uint hListenSocket,ref uint pnIP,ref char pnPort); - public abstract uint GetSocketConnectionType(uint hSocket); - public abstract int GetMaxPacketSize(uint hSocket); - } - - - public abstract class ISteamScreenshots - { - public abstract IntPtr GetIntPtr(); - public abstract uint WriteScreenshot(IntPtr pubRGB,uint cubRGB,int nWidth,int nHeight); - public abstract uint AddScreenshotToLibrary(string pchFilename,string pchThumbnailFilename,int nWidth,int nHeight); - public abstract void TriggerScreenshot(); - public abstract void HookScreenshots(bool bHook); - public abstract bool SetLocation(uint hScreenshot,string pchLocation); - public abstract bool TagUser(uint hScreenshot,ulong steamID); - public abstract bool TagPublishedFile(uint hScreenshot,ulong unPublishedFileID); - public abstract bool IsScreenshotsHooked(); - public abstract uint AddVRScreenshotToLibrary(uint eType,string pchFilename,string pchVRFilename); - } - - - public abstract class ISteamMusic - { - public abstract IntPtr GetIntPtr(); - public abstract bool BIsEnabled(); - public abstract bool BIsPlaying(); - public abstract int GetPlaybackStatus(); - public abstract void Play(); - public abstract void Pause(); - public abstract void PlayPrevious(); - public abstract void PlayNext(); - public abstract void SetVolume(float flVolume); - public abstract float GetVolume(); - } - - - public abstract class ISteamMusicRemote - { - public abstract IntPtr GetIntPtr(); - public abstract bool RegisterSteamMusicRemote(string pchName); - public abstract bool DeregisterSteamMusicRemote(); - public abstract bool BIsCurrentMusicRemote(); - public abstract bool BActivationSuccess(bool bValue); - public abstract bool SetDisplayName(string pchDisplayName); - public abstract bool SetPNGIcon_64x64(IntPtr pvBuffer,uint cbBufferLength); - public abstract bool EnablePlayPrevious(bool bValue); - public abstract bool EnablePlayNext(bool bValue); - public abstract bool EnableShuffled(bool bValue); - public abstract bool EnableLooped(bool bValue); - public abstract bool EnableQueue(bool bValue); - public abstract bool EnablePlaylists(bool bValue); - public abstract bool UpdatePlaybackStatus(int nStatus); - public abstract bool UpdateShuffled(bool bValue); - public abstract bool UpdateLooped(bool bValue); - public abstract bool UpdateVolume(float flValue); - public abstract bool CurrentEntryWillChange(); - public abstract bool CurrentEntryIsAvailable(bool bAvailable); - public abstract bool UpdateCurrentEntryText(string pchText); - public abstract bool UpdateCurrentEntryElapsedSeconds(int nValue); - public abstract bool UpdateCurrentEntryCoverArt(IntPtr pvBuffer,uint cbBufferLength); - public abstract bool CurrentEntryDidChange(); - public abstract bool QueueWillChange(); - public abstract bool ResetQueueEntries(); - public abstract bool SetQueueEntry(int nID,int nPosition,string pchEntryText); - public abstract bool SetCurrentQueueEntry(int nID); - public abstract bool QueueDidChange(); - public abstract bool PlaylistWillChange(); - public abstract bool ResetPlaylistEntries(); - public abstract bool SetPlaylistEntry(int nID,int nPosition,string pchEntryText); - public abstract bool SetCurrentPlaylistEntry(int nID); - public abstract bool PlaylistDidChange(); - } - - - public abstract class ISteamHTTP - { - public abstract IntPtr GetIntPtr(); - public abstract uint CreateHTTPRequest(uint eHTTPRequestMethod,string pchAbsoluteURL); - public abstract bool SetHTTPRequestContextValue(uint hRequest,ulong ulContextValue); - public abstract bool SetHTTPRequestNetworkActivityTimeout(uint hRequest,uint unTimeoutSeconds); - public abstract bool SetHTTPRequestHeaderValue(uint hRequest,string pchHeaderName,string pchHeaderValue); - public abstract bool SetHTTPRequestGetOrPostParameter(uint hRequest,string pchParamName,string pchParamValue); - public abstract bool SendHTTPRequest(uint hRequest,ref ulong pCallHandle); - public abstract bool SendHTTPRequestAndStreamResponse(uint hRequest,ref ulong pCallHandle); - public abstract bool DeferHTTPRequest(uint hRequest); - public abstract bool PrioritizeHTTPRequest(uint hRequest); - public abstract bool GetHTTPResponseHeaderSize(uint hRequest,string pchHeaderName,ref uint unResponseHeaderSize); - public abstract bool GetHTTPResponseHeaderValue(uint hRequest,string pchHeaderName,IntPtr pHeaderValueBuffer,uint unBufferSize); - public abstract bool GetHTTPResponseBodySize(uint hRequest,ref uint unBodySize); - public abstract bool GetHTTPResponseBodyData(uint hRequest,IntPtr pBodyDataBuffer,uint unBufferSize); - public abstract bool GetHTTPStreamingResponseBodyData(uint hRequest,uint cOffset,IntPtr pBodyDataBuffer,uint unBufferSize); - public abstract bool ReleaseHTTPRequest(uint hRequest); - public abstract bool GetHTTPDownloadProgressPct(uint hRequest,ref float pflPercentOut); - public abstract bool SetHTTPRequestRawPostBody(uint hRequest,string pchContentType,IntPtr pubBody,uint unBodyLen); - public abstract uint CreateCookieContainer(bool bAllowResponsesToModify); - public abstract bool ReleaseCookieContainer(uint hCookieContainer); - public abstract bool SetCookie(uint hCookieContainer,string pchHost,string pchUrl,string pchCookie); - public abstract bool SetHTTPRequestCookieContainer(uint hRequest,uint hCookieContainer); - public abstract bool SetHTTPRequestUserAgentInfo(uint hRequest,string pchUserAgentInfo); - public abstract bool SetHTTPRequestRequiresVerifiedCertificate(uint hRequest,bool bRequireVerifiedCertificate); - public abstract bool SetHTTPRequestAbsoluteTimeoutMS(uint hRequest,uint unMilliseconds); - public abstract bool GetHTTPRequestWasTimedOut(uint hRequest,ref bool pbWasTimedOut); - } - - - public abstract class ISteamUnifiedMessages - { - public abstract IntPtr GetIntPtr(); - public abstract ulong SendMethod(string pchServiceMethod,IntPtr pRequestBuffer,uint unRequestBufferSize,ulong unContext); - public abstract bool GetMethodResponseInfo(ulong hHandle,ref uint punResponseSize,ref uint peResult); - public abstract bool GetMethodResponseData(ulong hHandle,IntPtr pResponseBuffer,uint unResponseBufferSize,bool bAutoRelease); - public abstract bool ReleaseMethod(ulong hHandle); - public abstract bool SendNotification(string pchServiceNotification,IntPtr pNotificationBuffer,uint unNotificationBufferSize); - } - - - public abstract class ISteamController - { - public abstract IntPtr GetIntPtr(); - public abstract bool Init(); - public abstract bool Shutdown(); - public abstract void RunFrame(); - public abstract int GetConnectedControllers(ref ulong handlesOut); - public abstract bool ShowBindingPanel(ulong controllerHandle); - public abstract ulong GetActionSetHandle(string pszActionSetName); - public abstract void ActivateActionSet(ulong controllerHandle,ulong actionSetHandle); - public abstract ulong GetCurrentActionSet(ulong controllerHandle); - public abstract ulong GetDigitalActionHandle(string pszActionName); - public abstract ControllerDigitalActionData_t GetDigitalActionData(ulong controllerHandle,ulong digitalActionHandle); - public abstract int GetDigitalActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong digitalActionHandle,ref uint originsOut); - public abstract ulong GetAnalogActionHandle(string pszActionName); - public abstract ControllerAnalogActionData_t GetAnalogActionData(ulong controllerHandle,ulong analogActionHandle); - public abstract int GetAnalogActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong analogActionHandle,ref uint originsOut); - public abstract void StopAnalogActionMomentum(ulong controllerHandle,ulong eAction); - public abstract void TriggerHapticPulse(ulong controllerHandle,uint eTargetPad,char usDurationMicroSec); - public abstract void TriggerRepeatedHapticPulse(ulong controllerHandle,uint eTargetPad,char usDurationMicroSec,char usOffMicroSec,char unRepeat,uint nFlags); - public abstract int GetGamepadIndexForController(ulong ulControllerHandle); - public abstract ulong GetControllerForGamepadIndex(int nIndex); - public abstract ControllerMotionData_t GetMotionData(ulong controllerHandle); - public abstract bool ShowDigitalActionOrigins(ulong controllerHandle,ulong digitalActionHandle,float flScale,float flXPosition,float flYPosition); - public abstract bool ShowAnalogActionOrigins(ulong controllerHandle,ulong analogActionHandle,float flScale,float flXPosition,float flYPosition); - } - - - public abstract class ISteamUGC - { - public abstract IntPtr GetIntPtr(); - public abstract ulong CreateQueryUserUGCRequest(uint unAccountID,uint eListType,uint eMatchingUGCType,uint eSortOrder,uint nCreatorAppID,uint nConsumerAppID,uint unPage); - public abstract ulong CreateQueryAllUGCRequest(uint eQueryType,uint eMatchingeMatchingUGCTypeFileType,uint nCreatorAppID,uint nConsumerAppID,uint unPage); - public abstract ulong CreateQueryUGCDetailsRequest(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs); - public abstract ulong SendQueryUGCRequest(ulong handle); - public abstract bool GetQueryUGCResult(ulong handle,uint index,ref SteamUGCDetails_t pDetails); - public abstract bool GetQueryUGCPreviewURL(ulong handle,uint index,out string pchURL); - public abstract bool GetQueryUGCMetadata(ulong handle,uint index,out string pchMetadata); - public abstract bool GetQueryUGCChildren(ulong handle,uint index,ref ulong pvecPublishedFileID,uint cMaxEntries); - public abstract bool GetQueryUGCStatistic(ulong handle,uint index,uint eStatType,ref ulong pStatValue); - public abstract uint GetQueryUGCNumAdditionalPreviews(ulong handle,uint index); - public abstract bool GetQueryUGCAdditionalPreview(ulong handle,uint index,uint previewIndex,out string pchURLOrVideoID,out string pchOriginalFileName,uint cchOriginalFileNameSize,ref uint pPreviewType); - public abstract uint GetQueryUGCNumKeyValueTags(ulong handle,uint index); - public abstract bool GetQueryUGCKeyValueTag(ulong handle,uint index,uint keyValueTagIndex,out string pchKey,out string pchValue); - public abstract bool ReleaseQueryUGCRequest(ulong handle); - public abstract bool AddRequiredTag(ulong handle,string pTagName); - public abstract bool AddExcludedTag(ulong handle,string pTagName); - public abstract bool SetReturnOnlyIDs(ulong handle,bool bReturnOnlyIDs); - public abstract bool SetReturnKeyValueTags(ulong handle,bool bReturnKeyValueTags); - public abstract bool SetReturnLongDescription(ulong handle,bool bReturnLongDescription); - public abstract bool SetReturnMetadata(ulong handle,bool bReturnMetadata); - public abstract bool SetReturnChildren(ulong handle,bool bReturnChildren); - public abstract bool SetReturnAdditionalPreviews(ulong handle,bool bReturnAdditionalPreviews); - public abstract bool SetReturnTotalOnly(ulong handle,bool bReturnTotalOnly); - public abstract bool SetLanguage(ulong handle,string pchLanguage); - public abstract bool SetAllowCachedResponse(ulong handle,uint unMaxAgeSeconds); - public abstract bool SetCloudFileNameFilter(ulong handle,string pMatchCloudFileName); - public abstract bool SetMatchAnyTag(ulong handle,bool bMatchAnyTag); - public abstract bool SetSearchText(ulong handle,string pSearchText); - public abstract bool SetRankedByTrendDays(ulong handle,uint unDays); - public abstract bool AddRequiredKeyValueTag(ulong handle,string pKey,string pValue); - public abstract ulong RequestUGCDetails(ulong nPublishedFileID,uint unMaxAgeSeconds); - public abstract ulong CreateItem(uint nConsumerAppId,uint eFileType); - public abstract ulong StartItemUpdate(uint nConsumerAppId,ulong nPublishedFileID); - public abstract bool SetItemTitle(ulong handle,string pchTitle); - public abstract bool SetItemDescription(ulong handle,string pchDescription); - public abstract bool SetItemUpdateLanguage(ulong handle,string pchLanguage); - public abstract bool SetItemMetadata(ulong handle,string pchMetaData); - public abstract bool SetItemVisibility(ulong handle,uint eVisibility); - public abstract bool SetItemTags(ulong updateHandle,ref SteamParamStringArray_t pTags); - public abstract bool SetItemContent(ulong handle,string pszContentFolder); - public abstract bool SetItemPreview(ulong handle,string pszPreviewFile); - public abstract bool RemoveItemKeyValueTags(ulong handle,string pchKey); - public abstract bool AddItemKeyValueTag(ulong handle,string pchKey,string pchValue); - public abstract bool AddItemPreviewFile(ulong handle,string pszPreviewFile,uint type); - public abstract bool AddItemPreviewVideo(ulong handle,string pszVideoID); - public abstract bool UpdateItemPreviewFile(ulong handle,uint index,string pszPreviewFile); - public abstract bool UpdateItemPreviewVideo(ulong handle,uint index,string pszVideoID); - public abstract bool RemoveItemPreview(ulong handle,uint index); - public abstract ulong SubmitItemUpdate(ulong handle,string pchChangeNote); - public abstract uint GetItemUpdateProgress(ulong handle,ref ulong punBytesProcessed,ref ulong punBytesTotal); - public abstract ulong SetUserItemVote(ulong nPublishedFileID,bool bVoteUp); - public abstract ulong GetUserItemVote(ulong nPublishedFileID); - public abstract ulong AddItemToFavorites(uint nAppId,ulong nPublishedFileID); - public abstract ulong RemoveItemFromFavorites(uint nAppId,ulong nPublishedFileID); - public abstract ulong SubscribeItem(ulong nPublishedFileID); - public abstract ulong UnsubscribeItem(ulong nPublishedFileID); - public abstract uint GetNumSubscribedItems(); - public abstract uint GetSubscribedItems(ref ulong pvecPublishedFileID,uint cMaxEntries); - public abstract uint GetItemState(ulong nPublishedFileID); - public abstract bool GetItemInstallInfo(ulong nPublishedFileID,ref ulong punSizeOnDisk,out string pchFolder,ref uint punTimeStamp); - public abstract bool GetItemDownloadInfo(ulong nPublishedFileID,ref ulong punBytesDownloaded,ref ulong punBytesTotal); - public abstract bool DownloadItem(ulong nPublishedFileID,bool bHighPriority); - public abstract bool BInitWorkshopForGameServer(uint unWorkshopDepotID,string pszFolder); - public abstract void SuspendDownloads(bool bSuspend); - public abstract ulong StartPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs); - public abstract ulong StopPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs); - public abstract ulong StopPlaytimeTrackingForAllItems(); - } - - - public abstract class ISteamAppList - { - public abstract IntPtr GetIntPtr(); - public abstract uint GetNumInstalledApps(); - public abstract uint GetInstalledApps(ref uint pvecAppID,uint unMaxAppIDs); - public abstract int GetAppName(uint nAppID,System.Text.StringBuilder pchName,int cchNameMax); - public abstract int GetAppInstallDir(uint nAppID,string pchDirectory,int cchNameMax); - public abstract int GetAppBuildId(uint nAppID); - } - - - public abstract class ISteamHTMLSurface - { - public abstract IntPtr GetIntPtr(); - public abstract void DestructISteamHTMLSurface(); - public abstract bool Init(); - public abstract bool Shutdown(); - public abstract ulong CreateBrowser(string pchUserAgent,string pchUserCSS); - public abstract void RemoveBrowser(uint unBrowserHandle); - public abstract void LoadURL(uint unBrowserHandle,string pchURL,string pchPostData); - public abstract void SetSize(uint unBrowserHandle,uint unWidth,uint unHeight); - public abstract void StopLoad(uint unBrowserHandle); - public abstract void Reload(uint unBrowserHandle); - public abstract void GoBack(uint unBrowserHandle); - public abstract void GoForward(uint unBrowserHandle); - public abstract void AddHeader(uint unBrowserHandle,string pchKey,string pchValue); - public abstract void ExecuteJavascript(uint unBrowserHandle,string pchScript); - public abstract void MouseUp(uint unBrowserHandle,uint eMouseButton); - public abstract void MouseDown(uint unBrowserHandle,uint eMouseButton); - public abstract void MouseDoubleClick(uint unBrowserHandle,uint eMouseButton); - public abstract void MouseMove(uint unBrowserHandle,int x,int y); - public abstract void MouseWheel(uint unBrowserHandle,int nDelta); - public abstract void KeyDown(uint unBrowserHandle,uint nNativeKeyCode,uint eHTMLKeyModifiers); - public abstract void KeyUp(uint unBrowserHandle,uint nNativeKeyCode,uint eHTMLKeyModifiers); - public abstract void KeyChar(uint unBrowserHandle,uint cUnicodeChar,uint eHTMLKeyModifiers); - public abstract void SetHorizontalScroll(uint unBrowserHandle,uint nAbsolutePixelScroll); - public abstract void SetVerticalScroll(uint unBrowserHandle,uint nAbsolutePixelScroll); - public abstract void SetKeyFocus(uint unBrowserHandle,bool bHasKeyFocus); - public abstract void ViewSource(uint unBrowserHandle); - public abstract void CopyToClipboard(uint unBrowserHandle); - public abstract void PasteFromClipboard(uint unBrowserHandle); - public abstract void Find(uint unBrowserHandle,string pchSearchStr,bool bCurrentlyInFind,bool bReverse); - public abstract void StopFind(uint unBrowserHandle); - public abstract void GetLinkAtPosition(uint unBrowserHandle,int x,int y); - public abstract void SetCookie(string pchHostname,string pchKey,string pchValue,string pchPath,ulong nExpires,bool bSecure,bool bHTTPOnly); - public abstract void SetPageScaleFactor(uint unBrowserHandle,float flZoom,int nPointX,int nPointY); - public abstract void SetBackgroundMode(uint unBrowserHandle,bool bBackgroundMode); - public abstract void AllowStartRequest(uint unBrowserHandle,bool bAllowed); - public abstract void JSDialogResponse(uint unBrowserHandle,bool bResult); - } - - - public abstract class ISteamInventory - { - public abstract IntPtr GetIntPtr(); - public abstract uint GetResultStatus(int resultHandle); - public abstract bool GetResultItems(int resultHandle,out SteamItemDetails_t [] pOutItemsArray); - public abstract uint GetResultTimestamp(int resultHandle); - public abstract bool CheckResultSteamID(int resultHandle,ulong steamIDExpected); - public abstract void DestroyResult(int resultHandle); - public abstract bool GetAllItems(ref int pResultHandle); - public abstract bool GetItemsByID(ref int pResultHandle,ulong [] pInstanceIDs); - public abstract bool SerializeResult(int resultHandle,IntPtr pOutBuffer,ref uint punOutBufferSize); - public abstract bool DeserializeResult(ref int pOutResultHandle,IntPtr pBuffer,uint unBufferSize,bool bRESERVED_MUST_BE_FALSE); - public abstract bool GenerateItems(ref int pResultHandle,int [] pArrayItemDefs,uint [] punArrayQuantity); - public abstract bool GrantPromoItems(ref int pResultHandle); - public abstract bool AddPromoItem(ref int pResultHandle,int itemDef); - public abstract bool AddPromoItems(ref int pResultHandle,int [] pArrayItemDefs); - public abstract bool ConsumeItem(ref int pResultHandle,ulong itemConsume,uint unQuantity); - public abstract bool ExchangeItems(ref int pResultHandle,int [] pArrayGenerate,uint [] punArrayGenerateQuantity,ulong [] pArrayDestroy,uint [] punArrayDestroyQuantity); - public abstract bool TransferItemQuantity(ref int pResultHandle,ulong itemIdSource,uint unQuantity,ulong itemIdDest); - public abstract void SendItemDropHeartbeat(); - public abstract bool TriggerItemDrop(ref int pResultHandle,int dropListDefinition); - public abstract bool TradeItems(ref int pResultHandle,ulong steamIDTradePartner,ulong [] pArrayGive,uint [] pArrayGiveQuantity,ulong [] pArrayGet,uint [] pArrayGetQuantity); - public abstract bool LoadItemDefinitions(); - public abstract bool GetItemDefinitionIDs(out int [] pItemDefIDs); - public abstract bool GetItemDefinitionProperty(int iDefinition,string pchPropertyName,out string pchValueBuffer); - } - - - public abstract class ISteamVideo - { - public abstract IntPtr GetIntPtr(); - public abstract void GetVideoURL(uint unVideoAppID); - public abstract bool IsBroadcasting(ref int pnNumViewers); - } - - - public abstract class ISteamGameServer - { - public abstract IntPtr GetIntPtr(); - public abstract bool InitGameServer(uint unIP,char usGamePort,char usQueryPort,uint unFlags,uint nGameAppId,string pchVersionString); - public abstract void SetProduct(string pszProduct); - public abstract void SetGameDescription(string pszGameDescription); - public abstract void SetModDir(string pszModDir); - public abstract void SetDedicatedServer(bool bDedicated); - public abstract void LogOn(string pszToken); - public abstract void LogOnAnonymous(); - public abstract void LogOff(); - public abstract bool BLoggedOn(); - public abstract bool BSecure(); - public abstract ulong GetSteamID(); - public abstract bool WasRestartRequested(); - public abstract void SetMaxPlayerCount(int cPlayersMax); - public abstract void SetBotPlayerCount(int cBotplayers); - public abstract void SetServerName(string pszServerName); - public abstract void SetMapName(string pszMapName); - public abstract void SetPasswordProtected(bool bPasswordProtected); - public abstract void SetSpectatorPort(char unSpectatorPort); - public abstract void SetSpectatorServerName(string pszSpectatorServerName); - public abstract void ClearAllKeyValues(); - public abstract void SetKeyValue(string pKey,string pValue); - public abstract void SetGameTags(string pchGameTags); - public abstract void SetGameData(string pchGameData); - public abstract void SetRegion(string pszRegion); - public abstract bool SendUserConnectAndAuthenticate(uint unIPClient,IntPtr pvAuthBlob,uint cubAuthBlobSize,ref CSteamID pSteamIDUser); - public abstract ulong CreateUnauthenticatedUserConnection(); - public abstract void SendUserDisconnect(ulong steamIDUser); - public abstract bool BUpdateUserData(ulong steamIDUser,string pchPlayerName,uint uScore); - public abstract uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket); - public abstract uint BeginAuthSession(IntPtr pAuthTicket,int cbAuthTicket,ulong steamID); - public abstract void EndAuthSession(ulong steamID); - public abstract void CancelAuthTicket(uint hAuthTicket); - public abstract uint UserHasLicenseForApp(ulong steamID,uint appID); - public abstract bool RequestUserGroupStatus(ulong steamIDUser,ulong steamIDGroup); - public abstract void GetGameplayStats(); - public abstract ulong GetServerReputation(); - public abstract uint GetPublicIP(); - public abstract bool HandleIncomingPacket(IntPtr pData,int cbData,uint srcIP,char srcPort); - public abstract int GetNextOutgoingPacket(IntPtr pOut,int cbMaxOut,ref uint pNetAdr,ref char pPort); - public abstract void EnableHeartbeats(bool bActive); - public abstract void SetHeartbeatInterval(int iHeartbeatInterval); - public abstract void ForceHeartbeat(); - public abstract ulong AssociateWithClan(ulong steamIDClan); - public abstract ulong ComputeNewPlayerCompatibility(ulong steamIDNewPlayer); - } - - - public abstract class ISteamGameServerStats - { - public abstract IntPtr GetIntPtr(); - public abstract ulong RequestUserStats(ulong steamIDUser); - public abstract bool GetUserStat(ulong steamIDUser,string pchName,ref int pData); - public abstract bool GetUserStat0(ulong steamIDUser,string pchName,ref float pData); - public abstract bool GetUserAchievement(ulong steamIDUser,string pchName,ref bool pbAchieved); - public abstract bool SetUserStat(ulong steamIDUser,string pchName,int nData); - public abstract bool SetUserStat0(ulong steamIDUser,string pchName,float fData); - public abstract bool UpdateUserAvgRateStat(ulong steamIDUser,string pchName,float flCountThisSession,double dSessionLength); - public abstract bool SetUserAchievement(ulong steamIDUser,string pchName); - public abstract bool ClearUserAchievement(ulong steamIDUser,string pchName); - public abstract ulong StoreUserStats(ulong steamIDUser); - } - - -public class CSteamClient : ISteamClient -{ -public CSteamClient(IntPtr SteamClient) -{ - m_pSteamClient = SteamClient; -} -IntPtr m_pSteamClient; - -public override IntPtr GetIntPtr() { return m_pSteamClient; } - -private void CheckIfUsable() -{ - if (m_pSteamClient == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint CreateSteamPipe() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamClient_CreateSteamPipe(m_pSteamClient); - return result; -} -public override bool BReleaseSteamPipe(uint hSteamPipe) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamClient_BReleaseSteamPipe(m_pSteamClient,hSteamPipe); - return result; -} -public override uint ConnectToGlobalUser(uint hSteamPipe) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamClient_ConnectToGlobalUser(m_pSteamClient,hSteamPipe); - return result; -} -public override uint CreateLocalUser(ref uint phSteamPipe,uint eAccountType) -{ - CheckIfUsable(); - phSteamPipe = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamClient_CreateLocalUser(m_pSteamClient,ref phSteamPipe,eAccountType); - return result; -} -public override void ReleaseUser(uint hSteamPipe,uint hUser) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamClient_ReleaseUser(m_pSteamClient,hSteamPipe,hUser); -} -public override ISteamUser GetISteamUser(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUser(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamUser) Marshal.PtrToStructure(result, typeof(ISteamUser)); -} -public override ISteamGameServer GetISteamGameServer(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamGameServer(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamGameServer) Marshal.PtrToStructure(result, typeof(ISteamGameServer)); -} -public override void SetLocalIPBinding(uint unIP,char usPort) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamClient_SetLocalIPBinding(m_pSteamClient,unIP,usPort); -} -public override ISteamFriends GetISteamFriends(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamFriends(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamFriends) Marshal.PtrToStructure(result, typeof(ISteamFriends)); -} -public override ISteamUtils GetISteamUtils(uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUtils(m_pSteamClient,hSteamPipe,pchVersion); - return (ISteamUtils) Marshal.PtrToStructure(result, typeof(ISteamUtils)); -} -public override ISteamMatchmaking GetISteamMatchmaking(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamMatchmaking(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamMatchmaking) Marshal.PtrToStructure(result, typeof(ISteamMatchmaking)); -} -public override ISteamMatchmakingServers GetISteamMatchmakingServers(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamMatchmakingServers(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamMatchmakingServers) Marshal.PtrToStructure(result, typeof(ISteamMatchmakingServers)); -} -public override IntPtr GetISteamGenericInterface(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamGenericInterface(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (IntPtr) Marshal.PtrToStructure(result, typeof(IntPtr)); -} -public override ISteamUserStats GetISteamUserStats(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUserStats(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamUserStats) Marshal.PtrToStructure(result, typeof(ISteamUserStats)); -} -public override ISteamGameServerStats GetISteamGameServerStats(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamGameServerStats(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamGameServerStats) Marshal.PtrToStructure(result, typeof(ISteamGameServerStats)); -} -public override ISteamApps GetISteamApps(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamApps(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamApps) Marshal.PtrToStructure(result, typeof(ISteamApps)); -} -public override ISteamNetworking GetISteamNetworking(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamNetworking(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamNetworking) Marshal.PtrToStructure(result, typeof(ISteamNetworking)); -} -public override ISteamRemoteStorage GetISteamRemoteStorage(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamRemoteStorage(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamRemoteStorage) Marshal.PtrToStructure(result, typeof(ISteamRemoteStorage)); -} -public override ISteamScreenshots GetISteamScreenshots(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamScreenshots(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamScreenshots) Marshal.PtrToStructure(result, typeof(ISteamScreenshots)); -} -public override uint GetIPCCallCount() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamClient_GetIPCCallCount(m_pSteamClient); - return result; -} -public override void SetWarningMessageHook(IntPtr pFunction) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamClient_SetWarningMessageHook(m_pSteamClient,pFunction); -} -public override bool BShutdownIfAllPipesClosed() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamClient_BShutdownIfAllPipesClosed(m_pSteamClient); - return result; -} -public override ISteamHTTP GetISteamHTTP(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamHTTP(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamHTTP) Marshal.PtrToStructure(result, typeof(ISteamHTTP)); -} -public override ISteamUnifiedMessages GetISteamUnifiedMessages(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUnifiedMessages(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamUnifiedMessages) Marshal.PtrToStructure(result, typeof(ISteamUnifiedMessages)); -} -public override ISteamController GetISteamController(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamController(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamController) Marshal.PtrToStructure(result, typeof(ISteamController)); -} -public override ISteamUGC GetISteamUGC(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUGC(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamUGC) Marshal.PtrToStructure(result, typeof(ISteamUGC)); -} -public override ISteamAppList GetISteamAppList(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamAppList(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamAppList) Marshal.PtrToStructure(result, typeof(ISteamAppList)); -} -public override ISteamMusic GetISteamMusic(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamMusic(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamMusic) Marshal.PtrToStructure(result, typeof(ISteamMusic)); -} -public override ISteamMusicRemote GetISteamMusicRemote(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamMusicRemote(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamMusicRemote) Marshal.PtrToStructure(result, typeof(ISteamMusicRemote)); -} -public override ISteamHTMLSurface GetISteamHTMLSurface(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamHTMLSurface(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamHTMLSurface) Marshal.PtrToStructure(result, typeof(ISteamHTMLSurface)); -} -public override ISteamInventory GetISteamInventory(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamInventory(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamInventory) Marshal.PtrToStructure(result, typeof(ISteamInventory)); -} -public override ISteamVideo GetISteamVideo(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamVideo(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamVideo) Marshal.PtrToStructure(result, typeof(ISteamVideo)); -} -} - - -public class CSteamUser : ISteamUser -{ -public CSteamUser(IntPtr SteamUser) -{ - m_pSteamUser = SteamUser; -} -IntPtr m_pSteamUser; - -public override IntPtr GetIntPtr() { return m_pSteamUser; } - -private void CheckIfUsable() -{ - if (m_pSteamUser == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint GetHSteamUser() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetHSteamUser(m_pSteamUser); - return result; -} -public override bool BLoggedOn() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BLoggedOn(m_pSteamUser); - return result; -} -public override ulong GetSteamID() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUser_GetSteamID(m_pSteamUser); - return result; -} -public override int InitiateGameConnection(IntPtr pAuthBlob,int cbMaxAuthBlob,ulong steamIDGameServer,uint unIPServer,char usPortServer,bool bSecure) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUser_InitiateGameConnection(m_pSteamUser,pAuthBlob,cbMaxAuthBlob,steamIDGameServer,unIPServer,usPortServer,bSecure); - return result; -} -public override void TerminateGameConnection(uint unIPServer,char usPortServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_TerminateGameConnection(m_pSteamUser,unIPServer,usPortServer); -} -public override void TrackAppUsageEvent(ulong gameID,int eAppUsageEvent,string pchExtraInfo) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_TrackAppUsageEvent(m_pSteamUser,gameID,eAppUsageEvent,pchExtraInfo); -} -public override bool GetUserDataFolder(string pchBuffer,int cubBuffer) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_GetUserDataFolder(m_pSteamUser,pchBuffer,cubBuffer); - return result; -} -public override void StartVoiceRecording() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_StartVoiceRecording(m_pSteamUser); -} -public override void StopVoiceRecording() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_StopVoiceRecording(m_pSteamUser); -} -public override uint GetAvailableVoice(ref uint pcbCompressed,ref uint pcbUncompressed,uint nUncompressedVoiceDesiredSampleRate) -{ - CheckIfUsable(); - pcbCompressed = 0; - pcbUncompressed = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetAvailableVoice(m_pSteamUser,ref pcbCompressed,ref pcbUncompressed,nUncompressedVoiceDesiredSampleRate); - return result; -} -public override uint GetVoice(bool bWantCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,bool bWantUncompressed,IntPtr pUncompressedDestBuffer,uint cbUncompressedDestBufferSize,ref uint nUncompressBytesWritten,uint nUncompressedVoiceDesiredSampleRate) -{ - CheckIfUsable(); - nBytesWritten = 0; - nUncompressBytesWritten = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetVoice(m_pSteamUser,bWantCompressed,pDestBuffer,cbDestBufferSize,ref nBytesWritten,bWantUncompressed,pUncompressedDestBuffer,cbUncompressedDestBufferSize,ref nUncompressBytesWritten,nUncompressedVoiceDesiredSampleRate); - return result; -} -public override uint DecompressVoice(IntPtr pCompressed,uint cbCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,uint nDesiredSampleRate) -{ - CheckIfUsable(); - nBytesWritten = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUser_DecompressVoice(m_pSteamUser,pCompressed,cbCompressed,pDestBuffer,cbDestBufferSize,ref nBytesWritten,nDesiredSampleRate); - return result; -} -public override uint GetVoiceOptimalSampleRate() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetVoiceOptimalSampleRate(m_pSteamUser); - return result; -} -public override uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket) -{ - CheckIfUsable(); - pcbTicket = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetAuthSessionTicket(m_pSteamUser,pTicket,cbMaxTicket,ref pcbTicket); - return result; -} -public override uint BeginAuthSession(IntPtr pAuthTicket,int cbAuthTicket,ulong steamID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUser_BeginAuthSession(m_pSteamUser,pAuthTicket,cbAuthTicket,steamID); - return result; -} -public override void EndAuthSession(ulong steamID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_EndAuthSession(m_pSteamUser,steamID); -} -public override void CancelAuthTicket(uint hAuthTicket) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_CancelAuthTicket(m_pSteamUser,hAuthTicket); -} -public override uint UserHasLicenseForApp(ulong steamID,uint appID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUser_UserHasLicenseForApp(m_pSteamUser,steamID,appID); - return result; -} -public override bool BIsBehindNAT() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsBehindNAT(m_pSteamUser); - return result; -} -public override void AdvertiseGame(ulong steamIDGameServer,uint unIPServer,char usPortServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_AdvertiseGame(m_pSteamUser,steamIDGameServer,unIPServer,usPortServer); -} -public override ulong RequestEncryptedAppTicket(IntPtr pDataToInclude,int cbDataToInclude) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUser_RequestEncryptedAppTicket(m_pSteamUser,pDataToInclude,cbDataToInclude); - return result; -} -public override bool GetEncryptedAppTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket) -{ - CheckIfUsable(); - pcbTicket = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUser_GetEncryptedAppTicket(m_pSteamUser,pTicket,cbMaxTicket,ref pcbTicket); - return result; -} -public override int GetGameBadgeLevel(int nSeries,bool bFoil) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUser_GetGameBadgeLevel(m_pSteamUser,nSeries,bFoil); - return result; -} -public override int GetPlayerSteamLevel() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUser_GetPlayerSteamLevel(m_pSteamUser); - return result; -} -public override ulong RequestStoreAuthURL(string pchRedirectURL) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUser_RequestStoreAuthURL(m_pSteamUser,pchRedirectURL); - return result; -} -public override bool BIsPhoneVerified() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsPhoneVerified(m_pSteamUser); - return result; -} -public override bool BIsTwoFactorEnabled() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsTwoFactorEnabled(m_pSteamUser); - return result; -} -public override bool BIsPhoneIdentifying() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsPhoneIdentifying(m_pSteamUser); - return result; -} -public override bool BIsPhoneRequiringVerification() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsPhoneRequiringVerification(m_pSteamUser); - return result; -} -} - - -public class CSteamFriends : ISteamFriends -{ -public CSteamFriends(IntPtr SteamFriends) -{ - m_pSteamFriends = SteamFriends; -} -IntPtr m_pSteamFriends; - -public override IntPtr GetIntPtr() { return m_pSteamFriends; } - -private void CheckIfUsable() -{ - if (m_pSteamFriends == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override string GetPersonaName() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetPersonaName(m_pSteamFriends); - return Marshal.PtrToStringAnsi(result); -} -public override ulong SetPersonaName(string pchPersonaName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_SetPersonaName(m_pSteamFriends,pchPersonaName); - return result; -} -public override uint GetPersonaState() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetPersonaState(m_pSteamFriends); - return result; -} -public override int GetFriendCount(int iFriendFlags) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendCount(m_pSteamFriends,iFriendFlags); - return result; -} -public override ulong GetFriendByIndex(int iFriend,int iFriendFlags) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendByIndex(m_pSteamFriends,iFriend,iFriendFlags); - return result; -} -public override uint GetFriendRelationship(ulong steamIDFriend) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendRelationship(m_pSteamFriends,steamIDFriend); - return result; -} -public override uint GetFriendPersonaState(ulong steamIDFriend) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendPersonaState(m_pSteamFriends,steamIDFriend); - return result; -} -public override string GetFriendPersonaName(ulong steamIDFriend) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendPersonaName(m_pSteamFriends,steamIDFriend); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetFriendGamePlayed(ulong steamIDFriend,out FriendGameInfo_t pFriendGameInfo) -{ - CheckIfUsable(); - pFriendGameInfo = new FriendGameInfo_t(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendGamePlayed(m_pSteamFriends,steamIDFriend,ref pFriendGameInfo); - return result; -} -public override string GetFriendPersonaNameHistory(ulong steamIDFriend,int iPersonaName) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendPersonaNameHistory(m_pSteamFriends,steamIDFriend,iPersonaName); - return Marshal.PtrToStringAnsi(result); -} -public override int GetFriendSteamLevel(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendSteamLevel(m_pSteamFriends,steamIDFriend); - return result; -} -public override string GetPlayerNickname(ulong steamIDPlayer) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetPlayerNickname(m_pSteamFriends,steamIDPlayer); - return Marshal.PtrToStringAnsi(result); -} -public override int GetFriendsGroupCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupCount(m_pSteamFriends); - return result; -} -public override char GetFriendsGroupIDByIndex(int iFG) -{ - CheckIfUsable(); - char result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex(m_pSteamFriends,iFG); - return result; -} -public override string GetFriendsGroupName(char friendsGroupID) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupName(m_pSteamFriends,friendsGroupID); - return Marshal.PtrToStringAnsi(result); -} -public override int GetFriendsGroupMembersCount(char friendsGroupID) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupMembersCount(m_pSteamFriends,friendsGroupID); - return result; -} -public override void GetFriendsGroupMembersList(char friendsGroupID,out CSteamID [] pOutSteamIDMembers) -{ - CheckIfUsable(); - int nMembersCount = GetFriendsGroupMembersCount (friendsGroupID); - pOutSteamIDMembers = new CSteamID[nMembersCount]; - NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupMembersList(m_pSteamFriends,friendsGroupID,pOutSteamIDMembers,nMembersCount); -} -public override bool HasFriend(ulong steamIDFriend,int iFriendFlags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_HasFriend(m_pSteamFriends,steamIDFriend,iFriendFlags); - return result; -} -public override int GetClanCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanCount(m_pSteamFriends); - return result; -} -public override ulong GetClanByIndex(int iClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanByIndex(m_pSteamFriends,iClan); - return result; -} -public override string GetClanName(ulong steamIDClan) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanName(m_pSteamFriends,steamIDClan); - return Marshal.PtrToStringAnsi(result); -} -public override string GetClanTag(ulong steamIDClan) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanTag(m_pSteamFriends,steamIDClan); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetClanActivityCounts(ulong steamIDClan,ref int pnOnline,ref int pnInGame,ref int pnChatting) -{ - CheckIfUsable(); - pnOnline = 0; - pnInGame = 0; - pnChatting = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanActivityCounts(m_pSteamFriends,steamIDClan,ref pnOnline,ref pnInGame,ref pnChatting); - return result; -} -public override ulong DownloadClanActivityCounts(CSteamID [] psteamIDClans) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_DownloadClanActivityCounts(m_pSteamFriends,psteamIDClans,(int) psteamIDClans.Length); - return result; -} -public override int GetFriendCountFromSource(ulong steamIDSource) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendCountFromSource(m_pSteamFriends,steamIDSource); - return result; -} -public override ulong GetFriendFromSourceByIndex(ulong steamIDSource,int iFriend) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendFromSourceByIndex(m_pSteamFriends,steamIDSource,iFriend); - return result; -} -public override bool IsUserInSource(ulong steamIDUser,ulong steamIDSource) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_IsUserInSource(m_pSteamFriends,steamIDUser,steamIDSource); - return result; -} -public override void SetInGameVoiceSpeaking(ulong steamIDUser,bool bSpeaking) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_SetInGameVoiceSpeaking(m_pSteamFriends,steamIDUser,bSpeaking); -} -public override void ActivateGameOverlay(string pchDialog) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlay(m_pSteamFriends,pchDialog); -} -public override void ActivateGameOverlayToUser(string pchDialog,ulong steamID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlayToUser(m_pSteamFriends,pchDialog,steamID); -} -public override void ActivateGameOverlayToWebPage(string pchURL) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage(m_pSteamFriends,pchURL); -} -public override void ActivateGameOverlayToStore(uint nAppID,char eFlag) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlayToStore(m_pSteamFriends,nAppID,eFlag); -} -public override void SetPlayedWith(ulong steamIDUserPlayedWith) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_SetPlayedWith(m_pSteamFriends,steamIDUserPlayedWith); -} -public override void ActivateGameOverlayInviteDialog(ulong steamIDLobby) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(m_pSteamFriends,steamIDLobby); -} -public override int GetSmallFriendAvatar(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetSmallFriendAvatar(m_pSteamFriends,steamIDFriend); - return result; -} -public override int GetMediumFriendAvatar(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetMediumFriendAvatar(m_pSteamFriends,steamIDFriend); - return result; -} -public override int GetLargeFriendAvatar(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetLargeFriendAvatar(m_pSteamFriends,steamIDFriend); - return result; -} -public override bool RequestUserInformation(ulong steamIDUser,bool bRequireNameOnly) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_RequestUserInformation(m_pSteamFriends,steamIDUser,bRequireNameOnly); - return result; -} -public override ulong RequestClanOfficerList(ulong steamIDClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_RequestClanOfficerList(m_pSteamFriends,steamIDClan); - return result; -} -public override ulong GetClanOwner(ulong steamIDClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanOwner(m_pSteamFriends,steamIDClan); - return result; -} -public override int GetClanOfficerCount(ulong steamIDClan) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanOfficerCount(m_pSteamFriends,steamIDClan); - return result; -} -public override ulong GetClanOfficerByIndex(ulong steamIDClan,int iOfficer) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanOfficerByIndex(m_pSteamFriends,steamIDClan,iOfficer); - return result; -} -public override uint GetUserRestrictions() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetUserRestrictions(m_pSteamFriends); - return result; -} -public override bool SetRichPresence(string pchKey,string pchValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_SetRichPresence(m_pSteamFriends,pchKey,pchValue); - return result; -} -public override void ClearRichPresence() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ClearRichPresence(m_pSteamFriends); -} -public override string GetFriendRichPresence(ulong steamIDFriend,string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendRichPresence(m_pSteamFriends,steamIDFriend,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override int GetFriendRichPresenceKeyCount(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount(m_pSteamFriends,steamIDFriend); - return result; -} -public override string GetFriendRichPresenceKeyByIndex(ulong steamIDFriend,int iKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex(m_pSteamFriends,steamIDFriend,iKey); - return Marshal.PtrToStringAnsi(result); -} -public override void RequestFriendRichPresence(ulong steamIDFriend) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_RequestFriendRichPresence(m_pSteamFriends,steamIDFriend); -} -public override bool InviteUserToGame(ulong steamIDFriend,string pchConnectString) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_InviteUserToGame(m_pSteamFriends,steamIDFriend,pchConnectString); - return result; -} -public override int GetCoplayFriendCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetCoplayFriendCount(m_pSteamFriends); - return result; -} -public override ulong GetCoplayFriend(int iCoplayFriend) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetCoplayFriend(m_pSteamFriends,iCoplayFriend); - return result; -} -public override int GetFriendCoplayTime(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendCoplayTime(m_pSteamFriends,steamIDFriend); - return result; -} -public override uint GetFriendCoplayGame(ulong steamIDFriend) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendCoplayGame(m_pSteamFriends,steamIDFriend); - return result; -} -public override ulong JoinClanChatRoom(ulong steamIDClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_JoinClanChatRoom(m_pSteamFriends,steamIDClan); - return result; -} -public override bool LeaveClanChatRoom(ulong steamIDClan) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_LeaveClanChatRoom(m_pSteamFriends,steamIDClan); - return result; -} -public override int GetClanChatMemberCount(ulong steamIDClan) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanChatMemberCount(m_pSteamFriends,steamIDClan); - return result; -} -public override ulong GetChatMemberByIndex(ulong steamIDClan,int iUser) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetChatMemberByIndex(m_pSteamFriends,steamIDClan,iUser); - return result; -} -public override bool SendClanChatMessage(ulong steamIDClanChat,string pchText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_SendClanChatMessage(m_pSteamFriends,steamIDClanChat,pchText); - return result; -} -public override int GetClanChatMessage(ulong steamIDClanChat,int iMessage,IntPtr prgchText,int cchTextMax,ref uint peChatEntryType,out CSteamID psteamidChatter) -{ - CheckIfUsable(); - peChatEntryType = 0; - psteamidChatter = new CSteamID(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanChatMessage(m_pSteamFriends,steamIDClanChat,iMessage,prgchText,cchTextMax,ref peChatEntryType,ref psteamidChatter); - return result; -} -public override bool IsClanChatAdmin(ulong steamIDClanChat,ulong steamIDUser) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_IsClanChatAdmin(m_pSteamFriends,steamIDClanChat,steamIDUser); - return result; -} -public override bool IsClanChatWindowOpenInSteam(ulong steamIDClanChat) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam(m_pSteamFriends,steamIDClanChat); - return result; -} -public override bool OpenClanChatWindowInSteam(ulong steamIDClanChat) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_OpenClanChatWindowInSteam(m_pSteamFriends,steamIDClanChat); - return result; -} -public override bool CloseClanChatWindowInSteam(ulong steamIDClanChat) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_CloseClanChatWindowInSteam(m_pSteamFriends,steamIDClanChat); - return result; -} -public override bool SetListenForFriendsMessages(bool bInterceptEnabled) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_SetListenForFriendsMessages(m_pSteamFriends,bInterceptEnabled); - return result; -} -public override bool ReplyToFriendMessage(ulong steamIDFriend,string pchMsgToSend) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_ReplyToFriendMessage(m_pSteamFriends,steamIDFriend,pchMsgToSend); - return result; -} -public override int GetFriendMessage(ulong steamIDFriend,int iMessageID,IntPtr pvData,int cubData,ref uint peChatEntryType) -{ - CheckIfUsable(); - peChatEntryType = 0; - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendMessage(m_pSteamFriends,steamIDFriend,iMessageID,pvData,cubData,ref peChatEntryType); - return result; -} -public override ulong GetFollowerCount(ulong steamID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFollowerCount(m_pSteamFriends,steamID); - return result; -} -public override ulong IsFollowing(ulong steamID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_IsFollowing(m_pSteamFriends,steamID); - return result; -} -public override ulong EnumerateFollowingList(uint unStartIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_EnumerateFollowingList(m_pSteamFriends,unStartIndex); - return result; -} -} - - -public class CSteamUtils : ISteamUtils -{ -public CSteamUtils(IntPtr SteamUtils) -{ - m_pSteamUtils = SteamUtils; -} -IntPtr m_pSteamUtils; - -public override IntPtr GetIntPtr() { return m_pSteamUtils; } - -private void CheckIfUsable() -{ - if (m_pSteamUtils == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint GetSecondsSinceAppActive() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetSecondsSinceAppActive(m_pSteamUtils); - return result; -} -public override uint GetSecondsSinceComputerActive() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetSecondsSinceComputerActive(m_pSteamUtils); - return result; -} -public override int GetConnectedUniverse() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUtils_GetConnectedUniverse(m_pSteamUtils); - return result; -} -public override uint GetServerRealTime() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetServerRealTime(m_pSteamUtils); - return result; -} -public override string GetIPCountry() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUtils_GetIPCountry(m_pSteamUtils); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetImageSize(int iImage,ref uint pnWidth,ref uint pnHeight) -{ - CheckIfUsable(); - pnWidth = 0; - pnHeight = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetImageSize(m_pSteamUtils,iImage,ref pnWidth,ref pnHeight); - return result; -} -public override bool GetImageRGBA(int iImage,IntPtr pubDest,int nDestBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetImageRGBA(m_pSteamUtils,iImage,pubDest,nDestBufferSize); - return result; -} -public override bool GetCSERIPPort(ref uint unIP,ref char usPort) -{ - CheckIfUsable(); - unIP = 0; - usPort = (char) 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetCSERIPPort(m_pSteamUtils,ref unIP,ref usPort); - return result; -} -public override byte GetCurrentBatteryPower() -{ - CheckIfUsable(); - byte result = NativeEntrypoints.SteamAPI_ISteamUtils_GetCurrentBatteryPower(m_pSteamUtils); - return result; -} -public override uint GetAppID() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetAppID(m_pSteamUtils); - return result; -} -public override void SetOverlayNotificationPosition(uint eNotificationPosition) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUtils_SetOverlayNotificationPosition(m_pSteamUtils,eNotificationPosition); -} -public override bool IsAPICallCompleted(ulong hSteamAPICall,ref bool pbFailed) -{ - CheckIfUsable(); - pbFailed = false; - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsAPICallCompleted(m_pSteamUtils,hSteamAPICall,ref pbFailed); - return result; -} -public override int GetAPICallFailureReason(ulong hSteamAPICall) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUtils_GetAPICallFailureReason(m_pSteamUtils,hSteamAPICall); - return result; -} -public override bool GetAPICallResult(ulong hSteamAPICall,IntPtr pCallback,int cubCallback,int iCallbackExpected,ref bool pbFailed) -{ - CheckIfUsable(); - pbFailed = false; - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetAPICallResult(m_pSteamUtils,hSteamAPICall,pCallback,cubCallback,iCallbackExpected,ref pbFailed); - return result; -} -public override uint GetIPCCallCount() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetIPCCallCount(m_pSteamUtils); - return result; -} -public override void SetWarningMessageHook(IntPtr pFunction) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUtils_SetWarningMessageHook(m_pSteamUtils,pFunction); -} -public override bool IsOverlayEnabled() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsOverlayEnabled(m_pSteamUtils); - return result; -} -public override bool BOverlayNeedsPresent() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_BOverlayNeedsPresent(m_pSteamUtils); - return result; -} -public override ulong CheckFileSignature(string szFileName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUtils_CheckFileSignature(m_pSteamUtils,szFileName); - return result; -} -public override bool ShowGamepadTextInput(int eInputMode,int eLineInputMode,string pchDescription,uint unCharMax,string pchExistingText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_ShowGamepadTextInput(m_pSteamUtils,eInputMode,eLineInputMode,pchDescription,unCharMax,pchExistingText); - return result; -} -public override uint GetEnteredGamepadTextLength() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetEnteredGamepadTextLength(m_pSteamUtils); - return result; -} -public override bool GetEnteredGamepadTextInput(string pchText,uint cchText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetEnteredGamepadTextInput(m_pSteamUtils,pchText,cchText); - return result; -} -public override string GetSteamUILanguage() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUtils_GetSteamUILanguage(m_pSteamUtils); - return Marshal.PtrToStringAnsi(result); -} -public override bool IsSteamRunningInVR() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsSteamRunningInVR(m_pSteamUtils); - return result; -} -public override void SetOverlayNotificationInset(int nHorizontalInset,int nVerticalInset) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUtils_SetOverlayNotificationInset(m_pSteamUtils,nHorizontalInset,nVerticalInset); -} -public override bool IsSteamInBigPictureMode() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsSteamInBigPictureMode(m_pSteamUtils); - return result; -} -public override void StartVRDashboard() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUtils_StartVRDashboard(m_pSteamUtils); -} -} - - -public class CSteamMatchmaking : ISteamMatchmaking -{ -public CSteamMatchmaking(IntPtr SteamMatchmaking) -{ - m_pSteamMatchmaking = SteamMatchmaking; -} -IntPtr m_pSteamMatchmaking; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmaking; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmaking == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override int GetFavoriteGameCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(m_pSteamMatchmaking); - return result; -} -public override bool GetFavoriteGame(int iGame,ref uint pnAppID,ref uint pnIP,ref char pnConnPort,ref char pnQueryPort,ref uint punFlags,ref uint pRTime32LastPlayedOnServer) -{ - CheckIfUsable(); - pnAppID = 0; - pnIP = 0; - pnConnPort = (char) 0; - pnQueryPort = (char) 0; - punFlags = 0; - pRTime32LastPlayedOnServer = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetFavoriteGame(m_pSteamMatchmaking,iGame,ref pnAppID,ref pnIP,ref pnConnPort,ref pnQueryPort,ref punFlags,ref pRTime32LastPlayedOnServer); - return result; -} -public override int AddFavoriteGame(uint nAppID,uint nIP,char nConnPort,char nQueryPort,uint unFlags,uint rTime32LastPlayedOnServer) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddFavoriteGame(m_pSteamMatchmaking,nAppID,nIP,nConnPort,nQueryPort,unFlags,rTime32LastPlayedOnServer); - return result; -} -public override bool RemoveFavoriteGame(uint nAppID,uint nIP,char nConnPort,char nQueryPort,uint unFlags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_RemoveFavoriteGame(m_pSteamMatchmaking,nAppID,nIP,nConnPort,nQueryPort,unFlags); - return result; -} -public override ulong RequestLobbyList() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_RequestLobbyList(m_pSteamMatchmaking); - return result; -} -public override void AddRequestLobbyListStringFilter(string pchKeyToMatch,string pchValueToMatch,uint eComparisonType) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter(m_pSteamMatchmaking,pchKeyToMatch,pchValueToMatch,eComparisonType); -} -public override void AddRequestLobbyListNumericalFilter(string pchKeyToMatch,int nValueToMatch,uint eComparisonType) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter(m_pSteamMatchmaking,pchKeyToMatch,nValueToMatch,eComparisonType); -} -public override void AddRequestLobbyListNearValueFilter(string pchKeyToMatch,int nValueToBeCloseTo) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter(m_pSteamMatchmaking,pchKeyToMatch,nValueToBeCloseTo); -} -public override void AddRequestLobbyListFilterSlotsAvailable(int nSlotsAvailable) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(m_pSteamMatchmaking,nSlotsAvailable); -} -public override void AddRequestLobbyListDistanceFilter(uint eLobbyDistanceFilter) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter(m_pSteamMatchmaking,eLobbyDistanceFilter); -} -public override void AddRequestLobbyListResultCountFilter(int cMaxResults) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter(m_pSteamMatchmaking,cMaxResults); -} -public override void AddRequestLobbyListCompatibleMembersFilter(ulong steamIDLobby) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(m_pSteamMatchmaking,steamIDLobby); -} -public override ulong GetLobbyByIndex(int iLobby) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyByIndex(m_pSteamMatchmaking,iLobby); - return result; -} -public override ulong CreateLobby(uint eLobbyType,int cMaxMembers) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_CreateLobby(m_pSteamMatchmaking,eLobbyType,cMaxMembers); - return result; -} -public override ulong JoinLobby(ulong steamIDLobby) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_JoinLobby(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override void LeaveLobby(ulong steamIDLobby) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_LeaveLobby(m_pSteamMatchmaking,steamIDLobby); -} -public override bool InviteUserToLobby(ulong steamIDLobby,ulong steamIDInvitee) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_InviteUserToLobby(m_pSteamMatchmaking,steamIDLobby,steamIDInvitee); - return result; -} -public override int GetNumLobbyMembers(ulong steamIDLobby) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetNumLobbyMembers(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override ulong GetLobbyMemberByIndex(ulong steamIDLobby,int iMember) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex(m_pSteamMatchmaking,steamIDLobby,iMember); - return result; -} -public override string GetLobbyData(ulong steamIDLobby,string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyData(m_pSteamMatchmaking,steamIDLobby,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override bool SetLobbyData(ulong steamIDLobby,string pchKey,string pchValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyData(m_pSteamMatchmaking,steamIDLobby,pchKey,pchValue); - return result; -} -public override int GetLobbyDataCount(ulong steamIDLobby) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyDataCount(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override bool GetLobbyDataByIndex(ulong steamIDLobby,int iLobbyData,string pchKey,int cchKeyBufferSize,string pchValue,int cchValueBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex(m_pSteamMatchmaking,steamIDLobby,iLobbyData,pchKey,cchKeyBufferSize,pchValue,cchValueBufferSize); - return result; -} -public override bool DeleteLobbyData(ulong steamIDLobby,string pchKey) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_DeleteLobbyData(m_pSteamMatchmaking,steamIDLobby,pchKey); - return result; -} -public override string GetLobbyMemberData(ulong steamIDLobby,ulong steamIDUser,string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyMemberData(m_pSteamMatchmaking,steamIDLobby,steamIDUser,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override void SetLobbyMemberData(ulong steamIDLobby,string pchKey,string pchValue) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyMemberData(m_pSteamMatchmaking,steamIDLobby,pchKey,pchValue); -} -public override bool SendLobbyChatMsg(ulong steamIDLobby,IntPtr pvMsgBody,int cubMsgBody) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SendLobbyChatMsg(m_pSteamMatchmaking,steamIDLobby,pvMsgBody,cubMsgBody); - return result; -} -public override int GetLobbyChatEntry(ulong steamIDLobby,int iChatID,out CSteamID pSteamIDUser,IntPtr pvData,int cubData,ref uint peChatEntryType) -{ - CheckIfUsable(); - pSteamIDUser = new CSteamID(); - peChatEntryType = 0; - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyChatEntry(m_pSteamMatchmaking,steamIDLobby,iChatID,ref pSteamIDUser,pvData,cubData,ref peChatEntryType); - return result; -} -public override bool RequestLobbyData(ulong steamIDLobby) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_RequestLobbyData(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override void SetLobbyGameServer(ulong steamIDLobby,uint unGameServerIP,char unGameServerPort,ulong steamIDGameServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyGameServer(m_pSteamMatchmaking,steamIDLobby,unGameServerIP,unGameServerPort,steamIDGameServer); -} -public override bool GetLobbyGameServer(ulong steamIDLobby,ref uint punGameServerIP,ref char punGameServerPort,out CSteamID psteamIDGameServer) -{ - CheckIfUsable(); - punGameServerIP = 0; - punGameServerPort = (char) 0; - psteamIDGameServer = new CSteamID(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyGameServer(m_pSteamMatchmaking,steamIDLobby,ref punGameServerIP,ref punGameServerPort,ref psteamIDGameServer); - return result; -} -public override bool SetLobbyMemberLimit(ulong steamIDLobby,int cMaxMembers) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit(m_pSteamMatchmaking,steamIDLobby,cMaxMembers); - return result; -} -public override int GetLobbyMemberLimit(ulong steamIDLobby) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override bool SetLobbyType(ulong steamIDLobby,uint eLobbyType) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyType(m_pSteamMatchmaking,steamIDLobby,eLobbyType); - return result; -} -public override bool SetLobbyJoinable(ulong steamIDLobby,bool bLobbyJoinable) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyJoinable(m_pSteamMatchmaking,steamIDLobby,bLobbyJoinable); - return result; -} -public override ulong GetLobbyOwner(ulong steamIDLobby) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyOwner(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override bool SetLobbyOwner(ulong steamIDLobby,ulong steamIDNewOwner) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyOwner(m_pSteamMatchmaking,steamIDLobby,steamIDNewOwner); - return result; -} -public override bool SetLinkedLobby(ulong steamIDLobby,ulong steamIDLobbyDependent) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLinkedLobby(m_pSteamMatchmaking,steamIDLobby,steamIDLobbyDependent); - return result; -} -} - - -public class CSteamMatchmakingServerListResponse : ISteamMatchmakingServerListResponse -{ -public CSteamMatchmakingServerListResponse(IntPtr SteamMatchmakingServerListResponse) -{ - m_pSteamMatchmakingServerListResponse = SteamMatchmakingServerListResponse; -} -IntPtr m_pSteamMatchmakingServerListResponse; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingServerListResponse; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingServerListResponse == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void ServerResponded(uint hRequest,int iServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded(m_pSteamMatchmakingServerListResponse,hRequest,iServer); -} -public override void ServerFailedToRespond(uint hRequest,int iServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond(m_pSteamMatchmakingServerListResponse,hRequest,iServer); -} -public override void RefreshComplete(uint hRequest,uint response) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete(m_pSteamMatchmakingServerListResponse,hRequest,response); -} -} - - -public class CSteamMatchmakingPingResponse : ISteamMatchmakingPingResponse -{ -public CSteamMatchmakingPingResponse(IntPtr SteamMatchmakingPingResponse) -{ - m_pSteamMatchmakingPingResponse = SteamMatchmakingPingResponse; -} -IntPtr m_pSteamMatchmakingPingResponse; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingPingResponse; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingPingResponse == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void ServerResponded(IntPtr server) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPingResponse_ServerResponded(m_pSteamMatchmakingPingResponse,server); -} -public override void ServerFailedToRespond() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond(m_pSteamMatchmakingPingResponse); -} -} - - -public class CSteamMatchmakingPlayersResponse : ISteamMatchmakingPlayersResponse -{ -public CSteamMatchmakingPlayersResponse(IntPtr SteamMatchmakingPlayersResponse) -{ - m_pSteamMatchmakingPlayersResponse = SteamMatchmakingPlayersResponse; -} -IntPtr m_pSteamMatchmakingPlayersResponse; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingPlayersResponse; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingPlayersResponse == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void AddPlayerToList(string pchName,int nScore,float flTimePlayed) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList(m_pSteamMatchmakingPlayersResponse,pchName,nScore,flTimePlayed); -} -public override void PlayersFailedToRespond() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond(m_pSteamMatchmakingPlayersResponse); -} -public override void PlayersRefreshComplete() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete(m_pSteamMatchmakingPlayersResponse); -} -} - - -public class CSteamMatchmakingRulesResponse : ISteamMatchmakingRulesResponse -{ -public CSteamMatchmakingRulesResponse(IntPtr SteamMatchmakingRulesResponse) -{ - m_pSteamMatchmakingRulesResponse = SteamMatchmakingRulesResponse; -} -IntPtr m_pSteamMatchmakingRulesResponse; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingRulesResponse; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingRulesResponse == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void RulesResponded(string pchRule,string pchValue) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded(m_pSteamMatchmakingRulesResponse,pchRule,pchValue); -} -public override void RulesFailedToRespond() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond(m_pSteamMatchmakingRulesResponse); -} -public override void RulesRefreshComplete() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete(m_pSteamMatchmakingRulesResponse); -} -} - - -public class CSteamMatchmakingServers : ISteamMatchmakingServers -{ -public CSteamMatchmakingServers(IntPtr SteamMatchmakingServers) -{ - m_pSteamMatchmakingServers = SteamMatchmakingServers; -} -IntPtr m_pSteamMatchmakingServers; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingServers; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingServers == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint RequestInternetServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestInternetServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestLANServerList(uint iApp,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestLANServerList(m_pSteamMatchmakingServers,iApp,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestFriendsServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestFavoritesServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestHistoryServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestSpectatorServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override void ReleaseRequest(uint hServerListRequest) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_ReleaseRequest(m_pSteamMatchmakingServers,hServerListRequest); -} -public override gameserveritem_t GetServerDetails(uint hRequest,int iServer) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_GetServerDetails(m_pSteamMatchmakingServers,hRequest,iServer); - return (gameserveritem_t) Marshal.PtrToStructure(result, typeof(gameserveritem_t)); -} -public override void CancelQuery(uint hRequest) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_CancelQuery(m_pSteamMatchmakingServers,hRequest); -} -public override void RefreshQuery(uint hRequest) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RefreshQuery(m_pSteamMatchmakingServers,hRequest); -} -public override bool IsRefreshing(uint hRequest) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_IsRefreshing(m_pSteamMatchmakingServers,hRequest); - return result; -} -public override int GetServerCount(uint hRequest) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_GetServerCount(m_pSteamMatchmakingServers,hRequest); - return result; -} -public override void RefreshServer(uint hRequest,int iServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RefreshServer(m_pSteamMatchmakingServers,hRequest,iServer); -} -public override uint PingServer(uint unIP,char usPort,ISteamMatchmakingPingResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_PingServer(m_pSteamMatchmakingServers,unIP,usPort,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint PlayerDetails(uint unIP,char usPort,ISteamMatchmakingPlayersResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_PlayerDetails(m_pSteamMatchmakingServers,unIP,usPort,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint ServerRules(uint unIP,char usPort,ISteamMatchmakingRulesResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_ServerRules(m_pSteamMatchmakingServers,unIP,usPort,pRequestServersResponse.GetIntPtr()); - return result; -} -public override void CancelServerQuery(uint hServerQuery) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_CancelServerQuery(m_pSteamMatchmakingServers,hServerQuery); -} -} - - -public class CSteamRemoteStorage : ISteamRemoteStorage -{ -public CSteamRemoteStorage(IntPtr SteamRemoteStorage) -{ - m_pSteamRemoteStorage = SteamRemoteStorage; -} -IntPtr m_pSteamRemoteStorage; - -public override IntPtr GetIntPtr() { return m_pSteamRemoteStorage; } - -private void CheckIfUsable() -{ - if (m_pSteamRemoteStorage == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool FileWrite(string pchFile,IntPtr pvData,int cubData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWrite(m_pSteamRemoteStorage,pchFile,pvData,cubData); - return result; -} -public override int FileRead(string pchFile,IntPtr pvData,int cubDataToRead) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileRead(m_pSteamRemoteStorage,pchFile,pvData,cubDataToRead); - return result; -} -public override ulong FileWriteAsync(string pchFile,IntPtr pvData,uint cubData) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteAsync(m_pSteamRemoteStorage,pchFile,pvData,cubData); - return result; -} -public override ulong FileReadAsync(string pchFile,uint nOffset,uint cubToRead) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileReadAsync(m_pSteamRemoteStorage,pchFile,nOffset,cubToRead); - return result; -} -public override bool FileReadAsyncComplete(ulong hReadCall,IntPtr pvBuffer,uint cubToRead) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete(m_pSteamRemoteStorage,hReadCall,pvBuffer,cubToRead); - return result; -} -public override bool FileForget(string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileForget(m_pSteamRemoteStorage,pchFile); - return result; -} -public override bool FileDelete(string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileDelete(m_pSteamRemoteStorage,pchFile); - return result; -} -public override ulong FileShare(string pchFile) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileShare(m_pSteamRemoteStorage,pchFile); - return result; -} -public override bool SetSyncPlatforms(string pchFile,uint eRemoteStoragePlatform) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_SetSyncPlatforms(m_pSteamRemoteStorage,pchFile,eRemoteStoragePlatform); - return result; -} -public override ulong FileWriteStreamOpen(string pchFile) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen(m_pSteamRemoteStorage,pchFile); - return result; -} -public override bool FileWriteStreamWriteChunk(ulong writeHandle,IntPtr pvData,int cubData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk(m_pSteamRemoteStorage,writeHandle,pvData,cubData); - return result; -} -public override bool FileWriteStreamClose(ulong writeHandle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteStreamClose(m_pSteamRemoteStorage,writeHandle); - return result; -} -public override bool FileWriteStreamCancel(ulong writeHandle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel(m_pSteamRemoteStorage,writeHandle); - return result; -} -public override bool FileExists(string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileExists(m_pSteamRemoteStorage,pchFile); - return result; -} -public override bool FilePersisted(string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FilePersisted(m_pSteamRemoteStorage,pchFile); - return result; -} -public override int GetFileSize(string pchFile) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetFileSize(m_pSteamRemoteStorage,pchFile); - return result; -} -public override long GetFileTimestamp(string pchFile) -{ - CheckIfUsable(); - long result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetFileTimestamp(m_pSteamRemoteStorage,pchFile); - return result; -} -public override uint GetSyncPlatforms(string pchFile) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetSyncPlatforms(m_pSteamRemoteStorage,pchFile); - return result; -} -public override int GetFileCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetFileCount(m_pSteamRemoteStorage); - return result; -} -public override string GetFileNameAndSize(int iFile,ref int pnFileSizeInBytes) -{ - CheckIfUsable(); - pnFileSizeInBytes = 0; - IntPtr result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetFileNameAndSize(m_pSteamRemoteStorage,iFile,ref pnFileSizeInBytes); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetQuota(ref ulong pnTotalBytes,ref ulong puAvailableBytes) -{ - CheckIfUsable(); - pnTotalBytes = 0; - puAvailableBytes = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetQuota(m_pSteamRemoteStorage,ref pnTotalBytes,ref puAvailableBytes); - return result; -} -public override bool IsCloudEnabledForAccount() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount(m_pSteamRemoteStorage); - return result; -} -public override bool IsCloudEnabledForApp() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp(m_pSteamRemoteStorage); - return result; -} -public override void SetCloudEnabledForApp(bool bEnabled) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp(m_pSteamRemoteStorage,bEnabled); -} -public override ulong UGCDownload(ulong hContent,uint unPriority) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UGCDownload(m_pSteamRemoteStorage,hContent,unPriority); - return result; -} -public override bool GetUGCDownloadProgress(ulong hContent,ref int pnBytesDownloaded,ref int pnBytesExpected) -{ - CheckIfUsable(); - pnBytesDownloaded = 0; - pnBytesExpected = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress(m_pSteamRemoteStorage,hContent,ref pnBytesDownloaded,ref pnBytesExpected); - return result; -} -public override bool GetUGCDetails(ulong hContent,ref uint pnAppID,System.Text.StringBuilder ppchName,ref int pnFileSizeInBytes,out CSteamID pSteamIDOwner) -{ - CheckIfUsable(); - pnAppID = 0; - pnFileSizeInBytes = 0; - pSteamIDOwner = new CSteamID(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetUGCDetails(m_pSteamRemoteStorage,hContent,ref pnAppID,ppchName,ref pnFileSizeInBytes,ref pSteamIDOwner); - return result; -} -public override int UGCRead(ulong hContent,IntPtr pvData,int cubDataToRead,uint cOffset,uint eAction) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UGCRead(m_pSteamRemoteStorage,hContent,pvData,cubDataToRead,cOffset,eAction); - return result; -} -public override int GetCachedUGCCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetCachedUGCCount(m_pSteamRemoteStorage); - return result; -} -public override ulong GetCachedUGCHandle(int iCachedContent) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle(m_pSteamRemoteStorage,iCachedContent); - return result; -} -public override ulong PublishWorkshopFile(string pchFile,string pchPreviewFile,uint nConsumerAppId,string pchTitle,string pchDescription,uint eVisibility,ref SteamParamStringArray_t pTags,uint eWorkshopFileType) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_PublishWorkshopFile(m_pSteamRemoteStorage,pchFile,pchPreviewFile,nConsumerAppId,pchTitle,pchDescription,eVisibility,ref pTags,eWorkshopFileType); - return result; -} -public override ulong CreatePublishedFileUpdateRequest(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override bool UpdatePublishedFileFile(ulong updateHandle,string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile(m_pSteamRemoteStorage,updateHandle,pchFile); - return result; -} -public override bool UpdatePublishedFilePreviewFile(ulong updateHandle,string pchPreviewFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile(m_pSteamRemoteStorage,updateHandle,pchPreviewFile); - return result; -} -public override bool UpdatePublishedFileTitle(ulong updateHandle,string pchTitle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle(m_pSteamRemoteStorage,updateHandle,pchTitle); - return result; -} -public override bool UpdatePublishedFileDescription(ulong updateHandle,string pchDescription) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription(m_pSteamRemoteStorage,updateHandle,pchDescription); - return result; -} -public override bool UpdatePublishedFileVisibility(ulong updateHandle,uint eVisibility) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility(m_pSteamRemoteStorage,updateHandle,eVisibility); - return result; -} -public override bool UpdatePublishedFileTags(ulong updateHandle,ref SteamParamStringArray_t pTags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags(m_pSteamRemoteStorage,updateHandle,ref pTags); - return result; -} -public override ulong CommitPublishedFileUpdate(ulong updateHandle) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate(m_pSteamRemoteStorage,updateHandle); - return result; -} -public override ulong GetPublishedFileDetails(ulong unPublishedFileId,uint unMaxSecondsOld) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails(m_pSteamRemoteStorage,unPublishedFileId,unMaxSecondsOld); - return result; -} -public override ulong DeletePublishedFile(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_DeletePublishedFile(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override ulong EnumerateUserPublishedFiles(uint unStartIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles(m_pSteamRemoteStorage,unStartIndex); - return result; -} -public override ulong SubscribePublishedFile(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_SubscribePublishedFile(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override ulong EnumerateUserSubscribedFiles(uint unStartIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles(m_pSteamRemoteStorage,unStartIndex); - return result; -} -public override ulong UnsubscribePublishedFile(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override bool UpdatePublishedFileSetChangeDescription(ulong updateHandle,string pchChangeDescription) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(m_pSteamRemoteStorage,updateHandle,pchChangeDescription); - return result; -} -public override ulong GetPublishedItemVoteDetails(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override ulong UpdateUserPublishedItemVote(ulong unPublishedFileId,bool bVoteUp) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote(m_pSteamRemoteStorage,unPublishedFileId,bVoteUp); - return result; -} -public override ulong GetUserPublishedItemVoteDetails(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override ulong EnumerateUserSharedWorkshopFiles(ulong steamId,uint unStartIndex,ref SteamParamStringArray_t pRequiredTags,ref SteamParamStringArray_t pExcludedTags) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(m_pSteamRemoteStorage,steamId,unStartIndex,ref pRequiredTags,ref pExcludedTags); - return result; -} -public override ulong PublishVideo(uint eVideoProvider,string pchVideoAccount,string pchVideoIdentifier,string pchPreviewFile,uint nConsumerAppId,string pchTitle,string pchDescription,uint eVisibility,ref SteamParamStringArray_t pTags) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_PublishVideo(m_pSteamRemoteStorage,eVideoProvider,pchVideoAccount,pchVideoIdentifier,pchPreviewFile,nConsumerAppId,pchTitle,pchDescription,eVisibility,ref pTags); - return result; -} -public override ulong SetUserPublishedFileAction(ulong unPublishedFileId,uint eAction) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction(m_pSteamRemoteStorage,unPublishedFileId,eAction); - return result; -} -public override ulong EnumeratePublishedFilesByUserAction(uint eAction,uint unStartIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(m_pSteamRemoteStorage,eAction,unStartIndex); - return result; -} -public override ulong EnumeratePublishedWorkshopFiles(uint eEnumerationType,uint unStartIndex,uint unCount,uint unDays,ref SteamParamStringArray_t pTags,ref SteamParamStringArray_t pUserTags) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(m_pSteamRemoteStorage,eEnumerationType,unStartIndex,unCount,unDays,ref pTags,ref pUserTags); - return result; -} -public override ulong UGCDownloadToLocation(ulong hContent,string pchLocation,uint unPriority) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation(m_pSteamRemoteStorage,hContent,pchLocation,unPriority); - return result; -} -} - - -public class CSteamUserStats : ISteamUserStats -{ -public CSteamUserStats(IntPtr SteamUserStats) -{ - m_pSteamUserStats = SteamUserStats; -} -IntPtr m_pSteamUserStats; - -public override IntPtr GetIntPtr() { return m_pSteamUserStats; } - -private void CheckIfUsable() -{ - if (m_pSteamUserStats == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool RequestCurrentStats() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_RequestCurrentStats(m_pSteamUserStats); - return result; -} -public override bool GetStat(string pchName,ref int pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetStat(m_pSteamUserStats,pchName,ref pData); - return result; -} -public override bool GetStat0(string pchName,ref float pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetStat0(m_pSteamUserStats,pchName,ref pData); - return result; -} -public override bool SetStat(string pchName,int nData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_SetStat(m_pSteamUserStats,pchName,nData); - return result; -} -public override bool SetStat0(string pchName,float fData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_SetStat0(m_pSteamUserStats,pchName,fData); - return result; -} -public override bool UpdateAvgRateStat(string pchName,float flCountThisSession,double dSessionLength) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_UpdateAvgRateStat(m_pSteamUserStats,pchName,flCountThisSession,dSessionLength); - return result; -} -public override bool GetAchievement(string pchName,ref bool pbAchieved) -{ - CheckIfUsable(); - pbAchieved = false; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievement(m_pSteamUserStats,pchName,ref pbAchieved); - return result; -} -public override bool SetAchievement(string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_SetAchievement(m_pSteamUserStats,pchName); - return result; -} -public override bool ClearAchievement(string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_ClearAchievement(m_pSteamUserStats,pchName); - return result; -} -public override bool GetAchievementAndUnlockTime(string pchName,ref bool pbAchieved,ref uint punUnlockTime) -{ - CheckIfUsable(); - pbAchieved = false; - punUnlockTime = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime(m_pSteamUserStats,pchName,ref pbAchieved,ref punUnlockTime); - return result; -} -public override bool StoreStats() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_StoreStats(m_pSteamUserStats); - return result; -} -public override int GetAchievementIcon(string pchName) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementIcon(m_pSteamUserStats,pchName); - return result; -} -public override string GetAchievementDisplayAttribute(string pchName,string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute(m_pSteamUserStats,pchName,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override bool IndicateAchievementProgress(string pchName,uint nCurProgress,uint nMaxProgress) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_IndicateAchievementProgress(m_pSteamUserStats,pchName,nCurProgress,nMaxProgress); - return result; -} -public override uint GetNumAchievements() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetNumAchievements(m_pSteamUserStats); - return result; -} -public override string GetAchievementName(uint iAchievement) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementName(m_pSteamUserStats,iAchievement); - return Marshal.PtrToStringAnsi(result); -} -public override ulong RequestUserStats(ulong steamIDUser) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_RequestUserStats(m_pSteamUserStats,steamIDUser); - return result; -} -public override bool GetUserStat(ulong steamIDUser,string pchName,ref int pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetUserStat(m_pSteamUserStats,steamIDUser,pchName,ref pData); - return result; -} -public override bool GetUserStat0(ulong steamIDUser,string pchName,ref float pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetUserStat0(m_pSteamUserStats,steamIDUser,pchName,ref pData); - return result; -} -public override bool GetUserAchievement(ulong steamIDUser,string pchName,ref bool pbAchieved) -{ - CheckIfUsable(); - pbAchieved = false; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetUserAchievement(m_pSteamUserStats,steamIDUser,pchName,ref pbAchieved); - return result; -} -public override bool GetUserAchievementAndUnlockTime(ulong steamIDUser,string pchName,ref bool pbAchieved,ref uint punUnlockTime) -{ - CheckIfUsable(); - pbAchieved = false; - punUnlockTime = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime(m_pSteamUserStats,steamIDUser,pchName,ref pbAchieved,ref punUnlockTime); - return result; -} -public override bool ResetAllStats(bool bAchievementsToo) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_ResetAllStats(m_pSteamUserStats,bAchievementsToo); - return result; -} -public override ulong FindOrCreateLeaderboard(string pchLeaderboardName,uint eLeaderboardSortMethod,uint eLeaderboardDisplayType) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_FindOrCreateLeaderboard(m_pSteamUserStats,pchLeaderboardName,eLeaderboardSortMethod,eLeaderboardDisplayType); - return result; -} -public override ulong FindLeaderboard(string pchLeaderboardName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_FindLeaderboard(m_pSteamUserStats,pchLeaderboardName); - return result; -} -public override string GetLeaderboardName(ulong hSteamLeaderboard) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetLeaderboardName(m_pSteamUserStats,hSteamLeaderboard); - return Marshal.PtrToStringAnsi(result); -} -public override int GetLeaderboardEntryCount(ulong hSteamLeaderboard) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetLeaderboardEntryCount(m_pSteamUserStats,hSteamLeaderboard); - return result; -} -public override uint GetLeaderboardSortMethod(ulong hSteamLeaderboard) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetLeaderboardSortMethod(m_pSteamUserStats,hSteamLeaderboard); - return result; -} -public override uint GetLeaderboardDisplayType(ulong hSteamLeaderboard) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetLeaderboardDisplayType(m_pSteamUserStats,hSteamLeaderboard); - return result; -} -public override ulong DownloadLeaderboardEntries(ulong hSteamLeaderboard,uint eLeaderboardDataRequest,int nRangeStart,int nRangeEnd) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_DownloadLeaderboardEntries(m_pSteamUserStats,hSteamLeaderboard,eLeaderboardDataRequest,nRangeStart,nRangeEnd); - return result; -} -public override ulong DownloadLeaderboardEntriesForUsers(ulong hSteamLeaderboard,CSteamID [] prgUsers) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers(m_pSteamUserStats,hSteamLeaderboard,prgUsers,(int) prgUsers.Length); - return result; -} -public override bool GetDownloadedLeaderboardEntry(ulong hSteamLeaderboardEntries,int index,ref LeaderboardEntry_t pLeaderboardEntry,ref int pDetails,int cDetailsMax) -{ - CheckIfUsable(); - pDetails = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry(m_pSteamUserStats,hSteamLeaderboardEntries,index,ref pLeaderboardEntry,ref pDetails,cDetailsMax); - return result; -} -public override ulong UploadLeaderboardScore(ulong hSteamLeaderboard,uint eLeaderboardUploadScoreMethod,int nScore,ref int pScoreDetails,int cScoreDetailsCount) -{ - CheckIfUsable(); - pScoreDetails = 0; - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_UploadLeaderboardScore(m_pSteamUserStats,hSteamLeaderboard,eLeaderboardUploadScoreMethod,nScore,ref pScoreDetails,cScoreDetailsCount); - return result; -} -public override ulong AttachLeaderboardUGC(ulong hSteamLeaderboard,ulong hUGC) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_AttachLeaderboardUGC(m_pSteamUserStats,hSteamLeaderboard,hUGC); - return result; -} -public override ulong GetNumberOfCurrentPlayers() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers(m_pSteamUserStats); - return result; -} -public override ulong RequestGlobalAchievementPercentages() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages(m_pSteamUserStats); - return result; -} -public override int GetMostAchievedAchievementInfo(string pchName,uint unNameBufLen,ref float pflPercent,ref bool pbAchieved) -{ - CheckIfUsable(); - pflPercent = 0; - pbAchieved = false; - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo(m_pSteamUserStats,pchName,unNameBufLen,ref pflPercent,ref pbAchieved); - return result; -} -public override int GetNextMostAchievedAchievementInfo(int iIteratorPrevious,string pchName,uint unNameBufLen,ref float pflPercent,ref bool pbAchieved) -{ - CheckIfUsable(); - pflPercent = 0; - pbAchieved = false; - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo(m_pSteamUserStats,iIteratorPrevious,pchName,unNameBufLen,ref pflPercent,ref pbAchieved); - return result; -} -public override bool GetAchievementAchievedPercent(string pchName,ref float pflPercent) -{ - CheckIfUsable(); - pflPercent = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementAchievedPercent(m_pSteamUserStats,pchName,ref pflPercent); - return result; -} -public override ulong RequestGlobalStats(int nHistoryDays) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_RequestGlobalStats(m_pSteamUserStats,nHistoryDays); - return result; -} -public override bool GetGlobalStat(string pchStatName,ref long pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetGlobalStat(m_pSteamUserStats,pchStatName,ref pData); - return result; -} -public override bool GetGlobalStat0(string pchStatName,ref double pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetGlobalStat0(m_pSteamUserStats,pchStatName,ref pData); - return result; -} -public override int GetGlobalStatHistory(string pchStatName,long [] pData) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetGlobalStatHistory(m_pSteamUserStats,pchStatName,pData,(uint) pData.Length); - return result; -} -public override int GetGlobalStatHistory0(string pchStatName,double [] pData) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetGlobalStatHistory0(m_pSteamUserStats,pchStatName,pData,(uint) pData.Length); - return result; -} -} - - -public class CSteamApps : ISteamApps -{ -public CSteamApps(IntPtr SteamApps) -{ - m_pSteamApps = SteamApps; -} -IntPtr m_pSteamApps; - -public override IntPtr GetIntPtr() { return m_pSteamApps; } - -private void CheckIfUsable() -{ - if (m_pSteamApps == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool BIsSubscribed() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsSubscribed(m_pSteamApps); - return result; -} -public override bool BIsLowViolence() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsLowViolence(m_pSteamApps); - return result; -} -public override bool BIsCybercafe() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsCybercafe(m_pSteamApps); - return result; -} -public override bool BIsVACBanned() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsVACBanned(m_pSteamApps); - return result; -} -public override string GetCurrentGameLanguage() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamApps_GetCurrentGameLanguage(m_pSteamApps); - return Marshal.PtrToStringAnsi(result); -} -public override string GetAvailableGameLanguages() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamApps_GetAvailableGameLanguages(m_pSteamApps); - return Marshal.PtrToStringAnsi(result); -} -public override bool BIsSubscribedApp(uint appID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsSubscribedApp(m_pSteamApps,appID); - return result; -} -public override bool BIsDlcInstalled(uint appID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsDlcInstalled(m_pSteamApps,appID); - return result; -} -public override uint GetEarliestPurchaseUnixTime(uint nAppID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime(m_pSteamApps,nAppID); - return result; -} -public override bool BIsSubscribedFromFreeWeekend() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend(m_pSteamApps); - return result; -} -public override int GetDLCCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamApps_GetDLCCount(m_pSteamApps); - return result; -} -public override bool BGetDLCDataByIndex(int iDLC,ref uint pAppID,ref bool pbAvailable,string pchName,int cchNameBufferSize) -{ - CheckIfUsable(); - pAppID = 0; - pbAvailable = false; - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BGetDLCDataByIndex(m_pSteamApps,iDLC,ref pAppID,ref pbAvailable,pchName,cchNameBufferSize); - return result; -} -public override void InstallDLC(uint nAppID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamApps_InstallDLC(m_pSteamApps,nAppID); -} -public override void UninstallDLC(uint nAppID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamApps_UninstallDLC(m_pSteamApps,nAppID); -} -public override void RequestAppProofOfPurchaseKey(uint nAppID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey(m_pSteamApps,nAppID); -} -public override bool GetCurrentBetaName(string pchName,int cchNameBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_GetCurrentBetaName(m_pSteamApps,pchName,cchNameBufferSize); - return result; -} -public override bool MarkContentCorrupt(bool bMissingFilesOnly) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_MarkContentCorrupt(m_pSteamApps,bMissingFilesOnly); - return result; -} -public override uint GetInstalledDepots(uint appID,ref uint pvecDepots,uint cMaxDepots) -{ - CheckIfUsable(); - pvecDepots = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamApps_GetInstalledDepots(m_pSteamApps,appID,ref pvecDepots,cMaxDepots); - return result; -} -public override uint GetAppInstallDir(uint appID,string pchFolder,uint cchFolderBufferSize) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamApps_GetAppInstallDir(m_pSteamApps,appID,pchFolder,cchFolderBufferSize); - return result; -} -public override bool BIsAppInstalled(uint appID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsAppInstalled(m_pSteamApps,appID); - return result; -} -public override ulong GetAppOwner() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamApps_GetAppOwner(m_pSteamApps); - return result; -} -public override string GetLaunchQueryParam(string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamApps_GetLaunchQueryParam(m_pSteamApps,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetDlcDownloadProgress(uint nAppID,ref ulong punBytesDownloaded,ref ulong punBytesTotal) -{ - CheckIfUsable(); - punBytesDownloaded = 0; - punBytesTotal = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamApps_GetDlcDownloadProgress(m_pSteamApps,nAppID,ref punBytesDownloaded,ref punBytesTotal); - return result; -} -public override int GetAppBuildId() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamApps_GetAppBuildId(m_pSteamApps); - return result; -} -public override void RequestAllProofOfPurchaseKeys() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys(m_pSteamApps); -} -public override ulong GetFileDetails(string pszFileName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamApps_GetFileDetails(m_pSteamApps,pszFileName); - return result; -} -} - - -public class CSteamNetworking : ISteamNetworking -{ -public CSteamNetworking(IntPtr SteamNetworking) -{ - m_pSteamNetworking = SteamNetworking; -} -IntPtr m_pSteamNetworking; - -public override IntPtr GetIntPtr() { return m_pSteamNetworking; } - -private void CheckIfUsable() -{ - if (m_pSteamNetworking == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool SendP2PPacket(ulong steamIDRemote,IntPtr pubData,uint cubData,uint eP2PSendType,int nChannel) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_SendP2PPacket(m_pSteamNetworking,steamIDRemote,pubData,cubData,eP2PSendType,nChannel); - return result; -} -public override bool IsP2PPacketAvailable(ref uint pcubMsgSize,int nChannel) -{ - CheckIfUsable(); - pcubMsgSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_IsP2PPacketAvailable(m_pSteamNetworking,ref pcubMsgSize,nChannel); - return result; -} -public override bool ReadP2PPacket(IntPtr pubDest,uint cubDest,ref uint pcubMsgSize,ref CSteamID psteamIDRemote,int nChannel) -{ - CheckIfUsable(); - pcubMsgSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_ReadP2PPacket(m_pSteamNetworking,pubDest,cubDest,ref pcubMsgSize,ref psteamIDRemote,nChannel); - return result; -} -public override bool AcceptP2PSessionWithUser(ulong steamIDRemote) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser(m_pSteamNetworking,steamIDRemote); - return result; -} -public override bool CloseP2PSessionWithUser(ulong steamIDRemote) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_CloseP2PSessionWithUser(m_pSteamNetworking,steamIDRemote); - return result; -} -public override bool CloseP2PChannelWithUser(ulong steamIDRemote,int nChannel) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_CloseP2PChannelWithUser(m_pSteamNetworking,steamIDRemote,nChannel); - return result; -} -public override bool GetP2PSessionState(ulong steamIDRemote,ref P2PSessionState_t pConnectionState) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetP2PSessionState(m_pSteamNetworking,steamIDRemote,ref pConnectionState); - return result; -} -public override bool AllowP2PPacketRelay(bool bAllow) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_AllowP2PPacketRelay(m_pSteamNetworking,bAllow); - return result; -} -public override uint CreateListenSocket(int nVirtualP2PPort,uint nIP,char nPort,bool bAllowUseOfPacketRelay) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamNetworking_CreateListenSocket(m_pSteamNetworking,nVirtualP2PPort,nIP,nPort,bAllowUseOfPacketRelay); - return result; -} -public override uint CreateP2PConnectionSocket(ulong steamIDTarget,int nVirtualPort,int nTimeoutSec,bool bAllowUseOfPacketRelay) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamNetworking_CreateP2PConnectionSocket(m_pSteamNetworking,steamIDTarget,nVirtualPort,nTimeoutSec,bAllowUseOfPacketRelay); - return result; -} -public override uint CreateConnectionSocket(uint nIP,char nPort,int nTimeoutSec) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamNetworking_CreateConnectionSocket(m_pSteamNetworking,nIP,nPort,nTimeoutSec); - return result; -} -public override bool DestroySocket(uint hSocket,bool bNotifyRemoteEnd) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_DestroySocket(m_pSteamNetworking,hSocket,bNotifyRemoteEnd); - return result; -} -public override bool DestroyListenSocket(uint hSocket,bool bNotifyRemoteEnd) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_DestroyListenSocket(m_pSteamNetworking,hSocket,bNotifyRemoteEnd); - return result; -} -public override bool SendDataOnSocket(uint hSocket,IntPtr pubData,uint cubData,bool bReliable) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_SendDataOnSocket(m_pSteamNetworking,hSocket,pubData,cubData,bReliable); - return result; -} -public override bool IsDataAvailableOnSocket(uint hSocket,ref uint pcubMsgSize) -{ - CheckIfUsable(); - pcubMsgSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_IsDataAvailableOnSocket(m_pSteamNetworking,hSocket,ref pcubMsgSize); - return result; -} -public override bool RetrieveDataFromSocket(uint hSocket,IntPtr pubDest,uint cubDest,ref uint pcubMsgSize) -{ - CheckIfUsable(); - pcubMsgSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_RetrieveDataFromSocket(m_pSteamNetworking,hSocket,pubDest,cubDest,ref pcubMsgSize); - return result; -} -public override bool IsDataAvailable(uint hListenSocket,ref uint pcubMsgSize,ref uint phSocket) -{ - CheckIfUsable(); - pcubMsgSize = 0; - phSocket = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_IsDataAvailable(m_pSteamNetworking,hListenSocket,ref pcubMsgSize,ref phSocket); - return result; -} -public override bool RetrieveData(uint hListenSocket,IntPtr pubDest,uint cubDest,ref uint pcubMsgSize,ref uint phSocket) -{ - CheckIfUsable(); - pcubMsgSize = 0; - phSocket = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_RetrieveData(m_pSteamNetworking,hListenSocket,pubDest,cubDest,ref pcubMsgSize,ref phSocket); - return result; -} -public override bool GetSocketInfo(uint hSocket,ref CSteamID pSteamIDRemote,ref int peSocketStatus,ref uint punIPRemote,ref char punPortRemote) -{ - CheckIfUsable(); - peSocketStatus = 0; - punIPRemote = 0; - punPortRemote = (char) 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetSocketInfo(m_pSteamNetworking,hSocket,ref pSteamIDRemote,ref peSocketStatus,ref punIPRemote,ref punPortRemote); - return result; -} -public override bool GetListenSocketInfo(uint hListenSocket,ref uint pnIP,ref char pnPort) -{ - CheckIfUsable(); - pnIP = 0; - pnPort = (char) 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetListenSocketInfo(m_pSteamNetworking,hListenSocket,ref pnIP,ref pnPort); - return result; -} -public override uint GetSocketConnectionType(uint hSocket) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetSocketConnectionType(m_pSteamNetworking,hSocket); - return result; -} -public override int GetMaxPacketSize(uint hSocket) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetMaxPacketSize(m_pSteamNetworking,hSocket); - return result; -} -} - - -public class CSteamScreenshots : ISteamScreenshots -{ -public CSteamScreenshots(IntPtr SteamScreenshots) -{ - m_pSteamScreenshots = SteamScreenshots; -} -IntPtr m_pSteamScreenshots; - -public override IntPtr GetIntPtr() { return m_pSteamScreenshots; } - -private void CheckIfUsable() -{ - if (m_pSteamScreenshots == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint WriteScreenshot(IntPtr pubRGB,uint cubRGB,int nWidth,int nHeight) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamScreenshots_WriteScreenshot(m_pSteamScreenshots,pubRGB,cubRGB,nWidth,nHeight); - return result; -} -public override uint AddScreenshotToLibrary(string pchFilename,string pchThumbnailFilename,int nWidth,int nHeight) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamScreenshots_AddScreenshotToLibrary(m_pSteamScreenshots,pchFilename,pchThumbnailFilename,nWidth,nHeight); - return result; -} -public override void TriggerScreenshot() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamScreenshots_TriggerScreenshot(m_pSteamScreenshots); -} -public override void HookScreenshots(bool bHook) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamScreenshots_HookScreenshots(m_pSteamScreenshots,bHook); -} -public override bool SetLocation(uint hScreenshot,string pchLocation) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamScreenshots_SetLocation(m_pSteamScreenshots,hScreenshot,pchLocation); - return result; -} -public override bool TagUser(uint hScreenshot,ulong steamID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamScreenshots_TagUser(m_pSteamScreenshots,hScreenshot,steamID); - return result; -} -public override bool TagPublishedFile(uint hScreenshot,ulong unPublishedFileID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamScreenshots_TagPublishedFile(m_pSteamScreenshots,hScreenshot,unPublishedFileID); - return result; -} -public override bool IsScreenshotsHooked() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamScreenshots_IsScreenshotsHooked(m_pSteamScreenshots); - return result; -} -public override uint AddVRScreenshotToLibrary(uint eType,string pchFilename,string pchVRFilename) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary(m_pSteamScreenshots,eType,pchFilename,pchVRFilename); - return result; -} -} - - -public class CSteamMusic : ISteamMusic -{ -public CSteamMusic(IntPtr SteamMusic) -{ - m_pSteamMusic = SteamMusic; -} -IntPtr m_pSteamMusic; - -public override IntPtr GetIntPtr() { return m_pSteamMusic; } - -private void CheckIfUsable() -{ - if (m_pSteamMusic == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool BIsEnabled() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusic_BIsEnabled(m_pSteamMusic); - return result; -} -public override bool BIsPlaying() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusic_BIsPlaying(m_pSteamMusic); - return result; -} -public override int GetPlaybackStatus() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMusic_GetPlaybackStatus(m_pSteamMusic); - return result; -} -public override void Play() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_Play(m_pSteamMusic); -} -public override void Pause() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_Pause(m_pSteamMusic); -} -public override void PlayPrevious() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_PlayPrevious(m_pSteamMusic); -} -public override void PlayNext() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_PlayNext(m_pSteamMusic); -} -public override void SetVolume(float flVolume) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_SetVolume(m_pSteamMusic,flVolume); -} -public override float GetVolume() -{ - CheckIfUsable(); - float result = NativeEntrypoints.SteamAPI_ISteamMusic_GetVolume(m_pSteamMusic); - return result; -} -} - - -public class CSteamMusicRemote : ISteamMusicRemote -{ -public CSteamMusicRemote(IntPtr SteamMusicRemote) -{ - m_pSteamMusicRemote = SteamMusicRemote; -} -IntPtr m_pSteamMusicRemote; - -public override IntPtr GetIntPtr() { return m_pSteamMusicRemote; } - -private void CheckIfUsable() -{ - if (m_pSteamMusicRemote == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool RegisterSteamMusicRemote(string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote(m_pSteamMusicRemote,pchName); - return result; -} -public override bool DeregisterSteamMusicRemote() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote(m_pSteamMusicRemote); - return result; -} -public override bool BIsCurrentMusicRemote() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote(m_pSteamMusicRemote); - return result; -} -public override bool BActivationSuccess(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_BActivationSuccess(m_pSteamMusicRemote,bValue); - return result; -} -public override bool SetDisplayName(string pchDisplayName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetDisplayName(m_pSteamMusicRemote,pchDisplayName); - return result; -} -public override bool SetPNGIcon_64x64(IntPtr pvBuffer,uint cbBufferLength) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64(m_pSteamMusicRemote,pvBuffer,cbBufferLength); - return result; -} -public override bool EnablePlayPrevious(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnablePlayPrevious(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnablePlayNext(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnablePlayNext(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnableShuffled(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnableShuffled(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnableLooped(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnableLooped(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnableQueue(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnableQueue(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnablePlaylists(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnablePlaylists(m_pSteamMusicRemote,bValue); - return result; -} -public override bool UpdatePlaybackStatus(int nStatus) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus(m_pSteamMusicRemote,nStatus); - return result; -} -public override bool UpdateShuffled(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateShuffled(m_pSteamMusicRemote,bValue); - return result; -} -public override bool UpdateLooped(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateLooped(m_pSteamMusicRemote,bValue); - return result; -} -public override bool UpdateVolume(float flValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateVolume(m_pSteamMusicRemote,flValue); - return result; -} -public override bool CurrentEntryWillChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_CurrentEntryWillChange(m_pSteamMusicRemote); - return result; -} -public override bool CurrentEntryIsAvailable(bool bAvailable) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable(m_pSteamMusicRemote,bAvailable); - return result; -} -public override bool UpdateCurrentEntryText(string pchText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText(m_pSteamMusicRemote,pchText); - return result; -} -public override bool UpdateCurrentEntryElapsedSeconds(int nValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds(m_pSteamMusicRemote,nValue); - return result; -} -public override bool UpdateCurrentEntryCoverArt(IntPtr pvBuffer,uint cbBufferLength) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt(m_pSteamMusicRemote,pvBuffer,cbBufferLength); - return result; -} -public override bool CurrentEntryDidChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_CurrentEntryDidChange(m_pSteamMusicRemote); - return result; -} -public override bool QueueWillChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_QueueWillChange(m_pSteamMusicRemote); - return result; -} -public override bool ResetQueueEntries() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_ResetQueueEntries(m_pSteamMusicRemote); - return result; -} -public override bool SetQueueEntry(int nID,int nPosition,string pchEntryText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetQueueEntry(m_pSteamMusicRemote,nID,nPosition,pchEntryText); - return result; -} -public override bool SetCurrentQueueEntry(int nID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry(m_pSteamMusicRemote,nID); - return result; -} -public override bool QueueDidChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_QueueDidChange(m_pSteamMusicRemote); - return result; -} -public override bool PlaylistWillChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_PlaylistWillChange(m_pSteamMusicRemote); - return result; -} -public override bool ResetPlaylistEntries() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_ResetPlaylistEntries(m_pSteamMusicRemote); - return result; -} -public override bool SetPlaylistEntry(int nID,int nPosition,string pchEntryText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetPlaylistEntry(m_pSteamMusicRemote,nID,nPosition,pchEntryText); - return result; -} -public override bool SetCurrentPlaylistEntry(int nID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry(m_pSteamMusicRemote,nID); - return result; -} -public override bool PlaylistDidChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_PlaylistDidChange(m_pSteamMusicRemote); - return result; -} -} - - -public class CSteamHTTP : ISteamHTTP -{ -public CSteamHTTP(IntPtr SteamHTTP) -{ - m_pSteamHTTP = SteamHTTP; -} -IntPtr m_pSteamHTTP; - -public override IntPtr GetIntPtr() { return m_pSteamHTTP; } - -private void CheckIfUsable() -{ - if (m_pSteamHTTP == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint CreateHTTPRequest(uint eHTTPRequestMethod,string pchAbsoluteURL) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamHTTP_CreateHTTPRequest(m_pSteamHTTP,eHTTPRequestMethod,pchAbsoluteURL); - return result; -} -public override bool SetHTTPRequestContextValue(uint hRequest,ulong ulContextValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestContextValue(m_pSteamHTTP,hRequest,ulContextValue); - return result; -} -public override bool SetHTTPRequestNetworkActivityTimeout(uint hRequest,uint unTimeoutSeconds) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(m_pSteamHTTP,hRequest,unTimeoutSeconds); - return result; -} -public override bool SetHTTPRequestHeaderValue(uint hRequest,string pchHeaderName,string pchHeaderValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue(m_pSteamHTTP,hRequest,pchHeaderName,pchHeaderValue); - return result; -} -public override bool SetHTTPRequestGetOrPostParameter(uint hRequest,string pchParamName,string pchParamValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter(m_pSteamHTTP,hRequest,pchParamName,pchParamValue); - return result; -} -public override bool SendHTTPRequest(uint hRequest,ref ulong pCallHandle) -{ - CheckIfUsable(); - pCallHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SendHTTPRequest(m_pSteamHTTP,hRequest,ref pCallHandle); - return result; -} -public override bool SendHTTPRequestAndStreamResponse(uint hRequest,ref ulong pCallHandle) -{ - CheckIfUsable(); - pCallHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse(m_pSteamHTTP,hRequest,ref pCallHandle); - return result; -} -public override bool DeferHTTPRequest(uint hRequest) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_DeferHTTPRequest(m_pSteamHTTP,hRequest); - return result; -} -public override bool PrioritizeHTTPRequest(uint hRequest) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_PrioritizeHTTPRequest(m_pSteamHTTP,hRequest); - return result; -} -public override bool GetHTTPResponseHeaderSize(uint hRequest,string pchHeaderName,ref uint unResponseHeaderSize) -{ - CheckIfUsable(); - unResponseHeaderSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize(m_pSteamHTTP,hRequest,pchHeaderName,ref unResponseHeaderSize); - return result; -} -public override bool GetHTTPResponseHeaderValue(uint hRequest,string pchHeaderName,IntPtr pHeaderValueBuffer,uint unBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue(m_pSteamHTTP,hRequest,pchHeaderName,pHeaderValueBuffer,unBufferSize); - return result; -} -public override bool GetHTTPResponseBodySize(uint hRequest,ref uint unBodySize) -{ - CheckIfUsable(); - unBodySize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPResponseBodySize(m_pSteamHTTP,hRequest,ref unBodySize); - return result; -} -public override bool GetHTTPResponseBodyData(uint hRequest,IntPtr pBodyDataBuffer,uint unBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPResponseBodyData(m_pSteamHTTP,hRequest,pBodyDataBuffer,unBufferSize); - return result; -} -public override bool GetHTTPStreamingResponseBodyData(uint hRequest,uint cOffset,IntPtr pBodyDataBuffer,uint unBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData(m_pSteamHTTP,hRequest,cOffset,pBodyDataBuffer,unBufferSize); - return result; -} -public override bool ReleaseHTTPRequest(uint hRequest) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_ReleaseHTTPRequest(m_pSteamHTTP,hRequest); - return result; -} -public override bool GetHTTPDownloadProgressPct(uint hRequest,ref float pflPercentOut) -{ - CheckIfUsable(); - pflPercentOut = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct(m_pSteamHTTP,hRequest,ref pflPercentOut); - return result; -} -public override bool SetHTTPRequestRawPostBody(uint hRequest,string pchContentType,IntPtr pubBody,uint unBodyLen) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody(m_pSteamHTTP,hRequest,pchContentType,pubBody,unBodyLen); - return result; -} -public override uint CreateCookieContainer(bool bAllowResponsesToModify) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamHTTP_CreateCookieContainer(m_pSteamHTTP,bAllowResponsesToModify); - return result; -} -public override bool ReleaseCookieContainer(uint hCookieContainer) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_ReleaseCookieContainer(m_pSteamHTTP,hCookieContainer); - return result; -} -public override bool SetCookie(uint hCookieContainer,string pchHost,string pchUrl,string pchCookie) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetCookie(m_pSteamHTTP,hCookieContainer,pchHost,pchUrl,pchCookie); - return result; -} -public override bool SetHTTPRequestCookieContainer(uint hRequest,uint hCookieContainer) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer(m_pSteamHTTP,hRequest,hCookieContainer); - return result; -} -public override bool SetHTTPRequestUserAgentInfo(uint hRequest,string pchUserAgentInfo) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo(m_pSteamHTTP,hRequest,pchUserAgentInfo); - return result; -} -public override bool SetHTTPRequestRequiresVerifiedCertificate(uint hRequest,bool bRequireVerifiedCertificate) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(m_pSteamHTTP,hRequest,bRequireVerifiedCertificate); - return result; -} -public override bool SetHTTPRequestAbsoluteTimeoutMS(uint hRequest,uint unMilliseconds) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(m_pSteamHTTP,hRequest,unMilliseconds); - return result; -} -public override bool GetHTTPRequestWasTimedOut(uint hRequest,ref bool pbWasTimedOut) -{ - CheckIfUsable(); - pbWasTimedOut = false; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut(m_pSteamHTTP,hRequest,ref pbWasTimedOut); - return result; -} -} - - -public class CSteamUnifiedMessages : ISteamUnifiedMessages -{ -public CSteamUnifiedMessages(IntPtr SteamUnifiedMessages) -{ - m_pSteamUnifiedMessages = SteamUnifiedMessages; -} -IntPtr m_pSteamUnifiedMessages; - -public override IntPtr GetIntPtr() { return m_pSteamUnifiedMessages; } - -private void CheckIfUsable() -{ - if (m_pSteamUnifiedMessages == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override ulong SendMethod(string pchServiceMethod,IntPtr pRequestBuffer,uint unRequestBufferSize,ulong unContext) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_SendMethod(m_pSteamUnifiedMessages,pchServiceMethod,pRequestBuffer,unRequestBufferSize,unContext); - return result; -} -public override bool GetMethodResponseInfo(ulong hHandle,ref uint punResponseSize,ref uint peResult) -{ - CheckIfUsable(); - punResponseSize = 0; - peResult = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_GetMethodResponseInfo(m_pSteamUnifiedMessages,hHandle,ref punResponseSize,ref peResult); - return result; -} -public override bool GetMethodResponseData(ulong hHandle,IntPtr pResponseBuffer,uint unResponseBufferSize,bool bAutoRelease) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_GetMethodResponseData(m_pSteamUnifiedMessages,hHandle,pResponseBuffer,unResponseBufferSize,bAutoRelease); - return result; -} -public override bool ReleaseMethod(ulong hHandle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_ReleaseMethod(m_pSteamUnifiedMessages,hHandle); - return result; -} -public override bool SendNotification(string pchServiceNotification,IntPtr pNotificationBuffer,uint unNotificationBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_SendNotification(m_pSteamUnifiedMessages,pchServiceNotification,pNotificationBuffer,unNotificationBufferSize); - return result; -} -} - - -public class CSteamController : ISteamController -{ -public CSteamController(IntPtr SteamController) -{ - m_pSteamController = SteamController; -} -IntPtr m_pSteamController; - -public override IntPtr GetIntPtr() { return m_pSteamController; } - -private void CheckIfUsable() -{ - if (m_pSteamController == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool Init() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_Init(m_pSteamController); - return result; -} -public override bool Shutdown() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_Shutdown(m_pSteamController); - return result; -} -public override void RunFrame() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_RunFrame(m_pSteamController); -} -public override int GetConnectedControllers(ref ulong handlesOut) -{ - CheckIfUsable(); - handlesOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetConnectedControllers(m_pSteamController,ref handlesOut); - return result; -} -public override bool ShowBindingPanel(ulong controllerHandle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_ShowBindingPanel(m_pSteamController,controllerHandle); - return result; -} -public override ulong GetActionSetHandle(string pszActionSetName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetActionSetHandle(m_pSteamController,pszActionSetName); - return result; -} -public override void ActivateActionSet(ulong controllerHandle,ulong actionSetHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_ActivateActionSet(m_pSteamController,controllerHandle,actionSetHandle); -} -public override ulong GetCurrentActionSet(ulong controllerHandle) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetCurrentActionSet(m_pSteamController,controllerHandle); - return result; -} -public override ulong GetDigitalActionHandle(string pszActionName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionHandle(m_pSteamController,pszActionName); - return result; -} -public override ControllerDigitalActionData_t GetDigitalActionData(ulong controllerHandle,ulong digitalActionHandle) -{ - CheckIfUsable(); - ControllerDigitalActionData_t result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionData(m_pSteamController,controllerHandle,digitalActionHandle); - return result; -} -public override int GetDigitalActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong digitalActionHandle,ref uint originsOut) -{ - CheckIfUsable(); - originsOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionOrigins(m_pSteamController,controllerHandle,actionSetHandle,digitalActionHandle,ref originsOut); - return result; -} -public override ulong GetAnalogActionHandle(string pszActionName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionHandle(m_pSteamController,pszActionName); - return result; -} -public override ControllerAnalogActionData_t GetAnalogActionData(ulong controllerHandle,ulong analogActionHandle) -{ - CheckIfUsable(); - ControllerAnalogActionData_t result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionData(m_pSteamController,controllerHandle,analogActionHandle); - return result; -} -public override int GetAnalogActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong analogActionHandle,ref uint originsOut) -{ - CheckIfUsable(); - originsOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionOrigins(m_pSteamController,controllerHandle,actionSetHandle,analogActionHandle,ref originsOut); - return result; -} -public override void StopAnalogActionMomentum(ulong controllerHandle,ulong eAction) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_StopAnalogActionMomentum(m_pSteamController,controllerHandle,eAction); -} -public override void TriggerHapticPulse(ulong controllerHandle,uint eTargetPad,char usDurationMicroSec) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_TriggerHapticPulse(m_pSteamController,controllerHandle,eTargetPad,usDurationMicroSec); -} -public override void TriggerRepeatedHapticPulse(ulong controllerHandle,uint eTargetPad,char usDurationMicroSec,char usOffMicroSec,char unRepeat,uint nFlags) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_TriggerRepeatedHapticPulse(m_pSteamController,controllerHandle,eTargetPad,usDurationMicroSec,usOffMicroSec,unRepeat,nFlags); -} -public override int GetGamepadIndexForController(ulong ulControllerHandle) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamController_GetGamepadIndexForController(m_pSteamController,ulControllerHandle); - return result; -} -public override ulong GetControllerForGamepadIndex(int nIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetControllerForGamepadIndex(m_pSteamController,nIndex); - return result; -} -public override ControllerMotionData_t GetMotionData(ulong controllerHandle) -{ - CheckIfUsable(); - ControllerMotionData_t result = NativeEntrypoints.SteamAPI_ISteamController_GetMotionData(m_pSteamController,controllerHandle); - return result; -} -public override bool ShowDigitalActionOrigins(ulong controllerHandle,ulong digitalActionHandle,float flScale,float flXPosition,float flYPosition) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_ShowDigitalActionOrigins(m_pSteamController,controllerHandle,digitalActionHandle,flScale,flXPosition,flYPosition); - return result; -} -public override bool ShowAnalogActionOrigins(ulong controllerHandle,ulong analogActionHandle,float flScale,float flXPosition,float flYPosition) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_ShowAnalogActionOrigins(m_pSteamController,controllerHandle,analogActionHandle,flScale,flXPosition,flYPosition); - return result; -} -} - - -public class CSteamUGC : ISteamUGC -{ -public CSteamUGC(IntPtr SteamUGC) -{ - m_pSteamUGC = SteamUGC; -} -IntPtr m_pSteamUGC; - -public override IntPtr GetIntPtr() { return m_pSteamUGC; } - -private void CheckIfUsable() -{ - if (m_pSteamUGC == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override ulong CreateQueryUserUGCRequest(uint unAccountID,uint eListType,uint eMatchingUGCType,uint eSortOrder,uint nCreatorAppID,uint nConsumerAppID,uint unPage) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(m_pSteamUGC,unAccountID,eListType,eMatchingUGCType,eSortOrder,nCreatorAppID,nConsumerAppID,unPage); - return result; -} -public override ulong CreateQueryAllUGCRequest(uint eQueryType,uint eMatchingeMatchingUGCTypeFileType,uint nCreatorAppID,uint nConsumerAppID,uint unPage) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_CreateQueryAllUGCRequest(m_pSteamUGC,eQueryType,eMatchingeMatchingUGCTypeFileType,nCreatorAppID,nConsumerAppID,unPage); - return result; -} -public override ulong CreateQueryUGCDetailsRequest(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest(m_pSteamUGC,ref pvecPublishedFileID,unNumPublishedFileIDs); - return result; -} -public override ulong SendQueryUGCRequest(ulong handle) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_SendQueryUGCRequest(m_pSteamUGC,handle); - return result; -} -public override bool GetQueryUGCResult(ulong handle,uint index,ref SteamUGCDetails_t pDetails) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCResult(m_pSteamUGC,handle,index,ref pDetails); - return result; -} -public override bool GetQueryUGCPreviewURL(ulong handle,uint index,out string pchURL) -{ - CheckIfUsable(); - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCPreviewURL(m_pSteamUGC,handle,index,pStrBuffer1,2048); - pchURL = pStrBuffer1.ToString(); - return result; -} -public override bool GetQueryUGCMetadata(ulong handle,uint index,out string pchMetadata) -{ - CheckIfUsable(); - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCMetadata(m_pSteamUGC,handle,index,pStrBuffer1,2048); - pchMetadata = pStrBuffer1.ToString(); - return result; -} -public override bool GetQueryUGCChildren(ulong handle,uint index,ref ulong pvecPublishedFileID,uint cMaxEntries) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCChildren(m_pSteamUGC,handle,index,ref pvecPublishedFileID,cMaxEntries); - return result; -} -public override bool GetQueryUGCStatistic(ulong handle,uint index,uint eStatType,ref ulong pStatValue) -{ - CheckIfUsable(); - pStatValue = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCStatistic(m_pSteamUGC,handle,index,eStatType,ref pStatValue); - return result; -} -public override uint GetQueryUGCNumAdditionalPreviews(ulong handle,uint index) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews(m_pSteamUGC,handle,index); - return result; -} -public override bool GetQueryUGCAdditionalPreview(ulong handle,uint index,uint previewIndex,out string pchURLOrVideoID,out string pchOriginalFileName,uint cchOriginalFileNameSize,ref uint pPreviewType) -{ - CheckIfUsable(); - pPreviewType = 0; - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - System.Text.StringBuilder pStrBuffer2 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(m_pSteamUGC,handle,index,previewIndex,pStrBuffer1,2048,pStrBuffer2,cchOriginalFileNameSize,ref pPreviewType); - pchURLOrVideoID = pStrBuffer1.ToString(); - pchOriginalFileName = pStrBuffer2.ToString(); - return result; -} -public override uint GetQueryUGCNumKeyValueTags(ulong handle,uint index) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(m_pSteamUGC,handle,index); - return result; -} -public override bool GetQueryUGCKeyValueTag(ulong handle,uint index,uint keyValueTagIndex,out string pchKey,out string pchValue) -{ - CheckIfUsable(); - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - System.Text.StringBuilder pStrBuffer2 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(m_pSteamUGC,handle,index,keyValueTagIndex,pStrBuffer1,2048,pStrBuffer2,2048); - pchKey = pStrBuffer1.ToString(); - pchValue = pStrBuffer2.ToString(); - return result; -} -public override bool ReleaseQueryUGCRequest(ulong handle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(m_pSteamUGC,handle); - return result; -} -public override bool AddRequiredTag(ulong handle,string pTagName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddRequiredTag(m_pSteamUGC,handle,pTagName); - return result; -} -public override bool AddExcludedTag(ulong handle,string pTagName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddExcludedTag(m_pSteamUGC,handle,pTagName); - return result; -} -public override bool SetReturnOnlyIDs(ulong handle,bool bReturnOnlyIDs) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnOnlyIDs(m_pSteamUGC,handle,bReturnOnlyIDs); - return result; -} -public override bool SetReturnKeyValueTags(ulong handle,bool bReturnKeyValueTags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnKeyValueTags(m_pSteamUGC,handle,bReturnKeyValueTags); - return result; -} -public override bool SetReturnLongDescription(ulong handle,bool bReturnLongDescription) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnLongDescription(m_pSteamUGC,handle,bReturnLongDescription); - return result; -} -public override bool SetReturnMetadata(ulong handle,bool bReturnMetadata) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnMetadata(m_pSteamUGC,handle,bReturnMetadata); - return result; -} -public override bool SetReturnChildren(ulong handle,bool bReturnChildren) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnChildren(m_pSteamUGC,handle,bReturnChildren); - return result; -} -public override bool SetReturnAdditionalPreviews(ulong handle,bool bReturnAdditionalPreviews) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(m_pSteamUGC,handle,bReturnAdditionalPreviews); - return result; -} -public override bool SetReturnTotalOnly(ulong handle,bool bReturnTotalOnly) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnTotalOnly(m_pSteamUGC,handle,bReturnTotalOnly); - return result; -} -public override bool SetLanguage(ulong handle,string pchLanguage) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetLanguage(m_pSteamUGC,handle,pchLanguage); - return result; -} -public override bool SetAllowCachedResponse(ulong handle,uint unMaxAgeSeconds) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetAllowCachedResponse(m_pSteamUGC,handle,unMaxAgeSeconds); - return result; -} -public override bool SetCloudFileNameFilter(ulong handle,string pMatchCloudFileName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetCloudFileNameFilter(m_pSteamUGC,handle,pMatchCloudFileName); - return result; -} -public override bool SetMatchAnyTag(ulong handle,bool bMatchAnyTag) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetMatchAnyTag(m_pSteamUGC,handle,bMatchAnyTag); - return result; -} -public override bool SetSearchText(ulong handle,string pSearchText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetSearchText(m_pSteamUGC,handle,pSearchText); - return result; -} -public override bool SetRankedByTrendDays(ulong handle,uint unDays) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetRankedByTrendDays(m_pSteamUGC,handle,unDays); - return result; -} -public override bool AddRequiredKeyValueTag(ulong handle,string pKey,string pValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddRequiredKeyValueTag(m_pSteamUGC,handle,pKey,pValue); - return result; -} -public override ulong RequestUGCDetails(ulong nPublishedFileID,uint unMaxAgeSeconds) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_RequestUGCDetails(m_pSteamUGC,nPublishedFileID,unMaxAgeSeconds); - return result; -} -public override ulong CreateItem(uint nConsumerAppId,uint eFileType) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_CreateItem(m_pSteamUGC,nConsumerAppId,eFileType); - return result; -} -public override ulong StartItemUpdate(uint nConsumerAppId,ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StartItemUpdate(m_pSteamUGC,nConsumerAppId,nPublishedFileID); - return result; -} -public override bool SetItemTitle(ulong handle,string pchTitle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemTitle(m_pSteamUGC,handle,pchTitle); - return result; -} -public override bool SetItemDescription(ulong handle,string pchDescription) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemDescription(m_pSteamUGC,handle,pchDescription); - return result; -} -public override bool SetItemUpdateLanguage(ulong handle,string pchLanguage) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemUpdateLanguage(m_pSteamUGC,handle,pchLanguage); - return result; -} -public override bool SetItemMetadata(ulong handle,string pchMetaData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemMetadata(m_pSteamUGC,handle,pchMetaData); - return result; -} -public override bool SetItemVisibility(ulong handle,uint eVisibility) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemVisibility(m_pSteamUGC,handle,eVisibility); - return result; -} -public override bool SetItemTags(ulong updateHandle,ref SteamParamStringArray_t pTags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemTags(m_pSteamUGC,updateHandle,ref pTags); - return result; -} -public override bool SetItemContent(ulong handle,string pszContentFolder) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemContent(m_pSteamUGC,handle,pszContentFolder); - return result; -} -public override bool SetItemPreview(ulong handle,string pszPreviewFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemPreview(m_pSteamUGC,handle,pszPreviewFile); - return result; -} -public override bool RemoveItemKeyValueTags(ulong handle,string pchKey) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_RemoveItemKeyValueTags(m_pSteamUGC,handle,pchKey); - return result; -} -public override bool AddItemKeyValueTag(ulong handle,string pchKey,string pchValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddItemKeyValueTag(m_pSteamUGC,handle,pchKey,pchValue); - return result; -} -public override bool AddItemPreviewFile(ulong handle,string pszPreviewFile,uint type) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddItemPreviewFile(m_pSteamUGC,handle,pszPreviewFile,type); - return result; -} -public override bool AddItemPreviewVideo(ulong handle,string pszVideoID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddItemPreviewVideo(m_pSteamUGC,handle,pszVideoID); - return result; -} -public override bool UpdateItemPreviewFile(ulong handle,uint index,string pszPreviewFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_UpdateItemPreviewFile(m_pSteamUGC,handle,index,pszPreviewFile); - return result; -} -public override bool UpdateItemPreviewVideo(ulong handle,uint index,string pszVideoID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_UpdateItemPreviewVideo(m_pSteamUGC,handle,index,pszVideoID); - return result; -} -public override bool RemoveItemPreview(ulong handle,uint index) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_RemoveItemPreview(m_pSteamUGC,handle,index); - return result; -} -public override ulong SubmitItemUpdate(ulong handle,string pchChangeNote) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_SubmitItemUpdate(m_pSteamUGC,handle,pchChangeNote); - return result; -} -public override uint GetItemUpdateProgress(ulong handle,ref ulong punBytesProcessed,ref ulong punBytesTotal) -{ - CheckIfUsable(); - punBytesProcessed = 0; - punBytesTotal = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetItemUpdateProgress(m_pSteamUGC,handle,ref punBytesProcessed,ref punBytesTotal); - return result; -} -public override ulong SetUserItemVote(ulong nPublishedFileID,bool bVoteUp) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_SetUserItemVote(m_pSteamUGC,nPublishedFileID,bVoteUp); - return result; -} -public override ulong GetUserItemVote(ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_GetUserItemVote(m_pSteamUGC,nPublishedFileID); - return result; -} -public override ulong AddItemToFavorites(uint nAppId,ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_AddItemToFavorites(m_pSteamUGC,nAppId,nPublishedFileID); - return result; -} -public override ulong RemoveItemFromFavorites(uint nAppId,ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_RemoveItemFromFavorites(m_pSteamUGC,nAppId,nPublishedFileID); - return result; -} -public override ulong SubscribeItem(ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_SubscribeItem(m_pSteamUGC,nPublishedFileID); - return result; -} -public override ulong UnsubscribeItem(ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_UnsubscribeItem(m_pSteamUGC,nPublishedFileID); - return result; -} -public override uint GetNumSubscribedItems() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetNumSubscribedItems(m_pSteamUGC); - return result; -} -public override uint GetSubscribedItems(ref ulong pvecPublishedFileID,uint cMaxEntries) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetSubscribedItems(m_pSteamUGC,ref pvecPublishedFileID,cMaxEntries); - return result; -} -public override uint GetItemState(ulong nPublishedFileID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetItemState(m_pSteamUGC,nPublishedFileID); - return result; -} -public override bool GetItemInstallInfo(ulong nPublishedFileID,ref ulong punSizeOnDisk,out string pchFolder,ref uint punTimeStamp) -{ - CheckIfUsable(); - punSizeOnDisk = 0; - punTimeStamp = 0; - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetItemInstallInfo(m_pSteamUGC,nPublishedFileID,ref punSizeOnDisk,pStrBuffer1,2048,ref punTimeStamp); - pchFolder = pStrBuffer1.ToString(); - return result; -} -public override bool GetItemDownloadInfo(ulong nPublishedFileID,ref ulong punBytesDownloaded,ref ulong punBytesTotal) -{ - CheckIfUsable(); - punBytesDownloaded = 0; - punBytesTotal = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetItemDownloadInfo(m_pSteamUGC,nPublishedFileID,ref punBytesDownloaded,ref punBytesTotal); - return result; -} -public override bool DownloadItem(ulong nPublishedFileID,bool bHighPriority) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_DownloadItem(m_pSteamUGC,nPublishedFileID,bHighPriority); - return result; -} -public override bool BInitWorkshopForGameServer(uint unWorkshopDepotID,string pszFolder) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_BInitWorkshopForGameServer(m_pSteamUGC,unWorkshopDepotID,pszFolder); - return result; -} -public override void SuspendDownloads(bool bSuspend) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUGC_SuspendDownloads(m_pSteamUGC,bSuspend); -} -public override ulong StartPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StartPlaytimeTracking(m_pSteamUGC,ref pvecPublishedFileID,unNumPublishedFileIDs); - return result; -} -public override ulong StopPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StopPlaytimeTracking(m_pSteamUGC,ref pvecPublishedFileID,unNumPublishedFileIDs); - return result; -} -public override ulong StopPlaytimeTrackingForAllItems() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(m_pSteamUGC); - return result; -} -} - - -public class CSteamAppList : ISteamAppList -{ -public CSteamAppList(IntPtr SteamAppList) -{ - m_pSteamAppList = SteamAppList; -} -IntPtr m_pSteamAppList; - -public override IntPtr GetIntPtr() { return m_pSteamAppList; } - -private void CheckIfUsable() -{ - if (m_pSteamAppList == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint GetNumInstalledApps() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamAppList_GetNumInstalledApps(m_pSteamAppList); - return result; -} -public override uint GetInstalledApps(ref uint pvecAppID,uint unMaxAppIDs) -{ - CheckIfUsable(); - pvecAppID = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamAppList_GetInstalledApps(m_pSteamAppList,ref pvecAppID,unMaxAppIDs); - return result; -} -public override int GetAppName(uint nAppID,System.Text.StringBuilder pchName,int cchNameMax) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamAppList_GetAppName(m_pSteamAppList,nAppID,pchName,cchNameMax); - return result; -} -public override int GetAppInstallDir(uint nAppID,string pchDirectory,int cchNameMax) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamAppList_GetAppInstallDir(m_pSteamAppList,nAppID,pchDirectory,cchNameMax); - return result; -} -public override int GetAppBuildId(uint nAppID) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamAppList_GetAppBuildId(m_pSteamAppList,nAppID); - return result; -} -} - - -public class CSteamHTMLSurface : ISteamHTMLSurface -{ -public CSteamHTMLSurface(IntPtr SteamHTMLSurface) -{ - m_pSteamHTMLSurface = SteamHTMLSurface; -} -IntPtr m_pSteamHTMLSurface; - -public override IntPtr GetIntPtr() { return m_pSteamHTMLSurface; } - -private void CheckIfUsable() -{ - if (m_pSteamHTMLSurface == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void DestructISteamHTMLSurface() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_DestructISteamHTMLSurface(m_pSteamHTMLSurface); -} -public override bool Init() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTMLSurface_Init(m_pSteamHTMLSurface); - return result; -} -public override bool Shutdown() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTMLSurface_Shutdown(m_pSteamHTMLSurface); - return result; -} -public override ulong CreateBrowser(string pchUserAgent,string pchUserCSS) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamHTMLSurface_CreateBrowser(m_pSteamHTMLSurface,pchUserAgent,pchUserCSS); - return result; -} -public override void RemoveBrowser(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_RemoveBrowser(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void LoadURL(uint unBrowserHandle,string pchURL,string pchPostData) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_LoadURL(m_pSteamHTMLSurface,unBrowserHandle,pchURL,pchPostData); -} -public override void SetSize(uint unBrowserHandle,uint unWidth,uint unHeight) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetSize(m_pSteamHTMLSurface,unBrowserHandle,unWidth,unHeight); -} -public override void StopLoad(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_StopLoad(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void Reload(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_Reload(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void GoBack(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_GoBack(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void GoForward(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_GoForward(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void AddHeader(uint unBrowserHandle,string pchKey,string pchValue) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_AddHeader(m_pSteamHTMLSurface,unBrowserHandle,pchKey,pchValue); -} -public override void ExecuteJavascript(uint unBrowserHandle,string pchScript) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_ExecuteJavascript(m_pSteamHTMLSurface,unBrowserHandle,pchScript); -} -public override void MouseUp(uint unBrowserHandle,uint eMouseButton) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseUp(m_pSteamHTMLSurface,unBrowserHandle,eMouseButton); -} -public override void MouseDown(uint unBrowserHandle,uint eMouseButton) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseDown(m_pSteamHTMLSurface,unBrowserHandle,eMouseButton); -} -public override void MouseDoubleClick(uint unBrowserHandle,uint eMouseButton) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseDoubleClick(m_pSteamHTMLSurface,unBrowserHandle,eMouseButton); -} -public override void MouseMove(uint unBrowserHandle,int x,int y) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseMove(m_pSteamHTMLSurface,unBrowserHandle,x,y); -} -public override void MouseWheel(uint unBrowserHandle,int nDelta) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseWheel(m_pSteamHTMLSurface,unBrowserHandle,nDelta); -} -public override void KeyDown(uint unBrowserHandle,uint nNativeKeyCode,uint eHTMLKeyModifiers) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_KeyDown(m_pSteamHTMLSurface,unBrowserHandle,nNativeKeyCode,eHTMLKeyModifiers); -} -public override void KeyUp(uint unBrowserHandle,uint nNativeKeyCode,uint eHTMLKeyModifiers) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_KeyUp(m_pSteamHTMLSurface,unBrowserHandle,nNativeKeyCode,eHTMLKeyModifiers); -} -public override void KeyChar(uint unBrowserHandle,uint cUnicodeChar,uint eHTMLKeyModifiers) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_KeyChar(m_pSteamHTMLSurface,unBrowserHandle,cUnicodeChar,eHTMLKeyModifiers); -} -public override void SetHorizontalScroll(uint unBrowserHandle,uint nAbsolutePixelScroll) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetHorizontalScroll(m_pSteamHTMLSurface,unBrowserHandle,nAbsolutePixelScroll); -} -public override void SetVerticalScroll(uint unBrowserHandle,uint nAbsolutePixelScroll) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetVerticalScroll(m_pSteamHTMLSurface,unBrowserHandle,nAbsolutePixelScroll); -} -public override void SetKeyFocus(uint unBrowserHandle,bool bHasKeyFocus) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetKeyFocus(m_pSteamHTMLSurface,unBrowserHandle,bHasKeyFocus); -} -public override void ViewSource(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_ViewSource(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void CopyToClipboard(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_CopyToClipboard(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void PasteFromClipboard(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_PasteFromClipboard(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void Find(uint unBrowserHandle,string pchSearchStr,bool bCurrentlyInFind,bool bReverse) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_Find(m_pSteamHTMLSurface,unBrowserHandle,pchSearchStr,bCurrentlyInFind,bReverse); -} -public override void StopFind(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_StopFind(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void GetLinkAtPosition(uint unBrowserHandle,int x,int y) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_GetLinkAtPosition(m_pSteamHTMLSurface,unBrowserHandle,x,y); -} -public override void SetCookie(string pchHostname,string pchKey,string pchValue,string pchPath,ulong nExpires,bool bSecure,bool bHTTPOnly) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetCookie(m_pSteamHTMLSurface,pchHostname,pchKey,pchValue,pchPath,nExpires,bSecure,bHTTPOnly); -} -public override void SetPageScaleFactor(uint unBrowserHandle,float flZoom,int nPointX,int nPointY) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetPageScaleFactor(m_pSteamHTMLSurface,unBrowserHandle,flZoom,nPointX,nPointY); -} -public override void SetBackgroundMode(uint unBrowserHandle,bool bBackgroundMode) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetBackgroundMode(m_pSteamHTMLSurface,unBrowserHandle,bBackgroundMode); -} -public override void AllowStartRequest(uint unBrowserHandle,bool bAllowed) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_AllowStartRequest(m_pSteamHTMLSurface,unBrowserHandle,bAllowed); -} -public override void JSDialogResponse(uint unBrowserHandle,bool bResult) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_JSDialogResponse(m_pSteamHTMLSurface,unBrowserHandle,bResult); -} -} - - -public class CSteamInventory : ISteamInventory -{ -public CSteamInventory(IntPtr SteamInventory) -{ - m_pSteamInventory = SteamInventory; -} -IntPtr m_pSteamInventory; - -public override IntPtr GetIntPtr() { return m_pSteamInventory; } - -private void CheckIfUsable() -{ - if (m_pSteamInventory == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint GetResultStatus(int resultHandle) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultStatus(m_pSteamInventory,resultHandle); - return result; -} -public override bool GetResultItems(int resultHandle,out SteamItemDetails_t [] pOutItemsArray) -{ - CheckIfUsable(); - uint punOutItemsArraySize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultItems(m_pSteamInventory,resultHandle,null,ref punOutItemsArraySize); - pOutItemsArray= new SteamItemDetails_t[punOutItemsArraySize]; - result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultItems(m_pSteamInventory,resultHandle,pOutItemsArray,ref punOutItemsArraySize); - return result; -} -public override uint GetResultTimestamp(int resultHandle) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultTimestamp(m_pSteamInventory,resultHandle); - return result; -} -public override bool CheckResultSteamID(int resultHandle,ulong steamIDExpected) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_CheckResultSteamID(m_pSteamInventory,resultHandle,steamIDExpected); - return result; -} -public override void DestroyResult(int resultHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamInventory_DestroyResult(m_pSteamInventory,resultHandle); -} -public override bool GetAllItems(ref int pResultHandle) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetAllItems(m_pSteamInventory,ref pResultHandle); - return result; -} -public override bool GetItemsByID(ref int pResultHandle,ulong [] pInstanceIDs) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemsByID(m_pSteamInventory,ref pResultHandle,pInstanceIDs,(uint) pInstanceIDs.Length); - return result; -} -public override bool SerializeResult(int resultHandle,IntPtr pOutBuffer,ref uint punOutBufferSize) -{ - CheckIfUsable(); - punOutBufferSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_SerializeResult(m_pSteamInventory,resultHandle,pOutBuffer,ref punOutBufferSize); - return result; -} -public override bool DeserializeResult(ref int pOutResultHandle,IntPtr pBuffer,uint unBufferSize,bool bRESERVED_MUST_BE_FALSE) -{ - CheckIfUsable(); - pOutResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_DeserializeResult(m_pSteamInventory,ref pOutResultHandle,pBuffer,unBufferSize,bRESERVED_MUST_BE_FALSE); - return result; -} -public override bool GenerateItems(ref int pResultHandle,int [] pArrayItemDefs,uint [] punArrayQuantity) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GenerateItems(m_pSteamInventory,ref pResultHandle,pArrayItemDefs,punArrayQuantity,(uint) punArrayQuantity.Length); - return result; -} -public override bool GrantPromoItems(ref int pResultHandle) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GrantPromoItems(m_pSteamInventory,ref pResultHandle); - return result; -} -public override bool AddPromoItem(ref int pResultHandle,int itemDef) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_AddPromoItem(m_pSteamInventory,ref pResultHandle,itemDef); - return result; -} -public override bool AddPromoItems(ref int pResultHandle,int [] pArrayItemDefs) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_AddPromoItems(m_pSteamInventory,ref pResultHandle,pArrayItemDefs,(uint) pArrayItemDefs.Length); - return result; -} -public override bool ConsumeItem(ref int pResultHandle,ulong itemConsume,uint unQuantity) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_ConsumeItem(m_pSteamInventory,ref pResultHandle,itemConsume,unQuantity); - return result; -} -public override bool ExchangeItems(ref int pResultHandle,int [] pArrayGenerate,uint [] punArrayGenerateQuantity,ulong [] pArrayDestroy,uint [] punArrayDestroyQuantity) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_ExchangeItems(m_pSteamInventory,ref pResultHandle,pArrayGenerate,punArrayGenerateQuantity,(uint) punArrayGenerateQuantity.Length,pArrayDestroy,punArrayDestroyQuantity,(uint) punArrayDestroyQuantity.Length); - return result; -} -public override bool TransferItemQuantity(ref int pResultHandle,ulong itemIdSource,uint unQuantity,ulong itemIdDest) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_TransferItemQuantity(m_pSteamInventory,ref pResultHandle,itemIdSource,unQuantity,itemIdDest); - return result; -} -public override void SendItemDropHeartbeat() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamInventory_SendItemDropHeartbeat(m_pSteamInventory); -} -public override bool TriggerItemDrop(ref int pResultHandle,int dropListDefinition) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_TriggerItemDrop(m_pSteamInventory,ref pResultHandle,dropListDefinition); - return result; -} -public override bool TradeItems(ref int pResultHandle,ulong steamIDTradePartner,ulong [] pArrayGive,uint [] pArrayGiveQuantity,ulong [] pArrayGet,uint [] pArrayGetQuantity) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_TradeItems(m_pSteamInventory,ref pResultHandle,steamIDTradePartner,pArrayGive,pArrayGiveQuantity,(uint) pArrayGiveQuantity.Length,pArrayGet,pArrayGetQuantity,(uint) pArrayGetQuantity.Length); - return result; -} -public override bool LoadItemDefinitions() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_LoadItemDefinitions(m_pSteamInventory); - return result; -} -public override bool GetItemDefinitionIDs(out int [] pItemDefIDs) -{ - CheckIfUsable(); - uint punItemDefIDsArraySize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemDefinitionIDs(m_pSteamInventory,null,ref punItemDefIDsArraySize); - pItemDefIDs= new int[punItemDefIDsArraySize]; - result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemDefinitionIDs(m_pSteamInventory,pItemDefIDs,ref punItemDefIDsArraySize); - return result; -} -public override bool GetItemDefinitionProperty(int iDefinition,string pchPropertyName,out string pchValueBuffer) -{ - CheckIfUsable(); - uint punValueBufferSizeOut = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemDefinitionProperty(m_pSteamInventory,iDefinition,pchPropertyName,null,ref punValueBufferSizeOut); - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder((int)punValueBufferSizeOut); - result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemDefinitionProperty(m_pSteamInventory,iDefinition,pchPropertyName,pStrBuffer1,ref punValueBufferSizeOut); - pchValueBuffer = pStrBuffer1.ToString(); - return result; -} -} - - -public class CSteamVideo : ISteamVideo -{ -public CSteamVideo(IntPtr SteamVideo) -{ - m_pSteamVideo = SteamVideo; -} -IntPtr m_pSteamVideo; - -public override IntPtr GetIntPtr() { return m_pSteamVideo; } - -private void CheckIfUsable() -{ - if (m_pSteamVideo == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void GetVideoURL(uint unVideoAppID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamVideo_GetVideoURL(m_pSteamVideo,unVideoAppID); -} -public override bool IsBroadcasting(ref int pnNumViewers) -{ - CheckIfUsable(); - pnNumViewers = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamVideo_IsBroadcasting(m_pSteamVideo,ref pnNumViewers); - return result; -} -} - - -public class CSteamGameServer : ISteamGameServer -{ -public CSteamGameServer(IntPtr SteamGameServer) -{ - m_pSteamGameServer = SteamGameServer; -} -IntPtr m_pSteamGameServer; - -public override IntPtr GetIntPtr() { return m_pSteamGameServer; } - -private void CheckIfUsable() -{ - if (m_pSteamGameServer == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool InitGameServer(uint unIP,char usGamePort,char usQueryPort,uint unFlags,uint nGameAppId,string pchVersionString) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_InitGameServer(m_pSteamGameServer,unIP,usGamePort,usQueryPort,unFlags,nGameAppId,pchVersionString); - return result; -} -public override void SetProduct(string pszProduct) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetProduct(m_pSteamGameServer,pszProduct); -} -public override void SetGameDescription(string pszGameDescription) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetGameDescription(m_pSteamGameServer,pszGameDescription); -} -public override void SetModDir(string pszModDir) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetModDir(m_pSteamGameServer,pszModDir); -} -public override void SetDedicatedServer(bool bDedicated) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetDedicatedServer(m_pSteamGameServer,bDedicated); -} -public override void LogOn(string pszToken) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_LogOn(m_pSteamGameServer,pszToken); -} -public override void LogOnAnonymous() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_LogOnAnonymous(m_pSteamGameServer); -} -public override void LogOff() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_LogOff(m_pSteamGameServer); -} -public override bool BLoggedOn() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_BLoggedOn(m_pSteamGameServer); - return result; -} -public override bool BSecure() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_BSecure(m_pSteamGameServer); - return result; -} -public override ulong GetSteamID() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetSteamID(m_pSteamGameServer); - return result; -} -public override bool WasRestartRequested() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_WasRestartRequested(m_pSteamGameServer); - return result; -} -public override void SetMaxPlayerCount(int cPlayersMax) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetMaxPlayerCount(m_pSteamGameServer,cPlayersMax); -} -public override void SetBotPlayerCount(int cBotplayers) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetBotPlayerCount(m_pSteamGameServer,cBotplayers); -} -public override void SetServerName(string pszServerName) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetServerName(m_pSteamGameServer,pszServerName); -} -public override void SetMapName(string pszMapName) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetMapName(m_pSteamGameServer,pszMapName); -} -public override void SetPasswordProtected(bool bPasswordProtected) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetPasswordProtected(m_pSteamGameServer,bPasswordProtected); -} -public override void SetSpectatorPort(char unSpectatorPort) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetSpectatorPort(m_pSteamGameServer,unSpectatorPort); -} -public override void SetSpectatorServerName(string pszSpectatorServerName) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetSpectatorServerName(m_pSteamGameServer,pszSpectatorServerName); -} -public override void ClearAllKeyValues() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_ClearAllKeyValues(m_pSteamGameServer); -} -public override void SetKeyValue(string pKey,string pValue) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetKeyValue(m_pSteamGameServer,pKey,pValue); -} -public override void SetGameTags(string pchGameTags) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetGameTags(m_pSteamGameServer,pchGameTags); -} -public override void SetGameData(string pchGameData) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetGameData(m_pSteamGameServer,pchGameData); -} -public override void SetRegion(string pszRegion) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetRegion(m_pSteamGameServer,pszRegion); -} -public override bool SendUserConnectAndAuthenticate(uint unIPClient,IntPtr pvAuthBlob,uint cubAuthBlobSize,ref CSteamID pSteamIDUser) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate(m_pSteamGameServer,unIPClient,pvAuthBlob,cubAuthBlobSize,ref pSteamIDUser); - return result; -} -public override ulong CreateUnauthenticatedUserConnection() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection(m_pSteamGameServer); - return result; -} -public override void SendUserDisconnect(ulong steamIDUser) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SendUserDisconnect(m_pSteamGameServer,steamIDUser); -} -public override bool BUpdateUserData(ulong steamIDUser,string pchPlayerName,uint uScore) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_BUpdateUserData(m_pSteamGameServer,steamIDUser,pchPlayerName,uScore); - return result; -} -public override uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket) -{ - CheckIfUsable(); - pcbTicket = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetAuthSessionTicket(m_pSteamGameServer,pTicket,cbMaxTicket,ref pcbTicket); - return result; -} -public override uint BeginAuthSession(IntPtr pAuthTicket,int cbAuthTicket,ulong steamID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamGameServer_BeginAuthSession(m_pSteamGameServer,pAuthTicket,cbAuthTicket,steamID); - return result; -} -public override void EndAuthSession(ulong steamID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_EndAuthSession(m_pSteamGameServer,steamID); -} -public override void CancelAuthTicket(uint hAuthTicket) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_CancelAuthTicket(m_pSteamGameServer,hAuthTicket); -} -public override uint UserHasLicenseForApp(ulong steamID,uint appID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamGameServer_UserHasLicenseForApp(m_pSteamGameServer,steamID,appID); - return result; -} -public override bool RequestUserGroupStatus(ulong steamIDUser,ulong steamIDGroup) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_RequestUserGroupStatus(m_pSteamGameServer,steamIDUser,steamIDGroup); - return result; -} -public override void GetGameplayStats() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_GetGameplayStats(m_pSteamGameServer); -} -public override ulong GetServerReputation() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetServerReputation(m_pSteamGameServer); - return result; -} -public override uint GetPublicIP() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetPublicIP(m_pSteamGameServer); - return result; -} -public override bool HandleIncomingPacket(IntPtr pData,int cbData,uint srcIP,char srcPort) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_HandleIncomingPacket(m_pSteamGameServer,pData,cbData,srcIP,srcPort); - return result; -} -public override int GetNextOutgoingPacket(IntPtr pOut,int cbMaxOut,ref uint pNetAdr,ref char pPort) -{ - CheckIfUsable(); - pNetAdr = 0; - pPort = (char) 0; - int result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetNextOutgoingPacket(m_pSteamGameServer,pOut,cbMaxOut,ref pNetAdr,ref pPort); - return result; -} -public override void EnableHeartbeats(bool bActive) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_EnableHeartbeats(m_pSteamGameServer,bActive); -} -public override void SetHeartbeatInterval(int iHeartbeatInterval) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetHeartbeatInterval(m_pSteamGameServer,iHeartbeatInterval); -} -public override void ForceHeartbeat() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_ForceHeartbeat(m_pSteamGameServer); -} -public override ulong AssociateWithClan(ulong steamIDClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_AssociateWithClan(m_pSteamGameServer,steamIDClan); - return result; -} -public override ulong ComputeNewPlayerCompatibility(ulong steamIDNewPlayer) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility(m_pSteamGameServer,steamIDNewPlayer); - return result; -} -} - - -public class CSteamGameServerStats : ISteamGameServerStats -{ -public CSteamGameServerStats(IntPtr SteamGameServerStats) -{ - m_pSteamGameServerStats = SteamGameServerStats; -} -IntPtr m_pSteamGameServerStats; - -public override IntPtr GetIntPtr() { return m_pSteamGameServerStats; } - -private void CheckIfUsable() -{ - if (m_pSteamGameServerStats == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override ulong RequestUserStats(ulong steamIDUser) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_RequestUserStats(m_pSteamGameServerStats,steamIDUser); - return result; -} -public override bool GetUserStat(ulong steamIDUser,string pchName,ref int pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_GetUserStat(m_pSteamGameServerStats,steamIDUser,pchName,ref pData); - return result; -} -public override bool GetUserStat0(ulong steamIDUser,string pchName,ref float pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_GetUserStat0(m_pSteamGameServerStats,steamIDUser,pchName,ref pData); - return result; -} -public override bool GetUserAchievement(ulong steamIDUser,string pchName,ref bool pbAchieved) -{ - CheckIfUsable(); - pbAchieved = false; - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_GetUserAchievement(m_pSteamGameServerStats,steamIDUser,pchName,ref pbAchieved); - return result; -} -public override bool SetUserStat(ulong steamIDUser,string pchName,int nData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_SetUserStat(m_pSteamGameServerStats,steamIDUser,pchName,nData); - return result; -} -public override bool SetUserStat0(ulong steamIDUser,string pchName,float fData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_SetUserStat0(m_pSteamGameServerStats,steamIDUser,pchName,fData); - return result; -} -public override bool UpdateUserAvgRateStat(ulong steamIDUser,string pchName,float flCountThisSession,double dSessionLength) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat(m_pSteamGameServerStats,steamIDUser,pchName,flCountThisSession,dSessionLength); - return result; -} -public override bool SetUserAchievement(ulong steamIDUser,string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_SetUserAchievement(m_pSteamGameServerStats,steamIDUser,pchName); - return result; -} -public override bool ClearUserAchievement(ulong steamIDUser,string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_ClearUserAchievement(m_pSteamGameServerStats,steamIDUser,pchName); - return result; -} -public override ulong StoreUserStats(ulong steamIDUser) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_StoreUserStats(m_pSteamGameServerStats,steamIDUser); - return result; -} -} - - -public class CUserStatsReceived_t_Callback -{ - public CUserStatsReceived_t_Callback() { } - ~CUserStatsReceived_t_Callback() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_RemoveCallback(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(Valve.Interop.NativeEntrypoints.SteamAPI_UserStatsReceived_t_Callback func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_RemoveCallback(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_SetCallback(func); - } -} -public class CRemoteStorageFileReadAsyncComplete_t_CallResult -{ - public CRemoteStorageFileReadAsyncComplete_t_CallResult() { } - ~CRemoteStorageFileReadAsyncComplete_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileReadAsyncComplete_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageFileReadAsyncComplete_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileReadAsyncComplete_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageFileReadAsyncComplete_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult -{ - public CRemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult() { } - ~CRemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedItemVoteDetailsResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedItemVoteDetailsResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedItemVoteDetailsResult_t_SetCallResult(hAPICall, func); - } -} -public class CFileDetailsResult_t_CallResult -{ - public CFileDetailsResult_t_CallResult() { } - ~CFileDetailsResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFileDetailsResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_FileDetailsResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFileDetailsResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CFileDetailsResult_t_SetCallResult(hAPICall, func); - } -} -public class CGSStatsStored_t_CallResult -{ - public CGSStatsStored_t_CallResult() { } - ~CGSStatsStored_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSStatsStored_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GSStatsStored_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSStatsStored_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGSStatsStored_t_SetCallResult(hAPICall, func); - } -} -public class CHTML_BrowserReady_t_CallResult -{ - public CHTML_BrowserReady_t_CallResult() { } - ~CHTML_BrowserReady_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CHTML_BrowserReady_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_HTML_BrowserReady_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CHTML_BrowserReady_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CHTML_BrowserReady_t_SetCallResult(hAPICall, func); - } -} -public class CFriendsGetFollowerCount_t_CallResult -{ - public CFriendsGetFollowerCount_t_CallResult() { } - ~CFriendsGetFollowerCount_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsGetFollowerCount_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_FriendsGetFollowerCount_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsGetFollowerCount_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CFriendsGetFollowerCount_t_SetCallResult(hAPICall, func); - } -} -public class CFriendsIsFollowing_t_CallResult -{ - public CFriendsIsFollowing_t_CallResult() { } - ~CFriendsIsFollowing_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsIsFollowing_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_FriendsIsFollowing_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsIsFollowing_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CFriendsIsFollowing_t_SetCallResult(hAPICall, func); - } -} -public class CLobbyMatchList_t_CallResult -{ - public CLobbyMatchList_t_CallResult() { } - ~CLobbyMatchList_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyMatchList_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LobbyMatchList_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyMatchList_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLobbyMatchList_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageUpdatePublishedFileResult_t_CallResult -{ - public CRemoteStorageUpdatePublishedFileResult_t_CallResult() { } - ~CRemoteStorageUpdatePublishedFileResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUpdatePublishedFileResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageUpdatePublishedFileResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUpdatePublishedFileResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageUpdatePublishedFileResult_t_SetCallResult(hAPICall, func); - } -} -public class CStoreAuthURLResponse_t_CallResult -{ - public CStoreAuthURLResponse_t_CallResult() { } - ~CStoreAuthURLResponse_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CStoreAuthURLResponse_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_StoreAuthURLResponse_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CStoreAuthURLResponse_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CStoreAuthURLResponse_t_SetCallResult(hAPICall, func); - } -} -public class CLobbyCreated_t_CallResult -{ - public CLobbyCreated_t_CallResult() { } - ~CLobbyCreated_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyCreated_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LobbyCreated_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyCreated_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLobbyCreated_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageFileWriteAsyncComplete_t_CallResult -{ - public CRemoteStorageFileWriteAsyncComplete_t_CallResult() { } - ~CRemoteStorageFileWriteAsyncComplete_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileWriteAsyncComplete_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageFileWriteAsyncComplete_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileWriteAsyncComplete_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageFileWriteAsyncComplete_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageDeletePublishedFileResult_t_CallResult -{ - public CRemoteStorageDeletePublishedFileResult_t_CallResult() { } - ~CRemoteStorageDeletePublishedFileResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageDeletePublishedFileResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageDeletePublishedFileResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageDeletePublishedFileResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageDeletePublishedFileResult_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageGetPublishedFileDetailsResult_t_CallResult -{ - public CRemoteStorageGetPublishedFileDetailsResult_t_CallResult() { } - ~CRemoteStorageGetPublishedFileDetailsResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageGetPublishedFileDetailsResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedFileDetailsResult_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageDownloadUGCResult_t_CallResult -{ - public CRemoteStorageDownloadUGCResult_t_CallResult() { } - ~CRemoteStorageDownloadUGCResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageDownloadUGCResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageDownloadUGCResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageDownloadUGCResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageDownloadUGCResult_t_SetCallResult(hAPICall, func); - } -} -public class CSteamUGCQueryCompleted_t_CallResult -{ - public CSteamUGCQueryCompleted_t_CallResult() { } - ~CSteamUGCQueryCompleted_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSteamUGCQueryCompleted_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_SteamUGCQueryCompleted_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSteamUGCQueryCompleted_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CSteamUGCQueryCompleted_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageFileShareResult_t_CallResult -{ - public CRemoteStorageFileShareResult_t_CallResult() { } - ~CRemoteStorageFileShareResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileShareResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageFileShareResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileShareResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageFileShareResult_t_SetCallResult(hAPICall, func); - } -} -public class CLobbyEnter_t_CallResult -{ - public CLobbyEnter_t_CallResult() { } - ~CLobbyEnter_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyEnter_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LobbyEnter_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyEnter_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLobbyEnter_t_SetCallResult(hAPICall, func); - } -} -public class CSubmitItemUpdateResult_t_CallResult -{ - public CSubmitItemUpdateResult_t_CallResult() { } - ~CSubmitItemUpdateResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSubmitItemUpdateResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_SubmitItemUpdateResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSubmitItemUpdateResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CSubmitItemUpdateResult_t_SetCallResult(hAPICall, func); - } -} -public class CNumberOfCurrentPlayers_t_CallResult -{ - public CNumberOfCurrentPlayers_t_CallResult() { } - ~CNumberOfCurrentPlayers_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CNumberOfCurrentPlayers_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_NumberOfCurrentPlayers_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CNumberOfCurrentPlayers_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CNumberOfCurrentPlayers_t_SetCallResult(hAPICall, func); - } -} -public class CGSStatsReceived_t_CallResult -{ - public CGSStatsReceived_t_CallResult() { } - ~CGSStatsReceived_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSStatsReceived_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GSStatsReceived_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSStatsReceived_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGSStatsReceived_t_SetCallResult(hAPICall, func); - } -} -public class CLeaderboardScoresDownloaded_t_CallResult -{ - public CLeaderboardScoresDownloaded_t_CallResult() { } - ~CLeaderboardScoresDownloaded_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardScoresDownloaded_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LeaderboardScoresDownloaded_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardScoresDownloaded_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLeaderboardScoresDownloaded_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult -{ - public CRemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult() { } - ~CRemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUpdateUserPublishedItemVoteResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUpdateUserPublishedItemVoteResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageUpdateUserPublishedItemVoteResult_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult -{ - public CRemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult() { } - ~CRemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserSubscribedFilesResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserSubscribedFilesResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserSubscribedFilesResult_t_SetCallResult(hAPICall, func); - } -} -public class CCreateItemResult_t_CallResult -{ - public CCreateItemResult_t_CallResult() { } - ~CCreateItemResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CCreateItemResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_CreateItemResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CCreateItemResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CCreateItemResult_t_SetCallResult(hAPICall, func); - } -} -public class CSetUserItemVoteResult_t_CallResult -{ - public CSetUserItemVoteResult_t_CallResult() { } - ~CSetUserItemVoteResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSetUserItemVoteResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_SetUserItemVoteResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSetUserItemVoteResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CSetUserItemVoteResult_t_SetCallResult(hAPICall, func); - } -} -public class CComputeNewPlayerCompatibilityResult_t_CallResult -{ - public CComputeNewPlayerCompatibilityResult_t_CallResult() { } - ~CComputeNewPlayerCompatibilityResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CComputeNewPlayerCompatibilityResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_ComputeNewPlayerCompatibilityResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CComputeNewPlayerCompatibilityResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CComputeNewPlayerCompatibilityResult_t_SetCallResult(hAPICall, func); - } -} -public class CLeaderboardScoreUploaded_t_CallResult -{ - public CLeaderboardScoreUploaded_t_CallResult() { } - ~CLeaderboardScoreUploaded_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardScoreUploaded_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LeaderboardScoreUploaded_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardScoreUploaded_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLeaderboardScoreUploaded_t_SetCallResult(hAPICall, func); - } -} -public class CGlobalAchievementPercentagesReady_t_CallResult -{ - public CGlobalAchievementPercentagesReady_t_CallResult() { } - ~CGlobalAchievementPercentagesReady_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGlobalAchievementPercentagesReady_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GlobalAchievementPercentagesReady_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGlobalAchievementPercentagesReady_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGlobalAchievementPercentagesReady_t_SetCallResult(hAPICall, func); - } -} -public class CGlobalStatsReceived_t_CallResult -{ - public CGlobalStatsReceived_t_CallResult() { } - ~CGlobalStatsReceived_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGlobalStatsReceived_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GlobalStatsReceived_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGlobalStatsReceived_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGlobalStatsReceived_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult -{ - public CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult() { } - ~CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_SetCallResult(hAPICall, func); - } -} -public class CClanOfficerListResponse_t_CallResult -{ - public CClanOfficerListResponse_t_CallResult() { } - ~CClanOfficerListResponse_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CClanOfficerListResponse_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_ClanOfficerListResponse_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CClanOfficerListResponse_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CClanOfficerListResponse_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStoragePublishFileProgress_t_CallResult -{ - public CRemoteStoragePublishFileProgress_t_CallResult() { } - ~CRemoteStoragePublishFileProgress_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStoragePublishFileProgress_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStoragePublishFileProgress_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStoragePublishFileProgress_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStoragePublishFileProgress_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageEnumerateWorkshopFilesResult_t_CallResult -{ - public CRemoteStorageEnumerateWorkshopFilesResult_t_CallResult() { } - ~CRemoteStorageEnumerateWorkshopFilesResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult(hAPICall, func); - } -} -public class CGSReputation_t_CallResult -{ - public CGSReputation_t_CallResult() { } - ~CGSReputation_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSReputation_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GSReputation_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSReputation_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGSReputation_t_SetCallResult(hAPICall, func); - } -} -public class CUserFavoriteItemsListChanged_t_CallResult -{ - public CUserFavoriteItemsListChanged_t_CallResult() { } - ~CUserFavoriteItemsListChanged_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserFavoriteItemsListChanged_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_UserFavoriteItemsListChanged_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserFavoriteItemsListChanged_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CUserFavoriteItemsListChanged_t_SetCallResult(hAPICall, func); - } -} -public class CEncryptedAppTicketResponse_t_CallResult -{ - public CEncryptedAppTicketResponse_t_CallResult() { } - ~CEncryptedAppTicketResponse_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CEncryptedAppTicketResponse_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_EncryptedAppTicketResponse_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CEncryptedAppTicketResponse_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CEncryptedAppTicketResponse_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageSetUserPublishedFileActionResult_t_CallResult -{ - public CRemoteStorageSetUserPublishedFileActionResult_t_CallResult() { } - ~CRemoteStorageSetUserPublishedFileActionResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageSetUserPublishedFileActionResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageSetUserPublishedFileActionResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageSetUserPublishedFileActionResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageSetUserPublishedFileActionResult_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageEnumerateUserPublishedFilesResult_t_CallResult -{ - public CRemoteStorageEnumerateUserPublishedFilesResult_t_CallResult() { } - ~CRemoteStorageEnumerateUserPublishedFilesResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserPublishedFilesResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageEnumerateUserPublishedFilesResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserPublishedFilesResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserPublishedFilesResult_t_SetCallResult(hAPICall, func); - } -} -public class CFriendsEnumerateFollowingList_t_CallResult -{ - public CFriendsEnumerateFollowingList_t_CallResult() { } - ~CFriendsEnumerateFollowingList_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsEnumerateFollowingList_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_FriendsEnumerateFollowingList_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsEnumerateFollowingList_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CFriendsEnumerateFollowingList_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageSubscribePublishedFileResult_t_CallResult -{ - public CRemoteStorageSubscribePublishedFileResult_t_CallResult() { } - ~CRemoteStorageSubscribePublishedFileResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageSubscribePublishedFileResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageSubscribePublishedFileResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageSubscribePublishedFileResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageSubscribePublishedFileResult_t_SetCallResult(hAPICall, func); - } -} -public class CGetUserItemVoteResult_t_CallResult -{ - public CGetUserItemVoteResult_t_CallResult() { } - ~CGetUserItemVoteResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGetUserItemVoteResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GetUserItemVoteResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGetUserItemVoteResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGetUserItemVoteResult_t_SetCallResult(hAPICall, func); - } -} -public class CAssociateWithClanResult_t_CallResult -{ - public CAssociateWithClanResult_t_CallResult() { } - ~CAssociateWithClanResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CAssociateWithClanResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_AssociateWithClanResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CAssociateWithClanResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CAssociateWithClanResult_t_SetCallResult(hAPICall, func); - } -} -public class CLeaderboardUGCSet_t_CallResult -{ - public CLeaderboardUGCSet_t_CallResult() { } - ~CLeaderboardUGCSet_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardUGCSet_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LeaderboardUGCSet_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardUGCSet_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLeaderboardUGCSet_t_SetCallResult(hAPICall, func); - } -} -public class CCheckFileSignature_t_CallResult -{ - public CCheckFileSignature_t_CallResult() { } - ~CCheckFileSignature_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CCheckFileSignature_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_CheckFileSignature_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CCheckFileSignature_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CCheckFileSignature_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageUnsubscribePublishedFileResult_t_CallResult -{ - public CRemoteStorageUnsubscribePublishedFileResult_t_CallResult() { } - ~CRemoteStorageUnsubscribePublishedFileResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUnsubscribePublishedFileResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageUnsubscribePublishedFileResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUnsubscribePublishedFileResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageUnsubscribePublishedFileResult_t_SetCallResult(hAPICall, func); - } -} -public class CSetPersonaNameResponse_t_CallResult -{ - public CSetPersonaNameResponse_t_CallResult() { } - ~CSetPersonaNameResponse_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSetPersonaNameResponse_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_SetPersonaNameResponse_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSetPersonaNameResponse_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CSetPersonaNameResponse_t_SetCallResult(hAPICall, func); - } -} -public class CUserStatsReceived_t_CallResult -{ - public CUserStatsReceived_t_CallResult() { } - ~CUserStatsReceived_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_UserStatsReceived_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_SetCallResult(hAPICall, func); - } -} -public class CJoinClanChatRoomCompletionResult_t_CallResult -{ - public CJoinClanChatRoomCompletionResult_t_CallResult() { } - ~CJoinClanChatRoomCompletionResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CJoinClanChatRoomCompletionResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_JoinClanChatRoomCompletionResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CJoinClanChatRoomCompletionResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CJoinClanChatRoomCompletionResult_t_SetCallResult(hAPICall, func); - } -} -public class CLeaderboardFindResult_t_CallResult -{ - public CLeaderboardFindResult_t_CallResult() { } - ~CLeaderboardFindResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardFindResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LeaderboardFindResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardFindResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLeaderboardFindResult_t_SetCallResult(hAPICall, func); - } -} -public class SteamAPIInterop -{ -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_RestartAppIfNecessary")] -internal static extern void SteamAPI_RestartAppIfNecessary(uint unOwnAppID ); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_Init")] -internal static extern void SteamAPI_Init(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_RunCallbacks")] -internal static extern void SteamAPI_RunCallbacks(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_RegisterCallback")] -internal static extern void SteamAPI_RegisterCallback(IntPtr pCallback, int iCallback); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_UnregisterCallback")] -internal static extern void SteamAPI_UnregisterCallback(IntPtr pCallback); -[DllImportAttribute("Steam_api", EntryPoint = "SteamClient")] -internal static extern IntPtr SteamClient(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUser")] -internal static extern IntPtr SteamUser(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamFriends")] -internal static extern IntPtr SteamFriends(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUtils")] -internal static extern IntPtr SteamUtils(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmaking")] -internal static extern IntPtr SteamMatchmaking(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingServerListResponse")] -internal static extern IntPtr SteamMatchmakingServerListResponse(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingPingResponse")] -internal static extern IntPtr SteamMatchmakingPingResponse(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingPlayersResponse")] -internal static extern IntPtr SteamMatchmakingPlayersResponse(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingRulesResponse")] -internal static extern IntPtr SteamMatchmakingRulesResponse(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingServers")] -internal static extern IntPtr SteamMatchmakingServers(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamRemoteStorage")] -internal static extern IntPtr SteamRemoteStorage(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUserStats")] -internal static extern IntPtr SteamUserStats(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamApps")] -internal static extern IntPtr SteamApps(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamNetworking")] -internal static extern IntPtr SteamNetworking(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamScreenshots")] -internal static extern IntPtr SteamScreenshots(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMusic")] -internal static extern IntPtr SteamMusic(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMusicRemote")] -internal static extern IntPtr SteamMusicRemote(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamHTTP")] -internal static extern IntPtr SteamHTTP(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUnifiedMessages")] -internal static extern IntPtr SteamUnifiedMessages(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamController")] -internal static extern IntPtr SteamController(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUGC")] -internal static extern IntPtr SteamUGC(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAppList")] -internal static extern IntPtr SteamAppList(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamHTMLSurface")] -internal static extern IntPtr SteamHTMLSurface(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamInventory")] -internal static extern IntPtr SteamInventory(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamVideo")] -internal static extern IntPtr SteamVideo(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamGameServer")] -internal static extern IntPtr SteamGameServer(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamGameServerStats")] -internal static extern IntPtr SteamGameServerStats(); -} - - -public enum EUniverse -{ - k_EUniverseInvalid = 0, - k_EUniversePublic = 1, - k_EUniverseBeta = 2, - k_EUniverseInternal = 3, - k_EUniverseDev = 4, - k_EUniverseMax = 5, -} -public enum EResult -{ - k_EResultOK = 1, - k_EResultFail = 2, - k_EResultNoConnection = 3, - k_EResultInvalidPassword = 5, - k_EResultLoggedInElsewhere = 6, - k_EResultInvalidProtocolVer = 7, - k_EResultInvalidParam = 8, - k_EResultFileNotFound = 9, - k_EResultBusy = 10, - k_EResultInvalidState = 11, - k_EResultInvalidName = 12, - k_EResultInvalidEmail = 13, - k_EResultDuplicateName = 14, - k_EResultAccessDenied = 15, - k_EResultTimeout = 16, - k_EResultBanned = 17, - k_EResultAccountNotFound = 18, - k_EResultInvalidSteamID = 19, - k_EResultServiceUnavailable = 20, - k_EResultNotLoggedOn = 21, - k_EResultPending = 22, - k_EResultEncryptionFailure = 23, - k_EResultInsufficientPrivilege = 24, - k_EResultLimitExceeded = 25, - k_EResultRevoked = 26, - k_EResultExpired = 27, - k_EResultAlreadyRedeemed = 28, - k_EResultDuplicateRequest = 29, - k_EResultAlreadyOwned = 30, - k_EResultIPNotFound = 31, - k_EResultPersistFailed = 32, - k_EResultLockingFailed = 33, - k_EResultLogonSessionReplaced = 34, - k_EResultConnectFailed = 35, - k_EResultHandshakeFailed = 36, - k_EResultIOFailure = 37, - k_EResultRemoteDisconnect = 38, - k_EResultShoppingCartNotFound = 39, - k_EResultBlocked = 40, - k_EResultIgnored = 41, - k_EResultNoMatch = 42, - k_EResultAccountDisabled = 43, - k_EResultServiceReadOnly = 44, - k_EResultAccountNotFeatured = 45, - k_EResultAdministratorOK = 46, - k_EResultContentVersion = 47, - k_EResultTryAnotherCM = 48, - k_EResultPasswordRequiredToKickSession = 49, - k_EResultAlreadyLoggedInElsewhere = 50, - k_EResultSuspended = 51, - k_EResultCancelled = 52, - k_EResultDataCorruption = 53, - k_EResultDiskFull = 54, - k_EResultRemoteCallFailed = 55, - k_EResultPasswordUnset = 56, - k_EResultExternalAccountUnlinked = 57, - k_EResultPSNTicketInvalid = 58, - k_EResultExternalAccountAlreadyLinked = 59, - k_EResultRemoteFileConflict = 60, - k_EResultIllegalPassword = 61, - k_EResultSameAsPreviousValue = 62, - k_EResultAccountLogonDenied = 63, - k_EResultCannotUseOldPassword = 64, - k_EResultInvalidLoginAuthCode = 65, - k_EResultAccountLogonDeniedNoMail = 66, - k_EResultHardwareNotCapableOfIPT = 67, - k_EResultIPTInitError = 68, - k_EResultParentalControlRestricted = 69, - k_EResultFacebookQueryError = 70, - k_EResultExpiredLoginAuthCode = 71, - k_EResultIPLoginRestrictionFailed = 72, - k_EResultAccountLockedDown = 73, - k_EResultAccountLogonDeniedVerifiedEmailRequired = 74, - k_EResultNoMatchingURL = 75, - k_EResultBadResponse = 76, - k_EResultRequirePasswordReEntry = 77, - k_EResultValueOutOfRange = 78, - k_EResultUnexpectedError = 79, - k_EResultDisabled = 80, - k_EResultInvalidCEGSubmission = 81, - k_EResultRestrictedDevice = 82, - k_EResultRegionLocked = 83, - k_EResultRateLimitExceeded = 84, - k_EResultAccountLoginDeniedNeedTwoFactor = 85, - k_EResultItemDeleted = 86, - k_EResultAccountLoginDeniedThrottle = 87, - k_EResultTwoFactorCodeMismatch = 88, - k_EResultTwoFactorActivationCodeMismatch = 89, - k_EResultAccountAssociatedToMultiplePartners = 90, - k_EResultNotModified = 91, - k_EResultNoMobileDevice = 92, - k_EResultTimeNotSynced = 93, - k_EResultSmsCodeFailed = 94, - k_EResultAccountLimitExceeded = 95, - k_EResultAccountActivityLimitExceeded = 96, - k_EResultPhoneActivityLimitExceeded = 97, - k_EResultRefundToWallet = 98, - k_EResultEmailSendFailure = 99, - k_EResultNotSettled = 100, - k_EResultNeedCaptcha = 101, - k_EResultGSLTDenied = 102, - k_EResultGSOwnerDenied = 103, - k_EResultInvalidItemType = 104, - k_EResultIPBanned = 105, - k_EResultGSLTExpired = 106, -} -public enum EVoiceResult -{ - k_EVoiceResultOK = 0, - k_EVoiceResultNotInitialized = 1, - k_EVoiceResultNotRecording = 2, - k_EVoiceResultNoData = 3, - k_EVoiceResultBufferTooSmall = 4, - k_EVoiceResultDataCorrupted = 5, - k_EVoiceResultRestricted = 6, - k_EVoiceResultUnsupportedCodec = 7, - k_EVoiceResultReceiverOutOfDate = 8, - k_EVoiceResultReceiverDidNotAnswer = 9, -} -public enum EDenyReason -{ - k_EDenyInvalid = 0, - k_EDenyInvalidVersion = 1, - k_EDenyGeneric = 2, - k_EDenyNotLoggedOn = 3, - k_EDenyNoLicense = 4, - k_EDenyCheater = 5, - k_EDenyLoggedInElseWhere = 6, - k_EDenyUnknownText = 7, - k_EDenyIncompatibleAnticheat = 8, - k_EDenyMemoryCorruption = 9, - k_EDenyIncompatibleSoftware = 10, - k_EDenySteamConnectionLost = 11, - k_EDenySteamConnectionError = 12, - k_EDenySteamResponseTimedOut = 13, - k_EDenySteamValidationStalled = 14, - k_EDenySteamOwnerLeftGuestUser = 15, -} -public enum EBeginAuthSessionResult -{ - k_EBeginAuthSessionResultOK = 0, - k_EBeginAuthSessionResultInvalidTicket = 1, - k_EBeginAuthSessionResultDuplicateRequest = 2, - k_EBeginAuthSessionResultInvalidVersion = 3, - k_EBeginAuthSessionResultGameMismatch = 4, - k_EBeginAuthSessionResultExpiredTicket = 5, -} -public enum EAuthSessionResponse -{ - k_EAuthSessionResponseOK = 0, - k_EAuthSessionResponseUserNotConnectedToSteam = 1, - k_EAuthSessionResponseNoLicenseOrExpired = 2, - k_EAuthSessionResponseVACBanned = 3, - k_EAuthSessionResponseLoggedInElseWhere = 4, - k_EAuthSessionResponseVACCheckTimedOut = 5, - k_EAuthSessionResponseAuthTicketCanceled = 6, - k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed = 7, - k_EAuthSessionResponseAuthTicketInvalid = 8, - k_EAuthSessionResponsePublisherIssuedBan = 9, -} -public enum EUserHasLicenseForAppResult -{ - k_EUserHasLicenseResultHasLicense = 0, - k_EUserHasLicenseResultDoesNotHaveLicense = 1, - k_EUserHasLicenseResultNoAuth = 2, -} -public enum EAccountType -{ - k_EAccountTypeInvalid = 0, - k_EAccountTypeIndividual = 1, - k_EAccountTypeMultiseat = 2, - k_EAccountTypeGameServer = 3, - k_EAccountTypeAnonGameServer = 4, - k_EAccountTypePending = 5, - k_EAccountTypeContentServer = 6, - k_EAccountTypeClan = 7, - k_EAccountTypeChat = 8, - k_EAccountTypeConsoleUser = 9, - k_EAccountTypeAnonUser = 10, - k_EAccountTypeMax = 11, -} -public enum EAppReleaseState -{ - k_EAppReleaseState_Unknown = 0, - k_EAppReleaseState_Unavailable = 1, - k_EAppReleaseState_Prerelease = 2, - k_EAppReleaseState_PreloadOnly = 3, - k_EAppReleaseState_Released = 4, -} -public enum EAppOwnershipFlags -{ - k_EAppOwnershipFlags_None = 0, - k_EAppOwnershipFlags_OwnsLicense = 1, - k_EAppOwnershipFlags_FreeLicense = 2, - k_EAppOwnershipFlags_RegionRestricted = 4, - k_EAppOwnershipFlags_LowViolence = 8, - k_EAppOwnershipFlags_InvalidPlatform = 16, - k_EAppOwnershipFlags_SharedLicense = 32, - k_EAppOwnershipFlags_FreeWeekend = 64, - k_EAppOwnershipFlags_RetailLicense = 128, - k_EAppOwnershipFlags_LicenseLocked = 256, - k_EAppOwnershipFlags_LicensePending = 512, - k_EAppOwnershipFlags_LicenseExpired = 1024, - k_EAppOwnershipFlags_LicensePermanent = 2048, - k_EAppOwnershipFlags_LicenseRecurring = 4096, - k_EAppOwnershipFlags_LicenseCanceled = 8192, - k_EAppOwnershipFlags_AutoGrant = 16384, - k_EAppOwnershipFlags_PendingGift = 32768, - k_EAppOwnershipFlags_RentalNotActivated = 65536, - k_EAppOwnershipFlags_Rental = 131072, -} -public enum EAppType -{ - k_EAppType_Invalid = 0, - k_EAppType_Game = 1, - k_EAppType_Application = 2, - k_EAppType_Tool = 4, - k_EAppType_Demo = 8, - k_EAppType_Media_DEPRECATED = 16, - k_EAppType_DLC = 32, - k_EAppType_Guide = 64, - k_EAppType_Driver = 128, - k_EAppType_Config = 256, - k_EAppType_Hardware = 512, - k_EAppType_Franchise = 1024, - k_EAppType_Video = 2048, - k_EAppType_Plugin = 4096, - k_EAppType_Music = 8192, - k_EAppType_Series = 16384, - k_EAppType_Shortcut = 1073741824, - k_EAppType_DepotOnly = -2147483648, -} -public enum ESteamUserStatType -{ - k_ESteamUserStatTypeINVALID = 0, - k_ESteamUserStatTypeINT = 1, - k_ESteamUserStatTypeFLOAT = 2, - k_ESteamUserStatTypeAVGRATE = 3, - k_ESteamUserStatTypeACHIEVEMENTS = 4, - k_ESteamUserStatTypeGROUPACHIEVEMENTS = 5, - k_ESteamUserStatTypeMAX = 6, -} -public enum EChatEntryType -{ - k_EChatEntryTypeInvalid = 0, - k_EChatEntryTypeChatMsg = 1, - k_EChatEntryTypeTyping = 2, - k_EChatEntryTypeInviteGame = 3, - k_EChatEntryTypeEmote = 4, - k_EChatEntryTypeLeftConversation = 6, - k_EChatEntryTypeEntered = 7, - k_EChatEntryTypeWasKicked = 8, - k_EChatEntryTypeWasBanned = 9, - k_EChatEntryTypeDisconnected = 10, - k_EChatEntryTypeHistoricalChat = 11, - k_EChatEntryTypeLinkBlocked = 14, -} -public enum EChatRoomEnterResponse -{ - k_EChatRoomEnterResponseSuccess = 1, - k_EChatRoomEnterResponseDoesntExist = 2, - k_EChatRoomEnterResponseNotAllowed = 3, - k_EChatRoomEnterResponseFull = 4, - k_EChatRoomEnterResponseError = 5, - k_EChatRoomEnterResponseBanned = 6, - k_EChatRoomEnterResponseLimited = 7, - k_EChatRoomEnterResponseClanDisabled = 8, - k_EChatRoomEnterResponseCommunityBan = 9, - k_EChatRoomEnterResponseMemberBlockedYou = 10, - k_EChatRoomEnterResponseYouBlockedMember = 11, -} -public enum EChatSteamIDInstanceFlags -{ - k_EChatAccountInstanceMask = 4095, - k_EChatInstanceFlagClan = 524288, - k_EChatInstanceFlagLobby = 262144, - k_EChatInstanceFlagMMSLobby = 131072, -} -public enum EMarketingMessageFlags -{ - k_EMarketingMessageFlagsNone = 0, - k_EMarketingMessageFlagsHighPriority = 1, - k_EMarketingMessageFlagsPlatformWindows = 2, - k_EMarketingMessageFlagsPlatformMac = 4, - k_EMarketingMessageFlagsPlatformLinux = 8, - k_EMarketingMessageFlagsPlatformRestrictions = 14, -} -public enum ENotificationPosition -{ - k_EPositionTopLeft = 0, - k_EPositionTopRight = 1, - k_EPositionBottomLeft = 2, - k_EPositionBottomRight = 3, -} -public enum EBroadcastUploadResult -{ - k_EBroadcastUploadResultNone = 0, - k_EBroadcastUploadResultOK = 1, - k_EBroadcastUploadResultInitFailed = 2, - k_EBroadcastUploadResultFrameFailed = 3, - k_EBroadcastUploadResultTimeout = 4, - k_EBroadcastUploadResultBandwidthExceeded = 5, - k_EBroadcastUploadResultLowFPS = 6, - k_EBroadcastUploadResultMissingKeyFrames = 7, - k_EBroadcastUploadResultNoConnection = 8, - k_EBroadcastUploadResultRelayFailed = 9, - k_EBroadcastUploadResultSettingsChanged = 10, - k_EBroadcastUploadResultMissingAudio = 11, - k_EBroadcastUploadResultTooFarBehind = 12, - k_EBroadcastUploadResultTranscodeBehind = 13, -} -public enum ELaunchOptionType -{ - k_ELaunchOptionType_None = 0, - k_ELaunchOptionType_Default = 1, - k_ELaunchOptionType_SafeMode = 2, - k_ELaunchOptionType_Multiplayer = 3, - k_ELaunchOptionType_Config = 4, - k_ELaunchOptionType_OpenVR = 5, - k_ELaunchOptionType_Server = 6, - k_ELaunchOptionType_Editor = 7, - k_ELaunchOptionType_Manual = 8, - k_ELaunchOptionType_Benchmark = 9, - k_ELaunchOptionType_Option1 = 10, - k_ELaunchOptionType_Option2 = 11, - k_ELaunchOptionType_Option3 = 12, - k_ELaunchOptionType_OculusVR = 13, - k_ELaunchOptionType_OpenVROverlay = 14, - k_ELaunchOptionType_OSVR = 15, - k_ELaunchOptionType_Dialog = 1000, -} -public enum EVRHMDType -{ - k_eEVRHMDType_None = -1, - k_eEVRHMDType_Unknown = 0, - k_eEVRHMDType_HTC_Dev = 1, - k_eEVRHMDType_HTC_VivePre = 2, - k_eEVRHMDType_HTC_Vive = 3, - k_eEVRHMDType_HTC_Unknown = 20, - k_eEVRHMDType_Oculus_DK1 = 21, - k_eEVRHMDType_Oculus_DK2 = 22, - k_eEVRHMDType_Oculus_Rift = 23, - k_eEVRHMDType_Oculus_Unknown = 40, -} -public enum EControllerType -{ - k_eControllerType_None = -1, - k_eControllerType_Unknown = 0, - k_eControllerType_UnknownSteamController = 1, - k_eControllerType_SteamController = 2, - k_eControllerType_UnknownNonSteamController = 30, - k_eControllerType_XBox360Controller = 31, - k_eControllerType_XBoxOneController = 32, - k_eControllerType_PS3Controller = 33, - k_eControllerType_PS4Controller = 34, - k_eControllerType_WiiController = 35, - k_eControllerType_AppleController = 36, -} -public enum EFailureType -{ - k_EFailureFlushedCallbackQueue = 0, - k_EFailurePipeFail = 1, -} -public enum EFriendRelationship -{ - k_EFriendRelationshipNone = 0, - k_EFriendRelationshipBlocked = 1, - k_EFriendRelationshipRequestRecipient = 2, - k_EFriendRelationshipFriend = 3, - k_EFriendRelationshipRequestInitiator = 4, - k_EFriendRelationshipIgnored = 5, - k_EFriendRelationshipIgnoredFriend = 6, - k_EFriendRelationshipSuggested_DEPRECATED = 7, - k_EFriendRelationshipMax = 8, -} -public enum EPersonaState -{ - k_EPersonaStateOffline = 0, - k_EPersonaStateOnline = 1, - k_EPersonaStateBusy = 2, - k_EPersonaStateAway = 3, - k_EPersonaStateSnooze = 4, - k_EPersonaStateLookingToTrade = 5, - k_EPersonaStateLookingToPlay = 6, - k_EPersonaStateMax = 7, -} -public enum EFriendFlags -{ - k_EFriendFlagNone = 0, - k_EFriendFlagBlocked = 1, - k_EFriendFlagFriendshipRequested = 2, - k_EFriendFlagImmediate = 4, - k_EFriendFlagClanMember = 8, - k_EFriendFlagOnGameServer = 16, - k_EFriendFlagRequestingFriendship = 128, - k_EFriendFlagRequestingInfo = 256, - k_EFriendFlagIgnored = 512, - k_EFriendFlagIgnoredFriend = 1024, - k_EFriendFlagSuggested = 2048, - k_EFriendFlagChatMember = 4096, - k_EFriendFlagAll = 65535, -} -public enum EUserRestriction -{ - k_nUserRestrictionNone = 0, - k_nUserRestrictionUnknown = 1, - k_nUserRestrictionAnyChat = 2, - k_nUserRestrictionVoiceChat = 4, - k_nUserRestrictionGroupChat = 8, - k_nUserRestrictionRating = 16, - k_nUserRestrictionGameInvites = 32, - k_nUserRestrictionTrading = 64, -} -public enum EOverlayToStoreFlag -{ - k_EOverlayToStoreFlag_None = 0, - k_EOverlayToStoreFlag_AddToCart = 1, - k_EOverlayToStoreFlag_AddToCartAndShow = 2, -} -public enum EPersonaChange -{ - k_EPersonaChangeName = 1, - k_EPersonaChangeStatus = 2, - k_EPersonaChangeComeOnline = 4, - k_EPersonaChangeGoneOffline = 8, - k_EPersonaChangeGamePlayed = 16, - k_EPersonaChangeGameServer = 32, - k_EPersonaChangeAvatar = 64, - k_EPersonaChangeJoinedSource = 128, - k_EPersonaChangeLeftSource = 256, - k_EPersonaChangeRelationshipChanged = 512, - k_EPersonaChangeNameFirstSet = 1024, - k_EPersonaChangeFacebookInfo = 2048, - k_EPersonaChangeNickname = 4096, - k_EPersonaChangeSteamLevel = 8192, -} -public enum ESteamAPICallFailure -{ - k_ESteamAPICallFailureNone = -1, - k_ESteamAPICallFailureSteamGone = 0, - k_ESteamAPICallFailureNetworkFailure = 1, - k_ESteamAPICallFailureInvalidHandle = 2, - k_ESteamAPICallFailureMismatchedCallback = 3, -} -public enum EGamepadTextInputMode -{ - k_EGamepadTextInputModeNormal = 0, - k_EGamepadTextInputModePassword = 1, -} -public enum EGamepadTextInputLineMode -{ - k_EGamepadTextInputLineModeSingleLine = 0, - k_EGamepadTextInputLineModeMultipleLines = 1, -} -public enum ECheckFileSignature -{ - k_ECheckFileSignatureInvalidSignature = 0, - k_ECheckFileSignatureValidSignature = 1, - k_ECheckFileSignatureFileNotFound = 2, - k_ECheckFileSignatureNoSignaturesFoundForThisApp = 3, - k_ECheckFileSignatureNoSignaturesFoundForThisFile = 4, -} -public enum EMatchMakingServerResponse -{ - eServerResponded = 0, - eServerFailedToRespond = 1, - eNoServersListedOnMasterServer = 2, -} -public enum ELobbyType -{ - k_ELobbyTypePrivate = 0, - k_ELobbyTypeFriendsOnly = 1, - k_ELobbyTypePublic = 2, - k_ELobbyTypeInvisible = 3, -} -public enum ELobbyComparison -{ - k_ELobbyComparisonEqualToOrLessThan = -2, - k_ELobbyComparisonLessThan = -1, - k_ELobbyComparisonEqual = 0, - k_ELobbyComparisonGreaterThan = 1, - k_ELobbyComparisonEqualToOrGreaterThan = 2, - k_ELobbyComparisonNotEqual = 3, -} -public enum ELobbyDistanceFilter -{ - k_ELobbyDistanceFilterClose = 0, - k_ELobbyDistanceFilterDefault = 1, - k_ELobbyDistanceFilterFar = 2, - k_ELobbyDistanceFilterWorldwide = 3, -} -public enum EChatMemberStateChange -{ - k_EChatMemberStateChangeEntered = 1, - k_EChatMemberStateChangeLeft = 2, - k_EChatMemberStateChangeDisconnected = 4, - k_EChatMemberStateChangeKicked = 8, - k_EChatMemberStateChangeBanned = 16, -} -public enum ERemoteStoragePlatform -{ - k_ERemoteStoragePlatformNone = 0, - k_ERemoteStoragePlatformWindows = 1, - k_ERemoteStoragePlatformOSX = 2, - k_ERemoteStoragePlatformPS3 = 4, - k_ERemoteStoragePlatformLinux = 8, - k_ERemoteStoragePlatformReserved2 = 16, - k_ERemoteStoragePlatformAll = -1, -} -public enum ERemoteStoragePublishedFileVisibility -{ - k_ERemoteStoragePublishedFileVisibilityPublic = 0, - k_ERemoteStoragePublishedFileVisibilityFriendsOnly = 1, - k_ERemoteStoragePublishedFileVisibilityPrivate = 2, -} -public enum EWorkshopFileType -{ - k_EWorkshopFileTypeFirst = 0, - k_EWorkshopFileTypeCommunity = 0, - k_EWorkshopFileTypeMicrotransaction = 1, - k_EWorkshopFileTypeCollection = 2, - k_EWorkshopFileTypeArt = 3, - k_EWorkshopFileTypeVideo = 4, - k_EWorkshopFileTypeScreenshot = 5, - k_EWorkshopFileTypeGame = 6, - k_EWorkshopFileTypeSoftware = 7, - k_EWorkshopFileTypeConcept = 8, - k_EWorkshopFileTypeWebGuide = 9, - k_EWorkshopFileTypeIntegratedGuide = 10, - k_EWorkshopFileTypeMerch = 11, - k_EWorkshopFileTypeControllerBinding = 12, - k_EWorkshopFileTypeSteamworksAccessInvite = 13, - k_EWorkshopFileTypeSteamVideo = 14, - k_EWorkshopFileTypeGameManagedItem = 15, - k_EWorkshopFileTypeMax = 16, -} -public enum EWorkshopVote -{ - k_EWorkshopVoteUnvoted = 0, - k_EWorkshopVoteFor = 1, - k_EWorkshopVoteAgainst = 2, - k_EWorkshopVoteLater = 3, -} -public enum EWorkshopFileAction -{ - k_EWorkshopFileActionPlayed = 0, - k_EWorkshopFileActionCompleted = 1, -} -public enum EWorkshopEnumerationType -{ - k_EWorkshopEnumerationTypeRankedByVote = 0, - k_EWorkshopEnumerationTypeRecent = 1, - k_EWorkshopEnumerationTypeTrending = 2, - k_EWorkshopEnumerationTypeFavoritesOfFriends = 3, - k_EWorkshopEnumerationTypeVotedByFriends = 4, - k_EWorkshopEnumerationTypeContentByFriends = 5, - k_EWorkshopEnumerationTypeRecentFromFollowedUsers = 6, -} -public enum EWorkshopVideoProvider -{ - k_EWorkshopVideoProviderNone = 0, - k_EWorkshopVideoProviderYoutube = 1, -} -public enum EUGCReadAction -{ - k_EUGCRead_ContinueReadingUntilFinished = 0, - k_EUGCRead_ContinueReading = 1, - k_EUGCRead_Close = 2, -} -public enum ELeaderboardDataRequest -{ - k_ELeaderboardDataRequestGlobal = 0, - k_ELeaderboardDataRequestGlobalAroundUser = 1, - k_ELeaderboardDataRequestFriends = 2, - k_ELeaderboardDataRequestUsers = 3, -} -public enum ELeaderboardSortMethod -{ - k_ELeaderboardSortMethodNone = 0, - k_ELeaderboardSortMethodAscending = 1, - k_ELeaderboardSortMethodDescending = 2, -} -public enum ELeaderboardDisplayType -{ - k_ELeaderboardDisplayTypeNone = 0, - k_ELeaderboardDisplayTypeNumeric = 1, - k_ELeaderboardDisplayTypeTimeSeconds = 2, - k_ELeaderboardDisplayTypeTimeMilliSeconds = 3, -} -public enum ELeaderboardUploadScoreMethod -{ - k_ELeaderboardUploadScoreMethodNone = 0, - k_ELeaderboardUploadScoreMethodKeepBest = 1, - k_ELeaderboardUploadScoreMethodForceUpdate = 2, -} -public enum ERegisterActivationCodeResult -{ - k_ERegisterActivationCodeResultOK = 0, - k_ERegisterActivationCodeResultFail = 1, - k_ERegisterActivationCodeResultAlreadyRegistered = 2, - k_ERegisterActivationCodeResultTimeout = 3, - k_ERegisterActivationCodeAlreadyOwned = 4, -} -public enum EP2PSessionError -{ - k_EP2PSessionErrorNone = 0, - k_EP2PSessionErrorNotRunningApp = 1, - k_EP2PSessionErrorNoRightsToApp = 2, - k_EP2PSessionErrorDestinationNotLoggedIn = 3, - k_EP2PSessionErrorTimeout = 4, - k_EP2PSessionErrorMax = 5, -} -public enum EP2PSend -{ - k_EP2PSendUnreliable = 0, - k_EP2PSendUnreliableNoDelay = 1, - k_EP2PSendReliable = 2, - k_EP2PSendReliableWithBuffering = 3, -} -public enum ESNetSocketState -{ - k_ESNetSocketStateInvalid = 0, - k_ESNetSocketStateConnected = 1, - k_ESNetSocketStateInitiated = 10, - k_ESNetSocketStateLocalCandidatesFound = 11, - k_ESNetSocketStateReceivedRemoteCandidates = 12, - k_ESNetSocketStateChallengeHandshake = 15, - k_ESNetSocketStateDisconnecting = 21, - k_ESNetSocketStateLocalDisconnect = 22, - k_ESNetSocketStateTimeoutDuringConnect = 23, - k_ESNetSocketStateRemoteEndDisconnected = 24, - k_ESNetSocketStateConnectionBroken = 25, -} -public enum ESNetSocketConnectionType -{ - k_ESNetSocketConnectionTypeNotConnected = 0, - k_ESNetSocketConnectionTypeUDP = 1, - k_ESNetSocketConnectionTypeUDPRelay = 2, -} -public enum EVRScreenshotType -{ - k_EVRScreenshotType_None = 0, - k_EVRScreenshotType_Mono = 1, - k_EVRScreenshotType_Stereo = 2, - k_EVRScreenshotType_MonoCubemap = 3, - k_EVRScreenshotType_MonoPanorama = 4, - k_EVRScreenshotType_StereoPanorama = 5, -} -public enum AudioPlayback_Status -{ - AudioPlayback_Undefined = 0, - AudioPlayback_Playing = 1, - AudioPlayback_Paused = 2, - AudioPlayback_Idle = 3, -} -public enum EHTTPMethod -{ - k_EHTTPMethodInvalid = 0, - k_EHTTPMethodGET = 1, - k_EHTTPMethodHEAD = 2, - k_EHTTPMethodPOST = 3, - k_EHTTPMethodPUT = 4, - k_EHTTPMethodDELETE = 5, - k_EHTTPMethodOPTIONS = 6, - k_EHTTPMethodPATCH = 7, -} -public enum EHTTPStatusCode -{ - k_EHTTPStatusCodeInvalid = 0, - k_EHTTPStatusCode100Continue = 100, - k_EHTTPStatusCode101SwitchingProtocols = 101, - k_EHTTPStatusCode200OK = 200, - k_EHTTPStatusCode201Created = 201, - k_EHTTPStatusCode202Accepted = 202, - k_EHTTPStatusCode203NonAuthoritative = 203, - k_EHTTPStatusCode204NoContent = 204, - k_EHTTPStatusCode205ResetContent = 205, - k_EHTTPStatusCode206PartialContent = 206, - k_EHTTPStatusCode300MultipleChoices = 300, - k_EHTTPStatusCode301MovedPermanently = 301, - k_EHTTPStatusCode302Found = 302, - k_EHTTPStatusCode303SeeOther = 303, - k_EHTTPStatusCode304NotModified = 304, - k_EHTTPStatusCode305UseProxy = 305, - k_EHTTPStatusCode307TemporaryRedirect = 307, - k_EHTTPStatusCode400BadRequest = 400, - k_EHTTPStatusCode401Unauthorized = 401, - k_EHTTPStatusCode402PaymentRequired = 402, - k_EHTTPStatusCode403Forbidden = 403, - k_EHTTPStatusCode404NotFound = 404, - k_EHTTPStatusCode405MethodNotAllowed = 405, - k_EHTTPStatusCode406NotAcceptable = 406, - k_EHTTPStatusCode407ProxyAuthRequired = 407, - k_EHTTPStatusCode408RequestTimeout = 408, - k_EHTTPStatusCode409Conflict = 409, - k_EHTTPStatusCode410Gone = 410, - k_EHTTPStatusCode411LengthRequired = 411, - k_EHTTPStatusCode412PreconditionFailed = 412, - k_EHTTPStatusCode413RequestEntityTooLarge = 413, - k_EHTTPStatusCode414RequestURITooLong = 414, - k_EHTTPStatusCode415UnsupportedMediaType = 415, - k_EHTTPStatusCode416RequestedRangeNotSatisfiable = 416, - k_EHTTPStatusCode417ExpectationFailed = 417, - k_EHTTPStatusCode4xxUnknown = 418, - k_EHTTPStatusCode429TooManyRequests = 429, - k_EHTTPStatusCode500InternalServerError = 500, - k_EHTTPStatusCode501NotImplemented = 501, - k_EHTTPStatusCode502BadGateway = 502, - k_EHTTPStatusCode503ServiceUnavailable = 503, - k_EHTTPStatusCode504GatewayTimeout = 504, - k_EHTTPStatusCode505HTTPVersionNotSupported = 505, - k_EHTTPStatusCode5xxUnknown = 599, -} -public enum ESteamControllerPad -{ - k_ESteamControllerPad_Left = 0, - k_ESteamControllerPad_Right = 1, -} -public enum EControllerSource -{ - k_EControllerSource_None = 0, - k_EControllerSource_LeftTrackpad = 1, - k_EControllerSource_RightTrackpad = 2, - k_EControllerSource_Joystick = 3, - k_EControllerSource_ABXY = 4, - k_EControllerSource_Switch = 5, - k_EControllerSource_LeftTrigger = 6, - k_EControllerSource_RightTrigger = 7, - k_EControllerSource_Gyro = 8, - k_EControllerSource_Count = 9, -} -public enum EControllerSourceMode -{ - k_EControllerSourceMode_None = 0, - k_EControllerSourceMode_Dpad = 1, - k_EControllerSourceMode_Buttons = 2, - k_EControllerSourceMode_FourButtons = 3, - k_EControllerSourceMode_AbsoluteMouse = 4, - k_EControllerSourceMode_RelativeMouse = 5, - k_EControllerSourceMode_JoystickMove = 6, - k_EControllerSourceMode_JoystickCamera = 7, - k_EControllerSourceMode_ScrollWheel = 8, - k_EControllerSourceMode_Trigger = 9, - k_EControllerSourceMode_TouchMenu = 10, - k_EControllerSourceMode_MouseJoystick = 11, - k_EControllerSourceMode_MouseRegion = 12, - k_EControllerSourceMode_RadialMenu = 13, - k_EControllerSourceMode_Switches = 14, -} -public enum EControllerActionOrigin -{ - k_EControllerActionOrigin_None = 0, - k_EControllerActionOrigin_A = 1, - k_EControllerActionOrigin_B = 2, - k_EControllerActionOrigin_X = 3, - k_EControllerActionOrigin_Y = 4, - k_EControllerActionOrigin_LeftBumper = 5, - k_EControllerActionOrigin_RightBumper = 6, - k_EControllerActionOrigin_LeftGrip = 7, - k_EControllerActionOrigin_RightGrip = 8, - k_EControllerActionOrigin_Start = 9, - k_EControllerActionOrigin_Back = 10, - k_EControllerActionOrigin_LeftPad_Touch = 11, - k_EControllerActionOrigin_LeftPad_Swipe = 12, - k_EControllerActionOrigin_LeftPad_Click = 13, - k_EControllerActionOrigin_LeftPad_DPadNorth = 14, - k_EControllerActionOrigin_LeftPad_DPadSouth = 15, - k_EControllerActionOrigin_LeftPad_DPadWest = 16, - k_EControllerActionOrigin_LeftPad_DPadEast = 17, - k_EControllerActionOrigin_RightPad_Touch = 18, - k_EControllerActionOrigin_RightPad_Swipe = 19, - k_EControllerActionOrigin_RightPad_Click = 20, - k_EControllerActionOrigin_RightPad_DPadNorth = 21, - k_EControllerActionOrigin_RightPad_DPadSouth = 22, - k_EControllerActionOrigin_RightPad_DPadWest = 23, - k_EControllerActionOrigin_RightPad_DPadEast = 24, - k_EControllerActionOrigin_LeftTrigger_Pull = 25, - k_EControllerActionOrigin_LeftTrigger_Click = 26, - k_EControllerActionOrigin_RightTrigger_Pull = 27, - k_EControllerActionOrigin_RightTrigger_Click = 28, - k_EControllerActionOrigin_LeftStick_Move = 29, - k_EControllerActionOrigin_LeftStick_Click = 30, - k_EControllerActionOrigin_LeftStick_DPadNorth = 31, - k_EControllerActionOrigin_LeftStick_DPadSouth = 32, - k_EControllerActionOrigin_LeftStick_DPadWest = 33, - k_EControllerActionOrigin_LeftStick_DPadEast = 34, - k_EControllerActionOrigin_Gyro_Move = 35, - k_EControllerActionOrigin_Gyro_Pitch = 36, - k_EControllerActionOrigin_Gyro_Yaw = 37, - k_EControllerActionOrigin_Gyro_Roll = 38, - k_EControllerActionOrigin_Count = 39, -} -public enum EControllerActivationType -{ - k_EControllerActivationType_None = 0, - k_EControllerActivationType_FullPress = 1, - k_EControllerActivationType_SoftPress = 2, - k_EControllerActivationType_StartPress = 3, - k_EControllerActivationType_Release = 4, - k_EControllerActivationType_LongPress = 5, - k_EControllerActivationType_DoublePress = 6, - k_EControllerActivationType_Analog = 7, -} -public enum EControllerPressureButton -{ - k_EControllerPressureButton_LeftTrackPad = 0, - k_EControllerPressureButton_RightTrackPad = 1, - k_EControllerPressureButton_LeftBumper = 2, - k_EControllerPressureButton_RightBumper = 3, - k_EControllerPressureButton_LeftGripLower = 4, - k_EControllerPressureButton_RightGripLower = 5, - k_EControllerPressureButton_LeftGripUpper = 6, - k_EControllerPressureButton_RightGripUpper = 7, - k_EControllerPressureButton_Invalid = 8, -} -public enum EControllerActivatorOutputAxis -{ - k_EOutputAxisLeftTrigger = 0, - k_EOutputAxisRightTrigger = 1, - k_EOutputAxisLeftThumbXPos = 2, - k_EOutputAxisLeftThumbXNeg = 3, - k_EOutputAxisLeftThumbYPos = 4, - k_EOutputAxisLeftThumbYNeg = 5, - k_EOutputAxisRightThumbXPos = 6, - k_EOutputAxisRightThumbXNeg = 7, - k_EOutputAxisRightThumbYPos = 8, - k_EOutputAxisRightThumbYNeg = 9, -} -public enum EControllerConfigFeature -{ - k_EControllerConfigFeature_None = 0, - k_EControllerConfigFeature_Gamepad = 1, - k_EControllerConfigFeature_Keyboard = 2, - k_EControllerConfigFeature_Mouse = 3, - k_EControllerConfigFeature_Gyro = 4, - k_EControllerConfigFeature_TouchMenu = 5, - k_EControllerConfigFeature_ModeShift = 6, - k_EControllerConfigFeature_ActionSet = 7, - k_EControllerConfigFeature_Activator = 8, -} -public enum EControllerPopupMenuActivationType -{ - k_EMenuButtonPress = 0, - k_EMenuButtonRelease = 1, - k_EMenuTouchRelease = 2, - k_EMenuTouchAlways = 3, -} -public enum EUGCMatchingUGCType -{ - k_EUGCMatchingUGCType_Items = 0, - k_EUGCMatchingUGCType_Items_Mtx = 1, - k_EUGCMatchingUGCType_Items_ReadyToUse = 2, - k_EUGCMatchingUGCType_Collections = 3, - k_EUGCMatchingUGCType_Artwork = 4, - k_EUGCMatchingUGCType_Videos = 5, - k_EUGCMatchingUGCType_Screenshots = 6, - k_EUGCMatchingUGCType_AllGuides = 7, - k_EUGCMatchingUGCType_WebGuides = 8, - k_EUGCMatchingUGCType_IntegratedGuides = 9, - k_EUGCMatchingUGCType_UsableInGame = 10, - k_EUGCMatchingUGCType_ControllerBindings = 11, - k_EUGCMatchingUGCType_GameManagedItems = 12, - k_EUGCMatchingUGCType_All = -1, -} -public enum EUserUGCList -{ - k_EUserUGCList_Published = 0, - k_EUserUGCList_VotedOn = 1, - k_EUserUGCList_VotedUp = 2, - k_EUserUGCList_VotedDown = 3, - k_EUserUGCList_WillVoteLater = 4, - k_EUserUGCList_Favorited = 5, - k_EUserUGCList_Subscribed = 6, - k_EUserUGCList_UsedOrPlayed = 7, - k_EUserUGCList_Followed = 8, -} -public enum EUserUGCListSortOrder -{ - k_EUserUGCListSortOrder_CreationOrderDesc = 0, - k_EUserUGCListSortOrder_CreationOrderAsc = 1, - k_EUserUGCListSortOrder_TitleAsc = 2, - k_EUserUGCListSortOrder_LastUpdatedDesc = 3, - k_EUserUGCListSortOrder_SubscriptionDateDesc = 4, - k_EUserUGCListSortOrder_VoteScoreDesc = 5, - k_EUserUGCListSortOrder_ForModeration = 6, -} -public enum EUGCQuery -{ - k_EUGCQuery_RankedByVote = 0, - k_EUGCQuery_RankedByPublicationDate = 1, - k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate = 2, - k_EUGCQuery_RankedByTrend = 3, - k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate = 4, - k_EUGCQuery_CreatedByFriendsRankedByPublicationDate = 5, - k_EUGCQuery_RankedByNumTimesReported = 6, - k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate = 7, - k_EUGCQuery_NotYetRated = 8, - k_EUGCQuery_RankedByTotalVotesAsc = 9, - k_EUGCQuery_RankedByVotesUp = 10, - k_EUGCQuery_RankedByTextSearch = 11, - k_EUGCQuery_RankedByTotalUniqueSubscriptions = 12, - k_EUGCQuery_RankedByPlaytimeTrend = 13, - k_EUGCQuery_RankedByTotalPlaytime = 14, - k_EUGCQuery_RankedByAveragePlaytimeTrend = 15, - k_EUGCQuery_RankedByLifetimeAveragePlaytime = 16, - k_EUGCQuery_RankedByPlaytimeSessionsTrend = 17, - k_EUGCQuery_RankedByLifetimePlaytimeSessions = 18, -} -public enum EItemUpdateStatus -{ - k_EItemUpdateStatusInvalid = 0, - k_EItemUpdateStatusPreparingConfig = 1, - k_EItemUpdateStatusPreparingContent = 2, - k_EItemUpdateStatusUploadingContent = 3, - k_EItemUpdateStatusUploadingPreviewFile = 4, - k_EItemUpdateStatusCommittingChanges = 5, -} -public enum EItemState -{ - k_EItemStateNone = 0, - k_EItemStateSubscribed = 1, - k_EItemStateLegacyItem = 2, - k_EItemStateInstalled = 4, - k_EItemStateNeedsUpdate = 8, - k_EItemStateDownloading = 16, - k_EItemStateDownloadPending = 32, -} -public enum EItemStatistic -{ - k_EItemStatistic_NumSubscriptions = 0, - k_EItemStatistic_NumFavorites = 1, - k_EItemStatistic_NumFollowers = 2, - k_EItemStatistic_NumUniqueSubscriptions = 3, - k_EItemStatistic_NumUniqueFavorites = 4, - k_EItemStatistic_NumUniqueFollowers = 5, - k_EItemStatistic_NumUniqueWebsiteViews = 6, - k_EItemStatistic_ReportScore = 7, - k_EItemStatistic_NumSecondsPlayed = 8, - k_EItemStatistic_NumPlaytimeSessions = 9, - k_EItemStatistic_NumComments = 10, -} -public enum EItemPreviewType -{ - k_EItemPreviewType_Image = 0, - k_EItemPreviewType_YouTubeVideo = 1, - k_EItemPreviewType_Sketchfab = 2, - k_EItemPreviewType_EnvironmentMap_HorizontalCross = 3, - k_EItemPreviewType_EnvironmentMap_LatLong = 4, - k_EItemPreviewType_ReservedMax = 255, -} -public enum EHTMLMouseButton -{ - eHTMLMouseButton_Left = 0, - eHTMLMouseButton_Right = 1, - eHTMLMouseButton_Middle = 2, -} -public enum EMouseCursor -{ - dc_user = 0, - dc_none = 1, - dc_arrow = 2, - dc_ibeam = 3, - dc_hourglass = 4, - dc_waitarrow = 5, - dc_crosshair = 6, - dc_up = 7, - dc_sizenw = 8, - dc_sizese = 9, - dc_sizene = 10, - dc_sizesw = 11, - dc_sizew = 12, - dc_sizee = 13, - dc_sizen = 14, - dc_sizes = 15, - dc_sizewe = 16, - dc_sizens = 17, - dc_sizeall = 18, - dc_no = 19, - dc_hand = 20, - dc_blank = 21, - dc_middle_pan = 22, - dc_north_pan = 23, - dc_north_east_pan = 24, - dc_east_pan = 25, - dc_south_east_pan = 26, - dc_south_pan = 27, - dc_south_west_pan = 28, - dc_west_pan = 29, - dc_north_west_pan = 30, - dc_alias = 31, - dc_cell = 32, - dc_colresize = 33, - dc_copycur = 34, - dc_verticaltext = 35, - dc_rowresize = 36, - dc_zoomin = 37, - dc_zoomout = 38, - dc_help = 39, - dc_custom = 40, - dc_last = 41, -} -public enum EHTMLKeyModifiers -{ - k_eHTMLKeyModifier_None = 0, - k_eHTMLKeyModifier_AltDown = 1, - k_eHTMLKeyModifier_CtrlDown = 2, - k_eHTMLKeyModifier_ShiftDown = 4, -} -public enum ESteamItemFlags -{ - k_ESteamItemNoTrade = 1, - k_ESteamItemRemoved = 256, - k_ESteamItemConsumed = 512, -} -[StructLayout(LayoutKind.Sequential)] public struct CSteamID -{ - public SteamID_t m_steamid; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamID_t -{ - public SteamIDComponent_t m_comp; - public ulong m_unAll64Bits; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamIDComponent_t -{ - public uint m_unAccountID; - public uint m_unAccountInstance; - public uint m_EAccountType; - public EUniverse m_EUniverse; -} -[StructLayout(LayoutKind.Sequential)] public struct GameID_t -{ - public uint m_nAppID; - public uint m_nType; - public uint m_nModID; -} -[StructLayout(LayoutKind.Sequential)] public struct ValvePackingSentinel_t -{ - public uint m_u32; - public ulong m_u64; - public char m_u16; - public double m_d; -} -[StructLayout(LayoutKind.Sequential)] public struct CallbackMsg_t -{ - public uint m_hSteamUser; - public int m_iCallback; - public IntPtr m_pubParam; // uint8 * - public int m_cubParam; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamServerConnectFailure_t -{ - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bStillRetrying; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamServersDisconnected_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct ClientGameServerDeny_t -{ - public uint m_uAppID; - public uint m_unGameServerIP; - public char m_usGameServerPort; - public char m_bSecure; - public uint m_uReason; -} -[StructLayout(LayoutKind.Sequential)] public struct ValidateAuthTicketResponse_t -{ - public ulong m_SteamID; - public EAuthSessionResponse m_eAuthSessionResponse; - public ulong m_OwnerSteamID; -} -[StructLayout(LayoutKind.Sequential)] public struct MicroTxnAuthorizationResponse_t -{ - public uint m_unAppID; - public ulong m_ulOrderID; - public byte m_bAuthorized; -} -[StructLayout(LayoutKind.Sequential)] public struct EncryptedAppTicketResponse_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct GetAuthSessionTicketResponse_t -{ - public uint m_hAuthTicket; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct GameWebCallback_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_szURL; //char[256] -} -[StructLayout(LayoutKind.Sequential)] public struct StoreAuthURLResponse_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)] - public string m_szURL; //char[512] -} -[StructLayout(LayoutKind.Sequential)] public struct FriendGameInfo_t -{ - public ulong m_gameID; - public uint m_unGameIP; - public char m_usGamePort; - public char m_usQueryPort; - public ulong m_steamIDLobby; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendSessionStateInfo_t -{ - public uint m_uiOnlineSessionInstances; - public byte m_uiPublishedToFriendsSessionInstance; -} -[StructLayout(LayoutKind.Sequential)] public struct PersonaStateChange_t -{ - public ulong m_ulSteamID; - public int m_nChangeFlags; -} -[StructLayout(LayoutKind.Sequential)] public struct GameOverlayActivated_t -{ - public byte m_bActive; -} -[StructLayout(LayoutKind.Sequential)] public struct GameServerChangeRequested_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string m_rgchServer; //char[64] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string m_rgchPassword; //char[64] -} -[StructLayout(LayoutKind.Sequential)] public struct GameLobbyJoinRequested_t -{ - public ulong m_steamIDLobby; - public ulong m_steamIDFriend; -} -[StructLayout(LayoutKind.Sequential)] public struct AvatarImageLoaded_t -{ - public ulong m_steamID; - public int m_iImage; - public int m_iWide; - public int m_iTall; -} -[StructLayout(LayoutKind.Sequential)] public struct ClanOfficerListResponse_t -{ - public ulong m_steamIDClan; - public int m_cOfficers; - public byte m_bSuccess; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendRichPresenceUpdate_t -{ - public ulong m_steamIDFriend; - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct GameRichPresenceJoinRequested_t -{ - public ulong m_steamIDFriend; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_rgchConnect; //char[256] -} -[StructLayout(LayoutKind.Sequential)] public struct GameConnectedClanChatMsg_t -{ - public ulong m_steamIDClanChat; - public ulong m_steamIDUser; - public int m_iMessageID; -} -[StructLayout(LayoutKind.Sequential)] public struct GameConnectedChatJoin_t -{ - public ulong m_steamIDClanChat; - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct GameConnectedChatLeave_t -{ - public ulong m_steamIDClanChat; - public ulong m_steamIDUser; - [MarshalAs(UnmanagedType.I1)] - public bool m_bKicked; - [MarshalAs(UnmanagedType.I1)] - public bool m_bDropped; -} -[StructLayout(LayoutKind.Sequential)] public struct DownloadClanActivityCountsResult_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bSuccess; -} -[StructLayout(LayoutKind.Sequential)] public struct JoinClanChatRoomCompletionResult_t -{ - public ulong m_steamIDClanChat; - public EChatRoomEnterResponse m_eChatRoomEnterResponse; -} -[StructLayout(LayoutKind.Sequential)] public struct GameConnectedFriendChatMsg_t -{ - public ulong m_steamIDUser; - public int m_iMessageID; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendsGetFollowerCount_t -{ - public EResult m_eResult; - public ulong m_steamID; - public int m_nCount; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendsIsFollowing_t -{ - public EResult m_eResult; - public ulong m_steamID; - [MarshalAs(UnmanagedType.I1)] - public bool m_bIsFollowing; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendsEnumerateFollowingList_t -{ - public EResult m_eResult; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public CSteamID[] m_rgSteamID; //CSteamID[50] - public int m_nResultsReturned; - public int m_nTotalResultCount; -} -[StructLayout(LayoutKind.Sequential)] public struct SetPersonaNameResponse_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bSuccess; - [MarshalAs(UnmanagedType.I1)] - public bool m_bLocalSuccess; - public EResult m_result; -} -[StructLayout(LayoutKind.Sequential)] public struct LowBatteryPower_t -{ - public byte m_nMinutesBatteryLeft; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamAPICallCompleted_t -{ - public ulong m_hAsyncCall; - public int m_iCallback; - public uint m_cubParam; -} -[StructLayout(LayoutKind.Sequential)] public struct CheckFileSignature_t -{ - public ECheckFileSignature m_eCheckFileSignature; -} -[StructLayout(LayoutKind.Sequential)] public struct GamepadTextInputDismissed_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bSubmitted; - public uint m_unSubmittedText; -} -[StructLayout(LayoutKind.Sequential)] public struct MatchMakingKeyValuePair_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_szKey; //char[256] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_szValue; //char[256] -} -[StructLayout(LayoutKind.Sequential)] public struct servernetadr_t -{ - public char m_usConnectionPort; - public char m_usQueryPort; - public uint m_unIP; -} -[StructLayout(LayoutKind.Sequential)] public struct gameserveritem_t -{ - public servernetadr_t m_NetAdr; - public int m_nPing; - [MarshalAs(UnmanagedType.I1)] - public bool m_bHadSuccessfulResponse; - [MarshalAs(UnmanagedType.I1)] - public bool m_bDoNotRefresh; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] - public string m_szGameDir; //char[32] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] - public string m_szMap; //char[32] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string m_szGameDescription; //char[64] - public uint m_nAppID; - public int m_nPlayers; - public int m_nMaxPlayers; - public int m_nBotPlayers; - [MarshalAs(UnmanagedType.I1)] - public bool m_bPassword; - [MarshalAs(UnmanagedType.I1)] - public bool m_bSecure; - public uint m_ulTimeLastPlayed; - public int m_nServerVersion; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string m_szServerName; //char[64] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_szGameTags; //char[128] - public ulong m_steamID; -} -[StructLayout(LayoutKind.Sequential)] public struct FavoritesListChanged_t -{ - public uint m_nIP; - public uint m_nQueryPort; - public uint m_nConnPort; - public uint m_nAppID; - public uint m_nFlags; - [MarshalAs(UnmanagedType.I1)] - public bool m_bAdd; - public uint m_unAccountId; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyInvite_t -{ - public ulong m_ulSteamIDUser; - public ulong m_ulSteamIDLobby; - public ulong m_ulGameID; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyEnter_t -{ - public ulong m_ulSteamIDLobby; - public uint m_rgfChatPermissions; - [MarshalAs(UnmanagedType.I1)] - public bool m_bLocked; - public uint m_EChatRoomEnterResponse; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyDataUpdate_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDMember; - public byte m_bSuccess; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyChatUpdate_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDUserChanged; - public ulong m_ulSteamIDMakingChange; - public uint m_rgfChatMemberStateChange; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyChatMsg_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDUser; - public byte m_eChatEntryType; - public uint m_iChatID; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyGameCreated_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDGameServer; - public uint m_unIP; - public char m_usPort; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyMatchList_t -{ - public uint m_nLobbiesMatching; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyKicked_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDAdmin; - public byte m_bKickedDueToDisconnect; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyCreated_t -{ - public EResult m_eResult; - public ulong m_ulSteamIDLobby; -} -[StructLayout(LayoutKind.Sequential)] public struct PSNGameBootInviteResult_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bGameBootInviteExists; - public ulong m_steamIDLobby; -} -[StructLayout(LayoutKind.Sequential)] public struct FavoritesListAccountsUpdated_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamParamStringArray_t -{ - public IntPtr m_ppStrings; // const char ** - public int m_nNumStrings; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageAppSyncedClient_t -{ - public uint m_nAppID; - public EResult m_eResult; - public int m_unNumDownloads; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageAppSyncedServer_t -{ - public uint m_nAppID; - public EResult m_eResult; - public int m_unNumUploads; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageAppSyncProgress_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_rgchCurrentFile; //char[260] - public uint m_nAppID; - public uint m_uBytesTransferredThisChunk; - public double m_dAppPercentComplete; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUploading; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageAppSyncStatusCheck_t -{ - public uint m_nAppID; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageFileShareResult_t -{ - public EResult m_eResult; - public ulong m_hFile; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_rgchFilename; //char[260] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageDeletePublishedFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumerateUserPublishedFilesResult_t -{ - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageSubscribePublishedFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumerateUserSubscribedFilesResult_t -{ - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U4)] - public uint[] m_rgRTimeSubscribed; //uint[50] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageUnsubscribePublishedFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageUpdatePublishedFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageDownloadUGCResult_t -{ - public EResult m_eResult; - public ulong m_hFile; - public uint m_nAppID; - public int m_nSizeInBytes; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_pchFileName; //char[260] - public ulong m_ulSteamIDOwner; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageGetPublishedFileDetailsResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - public uint m_nCreatorAppID; - public uint m_nConsumerAppID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] - public string m_rgchTitle; //char[129] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8000)] - public string m_rgchDescription; //char[8000] - public ulong m_hFile; - public ulong m_hPreviewFile; - public ulong m_ulSteamIDOwner; - public uint m_rtimeCreated; - public uint m_rtimeUpdated; - public ERemoteStoragePublishedFileVisibility m_eVisibility; - [MarshalAs(UnmanagedType.I1)] - public bool m_bBanned; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1025)] - public string m_rgchTags; //char[1025] - [MarshalAs(UnmanagedType.I1)] - public bool m_bTagsTruncated; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_pchFileName; //char[260] - public int m_nFileSize; - public int m_nPreviewFileSize; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_rgchURL; //char[256] - public EWorkshopFileType m_eFileType; - [MarshalAs(UnmanagedType.I1)] - public bool m_bAcceptedForUse; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumerateWorkshopFilesResult_t -{ - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.R4)] - public float[] m_rgScore; //float[50] - public uint m_nAppId; - public uint m_unStartIndex; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageGetPublishedItemVoteDetailsResult_t -{ - public EResult m_eResult; - public ulong m_unPublishedFileId; - public int m_nVotesFor; - public int m_nVotesAgainst; - public int m_nReports; - public float m_fScore; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishedFileSubscribed_t -{ - public ulong m_nPublishedFileId; - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishedFileUnsubscribed_t -{ - public ulong m_nPublishedFileId; - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishedFileDeleted_t -{ - public ulong m_nPublishedFileId; - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageUpdateUserPublishedItemVoteResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageUserVoteDetails_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - public EWorkshopVote m_eVote; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t -{ - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageSetUserPublishedFileActionResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - public EWorkshopFileAction m_eAction; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t -{ - public EResult m_eResult; - public EWorkshopFileAction m_eAction; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U4)] - public uint[] m_rgRTimeUpdated; //uint[50] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishFileProgress_t -{ - public double m_dPercentFile; - [MarshalAs(UnmanagedType.I1)] - public bool m_bPreview; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishedFileUpdated_t -{ - public ulong m_nPublishedFileId; - public uint m_nAppID; - public ulong m_ulUnused; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageFileWriteAsyncComplete_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageFileReadAsyncComplete_t -{ - public ulong m_hFileReadAsync; - public EResult m_eResult; - public uint m_nOffset; - public uint m_cubRead; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardEntry_t -{ - public ulong m_steamIDUser; - public int m_nGlobalRank; - public int m_nScore; - public int m_cDetails; - public ulong m_hUGC; -} -[StructLayout(LayoutKind.Sequential)] public struct UserStatsReceived_t -{ - public ulong m_nGameID; - public EResult m_eResult; - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct UserStatsStored_t -{ - public ulong m_nGameID; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct UserAchievementStored_t -{ - public ulong m_nGameID; - [MarshalAs(UnmanagedType.I1)] - public bool m_bGroupAchievement; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_rgchAchievementName; //char[128] - public uint m_nCurProgress; - public uint m_nMaxProgress; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardFindResult_t -{ - public ulong m_hSteamLeaderboard; - public byte m_bLeaderboardFound; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardScoresDownloaded_t -{ - public ulong m_hSteamLeaderboard; - public ulong m_hSteamLeaderboardEntries; - public int m_cEntryCount; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardScoreUploaded_t -{ - public byte m_bSuccess; - public ulong m_hSteamLeaderboard; - public int m_nScore; - public byte m_bScoreChanged; - public int m_nGlobalRankNew; - public int m_nGlobalRankPrevious; -} -[StructLayout(LayoutKind.Sequential)] public struct NumberOfCurrentPlayers_t -{ - public byte m_bSuccess; - public int m_cPlayers; -} -[StructLayout(LayoutKind.Sequential)] public struct UserStatsUnloaded_t -{ - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct UserAchievementIconFetched_t -{ - public ulong m_nGameID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_rgchAchievementName; //char[128] - [MarshalAs(UnmanagedType.I1)] - public bool m_bAchieved; - public int m_nIconHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct GlobalAchievementPercentagesReady_t -{ - public ulong m_nGameID; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardUGCSet_t -{ - public EResult m_eResult; - public ulong m_hSteamLeaderboard; -} -[StructLayout(LayoutKind.Sequential)] public struct PS3TrophiesInstalled_t -{ - public ulong m_nGameID; - public EResult m_eResult; - public ulong m_ulRequiredDiskSpace; -} -[StructLayout(LayoutKind.Sequential)] public struct GlobalStatsReceived_t -{ - public ulong m_nGameID; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct DlcInstalled_t -{ - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct RegisterActivationCodeResponse_t -{ - public ERegisterActivationCodeResult m_eResult; - public uint m_unPackageRegistered; -} -[StructLayout(LayoutKind.Sequential)] public struct AppProofOfPurchaseKeyResponse_t -{ - public EResult m_eResult; - public uint m_nAppID; - public uint m_cchKeyLength; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 240)] - public string m_rgchKey; //char[240] -} -[StructLayout(LayoutKind.Sequential)] public struct FileDetailsResult_t -{ - public EResult m_eResult; - public ulong m_ulFileSize; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.U1)] - public byte[] m_FileSHA; //byte[20] - public uint m_unFlags; -} -[StructLayout(LayoutKind.Sequential)] public struct P2PSessionState_t -{ - public byte m_bConnectionActive; - public byte m_bConnecting; - public byte m_eP2PSessionError; - public byte m_bUsingRelay; - public int m_nBytesQueuedForSend; - public int m_nPacketsQueuedForSend; - public uint m_nRemoteIP; - public char m_nRemotePort; -} -[StructLayout(LayoutKind.Sequential)] public struct P2PSessionRequest_t -{ - public ulong m_steamIDRemote; -} -[StructLayout(LayoutKind.Sequential)] public struct P2PSessionConnectFail_t -{ - public ulong m_steamIDRemote; - public byte m_eP2PSessionError; -} -[StructLayout(LayoutKind.Sequential)] public struct SocketStatusCallback_t -{ - public uint m_hSocket; - public uint m_hListenSocket; - public ulong m_steamIDRemote; - public int m_eSNetSocketState; -} -[StructLayout(LayoutKind.Sequential)] public struct ScreenshotReady_t -{ - public uint m_hLocal; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public float m_flNewVolume; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bShuffled; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bLooped; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public float m_flNewVolume; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public int nID; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public int nID; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public int m_nPlayingRepeatStatus; -} -[StructLayout(LayoutKind.Sequential)] public struct HTTPRequestCompleted_t -{ - public uint m_hRequest; - public ulong m_ulContextValue; - [MarshalAs(UnmanagedType.I1)] - public bool m_bRequestSuccessful; - public EHTTPStatusCode m_eStatusCode; - public uint m_unBodySize; -} -[StructLayout(LayoutKind.Sequential)] public struct HTTPRequestHeadersReceived_t -{ - public uint m_hRequest; - public ulong m_ulContextValue; -} -[StructLayout(LayoutKind.Sequential)] public struct HTTPRequestDataReceived_t -{ - public uint m_hRequest; - public ulong m_ulContextValue; - public uint m_cOffset; - public uint m_cBytesReceived; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamUnifiedMessagesSendMethodResult_t -{ - public ulong m_hHandle; - public ulong m_unContext; - public EResult m_eResult; - public uint m_unResponseSize; -} -[StructLayout(LayoutKind.Sequential)] public struct ControllerAnalogActionData_t -{ - public EControllerSourceMode eMode; - public float x; - public float y; - [MarshalAs(UnmanagedType.I1)] - public bool bActive; -} -[StructLayout(LayoutKind.Sequential)] public struct ControllerDigitalActionData_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool bState; - [MarshalAs(UnmanagedType.I1)] - public bool bActive; -} -[StructLayout(LayoutKind.Sequential)] public struct ControllerMotionData_t -{ - public float rotQuatX; - public float rotQuatY; - public float rotQuatZ; - public float rotQuatW; - public float posAccelX; - public float posAccelY; - public float posAccelZ; - public float rotVelX; - public float rotVelY; - public float rotVelZ; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamUGCDetails_t -{ - public ulong m_nPublishedFileId; - public EResult m_eResult; - public EWorkshopFileType m_eFileType; - public uint m_nCreatorAppID; - public uint m_nConsumerAppID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] - public string m_rgchTitle; //char[129] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8000)] - public string m_rgchDescription; //char[8000] - public ulong m_ulSteamIDOwner; - public uint m_rtimeCreated; - public uint m_rtimeUpdated; - public uint m_rtimeAddedToUserList; - public ERemoteStoragePublishedFileVisibility m_eVisibility; - [MarshalAs(UnmanagedType.I1)] - public bool m_bBanned; - [MarshalAs(UnmanagedType.I1)] - public bool m_bAcceptedForUse; - [MarshalAs(UnmanagedType.I1)] - public bool m_bTagsTruncated; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1025)] - public string m_rgchTags; //char[1025] - public ulong m_hFile; - public ulong m_hPreviewFile; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_pchFileName; //char[260] - public int m_nFileSize; - public int m_nPreviewFileSize; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_rgchURL; //char[256] - public uint m_unVotesUp; - public uint m_unVotesDown; - public float m_flScore; - public uint m_unNumChildren; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamUGCQueryCompleted_t -{ - public ulong m_handle; - public EResult m_eResult; - public uint m_unNumResultsReturned; - public uint m_unTotalMatchingResults; - [MarshalAs(UnmanagedType.I1)] - public bool m_bCachedData; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamUGCRequestUGCDetailsResult_t -{ - public SteamUGCDetails_t m_details; - [MarshalAs(UnmanagedType.I1)] - public bool m_bCachedData; -} -[StructLayout(LayoutKind.Sequential)] public struct CreateItemResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; -} -[StructLayout(LayoutKind.Sequential)] public struct SubmitItemUpdateResult_t -{ - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; -} -[StructLayout(LayoutKind.Sequential)] public struct DownloadItemResult_t -{ - public uint m_unAppID; - public ulong m_nPublishedFileId; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct UserFavoriteItemsListChanged_t -{ - public ulong m_nPublishedFileId; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bWasAddRequest; -} -[StructLayout(LayoutKind.Sequential)] public struct SetUserItemVoteResult_t -{ - public ulong m_nPublishedFileId; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVoteUp; -} -[StructLayout(LayoutKind.Sequential)] public struct GetUserItemVoteResult_t -{ - public ulong m_nPublishedFileId; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVotedUp; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVotedDown; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVoteSkipped; -} -[StructLayout(LayoutKind.Sequential)] public struct StartPlaytimeTrackingResult_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct StopPlaytimeTrackingResult_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_BrowserReady_t -{ - public uint unBrowserHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_NeedsPaint_t -{ - public uint unBrowserHandle; - public IntPtr pBGRA; // const char * - public uint unWide; - public uint unTall; - public uint unUpdateX; - public uint unUpdateY; - public uint unUpdateWide; - public uint unUpdateTall; - public uint unScrollX; - public uint unScrollY; - public float flPageScale; - public uint unPageSerial; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_StartRequest_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * - public IntPtr pchTarget; // const char * - public IntPtr pchPostData; // const char * - [MarshalAs(UnmanagedType.I1)] - public bool bIsRedirect; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_CloseBrowser_t -{ - public uint unBrowserHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_URLChanged_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * - public IntPtr pchPostData; // const char * - [MarshalAs(UnmanagedType.I1)] - public bool bIsRedirect; - public IntPtr pchPageTitle; // const char * - [MarshalAs(UnmanagedType.I1)] - public bool bNewNavigation; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_FinishedRequest_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * - public IntPtr pchPageTitle; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_OpenLinkInNewTab_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_ChangedTitle_t -{ - public uint unBrowserHandle; - public IntPtr pchTitle; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_SearchResults_t -{ - public uint unBrowserHandle; - public uint unResults; - public uint unCurrentMatch; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_CanGoBackAndForward_t -{ - public uint unBrowserHandle; - [MarshalAs(UnmanagedType.I1)] - public bool bCanGoBack; - [MarshalAs(UnmanagedType.I1)] - public bool bCanGoForward; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_HorizontalScroll_t -{ - public uint unBrowserHandle; - public uint unScrollMax; - public uint unScrollCurrent; - public float flPageScale; - [MarshalAs(UnmanagedType.I1)] - public bool bVisible; - public uint unPageSize; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_VerticalScroll_t -{ - public uint unBrowserHandle; - public uint unScrollMax; - public uint unScrollCurrent; - public float flPageScale; - [MarshalAs(UnmanagedType.I1)] - public bool bVisible; - public uint unPageSize; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_LinkAtPosition_t -{ - public uint unBrowserHandle; - public uint x; - public uint y; - public IntPtr pchURL; // const char * - [MarshalAs(UnmanagedType.I1)] - public bool bInput; - [MarshalAs(UnmanagedType.I1)] - public bool bLiveLink; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_JSAlert_t -{ - public uint unBrowserHandle; - public IntPtr pchMessage; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_JSConfirm_t -{ - public uint unBrowserHandle; - public IntPtr pchMessage; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_FileOpenDialog_t -{ - public uint unBrowserHandle; - public IntPtr pchTitle; // const char * - public IntPtr pchInitialFile; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_NewWindow_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * - public uint unX; - public uint unY; - public uint unWide; - public uint unTall; - public uint unNewWindow_BrowserHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_SetCursor_t -{ - public uint unBrowserHandle; - public uint eMouseCursor; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_StatusText_t -{ - public uint unBrowserHandle; - public IntPtr pchMsg; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_ShowToolTip_t -{ - public uint unBrowserHandle; - public IntPtr pchMsg; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_UpdateToolTip_t -{ - public uint unBrowserHandle; - public IntPtr pchMsg; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_HideToolTip_t -{ - public uint unBrowserHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamItemDetails_t -{ - public ulong m_itemId; - public int m_iDefinition; - public char m_unQuantity; - public char m_unFlags; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamInventoryResultReady_t -{ - public int m_handle; - public EResult m_result; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamInventoryFullUpdate_t -{ - public int m_handle; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public EBroadcastUploadResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public EResult m_eResult; - public uint m_unVideoAppID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_rgchURL; //char[256] -} -[StructLayout(LayoutKind.Sequential)] public struct CSteamAPIContext -{ - public IntPtr m_pSteamClient; // class ISteamClient * - public IntPtr m_pSteamUser; // class ISteamUser * - public IntPtr m_pSteamFriends; // class ISteamFriends * - public IntPtr m_pSteamUtils; // class ISteamUtils * - public IntPtr m_pSteamMatchmaking; // class ISteamMatchmaking * - public IntPtr m_pSteamUserStats; // class ISteamUserStats * - public IntPtr m_pSteamApps; // class ISteamApps * - public IntPtr m_pSteamMatchmakingServers; // class ISteamMatchmakingServers * - public IntPtr m_pSteamNetworking; // class ISteamNetworking * - public IntPtr m_pSteamRemoteStorage; // class ISteamRemoteStorage * - public IntPtr m_pSteamScreenshots; // class ISteamScreenshots * - public IntPtr m_pSteamHTTP; // class ISteamHTTP * - public IntPtr m_pSteamUnifiedMessages; // class ISteamUnifiedMessages * - public IntPtr m_pController; // class ISteamController * - public IntPtr m_pSteamUGC; // class ISteamUGC * - public IntPtr m_pSteamAppList; // class ISteamAppList * - public IntPtr m_pSteamMusic; // class ISteamMusic * - public IntPtr m_pSteamMusicRemote; // class ISteamMusicRemote * - public IntPtr m_pSteamHTMLSurface; // class ISteamHTMLSurface * - public IntPtr m_pSteamInventory; // class ISteamInventory * - public IntPtr m_pSteamVideo; // class ISteamVideo * -} -[StructLayout(LayoutKind.Sequential)] public struct CCallbackBase -{ - public byte m_nCallbackFlags; - public int m_iCallback; -} -[StructLayout(LayoutKind.Sequential)] public struct CCallResult -{ - public ulong m_hAPICall; - public IntPtr m_pObj; // T * - public IntPtr m_Func; -} -[StructLayout(LayoutKind.Sequential)] public struct CCallback -{ - public IntPtr m_pObj; // T * - public IntPtr m_Func; -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientApprove_t -{ - public ulong m_SteamID; - public ulong m_OwnerSteamID; -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientDeny_t -{ - public ulong m_SteamID; - public EDenyReason m_eDenyReason; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_rgchOptionalText; //char[128] -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientKick_t -{ - public ulong m_SteamID; - public EDenyReason m_eDenyReason; -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientAchievementStatus_t -{ - public ulong m_SteamID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_pchAchievement; //char[128] - [MarshalAs(UnmanagedType.I1)] - public bool m_bUnlocked; -} -[StructLayout(LayoutKind.Sequential)] public struct GSPolicyResponse_t -{ - public byte m_bSecure; -} -[StructLayout(LayoutKind.Sequential)] public struct GSGameplayStats_t -{ - public EResult m_eResult; - public int m_nRank; - public uint m_unTotalConnects; - public uint m_unTotalMinutesPlayed; -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientGroupStatus_t -{ - public ulong m_SteamIDUser; - public ulong m_SteamIDGroup; - [MarshalAs(UnmanagedType.I1)] - public bool m_bMember; - [MarshalAs(UnmanagedType.I1)] - public bool m_bOfficer; -} -[StructLayout(LayoutKind.Sequential)] public struct GSReputation_t -{ - public EResult m_eResult; - public uint m_unReputationScore; - [MarshalAs(UnmanagedType.I1)] - public bool m_bBanned; - public uint m_unBannedIP; - public char m_usBannedPort; - public ulong m_ulBannedGameID; - public uint m_unBanExpires; -} -[StructLayout(LayoutKind.Sequential)] public struct AssociateWithClanResult_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct ComputeNewPlayerCompatibilityResult_t -{ - public EResult m_eResult; - public int m_cPlayersThatDontLikeCandidate; - public int m_cPlayersThatCandidateDoesntLike; - public int m_cClanPlayersThatDontLikeCandidate; - public ulong m_SteamIDCandidate; -} -[StructLayout(LayoutKind.Sequential)] public struct GSStatsReceived_t -{ - public EResult m_eResult; - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct GSStatsStored_t -{ - public EResult m_eResult; - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct GSStatsUnloaded_t -{ - public ulong m_steamIDUser; -} - -public class SteamAPI -{ -public static void Init(uint appId) -{ -SteamAPIInterop.SteamAPI_RestartAppIfNecessary (appId); -SteamAPIInterop.SteamAPI_Init (); -} - -public static void RunCallbacks() -{ -SteamAPIInterop.SteamAPI_RunCallbacks (); -} - -public static void RegisterCallback(IntPtr pCallback, int iCallback) -{ -SteamAPIInterop.SteamAPI_RegisterCallback (pCallback, iCallback); -} - -public static void UnregisterCallback(IntPtr pCallback) -{ -SteamAPIInterop.SteamAPI_UnregisterCallback (pCallback); -} - -public const int k_iSteamUserCallbacks = 100; -public const int k_iSteamGameServerCallbacks = 200; -public const int k_iSteamFriendsCallbacks = 300; -public const int k_iSteamBillingCallbacks = 400; -public const int k_iSteamMatchmakingCallbacks = 500; -public const int k_iSteamContentServerCallbacks = 600; -public const int k_iSteamUtilsCallbacks = 700; -public const int k_iClientFriendsCallbacks = 800; -public const int k_iClientUserCallbacks = 900; -public const int k_iSteamAppsCallbacks = 1000; -public const int k_iSteamUserStatsCallbacks = 1100; -public const int k_iSteamNetworkingCallbacks = 1200; -public const int k_iClientRemoteStorageCallbacks = 1300; -public const int k_iClientDepotBuilderCallbacks = 1400; -public const int k_iSteamGameServerItemsCallbacks = 1500; -public const int k_iClientUtilsCallbacks = 1600; -public const int k_iSteamGameCoordinatorCallbacks = 1700; -public const int k_iSteamGameServerStatsCallbacks = 1800; -public const int k_iSteam2AsyncCallbacks = 1900; -public const int k_iSteamGameStatsCallbacks = 2000; -public const int k_iClientHTTPCallbacks = 2100; -public const int k_iClientScreenshotsCallbacks = 2200; -public const int k_iSteamScreenshotsCallbacks = 2300; -public const int k_iClientAudioCallbacks = 2400; -public const int k_iClientUnifiedMessagesCallbacks = 2500; -public const int k_iSteamStreamLauncherCallbacks = 2600; -public const int k_iClientControllerCallbacks = 2700; -public const int k_iSteamControllerCallbacks = 2800; -public const int k_iClientParentalSettingsCallbacks = 2900; -public const int k_iClientDeviceAuthCallbacks = 3000; -public const int k_iClientNetworkDeviceManagerCallbacks = 3100; -public const int k_iClientMusicCallbacks = 3200; -public const int k_iClientRemoteClientManagerCallbacks = 3300; -public const int k_iClientUGCCallbacks = 3400; -public const int k_iSteamStreamClientCallbacks = 3500; -public const int k_IClientProductBuilderCallbacks = 3600; -public const int k_iClientShortcutsCallbacks = 3700; -public const int k_iClientRemoteControlManagerCallbacks = 3800; -public const int k_iSteamAppListCallbacks = 3900; -public const int k_iSteamMusicCallbacks = 4000; -public const int k_iSteamMusicRemoteCallbacks = 4100; -public const int k_iClientVRCallbacks = 4200; -public const int k_iClientGameNotificationCallbacks = 4300; -public const int k_iSteamGameNotificationCallbacks = 4400; -public const int k_iSteamHTMLSurfaceCallbacks = 4500; -public const int k_iClientVideoCallbacks = 4600; -public const int k_iClientInventoryCallbacks = 4700; -public const int k_iClientBluetoothManagerCallbacks = 4800; -public const int k_cchPersonaNameMax = 128; -public const int k_cwchPersonaNameMax = 32; -public const int k_cchMaxRichPresenceKeys = 20; -public const int k_cchMaxRichPresenceKeyLength = 64; -public const int k_cchMaxRichPresenceValueLength = 256; -public const int k_cchStatNameMax = 128; -public const int k_cchLeaderboardNameMax = 128; -public const int k_cLeaderboardDetailsMax = 64; -public const ulong k_InvalidUnifiedMessageHandle = 0; -public const ulong k_SteamItemInstanceIDInvalid = 0xffffffffffffffff; -public const int k_SteamInventoryResultInvalid = -1; -public static ISteamClient SteamClient() -{ -return new CSteamClient(SteamAPIInterop.SteamClient()); -} - -public static ISteamUser SteamUser() -{ -return new CSteamUser(SteamAPIInterop.SteamUser()); -} - -public static ISteamFriends SteamFriends() -{ -return new CSteamFriends(SteamAPIInterop.SteamFriends()); -} - -public static ISteamUtils SteamUtils() -{ -return new CSteamUtils(SteamAPIInterop.SteamUtils()); -} - -public static ISteamMatchmaking SteamMatchmaking() -{ -return new CSteamMatchmaking(SteamAPIInterop.SteamMatchmaking()); -} - -public static ISteamMatchmakingServerListResponse SteamMatchmakingServerListResponse() -{ -return new CSteamMatchmakingServerListResponse(SteamAPIInterop.SteamMatchmakingServerListResponse()); -} - -public static ISteamMatchmakingPingResponse SteamMatchmakingPingResponse() -{ -return new CSteamMatchmakingPingResponse(SteamAPIInterop.SteamMatchmakingPingResponse()); -} - -public static ISteamMatchmakingPlayersResponse SteamMatchmakingPlayersResponse() -{ -return new CSteamMatchmakingPlayersResponse(SteamAPIInterop.SteamMatchmakingPlayersResponse()); -} - -public static ISteamMatchmakingRulesResponse SteamMatchmakingRulesResponse() -{ -return new CSteamMatchmakingRulesResponse(SteamAPIInterop.SteamMatchmakingRulesResponse()); -} - -public static ISteamMatchmakingServers SteamMatchmakingServers() -{ -return new CSteamMatchmakingServers(SteamAPIInterop.SteamMatchmakingServers()); -} - -public static ISteamRemoteStorage SteamRemoteStorage() -{ -return new CSteamRemoteStorage(SteamAPIInterop.SteamRemoteStorage()); -} - -public static ISteamUserStats SteamUserStats() -{ -return new CSteamUserStats(SteamAPIInterop.SteamUserStats()); -} - -public static ISteamApps SteamApps() -{ -return new CSteamApps(SteamAPIInterop.SteamApps()); -} - -public static ISteamNetworking SteamNetworking() -{ -return new CSteamNetworking(SteamAPIInterop.SteamNetworking()); -} - -public static ISteamScreenshots SteamScreenshots() -{ -return new CSteamScreenshots(SteamAPIInterop.SteamScreenshots()); -} - -public static ISteamMusic SteamMusic() -{ -return new CSteamMusic(SteamAPIInterop.SteamMusic()); -} - -public static ISteamMusicRemote SteamMusicRemote() -{ -return new CSteamMusicRemote(SteamAPIInterop.SteamMusicRemote()); -} - -public static ISteamHTTP SteamHTTP() -{ -return new CSteamHTTP(SteamAPIInterop.SteamHTTP()); -} - -public static ISteamUnifiedMessages SteamUnifiedMessages() -{ -return new CSteamUnifiedMessages(SteamAPIInterop.SteamUnifiedMessages()); -} - -public static ISteamController SteamController() -{ -return new CSteamController(SteamAPIInterop.SteamController()); -} - -public static ISteamUGC SteamUGC() -{ -return new CSteamUGC(SteamAPIInterop.SteamUGC()); -} - -public static ISteamAppList SteamAppList() -{ -return new CSteamAppList(SteamAPIInterop.SteamAppList()); -} - -public static ISteamHTMLSurface SteamHTMLSurface() -{ -return new CSteamHTMLSurface(SteamAPIInterop.SteamHTMLSurface()); -} - -public static ISteamInventory SteamInventory() -{ -return new CSteamInventory(SteamAPIInterop.SteamInventory()); -} - -public static ISteamVideo SteamVideo() -{ -return new CSteamVideo(SteamAPIInterop.SteamVideo()); -} - -public static ISteamGameServer SteamGameServer() -{ -return new CSteamGameServer(SteamAPIInterop.SteamGameServer()); -} - -public static ISteamGameServerStats SteamGameServerStats() -{ -return new CSteamGameServerStats(SteamAPIInterop.SteamGameServerStats()); -} - -} - - - -} - diff --git a/lib/osx/include/steam/steam_gameserver.h b/lib/osx/include/steam/steam_gameserver.h index f2d2847..f3873db 100644 --- a/lib/osx/include/steam/steam_gameserver.h +++ b/lib/osx/include/steam/steam_gameserver.h @@ -22,24 +22,46 @@ enum EServerMode eServerModeAuthenticationAndSecure = 3, // Authenticate users, list on the server list and VAC protect clients }; -// Initialize ISteamGameServer interface object, and set server properties which may not be changed. +/// Pass to SteamGameServer_Init to indicate that the same UDP port will be used for game traffic +/// UDP queries for server browser pings and LAN discovery. In this case, Steam will not open up a +/// socket to handle server browser queries, and you must use ISteamGameServer::HandleIncomingPacket +/// and ISteamGameServer::GetNextOutgoingPacket to handle packets related to server discovery on your socket. +const uint16 STEAMGAMESERVER_QUERY_PORT_SHARED = 0xffff; + +// DEPRECATED: This old name was really confusing. +const uint16 MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE = STEAMGAMESERVER_QUERY_PORT_SHARED; + +// Initialize SteamGameServer client and interface objects, and set server properties which may not be changed. // // After calling this function, you should set any additional server parameters, and then // call ISteamGameServer::LogOnAnonymous() or ISteamGameServer::LogOn() // -// - usSteamPort is the local port used to communicate with the steam servers. -// - usGamePort is the port that clients will connect to for gameplay. +// - unIP will usually be zero. If you are on a machine with multiple IP addresses, you can pass a non-zero +// value here and the relevant sockets will be bound to that IP. This can be used to ensure that +// the IP you desire is the one used in the server browser. +// - usGamePort is the port that clients will connect to for gameplay. You will usually open up your +// own socket bound to this port. // - usQueryPort is the port that will manage server browser related duties and info -// pings from clients. If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE for usQueryPort, then it +// pings from clients. If you pass STEAMGAMESERVER_QUERY_PORT_SHARED for usQueryPort, then it // will use "GameSocketShare" mode, which means that the game is responsible for sending and receiving -// UDP packets for the master server updater. See references to GameSocketShare in isteamgameserver.h. -// - The version string is usually in the form x.x.x.x, and is used by the master server to detect when the +// UDP packets for the master server updater. (See ISteamGameServer::HandleIncomingPacket and +// ISteamGameServer::GetNextOutgoingPacket.) +// - The version string should be in the form x.x.x.x, and is used by the master server to detect when the // server is out of date. (Only servers with the latest version will be listed.) +// +// On success k_ESteamAPIInitResult_OK is returned. Otherwise, if pOutErrMsg is non-NULL, +// it will receive a non-localized message that explains the reason for the failure +inline ESteamAPIInitResult SteamGameServer_InitEx( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString, SteamErrMsg *pOutErrMsg ); -inline bool SteamGameServer_Init( uint32 unIP, uint16 usSteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ); +// This function is included for compatibility with older SDK. +// You can use it if you don't care about decent error handling +inline bool SteamGameServer_Init( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ) +{ + return SteamGameServer_InitEx( unIP, usGamePort, usQueryPort, eServerMode, pchVersionString, NULL ) == k_ESteamAPIInitResult_OK; +} +// Shutdown SteamGameSeverXxx interfaces, log out, and free resources. S_API void SteamGameServer_Shutdown(); -S_API void SteamGameServer_RunCallbacks(); // Most Steam API functions allocate some amount of thread-local memory for // parameter storage. Calling SteamGameServer_ReleaseCurrentThreadMemory() @@ -51,52 +73,6 @@ inline void SteamGameServer_ReleaseCurrentThreadMemory(); S_API bool SteamGameServer_BSecure(); S_API uint64 SteamGameServer_GetSteamID(); -// If your application contains modules which could be built against different Steamworks SDK -// versions, then you should define VERSION_SAFE_STEAM_API_INTERFACES to enforce that you cannot -// use the version-less global accessors. Instead, create and use CSteamGameServerAPIContext -// objects to retrieve interface pointers which are appropriate for your Steamworks SDK headers. -#if !defined( VERSION_SAFE_STEAM_API_INTERFACES ) && !defined( STEAM_API_EXPORTS ) -inline ISteamClient *SteamGameServerClient(); -inline ISteamGameServer *SteamGameServer(); -inline ISteamUtils *SteamGameServerUtils(); -inline ISteamNetworking *SteamGameServerNetworking(); -inline ISteamGameServerStats *SteamGameServerStats(); -inline ISteamHTTP *SteamGameServerHTTP(); -inline ISteamInventory *SteamGameServerInventory(); -inline ISteamUGC *SteamGameServerUGC(); -inline ISteamApps *SteamGameServerApps(); -#endif - -class CSteamGameServerAPIContext -{ -public: - CSteamGameServerAPIContext() { Clear(); } - inline void Clear(); - inline bool Init(); - - ISteamClient *SteamClient() const { return m_pSteamClient; } - ISteamGameServer *SteamGameServer() const { return m_pSteamGameServer; } - ISteamUtils *SteamGameServerUtils() const { return m_pSteamGameServerUtils; } - ISteamNetworking *SteamGameServerNetworking() const { return m_pSteamGameServerNetworking; } - ISteamGameServerStats *SteamGameServerStats() const { return m_pSteamGameServerStats; } - ISteamHTTP *SteamHTTP() const { return m_pSteamHTTP; } - ISteamInventory *SteamInventory() const { return m_pSteamInventory; } - ISteamUGC *SteamUGC() const { return m_pSteamUGC; } - ISteamApps *SteamApps() const { return m_pSteamApps; } - -private: - ISteamClient *m_pSteamClient; - ISteamGameServer *m_pSteamGameServer; - ISteamUtils *m_pSteamGameServerUtils; - ISteamNetworking *m_pSteamGameServerNetworking; - ISteamGameServerStats *m_pSteamGameServerStats; - ISteamHTTP *m_pSteamHTTP; - ISteamInventory *m_pSteamInventory; - ISteamUGC *m_pSteamUGC; - ISteamApps *m_pSteamApps; -}; - - // Older SDKs exported this global pointer, but it is no longer supported. // You should use SteamGameServerClient() or CSteamGameServerAPIContext to // safely access the ISteamClient APIs from your game server application. @@ -106,129 +82,53 @@ private: // is no longer supported. Use SteamGameServer_Init instead. //S_API void S_CALLTYPE SteamGameServer_InitSafe(); - -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -// These macros are similar to the STEAM_CALLBACK_* macros in steam_api.h, but only trigger for gameserver callbacks -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -#define STEAM_GAMESERVER_CALLBACK( thisclass, func, /*callback_type, [deprecated] var*/... ) \ - _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, GS, 3 ), ( this->SetGameserverFlag();, thisclass, func, __VA_ARGS__ ) ) - -#define STEAM_GAMESERVER_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ - CCallbackManual< thisclass, callback_type, true > var; void func( callback_type *pParam ) - - -#define _STEAM_CALLBACK_GS( _, thisclass, func, param, var ) \ - CCallback< thisclass, param, true > var; void func( param *pParam ) - -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -// steamclient.dll private wrapper functions +//============================================================================= // -// The following functions are part of abstracting API access to the steamclient.dll, but should only be used in very specific cases -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -S_API HSteamPipe S_CALLTYPE SteamGameServer_GetHSteamPipe(); -S_API HSteamUser S_CALLTYPE SteamGameServer_GetHSteamUser(); -S_API bool S_CALLTYPE SteamInternal_GameServer_Init( uint32 unIP, uint16 usPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ); - - -#if !defined( VERSION_SAFE_STEAM_API_INTERFACES ) && !defined( STEAM_API_EXPORTS ) -inline CSteamGameServerAPIContext& SteamGameServerInternal_ModuleContext() -{ - // NOTE: declaring "static CSteamAPIConext" creates a large function - // which queries the initialization status of the object. We know that - // it is pointer-aligned and fully memset with zeros, so just alias a - // static buffer of the appropriate size and call it a CSteamAPIContext. - static void* ctx[ sizeof(CSteamGameServerAPIContext)/sizeof(void*) ]; - return *(CSteamGameServerAPIContext*)ctx; -} -#define _STEAMINTERNAL_ACCESSOR_BODY( AccessFunc ) \ - if ( !SteamGameServer_GetHSteamPipe() ) return 0; \ - CSteamGameServerAPIContext &ctx = SteamGameServerInternal_ModuleContext(); \ - if ( !ctx.AccessFunc() ) ctx.Init(); \ - return ctx.AccessFunc(); - -inline ISteamClient *SteamGameServerClient() { _STEAMINTERNAL_ACCESSOR_BODY( SteamClient ) } -inline ISteamGameServer *SteamGameServer() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServer ) } -inline ISteamUtils *SteamGameServerUtils() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServerUtils ) } -inline ISteamNetworking *SteamGameServerNetworking() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServerNetworking ) } -inline ISteamGameServerStats *SteamGameServerStats() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServerStats ) } -inline ISteamHTTP *SteamGameServerHTTP() { _STEAMINTERNAL_ACCESSOR_BODY( SteamHTTP ) } -inline ISteamInventory *SteamGameServerInventory() { _STEAMINTERNAL_ACCESSOR_BODY( SteamInventory ) } -inline ISteamUGC *SteamGameServerUGC() { _STEAMINTERNAL_ACCESSOR_BODY( SteamUGC ) } -inline ISteamApps *SteamGameServerApps() { _STEAMINTERNAL_ACCESSOR_BODY( SteamApps ) } -#undef _STEAMINTERNAL_ACCESSOR_BODY -#endif // !defined( VERSION_SAFE_STEAM_API_INTERFACES ) && !defined( STEAM_API_EXPORTS ) - - -inline void CSteamGameServerAPIContext::Clear() -{ - m_pSteamClient = NULL; - m_pSteamGameServer = NULL; - m_pSteamGameServerUtils = NULL; - m_pSteamGameServerNetworking = NULL; - m_pSteamGameServerStats = NULL; - m_pSteamHTTP = NULL; - m_pSteamInventory = NULL; - m_pSteamUGC = NULL; - m_pSteamApps = NULL; -} +// Internal implementation details below +// +//============================================================================= +#ifndef STEAM_API_EXPORTS // This function must be declared inline in the header so the module using steam_api.dll gets the version names they want. inline bool CSteamGameServerAPIContext::Init() { - HSteamUser hSteamUser = SteamGameServer_GetHSteamUser(); - HSteamPipe hSteamPipe = SteamGameServer_GetHSteamPipe(); - if ( !hSteamPipe ) - return false; - - m_pSteamClient = (ISteamClient*) SteamInternal_CreateInterface( STEAMCLIENT_INTERFACE_VERSION ); + m_pSteamClient = ::SteamGameServerClient(); if ( !m_pSteamClient ) return false; - - m_pSteamGameServer = m_pSteamClient->GetISteamGameServer( hSteamUser, hSteamPipe, STEAMGAMESERVER_INTERFACE_VERSION ); - if ( !m_pSteamGameServer ) - return false; - m_pSteamGameServerUtils = m_pSteamClient->GetISteamUtils( hSteamPipe, STEAMUTILS_INTERFACE_VERSION ); - if ( !m_pSteamGameServerUtils ) - return false; - - m_pSteamGameServerNetworking = m_pSteamClient->GetISteamNetworking( hSteamUser, hSteamPipe, STEAMNETWORKING_INTERFACE_VERSION ); - if ( !m_pSteamGameServerNetworking ) - return false; - - m_pSteamGameServerStats = m_pSteamClient->GetISteamGameServerStats( hSteamUser, hSteamPipe, STEAMGAMESERVERSTATS_INTERFACE_VERSION ); - if ( !m_pSteamGameServerStats ) - return false; - - m_pSteamHTTP = m_pSteamClient->GetISteamHTTP( hSteamUser, hSteamPipe, STEAMHTTP_INTERFACE_VERSION ); - if ( !m_pSteamHTTP ) - return false; - - m_pSteamInventory = m_pSteamClient->GetISteamInventory( hSteamUser, hSteamPipe, STEAMINVENTORY_INTERFACE_VERSION ); - if ( !m_pSteamInventory ) - return false; - - m_pSteamUGC = m_pSteamClient->GetISteamUGC( hSteamUser, hSteamPipe, STEAMUGC_INTERFACE_VERSION ); - if ( !m_pSteamUGC ) - return false; - - m_pSteamApps = m_pSteamClient->GetISteamApps( hSteamUser, hSteamPipe, STEAMAPPS_INTERFACE_VERSION ); - if ( !m_pSteamApps ) + m_pSteamGameServer = ::SteamGameServer(); + m_pSteamGameServerUtils = ::SteamGameServerUtils(); + m_pSteamGameServerNetworking = ::SteamGameServerNetworking(); + m_pSteamGameServerStats = ::SteamGameServerStats(); + m_pSteamHTTP = ::SteamGameServerHTTP(); + m_pSteamInventory = ::SteamGameServerInventory(); + m_pSteamUGC = ::SteamGameServerUGC(); + if ( !m_pSteamGameServer || !m_pSteamGameServerUtils || !m_pSteamGameServerNetworking || !m_pSteamGameServerStats + || !m_pSteamHTTP || !m_pSteamInventory || !m_pSteamUGC ) return false; return true; } +#endif - -inline bool SteamGameServer_Init( uint32 unIP, uint16 usSteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ) +S_API ESteamAPIInitResult S_CALLTYPE SteamInternal_GameServer_Init_V2( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString, const char *pszInternalCheckInterfaceVersions, SteamErrMsg *pOutErrMsg ); +inline ESteamAPIInitResult SteamGameServer_InitEx( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString, SteamErrMsg *pOutErrMsg ) { - if ( !SteamInternal_GameServer_Init( unIP, usSteamPort, usGamePort, usQueryPort, eServerMode, pchVersionString ) ) - return false; + const char *pszInternalCheckInterfaceVersions = + STEAMUTILS_INTERFACE_VERSION "\0" + STEAMNETWORKINGUTILS_INTERFACE_VERSION "\0" - return true; + STEAMGAMESERVER_INTERFACE_VERSION "\0" + STEAMGAMESERVERSTATS_INTERFACE_VERSION "\0" + STEAMHTTP_INTERFACE_VERSION "\0" + STEAMINVENTORY_INTERFACE_VERSION "\0" + STEAMNETWORKING_INTERFACE_VERSION "\0" + STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "\0" + STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "\0" + STEAMUGC_INTERFACE_VERSION "\0" + "\0"; + return SteamInternal_GameServer_Init_V2( unIP, usGamePort, usQueryPort, eServerMode, pchVersionString, pszInternalCheckInterfaceVersions, pOutErrMsg ); } - - inline void SteamGameServer_ReleaseCurrentThreadMemory() { SteamAPI_ReleaseCurrentThreadMemory(); diff --git a/lib/osx/include/steam/steamclientpublic.h b/lib/osx/include/steam/steamclientpublic.h index 8d89376..5cf5d4d 100644 --- a/lib/osx/include/steam/steamclientpublic.h +++ b/lib/osx/include/steam/steamclientpublic.h @@ -1,23 +1,11 @@ //========= Copyright � 1996-2008, Valve LLC, All rights reserved. ============ // -// Purpose: +// Declare common types used by the Steamworks SDK. // //============================================================================= #ifndef STEAMCLIENTPUBLIC_H #define STEAMCLIENTPUBLIC_H -#ifdef _WIN32 -#pragma once -#endif -//lint -save -e1931 -e1927 -e1924 -e613 -e726 - -// This header file defines the interface between the calling application and the code that -// knows how to communicate with the connection manager (CM) from the Steam service - -// This header file is intended to be portable; ideally this 1 header file plus a lib or dll -// is all you need to integrate the client library into some other tree. So please avoid -// including or requiring other header files if possible. This header should only describe the -// interface layer, no need to include anything about the implementation. #include "steamtypes.h" #include "steamuniverse.h" @@ -25,6 +13,7 @@ // General result codes enum EResult { + k_EResultNone = 0, // no result k_EResultOK = 1, // success k_EResultFail = 2, // generic failure k_EResultNoConnection = 3, // no/failed network connection @@ -90,7 +79,7 @@ enum EResult k_EResultAccountLogonDenied = 63, // account login denied due to 2nd factor authentication failure k_EResultCannotUseOldPassword = 64, // The requested new password is not legal k_EResultInvalidLoginAuthCode = 65, // account login denied due to auth code invalid - k_EResultAccountLogonDeniedNoMail = 66, // account login denied due to 2nd factor auth failure - and no mail has been sent + k_EResultAccountLogonDeniedNoMail = 66, // account login denied due to 2nd factor auth failure - and no mail has been sent - partner site specific k_EResultHardwareNotCapableOfIPT = 67, // k_EResultIPTInitError = 68, // k_EResultParentalControlRestricted = 69, // operation failed due to parental control restrictions for current user @@ -131,6 +120,29 @@ enum EResult k_EResultInvalidItemType = 104, // the type of thing we were requested to act on is invalid k_EResultIPBanned = 105, // the ip address has been banned from taking this action k_EResultGSLTExpired = 106, // this token has expired from disuse; can be reset for use + k_EResultInsufficientFunds = 107, // user doesn't have enough wallet funds to complete the action + k_EResultTooManyPending = 108, // There are too many of this thing pending already + k_EResultNoSiteLicensesFound = 109, // No site licenses found + k_EResultWGNetworkSendExceeded = 110, // the WG couldn't send a response because we exceeded max network send size + k_EResultAccountNotFriends = 111, // the user is not mutually friends + k_EResultLimitedUserAccount = 112, // the user is limited + k_EResultCantRemoveItem = 113, // item can't be removed + k_EResultAccountDeleted = 114, // account has been deleted + k_EResultExistingUserCancelledLicense = 115, // A license for this already exists, but cancelled + k_EResultCommunityCooldown = 116, // access is denied because of a community cooldown (probably from support profile data resets) + k_EResultNoLauncherSpecified = 117, // No launcher was specified, but a launcher was needed to choose correct realm for operation. + k_EResultMustAgreeToSSA = 118, // User must agree to china SSA or global SSA before login + k_EResultLauncherMigrated = 119, // The specified launcher type is no longer supported; the user should be directed elsewhere + k_EResultSteamRealmMismatch = 120, // The user's realm does not match the realm of the requested resource + k_EResultInvalidSignature = 121, // signature check did not match + k_EResultParseFailure = 122, // Failed to parse input + k_EResultNoVerifiedPhone = 123, // account does not have a verified phone number + k_EResultInsufficientBattery = 124, // user device doesn't have enough battery charge currently to complete the action + k_EResultChargerRequired = 125, // The operation requires a charger to be plugged in, which wasn't present + k_EResultCachedCredentialInvalid = 126, // Cached credential was invalid - user must reauthenticate + K_EResultPhoneNumberIsVOIP = 127, // The phone number provided is a Voice Over IP number + k_EResultNotSupported = 128, // The data being accessed is not supported by this API + k_EResultFamilySizeLimitExceeded = 129, // Reached the maximum size of the family }; // Error codes for use with the voice functions @@ -198,6 +210,7 @@ enum EAuthSessionResponse k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed = 7, // This ticket has already been used, it is not valid. k_EAuthSessionResponseAuthTicketInvalid = 8, // This ticket is not from a user instance currently connected to steam. k_EAuthSessionResponsePublisherIssuedBan = 9, // The user is banned for this game. The ban came via the web api and not VAC + k_EAuthSessionResponseAuthTicketNetworkIdentityFailure = 10, // The network identity in the ticket does not match the server authenticating the ticket }; // results from UserHasLicenseForApp @@ -230,93 +243,6 @@ enum EAccountType -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -enum EAppReleaseState -{ - k_EAppReleaseState_Unknown = 0, // unknown, required appinfo or license info is missing - k_EAppReleaseState_Unavailable = 1, // even if user 'just' owns it, can see game at all - k_EAppReleaseState_Prerelease = 2, // can be purchased and is visible in games list, nothing else. Common appInfo section released - k_EAppReleaseState_PreloadOnly = 3, // owners can preload app, not play it. AppInfo fully released. - k_EAppReleaseState_Released = 4, // owners can download and play app. -}; - - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -enum EAppOwnershipFlags -{ - k_EAppOwnershipFlags_None = 0x0000, // unknown - k_EAppOwnershipFlags_OwnsLicense = 0x0001, // owns license for this game - k_EAppOwnershipFlags_FreeLicense = 0x0002, // not paid for game - k_EAppOwnershipFlags_RegionRestricted = 0x0004, // owns app, but not allowed to play in current region - k_EAppOwnershipFlags_LowViolence = 0x0008, // only low violence version - k_EAppOwnershipFlags_InvalidPlatform = 0x0010, // app not supported on current platform - k_EAppOwnershipFlags_SharedLicense = 0x0020, // license was granted by authorized local device - k_EAppOwnershipFlags_FreeWeekend = 0x0040, // owned by a free weekend licenses - k_EAppOwnershipFlags_RetailLicense = 0x0080, // has a retail license for game, (CD-Key etc) - k_EAppOwnershipFlags_LicenseLocked = 0x0100, // shared license is locked (in use) by other user - k_EAppOwnershipFlags_LicensePending = 0x0200, // owns app, but transaction is still pending. Can't install or play - k_EAppOwnershipFlags_LicenseExpired = 0x0400, // doesn't own app anymore since license expired - k_EAppOwnershipFlags_LicensePermanent = 0x0800, // permanent license, not borrowed, or guest or freeweekend etc - k_EAppOwnershipFlags_LicenseRecurring = 0x1000, // Recurring license, user is charged periodically - k_EAppOwnershipFlags_LicenseCanceled = 0x2000, // Mark as canceled, but might be still active if recurring - k_EAppOwnershipFlags_AutoGrant = 0x4000, // Ownership is based on any kind of autogrant license - k_EAppOwnershipFlags_PendingGift = 0x8000, // user has pending gift to redeem - k_EAppOwnershipFlags_RentalNotActivated = 0x10000, // Rental hasn't been activated yet - k_EAppOwnershipFlags_Rental = 0x20000, // Is a rental -}; - - -//----------------------------------------------------------------------------- -// Purpose: designed as flags to allow filters masks -//----------------------------------------------------------------------------- -enum EAppType -{ - k_EAppType_Invalid = 0x000, // unknown / invalid - k_EAppType_Game = 0x001, // playable game, default type - k_EAppType_Application = 0x002, // software application - k_EAppType_Tool = 0x004, // SDKs, editors & dedicated servers - k_EAppType_Demo = 0x008, // game demo - k_EAppType_Media_DEPRECATED = 0x010, // legacy - was used for game trailers, which are now just videos on the web - k_EAppType_DLC = 0x020, // down loadable content - k_EAppType_Guide = 0x040, // game guide, PDF etc - k_EAppType_Driver = 0x080, // hardware driver updater (ATI, Razor etc) - k_EAppType_Config = 0x100, // hidden app used to config Steam features (backpack, sales, etc) - k_EAppType_Hardware = 0x200, // a hardware device (Steam Machine, Steam Controller, Steam Link, etc.) - k_EAppType_Franchise = 0x400, // A hub for collections of multiple apps, eg films, series, games - k_EAppType_Video = 0x800, // A video component of either a Film or TVSeries (may be the feature, an episode, preview, making-of, etc) - k_EAppType_Plugin = 0x1000, // Plug-in types for other Apps - k_EAppType_Music = 0x2000, // Music files - k_EAppType_Series = 0x4000, // Container app for video series - - k_EAppType_Shortcut = 0x40000000, // just a shortcut, client side only - k_EAppType_DepotOnly = 0x80000000, // placeholder since depots and apps share the same namespace -}; - - - -//----------------------------------------------------------------------------- -// types of user game stats fields -// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE -//----------------------------------------------------------------------------- -enum ESteamUserStatType -{ - k_ESteamUserStatTypeINVALID = 0, - k_ESteamUserStatTypeINT = 1, - k_ESteamUserStatTypeFLOAT = 2, - // Read as FLOAT, set with count / session length - k_ESteamUserStatTypeAVGRATE = 3, - k_ESteamUserStatTypeACHIEVEMENTS = 4, - k_ESteamUserStatTypeGROUPACHIEVEMENTS = 5, - - // max, for sanity checks - k_ESteamUserStatTypeMAX -}; - - //----------------------------------------------------------------------------- // Purpose: Chat Entry Types (previously was only friend-to-friend message types) //----------------------------------------------------------------------------- @@ -360,18 +286,13 @@ enum EChatRoomEnterResponse // k_EChatRoomEnterResponseNoRankingDataLobby = 12, // No longer used // k_EChatRoomEnterResponseNoRankingDataUser = 13, // No longer used // k_EChatRoomEnterResponseRankOutOfRange = 14, // No longer used + k_EChatRoomEnterResponseRatelimitExceeded = 15, // Join failed - to many join attempts in a very short period of time }; -typedef void (*PFNLegacyKeyRegistration)( const char *pchCDKey, const char *pchInstallPath ); -typedef bool (*PFNLegacyKeyInstalled)(); - const unsigned int k_unSteamAccountIDMask = 0xFFFFFFFF; const unsigned int k_unSteamAccountInstanceMask = 0x000FFFFF; -// we allow 3 simultaneous user account instances right now, 1= desktop, 2 = console, 4 = web, 0 = all -const unsigned int k_unSteamUserDesktopInstance = 1; -const unsigned int k_unSteamUserConsoleInstance = 2; -const unsigned int k_unSteamUserWebInstance = 4; +const unsigned int k_unSteamUserDefaultInstance = 1; // fixed instance for all individual users // Special flags for Chat accounts - they go in the top 8 bits // of the steam ID's "instance", leaving 12 for the actual instances @@ -387,31 +308,12 @@ enum EChatSteamIDInstanceFlags }; -//----------------------------------------------------------------------------- -// Purpose: Marketing message flags that change how a client should handle them -//----------------------------------------------------------------------------- -enum EMarketingMessageFlags -{ - k_EMarketingMessageFlagsNone = 0, - k_EMarketingMessageFlagsHighPriority = 1 << 0, - k_EMarketingMessageFlagsPlatformWindows = 1 << 1, - k_EMarketingMessageFlagsPlatformMac = 1 << 2, - k_EMarketingMessageFlagsPlatformLinux = 1 << 3, - - //aggregate flags - k_EMarketingMessageFlagsPlatformRestrictions = - k_EMarketingMessageFlagsPlatformWindows | - k_EMarketingMessageFlagsPlatformMac | - k_EMarketingMessageFlagsPlatformLinux, -}; - - - //----------------------------------------------------------------------------- // Purpose: Possible positions to tell the overlay to show notifications in //----------------------------------------------------------------------------- enum ENotificationPosition { + k_EPositionInvalid = -1, k_EPositionTopLeft = 0, k_EPositionTopRight = 1, k_EPositionBottomLeft = 2, @@ -438,113 +340,127 @@ enum EBroadcastUploadResult k_EBroadcastUploadResultMissingAudio = 11, // client failed to send audio data k_EBroadcastUploadResultTooFarBehind = 12, // clients was too slow uploading k_EBroadcastUploadResultTranscodeBehind = 13, // server failed to keep up with transcode + k_EBroadcastUploadResultNotAllowedToPlay = 14, // Broadcast does not have permissions to play game + k_EBroadcastUploadResultBusy = 15, // RTMP host to busy to take new broadcast stream, choose another + k_EBroadcastUploadResultBanned = 16, // Account banned from community broadcast + k_EBroadcastUploadResultAlreadyActive = 17, // We already already have an stream running. + k_EBroadcastUploadResultForcedOff = 18, // We explicitly shutting down a broadcast + k_EBroadcastUploadResultAudioBehind = 19, // Audio stream was too far behind video + k_EBroadcastUploadResultShutdown = 20, // Broadcast Server was shut down + k_EBroadcastUploadResultDisconnect = 21, // broadcast uploader TCP disconnected + k_EBroadcastUploadResultVideoInitFailed = 22, // invalid video settings + k_EBroadcastUploadResultAudioInitFailed = 23, // invalid audio settings }; //----------------------------------------------------------------------------- -// Purpose: codes for well defined launch options +// Purpose: Reasons a user may not use the Community Market. +// Used in MarketEligibilityResponse_t. //----------------------------------------------------------------------------- -enum ELaunchOptionType +enum EMarketNotAllowedReasonFlags { - k_ELaunchOptionType_None = 0, // unknown what launch option does - k_ELaunchOptionType_Default = 1, // runs the game, app, whatever in default mode - k_ELaunchOptionType_SafeMode = 2, // runs the game in safe mode - k_ELaunchOptionType_Multiplayer = 3, // runs the game in multiplayer mode - k_ELaunchOptionType_Config = 4, // runs config tool for this game - k_ELaunchOptionType_OpenVR = 5, // runs game in VR mode using OpenVR - k_ELaunchOptionType_Server = 6, // runs dedicated server for this game - k_ELaunchOptionType_Editor = 7, // runs game editor - k_ELaunchOptionType_Manual = 8, // shows game manual - k_ELaunchOptionType_Benchmark = 9, // runs game benchmark - k_ELaunchOptionType_Option1 = 10, // generic run option, uses description field for game name - k_ELaunchOptionType_Option2 = 11, // generic run option, uses description field for game name - k_ELaunchOptionType_Option3 = 12, // generic run option, uses description field for game name - k_ELaunchOptionType_OculusVR = 13, // runs game in VR mode using the Oculus SDK - k_ELaunchOptionType_OpenVROverlay = 14, // runs an OpenVR dashboard overlay - k_ELaunchOptionType_OSVR = 15, // runs game in VR mode using the OSVR SDK + k_EMarketNotAllowedReason_None = 0, + // A back-end call failed or something that might work again on retry + k_EMarketNotAllowedReason_TemporaryFailure = (1 << 0), + + // Disabled account + k_EMarketNotAllowedReason_AccountDisabled = (1 << 1), + + // Locked account + k_EMarketNotAllowedReason_AccountLockedDown = (1 << 2), + + // Limited account (no purchases) + k_EMarketNotAllowedReason_AccountLimited = (1 << 3), + + // The account is banned from trading items + k_EMarketNotAllowedReason_TradeBanned = (1 << 4), + + // Wallet funds aren't tradable because the user has had no purchase + // activity in the last year or has had no purchases prior to last month + k_EMarketNotAllowedReason_AccountNotTrusted = (1 << 5), + + // The user doesn't have Steam Guard enabled + k_EMarketNotAllowedReason_SteamGuardNotEnabled = (1 << 6), + + // The user has Steam Guard, but it hasn't been enabled for the required + // number of days + k_EMarketNotAllowedReason_SteamGuardOnlyRecentlyEnabled = (1 << 7), + + // The user has recently forgotten their password and reset it + k_EMarketNotAllowedReason_RecentPasswordReset = (1 << 8), + + // The user has recently funded his or her wallet with a new payment method + k_EMarketNotAllowedReason_NewPaymentMethod = (1 << 9), + + // An invalid cookie was sent by the user + k_EMarketNotAllowedReason_InvalidCookie = (1 << 10), + + // The user has Steam Guard, but is using a new computer or web browser + k_EMarketNotAllowedReason_UsingNewDevice = (1 << 11), + + // The user has recently refunded a store purchase by his or herself + k_EMarketNotAllowedReason_RecentSelfRefund = (1 << 12), + + // The user has recently funded his or her wallet with a new payment method that cannot be verified + k_EMarketNotAllowedReason_NewPaymentMethodCannotBeVerified = (1 << 13), + + // Not only is the account not trusted, but they have no recent purchases at all + k_EMarketNotAllowedReason_NoRecentPurchases = (1 << 14), + + // User accepted a wallet gift that was recently purchased + k_EMarketNotAllowedReason_AcceptedWalletGift = (1 << 15), +}; + + +// +// describes XP / progress restrictions to apply for games with duration control / +// anti-indulgence enabled for minor Steam China users. +// +// WARNING: DO NOT RENUMBER +enum EDurationControlProgress +{ + k_EDurationControlProgress_Full = 0, // Full progress + k_EDurationControlProgress_Half = 1, // deprecated - XP or persistent rewards should be halved + k_EDurationControlProgress_None = 2, // deprecated - XP or persistent rewards should be stopped + + k_EDurationControl_ExitSoon_3h = 3, // allowed 3h time since 5h gap/break has elapsed, game should exit - steam will terminate the game soon + k_EDurationControl_ExitSoon_5h = 4, // allowed 5h time in calendar day has elapsed, game should exit - steam will terminate the game soon + k_EDurationControl_ExitSoon_Night = 5, // game running after day period, game should exit - steam will terminate the game soon +}; + + +// +// describes which notification timer has expired, for steam china duration control feature +// +// WARNING: DO NOT RENUMBER +enum EDurationControlNotification +{ + k_EDurationControlNotification_None = 0, // just informing you about progress, no notification to show + k_EDurationControlNotification_1Hour = 1, // "you've been playing for N hours" - k_ELaunchOptionType_Dialog = 1000, // show launch options dialog + k_EDurationControlNotification_3Hours = 2, // deprecated - "you've been playing for 3 hours; take a break" + k_EDurationControlNotification_HalfProgress = 3,// deprecated - "your XP / progress is half normal" + k_EDurationControlNotification_NoProgress = 4, // deprecated - "your XP / progress is zero" + + k_EDurationControlNotification_ExitSoon_3h = 5, // allowed 3h time since 5h gap/break has elapsed, game should exit - steam will terminate the game soon + k_EDurationControlNotification_ExitSoon_5h = 6, // allowed 5h time in calendar day has elapsed, game should exit - steam will terminate the game soon + k_EDurationControlNotification_ExitSoon_Night = 7,// game running after day period, game should exit - steam will terminate the game soon }; -//----------------------------------------------------------------------------- -// Purpose: true if this launch option is any of the vr launching types -//----------------------------------------------------------------------------- -static inline bool BIsVRLaunchOptionType( const ELaunchOptionType eType ) +// +// Specifies a game's online state in relation to duration control +// +enum EDurationControlOnlineState { - return eType == k_ELaunchOptionType_OpenVR - || eType == k_ELaunchOptionType_OpenVROverlay - || eType == k_ELaunchOptionType_OculusVR - || eType == k_ELaunchOptionType_OSVR; -} - - -//----------------------------------------------------------------------------- -// Purpose: code points for VR HMD vendors and models -// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN A DATABASE -//----------------------------------------------------------------------------- -enum EVRHMDType -{ - k_eEVRHMDType_None = -1, // unknown vendor and model - - k_eEVRHMDType_Unknown = 0, // unknown vendor and model - - k_eEVRHMDType_HTC_Dev = 1, // original HTC dev kits - k_eEVRHMDType_HTC_VivePre = 2, // htc vive pre - k_eEVRHMDType_HTC_Vive = 3, // htc vive consumer release - - k_eEVRHMDType_HTC_Unknown = 20, // unknown htc hmd - - k_eEVRHMDType_Oculus_DK1 = 21, // Oculus DK1 - k_eEVRHMDType_Oculus_DK2 = 22, // Oculus DK2 - k_eEVRHMDType_Oculus_Rift = 23, // Oculus rift - - k_eEVRHMDType_Oculus_Unknown = 40, // // Oculus unknown HMD + k_EDurationControlOnlineState_Invalid = 0, // nil value + k_EDurationControlOnlineState_Offline = 1, // currently in offline play - single-player, offline co-op, etc. + k_EDurationControlOnlineState_Online = 2, // currently in online play + k_EDurationControlOnlineState_OnlineHighPri = 3, // currently in online play and requests not to be interrupted }; -//----------------------------------------------------------------------------- -// Purpose: Steam Controller models -// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN A DATABASE -//----------------------------------------------------------------------------- -enum EControllerType -{ - k_eControllerType_None = -1, - k_eControllerType_Unknown = 0, - - // Steam Controllers - k_eControllerType_UnknownSteamController = 1, - k_eControllerType_SteamController = 2, - - // Other Controllers - k_eControllerType_UnknownNonSteamController = 30, - k_eControllerType_XBox360Controller = 31, - k_eControllerType_XBoxOneController = 32, - k_eControllerType_PS3Controller = 33, - k_eControllerType_PS4Controller = 34, - k_eControllerType_WiiController = 35, - k_eControllerType_AppleController = 36 -}; - -//----------------------------------------------------------------------------- -// Purpose: true if this is from an Oculus HMD -//----------------------------------------------------------------------------- -static inline bool BIsOculusHMD( EVRHMDType eType ) -{ - return eType == k_eEVRHMDType_Oculus_DK1 || eType == k_eEVRHMDType_Oculus_DK2 || eType == k_eEVRHMDType_Oculus_Rift || eType == k_eEVRHMDType_Oculus_Unknown; -} - - -//----------------------------------------------------------------------------- -// Purpose: true if this is from an Vive HMD -//----------------------------------------------------------------------------- -static inline bool BIsViveHMD( EVRHMDType eType ) -{ - return eType == k_eEVRHMDType_HTC_Dev || eType == k_eEVRHMDType_HTC_VivePre || eType == k_eEVRHMDType_HTC_Vive || eType == k_eEVRHMDType_HTC_Unknown; -} - - #pragma pack( push, 1 ) #define CSTEAMID_DEFINED @@ -588,7 +504,7 @@ public: CSteamID( uint32 unAccountID, unsigned int unAccountInstance, EUniverse eUniverse, EAccountType eAccountType ) { #if defined(_SERVER) && defined(Assert) - Assert( ! ( ( k_EAccountTypeIndividual == eAccountType ) && ( unAccountInstance > k_unSteamUserWebInstance ) ) ); // enforce that for individual accounts, instance is always 1 + Assert( ( k_EAccountTypeIndividual != eAccountType ) || ( unAccountInstance == k_unSteamUserDefaultInstance ) ); // enforce that for individual accounts, instance is always 1 #endif // _SERVER InstancedSet( unAccountID, unAccountInstance, eUniverse, eAccountType ); } @@ -630,8 +546,7 @@ public: } else { - // by default we pick the desktop instance - m_steamid.m_comp.m_unAccountInstance = k_unSteamUserDesktopInstance; + m_steamid.m_comp.m_unAccountInstance = k_unSteamUserDefaultInstance; } } @@ -685,37 +600,6 @@ public: m_steamid.m_comp.m_unAccountInstance = 0; } - -#if defined( INCLUDED_STEAM2_USERID_STRUCTS ) - //----------------------------------------------------------------------------- - // Purpose: Initializes a steam ID from a Steam2 ID structure - // Input: pTSteamGlobalUserID - Steam2 ID to convert - // eUniverse - universe this ID belongs to - //----------------------------------------------------------------------------- - void SetFromSteam2( TSteamGlobalUserID *pTSteamGlobalUserID, EUniverse eUniverse ) - { - m_steamid.m_comp.m_unAccountID = pTSteamGlobalUserID->m_SteamLocalUserID.Split.Low32bits * 2 + - pTSteamGlobalUserID->m_SteamLocalUserID.Split.High32bits; - m_steamid.m_comp.m_EUniverse = eUniverse; // set the universe - m_steamid.m_comp.m_EAccountType = k_EAccountTypeIndividual; // Steam 2 accounts always map to account type of individual - m_steamid.m_comp.m_unAccountInstance = k_unSteamUserDesktopInstance; // Steam2 only knew desktop instances - } - - //----------------------------------------------------------------------------- - // Purpose: Fills out a Steam2 ID structure - // Input: pTSteamGlobalUserID - Steam2 ID to write to - //----------------------------------------------------------------------------- - void ConvertToSteam2( TSteamGlobalUserID *pTSteamGlobalUserID ) const - { - // only individual accounts have any meaning in Steam 2, only they can be mapped - // Assert( m_steamid.m_comp.m_EAccountType == k_EAccountTypeIndividual ); - - pTSteamGlobalUserID->m_SteamInstanceID = 0; - pTSteamGlobalUserID->m_SteamLocalUserID.Split.High32bits = m_steamid.m_comp.m_unAccountID % 2; - pTSteamGlobalUserID->m_SteamLocalUserID.Split.Low32bits = m_steamid.m_comp.m_unAccountID / 2; - } -#endif // defined( INCLUDED_STEAM_COMMON_STEAMCOMMON_H ) - //----------------------------------------------------------------------------- // Purpose: Converts steam ID to its 64-bit representation // Output : 64-bit representation of a Steam ID @@ -867,8 +751,7 @@ public: // simple accessors void SetAccountID( uint32 unAccountID ) { m_steamid.m_comp.m_unAccountID = unAccountID; } void SetAccountInstance( uint32 unInstance ){ m_steamid.m_comp.m_unAccountInstance = unInstance; } - void ClearIndividualInstance() { if ( BIndividualAccount() ) m_steamid.m_comp.m_unAccountInstance = 0; } - bool HasNoIndividualInstance() const { return BIndividualAccount() && (m_steamid.m_comp.m_unAccountInstance==0); } + AccountID_t GetAccountID() const { return m_steamid.m_comp.m_unAccountID; } uint32 GetUnAccountInstance() const { return m_steamid.m_comp.m_unAccountInstance; } EAccountType GetEAccountType() const { return ( EAccountType ) m_steamid.m_comp.m_EAccountType; } @@ -888,7 +771,6 @@ public: // and is preferred when the caller knows it's safe to be strict. // Returns whether the string parsed correctly. bool SetFromStringStrict( const char *pchSteamID, EUniverse eDefaultUniverse ); - bool SetFromSteam2String( const char *pchSteam2ID, EUniverse eUniverse ); inline bool operator==( const CSteamID &val ) const { return m_steamid.m_unAll64Bits == val.m_steamid.m_unAll64Bits; } inline bool operator!=( const CSteamID &val ) const { return !operator==( val ); } @@ -938,7 +820,7 @@ inline bool CSteamID::IsValid() const if ( m_steamid.m_comp.m_EAccountType == k_EAccountTypeIndividual ) { - if ( m_steamid.m_comp.m_unAccountID == 0 || m_steamid.m_comp.m_unAccountInstance > k_unSteamUserWebInstance ) + if ( m_steamid.m_comp.m_unAccountID == 0 || m_steamid.m_comp.m_unAccountInstance != k_unSteamUserDefaultInstance ) return false; } @@ -957,6 +839,41 @@ inline bool CSteamID::IsValid() const return true; } +#if defined( INCLUDED_STEAM2_USERID_STRUCTS ) + +//----------------------------------------------------------------------------- +// Purpose: Initializes a steam ID from a Steam2 ID structure +// Input: pTSteamGlobalUserID - Steam2 ID to convert +// eUniverse - universe this ID belongs to +//----------------------------------------------------------------------------- +inline CSteamID SteamIDFromSteam2UserID( TSteamGlobalUserID *pTSteamGlobalUserID, EUniverse eUniverse ) +{ + uint32 unAccountID = pTSteamGlobalUserID->m_SteamLocalUserID.Split.Low32bits * 2 + + pTSteamGlobalUserID->m_SteamLocalUserID.Split.High32bits; + + return CSteamID( unAccountID, k_unSteamUserDefaultInstance, eUniverse, k_EAccountTypeIndividual ); +} + +bool SteamIDFromSteam2String( const char *pchSteam2ID, EUniverse eUniverse, CSteamID *pSteamIDOut ); + +//----------------------------------------------------------------------------- +// Purpose: Fills out a Steam2 ID structure +// Input: pTSteamGlobalUserID - Steam2 ID to write to +//----------------------------------------------------------------------------- +inline TSteamGlobalUserID SteamIDToSteam2UserID( CSteamID steamID ) +{ + TSteamGlobalUserID steamGlobalUserID; + + steamGlobalUserID.m_SteamInstanceID = 0; + steamGlobalUserID.m_SteamLocalUserID.Split.High32bits = steamID.GetAccountID() % 2; + steamGlobalUserID.m_SteamLocalUserID.Split.Low32bits = steamID.GetAccountID() / 2; + + return steamGlobalUserID; +} + + +#endif + // generic invalid CSteamID #define k_steamIDNil CSteamID() @@ -995,6 +912,14 @@ class CGameID { public: + enum EGameIDType + { + k_EGameIDTypeApp = 0, + k_EGameIDTypeGameMod = 1, + k_EGameIDTypeShortcut = 2, + k_EGameIDTypeP2P = 3, + }; + CGameID() { m_gameID.m_nType = k_EGameIDTypeApp; @@ -1025,12 +950,23 @@ public: m_gameID.m_nAppID = nAppID; } - CGameID( uint32 nAppID, uint32 nModID ) + // Not validating anything .. use IsValid() + explicit CGameID( uint32 nAppID, uint32 nModID, CGameID::EGameIDType nType ) { - m_ulGameID = 0; m_gameID.m_nAppID = nAppID; m_gameID.m_nModID = nModID; - m_gameID.m_nType = k_EGameIDTypeGameMod; + m_gameID.m_nType = nType; + } + + CGameID( const CGameID &that ) + { + m_ulGameID = that.m_ulGameID; + } + + CGameID& operator=( const CGameID & that ) + { + m_ulGameID = that.m_ulGameID; + return *this; } // Hidden functions used only by Steam @@ -1038,72 +974,6 @@ public: const char *Render() const; // render this Game ID to string static const char *Render( uint64 ulGameID ); // static method to render a uint64 representation of a Game ID to a string - // must include checksum_crc.h first to get this functionality -#if defined( CHECKSUM_CRC_H ) - CGameID( uint32 nAppID, const char *pchModPath ) - { - m_ulGameID = 0; - m_gameID.m_nAppID = nAppID; - m_gameID.m_nType = k_EGameIDTypeGameMod; - - char rgchModDir[MAX_PATH]; - V_FileBase( pchModPath, rgchModDir, sizeof( rgchModDir ) ); - CRC32_t crc32; - CRC32_Init( &crc32 ); - CRC32_ProcessBuffer( &crc32, rgchModDir, V_strlen( rgchModDir ) ); - CRC32_Final( &crc32 ); - - // set the high-bit on the mod-id - // reduces crc32 to 31bits, but lets us use the modID as a guaranteed unique - // replacement for appID's - m_gameID.m_nModID = crc32 | (0x80000000); - } - - CGameID( const char *pchExePath, const char *pchAppName ) - { - m_ulGameID = 0; - m_gameID.m_nAppID = k_uAppIdInvalid; - m_gameID.m_nType = k_EGameIDTypeShortcut; - - CRC32_t crc32; - CRC32_Init( &crc32 ); - if ( pchExePath ) - CRC32_ProcessBuffer( &crc32, pchExePath, V_strlen( pchExePath ) ); - if ( pchAppName ) - CRC32_ProcessBuffer( &crc32, pchAppName, V_strlen( pchAppName ) ); - CRC32_Final( &crc32 ); - - // set the high-bit on the mod-id - // reduces crc32 to 31bits, but lets us use the modID as a guaranteed unique - // replacement for appID's - m_gameID.m_nModID = crc32 | (0x80000000); - } - -#if defined( VSTFILEID_H ) - - CGameID( VstFileID vstFileID ) - { - m_ulGameID = 0; - m_gameID.m_nAppID = k_uAppIdInvalid; - m_gameID.m_nType = k_EGameIDTypeP2P; - - CRC32_t crc32; - CRC32_Init( &crc32 ); - const char *pchFileId = vstFileID.Render(); - CRC32_ProcessBuffer( &crc32, pchFileId, V_strlen( pchFileId ) ); - CRC32_Final( &crc32 ); - - // set the high-bit on the mod-id - // reduces crc32 to 31bits, but lets us use the modID as a guaranteed unique - // replacement for appID's - m_gameID.m_nModID = crc32 | (0x80000000); - } - -#endif /* VSTFILEID_H */ - -#endif /* CHECKSUM_CRC_H */ - - uint64 ToUint64() const { return m_ulGameID; @@ -1144,10 +1014,14 @@ public: return m_gameID.m_nModID; } - uint32 AppID() const +#if !defined(VALVE_SHORTCUT_DEBUG) + uint32 AppID( bool = false ) const { return m_gameID.m_nAppID; } +#else + uint32 AppID( bool bShortcutOK = false ) const; +#endif bool operator == ( const CGameID &rhs ) const { @@ -1173,18 +1047,17 @@ public: return m_gameID.m_nAppID != k_uAppIdInvalid; case k_EGameIDTypeGameMod: - return m_gameID.m_nAppID != k_uAppIdInvalid && m_gameID.m_nModID & 0x80000000; + return m_gameID.m_nAppID != k_uAppIdInvalid && (m_gameID.m_nModID & 0x80000000); case k_EGameIDTypeShortcut: - return (m_gameID.m_nModID & 0x80000000) != 0; + return m_gameID.m_nAppID == k_uAppIdInvalid + && (m_gameID.m_nModID & 0x80000000) + && m_gameID.m_nModID >= (5000 | 0x80000000); // k_unMaxExpectedLocalAppId - shortcuts are pushed beyond that range case k_EGameIDTypeP2P: - return m_gameID.m_nAppID == k_uAppIdInvalid && m_gameID.m_nModID & 0x80000000; + return m_gameID.m_nAppID == k_uAppIdInvalid && (m_gameID.m_nModID & 0x80000000); default: -#if defined(Assert) - Assert(false); -#endif return false; } @@ -1195,17 +1068,9 @@ public: m_ulGameID = 0; } - - -private: - - enum EGameIDType - { - k_EGameIDTypeApp = 0, - k_EGameIDTypeGameMod = 1, - k_EGameIDTypeShortcut = 2, - k_EGameIDTypeP2P = 3, - }; +// +// Internal stuff. Use the accessors above if possible +// struct GameID_t { @@ -1225,6 +1090,8 @@ private: uint64 m_ulGameID; GameID_t m_gameID; }; + + friend CGameID GameIDFromAppAndModPath( uint32 nAppID, const char *pchModPath ); }; #pragma pack( pop ) @@ -1232,24 +1099,90 @@ private: const int k_cchGameExtraInfoMax = 64; -//----------------------------------------------------------------------------- -// Constants used for query ports. -//----------------------------------------------------------------------------- - -#define QUERY_PORT_NOT_INITIALIZED 0xFFFF // We haven't asked the GS for this query port's actual value yet. -#define QUERY_PORT_ERROR 0xFFFE // We were unable to get the query port for this server. - - //----------------------------------------------------------------------------- // Purpose: Passed as argument to SteamAPI_UseBreakpadCrashHandler to enable optional callback // just before minidump file is captured after a crash has occurred. (Allows app to append additional comment data to the dump, etc.) //----------------------------------------------------------------------------- typedef void (*PFNPreMinidumpCallback)(void *context); -//----------------------------------------------------------------------------- -// Purpose: Used by ICrashHandler interfaces to reference particular installed crash handlers -//----------------------------------------------------------------------------- -typedef void *BREAKPAD_HANDLE; -#define BREAKPAD_INVALID_HANDLE (BREAKPAD_HANDLE)0 +enum EGameSearchErrorCode_t +{ + k_EGameSearchErrorCode_OK = 1, + k_EGameSearchErrorCode_Failed_Search_Already_In_Progress = 2, + k_EGameSearchErrorCode_Failed_No_Search_In_Progress = 3, + k_EGameSearchErrorCode_Failed_Not_Lobby_Leader = 4, // if not the lobby leader can not call SearchForGameWithLobby + k_EGameSearchErrorCode_Failed_No_Host_Available = 5, // no host is available that matches those search params + k_EGameSearchErrorCode_Failed_Search_Params_Invalid = 6, // search params are invalid + k_EGameSearchErrorCode_Failed_Offline = 7, // offline, could not communicate with server + k_EGameSearchErrorCode_Failed_NotAuthorized = 8, // either the user or the application does not have priveledges to do this + k_EGameSearchErrorCode_Failed_Unknown_Error = 9, // unknown error +}; + +enum EPlayerResult_t +{ + k_EPlayerResultFailedToConnect = 1, // failed to connect after confirming + k_EPlayerResultAbandoned = 2, // quit game without completing it + k_EPlayerResultKicked = 3, // kicked by other players/moderator/server rules + k_EPlayerResultIncomplete = 4, // player stayed to end but game did not conclude successfully ( nofault to player ) + k_EPlayerResultCompleted = 5, // player completed game +}; + + +enum ESteamIPv6ConnectivityProtocol +{ + k_ESteamIPv6ConnectivityProtocol_Invalid = 0, + k_ESteamIPv6ConnectivityProtocol_HTTP = 1, // because a proxy may make this different than other protocols + k_ESteamIPv6ConnectivityProtocol_UDP = 2, // test UDP connectivity. Uses a port that is commonly needed for other Steam stuff. If UDP works, TCP probably works. +}; + +// For the above transport protocol, what do we think the local machine's connectivity to the internet over ipv6 is like +enum ESteamIPv6ConnectivityState +{ + k_ESteamIPv6ConnectivityState_Unknown = 0, // We haven't run a test yet + k_ESteamIPv6ConnectivityState_Good = 1, // We have recently been able to make a request on ipv6 for the given protocol + k_ESteamIPv6ConnectivityState_Bad = 2, // We failed to make a request, either because this machine has no ipv6 address assigned, or it has no upstream connectivity +}; + + +// Define compile time assert macros to let us validate the structure sizes. +#define VALVE_COMPILE_TIME_ASSERT( pred ) typedef char compile_time_assert_type[(pred) ? 1 : -1]; + +#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) +// The 32-bit version of gcc has the alignment requirement for uint64 and double set to +// 4 meaning that even with #pragma pack(8) these types will only be four-byte aligned. +// The 64-bit version of gcc has the alignment requirement for these types set to +// 8 meaning that unless we use #pragma pack(4) our structures will get bigger. +// The 64-bit structure packing has to match the 32-bit structure packing for each platform. +#define VALVE_CALLBACK_PACK_SMALL +#else +#define VALVE_CALLBACK_PACK_LARGE +#endif + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error ??? +#endif + +typedef struct ValvePackingSentinel_t +{ + uint32 m_u32; + uint64 m_u64; + uint16 m_u16; + double m_d; +} ValvePackingSentinel_t; + +#pragma pack( pop ) + + +#if defined(VALVE_CALLBACK_PACK_SMALL) +VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 24 ) +#elif defined(VALVE_CALLBACK_PACK_LARGE) +VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 32 ) +#else +#error ??? +#endif #endif // STEAMCLIENTPUBLIC_H diff --git a/lib/osx/include/steam/steamencryptedappticket.h b/lib/osx/include/steam/steamencryptedappticket.h index 48c63b4..4419a0b 100644 --- a/lib/osx/include/steam/steamencryptedappticket.h +++ b/lib/osx/include/steam/steamencryptedappticket.h @@ -29,4 +29,12 @@ S_API bool SteamEncryptedAppTicket_BUserOwnsAppInTicket( uint8 *rgubTicketDecryp S_API bool SteamEncryptedAppTicket_BUserIsVacBanned( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); -S_API const uint8 *SteamEncryptedAppTicket_GetUserVariableData( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pcubUserData ); \ No newline at end of file +S_API bool SteamEncryptedAppTicket_BGetAppDefinedValue( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pValue ); + +S_API const uint8 *SteamEncryptedAppTicket_GetUserVariableData( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pcubUserData ); + +S_API bool SteamEncryptedAppTicket_BIsTicketSigned( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, const uint8 *pubRSAKey, uint32 cubRSAKey ); + +S_API bool SteamEncryptedAppTicket_BIsLicenseBorrowed( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); + +S_API bool SteamEncryptedAppTicket_BIsLicenseTemporary( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); diff --git a/lib/osx/include/steam/steamhttpenums.h b/lib/osx/include/steam/steamhttpenums.h index d95f195..3592116 100644 --- a/lib/osx/include/steam/steamhttpenums.h +++ b/lib/osx/include/steam/steamhttpenums.h @@ -62,6 +62,7 @@ enum EHTTPStatusCode k_EHTTPStatusCode305UseProxy = 305, //k_EHTTPStatusCode306Unused = 306, (used in old HTTP spec, now unused in 1.1) k_EHTTPStatusCode307TemporaryRedirect = 307, + k_EHTTPStatusCode308PermanentRedirect = 308, // Error codes k_EHTTPStatusCode400BadRequest = 400, @@ -84,6 +85,7 @@ enum EHTTPStatusCode k_EHTTPStatusCode417ExpectationFailed = 417, k_EHTTPStatusCode4xxUnknown = 418, // 418 is reserved, so we'll use it to mean unknown k_EHTTPStatusCode429TooManyRequests = 429, + k_EHTTPStatusCode444ConnectionClosed = 444, // nginx only? // Server error codes k_EHTTPStatusCode500InternalServerError = 500, @@ -95,4 +97,9 @@ enum EHTTPStatusCode k_EHTTPStatusCode5xxUnknown = 599, }; +inline bool BIsHTTPStatusSuccess( EHTTPStatusCode eStatus ) +{ + return eStatus >= 200 && eStatus <= 299; +} + #endif // STEAMHTTPENUMS_H \ No newline at end of file diff --git a/lib/osx/include/steam/steamnetworkingfakeip.h b/lib/osx/include/steam/steamnetworkingfakeip.h new file mode 100644 index 0000000..89ebd10 --- /dev/null +++ b/lib/osx/include/steam/steamnetworkingfakeip.h @@ -0,0 +1,135 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== + +#ifndef STEAMNETWORKINGFAKEIP_H +#define STEAMNETWORKINGFAKEIP_H +#pragma once + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +// It is HIGHLY recommended to limit messages sent via Fake UDP port to this +// value. The purpose of a Fake UDP port is to make porting ordinary ad-hoc UDP +// code easier. Although the real MTU might be higher than this, this particular +// conservative value is chosen so that fragmentation won't be occurring and +// hiding performance problems from you. +constexpr int k_cbSteamNetworkingSocketsFakeUDPPortRecommendedMTU = 1200; + +// Messages larger than this size are not allowed and cannot be sent +// via Fake UDP port. +constexpr int k_cbSteamNetworkingSocketsFakeUDPPortMaxMessageSize = 4096; + +//----------------------------------------------------------------------------- +/// ISteamNetworkingFakeUDPPort +/// +/// Acts like a UDP port, sending and receiving datagrams addressed using +/// FakeIP addresses. +/// +/// See: ISteamNetworkingSockets::CreateFakeUDPPort + +class ISteamNetworkingFakeUDPPort +{ +public: + /// Destroy the object and cleanup any internal connections. + /// Note that this function call is not threadsafe with respect + /// to any other method of this interface. (However, in general + /// all other operations are threadsafe with respect to each other.) + virtual void DestroyFakeUDPPort() = 0; + + /// Send a datagram to the specified FakeIP. + /// + /// See ISteamNetworkingSockets::SendMessageToConnection for the meaning of + /// nSendFlags and possible return codes. + /// + /// Notes: + /// - datagrams larger than the underlying MTU are supported, but + /// reliable messages (k_nSteamNetworkingSend_Reliable) are not supported. + /// - You will usually want to use k_nSteamNetworkingSend_NoNagle + /// - k_EResultBusy is returned if this is a "server" port and the global + /// allocation has not yet completed. + /// - k_EResultIPNotFound will be returned if the address is a local/ephemeral + /// address and no existing connection can be found. This can happen if + /// the remote host contacted us without having a global address, and we + /// assigned them a random local address, and then the session with + /// that host timed out. + /// - When initiating communications, the first messages may be sent + /// via backend signaling, or otherwise delayed, while a route is found. + /// Expect the ping time to fluctuate during this period, and it's possible + /// that messages will be delivered out of order (which is also possible with + /// ordinary UDP). + virtual EResult SendMessageToFakeIP( const SteamNetworkingIPAddr &remoteAddress, const void *pData, uint32 cbData, int nSendFlags ) = 0; + + /// Receive messages on the port. + /// + /// Returns the number of messages returned into your array, up to nMaxMessages. + /// + /// SteamNetworkingMessage_t::m_identity in the returned message(s) will always contain + /// a FakeIP. See ISteamNetworkingUtils::GetRealIdentityForFakeIP. + virtual int ReceiveMessages( SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + /// Schedule the internal connection for a given peer to be cleaned up in a few seconds. + /// + /// Idle connections automatically time out, and so this is not strictly *necessary*, + /// but if you have reason to believe that you are done talking to a given peer for + /// a while, you can call this to speed up the timeout. If any remaining packets are + /// sent or received from the peer, the cleanup is canceled and the usual timeout + /// value is restored. Thus you will usually call this immediately after sending + /// or receiving application-layer "close connection" packets. + virtual void ScheduleCleanup( const SteamNetworkingIPAddr &remoteAddress ) = 0; +}; + +/// Callback struct used to notify when a connection has changed state +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error "Must define VALVE_CALLBACK_PACK_SMALL or VALVE_CALLBACK_PACK_LARGE" +#endif + +/// A struct used to describe a "fake IP" we have been assigned to +/// use as an identifier. This callback is posted when +/// ISteamNetworkingSoockets::BeginAsyncRequestFakeIP completes. +/// See also ISteamNetworkingSockets::GetFakeIP +struct SteamNetworkingFakeIPResult_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 3 }; + + /// Status/result of the allocation request. Possible failure values are: + /// - k_EResultBusy - you called GetFakeIP but the request has not completed. + /// - k_EResultInvalidParam - you called GetFakeIP with an invalid port index + /// - k_EResultLimitExceeded - You asked for too many ports, or made an + /// additional request after one had already succeeded + /// - k_EResultNoMatch - GetFakeIP was called, but no request has been made + /// + /// Note that, with the exception of k_EResultBusy (if you are polling), + /// it is highly recommended to treat all failures as fatal. + EResult m_eResult; + + /// Local identity of the ISteamNetworkingSockets object that made + /// this request and is assigned the IP. This is needed in the callback + /// in the case where there are multiple ISteamNetworkingSockets objects. + /// (E.g. one for the user, and another for the local gameserver). + SteamNetworkingIdentity m_identity; + + /// Fake IPv4 IP address that we have been assigned. NOTE: this + /// IP address is not exclusively ours! Steam tries to avoid sharing + /// IP addresses, but this may not always be possible. The IP address + /// may be currently in use by another host, but with different port(s). + /// The exact same IP:port address may have been used previously. + /// Steam tries to avoid reusing ports until they have not been in use for + /// some time, but this may not always be possible. + uint32 m_unIP; + + /// Port number(s) assigned to us. Only the first entries will contain + /// nonzero values. Entries corresponding to ports beyond what was + /// allocated for you will be zero. + /// + /// (NOTE: At the time of this writing, the maximum number of ports you may + /// request is 4.) + enum { k_nMaxReturnPorts = 8 }; + uint16 m_unPorts[k_nMaxReturnPorts]; +}; + +#pragma pack( pop ) + +#endif // _H diff --git a/lib/osx/include/steam/steamnetworkingtypes.h b/lib/osx/include/steam/steamnetworkingtypes.h new file mode 100644 index 0000000..e8c38df --- /dev/null +++ b/lib/osx/include/steam/steamnetworkingtypes.h @@ -0,0 +1,1870 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Purpose: misc networking utilities +// +//============================================================================= + +#ifndef STEAMNETWORKINGTYPES +#define STEAMNETWORKINGTYPES +#pragma once + +#include <string.h> +#include <stdint.h> +#include "steamtypes.h" +#include "steamclientpublic.h" + +//----------------------------------------------------------------------------- +// SteamNetworkingSockets config. +#if !defined(STEAMNETWORKINGSOCKETS_STANDALONELIB) && !defined(STEAMNETWORKINGSOCKETS_STEAMAPI) + #define STEAMNETWORKINGSOCKETS_STEAMAPI +#endif +//----------------------------------------------------------------------------- + +#ifdef NN_NINTENDO_SDK // We always static link on Nintendo + #define STEAMNETWORKINGSOCKETS_STATIC_LINK +#endif +#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" +#elif defined( STEAMNETWORKINGSOCKETS_FOREXPORT ) + #if defined( _WIN32 ) || defined( __ORBIS__ ) || defined( __PROSPERO__ ) + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __declspec( dllexport ) + #else + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __attribute__((visibility("default"))) + #endif +#else + #ifdef _WIN32 + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __declspec( dllimport ) + #else + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" + #endif +#endif + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error "Must define VALVE_CALLBACK_PACK_SMALL or VALVE_CALLBACK_PACK_LARGE" +#endif + +struct SteamDatagramRelayAuthTicket; +struct SteamDatagramHostedAddress; +struct SteamDatagramGameCoordinatorServerLogin; +struct SteamNetConnectionStatusChangedCallback_t; +struct SteamNetAuthenticationStatus_t; +struct SteamRelayNetworkStatus_t; +struct SteamNetworkingMessagesSessionRequest_t; +struct SteamNetworkingMessagesSessionFailed_t; +struct SteamNetworkingFakeIPResult_t; + +typedef void (*FnSteamNetConnectionStatusChanged)( SteamNetConnectionStatusChangedCallback_t * ); +typedef void (*FnSteamNetAuthenticationStatusChanged)( SteamNetAuthenticationStatus_t * ); +typedef void (*FnSteamRelayNetworkStatusChanged)(SteamRelayNetworkStatus_t *); +typedef void (*FnSteamNetworkingMessagesSessionRequest)(SteamNetworkingMessagesSessionRequest_t *); +typedef void (*FnSteamNetworkingMessagesSessionFailed)(SteamNetworkingMessagesSessionFailed_t *); +typedef void (*FnSteamNetworkingFakeIPResult)(SteamNetworkingFakeIPResult_t *); + +/// Handle used to identify a connection to a remote host. +typedef uint32 HSteamNetConnection; +const HSteamNetConnection k_HSteamNetConnection_Invalid = 0; + +/// Handle used to identify a "listen socket". Unlike traditional +/// Berkeley sockets, a listen socket and a connection are two +/// different abstractions. +typedef uint32 HSteamListenSocket; +const HSteamListenSocket k_HSteamListenSocket_Invalid = 0; + +/// Handle used to identify a poll group, used to query many +/// connections at once efficiently. +typedef uint32 HSteamNetPollGroup; +const HSteamNetPollGroup k_HSteamNetPollGroup_Invalid = 0; + +/// Max length of diagnostic error message +const int k_cchMaxSteamNetworkingErrMsg = 1024; + +/// Used to return English-language diagnostic error messages to caller. +/// (For debugging or spewing to a console, etc. Not intended for UI.) +typedef char SteamNetworkingErrMsg[ k_cchMaxSteamNetworkingErrMsg ]; + +/// Identifier used for a network location point of presence. (E.g. a Valve data center.) +/// Typically you won't need to directly manipulate these. +typedef uint32 SteamNetworkingPOPID; + +/// A local timestamp. You can subtract two timestamps to get the number of elapsed +/// microseconds. This is guaranteed to increase over time during the lifetime +/// of a process, but not globally across runs. You don't need to worry about +/// the value wrapping around. Note that the underlying clock might not actually have +/// microsecond resolution. +typedef int64 SteamNetworkingMicroseconds; + +/// Describe the status of a particular network resource +enum ESteamNetworkingAvailability +{ + // Negative values indicate a problem. + // + // In general, we will not automatically retry unless you take some action that + // depends on of requests this resource, such as querying the status, attempting + // to initiate a connection, receive a connection, etc. If you do not take any + // action at all, we do not automatically retry in the background. + k_ESteamNetworkingAvailability_CannotTry = -102, // A dependent resource is missing, so this service is unavailable. (E.g. we cannot talk to routers because Internet is down or we don't have the network config.) + k_ESteamNetworkingAvailability_Failed = -101, // We have tried for enough time that we would expect to have been successful by now. We have never been successful + k_ESteamNetworkingAvailability_Previously = -100, // We tried and were successful at one time, but now it looks like we have a problem + + k_ESteamNetworkingAvailability_Retrying = -10, // We previously failed and are currently retrying + + // Not a problem, but not ready either + k_ESteamNetworkingAvailability_NeverTried = 1, // We don't know because we haven't ever checked/tried + k_ESteamNetworkingAvailability_Waiting = 2, // We're waiting on a dependent resource to be acquired. (E.g. we cannot obtain a cert until we are logged into Steam. We cannot measure latency to relays until we have the network config.) + k_ESteamNetworkingAvailability_Attempting = 3, // We're actively trying now, but are not yet successful. + + k_ESteamNetworkingAvailability_Current = 100, // Resource is online/available + + + k_ESteamNetworkingAvailability_Unknown = 0, // Internal dummy/sentinel, or value is not applicable in this context + k_ESteamNetworkingAvailability__Force32bit = 0x7fffffff, +}; + +// +// Describing network hosts +// + +/// Different methods of describing the identity of a network host +enum ESteamNetworkingIdentityType +{ + // Dummy/empty/invalid. + // Please note that if we parse a string that we don't recognize + // but that appears reasonable, we will NOT use this type. Instead + // we'll use k_ESteamNetworkingIdentityType_UnknownType. + k_ESteamNetworkingIdentityType_Invalid = 0, + + // + // Basic platform-specific identifiers. + // + k_ESteamNetworkingIdentityType_SteamID = 16, // 64-bit CSteamID + k_ESteamNetworkingIdentityType_XboxPairwiseID = 17, // Publisher-specific user identity, as string + k_ESteamNetworkingIdentityType_SonyPSN = 18, // 64-bit ID + k_ESteamNetworkingIdentityType_GoogleStadia = 19, // 64-bit ID + //k_ESteamNetworkingIdentityType_NintendoNetworkServiceAccount, + //k_ESteamNetworkingIdentityType_EpicGameStore + //k_ESteamNetworkingIdentityType_WeGame + + // + // Special identifiers. + // + + // Use their IP address (and port) as their "identity". + // These types of identities are always unauthenticated. + // They are useful for porting plain sockets code, and other + // situations where you don't care about authentication. In this + // case, the local identity will be "localhost", + // and the remote address will be their network address. + // + // We use the same type for either IPv4 or IPv6, and + // the address is always store as IPv6. We use IPv4 + // mapped addresses to handle IPv4. + k_ESteamNetworkingIdentityType_IPAddress = 1, + + // Generic string/binary blobs. It's up to your app to interpret this. + // This library can tell you if the remote host presented a certificate + // signed by somebody you have chosen to trust, with this identity on it. + // It's up to you to ultimately decide what this identity means. + k_ESteamNetworkingIdentityType_GenericString = 2, + k_ESteamNetworkingIdentityType_GenericBytes = 3, + + // This identity type is used when we parse a string that looks like is a + // valid identity, just of a kind that we don't recognize. In this case, we + // can often still communicate with the peer! Allowing such identities + // for types we do not recognize useful is very useful for forward + // compatibility. + k_ESteamNetworkingIdentityType_UnknownType = 4, + + // Make sure this enum is stored in an int. + k_ESteamNetworkingIdentityType__Force32bit = 0x7fffffff, +}; + +/// "Fake IPs" are assigned to hosts, to make it easier to interface with +/// older code that assumed all hosts will have an IPv4 address +enum ESteamNetworkingFakeIPType +{ + k_ESteamNetworkingFakeIPType_Invalid, // Error, argument was not even an IP address, etc. + k_ESteamNetworkingFakeIPType_NotFake, // Argument was a valid IP, but was not from the reserved "fake" range + k_ESteamNetworkingFakeIPType_GlobalIPv4, // Globally unique (for a given app) IPv4 address. Address space managed by Steam + k_ESteamNetworkingFakeIPType_LocalIPv4, // Locally unique IPv4 address. Address space managed by the local process. For internal use only; should not be shared! + + k_ESteamNetworkingFakeIPType__Force32Bit = 0x7fffffff +}; + +#pragma pack(push,1) + +/// Store an IP and port. IPv6 is always used; IPv4 is represented using +/// "IPv4-mapped" addresses: IPv4 aa.bb.cc.dd => IPv6 ::ffff:aabb:ccdd +/// (RFC 4291 section 2.5.5.2.) +struct SteamNetworkingIPAddr +{ + void Clear(); // Set everything to zero. E.g. [::]:0 + bool IsIPv6AllZeros() const; // Return true if the IP is ::0. (Doesn't check port.) + void SetIPv6( const uint8 *ipv6, uint16 nPort ); // Set IPv6 address. IP is interpreted as bytes, so there are no endian issues. (Same as inaddr_in6.) The IP can be a mapped IPv4 address + void SetIPv4( uint32 nIP, uint16 nPort ); // Sets to IPv4 mapped address. IP and port are in host byte order. + bool IsIPv4() const; // Return true if IP is mapped IPv4 + uint32 GetIPv4() const; // Returns IP in host byte order (e.g. aa.bb.cc.dd as 0xaabbccdd). Returns 0 if IP is not mapped IPv4. + void SetIPv6LocalHost( uint16 nPort = 0); // Set to the IPv6 localhost address ::1, and the specified port. + bool IsLocalHost() const; // Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + + // Max length of the buffer needed to hold IP formatted using ToString, including '\0' + // ([0123:4567:89ab:cdef:0123:4567:89ab:cdef]:12345) + enum { k_cchMaxString = 48 }; + + /// Print to a string, with or without the port. Mapped IPv4 addresses are printed + /// as dotted decimal (12.34.56.78), otherwise this will print the canonical + /// form according to RFC5952. If you include the port, IPv6 will be surrounded by + /// brackets, e.g. [::1:2]:80. Your buffer should be at least k_cchMaxString bytes + /// to avoid truncation + /// + /// See also SteamNetworkingIdentityRender + inline void ToString( char *buf, size_t cbBuf, bool bWithPort ) const; + + /// Parse an IP address and optional port. If a port is not present, it is set to 0. + /// (This means that you cannot tell if a zero port was explicitly specified.) + inline bool ParseString( const char *pszStr ); + + /// RFC4038, section 4.2 + struct IPv4MappedAddress { + uint64 m_8zeros; + uint16 m_0000; + uint16 m_ffff; + uint8 m_ip[ 4 ]; // NOTE: As bytes, i.e. network byte order + }; + + union + { + uint8 m_ipv6[ 16 ]; + IPv4MappedAddress m_ipv4; + }; + uint16 m_port; // Host byte order + + /// See if two addresses are identical + bool operator==(const SteamNetworkingIPAddr &x ) const; + + /// Classify address as FakeIP. This function never returns + /// k_ESteamNetworkingFakeIPType_Invalid. + ESteamNetworkingFakeIPType GetFakeIPType() const; + + /// Return true if we are a FakeIP + bool IsFakeIP() const { return GetFakeIPType() > k_ESteamNetworkingFakeIPType_NotFake; } +}; + +/// An abstract way to represent the identity of a network host. All identities can +/// be represented as simple string. Furthermore, this string representation is actually +/// used on the wire in several places, even though it is less efficient, in order to +/// facilitate forward compatibility. (Old client code can handle an identity type that +/// it doesn't understand.) +struct SteamNetworkingIdentity +{ + /// Type of identity. + ESteamNetworkingIdentityType m_eType; + + // + // Get/Set in various formats. + // + + void Clear(); + bool IsInvalid() const; // Return true if we are the invalid type. Does not make any other validity checks (e.g. is SteamID actually valid) + + void SetSteamID( CSteamID steamID ); + CSteamID GetSteamID() const; // Return black CSteamID (!IsValid()) if identity is not a SteamID + void SetSteamID64( uint64 steamID ); // Takes SteamID as raw 64-bit number + uint64 GetSteamID64() const; // Returns 0 if identity is not SteamID + + bool SetXboxPairwiseID( const char *pszString ); // Returns false if invalid length + const char *GetXboxPairwiseID() const; // Returns nullptr if not Xbox ID + + void SetPSNID( uint64 id ); + uint64 GetPSNID() const; // Returns 0 if not PSN + + void SetStadiaID( uint64 id ); + uint64 GetStadiaID() const; // Returns 0 if not Stadia + + void SetIPAddr( const SteamNetworkingIPAddr &addr ); // Set to specified IP:port + const SteamNetworkingIPAddr *GetIPAddr() const; // returns null if we are not an IP address. + void SetIPv4Addr( uint32 nIPv4, uint16 nPort ); // Set to specified IPv4:port + uint32 GetIPv4() const; // returns 0 if we are not an IPv4 address. + + ESteamNetworkingFakeIPType GetFakeIPType() const; + bool IsFakeIP() const { return GetFakeIPType() > k_ESteamNetworkingFakeIPType_NotFake; } + + // "localhost" is equivalent for many purposes to "anonymous." Our remote + // will identify us by the network address we use. + void SetLocalHost(); // Set to localhost. (We always use IPv6 ::1 for this, not 127.0.0.1) + bool IsLocalHost() const; // Return true if this identity is localhost. + + bool SetGenericString( const char *pszString ); // Returns false if invalid length + const char *GetGenericString() const; // Returns nullptr if not generic string type + + bool SetGenericBytes( const void *data, size_t cbLen ); // Returns false if invalid size. + const uint8 *GetGenericBytes( int &cbLen ) const; // Returns null if not generic bytes type + + /// See if two identities are identical + bool operator==(const SteamNetworkingIdentity &x ) const; + + /// Print to a human-readable string. This is suitable for debug messages + /// or any other time you need to encode the identity as a string. It has a + /// URL-like format (type:<type-data>). Your buffer should be at least + /// k_cchMaxString bytes big to avoid truncation. + /// + /// See also SteamNetworkingIPAddrRender + void ToString( char *buf, size_t cbBuf ) const; + + /// Parse back a string that was generated using ToString. If we don't understand the + /// string, but it looks "reasonable" (it matches the pattern type:<type-data> and doesn't + /// have any funky characters, etc), then we will return true, and the type is set to + /// k_ESteamNetworkingIdentityType_UnknownType. false will only be returned if the string + /// looks invalid. + bool ParseString( const char *pszStr ); + + // Max sizes + enum { + k_cchMaxString = 128, // Max length of the buffer needed to hold any identity, formatted in string format by ToString + k_cchMaxGenericString = 32, // Max length of the string for generic string identities. Including terminating '\0' + k_cchMaxXboxPairwiseID = 33, // Including terminating '\0' + k_cbMaxGenericBytes = 32, + }; + + // + // Internal representation. Don't access this directly, use the accessors! + // + // Number of bytes that are relevant below. This MUST ALWAYS be + // set. (Use the accessors!) This is important to enable old code to work + // with new identity types. + int m_cbSize; + union { + uint64 m_steamID64; + uint64 m_PSNID; + uint64 m_stadiaID; + char m_szGenericString[ k_cchMaxGenericString ]; + char m_szXboxPairwiseID[ k_cchMaxXboxPairwiseID ]; + uint8 m_genericBytes[ k_cbMaxGenericBytes ]; + char m_szUnknownRawString[ k_cchMaxString ]; + SteamNetworkingIPAddr m_ip; + uint32 m_reserved[ 32 ]; // Pad structure to leave easy room for future expansion + }; +}; +#pragma pack(pop) + +// +// Connection status +// + +/// High level connection status +enum ESteamNetworkingConnectionState +{ + + /// Dummy value used to indicate an error condition in the API. + /// Specified connection doesn't exist or has already been closed. + k_ESteamNetworkingConnectionState_None = 0, + + /// We are trying to establish whether peers can talk to each other, + /// whether they WANT to talk to each other, perform basic auth, + /// and exchange crypt keys. + /// + /// - For connections on the "client" side (initiated locally): + /// We're in the process of trying to establish a connection. + /// Depending on the connection type, we might not know who they are. + /// Note that it is not possible to tell if we are waiting on the + /// network to complete handshake packets, or for the application layer + /// to accept the connection. + /// + /// - For connections on the "server" side (accepted through listen socket): + /// We have completed some basic handshake and the client has presented + /// some proof of identity. The connection is ready to be accepted + /// using AcceptConnection(). + /// + /// In either case, any unreliable packets sent now are almost certain + /// to be dropped. Attempts to receive packets are guaranteed to fail. + /// You may send messages if the send mode allows for them to be queued. + /// but if you close the connection before the connection is actually + /// established, any queued messages will be discarded immediately. + /// (We will not attempt to flush the queue and confirm delivery to the + /// remote host, which ordinarily happens when a connection is closed.) + k_ESteamNetworkingConnectionState_Connecting = 1, + + /// Some connection types use a back channel or trusted 3rd party + /// for earliest communication. If the server accepts the connection, + /// then these connections switch into the rendezvous state. During this + /// state, we still have not yet established an end-to-end route (through + /// the relay network), and so if you send any messages unreliable, they + /// are going to be discarded. + k_ESteamNetworkingConnectionState_FindingRoute = 2, + + /// We've received communications from our peer (and we know + /// who they are) and are all good. If you close the connection now, + /// we will make our best effort to flush out any reliable sent data that + /// has not been acknowledged by the peer. (But note that this happens + /// from within the application process, so unlike a TCP connection, you are + /// not totally handing it off to the operating system to deal with it.) + k_ESteamNetworkingConnectionState_Connected = 3, + + /// Connection has been closed by our peer, but not closed locally. + /// The connection still exists from an API perspective. You must close the + /// handle to free up resources. If there are any messages in the inbound queue, + /// you may retrieve them. Otherwise, nothing may be done with the connection + /// except to close it. + /// + /// This stats is similar to CLOSE_WAIT in the TCP state machine. + k_ESteamNetworkingConnectionState_ClosedByPeer = 4, + + /// A disruption in the connection has been detected locally. (E.g. timeout, + /// local internet connection disrupted, etc.) + /// + /// The connection still exists from an API perspective. You must close the + /// handle to free up resources. + /// + /// Attempts to send further messages will fail. Any remaining received messages + /// in the queue are available. + k_ESteamNetworkingConnectionState_ProblemDetectedLocally = 5, + +// +// The following values are used internally and will not be returned by any API. +// We document them here to provide a little insight into the state machine that is used +// under the hood. +// + + /// We've disconnected on our side, and from an API perspective the connection is closed. + /// No more data may be sent or received. All reliable data has been flushed, or else + /// we've given up and discarded it. We do not yet know for sure that the peer knows + /// the connection has been closed, however, so we're just hanging around so that if we do + /// get a packet from them, we can send them the appropriate packets so that they can + /// know why the connection was closed (and not have to rely on a timeout, which makes + /// it appear as if something is wrong). + k_ESteamNetworkingConnectionState_FinWait = -1, + + /// We've disconnected on our side, and from an API perspective the connection is closed. + /// No more data may be sent or received. From a network perspective, however, on the wire, + /// we have not yet given any indication to the peer that the connection is closed. + /// We are in the process of flushing out the last bit of reliable data. Once that is done, + /// we will inform the peer that the connection has been closed, and transition to the + /// FinWait state. + /// + /// Note that no indication is given to the remote host that we have closed the connection, + /// until the data has been flushed. If the remote host attempts to send us data, we will + /// do whatever is necessary to keep the connection alive until it can be closed properly. + /// But in fact the data will be discarded, since there is no way for the application to + /// read it back. Typically this is not a problem, as application protocols that utilize + /// the lingering functionality are designed for the remote host to wait for the response + /// before sending any more data. + k_ESteamNetworkingConnectionState_Linger = -2, + + /// Connection is completely inactive and ready to be destroyed + k_ESteamNetworkingConnectionState_Dead = -3, + + k_ESteamNetworkingConnectionState__Force32Bit = 0x7fffffff +}; + +/// Enumerate various causes of connection termination. These are designed to work similar +/// to HTTP error codes: the numeric range gives you a rough classification as to the source +/// of the problem. +enum ESteamNetConnectionEnd +{ + // Invalid/sentinel value + k_ESteamNetConnectionEnd_Invalid = 0, + + // + // Application codes. These are the values you will pass to + // ISteamNetworkingSockets::CloseConnection. You can use these codes if + // you want to plumb through application-specific reason codes. If you don't + // need this facility, feel free to always pass + // k_ESteamNetConnectionEnd_App_Generic. + // + // The distinction between "normal" and "exceptional" termination is + // one you may use if you find useful, but it's not necessary for you + // to do so. The only place where we distinguish between normal and + // exceptional is in connection analytics. If a significant + // proportion of connections terminates in an exceptional manner, + // this can trigger an alert. + // + + // 1xxx: Application ended the connection in a "usual" manner. + // E.g.: user intentionally disconnected from the server, + // gameplay ended normally, etc + k_ESteamNetConnectionEnd_App_Min = 1000, + k_ESteamNetConnectionEnd_App_Generic = k_ESteamNetConnectionEnd_App_Min, + // Use codes in this range for "normal" disconnection + k_ESteamNetConnectionEnd_App_Max = 1999, + + // 2xxx: Application ended the connection in some sort of exceptional + // or unusual manner that might indicate a bug or configuration + // issue. + // + k_ESteamNetConnectionEnd_AppException_Min = 2000, + k_ESteamNetConnectionEnd_AppException_Generic = k_ESteamNetConnectionEnd_AppException_Min, + // Use codes in this range for "unusual" disconnection + k_ESteamNetConnectionEnd_AppException_Max = 2999, + + // + // System codes. These will be returned by the system when + // the connection state is k_ESteamNetworkingConnectionState_ClosedByPeer + // or k_ESteamNetworkingConnectionState_ProblemDetectedLocally. It is + // illegal to pass a code in this range to ISteamNetworkingSockets::CloseConnection + // + + // 3xxx: Connection failed or ended because of problem with the + // local host or their connection to the Internet. + k_ESteamNetConnectionEnd_Local_Min = 3000, + + // You cannot do what you want to do because you're running in offline mode. + k_ESteamNetConnectionEnd_Local_OfflineMode = 3001, + + // We're having trouble contacting many (perhaps all) relays. + // Since it's unlikely that they all went offline at once, the best + // explanation is that we have a problem on our end. Note that we don't + // bother distinguishing between "many" and "all", because in practice, + // it takes time to detect a connection problem, and by the time + // the connection has timed out, we might not have been able to + // actively probe all of the relay clusters, even if we were able to + // contact them at one time. So this code just means that: + // + // * We don't have any recent successful communication with any relay. + // * We have evidence of recent failures to communicate with multiple relays. + k_ESteamNetConnectionEnd_Local_ManyRelayConnectivity = 3002, + + // A hosted server is having trouble talking to the relay + // that the client was using, so the problem is most likely + // on our end + k_ESteamNetConnectionEnd_Local_HostedServerPrimaryRelay = 3003, + + // We're not able to get the SDR network config. This is + // *almost* always a local issue, since the network config + // comes from the CDN, which is pretty darn reliable. + k_ESteamNetConnectionEnd_Local_NetworkConfig = 3004, + + // Steam rejected our request because we don't have rights + // to do this. + k_ESteamNetConnectionEnd_Local_Rights = 3005, + + // ICE P2P rendezvous failed because we were not able to + // determine our "public" address (e.g. reflexive address via STUN) + // + // If relay fallback is available (it always is on Steam), then + // this is only used internally and will not be returned as a high + // level failure. + k_ESteamNetConnectionEnd_Local_P2P_ICE_NoPublicAddresses = 3006, + + k_ESteamNetConnectionEnd_Local_Max = 3999, + + // 4xxx: Connection failed or ended, and it appears that the + // cause does NOT have to do with the local host or their + // connection to the Internet. It could be caused by the + // remote host, or it could be somewhere in between. + k_ESteamNetConnectionEnd_Remote_Min = 4000, + + // The connection was lost, and as far as we can tell our connection + // to relevant services (relays) has not been disrupted. This doesn't + // mean that the problem is "their fault", it just means that it doesn't + // appear that we are having network issues on our end. + k_ESteamNetConnectionEnd_Remote_Timeout = 4001, + + // Something was invalid with the cert or crypt handshake + // info you gave me, I don't understand or like your key types, + // etc. + k_ESteamNetConnectionEnd_Remote_BadCrypt = 4002, + + // You presented me with a cert that was I was able to parse + // and *technically* we could use encrypted communication. + // But there was a problem that prevents me from checking your identity + // or ensuring that somebody int he middle can't observe our communication. + // E.g.: - the CA key was missing (and I don't accept unsigned certs) + // - The CA key isn't one that I trust, + // - The cert doesn't was appropriately restricted by app, user, time, data center, etc. + // - The cert wasn't issued to you. + // - etc + k_ESteamNetConnectionEnd_Remote_BadCert = 4003, + + // These will never be returned + //k_ESteamNetConnectionEnd_Remote_NotLoggedIn_DEPRECATED = 4004, + //k_ESteamNetConnectionEnd_Remote_NotRunningApp_DEPRECATED = 4005, + + // Something wrong with the protocol version you are using. + // (Probably the code you are running is too old.) + k_ESteamNetConnectionEnd_Remote_BadProtocolVersion = 4006, + + // NAT punch failed failed because we never received any public + // addresses from the remote host. (But we did receive some + // signals form them.) + // + // If relay fallback is available (it always is on Steam), then + // this is only used internally and will not be returned as a high + // level failure. + k_ESteamNetConnectionEnd_Remote_P2P_ICE_NoPublicAddresses = 4007, + + k_ESteamNetConnectionEnd_Remote_Max = 4999, + + // 5xxx: Connection failed for some other reason. + k_ESteamNetConnectionEnd_Misc_Min = 5000, + + // A failure that isn't necessarily the result of a software bug, + // but that should happen rarely enough that it isn't worth specifically + // writing UI or making a localized message for. + // The debug string should contain further details. + k_ESteamNetConnectionEnd_Misc_Generic = 5001, + + // Generic failure that is most likely a software bug. + k_ESteamNetConnectionEnd_Misc_InternalError = 5002, + + // The connection to the remote host timed out, but we + // don't know if the problem is on our end, in the middle, + // or on their end. + k_ESteamNetConnectionEnd_Misc_Timeout = 5003, + + //k_ESteamNetConnectionEnd_Misc_RelayConnectivity_DEPRECATED = 5004, + + // There's some trouble talking to Steam. + k_ESteamNetConnectionEnd_Misc_SteamConnectivity = 5005, + + // A server in a dedicated hosting situation has no relay sessions + // active with which to talk back to a client. (It's the client's + // job to open and maintain those sessions.) + k_ESteamNetConnectionEnd_Misc_NoRelaySessionsToClient = 5006, + + // While trying to initiate a connection, we never received + // *any* communication from the peer. + //k_ESteamNetConnectionEnd_Misc_ServerNeverReplied = 5007, + + // P2P rendezvous failed in a way that we don't have more specific + // information + k_ESteamNetConnectionEnd_Misc_P2P_Rendezvous = 5008, + + // NAT punch failed, probably due to NAT/firewall configuration. + // + // If relay fallback is available (it always is on Steam), then + // this is only used internally and will not be returned as a high + // level failure. + k_ESteamNetConnectionEnd_Misc_P2P_NAT_Firewall = 5009, + + // Our peer replied that it has no record of the connection. + // This should not happen ordinarily, but can happen in a few + // exception cases: + // + // - This is an old connection, and the peer has already cleaned + // up and forgotten about it. (Perhaps it timed out and they + // closed it and were not able to communicate this to us.) + // - A bug or internal protocol error has caused us to try to + // talk to the peer about the connection before we received + // confirmation that the peer has accepted the connection. + // - The peer thinks that we have closed the connection for some + // reason (perhaps a bug), and believes that is it is + // acknowledging our closure. + k_ESteamNetConnectionEnd_Misc_PeerSentNoConnection = 5010, + + k_ESteamNetConnectionEnd_Misc_Max = 5999, + + k_ESteamNetConnectionEnd__Force32Bit = 0x7fffffff +}; + +/// Max length, in bytes (including null terminator) of the reason string +/// when a connection is closed. +const int k_cchSteamNetworkingMaxConnectionCloseReason = 128; + +/// Max length, in bytes (include null terminator) of debug description +/// of a connection. +const int k_cchSteamNetworkingMaxConnectionDescription = 128; + +/// Max length of the app's part of the description +const int k_cchSteamNetworkingMaxConnectionAppName = 32; + +const int k_nSteamNetworkConnectionInfoFlags_Unauthenticated = 1; // We don't have a certificate for the remote host. +const int k_nSteamNetworkConnectionInfoFlags_Unencrypted = 2; // Information is being sent out over a wire unencrypted (by this library) +const int k_nSteamNetworkConnectionInfoFlags_LoopbackBuffers = 4; // Internal loopback buffers. Won't be true for localhost. (You can check the address to determine that.) This implies k_nSteamNetworkConnectionInfoFlags_FastLAN +const int k_nSteamNetworkConnectionInfoFlags_Fast = 8; // The connection is "fast" and "reliable". Either internal/localhost (check the address to find out), or the peer is on the same LAN. (Probably. It's based on the address and the ping time, this is actually hard to determine unambiguously). +const int k_nSteamNetworkConnectionInfoFlags_Relayed = 16; // The connection is relayed somehow (SDR or TURN). +const int k_nSteamNetworkConnectionInfoFlags_DualWifi = 32; // We're taking advantage of dual-wifi multi-path + +/// Describe the state of a connection. +struct SteamNetConnectionInfo_t +{ + + /// Who is on the other end? Depending on the connection type and phase of the connection, we might not know + SteamNetworkingIdentity m_identityRemote; + + /// Arbitrary user data set by the local application code + int64 m_nUserData; + + /// Handle to listen socket this was connected on, or k_HSteamListenSocket_Invalid if we initiated the connection + HSteamListenSocket m_hListenSocket; + + /// Remote address. Might be all 0's if we don't know it, or if this is N/A. + /// (E.g. Basically everything except direct UDP connection.) + SteamNetworkingIPAddr m_addrRemote; + uint16 m__pad1; + + /// What data center is the remote host in? (0 if we don't know.) + SteamNetworkingPOPID m_idPOPRemote; + + /// What relay are we using to communicate with the remote host? + /// (0 if not applicable.) + SteamNetworkingPOPID m_idPOPRelay; + + /// High level state of the connection + ESteamNetworkingConnectionState m_eState; + + /// Basic cause of the connection termination or problem. + /// See ESteamNetConnectionEnd for the values used + int m_eEndReason; + + /// Human-readable, but non-localized explanation for connection + /// termination or problem. This is intended for debugging / + /// diagnostic purposes only, not to display to users. It might + /// have some details specific to the issue. + char m_szEndDebug[ k_cchSteamNetworkingMaxConnectionCloseReason ]; + + /// Debug description. This includes the internal connection ID, + /// connection type (and peer information), and any name + /// given to the connection by the app. This string is used in various + /// internal logging messages. + /// + /// Note that the connection ID *usually* matches the HSteamNetConnection + /// handle, but in certain cases with symmetric connections it might not. + char m_szConnectionDescription[ k_cchSteamNetworkingMaxConnectionDescription ]; + + /// Misc flags. Bitmask of k_nSteamNetworkConnectionInfoFlags_Xxxx + int m_nFlags; + + /// Internal stuff, room to change API easily + uint32 reserved[63]; +}; + +/// Quick connection state, pared down to something you could call +/// more frequently without it being too big of a perf hit. +struct SteamNetConnectionRealTimeStatus_t +{ + + /// High level state of the connection + ESteamNetworkingConnectionState m_eState; + + /// Current ping (ms) + int m_nPing; + + /// Connection quality measured locally, 0...1. (Percentage of packets delivered + /// end-to-end in order). + float m_flConnectionQualityLocal; + + /// Packet delivery success rate as observed from remote host + float m_flConnectionQualityRemote; + + /// Current data rates from recent history. + float m_flOutPacketsPerSec; + float m_flOutBytesPerSec; + float m_flInPacketsPerSec; + float m_flInBytesPerSec; + + /// Estimate rate that we believe that we can send data to our peer. + /// Note that this could be significantly higher than m_flOutBytesPerSec, + /// meaning the capacity of the channel is higher than you are sending data. + /// (That's OK!) + int m_nSendRateBytesPerSecond; + + /// Number of bytes pending to be sent. This is data that you have recently + /// requested to be sent but has not yet actually been put on the wire. The + /// reliable number ALSO includes data that was previously placed on the wire, + /// but has now been scheduled for re-transmission. Thus, it's possible to + /// observe m_cbPendingReliable increasing between two checks, even if no + /// calls were made to send reliable data between the checks. Data that is + /// awaiting the Nagle delay will appear in these numbers. + int m_cbPendingUnreliable; + int m_cbPendingReliable; + + /// Number of bytes of reliable data that has been placed the wire, but + /// for which we have not yet received an acknowledgment, and thus we may + /// have to re-transmit. + int m_cbSentUnackedReliable; + + /// If you queued a message right now, approximately how long would that message + /// wait in the queue before we actually started putting its data on the wire in + /// a packet? + /// + /// In general, data that is sent by the application is limited by the bandwidth + /// of the channel. If you send data faster than this, it must be queued and + /// put on the wire at a metered rate. Even sending a small amount of data (e.g. + /// a few MTU, say ~3k) will require some of the data to be delayed a bit. + /// + /// Ignoring multiple lanes, the estimated delay will be approximately equal to + /// + /// ( m_cbPendingUnreliable+m_cbPendingReliable ) / m_nSendRateBytesPerSecond + /// + /// plus or minus one MTU. It depends on how much time has elapsed since the last + /// packet was put on the wire. For example, the queue might have *just* been emptied, + /// and the last packet placed on the wire, and we are exactly up against the send + /// rate limit. In that case we might need to wait for one packet's worth of time to + /// elapse before we can send again. On the other extreme, the queue might have data + /// in it waiting for Nagle. (This will always be less than one packet, because as + /// soon as we have a complete packet we would send it.) In that case, we might be + /// ready to send data now, and this value will be 0. + /// + /// This value is only valid if multiple lanes are not used. If multiple lanes are + /// in use, then the queue time will be different for each lane, and you must use + /// the value in SteamNetConnectionRealTimeLaneStatus_t. + /// + /// Nagle delay is ignored for the purposes of this calculation. + SteamNetworkingMicroseconds m_usecQueueTime; + + // Internal stuff, room to change API easily + uint32 reserved[16]; +}; + +/// Quick status of a particular lane +struct SteamNetConnectionRealTimeLaneStatus_t +{ + // Counters for this particular lane. See the corresponding variables + // in SteamNetConnectionRealTimeStatus_t + int m_cbPendingUnreliable; + int m_cbPendingReliable; + int m_cbSentUnackedReliable; + int _reservePad1; // Reserved for future use + + /// Lane-specific queue time. This value takes into consideration lane priorities + /// and weights, and how much data is queued in each lane, and attempts to predict + /// how any data currently queued will be sent out. + SteamNetworkingMicroseconds m_usecQueueTime; + + // Internal stuff, room to change API easily + uint32 reserved[10]; +}; + +#pragma pack( pop ) + +// +// Network messages +// + +/// Max size of a single message that we can SEND. +/// Note: We might be wiling to receive larger messages, +/// and our peer might, too. +const int k_cbMaxSteamNetworkingSocketsMessageSizeSend = 512 * 1024; + +/// A message that has been received. +struct SteamNetworkingMessage_t +{ + + /// Message payload + void *m_pData; + + /// Size of the payload. + int m_cbSize; + + /// For messages received on connections: what connection did this come from? + /// For outgoing messages: what connection to send it to? + /// Not used when using the ISteamNetworkingMessages interface + HSteamNetConnection m_conn; + + /// For inbound messages: Who sent this to us? + /// For outbound messages on connections: not used. + /// For outbound messages on the ad-hoc ISteamNetworkingMessages interface: who should we send this to? + SteamNetworkingIdentity m_identityPeer; + + /// For messages received on connections, this is the user data + /// associated with the connection. + /// + /// This is *usually* the same as calling GetConnection() and then + /// fetching the user data associated with that connection, but for + /// the following subtle differences: + /// + /// - This user data will match the connection's user data at the time + /// is captured at the time the message is returned by the API. + /// If you subsequently change the userdata on the connection, + /// this won't be updated. + /// - This is an inline call, so it's *much* faster. + /// - You might have closed the connection, so fetching the user data + /// would not be possible. + /// + /// Not used when sending messages. + int64 m_nConnUserData; + + /// Local timestamp when the message was received + /// Not used for outbound messages. + SteamNetworkingMicroseconds m_usecTimeReceived; + + /// Message number assigned by the sender. This is not used for outbound + /// messages. Note that if multiple lanes are used, each lane has its own + /// message numbers, which are assigned sequentially, so messages from + /// different lanes will share the same numbers. + int64 m_nMessageNumber; + + /// Function used to free up m_pData. This mechanism exists so that + /// apps can create messages with buffers allocated from their own + /// heap, and pass them into the library. This function will + /// usually be something like: + /// + /// free( pMsg->m_pData ); + void (*m_pfnFreeData)( SteamNetworkingMessage_t *pMsg ); + + /// Function to used to decrement the internal reference count and, if + /// it's zero, release the message. You should not set this function pointer, + /// or need to access this directly! Use the Release() function instead! + void (*m_pfnRelease)( SteamNetworkingMessage_t *pMsg ); + + /// When using ISteamNetworkingMessages, the channel number the message was received on + /// (Not used for messages sent or received on "connections") + int m_nChannel; + + /// Bitmask of k_nSteamNetworkingSend_xxx flags. + /// For received messages, only the k_nSteamNetworkingSend_Reliable bit is valid. + /// For outbound messages, all bits are relevant + int m_nFlags; + + /// Arbitrary user data that you can use when sending messages using + /// ISteamNetworkingUtils::AllocateMessage and ISteamNetworkingSockets::SendMessage. + /// (The callback you set in m_pfnFreeData might use this field.) + /// + /// Not used for received messages. + int64 m_nUserData; + + /// For outbound messages, which lane to use? See ISteamNetworkingSockets::ConfigureConnectionLanes. + /// For inbound messages, what lane was the message received on? + uint16 m_idxLane; + uint16 _pad1__; + + /// You MUST call this when you're done with the object, + /// to free up memory, etc. + inline void Release(); + + // For code compatibility, some accessors +#ifndef API_GEN + inline uint32 GetSize() const { return m_cbSize; } + inline const void *GetData() const { return m_pData; } + inline int GetChannel() const { return m_nChannel; } + inline HSteamNetConnection GetConnection() const { return m_conn; } + inline int64 GetConnectionUserData() const { return m_nConnUserData; } + inline SteamNetworkingMicroseconds GetTimeReceived() const { return m_usecTimeReceived; } + inline int64 GetMessageNumber() const { return m_nMessageNumber; } +#endif +protected: + // Declare destructor protected. You should never need to declare a message + // object on the stack or create one yourself. + // - You will receive a pointer to a message object when you receive messages (e.g. ISteamNetworkingSockets::ReceiveMessagesOnConnection) + // - You can allocate a message object for efficient sending using ISteamNetworkingUtils::AllocateMessage + // - Call Release() to free the object + inline ~SteamNetworkingMessage_t() {} +}; + +// +// Flags used to set options for message sending +// + +// Send the message unreliably. Can be lost. Messages *can* be larger than a +// single MTU (UDP packet), but there is no retransmission, so if any piece +// of the message is lost, the entire message will be dropped. +// +// The sending API does have some knowledge of the underlying connection, so +// if there is no NAT-traversal accomplished or there is a recognized adjustment +// happening on the connection, the packet will be batched until the connection +// is open again. +// +// Migration note: This is not exactly the same as k_EP2PSendUnreliable! You +// probably want k_ESteamNetworkingSendType_UnreliableNoNagle +const int k_nSteamNetworkingSend_Unreliable = 0; + +// Disable Nagle's algorithm. +// By default, Nagle's algorithm is applied to all outbound messages. This means +// that the message will NOT be sent immediately, in case further messages are +// sent soon after you send this, which can be grouped together. Any time there +// is enough buffered data to fill a packet, the packets will be pushed out immediately, +// but partially-full packets not be sent until the Nagle timer expires. See +// ISteamNetworkingSockets::FlushMessagesOnConnection, ISteamNetworkingMessages::FlushMessagesToUser +// +// NOTE: Don't just send every message without Nagle because you want packets to get there +// quicker. Make sure you understand the problem that Nagle is solving before disabling it. +// If you are sending small messages, often many at the same time, then it is very likely that +// it will be more efficient to leave Nagle enabled. A typical proper use of this flag is +// when you are sending what you know will be the last message sent for a while (e.g. the last +// in the server simulation tick to a particular client), and you use this flag to flush all +// messages. +const int k_nSteamNetworkingSend_NoNagle = 1; + +// Send a message unreliably, bypassing Nagle's algorithm for this message and any messages +// currently pending on the Nagle timer. This is equivalent to using k_ESteamNetworkingSend_Unreliable +// and then immediately flushing the messages using ISteamNetworkingSockets::FlushMessagesOnConnection +// or ISteamNetworkingMessages::FlushMessagesToUser. (But using this flag is more efficient since you +// only make one API call.) +const int k_nSteamNetworkingSend_UnreliableNoNagle = k_nSteamNetworkingSend_Unreliable|k_nSteamNetworkingSend_NoNagle; + +// If the message cannot be sent very soon (because the connection is still doing some initial +// handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable +// messages. Using this flag on reliable messages is invalid. +const int k_nSteamNetworkingSend_NoDelay = 4; + +// Send an unreliable message, but if it cannot be sent relatively quickly, just drop it instead of queuing it. +// This is useful for messages that are not useful if they are excessively delayed, such as voice data. +// NOTE: The Nagle algorithm is not used, and if the message is not dropped, any messages waiting on the +// Nagle timer are immediately flushed. +// +// A message will be dropped under the following circumstances: +// - the connection is not fully connected. (E.g. the "Connecting" or "FindingRoute" states) +// - there is a sufficiently large number of messages queued up already such that the current message +// will not be placed on the wire in the next ~200ms or so. +// +// If a message is dropped for these reasons, k_EResultIgnored will be returned. +const int k_nSteamNetworkingSend_UnreliableNoDelay = k_nSteamNetworkingSend_Unreliable|k_nSteamNetworkingSend_NoDelay|k_nSteamNetworkingSend_NoNagle; + +// Reliable message send. Can send up to k_cbMaxSteamNetworkingSocketsMessageSizeSend bytes in a single message. +// Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for +// efficient sends of large chunks of data. +// +// The Nagle algorithm is used. See notes on k_ESteamNetworkingSendType_Unreliable for more details. +// See k_ESteamNetworkingSendType_ReliableNoNagle, ISteamNetworkingSockets::FlushMessagesOnConnection, +// ISteamNetworkingMessages::FlushMessagesToUser +// +// Migration note: This is NOT the same as k_EP2PSendReliable, it's more like k_EP2PSendReliableWithBuffering +const int k_nSteamNetworkingSend_Reliable = 8; + +// Send a message reliably, but bypass Nagle's algorithm. +// +// Migration note: This is equivalent to k_EP2PSendReliable +const int k_nSteamNetworkingSend_ReliableNoNagle = k_nSteamNetworkingSend_Reliable|k_nSteamNetworkingSend_NoNagle; + +// By default, message sending is queued, and the work of encryption and talking to +// the operating system sockets, etc is done on a service thread. This is usually a +// a performance win when messages are sent from the "main thread". However, if this +// flag is set, and data is ready to be sent immediately (either from this message +// or earlier queued data), then that work will be done in the current thread, before +// the current call returns. If data is not ready to be sent (due to rate limiting +// or Nagle), then this flag has no effect. +// +// This is an advanced flag used to control performance at a very low level. For +// most applications running on modern hardware with more than one CPU core, doing +// the work of sending on a service thread will yield the best performance. Only +// use this flag if you have a really good reason and understand what you are doing. +// Otherwise you will probably just make performance worse. +const int k_nSteamNetworkingSend_UseCurrentThread = 16; + +// When sending a message using ISteamNetworkingMessages, automatically re-establish +// a broken session, without returning k_EResultNoConnection. Without this flag, +// if you attempt to send a message, and the session was proactively closed by the +// peer, or an error occurred that disrupted communications, then you must close the +// session using ISteamNetworkingMessages::CloseSessionWithUser before attempting to +// send another message. (Or you can simply add this flag and retry.) In this way, +// the disruption cannot go unnoticed, and a more clear order of events can be +// ascertained. This is especially important when reliable messages are used, since +// if the connection is disrupted, some of those messages will not have been delivered, +// and it is in general not possible to know which. Although a +// SteamNetworkingMessagesSessionFailed_t callback will be posted when an error occurs +// to notify you that a failure has happened, callbacks are asynchronous, so it is not +// possible to tell exactly when it happened. And because the primary purpose of +// ISteamNetworkingMessages is to be like UDP, there is no notification when a peer closes +// the session. +// +// If you are not using any reliable messages (e.g. you are using ISteamNetworkingMessages +// exactly as a transport replacement for UDP-style datagrams only), you may not need to +// know when an underlying connection fails, and so you may not need this notification. +const int k_nSteamNetworkingSend_AutoRestartBrokenSession = 32; + +// +// Ping location / measurement +// + +/// Object that describes a "location" on the Internet with sufficient +/// detail that we can reasonably estimate an upper bound on the ping between +/// the two hosts, even if a direct route between the hosts is not possible, +/// and the connection must be routed through the Steam Datagram Relay network. +/// This does not contain any information that identifies the host. Indeed, +/// if two hosts are in the same building or otherwise have nearly identical +/// networking characteristics, then it's valid to use the same location +/// object for both of them. +/// +/// NOTE: This object should only be used in the same process! Do not serialize it, +/// send it over the wire, or persist it in a file or database! If you need +/// to do that, convert it to a string representation using the methods in +/// ISteamNetworkingUtils(). +struct SteamNetworkPingLocation_t +{ + uint8 m_data[ 512 ]; +}; + +/// Max possible length of a ping location, in string format. This is +/// an extremely conservative worst case value which leaves room for future +/// syntax enhancements. Most strings in practice are a lot shorter. +/// If you are storing many of these, you will very likely benefit from +/// using dynamic memory. +const int k_cchMaxSteamNetworkingPingLocationString = 1024; + +/// Special values that are returned by some functions that return a ping. +const int k_nSteamNetworkingPing_Failed = -1; +const int k_nSteamNetworkingPing_Unknown = -2; + +// +// Configuration values +// + +/// Configuration values can be applied to different types of objects. +enum ESteamNetworkingConfigScope +{ + + /// Get/set global option, or defaults. Even options that apply to more specific scopes + /// have global scope, and you may be able to just change the global defaults. If you + /// need different settings per connection (for example), then you will need to set those + /// options at the more specific scope. + k_ESteamNetworkingConfig_Global = 1, + + /// Some options are specific to a particular interface. Note that all connection + /// and listen socket settings can also be set at the interface level, and they will + /// apply to objects created through those interfaces. + k_ESteamNetworkingConfig_SocketsInterface = 2, + + /// Options for a listen socket. Listen socket options can be set at the interface layer, + /// if you have multiple listen sockets and they all use the same options. + /// You can also set connection options on a listen socket, and they set the defaults + /// for all connections accepted through this listen socket. (They will be used if you don't + /// set a connection option.) + k_ESteamNetworkingConfig_ListenSocket = 3, + + /// Options for a specific connection. + k_ESteamNetworkingConfig_Connection = 4, + + k_ESteamNetworkingConfigScope__Force32Bit = 0x7fffffff +}; + +// Different configuration values have different data types +enum ESteamNetworkingConfigDataType +{ + k_ESteamNetworkingConfig_Int32 = 1, + k_ESteamNetworkingConfig_Int64 = 2, + k_ESteamNetworkingConfig_Float = 3, + k_ESteamNetworkingConfig_String = 4, + k_ESteamNetworkingConfig_Ptr = 5, + + k_ESteamNetworkingConfigDataType__Force32Bit = 0x7fffffff +}; + +/// Configuration options +enum ESteamNetworkingConfigValue +{ + k_ESteamNetworkingConfig_Invalid = 0, + +// +// Connection options +// + + /// [connection int32] Timeout value (in ms) to use when first connecting + k_ESteamNetworkingConfig_TimeoutInitial = 24, + + /// [connection int32] Timeout value (in ms) to use after connection is established + k_ESteamNetworkingConfig_TimeoutConnected = 25, + + /// [connection int32] Upper limit of buffered pending bytes to be sent, + /// if this is reached SendMessage will return k_EResultLimitExceeded + /// Default is 512k (524288 bytes) + k_ESteamNetworkingConfig_SendBufferSize = 9, + + /// [connection int32] Upper limit on total size (in bytes) of received messages + /// that will be buffered waiting to be processed by the application. If this limit + /// is exceeded, packets will be dropped. This is to protect us from a malicious + /// peer flooding us with messages faster than we can process them. + /// + /// This must be bigger than k_ESteamNetworkingConfig_RecvMaxMessageSize + k_ESteamNetworkingConfig_RecvBufferSize = 47, + + /// [connection int32] Upper limit on the number of received messages that will + /// that will be buffered waiting to be processed by the application. If this limit + /// is exceeded, packets will be dropped. This is to protect us from a malicious + /// peer flooding us with messages faster than we can pull them off the wire. + k_ESteamNetworkingConfig_RecvBufferMessages = 48, + + /// [connection int32] Maximum message size that we are willing to receive. + /// if a client attempts to send us a message larger than this, the connection + /// will be immediately closed. + /// + /// Default is 512k (524288 bytes). Note that the peer needs to be able to + /// send a message this big. (See k_cbMaxSteamNetworkingSocketsMessageSizeSend.) + k_ESteamNetworkingConfig_RecvMaxMessageSize = 49, + + /// [connection int32] Max number of message segments that can be received + /// in a single UDP packet. While decoding a packet, if the number of segments + /// exceeds this, we will abort further packet processing. + /// + /// The default is effectively unlimited. If you know that you very rarely + /// send small packets, you can protect yourself from malicious senders by + /// lowering this number. + /// + /// In particular, if you are NOT using the reliability layer and are only using + /// SteamNetworkingSockets for datagram transport, setting this to a very low + /// number may be beneficial. (We recommend a value of 2.) Make sure your sender + /// disables Nagle! + k_ESteamNetworkingConfig_RecvMaxSegmentsPerPacket = 50, + + /// [connection int64] Get/set userdata as a configuration option. + /// The default value is -1. You may want to set the user data as + /// a config value, instead of using ISteamNetworkingSockets::SetConnectionUserData + /// in two specific instances: + /// + /// - You wish to set the userdata atomically when creating + /// an outbound connection, so that the userdata is filled in properly + /// for any callbacks that happen. However, note that this trick + /// only works for connections initiated locally! For incoming + /// connections, multiple state transitions may happen and + /// callbacks be queued, before you are able to service the first + /// callback! Be careful! + /// + /// - You can set the default userdata for all newly created connections + /// by setting this value at a higher level (e.g. on the listen + /// socket or at the global level.) Then this default + /// value will be inherited when the connection is created. + /// This is useful in case -1 is a valid userdata value, and you + /// wish to use something else as the default value so you can + /// tell if it has been set or not. + /// + /// HOWEVER: once a connection is created, the effective value is + /// then bound to the connection. Unlike other connection options, + /// if you change it again at a higher level, the new value will not + /// be inherited by connections. + /// + /// Using the userdata field in callback structs is not advised because + /// of tricky race conditions. Instead, you might try one of these methods: + /// + /// - Use a separate map with the HSteamNetConnection as the key. + /// - Fetch the userdata from the connection in your callback + /// using ISteamNetworkingSockets::GetConnectionUserData, to + // ensure you have the current value. + k_ESteamNetworkingConfig_ConnectionUserData = 40, + + /// [connection int32] Minimum/maximum send rate clamp, in bytes/sec. + /// At the time of this writing these two options should always be set to + /// the same value, to manually configure a specific send rate. The default + /// value is 256K. Eventually we hope to have the library estimate the bandwidth + /// of the channel and set the send rate to that estimated bandwidth, and these + /// values will only set limits on that send rate. + k_ESteamNetworkingConfig_SendRateMin = 10, + k_ESteamNetworkingConfig_SendRateMax = 11, + + /// [connection int32] Nagle time, in microseconds. When SendMessage is called, if + /// the outgoing message is less than the size of the MTU, it will be + /// queued for a delay equal to the Nagle timer value. This is to ensure + /// that if the application sends several small messages rapidly, they are + /// coalesced into a single packet. + /// See historical RFC 896. Value is in microseconds. + /// Default is 5000us (5ms). + k_ESteamNetworkingConfig_NagleTime = 12, + + /// [connection int32] Don't automatically fail IP connections that don't have + /// strong auth. On clients, this means we will attempt the connection even if + /// we don't know our identity or can't get a cert. On the server, it means that + /// we won't automatically reject a connection due to a failure to authenticate. + /// (You can examine the incoming connection and decide whether to accept it.) + /// + /// This is a dev configuration value, and you should not let users modify it in + /// production. + k_ESteamNetworkingConfig_IP_AllowWithoutAuth = 23, + + /// [connection int32] Do not send UDP packets with a payload of + /// larger than N bytes. If you set this, k_ESteamNetworkingConfig_MTU_DataSize + /// is automatically adjusted + k_ESteamNetworkingConfig_MTU_PacketSize = 32, + + /// [connection int32] (read only) Maximum message size you can send that + /// will not fragment, based on k_ESteamNetworkingConfig_MTU_PacketSize + k_ESteamNetworkingConfig_MTU_DataSize = 33, + + /// [connection int32] Allow unencrypted (and unauthenticated) communication. + /// 0: Not allowed (the default) + /// 1: Allowed, but prefer encrypted + /// 2: Allowed, and preferred + /// 3: Required. (Fail the connection if the peer requires encryption.) + /// + /// This is a dev configuration value, since its purpose is to disable encryption. + /// You should not let users modify it in production. (But note that it requires + /// the peer to also modify their value in order for encryption to be disabled.) + k_ESteamNetworkingConfig_Unencrypted = 34, + + /// [connection int32] Set this to 1 on outbound connections and listen sockets, + /// to enable "symmetric connect mode", which is useful in the following + /// common peer-to-peer use case: + /// + /// - The two peers are "equal" to each other. (Neither is clearly the "client" + /// or "server".) + /// - Either peer may initiate the connection, and indeed they may do this + /// at the same time + /// - The peers only desire a single connection to each other, and if both + /// peers initiate connections simultaneously, a protocol is needed for them + /// to resolve the conflict, so that we end up with a single connection. + /// + /// This use case is both common, and involves subtle race conditions and tricky + /// pitfalls, which is why the API has support for dealing with it. + /// + /// If an incoming connection arrives on a listen socket or via custom signaling, + /// and the application has not attempted to make a matching outbound connection + /// in symmetric mode, then the incoming connection can be accepted as usual. + /// A "matching" connection means that the relevant endpoint information matches. + /// (At the time this comment is being written, this is only supported for P2P + /// connections, which means that the peer identities must match, and the virtual + /// port must match. At a later time, symmetric mode may be supported for other + /// connection types.) + /// + /// If connections are initiated by both peers simultaneously, race conditions + /// can arise, but fortunately, most of them are handled internally and do not + /// require any special awareness from the application. However, there + /// is one important case that application code must be aware of: + /// If application code attempts an outbound connection using a ConnectXxx + /// function in symmetric mode, and a matching incoming connection is already + /// waiting on a listen socket, then instead of forming a new connection, + /// the ConnectXxx call will accept the existing incoming connection, and return + /// a connection handle to this accepted connection. + /// IMPORTANT: in this case, a SteamNetConnectionStatusChangedCallback_t + /// has probably *already* been posted to the queue for the incoming connection! + /// (Once callbacks are posted to the queue, they are not modified.) It doesn't + /// matter if the callback has not been consumed by the app. Thus, application + /// code that makes use of symmetric connections must be aware that, when processing a + /// SteamNetConnectionStatusChangedCallback_t for an incoming connection, the + /// m_hConn may refer to a new connection that the app has has not + /// seen before (the usual case), but it may also refer to a connection that + /// has already been accepted implicitly through a call to Connect()! In this + /// case, AcceptConnection() will return k_EResultDuplicateRequest. + /// + /// Only one symmetric connection to a given peer (on a given virtual port) + /// may exist at any given time. If client code attempts to create a connection, + /// and a (live) connection already exists on the local host, then either the + /// existing connection will be accepted as described above, or the attempt + /// to create a new connection will fail. Furthermore, linger mode functionality + /// is not supported on symmetric connections. + /// + /// A more complicated race condition can arise if both peers initiate a connection + /// at roughly the same time. In this situation, each peer will receive an incoming + /// connection from the other peer, when the application code has already initiated + /// an outgoing connection to that peer. The peers must resolve this conflict and + /// decide who is going to act as the "server" and who will act as the "client". + /// Typically the application does not need to be aware of this case as it is handled + /// internally. On both sides, the will observe their outbound connection being + /// "accepted", although one of them one have been converted internally to act + /// as the "server". + /// + /// In general, symmetric mode should be all-or-nothing: do not mix symmetric + /// connections with a non-symmetric connection that it might possible "match" + /// with. If you use symmetric mode on any connections, then both peers should + /// use it on all connections, and the corresponding listen socket, if any. The + /// behaviour when symmetric and ordinary connections are mixed is not defined by + /// this API, and you should not rely on it. (This advice only applies when connections + /// might possibly "match". For example, it's OK to use all symmetric mode + /// connections on one virtual port, and all ordinary, non-symmetric connections + /// on a different virtual port, as there is no potential for ambiguity.) + /// + /// When using the feature, you should set it in the following situations on + /// applicable objects: + /// + /// - When creating an outbound connection using ConnectXxx function + /// - When creating a listen socket. (Note that this will automatically cause + /// any accepted connections to inherit the flag.) + /// - When using custom signaling, before accepting an incoming connection. + /// + /// Setting the flag on listen socket and accepted connections will enable the + /// API to automatically deal with duplicate incoming connections, even if the + /// local host has not made any outbound requests. (In general, such duplicate + /// requests from a peer are ignored internally and will not be visible to the + /// application code. The previous connection must be closed or resolved first.) + k_ESteamNetworkingConfig_SymmetricConnect = 37, + + /// [connection int32] For connection types that use "virtual ports", this can be used + /// to assign a local virtual port. For incoming connections, this will always be the + /// virtual port of the listen socket (or the port requested by the remote host if custom + /// signaling is used and the connection is accepted), and cannot be changed. For + /// connections initiated locally, the local virtual port will default to the same as the + /// requested remote virtual port, if you do not specify a different option when creating + /// the connection. The local port is only relevant for symmetric connections, when + /// determining if two connections "match." In this case, if you need the local and remote + /// port to differ, you can set this value. + /// + /// You can also read back this value on listen sockets. + /// + /// This value should not be read or written in any other context. + k_ESteamNetworkingConfig_LocalVirtualPort = 38, + + /// [connection int32] Enable Dual wifi band support for this connection + /// 0 = no, 1 = yes, 2 = simulate it for debugging, even if dual wifi not available + k_ESteamNetworkingConfig_DualWifi_Enable = 39, + + /// [connection int32] True to enable diagnostics reporting through + /// generic platform UI. (Only available on Steam.) + k_ESteamNetworkingConfig_EnableDiagnosticsUI = 46, + +// +// Simulating network conditions +// +// These are global (not per-connection) because they apply at +// a relatively low UDP layer. +// + + /// [global float, 0--100] Randomly discard N pct of packets instead of sending/recv + /// This is a global option only, since it is applied at a low level + /// where we don't have much context + k_ESteamNetworkingConfig_FakePacketLoss_Send = 2, + k_ESteamNetworkingConfig_FakePacketLoss_Recv = 3, + + /// [global int32]. Delay all outbound/inbound packets by N ms + k_ESteamNetworkingConfig_FakePacketLag_Send = 4, + k_ESteamNetworkingConfig_FakePacketLag_Recv = 5, + + /// [global float] 0-100 Percentage of packets we will add additional delay + /// to (causing them to be reordered) + k_ESteamNetworkingConfig_FakePacketReorder_Send = 6, + k_ESteamNetworkingConfig_FakePacketReorder_Recv = 7, + + /// [global int32] Extra delay, in ms, to apply to reordered packets. + k_ESteamNetworkingConfig_FakePacketReorder_Time = 8, + + /// [global float 0--100] Globally duplicate some percentage of packets we send + k_ESteamNetworkingConfig_FakePacketDup_Send = 26, + k_ESteamNetworkingConfig_FakePacketDup_Recv = 27, + + /// [global int32] Amount of delay, in ms, to delay duplicated packets. + /// (We chose a random delay between 0 and this value) + k_ESteamNetworkingConfig_FakePacketDup_TimeMax = 28, + + /// [global int32] Trace every UDP packet, similar to Wireshark or tcpdump. + /// Value is max number of bytes to dump. -1 disables tracing. + // 0 only traces the info but no actual data bytes + k_ESteamNetworkingConfig_PacketTraceMaxBytes = 41, + + + // [global int32] Global UDP token bucket rate limits. + // "Rate" refers to the steady state rate. (Bytes/sec, the + // rate that tokens are put into the bucket.) "Burst" + // refers to the max amount that could be sent in a single + // burst. (In bytes, the max capacity of the bucket.) + // Rate=0 disables the limiter entirely, which is the default. + // Burst=0 disables burst. (This is not realistic. A + // burst of at least 4K is recommended; the default is higher.) + k_ESteamNetworkingConfig_FakeRateLimit_Send_Rate = 42, + k_ESteamNetworkingConfig_FakeRateLimit_Send_Burst = 43, + k_ESteamNetworkingConfig_FakeRateLimit_Recv_Rate = 44, + k_ESteamNetworkingConfig_FakeRateLimit_Recv_Burst = 45, + + // Timeout used for out-of-order correction. This is used when we see a small + // gap in the sequence number on a packet flow. For example let's say we are + // processing packet 105 when the most recent one was 103. 104 might have dropped, + // but there is also a chance that packets are simply being reordered. It is very + // common on certain types of connections for packet 104 to arrive very soon after 105, + // especially if 104 was large and 104 was small. In this case, when we see packet 105 + // we will shunt it aside and pend it, in the hopes of seeing 104 soon after. If 104 + // arrives before the a timeout occurs, then we can deliver the packets in order to the + // remainder of packet processing, and we will record this as a "correctable" out-of-order + // situation. If the timer expires, then we will process packet 105, and assume for now + // that 104 has dropped. (If 104 later arrives, we will process it, but that will be + // accounted for as uncorrected.) + // + // The default value is 1000 microseconds. Note that the Windows scheduler does not + // have microsecond precision. + // + // Set the value to 0 to disable out of order correction at the packet layer. + // In many cases we are still effectively able to correct the situation because + // reassembly of message fragments is tolerant of fragments packets arriving out of + // order. Also, when messages are decoded and inserted into the queue for the app + // to receive them, we will correct out of order messages that have not been + // dequeued by the app yet. However, when out-of-order packets are corrected + // at the packet layer, they will not reduce the connection quality measure. + // (E.g. SteamNetConnectionRealTimeStatus_t::m_flConnectionQualityLocal) + k_ESteamNetworkingConfig_OutOfOrderCorrectionWindowMicroseconds = 51, + +// +// Callbacks +// + + // On Steam, you may use the default Steam callback dispatch mechanism. If you prefer + // to not use this dispatch mechanism (or you are not running with Steam), or you want + // to associate specific functions with specific listen sockets or connections, you can + // register them as configuration values. + // + // Note also that ISteamNetworkingUtils has some helpers to set these globally. + + /// [connection FnSteamNetConnectionStatusChanged] Callback that will be invoked + /// when the state of a connection changes. + /// + /// IMPORTANT: callbacks are dispatched to the handler that is in effect at the time + /// the event occurs, which might be in another thread. For example, immediately after + /// creating a listen socket, you may receive an incoming connection. And then immediately + /// after this, the remote host may close the connection. All of this could happen + /// before the function to create the listen socket has returned. For this reason, + /// callbacks usually must be in effect at the time of object creation. This means + /// you should set them when you are creating the listen socket or connection, or have + /// them in effect so they will be inherited at the time of object creation. + /// + /// For example: + /// + /// exterm void MyStatusChangedFunc( SteamNetConnectionStatusChangedCallback_t *info ); + /// SteamNetworkingConfigValue_t opt; opt.SetPtr( k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, MyStatusChangedFunc ); + /// SteamNetworkingIPAddr localAddress; localAddress.Clear(); + /// HSteamListenSocket hListenSock = SteamNetworkingSockets()->CreateListenSocketIP( localAddress, 1, &opt ); + /// + /// When accepting an incoming connection, there is no atomic way to switch the + /// callback. However, if the connection is DOA, AcceptConnection() will fail, and + /// you can fetch the state of the connection at that time. + /// + /// If all connections and listen sockets can use the same callback, the simplest + /// method is to set it globally before you create any listen sockets or connections. + k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged = 201, + + /// [global FnSteamNetAuthenticationStatusChanged] Callback that will be invoked + /// when our auth state changes. If you use this, install the callback before creating + /// any connections or listen sockets, and don't change it. + /// See: ISteamNetworkingUtils::SetGlobalCallback_SteamNetAuthenticationStatusChanged + k_ESteamNetworkingConfig_Callback_AuthStatusChanged = 202, + + /// [global FnSteamRelayNetworkStatusChanged] Callback that will be invoked + /// when our auth state changes. If you use this, install the callback before creating + /// any connections or listen sockets, and don't change it. + /// See: ISteamNetworkingUtils::SetGlobalCallback_SteamRelayNetworkStatusChanged + k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged = 203, + + /// [global FnSteamNetworkingMessagesSessionRequest] Callback that will be invoked + /// when a peer wants to initiate a SteamNetworkingMessagesSessionRequest. + /// See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionRequest + k_ESteamNetworkingConfig_Callback_MessagesSessionRequest = 204, + + /// [global FnSteamNetworkingMessagesSessionFailed] Callback that will be invoked + /// when a session you have initiated, or accepted either fails to connect, or loses + /// connection in some unexpected way. + /// See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionFailed + k_ESteamNetworkingConfig_Callback_MessagesSessionFailed = 205, + + /// [global FnSteamNetworkingSocketsCreateConnectionSignaling] Callback that will + /// be invoked when we need to create a signaling object for a connection + /// initiated locally. See: ISteamNetworkingSockets::ConnectP2P, + /// ISteamNetworkingMessages. + k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling = 206, + + /// [global FnSteamNetworkingFakeIPResult] Callback that's invoked when + /// a FakeIP allocation finishes. See: ISteamNetworkingSockets::BeginAsyncRequestFakeIP, + /// ISteamNetworkingUtils::SetGlobalCallback_FakeIPResult + k_ESteamNetworkingConfig_Callback_FakeIPResult = 207, + +// +// P2P connection settings +// + +// /// [listen socket int32] When you create a P2P listen socket, we will automatically +// /// open up a UDP port to listen for LAN connections. LAN connections can be made +// /// without any signaling: both sides can be disconnected from the Internet. +// /// +// /// This value can be set to zero to disable the feature. +// k_ESteamNetworkingConfig_P2P_Discovery_Server_LocalPort = 101, +// +// /// [connection int32] P2P connections can perform broadcasts looking for the peer +// /// on the LAN. +// k_ESteamNetworkingConfig_P2P_Discovery_Client_RemotePort = 102, + + /// [connection string] Comma-separated list of STUN servers that can be used + /// for NAT piercing. If you set this to an empty string, NAT piercing will + /// not be attempted. Also if "public" candidates are not allowed for + /// P2P_Transport_ICE_Enable, then this is ignored. + k_ESteamNetworkingConfig_P2P_STUN_ServerList = 103, + + /// [connection int32] What types of ICE candidates to share with the peer. + /// See k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_xxx values + k_ESteamNetworkingConfig_P2P_Transport_ICE_Enable = 104, + + /// [connection int32] When selecting P2P transport, add various + /// penalties to the scores for selected transports. (Route selection + /// scores are on a scale of milliseconds. The score begins with the + /// route ping time and is then adjusted.) + k_ESteamNetworkingConfig_P2P_Transport_ICE_Penalty = 105, + k_ESteamNetworkingConfig_P2P_Transport_SDR_Penalty = 106, + k_ESteamNetworkingConfig_P2P_TURN_ServerList = 107, + k_ESteamNetworkingConfig_P2P_TURN_UserList = 108, + k_ESteamNetworkingConfig_P2P_TURN_PassList = 109, + //k_ESteamNetworkingConfig_P2P_Transport_LANBeacon_Penalty = 107, + k_ESteamNetworkingConfig_P2P_Transport_ICE_Implementation = 110, + +// +// Settings for SDR relayed connections +// + + /// [global int32] If the first N pings to a port all fail, mark that port as unavailable for + /// a while, and try a different one. Some ISPs and routers may drop the first + /// packet, so setting this to 1 may greatly disrupt communications. + k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFailInitial = 19, + + /// [global int32] If N consecutive pings to a port fail, after having received successful + /// communication, mark that port as unavailable for a while, and try a + /// different one. + k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFail = 20, + + /// [global int32] Minimum number of lifetime pings we need to send, before we think our estimate + /// is solid. The first ping to each cluster is very often delayed because of NAT, + /// routers not having the best route, etc. Until we've sent a sufficient number + /// of pings, our estimate is often inaccurate. Keep pinging until we get this + /// many pings. + k_ESteamNetworkingConfig_SDRClient_MinPingsBeforePingAccurate = 21, + + /// [global int32] Set all steam datagram traffic to originate from the same + /// local port. By default, we open up a new UDP socket (on a different local + /// port) for each relay. This is slightly less optimal, but it works around + /// some routers that don't implement NAT properly. If you have intermittent + /// problems talking to relays that might be NAT related, try toggling + /// this flag + k_ESteamNetworkingConfig_SDRClient_SingleSocket = 22, + + /// [global string] Code of relay cluster to force use. If not empty, we will + /// only use relays in that cluster. E.g. 'iad' + k_ESteamNetworkingConfig_SDRClient_ForceRelayCluster = 29, + + /// [connection string] For development, a base-64 encoded ticket generated + /// using the cert tool. This can be used to connect to a gameserver via SDR + /// without a ticket generated using the game coordinator. (You will still + /// need a key that is trusted for your app, however.) + /// + /// This can also be passed using the SDR_DEVTICKET environment variable + k_ESteamNetworkingConfig_SDRClient_DevTicket = 30, + + /// [global string] For debugging. Override list of relays from the config with + /// this set (maybe just one). Comma-separated list. + k_ESteamNetworkingConfig_SDRClient_ForceProxyAddr = 31, + + /// [global string] For debugging. Force ping times to clusters to be the specified + /// values. A comma separated list of <cluster>=<ms> values. E.g. "sto=32,iad=100" + /// + /// This is a dev configuration value, you probably should not let users modify it + /// in production. + k_ESteamNetworkingConfig_SDRClient_FakeClusterPing = 36, + + /// [global int32] When probing the SteamDatagram network, we limit exploration + /// to the closest N POPs, based on our current best approximated ping to that POP. + k_ESteamNetworkingConfig_SDRClient_LimitPingProbesToNearestN = 60, + +// +// Log levels for debugging information of various subsystems. +// Higher numeric values will cause more stuff to be printed. +// See ISteamNetworkingUtils::SetDebugOutputFunction for more +// information +// +// The default for all values is k_ESteamNetworkingSocketsDebugOutputType_Warning. +// + k_ESteamNetworkingConfig_LogLevel_AckRTT = 13, // [connection int32] RTT calculations for inline pings and replies + k_ESteamNetworkingConfig_LogLevel_PacketDecode = 14, // [connection int32] log SNP packets send/recv + k_ESteamNetworkingConfig_LogLevel_Message = 15, // [connection int32] log each message send/recv + k_ESteamNetworkingConfig_LogLevel_PacketGaps = 16, // [connection int32] dropped packets + k_ESteamNetworkingConfig_LogLevel_P2PRendezvous = 17, // [connection int32] P2P rendezvous messages + k_ESteamNetworkingConfig_LogLevel_SDRRelayPings = 18, // [global int32] Ping relays + + // Experimental. Set the ECN header field on all outbound UDP packets + // -1 = the default, and means "don't set anything". + // 0..3 = set that value. (Even though 0 is the default UDP ECN value, a 0 here means "explicitly set a 0".) + k_ESteamNetworkingConfig_ECN = 999, + + // Deleted, do not use + k_ESteamNetworkingConfig_DELETED_EnumerateDevVars = 35, + + k_ESteamNetworkingConfigValue__Force32Bit = 0x7fffffff +}; + +// Bitmask of types to share +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Default = -1; // Special value - use user defaults +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Disable = 0; // Do not do any ICE work at all or share any IP addresses with peer +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Relay = 1; // Relayed connection via TURN server. +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Private = 2; // host addresses that appear to be link-local or RFC1918 addresses +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Public = 4; // STUN reflexive addresses, or host address that isn't a "private" address +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_All = 0x7fffffff; + +/// In a few places we need to set configuration options on listen sockets and connections, and +/// have them take effect *before* the listen socket or connection really starts doing anything. +/// Creating the object and then setting the options "immediately" after creation doesn't work +/// completely, because network packets could be received between the time the object is created and +/// when the options are applied. To set options at creation time in a reliable way, they must be +/// passed to the creation function. This structure is used to pass those options. +/// +/// For the meaning of these fields, see ISteamNetworkingUtils::SetConfigValue. Basically +/// when the object is created, we just iterate over the list of options and call +/// ISteamNetworkingUtils::SetConfigValueStruct, where the scope arguments are supplied by the +/// object being created. +struct SteamNetworkingConfigValue_t +{ + /// Which option is being set + ESteamNetworkingConfigValue m_eValue; + + /// Which field below did you fill in? + ESteamNetworkingConfigDataType m_eDataType; + + /// Option value + union + { + int32_t m_int32; + int64_t m_int64; + float m_float; + const char *m_string; // Points to your '\0'-terminated buffer + void *m_ptr; + } m_val; + + // + // Shortcut helpers to set the type and value in a single call + // + inline void SetInt32( ESteamNetworkingConfigValue eVal, int32_t data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Int32; + m_val.m_int32 = data; + } + inline void SetInt64( ESteamNetworkingConfigValue eVal, int64_t data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Int64; + m_val.m_int64 = data; + } + inline void SetFloat( ESteamNetworkingConfigValue eVal, float data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Float; + m_val.m_float = data; + } + inline void SetPtr( ESteamNetworkingConfigValue eVal, void *data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Ptr; + m_val.m_ptr = data; + } + inline void SetString( ESteamNetworkingConfigValue eVal, const char *data ) // WARNING - Just saves your pointer. Does NOT make a copy of the string + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Ptr; + m_val.m_string = data; + } +}; + +/// Return value of ISteamNetworkintgUtils::GetConfigValue +enum ESteamNetworkingGetConfigValueResult +{ + k_ESteamNetworkingGetConfigValue_BadValue = -1, // No such configuration value + k_ESteamNetworkingGetConfigValue_BadScopeObj = -2, // Bad connection handle, etc + k_ESteamNetworkingGetConfigValue_BufferTooSmall = -3, // Couldn't fit the result in your buffer + k_ESteamNetworkingGetConfigValue_OK = 1, + k_ESteamNetworkingGetConfigValue_OKInherited = 2, // A value was not set at this level, but the effective (inherited) value was returned. + + k_ESteamNetworkingGetConfigValueResult__Force32Bit = 0x7fffffff +}; + +// +// Debug output +// + +/// Detail level for diagnostic output callback. +/// See ISteamNetworkingUtils::SetDebugOutputFunction +enum ESteamNetworkingSocketsDebugOutputType +{ + k_ESteamNetworkingSocketsDebugOutputType_None = 0, + k_ESteamNetworkingSocketsDebugOutputType_Bug = 1, // You used the API incorrectly, or an internal error happened + k_ESteamNetworkingSocketsDebugOutputType_Error = 2, // Run-time error condition that isn't the result of a bug. (E.g. we are offline, cannot bind a port, etc) + k_ESteamNetworkingSocketsDebugOutputType_Important = 3, // Nothing is wrong, but this is an important notification + k_ESteamNetworkingSocketsDebugOutputType_Warning = 4, + k_ESteamNetworkingSocketsDebugOutputType_Msg = 5, // Recommended amount + k_ESteamNetworkingSocketsDebugOutputType_Verbose = 6, // Quite a bit + k_ESteamNetworkingSocketsDebugOutputType_Debug = 7, // Practically everything + k_ESteamNetworkingSocketsDebugOutputType_Everything = 8, // Wall of text, detailed packet contents breakdown, etc + + k_ESteamNetworkingSocketsDebugOutputType__Force32Bit = 0x7fffffff +}; + +/// Setup callback for debug output, and the desired verbosity you want. +typedef void (*FSteamNetworkingSocketsDebugOutput)( ESteamNetworkingSocketsDebugOutputType nType, const char *pszMsg ); + +// +// Valve data centers +// + +/// Convert 3- or 4-character ID to 32-bit int. +inline SteamNetworkingPOPID CalculateSteamNetworkingPOPIDFromString( const char *pszCode ) +{ + // OK we made a bad decision when we decided how to pack 3-character codes into a uint32. We'd like to support + // 4-character codes, but we don't want to break compatibility. The migration path has some subtleties that make + // this nontrivial, and there are already some IDs stored in SQL. Ug, so the 4 character code "abcd" will + // be encoded with the digits like "0xddaabbcc". + // + // Also: we don't currently use 1- or 2-character codes, but if ever do in the future, let's make sure don't read + // past the end of the string and access uninitialized memory. (And if the string is empty, we always want + // to return 0 and not read bytes past the '\0'.) + // + // There is also extra paranoia to make sure the bytes are not treated as signed. + SteamNetworkingPOPID result = (uint32)(uint8)pszCode[0] << 16U; + if ( result && pszCode[1] ) + { + result |= ( (uint32)(uint8)pszCode[1] << 8U ); + if ( pszCode[2] ) + { + result |= (uint32)(uint8)pszCode[2] | ( (uint32)(uint8)pszCode[3] << 24U ); + } + } + return result; +} + +/// Unpack integer to string representation, including terminating '\0' +/// +/// See also SteamNetworkingPOPIDRender +template <int N> +inline void GetSteamNetworkingLocationPOPStringFromID( SteamNetworkingPOPID id, char (&szCode)[N] ) +{ + static_assert( N >= 5, "Fixed-size buffer not big enough to hold SDR POP ID" ); + szCode[0] = char( id >> 16U ); + szCode[1] = char( id >> 8U ); + szCode[2] = char( id ); + szCode[3] = char( id >> 24U ); // See comment above about deep regret and sadness + szCode[4] = 0; +} + +/// The POPID "dev" is used in non-production environments for testing. +const SteamNetworkingPOPID k_SteamDatagramPOPID_dev = ( (uint32)'d' << 16U ) | ( (uint32)'e' << 8U ) | (uint32)'v'; + +#ifndef API_GEN + +/// Utility class for printing a SteamNetworkingPOPID. +struct SteamNetworkingPOPIDRender +{ + SteamNetworkingPOPIDRender( SteamNetworkingPOPID x ) { GetSteamNetworkingLocationPOPStringFromID( x, buf ); } + inline const char *c_str() const { return buf; } +private: + char buf[ 8 ]; +}; + +#endif + +/////////////////////////////////////////////////////////////////////////////// +// +// Internal stuff +#ifndef API_GEN + +// For code compatibility +typedef SteamNetworkingMessage_t ISteamNetworkingMessage; +typedef SteamNetworkingErrMsg SteamDatagramErrMsg; + +inline void SteamNetworkingIPAddr::Clear() { memset( this, 0, sizeof(*this) ); } +inline bool SteamNetworkingIPAddr::IsIPv6AllZeros() const { const uint64 *q = (const uint64 *)m_ipv6; return q[0] == 0 && q[1] == 0; } +inline void SteamNetworkingIPAddr::SetIPv6( const uint8 *ipv6, uint16 nPort ) { memcpy( m_ipv6, ipv6, 16 ); m_port = nPort; } +inline void SteamNetworkingIPAddr::SetIPv4( uint32 nIP, uint16 nPort ) { m_ipv4.m_8zeros = 0; m_ipv4.m_0000 = 0; m_ipv4.m_ffff = 0xffff; m_ipv4.m_ip[0] = uint8(nIP>>24); m_ipv4.m_ip[1] = uint8(nIP>>16); m_ipv4.m_ip[2] = uint8(nIP>>8); m_ipv4.m_ip[3] = uint8(nIP); m_port = nPort; } +inline bool SteamNetworkingIPAddr::IsIPv4() const { return m_ipv4.m_8zeros == 0 && m_ipv4.m_0000 == 0 && m_ipv4.m_ffff == 0xffff; } +inline uint32 SteamNetworkingIPAddr::GetIPv4() const { return IsIPv4() ? ( (uint32(m_ipv4.m_ip[0])<<24) | (uint32(m_ipv4.m_ip[1])<<16) | (uint32(m_ipv4.m_ip[2])<<8) | uint32(m_ipv4.m_ip[3]) ) : 0; } +inline void SteamNetworkingIPAddr::SetIPv6LocalHost( uint16 nPort ) { m_ipv4.m_8zeros = 0; m_ipv4.m_0000 = 0; m_ipv4.m_ffff = 0; m_ipv6[12] = 0; m_ipv6[13] = 0; m_ipv6[14] = 0; m_ipv6[15] = 1; m_port = nPort; } +inline bool SteamNetworkingIPAddr::IsLocalHost() const { return ( m_ipv4.m_8zeros == 0 && m_ipv4.m_0000 == 0 && m_ipv4.m_ffff == 0 && m_ipv6[12] == 0 && m_ipv6[13] == 0 && m_ipv6[14] == 0 && m_ipv6[15] == 1 ) || ( GetIPv4() == 0x7f000001 ); } +inline bool SteamNetworkingIPAddr::operator==(const SteamNetworkingIPAddr &x ) const { return memcmp( this, &x, sizeof(SteamNetworkingIPAddr) ) == 0; } + +inline void SteamNetworkingIdentity::Clear() { memset( this, 0, sizeof(*this) ); } +inline bool SteamNetworkingIdentity::IsInvalid() const { return m_eType == k_ESteamNetworkingIdentityType_Invalid; } +inline void SteamNetworkingIdentity::SetSteamID( CSteamID steamID ) { SetSteamID64( steamID.ConvertToUint64() ); } +inline CSteamID SteamNetworkingIdentity::GetSteamID() const { return CSteamID( GetSteamID64() ); } +inline void SteamNetworkingIdentity::SetSteamID64( uint64 steamID ) { m_eType = k_ESteamNetworkingIdentityType_SteamID; m_cbSize = sizeof( m_steamID64 ); m_steamID64 = steamID; } +inline uint64 SteamNetworkingIdentity::GetSteamID64() const { return m_eType == k_ESteamNetworkingIdentityType_SteamID ? m_steamID64 : 0; } +inline bool SteamNetworkingIdentity::SetXboxPairwiseID( const char *pszString ) { size_t l = strlen( pszString ); if ( l < 1 || l >= sizeof(m_szXboxPairwiseID) ) return false; + m_eType = k_ESteamNetworkingIdentityType_XboxPairwiseID; m_cbSize = int(l+1); memcpy( m_szXboxPairwiseID, pszString, m_cbSize ); return true; } +inline const char *SteamNetworkingIdentity::GetXboxPairwiseID() const { return m_eType == k_ESteamNetworkingIdentityType_XboxPairwiseID ? m_szXboxPairwiseID : NULL; } +inline void SteamNetworkingIdentity::SetPSNID( uint64 id ) { m_eType = k_ESteamNetworkingIdentityType_SonyPSN; m_cbSize = sizeof( m_PSNID ); m_PSNID = id; } +inline uint64 SteamNetworkingIdentity::GetPSNID() const { return m_eType == k_ESteamNetworkingIdentityType_SonyPSN ? m_PSNID : 0; } +inline void SteamNetworkingIdentity::SetStadiaID( uint64 id ) { m_eType = k_ESteamNetworkingIdentityType_GoogleStadia; m_cbSize = sizeof( m_stadiaID ); m_stadiaID = id; } +inline uint64 SteamNetworkingIdentity::GetStadiaID() const { return m_eType == k_ESteamNetworkingIdentityType_GoogleStadia ? m_stadiaID : 0; } +inline void SteamNetworkingIdentity::SetIPAddr( const SteamNetworkingIPAddr &addr ) { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip = addr; } +inline const SteamNetworkingIPAddr *SteamNetworkingIdentity::GetIPAddr() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? &m_ip : NULL; } +inline void SteamNetworkingIdentity::SetIPv4Addr( uint32 nIPv4, uint16 nPort ) { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip.SetIPv4( nIPv4, nPort ); } +inline uint32 SteamNetworkingIdentity::GetIPv4() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? m_ip.GetIPv4() : 0; } +inline ESteamNetworkingFakeIPType SteamNetworkingIdentity::GetFakeIPType() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? m_ip.GetFakeIPType() : k_ESteamNetworkingFakeIPType_Invalid; } +inline void SteamNetworkingIdentity::SetLocalHost() { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip.SetIPv6LocalHost(); } +inline bool SteamNetworkingIdentity::IsLocalHost() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress && m_ip.IsLocalHost(); } +inline bool SteamNetworkingIdentity::SetGenericString( const char *pszString ) { size_t l = strlen( pszString ); if ( l >= sizeof(m_szGenericString) ) return false; + m_eType = k_ESteamNetworkingIdentityType_GenericString; m_cbSize = int(l+1); memcpy( m_szGenericString, pszString, m_cbSize ); return true; } +inline const char *SteamNetworkingIdentity::GetGenericString() const { return m_eType == k_ESteamNetworkingIdentityType_GenericString ? m_szGenericString : NULL; } +inline bool SteamNetworkingIdentity::SetGenericBytes( const void *data, size_t cbLen ) { if ( cbLen > sizeof(m_genericBytes) ) return false; + m_eType = k_ESteamNetworkingIdentityType_GenericBytes; m_cbSize = int(cbLen); memcpy( m_genericBytes, data, m_cbSize ); return true; } +inline const uint8 *SteamNetworkingIdentity::GetGenericBytes( int &cbLen ) const { if ( m_eType != k_ESteamNetworkingIdentityType_GenericBytes ) return NULL; + cbLen = m_cbSize; return m_genericBytes; } +inline bool SteamNetworkingIdentity::operator==(const SteamNetworkingIdentity &x ) const { return m_eType == x.m_eType && m_cbSize == x.m_cbSize && memcmp( m_genericBytes, x.m_genericBytes, m_cbSize ) == 0; } +inline void SteamNetworkingMessage_t::Release() { (*m_pfnRelease)( this ); } + +#endif // #ifndef API_GEN + +#endif // #ifndef STEAMNETWORKINGTYPES diff --git a/lib/osx/include/steam/steamtypes.h b/lib/osx/include/steam/steamtypes.h index f74df1a..657f5b3 100644 --- a/lib/osx/include/steam/steamtypes.h +++ b/lib/osx/include/steam/steamtypes.h @@ -1,42 +1,40 @@ -//========= Copyright © 1996-2008, Valve LLC, All rights reserved. ============ -// -// Purpose: -// -//============================================================================= +//========= Copyright 1996-2022, Valve LLC, All rights reserved. ============ #ifndef STEAMTYPES_H #define STEAMTYPES_H -#ifdef _WIN32 -#pragma once -#endif #define S_CALLTYPE __cdecl +// WARNING: __cdecl is potentially #defined away in steam_api_common.h // Steam-specific types. Defined here so this header file can be included in other code bases. #ifndef WCHARTYPES_H typedef unsigned char uint8; #endif -#if defined( __GNUC__ ) && !defined(POSIX) +#ifdef __GNUC__ #if __GNUC__ < 4 #error "Steamworks requires GCC 4.X (4.2 or 4.4 have been tested)" #endif - #define POSIX 1 #endif -#if defined(__x86_64__) || defined(_WIN64) +#if defined(__LP64__) || defined(__x86_64__) || defined(_WIN64) || defined(__aarch64__) || defined(__s390x__) #define X64BITS #endif +#if !defined(VALVE_BIG_ENDIAN) +#if defined(_PS3) // Make sure VALVE_BIG_ENDIAN gets set on PS3, may already be set previously in Valve internal code. -#if !defined(VALVE_BIG_ENDIAN) && defined(_PS3) -#define VALVE_BIG_ENDIAN +#define VALVE_BIG_ENDIAN 1 +#endif +#if defined( __GNUC__ ) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#define VALVE_BIG_ENDIAN 1 +#endif #endif typedef unsigned char uint8; typedef signed char int8; -#if defined( _WIN32 ) +#if defined( _WIN32 ) && !defined( __GNUC__ ) typedef __int16 int16; typedef unsigned __int16 uint16; @@ -84,98 +82,101 @@ typedef unsigned int uintp; #endif // else _WIN32 -#ifdef API_GEN -# define CLANG_ATTR(ATTR) __attribute__((annotate( ATTR ))) -#else -# define CLANG_ATTR(ATTR) -#endif - -#define METHOD_DESC(DESC) CLANG_ATTR( "desc:" #DESC ";" ) -#define IGNOREATTR() CLANG_ATTR( "ignore" ) -#define OUT_STRUCT() CLANG_ATTR( "out_struct: ;" ) -#define OUT_STRING() CLANG_ATTR( "out_string: ;" ) -#define OUT_ARRAY_CALL(COUNTER,FUNCTION,PARAMS) CLANG_ATTR( "out_array_call:" #COUNTER "," #FUNCTION "," #PARAMS ";" ) -#define OUT_ARRAY_COUNT(COUNTER, DESC) CLANG_ATTR( "out_array_count:" #COUNTER ";desc:" #DESC ) -#define ARRAY_COUNT(COUNTER) CLANG_ATTR( "array_count:" #COUNTER ";" ) -#define ARRAY_COUNT_D(COUNTER, DESC) CLANG_ATTR( "array_count:" #COUNTER ";desc:" #DESC ) -#define BUFFER_COUNT(COUNTER) CLANG_ATTR( "buffer_count:" #COUNTER ";" ) -#define OUT_BUFFER_COUNT(COUNTER) CLANG_ATTR( "out_buffer_count:" #COUNTER ";" ) -#define OUT_STRING_COUNT(COUNTER) CLANG_ATTR( "out_string_count:" #COUNTER ";" ) -#define DESC(DESC) CLANG_ATTR("desc:" #DESC ";") -#define CALL_RESULT(RESULT_TYPE) CLANG_ATTR("callresult:" #RESULT_TYPE ";") -#define CALL_BACK(RESULT_TYPE) CLANG_ATTR("callback:" #RESULT_TYPE ";") - -const int k_cubSaltSize = 8; -typedef uint8 Salt_t[ k_cubSaltSize ]; - -//----------------------------------------------------------------------------- -// GID (GlobalID) stuff -// This is a globally unique identifier. It's guaranteed to be unique across all -// racks and servers for as long as a given universe persists. -//----------------------------------------------------------------------------- -// NOTE: for GID parsing/rendering and other utils, see gid.h -typedef uint64 GID_t; - -const GID_t k_GIDNil = 0xffffffffffffffffull; - -// For convenience, we define a number of types that are just new names for GIDs -typedef uint64 JobID_t; // Each Job has a unique ID -typedef GID_t TxnID_t; // Each financial transaction has a unique ID - -const GID_t k_TxnIDNil = k_GIDNil; -const GID_t k_TxnIDUnknown = 0; - -const JobID_t k_JobIDNil = 0xffffffffffffffffull; - -// this is baked into client messages and interfaces as an int, -// make sure we never break this. -typedef uint32 PackageId_t; -const PackageId_t k_uPackageIdFreeSub = 0x0; -const PackageId_t k_uPackageIdInvalid = 0xFFFFFFFF; - -typedef uint32 BundleId_t; -const BundleId_t k_uBundleIdInvalid = 0; - -// this is baked into client messages and interfaces as an int, -// make sure we never break this. typedef uint32 AppId_t; const AppId_t k_uAppIdInvalid = 0x0; -typedef uint64 AssetClassId_t; -const AssetClassId_t k_ulAssetClassIdInvalid = 0x0; - -typedef uint32 PhysicalItemId_t; -const PhysicalItemId_t k_uPhysicalItemIdInvalid = 0x0; - - -// this is baked into client messages and interfaces as an int, -// make sure we never break this. AppIds and DepotIDs also presently -// share the same namespace, but since we'd like to change that in the future -// I've defined it seperately here. +// AppIds and DepotIDs also presently share the same namespace typedef uint32 DepotId_t; const DepotId_t k_uDepotIdInvalid = 0x0; -// RTime32 -// We use this 32 bit time representing real world time. -// It offers 1 second resolution beginning on January 1, 1970 (Unix time) +// RTime32. Seconds elapsed since Jan 1 1970, i.e. unix timestamp. +// It's the same as time_t, but it is always 32-bit and unsigned. typedef uint32 RTime32; -typedef uint32 CellID_t; -const CellID_t k_uCellIDInvalid = 0xFFFFFFFF; - // handle to a Steam API call typedef uint64 SteamAPICall_t; const SteamAPICall_t k_uAPICallInvalid = 0x0; typedef uint32 AccountID_t; +const AccountID_t k_uAccountIdInvalid = 0; -typedef uint32 PartnerId_t; -const PartnerId_t k_uPartnerIdInvalid = 0; +// Party Beacon ID +typedef uint64 PartyBeaconID_t; +const PartyBeaconID_t k_ulPartyBeaconIdInvalid = 0; -// ID for a depot content manifest -typedef uint64 ManifestId_t; -const ManifestId_t k_uManifestIdInvalid = 0; +enum ESteamIPType +{ + k_ESteamIPTypeIPv4 = 0, + k_ESteamIPTypeIPv6 = 1, +}; +#pragma pack( push, 1 ) +struct SteamIPAddress_t +{ + union { + + uint32 m_unIPv4; // Host order + uint8 m_rgubIPv6[16]; // Network order! Same as inaddr_in6. (0011:2233:4455:6677:8899:aabb:ccdd:eeff) + + // Internal use only + uint64 m_ipv6Qword[2]; // big endian + }; + + ESteamIPType m_eType; + + bool IsSet() const + { + if ( k_ESteamIPTypeIPv4 == m_eType ) + { + return m_unIPv4 != 0; + } + else + { + return m_ipv6Qword[0] !=0 || m_ipv6Qword[1] != 0; + } + } + + static SteamIPAddress_t IPv4Any() + { + SteamIPAddress_t ipOut; + ipOut.m_eType = k_ESteamIPTypeIPv4; + ipOut.m_unIPv4 = 0; + + return ipOut; + } + + static SteamIPAddress_t IPv6Any() + { + SteamIPAddress_t ipOut; + ipOut.m_eType = k_ESteamIPTypeIPv6; + ipOut.m_ipv6Qword[0] = 0; + ipOut.m_ipv6Qword[1] = 0; + + return ipOut; + } + + static SteamIPAddress_t IPv4Loopback() + { + SteamIPAddress_t ipOut; + ipOut.m_eType = k_ESteamIPTypeIPv4; + ipOut.m_unIPv4 = 0x7f000001; + + return ipOut; + } + + static SteamIPAddress_t IPv6Loopback() + { + SteamIPAddress_t ipOut; + ipOut.m_eType = k_ESteamIPTypeIPv6; + ipOut.m_ipv6Qword[0] = 0; + ipOut.m_ipv6Qword[1] = 0; + ipOut.m_rgubIPv6[15] = 1; + + return ipOut; + } +}; + +#pragma pack( pop ) #endif // STEAMTYPES_H diff --git a/lib/osx/include/vorbis/codec.h b/lib/osx/include/vorbis/codec.h deleted file mode 100644 index 999aa33..0000000 --- a/lib/osx/include/vorbis/codec.h +++ /dev/null @@ -1,243 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - - ******************************************************************** - - function: libvorbis codec headers - last mod: $Id: codec.h 17021 2010-03-24 09:29:41Z xiphmont $ - - ********************************************************************/ - -#ifndef _vorbis_codec_h_ -#define _vorbis_codec_h_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include <ogg/ogg.h> - -typedef struct vorbis_info{ - int version; - int channels; - long rate; - - /* The below bitrate declarations are *hints*. - Combinations of the three values carry the following implications: - - all three set to the same value: - implies a fixed rate bitstream - only nominal set: - implies a VBR stream that averages the nominal bitrate. No hard - upper/lower limit - upper and or lower set: - implies a VBR bitstream that obeys the bitrate limits. nominal - may also be set to give a nominal rate. - none set: - the coder does not care to speculate. - */ - - long bitrate_upper; - long bitrate_nominal; - long bitrate_lower; - long bitrate_window; - - void *codec_setup; -} vorbis_info; - -/* vorbis_dsp_state buffers the current vorbis audio - analysis/synthesis state. The DSP state belongs to a specific - logical bitstream ****************************************************/ -typedef struct vorbis_dsp_state{ - int analysisp; - vorbis_info *vi; - - float **pcm; - float **pcmret; - int pcm_storage; - int pcm_current; - int pcm_returned; - - int preextrapolate; - int eofflag; - - long lW; - long W; - long nW; - long centerW; - - ogg_int64_t granulepos; - ogg_int64_t sequence; - - ogg_int64_t glue_bits; - ogg_int64_t time_bits; - ogg_int64_t floor_bits; - ogg_int64_t res_bits; - - void *backend_state; -} vorbis_dsp_state; - -typedef struct vorbis_block{ - /* necessary stream state for linking to the framing abstraction */ - float **pcm; /* this is a pointer into local storage */ - oggpack_buffer opb; - - long lW; - long W; - long nW; - int pcmend; - int mode; - - int eofflag; - ogg_int64_t granulepos; - ogg_int64_t sequence; - vorbis_dsp_state *vd; /* For read-only access of configuration */ - - /* local storage to avoid remallocing; it's up to the mapping to - structure it */ - void *localstore; - long localtop; - long localalloc; - long totaluse; - struct alloc_chain *reap; - - /* bitmetrics for the frame */ - long glue_bits; - long time_bits; - long floor_bits; - long res_bits; - - void *internal; - -} vorbis_block; - -/* vorbis_block is a single block of data to be processed as part of -the analysis/synthesis stream; it belongs to a specific logical -bitstream, but is independent from other vorbis_blocks belonging to -that logical bitstream. *************************************************/ - -struct alloc_chain{ - void *ptr; - struct alloc_chain *next; -}; - -/* vorbis_info contains all the setup information specific to the - specific compression/decompression mode in progress (eg, - psychoacoustic settings, channel setup, options, codebook - etc). vorbis_info and substructures are in backends.h. -*********************************************************************/ - -/* the comments are not part of vorbis_info so that vorbis_info can be - static storage */ -typedef struct vorbis_comment{ - /* unlimited user comment fields. libvorbis writes 'libvorbis' - whatever vendor is set to in encode */ - char **user_comments; - int *comment_lengths; - int comments; - char *vendor; - -} vorbis_comment; - - -/* libvorbis encodes in two abstraction layers; first we perform DSP - and produce a packet (see docs/analysis.txt). The packet is then - coded into a framed OggSquish bitstream by the second layer (see - docs/framing.txt). Decode is the reverse process; we sync/frame - the bitstream and extract individual packets, then decode the - packet back into PCM audio. - - The extra framing/packetizing is used in streaming formats, such as - files. Over the net (such as with UDP), the framing and - packetization aren't necessary as they're provided by the transport - and the streaming layer is not used */ - -/* Vorbis PRIMITIVES: general ***************************************/ - -extern void vorbis_info_init(vorbis_info *vi); -extern void vorbis_info_clear(vorbis_info *vi); -extern int vorbis_info_blocksize(vorbis_info *vi,int zo); -extern void vorbis_comment_init(vorbis_comment *vc); -extern void vorbis_comment_add(vorbis_comment *vc, const char *comment); -extern void vorbis_comment_add_tag(vorbis_comment *vc, - const char *tag, const char *contents); -extern char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count); -extern int vorbis_comment_query_count(vorbis_comment *vc, const char *tag); -extern void vorbis_comment_clear(vorbis_comment *vc); - -extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb); -extern int vorbis_block_clear(vorbis_block *vb); -extern void vorbis_dsp_clear(vorbis_dsp_state *v); -extern double vorbis_granule_time(vorbis_dsp_state *v, - ogg_int64_t granulepos); - -extern const char *vorbis_version_string(void); - -/* Vorbis PRIMITIVES: analysis/DSP layer ****************************/ - -extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi); -extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op); -extern int vorbis_analysis_headerout(vorbis_dsp_state *v, - vorbis_comment *vc, - ogg_packet *op, - ogg_packet *op_comm, - ogg_packet *op_code); -extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals); -extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals); -extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb); -extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op); - -extern int vorbis_bitrate_addblock(vorbis_block *vb); -extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, - ogg_packet *op); - -/* Vorbis PRIMITIVES: synthesis layer *******************************/ -extern int vorbis_synthesis_idheader(ogg_packet *op); -extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc, - ogg_packet *op); - -extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi); -extern int vorbis_synthesis_restart(vorbis_dsp_state *v); -extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op); -extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op); -extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb); -extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm); -extern int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm); -extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples); -extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op); - -extern int vorbis_synthesis_halfrate(vorbis_info *v,int flag); -extern int vorbis_synthesis_halfrate_p(vorbis_info *v); - -/* Vorbis ERRORS and return codes ***********************************/ - -#define OV_FALSE -1 -#define OV_EOF -2 -#define OV_HOLE -3 - -#define OV_EREAD -128 -#define OV_EFAULT -129 -#define OV_EIMPL -130 -#define OV_EINVAL -131 -#define OV_ENOTVORBIS -132 -#define OV_EBADHEADER -133 -#define OV_EVERSION -134 -#define OV_ENOTAUDIO -135 -#define OV_EBADPACKET -136 -#define OV_EBADLINK -137 -#define OV_ENOSEEK -138 - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/lib/osx/include/vorbis/vorbisenc.h b/lib/osx/include/vorbis/vorbisenc.h deleted file mode 100644 index 02332b5..0000000 --- a/lib/osx/include/vorbis/vorbisenc.h +++ /dev/null @@ -1,436 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: vorbis encode-engine setup - last mod: $Id: vorbisenc.h 17021 2010-03-24 09:29:41Z xiphmont $ - - ********************************************************************/ - -/** \file - * Libvorbisenc is a convenient API for setting up an encoding - * environment using libvorbis. Libvorbisenc encapsulates the - * actions needed to set up the encoder properly. - */ - -#ifndef _OV_ENC_H_ -#define _OV_ENC_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include "codec.h" - -/** - * This is the primary function within libvorbisenc for setting up managed - * bitrate modes. - * - * Before this function is called, the \ref vorbis_info - * struct should be initialized by using vorbis_info_init() from the libvorbis - * API. After encoding, vorbis_info_clear() should be called. - * - * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set - * constraints for the encoded file. This function uses these settings to - * select the appropriate encoding mode and set it up. - * - * \param vi Pointer to an initialized \ref vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. - * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. - * \param min_bitrate Desired minimum bitrate. -1 indicates unset. - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success. - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. - */ -extern int vorbis_encode_init(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -/** - * This function performs step-one of a three-step bitrate-managed encode - * setup. It functions similarly to the one-step setup performed by \ref - * vorbis_encode_init but allows an application to make further encode setup - * tweaks using \ref vorbis_encode_ctl before finally calling \ref - * vorbis_encode_setup_init to complete the setup process. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set - * constraints for the encoded file. This function uses these settings to - * select the appropriate encoding mode and set it up. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. - * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. - * \param min_bitrate Desired minimum bitrate. -1 indicates unset. - * - * \return Zero for success, and negative for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. - */ -extern int vorbis_encode_setup_managed(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -/** - * This function performs step-one of a three-step variable bitrate - * (quality-based) encode setup. It functions similarly to the one-step setup - * performed by \ref vorbis_encode_init_vbr() but allows an application to - * make further encode setup tweaks using \ref vorbis_encode_ctl() before - * finally calling \ref vorbis_encode_setup_init to complete the setup - * process. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using \ref vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. - */ -extern int vorbis_encode_setup_vbr(vorbis_info *vi, - long channels, - long rate, - - float quality - ); - -/** - * This is the primary function within libvorbisenc for setting up variable - * bitrate ("quality" based) modes. - * - * - * Before this function is called, the vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param base_quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). - * - * - * \return Zero for success, or a negative number for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. - */ -extern int vorbis_encode_init_vbr(vorbis_info *vi, - long channels, - long rate, - - float base_quality - ); - -/** - * This function performs the last stage of three-step encoding setup, as - * described in the API overview under managed bitrate modes. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API, one of - * \ref vorbis_encode_setup_managed() or \ref vorbis_encode_setup_vbr() called to - * initialize the high-level encoding setup, and \ref vorbis_encode_ctl() - * called if necessary to make encoding setup changes. - * vorbis_encode_setup_init() finalizes the highlevel encoding structure into - * a complete encoding setup after which the application may make no further - * setup changes. - * - * After encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized \ref vorbis_info struct. - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success. - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * - * \retval OV_EINVAL Attempt to use vorbis_encode_setup_init() without first - * calling one of vorbis_encode_setup_managed() or vorbis_encode_setup_vbr() to - * initialize the high-level encoding setup - * - */ -extern int vorbis_encode_setup_init(vorbis_info *vi); - -/** - * This function implements a generic interface to miscellaneous encoder - * settings similar to the classic UNIX 'ioctl()' system call. Applications - * may use vorbis_encode_ctl() to query or set bitrate management or quality - * mode details by using one of several \e request arguments detailed below. - * vorbis_encode_ctl() must be called after one of - * vorbis_encode_setup_managed() or vorbis_encode_setup_vbr(). When used - * to modify settings, \ref vorbis_encode_ctl() must be called before \ref - * vorbis_encode_setup_init(). - * - * \param vi Pointer to an initialized vorbis_info struct. - * - * \param number Specifies the desired action; See \ref encctlcodes "the list - * of available requests". - * - * \param arg void * pointing to a data structure matching the request - * argument. - * - * \retval 0 Success. Any further return information (such as the result of a - * query) is placed into the storage pointed to by *arg. - * - * \retval OV_EINVAL Invalid argument, or an attempt to modify a setting after - * calling vorbis_encode_setup_init(). - * - * \retval OV_EIMPL Unimplemented or unknown request - */ -extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg); - -/** - * \deprecated This is a deprecated interface. Please use vorbis_encode_ctl() - * with the \ref ovectl_ratemanage2_arg struct and \ref - * OV_ECTL_RATEMANAGE2_GET and \ref OV_ECTL_RATEMANAGE2_SET calls in new code. - * - * The \ref ovectl_ratemanage_arg structure is used with vorbis_encode_ctl() - * and the \ref OV_ECTL_RATEMANAGE_GET, \ref OV_ECTL_RATEMANAGE_SET, \ref - * OV_ECTL_RATEMANAGE_AVG, \ref OV_ECTL_RATEMANAGE_HARD calls in order to - * query and modify specifics of the encoder's bitrate management - * configuration. -*/ -struct ovectl_ratemanage_arg { - int management_active; /**< nonzero if bitrate management is active*/ -/** hard lower limit (in kilobits per second) below which the stream bitrate - will never be allowed for any given bitrate_hard_window seconds of time.*/ - long bitrate_hard_min; -/** hard upper limit (in kilobits per second) above which the stream bitrate - will never be allowed for any given bitrate_hard_window seconds of time.*/ - long bitrate_hard_max; -/** the window period (in seconds) used to regulate the hard bitrate minimum - and maximum*/ - double bitrate_hard_window; -/** soft lower limit (in kilobits per second) below which the average bitrate - tracker will start nudging the bitrate higher.*/ - long bitrate_av_lo; -/** soft upper limit (in kilobits per second) above which the average bitrate - tracker will start nudging the bitrate lower.*/ - long bitrate_av_hi; -/** the window period (in seconds) used to regulate the average bitrate - minimum and maximum.*/ - double bitrate_av_window; -/** Regulates the relative centering of the average and hard windows; in - libvorbis 1.0 and 1.0.1, the hard window regulation overlapped but - followed the average window regulation. In libvorbis 1.1 a bit-reservoir - interface replaces the old windowing interface; the older windowing - interface is simulated and this field has no effect.*/ - double bitrate_av_window_center; -}; - -/** - * \name struct ovectl_ratemanage2_arg - * - * The ovectl_ratemanage2_arg structure is used with vorbis_encode_ctl() and - * the OV_ECTL_RATEMANAGE2_GET and OV_ECTL_RATEMANAGE2_SET calls in order to - * query and modify specifics of the encoder's bitrate management - * configuration. - * -*/ -struct ovectl_ratemanage2_arg { - int management_active; /**< nonzero if bitrate management is active */ -/** Lower allowed bitrate limit in kilobits per second */ - long bitrate_limit_min_kbps; -/** Upper allowed bitrate limit in kilobits per second */ - long bitrate_limit_max_kbps; - long bitrate_limit_reservoir_bits; /**<Size of the bitrate reservoir in bits */ -/** Regulates the bitrate reservoir's preferred fill level in a range from 0.0 - * to 1.0; 0.0 tries to bank bits to buffer against future bitrate spikes, 1.0 - * buffers against future sudden drops in instantaneous bitrate. Default is - * 0.1 - */ - double bitrate_limit_reservoir_bias; -/** Average bitrate setting in kilobits per second */ - long bitrate_average_kbps; -/** Slew rate limit setting for average bitrate adjustment; sets the minimum - * time in seconds the bitrate tracker may swing from one extreme to the - * other when boosting or damping average bitrate. - */ - double bitrate_average_damping; -}; - - -/** - * \name vorbis_encode_ctl() codes - * - * \anchor encctlcodes - * - * These values are passed as the \c number parameter of vorbis_encode_ctl(). - * The type of the referent of that function's \c arg pointer depends on these - * codes. - */ -/*@{*/ - -/** - * Query the current encoder bitrate management setting. - * - *Argument: <tt>struct ovectl_ratemanage2_arg *</tt> - * - * Used to query the current encoder bitrate management setting. Also used to - * initialize fields of an ovectl_ratemanage2_arg structure for use with - * \ref OV_ECTL_RATEMANAGE2_SET. - */ -#define OV_ECTL_RATEMANAGE2_GET 0x14 - -/** - * Set the current encoder bitrate management settings. - * - * Argument: <tt>struct ovectl_ratemanage2_arg *</tt> - * - * Used to set the current encoder bitrate management settings to the values - * listed in the ovectl_ratemanage2_arg. Passing a NULL pointer will disable - * bitrate management. -*/ -#define OV_ECTL_RATEMANAGE2_SET 0x15 - -/** - * Returns the current encoder hard-lowpass setting (kHz) in the double - * pointed to by arg. - * - * Argument: <tt>double *</tt> -*/ -#define OV_ECTL_LOWPASS_GET 0x20 - -/** - * Sets the encoder hard-lowpass to the value (kHz) pointed to by arg. Valid - * lowpass settings range from 2 to 99. - * - * Argument: <tt>double *</tt> -*/ -#define OV_ECTL_LOWPASS_SET 0x21 - -/** - * Returns the current encoder impulse block setting in the double pointed - * to by arg. - * - * Argument: <tt>double *</tt> -*/ -#define OV_ECTL_IBLOCK_GET 0x30 - -/** - * Sets the impulse block bias to the the value pointed to by arg. - * - * Argument: <tt>double *</tt> - * - * Valid range is -15.0 to 0.0 [default]. A negative impulse block bias will - * direct to encoder to use more bits when incoding short blocks that contain - * strong impulses, thus improving the accuracy of impulse encoding. - */ -#define OV_ECTL_IBLOCK_SET 0x31 - -/** - * Returns the current encoder coupling setting in the int pointed - * to by arg. - * - * Argument: <tt>int *</tt> -*/ -#define OV_ECTL_COUPLING_GET 0x40 - -/** - * Enables/disables channel coupling in multichannel encoding according to arg. - * - * Argument: <tt>int *</tt> - * - * Zero disables channel coupling for multichannel inputs, nonzer enables - * channel coupling. Setting has no effect on monophonic encoding or - * multichannel counts that do not offer coupling. At present, coupling is - * available for stereo and 5.1 encoding. - */ -#define OV_ECTL_COUPLING_SET 0x41 - - /* deprecated rate management supported only for compatibility */ - -/** - * Old interface to querying bitrate management settings. - * - * Deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_GET instead. - * - * Argument: <tt>struct ovectl_ratemanage_arg *</tt> - */ -#define OV_ECTL_RATEMANAGE_GET 0x10 -/** - * Old interface to modifying bitrate management settings. - * - * deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: <tt>struct ovectl_ratemanage_arg *</tt> - */ -#define OV_ECTL_RATEMANAGE_SET 0x11 -/** - * Old interface to setting average-bitrate encoding mode. - * - * Deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: <tt>struct ovectl_ratemanage_arg *</tt> - */ -#define OV_ECTL_RATEMANAGE_AVG 0x12 -/** - * Old interface to setting bounded-bitrate encoding modes. - * - * deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: <tt>struct ovectl_ratemanage_arg *</tt> - */ -#define OV_ECTL_RATEMANAGE_HARD 0x13 - -/*@}*/ - - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif diff --git a/lib/osx/include/vorbis/vorbisfile.h b/lib/osx/include/vorbis/vorbisfile.h deleted file mode 100644 index 9271331..0000000 --- a/lib/osx/include/vorbis/vorbisfile.h +++ /dev/null @@ -1,206 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: stdio-based convenience library for opening/seeking/decoding - last mod: $Id: vorbisfile.h 17182 2010-04-29 03:48:32Z xiphmont $ - - ********************************************************************/ - -#ifndef _OV_FILE_H_ -#define _OV_FILE_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include <stdio.h> -#include "codec.h" - -/* The function prototypes for the callbacks are basically the same as for - * the stdio functions fread, fseek, fclose, ftell. - * The one difference is that the FILE * arguments have been replaced with - * a void * - this is to be used as a pointer to whatever internal data these - * functions might need. In the stdio case, it's just a FILE * cast to a void * - * - * If you use other functions, check the docs for these functions and return - * the right values. For seek_func(), you *MUST* return -1 if the stream is - * unseekable - */ -typedef struct { - size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource); - int (*seek_func) (void *datasource, ogg_int64_t offset, int whence); - int (*close_func) (void *datasource); - long (*tell_func) (void *datasource); -} ov_callbacks; - -#ifndef OV_EXCLUDE_STATIC_CALLBACKS - -/* a few sets of convenient callbacks, especially for use under - * Windows where ov_open_callbacks() should always be used instead of - * ov_open() to avoid problems with incompatible crt.o version linking - * issues. */ - -static int _ov_header_fseek_wrap(FILE *f,ogg_int64_t off,int whence){ - if(f==NULL)return(-1); - -#ifdef __MINGW32__ - return fseeko64(f,off,whence); -#elif defined (_WIN32) - return _fseeki64(f,off,whence); -#else - return fseek(f,off,whence); -#endif -} - -/* These structs below (OV_CALLBACKS_DEFAULT etc) are defined here as - * static data. That means that every file which includes this header - * will get its own copy of these structs whether it uses them or - * not unless it #defines OV_EXCLUDE_STATIC_CALLBACKS. - * These static symbols are essential on platforms such as Windows on - * which several different versions of stdio support may be linked to - * by different DLLs, and we need to be certain we know which one - * we're using (the same one as the main application). - */ - -static ov_callbacks OV_CALLBACKS_DEFAULT = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, - (int (*)(void *)) fclose, - (long (*)(void *)) ftell -}; - -static ov_callbacks OV_CALLBACKS_NOCLOSE = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, - (int (*)(void *)) NULL, - (long (*)(void *)) ftell -}; - -static ov_callbacks OV_CALLBACKS_STREAMONLY = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) NULL, - (int (*)(void *)) fclose, - (long (*)(void *)) NULL -}; - -static ov_callbacks OV_CALLBACKS_STREAMONLY_NOCLOSE = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) NULL, - (int (*)(void *)) NULL, - (long (*)(void *)) NULL -}; - -#endif - -#define NOTOPEN 0 -#define PARTOPEN 1 -#define OPENED 2 -#define STREAMSET 3 -#define INITSET 4 - -typedef struct OggVorbis_File { - void *datasource; /* Pointer to a FILE *, etc. */ - int seekable; - ogg_int64_t offset; - ogg_int64_t end; - ogg_sync_state oy; - - /* If the FILE handle isn't seekable (eg, a pipe), only the current - stream appears */ - int links; - ogg_int64_t *offsets; - ogg_int64_t *dataoffsets; - long *serialnos; - ogg_int64_t *pcmlengths; /* overloaded to maintain binary - compatibility; x2 size, stores both - beginning and end values */ - vorbis_info *vi; - vorbis_comment *vc; - - /* Decoding working state local storage */ - ogg_int64_t pcm_offset; - int ready_state; - long current_serialno; - int current_link; - - double bittrack; - double samptrack; - - ogg_stream_state os; /* take physical pages, weld into a logical - stream of packets */ - vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ - vorbis_block vb; /* local working space for packet->PCM decode */ - - ov_callbacks callbacks; - -} OggVorbis_File; - - -extern int ov_clear(OggVorbis_File *vf); -extern int ov_fopen(const char *path,OggVorbis_File *vf); -extern int ov_open(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); -extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf, - const char *initial, long ibytes, ov_callbacks callbacks); - -extern int ov_test(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); -extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf, - const char *initial, long ibytes, ov_callbacks callbacks); -extern int ov_test_open(OggVorbis_File *vf); - -extern long ov_bitrate(OggVorbis_File *vf,int i); -extern long ov_bitrate_instant(OggVorbis_File *vf); -extern long ov_streams(OggVorbis_File *vf); -extern long ov_seekable(OggVorbis_File *vf); -extern long ov_serialnumber(OggVorbis_File *vf,int i); - -extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i); -extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i); -extern double ov_time_total(OggVorbis_File *vf,int i); - -extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_time_seek(OggVorbis_File *vf,double pos); -extern int ov_time_seek_page(OggVorbis_File *vf,double pos); - -extern int ov_raw_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_page_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_time_seek_lap(OggVorbis_File *vf,double pos); -extern int ov_time_seek_page_lap(OggVorbis_File *vf,double pos); - -extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf); -extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf); -extern double ov_time_tell(OggVorbis_File *vf); - -extern vorbis_info *ov_info(OggVorbis_File *vf,int link); -extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link); - -extern long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int samples, - int *bitstream); -extern long ov_read_filter(OggVorbis_File *vf,char *buffer,int length, - int bigendianp,int word,int sgned,int *bitstream, - void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param); -extern long ov_read(OggVorbis_File *vf,char *buffer,int length, - int bigendianp,int word,int sgned,int *bitstream); -extern int ov_crosslap(OggVorbis_File *vf1,OggVorbis_File *vf2); - -extern int ov_halfrate(OggVorbis_File *vf,int flag); -extern int ov_halfrate_p(OggVorbis_File *vf); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/lib/osx/include/zconf.h b/lib/osx/include/zconf.h deleted file mode 100644 index 996fff2..0000000 --- a/lib/osx/include/zconf.h +++ /dev/null @@ -1,511 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2013 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - * Even better than compiling with -DZ_PREFIX would be to use configure to set - * this permanently in zconf.h using "./configure --zprefix". - */ -#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ -# define Z_PREFIX_SET - -/* all linked symbols */ -# define _dist_code z__dist_code -# define _length_code z__length_code -# define _tr_align z__tr_align -# define _tr_flush_bits z__tr_flush_bits -# define _tr_flush_block z__tr_flush_block -# define _tr_init z__tr_init -# define _tr_stored_block z__tr_stored_block -# define _tr_tally z__tr_tally -# define adler32 z_adler32 -# define adler32_combine z_adler32_combine -# define adler32_combine64 z_adler32_combine64 -# ifndef Z_SOLO -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# endif -# define crc32 z_crc32 -# define crc32_combine z_crc32_combine -# define crc32_combine64 z_crc32_combine64 -# define deflate z_deflate -# define deflateBound z_deflateBound -# define deflateCopy z_deflateCopy -# define deflateEnd z_deflateEnd -# define deflateInit2_ z_deflateInit2_ -# define deflateInit_ z_deflateInit_ -# define deflateParams z_deflateParams -# define deflatePending z_deflatePending -# define deflatePrime z_deflatePrime -# define deflateReset z_deflateReset -# define deflateResetKeep z_deflateResetKeep -# define deflateSetDictionary z_deflateSetDictionary -# define deflateSetHeader z_deflateSetHeader -# define deflateTune z_deflateTune -# define deflate_copyright z_deflate_copyright -# define get_crc_table z_get_crc_table -# ifndef Z_SOLO -# define gz_error z_gz_error -# define gz_intmax z_gz_intmax -# define gz_strwinerror z_gz_strwinerror -# define gzbuffer z_gzbuffer -# define gzclearerr z_gzclearerr -# define gzclose z_gzclose -# define gzclose_r z_gzclose_r -# define gzclose_w z_gzclose_w -# define gzdirect z_gzdirect -# define gzdopen z_gzdopen -# define gzeof z_gzeof -# define gzerror z_gzerror -# define gzflush z_gzflush -# define gzgetc z_gzgetc -# define gzgetc_ z_gzgetc_ -# define gzgets z_gzgets -# define gzoffset z_gzoffset -# define gzoffset64 z_gzoffset64 -# define gzopen z_gzopen -# define gzopen64 z_gzopen64 -# ifdef _WIN32 -# define gzopen_w z_gzopen_w -# endif -# define gzprintf z_gzprintf -# define gzvprintf z_gzvprintf -# define gzputc z_gzputc -# define gzputs z_gzputs -# define gzread z_gzread -# define gzrewind z_gzrewind -# define gzseek z_gzseek -# define gzseek64 z_gzseek64 -# define gzsetparams z_gzsetparams -# define gztell z_gztell -# define gztell64 z_gztell64 -# define gzungetc z_gzungetc -# define gzwrite z_gzwrite -# endif -# define inflate z_inflate -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define inflateBackInit_ z_inflateBackInit_ -# define inflateCopy z_inflateCopy -# define inflateEnd z_inflateEnd -# define inflateGetHeader z_inflateGetHeader -# define inflateInit2_ z_inflateInit2_ -# define inflateInit_ z_inflateInit_ -# define inflateMark z_inflateMark -# define inflatePrime z_inflatePrime -# define inflateReset z_inflateReset -# define inflateReset2 z_inflateReset2 -# define inflateSetDictionary z_inflateSetDictionary -# define inflateGetDictionary z_inflateGetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateUndermine z_inflateUndermine -# define inflateResetKeep z_inflateResetKeep -# define inflate_copyright z_inflate_copyright -# define inflate_fast z_inflate_fast -# define inflate_table z_inflate_table -# ifndef Z_SOLO -# define uncompress z_uncompress -# endif -# define zError z_zError -# ifndef Z_SOLO -# define zcalloc z_zcalloc -# define zcfree z_zcfree -# endif -# define zlibCompileFlags z_zlibCompileFlags -# define zlibVersion z_zlibVersion - -/* all zlib typedefs in zlib.h and zconf.h */ -# define Byte z_Byte -# define Bytef z_Bytef -# define alloc_func z_alloc_func -# define charf z_charf -# define free_func z_free_func -# ifndef Z_SOLO -# define gzFile z_gzFile -# endif -# define gz_header z_gz_header -# define gz_headerp z_gz_headerp -# define in_func z_in_func -# define intf z_intf -# define out_func z_out_func -# define uInt z_uInt -# define uIntf z_uIntf -# define uLong z_uLong -# define uLongf z_uLongf -# define voidp z_voidp -# define voidpc z_voidpc -# define voidpf z_voidpf - -/* all zlib structs in zlib.h and zconf.h */ -# define gz_header_s z_gz_header_s -# define internal_state z_internal_state - -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -#if defined(ZLIB_CONST) && !defined(z_const) -# define z_const const -#else -# define z_const -#endif - -/* Some Mac compilers merge all .h files incorrectly: */ -#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) -# define NO_DUMMY_DECL -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus a few kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -#ifndef Z_ARG /* function prototypes for stdarg */ -# if defined(STDC) || defined(Z_HAVE_STDARG_H) -# define Z_ARG(args) args -# else -# define Z_ARG(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include <windows.h> - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) -# include <limits.h> -# if (UINT_MAX == 0xffffffffUL) -# define Z_U4 unsigned -# elif (ULONG_MAX == 0xffffffffUL) -# define Z_U4 unsigned long -# elif (USHRT_MAX == 0xffffffffUL) -# define Z_U4 unsigned short -# endif -#endif - -#ifdef Z_U4 - typedef Z_U4 z_crc_t; -#else - typedef unsigned long z_crc_t; -#endif - -#if 1 /* was set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H -#endif - -#if 1 /* was set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H -#endif - -#ifdef STDC -# ifndef Z_SOLO -# include <sys/types.h> /* for off_t */ -# endif -#endif - -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -# include <stdarg.h> /* for va_list */ -# endif -#endif - -#ifdef _WIN32 -# ifndef Z_SOLO -# include <stddef.h> /* for wchar_t */ -# endif -#endif - -/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and - * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even - * though the former does not conform to the LFS document), but considering - * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as - * equivalently requesting no 64-bit operations - */ -#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 -# undef _LARGEFILE64_SOURCE -#endif - -#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) -# define Z_HAVE_UNISTD_H -#endif -#ifndef Z_SOLO -# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) -# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ -# ifdef VMS -# include <unixio.h> /* for off_t */ -# endif -# ifndef z_off_t -# define z_off_t off_t -# endif -# endif -#endif - -#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 -# define Z_LFS64 -#endif - -#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) -# define Z_LARGE64 -#endif - -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) -# define Z_WANT64 -#endif - -#if !defined(SEEK_SET) && !defined(Z_SOLO) -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif - -#ifndef z_off_t -# define z_off_t long -#endif - -#if !defined(_WIN32) && defined(Z_LARGE64) -# define z_off64_t off64_t -#else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) -# define z_off64_t __int64 -# else -# define z_off64_t z_off_t -# endif -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) - #pragma map(deflateInit_,"DEIN") - #pragma map(deflateInit2_,"DEIN2") - #pragma map(deflateEnd,"DEEND") - #pragma map(deflateBound,"DEBND") - #pragma map(inflateInit_,"ININ") - #pragma map(inflateInit2_,"ININ2") - #pragma map(inflateEnd,"INEND") - #pragma map(inflateSync,"INSY") - #pragma map(inflateSetDictionary,"INSEDI") - #pragma map(compressBound,"CMBND") - #pragma map(inflate_table,"INTABL") - #pragma map(inflate_fast,"INFA") - #pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ diff --git a/lib/osx/include/zlib.h b/lib/osx/include/zlib.h deleted file mode 100644 index 3e0c767..0000000 --- a/lib/osx/include/zlib.h +++ /dev/null @@ -1,1768 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.8, April 28th, 2013 - - Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 - (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). -*/ - -#ifndef ZLIB_H -#define ZLIB_H - -#include "zconf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZLIB_VERSION "1.2.8" -#define ZLIB_VERNUM 0x1280 -#define ZLIB_VER_MAJOR 1 -#define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 8 -#define ZLIB_VER_SUBREVISION 0 - -/* - The 'zlib' compression library provides in-memory compression and - decompression functions, including integrity checks of the uncompressed data. - This version of the library supports only one compression method (deflation) - but other algorithms will be added later and will have the same stream - interface. - - Compression can be done in a single step if the buffers are large enough, - or can be done by repeated calls of the compression function. In the latter - case, the application must provide more input and/or consume the output - (providing more output space) before each call. - - The compressed data format used by default by the in-memory functions is - the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped - around a deflate stream, which is itself documented in RFC 1951. - - The library also supports reading and writing files in gzip (.gz) format - with an interface similar to that of stdio using the functions that start - with "gz". The gzip format is different from the zlib format. gzip is a - gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. - - This library can optionally read and write gzip streams in memory as well. - - The zlib format was designed to be compact and fast for use in memory - and on communications channels. The gzip format was designed for single- - file compression on file systems, has a larger header than zlib to maintain - directory information, and uses a different, slower check method than zlib. - - The library does not install any signal handler. The decoder checks - the consistency of the compressed data, so the library should never crash - even in case of corrupted input. -*/ - -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); - -struct internal_state; - -typedef struct z_stream_s { - z_const Bytef *next_in; /* next input byte */ - uInt avail_in; /* number of bytes available at next_in */ - uLong total_in; /* total number of input bytes read so far */ - - Bytef *next_out; /* next output byte should be put there */ - uInt avail_out; /* remaining free space at next_out */ - uLong total_out; /* total number of bytes output so far */ - - z_const char *msg; /* last error message, NULL if no error */ - struct internal_state FAR *state; /* not visible by applications */ - - alloc_func zalloc; /* used to allocate the internal state */ - free_func zfree; /* used to free the internal state */ - voidpf opaque; /* private data object passed to zalloc and zfree */ - - int data_type; /* best guess about the data type: binary or text */ - uLong adler; /* adler32 value of the uncompressed data */ - uLong reserved; /* reserved for future use */ -} z_stream; - -typedef z_stream FAR *z_streamp; - -/* - gzip header information passed to and from zlib routines. See RFC 1952 - for more details on the meanings of these fields. -*/ -typedef struct gz_header_s { - int text; /* true if compressed data believed to be text */ - uLong time; /* modification time */ - int xflags; /* extra flags (not used when writing a gzip file) */ - int os; /* operating system */ - Bytef *extra; /* pointer to extra field or Z_NULL if none */ - uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ - uInt extra_max; /* space at extra (only when reading header) */ - Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ - uInt name_max; /* space at name (only when reading header) */ - Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ - uInt comm_max; /* space at comment (only when reading header) */ - int hcrc; /* true if there was or will be a header crc */ - int done; /* true when done reading gzip header (not used - when writing a gzip file) */ -} gz_header; - -typedef gz_header FAR *gz_headerp; - -/* - The application must update next_in and avail_in when avail_in has dropped - to zero. It must update next_out and avail_out when avail_out has dropped - to zero. The application must initialize zalloc, zfree and opaque before - calling the init function. All other fields are set by the compression - library and must not be updated by the application. - - The opaque value provided by the application will be passed as the first - parameter for calls of zalloc and zfree. This can be useful for custom - memory management. The compression library attaches no meaning to the - opaque value. - - zalloc must return Z_NULL if there is not enough memory for the object. - If zlib is used in a multi-threaded application, zalloc and zfree must be - thread safe. - - On 16-bit systems, the functions zalloc and zfree must be able to allocate - exactly 65536 bytes, but will not be required to allocate more than this if - the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers - returned by zalloc for objects of exactly 65536 bytes *must* have their - offset normalized to zero. The default allocation function provided by this - library ensures this (see zutil.c). To reduce memory requirements and avoid - any allocation of 64K objects, at the expense of compression ratio, compile - the library with -DMAX_WBITS=14 (see zconf.h). - - The fields total_in and total_out can be used for statistics or progress - reports. After compression, total_in holds the total size of the - uncompressed data and may be saved for use in the decompressor (particularly - if the decompressor wants to decompress everything in a single step). -*/ - - /* constants */ - -#define Z_NO_FLUSH 0 -#define Z_PARTIAL_FLUSH 1 -#define Z_SYNC_FLUSH 2 -#define Z_FULL_FLUSH 3 -#define Z_FINISH 4 -#define Z_BLOCK 5 -#define Z_TREES 6 -/* Allowed flush values; see deflate() and inflate() below for details */ - -#define Z_OK 0 -#define Z_STREAM_END 1 -#define Z_NEED_DICT 2 -#define Z_ERRNO (-1) -#define Z_STREAM_ERROR (-2) -#define Z_DATA_ERROR (-3) -#define Z_MEM_ERROR (-4) -#define Z_BUF_ERROR (-5) -#define Z_VERSION_ERROR (-6) -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - -#define Z_NO_COMPRESSION 0 -#define Z_BEST_SPEED 1 -#define Z_BEST_COMPRESSION 9 -#define Z_DEFAULT_COMPRESSION (-1) -/* compression levels */ - -#define Z_FILTERED 1 -#define Z_HUFFMAN_ONLY 2 -#define Z_RLE 3 -#define Z_FIXED 4 -#define Z_DEFAULT_STRATEGY 0 -/* compression strategy; see deflateInit2() below for details */ - -#define Z_BINARY 0 -#define Z_TEXT 1 -#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ -#define Z_UNKNOWN 2 -/* Possible values of the data_type field (though see inflate()) */ - -#define Z_DEFLATED 8 -/* The deflate compression method (the only one supported in this version) */ - -#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ - -#define zlib_version zlibVersion() -/* for compatibility with versions < 1.0.2 */ - - - /* basic functions */ - -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); -/* The application can compare zlibVersion and ZLIB_VERSION for consistency. - If the first character differs, the library code actually used is not - compatible with the zlib.h header file used by the application. This check - is automatically made by deflateInit and inflateInit. - */ - -/* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); - - Initializes the internal stream state for compression. The fields - zalloc, zfree and opaque must be initialized before by the caller. If - zalloc and zfree are set to Z_NULL, deflateInit updates them to use default - allocation functions. - - The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: - 1 gives best speed, 9 gives best compression, 0 gives no compression at all - (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION - requests a default compromise between speed and compression (currently - equivalent to level 6). - - deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if level is not a valid compression level, or - Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible - with the version assumed by the caller (ZLIB_VERSION). msg is set to null - if there is no error message. deflateInit does not perform any compression: - this will be done by deflate(). -*/ - - -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); -/* - deflate compresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. deflate performs one or both of the - following actions: - - - Compress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in and avail_in are updated and - processing will resume at this point for the next call of deflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. This action is forced if the parameter flush is non zero. - Forcing flush frequently degrades the compression ratio, so this parameter - should be set only when necessary (in interactive applications). Some - output may be provided even if flush is not set. - - Before the call of deflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating avail_in or avail_out accordingly; avail_out should - never be zero before the call. The application can consume the compressed - output when it wants, for example when the output buffer is full (avail_out - == 0), or after each call of deflate(). If deflate returns Z_OK and with - zero avail_out, it must be called again after making room in the output - buffer because there might be more output pending. - - Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to - decide how much data to accumulate before producing output, in order to - maximize compression. - - If the parameter flush is set to Z_SYNC_FLUSH, all pending output is - flushed to the output buffer and the output is aligned on a byte boundary, so - that the decompressor can get all input data available so far. (In - particular avail_in is zero after the call if enough output space has been - provided before the call.) Flushing may degrade compression for some - compression algorithms and so it should be used only when necessary. This - completes the current deflate block and follows it with an empty stored block - that is three bits plus filler bits to the next byte, followed by four bytes - (00 00 ff ff). - - If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the - output buffer, but the output is not aligned to a byte boundary. All of the - input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. - This completes the current deflate block and follows it with an empty fixed - codes block that is 10 bits long. This assures that enough bytes are output - in order for the decompressor to finish the block before the empty fixed code - block. - - If flush is set to Z_BLOCK, a deflate block is completed and emitted, as - for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to - seven bits of the current block are held to be written as the next byte after - the next deflate block is completed. In this case, the decompressor may not - be provided enough bits at this point in order to complete decompression of - the data provided so far to the compressor. It may need to wait for the next - block to be emitted. This is for advanced applications that need to control - the emission of deflate blocks. - - If flush is set to Z_FULL_FLUSH, all output is flushed as with - Z_SYNC_FLUSH, and the compression state is reset so that decompression can - restart from this point if previous compressed data has been damaged or if - random access is desired. Using Z_FULL_FLUSH too often can seriously degrade - compression. - - If deflate returns with avail_out == 0, this function must be called again - with the same value of the flush parameter and more output space (updated - avail_out), until the flush is complete (deflate returns with non-zero - avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. - - If the parameter flush is set to Z_FINISH, pending input is processed, - pending output is flushed and deflate returns with Z_STREAM_END if there was - enough output space; if deflate returns with Z_OK, this function must be - called again with Z_FINISH and more output space (updated avail_out) but no - more input data, until it returns with Z_STREAM_END or an error. After - deflate has returned Z_STREAM_END, the only possible operations on the stream - are deflateReset or deflateEnd. - - Z_FINISH can be used immediately after deflateInit if all the compression - is to be done in a single step. In this case, avail_out must be at least the - value returned by deflateBound (see below). Then deflate is guaranteed to - return Z_STREAM_END. If not enough output space is provided, deflate will - not return Z_STREAM_END, and it must be called again as described above. - - deflate() sets strm->adler to the adler32 checksum of all input read - so far (that is, total_in bytes). - - deflate() may update strm->data_type if it can make a good guess about - the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered - binary. This field is only for information purposes and does not affect the - compression algorithm in any manner. - - deflate() returns Z_OK if some progress has been made (more input - processed or more output produced), Z_STREAM_END if all input has been - consumed and all output has been produced (only when flush is set to - Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible - (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not - fatal, and deflate() can be called again with more input and more output - space to continue compressing. -*/ - - -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the - stream state was inconsistent, Z_DATA_ERROR if the stream was freed - prematurely (some input or output was discarded). In the error case, msg - may be set but then points to a static string (which must not be - deallocated). -*/ - - -/* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); - - Initializes the internal stream state for decompression. The fields - next_in, avail_in, zalloc, zfree and opaque must be initialized before by - the caller. If next_in is not Z_NULL and avail_in is large enough (the - exact value depends on the compression method), inflateInit determines the - compression method from the zlib header and allocates all data structures - accordingly; otherwise the allocation will be deferred to the first call of - inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to - use default allocation functions. - - inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit() does not process any header information -- that is deferred - until inflate() is called. -*/ - - -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); -/* - inflate decompresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. inflate performs one or both of the - following actions: - - - Decompress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in is updated and processing will - resume at this point for the next call of inflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. inflate() provides as much output as possible, until there is - no more input data or no more space in the output buffer (see below about - the flush parameter). - - Before the call of inflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating the next_* and avail_* values accordingly. The - application can consume the uncompressed output when it wants, for example - when the output buffer is full (avail_out == 0), or after each call of - inflate(). If inflate returns Z_OK and with zero avail_out, it must be - called again after making room in the output buffer because there might be - more output pending. - - The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, - Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much - output as possible to the output buffer. Z_BLOCK requests that inflate() - stop if and when it gets to the next deflate block boundary. When decoding - the zlib or gzip format, this will cause inflate() to return immediately - after the header and before the first block. When doing a raw inflate, - inflate() will go ahead and process the first block, and will return when it - gets to the end of that block, or when it runs out of data. - - The Z_BLOCK option assists in appending to or combining deflate streams. - Also to assist in this, on return inflate() will set strm->data_type to the - number of unused bits in the last byte taken from strm->next_in, plus 64 if - inflate() is currently decoding the last block in the deflate stream, plus - 128 if inflate() returned immediately after decoding an end-of-block code or - decoding the complete header up to just before the first byte of the deflate - stream. The end-of-block will not be indicated until all of the uncompressed - data from that block has been written to strm->next_out. The number of - unused bits may in general be greater than seven, except when bit 7 of - data_type is set, in which case the number of unused bits will be less than - eight. data_type is set as noted here every time inflate() returns for all - flush options, and so can be used to determine the amount of currently - consumed input in bits. - - The Z_TREES option behaves as Z_BLOCK does, but it also returns when the - end of each deflate block header is reached, before any actual data in that - block is decoded. This allows the caller to determine the length of the - deflate block header for later use in random access within a deflate block. - 256 is added to the value of strm->data_type when inflate() returns - immediately after reaching the end of the deflate block header. - - inflate() should normally be called until it returns Z_STREAM_END or an - error. However if all decompression is to be performed in a single step (a - single call of inflate), the parameter flush should be set to Z_FINISH. In - this case all pending input is processed and all pending output is flushed; - avail_out must be large enough to hold all of the uncompressed data for the - operation to complete. (The size of the uncompressed data may have been - saved by the compressor for this purpose.) The use of Z_FINISH is not - required to perform an inflation in one step. However it may be used to - inform inflate that a faster approach can be used for the single inflate() - call. Z_FINISH also informs inflate to not maintain a sliding window if the - stream completes, which reduces inflate's memory footprint. If the stream - does not complete, either because not all of the stream is provided or not - enough output space is provided, then a sliding window will be allocated and - inflate() can be called again to continue the operation as if Z_NO_FLUSH had - been used. - - In this implementation, inflate() always flushes as much output as - possible to the output buffer, and always uses the faster approach on the - first call. So the effects of the flush parameter in this implementation are - on the return value of inflate() as noted below, when inflate() returns early - when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of - memory for a sliding window when Z_FINISH is used. - - If a preset dictionary is needed after this call (see inflateSetDictionary - below), inflate sets strm->adler to the Adler-32 checksum of the dictionary - chosen by the compressor and returns Z_NEED_DICT; otherwise it sets - strm->adler to the Adler-32 checksum of all output produced so far (that is, - total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described - below. At the end of the stream, inflate() checks that its computed adler32 - checksum is equal to that saved by the compressor and returns Z_STREAM_END - only if the checksum is correct. - - inflate() can decompress and check either zlib-wrapped or gzip-wrapped - deflate data. The header type is detected automatically, if requested when - initializing with inflateInit2(). Any information contained in the gzip - header is not retained, so applications that need that information should - instead use raw inflate, see inflateInit2() below, or inflateBack() and - perform their own processing of the gzip header and trailer. When processing - gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output - producted so far. The CRC-32 is checked against the gzip trailer. - - inflate() returns Z_OK if some progress has been made (more input processed - or more output produced), Z_STREAM_END if the end of the compressed data has - been reached and all uncompressed output has been produced, Z_NEED_DICT if a - preset dictionary is needed at this point, Z_DATA_ERROR if the input data was - corrupted (input stream not conforming to the zlib format or incorrect check - value), Z_STREAM_ERROR if the stream structure was inconsistent (for example - next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory, - Z_BUF_ERROR if no progress is possible or if there was not enough room in the - output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and - inflate() can be called again with more input and more output space to - continue decompressing. If Z_DATA_ERROR is returned, the application may - then call inflateSync() to look for a good compression block if a partial - recovery of the data is desired. -*/ - - -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state - was inconsistent. In the error case, msg may be set but then points to a - static string (which must not be deallocated). -*/ - - - /* Advanced functions */ - -/* - The following functions are needed only in some special applications. -*/ - -/* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); - - This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. - - The method parameter is the compression method. It must be Z_DEFLATED in - this version of the library. - - The windowBits parameter is the base two logarithm of the window size - (the size of the history buffer). It should be in the range 8..15 for this - version of the library. Larger values of this parameter result in better - compression at the expense of memory usage. The default value is 15 if - deflateInit is used instead. - - windowBits can also be -8..-15 for raw deflate. In this case, -windowBits - determines the window size. deflate() will then generate raw deflate data - with no zlib header or trailer, and will not compute an adler32 check value. - - windowBits can also be greater than 15 for optional gzip encoding. Add - 16 to windowBits to write a simple gzip header and trailer around the - compressed data instead of a zlib wrapper. The gzip header will have no - file name, no extra data, no comment, no modification time (set to zero), no - header crc, and the operating system will be set to 255 (unknown). If a - gzip stream is being written, strm->adler is a crc32 instead of an adler32. - - The memLevel parameter specifies how much memory should be allocated - for the internal compression state. memLevel=1 uses minimum memory but is - slow and reduces compression ratio; memLevel=9 uses maximum memory for - optimal speed. The default value is 8. See zconf.h for total memory usage - as a function of windowBits and memLevel. - - The strategy parameter is used to tune the compression algorithm. Use the - value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match), or Z_RLE to limit match distances to one (run-length - encoding). Filtered data consists mostly of small values with a somewhat - random distribution. In this case, the compression algorithm is tuned to - compress them better. The effect of Z_FILTERED is to force more Huffman - coding and less string matching; it is somewhat intermediate between - Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as - fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The - strategy parameter only affects the compression ratio but not the - correctness of the compressed output even if it is not set appropriately. - Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler - decoder for special applications. - - deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid - method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is - incompatible with the version assumed by the caller (ZLIB_VERSION). msg is - set to null if there is no error message. deflateInit2 does not perform any - compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the compression dictionary from the given byte sequence - without producing any compressed output. When using the zlib format, this - function must be called immediately after deflateInit, deflateInit2 or - deflateReset, and before any call of deflate. When doing raw deflate, this - function must be called either before any call of deflate, or immediately - after the completion of a deflate block, i.e. after all input has been - consumed and all output has been delivered when using any of the flush - options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The - compressor and decompressor must use exactly the same dictionary (see - inflateSetDictionary). - - The dictionary should consist of strings (byte sequences) that are likely - to be encountered later in the data to be compressed, with the most commonly - used strings preferably put towards the end of the dictionary. Using a - dictionary is most useful when the data to be compressed is short and can be - predicted with good accuracy; the data can then be compressed better than - with the default empty dictionary. - - Depending on the size of the compression data structures selected by - deflateInit or deflateInit2, a part of the dictionary may in effect be - discarded, for example if the dictionary is larger than the window size - provided in deflateInit or deflateInit2. Thus the strings most likely to be - useful should be put at the end of the dictionary, not at the front. In - addition, the current implementation of deflate will use at most the window - size minus 262 bytes of the provided dictionary. - - Upon return of this function, strm->adler is set to the adler32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The adler32 value - applies to the whole dictionary even if only a subset of the dictionary is - actually used by the compressor.) If a raw deflate was requested, then the - adler32 value is not computed and strm->adler is not set. - - deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent (for example if deflate has already been called for this stream - or if not at a block boundary for raw deflate). deflateSetDictionary does - not perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when several compression strategies will be - tried, for example when there are several ways of pre-processing the input - data with a filter. The streams that will be discarded should then be freed - by calling deflateEnd. Note that deflateCopy duplicates the internal - compression state which can be quite large, so this strategy is slow and can - consume lots of memory. - - deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); -/* - This function is equivalent to deflateEnd followed by deflateInit, - but does not free and reallocate all the internal compression state. The - stream will keep the same compression level and any other attributes that - may have been set by deflateInit2. - - deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); -/* - Dynamically update the compression level and compression strategy. The - interpretation of level and strategy is as in deflateInit2. This can be - used to switch between compression and straight copy of the input data, or - to switch to a different kind of input data requiring a different strategy. - If the compression level is changed, the input available so far is - compressed with the old level (and may be flushed); the new level will take - effect only at the next call of deflate(). - - Before the call of deflateParams, the stream state must be set as for - a call of deflate(), since the currently available input may have to be - compressed and flushed. In particular, strm->avail_out must be non-zero. - - deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source - stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if - strm->avail_out was zero. -*/ - -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); -/* - Fine tune deflate's internal compression parameters. This should only be - used by someone who understands the algorithm used by zlib's deflate for - searching for the best matching string, and even then only by the most - fanatic optimizer trying to squeeze out the last compressed bit for their - specific input data. Read the deflate.c source code for the meaning of the - max_lazy, good_length, nice_length, and max_chain parameters. - - deflateTune() can be called after deflateInit() or deflateInit2(), and - returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. - */ - -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); -/* - deflateBound() returns an upper bound on the compressed size after - deflation of sourceLen bytes. It must be called after deflateInit() or - deflateInit2(), and after deflateSetHeader(), if used. This would be used - to allocate an output buffer for deflation in a single pass, and so would be - called before deflate(). If that first deflate() call is provided the - sourceLen input bytes, an output buffer allocated to the size returned by - deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed - to return Z_STREAM_END. Note that it is possible for the compressed size to - be larger than the value returned by deflateBound() if flush options other - than Z_FINISH or Z_NO_FLUSH are used. -*/ - -ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, - unsigned *pending, - int *bits)); -/* - deflatePending() returns the number of bytes and bits of output that have - been generated, but not yet provided in the available output. The bytes not - provided would be due to the available output space having being consumed. - The number of bits of output not provided are between 0 and 7, where they - await more bits to join them in order to fill out a full byte. If pending - or bits are Z_NULL, then those values are not set. - - deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. - */ - -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - deflatePrime() inserts bits in the deflate output stream. The intent - is that this function is used to start off the deflate output with the bits - leftover from a previous deflate stream when appending to it. As such, this - function can only be used for raw deflate, and must be used before the first - deflate() call after a deflateInit2() or deflateReset(). bits must be less - than or equal to 16, and that many of the least significant bits of value - will be inserted in the output. - - deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough - room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); -/* - deflateSetHeader() provides gzip header information for when a gzip - stream is requested by deflateInit2(). deflateSetHeader() may be called - after deflateInit2() or deflateReset() and before the first call of - deflate(). The text, time, os, extra field, name, and comment information - in the provided gz_header structure are written to the gzip header (xflag is - ignored -- the extra flags are set according to the compression level). The - caller must assure that, if not Z_NULL, name and comment are terminated with - a zero byte, and that if extra is not Z_NULL, that extra_len bytes are - available there. If hcrc is true, a gzip header crc is included. Note that - the current versions of the command-line version of gzip (up through version - 1.3.x) do not support header crc's, and will report that it is a "multi-part - gzip file" and give up. - - If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). - - deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); - - This is another version of inflateInit with an extra parameter. The - fields next_in, avail_in, zalloc, zfree and opaque must be initialized - before by the caller. - - The windowBits parameter is the base two logarithm of the maximum window - size (the size of the history buffer). It should be in the range 8..15 for - this version of the library. The default value is 15 if inflateInit is used - instead. windowBits must be greater than or equal to the windowBits value - provided to deflateInit2() while compressing, or it must be equal to 15 if - deflateInit2() was not used. If a compressed stream with a larger window - size is given as input, inflate() will return with the error code - Z_DATA_ERROR instead of trying to allocate a larger window. - - windowBits can also be zero to request that inflate use the window size in - the zlib header of the compressed stream. - - windowBits can also be -8..-15 for raw inflate. In this case, -windowBits - determines the window size. inflate() will then process raw deflate data, - not looking for a zlib or gzip header, not generating a check value, and not - looking for any check values for comparison at the end of the stream. This - is for use with other formats that use the deflate compressed data format - such as zip. Those formats provide their own check values. If a custom - format is developed using the raw deflate format for compressed data, it is - recommended that a check value such as an adler32 or a crc32 be applied to - the uncompressed data as is done in the zlib, gzip, and zip formats. For - most applications, the zlib format should be used as is. Note that comments - above on the use in deflateInit2() applies to the magnitude of windowBits. - - windowBits can also be greater than 15 for optional gzip decoding. Add - 32 to windowBits to enable zlib and gzip decoding with automatic header - detection, or add 16 to decode only the gzip format (the zlib format will - return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a - crc32 instead of an adler32. - - inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit2 does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit2() does not process any header information -- that is - deferred until inflate() is called. -*/ - -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the decompression dictionary from the given uncompressed byte - sequence. This function must be called immediately after a call of inflate, - if that call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the adler32 value returned by that call of inflate. - The compressor and decompressor must use exactly the same dictionary (see - deflateSetDictionary). For raw inflate, this function can be called at any - time to set the dictionary. If the provided dictionary is smaller than the - window and there is already data in the window, then the provided dictionary - will amend what's there. The application must insure that the dictionary - that was used for compression is provided. - - inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the - expected one (incorrect adler32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); -/* - Returns the sliding dictionary being maintained by inflate. dictLength is - set to the number of bytes in the dictionary, and that many bytes are copied - to dictionary. dictionary must have enough space, where 32768 bytes is - always enough. If inflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. - - inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the - stream state is inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); -/* - Skips invalid compressed data until a possible full flush point (see above - for the description of deflate with Z_FULL_FLUSH) can be found, or until all - available input is skipped. No output is provided. - - inflateSync searches for a 00 00 FF FF pattern in the compressed data. - All full flush points have this pattern, but not all occurrences of this - pattern are full flush points. - - inflateSync returns Z_OK if a possible full flush point has been found, - Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point - has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. - In the success case, the application may save the current current value of - total_in which indicates where valid compressed data was found. In the - error case, the application may repeatedly call inflateSync, providing more - input each time, until success or end of the input data. -*/ - -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when randomly accessing a large stream. The - first pass through the stream can periodically record the inflate state, - allowing restarting inflate at those points when randomly accessing the - stream. - - inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); -/* - This function is equivalent to inflateEnd followed by inflateInit, - but does not free and reallocate all the internal decompression state. The - stream will keep attributes that may have been set by inflateInit2. - - inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); -/* - This function is the same as inflateReset, but it also permits changing - the wrap and window size requests. The windowBits parameter is interpreted - the same as it is for inflateInit2. - - inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL), or if - the windowBits parameter is invalid. -*/ - -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - This function inserts bits in the inflate input stream. The intent is - that this function is used to start inflating at a bit position in the - middle of a byte. The provided bits will be used before any bytes are used - from next_in. This function should only be used with raw inflate, and - should be used before the first inflate() call after inflateInit2() or - inflateReset(). bits must be less than or equal to 16, and that many of the - least significant bits of value will be inserted in the input. - - If bits is negative, then the input stream bit buffer is emptied. Then - inflatePrime() can be called again to put bits in the buffer. This is used - to clear out bits leftover after feeding inflate a block description prior - to feeding inflate codes. - - inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); -/* - This function returns two values, one in the lower 16 bits of the return - value, and the other in the remaining upper bits, obtained by shifting the - return value down 16 bits. If the upper value is -1 and the lower value is - zero, then inflate() is currently decoding information outside of a block. - If the upper value is -1 and the lower value is non-zero, then inflate is in - the middle of a stored block, with the lower value equaling the number of - bytes from the input remaining to copy. If the upper value is not -1, then - it is the number of bits back from the current bit position in the input of - the code (literal or length/distance pair) currently being processed. In - that case the lower value is the number of bytes already emitted for that - code. - - A code is being processed if inflate is waiting for more input to complete - decoding of the code, or if it has completed decoding but is waiting for - more output space to write the literal or match data. - - inflateMark() is used to mark locations in the input data for random - access, which may be at bit positions, and to note those cases where the - output of a code may span boundaries of random access blocks. The current - location in the input stream can be determined from avail_in and data_type - as noted in the description for the Z_BLOCK flush parameter for inflate. - - inflateMark returns the value noted above or -1 << 16 if the provided - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); -/* - inflateGetHeader() requests that gzip header information be stored in the - provided gz_header structure. inflateGetHeader() may be called after - inflateInit2() or inflateReset(), and before the first call of inflate(). - As inflate() processes the gzip stream, head->done is zero until the header - is completed, at which time head->done is set to one. If a zlib stream is - being decoded, then head->done is set to -1 to indicate that there will be - no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be - used to force inflate() to return immediately after header processing is - complete and before any actual data is decompressed. - - The text, time, xflags, and os fields are filled in with the gzip header - contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max - contains the maximum number of bytes to write to extra. Once done is true, - extra_len contains the actual extra field length, and extra contains the - extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, - terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, - terminated with a zero unless the length is greater than comm_max. When any - of extra, name, or comment are not Z_NULL and the respective field is not - present in the header, then that field is set to Z_NULL to signal its - absence. This allows the use of deflateSetHeader() with the returned - structure to duplicate the header. However if those fields are set to - allocated memory, then the application will need to save those pointers - elsewhere so that they can be eventually freed. - - If inflateGetHeader is not used, then the header information is simply - discarded. The header is always checked for validity, including the header - CRC if present. inflateReset() will reset the process to discard the header - information. The application would need to call inflateGetHeader() again to - retrieve the header from the next gzip stream. - - inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); - - Initialize the internal stream state for decompression using inflateBack() - calls. The fields zalloc, zfree and opaque in strm must be initialized - before the call. If zalloc and zfree are Z_NULL, then the default library- - derived memory allocation routines are used. windowBits is the base two - logarithm of the window size, in the range 8..15. window is a caller - supplied buffer of that size. Except for special applications where it is - assured that deflate was used with small window sizes, windowBits must be 15 - and a 32K byte window must be supplied to be able to decompress general - deflate streams. - - See inflateBack() for the usage of these routines. - - inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of - the parameters are invalid, Z_MEM_ERROR if the internal state could not be - allocated, or Z_VERSION_ERROR if the version of the library does not match - the version of the header file. -*/ - -typedef unsigned (*in_func) OF((void FAR *, - z_const unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); - -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); -/* - inflateBack() does a raw inflate with a single call using a call-back - interface for input and output. This is potentially more efficient than - inflate() for file i/o applications, in that it avoids copying between the - output and the sliding window by simply making the window itself the output - buffer. inflate() can be faster on modern CPUs when used with large - buffers. inflateBack() trusts the application to not change the output - buffer passed by the output function, at least until inflateBack() returns. - - inflateBackInit() must be called first to allocate the internal state - and to initialize the state with the user-provided window buffer. - inflateBack() may then be used multiple times to inflate a complete, raw - deflate stream with each call. inflateBackEnd() is then called to free the - allocated state. - - A raw deflate stream is one with no zlib or gzip header or trailer. - This routine would normally be used in a utility that reads zip or gzip - files and writes out uncompressed files. The utility would decode the - header and process the trailer on its own, hence this routine expects only - the raw deflate stream to decompress. This is different from the normal - behavior of inflate(), which expects either a zlib or gzip header and - trailer around the deflate stream. - - inflateBack() uses two subroutines supplied by the caller that are then - called by inflateBack() for input and output. inflateBack() calls those - routines until it reads a complete deflate stream and writes out all of the - uncompressed data, or until it encounters an error. The function's - parameters and return types are defined above in the in_func and out_func - typedefs. inflateBack() will call in(in_desc, &buf) which should return the - number of bytes of provided input, and a pointer to that input in buf. If - there is no input available, in() must return zero--buf is ignored in that - case--and inflateBack() will return a buffer error. inflateBack() will call - out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() - should return zero on success, or non-zero on failure. If out() returns - non-zero, inflateBack() will return with an error. Neither in() nor out() - are permitted to change the contents of the window provided to - inflateBackInit(), which is also the buffer that out() uses to write from. - The length written by out() will be at most the window size. Any non-zero - amount of input may be provided by in(). - - For convenience, inflateBack() can be provided input on the first call by - setting strm->next_in and strm->avail_in. If that input is exhausted, then - in() will be called. Therefore strm->next_in must be initialized before - calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called - immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in - must also be initialized, and then if strm->avail_in is not zero, input will - initially be taken from strm->next_in[0 .. strm->avail_in - 1]. - - The in_desc and out_desc parameters of inflateBack() is passed as the - first parameter of in() and out() respectively when they are called. These - descriptors can be optionally used to pass any information that the caller- - supplied in() and out() functions need to do their job. - - On return, inflateBack() will set strm->next_in and strm->avail_in to - pass back any unused input that was provided by the last in() call. The - return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR - if in() or out() returned an error, Z_DATA_ERROR if there was a format error - in the deflate stream (in which case strm->msg is set to indicate the nature - of the error), or Z_STREAM_ERROR if the stream was not properly initialized. - In the case of Z_BUF_ERROR, an input or output error can be distinguished - using strm->next_in which will be Z_NULL only if in() returned an error. If - strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning - non-zero. (in() will always be called before out(), so strm->next_in is - assured to be defined if out() returns non-zero.) Note that inflateBack() - cannot return Z_OK. -*/ - -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); -/* - All memory allocated by inflateBackInit() is freed. - - inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream - state was inconsistent. -*/ - -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); -/* Return flags indicating compile-time options. - - Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: - 1.0: size of uInt - 3.2: size of uLong - 5.4: size of voidpf (pointer) - 7.6: size of z_off_t - - Compiler, assembler, and debug options: - 8: DEBUG - 9: ASMV or ASMINF -- use ASM code - 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention - 11: 0 (reserved) - - One-time table building (smaller code, but not thread-safe if true): - 12: BUILDFIXED -- build static block decoding tables when needed - 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed - 14,15: 0 (reserved) - - Library content (indicates missing functionality): - 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking - deflate code when not needed) - 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect - and decode gzip streams (to avoid linking crc code) - 18-19: 0 (reserved) - - Operation variations (changes in library functionality): - 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate - 21: FASTEST -- deflate algorithm with only one, lowest compression level - 22,23: 0 (reserved) - - The sprintf variant used by gzprintf (zero is best): - 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format - 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! - 26: 0 = returns value, 1 = void -- 1 means inferred string length returned - - Remainder: - 27-31: 0 (reserved) - */ - -#ifndef Z_SOLO - - /* utility functions */ - -/* - The following utility functions are implemented on top of the basic - stream-oriented functions. To simplify the interface, some default options - are assumed (compression level and memory usage, standard memory allocation - functions). The source code of these utility functions can be modified if - you need special options. -*/ - -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Compresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer. -*/ - -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); -/* - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ - -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); -/* - compressBound() returns an upper bound on the compressed size after - compress() or compress2() on sourceLen bytes. It would be used before a - compress() or compress2() call to allocate the destination buffer. -*/ - -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be large enough to hold the entire - uncompressed data. (The size of the uncompressed data must have been saved - previously by the compressor and transmitted to the decompressor by some - mechanism outside the scope of this compression library.) Upon exit, destLen - is the actual size of the uncompressed buffer. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In - the case where there is not enough room, uncompress() will fill the output - buffer with the uncompressed data up to that point. -*/ - - /* gzip file access functions */ - -/* - This library supports reading and writing files in gzip (.gz) format with - an interface similar to that of stdio, using the functions that start with - "gz". The gzip format is different from the zlib format. gzip is a gzip - wrapper, documented in RFC 1952, wrapped around a deflate stream. -*/ - -typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ - -/* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); - - Opens a gzip (.gz) file for reading or writing. The mode parameter is as - in fopen ("rb" or "wb") but can also include a compression level ("wb9") or - a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only - compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) 'T' will - request transparent writing or appending with no compression and not using - the gzip format. - - "a" can be used instead of "w" to request that the gzip stream that will - be written be appended to the file. "+" will result in an error, since - reading and writing to the same gzip file is not supported. The addition of - "x" when writing will create the file exclusively, which fails if the file - already exists. On systems that support it, the addition of "e" when - reading or writing will set the flag to close the file on an execve() call. - - These functions, as well as gzip, will read and decode a sequence of gzip - streams in a file. The append function of gzopen() can be used to create - such a file. (Also see gzflush() for another way to do this.) When - appending, gzopen does not test whether the file begins with a gzip stream, - nor does it look for the end of the gzip streams to begin appending. gzopen - will simply append a gzip stream to the existing file. - - gzopen can be used to read a file which is not in gzip format; in this - case gzread will directly read from the file without decompression. When - reading, this will be detected automatically by looking for the magic two- - byte gzip header. - - gzopen returns NULL if the file could not be opened, if there was - insufficient memory to allocate the gzFile state, or if an invalid mode was - specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). - errno can be checked to determine if the reason gzopen failed was that the - file could not be opened. -*/ - -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); -/* - gzdopen associates a gzFile with the file descriptor fd. File descriptors - are obtained from calls like open, dup, creat, pipe or fileno (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. - - The next call of gzclose on the returned gzFile will also close the file - descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor - fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, - mode);. The duplicated descriptor should be saved to avoid a leak, since - gzdopen does not close fd if it fails. If you are using fileno() to get the - file descriptor from a FILE *, then you will have to use dup() to avoid - double-close()ing the file descriptor. Both gzclose() and fclose() will - close the associated file descriptor, so they need to have different file - descriptors. - - gzdopen returns NULL if there was insufficient memory to allocate the - gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not - provided, or '+' was provided), or if fd is -1. The file descriptor is not - used until the next gz* read, write, seek, or close operation, so gzdopen - will not detect if fd is invalid (unless fd is -1). -*/ - -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); -/* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Two buffers are allocated, either both of the specified size when - writing, or one of the specified size and the other twice that size when - reading. A larger buffer size of, for example, 64K or 128K bytes will - noticeably increase the speed of decompression (reading). - - The new buffer size also affects the maximum length for gzprintf(). - - gzbuffer() returns 0 on success, or -1 on failure, such as being called - too late. -*/ - -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); -/* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. - - gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not - opened for writing. -*/ - -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); -/* - Reads the given number of uncompressed bytes from the compressed file. If - the input file is not in gzip format, gzread copies the given number of - bytes into the buffer directly from the file. - - After reaching the end of a gzip stream in the input, gzread will continue - to read, looking for another gzip stream. Any number of gzip streams may be - concatenated in the input file, and will all be decompressed by gzread(). - If something other than a gzip stream is encountered after a gzip stream, - that remaining trailing garbage is ignored (and no error is returned). - - gzread can be used to read a gzip file that is being concurrently written. - Upon reaching the end of the input, gzread will return with the available - data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then - gzclearerr can be used to clear the end of file indicator in order to permit - gzread to be tried again. Z_OK indicates that a gzip stream was completed - on the last gzread. Z_BUF_ERROR indicates that the input file ended in the - middle of a gzip stream. Note that gzread does not return -1 in the event - of an incomplete gzip stream. This error is deferred until gzclose(), which - will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip - stream. Alternatively, gzerror can be used before gzclose to detect this - case. - - gzread returns the number of uncompressed bytes actually read, less than - len for end of file, or -1 for error. -*/ - -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); -/* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. -*/ - -ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); -/* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written, or 0 in case of error. The number of - uncompressed bytes written is limited to 8191, or one less than the buffer - size given to gzbuffer(). The caller should assure that this limit is not - exceeded. If it is exceeded, then gzprintf() will return an error (0) with - nothing written. In this case, there may also be a buffer overflow with - unpredictable consequences, which is possible only if zlib was compiled with - the insecure functions sprintf() or vsprintf() because the secure snprintf() - or vsnprintf() functions were not available. This can be determined using - zlibCompileFlags(). -*/ - -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); -/* - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - - gzputs returns the number of characters written, or -1 in case of error. -*/ - -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); -/* - Reads bytes from the compressed file until len-1 characters are read, or a - newline character is read and transferred to buf, or an end-of-file - condition is encountered. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. - - gzgets returns buf which is a null-terminated string, or it returns NULL - for end-of-file or in case of error. If there was an error, the contents at - buf are indeterminate. -*/ - -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); -/* - Writes c, converted to an unsigned char, into the compressed file. gzputc - returns the value that was written, or -1 in case of error. -*/ - -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); -/* - Reads one byte from the compressed file. gzgetc returns this byte or -1 - in case of end of file or error. This is implemented as a macro for speed. - As such, it does not do all of the checking the other functions do. I.e. - it does not check to see if file is NULL, nor whether the structure file - points to has been clobbered or not. -*/ - -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); -/* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. - gzungetc() returns the character pushed, or -1 on failure. gzungetc() will - fail if c is -1, and may fail if a character has been pushed but not read - yet. If gzungetc is used immediately after gzopen or gzdopen, at least the - output buffer size of pushed characters is allowed. (See gzbuffer above.) - The pushed character will be discarded if the stream is repositioned with - gzseek() or gzrewind(). -*/ - -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); -/* - Flushes all pending output into the compressed file. The parameter flush - is as in the deflate() function. The return value is the zlib error number - (see function gzerror below). gzflush is only permitted when writing. - - If the flush parameter is Z_FINISH, the remaining data is written and the - gzip stream is completed in the output. If gzwrite() is called again, a new - gzip stream will be started in the output. gzread() is able to read such - concatented gzip streams. - - gzflush should be called only when strictly necessary because it will - degrade compression if called too often. -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); - - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the - uncompressed data stream. The whence parameter is defined as in lseek(2); - the value SEEK_END is not supported. - - If the file is opened for reading, this function is emulated but can be - extremely slow. If the file is opened for writing, only forward seeks are - supported; gzseek then compresses a sequence of zeroes up to the new - starting position. - - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error, in - particular if the file is opened for writing and the new starting position - would be before the current position. -*/ - -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); -/* - Rewinds the given file. This function is supported only for reading. - - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); - - Returns the starting position for the next gzread or gzwrite on the given - compressed file. This position represents a number of bytes in the - uncompressed data stream, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). - - gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); - - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. -*/ - -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); -/* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. - - If gzeof() returns true, then the read functions will return no more data, - unless the end-of-file indicator is reset by gzclearerr() and the input file - has grown since the previous end of file was detected. -*/ - -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); -/* - Returns true (1) if file is being copied directly while reading, or false - (0) if file is a gzip stream being decompressed. - - If the input file is empty, gzdirect() will return true, since the input - does not contain a gzip stream. - - If gzdirect() is used immediately after gzopen() or gzdopen() it will - cause buffers to be allocated to allow reading the file to determine if it - is a gzip file. Therefore if gzbuffer() is used, it should be called before - gzdirect(). - - When writing, gzdirect() returns true (1) if transparent writing was - requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note: - gzdirect() is not needed when writing. Transparent writing must be - explicitly requested, so the application already knows the answer. When - linking statically, using gzdirect() will include all of the zlib code for - gzip file reading and decompression, which may not be desired.) -*/ - -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); -/* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you - cannot call gzerror with file, since its structures have been deallocated. - gzclose must not be called more than once on the same file, just as free - must not be called more than once on the same allocation. - - gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a - file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the - last read ended in the middle of a gzip stream, or Z_OK on success. -*/ - -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); -/* - Same as gzclose(), but gzclose_r() is only for use when reading, and - gzclose_w() is only for use when writing or appending. The advantage to - using these instead of gzclose() is that they avoid linking in zlib - compression or decompression code that is not used when only reading or only - writing respectively. If gzclose() is used, then both compression and - decompression code will be included the application when linking to a static - zlib library. -*/ - -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); -/* - Returns the error message for the last error which occurred on the given - compressed file. errnum is set to zlib error number. If an error occurred - in the file system and not in the compression library, errnum is set to - Z_ERRNO and the application may consult errno to get the exact error code. - - The application must not modify the returned string. Future calls to - this function may invalidate the previously returned string. If file is - closed, then the string previously returned by gzerror will no longer be - available. - - gzerror() should be used to distinguish errors from end-of-file for those - functions above that do not distinguish those cases in their return values. -*/ - -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); -/* - Clears the error and end-of-file flags for file. This is analogous to the - clearerr() function in stdio. This is useful for continuing to read a gzip - file that is being written concurrently. -*/ - -#endif /* !Z_SOLO */ - - /* checksum functions */ - -/* - These functions are not related to compression but are exported - anyway because they might be useful in applications using the compression - library. -*/ - -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); -/* - Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is Z_NULL, this function returns the - required initial value for the checksum. - - An Adler-32 checksum is almost as reliable as a CRC32 but can be computed - much faster. - - Usage example: - - uLong adler = adler32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - adler = adler32(adler, buffer, length); - } - if (adler != original_adler) error(); -*/ - -/* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); - - Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 - and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for - each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of - seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note - that the z_off_t type (like off_t) is a signed integer. If len2 is - negative, the result has no meaning or utility. -*/ - -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); -/* - Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_NULL, this function returns the required - initial value for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. - - Usage example: - - uLong crc = crc32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - crc = crc32(crc, buffer, length); - } - if (crc != original_crc) error(); -*/ - -/* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); - - Combine two CRC-32 check values into one. For two sequences of bytes, - seq1 and seq2 with lengths len1 and len2, CRC-32 check values were - calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 - check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and - len2. -*/ - - - /* various hacks, don't look :) */ - -/* deflateInit and inflateInit are macros to allow checking the zlib version - * and the compiler's view of z_stream: - */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); -#define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -#define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -#define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -#define inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) - -#ifndef Z_SOLO - -/* gzgetc() macro and its supporting function and exposed data structure. Note - * that the real internal state is much larger than the exposed structure. - * This abbreviated structure exposes just enough for the gzgetc() macro. The - * user should not mess with these exposed elements, since their names or - * behavior could change in the future, perhaps even capriciously. They can - * only be used by the gzgetc() macro. You have been warned. - */ -struct gzFile_s { - unsigned have; - unsigned char *next; - z_off64_t pos; -}; -ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ -#ifdef Z_PREFIX_SET -# undef z_gzgetc -# define z_gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) -#else -# define gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) -#endif - -/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or - * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if - * both are true, the application gets the *64 functions, and the regular - * functions are changed to 64 bits) -- in case these are set on systems - * without large file support, _LFS64_LARGEFILE must also be true - */ -#ifdef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); -#endif - -#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) -# ifdef Z_PREFIX_SET -# define z_gzopen z_gzopen64 -# define z_gzseek z_gzseek64 -# define z_gztell z_gztell64 -# define z_gzoffset z_gzoffset64 -# define z_adler32_combine z_adler32_combine64 -# define z_crc32_combine z_crc32_combine64 -# else -# define gzopen gzopen64 -# define gzseek gzseek64 -# define gztell gztell64 -# define gzoffset gzoffset64 -# define adler32_combine adler32_combine64 -# define crc32_combine crc32_combine64 -# endif -# ifndef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); -# endif -#else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); -#endif - -#else /* Z_SOLO */ - - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - -#endif /* !Z_SOLO */ - -/* hack for buggy compilers */ -#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) - struct internal_state {int dummy;}; -#endif - -/* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if defined(_WIN32) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); -#endif -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, - const char *format, - va_list va)); -# endif -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* ZLIB_H */ diff --git a/lib/osx/libGLEW.a b/lib/osx/libGLEW.a deleted file mode 100644 index e8689d838ac46a02f1aa3e7fd8b92a7b5bdc47c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725456 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≷7U! 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%0DACIc2`&7W$+@~<={<%=s&xpEy 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 diff --git a/lib/osx/libSDL2.a b/lib/osx/libSDL2.a deleted file mode 100644 index 14be572a5ac688d763747da143b6f0ab392db3fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1418152 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 z%0D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%0AG2~XL^tuuI2OT(CA#C1Api*#>s4_`cc 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� zgpTEmZ00kvnVV!YU&@&nWD~UU*2r%$(m#cfzLxC^*UeC~peWmwr>Q1zws9=DMyZ<0 zHco~FTX7nS@zW6N${)+(WGZ|?`D2;l<Gk|628-!cRVoFV_GW*P%^po3ZUk%4@HfRb z`kMSLL8BGo!BwjJO@KL2%X}KXzrEq@MkfJi#>ZH(3f6SA{E&{8zuRv4+mq1p?wy+P zj_7-;@y<9b<RziFb08Re(()~_Oga)Jz$w=x-cHFr$hFd^=YhH{p0hdVZlj()ks!8M zts74bf(mSsz#cRQHT>AZU-S1+1I`0N?fy)PselDSI6d5_V&7$ui8w4ZQCez(w8TMc zkFvVHwz-dckMsm8R7=xwzamx+ur46l{ZDqg$2U3`g5w+gMcL>B!S=|;m8ukel`poM zJquq}yAQ;dY<S+sW3k9jgE(V~iDO<c^r_$d20ri4bAt)yak>9m(m5FA3{I+WDJI4t z$tRENQSA~k`1>)xYEg~%S_Xn1L?bDcl|l@CZ_x|wZFI0(#u=VwrID#ai)V36Ot#sV zMD2+RGfq*wM2`}+w@vgKOS)v$0yQIT_jDtvgE=O}wv#um>EMmziPXkBt4{F5)9f$2 z#>>$Uy6ppg<I8+Zd5>dQy#n0;;Bj<=SonUZ9Kie}_rO9B*6i2~PWRLe^k}%q>IROg zMK}0v()eijadd;PWH-o14ms*}*9|!IcF_$sgRIdT9UM{i0XUK`#&?2e;yZz6w45_X z?5+<`gWBE)s6uu20ZYBw`#!*hVP`|eg6IPwHe`Q{WB=dL^^2$<U%@|!u36}Ix@L_y z>6)H@KV6G;hQ;eUq*v=8@kod48ZU^Je^QMi5<f$nLdLS7=<g6gadkAr1vSHxIV(=4 zDo<vBHR}~m<X{g9&z<V#Jrn%KN%OuL(_1%YxRuHyU_-_S6^GnP)!*=WVq;Py171_X zp?L1pd@QHs+xWpm?%-6AcUqfL^{T+j2+u;NnyH)pah_VKTm?tGAYE}XN2z)a-@18k zsyQ*!9G7KmPupb{VJ84O;-HEc1etZnzqKs@i-y2eacOr92P{?>Vq<AtG(|kjqessN z8g_3@TGPyzZ7P14iZZD9LXUoIkQ%+c4a>@9!~G%L_&u|}eCg7qdTnzK^jKSKKfbK? zR6lnkwuo|m9@X?DW%cMx%xjx}g($HmngXxL0-O<HQ1?=o42qi-WN5|Rs2j(4EFy{& zT~_dvmItvmt5osgE#&_RxL3WwZ?VZwW*EB-=_K|7DwS{I`&Mfi`zd@jGbq;4uqqq5 zz#N@n)Ydj%2DSRBSgo>pY-Uu0J`P)2L)I(SIz`sMlI<bKf5I*b*Prq4QnW^H95wdH zUHRtsGL4^5LCQ(f8#wR5HA}2TA)s!mspf>7)}6*A>?Tzwn1!XeILq+@_LLza*H}|K zd6L>rJ)~v;)&Pgoll3w2k}@uswzpP*>mz2NEQQ2g=UdL;6h+X*Yt({GKI7oxp~27> zxJetcfcN#}DbUM)5Sz5(3g4<xz850t{@CV#`%GX|q-GJeC@{?C#Xij_srQF)1@#$S zS^WV6VPfSB7aoaAs__Upg6g9d*DTt{-92?;lP)uWE$l5r<DE34m97`ibq)4Rajg&z zh(<F@!1Rw$vN0#s6f}qnkFgy|(T*9B<<J>>P88I`t6@nV>pP-MH~LSn69;r4$+x6U z$5sIDB2Dtt7t}xTZozhFnKWhmK~#dk$BXHUmtus2?)5>a@PC-Ho|J>TR^VKnq*XuY zhNCq$po;4;uk&Nq0yfI($&vN`(7X8jz}~Efs;Kw7-@`^tj93BVv+#VM`wJYyF@0+a zYOw-|bdQQe&!1igF%n76N0LiY{v?vj*xc8pRnJFyORO0nblynsOH8r?#=(vx-|r$x zq$5&2ic}-fip9%a*bh}5P_)miz0sAR5#LhP*rZf_jZHt$($65H52-kuf|-o9J$jT- zDMt(4#s>5dpozR*uGab3YM3azk<xORyyXGcch5nwb#v^5mhVlsP=Jth!tItDKqD9G z;6Q$3yI^y;uN==B<cN4Y?}1p5(GI_3=rg*aZDe$~-XTj8I&XSd>Ytgjw11LVl{^9k z0lBDy$&w-A4YLoejd`*&hZSqVBi!#+3geMC$f|JC1iKAWZGHu|f}Q@%52_j6a?<*W zn!$D#wjXNXS$@B<JAkzcby?vcwHgmLC>e#BsxnB+OHr5Ud1`eaFB2a__;EfyuH?rB z__&H67vf_mKeF)Q;m1YzxSAgq<Kr5BT;h-3pEnryzjQDLE=u#9f4~qM*#e<yxX7bq zdBFT0?g*KLohtX{#I{=fIv-jMu#_n)z(Lq+0>+ev{F*x73oM#eu+P}II1k&qav*(< zy#{B+RCB~Ha(6X-hKd71I8~2r3>190=&)As;bN}?5t~*<yxf5p8O;7%aA?utI^R-8 z-I5_cuq(CC@7+dlsj<gXs}<~*9rOj!L0{m>2+w=vr+74a(L>OO{@I00dNyDZi2Z?s zD%w&a=c#pW=7r1LE&V}DuyHlAyw(lW@>BGCqS0u4O$-*w>g^aXu9~@p&aV-}v)TQ= zXP0NI`<Q_hvoF>1ubG(oIuU$IfG0Bw2jM&wE(0+ZS7YN&+H{}s7_<wI$-a)~Ar@Dw z)oH$J>SrHo@9bDHep3%^^hZZjK;8@(jo2_B0}IDC0bdRD9*{*f&q=HcMEV4cFIyI> zZk%NM68!j9X5eL}uLPiLUh5OdU&x}N*Q*BC8y-th#Z3?`-%@d7tXj=2P>&_4uYvu8 z{|CX+eAw{+Ce|p%Mn|kS_6Ci^BJF_t2vsib55SE*IAF9t@(g;m=-<`A!NxF<2}xuM zG`e4*69@1pd<FLWx@+@mKo6=>xA@BTcE(Q6BH7Nd?d5G>Bk}pE{#acQEq%~eaA@)H zcGO^~6{vq8N!X|huE6*ZEI7F6V9@wWov#L=T`kytWPkgNwiY~0@)wc^PBlPX0s2s$ z-Jq<6X8a4E=PS?!s%lX{jbdkNEcQASF*qisxnnPj(Op@6Mz8(+dTl0jC@e?|4lSWp zK^U-duM~&__9qT|Hf!$f!D#8LDaO&<NiV47Uol>sH3c0gfp=l&Cu%<En!Y|3n-0fK zu=&sqi&OleIySMf7cCr{gms^0eFe{nrl_8G!_&CjV?_swLL{K5uiE1i?dgb66%ETh zk7zw8F;;+X*q8y+w+i(T7ds+G4Md)=So{JS+_wUkJYh$$Zw1=55|wp?Vd7i!Ht;&h zxlJ{z_9Ql}1fzp1Eat77V%u!NhUjPrg`b}R_XfubSUX{%fx#YDh<PcIJnLQ$)?Q0) zJ2O|Re+AWPfVl-j*QXPSTQ$JWyXE5n&xai5jrVn9n-pdDf{&vdo4V%Xh0Ql~p`V>> z_FI*tR89ur8?_btzsB}GbVuqddCPdkK9uI$LMFmKQL|{miNcwXRsRDWNjJygI2MEi zb8ePdlwtUwh+Ny(@Vy8D(`N0Kz@#fsDH%NCW-)xrx?B$xW$B^EGa<!D$<2V8m(p83 zqYsUP??n1GVpEY(XO+>?1g{T9mw;tQR<=NIIBTVfBg$5TptaXS!&8pr*5}ul!51O+ z?pG_mN{Zlg;5ucxGP`!VGSb!OSJ1^ySKjIKZ`8>`2cy2qj^C0C(wyCIx-z$B({cR# zjVK`tB}JtKk3dT{x;GMIJaCt6#`Z>BH5S6q$%Jny*NkKM#9Fy;4dgg|MZkR+2Msj$ zajX$zH)yL;`37PcHDwcysy=-`*e4ftn7{tw(F-z)I*?s8<cF2WaX)L1CccV6+Y7iz zdIhL;Jv0|<*khWlgqE|*EE);z?r|0Gz(7~piqjLD7QNd19*MS_ipCo>Xi;-QDeLzG zQNMM*H<3M8ov)riG;0HP{u;iw^eD8Om@Gl)u-`s0Es`joIwSULc8!JB%~_08uPej> z2-Ilu(gD!>Y?|zl88|Uh*5dIF@v+YSSldrodxu+`j#k#*o+S1pSvY*?BW^Z_4Z|Fw zzho9wW)A(4n_JhaLk-`X0C~E69LG%AfKH85&8o-ny#jz+(}dF+QymOih0E2DES z9;o%Tg?WbWIcNgs^2FJ~A^4f<!OvuFQ7F9HXX-gPxV1tvuQP*h8C$j7kImql;=C3T z${Ykq5NC^WTg>1qO)VgXHK0LkVZLJ4i#V^PHhpRapW`8|qdXPOb6y(HMjueqFmDhi z!!kYGlkhQiRvhr9ZG}4o)eEUN73YTV6xCBm+>N)4;;xMAxO@=1NhZC*`r(x?*z`Zt z2)+g2fh5c$07eisq+bK!7Nybij3E0hk)ZlsJA;R4C$q4Sq?EN2uGY*+uW06_ID47t z%l!c5#b$dAJ>Hl5KFWzb7MeMAurK#r)PUObiFU>09PnEl^)?Z0)928Xs!fNm&jN_t z_kYlbz0}oPfXU;xANdB%#a@hqnsHPuKX}<mj25*YCaL8gQfl<29fxYHe80=Jub-N> zO*1Z&RX`P@BDT$#zE`kq@c(!9fWgzQ2Mhy_dPx4}^-x24_(L!00j<A~ls}b}Kf^<c zxDsE5S7QdKnFDd23A6w$IB4Nx&72Hc*d}P91%v@wz>XNu!e`nQx<w1kf)+sLAoc@l z?fxuZTBD%(7C{&v`qK80Hn8KrR!|5Ie{c&q$bEAPRtcgQk<Zf1e(YM9^sI_LS+!+7 z1O!a<Ygt&{y@Z@Y^auHi4;;s_lp|*PR*VlMf6NCg`p4t}XAS7QUN~QD1pg>LaH3T> zuY!%8<pn}?7P1L_h!K2_5M65pA!}*w)vUCu@U!q5Y?wv=c@}%D26EvuMN|}Oja;D~ z8=D4Sr1FLhjg`4cFp%|RAigUCdFduH(1facfqiLZ(}#j<@O<ZiG)((~s~9{DRn~-B zJlgbOS`$`>u%C(5OccQ}Y>m58^%zDP)Awu-T;o|*TsA5WWnr}eBvu-nSY-h16^3tC z7r;4J*24D6n%Z7j=A}LZt3X^qfY^v5_!%U7b1rHREC;p6BSE6}@=YAB%iSASci=!) z)uGnTR&^K2syoH1!wxdAo&8`y&;Wo}H4F0Gucjd%AVtA>Ew=N3RgXQ=BP%k~qCkiy z7@<HOn5ni?U<ybLOP9)84HPIOCqaS2nG~qyU2OQ;DNs0*0y!{|0t+$DiGgYe1}fSy zx{(44J5wNfEGW?IM1Vd~g;@y%=pzAUP@YQHa_d2ZO^3U$M;^;!HCiXC(i%{WS$6%Q zucQ8I6YH<6tNKH=bLJsHJ9I%cN#nM_Qt8dr#d9(xS9X0r<O;ac7}#IX)%}sV`Ii5M z*sR=@|HxY`|0f|hcIE%)+bn-bk2Ii#c(btw|2L)oC04Lb;SWjw)NcGgm;UU|UF9#m z&<dE^jen+kcK^YnE&mSyx{Cjd^uN8E_(yA2cz-wkrls|A6?Wr~V{^hJ-oJS*TnFQS z-&&9w4BKBA`##GF@$Xp?KY)MzJqw@oAdHQla1ST(7vcXmhb(;3hcGsN7xBLcgz94! zKItV6KOz1+c)pAOy<b@Pl729l4a|5dspvc?E`=c;@6>y_7kJ!6@|?tz^wed1cLDFm z5>L`qCp=Mp;LVYEq%UFY{P{cA?~A~>|4XYpq_>{%-v!PH`5sws@Y7MJ>GGX1(qm8Y z-va!XB|ho1Cw#t-wezHvf6{AD_|E~q1-cO$((l>u*MrVM%eOv){y=zBkp*+VYr&tQ zA46>ME&;^!*?T7-PSJTs0`h*-nYW4y&dwhr;cXHg1AoF4%)0}ScxwS6R%ibX5Hys% z60i^8Re<S$0|9Yh-g|76m0lenPNjKw-(-b<126@6KLdnVnq3Tt{A7;-WVovVna|TV zTH&4qybyLp!ufdE2i1~&KHvp#-#T0{#q5g!VX}+BZ*gGEI{=XPvR*UH3jg2NS#YA) zg1@^)x_c~m%}@(AqMzfeq&Eo2@So&Z?z1I4d6{MZJlm?*^H4d=-!S|Tejk}4+=WQk z4$CDx50yasgD5Qhd1)!_C8$i=ccW5hzXR<|cs&Zkd?0$>`8E*2dB590_9q0znJgFY z7adpweEj`CfA6URiBdMU`S<<OZu9#b<ZmDv*uJN4ob<QH3+_*2czb;DNW0DN7fQR$ zzj+TR@oj#eB<=S2m@e)1c*ys+h;NU7PfNQ!-oYyFMYYFov~}FQsX=MC$8V6a@VCe7 ze}<iL*yag*IPF^!?7vU2U!7ooKEY1@<BV@gf_-*^{YZk{x=s|gORA-FXG|N7%Ng5U zEX%_s;kh#xmXuk}B@5?HoBdGngO7zvEQd+65q4r^-t=i9>5^#2b1<Q~k2x;(?DRg& zn3<)ecb0^l_l+iA5t?u@r*#FWOx6)KA8+aG+Ua&qJO)&XhmB-FtAxcPUB&V%|0Y*) zWOir{avh#GZFX5{vBPD~+-Z+SN`#BRNVLlkH{Nuk3s+NiL~-MdaF7WMAJLw`4Z|fG zKcqK4UERK?(#?ILHzd5L@*rB$zAF?>-sO8LE5RULIrJ4g)isp%Zp>UTZ<-p3W81-& z$mhx9h3V~kDn9@pqp{-~1||hoN~XV*z&1U-e`3coQU>6=kxr9Xq+;t5-FB4X;`sYQ zUy%8d!1WN~ON^sEFg`lpKYEvM@?9Mm+;TyKu|}8~3Hg)G?VzXkS;TrZunT2~g@}*r zb1Im<%x7G7d%A!0q|Dz!8Q*#tpR{sJnPGnu=HZ`XOyd2cbCEvAWibdH21BBlI)Qc= z=8ym6Q%nxy_Boq4g)AOC$-+zUe)E9|0dtgkqHj|8ytoH4+E<i|@aFg!tQ!<f5ElU! z4a1usv`)rDAX!F{exhh*M#qEKICWgZeKPY<g%yvd;%=zcq8TylK36KwAjgafYKM%9 zQ~eg?o2l4wonc@%DtwOM;tbSF<PuCtEA}hmj-v$wt@}%?x3pXCL&!n6ttgUj@{M-v zDxtCwA+abXLLSbl*r)Jjx}=1VIVXx{WJKa)OLxYNMT|%ZGpCt3(AL-JW+6U@YUblJ ztY_tM3Tz)z!7~ng#`7>fu?$}8c(nsXxn7UncoTf(qB`Fa*S|CQ+S%2J~!E5D}s zPPC-(LqYm2J&$syJHc)p67TR&N$^j#?PKvYdV|OjRsm9(l>Jx^_N_!G)#u~rWsN|# zuIoTq2a5GJ#NDT2OGZm_#g-fc(h@T%0rttj_q&$<O)WpfOX;<O+(?dAFf%1`vH2+U zIBi-%TSPG*O*dL|-!8yHNe)VZtu;e&6DVIXk8Ed+nyGe$qSZRL_jMiZojflWX(l%7 zdDyTnn>D%2tJf7#PDABe%O5D}GpI^gKCD}0Ikd~N%A2dPq|%A{p*chYP2z?T-Z=3( zyB3yqa0RdW3R4JUJI3OAQEk`;qSk(LnOgCM+h-iYK?rOgXb9)>wn*u}83!EUe*$;r zVi6V8UcC)bh);11)T^-NzZ0zb6vwaeshUC1KJNU)x6ce>Z$B(QhXpIq4SsVpUQt?@ zgC(R0c5~mCrK~<42yLbn?K5G5vi8nFSYtaDaBub}&&$z`xjBYDR5SEzjmg8X_U36a zCXc}J#~Osd{kGUOtC|xK$yVI20H=K2oIF`s`+df7T*pC)<hhJvq>4TGhF++$J?Co1 z1bFZ9?8UV-69TabS-b=xt-V6HhDMuJeDS1`v)(E8<b>wTdT{3KY2lf3X6MYF6V54% z%$+-D9$ygTYlEW${=15cCQK?G<5TaNbf<5kYe)p;XWh+Ma9!yQp=qHRC1o>zSOQ0B z+Q3q}(p%7-rW7sMl|N*BVY<^h9L5?ejU7+>yggx_&v|qJ|7)>FfQIP_W6z@#@F#&$ zgHL<;-Y_BGZ{R$TEQ0V$<QpQvtsek#{=<FH_&dK5KNugpHvuAv?5hAVAGtM0+WSZt zgD3ie_ftSPW$y&UywLk5ApU0Y@<&Wwyst?6{{V8n_M)^u4~Q|w`<%4@Ga!1u_enrx z`PTV>oG-DQ_{%QA57Ie*l4Zx09M-&$^KrTtSnjj30KtX4-2aLp&3gisgdx$(UIiJ) zI}MQYEle9}vMHaVjl4O42qMHF!tcP&d4=6B-=`gQXUi9q2e{ANmJf8;`Cfx<`023n zjp;Z$>&xlS;m>L3lDX6Vc0zdeSEqkVf_+*-c-E&ApLdKq?LSJeQ=V}8b6)4P*CqHX z3H~o7`15{4XZW@R|H~8n%>;jIw!*$$1fg8cUCK(-((ugrC7}uPN~V{DLo=>>q(u4= zvv^|ZoCOx@#5vQ$bh2zk(@H~;QamW?aGEh^PMNTe!PMcp>3D85GS8kh`Df3cRyq@} zH<SdY&2<%*JysS9mp=H|Y`g?%MJQeX<pZURkP+N9?ZMJs&#>aMGv10(pH_B*Hh#_m z$K(jJi;~&%9S&W*rdd`Nnl^j71LxdkT1b^OdUuIEw<5QMV=y?`5holbPV{wh818V1 zE0Wqpt><^)HVkckuJfiFM-In~ie_qmX7)k0`>>9gQ&;aSkYTuT@DD?ox7taV!nNb) z2$&^J4#U9McJLH2ZvqPtrnmE^0-@2d;$xH<U_RheUCo=$`YuADjAyb)9rFh;ZRTY% z;sgKdWO|yHtdQ|dm38rd**h1&sEVuc?~*_g30zWB8#F-j5rimhiGqS)&4pdqzy`30 z*eaqT=vS)&O~h6aXh_LsyGrY`kI#>`{`=9^R@z#?ca|UoPzVH(he`ki!YZOzAiVbf zJ2Ut0BUuE4w$-w5avw8y?%XqTX3m^BkHwV7aOZfO@))P(XJJ5JoOE4cEtn2j<z+GG zN_qB=GH<od<(LQX$`<RAeY{_aYG4wp<0y3*4akrAMuEISILEjOa(ya4;mn9_ms+rb z?XXVehn$P$Db&{e!$y1j*q(lyCBvPa%8#esnJgxx&xIchhr5rywV-;|;V?O8bf{QY z*40|CgbdaZ)TS)QUcmU1YeN^7AO1?&`32Q19xRonQ0A<|Uy*#BV()s4VZmmaD=z=I zJmog$PH^Y)56eNf6<xz&ePoHCK<SfD>yHY|7`6@ZdYmB^ul`|~E@!nF@T3Hrx&<4% zm?+3`nuPVD-|+gUWuX=6bE8r<tT#uzz88i)VRU+*uHkYfno=YeFF<nw_fAj3zr#e= zR#a=&)ObK*U6==!rYJ^!fvd_P&-&ar$f&N~jam-bQ6R*x$1MJQf0mQK_sv2lcnc2L z%EL(t!=^HmdtQ)j%#p<x7<-&@S=Zpp`&s47n;puo{-K$<8>>e4a#dZOU%%T}h~xL@ zwmb!AJ8=-7yHQ-IODg(0=_`wHEW}=8s1$~?Yp8G4&|Xy|^Q(6!Q8V`0v)ffSavG%c z<aSjfFHl#QurAE(sFXlMC8obC?zeL{^V+JRxHXwyzeir|)h{mM4f5g)|J7OKDORaN zdlaE4M2Vg7SS(Lopq@G3%AA?e{ra4$kr&p7C<r$lbY@xZq_3o$&hGq8{;}(EO|lZt zR~+`Z@#bVaeHaHwPp<@D#+(c3E6<5OEs-u(7NJk;c5dQyPf_rFj1XVp^l(w|1Ma?& zG=4p;h#hHT&-_)ORM@3hlva(*s~XyaEo;7wEmu*Ycpv1L_3ygVUaJ~;K1w*$9VHxh z8Yex8!9b;VxYCZ8m0cU3q|&V}00qvjp-Hrb)ex2G?Le-5(VL44?2AF|LW5fU9$w>i z&;v1Z!2MSk<wkccinK<>aM7+M=7Be<Y$luBPtr*jgwpLZN%15V&n2}|D6Zll+5|DH zxl*3~JMcX49<Yd2-67yoc<~#6xD}p%TApY`{zMV&D2TRrz9!mH{h_OQF~rOMxe)GB z|1c<<KCsZt;ADZK-&!+J6s6xZn|`}_32mzAcc!La?M^-L1Eo70UXH!NA$<5up;8DL zDj5!H!>fH|4`Wh-(-{_fFH7h1iifr35FCD?H6ho!s&X_T*SabjG$9XUNSS@NkR|$x z(&?iV?V8o5U|rz)aQTr~f;L~0!i_m=_)GVDG(yoow<-G4&=rv7rJ(`XKhKLLP3SQ* zB}$qpainQrZAFoxyG=g^%46sG2WRH)BhHDd>f35qkRT`H@h7AN2oT*0D%;n|@-=tA z3=NRoV4=_;6q@D#Zg%ees^J&N-Qhx^k~y<;_d9c{hF@5}mzzD+O;ODpFMe?Q7O<e5 zZ|2wg%a%fzZ)-B$>&~y^Y8mQiXt{$1K4^h4#{<Qg&kC_(t-q-#7=l9UIc>CvmD6BR za5uzS=SnJDN^7kUYBlp$gD>IIHMweh$){Eg&#M{?$%gn`!l7uA9j;0Ct*YUW>~22B ztZ#6qancio7d}I2MlEw!UfTGKw8ZHZg984gp%S{lyecz7zS${NW|Vxnh>&k`N@(zD zzL6IS%H0ke790#OHwQEs6=R?}+&!ZpkJpAuJRVCA_m@3PBh`j7bc%H;8L;k|NhUF} zfEFu0j3?*0cT?JZfH>7%3_J=gi}I^P;}wq=ik`0?<ML0-arq}O=^&7qmgSu|F4HTM zrhi7E8Mr<rc%)k}#O!)qS5A}Y3Hh766IT>t*M`~N7(ApJvwsHu-S|WguPh2L!BqkB zu!;j}-n+lYfnZ8m+p2Rt;U$$DHNjOSr&K0)bZqg2gXVzMWp8_(8@$ey2wNztEEw{L z)72qG6Pw(Dkzry3#h2HuS$VM~z2kMR_Ban)B`v?!yxw9pt{wwhA)hEkPlq=s^pDEK zCT~hg@OZc2-Y$XCKAa`xf9Rjq+qXX$>gL?P_J~KQa0ciIdMB=O;R)aVHY8AdujBq+ zx++~g;boPZtM|YZteb55Gq0ZP%N(V?Za{6>n`kAEqe2`;$>+Tkt<*U4YU2LF@K7rh zydS4Xmw!eMhLweCXgp*Frdjnf1ErU$3ZjDFQ&=1CL>zxi=#A}S*c-U2FbQ8j1!3f1 zitWH;`ToIb$V)M+lJknfODlubjZ|+1`u_o`diiQ+ReDur`>OPdDn~f0ycanuN3?NN zhnJ&ZpJWaQmj#QR8;YH;7CYajZe_ogIpTVALLzL=I4L%z`*d~g4<5lo*hw&YeoKsk z&_{il58C*A8$>>)@%f<O6O~`Pku^S5LywZatfr8Oqf}pZ`ET(`MFaPw1jF5eA9O)8 zoU<ffP5u$@#QGxV%3=g=*NT*Iwr~KZuZC_{6z1;=iLtJxll#AMpeCiPU18N_bmqd! zCXG|<M@m!8s`QR#WqP+l2RvrYfQ@CZ7dy9lo$HF7%PF($+0eH+lol6H+#KmhG38#6 zpxh5#19p}s$CbIM*!hOnx!Ef7#rQ_y>vbo$x|2_LC-v3-QN5KlDlUT$`=@0(mqmDH zn`Oqug`qq9YVX8#E*$2mZ?BbaSF_#yeXKebK(&RHAL;Jy8gRHY&F=FP3LOXZ$FHZ6 zCU~9rnjJJw`p-fdDbjnSnXG{D{o(v!LuPMLb(KMAh8G^95I(zBk-$DPFfz&=bhNnx zs%mlf3oPz_z8M%A#z{dTk%ZjyFehCM4^oFg+SsMIqh~PEY`q7{xH`hs*SV^CX=b3# zRk>S@P5ThImu8AL*`%`C=VUEsi^1KF_Z4x3m%0b+EPI}La4~u2`NzV171xE@TPONH z)_X~1^M%8j$}o$}ynhUrWphz+&E;>=T!*^__jGlx3?6RN+9tERYl|jJ(M0vXkp|m9 zOZ~5Iu*amq7F!KQrT!VepX!&u7sUUp`;NzGh(vN{j|c<!N&MeL=~<SL;2rYhI@+`- z|EQJz$O+QLm$>|%1ro)>9*)phevbi(%HL+CiySb~^IK)1&+qp@qIlYsviRrMj+!U> zz6TU1=y3dzJc*u1te}3)<??yl%?5U}YbZY(&k?!2eoV#9c5!|sey!vu?Vx_PJU)S5 zTPYbf?$`OPxXcWvmY!a-{8Eo6fqN{yvv*YC{IT;7DNlZYcS^ojfxec$nY5SsHOtqV zn;!$ew(?24sh^!ML7eYAaC?EJmnQ8Pm*0B7lq<6MpIiB)J=O0M%Ds>Lw^;ig(!O!| z-Q{f`NPaL$%6*c2_Wp>pb6mb=`yGM@iShdqrgZX?c2_^U9#*-9^b6USsAKbk)61u^ zLXqP)tmEG)L$2rWFzD?vl_N=AzRQuME=8(PM;DPn(M3CYIMS6n7IK6nI`-!X>2%ED zh>Wmf7DqM}lwKFFRC-;>91AIo|Lt<Dqg=>!1Nr4xZ5`)X$C=jg2J2X89doQB2ld?5 z93`%_Egu|aT~D#(d(sDGU&HR#oT_VkypRn-Nw>#``PQ{P9z0<`&&SH|VL<ZR^ltB) z*!2B%E8V8&9P8SqU(v^s=WTkGeVW*Pl!;tR9qnH^C$ZO#2_kYITv{?xDL{=7`M-6i zZ|udzu@@J`UKFT{i6!4Jx%0M3KTrZ>$Ap{yyY%)Or&t#vSB_JhihHFNWXEYq*%gRX z<>JU0T0&N8VhQ-Cm46pp-2W04csN%6UGUk-zxxzu%;(Uj<Y!;ER{lLxIs`u{Pl_CU zvD%OP)bek;oNH8R4#&K2YWep@%Cn{}D@7kpCjZ`O)$0bUa~+~Q=--jmw{`OG{yZ-~ zTmF3wc$D(&A7jU@_PHEo{7NMMp2GWubVv7dID|HM?u7F1IJzL;sr)SYH?nTz$yX{_ zcfpE(k+gfXe^j2VGI}te`p4yX{S*2(lXc_HdEvA%E_hg^MRy_UF01qUukiXuWd#N& z1rK!#?(Q0Jwc)Id7#44b<HZ5M#0j_z7(dT5aR$Qf>5qq3`0C0JBUN3%5aug>0hxRa zXGonTf+RM;sAhy4!nH`&c?taV*jfZ%RT$Y+IT2)6A@*_wCgW}6Xp&<8O|`HzMacre z*HZpc;w&lAw~}~bzwtQNhVcftFe7w1g0GCwr4kRvtQwOa5j^)!tKNe|dL=UG<TO$( zku=ZrO;gTjLQ_qD2H|uvb2rGt?y4dA$}9GWW-{sC1rl>7mtZtOosP^)39FMOAzM9t zflg79X%TIi-N)om=!Ggg&j^uxA(YO{aOH>az45jyA0#}zEdL;XkNd<+?`rvQW6n3| zY^IV)Bf;A2LCl5sGftOykZrN|!0BPU0rYepB&q-xS|q&^)Z7hudVH%v&F?(U4?#`U zh&;ZiM}0`X4PmpG2yvQU-;lPE<N3r}0w+XUTF$X2^_1FfPdjW@W;FgE=;pe01t5~n z2;Iu#y>wHUmDz%Rt6^{-!qpH<tYuaXa)t)A`c=FMKMkya>WZ8n(y%G4jHEN?i9ppg zOFEXwQ(b|p=~#z#$BOG$OH{vVTg14FfN=Q4<e%CC)tG)YgnmW!?VXO^&Zs!mNlMFp z#a2g5zv64{e&x|F<k_NFMFs7CWp%3|?6M@+&{_Mm=vDGSf?lO>W2%_{9)WUqA~@vG ztXBz14x(2*Z*6q!C<?xZl=MAzH)=#+YC2_uN?c6nPQ}G4wa-DPYAazM;_yPB;Bye0 zzQ>0nH+@Isrm9;hNofOjBOS|?sAv7f>RGKXMRl*+c|IaD&7&2D*zHr9ELXAJ%cN4L zQ|o4Z>=TDBz5f<JcCFB3mvUitnq!x2r&(hcBKw#=7B_Y=r-@c(`s$cI7B_ZDLgKMY zQZf?^UaMV5A6gDz1V~9Vg4s@L-nIrX`qVOO0ORzy^fj0B4Ms4olp~vb8NohgBL9yc z!CKq9WY6hzXT~pe?^?(h_@CXoP=Q7f!+7u>Z2Itu0SC5#O&+#Qr$1ig+*;&pf=R6C zM<UY0)EMdEmE8IsdpYUI0Olj-@N@lB;4xqo@F=pBH-K|U8w}I{D}XgX67q{xfCLyH z3!vQ*PNAF*z}dhsAd5Yu?*NYjO940U8Ub7hQ~+1AfAkoz0gxb&wlve0>Dv754Ve~y zJFPi?Tdntj^`@`{s=l7>;PGsDA+Z-8H%0NdUEpy!OTxIje0vH!?tF{K#l@iFap!6t zH^rE<i}f|e_6%A_IE(POPvW>h^SHuDpEVHM{n?|0FbVF;;Q0VN$pgZZJkX|Ki#u=| zJjt;nQwjR58AFyLaJ#SYm$F}$vK34BXU)<PU0rdzorT*))1d15D7TxJRvm)dmDn)C zV8tk43`)}q7<Za}JRRJfnftap>_$yM@vNeO(M8_Nj3Hb}9!%}sS-Ef9GsZ~ab|pb( zjJvbd)0*2IDcr845ET+d3`#{4gAX4m>@NIDc4t@qc6c+wKEm+Io^F0v_+1n*V0Vut z;hw8jv%L0%vB4AE!_=@n;e-)R8ebQgFwny2@HEO#ari;IfzRq8yzIzc;@Cy8yd#C> zC6>-e#hIW&qF7$h!caBdAzB!nEta>H1;CSZ7M6EpgyqeYHi%<+ZAA>5<!$AwcoVyV z#m-G2x{XpKct`axr5e<GmT<hH8H65zxTg=?6)rz+^)bcxTB<=V84Uw%r)LNTMK$Oz zitlCRS4p`v^!1s!`{jGw^fBG2bdw%dH^Fs{IL$yqXrDOA*)44@y@dO4U!tn>5znHl zBMH(;#FO!$472;)x|2ve5Y<UuZTz!zb@kRo1+owrO0TxHipZ56&uho^YV!r9yKs+s z+)tfRE|T|B0$p3ZJGN_6SO$5razCP5NUBmU5`G&`3oWax`gMXTYZ8H?aSk=U7Po$A z_ltIs#63Ff&OgNY5*I$i(J?v>>n)1ZwvLgdSo9X1STEw1!-Ox<S__9<Nt2{^s|B5z zPn4my`;7R;;nQGaMa}4a^_BJS@*ynZ=-<0sX>uY;3mimi!6Zm2nnsFIABo<=JMOfl z?#kT8Mc|u+(<=zgh1}2-X)If}s5eZvt#%|GoU5qff-~eg?N{=~NVnGm>s2QhSk)3R z@Er!%BS~6(kZ^GQ4dNd?csy}BgKO`T53ZM6RI>&mNI1AkLgK+yQdlLn7+lv_gR2X3 z4H)n@v^-(CEB^zo!al}^r`O2$e~QudgXW{_Pm$NhA?QD6bQQ|hBkXC<;n$|ySUfX_ zGqbmt!$%-_{g0l*PrHY8Mywl$!82T99G94;WX2*GwJ7jEXB_*C#;`Y(bTkHoXL?v% z4-+@$aTIu_hkeSG?j!8s$6@eH4~y$z73em^;pa>b`;<LwOhmYRh7U``hYeBk<Cro2 zKdOh}%UOv=&G$q!`V68`EK7(c;GaIX$hp}PjUEpv(dg(H(dgXHJTM6vWfF2s(E+;x zdFWf{qTNYM#(Vb??wRy4z;}QEF#i2;_zB=GAdU0~fwtmF18@P^=)Fw>o&q)k-=mx< zz}>(fq)hzRy#O2mdh(vX0E>VZfe(Qo{@~i+<IMza2lfL^Kp41~x+Ni}bphqT(?CD! zJP<H}GQf?j_Q$|0z=yyz<h9d*a$pfKhwrQfQjpVL3_J_G47>s~0V}}8S;%RNfHJ_A z)uMDh1Eq63hHPRrEGBoNbgs0sM`f9TYb=$2cfgyKVq#HemN%qmtAJ^}y@4)&5~)Ra zjSC&=@<Yg9E4VJ2IOvyN=T;(%hj$qZzg3ldS)~(AVN~OBfL@i{=JUKNKjOTfIOU-^ z%8=kg`LK%Xz_O*pI(cph7i)nU;P1fy0Y3-)z;r<2MbxMBL=pd^*5E{h#9^YsSSXp- z5+$HwvVYJIC;JBAyrT^``d8c#RHcMhHGZG3*4W~UD~52T^yrCgdNt>-0WSc51bzYd zfO~*j0J{$<(*>&+{SL9(r|v}(ojtY}eVc2m7rA|}s$N8BZKZKiUhAyNey*}}RdySK zQdGIxI4jLIpbtbMWN(L$dFg_V@-@z?<R4Y?=dwzZY?u8<W<zzwd4H-IezoyANIr%n z9^_I+OQniG_t#wgmG%@GxEZ({I0yKE`?WwkO&kQhb_-)oKx}9evmhK1cQu`Is!cmS zaquXfxSz4(?-Ue6Cv&-MHgwRg{z1<vDoNH<@=v(5>Eb>x0Lq33(*Gia@og>@VN9Mo znbS2uHSibUH^4){Y@iH?ql<BvGTaiiry7P0$|&rqh82o|gN!lz`EC{PQe0w~f#H^s zgFA5DS&X=dO4;*r``+*d`ps8l@+t~5jI^StI$~n_OI{}q!MB9Bv8^?rskCiXdTM1y zp@%Tmx&O*LHX5Zvd7Voz$C8h%7{q1cdi#@CabiZc`LHWvpU?i{4RnzWk{-6c_(A=} zfAcyw`8L`g+$R2O{|T4yBaEB1jk<qCK5Q%>79pw0bEiT#LO)_-w+eU`_&?wgpd1)X zb{SKD1q6Wm0hyb`w)RTE?nBJaqnMx366{IqN9b;v*FOx>)1Hu=%gnXMmDSF$xGDQ8 znX(UCQ}%?+VuGRt`t4FEUE%UA*E4oC*N`3k=%CA2FJtY10S8M{^!(Ic=51n8{Ttr2 z`<EAF(IbWjlJ5~TRpfAO&G!8`tp)xDJORkuRSHZ1h66T^)qZsZ&*G^@<9S-4%U^;O z5~?4ch*&SX&|voeDe{bB_J>?sn05QsE6lnEd{ElO6Uf$6*(zsM=1Y~GsxrG)j&@dE z)zw)!nyE|>&QvzQ%A2Y4u4LMKsWPi7`<%*a$a~J2ye;q$o$Y=Gfzc<t&O@q8+`?t- z+F%;jLVGiSF+fk?2=~?izXj}m5v9HCNT0wUGfI2MnfCTF?Lmgenf6ZBPc#8;ZbpC$ z5)xorndvO@W9}20{1@M{3GO<ur3r4a!fqd~ErNq*lyPl2@C@*4-~r%XKmz*75Xr}W zuD=<&blNNaXWe%cBa}~MKXsibn)CCctCA=^HCLyLf2~CJRXP8q)6;l!BKt3Icb&eR z^hEYweS7G1u?<P|{LSa<^frhC5<Ne^mrfV`fkgF7zd)xSBt6mh<%t0jKk+M;=y}kh zekZaYn_oxc^0V<AvD>nqlj2=K*vcpEpnkT!((smk(M!qj)D~T?v`bw61olu*lA#xC zarsF*sh?fGWe=6d%~yde*6H$-_EJAPUyPmC$0TI4c9);DTU@>q*pIEZ{Ju*&#^sMG zSM0~${D&@A+A}U+f^x-vY#%ZK`APf6<!@#`)*IP?{G^@Z@+Gjh6Z^4DWCrq+c8|+% zm3y>{wh#NodHUGDvp#M(M;}XR7xtqs?|{mW9R27<$ngz!@#VOHZB{wHi59#Z??)sr z$8!;!%5e$rm17w%M-td&0!L8N#lw-LE|;oG{rlRVT}A!G{>-+|5j4v6g0Jg}m&i3Y zZMqQK7P+>^8yWrO+8$qiW?kFkNu_mdk01A2*Y<cZ%(}M62iqRa9uK4%Qoc?9Io7pJ z@4w<Y*8c2zuE`$#O(?lzlClfKSWMe;6|^uu<4)B0jEku885dFGGcL68nO&qdC2L`7 zMm}xb7I`23r^Sj)ijJINStf>Rah}((F|+cC8P{3-PH0~?ASb6^pNn#GaxPNlWCeZt zT++8MR|EPN$laV+`!e&hvoD)_n?|i|UuIvklh-Q$Y9*7R<;hU8;C5^i<yNv|rX1|w zgbCnp(w#ScAJ^dWn=m2X@ADL^oGI1=b8pf1W!9y#$+FMocryF42CKY6sg(R~wd}!o z0YioS>=bozGXH8hJTJc~3=;Ay{9fzq%jWWahB8Oto!TZ(rv1@UAipdNr2jL_#aEE) zQ~3$+I0oyo37D6S;|N>mNqtE<QM*%|s2vwSXvXY^D69PVSB#2hIKe5}y*Un}LV|0H zM<kJW&t6SFB4Qd9YdImt;6O9esF*+w|Cp?SS7zZKM$Yfb9ym4Is2HZ69D%=P9=ME) z14DYH7!~KKvwY4n)Y%1`rEs=ezC>gXA5u07ZF1Ro772Duj!PwVO;G2QWGfe8kb{j4 zQnllqjEXm+*^Jp0<Wd!uA<M4t9CG-FWDPW_ut@oc**?&u!X@g-Arg7ksJMv>UE!hX zOe!pvF$ac7g)dTP7jo8%vzhny1XEo(i+n@|7xqWEW6ott!#lN6A=ds@24mrvjPk?0 zQ#krrU>%Ocs1RqKv+m83;7L07ta~##ca*g&|3PNA(yz_BH(M@^ik<u||3P*)qvB1@ z2&<^Vut!kzRc<;!(OMPQIf63xlEyztf`#Z`bFS+3)96hdh<*+?{6$%_RGjy+bFD9o z6tCOq2dq%Y!GKZr-NZS@Ne=yOWog!1L*KAZdeAoXA-Yc5lC+OR?>p>>W=pYaEvn|t zyz^P+irtvPmAT@$Lj0=qL9cmQ1}kJ-eYvqt?3vg)@fmHMxY#ps8rF$rXmBgd?Rn;l zV*V7dQT#jKNc=QDc{yhh{q1LnN2m3-@oi&bG=|MsRBKkN5gK!rX?*^VJgIbNBQ|51 zd7(m#5jhMntA?S6I?A$2Lfdpua@1-pnUtv2Sa!OpLgt}S>CYrg^^DBiH^{)_!}8JZ zBpxSnJ!R8_z1M0=8esY-WaZYQ{VCek!^CWiJ&$Cfh)u}Ot(US@!YG1iN`6#zyN^Th zc9b?o9EGDiWg3*6!PB6$xXy#?Z;$_O%v94KMdR?gN1evPs~&BWzXm<RLs%IeQ`TW? zT=^ThAvTDwXltI0`Ssk`$c?we(#KgpYgYrv3GPlRZ^%wN6b!X1-;tD7Q(UnQzcN+X z=b~qgcco(I$MM*;^fN8h<mDQ@BjMamAHAXtpKfaX_o*7a)0DZVg<jD_7WBe?@;arp zjxsyGUUD~pUP)Ex6)j<`@}?<UPtdC#6ZBeo@h$Kx_fa=)f#2*$i9lzgcPq#{5<&0Q z{93MSZ0tJGEyh&g=^8wny`l~E>f+IB26wk(pNx2v)e6JI*z|H&Iul`7p|)B7J;p$M z`UvI|oA=)Y2=;0}`DlV;^xFc#c#y+9A_0PR{%jOr<NB}M2EYF{{WlSIpO(qs^B5hz zyx0||_VxgwcH{42((p4%`^PRu-<}=$>GO)5A6vWeeMpRvwjmQL=FV-*NgddO{v+$n z60YwCWdHiFfcP+Z1$Y&39%av+eCGgNfNulidG=;N%9sb(@;OUxTY`KXSN{(~HsUmm zJ*l-#Fke~z37L8~$_&g%Qm($bx&y8&l1$9y&GKDIxN`GOWb*{?kxX2Huii)jX81Kz zxghN)L`azQqKWB0@;cYLeM`gJ{NM651sl&RomSq|t*nQfr_S2uIK+%~Bp7O|<MO7h z3Vx7OzN=f>*2%uhLdC|SbA5+`4efh4Bu=mI2-{?-MDUe|%(NPv)s?o@w^8CbZ|u?S zP(zB?D>MZ^XzN@)YnNQ}{O(R^hbH?7S1O@4m$b3#Q7ZMwll0Ucsv6X&?W}FW8l(lS zYOIlJj3C77xm0pTdtOaNqK~9)wDK)?sXDmMRN_-(A}V*@LT4Qw==;F%K<1s&CoBHM zjd)skfjc8%xmM7RUH?{nIgP%2pYF@;=*z6L68Gh^q%SAwzMLj~nTHbg<@*|v;`%bz zr_z_xdZ=p9m)p^or5cI*@>!}ct0MIy3H$PyN-(l0sy-!5e0F`Am`8ZlRQ^rwLMEvF zoAj~P3G-q9?!wd)2eJzbacd$@zA@~S^}{U*T$?<s7Y~?ws>MU4wRngw8`|&&f={z- z$l@%rY<L)VCwkfNf;a^%KZM=QAL&uDqKf7VH^@M5EbJq0Tsc|PM^*_jz9nG8iS6V3 zNUsw-&VBeT(5r+dkMp4UqO1+YU#z>%4=*}K8M}$glY6zX+mHwwo0M5&vKr3ahsQ`| zoHwF}Cn<TA>AyES_n;K2Ruv=8_aqHkWp=-dr2(ElgryzP)05O!Sl4f;scsjOld<p$ zV<CUPQgA>FtFWsQv#RHWUA8P&mCG|@&dtK`1UhunW>ubv>DsJ{7U(NZgsX{JGvD-I zlj#z>LJxL@_h`F9Pwe8R$oCO%Psg@!N|r14fJD)jdU<SzE5bTX$tHy&G#Bns9#?oM zv%uYb3ZLS^*iAjdGG}~sqtwoAEb5yVx<YsetOH$Qs3xw;#W{I;x`_!Juc+l>P<pJ{ zY-YOhjoc`!Ww)P?5Eg_Fap61NjhAF8>3;kL@5Yuff_hd2Ln+lsCIYf!9Z3Xc$si8Y zC1sGL5S^XJvC@+iwTd7m(<$|JVIqkcEuSD3k}=D^!Q%b{Z`uo7`72o_yza_B#Nid~ zfZ>=A=O<6UrVPGBjv>`F7t4y5)kK}Psa?rwwO+Q#lI~E%3Bz8lYL&+iTqSoXL6Gk8 zt)i`~X+yuqxhcGjip|G`hO6pcOl!rN43@QYEbU9CPI>&WJjsY7nZ44RcBUOSEBodt z-{!4*9Ftla?G~%ibc30dnKV(<sy01hWr)pTa_F+wy-8l=b>i|UX%fD{E&Bbwrr#+D z?kqaD>9<qJ)b!ga)IW}X_ra(_zZ+CtH+h__#BDz$9%r5QIP`r*z8IX^PKU@7bq;g6 zkQF4j#`IqsUEt#vCMkP46rG)m6*JT;_O?R3$!nT<8S*4$Vj1`qad7&SqTT)w#z3GQ zE=hTFEnZe5<f{Z5wqx=06!o_KDcfaw)uJ6`LlnIg^$KRGvn!X@rQeUC&eVZ!j}Qd) z17DCenQ{(Zz`*0mB^J2~956x%mk<!i&c+{;4?^snC(Q&Q#zzn68!H`&r$TGsyU*?a z)K$5Qs_d1jP}w0=ML8<(gGfq!2Lp)U(W-f7fvfv%IrLr3Yt={yHA)hs**o8zzfbIX z&HUvY4nuVE*ViaUzG7r~1=v$2?AY@z)AqdkI6W@W15D>~RQYY6C#LgtTe08Fe+?nn zH<fjgSYSt7lh3zZljC<B7ds8&V&{V@aZOJ6faSO*mn*E;U1?$EnEZX^nEYKc?U=i= zcV6RPr4OON-0D)W?xmIPU<jBW<Cr`-ImR*hATFXVc9Ml6PUD60J{j6t5aE-W2+vDx zL4;qNNwfh%gaVD&S=2>T0a^d)dGuu=Axrpmjh;mZu(s0n9xo~5WHpPnm_bJ;m_a?h zgG%COPoVUDHGwk!tSRyx*3y?#o<fzI`x8x{l#A%cnm)NmJbfy<x2DhN)LEEt>MZhY zW}eHoXHVD{YxaZ?SCW!o_LLMgd!Bse%-<{%r=B<6`D>A_y{6|)y%fI`)ED~>nJ-)O z<{L6^qWo_>y<DbE=OF}fYjl*5wJxX3nrkAn=FgQZcojB=<)=1dN~n+#Z~)uPv|x17 zbfv9Uv*uHZgikW*p0Ef#bKZ7}GpD;UJvsEPlg^wcd|T}7>Ge$_I*v7i{#g_610u)O zP5|v0^ov8hdo=O(j3r)ZH$uAcEbw<V@jfLV?pqD}q={E}DMkRex6hFS_WJ61M@uHS zQKora0~~A&u{uSR2d3dwOriERAydkr_K_J_%51M=gv?N-_z5*xHa|+ppD_>IoQl&| zoq+Lm=dXu=-?bQDiRSYyu&<olF~QbbJTIp;7SGFkY`MN$5A~9uz1#`U+n!byo_AvU z^QTI^?<wki$4pxqOT9bcv8oFz`&e`ENeTE9N}25IBWpdiV$sYm;?L^JOe4boRwf$} z_SaRJml7&G1tR{0H~RXh`PV<GS{Px!`voO~Js(9UKTBT!SgfJSDyhUw54>`b^QdUS zZpTCkZ&8IY!l%h|k8<-cGFGuEdI3G9G>Z5Na2_xccpsRGUerCn-+*7E`_uq*A@6YD z=fH1(KLT$7_oBnJ5?BkQh<z2%9X+L6fQNy-z(K&l`z{9RfzjwEjRSrLh!}Yxa1h9& zUiSjCfdEhq+<+{2JMbRR3%QvSdD$?a3J`tjh#Xi#XUu@-9o7f3xZy%&&LlhD63xUv zC1*q+Jx^~n71i(XkL!&eeGl%XZ29mNjEt5uRpi6%Ecx(GEgxQ2WZY4MCVCy6*cgX% z&^uoBuqmkjd5k;il-<fcQ~8wn37Lu}CYO7i8!`V0H~3S0OL9LdEgtYu=`iDthRMbT z#0w?k>x>(A7<c3wH-wBkHXHSuj2pKYH*GOW_8Xyn#s`~?*FQF<Zb&s=f6JI!pK2U? zTb|o!+%kTnasNi2(^I}2DR3}3LE+UDUfqhqYbm_;WQ8xF@CB_Xd@+SDK3U=OD12Tk z3ZGBm^WzG))l_HFK?r5=Aod$SRc2sgxM55af>2g3>`UCpoqLeQo(H@X+n*#R1*+eA zUtzlHNbD;N>&?c2+E^Hs8EoS0(&)y58MyBX_88juremxiTMH|^6Zb{77TOM_jL6o4 zXl2N1lb$lu>qKlZ=~cRl+FQsfy<=9B(mY5;Y=4u>f3DlN*$nQ<@*SDAL;4(2`W|x3 zuOZkHdkM}OeSg+2QC<*fEC*NqR<(tY>T+(?3BKBXQYviL5;hB*wZVq0v_okdBU=i| zXI@Wa?0*&Vqe9mM(G7&ZstttY@f!$}=WgW2So*8@+!H;I$QUSn){?i10z^bXqeK)m z#*16M#SD%!#vozs@6|yOTl$d3zn=JzMmu8|S{g`Yb-={xh<?UJ6s`U14H3@T_92ab zy*e#utrHD`F%kU?O9uIW!s`Uuc2nHAtf?cK85ziG#7p!=W|bR}X>p8RM!biy;;3Fm zdRpi^%E{_<rI1mK%+jqDGKy`%hsU>!h1F_UCUi2~S-C`Y2`ceSu?YOQk2|#PW3zdo zc7|3g(mrmdi)z3*MgHsZ(7U)c71`cHV9oWA6TORv+9<csVVjq+UGplJ(IQK*IGXDG zwGi4Go0D;_jn@ufU!#0mQd-bbzDPgItn646UWQ8$uWw_qub%Le1emfFTr31WsS&tW zaj>U?KpH*ylMr~dLSUIvxhMwlAW+t$f<P_oVp+<Ui}$OtsLq93R9cpEyH88(A>gvH zSDKev?AxvtSF%NM<z~^WxbM+6X8uN)!{xT$HRWQ>WU|a}0Aqr}C7LO0$ZxVxsNAkO zo6K1a4WK|Pu(;Byqe$E$8Z7DU74FvKA8K&~okhMS2|MHOG%o)t!*IMJKr1`rH7CQR zj{sugcTuF|&9SL9SX%T&a>rmZ29>T@C6%!4pHYdiu(^)(Mcb`!q%SIWzNg+7KM8XZ zKllvhno%(mdZgzm27NDFt>v=7n^as&pv`LG%>Tme7_NLRmya`!U(dLn4xjrz*ZYAc zpcg!FSMKEj7Xadm^}FP|0hkOt0?g)F;fLn}F9UJ&0hD*k7<1Oqne_Ow%$MHAbT|6y zMsC6(TU^dtipwD~p0A+?$_WnRj%qXbUXpQRwQ*Cmao4^i_~x~T#So4VRLa`WEf$2k zoZg8NCd`ch+Y}xuJlUAimP2?qCmqxY+*es!_~Fn{26|=izNnAyjo_|MX>V8>4j%=# zcS03$yHbA;$JIwg|G`c@9Ng0>?eJt@C$U7t*7ZP58)NotspFyyHtSkdl(Fba)G30= z#-b^0T2laqdgay0<u%6-)FhWqGfL8ol5NJ+_3e$4PDaUQ`1bZj(+=bH26gY)4rA)a z?S+f4HA-#=HW^#qGPdk7n%*+r-DphR-_|(xmJxcB9L1~;Ce;~RUNyF?H=0%&uh$w= z*S0r~t(04#RmO}|Y7JDUme(AGqm+n?qW|jK9F!noU7Q?~d>amKC_jG8G)5i>Tz8Sv z6Woy$ULrH1Z;esX%_v!=$}BnGC|PezT}Mr0-!t_?Rnx^r$ygvH)hzkg*z%FlwAXld zw=wk}RCccsYLv>d-T=1nIoph;H;vc%7C!vgn{q4kmNBENQ8FP_)-_W%fSJjhzGqB* zofrPYczvI`dF&s?)B~ic_sA#jiM(Ww5!(9+WnZ5fUdd93PO+?0`C+^#=hE2-`*uwy zPr&<~PO$w&*o2N&T+|OC6wUgNZx(&-sxjhw`0|<brn0X@2t*bL7I|214a&i>tR|U& zh*90!6jGR$h0SQDDauAHA+JwT!7)X}sB2^iSxj)uiR)NC7W2GXDel)R#sA{EXksRQ zGB%59(RO1|H$J9~v8W?02{CNe#Nb;M+|em*)vO(gGB&ek7~Ip=X(z4?Hg-x|JK5I} z9Pp^2OE@R)A>Z2IHZslHrb<|aQYflQPOC)UCMjXlzflQMR(KDC3G25}=+j)S)^9Iz zBeHs%E4G@C(BfjhnE`y_xOe2l<K73K-?+yB_*H5a-u=k~ps2+}20&5Lh#LSU^^^y| zPf=9j0r1odh#LT>s{yc+jBr{6!C<&$hf%V}*b*|D-ZkE39Q>GZ<6Z8`xWN$k$;05- zRt$rgpK2KFX_S0J>N}qy3|Mb$S!<LqC~q>F>Wz2njHw?{-+Jy!eYNOAhQa+t$uVQg z5u@p#@h&6S0WuvlLLZSyMoVDJb~UiS8yWlg=Iuskr!j-!_Lfwm<PLy>K2!xY#TO)Z z8TnVq^w6}*c$dNdL*B5;2(3O*!P|@(lber(UFmcu7zwAI>PTpj%x6Cmj%vk7DBUtL z5^|9rI}%FbNk>AR$r=fzgxHZ#5>Gl3{<BLs)sYZ6)@zJ~57FjV0tOH_7NUnG$_Ar| z&Wsa@?_tbiNeL#%>9`z`nzGbiAknADS19q=iB_Z4vuahesgeXLS-;Yff_auo)?7;^ zt1==f_y~O!U-45&@!RsEh@{|GQI#xr!8$YG370o%Q;wIJgB?nL$(ZvSPLUUEQ93V6 zc(@8hjWCPEg#=Pp;nXii=)E9TSAn#caO#6nA|iMah|oPo1yUcsK&fY;Dk0h(d$gv6 zTJIM5j<REkpY+TO|Ginc2N4&1VCg0-W#QJp`(4?h;elep5EK)VxtH9BaPxI;D>Rl? zHCNwYt8Ub*kLYl|`iN-!CvZE~5gNkgEeDCP#OnLnsNz#;2S+4cz<nKX2_6&1=sK>o zy2{;d|5%48tGINCEGa@Q;3Y&BQWm%it&2~<D?((E3wQ9cz*mYNqNFct(QDDSKpBSb z5_=V;aZxLq)NU(AmZ{vas~}mmvX`5|PFb}p|06i`wS)}d(4;I+f-V&*YXyCl{T>qv zx7Vds+yIFuV`*B1IaP~O=SH`4B^PR8YN|jp?M104QK&45fn~)Fkl<MORZqhbhlobI zRqY$Zr}_wds!KlfM7Eo0OWc)X9csIWTRL1;D+)p5f<`K#h)Dc^t5lmrRGs3RsM6KJ zfu+%Dyir~#SSF-<9nqc9zQE!2KUBnkLQ!B;1fsi{(i1Y~%+uX$tLUrP+qtyn*A$_A zEd-&AT~IZ+7kVma1Q-j2wv$uT&Q*|X5XxX%VMHh>bd@Qg-ysxHgt7>QUN0&|7NH!L zt$lh>a)AoICgwO6r7WSmKHbMCN`bf(rEo8^lRI!XdKJf$6qTrYYYhuy&PrALwgp<- zhB#k3-T^f$gGeBC4iHI<Hl}>QRc#%SFL1SONhCS|!BnIz5XrSFVuFwvG_N{(Y{UdU zBonnp)VlWbC6cTZl7zsq+qyPev?5~(M2A?2SI(4?gL3i;+{!X2n7>?+hNv~Hb@>Q} z_cWv-K?ergq!HCelGp-TdL!~LMK7!goUcYHLqZPZil&W<gJ$6;5;;pKKr17uxN$1v zfCP>^UlGFvDsY^l4G9beZLl@E-d#D#(YO%Ib1M(D5V@c=#XudC9K`CQb*!#csT#u$ z`DIq#Cv9Wv+L@I!TWIj<y;EK(^bt!NanneYKqAw~$L$1pr#y`eic&{rtEZ7c8Q56r zh!)WvmD#EF)5sO-Bfd=2h{RZIa^)WuDoHSn2%~6EBi7t;(54WV^Dw6;nnv=}HbWFu z(&N0oWh&^ROdq{a(W?v=`SvLi$+t)(I+=(vXM)K@qF<hVQF=-#lWM3TYz0&jKc(my z#@_BwQ_9fOf3Kcc;wP0j!b!k?h17P#DHG1WC;xSc*7}LW-~7_^U$KPq>G&_TGu@2; zvI!^3Jqh7_DlV)!;k2%(1cY;PUM!AqTKC?Tgk!7VT!L;4@pECY=CK-?iwaI<k@H}Y z^O(r__oG0A22TH|z`e#G|AWZzuSWOfGIV7MxV{v)9Jn3W3A_({4D?37#))3dP{0Q) z1}@;4KENfwWMB)h9cTn{(X$Bw7olS_4fq|9#e2E}dB9b`YruM73vf333leMoV)hvB z1H>*fm%8-?z7C8BHUMt{?*Q2d4n711vDT~ro&n<5nf`J8BeGPZ;u1!0|M0B#!!z3t z&qk*KEg+*Jmz&5;b7a@S<sY0g8FiX!#AMZlN))4PTW&`nXOy_-+v*nR=}gO1?$y4A zFIcnu9d;ZxcqblmOC+Ha?l`<7I}Wv>Z{mNWd`Ysuz=tvA@#DuGx%+1Al%w<b+PyuT zPN&1UkKII3stG2eTY*G<?V*b5`zHmiar%};rRc6cPLJ;mmL^6?N2BCxQrpMTSOJuv zYs+Ti_?yO^^-g2UN|6`MGqwQ7k=xW7GekOz#C~~dcon)SGhXxru3D0cj5?T#nc&Zm zQ$MR@)E-dOI7K0dT^L-3PB!iULpE~il#9^Or2Ccycc!K-14nf(^w8n!l@+~S7_#<J zE(=_hE9x6uX?3EHz9X&1w@>U#_vLOh?x>w?d;rd6FXD#cS{uvLvJhn}rIsrq`#Pe+ z;$|z_e4e%rM}(N)GVV|aK;DI3&kgm)9p{VUPSbkh^|fp#q#8%pOYzmlEn};VP@Qpq zov$6AkIvFEP+X5Y&$UM?w%k9>xA9<I`61b*s0mz^<n%b#g=;*%CXa8QQPNpTK<aio zP;cDux^e4UMoEqc&TjaJaqGKA(}u{)HmIG4O-fbj=$pnZ_43XcYzydZ5{>jfc><-6 zg7o_y1L>j@)OVrsMk=2F5^oGB6(D2b1h&tP%w*yh%VKF2qe9dfRbwPGvDo-K6>H-y zf=^!)md0YgrQDi|dgMk*A2Bhz%ImCm`KrS^{9Of8{>yxuW^Gel_K5Df&NXX4n6*Ro z*(0-7@le=zuIk*<!6ZLIeU-n-%D<KT+f@FhSu0fjv;G<R+5A-gQTu{h5d8$b99@=o zjEb|Qhp(}*w~P}TdojJw3{0>#Qp~_r-I7q%^No$FRMkaQsvhF`2o7)MB2K01c2TKH zarrOtSqf4v--oldDb1->@S9sibqajRjUHNaYNytm+DB>)I#Mp@K9!KR5$P4Ej&xyv zivJwDP#^m$CoXf=b}2Gn;($qs&bkv8*wMFS)^;gK+E5iJOUL@)o>bZEiBu8;T`5p` zqflyGy1=@YHT-M~BqXGABmG+A?->a!0(w-n=?}RPGs8`u>*q!}4Sf-?jq{6`GnN29 z18xH1<_t>`ISb<^Z68|b^(%d)Nf|mYD2wVDV~|jaZy98fm!2#tsM1;zA2US0FMHhU zR}Oh1!9maBJz9C`TrsDLQC_On%1hPg-k1Sbo(Nj*ZeI{Cs4iI1_yp~b6f-6INVowW zvR$Y@BD{8q6qnjXWE08lM8nA9^U>(&7#idDw=@0Ik=wCIw-j&0l}vG-NL7%ZpszF@ zd0mYqjBtx}6fzVMMvO;XSEE#xL`+ev3@j<Mvx{hxrPI098CC>K+B?x*5}z@dPk=wy z6HXk*JkdsND>c&>vBT5ZYboN`=c^EPw(!BZ=|s9qTS|$encUv2bcT}5$~5KMWTz;N zM6g#~um$Xie>t$XDb`Ymntn^EeSIqd_L4RBR*)&XV{`0XY5Ko~K38Tg@;*!LOKk3J z<VlRnv01r?McHeQ+*jtQ6qLdJ?A*f&cPhcgUB<xa>r3w=EADp6K;7LI>IR9{Qbg58 zEIOClYf-)GJmku+;qF#2^|lVCUDI6Erbh$c9t<Uw@5oN8u@sgz6<2&p%snj@M=^4} zGnhNoK35?UlQWo0`}BS8+Nf@)+H^V7=T5cH6~r1<F|3@y+^J$NMZ`2`sI?W;`j#-i zXE1j{%&}Xb6f)06OcIG91$UTKwz$aop~z}BBV38$Vh?jEaT>0LUlp0iF61PCLWFS_ zGL-?ySlUofD$o(Q9O%QnOMpSZZNPWQcLOjPcm$ZuvsJ)c;AP;?l=lqq9MA}CME3GF z@D6Y`?`y+*Q-O}a<v?%Yqk;Z___B}Vq1oTZm`V9r`Lo{9XD1&&E7Rba%N8g$dMN|Z zwRl-!xxR3y^0p#^8lM|=X~T;eTT45D*?M;$M=Oe>o@dzsJRaHIznE9~iXVov8^M{? z`~1bTeZ})ND?PtpU0{gt(bEQy>5^zBHKAmLx+|^!F4W8k6gh+2QqyEV^2#=%{<adP z(x2gXub+*R(rQ-A1II2kW-pRu^CvlIKxZ9hkB#lSqAKe+X^5z-k3r#|y*%LnanqnR z+<Rvftiyn^HqLrfZBdHY(qYUIADetax!T5Gi7n!D9_LzoZ}?ukhcyl>f%8M(j$AA{ zKjc;$uETN0FxcKD#*Cn&ZN|w1$sG~P=tTinnH|-Ze&bAek5#Cj+KpY{zmsLcPGme% zlx(sNXX8?D!m2MFRN%jprNT~OcO_N0U9Gh5zmuf`Pb!6l;lk|7eetAlQ;u><@E+NF z%5AJTGjn}J4^dx}zn{R>>xHkiG|AohucNU4f!f|*qa34&8<U7B_EzOxa=&eg&H4db z><@~9@Aq^&Ur!plK4Oc#5)59cclTq=Z_(fwiT9GBJ?cYvZK>ZOAF^A*rZ=Q*R6*0< zSKe6gpzsPI({XV!@<Lpkr0p>)&uRRFpi6W>T2%t3*yn`4XSI~Q50g#1*iBYRBiS3{ zcyDMIy1ex-<6Z2iGuUim%&Cnd3~_@WJ9d96!uX?27{56gVQ2#c)dgA-2Nno}u;+*& zjv;iv<QlRkce4DGxB~Ym#|Vlh6m?jdI<F||X!}TH|NdEz6IZQ@EUsXIe12$vLR^ej z5vVUSc8MIZX(j<W(e9L{xP=CkzK$z*yQPPq6n4D+uk%jyTfDE~{s?s)QE%C)NkF#l zU9WIESvwQiDdaBN3y^@y-WL*>sGW&G0;1W%ZSf?MYv!->k6(`$k$Q1jcEnVUMQW5U zkyY9cfw&}Awm)p%*B9Y~z;v!-`KQf*mUFX4djs9)O1gbL3CfOHI}`bFWcyyDM|Zru zs=@5M?@`V~w(|kvOGLbfyn!nbcH|*noQ#-hhhm+HxYJ&7SAL^$f$IGzb_{Q2A?&7n zBXm0h-+~xdBAM+Xu0-(L!-b_8;;u|?Csxd-@jhO6A{zKXvlZ^AqJbM=8`b16j+2v3 z4)o~WiDm~OjCcx&Ob>bS(}UV1)&5!)6&Q2w5$-F{VX4}lZ!ta4rQ3OZfho)sUT|&t zr)K6ZGpmX)Su?f5RuPId+HbU$|4_fFS-H#9n9kEhVy~vPZAi#g57VV3MP@KbL6fVy znM0u$Dhs!wo?gFtp(OKRPT!%%SEak?xrKSRU1+c#%z9N_ZI5>{D^>47KWL?%phiX~ zs6o~Q^*~G^{&rGAv2TsbKQhzI4O;HIa7Lk>ZbfX!m|xP<Gy;l!P5!I1a+fISjOBVu zO;;KItFv>LFbs%Bp7OgTw+Cf(A1W@llrt`Ijm+Gh>GW3!F0JXx%zwpSCN#U(oxg;` z26z5Z4m*8oQ7cokRYVsJ^4u%)lIeVf(+xttZlaQrxhVJ^r$?EsY^j&hMN8631c_!V z91-!oX8pT-iO}yzJOFKXr*Q(=zNe<Fcid^~W2da`GG&Rc_n29vHN~iT3-<#;iI)BV zvr}~5a#v=?&RcnrrdHEzYu?D@m1yGnxY=^;QxWYJd*WJmvWZJGF0Ce7Q#eq|7l@)) zMZd-ziMa>SULhah6Qcc*#nV*?PbWkh8s+g>7bl>XL8nG9x{!Yvy?Fep0{$0;Y|Q*) zpFl6-9WepD96LpNp((X<l^-k5NT=D+zXbGxR~fbLd>>5!KWiob*h&lm=fML$E{o0u zT0y`Qv+zWhdj)rY$r^Ac>&ES@L+iQT1Z)MG03W&mj{?61-UgmWPv97EIeEVayZ|f# zY5{qE8tc>PKsoR%@MG4etALJ_FY$%v0*?Z}0u}-u)~B0+T|hV1rfIB6M+1)lOMtIZ zxAOp57Y_tp12zM@fNrc+(^#L524wxbr1@Gk5^GpORQQKwiu$>4?BcbDl+R|bznd4g z&BmewzOtuG-^b=GzKfk#-=t>(-wyl6F7Q0AZPHhGFgG`S`%E^q%{2B@Uoj899w-c} z^lD{hwb4~jH@{6;x{0x18QUW6#i4=bfh7ckco@=WDqgJhAB{zAm=MqQy^(t`cS-I( z=b^Q`VK<#i7-zpyR9@4jNZc*E7f85<pP((^pjxiLl;dvP+pKMLJ6E{#S9^V%@$uuo z%-`O3+?Bg*?Os>z2f1rpxxuxK&JUeyd;?|E)l*)RTwZ;g{xIY9QGu(5CyxqTH-hc( zop^tEMy+M2#wS%}300|)s+hR+3k+$4&(Py$c@x$8H6P^i9XA6-$4%cFbL|IiXV{hB z<n^ud9r5>f`Txs!>PRQIZ>Kx=Ju~-Bc97PF+^`XA_nOYP-Oi6)zW>q{tWGw|gHon* z#<CFs*S+ni=MR&M0^{)Yd(dC@l+-kIg^3<r#evcuR(0F^R_1<`8w7K8g1K$ZAecML z#vFLBEe>Q42@QG<+)>LF6)Q@61wZKIJCw^t>!NdAxw~?==I%EZZE;d9=T;uRtSI0b zqwp?njl6+uk8JD~2QmjME3mHgsThjEnYFmP7N^$w*v-*RF8QmE_!7oHF+c0rkR&dJ z#e=av+WG9G?4ZlfKFa>N{OqH;;LjR*Fxn$J(Y|Tjm&?KMgNfp--ONHse$VoJqVzt9 z89pifs05JW_XPfH6FvWZ>$5MX{6ul$UdYwY%aSqC^HcJ4dNu4%qV$;;==Af!Vxsil zsl^%lUSKBC`|tUte!l++o?md0PCwD}v-|4w$B`%{djETab$a~?zVBtXPM4`a(epV) zI{ir&=84j8zDlQWI>GxpP1NZUsVC9%nL62VqBwfhk1<d4lm4ZCc3ir_<<!{W=nc4l zTYjPQNk3CRJ72RnZ<4<hcy*r6Fa1vaJ|X{;WVrRWr=EX3`ICRA^Gm-}KfC;9ar&e_ z$@C4^LY-gwX<Yth@$V#mU-I9)Sm&318<#)9_ln2k-OuU#(vMG;|6%giN-$@B(yvdJ ze<}H2k^u7jq@Tv+Pf-7l$#cUiI=}S$xcmv~pT{@eDuHYHol5yvkw1N<&M$NkSAGKg z&nCZXqs}jM5|=+geV!rDuFX2X(9Oy6zeE14w{?D@qm$*&q|DxpI=|3WT>b?0caeWS zJdFH=&f@YntAGC+9FB8|FF1UHKBkV>$4jo$$49Q!$4TGO$DdxKk2hVdkN1q##|Ie~ zq@0;U9FDI!9Jf#7NC?E++ZO8keXr2RR|o0ik%9X7`vLm+R)2l0ApDw?^9*r=<hY*k z?kf(**Nr|72V#KR+i_%!xcwO8<k=j5%Tdx-eqA3sUdXsA@8#Hu;~yE1C4G3lF0WHB zeO!9JK9={;$H%huaqW5fc&>Hq-dSI-&eF#W>o}f|l=^*@O3AT`O3CpJDkaB8Dj~;* ztm7IgBiC8hu@e$6x&ABTlN_&v4(0d}Z70X2v>Q`lm*+V$WOVr-j%4W~Q9PL9y3F86 zSLkvN$8?S*9I5Kp$8$uE+~sPHbgeGM*8Ph)N_ky5^6D-UgAvA{i$pS$awQ%nRq66e z>-xtW*{kg$L7J&jm)kf>`CI5rJlaLZG;XON^_+J39e*S}heYnTlT31K;Ex=ut>ZlF zIMX`bU>yssV~%xnSjPs+<+NS3b)07%XIjS_tYe{d%(0Ff)N><vSmHa{^B%ZW*Y-R{ zlDf9%tv*(Mn@{+Sm2S^BGPg*1HlN|Mu5G?#id`PamfyKnc{bl5Rz>o>Jx@y|<=URt zE39jq57=qtxA_Lq<dgh1p8+|lYnyL*)w;Il@wT*sw6z_-FeJ}&J#!Kn`AOVXDbJpl z&$05)wbGAT`R7^J+pX&b)^!Iff3<bJ-%78uuK&h$Z2ZjMaLxb7?_$nkuXTXRkwmy0 zQ+DU%8z)XOzdz;H8%Nl&HAyIFksx6%TLj6JB1ZrBJ(Iq#3ed%Vd)VO868<#5Z>ofT zm-IV9LcbOXQjg}Dn^!viow2pnDZH<=gg*&V`bkQ^1S!qGKmHxj8Wk5`6Q30Ol1O5r z8blKlR6->Rx;;1E#rcG9yG?I`Fr%h^cfloK>5|wt7hKfe;T<x%sG!e;i_}T~2?hGb z#r8=b>!kmLK6Z+A(uX^a6U8gNxKHAErG5Ji=yyqu{BAf)Dt;4TJ|~R)<ani{>C=uJ z-9;JG92?_0sJ?Ii-S>NaHbtJ{XJ5;rOQ5aX<TqhL>7;u~^|`)|k1uMc%$}vsq&z9| zhNm1372~%>ywZs!cia^%aKZ$ad6j9G;&9Bh%29>L?b&KPcVzt;dXHv{oJqXW`10cG zH@Do%nqwV*tjmiO(Cp-7@lWUeRzEP$!kdE$gn7nMN&T2o<!7g;i<8Aa?IRNqziKIj z-@N&)i+|eZY2EaF{^D>9q6W;Rk@%-wI2Vxa&=rWQAlIkzi_=XQjb;Mi^!lfyB2>M) z6Y)h4ry4&>rDQaHt+=RDRa{hgYgsnA+yn(}Q+7-F4^kbaH)8rKZ*AN_YQ+JgVl_u& z;ga%0sb!+@DtQU!`4{erS}3~?`>rr5?w8A1)3Y2$4UA5NyXPu94CagqnfL8NXGw~v zL?D(aOSkU|Ct#LO&ml@{Z*_XVoaV+nSH!szXqe@sl^QztBh?sJ2d;7;#i3qEm!;xf z|9!zjrhiy^!4`?P3i2HVTZ(;0O+PMa2NY+Priv(#zDxbRdCA<$Dow6fQC23Gsa$5O z%gJ)t$s8~;Q(cae%S<kHW{+HEaj7%oAYtLii~+$ig3-A0dgay)s4MFsr`ZJ9@r_-- zTPo%syPgWEI(Nr&*+5cDGd*GA)41{m6_qdTLu$p<FxZ|z^0l5|LoyqyDLK|xc?Q&$ z4Fji+<eW>-Df3#G3-z^6E~Fs{D%wRgLYQ_vTQvZ$Jwc#RoU&S;nao+=QiVq1mJ*9m zH*;B$)mF)6S4d-<1BYgo^%L)ooMn|=$XPaL*=4x|crCk#%N#BvRn{Fz;@5_LLI$g< zT-SPhwT*YHFV%hRdz{C0V>~`#`%%J1-Pf>1!j|Sxx8UxsPL4Q%otEVlCz<{kg`SGA zF*``#P<BkRP%;DGO;KK<y0`=0b5qP<Q<7P}Jw>dSeD&Tyzn+puBF-I7G3MOKlOrZ3 zKjC#E(G>HAHohS4nTUY}-h4H|P<v4%UPWw4LQA3_k(^T5&J$jyOgheFJ#`F39jp8T zSt8ac&v~85G>O(WmFq@{SgaaQjUs^`rUb*?f*;U;rI*ow$L$6z3hrv78nMHVcp%b< zm#Id~{<+t=%I*6YW1e$;TakCp+NBzCV{mu-xB#q`U1>oYdU-UD-OxwuhE}coWz7?9 zjCCNNhVVKMtG4(9moakQxgW{?0{1><k6{Jy1aKGN0VGc3W28L<;g$d+0I}>!0=9Br z?AQJ|1TE5|NMA@y(C0)6+OP;Z^#lZcChI9-AlipM8-iABfjufGCg^jb1Z`LZovI=# z#}Krg2ZB}&4MFRMjv?qTU!G`Vd@@1rhn{nw%YQ(-D}nz7N`WGvD<D2mABKLF<_yPP zKr+z4{TG_kGbY9Uap*>(%{n8?GjRgGtH<NJT3LZrqv49`(hLa=Fd?HDCUSOP7A_Ks z>qc0#fSIDE^DeG{%gF$LD5-oKkqC<y```=Q3*5dpF*3AN&cZ9po0zD#w_`p=TZGLx z_@SN@VrlTXe9KUNT`hjCaD=p&Y1{Fv{4wS{%wIT;^CYkG;__>yB?m*(In<Ahu+E`x z5|%s?m0Yw!W1Tn01|`S&b&=`s>>rnzyO~(z5{ewHnNgUJp~)tSOd0H<=59uvjN8K^ z`f#1PPsmpB$H{9e!x7GJ*7gRfX1i6c!%7J)+^Xb`W@SoIcsV|)F^J<^o+p$2E&Dj- zTP7ftYxXS}p=7=V)4j~xI;!TX8kaB1J67G$FmkH!=o0rU#BJ)Pbn>!0cOR$fCf^aM zTZW477mF3JWx2Fg#$jpAuyQR?<!J%8-$?~rxz#7A!8o)9Q9)X(uokI8hO7H9sRL?v zkxGc_l9O#_Vtw>z;G<(qxzaYB1WAu*Bn@YI)dES<;2H4^ev(fcF3QlK4OUzGC36wB zemTBm1Cq-x$CqS(X};tpMD|~fHkr@d@`d`6^5ghU9)`9L>K2QU3ZSKn9c)=ON`E*r zVVbOHOJZX`COw%mzs@l-XUdexjOlYPX41s3!Sf_~13lKu!T)uJKu36`uU1W(yI5Px zr0H8t*b^eE*SY*<i?Ia>uQs)v2=>-nl)ZHYkCA7#*V$m%id>`y%-(TxK~=UrK~^O@ zqccGj)8jB1Ehl8=)~gwS`B5etJwH}ucgBOc6%8UX1yMqa8K^2fW9E(q+?wTOr*5on zY?m4|D-As*Hm~qc)L7qPFJBn1%Kycv_s}nBy`NzF?u&@;1FR9hi1i-%1+Dk*5H^1i z@hv;o|K9ahQ^#c}iF$k=CY(8rGjqfUadx4<x(XdrCvYkH8@Hp6`df5VH=*bG47#iz zl70|42IO=7C*W^D66xOrmH@TDYTz(%AJ6^>s05w?#4pw$U@&k8un#x@90hvuzCQp9 zfQ7(z;AZOaJzxqT`mc9W-D#{XUuON80*qpf`WQN|TlvJEz+I&O0GI*H2hQVOu9Y^L zV-2tZSOXjaZsXahz%*bUAhw;IMUDk{faifAupHP2Oyr&a4U_<n1MR6x2JkhY5Qvju zVfR@Wv+gZn-K%Uht1Vm2#a<jcvyhyE)7}}lDp`0-#&Wl4HL$rcgI$Xh%LY^?_4Clc zXgR4rsaL}D)k>HkgR(Wmgs!IZP3*Dx#y-Ou_;J?2A+D^hN=QOqF$Q4aT0FLhKai0T z2hX<4*Z-jy7LXg{p?I&HG4Xc_ao6gJdaR9G4oi&rh)<P4X`xXn{?0ur7?g+S3Ux3j z31FYTN|wa<RJkWB_YE<zVx?6m7NHV$r@z^KG!~%*tQU(=kJ!^lke&=P;Kc<@6YB7t zga!j&9jLx99VgTnewtOI@FzS$EVnqt41}QTo5X+WDC`z-xy1>Ap!rKA=ro+XjOvLU zt4hBRyT(IirQ4xmf0A-K<)A9-c7*Pvl!zUOa)&p{w&)SZk!IB}+qtj!V#T5E>Ah6m zS?qkb*!f|zrd0w0W6l%0X|<dq&Tr%Z<?v;IIDBc=v=K&5miNt@cC_iI@kVEg?-mb6 zQ$$u)ZDlvDcy=kw$~`0tdhrC~5pyXTQNnxOquW-RJkquUqHTM&w5@NmC(!Rc5oJtF ze?ZwSXbg>`c|(F*Q>;>@Y^!-Ua`Gvfx7Fn&XkPLDEh3^uthDeNdgA77^-B{p?{h-* zN|a^Hu?Tm(5^9`E>w@_hiA^RRgIW+Sty`$v`B<&18d0^bYDE8N<<19bO-$ovW}LKf zQxxI$TOv}6<}Irlvlp}~LLk+y+tZfBH7mZw6H)D7K?NyL?YJJTDMYs^-o$N^wHwh6 zdRK{q<mMz>csg&4HmJK`ixmJ`wdl*ztj3&Q@R#xXk0MBj@gQ+Z#F`1Q7TTi=!=_Wl z;TU37<8TXNmG%_bB+Y4$!<n7pnzN8`Scd08{cUGb#+(kSIXj#kS5I03WW^AwDp%-q zyDM!oXp7S62^v(C)dan*FGe>hF0hA1Twq_P+VGQ_6c^a1^Ui3aMh4*oRC-VeBI2mj zsm5Su^D&sF7-TP|MerQgtjVfb@vFu3%4B9ysTxx)Dix1qw5pb=Hlxx)Jp?PFwx(A` z=E(GFQR#J3)fQALQ>gOP9Hmkw0UA}t;tQBcWv1;3->HZg#{dv<)aSoNrL8E0Ce=Rw zqg1LKG)G5XJ<r-Ki0$*g^>36HHk(xwH0V&ID$V$%f7b^6qY^1Jn@|-`bf!TWb**{y z5fNa-Gr<3@4SHCu{m(RL4Bwl8LdEXk3(}xPN+@!sL7g9BqNuENM|`M6;Pd@spTSDE z+M9IyViA6)%kA=|g)w4`x%u2X%KH35*6iP9o$o_-@C-7B9mph-kyl(o`XFF1Fcnx0 zoP$i`I=~Oa$~k(IKLETAoX7LSfv17L17h2|2N;HI<0rrx;5cwS@46ZI9`JKOWE__x z&-fAW7vQVZ=R6=67!CXh_z38S%;IKX8SpBw4scTc>w(__JAtoS@`~vk%YnZF2H$xV z@EEWR=*72x1LzBg%%U1-i+sWZi2Ni@PGR|``Z<dR?c-Hs5n~Waq!5W3*HhN^d%)F3 zZza5df*eM{)mC7s1y*3G`4KO!CMEfb35wETv@Aq4+v+cVAsT|(^ox`1y<N?~5Aj9I zGTsgQ=vxxpa}L6QJ)%{Y&dG}4?lv6uS%MA1J&TIKpo>`$eod`#_IoDwect1IJG@h( zFX%8S?{g}iAH?xPBj<R2*yc`?Gh9FH<-iW|PIuaB&WIoZ_aPxycDd6Ix+@3eHNL3$ z&C@Om-z|gkLU$4Ksh0{Bwco7F>}yty$yW|M)|r**nNkybp_rV`mdI!D1-!J_xxR?F zr=~xZcx)jMd}mn2wNVIO6Z}9ByvDaOxJM9tIM^r%{?Oxx9iXNBg@WMTS;&5tsh!Ij z8t-o&=SH@9BGnUAg5Yg}U_l=U27PNdi$m~nZh&BE4iNmVJMAC1!Dx=)R+j~Wdn*Ln zfo<@HlS~JQF!h;oWv_iI)01Nn-0HW=OFt_Fm#GcaGYF3FBA+3G^VIU{41zy51lP+N z!gmJ2pBsXIq?R9N5d66zxIh+7XL@k6Y5Fr9gBz3t|4a`)Q4hv%idx$2Vh!PkWA?*U z<F$=AMe~cC`-+@L#rEh)5@QxOOS!xa9{wzN`rpI*dsq|fV(lP)gL<&e_y_4GYY;!M z2pGz}p8;<IspNSK*a3W<XTAgM2KutjxF7ffFo5zZ0NEow0#xyi4L}a-3NNq)=*hb! zQ1Sl&;`{a<Kzs@91>)8g#1hI=VQv2aKgnjOwdFaQ)djAESY6o4y%9yFSM{D|ooC`W zl!VnPLqbI?HeU=@SEDL?xp1l`YYnZnG(`B+K!<Trxie}@*yf<NB(m4R;$BRt_^SOc zB@!^^goN1*bQm0cNa-;RRMOXhane`#;oZf~w-l$o$?Mz_5xv$C82(u-ryQa2rhlN@ ze=AP*j*0kHr0UY%>}ll{C-q)q`mf2#J%Z$0LP8YwC`!s+jyP7uI<WRN3(qe~%3O|! zJ%{HngsCPUelL@kqu$z|3%8>njIr0ki;RV5tIsGsE7))jn#z5!I-0#sW2UryaC`c! zm12tTd!t}o;p_vYDS^ztGr~FW@%ox4*qBqktva|ZD{X7q8?fuF6)+-8E_T+-zC#pG zYTv=aQ-j9S1;VPvY(AVFx)gn{vqJ@ZDxYg@0&fI63QbL3=hg_C_IaIeYcySJ`p*Uz zXnomOQW){%ff0}txBXj`GzcV3$(GQ$AW57l3X=MQq|q8lYJ0*)QYT|!k}}_0cnM)u z)fdE|X!-1QvB;^9N6upDR`?YRdV;%i${VVK4OwYN((2P{OkegXV<=0>$CGE-I^$<B z6bTe<^`Ukm8$Z*B?9nIzm3`byTkcFBYTk#oH`8xBgQ4aas%xf6cLqbvG4zsfr2om| z5Mi!SCw~iO5Owl8i{r%ed3}-dW8u^)=8+V`Zq5~-lz)P+^TX@?H@x34c)=d<g-P&= z+u$RYll~e|547QWEATELu`WBqTYd-}1dah0@=OxXrU3?UIUw@v^MG7n6kx}<yqI_0 z2n^u8R{(B6>`6yZmn(sBfW)~}{N~kT{KN9ZeqZ<__)HAJ#qc}u9m~2K+p*5J?U;As zs7x=WXQpqZH_+v$JP;OMa$4DliGv=3cX9b@!n=sp_brLqr;N8hhjRi=-k%&^6?)9; zT<LWl5L^DcF`m2DyncMm<heiMbORtR!(IaZ3W)o*UjPpPaXhy5<&Qx7F8{C`ug^W7 zZ|{RQ2e|BUBFz6TCzpCK?eg&HVmikWrW$Y80Z-Ty4tjiR;D8Q$eA6F?S6oHPJa6D~ zaoiQIbqiMWIVBo}C=(V1lG|Z-S1ks7ZeI}Z^O||oF1OXZX1)MU*+rGMfXz;6HYl~j z(Wkh$?pGD#a-LfDwp`A0n%u5xs4cuj;@{5H;o@&M{q6ksqvl{av#$R@d|4OysF?ED zfo7Sw+wMKUe}7i)a+hcmT3)P`e{ODP%d;1#+oJ8TlEMcxb7H;H>)TEtd1yhX@EFFN zG{y|<9p-pZi$xGVoSg=73y)}fxV_VW#=~&9{swoNoGG;yLOb9o9*vCQtgi{}K3s=( zKkBON-na<NaOd<2n(Xp*4^5#imST&mvUd_!mI&NcnJiZp77Hr}C52q4{Yu^lmtW-E zzyi#ua6o;^7$s@^JTxc?`aa)_U5bQl@g$93Abt7;2sUOgX~Pq#Ku19IW&Z{o1%}Y4 z#V*|L*JGq3`=_D5lH$QwQd8_Wd^k+#Uw*GR``9WSjL3uRF}SL(Wz8fSp1Z_!^cOT1 z-8v=M)GgSEQ-J$Yq5CjS0UA==z8YLQ%p?OgE#-$W6s@2bB75S|VZY1Qgfjqme;u>a z!zRk-e}yYoMu8O}x>l{%xla72+z1*PU#DL3F|TnH%UJ)YtoEZa+mFgN1NTJT9rU-{ z9W-Fs(`5x&!>bv)qF+`tanLW-c($MMtbgtr-(|KR+0XyV9^YcV?0UY8@y(ntzD8_^ z4+HN3Zv%CJ$PXlD@$Z0dll2)u#=OUYD&Rig4&VmB?kDC|^pqJ$81U=iqFtri5R9^q ze{{~lb^dAI+zt3GHhrtiV5pnvTxG63LJ(cq80+R-we|?UZ?Zi8E6hNlwZ(}K5C=FF zA0Xg#Vtw(%Ep(WJU{<*-#?V$e%}TBr4t{LA0WlVJ^KHb3%f8a2$-d5nwI!nQ@;1hz z6kknl{eb;)SE3jH+uV&BfDZ<h1PdKUh~w`l-@RYuhLEdjBz#@>;QD3Y_rOEIbl?`? zN?;%mX$J|$YwNmyQv^HBb=@J|KD10BQwN4+cjcG|H!#SK$)Lr&?%aJInPsN4iWX&e z56avv1w-@Vl-=FFH)s=YoXUGIo{y@$cZyYcpBJa{&X)7t>F$CR%9`!xLSuopPNnP~ z96m8w2LM6jFx?TljG2nV#Z^OkvD1mM86Jd~pS*1yO4K3okX&sY(XCvPIyl7qd%8oy zARV{DqDX)f2_GuD?&$>*{OCB76L%#XiqdqKXeg3B5)4Ijq|*yrxd&YXmY3$3v$i!* zPumQ<R+)i|+vTd{RI@TUuPD5<*!emVFZs0geAfXYdrC*;%Px)Bw8wmze+W9g)Xv3c ziAA-po@n%{+DUY3sWjD-iu5fAeJ=qf^w%p)h{1PhhZdN?E*ean_+4X^^6&~V^^UwN z!#@V;n4m)LN@yfOMTUinE<F??_9m6@%uZV-cwqbblkxBijfX2liCo$C$KWAh3xBb` zYnsx9IF+9J#rm$NBL?kXuJ+m`V&^YmKkW7;{jPBl)AuiGKeRRIj<N)2)vq<^Zii8y zq%`PW<aT2{0@{joz759g6`Zx4e(S91*IH_YS6dq}escTDo?)GLMN|k*jJi76gIN>V zgNe?!KU1S|hk|HswfVv<E4vCD`ovAPRnfV&DsHN+l9?9Ada?7%wbopw7J^mjPX7>P zd4%zo%r9~mOY-=cR^5zDv|lx6Zqqj9uGCt~s60J7yXvKGi*G3d2eCq>FY>oMt2D!- zTNz*EZ#mXXr2a+z7V}H=EfviK`CsIAS<y_o^+o;`ai#sm8pl}gAkBUVv9g-i%FqnA z<~2kq*Kj*V_{4fP8Qtz~%yz?&O_w0AehmGHm(iElg>JXRZ)y*G1?UWTfY*U^(#{43 z1Fr$=fi1vUJogCjE8w@lI$%8I-3;6Y`~nbtjNZV-z)isWz{kK5-~#IKci;t}2KWeA zOWh_R|M)p#Gl|>e1o|Np|8L~v|HId8Bz-F&v8TSm^~1m~f!_eD0kLr(2Z+9S6_C!e zX9MQ~LxEag4Iug)Z76#-;0JyNyaW{T-eJH<;D><d&?ix!vw%y0xb;5v?W0leU{y~b zV^;OX!qFLQAk1DxfC2wB<S^s<xctLe>8~Z}rVOud(qe=)toGNqeADsRh5|@QR$ypE zy}X@PFaK5fPSnfG=2>3i=33VB3sCvkSAHD%%XO6RD}D-&V=8A>fAtst%2!;it=g+a zqrsIIF800Q_N`>g_3jLJ!2x$cHA{YX!8<Ch6i<(dKCL*A^ORirJmk`Ydr6pCd$FIF zq}Tea`_q#m5>=5>Cz&sW;bua&n*Q?$1)Tdf0^vv?V2@T+fxnPgiFpzUIQMP6>K`oj z?aM_L(8oVGJ9ndm0fs{vE+T0aZ_()=oFlhYXvN_wv?96tI$gQ-1INE=%<ig$oWn%9 z#h8=91)uXUE&?LNixyEGad!#atKuCZrhZ2$#H&b%=)-SQkr0XGD*;U1X|+T`L_3~X zj!HRxnY*&g(I{#&r&$ha+GUQ=U9!^@6U6jpBqpYf-%9wqm@uZWc%dPu`Br&pvGW*W z0rs_O+`hHNzQb^&uNL{1;w;ayZM@q+MzTfsi^jhxp0wYM+KYf?W{y&ck`5$=`bxWg z*Rt!DhHtO5`d4w<w|yj1G^^|E_PRsh4LV6W#4`P$iv0|sDBUHyja7$OhS(Z8%W&aM zrRDo_mk^?nxX^N20%rT~%#phns?1iXO(Nyy*1859GG_Nw-9hQ_7<10m-QoX<)W_cF zR1y+To{MOpRUW#;ZqZW``|1^@uSpu-!{!B65zDGP=M(7}m75)|wEb0{o|1H7{m!(v zP3aM`yL0+QVZKSHxVu@W5Z*r8DN18Hg;|NgZfNM~zgXUjl&sjf<CD9=597QIe6hR1 zOClUP(+%Rf@+o$MhvHlld~v$Ld9kB`L{@?9nIG22YCGD*)O<8J<)J{0m?C#&RB25i zdJvfMDF=bV)2cV^&Tw}sBfw&%@n{=gesP*U(L``GR?uSO@61GSD&1hMlIwgqy1`dt zWmIRnf#PXSaU$5GL@!^wZg7H$;KEo*lHC(pGlnak@XI|B7)nz0rD=MJE7gJ<{EuyV zzq?vl-_(8});CYF>YRr<)7&EG7NkfEL>ID>6nqPej*%kG{Vn&_AQxGW4COUsF3XVH ztU}ha6q(SA_z_r0`U}7k;A5a{ANPSI(k=$(1Ahjd0p0~}M#l6sa0uu{84m)F0KWuY z1x6rOdKB0S7`*3h!1k;7H_rPZOZp-3A|UdmE2+;oU_9^u&;eP|HNdX{kuUY9&ffxD zKpF5ca0RlWN?<Y2jqmCKTnJnTybW|mHZ&P{6gUhx`2KdlrNFbmalk}AB=K3A%ZP5Z z^+M1<RH1k>(NL_kq&oA6+~Y-GM07($id4&z`ulmvif(`0Sa?kaN`?!TyPsm&=_tP^ z>JsrO(Gr=8yu(dcB_&|;6)$z?u5{tQxW&#@#eFEM=*_E{5ogCec-S}gVc6mUQL%|X zAX!n5)MBK?5+)$v79q>Df#m#VG-tShdY%*N;WieXgJzMjupKbc8Qhkd79{2BHfC^p zCo^qjD9P<V$K|VIp+3;P-k7ZdSNQMC!}~oBue^C!&$#mNg~&6mygbu?RUW?Y*C8Yl z^A=ZL4|n&g@^H}P%|lGHhfMe7o$m_VhL*=M<UW02?JWhE5&rZVS5@)=veb$~NmV)~ zF-;@<$w!7(Wq0CkJw6g=C=Hjo;S)3Gdz?$c+tK~4MF&yoGB*By_TC3Ds_M!gpD`2@ zp_y2%#ujyK@lRUY62w2LTIb=6NoZ0midqT{0Z~g)SxKrbQprZTJjYnKrQfx?=`M7$ zTXvf+?EYAmcA-rIgzzU2{{Pbuf<`bF`BTF`<^DeBoO|EQWaiC`5xd%EU~=ZYd+vSj z-h1x7=bU@)Ic&;^GyPlNg6fM57dOF-5f6nX0{#=NtkW=K42SBWIe-#^oG8v6cxVx; z1Kv*|57`5|r{T0)%X9Z%C$14-ws;Am63E5e!IwCWql0sYWOsxAe?O122L{8XtKcxA zB>d=0rQXBE_KEx+)5Qho;%U)J6Li5%-Jivt<W1d|$96HUzI$F{S5DT(?hGq@lYPYW z@ApacqW-<=giH5cb&Pr!J#z2RtF6yg=-%CW7<a}Gy{6`?;?;6E$}wIq>|LY6LmGn5 z4Tjb1(o^`|7JTmFi|~8PsPKSY==EXveFSzszi0avI&2wcmknf^39k*o=kB~3z4}#l z?1X2N!A~dp^Q+fD*n^QxSJn<#QA*!_l^kFmvF4tCXd(A)9}9qRcYgP`A=|Y?Y5fMD zAEn>97#G?!H8gj?`Q5km{bg;Kh)!5c9b00bMc*ds*Co+f5H#0&?N_oHJs16YOJDl+ ze75f~{aR|DQ5}76t+^TRyK6JzyEY@bYjF|j+Kl(rwHc-MzSO<j6Rp|!sP%3!Tg~+M zuIt#nrPt}xkJQ)=lk$Z<4A7k1KX&6*-0w%LB|d6nx7G20(%-uY*WKmOs)mnR@A~NF z`^T<3S9La8oA6QV-LKQj_xG;TyVxveWypC@Nq}>o9UeQcBpjMs>TNE{sGLuZ7Jm;V z29zO>L@7hsaqAC|{mK7eK6D57K)+B49mL;3SMhu3Gxi|81K%!uso)xXx8VCpq*?g> z9N&M&_uueciEk<N9WUTZb~dN+9gA|liElZ+Gx5!YzM~jliYM{k_+Er(U54+K_!i*X zjPLo-dEABX4171^yA$76@I8U=vv|MN_zr;1BOl)%;rmm3$%f{?@g0deRO8!(?_2nm zLiceGzTd!i2EHED)53Q)zQ4wI5bAy*zL(;gkMHmBRrr1ddJyu_Lb?!mD<u8JghTYV zk2kFQt@|P;oo<H|!3X5@*`_mB;(XH;biS$a4B{Q*<m>2MtLA}7VB_4VLrwQzTsrwU z&Wm|Tq){-%(FewM;q9CQW9!xHzNKIGEgk6%2b%|E3^>atnCLL<dA_Ci|9x-x>9Yee zZfmv+aI)z`d7loTov+p(8i5|c(K;M)`cFRMl!<G73hkj6KaGo(`2GstpWr(a-^ut= zeA*lEHM*=w+rPza|0JSW;#}DltMLt-E8AjiK266IDfIMFK6iM97Z6=>vsLp0=e%C< zE9i!kI9t|*vt?^bC+|T#u3ws7IDvE7ux)w<*Ts_uBjEAopuI-z4`<V9walsmo|8~m zwKN|5*wr0iDYJGp9zqz*E3+COvM<obl+OzfB*&SVRr?tiK}|nab%2o(kvgNg<I1dE z57{_`#%G%Qkz-l|R)ipyO^0eQW=GYGcmXk|$1$}`#0^a?mH4>`G(l&x$Kp%zPS4=p zMtm3G`yru~EYQl+LMsEW?!fj%5?aXutq?9~WguvUklkseA6Z7uxu6wV3O=w8W(pei zSK<NSVDW*CqWtG8^9LyM>4gte#@Bx|lE>qQFWB)9aK(3dfP?Qm@q_vy?@F%$9?(Ox zrD?C|Ct@bnpI-PFF*H=JG|3u9@Ovescd4M}@Ob<l1*=q#C*V=J1j{|jPq50P@(3>Q zsC<G=9#ufF)1xeco=i20fIm}>AsEP1;|P{#s!0T^GSyUq3o_LVf=!ufCc(~3RZY;7 zqrwFIIf^17djdJCmSA~~sv}sHqj(o)L5^BN*G)N!TqS!tbJS{ro?Jy|)jj@PMQ7JN zfn3#2usm0F5v<BphY2poRXqfoa=}dD)0wM;Nc}34h}G{`IRpcKl}oVPulxk7{3?&& z0>8>9*yL9Q1UvnT4n}x9d1@3vf1VmcFp#Il5iHMBlL%Jjsi_1P<f$11oAT65f}MG) znjk!^g$ere)jWcMd{s-ZJYUrjtjbsQ1Q+D1B?O!D)e3^0`D!&mPl0MB=r2&)2?h#O zJHhe-)kUzXKpiHypg{EyY$^Z~3fNhoJlye?$|UHwR1U#_rE&?DTgp$c%2Ig*7g#Ev zV3VZ^2zFY^BIp^VMiKOnQey}PMyYWG%SS1S-0G<srKS>GFiOoJ*fdJbB-lAhRTK1# zQDK7qF=`&cz!+6auzZZFBUm*?)e~GWMlB)OG)Ao;*f~b6Cg>TbS_%5csqF*<<5WAr z@^Pw*VAVKvnBanOs)u0HI56{oo#PaFtn+v#sZ4_YNh*h6V3NuuSUySl306%~c?1_s zQuzd%CaD5~os*PB&@)wyBIuv0#t;llRpSVjPgRo$R!vn?2`-qbW)N(es%8@GoT{n` zdS<9FLH`Ujk6>ViswG%HL)8(inxX0mE|{T~5Nw*ERuJr*p;i<0%v7xe{WH~ef`OT; zonZM))kUysraDY;!A#XdunC+d!Ooe=!vnrrWfJsPs~m!XYL!c{yjuAQR#mG!f(xou zKEbAHRY0(_T3G}=VKs`NKdi<O420D<g5_Z~iC|S&O(nP>tY#2w3agm}JHx7)pl6;6 z6ZFqh^9Tm!sak^N^Hd$ds(GrO;DUK-3Bjg$Y6Zd0d1^I5PpxVt=&x1V2?lCaJHhf= z)kUzXRvjj|pjPz|Y^qf}(RJ1;&&9a*)TvB@{yLRIFi@v*36|F>Kf$Uxl}B(voysTJ zRHq6EcGfA2pr>AqBIvJIV+aQ7)i{FX^=cBqs(Lk*;DUNJgJ4s=nn|#;UR4wHEKy;C z{v~Q2!N3w#OR#*2sv}snMAZ{qutY5(*tA5gAlSJ?ttRMMp;`(0SE%g-11nTJ!SWTV zi(u6Xb(r9S6{?3|(+Z^scCJt!p6FMrOoIN^Du-ZTwaO(}zFPSSR;^Zf1Q)DU`2?F* zs{(?ZtCdC2)2c=h^tY-p1Ou&V9KrHdHHlzVtC~u1L93cUu&GteB-q)istJ0wt1v<T zb~TS+V7sa%SiW7=5v<y->Ip8`u9gsN+OAd*?A)$a6ZEvJR)YR^wVhy~U9}S|hi`s@ zRqg69!3FKAhhS5?;svg=U3rG!+S8>n3HrNK4#7Z|$|YFdrThe|x>O#)1zjqiU{jYW zAlTWZEP|fHY7{~LVKs(e;IJA;u>7!^M6l|xno4lNVKswb(_uA}VCP{~P0-V$!UX+2 zY97HrkE$hD-lOUWR`sZQf(v@o5`s-VY6Zd09<`dF2RaLaew-O17=YabL3nfNB3K3A zs00@v76id22oD51c^TxTkk)Xl|M=u6tpE66Z7e6~S6Kh?$x~SW@yS<M|M9`v(Mb?% z2LaD0mFXuqMr8&Fj#HVOA9E|`pQ<uB{|uGM`Ddz3&W|~V&@qSP_zBKaIRS#TDu?r9 zOmhBumBaa$s2t9}LgjFN&?=#W26O!cx2xO$!FH9)`O%l0|FFvC{5>j{^MeE^{{YS7 z49HY|KV9c2e}G`F@>Bi+-~lNAfIQ`=`~&ippYjhVP=3yjwGo$|0i#r&pWqmk7a%xJ z<#B$j9h`rv%H#YqR37J_sq#2K=2W122830<pWr-|A0Sw(@;N`|9L`^_@;Uz!mCyNC zsC>?ku?Td}fL2xDC%9b|1PHdP0?rRw<@|?L0q5^g1)Lu`E6Sg#dAQ6>W%=nkM_B=a zxyqvanc#6Ke`cPtD1RmnRa5@V0%dW2OL)Ib@Bn_gKSqrT5FDpQasEka6z9hp$@yof zQJjCK8pZjmg=fsf+QIqfsWF_tR*m8Ob!rUf$K1;Km#8tEe}x*u`Bw|CnTa`v^KVz< zIDfku$N9U|IL?nT$@zQKIL?pQER=t+M|jl1;8iLA;2bq6KrmNLqWpvXY7*ri3|@}% z56)MUDF5IBHHq_E!rKl8kK?ENW7O0D!EtIT=bxmea(?gtoPUOz%K2xishq!Bc;dlW z8#(_xHG}ilsu`TWPR-!_SUWiX5;cSKuTV2M|7zi-2V+j<{M*$`&fl(Pa{ewglk;QF z;ru;nCg+E~iSp-oga^+7FHZS$a#S_t&&gHQlt0I>swsaCcvZ@uldq~Ne@=m_=KPlM z?m44W*iZMt%LNFIQ(?|ONrgH8R2Am@;B`3vOcmz*)xz`Vgw;IG4<3N?*Q$A(zfR5L z{Pk)c=f@h!`B$iUoPV{*3OTK+mh)rn;QZ~Xmh*S1TF!r1)pCB!t(+fcCn^8M9+5FF z&Qx`j|6<4-l>g#fRY&<R_NzL|e{r6wqx=_xC#U=u7pOYUZ;5Pj@hDaAr~BYl0|dvZ zdd@#d)pP!-s-E+Mm*f01RXyjg7MbSauv)_T!Q*iLTD64p*Qq6(zg{ij{NMpN{|dE) z^RE_J=;Btjg7af-<oxYw1?TTlD>(mQwSx0w?cn^d*`xfq9+9DPGu3L!p9`6a^5^EN z)s#QiuU1q3+&s0K^5;V4p!~T7YBlG#ME1%ZrCR-Te~fAk5Cl)o`6sDX&OcSPa{d{r zmGgsV<^0tmv*m`>cFsRfZRh;p<v4$x+Rpjw)ppLmL~ZB%;B`3vYLWGFTU9&f->%v@ zKX?Gn-=*3)|6$e6`Fm75=f@gJ`G<H!MjVo<x+wpU9Mwhnhd_3u{6qYzi}DZ2Q(csQ zNWSW#{6ipHaehl=%ORuGVL#m;qYeiMLgwK7lhk3(KUE#({4>;H&JUiP^H+;ZIwY)m zIR8A=!}-Cha{fBi!};q~59eQ^dN@CLInKXYWZ5CDaFR~X-HwB_1i|BQ{w}3B|6wQ! z={`0oI6rs*<kyS8r(Xd;0&%|rpkDz%f^okBpkDz%0&>3spkDz%g7TlQ0sxgWJV3t! z!0$(E^eX`R6#xOyLB9f^UjaY@RKEhCUje`Z^q;2!02EH2HRpLen;-a?SFR#|={|j4 z%t)O65-jMGr9X0kq%XnQwnXKRzf98q2FDu{r4RU=q%R+oIDO(xlD;V`ae7-o(zgIy z<vA~|eyc1=U*=N(+MuK#M9y+=MtuIeBz+1}E*vx<F1@5k(tnNPkBRDc+XIrGabe>0 ziBl#0O_%nW#)cGlwxGp5e^!e07gD7EQ;PJ(I(;0ToTz=SpCvCg810)V{efqar;`*$ zpN#L1@pzxg@#YLZKl4RA>w4TH&V2DVpvS_;(5c7D&iUbacYb`}sOs~dA6WCT7Y6(Y zlq>ipfQ91)pXixC2ERBS|7jo`EK4819{6*~fD<30cm5<P|79SQJR$f*|1tQb@$WMj z^<G5=fcVgOh`~?r{<i`D2nB4xhsH-T{Gmvk2K-?^6MPyk{4wu;XZ3&=&}P)`^MLn` z#-ni)gV*alsN7Y+ufvu*eP|rT;D@TYkEq-?3GW{TkH%9BUSajX=bhfv{f}qA^G||L z<0}Tg*LzU;CBR=!MwIx_c#FYL(B4l2e{rMW)A&n<PxY(^{_|S|-xTlAqs~rv+kjV@ z2Hrcs`&JrwL(wmVY2cLrZ<xlT@yZ|5zq%jj{VIU>>{h7<jaxUoTHwuvx|u$1c=ebc zu)q6-e+9h6<GK7F^z}~xF}5#%PG3I@_z7HpPhZafM3Y~>`zf|{yZy{}1zuh$@D3P~ zUFq@MUjA1Cs~;Emt49U4eMjI64-5Rs6oJoA7C5I|;B#dHt0xG2`kMm3^9_L`?-sZT z^Ef?k=SYDKSa;}p{0M<(h70`re1QeS1n&Bxz$d>T@DdOr<@;}}YXo1$`bTgODo=11 z)=PrFL%U-Nx%^jvg8~0R!+C%h`j-<e1NHJR0AgrgJ`^w$&;tlt#>-Ejf3Y-Qz8~;o zfOUXZpdSVS4#4$3bSk><@)dx{a``U-k#zYO?rhKHM<ic%17NPllTCB(rGOLl{b3qX zrcdI28}eNQI3EzSpFJHALoz!6i05ac44SXAa{xaLh<EjT3J}19Cdi(Rmq1YiCu$hb z(66CK!ww)3UW117HJq*CL=6KP`Ze@u*n#Ka=fDOH=W94y!-*OOH1ul-!1?Hfvr)h* zz3$T-OV@@ELf!b<towvU>1Lh3j;>Lc7pw3CpLg-4bi)UokKc4{_#XV^Yr_Xzr_;@P zmxHnh-|$%!D~qlTUxZ=7*KGm(z-K(Zly3N*zt-1=&-u14-|!XxPU#?&7pw7uKDvCf z?%$*F4WIE-pfG-zu{}T4>4wkPX3~Em>CfnN!)N^7r2m7Y|4OGDKH~TK+VBmZqW8gf zah2d7rF2|(=<7~>-S*d#zExj)bbSut_LaD2K9}Nm)TQS}Bt&0(%0^E6cE#5!9{<`` zr+iN?hF3g3+_^wXK3_cc_!EzoPb-@QY){!e!IH8mPfag>?7^~0->aAsQ^=i<Pye1Z zZTchSk-NQaji`8hM1otT<ukscGma@7dE-qtmRTbU$J~NXS;^RYJ!R%5VBAe0T5&gl z7<H50`OflblPjl{S4`nbM_y1@JbxJdLt97<i^^w|mOfB6CS;We0=)vg&bJ?XaLQA+ zMD9txxZBZHh#>P_U5D7arV_DtO)VmK=@oDn1;yXH5%;3Hs%%8;<qffy!y^UIYu%u) zsncT-ajEHKxKx(t>jHc}oByTZ!~Bs?{)n4zF1TU%h#T_#{u_r4M}j2h4;yyVh!KAO zEyHfkzlqT&UO+uU^i)<}S@HN6X=Hmmn@<1XEarPJhA7i1=5{eG_tOuaTRn4Q2w3i$ zztb;~M4D&mW3Evqts`O{4OmuIG3BWW{Lr7WvU@`h+-t5PaPR^7ZOU^}26$#Wzwx82 z?7{Mi^2nXCvY>UZ6}isQ<s8IfN1tJ@$-BIm>-GFVZpHj9E1UfIqtnYLSCmyg_9W=7 ztgIv$jd1d?Ts45Hpik~mUjIC^hdAZw7LfF^vMG<0J@iERqu?9p)4RUQ&dU8|SQP2A z3$0ImU_N;5N6c@6L-D1x4@5wJX&PnI%jtfv=NbH-h>3k0cmS&I-T2an>PcVfA;Rg) z$D9kI2w6{Nh6@KbcI1T1hW_lt8Ov^f6B+o#_S;8(W}Q$qGnD=0&^dd3&;AAvLhQ!e zQ2yQ$dkfrFcV7_lHWDT-t*TS>Mo;HjRgGkL7^EX&IiZ^IpY}E$$g%Qv<K$9B+3yGk z{;BbSJ8ZS73eAN~H&!)M9{V_F8G1#irs4|9me&q{+d0LP*CP<*`jIt5{)Nc6X!717 z@A{&QE5n2A3vdv$x@iE)uKZ6#=Ch9?K>KyY-Yq5e{ke12*8CN{x^K>Xc$^bJ%&9p= z2P?MUwZf%CL*dGz8W^qHp`qj}{Nrd@9Eh84{kCfM?Ag};Dm*n5p5>>*SI@4*MQOOy zQ-a`K#o^Li#HDOQO{}ojxAYx2OYUeqm;=xdzR<U{-M6%<@eO!AI);OEfr>BSufMV+ z=xwe#OJ!QV!sFgERcG|?y+Los?fUo1?i(!Mq9X`=d90}M@U^~0`|xv5QDgVDxV;L$ zn-CfN+U{(Wm{XY<w43cSLAwJT*LWZ^>v+~m`?6v_0@+Ay<D2tMw15>3!Q1m#L|3hB z>CP+;S9*%WV{?lqm*y0Cj~3gdIO11&U6FS)e&)_;s0na$_~vBj#+xAV*J7G47=E}Y z7#?lt=Sk4dSv$1EYTOS3D)a~K7EsVh#OMsxd<_&adMJetq-n>heidF;3v=`L7THbt zYte=+-4|p`Si+(5?53(SOcq0`(AXf0_Qu0G<hQ4$B;QM@sAk@A4gq=v%7QztWfJ@I zqy+<J`2M2I@S&|KvOoyZ-iT7Hnx}8{gleYU=%q41Ez?o(gcc$x-=g-K5qx~2WO7e2 zyfI}Avs8-}zQVUup+EP6Gy%?pKjm9`0zZhl0k$G;U7%tF{`xB)2zgIiRi~*3nPh^# z!mZx3($(nckasr*38f-oeK$g&F53COL|`SpMO%v--#{myz*`)r{zlq*++JVYc!)ds z9dvTYK5d^3*}KV$S7TRZFl$FJYok3pqjZ}L0R*<Z0JSf&*Pu(#(};!|p0F%vuca|j z<ZUam3o#~wHO1T$zBzQPFzVEFOvj=C?pxo|!n;w+vajRMlVdPMYy`B$2>At3Z}qEQ z>-SWFVEA#2jXzXODG6U%f@8iV_WBYV(KuVfm-v=$lra#R^D3M}RSX6Bwt;+i7NNrU zy&k_e6`_{+-HhLBh^(oCa9XxGtI-}LM?+VFjQ>#iYXp_;K3_is(PDFOAhpQ$;n#H~ zUJ%h}p<BG8Z_Xo0$@ZBds+k?y0PuA<cmo(?hgL<=@@UZVDLYgzwEVE9<#&Q;gP?AN zTbYnw_mT%W%!bwqYKtQK7}IlG_n=@#X+2uek6UJTywaH+*ESv^(rc?3KL|8Ep$$XE z%3DjV^z3RhE@qd-h&QlI=1K}<OC-J4syfLd<5sJxL1tMTt_4*O$;OnK4Oed{1k^kl zMOU^JP3{3b9jzJsbDB1By0_SSv?Rl4sSQ^6GT&12>`qjT2?D>iR$LSGEgHL_)VFB6 z5F@5H-=bFP8zf9vg@jj%Y5tMk31;mMW^J}Fu)GaIey{rGd<$)k5e(X^Tvie;T^zI< zh4yw7*-tX<N#ptE>`y{_2>82@>F;sfNo~?e)K}=F79z!aBBZzuy%4kyRqyxOrQ58Y z)#v?2hFI_@E{6Gj+Gv@{_NOZ?|9Y$Xwdq0oXw^}|f`dLDfd~viGt*cURT91yF(DS0 zgr5N!&st`M2MqNs-G*m2*lQZ!%CW-d(|P8c>RH<`jF)cWRx52YW0hJEZN8PL8?6>< zLBh&nkaXzTy%j?-sy7-;(EAR9iTlk45sQezkXehu+u%`;=azT<mEW|y=zN|%mgy;^ z#d}&N8((2t$lC_e&<PFQpT)D+nkUg<)31aFHJJxtVxUMAO;~8E-_5D~LO8U_x2Oe} z>$%IlYkiAO;_6IM<6GByccMV5B+pYJZxaZu@%7BCO~I_4mVHNY^{N5I)oTV&q}cW7 zS@_Od$Yd~f8AxGqH+-SN&EowO=$Y0UJ!G-e#17f-CMOES=`a+rL?~jhP((c@D4d0N zmLWZKpQoXVo~2cYmL)7gGWF2}b{7~eLp5y<)%b$D?FkDt-N?G^`)QMZ-Q2O8h;FKm zGto?_qsoAPSw;iC*xr)gK<iI;R>p+q@jTq<wSMj9u^wuu31(ufhZ^u+dFzSbegT5R z;D52m9{Up5416r+ka(mEYjlStyiw3T0>;9s8Jq#0D#HtQ&B|*=LnCT-Ax8VyhN8(^ z&|Pgc18QWnw-kFf(`XNaFL@c%)L|1VVudfD1N)%gHiRlZU2(N<(X1sH=O?L~G0Yd^ z_by^H(BV_+G3Gmp8{fQk_N+~wimSt87a|^a1bI&sZl^)@E!~cQzrLj>eM=jeeuv|) zzw#SFuflN?j5!{jzQR-9t-65=cU#_7R@FP2diRre!$m6bV>--ZEL+)o!0|ZLTUv)V zK856y#i)tpRlY@=QAQh$MDHHoqDEXa(Bc9n%W8Z*r?C?&=;^E`%l<?#qjFm@xJV*j zirr4FDog0tmoP=Y2m+!drpUXlh}g=8AmWn~Gvk{xC<(=;%~tQD$ywOyQhR$eTa8Pz za3o`^;lUF{M6uQgC(}pXx@7W!V(*5MjBBm%kfAowEv6!SPZdt|BF^i99311vudJ<E z>n(eN$J<<7y_%Wt7u}ifVM!L^#OyceB3;?<MpTv9Z^L?**y~W&Fx-C_<{N$|4b3-z z(lK*KG2f%pW4?(5Q!(F`eZ=tJ_$mB%2l3y*td+!o)3Qi@NSFbCfX23Fz`HZ00>XTQ zb8%<BKbEBN`ow&Pxoyu4^L-V{`jax>TMhGlMwo9b<_`1y&G*E7Ux$@2E#?~$ovD+B z|K6$jZ!CVqf1i!xzt2Z^rOkgomu&L*zvaI{#{K;FhnD|7K)v&!;lI~o7BHOD`{cjx zLs1_J{u}(uW?na<`ELjk?}h&+)}Q5fSN^*tmj5mV|J?`{Zl!Q3EnsJG72&@(NAce* zgn<EH6VHIJ6Aq>?3^+Lxa?=PvD(e#i-dhh8VZo=I3l^Nkw+IUk9n$mk#58$u)*;c> zkzvArhY38M2fsar2d^1Cu%=?*IpM%TXQx?$oV5g;>lxx)H4nZwng>7N@Zi^g2M3>f zI)Y71xIrc+oN>W~Lw5xV2KN>#L~gR8xNzv9lCj~Mq1LYz{UBn)`9VSZl(6BWS%|zd zWOoO{kJf>EYGut32$;1yLGLNt+m1_C{CM}^YIVqd#ghJWh`ytHpxlCd0}efFT?~Ux z-8JW7q3<*~^f%%6&W)s9IP`}_@%>Ij@!iB6`e-P5daVD&Zw00kZum+4-9!o=;z6rU zvtkB(I<QIoy_HleT90kz?SW>eViGb#{r!6)G8CmYXgTr5C_QJW=K7mMHBaBn3d-X} zlb?k8dn4Ly<H(v3zZUg(Pmy<HQO3>TY^(v$fUng0m&*T$V!}6<kT%TGfZu~Bx-~<w zebNdSK?govbl?Hj@O=uSBAy9<N_5~`m<dO{r$7Z>6j6bbu7ud|gQ5d(314RKVix>} zZ|NH7m>Rotqj+&B!Z#Y-3>4uf9o=`(`-W&XpdjDceG6#iD5zX3!q?y@E5C`L@OukM zc-<GVBK+f`ceOX#CxiAIjR$f`A>NUhbtJ1TYnSaMJ%z)OlQ%sp9EhmI&o2%SD-Pcc zjd+o0#53_r6yiljAs&Fx*OO$HB%VB?h%owa$or5d{j3d#P7#WTyF`fy6~NzfJG(LD zqy5m2_tGY~Xv3k@Ama-+hP<Kg+VJLL?=IK~S!%5n&J}GqZPcKjp$%u{JbvyFwKx=t z=wfi?H?c}QiYo`%gK9#)!ktDZj@~^H@*cND4}g??-CrTTT$IX~Vs>h+IC}Yn){3{| z_C8WWQjdcxmmb%u@#E<6Xzh4=R(q6w9FbE_(%eD%aney5{kYaqI{I;=qnw$fpE1(H zg+-_~tH(!+dfd14{(G>`p|?4(qlLh3t4K@U*qOWVJc~?fplJ=gVU*@&7)*OBDvQEC z+SFhLnLQSJN$W{Fd&0LA4)CCyeHBmH%DTfg(<FL8aGT(_qc^9zhqB&a;bccvvprn9 z!Gs99xAK>~DWJE1A{sd;kGw~U5UyZyVPum)w5xVwWa})^?oas1#9DOU($UfCINnuE zq)ES11_5>!zfOYyTJq{nsIYSbJ<XBUI;6GhMfTDBEzpz2=+%!J^+-goz79$*(W_r1 zdUb?6$=l3&^;UF%qgP)>lW?524SIFni45AuNLf~cFeNp?9CRQG*#TX4lwSQ<&Ba=; zzAjd;4qfR|5>P{Pw&2&^iqB&mov`6|dZ(wIh!<*N(zNc-YT{X|z}lT<y%lsUteJWP z%Bf)19{WOzb~s6i0R1}cV+!r2(y#AMLc8GP=Cgj?bRX@0U=w7OXj8#6fQ+4;p2O%G z=*x|Iy;;=jzTjqi>;|i+nH20=3;olT{`GSwU_-2Hdet!+>-N~?(c1Ozqa@+(7i#VL z;&|=4PirTmwd+xw^w?EsHb=YOfM#Ru`s`U-Jr&m=m@b-nQv$vlx7Qe4-_m#0Mhh!; z;~Tl?pM&`B=0ypcc-WoAjCCj}qrWRg(T@45HNgXMd!>0`$ZjP@e`R-&*Ql?AL(B0# z2a()e-1vuUL*CZjn)Y2t+e>s3@~#A`qj(Qypv^IvSdFid`aPKSRxoQ{yae#CG|Pq2 z$u!H2T?`fc!gN*eUr$aqi^FAl$V2B&G_z1>2D;a!h0$Z)MFqbhSn~}G`ZDG)W`X~= zcQawN^sIEYZ5o5nkoT;Vog3cL&?@*f)d!|q*#4|KLc|5E`9<NfTtq|CYWO{@hF=CX z{8&-L@6kNj5Mjye&7y{1rq%GvNDYtZOlwIKzloR5vCza%c!{S5=;_-c(}TSpyGYF7 zg`63J^zpQxUNiW-ntRW~WHYwS(aJB@T6t*alWXOPQzD)GChRR$&uXDPrIR8Nkn){% z*_b^RVg)o>`A6%JaF8fx_N+BT^`QpP$jJ!yt|;V#2A9?HG`4aBvV!jqqU}!wDsHGg z#k))J=ELfFUZo)zsEB@kU&#BKRrM~ny07pp-d$3W=Q-N|Ao@4W^Ma(G57}>a-(}gy zt54-r-ikP8G|3UIL(IW;0OmhjX$3v1(1pCb+Ys`;DT^BG>oZV4Fc}@WqO_-JvC~Ke z8;siin?mvkxKjq2p8&P}*cUB(ZP4B&n)~%db{T8#A7JwH&Dr(d<$`#Fn0>UM^lR=T zhBKM8j=LGoV1puw=DtDX1f#j{;LB*uJ*0&OM?#3Tn(2y25#5M8wWtAf#Ueti*~}kt zn}vw(K|B+~Y^K46z0)5_*o4{4%3#)kUTXVjyP5Z(wikEa<E=zoQ=ioKA5EJXt)_R> z_7Dz8YKT_b!)E4`UT%%e%z7gqu+7XKZBawUG~G91irK_G1y)F{T#L4u*^1k|MNK^{ zI{Q<kv)@Wv!ORwK493U==hSAVFrm#%5eozjzGv$||LNGw4D>C9sY4qE05N?_8{V(Y z%;;#FnL^miK+<7$zr@=jHbD_~{~>UgZh8V3`X%P~<G0@Hsl7=vLVNGli9a{18CLDE z)y&?0tC{3hGcAd%X4dpu&GcK%d<3j!z>CKj&0ziN?6;cvK&)o^P0`P>DLV1gpx2IM zrs(PL)MSdDlBae|(ZN#(?JjMKzB220zbX1THbvKL^<HBQlh_pfJ+Reeik==@?U=$a zTfK)A&W5et5v6MXGh(Y<O=0@k>T_+3-Y2&DFVh(2Psvte1?e}2Ss8OYrr#KbEF4Gy z-e+SN7tWdvq4XQWhy~b(!5HSFt@I{C^{VyIyWuS3IWbpHWGVCMgi3F1DYKQ8-tLw% z*pY#SdRvU43?|&}K3U4#s0{;>TFT_G?mNm-#<I6ZS;_>n4#t_vjH0dbzL?6qon$-l zFU3?Q!mal*m4OY-`!SWd6-;}YrZVXA-lj6`y-a0#V$|Y)VpAEij7erH6E5?^Q0B3c z@Ri0$ro`S2GZ~z0`XdHQw5lA9(swf%SjqgGwvwS^rt&l#uPX8Ga<`BvOQJIGw~&#u zXbCK2XfH@CWX|+k$msK@NiAdy%O7JQqc!RM7BYI@uirxE&(1>TBsipA7BUC>Eo45F z7BVR;=dn=2{_?|NIe*o;u$+e)pn)wZpCQY6?G=JNmxW+fQhi{URsH&Oiw!?%FPv>q zZ$@fK_)8`Bqb()ye^NqLX5k4QHj^h-1}+8IdNkJx=h!>ov4l*7KPMK_6`z4{ycJeb zJH#%Ud}nN=!}@e|1h!RtgnMZ-&K1DMs|Tg6v#M2~0tc`a4q#hec%fkDB)`>`TwA=2 za-zvsxGw13B=%pv!qaTvwIlMJ7V{j47pKgFg7yx(#j;PqJRgzzDu>J2c(^YCLJt{h z2faJUIun*$B+YtTka;(*+Ua167gjgBjctA~3*~s|Byn+dgBZFV5_7Hwv0!Y21!GIP z7K}emB63iFkrM$|gM~6}uy6)O`jH+br%ZgpZ5X-wfgb=q{@+t<?{qxZRKn3m8BQJT z)K-E+#EjTJ$|i>sTC|ss7BV^9h%WU#`(qFS9DFQ>+2Atkw-_4g_herf%5SJb_rNF8 zZB=XNAc@WMA8ZUmWMl|SrMxw04xIMCi;NF(Fg@13u%X!7R+2FghWdu2IvjsBpee&V zw0SCqX`;FgM0J229l>~}lTI3u4;pPLg*5U*vyS}G@S&phAS)c^kfZ&un8nfli6QSF z_3?e}dZTc^cZZl{`3jF(UUP5`COm7q>EvzKZ?rM=etFz6Jnksd3_MWaack*uA-l^y z2K$lj+xckG%|c*!q2ng^(PHwH<Lx4gV4U{nlm5rZP!g2J$EUpO?Ohg;8J+b%Mn;2| zX3WA-|21R~@0;_J7%F2|6=E%@&-udz61$SQA_+<H@P`v5*uVBW%K0-k`4MsDL+&Vt zJmf@qGa{R8*iuI(vYnW7oTIw@<2=l0A^Qy+yuf1hnqI8J_xtB;@jXimS=?#d!9&?V z-wI!;J>cx}Eqxo*-^eW41acpwPdHT4vLP!09O01rpk{J}!_!jZp<Hr6QgM-QQE7uY zD0qt2FZ&dP!ivvVor1Ns=SlKovpZ5GodPo@Hktxq&aBqq4RDHKW%OCckQX-F>{`vt zO1mS5g_xBZB6j?Z-Jiv*6!oAJQ4eY`4}$A0`vgozy9;<ix`FK#^DrSUS`U<sJZE`# zN3F%)6PS$5k{9%@q{)c=<^;1gWvz*}0NUc4vp^=Jz8u>vNj5*3Lms^h_Jua)$FGF! zHHUoqiRqpquUMcU@_AKcpCs2gkCWZL90+M32pU>W5Ub-d*#6p;+ls=|;U1@0d%{{w zp51UN_bIH8$9kP*6VEtf7uVc-0U6LQruA_>yV>jJ^^siTRKD~ZS{~_)lrhLh--$K8 z<yhm>c^%>tY6f3YQ*j9jt86i+cF4yYjzREBxua&V_K(xZE2W24N_q<`JiK~V1KHp2 z7X$fjR!dB&@3l0}T8QQ4G@G#d7Cl;r)#?qh#m7p2I0p*7>RHQ~tS8Lpe8A<?D)!du zS<86MWx7tZ=AMZvx7!rUYc4tJB9}V5G34M63V(Ug-JloU-)VNP%e&LCaA!l_S0Wbs zhk4Q6Z%!a}$)bB2&tsMmq)*Q~%!g6z{q|`b;_V(8F5O0E`(Nh4leZgGzBb12Hssw; zYp$*z9N%FW;7U7>I%MI*1Q9!}yz6j~NeqTok-a|qL%9_+8)TJorS`GYRK%w(Hx}8` zb8&L2W+Z5ij$1bLTk5|rA3F(!l&3Me+=Y}8Jo9TIh1~gp?KMIQvwyS>;&dVyN-rD8 z#Rw@;GC<U12m)GZW>Oe9Lr8%;KokRpIwGS$W)QxS=T`EL=}0AKtY{Z!E7?iZF*8j^ z%Ox=VH_yS5Li<z@F3xZm6*9^&hlO;6C<sNMSro%^l=l?K85eRc4_?mL4<X##Wo@?X zERj(3QM@;0y6%gF^3x>KwQMZkpFl#X6O-!4^}PHpd>5K|nI>f)%P5<97H+|EE;0({ z;GNnz8Rp<R^3zB%O00Lygx<;EZqfH_t<1p-X=Zi~MfDO>Mn;J#@u#6kSb=xW$#>Ee z9Ot4;gq4gaVTI0#gDAjlfwnH?6I*mDDn?j2ZYHuG;{QQbn08pk1c~j%L?-;lQk<`E zMN#BPuhXhNjgwCJ>#r<>z@R+>8ouDD_Xr;>@f9{km<9+dyLsOHV~n^#k0Li6<kAl; z10J`V59--}w41>obl--D<W%0|P}%{Ln?)T+N+MjbwBv0i-T_63yaV^3G-Hxyp)Pn9 zvh15PX5oMn2`hgPZ=K?p3=1)z>YK0-%t(yD5`@G;3$<^KFA0tPAB!xm237sOJwF7# zJ^$3^RH;OkU6_K>7g=WW!qv-xXPn3aNg*P#l#<B8%)4*Vxe{5{Mv6=-vOso<5m_Rt zl8BE_$A9pVkT>?|F(!|e$b%e_1=EtV(1M4zPteihFSE!pLW?X>dbyytC2EoOo&X!S zH%er&?7bEpNf%c``+CVN^JNk2i_G%XWD``s%))-D--FDuHd<yWbz~ON+bue0GRt}+ z4C#WC%Pd`3dV9$%#sjvISvJPVEK#S7MP^xVmU=xvqh*#iBQnc+l3CtNB(v-`GK)S= zzrMH3Lf(2KG7C=EzbZ1z9-J~h_cF_0_6Y}KZsWE~mh%LEiWpa%3w?ch(4Mu;*)6H$ z`J4oi2EAL-V(){)eh(|5Kwj7{*-lIz6iQZj7{?Dln1Nxktx-W@_Gb1D09t92O%oDX z`OG=e$VGAs>1}NAoquGJWG_mCU1P3gV`he60u?tlPbOOMSS6b$hH2dFJ*NF$6mAZA z$q|Vb!=d6v(OY{xmV7<)V=+CG4`_ZYoJ83>LiWb)`{9C#B$QHnQ`HG72M3qMOAO}X zeWJ_W3MV+YVy7?O9eBhEO#UZC1-=o}Hf;exq@J~nbQ9i9mVL%vgSk7GrthxItoC45 z56-??_OO_pmPMF{?K8w!%3cfH&{Q_0yVr7Wl1aSSK3f9+<)QFnMWOK5GOh4k6k@^( ze@*<V*AlO5g@3@}%n4|jHbBW_*>|yLh})tzTp-Ml!|q3y6o>E2&Bvz8R^D`JfKsWl zmI}a~#G5V+deep7EpMdI4df~uilO<CXBIm0jI~_vyFi`78!yl)tr8br9oTw~mualL zRmHOVl2D*2joEzxuR-b?n6`sJFS5y0DNdm2J<E|Eh2>GABhZR$_bu&FR1*9u!;doz z#~jy$*nf#X>v7cV?5(%FP0>fFY5%47Sr76rCX*nD6b}?H-}WYZW6*BvewcZO2^PGy zRlQBbi4xwGZB0-hyR8X<-h7MRwpiE!9g28ERJj^gjeJ{dTH8>kH}Hr<q;0aiufR<g z9L6mvfya1uYy!v3>{>OeIctYy-w@200ugBC0E%HT9@GXhBI#!#sC0hu<gbxW=3@Ik z<DKg+NIqT3)J5V|mG)}L3m5zpk>jTO$KcO1Q7&&N7FEc84TR^#dF}JWAsySG`JR0N zX+_~nK|zSFFq%A{wS>>Jn|Y)54=ATcOwt-Eu0};Gx1oWK(-1{V5GQzCd$A%71v{=$ z>oM10W4K~4FvznRJAZ_;3*NS(mcXEGhAXFh<4qVgYA^I*sNN0@s{6ri<JD!AY#_h| z5P8~PE=pqZw3n$P#AuIZtc*a5kdF8SZI%XW?t|ocKgahN$20n_>JGHtf%C+DQ-cIY zD25X!9qc2R5vt=YQ%s#A_rQl!gN!?JR4(y8E`%Z%@jl4?QXB1>cA)vOXAX@-<>J`T z2wO}saN(qjk<bViCkTyzZBrc@;iqDtwz=4QtR&-7vNItEQt<H&&y2FR>=$Db+Q4{M z95jxlvvAwB@1`lsk?<O+RMD4*(3g8F24h!a8BkhjZyx@vw7YRDYg;Jm9V=@?$i51- z$3A4^0NRGU6I~Mw-w(R3MA(54r25Uhq9%Nu+txRyCCPk?#Z|mI86WwWd1Adf(Pq%{ z$Y#)S?j{{K!PyMrAJF7);O!vhp2(jjJIee!UX4k*igDn?@erV`(HlZwMPDW-HZ%ZA zNkGwl8YWQG8unBP3x8@s_H4>39*hCA9TZy5EFUJMBQ#d*Bi7s<)w4EuD)Me;%{iGs zL={TgE4s{+rbrAzIKLF{PMbq?MRTQgLm%>P)=PCn#5yk9M83jZLGKBpLO;oSLhB;$ z-)<g-kxFiC`1M2fIvZ>1+3rG~BrVaFH{vBXBd3m*ur6xwd)twA6lpRoc+b-2x}JT# zjUYbq?i7jd(nGW0%_hDA`@gh71by`GG&~9Y6x%8U(+CSxgUPX;Ao+J9h^YV`J$W;6 zeh71cC6j>#UXEj=JWFeNNKXeA%?GlWOQ;x%erhE67DH#N44uKl3oq}r#S~Hj%lj6d zAZX91@>wdAJh{qVPcNH_#d>+?JtMKHxE7DX%rF<T^NW%7{dcsg=fl5|6cgDp0-u*~ zd2cS3kP3Rs$b?iVntZazyR$gs4k#vR9miy$JvL#!By*ci-Z2W*8`iIZ_B*i((2fyP zGrE2X?HI9_BW7VirPZ@mc`7c2N4WX+dRZtz5;Svww02u_*V3+3#fYlYO#auSh$fAP zf*R!s(e@LaxV_(oQWAC?OJ9LAK}<?;B7$)c?FkkPt=a!H<DkLYZfrK7YA~BiP=j_b zL)*}+R%9Z=l>#@g-_(g5>KqT*`@6xhO;}z^R!|5nG9F=>FmGFV+le7?_*xG21E)T? z`HJ@8rM+BvkE76543ZX}42VO=b`z?82oK_YD$Bba6a>zpw$$Di3{O~&X*S};XMGmJ z6MPC`9oRn<+j^V@TL8Kx=HW$5v~!CkphGbSbl_N5q&A)F!aTeOxeeT;@d?$(AZe4B zV9#BUw8lf3(Q(rLBg#u`uQ+MOOYFC-vI+4A-r__ziv0=)z`W<MErG4uUA$hf^j3s$ zI#{6)PAlYrTS*S6vy0fKTx`8!=ro3}<Xu==Ll7oSn<i1PD94@*B;n|_aNpUd!HxkW zH<Ym%Ux<(p+Mwx&&^F%LP2yRZO_2=IgRC2a-gS-y*G-Rdwv#|<&aOZ1Z^i`8TSC}R z0)<=lX0l0wxOTH8dVaiG^o|m;ICgKKZ=^b=1(tWKiQv@%=B^F4Z}#~lkQK3>|5e|d zJu<!bMI5V6GQFem(=dI5D`2?m(bjJkwqI#$X^@$~jrkin$)&(;5%aeR^`Y<se%wj8 zwS-Oiifq}Dm+gHpa(Zh?%-?u_Uq@{-erj*iQQPQ%lvQ)FH&j#NW%IX2>?lF-q8+75 z&Bq<78KC(%>?j>6$-s`1$8HuXJ89X?7SY*ZqO%>KGxA8x?8b2I@~$EeU39{zns`?U zH+EvKVaW^Kxf7EeQvht~Fr}g(Sk*<VZXtu2T_x7Bg1(MN3@&lC)!Sr<ZL4f68O;<k z0-(4Zcpfthq$t2o;x9w?AIZ+Lt$QR-q_<h39l+bYZnCo*ZnD5b6_AZ33=lpFJc$C? zcejP`O;9k9YKu3QAWq!OQRB2790j5P<Jq8(c)<`3VSsou9>Ue#M!2HA_=}QI7$#Rb z(uKB(v4nHnU;QgB0dXPY9*zka7rw-XMrR{-?yxYTn_L`V(dgpU1C`#0-|S+XxF)!I zZo`Pmhz=U}E6iI_LE}<5z<Mw(IjPsKMU;S)M%cKKm=+-!o%6798))VE0K>-Nj3VM$ zLb0?D^R3nR77Zz^tu(4cM53J(7Lh=FV~I&Of#ituXJLpWA+WcZR@S-@968#bh>jk2 zKg&V1M5pp@OLL@~Fzd)cg+)Y(659`)>?&boNwkfXgAVX2)+i2c5wVU9n%ek>$Uz-C z4yZPZvw2nPB?S!`O6rluKNwr0^R+Ov8xsaM&ZE>GZ;;Xhjl;q8_J||kN)m<mz$VL4 zXwBn1Ieij%mCM;S4hU?h13805A*_#QnH!{la)(X1_)X5Sxmb*g9#bp@lq35%$Ys!_ zon)2fN%nKws!fCp2YAqeUA8Q}n6Y*l=j^`1BP<IYGEc&r?K4jj(T3kY1cuDsXCI}_ zrjt39Bc#~8BS5Fh^Ogae>ylSfV?pKJM?9={*62NAH}VcRdA8k@1wxAimV<%Z-=Wj{ zDEEv^PA}v&R1?d4w33SoaSCgUNN9`i^OC83+mfSIGLnPLgCC$N$UFz8O9(j=xnh~N zkxLS}BF1ekY~<ik@NJNyiCoc3-U&qnp7-go_GGblXGz8#u=penP0Y&KSdN|5VjbLB z@i|EPBK2SeYT@vKkaQMe{b5N5vq2paSp99;M=fFbx>@icGJkZwA@g@hcWv44vdn|! z`CTUSJdkrMiyx+V(E4kpbR<$-2`-)V_%B2FCus*lk5zq!1^+Yt%5Md|Yegl>4sLyg zn=J3kk)U(0N0#TE-PfVWwMGqL6tM^JJZ(8g%d_SO;bHawmghV0q@2nE@tvFZ7V5Og zuoJv<h2V{($JeJHg5Cq<1y_%1?@n5qVfaCT!`5f5jFDX6NaseOdl2bpl3uj6oLfXX zIJb748eQUDd}NOJV<R7~j&ey!l8K0P2t)_brfNThrpww*CR(NMKO!CR$#H^CHO85{ zwH$?kEs-NVTFim9oQOFTcd;Q#%vp;A7^Gh$Eg@#{lOz_idryir*Q1rgG+7GOM41o! zmacY8<~FmCqmT6@5ONx$Hlre5oOj2X%;{NKZ>*9JXFi$3B2J6Fhm4#d;oP9TZDYXE zv1;Lmaga#-fr-@>AMK%-zC0$pdxQ~#aFf;6OSXAUNVzXYb1x*H!jsE3Y|JdO4R)I7 zWRH<;2Bs(5Je9s|gKZ|#lVV!_0A-sd*=5*eWScigw%LLidJl-p$Tnw~x=6M;Zge+C zc)Jk71tv4z4@E~hiX0ZCar%s`G7qrM)H&aiK(>kAR5DhZ5PA~JHqNFJu{v5vVcDk5 zKGyvemThi{$kGQA$Tno;rvqcP;ic)o4@*eiV}{&1h};~p2Kz-n0?DK&*5oE3uK#nf z1}noyLaebs^&f;-L+)EX<YEnNWxGi=52P*C>`g+2?^&vO9lgOa3`NCGL#nCaMJ$0- z1EW+heR4t~PO9Pk9cJvYoFtcO!0zF|53_rYR1;zMu)%}%P}n_^YDoDj0t1x8_-&+` zx3SEKcN;C$95qtSjSxD(<|PP|9V^uYy*-YayL%{Jn~e2L6&$e!Q;Z`(AwmS?8q4nK zzLf==8?|6_5WFs4hjsPfE@R~y6wr)B_CoJH!t*rFAxg;X6TKuGeGaiN@jAYeoMz6w zWb?g0jb!sjSweC8XKZ{p4reRpTuC-Qgo<D?XJupfQ+itmvdwnh($T^V7ELkRaT9J> zwFuFJB^x^1CV~ytDt)$%<r-Kgu~<W9LLz3MVCKVcgSJw%m_e3G5v5}bR^@}Nbc9R; zVuwsKIf1>X1x=t6O1r}eq=pdj-FYa!#c%?qB3*bM3uz!&M~uR@K0LU>FI0?RleY<4 zH?u><7VvC5N?J#@_Xt7-3I&j<trwBu-{nX(us&)IW*xTd;gKyF2sSr?b|KKGDcJna zxe#o2(^~R=0(Mk96SX;W4#R9`V*8?TWiE%;R&FBAkKK1}Zc3uI#M%*WcK2Hhuqcs+ ztnPYwDtL@n1igDBmM&I!tj9*6H=J8ox{d-II$HG$?VSi<qs1Dwgk!PBIq;7uoi@ac zKAm(vEIjaDJ-I8O6GdXzg#DX*-oJUk1o_Ys`@R^3`c4xL#8<ec`?HX)Q6x(+pmN7| z0qBv`Yy2qe6WZ8JZ|Ht7ge`j#ZpMUQawt1EKs@7YOe(gZ+lPC!`NRfykg`w(+J9O@ zTdq)B;xT)0iOolxDCba3>w^^W=D0K?_VFoR4M-nRqG8Kq=gTgSK0fqcLi>H$<)KhF zNtB;1k`UY5k&gm7)~WaCaaM$Oct%G_L5{s03~*rL^mX2p-^QEr%eu2+b4T}s;csAL zep|wg`B}?qp7vq4XBNj-l8yPzJe~J4yz8~$Gcsz!2P)vUnu|HiD)#d!tWqAfeP&_X z2jS|V9v1VR-rGLslg|w7AJAU>7R%nrI%@WSeS`vy@kuo{zJq3o9bxds&uJrV@Lmae z`52}|vCfE+R#>lu9^OZ!k1sZn#0C#jF?=9QCJQ(*9WmZDPFvn~eb5Nn)MLTO_WH4I z63R{)Tk6wfRRnT6j^`fJ#$qItX{9O-upLJXrS1n<OajerkC@@LnliL<m4d9kf~<SQ zWR$kiUqPwDJ$aAgAryA(4L<2fJLm_=_KvO1jQ%N@wU<;-LxyIQV)J~}0GN^T{`vh( zu%QO=0?77v(jlYC2Cv9$qx0dToyn%^^i1&fV4{vT!DDTjV~F%)r1mz#`xGs{x$I&O z=cUj?*sC~EF%(D7x0x9Ltr6LXrMA{O7Y>!X*I3~>6A9VQ!eSMAISWmab==C@8;lMQ z)KK|c9}MwsPBK$RBCM>!HU%~<Xt$#8hIkV&>ag+0hIp@^V?(?HER}tLhIpT_C~6P1 zeH68g?eX?wXHdKhkS*RTH0gq%r_fG4+uwoTT8=K|jV84oQvePclP%s@vc+R_JvOd7 zfG&L%s@DC8p3CPtqiyj5EUl$ui?=%YG)%U5&aOg>^d@yGdXqXeb_*&8^RJGCw@q&r zwCTNq4cIEs8&3_qAjgVma48U`y(f5Lf1|gQMrT5peI47vTpLFIX0m}tqm@#?Nj`N* zws?kPGaFEQ9Z_w9SmUAncwZUQ(A<^01%(;(jOgYusJ0qiH!ttFL1!9`29u76@a`2< zR%#uFD2C=Ce2)k1m86~@!JKT!`$lj3dMn1LKFTuh6i=Vqd)JAq>bXjo1J9Z&VYUp~ zI7)f8do*e2N3kVHkdLz;5}PAX&p|yO%3hXOYI$+sp6&ElWoD6`9tnH0x#8Un<1Mn$ zMHoifQ9leb-K^#)Lp`|9m@`q9_`XPWgObqJd*7>K^E`MMgkuJ_*F78M(t%e0e~uFA z8q8+Za<f^rj5e!a&4qOz26{M9EOA>FcMr~(@GLAtp-&|fy@W@K7wbri;?{w-M19X* zil;$28e^m9_;qk3yEr2~_;oN*7SZ%D2X5987JC`#l}vW_tJv2O?G_-AtK-~Z9gN~= zzbYhWq(CPuqSKh5{VHBZp~|5BDqchpl-6#uV2VIw%g!BS$BL=X%r=(YYR%oo9v)&g ztyafKOBfgwD%8*@t<&tL2-BJ>-A3aVJSJP}y&AP~HPP_7%vbmdn<5$xuodvzb--A! z?&+qDvIgUK!qkfnxp1|R__C=M_+Y3tEc@l|`+4i?>lT}>gz~!amMaZc(WH4@<fJnR zM$-Wl+70U@8$;}(q3zmn$xKGb+l^q2FvzQI?85lqv%bNsM$EQZM=kpT$baktf=Pi7 zDN8t8vdNn;*Zny2-zMWIo;1ek9B3FdgU2UwU}7JEEt85wao_iTg+Jf3RVd<v5dd?b zHn8_#R|`seoY-MO&_nL4&xzyegu7aOcT~rxP$I`#`W@BvWk;*uQC%-bb>NatV3s|= zN2U55)tzfcbt%mA`lC~_Dug!kVaj~Yjq_Hsyi|%k;mT#P2bb2m9b6ic;NVi5b8tz= zo?jaqdtOh<(8Q5K?L!=$vX=#=h(ryM(@7tMt2zi?Z=+RqixAoGs*cQqjS*76t2#QD z_)&9JcSscH2l`#reN<i5^}Ec52BPoY=rEmQR##9bG1u7djgCx2+vsFWx;`BGz0nQO z4ngC+(ZN5{8c>+fR=+p855^na|E*l&>W%Kb92$Bktv#JyEbn_eH1wA$m;5F8qtkN9 zT9!-t{n5pUB~U&0`=k5F3MT8d`JCBM(Az8h{^&r|Vl#w2S?sKcDLeVl{?q!S8*9A> z&jufX{S%x8kb^<kKT#faF85F3P3YdA=Q?P+w}ZEYbwj`BI%uK#J=amJ9~~~}L*cm& zhIFJ&rW1Glp6d|Jstx<xe=(lxLgcxQJ=9@MiuPQ04ENbMGKuFp$W&w%1DkJH#eDQV z*Da@DRUbvqb%(_B09nhuNhVG(g(GWdI0$7Uuvz4}?j15djq_Z$!SP%N3ny~durrkP zmX)<BWEVtR%l$cduJbKD1sh*XcrE>&>%fqbp<u|{@44>J+;d%rSj#uDoYwET?$6J2 z-JgSm_kZU1p$f(zQHP{@9gr$udu$yg>3&2>8Y_Mu;CKwG-jj6PM4yjpw!)v%Cle@` zE5hKy?Zao_Bm}Fm@h`Fli*d8KbKHsB`rseAwhPD@71ws!>w{POcV<8OzQT<WcaAU$ zZI1G6w}Z|`k&i6%oP>_;$k8+VwY!B6Mh!Pk$eo}P-i>tfNuQ(=pN&o=SUTu;Dkhlg zdE#Q6LVdxb-Roiq-4`3V7n2x5lTBkEg1M5dy>UJo6U<f4IJJ=DQ60=R@%g4i!CZd< zQXrSaIIgO#dwLyi>gCODV5p{Ipz&ts9BXp%W`|=<9vdDXh&h2bJNQUClna|?Ty2Ru z)`Y{=uss&iB0J!H#(@nVii63n<IfJiH^E+4Jb#eedpaw@-f|)?#f{q#ZFIaR=IGs) z$hlK8LGHc|#=pkuSWX^+e({7Y`m_OsbY;z-y$46|V1wRW#AlgCYIk;cTR5nDOS_2H zXEoq(A7}4Ca&L2BSn+6wG4d`>l@ia216MfPLe3v>#%>2$-;cnVB{)@HCBa?E86urf zk|R3q!CkYHkk~o#{g7>ws)t<Kq1!%uF72Kvg6$RDq`j}*De?Vq?yctjWWFEvvP(NY z&nl*KaA}7l0UJPne4Yrhf5f95F4)%rA3@T-A3_Lmh(L$29_`MV?}vr#lE`@W?$uRs zwsS9IHZpuGj(otyckeK-d@eyBD|(ifF*;TR@8i#48Jo3C&J^v!u?OSs%cuR>(T+H^ zOo&=W&VZva$YT+QK|{-Mq*wM!Y;P2wn^FGkB-Sgk@`)fE%b{Se5qEYN@#HkYL{}qs zb`o6;_wif29mB)bI$9E8FppV;oxS1!<~SY0O)rSeF-{-aE%+!BZ%ed1(vs*r2d_+C zAI$4hSXp`dW;*O?H^xMJ4dxvu^@l$2?roN>Dn8sFBwu!P-kHyIP_$PLa1M_TC*oY$ z)ymw|m$*rVNv12Th<$bVfa5{tY*36NyD3p;gWwau-I1Mk;H*yvE$hxg$X68VdNe53 zo86oq-?K!ue?n(=vHlv*(=H!y#&8pl{Cf0c#FHI}f}JFQSRSpz1)mt>^TebfbsX7g ze-FsYBmuUF9X^1-#p44x8D47&#xlI$l#AcwU6G5$La#QO6`2mmv9E`3dN+&vI=v#V zi*aAqX?a&i;=R5>1WsP%O$82^=ivPhn&;S<tq$M_FcCP8#@(Qu*TKmH@t^EYkK}(k z4!cW^6CV&4Cnq`ht@kZieGg<}mnGV19r|+4*Mz{+bnUR&<#f+`*qizb^13~jXZKU= zNivbw?XU2Bu45*ZVLqSWc-{UZsI@`l685^i)(U6vp--CK({o7Y_<4g{QFcg&$iOZ! zTq9n$O?VnizH7aEj34C9aSrJ=fi|^6I>)^?JEYrWZ%yftj=YNUvJ&KAG`n!gtgm;g z1h5Nc?aYD~pIb#XSt+tfrx0pi{4j)*&&11c`ZwOhr;a>5x=ps9#bm3G{kCWip`rYS zVta=P;mR>nXj0u_&J09irZnQ1bP=35>m!#G^vKF<p^5cBh#)v-N>mhAYlV(_1kXlQ z?{eHDc+<ft1;iq;4}wo6JHp7BOLD<r<*iODn5)Ne@NR?^CbrF1IGg-8O8g@_K+Iw= z$tn^o3;W<a>tHf;{L|q#9VTXPHE@BbC=B))eD~XDB8P{A-cF$@O>vuJLLMPHS2X?c zA<1p#VCH763nvG4d^j2pB;iO7Y1-hP+CuiG?ys<W&nORdoF91m<qYIDRDwLzX|FhK zDCG=NPiaAg1Hh2K_l{r|B)EaWj7Q;Ip?LsJl}~F5)b2fX1Q<8>o~K==N>=lvu%t`N z0r&fnR{jK@>duL@A`ZCEy|nTtbHLqqX@!D$lB>Fe;>tO8z&%<^mJolF1|oWu7qqp; z0XKe-xPs%!yu=|8(f(Km+|Tg>7wZRsogj$7lE_t^4(-YwRloy9Jk{YML>e(Z>1_NT zya!ix8264#It+TpRULk>HpLnT+~TV46mxW^;DFos*JgKeaIzgEvg``MYn&spG!REe z+pwkvj-xs}h(sfK|DzCDLUuFxsl$1QM1JbLN8R1jky_72tOQp-b^lMMs=jzMu#zv9 zeHB~CBMiwc)`^oG4?W_6`@881F2<oj-#l<11ug#RgckUzYh@?%iTu<-L*e+~=5-Xb z9r3}9i$^K+kVr0Yl|u*4)AUn^rO_x8SuKsS95;3N?F8lF;27km4kI4HF&x=tqH(UR zDZMS$NnOa>8j)QNk~Xo;IQusBaJ<xk-05*r3(OH+a5|sDNu9S%B4b4Ps5^zFS_|!O zK}cio+v21Su0mp+)D;NLrzy$&)@6Bq50cFPM!XdCF@8{al!t<REESuyo30zHnu)#R zAgQ66p;tf$eT5h6L0)^&<g%RN$>ic;{m7aj|3V@0iYD(Z@~$t+xH3G*w>CO_&?0vy zboXjA_%y=@{ha50cR}VJp63$^GVc(PK|3X$<iS}EVmBW~jEOj)b2ceJI4%z8-exgo z4@v|J4WC|7{^#~ZdGzuX!lBo(NF>cI#xDn4a?tGT9HqpFNbG;^jP^fQ%zG?%2JLlK z$A|?c*BM4uITPiUN}{+>s7T%y!WIwlsCsJ%TRiZLgrHYWbl2uA5bq5!(oL)8E&Jf6 z>bprMY=nv<Eg^-AOB4=HhjwMB+dqqhb`@81E}>l|_M2?Mn9#1zK+tj7f=SaruGc2a zS5kPGldx}<@G?iiA!EJEm1eMaIph4$vbT`OB~ftpSmBF@+B<Mzyvqpzl4#S&-sMmn zJFf;69>w&<22@0m_|29U@K&Za>3u%9@CFq+ip{b(#b%UOxt@>{ml(434w^fg%~Z`! z4?&FNR<0+??>9SXvZ38Xpth~u5AjaS_z)Hr3GPZ9jpGSXf(<w0-YaHG*190$T5cEL z7h~qFcp6#A@$8IQ-HGiASAcMb2)+W!qT}RYZflf>ISTDcJ`HtrHXYiP-OBZf&UOw$ zyPiY8a+Ty)u1EXqkM=9qg!|n1N&L!nX}@xCDhJncAG}|=hcz$0N_g=GfW&^~bo?UG zQ^W*#wV)V~F)V)NI@qt=tJ<&JmIMJ_$JUtuucukT0A)p!C>Y468x#yJHTPZsPmyC= zSXr@-0=$Y}IRyCqpaQ(c`;~*;7yQbRQ#5p(+3lG{Qh^C(giwas;hgp>hj_ic{L1k* z(Cd(^&RFo-lZ7a6mqlC3iC?)wifsf5f9yhREcA-;D$VPglZIb8+Vw^UrV-odG%vB( z01_|Y_#vVdemF5+dFR$~t@w|;==Kt>;5%~-;ytm#+X|b#Ah^<cx#DWt{z1E$ecw{D zHZ;dP$lCBUX^YKP(5@)Yax!t~i4oz}=dLrsjl{DYDa+~T50{L|a=j@S_i3@^f;lWk z3)XEtc^>1LQ^$Js>cFm%P3)-181S6s#CknV3pmAhHMMZ!72#PF>s2bz4pD<#$?4r| zE;g9AN0w}s%)IR+iW#3`Uhu+;$Y55ydXf)0TEDlj&dIw+)^E&;aPNO4m~|uzg(DW= zssY6u3lJWX|611Xz6e~OPriO5vg-Q@^%^a8aWoB?7#5}$y2z7U;!v*=`Up-1y`HC2 zgnC8jBhr;(j)-w1*Jd&28;N`r=S40~qnR?)D?~2DI(swM7Ln@{dY=dq&f68Ahg!iA zxsI@zf_5Xv`bu<uRJ2!$7z-W~KI9PYHL(x5xm)Ao9=&Zel`Ots7&tEE@S9>Fu?CW3 z=Cy!v;N$RnV`Q&pad#ilGQi;s^C#dKT4HvQ5a<<bk6GwVg~)%LsSmk*li;;S*em{l z?#F`&DqV^QMx-JArsG8p<7TD9MR2G-s53Bz4Ra#aNZz%$w-?M&yWA&_p56m!w>@}H zyD$~-C%1?E$(7n`g5l6|VkG3uZlk#GB%g9R%qvFBc@ak9Ma;D>VP2n)71O|jdj{lQ zatVDspsVPQxj#MnCVo5jUGOtp@H1TSXSm?cNQi%*%X{8;N#gg!eV1|)zvq3IB!18P zE=l~JxSyze|4oVC6ZaFoC*5}`C*gYnKjC}ge!};p`*G#p=hE+TKmI-SeV20L-&648 z-&5|#zo)*Ru>3^*PWXxXUEg;pC-HkG>USw8@p~rfci^L)<HwQQPuQNokMDQEPxzj| zPuQN+zj5P8%8BcD;3gdJ`hMJdn)|)mQ{Rt!PjlY|Kkhv>e&Y8`(C>_&px@2?gwI9) z_HG}IAJ?Axe&Y8`(C>tgZ(P6Y`w80<X>t9o@e{r$(h|NW?k9Xtx*yjLce(Vt+>d`x zecz>=`1ch2`1h3i@$aecCoDfvzY~6<e%JS1%1Qj53C6o$%1Qj5iTWM*Xy^ETm-`9Z z6ZrA{F8B%G6Zi?+llnJ~o~4}le*dmZzsvpj_tf{}+Eebwzo)+Mf*=2$f}i+36ZJdc zC+c^7KjCu|jd#J1Z%?_O_&pQ#JMa_syWCIMo(cP1@DsLY!hRS0gzri85Z4Yrbm@1w zAOD{EzDqgr?<x54?J4);-&5aDSbm~@C;UYHuJ5~)llVOojdv+0@p~rfci<=Nce$Ui zJrnl3;3s^~g#9k~3Ewk8zxSFJ;x3_)@?1D*0JI&kAG%MUJCL&Zfse(d7wGoh?UMcp z+C0Ih9p6OxkLYyLvm{D?VIXJsd=k$|l>X0|lKx*V>0<{;`cRkhzc*OYZ+A&w`f*7o zYs^H?|FKWf-Rd_zN7CKum;DJzzr^MJhh8k{TV2vmTq5b`yS(4oOC`O;C4JOol77%7 zefXy(oq9e|{cj#3>Hp)Be)w`pzs2SKuklOzA(wRDXC>XO|85v6>0fqv{-ak*x*L7o zb*-d#03@p4HP=bHTmP-flXN%w-2Hh;ccahn7bV?o{LT52q`Qs3Rl_9Rt$sfrF6kWr ziRw4&21$3T-=}YsbT|6Uzgg1V=ySlACEcz6uDeyzOI`Y}@-|6#qt6Lnk@R-}64mb; zcSyP$edbt_?na+QcS^b&edgaK>2BlimO@Ei>{7pjMUsAx3;o~vRY`Z7UoI<=bhrNd zpHfL5>QesR(Ykz>^xurp`CZ=sm3t)p*DmSLjg|BVUCKXvzkWVIqW;_PfTX+CZ|XQn zzuKkzAC1@LyQDu_Ch2bD@8OA({s))(-8)Ir=ed-B@Igtx)Fr=~BI&DL(pNn!=>eDW z2TYaptH3xUYQL)=m2{Z2CS2b?^O&SJx;+2D<B~qf<@uo}B)t<L(etm>49dT_l)s@u z@(*(<|DEqjdbdmZ>)(@fxA|qzOi5qj^8DXFE$I_n${+HKq`TGctWK|UDgPH$l7ECt z`8%p5{SBA&h964$6)xqs|Ba+~yQHtRCH)sJ<$vdSNx$4B|J)i$Z*fV#`$v*K-lhEd zzm@b0UFdVgJV|%!zx_Xzbhr8QZ~sox-R93%e<tZ20Ey^x)!$3H+x#-AR?^+(&maDy zq_?}&|G@>4?zTRB=NFRhHh<>UNxIwo`Sia^dIvzF`i=jkq`TGc^g>B@n?JAom884X z@7-TZx?BHUwMf$4=FjZ^lytZG^B4c0q`S?ZzgZ&bZu934mP)$Y{Q0|OlI}Kt?j!p% zeBA1nfpY`&`7f98@!!9b^vN#tk=rQgodAjY@3c;Ln_vEMrR2|ZDSr(GTEJ(UOZq>w zNV?nl@X}gI|BXxizP?`4D_zQOZk2Sm`Yqfj>2B*oX`7_yyOjTfEt3AaOZt@Ul1}_# zBKfv_hoo<Gso$4&NxB<-uG}N(Zu4iyUP*VGKNr3t>4h%u|JFWTzRUcn#Y0cV_s4j= zPvv-X2A`k#BI<HIvJJuaIxmb6@ge?(KUQ|m56`>v;{yw;2R{F?7Y6(Y<<f`niIqI2 z@k!p`kHIglKL7cFHBJt~r=`=IA?1_&!Jj1f^+5Rd0fJBbEPs;VzYK&2J|_4yf2G17 z44meHf=}{TD*W4k|Eo;FC;2QD{xsl!VUXa{e2@yi7C2W87JSk#q{80-oG*S{@JZj0 z3jZD8?8z4VblUTJ)N!s)@Y88eTGM-S1fS%;RPXaVa9;j|;FCO<3V%6pp82HU)B2bS z|4rcEcZuMWJ|h+W5YYA$mkK_~kE!rWfd9G61pi}c;6Dv~rSVC=OjUk8@PGJeDWBxc zRQN9g|Aos1pXAR}_=5*{JcWM2PlrBl1OBa72|nphQk6dq_@U1Temdj57WjuhEBGC{ zcu$h?z5)3EI8^Y{q0e`KKlmEKPiMSe|1po}=(U2M&UhaW{28AU{B-8e=YfCw=LJ8V z`Exn&ORg9EblUSx;J^I^!B3|>hd_7wFJBb=blS57_!kWm{B*|q)4)HKFZk(<_j=&h zju8BG=<{XZzj&kIm!?6VgU|PPeoc|z@kwXA-v<0Cw+KG*2mDDwpVNS!Um*DDjQ3jL zFZ;6Kr!(F+0Kefj!B1zrzXSa5-68nt%%9h1dOUZN<t08OPo=8wc;L5Lf=}{QD*Wex zf1G?E;*-vLv>f;gf`Xq8eZC2N-(7-F@>r_(8ItAkWE2TL$uFt!OMw5MqjdRcw9nJP z|Cg@{KFM#X%C86hXG#U1<hfM%F9ZL+(fa*0db0U*@CC5Lx?AwmY0uk$|HRh?pX9$( z?=ubf58tETCk^~s;D7Qy!B1!Y+yMN28lU9FRPXZ+@N3DZ3_ir4r^3H}5HP+e_#{uJ z!XFR(*EK%Lm#Ofd2maF&q<oS$Q{gWM{_|ymPx5Cf{5OF=Ym(rTycUC>fS(^S*y9;B zS@21}7lWUGpDzLa-UkJr^nI!Dp9cQN9~S&hjh>7?>w*7!jZgAks`6h3{)lf&`J^9A zg+KV?!2gcmlfEz&{%yd2>ruf^XFZw*`~!~(KIs!vm0t_|ho=iZ=@(PsZvg(hCj>v8 z_IwBUcg+y|x-{PB`fQKqw-tgvB8~SM5B%SKSMW(cnd<$Y2mVvv6Z|XEc%S9Kf9U&y zPx{ML<-ZC1tDY8o(r2c^AL8?Pe)0psC;2=TehKhrKO^`gucyL)8u+<Yf={wiD*Srj z2df32^r5NnUk3iwKNS3Q=yNdknlJks!B1y>zYX|5n=AO~tnbr+zx+AD@6fNGY`oV3 ze_B}Z(^-!;0DsT(f}hU%{toarz99JNtnb%fi23<%1wS2rX*}@n`LW=qv%WtM{I;J6 zemd*>a^Mg6e}bP*d%g+$B^p1S_8jsF@Eb2l`RT0hCBVP*?*%`d_Iw)nt7`>69r~;X z{%?LR`01?gF9ZL(|0MY7tnY&_0{tuy{B+j$+koHr3&BrkeV+#W`|1Qgo%OvI_z(T7 z;HR^`Zvg)N|0ek9wC6j(|LVUBKIxzNlSF>G9?HVjUkN_xqf_CJC*|UQ2!5wVPd474 z2mXI){B+i%<-osYv6N5xYyKp8|2Khu<$nqOwlwgEeA44txkT{O;g?E)|KfiOKIywt zz0cFYzwCbmpY-3U@auv9t=|ZKI_>!~@N<4E`04OVgJBCa=YIvC^yR7E=QiN~aE0KL z{yY`_G~nOfAoy|easvLd7Wi3>f=~MORON2~{x6#ZKb`UZ4)6!97W{P9_v>K`byDM} zv%Zf9{)=m*eA3USdjIEv|I4-deNwFNEyT-vJlTs$W&nH%5L?yRvjM*k_y{1jwzKaB zd<yUuz$XFyfZqko1gr!+0vV_Ra2MbVzy`o402c!O72u12(*d6Xd>n8h;A4PAfR6$W z1Dpn!3-}#C58zb5gOEMH4cG?w2;efnhXLmUJ_I-ya0=jbzy|>z0GtdM0GtGP9bh?N z4&X$<laSqEYLVRm_$|N|zzKkh0mlQr1o%zB*?{8!9|8OZ;N5^Q0m;4v@P0r);C+CZ zfMWrVKnHR!;4Z*>02=_u04@alI^c_dcLP2JI2v#w;MV|)080Uf0hR#f0)7?H12_us zAaqZ~fNg+9fXe_20p|nW1vnQl1UMZq2>1Ztoqz$rk$~3$T7Wr#0l<^c-Q5A$0r(Zb z7Qov97X#h~_!8i)fU^O=4EP9O0pQ($w*cM(cr&0M@Fu`az#9R{esTohF2EZA8vus` zE(FX6d=YRM;8TEK0-Ol=MZhA!F8~e$ydE$Y@biEkz|R351pVd#wgFxTxD4=G!1;jJ z0L}%x8gM$`P{0QOKMNQD{0!iAfL8(L0Qvz>o`<;`umkW4z!t#E0T%-f0elJY(}1%9 zKLz**;AMb!1Lgvf{tUw_+Yg9gpPdPa=`s6=*W<ymki82K%VBl{AlQcNg@9m}vS}|2 zY-09PfMBPyCjvr@$Swke_>?^i5MpL_E+B?fHcng85Xe4=!4A^RZUY3VWiJB+X=Kj_ zM3-jI1w<EQPX|PkWrIdNsA_fq5U-YvHlw1l@of5J&&R`YJ#e;$6EzHI=-1GrVFzB4 z@EbIoui<PBCu$hb(66CK!wyuA^J_R?!`T{6)G(l-Uqg?E9cUEJui<<RXKOf7!+?f< z4LurmpfNeWhVwO?t>Hus0~-1@^k~?DPT>3+&ew3Zh7&amXz16_qhSX+kMnCdU&GlN zPSh}<p<hFfh8^g1&adHo4QFdOQNw_Sehobuc7RwozlQTQoUP$R4FekbHS}oM0V3o4 z8q&N&*RwU8s9``uzlI(SX`bQy8qU{nwuTcm3~1=r(4%1oh??_jIA6or8cx(OprKzw zkA@u>44hv>nm73UHJqqnKtsQV9t}G%h&aE7^EI5U;Y1As8u~T#XxM?woL|HF8qU^m zqJ{wt{Tg~S?7*PK&w&jZ&ew3Zh7&amXz14vfb$h&9Au*a^Z5=<Mz}t$Z>#~G(Y3Lk zKZ5&oZS3V~uaK^deS8bXHC-Efcv_F>+StF>VBFBPv3FmDiHEL@ef#U6OS(4p?4Qxk zGxqDhMY~bDu~*-Ld4R5seflpz7j$jx(a+cE#{N8yCS9Z(d-H$8IHYT1U*14v;cM*4 z=Yvk@+SrdT$Gk_^#$LP)<AAQO@k@h!Ubm;Q2QSs_Y3#rMS+}RL_ui!IXY9M@==L=B z+zWJj8vE_AZck&c{kU#VW1s!Ex;>3O_DbEJ#{L?w%I|CJt$(81)7V!p((PsJsVjAR z8vE(jb^VOJbe3*UV;^0u+tb)X{~Qmb_A&O)PwMtG_Rc@i?P=_r7wGmh_RN2ypJ(is z|4p~2u~)uOKhM}FkI>IE_Q>z(_B8g#x%zp=-uPnuJY!$HUbm;QC;o$OPh&rvulvu~ z3qPdW)7S@Jpr2>#fv?g1XY7B^>h?7DzQww|jeYNTbbCHL5e4IOLf6mO?-D;j?P=_F z|ESy3*yrZx_civo!*u@}``b0TJ&nEXA>E$FzIK9s-hs#E`QO*=Y3ygerk`i*WvA-) zH1@Gi==L=Bu!HpTjQ#5u^z)3p>nz=##=f;4kEQw<d)D!~J&pb9Q@TBkz3O;99*liz zjc!k4kGe>=r?EdR)ctGhO~>f=H1?&VbpIH8(uZ_=8vD^7>-IGEq7Uo(8T(LM*U#94 zcI)~X`_Bt?dm4Mst-5~3zVj_zKV#4Nny#O*-~5$+e`BxNs^8DpXAaWOGxnHw>h?7D zm-}^njlJc&y1k5j<tAN!V^4XlPB-?G#kxI>z2qiMFUCIdfUcjhhg_@a#n?Z-rs>7l zJ1R{t#=h~Fx;>3O<67OG#(wc;{XAo@c)xyLZlloa)%tm-^|hs+XY3E})Xy{ahTXb7 zjeX(A_4AB9;r+Tjjs2jl+q1b<o_B-pKVu&_TKAu^2mFHWKV$#*9o?SB-mgZtr?Kz5 zQooO}=lg>0FJr%VrS2bNuXn5Ne`B9luIba*<2{M|SK^y<K;G9=c2BURY~-|WSCow` z9COPpw-`|R_=A<x$}6TsA&e;;nH<5AB9fJ1Ng>HlP>6-+Btt<VsZexn^gFxP#vQ?_ zO%fDIx~0q=#i@-u3R0vt?kKu8PV2eXCmD)Uqohdk7PpioLvm`B49TgN3sT{f$EG|1 z5_^!y@2<+nCf{2=X<9VF=~`=G>Rfiu<nkCa-E67QoZ6>EG%b({5$OrZFwq;Php3;Z zYm}<SsnDDnr$jV0PKD^yI29t&6Vh~C)94z<kw_e(eqw4wr`BnpN}&m8J?`;N%~O}^ z)IBw-uDu3Me~+9t<*^6jUO~4&ddN;Iq={}?B0Y3qB_?RsH-9ha`W<wA(`%LVkeyaZ z6Wz2*dgxB8q=ycy#A76JBkER(C#uBg`W@0mcUmUx4Dx_PV<+(oIjxiK6P)%*H-l~= z1JW2oiQm*|i=-tvZ<Q1ai7}*~_=!$cQ<X)0k?vX7l2YP0^-EfkQ@^BGPW_T%Au)#3 z6TiEzyz}71So%RJu$(%k!js~n$T;y+oqDDyq&Jk!y_bSGzNdZ#*d(}l#Pn>x9q zJ9TkMck1Ahu5Zgz+?FYqROj8@(&fHG<-P0Xyt_+&+>W8N1o>%vIK9(5T^H+`?!3P{ zhN*!ohEoSu45t>Z7`hKMh+QL7%4`t$z+gn7Ikievp7TDb5Ro1;?<IS~^bqwEbq6IY zFKPmGMRRJLsywI0sSuqSr$R(}42inFqpq>@2Cj(uiK!8tTBm_3g+>h(*T*|GPhF~0 z_tdDm_6GE#SY2h8RHvS9>85fn>9`$3l)cA`Qw{h0QAC&^cal`+-AxsH)!b=0mvrad zUDBO*cS+Y(avtOI_O9v9`@3VvlcPwh_cNS2xR&A6q8A3#S{LB++59gJALfsI@<-f! zbHNS6M+`6U`)?dJ90`(~KWx}dBS!fB`8N&2U;0eEfHY#0NFz4+@#)|DqA0#Mo&LjF zs0zJM@6kRPZ5MjjR@ILm_+Zc9a|<Q7e4e6=__S#pbB!`->y)++`BPR_G36;3#+Xl8 z*}b6$U?|f2lhv!dBIp6B9K6`<XxuVX;?e2llPk(9AA9oK5Gu<`g3;+@=RhAn|Mhq} zP%*kS8|CR&g|;yADJz@uNZCVAls`H}?)84ZVY<8`lLh7ITYLxV%tuTT!J+s<Wl5bz ze`y<(>?S;Okq`epyYPpqk9=eg6Z4_>qc2|hJ%7d)*{@mmTlZNMajmHO&FhN7g}3;Y z1}=m<cRxHCw*|w`z{~rUCE+J?OC~>_Q!@GC>q-ia&$uXPAB3~xHAOEKd3O~TG(T}s z_n4sFA-77rM~Vto&ajFL+I`hmpel$#?0YthABeNjR$`whvfE4Tw~FoU2kC`N>^Dm7 zcT2)Z@^+VcyAa}~a>pUE$c8Wd21c0!7ul}@wP&TzH)k(?;PKTR_`M0gt)6E5TFrOi z#UH<agWq^2#Q>%lg1%>cD6FRF4#eTI>{V9vt9Kwa)~PES4}HoDIIzerZGqeGqQ;Ja zMb!;~B0JOo$L`ON&B*`H+P45kQJwqmCIL1Wm_-6cL|HXF0)!GC$`;TJnSoi^KokPl zf`B0rDv+4$@(>85o7GH)MS80i?^R1%+tU8ISFDPuqV6V`2P!6jh+r|GLgK0*DujpZ z|M#6avurjS(cXKK+3!5Q^PTtmJKr%WT6Vo2<Kju71|cOOUKm23Gu|o;nHg^rhRls0 zDGI|9y5h&#)r#MlU2XWC+jXSk%gl7|p%^%P6S^wCG4V(m-jH`$oa%8s>E<AucR0+o zh_1V`^#PP4bHFplz)5U68|Wr@Z-Fi4KtDjIx~!39XSE(Vym5sm#Xh~$C*G;b^=iG8 z){HVy<tj+{ZW|D2>1PJ)iWDKYA?#aEl$Px;o)v0PwB&e)n%q^<X2x3_>ddYd(pgD| z=L}}Xr;sj%ba=W1sUqDF(xH~jj2}t5k)#_(x^XPEf9EMoMzX4mR2!*P;^(3CKX;f9 zQVP7k0;`>{GPnW;*F&Oj3La!QMvuJaH8{+BQIp=H%2lJ}RU<i#j&uKVocl;G33|)X z$Ua_QP6U4jGL+S>K`i~en&HWnE7<CBR4{~26|7nD>>lz<ajrN|WbgY>Sw|@9S7OO? z0Iw2Lo!!^paY^SNB>zkq{IJ>W@87qeLINe7&h61|)0c4b<0xYMr?0^ex&H}7;FP`r zkno5moVwyO4WJ*cMgc|`iI=UN8OJ^C%(f`=l{s)0I(yx;EPq*E(dzm4$f7fBv8-@K zeuRy(up~QsPJ4?PGi2T3hsK}L7?fg-Kchz(!&SuiQ?j&h<^R$6L;OahjPb`X|GVSQ zA)JF5^iWPFE6(XyKl~HNAA^pKQ8Ssgp`%Cnn?`~jFIOTTR#zK;+IYMa?t}PMiJqZ; z?D#Vd;ZwkK08;^fX#9z+e?~Z0gVEzp4j%p9fX5uzdm!G$)I-o~i(b0c#vXa`F3@!| zRPS8qFfNUBsxQ;6NgBDR;}eCQ(|Vyx-@%44bc&)j*`|8w;*>VUse0)~mp0v^O-X{} zeZ2nl)Va&5SAr$pJi${WHunDB_p1D~Z*quUh{2PyuUo)z@B~p%4-KU9P~|P^Av_qP z%8wI_Q{~MBN2>BhymYHRL$?~$!|0ASC|YI;^<VVnt#=iyslTUZi@i%>$T%D9qi8SF zCD-_uDGuaC(iYqJ8)vuhH_lG87i@jx-{&;rjTxpz{L^X`m3f!FUkc^KO)I`iHKq!f zA%we)y|uelR6oE|U*xcMO8C_pdcpyZ3T*Sax`Lv68+#MC8r|gvC2ta3SQzMyF%3Yc zTnixYP|Wp8d>jaG6}4Hmj3apOz89s)ml^W3#jhBM2Y!RsitKTQ2<yReMuVJjM9%oM zRYUG6z8-54Qzb8<4D>?Hz}zbAObI>!hmsf$tszt+hV)8GaFSR#d5Bm!EzRE&k9<UQ zx8fa&)Hr`Di~(r-#{pxg?h0d4oF1K4Vlf~hT8gNxNWS?fXn@Y-wEbUEjlm=b{Jeyb z^d8a608+}$M=Ju%dGbI-OQ<8_BT<|B-+Tz3hwjG=Xy>#++((l6=EJZZw*Pao9n5VL zdbK_k5qbMhj(l*Q5$DOtELg;OR+=6(;tU>Q7H4`$IMs}}rQCd|qDgl~oRi4DKiPMP zGr1(0CG~<B!pm06c6-)sF}X55uT!;*cMqi8Q5z{NJgdGR533)oXi}^9pGc&98!D-9 z@Bbw6o6*luWAZ*jEkh{J#T*rpt<o}Wm~VLft~)c1z+CTBLZ0*S;+quJH|U2RYX&>- zqc5_$&}B3E%S)<I%z@A`cxXgjXe|SVoDq7B7d<DkqI<?!IpfRL)w<7ujy|oeG&V9S zs4RC-d@7Y8l{smweqhS8t`P|zF8Du3b-|NAV}wd&sO|>)2?7f+xQqyBnEI@%(q<>$ ze7JJ@kj%=JY5PAHc1}mGBUqN}^f=`3UfS%Gn-6DJe9c@b)A5?h7})kFe?yrqRT4s; z(CgND{>tgY_6I?T>IhK#U#~qu{e@Fw-B{~0j5c!N6>D%JkH31bvlOUjI;MfunMMsw z7==-keDgu%fK<5(HC@=LL{;?R8Cp@w%?G85^URf^{~jo2+?vxL8AFj*j2b?nmmX2i zy2nkfv3S<x&(uFxm2KFt!FWdnmd{XE4f7#-?*wKab=WYoH&;CCHk({2uw|V$dkY3H z2-Pcr*1@7$?^(Ce<ibnZZI_V+E7R~IOmjQxusCE;hQ2;b^}>MlbG`e7@=EygT(AmW zs$lH(Y$*+0!t<>L8UB>pXLz>`-I@L*jQJ=q&VyDPf8HAJy09(}k&?^-_3dD>=Yq|B zn{56<EW1SYk#%o)Zl+l@f5YGXh6zvHMm)@29~>>IHNg>{3z_awi0o%Z6xe$+2=Qn{ zO6ZAhmOpr$8!b&%KVvWFEJXp<>piRR=s8y9dw4J!M|Pa3-KnD5SeY|W-2WxYS=|3w zMU#Y<`c<Wpw*Q2b2slXGe+q>u?msCeo~u*_?+;cg!_cM^FH$wHNNN2qy~%{b;+^#1 z_F>Jds+^jNpk}b3rs_elkftJ}%Bd`vsT2%Cl@c!#@yv>mtt2}M%c!bKafs1pqY+jN z?^Y@DPCT<>3=Bq}T`{3sYoZ>b|9$ET)Rfj;C^Kpc|Ld$$Q-US*X8cdjhXQqEaNNJ= zRUIkC=RQrDsl?0mG?$RHWxHv-_YQ2M8G{?+_2eN+{A4!KP}IpO+T>Jpy6Uu4tQx&f zp97L-cTU7&r(m-WKL3I5HGJprJ&AAr`A}#vzW>6v`a&r5Ccb)nri-D_p8yL1SK)ge z-y`3LLW}S?(MWtR;5!cU=YTeR1JU4-<4mo<JoMjLN40zhB2eU?sZQ2WE6^3As!V(Z zlWu|{Cb<NCsJaBnFJOoD6799X{))Q7|1|@v4Sl_nzp7{<wu<gw4fZdne`h^&8#dP3 z?WZj(;wu?F=vez{Y{G5R-Dy9qqFqFFd*gQlE$pCdG)adt%*J|#twmt}WB1c~f=`c> zL2oPg{_Z1-j_a8cSMieN50D#F^!}GYhwY)jeFWRwVyNtgM>lM7wf#BbpC^^cez8dc zdbFO|j0HKT)sE!V)<+heZ>u=HAxP)Hvp(92@Nu7s{rFK%vDQZvG5U<X1493?Dtdji zSX95md$k!yvS~|g4T?GA?5k8ioN7o6&9<O>sApRviqCzJIsB7?)?KZNr!CGsLh+4# z5$u+VZ{0!Ke$Y3ZFkKs@_$EFBhm0c``mS4RPtbpps56ooM_RuJ+a_o+V`mU+A;Zbj zmgJs;xu9W|gjY@*df}BrhSq>syw%Cu5uB+`-l~HgI@m@4%ZEDoY0|M(1V{C>4M7Mo zJ<$7kCev&5Qzx^UDAG^>1EV7RT0+{4!0}eRp;c=PodFRuLyHYWL)#g|+R<>rhLoo* z)1Ag6D|#-)^Qh7uC1S!-CU_r(p>-yrLm2L{hIcIBu4uO#+6=sO?jKh?1FJB@N(}_3 zgfnDJ@gT!K8ZwXAe$<PQM<t_y$0HaIl2|#nuT%d#gN_*MtopPjb3L{W)xBx8E0Q8> zous<AsPi5d)uZA$%%+^*unK~Dwi)d~QR|oyi$#n^uc1fMa;t<_&J<KxOrFbTS9j0l z1Xq`gvjr+PHa~Tb5?-nIoVU4V)yWl<MV|91uBEDbqfh+W(`H^dNUWj@w^ak+B>uA* zZ8ms6%d>vKfmiNJ(z3VXeZ6g1?*%8JUVn;xpVnJ3NC68dRHs466f$A8Yznano%l}} zO~LDcp*uy`YPmaTM?syLYEctX(Lh3)dyAx=VF`0kjmWRc_I@gqlgvM?rnWgWDb?cC ziY(c*e=vax_H_yr^PnA=qG|HeUcV&BE%Nvgr2`#Wsl}1^of0?^r)L~(_LhT^td4M~ zlP#!3LHb!24-0Bj%W3rAbOQ7o+GGn>Sw2@voZi|g5EL)^0xP+Zi#dkN3X5Vs8pD3F zrB+Ib$9$nC0qa8dU-WgD_si0?MC~=|B8g-urdM*g+^Ng=F<gEi8VM=kSok#eW+mQT zpRrF*nMLvXS50?l&Qu$fiio^Uk+qqr$(UASa+JMM^qfy{kJILD3Du~Fn=S+{4hRHq zGVk|%a!EaycJxge6w}USoV6bo<a4TfyEgCf;Qen>+FGsX5aHVlD{b8t_fSt=H}yi` zLVO@JAaLp?^9P=jMB=hoMKr{;(;#v|6y(#v0eDUJ!hpc%H<_zF$1kb1X$P+a)2IjI z$UEab;!xjRm89e~I?#`&z3(u;>#)Bo{Q5Q&n_}LJU6`#7`*(t85X}FyAP6a~LCt=e zV&v*hsS><Tz_wO?AF*7UYBiybKP_zf1MJY6&~@(<&wZ`dsq6e1XETndhwxsxcb|K_ ztnSWMzrv%~?TP?H#QRiFkefpJMflFFbiXgFt=Z~#vfAv_@~gCUemq25D`6L;MXZo+ zGzmN1?@JX8`%h$6xZhVoHI6(f)rzy8wT}mFN?tu9k1}$qU$F|9=S)pe?Dc||=31J( z-Rno!>T@3`O=%Yqr+SvqLvOoVh#;o10p;9>TJGcCeTtyeBa^7vAft-0*OZMMdY1}W z`1NO)Y<kvJm|VGzJd{2nfOXp*Zv*DX+e(*F6SOJVE{n&ZPQ0R4Z}_>%JzMcqCn)wk z#b;_ws9%2Q>x;h)W}=IrD<yp3qltPDn}N%=1qWpqqunQDW>pYV?s`NRgYCzxy<%X( zaO_G#t8{hKtEkPX(h0-jh)FjaNQ3`qKcbg?QICul)dLQkifK1Ok1pZ{MV;4JP$xe- zDO;HB7t*j{m?m$nll|meMblz7`ZskU<S7<mXOY!&*-~uvtg@NhQxt7_&RKDZ**#J5 ztg@I~3+lXc;D!7GOCJ**>i3HJI_;X`Y>eujZ{qi$W{mqYh_ddEwW#8Io!0Pg&^t*i zy>(vNu!J|0_>wu8$1y#ZQ{1<et->rPWOApMtxBQp)SY@I^s-g`DHeJRoZ5fu!Ec6D zL?H1gnb#Sas)qx2#P4N_0y^G(ipJv2a2#qa`d4=!Vdu-V5rtIDx{?aH{8N_|R*T5$ zEW=l8^sQNVlGQIz&n12D^-9hQ<+IVUo$4uuPXpEzm?ibkB<Iti$;fP+jjG;EGUmxv zXl)cR+T9&VnyA^BcN{DkEwr|0*>sDECedq2O2%1enDY<oL`}A;-W1Sss;$`lrTmw) zB{*dh5u+Td`b2-&X!oYz*z8}}a;6^Am8hW*S*&F5Sy6a=x94?M5rikIE7*>cRMBi{ ztQvy+ePbzp(2WU?`?04g`Nm`#@dDIdrhr*2VUpCZnDz}Se*;VNQuq<GJBFxdI<)H1 zPSXfiY=BeNMWIOD|4gxUufQZO6b|SOs#Hd(Z%}m#8=yz-=w#loEnhO*Fk~FjT+eJZ zOz5=~&&5P{@P~68^^-E0irmQ0#gaA>Ia#_u(dJ-aE$J}groghpVB5Z{!^t;#4nmA? z*99_5Ht6nkKc{G{exWmCm5W!m=&DtN4a0GWqBHFqhYuU05rgCE?rbzOii~H!demvg z?&;aiFcs|?s@Ccuc5r-?83!7d)DP1Fud?xSj~%_eoRXcFpDYT}K~>+g#1<VUZNjFF z$bCoJ?(Fz{+m%7!gra`P5@tW-UgY$>JRj6~9dxDDddY|Z?7yj)ORsO29r}onLQ{~F zyd<*6=i62cp(r4nm|?j7^k#TD^TU}H*I5>zlJLx`LZm{<%{5N*H+rAX3Xa;9QyYlH znzFUjRHyn$`>fWx4d-~)w@Di7HR!Zox2L0jV|-v`gBkL2kTPb-=MG)(SH{n4bYH8K z?XHJI#OT5BCuN%^FIk#zTT)_MUg)wdw9N)9OX12A+obFqTLD~5S>SRh&Mzs+Ulg{} zaZB7qMTNz<WQ5+fxVW&`R-C_Z5!Uavg5ttuglihO$aa5GQK#Or3f)T=Eg$T%<rOYp zkzeexEm^kkfqa{*(58Ddu?uwBIrC?Tv*h_sd5V~I@BGQr@5vTtQg(5*4=c)8`$1$+ zY61q~SnkH!xwCWkL#L^{LLq}rSk6_{x%+U0;l%fFn~qQ6F=gy8<+MMi?~Z*3gq_}s zbuq3arXK@DCF^q-5K&HV00fEj7XX2p{x?93H|b9TLcYmFHz2ku(&>I9*^l9HaguIU z0LlFhZgykA#PB&>$l){&GdUd1;UEsL=P-%GvsmvCoi8~27l->fY~b)s4qpPqmPq=a zIDC@ZYaFiQFrLHn*q0;xQyhK<Na582B7f2!1_WyQ5<tp_y8taPXX);JZU;nGq>tq0 zet?*Or=JB9wCTU$@F76L`xPMN`zd5P(WCqDl<!_Z%2&EyO?VFi65iJ!hAo}+t$^sh z(iK3mufq?OBlQ$yuEGzzr2hgCMUd{~P~va`ha}IC+<S4@mBWh|1<8IFhc9sWHxB>6 z;Zq!L;?M(#qGEg=1Rvt|1st}bQj+~K4i9p;heKMnQn=4^_*ZWKdk%lc?JEE&e^vuh z{uBWs>V5J7A#W!gGMSiptPay{fQSNX6$IzvCz8)(3O5_=Y_5)vUtQ6`3sAzU9}JP^ zhoamQqTC%(?$1S;iB=@NucFM}D0<tY%#gj*&OhaABt0sJNb{B`^VleJS(N|(h%%!N zwxf4zlv&?sb}Yxm&%)wm3tiYqonPWwnD^lPyu}aBFIc!_X?vRo+zX32!}^ST7wgF* zxNoL(w8~nVzpywOFWQW)+`MH)5rkl|yuA%bD@&HUCKVQf;PMF6EPXhb;Vv#%m>0<# zl)HRsVcvrs?VT}gCl}}Ecf`%YDCNork84LKxGY5g5iyyua78`_vibMSj<9qVE?m^X za(3|&SH4ruxGe(l9*l=kRvc~gs19g`m8moS+Rpf!GH%bfE%H1dZ|Rbv`wLN~KfvEa z4b)`A2X(dcfJ1}}W#iB=qmN^Ju{4z<^<&QiXk&tuL9Y!2(9i$m^8ka+3*;AS7W(5z z#iJXxy4ra_3y;?V?!$t35y@5P>^SLmB(HWJpm6NXoZezij~l5kUTo+Irs8Ay5XG-c zybP4r)PvF{GyHYn*QNN;hai5kGIkGU<lq#bg}f_jjp9Ax8jdXir*AC1tCEfFCPf2x z5*)D%9ExoU%%`y%VfiKFbp*qWZz2saSha>N$&B5E*GNz|qYG9`PTxazk+?M!3*8a) zuT``PDh|cl;JO)8*?C~%@J-y!=<7(ni7&%6j|Z`V$RT1tdX~Zz<Tl-jsLsd<)4dLK zPjk9Af-Z}zPW%r<+&HBOf=$Dq>FWL(e3&+jGr8kv|4a8%Gi%AB{6bra`~H&EC9eEs zwq@=Tm+gMcqtWj!S-5n`!<a5(B3qJ=*{#taZ8`(`kM#OLN3TE9XWrucyazi3i$pN> z2!0ou<0(<?6xoxSrGpOcAL;fai_v5@nLD_5HlL<?-5=i;Y?YHT!U@l(Cwtf%QiLbr zJInESJg~dN-=~5bDZ*Py5L<PmC_YRXc#}M=xzZ+70_G!hP>br(=Mx~oA^i{_no{~+ zK(eR#1({#r<{g0K?{D0!0g}JvfP_~7Nb?^Gm+%~bM90P<=IjhV6A(dnwQ&f*%p(D5 z{__Y~KuyI*W+Q(w7i~8`f)n`*D+)i-Tp4Aid0C{pJ|Dnf%W995zhX%qmjr>~KFg?^ zGjTT}VoU;hXHH<y?aV30`~k!MB6s9Gpa7$?9uVUB@0@>!*?IYWlKcmj{^0pH%Eq(} zpUFl)`gpfR*Z$ydeUz&)-WhrOW5+v#Of)^%Z!p{lrs9k2|9|Q{V06aFagp-?EZ&zE z=jXYM%=zE)1#GeCu{FkR!))XW+5%HQHeX0S5GkTZWmJX59km@astp7Tg>m}_`2q|& zv_2t~m#9PImuN?-tIY$NdAu?WPly+FC_^yta$4<3UTq#=<N3CV(<A<HqGu?OU2NzH zM%M!hECnCQ`$hj_BDugs3!uY1fN<$E$^zOSt&Dkqac^gwsJ^eL7ilKYSJAR)o7(DW z>$Y+rM%mHGqhL2^x<kXp@o`r+me`=|^yOtL-m@+n4rjn&bk3=saPq^=jF8u#t$ypi zq4gT1CnMxpqnLzEA@r%9HBRWhgU+d~v9S}0$!Kmo^j;YuH4th5<EQW_9aK2;vQp@j zCIS3@jgGuAsf_>5d@$QL=61!`#SfG)4=6781ez^UVvDHOiGh<=F;PE3#+(6Ez~bPS zarS4CwMD5(LU|s_hxQ=LN#<^WC@im&)OEXrTEB@-O>k(I39dTKX4bB8s;3p)4|<In zu98;cJ)%3fQUS#@Op?xN?p=y{I9q+Ug-SvgB5%#cMI7@tm_p%#%AKCJ^~GZ)wN1ZS zBblM;ioJM6y%4GwhQ$fPCRy>>@Zs*yJ(=!SC2$P)e%9JE#Sm`koV?T32Mo6e#Hqd= z4#A;*=!|#!DGA<b7$RG@qC%jw{)*)A0~xih)kl`9+t2dGio8+fU5o@aB=ctA_;YSJ zLvr;Dd6Olfd?q{=2+L)bBeIz|a{YJtT;t+I&&5oMriN#PjTOL^)UQ3qgeuCMw0cjQ zpu4R^dOuF9`x}klu0ic^np%+djC}>NI((KAs<t<}zg2w6(}M9J$un!Tkylr;YCmOF zyf7>aS(SyX%0gECGMrU2dr?-YZJy>kUH$YxdwWja(RAwE#|4r)6sLD_p*r`s+2(^z z^TCV|%e2vyY0Hpk5w#-8+aQ!LU<RDP<FF#|6@E_zPFX_@$SU<4wc6D?v`4BKmRV6^ z&a7Ayhv4JgUuK(Yy$$Xot+&D}<#R;dX6IeW+drVeB2b>UZ7@-ddy8tD82BX4$lL@y zb3gon%q2I<Tx_uajV=vQ=AQ8!=LG=X{5bI6XY51fKB;H!cgWl~^vo4mO&qPh$Bw1@ znE|`v{*<Eb553n(=HhCbZ>E)HZoQtlEYRMbV-o_capykNGdCd=aDUe^bLmu^HL)(F zp{sJf9(O=XC(@F-7r82I{4MGYlB9T!<Gl4kyl#!fhvz~Z*Y|}U4CjRI?&t8`XO=5Q zNGeX3hv7^nwAX;@nZSiO*Ayl10@{^9ZsqNYr!HOzoQebU>u=~5f_gaAEU7=I^W2Ug z^qvb>`Kl9w|DxJ-&T}%}HPUn9l9G22xA1y<LT1-Zo=}{tmj|rw*MSwax8m7jCMT%^ z>`|_MX25Wx>`V3Q8gy+}3Z4$0WZzV*xVq3$y_UNR1&(wcK^L=j0WKtRz3UpZju8&u zWSHMpKWsYh%2M*aR@AQ*&oN}v`S_Ki6;CbF^;Mh$9Pmza01F+gpFDL5>UA-GLwnty zWPrKjowGGy2nfBc<h_k%F<e2Bv8F(;{RH!&b={Zkn;P#x(K^+S6{H_ArFl5K$`~WY zDM<OsQI5QXDyNxRg;U*2**T0DKRSZYUdqlIWTzgGy9&K~8x~g)14+$h2Y5smf;SXQ z(xC=?FCa3t_};`v$0;N5(E-!X@r}VZ34O|Jd^z|W_}YzWIik83w^kJO8#=2-l*izd z9asEH`{6VNr)UQAjcDGDm|5vc-w9km)fcqkTYcz8E0Jnr@oLz!K`&<^J0_Wy>vY-{ z<(IgYEMMqaQn(z;M7EQ~&NFb@vh*HI%Z8-=+?KmMe1>A+*b4MbJ39J^M7_7rt*<d@ z2h8SLoNst&N3>)}nyn}z5;XrSL2M({Z!ze`IuAKOlMARqe6id+Ti*=_KCSQkU<xKh z^qDf&W1XCr5U(#O3a=ghUG2|H?!*)W15Wx-Ky(m&x&T6@-;Zt;=5*ROC-^y94dIbo zOv0-H#CVs!ki)OxiSY6P;Whm(K*Hzy)O{!&<j)2OFDw-Vhr%4WUrh|aWH$0^k&cgF zUEwUC-TLe9C^Njaa}QsH#9l$f3e2(Gm0w(f@}tTUVQ*B57*-__b}^P>Sh$5RQX&qW zt}ilT-=oYJGm2m2*Y8mlEm@Vnw8U6lm`t(O7tP3MlMNpf?K3VWb0?~CFn2(qkgDfq zDsK9^lO@!TU0-MvASuv8xti*SvG+5`yn(C@HGe(?5<ptw(lNSCG~e+?PKQU!v=J;d zM9)ysNea^&r(;CZ+sx_FoSxKX(2JyDgrmDsdU^aZ=%k?|U-S-6&&FIKI|1|}X|OdF zcOx)={-TAhg;y-*&zHoR;uUivr)TV6HgbBKe`ca{v<~WO>$4Q<9H1WNkxH>KWB4aB zFUfNL{QFBH`>g2r8TG;vrqDkBsC`8$TJJ3{afPj-%VVoeciO-)wx+hvKW-fcS6e^Y zZq`wodBSW1_4pk^{#~a#wM+8V){ksK2!HiPB^lB_y;uh>4o40eM8DlW0tH5OZ8J8W zsERj^#u^f|BG-=s?CGQU4Z;^)XJB<zMPqGQD0|kZjP(o3Lh&hm`wEY3fUmNU*;?F3 zc&wi5CqX|4g#`PgYoVu&-m(yma(fGpZ9`<sa9PlLt?*cX#1ZypYcIjO6nZS_Uch@G zt^beN&zW^^?)sT!p*gcMMhTB?X0)dvY{6>-J>WLq1l;uuH{LcGaVcjw@!&WU9!q9n zCQux`8+H79P|aJXGyHo&TPW9QI_}M#C3r~>nzs_oVGPG?{WaqLDWe%j>GRULCUE+p zy0>=YbPzZ1A>HpjqJN5|FD}J;o$wghBcE)KAU-7Dgz~HadOG(l3nfsTz4SgiX#R}+ zzNqVulK!uZPA(!Uc<Egv;JiTgk1>0*FavSB#N&qi_HNMQmQVTjAj6qP`R1LY`~5xn zrT6|QT;z`t=VvJ`<C%RNrPr{ZPIPW%_V?!A3pzBLM;ua!&Na+Fp3>;`>uKLZ_}{Q} znT6hnn}zA)sQkSL^te6P4><2J`-GH1hy&#VXf~1GS9E-93GnG1G1&Jd``_#Ml!rz+ zj-@z1s^e2Wcz5Y>uoL}4j(<Dwd3oJL__K9<YdP?VgCF$YBm6s=JuwiXEOh&13U@HG zH&dPUKBLoLhi<c#_MDN2RF2*!b$gNU&p}@ninB_fPjv?LCldXSnZ4OMs?Yj0aHqWS z{zi8%CVI3eB!9WE->%y~K>q&9>`e*QYuzhA>s_?(R$47l*s~D!1|9c*fEz4DL$mZs zb{7Ki6cB^UsFYXqb>9bzuLxr<1u?3Rdjc%d5NvQNwL4ocW-*(*{G2fQ^l=XZ#(RX3 z28;yTweEhfSV9<h^)k*nx{o^%77oI|?ogM9koI}(Xh)niLv6#!&Oo)U>?9(08vfBu zx%yx_od>M&(Mv0_0|-0Yu$EfcMc8>M*uyvBEufmpPPSndpxz<Y0RgLyI{G!~24cYg z2M3jt`$jT^$N?b$i^5?iIIUmmI97&3)?pm-pyM>aTCELymEt)ecxo>(OV8yv;n5x3 z!3u}aUU0pZ^a!*hW9uh`jg4+Al8}ySDjC{2Q1UK=4GSK?ikAFFSlj=Kc8sCbCXj9( zP_YPoL@}QZHLE|D)C?K-0y9O`E~%p=^?F&g21gn8vf3*+P*leOOH%s<`vFVFg+BFq zNxe3h6m|fbdI+a;^J;_vxVRb$ZO6A0-)?*#<7>kA5x&pyQQtko6S{8wAWx{<`n#)4 zD19txh4Rq}*p&-`M|=o0RaE4yHfELLURy=^O?MG`!iJ;^giJzt9Me<ox*r09^}5#6 z=nFk{C{T;==yB*#FOCt&n^2{g>p~~1s2LHNI@p$7ZiZKg+aXUE`U~D2q`{7#_pi_Z zwO4X0J<R9{+0gTm6?Nj|TZKW7M5gd~9V8PV4&Xh_w6&F;r|6JvrmYUl=XJRB;qJ*i z%EYJ6I(<an6aq(UfMgmVA&>hdTYcGiqC&Q!Er2`t0mJ8@zRYJI3X_Edoa(a66b|#* z2%qpuwxX>XKC2C%vvi+FsFO58LbO?AYiu>-kHw=#v>k!J8pB_K?(a|Vhuh4ABs^YI zMZI-q`9;A?l8|7pM}X`n_m#@u7Q7|V_$y$)U-14i8vha49}&D+u%}!+eW&0ZOZp3@ zO9IM+9%Dp4BE5q5M(7d3?S1u#AP0NErj^!VRn(<ZX<S4Zfez*rf|nllEW2=;^2U3N z%I-YmDIJ1_<zW*vt$XlOMcrSpOBHoAM4}3IAhA|2y0Qzjme32-bACXFG9k~5UKx2~ z$W-E<%L9x`U{GpT3F0tBFmHG1p&`QV0eWQJ*CC?rYZ0GOeJG_!fKYy`js`uUQTp81 zm7S-wxdmWO>LX&CQz*X#3(sZ2eG4bm59La@M6LJ=wfBKmcA5E(phh7vYQN^x{s(9j zgAJ@MR)faqK63dU{o)3)2-U%zQg*?Q{?TpqoWH|;4NxTVY<9V?cnrX{q>osB-o3zc z`40CD+(&Q3jVO?(a@|uVCwd(+l86e(ad&sP_o2*k-Hcpy_v3EYa_{7v+oyF1R`nVF zU(T!9JOukS*uDvW-{M@?Fw-61+wrmenOQSL6*s#vcfhcbplH7wNt-i0B>QOhnNZg7 z)^gatISxN9gu$5;6zrc%s?H9Mt2+|7s9o4!K8?w?>GVYWSlzuu^y4D>YcaG}^jwZF zhUkVaItlC$t9p1t>E;z992{U=zCd4o4NhUvG2a9b9-0*1pYljUw3&^zk}iV{{|m*J z+oJfgKXv-#W~VRvBYurT4KSu(+CZLxngbSMN{7J*A*wfN@)u&oWUEi<#)OC6=#wnn z0xj{d>!ry!teBiE)=nN`!cVFNIX_~X*?nzBgIaw#(9|NldfZ&{tynQ_$TqVp`31{m z*f)JHyb2jIjm2kRpQ_29f<y{@rxA&Pos&rGgv3BiZU%||@I91B4C<W3&`wAU(&Udo z!Uo^Nh{WK|Net_R#9&9=WDAv?ST~ubVJ4VIl9}zo+1Mz@hA_zbVFy-yw5;JcNl>Q_ zM;j=;h4XBnTu1k2<vJOF@8B6cBzn!TA9C3gWb`1qFr<m7iGEi<1<dBBa0rD;BaRGS zqw92hZ4LOhL#{5oYGPj$EHRP1Cs!hr%p#N=6`?<3y9gESj*bypW9ft_3D=u}&CJVm zb0GW86yyWPWNbS#v-2)H0w=LcYjE>qvAY{nBz1IMmX)%vE{hgGCU)5YyTeZP0wWN_ zM)kyAdW41nglm4V&y`lv-DoAaBgna7ba7|ASvbHKq!+??+=+1sl~b+MlbiN8i}tQ= z2zOg!aoW$huDg<LPPK&YG`es-aB?#G4w|zdA}{pPXOR;>fJV1wo2*9jQ!k2dpnC~X zXOX4Fr!{7T?De{pBxIkX&3@#95|0u>c)f6EY#L+^H7SAP`jtp6%Np{tn=^u3uTHh1 z^9WZY%<tUyXZX?5_LLoOM(ovtfv>tI9t?aQpLh_WB_30&W7)eNGpl=WTHzb>1pJs1 z58~kActYZtikXka)k=@y5@aag@mmyhnaC3NAN9F0Zdc)ORqQ1^KgBBSbf5=MaQE~< zbWQ63bO+|9wqPGz)^kU75^eFgf`;o9e11&=7iZ3J<_X!}hSDX9w%!8SFbDA+#`m?1 z8MU~Jax23Rc}ft|^Qe^8B<yrOYL?QD3Oi>$8YiVe?91Fo<E6BV!t)Kn^JmR_h3EH~ z&j`;SG4Ge`pOkb*KKBvTkHiYU67oCk^=qqw781^c-pY@u3JPv+L`_iZ=^`1XTW47t z5_awbPQ5NT33ZNDICu(<tel=IRZbrW=_1pI>_36265R%Dshpm+zd7+V{4`chAGH5- z5_@y}nklx#MxJ05f_J8{irt?A(djoJq5eqf65MJL0z~Z$B%(w1Hv^MN)}auNC(`8X zYYG9u4}~nEgOrlW>4OP**#72Q5#nh*L<fa94IwtTerC6?SdG&P&0(obDy!(u?8)FP zGm908VWU(QCsvq(_i7Nd)CTEC`&&pXl+%Y%h3?rV?Ws&KSHzKoCAdNY6I^j~msyJy z=37hqlSrsj!p_Nq99lwkWx_b3c8yqzj<D8js*U4|D~I~F5wl5lyYR?XQ13K$=)RB$ zJ+g=$wA?6_p&-pc_rDd{coGMNL_mTS39t$$!gOn?jU-r6A_j*OVGatE06ih`R}wNK z=S|ixZ9oDdyR^i*tRkws!NhPsWb{3H*~~CH{_%=7o_dzv+LSre-%g){{&qd@o@s%B z-nK4l6@%KE1$rQLSqqp2>$~;kYFK`0*%x!LqQO;48tB{Irp(rs=ZI&!#<_a%duuv# zqj57Q+m~+<>tqX2c4#YbW9NcXd)T6N#fXxu2Fi}X{xmuQ%v1#L9{>U^DSSDJ<>qEs zDC!fNarPx@-C}u}f}CpSg<bf?wQogzxdPrC+De3ZoTbpA$_vm6F(cBlE#Vo-pOGD? z?NcDsiTOamS?w70Sg1mI4msB)q#`D!)+{o_j>xv?xDz7|1n6x;BzRnSN*vT+RqqZs z)OoA$OT8d2aWz8w24$2nF@kSD`S!g|Sco2Z`QgM6SF#aXo&=sO+-akzv~B=~(|%d- z(nDQ@ioi{+zk&hx&~qS^sz~)wIM6+$`p64(#j5W)rpqi*y<4GkY6V6PQ{MH0h`N8G zg5aiOy(4czDtbNDy9IdQMQLMsk9@}+euO1@CZvM9<s`JYC+O=z_dy(Ljf2=M&>_DF zxmJ4cYhN@A&%drmVCIW)!t+m16wr-JFUI3KI*SIvp5H6<w&x;vVMHSSD#^?OBg`HW zd<BTX?-ap(O5pRs*~0VHjzG&`M_&J@oaVPfp9niY6wxcnm9q!#4?;I&|0n1uLlWe? zoq{oK|H;IUsYhj9FMiSYCgM^$1`+BS31t{iJ`gL$x7JYN|8K|@i0b&@3bAtj5DY59 z&Ld()(hUfT%UKgECR{^N(Iu;i70K5G@A^Lq7~v|RS{#?BI^&;VrDxwOY`h-}6xMR| z7U58H!DEce!ffF{SE}`9;~o+G8DBy;>f{B;4*f!PP>Jx&afwD~(i{gyd`v&R4X+Zm zD_*<XDyq4wj7~gW6JeIu8qFbmfseYPD|}WptbT1CgJ^p2HR8L3kIj$t>3~E10Mjvt zdWr6m4|C)tr;6kIuD>DM{;g|;LtC3_p^hm$Awn;+K&-=h5A_mNnNfGBb>w#ftGuOC zGmbDR6jT?tpoE-T;xKpEVup0LEk<O;ii82|8h=76-Qs^Q*cUSQj3rig(5GexE2rAl zZo&}m!uuK%Ou&fgG@rv8sUvRn%LT%z24O_~3c8bhFCvbK^!EV4+i5zPs=Ef<KYw@} z7G5T5{<skz#h&h)XwyCJ0Wc2rNqjGxYhtQ2qRaD$uzTXe<H7ReFA$3S;C;H><qcRC z2!-_pLh;v@0wD;^I8%=*vK57cNt2l%fQf9HR~KCLjbQDu7;fJP_tk$R{338h=p{F2 z94QdrL@zVje?}Nub4IwgivuWU1Z#FP%X_l9liAGSaJYXW-MU8z)9cV!67Hj$$7L5; zC{<TdMon@9`GhKBusL)plNn9T++H_PSs-8Z^G9<+7fWJN5BidN^b}0yxcG!FUAtKl zyI(_QYp-j2C->=lUCQ<SZs>pGO#^H<-*Ri}z(IqDqzxT5JblE^MrMo}J!b4}w~w>` zeEfuocifpNPRf$x$x{@^T~nRe)28R#eb0=UxwB@^x%U^poICHn`3n}_pSLK#;DN<U ze)ZteWy=eT9x5(zxmT=Qwff;TYuA;o-%$2zPr3JzM=R7yZKH3~W1D~TAHRM4i6?)z z<*EPtucx1R_V-)=@W($r_vgR-b=%+m{{OcB_y0V<<Ar~`_|nTeU#a@%tFP^P{f#&M zf$EywZ`Ib-H|%-)op<-X*Vwdg|AF@pesJi+!$&^)*U^ugj~)Ny)6Y(vY-#;G_{EoB zojU#XnQy-R?(Dg?^A|2&`W}0EaS2^5-IID+uTAco(y#wbwp&sM4H-Io#K=)&ZX5UW z33p^pk|ry6Ij7~^GjrCQU(CI4!TpO07XNDL@}gqbid7G<E#2_z@<%EvH*VVeACEt| z<v*W(cIzLX`^&b!Z~vbi|9EL<)vLSS@K^7yt>5#`-o||g4jwxE(b4APpPp#>{EM$n zpZWG|+XYAkOt2(blT-TJQilv5IcD61Oi6L(<lZ}PVg8b354l&bEAy(p-#qcuGk^H= z-~Z<yJ70aHx^~areFqO8J$~Zzug;vkfD<)qiY+a}F5Y#|FYf<U$r_LL_|wmAf9dtN z-hKb*iLcIvOucRyE#(%hta$40uf6lHuR^9&W!Z0b9uApu{~j_?HTyqO#L1H5m?Jy& zo4fNJ(<FILhI7Uw#<|kbCA%}1F`fDu)2W|v9Rk74uhFAN#j+kVW=t&Wv17+}u*M?_ zv8?IA1W<`dMvUn|FFM3@pl2FlI#3uHu>yy^2>Xl<k)<$V`k*jk`T(i1x5Z9%3~OMI z>X>8@k6{a3ywA}gim;vo`;HEv(us9!eB;TASRt@yM>;qdZ)$XKpxlWWCkkU!#z^|> z;OSl*t9G!YGvp4Iba2|il1_9xSkiHH2TMA?jbS;eWAW!sn>ua!>}jUS({u01%Ca%G z9nNJ|Vp~|8&+h$)`Or+c%O6}`xN><rJX6j>dY1xRGPc13O9qp$fF;XU;Fi-O6K7Xj zo>#cEu(*W92&_jr#2chvKh435qApi{6k}Qhm)lj)7lNUUQ2^81LYHk(VSWjT48X<K zyv2+Uj+5e8rUw=-Tei@I=oUrwUs%D=9=vG)J{tE3QZGk`8svs^VA^>%(K*8%1Ti6C z2si-2zo{8UMgS)gesXIg3!-rPPWoqx2yDQ|+?Wj^`0-DWsq1OE5XAyU7Tn&n0g=1e z6h~2Pr*^R&N0Vs={KvX~HHI@ty$oNm{I_!VCp)3PK1mOb&Yxq^x8kxlsa$-q-1E8n zf5AQ0{W628gyuo9;<uPHoh<0Y-H_L~4DL`J@@Fg+E|jE$4(_YDJEgDJHFQh7z3Oh& z%?otU!Tnd<y|@$ikGT7PcH+JQ+nA*2h#9H_{X4PaO3IEeR{pNy?m3;f*K_yhQ9okw zZ&q;TqZi>nR{F=MzyWF)zF6TGaQA_Td93nHX1>vu9=^w9US%~~le$?p12+}+)V7+B z&=yW8WYqIm_xh;pnm%S|p$$e38GNK!o`g+kn?!FZKIbtVkJ<xM2A=4l=FIRO2YmW7 z9go@tQwClHy<KofJE7xI`)G$Z<x04p!r^x(bv&v^Od0g}y+ev$647YU@u<Bp6$5V! z@X|RRwVQT$5%(gAS7j^5qxRDdFCrb~z-#7s3piRhpCj<L123gjj~{PO*hA=e&ysj^ z=5ahJnjSY3-|Qvet>$<g@@0yr>qd6NQ};mmLwrq#IsO9OI%fDYfp;x2C_wRc7ZYzS z@aA$n-u`0ZJqNtK9FModn0W61uP~^GOYM;<BYz^w`CH&^;CR$7W8qQ$5HH&{jz{gY z9bS}t7{Ye~e;k)TL+zC*Bm5Zoxfb}ZaeQjO?eHVw`yBAz;CR%I+u`y0Ht%{i9`?!Q zFdHxf)ijHnZGcF2p9DZ8rO#LB7YKd`NcN3@X~3t0sje_rargq@NZ3EZ&FeY*B_PtA zo(+htmGl9Cg8}0K`v5kf-%7{->wqHwO8`d!&H@|+80xFze-1brTtL0a6aE*WL&A`m zJ_Qi}>A%Af8=0>Gq;TQ^!P}kw8Tw7~_c9>G;~BsqfWHEyc;o;gPt!j{|2+_1hjZvd ze@{XEjKl31zkUYuB0x(2y?~Vd91h0<B1!3A^w7gO4oLJr03`gqfP`Pi;TwRIUylQ( z<9{883jryfGdR2pko->sB>%T@n8e*LC+Xpy21GgC=;!dCfaGsGAo=?<ha;}h!?gn5 z0(X-0LwE-O3GZDFYXOJDeitC6;{`yX{}&Ed0HWVd&jU=yzsT(~Pzb1oHx2?seYx=l zKvcyWt$<KBngJ=CNgzhy+5ySjo5SuLo(B=KZ{hF*4r@7lnM11cg!fwx*Kqg%hs6Fv z?my%3Iu1jK9NC}b@I4M+;qdnyKFVPshqF1nlfxT0jOQ?j#1h^891@Qing7J$dJZ4p z@RuA8;E*=Z2>%mg7Qr_;e2l|94l@xRs$9=;fT#*RNk#&SxaSZ+6m3r%Ac~}C3Sc52 z@o-uIEr8tssc=BQryr1l+{)nw4i|8k$)Sxy6Nk<4ME?97Zsl+ThYL8&<j}^UiNj{3 z1KO^B4!3f+fx`tHW^!ob5P<o64X`H?wADs7CR0C@E1CT^W;9XxlDV0iNjff>F*#)_ z6~82{+Tb^*`qI-3+3DzaNIgtu)K!CDzQ{25)7|HBa}L-WNzLHq&D`wZ<{jL8CpY`K zc`P^Ab2ITBQ+V%ivz43oa`SwIL3PBKM-m?^nT>S;-L50EF;6F+D>57NI^tI)voViG zn`LHW-hC%G8}sOC+-%Gnf5zz<>j<i6L@&H<;AVJZidf*t-Iy1XRB<vJ^Jw(h%xtV% z9^z(W9{eT8H|FJgxY?M;@8S5yy!a%KpRtZ|bF(oY{RKB0>kw)O6dz;V@^_*~<<0Y( zoai$Y$>)kRm%)FendX&|=ELw9Y2FrvUmRurU6h$v7b5-B0yENlQ<OV#enh&LN8x`F zW!CQ{Wi4Eq=UxhlNt193rK4ymeeqqQJ4j1#FReIB-w9x^A54ZYL1xwwNFo!_$zE8b zTZklYshy2O-&a6@45_2&D%wsAM=ECtb^&x!kuNJOonNw&Tt>JS-VX_eEGi(!B|hoq z+~xN;<*-d;I1vJ|I=oj`RJbzYk`<iWU)rJs>f0U>SS*npY-!s=-`LPIEW$&??uoqI zy=-P-_QH|}uX4F7TK*Qryq)~5aGp(}4U&7XKN1ll3t(npRKO7kF*j)<+$rHaIT5xj z<sGddTqGi-Y1mnc@N-2zh+cz0xTB=5WzmAV@}eye2Da%U=%W1FTj&^K2NZ78z7CDC zo8~VqEPN26Ovag_oW_NnZV&5j3+u*)bz{Q1(P7;v(|klM!&R6Owz{Gl85Po4Ob37Z zy}dDbo7cvaes3>QCJ51sb#ITxaFdN(uPz_#G$s?IX#6K-m@#zHJc8zgO#Rq<doN)! zLdu|L#Uy3~S#-F!_rr2Q3_6R*FVq1ZPu--Sdl`CySG(7hg2@soKl{b{43jAg!KMw^ zSHe7r6wd+OaJ73~hd8|y-YK_ndb)2mM_X*@3DSH7OAQj5L%%FAtS3x65I*Iz4UXFZ zDVaI=A{E7tzR3PR(*1|@bmEG`S)2kdB7q)-+H5=z;N4fcPSU1BK6yi_3milM%Oq_w z%>L3vS~qjGr1h1|O`;wARoT_{CSm#>d!Y0#ZAyY@4rtTxTW=2t*#X&JFALKHqTMh2 z-Y@Jt6da7B+&fSMaFlyDK(HswBXlzf`V6xqh6QnjqbHPaL^2RXq5QW@gV($M0u7i> zz=E-frpFRqXe4g$O}{347V9<IeM#OUr7lSmBy+tUYuUa>7P9w9YInqOI^Mr+Q18Oy zj)=5hTajS?#$GFA*Q%2eBzp}`Vh^R&sJ|c?5zqR)M}%hsmH@aCJl~juS%`WGCX`6Z zBLKmnFz4y!Rb=j`)J+1UL<O&d+Z5gHK7iQCq%x4G45ot*!SxHI#v;C8MuK*jOS^e6 z??M#xR9QTwN#N~yHc;+&DROxOzm25fUEXOH_Ikx(R2f9<OMu`_2%L_;Vg8uRl;^MN z<|cp)zkV1FI*@*@bt8U71v#RqaluJiH{^<>^_0vFq8)c6rUleEi8Rjow1A#%s3s`$ z(gbZqlKHZ|PMB7QyaR)U^Xs%)wKyq)fstN}rkW;{zlCf;Np5-<5Q!Dazko*4u9dV& z3ECu!c25#}`(x8?a>pCYUWlp=2%BDpQTDmwLXvN7uaGnE1ikHtcOv~6`{=F6FE!~L zO08}EJ(AY{oNV8})*;)!SucT?F%#U4-DUgR>juc`hryfK#UBMvHbap9TatQMRQ<4b z_Y2Mv?fX%s!4c_S*9Er0Zj!wP{H85nAaUAHtbN9N<TXSBR~>x#W!1S5Ee~1i17KM@ zUpJQnM3?iG$Ak3<cpE5ju47a?Q2}uiY3-EIUPy6BlGHu2`j$5Rl7<L0P*fU%UC_?5 zn>xnKQ)hvchy7R5<hBGi=>#BMq)}2K&LlG-R4t|LQFAO}=q))7X<nSfJhU#vHkiS6 z5ta?)P@7meJ&i=NCif?3z<Mf_(=-{JEkgMV%m&O)RnSP<eDoTS6CrH!Gvi7$M3nD~ zFlcy7`hcw2B`r<XY+5&MeZnN)%#@Jqn|Vh_wjU54dlp!t{gSZp320>d2f}02)J1zp z*yv%J_t%$-_P5rqw#x_By6m|J))%t42WO)upT+=$?5Ax8Jl^P=*sPmryMZx0H|pki zGE+<N>*linthjdQ=2n3A#T6;3!U_2<PIcZ6L|4-09T0vmzk>)%YJQ{ew7d&Zmekzm zMB(?<h_om?T`St(2hKJ`8c(}yhs|58Uj2TzNPWuFHBx!*JMO2XTim<czm;u4_a^C< z{B3xfK+Syz!Yc&t8Wf5&eqE!xw<aHu?5Ee=Dyg^OISeiLogmo$4~&<$yVGR*sdc}S z)iji`mi=6C86546Kq`$>`;wnKafPgPKUjuH#*AccAu&koJpp)J+k;u!+t8<g2Uk`v zNm}j!*?wl-XnOh8^Ik&mPJ5%U>2Y{hd$sxi5Qb=f4}q1&i)td8#X4D5hqM;!0qmIM zOBe~So;?=Hjt4WRT@YWR@lvucYh2rt0vnG9DxdX(x9E_zZo6bZx2~_~c{?GP3eN3K z=^!Gimezq0#Lz53%-#lChb8rpl-MSepTG!*Qrf4<??`Elc<V?~PczMSO@0m!nM1^p zq_!~40re2o$d3i@2oPn@hrdmg>1<7$dpLg0?o9k9xM$+m;wqqqlGcm|Yqv>hAK(!b zwOTSCM=(J!G9d&w9H56l(@w%oGNVy_jw^fIWmlw&mit^VB}{F51U1A}&lA*+^~nEq zepK~mYmg&HM0;&%SC$=kpkW>Ivj6Q6qU3qcVu$lI+=Tg9N(`yFjcT3X9fZ2k`WZ_~ zU7UNAc(%^$R`8qPz7M|^wZ>J9*UqIh#C{tX1J#RC+Wx1`UDOja@15XGBiaYFc|iMw z+-f8+fg?%d47XkF-6&E04XWFtsY>cM;+s_1JYljQRfiRIo2c#+?MEqXs8RI9JF6!U zX+=eQh^mRC?$b+Gq;B{CE_kE3g1sdb5jq~c1`z3n7H`ztB;wMe9eFFNrq&B!nq>Xf ztQi<lHmL}ndYs<?vi@lcG}*+Q`FnENCv5sFxp)Fecve{bMibj4EklF|CqG_sf?9>> z2-6OUcz?itR#eZd$7pdB(*!)Nc^JN|A@s+H(cA8~@E(Gkwx_g&Us07+B|%hIS!6XQ zNo1_T!8zz=?xoOtW2r}D-I7B$Yh<Q-7<S!EGZoe?rRnBXWTpWcyYJ+G82~-N;BSEj z0=M)#44t3Xi>65?Nb`3ub(x9^A$_^Tlvn6p?t)#O%QPp$bZ>@f&L|UD6IL!+<XUW6 zoWJCO#ky;WsRVBqny?^kFI9%JFV=Y>*^@enFP8fwd@}kG!|FISy`L%!)E|Kt>pU|7 z9WtpZz*z3PFpnbDhA-B6Gwm;t>g>GI!rzND(h)u%i#Sh_;D0^GqjWN5oYO?$Err7! zXZ7<Wo?bMD_UCQGf%7=NGaQf7&6I%`B^QVAcjH^c-yNWQV9LOclDm@%$8Yg{fqQwR zC|{T|@cH@RHcYcIHA#OK5Jk}EcN}iw@KFv+Ib6x%at<Hh@IDS_b4UX&(d`CEbm=gL z;5o#bAdS-mPjX1(G?_o(kj7~;*KtVWG?^D-5k_?90FwD`4iyeX4oT1$;eC&MCA_m7 z()Cm_)6hZiUmPCfa5W(LE8^xQ9M0r0n?u@fCI9p`Ey4dl=8``Zkj%g4a5aa;9Bu`K zm#!N)T)<%_hc*rY7~T{>+Ltui2eiy=)OVuG_ALQP(Nu}dMth;{OEMev8fRb3Y_!Mu zFcZzNV*4=IEt!GlFE7tqT3CWdK1eE&zLD0MprYL65Pd~x5j!lp_xv2z^F-KVdntMY z3(|_hltCy0Ic!bD#pR2fOO_iFWq(kfY({LkMq@^fZYMvzWbwkH{3~LOV(yRZpbWC< zIYb@txON$)+Z(?N_&UFl;~3^{K%fuRlc^uOKk_H?1V!{vuS_G8_!f1?{Smy}vJm<2 zUcM6hu=D3TCFYU;Y~yrnJYK8NPAM*1K@VC|L_Vypwx3bY``ay?-WH_WNE;EszQp1% zF=$fp#oEtkLHIawHCeFlvkkN&_cMqzeH0YMk;fCdAFqtH3|*l-D5~c~&oNvNZm_<Q zf{yW3`e`9zxMxf(`bS)MapT9K%|j5jqI$NHGq~j;UU3zcPDM#|nJgi-naO5INhjyJ z%oO|r`B3o6g~<rn=<Jpe(GR(LDxNpVi%EC_Gi`s=au~Oa$3bqLLx0Xqy;v)MfVcV% zviJIG<pY?mc8jCufb>X<+LUD4-zZ@borlXPhjIVI2H|#)2RMWn>I0`n;vUCdHGB7K zl!<9?tMd@*9yNQHs7<%l$&D-~JNK!%RhhUzsOG)|@PV4U1CtDIgZMgg-V_h|6gpip z5_aB4l35Rj_CQAC$}C*+u{rXlrzm;r8gU8cyd&>jfVUO%c}!Yp%u(`^f2Wu)gpT9w zdP}gk@Ctr=Xr;DuAKVIEyfy(3VdZ{+%hU&PnfiTPrar(507<iAlHEw_6g(WNHc@Cf zim%U0jAl}$Vr~i@+pz9{DL7i#nSEe<_AcSKf#6U>|0LdPd;vEVaz7ZKTjlNz&B5`x zFS)zJ{r&OTJA^0js{78bGxnWx?~c#)<7zqX!kj=>B_$+&jf*I_ocb2!kchVxH<~eg zQdVQa8>+_a(_SrX{FqiK?Fs`7`H@S+Uhs4sz8mok#+Qrlm-rsQS3+j&v*}lR_1k8Y zU{RZ&tOP!>DTy`hY10Ezkg0na&tVz0wLOAyKQ7`%X82B<=ZjSet_-U4u%i6HiI*K6 z>bJN}5nZ+39D<x>)NywWYs1Y%Gth$CBySO4M~orISJ*_uAy&WjBng)}9z<0Gj{ba} zmc7N7l%Zx<WUHrf18F4PzzCcg;!EnSW>?`pD804GNa02ZD!(c}hw4_R${UgMFqNyP zRrw|F5wuic)8~keLvzt>smK~9vsW1%>|w~fbua04Zts;kN4!b@W}U;+ko78_j%5|C z2MH8}l$J7x3Jo<I6^)kKJA~i*siNunC;h>jcA%nVe=t7#IjU&c2ghe`q>3iLKVB|J zD@R3Z6FuLDWI;M5+rLM3_Pb><R4a{lSIJo2Z|sY_)#R5#$bpx}%N2M#a+|R6ELAYi z_h!hmK;Ga6E}k$I)vgY8mc^moXKkg95$mUIcy$<p4+dcAA~xa5BFajAOALGoi?_rk z1SW5;Lq=llqn^Swaobd1((P&^%Ct&h8&_1W%FX++%0!X=c@<0$-Q4op_jL6wf3riC zQgLOJ7Qv_C2g~cPDf;Fn>{Iz2iFHaMuA;81$8{(2iSEa#o^L6IXYz>6!)J<MEt!K9 zFDb1>2{ha8@+FO=Yewn`R@3p4uabD!sVzhBr<__i26jeda*8v4-8LnD9(G$!A!0m) z{<@=$iDTZqD&me*!R8*wx8C@!$9F5f$@rZ3=HMe4l#%W3pn_VgUJTw&*VGkyzWEHI z*76~xMO$M<gM&@W9^IJ2jjzFoO#le4uzALtT)WZDMm>%}LFo6JwDF!hO}GV*Ex8ur zH>B&To;qvG;jliXWp7w-YpK@tdK>5WSEH_}&YZ!nd3}p`U%3#!l8-|)Og$*Rfn?%= z&re+o=rUI~hbAbhV%3RiuWdzTKvtrWhc=HyB|-(dGK#@$!kfc%pGwO~!nQNs&G?x6 z<RhI0C>ZcCZ1V+Z#5Hhs*_1}Pp^Em{Rv=*M?YfEfuyGGrv?^*>Tp;h6vCp$Q#Z-kt z3<+}eyc(huR*ygzi{F&&NktsT>lXa?4;+4gB*a=DZsD_=xxkA>pLqL7T>y;b-`Z7o z&jX0%zl6KbgnO*@Zyk64Biv*0<1XRzv!Cn1P(id)$=uZ0`Za~iV>R+Ayxxr9E2RnH z3XaF~G3L5-De#tXJjzd|jCEs-btY{Kk35g!grfXq%E0I04~OM$e2X|9<ug+TUJSal ze$C<QSIT#$4E%_6^+y~vjz{_54v(+PDSTS9y~6RR9GEib#o)7a0Y8nZDHJc44*4aa z+%R=bC(-z56X`FboH0F2ADqDEvgyQU1{T8f<47-#?$Vp|bf*UZd%&E}?O#M#nER$5 zLZryv4Tvdq`Y1r6dn+L3zv<NP<G*V&%mn=$Zsl+ThYL8&<j}?;0P{!XPy9_ry@!^q z3;#d}P?TO;HyZ7R;uX2hT*A#py|)9G+>LttCU-aLV=wM*w1a!NyV0(;!3>nJ+8kw$ z=BHU3<xaBxBK?0C<xVpHBHf2ZnY~eFeYG2AqnJU<#7RqB%ZQf+D^YiG$&wZMOINo? zm<jfUSRSv~&n(6pV-WPq=v}cUhKeXFEWtZG;UYoGbaCNo{n5^dHM0K7SqE!J38T5F zgM*IWi6d6$x`!Mr{Yjv8L_lFT<~PD2ijRZ#4=BfY(AkBHBAGsZ+QV)gxIfyla{N@e z#-lREjEm%tK!)ZM?@%GHdH-Afh;i8GB4yLtxydk7_f8+W1*U%N`ahL>AbLb{4v5ei z8H6?vFx1uL@)~sh$~{PYJTm<A=o-eW@<-7A94Q<71s@3Lp{q0PK>T<+Ye({G`w6rk zNJ`Ox$qG6|&rm;hKcNc#h!lyBoC6rSpJ33U_|X?h-*CGcH0F=S+2|^V`W~K5!18K` zL;a444ap*5JPUd`Rh;4B0A5QRZ*h;x#?$V%K_G|8+pwxXUgJ)H7_($CKHDOWpJrX( zU5uBL#PO4pONV3Kd<+o_VzE2%Mbb=B>g0NgmZ(j(syOX{$QB%-I(^IPX?{0R)CAD% zhXo|jyjF~#ZW%w-x;{~ipOQ2_E4g$G2>mw*vFq*;ljT;T3EEWzwJebKYgwSY+v!_Z zRp)hK&?A?#@p1no2;rT4DoCt|CM*Ukh^JHa(Hx&iMuA{`T_}p~*}$Ta4kA8ig@AM? zIn`yG1I<|LPES&^pT>H0>r>~>V+n{u<V_@$7HfsAlD0TOGB10YmM>an0+t>dL<}fq zI{Tm(TpW4tW5w4<sLnhK<XybuFgH2lr`kjkG-@`jRm8G7+|~=xQ!6c2wK{MdtC8#t zK9|`nrhS0NA2hs;f%$me-6_fzkgCSAX0tPI6i9vRFxNWcAF|QX0KxjC)DWb82#-FC z^x)MBCi~V{7V7cC3MqT5cCQ7g!r>VmdKUvXRP!oDg+w2mh3r6z)%9i76e+bS&}z-B zoPcv3S5I@`m^E#WSYdaB0_JLx@nK%y*qT9svBY;I-skGXvCA?I#HYnE;*cF+cX$GE z2Kl|M`%r)p<Rv@;PmveTwSm1vKc*K$einZjFNhE`#iw}VfhS{dL^AN?g+r=L9xYYQ z9c`8>7mdbiD04^0vvB2#UUJ2~c%)+?f)+#dh(kO{DO~?baArj45jj^nAx5sHL<FZz z*o1U#O3*WnB`d*5R-+WZZX@<>r14a7=Iy`&7VGGDF@N*CPIc7e!WvIs%y?dBwOi3% zr&_?}xka}Rl1jD(8P!^YDPso`a3ns3*1y2<Ji?fTMc2#tNFwa?<x5xFRu&dNSYiWX z>S9|7cpmv3T;m;w5))^AwUrdQi}Uhr_k&RuPip767A}7POss}$<hv44D7njt-Ibml zWRFBdVj3?{M4|AY3|B<|ib_VO8Ef6s*}8+~)BW+CCLxbd<ew>HJ{>imzXtAT-F*@O z(HW(Gg>1SE5SLmO&0{?n=NA^0{R@X~kcun(PplD|b90uWwTif82fbdqjQ&P)M^ z@WN_nlv$s)#W<OmQCQ%bp-&Pb<~u)n3iDIvCmEwg-KI}abpB0VSU)&F$w7vgY<kk@ zeBw}KLUrr#?+%-;Eh0Zqh8e>po1gIM3&wx_`AUX_pJ+MyhP{v9k05$18n@!E1UYt? zpYV4L#_2wz>22n8Y`QZpaI_zvjp}7MUv0j#gVS^Hys&{@q~ggBTV0JGls#wx>`c^C zQbkxmk@oZ;7FDupNAha(olI&xP(?gpJ8o*9-XA;P@ejrw4$!d<!}=PuV$F9b>GXxy z{Luec6`t?RoFS{b^)r+=DNo;6fS(p3qp$~Lg>t&yDyb*A9TP(-lwZRv*FfH4NwU%X zs#z(RZ)j7K>#{P5KwXwZK+RIrsZK?kYSDUO>&dDfEIR?~(-2RK^ttB+K2O2(R&?+X zw=$>FVP(<SuZIU_DM$el%AW?R=(!`#eLci{S!zw8+DtRPID84Fg1SspZ^QyaGK-}# zVL@!Lb2b)Ji)7kD8?NN7Nx`gui}X^nY-F3G<W0pn$BbmSG+`dXr5YN^1t+5)(nRre zo@bTK#KpuJDXz<!LwObqZ>NC?w3p!s4kqIe>QHPUNy%FLHb{xorq1!*9a3k^fq=-; zZd^o?XU#}cDYn-5$OhB;GeD1Xb*DJ;%{$K;i^+9EgatM{^@!JHSr9SI2G%g9-yVi- z4%wcKH$%ib9_QnUjFiws6$8gr2>CpnY&E!K%q35gFYNTGa+@Y%E_n&OGMTjhm#p|? zOsLLbmsL^sFmjCl=QJi>ZHjs~hGugWWf4+kjgs;=h_+{$m#~1{RoG8lqrddahHXe; zrQtfc51-~nN@dkgS=#NF-c7zGZT(`*4?WF~sZ$o?>AK4aD{r9rrLPaA9d8NhXH1@Y zE8K(0Z&E{Lv0yu<YjU(Hi@{vVCl6r7iIB+Tskf1zW>0-4!9$SA{yxS?lFR-jz5qUA zBQe^RaW<*RR&8F2`X0S$rtVP#qI!r0h>DdWsh9C$6<AQO1fx&jeG?Ng_Hm9No*7Zc zKr?4hLCJUvQ9Vd9j4x3@xhb04rs8}>O-=<z5#EWb7u5g@k81MZ4HmOgU0_q^py?JR z<Lon~E;AEZfW2S6wa!uC;H2_uS7|A`!PpxS8mIn~Nw*_ABZoHLA^w$ZF0ZHDC$Wm5 zQ<zUzm+hfFH?)7LNu9ko<A}YQ7fU<7aYK?W9RqWrwT0AP6)lrV7VRS0N3K`~ra42% zW4QUCwjew(4Z4;g&<2`FsMAq-RxVYv8SsA({DW(`47r1&L`D0Br54irOj@xuRLfXX z1^KA@3u`csW{o)Q1}E1G0F1M1lWzVSKxFCZg^RwBgm+T&>aWd4Xb*w%lkp*lkPB5a z?lM6>qdsJ1S%KLnVr36R&S&|H-RuB5ygQEvKBwoL6_=P@Nz`=Dy1HnNrD{)p77YR2 zZx~rEL$qv8X2r^)irEiUOfS~vFV3_<aO^%|XM=jwv)8O1@-$!8CGHDyZ5hN+VV6^` zMWshef^=nF6sN(bM)f@$iQyD5I+rOqm6=5qU5Uq?n;xo&qi8jdd3H|aJ;fEhj2<Ce z2S)OUm7rX3hPYR)_8k9St@Z4U<FS#>s4J-^)W)g_;Ye8Z^dq3@7*R?pcpik^@6g?G zKr}r^b1e28E5d7_t{$HAHn+8oMBtl(H`H~do*~%VbKdH<)OBV3d{=#&Q;#;)S&S=? zj*Qf1f|R1Dkix2V<r!{B@4IsBk6M}IwA<Xn9P~`7Q3EVm&Z_ZuTitzVh%_v3&~nzo z($yQ4m5%NZ6|Buy-9#i%v1wpn2Uo|P>eoht3N^C?8pbFYs9-_Bo`yrk=@^r)eFKTt z>r2CoyPN1K9cgmWo3OW_!Lc`Czs0ULa;e?vH><qZoN(Lf<aa1Wo$O%X=n%9ON$ZNi z8cWaBiIUkbr*#7hzob2A1!Fp~ObgRnBwQk4_e~mBcgMvIIc<6ZIQ=CpFIi3l>-BEn zGzWW<A7;lc0brjbQ`D|g18GgAf|&NMsN(WMy{Jvg3?`@nl~@bX$S7fnD-N5ih=Nir zYAX}eJ!xl3tzy~%QJs!UAWfn+OM;I*>enI|<;};^n#5t#oRZ*ZqEQ6(@9ge4*T8`x zECNyQB^=^PIOhfj_;ywpV5HtIX|TW%uk8J@bc~#K0Pic74hLoxFn7snp#^N=xN-0R z`26#CD?WD>E44Fpno7AB?Cz+WVj*30Mt3N>#Xq9x9>948E4oLZVH6irRhY*{4ZYt% zsdQI-sHDEhNkRNhh0MjQWX+@{(w0+qhi|>b;hPO7hp*J?@XboruGQ|eSG#TY_uT!% zkw>M7rhG;chQ3EX$LOaTq7eN=G5w4v3>`o}$Z}!G`7^?tix7=CuqTc}puYsW(|}*& z`!;xO=soxgh4$e0j4=C%FuUQ5EZp}FDBefinSL2T>#0pnpg=yPpGIKJ`GiQmhSL<- z%=y&Yuv&oay&odjxkn0QP=anwwKmlX!mS08Fygb~TY)<FGr}KONgjcJjPNgoAbfiE zr$qV~BDEWJml10u$2~-BA2!nnLm1jzAdJ{ueES(;?rxxVnM8C%;a<proO>E?*)oBU z{@`_?21YGZ4=;X3fyIevAYTeHf&LM`OTz3g$zr*LFhF_#iX<5Cqg2j40zs-n_5<l% zRDOjLBn&+SoQuT+V2K=^GjTT-2!wy0@J~|kAt1HE`8(hP_d}gtJ-Ig#y$?alNqH;` zh1kmxUzhZSQ?J~u^qao{vMs%<FkA#jwYQy1Wi@sd4-JJkx7I+VK+l32mFNLj=5B-L z5;W^JL-Q|a=IwyyJ80ZnApLR(q-D<O(wj&j$axj4O`H*igI@x9WtF#*^S3xGi*R^{ z91yv=as{~_ZSPuvZB!tzh!YN@@M;)G5{9>+MIvrinc~*vcVQ<MY84#1cwh%Nc}GO3 zyT}I;F<1AtIP47+o6)xY<i3U6DS=&-u)8oEyfM4cEv)WdC;O?TW5*2@G_g+JO{R<n zY9$yyz_$Sg42L=!Tp-;b-5sa=x6m28XI+J<G==(?-snH-!B55e5Ei@k4e?5+LCge^ zqmI#?xs!X)Y8Ks@?j2)^mbtj#ZzX0D>7QlMz?p-AX}sBeGp34c_JK%p`PS}1R|HkZ zms}rf0Ma{|7$XyNplJf*pTHXo5M$jh!;d{^S8q1m0W}t-4cElM6)ZDZBUukd3jp$` zO@S9zFD49pB<(eJ)w*qqbH~lA@ic$0cDwRc1DmGO4K$tQ?jU1|`re_<#CVIT$ZRDq zE~5bxVQimcdY91vp|_R#lRxfTAW6T{%ng0W5XTJ`Nc>mqfwlYW0gTeVi8+ZVx+8pU z&ZTO*vGtvs42CCXs#Vsc)MR>!JVk^K#{z3pZ7KxystKtqm3VXkPnP4VTX{F^HAt%a zB_@y;mMAyZC^}s*<^cm0Z8Z!<7A4ObmhsE5sjzfB)$GvL<zNz5Ii;vVez9`OLlyEr zq{{WhII5_UDjz7Rn?f6<p}HxHsnY3XA0E18{qRAi!w0Hkj3ws`o+4&=BvrdI_r;2w zqRdM7KQb$d9+E0n6-yNhO4JX_j-A?s!BJUE!B@;K!h{m8>*4x9i8^1eW4N}0*9L@g zDrJY}Mp7oDApEX7vAK>qug`&PNZj~d>#tX|RX}(sQkbz&UId@iKxp|bcvo;b4o%L{ zRxJgSVI3MpEtm}70+Zox9_Lazs*!htYwInr2-XTa-F3``)ivx6sMX=boy}Z=7qV!J zk#-hXAmwzZZR{aXCeynPp0)({0vTsCw3W_o!#T8Bm^|9fHEH)Oy?KvAyU&Kra8WC@ zdciVv)Ri21PwRSfJzhV@MJ+t$oPc@L7wB_S@G{xu0fDb>G6Uk(>RQFu-vgrVKrr9a z7Ds_hLm&;V+2H_$R~mR2D{K@1qJf2DO&~ZxGS@U+bmrA$oBbl*F%P{)1?=i0ypnJq z3p$}dO(yxm_K)2`r@0nn-QX3}k8^1K_WwzH6ZojA^L=~*0V09}iW(Gj)F7w?iGUIT z&5#Vt$OMqh4GbX(kQ$Ph%&;hEXh67*snpuKRBK$?T9=Adk-9(-YCtUpOO+PBHZE0S ztm1~E*8HC5ocG+hb7unf|G%G1o_o&wp7-p_J<EH{yGa<8EbaYN>Q1dlunjdt^9(!a zDyd>~o{r!QPwOBmI%JL>?e|4{wjV#=|Mj*mX)c}m{*~|ZbFTiqE(J%u2O5XjMj%!p z^j=5jUdx2<=#bSR;nwp~kyEf;)^Xo6W{ONBg8gId{M6tUE7vEpY8h63ycT{3EF8jn z-TIr~`U;!y`fxOS9=@K@NQ}W+&+S{RJ%bQHeG3tG>t$@m^%>DgtC0DF5m{X7)m98C zXbm31cLKirW?~LXefiz4%^{ejiNJ}!1HqNs=xcmLwiTy(kF)l~8`Un}o1TG>){E;f z<SejO-vS6Wyx7X`zqfVqWi7^6z>~0M=M06|bKyeKnpLldkRdFq>4wW(ScbbZwwm&+ zz*=;Dx5SiG?gDMNS6%XS@VPoVk><B~^__6Z2MeFuv5%PY*cstcrq+0JMCZZi2>6m| zNQN5`ZHce?&TPwon2pTjmEZB6Pw%ZPBz(u6mHO_^@6=tNtNJN>eV66iaL~q$$q3-X zDi$~vXFh+FT<_W^U>|OHF%$A71<cOr=GC-hpo7-EKD=Uqax@@zuS$b^hv2=ydVDCY z0-4t8;bdue=3yidB-O#4DUgr^U-&@8LO}CswxJY_L;^ov@OF>9S@$;L4Wb_cNbUq1 zo*|>!cB>oHwl82_`5jfkMh36^j(TDvr>^`?-%k2IWViPsm3MkluaBBI^FGmx?%%tL zOIFss6%=2xJ!mzk2(4ZYvlNxWk^^CDKQ1n)qo*Ywp|51OWxay?1OAS?8!m@6UU$On zT)g_NZCFjiX2=(-VbZ-huUvpZm8ZhAufu8WxE4P89=37z33q**0>UxH9`5=gWyDl? z+L4fsaD=VLRS4iH=b+B+8>?2TtVZ>UAci`p+pxlh^;+^a_|v!+`_ngJWxa}KE$!7^ z-vvvQR78kjD#WJEk{4Me!X^0T#ja7z$2dd#Lt)y#J6?^x-)149bSjE>I(e^4_HIGk zyZZNjuv)h4KQ*mo*Eg|W(i^Vko|?96*P+-mj2!L&`smcO&v$(rEO~<$VW@z77A|T1 zdanu%_UJl8^EE@WHTr(e!L~H`g7EN$)m7)RL^q5Zjm$Npht}^LTDlKxX0bx6bFoIF z=lz?DQ!4bO79A{YiDng1(Gu6uTkKPJ*qe31&W{rsj%&)6Dc!#_tE<ausL<y^a}T{s zl=xVyFSD<#iumT0spZPDQeSDb1}BTu!e^qe=_SyVQ`(uxz@qBNGM{s`vsx?G@s#4) zXZ(t)m6{-v5GfQPV|BH(Y$<|JO~u8wc4P)Gt{GV;to?r}vLe;KP1^IhAHP)lKKrv_ z!!t*NaBBnqFBW<b@2T9Y-Vd}j_@&x+I$PGGiaMb`FZ3GFQ-wbptudd=@JmHsCG>pI zQ-zP`^VEZwr3zm&dN)2;CgYP7|NjV`;ZJpLGmL#je8y@>a=%vSA<$EWZ<o-0ow)x@ z=#x94U(AJ3Jf~_%^8ad~-voN9^m||EoCZ#{zJ4D*5%`QkI;NuU#taCb`|wL8zZP>i ze7LNdD*lfO{Vc_moc_Co-hy(H%KwKjFU{u?{8HubCqloklkgvD|3Kq=>^nO;Og*yq zEvMLz8%7xRzpwf4XQ23){RWQnw-HzuiymO9cX2-DNS{aJV&SiZkM&PIDdcSfVT16o z9;(OiIrbrc48l;+E6nn&9v9zGSaKXwB7Cfu>M?wi67}bjpZk`7EBvgd>M{H&(uw<) zUlV@T+XQ|`I^6@l4~5Sz8Ah%nUfaO8S@a;E>6RzvEa1oBdr|n3;_uK$+z)Num%=CY zI%WQh1z(2fH)j1-j|rb69;M(rOZa@kW|s>wGkmvz?=<0)`kvC?r@=Q-_@v$^@iAZa zf$t*WWBpf;37;!p$lnWf>~`T-%R+Qu_+9&D$UheRr;7e!wh!t#41Wdqvp&)FgY88E zzbiaUk9)xX3*nb-8S(Hq(svv99uz)lN8)_q4a55}_#P5IwkPW8B)s&00OC~exehPe z7xfr^$GL$5@XZ%KwlfKQE`7?Yu<zq+>=#-AL=cX@0*Euu*{^DS!Px@^uf<X^_u~%$ zjs(7ehKl$E@C@J;K+2g0q?}`cBVqpQaT=cllCK;{zIj0MT_re8aFXC2w39x%2cp<y zKMTZujO-W?LCUTIf;Ia>AU=MxhXHwRAXDs*7IOzI5vA-wK%Nsw1CsA^I6~db-UB=x z_yF)cU?~tEWZ79j#+P>+(EMlM2q5))b_Y%XG9KfAj7JOl1>|-1FM!$js{$gAvu6Rp zlFdU8l(PkaAWJduT;OaV;&;4X%wxrThM4<{xu=-BiTTrB+WkjBx_?#7FN^tcF+VKk z+r?~&`69s<OcT@nG{K&NyLxK-8w4i-u~#blv!isp_W>F2zX{d>8P9P*#`F9P&377* ze3^pW?>rdvZAe7&<q2-+rp?QMOxJ}#x+@mET<}ss>PKKXcn;-z5O5L@R@n#Oi23sf zka8XbQV#1b>2<&%z%zh!=LMbuq-G!TKMsV|@%I8rw}9sWX92T-#{-80dkB7pHXLnU z_Ff>%>l;8+k?bwNZ2Ub6WcgbNq(4PKBtbSWJSL6@vK*fd#Ga$<fk4)qA5dv?fbRfL z1O5X@xeo#d0H*>60#PPay<odL3}zn!4-wrN31Tb4No*2q6s!}RE0`zf6Z8nS!m)BM z*eF;hI9D)F&?o2-Y(=>6+Pz7zQLs*Mu3(;^PY|HoZGdA=BARj2N->*pRsiuN-Hgj- zBiuBbar_7|n{oR@aZmYt9uW8DyWkcvoADKQ7E_)X*FFt5G@Efc_i@r}#?6Dpy%{I} zQ_N;uzF5p=9GWBU&A9ayk#EMyCyW2)yXZH@f4JlGwa7E$`lG~bzJp#Av-xglmh>>+ zQESA1^WAc_@SAZk>lNc?#@%njPnyj*{dAaNw4X*8oaXo7pVK_i#s7|rA8m62e}#+w zq)Q(AH>Z5QJI$Q(a+*=M63kD!++XFQAM5gOg^Rw^CI9Cx{_9=lYh3OZyZmQ+;tVg( z{W;BLF8(wZy}>2_bC=m@B`J?+ox9r1^Hd3nhLvvG1RIy?;m#BdA6}6#T{#sC)10J5 z7&9+Q>F=bnWsV)hIK`C0He9tt&!{*!?O7IwU6L;11T`rRMtWXRUhUG%LeG<J^|3JM z&6R1J%dmMpNs}>?Hpw!-suIWA%mh;sS*3oGtvFK3f&WK+$Md0`x5g36B>l%nRB_yS zTqo32Epmu<GrGvBw}&Iu9XgMbbs{qnlWmix=p4aNNto<pJ_I?q;u6MJlvS3x&fW1; zUbJR@aS7^1GBq&|9YTNfUiZVOaCWDnLwr2Usy-mh4q`mWDTr~G{)*~_#htlKLA0xx zo@;b?Xjir*O42z*OjF|Ig~M$;JZKXf_J{;3Rj0bAq2jk^&rZ(?oY#pSqtUq6(8oug z6IfhcT2^JB5=gD*IS+lI$A=#tjD0=Z(bjhM>{+fUbLj?8i<mLSQ|AOQ{8i77Jty$R zG|f+W^mce1=Da97-GjIIQ&c491lY0Rai0_TQsfx_XUx*_G`AY-npcIkyqxpJJR@-V z3<t|}{q7U1xsZo0$$s!{lko7IKqV%c%~MoV;Gf|)CM2)O%M`0Rk+<ir#BdrHMMd*! zYmEWumS@u4#Fwm+CCZhvFQvti&P9xt@HOG1g3p}@pYw4Si6fnh_~r`j+J}!NK9^&{ zjp5sm_%2g6D!cU?{vYXFL}s~W-FTeFr4@<s#pm2YTNqxl@WZEVvYzaFJ)XbN{t>K? z9h-PA0-uUJQ}3z5?|S?$!S8>4xaO=DE%m;WoTmDYv?YCmCD>(vFIucC#?o=Qy2r7_ zQ>i<~>U6Mv9H%@yvN3f(xi@?AWO-Kaz2)i3>yQ<SNW&thVXo7_Gn3qENuAR7p>ilE zP-B7(MBFn}6>Pv~mD*1fjCBpihL|N#S&fn%4%k-E6ZDR$I0zB-hB~$d>$hh3>%Z?( zv!fllNxSBBbWF_*f;J1@1mR6i6ZH|PmGi`{gW5YIE0W;2zf<r&Nb*8b+Y>0mK?@(V zyovfX?7!z*FxKmpVC<-%g^eDH)Lh4F#8}*$>x@!@U~^rgR0b7o^)DDx8DOp42$I;0 zqeyGb3$W?9EQ1MpB0bfT>o@j-WRG{%Nwllqm_bi)+@oRK{iqyT0(PQcW7Vh!U||k^ z!0H<CumagUCwn(!)E^oi!8-S-dlGrEkwwMBln-ky{YkRylgcuamJQ<uU5a$qCs&XY z*}<5K7Pl9Vuiu=(I7Bm>*YJfg2*%bl(jCItrK82cjQzuFnuKyxM+;SbA<tDD@ZN6k z*-p$|eg8N@5yhvv*))-m^=2D}IvPFI6m##YFX5Mx9{(3F?~(vH*xBC{xe$rZXha4! z*Qpm3jkP)&J0d-h^c}lU9<Anf=(N#Wbxg!!Yck=KMfBetm-P{`v9-)v#t^5Ae+Oyd z*hZe<ozjrCIJD*cZj(x85AFrEZ&Mm72KR|v0L@k{*rSBBPQNPLF!C?opq^e58+(BY zI0=_Dr(Xamo>2YE`>}|O74K+Edpaqar8z*VXHsnW;33LpQggxJA;#)*+v;*!g*u>l zN0*5b70wXvp}!J-24m|ON_D894xG@pUl@#CsGN%vty}i_xuELu+hsYF?$jw~v9Xzo zHOT{1>bdY_`I|wV3{HWlOLWXfylAdd^+H)}91fa`omPA#2RiQHoNutX8`iNqlzl?$ zptk3k_;PF1Q{ZW?8x0|>!offDKP3jOwVe2Gt_vIae}=7U<UuNcWl&kDGH$J%s(7mn zZ*$$k_$wPqK8V}p^4eT?JKpHFxo(vqKZg+Wf++aCE&>Gqa+_<N;j-4Q#jC4D$M(Uc zg;sOOdJS3tpaB3C{|{)?(7Ng@(C5-t|Ah6;x_2S`fu1ey5W$9ur2tf@S@Bj|A7Z;5 zA@SebJ?jT({;L0GxOY`OgVr!=ffB4YWudlI!|H-Wt2wax0j-4DodPbc&=4CL{W*Ja zvcFF4x|Ez;QD;uVfw6aouHv~{m+x)w$1Pu<%66iVwGHZ|qNU0eBu${CXkEBr+->lS z0(GMVU0@LSgRn(X$?(NJK~FjEZnkJm%7L}DjXGI3Gix^a@K4#AbA8V-{TfD1R&m3o zj?Wdf&^i+vO_+>O9mYh3$}uK!D0Txj4|YWKX|_=Fgbc{TzP%f?7A#n(Awwtz4e`-B zC5nB*ZD5jYi3QeKT|?HtVuiQxB+8QKSWo>M??f>Cf5wo+W4+woBNq8(U9jUNYzXUP zeZBHS*dCz%0i0F5$ohKAr<wI1dK-$qum7&glH;r|wzT)Ff6rV0UB;5`e(!^OYEG_i zK2+b4zT|AO_5*8uNB1QIK{`~6uDs^^VD8SE-@upN>dZ?U=h6Ju1qd>fNDK+Y0z;W3 zCXps&$jKPgt44BCCq(2zYx^J=^wzY<(2Xp}D-UspN#yjEhq$W<>BZEGoCIrby%J?} z?NDEb(Tk$_tqBACP{lZ;zNu?{>-R81{X!v*NPdHJkotT=$ePfH&9^UvjjL+sVpoI{ z8((#?Xoo5ceM(c#Ia*uQxh#h+3g?z&o>lY90hBM0=T}Z))zRC2bxHKDVhst^W2Y>7 z?X`H1T|XpNI~1EcTcArECtXyQs*Wu(JA_@e8GdfEg{FM(6I+6JhDst?1A-+psj>3S zVA@Net}~#mt|8i@oS6~W($hn+u~|w5A?}mdA*Ez#FWMUU`q*Fm033?+7n7xXv~AlE zKo2`dY-(=k79$;7gLo8DiIHuJ=kb&y3$5;dsVdH4xL%iBq=V{}^*(0(Dh;bW7C7CE z1^TBP3v`{+(W=`p({sWb>@2s31Z2P^AWH1!u4t9j?oJid&0P|V4gsNH>{;Fa9*hh- zIKkf~3MKy=S`cv@$cTQ@&N0V!)?pNrV-iLq^!j0;#KVT9lCBXBx&>pI?Z}{Ue=J1W znf=s8=cS2^>PfYMo4ObB_)^1)JDqzU(bMA`>iP%{z~Mv-l;Q<rI7o^Ue7FchjWl6n z748YfFzCdYK%5eQ5u52(+^KVl=UKE5a>^0@K${_2AJ#KZVJs^PTdCn*g+)5qV2SES zp(!ITxaEUx*x@_ZneWvhREC%u^M*_Q#2(k*FgeY-nQxOC(icN%Vz*%0R^H#qYJm3j zi{NiV)(nqHp|GVo?ojMv6qx9VXye!OC<C^OQ)Q^~%8dDgR@e64QVDf2505F^6U7Nn zo?abp9|%*9q{POvAtQDt1Eq2zE9}ULgj1FYIX5`Ao=#SGEIl{(ha1ibmb`ApC=I<r z!7c9~XJ=<z-kycLePfbCBF^~igx%B$4!gwsPVnYT+nZtV=Im7749HNvRHX3bqd=#= z*rx=hLQ5;kQ+&jIRqR<6v%O0f;6j5Ev^DtJ@~-+h5<Xl4g_jdE!?EA@LEKs5kDt^K zS>$2vhtrhi#THnWL)&nE$E&(Oz7?%7H27rr(|WXzLd>_}n^ZbRol)%<sua11VQo_R zBlf3<nmH$fvQj`VTDzgCOCO1|YiRQd(xFXwB2Jab;bb#hx0~DPh}Xe{cultBbtU38 z3yNB~;kgtM8p4>I94vX2I$u;t?)oevh|ai!@ySyI0sYZ%wZBN3sD^QeLh&GPMl?Ix zPf$^*EpXZ6Fm~Lv3S!9G9>mo%*5}l>X*X~=62zvZV{uQ$=x}U`4|mZ-CP0&qsbe~1 z{*GN=@97U^tw_+?cqlfiKpd|E@kzcN2xUEI>t@dWq&O#nl%jekZ2m_Z5ojqancoY8 zq8o5HeGWdMFr51oo6J?laB#aCLP8zQ7;tA6=6<;Roxqs+8PT(;O~{8}ZfWhRf{Kem zlnZszBr=QrsK0(fhOa#x2N_x>HH<6`#R}nF_&^`LU;r}{jna$*_}A+|sAO?3+(P8H z7NbXk0suYj@EqrzluV_i3ESIuAPtiT;?wa3m-}_(e4LRxXJUGE7>+cYGchB2X3Xo| z@PDxryc=FVYfm&2dW!1b@oxF35A-frEoW_y;+$r$b0+qZM$oi#$ozN>9Eut^gf*~X zEK13T-GW`!7nfZeKEjHbl;HM0Di3}#-nNlEkfz7_E|%X5A9N#3=EtV+v=8$7G^BM0 z&tLWlmelr2iaVUCI6K;EnSH_8@2?!eF0~tuDg^r)1UnpSRJFEY07Cy>x59?81F)@n zX~Z<4xaj7F1vxmhcrbD)lwIS%&;X=88namBl|CVBF}jq<D>$6B7+pxOS3=e?s`P!u zhD=vmXX&f<CtABQ%J>NtTPVR5iaC+R9$H8b!lO(1G1YgV&7GWk=!Q#}U<V^t24gp? zc$GlccE4#jA%v!PdEX&H3q=PnnZa1NuTP&#zNno_$i};aj01|Weld?hwsxvA=E$!9 zj{(Rt0T|8zjCKZKOT4MmX{G}(w$lJ~L(x~w?V0+sA1N>tDR8*LI4AB0x*W#u|1NgK z&kTd?ZUFs#ruxqN8uv1(2LCKIblK}&<-<!Lb^-3Wilzr*QJm<S*b676P<(qp?O7Hz zw#hdkkM=>!7B$oG^aNUGv?tyT+n{<)Y1+zZLPhTri=32>jO*zivn1Vn%bkc?Z23tU z7^@xcA9G{I3NL8WNy8UXbZ-0gD1#@Vf#$ieX=AEkyL0&^W0s;I?p!`THu9t~!=wFT zGfwI?W@@jXw_y92nY)9yv#mXAOti)NJTedpw>LmR`nK9`5ZB&!M6~7Wm*JzA!toij z6Z3W^^k}}&sD*N2alm`aG_<9N4}3;DxIMBomVuK)UGe#09UYsRj?#FlRwtZkO;1-B z+w?=L4+o|NnCOpPmJS*YUT0Xf8L_3kFouEY#$ML-z4ZBY=w{gw?cUrqJ@bSUR=*ML z(VU-N$1%l0zGk!{6+_m(u+@s1k?A-!!!{%_-(sV50XY~!N_9lgY}_=29dvGwNH%gl z=OQ^49gO!0>Z?i(Z=9l`^PUP9sLO5TA^blzlA-Y2XgBY(&<7ryl4ZTJ@?Ay$R_MfY zqkX*3Zpqm@<|Ymuyx~3V4+Tqp#dp-(8*pTQgQ}wSF9&h(FZZIzO*oLn;bIV1*L@l* z8e+W-P2Xv6@A@I_WlU7XCJx03F<86|i=9?<w+bw;HsYGOGAL#1H)3ppL19z4p$uO~ z_LxwO>T`DB(+mesq~D5`#{%19g|9(j9u6_QwCh{+Lb2%Xa{^7cUF#Lvy|U}ubE4bM zdei$vllO^(X)hP#euB&Y-p0*MpFpL#w5$bV)TnRy&v8D=qBd%z?z`CNDVg5(D6DWv zRNI3<W|Q*W+LF@*J%;^*CHV5xQ|Jxp7%^k?+jS+=MH=&29NeR&!eGp<@cnsn!_mQR zIy<{Y&Vq;Y;GsI@zRYj?tcOf`IOM~TFDi|>{&KdDX#d!+Pefzbowp_iF@6eKJ=%NW z^TF;?WBGa3mil)BNYMI2-J;J9O2ah5IR1+~iqFSA<|`F-{@3PReS~gi!COjIgC=HU z5i|CUf7YE%R4aOk-@d0~iNV?7BT7vS%f?7V*X7v}RShO8gpMRTs~d4{cVW;9><3<s z&!4&YvT22RPyLF09`x(^Q?0<h`W3C}eTEePO@DId?7%@X6?8o>-_Q#|$H2X->Q6Q@ z_GjehsZ@wUPlg{|3O(^7MMKCY?FkhAHH`cALKO6dQN0mfHGixEr+P5kFCJPuY%*ai zs7edRqNp%|{c7$Z7TAMBg{>i|)d*3?cpI;5fRDe2kEYOlB8APbl6E-Lm8t?(A!l^n zGt`pzI?xcm2U*!YHfcCN3US>5(`h8qDY%gtik1gX3tQPd#ioz8X13z&Z!K8HT7ma5 zLB{fcsWCHIg&;>q#iILS;A<E+M)fl)E^YThkm8T!OX}q#^(NV=hb+rOs<r^pO-@2D ziH}mK>qMDrQl-;O_vt!>r3)D>$0m+uLY;@xuL#WB9W8MMN<-0#57&d)d<-tTt24sZ zq>P}|l{(rH!cAxoCGk*_@NtOhA_KF8n%5Dpc|9Vh!{PqXQXo4pWVb)p?T<vAe|MUy z5VLd@&~-gFJ8gLTZg<-~I$-To+Q<G1tr|*u&x%H~z7XvTFZ59~&f#rBTB3q)+26Om zH4XO_Y-u~T{++b6Ez0gV*rjd9;n^BA{^K4&INMf(9|OFN%uKXm`*Da7(CT0LUr!!x z`<mxp`F$E*R$!`3H#f1-D8s*pQxy;RP`{%KZjJL6>^!)oOJs;)tKT@6BE74|0vJME z>tbA>ke_t$FTUtt*tL&GNb(`hPN?Mbt>Czt90#pel?a}w?)aCwkR$L9zxB4BGu;F4 zblNI?Y?11XsyXCMmnf%JR|#2c?NBtP4VR`_>-d5!FR-rn#R?y@CS?^^*9<AJN{0G5 znTZcl&SrL;8XalsCj!2ljhM6qrg{D;bFlpyJ0IF|QT?>zb0huLBxDE60y@g03FmrO z_eQEXq|WYC>Lf(|VywBe?L++)pV4}hs4*^Ajdt8{S@0Ycf?$2qT+GyAfwieIl81@e zVD2l+KW`tM+SRaBu1>UFc`Xc-quW)2whwd|BvB$qNd%+Eqm#tt7S<M?1KhIfP*>a{ zGRcRFHwQ5db+mh^Xh%=P3?y%(jI+LmRL3nild@v@KCS-_ZGZ)J3;9E>eB4F(avD}} zr6p#u=`@|7!bs(cD{W3o70aG>EW4<Ptyi)14#CwXee->&DTB^y^m^*IXISX)@(Y^t zt395&i<|SY>!I#qQ@~?&YQE2^Z$a^DuD_F|43AA-tEU5Z;Kn2CuI&zrb*G}(O;jG6 zC@l1%c|r`w2V>Dj_Q+_7bO!{4QY{rk>43Yj_wDg;9;T~#e%rg@fZ=W1%+s5u=i1x0 z9!6=iIE7#j0MD-9bSKKJ2NzYq^SQy5FW&>BSyF`61QfgLz}`L^FBjzEWqL67vmi?? zK0ovH^lis3)HE#=<ByYqv70Ve3{99|w7%|W!6K!mcHBhYaM9!*_4%fB)m;ebsvAtu zRW}P7IdDW&*I9(4Kl^SO*@SYtWB#RK+}aV+zTU@1p@|K%>P7v{H!&9w1kB0kRU(yY z;oJk!9@0c6S@;i5$m_zeD=)*j>mTllWn}0MG$KN=O>3EZ7%^wm4gO9Eu=|%aYGoSX zgj(l=@oC-I8is;N+fCVPPxQpLk$d=YML74`Ae2Bf`-AY?6VmFm;tM#j8)StucEi$k z%;usCvu@hRV8+Ji5K0*c#eSo#SMQDfBNV%dWtG7?CKUVGcD`F{3C4u1ML}FiE_8u1 zR<l;Jydv0kLaXkHIdz2588d5dj%3#7=O<(q=PtsSff=QOi(Cfp?dKsV-hiI74O;ma zjH2COq$VoulB^^QL`SRL8Dlg<jeb8I+*-$b!E~-4+?wY!q(ypyB9l|lv*A*=fctKv z$i8^=;=&zwNM-u1gU}r4D4HknikV(|&>hN6&r%;z9}k!4c2&_;kxTs%#oKrfMtb>U ztFpM7gTc{0fBg$tEWw^gUp21upHYxipvTwHbc4a#-Jod-mU9YD+X6k9(W}TM<IffL zLepL}CC-8501R5+!=Uvpc2!P2n3BM2S|OSx<3fHCeSnLGP<@B3JjCH`^h`T6c~B`6 zJ&~0|FKFpcF3k50M2`nc(@^0RvUC|$Jh*__yZRe+VQsviN+k;>4HE(xZWx<~E1J56 z^+y3y=eSVp#vp56&v5RCvM^MbyCA67=^!(D0u{&P`9~n3a`w*uLs}p2s@qgYsjGAB zVU}I$o{t0@<}?-N{yQ=jvk`gqt%3S)x<#j(kNVY3YDvBGaeg@WP;^jxHwNky`6M#U zY{JZEWJzJ{an>LB8C{1F0g_4&&g`;mCv{Ji)VzqO1^Uf`aOCkfugY4-7d(FG;u*qq zyP=!9!)TJ+ppH21nJQ>$gcYKYzwF($ArdJK$1#{{<P>$eWX^G|=Lq+^>)I!DhY za3&wu&V;DskoH!SsbT9A71%<nD#(QB9h<ogSB7n3QnzRNn^(s}J`({iG~w1e0ZdZI z!=1CY?E~qbP>mDXeebI65E`ss8pH_lb-bn=;(1rS1k#Tk=26*h2D)k}+a=gNw!3?G z_Uop)$9`mQZoSRbfXh&kmW?pwqkRCHwlC2P+9TZd6V)X9egqzt?MK-IM+|+F8=t9Y zdGNJ{u}~M>K_FeDJ-m*hI$>CVaX9pHB3}NLA9UdAqJ!I@*(dOs2}3aU{91U%s&t&) zi8a^Lj!!(t?fy)SN5np0eMy}(kRI)e)k?c>Q#`RrdG+sf!Jw(WwM!u9KTyAUCfc$d z`zg2mWV6`zB7*7hZ$>MDO7C6!I84doEIUi^5fU9}2MRhP(U@S@lNup;*Zu~MscR*@ zZjwJE&ZWAD<AU|q_wk@vCUcyIISzDsSnAB=3~@J2t$+SuNaDo~I#Jb(5K^pT9rxkj z#k6K<sqD2GdkG1d`ulU(rKurJqW(Y~QG8ZKnpHZ~mE`@m{RJ}+JKW68K!|<#Z0SQb zpKHt4Bb<ZzdFfH3__(>A{RY!DReR2;G15A&nip0cb&iPZ`G}t$j5+4eb!UJ=a#m~& zM{L;ZGLWjoZl!_R#JE^(#&~+M8sW`U!Hh2%B`i&1YAWdix%n)K;M+LiX4eXPa2PAf zX#bpvB_j|dF$N}BXtLOtYg1-UQ|_`1W~s&277Wo(+q(v>?LYDxy}$(Fs!oECXMzwP zin?OrL)8B}L}Jp9VwzNDV~@kDkd8qvF3?24V16Fvpf|9k{iFY7=+tP0KbuYAY#G{^ zg&Y!(!}v*euba|+=bsQ)P=#R=%6L;`fL-{fpz!ZdH6m!eL?IpTq-bQ+Eu4oP-f&T* zw+T`ff`r;GQKmkf#5FdxHo&<hf8E8N$PGbU8ydn$hhtI92r__YaNmdC<blzby=khN zgIUl+*4xqlgAZI@<m~1>n=|27B``>EYq~Cc*@rQ6ZlrVA7_#mWpZ=p}6cO+n1|tU= zMvXxD<H2q#;HV{b4H^+lE+I@9VCHAE4TCKQqzFg^7fw#-12vzP4!e7J-PQ%XDo-&~ zREx=`frd19(I0|vymqD(nD@|jpk1*O(7E)>48Fi$cabNO6O7%b(+pqwdn0?`BA#Yu zCoJ^Q#;!t|?Tx<Iz5#yR20swjiHLIChxU8I*k9BBD-&3Ae-FmBMjv$is|)J`d$~Ta zR!=A&tu)^DH9;R@nmxywfGU`{&C|c~-~8%lck~WlIFE!04|{>2nra@s&wdEywPPAN z^AF9n?_h(;b_}Zem<)yzeS7Xf1aRu0<(&K>eyiEP<x|}5+3erdfeTNzuUxT>9;m5> zbMl8KTnAdvHToJF?m-L)n$EOn5DgqAVbVF{!|sO!+p0Fpt}+wnvNY(Xb5lBkr8<Le z5i3;y+fT6_T^~%AL!ID`q_H;}Xl08ioo@!A#VwxN?s9Sl^6;T7DJN_?R3DSLo$BC3 zL<dTh_d<6yR%5!d$jpvS%)&%7?66vdK&ytLhhKj?s(>T)pu~IW2rh+4f}7!F0e10- z{xB^y(4wVw$DEDd>W(<sAy6?2ChSSz+8ayEt-8cyU_qf_+`rC{NE}49!&;&$Bn7cx zp8w#MwCF|nqWR@ZP^MjA?by<m{`D@*Q|7)B861wSVUu16fhU86yQ*<#^{1;37I+JG z6j(vbJ-j@}Z|~tcawx7ap{Pz3im?fy=oSyd9%mTd`4{fY_H_~luCk%eOV~zYYS0?9 zBy$?l<Mq=eJw8CyGy?~Fs|W(}vp>O8u3$X}#AJ5?rrUE5Sf6<dw`0^)urroFIu}~; zccRi9SdEKy3qJGbwpcBGZy~-9!2sR8V{@U#z8MUMR__4AH@J6VDvJ9Ij1eDB^RBLg zU|3<6^ZKFqtX{}$!&Y((mI`ufhj>?WNKue`{ZQ}foAK6MZ-(^h6GYX5&kL+Wy0N!I zj;Ni2sG-f-!x(b%{1|P11&|a`t|1lFA4-p&?N~rMMJ~ZGgD|%js(Yc2s_-?hF#(HR zHY7Ghe`)CQr3Vh3_S!6$6Hk+TxEf8GDVLmcLtPqzqRt^AR~Ml*mC}xww;Z&6;S-rX zl}r_U9iY_*Zy1l|&B>|-DzR#ZThpOabz(J>{%Do-vD)FW=_4`m8Jjc|-^qmsa(8(P zvF*n>K!X?0!3(7EQih&s{D?MJ!Ypa5J=A{dN{YRtg%*_CVZDU=h(gvk&4KTcvlubG zfoAu6EQY_uF^ad~b?hMu0}w2jn*GgbWNYR>kGyx`yJ;jbtiue5s`SsYkcV=ItJRN> zPL+g6L-Q)#n^}&-%@*O<9d(dWh%`PrY`q+^ppWy7_V?5W5dz-lM`z+sjX!sxsdQ!H za61!6{!f`W%*YHVnTN^5(bn{_$i$`2OdK7XKGx2}$;`yb$(i`oDJl~;(<f%)zqR=p zm^;nH&btbh=4Fte7JApAp>rj~XgeXs{!a-p$jBV4WI7T;eS%<>XH6r^0`gyaNtTx6 z&kAQzJaS9@#6XG3%c|MXMd4sxUV7wM+^4)=dAK9eogF~OJGyTEh+gOlBegnFYF(64 zIlAKbI6<n^cxNM$u)fX;-^GaSuf!%MQC@UNs*kcJ<(aPb+Cc}mZ5ZXvKO!=>43H#x zP}O=niJDXrZBG>$-905tuOv;YbHhN65gk;b)qo*Bb!jxja$v_vL2Pr+<6vy%hcxBv zEyz6-c@sC0y!!)gBsuC8zcni_XKx<YZ;oSopRVTDB1du2VheZWc{hA!rfX4%?%7CZ z{xc@z6&&>qw%F&juT}$9wN{;{!j2&qb4s;3m^TeJsIHZ30^9@;Ia$&r=3{8gr<nSt z%u}B`m<eAC3I6&`s_Tfp$6?N~b!U8sc2>pJG;Fc^crXo>5%lX>CpYs<nujL|XMPMF z%B|RDkNq|WJN_nHHfF_Ez#hxp4cJxGP}l<cYtXT**Un@~8oS$9wEAO<F)uc2XsmD# zZbR6ITM>5Sc7&GLoY%1Jgg3@pv$L=o*-vk;$BaG$taM;|SK$C+2NpOOc7~=d1GhqM zZ97>$Kd>bPljY9xn)J~<?IcN|a@EwRC_CC^`|=|6fVjK}y&o<wYKR_)pR#CwlUZW5 zK;w1L`qrctGlU%`GDLL)!QAt(F`;4Hd;P_`Z_$)Ey8&n-e@^8<<T#A<)Nwx!h;iKy zM|E(y9sxDYm?{JuUIkZv%#VKzvch^zpfGkZl=ikJMmnLA4u`BcCKM4@D8ge_v_>aE z*D$4`d~jd^1-Gr3{`>+O{r3S)@kII1yBN&53QTV`eF5$HWCC-31RDmPQ0Zxci;+Gz zjahF&tGXH&+Bsv!g$Z9)&*IZowctC^ra05e-jI${naTt2s$V1XF~_yk6YWpE)M_3_ zk>Xn$pez6V2qx;TU-}#;vdplar(rW`8^qn9uot5K^5*x0O~e<E5cMY}6wv4UyLeYE zLTNMk9$Q0SF{8E=Ll_gzj#kx=8>1TUGffh6DWPa`T>LB)D(U#636l6DfxF#u0;f^% zHZjuvHRT*}B*sstawDxSF3l8lwzO#U*D~m6^vB>@2k)@$OZs_-bvpx|d53IYoB{uO zp8x~0wh+1Zws**uj$M-HfiIci)yVKanGuU~`SLLFWSw{&QdK-ZKx^g9=Q&&1+#HO2 z9h*{(9kT~inqkvAM%uChhP)fh5JUBQU%RG#jx)=u2hQ!I>RgqPe^ZitR5eyQ4%m7I zE$B9WiM36|!7<`Gd>73q^fF$Yk>mx^^-f7w=}cYX?cIn|?aF~&q>ePhc=A7JNYpmA zP;S7ZR@Cmsvc5{RCsn(k%6dY#WY5Tk>Q^j<=6khV!1L{jHDm?UAZ;QRw^{JJW29=m zSjT|M`ey8|12Ex8659LogVyU<=0Ngv{7u$Gmfis+?n^^4<)(chw^vYIy75(&@%i4W zZtXa*5A6Mg!b)6CQvC)jerSQ^Kj(XEzQ~yGZO6-K&p+mS-yAR%|L&Q}dZ=Ge=YsVw zr3Z1xEZX<zi_bBn=7^N4(6|-AROk;?)KrD0Etc;c6<RMh<?Kb3_O5yhi(!T(Uaj>q zY1?xk+SN*l#ALqOxrrbgJ$1P$e6eSJ2xnvrrgVrSSX6z%+_xhq*Uk51wSLVvD&H}# z$$29_>u%jgSE~PLKNiWG`*!r`VDlPU^09@-U8Az48WnZkuW|T$9nxEskDsFzHT?!Z z>bKysDGo@Oo?AY`-2^*wcSTO-#?=nQyEm=DR<OmIn5V0N{k0eO5Y4sPC@amiSAF4R z7#~lik7lf4PhSUfH!_ZDjdD->erNj^t0P7GgV4z;<k9Mz*BOSx(Q*#PE3EU~F?fvK z>O<s`Mzz{scBYoz#(>?;ssTs$jkaG8u%unL2lnh3&c(G?%RSiJB_k#Mkz;SZwRgrE zI*>yyyZP76Hao4zsmcCeoAWQ~SRmArjd;P2<;dvz=h>ooqURdPXolIu&q5Qg5=|9a zgcW;i5<Zq4V`^Q?*}m>T6Y5+;=#PHQuTSdPiwK`M77<i?#h#oC|H`LuZfjH@M8pYT ze5tS6iqK(>6^SJAip*k(!Ifd}W5LP{QL#6GZD&g#DXAZ#Nt5PZH8Slt`VV3iyGx<< zVe|wrUeJ&9gkBUg<Xl<2V<9ru+KQ>(u(X?DYa@58*rxUC<EGd~s(?TV#aU+ARH2J@ zY$G*6&{}u!Ty~rtzX3v8#*Oexm7?DDf6id7)ywYk;T7+g%z?{@9JmB0!ec96h#zWn z6j3G;I*h4OPBZH_-$@@(4%NpU65%Bzf;wu~x347IFuX{zp`NSx4ap)7e{l?PlMf<P zMxk5uuFisRE<b3+7WR4pic2r=1}tacV0jw-Zy5I(az?vTTL-<XSadgc!9cm=Zxp2u zpo_u<Xy9MIxH+&7EOfiYxMgi>7`NFNaczxifqz4`)jKwl9h(!Bqv*cP1AhwPySVxI zh8uJCZte=dthfCg7zsC<%v#-~av)ONv31OxeK?dpOR;tQ4L-42PQ(b+@X8_Dk%iWm zCZga9rM(@_eJ^s9cSAldarZ@c`fol)$*kMqLwm?;{GOK^KwOi%@g}g3g=5;8i`mqk zXA1C{XaP-A3w<SdOht2FsI`7Ha<c7A*jekT$e@iX53TiieC2T8T2CDYZQaysn6KX= zQLObd`1+}O4f6GU^*WWW|4^@&^L3|soz2&+>UAz(nYz|`>OpSf(z3OFAzvR*uN8c~ zL%mk>^%nI?H3w}g)$8qeZC_@sUrM~zT2Ivn?d3?|tF(#)^qZdcE9!sfQ^UQgA0Go# z4sS~xRR2TQh|gM2H45#y*7~)?9BchL;#t=ETZkOr?tv4NT-N$JTK9}=Utn3DzitQm zq}}-a3%`%>`wBm-PIMfN-wF7gh99rvxB$QL_!Z)JIesPhRpPe{zm@n|`28He`|*1M zzb*Lfz;73R?1~&U2CEQyodB1>B8Tw>H*P9I+D3g8{>{h!6#qAMLFD}}OzX{}-a8Y7 zU`hJQVA}SMR{!SX$nnB-(Ao|nGyR+UDT^7j__wk+URlhf#co(grD+cAL5jk(TSE&0 z-<tcdS>Or;Q=d{mwOe}=9P!Iq?f%$54m8?UYunwMyTIN4!D4%*wr$yrKzjD~6<ewf z$2Rt^fqh*AySoNj+J?abEw=xK^Dshey9g%#<`WpqO=+2o&MXF&7uWbVpQx<6DC^5; z&C;vfUQQElX;G#tX!;VqD$|uTePB#i(ZuK~+6emjiZMN02h$72^aq;$2$MAB^&444 zJ=nq1evw$kl<to9O53PPY>{nL1$V0Lp5-!Kx7qC%+DxkWonsqS;l*OH`a+G>sWJ?m zMPg)8wz^`)7OPwsn#CIl6`k*pKqxd%9c@}qHkG$BLTKLebo;5+Rk49uZ-ijmIT%jP zMMBsO^{TaSvN^ATD--bO+o1IiY(DD`wi<`z$apRbsxd;txCV#&$a&n?&vPa_ysKs) z-?3{A!H@D#H7`4CAAy&3kfcr`o<SQ{%9(u0#JMH%a!_$CEqdT(BX~LQ6OXPM$$%0A z3lIM#(dMt?-nP%Mo2d&X1&+fn3%|$kdk(){`0dB<Ab#oKI~G45e#7t^i{B;q&B3n% zzw7b48NWvScz+L%5B(LtPw_MLmkZ4pc6UA_#w4DXA<<ceB503N%^`B#*{gl2xZxV- zt(iXm;H=gib5X9LKZ_p_9TA*YS4AOgsg1F=X=Cy*!yZkT(qj)Y^w=Y8eb-(mpBs+u zMGsO;@2h(JW+t;4SDO%<VTTG1KYM%WQH&mDA__lOnWF@m;X&}n%vP~y8`VP+E3AZQ znfPXAQ^Rj&Y(C-~75a2FNrheG`WxCY#KrQTQEWC?#|G}OX~hhymqHYSJ;3pi(=cuy z)19gvs(MNYeufuS`VuA<jA)-N8oPdt=sFSY)Le0-DePn6=f(KMZ0FQ3uc>VJVa(k{ z6^3Vzg0Zjm36~i61IHQeP{n;;OW)&>k{m{I;Cp(slm$k7s1X=F3i}@Pz%wpoU7{5I z9jMo^+!G=ADC2&XhC7C!bqeP8Rhz<VQ7%;Ny;+4+`Nd*Dp9ePQu@8sxt2G>|Fhg;G z+Dw8Vc5~qvD{G4oZy8{=>vQl*O#8EplU4<S=0$&BE7e44os5X{G5lRGnUbjO<1En= zf}q;!K_dOAFeLH`9JPoeC@fR{Nir$DBb|Kgp^~a~4CT_bj==#pB72HSX5rnF$ZKkg z8XCxzkVDjdpdUEQJY6M%);tp#ZT1Tc^5o&OdjB!F#8<Ve1Chc=!gDjE^bT=Nku(Q3 zG7FR}9Nm(AfdaaJC*2CXpjgoMgc}xZEA$3Fbp#%t3~RoTB=V|B*^kinZ>|5XBN{e3 zk4}9#u)WL6fgPTg1Fv+$;6YErBNe*WuXrsz3SB%HG=HKz$-yq^2-Mn*TZ`)N{2=4! zTYnQ%T&ai~=z7M(7+ayk7+cY#qr+1Tj`+sEOe8Ub_IwwnuNxLMV(Z0d#MSJGwdOQJ zYsz{|XK%#ir-&XBa>cr!wE|a6Mjv)=jHxSJ*A?5zzEV>|0jPE{A`pOJJi&Ff!3QV! z9CHiK?gRIIsypE04RO-UG&_-js9~yBjf|&Id@faYBEi^N4=W-n<xpfB1}yqO3QmV? zQM~ns(2s;Iwc9dmJ+&SY#02V#@d;EV$8JjbG4}<o2gYy57v9TxL9ln&mf8uNkHzJ` zyoVR}A78OUUmT2Eb$OHU<y%x%;L6;<0T90MUK!Az?6`5Z@WAKZt10Gl@0DBFb?dG~ zwUEkHFn3QBXBAd_$psH(6N`Qsn~C{XSsBvP2?#g7Ce;tGc$ig)ImgQ|q<70Ws#kCR zdi6fWORH25HDu2U6$GXfObg8lO!Ew?_3_@V;>E?~6~*%^$~=>+;s&46YKzOh7MGWl zd1fpuGZr=FP&e%>EicuMOG|ylmADkFytcZccv-EwPE2`H<PV3ZTvjwae_9|gdAgq- z3X{45OkYbjugq6o>5D*mO>yOdGT(4twr^0Wr<|9BrRJ!bZ<s`jxNix#tCo23tD+U9 zm4hR``7kGjsq<Ua7FCs&xm-#heI)r76-P=If}wJLMR`etccy9IeDf=c7u5P{tIJBt z=a-k2dM;Ce@Ris4B2`tsisG6DWy3tB(M5}vF;%BjmsL&-n;Xs;Wl3F?n2t0Hh9(9J zriO|NLeu@@!+`>ir?PlanP-V-p=VKfWziD#AMeFW`Hue!jn8sF979lExwyEZymY9q zx}vPOw#-)oWywBfK9nKraEdDGA!i}9z6E6{1HQ_#B?zC=Q0<Z6R+P`HDXv-OE3T+1 zD=uAz%j1em5mm&ebQywGUgA4UoWKQYsV*%Gi)(TFTv??Nv7my=r6atA&f|D5*9PiS zUr<)F*kkUIlkh<MZ=`G~G8k#kQql>zx~6J=c|}<Yj^YTsoEMFhc_yI9;}SYVU1h3x z;0TJZtTKYAS67u+Ms%nq)F3D3Md!~itMNx7#U%?DfyFLa<%<s|^GI$Jd^=3oOv)ti zt564OYN~1u7X-zS;7%f4Mwb^Nvx-8KXZgdSf}+6WnT4hdBvZjNGvFc*8b11R)kfGA z!qk)UT2{&8N>c@-vc~I#$yB?DEJ7jkl|*Z5kh~tK^;Q|g7NT}ZaW%?z1SO-mg5^B% z(m*y*N#0YczWNY_FF|s7<@_qoqO#iB;ss^%s+N`(M~Ydp#l}~=tTs}%DBc`;rc6@R zR5xlfrc5oIGJS@!nHHE_5SUgZZE9`R{K%5xnleS2FwI{W7(a8u1knBY`GIg?ntw)U z%4E;{;)>cbeO-dCkTX!Oqcvp(3`L|Ss+!`3#WkfA<tr{JDXS=}DUP7TB2`MuYRYPA z9YI5|b+Y<cJs`%XVl#_s$x)~0Nn8@rqP(&^QjS*QI#lSw^4eN9ZMfL6yas-#manSD zS5i?`TUHy<=IUaWe<VIrNw;2#Pc?NYS5?sk3wfO*s@+o5P3^f<|I(^5RSe{YM_<W8 zH1^6z-D@ZxREp`IqcAi%R2aH4P&8$7(S#}aGp84Yr%a!2cWL-y;KMF3;Sqb@jl(C2 zewMcPe1wiO)qQ)%sm>I4l5|2pPksM+JUg_UB>CS7eFo&Dl0OAwd_M2sm+C&j;rM*u za}|DR9?lOZJ~5$>)YeJ#%|bt;6Z*SCU)BlzDoH?`7fR{>EkegfJ)b21?-KevMNAI= zcS8RV^i=VG7azcUM&Oq!{>O{Q3p$}M7yA58=<f=h)90!3XA@>1`8<eUs{0m;Wn@*a zxRT@lzR=$SJ(c|DF^A13fM2Tk@iH+!b2KES?;N3D0(vU<zZd%Zpr`UbcB~e>vJ?5e zFtyI7GkSy2XKS{k@U;n@)BLIYzaMK)e16{vJ&2_>K0`Gm$&U#A1JF<Na1J!_xf0W* ze69i|75$n1n(ps}eh{ntd^#&%bFlA#Pa(cHQ^oHQETr&x7{65cGtEaT)Z%yI|M#b9 z`Wis0@YkQN=`0_q=&eHkNhj^kC1+~)$93ZWoWYv@Cg`c+H$ocFd%%_|ey<BXsKr1^ z;&bBJ+8hF;az9t-7izX7_jez`{d+>6(TV#D&e4PzAXWOkB=k@x@jp6SyMG*zs(sif z^x96`pL4Eu{{|pc`}bd=-=x`+;$J^p6IOLX@4<!}5B*OSzU$7@bSb7u^6wJ*WX+aD z|4``9gPtn?9vGn=a$NyWlKZQr<LXTQV?yst{sO3N;M1A=XN0~KJgLH$eZF$;nWZ5q zeDz15|3m0YI*~v1g2T)IozNM-RQXfPnHfB1A!Mn_=gqmA{u2#J;r~+THJ#AsOT~Hu z^i=*IKSn$32g#|*=UHPly|em#t<W36mMZ=Gs!3x^K4~#Y;h!V)+D_;#LNDrse(pt@ za2F(}YQMH)289oo#Z!fEejcg%ZW2IJ`2L<ps>j3jC6)WL{EF=9ry<GxIH3>dgnq>l z=ux4|Feyp?$|KMlgf87glKUrw-o2CXJtK7HPpa}cWW08`9FQt~9um3~vn2ojCG<mZ zpQ`-r$=C9;G$gtIUg*+{B+-W#Xou4}asN}HUk;b4{QoBhZg?VEa+3U~Cu;hY=zmkW zk4)0^t$<YZ?*ge9tVXHQuU6>8w3sCS?-zP!?ZeT9+9B&tD)~PVx-|1i^6wG)icZ}3 zmxh^aspQWWI>$GPMWg-yKSDoE+a&pa%oI(i=!AZq&}A5t<o<r4cb0yy3%w97Q?(xh zF4Z2d1f-(hEA$gO3Exvfe-QLk`OnKJ_$<_r6#h*@XE&EBeWl&;biHnxCv9n;v_8Fh zWN>YZ^@VND_Fr)c3Hv&<eC#tgrq4}X@_S2tSA47jj|!iBM<?+O1rPJ!e&OTyw0exZ zOX_>v(!HVE&(d#2P0-`{dw^HnrTypkwR$??XLw)3?~-3@{vDb-WjMYBtzG!|-K`!Y zH^sf)+?eIPPs@Er*zI(1-T%&T%m9Cr@L%QTcihvx9DH90pR_+o;ibHXz}F#sXSn5w zS;ZfG-wNNd!|;6xzDbQ8>XG4J++Rod1|ZF62w(5R$SVL}uJFxs^9Abd{N&E2TH*W9 z&6gq_?*aeW+!%yMhKVV|xea`ygl~act|LAlgD)a{^E=^VIqioK|4I1vx%ph>l<8go z{;MC*;e61|FZZI8uL6Ak5WadhpP1?Y?cf{vpqBTRn=gg`yzhOl@Jn|SPba@lfBOG1 z_`VUoIc~XPCLiw<&VESye~Ft<(v#sF3%)7B_r9AiMK~+K-}Sdz?n*bmn6rSlgKzea z;Clgl&j{b_PUJD1?}M*R_&Cp?p2O7lewdTH_V+rRoOd`JKf_x9{{0VYe)^{#BVUZ< zs{r4}!uNsL+wI82`t+Y6f5>+`_#XL#mdAMs^%!{$z8Apve~)NB|6%yv2j9U*HD71- zgW>LlMt#&{nve4p3I4j;MTT=M_@}Mc{G7i~j|r!v-j#yy4dLTFMgm`cJl?l}Z^oar zyfwmRr;mg0Y4ANId`ab4_!ysk;M*^JoZnE7315o%^y=a9oW4Q(&-so7eurExF86*` z^KsrIfiFe5F9rWoYH7KngMC^8zayP)0pH+1Yq|2h6tBnPjOqR~_$CS;=S9?G;^mOH z4}1%SPd?*P%1h7ic&_^q@`i%%*TOf$?XQ>_z8T<a7Cz3KsK<oQk&es3cec9A3x_^_ zL^?hO{(Q9qy`$rCw_IswneV&7w_W%+uc02}zboI#pMDgMkG!bU{S9Ha%Uz0oX(ad` z7yg^v{9<N0%%<E;TJEaD@T~&h0^v&vucQBX419mutmVmkOv?P+4Zc4JpA3&v@_i4! z*M*Ps3+gfH<S0j3Jw2XzP1@fV+<anYe8b>7D13+WHv+x^TeQ5x`Fjueo)Esn$=e3L zzY8DdanzF{9v_2m&`a81na@d?F8wgro&F>E#)5C9@GUuvzop=7`4RHCR`P@JC8dj_ z96SxapKsOi;Ji;ld>#D*H|yQDP4oT49X>HL-_m=b&In)4VfcoE@07o2c~7|c!u4wG z&iXV1e7_Yw&I_r><j2JN?zh;ZeBIxz0>AaLmKzjyyZ(up;d~5ye-OS#H=m=t?grm! z&01dA%_nBc`yPA&;gk8Jl;t4{gWq++C-X>2d_y5G48CUJ<9w2OOuSR{3tW2|&du(4 zIKPy@?}*Ps;QO8MRk``Z%=o+pzW)ecQv2+X_a*rHzoPx^cNlpCj`4W93EzOj@D+gX zkobEzz6$V}@FD5-W70>AjK}TZ+a>Z2$M*vGo)Ny&#eJ%B^FH{V5IzhE^pnEhUS25L z7QUqN;23|51m7OvTke+UNaxw$8!G8H#?2>YmYY@JyIA-*kEI?Hz7+N4Y4B&fs`HQO zmB24X+V2Bjy6_$D`!XGCjD3VprVCP*@1fwkQ203Cr5+Q`6#e9E@Xvcqhg0UiQp#Ng zzJ5D3ALqf2B=>3XKg0tfc(w|=o$rozav%6Eenaz(b@Ms$DZMY+d*K`A<`Xm1b13+( z5Wd5;r!&C!YvD_3FC6|Z2j3gQciv(AeF%K}gpc!R>M`l=koOw+a{i{{TX-10FTpoU z_|~}j#LV~(I2QFw_)a?vUjg|3D0~%%;i~}O=fXGmFnqUz?=#`+EI(LpUI5?M!pHeH z^_X-?G0yuK{Qdr}(`Tiy+vUc^ui}54$5ST!GC!A8e#ut=zUjjEpj)n^JXU~jr|>Ow z^NE@AZU^5nZ|ZQ$@>JYk$?yHs(5B%t{hz>}1GfX$@v|L>u|xK4g42K&%m*)3dla%i z1)>c+{sX}sKqTG3CxExmz1ZIjycXu=V!jr*5$1`4J%GQ1xnnBU=7C=Wk*3)n0Ivk@ z1|lu8{|cmkO~4yqeiRr2E&|futAO{zJRL|mAt2?B2U6Z>;4gqffs}V5kn;Knem@1@ zp|JlL_%q;oAmy$STnxM!_T_@-iv96|-%r-`4}naly+Hc28%TftD%dFYcZqqOU@egT zg#^a~F*eU03G5F%TkN|EevgVt`JVzQ|2^PIFz*xdUj?@bJ`AM%)q=}_lzXi<FPaae zyeoi|H&t+=;MqXBKLtp4CusAc9>57O|0}HBzXhcGoq|sS>FzF}-zN4k;2+@bI-!>d zeYVi23O!Hg!+?)~{}eHwDCQnwJ~T=D(=PZrkl}a=$ap;>=KBR#0U55ILjUR#&Ho9I z{CmaxhTs;#je<`I{!XwSh%rm{4PyR@n9IbRFXoHHd>(K;`1^?c(PH0<Ld|gP5`0PU zDZzUMe<paNV71^J!8a%B_>2THK10QP2${un=?0|ze*@b5rQkb2`u`hX6X-GEOTZ%F zCg4CI<CzJhoMXg%l$Z||=y<&WB;Q|w<a-AA6wG%6Uj$wUr2o7PlJuVl77JboWH`DC z{wrUbcK{!OyFZKhPhxHq^KF8w1g`-;2>#hX`jao_v0@$}cpQ-aeK%g0@6Uj&Pmcm= ze-{u<MfMutEx;8(%Buk`hxsbtV&E7c`Lo2F348+f-}vz@1N<A1^d{h~FyA3&3)mCp z6@pcQ(*=hE)8MW*@ImmU1L^;Fc^cmalKwi7;kX+}zT1Ru2`&PXuRw61;D;A$`!|3L z*Jj|ez<UI56f76)59|v6`wAWfw7~zDi?p1FfX~3Z49IZQ02$tL!7z~FI0r~~J%Hr% z2>t7En*X0b^1TKm-$Ow1-7ECl1%Com@e=wtu^%azDfHez%6WUNI>T`MF2P5Dl=~o% z;k;XL1(0$}fn8uf8%VyHLJtcL2a<0Pkn+F7K%M6OK&IoXf`1fj03xc{vw=z;kp6}R z&jr$bU*J~oeT|8?65t2GI^YH%-8})MyWa`k45Yi|z-_ptY#xw&R|<W&n9mZkPp~VH z?mo%&V8_2Fdkc{6o&!?;lY+kllJ9C@J?L4$dw_q({t?>m1jb;#A4vCi0_px%!5Sd> zCIVUB-@QQd?FEwW4Z#gS@~stmo!BoCyi(}H1P22t??fQ|?Fpp3G{JwLujM@tB>gEM z>5m9D2)#_`bHsjz-~~cI9rys;e~AGV<$MUFoVNwH02%II3;h>jf3skv&}R#Mir5DQ zFBTjvm;<bYKkfMNqJM7#>EGW4Hv;M3Z9>0U>{kkw3H?eS%jH=>$~j%={RO`tq2=5G zB>iR}{izqcPOw(60?2Tk2_%1ivF{`J#d%uZUxB3m1xR@>2sR4+mq4cHH9+Ry1witj z2_*lif+q-i1v7wjH#tZ1j{}l_q~M7_rpxogHT@|d>5m9D07)Mu^lY)u66_)Lx6Z|$ zDERXla3k<ZAgW6C^+1MmA&_#51oMHE`^_*NzPErhmjWs0av<gO0n+_<+1mZ*f`12+ z|1lux4~YG*1y=(%!Tu7V=ZXCVf+qv%z6<bA;QMx{#wH-;Z2&U7PYA9CZif95;4{EW zfs}s~ko+CzX#RtO{{T|{LxQ&he+s_Uz!-1|knSpg^ru8{B9QK~#XL~(1R(jnV(u>Z z(b<}R7m)PrK+4-J_@K}i2u=o)FCg@>f<B=iC-kGm{!L^C!$XzzEJt^V`8Hrrn6Cv= zUMZ0NUL|-jknYX`W`W)xNWOHT?;qmv90l|1K=S=wFeX?gcsB49@SO&voc)6}e~aKI zU<~$;04D*j6Z=bn7R&{Lqk;7QTp+`FCh%C8`vU2ISHZS3wfP=FDoZE*I^dJwzf8=d zfJeie4P?5!JxKGt0?dGU1(5V8ko1v4&lY-LAiAvV?m(9FeTW?Wc?HONbHA9Qz^O1# z7V||yKNGkd_9p>X0J{k8I77>M3CM8#LCkjpDR(gNL7)%V9qDkQ;J2r1cW(h}L8pq< zQsC3TdBEQS8IC)FQ-BMB4DTEu>%|Np<y`_~eHsg-KRIGQM6ef-?!Gxq^Zgr0Gxe3y z-LD0I3S_=66LT1t2EK7X#$yx^QO?d3du(=7^g}-F?%%*uL4O0726x+lzlC`ta2@a| z;6uRQ1Ahj50Lb!lE0Ez{1!R1#7c2r&&Satc#r`a@KU(l(cuIHg3GM;1o!9`R`}=?_ zceepm{Q<Hb%m-Eh^MT|WC3v#n_oxK4-w8w&%D!F9%LS`|OqZ_)YWjY`KLY7)sbB?= z;hQ1mi9ou`1hT&TFhKKv2BiHnVt!Qc4j}8nQs6DXDj?;}0y5nS#XJg#AZ4Enr2k!k zn_&LoWX=C2koH@}ybibw^i|q^QGw9M02z*KAmwKP>EFqM9VclyZ9vlB1(Mz<_CE)1 zfc-?F=Lvlnum|iP>#yDY7D#v318F}O$naeXyb$IPkn%4Cl5d3ImzkRH-$3%+4J6+$ zfaJSbuo9@`0a-6|#heACyG-C1;DHmR{{&LbBS6ZzUvM>$a*6~CfpmWXko?1e<j)j3 zbxN*<{fj`Bn|F`be0zc9dqeOUAmxr1`e?ELs-NP^rp__&XTNitcE1Nm_kR`h%VORP zWcqPVjq-jf^kqUX7xO$Z9|t5~n%IAX%0apNfsD^PV!jPXzBOWBBlZh5W{1T-Aoiog zJWR}-gJt+P0V(G$;Gbc>71#~tYO$XNq`#AZ3`d@rbH#j~#_S$I%DK0Xmh%fB<%EFG z!TpKaoZafx^=c=Oa+`sa`>dGPi@6p^c_FbMFZMZNK3mLZ0GW?1$7uc=fRwugNV)UH zTqNdidTYMjK=Qo`Bwv%5pB3|JApNft`!cb=Qp}f%`4k}eGQ_^4mzLKKr2X5#t?=hX zAls8Cft!JU06q=82}r)Ff)@dqUZ;w=4{#g4#}1(LL=>{01a1WW0!Vi^02z-cknt!L zd%s{0L3X}3gYPpmvc#8xbbp&*9q>=EuMsQ<-URb(;2Pir;9OuXkp2t>(%=4K?l{Wh zxew;gfxiL13H&4QKH#r_HNafpPk?kk8fd|s1EfELfsMcn;4{FrXcSfhUqj{jC2%8< z;rl(1;aLe}coqXGuLSrc%!NRPYl7I10p14lP~a-y03h4lKET_7-GOvZ9TDW)4<z54 zVty6)0?eC%<bPD`9}xSyf%rTARxz&;^Kvmq#5@()0QZx`d<Kx|ak7|mQCXNDCu?jt zM$F%*Yx}Q&jQ_vH{8z!3#r_d7H;Q?=n4@A2iTQjnpCQ;+@RP1u{sTaU;}*fyz+)M1 zF>|lsy)a)0ybCxA_-o*B;N!q7AlxtV0w09=+b%kNz5rea^FF~hfDxFV0@A;m1g{6) z0(&a+Led;RABZ3hEE4*qK!_fAiI~R%@i%akn9l|>zfK3z{V_nM`%z;40iKag4Q!-; z1SFjb*l2DB;&0#+f)4{92K`<!|4Ph12V#hmy-4h51Mv);Cgur1%A+zr+H)TQ)8l&> zX#Xm33(PM9n}Cl2@eI5h|DJ*wWnS^E1cH{0wDN$Ky#RP8a0c)W;3dFEfdL@XcN`F2 zEgAsCGZ59tbE9fHJf7=`XfHwU-ipSA*d*8}SSL7FFi+4Y=n-t~E$#&y1?vRo3g!v= z1U-VSXxEhgf{lW8f^!A)1bu=Y!B*X_b#D@E6s!}RE0`zf6Z8nSqTN#d3pNU}9i;tS z!8}2qphvJ3?UZsa*eF;hI9D)F&?o2-Y(>T>_kxXrb%JvR^8|f@9>G?$Tgts)qhOuj zT){j+pP)yu6@^f_7i<))6PzoUC+HLO2)63>se6-PqhOujT){j+pP)yu6_r}~FUWR_ z<~qT-f_Z{IL62Z78Uf{Auu-s1aIRpUpij^v*oyW*xfg5{tP`9om?!8H^a!@Xv2rii zC|D;rS1?b|C+HDuMZLsp_a?zc!8*aYf_Z{IL4a~cO+&{ZEqv2y<MF%;VeB(nmTPkh z>98~B``g59&hu{&vpK)tM)&xc^WJz>W^;b~3^AMY(m^qs^T{(so;mM(0@9iC%=z9i zLO16@&=z@41>Ky#?*e|B&3W|sLO18{??Wd<x;bxhEZPy8&H3Qh5qFx+dFNBaJk19| zcs@kECEe&FNJl$BvpIjo{+niV-iiG-&E|a26&T;r{L=z0?>)4GG@J8NGlk!rcbX*r zoAXiYgx{QZ`U>@!?#=nGyCgp5JkuKFE$QZb_6?}FG@J8gFQFZw+1BqM^38cK?(HJo zoS!O}@R;*Z+zU^-IsZHz<8zwLdHGr~oAdR5l=L(D79JD2IiJtHoOEyW6<j9yW%LgW z5dVxm1dM?dzd1k8?*+Oy`T%}|eu`$JAK^st-{?DdRNOx_UgyVIlK$pA<G&<4MnAzM zNpGXC;Tl8N&OIEz&_AOuVyF0rVxpd}Bt6Y};d8~kIbS+l;%m-Z{~+--`U6Hv{LFd( zKZtvCK76&fH|NQBO8GSBLpcaz`2L=!!&4<@b3T29<i9y@e65(x`Q=L`Jmx%WZ%GfM zKj2sBS1I3|_x?YLuQ^}cQ_8<N@7p5zW6rO$pQiiylXduVq`Vsa9{nVL%z6APh2NZS z`=!V?=OrJP@SF2>_e%LS=bbl**_?0w0)Eqfb6)g6lAq@MXS&eMdCw}eN8~r>Q-3Mu zC;U46P2%31PkmI(<~;gaVm9Yrsauiq#)<n6Bz)%l_8y2O-RLX$Ug+lh_2-ga<~-ms zNe^?rzOR%Qa~?WV^52~QKVHh0(KoSI($}2d=656gH|M4Ii~RX{I=*`)f6RHmKZ$#z zf1q5-i#gBSPx8l{f1f61bKZWX)E{#`n%^Dt-<-F;PUIW?18q{C>WAy_{6)&2(GS4+ z0lGK(CO($*H0Kxj9Ynf056SN&n$7vg^Ci8_dHY8szDB>yRxz9Nn%%{{Ie-0z#NV7( zA0+8#&bL1*`FEBMzUK}x8~r>dqI@7Y_EU=T<23WT%4z2K-)Zjda^H^pbkZ+E`Z&!z zE8#R}BR!qw3tjFjUG8PPY=?KIi~gKT{<X+&r~Ln-JUGqyNH3@P5c1z?o`Ljon(uST zf7liOH7@$GuJ9G2zBuKzqkcHe87}|NbeZo1vy;Enm3|E_`ec{+2ABC_mwBx#eB8SY z7W-*L`E#1*yVB=)m-$Xt`Qdk`)BV-1{CUkq|Fg^dnk&6RF87>&bIO0m6`mHCd9F)- zmCHQbWxmNJe<kX#)4vU_^m@xxzPh`@Ux51UbRR_f=`=s>a?klRC;b^$er$Hduba#K z7ni()F8^<G$-mc?zA}$zmxt*t{#RV(_17-?XqUWtSN-9<jx&B*u^TiTPL3`r&>GGP zp-i%NLRF0zZH|1cV$H$jW`YL1!%+RDrApIUf?QaRFRm>wNu=agl~ffMO<!2Gq)=<U z8(+254#$M5l4z|~MQ7WIOa#bDm{wK-ZIF>NryYbs_olz1qH4*Es_I2mwGl03N~Pvf z(!;j(bm*|tgur4d`75Gs${AJBl7*K>%f(n&6|F6c8z+@5n^y&WcyXH<<t5kDhM>jH z;XH0s&f`YoJZ?k%lhwtQfl4a5gDN^iOC%w|m1`AfEgV)xg4h;C7M9m~ib@tCw#eDU z=mw~x&{I?}v#{`rqIp$Sk=jU2akZx?e@gxozte*8Hfh9+snl|&LFryqO_>VCRD>>4 zUL}+X<(1{N3w7G%GaGD*5fdygEiD6gQBf^)R9;h5vhbRs`A~M57{YK_@nX?Gh=foc zX@&xLT~oD8`yfgQHAQ(Rxt>6nSq*K2sR$^Bj*_dTXyysgii%nkqq0iY3r#^dba~YZ zXN#n`8jYoKC&;!ExY6{G6xvW_5`!}Z7DQ2Yv_DAPcy4MdlXf5}eTb?&8p}c?`J!ZN z$s-YJm{sYRSX^FNCIn~VOspxMXUA1ira<XORcarVuPA9c?WZ7?<&kAY(*pjm?Wj{y zxM*f2wX=q`##X1Ra8WoVVVY7TnO{}y^kY%kqLKuQ#OA^wmxSr%i=bgP-kLbb$W0ws ziD!rkeI4|Ka^|q7SnbeZ3Du;Km#<ZVrlL-VX3!-2%Zh8Nr5Q+~6&5d5nVL+H+)g4m zi@zgi(~8S$rR+Oxbp=img36i9jHt0>%qx>N(IIC6^leryc332&1hf)U-)ADZ0GdK0 zWhqHI3dyADk>Z*Nt8}QcI_eZRJyKPj(%xilupI7cola`6t#KN!t*uHh>q3V@KC8TJ zNp&JESX?_@wF#!FogS@ru^_2}Pyp+Qu@*SB29-L&9tl-gd`+2@8HWSa#;_N0+p%kK z*r6t%op4yp2v0}26D<%PhXu%XYOy<Ukie)5!_@MnWfkaAp;y{LMxH>Yc0{x?Cz0VA zBME13Uh8lSZ?$ZdeX0d=P~kS-n<d(tbap$@ePY>Esy=pl<ZR0%sEnqQMVHU1HB}{O z{E;b6njOyZHRTHyMk*7jb_#VyMGEN5)=j2UvNL^Dd+H=QQan%@T{NSru(<XbCxh+t z1gi9QCQ-Nut$bMo+Mc!6=mcWY=+5cV9<z<FidL4o+)0x-vz9v7lNiwd;?E(BO(M!M zYLe5kETR-TJFMJhJH64z7PHJbc;Q3ILZ<~1LF$SwW-1vS4nR*$Kx7yVU2~^nRN<5w zsO+33J%G;B1XsG9N<l!VOQY3}P%#>doEGfA5-i9873fKpmC3etdQB`|w5WJmae^GX zkfb8!7gv--D=-L3MTARdxeY<>v?B&KwX7zYqO0{~g)U0S-A;1k=#Xhg#EcysG&>$C zXtujhNtII`(y*e;X<;+Q$6SeCu#p~LRR!(yPG`<8bV5zlB8MBv@`>Y36PQS5dp$im zZ@SXS?Qq66JC!|}A%u~mf{>^ScR12*R42sZNL9Im*N*9Qi~t?>b~1KmKfbC4YPxG( zWLumXe?%9#$hOqf<hW}NQV!!fHCYX!3Tld%s5+S#pHQvcbNO-2!QzCts>HM#L1!u` zk*O%^yAI=uNP-~girn_-S#|z9MCTV*Q<1sqx*XQhXfUv#ItW@ovc2xJlI@Yy(hN_A zR&$3SJCSFUM=G2IJ9FFw+XXs{^6Qwm4srAGk>fDhyy7`Oe;j1nk50+S^96~{r4jGc zedmO-+G{Y}OHD_xr<I|BL%~ovk{s+KkabHYmD>^G6hjIJbpjGE*$wJ%U@6AMwfOdx zA!1pn!<C)Jx(+7LOw*}4D&0Fdoi4&f8C4|?S@^_u*_5~~Z0|UTcR024(q(V+^P?{n zzstTnf?1n{uRzHoUK5gFFQdSMRJLqyakE35Kfh`b2K!|N<;4rCDvK*1%;PyD=iKv# z`{GZ|$O|sW9dX{s5$E}QqlV+3Pm^<o4?ln8NT2Wg5$6l@+@74usKjS|8E15AhgEU1 z?e%Z}^8=^yFg>Q`$1v^Z;nh?gAAWfH<2O2C;!IiF{}##{Z>Hj7%#g{g7u<fJo}!`% z8U!%_ii&0gF6X8m*Mn(8^%!|JIo(rdzvHE-s067~j1hdaatZErDJlvVIO&)!SC3C{ z55mW=@bXa!D&FExQBm2#qWQc&LEE{*H$+(T1iuk^V&pa(6Ln>kh5wk6#U^h|OyZ$u z*y8KS6aS|I`@sx%+*hCQFnkim1p6Oj;3ZCTw#GRnJ(I-IZ$6#rp%nF59VS2QbNkwv z`VXPqDVXa{_9IhjQ=^NjRS#3kB<R_b<#u$u*!t{po0GcSo;UJ*VUL$vl|A})7hQPa zX{z$ewDtIOh**A^_nkc>rGQq`4IZwG^D*TY)9~u~vE_G%_+{iZLcqzCkX(K-X5-yD z`f-;xBS%$Iu;j90IvxqGZBtY<uNFydKSf0a{uzGTXvfPb#wo*{L`SM$tVew2s{hzC z2*FIcr6@3xgii6OuZOQ+cM3Q5`l%-a=_YcN`N!6;b?_fc9iH{bz}<+Hvwks-{828` z0ZVrO^J6Ya^UK|BqYH73vh{k%+8wgK!UcD~g$MSnYjUe8t_^!F*f4W@u%U2UxFOIK zZYX?Vb9&|pC+w&9pza2>#kh(^cgJS7#0p<4hy}J6#0s~?0!_G5&RU+8VWnrujd-}v zS>LmUOB8WK<EUZU+o1JNCDY%Wo<$FWv3y_1>JiJ&^jqE4t&yW$*TC^ozv;o1AFpLd ztS`d)(#XQt#kg*+6@ve+?Daioa<B9axcKdBSnJT^ioDCrMQGNR0)1hezoV(ZQdI}n zKYyqqdGA~(*w|EucZ9=SoYpYv9TLU(95V;^@8OPbB|AK3MQbz%>?^l1c(^m(Uo>Z{ zvc+|5<HA~&lh_6;9WLe*uEN8q2i#*GjLXDLv-<W<HI-Yy%fDp!;=W>xBy-!Ax-^H~ z4DK*vFRHJ=(TfMXHmykAA~apmG~1xk>_MZ4jV>KFZ&9^p$vlQjJ+I+^D!s(C=d%yL zRC<TGFPG108pNax{NGu7J`^<WjSb>%Sw6-eyFE{#hb0XD_l2L~QIFB{B6`QNU>U*h zPTV`oN5U1?o1$HL{(_LAAY{J)#1dvU_Zg$AAO8>#{bM%QoqGXeV$TcgQD?I+2cqZ9 zo+|bsAeKn8M~HbS5YNEV1^WY0<+FPMQLnRm0O`*+U_z6SeE>-FyFe^ej(Y&e@L*4| zvabiCO~}3)m;sy&#F90SyQ=UH0aA_+NI7{xc+s6^B0%9az+=$Bn0{ms%+CH1yvl6y zGbm=0FVsIu9`giT=AXID&%4Z-F7qx3f|dOYchP_6GJo#kU+khcx#-<obnJ~!@b7V# zS+A4mnv<}=;JALx$&)xCVc+iNWO06=bRwk_mSJi{fidx-d0Y&1u14wgIH!$ceQJSw z&i{xLnE0Y_&;8X_R-^xq%y$g<?e7uSq{Fn!_-!x&*Wo#sQ-686XK5S`{@1S>et?ZH zoLV&PGKUa5h~`TL`D?~^|I2sDc_T;hV+Buqe7BgFp~=YZ|L?f2S_Thh9A?aDBh=VV zbxwHyvEw?{OFl+kD+F+y@xPAijGSz`#q+9!Q=3%VVqO&%6=CJJIBw-0*R7Rs`Gn;g z$fL+=v`8G|xSu19>rA`UBn~qngz`A9QjMG|h({XNEkt9<Cqu%yN91W+)z&XG@5C(p z&@Uu?H#NcY<6wON8MqFzoZ~u%i$8k7{6&BAKR<fBFpkGt_R}%%MLr4RAMRtqm_ga$ zzFK;Li)_1?JCUbP-At=Zdyq!jorNo<_eRPw_E2K1{EYZ3F7h_E_RZH;{hjnekDG#4 zJrgQ!>XTq%<8F(nZ-JlfN8uuLedBcEMd*55SO0M)u7Yn4v~V!k9N5hw(Hz*r9BmG$ zu07ZsXjK7iSka;)p!E2zZd#fZh7E)te2$;3Ve9`<_criR7U$adg9JzwvauzWwxSDy z1|>8Bf*}~qk_2`ofk=X&EhZsZNF-!qb{9ewjSZ=6*R*M?=U`hkZS|D4$CiF6wJJd@ z#I~oVS}ST#O|4Zd+EQ&b)wcOx*UUY;&px}G$ooI%_x|32C)eIH_uTV6&ph*Sj}F8a zeIy$tS{c!Iwnuoi@eCQ5=}%AoHMyflTKa}n44d5QSDI^8%k_P?rhPOZsbiT%+A)bs z?0HrT^<hGiyLr#<fP1QOR+;#ax}M~p;}Dum4N2}-h>ia0Pk0q7AL+(vtoIzJb;`KQ zq$4&?)8VQ1QI6l;!pC$fW5#DT{e-P>_^a?Sy~-FqpVlACaBss?CgV6schWeHd=KH7 zC47?plzcCNZ-VeiJ|yw2M?P^pw-Cs2)_FjT%kns$fb2Y+Sybb*{{*7V%)}W>w)v7i zAli4yCxMV%!Z9e?d`Sy11AH96p?1%#0ivSLEC+Ht=mw&{&SPbUeGX)(@hAHW(zHj= zS*q^=GJUXD*+J~r?vuL&>jg^%-GTthnfy~A&x07l@hNFjuJgtH=fc1_0=k>}_q@=i zzA<0uZtB;M;C?O=YWjaU2Pe{091<$uU*H1oF%xvqYaBGruqN=YfoHq_n;dkzgU)l% zmpbS=2dxKmsdvTc(V|-0)O*Wp7F=F3+qi6VPWtOkZSMNt9%bst*tU>q3s3CEZkZ9o z@XI!HA4_k7o%X8thm^}ED{ZI8b;ge0ph<(!r0oz%BTna1tYhV)(Kc^>s`Jc?)NFHn zJlE6`+}aRsYWbfU&t<Zq!kF=wp=r%Wy;p(nbv&1cwnJm&b)plxfEK4XPiN$uf%;6t za~pPpz9YemH=Zj(Cr0B|e=)Cy9*9xhkIqh_EG`<x8_#Vp@+5wPB5x4#kYt*KD2_Lt z>y-3y3`TPtnQxC5`siluqW{hTq#Dm<gOQUn?dXU(s<Myg7%x5y0@3{cF`iSA^+s04 z$6zaG#0F3+-SMCK@t;NUpQZ7i)v=#bj^1*sMDFM<UGhr}3^yL;;D;kGPi>7S@(W*N zwBUJf&s$zs`EwW)hA*zb@7_u5wlRG*pWvz(ISvsRVsh9R&e0s_DUO-KaSY5n9<CUD zk;e}5T_waVYDm~K;M)BxEM>4}#;a95FNIF8jJ%?FPn_v-J+LynW#Bl37d+{C`=(4^ z^t1FH@nq^?d4?QA-g5}9ij!tqPT0JW37&^I)x)9jCin<n=!xDmT}MPq@<u$_bglNd z?%(0^MAuI@QDFcw#Emk8C#s-wcuE~X4I$KTAtn_CFL844StYYPGR(P3HRo3_YJR@T z+){(}s7iaZGgFT;X;)M2jlAoPcB@Q5IMMd(=&I>zT5)v!4E*#i9Sl#wkTvsT8xJFS z`j=CrH(Hu)D@soER(m49_C@}R0`*1jru69bnJSXr=rV85XehU;@lP^)`Eq6C)zS6Y zz6p<c=KbWx_k&?{z1w>fnU2x=#EQt@RNnX+pEd<k9yzJvfwXSasbx}h1e^&%P^VLz zNn&TV#Nx*)$tq#-<n$K4jX(=VRm?PFZ{aAc)Hln6$a_mh=;*AiCfqCD7|II;^4NE~ zRp+fHG|PQ8t32z<eQU}qDm_<O9h*3xx!$vOwQu#xV)s>nu$vd4ht>7uyaQg1^eLj{ zqX8|(t?wA0b-H_Q(7hSc819eF4Q^a;y0zBd(8N2&H)DFkTHk?P)F48E#9&wWDl4Gw zm+!n-RA^@fn_5*Y^IF;#V9!L1R)pS&BH;(ZA*`h0^7QR3jkxw*?v3Z`$=#@TF&H<~ zpD$Deh8z;ZzQ}I2Yr<(woubNYflI3U1^-)o$ag@J|G$XMWss8U`z4>H27|FOO_G0) zxL*&)RP)RaiMx#Rll(s_?s`0#{QWd4?h91#$>ERpebf97yO7aQlTXg?8;*-PX1`zf zn2*Ys@0Jw$`S}g-`ny`L3EwG~@1ZZ_c~<zCzseZ7w(q9L;BZp-B%hPMUl`BV@ECc_ zZ)J?U6!%Y@jkL`9hmNP@f0A6rvmAV<2_MTr86(#g&sOk#Q23-glH|=pJ;pmU??XTo zUC#T3o-Fjcu*Ca0kLTry{{j2}un~xNa^8F(=gD73Sfrl?P6a*!%mIEE2$meqBNOiy zyd8+LDB-+5<y{Np_t#1wzsHsV$-h`|8j#<EtWo6u9TH9cUjg}D_ymyrEF0p(g5MJN zuL}Jo!CGJ@zW;nc3{hrY3PhgITm;0ZU}i2b12_|iteDBUJjk8Nu_U4}Gu?L}9r1ti zu;!aQAlNV1C0H+5D(DsjDF2X=@O^k#XwxqEUC-}5(_eH8ZTg4Hg*N>GU;pGc?SHG# zroF!<v}xb0*W@?txezo5CT9Hk9ng%UG5H|u^d<+*^0T|&?4UawH1*2Z`AZ%2y$+h+ zy>|W!5ivWx$wA|r(7d+l<Qp+Ymt*?AF{Hnxa4d+E{MZQCfzv;6Klbmrm`6;0YhTO5 zo2|Oddj8(-Yej1~*ev_v?Do~I4Li-ZTRe>Q4J{%s_BH6?J1LoSO}oD>*;WGL+CU0N zo?0{3e0NfYzsVK=zC5vsv<+EdPQu{Bv%!AU<kUYg9eXoVE?hXiI_(>}PJMq<!J?(I z!AY+ps3}G@DoDS-sTvL4a^r#d5T0Z9ill7ge+I<Od?y;3{RAKLx%XbbJ8u=yMqWNT zA^bn(?@l9!{TIzYm?oQXkf`NjuOsXizixx*3-I5nM&yW2Gv0USka(yUEERdpad`<* z9Phi6{SQr_2CHA>3CVX;v-wS&gGcq@j{R3%2%qoXVPF>!{$l&Dm`*+n3eJ2VoU&1$ zCT5o3{@q!0^p-u4M%ms2{HuONZt22LMe7m2nL1bV_xS91#us@DA2qHA%3_~xZ(pA& z3lgsTgDzj=3u?=R-uR&=<TGVL-Z}BEnuUzT5vnq#9(~?e2r_ndbBQLL*1QWu8N6$0 zlHAL+z2ya_nr}DbwRHQ?_RBo72`AOKj$u6Z9_FQ6!FP}FF+R$eah2Q~!*LwibY2S( zbs+D(jtfe`kHk-Q3j!3)4B>m$m|USvdN>ZHyU8bp$M>*lj~hYTyj$BGG~P0t<y7Bi z=0z8`u)oFPwh3>OxOIxxiTdVpycF!yjQ<Dy^^$^wb>HC5AP+?b$C@Wp4bhE+!?3?L zbKc6r@h4jvty|F0roTp+D)V0ZYx4zU<gvfT`1O?gYa{0@9lSM*9gWR6`<n6kSAOr) z)T_T3w?Q67_9K2GIzi-k{cESl+bi;@UqR$3oA=tk9zgh0;e+#p13-KKss!N=<??x- zu{Z@}|B4-JSk-)l-S}~O#pIdbAx@%A$9&nZVO=m#$-eWa;&u$ZqHS8Iw#M82S~hxD zOzKod=Tc5pbk3a0i2s-oN?}dtT!sFfx3~H<Z}-5N-tJ*cj{VF#4|7Pr@xFcRNXCRZ zZ}0UJ5S(JgVyQRsTf3BVggAt#Eo0Q4Pl#OQGXJq~HWzSv{qadJ<ww0wFzqv0&(v%@ zyaETs{Y`E*8cvqX4Hn~J?6oNc%(70icNxlo_B8BQQq4=8RIcgg6~^nQo26eZ6*;kf z+IIhJIo!I0&-8CGz7+S_g(ypZE{~@B4u2Ocndqlq1ENCY{St_}mG>wR4It+L5cMqY zTR_ysynZ06XkHk|e%>$k8-VB|N)`j@{{kTWbFP*Cvw{4ME(IcUllpnKn{(kncbaxQ zq>Z^sXp_%9pl#09N(b%y{$jsp=Vv_a^hFMuZgzLXJ%Q$X#_n#_HMQa!D1dEHO|1cZ zDiDJ^x9QKLL@fnPtyIW>^ZjYINAWOP;t_Ry@_o&wYw@vR+f2k$?@5*^wn~w2MYs*8 zp3)wAOS``uXCP9Yi&&JO_#SGc=8eYImUgAWBDTFe<^J+gc3y5gFf5lrRFrh46P1mo zo_=5qjk?DA#=5J_dwm~eNLWVRF$hteSJJvwVAHjYb&ahJ!C;4fbI`eOC{yIHe$zCg zF{mh_vP)E1<zuF<PRZNm4>h;(kc4x;x_Ljc-qLhIp4~XJNaO|mt&APl?GpE^4~d6r z5t5I_&3Mf~{8*PE-VwjXG56EEB~hl%ck%6EGil=2vaMl@zlG;P9q}{oZ&Q9ZJLEyM zGk#;9S26oVyChEBZ^bA#BfV0E5~4WX`+UEocTnU}|Fc*r8}x<E;-p{>{;CK&zL%)C ziQ}DSWO^ww5B_4`OUfhuFn)YkE~jeL`<yFgYMI5yjoR-Xrx0(XVyH6u{Q*Q;R*ov8 zSokP;3X$+e3vWYiR7TY<I?w3STt17I3}~mD=@fa9*3rTnKomUAwVueMu<=D!%mC+I znsbZdd`EL`0-^aTBfnEtvLj0Eo5wd*!upJ?@~Nm|UwmwFi_-b6il8}FCnF2bD2@jl zh0{#!^jkvYIanJ$4jB+Z(yuDVquPD<KqwD(oCZ|Giswc#>k7|UWy^v6e`#K^j2t~N z1tW|>SV|rqjt^fj{*l!*=6OxE;^6w^K<Lb_BFlCAA=mxSn)N#Qj*O3&YN|0#il<g> zzDM|+_VY&7B*f@bperOkPoYG7Q7pDDJsiqn5R=4j-3)%Ma-mACb-l{OjAgc9(yF7O zwYnh~@~f`dYUt=_fbyGAvwm|FTTOoSavlEKo$dZ$F^*aLJBlsc7m#aR?TVrrb<zg5 zIB=|gZVq&izu0Op+cZdWCe1_f#a2tO;<|7{Yi%IrS9!z{eeEwU)@p2SXxjpH9$~0S zvP?g?5VeV>OmMy6Ho-1IbMECELLU%3EU2X<|NQ~1QmyaMo@M|~s&QTj1w=C+Ppb8$ zesOPt`>A}dQ{LHl@?|~3#3MGobF7DuzY@<6gnt0Pl`-GrDb{&z07JR#XQO{*48Lt% z<Q_Pf^A1dhGKNpS^DX2r$Ai>|o(X&ch(0Xm2oUQXC0rsU&8Zo%=6oAC6?|U+qD#!X z9*F;WP547OR{_!g<<$c5Zp!fjA*bpxAmuC)`U0UpAUIKw^Yi5UGmzoE2xL5-7yDm{ z{ZBPrG5}<J?gldaPiy;}U4q+zlv6KsjUe-!_MCU1{35Y05c>->UBX_5^7&4{t3&OF zL%P(bFJ4VqUf82+o?I$OIi&Lia|PXk9B0s-@`%WDg#d;1KxBoIM|2AfQ1*v_98a72 z`B9-wJzFWXsox(I8lVj4x8OZy_}fl1|LycQ9rS-YXy<we<7W3?=iu*j&}TaMt-3YK zFE6VrtMt^=)Xk||U8DLTqe2T~;xaQf<w1F4j|GX8_R!PguveqEhA?%OLFGdbnqva3 z)d4Jdq;$Y4hJ`r9dtG*Vx+hGEsIk_{zRH^Yjay@3>vI=+b%Pq^k{ld~jt3|a+ZNnH ze_BG&saqtzlAz8-7rEmmcD^*t_<!M|rTLm)uN$cGzx`k|%8MrDIRrEa%S~5VKS&<? zX-E9^a={U%oqk}7geJ*Hz0HB|b^L!&wZOQ%eZ^=jtawS||JD|0xNB%-!-R2;*9Sxn z+aXQ<S*jgs0)NpLC7AKfmzs2`F{JoJJC7NA+n}Y4|6_|1&hho2#IIi@6iNJ!Eq4s8 z#oc^Qgxm2Io8o(?*`*mx{Emsd4P~l7q@!_CjN^Upbc(!1==5ohL!RBBk4-Qpe(An< z_VYs$W>_-HJxiBIGvdd&;^glg)o|7K9Y4sN<;(lDXi79-qSpM-m?nN$5QJh#7-xA5 ziM$cK{AfxcZz9lJ0UhniCh?Cg|3c_HlIq{!T+ROig}@Z$X*7S+#V_6W?7n&0XT1oR zffpJ@^ImMc$7oWOZ_D<E4&~@fZ{~%{I`)0uDe|;!@?Xr?qI*hzo;zFQg{6GE_`<cB z<n*#>U{0d7j>F2N^4N2c_Pk$Yj4agY?MHf9L>Ln!7%7kTjzB2T+5&xWj_=u``I_Bi z(mwQ4%)jH1$GAbBaZ-#(?`C^~o${(ho?FUy0P@(Uj6fcunq=zg!gg^<^`)IJe3%bw zu!ff;zHh}k29jRYK2oK(PvpfCb+JzGp4DUa2WjU6`bD1UPqQJ<VPZkie!ThpeIl<* z>dOp?-(JLTsurA3WyYHi$d&qL)<byTuoR7whVpIJV)frS02N`!e8338UkkSxwfKfW zMPogy)?U>3pWgtCUoIZ0^5Xj5fZwL^4V^rjj#+wd<S9(}yQl*nCtpS;gfq?F)XGSB z7~kFtT<D1+702-fx)mL%w-;yE<tRM9HM8S0|Bxs13+ki2a2@IsWXbn)_sB<fEdJ5I ztkNv6>uZOCF14`wTl#*LA^(UeOz9F2Kpm&Yu`6$6*D*xwPQ1ntF~qU(IShdjG5hL5 zs0~vB-$Pcx`7oU2^u1>ktG;GR;Yh|rI8Xae`qn#WE2HH98Z0Ub9#>JsM8Y%R+3V!F z$;p#+UMqG?4B3LXoUh|@G5n>9i#M8yka=}s1=lYySEEB#<)R(Wb~;8jG9PZow}#}y zY2b+GL*nr<HLIdDE8P6rKGb|~<l%fQ7)ZjsNH}JN5QQTc-pjOuH}VW-9wI$n#aH+P zx<roB>e=1c7QGg&#I=6FHLqs?3;-@D1Nt@eDPI!*B1pbL`TyA{D%?*%hDr9`uGo5e ztFaj2IlyKCWep61o3>rM?|_9jszg>s^D7DvUrj8{4`mv)4zS}{`PI=mBbCeUWo$$9 zu>}}md<bFa3W&)bOpnlRn$6DD!_9NP(WAblFLc}!3m;t1V9=2mJ2MfaBGz*q;;R$S zWf!EnT|>QwY5)p->G_O);Wr_y;K}%e74o!5F%-7zU=(|A?+`3?B#_T)V(TYWJ+HfV zAJ@4+*{Yy=O7W|r0Q<gsv|TSPyh}4fQ@zoLDVjc*aU1aa^5`WeW5tX~w8HZcDCfg4 za~CZ<hcQs|W0*#(!gAQm%4H9$Je<y1v1sAb7)P5t3}5aWJyNywPaQoHO&uDzz78(r zmn|XM56YTJ=vj^YI&mHt{|$^Nh!dyd_ovlw1af;m;wc$y_Oe^vWfeo=_d`PktE+8} zP^FEXnIx*~k||bbjZQJ9!+hT8ff=Zp+&o_5ZQL_e{eJw$S>9+LyJ&Csqh4m+X_z|; zpW_`p0*iX@(qG*0+FL72OT#(3LpqW%Wx~e8Z<UsohDJ~r@qQEg#xegmotgH8jxmpk z8oe5*W>e+RC{7OCe%N*YVZ9SRetto;o8+npBhM?Ng)A&zbTT63>REs<9@LyEcuOFl zJ_MvgIWh@3G&%uukhj9AKre?P1?T&smx3|C80p!<f+x|$l;tK^>Mi<DLFdSjwp<qz zslpq^&_Tl9{VV)N*grl`g?$Ma<6RZP2z~(eteDTJDM$v}$zY|cDqN(97vL^wdkjmy zgAjPF7I*^wRd-tGBWG{U)odP^yp22sYuzh+P`Q-U!$nOrv-3TVcG1E)05o}2R$t_p zl2h^_E%^O#(SoyMJeoeqDEH<RP+adM-tfeJ{m<I>^Rt!QU&W&JB!1}-G{g5a!=f0& z=O~U5X6KCaB8b&zXw{qJGNMh~3VHnzcy%gt*7L?zld8f=ig-nbRINku!A@Beu2il} ztfoib&tOV8wy%u(2aS|z7lRM6$Rza6e4Ne+Sv2h&&G3rypQHRo{v3-W{XIzaSyHai zY5yW)wD1AVe?SEG&ipoNo$*%km061Ei(t~x+lybeoGYwW-b?OK-d|Ka)Bclo(ZY>n z?VWU2EUL=2WVIG~^h_g?*BEhm;ixb28zi?XGE7FUMiefjqzE=={Sj6=Yj2AAo2DG4 zjKF*+T)-UT<n^`MCmg%r7^@G5-713RF;QQo*WQ^QKvZp|j+fW85xPVRKc^US-p{o3 zPP#}ZNu_7nZ#73ibL49$Nkp`yUI+CoUU-VV@ZZ6wQj5A}PwGngPfY4<F;BCVV?3$f zgNr?>o8TTx>g{keNu9(V=M7i3Ud!0*S}^HuG=0~no`N;n>x1X2)GdnzbO#0Z&ipj$ zfGs0X{ipG=USz}`#gG#L12W>Pgov)%h4;b<Rctzas<f6gYVp6p$WkZ%i(rAbRcHhz z59pxEdIcpj16Yf6S$`qsah7t7XTW#iqB8(-x(9@gh4$7&I=-$IE&0|tD(<yP9M-S6 zigdTO^TG}%xwxu@RF*`v?LuR#qE-^rwr9gu^|E@gD+i>vciK6u&ymVG7*A)+@g6Oo zgQzNppSYRWX}<+<q&JF`sdgnRZRcyD&tP<`<vp#&xjKzpcKa_yqdq^4Zo4wNYlv$= z9p(j(H^OE_n0J(ecPDvmYe?T!V?{NDQ&m7`OgFeN<bs&#MobipmUSc}bHa%aDki+C zl|){CtY1hR9dtjI8-FpYfjr;Kv7si<jOq6>#+KbbRtw`H3<bY5fbXNO>*rYEi<Gk` zas=A65PsH=^21n&nD>_nhk72rDeK?_1gbd7BSAOP^D5(S1_(1Spc;mSyrZh37bD?s z<2%Au$VVULThsF+3c{$mGV-!FatPUtKIMeR7rhKJZ^t)PW#kQ&pXWjXuVshzjgZU& zuuDMIf=eqS5jmt<DeA|Os-Cw((?6~9bN4{_n+Qfl`9!~$g`?Kv%=%_R7A36v;qaTu zlu%vt`dn}K;am)0&QPNC5jRiwL7jt_DNDrUkBB<nJx{U9U|_DxD0223yeM9P9a<e5 z6h0_0QpE?28Km&@B5|2el^Q<aq9spYG76H5RKBW#iD&fJu=pqw-J5gVt%9PR8li`C z;pa=*Pln1dGM}cIpHE<p7QV^o#=Zzq+-Mtm>llPwqlG*J9v$M-iW~3Gll%l69Y$JU ziuy_w{y+2wy7`-wzQ$q;)5hCc+MpL0tDrnx-{jxi5N-{XL1`$oBx&_#>swk|m7ZIy zpf+I-Pte~1wc^Ft&Ve01fsSHMNfu*<5>&CZnHSg81h&b&3dL53e_LR?Kjtfexk;;Y zwX|of!$JlAdaZd)>1#GuFa)heuDCAWNsaNC=;qNuuJ<a<#S(O|Sn(8FjSX$f{ZJU{ zj|*!Fu4&VHl=WpL+i(>DTs>_~Yp50)OTlf3x=t<h+CxDUt}(%)b2~R71(`J={}zA8 zl?|<7e=Ji%a_@`wP;A*&i5uG6TU#2{Z7|RlkE?iU<JoL;E9TxSYI;J(#(l(W5wO#` z*1xSi$%77p8-3Tcg{URDDT!rF$5?<&Gfq#g^CbqXj=m&`ERI<Ri+8Xr{2>-gus8_y z=hf79Ro&3$Z%s^uBR4#oQOhc^+^-8=RkEgpz_kZ&LmPIit@Sg%iklmPSGELOpx0UZ zN(`Yq(73hA-xf}gf(W*@%B2)aQ9`0?Q%loY{}xP?qACPB)}q3O{Hp_@md#Rzsxs)~ zHMN1Qh(bcSz&H14)&|CxkuK~;KQuWfhnpA<(}1fWprIOyt<mn3+Hk7$PGm!L%2EBt z;i53ya)A;H``4jCtJZ=0ZCC~LrU!e~!%9ICXECmmU@X`~bopQ_hTT&vU&aha?L$oR zsMiwh5ldiUkEE|&s%*ek!DiIE1ov_j3A(djb82UL=hZJxKS_3ET-Vl|f;ELLnRUmb zyBeqTv~KiBUFBP(k8*lU>!zZoZhLZi(fOBPOXk$w5OS+bZEMk&MpQRYGcwwOqhT4Y zHI0op`9@{my7I~H8Fai{ufe{X*3A|c=CJE#Ta9@|Bw4V>SR=0tC$r7X_7iUh++)(Y zlWz&UBGzm!V{qKOQ{`um9kW1XW!S;m0Qf`L>e<SdP_R9Ki$Ac%Cl;j+e+U;t!AY%= zTekIb*wIPv^7%xd&2OR4X|{q~Z`6rw^5eR!7WI0-D|1tL3lz`9EP}X4Yefrg4N>&~ z4b%!YW6x5PC*H?%capdwBdf7W(};aY4OI0He&3e10GF56;Dmh#d?A(F5Fd7H*5<@| zZ7DS_mey*>#>;CS^t+st&f*|mba>rCOfZC=w4tMkEvsC=>VrtF?)!`dcUiUix2TBo z5TyPMTlA0(?AEbr*oKV>Y6wx)5K`@rx40DJ9o^De&MpbDMHf`u<i9TL52K;!^`7NB zks1s>khU7xrll4PksDQ#z<Au1UjJfC4FuF18ud*@-m?iWDfMzemNhl`LjG+`tLA4O z2HJ|Z`gdYa7jhFfW#H8w^tYo{qq`!r@uc^Ng*R<euM5PX1_K-D3_ykA`$IQ-{x#)b z-s#Lpb!S;T2&5LT3x9{o1}m)k3{PvTt;ktbF~S-@rXhO5EnbX+G!5Q))_@xpa7jeW z?&?5bn~I0L1+|AzV9S<PKkot2jak>6<+${w)i1*=yyAF)NqLLPsfLc7s2ar<@@Y$` z*}|G3G9X9>^LsV704rnG!9Rl!N*aFl(tJhmdxF0b{Da^G^`(imO2KTwvjr~_yi%}5 zaHrsB1-~J9zu+$fU&V|u&AWoxm{6y=NN}-Wx!~o3R||Fs-Xho|a_$iNtAgJV{ITE( z!3?Z&(7aFZEWx>gWrEiVb_(7s*eiIK;5~vr7JOE)Tk`Xy(9>lf!EC`Lf@Oj=f_}kv z!CM8tAb7VRPJr1eER}G8H0|HQHl=t6X0z3O4AYO97qu3cOTuQ%{sf!Vm_M1k)9{$| zn*9UDlc|SJdsc@&c?>V{|0H}&Lt01F_bc{BVk*^co)G(Y9SP;a1kJ>G8qMG5#QqG2 z{Ry!@%V9r7>faoP{Q|Ksbl5Ku`x1wJMH>4n#on2&YsG$}L(Yw2?@X6zC(RE2-ZcDo zi2ZdA{(HrKr^BABR5VWh?})uK{~r{4XFOS-INx$4jXUd21|G9-BS#jqKP)&`@It{Q zf-4=g$xjn66Ax4FrkqW=nsPMdX3#77V9LSBG5Kt0lP@OU3~j=XiX4N?gH(q3GZzmh ze`%f~VKaXd`w@rz8Eo({d5-qMSzsC`|0QB?@=0@He?%Jl8`8-6QX2d3iTz!U_`H%v zKJS^QdCkG^6Z;Qdpxw>iYs9|XVSj_zJM-beH1;ED>}RvnfpN;=B1|g#fY>|p`A)G{ zichpx^_QzjGyzAybq3a`Xq@3L5PN4oyE={iwlwyiOk@9VY3%PyV}Ce}{csxlf26Vh zko3FGbQPwtuS{dVDUJONY3#q6#{Rd`t|m)8TqbDfR-p}k%HjS!hx<E1&z5?+R`6!Q z{}BAS;M)!~;eJ%=NtfXF1&9AHVY>c{&6`n@Xt63QbGPhcH1v4LesB^VGrl$btnp{Y zv3EM&Q)c|@tWRbf?6gnUpSlr{J&oM*L36JyJi7l+y{{-I6VLnb*v+Zt+xCTvOY@71 zN(+`)S0w+OoiK2m4W`CL3x&UQ;o=yT#8(O%{h2r$Y}*q&87ieGwVj@R8so7sKa)Jf z!Y^2o7~mC)O{x&f(nSj!7w22XE=dZ#nqc`m{&h85`)piTBxy!W5HU?9$)O{IlkB7@ ze%K)~$|{N9Ld0x&Nq#lSh)`2|h;!KTG)b&V0`{cZGd?Ag4s2Xev2V?B1(spjphK12 z;{15RN-tZq&_V&EPm_JFkhyi)CEH6cV={E9Tnhi&6C~O!Ql>0c^Wr&1FJtAaBMz2n z7m#nCPG%E0548<tY@y9))CF7&Cn-_<Wa}u^k=7KPtVZ!66&iwK)qJ*@@KTK|F7e9k z;^zv%Yp%zEkE=1URkBNLm`F*n*cd;J_MYK?=QsNx8a2ySd&T^<_Nlho^FZ6@+iGob zoxgT|S@HxNK3wanJY{vuJ!Pv_u3fWkb$Okqy4uq7Dp(k53*oZP#*P3cN%WQ0(21oS zxkSLpGH;-@Np2$)2h4_YeW0yTPtM_d45!CL5hlZff-T40x)!AI@;%lHAEsZx(GHbc zHLZSsJC+nViRH%8JTvKJarW7bjkyZdlvB{c^2ZK0=8-Jw!ggENS$eX^;)KvP%mzV4 z4CjF?Uf*ris<|IGCx6^}_Q%?6m95Z|KN7l{%rSQHnH`<~kDcQCQv0&34dzE0{PzEn z+%&;igHyCiK)%noPuXsa`>o>6_rBd2_j|?N8GYk^NZhftA;B2;7sm1buDB<724VdF zL)<4j7=|Q$#v1F=3C8%Jc#*cYk11$l+$V{<X@5qDanBNWj*0BXxKAHP{#oLFhTSuM z8~?M#Jze-0iF>;63&cHL`WA`1GyhEZ#p8ruHjexXap&BD-5B|okK?{Z+~spHCc^mN zG*0+U;x3<cN&Y*<-PDh2tHbi6Pw*>jvl{U$Xr1qlc^v1*>Dt|y-7#GN)o@RxkLGHT z+mOcn$Kt*pnCcwzRtfR5Y24ot_opyvnChJLe@Ov_bvQ}!UoI8w61b;2Cw-&1zk-UC zO1@t*nD<(wa^Hj9Cp2HclPY~5!4@W(d+?;nKlzMJe}CsMxTk1zRLTc0m#pkhomMu@ z)cZM*TaM?8!pCw_#_+A|&iD*AK#{K%&!fWEpt<7mM86ODZo~7g@Uh&KG4gEpjXVU0 z?k9BoSboYl_~yg%B|Lu=K9-|0hOfGN%B_=oCw(U4vxudR=XB(C?~_`tlxsYm+P6y2 zCE$Bb_*lNm7`bweoZ<6q_n(B1<($ChxHpgdw}JoOXLa~2_XK{&`FG~mW8m5QoaSde zP{zbV&Z(2{HSkS*Uh~}}Y_al`{QnN>3tj;^_X^$xJOlKnfhgOmo5lV*U^eWp6}n#V zDj@mG#l1xA7XjhFWWLaIf#mxjunN;dlYn?7<-LyjOt~)t8Q!x(KM7>Keg?!hW#0Wj zbU}Il23!r?4Xgrg1)?DH>VPQfnO-3MEfBl_sKOQcwW&H@e*n_{c_7N5<X1rY`zi3F zpbrau0JxIj0!x8AfDFF@SOr`KWV|bY^nWQ3ZD-~J;4I(;LVrlyT|!S3`W-}q`Sd1` z{$B$!Uc>l9IY-6*0m1tO{{x8sIiJBF=HD%XZGu~Xl(#|f3LyUHEEjs2(DQ|!EA$MZ z&lGwJkny8u$~%cj5q~fEl;Gon_X~an$asBG=sv*+5TbH+2z@P(e2s!17yEUB%f)_~ z&;^1Q0x4%E5aphe1FS@OOa<m4zN4r#jOQDIFA6>>I4Jl-!8--NAb2Z~@^1h#eqph1 z6KoLss|9PszEW_h*e?`1S8x`Pa;FPDMeuD5To~V11piy`r-I)RyjSopAmw}p$oSnN z_FaNOv2PXn<AQ4iR{`n&QXu^=7R(d(^9831W{CSg5lP1LEy3Rd>HjxEKP~u}*gq`v zeS%*T{4$W?e^%&E3I+r>0x9=Oq00o93N8fF|7@XW2%ahSrvd5zUG%@izXD;E^OE3m zf=>Y{XF%v53H~RL{_Yj}^Fl|3rrsvX`vj2wTY)Ibyauta74!&R46H`Iq&_P8n+K#n zzF1*jHAU>-!1zGL6G;C57WxU`WspAzL|2wG07Sjt_8^e{e*mPv`+$`DMc{n+?*p>G z+6pWO)&nbmwLtn?1*E@Afn~6t2V4$(Ap@^KAWzM(AA20=1N{x)<&gVTApL(HNdKP_ zyiV*l3SA=f#X_GY_&&i=bl!~T>%cXTe;bhUx`9mpCxi|HnJ$mEui||R<eMh+6rul) zOkup<1k(L!Amx5m=q|zSK!#f?bRLl5oi8*GSuvd_@D9BK{$B)A-ZMaCQO<zS_X8Jz z?`uNe0n7(|E0FSf#QsJg<6k9o8Ib-srl8z;g472>|J2i|(g&P{{O4pY<^3J+aoWED zq`cn)8NcVm{s|!C_dQ@P?Dqoa0Xu>4Uljn-zaQv<J>Fr;KYlCwB|!SW2#74r!%l0~ zvze%#)(Vk_tqNItK(7LJ0WSqoKCvB`h5z+Hx^Dn31tM%~HqZ;43M>-$d?0iUWFfA~ zzZ-~jsr%IEKNEBT5I|J~ipB{GMZ1B=kS~ba<RL-oup-U!AyN+yalass+mY@U+$-28 zxJR%{uv4&IuvxHPaD!mApjWU|ut+dpFjvqmI72X7FjLSH96`Dn-;;vJ1&0NX2@VMk z3JwS!5Zo`gPq1HbuVA0x9>FfbPQiA;X2E*F4T9BzUcpkqBEfvYTtT<s48d%{OhJH7 zH#*f1qnw9<*jkcx42Y$StRW!$X7N1^Ka=+X(JxN!7u+k@C%8wjOR!V0U2p>sLx;)L zK<2j>I1BQNfRLY+FYdYG?gpYAWz7)#Y_ZSOm}QCm2qTC8CxK{JS;v74XISiy0nrs^ z4T=4r*!KgO&ORWmn(^m+&>Mg%o`PP%Qo$m@e8F5nx8MxHY{5)H212<bNEDIxr4o+| z4hvFmB<(qGMCAMeaX|2Z;C{h<g8hPf1^Wc|2zCi}3bqS23)Ty65UdvT3YH2M3FZpA zfz1DGp)-XZfhFU8l8*R4Ec7v<dEc2zm(cr#=DlkCzgOr!p}U0c6uMdHdZDX@_6l7j zbiUATp=Su4DYOa<;hjX~VSJ7Q$#P8SA)yC^J|Ofyq5FmAIDr252u(f9q}zqA7kY!x zUZG2c&KEjY=ovz13vCHKg38SJ9S2fAPvDXs5_(W*>U*a9exdt?-YfJTp}T}`7rI&K z4MJB7T`F{u(78gph0Yc_Q|J-A+!+2zAmcYI^f93ag&q)kAMgUSKkB!pzdpe|f?a~0 zg6)FMg7tzM1gizTf~A5*g872Ef^NYXg4u$Zf|lS2Ue@dfPYNCv92Pt#NIj|K8x$N6 z+y`X(`hm=sJwkU0-7a*q&>MuV7P?gEBB67Ib_<;?bf(ZFc+aVFkoVoN(8q)x6na4D z{X*{(dauxZLU#$>DRi^Y^+Hz*?G?I6=zO8wLeCI7Q)o-*lXx#NzQ^VLbWG?Wq5FZz z*Q~ujbg7d&f$*xvMfBGUn)zA}gi+%o+E;_1J>F@`-v(eY+-biM=mlbImQ@NY1Qr1o z0rP<z59I=v0o_2jWl_#zU^WnTYTSf5D>ZJq7}yW{9AFm^bAnln7v_Gm>VcVv2gAc$ zvI+-#B9wf{QgU5D@F+gw`Je%+eXw4#Ua>wxM%GD`GwER<=^>#9gx)W7ztDX`cM07t zbiL5kLYE4iFSJ|eY@scoPa^YG_&^oD&;vs67rI~QKB2pWZWp><=xU)$h0Yh+Ep)cf zme41WFIe-*8V0KHfsD@pko0~a>3*U6gzgf$UFdqDtA#EVI$vnF(Ah!*l>AJfeZ0(c z;Q!=OLAM|+X+I2p;(%bkV3%OMV5y*65TN{BjsWfVR&YLnH0roA7oc8b;W2vOLa?Q~ znb&_7?`P6x9{;4!X5M~_$TRcwrweW7<v%U7nTJ1H{F`}k@-h5UG#;8CGCmlqRiCZt zUkh#YmaP_ghPYFg5c#|2YJSewlHM!sKZ7;tW_~!qd<PHdJwm@L^pMa?(dg;kjzXgO zhsfU}^k#9-JWsoSM%?q~X!;qUy+U6gbf3`wV0s}xd#>hxPUs?`r@}1@4czF-dKl^9 zH>g>MxCZTrv{|=!Q{2ruL^Z-Y7cys{Q=r*_{331i@bT#Vx%l8SdeOECf2r{Ed!PI# zRS#lWUqX7%b#+;#_&BGznc;ypdd427J9@3*i?sV!=?>cHHM<7Zu!@<8gT4>xvAa)3 z{jk&5Io#R5*xlbneC>3r!~a~Q#qNH>;eWY<|1U_7ou9`5?6l88mpkN7bI4!mpq=+` zf6n1f{k8V+@UBUqIj>@O-|XOj6Yb6JKJ1|HaisTq4);L^9dV>D-{Jo&j`%Tbd-$A3 zw9}l2veO3~?pHZzu9?{RJ01BIaLD_m!~JItd1s-0+2vVv`aGS!OH`fP!coa2<*4yJ zUrA1~ZNsVem0P=vdRKjh5@&JLu_|NBZ5upcm0+n^s{-MmU+lR9g}PJKmFcZIm^pRT zYu8lQRr+dbvD-&ZY1rLr*OaZPtn;m|sr9TbtEj80sP(QXuc=#8Jtn_qtE;`Lx}xTk z<i_IQ%ms;>wuX35TrqB9tSddsD=L{P9dl~VO=L*rRHt>-+V6{ZD5B*C9dq^#H~qB+ zcrk|dRTB>KyqexkQ`3NB?@2{#-`OR{<`FM!CtB4Kx{}+50&V()c(PA*(%b}PP7lK; z)$u9_@LC7k!Niy%Uq=eC?<;m{tIoHky2=wons^XSUnS2&XZ90{S`jcRpFT_<XsZfi zKNHxK;>c}Latd195(_B7Jy^HNeqLMEO&lfD=ZIorVpTAy<~bM>>q$ySdt@985{#}( zYu7-}a%zUSh*V6vBuw0KQr3Qo*Ix82Gu_I0&{myfPjq$^8JoU3jF@n-%4QrSA4^R$ zlAzjoc}JkV40lYl;+(FOi|<O$+E^mZ@vH^OXHn}KY-hS+WfAWxbS@bIR*WN7S_sGI zSzd|OKQ1fsR&^;3##99x3oyAGaQIFrSkvOEM|&(jTiM1!5<w{|fRjmerek)Pww5r4 z=d~3p*lWHwW}SVpu67JhDSE~+xJ{;M-Q)2V9*cKk0bw^YH#;VFENkW1bRE=^+k#SC z3Rx1dYD&csN!^MZNEOAcP-+p{S=ZRm*bGjDrVl2s4YySW0_{9U3=OJvWh<aZKpjBV z`&8BO@3sET{toWS)Jnq<mn*T0GIptIiaU!`mufVP=Y1@(&bWC(ccYbLEqY2)xH#3F z#92(A;f`xtN#TfN_M(3!?r4g^y+f%&iS;MNDOeifr597<0X|g%Ya3dEq9en04->Qr z;2d<aJ@T%$rEzP}#tJJh^my<{xxb-JJG9m<2!=Wq78E8bZO2Ahe+S2*r^B4;{Y(W# zOY)(*9mb}g9VfUQ*E6Nm&(1ks%Z&$y$5=T>o6c;Qqg{rCr&?$X|13V3OHt;%>Suo* zlK?bEo*Umc578n?Kf9`RY4uMJiySxo!tBT74u<e)ja}byD*fkrW+#>{){v2hML7(G zX*lH&Ga@hjeNXb8w^1T>67uW@!|4Pg@}LPK^?gs&aYu7fgH?@*FN$^}e*DD7=cXfm zW9!>)$D|hx=LKm>SrKd|P5hK9hqe^@)b~k6m?ttiv6y8yY2-2gQtChdrO10%;`f#J zCJ%}%f}Cne(g!|-NkEz|Da?M%V=(`+(EzViE{T8ieZcAUi&sm0Hi$R(EG@4dla>tP zj6`vWkE+km6_8rL_&$+`&qQT9MP3)=F$*BiQNBuE+WP_ai@a))*Cq1yK%NOhoD@*s zwq%{qwG|s`Z5)`~qbZew9D+Q_O6}nIJKlW=rXR7##om6IX1f_rpL(fmC@&RH*>iOK z2BkdgviRHHAEeTM-X-!({1{)x@3@o)ex@pqwEEBYIOLgrm2nZ{kOy^K?a<6o7jEM_ zt*)-J+%OXRMBcEJN4>=FB;qG37807=c>2%V-CFvv6hi3*I=$Lf)xT!*n~30a1~~Me z@5AK%Cb$h=f(MnB?ZDJQPWAC&*O-R~Q9Wg2QyJ`yLjCYssGqByf<IHI$YoqqVUDY| zO1QHUYV1~_;}q?@S|#0bSWpKbm9qXCs(#M~(-Li`8445uHJ86Wkqx)m+RZ5DI~r4W z&Zy`xjW)w>C^2^3KH$24z}Ty|lsB5;@<wZ2nPb_;^(|IKj`$)^D4p*AKsrv>>F7rF zu<1mM7JdR2CLK>B9Unkk+q9jDE7h!SO|XJ;;@zJ^rb~={(MvMCOJ4}h2IE>VYGswx z+KVDo0(_AS=%mIg1{-T4mt<5$LK)E89mf50stDnEQq0S$qZy0IxGGY<nA*^Pj|osj zlfoiL%On5tM%Sg%rwGo+!Ab4j3Cb2n=TewaZ5Vl1f`mHkMeuSLyy(PUel$bPbVF;R z4{<4YtKi9mf{JCY_vY6IA+aj*L?x7>W79Bhs`W+w3jO(zca4sM7OAyfhoCAtXEhVi zyQ{A<@~7jB53I^)6|LCkjg-%UKJJQs{y=@H=<`Oa_QsWl_U_tme7)hix?=FeSxV!0 zMZaraMIW94Jo{lK`TK^)b>Z}kH(Y1lUW&NA392$9<4xDc4|$@M8B<;BAAi$zA)b#P zdee3FF|gfP1U7i5zw(SsFuVZ<`frB=89Fsqbb+YaL*?LEz6f+=s>J&uxPv{Kb0eB0 zl7ABb+GTa}QKfv)`W@N@_iL1U#U7K`E=g<;1Mx<C8HO#%cTy2N3f(09L@k70sD(pe zZ4Z+M>}A|_V2GQN1=PZN6?tN%w^s?<j3jP`g7$iNAgTZ~k2kssw+U430pcQrsxEKz z3~#gsJ;LoeR=qlo-Wk5gY7~?gcN(uoIU(7lnYiu{PZrcuLPI&LMO+c8()Dd_oA*XW zblZ(tL`yz_8BZkZV`w28ZMD?g)rfl;pxacnkE-Yrwid6}4hps9kr#9=>Mgtrz7M{L zfQ`i+wD`Tvf;R&keA#C4Ia<6Dvxt`bJyS*GIjlbD%#4&}96FxeJv`x{<+iNI5iMJ{ zUtAJd@D^H`wu`7XO%>w1PsbbgAP4!%1$uNV3SLKLQR`E#-TwiHgB<UR>k;MpmbmVL z19X!QAeDo-F|jv1@E~74)Y7d3f&$*Eo|i)P=+0md-j{Xwn)LSSZY1)K*s6D%{6=b- zyfcw$M)j#kiK$Poiu|oI^84_l6EpG4+g-w1Wrfc09-YL?^OXOd=c%VuXFDr(?Aie& zF<wfv9#!F1E(;HZUFeEt*lL7wQC(52kZ*pC8<RW;Hr6#sX)9)GhF^AlrfYXDa<?*a zeWthf;i0!<n*DX|NApdnsv!Qx^hS<~f99KO_wQg=9=UJ7@mlV>e*~(WnKaxWP#(RA zX}WRwTf6Uj3M{4J;L)BR;0N8ky*&f?satMu&jI<J4STW}#m3wpWqDi=px-Qb+^E`p zr6Mw-;sJ%kZuA(+Gc^pm9#BHNN3uhi%Okt*W14WO0QB8v_-_7J7eu*wHY4x7y+5Q= z!RUh)Dufc%{V-EuUdhO;kW1O0NX&a)8NjR^JNvs|^BV2M(BWGd{nh}6FG^fR!AsPI zjIN+-0MV(8*7Ifb2-+;_r0L&}`l7qCam7G*1F95v7=z_&s#&Y79eql7)vAkzQ=f9G z8e~t0o}_AkKhTv_?Z->)0LCHI6FqefwfN%h3#dGY@Mz&CyFk#~Ne|b`$UCD?LDg`c ziUY<eu%^oYb@a0W1S&<0zEsh#jN%4>w^i~`GrhK~F_jYc8rZLIQ7W2o1xF~~8@-+h z4P5}?zeBd#uLOWgw6GSIRM&m93~x^co=Us07yTqM6(gq4GNZlGo%H$*c*ST+IzhaE z|4ED9LT(jAfB7oqnFy+DY}qy9CR<<RA63yG%%LP`Uv};0m9-GJiP1yabLek#<gn|3 z!`&mNhbDE8EDY;=;!*jJ)3L<8rp6b}Ie?+2HSZW$(J3kJn|5RYp}(74<<a>!L+l6a zV!hoXQ!(i29y!C+6GYQ27%h+dDY3PyXv1GOdc9b5yikGdi{7f@Tprz-QSiKH=~372 z=O6;Fo<R?0GEPH7eX)GjJLQp=XB`P$AB#lB8S*na6~9zBSRP%xtRnI^&-?zXJo4vR zkn?3kw_?^mJxl-T+I<keJq7<P?|C(JW_e^Za-=-+s7f`47(*33e{$`<6C6h7^fQF# zFK7pf?L<e<lc8O_kD*s}GttEp&94mnlB`(_e}8%3Ay3Z}p_QJVqoFBs??puq)NCKe z)f<{Iy7-KO(GxQuF>~n~p$z<fAMo6RNH>y;;i?W3@6i*div)PDnD7#N1aJ4d*{+_K zdAUinYB1u-c=el%ISSR))6ZYf(~TETER)eFraeN*rm{;gdgxWr^LqFrGFb9Pi(C&p zg{t;V_%9ex={`6S_30750u+f+%w@jlHK?a0kF%7bg&$^E`o)YksE7Pnuv0IXM>!No z==Dd36KORrNcob{BLogKYpRb{yu=hlaL<x??-pSk1uH~B<vlJO!FyOoQuL39y}j#R zVi(1{&}FUkbBER<iENi_m67Mf<pqts>xNT#ITv2?Q+uh5ym{hulec(X%U#CmzF~dC z2|uBJ=3S~PX}H|HH`&8V_tQNxC5+p7bYIjxvNU|IVd5){UqB;|U^hH^Z@C(ZKa}iQ zzX(m6_4lQJ2~AO@dg8Q#(a5iLAHmGA2Gn2dGZE|;+%GsDXkDWYeW#dxh5AgpwrNq_ z7;f9v(6LqB7}_C|^P=KZ&m&u#sn^xQ)Clw#gw{e^H#9-6pdEiheQTf%>zm2}YEm0J zpv5$`;#6T=j+;f}j19a>85%CR?#MVmJutK#H2SG+VJ+`WhW^k1maMixhv)L0aV@M$ z^=HRcKU8GH6Q&Fi7k`uXkt`y?9ZFH@QSnlDM3o{{1~i0_OPj)wR1@B$a}0^aGHH7t zXryC40+&8Z+@L75rO9J_1;K2SwwcOYCBvX8w*x-?9ol1p5L^ze-F$6L{!RuM!1Otk zlp48Bdg+2Cp_Ff~*^KplXf<v0*EV+q!dseGw(e|ij(gmMEN*RS^J7II)Bx*P;GU2Q z!sslo^l$gKT1_1dJAznp4q?HzwRLAoeq^_=tv#$#V~RYemVSLrC@H1G)T+}Nt8!9) z>rAdo%>TL;Bg)z)`cGH1Hf*7`c2&oeRtl}4mJ2Ifg;w<qYD>9Xu$@XPV%meXo_OBM zt=1BhBec7s{P>f4Ot<=#R$VM$P?s-n{>B;s^~G3f*0m+*S?h22H-wUJ4X6J0j&`&L zv%Lb!SYh1wilaGSuu$+4!Igrm1$l0kra`b-Fd!Hf{EXn&1RoImx!}*#uq3W;?+-$s z5PU~41G6<W(*$P;<_QLc&m*)?aJAqD!4^TQ(!V+6)>`fLZ)uR$+LkTNF&9l3r<giu z_XTr<7r0x3SR_-e1$u)ULso6G-;H8$?+k?9*Wy}7H?kR<51Po>76`e)6xh-RRV7XC zO*`FKZd>544Y-^At?lkD{*XJ=48F}Ro&KizU~La{h*c;6CqMb!P<@Oxu*J=pP4^|i zrq<HdmQ8>KfsQSgx&s|<@Rl`qz_q2J&Aq;%m0FYCmo)Csze=}k>s-*-eCYyrRYRkD zdrJpfy^1oGq%)dxn--jIY4z^wf(={z)p+bQ6`|I4G_(a<sX;ha{h$z)EkrdZ+;xoB zW79B11v{$Elw5JeE~-b0Yvb8os8s$y^N)imfrPRtqk$*EzCh~>GFpH{J&=P%>Gz2R z52Zm=nG@^Xq!*g4H4BaFRYFuE*vUh=kWyK6ec4L(i6ubQ&y_Sa?ZWRGlr?|udT-*d z&<d68LZ|~NReUAfrj$OKbOuAik#(KPqqvo1|25a6DC<<LTVSC4NQI<(<=Iv|D`vL_ z^z{w1ub8c0ud}b%WyO8Z?ws8+dncY9c$#Oo>{9KN`?onq{G_yVv+koD@#oKC&uho* zCIi!NG;cZVO}}%lW4(>H{?J_Dus8cNo%WT&zs$jZwb++A?4x3Tufu+y*gxX19}@cv zH73+?<6q_n$Lq(_$osq4FLC&rCH<PwyGU6y`g6{*);svu2!EZ!-sHc@Z<D_!KTSRv zH2HI_q|fM~H0d?z`>=##;%(w-;$`B&QFAK8?l@N-ySrI;wA+pKoB7M}w|Ng->q!5p z*28r5Bwf8qR}W9MKBuc!>FVdrQr;%NO&+DIhw19G8y+)^XW(9uyIb-RA72UUi}#3o zpUqvYl$7s|<31qn`^7)!6=}tX-v~o^?B-PKgYkRN(T^DW@o>X<4FALK%zK=dRC_P@ zrO3YXbUZWhaETTlvT9F96OjD~n<bZmGx0DB&&I>`LGBsgTAUltEIjAonT=-wp7Zf= zeJ>BsTs&9`<XLT=lTrQCM}e4ZR(n6#CfOyiO)bX5?wSiR1$eL&$TK=h$2rRj=W(dp zgy+%K+TVph=HEO#oY4L~p5Ni&m*b0ghVlFX&&zmT!b6@`JdJp0)@iWT3)TR;@Z5~& zCOoxxO!-`i-`nuC;n{*`6P~N^T#e^rcs`D2BOdOnufs!AkEa1o1kWvadhlF|=Q2E{ zcrL-?!LuCC=kS!{>BF-E&sIDu@z9jv@#Co=0prEv!*e;FRd_1#@LRhI&oVr#@o=zR zjb{y>EAXtvvl$QbXBZFjhxx_)Vcsy0Ucqx3o(Xu|cv$8ccu152SO&%nPSL+^m3l9) z72_P!H}++5XFVIsu>Qd?=maD7D&JG-X^IN>WQ|GwnXfc6G$gryL))u1fuBk42gh-L zTHI&BXDU5ZZ;3>fd#d;^W`@Ho0jBbQttx<6pO_TC4sm~<7L(+D{W$)+#a*`VB>Dfc zxc>nzsp5CDWc*EO+)ZbGRvLHi`=?=>Or@u5r?@l!V3OkZfVlrGP5yn79SscoHkc&; zcZ&OAIHn4}o*fem+jpw+dq~{RRb0vPWmuC|k68N)oN62$HT68EcS_4s{b)IU`(IFO zqwIf_F?y_Q`oY+@eM|VHSkS>F>m|Dle7J#68EF?O`5pq_PT}J_LzxuvUV_7xarowg zXDV`ko$#@}C}ZTM(BDO!A1j7cG)JZU<MEVqQ!e$0eO&n1juPai&|^kDVw+yna@ofv z@C!Ky_z?J(3!hZ8c=$FxPSu|G9^~;7>WRW9?JY?j)5AXDufNmrW4lwv<Wma0Xieb% z#_u&h+hGE~BmI=mg_4n%G(X#A0>48(^Wib@|Mm}>pY2o`6Cb-CHSm4tWzCmVUgC}6 zPoD_gVZz6DtBjGCBK&gj|Ma+)EA2Qb-x$wU@I5Sihed3x{@dcovveC?)$-V`l`-Ml z+S5beyH)t4eJ6$c4BEdBL!Ivnei?}OdfsP&7|-N=5?Bb_0mQpGZyOL}oSBtCY#q$I zOz>i0KIr*Cyi0Rt0x<^4n=0<SSCj64pQ_z?>nGiR3H&JVCqSg7<PqS<fIk3Yd{XiS zAj0d7Xxw%sa1!MEfc0=+F7z@WlAALhh;c^VOd!TSd1nF9m*l(;h%r#fKk*`GdQSoo zrMwq_kW=+*Am!dG?so`w0MU2MY!uoDM4veGG9ZQqGYf$j7tW+!HH<Iw-VY@Izc45z zJqRTKBS7+hA4vXB02%IeK!!{GXp9&2pwWJ**khWB<HwnqK#Y;{IM_wq%sYVwO}-a_ z^#6TeCG5WiWP0xrq`ouqQQsN)sNd`w@KFy6>C3fyNtw`dfOT-62qfQI=wQhAvf#6V zj|%<>2>B&E??=8H1e?XaLFlW26XCv6+gDK^8Tsb`F;2|O0W#cwU|d!Ud;!S%MLlDy zfIM%v4&hMGSQY3F;9B4`AoJ%mAoJyqNc;lev%o8WzW{E8zoWnvpt(|pab@0JK+4+% zWO$80hIggdR|<WZAaAs1J)EO)8&}LQp3kE`FSZ9}`clx;>xD6O$qC>h&@Th&{sOQF zG|%y396EDI>>meWteba8=<fmZ@c(8Y+EHGkAkW`Yjt{s5_Ll(JJ_><rK)Zn~=MMw% zKj#DZ!~C8KTn+crfQVwwyBV7P3y}05g&r3AS)rd0dJxEVLj4`gFY4`JIG+PDoKFK8 z&Qth9`v-xv|1Pir{<aIf8Ax~T2dDd$g1<rkc|Ov007(7_knW!pdb`kDfb`FE%5>*> zT`&0012P@c#XU>hCjxUJ_YJ%s=<j(T{rw6^f8Q1Q-v#@C7l8i;;5^`UK>Fvqnf|U8 zyj<*yfs|Vy_7@0!j?mmrM1LGnflul4BK?M?^XmwZ;p_)8+`T}CcMI@x#P51wJ>+)) z>90``eVC$`3!+Xb`RGfP{e{4Z;74;%`8oqQ7gYy!j^AoZpTlLUDyeUxtmCjp5l$W! zJSI3KI4C$EctDWxroVlH{epW1`vmt0b_sS0whJ~3)(dVBtQPbNmI@XL<_qQux&>zl zW(#Ht0#tmdR|aF%ta{*wfz&T^Hjw&dkY|&rPX>M_yMg#Wc?SNVer8dh4DD%2`w?U^ z$}j6UkoLns+8+a=JhKMHen9LG0CQo#4~SP$R=>FK756?MUL9F`#J)@HJAvr(v)aYJ zS?ue9=%TYWh<&x#do`U^D)vQUpASU(vU0`VE%q~jXg^umVxKAY77+C=YXt3x={pHz z`i^VN8W#IwVm}0gm#jgt9}s)CYy8jJFZTPyz8{FDk+oOs`^0_^5GJcj>^sH28p!f0 z1+tuG0Oy0w1gdfo9Dz_3U%}&o!-B^IhXe-&2LulY?ibuA*e|$Oko^V2=@RS&GJl$d zt{1vmXs^&kLgx$Z7J7!zme3<oUylPB&alu!LJtakK<NEK_Y1vO=siMr3EeJqv(Oua zt`@pf=pvzWg?0;_Ep(>PULd{&l-`&bKs=mZQ~eCf38X3~@|^>F%Ef$@(r2?ANcrfq zvfMz7ja5HIcgimZ0yux9_#tev8+48Ek)}IoBKx@k)B|Lp(rZNQ61rZnRM0JG2@Zpq z`~!mhf?b03f~A6PK}&EL;p6Az0l|L3F2Q=iQbD&MK>0hDjT{1u*)FvCu3jm0R2W=r z{NVqb&_{*-hR}BleNgE8#Q)Pm{}CBX|7L#YZ{lv|b1r6Q1a~uk(<buFe9h}ZoB5fG zg*NjsZ=o^JznNcI!Oj7t#B(Gx=yR33nZMY?&IbHuzJmJRvM}&46CXdNJ88*~Y?M4{ zx6rSOd%n;!C4FXo<D251E$%NPEb2=c%7IK6zV}HFWAIM%L!s+YnQ107J#-hkPUsP# zZ(;i2UdjdlQ!8{A8VAi1;m<@TM#FK!xp>U{&wn7kq|JQQ=Y=-&KO85~-OMMw2^pl> zIncZhze$_<r~?R}`dE%hc+`h-E}miLA<VtVU(zRqJ`6k3$A#wjn)Ha!|1I*&xvG!A z?c6iEEOTzFg7oQKmN^%88_I{#GiEXT+vz;Wx6>SF+vx`!G{^6D_Y9P$o&L2$-fIr} zYYzWsIs6wp=zm9f+2uR+$2j$)taHeJ(n0^;LF1bvK|Xh)+r#5~!%ko8;Qu`G+wOjo z!+k&6uigEZj`V!e;l9`5A7jJ>|MxlQ#g6#h>5%t|BRr@6n|4QjP%pJTzWi;ccRTnu zI{2xt(9VC8!~IrAeCizaV~In4iz9z0JLLV<;r;<f{T_7iA8>>paK!gP2mg%@`Bq)6 zuLg&!)z*=kK)9pP&#h_Lxdo*%T4RUTSFU%YnESQu%4N8Tf!bcMn@Js!1}2@bSJz%8 z*{U5`$r=_`*JuYLxT2{gge^CE1DLTip=n#C&LXaJBE|lg1qs{8M4w8iL2nOKNjIub zYC?hb*j5^2>C}f~i^jHwc70)elc>LO=++Qh-x}oNl?|<7Kk~YwRc%F#>$8X{L5L}~ zFxo1#0-RWcWN%MQ5k}0TLp{Uz9+E;z-a#axq|oP(Mtm$b)Q02asoPq%0=GwTFH69v zxJf*>Ux&?+{*cs@xF!snY8_o$#wqFeMnI!D2igS8<|yvBu^5%wo$a^<%XaN}88!zl zZ-CN)6wa#PYz$>9poO9VCAoZO$X^|TBA#F!E@!W5Xv21`j(EAoGC4s{Ns9WJ!i%W^ zsB5V_B&x+2lgXZyX&A@SW0ETL1b(B>WDLf56vkp!>SwT-vIAO&RD+QWt${L*rf@6t zM1-0}6Gs}wGy(Wz<3!Pj<_`1}XrkJ-Ms2!Oq*kJ39LrXSSoo`IXo2b>d+=+Zc8OX) zusgPKYh7dW);g^k$IfFkCaJz8R$Vs1gH?x?&$^=tb-LWCMkyR@PU;?=TjZ>|@<0s~ ziZnq9iP{<)T+qRtlIYpm+qnxn*}WB8EXQ!x-kbc}TN?diuqi1{uFdV(`5oGf4su1j z6(N6B(k1&$cjv>7S2PQ8V)5wP;gAr0bzR-MGL(d=KG2_no`Spk^y??FFpOQ<3a!a1 zPOmjuU{)<hF;+HU7ifsB+^Varg2k#$O`2i^5Yw7Q>~+SjORXiwUY2l7eBV`tTSG0- zZ<Lr?9Wu35ZK6|CLkIS@*9Apvomh){E4x;i_wu@OY;JxpUhF&2b^Vq13=*&Ql1fH8 zY}F1^_K4C1q}^y$H%7agu5oMH{H%d$$WRt&-&q#!fWjMYWLB?!o#nQH1RKqGs&eej zYD>7GqshE;sXop~Hg-Pj+>YC+rexIT)NRE$#*AFnwY9Kl!K&lL-dbzYF_p}=ch((0 ztRPBlQZXg$=^uk{`xu+|$MB}lF*tX>kKrMqf{ejus}*B#r8zAyhL50q^ZpoosSa9< z!9LcZjWN6-Ht{nO<DJ|XL(Y3VT``6P+xd$3blOAoBe8>$X0#&E7`AIZLU*KYwzVlk zQiDp>cWO&~)10cFqa_6wFLWzo({r>9+vPEW*%atp5P(dYC*FDeU;L!OXNdX^!smuH zfNu=TjR%I)5Y+Xa&g{qB1<kPV7#cDyKAiWXd9QkoE@nhvjJ!UV-v5S4(k|s7e?$*S zT0JhDzoy~*Bn|Ijpp_Ske)wccGDeRO4~wMIbF@d~8NbaUZx7_j_oGRwk}dMm>N)BY zdE3NuyX2#Z7(U|?jEP@5Jx82$r`e;y8pgaFgXly2@So19;+IxW)E<#%JT>DxU7{=@ zB!a{*t)8R3B2T8htWL<Yn>6V~zZndXudc4#Q|pQQ*e~*OCI9*)ely-5*R2)jrhol9 zNvAjI7{23aj%l!XubbVZi(hL)Fqo>o>}TbNk!d}v5A$Knzx{}x<fF-2#Rok-`s|pZ z7~e!aLT2CLLUG?G^J_wKIy%9Or}xJ+f_m}A`8~G%LBvn8!XZ!PpDN!}dVlJrVVL$& ziaA@Ra|H6nXdh|y{%{`vjgjY7Gxgd|{yOt-OuawtBB)C|S4;f3xq|72Nyx(S^!}U_ zc>~HT=7Wtqp-~;1<)?x<_^Tr9(EH;?_?&7Tn2tGMWEh)8weq3+PgWyVbymmZED**q zKph~*xzz60pugkSUVX4OfPio$`#4VZ{sxJMhL+*ul;PFKX1(T^@X?Hk+%1Gt=ApU1 z=%)tA678fyfcxN0pEQ?axzLAj#tCTaQO(i|kKl#8V>kqy9XrIT&-lhwK3pEnSj2<z zS64<SH8LX6!X`jP!Q<Y@GdLRWjXbLZkz@BKTq>Fen;={Ly1e_6Wme}OMXOCdMJO#e z*Ldp8vHED?ELumNNs4ZqRi90kxW_dj#k5u6+`Tsv9xyrrkadGPzoI4F?}2Fl1nEuC zGPGM|F_a-a4cG6)2q^T3PTZFre*Zo<?C*wsIOjpO52Z4RSB@$TAUNLpWK7=zj$r=@ z*$U+>)EdBx&a~9)@C!^zArnF=;g%3ELBm2JwbE-Qt|!=-%5o9;q3-M5){WbFAilD< zJ+q<!2h2;DdSCP`cs^5mrmtw>*&uWXp6Kck=wE;x*L>ePG$EYz)}hnF@AvlRaB~V0 z(3?Z;^Cza@$G!NWGu$_N)Z19*_H`f0_ANbn!|e!)bFL6WRpTm>P&yMWJPZorb*wpy zDFmuyH0Rr-k&pCofZ2s()0L6mDP{<xBaZ3c{IBDP*$p4^9(p;0iHq)@y!((kJwFhc zQ1CosSn?xO208Ig$-8txs(NZySwflrD~5+tahfs2S%`*KOv6IYZ$(=ZjxdM99c?^e zTC7gA^043LK(V#Szon(ErrD1HaG<H76$fqCD@~on+ejMqoyAQ`N)0}d8!`QsD566? zoIAp8N(N3&>jSblZi&x3k!J;Q|GS4V!dYD?6vb(0t1T$Ux%I(X+q8y-5xHWn3GHmf zd29Xd;snmR+7(6mkQ;0fYdz%T1f8Ops*Y_q1-#v_?QrgPc{mgbw9#{IOGru6r)RGV zV|aoiaqx*z8U2|Au4&^m4h}N=8=8uDz~h=t*COS`I~rO->u|KVwLH*<SizWa*6pYn zG+!1R5S)nmKy!xR3c*T2?(?A8BDhPiSMV!>KNOrUc%k4?!AvbCHVDHkg=Ee0KxZ}1 zu_Bq6T2y1TT=4R-8#8{g+l}>`;|?a##K(+pj2{!f9vP<?dy_wX4tqBk(E4JgP}22P z;bT}Pjb!4zjx^NoPh;Hq4kVu$7txL8RMS_g4_xX~mbwa;T(jMGp|+?AcWj12fL%O! zN#pay&r_1#b^T=}KHxRmcWvH$O%47jce^*c<eKINRKQ)=Tz1WNyR}m0j;V)TiPpR9 zJiB=CQ;vk<7_RNu?sW?nU$Y(OWv^4`LUj^m>&!^;cN!P8(O0O0&RcMrxxuZbBHZ=T zSlv)TfL4T4(@n+hxvfnO8D{)wP{w32E@S^wDX(<yKX=rNm;lF*2<TMj253)nC!SR2 z4$hZ=`OO03jD~fwu|Z`_buI(LC}k#oVy!iyGkZez)G3+Vb2A6F+&ggcExrHQ#3Qy( z+IBB_Iry%CvLzbEQyH^Q+P0s%6%I#)PvVRBQ{uUU`QW(?&v%3`)`$$BW8e2|G!$$l z$on7=L&H42YcVFw`90E$PsEx31;iUK=ZN6_g5MDQk|6iG;}bAv7Z7c&Y6lQw$ecDo zzhEtp@=6643C;u3KjTYx?)M<_zEj$peUZNu`y*n15XkWE6Z<;_dCw{RbH5X@4G6xH zEkf4=DfcQM;+e;FY<w%`<pG)Q4+!!s1?5i!QqDh+x1?VKl70?|vd9|(;?pDVaUlIa z3MAitAo;!_cn1*S&b&^L?S}M5Ao<q=$zKGdoOwXZiR8J(p4&iBL^)ny28QV5gPq!U zguYJgQzE)GpW3HHclLo8&#NIl%2y%mvbtaoIqF_8V!P1Ig7tzM1gixl{K=(4GamGx zFPJOn7Mvl7xG6q_tq`Cv8~KZ&Z5CS~(w{W~do=yYLqO!i<U!#Z03yG#_KW>KvG3P( zRv!>mC~J?VCwBo&`XE}}dq#Q9VqXu0QTLwFz8VDi8DEB<4a|f)9`18i`G!wdbq^Zy zQKcV!fXaW;Zt#(&Khgk26Dg-2$fTAEx&;BszMhc>gE8E1NID`GKNQ;ZTbD9X5Zosp z(X8L3&3py-RgoS+rqbMshcxefq+w9pk7N3|lcW)bna|=rt8>9?=4UvcLb^}n<-jlb z>rp9bc;<&PjVZ?uJAJi-rb;fmJKKew=Do>wnp&gmH1~zt=?n+|U*KqW|GI-7aL~MO z+0K8FL%vx$z-1si;sYvKZHuoY$DLwhtp%~sZQ@!hv{!HxoU~x4hnQn6U&og1Q?CoB zh{M?H!l^tY#x>0-QZvODWz~HZsidV`=N*GFF4C;?rec<Ld9!AUD;vgG&Q;S&wl52H z?@X!%Q~gn4Ch`*QaTtFYN`(?zOL8o?rAWg9^9iKxXGp=Iu5aKcOTtH#EF7fbkAGf` z!Gy1!@xBOUK>=TW4Lfa12Jt(GY?h9t1$!o#OBA@SkgpdC)Zc=|7hk+|(Za=xmbl%8 z`CLNK&IS4TOBUnegry6M^z{k$`xEdj>JREAg;eVaUFg6qHy#+SCvZ=EI@2x#sea)x zG>4shFg8%;y{;#mj!vJ($jipy>PA{5ttYg$-~+6ol`l>h=lpB7$l-g0W<Op&(#0y; znWVZpk+)bmC&_b*JiMEf8Gt-=bunX?P0R7-hZl>yZ%AkPE6B4OyKLIq=j&6=Uk^)0 zoAh>}TvVJs9E+!MQo-2f*LlrBQhHB{yzfY)xGrHgY2t@v(A4)j^vnGB1`$$<!5-t6 zjrcJu@H%wFuW_?|g59~Ephpsx)g|)!A&+I+40(7xCmEE7S(;F8PI+BwWMWzM;*;~d zl*fIqrVfjf0?EI$^WnoH&%~t*@*KvQ-ZAIHkBdC>a@_-Y%)d;0W=a?dMKa!exY4__ zN9x}mRBTmWB$6nTW_x_+fKU;3%!hjs{xZ0YVAKC%6e7#AT0AmBeAo|QY{+wWr)&}x zs%o9)X4X22X~l}6<CN)*^tkc$2gQ;<FBpv}Ob+Kpcm3QKdCA+G@i5z$w|n@cZ{A~- zv|0Caqn#NO+D(&YK!q~Yr0#He_lho1Z*=-0H8=V^(uA4F7ZnuVjnT7ANP43WGf*7? znT<xAmQ@V7dN}U%_WF<6l-GKrGhaqk!t`yl;^#8?Tp4*d7b1EF4lot2-MsD*nvT6k zmDY0Fl|?W4feN7lYHd%4*2$jf;5m_rU%OAoub4ZX{*Ka&Ss+hJnJ45NhQmSDXB}Bu z-J*D>{vZNnzCF}XPLEJz>@`U$c<aG>_<$<sW@8nT{Rj&-ro0(Sejm<fP|*_hYnb`X zK|(RD{6l0GCVipi(;NA%OnhTXnlrhD?|_pN!aW03kw1GLMo3nOIym9<igJ3U;7L7y zJ*-LX_B95;I}Nblz{%~O8ONh4X;cIoRgqC-W#m3a-WyfPs*K*p9D(Y0Z}06?t*&@H zl=E;b+05q~pai;}{(7NjJ@Qj;WI3ktwKDc-?*=+VE=RVV7H8W#4jVHVwROOrn+TPW zJ24MG7%vr@6Ge!g`X$chHzlawSX{Xa`C3U$+<DBl%BZSDP)v=A<ym^f^~s0+IXdbY zJ?iNmJ<Zj#7sRX8_@jI$HmL5`a($6sc_VN7BBKX0AxrT<18Tv5(p9_~mBbs_I8+t6 z)aYtO4x67$knQ&Y^ZO0ghDkMO_0V!(F$e{%>k(bGYGRW1V>g20O44O;y(-C-9SvP) z!S!QKS1dO54Ez|~jpeF%_KkAa{9S`aEY=5xsQq~v$}qe{C54M6kTlQxBY04qr+3yb z!ym@w0gt}nbzM04hU=O`jP5=7CZn(s&(RF_byoMg?vShd-E+dzX_Mi;_^cBj)W4RT zbz&M+{e~|hd0O_O9IRaoK;`cN4{k=t@IY5~W<}(NIa6_c#GGuk`e9Q;JAhTJTwABW z;^1l@)_HK5$BGTnd~ffrV=C%zxaL>j>Vx@J!}zoAIR1oBMkYp9WkhN+Bf+T!T2x#c zuhuzz^J`pUXQ4)CG9BLNM_7PLwiW65xl&JD!f9kQ9-hv&smPA>48U0_16N%KE+AmD z2Dmk31K`aCZ)ib^>g{Di@*GfQ#`U0QP<sx*ip!9$-Q|c(W#rxiDp)0^GMWozyixso zX>JHNZamCjRhnTx170hmbB^ittp7wrV{QHGjCF6$al74@G_g#j43}7p9<E&aX2;zU zAuSqF{<!jLkFqRxMUF6@JuL_|o?|NhukJziK`p(*Iut@1K8XlNf5^;~Xy<%H1@Q0? ztjvprS3r;v^{a>WC_&VdUgkw)0v$)h@t8P5XEb<vhRNW`<j>>kC(C--#v!cT-TW9! z*H(X2@Xj_pqY@1hcdPg!SZBOuLv)$qVrv}2pQ=HzKtaWRLI3{ip(Tjaw69_q03<7$ z#?=EL*0G)ZQeC=n^-s$qZ$s&~5{Y{|&a5E!I&f!K4f58FS*Sm}&*R9OuB#^T7&vb5 zfQ)M%r7U`wqS^}@rCT^3Bj=(xrwa8=*O_?FqP5tU`J4$ws|oMdNtBm9ZX#eLc6g6g z46*u~E{O}d%Wz|Z9xfC-k8-`yQ`x(XeHPwLDmBOtZxpw^M4%J=kIDv-oNm-VqjQPf zaDrOqTl$+Y7bLYn6HJQMZ5Gkrtc(UXR7O9M4V~GH*_*EHNz3sTMSFiq0t?TJ?s|## z3t$h-xe$n4cddWkwf-g7`q!1ZaK-G2UWywRazoiBo^#ZX6Il1ZxZp{{VjM%-F$`bE z>O-+1&(g#pPXU<XLXZQO#W=4{<b=BJoJUj&N`9iC@SCWdGB`SMg$c|c(pK<1$|k@R z)`Al_%}XE8pD2Z>pceHBEvh3f$|m5)>{uY<BFf;LCuL*+UF)BW<&sndgr^dltoPe& z6u>P4yN0?CQs0f``pm8Pi`PYE^y}HMSkpWICf}hyOj;E!pP##GY5Dxp&{?Z`KaStM zi|4QEt(`wZ3HL@PLOZ+qS=N06w36Idu%<UOf9jgvruo^PhuJF@JnxHU%)#D?T*Jxg z(>U4J{gWBqrH60$9hcns=4!l!F~O?4>((9YjuI{iIt)oMGt6UK^_w>@EnT$eXC8bl zmwxe%J1)i75bZB3TZ!$9Yuc1{XxtHviHAyPz|EZpt+ZNqw_G}0wvty!!?~=X9jn=X zaKx-?uu9w5TpPd&H0`&RtyG&HS3uz|IAgT0wbj3+q1Dr|1@{F*%dO$_X+6MYfwnfR z^YZrKWS0=um}Ayu4Q)^f48_9w-de+rdvblWqHrv58*8P%wyfFTxHV?Q&E$zT5(gX? z=+GA!8{ez3*zDPkl&GEJ>)N)q1$MN#Rr;*CL9E6Fv2v#}1{;{0!i^!dCp}NhS}`ld zEEi+tDF<b%tgskjc-O8q+$&ca{^iSK#cBHyY@~8^s>u%HcFmm?<{sv@Eu6ekdrXTl zFN91DV%Gq8pgUci7_i^rtQoNP0DD-At#DhgWlNjC3H$!9<cTM1drPndd*qeA?KC?9 zlxS>tXoZBJrRBvGi^sPNV0}(Ljz<K~lkfaO!7{;G!3II<8KT)G*dutGpmvS_HS3*K z81B=U&tXkr9~@r4G@q7uxD^%uW8A+b?rfNLW85Ed_`gNM`**?b2tF>zZxfnL;_q#t zvxJ@{XxtYGT`8!2$Nye|*I=r3Qrgpe7JXeR_hEkA!Ia^dU`+s5qB&328%{$Hlgj^G z$-h_OEtNahJZSdgN#*{CxPKlYr&=ej#xS1dK|HDan|U?oI`Dk(a~*i(&+Pd}M@>G& z)@@Vh4XXtIhu+lu%r9lqtlx61e*>P*ziNKwpE8EOqFd!W<8cq3F9;v=Q5nORA|Ag2 zgJ0IKnXk$ie#bg8<?}suj;uQ~pOs0&&v^4}?p?yqd{5w)b#Kc3INUP-uG7c-SH{S7 z=(GDJ$_Z0Cd0!X&G7v?ZcNq|2=3NZrI`<qPGA8G2LF%nK7xr9STmbw#CVVpB{)Qm+ zSdktE(%&&b>NCLlYTiL0{r?b1|KA3Z|LcPNg4AyXGxG-EEbz4my%vZzo%jEd_b%X3 zR@dJ6AOT}lCbXpDg?1FsC<KWz3c+ZGT$o4#kpuy&CLx)S)R2jp87^K!LoCxVEp7Fb ze!X#eJG4FhOWUKORt;he)YjsqN^38vy@(C9RIO6&G2idE_S)~f^JW6}Jm2$w{@?T8 zPbTZ#d#}Cr+V|VqYli`+16~10y3|)dyjg(gGYZd9_bGr($Gb=z`Jw(R!j}Qj1r`2A z?cV`JlP>%k;CX<&uRja$4nWk)!kYk*y@iy2MbZnG1I`322SgNwvjMSnTKEdu7wPkH zF~a`^ScpH~zeiQdUjvBsTHz`{tZfSy0|o%k2Al`D8|%|zz;6M<DgUd0*wQMz12Bkl z`KZEc0T*D|!t+Vuovm;RAXv#iRqZ@krT;Mc1#F=g-VI251Q6j%u2=g?K>X#G;2-08 z3x&dXp9H)Rka~8=|7C#Z!hSv=^J@~|DS+bu8SfD!n)crV(*BIvDTqn?1AwISJ;2j} z_YJ_QfS(6E1Mri8lrOjua4ujCAoC>vNPa&ENdEnR<csH=gl~Z;>+@d}9t1?2D5PA) zd4LUoEWd?-<a;(C_9+X`1|+@73VAL{``>{~$a7ah&d8C({QK3u3y}Hs6~F?}`79v% zw!%*U76EPmoC$apAk)EfV{Ba)@;sVyBohHyZ(l?uXS$vOWIW#iWd460@DliM2V^_> zG$7;ugu-5h>j7b=HQ?Vlz`Io8bU=I;@*JA<koTgO1wiy1)dHewObjb5Rfsww?%-J< z(k3vV5M?FyJcXo7IsgK@0Kw<PM!<{F6d4cgrD`W#+5>7Q9ohi|f0f#8IPz!16Ound zONac?9#BaBXt#99AMF4FhX9fF69*LTP}rleQDLdVfI<KX_hr;K>IJdq2yfC3f_A*3 z91Z0Jh7c*uiKryB+i~}7^|#~fzpLGj+muTnzBN~?-Hxk6h>!ku9NrB?7rL*@YX`pD zzu#l$PO{toWRHED$9}UX{Cto9cRl_WA|KrJcX;@#LVI)j2R!~m9{>Fw|9nq;y&n8) zJpPo^aL4yw9{U*{elPNbXQ%ECKj^V<_3-z1kNqG5yTdQ__{Ti)Q`e{)pWkl#H6H%= zd+gM6<Hko{lVLv#_0#RY*MslX`$0WGZv5|i?9Y4bmwW6tdiZPf_&*BbZu<YrgMWs{ z{&i3I-+9u<%eQv*3#sIIgo4iLtJ4ruv5VuH_U`UzcTADZ&Gk@A%hkAfivY4r1oqYX zS>4`wgSm;!^_oKj80HQ&R_3w@)5R3y$+lQ`#b33oj_)BgM{4l`j+;&ymwzrqF4aLR z9N{(e?5Z62EK5fOFGqzsI+S7PS14Po8vvQEQM?K-H}_2<NnVgOAa5L}16W@P#Jj>7 z4!kIw;Q&6B%p#<s#ZA|7@WhWh(^#}xUy+UQilI>5fRjX}U)j`xN6hf_*m|=G0EAF8 zB-Oj2ZbAxg6oQbB*oAkrlUK@R3j;wl4AZjQTnb1#R^gQ~>M9Uvm9pwkU0nlpWtc4& z9I%g4Sdc*uIkK|7B@V>{S(7FbHco(Ayo%Hj3!|V%M`zxEOS45@SymFJf_LmiJAp&X z@W-clM%Sg~kyePhw=GBeaCvGSf{VM>r(H91N$MMLD@P+}wWFtz7UKR7E;&HV3O5<B z|1?K$?K{jeA+9oTF$LL~Ob@9(Ue|QJW41VrIWwf?-{dk%#hrLo7Z&FK<RZO0yTHlP z=(_gKrjBKaI9^?o{zUV;HqzZ5#m#%E362z09TX+3i>$*Xjj=_Bhy$^SmPD5e2W1#> zS=V7(C)%tIM)yuSTgq#zOs=pf@JL>Hd(+w|n56srVE$G4qoTR<gXUth`(AT25sQp1 ze>8xx#}~j425W(1-e>N@WSM4&VPM+SjybcBKhF1P-mCo4bSzS6NDo7bkMa%Qq{CS9 zN4O(E<CQ;}t8_RYrO8wI6l0UMsQnb^$RBYc3*)8NsPs5*rLpoe#wK%E`zf%YVNERN za`DQ$*nG0|h>9tNW87mc9UGufBi`hA!=8D+w@dlsI)kRxlV0PR{(n4qrkzT!K!a=r zJ@U6PAnPl-+M?w*_%V$I_l2{{GaXQROIfHeyw~eC>g+fvy)osP0$2po@C-r>>K*yp z5isw|p!#IvZ_NAFe8ZH+2BO@X+l;{<@2kf}sfy?Raj6or<r{c!^c*26Z~2CmUac}! z0D4UCuCsL!<z^P&$CH1v?<vjIa2wwve@$`TW+wg2`nS)M-kr+d5cty~QVbK}@#MD- zc<Al&@CPa$dd<g_-#Vz+L(0r<<?j&q)2ftF#K)80+O73>mxkJo1+KgOVlSgjvsS<i z%dkg&tMMG!NAc~LiL%6;8Q~oHE$o-cK0CWs?3HmJ?O!%>VvGCCDjr24rO$#0B!#$B zkAwMl5DO0fNLXJhet>;QMbQACET*JTNt?m^1u)Gs#xF1o<%oW1>_0PhC%_dZz)mN? zeMB(t5#yYiXYW-I-?0R!lhM54Yn}z>@nC)3Av%Hqt~`8?%*8)->D@&S^V)PcX<wTT zC(H2ay->m@uCCh8K>D*F{RuG-i!eX^iDOXf8kX4PNV+77QbAVn4!o6GcpN8{IKz(5 zGVHN-X#hF@o>G%s%UinFAqWI1OelMj?HpF89%52VvQl4=WTi?dfs2sLEfWkP17%b3 zZ%Kf12fV7C&ZZT}sM=8Sg;4Shd)t~UCx5HV{D>#*e~GU}DSjK<qoDf%&{c_wk!N3n zoWSG!_cQoRrVk&C|1;i$PYyEVNW9RKKE3iju{wEkuH3=C7@?4$%oI9rJzpET&ckti zUGklZB6BhfR+9&N-#OX;@h7E7PyHo9bI#`QxP5pJJ5}-~c67km3#d=Sov{DO*ndm= z^{_v0?2ppE6!s^K{eIdnhy6a6eGcs3H1>Pw{~_4_&Dj5g_DQhcVeDUl-4^s9m}N%H z_GAPE8d&}iJ_>FGx|0Pp5IxFGm-LWRX06*U#1X(U{0JKqUIEBo6u;Z?y8^#Y;rA8% zGNdhPO*L@@E+H6jZFOoF^>b6-Ky7tuW*2G>MAH5tpafZo3+i_a08j#JdN{QTZ4TGK z{{(p+G;jHS6_>^Lu)-zxz_liI-vOY5UIJ2lDq0~zAh|A)7u%&I-_c42sg0Xi*$Y6( zWSgyk$Oq?XZU!5_AuxXBjO1JPDQ+i)^`dbBwK$Y~SE&wGr53Lu=XlV3yQCs@a{#fN z<HUkD*Uv)Kbj*iidGfXL<nIgvuk1%UR0@XDFOw?{riERMgAp7Fr+V1#&?8aSYjP>1 ze)4K4r4!B@lz~gQ3H9E7i!ZTJs({O3t$c$$mI7o|Q(s{Ah5KHNSEkBllrI>%{cvhY zpnSpKZvVshB?W-D{c3#KY`EVBkw4Q!L#Yk5<+Eae@>$I@C~x`O^5owtl0!mx_(Xl< zUWx!}AzZD$u2!?3IfUljV{&LCGlK^qCL8d?{St7KQ#3L>A<aBOOo2e{CZK8InupQR z0Q#^YivTBq%8$_&n5N)<d>C>TTl$}(0Z%^^-h7z5j^X6J6t)T{AKpihmdi!eMGUhL z1Bmkc$mxc{$v%o;!I#G)@cm>iqI?#mAhKA1{S?G%MG>|_7>=@<gp`dVq;MRek&Y{Q z8eKSO@T7?y8ESIyLyRqpz#Ie@N1ioZnt#igWM1XsQh{nCWJY0ND=Qa>qhVXwP?3|n zGBxi=7_DzInm=07TUha!lAB_A^(k+ZLj$2)Si=xggwlyVdhwg0t;V~b0%>6iFhV`Z zj3NlE<!J`wNd^dQl<DOVHLY6k8~?|eK*C7cfia}>669NEI&FL0i(2XLn*;n|NSPTK zH^{=Vh%#m2$l+`LYen)+1?E_s$#JfdgoJgX5L~m+`ltAMU&=}DdHR*!-<{AqboxmL zPTB`CIo1SMpCOz(t(~J5YRgtOmgMW;`<pEG<ZqSP-lJ#wKmIfbJTQdAsj&ZRd;GnR z!74;BX4Iq}VVgy-?B7C(r;5~hp+PP-QG6v&VipF9)H7npVR*}1ITiI|#SZxlpgOJC zj?c-9r}F=@K&bb&TOj-008$8fP6jWO)J_TI;7RaMiC^$)6mR@D>zdKRfmVgVApdo` z^xwKGoP0v~9iF6Bp@Ma{0@8B9gA&N5HU$w~QzIb7YN`XVYIeISf>7E5Rvt2}d>Irn zSRv^ikmmHoFxToYsOf3-PubV%zh+MbMyeL3epxOs`@2xa5<=*z7<p^h-w77iOyJQ& ztN+>w<It(K`fow+d2PjZlG|a(74%8?kpF{=^MJR{e@#VCtAEuVL^M#9x@}b`wZ8Us z|LlFQ`#(7FIz)O0MD$pqLdDpM6u2seQzy&_Ad=9|2!I6r7v{tm+7QU3>p7Gj`;p++ z;2|j$mxIXp&(kFp{9ld-Ms5rd)8KZSaWfUdf8Rjw(Q*E}2Fm^S4WWrmphzd+iUTMq zNJ-|MdY<IKoFA`0QMexVxBBPgzaNh4Cy0aa0K|%e2(cfYdo1S3u<UcNFp{u;M>BdF zKZr@cg{~c9WlmTA3e&|bpuQnctvO24M@(L&N2Viim654}{-ruHk&x+v>+Ix!tvn7f zH<=<E$!kBVr_z(zrbxAEe@_9o>-Lfdmzi6JlhF#713u|S<GA;T6~}EJ=v!P>Isek8 zJS@(vm+$O<P_SYgkA1ml%frUbq&q+LttbED|JoP->zAn?Ts}c=uqdVD0PcctXP=se zV@splk1RH?fERO{ZDm`e)95mhO*Th$3pHLA`&|3gj!)G(X!t8`i^l7^q7de4?^Nk5 zDD#X(yM61pRaUJpj{9V(uR2~t?F>Y^+9Ml$t=+uCWgjN5f^L@1mgojZhIPc7RvEC` z*N!ucZX=Bc(KuXOjI>mCN7otMs?c#0>xyD0zCLP|wiLt7Y~D8E1Z0CURJAD5v`)X9 zyQ8sKTT^?twRc2gkrpZ`RR<8ozH&A6-Y(~%M272%u5yUosS`Dv%O*Pn{&1)e-4L-P zx}s2Qiyi9>s-lhuSw-cZ*qb&)s7pEqp*QBp|5O7_d#on9p8Mn2Wvzu8b$r4hvZ{D> zu@4%hBM_z&(1nyCsWmJeqYfwL`yYtzK@S<`?lgQak7h*SsaV#~oUX7`;ZlWl3a?Sv zs<1<$m8;vLcC+}!`-^ISSmBQpKCSTA3jd<;U4>Jykfb?JVMt-U!jCB2r0^bvyA?jE zkb2i>xP+$}R`|L?)J!9ts1*Y`SW4#>&!;SiOo!(xKc#5KZe#b)+-}GE#wk!N7Hw`v z?U6zZb(+F7(bh&|&~hK`EI2<v-O`Xe9n0JUk8FBV=uX3~eDcZcfHKYV>hgU!XOoB1 z_mO-jj1iu1KGJ*+zii>_Fyhc~FC`m)e9w&rvMDs9`1`W@UouAg&taga`51oL<PG`0 z9!;(Rqv&6+{*-jj#{ZofkeA)E`R~BufrffTvgI$YiP1nPnr2k|zf=E3;yG@Vzvhe2 zD~~t>_>@O1_zUJRFt(f>c|_NHujRnINAXw>#8|nz#k~{nobbsUs*t1M;Dl{W-#1@1 zbXhONSbUG19`V19U%_7uKI@4Xi=T!5b3mAV#Ne~uh_Uz{`b;Nl?PnFA^+=4xcfCJ4 z8+cz;JezM$erPcAOPT*qDjw^V7)x(SW_~dKEx@_!Z-!siGcgu_k&(+J-hTq`RmIb4 zgPp?BdVQV)-cyRldY3^ji~J^KzJ8)|q^yU>!=DG7U4J+HvR-E3XGvcR@OxE0RO{&| zzL~x|f%kdETcl*2^l3g!#kheyE}RI6Gqb`&sNZJ;-ly;@fSAP=ZUCGG_))+M0IyQ} zm4K*<`K9X4_fBb_0f^}H{eTx?%`*`Yd7S?m+8^Pt!e1yH1O#5mfZFc^Bp;suL|O_L z0+Qav3eN>ZohjtISl9$E{3}+<r2A_?(%}vp?UWOx93bC0B_DUG`>lYGCo8;B?F|Yk z56bXM)V|QzYc5hd<vvO0C?M(o4gb(3<^L3r{N4jdf4<j*zx=KESBSqFz&W6M0wDcg z#k!CFPXUrY%5##Rb?VM*kd*u5yF$c!8<7yc4#@cKQ~Nz?{|X@a-mdPSR`*^&##?3l zYs%EWSmA|$_{%TAzw;2^nSiJY`FuYMd-sKJqrWD<ZvZm>Ujv>4_dS3GfV%-%K3`OO z1K@Pn>i`*k5g?8%3Mm)F{CPdc(4!m>=^a%2Giv9$iFjNM!N2ehzzYFy0%Seq`(os$ z!}#Z44>%X@lnWx>baj6lm5}-IIw0dYtnfL&>A>T1o8fK(WVm&Jq}u{W{1t%b!+oK; z2i1KJAoFXc+CQXr%8fDHB(+aa`@5*L#Q!@W{a;o4AJzUFwf|i0PpO?3qlnLYQVjoj zK=RuSNPa&GNPe3DiB}CserKtjJ9|t&<xuI*E8nEUMe=FDdliuMxVuI=4*(MH`+&sz zIw0mwh1&to1*F^_<J}5K{M!ME-vP*Ym#cfVx>o>_&O$)Oa}glAfN31h&}65b1&Ag! zZ89L}Or!iNs`|8d&`%-Uv?GA1GSmJDh$5XvxmIN9w4VYpK5i(S4fst!1fA9ocqY<& z2O#;PY(8NEkbFeczCz&=h2`pxv`Kyy03xfVfwqK4+m!I&S>g!*;wSGIeh4rRc8u#H zehE2rnT<jodr~f#LV6}L5aCha5i(tbhZGJeJgD%1!hH${6z*2IOW{t1I}~nLxJ}_! zg*^&4D(q6&rm#`rDuuNQ!wO3k&Q~~BVS&Pc!l?@L6y_=fkn}P<`W4ZW#{3Gvj`A0M zU-*=KL>}`QEx`w%JpH5r<RAVf?oimHuu);D!hk}b!Xbpm=fnYpI~4XPY*bjPFrW}X z!c9P>qa3a^tcR3MxAG6&w4;Jr`Gu!x2fm%3->-H%AODov?fknFxWu>fZOZ%7Zs*qn zsD!lJ`7~7s({AU_Yt(M%%M;aZ=f@WVcM=+$J%4BWqP>j;L|*XwFx>2X`E&TD-OhjS zLj1Jb`7-5JX}?E8qwT5P&WEW-5Z;dYo5#*~3*G*cJpSuJ&+R`1i`zcvv9q4K{rT;- z_jvGmkHGDJt_MHq@xQ^tUzx}MB2RiA^7wn@p#RfD@83P~U+JMo`Fl6NDUbg;kNrB2 z{T7d%?`6B`{mjGf{{v6A{|g@ct339XJmD|%@auyF<28})Xf3y4AZ{m8b@mw=Y<?W` zl{L5gnte@dX`QUMt2)ioUldq_ke;~7OB=oh&lcF6X4wgo4L8dGwa4iOfxIt8F~3M_ z6W#@~u7*(~iCecR7LV9HD@}s&vDn@yJ@&NPx3W-u#o}elS0h(UScrIfw=5jBat^W) z28A-V@Urr{V+B>_DzTGjS@TGfTIW#(v9gKJbY+zt6|q>CV6H8;`X<WDiiZ)<&G0ZK zquU}iQ7Zw<c%-xpCw8ZVl9=yhM@3o8DqibJ>M;aoy|obAu8|J=sF<>>ZYF&W*NZ!% zYnp(XHKWEBvNcp7CTYS;2Iym1#><F2BLhd}s9_61C6M)Y7_ts33!8ytDyi%ckCO9M zR}(wx|8gjpqn2(VkQQ!5yhc)8E(t?y$|Z%Y?>o6$>8NP9aqXM+5nJ60JeB=?=+(>E zuuH$6BaFO<$8%acqS0=bcxrQ`y~Abo2(LD02(K=t#I*|VR+Xdc8vEUyOS0?7n}5mt zfH7YA)Ob^u^Xg9acXv3!^aU8JkyGWIdMq=b9s!1d8Ib=nN8&t*b7L{@RZbOiFfo>% zT1lwK`Nqfb<lHPB&ev#o|IK4`reR#EM-4LC&GCjrCl4YT8mcAVZ5YlUX-efk?iPX` zh8W)vppsT#5RND3wo2)=Dcq>^)XKGp^%AEU_%955<lK&E{M64p4>$<t$hk>C{3Bx- z%vq230C|XJ4#P$rXh~?SU1&zt5OwF;B&)yOPaA6=a;w>H8nJYoeIY}SYkIz~?rS{` zUH~{?PRI~)y~KH<HT<OAiAM(xr{9x_z%fS@M}FM4IJUdv>8~s*y5y3%(m-A96Q@O; zYdc)6Gkg2w-iI$>Qb0NKW9h69V=+xLR}*OMY@7T|rYFpMZJ+zO(1fw{HexZkjSi#Q z=i27xhRDX|NLQS16nf>pf1-543=8v5RPJNd(c{UHPi4i2vF)AjYq5P=lVd*=YX8Aw zPjT_e-3F9it>V`zy`yKR<8YI-a@AwK+eH~N8q41fr8oZ^r}0ShHds#oHs-rs_T8#R z)LojLwjhmlR9;&C#?oVXP&>@s8a@}BW6Zx&@W(2IrDQh##(cMn?@ZCyKm$t8xQ_m> z{D~ZSHa(zL&!+8%4=BB(;7`lhMkU1E^e8y*t$(|fKbvibK+kQwb<xtZ$~L|A<$%&# zrRBlRU-FeV-Hf4b+Wb~}W6HS~_)Uno(px2x#Azy{`8)QzU0>AP;od*ZPdswpqv^@? zY0P)FsF#$+*5?B#7^e3i(yJ_IE01<c1+?QzqBs9`dgvXr1ue12KM%cQkJt7d#E>#G zr2GwmKP~f&Bp+|Q-lhZAZVfenfrRO8!$8C+(7fByteSTogkjHk-39zhfjD#?_BPO{ z*e%p*Kz51zaqol4$9~<vY&c$1<`WM^-FgV3W!EBtaI)eEgmoT36Nd!Vp+h99^2Py( z`h>@eOsi^_vf^kNPiIYqIE#qW7*tW$Wn^7k@x22nF(Ezfw@RyT;I<Eklh=`t=a4Yv zV?hQVRD`Aij}WI%f=Dm`1eKXLa`2}y1VwC*Q0jGLh>=qL7{%R^5Jh}fnXXEmGBMn@ zKOPLHHV=T6>eR-(v`~2PAo2p%>f~!iU@7f|f}n1}vk>}4|CXc#eQ1DgsfIknY_cpB z{IcXG7*Pr?uM~+Jfhx!&g+?HWy0<EIJLPxTSJPp^-uO-G6j7&Cu$keKZ;9$p=r$}7 zt*ohFy+Ig;cyX{6-zw7yObAw{O70b>;2eOFXR8++5y{d+$YYT#eE}c9w1TZ8Gm#Pz z4ih1FNcth=!xI55|3H=`O2%GY#~g*MvLC{%eD6*x%oA`6_fM;WOW0olwWpdb$vsuc zPwqft5bc7@|I@2BKk-F0ln2=~BymO&UD1H^1Y0=uD1*2v5tNpp@E@Y9iEyx&-!w+H zDpNWia*jLURh4|JD*4}9TWV65R3}vx9%NrB&+3$Ma&L92d6iZa$e5W(LaF{OV6^ui zIf+w{+I!H8zw$I<g}B*-{g@wZnB4o1apE;VulwLNDEd+x5%+F3d}4kDnCoW(b2s<s zAK;+pFW)!VR}Ti7fs+*7s=Jw*{_wcuV}n~nOKUFdsn}e|xz0<zw)rL4j%<D#|MTKA z9%MJO`Q6nkR$ml96Y%QQE8-v6{O$^T#7`Evzu}xx|9#Kzd1-uq*9pn}$-6{dWq)}5 z;Ff!95iMGbFO<4F%*5@>QSVUi!}TN__b2y^3=D3OFs%FVXcLdTaPvOLhf_vmP%V5= zs2>V9AE1}8&e5*-u@l1ElXpsXBq5O3e=QJ0<NH?`&}aY;gKx_S%kFJd*bbn1BVj)| z3bD%|Ug+j#J`nr6)7<nvHa^_^#NZaA*%qF{UR*+Myr_TGxW4`2?eS9;p$Z7YA5u#t z;~Y34-29|wj}Idz>Q3|PBYPKV-qr&rl)7w&RMSxJ6U0uM%&c;v1r8c*$rKban(*DI zAsJoTop4ZPy&~r-SAy92T!=~q0ZWvKY|Y1WB^KO@0I{DjP%0P(FdgHcP(%oh3q$e> z-SdJLoKG}L(mr3Ed>xl5(yhb4<u72XI{9vO@+IZ|VXiz+xP2-jWJ~ZRCgH1xU;Zsm zGY$PEmFQ&z8#3|!Eic3I(GxH>jT~Uq6c#=aJVT}JZS0i#@2*Dm3-|Yj0aRyV?@_4h z<%=MpR3D>T&_|qGCMRMk(FYw`*mnz@Z*9@E4kD2^BWdRGLG*XQ2yDFX^Q_aJ`%4xg zx>t@E78}vyA=fm%bb^N`ga5S|o>0rmjzOZTUYLMRYo66rLx6Pi<2&)?5~6jna~RDe z&Cc_%dD)rG-q)Ri2Qq?uElZH|7^KJ*%N-d(y0QcbAc&?C>3xM)UL?GCNHqO9yLd>h zUW^=^MPiP?Z*}r*j!3EC53w+kx<ZQ|IL0zO1=X#V)>LpDfE_RmS@z?uI}?s3P)!N$ ztq5J!z$@1;sOuKvr;Y6ejtb5bnXe$*MO@bo>b-{>tCCMu;qlGX9Ru*w*FLFS#c-0o zC6xbB((J!=z-p%*J{i{;Ahvw~zX6CZFQ<Ph$b&5B#u&txJ9*1!A^dq#0?n-lt*|(1 zwcH&L-Nz6i*INVO{_A!iZ=6^#I9|8I#Iy@B?FgsJFy{i96fVihm5lM>)Dm1cr~!?N z0bX^Y=G%$`q2!6YSR|H%q2xqlLt|!knrBjzuiNbGdvW6h^36Lb=O?c_jO5&j!34_Q z4?pl5W>0d^WD7Koo{kE?B3C8?{UvdHXl+3srh~lqF;o+sjZ7dE86zrO0t(K~8c*uF z!(&myv`odOQTc=zr<$qYFdDd42&rPM4p+d<SVmU|Bx~dgdwYE2L-<MyGB1RMV;kQ$ z@-4>i68yy6ivRSfqz|WX2k^@@^S6~|I{crr*|#hqr;Ar5iy=MS4eb<A?#cHi6J3<% zg&=KPq$SZ2Sz)ZkwW@V#B+>#&%<jlKNaQXv4@mm(9HsqSPf2LER5WCGjVy3;0&j$O zLc6HMgXc0MP2J_)O&di2C$NmTG&E_pcgHvRRK7Y>fIAe2UJX3i7m20CqSrOuz+;+G zq&;qHjD{0%MxkpSd(}r5H8tM=*<#WfEp|=5si-qnj5jp#UJaJzc<Q9sw{{Ho)(#w8 zEK0Pt;z3Hg-*GoOeVQ*S{Eos074B2`tU}KDY5t(_FAD#u@Eledm;!~DDSV&8a)m1u z-k`8s;Z}uTRQO*Cf1=PXV*?V)*#B@U1%<Aii>qy6Dk|5i1^RP`w)+=uw_|;i5A@?s zKHB{S8^-46CA#lm-EIDQ-EBE|-EF>I?x7O^L9}+q@F4}7Va1~#I%3D1ss2aRpL6G2 z{4lkawK4O=ZT{8#D82Y1%3o6q`=WWi^(u|64`jL@&iw!GYo2&J^c>t2NJP$Qzt#7D z0n0v~ye_M)Sh~2np}K0(^3d|tz6;G6_J!5$Yr31dH(e;YdpAV8Z-`xJn!_Bq0zwzX zX^+G%>}X%JxOz^@CP1G-3slqv+GFx4X)Mvz1&vaXmO!*K5O0GkR6)nl<E*o|Wzp_P z04k7MApw8<PyzIAF=~3Ij%ZMArdloZaRH6Fi#m$}q~8=D3rBiyXoX(efpbfJKupP@ z^K(;kVFb{%cW(;FMG;HbgROKO7H781nb~4-p>ZhY;?s*eMsh4#Q`}MwbVqJPr%gT8 z)fmPCu?<aKfjEX564xQ9V^aX?m~GDcmPW0I%_W-y?l$ZGz6O?T^7eG6(d|l(?HQ&^ zZJY{Z3xB`*&jHMKU*M1GzZ#SwZy!>t&z?_QuANrv7~#LJ{<^0)ia)-~NOK;3+4%dF z`cwWi+kJqeCrWVNMu2Sh0lL^J!d!`8HvPm8s{aI&zES*9KP^oZzijz42kQ-*rTAs@ zzeW9P;GZr2<DK)>4r2uaW6Rk&=TrT}GeEZ-zmF-Nvu*8>gC|}GeqD;k`XI*Qx#-;m zk54Hc>xCGLr}F=h0TeU-rrK(G!S}>3aCpkI@A%Gxg>fd74(kt1?h+N0xAZ*s6&Pj; zaR2SFNjK}27>n<^e{dP_o>M%nUsytC%KwvI3-BIRJk~QY7Ek5qXT$MM;QdhXSl=@6 zvfLB+A@FzVy#m(14E!wVIt=_HiqHC(f$!4WJOy?B{jZtyvtDN4Ww}pK4*ZuDpY=2Y z-}PQH_mJl3y$06TvG6E6Sg&}jw;6cK=Z{dY=R$t>yMSnd`IIxn-d@S))&42K0Q^4= zSOmBZkoao=fmcKQr3|+Ska)#_#N&Mc;^hO*1e^qj&9wXp3g1S1WcWjX4F3y2hW{xb z!?ysU?iEtrpZ>g!PyEx>{(gnL2SB{n0Ezc|K;r#c?e_tak1wnJQ^vo9_W_818zAFr z0wmsQ<6l#!{?&kpDxZpWi9c6i01)w%oUZow0g}!eKtdfXd>N4G9s*>#e*sAPe9s$y z`Hv|4FF=O-E+Fx~2}r!ptA9%2W<cWI1W3FXAn{t&pL(b9m%kMMh<5=X{XYaqKBfRN zTrOZC_#UV3Z(+lU?!yZI0LXAJ00Jd{zrsfWNtgE-3IJ~bWVqFUXTx5vcB*H{gZ(r> z#*+g`I<KM~68=FU?=LW4p9N&O?^Ji*OlQ7+PVIbWmw4*{F}E*FV1kUl{MGo!_?M{t za<$I_ybyTj077P<WD4Lpu=5@O`Tqyn1o`57-sj@;dw|mcDc65KU?(8@n!+`Jq`w02 zJlMH8OnWil1+ZTPh$VU92LV~%CIB*h{~V|3RroR>`RDuHOc(Dk5pSQuJ?j5Gwf~30 zyA<{SGTbJ$cLOrsj~e%y>(zZFU=Z$?0%Gi#HW!e11%Tx5EI`J~-AUs8!)Ne*4oLSW z0U6KZYX48bi-GqwwQmPR5#%QUu_s!1J0Ol~r*SNT{C#1Q+RFhMKTpVr2Ob2E{Wt01 zZh*vxIwJJK#y)92AjT+pM|v6{>X^v$2LMrpL@u5FXlA^pGYNp_^#Z2=?lO22cPiYW zkbEQj#BB<<D(q3XQDK+DHieA}S1GJj7*<%SkbIN=T!jS+0}7`q%u|@F5J1Awo&3`s zc_Zmz`btqws5g^Xj_{krazxiD_ZUtAJgVW303yF94FS^qpt>IbMEOh_0L%g04M_i8 zfaG^4AezLa9qPVa-M0avD$D!f#P3n}jeuZ5-VdjHo4Pjw!pQsKbgzYl^rr#}zkp2N z00QIh|JeNj@(VttTxWrP5A3AhsIXLFKp}wmvz`OLW-c=Y0jznFnE|_<pS`N~E=Aa- zc013Wtl|Ht{!7s~C`)hW)4M>6a{fb7qCVfVYPa$eWon<Q{vTBPcC|kOx|G+l^X6}= z-OhuTgCF|adGC#gn|3=-=Y1#I?YvgnBkXpb|2DqqZ|B{AP<%U2{<Owt=e;x4Zs+-( z439jp@<XutK8%WL<zed7z8#$=O~2xYkta0Xcgw$u_({W>=kejTFZ1}%^Vr|;;1{Dj z+~KM2!)@Q<vH#v<*ZOYR@x9+e?<o)dh{t}v#~$<8&-c)4^7wb4eBJ!UJ^0Uf($9Oy zZv0z3_D^{5AMn`u-n~2gS3UMdPy7K-_)mN6c^<n8CZ}JB&)5Z=V|H#;CK3B4D>^%( zO)a`xVnwXEpW=2EdGoO->MpQcFTiGm3K?VD+H4lPXx3q!KgtpBePh$MOn02qjOo1t z>+TVG&q$OeIsJw^wMl1UI9Cm_zhHknWP2lF)TU~t4(l<z-HeSw$@)@#R({fC>>Kr& zXz9GGN$<C-0Do*#Cxs{5$53}Jxtpdh`6uTFqr}`zl%nt%Ma&(lbhIdaY=SjI=R1{t z_!>lDJ%a%pD|GXsOsK1CNqhWivk#_^tYyDxz$+PUQG9Bda777ue%30y*hRhNZXYn? z@v+*ftIF%6CK*<nbyMtyV_tNSTNG#%tloMWV$^`6`LOyoERV$Stecg=i>&L4Z)#|6 z!s$#V^V#kZ6n?~8B?9Ig=Q>{&ugnvltSFhMKv_}JCplTYk9G8<*A}2UyQ8^llk57y zTD0QM^)3gKUztZdF7HqrO1+y=el9oD8JS}$moxjKQI3YZtG>AcfT}!F=W-&A%0#C; zvFCD*#hRNsTU`!@EmUFSwz#a!C3D;nnWyzcb&c0iI`<+La&*l{n;T$>Q3rTCihuoF z%*&3Y2mI3P_be_hx@2BJj7yFir+;0?&;x!1V}LJUhEU3HQzT+6Lm2=X%J<V)JJu## zFUXJX?^S;LPa2n{*MqqU)+1Tuw<U|lls~p~e!#FWZz`Y0mU-4gH_h@f^-fz+FV3H7 zc44y2ByYrIpHn4}&!f9FRvx#bDHh8nFPw{c0}bcfG*gjTq&Eb5nw8n;jVYfRP<qHN zF>{&unZ`r!*z&0bO0P$0%vb)7f<N`js1?VPPu;13_9?yHO3$*0>7~tDahieu!mvj^ zbt)DoJaWrL0Pa6>T3Rb1(*GD0e>!DNd%TA)mz)Zu3~N%~96+F|6m+{n9^iJAj3YDx zi4p4_g?rI6aCo!;*oW|g*Z|}iE*>nCG(1r@W!zvHmRXR_E6XLQN`83<z@sdF!55*& zSin-GdIUz0oERFcG$95ng%(uoW=LaLb(|EcZ3`!l^j-m3rh7paPi-#-)8V{S)$Ccz zPJwklek-AF?t+FXR5wSxr+njjGT*qKd>uq^=Zdaa2!C7(xsz|Bd?9yo#LAr<vT`R7 zA*mU1$(`J~t7yNZA&bhxb%qE;OhotPSegzYWMKqEAZ*fR#ce4-D;gt_FnKIJu??b> z5)&j=wpXPpP%zg8s#CiMklfyzbH^o43*)ijRB!|p!_d?0hOiJ7JA_jofbT2tb<4Vy zOck%-FW_#()?UDuk$O{c*r(J>bv^PjHAH%LIJzEHq(=p9DxkvABzKq1Gl<{R>~!+X zlsF{x@a*w6O;A~$#<fP{f=~|FrY;`ve4XRCkLfl7JU2tzbr4CXpv{0Gle%>uu(_Ee zDY<pKIE(()HkaTSM(kx>O*l0xroy$l_@<6X4Q4G6b?9#DYHM$f*$Fg`#jNl|aXf0I zI-0s52+*=9a#MQ*QWEhts^z0}g$Px|adx>_iI|I;h#+&+E;fQ7Wzi1k*@JI}?1<5* zx5gn(L6fqM_AVxq#`f!fLz&TxDD-QmIbC6iLaw)IA_}_{#ufG`yhGuq6`D}T|NmW} zWIOkwJ58<uD3DCU7E1Fpe%a35?$8j8fZ5L7us0*ddp~V9TzNJ${~dFFVfk>*WwM-$ zR0IEB#aDi_p5w%Ucemn^Z!z{9$Ms(47vXXFKTZ7PKLgM6{^rvtKlIau)YpQn&!=E9 zh8Wr3g?-xR)O{Nu`t*F>!zUgetp=}!t;W5u2oPH^g)`Nk`@6*B{x0D=;DhiDK+^d$ zAja*I->W+tKi!`+?lnJB_pbt?<1V~e-IuBRd_czcKDB=wi6njI5r(M3a)oT4be{pp z_^?MR_C`RkHgT0gj$yQi6_zTTuW+uy0)+vE96%V3V*??}j}X9d$J|8rDd8x)R2X_E zHNqdPPb^g!PzWIIs{y&sWX-SDZtK&a+HE~$I*D)V^&POgg8M$>v6p%5#C7Ap>9KQ< z&+SkB9B%tM4?g*H`_J^?pY8D<wKBDxnC%J8lw2q3R;dC!ZTE-;s%KNdba1+!HTw^B zoOol&DsxwtR?^yNw4;`5)1`InNh{ksu=ezjOLw?qgg3Y7WpP<&W$PqDyTHY=5?Vpc zmWg^`vDi@7)X|)P2ueiU>Y)R{T%E7)ZlY+3+u6*yV{7X$0QefrgGT?eb;+gk>;-Vw zx@0}yb{qSBBJTbA0{FpjT_P72#5Ve04>}Q=T84qKcGP`Yli0c8dtH}2sp|(zkNd&b zlJKZ|rC6>(r)mcqE{ykH-vOn=c1jaKXMz5~G0LuEKi+#T)G19<D*tiD2YPOUz97RK z?>(WZ(sMZ3>}ym0cA<mu@<zhPTj$JIdhDNQwkkco^P;?2FY#A;W3KD?zAnuZ2Kcrg zH@#A4$6VLtu|mMiHNe-1iox<20#}R*+3Vr2xfQz=5G^tRy!Ql4m0rMj`?i4|^DS?( zlV0^PK+`+sx~@^_+4{1}R@^idFMr3>6VRsghBW+cO>Y4FsaHmoIo`T1tc-Cyq}h(a z(p{fHzRmcU|1$uDVb8j572>aj-zpr64Ity0OxkH!#rY#$Mi<8KUo~9U$$cp2F5e-N zc$92EauAfoYHl6+xBMD;V7%tS-+1wE31=zcWbXj*(=WzkJU^q)9wZ@b?|c@dKLhDc zEViWW;?<h@&S&p-FqF3KaNEjC9gnhb`m;9uxhnnHnEq@_e|DumH#(oaTam`JZAXS} zXNGN8hHZC-Z6L$8FT-{q!*(#kHk4swUZ;6El3_cVVe`53rnfZ1#;zqzg=es78&77_ zHrCs;Eu3Mi&9JS?ur+4b+A?fi8MciXww?^z)(qRW4BO5O+pY}T?hM;dhV4*>?Feo5 zaiiV?sJK<h-weMW&s*plBUpMf&vExeF0XnnG4>vwUzHpwdhwB*!1@msJtLUrZi|1* zEfP`5FD0*o-vMcTngCBER5e%6$g62CpMiTi`6M4sy}zpYmKjs4Qt=tN{`;=a!!osp z%_w>8jDj%U&IyE*^)sdp;%W=g0dqm#7aq)+!R`~gD-Yz-Zr)tLI}Z|ekWt}bh`u-d zTYgXPRFDcMaa%*T6L`lpJ|j>CPNr5h*MlAZJ-9$)ll-zID3n?}CFH+naUPcU)#2W~ z<KH^?z~-Kw9{+uH|Lwo;V*fqQBh=I3J%2uLD;?_I&2V`aE+ZK(BcPEpGLU!_>-Wbc zlY;%oB=Cx-7%o_x$N$TaF+nbFoD|)Zw%|evZbf|<7`KXJ`a<vU`*24{n8p<txhON= zwXA0+7f${IH*9JU4y*p;Q|Sw=xc9=>25^hDI`sqgU_!>`g#%5e<Xk}I_0es}+4bju z>OJ_7yVcx2GWWFk8p0uTjdu?WpHMVF>@`5bQwz8`6!L$ra)#_Z;NgSoO~+eT3kJL~ zoBOk`AfVi`5*%E$bu;NgA(}C`FVoEVE+w}EqLC>eQ^-I|H#9PJ`)0;Oru*uu@`_~* zHKDSG$`#esb!E#dDwa0j`K+>vI-i|C{YLs?OL%OUc{^oMdwg9}7j-q&b~JV3;)n=a z$M|%qe)6r@;x+B@SZ$=cu4!FYN2E9=fDUr*RovDT3w3n0H5IqVNTsQ}xS3lcb<p+` zS&BO-#cTNH0nnF6H&{|8WX8h=h(vjD-Z<c?5?()OX;~hj;(W+!i?07-B+t&Hmg;=! zd4(@2{ENbO6xtlwr;~)gYkr}gWi>iYVH?gc>h7c7*KG2-=fj=mhX|Q%-{X%u3FZ7B zW)%H*)&CB7W~0AF`Q|(%+rA6s*=VNYm(72yeHYT>zRUKv%)W<Br?c+@KN{kd<9D;- zF(1U(eH51-^A332__m?P{K&xb?4yt__g(&5_h&SJvhL$N4!l<tkNG6V#_y6>Jq(X( z-Nzw)F&59I2b}W4VZ~#<Wy2dpzAnMO2rr!yejV^Uz<&dr3HV9Ca{)gJh&q*D4_F0z z1t790|1x!-2e=gOvj9WbPniLDHtduarrg>TzyRReIX+(*;9miA5&oxuVc7QqE`uBq z<vdW8^S`R_ZiTli+z1F#`BMQIE)TF8@HH^Q@UH+eJV#W*yA)D>V-fgj0|Z`4le+WW zd(vABSP44Q0GSWed%PHs`<RGg8uvA^M^y5AKum>8sMmNl;2_`}K+1ny0r(xj%K^Ux zh^1)BrvOnmOEv>y1TEqI*arY3fY|gYSqb=lz$(B~02cycU@j>H^aFkv5L0l`cYFch zc-YZTl>8lKi~K90JS5}*OSn&ldS1ePGSu;shXE;ncn=`t;7a}-un6$8fO7%+02csm z0K5>e9dH)lM*yb-)&QOZcm-eqU=bkX5=*87LiVYIa*w!YU&4Jh>@k&$pmJRT_y*uY zKn@yMYM1;5a30{ZfR_R81H{s><Y7Q;1<24<3i$7^&j9>4z(T+jAlgbv58zb51R&)2 zN<In*ImMC&KorrmdO&1}$VXm@px~Kz8VZreB7cgo?2JU-5udW(hHw+{&G51>S0P0q z?O)_1;W;q?e?o>Q<m`tKc`gvZakunpKxY8%h;QN!g*^%z6_zRtC<GAv98^N?rCIX{ zwWBP>{FaHp&-SA{`JmnQo9h+d_LKEsit=Q3-yk3U9|ped$0=_|yY094A`@YC%su#W z+kXUlZadmWhMo1n?f>5%|8~UZ_CLcD-&-E~sH++HoLRfW|JsA!>A`0|>&CC}gs05E z+kYnt*KNPp<G;mYKhqOG&oSKLc`)R*4}198kMeN)f5b!oE>C{-dcuF+W6$-3zt=<m zN{@f9hyGp<y;nW>4|(vP_uv<L(tEiley(@i=^gg?f7_FP<2-iCy}QHj@X)*4gJ0y~ zx5i^9EjK-{eBYlv_}}o@&+^!x^VqNT&`)^yO?m9!^5nNyPch~A-TdZz;tP7xU*N&N zz>|M`H^EJBv&YVR2yXw+dF<UD`{^D#=LzocUU^jBS8)5=y>MrT9Ot0T5U{cCkOO*8 zGK@z5YdNkRc1Jg5N+D87a;6K2juuv|Y1-Jn&e@N*@z+3FYP734J;)@wys15=oB1{{ zHu!n|nu!<2VkFZA?7T-YNk_{qk6_nCo4Q--p)kNk2l=(E?%}3bR(G5ScgIPfs<SKM zP^pVYyGA?O1B`GxLc|<ou%01}Xc!btyVQtjITMGf&a?xH+lj*{z&0Uk6YIJ}gC>q| zj0<8wx?F-_j)x<RN-e(*zEQ;Ka$vL>7!>nskKvN<rbR|0fsM&=UlF551naAEj+*z0 z7*E@cPUbou$XI?dPn5<Gf;2>yN7mx;_DDD6ByDJ?{x5D?x2|b9mZa7P?3(K0^6?%; z$x>4^A!B8UfXm93g&NjGqj5BcrqPsE)>J{Io{hkX+NHxf^VF&eVh5wJD-#_Z=BYR9 z<!%*xQO~-wxs4LnbO~K%3UcxYY-wF}bgd2U@MnZFwH$1&NV83>%kIa<o9Sn&Q>K`w zq3CFEwegyY<5FdvW`xIv7A?yuo`=Qy_IQVb?hui1qIpB>UuZpqU)>HSKc!eloj$6o z6O)y7MN_~TP(xWIjzVMcrcS**UPigM<q>Gch;%kPyqI1`A3n@D7`1Lo>&(~k#f#+l zR5n3u%9&$JBAcWivTn?@v|Hx+q{FPK&x@knE#L<SmmUus^{z2Tp6ep(GR08!fVVEu z-HP29BckjQ@AQg=qV0sCuYVDab0bZiE<}$uZ7P~qnl7Z~3?191!a99Kc`cU1$I!Dq zKfC<rCBcj4&I{1E&RI9eGnL2H<9h@PTVH^&n)B9;w2xtab(itT<H7~zpxPOPKdhz1 zyw~&AtFg$XvGfjMbAxXSjd|W$gjFGo_q?@H>DWm?*W%1`OstJFOhd!5^#V7R8gxyb zuPbcM^>TN6<{3)W(F;7!IC%McL+NR@`EpRon4&p`Np>5D-hAWgrN>PX8cQz^^xQNs zoy#zK{y3(d;asJ6L_<wgdU;4M*Q{Qn^q^`X0tG#-G4J{4QKiRqE=?{L(d6#{=xMsG zm-rv=JUDlep!r&`xj{1(^xVdsmvp!MjiqO}tKNhz)r{)F1e^Q~fxoSQm`-NnZ%n<w zyH*)`T?Y6D8V$VwHYT+0dFUNmPi|nfA@u2S2F`6#!U{&G_t@vv1A1|8hlW3}#<Y)Z z;O~8zq{XKBC+W?mx47{mCeTU^+tr*&WHf)K&yK{~<dI!(eZF7m4Qbyq_}=JY0)a^* zjJN)6*YMk?7`}GipyiA7zN>la=Ge$f;EbW80q?MkrZ;z^!Isl1e3tfTeg3JD3%C0! z2Fs~`UER@mv;&heFMsnl8O*5~AiUYooBx!7py#PCl7D0Bxvo`ujY_Xk>8W)TXlPi2 zyEbX#<<Iu(?ta8wrrs=c*OzSR-Q`K|fbv(X=>;cQ(>s=)=6y=f_J0RK&tp9Fjx7g& zK<V{pK@KT@ZQ!rb5OyaY^)1rYV1!u3*IS=!`%Iv%*mR|7>^J4w_Ouy45KWu$G5==( z2*VzEi7w#32ET1XXs_5XC405_(Oj=T?8}Podo<~P*?8n7xGm;W(FtnMGa8(!+PFHI zIEVxE$3xgBPgV@!%(4hwD5Rqg9%7`hpHF*Q!29S4iAK1d30IY+$8jyyFH#L($vpIz z@SOl(x}}2SO=!_S`~vhMLS{PnR-KC?+<2Hg>~_Ox;Zz(sh8hgZ=0A|05~LTbtocw* zI!Q*<eDh&8<f<gpo#L3Zgej;=T~VF9^?;-XN8ct@$vz*>Wk7KYDC)7dB!kD%NJawv zpA{=ek-Zk+;Q$z4YZyWmD*rr8sge@ZAb4Emcqo7LI~#u0$!{EdS7N&aDB=G653d#y zq?ha)f|uxd6n(<}^ZVw4Gk|~rd4|s%33<2J`bDp9XgBMX9zQ4hj)Dv{b_zo~kO$$E zPza}h(sx9n$Jj@AIvg_C6?kjj;`IyCg53Bi&|pfYwEX*~f`cnlQ;s5ATCXO7;O)yL zGniF_eYx-^;fkUGW=ksA4qvEgrF%Hl&zL0R9ySia<t8wSeHkcD0mY*I2vr8>wBBo+ z<QKvB%@rU85dzYGfa5qKsSxzD7)kOmC#S3ZxarXQFiX`JzX*vk<=ex%0n}ODa{wfe zIiVkt7Hizr0lF+$otyX_s)b?wsjEyWL+@-VxZhZCU~lgUfU8wiBZJioA7*a*KQ_R$ znPM<mhEN|tD5Tz1P*#*diiqXY*N1Rc4&Vplh9^R;<_C&ibk*0CR2Yj=z3|opiG2Tk zd!a#=)!QX8AZ5h1Zm*GuhEv|Uz&SmdH#Aq@oC~fdfGfQ-0S&jjTOcY#rAAaGubqHW zmG96K<r944+!mJi&(JezF!LUIXlwbY89}mJ20@I*LoXc@d`iw>2ayWK5C`}|QNZ%Z zG8-W@3`>>%lT_(bR{%??Rih$9jzm~{xjOmhn&dyIy8P5dUX=4kp`7PMq51^mwu{Os zUX<SpOKz0E!6k#2fl(;Wdr`hL3gsa$%1xtCc6d=%jza14qRbnG@=-6!<WVTgyeO|O z_2vudW+eK_Q7ESiO7Q#i=$}x>aUvsY#~J_6Wc45B4WE~VCYs2fwe6&Wzk*Y^|I`YO zD>9g&8$gvL3JN{=qjU&bAAwc0m;*)pzd`?0;sBbt4f54A4z%MR6af`z9llP6os2gC zYN*H_y5ptZ_FOjJ7jM_LdSxnSVR%6}Hv!4L;A#*I_fPmLdunJFww)6?x?=d2iEsYb zIY?xv@lOTk(u;yo&-D!m#nk+Gp2+D8Pjc>x@gZD@Q5EgCF0Zg<vFWS0jd1rw&Ujlq z;ZzPZ1aD;P_v6IT=H#giwl(KuBao987vob07&2$l8%#{spwHpZ+yo76#lUDI8K)Vr z$bVnX!jS*Irxxss&#c(;rU^MeexhN2g2T0RRFzxjEwt=AF@t?WHk>*I9W^?iT?61D zoLXPdd$})uMs@1O+y}<x;Ry4Y_>}44(p}>=|AW@}=|wNT@+n|W50@7W7`KOD^(Aga zFTfA~eW&>S_dWB2aSNV~x2s#vWqx0LD)MA65{9Cwlxkv9I9&cjjvw&{?}48t@WCDs zLamX>O#YYQ0spT6nBlHE`8W6spUi77nosPf9nI5{N=={tk(?9lOh)o?ltXfgBBXn9 zNbhOzs#FfLXBEry(k0}t5K*GuKo7f4S`M%tVZH`mabr&!$9me}R4+K{-|`vhMkV%e zillx;Qf!`YS0xY1IPLO$^jMx>J(g$Ru{_(3<+<coo^y`nIr&(gZy+DWOy>*7@_g`E zo?jZ}8T<sC&{KT`y<BF5!7k&|<nbAPKg!_^?8}HEbK6dXR~qa(_LkHO4u$HRelDc5 z6gmnt!Jzv`1w9QosI!I?(Bl5g-VGD=;AbTir#(_xosMrNYZbedv1%<Usd^<(aaULA zKtTA6ux$xwUU5Zbza(9NPC^!?F1vU$=4vCi$LH9tBsFj0W=xFWbS7p2p^^F-bD=eV z(O}L(Is#ry*t_u-Uwm5c?jG`)fD~pe`d(@7=s!*lFPt1d$?0MqMQxYa5?2x<jq_c} zLhp!V%ztDOFxaaKb9NG?Oj{hxI|aujiz!;j(}M#0+Uisn8dOOgY9VqV2m6$oFtZMN zr&7wqSqGh`k>DL1CM&BAxi-$zmpDBGuM4Ad&~9K!D(Av#d;j;v_!3C%vK+9C+ZIlm z$5G(qr&Fo|7g^2q)*bx7RJdXruD5P?uD2r8E*on214ak^4(OoYMveFQ?Lzu~g7l#p znkpulmmCz(8uoWWj&#k0U(V&@CD%@PN#HF5ulcX7*v)_YD1ExSw*<)^@%guW9=R(a zXGzaf!W({r6DW=b4_|B};-|oEWq`qUS=$UD0!GRtqaj)({9p#@Wo93kIkm<xbLtAi z3~o|iTSI1Q$V|;{&>0Up6oy60`Lf0E1+)NV_I0~nEBDVHT9Uf#LLvPKw@%P*lD{lZ z{!Uy_MDEMEtYzt9+I)DQux95Evi_<#fSS^d7Kn%+3$vz3v%?IaDmhr4is4nEw}kZZ z7ly;-ppvoPFe?&J;0p{QitOLAg*=#*UUe!^QS=vUSrCZl+Q{H$)_Rv6s$MXHP9qfz zf;k-=!4rm};F*p~)yR*k7W}&VUMD{IUN?#x?azdd#2x9VbeQpl7giidoR5{wKCsA^ zYbIcO<pRFR1eAzm#_;g)EAo+<!@Y+$rduMXXZ}7)rKKA&n&w<Q)s)LO64)|)70j|* zx8a=<AqS_wlkfM|GHj@^TE_Q5iqp<~q{mcjZ_60M$jz2<NTAa)@>m(K-6Iv7RW2eG z4|n@#R}3U8?gZSEtk`OE5NlCa!D((@HeM2Bt7v)hrShc7vPX!4u&EVyrfRlovV$LV z^NQ~J#7A<0Hay{xlK|K)+SpLVH@XTZOGkR5hDdjk=>m|R){;ykNF%AoYf$LLW+J!` zz1VpuE5lv-L5bd*(dEzTeW-^x3BDR}U&ximTLu!j($kOB%_nN&O48B!>t$uO0we$S z_3htS7)n*nh7JYxM|+sf1EB>2x1LtfH?Z;jp@mBeZaoE8E1t3GR!Rk$VUo?Ep36@3 z#n0W%NoZ(#WoZdN5+6j1Zm3`_3LaR*%+rdWD!IzIJ_c9ghO~}DT2BFwRRs@@jJ!KC z{i>Xk9!p-8v*%FWqrL#1mw3XCVXrXFQs1#@r;_(F1WvL;;Dn-)k=psfpboBArcSvy zyl`CNM7<&+eqKi{9a+vy1Mgpx77&~QE@etAFQI``HcFNK*Ye^m1hd12w7$WTFdJ>i zGa2f1FrEzGrSO%N4R!*>x#zNzeTi21nEghqd0t?BKR9~f@f`#e-@KZGxR$Ulal*}W z%<2L=LZt;{3}mh=WdxWVy@nc!TMFjYm=WRI?IQDV_d<yyHphQI=(r14hTQZr2Q+fs z`Yc#m->gnOI)Gp`skNLzfBOn@G7S!BUwA<XPM<54WaB&ei>if-1Bn0}KL$J?gp*GS z&If?Q3E!Y#(H}W46UNspO05YY=;a=g@e2^-LKn%Z)Jn$kLvq6xn;b18BSSV@#>#}= zN4JA{U;IQ(ZEA68(VIKRB~CBezccSaHtev!{KtC^ozOd!8$JoTK%VgA7}7t16wK-~ zm<JwYE^FwS(y)DYU9GJ<62#1$=4TKPkKW71pOBbtUkOYFzm`GNEYhWzWo;OmzO2+N z0TZmu&$Hg8f{P`LZHPiv304g*wpHki%b8<Zg>ucVbDHHWbq3iZ-6V1-Z)e_a)*!JX zla7p?F=irX)_+-udduKA6_cs^Jhr#T%x2jRM^<AWB0clqBo!lJBdV=r2FnZG;qgk_ zc7~7UAgLyW&6vOhry}QA<z=MPiRhwK&aB>};}Zp#ug_wg0NznylyyJLQlt0ixWp_M z@<TwD4hUtE4L|f|WoZCJPX=D%#0SaJ@C03@D=Vk~KW8&Y1uKE1U5n7fjL1e+HCSnD zz|_mM2Jp=)($B%ugc+>vl~h+J-^_GQch1yx!v&D@rcyZdg#oap+pkwkPU)Ng;}tfj zZ)PGY>F&(^;7|ewjy~9;eNJ&Mf)i{g1lx|CXtfy8hA_e+*DwxEuPxpDHa~X14_SkE z6!(}aH`agl=~5k?u_NbVPEmVz?*#k4cmhn7O8)4n3x-k5MuyN818+VjB@c`P;`w{V zFPojL`9nDMxm~b^`x8SWpCbvD?_6axbpJSxH;G#IvW9}}PrZzr0PcMli!XyyfVI?x z{2-9+=n8_v<8g?A9jHN5G|rh(dax>m@*#P{Gx%`?bt<fEE8jt0Q^8Jnc>3^X7r;q+ zXUw$nF-80_u2W#vIAFU!&pTkjGct%D|G_UEoVVbR=!oIs2x34n<Lx}tq%a{nTXPPZ zKNC4zp<t1CU9P^e+k_jCaJKT}F}!$1=>G9x<b1phsZ3mk6qdVjzC{^<cnNL<Hn6_E zDYYBPoMp@DiJXb!hG&QFKVcYilwhMfEEXuCcL#^DIFK$R1XLf20casNnvVB)F?CWn zwE*Swv!XXm6HE?BbSSP;TcLHAEO;U)T$k>9LG$k@1(%Ddt#$wjJ_=tatIk!9?8t7j zDqSz6-GJye1VcXSxWN26&*s+x=GTX8+Dvtg&yard{_(?SGDk4c3odn2FgXI(Qn#yn zQ^IBdZowu8Jp7ocbZ`p7x)KU%CuF*$>oX=_Sl5|Lm~vVv1>p>&!EeoH&BcJ0u13?G zio->mYo;Vw66(DT6YNvn?%W}&0v)HdaQ2LQww{^un~Ou^;vXt{v2TCq5!6NB#<N4I zl?9woPvV67qy<mkIw6#NYPhSszk6iC)8+o^ztR1Dc&`*lA%FEj&<vE1JHlnX%*inq zgwu?12VE}a>^3>b75PE@t1%8T=a;(V@dzaknmPPPdGc@WRJl6N;CC+dX87kvxqRH~ zVsjeZ?fh`^dCyWtl$~upOqQyWKMyD6G*Y|wn$(OL)yW8l%>|&Uoej@l2Or}`2$x!a z<y274Q;)ywe`6kdBlj_*a~?c`b3b#X`rF{7I{955R@(J`ssK?xdWpPdY26kS$eAzC zXHC;|_5p^l4dgVFakwPRi^1att41ELS@1^pqt4l<9_==aV#)+I{3PzI=(8(5$&QqA zHjPy$u@YG`2aJVNa#Ad_-g9YZCkzU97LwfC_u_3AjO^`?L3Tkm2vT#4o?)J?-0xrM ztldVQ?0sk4?FT{jWo!?bIYr8pN%9rLSoOll0qmh}7O4RCM!NYR*&r=5$rAeyhCcyJ zhLd~TjZ{28LC@SVJlD~aJyB*zY0O$(j*2g4)pzr#-03z>3MXqA_sO83wFL*?X1VYl zWd;shgrH;95!5uP7Zg%hixFHagKSTUyZ|NykD@#&Q}CWd1eT^|51|f&<t_xX1wY6R zr$1PWIxm@u=(aM&2J>oS+DZ>6%&<nDea(N(!0Z0WeL1L))=heYYxcbE&pY*lAM*KL z_g}jYTuFxY9zF4P^j(-{Tq0#WJPDTEINrTHnwJR6WGbAxmo*fjg(zVD0aQ9+Xm}<N zPe^>2e2zx@mPJFAuU_~KbL@W@<>XX-N=hKjEk)kE)^?N5=DzO<s`epf<BN5V*^#yG znGrVZoC-Mu++`;|l4Vbt8w6Z^o{nPI*&Gl0Q$b$*lr<q<@pZj$?v@D>iJ&ec4m5;# z9!9#u$%;b={bQ*`w+=~e$v<q(^**!{TvLvs_n{r~HBokHHt^|D&X&GtLhV3_nrzNg zu~<^ht|AreBbr$}OM_o0c5KMvS=6c6l*Vo>6j9(~M>w?t`_}c)<C#1KJt>ZCA47=V z$Gc>E!bUsOL_6S(Rv&BaC9gO#zyc_Ef<$%PcUhf@!tiILL+CH*1M4OqFl9Oklc+cx zAY;;BvK1dXoAN(0V5Z#eroNNy3<3?wFEyenaNjHW@T$y80kI6t<GwE9q&_}?qDEt_ zC7y1C%BWv*5{oqzyb?7py@set{s>K;vO}oQHWx6omT~*sh!)9ETgDCazKtMi2HLU$ z+Dj2m?HK7N_qD;FFbsD@_3~Wy2eLi(S1d_{QSavF^wZ7e<}87-xhc_LyUigtALLSH zrDJa~NOylPV{ZjJt&oPIJPjemdI%}3M5xX0kJw5@y2a)ek3#?9^hDIBA*^5@*uN#u z^m(L%9dXAGYB^G-`!hS^e>J6H`kLz0yo0Q1fpGuB0}O}-VJiQ7bF@BS8q!DS;i;DE z1Ii^`=?0Acxsrl8`?^=ab~iCz^RGI9Ev~26m%-&r%pCgclQ46B*<A>m$O8fICE)#j z{h6))DNo|}7<Q3yym7wJtWMs`;tY@MtzPhs|6@UrF`bm@YWL3e=8%&y%#S{vLSf;2 z7m64qJ>f#zg~P&&-;m^zN?_V$KP!qhO^H05x|@7E4V2g1c|^``Cv`UqvO3jI_H3k( zB`B#iaWVhW6&UgDq=U3@Sp`eg@0|~vhZ{j5epcws#iarEGQo)`_6K_qmD5UDJdG%n zv!p^iyn``o7X;TybWQc`hHKcIf%WauZ*($!#707Qij(s$^Ot(W{##3Dc$O_*hGiv` zaQ%Wu>o#?kaPn-kHXy#-ENv{D!sa6%Z|*m_CJhrgQYkqd{5aT@qzAtt4F5}6k1S_c zN@E5)8C(yKv9qx_6o}77HZ%y;V59LhMS{g9bF>_8W~!9b!#y}&0Y@p2UmC71H37v^ zawSU38JUoa!37ss?oYGf9s{au6JT<;3b`XM#J?s@3yX(=O^o>^R8XfFA3{w*Q9RrQ zWNm>N<7N{CcJQ1!+OTWn<hb<qxWsbXO@e3*Ydt1S`KTk{GWhrN-S*@jblPu#e^%6| zOm}9sdWL&VtVv_F6gdK<J9Hd8g_1wT9vk+A?Sc%0=2q_gpwpK1$s?%aX0*VWc1`k| z1F+&{aQ~M7<VSMej2h@p%B@ItK);cwQc9JqX6|A?7~5y=q4E2g6wHO?(6(eh9a6z- zfG1<;r`-qv9(G-avi<-{1KSqv!>(L9{fmcPGj+QHr!uK^TVLUf5&an-CU+kU(+@1& zgIvb&GxDs-QqRHg*&i??#Q6fVAAjM@YgZ`AGhdv~Br7pk;SdZT7^P<K0h~=m+W|!N zb)=pvT~2%o3N+eKYH4Zm$GtDT)4M+h`zz%?4keeC0^xQ+245E8uf6;8xDQnEW1|1I zcYk1KuA;xWCxCuF6?|QZN)6gFz>x9W&HH;$e8Uqr|L%6wQ>A_*vQ<)TsXyAgztkOl zu8kgTZBnRbY3PJ1=#VxQEfstX!HZs$`Kqa|T3gV4n{1?rn)eXS?g~)W^UbQ{KLryT z5@7tRQq^rE##Ds|XMaBzMeno+9lNWNm3dr$LJA1=_?IR&s6RI?FMX0A+cZv$uB}e= zYpK)#as+u9?w{6-bYkZbhdP@u(JI*_)h+n_0%VVSuk$3+77?S<U%g8lOvH^7<h@}> z+k-!P2D@AI3L;7$iJ3aa8Iewoz(f2DXBo8siQXktR909BU7u~`-g|heYXi3$`l}ER z4|(kLsp5dnjYRkWt4;1%lyRa|u@BKafV_1?$zO)F&LJ}DnjeWI0yWBG*gkcMz*|HT z0dydVV5Y%o(Fc(1B+2B<m;h890Kp_?<&r@{nLV<|$=hXXI%9M@y7zF`aZ+RxAt~Cf zDdJSnNvkAp8(p}P{`pK{$W%~o`Y=&jGojaST6apIY2DkAz6zl+Dv{_5<2e1vpK=~b z`uLls=*f0eC;ucdr`6T(!l+xZ1MEG|>YX~S{&pGQoUN@<xhmAn(!!i4nu^c$m8;VC z4xlVp0p{Z0l6iXGd@VRIxihMwjTIi7=oc)(9<6MJ&-mBEYp4$*l-&~_74NanCgdFA z5f-bvZGJ<_nWqpqt>FIgPtK8wXOf2gtH2rZQF_5I16?weEjbn30ITN|qXSN^d@=c& zuCSiG`2zD6=O5@kf>#PL6V|rzY-!{vhAkfSe?kJHG$0{KJlSCY++%5J(v4I-$fdL) zFOqmyPB+Y3@i}xyau&psg*3x@Y+@tCbhei~Q_KWBx6a7St&`yP8MqCf{bm`auGp#$ ze!-KWl;mpwifaHc4P1{TJyC~vvggE(#nf?5Y;DeA3oed%rx6JoBLYuhNWxIj0^soH z$Q)Y-5*NJpXtNcVy|KgQhIte=z*ce6C+lM__v~<nIWuR;)OyGqPTtEER88tOW^`eI z^~83IG7C84Y&glD;lj#50wX~%7f3QN<NJ&F)?@dIzQ2?wzdIYm{9Aqn%6NrgA36o> z0+A2t1j<wE_LZk12hc(*e!_)tdVyT=9PPp}<jrji63W%(OP9FqeWpvKuH#m}SrU^F zm&7E%HG?duQo)2J#97Ifvt*5$UkgWeeD>st!@+K<YCP>^%)&mF11w9*Um!~}tQ2Kk zNUE>=0copF-ODVkNOguQQmwTjP*?3v5GCyDT`4;JVOI^#nyLp+GO2n@;4PRL;UM{$ zvDft2upyUZ$(7(cQCch;nO<?uTFdnbB1eLItf*D1zo4QAsjk_E&K-lvs#B*SD~C&T z9aiD=|CfWBs{y_810>xdZQ~$8DyI&C<Dvn7!QEO2Qt$ldi<PW3f<<ISe-|LP3<y%e zn^+1dW7D;xL6F(F1j5>}O~UBf(Xhg)X^8}`*siNi2wbY<We@hYwmOoR8i3<43gkyD zj{pd&{c+l-8gAyH&f7X&fE`h(@hD}sjVe@pneF*4QdR0|w%)J6E{GYEjLF~)q>wX0 z91zDdFy#9$h64SB5mUW%Vqcz;)`NDGoPdnRZlF{Y%)h3}$MBhGORRQclYd?jf}bmg zc6}B(%T*mfIDz?lyr3#|8`+<VY9U;mh7Zju^*U9&(91|H;nc(PZM35|_hk`>K5p~j zyi=GT&+2ArP3n^BWa3cRAyT?3HJ>_BqZ3}8h=x{h>RSM>`)`|4*6MG<j?Ie){2zJ7 zzxrwa`FHgVK_4T$?ke+P=Oc?Z)I}QaoUGn>Ej-*ikP|MUo`b{}xRnKh;r{+11g!4w z8v?>3^po@@_Y@8E?T=5w>U9AMuV_GAs~08?B~C$lnJn2A73Xwv1IJHp)`+Y7`+t=Y zKS~%+*Oa`-VlZ(JZ!Ays5vgdP2EHFH8h~7z?6^<(C^D_+P3*bfd9TT&)%#xe&;Cbi z^0Jt5l&mq1{hwqS!)HGY-zCNuG++0N@BaQrn7QGzUuaF9a&vg(iRuMUbpMBwYNl>< zs(TLyFrw(#(f3TeksCxG(OMJ59;GvyRiei^9PUpXl3Ytw93Ia-Q_2ZWt{6&H92(Cp z(+l>&T4S!pnxc?X$ssflbtU~J80E*sD+B?#aps$4p%dcy8tG?H#cibV3#wAr=Xx8( zz!|KTcIDRlctDaxOrbdZi_C2Zd*X<_NVFydO`RD|UT3zEYf_I4z)5yIlgwIk@fA-M zu|b{aX61A&)xHb|xck9?Oy>-r7;<w_m>THMXA(zZ!nvFwbS~Vms_wmgsxLlS-$8ne zZqlyd0O4V|GYR6~7hHUNkA!5PPW}izoDPBj?85-0!!bL*z#cyp*jWy<xWlUlp7Cz< z&kThPU2wP>^m)LlZl3*I_M=y(E<4J}fSz&UYG=)Yx4NHlZ=2qEnm1ZalN_-oz7kG- z=_vN7FrVbs*N2dC#^27j(q)3qnYjpdd;nF0cd%e+kOxw(;f2>7`!KSu)_>m#IIP+L z5w|-A7&29wJGdwZT?&XS%6$k0>>EA}EwcgT2&La>E$An;iRu+Mb1D(WxdKC(S>1@M z9hgI2&)G$7h&uyT?{mcgT^zIYE1<jk?tyaueM3n9yT~mF9h)pDdXcg%y%No|I}rtr z4niYOgnHi{fBOwmacsti9?rw^Z}_bAiN0h=1`fu7389gnCSDZRRB(yIGmcuy7YxOr znp`UNO>Q2rdbv}wC7jYL;NF{lvbIZK{J2B2CHHllLLx<HInfXYX>rWlGH6JxaIEq{ zHyXPC-|f%a7w%t=ujf+tZ{!Pmdwk<VOl&v*(eQ))0(HaszK0(UeSMX*9KjDI>|0IC zY52DUP|U~|stgsWtaReX^?*^#DaM^O-sk%$t1-<TaKQ$-Zx5i4iYrmejTr}dCYqir zd?U9nHg5cX<cjq7|3AN=G`vL=<Q4lwKT8YVS6+*^g7AhLG<^BmV@se*YFVr3`znUD zCc2()qZkcS<?St%P>B|6Q`eU6rnPI~T^CJsH%IVjZnx+o=hJgO>sQ+ZO?5`aS5tR) z6Lc%a+m^}W!O&!GHI~(H>WWa~TZkCNK58$5ZZ5hO`=D9{gyWm4p<TssY=-8&_@Ye} zop@K5k#?>nU3s9c7z$MI=28q=*MU>)Yi;j{tXN)6f4**qH}N8I=uQ)suWstVn|ZC# zZm1k9hJvGLcd-v@?>fYtUpK64>b`;c;29js!|;f0JhrSA^ej3)7i}WF4rUZIg*icr zqh0ZK=&dR4j^H&WD6p@OGMt-gRSYacg}g@H1^#?1>MQ5hnHOnn9#-)E;z$cJMl*ax z7qZChP=U9bX@^?)uBL7(HY*3JQzGz)bR(JTJg!iy)7+70iFllCG!>mKB)S1=;Ha;@ zJ=)UVOjMS+VIk%-?+IJis(55wOk-#DskkxG)WJsyJ6bIZb*OR8P;2S%<Tz|_RSo4g zo1YsED)zgh8#l3{M%Jx~bUQT{DPwwL^-&<ip?eKnbVp)c(asjQIb`7$Z))!ZfP%MJ zBtrqe@hW32^4%2ejQF6~zs)C_uuNltlE~)nb}3|EOJq%AE!2lP4tO|tQ3SeZBB)wM zU!Bi!szH?M))Fm?LSZA`U)+>t3e2;j@p(q1?CSPdJJd-ciq@t?N4yL^&>HEq$cl|! z(U^G_VA+}&-nou+7sqTKQ>BwO2$Z9!i9;hs^F;v1irOm=3pfr`TG|v(bZ5GjN7iL^ zcarHLxwez7DjiK(TT|!S$fBm^8&G{vDs0v5cw<2^R^pK~spwP;Y4l@SFR(m@j|4*9 z&mLwhk4h*?tdEXClAWCK_XLkYcc1o_@(6>I+o)(rsdO&3$x8`tMDK$@OQ9hZS<I@3 zqM=KuxjE7mN8bwNkSq(+BO@o$e)Z8rbDPm*>a-)&Tj>{yeWr^;JChuShC<U};bn+g z^zYIecD6(}xY|D`LjfaO9=fDOk+!Dw?QDYa=-Ra%5qIu+8s4%_R@VBq?nqNhv8&~6 zXljqI=!~~_l%r*^X{|##oE*uhb{;=hZuvUhS>rQmmbCKAyLr*>%5KzP^BSot3q?xA zaange`XOe{HBmIP7T-E%XLYn$#-L@1cnpeim$gbBBHtoS>zKVYk<P@TrfzLh#R$~W z-in7$D?6IjqBBGL5!I$G(FB^D4g;pf)-|K2u54o0MM7!yrJ~bP%C0)HK7xKGqnUIl zLshoLlZohhQ4p&g1DnL!Zt9Y?6`q4$b0ij1ZMhhf67hJnb7_Ko9ER%l<{M1EBxx>> zZa_ZB=ZY@<kZQ&9MKy}VYMSEBZESVu!Xm}(o#x?Jyivj~uXB?bkI})bZ-;VEG}D$2 z3|10S%3LQ5$WN3wbSrnFXT>w-H$_?;m9M7nfU4v~2i|v;4#_yNg)WbvGwG~sk94$D zw6wGDk4Nnsz>Ou{P&`UqtTrbYd<EVtgeuY&s4JF|FV>#WShV{vQL`$5c!p1!gB55L zHF%L_E!&}q80qW4Q;o59wu`#9NF-jIh#{v;l~bIUBnuBZuIMU{He<@s8E0!}U2^Cc z9FBt)g;NHTbFG-#NJge7Lryrxj|8ThV43Os-I*XvW+2sKECUy&s_Qhv*PMX5=yfZl zm&YLI>EF;>7%wMk=y&bLTfPhwf}&d?HYylXQJydpJG}Jki6Wzme9tjtggSNv9P83~ zla2v})eNPpsQ0#v-b-SZ*--4s(y3AsEDAFgBA%=9R3^L1?&t<|3S<(Rf|2b|fs3h_ zl+L=QjiHW?=mxb~PDrMrvl*InK@63hP2J2)Ek;XwOF8BSV<M~s1vX%tI1EW<kY!)& zawM~BrGvJP3^}U#WgpJX1kMIT6lQ$R%vO&xMr}@~Z6L<B2)d}X;b`&@1`|iqmeh%e z$b#;8HKxHPi!BX<J=&c?qy}deL`E>wjqJV>7_}_BFQYt`r^$$A&6paq3TW9;+ac>) z)J(EuY(PD6M*ddq(VAtNgVhJBE@uE;O&C>lyfFi$G&Ige(UWBHXpdEOdPWxva--bv zoNK4)wlE-|!{wl)qd)7;s^ZmH`*2h<$-&riLu8W~D)7O90t09p#v-t1oTKr!NVm(L z_9u4Q*BNAF*3T6}8q;w~qdQI*z%d0`iB1-Sq>fCeK1~=IZBJ>PW%wHHEDMs+&Sgzd zN{z`)i_5D)RN$JzLVs>2(Ho%4KHl9?9chhYUE|EH+he10+*Jmytfunz(eo>;ZCuVP zo4UJJjdog%Qe<9)Fc(>#=<Ea;RswlWJr?ceh!ew_6Vrg0ypo>iR@dTY`NUMGbG=y$ z-~o2{vBaV6-1h1%-Ax<Ju;t7OkTJ|jgW+p3)6UBF?wBd|VqZh7r9*wq^eU!v%Mg_M zw?sB#qKh7`*?ECX2PcUp<~%dM#>|j7E_3mr9W#;{gWmTw9q<+9-{dzv*AXYCsU7<1 z<83-*17#(bn~TtOqN9j*Bsef*BHOvRS~YCTR7)8#6Pa$+hmYo{m5o~mm``K2f`yZf zBE7N}5~5b!%(=U|Fr|`aNmcct8y$_uPCY@^oo<=^(XY70JOkin2z{*?xmm7eB*(a6 zoUlkuFQ71AZMuPr!w~jcsK^}qAKb1GrRJEuBIhwzUyo&e)mqHAP+69-c|zqs(sdK3 zIhe0y%rsdWoFXBU8o!CWIoh>}j<&YoQ(mc)evAV<hP6%;1TR9ERlP5U$zw|b`zNyB zAQ|a%iXGJ%?AzKCi7)HK)6!8ePGj{re_)Z>XPc_<Y=!43yhPy@3Rft+QQ;PacPsp^ z!Uq-pOyS!KPu3mR3lz>%xLV;i6n<ObcPk8k4=CKL@M(oFDa@%fcpp$WLt(MP<qBIB z-lXu03h!6=w8CM9)C)v2Lm}1I(9|m2sPGdCzp3zHg-<E`mBK$N<RfP^rzt#NVS~b( z75<yTuPgkv!o3QAtnil#f3I*tm7zaX;kgPgRJc&#QiW?2b|~DW@DmDmD!fPGqY8hb z@CAi0DI8Y#mcl7l8h*}DI78tqh2;us6i%r%_@BGVz?};3QTQW;=PWn=7bsky@Ct=7 zg*PeeQ}}s>KezPNo}=~Yr)vMO+JCL~Hx>R<VP2i4OX0-|s})|a@J5ByUrR%+ku;xG z`)AbtEw%qZAvNgIJgWZBsr@@@|GnD(rtsJ5KCa$`J5TwasP@SU0}3xxc!@$PY@}JF zbgoo;y~0L?2J8R5|4ZvCF|p;oMXc65jDr!x?D*ARHG8>x+pm5)?C!n4`qFcj)|suD zb7n7}T?S9jX5i8~(@kRLnRV}JX*7;q2r~ltMk8memojj5K7fss4L*4rwPx9hx{8L% zWo0Ys8p^7x%9hlJmoHnfIBY!eWa^j*Gh@E8#dXg66f)<*aK30$Jr^(q=fgMs^37;p z3`}+m4Rl810jl9fj<y6gU~ms$ni81VGG}JX`y58f>X%m=78@#RR#b=TD;kzpEe_Wk zx3NmzzE^7X=F5Sy3)%YLw%Rz(cKPws`hQ3LA)1_Ftp5w@e`1DjI{a_df4urT^Dq>j z%t0_<V>=ip6K1x*v`#l!%v&X<I`Bv%(uo}%r^t1Gk(ngBzgJx}uXOJJ=I&kKqblyV z@kJ0~MG`G&s-ml+jY>38R6wZ-No1pmq+B%BViJ>uL_-pjT?rx@4Oq4-iY;yN(l)l% zQhP&N6|V$ufVDQY7iq0E{b?(R7rc~)+LrfuW}ewSd$LQgzxVxo{-6J7c=mgl?_AEz zobSw;GiU1LB76<Q{XF)ZWC~oX`rNS)UY*o)Khx^fC-vOV^m>J7GTp#&LS(?uMK=Ca zBw2L&X=LFin1P~61xX5`fXu^y`&o3XTZ(6nC8wo}u9o%B3ol!OFZf)7g~e%0UAoC0 zCXR~f$qDnwoY;J^Puf~WYUD3L>&C*;w1$SIHm}h4@X~5{Z4A<-6Fd#vs#Yw((yT{g z=^3WJY!Z7_wCV0uMYepI*=rP7t^XuhaLS)B4K)W8Gr;=xtgjubhUPWMOR(2mpXnMq z><*=iCN`9c%z3lmX%+jFM7<i5Z9<OnTjW9@3hb$JTYyB%fR#y;6JmdKvq*^eD33P= z)ROCk$0Gjc6PdwSkf6NQ$Y&AFbJVn#;Oc~p2IxA<Ys2u<UA?4X+3?1q&@LUZBCbyK zFjPbXE|p_sj6x-p-}O*$+jTrsL5`SIkVf5W-DAuj(Usa>R7ZIuvos}GpKCXTNmhpU z-s>55FI$4~x<<EnJS?8(Wh^Z!YHBL79P=GJK2BbWfen>1nPa9Mw=is7hFS`^v9SI$ zGoaQ}&;D#OKTQ|G&!*F$YcB+cO;ox!QKqpkxd>ot?`|I6_|q=Cy8I-|(5!oDlR|m9 zDXr<qWG!8C?zD2?WmhkqKmW4X_|M3_(Y%&t^V?_bOD{Y3va7vptZuiPib-WJ_3C&l zZK%GFy7ET-|7dyaH<vyQA0k?69f?t2Om#TieEBRN|2pZP>*IHeKf}jgE&ePYf1UWX zKK{$%pX%egdHYp9{%g|r^LL8xFPEDK-R85CtNDb#TyCCpmrvi#Km7Wq%g*<F`sa%O zV;{dXgMPXA{`#LIzCT^;O5~Q+Ky3y&-tsbglg^a?c($-ec!97=_(kDDAMNVX<;&&6 zU3Yh#-F0=>(On;h*Qy@eb#QiEJv-XfqpLSZyYx56jziW#y1@E50Dli^{l$F`%IQ9r zf&a4juU+aiExswftB-^<L%ZV%rwo2O`5E}<i0|sp#>URI4Ej$ge-7UgeTeGEq2oJr z_8pz6{tiY4^7QBOLUiBh^78ifo7aJJo2%4LUHUH0vJ8B;uII16HPZjJuU}=l&H>e* z|GH(W@Bdr<hIUK`^;PgEtv_FMS8e7SdZ&Y`)jE^Ed>!Kd$yZOei@)Ezgemjm0r9JR z{8z;Pz{mf)_!n`@q$eDr9hS>|{4>QrtHz^@pO=Uq_VK?WzCWK2i~o#I{|)i|`8lY< zrk7Qlnyy<9^|!AX()ZhG&0uG(`2KqSqxdbpblv)^Ki%<_Hh=f{^c%z<U6-2wn=<g- zy0PEBTW9w3zb`v}zFUX(^WFNhpYPVA{rrbB*nc4d|1TN%A7tRW^>Kf?ZoS;kKj1=J zkAD8)8Tf@6_-@_ZZ)au({cr|;X9oUPGw|Iyzdv2K?(gTj=Ky}bdoJMT|1d+k&u8Fo z%fKJ0byvUr<1+Bw`1O{?s|gx!?h+oY@uW`pTVa{Tfn`D$?<LW12@h4jIz{N`mxzD8 zPwzLP4_E(lc(&;OzhkERPbU8$=JT5ZLj?K<r{T}7(_iEp=gwDqS?%My=MF#c@e|J< ze0=wO=zbsHJ%8}~CGI(epYNV~J?^vPo>%zu<DNVE?eMc+44Zs*-1AAlolN)n|6AjF zru)Vx9bZ4`{UOshnrWQNbl?7@<6oxxaHerFli#r`!+18L%3fdp_;*kSekQ-xJ*RZz zqqQ0cxaX99`|f$8pFbf(y6!orUw={teSYPR!LRS0llu8p8T2p9z`rU3e_00pZ5jA$ zGw?TL;Qu}Y-#yp;ov)t;Q3nUIA{5?N{MV&79Q-UN1pY(v+{=^9VacC?EIq%?Bp*A3 z{OBR%g+s_gk{_=8?T5UL@Z`^pW0~?-GerFMA>_+5<S$40_}{K$&<_6!J!Rt0PkO&P z7;)0gi+}oG-1kPpmV0i0q^DglU$3h^w)ps&`u981_upsSz61aLWQ3mk`^S|a()PB? z!=(42^5NPw>v9eLdhq8BpR^ua+^$bpe=c6N`;h^!_<v;gTmO&j`isGOW}u(M@EHpM zyzpzn5yB&dLE!{pfsk#MVWI_d?eue>Kx3V^X_$C!49p}yRMvk6tQ$6bQ2Z^Dvo9bF zlK;x`U3mw|w@W@84fEI4`wx=8%?690v3QXDBgrc>#4px^`FmmG-~)N&Nosgg@?x-u z1%?fh=PBW9AWs+nJCgqm@^tmHf{U049Cr`~*}r`V`F)bB9Sw@l(^MFiVZcvUf1ev| z<(bl-DY@F?Ap1>{{|IK%m4Dnp*1p>7p!icHKgOyJl3yY@>o;Bf{Z{htBWAktEy=cq zFSqhyOJQBD$o_g&6?a31_?I1G^^UOst<-S+5b_?$^AR&${rr*-Z4kQgcT8ZvLH4W0 z8gZZ(kS>0XHm-aQ@^tO<LdiE}h(Asp_}UEdZ<9Pz|1QN_@eFhEmoEL=CFe9foqRy@ zc9cBb^}9j?BDN)^E&pF6KN)g_LG?FU4L8&HbI1_#+#%#VnSmjb{Rxu)0Xpg0@4qF# zKSTTYi3WZ(qe12C9YX$+<S%DPp9hgMWU~L*5b|G2&M)JoYoCW7y?6T)hme162ziy{ zx=#+OpDQKb3Q4;5RdS5YpNcUke(ezQr9;T?ko@=z<L`#!Z2FnT-#*EYvTB3!_paoH zkf$3zj@H1N>Hd9^<R`&$y7+UBw+Yie!l3k*OaANqP5l;IwLoBPk^Oa%I_Am@<$pcj z>a_#XwV%1CSb02yykGJ%$kXNj_)~5C-vZKI|J{<$Maj~of1wIql)?TjL&#s0d~$~P zBTs_>;U4^@OaDH}iy%)|zPBX53i5R0%cXpXgs=pE>Eyqcye@<MtVxU=2sGd?UHW%Q z-Zdh9{T?yJL=U`|A^xYPTKTRF^1#_v{%QvKtCD|+>zD5O_D!?#F94*w{~W;^C&CF9 zU?nvaOTHcKboNg=*Xn2TKTnff-E5G3-QEMkvGIFYXU?#k(WA0fL5unvx>sF;Lwyj` ze{rJWn4FvTD>+E_8>3eWy^ej*YlhxM(&PQy1ZS_jd;eQT+&Y};uEyVAr03E}m+s@x z+aNvN#s=kYB6Qxs-~G~~A8&$7x2k*8%_CQuw8>}sV^RKPOKrJTuW9X`1HA_6(Z4sr z**!niF7we0{TsTh-Fu~;DA$bckvAuDVe@ep^#39KV!!_MZj&PIJ_EfR^VR7+d#>^8 zrLp@F^e>VA-~9ULC9lJg7&CKkwD~>QuP2)IRSLaf`=Hkhy|<LEn|CJ4FMBM{YUsTr zJ<c0U$WX6L{~73<ux#jjz74%>>Fuq(j77~3lirV%d?KG|>a!I3OQp~JnBej&lKf`q zEtcLf;wS8S^j1T!U3!DAr>+m{>2c^iBR$SPOmOK|rnW!1Vd&>o6{e?;x^o2db6kJt zFv>h0ag(h_&Q}<+-h0S0oLygkVLnP>sq9Nu?S>)p!89V!|N086zqfk03wpN>p~v)} zf!+$~ah_v>%Ws<N^%3-!<7`fbZmB1(LrM3DTTrjGdn9~{e(Cl4^)49PUn`*B_GN2V z!*+7q@buRR^lp+K=S3#$CBOGTe|+59z1FWUyA!~F0eV+SZ_xPa>DM1Y?_bj6yvYQY zzQ^8?7<^B>*``~QLC;)&=+#P(^QaViX~w|_^uM#x+U2||ML*5;x(E8(r7w3bS+9z2 z$`8G_rH7w3xN>>)K7#Q1eb74+YcFf}L9Y~gH|>L7GxQpy$N88EE`OeWy&8JsZn5>l zd0C2Hns)aL^uK<q)jve)iS{g-_479Ly7obDEN*&NNRRV26MXrky>p=VnN>rl+W@`c zL+G&`-3+~VlrHCUCb)Fdl>2e$f9kfO(|-ec9}ST{%QG5lRe#<Gy-Cp9EIrNp2DL|) z=ZnyLOnRLEnc&Lf8%LS`&Csv^iY<@kgM;i+@8{5~-Uq!uL9cQMJ?3-7r|^7SdYmVk zu$O#Jg8o^nZ9ezr7km+VLFsA!n6^C2pm(VBG+jyRX*_1Re+0dwrMEYK^taI4PkNkJ zrj%!f9p7p1U(g%zHCv8B=_(rUi});h;2`O7p2?7P^g0_cLp_=6k4)ZshgIYJ(*&pQ zyFZ)u5B=fawEFE*PxNEoxJdoSp<gEb_z?Om@7vJtk$#z9-*ev^J30_}LVCaT>!rze zDfH{UW%JE>tO>51Y5Hvh`Zs;s>K92pQBKeGz6*Na+6TR7p!bmUIL|e~rSB=%+t7PX zdiVJCeD%xvIudKUQ+tNaXDRe%N$)DZUC({D8G3h0kMm&@Ts}Q|tD*O<^y>Da_c-)E zd$-MBgI~{6?l+)UFFnqaO>pU^8HdJ>2?T!jJ!_Zq<`n(&ll|u$=v{NK)#Lm*lU@V# zLf^M~oJXhVsXtBx^JeJ%TY8*Nr|6~0=i|`t{eiW6fz%W2$m7Sn0ln9ycY<F}G}9lQ zjd`c^w)^#behk~kIncl3KAS#nF*dk*6-m7Y=v^Z{(kA%yF2p?j9SqkYAcpO6<AB=& zf&Ag({}T=+`ELTL_ZQK>6x|E_HS`|?J`MbV_^W`7cfIJVMf1zuC}aNV;^&J$1_<9I z|36r_z;H3{1>hT?e+p!N;=sQK0@IcOUjuzDkomb9$aKCa8Yg}mx<K^dz_+14T>M|3 zW98o!-XUB8q`ezOw+QPjf7&IYLzb?bCi+YuhVyYJi+{ZM!+|X4Kd?^2e7_9*I_PJC zOy_YR^Zfwu8{qede~0+Xfqw!&3cL;20L1!4ehu(W;5oow08a+e-tj=%``1)kZ(jzE z0DUEp^@>AgOugbzo4{8==L4Sw9tC9nMgm#i?_u4F`rClK4u1fC4fI?fZYAURrDo#i zfQ)}Ckn#5i@;dFtK!|6$`R@UlpI3#y74`y|--ku76a9VB-vqKgz6xadZvkEn>;kg> z7Kz^mJPgy5THr6ip8;fgCkumCzH*%C{e^FzW%c@nw+d$oj|A=yJHvp?=dLrY{%b(; zw*WCV<v$_*{Xpui6@3Me^>ev!F7PYRzYxglR}Q3p5s>-)>lxPWRv_)Z03`om;c6i5 z-7LHwNPC??+G_z)e>(6E(7B>V3;#LE%HIVd-Dz)%-UQqZ{ciwG{{kKZdLEGZyBKKf z0;zX8kb1`euLh0<QvXe?qf-77kn&z2<39*w{QE@TE&40MFNuGh=q4cTTnwb0GRdb( zUMTtm(T9mXSoFYYHvZp$jQ>YqF7PEF^TV&MGCvOjna;gH>U~}ERgy0iwg?-5-$K28 z0Z2Pl;-4!#!}6z{B6=K<_W3nb+TR5SkMZ6GGW|aQDSsYF`IC~bm;83gzbyH6l6Ok} z1<9vLeg=@`%m*HZ{_t5K)7ym&5=`$kAlubC(LF%ut-QnH_#1$1UyFs!z^_0*3|tMY z1=8NdK-wD(Wd8qts?GmvK&JmPkm)}Mq~2qeUiqN-cLSNu?ZTUZOlLWe>0ARuI@3CU zj6W5~bdCYCp2k^u<!H(G1M<4;IwcUe9r7JO>i-Ey{pWzR^N{en!rOsN=PRP)K#t$n z0y*9_0BPquAnlw3ECJ>L`+-3q>*FvW?H?$5KhXpEHvWr1#@_&>{sTbj{}A{`@K=lO z5Y7U=1HE$5<Afi<L14UX!tVlEk9P`h0kR&y1Y|uf1yX+w@EOn-0N(>1DgHRo2Z;Xg zWUK#{@O2>T<0a8sfXLUhr$j#{`7OXd!)^q)9XJd47vTB89l+^8-cQaJJqh>+&?f;8 zg#93p<vk3@{N{)rB{~3n3;Mq~$=+XH0J1(G12WzNK*swXkk@Cq=p{maJn&8A`wHNv zpf^waO5u4x+L<gmU-Sgg<Ao!In@+UpJt2Gu_$k=E7|8lPRQznw0ns1j*>wH}JOKKS z3;Fdv*6R;N-vgw*J1oDlLi{q(=Zc;Tq~7u3A1r>`XKg;N1TvlTfo~&Uqk$~vdvHL> zzX53ayRaE(`a6*AXD*O>2LO3LdH;Bu&$oc&zYb*je*iuU`QyOtz;(dCqCD3Ep938Q z9tb^tr;Jz&+ywrmqAvt8U&jJzcQ}ys_>T#eepvVuAnWP-qI-Z$|7IZdyTq>sZUH?T z_%85#@y`X0g8pdH`vGb1<Kt{PZvnSL|7GA!9KVE*0p9@sPT*gmzYNIywgH*n3gF9- z&j5}9eLV2@po60Sc&z2$3#9&P;8T#_3S@oU2&BDhfs`)*@_Lnt9wF?*O_urH0;Jw! zK<4M`mS6cL@fVA}Li86!SBgFt$nqR3{z2mJ3EF&b2fhgT?}0A>p93<zhlD={G9PyW znSRXDl~KtnL{A2?9OK3BKib;)4$#CGeKU}D769*p{>8v0sQ(He^eW4MOn<8A(?#cr zK1TGRz~3SMz){vO-VR&^`ZeHfz!!mR*A+n8EdkPQ9+204l=vTyw|st}iTQXPxCQbp zK*oDY@`pvQ6a78lZ=tsg$aqU7k4U~i^kt%pfXkqFy!c0oKMu(J>^jog*#Ts_e+4qX zFN)qI`f<?@ivA{$`RE2RAJ<CWA$bFk>CP3uLi{P>p8{mR{Vb5}^D{uEp95t2e?P*~ zZv#p91DW4n0GGgSFOd2_2U7k$;N6ff5x-sh%Yf{+vqTpQ&j2F+v{OVMW$DUsqW|Y` zYyXcx+TRFVigeeD|6}oQ6MwGw72;0<E`k2G&scmFxDEMu9!Pr+3x5n`KJFF$4NF(v zB6=}!JL1g;E&^5oe+8T<`9VO&A1QiIt{txifUKXt0GZzJL_Z?>d!la^9Rc2e{4Nx~ zLHtXA-(b2xbm9DCfY(AV8_4o~beK)&bs*E(3Z(p(!0Uj|0U7UmK<a;4^6Mq<l)Osv zA|Ug95|H-B0-3La#NS{1{~T(|`8Oc-e+{Jm6F}-e0AxPy0W#f{K<Zr!q~2AM&j&J} zH9%87AoT~vS-rms`-IO39}wOx{EBd?@G2nEn|6ihbAimyBp}nv2Qs}QflP1DSew5$ zfz01V;R8U*dqjT~NIN%)z83gxq|*vydX3`Guyo~Q(S<<X$0h)o{&?UYk^Vuz&A=?+ zE5LzI+w|TCJ`Z{;a0_q?@KxX%AnWlfK;|<Jq}^rWUn_o8{ELB1uL`&Z@k@Ze1C9aG zP8N`M-aN$8e+H7?3}pVE05bjifvktSfLlS|BzlSHu;>d!p9-Y?6M(dLwD_ZiyAQVW zh@C*%-46UF?7j-@1KtDN5Ap62-U|E*_$z>`f!#pbzXnMAmjOA>oGLm`^pT?X2Qr<H za_sf{1CaN}KHy(~n}P2GzXRlb>Q2#dAk$d{WI8pXzaY9&^bFAjK;93xXIuTJfjdFp z4}_g*_lf^qAg|lkfK0Cu$a=j9h_0Pq2xNMP0a*{(!u^1(hmXhDde{l1-R(f?_X5#H zS3YQQ{7-?ug#LFez3|IG+PhI01=3y%koDRGWO-|Wv{wpz5BzbW$B5of^p1mUy>0|v zkNW)?@J8VGfZf2`fVA@^;5*1?m*~Ynmj4PMuggV1mcK}Jp=hp+Q~us)i$4L<?wvrU zvl_Ss@!~+H-vxY!?E=VjYk}0i2uS@hAoZpKsdo&JdLu>u8#hDJyMUDM5d8<?79do| zJtg`vAobRXzEkqmqHhp=jpzl!dBE?ZKF$|i1pEo;e9^}N?**MBdL;12pg%;VF@M{E z_kjMr=of%L1pSEUp8~%N`YzF50e%nk^`fJ|AAr7GbT#ltpvy#`4ZII@p6H{1Ye8p; z{ur5HK0d-fV2yhNh<cdzs`xJgdEM>@@_x_*<hXe&kmJ$SK-SwlApReBk+9VAr%e-G zVCl+ZM2`j14kOXdPqS<~w*lFH>VeC_uLgDjF9b535D-zuO#w1rhXbkiX~_?g{6CmH zQ2rs1@m~kh?vH?s|7{@4xdzB~aGUryS$^d;;&+IDIgs||0%`A9@w0{h8ENglCwv)5 zyM3a!0Ga<MME^kY?})xr7!&_S(MyC)!W!WBk?(5J=LydNvfZ5_`Z(cdfcJubh-hy7 zX8CvRZ`<K}K+>-Ye*<KD<lYeS9~G_xvR(c_^f!bnfoz{QiRNAv#=8ReJ@D&Ae_l8P z_yh2ZM4uv@0A#xzFZw{?FyMXQ|8s=3yG{6K;9Brs7X75~e&KyUw&!mG>2IzAnsEil zcH9AE`<oAB`@00V99Rit{)>RiK%Wle_5Li7*Z)u;+f6o*dfSHE`_E?JHngvYfPaPj zd%%}KuLSbCF9uTo^T6MLUn2TU;dTt>)awUQ?>Qjz|ET!)i@#R<J47!L&J$iFc`5L1 zq%#iq9ptBPn6>*&Alv2FMPCnOx*eh~5mpKL*}5LYKNraSoC;+5^CUkU_$#Dy2yi=a zB#`BQEnw~b9?0@MD*ArWXp<&g_zFfI6XF^fx)aFs8i7o&PW(BRuDn2WDezsSd$#BT zAiCtZRlp}uE?kqqrGda0^!>o!fPKJT;AY^HK>Q9|0$c~Ad@b-XU=MHwa1HPxAbuNp z7jOe;=8y5)fHQ%$K*p~IZUj~VDGve915TE_0QfNIJm8mrL0}m$2gvwYz{i1r0P4ih zi$z}poQ!q{osk8?JYi6nE6fpQ2?N3bv^U1zDP;R4-7nlK>=UwGQ{F3FFI*>FE9?=j z5v~%h5OxVWg>Aw{VXd%QSS1Vzi-ePf1;RXGP?#&s5oQSk!U6OLQ-0w#A^RQqTZMhX z&B9*cdf_@D`y=D^2-gT#30DZagq^}RVWY5CSS_p)hJ;1J$-)9*o-ioP73K)DgaP3I z`ll(saGS7S$bCnYbG#sK7WN9)3)czP3VVcWgsX%rgk8c;VVkf~SSzd+RtZDGBH?6V zfiO=P6y^$ZgjvFXZ~*<vlwY__*e~2F>=SMl_6pYv*9q4OdxUF*tAs0rUBXUbo3K$> zE36h)2}8mn;bdWfFi#j1<_dF!Swes*H`Dt$#*td!LqMkY2$1P<oMC$FfJMOdK&FQ= zdkoWi0Lb)y1`Gl@9x=TKflLo$ycw^43IrMG1g-)eh<4Nk{2$P5qH9H0i7padAUY^I zM>N31?;0Bj%%dIP7lE9o9|ZeFKqNYn^K_JXWC8Fdu!6wpz+B05B<DQ6m{G*%e4X)j z0*k=k2Bf`y@i~7#7py+<H;dm3{2ch}#a}1>THrMBd&K8_pZ05kCcnThKwbc>2Ic|h z0)xPdfw@5H4IE<YZ>MmZuwS@U*eB$CpY`1<Tnl75dVoxS4R9$~E5z>-zZ2LEexvxc z;#UK21V1Exk@%B=xL1$K6F(?^F7O8Mv&0XGKY)2V{H-zDfTmu7%+FTfbzp54zgPVA zz~$ht6~9OPHNa)yuModW{7zsO_>JP%ieC+c-!>)$JO@}L`DDopfbbp0<cS{?KNmO^ z{2cMK#18<cfIonS$#U!jvK-rh=qqFT#osDE*CoyZpX(CT?-hSN@Jz7QiN99-9^e_^ zuMvNh_$z>u!0!^jQ~WmI>EJhtUn_n!@HFtN#1DyI1S|x9viJq!=K%}A4~m~Feh%<d z@Uz4Zh(C}W2%G}`P9V#*4aj=v2j+vdRs25jHv=bv-z)xl@z()Q27j&iJ>stco&^3X z@mGl71w0Y_PVw8sZv^InUn_pK_*KBqf*%sUNc_pb6TmMJKTrH1@ObcZ#m^Bx3pfG% zfcOI_G|S6%o8!RW24p?-i@z0kELeTwZx+877zBU4`0K=93p^V99`V<RzY2I1_$$Qk z62B8T9{e`(8^x~$9tnQ6_*LSEfJcB|B>rUa3xJ1%pC^7${9NFn;OB^+C4K-n4*UTO zPWU-;C(yKiAcxX^@wbZK2gFb|X0!Oc;;#pCh*&57TJd{;>~d?wUnTwuAe&&9_?_an z0eMLp#jh2=+R|gH#1DyI1SD&+_yywU0WmKc6BIvJ{2U<0(=l1%GcwCN0A<Wi#_VJy z(A$9I_X9EC8M9UVKJhnO9MdcQdhyo*F<%+8R{S3EJAu3(Gy;+2$RgmapbLOZFHaa0 z<_dF!S;ByDfQ3N3ox*Lxe&JSOpK!CVSGZot^)cF6E9?=j5v~%h5OxVWg>Aw{VXd%Q zSS1Vzi-ePf1;RXGP?#&s5oQSk!U0|^mS4C{*e~2F>=SMl_6pYv*9q4OdxWcmD}ZbV zoub=B*NUzd9THt6x<GWE=v>h`q64A_(6~&0V<SU4{i6FsZx+2?^g7W!qSuJ#IUbDP zCAv*?qv&eURicYTPZpggIw(3vbe8A=WYW|(kooNwy;byP(Y>PAiC!yujp$XPyF_=2 zZWLWBx=M6N^kmTmqJyGyMQ4c)h~CLgh<t7Xf;Doh=swZCqSuRFE4oMYD$y%McZzNk zT`Rg;bVziO=mODsqH{&(hz^Jz7^&+IG}m7=*BMD~7QJ5dI?+9%*N9#rx=VDM=tj|8 zU!=V%(M6&si_Q}r6rCeFOZ340HvUc^>$6|<R?)q{TcE;q#m@uR051ft0#*T606Fe8 z0?~y>)(WeIRl<<4NH|$oAPfSTwOk;}lLKUavVevq{(#m;b^`JL7_Ku?zhC^VKrA7Q z=@Wmm_`SgWz+W%^I`P*6G36Z7BmNrkR{;^mtPsCT{AwV}9|E%6LEuWzIY8zkOBfIi zFf-uq6mApt3%3gUguTM`K$d^4=pNClM6VFtDY{K`t>|jeA<;#m3q<FM&J~>_Iv{!g zm1Wuk@D>!IkClh~Y!>zk*9+GP*9v=tYlN$WD}-IbPGOs{QCKUi7FG#E!Xn{hVF8fs zFHaa0<_dF!S;ByD02iO}`q>D8TY)Thujuun*NW~Dy-M^7(Ve2(MAwS079A2@B%13Y zOfOG#u4uO&5)eIrM#%hZV`BvNi|!M>S@e3*>qPg6UL$&i=q}N1q8mk5i$<R|=@p5d zEILngP;`#yEYSnNImqHx;A~(oa29Yqko}|wSP8ldSOH|Z7XWL4l!t)lgJyc=z&s#$ zX5C^2FiUz&m;M#$l|X=LpX760g#1qNx$aSmi;JopStJY!dC|%5$NievE9?<=32TK# z!k{o9?8kl7#25AmyM(pEB4JP%5cVU(Ccdyo*d?qLRs+#BNAmvpI?7cfeoz<?_T&Cz z><N2>UBX&nkuWF>2>USzoA|;WVVAI0SR@Pz1Hyic(<Z*KN7yB-6&4AD!ho<J<EDu( z>=AYeYlTI^pfDipM<to~!X9CluvS<k3<?9n0gMayIdUiPb<}e|(AX392)l%}!XjZ% z7!dX&vWYM35q1e{g+;=kFd*zld&bX^y}}-0m#|h?Bn%1xCf>&=49Zb?Gbd{><id|c zqZ^oT7AK34V=igJ>!P=aewmX`$bTie2b&&9Zx?+aCyAilxp_}Z?#{{kJtvotyL0ib zl)gI$?@rNqXvYj+QhM&3yD5rKf0*G6>AQ367Aie=Zru^mcjwf-Aboc(-8VSNMt<Bm zbni&+&Yk<B(s$>~oi5s)EBD-IY<zc)+`FRPxp8-JK8HMPU2XGw7uq+|bLYlA%S8cP zo7y5PKUeYHxp8YmyK~|iMZ0t1Zd3VskZ*>tXm{@04|M(9Id2c<+VtJIZZkL;M}FKn zZc8P1=eBJV?apaCT(movjr-pi-<`u&A-OwutwHI#bJYH>`g7-|J;_B2#CPYUohI6y zi?+XLcMjT7T(p3`JNN80$=x|;<CPzGu34FAcaGWTrSHxyYZvX#DO)4jolEvJ<=34< zc7)oCJ9muxDw!X5&RDZ(cdppsx?b)au|>+iJ2&iJ(e9kEEY(--G4^`?PI7k+*m<Je zxnED{db@MJW-7ir*K0qO-<{+2OZ9hmZr6LF-8o(3R9<&3*AmIyIa?2?y{;{?`THEk zw=rl#SxuJC$Nhu!nyW4S9L8fq*IT+pbYs}kvqY~D{VmabqS?<GziqzNzd-Z~(GQAl zTwvu#C_n2&Um|+5=%;b5XfLPH>fbB6SM(Hk5|me|Ji|mcimnqqxy8ocgZmxz`&unM zN9Erp`X<Q>+N^x8=xq^8=ZmgVeI13dfcCa6vhvBI`z3!t<;jzLt>|9SC!jn><8S%# zHa^#(NV{{;?f{##JJ*WyYSQkUtYbyHbFFwz4COBtT6?d<!6NO>wfd**-FKRm({H8x zEzwg&yK~5R?gQoS+_2-(zDT=s!p11S?%c0im7Y5%>s{2ZNq>q>?{kXJhXM?DqrND2 z=VtB3jg55wDOUb%IGLnxQF$H{eW7TGjNF~8b)D+t_)~5C*KlnZ-<@0bWyRku`NfjE zbLD<2d+wac2XVcR#$Q3Pwf8QrAL+HC--K<_S)ymNd>GrS7F+!d%n#^J(cHgBdX?y( zvc5p$BkCrMm3)QhA2ENBSBpLb{fBgy=zn1RBE3fRQ=)rBbAC&Ct?27zuTk_Lkt*eD zMQ>GkyHuVLyguOdiQc2~R*Qa%`8l{NP^9<=?QiMHqHjb0qdX*<>uyKqbOly)+VXOL z66pfbk5V6WzvyqE{*YuMJc9gq>0Y!yFMTNL(@Wot@y|=|M)|$;6~6e>kdjyaD)Qr{ z&-2;;Ir8t7KaBS7rEm1vKgyT>i$49&_|hNc(=Yd>H_NBbeTv@nd6tKl?y&QxM14;5 z(SP#k|IsJE-A6y+qcz`3*q`H*5BJeO_ocVYSDx2><>kIPZ+YJGwTFv*^a7u~PoXV) z<6r61zutE}PV`;BbJ0J&@z24-ATNCl#s@DQ0pX>&uhL6@fd1*FZ}+8ttIuBCXYUPP z{;GWWIn>wwH~Q+M$|qm!i~n68z1!Cx;y!tk&)#o*@|`~V1fTvAU;nE0=|AbCU-n&( zg}(lBgRi|b`Rf07zWSTvm;2hsa9@6}^x5b7srP!ueDUA$<#(0O-VHwbTpxXwuYBBJ z?@jM*pMJHkd?Rpw^6H=Ni$Bp<zrXXf$9sMDKJd{aeB~SP)#qWp^tbx*`#E2K*zK!N ztrsN5mq3mE@Hsv(Z@-f}v#qYaDY7_#FMUt1tG^PTOUKv2@nzV^;+f42v+L`c!{^o2 zM_Su22t%i2hCY}czB=4|o|yRF^sI{Vj^gH~x{mYksd=M0bNcxu_=0@#?AbLFV7f9I z;n(ZU_mBfMKB2faWBgcqd+TDGP9nFBt&1FopZJ{-j+8cav^Cc)MkbuVSS`P(cotIB zciT^?>1b$na%;b`uCr+&zCZ5cHnpVTmb8cKB0kMobxj?97P8#h?qi0U8WJ2|d0o<m zU0F7#I9X2;HQOqhP*XK)W>rl^`Rq9?kzZJT;p{oZ7nYROz(#0h>1>ZqY85BrTD~{U zq)dt0%pl=8GfQSx@bYC)nKd(=ENR;(PtDSWvoC52FH%!T#$j7Af<z4@3W*C_UOc^` z%oH<&j;A6#=3Vuo93HMWQ71{M0+)YpTFFQ$Qh(X_A@V`Zd}dp?Wky9wYfB{D840jf zYi2jLMw=Uoo10q~&1r30*xCWUuYZP`B6HBb*!R@rD_gG)mqgn;THEKen(vg$R=B0X zwh;3j^Fhgr+j{vG^)(%fTk31VolP+7?KL)OYowy7BNA>2x1X}8uA?N<-dqu$4{Z~B zVaI~mNUR1OH5>^fu2izEUO0Q^<yVC3Q)Q+()g&&byHqo)=HQxV)VFFibG}f83%?h= zL3R_mgPVLpq^wsIPcN%rSF>4U8%)hlIuVpATcaJ}@)mx9+g*Z);hoo7AMHr6Fdkms zTG!r?!fk0Vn$x3^NNY<;b5s45j8NYgZiqIA)kfyFHDLGw-(HvGpf|lW+R^~NZ(OmB zVlcb4xwT!F&R%%5Krno<z28(X2^*C(mo{A!Nj8DRRY-Q$eT?9mLt6FJtnNi6**zzy z(o!3<%jw`TF0IkQ!@=Ivl8KwKA+2g^NiLi{E8Nl6+JX<<>vAM*uoZfw)>^2prJ*@& zTF%9F?QOhi7q<aSx2%iuF4P>Z>j+o1wl-I_LSUmMZuT?k7A~xtRktu9L7TEQlv#3d zWqHf|R^_iO#GYtw>1Cbu;kHOqYl~~>Ee&&8qxFrIt*K0tTgUX}r>eE1$!eF(DDLQJ zt#3kuHxY`}L2R2&>J2$uHMN`<ZEo(UZx4rC=Cs$fxCBfUVOU-mZm(mK^hj*dLz=|6 z-2lJHRuo2YYrwT7bCcfd;8xmRw_pJb(6wo5v8j5ymW@2C>^zQe`=)HWOJZ2uOQbY| z+g`L&M!Ix*$f2!=(xwJ9&!z<}7~Z@?2is&qV|uv0bs-(Xj2b14buA0Rsh($3xFfy( z#ZAr4Ww>kc3ePrIIK3Y7wl8YN90$66vA2(UtdncP8M9RyUI<UKE)s3un^xt%=)eoe zm`qt`TWg0;?CW~v_3XJmX0q!Hx;@zXb}_u3@p<j73j;MZa0f7dsHtzfvSxl=Q!_MY z%x-K7Hz&JJ1!oP;f_Eru43pncvk+wp!AOPyE!xpYt8#;?nmWVH9igTLU>aWvz0?dq zmMm^?l<E1GhtUIT>gyu)P}f+{;OHSofTj*OUFgAsYbDa2WNYqW>(usvgcsG+!QNDi z3B{~vON)u)tNYn#5w3C)1Gbs1L>H!)an9mot_Dgmc`IpM*w!45z#6%8S{E$fJ)>bZ z2E6dTk6P-)xS=daA5R0;kb1tcD!qQ1VJf|1$_V9CQFAV74A)-?pQ_EcUDk`Tb%EQR zxw~+X;#9SzZeh5i%Bam*+?J?*+lj65*^PA+)XZ&J)C8XwBHTh?&D}U>M;13HA||+V znj++SuL{#s``KGVfxCTCQ%4gf%ln|*dU;2<oeeV)#n-4zNjUR1-7zt1HaEuk;r8i^ z=Qv@~yBs7`e_7ZTS&SY7AJsKeI|`I9tXlw9O-;#pa9lA8v_xi`Zc)-)*U>R6jC8^+ z_0V8#AeoCWGj1&nU)@BWFTcqFXg1a*Am4|sIVg^`S>9nUV7bR3kWuegwIB-DTtk8; zHiL3Cy|o=KS{Q1+?9OPfyL=z=SOY)4&a|0mo0=>c`In+bEFG+`Yf0QJEo)wSd1YNw zONs)gr@@7sij=l4YALB};rwv0Mtis;9I@UMCoCPQ<`?0jbyS7hn_3&1>fL=`^ABp; za$BozOba%34656t$CWWwTOG2h_BzwFU*i#F)JMkA<32$IH&|!1xCkA&brGC|^Du&T zz+q(%%BWr6j9Y0&X_`97sGCTaz0x>NQ-{_~v<jn(24k)_u4SU_WHw@lhww#p&C#%3 zt*fewG)`@uKhsRlr`8+iYbrbeE=gpz)7IWvAMU`t)+|M2)`K}rPs~j?+%a`gQ>4)> zI%JLz;e;XFF&(!UH0pg-X9LGl$G)ngOVo#(n?FgEGEB*QDI}^p*a1f)SuS@)8rtg? zv14T}tiAlGmgeTU9pR+US;el|VrL^W&5WvJC?jaQ860O5Gnv<hRyYF-aapD>o{c*> z7jiS({zS@Gh8NFm%WTUGNPAOghvQ~%#(UFhjWmYa%`JOxTF48>z9DjxP;r+mnT3QX z?KrouddbZ0-CkWoLlxQ(1|2(~CZ?3Wi-(!!{MPn`9F9{}(&n<+EZAkPgT&}_9=!88 zt*H~Fp`s0*c?}g~&>U<ZA}D96Q>~%mrJ2PI6@_`**F><A(AwO5F{dc|V3s5MHQ{|w zOqmGogT7}<IFvRkghS*|dZ>kjn(GpE^<31!W1RL5+d22ah@ET>rD&JBOL#NQtcu&3 z&zsAvYepDzD=<2qF;B}a<`Rb+GFzD6T(_XZj-z|gvaS_v?#-5Gj2KGQGfWJniu%w< z!Gcy#{Q?Rzv`d__Ud467FZ?%=sslAw&Yi<)5oa!V#3v)}X^MI5XPx@eFrLKK%qlB} z4z5E@d54)b>2ZWd0PjE4)DlVMnBm<lj;HdmY?NF#_lT;Z3){^7x5LAP<qM+=jq3rg zZb7)+C!E6-c8~t-aHOogy|vxL^3yQsvFB05bB~5-n}?xdO~<NhxUMBtU`l7E-X8vZ ztWJ7JJY{Wetrw$Y23>qDa+H?_W|WlRQ4PCgjd_N8=9z<7r=6ZUftek}t>ZLK$;?Uz zh>q5lx@J7)t+~1Yd*Kj{D?IhIf?zTfPCDzXDW{({>GZRL!7~a@gTRUl3kuGhG$|N7 zy<jr_WvKlWFLB4>jz}X`Ga625HP4oR_0M;B#MLl7zBkXy@mM;*cUb~K{2_3k&Q|Y( zbi+;l!}pUI+876c?<X<9ruoBTZ4+v0%+oVb0hDo0S@oO*nfUQnrRD5p!BCLW5rHm( z3pF*DcXT)cSW{D4Jf}FxaQVPv|3qLJUGNvFrluav11(Sr{`|RoeM|DWDyOrj;yV)g z!3rv-!jYP&U4W>mC`}0QV}&C0i#Y&$%pdnXvhEO4OxDzd8*ApbW8K3F{rPKD;rQMT z!&X$hx4hVn)MzF4-w6OyH=n}BBm^dgEz$wLw}Gv7ft}dzrgxF}9-Rra$3JW>;_D%N z@A?ymxuMu!i!Uy|Xm+Uk?NE7aS19&z1;6cqR{-MYR>YR}f7!H{Wxdg3LMzYs8A=n{ zwCO+i*2y;Ngknbe-2VLd$*|DMr9Fndyf<<{Xyvpu(B4r&?vtzq8zcTRzDgEazKbf- z4|PAC6<UcM$q=lJ_Jm@uRm9#m>amT5z00>m#=zQDuu<4+xD{tF?T;Q9>V774Y4K&n zHS?Y}To%RrDD0j0Gzk<bC$xMIV#iH3L&(>Dd-^t&{cBWP7EDI}wSoC6e96QDJy57( zbw871P0ZWQOqohDRg@F^*eI9Bo`e1yp_OyDRmA>bSj&4m4_*FB<cRpvH@ZLGFB&w= zSlPB6XCU+3?zrQ8h!WhR?XRaD@5HUKjT^TgJ#6EzcMtnRta4jC)w->S#jJ=QGtagn zPz5=t0u?uYeOBSFWR63iE!Ad+m>S#$xl&it(iSM;1M`;8MuM2SN18CET@wyUEm#*p z&$~RzN2XXA4~AP>qYD~?m|e9-+cAF)Mp}b-Xn@7cptT!t_7{XB9eniKR)>y}cVdw1 z*I4awVkDnV%o<LFU*K1|?*o(1fNeeuylyFBtEdu-gXBkuV|&-&_{U5B9mG%fec?@# zYy28y|7CHoO^soYe5~bX{Jw7IzwGyeTsafpFY<g3mjl)j|F(LnhvfIsWS`?mGk;4@ z^^sO@HPoCv)k|8v$7xRaWBr)mzFXw^j@la#EK<6Oao*`E8uK?AwNoQK)z_eO{{kJ1 zXZgPYqVDn^1tO369Dy)?jJpSjR~GV@194BxUjjTF$Wem007$({B|i^{S0M6F2V$Vf zKSp>k5U+BW^X)L+=CfCVHNFpsF*Sb^5My=z{XnLFACPwM1Y%2B{>?y))#GmfqRjcM zdu)}<|00ljp9i9h`7?kB3ybj&?N0^b8s?t@q~38rgz?A=k9L^W3xwXt9$}ZTR#+qq z3IRs{VniB)47vL)(<R+Af*ROwO*#HtJKKWa+^6mW>zA}^&lHh%{o_{2U4LV}Q||i5 z2clhn<8{LSiSU|_ei#z3ywNAW(I=neqd)D_AMnX}|MlAEK<uS^d^E3{SN@idF7nxn z`Q%%CG`2OS*t^0<TStHP7qA-(ZnE(NtFU_9ZnhGd(Xs}kYE7GXH4E!H12t|y<v?A- z0URvH^NjHcy(?Oq@QgB@HS!ypI~L=?qsKsUluoi!#&){I{>PMw_)QBI)^*_7qhmCL z@jw$#3mx4NZl0f{Oc{7*;8Rad`Ui`w0VwcMoU>x@KuH=Vu=bAy%7}RYh1*d5m0|3y zvbVg{4C`41{cqO%#dTPaHC3N-HKJ`^CLT9>NyaNR1@m+5!<-cE;5m{NmzUbP3fjac zokyH@)}+apL?9&Q5gp-$nnb`}x_N|gDuWOra2~P3+t3X+`A?U|iy+1h21nBu=AXo< z*L|Bu@cdE+XRilNE6zVkGmqH2-|y^TtTy3lml4rQMil2Ed-wa@yry3<c#Z?c;{eb7 zU^x*|Ob+GuS1~ez^ZVQWOTT|J5~t6=b60wBop29I`2Doc!2Izq;R}$tk3lYNaqK@E zSe3>Z4aJ@g!Gk@sG<N!?5>u~Ymt?sg@Tck9$4j#CBRUSAx{(yVvg3flSDg18+nVr6 zXIEiDL8D*XG@Oo0_mUBTP<%;F<TEDT2HaAWHkcGf-?T}^mmq~bk;4*{??>!4_`X?} zTL0GmG(JCPGB(A0q+|0PA6{%GAjtZtJ)2|0%L;cTWTmm4CbRIX&qXyC_LADpN;EaZ znNd}7Y*%?~PbIR`REBxWwdHWEO?HaoGe@i}9#$NiF`_s=3g$-^$7YV$aYA`~Q5KYP zN@E`wz1Y(bcYi!AG6FjPQ@m&9h~=+Dk(J`usKQqg)?!;tIqZxE`S~d_QP`X0nOs%G z_V_r==aZ~kPqs}Zu$ZX%amljAPfz|<xfwfgktQa@ycE37OL9yB_6$!*l%si1BZq8w zjyAcg!h`B?L$EG*;oOP}Jm6Va*Vc%=bgWK=dSE*LntX<<@HZ?lY|zN`TO$qdES0qJ zk5!Ddkf)nJJTEzXGloI-{~*q(5T?r?=iUrVKVAOVR~d$1Gb=ExGiO-N=uug#U~>X^ z^Z{1Me|F_e`1hXg+?GP`7t&)rnBe?p&v#7eV~&;o%>0<(^gQ-fLoii(tQQlUp65HW zk3;aN^i)5C{Bf4!4gB3LJ=T*6&YmY-`uA%y<xl09h5DqwTn5Dd<Icc8^rue(Vob~D z`?<(V{=Z<0{GCA3zXM`O&3_I!9Qbn}?R*zVJM>Sf-vrD876TdYC?NIdFH&y=ka}$1 zly3oYzVR54e)$7H%6}j^{eAf5#^2|B;6~8Q=f%J=!1IAHnO^`r0QgxT2Df~qY33ch zK*&e-2)l%}!XjZ%2r&BYy;#x=^tJit+7a_b+O^Lgi+25m*Mf4_z8fWX{pBgqu7CUk zG}IH}1|Pi`La%(5PfnRvUhmUKou<g&^wFR5(JY78UY?Jh<FkK@k50d^u9su5cQxGU zSwEiJg5~2Y{oIN)JnQ87HD`wx8eg($VYoHwU7g2%o`&=iM8T$9uP!)q+80yXlQUUP z;S9O(&Qxb(gG60(O1y<;AA^Ub+CUn1xb}!_InzmeOYgG5BnL(JF&BDP=|8#Od-|FF z_49?iiq7->-}=37-8P6pg2B<~>&Dj_VYu`w_s#E}r^f5-@%%IT-f*D1WXix$>)p;y zOp%si@bd;`H^Cap@7<<+^(Y3<A)`s23x_N+q?jDa@Aa>r^Ere!ix@LG^d!Or{NmV% zhbV@}#OR22B7LmW1lFR$yO76pelPRKKa9JdI3&C}EDq<Uu5@o;l{{I5e|S^C+P3kA zr&p|u_PI6QCz(x0m}Tl+Mi*`!mdB_43sSc-oAiuF$uBmm)?-4(&C7+GnX+)5@WBps zJ~hz#wcAZ@jJIo-wc&^!q+~k};$k<F{w9=mjKYt#CJ#wpkY4mLMq6v?hZrIh+qj<P z?VgeoJ<wRV)LFPOjfFw!<vVRY^g$j>Cf(fJ^hmQXkz52$bq$S1Vqw_obL>s(r`n3N zFW#FtY6k9PWaLSKK2SP;kbH)d@t4k@!?z$zIK_f`i<p3S^mBR!IlrgDkSYFHE6(UI zR?B~K`AqnWzV+Z|q{niY;QTS4zqm<y%1>JVj%oc;dMa01J^G7p4q@*LC_lP#{^x<{ zG~+_TDM0#RCrf^u_=gMWm(hQsA40#3?TU8(0;HX-!Yx4b|NNf=vw-&k>7T6v((hUX z#28`LV<~R{O*`{|v_rpze%=fq{XVY8(%(A)h@r>$Z5Vr|b%92fM%D_8gh3&|$lZA= zq#0hsAN?+O{rDXf(ym>7EV*k(e--W8%}nUx|3o;)N4NOs8XsMXnBMr6KKd~qO<k`( z$6_yivyZOv(L8p>t3T04_xR}K!kz8>4S1&quPgi6THK77)wvp@>RI%}O^JICQWy8^ zOA~2_55ILgZ1}kxXnZ`kNNLv=y=$MIrNmF<RKmqe=U1lVW%4zL^#6P=ns;|ZX1{B4 z`h5$hol$sZ(1gT#V?BI5=XU+C*Bfi$FE9krIT;-N-}+r{kA$<=h0g!q_+8Ep#~FqJ zuTukB*)=l$GnC)8N)dV$V;#y(lOYroS!75tIh5b!)*Exw`TpDWMxJX-f2<ROCCBP? zei!q{KkKpK$0rDOooPb>qR9U+-qi_MqmrkzymxUf{Ffgh@j*V6b(*l;XB?nU=qp)= z2QC`TbIsfMNtc;)tlyH@FaTdEMSGFc=5ns{a-24|O%%`J#))8Y>}BkoD3ATCa`_vP z>#(n(uh2S%rLlofQ}1soFV6{W+;&3K=54svq2XnHp;%dO@rl1GZu%8D!z;HoZ84%) z<>ni94}1QOv)c~|?dhdfXypxoGsDl|=jPDLdA-HPORb2#S;4&;e>8R3Juo8j4whq& zE-T!#qX31x5w&dA<${+Mf6+La#y#sEI45#2#2by+L@kbOVivofNoXcq%#@1w38I*4 z`>ctZtTs2!axmDd$43S8j%x7gy7ngXwoFP~?&Pm)PP%X@!pqxR>l*6oIwBe55zM$7 z7GcVqL7pl?5fUMUU+Mfm@)<Juhi<Qv{3$e#)Nr@RO!8kz{tEEm1L^gohWo_H6o0JL zhgxrR<w*FC9>0)2!aA)t4&^`oOnS;sTECFK&LczU(J!F?xIua>zX{H7y`X#K&HLXn z;#Q5b6CivWe^(6QZ}y?SFgE3H24Vmm$8JL8`XK$tuS$Ni_+6qGimnEZf!>Emi~i>( zAnnm#qn(F@KLpahyj}9!#9tv?3Z!4z2*i+@e+dv{Y5ru<8~|zeL?G?*8Q5sh_%nWN z50F{w64nZfgh3&|=-mgTUwJnf2;1;S+O<#m!=zn%drGuxUt9;I+y%E@=-SQiAn=F- z|Mt;mLFknq=93@qqp9oFpXQ^N_~<Gh&3g65PdaL51WLG(cwEgvp>=*koyVy(I*Gx= z7dO?{G^&Yl#iz>g#K*GZmtAfw!C1!yyg6wX0;jvd%)3yg7#`N_!B358chG{K&&&HS z7veHLf6m|!7EV455{8677-{ZExPxi^!5%dDKoEZj^u_W>X9(+bk$a`HRy6vQS%;$^ z!mzLFa4%c+fV0;Kzsqbm9JCH+-Z7Lm?WgWz<@}Q&%R*ocZ{PZz4u;wn>&oTq(T2BL zQrbFXL#-3`(*VMF3xOVA=DfD4GL*mSI$M$K^{Tx5-hynUm>kMqEmDElk4=#O>qv~1 z2@!c5|8w}mw@w&D`WR;eJAp^SCgLTYkF&`9W5ys(Tr2$C=Rkke>>ur(#%HU0>^9iw z*=vVI&w>j@JKOkANb=}uyX+>|=!tOu2IT(1>CD#V*c}J29Tu6m<CsvqY(U#)y>{F- z+sFZOes_!x*?qW5#_dQA#Rjq;V#x#DyN5*&2*oy8XH43m*mEWVQ-*yuaj)MRFonTC z&b{K!o3?O$)BL9Tr0+!Q3SYD6Z-xQ!`3*jXLGq#elOFCNMsRi#{)x3`u6rqdA7s_` zD4jum2k&d{e$6gT--7p3&DX~N7<3lsZv&CZ@o^yU-!}mf#xKP`yid0SDQ^by{=5K) z_A|Z~h%mka|3JQw`QZJ0lIW9x2n*Rx(bn>h1~MMjl#D&LON50%{Db&r*do%8;=VjL zp0KPu-`kA`&@uFn_yb`J{=E0;Z;E#HHwt=Er8>W9pF-d7qnG>WSABGwk3QT-U+SZi zJEvw~A6v!jQoNXbO6p1q-Y%@EH~WSIHCoVt0v=BB)Hn0$`vM-6)l^^OW2b4W$(t|t zrKthiJj{?0+&`6%WZwKdr<=@kQg;w<@cp<r(z>vz-aa+-+_^2AOF5Rg*Y`xGq+f3- zEI4bjy}{c1YdyA6)I}SbT6K#}_nd1L2fZNv5O{y(w^}lVer_~HSSOv$qTT%!eaeJ= zy}#~≶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 F{{r__1zG?A diff --git a/lib/osx/libdiscord_game_sdk.dylib b/lib/osx/libdiscord_game_sdk.dylib deleted file mode 100644 index 8011a64a0ef657bd978e6cb275c221bdb7c65311..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351064 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®Lmk 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 IC;Z?40=>;aH~;_u diff --git a/lib/osx/libfreetype.a b/lib/osx/libfreetype.a deleted file mode 100644 index e40bc221189a1670ac345fa4d45e2559b90f2ef8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 868256 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�p4+l&%<OLr%BVY7-;=s$)3! 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 VgF6d@07osh_{f@j#Y~%y`ac5E_ecN$ diff --git a/lib/osx/libjemalloc.a b/lib/osx/libjemalloc.a deleted file mode 100644 index 81ee56df295f88da3458bef7f8fc31bfe8fbf035..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1515176 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≤wOq571t>~ zqBu`+gyKNO+Z0<V)={jcSV+-P{Hn2S_psvIiklTzDlS%>tT<ZnF2&mw8!KL;SX?nm z@kf3@RQh>Z@gv3Uiq9!NsW@A4s$w6-Zi+1wn<!RPET!mE{H397_jASFidl*;C_bz> zS23vAU$MPnOT|RRDvAXajpE4$w%vn@yA|J4+^U$RxK#0B#rqV~6-O!#QtY7ETJd_t zhKh-bRTK*<8pWTkweo$Vctr6t#Vv~K6&ESaSDdLhNpZO10L6P0J1btNc&%bB#Y&3B z6bmbcDxRxv<vjF%xVrN&pX&Ax;FEn{iwQ|tlENU2q$WutOJhy4?^28uBV|vv>}6lG zW({SsWbC^ngotFB5Q;LS`gwkzmw#N>b6v0NKFfW-&-a{a%=d9VJj!)k#f6;3@f^Ya z?8P_PmanlcE3g!EGczNYQr`2$L)^tpoX;5?&k^j#POQV~e1e6Ufe}3WlpH+3U0lZb z9Kk{C#8zy?I(&hZS%{I$%Cx*yF68-xKk!>_;W~c7g`Cb$*_++jm~kx6lFY?Syizvg zInO=Z!ms%SKjlbvXJ@u#V^(2#=3_42C==#i;X&@<7hK4Z9L&ya!&t_!C?8@f-iiuy zPx1$@<0?+#81`Tn)@Mydu{g6bEiaS~b5C<SH*gN8vOjyVIUBJu%Q2EU_-Cmw?>8Rc zE-vGIj^H46Vk=hXvn<T~j9^O1F!uxxaSc~+0!Q&3zR9|*!BQ;7%uLPXC&S!R+{*Qw z&B^S`o@~knti&?R!)(0vM3{Gx`?-TlIG2+-mLIV%+p;O^vId`J1?FdNW?%&WEaCq1 zG>>ruS92=IvlqLu5$muVpI{DV;6IOt`G4{l4{$Y?aSo?)42QB0d$2RxFqSba%>2y8 zbo{k=$oDf3au1ht0jF>r2eS{mu@mdCIxDjrBbkF~`Ojk^*B`vVll*~uxP@Qy3(n(o zj^l9lV*=k|J2qiGzQpJF6rbcHe303gj(-;m*L97_JjFxY%N6{b)A$L8aRA@tTWrlH ze2x`afcNue(U9+Vp5ssap1YaEL@wc64&wlJU<+2`Gc3c$S&(^{nW>pvB;-BCtz6I9 zoXo!L$v4@Sudyzx^H~;Venv2*aL93jhq#NIxSGp2hf~>~z1W<MSefM*$sA0}e;y5a z{@?|k<PTiORb0qf{FEa(ki8ktj%>z;e3@1G7$4^S%)<M4^O2DMGSBfxe$O3D;+I^) z*__N#{D|-K9d=?XR_C)U$0wMB8TebFkozo;@c_4T16Oe|$8ae7um?M{4I49#FR}{D zvIHMyUfzB<<h{;c`7;l5A2)L?mvaH9@e>Z?0QO{8wq;Y+Wet{MG3IA(rW6eMuktKU z@Bnvl16Ok~=Wr<dvpt*h1y*JuM)IGBLY_Z)fv5QczvULL;}=}WksQp<Y{OW_usloh zQRZWIrst&sA@3RP<VMcpbdKY2_G1E@u_0e(RaRta7GVMAWJdm*Kjiz1Kk|F-U=qLN z63*sij^amrpYN~}Td@)A@C8<86pJ$})AB;TkpDD);I~}G#hk@S9Ld4##8#}vXZQ#o z<n0H;{Odf*@Aws$avX=V3){0MUtlz&Sd<Sj6>mj`94Gk$*KrjWauz@3NOosu#xa&9 zS(KTWis$pn!7W_JS)9Z^?7`PrpV5rs1I)@l@`QO8_${|{G3Rh7`?Ecp^95FBAx83_ z2g1BRd5j0Rn#(wzBiN0dScld51Pe0*BY5`yF#iNMaSdm10^jF5e2sNkfu)$6nRzvL zn3v4sJjk#41wZ9Tc4ueCF_tA+l$n@{H*$sfS9p+n_yreoBnPuI+c1_fEXs$Ninnrx zxhMGp*KrjmaSVH~3+uBcV;IdRS%eQVC;!S3a$M$V9^<#%&c&R=NgTt$?8ENt%s9rf z3d^$uA7y&}mp$aX&P)86NBIrE;v#;=i5$&$`4;Q(WtQe+%+K6R$rf^5<st6n3VzN} z{D^O|Eo<<37GpuC=HFSv+@E-uySbV3IGy7-obl|)rfk3(e4a&EfH|3wm$QUi=eV1j zxqvhIAwOViHsN!u$O62dH#3KMzw<EnaU~aVG>7mlw&TmJ%E$OH)9`ktF!yI3<v09_ zQ#g(ZjAujEW?7bCcBbd0jA8B>?&L<!<8%&WZ?<G(R$+POV=msv5awOsLGED^6S;(Q zIf-L9n0@#*-(U;A%37?($N31;@OFARd7j63fLpnq%ejEVIgmZrg{}A+Yq1(1=OcW8 zS(%Er(uKU2d5%Bwd+uNo=W-gyau~a^1Dmn|Yw&qiU@7KgMqWzmdE-uQ<Qz_AfA(T? zHew}~VIF2<YW|%j%)QEF?&Vf~&e{BkeR=17JQ4r<e)>(e;%j`C6_}s7nUY!#p5+N{ z;u_B21isIA_!{f70!uMBGxKVyFh7}lxs{)DHa}utwq;X3&q^%FJpB8<Fz*_Va6iA~ z5{~6Cc4Y@PWdl}X8RlU&Ub}O*{&&AF@)VD7J-_5+j%81FWdqh?89vTzOvj7={r}&G zNcRhOFo|<HjRW`|TkuuZVl`G`89u<Q{Nvv+{{m0)2d?ExPT(lM!#7!%HCT$pn3<`W z{7;yFid(s!vpJc4*^^D#fYFR%5f<Qmym>p!z07mm&CN{Ya*pQ+_G1E@vH@cm!>9Np z3o(*en1;Xp9diE6ZTyBSxrj44kst6~Heo%!#OL@FpX4KakpJEadH&)>{=y^N&#hd~ zS)9Z^?7`PrpRtT#Q9i^}ymd3=I>{fnj;pwkv-l}Tav*y%o*mhY4f!&wvLZ|KerDl) zyqOa6{=~!F&COiEnf!zw^KHJt7JQY@@F_mdN0^TP-UxZF@gnzg2iNmUPUcwlWLGv| zEtckE%*0eY|Cjs7O<cnnoWS?_4qszkR$wXSW@bh(<<BtpH=gAVCUGvOaRA?A3%<&y zS(XnlEC0A2=3d}lZsq5k&5ziZZP}D{S%almjG395Dc8dMt31TL+{87U#!r~Qcs68h zMzJ`vGA%Fs5$2!fc5dJ*F6I~xWf!*R>#WacMzJU#Vk+MHJ>)paAGn4q_z6Ge+kAty z`65g3QKsjASHrwBJkIa9lS?^|Q#g(ZjAuJGV+^C2pShWG#r@~^+|A`&z>oPMJF+ET zU}Y9!B>%n~=3V0v?&p_W!m%92uI#{Ctj5Rr2-ET3-@@Eq_#=~;$Z7n9@9}NE%2)Ul zpJYyE<mEemA@hGfU!LP`Zsr2c<cIu#t=WXnu_6obe%`zo=KapY+{cw%#L*nWx7dy^ zvnn6s!%V~57sA}1d6eJqD^B4!CNQ22S({~9g4vm#mwpX%&u}L<at^1mFMF~n8?X|~ z@P20D@5y1_ul$LJxtp80fHV0aKj7PZgDv<fpW#!?%k2E)e8_Ww-*P+GaTOPG76-Er z+wgV9F_u+Wo)0o7)AFBlo(CS~K5pY8e#Rl}$98PS=UIuRSd5vOn#pHFj#J#q^_<Pg z?8~0)%r<<9&#^2^upsmB?=xZkHJ;~5Zs9u4-~<li0Cr#tHefAAu{a}{gV%luc`ouN z9_AXZ;5<%efA->=Y|EGU9Lw<uW@9?uJRS1<&V$^;BqnkiKjC|Po3HW}KE)@QlNtHj z&td*q9^(Oi#ijg=Q`nCQe2eY)GOMy8OY?qa;eEV$D&+c!hq;C;IG-~(i0`u%U*of^ zz!H3v>G<!-F#j4aazA%)3FmSc2e1dbur6z`6pJxGb2H_qkmD-9=WZr3k<<7I-{aeS zm9MZGpW(yI%PdU88z(}ZD?G#F+{mvvou9HdyR$LlSe_-BgBf`7c$ohScQA=_IgS08 zz-Da7r&*SHnVr{v4D&AWJMQFC&f{<nWJk8-i>$)3EWvC{$BV~YFLyABb2*J;IgDM| zflXMC6<L~(G9R-uJ#QZkd9L#)zvEV}=WI^qD1O8@*qSf03JWok{~QVP|Kt(w=a*c< zu^h&?*p9J`VL3j*Y)r?CKe!*<#&7r;r?4Lr*o+PNGOO}2KFl<{eK^ehnMe5zzv2{* zV*=yZj?Gw=PxE2sWfrF4%|ju_?>xvo{DKQPl7rcs-PxFNe34aHmL>Qw^YZq=kmov& z@;h$hH(bd@oXLs&m>=>zzReD7!D@VlrTG{O@P6L>-si`2{E3^mhRZmgQ#g(ZjAujE zW?7bCcBbd010l~D?&L<!<8%&WZ?<G(R$+POV=kuWf8V)pyu|OglS?^|!#R)%jAuJG zV^u!QhnbhR_shXw`7;l5A6Ie_XL2Gx=7)TbZ?gkiumNlFc~)X67Gq|nX3DoA|5cvl z2_E1sZs2N8=2(8n4;asmtj!l0%_tV-L(IiY{BK{#dxMvFhDZ4wxA7Z(!G)a8PdS_e znZS6qV>8y{%dEokEWt;am)V(yxA%tYy2A53&V$^^ja<dWoW)5T$-(T+?(E2xtk0T^ zVKkp$VMa0s)AFA^;d=hy1)ks`?&2n{<}%LVRF2_LzR!2qiLKaxwfH<Mu^{vC@7*Ey zH6G!9e#s@A&B+|akN76r@-^0Fbw0~-e1e4-$*fGvTf2PD{DI$c3)k@rF62lK=6igb z9oT{mSc@@?W=R%hKIUS2{<kyazRpYhnMb*g+qjl1IiE8)o+H?wz1W5A*@X4@5})H! ze3FmwL1tq*{=LKV!}C1JgWSU;CUObqauUaIF#E7OJF_Jlvo>Gk(=5wkEXdr<%m}7z z57+e@&+;h0<2HW7m0ZNp9Kzo0&W>!!hOEu1e43^C81pd~)APS=o;P0N&pgU~+{U$B z$$6a4aU9M*?7_}#!$z#b7g(94Sd96Zn;96vKexIsJk4YLmfN|Gt2m!CIG!WepS}1d z+wwKmWpzHwNBAJKF&%Gi3Hg8LIsU{=T*GCY&k-ENPHe^Me3pfopAk&i9CDoCA+F&H zPT(lM!#7!%HCT$pn3;E0q5J>uHIg?4PjM^Pb2cZlFMF~n8?X|~@BwCJD&E={=3eGG z?&fAL;7oqPkNGy=;46HICHN@Q@}DHv%_CgPm7K`Y?9R@NV=POuC^ImEzibF|e`FF9 zIgOt%f$?m}+APZw%*wP({>F83E7x;2C-Vco%O<SHiY(3hnT5Zv5A%NIK5pY8e#Rl} z$98PSs(hLcGcU6+4R5Xs^MB_#{>1OOn@LRMG=9SO_%=JR1?#gWqgb3-nU)vUhJ2^F zof|lZQ`w)r*qn`6ndKPC9Q<=lnD-kGa2J<xK1Xm6JFyk3^H~;Venv3m>oE5O4{;4w zZ~{m19lpuBtie(&#>`C3<is%d6t{9cXLB<9vL~Ce0V}Z#^DrB)tq$`pazA%)3FmSc z2e1QMuo|D?BYcqmeii2Z#UJ@S6S<t9@MFHsH~0!);*%`GjJ%KMz6|q!;%2VpOittn ze3wmFj}=*(_cIHBUlr#4%6;6%Mf{9I*pKblj8*wGA7)-=VH)0C8Rq}a!`#QsT+5l9 z$dCCU-(YLL#OGLq1$ZBCuJF0@FxPS=Cvr4D<Oh74Z?G8~@?}<KF&1QQW@ZFaz6kk_ z^B{L}BfsKOj^l84Wd}B81I99j<yn%sn2G-_54mpe63=iaH}Wek<!7A2eoWw7Y{w?7 z$BHb?A}qk1%*e~jLf&)yk>7I%lQ@^tIF`fMmp$2(4OoNEvjR&oH#0MWDN94n-*}e0 zxQVN|jB_}Z{n?9M*q*PmKBF1MqI`(Cn2A@Ggq-JjoCmp+8##~DIgZ2Gj|ptXhJ2Y- zS&^lAKeO;Y-dr4VUgkOO=4K{xIp=a32k<?1Wd}B816E=g7Gpu?W@cVp6mll>1P^f+ zH*r2^a6Ct_KYOt`8?h!|U^Jun0JAa`Z+#weUg3G};TC?)FF23WIgq^>&yH-yhJ2c3 znU~plePPITiQjQ2mvSD5b09miC0}F}KFWOjZ$X%MgU5N0U-Juo%8~5O&WvL$OR^|4 zF%{3x5A#oQ3)gWLC$SHE@O9Q_G^6+cv+|F5VcrFv;34kfCa&f(&gNu};z#VvHf+o| zR^u})!^im$A7Cb?;`zBgFCOF`ZsgZo%6S~lf$YeZY{=Ry%MyH;d6|W2`0JdI?`Lk~ zH~frKIGRKF0pDd4)?-DM=KajV`*`!SkmEAXaW^+}0cY|<e!$jj!dLhbOYl)Xz^sg5 z%IuKmB7fmw?&C&&&BdI<2^_@%e2*>oDr>PCALk>?!)#2=zh{NKSDDNcJj69z!TFrQ z@f^Ya?8Rnm$d_4_6<CUenV;F2p0{U)+}HUlf94_X<tDD-QqJQPj$==DWm`67UDjX~ zmS+h*%Dl|ZG`u|{T*vSHl|S(?cXKlnxtw!3jbk{Jeb|F<ur*)hD}0JiGAA?g-{~Ru zU;L5ZGm*>r2|woBe1os>B|ga_%*gwAZd#cC6E|}$XL2Gx;Ja+XdVGn`u?Pz=Co}T$ z)G+@Xf8_T}<Z{mCG!Ec<?8**o$_A{&GAzb|%+1WaIwj;w=3Z{)=bX)t*q3eDl+Uvg z3o;KgGc}VZhxw<tmFqd1li8O&*^~`fiDj6F*?4VIn0Jx;xr0kMm%})K9oT}^_zWN6 zgUrTsyf`t;|Aj}mpI>qb$8s3EvIA?e8XxB)OvisGn9CoT#6(WxCwz}@^HsjWr}!ju zG9xd48s?tkZf<5Gmvb(saRA?AS9V}6R%0cWVKEkDYX1F6$aR&;Ji$X;!xfysQGADQ zvMy_|6pJx4Q!{yd$Z?8Wxt_B*nSI%lP1%5zScZ9+jn~G7c^A2#JGg{%IhkYm5&N<& zo3buzuoR0iKXWr>toy*TJi!Cp#bun&5gf!$Y{lw)mW7$05lk5qa-85HuHg#K=L`<w z`|QR}ti$Sjf`yrZ|69!SzB_+!=+Du?-*}qGxPhxVmE+lq-PoSZS)Vl-#p2A$w7f7X z<T=gl+`u`U%Kq%d=4`~uEXPRZ;GZL1KM!yhmvKHva1cAO6|3`E7G{3tU<Us7ahQLW z$9RC-xq)*ymHpX^&Dn^RS&os+!9Pd1ejea1F5`TT;2?HlD^};TEX@4;-{PYGd+t(( z2T$-2*Kh?Va1`I+o2<(kEX88X%+yRC7UrJfA@1c0e$G++i0|_qzQ($&&SzPe`I&<m z_}kEs=PY+|6X$aV2l0Kj;%j`C6_}s7nKC5IyUIh{%S~Lv>HL(v*`19U$MP)6N12cR zeH7;3;3b~nPHyBpPUk@OW=l3^6_#f{=HiXPVg41K;c<S)o&1JhaSF#Vf$?m}+APZw z%+B<@^kK+zhC8{D^EjOY*_$odm{nMw`Iw702DyG7<Q{&(g&fJj?94WdWekh*A*SN3 zfnn}R{=juy#Yr5)9_+&UtjQ=AXI7@=g#lsiX>R8R&f!${XD>EqBUWZPMluKg>>uX+ z#sl2N4P4E|oWr5)&mQc;`mD(qMzbV~G80qrMnCtTXLy_&`8Ahv9;a{|6By5itj)44 z!R$=WOMOG0Gu+9IoX6=L$lh$p#;n5f%*R|z%YXWKE_jR^xSCTrp1s(OjaY}}_ylt> z1AqG<%stCp+{F2u!SNiyZtTS7Y{bee$Kou+wEX9N*Uw|zz}1|}@f^zjY|rMb&zg*4 zaX!Qcc&m5F@dwZIB)4!Kzu-cS<Y4w@cQ$4mUt|?N%6!bu^t|+5$ajWE`5nLFQjX(r z#<L@9^F@~6qfE<xdih*<f!}gF7jq6LaSR8u58Lo{#xa&vSf2Tqi#HNNt}8sqJ^X?T zIg*3fnQa)$7#8J2%*9OnuV<KlgU5N0JGqfxaVf`fIOExoHTeRg8O5S}h&h;nzx4?D z&T<zwaXx2o5Z`AjzQ$)+f%%!6Des1PS9yqgxq_c_1}AU?2eA`du{xh+VdiHJX5c^X zggk%p7!PneH*ggfa}0;F4|}jP+psa?_#&(DQRZWIrswVMA@6nm%Aa|d`?#5FIg=Cl zF+b#ce48EEf(=-U&$AK>G7mE|HIv^C`A_j6_wWlY<aB<@UhKvOti{rNj9Hk5=evdZ zC%J{|IE$0mhdtPtZ5YcK7Ue_C#Z0^$ALgIqZf@oR&g6&ufN%2+zQUJSf{!vS|LGd$ zp5`%b;A&3hSoUOBHefA2&q^%FJp8*$n0t*!xSw0Oo-6n{XK(^Xa1eX38ym3>Utnbx zVkEONEq{G0<o%h4xsRK;hBG*U@ADmYVk<Uc9hT!0EW}9u^Jd8NCok|cw{ksaaS}&z zFyG_be3h@T8lT}Ke303gju$(Je82Dr_j4=Pa|J)=3{Kz(4q`8MV|zAdeb!_Qqgj$g znUA^n=NlpaZ#=~#+|AAWic2|*lQ@Ed*ppq^noU@nFEW}@EX@4O#&o>dDdhj1XLy|7 zay!>>1?O@aM{@{!vpd_fIqR|ppW#z{j1MyxGx48}o^KxG0dD68uHs_O;v|mbVD@Hr zc4SMwz{-qbapq@kW?%%bbqM({@)VD7FSl|HS8zUOa6Ct_KYOtY+w*nSXDnk_ln*f% zGx5LnA^#0t;u#+0cihHrxRQ%FlN0$dKjeFSn;qDK4OolMvl2_O81pkXGcbaGwhPzy z8&C5XH*hr<@iR{3Xnx2K_%`2Q3%<%)tj0<#!(uGR+|0}frnGe(Jj-J|z-|17E4hd> zIDsQLh`rd2?b)35S(7o0W=R%hKIUS2{?{g4&vjnnDIVcoZsphfg7Y|?<2aoCn83H# zj!jsPFY!4(#V7d)A7nPB<KL~rbzNgJPw^1<aue5Z8Rv5<$FnE9vH@$c3?FAf=HcJ1 z<l_<U=a*c<u^h&(?7&*A#!4*1Jj}*xEyMha+|M0c!nqvA0qnpQY`|KKVsYkYZl>pd zEkcenJkE{$noBv4!#R)%jAujEW>r4Thxh<*H4i!d;1B$kTeyz1IEj7OgH2eEFR}^? zF_M{?ntwG5c`oy39_2Uuii`LeCvr63<y&mcCVY++`6P?*LFQyS{@c{&#tS^jAGn8G zxRA3rn0?rtof*eimSj<8Vk(}0J>)vcEnLT0oWwrt!Pi-zv5a9+KEzbK)x=!>z;#^3 zNgTr-?85r2$rwhnB#Sa1bMeM&A;%RS<Q^t5k<<7Ihj9RVvMbxNDeJNZOR*R;Gc}VN zhkU2FmFqd1li8O&*^~`fiDj6F*?8^MFz+Jwa|f4jE{AadJFo?-@fkkC2l;QKFz+w^ z$nTlR<($iD9Lr(s%bt9bZTTAOvI0vnH#75U!;mkTd%2aLb2dL>U$$jaKF>-l#bV6Q z+|0lTo^25FoZtcO;xf+XRE}pac4K=sXMNUW45L|+MVX1Ic%y#EcZFwooZoRLzu{M$ z!f_nJer(5PtjecZnvbyn?`KBd$G_@@yqEbscQc8JT*A4W%(3jru58PutjijFl0}%F z|J4n-e&LVY$8B85Sscth?9R??$;PbB7x^^HG7qycHUExtpLw3gd5}Ap#4ovovpJa~ zIheiKosAjC@+`?*%)~3Ngq-KOhg-OivpAT2*oLq3IacHoEX=&j&eZ(7j?atdxrbYr z$mN{NX&k`!*p(evi`DoTA7(CQ;+5JyA0FpHe$6j9kJCAjy&2Drtj!nsG|MtCv-5hb zkmnM=<4!K+JPzkTc4SL7WNnt=<1E1YnSl{JTQlT2!2{gI4P4Es9M7Tb&-QH27g(8v z7|DNL4)g!yF&^M*F5?_dWj`jcGu!Z0zQU*YBy%z&FV_fp&hbZn&qOZgTu$QvzQ?ZY zz*?-vN-V=X%*NFGJ2vDx#UotLFFBcG*^^z_fVEhLk24$7@xn`C?rHwOZ@HOkIg=AP zoCBG_cs68hmSqWMXL??$9`c;wPHyBpPUk@OW=l3^6_#f{=HiVP!@Mgz$UR)f`JBq} z9LoM|&*rSl8hn-&_yh|x10#5?TF7^ir+9>Wxs?k!i=T2N2k<?1We3(`HCAF7=3zFb z=HD-boTqq%d%2aLb2cY%6yM>StjiiK#bV6N)J(1_2e)!PXLB<9vM1kUTh`$7tiV#t z&CHBo%JU(|2_E7uZsL5-;2^%wR(y@mvI6rnH&bH5+^amqz1+k#oWThk#sTcfu57?s zEW^i{jp=ytxsc}<?qCw<avBHlJ+|Phe1=c)LFVLN&xU!I`8{_tiHV%TaU8;aY{S<X z$5=kW!i;1N{#hmD`Hcs-i_18lQ#g)8*pKbljP>|3tFSyv@KL7cf6s(mXLy_&`8B8W zQ}$+eHf9{lvm|pd6R%VbbI)@Rw{Rh6aWMO^J3BLuu`J1=jARa`<v&k{9DncvzvXtW z;R?>@436gr#<L@vu^}t542!WKQ}I@%knal5b2m40HJ5P?r?NkLu?yStb=GGrV_2Rg z`3N6mR;J~xXrC+3^CS;)4>$5_F5z5G=2-S%7q(^-zQULI1Pe2gIhdCJRFs<+_!AFv zH#akp%lQdEW<MtIEw*D5)?-DM=A+EV>`c#F73Ai5p5y`U;s&nf=bX(69L0C|ChM{W ztFSyD=OcW8S(%Er%7@&Sd5%Bwdv50juHs_O;v{~|5BVP7W_vbgeb!_Qqgj$g`5<#L z9shkQT+cOL<bLkp63*phj^#(}%Xj!DTkuuZVl`G|X%=AtW@mcdE*ElN=XsvwLGIxO zuI6IS;RKH2AimG8?7*gMz#4p>#aNKJn2G<E4f+4#1)k;){Fa-!mdm+-Q#qbP*`Gbw zg{|3yuka;SW;qsTAwIyYOvPJe{PV$c{E^>t2b1_Emv9V+vJZRkb=GGzqga#=F%@q` zg?uOZ1J`jCCvgmWunX(6CZkxK5AgxsDjnwj!E^kHo4J<Dxqu(@L%zY*e2LGo2n+B& z-YgYz{KUiD&CQ(8863-D?86>>o%I>bC_ccfyjn8kNah}H;n)0vpK>GzvNz+|k<HkU zFS9C(@*$?;ttUgSD?HCV+`_N<1?O@a$8s3EvICp40b?1%@+`@m%*e}6gq-KNo13|S zGx;GuU~4wvbF9b$yq`Bqgn7U75ce{PiCoM%9LoM|&*rSpnv7vIOR^|4F%@q-?!NI1 zkMle3<YLa@B#z-=_F*@6VjWgzC6-|^7UX@rSv=&t%yZn$&HRc>`5C9M9~0P&4f!<7 zGB309`ePx-C4R@9T*`SI&Vfu|JR7n$tMX}<=3~snRJ>8l{o@%P=eOL>#hk+l9K}I= zpWWDrby%HGurM<)f@h0{d?&bxYdC`w_&(oZC$?e(*5dQ5#DdJj%uLPXA|cNy9^ziE z;O890kN76rvId`LF&1QM{$1Ey9^ra^$;lkcp6tqce3{R&BJ(j9)APSa!~D}c#&5Zu zi#dmrIEI7xKD)6K>##a2vmA@DAagS_uRaoTCi4UjaR-z5C6{n4hp{hv@(s4;t9*q| z@ku_y2bqOwc(YK*`#TSFA2)L?mvSDba2$KE3)}E@#xR;CS(K5?!L<D6VfUZMxPhxV zmE)Pfcs68hmSqV(%)Go^FwDKqqx_CvaVf`fIOExo&DfAnvn(Iu!%V~554lhLmHW7j zi})Fbupis88SC+7mgZy3!ZiG~K*;ek4|5+k@@p>TJWk>m4rU*=;p>cHG@oP<rsse8 zL#}JQ$bH<#HC(|@_%Zvl7n`vmE3ph8U{?N~FXZ@@d$@&P^9z2;ksQe0?85eZo%LCP zrC6Bx`R{`v&tJUAUwDN3xtVLZoC`ROpKu8K@m;>f)@;HmEYA{rlzEw**CRvzOZ<*I z`3=9~6pmv8<Jpk48O7qv&)iJMfAfYMzwk%y=MFC6Tu$a#_GDK!U@ey6<IKi%yqHH0 z{=jd!ii<ghL)nKt*qLn@%NUktN#<fE{`Wx0bAvzfd#>g(j^_x*vm<M<8lxG-2bh(q zc<cU<;|kC7I1h3sH*y}Qa~y}WFMIM$w&iQA%L**T+|0}frsNKJPw)`ea0MrD6yM>S ztjiiK#bV6N)J(}0=3eC??&T(~;S5gT2o7Q=wqkWY%W`~zIhcXJ<qUbwau+voHJ5P? zr?NkLu{j&DCSPDQqxb-`G8J#-@I3K6_izgraux@(54*E7;~2}5EXqtw#q-%ij*~pd zJ>1BzIh~(!I0v#LTe2Z*vn)$6JJa)awvgvKkMcWy$t9e{N&J`}@(s4;OMH$+Sb+EO zX4a77Cm!Y+uHZaQ=U5KoTWrTBtjCHh%_1zooXp7ES$sbHl|S<!_izJOb1~;|DEqSq zyRbfM@>y2k6D-U;%*NFGJ9Ef=mC4-A&HRc>`5C9M4|}jP+prPq@C8<8DHdaX=4J*) z@Rv*>_mAAq9bC(mT)>$e$KmY91ir;~e3?~Qj0KsRe`gH2PVorW^Gi<VSoUOBwq;X3 z&q^%CV$8_<_*aII<1)YJZYD92Q#g)8*pKblj8*wGA7)<OP9Nr9=TUygZTyCxaSBIs z2;X8mHeo$hWN8**0p7=(=|Zlbc$jOsk`p<aAMyjXW)s%ti+q}8nU~p_hPTs(JU{a& z_i-E7awR8nG~eZ0tjiiK#bV6FRQxNA=Y^+vj2pO`i#dlw*pKblj8*wGA7)<OPVIT& zQGUm5{D!kQi6c3fz1f|OSclKE5=*fdGcz?)QiXh1d5C+tiEFrw^Er$I_%7dKYc}C? ztjH%>gc*4s|GLlp<M-UnBqnkiKjAPAU<bBf1J+_0KF)&7!^}+0<cN^(6c2GPH*pQ8 z@e>YVKel5tR^`*Y^J|NUJEPOx`D4QWd*@$E|L-0C-zI+q>+v~OWDyo%M&8HEzlZbB z@q6xOfA(TIKEdl(!}*suo+H?RwfNVSaQtPSzZ~k5+`}#Wf(!X6N3u7&vn3nzpWj0N zKY5zRxSbogm~%LWL)n8}ScC=m)uk|RDZjrE>fM~cQS8h%Jojrj{wJ>FB97!>c4iyC z%&IKJNd9x@0si0f^d}E+7w2(0-{(85!RPr9AK=gDL;s`vl1n&%@3A6FGd2G{7y2CJ z9)8Z*?8gK)VjUJ{e*Skh^u593Jjk_N$uS(tE^N;iSebd5oxhz4^UiV&S8yZ;vmRe& zF&5;tUqZi&T)>%phi~#lR$+eT=I^INzhAkX8#taLn2))5_2+PYGPm&?PUU#M%{TZ8 zUt$5?&)-h@{J5EGIf-M~l^ysDpW=he$r~p_|0~?WbsWthe3NY%!)WGVHeUKE^gqL$ z+{pQy!R$=W(<j3D$GD91*_++jg!T9+^RdG5(61Ep9t(AL{&h6emwAYLxr&Q9j>Gvj z-(d2Q(C-wta2-G66b|5fY{l0Y!)QLtyd3*Om^X~w*okqBWobUfY)r@B4u^hcxtCkn zj|ptSSNY4G9}w=l^Y7aqxsIzil7rchwHeJQ=3zGed@%Gs$_-r2kNF`le;<xN$E{q? zu^h&(?7$aUg?X5be;x?^f8#;!;Yu#zSPo-XcHoPw!aU5zKfg1N2f2qUxrk#qjIH<@ zpJrKRV>+JMALbqB%x^<Ik-zQ>_0Rl<UvWG~upOJRGRrY1GxGf2(ElXY^Gi<VSiZs5 ztju!E$&5U|M}My8mmJ68Y{6Gqfu)#(8F*!P=zpI3xQ$CVmm@fc`I(!~?F#)W^3cvu z@8x{XU>CM$UDjY}KE_)+Lcc$Fg!?&<)0v+CZ4c*FVi{&*I$qosj{AkXxQP=uiXZS@ zwqrBqWp-ZL8v38%dVa~_9LP3&omKfXBbkGjw}k%ZxP|LDji2y+zQeX`%B!10zhv%U z66bRUKj6Ep&zgLkk1!Q)Z3=UK=26b&G``EX_%f^VuZ^M4-F3-VeG}@%9L51`$7Za= zGVHrPoZpjA@k#!=PHryYTy|q8mS;(3Vk&;VHuRg#YJ7%g?)*XafB*eD&Qbh`t=WXj zz7EIF=jFsupW{Y;%^~c^x7dz#Se=C!$)wexe<EWU!{o2R{!{#nQ}_<w<cqArJj}-P zUxt1snaJfF%Kp4}{o*HVFU;GkLci<W%dMQwPuZ0n7{h4hWJaD|8TudNN-p9czR!lN z&0;Lb8!JM;E8M{(PU0B8!PczIa?HXsJn=>7e~5S2{hg=o%btv5EFa;6{9}3OcY&L^ zmg6~sch}`@roNw9czs#ucZqk`+1;)Ff(x0zc)rS4Se_+$KeO=U(lGA_zOg9OtyzQ5 z^9dH_eZ2X3IPVw!$lct`m0ZN3?9a|@!}_er(+k6#V;sl3>yo~!ev1`YipdMY`KP#x zn>d^U*^bTl5}#uM-p};>Z+@6_oCo<0zv2Xr;tQ<ICs>#x=7qk4m@qfg@odS)e3liM zkGXh#PB{M(4|5;aawYGsqd87JkiFT8udxct^T20e-Y%}<Vou^1UYi|`zsR3>cOA=Z z>TlSMo%lQ}vC6E_uRPQ6_RO&TJWp~f*K^T~aNK7c$Ki}*4&Im^j=#dK(?Y$T35@3p ztjr9I;L)k!{O{PEomqqhn1yM0aY{J<7k<Hoe2sNkk)@fHY1wUZ=+}u4GAD0L3j43{ zF!wQnDHFqSGd~GVWIHxvX+Fj|<HPY&*@myPCSTxVe3-Y#h4Zg-CpU63$1<KBS)I?a z0Pp7?V?+N7T+RjjkRPxfU*^5*iQOC%`u)ytxt()4jlJ2OjTy%>e4Lq?niocgd8fIP z8@Yfp`4RiFK5MersL-z<Z;cG~AKcCjT*`U;m>;qk8?qFOF%55j9Om4+-qv#47jQ89 zupOK689v2~ypP95ggFPeoC`RZeb|%@Se7N&et78DoX@c$&khUwPp||ZWdu`(hT{%% z9~W~Dd$Ai^@iiVF68aqEXPm;p?8CNf%18JhlRpamPVpf3a2;3iEw<wW%*tznL%)mM z$&DP$K5WD~ti&?R!)(0%Vd#H}-*Yz~WX`+$2ZZByb0SBx3)}PVx<hr;(Tw7b{-IwI z?_DpbnC%6bjp?|gUpRj*TeAt%@}IupxE6esFY!5MVH%$96V5xvUEIXaIEDAFpL5}Z zaQ<l?;4aSR3??w1by%H6Sb(?Q5B>k(cHUhFr<b}LZ}$$zUuPG#XCv0(6D-Wz?>V0b zxQh!olYQ8OHTeR6?G^g{%xV0Dby%GhSc(Oihw1olLg;&$=eUpCxSR_Z&yK9k7x^TM za8b`N=QH+aFTToGSdw?wVM*!{&QIhR4rK?nU=^0<-E~wlt53Zf`W;~*M)L66VgEj^ z=a(GLfo#r3+|ezZpTt3YpRL)1F^pyb-p^a{q2C`|&o4QZ<Jp_t*@X32iDj6F*?6&Q znD+}m=WO=n-E}S+s%x_}A7eJA<8NI;|Fhh~EnLLUIE4N923zy)x)s&c6<CS|nTP54 z?^_|qWuD_^u4NB);kh@%c|UP2S8@!8vNPN8Wme_myt{5h26Y6_cMkJTatqgS634JB zJFo_yXK@x{dj9uDm~)OlaVytzHYfA$x()BEJF+F?7|VOtYba!UBr`CACpv{(hj@1# zhR@YiSf1Z@49DMH2Vu2(83*xwHewzA+aa9)7mxEGSMYP*yMDmkbpsx-|6=>l?-#D; zmu$yoe1VnuAainDyU=eq8?rXb@d-9<8;)<lYJ7$}+l2iaxqve{xOLdyhs9Wsms*AW zXSkc2xv*u}Ka26~$oj0w$}Gn*EyDRjS*l5>i!l$g@z!f${~z4JB+lmyj^an`#!ful zIP^QlUEIVK{G1~>n6L5`KF5lTV9Kju&PIOCN-V>?%+A@3!g-UqqG71-z8AQsx-0K} z|L=wd;rP|;#{@QGLq5Z&ScC<bg=u)We(1lC3pkT;jAbbnV;bJB7y3-&C+x_Ue41r> zx^6h{7?YUDPdSpm#)ad5=B-yk{RbP@4s{%_)(Ukp_tXsa7B1pv?86>x&%5vAd`$f? z?|uK~k(WdN{hY-~9LoNDnN^vQ_wn}{q2I4O%I~<5UvnX6aTGsdYc}Df*wFtB4{{IJ zaTVuqD&t-X=g0C|^-y1A5)=8ri(!9OZh9fqYk2oPgMU}mhrck9%lR=sWKL#ep=U#% zyYG!VTP4&dxRxvV8SlO)?tS$;%)&I>`%LJ!l?ynN-Pnn*u`cuR?t9$6svP<)<-PA$ zD-a#_-_JC>T`_Dw!u_1fY3#*re2P!<VdmxC_h9{3A@sk(yYIo;r{2ajT*29#%%SYh z#*E{&@?p+J-uphOyYGp5$o|t$h2xKLCpWS%^K*H*aQp&($Pf4$>#{T-<L$EH{Odf* z@Aws$@)Lf{yYDq>udd3cnVNr>33EpABi?<FP)+rHycrdaKg7Mf_kBP~rNeQFy!ZV( zuRk94*JmL{@~`4y|K0b3{G>k21)RyD?9V!^&RdU#et+;=Zf93^V9R3R_{J>Chxm8V zu>TtOa|aW-oS$+e?|r|;r6Qr<86M;w_GM4TGKTq?o9Xy(;n4RiPjCZQ^Amo|5BM%$ zXMLvQzmJCgeb|HT*_=6<k$*qp^W%QreGf#UdO7cX-$Mi2Yw;Q0eb2)ig+l+<{PN*Y zFJW6YWi3|Y+JfQum7K@v?9J|sV=SW?#hnj@ejB-pi#e42*^Qm}dx3EN-S-UqsQ#YI zxquTnns?t55T!1}NdB2W^#6?~c!<%AVv~H~_<F3$r<sLmc;mrv{1u+$5B!1)*^~{K zmj6VCK4*D?6FHi1u^lV39Pj=6?ECVDzT3DabwotkJOBTbxg2=Mba(z2r>?+%QibiO z@A$vtH*v`w6CxtAO}JyPJNCchM|bRe$M`!oyyKl8#j`zk$DVh5{Ej{DSm(Zoi28So zzT^M;73NP75fN$b)Qi}SmF{@w)O0&qhx|!Q<Z>?HOituzCNQ2I*^-SJ$7n{eI14e7 zIhcVFOlcMJUS%>*@d)>G2a}k{<y^p-oXF8kU_3jrB^xu2v5a9fqgb4U7|9&WzzC+a zbiF*n{oKJMCUQ9!a3&{mG>5Ps6By5qY{|xqV>F{!oQ0Ty5lm^}dYH^pJi`6l!6YVf zITvsyCvr50upbi`&yH-#SjI4#QH*2`W?%%9n}_Q=#UtF$9Zcc^&g4Xn<`DK{0^`|{ zE!miHjAaa?8O7o(#0-pJN;CJ1$vnj)+|M0MVj`Dw0cUau`!Rv>?8ugE%s9p}hS7{- zaTa0*MlhwR>tixc@d)>G2a}k{<y^p-oXF7}!hTF(JUg-_V;RF}MzJ^xF_Jl$fe}o3 z-Ssk=r+9?>xr0euz?q!L(Hz2lOkg}avLzccj<JkkG^1FYg_wa6Olji!c!c}8gGo%} zaxUOZPUL6~VLv7?o*mhejTy&S#xR;uEY3oVWDaIv1XEsfy-emQ-uwH@yX(L$w|@a= zatQk|f$?n2IL0!D#aW1v%)yk#^77vG;f~n8pNU+~1)Rx=9L)sAvm;wFmNATG6pOPE zGcba8f6sdL)o>ljJjEltcip)p+Y`B*6FHhg*pCT}XJf`OmN6{OLX2b%rZn>TGnuD& zg!_5#`gIFzpUH_F%^~c^1je%?TQZh0jAj&zvk)^df+=@?7{2e$&#_l|cb&Ua>K#mC zBA0UkXL1PpF@f=H%s9p}hQ(Qkk<7uA2J$kQr?`VjOyqJ-<Y*4z-QT-+RJUYf#xa^v zEY3pAzzC+)mzPJlpF5budw)Ma(e}|yU_3jrCGY+oKSmwRC`K{|Gw^?Z`1#*+kX$c# zibuGgJD9`;oXLqC%>>5t-tP+<+aAYQ#xR;ujARaGU<8xv%FiR*&%56{ELSh!Ob%f` zCNQ3j8OK=0us91bk~x?X=Xqc<Px0RM@)B)d&WRk&A?(Kl#<MZw7|R$&Gm4SS!3>OG zvhQI|@d)=bk;}P&GdYC)n80{8W*lP~!)Qh^k~x@x5lpV*dEgQ5=e_IgEwFtiCvr50 zupc|JB^xu2(Trko7GefQFy-#|T1@6C?qCuVxttR@nnT!+9odriexDX?dlZYa5F?p` zDZY2R_j|Zgwjbes?qCuZa3&{mG>5Ps6By5qY{^*0Fq%;;&O*$<2&UBZ&nJ_4iaVIZ zL@wt<j^+^dV*=yZkuBMnag1gZi?a|TnS&V^!4%&!Ugf>tU+%CyiHTg!i5$%#yt}So zM|Dd!W*nm##o{c)NakQl4WB=gd5Sxj#Cz8poM`)K4q-obWJ@+?9HSY<;w;2S=3q*! zyiDdP?qCuVxttR@nnT!+9odqN8OK=0us91bk~x_2lDtgjDehnr6S<rdIhsS*j~&^P zjd}Nb<Y;vii?a|TnS&|S<z+HYaR=}H9(uX$6FHhg*pD6Al8qV1SjMn83o(*8nDU~$ zOy(&b;ePI55)-+c3pkS#IhqNKXGgYVW5zL-F^pyuBbkF47{Qcku8+w)#UtF$L@wt7 z&g2mGV*=yZm~o6{45JyvNakP$Mlj_C`FVu<xr0gkKkD8EF0SJK|31rJvV<gTLSpa| zvoTSLF$sxLQ4@ul=%Pfi8cSOv5JIvj0py~1tJEaQx?*XqmEKWnOZ(G`y;yot*P14% zRk2=5?^vxRYFpb{<=2aOKA)M-*<BW}`hTA1^?IK3;_Q3A-<kQInK^T2=FA+<=@Wa! z9<f_&7n{VWSS417<zkUoC>DreF<%UcLD3OMKVZ{8A`Xi~;-Hui`@~+cN9-0m#SSql zR*4m2xmY9?iUnd=42q8Ee#h~R5}WQ}aY!5#6Jnp(EB1)pVyD<4M#U<zLM#^}VzF2x z7K-^|NDPXOI99CsB94k9;;=X*4vGn}PwW+Y#BQ-&Y!ahll^79=#Uim#ED*zDP;|tx z)0BR3SR4{FzbDxzeXrOfc8l#|lNc4N#E4id7Kw#oz8DgNq9cx-s`QG(;*dBfCd59m zSL_kH#dfhtjEYrag;*{YiG^Z;nE9MhNcy1Yh-2%NesNSB5r@SgaX{=B`@~+cN9-0m z#SXDuY!ahll^79=#Uim#%ojsqP;|u6wKhK^;;=X*4vGme^ZBSA>AS^Fu|sSZo5TvS zT#SgtVu2VI^Tm)jc8bbh92G~zK`|i?i2Y)Z*e!O79b&uKBvy#!Vni$!3&gOPFNVaR z=!jz{EB)fII3x~=32{K|7yHCsu~Y02+r=iaLM#^}VzF2thQ)j_BnCxC96L$r7l*|m zaZpT%17g3}C-#b+Vu#o+Hi=QON~{pe#Uim#ED*zDP;|txBBfs(6-UHjaY!5x`^7%7 zSL_r!#CEYstPsn^h*&HZh+#2b42feWD!t;UI3f;;2{H3~n?2HZi=CqT-OZ@vDzQQ= z7mLI~u|N!qLD3P%PEdNqVR1+t6cgfr*e~{o-D0QMAx6b2u|jm8Ka5B&7K_9}F<%Uc zLD3P%j#v7{QE@~Z7Kg+Ev0v;Hd&N$%Lu?nD#0s%ojEKczffyF^#gI6*M(Gtt#Sw8> zbicDXAh}=c6MMx@u|sSZo5TvST#SgtVu2VI^Tm)D6diH&IGg?vaabG@2gJ<hK6|C_ z6g$Lru}Q2D%f*OTEEb4iF<%UcW2;rZ;;1+x4vGnJKy<&G*(14I>=Zl1cCksU5X;4g zSS%KZVKH9}iDRpjUU5_$5i`GsIUs$%*dum}onnU=6|2Mwv0RLZ#bSXN7W2iBI990i zilgF)I4ll{gJMD)5c|a*v0LmEJH)71C02;#Vv$%V7KmXnUkr&s(Gf>isy>Uu;*dBf zW<JN;FMW^LEq00>V!PNRM#U<zLM#^}VzF2thQ)j_B#y1n`4C6N5phsVhy!B3*dum} zonnU=6|2Mwv0RLZ#bSXN7W2iBIJR8r72WTAjz}IBhr|J~U+fcm#U8O+Y!{ovs8}UN z#A2~XEEEgGuox5_aqL*7UmO;P#6dA34v76?kJv4CiXCFR*d$hn<zhrE77N6%m@kIJ zpy-HW%and`SR4`u#e_H@_KTU{5ABq`Lu?nD#0s%ojEKczffyF^#gG^j9dYa!rC%Hs zN5o-qNE{Rs;(*vM_K4kLr`RF3i%nuwtP(54axo$ni$!9gSRjVQpy-HWOO-!ySR4`u z#e~==_KH1Xx7aCmh*7ahtPsn^h*&HZh+#2b42fd}O0PI7j);R|LL3nL#mxU-=#;)g zY!{ovs8}UN#A2~XEEEgGu$V7~#GvSiV@E4L;;=X*4vGn}PwW+Y#BQ-u>=4_<CNU~j zi4|hG7!ixbBC${`5W`|nbi}cvlpk?e91;h`gxDwcialbt*e*7SQ8DxXM9QTv5(~uw zF)Ri}M;tp+=@o~?%>OG%NT2!tB|Xx2i=ASJ*e*7SQL##lh{a-&SSS{VVKFE=;@A?U zU(Ea->!9=raX{=Bd&F+BQ|u6<VwG4SmWxGVp;#b>#h~bjV~dquaa0@;2gQUqAoh!W zVz1aEc8i^2hZq&B#0s%ojEKczkyt1eh+#2b42eO}5yy^D{=`vnL>v?o;(*vM_K4kL zr`RDz#VWBvEEgkUu~;C6#e6X&21Q47zY{yM$mU~M%=|wg_j|E@^6wRU#BQ-&Y!ahl zl^79=#Uim#%ojsqP;|u6uubQPI4ll{gJMGL6MMxTv0LmEJH&ReNvsgd#fVre7Kw#o zz8DgNq9cwjRQknXaY!5x`^7%7SL_r!#LVx@My0P3BVw^wBo>PKVn_^%jyQI>>bE#7 z4vB+eLL3nL#U8O+>=Zjh_q()Jk}Je=(fvQKV#x(!Sj-ng;@ASER~!{b#9?tr91#1( zKCxHK{C;h_^i5)gST07yVzEFBi}_+m96L<u6-UJpaZpT%17ha?q4i4NDRzkMVv|@Q zmWvUwSS%9V|6ePR92SG3BaR)a^oyh7h&U_`i34K4*eCXionnXBE;fl3V!0R*i^U?b zP|O!YVo-F%u|t%8aabG@2gQWgC-#axVz<~XHi=QON~{pe#Uim#ED*zDz8Dh64pw@_ zQE^1f{GRTh^a*i5bib?HBe`45{GM)9`YN$PEEkK!La{&$i$T#5$MThaaabG@2gQUq zAoh!y|9{vieTNtotHcViT#SgtVu2VI^Tm)jHecx#N5v7*{qAl;@_^Vc_KCe>r`RF3 zi%nuwtP(54a<ND(6br<#7!)0G>>#CI92G~zK`|i?i2Y)p*eiC59b&uKBu2$5u|g~t zi^M{)Kn#mP(GkbyDgENGI3x~=39(P?6??>Pu~Y02qhgg<A(o2~u~;k+!(zS|5`&^6 zj?T5|9}$PeA#qSlh<#$O*dum}onnU=6|2Mwv0RLZ#bSXN7W2iB7!)0GG*9Ulhs7ar zP)vw@Vz1aEc8i^2huAJQi4|hG7!ixb0x>M+iy<*6I%4MchKJ|a{0xbMVnQ4c`^6ry zTkI4&#CEYstPsn^h*&HZiG^am7!re`BaY2h{TGMDA#qSlhy!B3*dum}onnXBE;fl3 zV!0R*i^U?bP|O!YVo-F%v5?X)j*27VpqLN`#D1|y>=rx44zXQq5-Y@V(f!VGvE(AL zP|O!YVo-F%v0SBJ92SSfK`|i?i2Y)Z*e!O79b&uKBvy#!Vni$!i^M`PUkr&s(GkaH zDgENGI3x~=32{K|7kk8Ru~Y02+r=iaLM#^}VzF2x7K#O8SPY7eI5t!17l*|maZpT% z17g3}C-#b+Vu#o+Hi;Etxfl_P#R4%b=8GY5Y=+V+j*27VpqLN`#D1|y>=rx44zXQq z5-Y@VF(MX=1!7pt7enG$j?yc--(4P&JSZl_0kL1~5xd1su|tfCRbqu$E=I&+u|N!q z`C>>6ijFus-KKv;92VX0Fb_!X7c;-V+$nwLcbA)_kBU`dL@XAI#6qz^42wb05y!Gs z-r}g}ey4d*azY#s`^6ryTkI4&#Hd&$R*2<dL@XAI#6qz^42wb05yyf`zc?z6h{NKL zI4CB>0kL1~6MMxTv0LmEJH&ReNsNkBVue^P7Kw#offyF^#gG^j9dT@$@+*#tBjT_) zBo2xRaX{=B`@~+cQ|u7i#U?Q-R*4m2xfl_P#R4%b=8GXQC_3U;K=~6##Sw8(Oo#(w zzt|`CikaW5?v%bmjEYrag;*{YiG^Z;7#4$~BaZo%esNSB5r@SgaZpT%ePXYe`914S z={v-Bu}O@IRbqu$E=I&+u}CZw3&gOPFNVZ1pYkV;iX-B%I3x~=32{K|7yHCsu}AC{ zJH-yMU2GDgVwG4SmWvUwSS%6?#R4%b21Q34^D4jMs5l}Hi$mgo*e~{py<(5pEq00> zV!PNRM#U<zLM#^}VzF2x7K-^|NDPXOIGSbiHzE#;L*k&A5C_D5u}|z3d&F+BQ|u6< zVwG4SmWvUwSS%6?#R4%b=8GXQC_3VpN9Ru*6-UHjaY!5#6XJl_FZPMOVvpD@c8VQh zRICy!#B#AnEEEgGuox5_am-PE#9?tr9265`pV%w*h}~kR*da#6DzQQ=7mLI~u|N!q z`C>>6iU6|^aQm?lwf70JSL_h0#9}clI^u}h+l1IFc8FDCu^1K|aYXG|LhKbg#452^ z42zC9qV^#n_KF>1l~^o>MMoUb^_LKP#SXDbEEdC}BaWzkC&XT{L#z^u#jxmzBdSjc zu~+O6tHfe4EIQ(d&SygG6+6T#u~-a?08IpzC><*x&w_&ERc@njQ|A2(w+AJMTdceU z<u?oGF!3oXUxslv!-rd~yb0%ra&NnpkCK04r<E^ae1z$r0SC5UV;srwZ(u%~+w({l z<&m4L{0`j4{}wBAyhAy0m6iXc<8|}G!1ha=AEuArIpW4~6T??sYvt2u4{-)`{07Mh z$@^#z`-o%@?u#goO5V@>Kpv9J`zFf6lAl%n1||35u;%zz*yG>mrso<fUxu{iA`M(` z=k_ozSjyeJ;IaJ<J7s4RCFDo`Z%~KrN7#+OksRmquur*3@&yXdddn>v=b8QqTl~(e zIzF!pZY{_Q{d*Pu70LX62yWLZKA&gj_E*{OUuWe_vNxjqoQCsDd;EVHZoTgD75-}q zU%1x#ABW>IJl{vaZ5QeT<#Nf_$-fuJ<#xCHha}(U`k!n4A9DRA=gNOXGOttG=lcz~ z{oR#Oj@;HuE|mOt<%iEZapV1wN$*is{;XTxO3%$u)1U8~;C3tO59J{%I=tVd+`%+p zdsuR}!gKsVf4*;mTc7-!B>N>-9c%r|RKDHKR%Tr8j^tgaug2bG*8eieRgy23+#&g7 z$-R<mWuO1Q!0kTem-7wWj@S9*^ETXGcGGi)m0xh{=V?}6qw?*?{4%#+$sXUQ!R=t# z<N6G@x%5X}<#)ZfEoJ^7^ZQ=h;`E2jK3#uZ@S}gX{1@W*EDm>@nIYef`kwB82Lh(c z-?9Ea-v4sj3#R)&Z~eVUhS@%u;lB&#D?NN4gmhWs8O3&-Q(-9Ge_clUj?VC3lHva{ z@}3^Q2lXjkz7RsXd_ji)cQfM8$guyv8U7_1<@pfKU%LG}Gs3qar|JF|WynPt<#kYo z{14Qx^!U$Z$PZ<t=V;W^^zgH7dXnesdU&S$ADdzC&l%}^CL@0<Gmf`6!@kA=$>UvT z{j&hGU6vvLB;)v=jPuR3rl+?qqrP33A!FHfT=?OP{BF!BpL1+_Y~t{{H=}<1B_qF| z%dmfO#`!wa`X}@MLWci0GSWLUL%unqyn8e1<JB4A|C5p4*%|3OHzWPJpFt>Xm6z03 zHng<X?WnD+X>7XEsoYV!qlQfB>vpu&x7Ib)Ls{Ki+fZG(qx#A%wUte6&D(1$x7OBF z+tAHz4V9O*RX4QOT~&)9?Z!lHduwe&Yh`P5ZEa=CRn=Q78)~nZ;E|@b2XF&5Hnmn( zZ)t39b&p(qd39ZVWnDu{Ep<qu4PO&&Yq+$srn)A|BQtRmf^2DQv@v#6*Vi}JRPJbN zt!=MtYHVrU*4TV$WfKjho1Dyt$*JF7xwWpj^-371NBD6f3S(QfQ6ptGP0_~2OIuQU zQ(Bd#w9~_mOH*A#olVG=y4D@lO~^{7ysc46n|o_?Yi;$``nm>YUEy_Ft!#tZbJp5e zSzot<p{$l?Zd+Y*OKatpTKsII52`^+txX3Lv7@e~rm}I{Hdm*Jwd3XSrSWcl%6;Yd zFcXVs>HrxrTUsicnrmxpc$>N{bq$pbjSbt{>gy|+#n$F4w<}9F!1(08o1dH9@nI%O zt{Wiz?7KR9(1zA%Gfq`Y<#=_PE!V@^*y`rYRa-L?)H>TOZChHKt846;vq72n=GyIb z4O>^#HMG_?UtY~i=<*hG0kyhUO?yp!b&J*2SM$ooB`lSW$Sb{aOLfhq^^Myr8=9)O z*S6Stv?5yB(puYOBP$&ZkZ|CZN_)vR7*n+hQa?_Lrc1Vl?r7YKW~q9IA|x}LQrW_> zsW2H~E!|RAJ^rv(k-QqW*0LOs)@BpM+L%OT6LCdzbyL&0pj&O*G0`JKpDOp3rusTG z8m2&_we_w!8$idmk)v%W^A=o|2<%i=R&Kefwz)C=6tOzjHEgpwYapd+VH3hrhB7yi zY=8+0<p2@gi$A5QM7wxt?bgb=9ZmIVHdI5l)!_i<Fll~h@0;1;quIHHO>m~aj8E!k zvz_6kgE3><>f2gSv6!*6Bg$e*Z3?l)_Bkz=nvmm~Q?v?f;nPe^QtZ*@x&{O}_x$sl z>Ke*W44WEQ80i{n)2%llO6xYGNhZNGn>!jWuXPKTm!7Qx&9#~OXf0~&c(uJ&T;02L zZ)rhHy=k_E+0a;NkCKc!iH9!Gwx+Gstw<<>N>kIggWaG}v8zipNvT{`s{Bo>k*2oC zPifODxS}wjCPuoSjhFP|Va>&t7BFqJk*3WIwWYeH4y}J{b!!XyF0@~1VJFw7*G+SQ znivx*V9LwAq|EpsQ!Q&LwF<RvYu)8_TgR1innp*fy_|!jXm#_}v{bj^{8Y1-NO>r@ zEi`ipr2O1cZES3*mDZ|wE$NELIKt%GiI+!hdsB6TP1^WN%N;${MC<C)lb#$rP4H-L z+=hO-aYtioZF&Ti9+S!j0gaGti_(fCy?`ePq~fmLYR#ry6=^o?)nF7RK$9uSv;b)e z6ToIS{c5(!NSR2JZE-iS>q^tIN}EPb$8ygTo6FSUQGGF(Wz9-UjWIPr>5d=j8pefn z)wpVn2{wtV(dT27+giQFbjGRS`L_DT#%8Ox)rbw%#9%eG7;PIhS_xxowP|TxmCcJ< z*yGG$-D;0P=<2krD9j|PRTD!MI?m!%D_5-!r?ypVPB>}J3CEpu(wcDi_`+52SY1fp zRfUBotbq>xMh=IordPK%?x?F-(a1ZTr~mn<cX$hg+az;eh^Z4NpEsjn?AUm}$ThjC zwtC%sa$S#`E5jz23LH%fp~J@Qgyx7DuCnri4ScumRGVur&A%hfjrdz@x3q0XgJvhT zDl6B2sN{oZqz5tXYH231$E+qd*B&bvw@iDk9XG;fCzi>i_NupRX|BC|YI}Gr(QNP4 zo*CdEMrQilqQ$>ynC+hTm_Ce7Fif3j?^fAy@x*_%hp}M2J0_jl-Vzynul5?ZTw+d0 zW`4gXJFdOIyr1+nRo7(N`&EX$Jj^R(Y#Ha*=C}3ACKlg>^Kn3tj}=dRkM?kp7?YXl zTc+#G&2P<rwP&vn-tjUCnfA_=J^b5=*>3zV_ITV7L*`&Y3R?-!cDStU!j0j}Ynxl@ z8XLkVt~hQ*VYmP{D-GM1pI8WC#c`{aIxWpLE7juEI4d_{W};<fO?7Lu7URR(mFpX? zz(^9edn+%gwVlcGH7i!HSmk(TJ4epS^LuB70*B6e@jA96_!kW>pJC&wEZdf22y7=} z_e9PwiBPYcC7T|r3pfX`{l67Pv)5*o#e+3Yuj9vxO3r^h<}`$5y4cKS@fl^u<N4RD znfUc6E5LMY@3*~QecVY!MeG33-m~wtt^LIIo|jF6=RS-b8xz83RHoX3nwK9@nD1-d z#BJ|Q9YN&x+TK5-tBUrRmM>iB@LyXgbP(=_`#s!zr#95*k_$>wazg2dq*U&bm(j2^ z)3?gX8gw0X4cn#6?2p`ZxkYh5=3Udbag6~y-2P*#{^$io_@@f!fed>vG0voGZ>s)i zh;;>96$>64|9>ZAo7CP^{Sp5^irbxv#s9a=*e10%Re$s|H7xv28@F#Qw%qd}$5Agm zslBQCqYYXgtg>dDBR?QV3K{m^y+68J_Iw=pVB_~iGqy?XP1PTLUF%tFC%MHoSf>3> zYR^pAOwu1cnPKnV_h@gb{^+l=w;A*8+@5)l_NMBO&N<uKar3)E?Sj>s-;Dg4yXTtL z%C?3pFjB6pEL)!z*5P}xxh2f6<M2KEJT-5Am=CR(EyG@Iv~pWBX27gx=Jm_>esjy$ zh0pH>=u{g$iXmzo`bl1IQ}mbR8*RWk8R7R7xGnievcnmdK9-BQ)YV_olS`P#B0PD| zM;&JjY2)co(`DK}A7tj2y(}Jif8X1tNbC<KA1b-9WK+on=SOzF9xaW%Rl0NUX{9?~ zNtAy49i}Pw#&#UIwCjumkw-?ok+^x%BliKHN6tvx_ek!C61huvH?hZzZRpsxZ$l@R zem30XM7qqn{V3BVcckmP3};lOv3(nNA80*HUS+X&jCy0dF<2U}4DIJb9Fe%6u{W$b z5ZRq*of(M-BQcW%8#(vWiS@Y;jFdj|@-&5v#PiSU@*P*^8Hv38Y-G`+k=XC-@pmV3 zcYT5uJ*Kfar|Z~o+0vJgfU?~6V`aG;MoagZ)^TGDhmTc;ww3HVGvDJW*?Z<8IQ+{@ z>G5St|9<&l8$EyC7`wuR$w>KYvz3U_*tD{k$@|9G>*=LX78{A|+!Ot1$weibOD-;{ z-2A9a|8hc1c)Ygf>@MF48+X6ezAAEHFp~RVB9`ci{O1R(rIBZUAK5uJZGhD#l6(4( zOS{Sf2O@6|M-~n4uYU(;V&|A=fR}M(=kS5o9^00?5LZz0d|z;WY3!-e*v})ezn66# ziBL{i?2opb_L(}X!bqkn0Dq>MY2MH9Nqfl?d;E1!|A1B080vha-?Qtnwu95NAKB;s zH_kreuS#rww43RPbRAFGTHR*06}by{QD@TozWh0Od7q<AGv0YWV@)%;u%orz88>^= zI$msXIOXD`ra&FcZyvY0vXykMsB3Mg#Rx@&)^)WwY~!68%q=<S-7ZafP(V1W0n}}8 zsNEW-88(v102B}aL-<Rb%bIa-#XD#^Fj;W9V-jsAM7eP2z%#j$*y=QIX{~JLlAhFN zs${&>;?y?S1un<VQ?!aL$kA5EU59Zvqrq;)G1G)@7&DQWjA5h}6c`o+wwf47INH?e zW;FJgwa1DlGSb+vJv=VE&9$x7XmD{bJ6+j^GB{z48+2m$h8@*gFRw#|Fu}JvI}qQ@ z0_wm?*-Q#y`gW_6blF7)2PV?yCmYgd&76kj+RNIo!iQxWE=Z)sH50IIR4XW^5$bKx zq?^`MYqAm<i&COW*r1M%pE|Nr)7H#oAtyS{q?v59)3iy8X}T6hi`r>+N0XqJ)jOBf zqmSgerK?LiS{zI=ZmX=WscGA><;qsv!fvm@vMZK1njH(A1UXua1N8ykNI5E0B?5DW zq~$91<Om1>q3lW-=O~lMp#UG7m$U$GRwk%;m0eMJ1x{VFgXKrFsDk-mr@<J<>Er^p zV;5RYY1TUK;#bmv!@D}HMYmLMsYg9XYOpS`qq_OZl%l1!rV-~MU1e8)v0RQx$QGx? z%=)L#OS<*mP6eY-FsI4Nk5XxE(G_C-TqV+!ZXl^{aZHqPE3Hn8E|}B>lzs)VonZav z%}eD68XN1;z|^$XVNs>Qth_s{KXwsb$4n`(9%&jKo0d#{i_?sWWi~f9=k|#KCvBa> zI*|giO6q7bv(<H=Bw7@_wyCiuD)%LIt%%^BF0)MPuEr~bQf|#pwuGv1@^Z{oXD$FX z+e)o@enRy`Dm*zcUSYx{o1IjsOcl+VHq%5;b5<q~SZSVJum`tpo@6scZS30VYF5T{ zrJ4=X)bkMo8x&1F1cpUrq*HoVgpX|@ZE)j;&MciNs9i=w>tGglY&hdaICFj4b8aus zlpE)~tpTk^s;VG-vU=d+MFi6wY{MfetgNWI0s^uIrG++2c1UW}_C3~&lHxuj;abm7 zqeY6^y4MtKuss|drq83J-Y%731<15qtu?K9It6RFNh#$*x{_M9KI|c+F`b3$Z3Os7 zn=9Muwi=?js6qQcH=aQ-E9_2nYbzg|VGr9>*9_W)Cv%-NZ$Zjxx3Ry)GX!<pqv&-R zf~kW|oBS=UtEq5mE{!5-{AKgoz{zW_FxE7-;fh8Ju%oVFOB<SCG$D|1PFx9#3(@M9 zsEJAktXx`qr5P*Gn%vNG-2oaj<rXarhx&*7n^qn-U#(cNXsN~ub}hR9%eYt8ZEeG- zgRbqy#UC~<YE^2m^w!e0V+ZnOij}g8(0H-$!ELeWgKS@7x)q~J>tHU&x(mXyr$Jd5 zOLV!Wj2rC-n%*sqrU2DPnX)v`N8#!~%4{Xsq7-15lX9WlY8#S;Zyn||VZg*T93vA` z;%T*mvTMN{$%HV^2-Q{B*P(;kuByYdTF(Y7pEOk0Ptd#NmT8_>D`r61!7%-%5OCqR z!%NdgngLX@Yfq_6sp1I?lnnbqg3JEsup7*^*IaACCg1jr9Mo;y+RVWndkvCLN+9!a z*~W$AA_g;;AYI86J2f@7d`&xP%I>mytHI@9WHat$(}<=axhQ9bT1ITHZNYLbDzuT% zSa3kt+Okz;*M`QVuGJLnIK5k@sgS8sOX-?xv8Y$w++Yr;u>&5sV+UWkt-2lq!wh9> zbK3-+`(POdn@z1)<#TX-wXAM4!&c)?tqfur@Y1#>2fc#=Vcpee#;^BDiFUHKodMGa z-8>oQsVj3<GCWxrw*7Q;l2T_VBd8ey@S&~@y^Uv%kl|y`uRXRs)d(=|7RTJtpm=f7 z;0GmPzyX^*XGUQLaPIkYM|N%tnH*lb3Uuu30?iq+)ygzKb*3+{S#7DbO|tDCY-{TF z3RZFl5gL&;n2_V5NvPa%WfPyu8h_d|M0<u)kK#BfC%n>x7RQd3*%nu~n+DAMqy>RI zJ`NRVsjv*$W-d3~_TlPqZvgA@Ko#P+qIuZHJY8uo5qoFWe5F>m&1GZzMmuakTVo8{ z-x}l2JkjQ<Q`QX=+gQ|~BlC>6+2?kkMvZ54(1hnaopy{n>d{GX7-}5m7lnWahM;Rj z8cdgj<!)9#sLTR6-R6ikrLM$Q(muZDYRto>uArsvWaQ+-5PHTm8E*X36HqrbUa`8; zthry+#^@=z?SwT{q+fT*3(37S+!KKMf~RBg<YQ|k7N2mRfrzf3xga2qyGj&cLf}k& z`q9l*&nFTyQf01U>D`0soTRRsWE-k~8p6EEHZyy|xyDU5$k~-r-6`iQDb<^Do~a2? zL_AN<Eh$y4obIwcLhY35)l?{%ngDmz%i~<&I`wZFNaw|w!4Gp&BqGQi6OJ`ytfFLc z-cPJEQ^$G_$(bt1(v+3=kYe|kE<MQ!-lTok%jG0N+!JmeZ!jl58C{MmMYlp^IjxyN zod2i7d|Z~@n&xpTGmm8__#Ef!@<68Umvc`_<<`rJ<oPUjD`9I&<yOK^rBs=Ra}V=S z%C_rtIY}a2uYV<DRl3J=PwgbJeyY&!D!j+x|EY}IUXqlROtDr7QlVax)6AB_jRJC= zGn274r@~v8Ymon;%+143HILu2<&_FD;pF^(DTtfdRB|U|+AZi*kO>8TyfW>!Y942T z6}Qbu1-W>9!8y*_305YQuG==c^#pBXrj>hT<$iIJ>)G}C_S8XKuYFSoc|u;#P95Y0 zdHrhYAaBTPmX@q0$&nkxmke@&>s*;sO(-fimM0nHJlA=AQZ=D&y0Q4bzT7;{2VLiJ z$ygK4T#md}C4)?;BJUxHXSQeDV<xjbbC8OxHI8>yY2L{>r{rW|CC+=0Q<~?UMG+4s z<axZaa&oNTpP3BEH~$2Z0kOt4Z3+BN&B;NWV4lZ~k(~=$Sl>I!AZMPZG>`w2hX1Rh zdge@krfF@~{A8?Lb5K8gU>N_Kt<?D$Y_^QUXO0Kv94BuPtelAB&SesEa!!SFUM@=Z zAYanr`~r9#hK0BMWPV`a;N)=-<&b$EChgFp5c9B9i8#)J6(|Cx<>(oud3ZJ_jKGKc zVUIc{U||jl5uf-;X%;C;&e1az;Rr>@VT8pg@1(^gif;lOxdLZuj;DCKJq<kYX|&`x zNBNzsfYs8{(QC$u1q(c@@-_u3az2bSE@jYF2y_g!v<E$My^L|FKQ_l4#c`IW1wh0V z3!G$lh%5chVYv)nn3*c2Y1Im6iqx(~5|js~_PC6EJI<Pv#y<7bc)0s$Naj;dTxHWG zg9UwE23fqkurTQOr)7KHr((SPZ|5j>ug}LZWubSWpQ8qj7raMjEq45O!o`1)^{&WT z9CQL5aK^D`eKyNWeg?be@M&KH{66m&fp1{<`F!623VbX54}t8=e5+_}5UvoC<~tGA z{9Ii;g3_s3i$nhZK>7_smSio?4~Bdte)e!1=?{(LXVr0~ApT+92YEWXuW64WR>0#u z6z(T!z(4KRz%*a>(a?BT<A?v9>6@0r6nkcz4u$z~viV%tbY?G`KUs4jZpZEqW_#bz z>btiYiY3_Rog56#JK0ZjyN!rMIoUVC>Aej<r%>nfl>*UuIsOlUzd+H?o5{2vi^}mC zBzj(m`CbDl9)Og`e6NMX|AwD;F!Jp`!<E8Wix2jn?@C8yEk4B0XEc6`nmuo6*5a^# zI_#anc*kZfF7RIhze9Pv<yni1f}wfKP3f70LSswMm4eR9GZ=Jb*5b&l(7cuYW<=%- zU*_>7A@V9e|6Sb#H>d5+G%4u#uR-t|8GMZmz9w}nYRs83ks%?bpa0wZJ%%sJT3iA1 zMJe;pppLobA;FpbTZHxQ$4?asF|Z;x3WN^}ggv1qxOkcaM|co1#DU>1T&ICTh`tbO zE^Bz;B#5EV4e-64zNbJe4lT!O_i5MzB_8kMglBdTj?jrvoHNZRVbBSk54jJgCU80e z4SGT$pX5@=L!QtA$hRYnfwLhGdqS5({xprA3weY_&$ULGf4Gg&k0B7>-w^mH0*!h? zFG4;7XD)Ct<TpH_*+?X7K%g4(m?yLlGV4cRE98!>(9y1354kfdv;s2EeBdU?-C3c_ zAhR9@;*fi@LLY-{?0<^ky`dQ7TNwV+4DSuy>&jn%+~W;>AF|2xml)q0`l;*xRmgqb z(61ny^xO-%-y0fr<!?hC@P@odYd`J(0CK_`nhp8u$YbC^$Q>aR%7bZz@}Mo0gAiyv zPu9Z-)ENpbgv@I%Fi4}J&}vtHj7CGD(_Q&-$b+E}UkGNxKLL3t6uK0$vG*k8;ZW#u z$SkP9(~vu7BN0!hCE{tDh>yFGh7hQGcBmWjkC>BZAtz>sicvLq)dgOFJT^PD2=39@ zkbe!ir^uPZ%9z)U!(=&guZ24}&3h-Lo8in3`aTDAWY_xpKo(&3c2@UcS88Nq@FFA@ ze)i>T4EUNPBVED9V74o@^MdEUAR8+m;|0$bE*a^%ti^@?Q(WnKT>k#E-FQ1u@%<lm zrCqq*{o7q>ch=%^{}pb$8*yp+Z*cuOvldtRZ*`?u*5atY7t#-y&YQCqH~INGj2skB z_9wCyw>#d?z~eq-BzU;@4mclxbJ|7I_7Xwwx1kw@bNa$*e>IxyhoSL4j-Ri=Om@Kc zBOshz;%8rFavxzivH3JosVOH{DrY&p2Fc|9LX?w}&9~Nh55><vq0gS?n}tg<Kl{Te zgBOo8SV@CNAdE4w1qPk$^J(H@{FFeS6Y!k{L~_nI-BK&mITyf0FqCtFY3$f$7>#M{ zTnTNX+koV3Vlr!B<S7PaGW~H#{HKbX5Ak$<8B#V{g`5hUPRIKTc<g{`hR=675S%gH z&v%-1;1ZdU!_@C`r5R}JkXsbx?NH5paLznfF_qBcc*Aht4Rwy+_bnitv)=zO*vJEI zpqbYp#bGq(3>Ly$kZ39A%&f&T{8_kYjfC<K`KLqrB;%pP^BwP1aPq(Wvwgl_0Kx2B z|BLQ9nG4HKw&~%#Y|W2C)LGLH^3C$iUj?T#|8)F%=3ju{tohsV>vgjCAe{GU{Op1p zSmyf_&=eT(_kyN1dx*)s8`7Hy6xfSOh?gDX;&ii`1NS!>cd73uKrrwD|F1!w)4;V% zkasyk@E-tj5BKu@m2bm2?TTqZT%i8ow1auodc5bs<0Lo(NBPbJLV-{D>%i?$2X2Lx zU?^~_Ipr}|V@|m%A!*rci@l%4PY(@D^W6aiLm~e+Kvv+;Y^G)o6K2vr=mZ84`U{X} zAMcr6G<&%x^bH6na?rklEmMfE$7rUw5@Im)9K<hCWJebY@#Q>EQ(OfxKjcHz8KJlu zVmQQCIsTR6aS#ha$3i?B?bhry5DT5`weSk?^`!l<GCRwY!_(%O!QUB7qW#%{05i-F zD}<BH{wezkM%{^@pD=3BlS6HKRLV1Kgu58_KK%TOVRI*jO&!Zd;2SzjgugSwL7wbC zxQgk>!R!T|?6;`MLRJo^V#&LiOiKvIUID%?WHn<gn;0vV^Hi)kb%<b27VeZ<;ogAA zf#vz<0i6M#CpFf{L8&^S&Cv6KxWH@{a_F-V=VGK5I0Rym8HrrTZesz&Vkes~^YK28 zpRKf7;N#1vB7qb9*MMvw0%lmW6D}4_;1pc&{ureH@CX<z2c0?Dux`>9bWD@m4evSA zy$hlK5-of?7z}*de;=HynT~I>24<fKr}qQ+`5uED<73lQ75KdW4<KI<9JmX?g86~F z{C{#IQsaLsO$z!Cq)8!X<|i5PZq&nBk-*)_QEA|7h&c0J`h5egS;4?J{4-I-SlEI8 zq0vL(;%GK-4<yI`Gn`zOOQ4^kll>CBynn{ekqDO;@T~$m@+$o6z^~x;H18ucvKbOD zvAim_X0@(V&Gw7e*a+@!^R}|_eG(F1>Yax^xX8a8M>Fxz>lXV@fW#L%=Us^&G8oFc z(hN|UIBFa-Ky@Xw@x=(vs*;DUx58fvX$4Mh9=hI({DY9pLD_{m*<XiM?|1NXI+B(b zJh+@G^yT%NyR6^iLEgOk$7SO?<FfGsX5%tM`6EL<$ZT8-$sGG(_8~X8QX*^dBL6Lr z7Bb|Iaor;uKQ`Ggg$0exhASZ({RnQ#;4zlSLy%r)<Y!nSKXd(_V{d;tGHXIUkKW$T zSI3wn3}bZX@qfe>f8kyHagTqiEB?~E_<E1O!4-e+UA)udzuXl^y^D8w{MSM>rS%%d zXdeF_h{y6A{Tbs<kCVNg6@j;S-nWsmy-3qspYNwY;oNXCiF21RZ@+<-Ey`Tpr}|%l z#7k%H8kXQ+UFrC&#dG}!AZ<aln2U=n-#-V3you6DEKk0*>whS%WuKhA9ZqjEex^Y` zH+YC=#&r;8?8c9iy$ipGX7iZYpMcZ*Is6>LaM@}WO<4Xo+5HUgL;M`e0Dj+bKxpov z{*yt5n0pxWaH=aU;3e*T4IZ6P<@tTL0^z(;|Cc~>BF<*`uewqh^L(ExZDgLm?@H$& zm(CnscBZ-LaI)8-guQ&<{m&34Z<_D7Kvmw&sVaF3jlT*li!kqVH2zme&+*Lk(l}pM z%@^$Fp>@Emdfr{8qM579v=<x#xDqN_@+^N9rRtx9$bVzxuX8xcQ+@=m9<%}#j`w%) zcpIv`n}Wf-o6OC&x$tg6k{s`U;5!e|^L)OAKq&7N6Q6^Wymd_UQfN)0Z6le?H3mi} z;UMQS?u7^W^3I!I4W~2zWBB#V{|tV!=6@5vUdLOFa4*1_?f2~mBH8m(qsYT~jO4I% zAqyrs1UiZZ^KZm3HR4#-EgzaQo~>-$Xovlr?=#YBmcm?DLY*x1AL2@A>Wfl?TjZkH znZu66oI8(`bu$9;*3zGy?RCyW7O)+5JCr=CfBIoxb)7j`-*KHYvb|&FHt0dVgXYdp zz{8n8j9<_ESMi%Q{~i2#F$tJ+!u)wSm^1$v{Ceh}ir*~Ty=;PW{^8j?^nyybXFiza z;UPVq!?#(HlC$7a3KwR1*o(P-7iQ6KVYq{SAI+i{Lh^-kGyBI|={F&5z;7A1v*1$< zcVjZ#*Q`h*HeAexTg0wr-skY|aYt|fIq!2!>JdLNN>&4B(c^UQNe0+s0<dz;+rv|8 z!|q|&BbcRmdzk7YUZ(RWZ0?SDE$MU?{e$j1lE&^Z#!R$3OhGKdgsn5LFBzcE1Te<> zXv|r3Gy^=44Df&nP-2ue0KX{UEoXqu#>FqK9Ptd=L2o%b4pdMmy!;-^7Wf|&%C7^W z2UTZ<n&4Op{Xtu@%w@9%?pB7$&A-ZoxgaaVUW?zNIcO8Zgl>kOcQFT5Kn#X%g~+;U z#88NxMpDcVeGej4#y1@LF`O(xBNl{Mq)D+b^cZ{(<$-9qD0F}#PK^<ZLo<;RX4i=8 zLyI7;cLPU4B@oYb#q!YqKz!8|D?)qH<5oG|HFGdRV6qO*=2v&T%kc98<iN`Omw{kl z#1r}(931roUc^WYVa`Jweqti$<m?L=rxHKsLO$5<y9g*eIM1}QJf{cqCdahEMw-W~ zzYbxHbP%upMpw$`)qfSFZ^GQcnAZzCbAAA)u43;`;Jyyt2m5^8K<MCE{yRX{y@PXk zl)E7ryPPj{y#GM>??UAZ1cSbSpOaQ*CN#i2EdDus{Ifl*K&mYM*{m!}cp>=nsCO2> z#z4!)1zKim)W3}f4`#zJXZR&P^gaF+Mms&_<mKdFX)h;!NMzov$@+V%slVoOx|L_& zS+tb#!fyTbht1JUlENlQi%v!WZ><}^TbrujwWfkEI1d44-k!YlO+$0L8j~ve-DTSg z_U1GDteYh_^BdM3rT(kdeHq<fH*PdV*HHR`^<h6g^NZHUS$s33{C7O8q9{xrCI1~3 zgK2E?9n<L9e?&zdo#e9+7xo~e|2z-N#^X7Pe!Ob^=P^@9-3F1V_n${oM|)u0l<EaW zJPgIffq?%)-u52d3DFeOCKl7t{{xYk^4q|N;GU8VssDT)s(_yr;^x12=@Y<>5RZ8X zKTD0)an2NH{y1yti7@vh{FZS&@fQsF>9mkVZpd$CE&T`r+yy`9m{;)Y`Xp_AD{C1S z6Fpd`K#&*l1+F_Fa&yaL=A&6lIUV)}{Ep4^T=qKh@E`ar%SCBq&xeDPee>WrW)prg z7fom0owf9<h*HClkHOIZ2e;)bk%F_VJNejwzjDQ_G`0FjXWnDWuYuYXH!0S<$CqwJ z0pGx^EdL^YT@U;lp4sL-v9uTgz6P(A&bLgkhw$rqyK9#7o?PiXOJ8UC?*LbQsWsyG ztCs#RisMa&C|HiH7sBD+zKm~+KaVAG0~{C8@pU-1)A3U{n&DW^FP+^fJ3n;o9k=Wd z_%DK&Erppn0q**^|IFndgQu(J!Unf_gG)IHa;u5QVsbt5-2jg*JrV)<wXCJj!LgVr zHYMkVILr<C_)@;ZpCz}H^G2UEAz6fOh{bNmCzf7{0Hz4>FJX4`q{`9_=cYYXmMgxD zgvMpYtw#Qno#jlryNK_u)cc#3-h#uJr1Nd4sieChie<@v+0y&nq*o!NNxC_f`#``J zH)QMb1d>oI@iJH4v2-WmJ<nov3f*OD&cSl?T=-Qs2D{O+9mUrkn}%SwX$aaO{sDtn z|8Cwx9Q93ze@TfiL*!Jk{|5S+isY`X=gGD|wsal3FH@0B(w51?J-Gi9OAkQ+o3vG| zy4<cyCT)O8yVb)!*W)Sdkp7cN|DVwR%Sifa&nA=bFEimzVXs2mpA7jtLw+?a<X3IT zghFsKmz(FpKQZLJX(8`5A&>JR>-m4P<4D`o{*4WybKG2dJm=w%Lv8SLbUSN~gvY%5 z+%evLrq40Mvir=KY0U@V@9S1C=<DWTj<^#Mech*{T$gZQ<ondcSU6q6v4ro|8al@q z>C@~`oi!KJ{X^Hl4^swyNPlbK!IXiAQU)Hj1{z?%d!-C`uQUeCpzTW2r>%+e0PXGp z+EWK;Po?mx)B&ze9pD;sfaC6hfq7Be(b%DGl;6g6j{6}!8daL?K;|_Xk2TNokT1E1 zd?|Ivmr{B9L+X&P@Q_Y62awquZDsF(Je^$=zvXH+w<mBfNw?XTcM>dmZtj(xc_~}p z)UW#%4xA?QQV;ZVX5+E>_6%-xqv<meD!O?~2F9}HtsXe1%pJd}$nRR3msa!ye|lEW zeIHzQdU4rn_y6(E6W`pHcSgyBU#so%{o}X8`~JG@`rox)a#W=6y1?J|ocO|K&mF7w zgg)I?dGf!nUii%NX!q8#buD`@eC&&DSKl^v?me{~v+u3mTYvG6o30Kl&TAfS_+|av zee1q<-T9xH_qFIh-hBI5B#w<u8TKmdT&~=O{nOaLg8e(#_h5ex`^(th#Lg?6BY<PE z7h~rKH>$9=W4{^u7qH)hotM=R_7UuFV&|P8qC0Qmew7=$9Lg&xVB-x4f;s2m1rVP; z#HbwJoiWS@^fV^#K^UeTVfHADJ`m?Dl+4j3<NOg}xN)FE`D%5-99U8wkUtv`%BQQc z@IH?+KbXpmx22R9a(sb}_ji=H%Aa>uJiq)<>?KIUk%uyr<FHL-IDYt-8%K{!`!>iP z9cwNEFw6(}gN*}7I&YM1-XqfX!LVHn+y7D?d8<WRw?jW7`)nu~cd=~qu9vb;ws<?q zI9Z4jlpQvS46{RVIGCjToZ@gu%s4M0{JA;~8%Kt@U2)uNfI4nCjM*sj8esSNe!{Fm zyc+DhF1RuOwBvQ`n`o$Gny7cLCyXr3iw1aXUW>f0c)ECOUR&(<n0z)A3$Y)8{YdOb zW9P_oIrc*A$6;q2cRLC4DcILyUx&RI`{~#>V0Xiu0XN$hj_b;>e-Qfx*gt}OGxm$I zGc4<SHTEso-&pzUSsQ<RZ1{qfu1n52YeVsKfBMqJo8UhE@U<=Lv3Gnp`lEZVe*Rzc z?#}s4^(Q~^g)P`WwQ}?0w_-2ddDs(Mb2p9Ne)7WC&w{%a?jE>v>puCP1-_%RFZt)^ z!<QC3cjorbUinZ6y2GKXha836|M^dTv~9r~v+oD<zH--dg&mzamqWhn_Xqv!rB9yc zx%F>Dhh}|d)9jk?ZP(oUr;~FZTJqHVXTJ7A=aaXt{nkl;|NZoDLiaFqC&Rt_*~ZHY zzt!{B_4mv=W#PwOSbqcL|2?^{yFYRK{i~oqd;K?m^WZhd|Eut*rw?C+{qmdtdi-g> zd*Z~;uS-021>D7Oe*x~#H{81R@T%XQwh((b(sKF-Mw&xaJ%4Y0YtHeHoeuZg;Bj+) zyW+swN82}CecqL?Jb%bNiJC2gk<Jyb&YAJ_FV~-N)H~rrU;o7D8>L_VW7b!{kq6y( zM~?c-2I%{5{cZUubbq+$+6Q03{&?TNuGtwsb={9Hxc0tXU>VMV4?WL(?8jhVhn*jM zs=>}DC1TjWfc-w~KgRw%_EGHr!afTFszun>U_TT4N3id}-husA?7Rcug9>~&;dj{o zhTV@YAs_oP?5AQs5BpZ^S75&h`xmiumFrRLFJRw~{omMgQPGdUemr)58119j8?b*I z`=_yg4f_wUKZ$(=``@t#cyo^ZSnQ`^{~&g*H?(8t#|6HG{eJ9R*8Dm4SF!&Gdk7<~ z#n?~4UW)x9?2Xv3$9^03KI}il{uK5XvA>CZ8alK?uyd7yiw);v--i84>^EcoGWKs_ z=S$#+vA>4>9qhBwwl2ZWNBqvh&LvK^8yp-h0kQGP1giL8j2XTnRZ{UOCJy4Uak`J8 zqPXf6imR1W@$m?$PEkaT4W#0<EJJaoR<<}{OBLsQ6^iTDRB;whDn1!N6(1H*Qn{o> z6_>gc>I#Tdor_)Oqf)I06^hGg48;{Th2laRRa{|GD9*f4#mN|j`VK^@zKC5aE}~P# zb#<vYb3+wpbY$xr5UKhUcB!}sPZbyErQ(bdRh(p!EiO4z#Z_pjI2}cmnFj;0ar%lX z&S)tVADN(vPf<w4c`K?ok)<PYVVf$hP)o%bF{(I4CKaE;po))WNVN*7riu%2GSAs? zsyIO|6_@6y;#!>|a;=ssF5XJ@C5TkTvFp@wf}JWZiYgSBSg7Kfi&UJ<qsq)vg4p<w z301sLP$)iHLY0}IWEfoU*s0>uk&eh!BdWNNq||dBkSZ>Sx<#mTaXnAwe=S>_5t1!F zpTUTHWJ3|THboUz&=iqttW<H)RVqH;K^2cI6(6ObiceR_78i%8;(C!(ToR{>YvhW^ zC3vd1CNCAA&Y+49dq~B_cdED=FV&ZnE-oub#Z@VW;xd&~e1d~2KI|qHALpTpPxz=L zIOR+gXQ7o;PDWG3*=a@OlO0s?VGo7k(=}9GoGL;tjZ($cQibA^AylzVl`TG<Llqy_ zk%~*JRB^3UDmMC5@mU9{qL8WLbA>WrB^94HR4C4}GL)HS2C;F<oGQ+uD<W5@sN#y4 zBJ#lis`#vcLUGESDl-)iV&hW;RPpHoMf@{Fs`#v`R7>EbijTKR#f3$xxY8&UA8etD zPx?v4Cmg8aBM(w>x`!%03L_O46RG0*qLRwzXQ<*MHB#{@8LIf;%n}gWXRuS%fnB!l zP$)kAqKI6wWGJrdDiogwql%A-NyP_usNw@XQauTYDn1}A6(6Xficc>}#YelS;?rI_ zA|LuP5us8jwl!3>VwZ}`oK$h;QxOkWdA*gYCR`I`C@zvJBA?=;iVyZF;=2vN-B&jv zM%u<(<Yy}Uv@>pVCy&mCc6N?$f`2jc#_cqV3H}}OM}x&}f`9LS@lX60e^h$2d9M1P z<7p3hLNlfXyK$6bq2(P*-?#0+JvjwXGAndL*6A|?8+T5-Ind?5#rFxEFdM!MjDFXK zXMWA*hCg#>;O1m#Tjj1nfKG*1{_%L8>?=B}=2x)yDxAt;(r`aTxSsbA?oEX2{x9Kb zk*h4{MU=#Z7jv#`YiVAI|3|NH+giJ_<;s?omG<R(<Mj1)TkuYu2E0+phI8L?iimh6 z3g04t_oF)FqSPH%bi#Oz3{Poe<%$&;ZNMU5N3|l#+HvmrCH5`PQ6%3n|85KqWJdpV zY6brD?ur@**QogqYpb+JgB#a@Ufl!%HqHO_DvbN4CWyG$?Z01JFZ(~+*6rq&X*0RC zYWwfacq5M$EA_q`NH~gpr_A{HkZ=jxmycK<{%g5);e8j@VgLQsy73R})`7Qh=)e3S z!+IOue_?%6|I}?|{6B${t*ZpL$<H_*|McnJ>A|(Wnf`$H55DXDM|nSY-Jt)Nz*+t| zXZhy`yenFL^ZX(2r>_ZyulCP5&pT_I&+GSk@4D_RpWmPTus<jGVSga7*6$4z!os(& z3*O_O9r%(zH}FyaOsKO1-h*5Hp;P_S1KR>S{n^3oeqh#Z{>4}L0}+^>?HzVr@Q1EG z&lqoo(Hw98b=Ug?7yD26usQVdwdX<W^`3K<|1j@&t_#lb9};MV@pUF4k2_z2Z<aUo z1Nh#3U9dapJJY}1`)}V5{IigkLjxc2<s;PZu3=8Iy?1!e@~<rP=dbH1`;@;RP~ksn zE#STKdf0NjFJB!zi^ivWH=$(w{+Zswm;E!^+K`D>>I2>ysvYm*;935_^s)dlofRna z&-|g^^Mv0i_Ge8m^E<)&)0xHh-Qrq&5~YuJX!$;S78cwKV)VM4<5p}7x<Itm%Wst2 z0^+Z$9zW=WmTw1PX954k0S)-_b3oMid1r!*e<Fw;bNLdhU%>Cgp+{IgP5wQI4CjJd z#2p~Rb4bDX7fXMEcs7V}#B$E);%~v*2!!J;_#=ox*Yc-9j1AU(52W3@#ZQ80zm~^9 z#=8ncH?+J#@^+Bv+5%!*z%~&#XzSL1n2lT4iv}6-0zKm8VuM&Ft{0CLmx!~(fcPiO z@zCBM#7~Mbu|>R8yhyx2TrD0W21U*t(JsI3Nsfxoh>wYPh@Ta&5F5pf;s)_pafvuj zoGHGEsX89-b@40W7sTD-wc^F%h2lE#c=0Ila4}b$CccPiKOXNF;{D>+#ZQYji<gOY z;<@6P;*sJ4aTiWH?O!7vi^_od6!3_Z@T9yJ^@BVbWcY<*uh=10iN#`A1WY`RRTv+; z!+#NV|BH+_Wt822nYv&8?rQ6u@^_y?N<hw~5pBgF<zm?2#`y%w3CWGnQSOzzUvh_J z-eA(-9ZSuC8-K~|pKztin=<?#%<$)!B0W5=^>H#6IMe-4%8-AbA$MlPza+!|oDBb= z4EgDd@Q!`C246VFuh8iA67T-0IP>0~w2!-)*K?THZ_vcJ*IH!0cY^^;@X0*J#WZiN zNd`~7?!!j6?*^i`>F3QGFU*@nCZ-_m(?j;it|Il8&3F0G(8L01sjY6tTjzM737%=6 z1WJ3oib=AGFfND5B1nCpWqi>{Z<Kn;k<ESD8#$9DWM7X$k%f`|(GjT3OM_CM4MCmw zKY8E#aVM@`6E+*(_ikR&Hu?8GFw}Fx7}z;s?AXwR;X!5Nob=}dxasCr%sALw8N)FS z$&&9Vey{I)XCKFn_ITJ`x_O4sLA|@V?_-|oed?~AgK*7o`=-)oCG)FR!)jc6c)^QN zWPT4}m+X8(2KHc7o3Tx5Z>smHy9@aTWQ6k=8QY}xrh1?H91JYDbt#>kmgdF>`Y=}D zHmSX--lzWMjC1}w+z)4L8TQ`&ed?~gb{ToE_VD^7b3!uD$9$d7C9?M+Wil;|Q>Sl| z_o?&$=DE4{u6~d9rh1=xrR@FQnl)4Pa=Mr_eQ1`9$;|wgsJ^-B`#3wJ@mq#HzPkx; z=$qnw>QULNk_~=0npNo6s4uEY8TQ`&ed>d<*DZTN3~*(~Xkb1nFN5UuHpTnY`5kv| zuUa@gu*dC9w>`+H&ny>=kue~*Cyt57@W}Z$!u!Crv(To1EVgp&=^N9@U6)R}*MD`} z_gSBD8eWwih{VpsyUI`8{OGoA<KAaoa^d-S>vn1Eok;xrVC0eCdmrLeKT6xH9$S_Z z+4<sWt=W<I>A})x>-Ua*wB%w~823KxIP5+$;@$jc$@}`MirV@2^QLRl8NZh|Goxd& z=Fva7pHofgXofEa-PY*73e<$+i$?WHR>Z+83L)ZmdvjwOK7N^sZpIJkLERu$=UOqZ zt8T7#!YoN_%PnvoH@VIaCRJQ79=C-h9V6l;RjxA?>-=$1Ah?E0ld&cQnc|fp$ya~y zN=v=^!#Bk%B5;qK{vwD#>a`Dgvqczorlr3lBWT|ol5O7{GCld)4us1|z7fQ{IAjKF zr@azmX8MaXW{rQdMJ|K#RTd#PofPn&>RHq2n3J9?`#y>oE+gA?1kD9CWBgZm+yZqw z=&X~Wsm7jlc-97ht%T<yFZ+pUsSk_cHs5TX3vU9wXX7C<zh~3E#(f12<M&*^yJ_#) zD;X@nI|1*d9tsFK&4jy@N+)<1ezN=Ull5)<aQ9_Te*_5mF3zD1M)FnRiRzr^U1<lO zzV?M7a{G`49%%awT;9z%f^D3T4)5k`@H^uKc$kB3=0RtM=u=6<vv%TV6?SgNTR7h8 z+<G`aWyDaGv~B@;E@Yh9o=wJo&g&4o7uu}Zj9q9m#ykZ-jw6|3oCb$)y5mkzvw7pL zR@5|g?vqqJS)7brT#>u^@x<KCEB?0iruEQWfSqT9xr8-m7&|u}j&T-1c^W;i@vP8U zMgg09TzOA8E|2$q!mxMYj_Dt>F)!&)uh1SnNFI~^Z1(xY!f6jQ%;ysr#UP*j;L{UL z@Y{*~GuXe5{YTh&@=fgnSt&K`{|KBk$*Piv9a}Yas(3~fioR6wEJ(#uKo!r4RIJrh zv7)ob!uD>ZFv${vE(97Gw}mC02rk0^GmrCxP$dPrL2eWL-Ga@W-)AZ@4dmqiFN@Yb z_Co`c&A+qKgcOeHFq=D1fBH_}EjTN*$I4!ya7xbvd#@l&mUA<H-+f+v;$(Q*OgpE} zr<@eW<h2=T*?Hg8L^i6n?Pf6XjReabHPs1U14^3$egad#dDG9ur0w;Xv_0GJ!Q;l> zoIy-oKH)#oJM%0|nzmq)v)4c4Z2#=-{=+eu>Ir<<@BG?-<n&#b^*k#p%S>#Zf?VQA z%Of}|_zM(^$B0LWFS0b?{|j-GxKTV>bmw)7C5J`8#Q(gAIYu*ILOnOwHgcE(wiVbp zpHf8u+fmpVCb^j#Shq*Vi)zQo?x-OBOX%v;&G6vA+{Ye2`FAQ$IPt_a?sv<~ZMwaU zo$#GX9}>ycUngu+%lp_O%2RCZFIkTvg{hOwVJLT9`S1C=Wqf3j8|^VIYhT4bu2M1K zKK9+eGv?aix#o8AB1`wz_Oz~qI*o5?;6<&;4fhe_zk{Z91r?$j_E7hn`ZqGpt^DyF zG`w%V(d~?2f4sdWm6L0a(P+=zJg!5eJ*?m)wVCz?mA)c{=u!Gwkv`oLB;(RC(O$-P zLovt9t=IhGe8`@}32^UArkYpimAyFTTDdhHVVU+j?v%LprkYn+cASklU;NieX_l;W zQhQU)D|}#^ja0@;hi%Rd%e3D~?M*eWaLXk&W-GfaY!_c<c@NIVjrQbDYHzA}g{*!X ze@GSPXAf98?Ki{TyU#29Y{16soNjsN!)cbRb5eU#%`1H5Q5%W<6t`m@w@mw;)ZSFz zY5Q1)y>s59y{YCE?v%YbGi{2R-=n>$<`up(WbL^5-SzXdoLXl_e&2mwVOaLuMxYP& z*dDz6Z+kxuXNJ9ZpH~=u)+VAr^||kt<J%Y9+(c~%`<uMprkGc7N3neJhTG6@Ex+=g zWcxQReJqy{gJjGr+=K9ELwym3T5Hk9(_A^jVdEg1JNwrK*x8T1-!1vwE`6shvVmXk z`e|wGc}ykf8(kemPV0x)$J*}U)Iw}?e_8CMjj=uQjKqsZc~E_Ft-b`42&Fss1$QSl z#zx9wZ|ClM9=<!rvPxsWj>I?juaCFgqo}#N*v+qxy^;LjTXtmU+DDw$1(Dcq%VMvV z#a=X~@m;e>+IP)X{p^iM?jv&_dF>aG_&Ods($zMQmWJHj?HE8l+yoz2TNb-^2%lNY z-SsFASh9B-zDb79nC%Pd3t-=8CI5Tm?o^iCFUH~1Zo7LCC-X@A=iv~M*tI=nu?@W? z`#1!5KPcxGNMv^cS!Q-yKN{(351NC(E{?O;@s!0k^s+c!J0Z;qD{xx$++ClgVv4xe z_UwOzUt^2&)K5qtj@}kal|dx7VF;?+T|Y)xj1MBQeUs+@lt^rEB=)E&H|G5-lbMbU z?_b93XOuqe?>=W-(MMuGj>I<M$Ukc>+na@>{(RD-`fU!1BC!_`yjw?aJ7&TW;v2g6 zzs^i|t@|E2MibEdK=I@_Mf$u}`gaHm_#Hx=eEab~*6hNv_;Mb<G=8l$i2O%(|EhI0 zCdwi^9}Tk9ZihdraPF?pz=66`7JJJccITdgw3;~~y~a}81L@}hpAFoM0{K<$uKlou zM=0?b!AS~*slipCqR8F-Bm!re-~SO5_C7D`-fMw<Ue=yuCQ4&_Htv48^^nr8YnIrm z2WzN$C3}5KJo`_Y<n-AXZBL~V3r$(978lOTt;LLood0o(q?W~AQBvEEnvhIhjyOSn z+?<*~w&=Rn9Xd{t`i@}4gRciZwVCB(zti_$WPb23^L+E0lLcvKd1aZct)=nP?BVT6 zJ~Hhj$8b1vk~`s8l|ZY5b8Eh&n99*$TI9AzQ$@u(6Wcsu&g)Bv{x0YBwDi+Dh_IQ~ z_eUo=tv1!AvAy_aV{3kC*T=@6)PQIIS>w*BO{fjuHk3*zG-a{25n4I5WN!ec^zBJc z>1l2iM>~>sMy=WX*Vr?99PZ{#f!I>%T30$wk-M-s`CZ8K%OkO8(SMY6{jefvt|1#I zzVi);rLi*#Bk`T1)`|1BbHqBsa1L8%KAarQA#4cF1e}q0e9&ml36{q29mxZuC{ASQ z4V=56&fO&6eKhR>zf<|No2I*Ln*M0w!}$MWX)29Ri`;0^TFS}w8+V%Y#?K7FX)+T( zGapWq#rT<FI8DamXBNO|iX(nzA)HK*`yEZ>&;4Ge{mx~weJd}Gy=}U=9JC3gxexBc zYC+bK_%7yY>S5y-dFGbHep~v;E55S$ku0pU<LlQH@Qa?gH~bNzb^RHxlJ9y<hw)9g zzh8`>)0dU4S;Kzw*}t5AQ`wrrhfJUM>?@H2Pem5JQxY#*5<2kMNl!$&*1XYr`D-7_ zUD$z0&VfhKygl+qpD|IgtZXezyc2o$&m}jNtu1`mn)qYnz|)aMZ_5M>jGgpE+d;3b zDviB>JjZ^iv--E!^0#$I;sK`difOA790eHR@)wZOw%c9{L~cB2!>T{6?;N$~Klvq8 zwFB{r(19oR{~P_s*<EF83akas{vawd$2+!xP@9Y4$Nv9C$mIBl_2nI0Ho3d_&@2jf z@8pI1YkV;lg=+>TDBPn}xFaZwv|?tb@@=Txl06#5^0&yducBm+9$&IAl*G?X73{UI zT|E9frYPTEVyP!tzVl(|EnB|x3x8nC_xF(lk4F~$%^E`S4xxDGzqT6ZQf2$v!sI&8 zq~-g(Enhzx#Tx_3x;L&=y(mPK>e0zk%}q5&D$@M{sLVRn&eubc*x23;2RwT>yp#Ie z@9ap|#sg(t8{WYud1HI+wYYOnXu>)dn)c$d_@>ZJ8}ex*_kl!g{gQ%6*9Jseza(51 zyI@IvSq$~D3?f#_W-N(x-BQFWsOyGepyc~37uSCA1pCSBDf02xIT>9Vdpr`mjjb}S zud?_KG)kM$1mhoO+=1&dPh=g3@3}YL0n_}V?i61%p7DrE4IdMZcz$6%B>V)v#~V56 z+1%^-lH}6ZbL(SW>v62I*lp!3!`OpGM%rCP#M?rpT@SOlf=2~3HXHU!w?E))MkM|q zlWO$1EY9B;zmaX_#`q`L_H2ybZrh#j4MQr8KWy8Z8*N+j3AQtlxXEiIc2;2|_JM*( z?5c1i){GMUAPV%XU|B4Sy+=`5>_L8S8HgBs*L3r-&Evk(Y(B}16fy0iNSyQ9$>ZZi z_L<Q-z0iS98kePD;@Vpb+!f^R;v-k3@hd`1Np|F<r*g0VCoRM`7nH`Y3vTS%y6!;f z+rQa{o00roiPnv=-32hR*Xt>{=|cy<RvPJ=;jnS*{29hfkpqw6`^S&Pp6ELJKgl+2 z=f9?XpSNT9{_#_huJu8D|M(Y?MUU)16-`3y$JX2<uLd_RdVSZ=TJeGC4TTufZ;ZWC zy7Zkk)Rkj#v`Fl`g+%;8X289nP+7QQd^b;Z?gK;6+hTmjWOaW62bZ1r7wNM;p0feh zpEb(HBECBc^?~vNWN-<hCo2Q06F&z1@ja}&<3^|BQc@Pb*VL%kUnV3bc3T*hF)(#~ z@KtK`x#Od!;@N<46Un5W-_*vbh{U^C0%c48$_plP(lc$jXlKjf-{o=lzm3%KQ_)Lb zKvrxHgUBJrn6aml`9xHcPeim?U12)7FXH@nTwCPi?z)v1T-;nEk@$CQ8UE9jVLQAK zx^3Zj|FpW4yNl1z;#1hi#=8oTs9ldmY-yLq7M5a_o%t@wz3t5W_->xkT?q;Yn-6zq z7KhChhEr~trA}?C991x`wcOnuD1>D8omD?W?#p6-E{p9?p572n@8-Cvzq=B-w>^sE zCeL*41COGG!&O<o1efKKCHvMd$%jG59vYu79~_@^_sWiUu}W@?y|I6fIey9_imUZ7 z7HsQ5<D-_vY@sGovb*O$2M*liMVfZq0+&s=E%%Q>PG<48N8KnWyS)=rpI?&uz+UD8 zIX2e|+iYg$y=9^-ZrVjvyO;N8;n<O#|LghTY0TNqUme)b@lVEc5^3M1Z!e2IfqVEK z3<lBk;^r_CyS5u`e7>dzOp}VtnFH_!_p7kGvFn=^K@Q0NV$`Ma8%(>2du%w_l15@1 z2H|Ae3TFaNwzhB%z{&O(&VD%AFqg(}VZ$7WZR~@#7e;ybQ5*&}0~S#pg>VegflCV3 z;0VJpKnF&}umlInZ$ob+zOk<qJs*a{z9pqyw?trgW7iGk04oV&q330+*hMBr4<!`$ zTGpKcTnqRhJ+1*1LF}!v*zavB(2J~tWgMZcr!?+EZ)#QtBPR{DhBm}!aZDKd<;K|P zfuYw@f{6-SyA!S6NbHeFY!HL8_O#|Gb-%~wR(8G~w$HAVb=_Ko<VL!77MoP72S+V= z3>nKuGTAPx4=;;7QyNQ{L-9r?_FEhy%m-V{y<__QM~Ru=vi&(aSYFK=W0>mb3c-cj zfJp3%`Ea3wN59I}uPk1hzoGNVlDD2u^|!2_=3wcS1FfIYP3&t+-%DR>4jYM`jlTAD z^tD%`7+P?8&c{`KHcpIp{Sh2*@U%U8R+n!vde0)0;@!o--rXO>ud{96ZeGwRwSA@~ zWdTLHzRQ3pmW{DDO#(~p&EvY#_=Um9DYr3xTVYAZ#}0OKZ%eG+P|&uxG=2_FXs+pJ zeuuM-%C(!Na-h7B*ZC0`pWp&Er4zILl(m_=YZ05;*r}zli-SmPKJU>sbT;JQw4tD+ z^9(eYXB>hG_>$=;G;<PvkR|WlW!mNf{U9ont4j-A8vDt{-G9p6wU#5K__e`O41*$F zz7r#-YzXD<J__2B4m?F~^O3uI9u&$4hKZ=U<1@1RA4qLk{BD~7Hn{ervYob0H#x&5 zIe$*xf*`C-zD=g|rST28;Lbp*HiSw&XM~WJeDq9w93I6B=WU7o>}N0?m~0kzT?WOt zY7|#ZaBEZU?$6^iqPJwN!)dhVFn(jIsWF2#v>9k>ZcH^bHx373*)%mbrkWZv1}wE> zz*JLXjpB?Aq4t?p#?(SIG9atn0BD*RFxkSOwqjK6-4LH<IxJIBVt+kwet7>ESn;Mf zv$5NPCL_u7o2)FR$ZR>4gnz<%lVQV_cH9^+#ellB|2JsqS0zxrFfyI|yrk+X?&j<% zjz7rKwC)K5q>1gt&ex+GV?V)sxS1$m-_SGeoFy-Pd$KlmJye0hM{>;((7>lo*8lx} zLCO9<J6Y>*x)$dTGn!pyK__z3VC(FX_$)N5Ket^s8t<I6P8_3-OE>H~&^mWRJdidl zIdFb{N$0+P554j-y~1leu=g~ZX?stW8kvmmi)<g$gNq3rhdmiP_e9hChVjoeruEm6 zjj^X~fBht;2he4pokmk|JexfA)wWWzufB^H5c~5<C!KJO3}LRv?XTf<FCsXHaUOXQ z!RcN^aI(MFq*Ll5LRWFEowMeJWT&#&U7w-e`V4a+K{gi>n7oimV`k#2G=4^SecX$l zpFJ!_TDZkQM;1vH$bpgc`Azq(bN6Ft1^4+ezA<mf`96E)0W>R4<k^u(-1gD2tOy2s zk+><KNbDfon9fM~JyeX)OP@;4K$<wK9&@|T^_qX}TJs--b5<R&9+-g`cYdVJU8wMr z%Psh#e8bjie0_SY`|p^io*drL+}zk4)+a~tk?ZgU=dTar)3o8~lLW(;Wn0IGF|TZ5 z+W!B#p{IJ+?fpH8TN7<-xD?M5t=xo9%eJhnscwzdHe-cy<$8QHw!X1?Ys*Tv?3b@u zvHJg_?oGg>Dzg6Jd;6xF?!<Hg5yB!6WDgL+DuE!oEH11fC=vn*BpQ;KgiR3;9K~f6 z#eG5CVFX2;alwso#bwkP8OCwN9oN^vWgK<%`~9lUxwq3D9OwCe-~W5w`*hv2)TvXa z_PV$0Ru%N)V%VD6h7x=O>nx}!HD}P0#>u)ympO|XhX!-GN8PeYdz3fmsu~m(&ibxg zR9#+{hfiCn$b=}Vz`@k@IKFpb>5{4jD1}AB!`aF_l392Lr|Qu)HC0X{U2<ly4QmMq za)AgI|5&aiz%4_yO5iIAA0FIYF5(6UufDd*S7C7Q7MBNd1_w`5Q(scY@0=WS2j9Ya zf#!f?O^5X|tn#YGzO2u{;mkN|-F~mL6yICRhe5{QtT4u5<v0wu3?Jv1L(zGbvi%$y zy6h3v^;l(A=2SOS)Rm(sP1*4Odz8k4Q}q;g^NBS=H2RFF9^YY4udS>;hJx~aHlcon ztq|e#Fkq~gE?ta-msX$Z^GHAh8D8u2NPuULXs;_TsYbe-(}3W3<)!vhZM9y`mY1{` zsvdTlli6{yc_}I?QfG@zzw5R&Ew#E;FD@-xT8V?!jd&Rfv7wYJlJIGn(dX0BwLr6v zl~k3o#G!)KQ7Nfs;#XIG+LH2m93O4zAZ*2wgrJs?kcOx-U!iI4o51G8d7Km86cf2@ zt#Hsan#NJBF*^&E)YYL`I2DalGL~eG2|P68C3O|1jrgaLpH}6ZR#j1A&lHyv%Juwo zo*9l$*h@+mELgI5{)z^i7rtmgiJW(C0W22;8Y@wOs(FXyDCrUiWBt8Te>!R=1wr`n z0w-$$&VT1Besmr<(4EEJh$pooQB0~vRn4-JWjMgSj%R)^tgNakDXU!SR2zLL&ZVU| z1-xeALW~L~L&_cWVyt!xd<4-e4`J&|=U1T~_?+6h%EcUyd`2)t`K+o+_Br+hd$c$n z4KCH$_Cwk<Erm=$17@A(R}1xxB$Wx9YzweKe0DvTfYzI%&nxR1R+KDe_bEFPB=o=X z<%DSwY{9Jm7!%Q27c^8ZMXfGlXoociNhWGz3m7GAtG*S<eDrN)M#A=-^(7{|+0B-& zK)pbhU{S<fUdMjS?vnt0f*=p-MW(#AW<iDEr&Kl|fEJX|R)$^-wx~w2+^U~ny5Q8R znnfkmwWW*7(F#p5H1cvxdoxv^U#8kBUt+#Hl^P;FtocwCUHANklDe8289?ewO3Q50 z${Gdr`ytT>sbm&oGySy9nE);E?XUwL3KUskv){Ib07o`2sYX)`N++>I&{7b<boL85 z{MhxZ0wBmjO9)v}jtYmWP+=38T)h@o)}u*_d{FBQ8_mDM7I$q$we7Qsm|mPnl^w9^ z%4|2$u%Kai3CA(hX^;vqTEMQv$e@jz1)`Q?dS>-D1pF)Nuqj5FfoPix&=`rMPL!CD zr?jDg9Y+}k%G%00K%>ywS~nk-l`mwWR+rROE~-G$Qi9e&r!{|mLw{o+Hs*k7ytA*X zUL<vJLCq30AM`AXE34-(S#WB(ZG0#br7#JoD6OwBL5V=ispTuo=tpgWgWFI#pF+%J z1L`T~nDm=272n2TyN{Ck(#5q^<rv&gqbsQ_TY_<v*dl}R#+ED%c>$&a^-C5nM!HNU zl9ntqUhL?xy3lm^w&ON^xM3yq=1b8XLZ02a78Ws8WpFfEG_d(KCIe+aFnK9WhnCrl zpDz}mEd>}lt@3I=^DScL1L%v{VV0R`0EX(IcA$qZR}Hql7!K-uLuF}IB}S7)DdN>N zC@FL}$!av;lKJczOB-s~!P9<|31~Pv44VN-1|OLT1T2%Qb>)kYGaPsbs+QDOV05fD zZLhA}0`{_YAS$m$k5X30she4L4tRQbT@4Zs%uZ1oEMW%|vVDu41(=4QSH?Js>Tj^q zsw`AGVS4G$h%3rj^_jbMn6j5IEw4gJ;I8viLm-=NSW96LTQc92E1R+4s7s5@=;P0O z`C(lmfq7N^sXj-#Wz5?B5-Ts0P7hn&;9ET@M~vO1(L`|P@Q=HceSkO8k|3i69!Lg7 z8u04M@##e=wlHG$+F6A5BmS&S85nUm$ugog^GzeIG(D#6AnhH~HREHuQrq)r4{9kL z<LuN3!!PISje-eLGJi#FDITw6f&(ct3u#O;hs<zNBK{={ORF%uO=33GElJ_&lNL%V z*h<I=P^eBI>K!``WWQIs+;kS^mLLMUaTqetD>T$OOH9?4M+7tmeORcftY?RyB%a?- zb^HyFSfXYkNMP!KDdS~zoT=9#SWsKaSi@Mf+$jPzYEij)6f+7ImN#HBA^sYe0)jj9 z&0`QlQ(=iAp*@LV1|AGDNRJ(C5*}_7ST(h!cmOC#;GkJA;%5L=<)zh2YFUjj751Nt zRj{J8x~vMR;w-cT!!h=G!UU(J1Wz2en_;yCPux_lX$cZp;-}HpJNhu~CWlHY7h<Tw zgb-aLrX+UO0==j(CZ8<EIfEVIO-)D7g9&SO`7+x%nc_qLx~O_Fo;DqJP>rOeE|pYb zprU!`J{MOmU|6$%)!>0nt+O1P+%@*9)s$$dU`DPiqKWosZM8h<$r?p#d?ZX`e_`6r zH0cckriSJ<KoZ+L9VYSYbAMw)>~p{Jki15Z&!%FT2Wv6GzT-ggl+X+PPI8DPc-w;N z0k%!3AAl^$)n#>+7zFKuZVKDvX<}H(Q+WZA(Bm5p!;2R(9KAXxAeH3u(W$DY#=O}P z3F-eE>Q->JWrqyR(re4B%UCM{RU&Ale6E@AV&adfo6nO7ecDVK(FUL$??M7O%h!l~ zacC<sxj{*rXpFt+Q!sq^oU-y%o~`5D{3MW*de6Bdnf3jb7!YiDg4{TDiOFC1p#YUa z(<xtWH$V}l;WR38bmU9$ZX=<`vTa4GL1KY5AsSSc#Fsy|;Y#@?dN3BpOe$n15lkbH zutZ4;l{BHjJS;ZBxB8k2VJ9cXN9HLuO=i?6nU7Z@coLT;U2mSYZ2s_hius&qmBb?b z8#5aTs9n;)2fiwNJcg=i5p%aQ4DcE-&7<Ffay;KBsq}NeSg2KH!3y-s|Dl}3+tv>M zkq+vu63f@2#AizfWS{g7YKx@MYO-C9YO?PqI6+?2fF}v_HWXt+4IZeHBher}-)xs; zg2-z~`+Crr8id9q+l;q<Fn`Y=&b@7W7Rzet8z_n-S5}$$b-+elEyonHx~8E7FN$re zQ$Ov<ln%PK+L~qkO(~U}ZrWHtFTqHWlv}1MN=7AC5>s`B&!O6kch=rUow99bMoX!E zD~)F^lbxjk=Q}l3c%~0tI6F(6rA~QW9iGI@i$3#i#ulYznBfrPd6_{P>hMCzVCL23 zl4@yn)#$=7)$w1`7Yc^$9~3S1S#uSA#Ah9^sGbYtI&&2r$-irGL6@Ryh2=R*uUf6d zIf0y_4=2hg@y9?;(O2a!2BXi$mU?e5ENo7p=s=$}T~YZa4<A}B-LYDUt$`d@wDQsf zyUuh)H6bRb66Vh;$U{!8)pLc6oD%m*5+G;vH*u5CIiYH*qT5Bxbxu~pf(TF62m{?G zH=)+B@L`F$TxXi1NBFEciZ1q9(-pnLXU$OyG(TKtj-vDYGMlbwVCS4vJLibj6fo3} zZkD2RebyXBHCor1rKr|M7^Ub~->6xNt_&*N=G97Y?>t`6rl=Z^BHX-M2~7s%6iuj@ zn^#*csds!(U@p&@y)jLRK0b5q#xy0C_{^o-Rx82pb$EFWBsIBZK|;2zRzeLml4_z> z4#TvXg8LRhwP;=c!#rQ+SBUHuVSa4SD}?EFe=$%CgS_PH6_I&UAY}@qooKshDjXLX z^O_-$GFt@K<Te#<pUC`EAbKoCkLH(0xLl{?SV3P3So;L6Nb{vE65Lfc&l%!{UP#f2 zzM{FQy62|q)>>{A;jX$b7e$^kZDZOtA=FI6RArweN`5cINU`2XP8Z_*M5Z63AhRSS zcW&mzOub+5KPK?3Z*UKb(iQ@nDvY_}r+M0x%m$IUQXmQ}h{R$la*Z!C<3Ec`Q|ZkI z52aqW`ywfEtH|$sk(9VoMW(6rj)R9%uls$Gl(<!7r!SHccdE!VmELvmP%n$uSH8&c zj`_F|8<Gn|G4QlNUZVrn34)#+uz2Dhuk!;Ix2NaDvuSui*L{NS3|KD;`qzN<p`f1z ztRDsS@KLeo>MCgOfHhQ5-4+fp9xbeCft1w{+%+2t{pe<Bnkxd9Ch($wm72gAn!v{c zDNW$t1C}N*?i)2jQ&SkQG&OSqR$#Qn)N~#N#0z7-+8N~fG&Sn6KuV3u@pVsA3xeo$ z!!N5Fcg-Qq9yVmn56z6G8n-50)7_MeCR|h9l*~M_cCl~uR7H7|2d^e3UA5x%3nE`? zXxU5y^D<XZ9#nD=#Tx1-4ed-*^btQ)i47jy=ZjaRFET~Z$AlHKAJ+$AfGrlkh9H=t zzZ7h_h_4QUDf&yn)`|G}K`=#sDcD6Ket8f~(O(L7wTN#Hf+_k-!EO=pJAz<}{!*}A zBHka%<9MN$m@Q~oz`9P*n*!FIf;Nx&0WA{TRrjBLlV<Ctp#?2ZHALic)HcD!RcB zHC54VK5MR`T=d5a^;UJK`?{wp+RkU4tY~1tRI4Glza>d{*H6lnz|&%1h}QvMB&Ewx zFNK~neWMIF3EIT`EI%1@z7>=QAMwIu-y*?1oDwR<z$QdOqA*aL5-KK&wN@CL)gaBW zCKI9wXyYd&MfqV#%A1&ncTEwQQz0y^l}%&^zn<WAyg*D#dGZ>sAXLiaLem(COyOxw zyn+gwl8E_9ikr*~RjJLU37fV41|lg@-78T&D6onAYC?odUwJ8PB9tmr5q7$YD{LZ| zdTA~-A)*=gif?ktgiS>f8m>xf1#4;$_(3#kC8mtxzfhr7Wr5$Aj#re2=<&i^o?(L4 z1}y6r+*J_|G~$Iic8{Qc4Ol-2%0u}?$|Avin24BziNS6n7mpT^$-d&0&PBZxHdzf% zmhe@+o|0q4u#<fQQ~KZeDWOtoW)mW_QWU3zS}2M&-;B*_kY;_83DE>B^%Ih!T)k9z z6WO{tDSkW#?-rJp8(2X}S?neexzmq(#-}NvQic#UBTzi0o8(YX?@|)+c#`5KGecGK zFi2ia*c=wGKqMuq91&^bYxy-ISnX{tg-ztLDpV0RRK*oG5lp=_mzogKjO*{4oYJ{W z6)&xgj9l@c%BQ4ME1z!ijd_ux*Z7f5QS?@yl@h;(x<o_}zpJ<g3psT*6BF*2i#(6x z;}yccw~7bhxNU6XYlp~xE)Y*ajRmmjp?H1mi_AKh$oIa;>|~M0#Op<YOqk+7`@GuZ zU`}?1WpO)kUdUNRd7v{dyncLOl@bFoEfaEz@-RJKMox(jg$X(98{9R@etwiQ6rCVZ zqRA*)7g(`-l@e<LIYre#Sh2eaYfIEx9yZ9!$SLuRpQ`Df3OYV+<?z&|Xl|BenV?E6 z6ei>p)jTkAN(32_(t~M+6!;l3RnfLV>i4fwVvwKusfwz0M7e*JwKBM?{_ej1X^P(H zvrberAtPUIA|p@KjMR)mlrOJ3Ai1WgHB2ScIM<v79oPj-O}optW0s-`cI<1yj#+Al zD+Prp_pMTbyT|jwUlxk4NR(4zl`l6}(aAw6?_1>)es!KZOHfUniC2jrsVR+ElX{IL z)x3yTA|bI)rX<!#YH~FuMEm3_B{W(iX;U8DHR5f4wK@4NLEj8mYJtXsoJ-aYR-n~l zs(Yhfep3|<qMM`9{lSlJj-nbZIz~kU3#KYs>bK8nie4uy<iqAwN|>$TU>US2dP-32 zn^!4O=NJ1_MYZ^mNJZ}mq!hi!XPvxHP^}M5W?0I+V}fMV34Vr6(RBCl6FDU{=cgp+ zd=rZP4@74CpPF-;C{WnMK&M^`n-Do$v;=i0<$p>Q+2C9J|DTA~{=nS1TGgNQt9r^G zDMQ6eN4SK+E@;OX#FC3s!|5Q1=b~hhGEuD}O}(l7-zcN$(ZL>Brsywb*=ETPEug0I z<A0-!*0P8ET2?Ykx+9)d&I?)egP>{t6s6=eL6-z9D<0gN&>eVMOzXY&T$uZ4Pkoc$ ziA`5av^#~AMthqd{d7-;Q=ab23sM#d?qSgx^L3|8qSXuMW|*sqzD2#%(k3G6ETMZH zTuXs?1zJ*U(cC%4*OJnCPZO_T-Z@vNQ#F41rL=AhHN#h&BBG%+&oMggSfwLXLQ~n1 z(z~23@dhK@Tn(p_pe8z;CPD?}X0cx(f`d@Z)yJ<EDLM8lM1Dox{!%Jg%jPyhJe??d zdJD@!j%`?N(crG(n)~5qC^|*LHIX?QD(;7xs^~~RRLZ+!4VB@Cnx^PnKUB&ygocXx zp=K#s7^Li~)k*}aQl61jRhqAAwxU6(lt#)kEO`YY(<~#ntKvbv;*+luGzgV4#r#-A zdiaS?5&36|NQ!x32_0xj$-?F-A}M8)Dw5IyJEv%wa-6V&sxn2>tFVc;DNQH}veIH2 zT457f)JtI#B5TCFO9Y}(D7x2YrKD3sUF3_*P;`&aN+|{nwapiqmYgURdD0h2d6ZHS zHPbxyDDkL-BQxcF%s%mKlVhVrS`|G+mZX^nie#fSTnj(k3`M`d=DWNw;94ZOYpAFn zYO12+eAaYD&k+_3xN4OWHwJQwZfI#^Fmg&v^R1Y!XhMRnO6l&^w6L##nxZ_SnHPJ) zRZ3I|6aSQ`euYMEw#5IaK*Llb$fA@MrFQ%jl(wQD`liiQbn&6qG+3c%N8d0%;Sc(G zF-K9gq=`XaEzo*kDw7g<ewm;$DUpz|+fp)in}nF=n>t-l%|qnP`c+EQ1okVc8Jm#T ztNkQRS2V$j^(j_pqIURsIA^@52(+j4{3`vaA1Y-WR*|oKk(64mBEO(zpM+K|P0h>y zZ_0cj_7wVsHg~k3*9I)jxu7zo^opuT6V}A6;Qt+wCd{)<Be?%B6FE91!&7ROifDsE zYgY6ZTZ5M2JwaIp*<`V;;-$?JZ*#PmgWfA;;;~s8@35eGCM!-ANlDhPXqiW*G~Se+ z^b8Tv{sEbz=r3kYwv2oI1Y$^3^a`^HrWpyYTAiFQ4cEsHH$&0Z5)QThFhS1^SO-&- z?<<<BXrO3%s-o!!Q`Fs8G)>V!(VSF8DOssW>*6b#rD&k&<Wxl|^+OeDC^NQbxaEHC zVny}^LIhb3=D`ves4Lm%s=7|TIxv$%ZWhly0#V33<eu061gx{$Sk^@XA!QlCT^0S& z4>d#4>-|tEC8MDp^+Qcn^kzR)N@uE}9`Zv?Q}jkZR7##}s0aK|vlQJTp)dfa)@Kd( zdq3Q4ML+OaC5lc6RBc$T#I3$nDQ#S}-{6a+)VhNlL&~#0d4lNBjA0oe{FCR|Q$y42 zsiEQEVA4q9fu+rS0xK({Ic`P<!UM&N5~?FH1j^D|x)XD{<1JD~*qMky@DM(MXC|IR z8utU3lSs2NAxBdfIy=|u#jDun5(Ur}CV1G!m*XM=90S=2!H$4uOWK=}aU{@IX@2P3 z9^f8^*BY(;s9|dxUlF9+wsdJ{yKXS>umYE7nYOoCLu;5Z9eff8`Z-R=0_da>-4B_V zgOg74pd?RDKTYIylEYNPwDWLo_}|$W3j?~yX|2YqYtqT7)YmQXIM?o?D1(Z61Tjh6 zJ@q`+Mpog#D*tR(6HPB3=X!i(RtC-;bb7aU`sFltTez0&li?nZ1)T*0<%rk5^j6uz z3{;>NFuz~eIV_9$(?8*4SSTAXQ1}BOkV%0-JQdcOLz@Q&DHNNJP@5?|M9+{dqQ&G4 z9f<fHXIO%j$duxQXh9BF9VVg-md1!f%*nGy`q7$q>Jh}MksGXhFRA<5?a+R@3{ zMAw)`d{e&SGnTm(Byt=z1>{kU!Wrv~ZR7n=#<mGT)+C(fJ27n1KdF%p#4Rx&9n^t@ zK*uCYoA{0`z=^Rf+>v5hLM|N_L~SG|2ehfzIL0b59wXz_j?-hilF#%VjP~OX4|-T( zXdbu-g3~RV#k^he;g>fFoV3Zfg-^vT;)ZGgs^DBV8uRod!N@Xj*1&lkB5MK8g$vCI zUkT7G8rlkQ1Dxx2iFtZhVA?J8+=1IJxU@lTbVynsH})ckjxY{KEaN!e*f$_6N%jR9 zjj?H7PO=bWcB~W7r%Cn$**Z21=-){82bmX}40J!q0U&$C769#lk7CjWf-J;w&Y+tW z;<ktJhurkzfx8*JXE1^GHj|{e%?IWj;++H#eivxS4etkNmgZH1)$DZKegvHsb<-)6 zsEKrj3GZD)+1qeqGfm4%l?|e{0iM?YJXtiYmFvBsj8SB?cfHTa_!n+89VZf{L?5V3 zFr+iGqFG<uO!oFl4HaZW5GurTn@>R?*Nw;IyBpMsCE)O2!Ei?A#Q+uIX>pe0lVFFZ zqZs2X#{a?NeRu{+G2Z?V9MMYg<57t5E})vBv4>9#bv`s+2r7rvNhmYNdlo7pdvLpw z@*UIp1(It@#_>L&-<P=kj()MshXA7CZdoB17VeH{v!mhe@fW~lQo=oG$jiW}BixhJ zUQqohoev6?_XyyT(YU<^kDRnj)}D%-jQF>J=U^(9lgUt9(HT)=PBs&BHz;OsP7V|E zASh;6P8(Fn_!COyg*vy1zpPZZQ0KPs*FgOp!(9$6$%~(hrISyBlhYf?j(-GfH_XWC z6Y4yqd3H{p_;%P#OUZHK{I*P~sFU>-J^F?^Psq;B=^Ota1m<^7IsG7t!2RN_uw>1M zlN0ZlKt-MSzaT!4;sdStz#uMig1A7z$T-i<E~EUAQ0G}tKO|5OPJ((+koPWtY~%{u zc*b+2phYv-o_AOz&y8gPV>O5zjt1$(azOUOQtb%ac3P|}$gw1gKxW4t1347>BEvwA zj17mv&!~Bn>vi7cMx#Jt<H6X2)B%S=C$<1ISCU4?Kxnrc%fkq0=!u|Tc4K`&ABN;d zjt2dz8#@Q|D7eUE(EF%#vQ^5=18$V^i;}SnbP|O2yRm<OzMb@3&|kW-P8gk810toM zzjI?fL9>2D%0RCP#ri2-1$uob#sh9y@{#jFZwSTC0B!2w1)w*FV(UR0{g+bSi){pb z2+AOG8Rfm${Yqa4`YJE>1Zb1UO$_hF_NxDFptpFj4?r7xwu9c`#SSQaFX#unSSIqk zfckfW-sQ#Gfu0GO$RnWFWFu1^NywB(Y^LNv$Q0IN5L%xd>j|3wRY!JHX?AS7($7+9 zcC1Y4=Rohyj;&DodC)Is$1VhI^!*9+tJ$$DLGuHd$V;HtH-`}~B^dFNHR2`>^fH7t zG>_d4`WEK=E1-8ZkMXOQSu|=d=<k}xHX+yFL#GsZ1N2oxoE%ohLx)2u<g`2t^)1>g zG8t4p&{$e#5kO(AW1JO}-?qfq#l%ZMT}rBe)xFsopcBA~ULA^D0DL;|W*yL(u}wy< z2WJt`^t8;=0D7eNjh_KH4o0S%wz&q>&k#yKf?dmH6h)m+KayPwKP-KdexuN}G|x^S zWg6-r`h#N|s#0tyOwDhoA?$JCf21vLSCej*PRrbkUSOD;;}rr;V=_G6BI7_l1<{OX z<|_beGRouc0J7R-EMi>ym8zkg{{Y1*m$8&~wnk$y)G~H~os?S6ZmtI?qh%Glxgkoe z#(*5>m#@ZeEjqpUNg8e)ntQxbsk70`#g{4dn^5N|@pCoYx#*DMSE%3mQ0IB^o0U2* z)VU(Q1Jp>`d10t?ZQMiea0#i4L!FnSn*sVA5^_k#unW0nQEwbLktw*{4>}`~`2s** z#;Eu^fF^+xm=zx@HPK{+Qd5`}KY%hxnu)A%yep{iM%>a7bw;zy4gjq)W(NxAHd0tZ zh5aF8RLqA$$NM`~ypP*d@G~QsCjv~!oNg+|_h4sYfJLXDIm1*Ac7}#ydU2)D>1)rJ zX-43BD4BuBrA(R`zZTTlq)uRo-397mQnNT7M@oR6306EUlLKNjo*us#kkvk(LF+G5 z>JW6|wi5Eg)vQNyu0>GOx?Cr68}L7Xof*!293U@qZ2Tp_Zy3=ys`(KVYiZ_D%!CN~ zSXSrE@uAL##9JtZ{LhZJ1(l1IoQWK7?L-`)dl5JzE%Rf5Xhv52A6h1dLbKy>=#Fsl z<6wl$PH&Z#otDd9-^rbhyPI2vdnk7q?w;dKgj|Fxqb>s->6LjCKyBoK_zpnROFv3$ z{{U(QC7(t$b8>zIR8zVE_@fNlGn3ztMkAx+p8>K+BWKc{$UTtw8LZ|VB98!VhHfsj zEZiC(jBXB`G3@xdWu63(9l11K5BLGtk&Ou6JUg<{6m_#hgky?YDYRqH3@*9wz6k+a zG|RjLAlf23{(C@H;}*?nMh-19M(;-ZhjcM=KWAw3XwK01B%o&gFw{tL^^lS5;zVkI zKMwCmpVlt|tdFF*!N{G#emV9U_<w*{q&djKSS#3sHwfsDKn^kE`c!tp?Lm%oyq%PM z3b%KtwMXXX023mE<NpF=t&EsSh65#L>M#toEFJ;%9mAoYjB?&4_C+1@Fp>%HL(?N| z!EOgMa&Pl!<lcC1pnYh^y-bwXpXhMh22vzH^Jsv1k!$1pmS{TtZiZO%){&dzr)WTO z;`IqsG`=!{%676YWWZZdFS92^ZuRGQk=qe4YYY8;2P``p`Ca^c1T+=%4l2D06z7JK zZJ?a^WR$kammMS>?=5<LjN46+YZ=Mp_epD7&Wi5@ya8)CT4E;c#9sr&@@+YfP3T>v zO4(?}AtztQLWq`SZ1Iyo4Z#2BEz!3RiT@6i35VW%Wc*%G)2VX>dfw*QEmxT79*rZ% zPWO~T$MOioIs0jeE`3(~X;3{;xGmA8&xwyiGEAiGnjP;JXpP*38^2j<8EwOlj<%$= z++haTH}Mjx<=u^v@%u)}*vVvkfgtZv@)0KEdr&6s$JlXsNV=hRg*tbNXMk!;$;Z)+ zAsLUGWSGnX$0kE5B%=?+O&&bU9O36cA2INsnIrt1$N25xD6&hbzhV@LzXHlc`YPs1 zZv1ab{@v?*mK%RZ$=AHjYuz|MQ8B{rdY#v~@voHJ?{z-gjk7m5x%DY#JZ^jxva&nN z=nKr^T*u?=$eYYw<Nz!i1L0O_nG*pDTjlvCw(7;Sod|9fBwKNc5}yZ(O{djB=3uo_ zgZS{Z64c447Ol|8TE{O2^&3(}%+Fgv-A1aI1A#XmXk;;NXM^7=+SbiD9Yn?&+#GK; z?(ICr>75TWayf2SQZ6RXrbd=G$Gd|9_u;mc0^!UZ0NJhD#qS5CM61J?hKH1D&n6z> zGNv$cq-8iW8z8Uc#CSVEQ!GbQzOz!tFwMP{I+kf3tkiKxrIW*EXS%aBjyD8392tY# zWXQB^mU$Auyp|URRq`S#Uj#0*u;n#WUJdFcmds`<{|%^hq|iHHme%rSQ_)Q8GW`Xg zzLY{m^Go?QPKY?re$K#KIn7~_w`c1?FEGoAyata3uv(tqJlgVn(<z&VcRoyVBHzLH zQu?N4UI&ofa+nFvk+J1)8qFcs7;QUAKh+qG2O^Re7<Oi>w3btI-va97{(!rin}hJ7 z++MhQPGk<`rUT6gXD$SokdYfqT{<uhe=gLK8RL(;c;3y9b9`it$mq?wbrvX=Rt6qh z^Wy83>d#!bL@CtC!uXX+p{pMf%&3rxkxmW=5*cZ|uVG!}XWU{K3c`7)k$liknAN8_ zIUVt4!N_B3k`Md{il%3Byvq(3WEJzp1Lq%jb1*JG9b9Hp7;_Lz^g&T!7;_Nx$sEL) zo#9DL>LPd=YBDA$PKcvo72<Z?=D}N%&`O`%B7u96&&>(AhdtOAWxokt=Dpbx__TvQ zULEcM_j4GUTONveLxi1n0G!CbaeExzxmm4u161VB2*ub3{~iBq<{lq{;jzBRF-`<? zXMv2y27_cd7&1FHK9Ou4I}s#%MdO<nD+kG0pCNn1suIb<SRF_ge})?0Au*0`%o0P6 zjNJ#4ot+`a#-0P2ufh{z`H18gC8xwL1No7Xvtrvp`eEl`{)^<i$Yi!@m6m&G?rT7u z+yl6~xg7gLxvg=><Shafk><Fq1|8|!n#c7-Bm3OgwLm!Gjl6?N2f!f6uq|Z{MJGBq z_Y<H_?$5ZR0U+*><4vWiIk*i0-8!5(4xq4gj_GHrAl;gCOVbA#swFGMG{_jL73)72 z=NhUt>;D2!cR*chyeG<Ya_$Ez^*Hi4@CtahPRrycD%q{$@$&&$6I*97mWx0cO?>}^ z{vYz2z)FuakETcBd<kM610yDBYhm0@__pcbv7EiO_=`Bw6}KnB%*}57JU~TmX(;v= zAgn~W^I1<EZwzFbO~!361s8>)wYbIJ2Vsh0k*Q65fo1}cj5-~^r0k_3mm;p)F@&Kh z_vMh=5^7vGFPkKM`A@d%cIs?NQipfyWr>GCz`&;g`jL~-dNe>@ZjVrm&%bYhpWBmB zN3#KAd@a@q|Ik`qjPJ#KGU~*pBWyQ%=OajVjDrZXF}D{;JdZK52><9l5psuhh!g`Y z1KMt>HwtK*Wx$=hc8lWY0pZ-dT?O<1Vo*!q->#CS{0gX@q)tH;j(0lH%p1UK-L5G9 zFyMCjapD|*8Wf{%hn_4Ne*u)yg7FmL?tvJ(Ec!b+lX2_J7ZG1}bn@PSAam_KNHoqh z$79~-acYu#xi7$i%)K&1aVPI<_+`!XTsB+0es?i$f@FDg;p;cxY@=Nwmd|4A)Qb2l zk0G4AwjkVV+{Ex8P56B4#qgcj6}Z<KDJO3rJ&to-rbXfeX~Gz}<BVLFaaN2{U5>Lj zYjv0D#3#E3=VSyp-@kX^yMM*`<_<Vt-Whw{sU|ijkJA!&OXIk=B*eWXA?__EjE#G% zjnBj_xQTmfLfjU&@!etL>v{&_YdgVZ({kNz8w{0=-0gO$LCNoa8PQ2ZoxCfEfA8C8 z0(|dsl<s0ed~fyk;7p5!j{Hk#CQc6?q$_;3J)kV-PKh!-5s$faPdInxlL+NLAhG7t z(`5bwCbE3~|6vN?0h0;&mqW412%-N0+GNH9CNuK+63G<CgO*<Gp)Y3)54xr@u#&kC znM}78<6)EOz1AXMc)5?dz3YLux1^&6=e`o^wI8V|1V49gsMj;V=Mld$)aw$+e@Xn( zP@m1Pr(h<k=XNmrK8%0UYi(A*zt<j+`$%4I17*Wl1S;GO9xvU_t>7Y2(3=V}A;qh+ zK!gBgl#Qf<%~shO;;>*BV8PRg3eKlIuImL_1yC^->jwBAh5MM>D-C!aGRxiM_H%lH z=zkgFzSoBIH+syP>-8^dg5UNhgu=m$&H!gU?!5Yc4JB7t+`Q@}>i*F!$cAkvK&U?# zn4}17cLzGJ!=qpT#6ALoEALg7TDf-Jrl$aDTI~Vr6|~gy5L>6ybDyME_il4%en-)2 z(USiY^qaudAqLJr5zW@rv}&VZkT-Q>S|$c_gkaZ`&#j<LO{xh6HR&{CgsDAKn0fUf zQ+ss7JP$lxT6@-j*4o1tep-7R*ut`_1uW=`cOQQ38EJi>qd#lUbdbDsKRDE+{;Yl} zeAKFBUcm*T7~zdF-4ss+wI*%0aTe;9c<NuUNEDcAIYvxTU#(TW3l2jykc1y8(8a%S zJvT@Q>gVOo%*2C%d!3fZT~KdI<T_g-e*tYu<T_g-?$lkFPC%Xooc|4cp9$ze-mHyj zrhKk9<>U0!Xm<F~9nR=()#!R*3^UQ)YNI<2w2AK4M$uU+|1|iT=)~8L?ly@|quJ$0 zSH$S<)aY*4=<c-9J*Uy#*(f?o<@42&iB5d|=<br}G@9LhbjLEfrzN^U?(rsVPn*aF zxid`4p4O<c(0xIc89B(E)+&KwM5fw5W2*fi59_>4wmu^fzbp~@o1M)pWyEi4Ix*F9 z+Ed}1Hl6txTTFCsYUEuLd_RD%iC%pD=-*0;{w))IC)0oL3tAnmao@GAZjV^TcdNX# z)p2J&ZFSs-O<Ua>;%IeW0v2$}?YFvJ)(1LFL(%=+bb~c*bt!zbx@2Af_fMc=RdyS6 z^HM==b$O`Iu%=M=ms9_O3q^rxb*&)PD6|<2z!|&*r4XBfLAe|AC^m(?W4H4SlP|2C zt{YfP#qKS@A!KGd#bzQk_;yN_`$5Ztpyej$5%VP0cLcgK#|^>bhC5>hK+zr;SOR3| zDYy-r)`@SSX(OI(RDOJMJ=jV<uj~m$>6l%d1utjVZ*f<TS5#o4Gx*OiuI*A9XC@>| zgBi?HGi~Xyp91a8bi_!s4+T?}_962kXSnV+r<<F(GrwnUOqSd@(w$){)?}u9L?75> zvS%{0XT$=K{JYMbeAGD1n7D}4oyuG^Nlk+fuN;By^uiKBb#J=v!x^M(MpwMJKKgJx zc_#V0W&QJ;V7KiQD!LkRkANSpLRF`G*IBjYOH^&jHh1MlZ8Do``ES3fRduVyDyw$k z6{<F68@z=^Z8Do``DS0$syf~K&Z=E>zp72yCU22Zo6M%#BNNoBI^7%3s;zic)uwEt zS7Fp9v#EATf?8F#xltxm{!7)SY_nHs)F!j3mf!MfCaAhQ8mT>{Z8xb2w+LVT-BXO( zWH!~l7pOH&MT6WcD%`5<s9R>1wj4c<)s0VeBT(_!7z~9MM{c=U?J|V|<&6YLQD9-5 zv*+U}u&|K;DGDr#b79ko6u=w#geXW+pdvmD0wokMPo%yLq$p4s=i;X_3g96%K?5lY zoDyFEfl3PCxivw66gsj@yhjV4W9IYd6%IF46|%G&U(1Hi38M{n=fa)vdQQ|Fk86VR z_+edmvMW#jT}&uE$RSu46Kt}}a9#M|0<m|%?__jLv(F9uPc1y%<)pIHAgY>b<U4WA zj`EAixAKnnAvC1%U%0MEg5CZnHTP0<&h3Ayf?eiet-WKOYn-l=82EJ)fhOv8lc)v8 zgDL4&X;98ayYr1-_)Rm%?OIRv{zgIf2SN7-LH7qiKe0j2W6<j*Q@WW%UT=M_r_W_3 zk!sInK_*|u%<5)LyUb*A*X@+QyO9xh8~HyP4=T0tcL(;|W9%_m_<I}cQxv{MwV0r{ zn4l)<w*>OH8Tr9)P<{^w2UDPXf*ALhV5T_tur!_FyQHP)PHgT>uKIE}Na{!MKR7cA zY%rt1Qjlf}wShy(h{r%Of7}h!Hu5ywrbIwqUN8)!>n$J)t^%@y$UlHQOr$$P?k2)V z)IC6Y72~!h0;7+2i^}jaWD<SP1u_pv@u#@)FG*gyiDdY<1*71f)}72=#{leL_!IEJ zRSRO2JLL?3k<D@2M~}~nwn4lj$bQZs+zZ06W+af}b8$=F)-n7}(Yp}899~W_pZIj2 zJlzv7{H}T6OJ@5Id<B2SKq}9CCWhpV9K)X%@w0jpgVXCqM3mhOcAVrEJp}e$jJW^! z9>Jc8x|v_N)HS1}?)T^O|7QBgWH$TAGhoU<jFv^4fJh(Q|Idg)_y5$L2gBuV(OMMA z+wkj$wJyk|TR~<3F=<HNsW5zh(JZL6xrD{wj_$gsg5mr6IfYd7Dbx&8HTOnYW{#u# zC5C@jv>X0GW~+y<<_?qD$?PDrJHZNlz{bAPT9s=t1LK8v9(d{I-hl=&;t*7BQ-AL; z_4jy?rvBc+`rDoF5Z&!;Po^r5M3K066<meTrYe5}#8l<u@C0nC^4UO4Ro)52ugbLu z$EwVhYO3=4K>VtF1o~rM{Ew0ss`4iICsgIl4Bu2$ewiMh6~$mjLRFp*(yz+Nn+T#R zkAQ!WySka1ZrmnSIhh^g?hkmJOsvYu+XkX4|3zc4RoOuavnsbnrUX?vd80Y4$|-zX zm6O@5%CEu{R^@(;>hTYfk=>-cS&!dF)Cu)Cgn)iMPTmv`_4p6)59+aQ@TY=)J)QtD zzaA&=^@n=g)mOt#BYDrhu&u|*>>#ICA$U-a$7uc4t?JyFEs@V|mA;G2?~mceJi%6( z;c_fLCNr=7YE17v_FmBDwV$QOxl{P2*sZp2EXVK}%v3<kg?PC$ds6>e)sLrT)AO%2 zF9z|nY^MKf&8xvd?o>1TU+aF^7q1;YMNH-e<vRO<GLD91EL&$^Q1X?%c|mFEL7_{s zjiKx8%i3{lck8UtGk_bT&oQ(b{Tpj^-jOgd>yeOAi&w3T1SDq;P9DF>&YBr=x#~py zW*Wc4?K|?5LiB><iIm*YSj!G0X$9{QjTMwT*Oxofl2l^l&a-lZ*TKWB(`QAu&O9rc z?5g9_Qa6)V^~|bnw^Ov9eGC><;5PV9GS>KE*92kL1Yyr&SZDAa$mVRMEPJh-ja=hn z9$IrYQq~#FzZr9$^aY*_1fDd?T(pavC;4ix8?!FwN#<O)2)R$urfz)8VNqvrE^+*o zAhBIzlo<`zP=hnLF9mM&1#UC~M(>TLL<Wzi0AB8khAl?G#J0ucz~E8}+~*72X9UhL zOe4^BEpWVkCLdZ%mOg4ya;5Q@je)A$%|stFsHt?1G4k%5z`B3rWYh7uvbF1Ws$D7* z8=HYk+3h=d&%h_^O23#*rMglo4yUGBH`}_gmvUPy&j0kXerNGF$iL0v9}wSaaQsR3 zB`N!EuG4qKueUzVV1A>YbC;j;yG+VW?%!onew6M=!<7@f+?nkW#C^^*1b4)RY%}n3 zpEDD)pFx`3d5*a=A{+gWsdUe=;*6*TX)^42=F*4^d@Euy&63}OoJw`iGv*P`c96#W z0!w+s^Z3KsWa|se))6%zO;fhyA3I5(^8)|!8SyrHXVZEuc~WPnqUJwQ^Z2&Vd;-Zo zQ`Pv<2x~^)mzj9;Fa7+$_i}_i)hD}~uInXQ)SVT`{R=gAH!tN3I<hko%2l!M8%00j zWov(s{VQ?PUD9+1v#iHMMdR>K#&Y-->;ZB%B}XJk&X*1`>z+_i1q6<RpVR*m+||d| zbx)|^pODx_38&X`WNs}?$a*4FbOG4sg6^{!jDn@em&-sETn%J1k%xh71Ja+<+vLrX zvTh9(6++-&@GF=O#Lf=n?aIAk-_zQ0?<@WW1}HfQm7SOS&M+=YNMWDt6tX?=(k;5i z$MdjgmJQ}THkjhkg?2SKWw>~dm-~LvCmkK<7<d&8M?o$I($86L?(1+b?u45vo*;p8 zb{9R3K)v8q^fLkt2I3T7jJrxqR>^0JZi3|1lsp2+Ek<$&?kd669lUa$D_RACos^sh zolhCbKjW?vvsLo>q7xzcI=uQh9~!X(xU09OEay-CoMtErT*Wznnk#pS8h3v|2UOK# z;bn40{dE&E_o<@q^CV~19V}-w&>FREchO!1GC9*9NRTrsae+!cTXYWum@`f>GekWu zR)Ob=E`or`klPw%h)P_plFt{N0?FhIQEyF9LWY>vD!Sv<UOevcaz7t77n$*{X#G&2 z`)z-k*9|=*FD?<`<;L8iO~^lE-w?EFQ((RMYO^NWittZaUT#abKkJ_E(^`}z{BCa1 z30)+Mn**5-p`z!Zi?z_yJPpD%gS>Kf5AiP9y(-97_2{4i&lU}Yrl6jw$KfjQT+tV5 z?J!m^_2{bt&ky?y*`VY=Wxr6&TBf9?A;?sd^t(m+5rJ-jYxrKawLeRsJHT}Y_hQe# zo`Z$y^4AA*g!N`HG+q69W{xo7(dLjHBkyn}z?dMw7zXHW0*t$bQRPjd@~3syXa7fh zI^iGqr|m!RCdkufzGqhgJYz;8`)~X+W<q9H0tjv<c+c1go*5D>ZYECdvvxW+=1WPX zZsg_8ETJ{8t2OzjqliqJUpE%z-vio=bFUk#^7n%_mc4Fgq8+-*;Pr-yA)oJ;&FJ-p zu`vGz&}R4&`mdmkrEl23#=iq?thMymH_-!|q3125uYVi7&2NJo=JmQjcb{9#o;HPl zVKM&^(4DicSMf8<J91@@RrdH{{5wF&OO!pqG(jbOB@<yl|D{l`R_NAK?z=8({)W}R zfnU*1n12b8D}h{3qyflQAdtCg^&iNY3eF#aO#Bn60#JVkQqZkCR;>fE|5@ucSab2H z%FF%8Etm)i|3B*#0slYiDu~H{)|1vqaK554YGy8Fd1KP<y7?DF(3JH|^H)~>Q=m;* z&kV8B>NCg85G#8A5AZdQ@+a88)H?K#l0LyqvGPZOHq(O>%%5gX*9#F-&Y6woe`lKc z-_cuX10E_krGO!}2|Qx|N;d{PVhreFD%v9^`YtBwM@`hW2|Q||?PC6o72Nz+X>sQm z-Q7p`^>Amt$Y`;&#LYhgwwjcGZ)^FzpiRWz+gkoHXcPJOww9mWQ|5C&xSY`CACfN< zI-xHDZDw>om^9_T3ECL^qiq!ndP!dWXxpusQT=FSyO=z)_}EZynHD%9&I`s~3fj!r zel|1mv6mItB~h-WJ8><Q`;*brn}2zA#^VUD!2;b#s6VGFO6%@eZnKb?tEBMHcFcI7 zyA$d5LT(iQ0wE0?2KqHU6VV{|OVpT&RKt2R-ad?=!N8yrkE-OeMUx<DW+HDx(vA=u z08~QF$a%h~8zd8kQ>XXbVMs3~sJx;A-OP|lhHizkSosB^qOpDKux17^72pddUNCwQ z{EgAAkk^6HDlt<fpDj8clE&yFNCv~2N}Q;Y&lPQlBuC?k!PH58`9Nl3e!l2sNHJ+n zF-JM|C|7|OioSxtxA1bzc&8qkxL~~NzZ`jTCMr8G-H*xb87lf5hF%80qUV5YCNcn( zV;hiu&XXjwLB0&cbi1ly7+yB;a{m}I-EIoscDuJrglQ^nyIp19CEl*>c9r~5*|ytN z(pSQ6*Xhp*EZ?^9TBrJ3hl*a;dNUJ-n<6kXA{9ATMcagmeu5~=05t|#s6H2~MB7k* z*0@WBz9Qfkb<%P%b#1ql$IAlUqL49<@2YrB(F7e8Dmo3>Y^IUDIZsoc87eV8WNcBI zBQY;`qU9^?@3u54)SEW$65F0s8zIlhoo>POz4E7poJqR5j&7Ob&U_uwxGT&6a1nCN zbb~AG0Pr+u(+#dL{cnC2Vl&;~3OfYM0&Tjr)9ny&BWN?&pKgbMPe7Zl?R2|ZsR%i3 zx;IOAGVgm=8b4FR_?n6r*R=6+*V!7D!nZZ-SP{Eh#cd5!_8eu~8m8n{W!oC2q_2cE z%q$nmY;BBiS_^c~4LL{XmNZ-NM9<5e$;MSwkCd$^@-Pt7qz(WvO{zzK+oX!-0(pQk zR{$~1>uVr>^Lk36(fx$9d8P1e;&o4*W7QCwcx7{)o3YO(Udd4^Z4<Aguf#O3V|R#D zJK591o%t0j$(K4p_skQIfxdu?O6Kkl*+0qf=5if!8FUqGm^4zvCi&uRDBjk?*sE_j z+nP1D&ZH?KbD}SsPuWh1vYkYBp2+Bq9PUi6!FGEj%J#6b$DIV9^bInDPdERjb>pYV z=^OY}Z+ET%PQR2(L%VY=efq}gaX`-loqib?hdakDqk@N2!9!+7ZxlR4f2-h;K*6Jd zg2$`^_A%-2se<<c1@8q4J_r<iNCnR1s}ZXG0W(c-%^KPE2TZ0;-b#->b|J0x*khKS zOx_8PoEiyX-c#0?Y1ZVw(4)f4K;(sBh4Gm32|RMQ%Bu4&W;yg$yBvDTxA1bYAl*#O z?8NM4J25lMsb01dFtd2d;*NI%%=S8BD(7*d4DWK@xaWw+okl$F5aD$|#(N*Jf5TfE zbFCHlh(KM6E2IyG3ijX1PnB@T3!E)*$wBn#;m1eATwc=z>e<Y?I(8jW!b_L4>LJGe z$$qux|91R`N;<j=d`9d)n7vvanIf;@HGlq7dNtqHN_fpTT~%yzFSx7x!e1$WiOA^z z+N$?p<r2hXF%5r{==pEM|F`m5Z?6zT?iHx{oNV8JE3b=u^YOUAOOLJA1;>^f+&z)| zZ{^!bxDEmjPl`{^nASDH|0#aer}qBZ@K;H^dZzXYJgD+ISbYDjeqD~dPvS{ler#h4 z?z-GFD{OgP1?s}oK+<BmEcCyXcSNrzuvt=kdVH_04*gH@t3I{&*M_f^c=ed#qa!w5 z2aE5&)vpUv^~~esg{aB-`R8VqqYE=W;Mk2z7bRFKxU0OLXR7jgJZK<kF_mj0dR6XV z`c+;Rps2jAWJ%WFRrKoVpYw&*qd$}7&5#eK9v?Rh|Bdp}Kd&tn+*MwWSX6mEu`rOd zn9Au%gerG1{VK1k6jWZ9J0$DZ;|ujbLOm={Pa{m0*Asm7AE0jzu@ZW;MDig($>IOM zmY*<v)C3MCJ>WRTi+K)tu45YqabiE?V(}7Y2qexhgv|xE0OVYWQ~Gvr_=~|g91gEu z9lR}c@FLF0GYnodIe5y%13c;k++esNaP;HcX*k?Sp~nMq!ha0had4C2dc3vejW++> zmN)yXE@MiMnm=>v*K3yd{M)17)Ln5=_JNN#eenJdBPLw<;a?V1J+=4yFD~2rO6fZ- z;{Uqx=k}NEy?@|4?wpzZp3J`N<|+GIUjN56%LmQ5f9>VpP2Ltc@Z=FoyMB1VZOaS( zdF~~*Ui(pLt9P1Bz2Lj-^FG@)@8~a{a>~wqckArV-M7xmJATygnvzkE++Kc)JD~H< zLC(1MrY>mLIj8Q`uNUSVwfOuqB8xjspEtZBcTsK8)&Uh8%8uDEYT9L6ZmNCn*+WOQ zzx$(`j(F$Vo0gtFWbur9|FEaWSAACuA2afpPY3*U;}0`hfAQ3e(<Z*XIP!9N`I_e2 zJDz=Rw0oaRKF_-Rv46~)J!0IK>khjo`|!~B&la9l_OBmyt$6nOC1*T)!LZ98d~xBe zvu{0O>uC#W@7(CPc^jLZ`bn3T7i~<N`NSPRzBTvZN8TCPeo4vDAFIQQXFN0f_SHvZ z9`or0j1^^Y4R9QvI5xcu$1&tfxHODWhr)G%8wfW6ZWdfE+y=PKa691k!F>mpjXrh= z+yuB;a6H9+4IFn^xdra`aJ%8&fcp|I50z^m+zhxfxCXeh;ckK31@|)CKDe*pxKf-O zmrQ{xgX2C@*TFpu_X6A-aG${)ii+9;t{CnZxH)j^;kfa}18}?HUWMBa_Z?g`hWZNE z18xRf1spd^xDf6-xNUF`!@U6a2HYX&w+6!Ti-#&W{^NqAJ2w|$9sLM|9fb{JMuUON zEGGjz3NHtFarFn1;!GXrI1fSo-^Hl=2y+?2Tq0rk!aD?+cs^dQ_hu-pfXlYwzQJSU zXf&(=?UAo=Tl4T<4UU&tk^@-HMum%?q_h2Qke8KQ8%n(oLGL=e7~*Bt2>@oY0pc<r z69RrGkJaXZ7WCO;=!^J}R_b{5NW8HXd(HDScs)gi-wC7YIM>0}*YNlHlspi)`27Tm z-1$c*+|a<6A>DsRy7!76ei2W5|0woyMGfie2jGT_A2J~OovhA|vk>kPxI??(pMSW= z;o5XXpMkVRC2jn+mUeKv%b#FJLmmiRA>nTT|3&b}<{7rbH7uw;&VH0l2%XXFBk=z& zI-%}J>sHu0VWgGgiXhrGRqQf<LxDcP&I^}$um{{R#*k)r5!&&4#CHJkRpePdR|qpN zzw7BZPe?h}NFJPyICy=Ba%Wug5zbta|M$SQt6&!|uFR&MT|MxBuhcUxX(n$7bbF$k z-+3_qzB?TKC-Uw#xPQaVK;GQ}7efAZL;n3k<X=VH)bTp%S^8)oxVWl_W%wxa=+!~c z4?89xkNyqED-&_h-mejcmw96c_})lTXdjZE-*9li#YITecOLZJ41HnfYYAO%h(5kb zPJ{mf_%)zRo`wH|l5Vc=VqC)q;D+m1iF;H>OY?JK+W#Knx)Sw`S1laF%p`$}U+!=` zYk@o&j`UxKI6jBlk9as3<s#fgDEsF|qQ4piKgkDv22I^*D3=FBH&>vOHx+q)nB*Zp z^<|y<5M|#Tc2vN1LEbzHcTFDpkxuZ$#r0^k>kLT?|K(=BJOue|(ANg#x(qtsk-BZZ zzJY%Y?B->@%mZA|!H~{Y0O~u>k`7l_(T-x|<FQEJwMgG}$m3<m%lJsgxd)CHSD`Zv zr=TA6m$>+67<o@ZzHlTETxP8m;5z8zW&WB2d{^>f3Gx+PtMeMt_Y`dGjPm^${oS96 z9cLc$^YKxR^Vn#HbR6@-4lp{#kPbhiX4-E?+Al}iLrD8Pr2RRuXCC~RHoWmQ7q=}X zJ%dK#GD{x;<I)eBRqCMY(LQ)_Qx3}ChCJu>HTnb6mmoe~T;fG~my`w9_%kgHuw^gY zHOQNH;6}iv8{y`|uB~DlSLo3U?40a;fVA@B=N9CBhxnh6_E{=*b*I$Td&H){iB0B@ zc7*9C`DtE4f}SOLWIl}q{TC^3^Zy{|H;3Vdi@Pzz0AE18bCIs&;L=g&j)uDmZcQHg zS-5y72;t)LJl2mED9_HQACJSGjyf_G^<xjp>y(j{LcN9EESozK?k_0MiSWB)6!vzK zvgEfK9{gJ&pWZ=QzmYuL4*hJ$cR=sA2(xx1@)3@g&O=>Grp!Y*AN+4*V3tz{hbYZO zdpMu<V0oHp?Y4Z$r%g-`$7Gf<^DF}nLzoGV>~q-lBFh|RRTsE!aNXgML^D@qk+P~4 z!u5me4~OD6^I6(1U5Ue@L3TPwzJn|?J3~$coCJ3a+_7+z;ike(gPRU_0^EskC&8Tz zHy3UmTp8R#xC*#a;HuylS2bWQT>G@{u?}$8R&OkRWaXeAwtqe}>rS|$uii~xkazjY zp@2Jf4Z8d2v3I`N^45$iJ__CTyB3GM^xEisb=i*{@^SyA7ye_=e(-X@E4=5bZ^wYY z3;bo^pW0*3_}OhU=l27@3iye@fAdPs(vGY4jy(tP5Bs|PPvP|we|ogbi@C!-8@;q2 z@W+4`1OM01EgQykD6Y?{yyV|w0kZ)MyS>z5M*VM3d3eT|cl85)Jn+SzcIf@#U)yfW zYxmj3r@h<ihxaa->Mm*jW%H$QyB5sfy=HdB!xPpQd~)T`j-Q?K{k3^doqPBhR{<aK z_VY)Kgxmk+#2eObiw}GJ+IA(2u3quz*umX?+OhGiDdWzVx}pN~IMA2&J^8ugCXE}p z5%9S!KddZVvp!?qRbSO@Jn(Y6iR%t~eiGaVbIyEZ-|nf$E;!|#3qJ&2mUaC8O6Tgd zV;=9FR}TDGz#Z3Ka?;PmPb|M1@Y@!Hp1pSXt{2x`aOChm-@bSKKS5sydO(Y}3eE;^ z&*z)w_B`d`w>r#wYedd1H}B~Pm^Yz*Oz4W^oBwHJ@ja!NTzuX3GyeL+mwn%e&j)@T zDkyhp<VK2rh1(DJ16&-HwiDbyxbblO_<k|m8n}&cd>8Q`+zW7T!ySMNqmpyy!Cr7j z!cB$aoO>DE`Eb|6@zWS?GRuu+KZg4eE(;yQ;c$cCCcvEpR}FU-++}e5FncH5pWybv zeFeu|`}p308}W^Rn+8`7w;Yb|2R6ao4fiD6-{3xh`!`%R8enI*!EoI0Yz|xv+*-KH z;kLkWr<WJuxZ~Q_a9o4m7LK0*jD(vGw-9ax+=XyAz}*A)6x^$DpThkF*BlMK3)~TK zli*H<tA$$!cLf}`f_@l|+cdrl_YGVW{d7AxZlXI1ZU!9phdLeZw{V-`?uC0A?(cA) z!SNxP`#Z9Kqb}*<x$`4g+`_RHAg(=dWO4U$VO=S#wPeHLV!lv{d&8+NVR5$@3CLwI zl;WnIB6TWAve?OpE^hZp7N2D#Ah%H@i`#Dri<@bZ#VuKc#eEma;+{;xx<eAg?I<P2 zY^bFa7bXjfdsmUg?W}|~8dj6Vje&&4tvJczid<!hdhU-bF>;qUO1%#C!r~5dWZf6U z__)N#{d7dCpTzhOXkqaQl>xaasIa)D6j|J5N{rwR=wxwIbYXF8JF>Xfodo2TRAh0F zDq(R4b+Y&^rLg!ul`IZ8qU%RcWO37Zk>Y-*WO4gc)g@BP0ENX(&M3uw&qNnDxg?AG zUJC0W&}4DX5@B(ZG_tsPn&{#tnPhR-Okr^ocCtPQtZyMK?s+d#+?$S4-(iv<>baE` zS=?PqSlq~ttj{4O0lDuMS=@+ASlqgbEbe9{0r__vS=_^2SX|>x7I(>)fZY0uEbfIR zEN=Kt7S|;Si`&SN#eL<3#cf*2;(px1VsA+nw}+Aj!yOUH;=_eVaknzExDlJMxPu;9 zbD&;K<=%Q^aX(a%;(v~0abp@`aXVeI_}z%GxMwU`+)7qh91Y0gwtu3YJDicleb+>a z8Tl~yA42MKs>pq`ryQ;PczixjsXCX4$Ki!N?;P1YLp?ZV=b1!O&so3OaQ7Fk>b zAuR5zOxBb@J-5mwi@WDajNHnate*q*S4u{oA7u3XqHA1W7kA%fK<>&bF@6pmWO1Ka zQO`Zn$l^!0BK3|)?Sz!DCWsLYfe|MO>jJR4Kmo1>slMD5QUb04o9e6JgvHI>$a*}e z_uTf4EN%xUQrsh&tQ&*O;cjJQac47;;vQ{e@x6ku(j_1_ofa1N9H$hwA(v!xi!-vg zc12j+@tdr1Xyd}-p5<h5b8ykc?ZL?!3MpangH5uyGpz*VyEr2iWZ_LB#Z7D_;EN)~ zHyaX=pPn)x_lFhMNs_DFo>N#a2&-q%V7M7E19COKsNW^JZh<agaSJO-@qY|qamP=x zh6IJS3nW>$z=;%(p&*OrQV6S==(++KE_U%`4odN;4w3p<SUe6vSlqOaQd~J8tnWk@ z|JM-Ken?P?pLBNt#8o6x+?-xw<d)@>DndY!dKV;FT<ajLd<i%f0Y&{UJvBAMGY_8_ zpu}AKSN+ek!c^Mm+6O)_4gpR1^DQthG*ezF;Wz&Wf4)8Db+GWe#2<ypD@Fgy;(sB0 za4JKJ|2%Y`yv~Aa%KuC8e+mB0GtyGR??QI+ng^ez(w~Py;WY*RO@-Hgp9Wd66#Y9; zHF+IxL5jbA+qD-xT~qPvviS24VxKOfo&)`zoKT8>U2EJM`Ph_xU4?hfLG<e?v*<zm zb%EBY2T7l<&yuJ06#H~RmSj_kzb?W$n7=N(I+(x2>$s;+bKK?GZuTL~q8kuPZ`jKx z|7dTvlAnL}SDlQCXP*-qlNmX7U9$@#zYSlMb}^c#l|KgXfdVVf_F}Gs$ajI~O1L3~ zR$l5qdTY^dLz~up3-G*OA@>60qQ64!Ysh`s*TyUDs>yf{LmFNcIkqozseKdInY1$< zW8pWlpVfDki23O_%E~c6t01>U<k;TKrTWINi(KgErp?dmAU~nM)ywwRNPbdk{=Wd3 z<pZod+hZg7B>lAeN61_?(8^2uY%(9Zpby+3a?(yy<e0u=Ah%!S*j~-0>6?;j?@GvD zHPpt>_S;B4seaMkZIJ(Nn3ZRHHkaxjzb@?})I{3BGnER9tsL8RBe^E*NJF^7kyf7V zypep89n?P%@*753dA9pslBeDLhp~3Fm6v`XCI2XQA><wqIc=AIJ+iTw_V9bi?GQO> z*G=ks19DgW3OWAEx#mB}m1Bm9MYYIT*Zl#9CSpA(Qx50W*DY}RE~&5UTUouJYDrmn z-^u|)1~=x^uc+@^(y*eoyxvivQ_2^YR#nw3K&XcDy6V!Zz6Avb_iU`Ls&f9R2-BD; z`Wsnd;;n6{s4Fim!@mO+OR7&TSU{t#a6tvq<doD`o?c$k00Q}?W`RPk)HT$Vmjgv* zF0CuCF12V0Odil*Lrk7Ns-b3a<pTI&EM2^$p?tX&TUOanU0z>riTZ}p20=@fApGEg zCOk&hh6SYyDkPGI$^}T64WX7WHj_b?Z4yyZrg}^26RoeVZ>U@>y2_U~lvguVFn)ez z!{X9fi`UlGEEH9zR#>E=zRV)0Eh()lt!}8S79Gaa+J-t!YpJFbI!h#9{j5Y+8t|YG z^pb|kDytdqmXX!=@*ecuwA`?p?!D?pcSfQ+!;wgIF^;BLF)19GN*LXimKBbA&$+w9 zk!RD~aHe<G%7$>rdk^QIwDm4H^L+;Qo=)2o2@P%$-Ov!lE;SJ^22HNFtRd16Eq<Sj z%;+RA>Kh`_7VjTu2=#6eT^pShZ3y)Rf-s<3K)Dm~=0?|AgAR`_j2Lsypc%z52Lc)1 zlxPdYe#kZxZTt7}Z4Olx+ejy!!$=k)k^`GU1udeR4n!xZ;zObf!~N2a38zPj5zm$3 z0SS0v`ZVEt*&A@C=W#e~GiRr@<KESiA~0U_MGOgf&*OL#W5k`ScZ(I0bhYBZ`x|J) zhW7&_?l~hmDJ>Rmo9?wf5cVPsNK*5Nw_q)Jp4UHgj0=YAowPRWL?5+shahcMuwBGk zz7}cErWjU!7pJ*iRRgd?CjnbbEQeS%u@=N?h&3lxODvn%X~eQ<gy$`1{4U<qdWY{$ z3x^}=DDD<%?GeZKSW^)W_w&wMJt>?WnG`-G;=O`bx1Er8Z6n^u1CdSPjEMIDDn+69 z*s2Z4{Y~L^k&1BN6T+R=g}V+5=Xg)Ll${lh6@(9q3<!7hR=gjMc#p0sfM7wmFf#F% z0x?9haVYLLsN6dZh2GX%R-D!rwryLz5Vp1T_BajUW>_S>&~P`dGKul}(zAuPAet9$ z1EV@cyuUg~GQxefY8JdQy_?+kk!;6%baj*rq<Ze&|0>a&{!^kSB_ujJ>({1wlF27Y z^+J>CNxwGLM=~WXycrt~p6Hz>(LXzApv}^~*tT%&=y2Dgarh4^m>W3{H7++CgU9>f z=+WVLsB=y@Khgm2dQ?bAJKp`PPzqT%HZ;`JMV}DyKJeZTck`}Uy%Unf;TDs^xe>2` zrI6*lvhw|K^XQ4J!ro7-LcLw7!;y%07`mAT)PZB5VZRfa?xy90n|r@sJu963<{9A@ zQ@!{?s7UwvY%?A^R_}$!y$K$f+fXmMz8~%pIS|f_L{ElTHY)0Fgo=4TJDXrzAMXxt zLpY9#+b(jcDciSK7K0!2ZuBOF`xb^<4_|Z4rO+@d+zrhLjobUv%C)E)E4IO^^x|;F zI@q+d7_}xRI_ZNC!Xv#Ep?t^<i<X;~^YtpUC1lJV_kGAbwi+#b_I6{)rq$66@bbJ5 zok<^T5BKycqDX+(t|2_oD@Ru6c^wvpn_VA?z8^jmc@U2F4L6J47RDjG(dg{(u&Yd> zzg&e<${sTnsSdY%DcqvOX#5{%7GepH3H5A=u;?431vDn&J-G@s+I!U9nHKXNUllrv zy+{l1DR*bs+a8XDy5xk@HXF0=Ulr<3&ou8=dU|cxm1Ko`cwdK@eU7(tRTMdp?p=E( z3K=zn1sL(l);7^s9ZN;cy!4&nxVJYHI?@gImiiL$4h;=;!-qbLu#>{g8p7=(bHnMw zkiB28+KsZ?;2vO|LMP|F<Df3|OOLh*$Crdd^`ZPj!MtuYy6T+t(D2rb-uwH?g^g=Z zv8g>d-gzEsPk89vCd)256Fn8`j~8bRjCpT|LWg6#cs1PV5>qZ;uSBtUzx7bcmxd1= zip(2|N_Oa4<bEfk;G2~jkmcu@EN4B07SH=<Xzlh7!m;ScaK_)l<1ns-dqs{m`kr06 z2@(Um2cU8IrQv47pm97xq`$v?yViwQS4LZ$=N&&OvJIlqh<BHF0M+Z|m3t%6O}6C9 z*cCMo1^~^}wc%0TGijkC&=62ZQN(*zMe{x|5ubBrbOV(l;BZvuwP3dJE;*Cc*z^7o znnbA<-bH633UW4kleRyHdU5m0XdW1@_pY}SdEA5jQo8r=GolB6T`{jkmwtX)XqamX z6(wC9nG=qo-D4b>w-?DeeA}_%_=(}H6T+>cI51~+xa|q(jCO`Yk-~64Hu-pjMI3gc zSkCNqi>_t-51tX~no!SBCsW2m&61trT*;DAs8wjAm@M=~X!d3;IX*XFq?#RW`7H*k zwWxBNF|x8ty#eFQr11F2O-2NPPKa&_55?e*GlZ$55REbf(s?Wagd&($V~Vs8f4k@7 z551Xyy#S8_#B)cVLcs2Txqu@9vj8zIZyyCLz&{=T#HzJEfFA=E0=^E|7w`!{Jj?&~ zehb@A1jNFLK3}#r|LphqE8qmsy8-b!r~NuWJXiEN6tE}YS9pPn$y<9K_rP$o0I?#V z4_~Y@+(1Bv;}=Nu=SNCi0bd2|1o%AQV8DBXzENm?r*$~^Cj$-v<a;}Y=iwpLe;FY4 zuK}d~k${vR07&^BLbm`M2)dc@Z^FaV0MOjWhw-li91Pe1*bi_RAfC7Se1sQ_{Q-{x zWIRQHjHf>!<9`*eUONMF<skFpM8F<^M*!k#-w`kh`f9vZrQIU|8LlTF^&JLCecZH< z;g<nYZZcp;z}|q&rwrjgh!@uMKLwC>&jjoTI2Mrhe~p)_wEJ&>3^x^!aw7pLHwch& zhXXR7qJRSdzs2il=GRMr)V~ps{$~KvpC69Wf6F2GlZZ6nAV41D%XB;o$aFl;$_Bat zun_gC60itxF5qauQGk5`e?VfHFZ`RO2jDq?<nwH)QK07m7JxodpbLmqA$?{e67t6j zJQR@fnL=~LD*bN-r2LO~dLsRaz`FpMKK^4*J72={80j+rNzVez1Dp<s)hK<A0}Nro z)Og{K7XEPI_X8XUxgLN=A)fYtlR&2fx={I9*evAi^BUk-@c#@*x!(a!1bs2!IKXp+ z&vO?Uo~JM}{20KYpmCzT3Eu;d;lIX{C&Tj);PIgM0geHD81P8&w*d|Z<m!lGK>pXw zbe#prbgcwrx|RsPR`{n1zXWg`<ao{m<2xFVb{zpoyIKR%t_a{*z<=Ypm~wjnY1adQ z41bsKHv=*}-(N8NselYW8<637v;o5p1?&kr3y^vufK1=_Fm?>}12P>i0WuxW0pi#4 z3E@8~{0D`<6_9pp2BiMW0cpoMfYiGTkoKGiNPETu(w-v$Dc={6;kyZ)3&`*;Aj7?f z8^i4ZWH|oS$8b*qQa`_!WIDK?7vXWj$38ShZ$2R9+W}H<w)ne%__co<oe1?m3rPLD z04cv2knLtYU^mdq0T~}`HSwVA4V?$bd;?%UMbIXlW>_49uzVE}&jSntwgyZCL^s1% z9C0)s%EtkC#UF$c*b}*1;BN)~MqsJH*#i3u%oo^PU`*imqpiLJ0^bw(y1*9%J}K}I z0=Em?B=8D>=LlRSu(!Z20&@js3H<jc8~--~KNR?uz?TF*Bk%!%I|SY+@M?kQ2|P>S zXCtlt_XYk<;7bA@6L`PC+Xdbr@M3}I3S1_zM&R)Rj}<sv;2?qR1m+0z1pa_d(M37F zBk=D6?-O{Zz-t9=6nM74l>!$FEEhOa;Bf*+2s}bycYz%Ret=GjcDyO@X@QRlyj9@! z0?!t>Qs7*HGX)M5*jr$_z>vU?(E?1m1^!v!vjVpYyiwq4fy)FQFYs7_hYM^gFkN6s z-~n{HjPDbHuL=B%zz@-R(f=)hpQ4eIeox?20v{20i@@sy9w~6Jz%Bw06PPJ5Ebv<l z!qoqTz_$hdP2g^Uy9DkKxJBR(82lOjD}k8;!vep-q=5dP3*0O4MS+hAykFoJftv-M zD{!^Ig#zaa94BzNz!n121%8i74dXu`@FjuI2z)@`4uLlcyjtK{0#^t;QQ$Ozg#vpB z%o5m4;0KrtG5$9N?hv>|;0A%~1=b3z5I9lbD1jXX<_i1<lQ5IN0-qQ7gup8VUL>$i z;3)#<3Y;l$yuc9x3kCKN7!vsX02}Y`1l}ZYy}&gB=L(!DuvLE>E-r8xCSkO{MqsYM zEP-G2vHl+l{F}g+1l}j`PJtT)t`}G%kQ@9ko)H3%5ZF>+ra*2OL%DASekkxQfp-eL zP2kxAR|;G#uw39V0>=vcqL-vc;ADa01$GnIL131^W&*#+m+%623*05}c7ZntTqdwa z;3R>g1r89{OJF;JIRfA7Y2$lc;DZA17I>4uYXqJpaD~9m0^12(i3tYtw?W{fu9hAx zu$w^cFh{v8fz1T|PZ!JoNZ?BXpAq<gz#Rgw61YL&a)Gr1O9jprI7(oVz)k|&2uv3k z68K4HYtOp^pA-1Fz<UMWA#kI>3k22+JXPQvfinaa3mho$FoA~(3=91C;nt211imTo zF9M$vxLjbZz>WfQ1^(2@>iJgSM*`m#c)!5A1db9|B(Sr<b^<+tKjcY134Bf9ivph( zc%Q&K1)ePMc!5uJw0a&AI7#4Wfv<P4{;vqE5?Chi-|emcHv;zy+$ZpPflmnBF7Q@? zzZLi!fmH&_1kMsTMc_z*Lj-<wn2rB!fu{;wAh5Z>n7}XFS^50}cMIGlaEHJx0+$F} zEO4N}-U3?*j0@b_*6P1epeyiSZ7lzT95h1wUKIFyKy;PyO@Mf2h_46i3phVyo~Pqi zI_9|{QU;iYaKiyT!0v!9Ad1PreUK-;OW<aKYXr^{I8tDqKu6#{1UBIXZWg#k;5>mN z1?CBK1nv_%b_v`paE-uu0!IqW69_;Rk+EV27ox`D^y&qE92uqu5KkBXec<!@5RUS? z_UlEVHzTun^%Qws+w~)Ol;0)(M~c6$-C6`b{r$C0^hf-9F7k)suWOYa4qJI$J2Vac zSqP(Rt$r)CuC3y8G5vL|)VWYiTGu8m6?t7NwNm7D?NhPPc`*dU)f{2D3&w8LGhX+R zhMPy5aor@et}Wvi8pdDbe-9bbx^}5ADi>*8>r^K3>DsEPLhD+z=cpfHc8R`G439L_ zzGtF0>n$MSU(?{9NV6OhX{pz~Jf<y;{P!n?zZY>OhSwFns^ChbH_<;YDZcGV{?8}* z{~?LaPm;eP$-Xv8_GQ`d9-s4hJ!|dtDlF-|X61c<zK4OmKD`)niT2-`tUt-Wds2Sv zN|K+NB)>k%KO-r8chsZA_|Hm8|EMH+?hKSDzbc8oIZ2*h=_kq)Po(+&Es;Jn$)0&h z;Xh6)FYYFg7``S+{<S3iJn1=6UYFv-EOUL56y7O0rM$!}O)04^UuGz~*rSBYRZ2?B zN^0xMmpUb-^K0rFjJH|5Qeu~mnB^uVi%VC`FUQi7`f?FT)KGsqbR5L5v5!?bzoy2< z<1bDrsjaDRSXfhcYDq2QPV`OjkwE1OY8Ef9{D0W{68Na9>;Ly=NoFH6nTe3F41pj7 z*%Cw~;zAH~f{C(=3WN{>NeLll0jyfkfHKBZTv~0dEv>bsRx4FosTKvPvbdqPidrr1 zBG#?$TmIkgUEZ6_Oc2}OufP6&pa1*Jd-t4k&pr3teR*@=X{lUPv$(3Y9wC&vX{pVP z^@*&=56NA-eEHJmWD$+6O-pK$iOXuz5EqHRBqg&Z5fNEq)sh-UBUKhzEJ+E3M1`7b z5_3Q*xkS;HHzLi=%{sl(v#PndwTb0Z*HTwikN+p3JeD=qk8Ev7Bne&-yNs+sC}Ed4 zgyOF~2~wI8m>1PF)hwxN#(#?vh-pYN_f|GlH8yr(Re6=_A+yV(FRNKry{s`I4i#`2 z{*jbGm7yfDvU1_KYnqk|U!4FHa832n%BGs?)~4pV<qdXF@dv17Rn1Fn5;K&IfHg3I znn+=`*DsOP#;81F#*D_ghVtdrOJ_CUPiY8bQ%LQq%3>5kbFHAIG#j+2s;25xPqdpu zcqIf9MaeV?`Q5eLrkZ8TS4fr=6}s_*1_?g$-*=TOo9bGm7+Hm6F)XZV22oOw<L6b^ zC-SHQ6dg%I?#iGxRkjFGeG-x)J06=VlPkM3!Nvl|oe=%<CSX>V*W9{LbaVVqUuA7o z7r*M-x_YKE(MP62R0!QC3AO~ytuD#-pcd@bYGl+_Ev)4~38{?AKYB<|P-Ss7EMJ8F zM&yT}GCM03nwZ{7!D#a(gjPiTA3Jm)&5bqHb&Kn&?LXO}2eFAziIrw_UBjZ9Rh2DO z3q{NV8!i7L2om0B7LOWTly6_fW5$+@8GCd|$uar)#}pOALwXk%6^$J;CO^OU*y3^H z1p5M?m6IcvtC0yOIzRjSSD6^TFyx6b3`3i-4da!Oj~f@3AmVE{0!j1u;5bR#&oH<& z4w-zHq0dDam6iBkWeYjvRarT6@|>9(v)vU6q&(_kT`psd1p}z8tZr^;s%u!Hh{^J_ z9IkbE%~o?;iHY|o8We6N%Dbh?CRJ8WDxFzs;~N#2uiQ0|NB#ahAxTf=4|z2UTbEQq zNkM_UGfStRqI{9Z3R)7Bz{Vu~K*g-WzO+1aZi1LBkER9_ugso_n1IvDt6I2_a}DHY zSN*iS=hejKaOKrCEEbh3S)L2;+IiLXlI|<Y{a}LpVgaaW^~2v;F;u7OSC73cUVLZ9 zs~ihp;iAk`y-AXX@vpw7vY~1j#igY8M@rr<DaN=!$x|quwDOiO{FW$?<n%7W-W{(& z(lI7!MHLPwtvsP$V^wvsy!A=)Y7bMM{L^-7dT&wkuJucWE<a3pXv9KfvVJFzm2z}? z3y!xFs-UFwVycC7wp6w@tVAzYSy?_QF+{DBrzh4i$YUQ>kMdRPq9l1WwUvvTP`Xk| za(_^JtfbFT^_gG&p*(#d8}#x@kgWEG|5B5XoZfACx58_T(qiL@62ArdsVKVW$9xHq z#qSf0^vuP5C-}K6pEMC)JAljLn2I~`qCf9{=9(3YzgoO)-i~1ZwIVq2bsq)4CrHR~ z;)@qA9+~L>b@;p;UHMb-MRm<p3+plVHa68Qt7<yWXvS2#VG*IzM<K=bg|0_jtCf4H za<5cwDO+uRdHL*${1r7~;+TKz$fHLV<rh}hqiYy(Y!Q%=M;8w@aExJ;J;LEg!z`?g znnzVvwba&Npr{!&Y57Xb4XYM4kJ5k5A2DX+=#j-ZGoa_2)vAA}#=OMfsLQ%;aPG0J zWtE|(4C07DWlLAI*$~rCd)A4w5aN&lT|*ru&@KWiN@cUb7H^=NTWZmWfTgvexo$~A z&7yotU~91$h=8HK4uQ_aGNXY*D*>@?q`G1Ps3y@XWCE&I2^TEYl~(yEmTH8Q1!WQJ z60=D4by(jSoH6k<L=9SQ!eS<Y-hks2I1rLR;dBva4^aGe=%yMRC8@&65zf(gsG+i@ zx@DCTZ3*TGpX{mSC({?TF2f=ql|LbNxp>A&5Z2Dh#Z~o~C(8pIm73Vn)S5!mYg&|q zI8A}>0F@d27S?8pQop=mi6|*KS+hA5F8sR`DUXpzX{dl!&1D%@S8{QgO64*%nJSh@ zU5R>{td{QSJ>^u{DqE~?CoW%JZ;KZbSh29R!Xvrhw^<liY#o53OWP1l0YqKNu^PrU z1!l`Fm1u)lg(mn3UOV;83$fx$me(rRbP1sp1+}SxRjL84K{(BHL?u%d)eu!xP-LYA zT`qA{v1=SHQPiiZ>gv{I3(sr8EJ2_1LDNRrrWW9m>PmUw$B+({5C?!Di-3WXIMqwh z!qGe{!Mw1p!D#+A2RkqV0hg?gfJw3uCW8l#y3j~SViP1p&{T77YfUrw>zA*rT!|Ld zWMFN)xURk)O?`!dc81mWBBN?WRUMk8I8G(kGotY+!lD{c<_YalOo?SHBZ$Zo5GYsM zgaby%Zn)@Cs?mjL;i6NkYH5-2)~sr*YeM`jLW=0Nnie)x*4Hd<F$gr(Evaq6vJV{W z0w7a%X$xCMlVDUYtwr2?vXB}$tA>{76I;<UBBAJR7PjK#6*B-^0<BFNLyf7e!b+b( z2|&uyn)5_oN|J(^saRZrf&!IJGx-dWeo+_D*WoBsWpfoaacYd3hI4sW*0IMC&=LXZ z4hYklIxOz18(J!xTbC`<{Tp$Wg~H2#rkFoA)0H(&R6apUsD>+Qs*O6aw3LU~AVV%R zc^GdIDw!zHW>M3dwU??aic!@Q?ASCynWmbSDh!ASDwpvM%c>Tws6$UE&_%{F_=}QK z{1$H44-2ZSufjf@0TDb5s4=y}p!{_0RK9lD+SY`i5>X)qQZL&;qG(a_Yz1kEXa|yN zV5UKBn6FLfa*f(9f+#y#P6AC7N3H0QtoC<qy>V_m=9hI%%`L|A#f#Aqt2(GVPy;m` zrxTkEv~}#4%AJ9hE*Sh8DrGqmShT2#1P%{$xnYJP0fg#_ah9VZ*@Rd^)@YY79_j`u z22R<$SnHaNC2Te#1R-7P1dMFLK)!IfXlts|6U|QS%CJGADRM)YwYgF>)`cn__}CEI zS`9j1iWi*#0l|#{j3ZC#psqv;1+ncT>m~~by+>2ac_Oq`xs&P5M$;lGzZ%tyGas?b zEueGjB?a3?(ueUY`EqE{O-5qK0_^ah4mF}rMs7(>q@N~QiX@Snc^FglGg9eg-0N0{ zI1>haHR`iPaZ1vlx`YN1$gmS954AQ|$}tH$(pBeSP{E8)f|w%IG_Al~N}ddbQVKv4 zniWq?<8tg*O8#%L;xy^HDWsuWUxZxI5|sv$ePLDg()#5~D&@vAGLI9yE?$OciK2OM z3M?|Cxl&}k8dOw;SG7kmpd^%cVhF3_vAL2-j703J$qcbUF#{LjD&@9$0?e|K4W4aK zj%=XmUO*64$0BCZOr;Di+ZuWGy8uboD12leDair`O}xHPBIK(K^hkUmp=k2uL<_14 zN=eo(ImX*C>T_!YIw-ptK(6$L2L?I>5Z(J?yc1FffRzJAR-goK>}qmB&{!*5ZgPEI zhQZmAE>ps4F39KsYGtcwtYs&I%^(6|NkO1qP86-)r?RoN!R~>mi0+G-LebG8D%CyP zB+;wl?F8yArzLdiTbpY!%W4p5X{wP9djmO55s8p#M29biVwo;Ei_n=RG2IsA{0q&E zr@gxbQ%L2)^BOT7)e|c<=}$tD0L&ch!_<Zi!Ycu3Hsp}NIY`wiF>s4V0t@i2VMsux zV_&dU^!;j*jGWNZ<$Ao;K^TpS89v$x=8-Gqupz?XwbGJ?Wqda$-nCRWVq=@5ktn$( zC|<!uvV^eOYLeAc9&$HUV){^xHwqMCW}8Q5McmG;P)47u7gq<e%~{xx#2*cvS!I!v z0>}Bs`yJT0fVrnK{Mp1cz$lCGyMyi^0Q?hUuy8U5f&E0kA08fpe*cL8y;2B8;22F$ za5}Rj;*XeQl1QM3h>OTL#MHxL#71yd#MErTBcQ>M05((HBF=2?pW+m__Ky@oOy3^( z{OL%fDQr%_(NoGC5@0%zGMq<n8xBRK@;#{^S%~yX4yD56j)ba7a`JE@%?j9iq(TxR z>SG5I5%;z6vWTGcvvL5bj9NM1W)Acher`sJ-S{I+CVIeNq;{a?fj|W+YXA=FfgB+_ zLm%18$`WG{_FCm;l>FL7fTz>M#m#%QTO|pOMR2)6W11OW=SE31oD~3E^Z78`)8S;C ziAN^)ZZb^I`EWd$UhXe7;x==9q+E{M<?>$-r^wYma5LPEBn@#C7=Z@?-AinwqrhYI zxCP*CxSc<6`0j#xH*QBX^L{vPmv1*5{zb>_^6!IF=pGe#2`+VV7gO5nfQBI%?qeY> zz%-sf>_kUFD8O&Pc!`xd3UaeT?$W>jV6}>31bD_nW7t>pjRpP|CA%{}hm+}YPXxtR zfkzMA?#v(+G(+=&h=<{>2AILrxcTt%^vEjQX0L4T@fyzaPS#+buq(qAp+F;2Nxn!U zo{mTxo=#Nd%$&$o!t-X~`A6ZoS9yA-MP3)4E)=L4>5Hc$!aYca^p1_34$z2H3r`-O zaTq=iobTfHM|}}E*W&gSXY%Zg+v7VD&h5AZQC|@pp3L#h&D;$q(<3O)0qhaYfmCs+ ztydW1<F^#e;pSLuqM9&fJxhEHZukV$!=4_rNpmE9j2yA&380S*kAR;uV2Q~;{n!CZ z81M+^%&T1+5rtVI0{7Azp|h>P*$j0bzFneYypI8mUJDe*VvBPyId>*-?v$LYqP+CR zBP`jG^RWcZ#{{SE3S@L8{4#u*--6>Xa~sJy*%YN~=7|(fCU4$n=y1%*WoUPK0VaMj zS@Mn$U~i;1k0!azQv^6jfK}*h@}{Fno2L+zc{Z29dJZLn1V`H7u>|K)LeB{{IECQ+ zFBvS0!Y<v+_bj<>RP@IxkENnN7K)xh{vV5IL@8}#F&MqCCjVx|--rJfa!oa53SCo0 zz*z|Bn)(lxf1kVI?}mXtA=te^__Ia3H?URoEOr6BY92bBo-btqym}$Qb0ENd4V#+L z=P3$+fj=qW9$UaY^p^s*+5+yi1>7eD^nH!`=F5V}o5wWeGY^bDA5!%it$K~EdW}>) zK;2*&P{#bS9rMd}%&*!pzs8si_hgi@Zz>)I2%Z`0cNCo3%qmBeNv#7tbD;wrk>P6r zd<=Pl{l*KPnT{y`?KCw5v{~ed&H&2K>1NIW>WR)ki03pKit=coh2}<i;_!EPjVhS) zqnQ9%$pl&$Wv#Q&q9_l9HTG1#<Dz4MvNsdV6QYxVvakg@DLMxz4IT<K7F`AO=Ng?F zWx1V%qzm6U(a#gZE--wzK<ueZW}bTiboVXAgCFAbX85b&#Jn>^zk3nL-kC^rR>(V3 z^t(*Bpoo4~V;&<=k6=u<cNRNs9*q1uvDxUf1AhY64=MMa=_tq#>;qOvY>uO#(D1zm zHlCNv>Yup|4tlLmK=}p0pv%usPkVyCz!tb1V}gDt6WFS;fCJ?zdVKzqGqlw?26DwP zXBxhf0KWjT*X=(DC*M0M@Cn@SGU~|`GYVyM7le9G;iyvrjJfSS)lm=#u)+u|#^h80 z+strNksQPK1Av_nmF@C};p52;25`7tBtJU`k_|W8r<>oT_C0{d#bomIzXHxCmuIsW zN?Dsdzoi;KQb9d;QjMQ$>~2Q98JI8;vz7VCzn!uMc<y69KA^E}j)DP!M}QSk=KaXk ztdQsaz&=n|^++)SFD76pu6Ka4xIDWZ1>*u=0^`@OJ&!vICIqrU7k+<s6f_1d*4SSh z1*-zz11411=PX!b27aK?XPgBWnSmQM`mD3yVl!~7MqhFkw3&h5Y4i<e!CEu$N1*TF zt(fPavtYd$a6;7+&@?=6I}0|MhMV2I`%FB1w2#AYhlgE$Kb)d)zNKP#7}M4lRQ9W3 zPDTO)fwAbqW0-?Q8au{OkQ3l%$D1K8JdXLv50GC^tc3Zw1Q^ZigpX&vbgu&FYs2Fd z(8Hd5GqeFnh+jN4-24>y05{`wZv^Q3H6CY?&l_a!C|(9I+}p`O+dXV#VYj~tPAJ?b za2{N8g!?iL7iz2@(qQ<$fX7adJZ}FJaPmE6f#>0hVmXccuWGEEX?|N{6-+Z5kl;L> z)z!($C>q5Y!+kn(*mo8lS;+3l$bmiK<oAu_o6#sBW?N*S3Hi~1KtI5M6e$Agir$Qr zutXvyKts`C@HNnRMaBc25M7PBa~p(4N=;|MHnYG3AQ}hp9B2X<0*$EdAtEP(X_pzj z8vfKWQU-jl8RfizvxdlN!1tNaUjcVv<{UW#_<jmKLkeAw&J3^+dJJMcm<{|KFuh?$ zuLFKMM$pK7;P0Bz`+&1VBKY)X!6#;PCvX;9WD)Q+j_6|=uLr)~5q%2yjg)s8@C}aW zi@-Y=Upw%Pj_BLKh5W0??~Hy5d=cZjhWyTGKPW8l9|6D48665-B=W}$?~ER={eJ;` zlQVi6aG}qwz&AUib2NSj@GZ`0Gw@3&|8C&hoY9Mb=doC}0$&qCrff~fl&vyTE&-D$ ztoy*UJ`}wI_*E3Li$X)u%^KfLp`qw@jqd@zD-?Z7;|~Gf8;TwPF62D|d|xQ~0dN{i ziaZ8<eKwSMEJ2CKq!KjKCIamR(}wIQXE&VNM4kk`EjxNI@M)NqMxFxxNp|!dRHsE4 zz#@MIe%(03$;v3IEvCSJcow71WqbVW*4Jd$1S;S%=dzcuIn319ayEx~z?kdVE7%-p zt4m-j+31&PY!w?lzqKr+d<Ts_uvTNM9R)>!Yc+N;`$$?D5K`LMN3vrT*jh(HEU-gk z>l_7B15fI3mpTgO1YXj9>m3CP0`F)n?kK1Y@cRiLAZgi`v!~@Zk@>yy>?_dI8tzZw z;d24!-@>yq{JC)Qvr7Xb;EJd*G#LTfLl#&W6K)Md7^p&l6W}Kj$5GgDPk}7oEIeqG zEIZS`08Vc9S+>CWT?AHAV2c*95CRQ1n}Y8;JZL*1$K}5dPHm1q@CaN^WO8~?#8bf7 z>Ewhc;ss#TA}2zfUIWGknUlxDcvoZjj)J@ZhallM*iq0sK(miDp_MaK%o>2PVde~H zK}8T(lzt;nG+CjX5n^(}j)4@pDAbt87*s~qQ7EY+Lph@YeGr(F*&MDt5x7_km4aQY zMmbb!3`6CSV84v)7*EJP#*T{=F%c5%z>t6d%|P5uevC15z(39w4~iU#1wSzGyI%ya z?=1#E5<MAy9`ab@nG+ZeSB&3hGn6$;Sin5BW(ify)6w7*Bk3aM>9N3m7J?`=jBx=D zPplsvG=&KP+6tIWzw?k8m?fMibYm`)B6ZUkl70u+Ss)&?hdBYxgResoc+ei^25138 zM9O+?xPJ+$zT5FQ9&}HpKL%%k=W=_l^IgiH2`byQ=Z8$iIlxY&z>Q4B`M}<%ZZ{$o z(CtQ{n@9;LQa6o3H*5Ov3s#7A2t1dfe#Q34xy0qfZh_v0uMA)n7(AC{c|4Z|ngEJK zUIwv-ZwY+Y)7Ry{3Qou~UWDg-&vODJ{t>7`Y3xUM5{6UEF?S;^oHKZ4`+fs4&jE}K z_Wy%oB3A|YPoY179Jv}|vO<xoMa_9lQ$)?t7;6ISxBFc@e4pbn9-$+{{A^Z@ku8BU z;fj&yUg|U#SU!8x2hooh&fx&{yq6!xsbScm{tMuEA`=5w!(|hUTqsg}7C89n{v+gu z!fycjR{EBM>OrU7Gt*DYB%Yq3KySFLJUz1+&Pfp>mR*LA#^Zhl@0{bZJUPdSJQbDt zICA#*BYb<KgYR{WSun2G2s2s;WSHEZ14Hz9po@u)!eHTvav6OUQBF2O(ORH8h!z9Q zjb03tcHer92AUuJK2RR0>vc5H!syLF`(PaDH3n#r;Vyz#kK^&6iIiRrGsvFE4DlIa z0_1~B_K<k6WU;yA#A7LguEgVH2KAU~E@uZNS4al9mb^FOaTa-lsl0YvGQch!;9Lgi zX}X`$g!Lr!Gu>~J@DUzAB4N;>L?$SbkF@s~j>l$(8kQO=o%+ss2q21bkm0KZyaRzF zBl<lCXMMzF+Ved>a@B}F2l{Wo7RhENM|)vt@*DxQH_&lnHuwb5en2M}?mNKgyBCj_ zD7Dc4Hk?>wY~VAvTn9!(KWIV-vnDbg6U;y+u=f~)Y-C>o6#8K<%zZ6<@Ycxn`67sg zd&7}CvOJMH0wVwpX2f@}*12g2(>E56W5{xpzZ}kj$n}A0xaDMHKa!OjxiPR*2NXR^ zO9JKzT$q4`j6v%d@Fvv5BV&=90{hUk#r*J>5H;wh^t&0*k)FuSf%OQ;%#QpTl)(3a zv6qRU55lOh5h(K|vYDvidmcf54qCR`e;1rsb}xGzjxxM8u=i(IX$|Zc8bg6S2*LW5 zjlnQC@B}b11;7ZGAD|%)fsJOr_>#u3{3!~&p)q9nID2}4ET4c`1~gKAh`SXNG2a?I zdSFP6jOy11jwiC;j1C3Bg?;2j)(foOk=`Ysd5?4diec`=;}YO`ZvWMAit-|2r9x%% za+oZxVgz;sleG~%0_(|S{X%28OxACKIkAP2hnYgY;S2&)>iK#D{yn_&T>hPKLU~z% zeQ=ric|peVS71UeXCQ`e3i#gw$(@nqac2a$GU09!K9b04!~GvOH%qKb?{!X9loggw zS3ui0K$;BRsNdp(Y=aix_{C`w=sJ~)$c(LLjBVY0@z~Z;M&BDA`QZBlk2tY){#jQ) zdR{I3R^eWc`#Rj4aBsmawrb%{L^kpgJFsxiSNO>g&Nu^%1ee%kg}X)hi>*}PFDZNx zVDb;c%}b|)G+yb_@lAL}Lq-j5)OT@FtwalWI$szcRiZy87a|W)HsU|DsH)=swipS8 z9ST$|ah3r`y7^5pV*u_!xCi4d#61)@<sJohIPN0c)ME_pV{jjfdpzz^+!Jw6!X3lS zFjL^3hWm8fEb|$-XX8E#H~r6nI~VtS+zW6o#LYa^R_?TAI9g$&#Wq@3qqR0#SEF@1 zTEL@~Ia++9g*jS*qt!QBh@(Y3T3w?>JX&0%g*RGeqjfi0siUPiTAZV$I$FM?WjI=A zqvbnVh@*u)T9~8NJ6hDEbvas)D_Qi#<+P?p%XzfEM~iT@z(*@^w5UgmbhMyHOLVjV zN6T=ubVrMKv?51~ceJQS3v#q5M@x0IU`Gpev{px}a<te-3w^ZKM=Nx+&POYBw8lrv zezYn_i+r?JM@x0ILigOlOFC%jj@I*NEsxd!Y5kAZ`h?{?z_iv!>vgoQN2`3atVfG_ zv`|OubhOq->wL7-M{9nxz(;F-wC<OSiZl%OiMXfXUW9uk?#poBfO|9U9k^-NiWacG zz#T-R9EkfE+_W5h4(<lrJoiewT))JP&u1FkWZRGXAGkBn;PY?~$9)p+>9}ifufpAq z`^UI{i~CQwpT_+r?k{nNFaQ?d9*esS_gvh|abJx4d$>2@z6Uq$*3d}M2e>oQD0<`O z(r*Ip8MqhYJ`eZhxPOBCcH9r(-iP}j?yqoXW3(ECn@fTzxaZ++#LaCjZe(#e!0GE_ zxL?BkA#M+5gIpnv#9fM;mf85-z;EO3z`YUo9k?IF{S5B6aChPkV={Oo?s2%etHEy) zo{M`eZcd2V);UMU{Dv2&$|P|xWz)vRagZbqjf#sSBuSiIC@xMqN#cfvB5@&064$mW zAosOM;#QX;an(x_m%%C^H^E5au9zmN7&!q^B)&`|7v~{^;Ns%@1CsbkL5b%iha}E> z6bYNtf;1UiN)|T>$;D-vB5{&L5@!dB#3>?4oHHsCcfv{H-kuVFJy4R)$E`@*HYbTg zv<i5+;%bDeNPG!PuHCp*K+Zu);-pk@J*v3)PE?UNq?3!Iyb8#Tcak`-Q(T;glEj&* zB5_JU66Xkt#3=<yYk(_R9Lq`K@UBRFZ$}a*yo2E4;*^9W&QX*s&IL%~96^yd`zMLZ z0Y%~l3Q62kQR4Z!lq9}IRa~52lEmqdA~{t+?#L(-U%8TtlMF@TD_WAoyF9qK_zH<6 zzEx5&^5qgqoOGyw+|(wC``n6)t7nq9pjIUAfRn^c5*3h3ZIZb5RwQmNlf?aI6_ATS zlDIBZB<@6$#I0!+kSj)#xRO*P&X`Ez)JT!IrXz_Pd5XmCagw-Su1I_}O%mT$t3u<# zf+VgrloEXZL=s=EseoK}k;H|VB5`3t5*I9r#P=v9@zsiw#h2V99Sc`+y#<sc{;xoh zxCcNI_Z$@IHpR6Ot|DEm#PjuyB5@0z0l%<wm7DV<aSKFoaivZY7w<|h?&Xlg?Hxtp zvYsTa^Ho4@{E)<*AVuPPC6f56Nd@GaY?8P~uDJN#j3lu}hl`8vrAXpyF2%(iQ<Aue zs$_95l_c)rD=z*yf+YT1LXr4S1Csa$1Vy?ZC`otWRz=J01CqF_pt!1)60Bz`#uX~y znRY<#GB6-F9uyZ>Y$S0Jr%2j9Am39e@!X{#7dP4!i7P&mxCB%r4s0ZG%Sw^>9*`vF zh!W4WHc4E3D=xk?B#AE*6^Z|6A?X&}iuAc6aS5w(g6}WM#aEh�^rCxM!+j<jxC8 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 IoW>d=4WV7I8S7!vP!~!C^ZNKf=N<>H98+J2~9K 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%0A4&xqNUbygMfQuLS!hpw_OGptURf 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 D5j({! diff --git a/lib/osx/libogg.a b/lib/osx/libogg.a deleted file mode 100644 index 337689f01e444c02df45018fdbb5e7e54dffb8c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29696 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 E{}JHweE<Le diff --git a/lib/osx/libpcre.a b/lib/osx/libpcre.a deleted file mode 100644 index 0f04e75cfe7fd2333a29fb54666b11c021ceec65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132352 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 diff --git a/lib/osx/libpng.a b/lib/osx/libpng.a deleted file mode 100644 index 75d60db888c82e9af6d85d783c3e7b122f423c2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282008 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≈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 D>ZLa? diff --git a/lib/osx/libsteam_api.dylib b/lib/osx/libsteam_api.dylib index d23ef4c5ed3ee733dbeaa010049b5da6dd006340..1897bef428fceb356ae1e9a9a2da83f07b91dc0b 100644 GIT binary patch literal 627088 zcmeFa4SZC^)jvMFSzrkZyJ&<|s4fZxD}@A92%zR2q69YYsK6SM1%e?7n_XTMbaC@` zxh$XpzKd1c+ScbORt4${hL<LwwotSdi>+v>UQE;!Euv8N|2;GJ?%oYAPoiy~KEMCX zC->fYIdkUBnKNh3%$+^=wbL(dXN<++>Ls436mufn&!nZr1sF5$U#F(o@MNrK0C4?z z8jl+{g98Q!3=S9^FgRdvz~F$v0fPeu2Mi7v956UwaKPYz!2yE<1_uld7#uJ-U~s_T zfWZNS0|o~S4j3FTIACzV;DEsag98Q!3=S9^FgRdvz~F$v0fPeu2Mi7v956UwaKPYz z!2yE<1_uld7#uJ-U~s_TfWZNS0|o~S4j3FTIACz#8*|{dUw?91{oz0B2`qM8r+P3} z&-yd`{+}h78FRY}vt|@_u7Yyu&%_-Epa_3birek;EcH=H{B<tBKZ`NP6O7T*q5;v< z!U9^<?XF$6a87llyVmEQgT&4_4u8a$3nb7}qlC&@dk7rV7T`c(_k2%fjmLWy97#t- z`{;>gM*mbCl;C!k)%v^@RrA!`&U9q9F*XuRqo@8)kI(I%S61fsEG_fY_}sqIIh}FT ze9c%B3e!_xPLB_CR9DqTnc5l036#AEjG*Va{@iYV)sl*;a(6}5+-d-I#^E@{*b#Vw zpy#>hAYKcZ$V@9t)7ONYREmqICR6mJKexLIeJQ%M#^*)+%<|(oq$#Fu>PL}IIObJH zIY9AP9OF?p$rC;G^b?M3j+@F<mY$D}Nho_5u=Ld9pmt1-;ON{Jv2+YJnb=!^rKcW; zTAV-J?($M!X*8vCTRKqo1Pash+&Idr7cQ)>(y(;Kp;$~TNgZH%9O$9QpW8jBwl)$w zlc$NjO)OC@a4sB_O?~8cPtBQjV^(HPp^7k-a!?9SXS2`~`nvn7<r47}>2x=-)XM78 za*x+tQ|g;Py0T(Ut<O`s&|O+nF{*qSqU<up0!e@*yj1UaJfB9<!)YcqgW~BXHWKYF z&qn+<A<I-pV2g<@Li(OhOsu_`u|7z1;i5lLGh?HWKN?rMNIvWRjW!dz>nu5gkVf^q zQc&`2ZTYn?KU*CbJ>#Ph(}p6=LGbbMbZ6hk#p6827&%m-_E1^D<E03h*l2&Pm)cKP z*_Bt0N><xX@K?pazXFP5;R}|5YYRuEt3}xN08e$k{H%%X2J{tboOnWi-&Nzy|7~Ws z=J6!sW^lmZfWZNS0|o~S4j3FTIACzV;DEsag98Q!3=S9^FgRdvz~F$v0fPeu2Mi7v z956UwaKPYz!2yE<1_uld7#uJ-U~s_TfWZNS0|o~S4j3FTIACzV;DEsag98Q!3=S9^ zFgRdvz~F$v0fPeu2Mi7v956UwaKPYz!2yE<1_uldd_xWtNq<$S=!{jl)}|)s%Z$z1 zg|w1lo;q7zVGFifLk&xQ1lI>8O7Rnn1$R57hOf6HKpCq<#<g0;X)WW2B4enQVSbgd z+3s1p)&YC5i(|ieRjxz!+vF^3;KgTN0ueq(u-#(cvNsO^!x3-m7mfb~aa4^;!;5X< z#a89+A5ucXY))@MNpY~<Ci|_SJ1ugyrM}sBxtwd0b1c%y<O3;F9QH?c+H()emUZ>b z{!dd*`g%;f(Xrwx=}uc~RtFF>&>$_f$*GAbd68Vy5%|D_@{(<+eamao)S;H}{@`xg zZ1*j*c1az<7MnC9QZT~-z=>%V|I5<flxc9-AZH{TPqmos>vv4Zb@&oF8CKaLU+|ns zn$<zbB+Jn70r`@Yll~oT4Tvba9%oG1ja%DMaOWGf<(jj%WuTnf5qRGOt`S?qej7Dp za9iB}*qRs7nn3T)tr;L&fl4m2g}qi+xIg-1vq{S8;BDE})<As=>g8Okyv&l^Tp#w$ z0BmrFMfz>>p_CHz!Y+I6m-3`d^<nhFZ+#O|iXC@do!pFvf0R7iQh&%7FTE!Zsz2mE z(KbN7)0#5QXAibm<x4`fR{0KV%BB7<Qd9Oxr~SX-eWBJDY#*#jYr|9saDB7At^s`- z-0nh*`BntBFK<S`?<09zVUvrjEe(`nl5S53%{pw~@)g7^l-rS4pfbo&*X+AS&N_^S zNNFUKB?Wm(=0Cz=G+1sRtPqnv5I7B9Rx9>zfgrV}CZIMZ>VSw2j-}NG5>`#O9N%HG z*F6b1694y4H%+(5E=&CZd)-=*7Mfy_-BvKJIpt<BuGyY@OisAF{s3oO)x_D3<rVT| ztCZC)XSJtfJN&n#+?n7TD}8-FHuenFSmmYGlwSTXh>Ox6{5#t&mseO*me??IrrVS? za9bn!JE)JdIxyZz0%*{wvcE3&Pm@)_{TXs@g1o|k4#zM&p6xXGXN9H>mKKi)J#a6Y zB+VY#noV9y7)DiV=1|M4a9yJGhF_7;omU;t9&hqlrAb4TNl1_ur%JOkTeGKd=t)uN zLnFX0)PgEjI6_&9G+vrwkzCeb%Tx&%rK^T2RyaG+Sl)>~DeDM$-IDb=lT%$JBtL*F z6VgAq)==J5spxR%CYKDUvq-br<(h;Pm*YF9?f34$z_DjQbu>YBC=+M3+w1-gx+WGl z2HlZhzxyb{$;UC~LDblEi+rPFY<%w>_WB)2mopM&tL(B$MejmZT;V(`cv*kkKS64x zxYF<_=dRR3;+OTgE9`$4gD1-tuCauZKx()qLC!i7UU$ul1m~<j?pq*z38eNdxu44r zOE4Om&=S5TPdZ)V3g=q@BxjKFi<equ$S5C0G;DnKP=-~uhSD%Fttoc@7t$<+cd~*? z4=Zco*#@LdT+uF_wAYUghr?}_<l}A6p+=~GTd{KYBOE|uY;@ew2-zd&xa#-X>u9ja zD-z^cj*tuNJQ8enk#5LKNV&=Jov-cp?zC??V9(eg+wQ5~3r=Qr*y|+X<P3-O)u1T} z-n--}j^uY_S3>gFy<hV$k}&{^Y$>ipU%&djzC`J_a&MG7(UynUWs%q@xyG8((>E#D zthR5FHKm{bi?%C8x;-?-D)$fFV3obrlmTdWR<zwml>4Essonk#sl&fgYn>)GHlb8j zH3ZQzXoP;DhAR=$2195&rIXA$9_9++aB_2K4M9k0me9u06iBy7`KMaa2O~68N_R@> zBc=2ap~uEPkGz``rSwTs`gkclQ%X;5Nx#Y*dhAJ_ktC&04Lx=TA;_>ux14HekP$XX z8GEFR-BL!gRPeIgaN%>v&Kzo`2_@8k$(7MeQu`2|ASsCF(W&T2G-lS(VQ|vbsa2#0 zXIT{oKms>fOwt`zF`i~vAQz!EMVO9VdCF!K)Uidg3If}gBH!d61l^(h<}~yonF5JO zD{(0aC%K-axxRCqvuNBZkDx%P;e7~o2^6l?r996|2sPQMNML(EUegfLEVFFNt-S1i zN6UJ-R@TjELPd2#13Fis^ktk>SQxuPYvuumt0YhP)mKDrq;jo^)UwYBH?{0)s?Vid z!a*Hs%V2OMK+`F|0hHt$YEgcDoG_6=qNz!Z3Uzu?o&c!4=D%Kmxa{>^k18<x@Uh?F zDkus64x$J#8?M|zU=7a_ShKG;24D%z+76{mSKQyKBYM`+CFp<qrJ3k0Xobw74w8k1 z4?w|Qha1Q!c0sRzT6vmHE_TFCOE|vM<m)LX%Y|d8iLSixfru>y%_B3J%?cl;alVbb zK=G~w9I^;=ZzKhGTW1|@zn^1A4j(HwAwMMD@+@S~3LA)2I-n~q7tp&XG7|!)v4@`B zq;1yG5FtRRC^dH=g;O(IP(!95*_F^<Bfw+1C!ZTIC=LS<#-SGd9ilX43`a4rSJ$n) zF*CrfmcYH+(AH4)RC$_9HQkgedCFDP8U_@h?7<ZLJ7h~k4x~O#lxm%Jm!b_DV<?hM za*YM8iI<Ma*I@o2+sI{2F~c^3)=LUyTjgSF${1+3{xQ}t+CGc)_ku)ay1*#4$bB$F zNZAR}G>1Hyriw&Z$9KX$g=NvZtsl2Re0`+-ZAxgeMcUC82Ro!V52gS)Ujvt5{;I|R z`haGu1euI@vI&#Jn2(pzd@PwTk6uuJz-N&L$R?66Oj8OuGXsWjwl%67Xe#$xQ;yl! zr`zmxeJ~+EXOeHQ2A0{Fz5Wym$e6Omr|k3DU`&n-++|}vd)rWXsRhwt6!l*kY_&Dr zWJ~F=uTQl#T`KMLzj|~R3a0e;jh9|)o0-zzUUxSk%CpF0q(#KXp3*cc@Ji`)hhb{9 zZ`dUzJRrqOc~&{y+BQS>TBPLj0N!8`kS*ypQ%kCi(Nxu6BJ<4`M_9oDU~&;|GvT&9 zB$?VqNv}oVt)NB%%g+g(W|5|VO;~S`tPA<Uu!Pc{Zh`KIkIa7q<R#XW>oC7hkD2FE z#{11uQW%q8szqAPmmEreaDnEAaqIC!H);~k*Bg8xHlY51^rg=(7Ep<r4I!7HVg5eJ z2gue}+U&4FV0flmTeJ8$A#2}lmE%%QNV)C49#Vm&%^_WgF6#kFYwMBREETn{nr=(^ z(wEbe`#J0a2&+_Lm1kR%_oj@sZ`dJCS|#_B?9wu;^f!62MOs3A6erzjm0nwwV{4iY z1Fb#fclOME(muK9$g14W+v4OE?RBs?E`SMHAGX)U;~7|?Fnb-mA2L2RR?V>ae07KX z*Gntf(M2Y(o}pXi>!jOBcH)SF8>}P<H&8eAr*69HL1}>Gg&hI(Df{f1C*(8>4Gdp= z;C9Gk9jO9!BnIxJg#ShY@BdV5$_anX(bb5f&WX~=NR>4fX$)^pF|Q9Da=SHUAlNk7 z(q@r*K_uUU;DDPcZ=yn}Lrwy8yg>gI)yJhuB_O6g-{pa&7!Kc+r&zJXHQCqilr8rh z4MPo)m>oTi!qN$%<7gY<;TohTA@(Il<Pd^vg*e4Y7-dte63iqZI|O7jARZ+11)|*2 zW|nqhT&$X6Yr4Vqtf>i4Oe0;9`9(B{c%4a+I^$uppQldqd8+K%u;G%ejvRF@9npk? zm8^S&9&3>^tWtL3F}ow~n7x0tstt!r$AUW@a=e^xnK;EEy*X$`0#=@hSdfx(oIxwp zKGMOqzjRWL{lMWE<tRpNceG>s*EEZ1+VP(^>Ia>|EQe8_woW(d`Mj&na)Hg5ulWS8 zB|O<VVNK_Rm0E(}FE8kZo?l>wL8p8lRS`E@umYJASOJNfDQ`Od6C}czYFvFEW8twb zWdw(^hR0HoK_U`r{JEMNFK{Rau^dJ*D)1!*cLT$(RG1HWf^JG8u7RSJ?NhBVeb6V& zO;gj_S*Tm4jS5Vj_UBB2SBsuOp1po2w1pIU_e)IT^&K!mF^|*Al$^pUmjk)<ih{i4 zaOlxyJf(@sYD$FM++maMaL7DY8az~41pNccts+!^kl-?h+EjeBC>=~VtsLk3fRjT6 zgZ0w-omZKx`~6p`%VDBc83X*ZGKFJOCO4K6*<|EfLXAt&W->F5t-&tQ1gi8D!K~#l zy-|4rUkEgwR^eVFxC=yDvzoRAX~~CR2(AiIYwPy<FPPiP8$N1uOZ_n<v1dm~kG2zi z&Ay=+yUwP5b$fjSr-VX(LoO0+tNJ$;o3f{*)gAD6wDe@5M>*d>&SyZrJ&g4NX5#b? z7{pd-=1_~^QD_q}oQU28sFu2Moc|R672?4Y=FkRWu*|DoJ|whyd?DbGzP!(rK+5P) zPS}5}&79oaQrAnAOc<*C0am5V`%X5|TC#o*7$_ZFxtsc)&zv!RI-1x!7PUz`(2Vjl zk$J_Q9@H^X{b5x995!U$gZh+0!~uD&Ur0^;5yX=BO0UU0w900c>j|LA<^XT{gl;gU zgs8axPa?g=;$TPb2cC!wKxDs1T|gcAXa_*4<qvi0VoJLxgjL(kD5~tmRMKW{V^T|~ zp35G({;!t-2TV&3^6Y(7S%-P23i>Qm(*aX<0b4NNRiNy<ghmT3D9Qm-poA~waj9jq zDR_F`k~}^Z2_CT1ojh;bd@yMNa|t|1mjw=Km)yAYDVV`)9av2izer&DdEq3*4N7RB zAEeIF*@b)z&V;aY(q_nkcb+6B@22$&!!Wd$G>2Yz05SU&J?&RyJ6f|Xpn%5tOCwM! z^vWLO6_hBOWP#spY0XaT$02MB*!-pou^cNVwQ)O&!Gy%VhqMdx^dLFQf!<9Bg%lvb z%F30OugnodV&4d}4*Kp0vS6U9)IfCneMxMHTrM_BE^37$!IBBOBg+=bbx64<@?7&t zQi_#f0$oc3$vRqZ(XIE?g^i|#23yhU4J1C&KF*0-<lw$1h!Z3)oD(g<R!A9xkraIO z8RP_a@p~)X$#C9Am4;p*d2<yjYgbW?A`#Jk7?WUsQ+*qu<I))z&!p47eEFr1P!AXY zVK9ZqDfwb@k$RGH!CnGog@W_Z`=L-fu!P6C@<8L0LkPb^4!+4tTf<2u%1U0RL*_+S z@}ky|?0$%`JeQI!G6`!4@=W_$*5u=%;6F%CT;V^Ea0FjM3rX67wg(|?;pg5&;}n}H zDFyc-hTLK-*ot|9aIgSLKv};DC^?~7SiPV-RydCS83aUH>c3p6?oXQ6e{qE5ko*8z z6;8@i_F!`f^#@)d?qFle;q$8u3GwmkQYMM@JaNUhMCKh8m;ke`jw%Tf2Sai>S|WWZ zy&c-X`IMxVg<LIma{Q5+!;}YJx|C_6W~fK$bXyf~!3hwxU@VqVkEwZ+$FieP_M&|` zs01AWI%%a9AlcpRXshKVpQgN52yqnRq!`P(s!No2nglu2PxUjPLwM<4(0C#F0C2eS zz=9Ixa)F$>lke@hlp0a6wI`?%<cy>$U!W>WAZ2ULsH|A26lIc|Wv=?<-V<{>{C!sL zCW#k=$O;H;<)RQ~Y!6#$vvq|dxNZ7Rk$?$sRiFT&p_m3kMPD|VL2*g(0;aqSlLbRs zTab&FMYFND0Gj!Z!Yhp=LBJ7i7zhMn5b_}_s)Dv|y7g&vTvIvjfo&bQGoLlIdHoNe zR(pmvH{r=yz|mC!o!WdpoPh}viGQdVkkbQ&gS!*8?W~pUgE1yWMWi7f2tNj7aZqca zSNLQoHmqsjDu2d%2pC_W=a^DRXvi2EhZKp6it-|A?lfs)u?D3hwbEq22-%oa&=D<` zaZK)`aT%xum!ANBp>2Zglcd)<QEqwd0-}iQo#f-eS3mp-Dz?{Oib7J+TT<?R+N8Pv zW281+j427TMhh(nF*&tbh5{67z6$(Ou0gd@Bb81*o=qeCk5G86jW-i7@mF`qHwQb) z_x~9HQXyYqlARNetZ<%9YWx7{=&yKrEkR)Cwi@-$#k&ztd26a;ZfQkjYpSi*<8`*C zTFXi+i&|4HKF`$ZR+i!Ql(wV}U`H3AKAAcw++S)WB=TCK1}kmQ3acrcZxz+3Re;1y zGgW1;n}jE-qvpw3Z>jLxNntDD0i-ePb-fS^zPf-~<G)bm?Tl157pZCzr(Sl1Hp!Tq zVbR!NQV~tuPNcTxClPO^phB7^If1;4l>3H!KQRGVbKe4ota9!f>K0O{ao7gVa=iO| zE9^=j3<C*6)>{yy!9&BYp_H_Ol3GHIE=))y4%T|k(!LZ9ARIgq_KytBI@l7&xV;4n z!af+Fu)89Ks866qnQ|=(gc@I>dQtq9x+tovRa6Bks*Yip5X9axw_RzVG3CQSG)<)v zOGO15sv|%ZlktXH$Lq)lHEOXNbv5onn24Wv-Wq+VQB<Ykh_q!9%9ACu0NP(}Bx$8K z&HosN)8by#t@%%a<hurG-74Qd7b8NI((pY2WXid3VT3@4u)r14t2_b?n0)-`=g5Vn zkO%o`O&wV2DIW!)74qs3@@kvI<<(j}xw0B!>nZaULTsz6s#;P9X>#LGyBcq0Fno?; z<^wN&uMRY*4UkXGnT~X2RS-sT_H?!#{mt4Ig&Mi6WxXW=ZFW^$C_$AQ4BEr@phXx6 zB<5)Rjbs9B;-jSTX0#qlubzT6p|#HtsCe(JtiPLgJoZ%H;z<y;{mSUx#E|{mkoI3q zdqb0i1>HDC$SJR-1@#ck5ErJr4LmIk6l6ySL0*)BNFWuwvOU3qe9D+1Z$6BMV*@tp zM5z7*=@ScdVOsJ5WilcV@%7Dezlpgg{JmH1rcyAalzl5TmA10oreT^bZ{J9mdXbjZ zmK>l(EY+5x2u4lvULgJymJUZ8+<rIuoMC@S9yqZGMxJxe%H4!eXwLbf8kNq#P{2kN z{LDnP1#WrMB~&kI_uvXE!<G{UQ>f8GdL3L}3@lJ`*S<(w%hK;w6*`<vg?&5f4q$`l zwRHa{Et!2gIN<L97(8*wk_$sw`>Eh(0V-&(-vtswjrU=(OMMw?w5y22JYRaH`6C#~ zb-x6Z)IwJCD|;y6ipCD4;Bi<y_KQcecx)Dr$HfDv2{OPRlWXi(OuiMD3s)+xBwS8h z4*M0o_|R4-FSJteqYN7N{g(Pxg%rZ1p~`q9VQRwA%csn+%n9^el-zvuf;eO$BLx{E zS$cFch;6CgPxhDc<XzMT<q15J57i&H*NsFSq~(U<DfbJ0Wwx&#NI{l-AU*T~6_P^F z1A$b(4R?9cI@;;`hylxn-IR>F?m%7Fp2CQ?Hy%YseRF7a4=U*UZs6q}`w(#YhrY<H z_<F_8*7}!G2tcfDNHokd+Z<^xhJoaYo!H>yU@a!nXsa#_oE+|RV4}M+RAWkc+dKGZ z5amNPmXx<^m(Ojrn1;`6$uyaV2b<%b8{Rb7G+F9sdo5IBPI-IDES}9$TTH{{4OBBk z!qSo!cH%tAm+z$P@lBF>E7E1&#uO|rsg<JL_WFJhr&W(qQv@rqzB*KQ$iBXwTHZE5 z<!K9#ny{qj-4NoOZV6CZxX{f6uLG}85$5}zIvs`@FC`HpVXG%uB4Mlo+oh9Y$FL;= zH%f!!GDp3S&!ccDumEqUt_Ls9Nuch0m{=3~9Y~&*d_X#A**_`XJ5V|}^gYX~lP>mR ziDh|nlG)oMaMJB}hHf{l4AbXJmMq3P3{*4?#(Qz!tX1Dhn<jnTwj*?VoSI)O^0B5K zX5Vs1dX!kXqs=1M)4*8uNa99_w~At>!xY?UmN`i9FZLLawg-~2K%$yjEaO>QZ#9gv zj}oFNE3UW`O>7CaI7z%dT!Bcdnn{~F!RrN2tn|K*IPxh$;A!E-C^Q2pV8?^aGMD~{ z%|<FkXr51(3q^Ux^3p-e%NCS}@sH)D9SjZXmzSEMr@oiQyB)mU3T_WRN}O-#1^pXZ z6NkG!bC0~S5mOD;{h@}fE3r~5C~-+e9pN#`f1z?(Ek9Nbg(q#l4fnwIKDfgy4Q~Gh z)>+IqO2z3L7HWtGJ`|R-I<VZY;e~MmhN@JT`{Bc}>;A}oMBvp*BFtWQ3#5jYe_L(9 zzQ9zhe8)_s9l<*-$h9CMZ&I*55^DSjNDYr&U|NvmQU<7XH9Am=)Wnl2nzaY1K`!O> zJ2)13EdfZ4?>+)BSbhyESYv-sjyKp(#eyAH!74PcaRO{bEZ7khY^nz45@5x#V2TQM zy#_W<fQ=Slnsy@_?r!Apwq5R0CW!1%<MZH<ean<z5qn;(LIfv1!Zi*o0>d?@!f(@Y zj_Gsc$+M-My<fA}y#sav5^X=m7jc7+z9v#aTN$wy(zBfsuz;r%aP~UbMV#|%e~ije z?19^Pu3(njXyKgoEuq@i(tHjOzW|ZfQl`{M>}qW!ZqOgBq8S9-__=826akDmA}t~f zt-L1)x|Np}Aq_)oBe9JB+WKM7gF{Fhf2<Vgrv6*#74CBn!-OF_q64KS(-8%iOR>Y= zLt~{K{6(gJB6j1(k;n({1MMMssDwMW6~f~djCSP}D8oOc0)y>avapMU?X5{i1p;~x z>K};Jr<#KelOd5TxhHKAVQm|=9Y!wWBbdLH;|9cRP}T4ewnU_cHh%vMce&v<+`*jh z$!n@9wAVLS-be>D<OwjnXmMhZ5{8CLFrWyswSl1M4`nWp*Ko+_TF27Lp(tN&_?+-H z1K(MoD3AVH8@^OSas%N4JYH=<--q*N61|irHT(qzp4@O!<X=d$!L3U%_y3{;Gf=}F zNN(ksgb=)rzPMf4zS<l$^S;7XhUlI{p;tE32HT|^kAxS6ZkyzGkZQcK4bvdR5?#s2 zmU*-Zfc7im>{nzsS~Dz8ByXebKhBsJXtOZ%0&N76D&DX}%gna4X7Ig0TJp#oj1~!~ z0QMkMC@9VxYNIVeWhPcGa)|c(qTB5Q_1o>cfE5E}{VtkciNw46Qad7hg49Hzv{L{n zwGfCKAVkr7i_wZc(8=0~5qi;Kum2kez)nZXnt2Z(zy1S?ZmdR_j`qDpv4+1;tl2+S zHixz++=;Esyag;j>`Ee8Rx{E6*nglSV?&Xu74g}$)bU6SZvO~~n16)aK=`p1-*_3Y z<%hRW)!{9-;SK}>ErH4nZMdW6k<k)YpR<I3_4VT?J~3RdsOO{*CWumm6gtxu6$?%M z&kk<?4W0VCbFkcSG=#c^$<c823UCiXb|tvicI_&hNm*fSZ6Hv{TiCwkpxT$ple7^p z`c)bIF6^L&_pyaWGEBvvM2b#h=tg32`}-LE%$JwkoE)Cq(y$DrnDkYLea9L<A=vBd zEfP&_iNFb1;NvR^z$xQE#AZ`Rn8W&e2e$L#{%ud2{KMpig@S_K>OM($zuZuvBdQ-K zN@Iq4#(B2f@GdF=;re0+MG|kz9}ZDlXd4;A1kEOvB*ASV8Ykdi(@$3mH6FNWIoOo! zQa<(3V8n)0Yk+`=b3r<d^PNAc=e_boK!+?<LpD=GR;?oYVH6nwMUbUx$QE=$CO0)g zXJA98r`!~V`306<9^CdhLTu@ktpN&PI>i1Hs$anJ!s`NvwT+OQ>{`{0sJhLrOL$+U z<syxiSWW~9H#m_?@2Znin(V0Ge}zD=+>Xt{wt;dJe^-FXDR4+dwx^bJiOxD(JM%V~ zV|2=aB5bY5gmx6ve<<q|jzi*5ua%$0Y6I`-T>vTy1x~0~y&S89UU!^<^$>07-g$u> zh$F1%BHFP0F3wTOO<&S>H{p3g#q)hZU1!1`&`|6~0Xo9zb5ccw;&}~)TSf7aml~)e zB`R{I_mRl??aDlyNs}8y)YprP8Ch(qv_%VCr4_h_7ZA}i3uw9yqc&yxn<(QOA~*Em zgjqssMuM;sdM`9tP$qE@oVFMf+#V)v;J+fUeJx5cpHmbIt;wgxB*EtUL7sA%D5m`K z??iMTPLdBl0kDO)P+j~GoL<$4V|6ePY;y2Un(gJ!VOeo(-_29rTEy8C3R+OMCH1sv zRc=Dl6l{xA2P>(fuHcF5w_gu}@X8VbK<|_Uyi57JD4yKhR5z9|gk-umrCl#)B}!>H z_%v8byBS+MI7u6NcoY{C%YwM@*b=2pltkb4%MR|c1W)(%|7AO74HhEH1?PT`)o{vi zc01VG3n?YaVJ!vrO(^$>WD2c#SL%h+fl?gu<t!x>NCTq^O7b9}4rK+e!5PAVW+vO^ z3xn-WY+?<DRgs9v6NiS|@o->*M9~fetqRt_kQK43gTbYC{0#AKE41z+@GZ32jy}rE zUtlj*QbiM5viqTwDl9@Tg#xE;kDdn<X>t>td=VPqANO#L@I5Z<5*CWE!JVRYV2GU$ zS{h*cp}^>HkT#6?E5pcs5AW0Ge%y#LKt>;}{7H|?!OIAJvu~CxUo0vrkR1>?oFc_W zECvIFzE%!Wp4efRgByu7+6)W+45>txte^$3b){<F4M2Atl1sw;jYoKY+Yd+;1n&n> zh`%Q<;qS&i{tGu2fd*6op5Bdl1O~hY!7f%OBe56q^lD6Q+6^HQOgaelLzDytpb{`B zT*WC73L_4qUE7L6=W`bGV+`4riH#Sdq;E`UQ$rJ4IC!X1gj!(js~P=q6cE!{c!10S zC7g8x%s8U5#Ts*RPj_yEc)i(#QJNzMzfUA`W?hGhLh^&KbhVwsn?WRaH6(C7^9|;< zQ21@UT^>Y6(J|zOmX9|f&;KD_Fsnxdaq<k~X)__oq@7BBEcJ&UV052R({f!+9SeC) zHafTlrBA!G`;(j7ehPN#=*Ia>9PzZ*4Z>^_xDHE6+M0u~;8-($Dx$m(Bq^=_e!)8& zOnT2=PfMe=8{`!oawBb9(%V;sjsRt~D_a0c-LZBGhzQp@!nLrx{Ou4cMOjXHyPe9t zc;e&-4Cf4olwrfEt&_o42Zom%SOs(t8N88BQohT<=_Rzam9}A6+g&&r*CD;<OG6qR z#&jvqRuW1&zhA8UO2A9IQhC-BB1?i+uoPgB{#azoy;>}ZEJ&vx<B5xtEt^ekBSK4P zc*}vuME%8h)0?DR93kLs@k%TDVqQB_gw?#2?C;#C?N^wRk4uXZq(zR_G;V;0iuTyA zFiYN{k{8>8>5kTP%LufhH7)UnSXtxTrL=4?5k7xgA36izQcfTj{DC0E$^IiGV=hwB zk<$s2go+UTLbdu)K~EeNy)!|&Q+x4`xBHI+z48MzU&3+P<#^3PJ1qS5gLOX`sa%ZC z#f#nobUMs0GBA`r1kE=iFGL7GbP7pBmLf@8TR|>Ay$x|ZPtcRhcRKU_9wOLnqAhsk zO@!qP>aR<HK*s4W#CwypLh5*KYlZ`rF;vP)bn+gGC{iJh_|-%5p|C%(L|6|B`ha>E zOqnVBF+oFrZD`(c*c#kp1|y`e@Czh4-67%JZn{m%hE!Mzq<v8Bi!C@1-%+eg2UWEA z&rO77VwOx8lKtgu{KUjM5l8aA^6z}k#8)f_wSg8pGPt&wZB_of07GCG-efdZ-Yq1) z1E(&PRwQ$AuUHImU+lo|>0AX6_6}t&<?MDs$g@G0L#7{IR4f3DC9hby6NZ*(R3ZJ! z1E+qAY%Ak0OaSI=2M#dGD3fl(I_hTHe~{7>(C)pw-Im}U7=xCAyn=$T*W$`oszp7} zIcBLBEx?-f2S_5aGcv0CK(>Ro#_vRJ=&ptG+AS;feKj1}q1leMX>#LZl!5WxE<+t= zbtrFFP?k-ceaA#eN2MI-V{LW}HGblUd~g-jPRol%6ll#B{f=#IYM~8v&X!;0b=pHk z3eboZJj7%hz|lqHSK<gNKFBQhLQVclRJ}>7Q8KFW6fffH0NqBf5$Sh;N)4~d#w($B z@_b3Kc0TpPNWS!J<Ljki`>{Hr^Zn5?^Rb6hEO@g~tTX`|`lzKL4pD?+?L0csuFm*@ z$Cl6>xBx1sP%V?)=ez}$ivo$o%H>*tfzbkDl*<9Os?%A*&n5kfl}R8=?bISCosQi4 zYnTW){hQk%HU0^p^#?-YBp%ND?t#pN8izng<@-MYm=sd*)+o;<ZP<@zzVhgMVn*Kd zSIUf|9j{wy`{0Em$VO9>_l7oXLr}WGA&rrffGscI6)qkO2FY=>thI#h|2^tl5Qk*G zx|JH=AsT?l1q~xNQZB{teQ?t7;TMR2uz#>i`PB(^FxcyA2o(52_j|yi{P0#P72Zmi z)a7@5v&?C-*U^5WRR0#yM<q6Wh<UR>l;BHjVZzw!Mib7p#1M?9&_Tclzly{5|7TQ^ zb_S&ScM$}B+8@AqB1DML%TUg~HOsLoM37Cd+qdT0OoxK65C&7Iz-iBVQ+||JKNjt= zZ*8`3-3z@Het{6=<5wVlYe9Gb*XQB|jkM`~5Fzv0q{hD@jLPMD>HthO$KN0>fG<>B zdG~Y9li;gFw+X)^12NkmhNk4bM>DBGxz75%qI>OGJGy!lK&~gI(}4iIk`a8woXYvx zHk#DfCSp5QdF>#b^IoaP8U}j@IO|14X_VcJ>cOaOG??4cVhL$UO~}NFgtVHP9Gpm~ zsPfQ>1fR#dkWM5x%RP9tTUs?-BjX}Y2AO;I`Y^Dq+)XmgN9q}9>7WD7Ie35;=N!;r zYk|kR7-%P#E(F?~stR8e?a}XorE(*&8)_i3|1*O6cL#ot0b3cbPNkhYK28XJU=Ml2 z!PC8$+$go|_%v}^@O0dg)Zo`9e}5?KanjC}FtO|`c+BMgK1CSAOUSoZ9%rnE`AMfI zNG&TrBoKf6%475`dHmjPu*|zx+hL+@ogIf0`<n0-_~gA{F3i+B@TvsK$_02Gh&O)K zbWqV*uD;DsH9%Cul*8<doSOR#U?>`MYK|r?^=IZJvyjyU2xami%o6^=kV;zXSd|^< zLI@=EEB0#+VV%NP#qm<Zt9A5a5it+W#&Pf1IS~6UbVLHIyjb1zBpaolNL5n?%iHS+ zp`BhFG@&!)2A?S7ls7J=&;j27`8zsQA1=UV9Kp15>?lGt^urn~W}}uM=ugJv7PINv zOKPYD*-}FtAmlBpsrHE0cO1ej(UZ#Qrgd;$)2&aTB=Es-v@S5Y6uF%kgIyqP2^9ei zZd(aZlP^II)Qd9lYKw=8dG?H*i#&q&_kIy|n_y{w2OA@?1xG;s4qyPDQI{O}ZY<;^ zeHGFD0vrE1_#}DFm$0$vmz=&NdE-a0w!q`>$)=Kg^mU%t1VvXv5U?QILix(pV_fQz zn>D)<=BxVqG<3O$q*}0OipFTeBpS2D#2hiPgqT=jOl)vW%o!6K8WS546B`*5ONxnI z6%!jD6PpwhOO1(T#>A$?#HPl?3S(k3Vq!C6Vz<V`%41^lV`7ytv6`5ePag|F7U+kA z5#|SISj8l)?wo*yW-P?|&I#CYRv{uH9tylj3r48+H}R%|@3nCa&}G@+hWkiv#SXS_ zg;lvC5x*3IVJodrR?QkpFP(bfw;@>yejEY|j$S^`#14xOJ1oM0#BnZR#7)8(B5aKd zYc107R8`K@pKifkP9&?}?+C5vz%QJzjFHC4WALUgKU|yu{ig0~sp9;<B#1;T%rYDf zf^iRG@q2!7<qLQOkjD@+Is`K!D=fUdDxMT2KG>c}^uzB)kwYpvg;UeAm5QC<#kkvx zJZKPcl2UD{D%hxaDF3w#{g4n`lJH~3q7J!#v{nll?6eh-KP9+(sMsx6ai{}8r9J@@ ziQqLIHa(Mki)Q`P%eP`zlzbK2|LOorU8)}}smt}TK;UfSU_0z%8V9d`@{PuU+Gv}; zB29L?(w~rB(VtxbPV5da>~w*-JF?-7$VPWc!H8BRsw=I4N!IlykJNxwMt{rcpgXO~ zjI>Iv`>fMOS6Ylg()AV>YQWlf<f?Bl7Gz>LV!KhoF5Gqcp{-k!V^=0zGUJR<sZL#8 zq4rjdfbKA>Ji;s@JBc_(jz$v2k#$TBl3$UEzQ96N=rmOoQX|9^A=KOa;O-<<l~e7j z=;zVrR%!Mv%@M6u86iOJt@BK?XV(&4;LSaxLNxYt1)k>f?!eP@-yL|e2D$@J#)1al zJqF)PW<`X@U1>X+9a>#ofq$f%@Q>@@yCJIgKE=z$Oo4%?k)~JSfoD1=Y>p&!r>^Jq zb#;XawBXm6)}4x8?rufR->{<H`ijI*3+zE!4ENrMBy^?C`*oyr1^%sW!XNA={JY(R zKdgiAPM;m&<y1lJPC-RqP_x8gvtg2eAr6}jhBzh(MP5N0_A-8;9o4eSW2|sEU!&bz z8(tNJ*R^xB5kvgjDDrzcI4(_>ccoXq;3c{|Pu_E)oA9S}@T%O>K?@<b-Qm84Z-%Me zrgER=sk3%~RlZcu{pk9KZ=mCiO87q7*4C|my22|PFVb~hIdt%9+Y^u^+TN846Lko> z0zX&>uU6>nR)zG6O4EZXf)Nn}Y66{r?|KuGbQrtS-B<B)YIn!jWa{tn{)Z*f#_=41 zwnF_T7$(JF&@JNo;-w8OUi!VSU%co5PE-hhPw)eaZ?MW2j7~l4>PF2=&@2Ab*oC(< zChwoK=kw3m<#EMO_J3i?s>(bWlzQ6#bsI!`=LymI<)8mIL}#$Rk*Qq}q%LTsye=&! zyMk!Erkc6}j2#}KslUyHN*h1jm`(Grcomg)L)GbahPqQ~YGhUL4Ro7+1F0*_jI56T zX=aZLi{*&T)17wDjI=x0J_6_2_(~NUcVA!&jyB(l60wOV7bQqVC&Wga*vGT!7w$N1 z#`olI4elPnH(<XB3$gb87PCt+*4$e0e;!k@9FH)yEB#udlh>=TlNs5B#8zfI?e_W= z7`NEgl>LJ{?WZQ_4J`F!0^ghT1$SR1HacUt+P$rmrBUv5M>v-2gyVnQ)s5L!=teE~ z(rgf^hzfRn!{lDE)u7rnUFf2F^m`58MwQ(oHX$@^_N`EfO$iN^m?LB6$Me0}IuGD^ zvQn-3si_NqI&*C0tzu4{{fGY(bE<0Mjnp?d^;_=1>bP;2TX4hm_Bpu`GjO|RZx>sl zBUWudOpl%2n*AmfVeej3oN7g}=5M!cm{@+RB#F04LTS<4B>s*qX8+fwy;7qiSbYB% z=U_Tfc9rNu9rydr7TiDZ);YPa(qoC~|1L07EqB(XK}@T<_>K&(GPLG=lj6>3ah0+z zEJbvj`fR4))YEVNTRElD`YokM#qupjt%^l`+o;CQ`aVR>GZt9-xA?Rbt{+5!M>;1w z-Z|l^&I#Swq86PHpxx(~YH4>lCgJ7I3C)p&7>(F1o9X`DK+<{4oo|y^C71SrW2mEz z-k1d1$&E>Pw{ybb&Iw04C(!1pz@Z!Bi8qNM{_B1JKN{j)F#4kB4PwNhi!(76p`G-0 z<Qzv=&KBUH!nY}ob?I4)cT1K_{%;;|P)8K44`Rj(8T~N{WYotbkZ~T9Kqhuf!oORY z>4xcwA~8%a!NJ*o|8}M^6Klr>=j#O`wK67F6BF}^n63|hT_F1K=GXLnr~}xn0;I$M zeESzI7wWboR4e7ImTgzmqD|Yb=nAky1MbGsJ|ByV?!Ot#PmGjOTX<HP)#>t8^wRL$ zCrj|j5p{7P-dEA#lA%$(s#Y>0rpy1S%SE+@Z)teyq-%Db5WhpMdhrw0#OS&6?Hrta z4XM(4)@6^Hch>IEQTK*RP<QQrBy|&1>Nd6f$M8<&YZn%DDx|Rx(v<k}GgR~3X+rv5 z-L3Cmop|P{0FT802+sa54W9qk1whCB_oj;OaqiN0kHP&e>_ceIsJS;5@$;ClKLNe~ zT*cu$yi*!Xzr3}~p0(3LKRQ=sYDUboHZvx6YfP*>Ce{V(C`wP147{$eosEpH9cdOc z|EqsMpw{xAw|$`-CcAUQF!}1$|EGsZRD{s>&LWL>&Sw?r)EGhSf>jl*B`T;`5}#F2 z3uBP~3rCMSKGn5_8vBOBL?<}+PZomH{EA+1bO3j&0Gna}ME%C}r>V`UF=AkB1pi;( z2v&7IZR+ZK_CIh#SEZEBvBpr^(K+FZ&Iu<vC!Fe>5IrlZ)<VZXV``yuoG}S>N;4*b zj$y_mL=R!ANa>tq3<Mpdj7f+dqg0E~Ny!+9^PH1Zi_lTXm?Ct>F(!e|EXE|z5yY5; z)XoW+ofD>XPM}}!$KY^vPAKf0Fr#zA%+3k7c1|ddB<M8vTWLbI|8=WgwF`E{zR>^Y zF74GCjOD2|Ih=KOQ03A$oWWJ0{^xFO>tyGt>xJz6^aZ`_=m6HL08KFff~**U|MzVv z{l6f0UD;a28NBG(O70P*8^2w}p*!sbk;<=bujABm{}fA9;QDq4dUaCS<60rM$9}07 zTT#isO)7Qttehn1ne(rvM_1=})H*+X_TS2bu1GG<v}nKIP(4(H0*faK7F{1huC6_$ zD!?T%0RMtM)z$gc1VPl#HtTt)1301rNHGBa0-^-UPQNiY>yEk#X-vES*QQ<3asT_r zV|3!(f4nOH|D~7z81V))#o<`WI{z#4MK1W2iVSa66fJtg_dnm_)U^mc`OqHx;=vI- zVX|*()?C=A4I3ZRut_3DFBsw65l0vC<84O>&L{@R{ecrMrHe}z;9Kx{;r!I-4;rw^ z#9=?j?-U)Oq7$Fn`<vxtz~?WBqc89Qycpn-v&s=}V*_`A_(mTm5-{Qvy@rrienPFh zctH;p8P%;KQz^yoAmMd`jw6QPuLGV%P<hD$Q{Do&+v9a>M~q|PiQoh@4+Qs=C!kF6 zf;ds8MAtl|YvS>u1?x)eq`_T}4VMF)jS#JZ<=R5<{Q-|di02EE=kG<SE`q++b<o$l z4!W=Fpl@^?^f#SARgp>+Ld4(rqgS{K0Qe|&TY@Jo@;HAF`7SH`m9<*Ai|mpD;$ty< zAAymPpB$)|GGm0Z3-1Zka^2p^L|@UlGBzU=_++fm7q|cPOnqT203t6}{;B(d>VbxC zIo{Fz?4>LA8h+3s>@`(H)P-z!j&$G!k521+V;>p#MT(}4R9e(Gxgr(_Kn{i6M>p>w zpLo-C51j`)`{w=mmK|MSkNTSq&7%FEfAK=6%3?VhIM2DVu2Ar}4x=g$-8pTz@hM(j zTM+67^oS%epnv)!{ebQQN&U43egks!zhd|%#jVk`?Kdfo^GzBjzDaSMc+!fi1B7PE z#IyNw$t6!PaOR3BG*ft$<v)mvIsQaH2;&IwORrq<JG)L!u8If?zC*}y0X7B~4n?WI z1MALcg$1XM*6x&YMoM)-K*;;3Ua53{S)OYRE^{znf4To=Q=dGGzn`3D?UQE1^q7KA z_cd!i-IDh<HPHrklki*!MS)MMPO(TLS`7D*^n*L{NQ}c^Qn6*OG|fC$>KXA8X5X4> z=C}Y!M%`Q~O~ir8zEynrFOp@_YLzkFky}Y&+(~I7rcUdymqEa5J3h8bzuobv<5hA7 zI^^__ucg<Ad<B&7JG`SUk<Y1ax$)T_Ft+1x&rn^jXGfC#)RC88To772>T<ZqT#yPs z-~IW4b9pTRN_(Q9X~Fm7B%TVj$Gwb#o-R?4O0K4LB#erXFiKCt&o5I+xLhNF05uW_ zRFFWaIuc5XRfE%Ok(a?6dCF<;g(;`~eeGM*&2uNFneF#-m(Dt`cDXkD*8X!PxcSUO z*SO4bjs-m^_?t_9)mPS_gQb;~)XgiO0XLh{rZuIFl2$&Au(XoYThq#R3a42lla$s+ zO6w)9Bt0yxT*vS9R$p34YIttz%E$4*JaUFx&@5|U8)0X@UOnj9wkXn%`*wWhc!~Gp zdqe&RPfsHJ4)4u&c@}X~ZWuOF?aH3RuB5JP&&w|<2(5Wyh|0%9cF~n<2vFrC2jzU^ zsX9LL87|a7guwUdf>c_pD4RJ7I7@9KIwM}3qf#$Tu}M?tW4aEtg*0<o`%JO;Eb!jh zTb_cj4PLc*>&dsOP+ZVHW?VPGDPR8_x|uKz9D+p{Ll{3897Xtmx8$`*V_MU#XkS>` zg=RP1Y@?^6>E^yobNV%<+vmcmvg&kItJ~jeZg8oU5ec()As8PfzusTa_`xcwe{wU8 z?+fP!msy$LhDUrDmT;QQzDJ{y1|~iom}imtOL={yyk0G7_9%sf#MCFvLe&6;sK&lE zEq*S(B<mY87hXd@2`sZQ|3`skeVPCLz_NbKe`vEQu*`1qzuERCuj*O|*Ih)`?#M6_ zW-on1#P3)&3yw!^p}@x@uv}4=J;oi6!q+HyT()m{Grt%P-tnc0JRBg1Sn8^aQ}V41 zB)s_3y!ZrtaeN&B<#15P5g8KH+|TXRCS2CJcHbWR)*K8Dd>YwawFB3Fq~SXBySes1 z?7WsfU8!{_)OmtRHN5Qxu0n0(L*unaX?lmFSMr=sU-_C5+?^maV5bshwZsEwmQYv7 zYB?AY_@CbdDI{0C4jV~hMBxX=M@Zrtl6*$Cnjw-5Uk$M0A>9Cv@T$h9As$R|kcU}@ zk8z|~<vbhj_-|2^1`lz(Sn+bo93gz(<*Q2<(;$HJd~2%-I*p}5Uj%ocAr@D0o^pwR zq;FJM)afDD8p`9;^|xp4>`c=Iz;MpyTyWmzTzI~s7oMXih=z>fg9{d_8Kaf1DKuEq z_^=fsBBiOl5TV_q(O#e%$*pFNE1lz_VQrJV*4A`%QDj^vsN?#gra1$e(g$K(Cu-wb zbeYLNNY1nN$+PjX>kwo20zP&V)Ug{QUcu{3{vr6>NGR~+Fd>-94|f(!;UZWSvROyb zP&&1C2Abg<%}f=|#}9QzBldG*kU<%>lA*xhWt$jCW&-I-Y08Dt6njhRKohiPqNX)r zeWaNDc42dH#R6M|>n|vl3t|*Y0#_^-am6w~RV)Kl#R5LWD3+*P{;@ZW7;HT0g%UpM zI|-#Ez|Ja^X02l}67lVi;0Y&}@5{ve+iE74=2E&PxRXnGUcNFZiY#XA#rgZvSc7_X zU^qxZ?GjS#9AWx!OziK!Ty|L|LQ4+{He1Dzp-+7L6=NBVfPZ=II}HM_Fhdm7k1suQ z?I+KoubPAcKZ9N4Qc@m_=udz`{o!TTV9ka(i`rboOT|S?VaW1wx9ZiVRSs-MjoQYD zy748&V~|q6YYGP+Xd>TWszo@UHJd&(%A{%du7y>Md%ju6wU1RYVZ0F|VR)yhOrzp7 z8*<D&beK8fv*xJkk`}3?F5ibQ?})n0wc59&;X9MQVLJ{x>|64B!0+|o9UoYG??<F3 zB6j<hoL)QLPwc(F_Z|}I$h2I<r)BULp3YvUIe50Esj5fQw4OVTCN@p$HMcd}YBDty z$2TqR)0Ay%n%h^}vE!(tX<EM>N@8nIs5{n_ZCA&1)E~E1>9ZK!1ONGJ%omZPc4f&% z-d$2Jb%xTzzUNnAe=A^b>;$WQPYPl{C<BhZ5P$_txm<<o8PT?#AwL9x1i9}?QF|0p zU%y+cf3~Rq^$q8yb*u)PEnqjD2ey|6d$oYAJrC?5pUQ(F0(SCwV1J>(_7Jdx&I23N zU`+z{v-Rh0TZsnyRRZs`UFU(lQiE+5u=k$__Qprlwlxdbv?tC@!<)4#>`w&j_2<F+ z6Aku<0`|i5z}}(3ZV<2^-FI#prfaZk1?)@bfvv{$!{xk8z<PdoZoFT5Rak#K=Wp40 z@V>6WUL#<~od<T4274Mt0mfRN^T57}d5+V2K)}B6__^twtl`})V4u79+^~Z**jEK? z<9T2wYBby@V3W^7!>&atz4Zci^m*{!uff&|*tqk+-loBN1?(U0Id|Kx*I;iGus=T! zteYkn(tFnn*rHA6#`{r?3Oh=`7MurfFAc9*!2Uzn|DE+IO_fyrwhq`Qc$cJv*YWz1 zhS?#WQa(XS8(!Zq<yR_>o@dd?_dlT0HXQaGWGZy_`ewtGy>god`v58hY^ffWzPDuW zqu#^ACc%CR4@>3uOn#rj?^F5R#qWjuK7-$9^82m)Ue53H`Mr|gYxv#A?@Rf8Ill+^ zy^h~$YbQKxHNUUp_x1e#0KY%N?~n8QQ~drkzdyt8oB92De&5FLFY|jdzwhSvJ^cO# zzwhVwxA^@azrV}xhxz>ozbpLS&hH)k{sq6E;P+Gf&S0j8hgtX?^Dn|Ses}PD0>3BX zKEHzp849hNkAnv6D85=9p6{d3VG4yP^frZPhvO)I7#yDeDus4Z2my9<8->W4J^J4i z8cLz3D1@H^vZENP;rX{x2x1eS|3?ZnQ0N$imQ(07g)scX^9RC4Iy#?1!znbILgOe@ zNTF;B-9RBa$aplBLS+=XhC+)dG?GG16uOK;4^SwPLcgF;KMK7}Aq$1xqR`i;5&8>- zIw*9ELLXAd3XAOMyA-;NLI)_6PN6*%x`jg9DReu9o~KZVLO-L>V-$LvLcgNWMhd-6 zq16=n8-?zskQG+l(WMj`NTDhUeUC!r6uO#1H&e((As2-fQYf23%PBO8LhC6shC)B0 z&<F}WPoYaFw2MLs6#4^&;wkhIg&2jx6gvJ7ga%p=YDcKn=P6xSR$1Yx@{KBAR#`EJ z;o^yEw15EI>61OajMB==Ii+Q{F_Dz*^?0V1)^<(?V45q3VDmk-{z@M!udJ@|R5|C; z*N4iTKJT)Ms(DUdwX?Fiw0uH5i(gXVoA2~^z13cdv0Dn<DDTWp%b7aM$!kK?P2VRP zafOOxqLUNotSLpw5yNV)a4xK<ttGVO6<$x7uiCrJS?j4O^_C*oEsS%k{Z-{7opby? zXN|YI%u`$Itf<9zmrBb=brDZRO<65Itb}hYRe)rz)!i=*HuA>1sEvYmKqB~ouS1nH z&H{I7O-)7lDBn__h))<j+Uu_xJ<Q)JI(jr4?XUHYo>NgZn)k-=VYR~rwwx+_U#hCK z(p}*3<$~sN|H2wxO-|+nr!%9pY(6oTr#N}iu*%AE=PlGn)Pv~KVYRd3*)mTptE%n_ zO4Q>!3(9ylwYvH?%JA1X=XgD(x7C!EgNdMSZYg@gIoDggP;|Ty*Laq$Lb*A0CEg03 zhgy({78H><WGyZ8)c7i@t8%L5R+m7`()|^c<>1|U3WB<f>V*q296CWELuJdE8ENQ| z%udM~B_z4{YFA|?HBGBn%Pd${>+>um5Vdc+(TFn}t)rc1YPE0@cuJA4qOvwAIZ5<W zMs=0XTU}Y{@g^mW*SfC8?@LO$rt>f?ttv0|mOIN-6@Y<Oi_up$A1PH;)jsDOkJDf4 zDWB+ESX$*Tt&HZ+FRgW!R-&WImjMWRpw?4~A?i8zfXesGs{mKLn!5QHS0S|2zo3#_ z&WTKwQJMzB_uF**axU}uMmiVzYkfjpK=*n}p}po-cx!#<R2p5uJQ71i?X*Z=b-yn< z)s*kA%J$-WanQuE?NHl5;vrN8>FiF0Nea8yFzCQ(o~4lq=G)h*sh)^>Sy&+yo|BJY z=e5pZSZrlid&_9Bo(ZMXM(P9>&$y<E!j^eUYv()XgY_6z@$81uDwge;!*WZ#EUm_i z=Q4JKzY13+OY_fT1)dr<z0Aj^RWD|lo-#HpX-xTq$PLk}$|=_QVxwXQXrZ@)=GJOw zX&Ili_+XDJPpD`NzPZ(2PqcS<chvd;?|~B6<`(y~YG1|NWw~NL<#PjRU!fe_Ikh)d zRWE@$Rh2Tx25MGTy>Qgx(#pl2+UmK!C8b`^D2(6Ig`+SR`l_odS#(bHdLWfv-vp;; zX${u`6P&{^-_EN>(y;P)hRF<1=MZ!RlFKSRrC#a@q43=`)m|U<5wgS_8%^n4)a&^H zx|Yu~YQt+iRZve|!BpU@uDPLlPA6h&Z>zvu3u0gmR904(IjiS(37fEI&M;*rIH!u) z6R4msX+CyNzcDi8&jQc;l-okJJcz+q1$r<l%E2{KDul}Cah5t^15g$OfRsR)hiK(x zfIp+!kNKOx%RT5ui~v<A)YgbX7{?J?N|Uv-&@`+T!$mdhghl6ESY7U~^za6$GJ2MB zYTLC|JDnr4N#nsfBsq?<<O<E|`k!%NBvzHqLCt(*az;dkD-0-M6;@P1UNu?I;8t%^ z@;Ftx^D#4()_Mx((`+@Bx+T}M5VoYqR-wlv(<eBIePsXxw{u(>&YFrEUN7gd#z)nF z9OV?OCqoiRb3o%V&VIF%MhWyqkm#f_V`)Uerpw86a#IwAvtYNtnyf7KS7EwE*f|dx zSXe{6zLCyquM@L2&zlP)TNp`E)6iLldA=0G0TMyw%c{L(C9Cy-CCjS)UKML~Wx2;Y ziot;7xas4du$N%+sR`3z*;bY=Q`5b3SW@zsu~%Jv&A9O?Y3Ui6S=nq@?XWWFgbdD| zsHTXZqtA|_smWK18nV&jRpqcr)LzIXt0K3Q48f$N6ak}46QygDlE&z=h?)YZin94h zNy#GJ1uawI5pacBX}S4Xxzh`?3JRy^r%lds=S(Zi%Fj;A$Z{8F<rm~kpO%z-4J#nH zq5>oorWF>P4F+`*Oq$DewrtIWn&$B>srHHns8|a!^0Tt06-=3aR=i1L1zuF1lW~@M zsZCTb&le3j57d;xLf6@{)k=ycpRI~yn158ol)~Jp1x122XE4c~l!Q(ru$*bdS<}GF zoAebWY3(S^$;_G_n{$;Y=Ss^*xwNSTS%rl;(<Yyli)v#<J6%)LV(L(POY8k8t8=kb zE1joyI88p$tb*#Y+dMu<m?|>S9AOP7fjBB5q=<yGz*h=*uzi?+l=eSiSOp6|{2h~n zJ%deyXH30cF_~U44Wzvk{uh3@ugUUV>-Vw4BI04w5LU}r?JrEf>%pEdw;?@b8L+Ph z+uFnSn;vXej}aPNBD<QgtF2#|*tIv}1&L`gLi<eD;l<6v7n%B8bp2Yh>4&E2A+v^> zC10JP8OOrL%1Is*O_}E%GnO|9a|MB6Ia5;!RbTG*O`VgJmBmsbu-z+{JT_VoD08M( zBwqt`y5w}I&u>Fr@;9W8%HfY#KNuH%xArPEjvpN0GwA%!)B_u3!<gCRVR5Fu;+Z!d zrS_xrQh>N{z5kH_ruh17e5Lqn#x6j{YCIpC!Pp~snrj%_jc56tj2*@kyDH4a-e%=- zq9*L^o4p`sH)B24nONN6Uf68u#p1qiW#(B{7T32oGmq=dOtX5kxSe=Iy1zH;bp&w- zHt*BpS<gT`Gd+Xw{&;5Y*N2(r^kL@5@jTFn#Z9m=GftMoJ%I+Wek^WAe`Y>`qXm;L zU~#{_fc1FsA{IArATt#XWN|YuX68*7GgHDK#zqceak)-r+Tdhyr<{!S9m3)k4`ZgE z4`XrTuVCge-)B9pzml1AMuMi1%v}5fW?GGNR(nS?)0Iig{CpCN`#hPMhL6E#a>uZ^ zSz{S{U@VJkznYn6T*Knlk7qrePhqCa2{`dIfyHHB$4qxz$1Ja1$KoEnp0Qg}nR#<6 zV}DO)anm#K&NPFWSK}F<i8?bGtIK4j7xCPKxE1~Jcs4WH;3DFg$;|Wto-?K}^J7yO zduIwh=bgjMB{|HrE(ag=zJZy(xB=yFWTsazd^+&FVk%=dO=YHg@!W~$Nj&>bW2U>N zvABcNnECSQ=)dXA^pEMF1%3Nm9y7J)p<DAAyP}wx7Zszgi<v3D1hkbfwz!1Fy-~tU zX7qpV3}$|P28$a4C#TbHVx}i=V&<cGUV1ZQ({Dzf<N3wS%)IIr#%9i9=7(o7_G>&X z@DM#?HrjyaC^s`d<7Vs+bC}s##@L7Dz~KSkDp=g}6^wm<0W)n}z}PPrF!M<~pIU^z zUj&)<GSf{EtR+5X`Vn?*|AeR6kN&uenRnmC*oBSEoZiSxHI0njhvzGZ4{1WZ68cBN z3t*X<cgl?YLuRJ2tC{(Z)r>u~nweh3^S%%>{~r6lm#tyuOV%>ez;!rUwvL$&<2m{s z7I)RX%sl5_jE{R+-17UF>FN6zv#e*9>(?`OVm*tyZUZy>H!!w&12bK`k+ENGWTr5l zzrCMX20nn3dk=vBcsAkr2A+8jGSm7885{o)i}ODOemun3?;m2OFY$c%VP<K2n3*%M z-G2Wg;N24#U?_qb)uGJek=vi(NlX8y;O%=mt`1yZXj-#}iJd_F6fXL!I*Kum>uy|= zaCQD$jkJxpvT?a^-HfXo*W<W;hU<A;+i~r|bpY49xIV<yf$M8rmX8_hhbs}+Ww=J- zx&~J&t{ZR_;+l<XJ}xh=<+vJft;6*YuBUMQH?D2CcH(*i*W0)b<N6ra7r0L2vbI4# z;TnwVd$^KtO~6He<!Jl!koCj3KE-t}t`oSd$ZI$$p4E8LA8}>8$}7qrhxAm$DSYB< z$dH;xY4oSzeCs2|{)mhIo=2Vw<4Ma~j&K7m!tr|@zKsY!4cI4-G4>N&Kgab8T+iX! zit8m@uj1N;s}<Mlxc1?qzf81^DEP_Ge>R3Ebm3O4@`FIBy!Q9f`&x*xk96S+KZvGZ zs|(N5h40gaU)6=%bm4)2iQ>u7g{yVphjrmrUHEfd_|hX$JU8mXOLXBUb>V%w@JU^G z_+O)V3UuMSbm5=t!hg_(<35a*9jy!Bq6;_b!q4f#@9DyQR9PWx<8<LWbm5=q!qHld zkih|i0|o~S4j3FTIACzV;DEsag98Q!3=S9^FgRdvz~F$v0fPeu2Mi7v956UwaKPYz z!2yE<1_uld7#uJ-U~s_TfWZNS0|o~S4j3FTIACzV;DEsag98Q!3=S9^FgRdvz~F$v z0fPeu2Mi7v956UwaKPYz!2yE<|H&NaKg5!sQJ7YcR+xEfQd)6Zjits~W6e*?N2n0- z{IuC=HA#V?*1QXxAMA?@j5F7mYRq}8f2!Mkb7Aqc<RrJdZ0XX{ITeeOlgA-kSz24` z_ARUNxGUf>GK=Lc+Gf7hy6!CCV^FlV;>;3(!M}Vw^_OQYk?eLaUU;@5O>j@k|4h7G zd8unL3pBxBt4O?+J$_0JhgFD5Ky*&5DqVPH+LANU(BM*cjo<5WFRt+V;Hr@Y9x+qB z?s-d>x@$b%+G;oht?(^#FHT~Cm*F8+P_ga;f`L1+vfJEc^KWy{^TQt`3+#`f4Eb;$ z<*i{rIH$VWSL^eZ)^I0nl(G=MMBTp9+S}al0Xf&r0*-a5a5-C!QvNw^xF$te7I-TL z<IS8Kd5flYZf^NE<pBhG(Ijfjv;z1SO!LkwW9!(WRDH@~O39>@qN*hz%S}Ea7kVgl z3YVP%Uy5*@1_xjqcqZr0oZCI#YJ$3zM~Tw_SPK82NGqq3ocnX&;IhgM4`pTZDPw*l z1CFqw$(500&T4mQ*&;u@+fs>|PFY^zxQw!Vyyj>(k>^-SUy5{i!>yq3a)hJ3QwguD zZa=z=Eee>BQ(jqCSq(Qnh}VfY_svW3CJ`qGvJ_n{qP5EwQfwW?=0?h{=h1m^yhND~ z@E8>wS~M+Z#u)Myh2%$gat(a^`Q}pmaS`|XYGc5j;>mC~OfXOL$P#k)8UyqUrK3Ji z74MPFY7`y?snqiny{)3MGN#NnN)?{f+~uV{bQgK{Blwp)=ag5J`JffxrH%JybLafI zDtWs*XH<EXK)}h3A>rMl%U)Q^lir{tJ~q^Z{gDK6cqnLs98vMNVzX3Nglgu&*i1O$ zb9+5=Ise~{%_0>?=njiyt<gt#)U&W`Ar}Wli`Fb7;C71E__%jG_d-7e+YM&jMp+$a zX8EhM%r7Vt?JxH%CD;=bt>yg`(-)_BdR0^y0%iiNEi0|!vQfvQK5wNEz9uzVRR*6^ zD#5EGX@cT)JkDM0##FVQ(*3oS9#2h7`U8}{xHd`yO@1af>%ro<LoId<G{zJWY%$Ms z3qQ%iF<{ht7~A)@iCM@|BP-?p@5s3_dpb_Qu`lAHpl<eQFV?$&Z7~5cTW!u^ADHvm z*KtLxu19Vud$UK3J79LaC&Ul_$*MfQ(sHlc=VpI?!!!@h??f_2#6n6u@>}?v0>0mx z=KFo+@Yl)SvXFx_rr23rp?6sZX&%jiSS@QXYkq<?$H%97YJQ4^W8=GfS=fFVURTU& z<9}x6OvoYkl9iR@qMEJg#mp|aL1ZtQ$(12%He1*p_+huOcgP#N$a`Dly^Fk$dEQCN ziz5%ocgMwewPb&^2tIFskF4y<QXhLFF0HD%YT3eSe=V;-i7P0b>tUb9S=f;sz#`ze ze@w#nL0kq~-zytpH{C0I5waJ1={QgBPu<01*k7#{b_(S!?9n&q{#Sl~<2OXJhpn;r ztD>AbY+-R|vDZgznLEuxu2$i#m;Khl9Y<#P;a9QBC;UgMt|LFRM4cJKCy|By379Rc z>Cbe(`!L<_{VUyn{2|rI-K(FrsGieXdsx`JJiW@RbBfG<(WBO*^-u=+o1G%u&9WwR z0!Oi<hl=7iK=JrTRKZXA{S(}onOrnS922uuJtHm`Z}coHF0J%?T%{ExUvLl&)#ZnO z+JnRv;u+i8Q}Y7MUg=3<yQ}9Jp5Q<3X<^5CeIF`RpWcfvJJM5iOsA6A0pM*%iNrM@ z)BSh+{vaIYS=ej*ev;qoKB1H^KO=;loJ&663mz`vDVP(eKw6tR2#Vw+>VfhDUH3;* z*Y>us-viph6#5!K4{Fhmtb~Y*SDUp!8$^GzqTx|t_|lqQ;3<P4#r^@8ZtB3;YZU_{ zlLdRjF{p6A=Z7zGd{s*ffp@H2df$WCtq+({?T`3<3%|eKL@5tRbpK=(-5-$YzK7rI zR#W)rxU;?)>~!xUw!6RTJ`;mJF_%4-ECifAeI5K?viH;S;lC6U$NQNO*jhLHVn)>W zAv@+SfCp1gRqcG(X>N9^d`cnv46c3Ir@rEfa!<9J9s99~nYoWtH`^E=@fGf7&3CaL z8SJI_boO<;>NJ%%>g7J*UJl#Y2Y!~>V{lN%yNUe~Wvk$Dw6J<|CH$XOa@fuAX~%iR zmBttG+}|qC+0w_t0`zqSvx++k_Om`(Z{*BPgW`d{sm&m3rJTLl&%#0|WnmBV`%n3O zE5{==$shaZJEXNA>s!Qj!o}PXo61D?M&Dd^urKk7ZS1FG)g%2>Mn2I`$20a)Kd|hb zeo-&#>{vhW??F4~AA8nLov;-;m-OM=Hgdhr4)mRz!A^kIU&Ehc0r{C^tNJlBcVNl_ zeLYnkZ$(*DI_r=}8lSD}OYTkC4wQT|QgR(~Ip1<z=}>fJVzl%vDfN=4SJffr6j*oc zHz@T!=f`LK{twO-ngteeN2~19zW&;ZGIknp@*2>^XPH`dy03*jxQ2N86Mlbz-*@r* z@A&;a+^HX{y>PzCUg+n7Z&>z$9n#CQPx8C8mQdW!??2-A=Wu7{LKkcA2Y;h}?%<!@ zhhjT;_C9|96Ti2?`=!eL5CFd7iH+;1{9-6ua?ks7JG|erw~@O6=}@IS7n!A%s>APE zw%<<fVA;C>+RB0U@cTRb{xKEkSHzkk!)Y=3qy2NDI-LGCJeM6!;=QR2saM31T1<}f zKh+Pb*JkTP1ZyZ5y2oi~{kkfLJ&R8ZXdd?|Ydm}LE-}^+xr(*_*pvw)bRImcPpPhj z!_KtwaxbPBH`@S<f=kg)`jZr)EL`}v4TmdNgvR3&D;TH<!hP`e{#>XieGI$XWnm|& zZM^IuQI>r&0_E7>c^USx3eTEcj7Be8bzwUDQ3C0|3Ye9|0MJaM7oSmZXJ)zbvog{O zvohJ=6AIbMgaRLHy$F8G;bN31Ev~L8^RVX!WL1@?`F-;Xkc49F_yD*}F7s4UT44ow zV`ZlX&{&^RT00dbU{%BCI>sHldth2Q#NAg>%d2Kv2j+Vg`QbF2y)ux+3nj~y#3ob? zlLnq6KTDtlVq7+NUd(n}l*Ue7BuIG(q?CD=)etjlYSg-q4y0zKmzK}-O!X}GRI<+o zlH7XW_Z28b(%%QdV><}Vs;rn-F{gqS#O#g4Og}y;f)=UW$POf0*dzCV!Ir7j^X7TV zr&r<QE3~@Px4vUQPAzL12vO`*e0mkW3E`ps^00%z^iyDhc=G$N39FgA=RR*Yyl{~h zD{{20h}_?1(U4#-U1VXK?j>CR#qaOp4i)3|ah~L(x4c|ebX-(j(<$jVihj%so#2HQ zWBEu<wFNiV4?qX9<^dMga37&xf1lYj9Us_Oh=Ep0PG<9|DK8@b37)?hcW4J81uFB8 z3=jcyc!_6DT1^G}81UOU{2ToKM}B{BJ=M^{?{DGG;?h0%5=r^Av_kgmK-c{0Di2$k zSh%D*o4fYT;=aGj*^A)gstr{10o<ASEZzT?fuyfI)I~-4Q`t#;3g;j%@gcu|!S8o( zBpmB-XK}^Q$#dbCoIRhIQw|2hKR&72=0uXs3R>9-2(0Ky+FL-vW4!n?{Qe@p@8S2i z`TYpLALIAn{ivcZjlAbCF7U9^gD@t<e8k?nG!w=<ePku0va~7<LvS&~5dPb%Fl&6~ z%wa2s@I+NWRM*^W?~r^Cd+)N0O15L@4b>G@R5)XPsV~2}dLjGEu&JKX#h#e7qr;|S zVXh^WfXUTMa;n6n`N{XPs<8C|vBwa_IuY9;^QKl{Jl;P%9h7E)0W~$Aa+kN7JdfvK z1;Sc~Gpmbj9hA-Lznj7SdT9Z~qf#^}Z83(am;L6lTu*t0e_>4Go0m;3_0IFer2T)~ zy>~!VSNi{dE|R`6Yj!uERMSn>n4-osL$Q#cqM&9I6EnhqL}Um9wwSDny%+2a3w8y2 zSFG48_7Z!qvG?!$dCqfZE-=iD`Th5Ecb>dB_c_n0_uSL&J-c6{dmH^kjGws$a;jNx z)JSbY$#K$wE_Ki`wjuO*2j&A>m>+>w6W+oAh-b3Yi5K|Ru7PF;Gh}v^_Od&wh&3j> zaA$9L3w>0&dgBFsJKldWP>rFI2}n@`Urgizpg<)A)w`4mj8F$&3`?Y@gzt{XBpg{o z^<w#}wd123MW8*jqtR0f-k|)lC!)gZv^ibTyjhBFahh=Bz;C`tQH`N=scEkTs%eNo zpjyJw;IE{s;V*F+;A|AC1gh&>>ah@qy7y9Wi!dHuXOyh1#+Hnbq^~VWk>jQ<MqMgt zY2EIYbXHAvVA7}a%T;iyP9(nn9&I;`+<wJOWqV``h10!c5<S;*-wae61_T&xFY4+m zfod;D(2g-0YQM8le3DvG(wYI+-Uw8uSV!mW-jbZ!LnQ-M|ACak<pTqZYRDscmS2bK zMRpxKh_3Bp*?BOEB2Xtf`{l4uGpe&+W>X7a#%QY{QmvM~9H?ePIZ&-&xs^NyXph@o z=8C%;DhK)Ed6subr5NrJ)#DWhrBj!Zn))V}H`z6V>sm@Z9HMewG5_BA3J1Ucl_*=B zI`T?^JM`2mHPzkMRR9;&790tJ+M_NY52p{I2<EWd$nrMJ@k7b|Jj**QCk&(LJJq09 z6LIU?>1IGDnkwpee72eX#C^(zrxv|RH?SI3%5|Hn-fsn}KVbpgHylxhR1Xg*7UfXw zUJGMuq4Bl^N1U4Tn(kgvJ&AI}+3B=_d<t2(nJ6eV;x)9`5!BJke2tq>H3_x!Jlnp* zvdahxXCTYfBLWQRIz;N}uLX$D4Zb!$gY<Sms$%-_KH~MH1O%`1-mHK3OX<Ng?$Z=U zv?C!bQQElRWJfcK(X6*rpw5L@M{*P0{9byUGNNW|EIJm+T;kVX*JktGmZRSE&~`c1 zQpB;-NQ&JGNEOfw9dgz44Q);JLsh=Q?z&1%c*Cp;S-3K06#2_z*?lzea7f(Zw&Z+4 zUwi{27K$XbDEXV)%cTNU7JJPZ9bjNIuG->*<vOtbZ<>J(MJ2k)S`)@lFo#+8$)v!v z?t(YfQYfv16Ye3t5EYMVv-3@^J^OL(9A6tYmNYi7ybGxUsKRR_?Mv}D_0<4GYRWj$ z+t0H9c;Zcvsu(3fEiV<3+AskFh+%JWzN2DMFuI8ujYcFW2FHx3L#1?L>1ks=UrxaG z_z7h1GRx5uiMO##n?#(>as$f|lR0FT_gVIuLM}NhFS2Yim0YH=T*h)6%d{*?om9m? z->MUjhV2+idm-Ed)jgIu*`&h*t`2Y0fD8R-90M@wEA?<4wefAskT9zOpR>UI`%_4b zj73QQV>Nh$K^^dNs@+mO#?xjtuR%B6-G4tp{c!HTU+7?9fJR|ILLGsecOuo@_rg@) z(!o;SYv7C?r+%WOsOe=w8rh>8SHbf(GCnTRmO^t7bIagwtVu*+7DV+di^&~25>HJj zs~(C}C*BEBx$lOlyYB|6WA9a_(|hbOR6;mmjXhi`Lz7+i-l6_)ov?6QB9<I*oA>=d z1w=b=I!9zYJ;{c?OF2^;$KP;Wy8bQ-HYtf)Jv`>#rE>-_E1WD2OW(x=*EGu8o{(q; zc@$xfsgoEFD_CH-^sb&S3$~@eSBnToGu&!_zK4l8_BDxpMW`<CHKDjH$G7Q2)Y$i$ zmN&;E)EUxGlz#X=J+-oUek^*=J?D~9CQ!{|E0OUn?P}Y5wW|gPsoe-6mqXaj@(642 z0dCjd(<dgVo23KQC32@})S>S;ax_zm%h1GM-P)m;ZfoeEwXaJbs6exP=+LBi>Hpn$ z-@_1mY?->XtD&ociEmUvWHWjSW}o%$2UHf}e87u6xw<39uErrn5e_E?VdzkHFO7*- zMC8~9f$BcT)~P0x#t6+)<ekg%l(SB}ocEwEmzMaMAx$o$dv$|8C^|OR5lZ*zRAO|n z59$^Q99<NZUIzUzI?r)1vULa)FkoRhhviC^+gKiAc>z)dSgKiAB8}6}m#Km-EuG9% z=+eltf$A>%3b!Z5p%>Kg1MR0f;?#8p1v!Z2I7n3t({VJ@p;kjHI6f`{T|`8e^Y6?D zAs8&!%sf?T$j`9Ey0z7xAJo)6TMSwot04$*7F%4-atq5pS)OBgn`P&j6!rj?nJj0s z%w@TY<ta$ySy5@*U$#(kk0A70?6>PI@@tupxnGtiWKPBMxV~&fHSohoJt;#?$w%t$ zXBc=E^fdEB_S7*>1vXIo#e>THG(vT)SQ}?DIZ=Q~=%U#h@Ly{7XX-I(Z<c+8i3Zi- zV+<RzKh|^Q;f{t4Td33JX#Al0VmTf-=s&KN(>(;;A<=Gk%3=7jw0tPmB2(<_L}PL_ zzXIm(ZB40vu7~vJKGOQ*%Aq6AXm;M(md7p5y`@_psn#C{szpd4=72e!`D{!?T)E%C z{`nz)9{Rgjvx%drJ)id0kKMXz7xa#^9(z0aF~{;$1w7cv^<n*h(07*F{Yee==O_A) z$OO!jVgRED#HwdGw6T1+mgx2?r|%C=fw&DRM~xyXJBHAbO1Uz!99qZORO&RkLer5T z7t+e1yTEhs;?NnIy`YKS1k1@R=d)bRatEY(*z6n}EvG|Loyv34CX}aVG#Y)hjz=m` zCDb)ZU9C`)dpCVQ4OD4!D1hE9N3dMa@+Qlra}hu>Gl0?BZcc^p_$F8nXan!(p@9C+ zyZ|Y`sTEA+nHBKJ3s<|#C*njc)F~cBVcl~-+_{cjC?B8L*sd?C5ud7uInv`RNFr8Q zV|<}P6fInK{FJICO-rcmpXxLWLL~O!^j$O%^GU8^IdlQ>R!9}VW_L=QZ=<+}Eu@S4 zSPof4e2L}o#l)9c&Rar!f#rxC;$1A$mlCgF*>f40r^@8Iz0|@_F=?0fIn8}=XJYrK zwe46Sb~d8wK=+4gUy-J_>2}27d+O$=`Vh4!hq$Txlpt6RR3}(o<xtStxdIW>Gb_@d zG1+}@tAqJW=T$6ddQU}^_i{4b3z9l#F+4`Z(1LG?dlmJcPSp;r%y8BzXk+4M1rwAF z-AQb99{WIJvgxye-Y$KH(Tt?|%xC#?<T?!GvVlC7hgn`EV-Lev&gW>VB+XsE)bojI z%$H$EINPBI!QL+;)VVLUl5XPq<MbIlz&P|duhE&)iS52*UuxNx>LH$P$C|44$aygP zi}0WtmcJK%QAI8LLI$Z8_Zwee*dL7<JV&y{_1+h_msU^?4~ImDl8-pED4hL5T12PC z@h|wA%)aKcT+MO^%cGE}!&vvFMTFsB>SprLmx1apzEUd{Jt(zM(ysp+`W4nuR+2yc z_jb9ePQY6aT)-oQ<wTZqSryr+qolfg#TCm8vlpzbV#Pd`hgn`^c@L5%7|~x=^S|O6 z-vvvmj|8dyl_J%WN_f`NOeeKHD*bB|=HRa}L(G3}{hFq_(WS$Qr}_jg>Sn1CLAr#c zxTHd23WYso2C0A;_ODNU!_2&`iBrw16iw&-vPzGyF$cPeqGeaRE2TC>OQntA{-I9H zB$%KGn<mdyN>RtZ#<4<}e9_ORwqHj&5*(@%3{8fiKy`-YO_m*V$ux$wm_IiAqmD!~ zuhxIfb*@0H2L)k)g8k`OtAk&wX>iM9H;Of7g`}l>P+_xup?nz1m?2?#k7c*j<T9A$ zc$ViOX`o@Jg#vUI_6A|n(!Ca<2O~M-G3L1A)>N&7^J@iT)_T==L$8P~4W=d+al>TU z=8zC|IHYDGauTf@54z1}Ek=z94W-#SM~h&)EgHSXX`!kZp7TNKe6YBT2ys0`wF|9a z@zjyphclsQmeZ~;VBRCdeBKsR-4TKod=1j+dMvF7F|&Vdh-s1={W+n5Y9dsz%FJ>V z%RH8cAyqN-$5SLsH7JyqDlCapnV~q&HO`J?(8!hh0csMAUSt#ZST0&i0o-BPWgYQA zNE&bQ(in~N%B#JhR3&tw?4N-AADd4{UDwyukqL%+9FKpyI$SwYU8_Q!v`N*%XsI(b zM*8xoxIt=7SRHjHj0fM&Mk?#u5Vi4J-2oFfdkmX7Q@wJcx>P-wmL|x7x0PVrg%!nX zHPs{hry5lSJ^dIpuL?}ZA;hCqv?+DEN@OD(>Z&eQsoWfoIj0&?jiwlZcywh}L$kdu zARx%uA~9O!R?(vywXZ5F_PPK=J8!6hn#;Lz5pHH}Q3v3BkDa@%=Ss|SJS1-06xFY4 zYC~sqa(qL3{?shRF<y}f4Vjq|i+LZX+EKM&)?h8^SQvFr^LeGADJtcNnwTY|P>NB3 zs%up_140_5CN@@gus+)sX<ET?*~)R@{cwG;$pULwY7j0S<csH7-eK8g1I%H&3CiqN zwfvEr7FH|Ofu8Vk6xM=o=s<N0f)PruZ(VUy%d7J`F8N0f36)LluZbNkG;GZbqtQ0H zn%I;zDNHx~bHZriF(@&HH5P@Twjq4fCzdl=E@Qcw<pD_CTG8CO-W`U_`4fK5^0iwm zJ8h)wK&;ZgNs6IWoW9|SPS4qYwFaI<vM`~>f5Vlg%eR=!-56k?3n6#2+F28WzmQOM z=o@P(&<a6a>`5^1)$Y&|TbSjGOU7D}y7!Gd=i0&Q7(@(HrYv(PlG4Q-{jJ{gq9#CT zBVXRfm+Rr|P3&n%;<8x%tzL^Cgc3i^m-$|IWjra>;RKr<gYMxt{T&Yrn$U8hq}&>6 zQFY8;vXOjO)uQlx70pbd>R3}f%(3WF9dkEL<L%A(uU^%oRR8K|CQ-Hdbb2+Zdfj-Z zxym@LI#vpGC9vw;u7OpzO_Ub{AXPwo3aVOWbz7WM%|X1z^QCz#*RtHp@+>4qrAVfk z<HxF-5j0)eAam}rc8|@ZE$cn1XAMrhrLnk!(xSAgF*RISpfcg;`inwxss%M7RW2et z0`>w`wzewwGTX%ZRSjxWVyva*RDBVXrR--b%OfnWux!7DZ1rb3j^#y`ZMK>zbOyJe z$jME<u4aDQTVT5nbOY6BmNVI(zMoFlR2Ol1C12RV@&wBpEIV&Q5RakX(xnzP#T#oy zs-v~*B&o@fA?Q>hz(&*$XoBab8WDw+7@7&PTU=c=`_Cxakfw&!HSZscsj=yq=aXoJ zMq3mH)(c9(F6%~?OVnB{z*&Uct5BnAVKNB2Uuf>jsRq==B&?oD(+;a^Q6^~4siSw? zsN8yZ22v^>r3-3RZA<Lb{>U2YSQMA*sydcn)h1UwF+j^7(-tbLUUhU=#7>OGUKqB{ ztBdt?$Q)cJoSBGD_QxNoUA1|FL>;J&g>J+Lc}}sS*8X~JT9wuD-VjAkPDHdvq{Xlr z1ZQn0BU0NL8;QwcwsVN>P}3FEG>+Dx+5b*Ft#OvKJMNKK{KiHVWXA>ec6VFALqRGt zDvUZS+oEVw93Igq0X%jvnW=V1@e<GcI%XO2pcnf|zQc@E9wlH9BzDwcUNZr^VR>dW zH%ixt7(6Diy8*i$5Z*Y}p2c!G%PlPbgrs{;b+3cDTW@)K4OPIB9Zof~4(94>#!B%^ zcT+7zVCUHMZI+$4QvjSD`|DWztJ`(V?7UD%XXn*AcrZdeP+es?a|fQ_`I6SVF2=?? zNMqhkGHY(Gv}CbbUf2598u-YCF1Fc`k3i1P*7c~m>$Pmvp<X2RIakNZlOslTt0!f^ zL;XHT%Mtc`iRFEk-FK0>A-k{?=}4w}i}_F}PGILbELXDJ#_}j+zMPX{!L+hdovx>= zTw4_ARaWn?o2(CDIiBS_NL36quly$}^Se+7o(*<2={s}HavHp@WyQUuNL3VyD@?_; zxO|o`-!(7ePB{FX&hnGE+G7ueID%z1q<SP+t^Y4IHRryUJ+`6YA?iYX%$@5kxAf=L z`tr;QQn%~VZWW9eu+EIZRC01^Qi_`UBOWB73DN9~Re=>aeH4BA6J!|vsc&q~(wwTV z9*H!c_Ax5=`*26Iy73NdwZ^pn-tR+Npq@q3ZrelO*9{5@#`)*y`JMP4#wB|Avrm02 z2Dtw`^CR5~F;U4_3{s1K!nV#m=p>@&(XBqMA6HSs>j$a>oaD1CZ*jt<E~}M41gR50 zRJJ8!{~-oNSf6f$ecniabH2j{)(=(7>bpV<wI^Y6PA&dXPxz|qKU$x7laX*5Ub)sa z4*d{}9tKy$=|5t<Z!eXaInuCdVsmtTM0o|2`a=o55th?g=CC(xp{!@OH^!?QYGHj$ z>nF6J&N9tL%tfL%vQBu2e#{)HpAc=f{APQi219Kh8$8YO2FninC{9U9P;<oAj5RZW zRs<*ih@FpxoSkYc45h;xcHgkfX1SOQq3$|qr*>$3vO4yoo-(`iV{mGGLJUrK&w$7E zth|TiN%Ep64R|!F(tkpiy$SXhhhr44rbGQ2E4JHDq4i;z!E!3gg)G;y+{N-Zq<WY} zKIPSf2Il(ix=Dr{&fS35C1~?DZ(N%*#o)8Kt<KmWw_}bGriN^yW#!oTIG!ZMCS}xe zwQ4&?Q&%XEVmgqsW+2XdHa=2UiVAbl6qx9D045%4peFq+al|~{Ew>M~+>DsoH^-=A zYizF*8WBM+X{dwiFyRqN)nLcZxXW(-jPAl%8-{4M5Y@UN-OH;Q%FtLHh(?d;qlgIX z+=Bb%pXpY_vIL(~uG+<*4W?+gRa^sRm0=@Y_upNh-0n|O#x59_#pO0VGeNp411f!3 zg=a^gB^$DM{|t5JZlPv4nz_7V*DW@Cbc+sD8SITlKe(vU8*<-S^+D_lnwZ~^daQ}| z1eejAhFDgHe=Kp3l|Xm6)ZW@vhiFOf3e+l$BqjOWc{mzV-PT;^4i9iHA_>_C$<}d5 zRm|!^t&fIj)Ck$5C|0*pvzOm#7gBVEt+YKvw$?!+B|6t{MCUVl54yWq>jcZItm`VH z!7*ws;*@rnEa>epT$Iye)MB{zhCAAGmQz@VlXW1*9VdReordlL)>^}IC(C0jFGH$_ zx$o`XP^vcDX{lz1JxX<prLDd0OHMU87I%Vc_%%H?%xSqw%4nqb$D)lm!s(7SH-FQ# zZ^LAIkD)_s-P&$HZucYbHIjWL$77pgvRg-ujm6fNxwxK%>sYa2xsG+YL%9V_mt`cS zc0zSGE1h6@m1WvdiW1$qAF4K(;-+2e`me=}ke&Lf8em>gD;lXlnxC2#M>p2axCnI< z)0WuZn1Hd1n%+oZ-yf|H#He*~)GeascuO3Hk+6gvRcw#k>0Jq`j;T&{IZk}fMTi?% zgKmRPjcln{tImMq-lG8lJdVQ~C~9mYdZ$56hWjZtdYxtaV-!GNmLpkaLGsvPY<wt| z-SvhRZtbemYMpFt-Vh(Gw#8FR*6kM^b#>$yJup?P8_PqHyG&|C0;Y3Q?W%VZN&yC` z@RO(liZGmuowV38&;&2=aCG)lbkGeDlh!!2{)JcWc`hz86^#Xk;vIg$yeE6SNge~G zZ^n<#Iln}xMZa)lbj<cPF`wRt5MIaQ6jF_<)U$3-{*&hD67By*VyyLNB%;A3tw2hN z>eLvU`(tCN)Uq3gJFqn`M$K-l6T7gnD(1@jF^xIzCpM<UW6xJ(4C!D7n?6`BVYz|j zUY4gI)k6geykmkZxb6uOT;Bw#1cMUt<#}ELUOZt_?N4w4vm6Pjiq*qQg)(QeIw8!m zLbwr++Zegh6&aGno))nu-gR*^p>l#P2`?|;Jrdewq3$PyVC^zF2ovD#;b9$n*v;|; z%d6xWbJVU7CpU42(E-_+c9IlaWkTc0?XG%4xlS%qpx7IVXrl6~w@|GU%}S+<XdYCj zu<8O<wFEsb(H-;>sI6hOoh*;Byv(xADT-251l`Xct0Rf74gcg&P8}YI$8JyPpoup% zReOh9OPw5OVB4L3_T)LR$b82UYLCU{@u;W>bJphEud)XeGiFxz%fF(5AP05xS9zO6 zjdbEYHjCeDju14C@idQ*<rUiR)g}eqRgO%G>XVd+?fdSKHvF33_oO84TXj!Sk6<%q z|6gU75Z_GLqC)*u2lhQI_?7m5*!9}3T1pYCnT$Oidd44Xg2^iP*V<|mzuguTXHUf2 zOc+QHN(pM{M7x$^7emz}Rb~nXob<jEcY)NbU-L)5FQR{dbM!3BTP!=BrabO{nn!ec zmKKxTydOZF_!V7SzCN904kY$hpee;f0&<>qtC-5cj+hqQu^8ek*q4pKi(+e#yJB^7 z@~^aYzn;y>LxGyegh`0G&IWZjnJlUM$#@3SJm+P}nVZSzHghcYQ7rVuo=y(3pA*w~ zeC-Cy4rfTiT0G001q-tyaw8pj=oYiKtr=xHhke`08@TOGy?@&t6GE>Z@J1fH8UcUV z>~As4^(^<WJjwDJ%XVkUb|01*kSH3pE+xWzcO#_%p2KK@x8eo50PKIET3=qBOv$%l zEPVuSf~oA8R8(53d0AzQz*+#m*LFNLQk_k8y?l4KX|PIbM$f<L&E%1>vAMM1n0%s% zZVLBMi%_h@U{Qr;M%3*VQORoW@8R}1TXc&C7@X1LT;=?M?R*q^u|}$QQ+S%uG{un= zg!fh*aoSRK2hDC_l48^En5)n)l}>5uXeO^6McB~wQ-8tCJ~qR<cEqPGF+LWxfCgmz zqUiOe;gv%}u(Xz}=Km3j7ZK5EcG@K>m1ASEoT_I259JI?m~Z7wsb|AxCkMaep~g0= zVQ-ed7d*Kc=0?wvdOD<f6g}?dL8^U=P&K1vr0V=zRh8bVI<{zGg^qf}+kfZyQ5OtG zWg7X$AMS0i(z^`{RpbAM>1n*u)m+c8xwG{`3zRdWiaO(ZrN^mOH^<UfLV`URc4-`m z{dIa{_B~|HD2f}_aGPRdD(%yv&IbkxTxO0$es#m`e7`wrA17%sdqWATAuTK=qK^N@ zQJdYOsk^kpc`JaL(vo`UDU!0iEo!2ivG9Xo_je5)&GlcZKk|4zhp^{dfWbc1)fRXS zlHIPEp>i$KS4Xx?NO0wV1U0TD1|aA84q%x9iOK1>cnmkSuG-s@lPp!GHvZt3f=2xh zZ%txMiK&$9ExBCow$xE`s<hv5JFvZlEZ4GCJiQX*kh5yuZ|Iw#G`Sd&{}>F)i#bR& z?JRSusjwbujRtpF4*nLTM*eQegf7U0U1Z#hO50W(l}@e9sPt%sQ3prj3d>O!D1iwr zk{YSGtt>^1c)4qWYKPz>YE*@z&IHNx)2$-w7IM7Uiqdoq;bg-$-i6^1to|D4`&A9G zM!gr6AFJ}cE+H)c-BL$5&1-(gP7*eJlI1m)?JnwaqTB!W@3urI*3zUNiKU^a`gLhw zz)NPs{)mjHtt-`RSh9%b%Bp6fQct)TU{r37;TvsZnF@zFFpODUmOD5Q?Ij{L0sZLX zxXbXK1a2Fv>sk0a!9H%V?0kuA3}!ir<wBMlSRP<`fo1EzNV7M~Q7mV$T)}cXq<VxK z&u*=aNY$sc;c7mQx8`^5&$c!wr@3|He55w>Xj{YDXx?vYpw%4O9&PkBvWQl4S!<)H z7P41+1H&-0iEB@<*-3+Wu(eU3#q3HOf732=8X(buP)phvL8>hxV6D7rUYb!=4QYqn z#O6J4x}9NZ()zbIJhW-ODR4Ajd)gQU+po)Qaj9?vcBhRYEtncWaT`IgqBVInxUFHS zS?Y9}Ha(}UQMmn?K^NT((1Eswu2ThCpq&)L6i)qu%VraFvn?Fgu;WfMa7!CBF3l+1 z2u(?YpJVLjGRrnssF<X6*_FnxRjLDN5)G$1N*;Pb37ZI5PO^IF+)jJw+0NymUpsi1 z$Evw3uaXCD2I%Hp(atEcDOgE`V7;5w(RPNV3EIMS;3}ERr`4ssRcjq-^@bM8gyj_W zp`YK2+Z&$l;Qa_0nLszJzWXk>$E&o3Z@-)E4fl<HpQ`y*4&oro^DOVM>~f7FFc1>c z9t9q8OF9?@oA@IX>9Oo*Cd*|kH?usz@+`}{EPGrh>sgR^gzNtPvW~cIb2{;@+MzRI zucmi1XbR+9H=~Z~)z1jU>qkZ~-Qup*J{_+}z4Pw=0OUT#Lzvyz-qE0yPqnx=oa(4^ z9gU!b1T3wYV~D|>;Ewq)i&Hv6Hn)|SYV$iGQJX1}0sJn^)J_J*icZvmnRI18C*lmt zo1_(JS4TS;n11hVq^eW>3~VMhqguI6c#ztR;SH9LIF6Q}TX%+^o84it;|*AOM5p0$ zXPt%#{SBU8xzyjlwiNf&Jtfeo77Z{8IxQbyVDcUF<kV6pM$<5G#X!Rv5t#?sLD8WF z$G%;RD)GtA6tMYK2zt$FY&V0ZGk6o#-7XZmO6zLSm3dtaS>~qKD)YJ;SkbY?P={+z zS0h9n?8@&#V91UaMLKaQ^7eKcCbM~QT%~uTH(q#5L-sPdA@Thv@x}0`Q_bi~C7<7q zQ}xK_$*BgDuhH;@>3|ynXhwNKkDr7ayW-LkzO;emUNRog2(#e$Zii~y&Cm-d=CZp3 z>q?W!+$q++&a(YYGToQuNS0YF7qMIiiI>T+W8Pk{Ku>ftex>0M^3z;+pWEA@&B|(W zUj(w7yke&#f8{Agt?G{FYIH&>o~x7@m%HnN&q=4*Z(8PY$5QRbePEU>)&~aWE9w?% zE)^*mInX^{22byeU{Bl(F!YN$=cuw><z%GYLR=oJtxoko$537dnc0i(7rY5Ezn8(g zZKy|2`HKJ2;Pq%PqdM&<3QBB2VV&-U&j`>CJD%#e*vsH`n>)R9GP?KS`fKh)P-prh zigs+@PgI?HqA|l<WiW;+sH~y37EX1om!TfT>(VX4La{5gmo*jmenKxJ+>sb(<_G$P zsu$v7R=)m-u35xGk%q!mXcQuc4LS)FfEwS+pec|PjN0jrKu@w4vZXgN1T8PiDJ&PT zT*GoF%VR7rvutylYL?#XV-B3v0YsDsUUiaaRa%XuV($q}%(Szd#&Q|UZIH0Q%^)%% z1@BhVwxF@S4LvPrahpu#c$9rzW!d2l*&M)fJS1&(Oi@RA8;&G1ZBg{vI8BT8rpiI( zAhV4f`?%8Y(&<WbH1o*NBT?#DA5=D{YwyY(lq7GUaaEMIechSgsV^QauB|OS`kIwj z4eo0;7Am7JV!+#3uJtkKMo*`FS<A8C%knJCyDWR$<&t2T&2lNrt&n&HMjhy@Ygji= zH_DNGH_CKMdO`vv-qP-1(lgz#G?gvXVoLrIvR^Ep-u!e|8g};Mw_?rL4xDPz0Qk95 z(2qLf_Hrp5wa)D!lRUJ)M}<W<mTK1zIfu`%;B9tX=#LB7Lco_fw<*$QyE(U?;ohr7 z7t|bj>am%1rkO2dW-gmq!*UPHGc4~ws(^;7ZGXc_PY82j$En&=9$`O}rG|`#67S06 zpr%p0yWgkG*Y&`)uz9RMH~4n7W&k>;PFjED8LdqN4AVaUy`3x!hXp+Q$qv^>+9Re$ z3^419S>qhZNHpgDXki*(^PqysVV_%A9%gx&WxLkJV6h*|u`K7XT+MPfq-*CHC*<Y; zgI`_YKh~1v)2w-$Ww$nDZ5Yd`ZHm#x1GI*ui?sk!Uc#3)vpmG|FP3R-$zwXpOqR1* z=Ca(y@)V?cipMFv2BX8%e=wexvj<am=ip#8ZnhYDqTU~jF~Int7#<uQif049J(Obq z#@5uP??u&Z7zPBiR?%k|zc_ky7%GsxnY<pHG2Do-VVRA(;P?<(l75A4@^C!k)%4-` zih~`ym+>tO%(~+}00%ai-x+Rv6RF=3cC}!gXr8J|8e&__{3=rRU<`Lu`yn(QQeB4P z`arrKzzvuAp6;H(XnOE^uRG+i!=X8rHR%y(D&8DyaML)749&#lK(&mN9_1;*c0-M7 zj^y~3G*O#?MJP<Qs2;-&%-*3-;c`hIPU)}Wh{iI_;Nhr2G&`z}QU=7?BcX@4gQBt5 zNSz*T1fvy<!<+DlG5p%t#o<P1L>TGNOoP_CMls#YF{P4FLx&>I5@XaZazDUPJj+)d zYWYwa`r&<+pcL23dk2Q&2BKipE_ie#H=|bv4^Z-MvENSZD7Ru_WLC7pFoPblc=ROW zeG=|4sJ4{r{h^0RTGGairlt+UO{C^fnWF=-YnV~5ksVWT2Zlj)I-A62-_{Q^XsZfx z9l>v<OF3+1Bg=g(Pm^*nx*^q_VQ9)#TVxq_FsM$Hz8kF5p*`1OmZMl^vs}z_J<B~T zPeM{}R&5<_B;YMDTTFo()PvG;jdj~~Agg^?X0V*fatX`LEDy2#i)C6zjs?q1ma8Du z<5gAH3?oDx7)j41)p-<dpv$A^Iggg8iGy$F)1#>~)rg*;`j%}ohKBSV$MDTXPFPWh zr*Gci^*FVA4BdIHGpW_0w>#Lx@v$gJyBd>WB-;{GT&6LW9E}SpYJP@+r2{;tbpQw8 zYJP*Q&q(SyY4>TP^y6vHC_{f*2D74OG~IEaZqDXR>RhugT2#mS1~qx@5Dk2cke4iH zjMTQ~jpWW1T3Bom-Zc^#e1b9t-wjwl5>F_)rLk>)D_yw4`PQ}*<zz2N^nURkr0&l1 zq9o=#(?+2mOy4`@bl)BgZ^K!Yw)IQTf6^!eZ>`}rX^GcEc`UGt^d__6`J`P8D^H_P zB4)O#KgS?0NQ3G{If<P|q3YZy!;-WvV_{)6`?aefqYZu$WJe~dFrGiIXA32UMlS~` zBl1UK>u4h}h9Vt`G~<3sPHBj#CY3wJpz_kWFp2`%!O=X*@-LRHJ5!GI=v>Tjs;iWe zq3ke`<y=T~q11>m29LMRAk>C2NJ*j-&m(fGm5Pdi1s}C^j1eQ%VA~kjTE$lKSRQ71 zk>x!|Jnc}{S14~JhPTK|w=NW)!I0*z&moySR&c2erCjt<g`8w}ZKlq1?5WO#)$wd~ zJ6kn(6sa4T(t#7xl)3#Wm(sgZ97eIsX1SQ<dX{@wo`l3cb)J<{tH&C_cyy?ZV{zxu z7P!2zhTi11hwNQrA04}q)qyN0u$<3w9m{=?Dv%a6W{fk!oOmqQV(@`an$uOA#?ehp z!w7nrNZlQW0Y-}XC(X8V6FwiWtYF>}Jtul*t{G?4jHnW+wvR&u?s5=ax>Kf_^Te0N zVZw_Vdpysv)9X6v4TJ_BPNY|?T6|n1d;+Rb3V#kNS&biWx!0zSH*~LjCcR8Elf5lt zxtZkwmS-U`8;sq~^w`1%jmGNqcp9Rq?h}kEsG)diS<S*LAFfRcZ6=^y!iJI<)sfy3 z>E44Y1EdNFPS6)7Oh6v<AGB{pWs%-^)|;JAZ%cl?ous#d^|rD+$lAzoS@TdgCK$nL z_e9)Wctc^LfxC3VMD*jZ1_;c8yZ)ZZ=!ph@8Bood2#alcQVe^r911C4)7dbQo_I~< zLAs4JC$i35)^Uf5CloRVEeS1j(g5xr!c^@h!NV$6)sI8k7D59U^D`xC$s_~4RrkV; zc|pIOtX7hNJPz?Nn<=;%?EEAH8_3Ls;T+mT*0UESB^wf7PJnUQ2Nvbv`Ia-2@o0#) z;}s=ye^^cWiU;j{QkN!UDw$qDE4Vr8`eYg~qi1$^GEHR3WenqGe-ihCr_uJaEgbj( zmS-sng*IAcPNAnWh3DF7HHm!QVn3aFQ{?-z9K&)YBt8<P=1-N#xr0?3vvCKh*3)=) zZSORriprR2)K*7kqH4vb(D$)WDCSoUuFj&zD?I`t(CyMQ1|4S`{7MnO<RiTm+7uTS zq2|t^=9y;t)wZd4o~Sih=-D9;^0M(@%(vHSW|r&%q>qlOBeM*50BvTY!-rmLOenq= zMVsoeRf1kG%;&#TzMXh#GeQnP43=jZv}-Lh8@Y3wa)GD2)!8hAmy0Z~?P27KHt*Cd z#2AkybLCcz$YukxvN2Bc7z?#wHf&$!d~VYRV*;J@6?5R)6Mu)KI#cj*CHh7O^(R$2 zT^QDfqGBn9E7?ZA<lLeNPl6VP+^m}tqWVq4lg->Ud3Ofggl6SY)2HE4>{_)ROZiS! zm6x%$PcwMt>(UHMrgo=T=aOmEivcrGtn^kXFJzh<=5+sJ=d64&L*tuFdxG}QGW2KA z@Tj{m%gA3(q-%0}mgj;~+wiGlG}Y*o(>LfW@69@}LaBP_qD1K}o`V~W?suK3Xhtkq zww8+6odXMISaQJZG-p63(3KHqX6TH#J_B_dyDHYrf_eQN6N&MbS;&>`ob5+gUgFHh zn8h7X`b=~W2G4}zeOBq-m&!6B)!E3>8o1T>&onSl;O&%@Nm2aeL!?BergNzrhOh~{ zx;fLZeq44srI6bh)pwTR#8*}M!*j^-$#lgXoEksNh*5)P!_gAamDZc6FNHG!;b3u& z<w};@SRP_|f#qG6UDHW(5X*5aXR%z)atq5pAyq(ul&Ph&>4ve^dNr7;{5ke>n`P&I z<TFAYn@taMu1{^bG%-PSZ8jd(c*@+N2oHcFK90+BHp^U=yI7uLd5dM&{-imS<rJ2S zS#Dx^kmV(oZ3mEMUzTGa@rE)6Thy+Y_txyW*kQbIF1Lt1=NXmJ^T21N>=C$qsi&c) z&BsXN#C!}T@dX=l#dBJ3nA2UL%msLE-CcnAuO$2QWoynQ*PbBWRo8i*;nelI=_hK< zLIcyM2&Ah1_-o}Dtew-S&ArLlsqQX;$*p9P-i6;ikNOALSKkdWQPUP+mOB~a6pp1M zqGkj>d0>P^H2p+}!COr?Eu^UwbJw&wwFDIgPg04O+yfov8@2?qrlF!rgSLGk0zXfI z;}gd2B&$jDEq$Tul;}IGgw6HM@L^$mo6*c2r`kK8C&)P3)R?M6^P%5mAQi|!NV=cV zuyYzrUr`R}SdLg=&@hDpr)I5AQj~*cMAak;b1d7K$#NN6qQW8tTL_+Cn3-O`0QE}k zBIV7jc7WCNp8PWlxRFzr=<-><e2ZnLK@=<WL<dp<*_udJ!FZTT%Rws}YHyethfPh` zu~Q{Akr$8E@`Z+e?<qv><s4Tt7r}0S*uvnQWiHF@Y~4~K*B2u1c~3|K)oC%>F8!j@ z&_&XP9<@jof7SR!Mnp=ono5R`u(3Xa$$SpWBar%0hklf`$agKG2cO<CwhhIPcLL~* ztZQZfcU%FqT@1_Jhmg%hEH6RQs1v!MW-pfKoQ(S>F2QUse<uvvob=~jv#D|+yVSnL zXk`o5GU~p>p=&#awA^i$u7c*pflE9-SIo=9>2?@6lw!D?<$0EahEdwhCqV8J#FQRv zY6GdSz(u_E#d7fQVw9WoVe=z&ZTxV$b`-Asbhu7#f3aKZ5oD741P#=X91QGujMqTz zr7Ga6p=)w<lOPp#Qx3HtmfLT84lMS7Ei_atC$e3a{~P)J-y`+8thkD09;+h;<_E>p z4tz`u-`Q3xmZ2?(tEsYApx?f41-D$8D-CSALjhT4k&q38R-y44kZV-V|8?Hkt9dP^ z(6@M(tw!nTB`fqNxW^~$#Ol>XHQu=smKg1zy@B#3!@<>f-`nYkrY{Fm_msa#cy=|) zIYn(>hAs>}kJSx0JQksrE$5zqI=S4auF_Ya8<MY!rzRpn4*6(<zEyKpp>bWc%C-8V zx={?{XuL2SA)6l#){j?OOUKOE7z#bv5kp0Nc)5Y|eVU=?fuU{+Z{AYpRw1Xaa_)wz z>&s~&)2aH9C(9Z~j}-<jV-8#m-Lwp<5Dv_1;VoFW<0}(z?G0C~5An4`wP=MA8>@D# zz=bIp#qb85oLitalhXp$T|>I=&jt@#iN1I=jRZ%mGzxw}I2$Fzv;MCB%-S_Dw37`T zBSQ~Gsw*q`mXVuKcQ(|-)tt#mxCyE3oND80gE!<yqmQ*`wLu%H(S*g};|^va9_RAX z<GsGC(6d6bj9mk%@J>0MN11S$LvAyYvZ6VS$jna$&R=CDagXx^<w{Q|pvTK<Y=<u$ zf(|mD`hMy%sZC<Fc`S2TnO><;U2~Bo6gvCroeRzFtaF5P=*R_{f;U%Wuxzs$3x{|^ z-`&?z3s)QZqjcCZXhu_ik4b;g`LERmk5TF*+T5cZyq%9~>Ta3TV#@4G9Q1vb-A7Tn zhOnH#at_OtEVr@jGn#aku-w2hZ49}rW4W8<X_h@R$vuPRG?s@TU2S8KzFTD|X19KW zd+r)q-;UNjPV0pg6yx4w$?hnYGguyBnK_OsjOEtWHDk(JYCHH2ov{`-+FxremCpK3 z?do+H&LZ<k)%rSV-Z})jij3=*P1mo*kkkEU^x3tzsq{1F;97a89bXGCf58hD>&KJ4 z2uTlJjz-UQSX4;nub%2C?!h}&+V=Q$`D|~b3)=R=bz*xNMJH<lSv}7(Ya;P&meVE? zpMa$2I1g*7wU)QJRIl~Ofd1>zy5t+{t5xe^Gkr40(KR5WRXiT^=Bzj9+Yb2B8s$%7 zYLZ${`Xix_n6O;LavjTykT^#HbFKPG)MW$up1n433qE-RO>W@}4b-4w0I3dagr&Aq zC}i|0@u3I98IH$o6dtB(7hUU3*NX9`1GR1gb@pU1rv`0AXHezfP#Ant5ckz_7}Z^G zd0K5H|JiQ;tkrj;#Rj{~XFID%c_BxHU1x4AU~N4qtcL;`D3-@rUSfHlWt%Lz+Af>q zbV$rKxpJZNCdvT5<$G?TOknJ{2}ZZDhiTKu+xqF074lr3vB~{hp1OtJ7NGj6E^fjU zqPoUb&>dC_Hgnz{-;4phB)!*`e9!IvTM*0*G95@BMsC*qZ0@jj*<w`w72B2Z1>K=r z%(4D>gceX9&CvHa`3vtOZ8knp2RFk=-x(CY@+y~H_K-`~jA9mR?I@%?D4~^{NvhOe zSNArHVeYe!BAsctiiVHnHI}PqkxP%+Bv-O*J%@NYq?z=STPW%0w{R^Qy_M75ew#bp zGq>kU_k5c9I!*r3?QDwKiWoI)tC_|<d6sw|&vWI%RPxk*E(IEiJ(F8`yBf{mG{ZYb z7{*=MW<*5R0JP4d3OLYe=3pM8g!Pj6XmvIZS*Ra3H@6zLn0On!bjyS7zH^Him_<Ih z4JC>Ya<>%>;g%Uf2M%F+o;COK+(C5Q?h0bxHZzDm6vRv&#QAODjYtYQh%7tLBi_XF zFw3<0<T8xqVo2=P!%d_n=NU~uVOmZ0cDb)Cqbq77xprMZeuuL>!Ls*4w$F0tBH}fW z)VT4h!)>-3!7WlSDK(1nc;sTsrJ?4f@pS1ZF5%TAmf1^)*R$-DL%fpZ9Y`Kds8ide zZA{z2Lx|2h%rQkz954}p(ZKcXl;d~Fbl0V1B9mn<%VR9>L*j<zJ8aPos#y_^Box_l z7{iO@_NL~ze$5V88MKV7%w&0nWqO}LI#vtkN&Wk$+Ut$QM$%+stC3;s3D|FJFdhr~ z_~WYO-z{Y?{_ppTKmPnz@8cKs)klpgO$hjD-$Sjw{<#GH^)b#qG|*USeA(&YkoUfM zw!hK!v1)N8PCZ&~gt01cym8Cu9?&JAMY>Tw^s&&#l4{otsrKQAosA^{pOmP+%lN$h zTq7qS;i%EY*l1(~l=<+(5+x2iQlaKH<Gr$9yjADP;$Hqy;3Z1D3Z3tZf8f%qRJwTi z;$OS|EMA;7iWe_kx^(&SrAzaL^7Lnw;-$-1t4M#BrGH=GR}uCqmc{={lwh}t761D! zphU&m5cGezR}2n*mBRG$kK?6dW@;ha(xs~*29-+JE&pw$N_9)usZzdd#V^W!`z>re ziT~063)_A5$x1LmKm4oWQm8~Og|%7BEhHZ9|Ae`)kl)gkDpjiD_FCMfNl-}Jq6mET z)f$w%^2pXO>lL>*Ph{1!u$RnrTe0XDFC%}viJ~s>ub>B3g`Vpll2%a1b<KnVHXq>6 zS4|V1|0|Y?j6rEBc1e~iq5|gMrA-6oe?5mrt_9-$>XR?#(|x^o@ej(p{%+Y%-g=M! z75~D#Ty#q4cB@vr#G7=-;1~Sr`>05jg2HjHp+Xmb^XaEv{>ML`c<PDbZH+Xe%*#Iy zG2VaS#Wz2H?TuG!SE=y%N1wh>{MF}QeZI=SNPhgUuy?<DEVT4@A^)oQ;ul|5c<TAr zN<RPm3l$>XfB)Tg-}mw_^!?Hgt9?02eSx+txU%gbYSf;>0b-}?DfKVm+u+xPSA#zj z-VLrTe7%`cNy4Y6C^b;{`>9GT5>9~opTg6@fe44f`U(8Da4qn+!ehX{3a^EoOyP}i z-zmHc?ze<n!u>_;yds-@;9f~M9BdbE1nwZ*ANsR|UxWL8;ZAUW3{MBLvk&~Pa69PK z70!V>HX*RiRJc<Yob<l}Zxdb!zAM}mTnd>>Iyd0Aif~!D<E>M6&j61U{x^7=@Nw`p z;fKM`KBV=#cTg%wct%I1l7)xBeVFhB@CxD9;4{Jlp#Sv4+D<KS1>sHLhQb%1-$l4H z+-C`IgZn|@5V-&I5pCx!aFFmLos?=KycF(zgsZ`QuJC`rhlQVjPVq;zo#((o!e_v7 z!Z*Qvg&Tku3s>l*)CJ-Hg8%O^ZRZzouy7OTCkg)s9xA*aoFlvv={hD{4(?AquI=1~ zdpY4!u=#`V9Jv1>d<Z;FI1_&Jgcr<H%6LNC*$Mtw_!u}&_%e8e@J|br+9f;%?hpS% z`!(j{z7wtrju);79xR*+UN1ZXe(wwa4x1I8)OJdN9l~p%gX8VE?!5%R8-<?&tK!=I zJ@CiEpTKWp;WW4p7mk4YCgEqn>M8Aa3UuBP?hXD?I2bxTg_|M{S*8wnoA4dz-x7Wt z`lbG<ZKgrz8{rYq`9nAXI$6S7;l5w^AoyP;wBPgKO2R+)L|TMbgGUPo4^Zl)umS$) zY3;WQbnL>3-~qy|!0Uz6pnpd=t2g3|29)mi$bL%wS2(eUQr(3A*I%gx!u$IoT;aE& z^US}s-<<ABeJMNzItjux(-8;Z>Cjmyyb*j*I0|tn{vU1U4e)2eS9&ScK=?NF+Y0aN zqtry<b>N-CFC(7n8Et28SCpynONdV$;d9V$BfJ4R<AqxxExUy$fdBD-+D=k8r9Ktj z&`&9wa0uLc2#*CX6MhDKQTP<>mwZ<82k8nIeg|=ACwvp`^M&`p?{VSsNbkR%(|$w2 zp~63dn+qp`CkfXE?-c$H`4;%R_WL&YBjJnv(Y6SWLEHuiF99zRehhX_2`?Og_`jg- z+ymDVzJa>*hj4eqf1+?J_+2mD2Wh-2JRWu6r5ClG%ivnVIfzdi;a=de!ZpEbh5tlZ zToSI1a(w<JZRdAzsPOA3m!`rWBA!{o>2TjCyaM^~L`m&85;~QH8zP>+3U`7|hVV0p z=X&9{klx$EX|Vah%i7K~<Xc_gfzW9sJREs4M!3ajq(%5;@J-?8$0$|y6>X;@-0KM^ z!o8(%9^6L@{{!yZgzv#U@Kx=%AGo4$V{okS`{04X7s0EA4}-4?zYUwOzb0wfuGDwJ zNqI_j75)&sQ24KHN}Us41uprz_WK+B))GDs{kFnc;2FXvpmSLG1MstNNVr>-sw`Y@ zvr@kZ+riz1qY>6z;m9pY9Ti>z{^y(8&L!x7DSQYvn+m@Mzq5q<K>ttS%HXF;X}{k> z|8wCCaDwnJ;J(8D1uqkJBCM0bJ>mZBTiQ+-+&>d84gNv+b8vg%V$h!>Tmo^sBm6PA z+}qkt1;j00co_Wl7k(MMLih#foDnVt_vhZxexHQ<*TVPV9w$5x++DaQc)oB6@SnoD z;HTczcCKzhe1zYD&F_ULK_^XkJ2*@D2>6ij2I!Y~Pupn&_pgPYS%&&4oV;AAbm2X4 z&k-KG6n%Q(H{ky4``S)A^uHCp2KNNvr{O+W_!j&w5`GjqM})h;J+QR4lLq|{h0~!^ zN4Pn-g>VP(5aDI;yF|DK+|LSs4Su?ewpkzisqjbO`oh0}(}ZmZce?ONxE~TeOL6-^ z+nEV2BU}mk^@U#nw-t^cJHn%2=dkc%@Z)8*oifm=D7+aqe-zG!PFLZ9aL*PFg#LEn z18~13ydL_meyD9Oo`vU^@RpfMIfXxh`yk;_;5EXp%*OaZxH;V4{7BpR1zcOW2DpuI zeeg8l4&W2QUxT0iSo>WM{z^C<94q_`xU29R;HAQQzz2n&MtuJBiMDe9@vkg=5<1O= z9|cbpz6G8A!e_z%S5EuQhE5gXK-g?Ad=2iih4;Yyfawl?qP+H-4*poU1Guhm;2hWy zei}SicrkQN31@@<Q$gFgFjuKC;q`D&7JdbOM+&Ea*9pghuM3X?zwxQIGYWod3r~X0 z_QEIOo+Vsj9?~NG1^hl%QTr_eE-(BII7WCO><kcI5BK%L2jG4~I2-Qoe5UOz27fO+ z7&;w<1Hlu8Uz>-%jqu0dr$5(z_rPzE@JVor@OR+x!W&>`yKqgU>!NTR++X=Z+i4E| z&SdB`6AndK<Ai^K`##~i(7z|#8T{s#+D?7wgbH6n9Gt=mc18$ShW<w3cfePLD}dkl zO55qN0&Sh}P_R?DBsfEOB6yW>4EQhM_rcFs(st&8gN2j9zX*Q@?j>AjCCW(nAK=@< z&x1esTH9F<t}9#(et#EU4EKq`+2B3G0nm9oNc+8lw&i2t6W||({|TKg!mYtGg}+?| zJHq$i{%Ekaa}xGH6n-0=EIbN4SU3;*YlZ8AuLwT^n<YcEop-=t!q0+Jgs;I)hHyG~ zweTMB4dKtA|4yj3a}oAy2(JSFE_@g~PPo@djMIhFz%NzSeusm<6P^SfEIbdqPdE?! zd=;&KnDm8n!M%i2!5f9+z)x4z`rm^igj<hN>VLu)!83&?f{zO)gP*Ua{SF0xBfJXS zTsRLrLAVEaxA0u><6+uw4EPJ-&%iB(-v`eYt_J=~xCHovZ?xZ%;5gyB;7sAe;5^}7 zgB5NJtzUPDQdNaN1Gg7`AG}7mB>2&At^ZHb7p?~GBpd)<A>12$R(R+z^gXI;ziSb0 zsPH0is&E?gM+y%aj=2TlF+)*jgsZ^L+cmVE=fHJ^og)xu;Y8@q5#9=&<H8r9^Gr?c zH$4OWDB&RJJA`i{4#R{;fR_ue2jesAJgz^EI6oJm`4Zw;MfeKbox=6uo+11c>d!ji zJqYWHa7o1H^;+7_cZg4f@JsOfKjC@M$r4@xo!!DOg9B=7zc;7jUKTzBjuyT;L#ckk zi@<Ayv%q(R_fJQA5~=M}hkJeD55XOUUkA??jt3tW{sH`Wl=fQ*Tu!(Rp6}7ZVc<T( zpMw_(7XzOX-i$butfTGJgL_Tk65!v3o#1K0rNM`VA3?ZJ*42Lh1O80d4xKpRm%+V- zPe5n2@NV!!^|ar0;7^77f^EXhz<q?<gBJ;p1Rodv2=Ra9JIM#|+rrhs5yB(ENy72q zZo)r+#|gIwuM%zsJ|)~2{MdiB{eSPkGf4OYaC6}=!Bd4_1)mg7SdBjC_u6kK@PCC{ zf_n@12X7Gm3H;a(TE7<fE8&;cU|cU;a~<YMgx`bve&LGX67{v;yWnu)%dpc%_$jzg z6+X2V_mpsF@OwXMzkOl9fp9L|CkP*horA&#>^%FE*8dgyb%o18zmxC<=qwNpf%|#k z-@v6CXum_C6EFN0+(!#P0h@b;=RoJFpCv4Ci112q8{s<OdBWSk*M)zEo!4#J?=IMn z7M=~x6wU-66CMD5qoLM+0$f}85Nvi8ZVQ`hg`b1Yec=hv`7&DjZ2<R{!neRPg`0rS z3zvqSk}+EUD{yt;|G`d2;qKts!Y@MSgm5(6U$ASxwO}(!xGLPc39p3yLgC=`cuonI z0+)%^ejf)X3qK3a7LM73akOwU_~|&U{}Xg73+IBH3Ex3jlZ89M{eW-+`0+;CZ%c4F z;RtZN@OJPh;q$PwOL!~zsd(*o40JvdZjJc-F8m4HX9+(K_oKpZgP;3F`(3mF^HIXx z!Tp3Uf%Am>!_E_pwf>-u=ragk0QV7I0p2Sd0{$>T>pu%l6HWx@2|o?{#hYlIBd}jh zI2!J)g}(+b5T1xQ-xnSV4ocL1dw^RDuL7?So(q1+p>;B{Fh&-R%~q<B@GZCx5#9ja zD7+3jv~WoC<SF1X!fnCP!Y9Cegm;4%2!~BWyCG}`Kl7`$Qx-a*!u8<ZO!#wfhVaYa zb;8BK_k`OaZe^0Soj%}t!lj|}Kj9MKX~I_#)_&pg(0|ye{l1-xIwo8m+(<YSJVdxQ zc&qS};Kx(6-{-+W!e3@$okF-3xWDklF~|quE^t32d>HQkN!4~Hg1-`;3yu>W2>pJ- z!{EMDI1hY7coq2hrrORuaG3Ba#I3dPVemZRJn%W;x!~8ENgTkD!fn8R2=@Sw6&?!S zCLA{bb*Z`bdv+Y!G2!OmR>H-{<Jn=lL;ryA)8JQHXuq$6e-eHf`U8c>fp-cAfuC-v z^`9S$xk}+y;27b5fV&HK0nZc8LmnO!z6k!uZ`#g1@Ylj`L%)%5F5G(w9|kWHPK3@S z;h({8w9<A$!F7degL??qKt3!Mt`EK-ybL<e|E~RR27fC&5S%JJ7Cc6{F7ju)aAoil ze`vpVVKYcL1^M%v@B#Q8B|H<nMffA=-xYoX{L%lko&NBfBzzY7<AiU4_XuBv&O@!W z{x9%bLHJQ{W8w19A1rJjp4)`W!tbMPwBKhaT;Wfk6D#~R+`9?ahW>Kld2m;4wcifl z^1=haPT^?i&lBDY_Y1<~!KKo)-?iX|!tJ3yRCpxXhfTu8rehwmoz`Cj_p-uQ!9NSH z19uWW0iGqi8@yXM3;alXZ6_W4vG89x7{dxTUV?sz@MgG=7B033{Yl}6pmR?68SuY5 zXq#_=zYyL6juw7+G3uW1iG^tQgs*~k3;%|&9_^^@ybXQY2SDxlnFW}G65bE)Dtr^X zP<S)=wD6lt(dX=>{r&=*?+X7L?zM#f3-=bn)xa6T6~Ie{ha>)Hg#QEg|8&+i7a`7- zh5Le=3de(o3$Fuj7S00S7XAVJdKYb{J@`A}k>HNPuY;!wR|oGB{tx(`a5L~*UA3JL z!QTj10yh^fg*cB8{tjv1DV&3J-4?D2_cyy~JG<dGLih;s{}16}(4jR{DvMU|yH)rQ z>|Yl?4ENW&Yn?0bTSNGJxTgsJAKV8EKZ3B93HL<3Iw!mpI?wdbb~4}|B%BTR7~vnl zU4?%KX9+I_ZxtQ^{!929@V|O$n+f1Ag?oUbh1(#kG~sFBvBKNHn}q9u?+b^4-|VGr zz6`D@TpHX;_;c_m;S%6nVJG-6VLSM_-rCMG@aMuu!EwS@!F`3Zke_pe%cETO30Fi~ zR3B|;7|P{c;i=$A;U(aX!rftKvhZc_M&WMIxhxzA{=dH3=BLmJ5)K0=2uDsvKScPs ziD(~$Ux52<;dj8FrfWOfC!wtq&IP9n-<^PGnece%Ulo1}Hs9-~{ni4<2#0`s3;zaQ zEd25mtd9s62bb@!{Z@d@MB%;Qp~82;TZGSo9~z+b*MdJ1ei9rjd<k(LBzy$CO87qb zrf>)HJ5bvh0CosBK|F^F$H0BF@Jgipy6_xu$wAuhC$RaguoK)~_$usV3(p4c6>b17 zF<ASZ2s@R8QxVqh!t=lrg*!ukyXg-5cZHvTd#NGX&LP;TF1!t#B3uqSgM=@@eWh?^ z*uN$`unX$;P;I9R_;caUx}qF~tAPgymjo{oejj{XcmmqshlXi8$#AbIyr(n9^}<zP zzrFA%xK9**4(=O;7sLIA@OtnY!?n#0;BSRvVBaZx9DaujUjeTa9*X#!6s`;Xr$=Zz z0pQPt=RoHN;rg)ORyZA;A)F1~B)k&(4`*mQ)ZUj9{wHkyB>W5XI|?@kX9>RyJ|SEh zO!I@(R!6~3MPVE2NQ|%p++DaO%6z$SSMVj_H^EPj(so{e{@23qfa8QOq0V*?9tNH! zd<1+zco6iT8m;Yg1qTUNAUneIpx;HfJi?tPydCcQgmc07h1-J5jL|lGf*T4?0(TJ} z2m3RG{|`2I2|o#UBUAg01ivl(7<3|qx4^xP@GS5|;i}NtBYY0-)TgI>j)yz-FNv4K zy^-*J#AlfBZMai^nsh3I?+AYfzaNa#?!UwRd*MI9ZG>m8!kV)1X7Fy|W#GW^+V4Q{ zJHlhZ)K8_beg{+ko45;jknjQUa^aU^F*hQ7^k+Pqgza#DXoB_|kc4(gxOghY{=&7u z$-;9}@GKC%=0rIP$HINDaMBL+%_eG_6QEN{xIQ>YxD+^6ct7IMLAXyc@>BRW!ksI; z7Q9_}b7jnj3qR^WUw4uYt1O-cuL#$fhqh7pxkFfY6aEA|P`EL8op4%L++V`?P_G|G z8%Oz>Jrj8@ylOf6mcnIMqkkg261+nAKUwJK2xo3XTa7r8ova1uhYQ<KXX**(Z9?Bt zIDRR{?7}?}ZkF)3$j{BfWoDxfES!n>JUUg|zc><gOn4~jTTS7t>3B8?mjHJb&OL~- z6YdH=C7cO<4r!n`9|Knvz7K9L+<Z6MOySmhv34o^;U1KWaAmlc%+_|MgR2TZ1)W6U zzOXY)xGCJ%2p5Mw&6Q9b@}Tq5G|gGy%EEP^-&A-tc!cn2_{|kAaRAR;;p{(Ajz~Y* zi~-jd?z$i2Dd7{~>B7apw9Y~LUxA;Pq4|@2=;sJKz;VKxz(a)B!+x%CO~m0Z;fJ78 z66H!Z*T6koxH9s#rEoL&oh<w+_)p>QC=Ro<-{Ihj!b4%Fk?>*I?<@Qgbe0PL3-0HI zYk*%u9iljN2G<gP6me)J+zLES_$k!wox)?l56{tl$E-tr7QTYIQ(O2f+MH&>t<WC# z75+IFc`G~??Q5Q}6XkP7xW@vtw{s<KXiMG|{;d<{&xOApi1lmX`V^M%IVbKN;SBH$ z;dV{YZU_%b#l0z9YZsn<^K@9#z~zL)QOCX${s`{Ph1>2x`3m0$ZxUV)z9oDd{M>wP zv&~MlpTgO2PZaJA?j{@v``N-f;l5Y+68M(zLhvid7b>syXeUbx4{VP$MB#t8#(rbr zH^J?M13O^7KzKFumkNK|4q*v5fjf<{$^Kxt|7)S<MlJCC6@Iii`iH{r!DcJrI&jYv zE{||?h41`~Ic?%6F=z0Yq3(fUK0x8$<BQz<jD<^Sh8pH}Ec}y&J6U)Jb8FULVBzH! zUTfhk%sLKxEPPTk+qrGwe=O#BviqwRE^lEPb3%c2e%8!sOtx@)3-_{ce+y5r@H`7I zv+z0#Z?o_o3m>-dDGT4UaKI9G{y%NuXD$4Wg+H`#MGIH6@DCPFv2X_q(>x0@it}fp zg=boLwS^B@_%90w<hbqp%fc^M_;m}vXW>c~u4CaJEu3iK<`!;k;Z7FrXW`)%&a!Zh zh1Xg5gFwvj;rAhaAK_OXzY6$$ieE+iKEv;G{Jy~NOZ>jVuM&R2_*KS_-V3URUl@Mh z;P)+l;rLa@uLgcK@r%H(7Jjwy!@=Py3O}59t?J^3^P|;w`282Z@A3Nqzxw$7h~H26 zHNek?Uqk$GIH-!j&yHU#esTEWAV?LD9}Y}ZjqyvsuL*wij*<hvB>eENHT^=sq4-s` zxS7{}F5nh~zyJT9H%Pl`fES6Y@h65N;*;!_KlxJ-?n8VFsId<^H`wJ~Sf6#|3*>wR zncG^J_MepGY!D0!1&+n`tcNomtp{BfrQ|*|yC{u($7dI%WIc(yC>{4<AIi51eR$Nj z7JVnYO1|T){q$ow54$KI^d&Vp7`!MI_bKBZHBeMYhIxLq7ZuC7*Iu;rf!IYVcs?1t zD0MkF6dys;Cye{hvmQ6@xm<L;)So~q${4DW`AvO%+bE8|t5=k6<)RK%FUkWQBw!v{ zQk0HlG<~U)k76%MPan{3Jx<)aCV$XGpF-|Y(JbKb5YL%MpY6rRMd-kk5Jz%yYEp`4 zJ^36CzT|=YD{$hv)4LashqQZ)EPWp#fexmovpYQ-#R>QNs01`cg*5bMavKEWqiS@* zjHR`7HG{fAGZk^dEuYmG7E1|3yXxc*(Z&>IS-u(*<<K9oE6|kYvmL@8PU7$R`Bw88 zQ`GUWh>#E)4z|U|_zUNaB#6{pEp}0fa4Atn>*E-Gs#d|lxO4(<!D1^IF5RvASQ|f8 z>HAd=psK%f<TDof(<%7ikv%!q7LBK+=kj;uM71c_dAfe+Mn(8k;=|_r(2`?JeQNT_ zK}~FYB8{)aSakLG!F(4RA9L+H5|#tGeMQ3kHAtUk%`boB?$>8i`mzlV{E2&CdhYLD z`;3EDjl}1)a0Z4?Z5*wE?{_*IIq<<aUy-1r!hGuBOJRN~`B(kxq{QQV5?_Jp({qZ@ zk`~lk%Z1|N)-5bTj<qW)L@3s?C8OPrlMi85!-*q>m0gWd1O7B2K9NZO)ra&JilrCj zaQfPwH}j$H^M1_$9>h=K;}yNc4lRsMg~tOP{qcz0)8CTxmLv(L@JW+CLa>}zN#BF@ z6@*3Izc^Vu=nU{sE!{<lRLBE1|Ea;=6XAY}Nj-F(pzE(ce94!dTdu>1efTSQRH%3L zeCL$<k;(b={mSKhKK#pOYjX9c!;9<)<SU-4bgnNvSnITpN@IGloapI2!#teR>fM9o zm{;$L`r}~_7JZi=|KiVQRC$So>v&x+I@GY5$K!fa!$Fx+<Mr|4UUlV&U2i%?9oXx| z4^F`Ia5A!24}3z5_0Uz{+Mdp2_3g`jWNSfP>CC#GGjuo9L_ZYYX)RQlz3A#gH1zpR zf7hS1ck)@g2Z*S<Z<GH_j|Yzqed`fl5q*#p$YCE35Zx$8J$pkw4z?&y!T7#1z8@K% zlw_yR565Cm&F3o>rOzMOs~sPWgP-h9I_|E>1n`h9B*8`pk)+hai35&iVTn8-DAJ2L zS3thFH-ck}c;Hp|`DIp+%857;iat|c1;>9lnxVJD2hS80eR|d*I@Rq>8rqX_ss>J- zZC+$_NZJ3Gh_;_b-LddIvNY2tR<$~R&)ipZ{j$ejFZGs5NO#THSe%RHZ!U?pU!i-R z*eZ}@I<3`P3?20KXzj;eJ)e=&mB{>Rw3pCzxPFwiRt(|DQiJC$s#aY-*1=~4d?$z} z5Lk_-PUX}^pLX54ekYL<$KSFpJd2~#<)pcAjpnfyKI0K##|hSno+m5|S+yuv!{Jj7 zoUQF|05rh!qiE>V06vSaQGDUa>O%4HtCe)+iB%gP5BEFY3;6T1MsPbEPA6;n&Lby( zW8Y81S~)D#@AzvEx<Ph6P$1&RS9>qz!in(J?1kHs<8T%!O}Yg&#mKDifYwsV)p0UF zY7>98acCkn;!ZvvD-pAlc-+S0)X<a`<~bGKO2SgN{ZR8+o%KiOYvAOcL?3OErB49l z!wP-$noy%Xc&ZccVfxgPnUPH}$?9)j()<V=Bas}>GYLia4$!&LHjB(O-J2wXm|gak z7h#yA)_s|v7@RFpv_Y4i?(@{d5w^biJ=!)uL2-B`MMEECR#fw)_4R=XULxY^5_!>~ zlp}hM)MPJRxo>a|gPHo;4o8zB?S<QIP4Sg^oljmhDO*fM|2l_sq=pkS%cxu_j%WuC zZI;1<c}Q<jxrK2|0?y{s6~Wh|M;2TtYSN?e+P;XohaPm%l~VlZ_*k3oBC}O|=(38% z(S`cVi=q-t=L4E~>npt&^@b%<jjQWGXD>3z?s>9XM;7N4(m}!~g+vVJ#m#5)1wZ~Y zU!;Z}ojrzH$Re`>T3)k^lA>2aFwTs|sfQkKYO7XEjQcNM(JNeXZiNORe3pk4h;Bxm z$O~VggxaI&bWmSvI0DB{l_FMqEHS0i0Wi*ujZbdEu6%B7!75|Xf8aFLwxa<?7eWTp zm@_VFHP#Y}j<@7kq$9ymsHBThrfL!HXxOlDuP&btb1u{0=x_z0yz*W4*w26?e|4eb z@spZRctKD{g;v*i&7c7fm+8K>9y#K<5Zs>d1pS*{C{TU0t)F3#2Yo<^FAtVBh?7=C zxw%t;JM}?RAzu7Xg~fw^so*&mik5$Aa361EJ!z)stZGpBoGCBL!8jocM~>Aj+?jA! zqXxlp{*pI4?r3_P>9$%cc!rY~v%0CX99!f~m(E?lV!r#>BX7!H4?pte(T`J+ym&|J zN~tl=gY%+^JJ6yjhgNylr%X=5^UGJoqEWDi<E^|Kcb$#pT`jWUsaQVL<@jVTT6!g< zz<Fw3^y$nuoH6D@!)t{n6N&D#$-J1dG)dND;Jo;to)O*s^2qXXhLs;iJfCsp)nkh1 z)8M@ODRA7Jcjbb|)p^&ZO6#l1KpV?yc4u^Qd=ekF=G!QrSLa>LY%07}7KB~hrcZA3 zZmha3-+6C7l=U%r-jyN>oyq4zUrzJ$t|jLJdRNl7vB$XzOH+=#L3dprSjR_R`7mng z`e&W)l0ru>dI`bP!HxyhE!%w>;543Um;>>!Wgwpx&FP~>O~!GxeB@)H%3{^VEGx!& z*c+A9&|yn1JP(;qmmeiX4IQnTm7C)L#1#8Cwx%|H2Y8JGZAuJx*l-S`Ex{3oUSblC z5Gy>jXbqqW)<(SA#1kVtKCy8SPBe1Hd%OXy=Bhe^ZPA4{dgNC@2fUfDEb_RhYBlps z<O8G<w>##)3Qwq64MK;OfV^e~bm|nIe6?Dk?5|Th+^d!9j#Q^T)R9UD8Yf^H%pYYR z5o43p9XQ<6TfJv39|>TcdX4NJCTFebq$w1fYh_QMX}Kte!^7qyt2!Dqtde07z`q*= zbKS^CuW6yh(57~O?jf{QR4L<<v5PXMx+BJW9zh!iu{VzQsTCR#78%Wl*jKSdW5VBS zY+<z;=3850XN4^RTgk9q=u01Ut%@T$weW<1HD6(uR#+(_I2GQXXhg=h^qI7}ICMH5 zCjE)1?56de8f-K0+0bBgltg!rS4(x{?ahjqFRT_7712QNz|{qaepZSN^B$f`#-&QW zif-Pa7HW^h!^oEwT1nC|*N`zy$otJBq6?4GIi8{~A>;YQ`~Pw3tcTPi5-xS!q6a%- zT6pX^<+trtE~3y2Th@=o2UOSRXBTdG+~zTBkJAjXK5jmfyr)1GCs0#;X1r`#^sB^0 z*QZVDs6VI@dh<GwW(qwQq_@@u*+tESyQ&2>bUG67^ryPvNKL68S)@&iC#v<>N$;gh z@(1Eq&gJ)l+E_Cg-2pvoWvAohJr;g`U%G1f9WU8TZ0^L6Jn$!=+O}pCIjUlQsiSij zpKN!c(Tk6b$1X%_{IL1J)1oZpbAdvlzG_e$UZvnu(hKGTZ)|gII-<mQ-rQP*Ubx47 zty(!4=QmR$fVIN-1RMGig%T@z^=$De=yG{%Ftm!_yJHKf``#F<y;M%580z#_rVa4) zT0=uTl?y-KtRB$Az`}qpUDQWyS#N}-Zibhgd)mIs4^>iIVoZ_QCyKte*}CmocEEbc zbTVww^ce|@Zc!UPT~UxJ2Jc&Ht=h5`RHnv@+!gEg;%h^!OH&u2uWh<+_4v4Wbdhv< zde6OldtiNKUp{4@`N#8Vwiw=_g*>4)wTPEyToE_-yjp8wgK&GCExK?kRLGM*)s+K? zs8JR1v4&B^U60zu9wO`d?}4L5rz|4~U-{`}1FkD|?){1~>lqeWbZkwP#H3Wcauk<} zoprjo^!$p5D;&Ki!0&u<t6Od<j}sn+L&#T+{Pg3qa6OK7b=bNBHHb>~xrNq~zCW92 zwZ9_wDC^5;Btvn`H#$a6yTqk(Y%Jz~iYQO$vqxP~tJ@OeW3gj`rYAhUYwQZ7$UV@a z;cNS|saC|!XSwX}rf040-+pIPm&++KzDZJoU2k~ir(F@*Bw1PXuH}4IU22t^V+}mU zUU;O0{Ums_V(%HvaA6G6#Nlx}t!Fh)Ph!(tNF#f6WAtpX>d2e7Jl@DIWlTC@U#yRy zL$QN58S_-=<ZHto^2oFZU9`U~eCkzh9^J^67{@_-OAa5ij{Y4*(Ysy>mX-X_s+@qw z7CJbtJjbXpK9Q%(!a{w7K<59pIs)WvQC>0+PXY=8V=51uY}{2r)STEm=c$!8i^5c+ z1#vd%BX!t$#`)*3zAj@OVSke5*7p$+tw;-G9;Q_CWrNnF0f#fi)}-)spG6t3LePFQ zeV=)Y0A9(aDR4@cm!hKS4^nYg2X8j@445A^KxP@dR8pt+S}F#7mNyNYIsT}X815yf zG_>11JtEA?gw+5)TL3&z%!CGGve8Q(S~NXxMsOFOMHLJ9<v;Pys_s5`)1@VY2<&NV zg!j>X>FL#TNn5<#TY2jpAP?XHPp%lBZ5%(|FvUgXRx1_t8Jj}AL|PtMW+@law7iHM zVVUp2pqVyjRKZXcpSf`07Q@m+;Rl#^-{Q-|gU{-Zws9ppwXW07PeOKza(LWK=f$hJ z!|DMdT_A9=P}?4xY<D)o7aq_p@UYk05{KHU33hkn`L74aG!MT2zlH5rmg};m+;!#p z1BB|q_XAg!B5gcC{GGDBj=!$qtzPTEOm+R2-=6UN)IL1#Hn-FSGZ>eTqBgjB@DqkA z#8nQrpg&2WTUCeWmp0e(2Z)YD#_voLeg9)5GrL7i<a@{=QLSQYie;G;yHkhdtA#Mj z#PqGdkny+t%3C6T%P*c*_T)sfCOu%J!-H!4tw3Gt{SW3_YjeZot!_~}Z59U2zWCCW z65u_VlmXPXV!8l*aCtKWgH2Bp)0V10K^8QFZ8a&h$@cI0*1jSW@QsL~XJviFpa%L) zJW2ldqJaK3I#pP^`+MHeUSf>LZPVW~Ad@S;GvEAHj;B4f)+`FecYRW@s{wi*rvt6J zXe#}#Lj`nwHpjFE$FV5t<)Q)+VO@IZrZVOZ3-_ozY5S8tS4KQYG{~_333PAs@p==Q z`QiO_R!`~FKKxFtRu7NI_GiB$<oN~90ujM|!dWS;g;&EEG2jtF3q9yVdfWtVHBRrV z_}1c=ReY=IF`nO*+S;7?%wMaruV)DQ?};%SU8>U6onCttv_eLEhV0sh*SsZFzwT{Q z(a+jxs#9rrTpY6&nW^k&#muknyJDL9zAL7wNt5t}v(5b}rUt<@vx=7lX?{EvubMau z4;=aXPI?NyK`>t0(knI=SFZtxIyYXS@i8cM%&YnB1D}H|a#hk2g9g@6>c!(jXTF08 zwI|EFSUeMHvF0^)dI2)rfjK1)!%j=iYDF5j(MD-MY?3OzN6_^DvG*QuO(kFdZ~}y) zLa<|7W5-H@qM}9(&7eV0z^)Mi6{SfM6<rl6YK&R^t@>MC%Uae|SJ&0mwXFpk_TGDU zgQ%;n-BsT2x%Van2oQhI^M9WAegEO}3HRQ)=bSln=FFKhXXehtVO5uv;PLP>tbv8Y ztSMdSEVtOwZuoEvtV_+F_@s=jt4$-cm9@ffY8_<;)Jn3(&+fjcs^P=1Uvp7uNr5ee zRm}88$sjOnSp$tW%BihUMkVy{W=d6nW6H*YOHddAu4po8p+#r7FeqjPgQJrYm2KOM zw-CiLFDe-MBCf4umkmmpw`PAV&P$P{l-_`fqXouCC97g%@YxB%L!~#7;>ZzYHCPtK z3M0S*lB8&jLJ2`*bGfnzR<%PGv=3JHSQ_O}#ge&Z8+HjTngED7i=%sn0-Q5zxF@H! zR8GR8uvFEuSy563rMxQHd@`7&n@n;cN?@#Dm%*T@(Xo*MVYL1n%k-EjBD17otXW3v z9UC1RHx{EtW`C37DrXrhJbGko3_^AEiCv<m_#8nASa71ajPOY?xDO61g-at#+_$9M z1UXHlkSl5pBD)I?`qaeO_%Fu$5AuUHaah~}6u2iAmqitb$5hB7^$<!s_YmLKl#`rO zlU&OXPIyxE=vcLi6KVmUrQ~Bo@ngPUQ>7+GbFOolRcORyD<TQyVOD@ykr#tOUU@9O zk0*|;!J!Xsv24QZqgX{$qJ=qy0`Z#|WO>7&G7M3X6ifbOiAZ7IrD<`I902UEQK_*T zOxy@8zp!M%O3WxCi9VI3?UZAf<$35PXi~u%$uJ*WSZ5qe3^O<ubNteJVJMj+mD=tL zGhmKprKF2x2R!RlmB9|f0(HyVKv<|927~1~EGo{L`rxefm*hh0#}Vd@N-g*%6f1tL z)_|aRjcTOP*uc1aNn3<jqfBElH-=TAG~}{8i(FhZz%*M<%2^F7^p)^T9F}20jp|Ye z$D-G0nLkrLy<?-|Y1aFTN@v0*vuiQrU@=#A@_<>N$l1g%$<=CQhD<14fHlr3F^B_T zX$-3{_{`J7E-Dr|wP*mWw~^q$B89NfFbnG}tmnYuM|T#{gJVc>EllcKgf=%fUsOsq z(!kaX8fJm|TA}W=0IqNgvjVBO!(h_I{{;I>Y!R1rOp(sa`fQ6@GOI9ESjc02U1CLF z$?K+zSA8KD>WeDR46`)v*=VL{C|t@4drO>|*+MJr8f9YAhA*kvLWowFG-lgvB^HS# z(f0ye|58eAvhd7uI+}AOgBh6|k%VjUQC5K{IIJWr@59Ox;L#@B)Dh7>o++jKP%Lhs zN*$MgObD55JWk>mhwaQG#v!21k}9q4EYqNM_RMbJWZ=pyGuu7EKehY?NYTO;1}~!v zWcdS106yf1W+W7m1Pf~oQ^8?l+pt#4V$jtBUrd?JYr&dq7^ITdlv&6I{9B&0u?$Ow z+Zsj~4IqV!@<+c=s`qRXD|rS+(*xUHX7_7`2#1a1x6BTn#iG7|@$)z|+DOSlbi1e! zf>kV6W80J|1gu@6JzJSYpmEWGG5Fp9)5fqDM&&HKDPX%E71NfCt;fn{$eI^pK4o%R z7#w+MEUdULDv3fS%&b(FSHoG0ZFz?qYq6~tPeAN2%?Nx4iLU^HG>K)6mRXfSiP^JR zj2)hm)dhAk+ZrhsK{t*QxL^jm0PDX_r)>Yfr1CKFZwR}vlf<?tcFv@Dq|id$6e*^W zYC%`|-$K#6_5P;>3mT)<YReU_0MlxfEruDUE^QE7w2}&Pv{ub&>zjh=VM8tyiv5Cq z$XIvdl2Yh^7>)*Gm;Os!SnW|1Wq|WcmH!nMj5MrZf{Wk51Ghd-$@ppGfD(qFKDP3s zXhJEi8vCau!OA0GWpxDAgz^PU89!M!1_xP3xm3QGfQ$J^t!!v2hRGu?I}0vAV{INB zc-eHJ<mNQX@aw2e(B?W!by@r<y`U8lY=JhA-6_qZCTN!10;!bY{}rH=#dWZX+^dpj zz|EL00vcL&uvdwxAEO3al?9wP8mO{DEKO02TPhOs*21xSb(ayJW)_bSRcnez!^x7_ zg>`|~N?)R}=SI;?7@c|;Pcic1eP9XT!HEolMVHwUN)SF{Kv?}ta^X<EG$&*3@GD1` zGzDmcF_(ccjqvDaSr&AHmT41F#Ov4vB*p3)#8^mXH3n8ng<`W8W>sU!po~fK!zoKi z#dpv#(&MZ|8Bl1MCcS1sQ6OftTih=<QU(qSTGFbxVt^&BUM>b`%-mwDFoTAem^C>V zT9Xh;<&|KK>tn1fA}wU1?27kTMkYcNX(0nwsm5;&inj?iP)C!u%<-<q3A=dgJB}`q z*>M7qg<>^rjz(>?;JNT&B&8#=yJ;mPArb)wjF_e2kfFu^5G-NqAh3w>Ck|n?xYJDm zON^~H$FdkVvJ7wWtVN5U76P~y;TTt`L}2WDLkG|)nb}1wx{d8i3)20f)X~K^B4)`O zG3dllYzd2fq~cVVjwW1oaX|_4G~qFg)dF5g1C+wqvMX{6p_h?iU?Rhu)de%1t5PTv ze40oRIrf|4GIOML&=l}8N~bRzWt`rJeTeXZjkVa6pNYa3V}@hPG3+S)pJrTeg0VF@ z6AW83WfYD81IHs;RF)J75Up*5g}LX#3PFIh$u`Yamt=2@x<|0&kyybbfyrpL{Yzkt zcFzhNrh2S^W7O7KIBOYZh+?FMks!O(t+g3&I5af*G8F2>zYK%n(SM{SvG@*kg%toc z+CPd`#Ngmd%Q4H6;pLV$Unzz_ien{h0wse_doo$t?aU%=>mf^y;ua%J&I5gk5nIB- z*0K<+EN~$cRgz~@EH4ul0-_0h&?Q@q*-MjTVTe#HgK)H6bo1)r=(5W)Hc%lbkJTIy zEH-PTT>|m#tmU)4i}6#)ntxfL>ClTLO$_If!zv;yU5cY%w06bOEF3gnm`|=&ET7bB z5!AecDWic?Y`91{%47&QUs90(FC=Hueyh4{Q+H?5OF}K9KxTSiJtTd_!Hy`(#<8NW zio|vo!)SNbVFliXHLNGcnENM$fdNv9+Z-3JdTxQL(YYby|13*p8D{Lb{|uSbi5VmQ zml(IWU2~bmjfhj1tsTWh+$T;IH!LpR(s~F>Sr$@dqsb_yHP|Q9cs4YBR9Nsx-<%Ii ziL&thR{;!`BF4n@>0OXu9TFX=T!2&Dyqdj3$jI!85G}ZAW)RHxJ0-Ocb2!vo>5a7r zFiEpi;c>eQ6rhy~&H7L#*%yO_aUj_uJ`@lO=LgYc3wv>KKnMe3sioSe$QHJ9<p9ej zg<WXkHQ1iV(iwsr5z-{=@5)StmjPB<12v<@fm!Z0%;0F<G55)HN%EpmAm-6ytYFXx zT1pwrKrAmPB<B2R*4NaJu_xMuTVC8r;B3g8glMr0>}!0wkdlg(89?C1wfH_kRYJv< zgktgd(gGHkJn+c*EnGfjF-6UwfGdm8>`1P}5*mG<5&_^&nXA2}FJPz?03#A6a*4x> zABkfIhh1zCd&S{brGr@xzMIkEdasfkHx3d}GLuihY%5dT$Z?QNH3Y?_sK|#bOKnkR zW3|CJFncsb#dFQaVqKUa_>YW>$Li?f<0x}Ra9_-tl+OB>aUBw?j)Ln@JVsxH35qfn zEnt~^0Le^%)_|k!mkGv+*V4x5MVKyO&b|l~X&9mnam7OeMF2}OOlEZokkUT2;s{!) ziPW@<RX$3O4R+|f;t~Z#c+?VU7*>)J8tr3Xq(Vjlu<*GdF^g%<SZq9G)bY}65_vq> z*p%JktjucXpv&w{S-4_Suvjb>wv0ZN1tRg#bW`d5R{^Y*<sq`AwSG>1kZehVQxZBw z#I2DyJZ4%fIF1dMK-n#y(7=*pLD?-JBa<!eh|d8sgF5ozDeQr(rFC5#D3zD18;dmp z4hh8Q2w9p6Fr!qeE#gR(CS4AsL>pp!Z_(K|<Ad!{@U_bb4Pxn~6|9s207tJZD$JMT zvc%MqYzuhq9YtTi`=v&p)yD)xrCM(H1Q?5n#Y8L3v<be{ZpZ{xW&<!mDw41iwUn_Z zCm5F5vZ|bg3Qdg1MuKIOo92M9E|vM>pbXFmM4aM@Xi0U;p6zGx6HtzQircY%9;!qg zi#jS<QwWyTsj^|qwB6y@w$$8sTP^}kjZw>Evn?6MC^T%`7EMckN`OpC{*M7Eyj9Y+ zmy9f#qX^65)ff{YILkb0uqPs#2N%b)tN>=gl@bZD5~J6gsj(Q%AkK?HmM~sIZ%jQb zhURKD0^8WE1BV4M=lXz3@xqwEnG+XFJ8hA4g{5pPwi)ff624Wp1_^aWU>1aE%8|aH zGRv)$Vi06#3foq!!+<|!U9k%TayT)VJ&MNYyA+m+;Nc`S1b?GPQ#-X9i*xf(r-;?z zTm`EU>En8<fh|ro7gS;4f*6C>%qAi#%WEC2!?nEHu@J6N<*+YHfkKngSum<5tpUI6 z`bbh+_RylzMNt6FZE^M=A)z=HwlXMGoPvz305&Tzrv?_6dlkyS42O}D<=L2$P|DT= zGy389h8-R2$fV*EqlM^);8P1@qcLl6mPh2~bx2?1|L4fGwq+z8x0`@gTAGc4wqOJ~ zEH)){xY;HdrQ0RokZxI_`~+r&o|DAP_$^&sivVNJ&|1r4tQad8H-eVMJPsUSzHBz* z-e@68DMdkeix$T*-AmcfZ0j-4h_%6RpG&J?F0X>NX9cja^reHUn4wWw+{0%z<GGY# z0?-<*;=szP7@E*4$xSsiGuFE(?XX^xB;bkAc+T7cL?Z`_<v|RazWa((Sw6v=XwouB zzu1xJwtLDVEEAzELq;Yg#<Jh>47a#<h>;WnNHrZtAD8uE4#p{A!mJPq3u$3;!3c%# z&DgbDC9Q2_0r7dR<)ew&*Qm1q?r;bi$>L-V3=DA47u9zOB4oF2DCPWJhH{yQ4l__V zP92*~reJv)b8Nk3aR-)u+%H3jT!8|XN;v4(9FhfrtJgPnm@GNYa?V86xVW$s1_4$? zh$WH>OpH!RO~%?Dgp|wRlD@X~i;5W$tDv(1OQa}gmc&ufN(2dsO2Ha^cF%Il^L0ka z&^U*@YAmHGJ=c=f;TZ|hm6mx1CB<7h8`KC^x=@+7p*X5G0jrd;eLR*sm8g|8>k)^y z>^JJh4*-+_fnmJ^{bdn>0hXo1*<fp{g#%|y80nkEC@dKfw4W60x`T59@PRY)#k_^V zB@398Yz<sQYzhv2`|<)ZLt7|Yqzb)}<pVUB%AkK`o)gP{uHzR98wy3~85<j;!Z1;V zp0c=f)p7AyAWer|&=8W@qJ$QHmjDPyG9gaIdhM{2REsz{i9!&}xgDirSqaSs^DKuo z7;dS#hXvD@Z}gcOn8k_(m8IcI5$KWv?Iy6~WD84HSz#hi7+%`A0ZYCTv3nA}hAg49 z1j_C_h!w2}OQwb;jkDD1joHG{MyNc-O6h=laRfzd;s|x|wX-JHgTwquTqSt(Mn(Wd z3w$h%jS4`<w&mmyhaEzh)7MLpLvRALxpy}|S;?YeKrF6AGjY#tjTRn<=>#+pcFlRo z6wSeDZ6t=h%nDiyC&ij&LEGv;kC^R1N})|AH!`^7cqt<&GIC{VF}~tpmDsp`)5182 zrKaK<a)}-U2gVqC1WFU56jAt)bYzK2hs6=hQS^y^aU;UwqN%-GJS3JC4+o9i6%y&Q zyTm@dOOQ`tKz#W^nZR`@zLwHRxKD37B2h(tD=iBJ`O?b>H;9^vv3R904M?N;OXAKp zL|h-UxfYi8vfNn4DDenr6ViWBhQ3iLBueg^TUwn`f<!5d%8a$Fx3z>~r72-Mzuo~+ zs*#ot@Mc1Vw4Q`wPULRN<3^0cxj!TEi5gs$;+{+~1j`ZUVqipHW%1-078FJ=G%N@; zWcgUMLO{&!5ERd~u*}Z{$lO@+3RnmXEmAO6iN+DmkbJSqVS&JoQ7$C#qRI#xAWKY2 zOijQhsnlzmQz83+RiZ_b!lQ;4vZZV*<=UMYEDjgL$z&AMp)V$sL0E~U0H?-J!ApjO z7&)6$tSc-+6Oa@>DVrpjx{@=raK;)ll@t<1VSM9k4eg+%R4dW1sEU5?Z`=))7%9fH z`Agcg(u@yoMwsh|BSylyV7t5ooD)_E2s)QSt44x{_r#uv*bcGqd&~RDpx*sJZ!{bq zLN)hT@hT)PF)l!pkPNF%kt4J0NMBM?{i)83ay1VRU?)v=3?>H5G01=-50!GPSlqto z3vM774>#7*YjW#Hq(mjKdoiIA!vln;7mv;Mi&C--3LOYbDpEeiqFW@4(&5}oE}Nnm z1hJ<^fKN%gqVK5furpay42k8})H^dL(E_A($sh#>9hDAO@Hwh+--CivY=P-rat;NU z?6<Tkb3}<%h*ZqBCFcOEj9D1Klp+e6*nupIsRS!a5*FJ%0Y+SMPDH||=xg(%*1?2@ z_c#w2FN)QIX&Xf}Wq1OG`dQB1fGb9*#R^|~wV7>O9?mR~W293|)Mj9miEq(@neSbT z_r;{kyeG_JZwl%hP0qNJ2}+4F77c_l1uX@>Xwc0H_(F36Wx*HT#-S`|cwL3Nw;~AK z77G?_MnNIV*v!E)O&Ay2hNx&I6{Cu6fybb;i!fiLXPKgLI~*%WTA4Gz+REbN2gIf% z6*AOh1T8SieECvjV<^k4;`3D%LU&dPA4+BwyDVI>rd5nj4$gXJE$mEDv{c4TEXq<8 zBOEH<;=Ugx(FHuWb&+2x4lXLChRt%|Fv=9O849b(){!rxQp~7^h4(D%BoxsfGf>$6 zn7AnGp`nOh2wa*qG46LoYh>vJU-HYwAqH<%7S=RWV@a)Oss*6v9I$Dw`QW%DH3?Q( zqt!;r)-^&SG@8v9s$c<z)hfueO>&{EP(ijGx3M1jOJoD$)@m(4zd&mlXlu2$0N5(6 z1^5?hZP~_+a}d$pb7P8<>&7}?vcMu+<v|vJa}ft-Ob`}Ko=Pd*r$s*tDvu$F*;XQ! zydC4-3V2t{$D*aC>^=rWzl7JuF9G3Q7VC}*K67E5xMEIZNscWIppA}kaW9*RjE@z2 z7bnL=#w>Zk>=3?)3?mbb2d!8fZx()CWW)&`jH5#T6hu_mk9^HrGV|?@ad>E^MI$f( zLh<0V$6-BJ2?OC`K(Nt8mRl49L4zm)!e*05tLbUPEyE@gBg_Y!Mc!K)krx308-U_A zH0DNs#q3>aI7N2#Ee={}<M86InI*{9XUu??o@bGeMv*Mh$zU8Efo}lKs;~$Q1YaPO z(lY~SX$8dVq8zh(f^eA^4EU6Oh<g`I+?c&U6|s|#VR5D-mMpzC3sMz+ZDIDHFaXmb zo4f?GcO*))sFv9q3w!mNy)6<8!Kev`KSsq<h)B)MHJO4=1+Ng2!SUt<IXudA?6>K) z`TD+sjI07Dxs(W4Kubx5RrWC&MN`g<a1eH5-t&|rl*vpATa5+iJf*T{II2pPG6J7? znC{2oJ~D9}mO0RwJ<Rzj$^qeOUlfy_XC#0D5q)|}#7brK`0-K0;>JoO?QkC-g>a7= zr)nwV@bOZh1u$=*sN$@Glqi*B6D)(qM1?Ut#Kg1L#3-zNRSrlTM;GO=2^c-mP4xIE zB`Rn<)g1dYjLw!&Vvz;y`obn*ZEWELtZh$;QAR~GpXV8&*u)g}qYq<ZGIU=#HZDbt z(ITad7(ZT#bK)^C2=7syivEgHRao0PS{XfZv~oD64hyF+WZ5Llg{LI*z;6;(91Kgs z;g;%@sAOe4BK1l-`lKK!8LQZM%9!|Qc6W*xMB`HEgS(h`9J>V*5fiUUg&>A=?}v}T zK^%CbmklF(2KV!3A}Pa@F&0!0#|wl=ROT-b+ePX)>Ke?FK_xa3QpYu!T;tI=NX+bY zJTv{Hj6tAIiNI+R6v{ja3$D~q3aB+$H-CZibCH{QN@DCd$c!DRa_I?l5?(?S0?!3^ zBn37nR5ACKNsGaZ8uBlanvfKu#0NqU1Ve{`Bu(X>)lsU^N>yz9a3v+M{3paFMAO0a zbWKJOH(AZZbd?F1-5ZaJq3CbnG!3&_mZt>sF|p%$AV@MZlaeaYD0P)8Iw}#;M@i$U z(r`^g>_3*tk$IpjRjDfU&t?QPs`%L0WV3{^CXz9!@i8Ey8KxXY*{ASuE_q4^FE5|A zk~ThVym^KGKHRF1&EvI7L!txsq6MyYcx=w&xl{6O9-rQn`v6#^+voG_0LrBCR^mlJ z{E*IT&a>N)U4_r9fP3R#vhk+amBnY0vA(Aj##v*r8`g03IQWUJP*}9&kbd2|clT}I zuU%VSn}2HDs`JhAp7!fLY<k!-XyAvdXZjZ-i3F9ZP0dSZ<;|PFIz2x5*3~PW)}7v8 z`|(@pE4T1EfA9Tmbm+E|^FL0^uVZc6py8t~wyN;DeAjYUN1uqV5S{<2(hTR_QBF=5 zdGpQ$W`0;L9GO^d=fZC`o~Zck$lNC9UK~{>-wT*xIB2-`?H>wt{G|7BN&hIbpJXY& zzkIflOV5@4oT78uoxCt1BDCX)cT3+tJn`%Ly(8)`nY<v(arVt4O4X%!&Ev~8+pU^C zX3e<A-f=s|RGBek)7(RGs_%}En|r_B=v@sCKb)hUo_?%c)jD(k{do7kf3J7<uTz(% zES4O(TYD}~=6$cN{msEQe7>sMCND8y%fTiMK6&T^Jw(6i4=qo=Slj<#`?m|du6$qF z{_^LS^ADa0INUgW&F8m2gnx5<nr`97!%gcZpK*;lFm_U~|F`l6Pe0GjiQa6jtSrIR zJ1{0}{hc{KherRhZgJf`$F8?JxA&(_FXyl7{p94s^*w(vBvjr%GW=TaAJ2B~x;yJr zkHkh#u66lsQRJ|1<Gy>hNxbm(-g?pfy0*QzdCDZc)BW?_!66%Sn)PfvW?FUcJ?DGQ z2-m#g4|>qCPF#(b_6xJNO{n?Pg`2B0I)*>-3n}Mb_dDm;Pulzt-?H_u=X)*kiVS)8 zV0zc4soIyFUd$OfF?+kmik+(R?%99+5S?^#dc@M;m%kkUr{>;2zpJ`Dw@syr->=X` zCq124ab~mlNiT0aQdK>2yZ`l&E>ll7_iCWI@6z>W&1_kZW(ntNopFhZAJ}GeNBwUh zyB}5?_fk5gZM9Dq`?PA*@bcujqXvAqy7k+8t$RKC!Ehq#U%M{XKb7{TYKPe!vOc$Y zJ@nN0plK`h!#&@hfA!}j)tv{1`JGhrD)iC6@3D7T&$iOAL*F=kT>bgykb}z|HmwP| z(f5*X$B^aU9Qmf5cG{wSLG#WxOY-@!`gqvAkzwune%iHq*lzJ}SN@vkzSQOOoQeKk zAs&6I#ceBR-)~>~bo)=WqP!Lit2N=k-Ko_N%xxXu`9AslimUP^Q)X2@_-XNHMMA{C zhJRe8c)wP4VQA%kl6}k0HTrqdD{;;J55_-R)cLE<TXVlb^QT6;1wXpl<5vY~xbT+Y zM`@1u3Gs8n&kaBNE7xqAeA?US7)QPfn}GiWM?ZogJQIu^rLup;@m-Ctc;&gfa@Y!F z6xPMG3XNn^7+Pj#gU6aI$6974>kmK{GFc+K|05=A|Ks(}=j)CfdExNo@pX1DdpPum zPPac#{O<ayeeS924$l~CDohDCSL~enZsYaIc-iK=&F_Tw?X>saK2bz&t~9mN&L=@X zzH9Q!l=Z*$OUlU|p6zh??Ag(Fq5TB;UvK$(Le{n2I=QyR>i_Edw^dIrk9zvhz3b-( z9V^})GP%Xs5YJg3Pqc44cK)1GpFcdhm^tC(imzPv1=Ty#s?kK3KD8s?J(}ZuwM&h= zp_MawtZfwY<e6l{pY@w;`g}|?eQw)|Ys3*dU;WPS|5K+^dmAr){pW_A(&-y^WJ-E# z17p%=w7WIGyUMFd^)cHuGcWe&GGml#e(y0+bL<_XT_f&1jhQN#yS&2BRksBX8{6bq z&fFFD6BnL3C!J}?IepMkyLioz?UklwwY$@A+mktiJGFoD>ibFOH64%r88u=}v+H5Y zJ0y-)FW>F?`R^z17VdoC<z^52saew+hIxBt-V14L=<M`lmUsWO6GJ5Jf2cpT`ad@# zFGv<79NpVs-Y#dSue`JOrEkpsSA!)jPVPJ^>%B@<`_k;uE2g&U7#Pze;hoaG#)So2 z7uQhQEu1qc`oz}yKh|5i<%jNnZ0<gL-kw8UV#Sdj!_qgs*y^$QZq}_Ad$zRfu9!2i zA^+0xlP`xHa?}49v8mRwy_-_oM7G=BCe6)by3f|1r}U0~_-??+-v+E1>3XD&Q})E0 zm3xE+{G$wZ9yDn0&KI&q+kbTEl-%T1*Z*q$mW97<*}WXqy;1S<Q;koZPW)=YRr}5E zDH)-cKHr_1X=lIrRK2s0oFqTwdYsREwXomr8a;j=9O#$o_hw1&j}rS>&DJq1lD(yW zOx3nN*f2}9tLgE(HFjQUv3#B5=ETbr6x&yL1<fA%`}Uq&`v-sTd1~*Ae|7tL$-y_X zg05bl-FVuoEQf`v+ezChuQP;o?#s)2n|C3LcOiA^FC7maIQnkIo{(=({9Jw7sb_Is zQQf~@b=qg&>>qEAJ8|(vAN^NLLuVhnH?&{*a<5zMe9>gaoNHCT-t=Tj|CMn!-5REQ z3EI!<SN^B(+Kyd1a<uE<Cf9uLDaL=SJay25rm=NiZL;V6Jn`ko)FXm~@8W)FE0XTs zH~#VNnM0SW=X8Bi{%G2#n+uz_nKVM-p<MdYg&o0t{)+CFtJ$e)9-euBN9Opq#{<1? z%13n@)%H=>Eiu2{XmGUu$N{S=H~nkmC0>|ZHEQC#qf_>K{8n$be9qHNv!5Q?(c!nR zN3Cv{a<B2>I|r_;ar4<zd(^$>gM{HdGCQ|_c3ApNhrfC!EsZ_aV{q$9-GrB}g=mjA z8tM7DiD9x~)9KKCV;0-(zWz^`_nZ+)4c>HK<UjWI`slSX&DZV?e)95~{?l;Y{R8|B z8{KOweD&K0+-ecA`@)l*?^pf3I<98-;R7GIe^uqUW3PG1W4rXaas16)kNs1xef;Em zu0uroZ)VRsb7E=#v|S$^%B_{$y7OdEh3c*5dJT3Swn@IF0l)UA-29W*CoV~D{5E;Q zsZpN{OSkQF?I=6(a7Dt_yMIocRcUXRb#CQuJz7wG`H2hDq*s1ub>sFgKg8`lJnq|R z>Rw&G?r858_%ixM#lXsU^K0m;<<}i?EVJ|aZATNUI)6RB*#>d)lkw$$Ox$&LSiP@? zZa8^Q?RhmRyH_vm<VCTcuWfSrsl|^?J^zX<FYJ-O;G5Ncx{b>MD|`-~AKYE`*MN|z z<r{{qZ5BG|NaD`<Eo<(w&x{(s+Wpy-6{}VCpDZ40I4bFweYU~R5jEa^81icV<=MA) zeYjN~-9>|G;xtDWri*grJJ~Hu6Q|kn`4XYn)zM|>G&w)k-ocJ9;F$vfYgxLRUYzdW zAWpY?vdrF&Z)fN1F=6eR{r|34fe<-z{PI8?CMhp=akP(gaI9<>87`?Tu1F8%Dwo6B ziuhPjaAI^TNn>$CN-STw4x3nTVh`4hiD(gV5(Z(Zl4{~A1ZQ8_m4)k#(V@s+CjP3r ztHfLEEtYtDOS~mM1FE}vw=;Vbr%GCin=_ad8e*YDER7FSM8N@~k}@(fRG|!pjHRhy zUK;cAiqrY^%_Ra++Nbk{JfxSiOXu@>+OeUI1HYF&Th*Ys-Ad(URhMj^jk?ToT^t)u zSv|i?UZ~sLU$?lOInw!Ig2(2%25q;!mtCA6<o8+7wCbPpmhA9ZS?=VP?7R1dzB=}# z>G;67xS^w!Gr#?3X@f@{_SfGm39Y^J<<>U+{hn=HYiIBAFNdw0$G2)-H!aXLFzFAs z0RyLW`16YM<??Rc2_L7meGtFyV8xlqnT>z`A>izb?Ku<YRbM23TfSeloed8CP}O(x zvB3wtmBKr{r*wV1XT5XG{DDVnE`FGHtnR3Q+VPzaZfsn)&XbA14p}xz+HGyWN|G+3 zv7QNaYH!@%vtnFh-SJCjDyARpDSXjKedeljkKyB2tXseO-Z{ne{zvWX`8@v0sXvLQ zt`yfn71eQbsOC_mZ}q1uPT%-?!E*OI|LmFGvc=2$)g#10dR>{%&vy`r?Qs#;rGy3! z9^z_gRhplP>o#w!%jZ|4^{u-8^tM~b6z3u0Rs>Mjp^3PWxWTe|%j!<6Gg7Ti#!xUi zCB9V@>0c|1y}VMOMy-$}b|ZKp<=_CNo+fs8G;_=x?4Zqsl^a#b=lS`nM=!sT^W*Gx z&1P+`Q!ZfF{1#Jo_20fe>Z8+~Z@qV1*xPYmnD3|n^@=A0>n1<^`DTy!+6~6ERGvLF zch9p$Gm~S}msGo7)4jU3<(iY9Dva+JT)}fn>u0<PwYH31zxDS<|6Bwd6>R@4A=o zGs0_s=dGI$W^{NyE<t^;RfAs7zF%dZH1yRf`D(}ge+;-+w{B42<OkoqZsNX8R3Cwm zYdK+>L()dG2e0Ji{?K-o+;{foj*sW0wVMC^&{yM6y>crT-g(7`&?{eU$egeD-qj~W zn>*g)&ie2Dc1{SYmAOKDs)}L8*?zh=8~Pk<A!ru(Yx%1^*4hc%te<f>DpDJ8w28{; zS^C4CuajX1{t&0zuVn22-_Be{g8w-KAZ{ye<L%=uX(Mjk76zcT4-9}W_xL|zgvx5^ z5B{~*rS8A3f7LB4Pw;d|YG%v4wk!H7BA@7LXm7pm5&zn0U45~g!K3rLFqiXFWNQ|@ zKYMKW;)bIuo>}?FgIdiF)SbU{LWLi@=>}e?)~@yOgTjzgRpQPbt&#G2u-nBc%0(|5 z+3$>;9WvPUMT}2_sy(Xqud{jH+c%4so(|i&uV2`R+0I);Z;!8UAxcW#+J!Hkwax#u zaEbKq=E0sdk9<D$`wq9OLuy|-F8#g3FRz4dyl=~Is#mR*`eG;7>%*$8TRG<2ZsC#p ze)W=Ve)sWy^2tXl6@ioMDn^I>Tc$mz9#-BxLpHtj%&D8i{hkbP@SZht^XxjeVpaJg zhQ#g)zB2ZQ)>UGckDGV2CEL=|`4eFK#ujO6j>Q{yfibYyw99P!>3r&F>WCcD`Oe4@ zT@|0l^-R$*0={_aOK~$t=jM)lfxyX*U+pWh3@Vt0apT6BnFhv4L`Qjvryei?+li-c ztvPiwrX=H{uqs}JE=oNzP9=&iIA=~YEL9Yhm?}!99n?h#1|xW^5=G%`sbn>aGaNXv z^h*>`9{3CsheC-EB2A1z)Kx?wW*{WSh@x>aIkRh&N|ZEQq*2ATD3noh5^yOqK$`NW zUNaf{HK_4z4bepC40DgFRz;d7W4;EpU8ra|e%sSoi*EcqZqduJ=f;Uc_tnkH$f~ta z+O6HowTrrb)8fLWIhC&Ld8JzP>|BiScxq^yD=Rv`AD=(^h|`lvz8Si3(fRfVH|_mC zwA|?Y=Ku6xEpYj|de=S`zfzyyrfbl#+scbc4e#Zh-Ijb?7<jkIu@?#BpZ@uK_3CSG zOs?;9tkK1*!b_tstZ3Mv;@joxXRD?T&8aoe#p~PO-UY~?4{g7+>T7A^5u%x`N4<4T zKYc52rPurLQ3GSLqg#)A+rg<tpS)|rdT!Tts%nJ(ezonCebXbau3osq+wbF*i({5f zUfz3Kt=)6|8dhp{SXgIk$l@W<M|z}H5BquM#cL1#IpgBgZlgw1Pn<5;4-@t?=f*VI zELisEi)r`FMMZAR|Dp>4@5WmKYvv<vE%x;hlXue=k8Qa}@zf=fnqm*faxULC*3Ny| zB8JbeP_7^bAd!i?pdmQeS7=|z^&t<6J72bg2s;CgjTQMPr63&4oP8kjETGWT=(LqD zM3?d;Pp(46V%UXTJ~X`2U7$mgM~|-OH2FzN^xRvO#_rtnWB#*7KkvVMAkDj4(=~6N zH2ZGy-NdTt3Xc_it2!QtK2_=9mE*0G{2MQf@3Jb~uEtQO{7LJctxHq8wO=@Qy6dj2 zmz@uE5iCr2x_YN?ohx2-D>r=ZIj!ebwa;Hi-_^LEHMLFXy}B1FlutjLf7-X)Oo@Jg zTW#-lf46pM*?q-?2K;(<y{F!)R$0??sH}UQU#np&wmfb1Sn%5<RrFu|AEXC0Sbyc= z#t&}qZk_&h=(5Nfp9W6K4tTB08CBV9d{=|g?_fsMk@0r!g7-5Qw~rjbUoM^9f69z= z3nep~J7lbCwk>T{UvK^Kr7vfm(%wk<VdNjm)mt-j+V0~Fqg@kt(+$KG$Z9cOj-8lS z$i=bf6m>P4B|hJw4YWdRd=~SkHRQaVq-a&LnN6cdaqE^bv18+6#O+Z%wT*_dG9HBZ zl`mu{KZ$*eL}4hKazqQ;$pYIG8)bCYi`vWz|KGHk)kr#x$SJHKE@u>ky}g;Y8gl>i z9*@Q9-*(hbUOG{oG{0NhKKBcEa87BcNs}+hujf#)f{=zQ;&y1p%-;ZUWitR*%8vX^ z^TbNVL<>%6%bwGC$NrQp|KnYxQ>#wPhF$RZWs&^A3*Y|V#Bb*HkA8T4aO;{AWgBKX z#nn4r@BXK0n!wjJdo)wNI#I(dWcaT0f#sTX*s(%1W27kh?Vfj@uQv?dwB^FY-FI6K zsM_e*;?vS!e(e66|GWW$6+b23SmK@FFLZnuDy^2}8PGCv-Yk8fI-`%%h1IA3=5_cZ zs{C2`<)v=nH(rd}-DqsTpY&atJCFLh{JaA@D)xx^G`p5`(eM<99q*fudU()jL+w>_ z9ebRvd{#N=icI%=aK}1NPQ2)OZ$<rXLw4Eq9P>wmMQw-o3cr2Pdke4Qw)?|=mAQ9_ z3mfx(Px#xwr}oLGy6kG`w$#<X&4NG6-ISzP`Bj`=WgW(@;;C8xi`LrC*}Mla8$mBi zw`&B8X&f87*h`G94C8LTxOTxCfkX%s-$pEvw8k26iMZ_mu~)%c2T6SgQH^=8M$0S2 zKbsZdz2;f+tGsJ*9d7)4Yro64{{DJd>hf|f;(?|X>|!VB30)O5ceA&v=}=|qhs~3= z3{E}Ze*XH;7e02V+M~jNXmLxkvA%<7OqbbqjSV?}k2o#AFl5s1uIcrc<gfI)a^$-j z`cs`_DouicFeA^Gr1KSUvgDn*j8BLcVI>V6o+7O;X(g^N!X|`CI0<`%w0>knP|No9 zyL2wssa`;+e?<SVKoR;Mm0A=Q>8A+x7u9d+<wadmte00nM1Uwv5gZ;N0u3*(z@GI* z^(`750IIyOVFd>B>Qp*isU;9v#i(QIBO8`_A$E{T)32S&xpW#Go7y=#W+c`M#i}}a z(GwD*Qc|Mm#-$U@-qKCt*fA4^59=Kh8y(V1?5i0g2~)KVid2R4O$d<^oR<;Mgb^Ll zJWLjc1)O7hCQcBKitLx@?b|Cj7|Q_K7sBY|#pMPX3{RcB7>+xaE8=-Tv^@Et6V>j0 zU#r_s%SI^w`0h9V@ATKx)+YHpt2`>*>5`(o=d<TSxBcLLbD?(2i)-yV8qUb}Zag1< zv+u#Rqocxo7Q|L}8TNL?uZu&yhU~8}@Z-*^4Vq6sXK?r{Ij#Dg=Q7<B$F3h%#U6CM zcCYcI@DqXB`L`XOJ#!c^Xzj}tYxj6{e6gv$?A!F2qhI!&J>}Ju3lm>G{2}V``|&;h zig6n`L9o58=ULwuYkQUNs))=vDs8iT!G_DnTaU`n?f5w6VD2{^9>=~KGU&41tlbKE zs9)TI9?xFhbe3PaU7_y}i3#yb>z#XXb)bu=pMLJYCw<=LG;K`Jjd6ZgH*D^(?@<4M z`Od3-)Bj#>kjxvkJl*}QINklEV|gyJ<l=7UCP{bSg~aWqrh({Hy8Burt+L~zbs_4+ zDm~2TL^Djj!?JjXQR0y>6^?>t_6`C^e5e7FYSvaAL@Vb^TeI!_>*@|SYxV54IHl7k z>GmnVRvvNpu2ZDu;Enaw?3_i~%NO^kp0D(PAunjG65j!0gbw(2F1$Z4&GDIWE+B4M zx+|C$*kg>G$2pmG9!(hNT<Jxjp)xs{UrWSH%mU6@6Q(hUOdsd{4}_}7&m^mZ5Sj!R z@-yL4;Ex`~1H^ukuVAJaSF&mWU-Z>Ff@wYb_K+C;#B%?6IBa{WHZ=FOp>pH&dT)-^ ze{$N<@ONt${!d4aKb|o=wZC9T%(xF;S5k)bR5m_6XsT~qQuEpudyM}1{Fpgm)n~R? ze&ooOMh}M#H0+CQT6ISMExXr!jGE*<SHE|)dfxoL(&crpZdw)a*N#(fo*aof6!Y7< zEq5C)PHR)|^~;z+Rs15Sy{Mj4KTy=RrCsXOi~O)!HN#zB&p%vFcI?Q%pS9fl%e<Oz zM^BpH%WlSvw=H{zZlAtelle{`(lffn+aDv+E;;{neXYTLlE;qS5fjrIE#38(<Di+7 z-+%MqkyFC={mPxKd~f%wmPdb%soS9b&t088^3K*gJ$Gq?3Xd*6?r=Y7$eoQXqdITs z(M&tMs&SCK4@P!(DZXHvlZ|?wywxtN{qlZ|-@U)r^w!JTbAiGHuxQ9Dzyo^1&!%pG zM!e6(o<{!#j$CbvHkAgWvC&cgzxLgn#jVMwtLxB0+)V7btnspj(~KQV;lQBU_-QN? z9W01QD0Zwr-#>p`t;OFwc+&Yn=8ugptyosf;j`eSrM6j+8F0R~>(EOL?~KnGvEirB zVG}!VsO;V1`)a2@-5<8()0VwcyRGjKGWa)T#m;Ac4USv=<2!NAF17fW_v^Pc`c<lU z`jdapXVbzJ|GMZ@e!yMFML#V}{fk%awPT%Ol?J#!ZCv}&k9K3ietoj2R>h!hllypF zXuAFKfSunq|JQ)`Ya#=Bw0-tsSsU+5Edn1L|Efn`%)XZ^F2DXz>FR=?ZaW_h`sTs; z^4D^Q&Z+UCuDVM=(8AmaX>w`z@h8R}KM>(>f8<fK(^U=&vR+T`<A10A-H*AA!^A%v z>6p_fpy}qf3o2wSJGu1uOOICFwy*6F+2P;IFPvL`_ud$%Em!7$9pLe8y<SOIF7+L< z$Q|QsCk%4_;>_SAMc?Qj{(io#NRRhF60KvW4BEiIBJ<sbj9oi%!Q=n3DK2Zse14qA z^0y1!M+`dGYU%db4MueS$M2rYq;fO2d;Fv7>b3jem9Rrij(pzUCV81_<xabudwxGR z$+z9LrLnKKM8BGIBsgKP=)CVImz}RV{C%o>T#R60(4A{O2V*_H%Bi-pQq-1Kub*pO zXWfv#aXg(gt&zfIf2|{K<7epi)!)9eUgbr{p3Pi(bK=1KmAPkEPM!QY|Iw`A2OZ13 zcmFA+^&c$`b{~*Z&Nobb(=#zuIeGP(DyREw?i0T%_xZsM?;nf4@i^?MzULgGZS0pi z<jv6gf&G?$>=iuZ+wLJd{<@(0{hGtX`@MfSzOu&P^`jTWFTM9f-7=u_ov6-Efs@;4 z8ZYR&NVD{a_-T*5<7TsFvgoXVMWgt?J8R%l(yT$-bFXiW33oc$;L7+#vAh1hI52nn zlv)iAuQ<JBt!M7Lo5?fk`Tl*q_2L65{+FbFy}sM|OPz1NJ*Uwf7`*uP@mV)Ujp}eS zFJjWuDx?3t)Oqfagb5MKm;T?lpBX!75wAj>p2s?!{P5`Q{>~}ew%;<e`MK({4TDCk zsjz<0SFxM#3&nnIayOjkpI?2`Po?>~mw(pxL)~v|XmW1!h@-6ola4O<YT5TwLMqO^ z8<+p2N8sN*kJWeUd%3>T!}?pM=Po`Ucs#Mo!*90#6LfLV(T(c_9TM7ku3Qron-sZx z<c!C?J0E>@;n9aKKR#%j_IroXmkvC9?>+U1_X_#lZyZ<Fc(D0+#~!!uoN)W?*9B)Y zY_kUJ)MZ&M-8O4L^Mkfo1KX^@|Ep#VB<Xft;K_7k;!QLDcfAEWXVZAHV92{{>MU_h z)6f{vCf7nk;8NmEG=yzXfaxH?eEi{A=NgDVA89{-($y{r_XbY!?O%5VR#cb`$16x` zi!mc02Jo+Gch0o$x2)AChki+cH!JON@4aTCxr>K25ERs?u}P5li)i|)HG-GVvX|Wo zztL-Q)emP@gtmN^9uwWCZunN`_|?@b^Y)AlJy!czn-85ghSrLnbvYR8fubJm&R+g! zi>1%!lzY{rPvaOjr+~2m0~gk6|67d&O&{se%H^HhU(aclIm~5Ujq|;gS9ealWAEa> z?9rtmbvEk*PwyRks`Kk*pY2jQJZtdR%*1P=&r6mFcEq3l_Jw!Q<Q>a9x~#Cz-MH)H zo1ZVY)BP)=vS*Lazqn{$cNlwSWv41LD^%?5xOn=KyftI`={q>4&T?BbMDBY0%F(KW zZiHW}yl-rakXYI0H)qQ~s{FCl@1Y@2KaDy6X65I8|9;rIUiBgCc6M-%`ep0xj$5`p z?NY+BM_aN@0yYWQBw&+(O#(Iv*d$<+fK3863D_iHlYmVEHVN1yV3UAN0yYWQBw&+( zO#(Iv*d$<+fK3863D_iHlYmVEHVN1yV3UAN0yYWQBw&+(O#(Iv*d$<+fK3863D_iH zlYmVEHVN1yV3UAN0yYWQBw&+(O#(Iv*d$<+fK3863D_iHlYmVEHVN1yV3UAN0yYWQ zBw&+(O#(Iv*d$<+fK3863D_iHlYmVEHVN1yV3UAN0yYWQBw&+(O#(Iv*d$<+fK386 z3D_iHlYmVEHVN1yV3WZART4P;;pt~59*=L2Qaj=&#P14jvUn94In==a@pe3(QW+80 zFM>%b{4cxkBaeF)Aenxk&HO2q>e%sW?g5vg^xSK+?|#y=S9*3R0H=pE^GBsprPd5n znUadq+q#y06~<?;^vvBd3C<inDl`4D^pqoG<8c}-^IW*R&g&R3o(E(>fAq}VvI)ib zi&m*qaC9#Fwpe*ZzpyXfxv^K{GY4LnHWHP}5z*1g*zwV^$!euKYFN?odhB8`XK)1Q zxe$Lw!rWD<j7~~a6;w!3ddoO^wK<{DbLsRniR0oDW0W{4Hwk$ZrMGK0n{g+O2tAiZ zuR!ktWDznm=Cir`uH3cAGwCt?3iK{9Ua3k=7?u>TOjf6WFU$0tIdY`Ggm3&K{b+A| zz!mk7R3J5aE=<okn*|ngIP_eUo-g-~E=py5RB8OR2R{8}bM-*a=JcqX=10*Kuh+u- z@%9rn9&eekG2ppSJ7Zs){wtMqM6&6zSb3KnVBbBU#*ROFE}dR<QbIyfA`4wyeshkp zZ$_FCF}p3)h6z%s9HuI;0>$aQJIT^Bl^2iZ@-vEoh2rr@@8tL?m5Sh=Jpu!QO*YR6 zY1CTwdCnR3O8<=zM9URF(i;!_%ptnQCq>1?rYMu6)FZv(<A$l!u~7-isN}d-F{yau z)#vfjSl!|CJb~*8>;)i@&FAy_5j{IT?;Q%@?#Snbjb_^r<slx+=Z%4&M0@$XjoCb2 zd8CEmM}J1%TH(DHetvAS#s6J*^LgVeys3pW$|oaR5$WgIe(gH($VU$%;`|#T&7I)O zl|x45dCiQ^l!m_w_)&QXmyw*q3~<lqd1+KBRDSwJH*elb!j+%k+nd4jJ5_*Y6^0K_ zh13#S`Ee+K=J6WiM|=z&!{?nr8Jlv?Bp3Rt!#$swV#mui3Wj-O`)8AYO#(Iv*d$<+ zfK3863D_iHlYmVEHVN1yV3UAN0yYWQBw&+(O#(Iv{NEvgNV)c5*BMg%Y94R!fjRUP z9wyiRE!X>0{ud(S+S`VAn4yzv1>u;$LaIBLdXG&FWK%10sVCUfc9fcN(0SnC115@T zQcvW;Q@aYco|9{D8S3F7uRQlaA#1sAqO&|&<!<OgL<+EFePw-Qk+O*JFm2?SVC}15 z?PrC4inCnT%~_t6t@f1Z6b&6hw4WsBeB~nH;{6I?h(WG%ID?m(yb#|{YDZbe5YZ(6 z5bb1-!+{s5TIn`e7vxF!wRIsE((dwwTVE)&e=^z12FV7?hRBqI^Y0XXJ`k)Q;t`@v zG?J0&0!6Zp0Sz5A8%R(RM8t!2lRV#abG8%C%kB_(MlB51sT+b-r%ilq$c21&g|0a` z(&Xe$$j{H0YY!Wgvv@qiQ2fh#K$0?*Ri5$0LmPPk#WgFdTs!HA)#de5Xs37tO5VtI zfkzbD@g8zrSEjtRWNDB1GU3)YY;ipX7A~&Y^8vYD>7mdj5tV|X{z^p+aw$^O3u;$m zQS;qpTlri;kL0B>IwjZjb(Unyv(BmG<r#;agSGD@M}1RJTl-L3`{lYS$M8;*7wr2^ z-9zS^ESeH1$)>AD8mtRLHJ?+v%C%?Zx=IB0I<HQ!PVTPo<*Ta%XJoqv>)aK3KX<vV zySv=CqUL#icChw{-1og^H>c5sq$<}5X8a5VL)A}`XGk+}&r_??q}Mj!Ml(vLeIwU? z%n=;NBVRkNp+Y|?TcMA=5Fp(8I6(VW0p-))%RiHut(NElv$g&rhy#fM+Q){9pHQbd zfj3880Py@XNT|UkXtED8vnRY9K_cY^-7**U9OECO2Yte4205?c3o|nT35{>~c}5WQ zC={|ds#XQ-gPe7JD#*15B>BF*L|ui856guiSLM12@9|#qSnhj3-Lqr3=<8rz&kDXh zL>iggSLLbh$~3X8d=lmdxvq;mE1!fZ*M&oHHPuz*83!Q6j;MBA`Xa4^=DA#ZUhcbJ zvvZ(q$lwFPzC%1TF2VZA9)<u+L@Kmz(UR#+?jk6Ju>iOh)8%08<zPm#Z@RVTYa-<O ziDJ2SU{{5{CFZn1XtZ2@*q@oE*|QhZMut9^&r#^3`@QiW%2zu>RSn~j0+f+}O$O|E zpaJhs7Q6|))N7#VofX=#&hm`BG*Z*mm|ZF&=AxW=<^*1b>6uRR=+FsaW(_h$+P@Y0 zy-bqMO@US?IVUIM@-2*u|2v~`d93I->4-4X0L<Wyp(0`WEux{Flr7g!Ph)Naw+Bj| z%C&<x2J5<s<Q?sWSyb`Cx+$Ikx^Wd?7V^W~L$aP~#4_zcdGtF&c`a4;AvD=+-S~!b zU2BCFN_RI<`&^+9xtw41HY_OM)x(K|aBJjcxvo5@D74S=!<>-^v?H4;_kdhSg<)HY z5-p`8T8h3KYSme;m*LVMm0KQ_tDCeP%4-OOoPxEt<sAnfk?RI;6lN)4p7I1>K5s4M zhYI-1PzCaUFg*(l2HRhlT34947_+IM+KZ_4U~RraznX-p&_0qJRrrpCAot0I{>a|p z2(kHC;rmFK`3*t%CW?g98J*AgD~+Bs6Xd!eXNB)rPc<5Uwz{r)>H1Jg3-gpta@`P= zt+l$NJR=7Mb(HIqap{LNd(HE_M#k4w<oY0_7Z!&?n{ViViBu@H!uP%=t%&s})tM;> zU&rI2^}ERRf{kd{gJC75U65v2HVvz2vekdW&S?d!sLg8y|E7!HXF79nW$cdDH5E@e zf}io9rxj$=E3IHTds)F=R?<aZb?8!hSC!zkg1zjkW$eWaK1V?0?Evrm0|P&X1^J%6 zETW6P>MZ7|>Lgrp7`FJxRmg(4GZ)wQYY9^N75D<e`Rn=lhMieVk`e%h9NgzRLNS=u zJvcW9?Ub`s=&jsY!)dtuIX^$GhciDwtEzw&c_%>IR<0caIZM+)-VlPxV2IV7F(-r_ z9+oC`0(ris4(zUB0nh>4hgi|xVk%&8?&A+gG;;|0gtNB9Fp7otWT6$>my9i%@-aW3 zV=PU&4)6GydK`i;i|}?0L*9tc7KWQ)h_PTCD#`<XoLPh%AZTv|a2c$5&t?FR<fGvc zS$)0qM+Smp*u?}uWjaU@rot?I0|}Z8WH{5&e>5y(`VQA;E5R5nd?$roa|T_{1L|DR zQ-8=m3!Q6hNM*nTrx~zpwS)F{{ux6Ii~Adkt2qHC(6NvM!+2kVa}!ac!n)L|utvb} zBm?!Z8~@mzSqpnM1x-QjA-5kddb1Da7A8fmQ}FW#=ig;v=$Qw1h<Vyh)9z-z;zxrU z5@2q*!Y6_>$q)^s%VK)r1c!*P78tfRV44fOo^hl_=6?*l6`TytT>(^rCNK4)VIH0e za(<Og(tD$B$yFiDIJ!=`uC3t_!Rb`6V{Z-DSR6)G_5-89>qWQ!HTkIWsfW|(qT5VX z%g~7K^%MIU8WSdZE<+uTTtU`ZNSX6xc?X&DX5?+j%|WfeaKX)y!_ATF+~wwOj$A7= z^KTfh9i`nXCYIk!CF^@wuCtfxdcfTZ^$gZ_69wzgH9|g(6%chswn)e87$llhPOft! zuc3TiCAqFA<6yYSwWsp#2kQZ@eVOMV*Y_dGDYWkmv|NzEhI7xV7^4$RZII!U0Rxt0 zjJsS5x}-K_q8;U0FoFbl_}Wtjm{^`X-{0M=P0M{h3+DxS2s1;`{mM4-!HIiXss~S) z)tMO@P^Se^97FF0XRvkJ1P`9NVqSAO=N-171WjXk#(s~088Q#KHb?IJPB^bCp6oQ6 zb3agqz7n;Z$~6vm!b~(*RB$iox;NNm!~))WA{%6-C2vyZ4(Hj|xvOw~j$B*iITc9T z3+aCDd1K_dK7g)Byx<DIlfj}M1z7MEoQ3oE%e8IJfFj;Q8oD6&oFET=PFD})Do3sr z<yyAJ9oXE$kSkFSV{)})bFJ`FuI1--lxvUW_!*Ib3$C^9ly_OUR2y=4qn5B{6TK-_ zNl`Ch2)u;W<Rw_>7Jb`k?B&|J^88RRI0dTk#y~cJ8q?G%5To`AV?CK>snAt}&V+!u zD%5dPR<-3?xcIC?qR{nr#!F3k)N!EXTpl#-C5bc`B8Sh<`0zTu-1m&yQK9YSoL5-^ zDf@na2I*wZc>+ncLVG!2W_J&{?@MxLQD2b00)4*Zda!S6;rs)rD)_-5%heXizdNJU z5LPeunLRyb5cXTSFyKRA=22m08oDt!!otjPxCzXJ2PkGVPVPQ441jRK$p~bg(*&dP z_&GAFz(Q&Rx}-Lw@+r(!a$WB0#<FtD#D}xo_cZc^u|=i8?|_jn$0&H_WkwTOWhh5_ zEX+KKBvw_rLh0WLvtTNCxhq&cx)tyNBvuK*11TZ#K<*B%zHZd&f}Hd4AHsvWLF=^8 zZH^7?8ER0dCN4{^(B_O?EX;-4Gi^LtU41f2q~m<yJXEX0+1xYeBW0wZxot>t+IPfY zt|uc!wpfl#d+iM2aV_8rH5dw%2Mydu&1+^qj~V?vHt}c3nVS5<#*~ZL0;>C*nq^5^ zz>@V1lG;>h9DR8U<>DmdNr#8Ay%uZ7TYX)c9rxtyI5jR<a#cx|{NDdDOD-eNtiX~p zeF4fq-qwGQomm54j_gd0i3N7X<fZ8Zm*DZTUXD(1%ItoR+5J}2Ju6=sjaonML2Kt3 zs)1}UItvU!A_6n>)u9TV^yM6+>Ds}k>pdAD)d>WT7*1B;ZuQc>^ybq9{5yqz%<IF3 zr`)Yx8bq&e;ZdP|&UA8SU8QNbB%k`k(;1x|jgUSeOpt<nsV2372wmlC+-2MNY0}!? zgH2(UjvAAG_ZdiI4=uMf)B^E93A~Xd8{d+IIvS=UMeAQdp`8fjylrTM^1)^73oL?= z>whO?xn6$)PdgbJ%K@U>P0uiY^Y*pjJ0H<Bk-RbZgA$E|yD%+SaBnv8C5Ai>OhV31 zc$?RTBWpOxz_{*VU?j-U4RH0S__tF5harIUB4M4y6ZoB(MO<WNYbp&t%-pu}%E>y1 zB;LkWf$&UxXtXJo%?Kpk8w5w6lII^qui(2+U3um_!C3&xW<&`1^89QVWJ56jkSr$< zQf3QBdXkTP{>Zln$G%tOLcc2teWPm&s2=`AuO-)BGi(8XUyefqN@BRmcxU%@1Nj0u zT`S7<@_fIvuSNM@a_tdKUY?!gs62Wf;6)^U5~QI<LlTGJAcm_<y9+!c%vyy?3V=^F z^&r)#*#KFgUquC`IE5GKn;f}QmncICf}0*h6$ei}NR=VXyvvL<T>qg+s?G(jhxX;n z+L9Ty#hKS>u$jUS_I;&!oa5lm%iYR=`rM;7p<i-_sowca^=fZRvJGq5dTYjTC?;hH zN3<k&60i(TxXZK4gO*|3$`(itx14}}#4=!EdB$~S>=4H77`loxcs$AVog=}$<fx%- zT}G=0(MWlKh{xN^&v-XtT!;)!NMA<)P`toU$FLOd*jpp!KVLyT5tk6mrRc7%JxIS! z=kb`=0ooT}dkyl}Udgl5UMa1~^n=pMwR##aF)^jr!P<X7)rX<VG#+8!Y)B;y0K%sB z!lwT2hy77~jFzlH;vP>>AXT|C7LD(4kOMs*_V=Jc4C;x-{@Ry2W>hA9%{D9tCW14h zmeoTLIje+*bOclo5W%R-uoyhcbqqJuqdV)eXs`zlSSMJCpf0B%nyLZXJ5Ubd-Ap+Q z6TkuEG{F>HLH5B~M8@IreT4Ei6*kQZ!=OUgR6mrt%ui-6gVTgfW9JB)CM**+)oc_t zrD#)@2(J`cav|ji*me~uv~o|m&Q-*);3C(CJeTW3&M@7-J`hlFL6}h-jTPWwGA4yo z;5Hb_$)M%~)&+NU#u7Z&lmq+3B6=#r0S(J`QA-wr0f$z<9qPzN=|N&CM*=o2M-Vn2 z1eoZ^uisO?f{pBD6LWDwrDX%x#7ui+1EyGew;vsiOnXR{)~O*+9SUW;z-V{JJ<xTY z<eZ@n-Uq|cA-lDnVZSmoY|d1W09iCaP(pR~uSZ1^2pP7Rra`#`>pH{Ys>cDN9!ALq zN6MKfZKsw*Ek(LI9of7=I9Dr3nMX9Fm5FP;&l0>aTvQXB;N3!~knVSq02B=1=LtDq zAV)gU%Q`^x^gfrSkg5UZWv)9?m_ljl8irS-#-*tS1`}rjkg>U+(m;PM=m%y#RVSg% zGBN@dmAVPy48~IbjwFVXF!LY@Krh(Dv<ZY>e8Q$u0xJjoe4@aLqq~T*5%9R&paD&h zlPt%fAuo3$5!o(^iA#x%RwrTj=!vH|d_oizA5Vix`St`+bbMTFq8d*g^6hbnv7&H% z+<+%{`F6D^CRQDrl7J`ZntzfeK1P%XDo(P)-Mo@gQd`M#y0zxz!eWp>=BLqxVGMFX zJw5sd@y9s4xyHOH&iNb|B5)q0r3+J$N%$&+tw>>3Yt}#>W{|5kg;uj<XM-$P*#d(b zAsnXfeTaqEs1wO`^dzJ#s6Di9@X?gb<~D`^$cC(jGq8~HAtnWGSKt{<RSbZNn|{M$ zd{#!Sn}TD(aJRKDFx}ANJ7kB+p_x^i<1XzU-+4cxWcf3yp*GimJD5I<*BCTtq`(jd zA_f;?F<-z3hH*lTX-2$%BV8-t<B}$QjQ>0}oPTLkYWDg%^>M-YN+;#B&mTzX8KPA{ zRDPIRImP0PvvhLpXG#9xTuP<<nbsW<4%6h0{wbJono#f)(}BczDd<}npMq(iB%0}C zAVM<#P;A2xkU_UVHnUYhFKAFA>q7lAHG@agG1tNyXkJ~C?g%cEj)7M+l>^{IO+83V zknLo`T86I3%ACoJCnBJU3wR5ZJb<+K%m)|3tm`Ohu=Wzlp#3<b&TmLWg|A~SQU%FS z@A?`pi{xC0_PL=xV=M%jcrDvS?ToPm3qV4CSn!ev;tzfDAR5K#eIkgA_VCVfNX_r% zp%rvP0($szIv-!Ud!vb$Z%+{okBW<rjS1EUxyiRjN5w~~VpBwTqPCF|8>Nm_plvwH za)PSya$8bXpshWeUr{S~#af%!%tffp$?xT^72L;@&gUxrla<N^msxM%LEy^GP`xzd zR3rYWj%i4H0X+}o(TCXAAj~6O#n5xg2eA%R0-ba&(X5)qrb8k(#zG=*^23HQ<^KrU zOq^Xhn&5l}GtdJ~&{ZJ6{4h@jwk9&;f=`G~hB0aMNhxDUyQ|4wCV?6ogg9(aB;zZi zcljDm#5}WQIgV(nZ?)IZ_@ZkAN-y;Q2AsE@R2K$U03)p<vNOy!r{c&_@iS7<UYmLk z-6Bx~trILQd*GR9?IV1>lxLpy3!C<Yd{!@W`aj`;xP&sZTo$Gu&(hxlJQMvWpunU) zaz{2g>HWDN`DZSCusu#7C9RJRj5nn^-qgSwik0boR^xU49GVOdrdgeQOb<Z~3=Tkm zLg!Y-3pmL=<=aVpNTr}cFt$nE;**9!sW^p7N=$^wjv$3P98?`@2V)yli+K3;TP7z= z7O|?Gy9+!ZU&pWEiG|{xn(?=Z)DVM0p+2ZIUhV=GrXIPj`l^SR+8~kop&QZFiC{=d zW2vvfs09%}>3d4j`|N_NY4{_7(zDflkT4UddBM23gf}2{2mUKtJ8uya*VS=hN!2tX zwSgryhDarIq{@TBDxfm4?=aX#wEVUibRlzmMI#|+E90QZWGw)n4tSc&U<$Yigk(9> z=#iKEH+jV`;yF{z8aohtn9dT^2EIeb^c*$;-`P=vFl6B#t!`d69IU+zl#9G$$UBV- zXQbdDt>DO!@x*t>#Nd1rJ-A{^h@Q#M2?MkwpB(;c22T_545<suHcvPoL653^8SF~( zj*-tb6+}mn6Okofteuf_o!}bmJKH^&J7(=YnEb1n@;^hdE__S~>kR*1x)bfj5C|$% zOH#yjv}b2lai0<4x-k>6A-TR6U!L(nq%q_KxNamvXIKK*jCWs+!&qt3M#JvWj19{A z9lV0tIHq~}WKRImb9lwH{WbJXdw}uFcW?ZYeA?;HsccQB-(fFj*h@Bh*~ng&v6ngQ zC5^dsOBOcmHWa@w{JP>N#!rNwyRfO#9%dDZcE6!Fo3pwZ4RMfP&h&g>^9=4tr=be@ zIk=?(r%;leOB2qNRuySESv1Jw8FZt_hUFNvxMCVKgzPIbGfW1ToVGw+V_C*OcEVYd zsY2)Z2dM`)q*7>qS%Yjtbn2U!t_9|Kyu%>h5Jikh|3PyWPNy`vewKh4okRB3({>4d zMcyJ!^_@Itylc821CTr{zQ|^t(Us@#+nEnsyg~FdhtFf2U)fB@PEFK83>h#)pN!Dy z<&@faskn8(ttxr=VFyW*K{){uyC#?swcprehJz$HA2RrycL;N!b_lhO>%joQ#mLFw zH$ezg?T{nO7h#P^w*2iCxo-{xnSTH?qBQ8yF+~$*)rF-BnE4BFpJxvV!95kuJCIj_ z6X0e<cb{_NfcU{R&kzk+qT{TC_Nau7;VLJ9akPd(e7S!zVmgTTJ@KCL#;E#WBUm6Q zi5eEFCJ4zFDD;a3?CZPoeRoB|%q2h%iN3&e6p}Xzy`U4!M(_^m1L+%OnSSt@w2$Rd zL;>2owEMTy4(v_)STm&(lFz4o^d9FW+<HA&xbmv1v0OidFQ596K4Bdf9yp^#>tNq= zYX5+l>#H(#m5<2&t-MWuvNuAtgyYh>5d?Npu01W^_m_j;Oa~{~jDXf?JUMn5cZESS zTk!L?0IC)*&q0=BPazAgXa+?bN`t;J<A8{?&<T&!d+MtWAcIF^DmYX$K(3BA=oAbs zan&B6yQw45`mPHXk}YbDZVZ6~*rGG&;in#?hHpODbOkKAOk|X<Kp_9!gU!w8`Y8Xh z2b=CxtlNeZFoeOT5WK)Zsu^^$;Dra9eMS^4EMYvpKH(T3D|9|RfIz-{hSXU{B=iD3 zSuwq9I$eYTN1#T{>6Y;&dVq{vTc_15a+UWIg4zeDG`ixco8#`lOuDN_6!ktqCcMfF z-ff!S$Zxa^Fs7LfggMis8loi3>;=Vy^;-jKOq(>=kx9vrE=2-fKcm;WIt$Uu(t-`W zv_9zX5#t@})MO8*7t%3+MjtB7Ok>FTv;>r40{bqK-f0DH;D7-c$%6P3NM9Djn+5q> z%YlTkAXFAZ8x};!f?P3zv}Zv&5lBTA<O#+>$Y{3_#G3^X6UehzA`Jsr2Z<CmWeP*D z_B7xb3-dRCbkgNuRJhf(FD?q5U^R1bT|?aKef*hA)pT5B`Ik`e1(ZMqKLjcy;M_{g z08ZM424!yyTaXMeUt*2GmeRA{=lW>yG=O;03SQ4(K&r7IG*I?=La#g0Yn}8nH4d%d zGC>^{T)>6?KujG8$lC;2ksx7*1DLwL1F$7Vu)~7y3vRzFxShw{=D9P&u~a-FlL@#m zTEa%dDVE0h0qhb9C_BY!*+CTY>E=wlkOyG60soI?Is7pVldX|v9##7)boSsdLj?qV zRbeK?so#AEUILo`4llyXHtcwc*a)+rFCU}G%Ag_FvJ~LycceE+{>Q*2>jW-b?i~Z~ zXxxmx1UInyGn%y$Oo5z93A6$i_EHWPolgu(hkmn;uIdoFJEyJ;@%F_nJlOm&k<P~- z_lE^i{HH&Fx&olB5y1Jd;4AKx&L<mp03aW@su{p44ggiK!g#Bb{yiOepu$`zqdD6_ zo8j>WC2IvY8UIE)naBXBqCt#;7|uLLq4Nbt2<EV0Fh`7Yl9*~qriQ8$yctgy5DGNV zl1cp%iWDletql^8VWR3Pc;dGWw;ogUTCFZ6#+Yp$V^j}=ju(zGqT3_lj8!j)Gx}D5 zaChIp3n(}ji+6)YYy$!EHV+^aeVs!!{M(gbTE;QmG0>oKV?q#A8b<XDb%95n3Y(cB zhA_Z?b`+W=6XS(jl9dM`YCrf&=S)Lt)=fM?6goUGjr=6@EVXClu4$uyeDtn|MiQmN zSP@D?L+YIbcUcUoXsCc3wRxIJ$){Ocq$I-<9z+UH(**CD<4)&OkN#J!PH;5xas3)( z8G?dEOqz5tT`-{V0?NBALU~62t3JSg7G;nTg?LC{z_XdPD>Q1wa#v|DmV_E(5~soW zL%FyLnq!7^RT|itToc80U?R9QyHOML7~|6jLehRbESLl!csco4`uQdRbKZwwl(e_$ z?&@`nSEPK<Cxv8?n&05o5K$+UA?*Y<dFmdL>>R;+y4?Yb$$Ksr?sL6Q1wgFWB}Z@@ zxBNVzPAbF=Dtj<8+sJ<|&v)H}1dU6YbT_U%%^z#{8WDJ1fG09h4wC%*Gdk&1JR*O` z!MPj24;MAUJW^q(fhMRKCa4VQk1&+H$!K{3dyMnhP~)T#7(nDU8A|P!=Jl!UgL7+O zy$qFUaBc{9mmwW)!ak%iVy|GZbCrbcZ^BlXut#xss2ER}F{)b{EVcnCwb=R@Qg@;{ zzQtjI18zuORL{CJx|O`a>LW1Q$CTXyWS3VFN&cp!+YARIl&l5IkY>Z^^CnjT@g}~~ z^%)RkUC_z>Okp;ipu7pMA}W4xt{3n)86sepAx&qntHZD8Pn`!lW&f32ANf!I**vJ1 z;24Iptl+wUfZ?wpj72iV?=qxa848#&5Y%NTFm+dxEr{NPY{%rj3D|7z@MlbTe{oI` z>bwSv7iq#fhSC})08Nt388l|rM#jatz~J4fB-(6EMS}ufIug#X3F<1`lI52L6D`K2 z?xs~^G!Oj|I6s<*II%?Lazx6*p0LqF4wvPE*2MWrSENJxML=Ig9Tzj(GY9-Ku2}Y9 z+|)?}MAmh6d)S8dpvcp-N|QE08c&Tinu0_IjaCg#0otCHNM~K8`9L;ILbw1xH8@V( zbW(3%T41JNAe`|8ljR|2LbQjp$K~3{BZvhuOTz>XrkwmKr#hybnj@zi!93)_pHXKv zE;RC3hD6L1c9HGs0zie(?+#d0F)y)7@1CI#-jkgc3`Ux4#vli~8Ffft3T?}kxX5*w z+tmt|(Mu+_s6ZSNde~jpru9yHq6nwn4>VBWm1X${F($xT=8r=)w`99u!Fj>@DGrA2 zgCM`aGr<{$DMV!Gh({R=a<*JQc$d~*p-;$`X#?RVXb#FSA)@!$F`P1<bOesDLYs>a zCtQYeKnl>6m+3S-nXWTNS6F2n0OlmwefuzLydcc>W}^o(0B~Z?fCqGcjWIXHPD<(7 zNvX&*Vbj5LFfp|Z6H^;8F_n#psWWnYmKY`k3!Tt+7Mhr%NHIHBKy)SKPKgs!5bmHf zfa<H-qY!&&sKAsrN6;I|AR&-4lxWz%Mqr3TghfOHxqyyda4*)_vN)BN?jZk%Ge04q zL*@q!+vopb?_1!bDw4hHBol}T26s`pcU_IHsH-jn6vRiAkc1=}Ad>L7u5K7IlVl{B zi8B)*?z#rTBSQ>C0YMN1<*6tU<e?&lHz*>4A}=K%;_wi8sDOg`{#AX>%$y;Jy6e67 zyT3%KIo(}dU0q#WUHv$HT0H{tO^}mqEY3&mh9@A)<8`%=Zg8QTwaRem<fKE?;v!}S z<6?3xpRaq64;{vLh81Jd85Nhc!6RIyE-+}A%E>sll6$7D;*TvDt0KNt2v2WtRAu{r zfN}rdA7mmm-o|nev~E+|orl^WEe2^kKQ>%Jthl39t3Q{1(N?&@ZUy#eIeSIa6*_<H z@!^~c?^ehHlJ4{!|1TviR15XtZXZ96SNn7s{aNvI*am(M0hRf=Soq<QudY@+4%QG| zz}WG*D=G^{%-aDCco#aDKS}t2Q+ihvFWq{vc=Y$?b#NV{Zb4Ao)ynuw88enK`8@=E z8#rj&)H^_Uw*(@N8Tu?5I?eYH4$JU5Rz>_ic7}9@2Qkgc_I;S)J9UN&O79|X9v`mv z?M|rs7+Tzd9ik67x$>cw8j_3m9qNK?9gz)ApzH<nGW3I3Mn(Z;Aq8Ba3fRFu=Jq~Z zFeH*BTi<n?ke9bCSYHCK)|_)vo~zJULr&j`(t9vP`~lSw(_NQTk=NA!CWt27v8uRP zLfI27;G4}s@}bTUS5GXAq*ufySGbz`#{nt1BBgn9MRy!$Z@&rLfN8vm;#&^3{|l*p zH`DQ@G)-HZ(i|kHYh@me<wacqDlp2tu&~$9*NlPxCJAe??Z@S~)9`A@9lO1^v-U>$ zC-i1EaXtWeX?Rbea**b)LL4^pjMa&~{xO_b(O6DOfam7qjZXFrjIP!WU7seelSI8- z$Ysj(m{&TZRjE7FHk97K!sNw=qf^Dz=AG_FFs#16HHSAH3obDbZ;JVIM5^yWEdO<G zzP7XFM#Qe|(sJ5xjqoOfugjHhEV-Clvc|s)DQNJ>iiZ!2R;7lXw?Y{>9LsMhNJ$UF zbVcI*5)qevasa0Trh=;fI@H>icqKX(MEB;V#^{6V{V`}o?AoTt`mn#52n&ldC;ct> zvGTHI{X~2?lIs7imy#rj^kg0K0HUx&$ZuGj^zT9-p<-YQgn1LV1QY9uj{bcdyEdf- zDnaiEAMKd3yon*hbzq*UdI+}R6MP%--VRPi_})$TE%$>C*S|L}(+&GBA!gj_gymmE zCzQP(kx-FzT?<SWlkwX;2@{=)`z^W}pvjYbN7`;q_8s&06fWz$kqN%WFk6>YB(~u9 z-lB`&K?6se(|BwPLWka#X}%BC%WUu|_{|spj-IUFYrK6?%^{e5r}O6O<Li<t{@&ET z3~5OfiOrKL?q{{W&B~4V7370qDjnmPX!qZNWV90AlVPj-Xhmi;FFL|*ulHBN$wQSN zP8i(uy5B=|%&`v~gD(Fz#p`AGX^z9u3BL5}TA<6~HNfOy>-pU6^8J>wjaouQ)^!%2 z<vMh!w(D7oGEgLMXDT5i#Ee~?<nyB$LSNzv)I5uI7u&vPDzcmU4`&hGv9kEu1iTE$ zjoS;gehz~T8n-bEVl5hhTlY{r5<EyqujrTz+@}8d$SG};jF%i)8iV?BC$Gbs2qFeA z($kP#w3W#>2l*7Nj>UrtMt1a)UH*AMLaW^{_;GZE2#yxa;!DM)dV}43|1jVjit-P_ z53?im(kkx0PMLslnWAubYeV0FJp_xe)?fXB=@`EZ0l(4eVowJ+_&KYK77Gwzty-Wa zYsw-K;sNk-$$swY;;9~L<TDmUp`Xy2Uwrna9v5di-1?uxFf2rWX!tVB|Ap^|AnG-V z7c<jVA#pC#iN6`sU&96dnM|*SA}(vGGd&9&tx3FsnVu^o&SiSk14_~rQO5@u4p~Li z!N7CSUJO3m2d&oCw;|m(jE{f%#;szwa2=qG^$+8aLsXJp4m@FBvsoaMIt>2MD|`wr zEhgzxI3Ame5Lwy&57{i(9sWl@!-`I2`&EcFj?66J0l0Eu74od@A}XKcyGL!kx7}R# zKu2B-mVMcKL0|lHEG+n<+9SlPpm!mAMf{&Qghk1}Afz8<xDPX>;NE*C5<sb<{n=vR zUv>ges5V;-&e#`ZTD_SS->_<CAGnvjAHd3ju@COU-vhj)idKt|3_k-qP?0fXhkbxt z!uGHw{Dgx84+zorKpt7isR`v9leO=XE4#!Zi<TUdye7S3As5ya$Mq{JS<I=vrq{(R z9>-FSSzO5?7nA!V<`xOQ<q37a<8uU;gJQa`{k_7SURu;09IA}!=i-WW^hdsjB@_6b zM~>CimBsTkTZ<X?2d>{cP#69)4u|6?+OV4Rm}GzG35jIW35jIW35jHA+2zKujEbmE z@PgUx#vz=TVdGdb>X;qWC&cxth%fbm>&o^${{|b^4D0MF_(M;w%Xj{WZ@Kcjl?$B( zDu<?Ho)%;c=b93ViqewOe96slunC8n_^1;?%$n7C10Qud)Yg<Gc;17vWZK;Wc)wm{ zNpm{9Db_+eLa5DUIPbx8q>A`M@P66a@(Z1H8JK;qJrpHA1rF4wF8AM7RvUxEsb!}x z8u-st-|5ul2RhcRFFPGMu&C@5R)>%=FLenE7tKeh*PKdyLnIB5ddIrr`&Am2pn_>c zMUwV=<h|LHxA@A`B|IvGp~ngORp2#+d1W@6r!KGUsM=M-b*!lut@ZcDyH@_40DNMh zH}9^G>H1q4*?Zyg{!Dw-5B_Fg%l#xc3Z8R3%^sSlk$LNBXS&XJMyl=;wcY94>U%fI zx4f%wT{66kMD!AjtXD$&AA*y`M0h5EDgH2+nFZ_{?KI6}Fhjz+p&O_WI#%Bx!cG`) zc!~Uw%w!RPqp^RyN~qlhteByL(S{Z6mm-<{!ivil@zZ9ndVLrR?k{l0wNbP1!+$`+ z68T+18>{W5dNfC&O!MkF-l>S%$=%i$<z*_Bf1C_wOh=9K7jK7Vo^wvDB0dhdpmni0 z^A8`GiA8Z^?dnP-X|gBq2POzCef2ffSf(nAKLy!n#Z3*B#1bg4)*eD^2z~~iy)+i& zD&jvjrw%fx@s#rfdw+Le&RrR`A8rq95Ij<pd}GCB!;uZLg3e;DvRxV5;^r0cP9}$Q z%8g*7boW(%OA43|*Tu3c!+9z?MPq^+3^g}}TAD(!rqGS1P@E~$(G==r3Z<Gt8KzJl zQ>d>gly3?ZnL>j?L#3rG*N{q;mWM}Fg-1*<MLb+Lbv7abQYoztPi8|DOs+8{V?}pe zc*Lggh;88!wc!!|@Q7&Wi>X?CO2ZV<GCU$SJc8d@GG&PiiKvXPg`x2O{%bbZ0nH52 z7VI%Z>$T?XhJXM%okveFK}fGmK9%N+gQ}(DXdlkcl?9G}iuQ%*4M=tjQtuR`{xdZO z`TGVl{dVdC?O=5Y6jeGkyro!qOj0)M4-|y;Cx`)xHHZjOH0uwNS%36ogjjikp;}Xj z)h3vB)D$`u4C&hr1`n0-QC2j4OKh~(-}Gif@v~ZA+V@7Igz(k|!GD95_>I~eGOjYo ziW@w%CjWYyqXBBdiJF@o7~JfpV!7o_5w+nF-2NsERsmB4Yk?_(_n%A=zqzGhWhmvd z8Kz=8g-4{CBG4#&;v?8g`h+L<H6`bpl2Kq$c*LOah|=(ga#IAW1tNkROfV&*h^gTb zv%@2*!y}f2N7RHztP79W6dtiHJfb!{!XF-SG(6%|cm#jlz|=m`;StTlBlue~rYy1H z5&SNa2_r5%qN6DSBJYHVpvY5A$q;!)cm%(MWGbR>ctn191RpCfW#QA@Mnq-&Mc7R8 zpTR-Bplz&-Z^4mYnj%9zD_Ev_#!AGt3|QyBv4LuJI<K8Xj!wZGslgn-%5ws>K>-qB zjuJ#&4$}}Q?3bB9<enYOjdrOvnHeN62__>{6AS^_Z26GPmM_Q&o4sJDHW)%yv%y1F zHh950{!(iP0?pAAf&^NI_lsCl1n_SR;v*Digs|U(tseiXFGBSuR7K2VDniW-m6O3T z#Hm8F#RfP!zpngy##B)0YhvWLbEVLH6VO_rr8SJKVe&Am8zjc+7Ai4Q;HRc@A&5{Y z!#c4|3rv<m;_(>t@GpRZ7s9cK=ie?HiNTqJiS*Ccc3{Q^SwiT%#t~`%1}73!`kKo7 zbqZe@Z|wyke6+{h-+#6cAn*&04Zw*D8iHR{caZ24BypaKSH>^I;-Nn}tS<li7Y-`p zuVlu%*Z#^zfG&jCU4;IB)I@Qwc`OfVH3p_C)3|s6y9@k~;T$0z&I4)_Hh+atsxg&@ z2=j=J2p-Xc{2+n{^<V^ws6|Au2=llOd>+?>_=xzWLp!qY&~Bn}fzcgV!p&_d5AY@$ z9m69!g-4`@M`VOY^a+pX8y=A#9#Iq?F(^EuG(4g_JfbQ*VnTSt)bNPe;StrQ2(;r8 zL<HNhCOmmvFd4|3j1cb6djLIm9FCa=-RxiIF8vnW7G^UeP^nIRLKWcrqX#k-1v3o_ z%@pQ*L($9~77^TGO<69`XOV^btSJk3TT{f6@Q9l5h+o=sQEY8EjeoiGLNlTb&0r<? zWllL*y3wR|h=>c1=olW+DLf)IJR&1JqEC24-;jvP_)XoQ(JOhA;TNo@LTT#p0}y*- zP?bWKO`+`P^#hQ}m@(q<m+LQR7lmq1r+>2wqg|&$bprLekp2Rn^;gG7s3sUf6JJ1c zfxpd!UyD#^^-Ocg%J_EJMDs^&3vIp1_;`*y`blUc54R>dKjnn~-*hh^{D09}RmMkR zH`4#i)}Jj|Xms;{=KMObf<(t4iB5(tRK}0LAG|aP<0a_*BA+pR3gH5eKizSG5Em>i zq}L*$lO#aDxa6vje?kgCuBUKx)s_bTvV0J03jHsgLZM5Rn!03pc$fU8Y6Xh3gA@_s z5l|O8LLue@I$IN7n%RN?f0HS9i1|QTZ7>bA{Nc2Ynj(OI%D~5K<Y{Q-m$rnqGW;Ko z9A}DbFfF`O@Jn?7Sy%@`J3!cSBrsSLOc*sG5tZ?mrJ^ySH;1-RSYw3rLv+6LuH7Lm zq$?s*{lhpC>N7>sl~Y6c?37^&^)ZF|nnJ&B9fOPfKjMt)=k*)aRdMe$pSYLP4-J#b z&`tmwRRsSvFhrFOGI_JtCZkJyyV2YwE;K0q|2Zz92b6}GgJ0eyf|@t=Jev0}S}0*@ zT{w?CT!or|utgSBt2P{idxj~CdE7!49=A*w6rvWw2T#=u47_KW2t9d!L#Uoq#<$|g zC8kKu8py_h2EUn2?}Tu1PYsXwzp6T-OU*-cNg`T?N5qCl{4bd63#a+vjIlK}`h{SG z8dQlW4aX=CkEjZdm=GQ@H9TT=ctmx0#FFrcn(&Bq;Srm{BesP{)P_g+!y}G{N1O_e z_-{CLfKiSQ9Rx=?^N9oWKt6F`YPSFWLkF_vRcd0hJe;el@Q4ZF5mUn>W`{>qn<5~Z zC5Q-4mui9`$Yos!GTsV~hehANCe+L`*MUhn9*ya+*#}1Gf9Z4-bu0}xw&mdw|NXNO zu@wIs$9iF`d3Yag86FWE9&uxML|jNjW&9m?L9?D*6{=a4@ktyx&=kqVn>y<Mc?SX= zl=U%ayDp%Nz@KWu|M$BND1yDtpv~A8452^OB4o0qep3W;v%eXv&@Xc~{~Zd5^Idm9 zwXR$ds&D_zs#O_3qa%2ju-wc;y^|}L&!4&25Nc>E<8!!#4(BZa$kCw<^=k@Ysdb7o zQ3<SaR>ns#0}E?Ht5_M|j3cL-B7XzfSH`ct9p!X1m4p2mj{K7;@;4~_r=%ijolFw@ zKe5__eqC+q*Gs~?eT^ykzhQI(OQ(WmB19N;f`%tLWC-F``5!qe0IpI^TxEoF)h9fn zZ+Jw0ctlZ1L}mP$+o1Dp-VW`B=jwdN6EV%B9=XYEx_?{y@Y6j3&Sd@Dmq_RvXv9wW z!JdR`x$xp(%=0zs%`Nq^Q&BJ-mTHg@k{4CFo=L#BhAJAX>owOWEP>dluBsF;<gFDQ z^+ZC<rT7R!5IM3Q<TU=GE2|RI2#~cPU@jPM$e0R_s)rW8ZI5qcg2#(+&w52;-_|#o z(9ht~j9x#V>jg>YG(fsuPTQjJW$QyL^b_o&W`h6jFT{WE7vg{L3-LGnLj3nHh#zQY zy=l{Y$0|A`S0q>x%1&8|8+ENni#}vYD_f3lCm9-HD1k(<TW5;+DbLQgUQwAEp6RFD zJ0p|X5~Iy)La4w##KAtq;L?Q9GYkJ7=Ky`x*#E?%vE6~kP66++zViw|=o9SXeM6-b z+Tp?DdAj$nk~mE91PCTjaOu<#F$u+=61HlepA@yw_@5m2f@{<~_SLsL^6#G7$*M+2 z6c&_fr;x!(B*NpL(ZrSUqgq272QLcO#sCIq`JWw^Vgq&gS$xRVK{5FLW7)k_+$^>1 ziD)_$iRYMc`aspTrhEi@CgqLwfopAJD4u?(+BeXW>+2nn%U{Oia$^>!M5w1+-$4B- zX0e_#*LS;0t4Oh^2V_?dxCpBv+maNs_=*JI_JrjJa7oOzgysI`zU|8ov`o#3za3&v zUH)YwTq<zOUvP_nc5(?`mZyYkY7(wlehqHjylhG=UN`TAI9xQ-Bh&v7t}f$IGBqda z2V|&B)$rncqjc?P*`7#WGe4pNmuLmb?j2Eo;co(4FMQrD^%j1Ox$xbW1PcG>xrO%+ zExe+;rJ|RmTD#*z_wVocu(%luF!!!55iw8K@I60DIx&kI<@y@OEban9r$khAvG@!D z;#F$jhyre%ly2oIt;<Ioh6L~d*i>H%{*7RpjUTofxobyE#gBxi<EMPYT)=?zapytl zI~;?1q*9~!;ZRXUA8rv`-&0?U%(w-lREtc!xn7|(z1q|w?>0jQ)glh$4Qr8Jhzhib zG6aLyG8=Dp0`Sj3<~3!9@W?cb52$eMarc?8ajx99r7FXUj0-z!4&fp{C^NnrpvU9W z)cmzoA3o`h9KPQA^`y8tOlh>-3ygbDjzQ(hyEo<E=H=a+mFHbjo)QzpmyXgnmuYh` z53j^y6I>x%bLboH0sL}1deZL&p}46e7DrX2G>uuO_z<SiIE~k&#AxUx#@A;!S14I% zLX%v40K<DtE^a*ds`QDbRQzS>6V0f2Pw5kvQ1Q-ct@Mc)t$53!Ekd2|YJY;+SjB9} z?JilFxR*+ONG1U{w^hbh{TZ@c`5IfVj=>RIt|j|ET|RqmTsWlOz)<(o@x7Fl@mZXA zL}*?fZzQjL1zP1e5#wr%f0yLOc-Nr@&0`jKYn~h9tiitz5w|HfW+#3>SrN~dT?E=j zHF#zG(Hl|5pF+#vNgK*gjjoC?kXJJDch!N)_&%$vVszzYhp5T2a>V){Y+|T8TepB# z$Y;5tr4%&Ez-ZM-W%o8OhPtFg2RotqfY;B#3`z}GjO|9T{E@rVveQ=&V70t@ZRDjW zuCB(HXp!qC<zhd4-qJr3sMT7a7o=8pk8WF2cJHOQTYb5%!%KdLto88lyK}kyef^lf zKNk~<LrfPs$=`36PQu-)J6f+xbC{f#dg(etT96@h9=T{&WsfoL)|T!V=t?d0u5?*> z-sR;fSD-8D1i5xv@qbD`l^)Zaq{sZOj(bcCqsL@sFxt(mhI~C|W&HZ<(Vk~s4Ya&^ zxi3UbxDy7f#KZi#9`)^QMd_v>r6-uu{2(Q>4h3#nGo&9PDZ}=p#H>lVLW2Qn8B{L~ zw|ujGkp7ID`NT}1H~h}jpIb<OzD)Y_<$8a<LhsM0dsu%qKEa*}ovMHa;8N6pK4BZA zK7G0qX!Yn*glax~WMn{O+Zq|ReVf)c=82fEH&k*hntp}<EJpci&FBr0sFCj!1}h(G zRuj@IDjMI_2p^Kq>20~Im!%k=%|`CBHPQYh$j;Yjhm2x!i)RMk-|71y!S@N;QELV1 z-}XvKJF<hSObWhzEo~?_W}a(})?A0Ir{{)btqEl19;9+STsMm;vO)CSzBa|e?dR*Q z_i>3~(WRQBSP&;-E=>tV<0)krnmKCOP+<7KL!=T}%%T(vZl-CqytaAFqV7?+e)`Jg zd!jE|hd?6)VqzBcZoGVN%Zt`sv?*v}d`Ep7mmg`~seGWN+!a;cy^)MWJi0||T6ym# z<pVD+Pib17*UYzE#->Y_`&+JU+!Q5agi_^-ar8el5`w90e-t(Vx5mBk5<<SnkS?LH zIw-6aEd*;!{a7HAh!Wb?`Q7J5xK<&2%9FHu%GrqTDuK)+s+^naC*z;3u=*&hsPkYA zQCM9S*6um=m-vvvx>sSnaUQG=3hU1bYs`7Dnk%fE6;|PSunv|>9d%kM=fPT~u&!0K zt~n1@kNHCDjB33RxEZQGsSZ-K4k)aTXV;I_!-O^OJXp6Vtj`rK-+8banXq!sgEf|i z@5=UXD_ZLp*U#6RBLwRr40+JdE6zttVQsodu#U~DpO#Z$J)%l{?>ty%*i)!%pQNzb zo`<h%6|K7!))VKWHC$-LE3E%I57tOk;uQ+(9iBAS(>tmatr&&X?0mEoR;0rEa%TOs zYziw{VJ$xo);$WVvBH{k9;^-Xq>g(qw4;Tz^KgHBm|$&HSl!P<t5ngdR#*!c*2_H_ zXATfxX`-1-W&24I;tReS`@fxm&mKkjAFDsB|7umhKFs>SY}R?OPV+!t+5WGJjn*bC zeB)Xsu=1^jn2YOL{o`^Bs;&MhuvFj>fkOoj7g#QEq`)TyjuKcU@M(c#1wJEig20Ia zpA$Gm;8cMx2%Ii(roh<(UlKT1;Hv_w1<n`vy1+#Omk4}Q;8KCh1l9;#A#jyI{#s#O zt91h36}Um*MuD3IZWj2Fz^wwe3EUxYm%z^i)(YG!aG${a0{sFH0%C?(`Nw0hdkL9! zt^VUO_+$BZBJ#j~+<KQ^%ujgFt}cHxKjDybUH&Y7TE|Z-`DqzH;eigk&QEATI)EXf zE+2jX9hk~bcw3JSJi||Y`RPf1+RaZx_~{fs4dSOLcmW5T{B$)x+4!jqKRw7#_wrK) zKXv1$F8uTmKi$nw{rRaKKb7#)jr=r%pRVGk@%+?+pJwn=6MmY{PsC5l`RO~{&zHZ6 zpAPfWZhqR!Plx$w8$UIIPjX-*KV8pHtN7_&etMIi{>D$${PZY4&E%&c{PY|@P3EVk z`RPr5D(9z<`RSkhbeNyK{PY7qJ;F~-;O-pg%TNEoPrdl*HhxOyrw90{Ge7m^r;hyO z;-}X9RLW1+@zZF2`cHnE!cWclX+A$S;-?k-bOxVV$^Vd_j`LG3Kl$<G!6$4B)pu=M z+e!)?{RsagQV;SsZVR(Jr`WxT_!4eEYfgVsQC-}2d%D#V9u35Vj5NmWVfPdlc*$1a zDzZEEFM`H;-6alZUaZ#@Ti~+V?rcI$20Fa?v39rH<>nCmH8UIeW4k1zr9Uhm*eygb zn{Sc4@y|MuyJCgG*di-(-q_0X=h#Ar$HQdxulKr3Vm<aEtJ~^zxqlJGTvxHvc1vu( zVsC7b+m&PYcw!wM+;?fUwf>oO97Q?!SS8<o=>W?{t$%rLh*89x!F5z$Qw0%;;@dfG zBqGSR78N;ct-XW1Dtu>~Htu3)n^whP!8UEEO|i$_rk}&vMq1;BR-PLawKONL_;gwe zvNP@8uHe~LTv#N<q$S-M8=Gj&$!EbzOsqt;D!{jm|H^H|EoisJw(>mOgi7ola=LyF zNtENQhh!5<ce(m=LUB=SKYS#%f05M&A%eSHD_SBp*X=4)4X@O-33b-7vW2_eZim;- zHAq4Yda^ns56ZC@c^xiinlsnc8*0|M*im4E?0zC6xJz^u7UDC{VOU7e#d2<f+?N^_ zZE(VxOWYl}YDU3EVrGfQYcFIJy={L%CC;sM2=9_;lp-uhOi!<)z!TRtPPJ2_%jtEy z3JUD*xVVl+(-jqa<KjAmcSEbwW_8<Qb957cj^;t{%gINK)9LcY_Or(pd+fHmVhgR# zVrxM#J>TkywHBbEY$ZT~9q`x-@U>Qar1g9qs)s$#0janRbMqS)p{&$zP)JviM3OEj z!-C-k-4J=jme{?w#1<BNyvkg__PVXGUbzmp$9rB0{T#}-psVPO7HF$q-WFjc^(c0B zapNvuSYmTM^g6J5C{w{UJ1jG6;V-KgY+yJ0puhn0ua|0=o`88NbSQ(TZaj{Sk8M@l zgu1xgIow&##R{=T`T*91#L@(DbKF)>er!HOk8ah3?z1|ni@hIpwYn*x$c^6;y06%Y ze+86KoJX1VBI=&wrEabPlw{ALR&niYcLo50x7j!p{*PLlJ7|{M0YeO)tT{4hNoNll zPnc+QzFe1EeX>3<qQ-iPfp3QqH^!FiZZ5AQx1_5YPi1Ui>#K}IcADpYr)wb0scw|P zHb_&BtFZL|Yrz1!$Cc|HXm#6LqyJh9TVpKrx?BYm924DkXr<eGXRLitkywE{V_RXo z&2u5Dm8}V3FvD-`HE0M#=M>njZf*%>@Ux3tZZEeHlGGR*j0w-`w*Li9E8~n_agW^z z^Yn8lWqMsj_qqCoG2`j)z*q}r;0+WMxN>4$xj&1V@@LL*W$uhkSEDCL!Cvxs9NYc= zK$ouvU)ofBA&)$wGdjT!dW8*AW23^Py!KdYEPMb?f&#D+$gwl8lIN%BxAH*s<+JUE zcNSadvK1HDg*jc{>fuYThf#yr*c-dB^@69zIvK3qpACb5VH)UFPHR7uEWJ!B73g|! zhM-ljkq#$x&(Pb%0tbfdxVE?Jn%V=SjMZb$%IA?MokiT$UWi;OS;ubI76Y@G;~bzt za%mZfu|<v|DOcpBx3J+1wvJU|WTz1RVL$L#B9hky-dd68uieMByOnzf{Ij&ASaB<n zIT=0(Ji`KOu@gflo@4W1O_gUO<=qnNa>rr>mb6?4B;XPEJK*NU=3vaWLbcJloIl6q zcB3Qd<v=7Qu41=N)m31#yIT{SL7^>|u-gdkn;y{}UTT50M2~m(qqw&1ZoRF2hub^e zk<d9YDY*-^^0dl9|4tO?1bcmeoVw{fu5Ei&LKn2S(+2-SZ-uVxA#}B}Qx_L^hr$Vo zQ@K5HaqU8qn43&=`<(o^xV9=j0~W(!S9n>;30-?6ckP~)oSD_VM?y++c3QWr<Q`oT z5|gugCHKfo>)tJ{Z3oI^yq=ke$V$k{tPcleGEPE9Mt#YKJJikY9q4ka3g}cb6MG~l zcgsxeUN7CaTNPato|afoxm+hMSJG8QegZ2sD=VYEWWA7{DfJc67Oor@k($*tJ+r40 z%{fBKj*CO1F<M%;Udi1c%l`^3D9)%yue7A(?&g%+RKARa9>|xFo|&ALmDVk#UMcF8 zRrSnBPcW6Cx0ccRK~Z<bw9A^OH#n<*Fe%fO)8FoehUqF3Oi`X~9GK%AN{e_Jmg%(u zA7XD++}im6&Q=bpoAe)AbJ~b$|3)q1Q%&2XU5Q)Tu}Xozx=GD6ON*#KXhyhByN2?J z^2Tc;qv%KN1mcfHwkVIHZ!FQnqv(v~29>W)yMo#iwU6GfQT)9`|7eGYS2bQ5shf0} zcJXER9@Mld?KZz=kfyfn6AedK`AcbS+XZ9t-0g0a3c>C(8m1;i1$KDP+1~ViammSa zM*#Pi<!gIuFe6B&r90Yo0J)Ip&M=?<3U_UPC3l<;f2SiZ<HN3mRv~O=QAhma@ZI=_ z)f4`M3^g=Ngl5$uwGaD5X_sDX;ok?MYlxa7<3E6ug@23Z0N{_quOhzXQXI&@*5hsX zeY_1mqk-S36ruwB{tfrVmE#xdBh-`}*o3oiR>GMQZ3<DNks4Y0fq~ixvOFD05xp#A zxfu-J6HO8Sh$d|wemh=7+Q5q_@-r-)AH9g0oWU>FHnd(%=%V3Ra(^Aqo0?FB<zmv( zFQ$mni-~G3rpV4sNh`x<&i-Z;asMUw4&$X1+4Og$b^9Gf@Yb{ccNAIpdur7Da*D*7 zrKR)=(r#}_mcRXh=(RtP*62#2%dVuTi>@K+a}8-L@w@37vV7Hww7J()#6y3k$lu>Y z^zBU){S8iye02*&Jb>dcYuZp`i#XD@$C2gwc0^ycBdyJ?6d8RRMWo(F+6%XlWkLti zPIaKjRkxF++a1*S{yRx4xEtTux|=L{ok(llndq&~q%}<>I+a6O3mcI;m$Xs2M3+BK zTD!-IE`5R`nv@caE~SX82a}dEn5f?nikdxyB6bWxo0XB~EF=1?j3QcLN3ZoT(h7&+ z8>#qRgx_|<DWZ5d_#aM@9Y#<@{s^K6%SoG93ECH19)K=zSHnO49{Ioaci+n@f0q9H zH~qJz{(B+n`8u9k|GifKy+!}+p#OH#fB&KX4%dIH^xuj4?{xk5RsDB~{<}i|-Jt(& z)qiXC--G(^H~R07`fv1HRfFH@zgOzN*XzG=`tP0kZ<7AoP5<qq|Mt^=3-sRs`fsWJ zJ5v80tN%{Xe`o8z^Y!1Q`tKV3ca#3RL;u~U{~pnQPwBrAuc&%7)qgM7f5Y3Se1(pO ze$Rh#`tLpZ?~zt2{ysh2Tm`B1+v>pxU!jLNmhDkTovy-y4(kuQVMF*YRZlnKr|R)V zVfhR^mFryoUeaw?wf<}1-MCUcJ#(IVy{X5q3ai)SdOeJC4gT&i>Z{Xz;&ny8O#dCB z|5oU~qxIi0`tNxCcar}5y#D*5{yR(meOdpF)!U0@$$zt6ehC)n*Z;LUPx~9?gj0TG zdU%XETy=r;MHfi_<O1oZE|7lJ3^PCBp`;6>KXQTestcqqx<LA_3#3QP4CmM!zVQO- z-7b*sy+HcJ3#8XvAbtM@(wojQ*C#yG?gHt3E|C7u3#3oKK>E8ENI!ak^vh?5*T@{c z`vU3xE|6Y+f%I1|kp9sH(!akzdTf|IHP;TOVlR+B_yXzS^cunq5@?V>g9I8R&>(>Z z2{cHcK>`gDXplgI1R5mJAb|!6G)SO90u2&qkU)b38YIvlfd&aQNT5Li4H9UOK!XGt zB+wv%1_?Aspg{r+5@?V>g9I8R&>(>Z2{cHcK>`gDXplgI1R5mJAb|!6G)SO90u2&q zkU)b38YIvlfd&cSUVv*lW+nBF>)b1$C>sAY?~%|0Pgx1Q@Y^>gt*CiX^U`ZuK0udt z%Fcc;t5>(SaoO29g9cgqIR><Cdpn*BtR7Fcx1`9P?Z7R9$@IXZODuhxSJi{w4p}{p zb90o&&7WGT&9660+wANCh4tl`fSWtzPm_E$YsLU7Ek9#K_NA$(^yfMqqW~D;kxpyj zxp4!}i9?O8*+s=}d-ec_+l%}AsC0>i%gxRkG$^~s?)JEFL!`r7l06`fN;iFPa8dO; z#=#v^IsLP9^807!72}dXl8hcNE+29iaiE{e<@I>o)*`vCi(?9Lt7Nv<>gk`2+W>R3 z5rwNqZ6H+KFB?}>A}3Yp%FA+=%0KXEpYYn*er=UO`_Ycfd$&x!uGF2EgYq8j6dE&t zV^TS$r*j}!%I13l3+)`6A-a<3y#u$P;Q~2a93{wuL>T=Zv%6i4RjNstB@2u}xC9cB z<r?P|areVDht6!=ZIzSHDOJG~+@TbVpAd`}>1JDV9xZmbg^{V@X>N7v71NuoiVwC8 z-yzBg)trEfQ5_su!hvA>6yOHV>|!(;JzB#lwt}1j7p{Rpc%2H%J*^zxq{4ieC<nKx zpr@peL$w^r4dnGpFb@~^aN<!385vJWs0i1*d2>0nG=j6@3M|1bmk=(R<)kVJ4CHG* zIXHoXAZmAt_^0YYTp`D)vpLw`QK0I~0d?zEw$18Ai|`F@jJ6~^#pcNIqNn2qFKMuv z@bp}rnRVd_PWwP8Fke^4bT@@07kVUW8%K%e>k+kq2)@`(@dQ=j?0$2Se&w8=c+{MT zOWLyC_FR$IDRUB=EhbkQDMcHVE|;LaFsD$Oy2=O^l`!%I4i<Uk=Ctg>V(4x*gw>yu zrk<Nr>@*T*b0X?*vkzk2Y7Tk=&9g*;&R|2=NQ5WH>Xde0Cqb{fK<U#aJ?PBAHAFg} z+X8Wl(OL=14XRwApM%Ao0z0l$MDQpF2Y7-d>IOy2rYMS(OO>btdVi{VTp5v<t?s>5 zm%{~bkfK#vapw<Tyhm2K1C1}sr57R<9zNF<M9rqp8`DLZv`7PCs)$IVPa}HJ(a4^3 z+S1iZ>!M88yV9XXP&3?7<+OXPHg~o+o3?Dw@^Ar~iiVySa^!a0QWXh$8@2pmuMPJv z(s~PDaz&rUP-K?7B#~{1afy_NhDR9pz8V+V9&2RWJF70LJ=rLds&JuFgkJYK5h8;$ zzAdnzfNvb8vc?pVft&E?jR?NYj+RA4(z=InE7C^~BcG&fQ7PMyQp+iakrK(5-JXpw zT~J6LSd@rI;!3101y(Ojj!ba6oF#>>Vvi8t6PanvwbTB{NP4D-NTJJ3hfHo)WFq+* zcY$JccdMJ|XkOzGne)A(*}dA)j_635Q3OVweGI_QV9VdZteu8hik(6Ed~BgeRMhQd zVdQqR^M#qXbCp(E<jTOrV%(_b^s1W!^-BYHT7p;7(jE&c{CBd@i%&u?XxJ!*d!A;v za}2IAiI6+8PgwNpua`zyXz*B$ce+Dvwx#J&9=p*jiF|2js=70j&Nk9XEQ-=etN@9H zAYq|*1fEdjFir<<m!-O>z+HRy+e>;`3ySR-RtGB;Zux~>D#j(F?{5GN78lKJWL)J+ z^Bb|QE@^bmb>6!hS?H{k_r*A7KlCbA+TKXNkxXat3m`xL472!!z{$9b-9lRhPM^Tf zy96G1mY)w!W`be23eIVas||78t1$R!V+)-WEY^_V)q|gew0tmj=tU6C6sEjwDkw*B zjV4AjAyKT_=uD&M?2kspgSv1yx^t#I2aXRNkETeyJ1mP<-64riMdL<D#!ke&;9mL> zcYBHIZ;Teb{V3W(XR5i_^4A!S6*v!{cD2y=0+%i2=j{T|3aoycW8MR#W{Gs-qMr1| zrTV>z=;<xH(wMeNw`uY{xcHE^CiK9?l^7MaCP804*>s>!@X|Z_GCLDjSK6JPe7IQI zbj+5TMf-3+D}C<m<*?aZ+4SX1jUwc7%xtP?61ea=n-)GnQHfODq%(cpM87RlD)rjM zkX{-sz8II~(iq%CCe1`2Ag>cQO=h`L3UKjdf#A--<z*r(k;;K4a?z%wynL~Ro?FJP ztkVvnJ%6#$8fm!+FgLI=o<w#tY_#qY3(Z6>3%xFIg}_ZhN7;}ME)H#wrI%2%p0v1W z3T<zy3z3#L>q_r8V_8wfB_X1E>JnX$<1Y!38C72bk!`#rcojB%c?sk<Dn{f-Gh?_B z=EBgj6@0HL-=9ruo24YuSK#%tWtx`B7YtGz1SL0D(zi|RPP^NY6V%SrEJT=j8rF>O zwWLMJc{q@B*d-Jpa!bqT3>(M(!&}XITitxcr+yP+D%>(!fn48<Jj&l;2|WXdGSTY` z<%UiAyjiiwkwYhdH~k&(B}0pcPBgR7e92KGaHGIo0uKs21<38_a^u!Tdg+o3Tnb8` z#8}8z!v#$g__DyI0^b$56ObaZGHA~wxM;FiZfU1-WIG_q-wUk3XBVIe%Qa1x{tzI% zB9Y4gDPjO@E#J#JH3mK(y@%8fB(+vjk!UT@Z*BI_>KMKUls*K~F+m!#f~k)YI318K z=}Bjs8{KIDUqrg4rQV(P-_Vsli<8zgy3~Btr3Ucr=bwjmt9Skuq9T~{;5N)d+_m0x zrqN8?4{uzX&Pg3<-V>^?A#fY*nW-hg!_31q*{LoMZfZ=h+1wamvS}pT2+^YFE@dr3 zUfjc8djsz9#8XH5Y&be99&vB%f=flIIKCa7><;74b(6fCR9@P9Bl6Kf$wRw!d^+2m zxc5@s?>f`O7Ht0<@EKVE;F)_b?!wPbO3vt!oS2Z6oJ0p(WYN(UnO<6Y87`m3-IB~{ zFP8%sKF_&4*=b8C_U30I3fbt;<+v+1$6mm3Sq{F2la5`^eLdCcNk<O2%(yrk{f<sv zo?wHzdmSDrn&w{7!~SS7ZhofuS5OmWWW`8~MbYqM(voOj3yxsHb&*?ZY0+f~bnG(4 z%4o2X<1Q&;VHOqXWq)=BSF5wtmS<1553m=|zAIR7?YQt0BvsVGD{$>L7)>s4<T?5| zcmhkyTP79byAY_6-i)-irG?&Q0b9~td3knQcPD+;f+uI8wg2MsG!LD<9I6<Wy}J_^ z``fv_?DRe;eI&}bTi`*a8evQl&)*C$UFOCN8g=W*_nszmm!Rs)EObh!3}4AgJ{=I< z-R%{b^gwI5#a4WAnX4!)>JYNdmrQR<rU97w@omaVn!d}?fVA*(3#}8Jtt&OHJHC=o zh>m9E+eLeDRpudmpQIlb8oCzf!ry+mdO(Bsw)aaYa?ozzpB4OyRm|?Q0%r+aB5*w* zuDG=0a}u_030XArii~`h(@x)Aku}iOMecM?mP?;)G!JszA({M~DWaa{-*yGtD?2w) z&mQS?^a=}|mK-BjbMcb|&K3A3AVv0qP0q!I)HJ7MnhgTRCFg8v7q(>GbnvuIVPHbe z+Wr<;cu%r#7x<;XZv~dE;Ub<A_`JYsKx)Q4Z_a;a+Udj}&?l4?qK~dlg2&EZ%1A7* zIup<Z2S5$QpYYJW*fjbsRwDI&s^7^>%dY8Rr;n~pETBc#-RE*RIdfvZ)!W16Dx__# z((Tp(c2nGEt-50>ZbbElkX-}QoNCbAdwsGKYZp*^bWuzKv7V8a?m&Nh@`ldfG#LUY zDze)$+%CRyIt|kfT6zOTXVBa~bfNFBOr#xGXF@#+RFx72pqsjB#kF1SHb-%xDRSMl z=~j21-4wU+TJGEM6EQg!3*@1fuIpA@$kp-iS2=pZF}9*~hYM5t665w?nsNhXJ+ksd zyZ#_uyBo|7R<!JN>Z%~C;2H~5=-Df7fRD<lU;ROK$8WB*&}wd(2rpG$>68ZGLiG}8 z`1NGTpe<LXIk{^}@5n5|cSl$+mR!@rk&~YRduWHzqw4EeUUnxGUe(PLVDktrR#j|D z;YY4yR&87_nt3foGf|LFg$=nLo5uW6+5jK85T~;A2D&KGMJN8)xg<^I&f~7?L6fe^ z(5wE=Rm_~2HXH4~D#W@Szsi&1c44*V$E&*F(<qs^_&djL5IGua)be}q$Ik1JtBQDB zU)st-{xzBw%t8laE%co*Xvgdf+V9DC6ww=3g$m%%bru@BmSw4AyXh*a?bfR-^faO^ zG<B_}r9wtLmLEp!s}j3Z;JX610g^>kddAghNd~JgUoE6wyBd?NeyBAqzS=_jCCf2^ zb(}FmWn6c)DDFm}RIZbrE^sa&MWT;TS*(lesalC%Y$ff@bdBOluct<dv@q5PZ-|xR zH^*jK^JtsujKLoIS!{PY{wIo%rdosVIzW49A7uEpl>45*T>`%n_@ltl>qRC4Ujw8F z4~@FUiLP(w&HyKx6?JkeisT^rsWcwVzlJ+7J$-$ko6_(bEVM%CY!SF`y%w3}qSM!; z3AH4LwZN4}bFWqI73)csE6>i?%$pFVqcd?)H1=9p><o7FCSEHhl%_&UzZKfU-({}H z3!E+RjdwLocO5d-+Ez9Ac~{bQ3Oo!*k!pA!`=_D;6t84&=-)TjtGP4!sn?a`DoAtc zHm<YVHIO-a=?1bWDc}PYh06Ty{}T(Mdu}cq3%9iR;Xf&|rfxaDRXw)LLyN%US>bNf zdo25baL8%sb&48|gepHT@k*tpTxY1lbfi=x#X`#kZWdT8xVVzuRP-0uVaCEtvPChQ zTmSX&PbF*JdzyyXIGw!C(BFzyMqy7uiK=))PSXU=7q}A8z^!gYi-7czB<z)hEC<wP zLo3mq%}6^TX+z&<GUEi!1f&R7cvZXaTgheW^dy*CEEwwqZWnlvu_L((wB-7X;(i5~ zKs<ee$Q_Es#V8Xq0k$>4hQ)5$dcCSFk2c2mvJ13-5PDBysmel=1->fq9f6w!?h$xg zVA%(ZIac5dfr|vL75K5h{Q^%4EXP;d;8p;#36f>jk8bGcfMMH#)_zG+-x9b%aAd;u z!wo#)f*+0h-^brWje63`8$+gq)3fD*eev%<Lv8fA2;<*Mqo3E<0dG&IYt$T1ky(wN z5)t&@cd;KX{`<b+xG8)Om))2hfrWq0q~kZIQTbmw>-ydeA6oIK5yeZhS|{e)bNY9| zc$?|S!yW>!LA=r$VQea7VHJdi#$j=XziUP>#8Ffx?fP>fExjp?j^C6(J8n+qPq5f+ z+(P(FmSi~4n%BBc{F(jVo@wb;C-w`_&CA<RM2-ueWyo~!NcPlCESVnohKcCX;hWH~ zMMdI*V3@m!FPO)YuUn5;bQ6XKk!tCOEO|AHu-ke%9iW1pf&DkB<+9FJFLIS+xCWxD zeRQ*hDu9nks^rR`x|<4_mnAntw`tPN13DP<5q5^uh%z!xSy_x9^KTBWxr}R#4kA=C z9go>*-OW8xIw#OZlrUFHcvIjy!QgLg(BYfaRrz$}FBaOu@w|5W)Ghh0fwZ7Culx1t zk%Z;8elFgt+TVsOM*HxWZydV+_th=+Ou;9$?$sj|t_oJQp@I-IJO#sNJ>G`fB3-`h zVRv_R+3fTjYLwyfU=jw0a>!q>yb4Bkw8650aO<Hdf58kbq{)8-GvOEglm9O|e@02u zS}U(^RGag2a~P!@mQwhOF3>GBIQH<!*BX8pf0S=D#QHrDuynOq8cN_af%65{2;2xr z5g}@p=Hz+$=dHWIrRC4-oRjoSoP~Bvu5`OI4_?rj)+)~s@N`s&{wQ$t7H%6X$MH%B zz1=3w+1Zho0T&VMiu`KZBx15)HDpSspvh^@UOnieHr<tHi%Bc?B~ajG(6Z3W0+$MW zSKu~*`vsm9IP4>-uE1FWmk3-V@Do6aIB(rH$DLE%Z7AI@dB2mqAqz6!#L0rpXSp)3 zkGq2^+h(do88#*D==h!RsXpccLo&^2E1AyZk|moq>ltWb#|$dHqX$05<3R%!!9}xY zONd^+lP+R=v$!1=8t8|1m^RF~RV|aJyZZGjq229y{-B<}XfG276*$yhc?ilOQE|uG zWBRhFLlX88y>^M>IXTU{9V_?N0qmcvDgEAd3jewGaOCCDaNbU~M;8}w>Faj%Z9AB3 z)DUasQcn|&=Wo@Q1th-=@}J*oq1Obn&^5qr!d`o;_!z3#_ks70;7PVmZxt>-yWK+X zb8I6uK&YNY8*l4IAKj(`nFUxU#RNu8h-qkh*jV{Ol8!sFz3LxQ13j*)JsU+RJEqWj zE%lUV+GD|4*x=a}Oh<v9aOyU=3$g~UNBnpjTv}jS=o^7UcuR?@1Wpk+7mykm&cXKf zsw6twUaB^w1CP-#`mm1MZf7M_nnVY0?=Id=c}EMqDTLMu+$wONz~chTK0yJIMgbE# z2;GIZr#lL<AMhPSHx>vMn(>LIx8IAm8_08R$B>s!8#_4hDJAHXOro%<xf$`IWBWQd zoc--8k;ZnUMnZh@?Rq8N3gvj;?OD7ldFFOjOJ0_sAstm6MxhRigo(8Rw+TET@Owat z5V9L|o{xg(ifzpEa{^xxxJ=*&0&4{x6F6i$V~!CxUEo52YXp7*h-FwPL!f)nYaOv@ zcj`{K8`5cMW5*tL?EZT4Ssl24(DxmAd7HZ<zMw`&I;yW{Wx4b?`UVy93;k~emhIqD zVC@2h=%nY|!IMUJuy51HcZ8B&e@8g!5AMJU1jt!viV#KTXWyTv7Sbh7+@XRVIt|P@ zf)h^T`8&faGy@iCkx*SOIbcjy-5H*3KSW~Gx%N)8L=J<%1|hIr;68z0GqFY>w(u^P zD!tBicdPY8dNw`{6&E@@5NwLipuO=5Ntw8cdyEOj*1Kej&R9-7eYfPI#qks+%k9`m zRT)JFFW;S>&@CkV+TC4f@!k3)H6;G4yD{z0!3v(s9TI!uZdm7?Ea9gBv4St(whBSm zbGL30Jt2`_BG>bh>lJ}-30yDm6F}%NHhXy!VNAR-lUw7lXC^5R6vKm}*Yvup&{Oxo z$qz|=S5Ku~$ToNvvo~7cWPvXOiiRncs4iZV!YFeXsJ$VGYXyER@N<FR0P+GO{AHSV zkGRiuSi*0dKo$39((CtPtmTzXwmszQgvK1*2`j`BT-%A4y5Z8{vz6-8OYCOR*aX$W zdUNRti6s=tG%<l9Y?5Dn?h7mP)<O@xdT$PYv{g{bI$;muQ)bIf8}BXd2TP@hp#QKF zGZiG5VT0t}d%d)?6GiaiiyA0S-ka$vaM9U&;fjI~mQe-H7x=c2##{pH$A&-ZavHK) z-bn_WFs?@>VBJ*mDX!_`PBas7TP2RUW>M&M8Io`=*>WK7k>bA=cvfJ=XUyEQ0;da{ z56BY@J8u-gS=f|-Ma$q`h?<NnoQ*k0O%Rj54a4e;RqMBAYidVyQD-)};0=pqs}mFH zlf>>$ND|gfCf$Zvv(eb3Bwnp^m2|dSbKo`3Orl7P^9l5MXFX<YVqg$eF}#B%OGor! zBIX-d<+Q5=ta~IH<83(Vdx;kMn7I!OOK&6^;(sU6ASp(FZW6po5zJQte-P-~&0-r5 zNRjZzy?U86DoM5~LMlfSlkiQ>JUgnvGgt8gXex-#5E2UnE*JQLz)uAp0_6FoY>n|e zuLEsLVwF&hvUv{Vf7*mYhgCXlo1;+^4F7ieBsr4~bzvuMYHAv9br#!nUml8^K+Dp4 zQf-<{zCHOg{r*H+dB1YN^f<ds$kcXCcGCW?oq215BjhXz=3UrPJk*^UOOVEQfv0by zSG$089!lKaMUkT2T{83WWls8{OY$HLa~>L-%1exR#LzV{)k33cwTJ{yi8F_mc2Tn% z`Y;76>9v}sqE~dmKvK&BUyL|ITWAZSS4;F3fqMjg4Tx^*rI9Jc{X98tM?br{HjBF9 z5DrR%Ful20_wmqsDdD2QUeb;<c27-Nd1?x!9E*Livs_9fHz*xS5dkFT7d!jYG3?Kt z1oIVpq+0=E51bFOmE({F_ONIaDm+UP7YbY{@Iyw#NfWf$*QsXaW~Mz*?DAS^2^y>V zKK?2;Cc!9W*!=<CXh~Pu$L0L+kf3a|xjPQC@U(Se8qc=jYU0Gz)HG%I=ce((V}jEr z81vJh;KIdM0)G@ZdM{UCvcOjX(Y12Kx!#xt;e3QV??~GF0(UY-B)Ib3S7hT|obq(1 zr+)Dt?1qs@-<Y7u_leTf-G@ozUQL4wq4#Fm&>fS%#3b5!UuY}v4nZ%RNih2A5Mb%F zu*#R`#*QJKxKAJFPJ`-MVQ<vuT$$$qNp~?P+^-J3(3JbJ@+Qg4B)K;}x`;CkMbZ{; z->>%KN1??(kYwrW0l_m;PpPos7z|0rC%iFO@Pd{HEfvI|`CTnkD@07GG(X*>Xhs$3 zOgCyIT-2pw?Ph?(K2So#x@J*DSC~ntwtQlorgrV+@EE&{GrMA^P$@wu&e3jI8I)=c z*~e0Fc%f<&yIS)+G#7l0K_rGKfeQt$5%>upW~Hd6A@Lnu4F-*v??Bow*rx?s-|wNJ z-K6#*#^M-Si|b0yb_<ArCL%Hr;*va6-7S-rg6haGn5#*E*htX(ve3l-RX4UNw$Rq{ zP&t}uuH<=J;6{PF1s)YRct2BoTHuQUUk6k*^mHy^=JZZp)7?ya4QQ{H99so`Dfv`? z+TESLK=LU`82%*}F<#&dfeQfXBKR$J8ElGIK9EV<d-N=#X_<*|Dp6oQ`vLOd_pw>n ziQ$zXdq`|Rvp>q>vuN~mFQflpPK^`GvYx~<G(MtG**n3DQ_=Y$No*~udsBpX6*T?< zEC%893$J~7=*eDKgjEY^D&p-2SP1HQVNZ49hL-k*@4>Z*<^+1HM+kScIkOw>$dYz_ zt7k~Dv?{<SCTM0(OK5uUu5ed$I<^pcX*lanU-VWbOL1qxJDluW+tK?yWPyaX^svxo zk!>w=#n%3C58jnke6Pq-n?+QX8A6ywAzINHm#OGX%CyiCp>sy)u<1$|kjMMbQt}3j z*7%5TkoQb%e&e7D#4*y(%{;-cMJ3S0tTc93)@AXbI1JHf0Sr4>%%qK3vc)s6r_qKo z>BV`HJ~(b96kZ3!0X?j17T~C>tc)(rQW{~yFp1L*IPHM)RtWYcfjb2r5O@+0y`zwZ z^u*fjPs#KU#26wD56$U`wfgS4dh_e<CM`l?!wzuessv5})Wx~EXGnfJ+S3r{zMe{) z2YXs*o@A;K_~8MJ;HIh#?`5IAl6FGK8s{oQL`+M1g@%?P$Iye!&Nx7P0g`6{-}aIP z3Dx_4=#_~>%w4hb<g(G=-g+CzRDT5OGE*`y7PwB}c7X@+K~%UZthZPX1>z49{p2Ao zYqG#s1-=7llAPWwSXTDX?%qn}PJ+Pug1%GWVS#4_jyenik<h#jx6#BtNiK{HcADD9 z*t47oU3eZS7>5{<RTPMC7>Ms6dATHSHj>d3KIx-G{wY#Fm(*_r4*Lou8h57U|HY<e z?}Pfu+NAVE+V>FF&ecI%4jz0+AF~qZ=tF#31v3WhGh;I4b{7|U>6M2ukR%o4NHlf@ z-uN3>^Uy9PjQs2y8>=**Jw%N&0|uIwKA7$r*vsL<fod%KZ+bAX1bUXk=WMq=*efBi zGd_F`&u`a*Ag;5A;E0E?84wKCKFnRgmgUA~5H0u{&VqdfClQ{<;D>nsxC@PW2;&th z3yl-_rc_+lWqR|k3AF34$yPVcA7WC3{poz1=0^PoNe`=hD2Wz76eumpUWCOtTJW%1 z@WpxJ&=GGMD$diZz`n-TzjlU)A&NNbVT=k~a)dF{2*vc!4}S&AZvbhNFu7CU0f8qa z8;(%+w%hyT#S41vAuQ_`l(4hRs}ZlD(!-80>GVXU=-VDD$T2LxVNYl@(5irjaZ=zM zfr}+$Q4!Ewx!rRO0q~CCw1;u>@tkN6O#-3Sl6i~3Jpzw2A?U7$&u1q&+_d9iwPd#c z;m*a50$ZAm#vx<b*UZ6KfinQ{IaFR!kl85t{sx!55NC|jF^i{JKwlt;s|0>5@N<F3 z1P(dM#Ks7mCU8C=HR7312bz*??C;jRtm$86&X#=%KDR9g*XF*W$w!$(qj5m)y~SD@ zReiwQ%DIj_StP|FWoS9Q^)Y5sE4h$JRmdKr5RZvQJ34T_GUvYn65E(WR5nfRtMiC; zysv{fXo<lXeYjZbV(oA5nUs;iZ(z{J?_t3slhxq8zUXB~`odk9WW^NCnn>STxi7!f zPoEmomK=CY?J_cOatrbPzT6eDEg>JMrqekV`ij{Iq68+)G|tMn!EharzZYbjf(cMu zVpS^>j7#He*r++i^kj7eSo(o1IX}bB+}F?y*T6t_oVvwfkHMh)jAY~44-(1OPkd(@ z0q(;|%<IP<tJ7W(AiA(0x;OIUJQ-851j}W6Yo{Oj>GgdBT7{XUUVU*Mw%fW|2Px^u z1m_D>p+;zJWLlA-8EAP9NJAs^Gm1LZwQTmxQSYNhyM)R?fv1>OgpU7Jj)~|A;0`}7 zT|(dsfD{pEqtP~c1w2(ttU3-OO*zX(3lP6d@@x?Jso+Spw%CF^$>_ElxJLx5PGHpu zE^(T``GC|&eDC0aQd({2t(y1jSu{A8kM;(WJTxsAJs~jtnw6X82}xyS80pQq7Fx@c zBZ6tX?Ay=HuQB{!@71He_-)Abk>qkaaLmyi#Gy&KIQsGm()SA2UkUs{aK)iq1Je~U zlcEhk^?k$D94~N&z-mCX)76%~%T?!5xF5Hr1^E!CN~I^U_|50pv+0d|vhe!UOL^R} zHsoc{kvvqsm#YAC7n+q%IQPf<12(G3W4DOS@tQpB=}Kvz3O$bJ*DY8bi#_De({sOq z68(a~-QaAVwHTBCafm$ejTRyEIJ|p8lk)kU2AYQWABCvzThSJQ&kKA-;1WQYJ4|vU zVcT6DXc24Im3Qm(qs=QEooSteE!p5l6zjC@5j8QTxBKgZqPR>nwg8s7*iOR>xdxb| zB9D_I&O>-9PSWDYKp~tPVP^-k12;e?8Op=A4%xYvwYbb;7z<3re{f)hSu!5wj27KD zlc96&BN;UR5n)DgwyDq<y|<#gAEl&jDePHicerg3T%yg7=o~Bj*-i^R`5lwxn$X!t zaJWA=ms@Q{|8y6Q=Go}w{;IOC^{2>y?4Ru~vVXomR~~1+`op;Z84Jx8xJckCftv-^ z0#a01gP-XiC~ioBUR-&Bt^}hBOfp|zfQ~Ap&IlZNl8c)FNRhqqqM*KJ^L9a6$PVF3 z47WBtr4$00DVbiEOmgbtNI`OewFoaS;5`yPWkKKIWf7c>NWcR4_b73-WY{Y3OM$02 zGuEgBB~B|0mhl717=DTo0&T+c$#(;K!cym$7a;esK(x>cX7m#J)`VO_uL5;}pso_s zkfNV+28(_jXqyGCR^SnVbpoqSGfP<++@EiyZO*`fe~xHRpG?58I|Vo>$iSrUL$K)6 z2^x;wsj+9h3!BWxTuJs^93Icg$}m=K_CBhg0mX`0XuSVX7zmD_BaiBDlh89ByuB8Z z_mC?Q#?is+_}E_I^IqS1Fk2R8yfmW7iR1ghl2$xw&ONnA<)$HCYK+5}6_4ttgrqa! zhzk3wE}VO)ew5FD*wx-HEn>#HyK%-tt@vY4&`nDp?Ln*Ly|#oryAy9SVIn=so6ye# zyXLj)gt}(ZL@y?s{JxX8K=jh1X7<aySQ{6KelGBsz&e4I-^+|nt<qwVTh0T}u1Dd0 ze$Q<%N8n;WoUec>#X<rk&!<%k<jyWzi8vNjo^W3_122j#gLHMOtKE<C(f!_5k4y!+ zLkLsBxe^0?;$}+pjT>VTuXFl!$sBP*^M#8o%!NuE>X9NxqG9$(+SdZl3Px!2Eb)Xl z<{9Lv_<`&8EFgA$2C~ql?4uqzz-{-a^V@b?BENbd2YKu?7E+ug`IZP=FK~yzLjunT ztUSZCrwE(}h^C<$Z-(*ihBq7IFih~;4LJOT^DoLh{nTqZFy?z6ouEcCGYXvwB-6O( zu@@lkwe2j<q&>xfm+y`b=uD>u@c1`tpgv@*9Hd)tEI#o<H<!D$Bndk)*i_+_5jt9u z<)%%Kr`z+aIVIVcobhl@3;zj);nE}XY4`wSnmxelDoVi1s;)dmsjG`ux3EaD>T#@9 zs5ePp7~mS%8OvGFjSMSXKl&16_6iv}wWH^>Ivu&t0-lh`>!F7Sq$ejOVr$J!^ZuEH z7ZKq!d+a(Z$+@}MPNg|dzy}5;%;`lay{$Ox<dT;>XwtxL_JL+Ec-lZX6=xZJJRn8G z;~tnm-w#Tn*^gz?kB_C0?;l-pL<>7~>=D2FxbVj=7>Mf2$Y1?4cnnteZgC=P@)KB| z#w%Te)CyZrtousP&R`Wf6L_V^LvIhl)>lD+-3_`tkHq;pbujw`MDqgkhCSQ?IG7rI zjqr%Hnae4!ZUm#h83gxIs`Qp*Lkm(>Nl1&(&c6$5FP97mwsyK41)vumL$`t5lea=? zQ%QHUGd6xO?e5dhHAsc10y17NC46#L(<CPyEWvOuaVLyYMT=DGGmjM%1SFsr_1t6F zOa75XKU&~qKrBw@IWXN+xU}gpsj{vrJrIzWg2q3Aw<Z;bhaZ!6IsTYp%|oX^^<|;A zRN(tU6{D9k50a%<{|?^-ttrh2`C~GuznFts^T{#~y$I?_p=^lD^6}pj=$Xeugiwce z`HYDhtepJ2uyXeA1}kO%u+Z1SL}?vY^C>{=2$dA&(<}c7X=3md)C4;HPxvd{QV^+x zpv!#sKQeor6ZyqIxK4*q&I?k)0x2OhU$*M6R29nlFtpz)L6yF)m$2mV5FL>^FMAxF zTL|wLcv4__X@s;BcmJc0Tb&;4rRjR4Q+f)j--{;(vSs%4KQkSCbS2e_EsGpcR+<Ch zO)rhmk_Tb>#>ZG*M8rZ6w$K`ZpGYApOGa@4{OFzNWq3~l-6k}45AyjX$7z8h2Q!UH z0_O^RTi`~4y9FK<ICuzSJ}vM?fv*c(A#e*IH5TJJxKzue5v5wdeC{lj7wz|yYAk87 zjv`04ncIhGp+@tYAsVdaQ^R1R{Y(*7a&f74J_|W)n1*SXVdB0Y2D7gl%#Ta8FpF8r z2Y-(XuV;nVM0$O&mOv*5YbNETSIe{%sv3&Z#6}<3JyZ)ZX%)k?dTiS8;V2yD>x02s zxc%}ELDIPf?ATyUw_x-n^HyHQYQn~6^bjpXvuJmjB0YDAcCP)I&51z+v}K5<bSlgO zZQv4~K?zW!vIyM-9T|ei`4U-U6dq!Oo-5PNH9{|xA<st1vrFJX&S`Y%_sit9O4?GU zv*DrboZ*z94j;<pj|B{5_)*U=bZ8*M$f3yaf}mClT*ev13~=XtW2kmsQ}8A?LTGQM z?L)N?6SRh<@PUvsVbz(iY8b0liasWA$S`I=jo%A~Y4!Es%_tc{;0~*LpMMx$r9HR% z9T}ztJNh@Q=2Ji%>#_oC1b!%RufP+4*l`OR;$9!Fg`4<o%=FOVOlzFLnF1FJTqkh5 zz=HyR5Lh(=)T4EOfAI)(+lA%QRevZ4_cZHCjh8_7KB@JjVdJzU+B9D4%w0UN+o$-- zR44Dg84u}WK7`eccSmTv^GOSyLR3%MJ3_-I8n)JqImGC4#A7`yB+7@9jbkMS+Prd9 zY6deIA@9PxSgv8N=z$i@;gtDEfiEX;BV$?Yw7p!z^7~U-F?}{p!(noR)#RS(3A7s1 z8*Cp5k0C{W%XyAeg5oZw(pc5O?^AV{@{A_SEBl|(a4aRbbk7y^(ERaQc+`^d8W!KN zPR^FvnZwh-HzsJIjOgni?=d^P;aEOW>*8>Gym&Tlh2YnmCOxU~a)unDIzEz1r&A*} zPI<LL)3>?#waWDs8g_K7Hg>o^sL&GW;|h5f0#kOpC~~%fTTza;Td|leo8#nrlHYid zIStbr_arKRkSiaFpoeDHlgC44rc53h&ACpA_=lHAz>La<o{WSmE08p{oZIIGfz^N% zk&jhyT-!k>D>Su%Vr;v+u&*?Y$t@G?4FY!v^b7n>;833^xWJi!c$o|*=I!APy6Z{p zQJxM#p2o)eD^F>BSed4cK_QDdD^5Df6-_pJs}kdCPC+roRThT7QZ+p8@?bXu&UlbZ z+Khf+v@G@qCYYMKgkIq$Wg=TDO#+_v6pCHvi_p}II(u2!wo5e*GA|ePpwC9ZD(f$U z%&Fr3f;S=NRcUhChCO<gD}H(My1h#4$|s5voF!b=?kZd(z$ffvspE?(P4;b$RjFzW zd0O<>IEg^D&wxccj_*6^>?jyBtW|c#R0YbKWG(T~p(>4{@w#+LS`tpBjt;E_?oSx4 zrMsMYhCJXG(lGF1C|?EGHJbP-)FE8$JTxB6;ebv77eJG%G+rq3V%E+*0-j_Q#PWlP z<;juU(vt<gD)1eFn*{C=cwAsv1#6Z%>tjruX-k!+9J!uFyemzUxY@@76ZS;lB7tiK zZUY1bS@wVsym+^oj|EM7N>j^%A#u~V9S=yZ?*&#o$uyr6_zEB<y;xG(_LSx-GU}Ga zuZ_b~rs1p{+z$F`<C&)d^$*~b@*2%DCe%2Kc03Jb^90VW979XW0h)lKoP0Vc{IgGE zXbBu`DH~%bFO42!7z-LV1{}z7mP1c#+|hk3mk)&dT7ky|4yoi?jS)Cq;6j0G1bzaD zS72z%7^PvjH|N}rvdz>{W^vUE3b^tib_a`|W3&)cSwaiA`hKP#X~LT~Hc*ER<K(Sa z<Fx}1O&yOsr^EA5Z7|FJvCz6;hKZbE<S1?|?pSnsEF_0(Sg39+5+)%5M`I*eq|Hnl zcJq~STJWqEC(v9T^@L2#IGxOzaUk=ykl843x4@$U2ao1*`_aj9nukXSV`0Zb-!mng zhYHb<3D0QU{QcD1-ZPo+r#Zhx=|Ny)bH_7c@a?p0Je*Sx??1|l)~fNEL0`h}GKCjG z0av#OA6yon5u>r=&uv3g8f$;NF^$_ixM5aH&aDE!6nILYuZk&76gXSp8v@@IxDzmN z@=RoQWV|M?u1Me=rhHg1&k7v%6jOU%VD(cGeDDC)ka4jWz{txb=>vha0*?tC@-$~0 zBXGLFg#uR!{7~RtK#Gxh%CL!Wcq%4hynJ~gyE`9GgmJUlctrhXBIW>-pTqQE`*Ro@ zaQBecexG%KRrN(0JQ))L-m4ffSza97J{c`<AE>_`JZ_4XVZ}BZyWqHetVq4WHf;*V zc$zf@w>a2wdKq_NVAUP(0l09;{MZ!jzD)IwaKM6{or0R4WNsskTaji=#B_(gpUCqe zs+)xLA!AsyVz`X=bU&B~(}UN0gC$R5N|l1iL!g0pWTGafar|>go`htqNHS8iED@fb zq@}vtj>mYRwg8(@SZblNDH>Mq;8O%*d{emoU0gZXrWrj28pNxkw4DWzXU_y4-VVya zStHs#Me7VJn1?svoi=%G?29Q{Qbro%@JfTiI>ekV7EZY(=&9!*GpCK-=lIpa;ucAD z(URwQ>WBAP61;(z_qI$y2jXJrePndG2lA_fTey0AB=6Uf*JjgKMSpls<3Scfj~nlk zh{Hf9xumm#T`?BIKu4pQlhKK2F1I-xi1#OJz4Pr@g4;3~sLwJI-dv{TlQll70;!|; zwVX5yNqiv~!!-gwVdO~ekaTP^OgUejg-r`Lon?H#;G7mXavbNHByg_4w*_t#xLe>+ zK=x*7?G&v5Z-H5DVH#A%E1iR%VM<R6d{N-*0#^&%D)38zrv&=OGyX(@FAH2M@Iydq zl0v0Z(O<Sq<8g_8oQ4kMe}Tt&SfWCgbm!eKvNMGp>O3)89{TP@p3<LrQ92i+U`N5h zci!OjINCU!d)~Lx*=q6I9YSK~Othn&o}H?>txj)%H0F{oBEd`ZrfS$az&NdJ!WP6D zcd(6^#-5XkpZS6sp60%wsjFqMDr&G9<bmCs)ic<+mR!84j{OZbd8cP!PREW3lza9x zMeEgR;#|SP;)wA3(;(peEEwDyuzVUuDDKiYw!fAWPKewFPhfeD288#E_aK!!FPoBB z^E@>TelTBHD)m14BC<^uR6f?Pd;U{j(D2q8y2)dBJyhlb?=#-ZLii2Fj>OK>3uqBT ztn|@z@PazfFqR}v9wpJ<7qpP7)y)8fwUQS%Prj(hiy-gKfC^*$35+dV8J@j-3@VXk z7S_I~Ic>~z66%cp<o5Q%QWGtmu5o)QDU6?qLOvEYKNomRV4c9qXCpKZ9psu!dX_~r zN8n;WxKK29x+e2&qX=3t9W`-!FdlK#1I17bZ1~Wk>6%SfgLTtEYqe0>DsZ2`Zv_sY z$aJ}_53p=>4!`CsW03@}P!N<6sG1>jg#g-9EXAKtArI4iXNHnF&Q!B-7YWt1Le)4? zL|@I&9XOpd3%7!$v`w%N2s|lp*d*ra8G*9|E(F9mby=07w`XddF?7(%ndmuu1aAFI zO&xOkfa$G~9G?jE3p_1w<a11QlEAruWZ_MX*|W4X4~7M+4cB<`nl7!H#hsd`5&SX{ z9iN2>hSv!4YP*>5d9xuG@tk<fTsBMVp3x<f-kk*omP-*Exd_ZP)H?D0Sy=F5V~_D1 zC%q0c-Y&sA$as;dj=X$a0hRBS>!92;d3H!&dvUg=yz)8xGR-N;HhePIW~{&$1XcrL zH5jLzdDy}MjsCQIHc!!L$Q-Q;G!!o_(@S%>IrT#e-_3?y!hsSSongYOh0F&`CZaPR zGDX6aIgqgg_}mIj=eJ3A2%g`Bx5kXOf$_c*yrEN=(We1%I*wm{Q+IWJHAm}A8(%`_ z!W#-NY3QX>UV<NoJwQB8N4&bvWWr0D+zd!By#$K0gw|^U-w}#3;a>3)k9dXpK)Q}G z-xr*nf)gwiBNT)KOTrtSJb^obGU+sDI3TEMIOM}0Jb^K;DWTV2*5IuMH*Sms^>#A7 z`7#KcloE$M&-DyH4EFiU8V-;d8^a6v5ZM?Y;v@m1NAYnk{Tx`9OV(Rz=VEBcvEvmb z<9t|mzQu!2KGFWUSW4y>(83Q#9iGb*W_V`D=kh|9o{ZUvem+UO;F)~<>}@IhU4h$} zg>w#CO?-t%XD%;r(rPN_+%I{)5jbQjSD{Ma3_x5GMDt$NnF|(6E346i=-X;pUEB1U z)`iBsuJxd8uS2yQUcMg-jlyTyxkU~x<l&WvfDE`@YQ^BpLQP&Nl9zmRZ-o!VrDf17 zi`hK$N<Xc872^pln+MMhGFV@Yfzfo<YR)|U6d+$ZO4}A{!2-Tp2!{_|t1SulMe(6} z9F^eL3r+dYE($$~N2^hC1UOhSPvcW-6RRPeH(3g@+)aDtX|i1u^4cC|uCRHZEd<9H zmW-WS8e1&{UaH1CtzIr@#UjvND{}sLD&_>L>TfJY?B@t47JIz7T#4`KV1JT)oN!E7 z32B7`)tad~Uo*pXLbP%kv+Yf!k*{H7Gfqt&U%;KvP#&7~8iwM)uJt6AJFBW}W4-&D zCLMAAf)Jq&VXh}JY3Rk13(&0mR;g@c8VBZ-f3abqi8B~qH=haGyiilupkb)nw@@?d ziSC*lJx{~YI^1szQw^t_@1P5LZ`Oq!N-9%_D$#li7Netae^)|<83_^DJKV%U2~;l# zk$~Yej{}Y+Ac)!pN)U$^K(}$KqGln;t9wjzj@K-NROUb`aP|eR7U5&g5-iB~I^2WN zuLE(5pzINpf?`j8h&2eJZ+>0FL_v;IvXHXm=0nuv|B?3|;87KC{O@k)Ei~!U1VNM% zdQnP30t5mHgizJ6B%1<BHteQ>(wlUoh|;T6rT5-@69Fj#qKMKI6agFeeP_OB_w4T3 z-4lQJ{_k_2ySj&bcHZ}$dgjc`nS!C|U7QcU2oq+*qfJKj=CaE<hN7M^e6-nUqg_?S z#&eY7i`d2ConhW)W2|BF7Wz>Y&>iZV=p**$9}(aQi#dLuiR&tH-6^i8#PwToeI%|g z#dXpWmY*-KYs7W8xSpY_!OtaThAmt8hEbP#!xS#^H-*lx;yQdOYepEZZsCWyC{NEg z@HB_kaDNLutm!H9m;*eG1ale|itCr+x>sD!iR*Xb`b1nuE@R0V;<`*+w}|T@alI(6 zKZ@%!asB9XkqC6970T4v;(A57w^nbX8OH0ki5hX#c4G*&JZM`fa|GSK+|n?7zJq!i z*LP4?l6J7+U+Fn5C(Owv(CnS`+<LN;!v7`P=RK`OD%s}*iCK03ZZq0sxz1={pnZO6 z_>??pD>r`)iKTbv+-q}8a<&<s>?M;s*(8k+8_sO!_5sbSA5I}Le7=)LxvkVs5uvn1 zghv>T?lgu*WHgX|h^eNBcJWY(GHcp!V=tvSJxLKR+yj4YH=2@^l12p;721hi<oS8_ zoVGA_MA@)#hpH{~fFpfV2+`#FOxjqO_GVO4$7VRULky6KU~^?^xU_@hACf!`t_m#+ z?V)59aZt3nTF|hZvD3)i6!x5}wW!pt79J5bEMz~&EoU3E#B~{6X)KX4iv>)r>G?$? z)BAT)xiXw);f+FUzYvpi@^9@Fm7L*6c0MbduZrtWLWo+TlQ@G+$w(?P9%|riZ*v5j z`=-a!q$ZlN(<VJdygW8++hvsNo?08ui4-@i+)Z|W6BdWB;E+xi*F|*YI?SFU4|Y-7 zC-H>TXv06dsqT^soj%@;CiJY`c=>CXx7!$zW;HBf!)t}HtKvF#C7WMCSNW);r?xuF zPw(ajpPVsvjKeQIxUYEd*zUnIwtPWY8@7sVuB9vYIw=(ltM}kJhkoCJy)@b@_6ehD zPO=HPj0+bfm*M;#s%2eE88=^Ot5m~hEaj-PWD!&xC+*dIt|-pa`F8k9gl)uX4&erI zy-ioHmSm4<*Io)KKiCWhSbW+V7Ca!XPuBQxYVyYB->}=rFWBviFZ|@w;Q{})NBnk{ zu2k%~uA;L>_EE=9^zot%=k`$&+Dqu3eX>eGfjzX3YY^4#cVZt|yd^CDCa$BtWV?3# zhtB%HvG`09q5Krr?LwSFuwRU+(yD}$$BhQsXWOv-0M!NY;f7_0j6sI;heXXa`>>HF z-BAXqMv*8PCLf{7YvNI3i1Y5etB;9yF>ZVDZaqf1Ctq1ndqTAMP*2bXhV8`6ozRpR z3(pP2N`{NaXuY@162m(ObMsW}Nci0`%I7rRCYKhHks$+bc9<{1u=Sv52^hXTXzXYh zcZixHPE9<+0*a6Yn>NT>b@LIbTz4L^zx^=`=Mcto>vTH#tZW=CAFuo_okqq!W8bZo zSkCIp2aR+fPbRfIsH>YMCT|&TAEA^!BT_fm@Zcc7$g~;8vXbf@$H+rQs!e#;Na`F4 zSqqJ8(JEN_-7teK+!ML<T)3qeHXJg>#TiZ>B8M?+{b&UpPAo7S=AUM)<$PU0SJk$` zlMho{JcfIMGY%VhnLf7|>^BtUkQnv1w`cYqCqt`*q0MY4SES+R!{U~Kj%;ig7910a zoJuz#=bg=P@R(6d$d92m*4bl5o=8nqSUhd+pk(4TkzcaE_t6n*Sy8o2vj);hom2Wa zC&E7A^GWvEFN=F*W^5U__J}c6v^cMGs$3FcKL{~lM>t&~8A^O^`|)<7Gyz744O_>_ zGMTP)zj1S5*ilLn_FZU=IZBcXgv>gY;S(2l2wr(3L$7U)(u+e{q3>vG8P*>&%1!BL z%AgWVxgV3<(fRH%qv)eVrI;MO9a^1F#ne$V88&ia?-yR571vwh`dC~?tmj})7uTiY zx>;P0i0fr>{YhM3i0k+bEdQyvelD&D#Px!>{vfVT>1wYV1LfU{u9#W92lp4p`Tcf` zY;md`wsVNbY-FEiiR&_P-6F0>>B?i1_FG$)jKwFo?htn<ZQvPcxO+lX=+tX!cb}y0 zEG0gRs+W@<KS`cmXX9d{SHu1j)a7)njQ;Kf-Bj|KbMXWoYP1h1_3%Zgo{8(|O{|V! zj5<j#6|7>{QyIjww8l!>o_Es8_Ca=#w%4D8?X4V~>12;q)QIa^aosJhC&l#&UHLgK zy0u(eV>Opy^eIY!38$!baq8<EcAg@ecUj9%Jv4xJ(&ke}-rIq8TI2LdNl!KGXZgp% zub1LFX)}jsj=1ikE1jc2W3BQ@^zsz7Jx8AwHTa^_Jh)}}?lf1Z)PXcyI760Bv4$VD zDGhT@8*O3qxa~?0Q^RR?yTWccI*XYu`%ZIX51l!~<TKP5G;BUYNhI#8Yh+Y5z45d< z%KAS$^o7(%XH+)CFKdOJoh<yD2#EM~<rx=i`&r;05}*>eg|Ab@^;2<OB(C$e^6#^^ z@pUg<X{^bf3jdzr1Q56UsI#01;?MDCIf_DI!FE<#yMvPg&*c?o9na+@=XtdNmrui; zvowTgxG$_wbJ(!%oJiYi=cq%EsE<DH^xUSMCvzGuv+10y@X0yZ&K3>Um*<Qj18BN3 z?V$Vdd8MyEk9_lMMAc9)I=YM2Bb_rgFkC!GMjnXpH8SktU(WI`qju61H*U2HYcKex zxjQ*3r|8Nf7StE`?Hmk?Hv23N&3z#=aTiN25!WZ;x@|ZAa!*_r?%}^r(^ZN3x92(P z-=7zy=+m!6y#M^l5$}~3o#MTgN51}LeQI`Q&}c=hVcJ(p9M68O3iq|I?WsWf@=<-g zmpzT7Ig?+BNo_oalSylis2lh51!F{HC;H>*1ulS-)MhSzO+ljfB{UW2yRRt;<>Thj zS4LB8qKQ<7e@(V$@AWg%DDt-#C`ZW$+MJQ6&8d9&Me*S;;REf-sA_T@cX;u)!;AA5 z6fefI7we@L-(R4=4^dR;93F9fB(9tH@h`{3^`^K!5!Z41Imh@WGA#Pqn9)G|wVUnD zb+~M07sEmR^$7h+#aCQs9pJzBi0eP%dgLJg@{q1vxrwF2v>#;9z%&|^n#E~+;E>Ac z<BM>b$4;XUv+k$jx>sDUitFej{QD7ceNI==oiN<Eh`RAPWj}Qx{=KO5DMnqQOrTZi z4=!?wKVj1&kFtrG;<`dycZus+y3!3R?ywD)xMW3Gc=Ob4m$<OeOJr0ohCP?a%59<Z zL|m62V~fAe$${gvrZ(~K(&B;f8{?1-#zV&0#xs5ojpO|Cx2XTd+tn&ph%Z*Ks(-;( z1FGhKwL!ZEtwtCFzxOlm&OOQ))UP0YMjMypnrggd+-h8&yYZ`0g_jx6<_+&(XkOmE z#&O2wIky^b8($h<7-I)jYmmP|{)A?2nl$ayWRmf;-zH<Bc2|t8dL1#Y^XqfUIMw*4 z@gK6Xnf@zS@cTU5j2#Xc%T=vku5*5W=TA}k_|t!?Pl@~m3i$h1@aL;Pe}#yY6Us$P z<QKn7OH#tgg36d;TiadvwFLXg{s}+*3lwEfNtOSX7MT6XUl}6lvj~~WFXhid{{Dpu z6e_^~m!Q9$K1KN#@`Xdq7hzJ7aF^zkfj3H66<<{Uaxhhf*mePTadmKIe1)J0iI9e0 z^iK(mkg$LBvk)&p-f@C)L`qOJl?cdxS(5%zE}o1Ddm;$ZC@Zt7{qw5*FZ|(8Iq%{b zyEw~v@y^wrS9XL2e^Ka4IQ#BFUn2yZ7(!Yk3-s)XOtIp~+p|zHp!~~@@*_26k)*#J z2_~(VC{$9Bq%<wyU(DbCty-1es#T{-fcO-Blaz|{|0RSR@{s;!W74>|`uod7rQhtK z^!MlDU%5!3BKh;@qtAzfUoYEcs_~5yrAr4?tXwL*O}$37>J}+js(7j5ZRuO8_?yLB zRBu_JMfIrG#jBTlE3jUHV#Qx6Uc5-d*43(2u3XK_=k01Wa-%vk%-d%$yh9KaV#>w8 z<)m+6S}k&`Hj}|noW9Htz^{Rift!K926q9|hFju8=i3SWa+#7p1<wHQ2CvPK?l-|d zgL9JK?Eg~m8{paC4&ZCx0pQ|U(jHAc5c;{`-(_%RxbtE>w!Z`VuhN5p`6A?7f=7bQ z;AP-3;B(ODMkeb=!u?zDVYug`2MN0uf%}`_L*Q=UXOJHYehl~3U@Q0n*bnjf2fPvP z)hI*RzZ&2+U=x@Y!3y{9!Hd8l;0xe-u>S|RG2Ba2sbTxoqGfsqf_wLoYy~%f`#f+E z_z?J2@O|(*&@V<MmF?eydt>k*xc3Er1o!dax8S}ROh;IX&n@tEaFIOH{yuOZcn|cG z!HM8$V47MXKHI=&;eH#u6!!e{O8XlW`{22dj|YDNo(_Hv`90vraQ_8d9R8QeC+$}S z2Z8fJJ{4RRJQq9xybt_7{JR4_11_9j+W!RH5PS>zy}=Q19|9f(UJh;#`LDrCha1Gl zSODn{t`9x~jt5@{F95e2DfPbre**X11*N@v;AY@}5mG)8{2F*RxCQtW_#^1Q1owk~ zjSETpIl&h22FT9`=Z3vA;OB5R_)Gm);9ehG0`~fY!{I(3+!*d>!N0-XP*~a<0j>e= z1AY%&4f<2S2?)<x@L=!-@OkL}3BC=kRz&(|g?xMP0JskU_k@3I!Smt%EqE=scu{F@ zAGjs>hgg|k{lQJml9zy=#Y_GPd=Xr)n6y_4@@DW;*qa5;4fj*vG6~Y&-{8k^uSO3* zu77I7eorv%rXoHQ!872#6MQTV;R6qWe92d&y$;~!;H{8P0^bAA0yl^JF7UhHTj2c& zuYU<?e;v3PcmX&XoDBUD;J)y06}T(-GT4gv8A?j~88I?`HNc}F9|g97hl3L!zXH4v z{$ByF2Nx_Q?SBdRCSY2fAwDMXLby)`?*bnHPXqr79tEyYTH1e!^aul2MtDboi-324 zPeA`i@Q>i)Wu(2w;9zhe#3u_}4!j!t67rY9G<#lra+a0$dV}kMk0So5;1KA~0>1~| z3;qWDGx$xE?+WFl{kOrL!R_JS5b#&vRp6Qk|0!^5q|a0EU*PhuO8W&7-p=4H;Njq9 z;LpJ$!6(26;NN5LOxQ15UfTa091JcG{S5Gr;I-fg@OAKH#IHaFX)iC*qb0Z=><<7B zhWtYC6}X=QUqE>O0=I;Jbt+2x;mD6};5T6JL+~x|Qt*ZpSsqS+$AMpf%UGm)KqYB^ zH{82}>%n~x_!8WgfD6F=0{9=e=d3L49RoK7F9pYeKLLLV{snvt{2llyxGMas@|v{Y zVYWehdVq6*CxD-QCf#>|e+EAUUk6vHBJDMYerIrH@Ca~m@J4V?@NIA%aOtYjUM%c~ zfLG0u;pqq744wqu0{Lx<`=?U=2k>QZk=LdDKyY(#I`lKZv%s6dM<9O_ycArxnzWZ6 z@^6D9!Aan1;OXGf-~-@&h|f>pAh?&VF6}RXdo%DDaBuJo@M!Q0gm0@N4|{)umw_9; zA?;6xd?NS<*!u*W1wI5G0Qvjici~>9hP2lQ?ybP#;CQeBJPCXW`a8h=z&FAEkT3kE zwBHHt4Z$Pe-V6K$?jyk!;l36e0R9gA6S(MG(*8;4w*vn&PL`)Q@VE(*XMk^xm%I-= z3G(;A1>jz~rnJ8r`W?VVa1yu*csBSu*xL>M1^hiY6P&Y_v_BjAb;0A|e-t<YJP<q( zJO{iI_V$7s!u<ibI=EPE>0cXg6L1;uyWsBNk>D(ZZv*&OxPJ$}pv0$+v_A)28{7^0 z?}8hEM}XrM`-(p7-v;jn=MRwfLm=N2ycPbv2VMjD3E&ZMUk5G*{fpqkaQ_p02Ktrj zO8>SEmgOZ3eC$KXHgFBNe+K>xd>mY7h?IX0w!r=MdeXiL+yxv09uAHKuLlnX-vu`Y z7ppJr9S64nPXNb(3xOwq%YpZUuYzxZD<J$O8c6#W5&sbIeaL5lU&8%M@MG||;P1hu z8cKW1q2C5v2>y)*{|)yo;LC8o0sakKppmpU3tS&O4%`iF94hl;G`KK$8+a$=e+I7u zmuM{Q|2j<Shk}p8-3l%bdyBxsz$d{L@G~&DXbn@IbMVXq5#4g4Doz61BQ;9|q2 z{tfUuu$Ql?wD%Uc5x65b7Q7qwXMqpF{S^2n+@FIN!@Wi`X@4WQ7kCcj$AI&KSAnY_ zyqCcZz{TE{_AbI+Aoxdc8u)$i3h)`&zX*;(`uqw`fP1BPr2T>59^elkp9u~^c$R~c z;eH+59s2)*$Ae#QF75Y)d@%SK!fOK?VSfR*4fM}|tAd|`8-lC0koG4{G>A_J@EouW zTpqj-yb^o_90Ps=ehXZ-rL?~l90VQ!?gwrPo(gU|NrvYX_!aP9;Mc)*T1oq#fV+X) z!rox;Xt=KeXM(SSjgZeDDDC}*`n*2)NAP>#!jK;i9tz$BE;rdAK3BoH;a}b$X@4`g zF1Qic3Qh#i248~x6W}QD@8HXjuh3fBe*q2!{{*Im0b)Gm2zVj52lyCxIrup^KjKp( zSn5B8|DC{x!Gpm+fR}?SB+K-;11<_KA0qA50QUel0?!5qg0F*ng3Gp%`mu^WI1D@$ zoCACY{4`01r&wF5{}VU@{2Szlf@4yo{3dXD@Q>g-kT2U#+A9qA_TZ-AEO1-!O0W@p z1^gB`f2g!~8TQ`+e*qo@UI5+#-U)sJ9tEz`UfTN@91lJYUIvbW|6haG_mlBAbddTr z`%7*ME&?76_5&XW{|^1UVN(A`a9eN%$bSU>2JVNz?cn|Z{4=<8M`>>f<b%PVfz!dw zAioG)D@lg`EO;5*pM$>vztKtBKML*!?gRbN;2Ch=3jP!PBX|VlONL8(o58KXBOz}A zTfy_d-M|OIvEX~)y@+p_2x-3s?6(1*hPw^?D%=->FN05lx4{1I;BdHC=`8Ip1xJ7j zfQNzyfY*YLfUkh3gZ;Wld%q5n`B4{q2OI-_{(*F#3El)g4*necH~1>_>qkoa!Ek>U z{04X|xGZ=JxDWU?xC=OcS81;ixFLAzhcbLI;4a{4;9&4>aBlF=;L`|ig(zvi58T7S zuYd=Ghl1CG>w|BD|AoCm-K4#O2yZiR3gqL#uYo@X--Y}!@Fj4r?$X|2a1-!&unC+3 zo(BF9yc_%}_(yOg!keduwErIX4R8WD0{jIy6+8qy5o`l52hRW>0gnU!3|;`v*Hii* zKU?N!5O^p!3p@$@C3pb%C-65@q<-aI(%$djp5PzBAA|j-O8L{^6L8PhTk7uyw*U`- z`~dKwX;ObRcqrVz1y2GOeHZEbv6K%3w}ty~a18iMunG3>fsNp|-jnw7PM7wg!7bsw z65I^-Zh@n~rQetOKSI76cs|1S5jYII6TAle2>dI!R<yMD3+yL?C&7IQcqIJ01}*^i z!hNLvVd%F8mx23m@JhIE2fqpTXW)ylU&SQtMSx?#wZY54mB4qv#lThjO8per?*e`s zJOTU+@+ZJU;r<f*55n6#M%p_A_d#GQ^f!TT!u=6=8Qd$xO8qV1j^GQhKNkEQcnf$2 z<nMyF!o8eX+S?8Px`OAxeImFv%GWONGVl}dIB@MaX)hUU1%Ciu2may{gZSJ8?*SK! zm-_o59|A5uL&|4@qv5^={1f;F_$)Yog0y!P+z`AGoCvNA`-{Py;r<QyZE)d4Y0n7x zX5h03|6uSe$ZrN);r;`7B)AN<3;6x2VWx~<ckl(+p9!u5_piaf!F~a1C$Ro)xVHxf z!TvOGG4M6;2*}r^b^z;l0gnW4Q2Yb;LU{a>rF<Q5JMaqdFz{F~w}aV!&RH^kFTuYd zJb@|F{T6r__zlP(0+#^ivPk()vZTGH;4|O^@CNW4@KW#@@N=*sRoc4_t_{8ijsd?i zQ2I9woEy9oJQREnya-%!fV964_JYAv;hqUj0WSoHflq=1!2f~=DdDwB`yYY3gWrSv zP;d+Idhl!DZ^6mX&ux?Tu1=QmZ3zAeoB;j<JO`X}ij@Bfd>HQe)1<w#;6U(x$_M`R zSKPs$fR}-Hg1-fS2c88kkuL2=gIj=;!SUex;F;hk@P6<(@N@77;IbLg{zh;pIB|*$ z|1j`q@OE$}_#wDAxJst9*AW~Et_~got_%Jg+!A~NJd4tqKe;I1`2OO2=TCF+Eh;Dc z`4Bu1?q7nJLH`Cg1YC*A1>5Teejhv@`k#V}!TmCL4cv<jlKLjP5BT#o_#ikI90{HT zJ`dgwE(g8^ZVcvjG>0z)+zLz^nTbyV*dII<Tm!rtyczr$yc}HhLur2kxEuI0@MQ2h zr0*W^9`G;V!r-!lrM>dt4&a-xmkxdiUJ4$A^t}kq0v8w}?Ij?+1Hm`JJnqTqQyc#A zxHI#=uzwyr8Sejp2ZQSkmGZP{g7~C@Tf%)gxFh%~xC-QR4U_t3;ocbB8{8i}7~z=> zZUFrY;5mp--r>?-67=hVX~n1b#DN#UeIj@_^bdlof(;|2y~mJm1onfw4SWW?9oz=| z3%EF#=aq5#HU#$t{|cT9{+jL+{+tB|P`Tz$&QVhTA>0GNufx3$_%FDB1TF>l&ES0C zE8yFZ&of%uKMJl7e*BU2zXv#VtmNU~vv6MmzDIWXa|E0p@(;n~z^{yv{?!D(1HJ@~ z0T-Zu`7;@O4EEQ9IUfAE0v?R;<Rv?t-nF1#9lVdyl|Q|}8^9C5XTZC_%fR=*RmVyF zeB=+?PlA7Mf{VkwGq^Y02ZGy!7lNCD_k)*^Km555E(`Y(WS9M$iTH+q6TlhZ7U22d z&%x)wqriWGxg7DQ%6MtN7q|yF13VV|9O>~T_%*nH1HK3Mf5BmJuRcNA&kb%5eg(|$ znK^!MAifL0ohh9BxePvx^!W?i8t$)8l=@p?F9Q4%@_z`}5AvUbhr`}i;9Kzj8Tc;T zt4xyiU%*}`a5UW0z^}r6HuyTy;{bRD-3R=62)+#YlGN_u_%DNdAb2y}W5IpE6Tl<D zYr#jrUxAl`pMb-`#i^aZ{tW;(2TupbfJY)cBf(q1pM$>vp9M#NUxHhLU!N-dD+mq; zmj{0ct_@xc{tNke6l{h26R-)){eF(mQ84$rnSTbygZ~6i2X8|DZ3Q<(`M3^lf%Gs; zllB&%e7p%>2aW{ueaxS+;AybG2K*d+20R(^zk#`4;ZLdQ(!b`A4+M7tCxO4Db|`=5 zfE!S|mp@0q{owu=_ycg08PYzti}}+RoD)0)TpIRvga3j1Q*aR6-<m1y(fVcai3Rrt ze+-@q-UCjfb}xVa1jm3IeIo5mOqcE{-~hPK1$P0T2M2<4&64^R!S%pBVJ{Bc82lNy z8u$pf9ry+K8o1u4(*6Um1w0z@n+x6x_jBM|HW{C1VD1O;r^08_-g)SE0N)0W2JZu} z1Fr>N180JZ&X)F$!G25dX@qAm*dOV$3OpbB7s0=Q{{dG6SDPd4{|);c!H>Xc;0VZn z2IhVqe-4A^Av}M86Z%T`GIOQ<Uf{REcfqmXr{G!Oli=OpE8ri&T}{${u6fda#Tdy= z!DS#H4Q>J+4gLZ8tH9Oaeg^yx+@FIBz`g2x<Oke4fQ!O^8+bhA=Y!{f4};r7|0i$` z=oecc?XQ9S+u&%(_XaNoj{si+F9bgUp9S{==Uyo74}|@O;2q%i!5bhy7Q7q07MumX z3myY5yhz#)g}tWWR*44ji3N88PXZ_OlkNw>8Q{m@lHg*CrTsq>q<kxIUf7EVUx51< z@C5LB@G<ZW@DS)1ULx(Mf&;-N75m^t&>s)3j__><?|}Pt@EY(-a0a;cQt96?a9{8z z;PK!o@P8vX7ySDM`~dRCWzt?f$iD%8295;p0uKkz1Fr%%f&HuCZ{S|=b7`N)E&0<3 zyc+Ha;2Q|fJn)ZjKL@T1{u|r|_UbH`_M_q63w#1R9Gpe%ApUFs&j4Qmj{)agA?>{j zt^w``?gHj^8h_Hjoxq=g7lRLi%QTnrH^C*FNPYrNfP1c$(*Im-rF#Xixr5|(;CWyx zxFUECcyN0uza4xBd=0#d>UI9)TP6K#3HNGXBRCLzEmX?Kfo~zaW56c3&jY_3Cgrz* ztAa0ri@Yk`e+O4-BRS7%8J^L2K2-uo4wvpN!MEwY;7>pB6Y!_t>Qv78a}pd7Bl#{k zEk$zfHPXM0A4;wPK0iTnXYdMY*YalqnA^4dIRx&JCHW!vC_R_?Q}hdIf9god^}(hD z$=$(Cshz=}3~=9Zl0N~@NBGu)=OF*ifm;oc^7p{I5dOShO8+g%(!CCNR6oh#;BA8> zTfi;A<G?GBzT3eg!9Rm%g3GLx{_O&{1)l|HfxFXll0WmomFT&{pHtxbaQ_{AkDhz{ zsjyDk?+E#};8T!K0VjdyfvZ6OICvZQDR?gA%deOAM}b4Y1tFgSwt^Rchafyh!7b=H z#Ghy2z4YARPmK-I{%G*K;3Er#v*9CfDd=wiN5lPF@HlXRjndwF_}>J44IB?{2>ChS ztMLCQcrg5X0-g;03Y(<;hj0%Aw?Tdm0)Gm7YrsL^o8Y-hcsEOXSHMldM_@kz+z#&3 z!B+5o@N9(d5%>_e{1$2d5x6rr7sC4?I19WSJbj8md@h5FOqHB_tF%{Uy5#!c*0|rh zfY(iy?wR0L7Rl4W#bAE}_yyd*25%TB<$ni%Fj8{CZPNdZHpy>-8=54y28W?Oc@JDu z2@lxTUdn%>=z}+ce-4xG7r~c0NPY<JIahMA?J_(IzzxB5aKH2bw}g8Z_!R1^IpE6F z?&r^0F!wX~^C!44+{^5c{>=lo1OE*96z~=BL~vR7zYd%m`q#jv!GD5(n=SpXv{U+b zp}FK*;GXYGZUg?Xhh#JOBk(BjI>;{r4+ifC*LhFsUjw&*`wQ?OxEJ3g!_y-|%GU-z z>m<1&_$2f{1h)*A?#sY45Wb_}*PBT9AD9an48NY1{4cSQHZ77wCvog{=8`U4O){y- zPh%H;--SPN;f;ca+4Xn2@Ie<o;lk$yJHmU_g@2N4xBr(57u+M_XLqmc!i`+Gy$kn| zY)>z%3y*f;sV@A93$JwH?Jj)4g-^Qh1sA^R!na-cXBYm}g<rU^VXt#}$nC=ZE?m-u zE4Xk~7jEpr5iZ=<g$KFt7#E)E!b@FvhYO!^;Ttaeiwi$<;g>F)XP<L=m2=^`F5J|G z16{a-3rD(eZx>E*;Q=l@(1nM)@I)7`lha@bpl@CJ)}wDD`ZlI-6Z$r#Z!`M7P2YFu z+nl~F=-ZOMLG%rwFYm9?j=rJvZBO40^bMnLNBVZ6Z#aD;=-ZjTUFaK0->&qHqHj0) zcBgL-`u3!6FZ%YT@4NJUkG}8IH=4dC`u3%741HtiYo>1;edFnyK;K0A_M>lq`X<pg znZ7CXwa}M7tpe%a*7OagZ(I8Ip>HaE|9=p7kpR)O|64n;Gjv2^s@dQ`v5{!Ba0!eE zb^I>H+<$kM7cw|FPMjR?uof!yQ&VlxK@@=Cu-3fYHyz$Uhnr>@wB<r=bmR)mnPWW) zwI0~lY>hF+QC#eSRC^a{3r>phZ6?f;*)7qM#OKs`G~_s=Rfh<l7vm{J4nusrTN_hy zV$#4!I>U=L_0_9mHJiJe&HZUtQ;!<F0e);(K61&UNVmY&L3}ug2P2eK6pf&CI&d}A zs|eDU_gL19vosW*Njpe-7RaE@zj-5lK5s%foYLk|oX+s&1A1uhdXw03)RVuEQycYY zlgg#sx!RL4DoV;xh_oejyf_ZQlWd5|N~h%5(v*XnqEZsG#F+%16!`o{<)m3pGWLQ@ z=f_&oJf}{WiFUY8Xl+SOrhUKZggXy~n({?TihXG5kObN=UejwOgTq>DyYp#Fv?nZ| zbKBZtwWg=0Y0F_3W7>d~($5kX9;c)ZZ42!oHi}AWs=JD|C%mm?Qj7>rmWOaqX2=sR zDa+lA$kUCYgJ>^&J{VY3D=yWbtYH+vNF1&h8pjc%detV*4|2a{pn%POyISPg11?pm zlkL`GziY7%t#2`(A*K8djcDE4l$4}h&JjKqv)9<3lE*H@3C%}4YTVnd_S#tK+^AUh zjCPgdyH%b>?9+EC%G-`-LsV{0?OM{^LLqm&rG2W+);N>KgTYmyUDu9bk?DG6yGHm7 zacBzd<E}$0gYG*E9hvScM&iKdWRo~ZI2*EZTX)~t)-m0d7~?w-EF}*M@+s>$#KWhk za$p<X{qm?dUlAk)aWbJVImdBjKEohIBPlQF=u)53bRsGpyJAbws>of77N79$E1=#g z2>ad2Li&n-R9Ye(E9=WsdFZhRDb%3e0!G;-YPZmcAUb?Ws|AFlAi?e?E7jZaIKQMF z9Te*xJbPsnEl!l6lP&mPOA4uHOE`=VN${o-Y^L*O6EoBvWJf0{$sR7DrjgQ)s8H@n z>2PZzoi)L&M&4RmlD9zG6)F1i2oN388IB~=7c@FA%@QvI$nAPxUZ}+Ng-N9#qwFiO z@PHL(q~Y15Lj{s3hh5AWbP~EH#Yb!$Pd_?<i62I(rdaK6jYE=qS7?{o3xN-Bf+^qW zG)mox>?E%%m7O&7C9^uZ^29ff4FRXJ+%{=oY62;!%e0U9D=NB+y?Au;w*2IeuK0Jf za5bT${K`Gwvlo23j=u1Vqs86oR7V<iNvAr1%9^)C<BByTxV0sTj&1Q`Dl);6i4q?{ z=PJ7Q6;;JnY3F*iN9T$Ms&3ehmSk$2q`UVkRCc@45zV$Fdrj)QTBBZVe7u?RHI>f0 zj7U$Sb1J<=5z=%h4xeusn?0>=iGAs?H?4XAjamD1hVO=OYKJD7+#6zEWaZhX!PHH+ zxcB~b>QP$q=^;3cz%?nn7;&_1oR4D7esK7R4m$kBEg!sijx$=b5!|kp?&iLHEWAf= zg6LQ*I`$(mHPy_gM#WK|S{#e*$rEudLYKrCI<MPo(;WR#A|SeSt&>cAer#HIYO7c> zLsLXA$zx!Yu>#iOx-NrGn-(1}_lJ?<OGpYG<jtoGwxJ%CC6ih^;=Eu_!RH4F1*fAq znMT1pji)KLSy+EaAg$A=BNW;_OP4T6ad8Zt$J9drblKA!0&?*)JT8uoGuN9+kk;k9 z_P~~l_jFR3*Qi?f&@ZW@SI%ePWFb-x`|?tVq`x}yS_-xnf#nL%TTs=qnj>FQz{brX zMK(Rfy_v2p#*N@eOS)B~U+$*hkkuVUj+{7x%zYHc&Af6Nsm}zCFk5Yw6zu^^H>)b) zc64UAR{!3U4tMZ$WDOto$d5K#LZbU%wVQ2SwWK{O)zUP$r#szU^n4d_F{C8w;V^TC zM*GDr9yW0_qE5q7I5b#y_@#oZkZsxW1UkOzd&EaX!dJByX0pbcr9vR}ROyT@FGaK? z9q5>ztXH~IdNNnyHgT+Z3XM|I<2KP^r6-(nyr?(7RApO-n9t%Y&kF2B2R5hpsFPG} z0{SzRPOzne7ByeIsLG9oQdFY%iYhXh23hr{C6ABr>7Uj_F;wBXbwG_9Y13n($<`zr zq|s$>X%R|e)UquT7)wWjdNyd6lWm^xRC9{2c8|0zo}kpM<zR@?>cbCt&ZQS2dy~kE z49A>;=l!|Ro{rB{V&BC=(<eRM6=7ym1|1G4)5)tOCyOGeuW`sHq1tF<nF?2$CB~8z znu5+lkkyh&vG5ou>c=Dv>}rt(!Plb)Z%;UAXwi7BUm&j0g7#b}p(DeiuD-p*z<!n` zpYCp@BfGtIup;T5fs(eq;!C~W&=f9l-7M7Di=-Z(=3uuBtSy>5$(#!*)Sbs~KC3U% z(Nle~7`5okv0OuXObU|nnq(Xm`6h(=nK9<nG|ih@EfpK<An``eJ?9(((XGW1tjI!H zjoK(JeEAY=j!B}oioV1`Qbb_fVy_ASL_EChQ3>)fjMUGKOSC47U-_(LZ-%oSr!Hoy zfT;<A&NL4O(aUA6F>qC=WVn%Hku=!iEl5tnTr9#Yefzo(7C4#bIOAkcUBM9rgwx7* z-qSRM<V2j<Opl-RBv0wdZ`Z^-gJ{uR<~mk=Qmkw3DZ}qjqBh}wRAEosBw0+p0|q}> zL7pq?D^MsN954|z5BcVZ1>LFHjRjQn$3mr`FBW3VMSmO|r&6mA2=<&*(eB5Cdl3$z zgU#ur_;B~egrh`62jSRkZ+0BP)EtggTXQ{n+lyIQ)u~RK_9n~6Wzx%h$7$8xguR|w z?M+d~Vb)&Msp?dpI_^c1?hchC&KmbF&xxE$&o5s$2Y22zP9^tl+<v6Fcd<y<!_0k% zr^#b!y-3M70ih`|7Hab<C#ZXorxH!gCNFhEG)s6b@It_Gq`Vi;R8^8_FLTnTdwP0v z#YD}Q6!qcfUXC93;;mvt`)G2nifMtd6pS=FKUij!802&xcu?K2RKo>X@XXQf9XksL zQ>QeBNA0Bt-g1IWv#zfyLlHCEVyubu{y^gmpK}nHXz<QQMx-fKg^wV1G^J|x+MWIE zXv&g}F+FM2(GsgQ^Um2~gvn;hv{-piJdIuzXiWKYk+)i6(__3nc)9V+ofw}9D6>vS ztf{#kLuKA#6(^N@FL`!Zeb)IINxkPV>J+5d_?@8E{7h8}bT`?!M^0@_+?5&$rkd^( zO@}DAqcISTZkv-7kLlBGZMW)HSk%%q%1Zq_n*Na5*J84|k3%}iibsj3uA^EqB+DF= zo@Q=u$}q`0z-t(IQev3JL<NlBPf?Pj(r}^s9j^AE4ZR!jYLlKAG$pZrARR<)OVqpp z)#ln-f=n^)6Fr<oC_^)SC6VS!RkfM+k=ckP-R?C0<=#tI8zdQi1>`j`NG8gC@KtSv zlRv6Um{%(uE$KFMuqB<Q&r*5ukz5e=5ilXu(URdkvxSt82nd<(31*GKS#>;l2!)O# zHz)D1Tvv-lWAc$&oGLVWOGYmN^xYsd)=lZ?H4*t`XogwOJ;YBjDwOe7OL|HyRlnZT zh@@N7T%|;xQo#|SkufIfSjV?9#ZWcqHMC^49gVjRqFDi^B$`S_?+bm&Q(0?ciP30M zsMD3~@*7qTh*@7SA`=Jsj9NEtCXh)z0mW=u@3En220kkq>K&!>-Q(3#w?uQMhw;L8 zUAsm^%Ne*b1F0`gBLZ5p*j1wZCmtFa9+Smja~wU4d`VF)$ui12WO{Ck`Q{NC&t%~_ z<l!?tzr_6iaE<w+&f>C053<A#)NDC<684bk6g_)Dq-FV7%%*rZQ&PHCnR1w?QG06b z)2*UBlf1_OFDIy^a)i8Q4<;?@%5lj0w8?Gk><Uq9UPe-hp>}EVR=ZGgaW&zHabRDY zC5fK?TsAD}X&oay+EgiVsW)e(dC3!JPjsc6vkH}&aBB5o)XGf5;(7umi<a(iVKT8Y z69Z|W$D=N$Ob#3uF<s(jnt@_9+o;k@j7y|hh+O&6<O8jjvYgH?nIwjp;%U|t501O} zCnmPpCmnHQv?sTEkPFkC*D8gBI+-)M5}<d5aw(1n&x5*~64R*3rCDJ}Q@Urzx{3Rq z7%NpmQh2eDjDHAEfahfmed(#}-ceI4Pz!_l0KR0YJW9)QE}D-Cx6-~{hl@5XyP;!k zUAr(&g1)EOI>c2I>bxX6hd?FiGY~3S8Bb41M}{#B?R`qEJ-}RL$TcAt8uvIW)}bO7 zbonaK6cm|-zNYEg4LeP2^`3f8qP~*PN!Vxlao<u&1WFS}0(mYZ%A8kqNsJCN$D3l@ zYax4V6(uhdO`T;UI<=+nsQvH}qR4Lg6@*vbXW`mI<7EP_UB)qAG16?~+1a7No<pmM z@FE&Y@3_SHbUBriZcyzdB6fe|oB-YF;t*HeQknxE?mjpbBb_=vGgq^(EB%%QC>oPu zy-kMIlGihdR_b}2qb!{%4}#OFKfuE=2uny@9F6~Y$WM|Nin5?~G^HfQ(fAAxPiU?+ zwtM1n4m2cuO@CIz($i?dr+Zf(&Uz<3OL2YkofTOz)j2XTIW@^Fb4xt!JR}p6((|lk zC#!a`kSux!9;-3NMe|AI+A<#DqCQBnMRPi>wwTuAL^0Po!5q_{TDJ7oQB2;_ypip~ zH0VV0VtsfWOfz_SxidBLrD2UUQY?}zJ)j2qlncp<Nie0v3$MLJr!B7)r1l*L(Yst4 zy;jm86_P|NKB$3XPjl)uCZ>qtvd~~3KCt=!EKVMZX;EGhkDkHo1@);kCSN*=0>o@I zcTTI8R<c47;}_z>q>tFq%rlXGdgWyv%K+<%nnT`4K%}6Dw=_=4ASJoOK|{*P?!$d5 zVOk22X3ukP0iY$>JY3H4@{(0N{J|oQ;^57u90Ai&0?>i>Qb=vyODPQa%x~^Ei||va zr0$+ItuL+N@Dg8o8=$iWpa+T)(I6UZ^lH;CsXZCNk$ozo^a8(81ASIy^TC@ezcNsk z%KMU&Z_g1o+JV5EyqE!!4F!5~#rmw{#N&;IxH#WBr&D>RNugc>fk&2-%WjgYMavPY z@gC|l^E=Qs)K#TzE-ZA5(W?pfp+4{0(9(GDsr7gomzCcKiI*SZNhp5mYSElb=S5YS zVU>+QyLb)@UCeP-vyFFnpk{%_TyIqvx}+zW9f22=jYQMX{@?u8mE<ySId$!+o(*3$ zw6k4UJle=c_-&Y8CwABHR<5OIint`*O7#4c8rtuQRV6|3#;)OMMwy0AC>0@5<meXE z6BWKyrGL7lMJdlla1a>Xi3EB5A;QS6r;%cf6oP0QQwF`3Ni*A|U%qMxB~KJ>xkJW( z(#0x~|D;P#E3-94DM{H3bXZ`g|KzF5JAA#qO20(K<gILRJ*{L0kG}YlMGlBLnH&_Z zTWMl4wZXA6gF2g91JkOaz+SqVp=mW~JjwRIX-lohB-$gw^Qf$k5Okt;lNcobZ$Y5; zHZ`i~-Q9mvr}~omc%p9lZw4^9;ydw`y>hhX)T)yxnD+Haqgf3kr#T#`mZhpvcNub# z^;sSBn=%m!Pm7CO0wQF2(M<>quDZ9Vw50XK&z=z32?iV1A3?{&8m~8@k{;fdvuedt zYUqxw6c0<J>Cd_Xq`kn?B_MR4h@?bq;ngtp80ZnfFM6mAsW}N;ZJgJu_?8ljReX!d zKA!GEt**{|rmtGqS8Y!1ciNha<IY98qs?opg5QwwoFTK+@S3(Ps_WiX1a+29MVxbk zUp?sxgwBGg*w$Mx6?xwUQ<3CBc=r%HwqlA7;*nKaB*?E5(`l)R&AsC&_IHv)@X<lE z$V<MlQT^)G1Bi>tD>yNha-GK2bZgLdkRIPkszMO0_N99wZFJ__n_#mQYq7*gq{^Dt z(8(8&VHO%w(&%=oQdSCb$BidS>#)h9v>!o6BF*a3DV{{F3_Y^cVAhyep^9>}3@vT- z5f?`tYp>pOIN4);xv5C&%oPz*eU^o&PP59gyKH4OwPECHE{-i1V69;lbs`D{5iC8@ zbdRFgDrw~539l+t4jsEU8chOc1!{_>aw*ho3_FX`Tfxv6OG<R323Z=TSn8-!K(ZBT zoxzoZQtG?8HBHX525Kz&QisM}EhNd5YUBCi6djGN2fZtI^>xEa|8!IW7-Xa5=Q#=< z294bVqw7ADw!6{H9<5#uXDnCO^2YXXN3#HDqh{}3SfIuk3-}5>H)_3xB*H{fRkf>? zX!gL1ljrJFXnL<Qxe4JRV2)h|+nD;Bqk<!N{y9z46R(I=Ke+`>Td|8d#+;Zzy+*OW ziF>WAtrZ!QV2-7sI$mOzlJ5SFz=IYwqTmrN38v78MtBLO5+tl8#S3zNk-|+;J&JM{ z9D1hGR#Dm3`w#w6X@VBL!N)pC&1q4N<grK6B_G0h=N=BXo_KQO)Sj+B5+~9U)8CwC zL!vsu>BS#KB}lAavkgq44KW9#Q-SlDg^H%k2z#37@JncLtK3ZM<2l57bTDl~wJ0`> zb_w%VrtJZgVWUoE1dWPVwc3-8JabWssOPN|y9>8Yx24f;Fp2Rr{X(k-^XO4m3on&5 z$NE}kq+viTxX@QQ*aIwdG=0o&z6eWdC9n6ra{$z8I#b%sJJQo%RE2f~O;Fd~2EtR~ z%1}p`G<FqtS3zx^9bb6<I1Tff20GS+(u^NDx~SvcXp@v~OHe8ss$8;jFH*I}o|@_1 z7|jahE|>ONKlgZ&rfNDVY7HHsWj%Wcebk^zadFboY&B|!&+bnbvnh$+dS@$kc5SY9 zHHREDeU&c{#Qa1&C$i(K?!ruI!s7)r$Jt7|)$(FBSzu_Hr^YTSnjzJ!0QA?96aq~P z5#bRU^DOj-Ky%TZrg~^B7hH{(x|-7J>Ly#Ulp_r?XXKPgWUP+j&J*CA?=T%o?hOWe zS^O{B*{O@*bu87Z>W7(rZ(VCLU79wU$fG|mX-1#tdDHG$@6?2H)IB-^rqa~Y(%`PJ zml^h2Ayd_bI_ov|#9kV*le12WI;u3W?RGRx60`7n0X$#4B$|{L)9Lt~D_59Nsa-Af zuX``ckrdFf(DXi<Swece2{%88cpp#A{jgkhLu_e@$>a$ua~)47ab(hV=3O&sKwFyf zmUq&BR~tOfUhD?W6`apF%f}N<>(yQX;u>IQaUYLB89q{>mDM!MN<`8^HLRXMg+^pF zkhPZPpsPl>M4Z*RpvN1b<ath+hBp*`?RPfXvRrZN35ZM_E_ki!x!|=QX-`&e87Nf` z)$KkXzbZv)upzuYAMjF(p9P|w2Q}VENn>=|H4#E>GE^B2d?o_TUE;}~ViIU#Oh_zk z)lDx5sJ>7Nr|(;Vw(GHpdr7%_bl!%tdQtrG8B%9)@<VHlziUc3Rbi@FY0rk!tF67m zjb3g2$rEhun;uW=AZZmq8#)z-D>*&MB+q719(d8REXbGH|3O{pCtxr`PQd!#?f7p0 z%UghQ&?P=%{F@TnxsfFADEZFBeWXw$Z#-CaJSzWhv8cX#|EodA&8WNBB61E*-9^?- zGa}8~@S1BTIegSx%z5h@NA}1e7aoeu#&bw15wuGP@0kZ1qF(x+LZQ1w;Tiz6Or!so zASgC;1OnrC)B@K(PAS@HnWPdygZjK3iq-(OBVTC$Gz-=8)W+96f@)XEMxc}>>&k$s z?9Y3tZLr8)-Ba@|&C#&8h<$s30UEu2K-{-oD&%ULKH7DBPw?hCBD*vfrK@s_WF4h} z>m6?`YPKvx>qr$J?LUW#uTaw|hF;g@ssimI8t!|rH=17kC?(kQOLmnP)Oh2Ls!T+0 z1x49Xkpr(+PVUw1V|-dn9$~9`qQ~7y&%veIg<7q=5=|}&<Tqh_>R}R(k-I+wJ&1>< z2nEe1vzAI5TE>uWHD|{csAShC#dm5~_V@G(P?1rmf$|&c@mD)7_yjHcCZaT6Cnu1& z<uw_Tl43Rn&6EnK&0fT;M$e*R)HsMvS<+~)DfUoH_>iJI(_XHnC`Cy0cHP_Mie=J~ zqMl~Oxe0ojz3e8ac&>R@sH7>G#GD-JT5}?J4J*qk^JDZzktZ^-ckZuTl|Y22@I(e= zs<PI={hp8mb^P*H9Pg^Uu%qKIQ+WP9?>M2==vJ%oJ?dcR!${nUh(nOJla#w@CDX2E z8~{brn+{jh)B&U*(bho}MCyOiA*`Ak?x=in)zTa{(w3)Pg4{dOnxYy5xSDdJspL_Z z_PyZ)=%U5jMVfSL?#>g^gG^~L?i&$H^NI%LF>eV=`$#3)=yf#f%E<*D($lUdZdMIF zPaPCzZ{>_!Cv_hlhNOtV>5iEFToorzXlWvk$jLRuK7HhQ&^+L!q)vBgDAVbEv=0$2 zu+gi{{@E>LTa!--rX8jKtH-K?hjoORLnm{_N90&AB#TCie5C>l(%lxX@$T8VK(HWh zvdwR+J=Hf#*<)F5k?05{iv{xA_Uy<i^_~tLkv%%(M6uN?r#HaDDD~8+Cn&eN)$0Lt zxNDL<6@G|kPeX*UbwYZI`-Xnb1%PVX)+U}2LkC}Kk6C(_Z>PQaikku#9G$jVlq-DR zlSym0Gfmt2B|VSgx*6ui1Fys|dzjejOF?IZovJ8LEgLt#>{>J+n%s>Z$+|T=r&~0- z2yPxk(!EQM`LsBCWc#XYs0dNv(H#Por5zr4mq1!Ot9`b&TX>vm^Xx^M56Q5k$D&D2 zwIU5mdub>rwVk_~#zFJW;Y6-zpVX=;s(!%uxWRdB*d-o514KI6$w(4+N@p(px*pl~ z$DO@gvZ{{=smg(VNnXVvdlbHPbUdq~XuFHPygO@OM{7e*&{Jd8?Gx6Z4wA=hj-9g} z6I7MP4J-dQFU2%WbLM|j=Hev!i2qZ-HMeW_8QrdlX}(K`dlGk}V`BRzCTY!w(DKr$ zC@WQlTdARaGL^HTc~PMQdCfVUNU5>@%OOKk5o2S!b#eTlPl*pycIdcQuPQehGExyM zYBbYS5@P+1r#nO~M>*&HW_1zf)byHo*j>P(=2cp@q3mhzCQFqAr!9>S1=DGwv|~<+ z#$H?yqG3RqYDv45*~A^Fv7IXfeVd|PXp+)tdmgPb1Yv|r67BCQUWNM*^LB%(tU*ls zv7wUVdB<4t>?yst7fA2XV|4^j5%m%Wm5BC)LJnLIzxB00$K;7Nkz&UP%|OZ_b52Ar z&a`yFI*?{&kbU%PX?=ptL&i#r?kbwcmvV?z3WR94z#m_M;@iLxDottGlk*rurS0QU zfSOb4Vz0FVhGRiuY{G6%YYR)29PMI5W3P1hmBvn&DlzTBca;F1UY;6mkfc#Edz(OP zE8||tK~m&fn?$RP+mODBEyY>LlPFaVVvi<M5^f*Oyih5$PDo6m+0pL(D0M*SZ@1dS zd(g8N>W*~K5j7p$$LL)G!J~|>5%d`jQc@+L9&x(&eTpG@wKhg~3ABfI_AXLf!f3Q1 z(S2yZMbJ~lq{>qg@wU_o26dK1zO~&lpJGoN?C^QT9utc7_)g?*n5ROh)Q=%iVS$_g z8p{niu=HBfY_ge^GVZNT;ua5WY$~@n^O^0C_W3lGa&D=h87(R6<C!XjIC=PWllSMB zLsn;e*sQm^AL&Oa>#1|fiOwV9dQzNP%sg2zQx2C<Vb?yPL7J4Jatp|)RLvdnAt*X^ z+=l025BgVYUKd0;zQ`NR9H9`hh|&<!dKI9u<h3q>DQ~F@5s!6<;;z})SA|19QE0VG ze7e?w<0?rn9RNuAvLY7y2c``4RJTx=yO?<Od(gnHbl1lQn+9s%_bh0p7mF!6t7*Hu z*T;}u%I6JWmkhJeR8%j0Pb7>CtgkGWQsF5{w2`2Xc=J0TnwKh89QY9JN+V85Y}8Ys zmB;mIE&)aGdE8Dm+bB!Y%#=qOE811EvP}7w^;vgE(zd1Q%3C`M{A!HvJn5}x870wZ z<F**h<1$4QXphtXEXc!Kp0>Rd#>GZ-zQU@EiLjh@Y|?2@M7ljNj;CD!RD&xX4apQ^ zXH+$sqZu4>H%SluC3+h36PCK>X=yaDO`CPlVL{?tAF|>e8N0YRanajpi(FQuWhL4w z+aVs-s_RjrJYzA9M6~<JE2vbyd5H!~hFj&mqECa`Q~ILqEC`)gdV54iJ-NSjb;R67 zk4{pf!QYtvd{29ch_e=&d6cI#R!8S5=vL&#^}2;MUp0G*h%$IBcDJ!<&vn$Nt3BJ% zNmnUyv@eUJKy#tfs8sExhLTXukK|%24=wVZ6b@-@arU2-C^{Nj88}79;gJquRg6&# zG^cwxd7#n}sigfj#*>Qga-gywNo&~Y!J1%ke=+K0zauTRP;MI44X52BSLY$G#{cii zJhvr*kK0YAyVP49L#2g!kbTY8@Ho{b8Q$w9(&4hDqwuqsj&jZ^rV6k3;_4zy?+o?U zEK0`c2)H8ZEAXKy@&H9u=#?76ODr72TRb^VJYIZD%ezPIk*tHM`Rpx&;g{py(;=+H z-n*zxbd7w4p4zOcFnft63F;|T5c8EW{6f!DGu3{Z$<~Fp!+Py0K`jyPyG81g|g zJ~W2S>%QpRPR)%G*(Ohe3^FIsW4lveS8XG_Wk`Z0#VptH#A)swqL>nboYRTCxU8Ev z7{|j4Gba@(squ0_k)rixa_*L=xs6hgmgj08O)Q-$&w_C{1ovd==o0D}&_Q3E-yV`s zZrwnOxG|SZJB@rEIxPIB<J4)hNh?iC6UWwTn+oxM+^;aitrJI(JRJ0^mXspY)a!2U z8<?7??K4|dCKq}MAc?soqDONfDKXZ8sWi8ThLnATl1pfiDK_35#%BY1wAfBeiQ}kw z6zOQP(j0xcXSw$KIwfVepTn(cno8r{S5Ncs6hr(kPxEYJNzytSR1x!@sKPazj;c+j zS<1A1JWY4<SStCgM<Th(HR{R&fau_mh%O<m1G|O<Yo`wCV7=J_aZ!bFdD9$)<w}I^ zA1m#;L+1q00%x&e-hG=tkqBfeRgYX(vy~2g%YFn!*Om%fl#QN7+6QQeaPY<FIk9rN zPEa`2p;S;hna!~_>L%LgN$H-tX^BZRL7ES{;4Y-tqJ$@Ydl00CWOAZSw%Vzl<Xogf zgLnu+oZI1DOQ*CP%+ns$5TWJUJtCA>zVR|O3M|c7uxWKyT%<h>wA;l}Q#Gcn%ETl; zsp94J{WRq(g?3M()sP-y%c64UL7LG@!;%9dESXw&z2Yr3v}ve3R%hyvb$5j@b4q-g z``lT3&_g3yb8>lT%_{*RDW2e?)i-j8WHdrLB+?F{;`DVd=@6PsrMXMnpg_+_B}6o5 zqS-@_t<fSA>2(6#B67~TXNziao*PNsUNM7K<D^)X7ra+Ll_Rkoh!@*j<wk{i9xoLM z#g&}TQcSBjWFc1OZ))^|q%|9EWREQfh>6Oc21-**VJ2Egn&7d}(c}nm6n#oiVthnm z4BzjXhs4U{fi&%|kiyIEQo42VkUq|WwDN^Lp{9fTTuQ}ow=R4{qK(_FJS~*WdygYE zgZMU4qUR;hB&k$?7MyKJ<NEYAS7U0g42`yi$0MNaO8+4a-Az_bO02o%*(n}Ul!sA8 zUrT>o%PKmn68Z4!5^S<1XdmD$h6;H;36D8(bF*Dyd;*>OlR!(<sHx)Kl5tbe9&vUP zWBWGElV_wTReIqOZ77Gdk41A561zk2c&^4YKf9p#L#tIFC8%p*rM^lG9pOwV@0K}I zh=QY}3n#d1VWc`BFvXHGFqt+<<)^mV3fB)bOVs73NK>3sT`KQV+;=KjI$VrSCgU+3 zUNI5fhGt@gQAm}g;GQKZ8ByoBJqlfHk|YnG_%_K^oo5d<&R7$#k~*4r7+-l?!#ik2 zr$y6q#pb%+U)c?n1L78DwIgr)s0s((2;({2HGygu+Ac5I;`D4IgWUY1f)X0niS|UK z?GT;awfB>ud=Daf{i)%@s_GUiIdx1-NeoU;PNiC%M~+ls;__l0*qZZ9Nmupo0PUpd zdW4&(K*<kVbVfix6SXO>S<w+pqGqg?GdJtwt)^tT7ZcsYR*E34)}_t%T`g&gQW=P_ zxWrG?=$eKpc69C~ym9rQjXX7i!dbVms~g`t@=X>;qpr3yKb^%%v?NmBvxwuMBkyvK zwW7+t2ac0aNwc139~_!;Ev-$hSXY-KN3)S<AE;KQw=g8*B`NsD4yC1Ak&tQ0i6tLT zBopA-CpOX0)meSiIt4<*oz4R$2e(|XZ=*=JGPMMpp0j9fP*aRm-6HQj+f+NvM~Vq@ zB6Zx7S|!GwG<A)bdhc3tcS~L2&YEs6jy$JZPT9$XVo7my9S9W>^&;;&=%z#7>79Tt zdFO2$d`VNQ%lYx<qJS+HH0umUBz<h=ply>X7v6@*HIv+|(zd_@=wa7Yea^JDMP)l2 z9VT`9Ok#}!lahLwtrn+>nkzw#fQpqbE*nE>2bGqu+GyxbSK?D4(-mAP=XPtkg%fi6 z1FNw!g=?&oO)PvB6h)3QUvu9NPj*QjTNeclq=SpR<gm&IX!uNKm5MCM`po;t6qVJ8 z$WG3U1efxo5~aF7HqoSCnhIhzg}v1#%6?ZoN0v|U<#t&njlt{kLeGt=#8k(v>JX)e z18thC?i_n6CZRSxrCPD9?<Q2F>9)yc5p-ziE`s9T<R+AkA}H_U2KuG5lQv{rZ>c5G zY?N9dt+&)Vgmsl#63=$2^<BB4fk=;g^eH^&jlQ;|qej-%f^>*u#DQxM>cw$O#mnPU zvz<jnp1LHetwgk1JIdY)<mT4K;;E)`9|N}U!C6@eNUck^$B|>1i)h5TH6lGVY`Fui zG>qL_*<xfoBcPtUIWaP()e4qfc$YMcN>L74(d=(JJG=BaDGW-lu(g#&ROBLG^_?u% z?kL?uRVj+64iH6;8tsWRpUXo>*iDG)XqV|0ZX$F;xQIw^Qg}8!_qYRTlZklsG#?jt ztsc3H2nB<ru<tE;e{S`iHyxK<eceT!HV$`p7E_S*do0Ag`{^>I;o>DdWT+qAmDT{N zvd~3_65f$0-aR8xZxJMC*AUA+LEyQg!$&)fm}49-Zd4AGMe^liM56tOB`s&wAeFPT z#@hpD0r5b#w-QutoRq3jEtQMLUcD+;m$4A)HPPXZrX(IBN)zvz?1N4YCmNEW<IPzz z&SXFK+wQEM-{<g1mpG@3M?r_JXpU@jH>Fav`z#WND{NV=;-gc=FESe)>W1j(PLY&V zf!26h;$i<ggZ_?6$)srx^!(v7=81bnrZuH#%J+;c(5q{=PIUvKqhqqNOnnnG>eg*c ze<zt}xF?NH)rwA}#Y-U?V)aPHmZ(dzZgg};vbJcfDMExHHc9@QVxqaP(Y;bK`Jd>% zgQ)k!f5c>&qA7#2IOinw<+CNCX_5u+`XYa#xv|ba(A;)wY_usxEYDM<<d0Ul=tKE2 zmCAl}Mxr&1dW-y9d{$O8ofA**1*!FzHjtiI{Hu-Tw)T&XN$4LPN3RZ@e-UQoPxLO_ znrfi%T4=^WUke>>nPxSmMkmooeKa3^;`k|*X0aKfW0PX!?i8^!8fWDNcd<!y>=soK zu}QXpln`-nkBg^+I0&U<Tq<<|)8dF}WQ2dFkzBfF@`Jz-O`_%$N?Q6imD|7l>9jCI zbdq?r6CF!~aM3g<YN5iS{)r}2rBQ}ck)>d%9i(mbFDd3sN)Ooy#qY^{%3ZRF29+Iu zaSWwTlzng&zs1tqGV<T$*JMj<G%fz2*a$m9l1m{t&1CBzZ8ImuMe`3b{K@9z7(R5K z|4pTdnW<@Fyf!+S-rQwTqVveE^Ka>5CafWv0v~J6GLS);RJIf)MQyeiQwpUlMKFo; zf&NXQ;e503NC5j}8)y?#wbN}$W;2B#!)_pUU{Wk8rT2~Q%YIl5bg;O!S)Do!8`W*l zut7ZofBw8taG$|Y>o@u{Co_F&($~*m$nnfzC_;bcTx~G&&-qhGmVZBK@XKY8zZq7O zLm&Fm?}j%FenZc_Vl)(_zm-px@`wAs`y4+N5FQw4eok%bCuPuXR&i;W)Xu9-F{3-N zV~@7&+c#~}qj4icgTKq%C_i~oryQ&QTz{ulo8Et3IoH!+$MM&bj{<v^dh2Y?_id-z zExa;z_8afVe=xGh*}ID>7TF!2nNsMZevSO<z5Pkol~q?p?WkWnu57R2PiM6I?m~~R z?^Rp*G<?C2t2b@9StEYg@`tTf=h!l3=fKBhN_^jY<BL*1PCGJaX==0JlJ8cZSMto9 zI#HE#wJ#RAEdKt00)=jDADeJ&Q=wKJCoMg*<>xu=(o2Tiy7Xdi%Fz$LO6>mkfV!sZ zBfmK9*Uvw9p=H%K|21XEwac>?&%L|s*qna*-^dZNEBx+~qh-q<eX{#<<v*(pu5+{N zziB;A)`|OK#GZYHD)z|ubla^{Guv0nUG84j))}9l>i<XILgs^~pC3qwpEYqw`!O{~ zmW*l{Y3Y{!&lgX7m+X_gz2vL+o;Cm7KeGI9dpGnC-+FrHUmv_IulKjZLHp)4%F`&V z=9R}4D}D0DU*p$w{_<~=_1K(Txd-J*uKUM3`J$&^x6b%-_tp#LfB*Hh@Tmh|Og->+ z``&A6m>Mk)T667eorG0+Z@e>O?t3flUJG5Ys`Jq*ljk0Ma_aA(lrs^z3SRniX1l{x zF3r9dxMJUcrWvn~{^PrG4}0xg)iUhsj|Q$@k!$?^5v8`jXjlH{t8M#Cd#%CcbYrsz zBi`-%H229edsa*fulf7uC#DYnD}6={zdOGcuXTFC#*aUooPX}hrQ_31P3set()mD# zul&EeyuDiUe_wt1`Fq9M{5U%L`U_K=<j~MdMUqdJURrxsg(_86)(p+_;Qqs<-@IS9 z%=^9PuXrv0xcM=gj?b@gyw$5iJ3o8-%F{`CG8#`<KdRl#Qt7Y!k&@%V-4(5O1l2C| z$Kv1<@rkQVj|%54Q9A99%Jb8fwz||l<a+;)_v}cB{(f`&-Wk^Rt8dL(d+Fr1%bjyf zwd`nf_wD%P+w00k{o7-B<y&{BH~eKsk0<y4s9x#L?Du=zd81s#_BX0DyRp1o&wLRj zb1yspFvq%?^V%L7`)2QnnKc$#hxZwLzHa;Q3$51A%vYuSvGd*g>|WG1Z~M@iQS%1Y zOPktb%nvo*TwAO3C%?Y7dDMu|iZvQ{iF>{~EAYMTAD>@*u1TLpxi{Sk>N5Dwv_1jm z+;v+mpKF@9mTqOf=Qh!o|II<)SLiqT$FPvT{9A7N7N&0=`ufwCKl$Gr({9YOnAqIL zeDVjnvK)U|hV|?+e*CNaxa${EoD2o<SAN=#qaV#psU03Aei61*w?0=@RL$f%sH%Pr zl4KwH+N+;Re*ceFKL_ru$$Oz<Lc-TaFK3nCz3@(-1@GMa_k&s2mhCSxaP`rTGDN_= zTzW*52rby5Q;_lewRhJ|SY&)KvcbggHji)D$~UO_kLNetPL4aab;Xi>ZT$b7eqnw7 zvJ2YO>9NQVFmlRUx%QSFdu;5(fZ4^iUO4?^M33+8eE+q7`fCT?Uh>tSnWqx>H;aGT zuFu_fx19ZTQstWM1_!K93;Jo}Cx_dGJgnAj^4G;~_-&|j+Pu4MqXolXTf6w3;>~&t ztkBKc=#x1gzV_LsX@57V``5&-e^0v_*~#23_sO_bYYyC4)o{t+m21rh7k=Grap?@x zhPeA5f4)6O-qXf=ZB7Q>UtfIU)G6yi3tn3kGPY#M$)Rsw+xFYu5*1@t?E33$RPDwK z%lCR~`@L3IpEX%^KQQlUzd>W){5&Q#Zd(64g`1R|x&LP9*@p+Cl8?`Qt$gV=UAo$0 zODrq+XRcRcdQ|E8@wnE#mZpWiSM%yCml_u_c1}Kf<IcOw1|>%~yxeK+!Y9eQe=RoY zaGGJs)lvH^Eex4hsr0hF6Yo|ix_8ydoimOtEZuYUdp9dz&iQ*l#bfhljZB;w^K02B z@0ZH?wEg28g{M@VTWRpjNgb;!t!n<Vdf6){uU-k9UwuTAPl^{$%ZeM+_TOrGe)?kQ znhiZHM}Cgmm-F)Z^Zot8d*pig;ieA<jlQ~jLc4J_m;bNswSLL<R*?qJi|+fP@`<`% z)R_87La#lqmYaVktH<E<vh`1HUO28=SjRCxOh4bp^l^!I{_cKe_|4IU{%P6d<d82D z*DZg?R-#F}QYAl}VX#zP|7)R+g_{>^Iw@mW^~iy<8X3)t{~5fo`s+g)FR4HKm#?B5 z?Mzx)aOI^UdCrEl+g0mKrJt^646bsh!1Kp7(jxNAc{}Fr=s`(eTx!1MmqEpLG<|)4 z&XPTn=FRcDR_}+eI(_hat5*(B?zMPwleY68e^~WmuNN}|zdCZee4TA)dY`ryT~xH= z-<L}!d^_z$jYl`KI(IirUHe`B>kIGYiW&Td{|)1w!e^@Nef)i{i*t+ox@mpoau4@@ zxG`nmE5~|tf70PSzj3)2w@dy0(dxk)GuwrX^568l<k?g2UL7#tQvPcZQ}guPVEg0g z^11WcEgH1_$qb{l{N;aAbN)Mi#9w1)49eSe>g~K4!EgRpWY)+I0~`1M=8Hq6*W9f9 zB<jSNN~I=Qd;Ye&Q0UbmPd^VjQgin4zYqR7ZeoGgYaPCD`N3bkmV9NdKR7F(*@%C} zw}1Bc_$~=QUKu*A)5axH;hPV2o%8y8+XByDyLkGe1+{M;54>{wwdE=IUMc?iDt}A! zn+dI}zqk+>{6$jpva<$EoMTEHb*$Z*al7`{|EWVS%fc7&CE`XU6dT^J)#TLNUCWMn zaQ}FoS#<{$D-^IKZGFzpld?Kb2`w4as)04?eD2COlamX+S$EW<`d`I$AH8?zvL+#C z+K<VT+2`(*lXs3cDt3Hz*)50LFJ2fr`^w|DI>xs#nQPtMRI_`5WuaR_ug2%fA3XTL zm$Sd9(7IFEgApI}Z2ai>=$EB;Y*^g9V|UxTR|213HZ1Q^;NN1st~EGv;QjZn)VQ86 zecy_JiQj*4<a<L#-l3(-wu}mSck$zbJ+el;4EQ~+M`FP#UsPM)b;dk@W9@&}%pVu~ z`oQ8vR;Ep;{ZE%Vx$^vep>QSh?T0hRcg_1l*A<7GH!t+kda}azlV&fNdhwOl?!7Ui z;#-p^moH+;_j_{jI{BwO-=21B|F*#+Zj^pjZdj>vM;EVOk~E_3m7PBn%(d`Q^*u$K zPWrBEV9KS}TmJj!4Q}dH867YzcRukbDP+v!w{Td%Fh8TQZsCAJx%2fI)6Qtlk<-tZ z%b*q_t%W1}Ck2einKNL7--CrY{EU8nc}ovkx#GYll?$>W%oz)iV&A$20`ld~5tTD{ zalfd@y2S&EGUP9wpXMPXnJa~+#MG`^Eubp@SfF@$`J>}>8=7NPi6`7zs0%Z&ZpnaG zST0BLLQ<{^^`t7b4h*PJs!-i}0rdjv)~i>yUfqVhN)@WtScL%t>(&Z*OK29XN|OrA z+?TRe3JtF0$s;8|1$_iaiA_OuY}D}$7-4)(og$Q!IYt-@8|e4^ej|)V!?=v_+`VT9 zK3Z1gEx#qvmu)TgHC#7gRQ{H^s}5a0v*rD8|LJQt`JX%1;!bkujTL_y*LLsae0hI( z+3nLBCGO6cx4q$#{HHhV`|ft1-%mWKkrk4d*r$K=_-TL7ukvHF1FvnY8~*B!CtDiy z40^O~rC*NHALrb%F{^g{io-$*g;;j__v$^g+1+pQUM}EYFZr)Ajeba4eW>X8)KS$| zEeJmUc-xT=W|W%K?pc8zC3jRgyr4wWAt&BDSTDNptu8}b-P^M!Z|uz8$IH&WGwejg ze!;IMwK%k{TE+4YK3Mzy!hX%$uIy2)Zp%s;ZzPw0b=`qZMH8z{IC<$@(GkZx6@J_; z?c9~T9pbVUuU@nK_E%wJdmi`8VKf+*4F5b}_>zF~lttzJbC%5cO7~I^7oWZU;irp= z-1>XZ*jhE8d|#?-Kw)++ZZy8knJXX%{S#1;f2fkPbU?{rue^0GvF(hEeE<I5e^TvM zpFeBcacJK618TEC#hldxUJt0Uu=2u+W6CF_rKM7@E5@2s+r;IsHuZDrSg9D*rk?`* zS-vp)kdq4an1CX=RSl?|)YDRDB^7SUN~0mDX<Gk9*N-fn()i7Z8_VYp-Ziu4&|N*Z ztug(TXX><i+rQrX_Wp>b{esgLKj>XC_0FnqJ0!hYWk9Xy^M|MJc{FEys(Hk`lHZpt zQfgeS6{r6xnAIb+;2T5hKQas|w<%-Imd!iEZ>}ge?^u~x?F)2^uXCWqmW_u-Hv2U* zIqgvGDxDwAUY5hs=l5mpmghdOv)Ap472AXi`C-=6>P5CzdW{ARt{#a<KivHFDeo;Y z{Jfyi#CA=mY<&CP)M2$}&hGPj)|ub^^GCK={Ac(#6}}ubb5gxs-8zo@Iji)oHM4_u z3~Ezu)Z%exUis;x^F1c~@nyF|HFLcgvbMmL4lDf%H(2x0QB%~o;N#V8c^-|p)9Gm{ z)dM>NM&wu`>j9&mI*oGupQ``@8U-|{*RWpQ1_AXOQ3X)HAyoiPf&WJ;Azyd;4<E10 zSMlR(71~DJ&-L*Afum~OZ?w33Sk!|FWyalj(IM$+p4G1f`2AG6#q)@K7lsC|`1Hm3 z6LE8^_Ah#F$<80jy?L<W%=v=~E^RxZ_tzyG*FSlvaK|&RB%VKB#`^R<|BFMT=RA2m z$Bw8e9p5YTIJRMx5*<qPEWdHavp?p}KO3=Qe~*axDS0<ldUkS6%}SQkEiH`!6SuZL zTX<gc-`)y+qwKMN&urfAf93sGFP&_@x!D)L7xp(yE3m$D$=Ycb-zjvhZ^_k5225)k z8MS|HoxqLH|N1`l^p8uzLWWcf>mTt+;J8C+eG3#B89287_~GjVdOYZrv);snjZ@0s zFxy_nzi-|Z`c1}y`mdN5WzINWOWx@tjDx7|%W%2Xa=YK$j><su*7kYtk1+CsrhKKG zBaC^;M|xBl4R|ue#O5*v41W^vX70Ri<u>NZmB-ImvI5r(HmVvjGc#3HgQz58OmzZ= zAG8bm1q|O(cKAkmeV1sW8RV7d5tWvZXsZ;%E6n2fd`oksz5^?nQU+E^<=w_B(ZDGU zwAw0}=p3fhG^rCuI%fW+RAN6!iw;n#M8k<Gu{1(iiHBoJAtkm_44vXFc384ivcy$N zx0!1?d6a4)UG|J5?f&yqGnMu>pxu3hO&XJ;_jI<}F1MzrzTR#0Sy-*Ctq&*8x&B+` zoF^GyWd?-ruQ+<-=yIPmZ`=6E$~mnj*Zg|@)MDT4`Q0|>(O0pBPYw)k@Xg{DFS1_t zKbGgg;HD!dL{_@c<k0%Pv%~ZEfBDwmJ(uUo_hG44-HKL7yRdaamABh2xoD|+`~LZ@ zsW%IUd{_O%<K(P|cQ=<Rwc`4a*BYL9{o<9vm->IbxN4Q6&latjVjJG)NV(qm>P*}4 zJh<JjeVWWK@w9oh_)6pJ_j^`o#MvA7m(+O?*{^r(zL@%%&zj|_+3o(-!j=86?y!{! z-+ZOf(EVeht}Op-d%d8)zPUJH{*XmowwBvHJ*aB2H;)!Bzop~c_hXKA7*;A`)%c57 zfB5@czC4ZBrKeX87?JA$Rbi{pjH$jc*TTDx$J|yY6*pu4Uu;59>!w~^s?8b()DLLd zFo0V(jR+e71BTD5TQ;C{?)>?tRU0?`NzGWJv0#2jU%hT%Kufw2a^@)5#Hs1SEhwDD z+N=`oqL*Q=)Y@XD;Z<=?K&3Yv7HTMswgOIe*-viC6)fte?bPI>8_#<a=<tyK{VV4g z^1vE1{YJ5j9eb9(eDwON1D6jDt5>qdia#E_IcvywDJ4dPm0sMvMDBwzXNn#A=45?K z>uR4RwOkhISEf&%mxEV7T0JbyzsYCQ#}?W(`bmp}EpvUA{BZe>rscn>Q?Yo}U*8zh zX-iteUyeU7^Zn@I4Z?3%{JLO)5l3I1ZJK|4-ATRtU#-{pxB5A2wO>4_im|d^m*F=` z7EkZgC$RnfpxS*GZ+ck!Uak#;Z85*}{9#0!Dr>&Ev+hs-=Qqx-?Xxhd%s;&c?+bo9 z;Yh#Yb+TIh6diPEr0H0eUy)od#?NgM6>nVBd`i!uAAR*%-SKbb9J%bxt;3deuQ%!B z{3qkjjJs}Kkgzj)`Ib>f8tq5L=vSRu(^Ucra;+s=Ieq~KrzVbOqo|cqEg6kD8&IhT zP&mLirYc%HmKa;As!n4Js9!7AoRJtC(1fz*Ri&aVPEeS>1)M6%e*zjRMyaB#0i(|K zq@(UJo0R6dYn@r}|C@DYNlu;Dxlvd!Ait6jIdZ64s~x{TyQlQrv<=%|OP&8gnq_9& zM%})5e!%4!MmcG3OByTZELyNIcUJ-$(`_t1y#k7>1pY7fz6GwTV*7vg+2_DHpoWTy zrgG3U@Ck|rrg9Kb@QHwlWx)|pPz2;rqLl~jftFoKdv_Ci0%d7wNsk+5_g;Ekv#hM! z1AKHLtu(bbUXA~E?b(|>Ag8$ZetwVt|G)WooV91qtXcD2Yu2op+54QX)Evc|VrCC5 zv+W8?@!})r+`-=cNA&jBn&*3unpm;;P{58y;`X18TzF5;OKf5K@xNa`w%?lQ=Qnz1 z2fY_`^x_@GvFG~D9F}_a{l491FM0jrSf48=)I4r4%d)5c@~7tDbI)JDYxkiwZ#0a& zw%3q%A3ZQ>$CEQ&jM;jv<?*L;zx?Bv6)~529iKa?cV6(+k@L6Sy(zY6{Wac)o;h%a zO?b`edob>^$GRnbdHSX|hTNF)^rooc)@3*QZrxwgeP+hRKU_ZPktGG@8u##J$KUpT zzW-BOyk;Kgc`$X+;pn^e#9uw&<ol=R9C>`u^c!9`%~|={;77(UnV0m<Cu4TAt6w>~ z_=RY{3E2rN-G55@CH8wc|8G&RU(xNct})>c{=?_1uyy{=hpzLl#@aQs^!EQjZ*8)Q zGl;N)u2^Rp0*|S!jcsz6Hp;N>mO}gMcPwF-!NrG%hJ}sA^U`6V<F5@Jt=~0=4Kmwb z4zJ6PefFvwd_q@jDH`$X^y4x6de7gM(*2S8@6Ug+_qKaOuWKE_HdELf*s5iCH`&zB z>^~;Ze)yA#YZ@ANe6=O-zJTOgBF;NQM+$3wv%TSm4X@ty`eWyBD~&i&F=E#TRe!l< z`s>x3@9*~U6F251Bzy=5A+VRi)=9GvWW`O4TD2m_j;BuOhejq13L6zV$c``U%fqim zFP$`Ke)6=D5rd*8`%Da)IyWYHVM44O^G{)sJz@ToS@ALUK_f?xrYR|N^ysO{Q|$?} z;**l?;4yl1?3_XNK^;0B6f7K#FL%IVzNmzLiD)D$jLIm=7=&gx_cr1nmyR<h``9Kf z&n%goo{@#;YBCEaj;1SQItvP%MA#<MX($o1vm%y`nKM5kb9fwH<{gu~c-;Jj*TjW} z4_^^GiOP-E3bxh=&m2FaIIlP&_r{g6OOuxs<i(V%TJ6l8zGQxSn;H{GtF3{DBGbgt zio}zB+C?6Kmeqdp`3;WVmv1<E-E|)=Kl#**_irg4v2VinrY-5~j|SXO{@k$-Zut1e zR}Y6A3#h5vzisg+bEjXkWBs(LM^_IRUUbE}sb3^k40Ao%68Q3k1;hTZc)_%gnkU@* zPrO?Ay!WRQ=I8ulO8DqwFZMW)_~5PEC*<|*o44W)ziV&b6p%clYxS0g%L{{Bu9*4M z(*+-XeaGe(bILzlGPq*XA7+i3c=clewHN%^jZZ(cA}1xy8R2(eZ*8yqd-lZHpV{$o zNcgI|yZK)H)6)ZoU;V=3UTf>lJRdjh(WQ?ir_Q|Z^=WG^tGe@z>t9WI`=5VY-E4j0 zhG#}S)^xt`P<_D4sD=4SjYoSs-``l4wR*zM?+re`<*Uo@-o1UDAFR&reJ@{iXUXPg z>K3-n59?09S6YV#cCXg?RU+$2lZ4TQT_<kzaHFe*nv%I<xj8#@DO`n@WteQXc;Tgn zw!2+s`;&`n9u4~Jg)bjEF#GlKKb>8_qv@qb&mJo4<@Gn`6WK>zebHpSCP!ZX>{SP5 z1i+E&gEcJj+E8pANG5BjCA<G81^wQvSl9I+VoVuJ<P&O)IpEvX*I9d<ZnILR81v?^ zP-V*kvD%f&Sg^Og$M)Z_Q$=AWIUVevg(0CZ69EPO=rZ)$&?#X9;iZ&FvX?Fwz2J?# zv^fiAhG}7<&%eJLwzp)%+@^DlJ%_Ff`uW{KCl7cvo*8SCp00cEyRtu&EVR^Q+;o2Q z;es3Hqz*l>s5CM=Z+QPtW-hP(c;)7VJ{w1DudCZV<oM$28uw*}^eS7p`;BM+>AYpk zmQ8OyQ?&KI1(UW1e!lCesXx~I?dOwq&Oc|o`0Vb6p^v)4gU<bwvB-bQ{5wwf$r}`F zA3xGmQu>LMaCyI^uIKLit55X1b@%@;@}(VH`~9-~miy+J%D((%Wa8YtcfL`4Tl1#b zbJ9or@?^5>Q|r@zuWIzWC7|Yw<Tb7#kG=k**P@NLy6-vmt@nzDQ+y8gJo3ibk?&Mz z1P&fl?XU)%IN0yNmd6Hn`Sz3VCLEo1L;cQ?&dJZu9JXOeFKvyy4?gyd-v|Z6KNvFS zgRif;Jz{&x&}R3MkgtF0zXes4{VQ7WT5y4h@YmK^fEK)`LW8yN1#w*e4qYm(MKjZ# z|4)Z**3hvO(gm7FgboW0t{7Tz#U0xG(sp04NPCM^*&Nh2Bxcn-_wmA(n=XI!o?|B` zAG__zp`SipaY?+_L6BAw{@`s>KknZ(?b9pjSN&z_^H2Ypux9e}J;#iAxc7mJM;HI` z;_f#~r$0Ag_Vq8OcAtFkh4}1eo@@^N%j-p<?~Xb5OW%|p-49%hne)RPNwdm7@%Fv8 z!RwKyA1e8g^*-k{U~!LY{k|XC|Jx@`D-&Kg`N-wnr%k{0nt($gdq2DO)q97RU+b=% zKXvB#A5K?<kNI>&?6LO-&ODK^@2AH<J9oav=MO&pjrE;r_Z<7!_lu^q&3(@Y7DY{+ z_E6JmSKOo-tKPryz5U5Ca^1JX4*37oa{IYEuZgK2)bP)yp$Vbe>aPCFkf|Xr{qkU! z+bceJ?7g1?Mor&aHDUgQ`?nwZXnVtvmEOA#-*@xWfO~`H<sJTX!3~f2VVUiXHO`N! z8@y%Kg7j@?PQB7@!uxO8tm7vJ;RvtDdxw*=yDC(_{2zA3zqexk_@;pEzdYo(bkRqn z9^3ne!AmD!m~zB+i_gZr0T&7#qu+S@aKfLjtowCucz#9Ko)h1&&UtuCUgT9@JeGNG zclz1Qb@3~%w|^XY(e~=u31|K`BRj+L(6st5#=V^xFz_$EpXlM-J?h-44PEd4a?;OU z2lDP1GRyYX<#pXwm2KKLXz!~*Js)}ZhmDVYwdT5(Cz=jEQF`mIE#KZ9f9z@>x8KtR zV_zHb_Ka%_d?FKyz6#DQNxk)%O8*1bymU>@Q%$Gde%}3^{holo1{WQ%&fYL|O34jB zryY$=+5XRY@i*K%V|LAthYI(6VP11Iaoc-O^u7MM<qzgOcI0Hy$f=X-os+#|Zw)UV z`k>>H;>YSjzn}T$O@H8Svi+e!hfeW-_RzrQ>Cj;ON9Vp?ndJS>;KQpP$$b6HC)YLY zU3>Z9zdn9ocU5px^H=$0L6K+vKK9Z51u>sanlkT!S9c7!=iZNs@7jO;qvzhc`^#m^ zCVX`w`Ihhfm!J7`@|L<4tCLfIin+({!y6Yp!nzEY^X|kC&VT#MTayc3+52^4cy+Ie z=NB!l?DE_r12bPbdRgd{@TTWKmOg&wt0{%WH_wZ?{oypfFQ32iqvcEA85^7T&VvIh z9$q`U`<906mXkAM&&+vuP`3r24e~xdX!o5>kA58cUT)O!d-h(K_Q|4mc0OyFu;QxV zCn~39=FQ)pRrX!t<af><`u2R(lgEa-_Dop*>Hg#HF{O259*=9d$Loo{$6k8x>Y3lv zzu)b}7alyg-Z(ViCzroB(v3p{Ivz9*4U9vB|5b+uVe3p$h-9u-wwucSXQKs^wRJtI zuXrm;?+)$Px-!OQQ`a^t;NRG8q8035y{0(~$MIVZ3_H7P?VY`CUxwfL^7>&t?ZvmA z!vht<YP?HW|4<wVgre{ZuKEunQYuDWG^gane%0eoeu<T9#1IdUK+v8>kHNj389L&o zu=wZl=3RD;^V?aUhBOpkz4801+T;GG3h(^eUu~~1$#~&d^Xljq{_(Ku^ByCH*O!I# zedYY0HV&9~<$cG0x>)l~$;8AQY5kDNFU}1OO|HtZk9^89M*im6u!$Kx``_+2B>n2I zpH2G9(`UX~^yy!RK6Jb>>K_G*4_x!)4<m}+p27C~z47FlGl%{${;t8k3(l-Lacs)q z0&A~7eK-96($uaG4?9%$*!&Yud-tq+XW1{42i#B<_SDT4uRV3}MA_8=3-<qgP3_Ow zFJ}Dw%8=XMn)h<_t8;%{vDh)Ncj!&)!u~XF=AeV`){gU+Mim@ibJ_8?2X6fE8tb%) z-9CQk{;zYFoC!HzJ^YFh_s`$+%x^rIXxuUoFc2^hFc2^hFc2^hFc2^hFc2^hFc2^h zFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^h zFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^h zFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFc2^hFcA3Pfxv<D-~WoA38x?DR(|!{4{0cV zBK&sNT@kP^{;$K&ai^vx$EGAJS#AHTZF|YoYYVdJV^wdbrWR$cDpD_ywC8uYAHR2Y zBTwm?eg(Ys&&*t{G>FvH!lL5Eg{@ib`Mv)Xzg3|!p=*(!RpqDrM0zW~)U3=L{1S|E z-L}6um7HIh%7m^(e(VzY(hG|U@Uu0%+9mxxTg`9WML)@oKkb@dwd0M<)YPTv>8Y8k z=-2;Ji=2zw_t*6*uUV!tpzAjBX^ho0H5ES!Sg0$cJwNMfyr4s|4CoQp^sDlo{!&wm zb8pJd%}CA8U6O}F?fJ#M&THPRGNJ3=mM=3abxDD9MJBJ;o?qRYJU^T#jIMu6KC<IR zd{R@VMkhz7#>}0Q#I3njW#CZLcGtv{J|ruR4d@|HN6j<82$WU+YTL@?h0NA_pfA-! zTlpeTpZ+RTJ<#><^|K6Rc|Vn^>VGN&hnCm&TI;7-y`7qx<4i3qS+O`TCpEvQz$3p} zl?}NNQ7*U;7Ns?XG&Ple=19+IFJCQw1(*H~sRGco$WO1yDZ*{Vio9GczdgSPy*R%# ztwSg%@@o}aWssV>xKQ^dm*Us#!)s`IplZLxkL)cDpVZV@@pERzPL1c*#+XBES+#!k zdh<b^PycHrK(em*ki7)pBbIRF<T*1k3sUo)MOmYBvKJQ?Wja@+I`gwfWt8BO4Pwj{ ziaOL@Fp^-Tm0<8;w8T>AdWytOp#uTaB$lw8+c&il@v_7UfLTNfeln_-F<;~*;6s0! zY@=|0G(IsryTkueE=ugC4(?ozJZk5n-^({#W{rrs=ecID_ha7qU<~r?`0zfWRmoSO z6^v~gO~Y`H#-H{_ew+G7yc8tOWhg4K(Zz)Yga>`nhYueWrs6^6BZTtO#4ebg+Lli$ z0g5X|O;M|$G-E^Yp?0%&N$f-PIYhlCoak?Wdd+H0Z1X%N%lOYgz(Bx2z(Bx2z(Bx2 zz(Bx2z(Bx2z(Bx2z(Bx2z(Bx2z(C-?7=bLtPO)h3$XYq|)3bB`RCRHURCO_im7kHN zYN^y58fce4sh4|J|2T+kRm#qm-3>0YpO)XG<<FDd`&{OHE&r&NKVNoVToYY&cJ5o1 z9koF`t<lpX%NPr9Ks!E+ZN&zqKhbkQr+GQt&K|Cs{op6^IluI^s^(Ow>gNR}@RlLB zx$2@UDRQ5cS@kdYG~MH9Zj#vUbF!&A%ga&Ymitr>3v$$?O4jAyJ+rM}<VzbK4q3RY zIlHB0Pn6u}gp0A{kim|cK*_dzqlqO4FjwLO-I$v`>v}ufgTPCYSr5YF;+m;wHwNub zfgI6Q=a>Gu(!l~h?I@r6O}u`V{i{E}M`{j68`+SD+6lVYl3XwMuKw1<w%YqR+*Z3I zGEfREXza7CU!c@$c`ame0s||<M{>BC6!mEYczteixJl;isDHSnrOy(=8y`35|JShD z_8($nz1z`T2i-NnCVUkAON#zOc9lJBh5oZh{}NO5AB_8flC*piaJK^Idf8e{`Xid# zj<np_(vobou<pYw4mXY`!PlpH26Xc-_;iEqeka?iXLgNl&OzQb$#w$U=gBice<%A^ z$0L7)lJ9$h_+U@ozX|!&z64z!gZ^69O9z`%O|UH)HU_(1W5Jk|%5TJ2shbny#(BZ1 zro<R`pu|pJ(bsXlLT1UUkY_u(JThKpSDl5upTqb)gZ_p<Zrjn}k<t~creQEEKT^ob z>*Ze6WJeVe3vcvw)WB|(dt}!~V55CnS{`Twe~iuDT3Kq>`fJOcwL@7=AoyKe6ARg< zLdF=_|CB1oT;6_s2g8=FUTi$cVeK2(BiPO&8%YP79L+N<Y<EZ(N6lH_I}@0%#aK9j zF}d}{jStUQxV(88u-s;{o?vE{ym64DCQ9;I{w(@Qb?7>k#tyDGVqB(5(g{1!7$>BU zvzO?@U(knt8+{~0A9rIcZIg6;oP|E9?R^(ol0~0G_*n0bZVr_EPej8$+!EVLc@4l! zEBBO%`M1Q7{x0=R<cH3xda>3!BI8W#s<gLQ`2v|K{<QE0bJf~m%-yiSm3Z2RZM|`^ zRGzgiIud#qPd>tpyuz=&s@6_sZn~y&|3KckBvzGXGL<*Tto$CC{A63-1bGzQwCtA- zUdWT+t4z?D4BeTbL)g|Dud0jCUrQ8=JP-ZE{~@k9+s1a&96-J_7{2G6+^>3Acf#6w z;=3!i_1iN>_nmK=`kkovX314O9I#2-iS?lSFxN--L#8!2N~=VEHZZ1p(OxXM0y+zT z9u=Qv<38;(iS2QtE&E!>mMuYSEBWuN1u<^dP)Cgub&p5EcHzH|%6+Sk$pMP}_Q9AY zUPq!Fk?AO-@WYsFKsmDSO4vgs?4cPpM!vHSHih#o|3=t<0Q7E?;X|cfC+eX~8}2t^ z+)};|@?l@f_*8I4`6A$Y4($fY{Z5p+TaqybF*f>CUkzC=u9*fLV}a*X;2Hybr&L|Y zi>?CR3hvFRuj8JCGA3Y+xoSTv{~7(OyC<%>5q&tL+C>9&Y6HemQqL1jz&I$B{8Kjf zPpmihPkw}B&lB%J=8J1$z;g<CN2A@hmHD+7GnEIcWhD5Q5Pyd|*i1bAPtaTvhxQr- zJnX<D*u-}KBIMz$5Ex0-HefLfxM<@`!$_ih*o21BWor38$ZvukqA(ssOez06<ZI>0 zr(nEpB|Uv(l1`MKZ%O_Dey;)eUqE_s&6}9ZS$S}@w=yoQ``(Oz9>>>T&95)6*{Af? z?%>xu?3g=STEZJ9@N1Gia1(2evNCrtWA3PW78zA5H%HZ)o1+}~B(s`#j`A2L>Pb^o zl*0@8-nftSW>ymqpBdtkBD0%#nUE3S5y#w3;2X8c+8p9w?rhlgFq#ueM@0r-kgDtw zAH#2b{i`DLT9QeXw+!?_^b0!kZ`scdo}G&rYYl8+J&&_!jO~ZdEgJ-XDX}qSgIMI2 zZmb4=v*xTfbKAptzi51)KumOT%@pXJ?2BFEbKxsKw3g;Z23pw4Aj~`Dd!GYuHb&z? zu?vsK?)#On_8gm$Tz^Ded#F~|AM=A=|1YR7#*AXyPNi+`KklaXM|I32QqlKs%WyN* zAJK9BaqVQF{^p~+YnWDEm-p9;ZRMr1nJ7!KriMcl%8>uQG_GXT*P<+*Y5A}Wb0Lk} zV$k}W+Eej4u!Hafl&fr=KY9L4<Wapc%%P%x)_ij>*aq4C*+7g7e5}^!DjUWzvuwBv zwl<!8n<;*AGsTz+jd4jdGr1CJ-qpqoVrSULzRFJnnZKwT>TB>pZqHVX2`lDi=nL~o z&+2p=pT{%|h~HO`_qSwd62|GbC`)bDpv?y0(zac013{1<vFQU8%hqGQ{24U0t+iQ= zy6xi!l9_BO5MvBaFO)l{Io$ByThlNvzJvNScmB1NC+6XHJc-}GE6*LOJU);+9&-xD z?rxeNLV!Ek-h=0M{K+>`>=z9G<_mhQ<fF_PgfF%I^MW@pPW7>_#bnIOl~@EF)A*_| z)lOno*CZNO(TG#G1HZC$tQ_-IO^97xi@<M(K#mQJDeZ>9pEp4s@|V9r4-J?<@W_S# z5%?#HCkNRn#_Nf>(!UzdQ6Wa5_=Nk6pBL=!U>(M)*WS#kobZ=1WE*IU=1X9|JIh3Q z4mYjC8f3W|{ob18gZma%p5?>ZtnKg|(+OI)1gEh`hIowpV~7>=kJAxZW@6)lG1qgP zY$qzvCtu7vIh&#*-pASx&+qvA0_WB|iH#fPWRWyiA<jL~1im(0FOyiL6LB)(tIbV# zq$HWJz_UDxPH4WuLz>AHpU*@;hFh3>Ir@T_#!WKBsi`K*3GZ$Fd=?IGj+dBw81BWP zOc3z`&cl$m40YqxI>9uj;Jy#|(tP$E>PicTHHVm)JBZ4lzZ7$a0E0ltYl93Vrw?S9 z0Y22W59(7pl#+aF5mS*2@sJ@H?e#$0w1yx)@!+BGK{@J=5AJu058AV#jZ4RrR88?f zC1j!4yKP+5v)UiFyun0sc+WO-IOT6dzBY%GjZhpyaj-wx%#)6)5DPnK13t87BA-gO zLU#DlK+OhqKTr1j9qg6H70H8nZ})eCJT&IW-iHGNJb(l|q-tN#q?=&$YZlTnU=oNi zmj)R&puZS*{u_W#D(r>w%D@Bu&>w5JkLrQvEZ8C0MjGs8B=j^Jd`2Pt8~A*K{2!o$ z>V>14M?$vQ;8TtJBO%*t@SY7hmFqM|<ZRLjlTJ7!*TW}$Sa_`u+r1nq>5Fta3;cZ1 z);8!h4eOU@Vf!}JNyTR-WTJK9EbyEKo*UJ^<f!Q;+<Oy!`W~{}wQywfGRQF#_sHG? znGe=3u7~3kJ8&p=ITP(H_h#WVcF4waa6JOoWHVOCLSv^CGK>Na?+J2H`I*EUb(X1Z zcWEaB$B-!)mQh*AKz2+vtjW@dwGxdZYI_;l_VH!mKH$9!*M#@UcCuj2ne2mn^ebGn zfASk~3$vPc!k+~L$6&}$w%Z6FNw^YzbglI>8$7a29P@bGqyCc3*dS*-+9n&Zq5m{) zDIE?OwQ)8K<17yS@WH(kusQOXWP4;=Ht;2WTASIR|D7>B3_KN|(~+Ez#fJ7fB`5mR zX*t37-}Mo{HCMee;CJULcZjm)u$@?kareJvu3GeK%LAU~s`fF;f0s{u3o?;U%mt== zUe<kLAog0>7hVBm=S0_juG0>IW-8s0&M2mc#&~goKgCa&8~5zNI3a#}R-03{!-qQ# z$q9750cGf#<hVnn(+<g@bZ;H5bJV=GTDgzqe7d&=*F1J>8&kBGr)9tWptj#Z^|Ed> zr&wX5mFovI*D|&zi?N;7=<6sB4Ic-YoftFqPxzHfE?44ow9(?r+$2LwPs}NStfoGO zmETKq3i?BI1Iiv9%gRkCkH`48lCP-03^5a9D=A*UoRVmjY{Rl7c9jJFi@?hTKTWd4 z6_`^b$WniR_h}mL(cT^LEdeho6TFg_sh~LdBaX{Nl%rTH?L%HK0@uC3yYY#H$V$e> z)g8Y*u`$V7((<fdWSzy8cnE&(CCqJzqax!#m)+{vg4pR`6J$p$`6BA<9@fhdv1}lV zp!|(3E#uarEa5<X54>>M>BhCLM1SlB6h7{ytSzbEgg@=o%|V&9%fch*I*rO(*~(|( zV{JD(wnW+3X<yL6;G1o--8JlVYD5$KT<RNG8>)McG&in&H#ma&y$b7q%JtVbQ{Qdb z<`jx`qcDe+T39lz*`d$!_HiW1*?@kIL));m-8M5T{|<R^lI^`f$!}LZ+9!Sro<&|M z!z7>gW=MVqPhdW_N$}wki>!kFvk_0C|K->h+%*`otwlcBL^bAvM(~4f-BK;rLH!e~ z9BVH{N7f8gkI4I^Kii7+YM&R7l24cLp)o*xi&ob-cjBI%*$=hIw8oR#?8#8s((|%{ zv8k&oQAYa%t=z5{=rS302b@<RFYr-mWh3GU8gJ*Cc^$gf0Gvv3zc=b@*BUQh<Wn1j zMcfVM6b5{M#@=1SFTDQakd5k)>~^##?(aZek9$dH5SMFvzO=7I{H@n%W37KPJI3<r z*YDV2HN#H5Sxui<$hMx9OGsCs&0nr$HFXm1U5<TV8T)LwNBds#%5{l&UFW0QAUE+n z2U|UaPb1YW<@?BFgLUA6cLH`dMqw}6#A+(nFH&r%=^EXJB-jD*Y>BbKhA!Q=ngSl! z&uFtZLhBjAt1^a_LvHsINXa+sLD{vxUWPsBw)-HS&OKVz+Yg?R&A>>m{uw;asTeiR z(=fWc89r!dVD#mYimeXtaw}<&nhrsV7`Hx&w{J)L8oeL>oc1c~Ob(^)gLBO(aqv%{ zFXCg>F4J1Vm1x3eE6P@wnA?H9?_lJUO*j0g+H{g%`6s|xLVi8yL1?2w@y$4MvYHjY z+l|^qtVz14J<okO{Mtvgrl?Ozes;aA$X&6+D<%3o=PRL(a&M%UoBX_3-qsN7M$BGr zYp}R0eAph?vOD?+=Q|oUNPTLAPs=bv76u<mvYp_3&tJ~A_L156Uw{c=q4n`PwT~{D z?WX!xGxxWIXK=DtN)yU94Q5r+DZSqh2>m_=zTd$A;r$2y#@Y8I1|N8;AnPa7-e9#| zW^wE=*=i>_H?kdRCfB63e`Aq&x4<7daF?FsvMXa0djWlj2ihZ?xBsBGw?=5M4(%y8 zpKaMw_8=dJRNnam_wU4u_I;>~12+C7%D)L6!Y<uGjXKXI0?(IF2L9rs%JtVN<DhDC z+i?JU#29G1M^ER6H1E4mw`Dy$sGY+e!`l8RY?koLddMpU@%(9um9wGmkcQmI5Q+5& zmaM}n&jdzn_htvl&L%@%+E)P|#b;=HLnMC@_$zC8)ED)y?Wt;I$z}qxEqolT;Hfnz zFESW&SXMl@ZSr3(%x$UQSr^CitiZf-x^N$DF2H@Ong{u@XTbMw;cKc1C-T#m#11ij z7_)rui27a@u8q|J&Gm!%IGhZ=M?jNrrZbp+m=nk!7eXc~^C<3X^Jg#2pAE<(eI9|2 zCY;wU8yBI?cN@ZV9W@|^rLocy<9Eq?7l3+nj?&Tj3CS5Zn#<YPhtWCR&c-idm3<U{ z$oMn*sqOWX4+^?V^$`sFC7U_D{wsC<LHT2l^*xFgzp%I&#*?BG_@;C4FIKEktz8}N z`^tDdns=tahts(Sm18@6YqpzsEObSHW3_}i-1>KJ(@d(JWNmOXXB}b9${4zqMTVoj zzd=5QFZ4=$NI#focUDyU*3_dP$~~-++O$zUQ;D~zjRyGm20z3&hxs_9cBEak6P+)* zCMxaZBCgT+V68@csNEOPZas8OI;4Fts~6_zUfge3@AOJ(WNc4sJykZPkMp`Ha^dWA zr|H?5HHv&;4)@lF__&0xOQbz8YRA=;o&!KEfc7PnC0)IBt5<+hr<cQh&8J-EqnM+V z^4(~E1al9@y>$ru9`L1nM-LWGd|bEj^85NBri6`4WNT&?77YwqVpt@~xGC<)_eNjV z^Rf-N9t4@br#hc;J?~QMpGHdcCBzg|zw!pwgZz-jgMG@&YdpS0`T9?IKefEikmpeI z9#Q%JUFGXk<r4W`3)yNvZp-5@#Ft_i_<X|1vBoQ9?D>`le#BX)V&Aj90x*VGo}@9N z>9Q1igE1{i+(a0a5oWLx8bfrw6LlSk%PQ+syC5IlHF}5n^!|w%Kdqm*xSO;i&5P|= zJ6VcM20p`K4>T7w?BL~T%(^eOJkV3sTV*`_AY{wFk^4itgt1-C%f=E07%RZ8I(h@| z8}_ICF=x7+&+7b+3;cqobAC;QIzMM6FB=Aawa_o|3;MHOpZZk<SyS<BLL;8rP~^Ex z@FCD6^}qeupmru0yk8xQDi#_B%rXVo#O$yhoZg)Ek$3arZZfbj?Vxe8wznygo)7q? zFWY({Pk&Yie(E5#pXICh$brq|7b%9M`Th`m2(5|gF>h3^zk$d1KDw;ip-b-TqH%7? zpVRr;LmP2cy$#I|e~Gfx9{FKvZ?D>(@(c^)YP#AhB?|La6Ya05?fZI}Q<h77&wL-+ zXOhjQy$o-FFZHWF(kq4L#tV6`;%rsIS?8tCM%aATCsNrDO^B-z54CtZ4z|PuDY#T3 z&x*Dx*Y|C%7{J0QrgSagx;%(BTv)gGK<=u+rh|>x&-ck%7BMV4IASB#CD`vOPc3Dq zqp>ET`%%dEqA|6Kt*nFG70A0EJkn5>`u_=Rjb(7VE3M&Uwu<h<Cdr@hSloL@{dzBa zEclr5k?}F%BjLk#(3qF(u0)EhA3$9P=ChV4b0p=j!L{PYaBmZ6YO_}#Hjef=$==H7 zzPF?N&3mMXX`rdi=}3E{TsY4389rMvFKqK+EAO(h<ldM^no&L=ot2-z?XJXsVvTU2 z#g%v!%74E4rsha*%%!-`(pY&N_ynE`JROJgeXGpwN`qWBR+@+y<UJp(E$@=qd%$Yt zFzK#`t(LNfX%DSQ-q4R^vw`+OS@@1f+S45=J0jowBU_2Fl{^yjSq^aChJDW%_^ClC zpVOURAHg|7H_7*|FC<p7yeljJ9`b!)W0766hetrR@)L5G>hCcouz#x5&%(G{240tE z4_|dT+CrQZ?u$CUrvoE`CC8RjtY?8|@-JSjyv5{yqM^AZ`DMhZwB{m=5PPot1>=O) z_;ig}FOsl$^Vh&g4Tn2`!!O{g#DMd;u1Pmb5PwWTJ;I#s?MvqRKZAR8{|4Nr^hVUr zddq&-hFjA<j`w1_yTbOGfN_YEl~X*v5qkt!2Osoh>l2@Y?4!_r9?JZI)&F$rY3?@; zuI|?(%uAYA`xcwW`m-K^!E9yNK-R-P?Ap~b`gag?*vo8Q)VpkDC0z#{d^pN<*>}|U zU1%f9<a?qHSoO{x88HL)KOTD!)aLhc_i8%Z+Xbwt4Ao^)*Sq!&ocgh}%o))IvC0l$ zEt#<&+s$!r?`3HbKcakh$QPI$7C|_Yj?bxmz8Zb)=|cbE!v}ySY-ny=Jd5K-=L92= zPqrJ0l*T5}#{+2HJ$4woB`~RS{X)fOWgnAU_au~g7MNj-BSvfcEYkU<<j4M^#M94# zPp8(EY+Yg?+F$!?)FtamPkROAZ+g|sDHWLSiWu8mRuJp1isL%psHVW;bey!|;WJqC zIAi&}O2|}qHILhRj$=6cP@V+}Cw^r=SW+4>u80?~-%Y&9mZWK1?+>AFDee)T;yRl4 z2keZVKh)RO+Ma>9*NM1kGsW>`HrVfX7G=&RUO}+2n_!<=IOmH)>_f7Ie=eu2NBe9l zZ(G8-CB-kLkOAxc&1nOp-40*2d;3)0uO-NDg#IWW<8E^>)(_Zk+l_vQ62BYT-^aS5 z7XGL-mh-=+{r#1QdvRaGZBG09#TIwH6|t9Ee;V$m;hJoS<hI9hAMeB%BDs@r-#^q# zk;OG;>RyzIysaR%`Szb;n@iyj)(w=((=d0q3Z^yNF)p>UX&3DK<9Zz{%yEe$fK?i> zsyCzk7~alM@F#p3`mNy8Bic=Vzf`?HP?I0|3O?vRl@CNeu`jSYD2C(Uk8*ZgYwa`W zRVfF)N-ES-u7Lxck!kk`YvQTZ=W}P<v*?!fer@(<%ifV&_hu1?x-qX{UFJ%>3$dS~ zQ}h)v#A&n5v6_*O1-^~g_j~6e$EERER@DSMEnUZLp+23J-~CUlU64{-PwUcT@IsvD zhR@%VhWc9m95r8Ci-r7IALkSsK-SiE*o8cPe*JPE>`ApdUsw9y!QKsx%~GsWu$I~U z`13Psq7VyB#d?Kw1X+^Pv^W;eUQt{}W#4=r>nHg5)_dxDWgFH)3ctizHIVJn`-xp@ z6gjZpLUmn;9hEi4^_=%wtmTyZ*sD=&WXv>oJ<8mJ{sdjXc?Dz=*X3)+ctMYC_u0kq z+_K-M#5iTIY5E)3+=9Kb$H1@UGOQo^VBdT&D}Ngp*JA%ti9ckC?*(GtuP5yV!gtVK z;4;)XGhN*ayqec*SWnO0N#)vJU@4y4B73M$y>y?wj`oP4=XKyi@#Y!Kqck7%L>|dd zkGie#=gVz%Og;#Gfu8mAkVzyDwS~F|QJ2c}L7pA^x9xS0J=d!cD^wGv+0dWjkAZ)b z#FoQm&$|$_kp3$M0&hHPh`ncb2-b>&gVp&P`{E?K9r~{r=;f}^^oF$`*#y;V)nz2l zBYu^Grn$4g&xN*V+y!;<3RsNx6`h0s`XPKwD?A2yx$z9|=Gvj)CDbYPX;<e8?oX&r z?NC7$toKPq&Wqa(wIgAzCEAFc(LCVUW)vISHLWHJ&xj4j{7!P$RmsYEh&_mpUri6J z5A9j-eHg@WJ#4$YYPKuS+4w7G{9Av<+5+`mHm?BS6Ry>J;peu`mUZ+DB<U&(SRoF< zeg>Y2!8PsqBksEQGjBdWZhI>%vdMI=8UAwjeW1zDrJ)Yt@E+s{M%rZhxfy*q?ZjB# z@Yc%6>|a~P)#1#C<g!}4QqbSs6ekmIlxH{NTuqTxpDXG4$#sg%ZS%-?YI|Z-x6E`Y zzY57KAWh-7uX3frgYR#NIG=!QO8v(;&aAH*3-nfEV+B|Dxt2a%QNN>lb&v9Tj(*&p z9v15LK%Ig35dXMli?TL;=R>53J!ox=n2+|3Hrt@{DyjJ@ipxolWILu(#il-Tz-AQr z9%^kzi49z6hw|$lRP+0D+gz>Xzi(0Y1G>VFDzG<5WgE{ZdCP;4M|$do`IGW1@8>*R z19;!F!GrJ>_dBUv@Vh!sx~5NEoh2m>{dl}5J4kx8Qk;o=>sD2+fgBesXtt8B$qu#s zPbydTSI+YTRS%Ts{EG!P&vw&zq3g<W&a3`%&MR7#Pt<?hpE;lJ1wKpOwxkRNA7x)t z<rVh_wXc0SuTiaXaocF`zr=k(@)7%&#k$uswx=BX6htGY-%a~6+8&uWzSGdAcukm! za|HQN8e65gvF=jvycs-+#{34J`ZIWhgEoE@y|g=z(fE{gn^gnbT5eZ;N8_Eca+Zbr z?tQ(uKmD;6+q$J&mzuE{+Y0_)T2d(H2|?^hc6kNj2-syZ-D|vEPLbh{Suc*&cElAF zul)l&=0R2}6a9Bf3g+A0F0`%n6>+^9^R_()YKbu&JipY8eF6)fjrPJBpEsVjwc?p# zQ~5dBf-@j9-Vc(oM&r-pHv=C<|D{|GM-SeINXW2V=CZsEStfkVW1WREi(KH1y-Yk0 zE<>+@7qBPq?Mm!}J?4eJG|%;go&vC!*{Awj)Wf?!A4M&{Dk9ZeihN)LxBY8Avs5*# zUe!!%oyBP9EXt8j3c#8+a4b7b=d&+kKUZ0odb94X9<2Okl%ci1Yaq_3LDO2QC6KvW zu3|NfALE<@=jDw@alUefpRqW*aXd-KpQ3!z;OQaXUFE208g8mOHyCH1*Rd*$qpcU$ z!~vt}z-k&Wi^U$x)GA=8oE@}ZJ85TeJr8p%-ty)C;E5ROH_ksH^9N{a?F1Gn>WS>h z?#t!r$UYT2sOG+_>NDMUrNQo{P+o5i_}0S)Xr8CG;9EY@?9~C=rI=N_rZz6*wTpSx zGX-kPTA;;C1Dc(PwHs6$aQw|eU*C9Y9p)H{cPUQX4m%~=j<%?=!eE>=H*>qR=Bqvf zdE+1-$$)1r{k8f3DCA@k))eSRYkZq4#6F0n`MwvoVJ*JhO6^0=xW_prwgWmQr839d z2koU@Y}u{EW3VGyOH*6lz~BDh5Bq5MJ|Ec&@vPj&d1k+_^K4+8=Q-5VG3GoqObKI+ z?nsALJS+F+)$%8V--aWIhwywP)-lQTMch_~LS9;5YWL7iau(JBX;ZLw2)U_l8R}(W zjo>Kcb^22uabIlL)B80+SZmQcHd?&00CF@gj&Y|TwT+zydH8(jJa5V;99~6VNiUE= zc{YR2RmraCJhejN&qn*A{hqAnU0DMi5y5yi!>-INZO`tsXSfv`X*MMgZ}Qc%U?bGN z*!K2w{Qe_oyS4+}(cIMt{dsx^47P|q;u%iHW#&GNRrkjGG~2-w`&Y~1CzH#1J8J4I zY#cpHN<1g1^JUq!a!POb+6THhYVJe%vY}H#8n2Y9aDH0Va8{GOclBD_+k_AH3EeKd zi*SD;{1W<Am!kN3JSWf#{;hZQwJ76)-=a3qc8wkFxS-QO*6Tzq#*G8xH56qCkG)6< zV}@r$!l<4Jd;BV&S8!cM^|HrDoP#Y_c8lIy2EJQ-h$rnGs`LGP-hL4B=p656;{9uj z(mwX;FgLW_3)0?8BRsYD=-ymAx#~?hu-S@zfy$VHdudIiJYyuY9ahXe^o&ICq0NcG ztfHWDec)cJ)lpNqKXC7MoXf)Zl*>1jD$hkshVN_)<m({TeOo_jyS2Rz-XYMQg|e!= zTh_8FddA5HIhxQWJ%6EKg=d}Mj}(7uI<Gv3^3fdHZ@~LvgvChoS=$313z~e_pcCAt z3FlzK1nFp`H0FsO3c5&{@BOO>gLc9`U?<AloHc`EIs*A?d$Sq_`RwR>3a-U-YR%3& zisiNED`@<Yj*nn|J&Ji2_OR7~b>}whtH#;!JTv6KN-FDDhxRL>+qZi-YMz9BJ%RUO zNltnvi1rGO!v?&NN{}H5a-;7x^>`Mc67}Bk0p@uBuK~}26CN~2GNj_(m-arCr*YK& znVCKqKL>ka&5ZF=51&Q09vm&F^ubs;jIr`A?$xPd1@S_a^DC3Gk3{c)?Z&-tFi!Tt zekJS&y#@J{=Vu^OH>^>}Ka+fMz#(hhy2L6UM~HG}k3QA<I4&}4MYjqscJa*~SbL*x zC3HY|1>@Zgsn@oCgbO{3glBPDad{1GYPir^o6dH096XPK_V1KZOy`fj-wS?dQ;FHh zHcGX)Et1>DQ@BsILC?q$HgOShia)R^1~%()FH6M+c3CBTrrDx@^$My7Y@E<@w951B zcsT_=qUP}}?BIR4pN41sEB9Z&m-47wV5wu}cK9%g0nzUs8&HP&b{p{mMrpv=0h{QD zYx39PnAgVN$TKYujKHUT{L;}gMWrrRVg>Q;=66ZV(!M_7rNux~nz#)-5yQ$$5%>Io zc#OI<?)fbqkN?A@th0!Rgjn-d;&H>JJP7lOKUe~2-X%IsrGM*8tYts#@p)CBN6dRp ziFr-c&6qpf=mYU+3{hhsxnFY}=194;OU*ZkdFc7Bp3)r;r`^Ek;D*CoMmn2c_)E(J z7p~{|F2qE3*n127mfM%{J&ys{*BgvyGNC&q?!hxdN-TuEi`O=&{N&4(n3wL;*tiC5 z*WTKtCQYVs%~qP#m<#r($P)hvw<kNECkVlF3s!0C!?p(2%p^SjgJ&1W2PD8g8t{%P z$=HlFLmKwCU1)pXt+Q%~|68kPweHDW{x#=!6mpOZ7<;?vy;mwPmRs}y*DtMMkIMa( zvh{d&>z^uqH?Fq?eAA7synwN%^ika_O2aen-=R#|n!qHRborQXyx7Vs;Pc`L3yhh1 z$k~83!V#<yj>3QZj5EjM_<W0TPVz9kGo1{XAD-sr#uz`fW`_D48gy1W&yq6tCwhjs zclCqVFC;w%uf>`adpX<jj0dyVe>4VI)S|x)=-*mk0eO}EVV>8&dNuMcAdkilaNC-O z{#DA?DrYS5ef8K>vLQCzPkXOz{fT(KqUp$Xh{q1JKcnS^9O8DP=<T4Yw}YzQu3?e) zBF=G5o2Kuzh46hf8tbG}>z73z+bnEe)DZYWoCDe}toj(|WAmcA;!KNtH2O@jj)V4( zW~JR5!fHRFm~$WE4r`ZL_u9JEE7zqcW5?bEm1$&bPh-nB_gV+m|72y>jW#b{CJ1%X zW=!L@iv2XrHtpcaO!Ysp0dX(g>TY>p2R;n4?S|~VdR%(8B>IOV&u~nXvF&mt-ih)Z zJ-4XsFVK5j+PrxTW7eXqC0rkQV-87EV=ODMA)PCFkG7=Xy9;*5!$yKjEN;R~d$y|m z{sP$(VGSI1E4CWM`&a?Kl&|Dr>{7qaOy=X1{A?P=_k7gd4tt_DA75?>h*I~@Q8!ts zr|z3mnQgFH`0jA3tK3uf&EH&&@r^te{I-&>?S~@<B;OMV`IUafd%0hlpttWp`2_4S zu0=U*J*mCJM&;R3i?a7d@!((2xAf8cW7!fuCh8$0m2)hyq-bqR7^ilotQVDcC+WU5 zlb3g*JdGiZk1Io{2m7RYgtK<PHeI+siQlJt?blwI`&!qS)L!jaWu5uqI>J?5XF@j| zPwX3O>&6O(y=7%A_pH7f;~lowW{pc&O7JNp7tto*?a*l0u|~`AziDc|41H;|8P7hs z)O>Saot9w>tz}><S{WJGwdMm4E#Ev+pdo*2{y2fgzIkgtuxh2F1v*xs;{|%QPD}HJ z{w~z}D8Z)eT3?)cd2^;fXAATSfnF)l#R7f1KyMJ}O#)pm(Dw=SL!8#ex1Djj9;4`y z_U!pyV0#@(7QG*|x3BfdyDR37b~?l!C)PFmJ9`?uah41lu=e6}Fq5K`^*YKZdpUGZ zhK|!z9ujn{@s^-tjW!SAayMeWYQpz}_@Lg55Tdb0k(t{eaa;2qsmmil=URQsI0t;X zYLC#lL#54v&P~v{mT!vHX*phyZ??|UJWt0}p0AfNL;o(7zYP7SX?=tK?V1dkI)5o! z&zDvRH1w~Pmx=|tM4)fcY1%h;fWM|&_LEtO<6gs=Cj(xdbSsWeQMV@OmiQ?;>aO?0 z1YK(RCg`q}hVC?44${ku<I@D4X=O~%l}3xYGC@~bzDdxP3A)nq&Cr!glMT8`Q)vmh zva7TSy3)#<psQ9Iy3%M1bXB485p-pOuCy{Tbd{!+fv#F<=t`qa&{b=B=t|3%p{rIJ zy3%M(SA?zUcD=4?gFtT*=yIKw?-Teur01LdDA3z=T7F6|FIDOI$UB7mT|)jIJ>OI# z@OeYX-zVh%S<jc=(fOD@(94((3iKxe{kcGYCD08zEg#qU%S}4%{k=Zc<<ok;>6~8I z<QC|Q0xjV=5lyESJQJbPUbbj=txDs0(AF}h?gHIQp!*8+0G*bCqIEkQqUW1J1bU=E zhv~FDPM60V8Qp5<=1H8^#&_+<e0=Z6Il4H$wfiph{%h^-lg)|qvnSs!b=7q#b=PT6 z^Rwu$wRlFc?+_h#d8DAHFg@REoTC+YX_DTS=#!;bJ>Szf_nIg0nXi|Z7wYYbbFzeS zZrAJ}Qz(<I=X>(Wrea-wsYEYtx<$|TD%Ir?$GNmYFYmQUC{wQ2mG0BaNDpyZ({0+H zx$dX_j&7|Mil5cF(WZ|VFX&dY^Umm2jJ-@jx{RhF0xjrS^z9}=&ocC^jWticU5*yY zK<5rkKk<6LJX@#5dDsM<YvsM6^LnlB^+I{*+@<Dwio?8D=ygTkZh_7#)VdbvT%%>^ zJWb6PeY<?So-ae^t!1Edhb9|zuH}oqoz5Ry^P$I98hX@d6UsPLKH@kQ>x%i}{Qi4o zG+V2Ek=t68vd(N9M_AB)h1L&2Mhj%r@-48nR=T@D_tI%Gj`&Y(O@^(dsq&a%Yc7qB z6lnMtEno95T3_wY@xJDE&{q*JGy1CWkOh5o#%D@>^>HosRg9Umc(=X(lt$`x&FHHp zgBCMs{it}F_hVuQ{SbY>82fplAGIo8V(e#v&K#PKp|doVwxAysTK)h%U+hOmvEP)N z9rsedywDeFPm{TJJD2&g4rDgN&Rl9+BKCNWO3#O#wU&X*8vU=vtD;XchX{NiuS1nV z^l2LQimqU1tz}?mt#q_N$Lh2=kBL4_o~Pp}t}Ug7y8cbq>wILVUS9NRUfH@%y;kV7 zv{K*$pGI<GZB=7~UP4Ng_dsjx>bxP&XL70DjwjzHZxYIs3-o<DZF)$M{f|Qac0J$p zlt5Pr^bUdErPJ~rflrN)|AvsiPtUjfncFY*8_&ACl{Mu%SW|lAnFV~$nYN~sKhW#T z2X)%}6Mc>_f3Dk!^p%dSxk1Q3uIEcloYri=Vk5Wx1f0)`u^icyI9_Fo-oEH}#Jv=8 zyo$CjuCq-8bR0}UIxYGgDMXi7oX<V^SSeB{KS}4Q`B>_UIabHR952wbb=opd_bcLj zZeFOD5pCb(6xzxZ=xl*rq0^R?I)5{4-=&UeuM&NHc-^AYqRmUU>wOesILjuTr&qa9 zw-YumZ`XBdeoB|eTqV#u1bP>zHQRBOaNF63bCBP%9Zzw9r#VaNrT0~wpFP=*81sv^ zqxpHoKZfag@Z>jT*iM?}XQTD<o@_^4=S%Yhndb|21>5ly|C<EckzqTU3}XB*uhjFk z_+Qfl%jJ4VZKntAe(ef=e?hzZgo~FX*o;MQ<6oVVI~wD3)~9{9ql48>it}^SH1@>V zwd|TiZCiuzeWfyg-i7wFQNDF=&N77Cwa5eK50mhHo^5%AV1Lg84|$~CAJKP+dvY>- zhlaNW`ma#+Z-)L|+W3ssG4hJnY4dEoOh@}X8vd@u9RFXici(=Th;gh1_-pNp@v;~b ziTl+u#)&4oh`+d(X$HpB4^5W(8@McoI*>*5_y5V572`}%774Q01z8-|aaneCAd9E< zg(qCZxktpMGyX%2yG*brhpKmR?&(b2CGH<cupjEH;(K5}tvq2rtu*XMqdOCKiT=av z6l^b3=hK-zU2*O)VeZjnkTCby1^uwOTtD&c^rP8Q?HqnTy4`*1v$$sQ6g!x^>U}VG z*J)9IqFsCP|6=T5f&MB~+{N)Pu35zKZ^HQ3`Y-x_3-qV)F?rCR1^Uy<i29S^|I;)X z;Qw3c>jfJ6qkIiZdo0KDhjW+u2v1|dWYcB$<Rd)IrQ*00<1le7$iPyQT^tLdFZHyq zB4Vk<VOn1m-w#Zgg!BE0j(f%P0Sm@Qg^HaxziR%q4G-W<Jc1r=#{-yaJj}q{rScQk zD&m}L$`){3q0`!&OKX!s#d^LOV@BgC#%tcCdR*>xyD(2|(93&o(#x32b)KgC1o|O? z{-Z!|7wD&STCURdB<`)7cj@h#_UPrM8r?U^Z?v_;iZE`6vpTTD&dd*@9d^bid)kNi zJv(e;2Vov;X`F5c+Bk1hZ;}W5>BQLA*361+%+s+o&(|>*_W?ya^upM$)oeUduj|PU zO)G^m#R3gGbZEAHi(mt=!!$MD3_B!S)%u+_nCth@*|vU0yKh(Tzu)e@GG-;hi_d9Z z7QGK*tSG~$Yi*1A7x(T(pYAn4;1i_NTKq@tiay;kQrD>kdauy>4_#BcbWW@6B}6KF z33$dsJx7GDHMy+OLO)`KHa+;Bf7iDw^C0xAwJXN<GW<+yKJ?p4L%*#w^xH~%(C@#x z7h=9ow@>p!0{usw7T1OHQ-Ta0{EWOyD6>bPYXtfYoi^_i+WNDeFTW$uALz8{pkU{p z==tK_hxsdkXM<4YxSnrr(rNj7y^MTXpw9`kTc^zzg}OMy)AVA(8J<J4L7d@f`7+M% zG}_Y{o`f?zyH*!xc&+7ehUZZ8y>NzCtI}qi;kmT(IK$J*%Q(Z+XcNxx99kKi;c59Y z&hRu^iWb_9)$`?efu1eU^K{xYU*~UHsMFH*I#0=|({d)StNE9D#{JK3JdfIbEhNVF z;@*I`<`MUm#AkHO19bg(if25<_F`-(#xvsDP>g3}_zw+Bac@9||IqTq*ibwt66Xi; zY*4;lulujYDdN78wl_e&#|;1BQf<L{i|+HxrFy>TKTI3+ac0`2({i~W8~lgXM;ZQu zXic}ZKk@guCbiS8cHgDmAJ^_a$tuRU;y$}Lw}`QYCz}x0d!kKf>tJO*8KTb{;@sjX z#`ScbW1Xa9Dy|o#SRuYrZK8FLdv@DBZfTxScD|0SWuY#kxaTOY`^=fT9zCu5MB5P8 zeG+WLuG)qfwxQXH1-4P4=38zTXxN69Z-#AX<vX$sP2aUgxjoe28Qu0{UDUUD79_4| z#Py-2yWYO&1HAg`^S5aLw^^-yS3Ph4p$^*j6w8Y3i}ohQGFtmuJM3%T&f4E;$5TH& zwIjw%qFuM|XYCif{nU2tYx23&`wQCLr?DXJ|B2(y6At3I)8y0IVTZXKliIbT-LF-@ z=WSfO`--oUbej_8Fx&Ke@jO@5hozTb8?Xn5YQN&zLYx!CvqABkP24XQ=LB)T*c_?L zBhCrp`1dp?cwy|<YGVuIUK>y1S%b7tAD7~|mz+XA#(iravvr?gUZKloUMbMUI&CS@ z+m$fx?W#Ny#=S<HFzz+}W{i86T1FiAUgdgUIulcxw(C5lr-Zhu^n6ci*N)EDG@Gjb zGq<^l)4%OwXupG=HMXyj`nUGeqPH#D`@gz|5%*H$AYC8g8df})kVooeq%a)|E%wm* zM&rT?dt(y5tHF%-nm(iV>h$MiwKXl3(`-?E2KI5hr>F3UcDSFycLk{L5Pft7p4ldz z^d719Jgiu+Vt?T49o5U|px$vjr%z?Q(1ynUHhLx;HY4&p;;lZ9i*m;Y^Y4Dd`%E7_ z*#S?n-V^8pzVmgMC=b0GunzS)(+^K|JMIg;r^nl({%GxV)SrfS{R!&J-;M7~pW4@r z{txOp|AV>>|3Tf-|Df*n->IwF6WP!eW}NrnJuMr4Cvlq}TR8;Z;St36@8yw>s0@|& zj@9?o%<;O<()MYN%CcfZ;u){FPiunTb%2*vPTa52;&E+UvM0FDS%0bnpX0%&c$(w2 zSc3ZSd*>!fnIXEr5PgaSpJG?BFu|u#U#Pq|cZvSOG)X7}99zo+$5t9RYP5v8%dYYi z_d~?FOT$oU_j<jq$*I$pOnv?_XX|=0VeZn}68F1g%w1_(yO_H)x}&*^_I-kG*X6Wq z(A%<X(rFXsuGY5h(`m~?dKu}DIv;WFGC##-)@&hd3%3Q<ku69%Z%;9e7~^*43`C4+ zJkB*}*REnFo+*mYZM51W&QmM#juPpt4(}If@AKeVdH+zxJ67~v2K0Ra_4v-xS{d(L zGIL}gzWb2V%uOlY^{p|PSqaLQ&^0qVloa{=nyJ_N{Ti(vrSv@p;%^t*Fz$!l5|A_& z??d^k-xHE`?;SN|{j7KSg4c-a{gOsbvL=NLU_F{%kg86;!m99|q5JVslJf2W{qB-v zbtN9gclS~~7wX|R6}scoBkNwT8tq+f?LF?_Z2xwy<JR`kH;?TPYuo<bPPPw>Yw%lU z%Ddc)=^Z_qLxBsu(}#N{xK~2&dDmabb%1xDl>5QJ0`I|<1mnIHSR<`Ls$gr~X(@-^ z+<_5NWZ+&F8Msp>y}1MPS##jcwyHpfR1)a$X%5_JitI=ScowPJ_Wq0rn~dLVvgrEQ zdNapkxq_?jT~^6aG93CCq3PoZsp`Z_Tpxo5aXd&D#ht{W?fYVQUwo&j+=TioQGf08 za-{hE7lHV#wm>_#F|y$-*sz8TaN~B1cT%Z;^!xzsO){zF35&*-HxsQ^e8<7f0ZG<S z78!iAUy?PPQfrbmf<;ObS)^88<-f=3=O{rt;jQiX*OuV@%P@NHoZ6vs7)wgIGQ6j6 zRqv<K`*f<_ta#6y*=nz)@`^qn3w?i=741oF`_n;tj*_O9ZTS9J+wuy$Cl`nB;;@F| z_XQ{ocSP3VJHM<E_?<aQC*rpl@NQ_(ul)M~6#3A$6>TfueO3QLfnryx?Csx`<lhaz ze<$K+*)%L|8Q1;WKk&Ja`bu*u|LzKZ#818Po3!*Ey8fMO74SuEb;`d(jb(9Oy98b| zC+pwq#J~Se@%dLcs)mhlR9PjTcS9uKcYW-zIecbFzB6V_!gHOH4Zq*!L%)xATGK<@ zHt|k#25;{^p*@<j#NWK6d7*v1+Qq!yokBgUT8~L$Y_5M_U!a4z>AN%-lXu|v8u5|v zVLMd&z&PjMQ=sS{>ynDz(jwfy2!H8rEfdXFD(_&zjwuhe)A}x^y;tYUx9tzdp1x!L z0ep`je8s`QTi9uQAC+R8R`~m1eAfbedG|6O7UCL2-&xtS`X-dM!#>5aXT8m_H!zm1 zWNh2Rt^M%pK(2Vt{Ybm4gYvUIm$!H0<&|fFpnr_n66SJER4^lXVC!w<>B7s?_joE} z-A^6s3F=r+R>yh@#@!-}b?|G&AG{=b4;A<;;~DKK<M|3c-rJ04e|<cQcw>CjkW8iE z(-Xf%nU=t9>FoFV`02<7$xnz_OVCS4e7CE7D`s=PUkiLYvQhneF$7zM{iVq|PJyRb zv*L?@M_@ZVw)6Rj{Olep@Ib2j!7DoOO9`r9N>=?+it3jZb>NqPp(np2_Fel<BeLOd z@tyOS1KQYc9I$I|zkfx!4(->b+e@m8t<=T=*?<<~HNx*@gQv|}8hiwC#qL&Kt!wd` zK)i>qVp9{$@Vzn6HSy5Ktj3G%Aw-F-Y|EX{oyqK~p*cI1S(i7^7(~4wd>*8JUGiNf zyuC|(G#}IWzL{ZZleir$66}E1GMZ04itkkreY5Klf5&;*ujYJa2z+QAr18;glYFzZ zh{u~`Gm@Q!m@uDG-$@V3wd&Kd)N5vCZ_xe9cK6#~2fBcx2Oo;x1CHE)?=hel#XiX| z$=1se*+jNzw+*xP#XX8?2RQIsxwc_!fOV{@3ngaCqB-7=MP|_)@6RIT0HQJf_lGaA zV-EIXC8l8fMj7270l%Qc1)!C<0Cf=;P`t1K-*aMvu4&FD{%viPRVN<9?<v2=5@_G4 z;v~Mez(nuu>*KC{`DrL$x}TTd+KKYpSF=#!O}?V66Xk<S^zxTuz4CkV3?g~n<nrWq zf`4z6-~K0FKBE)meNbNd6PGEa6XkzB+VVj38@&9iPL%(N%D>LbJ33MRTa=g7^5LB* z{{_l#e~t4G?nL>&p?uJ5Oj)1w??m}{#2eddc=;E8{C$1BO!Dky`D7F3PVlcrdFNg( zfAfjo=l>YWH@w2jpX@~Wdr`jh6)sPGC(3t4f2Egs`NB^0cQx@(=k`|D3I4g%Unl4P zdMC;+CjKvS{yRHS{ww%OX%{aa(+T-!5dWQAzYlhT|74U8+R5d=yA$PWAkX&adHKLj z$TO7qKhO1B)CvCmP~N$N^Uvx;`EDp5y@TVks1xN)DBtiL=bzAt^0%PB&S!b~qp+pl z^KaiBX?b8@HJ2x%6Z|v5Ke~#Sf3Fk#_f>M;l7F^?f3$k-QrD=LBah;-y`A7SjdZ!0 z_wBh(l%Ig|rBCtpD>^7|$M=TQhkV86gC_h=OrY{zTKNK<Akd)#?I+NuKGf@eD9}3v zdb2?13v_}&hYGZxK%Y7w@E7Qv0=-$F^94FVphE@PPoPizP2exkI|X{PK<5i|f<T7~ zw4Xqq`as|>&^rZsvq0wybb>&K3bda<pL$>5FVH&$db2?13v_}&hYGZxK%aU~;4jcS z1$whU=L>X#K!*ynpFp2_SKu$uJ5_quyC!A6JT?7I?DNQ<?0kbMwu<lS3UK3lrzSAQ zi2fOLrb?dyeXB~J0)3xK({JPKRO#<PgH-DN19T6Srr(shLZur(&r|8ILBFTce+PY3 zr4NJtQKdftZIw9Bk3jcU=>wqgo!ClS?}Hw%((izdRq4NgPEzUppckujE$DoeegpKa zD*Y<xdsO-r(2uG#eHT}iO78-_SEZi^{a2NK7WAhoT?zWAN<RhqqDnswdH|dgVY?0V zc$Iz>^n8_m2y~W8-w(P(rMG~lFDazDn?dhV=}n;DS84pVZ=a(oeJALjRQfj15;l>k zZYgL#mA)19aFt#II!>imfnK1}#h{m{bOC7WStxw+K;NO#IiT-T>1@zdD!l}BjY_A3 zu2bnW(4T=WEXs7QNYBa6%q<#~QIeCrnBk*js+UPrAa%<0%%T`)PR?Ry`f|pzrWIsn z&T<yE&ql%Mgm@~Om|0kyQ^YcI^71ot?Ms~5Ihh&uqJom_+@<!SJbO-_Gh>1e^SLRz zD9fH%P>@$ZSM0i^RMfXmi;kaly<KSum#Oi&*+s!2DwC`2ih%ZfCu#-{DGaf%$Sy1- zwi($4ndwD&1ts>v%zS5o6Xd_daY<frZpH}v;^HEEenDP(W?`W{yU?DI>C70_Nj};6 z>4ljEH)a;tvmvt9>wmpAU{pGvKz-!cfeFVWKR-T$D=yWUpP!vEs%TXazn(C9bU|_M z=pn`JE=P}Mql*g*Mla6J9j$2N${~eUa&GatMVSS;&YaYw%%a(lIiq+*zS2zm)CqQb zj59rpfK_trO4g8^oDBPQq$AQGR63;adLLGjS;%tpI>Qp}6m`JTht0~%TTVBM^X-cZ zGM&rwof!ZT(k*d96ZRzqc`LZ$xw-nVDQc-yMY;tA*+rSugQ@7jd@_gFRq2`eMcH|| z@wrR#7QoD=6ldpT0K4C)2<c+-R;<8qXjck1R9G&(5e<z@ZI`V{LYB*DI8fKLhP9hX zC51(qE2xO7+kc@Gmv&l^UAd{XqKKg6%rDB$DGUt@<$8+A%PlI%%gM<s2n~(URF_{| z6dF3d{V;UqW;hEn?CGitz(6a+=u6K+PHt{qk$rKdy|^$l<7)c~XKt}GN57xtEVMgw zps0)z6oMZp%*??M&GbB=5;K=(1C;{J-TW6f!M)UfK_jyjB&MoBX&x-54PN$=%%TzY z6~%=`++D!;7C7O(mSh(c7I}0Uo#8wJLq%0utFHcaU9@W{u{d{HfpbMBJaOB8sC^*w z;I4vvcDu@Ch5uT|-~;Dmu4<iN{_|Ef*VF1=R%COBXIDnBeUg1hu@9S;SCCGF_0m#; zH&Q1sAEtO3y=;1cvoOn^1?VxXeAo<UE}NFQn9X(;u;}~(q$O-daV|bNEV_6pOUle= zbJL61oV**^)Xa1?By>#1gx3FX8J<B`?LTZ(+X0$fkWF)Ip52+QOj^od*PSO^GzQ<2 zyn;+!JBm6Ai%~ukPF$N?Qs?9qWiKh2&F52PZXoZ=okMDT;mq8;o8V4Wrwp;dnx*Hh z7<HpF=f=#!yd_09ISVpJVf;E*jKW-4l$V#o^f|F06INMJG{K&^Dqrye6YN7U-!9EV z){qPzhRF=6JqU_Gc6v^xvw$?g9e!$lUO^G*2)FngtLL<@T97#ss#WG0wc~}Exo}UN z;gnRAmp>zKaXVoOmuF+Hg)oQ)a&q$0?RiT&#f`@^mxMAC?6dgn30ClzG#}gN&TJj> z9h6ses>DKt3W>p(3wbaqGJqO6VPaL3X?NNY1JErP06Bs5Op;Zp1O732#hAaTct$4F zh!LO~h1wfl3FEjmmeOpk1DS>tVz{V*9gpbjEAldmb260<sW#d{J+<#zukH5WY2@(` z9g-dEkc4Pa*YESdNX&IEM$5{`RDft5t_YxbRG6I$d(~_`Mu~bu!>&@TI}tOJvoJF` zi)O1?q?Xy4D-cWa+iK}CVJrssi!zl0^I?Z-bOvB^b79lTdDC<97CUo<Tca@lE3;&} zQqvxv5M$5J&R0ZL)S^MJ#+;+<Tw4@-B5N_aRibE2)$1rO5w#FHW-JXtgn{u>?Mn2D z%CQJ_AXkpFI2SWCX!}w)Z5}`=?TxVK71%M+EBBTlF6VKT9!=WQ5gIr#f?z~cKRvI2 z0&BG$pjeVuT%dBz%gM+r7{w5CD!iwoDTG*v64i{k2!?Z<C2D@bVip=UW^DMl@mEDe zMo)>E8as^*DIAgxH^On%ol7gbBqg8@4I4)|UMU(b54^~g5qn-v(}z-h8Vo8o10j#9 z<k=Lo%yv?o85$bNB^L5Hhr-a%F~Tj*+F6jE6&f1G^Aq62vNL(P<k;xhiLtZiCdVcv z&rOV;9-A6JCpk88T69co>NT;6N%3>%gocf0NmOor5;Bsblao3sgEpy5bV5Q$x3vgu zPG-?fc?G-!D%Yf##Msz5NpW*K<QqDc^F`zFF&(r^eWG@i`@AE+Q7SGuIiaK5Y9sTf zchp1}qDyKbE_wE>r1>10OF&8u4IRge#m~7Wb`G#yC^i(T_2ZiOsj+k0-U;XR5~34P zFM3u|Y;tn^oar5+sCJh3GhtSAn>JK!Y1-GJo{g2DbE&Fun%neSNqOnZGmBths>$eg zc(5G`;i!ggph-neln3lXibrYxCJey=ZObElB|p}Tor-43yxAmOknDK80-G@SYk8!r zWWK^W5$E>&x<v|NX^f>kC~dW%`~~EnmAh=VunT7E-4=G61*f(6YiW`Cuu#TAttTZG z0U~Q6h$kgf1<ziRZ-2)rN!l!hpOiG#ENoni7JTy<E<S9Gp0l)I%vhyIn2V?wmP`3L zm`XBIi)Jkjjg4iIt!4kUdSPSrieMQ(D?4mF*a_KF;GX{z>B9a^>8Kw5+@@aGzG2J{ zA1gkzw?=7CH6_(h9;N;9!SC6ysp@qcQfvj$A0=j#F=PA1?2XT5_~1<3+#Mg}CnG=E zTFcnsevFl&a2h@zJca-8N7tJ#$Ikn!*lZul*rQ0V2xIIyq<5o{LrC9F!NY|}!H0EW zudqfFQA9J-UL=PkW;q5aw#v+$U}mOd3p1azFs}@6X5MOL5`Jf!<=dFa-<Qc{zToT2 zd>=$w=gXuoeVMgC7)|WLq=YWaWbew@qOMGC?#fKF@WUa;E@P%u00`&L@{|6|bayYt zUhl=^S-qL9Ie^JK`!e(0{g~<fe$29U0F!PWh&~NuayTBo+&h^0RA7_xxht60v0!Gp zB817uLYS#>IP-pe1e14<WY)c-nA|v;nX*Ee8U2<Pq3^eiVbZZNz+o(tR*hxy;jzqg zD4bdB<C!UEJY%bnemS0be|Z%%?T%pP#tBSHxf*RwM8797Tm58as*GZ+Hi~&UVwmZ+ z7$zN#Ve;!xUP>%8)k6Cj)0uSJbd*7Q5~(AeNonzn*=Hl24SmmL(!{yw%RDAkVso_! zZz60>1Wrkik$&I-sUMz1I(ZF~x-4KUcp;PG7BaT;S|**k7W;YEF{$i2=mhEeND~$@ zDIZTxeTnn}(yZ%o|9aq>ih8Nwp9cPEuni}EA;ZbolSto2dSNk>`lkcKbnroX45>K- zd@_)ajpRkyz#P6NVmYu{&RE<ECS|RFZjm-34b6pKb0HVfQ%EE7P!3OfJ+~74R-%6e zOnR;WHik635ONm6+>3xi5#%dIdLxq@H!?P26_aMIV(jJ;X1aMbjBgFFUjqZbg~^L< zVWvlKVeCVsv#_Ck_*P~LT?<)U$agVTfwURvqovGrsuXqCF)3mlWJg-L4z{+AnIhIh z2e&cP$&Jc*H2cHcF^+&RAD@&;tD%Hd10}yMfy#IcK%NU5qVxw7=6_SW`8_86Q5~9E z=D(NL*7AD!7?<>Sx0*hvrfF(gp{C?V=<oj5c&c5mRj(-*{($Az5~crX<)*9UT($h3 zmTy(_E7g3hrdCe7ZZF^4s*kBtQ>|RuK2Dug<!)ck?@E5(UrjYRj(d>rX*EAi<(u>( zufIS|uT#@hHBDF3rE0odP4m>WP)%=A(=}?kR!y~j7^#7Pfq;R4fq;R4fq;R4fq;R4 zfq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4 zfq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fq;R4fx!PA z2-H?`Ip0^)!)kh)n*Lrdj;ZA~tLdX^TB)YH)%28_UQknO73b`)rgk+Qp{5aPI#o>* z)O3-WW~phBn!42VZZ&;SO`lZLoof2Jn%1f5AvLX6)01l2tfuB_E~lTG_E*zjH4Rr& zhnmh((-bw$P}6)hy;)7m)O4$wR;cN7YPwfV-&WHP)$~g>ZB$cDKWEiz`tAh!d*<2d zF`WAM{`Y#e<9b><?e7L`YoEif<2>ZA@{nKYA^)(4d}~F=?M8UW&+?G}pojcA5Bbd= z@`Jat4*ya-<d=EK-|Hd2(L;W~;~h53;ymQ9@{nKYA^)(4eCrb(w;SOhKg&b@gC6qh zJmfcf$Pa$9V|h|M<d=EK-|Hd2(L;VfyYCOtq{#4)ztuy&R?kQc1PlZW1PlZW1PlZW z1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW z1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlZW1PlcJ|3sjB zkmLVw_C5enR%ze=xdH!FR&I}5?mlko?pnERTUJ`u+9rY~g-U|v)7s+5jKDh1(9EFN zTA^W4Qek0|qG6F@QBt8{Vo_01k&<FzQBhG*QISzmQU1Qyb-n|GweR!(-g%zA;&Wf; zT<8D)bKlO6%^HmV8#*&~CjLr^osIwg^N%Jae%_eatf{%9hF*@W`PIbK)GJeFPd|H1 zYHC_ej%$AA;<L{_AAfsY!C-1=X_hB7)3?As*<5~g*1VyGzu@{D_zY(L+(Yh|M@w^^ zM}N`F*{P|E7yXi-;-3!NpQHZVuB62#Fmj$L?dJ2tRCu8{@}bYQ=;zOt{OlRh=}OJY z4tP=*X9hyqF0Z+|U9G03=j5bjc>+Pd&*jYwElpiK#^grC=mexbH7#RdFtjk$?FuZ( z^qJhwe(_2ThFob2#Z78@wkzN^xq~Ggc<lBB0$Bzy-|r6vLjhM-YL-6`k|&E?X&I>@ zS8!o!(BoZ@ibw9HUN`(?&rhA7>4Q&GXe8q`H!cs1JTl$x|JTew`3H=oYI^b|o=|Kc zJq;lR21h<wEKi2YlUY6_*qu7l6U<)Zk*CA8?j(mU2zdgFGJUR)M;%YJ*@QgClblQ> z(FCT7Q_c7Jp7cy#YMLvQmLZCyUWEs?dmqo~eXQA->PovhJ2Rl6&O1UC@OVA0psF%7 z<h~+U;L7w$AX#|s3i&hT?;QNyR|H<ae_?7i%Ebh79noCl3HXKbh1}jWuiu(3w2VUZ zOKAj(E&H=PKEYCp!KI6Y%7qs6`mIz<_k@C?tX2wptX0YiWcor2L|bn;+q!L33V1Yi z%?e8bnIXkiK^XP;G}qgSS($FJ(<!(x)2r$47Vx^VeW+({R|o~;_4>7_bEA&XxHHp2 zXz)RgR83^Vk@^LUOyQ9VpJxebEYguK{)!{ii-P*7R32$n=Y#Uz2htF1oKR!Ldu4x> z+oKVtvbw)=k>8yf@GQ{0t?jRp-b>8Y+sENVH!6A-r7hBeZw_PDQgPfWm=($hcwFw( zMcJsrsmQE_qH6!SD%%%Uc8U_|cYAWgZMR^sw|H`+1$})5ov#mqX)d3Zd!b?|;I;Ls znCMGG)n+_Pd!N~emMbp}hCEv7Dh0EHUXMppRV}zUBE;}8=%ktfCOSFfL1%d$TK!b} z=d)4isag7GoHx_s3ti$`<Vp4f7Nhg2d(AO1u}KN3#+BehTSw=ZYVM7;?#!preNI!& z`-99;$!3QG!)8@ff_W=yrs<5HWxk7<<}&pIu8`V0Ez_47pN-7_bRg;(LhyM)E_Wa` zlxp@jIOz!3K8Djp^6=mu$3(;49w#F^<n}M|nHOU;`fnX?qEiA(<D@f*Llv2izBg!Y zj0y)3=U=o4NikmzoP^R`nB{WEW@RPBn{Nk3o91!GL^17Kqcq_OK6D*kZ;~sNVQv^? zqLMOEeRf98LTt>FQPHMto{2V{^WaZ4`>m!KnjX>QyNrqUp}+evDya5mX8U~79`?rA zEWYI^6FtT23YiVju|B_V=^}r2P>sJEo$OlRF&{=po2Gy<*12SOf|zTGjx#q8nu3}& zBM^slpowf76p`oRD0TKZ=8eJ8rZs?w6kZF_C8GN}MAl>SVzPaG`Eww~L?fYrkYvV! z>7F!CFz5;_HFYuCk;Y{Q0?4!!Z2;3ei~LZ%8IztFM9GU0^KMME$-Cafn4;TJFHFH| zk+pY;>{;s|Kq&_ERg4T2-jJyo5M!!}<+(3_zQ5N@*?^!YTr6<`S1@C$%jfnYtA89w z6FUab#4|9_4ihn^LuKjRY7QfJd}c69N<Y;c9)SN$b1g)MU*=gl+vUynB)KxBQpNdE zu7T{dka?v6HZ)Hw2BL7L1W?t?qXVU`Ru7zlo-NT8423hwyfZMylp!P}be)7Z-ILR& zJU9^LBTgB`58${3&SFf>dXYUU8%yNx$_*mBR94(0f7jhB2DL1;MJ;fpdCb;9ezdNf zkVf#WK{2LLT}ch;bM$&d$@e|YI|_MxpI9#149f!~Me7EOA+1=ggOkH8=flBBcsPkc z(=m8bvL_8wA#-T3iDq+na<JA{G?eba2}yC{I?kVscJ$L=R{cGLwca)jjxo90CD;O$ z#VT8B<Vodjjm}ddD^#|qEUHy4q&YUue09_;v-4L|0_btvLA3PY)6AV`+q!Kw{5{DP zFt5eVL>)w(e=Q#M6>dJBGu;zf;txnkn~zeH(@<`{U<M{tspd=f)D+X^OYoWZL$fp8 z9)GI&2pJNkJzA<+bu@A~;P;}IrJC*6n*njA^5{wCi=$`SIfN$akz<g13Fh%*l97pb z9?N1fd*RpTNeiX;FY)^4yS(c5{$q^oI<!Oh_~=A`8Z{3d6Jv^>mQto|%~ExC&oSZB zNLUby?gqU~Fiz$fZc~38svLYF`&8DbtXDf~!0bIHvOsE%Gsn&{j}N)T92~+-G*2Hp z&Af7~<ds=<Ttrr_K8_i=_PB^VGnL07%k~_HM#7viA03DMyX|<*KePFGDTE4iw9*T{ zJS3Fq4Vo8@y(G?jhPXC8?KsIH7bYu*kx@Egn6HO;e4apNT3_w_PBKvjl9k800+{yg zfX~)mpDT|uQJQZFNt4jWNvZBS_6k=(y3T3RHKlu|VwPr}fv*nDk8YKD&q(e{<6oq$ z-n@Tob}%!|d<A!f&mdkpv;@sp$HtfvxQ#L8Dyvl1s%%i%3@PR44<Ib_z;Q`l*HZKP z@iC@N)txGPROUY`hKf{{LYk<QB=hcZ(-M=j1KNo5;jKc|)hg>$Ha_b(%>5N`(4r69 zAx+d`^tIB(mL8v#9WpON+ojsvI?+Pu@}eS!kQqVq-0`7IPtd#yM+H!$hN&!5St%Zl zn`M3+8g5RD$DDn>**~1k>BG~enYYJiX@;BBqqa#c9y4aVc|WpQJ@wCsDuPwem~+ji z(zKrNC78{jzPci+@n+lgwygoins+xl@t9(!qi>z+M`!Pjb-M#7##D0)rV(0;N`57^ z2!78VV_HwUBu@SsZ{EHU4HbW$bFO*pS6Zp$`8np>8R%0bZR)qt`Ze#3hClO(`Z4d& zz4>v5k=APtpD@X+8z%i<CWcGN0K{2ZZ>Hau8b3K{=H$58l*#etlVK^Qb67G4sb9x? z()^3EB&M_dnbI4dIN9fp%?@QG;}N`>Pfv_<`O-XId6trywh+O5d7|_JQ(eJC_`sZb zia&sMXTCi#){W{O$_#4IrsAZTo~yGx!H{|MBy+UwWVQP!LeQ9op`&dZCJ!Xzrue<G z;M?)*So7ttZB%YYRMG-Vvm`UKvKaQ;CrPp<x!mcVM9*T6*R-7^_0|(mllIXkCrxt& z5Yfrr%=FCpnX;rcPY;jJ4!9&ESd8X{;i!?4!7+*c^mLDVhR?h`Ojc=;ssG@_grNEH zL{!BiywC7?GkqQ@FOPWzmfE#4cB#yLPU|oihyS@49{6<tQwF4MmbCWC(j-jfuTjb2 zAC+8Xo!Y{zMe}4PN-Lm!#RtFkXC3kAQ+RDuPc7<cF_wX@`CgCB&6`g|0h;Y6BC6`9 z>p91nkrm2Zgofr?l;!oz)EO4^h0jayC6MSHY%O5sA3V|ifdaq6Ge0&f)4T)s<?6ml zWv$8vmCY*KAWifnPX;=<>9Hwh^GQh=exJvDb5hC@{}fjmdV$G4iKg3ZLq2w@rylVX z^$W${e3JB69x0+(GZRhcNiin>1?`(uma42!Sq*8TXQNMEkO|{khbOp^!I=w|N>{sm zxYW%|S+`jiSb|G!--RgDsrN>eEh^hpcB#y*m*5Ii7DJk2rR8n?ZL-IF_1|a{wihx@ zzmLa^-RpO`<Ge0kESlhAR70Il1Wnt>1oO>EeaLn?0}V&I-zWbt(_@<c80R%RMqTR9 z^oi%V3|DBT-@nK-pOWZtE%x+#_Vy_=uoe$Lx&oQ(Uy|UngXVjuPWEBX0@WT(6sth& zW27fyCTa>!n}nE7Mh0YMdE7|>|AI`fCqWieHK&=uNv7hzr<m_Y#F;mKpN#6^wMmLy zjAj}z&-`(k$DNtIsNci-KPI{Y>7IVi_WV)WHs*;~9cvF1G!KlLp1nwt6TBi51&E2U z3!!KFu{v7HF)wH~o`zMA?nRlF|JJ5G9o-K0xICu&<i4mP*4VN_%YNoG%uz-A*?-&S z*fk=?R7=T3h0LuZd|Ch!C_^weo@!!}%>EGxK53fTI+C-nPLg_2{fC*EX&FiA4?XDg zOywxaFOLru-li?s8_my8#W1DO)WAO<AyIWpy3FQ3q7rEZY1C-wG|$}mJ1qmOCUjDn zdzv{a&Tqc@-K3=nx_Dl5@=UY-<Rm8jsgosg+O@gOhbKq$Zih||UJ~$Q^X8|Mrv&_q zlKt6%G*8$_=g4p>zeoIJ^19;WEU8#Er=Yj1cbq;i=97`=3p9crtj<vTgBh7wX6MO~ z8Sv>S49x1r=56E2n%dV+#tisHZ3r(q&Q#=)jO878TC7jYR9332fiy8T(f9v8AwC?{ z2Y;`o9{D{MTl0}>^Z4&$Ouc$(QrRjVqpZjJ-)qI)11BA->{glg5}ZV%jhGuo`X!yV zl+1mnXnBj>aB#V&nt^d<`^YdijMU)wjZAT+n`YY>`&#JRBWIXHe=<>8RL_r8Yo-l( zScnkOIjSsIS*5a8WrNCQm2HqFDrj!|gAYyLBaH!*XsM_hPBGDfXs23u=FvY$12%V@ z+S^Rcji;e6R69K?^IvwNQ~c(;KP0HN_)M4ApKdDtXs1_FPg4Bpo=}EZmEh>042?;G zGDUwxkDVkFy>)-oF4UBwmKMD%sVP-ip|V<K-OG-{sY9~e+^R%;8dcY#vK`Vy+u^<F zPg!0BZ}UD}|GG}Ki(a(TkU!1uP4Kagn-uUbkr+L2nu)Qwu)rT!WV_!F|0EePW5EJU zECO2M9e=WB`!&n8r~E?S6*M~#$1aUsE>^rIY6&LfCU2CrW^O@MF3{(;N^Kk!t_o$) z6w4afl&P##S)*<}u0X$_KNy7-i$qd-l>Xgq`>CkE>b0rCaj+UU-;N5`-&LoC16z$s z)T*vJRCcS(dqpB_BUX8e*&#Izk5JQ8k&=mO({PH`o_)}jtFB6At;z;<Cl%fr`Ti7L zLYM+Xs##sMsq9qQBd((*38wngr0n@#EFkVUP4gWUOM<aoOfmY_ST{Dg&1<LH#L8$B z9$#8uJ0F`=s7ESGRaU61R#~UAQDuwDc9mT!bN7nh0+q!o%T!jXtWjC7vI$a_D!R|w zblR*;bZl>+v|Cl%p|V@u=z{Bq(`3PgdGwgG&Dy`4fwRoBqa&7tWvNqBQj$b{u6Y}& z;abE#xcweSCg9`DceQqnXU#l^{wAt#{@x<<aGk%m-RPk9G$MY3WFoNr&&lS{UlL6I zUnjA?PxpA-K|7*^%$76bGCXMur(nEI&P>PIf$Tv%bS4<vOexp}F?nOKxw9xU7&P~e zF$0oK%b(*+&FKl|(CM+}jlWEmjYyAMN(kF}>fz%vWv}b2Kg*PQRzjl7hob{D^Zc_+ zRGJ^#3(1)>lC3^na%LuWl(jB(oQ{Ic%F-zahPl(RWr%f{C%^|gPR9_6G+`W*lttN9 zgvUM0mkBF48u;*ZyInTP6@ss&N&Y2hYE6GZAECZl)K`)@eEK4ZOZ8t+x6S&$EIu#1 z9+AnA9Z_x>V|!VQACLZ}Z_j1TnHZeZN^<5k9#j99nU_q8HG2?3mxhr0s@5Gy6Q!G* z9e=SKQ|9x(qCDie?47PYBg4PMJa(q+`^}yikL|YkemS4|@GKJ(E+0Q8g_)fHeRjq# zEWy{GIeX?*OjWS0jVg$2#!MkRXFYV5ltrQ*GI#>h{BDmaL5h<6K`g>Bp<MA-Y_B3B zZ=8kRMPrK@&R?-YizxD+5E*W(NjZ42d+s*ve`Wl_A#FO-&gyPE>p#b)1EExEC{r-` zN8Lh!<5bVwd?w~$vMYHzvb6>d&{L^wQrW7qLuI$hynT|f5!EcgC+qb0&zyoOt*pv_ zrn+kkx-9jT=<%gv7Swa5^|JzTDuDvMmdYw|6dm3q-hEbrZ&GG@5~hfVuI69sS#ek_ zxWajAx>1u8e6weorn6?)nJpHrIG8|ywQ8|JWwXjQm7OYkROauOu!~fds;p31t+GyK zBczG?k7?UC=4Z)mM(8c-w_W{4Y{+zt(G8im7wEcv%mwDwvy<(njC3XEm_rw$5+CVl z>)Gn5XMu@HHT&qntQ((Xaxa*f?ezpvfLWNLc~X_kgBO~kq`!Im9Bee0AI`zD;r?^& zHhH3d{`{rpopG{$uz!CrP8SXqJ{@Og2zEkZpM5zF%a<MJ#bZA(<k3g6CO6y8$IiWL zvCPlylK#DOtoxF2n8@p&;mO;#<Iu!)w)Dk0=Ie8i;Z2h5rI5(jNE`Q@%WVPmuY>&i z=VJFrT`ux3_Vjc8!nr!fu))3pch%}ny}fm=#`5j+(M`$Ifp&nfEz9f~JKZ#mwUF$^ zJ}DM3c0p|N#-Wc5$+iaF-ZIX%4^07|6^@g}h{}$&DN{+!UE|QtX*6VYg|5R(MfX@t z7jzGv4}KbpS^}5o%T#u$%sn7a3RD(Dnt|cT!NGAhB=h4qP1?ruWQ<0qkKVEQe5r)C zCYevppP{px{PE~k)KI0$8kO}bn^d+!V*SlUM)7%Scl-H?nTv47@(r@CL!EUWa9Do# zoga3*^?VF@iDu7vKDXw-E~0R%xew2^j<uba>09WrN>eo63{>MA&SxTaMaH=8{1iEs z>^WbmrL6bOit#oLw;>IAa@J-FRhFnMS6KyVqSR~y<J^fj*Q&BXWwXjQm7OYkROY`f zCW};-s;p31t+GyKBP6zAQ5kxhmw9A7Hto7El)Vp~Ozasy(}UyRU`DuaHs6nz?QLm} zZgkY2kC(pI<4*DOndw4;TGW2K$}SBBon~(!G`;l#Su_Uv+O|1xL8R#yFF4Zl-V3ns zYS!ulDU&m|t`V`c&?fQK1r~$mJGd-XH%HpI=fWcsbU%8eGPPQ%KG2!eU3jFo50NF| zG`C*ZKSw%XphgYUt87x)D#ixF*!I7nt74iDPq6!m=I)CUkZ`plEAPgOlFWM-Sx2^u zTlM$w0^_y6=@DIcJMp^->dQQSkr|-d?Knua9yJdhoRAnhJ%S&ZFvUDRfs53L=buf$ zvOf(wc>X}d)2}8VhYxBFLt+PC&uAhXygPxtSuo<^NAOjwzRFZqs;p624~aUA!(KT= zxbq_0O}=(fjA>HM<=L1)nMas*ORN8m$!&!8C2CCzymhGAZk2g&Xv2XtQOHIcC3E;9 ztytkOSHfC}IxJUNrLtCK10>E9WWH>+{atJPVVqJ8iZ!b)PBv8+W2}{(PU(Bh%@a|W zw@<_lvEmC8Wvd%gx&@hmMcO&ZG|Lpl+7f1Qu|i@CMLn&HHBoN$pN!5Ddo3<(nFr0o z7pJ9pvh?`f+%OSo)M$Cko{O{Rqo=Y)(0*hRQwkH}HEi;|i$mtki6%-mU+h5f?ZwG{ zuiyN5ag6EKROY>@*`%@r5*-@~7JF&E`{UufdU~P`I7h_#wpdJG)Sr#DIWW;|#<MDY zCJB?QU|Lqh{@iRn9M@{_4Jw;ewyEq?*`qSQMI(pv4m(+BjK!v9-&u%VjBGE*nxm-C zrTO{@SCg=7y{p`@C!#whNtcVbVYBSHxH$8A+zcOb61|%)y2IU?+Z4se%Wj>2=_HRU z4YS70@g^GMe5`qY5}y>s^$w!;iJV~R){%KN4(ko<a(b)+`yO%O@%BikFUKL{B=)_- z($2VW_CFODHmRL{MLe<%PGd}i%4U^qDmx)fH0I+WhG}k#*Q1Jv#F=&R8CVf{kPKP5 z>O8=d!f210$bU;r7pW{&S)sBTQr4S#G$!l3^GsvBR0&%s`?ezg>-)Je9ae9ew>su% z4F4YU`s8Hu=@glyl}=5Nqt0wM=klnyvF6EyS*A5X7vI4QQ+8RLdG<0p0pl}|Tg|ji zo9r_mPMai06Y@asl3?A16U9$wm_dqW?G()P-R9vbFrAJN4^FYB%sW$(Gh6|W`C!WA z91L?oQ#4h!81W~Du60u}F?q|0iVZIHrJ0&3c6DQ3y#y1~w;abler5_f#J44%3f`7o zA-g~^`|-F~AD5}DR9ORw<!H#<a!L05U|Jw^zNdd`c1*`59E66<3@yOEPtd%4$&p!u zv!pi?WO~}qt1L}XDT{C}RxhDMOM#kCFVPH$%gFXEG+*L;_FF{0N#oM0anYM>`M6|( zGc0o(65OH6Zk2iOXtw}q25Dx0F|~i>HYZ%3?GL$3H43Zp(m32$#3C4>th}r@Zl-#g zp5uyt%#cvo%)S}8%p%LybqTWC##9rxeo7N;$6t{k8;`L*x4L*V0bR4kqFiN_%375T zDw`qEw9<5Py(a;g(*!?ls_RtQBQBy5tD7&)a?2@Bexfh<%h~_Qbc{qim@peI)k<^t zQf%Y2Iu51~Y|W-&1{QyD@#eKlBTFFxCj_%`Cn4NcSHKl*VV5sGfU_d=)ukNgzJt}G zR>|H{l@*YNQ_SMa?4=j8@iI*4Rb8j*D{#L7cN(&^EOuXJ&*E=Gi8rcR+j?)ti=$bZ z;PAv?MIvrKVX%-5tsqLO&xLt(8uCny^wXM06Z=)Pa1u?=bTd$6aX1lsH;XepOO#el zOEIgap_@e2#^D+2W9hWnnZfWW<K}5NDYTU!(oN@dZ02e*do&7}A#@MxrnzvoU4eMz zzpK5F%2JgTDyt!}ctSG6IsV49a0J6ozJcjFb=|10dER64rfcdWI*Tt+T9Q_C_w?Q@ zFzfKJmn5X1shpl{YGAcRt+rdMY|CmB=U3CEPjN?<R?y_5n7Y(Y?t9u>s4P}lrm|9H zjmmnJZICvF!AVOca%|+aGy2<p9=1ExM~}+<_xmc-J2T7&P#575>YB<5mDMWiAk9&j zw;WEAuK3x@lg+`Iv$D*l<Ty+!5nzVQ1N6RJQ3_6CWGBcI@wB&QH>Jp3G;_!7aQnfU z8b{W;pCl_ZxuS6E6|o`QgwBXiNpDekg^AKxg;{$!HiK~cMfSdereHQUVeLkmeX#p- z$priN_F4AEjj6c;Raa6mSQKX0%!t^TeaX|!8!1|@yJkfMYwCLAi3M8!m@YMCS4_in zg?8K#_7ZUC-F$F`4OxTx5pl;P``mNPD>HS2#O$Am!qB|!kyuG@-!W58Wo^8lNs*Bg z5xpTf!mzmwkFA|G$=1&LWK{h&t@@Cd6-vf0PM33N_1}Qe+7%i1WE_6uq6)I3RJ~QS zIRj$Nx|9T&tkkE-r8o@HC;<#R*vvG0QuK&t+pKUI>Y^9-N#>x}Q44h%un+s1Ufgxn zoza>UTO-^UCULs~w;d2(qq=TU*{-rnW$p(O@$5xr#VqXI{-5&nQ)FXAb_C7VS=g(e zv4F+T>89C%zzSd#W2?$C4M4MF->eA#rgK&}JKJX2?EGXF_WsmUjmr8DFoO3>+Ksa@ zG^(yu&4%w)MpO?|Jv)+~gpUsO(Jek=G(W$dts4?{H2Yz8GHx+X!^xB1ZI)lbGSH>| zO-M`Lhmw{;l_e_6RaSk7qey>1>Miy|;jmU8H>hk@*`~4+vR}@zSg@@eH1Av?ITJMB z!a$EY&;Lm4lgd(+6_6$xHSfH!X5E~4KgI@+DV-BOv)n9oK^@kKL#d*0xHIhVDX1G& z-4a%#CA>bzX8BvtwyU;FWo|o644Pz~{vYXT-n)`FYvU8+Oxs-So!g7Hf}hOgm=$X} z=gMsrtQc_4jKx$SkewAW4_$?UB;K2*k8vun^Ph-X(6oqQ_?NkHc$enwxn@vuc(iw$ znky6iOJ-;KaibdB{*710Ek!*`lY6$WT{$~8ZjuWZg50L%N*HJKfH%#>VL%_YUL{Sz zof5!dka_H%Xm9P9Bx2^Ve6E}yPce7S#fBXci@Z}=rwM0WHc$K`*0lU%vMYf5hgcNh zd^!Wyxsm=HZDF_0jW>_a?F}v7lZDMW^Vn5(!`F0N6*=N<Lc(Qv)qAe-+CL^?hM^U4 z%T*{G2{|gf(ui~!G(Y?UQQiqhEgH#om0c=xKNfGeLV1P9vk;ds%_DQMt?ykblV#bB zcnFCuP&bKjwxT!B^`?b;{&0U{ZilmCIK%dd%1V_r>M<(|&io5zEC^?SoCt2Z3O65r z_Bd$P!%)3?Zc^E*vO^4^?gr(4c6?^Qym6J?GW+nVN!giRcY@ojfyZujocD<~HAoYs zn+UoZH8=kgQ}#u;W1NUpyx9WhCF-zTWtGZWl?^JJRko?@RM`V*2Fl9kJhL%1e7;-z zpp%R~6K{8<>bZp6+t!O~6%RSH^q?%_F)qlx{J4`~3iryf@`B8C-6X{&Wz=%B>i||$ z`JYNsZ6NQ41L<cPJLez&r!XIV2qwzK#DG*&I*)P0KHe97K1_8uV&>Jyohhz`o>}op zN%9JYIe<gsLCI1LUY>_m_W3+a7uLJ5M03TNuU*oXcg^S0*z8ZkjOm=DB;4G>^Y(et z6mcw}Sz*3QLorG;`keGGn9UlOxb5S^aNMMhaSNu`VztZeOo&^v#*J+tb)vf?aK#H* zdVfYHb6=ol_?Ps0$E{mj_E-+f9qLV1KTw*R=j+_r+=SR4X=2-anX&pj-d>~I=c7`= zKl<+uBqpXWT<LE;=7;%A?@rVztR$Iyoje?LPjlti+|dQj2S`F8tf1bBt>{P(=IJz; zMvdSdMOuA9y1o97UO|e=)k>?%4zU$Q_n)QpGx`<WmVG86R;sLlG*P`}bi3O;ggDjf zQ+pjoi*k$GJcj2@>Zes@hq}>Z?RWRZNk_ML;I>;`<$bOVPi2Y9a!4~!=iYr6O3iZ~ zIjVWtlVX-HkgL6Ys-W4l04<?+`L$(1LNG!rj?qc)TYy-L<)}WLZ2Qg+$ZHHgcxKQ1 zrRUA?)ug@xnYiW{=yPM%FTmB8hoEoOSa+!GR<}B#d>&m_#7fFEz-itWnpl-3D$615 zN!Qutn+5hhinQai&0`tZ=doH-fX#2Y&z@>_W|$b+pL!r&8dgJklKC9lmbl;O#oEPe z$uPM0XYT{nrpvTQy5r~5kq8Z~Rqe@hdEG*)V|LKAr_=XC2(d$5NHh2`-Ia~A>NR-S z{e=^y>o~l7V%BHKI}K(Np67LHa#WV6ELT~jvKCU;4(l`HaqMm{v}m_BO-}20wfULM zNv1wida~vJvQan9|FR2HvwI;2MV&I4A}@O8Y>&Bdk)!~NRQU0ksQ+NN1~+MOWnd8s zNTbss(ZMu;CL`nUb*7%&>t0-PHaZI|#ec{|y47Rem+%<FxtR`~75_>ykN!&|V`J91 zC_H+<hVTl-L)7$3WM-Xu-q;*WiT3@AF}Ci@eQ3~XR#IYq{1-0wFIXVAIPYJW=*QJO zw|Q`(P3$8JO>}SG-@Q=t{+@-Bc-;9~h;|J#s3<CHRW_(>R@nw=1{_h~Jqvq-Tj6DJ z`Ce9n+r0hq{6#O8D{87oW&R-vt_adZUx7CTxo5N6n-FnA_$-E7H#ND)kW%$jp`P^C z#pmA1URM@gUch@Ka?8SW;bjrrjflkt`1c60T0PXMY*g7Ip0P*W8{(!#ePR57Fxu5Y zZ<)w?@}=H-BDpS4?nS<LslD8<#9puSrRM8?j+dH;;j{pbFhx<P5kZ&u`hu>4vodv7 zsj^08y~-v?x$7_O`CQZN>%H(V55}3-i!toBs>|Fix-{QMxH4}QJGgdd$DSAcIAs3P zAMaU!%j39!6W+CX?`qxw#g19z^Y*LJLC6F1`PF=z#M~9c+iMYiKlR6<bIg=|d>pUH zeXnnVC@qal$lR3W!}a~Xke<1^zwgp4>)WgdnL)UWx$0`(64J(mD=IQy_2b?{<<)Zk z!(-2O%?^p!i~#O<*d2eInFmbG)iX_<zSkC;?(yMmCM=|H3&qY4qF)PnXlPopSr@_^ zVe-C{PJzq=SND&8eh4#bL?1OsWu3}Kl`UPmqO-fS*yPsx0H)<?R2|iKsm%QvB@vAo z%oc1UAm`<_O4#uvzk8`pEDD21&SjJEqS%wjU0QuEaJ5|Bzrq#NrN9hiLMdWyv%$O` z5KE>jfU!vSIop{tp9fIo5I(A$#KJ1`f*Ry4D3~(URjRB}7m>wN9Xzryd*G*DT{o#~ z*AmHe4ZAa_7q~sa*}UN$C$AppMIMhSLN2zdzYdk%D)YXPm=&rlQCY6CN@Xo1ipJE2 zlEUw9gi<jMqYHka0hhmU|HV#E-wO4+Fn04jXao)FS)7>eUbR_s56%Mgy|y>Alg+!? zy)WM#T0F^gFP8Cd%MuP5&*rcP$L5o4EK0bqEse)X3=UOfXT)?aO$nIBYZE=`uC%48 zSe(glZnj^CAx}b&&M-GFhNtqyA%9jZURL#|TT9dYvb%*%in?pDS7F~Iy?3#H$s}xN zp>8C(F!eJZ!A!TB(OWz8>GEYRKrN63nZ6#{u{d#Zd>oF}0%qHF@pustljfj@QJK78 z0ghA6*6T5>eyceRi5|~|%T9iM$-}H)GTpPJ|15aZ5)35jyj+|Q#*BMOtoc4C-jrXH zY<{}t5_9viX}F^0_h~J9=~|7SOu=B3+sL0?*LMw;v)hDtv*CJdPve!Y9J|BTm#u9} zQO<~}N9J^V{VQm8=kQP1m31WU*V&8NUm<I%G%4}e2u}0JB{loX?dMu%exJU&(f7D3 z2m2YCqz3hd5;TQNBTB@)`EQNdgG(3pm3E?D1u*wsgJy$%Pu~hPjZ0^soN@4jW%r!< z{v1nY74o=QLumWfanz^zWGTiueby5WRcn#e-gS-F+nWOns^l81ySk;Mid2?D;uJYO z6U$BO)-+zDNoG}<3DB2<)?SadCT$EmuF-Nibd8N#&~(FUh1#oD*{oJEdim0kv*zJ{ zV{U@d)M7;bV=>4VbC7ELzSn)Q9v>MEow6MGcdWVV+K5azjB;rc<Kd`$`)`fPkN*xw z<%VU*5{*QU%98ISf!?KA8Rns75k-u6_0<IP-F29+OuqyVZ6+|!-&vMC`)3b7SSD%u z6ycP^HtLCn5a}<~wpYBJ91-=ED8E{Ds%@PiR9_oWM>Ne(UW=|p4L7T7Q`xCLZS(KE z*5wQ0ERFSumR6(c&z6OO9#PzJU2>+J+D&!g$RbTEtJ#Xo>-o-cCg))JCf8W*!-M?q zwKAwIg+za^UXrrCm`A^fR)+T^&}<@~z6*a9>Z4j^oyta)Eh^hpcB#z$K|&}{S*)^5 zWu?j*mGvr{Ak84{JeTJ>$>ye9r?>ljGgn`<e>c~WoYvk^^HKWDgDafKPP1!;gI;s> zO7ziPViCRM<GId%>LFLIbg&EycX8jZM7Pfl^FXe1M30#(7k_hmG(C`*K$xoKPOSNM zxzn%mnul+2E-{69xJ?{x1MlQH5nbA<mCi5pX*b@8z|no}UG5y&f3>fG>gOHUm&={- zyQ~FzDOqAAXY%Iu6;4FWGVk1AO;@aNe%}9-i?Xi++P}iFb?S&7s6j#~)6`e?gu9^6 zSKwidKCBN19?=Jt+~EAY6T0^X_-Rr<ttvajXShkfa)Z8BY4+d1Xavnc@zAYK^L~`v zFN5s$@Dn}c<@I{FB@Z4d)oG2&7V)6nfHdBndCq_A3Z9Tch-}T~V4f4vj-QuYXjgOn zTpjM`s#aWeY0$YpX?=l|j#kF+$5uMO)PnaRWMqOgSljyASK?LLpEtkHS2}$Sy-TWj zu?A75vQlM@%6gSekT`KWVu-7{(K)h<Z<a{6s-F&(-751AO9Bd2mZ&UOS*5ZG5<|G1 z?>~MMn(g*{ZK^-yBlc!Xfg@WW?-e++%*r)RylGtPOp+$vd)jB?m27X`b*)A2V}XO+ zjhAk6<mA&lwi=ISnfGpTV!d7*t%cVRx98(I_QN6`-HedK*Gj_9w&hDnNF<~5U6}jw z9jq0Ds0CX^lbahQy_3pfNE72R2lE|lzpr+(&D(1nTqX}kb@HslSo2&lg7vvIjuAnB zEq*?~6&B0H${?GD_M2@QHs0mv_R5EMIk=Y6w{<TG44OyRI!8XLUh81<9sA_cQ~T0n z8Mw39iHr#ML0*>V$bn=2EzXq8Krn>A!(WAv*PPZDII^9gm#7ZiBB7h^TO83myvpG* zx4c&Q;wlFxIxe?tLGE4U#F+!D^j!!n+3}*tkE^5<^?JJto7s9eZf-7+H(qp2Blgx5 zAn}!w_-J6zl>dUCpt+%+r=YoAeAQ_7*XKr|8`T3n9SNUZ1yz%(T2*$4@u&>!g5$Ft z=G#?{JwOQ`yZdpjv`Nf$tLwbwQnH0AOH@{>tWjC7vI!C|lgU?=jx5lY0_SR34k16o z2k#H9cI2|M*>ooYX%(-y>8M|8a+_VZVq8u0W@B8H%xJ&W7X0=i+5MJdp1xR`eP{>a zlEwKzalfKoY95jz6(jp^?U%t@RwLMs<x!4(QRh9WY~7lSycLMcQ8Ufkw_#$)mqE4` zN_)YZ5ZekJy=@~iddXM(R~D}a3!Q0lqbSz5RKj|v5T6l{8+N+Y@j;=Z=Qdv!+GMP_ zL+fw&CW2|b3sLmo`o7QncpEx1>{U*}QU#SY-nBGnJ}q?2V7xB9G$9_hQg4q;1-_qf zyOZemrHAta^Fp%{aS2zxRful5h*u*GM^?L_S&PWwf{s@LFdGUT*(eHO)h;a}XznXS zwiF^mu*OhXuChvHt;z<K%_`eec0!scd)Ftta5no39XpYml_jUrX1x@9kGjvlLF^Z) zELB+n2@Bc{A`?P*w_2_RtzYffZNZ3Vo1`48)mNR$MwKlp+acwuW5_hGcKli4w57;v z<FYM!qf`zl2ktiZtnN*JubW)iqv;YugHp^Jcc8Kbd+)A%iIUU{G`$t&+dKL)|HnHp zwDewWx#7-m<u$k88SX61nmZ8#z0UIK9gZ~gn<Zaz^RypTS*)^5Wu?j*mGvr{RJKCm z6&SPsPFus4|58I~?$=PZNYcGtNqj`VgH6vnortb-sd-G2-y!y+`?=dz)SHHeHTqU; z__c$eDP0Rc-ADQ{t$kiTEJCg8^RP}l<gJv#l7?lzD?-lUGc4wC5fp_`p#G^^b6X-E z?l&J=<MiFt5{0RdQBTd(uA!Od*T77<nyFG*tFl35Go*={Z@yjQ1Z9K>Z|nrk_hJe6 zp(1KX@m-D-|9tzl_hyNAoA{5h^`Q4)^NqW-!}pjc*J5%Sl=Da3(W+bPgzYQ8Bo;a~ z9z7Zl2}|yXnWDAf`Vy{j{s0n<y+1ja#@9TgVDfL&rlYb{WrfOWm31l`Rko;XSJ?&G zd-F{5?DMsbzPh6DlvvKaNvojBVwGhoD{qRDiwEcp#VyVP#Bq(P>Qy$WY*pEzvRh?d zz8EZ2S)#IBWfi13Ue_rr*I~l5Y8}SQ2iM7T=fFC2ZZ5Zss9o!@2G~%7<-x%cj1Bnq zP{?zsYq86=MYDVZ76fuuanlBUarEE@l)PsNUk_fh(MiG=n(%tPe-XYumStaI+q4m5 zyxFo5UvcpGuruNDV%Ht-0r+vr{L78brOEac;NBkW$Bjs7lf*VU{8gm;*I~J1zF#Nn zA#->=^sS<g(vB<qp6=dt=z8#aZ(qpk#Zrg5lp!$e@bh(!c8zOGpzekmZQ^E_8?0M| z->rA1`U9EQ$VROfhfsJK-rTU!!R{UA6unPw-YDsx;!ndd&FvdegJgHq9Fz=5_aws| z-VTyaMwoXtI+M@~rsGX`pIcuW`(UFJpOheOWT(Np`cz_CD3OSgk}#`FkY_%(c}1R= z;5nL=YW=3VM3#PdpCvZb`|{rYjc7m;jClnf{edO&>fnA!UX}W-RljaGcSV0Fab%Fi z&=bJ>BsyU*-%3ag>bhB6qoJA28_<YMg_Joa5U*@-uE_9U3vT}gIBipt_}1Ig8yvZ+ zf?P-NFNmsBt@NnOzeVC+1c|K@+`%+oZa`OVzTJTF5+7;!QQViRn+lcHD(h4>s%%l& zuChyI?kdSA<jxBl9WUMjbGeVGK{v=wX8~Mck)g6oWu?j*mGvr{RJN+@P}!|AuR#13 zs;q=GM_*!cOVM8TZ<2Az{Im%TsQq3U=g|`_@@sQ`=RTQC;e<L}JFTGk<~~`{_uQwA zOPt_DAydA2gV*ECo-%29UzbU*C2x1Ai8nW+96jdlQYYZ@g?de6EqNalA+xR2!O;Q6 zY1=34$J6jP*lyY+Gbj6e^SyR>s<_vgte=*_u4p)#eQ}U!&U5$6<XU~np*qetq|5v6 zeyr(aVuH$DzRB8pc#}@9(8J=2@GF~;!HtqJ_-??{n=nF2lg73E7evvb`PQzoOC8Cp z#CAHbhmzRy?B0ZVuzaXg)7^O=yyf01_T*YWXa1%4I@mHtGr0z@hw5736>(PpcPLnK z9gUNxdr>0cY&A_~hzrtSR!UCd=25(P?_MV&X@~EJg);SvPfy<G=!+mP-;XMc@uzoe zk;KUA<p8Wi_m9F0_c=bdL^>X6Mtcf`=3}eL)RZ|=UN#rjZbl%L8qFG&^(vcGw%!`$ z1kERsk`8^)tupU6NxjPyl{vcJ4hLbLDMLzpL5xT8=<;k-3>^5F9c7N2)u6r%whG}N zU4_bWl~pS1Au;ztS$`~f!x(-cUYgWFt2(fqK;iwmR_JxMT5|FKP=$hG_o@4Bp5son zWNwFA?N+Pd8%5@``#FK5Y02DGl1q8FYfDpEqOx3NmC9O`4Uo8}uDeoZ_hx4jh7R-W zX0#l+0{7x($6j*VEB2bzN1Mt{l|3r+3niQ)m8Fm-<`OxA*y1DvF)X;;_>QOS>6*GN z(x_z_Aukh|LtC)G2!&C0+qDbdR*rnpnUjo}Pi}E$Buz;+FKs~tYBh)k2?A>kyHEV# z7HoLgZDqNf)*<ei)m@voi=LX9o`H6n5z@~=1<Z!>h_-fLxnpPLTjgb%PW9HKGJmzE zNo6S{c7t)-S%xiK&{$~RDVHUhS+Uibf*OjKmdyiOr8s$M;hS>wOSn+tHa%jvR?Res znW#x}$rOr>Tam{Ka&N_y$=f8&>aMMyyXX76YY=yx>aIs+{vBc!8O}2g^VwEslG*bB z8W-MBc)&p`-S`0JarRqVWq5ACXHxutqhAIz4?F;i<*<SQO=YcG)CKo556FnOhy!W8 zxNJ~2&FZEvRE$u_9P}h|&?yVJuMnpBPCT@!Q#%~W<quiFgg;YasvdMOTkSiz2`lW| z$>xa%CAAu2kD591GT8eMI=Da<J{aDvm&opvq?AMA%Ly>fdtfPk-EV2Fz|fH9!7EDP z`(ZQWD;{$5$$VIWtz>xt?a0ef9Tl=*#?0(cg=}O|jb%LVC+RGBvs^!`*T9=pwn`L! zcF}6xLozx`c)d5RO2ub~`sr4gS0qU&R9Oj$j|7=*4>NLo!J20)(Spp^mAbpu_=q#b ztf_Kln&v80t;~>o9}9&dciE*xKG`nAs|*22n0DD6gP!e<zEY$w`Ea%(m*NtV%tMb$ z_bfa8rv71!C+5j*nAsr@UaZ8x*zc~@)@{56C?6d)&D)*60KVCd2_I&y?s$AJN-ovo zs)W2=*w6ouJ0fr5ndcC46k<@l&5>Jc>nf2ujgkwx-EH38=IC)z#A|z4xuVZ|dplx` zVJUoaYl<q>zyp<7r~P6q%riS+yG8T4y$EXpoAjNJ<7pQ-E;|^)$Ccz89WtLZH;W>7 zjYK7)6h5wW`X%QJiEsg2VIWnvp*VBPBN*Ajw<ZrgCXFy$dCZnaFckNmTCbOUm#V7A zST8-|XhZz)v4~7vA+atK)2J5(kD*xQtx`S63}2YD^NWV<{bGjBHz0R{_HB3UXV5Uz zwQYC$*Aq@nI{!n#nR<NR7+p0c<?;=>i1%jwIH5E**h`fty~iF$LzDJyGZo!PM3y}z zMckJIm5)W_KzP!;25w?{Gotk|n-Lw4p>E?=MeTN&x8E^gjGy0*T&dJ-uTfdAnU6I~ zUqClkVR~?T6&yCHlU8-&%?@Tn^ag#-_f<JqDCl)c$)pth@*z^ft?3#mhYmI2F`rjC zksp`cA}Q2<#^i5zg7~Vces~T!zDYEF!I=%)9k;n{2OdU5^ohtulrQ0QYlQRe(w;$O ziOO=7RVr&$HmGb?*`~5nWsl1IwPK+N(nKARGP7fcG?>U*Z*G?=U#fm8R936cB=g1& z8O*gleJhcd@A-ea1A{dNoG&H9b?UrPWsAyom0c=xizONbDvMQ?sjO64qq1IQlgd_= z9V)w3=G~1X48puz-d79v=H|g_+%SHmT6@I2oz7&;Jn&g5PZFB1%rwmAC$Q3Jc>+sG ze8EPZVw|=Y=Ij(`-7bt<hjt<UWny2xX|1``dnZV5)%{fM1Z}-uJk~r}<6!#~fm~ug z{yN!>vvXOs^<8ofnnO>)WTlwI4zby@Q|1S_SHB!FF`IW`mpg!UipJ8PG$YBpu**qE zT0GW<p;t}oYGf-Vd~4dg{S@*XBPrv>Ht@qv$K?&zG*nb}XfM@Bc}U>+dUs!vP3aR6 zbD<7NbfY@L<@zP~urR*O7|xxbX?#LA$TZs0nVQ$0fcqA>$KjXy^5Yvy0Zl{LSBjq# z%c5P5EK?+K>DFdtrTAq>)Ran?U1}qDomL1)>?NYG#DOag;}>?OpWcOfWnK}-#p<j~ zo!LA2t-G|7Garh&Qq?so>(vovqPI!`xfU_2U_8NeBm1J`J@d2Eaj6M6cBbIp2hdTn zy2i2ZJ;j+u&2h7JH|#d4#a5Mh>m{azkkW_smPkhp@?P(Rq?#XhqwlgWI<4N#DfHUi zJp45qb~{O-fVoc$m#DEOl?5eYxE#_Bbr`iHi~N<{GVs|OWAze$8^EXG0KV)E;9IfW zs@6(2h|Ok5S#=^8%!5yIoa4Iho~N+etKSL3H7EPI*ZZY%A-l}0PokGSvX;s8B^@)^ zyTw&spJl6HSb6JHzc{Xh)ptsB=+?MZZIl>xs;sz2(jFcGYMw$&WneSUi1T(R(JV_v zww6XoZpw$vn?={5PYX9i+0mgxo|SA8m*tSC_R?43Ul*yx!cNzCsiv_OS=d`cpRBcA z0xN7?t@I!f&F`gJSgcZubt)UxZm<8(`uqP%oVTdM4wc>N95HxW_f+v#!pko@2H)8> zJD)*ckUqoQUx#`7t99CQt$WVFr8^W*#4ZxD;kM_|c@@0iOz!`6-UsXTEaqq5;(fdx zrDu<<FrUyFANz^j_0Ckixs%{a^UK{pzR7T)9`Abx{b};$V40rk7YX03M>&VgOV3~m zBjd683=fV<GLJv2GXe9~v(7Yga~-B3{ib;49wf-mk2ct*y8U@{uDhP^J^eAuC5GuT zJG~Pjhd&%_hgUgE$IjT@5_-VzmZE<BSqJ|x&l1c$u+$Cd<t_8x^T_Gqd!>-$O~<ox zkQp>LiKmD&jvMM6^d{!kdbll9w|?wv;VoD^H$`Hh5>K%QtU8~0w9Z+uz`R@sMg6@| zc!Q4rVu5*19yO`kR&m?++2Grr!(2Q~R)R&(IY)j$_<od-?)vx6XP$ZyhC0+xw-_3b zY(9QYn+zMFootwU>NS(I&<LgMg67$JM=#{3VUD%8-jR#c=)%(RaffgrzNzJ9*L(TT zV`hbJ8Mg+q;azh2MahJ``y{!AkR~ceR%9N2GH~1TPL|F%TO?OX)LFSYQ#-194Q`P6 zGWRp>;;c%Y)v9bz$MQ;z$$bG?BB86V8()CSW_8mhZenoADqHa36B!)aynus4yrJJW z*D{aPJNBb=xH1@yru`n1{i5?n^^UGlX8Bxws~x<Zk80Z2GnvOEvpY5D9+mlJlKdi- zr79~_R;#R2*{HHbWxL8QmAUte-vX7zD$7(>s;p62582x{#@g1(rI;u38{7}QDCgU0 zcE%a0*eNk?Qd_MmJ5+Y7%-bv#CZcKEnsM(-(syVJ#Yah#%||aqRJzD_YInbk<t#E^ zoJPJ*`r^w7v`mcKcXywD2}{ntH>2Nu3608*IR{?ip!ViV@KOmcXgezF)jOk+_c9I@ z0{Ycc8^ygZ!-V{4HoV-=_Oqg}wjX(!wjY=1G^y2Al^rU(RpxEc3JfXZxGrm@x8~bi zW@Q61U{wQpmwsz~v#S9%OT-sGFCSiz$tj+$dABz>@@)rvX-)FSmz`yv7Wd^ER+Y+H zl?^I$%cUGp&k($HPlp>Y_gwjk_TZadk<Bgh?km!vVgYIP?}4QP@ezeNrCI-q6HLT# zn}WgAydt_H(M4abH(hF9k;xtxbLO@^m<*cjdyqxiuHJ-EJN4#h^@8{>>+`R!@KMe_ z8~S9M+Sw(JD>NedbnBiYtUWCbs^9=+s<KXHgUTi=w~Dsu0g(j{O1%4W;io;40ovsA z_DUw`pSSFV(Q-INAE2_eLb8J6a{1oAarwSi<!u3}pXP(T*g`a)sufI!O=Y9z?VF8Q z&@<^PU+p(;uX+{16g&jeG2-E_Mmx{e3G3lTXY$p!u8c3}u6{MV*5828qRvA%bS3`r zE4+`?=!`W78eybZj6|JhYUIgYc~bpQRD`wf<WW5wVIHGSWxj5{YNTPEv#*udls+tO z8dbKdY}qDHswzcxsVsj){%(Z~C;hEgCF$?Ks<o(ipQii!eSPWPdZ1srx5>^|*`u0n z-(u`m;2Q<|!fD*w6cO(?n|gEMKJip5p77B;b8w$tYLh*jC3xou%easCJ4wmY@yFNu zr2^g>Y34u^qJ;AjTm^c!30Y`|o6q+-E_bF2UY0k(cH^T_4t9~>+K&=N2sQhU4B?A# z2tQ~DTbd$s@5R0#disKRb$>XBn<R)f8^rtj@ptZHl8Z$uD^=!K$&+H06)Njhwm{-e z9~zO_)Z{E4tAFhld)<AS$3<hFm8Zqq#ZI}(HkGA2<Vlyx#>e$<Na@`4)!}cNoJmVV z*pyl;dE8YUp;~=_stuy5-zk2ZRTe%We^;r@-6elFsw}L5cUexDw-2yy#FzSH3Gvf` z@R~xtofn0-((xfb<oF>mT?}uCw90Cg^(vbo(O|WOJ^Gr|tR%nu%TU#?NoB(!GCLRZ z<ZH0fu72`%i>+FfooizF?`buU8{(c?5>*&g>C`xRQN>PoRAp4N6O%G^Y|_{>MulRA zj2JR_*u)Vr!zLz8oKWJV6h{|1g@f=%kuwCpLZ@OtwbSBEtRIkchIdGXlXsLm&lyrZ zcw()S7t`c)!)RqxE{u;K8#6X0YwEm-Df8m1orb8yA@1C$c{y!PV^mg)Q{faubvYB` z<A)5%9TcC^<_sS*enf_Z@W1><s{Ra-BlORo3G3o#kN@8vjQqc|_<!drG8#Ykam15I z92yCcR`~a@UwGD=L;s84BfS1EuKV(1{E+bxUi-ZL(q9n{Bme9(7Wq{F?z0kB$&;Ty z4Qu<W;O-Zk9vR#(<yx=3|DS*SLU6xe;m8=MlV6BNuQmSB$KeOPPktekUwSlhNdI6) z4H+_i{D|=rCXAe*zae-qWT^cA|GniST#g+wc<5mL<vO{}_z`3Boim1v96Dz7nBk#0 z6UUB^A2D>;h+!k<s2n+T!i1EVIiqr&l%eBCB_>TAJXC%oCd?W0zx)!%;4{AZtEe?* z0{)sb*)>2O$m8R2Pk7lFA!Ggv{}aw9|B>t_Ur5d(&m_moKQ@bB7XByx%R-8#m>iRB zc{h1H_3w~F<QVuB|7Va#lSh&-BWIAWCc9}LR}a*G0rjtwv#7`08LE$`egp;z32!X* z7n8fG_mGEDe<OJ=^%yDDe-rsFauWHdXsa(KpH3c4d$Y;8)Zau-r2av22le~ObEyB3 zJc4{G3RKclN%vF8tz^6etNMv_zlmHQwohJ0{Ws(q>W8D&X!*{w<rzyZby*IOE2-Z= zt|8Zvi^-po^XdPDf!2N^`FwIUc|N(D{%;{KqkcQNmHJllMCykQvi3)lW6AC0MdS+d z9pvHjjsB|1UDUrv9!frLu(dye97}E_r;}UAcarCjpCk`qcwdl5kxx3x+8;xnM0V4E z7CDPtLarm%lAD-6ACSjVfBezbehhgW*)Y6+kn8FHI&uej3%Q8?o5*AEPgTm#ImX(b zN<NpILQW^oBi}<Vyx#h6CXb?i;1FxiOTLg?L(U{ulGl-2$PMJ-<iq50hIjt4*8V)Q zpFDx?H<I(nd&oItbDZ^GMn0G9rM-pZ_OLxN{sm6`?Iov>&GFXW5b~eNUG#qyIfwe& z!}@Ejy=`ItbibcGf$qO2PbHr^)P`s1{?ag0e;v7myp24Z{1$l>`M-W;?TsN{OwRY% z_$?&Yk?$kdq+5MExr}_y3D#Z(-FwJI<hA5das#=E{(Hz%7g+nJVgQu>?F{Pwhnz_N z1>_L*yU1<y-%g%L_a_ds_C}B|A~(~$my8eM>u)W2DBahPN0VF0qv-y)Ut9ab$rqA` zkW<NH>3;>eg!%`_h2+=CbD2JKqP3slw(<Kjxr***k;}=;$#dzxoIHo&A0*@7kI>(c zldSz>x*tzYV)!m{0rj_$%gE1=bIG0L5c%Zc)_w}(mq_-K^T_kaPmn9=|3h*;`M-W+ z?KP3($sObzayR)wax3|Day!!>^IL1Lg?tXVnCZ_VkEj2&<RtP_<QnqF<W~AW`M<6G z4)W#XMuvACc?{G402yzD>92vDNB!62!L;|g5!U{&uzhj?c{w?kyqTOqeu<1v=IifE zaxKIA?eDDp268-kB>gWYSCY4p<H;>#L;uH|Z0*%ke=#|S`m4!Zj87@KlllhoGU|UI zkEgw}esAr^vpi;#tLc6jc>?W~kqZ~u^uI**lD{K≦j+_DjfDkO%v$|7*xq)Za&L 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 I{{jd87d@%PY5)KL literal 540944 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�@3<VLaA<2`}ymdlEhg`dNe*wL~9} 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%0D5G4YXqPyhJA%CY}EcH#3r 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%0D~Rn#-*hs|zXWk_ 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 E59LDluK)l5 diff --git a/lib/osx/libvorbis.a b/lib/osx/libvorbis.a deleted file mode 100644 index 0edb8eff31fe71731fa116f1c6cf34c069f2ed2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239464 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 Xwa-<Yc-*jFb zRA0BM2ccA2J@(<C3z({^I@p!Rzv%{1MJW1}RZA^dxVg#gm&($e{z&^+C-)%)NBvFT zf#Z)<K#MM@M>rx!R=ZiJrkohpcMejWBF;Y9{T<#aZ!TiqNsR7F=jud$BvG}9unU>I z<HIAd3E3QY=T{~*uILma+7p*0@)O62T%n;6=QZy6nUa_TW32kd;)#4$Z2vXmZf4|3 zDIK$=<-Hxh9DetKw$d;B`Rken$J~7&cmZzbe&Nq+%(RGGpsCYW0jxOhyfZ7{MVP0r z^NJ#9YaWlkouLn3>#c^l4zKl$cSHB`?~h<_pguF4#WT}$GQ%Cg-as<5oPF@&@AGyO zUcEBHd)fZ)!V=1JH2$yFu%qdxuXi){YIR64T5vfU|5|*9qvfyqAI@Lj)_ijpuO@x? zQN=&9aIS^dTR6$Wu@;J*pzx;v>08Cukj@}rm4zSKbnD1h=}V8Kpu~0s#a9r#flVa* ztK!RnZ0U;k;;wZ60fhfmERj{=zhV!?maf<V767~9p}?Oj{s&M&HULRt$XX!leetu_ z{bB3=pmqPXbsuNpi57kisQAYL75`&8xzd$hQ@L*k%Kc62{vc5G*8ZO&8Ga=ji`)P> zuv(DE@GIpnK1GiBX)ZMUN=Rh%A<I9G`#}6>yU^%ECjY#jgUer#EpqN67gh^WuDqv# z@)u;Im)q{bYC(#a_o4L{Wb2>X<-%$~s%rRog2TWSJ^)m@&{*})qt04`@+i9=Z&z)? z$-M$cg_{agyn3M0Sp-zN4*<n)^Pc~<xW<c~$N9;>-r_G<T#4#=lb`%sEWXp?0W#6! z!%zBqz3-jlEN(sy@s~bW`IneoA3R2jPqO%zEM9N%vn;;Y;^$d>oyC={pNe_kL;4mW zNY8Ux2L81Sd{hQrm4U0Dq^9?c4E$Re_{<Fa`x*FM891orQIupbh<cen9y>*9M?JpI zwD>esT*fSS$8bhS$7SzW#|&nU$G!1VlUmHHr;A~8%M_!B(|TNY^DOj*PKnjrbc@HF zDVdVSk13gw!fPopxu)`CtV>#$41P=r;VnO=Dl}!>P1CN2RWqaJhS)jNXMSQR(tT>a z$nX*8pLcFR&(veldTO~MSy_kEXE{}UJfK|q=8G&n%MG{4jtdW0H`R|h!91UoFVgsB zH@wnQAD?s%vYv7}5?|y9`XXCwI+{21loYw?xfo;7d$F)DzQ`h*o}GWPDoBrcrsq*v zQ=h*0B8zQ$-h2|W>D8C?@;1`b%hYF?t}k*V@%6Nt|L6gwT~xk`b6GU3TPo;_FVf|u zXD5M$XS?ZbCp}9$+v0AjLNr%TI?vS?8TzWL3$qY6(*_xQ5rz9CPuh3!iBAStTf8s3 z!+yS+?<DaB4jSv4&yoj>fE;)gUly+d({&dILW%PA`qm$~T_upWL>G0t>bcrC!-+cg z0~H&9!?NmzW!zWB5GkUy<*qUn!@?LhOdO22iC1FM!%%%l=>jV(9BCnKYutxf7_d-; zQ+PutV2+D_MgV?|I2AkeZjHRB%2)P$7hWb_h%xH^wZAAmkIxfM+?tc_5W}!ImoU=; z#cq{}Kx2%sCt~c@q4qA7y{p(TcQDsnSCF_=Fmau&Qq-$`z@-;AT^|TEbY<6;+Y730 zEF*{S3I$uMcSv485NPY_FB6}vU|F5{De|KBs;tcs#h3xH72==s?khRZHf-^sZEQ!) zKZCxfO#_UV%|ZWs=|7OBm@kLttqRa<VeL@9aO`Vol?bDCKr**)>np}6rb+)U@1du? z|7-akE|W>U&uwD|i*#cRf9^?_j@{P%Ga2}}oHPe<)W&&?I5!RqD{RI))q^by&2=T1 z401QG6t!EMHn^&_{0rK_-J6GQ{p@|to}>)9y$fqfpos|a0(<Gy4F+fKrnXJ}2d;Bg zjCHR14^enSe2|--v%X=o4|QjqqVF@V(aOOxT6v!?C_m6z2TS1jaO`hh`==FJ`Tddn zxZ3z1Y63+seWP|mqU!n1&+0NA+DU(m{|=pQ4R3X@6N!yVxGsrs0EWsB8efi|ACCQ% z>uEjrxx%q09#vAMFU|S3xmuifV!z=e&V`d0=4NuJ^wrwel?M0t+T;^T_!#ZyB*HMM zzB#zN)lh`WHIgTLriVT#eQ|ES?)dbZgZ_Y9;9~9Ugy-n?IP-;@%6iG{4<p@C=Jtn) zBxu^5Hsq2>YuL3?sD80D;+z+a)eVj~bI=2DJ73%OcFNfNaO~ot>D;SJVculJ#j0AA zMoyX$HVs9RGTbKa2gCyY1q;bjO3;ieEDY0qd+9YcQTwDj9(AWRK26s_7#&f{M<TKP zy=>44PWA!VxMRj9DxVBE>$#1Un7p*b|LcyMPY=ib8SKVx=);EeaMW&r3&3TOKk0(a zghcs)kTc>nWUout)NtQ>PJ6g}Rk*afw!vJZUNug95w0`qKg<f*Z1yksm<2*FjSFzC zbhbBa>hd?<%{!`7P}nl79mgFFo4Xp?y4rU1=XS)N<pcbUb4}p)8n%sWSlQL~UjOcu z4ci9n-N^m6AvXu;LTEOdwI1ClH!k<u7l$oUmcl*054ZYPzJkJ(m(i;-Ym*$&gCa*) z*$TJEx>we`)OjWxM^n}vI@3l8&9EU~AZ=JfI}AH%*pM8P6%Gyi2KeuoPAIpmMP#Dv zQ|IGPp8szD=eJ}Q6t_*8<^2C!xP~^F^5td&q-<BKE$8KB)29BF%dMUq6x=`;E;p)8 zXRVg+v;LKBJ-&ZGvTx8|_cZDk;@_=w-YHrhOh&tl+URWYQw-j)WdN#hddE|x|Dm_L zTTy_shsM9@t2BI3TWWjD|7bt@a}CM|XP`$yTs#zHj>`?l-jG@cu37z!{_V{m>%-2t z5^>O_uN51!vNYSaEf8uu$jy$Lr7XD`N4k=zGCR=+0Y1!%qk01!YPzH5>WgqEvWuMT z-IdNJ-HC~?vynAvn7|h$a(4#zJmZUx)NQ|?g!iJhWo3jbCcJi|1H}0Nm0~Cc+Y>5! z)z!%xcG@}zrO<;bJ$N_Fc`z$J?V@C49_k`1e3jxmqRaP`3JUI}yUI(K$<ev(01594 z6&*DGp}qS#(BKTl&9^k<e`r5`;f7Z3#7GUv@`L1C^Cy&zh-PRSVQyNYJ23wFC$h|U z7GZkbuJ6u=oEM=6(agh!y}t{-^qbnzv7OswYL2?>6sBd`c-8!VDd%n6pGFVE4`~i6 zByHEhJ*~dS)I9OeaXYP{G%J40W6<7ezvB2M8clx7Hz8U1qwI^5k(YCV-K|wc>slIS zAIORyA5C1@6^gCr{+l!ObuR31;1$n}CQe9o3pKQ&_f&UGS`XH=v&YGexJo2UP0T`+ z^KDM3%+s?Trmsiy-fgBxFzj2LWG#e&!{1D2p}n=SVkx9Oq)7eqiSeN|U7^H9Ip`QG zZSzOk&g!T7E@M_^?Ie7-AQZbPpSajEz8v0iDO%XLtvySL#%$Wrr6FevnwVaIL6#M2 z*t9cLghnJ?KYK-IBOlk5a@|xhg2~DO-EP<08E)IwpVosnJ$)(rZ=-$Oy_+9$`g02? zM=JPsaCESUrfP4Poy(e0v&6sPG*dK_TqL%M8}L(Al!mHBu)9&#s<VlvnK(sbXm0w$ zB;L%DxY!m!wQHrl3@e)|E?&FIsam3aD@2-H->^*N%JTn`GsZcKvub8Gwu%FkRWl`n z-YQfmF`EUtW|3(aX{Tsx(kLt&SKv?H&Kop!X~>s>EPzK_Ly6q=jKF;y)A<`GDG1%M zZ1U3DC8368Dm8T2>|e0Tw9%aUP$@UJ-t#A0!M&0#SSn9vKTEs@3K!yNnW}pBU1|MS z{rjRs_9lK^7sav{b1)EWiu^DT585&XY?&ZTIrsm%<HN#<&xHC{)#KmHe6X42eI8fL zAb)gW_vI}iQ^DVmIlH$=+4QBgKbJ-n%Aa^dR1TM-ydbH@m@}3U=AU29Yv)LsxSl$6 zeuW}yN%hv_Q1Yq)9D<>nYv-KLX+*x4-k;Hh!0rK$u=Bis{xnVdne|(&YvSEHVx$hV zMyw)NeR%$737pc=b&1&@N={#wGSp3rrKRVNca$ag7icFMOa>Y38-jb<e8InfXT^sY zmHv#^&$w3^gF2kbV!U4xMspbBePQ-R$@qH4dt0z*y*u9XB8hQb;n?dzZpAy<>%-kE zG~kbqBtDbos1eVFbw+&K!J3s-O)tkk%K;68?o}?Zqx>pk;G6H4%<<keP~)B5+%IOM zwa7`1;6FM@W&$83BVnp>ShiCjZ5D_o<`8q)EQL%|6>y|U&dH@hW0wr(wSd=1A`s@t z*=cIt%h2M}5v3X}`%$7IW{fGH9PsOP;Ls?T2<3{R*RuV7ita$pCV^nl%1USFPv|+y z2DOe&Z~YTbI&#wzWyWmMwuOOwZ;mO2lpf~u7E0cVg1$$(6gIZZt>LnrV3Fh{L`p7J zn7!-J4H8<l++^p!q=Qtp6GW3hQ#%3dId;P`Wtrt)@CUfo!DVVox~~ER*Z#fI`9mXb zsC&b@0Sa8r`gLzW$u}%h7|v3qBfY^Cf<$Cxo4T2jl{V!ll_%9}qRtzUgejtb!SBI) z_YV^ixx1M%xjs5#4Vrq*5`sQ$(HfNms%=Jp_dm2ZoE)4RD!W%Cn!}m)h<5e<()G1l z!<vZ7Zq1p)z3_W?;vIGVhQ2K{P@ASf4R!=|WyZZL>U3gfLe-OYxQdEs>5I|iEk0=O zZ@LDebzbRyAER}XvUT(%%^Yr%MhVGZQ<BDAl!-d;*mP0Pj+(OBJvpGno5}p8ng=1C zNCUl2rMHIAX?>PyZ{2iG9%r1ELq#<g`X)mD@oKy*rLz~65cdw#8+r=_(EP%NB-H&Z z?h{iSoO?sUlHWkZ+`Scg^*_WUp~fF+g0=J3YTlA6wdod<c<E`%lXKLR_nI(XW^KwW zoah(wv98_QrRZ*@HTMZi4nEhE$M|;`|D-8aGMCS{<RaI_Et+vz=(<#x$i}6`bs1?~ z^wHPU%&R8Mdi5mmb>QJdE)%X>1Fb2xJ2Jr~?p>;=zI&e0Fsy32?v8-JaTKi9aAIPB zxgN^i+pZ9ap^)_#IRrvl$KUuxf<zK%)HH-;aYjqt@IBIG_$GWNoM)OyN#)M+1^to} zi5o_7oAbza9J`-&?#)(eiKc}L;~HHkkxMfB5nJ|6CU%plq#Iy10fw(8lB!AV0&Wt9 zR1A0dnpWebvwTJinT=EksScp9Cg+gv5rrcSB_H-Z!!&2|^))GVyiKA`a+omxLn?6v zua$|h6Dt#!UX~a;$(_(phgO9+$eIH){O_ZNb8eOSw`BO9hAuQi=*ZD543gchN=~Bg zEapj*bu!lnT_-C2WbR#|Bnl3agYUqU3#yRP)|bk}aHhP<q7G+8Wzp6-`CLFRT9Lf! z#O}@kX1w_}a6x^iI4-jXR+g>^`lB11bv~xabJ_VG;NI~8M$lh&+)G(ZcvGM|!73Av zXig5UIapQn>QPEpPU)hQE_WU(Qk|C)11fzxf3kO(;yTMQC^6^wN@q*a^5kWo?M7#C ziw|9ZlxG8mO(+klMxtw-wZ4u1hs*?C>FaRNQ?QDHwH=VAG&bQ)U8aqbqA)GbOx+aH zYiwmW5iN)$Zp+syqoUTA56G%xZ8VLw<KNlP&1mr`zewb7i6&}t;0lG3lWF)j{R?Ih zCfME12bIab%GVL@ei2(XGfD0-&Ge{%8pxb*DpR6*O}(;V33r-?st8(s+u4|E0h=TT z?N9HW%G=|L%-+csCalT69;#-ItuH@=iArY5jSeOMg1gKdpH$MJvyw_iWv1RrCz8B; zktRJ}qt5$ytbR(V#B03$4!j7s0ynNh|Lctx?$rNd5wEy$x-4+qc-9R6N9gkT=mox6 z4MT$d_u*R}LjuRm`jACyyBweAV|F#Hi-QQM9efu3dI9VS@LL{WAJJ8FAJ_fy(C4p| zy&go_&&YnO$*}IZQ0X$2zUCy92}GTbS((%v5%dPTHE7xKACx)hY^-!v7wt>jE7}!( z#1@F!wZzXzM3%KsUDK$^q3rCM)bG#AU5K{(O5b`UnovH_$(r|ZrL()~<@Ds^7ZW}} zczU20m7&s1QA~eMR4!`?o>jRFMqI0}oviLT>saa9XNp@Tg$OyQeXe=Ecl|`UNj$rB z{hSjZY8Acb#;AHu)E&5$&Nk;cR4`PQ@}bpHJB05GZK=^09OC+ZYc}q4-a~17PXA;x zMRIcXu6J^xr5{F<R~Itiv)Dj(di~S(2gVyCP4gVRk)8m{vU#TI5zEZz_vn&+=U>#N zg2~)Lp;OnOBZDWByp8qsIg}s_Ky_=l=#82|!&mS4Ddp*{53@*xsMG&mEgz9&_WhCM zWyvKW-?I?xekPVB=y>zr*A^}9xOHITYV!qJ^DU+!HAlp^*|r7)uX$`T7a_{FP|<pn z5-09epPbR6ZdUmV1dwjb{V6@I@)t|^ANfTq?sJX%+}xk)tBd_a&00P}!dSp)H1mt| zQqfDY{ZRC*(Y$a*W%G0BHny4<dibY_tCCBK3PfD8M)$(|4IlNt=^}Qt@a#~!u!b5u zL3`ijjfcb!J}erU_(50E?Ciu34iwGKNnB7gJD2H%29oZnR_%rl)U5Nuvnk3EeGpA_ z_aW}4GhtQ*AAA5a$yb){@;9y7r%vr|KoUKxW`uz%%DNjNZwtia<dg1NyWZ!n3Hcgd z(8gBE^vrx_5{Q(d!mfg@QG;Aj2>m0jm%HLNnU&tx6q2K_slo*#-5`?$%9@4=kb)*4 zUj0q;RT;a9ILmBuI{hpdJ>T<EUFB}|{PXMC5JjEW&_b*YH7(t))R^wjb?3N?IxAA? za{v4<YwOgzyVs|WbkXVK;Ba3*Dfy*;Pc*zcQ=j{=kYInfT3`GN=5THpL^M$x5PgKg z0U>}mAfIt%I?XpVUoX=`$w@vmZp=fvl75@KjM2*hN71^J{2Fe9AHrwOMP1R@t3mN| zCNH_z$wgU6t5O^kNgR8Khj>8h9fmXVB%fze_1(CQwIP!DGHd&6##%IXT_K$G%0j+e zs+Mx3RG1SyE4z?=&Bw6O!?Be(FXYqq8C4+U%vtRABYi>3j9E=f-N;C6&Z2PJ+u}~t z!*f_@<|o+Mi!lsmL-&VG)q@#c#fvq6L$guSYIGP8Y0g6b0^KZ<)Z;TqBOd<`S^$B> zcI;|=i_HTvhuv_;(ZsYm)V-Q7*yf0{1C?i8ye?u_gfJ$bn`!-l=}eze8<=xswF17w zLf<aMcUgVt(}53YrUlC><ct5J#E4xf9zoM;{zge6+WfRqxz4=7HGdyvc<;aEZ>$k@ z;NJ0>eqX)<QGX`b-XKgQ-`mN*^H^R^{)hfyc;Uv6S#VgyW_0qtllKnZS=ct<{-)f} zS>E|3IDT*9e&Z(aZA?2XU8}lk{wwUTTA?W2jl>$KK%L;T*0Gc+^o*^<#_>&HC-|(V z(PLisHXa~zr?>8@YW3mJ=C9Hsh{C>EZCV6b4M+Bq?)5q*&}ZUjt7;b|%lpw0o)qV) zXjS6#&f2{jP?!wsB8p-j)TpB}o1M)z!Y*z2s9$Xq0bgcIBL*yq&a=Bx&!d86^B)e- z$aC{iM*VPrk4koOLrdSREih+MD{D7)=B2jh@ICqhyvP}`CR%z>A7K8bQkI>F@A`$2 zvdf!|t(c|(hLh2xejVzr2u0xcG(0^sWhD2`7cT$e|5kpbkz0NZtx#gmoz6T{l?<V( z_3J*q0ebWhMNVBy4{TL$jDItf4CaT8vaBtrEmXg}@ub;&uy`TBH}l(07p+h~&6(l9 zg#&{(=}foKE#5@8=)q_BJ<n1@?_1tg^8)NNx2vRWoTL`Abb0*NN@qEz0y+}t9}gJB zXvg=~r-t%*zJ?7nlg<P_2x6P#rpib%B*jDXa+x*zR~9{++Wrl<eW>saw{^MTfB~f@ z4K1QDfZ6lctkV~PzwxuoC7}fT{>h7B#Wsgx6Y?4Nu)M~aX)ZA~=dAue*}E_3th5J( zFvpz(X0i%9d=_2bf;|Xkw<Xw5`KM++!yEt52B=~pWIEesP$n?G@z$XWtHW4QNHF0< zrRFM2OnGT{V(!wcvxryrg99~L(O65O$?x((7jAgLCw>X0m0Zh0c(+CqUnBDl8R0`W zE}yg&oRn=wcjFI(&Vk_GH_+4db`Ygp{>Wx1hXS$RQAFN+H96)$wX>!r>O2>2_}FJJ z4>-Gwdwg8a{(~*6vv)#b1i!2H<|GFHFfp{jc~yqJqzpc|cRh(qLt<oauyi%=6m(_3 zXz4#|IOcf2vh+n1a_tJ2eiRj}WHMT}YC7U)M4UCDqJ80HIs2zj;tPqPcUZ-7r62gC zA24MhAF{gU@3eW;*AXpU$NI}il?|{8C>m`w^%cRWiJ6(rjLJk>H?*a)>^FCr`C?$% z!*^-As3S2J@qM*_C)7fwcfMnCKL|Oy&?w6q8fJo6Y^H;%X3YhxA+ThhP8GVQd!^3@ zsrnHMqRumviKgX9XijToVn&E#ptkL&RQfip=|T-~G`0^0I;Sx!VWRiLU<4;XcD1Xb zCv?}vVTXw=8HL%#^4O0BDn(yxu%Y&mEMK_cb&Po&=vNz{+VIEA`Q%<<?1v-<-|c*k z8b*BkBc;1)cWS2?DMi!RExwu+QN9+Ojq%U2N$jwkusN+JbH;z>l?V5{{xJI$v}v+n z(a%&tb_ASl@D1Bq<*ZuM6;4D7d(JqtA<#slyTX*SL#G^O-w;U**G7RYLOn+npV3hT zibi*G+{R|WmI$(t$I?m^<Ar0ZwCZ-(<<DqoC{JY7xJ}qr`vH7t4ASu>=x<zUJ`$=r z5*4}1Qy-M%S<i_NqZxg9RjnLcpag$&faYnA#`vs_wwNsd^o!OT_Nmr<BPt`RVqK-u zxqK1ZA9e^S`$cwI4RhMFYHH{jR0)ot(f(J{8ga}D5_Mjva$dpw3g%mM7-L7fc}LG` zl}t<Q&{-NgWvw`d-=Cwb%PKg~(5As0Xoy@T=J3GDe$^agY?W8ToMyh4#h(b5Zty21 z4=g(s{)e_o7@>s-uj(A4s_C-&Kzx!VJKe+_jHs)aLx?d^j6WqlAMtIWB#RT#-_YY| zLAqwI1rGL<94szkh9Xr+NReSV>U<)86@2)!e4I-}OJA6CO4N5CRJyLVQTp>(JGB7! z&`WD6+vn1CVFwwZC*6^yMiPnngx38WL^O=_*GvBS-zR|Si>a$`OUeVCvQmGbJXap^ zUPB?iu+Dq#DHstjMe*eSkDv!=i^Ayf!rA)_h~cHBccBWS#|zho9;JN7f_c2~8TSt| z)0Z6k(ZXle?^iZ>PkD}TZ{j=_|Fm>7^ettkE3SH4_#>nn%*_awk#1)F9?dLA20b#% z@k#4<X&>okmSdeQb`RY$%8?nqv5$82lKa0MYP=lnzR6Dfk9MDBBIDy|`k*u(4tF2L zquVC>|Iz%H^ijSF`oX^ve<J<)Xz^SB#q_845q}f)J6itghlle&op}6;xl@xB01l)b zg#Wj7|A~dSSXgbL^t}ut+&;n!N)L&kPVNN%16TyS)8e;S_#F$SH$~w_S@=CBU*-Ed z>UjomqJ^av7FqZq`O1Hzh0j?iTP1S;y@fvpGA9(D$yV;mz!7{43ci)&!bZML2r{I` z!V@g~<}q%(uL4#6F3P2J{@ub4Nsp)aeIR3f)EI=UPX#{>cp7+;esCuEYaFqD30Ml0 z`#<ofs>P#Dbi<znlzYD~x_YY`xD0g;{=+Q%C9)d<@T7%ffC~Q*7l<ImkRJl&KO3lg zF0$}9r>J;Y#SZ|_BK+kPPT|G@74CEk2jkd}bhhH?!+i!&{=3x({EY>w9yL^6?j*19 z=H60&?gbHD<){{<$a$4O`3pj-+>i^a1wV`bb=F@H(&o-`VYT28{C{r!1!;=hMJ}us z<X%_a^FXC9H~{|+7gh^$uPX0=^%taxb5$u|wIITfd4)j57o;oXO7;<0ZDb(vzs&jz z(zLk}1_4$J7T{lN{RL^#+<F&Q3-XuuApexUU@m`4Tv#p0*vfmu`U@V9|0Wk!3!Z>~ zHjx!ykgk#|o&3ORLApqu4CwK9l^|UqSNGz8)q-@TysLryT_u>0|4bKF3l7D9By<rS z0zkC~bu#TnSVKQ(W#~K`sPfDLs@^k!D*sfV;!Ogoy(a=i_YhF+Qvp;vE(I#TB|w#H zF;L}S1XTQmK*etXDt<Fi@#}$#4>0}#pu$%G<vtbYg;Tsm;Hpn6kSA{w|5RQz27h@0 z{;Av*mcCPgDn~s~<yr((IX41zUo4+S)$@+UMO;05gwvtDdmtjR@YXN8{-&M4w_9B6 zl>GCVjPw*(yu#uEi_fz7FpDp;c!|Z^Ew1)edR-Q;uy|mYn|{dR6D>Z`;`J7vWbwro zpK9@S7FYjJ`Z+~zdc3CTPlDD4FLAw%{tVp#oyy?Qb1pyO^@_+dil6WRKRqFS!e^0> zp3C_OpGYI<na0oHrscD;ZnSv5JC9|}v3RS+9g7E;l=R%sPw`E`0KXN^1moSadBWne zZT;3-e5u9X0atYI+09ETehf$|t~2LUyf_0tKLanzz{h6bU(dj&X5iOm;BzwY`!aCN zH~jTH&t~BAn4*hisn_CqaraW3!R-w=8#=|qRfJ^1c-QVghEIuIH|^$|P4MAUX54tw zt<!G0+G43motqNw+_Z4#dYA4@tZT2XnVxy&kZk0P=BhMRRo4034Cmepic@ZmPvdH0 zZ07f-%$RoVbtvaaak-|(6!fUtsg8Pa@tSKyktvy4s1CiynAMX<>fOd^S3{;l1K)D< zlq31va;T4|#cE2)@E&6G?lr^z{w2mwd+9MVJbIzdE#Wq!_i(@Q{L+&1&-)tMpUy8C zj<f4Myrkr-BSr)Q!%NOT7r-<1*z2dwnsx0B*Yw<hRNwtq??KK!NvULIEwb~GhY!F_ zKlUEx`K0$CrDs!*($f@J5Xj1!Er%oBgB&5xL-j+=x9PBkndj`2&3bMz_fB6A!b@NG zAQ#*8a%`j!>9JqydF*uEgZFh0a*0jPn_MQ^^wu#CYmLZ!`qB@zgvD2nU52t`+g|0H zU1;`)#xM0>U-ux_+4L6KNV9Evi+a<uE$#*oB3ifOucf4m^;>H<=wa_cD%>Y|()ggr ztG{aOQo@8SFN6zw=q0;wY($}M^ktKH=KyP))4SyqY<QxuQ9iDHqQk|0*aT1tYUx8F z*3HVe7a5H``159x3?}AgTZ7g_LL#`wPBs1{btHdtldsXul<SmBI{g`C1{H04N`l-X zSGa0RgAH@Dv+BO;7N?i*$8E%)dv-V78xbal@y1x-mLRdYBzB3egf@~Y!asY`D$3ob zpJ!8@LmVqJ9Zj;xP*Ui};bEuht2!c|p7zsKP4^O6Gu!&@DuPt<B&L)+DF;snmRq~? zObdBc=lb4h@e;Vo9fv6EQmy8my5m<Y&bn^*mcL2s_>Q0PPvOxGqwkcgjO6^yvv74y zaM*Jtmt?xF=(dSi+7k$*<}-ZW-Zt(zKHxIp&mTOr4_JTh1U{$^z-6>XA1OI)1K0bT z_fi_AS-Rh!?Bu<)%b(mTTIl+jn{~MKnc5#cncDVZMmH@pF>?z!N2)Dz$y7dkLmEX; zUiNd;faMmJw)>Mw!V|B#37FCqUKHc~F5EKua~d7e5J+OWhFIHW!Gbwoqdm?$B!v2j z8)E33A%qx|(ocRZMP_}dIdji>5vE6Y6T4dK6Mf%%?$OsZ@7;A&iK9Vd^ru%)gv%gd zL?vcM6Au?IB?O{%6LsjEn1l+c#m&a$`X%;iD=M`r3qwe<3{#NU&4}7^Ss?oneZjc5 zKU|r7=Xo8Rm@Z6U-EJ^}ar1gHn(B}VG{@UYCdG$CIf=>;ha>m=aXC^zwTR<R^5UjR zZj+nWW^S4w0nBk32ODS}8;KA|zA5)5Gm%r(Wdtr&=7taxxp%q$(U*z&b$+gXu%=c- z6UiiGB3#ai(Syr}u_SO>S}*l>5&wd3(Yr{eL?N8XOOe-6l~Dz@9F<MSAJ6w8%A^ok zsB3rDwCy;>w?+nyIU7wDC`K|@eTxL5EvJLemHdGJOnz4$^D3X1O5$Y$C$+h%s3sYA z>8uJRQRRkBag*_!C02D<v^kW#P_nWkO(`ZFbH9l`$Xtd&6i1C3W(K<`F?1&+=8h%D z9`Bh3;8G`(?%N)UY@XUfu0c-5N~&o5kyX4^7y+wCOvacOGI7;2Mq+lHn>tH)e>y*u z7&##^m;=I%*1u{b?Ozd2);=BZ925N|mpS)Tlv}w~-pZ;?J*t}By5^t$4h|@~dfL^| zHHZ_o%NOpx5Nk_+M7&ou#6;&(4Q~i#4yk~}zavuZtdw&c93u_b=(%z=Z-X0nd6`@g zwXBoPa6@%`&g6F`in}IZY02mbd!AfZJH`MtUW0NI{&U)I8K~@Y|A<<z5Z3r4Nm{xy z<h0lR%zw@?Bgj~CJGUHn;i~LEs$ETU=0_Lp_D`XbgQAOcD=k)$&8;-ZJDa>ASi67z zcR4!J)g_vv9x*j_CIp09I=T7BO{$(=<#ccu%LR6fu+hTmK#^p*CM7!L^!AX?^k&n9 zo)D7h9_cQor&7v9MRpS%df6nB@h{lJ_h~peZjuB5IDwa}9PYAux8MW3$Zi%m5_ZZ} zr^qSvoe-=1ErX83W+cJ!zBqCACeA`Rup6N3MffyhMvg<crhI&z@sTHIQ)I8tVT=Cl z(5i}Ass?bTg;On@WZ^^$Ll#z8IMPDH3?Tk6iw7($urS}k92e?8>zo8J=h7>Vmu`OG zkgI_RW1Tb$=&kQ`|E8={*SKSoad;)aNepkPhMTm)^i5d+`=RL#>uNhNm8faOkR4r| zzi@}BYc`txv5@&}B>wcI{9NvOzs>1nGYw%{-T8=8R4v+WO4;x(^3Wp+&2hKFIU6Gm z(iM}NQ6|VitPP~WX0BwlgktlXwewg?>a^A6tqo7yHH_B7cq6^6>4f9eKW#(uHlp1W z5dnhrCMnw)D6xviHG(%oPLSK4ZyVpH*0A%2zwtkq{w5@{-wrj*9;tO76qSN*IW-cw zprXn%K2>c<;Z}>Y+QSu_E~9hq#(63>ozCrK11TF4aC0bMPvP*irFw}{&GPcp^?<Yt zoh{^PLZ;Km9a@vI-PrhxBWK3FHd9#yuOPS23mkRcL;72VLrz_kYcnK3!(AdYGPv}| zg(|#cV%|)N9n7I!l;01P-(e#bhKcCB$=!m~c%*8|`O8DgnU?LN*K6RvpBj~`S&b&z z(TW@X@nMS_=(D&R9<{}FCv}%d!C@+{>4LGwg-5LF^&3=JcW-DTmZU{;Hl~wk;z)=) z>xjgyP-M(oE;%$uFXrK?i-;V0FKg;ON~QNYm%v^MhoSI9FWzA(>_t2Ri6<SI#9mBG z<J3l-+IK8bH>3B><PIhgm%8iC({BGa)3<;AMIT98_}v|kFgXCj$%`kkBT@g>{J-Ou zy)!<(tSwv}{YS*vZ{^&%LZijO&h||4+gTn0X0)TvL6d$iE@rqAra(c>eI5pbvy#Q) zK`j=|b~y-o>w%|uguAbu|A*ECW<E1_Id5`LojVU^26H|zZ2>8@^~ld%44v&1qbuXw zP%&hCCw<;llZBjYckWgUXRFe5-eKw{Wl<~Y>~d3XFf%wyz;rt0{6=-?rTC}K;Qpp> z!wSlry%mIP-07RrPf}45rgdlpjL&NN_7u1H8~?~;O>=eHx%=04?(QjT%KXh*;MV?N zZw(Rp(ZrfrZU%%YbNWEi^c{9Knz_Mwy@z0%EiseoK`b#ZdXss`8CuB5?3vFIorYSr zG6+f`Y%ikqP>lT%6sxJn9PX2%7&*A}v*e!L)x!|ST{cWKmn1$f1}2Zgi97{1G)bMz zwO)Gbo+YFvbImtP-TCIwc$#fU(wpOKw0yNHIX<Ci=@d%K)tzaq{sp(`3cP6a7q@DM zX6nu}bJ|nt7Yumu4p%!(FOZGerR6oui*uAB+8I2W9#fNev)2U<S5j|c(<140MoXLu zHKLbuT4}vVBI;p^8}cF@uDD*@!;o~M7Z0(sqm@-;rEE~i?Qpidn!eQs79G+DygUtg z(<4n)4@f1_(aP-7I4x7=@n?u`=kaI!^XD*mlg30wgPC*quwbjPFpLuNWbQNGS8urJ zg^2U6``K+jg{5>spWS>sJfBKbXNA`r$cOLB`iY!kGNo$*kZkc^#Dos{t2%n_nW8Cz zn_YN^5?6KPTW%Y(oE_X%OA-?&g0cw=d1E%*P{+OY)53{cN?b8TPseuRmWnh7)zy5P z@Zq!QaqWZczEp$D9prVB)4o3_%WSfVB(m4RcKBsBz0q#DG#3nR<9nB)@MWCfYAT|& z?6=(kgX3Z+`zNqhJOYaq$5$9r*Y_?NS&oV8Rw6Vf=0EndzU>;`4e-&Q??_HGQN==_ z`_J}6_}-~1g0q|1n0Zp4L3A(`D`mP2G?Xy}c4Fc?s53yAEC>)zuJ<p{iCZuK@#5J0 zUssyxqGoC0;%u70-oKzMi_z1(u&yGl{*|RyH)PkG+E9LHRyfw~vN3|r;Jd<!!K*5h zL0{Op?1d~6()S5c+NB+}bdCLLYx;8YupCWHd>RNCNy{ZjZ%##LJ6A(iOVU(Rx#nVL zP4~oMR-Jj>1;bzF+DKT9Jh@)Q=`BCy`M2yEe>gGXwQy`7$_~O#{9_nrh*CaVyQTBk z-gq<s1g_DC%m29LfLoykAN(v{rW`cjE^YSFNe$Hv#pf(?doRoB4rD(U2D`se0{b*y z8=hEy6ps1lKgI_&pDSL!Zfbo@eR!!3bm_>byJl@@ra0UJ_xb0ag<<<15)4F``Uu(} zZ2wQ=r&G2NwBlB1D1%pa;mB~}qM4Dzl{t~bubNdYXF6)WZZ9!HqnOy%Cv(ubFyv|^ zsahEB;a&BNVwZQd1m0E1*~Z;CJCe6Bl2QCnLl^vzaUU+?vOQyciyM5Yf{W|wsJajc z_1`Cl)@&!gMX)OQB&mErgXB)LCdKC8sc*zk!jPUZ@@zP9Ss_#12yVop*87#Hv$6Z@ z!)OoE%|`iQtN-3s|D&*Xxf3W>l2jVfi1wS6z7lnINA(#tz11)-VaPG6?h425Z&asl zdbut%yfwAIu<5x|yk8jScZ$u6oH$&u8g%&}FU}3HAida}@$iBGxhf^TOGhoNxjF5@ zhB2H)thV%}yl}bF`(rRMA-ieyQbJ_8_n2sW2KnWS>qfixq)X#>X4jm-*dfOzzWeW8 z;eT{@&>6u9;v^(7Vx>kAddr?wN@f)8g6&hgiq+)L?m$HzI5vNt+l9|pMiFgoOz#d) z)fU5iX`>x!L$Len=z-e+BPbjj03XOde=?IqFky&e$<`!&YFrO{n}le;me9gz;#g@i zY1=U-#C2D(5MK_Pt8}6UjES`I7m-TCU*JI-n`Fa@@;37haj8<9A%E|9WfjT2lYfJM z=s&0J=2QLWblg%dh8J#Ep)`L`?hiXJN^LI%z+Qm~FiCpy2mi3MC}sScDB`fm>(0(R zi@RyvY1*#6_O4LFM_d5>Mz{a&hzQVddp6DZFr~J~F}>xJR)s{a=Ju3so46d3-*boC zbuG!WU+w9-kZmbb$2!x6x0zo2w_x|g5>#72<f!vuO4odV<DAjt>hXKXkC8i)W?Kg@ z^Z9&unP|6)I<H3UniX~SN8wC#uP`H)&iz8l*w=;1K};}*(I$f|I8rGUZHp_;pLNEV zr)Qn<)QYynts|(jc?SRY_{~2U{OTB%8uRp}=l)?ez8+5=J44U?*?2LmdgaHpzt?kw z@P&A#g*Smy!XH6yx`^$9dAxM{kee=5CVIT^8S=`m=O_Q)3LOq7N9v^@`K6=!6Yywq z!X?!2Xz^8_!};G!xdO;3)?4^J3rAa+YvIS_uW)Zz_!96`aP1M~{*cA*u=sZ^WN&Qz z)y@IJy~_6-N6y8IfgCj#|IotQEG)4w$3kiFQn)_>mESKc{%;olzQw<3;mH;buuyjU zI9n=y6Np?}@et^s{09K#UWFt3isE5FR^CwuISe@s{0~6bv7=76@D5fUNL)Mwh@4;X z?->B9&rd9zXW{oO{4!AK47Ko2L`D>#_+|@7Ti6W`SMIAUTwvihEG)3_ErkCR?m-K` zZ{Y<NW&@GaD}I4OQ^ev0K;f5K+y_*7wzBt@`_F(1cO8%_76*Y8wfOfCfh>zVA&T;Q z#KO52UT9%|3!jCE3Mctp!OJWhYT+j21Lgi(3$M5ED?pXwW8~pfjy9n17K>j9RCx=n z`}%=yxQBr%Z!=Kkm3%T?WysmUe!xNt?`IiNJqB3#Pxe;AX95-OeFRnnr4m^2e`oP~ zfUx6>=K>McD4qg@w8iHF75_^Xe#~}6@m~Zgz7)_3f7HU;EnG`KQ@qD4lsvTX(LnXL zCWr$mi)R3ZM}dgi6mNwXG|8x0bT*o9)JzHmNsEU8<^EmUU+K$|3pVn_6fKuNDOsFq zK^|ilLH-dCs&4Ee0DJ5r)Z#9GK}eNb@4{+9>XY{yp!@|PZSG<hRtr+^yjQHhAWfCK z&V|*2s$#%GifzJE7n3e|WiceFvUz%7095W3K;=IbsC?>yO0Q9#{JiJiEZ%C}eq-^S zMAD-Th{6YmtVeQv!Y4vMJ(4Sy9H%Fzv(4h|w1b}aEZ${tPp);C2+woS`cJg@XH;m? ztGBqam0YDKx1(f;((@E%;9t$a!x{Lc8Tgb8ye0#`D+B*s2EH@{e?9|$Jp<p8f$z+~ zyEE|PsBCI|Wd|Y^FUr72X5iy8aLJkT*Ym_O@ar;g1)Smu#Qkf6j>Z_nl!=ItS;0y3 zZY2;Axx4PRDYssG!__z5N(fIbG1auglv`#^iQQN;>$>SvzF#x#hWNEVm_Fr(8*jRP z+I74s&MeStZ=Qbrw41-@qBqW%fdz*t({8wW%JtXIcHQDP-e5z-tUZXUZ<-PB6$rJ) zG(Eva&$i~#%#m6t&8uVaDc?aN(-lCyUZ^JrIVHp9L?5D?*T!#>t<&qL-7xK%=}2kz z(BBn-?Lj>;*d7OC@Y6K`+Uw?t#P+y&lA51hIun_-PbpXVwUUtm_mN$RYp%UHe$#EP z#Z9*h9!{>ZLtX*bpXobmq5FE+|0UKn-*##bXO1><mDZWIKe~McFL5uv($m~i0c1Tm z<YAgJa(t4EVqQ0s?Gk|IqkQ2R_6!v6|A|NI0Od6EzvlS>IBw>i1vD^raVUS@Fx;6& zHMP2O>p(q<C^>fd>tWe6xTyp0U*?xu^s)?mVg`Oq240te-<yGh(l)(QgYBf5(}W3- zDVFUG)ij~(o?d=fS?$auK9yv*%KEAM|GAPb)-&~3*_8RtjW>R;ul{fPN<g`}_Ej{e zAL+?qAFOAI4ddZn|F_FHG>%W79e2a(f2Lhm&*x0r@Jdg8WhtA)N_l2y)eCq}Uvj%8 zHXXyjAkro_fhx;7HlKxFA}O#hIos{T*AuYyTu8l@UKjfiGycp7G(pTiZ+up;aSGs4 zLC5YQuJSfT%NU;u_eq{Kz94d%u;#j-ym0I{v#h-gSB@f__}X8Ti+8@1Vr0V$Fh0lC za3CSo5#huY`FDNMI2g88FJGi_L;UmpCr2FXe{z56!P?`DZiu#u=H0d1q~o^fIWlpz zmKvE&!({KxbbNlu|73}TbQ$_7g_)b9JM7&k*vN(?uq@HfW93{`k_-J$=AOyF%g*dB zT~jv=6$OzPoRH^qid^(`(W>nt6b$1I&PI_Tv=Y4G(v9(RB1OA1`Eqk}DvRDXQ6!o6 zwhc{kHRvmyn-g)iOPI6tWA5kAL6^av%sR-HY2D|;iA(au*Q_r;AuEo41+;gskbZ>~ zT+7Ia(l9p%F4N<barlN7OfHBBBT&DSP6csx%BJMhZrt%BL!0Rx;i6}3-C%1{H%ZCa z(ss@|40)AL-4!k;t4E)J@~bZ|$clgYFflUA(wWneQFyOZOT)2S3#_dZx5r?lv;bMu z#x_d36lPj?_i9OQ-T5c*aKl{5=`7Z3;?}@l0=)G0f?J2BJH&1^T_QU*Q0&$bX><=J z#uv~tYmVipA6+2hb2^Vl2WHK9@371;DmMpEEZ4NU4$F}{d;8CLm}=SUq#k4M#*ja< zGnlxd#48Ndi<IuJech-~NE3zj;%APpgRT&Ch{Bpa#BoY+)%Xg!ZI(5h;+}DaMrjcG zoAQ|y(u^C2odIb9!ww>q=!oz){+&4@m>6S{l~LfiIp)>3uA!^IfA=bUO%r<O3q}WM ztMYXRlg-yzL8bhS3ki<#Te`Cy;LiAb1S%wBy+C_vuYOfU?^fC%B<#sXH|!7i@4lQQ z+>%Y`No;eZXb1LT{dem=o(97CAr1wT6S_ldKN54*fA=Z!aNs?^WBA;(e}41O&+8xt zoiw{phN@Cg#AxZebMM%(net0IdIv>Hs~zfrFaqkoM_m6<a;OxTXVLIepw)^2p|<_~ zqlp;-j}*)Tk<zXHyMIln)Jl^A<js#?JbVKcue&uZ2TC75EuD6z8LCO7n=_M3@|&|y z=*-aoTA5v7WUw_pAMY%2Q!6@5T<KfxiR+D>*D{2>#}`oJ#(oOgu137`T{U8We?9ea z#s@MThNYz<N%!$3Y4yQjgsFhI@IB+DDse`Y|DkJgI!{2tQbT4?n6r!cao)f&=7z_Y zppfS2hSmXCIf}%#hZEI3qzx6V2$%kCZX_Ce7sX`%AZf4Pj~^-PMW>>SJaH=n%Ikid zd@|ykT-2B-X3b_o#S1WD6po?Os=U3srYCQ7+e<h8A(s$R`Tl178T(iqN$#0_ZYYMx z*2QR*zA|Ud=@_>fmXMHVFyH@Vc0tH_&71oZ;|j1JVO$Tjn;rb-r3k8rSFO~n6>7LW zKdWv?&p|S>?;NyFD2c>I%;VhDny~7bPc!EO?nQhYOw@#eiOG>3B9O*82$oe;Cd%gp z_pX9w^)+Xr#C#-+SbStR3iiC9$OP;tr6(ZV-4RV(&k%j9GazN0ZSVTS^WN&7+v^pc z_qNbz(Z@u#BF^6VOjGM^UuxLjulD4Y?&l8cdrZTA-`uT@tKEADI>Rj595O1ceoX1w zTJxRdZSUmF+tQuYoz=D}=X5~#zz#WP&)eeXY1@>2`c59#vERHc=kcJB>GbD$<hbUY zd0Q^$@wJ}*d!B(E9C-2j#xQd-)<Zwek?2RKmS+D&%541O4~G2XUJU!tKFay9EtPNX zdX7?vTp@yuP+u(FSeNgKb+39_?bdmWnH^o@(`i$;7W|(4(%Or2Q>2?Y)|3(}4x=@3 zvT<O(s=^w$=?VS?m(m=e80wt+OR-oNe(iR33AODz2?c0=6e8|4C!mscU=AEdY1>(I z=+6j7A$GOR6iu;KwYq&w*1|s`Gg4(1Ye%h8zfk`PfeB9JWA2Wuik9xJmB2+iGs7=A zDvJUaJWF`B*m6@y<*=?Qc`54W=HvvEV|`B56IcQ=Q-D-1d2$k{2|_dOW5mgd4|Sy* zYg##I%f64(vFx94E|z_t+1N>+|0MLT4QJ=X6g%S2(PZIEXoRgyM4t#2?X&5HF@WAh z^l`|tPs)CP=;ID>v{#7JXFQkBKooT0uEadZ)2^`qv`4Op_+F3tHkxxm>2LpJXWfU` z4KF~ynzTc4*nLo1-0Je#OATOA4L6L=@h`Z9#$s7(+F&Z|Um)|h;UrruTFtCK^qrpe zSk<P+FmvQH3YYji2gCjaU63k@nZ0Q28P|A1#DB@_X!66%LBqDL_}69nM(3cL3Gr9; z+P3bKQL>he=I)QUTTpsnLUQQ+q0;@go<#=<;QDMhnd{KYKa1~EsCwFW>!9I#I;%~2 zc$v)avaoNbbU2y7wGPL9(e{gyLw|(Id8ym%?Z5u~@jLzbet-U@fD`?bI{cH?`v-vx zI*~F2Tpg9z?0GFgDN8?y51Ww8y%SM=|3k~sJw305cJis6mZ0vD#zQ$anrtya_I8!8 zvfu=H;(<>s$NdSS<ZXOQ!k;OYD4Bha&kfCy71zt8Q60k^&$PJA;EN{+f2*HCQ4 zpF_Tb-P=r|kb>Yo3a%=lklpIs9-^7D2l-hF(s`5T+!?lSdpb{Z-@-Io_cOYVlg;7r zr0lzR9h7~i85qfNzL4+5aO`6*#8V3KM-$>HG^lZ;|Nl+zg&|*iIQD{9?7LO$J4~_f z?rpMJG#U3mGBnZ6Xt@vfU-MhSZyCR5`Mtt#BfstZjy69Q1i2pNFmq#-hovptFh>Kf znYKX0fu(#YZ#dk;|7h%h^q0Ml97adRgx9dIJ07np-8N?&s~#QW@__CiY2riGayW*R z0yck=<qI$cRl0J{iHV_qbcX&pl8g`Mbp93}nn!Ej?mW(nmymB)(0P%hOvbe>ohL~f z=Ua83XGg*0^;>;4NLI)cz-;4Ft>MjR$(;WSFg}D)E9ChxZ}Cr7fu4E)1yTyfxIKh* zsnA{wIw364Ml%>p^9h0zZtau*PEb~ASDzxnNQcy)rL{XgH^dUc@^DosacKY%T(|zY zccGsU746>lZS2D!RtFRDe`ZP2H~Uew^pAAmC;QQ=(gXf`Bo<QXuY5b=+he4emU9=g zcD0l_)>8_^xezzl6Dm_{?J>o}+KPYvbj`Tw8VX&daIjCz)7Lrw6=G)S@y^TpIOqR< zAK}I4P+N6r3g#KFwDoxDTYYhv;m&tM9TM(r+*8y0cP16{c<J>~-all9&yWYmO#i~n z`t=chqb*KP{rU)hY#-(ElAB674tMVF`PcX1Kaqe((?3?xhrjr6N6Wu2|5<&MZxi_+ zEq&4HaQ+vNuFhHe19hIfl?7h-%NFWFuJAutSYzS0E!6j{{B_<Z_yPF{ZU*Yy_!*09 zMU=bbDg-Mn6i-y)K5ud9OA-DQ^-;M0v~aA2=URB0g-c<IpF+3<kfX-pIIsYC6%bZo zaXC=+`i%A8&E8evwph5v!arEpXko}g>G4wd6M#zB2UNPRFo@*-bqmJ>RqjHd!sS}` zJ<wI*HUj0p*1~1h{SOx2V__{2R%r2O2e|c*0C|cJ<hb${?^##?JQ4Sg@E3d>$Qes< zi^W%S2+f>T{2&myf>HOo%+=!2K;gIMy6K*Q{DIOR$YDCH*y3jQ1iH8xT<(-TizYGW z>NK%AR|i%HaEFy^&ei1~0jKEZTpei6)j8kKtF`e3AxUn%3#$d;teSIm#s3XBq&4U2 zKy$86(Tv_M`9F_8O_<x^LZi2fSEIK}{s%y)y3yMOG<v(JO5WLc%3lzY<(9axS`ZTC zT?ORtDnUq-JJp5Ng2&@OAIRTTf{-$|#f8;^kjPL=bO?~Y>RSO+y`}<H{(2x!-Xi_u zuNA0#HvyHt5?4CXbC<_&7KPU%mP{Um_W19bcZG*YT+bsGpKWpJ&6EFPi)-8o@38m_ z7Von7Uo9?uaeDq{@kti{yTzL={tt^UwK#2Q&X-DTdFk^8?|?{phV#>TRE680vM#cC z!0m@wS9`eI&$8+)zKKTGqt9!jm&ssRS--cq=5akw^CS75=Y<UX%?$j53_O>}sqqJA z;6pR;|5wiEz0-2emZn@iUB^s^)$DVq`W`p%EmJrpKWvQuEnPsiH0VBxUmMeT*A(~I z`cQZ8{Q6UBOfqS5&KJLJ7CM=XEWj<(u0sV>%%12Y5`f@9R?n&Xw5xCFMZR-ed^%yh z6M0v`l!x6keH!QO9(DxPN+~tFdO8Q%H{O<I$!=;o{pu;xZ{V1F$_+Kwe`oqlS)cxx zJyV%cCQhIHwC9kerC&Q&r;s{_ym{udo2Fl#eiC`ObNH#u16cunJggB}(iwN8r-Q{r z&mtSf!!^wHv%~WfpF@7Y;;TpLY0j9%B3LPhL(U<uyEZ=krfJs=|EhcsJ=e5yN*%_R z^r(o^^Bz0Rcqs90dLvz@%yZHXo1UExvu3fV+o{DwNKIP~J?V`&e0rN~dS1MG(n}?C zYT9mk(`TYWZQAwI51-z4o1XOZ>1np*YYAj!*&-Ns?_Xc%t|i3Rv&c?*9W3lBQ^{#& z9g<gSaSft5eIfp50AX!rts`zB?}la>=dKF(NgjPy4sY$u^}gfQyx-m0)Lqks0bKLl zYQ8(+GjofC4`=@st0m^1=fC2Z6?7z6&*V|>-sT@vwSBvC`~dwMw?HlK_Z#RshWux* zdrBW|MQ@@azy|H{Y7Mn*9TJ+i0{^LzfxANkF|;XL9Ql@Q-OEQ(d6p8aKIH5RNdv_x zSs#Qj8X~l92Wf2XhKw$+I*w6_D~>snf+nBHdG|o~TwA_xwN75))z{Q7MSsge(#FWK z%%gING69vvR4e3q<@AoIY{732`>R&*&EF&+lOR_J{6$qu_$}hs!mr+6WHbc;bh8Pd z`(6Ou3R_jxs;D{@TA)>rRQ>m~Rr()oL*qZ!d(!z-6F4)5y~kam<^BcQgeM-xPBMu- zxu)TxQ|9J6AFO=`=3kT4;9uyBK!eFW#vlG(#h#VEnqiJPIPT#icdu~1s3YpyaTs4o ze9KtA+q1$KM<+oyhbrAol_buM1dl$6Czh4t;_G%U==>aZz7qFft^xdI$L51kg@%2n znnTVxr#T<k;yHWQykGj7ag9Hp%BKnY)?k-8TKbNE{;8xBmJy194a;=ZtzY~K!|eJC z-w!?KdWk2@9Wi6)t9eamZD*)yzrSgn2=T-tDr@p0*T|gbwG1zrgy9c!)}e-jr`A4h zX#L-Kgu7pW!caVZg|(9bearK7+}d4NbYWsdJxmR?Ko7mB=<c<h4O@K!F`Xp)5zgzi zofVDU@c|b)L+itsrYPMJ#d<`|qn#7QM<KltdDuE`+EaJNg^8if!?D?smR`5>`r3CI zw)h6VX42bL`;QBq@@6lU)=uuKtTNpSgWqM-UHek%lqpte++OGMO?vw8WtT=0V<K3N zrFM1U-C_Tk@JYYbs+X5wo(|c~*96*h(8Pg4mTx_4(lGxRK4-T^oqgek%?HCSpTBch zPy2TsOz)48(!GZ39`;{?(v<c{a-xq64e!;owmDXgU&$?xaKlz^AwOqagHLFhbB~<$ zX2QpZ(w|@^b@AKDX~N4GGuQ$n_+Sm!<<{eP5XV<AlotPDZ+j@b!a}?V#yoaX9{=6q z%SSL8vY?t55vn>kMMJz2{iMtnsdhRzH~DMO*;ARgrT`NZh1e#9k<QuW%`6l_jj#Gp z;*x+)Rp6hYR>+-RT7|W3AA*Z!mo|lSXP4*Me+QFK4Ct9&X84D3QF6ktp7=};nxWE@ z2sgdt#-C4o>B@np9c@iZ$m;E>dLkTSB07&sA2dg&rqOg<-*5n%B{~2=Z<MS#)^Qp* zxt;8GD?6|8UsU7oA(xcK$7o1z`*We{gNXm^P1tw{H*7lCd4?Lir~hZRKUTvdrLRZ) z7jF(HBZaj6o}g(=)3)w-{|5Ja!VOz!{FTPl7;-jVMrg?mA3w!iUrZBoXiK~9<0rFF zw11T21OG#qsC{TZ_H*N3-~cmH#6d`f&dy&kVY}OFc1KFFUHM(p_^<o#p2kbGX+uQk z92`UV7d!xMqOmt1K-Ck59RB>M=(75v9>b{^zZi~F{*b{eqD&1fnkpLar+sx8dtrS! zGf|@sXCjHOk4#)S!hgjE)BT5gc8)`_T@k0%<*jnew!djZD7IXKu5h{kvMprx7VF_A zU?=P04u0?YufXYBe~<U~4|@ZJ4oOvMWysehu6W^{9AH0>Z4A0~?QeFxL^;gx>unE} zqv5s@S@FrbAxG5J5#K&aWhjkYPAJA2Wy;g7W54}JD9r{+vYy`?6lDW_Z|G0R_<&Bk z5F>fK^U9ROZOY!c+@a}{yDB`C3cpT8N&3olZt{mF-5O>RrE!=zBV6|K&z}z;f5#r` zDYG_GlGC&UBr0<<QDct{?9c|h*ft<5rW)@GcAK)-f*m2+FP<-rT57xk8ZV*bP*ApD zt};nnRXF0JWbR*i&kFaC6r$pxmF~1E;_IRs!(VQ}tkM;4X#f?jNoha-75_L=6Dq?m zqV;f@+Hp_F_o`{fKX)GI_HSrg*aE|w>8bYDG%PmCqrMNKGT{DobzCDiFf3(q&uDMW zUzbi~K5DqVA}jv=P~!HHGA8dH8iVDhV5`Pfs9vE}V@Fz8V&O0g0~QuoXm*Z-&v9|) zHllMaS)vS+)es2I=vAA+MxkatHRU1iKuX?;+lQrLC23fCnJZHKR*jvcWGTZ$3quxG zSokm1#g@Kz{G_c1$QdH{a3H*@ve1-5FQyoJG3C&UDTrQ7N%UgKsux37y#!QPy%cya zhO}}qv<;&HQa({9URXd6x$!fu{n(Jd?nTVzy&5UZ$8~OYVK`BjKm6tGCKc|>4~r&7 zM-w-gMZHo}I|J<*x?-!Aac^lafPs}VyPL@7pXPOxU3Hmx{S>nv9y*^t7b$&@`TX^8 z@=`73Dbu;xjm0m;Lc2Six0<QI%zwtqOzd_#4|wM|{)Z^nLmL=WAMtw@J5)XMIm7Cq zeNonP=JT%J`CQH)VXsm1`TO2{{+>IZS2<S|PDD_K75RwE@#7GyKGgJ_yP%fA@Jc?> zzh^zxGHQr{MM2%WF1(E7`dFQN5_=Es*ijRkWRB_%5!*OIe{<zFkhwsL;21TrmDvcd z8gKjGc-#HPhfEJZBF{qG_r}|<H-4CP4_IjX-FVyW#^<>1h8q}8%*sJG3`?~($DDdT z&;KxDMP{FB9UK20M;y4D+h9!o$q?X%_>H0DY*Y^I#<;HR0AeHg#vxrK&btW!zLnqh z8U7o_W8Qlzj??(vw5b3W*7&Jh4W7pDrmZ;4z)s`_tOU+j4}9HP2z<jBdTUtGRr4nV zpKxTdNwW}$Rmm4Zr3d3DX#KA*M<Vk9DVq%X{wgC<ER>yLhiz}{?@{L(rhY!(25_?K zUvMXt4<}~lb5hzGakgw%-NVi{rvJZ-$!VltiZBQEA%~m(Mltq7vQyQq4Qf>~ihxSc zHyp!hZJ|?l`5TAhYz-nFq{7Ga7ZECXIo7@$Kghle(OH1JPC7*|{u_(WaN+r1ap9=1 zx$yWgK%IIzt9s_wP;yH4jFA6^*Ypp%UAK0(zYaRi+VF}?>J6J__-}qCpMSgg*ZD@O zYYtP1@!xIUpmMr@w*0p!s(B;%bpL)d3-&&5-mRC7nZ6kQ+<+y}SBSR3COvBd4gcyX zyZv)N@3!K~e0_EKo6d)hnAk-F2FJ}E{>FLGw9@G;T8o;MmT+?LtKNE&7~Zxr-`U&t zehy+`65869GjE%b+BzuL?0Ih+sjY3<^R^kWE#um6-rGiOYg@m0+l<^6u4~?(_qLJS z+B0vP5!^cH3=cWS8aWZnTO$^IPbdk8zgM>~@-*H?80pfm^A?)6mYJS`^*yvBES0iV ziDWu&ZC5-NMx-!@q5Pmdn!M1*ccjx6e%$LZ(NovQ$Ayy@A(^uIV6T2-^oStn7vGo@ zD*7l?bTHKRPQOswd;QQs5Q^;yIz#Va)<xgQ!+iJjlWk}u>Q;wK+v77Uo%f1ftaM&3 z!YuSkUwjC<2VOJ@C^9i~ALbJX(WfzH!_c!|CqIIHWb%o<Ot5>n*8if(U0KIoPJW;K zM%*J&r^?b-YhF@S^i6!~3KWC1#wW0S#vI}$+2LfokbmExK3fj<&S#a0@PW$2ph&Fx zKqz+dI45^ur85{adu<4`uH?7;V9gs?j+2Ur_9*p;RXXornzO3t**(jB@w^MMQ#c_u zV!ktY2|GcFZe18oUg^6idD-3B6O!@y*;UCZpDY>o^bc4Rv5OBlLz~g!5IdRt!bV7I zxydi6)#VM-ItcVYvfgn%K7csIQsYIdl^_e6gMbxUea+`e-Ec&EP`+c?Exq-tFF!Y{ zE;kh0hvt=7`4i5FrN+MOM(zc~_Ias|L{vIrx`eE7-ou+otrcs9*y7XE(;jyXJ+^T} z-C3@1PdJv{$VGsW%|lU=@J&f|9*fXvq;zLpj#RmIX3uEB&>lILU7S<<Ob~mVH5a(I z5G3*X6><$}a(asInyl1s!SNL#vntCo<S^IoNDu_c_WY#>7>G@)<DWC4?R;;q*#UoV zbxl`8>&FdU$2_K0$RBP0<1w}UnwK~1%XvIU4i~QvI#WXblQXwp^BQXrbnP}iL(}ub z9<sAhUz`gz5{ZW6V|oJuF=_RWQr)rsCkKDg*;Ta0KmR`o*|6^vf8#HCK{k09Jd&TZ zt;l!Qx9!M*cc&R(YtFo_W(IgpuG#Z8n;Bqh_PniT1~9Ju=501Jz}9~Awwf6L*EKul zZ8kH&hIw1f4DehydAs^{YI{^VFE+1PyKUe`r+f+8bs&GJr+6-xBDnUgs?yE1uU3_= zh$g?yCw3_$d`vv4qFsOCe|;qRV+Q@)@Y*fIS7Q;9%A5q@S$_~AUMkU6vGF#Dr3(K+ z8HAjV9t)WGRhUX$yBS-mZEg9^OTClcX6kOLyicy)q_>&6n<^VuZ_?XL-A$Eo?V0pe z&)aOOysx3WIV%ni>9x)qO#Zxul2`a5rCa74hYb6$%F@V_*|+Qnm%dT=1-c?)$3Lw+ z_0?eMuA3yxj`Q4qFor@!uZQ6XwQcr4sTv0d?n*wIRo^`(H18u-Fz6rO5t;`L^g3?W zz*k{B2D>ptT2;E+KYt+f>O9^P%$Azs)a{N@@xf;9Fe*N@zH5Ju?ptJ86M1Dm|NWAi zZ&;TlZcaT#as54M)VbUTVOGGn`6a^=+4J~JF>+F%1)jtzeV@@xh_J4!WcwzsNHHpD zbc$pt-P9kb!40JFb5nmBVyQp;x)rbo(u@YTP_3HkpuQ~JgKA&l9#pRu?m@M*a1W}3 z3-_Q}UAPAi-f`CS@k92GIq<t(FGs&KaST=A*K5-uQ(meNzifV<Jd-_^pked!f7oyA z@!t7TX1GQrs>cgAz9D-7-;bH$LT;$ua27usn40fnn$z@n>Gh!p<wP}t9xr?!_Ba1W znd$MuXUH*SmitaObZ_`0*b9B+2;nm8H!ZV%eaLl5Z-jY1VR=u;EQiH2>&0=O`*`Ud zA>3(42<JHm+!wDEJm((R!rRg0vnKWtzZH5NPCm-ZAVAJXvoG07dmk;n%6BxqHLZR4 z%l_5T(l4R?j^-aAeV!xIFJQcn>~GuWkoa}PI~_Tp+km7|90Stk#nnKD=a6q&crox) z+)IH}WypKL0QeS*KSE%Ro{R4To&p?0PUKk}0CH40>LBh)cOURez#TwHKI9oT5K1qH z&ndx!>@Z9?pu%kfD%_udCxPDwRKE2<g^yai!s0{uoLBy<pr_zt7T#{%ueWfDg<rRD ztcB;X<^MAA&IBr-lYz=-TdwQ=H=x|t0Oh_OAt9Cb6`;!dG*IQeA86#UI878?t_6w? zlYz)@6`#l1rt0$)fdtP1o(9~65R%|pU_S5}pz3i39C^9-0~P|`$CKxzIjjyUM~#Ko zTR7dq$rfH_;RFjWw6N5|PFSKU?+BpM`vLV<dHH40gol+MqYB3Eqx>rgN0S=6k3eJh zk)j&AkMh3`f9PWDJ_4&}fm5|SZHDD9NE7BRbYZn1<;i>6`U|qQ<hHx8T9BgWeQ5m! z=|Z_(F02-WM8@u;(l6v6UCr2i1RA@KtX+8#+~qGwSIM2|!fHX<DK8G>?<zsMNbYPG zRtqwR=1ETre^&|8<hhGoSS?t9|0_WLt`eln<mwC_SS`qtcL2!WRf3Q_SHuTa3vwu) zR|u59AWf4i*$-f~AYF-9vsUK?fTDK=P;{LN6#eRfqSGRv=+O#Py*B|>KP9eu1b`}U z1&}9iDp2{?1C`Gtpyb<HK=e!#PJ?-J4w4HMu0-_c3WRX!`O$N`#V1<4!Q!(mp0N00 zi~pO&*IE2$7SExudW?J>>6cjizpVcxi~q^u%@!B$QRP``@f8-|Wbx-Lo?|yO^id<f z)=FpA!x%UCCVB9b@RNL7KnTwme!`a+481%S&%#a5WPbAZo*5P|p;PI(ji3BGEPWSP ze2K+>WAUkU4n52GDf~_w|5b}Gq7&=c#V;khto|UWxa4(H@sl&~(=+h1GVpUV@ULay zn*aIhc_c5KiciSErIj_+Ul9>UlhoSbB+Oi&nj1U?G=%+MwVi)#97h$$@8nj#mbU9k z1X@txgpi0yg50D+uB_5KnJByEt_cE*1T}V?IF2n`r*&;wB>QaVP~ywgj-~QP{(@7h zg8xb*K;lFM_(FoMK#{{A5LzKwh>EyIB^*DR08#jSXJ^mrb)2++FpBT(oA>6;&z+sT zdGiJ@6rF?Hwpt^%8d|e$d%E*$2RoiWJkTYhv#)pb_8mU7+Scws-@(p-NE9Y~eFyv3 zMoP}=*xvr$!J8WW8A9O3X07dA&2lY#C*iuc6b6=c#^pxL+~FAO=<CAA20#@GOzxhM z`<`c?J3N3v;XrS{{q2r*C~Di*&i{ioT+}))ikq>3z1+jr01g{C?)$sVeSlkQ-23j9 ziQv#PzSoYZogC9)Y(_aG_2b*go%A1X`8yw>@(nR|a=}=9ul_m$F;RKMj|DWrPx8k+ zOeX$|`+n^QA8Fd!Y#I*x!Tr8}qOcp2o8FJ8d+oyQV!u5q#hS2a=Z{@VLkRGoT{Oij zyw`U5Y{KW4JWZWVeEiImwx0c9v(F#3_iMItEQn3ee0FL!2_!olYW9BX*dwN_Ak!Bl zl)t{P4D(?P3A~-3m0ece6`Q7H%eP2<KNyk|Jl@XUFJ=3oWD`uYxKMq^nE!1b*dFp3 zgy>T_16_5RQ3V*p(ec(uw4vMY2<R<Cu>UEGJ`S35n+IMi=2~4P0;Vi9y$0T7@r@QH zEmYCOudD@4Yq@i#2eZYW?q(^%UZOKK3z_qj9B@y_M&g=#aY@E7I}=sxT^8L!Ytx** zWU(rHnMYHksyd&(2(1kZf<0%ePJ87tRGIi~o`w4X8PkZ>HLQEK!`8liaTQN8;Mui4 z&qlW_u`G#GNNu($=BjCD&(VEKX7l6xZ7YiAbDYI9CPh}igdSFjUAsL8wC&|@&w+2W z^rVHhz5MMt=m|ewZy~y^kiOX0f9>dTi(?be^5to<_+Fy}{Z`nXsfW!(JQZ-W-1k%^ zxyk10mxS?DUpy%h7_u~R>~8_H%ltg}W&UE-&pVqhXAk`I3&r7oG?*B33*t_EjO0%% z5qh&tZt<mAJx~5XqJ5Xyzh$%biVjr*U-F~d%F7>dCj(@LR6)E>8|KgWHTb6b*{l3X z_mE+q^T-8_gCiO!^z@OS(HA(gS;`d7ERbQQFfyGfo|!RuzhQ>cqMk3l;}#ZFz(mG* ztvqYU+fP%yJHNu4gmnp3Z6EJJGL3i=a;AX0k85)N+>$LhQ?C$}ZTzn@^<hfHSThdr zsnQq<ZD&e~B`<!CL+mBIq0=hP)OBT1+&e4%WOlOu#uLTizb8zi;eEU=(|FaHdJ7hh z3)P$#-!#nlU#}ZCc|VF_)jOl}m}bo`{S2B>#JhP@L;R||#Vcd$%PHdDfnj~Rq}7-+ z`8@0tbYvhsnT_YK-8b4BE^WAwzZf}`&Yx#{N5(ZAf`6)l&-W#jH(kKLa!a_dBOha9 z;l5G)O4JG|`D{QX*oheab^6BZ%MXS#TK+(m6Q<N(b<nGl#s&dD|EGCqI5AHl;m%G} zou~Ylm8KixHC8X2<@uyKdN(ip9<KXpxc3ZI1itzL8dJ=3xhSq<zUu4+w*L~I3s?>z z3tK278EZN_18Bgqi(=|m9ImVkT85NYJf=ZQKf9Z<^Xy}lN4}~Pt8HH0i4ufwWJo#b z#&vj?o4shC3k`w2LgBoZzkcuNr-D|}dw@tQ%VRrAEn@|}u)s-XTs34GujH`B$uijQ zlBb@7UfnTeMAU-YGOkgb`=ZH{I~l`y(!25plfzko-zh8EWg7oxb0Jd>z5e{Fc~e@B zOWNoh-J<b1am-|cFNeugy|>BF6<;}(|2*zimLGHDdaP3q8;AXA=gITw!m&#v!m)$g z%CEff<|$jaj<cuSCs6+5BBfh?lM*nS0b>|&DCNrOhVKi)7MIabUVfU+<xL(_`4r*C zFWCZR*gGi9d6gTFdzHUF=Ee0`H#e?QD0qd}wbv+97n4us(W|+nFt74w8s5KuuSTu4 z(A#eQ$LeM>8=4-yo7`vId~+<9V^c48zZ_^ZUdr9&#*dWXS!M?17CmfXeah958s$m1 zXjt5q?WNpDmH1)xcH{4LNV=FU;TH)1N|oi0EA@vAiOFMyw6n5&2bq`Lf-k0ce1;4$ z1YsaN=$flK63mXrXNmP1f0c>9tcifHNKeSjE7;!*zQ^gd^q0ScJ<_|G;*Tbju=s7w zfs*>>;ImAAgB-tZ<wk^8$`a;(9nwFk2eIFX!TRihQ)*(m?JvRWQ6ENjBrr5-fCFa+ zt>m@i0jHsLH?P``q&Ig|*(sEndwjDm3~BfJ-#z(WSNKfIfR#1ySg;nl-M+%-Bvm2M zJA3&%r|vjWr}d21X~F(On|KrgJ|A1Nub}_Gn-JmKOk`Nze6YX`_#%4$DF1h@*joM( zJ$*n<QJ>DZS-S*LtKdE#3u?WJCM4;{tV>^@+_%yntDHBZ|C@O9LtBjg0Qh~2pF-Kj zl5@+eK$enQrY+uL;YJ`!$Sw62f06vf|B!_jXjI`p1WNumkePf#hsECo5&a1Z|G)y4 ze;YRNqxd?Y(*27OD|`uf4^a9@g3(9P822PWfbD`TnT<Y@N28BKgwaO=jXn|)Mjt79 zA3tPm^pQZLk7UVi^pT=}iyw+=^pQZLkEE(bA1V4deyFO^M*@vLG69`vQ;sB1`K5r8 zyAP=JV?goE1LXuX_<zH1EZzfA;SK&opSJiPEnc?x+ZJE6c-7(!G=c(2jecm>j+lom zu5qZajX&v+blzBDCx2o6RF}m|mVX%BKJvtAiU|Il2!1MppN-(4EBX`bXScJfYrh-~ zuOUP<GnT!(Z|J!m9cc_7nzS@2UDk-H`SA_T6-JIA9>PcQ{-N$}&I+zMdKmT;JUB4a RYER(b!23RUx1?0?kCDx3fS diff --git a/lib/osx/libvorbisfile.a b/lib/osx/libvorbisfile.a deleted file mode 100644 index c774d9b616733db72df92f52b88d5afb725d25d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35520 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 diff --git a/lib/osx/libz.a b/lib/osx/libz.a deleted file mode 100644 index e1a60a4eb0db2242f73176e3a880aa59fb64afbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106176 zcmd?S30zIx_b`5M^L#Tz6rxawt|2AV(Y<vpH$^3)S(8$!u9PHh(doK|$CTkAvmPWv zb5coz(1c_tJcbeqp+fh+_PM7)50CHneSh!&{eM3H)2Flcyw_fP?X}lld+&2c&U6d* z@R_Zk&73sZK&$6rPBk=`X2@h38fs}xGhjl5IGSl-U^sQEmKM|45Z>r<Rd8{cXuHIU z#kSD0wO(k)X3^kjkf6~H!hf_BopzdnX%x(-U?l~gQSc1~J1L0DX_2MT<S96mg7YM4 zv><aj&7Oj;6x4_K?fq!9sT4G)pa;N;nKYU|1tTc9nSwhhc$9)E6ue5oatc1CU=szu zQ*Z!XT>fYZPNtw8#3OuS0Kbw2blO%5CQxuK!0q$tv;k6((2q{DMQ{_HHk|Swr_!CH z;AILrQ|WZ6bOsbOrr;GST`>i#Dfp0r-c<fo6bz>zM&*A&rE8|(7Yc5m($N8;_Q+F^ zL*?5_#qXowMns2H8jTH5i=fdKQqY}(0xCX%g2ySCMZudCd`Q7Y3Vx=b6z~Zuzdr>> zQg8|dITTz(K_3c609?~fqlH2_T4!i9A>|K*c52Oqb^)xIL8tYjpaunXC^&(FvnhBQ z+Uw%B+}|^J%H(c`i$~x}ci#Zde*_p#rMY+nd!VEw=t=m47bWxd3`J>NLfzc`p`hiS zUjA;OJ&rknynyB1!RCQM;oTl~uLw?nZ|G!~?kME#@!7ZqyR8iAj<oR%SneC(-Qy4T zUD;FNLeCJ-(C#?WH_y{Es5`{gGnD1)5$YQl;1=A23xwjHZp%G`yVKe65M8L|K>LHj zgMGbypk&_wvW0WpJp6v}kj?28Nwt9raq)5s>B-!kQA`jjP45yce?*f?0ij)JQXyT0 z>*WQ)Q9diT;2s=p#AKqPC^Gf-L1*{&im670^r2c;Xn24}cP3l#*aZ3p^t94G00_F0 z<S#12Pw3diI4;Y5Lx7V4mjl&Z{5=D_Lw&k@p}{V0{=VJ;5CKjve_n`>i@R?qa6~V^ ze<11)6yOWYBX)&^1_paBcX98D3w87NhhC3h2L}g2Uq`rj1_!SU0bYvmfS5pNO@xP6 zuqWUU;qU8i9=I~d*Wc5^-_08;Lm`VigF}FIU|2v@uxAJace&75p#mwU=LK{Hz%YsM z@DB`ua=pnqQRUtd?mRCq#BwOo(=8ZqLGI;&L7q^9cZ6r47YW3;dPf9$d6B%`<sye) zL|1AA#Ua6-VZLZ=c}IkJdIC|zP#hQP>F<w15EO@yc)5sc_6_#*0NQy+z^DdVh#~M3 z>43I+M+CztL68^Fl|-CB3<Z*1gB(G@zy~DqK|FCm0LlE&fFNo(dq=G9Nf#FE3sOV; z{9~S<Vgyq<lgTvx`8+>)szLWWPl>pRfmB%tly|)CgejU1qL2pSl!l-ya%jOnJVW5$ z2>E~U1j&da5~(y@ekhZM{!w}80q*l$6DoF#{dVldXoBtYtdbT7pz_c()cr`&qPyMT zaB=bUaq$A#M-j%w<;U{YP~{|0nbZLpgo~;iji%JQAj<7RGN_wJs0%Luafpixm(@F& zD%DO`DlmmAF9^z`+6c2y&x1Vb@E-^9hz@N47X#FTe^n|Rz;7RWoOppbV2dz&%+3}g zDp-v48a%&Q6#&L>qw}UQ(q!fex2Q5`A`zEffzN6Y(P%isG9RZG;F%~?gaYW5_=XN~ zl*NsvuuRljc<g6Jj0zwR1*wJv;zT7oHZOF97kVZ#M#PY~LGc`V0T=R%iZD?LuNlv} zb$ycZQyPPY6D9bUXB^>1R0~I3JcnUXfD^ZIy?c1&JDh$G&wt0jeeb<TIOtX4`A=1G z`TWLxKpkvD+j%t_jj_oFaN%Tk6^d=hvw1BNG4mKBq7ed&v`85`BTY#Lp+GNZq%D(? z!0BI6gXrxzy_S(?CnJf|A3y*~DuvT)P>?hk+kt{)Q63o<Bh6n%0p4602E0RMRNx&c zqYU}Lv0O$8r&m+ODMI-uP97rcWaMyuo+`v}=nnt|4!r~3R`l1TyNYx_Bj4ii52X7B zyl16A>u}-*Bi0zY0BFVe@;8U5<PsI&fH$sJfmb%*&}GC8uHFs25{kTm=f4JWRdtiA z0epGL$I&amHx!{FDY~JOH<x#cM9^o97z}6#y~to}dIU6UQh>hfrXNtQf|0g}ju?Vo z0u?gS<^u_VekBkLw7WruMTto_A1K!b#KZV`EsQj0Al@QGyZMM{&WL8Kfn+5Bqkv*J zAOffbB}OSgA3zF3vqf^aa5a#uf<p%a!5at%Zy*r7fix9Xq}z%P!~!>pwIah&3veQz zvDp$R2JHfOs20hN|HhBGU93a$<4g4JCT)H<0dc*2MD#B&e;|ENJR&e~Cs)1_3RsFQ z!<;Z@%*E*%8h;$30?R}L$qHy4cMm9xXTEy2cT-TbY&4h1!@o3gfwoXODlY%EDU8wE zjP&yPLOXfUeBl;(H10SX+7Yl~SX4rn=f6`G_bVeEh6ozXB98DP8b`P=XE53Q-NTI2 zJ&G~CJPzZ03E9qPz1zvvEAAP8A4oLB#Y3xcVGLt9ty6>s#D?~#B07=|B^-Jw_z*^1 zhD9j{TF#Mw&m~HnuJxh!|L@wrUHlA0!UrCD#6lW<jVfJLNmgz<jIs$3hUTR<#1HU9 zcTI4Zis~i_b7dJ0Uv`U(P<pG>HZn%1Px|-ZC!enLl=nYPM<u7BdMg)8BRT%_M;!CZ zcnXhy#A}L6TZSM+Drt$KGlI}=6)r${mLUjIT**cZoe_j7SB0A5mmvr!Dy<PiX9Qsi zRRKVjqXiJ9Hv@>mnE+Lwz^-}Qgz|5v=5ce%pGW!UQT_(XkNSkst2N4$zpH<Scll95 z>iMtMd~Dps0;wBJniuG<6Fq(Y0m)K9KVwcN?JD9I^Edh#lW9PucU2(QkCb-yGrcSY zwNFcoJkrbJdbL*^+VhScBX+k?X}bJK7eW7BWcW|@vJNT(Di1k>bjf~0o@nrPKS+-X zfYn^r(^oG;olZVlV$cGe--U}f<j42#^gP;Var!4zwiakN8hD9-U)LC>qDb&NJ?{xs zULuvLVyw74Gf><p)RAh}{U8t0^L!v4F*iPrMnm?eE<F#0|0fTUv$&9~!RZ=f1P%FZ znR%p+wiqh;QWIMhI-V;|L9}f*`&=X$I*O4tn~_$+Y|n3y!=^~ZfsQ7+!F%2~8Zr=V zjl%)(J4P@z9fMBmBiE<MFw$;ff`f51P)wl=YzjD)AX|QZqk4XWDkCiqf}&C1;KC>^ ze!&xLie}stXDLQnF(!zK7H2ENro@P|)#f)so>I~edGedo0ilE`7IMF?Mw}k1Md=$L zy=L?jXQltLd?@5s&G>2g1OLnN)&I-#HUF#fp?7eild(Af6uBlzocO};kX&uf7-2@6 z0-9GV>I_v(a5+Ux?fcl2%L%BHfY3lNoL?-(FZc$5Bnh!8Q==g}(Gqs8NrEUMT7Y3j zc=hP<(-Eh<@8*<Z;FQ;2DwZN{W6?-{b81AK3Rx&Ww#XLW@J1E5h$|pDlOq6)mfe8I zRx!4!L2!l^KjSS<#6I~h5@jGkL#`{x{5Y}YIts=?(GcbF+q8IZ*~}`gP>2G7zvl{K z?jk3%6pzj05@n$yNe1m+cbuk&O5#%#asD+qq$bDa@!rlQw%mOJgyM(_Fn)&?FNZ1+ zg1okq<$()QW};T0B8T@{$NZ{1K%u)l3OlZFH>&1GeAvu~D4-iZsP8e^zW=Je$71}i zVf?Rv|K|caPnJV;HjVY#&SrkbV@05xh7Kj^XZE=mD8QX!0Lu@cKr=-0nm9x?r}8T^ z&nosIBW5e=t8RR7!NKdOa6I<mRdM?((NeBE{_{1GpvE{qABt;&WV|;xkt6OSaR=pK zkccP4CB8I`+0F!I_cJJjp&DX-z&;m|1sEZGIF;`pme+*mcSs;+h^>Q~n<OD8&isOy z#Dv|z1695a-%yCyXDR0FbgcoQ)y<DczKQuwtZ$*nJqEI26WmnZWi623H>7Z-?6%ew zLDNonG#=Z%{LtjMhbqT29)%BYy!#}swrcNqZkqg+$O}=j`Wdfw47<90xoY~b4_YZJ z@Ku=~>#*FIb$1>NZF>HA<$}~Zt;Mm`{6z`=1M*J$Estn-|Nf@bGv0a`ePFG>jEBc8 zM#m>*Ibn%bfQhrJFZVg-dN+8L_tDDdk~1yuNX`2mt6b%ms&Jy?bm}z!go|_Tm1aLQ zYtK3RxBvagyk+(5a^-uEmdvU=bJn1C%nVxHg6IV`C4<~5uBNtL9;sb;Y0<vjS>=oq zS27M|Na)JNNxNLERVvbHRJ^b`GH_BquFv8#!`$*`>3gMZ#~!VgS@n>fqg9nKPW5gx z5qn|Ph}1Nh6VI<6o^mIn;b^JsnyKwH#@5sFd(;zDo@OhrSg${8rQBZs<vZxhJYKdg z@bhzb^Vhs@;2Arg=KkUBZW;fzC+Hgat#TV33K^e@YEwLI8q@o~&d3!+#$|r1ANJUt zqyIqdV`TLfPwt(si`_0--CmG7Bb1hN?3qFK9qdH?+?w6@XRR!(JpQ%yUiFGbU-NIZ z0aGpFyw6o+xIPHcmtwsbCOO50tMFH8r1ImLtE6rI!X(D3sw(Dg(o!lNo$BLoDK=0` z{*G7X;pc9*Rod&E6H06KMkQ3FTs~b>Jb2cnB^#74Pc&I}CH<U#RvwZhX_v0<S9+Ev zxxeZ{sIleU*XP5k{!|<DP>Mh3QAmG9kH2F~mhYOqVx{tF#}yHZ<toqr6v^)#n@m%< za7cC?YbT?n>X_VSpAYomodq(!P7dy0%Dg?JR~h;bc_rf)uv+6z=acc(gk!`5)thr4 zdk5BMwzoIuZZ*$MAAEOfifhBMd-tMtRvsxVxNo%ZL%sET@9au%hn$m-Wl~M&8D7L6 zj90$T)lfM9d9I|PYlIYbt=YBSzTW$E^VR@nc&@L-mP>ABL-}4giB*B44WIce+#RNL zQ_@l~J9Ci4s7Yg_?Q>1CuInmZx%h|U<?&K0E-gDHswrTWSELFK)lL|eT(>l(VEKVD zA3WY1Jhp<TuydtEl8pR8Q$v-eSZ~?j0S+|jjdQQ=9vG4FEP4EewMH6gN(Z)9{h^$D z_eFa1qsWo<4;AlJRd1T}?9ThPOOJg5_zy<h8kD<X>6pyVPs36I!z|O)UpmUg1+8F+ zZkWh;EmNfT6CLv0=9}!^RxR>#W0(66TJuaH@m-a2jU8WVe!(S4W4AHhr@jnwt+2B6 z<va`vm_2tzW%47(d$nGQ^=2(5_ov$?=OkS}lwG&J{Gw%}DAhpo!<8%X1z9%?c3!eQ zdF--|v|&ZoPMMlpdJc7VSG{YsCq{T(%9!g`D52rwv}=6exaqlymyc{!x~5St?I>)P zKwEz_jHxkXqr2hcYqt91rLOxgXSar}+jPotQSlzkS}wk}gp*xR8Q;*{QC8dfw~}@0 zS*xhz)UEpbL*<$Yn-}yin5(K?Yg--Ey5<k8+0DKtdE&sAsncsx6Eye4@THd|XlztZ zq8)hHp`Wt9%rMExDeR@DzrU#76uWas#qrirotWK!s~z5=WpVM8TUb)=$)^qPUsZf; z(Baoz^SpTd!C%QvPECg`Sh_d;0)4*+txoo18aF$R)0!YJtGLogv;Rj!i~5VQPDQKi zg5DZ<`n7)fI4(P_fO(X+Lz9@AD7*b@&f&pX!WfnCx}?!Y%@=2i!as)O;tea-X<Wx< zj;mWNZ5`giigIt<tZ!XVq-pn%9<R2`EL%m$Z_qwjP-}Em`Ff%ew>5j@wo`i)ZtoEe zkf+^ThBIr}0{4!98@5lw?3}W*)cg~V-7^)&?N!;c!zQ7ou3ys4;;N3PZ+4b-d|FoH z9z5)2xL;kWo!Q|S>m`f(s|*^Vt;To|WTbNd)1Gz8@4M$q$Cr_#<;xtF8&%9dmb`=h z>~OsL$eX98xPH$WcmAo)xpx(&m-YGm5Bpz~-*iR?FMX|MTcKwW_0=cL^V#Qc(@E*L zj$x>V{IF@``b&Mtv7L8Gh%XGP^9*M;N4a)>eEI5X!S~L{9Tj(HC6?XnFpTGC%kJ2} z#xCcAvFEAN^Ah+b3P}m0N;^{J<I0j%t(}@(RQy{lZkg7u+@ewtYTn=Rql7m0IzPxi zKN<_WZ&_owSLUVu*6XRX6EQIwIYZ;IRZFuSeG(eN%xi1?9fw=%tGPrODjn3<82eb0 zHoHG9A=8%0Pu%XFEU2_i{bSJe*2fO5&4s&86*S-7Q~S9wM>hGiP&3`Hj(Kog^SIcz z;eI#H;z8Ac8cuB!$5}jmYFOu$D0_Xqhh2l+D9?{pFFszBI9`yX;k_fqU`*m+y^Q4R z&)W~zeV=jj<Gr=t8_IM1lA^ymUfefZ{_w^1MloknbTlWtSCgGK*<#%AkT9m~<)=aT zrwYFXhJ1^Nu!~L}^J_ZF7%!hz-AujNE{v&pGPnPp^NQNSw3492KM5>5#==QkQr6#S zXrZYZGgd`KcTR$}w`7uCR9;88{f07k?uhF~8=PCU6aGA<a_P|?wZAlIb}t;6*5CHI zyVu;e4Zl6u`YC5oREN!O{hGCRG;g{Oh!^TF%-%C~M??0AirPe(Hy@*%&lPxD2JFE7 zCnehQ8Vvi-NRpM;USX#rH{R2<-}CTOdrsgv+q^V(93ML_{>qb_vJXdu6;1AS-}AJa zU)ElEnltcQ#VKV|e*BoIi#tp+bt;0|)XIEKEMCru2>ZS?)z9-$t7Fvl>GHPkRvY18 zE+ormv>fh#WXes`_~7q4XbYb<eMJF1;7*L>l3WXkN2ldwn+nQgE=CHaVh34EXDk?? zvdyHDaW8hS^3!H}rRD8I<!yJ~ms8L`q%g~JnPSkfF`Aa8&xZ{UJ32ydnCtMfijy=B zxV;@(P=7}KQ>yQfk`L4RixR#JI63A*za88V)q##P)wB&d2S#ko7-aQ4V(=3SE2EkT z+l;sVQEHOerZ{8fJC><p%%<53XXMTFw2_##c(Ai!;JSm;4X-_zMo&_o8gtcwdFk$M zgV%o5lONOjP1*j!Pv_LOq|u$s=CP$q^~Z3n+_l$^O&m39-%BmEk2)iDFRvLlqAqK^ zh3hxHRSL6pTQyhdUt4`?!v2y^6VDx;J}FPQKj_P=#jBE+3=i2i<x#Na=$&EXtrx5g zem^*rec&!{%_AbpI&I$iL2}CLM!J_r9uJKU-#L8Fnj48y5#MhVtxcJj<G+~|wX&|m zD6nyRM}YsPRKKNf!d6HuWco}q`sgdS{=B=X+DZ?vGvnPB<TtwBsX6KS_m$<#vm{4( z34Nb<Yn9dDgO8|j=8v$Q7tY%;_nSwZb(y^8{6EqixhEbcSS9Q)v^d`)WBGZ$89QHR zBa1cp78bIYVK(k1XU?!K0&^Rm_jcYAQ|xEw@Eqjtr7zl&*Jhjj*NlbF21eT4jmlln zVEoLn-d1brrng>8E^I!&c<PQOC&{mR%N*H(&MPOKbBWfN_B4IfmnZMaFFdO~5%Tx4 zOEX{k)pov`?49vKS~=pm(cCf346Wzy79BeJ#;w)$?ek}o8mi;oHpUyCX}Yq^_jOCg zfbYdsmER8e@9j*Iu@_BH9onH0asTU_!b9!6<YjGmBkkjQe!+(^vtnBMIas{kg~_)b z8(;RRW4G|jEs^zSSEn_#4%4&ls}SEF82>%{Va}&jb%Mi}>Z?Y6di-ME^hfuV{A!xL zlJ2G5Z@#nPqW)c}<L(txZYNf*2zpuVG*qWbwbS|f*j)z;qsBcb;+Uxy-(2KS@O9?y zYezR$=kIRlmv{QSRoUU|+n}dPOWyZWEDe=q-85gh>DJKdymI|aiQ8s-&hH5OwsQN# zIphBrqT9Ih;Ovuo&e$#A`{DJd-Pfa^>}o5{Ib41&>d>A6MhB0Ccl@ann3^y^I&9zE zZ03P=l^^#TOe2J{F7viHKULo9D=6Rg=FjN(hhOFhHgcqhRPCa;xaIr#S5+2oe3>#l zy7IxJ4R$wo#(11u5IaMC@Mh)UyPFa#o+a(g(mH)x%ImN8fa7N(*EA*1>#ujd|JlHE zql?a+Rp0Rb)TE{<Cs*6^j$@|jCkpl25<i;HIP%x`$YX!*%{^KXQkeQ`h|J~OQ)X$z zt&QnQ4{u#Gxxl#O&fr|I_Y|b~jH=0Y!PT;4KHFw65AMjk9AB5if1-KifwSY)w^I{x z(fIfD&dCsz$p7{3d}@D(z3$s4x71C4<l;9v)2QapX5Guz<E`b^Eq`()kiMB-lX3Ol z+{gD<e3%ke|74M>$Kt~dLu@(>PBaWWtlF`v?d+VAytVb`P8EBb%LVhs1m3<CwEo;~ zHT8b_U(=799;#5^Jhq{H=$vgKN6%^%rIcDm$jv@KIdN&pR`pbG6NL)e=8L{YHj|WG z-t2wWvLtr%-WRhfH*fO1{A9*sN9%3nrn*zYHmN>;{dd^nh06Een)zH^&~~J4d`scs zz4$nTQI6IQhn{^7<gDK*_o;Z@DYLukdEZvfuQ)tye7d&qy852OiR;IW9b)-CD^d%S z_+wkE>X!!m^sL1L4=gr4t(~@g7_<7z5n@I8>Vb^YH_kqlU7s7{dQGM(DA756u;$Ap z8A+`(>(#iiuL>%kL`V6mOe$OJhlgD|%1|yV_PG$ES1jemP0XnMln}_;E~@?(W#jcu zWBP+dR%0_&bj_sGikef7AB$7c9GdcQ!}=O;;~i_N#<z|L*eUsCjEUFw{rou7Nju&y z-l=Ej%DT*yZBwd0Z8bcr{Qb!{^?!5{851qM2OqGL2pan)8*f=vH;G$n5Z(UJ{uSHf zV4|sCdojOyu#aJWFe5&^Y`W9)WSghU%tUtcM<+CV4v7;a4{Dx1sLgDn)SqK#=je=R z9Eq*5-*>*|iQq=cvMDBMOWrzHzOYY;va!57<c-LGq=~z{#pVaE8Yh=*+`2XB&Y`!u z7upwWcUkm&;|%8F8GQL|r(On386lUyNqObT8L7vgnqA4?^i6t_9%t~}`Jc{zTs>;? zo_>eo*W`{*7*@MiYhG#Vnu*DHULO5>)d??bg{JeKFX6`HtoQCY?DXNi_6zADepaqg zHJ`Rty1!~lt8-bnRlZ<)V`@aL1<faCWKP9vW_{eYMIHuj?e|7W9a^#f%E>FT_w(sj z4FfKpvz3=q+dn^em`LyTiGG{briVT)X56Y({o{1**>M*Ah8StDJ`v6HD!Q*qk8tfw zE)PCX8ggUQ`{NFld(@kgjL&_)>D-Sk^Ui9u2l4*4a185F1J<^DLHMNhsl#_-4=#+c zy?SqdQ)5y4r7cI;itZ{cLu7rqM{*Y&nEB9fY|ONMf9$d8oH%h`rrnrtbq$C5uX5TF zHt6Zp+Y=3w&T!)Uv0s`>YHi?Wuio+G?*X5eE&aZvk&`gn{{2Xqjs7gR*?0cBEhs8a znjU3@t-t3q=32ldVs+%bcQ*<H?+sg`aN)?)=fekn+z@_xUX5?rfQu?&XO<l)$TTjB zqDOZo9elA*O-Io%(J)|v=GIe#yfziAdN6xJUEl;xX7#R?4N~&EUuIlb%TYcyeBuQS ze0G(&{*r*N*FHaNJh{Vr!HA@kn-RB_LU*}kdcBvCu0!KLOx9q}I~BJH`{Wm7$*wFM z611XqTcgK`X@{2YKBn?8ZgTjejN?!4HV)rgRU0Rt#vLDZA@a(r41L+{SBLEwmae*d zMT*vkkD06Rm|U!G=z}}!Rz7~-)Osg%0lzx7cz}PxqUC<4^S-;cN5p%Uz8OegX6+&4 zU)#Z$<sp<){$vuMRl@aEb-wG0JwNKbDtM;k^U8TrcPy)vW51tJNcEeRdb(rI#RUI{ z*`@c+=CqqlzVH7xyM7t((LLqzGnKQJjHxv^yP%FXqoig*^wkQtK_f4>rY^cvs9m15 zdtb(t6AWF6j6*KcadJgUwHGfaHtI|YjNH7~hubgTZP=MKFa24oA7R_+4_C<~RB7cj z-&GyA>Ow3bla@N-@YUxh8Zz!oStDC|ltF8sx<~%>)~6~7>g!i1XUnaerN3jj|K67# z%jkZ73tBb(-P~h64eoz%r_J}5+5J|7eq!xLxz_woj6w&`l-i>H>5Vpm+>F=XGUFoM z9}lZnd!WzRQXTp6>m9DA)kU|(Gg24aK9)lZy_0S5Y;OGtY}WnVHODIpS61I^{c7&p zxMFHR?YDE@aTX6;Gb&h8`XN&!hrReqf$Q>EIkMD7dezLa64+n4imIxmN?My7d{Rei z1;$>=^tvN|+wJ*b=el+kz1q@*l!}B=#WkldFS#^p@Wji?8`7^VGs(;HKle6+ueJZ` zr8LR3XG)<Ls`kIWYiayvRoHo{hhx-29u4CE?V;Fz*K(5><&`UDN33u>{amG7ai_fK zPX$`?*mbgpF0?RqvNp>ds~S%K;NvS((D}vP!719)yKIQR;i>>XnOB{6G*%PU<DaNL zh;a0NJojdMW_{q++~)Sd>AB{vDO>N}yLYVNNafBbqx%Jg*7YA2R%Uy@Kbhm;ZJH|c z7{6#Z@4oW*2j>+uxQ3E*KVwo6uJx|X*G_xa+cN{UHe2}ShL^cr+LGhNA38d)DsiFD zGsBxoVY{;xEhR@u49c{Z9y95BmPzi#D~h_~FFXFR?9vLUf*R4O)QWQEgxW)brFF@} z4lFN7dE@b63~$A;gAyxuDjbxTNorCtG!2&Zj+Lf44A^~j?#5>s5d+s=7@w?^reX9) z)z$+q?&c~-K59-^d{{qnQ+3sy_jjJn@p*iyZNvk9z=qsGw?1c%SsIuU_EbIHGAvHc z@ui5dBFIa|<VHWb;<9a?heU1e$-ZuWqUu5Z<?KX-XKQMdtKQ9*;@cTZUMe`{J;trV zb<h`%ucg)OfUt+jl`H1f-gA6pR<Gza{k};{QckjMUG|~tmKV#{8>EUFuUz?{c_XVJ z-uBW?1D(sqPG(gYO5duH*=bkjpr>8yef5%8#Kc0kxfxDA8WQ6I$M3qVm^=NN($*u6 z()Akp63s$1{)cEVvB`$+8^`P0UR&;eU20ueD|?aSsZG|{p5l_)c)7}gY)(gWL;T;Z zwPj~ht(8)fqpS|`^|x+L&@7)@(0_q#t+wi#)}U&)X6%oN$u;)VQ(q3$Oh~Pf=Ev;W zsFASb04+&9MZe==l405Ymtjs$B7c9)JD6$xEk~6@yJK{YZaJ*>_o<5(TDeJKZtokO zo^1G7@#<O~U+2N~i=IwS$$zmd4mSn*-PBzj^xfB(>6ffE&aqihR(?W%O{10d7KR^- zoMbP)4YFI+>gQ>YJ?`U|qs)RdLURXiyKLgr!H09cs>BGhMkm#U&%D@d6!I}#w4wpe z#jb0tTU<A8W=puWbfbF|tH4@+^Fuq$qFrk7bfHSN*-7mN{#B#e0;9z1$|JK|xe9wu zZ5trmb9>oMnmoIPi3fDJ3&Nh--pI;!vOAXOuNEgXy|-hJ%HFz~1e@ZUN&VhD?Wp?H zQMNPKy=IwT_{(8tcByqstYZ!jQt7{#p{6}V$0+E*EN$$7=XbwTkzfFDD3c#Ozrtua zeMj;!_4vcjrkuJta$L@L*K;~g&tEpJcz3uzUw@PQMgLM<=S+pI+Uu`T7JAP-!+a*0 zhJQBH!PAGyYlKSmA2)5DZO(^<xbRZAXI+qMR5SC{%a5I%-wUqZt=JKHvn+8IKi;ro z{|?#g3psXcPM`8LHsL4C8<mixAfMV%s+wFD=hEzCZPDtlva;6nR%n6BmXD78&0k~M z68Zi?`S-)H=)HzDmRt2-%ABC3UeD2piCKlk5A|`(UTPlJkl^TFTdSsTJzU8!%4MvE z{=wNa&BvJuwEl^FrmY~^efuA&wv~@tuMaA0ZgprbIJN6@?Vh{IvN?_En!?iunRR}# zU;wz`7yh<72tV8Aq!IYkV%$WpI>V>yugfOF^54Viqvt4ziyvQTBo!Pth}q$-cQ|p( z^XthO-|G&y-}`uTMtQ^cwb4m_Ir}a;e!qBFe)gFdqxBOsbyB9us=XgR&SJ7GGb{uT zdU|<*U&W^g3%;R;)5Wl|j+*&ZPhT?H!2s~2CPsLEPye}TLT$xA6N5@(vN1wZ+sR_6 zk-scc&9qQgMJ3kTI$=(fU6Q1Ict;-By==n<qw6CQv|F7oshs-rFSR|7Uf9tzzF9LJ zYuw%U-43_C&v|M+*rp?D(b^jQ-R?Iv@8}ET2Ta|Qy>LW!!w#9m+6w2Wk8dnJ3(ooD zI|6vNiIZmZH*C<Bmrat>v0Ks4)N}lvQ{m6I<=`id@6hnN5<hP2hq9a}O%=i;dEe{Y zYhN~N56pRbMfp_4w=wa2Q_~$6qk<}QGJVU`+UC5pFj@LNEaH);U+VQJ$JTeY^3%WI zMyoUAlP?_Uf4C*y^yZYEI^ToQ_@@`Fm@XM}CqTj?cZsb0=|?hU1x-@I$cxg}gJM+% zEXZI~nru_v8+%X5zWJ&A(DvnW_jlSV9MV@%TxK~-bIh@zVb4n~M;r|sKHPPfp2j4_ zvqRsy9Z)}0UogZs^;7?8A4&#%Nf7nBFy^Fc2zQ6tOvix(I}Nl4Wo(TY9P!-B$jai0 z@wN#yCZ&IDouSy4Y07#xbM~ef#hH0C7S58e@icTEym<P-b%E0!Tr-@io<wIlT#Yf< zefQGjYQNW0`q3Zj_`TRZI%(UfvCYiRG5SkOwcV|_qY}ri)q1&a)JUC=YU9>i)*YW! zH$v~5tA*}tg;n~iG+QTJT77Ner;`1XrXM{Qv|pIFYVoTtA;Xs>2S1v!FKp*%&D9I6 z$A=DnAI!UZfE`6VTC;v$n)Nzmxj~WT?jysaLyxbSGkj-+RN{@bMK`|t=S)ml8O7Qh zXw*>`(6PPIFLjguim*3JeV7X+d_NjZb3eac&SRyTsoVH7UapP#3p`KO+*!W-%HLk2 zB(uDq_zLlwGA)kUk-_t9N6eqQgBNaH=kaa6rhFOKG5rs#gvTc=3il^i%Cwwko6Y~s z+NhI{-I~lYV=NAt!+AN*T(D)B-FqJ!`zaFM4!oS%i_-7O+qUIxSvcdbY@5h|&lcoH z-F19s+^|&3wtk7%+f9p)Z@%Evv}5Wry|0qafow;YbCXs+ou(1}<jbn`XBW!f{T*_m z_T|h=%U*TX`n|~Tp8PyQS-N@5T%&i-wHR-X9$NI)wbiX*(zEA{Z{w<)&KSnO_FZ=6 z`+$s=Z<STWoqPQciR@*PI)<uF_<BD=qy13foVI1jypOa-{6hhMeM`)&G4CxL`nAeq zyFQhTKlVkqyW_L9=vM6-C)fK~(;XgsBUB#F{@b{2)u){LONRxIKaH$<G=1KS8b77` z_maGt?=;^}yQ_b3LxuZssmjFLQ>tGEt*Fu&>U7<?Q?>BmuCYZA#zhsYn{f&p7TvtI zd*;{t>WxS9`Zeq>vpRqJ#<uH+OG?)kl`8gof0HE}dTY~4^YXmvp|>S6^>>`#W43+e zx3E9P&zZQhQFq9mld})*U2b<~_o&w&c0Gx{emJMN?NHRY@`FYL_Waoqek36^P-kD5 z^ne4*?790tR<08g(+sxEbCKPu{M30{xxhC*`p-9lIbR+UQk;!(McS$S{mbJvE>^i3 zJv`;*hDQ%7V|L!Oi(PQiWAkA38Jq3~D<?gxNIb2Twf8SCsoQ6c2ec<Qt%*FZ*MHu* zz_b0&o+}!C>iq`wlT(@|9p~AvK9O#UCAR4m9+_eO@mS>dzmDea{WG;Nq~fy7kXLDD zr*hLb-XbpEdZ=`XalzyQhvA+g@U+ja8Re6uhP!0gewNAHagdo)7k~MR<`e!^N9PB* z2~*#q@t=|7?fI8{iJ*V#`FGpg_c~0kYneRS&*jmdHAb1&FY7k1le3Nwyz*pu4Hy9C z-n*LdVa5H&PwK;_EcQ@cWHZF!aKj0Mjt<qs1LvG=TUEa{uf)6f)Hz<TocXQWfn#=` zTOXv~PhHLQc>34P>J^8EmN$$&8nSIpN|DxCxd_YB#L4Gpt8Xn?s$k-sdT}$YVv>!K z@7^~qO0i2?p3Qo(ceCfF&6SU5Jh@!H&Dt?+imvJF=c=0)E)M(K?CpK!wgp#xTE@2> z!S^06bR1<c?%5#+>-C(#&&8kQcHT8RwQl9NJoRaZE9MKe)5jm)qkettxb=xy-z|qo zU|Nx?t=s-MjW>KbFmUlK?bD`<nZvfH5l6mM4_sZo;_QvnjNJ9IPi3yT#yBSiRlU?4 zoZgz0v4pEuKeMvnRjhAR^pmw^lT@yS;eKVxjH4kJe2U$qiuGzU61l9vgiqh9Mcdzb z*+eaRFkM3>bF5XGw3+Vll;$E$rMP1o9;OU6_O4k!zG}^modF|SO~!nY<nQ0^wPTWL zoZimGZ!fc4?UdSNnZvD4*Pnb}p4ItB{Tqvk8HC+|!QOAi21%@H!Lv)blj<I}M;mys zU)lSaCLXNj7q{md`V0<_X9PcYnqIc-sZH{HJCWJvhJ?|{g1C@D)0+oLZ8U4knLYN; zk&PpC_Svt&1W#(tPg$07<L#0(6Z;pH&XzV&DWW$+?z)?d^nb9~LcU~j<Ex;pTQ};y zJ#=ULg7ym=pD%Kmv6wmI)HZqkh$#Utl{e+frOr6H@`~Bh<I>+Y<qziQO*;Q+{@lr< zR)35?)NfD1_}n#GduxZSX)T?XhbK?0`cBVVfq9+yvd3A|dYo~%)8RdPUueJoVC6SN z`cqAm>nr!ltuA$GO$G8>7e=HuPWPc%)K-82Ag-SI+Q4Jcwo&)m-S)3IBqa+5fUETU z`{ynP7^=z1+YSq!zyHK-JyH7FP5l_fPecDut-UqwZ0>2JA^j|(PpsCyU*yGeji9Rr zmnV1L2q`__aQywKX7xRm-_IE*vHLmSTy6DE=JtES;}L6&aCsZn&^{@A0k(7aRNFBZ z9yIO0clA<xQKKUJ$d(~3D(*+PzOpk9EXa)+Yxr=_AN!_FoY-kI#x8T;p@zC|Tbx$) zpZauASd!ty+x_A>XCzHuva|UcwEljwWA)Nyp9gRnmwbP3KRdyHqs+)Vv)x!lg4=&Z zO;0Mnw;nSJxHiTqay4<O@W#7)ONQMGe0t=9!pDKbpU*oTzF|O_Z_Sx7m5Z4LN0!l} zii{5?bw=x`?R#OEXsEbVb3wo+uR*6~KUh^TA+T=3uIfyVywrx43mGqWA5-S6)wnQm zxOvrV{A<7x{l<r%uPyN2aq?zL(uh!{+Yw%wZoBHFW!`t4)#`iRQU~M$oDb?gZ>bD! z^7+mANk2Gt@IyL`kB)`W`j)34P6eBf)cH-y-#48@-}2`2rO<uAzUh8dURO2f>_0rz zsXVc#_d5vcq0{KUjQ?GJSI9q-Ch^Ps6n_7RM`r>da2PtShTtY~d-eYY;=_p}{UhK9 z+Ryq7et7iJ`A`TV&xryVl(fJPkUS@<2uI;qR6K&H2wV)E5rh+GD*jYFf^fD-DM$>R z5tN7cT~s`Ra70ikK@6P{ghwR@UZ{Qq0e7W5F?2={+DM)=MR;g|AJu0D5S8l+5FV9i zc%gJI$O8@DE^aRk-Hk!#P`eKMp}VH&jzrfv!x+l1J{lbGY=M6iZ$|kMzR2%G`43Y5 z?UesG<<Fq}KpXPhD%Gzvz?t+%Q~01ev*=uF3rYyjc=+#q&UFU(A-enF_VJ^L|HbQy zE-oRVaFNf&!^aP9==s9csNNyoJhx!D?exQ)N4O2ubKUXx2WI;oq(!*?>V6Ztz5Mfg z%u}bs6=!%{6{rh|zrEjt7>A~XY7^gYy5F0C;^6Lg;!LsAjOvdrKN>ISUz$q!pPr+A zJ*}ra)TK{m(`b<>=)XKi+d`GY5*J4^FcQm2%KH!SyK}TghT<%)h}Yp+1LYxS-W)hf zM~3|P`sX=c7G{U_q)9XuyA!FPCvcz}wO5Nxjyo!}2mJ0_t{Gx<cwDJ|h=zVa_ys|E z1IQS%SH&)Pqh#vvFJ}S!$^h4J;Jh>hBKd~K8VdhU9`al+|BWia)se%AfjU_rOlWW; z115|N<YY5T8&Ekozfct}Pi#l&yYFk^{5R?>!m5HruuCwaoI`vsX5Z<6TLZX&tqLa< z88LJ~DcXq1h;0KN<gZf?V#K}!7bJrdb#MglEhDB5{G4L80jh-~V4I<{kOQcr!W@Ea z25~lI9Df~7<0;}oa*E^-R(K`|P8z>c#9-ehtZuSnMQhYCp>+$!7r|{F>vqQBe7LRi z6cZIT$zWgV+05qxs}dnc#BY~lZ1zF;bjUGcUBCgk+W76VjLql<IDg$udB$d(bX7<( zHqQnZN3hNY%LNCGd}SF7rqM)jv*}tU$XvLYB$C4z>~d(;H`I7^dQlGLBAkr4#CR6r zF##_&CmTr2!&$`V>X$6Rx)P{WmIz^y2TQA;V8ZqCS!e$G>o1&f9&W(B9x03x5o@`` zyfuV*sHlW6k0f?RLuCk+EY$m$$leSm%xwfAtiEBcf{@T3!Z3cZ3@ff3tA^`C=012a zUl$sH9u{$_ZIHN7z$*)JFjcOqK!9R!;Xoluh!eJOAa|_|Epz|?S6ZkN03TYYH0myc zVsp9ufD<l0MvDu~44~%>xI{C_I|B9{U?25fw~mM#{AZo$!WOZU2AJSNB@Rx{#|c3T zR4HKJB>0!1P64}u;AeoN$b6<86!v2wjR-9<Kf*a);%f%tD3bOS5P=IqjL5^~*TBOP ztd_$zbfRl{Vf`?ECo60yyvKzy8&5zi#31Auu?gU58ionyXY<=9Fg6pYn5=#@Gn$kt zxERN7goNV)3&hx=D!5>+4Neq^Y;m$CfrZb{gI#|fZ1dCLwKk}{Vsj&?nU)Dhcj2BO zAi9dd$|sMQQs?H;xn<%jNm`63V#77Z*c61TV5yP7oQ2cjVww43K+p%+Ky=%ySSk!6 z>7T{pSbV}B_Yfco!<8^8M!Fqcg4l^lV5ASE6FYNAmmOV-*qKK<S#%kKe-@m@{DbgD z53o?2*ad;dyIq<TTNU$9Ll_VhVz+m@5Pi{8Y#xLFi)bNR^~1U2zVbyEBkpjBFK~*O z>|Z#R%ZPbHj!0+dUl?fh;IWDoF=Fn4gC+2rfbqXeFk(u;2QE5KfxlL693vKuGJZCR zDI@kwSL6VWAj*|Xbh3zNBy~81g=?|-1cV(>l4bm4wLFVhS;8WoG~w*nw>;xtQ1ust z=^_Uz3yQ(?3a#j`I06-%uu8!M^W_Mu9E`A#vm$152_E!XJ&A;Xq_TiSmM@ZIY&;3* zbe(gD^XV12h_HH{T!F1COR$v770mNt3D!n(1%5UHK{UeMHi%!`Nvyl+wY~b8aE$~T zZh+2$<A-<HBfo((3i2`+40K}?_py<AEMX8`RODq&44eZmDL0@5^b4;9BzT3u>Lxv( z5THI6cQUH?=U7TGHoF76(%T3Ud7L2GgUCh{=*=KqY{AU?8DroAt2|s_pMn$p1ok<^ z0yz-a#JmYG?sa<!kALSE;1o>Y%)$w$3{0>Gb-0k<0iuCmUncH1NnrvD7F!Ut7!zzo z?ZWhGFuig~_GROI#zrLQfFW#f;Z(S`@PO<LOz%)4N+(XPSBnv3K91g@I5OA*1nnZ9 zo^$Ao^w2q-Op#t)u%s99#fylX(}{~pKt{gg2rOKoRD^x6bL)`a=7;n)kp4z&74IcR zueTCR!~|?PG?9iQmKEfp_OOiGSPY9cnD2P~*i2DVNbmB9Qn*FTk&Loo>9t`5TaF{( z(b&W{E&&%R#UcadSR;Yi1b&+YuRlx@fKwfd=pY;0q_!RITtfg)6~%M~gDiKoqI=Td zA8u=qILr}BnG)<mjM#)Q0_vcS7D~zS+kjs$KoDDyjOa_05l%NTy~jW#5SR89a~Nq- z<ACRbFrgKlMHj&YEv0}7R!0)N5-24avM{TvpRkyDBU{L11bHo?hrY)4H$&~%!sTi- zG-ZaWN#Fvf3P#%0Da;~mD1ulWWFd?kA%YQ$X<KmNCWWZX3J7l{nD67o77SbkbG3vQ zn;2*YFP&9v;t)a{?v$Jo*cWc-K=%!yz>F|ujzEULMh+&0GIWDNV6m7Z$VHPTZd@D^ z*u^}8L#XvQy$m<551EMT-N&w?l_@?8z2V|%8;j^98Hz3**&OInf-I(KJig%?nHF-6 z!1da2y|1|OHMqKZpQuCKNA?GYeu%8|cl^J|_6PZh<Sa)($wvY5@T1IVjF@P#6Q_lS zbBZlg!3T<$g#iV15yXlu&}}Rb(WDm_n5)8Mq9rh&5Ste+{pCJkJ|S})#AmI77w{#! zlCYIyikP37RfwTv#cU)k#-0?WW{|L3XfX3AiQj#11Ic@8<`#vj;R0)r>ZPGd{O}19 zJQ<u=Wx&iscXofCepFZbAu!d4N((SuLI&L_s|uA95IU%16{ripKjbI%SM;@kdl=E$ zT{+0l^+qt0gobbg+mKem5jbe!`~r!LuSl^lt_*gB`4<yxMg?ah>gio$8UKwjtRKbI zqE7<Rs-KB&2&YP7jP$EokcKt#LtK9KGx-iLjM$3;Fd`l0<q{&2K5?~Jbtg>ldXIQX zNW695$42<s+5mc8xG`d?5fKG0;wi5PJlIuA`DHQKoxs$fvYto5{7z6=kygVpzLWug zHx~CGl_@;`i4>(f;{rQ5IgZB{JpZK>kjunQMJ{wSIQZ*TX`!0A(vXcrkl*%|r_9Xb zuhj)TkE8<2I2)-Ap=K<CbZ|V%kqUte;o?40A42;{5SLO&=hS}0r5q|yinx?VI=TI1 z2m#V0K<`A@fn=8hjzAaDsr&qW=YMtJY?vHNdS?IKpmJLY0-&p4@el_dey22J^LlU) zyh7k~b>MUj;9(AbHY^t~eiRzT3J`z^tmHPdBUKNSf^~&bjM!G_HAtWZImV+>2_7V3 zn-T0h0g`QOGk!a$4y`CJf87KLMr;ja5OaGsheHNkAx_5#D_xGjO0`IeKH{H2f`0~q zWVSK@UT4H4!8(s`Ok?aWNRi-&vuHdCgFLwkgDRXKu1>o|3zfJeC3hb@&<he5<)|1V z<N;}Hr7K(omGgAvDmVgr)i^1I6bV#vJVy=_*y{>|$w-(5RO6Hei6i8H6#;_y=Q$Mr z8G#9eh!gnj@}X)eQW*aV>Q4H4d49VD<6vIi6A2Qv1yH*^(1k<{CLV)$vw=U4!1-&` zX`z$j&9r_VA8$7D=MnrhELx}<LJ&0)>2uv(!x6F#uwu3mU<QJXEeA_!TH_SxLR>(u zA#njmi$lyeXq*F<4(K7AS=!wYZA`G6Y+#2(<lsy*$jR@JiB!&t23KYtycnz-`A?Lj zX>lTvd<kSjvmGr|l3${QszTziFTOeo@GS-3idfY-a<IPBB8v3xRlXw=g#($^>C*4z zzmxL&Jc20D`ygMzZy7<+t-J80NQLNCDo(&R9bT)GojXtkK8qmchdxCAAq!cg4s<l| z%@67R!PQoB{B|}YRvL{Ypd&7T4}}0fGGbmJ0)iHbNRA13MvQb!%eaWa-wokJ1=6tW zb%`2|$vSmL>@FY!V(HMqdIhTo5JeoxK3!xb@PZ}sE3(T#HPd1XB6V~z<6;)W5-B*L zvpIrL9WCfpurqw^(#be<XLSyJ8HCfFb=i7Rz%ncyT~grz$W!2eSCvDsbRYuQ!o*&k z5z_*gAofQX6BWc~=zH~eB_=gKh$?D?plJ9I48b!(i5ck&w2bdDHtN9yKom4yB0IJ3 zaHpm8<@F*dg}$Bt-vs^F1M8o{MY3@(2o<EmL%)$70HcSkt5>ml2yw5g6NrMIkwQ|2 zZDfLJ@%r~3G8|}fQ$JuA;06vOb`10}A`Hn9zyqXIV#JJtV6xl0y1$ZRVnua7==6Yu z{Qqq($OaT?h!x-lDihjcBo>>{%{<`k)w+x{O%<ZD_n6RBfaPVZKH2qRO43MKGmN67 z+D|DN`!IB{m|RO4vG9#P@!$bcHL3Qd>r%jmDikE25e%!5zo6lEGUb0yLrkztN7wio zD3pNGtnOii5%pY3+qa@esaw$_b+o{ti|ILwhY={TFmnDeih9#;YA^cX0v>d)A&}7M zS0tSHzf3}Jm~m0JA^C$yD2GI=cMs`Me=uT@K7sm#pC`dFVXLoR+E=LjkCFlnf2hYw zJ<Jq~pYJNP>6zk`B(Qi3Hz3Y$WGgg+oFDk>U`qG-S8TEW&5pCsf~Du|#>JrBkeU#0 zvVaY@)un_|G%%0CJ$s>2sa^@JeS}K=`5jV>!v&1AD&fE?y-MT!^)h_Wl6Wv-TYxUn ztvihc^VirOOP>+gObo;-@{cw?sCYO`U1)_w;|&Bga$O-U^r2V*W5m28r`%YiHJ~+P zEHZX8(va#&O)jx0<19%S6(OuHLn0;+hoXg37}DXO_bWjUMhj$RDQIGGEE+E8fz?RZ zV74F@P0Ni08e2Vapu3=8Hd-ox{smt)1=YL+rbe6iWeTDhnhK0q2MC+7tRI~bYbADp z@&{jZ1xqEUxVSJ<K>-);>WA={;nL1Cn&HyHGnwJ?m1jD`<r~j@hRb)J<qVfj-n<zu zBAzuaw3eGOf(I7UB01c+1}DmcOW~e+ThmPVpao96Z<-1*638(g9PpWh_f4a~A%z@6 zz#)wss^EYH(fcM@aL9r~??xu7AN3S`@CYM>sOkK6Sby&a2S>0Qtzm#--@v2_Ho!S_ z8p*4>k$*!z`Zg?dKO{pY*El6;6iIwokJFXWj+-bCA1#7T@xnwgv4xNti7V2RftX1k zMCE{zgp9;c3#uH`BfAHaB&m)OV$ef((GBCuCQlZT2UCa*s;C=DvM@k$E*KGzT0$b( zg`1Q@Hx5v(xIQugCK4hhf!a}bit?x$MWx0!7`qU2qu#wpuHS`mkOF;zpmdE4aT{hp z8_=EfZUAFZ`x{gt93mE_v=Xd?fA3zZiKW(0rO0}9jHu%hAIO>1iXH|674#KwfIxMD zEFejLB2YmShPgxwK0CoHVZ^EehK&lqzQD7LSoGbA?qM^ioAarG#E2P$;(KV?h4=q? zipF|@9OnrB2Pnw~oeq?|B2e;Lz<S-S<gEuK?_-aW=hCI*xqy-vCMG6J56nV+rl%jN znFqGM#vCz`y6vy*LXdfkShNv}7LyzS*~^F@@_-+ZT51EVjJOEbD*&34-}xZ>w2Qv~ zFY$#HEdx*oommSlxncN`Jkt0X92^f)F%+-2$*~HE3V4MgJGxxsU6hHGhxyP(;E%pd zN8g72S+fy2{y*1rG%l#-3-L~VJ3Wk?`O(rn2?h%o`yZnAwt;v)3C(Rx1s{wVB#~f7 zIQ5@4_5b$J4^@XQlMY=ka4LkZ<bS2}Mv^?&v=VLmAhSg5Y4{EsC_QG-Xi?(<@E}VY zg*X4JB+ne|v_7zC`Nuv_w+I;t%zzjhJ)B~a?~$_?i~Ju~Ko~Lip+-^zfI)co3p7b! zHG$ms1PQ&h5CYK37MTuWuOQt1p+WszuYyqbpQiQrY3NT@$4~-V-1O1cAhiEaLkIjb zw8^Whdzg8R9iPdjbrttNxjwfNM8Rw%HXNdbGA3~8t=)%dp*6A<(fY%56siOBQ5Z}| zNZ#tff*BK7lJk+JE>Dglu!Kc2n%CH1+>Mg?0*XHycF#a5W$em>?_)KNhvxiXpVh&^ zL<(Q(3DqFdbD*P$y(#FuEf3x-Vlz_2#pc={?X_H?g)I7xWPSsDjkAR-oNvm>Z<K*@ z7%{sc3s>L(#=I&p=79$jES$hBMLxu|{0<3T6i2YoAhSRC(5HA}V!<Ky@gu-uq#&59 z#m|=jb*euuh|opIsrTLw!A1Gerl7X1r}J7N0g3(KUiReP@%#v|ROmuc5>2DH@F`J# zo}$w=eg~b$$b_R*AYrn|fy9$04<2Cr2%Nzi2Vf0@r;QUW&^{#&+I&SW6)w2)-wna( zML7L7ggIT~2w8Oa`Y8Dg%75CU(f4m{IK(&Xs(2q8_BsECO08m_Gh!Zqg9|Gxa`*EV z@({1Gf&h}@f&(@ao1SwCn8;4Y42~vXSGx}*kP0EOOveZ|@3^qdkB%>pS-FHZd3*p0 z$U^fDm6tkH&^J_kte|hGkAONtfFeMP5f{QCu5$@LRdSmg`lQdH0kGZjhIZL~SnwSs z(hl7HQBsazwT-}*MX#dTx7roTafJ}PC&-7~inR^x3d%wv64$l`bJ%KBtty!p_Q$wF z{#ocgTqr<_D=yrLlvx-pTAcAwkT3+k<oX3C)@lj(NVO!2`L8-T^zU5a4AP%*p_Cc$ zEbM0@H5ra8;BbHq&MCM8;1c{b02*gP#Xo%a>4)<%1h0ZafPAxr;}dyb;WMj{e-`;> z%z;mxT9u&fz@G5}`wK{?g}E(Er)RvAVa$g_zM@qHBSs(e0<`2gi>7+X&4?*6LJW$@ zln?+d+!hA_wo^;s3`aj$v<<|KD;OJ5>wDFwR{>d3jj%_73hJdJhuIKSq>c<9F(Ziy zxS=E*Vlyh)N-(|e%)u7;BgO7ID0U67UEZzOA?saJk7D<O^)3Je5GZsky@sDCcCyTe zNKa<O%mD7BT0~)i2^?6tXk(ZD0W7Jvk(myuem~+b*75&i{C}$AM}dm}m`l7SNnk|} z0FmmCRQ!N{wV7}PUAV{UA&r#Wzb)R}rIzv6!O^1Fi-?*6lA67A(J;_O$-W?UQBiMQ z^hf%SwE{&NW`!?Q?~n#h=k9621V(}u5)MB$z#mNt0nh-{SK>**f}9jA$VtHhCIt(~ zCYwzvq9pZm0MBfsj5hYdxCcqb);$pSLkpM>fq8$yHa|g|EdXlv@C{f!D9pKpX9b&h z1KZbR8_^n+OLv6^cxeFyuJHl(u@G}lAN&#Hgi4ckD+0DpemH;BGv5BO-$d|k!a26? z@r-RCEf{EHIBab9YK*c&pisu9aB4WB1K4282wsfE3!{M`U=a<feumb%)FMI{BmrOg zW-===ZL3JwFbV>bgDX<t80k~3F@Y0z<TWp1s-qVnWeuw$q?oX>NDi;mYcVca4f{6a zGP_Bm8xMjE=q*1G0&6J)2R2@q2zYP=sbW(AxoGwxlopXz?^L8NON;FQd60&*14s=L zm3HmsrAev&+!Elmp<P5{Y~BH7Gt%=Lk&(ZLUgE|0|HcYGR=mO&+ZV(ue74{ODda?j zY=U%&O2FuWl$4f68|Z^x@(d8lZ;+Kn77S{)6ATS<|Fm1Aifg$-+AYN0i4IJV1`N?{ z<M*Ti;XP(@1!*|q9aZvd1HuDDy3kStiBV>Lai^8Q%9Sm!=UNGPK5T(gBv=o+x*U2U z8WKV028rO4?`9xoNo~CPZ=sC@2Im$AGwWC*>tMqn$O{u_u4WSz<e?l_y3j!c2XZvw zOOPViKbBgJ5hSi~uz{!{KJwBjN`U#b$);EPsjg=Ub&RPLy^ICO#Dz{^i~>zBNXRvY z56=%&pt!aA39|yzW&>ZcgU}%>Nz!ie&vh~!5E8GEyGJ+KAj)vU5jcUSvbI}Q6_~@8 z4j4mv7W-gv57UDAS)EO^b`5JT-2;ZSHw<YH7|J0qq%8r$O24<BikA5>os;uHtS9I; zjeDV!QOLTRFhj(Hr;!K2)M}PoN8_MCGUgNj(UIVVgdlX$Hu=w1!oOSjd%}$OpNiXF zHg*udU|$Dui#E1?EpFMcqu(QN$yLzRZi(BowmtM~<dLfLOLNxmkT?B7;$p<3uCD1T zarG9H0v8#zew4Rji&m%%b`?4TRs%?<>wV<&XZ!m$q;m8PzPGD`RFEcJukBcIj7|c$ zQ6XS?)FH<`6)!5m2yx0;q&%L`r9pNTKn6259R)%n{is?B31kVzCRr#Ai{GLXjS2;A zBdGcbM_{J|gLDg7fp8TF=7E!$1(>#-P9(`W7-6RqWCdwmIk1s}B(yD2j%i2gaA7n~ zT?10o7Ud?z2eC!xG+FX4okRqQT{=i6#(qYPK`Btjf+Z5(;<8P)=#XNCk4zPqfUCpG zAmw~MCfG$Hr1ybL2zJcPk&vXjozQ$z=CnzNd1L$>9b`VIht31Z#B=Cs3^slXi3Vvs z+R#o{rO|?CG>xU`k4S}zK$H|C9YY}<Ln7T9WihhQN|X>;mig!`G^!W%5VXh|G#j+p z+D%ANDU!AvXoYyj*`k9cnO=t7U1R`CAf9eW({2pXNfBa5CPOD1$B?NQv4<g?1L1K1 z#p;DDGS-En3dMvX2konFQ6%OU4zvwru@X$s0a@HFj9{e;%-geW2IC1@H?ITzsFw|w z2jdm3nRzf=ogjVpig{qyin;fE`)eNM2$Xb?bPCr3JI*|0<JAX#G%jIm&H}PE^(Q4) z1yFGi1UGUa0V08z-!GHnLAV{Q6R`1OcH#&QQdG?mQ<WIFR_Fr8@`I$emr4Jin7B$N zxNsJb0qp!r#v4jWqkcY1XlL*p-|)1{w7&(>UUb82Lx+eKCe28{(WC^g{6^Ug`QkaW zdshI>p)q3H|3Q)?NCS@EeKuf?dYKK3LQbl5@fa1FcXlxu|Jrv<RNB>NqJrM@6$}>C zW|nbP7`tbThQb(y6O+JN!nsIkl4HKdw7EJkJ8{vlT!w~aq>hi5KnfJ6P#x~bduWmj z@gfFVBZ44?6%~le_+Lf5Kf6Q<gn`+sXGEfLimGNqpTw?#LtZ~;HM9r<oA7_bWIvno z5TE^E-gW}>whJ6#a02T#kL0tTOnFiy3n3*u_8wfUXnfs!0EXKAj}1Ob>XIa)h88*c zyC={X9q|l`mM!NX+0SVurd010OWzSW6GmiMuQdy@KlLnGri-T`w5!r<$rT7A5-nH) zVML-$m7gtFq;z`EpVv@Vi|0=yB9X|VjKjzN4R>-1{Z&VE1e!WrxK+@#-Xc|-AC@g< z2z#X3z~N)K6VtuoB{%x%i=n@rwQ%}kP;Gv>YLU_*mn}ccqHsd4+cNUw{TsnH#J{-5 zX2kD88xhx|03%ln9I##y*Wh3(OVWWQaNrX5cW{A&E1bYB;R;-A;8G89gQZu6!LPLt z_J!>DnHrYyI+B9Dc~A~Za2^@*Og87hJ6H<Ke=9LxxN8X7YZM$l4q=4TW#b17%WA?t zZ?4d82y9&1XEZr<%`c)`ym^i5ATdW&)ToUh>}@s<6+0vw`-vS=jpPLx*xPIb5r@*q zh&MT4Z?o|&gmj;G_W%RMd-&-fw$aQ1j96vJ4h_XU;FotGNC$#CAhmh?Kt*iEKt)FE z8`5VtgpSRyQ-uA2N8q<2?!%5k1{QB8Cuu$dUU2INY&OU*h5W$M4wPRS`K1}LHk4lm z`DGZf9Lg_?{IZPLIh0=x`Qa9k3FVhZetAahRMNjpPJtt|fi&RYsd0qJ4|~8|<7)WH z9mYmKNW>L}DoC)1YL?!|EOI;dfpJ09I3hg}@HVl}TQ?Q=KtF2)T_h=-1MSWuJvx#^ z1uVH(aG#I|J!@YA`bn?}uW+?&<64+p2spZb8KjyeTpQ_O9r8ouTGS;%E#}0@6OFXc zZxE8dZ3sV@YCKJUvH^37)?81w0Db>JUXYe0+=}!M*K!M3u7!S1Pzyu9A*ltJ_5Ak4 z@9r~CBvZqy&;8>G5CrpH_r2$BNJm0XS30YI|D74cBjnSS-u&nHmC?c3pQY<tzxHqH z@0<SPZ_?{PrM=sSwy4PGH~5b3n~w7LEpPHK()GnNv2Qv{zRZ^HU+?+n{qFX@=`HwV z>b~V}A3!DSYR_-_Yii$eDSzK~slfmzpRRH#Z{PZh`=*=wBfs=be-bUG(9>0JAAI|! z_a*h7|2(}ZoM$1QuJV6_4>D-}kiO6FDp9fj08+qJawKPoqom-5t}29dJyLL+TnqlX z9+X}c{<<DHaQBW!{%H8?dgLG$eDp3q@_}5E>hVj^!QWFL6=5KT-TAuGcR_Uj{NH}h zsRa`L+r9oLzlk^aP5J12(ZAK7_q*~T9-d#e&y0-zb$lYk_fv!)oBq`UF>Z8p-09~J z8gKuGznM7OFY{}OV}2Q50Wtqpe#&p?7X;(w-}0Nm`1rSYG#-8yuLJEG4&P%y)@W^j zt^kJtv;hb*W!7bgH-sRx#WfA!N5FFkz&8N(P(FZAhW<2kT>{`X@wnEX0}#b40Q`U0 zd-M3Hs`K%GCJQ7GGC@$I5*ZYgsiH(tiD1noGcY5GL_x(W0St*y5oj_asGz|~Bsb$I zZC&W+V{5v6TH4x{S_-%)fCR<LW))mfTV)&<aA6T8-}iIwxs%C247Q)o>-YPkCwb<% z&)M#Cw&$MpIfdY#WLxx1jomaUvCjr0Ylq5ywe!FOH2ywIO6Ndd4HkdpVDUGP6``U0 z`*SQl^1&xU@5WyEdS##$&vLN%D<p9eZ*NH?|1Xg^;cFF`HZ^n!7}+$m1T6jvz~Zlc zfWyJJb?CKVu|FRy_Qz}c)hAi+n+g{9i@@SO04(9|hbgh2CCu@E8CdLp36qjfez3To z0v7iSu(;>sD;*65zh%TH{_X{Thjd*8mhzA*93@;6Si;>1mV8Om_OJK1>?2^Y-`CIb zzXdG*Tft)Q*LdYImU|Q|?hC=<eyFd7mm`VJgI)|4_jzD(cY&o`_UBrBy#yBfqCOUW z?G!8Avl>6D@xvP50hX-(a**Zk8I6B;x<xMp%loE)C0{-~&9Yw)7W-vju|HGWXKMRh zR7SC%4HmwAQaSk_qV1ch<dUxgD0FfE^i0cr8(6|!3l{tHwf%A0ei4Nr_Sb?XzKg-) z|IHy*`5XtvYr$h@sD8=NLa@ANDuE>21@goHabOAeGcrr8Zk0^q|9fDu50a^3UnZH$ z|4^{lpEAsP&rTYJye9`N{&tBY{~N&a_*;k!a4YGP_fuU($Ar?eLKDq#LxU>>(?pb> z6>;}M)AW>{6>x<gnkJ*};}iEFG)-0A#|KvT@lk%c4`DCvf@#`0%@(c@OjhTv1B<)h zUbt_taE0L0aQ|Gp3+|2kehXI!#^er0Zc2E;H1(Vz7OoIH823``F1QcwvRnbK5KPs{ zl{?-gyx?5i=Ucc!@F1)n0*kv~7w*j#t`JNW&3!?;3#Q8Fh#Uu32zKKxN1P<Q;J&!; zw{V4EntblyG|fNw7~F?gxI!>hB)3$%3+{)z$X#%SU_?o7P`eAJN$1SBaD`yXHuqQB zT`(dbXPJd71j9n^OWIv9A|z+Kg)0Q}pPPaF7XAe@g`bmU;R?b0=MLvb+yx_=az<FV zLU0D|ODQBCa~n0Dukj3xCu!{0cm!D9J4EArjkCbQFG$r(H(2UlF<9!^RPd?bI`C=W zW-unVg&(O0JHb-k63HO28+;1580-d51xtC<fhFIY!IHl%V9CdwVE%K3IpNREkEE*@ zEa|KlN1%nqBj$&iE{7>GKi9NGF6K{~o@=#3$5WbKPNNkg^-1*n*m_gsbiL5!7g+9Z zYI?q=-_!ImO^cQf@xNKqdo{gZ(}y%Y<U%XH9+D{hPtvsLC=$9()3WVV=w+IgyZ==D znm%3A4k<v)*_s}r=?gSHNz>oebe*QhXnL8ZFVpmPO<$$ytRgG^3QdpDbhV~uXnMBL z6pXDWhDW8>XbD0>3^G8`Q{6(TvQ~86Ad8mzCwh=th)2wDKxo9QG9{YUq~mf;FF{C& znF@&i<p?z~a{-}uYx;IgOTSLc-GF)@LQ>4n0HK!%<CqnI&~-ZedQH3CJYco~E_k)| z_Phs;_k{T*g+7=<XX829fBzI(<ZH6~`6=`zDfHzj^!HNeX({x~6uLHrUXVgd!lvlC zl*Gg6IicC;jMCOJw~`=yNe+S8GlS=%OG^6_vV$t0#x1P13CHrP+0$pvzM+GznaP## zcF-%TYO8{ssc}_Ra}zcbs)F8`mBE>FW>2f>;00TM)wJnVH3@$cL$f;~<%Ux|DI^-P zuD`XaW)2V2XVwOBnU23Hv#Ms_5S(FC!I~-4X3e}|HV!;i&kEJfm~#EhAZbXVXU(a+ z(XyCHa;>M@;GCMO=~J$^+@{Io(s}15w0YfBbyKBe;H^`tYHDt(B@1q?oHh%;@=#q< z1tZl=PfeM}ZT55KC6a<tFNw8-uAatqt#*b@shuT$XU&;?Llx<{X<D#yhU437@=De0 z^?yyvrL)yDZwS>)ld_x=oOb=JDye~da|+K9)nN(K-F>_xE*L)C@;tTI%-Pk~PpiD~ ze^sB@az0vO<hvxsrs=au|4qKt${ejeu@~sfh>`e26z%3?dz@H&OMPOSbv(=ELypO# z6Qf0&Ws&lWzOLF}jkG+=q~7ye$9PE0*~kSkEjry6rM}Vjqr%<kCtJ?PUre+5C7pcq zMKm|l$<Ut+?P8(s^of;gex~YBGLBTDo=&wE`MQKG4?^S%;4ZAJb~85%_5hM~Vt+Iy zv7c%pIw{bvz}CuxtCdPHIgGQ4DC&w(2lhuEjPQQcf&Gdnt>*x3J`X^tU9M5_V5{Y- zgRnJdp^~DQV;cz-VW_7l#;qJLs1vv?Nky0+Wm~Mqlp9Y<89gmOkMAa1L~+-e)z;?N ztsG@DCyZzt-QQ6syB2O8rqpEp!)snYywt2A=FzGHAc`xrh6dTL+138BMISB`Hdtoy zD}_D_mvpFb7((}5sc=9ujnZ6nJQk&<uZ~TijsCW=!w5+#)8zxMRY3V89Q5*SW?709 z8&8XeV1_p`FRL^f$)glY&FBo)5d2Z4WQmJvCn+k@C^4DQsg_$gZ4NhC((p%1f;`T* z9_JGIa$n&`k&@x2?;(}3rms0ZDqy~8D~nMZhChppbt?}&(YL|kR#~%fh039FR1W!t zpN{<SMox{R@$5kO?VfGv)L{;VZ3=Ar$aqqo{gH)BRQ7fFH^N_?<XZeQx<f{I-4{?O zve*vA=B;cx+m}{m{G1h!_MPF|II&p2ip+`sJYc?Vy@7~17Vcr0ci_B$5q^I^_snu{ z>+!sYO|PNN?N_#F1zGiS;$N-9p{s!upfbimN&DFd;(Rs`Zp$*-U*sxYuC1+ks?^*i zXX*XttJQbcs=xW!Y}Rly^#{!!Zy4;Oo+yf^enEn|e&0#F4<&C8iI$$T<Pc{uHKJLL zw-5K33)qPrSy+dDo%Smm%~o}KlIGE{mzM4=`pj^RebZZX5cHPM{F)QH)*;);WP4&` zk<arrDy1Isp$5vy!T8C|rOt($W&i3#ujioR(bXX3UuwQ<RVgYFMI9T8{6k$xpLt__ zrrcB9ReoIyD_!Lmd8M)}+@4$WjMv;1-Z?PSN%o+l&TGb6W0~Q%2ezX)s*W7;njf@& z&@23oE4(JdoG>3nbe{%VKgzxMWc<&|3?CR+6OdY=PapctvBTQZ5mgT3N%@Vv!M2DL z_fm6bn+&<M7s(!TZEOV|+rsr&iz#d=jh-eCqV8wj6)LHgTUY75k($+gdedv3iKv%Q zi_D0`Xtq!(GEnaoqsCX8cb6<tZ*BXURHj>gN0!WY-C0Xng!dma@3hpA)ot}E46Cau z=J5W0HLv+2R&%w~Xd&XzN;X$MpGbnpU!|2l&i4z3RU0pj_?DMOlqlGRt?Yeja3LN# z@*^@~K_py<lXJ7$p5>}vjlhqT%x!EnzZA7K@IPpaABAE~*EKmCCoe-U)4RT+uWp_x z`BiX)_B4`l0Qt3?%aG*+c=R&Wsv29hA{^Js3y4%2*n0uz7gQJuK1;vk%GLhJ73xL$ zE%W}1H~ORArnKsaqdL6brBpC|C!#W#^PuLBC8w*+`f-xEKF|A2Wy@&#DkU))m=Y$> z)zE~a5xs73nt@KG63V=*vKC!2-IaCGTQx1bhL`as;m0Z+*;clWH@36lnkZ`&)QH4L zGs6E&H^R@R$7G}ePklpI8d2}ybo5!c!b{-}VP%+YU9q)`rkTQ4;|@zgk%4kkI6|SO zH9k=y?MbAybG|vk2ahsB<n_VTv>&##wvk{Ik69UPC5t5ev!^60e!BQO(3L;@{PPa{ z_2$ZR$*;fEk>ZFdy7bxwqobp~Q?ySN+0DIUKTJ5W71{iYYDimYJrh*xVGF@KoF7q@ zR-7!QcFrxVXy56VeNsv`ghxufT%s$!ZVImY-@{;a_=zRbp^>B4s>2zZBj3OdITQOa z+kKL0HVSDPxs6wId?z^sH?b>-_=xRNM$9T<x@k&tOtix{GvvkLMiptvjJA@XOwdG1 z7WktpRJ)J-xK6?gyNTwkKG3Nx`sc*dmd+d-LhVowSGdM*!Me#MHRAY%|6-%`HcfAG zvMu>_YTC_%rJ}ApLfgNDBv@@f{-A2M=<jT*jtq0H%=QgyX?QM_<!#&<`!$^IZQUIj z>{^8?!e!1Kt7#QzZ9|u7Ly$`3H9sD-zH!I4kDZ6&mk_{c+z=0?)c?dMT1ya|5gz4J z347{aB@zjr9$MyF>3!5`wmNrsiw@j;a#wsWrV_+|YIxrAHoh%gho+22QCan9nrqd| zQe({t6B}Ex=jfZ^Y4g>$lt!wWLsx_sKI8~_N+XrUkqN`iD<7h}NS@S{n(uY~coz|S zWWq$FvHxJJnA*!83bb>wv#Qy6Qi@ILTP#OTKkjXDyBdBfCAqhySgc(QD~00C;hiqC z<T|U%8myK^K1Pyr;t`5rH5DRKa-CAJf|L~XdajjyRhGRIaQ<Cq8Bx?c1z(M=Uh}<e z@3p@uQh1MZi#cv0sZ<G$lmx}~o#YR}jQIDheuMEOUq*}fa?S%TTKJHB>d`hv^@}Z# z&$Dh~#hgz4*Q(u&PSx&=u8MC1pEMevbY3Hl_<hMWuehnGcyHV8(3xJ>s`Xyex2)K; za#Pne&g)zsA4Qcr+WI!*U#oA&!*Ei4D{dNP)wiTt2G>-8$*V&H;JA&7Xik`vTm?e? z&6ndhOBJ!Rd54@a{ibU1b0rs!vRX`%f`5P8`|X>gIUaJpY}QWds20PEN=8J=9;!(z zL`eubp6=SGtAfo;Da<4>7w?@!boAw7$A1pb(i8K3!&f;*wfctUuX~*Iz*LXZX_jR0 zu!YWNI@_P+y{^TVN)*vPvbN!`%vhub4sGco(PQVR*vZC-k8bqXe3E63cdPfAJ-sGF zDwCm%c^m4KhZoh3aE14M%08;yo(*Qnh*+FwZ={OO{69h-jtr{4yf;!g9A&DyC;v`o zVQ?0&i;No{DVgMH^%lKdiyGN?JkOgO;ywKPw(}erH?in>^JUlAJ?19QKJ&JT0du?I z`P^$(J+yD@zAbG09{ap(6K?lB-`+~%;Q3I~fF6w}qcNntm7}cD1sBoc7dDrgYs0rq zWP9j!c$Qp<-3qh1e00ZAK2RMt@(q%Yq9vr_C$y#KLB;zfd?dQyVXGG#8$yhX%m#$c z<Bdy@f=ZH;gGF0v$9SGs8G=MqIiNm9_JGE_CVsjEu{sywuL^?4tMM?(Oxk>#d8<SD z^s%>FX^FaWiQnwyHEXi`i`Ff}HEH*n10FVz#2k&~x%4y3PM(z;U+BJMS`X-Rfr|i{ zkC;#{lMs@djJty<jZ~_kgD3bSOc0=LQk_z5-@+_{9_y>)sFT;qhPgae%~%&>ZLy~# z+tI_(iy5rm%pBz~i_*uDrWSM<$0y8G>7{3t19^`AS+$O1dNOg6H5VAh0%VILuO}Vn ztf_z-x*06~>wseDow)OH&6)({Loadk>p7C=`2f6SZ+7(U$tqsf3}6WKaxf8OH3EL< z-Gt|>kTntL?>IK=UBaKqa}XGg`v$_(9I~bZgQ1s!#eY5Eh2BMYiSIgq0ekjRNB^D^ zcwPXEg5FMgj^}w6a2E7xa1L-cPzt@D@Cd!ED}ZBo|1Wv}sXW&J=i<JO_wzZ)x*j+M z`d47YRo0!rXy|_so(#<T9>6SA_I<p+gy&m<i=bcP{S17vz7Ko{dIebWvkABq`g6il zx3jJSj&l@~lzu(W<N0Rb0^DEV{ghT#HE=rgBVftzyMQs!9}=F{l2rjP@s|A%@2}+f zcHq0vuk(Ipkg{e2XG1>;W|kuB9^f+QuN+qSvl^4tm-L5q`TqdA5cf62FZ@me20{M< zjHJj~1Q^io;4b`J12Dmu{Ucrew?G#`Z`I{L6WRm)C|LM4fdKTUgqQNX5;)e8mzCzU z%0C2sKJL%!@~?tE4f=Or$*%^$2mJxzrTixY46(ESOPBvb=!>CW)#ZN^^ib%>!BU^1 zKpFIxgqQM{I@6Ezuhr#W3r#s>uh-=-d3q}JufgI!43t2>M|dg!YXR~(`vG14w?U7D zep#3QjnLHVY<f*uQlBEgIOx5Em-Ji>9G_JF^Pn%p{Y72=H$a~O{YS98Z!s_y`eVXN zeog^sx7k0_<$nkCCD3o`@}C2J4)oJtsZaL;<Dn1f^6#qsw-UdU|5U(@|DS^$KpjvF z{Wk7W{*!=w=pX9xpAS6(dW$aq8PG$Z{|uJ$Y6Seydk8P(-&Om6PM805{0zqbZ^7cf z9`HiP2ruzn2MmDzi7x*I(4(Mt=<=TheHQd%;2hv?pcMK5;iWvgYX8sb^1mKGr{Mp8 zz-hppz-Z`y5?;#Vd%%g%_v`Y%75XCRzw7e<KJ<5>{|c7;YyvKY{(|sQ{#~{Izv=R? z#?R^a{{vX^`z~M%^hbo3@~;3+hW@E8|J$Lz3;l*J|Jl%ILq7%11?~YZgZ{dk_P>_+ zh2LqwApHLl>;x782K2kQ3qRKYCqVx=rTuTy<v$a55AJ^f3%@21fc}i|Ql4G4|Bbr* ztMGFg{(lda{AvJv&~d^``A-H4p#NK!|3c`Cp<mPGe-rdj=qJE^fGAJ~eUR`{{#~{I zHeLRe_&F8-zX6N?Fi-;hKH;VOuLVwmeo&YHZO|j3U(w}%BlMZjtH8a12rv$MAK@iE zUA6yBy8Lgz&l&jt6IkB27#Iuv3E?F_?e_n$E`PiIzopB64t~zT|1)40a4#?(y4{h- z$;9KC4egiN*Kty&Gp}!ErsIT6XU4IahNB?US)7-d?#Rz{ruEMp<QS0YbRUzM?Km;h znRQ&|B1bW-=b>=*_{>FwKS9Fh_s#4n;d>mLIZeV(&CAS?@ag?C3nl!pV>0_l_?+W1 zTUGd(vu|cGcDh?Fs=9->%&l_RR@TC(cCnUlYaPKkbKEygn|+JhvT)C-amz~YwAqza z?%G>!x_-{A+C&7h`m6obx@F<nj+xb7JA6&m+^T6EE-J{-q3)Yz*4DC^=4Lf}=$z`I z){?IseAdihRn4?n=V+cfMQt<F`GuWBxaBPgX6z7M*h+${r`5P+<rC4{9}tszjsfXL zFR$Z#!aL$gjJ>}*WgmU2{~1&ZWo-ZDo%g2?#xXg5q^o6Y|D&z@+-&RJJbcss;bz`< zr2VsYc!~c=_pVX%)xOl5z<hBEo+2JvWWj%fk<0}q7ztI-12Ko>DmXxMr-c;6!2B0n z$4?IU3z{MS1y|sB9Q*o2ED2tNIH83VJgV_8z(}})ABmU&*HP!iUqmtk`g>sh3ohaZ zr-JD)b3E=FVd7Zu06f8p+Aj!eIc{ihg<#4um#>g=7o3MXUt+Z%PVg}}Ezs_Q`{G__ z;R?b1R8T7(H?;UK*7h^OxnzjFj;!K=mPo`b0mNN0Q_TMWC&RnFPW)R<|5&^KLDS1M z&6iyHe@WAP*%bYerXSOEPd<xco&qHPvozhRX}_kQ)pUiXpVRcMntoB!OEkR=TJ|g1 z>(Fm#dV_ZVr>6I7`XfybK}?GwsM;U2TTxcFsQp8Emc=0LuAOCXXs7)=MhY$EMUf}W zq!fBu3N0R|u%Thrv|!a}Y1+wz+I*AbsCV3G8!ms79U?YmZLXM-*nX0_=_Dzhv**;P zT{P7*=T}Wv;cCxDh(XHUlny%)Nn%-AQV5(2oCgdC&Ic|4E(AsZML^*&`6)b#Z7HPr z+wT83_X2&L9QVnQ5=nZu`#+XTLAU{oRL92Tf>E{|Kg~3DF}t-Nn-*&UsV8ENcK^qF z2n#V1pM+h4T%p<vQ76bY-R;+~<B@tL=4FIWvXQ2nY`WX8F+!))uLBLyd@TdpY3v+d z<(!-5POA(~3C)%rOH-zldXwGjbbM}YIakNG0j#sK6N^G1uN|9lmn<5Fa2^Ks0Mg{d z{%A~MzlP`^<36_`e)Fke%#^UI@Ai83M#g99Jqt_OA25S;|2o$Er<R(3ki}(hWI}nk zmF4HM%}wKi)}*z6-^*Te=eC_q<K{BYwe6kKNC{g6u4St1r?UtW88^b(wBU`58^zsm zkCa4nPB5b~dsP~_gu|)%#-jD@GFS7w-@Jb=xShQeYSMRHwDjb5-nFFE$^L{;OQ3zD z%->xaEgd1&je+(}M$~9G_HFT+(NY33zr#!&s<XNDjqMP{Vx^Y<qa)-IebL0Mwngld z2v^6(Q*tT$6G}%;UgEm*0vuv;MWt)y7T2o1EN6!@IhGnPGK#j=9?$hk<DK5dErD%s zmpNOF@S3bZds{rc%xpD0TN}5Op<8&{u12_0GwjBoErxRsdR=nooxzO%)oDib(k%bB zcX*yBv9M%XDoW#CCZarMJ=5apr6y{EKlPt_zs!A;=DPSX65YGo-X#kLedb#Air@LF zYh~#Yr@?gGwvSz_7Az5s7EAW7$qV(~yQbLH@MoBhbL*N*I6fPW)w=?+JiAvIU@Ffo z9Hglg+r9R?z2=s9Z+-&i-gr8xa;@6u*}`RelB(UL%8P0xE^YE`NJ`$zMs(B#2Ab?V z>s)u;OC|J<{GS;xesf<~Um9M$Q$87}Q-&iZ2bV`CKhp48MAZPU3B)P#lvEURzt^+V zSM-7_d=7Qph)%qK6(jvJ&l+M{Jvy3^A05z>Q}dTaC!Xl^?B)!u=QDr$<jsL-ty7;z zZtC5b>u+Bx)21z<Ph+xnYdkIjq*TuJe_85$6)n(aYeIh!8lVpujo0;diYjP%NNXC< zOK>{%<!d84+=+g`^zfmyd4D&Gp0lbvx)hxoV|$3&Yd+7dcBSTKZuBX2Zg28BiOk#E zDQal$+^gQ&;Y9S_-f3k~-Vs|tU~@Yuc7=D~&D_8v7sHT#bCWAP6xUL7VRIq_BC38H z(f+y4PYrXcVP(je=vnz=qNC37dG`4{ZyTO{hVu=d=L^I0MQQp%GNr_6zG*bM8l`&r zQJ38QY-qQ)=*3c|mrEn6LA%1kd6k{Ho;87}w_lp!*(1}l=BG_3H0Gl(k)Z9*hdyN~ zMw-#3(H!PaeaqQWMNstTZf4q@w3nveFHNh=xh;OHq|q7Mj57(Uy}ql$jFdeR9pLPu zJUbU8=~FLl)i2$kvVFVXxw*{T7SFcU#JpKdTOUZTIX7v)RufmXG>&sN`O`pYP5yLH zdLX=3ikFq{)~^YXHgAWoL6>c?K!*_fnm$d%geyrS0L?PczSbML@`c#LBy4>2x)Ysb zi3pjvnY_P=c0S~&+Ihg-U5ZxfQ<c<<A7`EK)~y`XV6sZ-e3h6=@0Vsy<74MZ@P2g8 zm)`HFe=d0J-c~k2T+2fC-qzyK3Grvu`EaAL)(M}bBNsN-o*O$`xw^T$F;cd)%}Iyd z5g)*c37As9Uj)D3ymXl5T7V@@zcrSwCiO)Xpz}-f#n$&&ZBgF{zj?gj`843!q}&l* zXgiCJV_8Bri5+NvzH|`nbYWwlsJ+yK*a|HPw`H2QWCe;oEA_m&XuaAp^aIvl%9i@g z%UOK6yqt;mAxV?|-^3ZY6{`?_t>s77&Moc@xc4o!b_l7`DZ-OI(oBpEJB<PlbL}*q zJknV6=*NwAzauejOgVQfIWI>19clcw&g%aZG=phh1wFvX!vYxxA;#1=2tlgGL0~lw zV%)?KNsXU!8N)c_tc1-6V=YBz=>CRu=f(X*O*8AI&Q;j`n<1Jm*Y3Q-F;E(Ml1X%( zRYy9xlY98i>aO~$UEY6u;kg%B`<qpNRl4`x_E#l?9Bzw2>91~2;n#Ape)BJ|aIu8J z*t8^9fV@=ZX#1;+Pq+L_e3Dmk-sBRoI=sI+XEwtQ+obL<UZUf%_bYFvASAx7On3d? z;&ZH!f75wUSJ*iwo&1Dlcm3Zy9e$S%Sk8b>KC9&yAv6-PbUbvoUwOX_2r+IQ-w4V@ z;+s1vF~sh~q7c&m-H*HE@2+C}Vrln(#r|lF^nW|{=srLYeW#qO-V~zEaD%{OrB^L@ zn8wmF91$Z6&8j`aJCS;0r&>x0+6+}tZ3goqEVCMFYcUb20ARmZ`=dXUeYtc#)W&3F zRC}9Iu3XF?Hi`%Ha=P1>PxYIBmJSp5*eQA5ncv@wN9)c!SN+c*+Kk~6N1H*l6QpwC z|3``FtiPt*{0!Z=#?#W>S9iD`N9~k*7nIiHY>0-}=I5K+*%1*wILuYHw)J2Jnt|xJ zm}}#i`(9&1D+{_g(USe){oLNXog`aZZBd_@ZxmfOcv!G+AaX~!(SEf*(B>UnEScgn zXARDh9kRpF=Y>9KcJ#>yysg;Exne8lignHvyCqCO7e81PKiDdMe-`V<J;QH11LpXt zZQ_-Ptl}@WioaMFf3Yt9VqN@=Qv9;=tv;Tr{EKz@H(KTIr~Lht{}L&GFIuHLD@pFC z5B7b5dpq{pqbU2g@KSdXd+nQf2p^d1YIu+bdl}rW-qy9$-+ohl@^<=w*`~JB%jJm| zl$y7VAbW~=7j^h8Zk668kL<%PY++}Q-0{f1ar01n$4$qHw5f{#)d1`;{n*wTzIBiQ z?UYjS>%L3ke!)ZdOA_}J9y$^ifnq)1YO9fNdt#t-;@0cL?G2*)sg}fzDJFJF+|$fF zI&|{dBzfuzOG)0|PRSEph-h)@NM1+(Fu6Sk4Xp}2IHF<i{0qW|^6ogt7a3jdi{=cY z`{|xHNNqDLZrtOS9Xo?w@p8Z9`-qUrO#$bnexG@1Ia<csMyncTw2fBP=?M2{cIc;G z^r2KWGjw;r+|N;j)ol&asfku|q+L9Yge{9qBH5Fdl*yj=-(nGn`194hIS(n<VI0?x zYZm9rHH#)zMuZJHy+i$swsdI$Wf9t$KYz76GZ<f17Jb4xy0EY%5RELcZ0mRwP8g-j z5Esfiv=E)EsBs)xh)%K|Ikcd5I!DUxjs^~z(TQ05B9-NV$hB-L`4y4Cfj`ScOBB0S zBIR!L$`ywBH}lHoct3Vpq5o=O3oP3DrNaA9b}e2(ugGk%5-;aM+I&mpGwF}^kpw5U z5*d*aq`j-*NgB9L9Wlk9WN(aXp2uhY1D)5d`rS-Z(@W>R^|#r)>vyh25th;Zw*XZD zk9jq(8s@cmbq7%zwV6EG+qToyu#Ja6qy+8tE#{73uDPQ%mW50)xprw>UYXgp_t~`I zDUFj~YFzmDfT$OXhF*GHK7gg>YpV7I%+~^DNj^M@Z6R{;A7$o#ZoLnGHL!!RtG|&k zcg?Gsg&-FXP2y7OHe+u|-?ZR)){FfNzBv`q=zH1U8qaT>{7Qlo5qF1kA|LNgoFrw@ z-<YZY#w_CHHZysyl^acep5NTzCs#~=e~YW5%MM|U%qV<~?63;HByX?W{Mk%K={LCQ z-=m}FZ!4y#ndR95A^GN7{C$!@p^|V_t}ZM4j#K6O4kOJ@<x2L&MiIbkzRf`Z|F$@j zV4e-({R8KnZG``^zwkK~$IDj26LD;lT4BW#ZsGD|cg@RILi7BK_Q>%Q*Q#xPHiI?n zr`zvZwbn38CQ{1MyI08yFTA^ltA0^GRUbtdaT0{<T(0GSifVwp#fnN#HH{s^UQKUN zoKq!la4=<sK42oPdOj&LUuFL&b9@VzA-q(jDveBLbG2`^;klNbq6qSZE4av623LNk zZ&|>(KK2LN3R%^sql$gbaHH#j&8>M=zU9_o5t6b%D!O%8#IR0_n6D-dix}#($huFd zZThqbcZ&{m-FX}noqEg{`&^z$u`lvOy_DU3v?Chnb<#+8Q^E%OUSqOKB9^gv)P{&} zg?#V}C<k+m(Nr>#(dV*8CwYnudN2_dGQ)wKk}P|R;j+Q~@eWtLhgWrOPHb@chO|m^ zGT(~$n$0!nVq>`OEFThZPH?k_y}mA6N+q<+?|E4o5pT$o2IOj(fP>2W*kwHNx}-Mq z6Be4t+N7#;xL83S<T!)~JreU8H)+n3O7h&^b=<4+5{dVl8)ILBJ4amHUBoEvhr4BI zuKK&Ap)C4xAYWHk!z~aJzq*o!2CEon$6<bToA0H85fM^;vrWk<TSz6^p_W!6WF?>H z@m&}BVzx>fM?0y5s;_TP;XXQlHgmx^y{(*Z^Jj12ax$sgtvmDm*&9?_kT?To@l?u^ zvLcbU<xp<ZD5V68Qdg2Bm9z{k7?J`@n+ZQ9pB3ipPR~;@WjI3I9R5|>ybBNr(m_e| zPgJx1nx@xvwNJOIJ(^leGR*Dvj#by<QIea{K5O8x;}fH|tGY!BwWZ7G+>$7U=LLj{ zWY(qZay&vs;P_mYQM9f$M~Rxy8?pN+SJjcBlfbrb^VLD08tLp$XPdj>4F7{ZB@?ub ztrDyG<6T0wrSly`QS!K;3a3Kt7__G>GHwRC5>2OT<r;6%&YLfmJg~o?R{9Z0ozida z8MH$M>5!3D;CY)+bH2b#^ELH1jlFAjyBdDZE6dEaY}{@miszlJs*fZ68zf=C+%)JQ z{Kvh{wYUa<;xzX-WkaoELcRNJDIty<DY49K_C5}&B*JvO-U=Pf=|SLm>(K}a2R{*B ze!~3bI+1lox|J!WLXBHWxo~z{T)rA{?#oq{#f>ksP5VVBdZ-mGdFOe7bQHT9UXZLK zk*-yn40D`p;-<W>BTreq=0sMoEPg!Bsm<3ewLba-@fI~H{)!qBkZcZSnLA{;VBDnC zB5O;R&y^Numl4WrMc8<d^b;l(t-1Lu&l+Rogb_FA8sR7OeEU<D92{kC@wDDN6zMSB zvmuaPQXKaLXyAy!QgZ{dw??FPA}bq%Z5g|SVTxz7cr>?&FFcDEG~|zc(cHA}mB{23 z=BxX*7Jca&^GeYU*Vv7o7Y(y^q8ihAUT$YHd{c6JY07UL=vULv?Q24xUKTCQb(SJ+ zJ!LCsuoE4jp5&N_;!<;)RQAcT!Q7gk448gybG8l#n(M@|7{?>_iq@8yZz-8mW*(FR zWOKDN@WR&!PjWbRQPMZVRsUb|7%7?PE!rg~pIl?VmLB|VA|(Qm2}6(+a+Um9TpL7( zw>@|&R}Dq380={^H+wdWjt(y>dKm?(ZA{rZH`yOedSX`p<OGrI*mA}*N#ZEECvTLy z21+KXL!1W!PNv}HT#MB?m5<k-5JE;<$wU~GX3582@thSpG0|zc7dtvFL&Qt$P9fw& zh^S*2LN9bIbGju>1Gqog`XUVQM-1s-2D!s(!o-o653B7Jy%do&ZertrJk|s1UkhgX ziax2?Xt95M2m2}`rGW_Z^{)x5u7*p9zRY>ZXMR-X`P$|@iDSf<;yCYcjz@IC@%?<f zQ#qF5xy^C$zsGTu=#Rj0dX{j?r;@K^DBJo#tc{QD{D~}(kN@F~H>peSS~V`;U$ika zp8fa?LpDen`6@~7Qy0}H^VVJ2OcR-gml+`W@Fm^2O*OSXKvYxp0h4b~>@v2u+pSRU zueYBM5nAe5TM431y0KOX_a<IGT8w#0vX(I&war!EQ$neJdzR`}zMbV-^_<_?>VLfN z=&V8YauGRge&0Lt%eu{$UG!?{<Y)MAY#FEyJ+J3g5&_c8AKsr88bog_!`u;m+ZArj z;zh%xvi=TFRHR|CN5!{34RlS?b6LkT$(#z~vbt@1#cBpt>P!N4oxUs=HQe1J<c@tJ z*{+W#9HS#9gA!68yzXoGNf%LYz8q2LIPXd*zJAQE#ct=_ss`&Zl2l)n$yTR}wd?Jn zk#-)PX7xK{q>;}`uRnW@&Nk_i=za&ek=*qNj4a6)5fi#y4R#R7rmvaT^F5U=h;$t< zQe8*-c&_?$)MN6XY>j;AyBsajizJube(rIu|Cl^GLMD*-5eyX$chRiip5NgfUsu$6 zb05AsU+Dnxzo-?oZ99=i{S)0e-42c{MkV_g25gXirMf6C>UCrrW;)`Pm;HXXRKc+H z#|=(C*H);0Q(|<y6<OAGQ=+TH0zHEP3C@jimgMJvwIP+RCpzBkL$_AZ$L|+TIakf{ zk4zlQJO62^Kc4jxmQju5SjK4AsyuG#t5=6hv0>f6{l(A+y1Iye*6q|pgLT~6uA?Hu zM4-yjRh>F-T^ebSg={{9Ew)fMeZP`6;N`Q@QT^J|>C-v%Y=ksbj<Wi!1K371Bah=- zuCOQ^rmHnqT~MSJ^2t(qx#s#oJLqvu^+}J5ochvR^#0A~+mj0+EBg|Y3+w40>``7j zb#)}rycg--l$vSP;R7ze`Pn>=5xttMRR?nUDoI{i$89}dsa*%CE1$d}RzZ6qL|*8| z=sXTmf6iV3J+JX4uco2E(#fi?^{(GZk3D&Iqv-RRzZ-UJd`eyQKb6sj+?CUDT6*0f ztF@(t-%V%PHMWwR;)Q)f!=v*!DgAlvR64xs6P8N>=ok98b$T01@L5HBYIejgjLzdA z^yjtZc9>T?nCvRd8Td7xRL7k?Um4C9?8M9TMtb<&o-h?ZMfstl-A;N^{PYaJdq;RJ zr<@JvW>(+_dg*TE#QrXm1=cXMi+pb17-E-+&mOEEp-$ZSp&V}JTyrQ}#8j;8BaSlD zfwRsspQKx?mSDCNjGck6BUfM%vie|hh;2JhNed}84|H9N<>=ti9#*y@l1Vuce`V$Y zC1rJUSVTmYDA$cZB)Y{ox(y~X1|CC$K}<?l&j^3r19`HnCbVeb3ekaHGYb)ukNh&s zVt1K2%xBKX3Ygb2!CA@FYFi}KTxPDf8z9Y#ttj>kpf55biy22FQjEru6@f@GE787X z<SDA*ANfLkBV^<Q*9fWf*r9mB3Px0W>=^pIHE5qSM8+|XIrY$Iv>yJYj{jhqc9Ce6 zYt4Ow-csQ@TBSYyVO9XIIgimeuX`-bH*9O+UQSH+GIuk$i2WQUI5X{PSi%ECqP1)% zQiB15{XufT`ykh<c?WI#<{{A}>FFniL|kuZ9_$Fy!4X~<P}xHwDIGl~x{fiCHNcS( zA{&xEVU;GHrC2l?pYJpT(vwowV2QzyuYRkVd6IQksTh*WOFtl&_pWiP@8sz+T;jGG z@}pynB%(St=HtX?EY7X9YJ{Z<N*_cfrpt&ar5RWw0%}3*<POK!tNXk5C>2oHa(4Jn zX;U`iZ^a}QwL8M{kr;s>_-s#)<4Kh0_<m(FHO90~z?|Df<&|nlr(n1vbV{VGxu}(S z>EJa+q<8qhfO(gN51d%jn|6{RTg#q}8)fF3kt>_!>X9}&m8x~o89vEq>mh6Ov6HED z9n<wO*=y^K+~{VgQ)Yffr^tNP7nz%7=@DT|O@N~Z3=qvVUe5>iT$Jjc1S`EoH#G+* z2O@L1KXzTpoK)~!_2T%jL<%J%_?*O!p=huqBVtZzP3GSWb6spNYX`~Qtuk|`>TN|z z${#C+ZC=S-3g?Nb*pYtWFMC@(h}NAwof{sL4G!Ti`vr5@8)seM&XkXE=elpLx9G1j zq3^nHjr&#S2FWITARi`WZHa`Ia$(thEsrx>*IvKD<$c+_UzRZ<YB7VOq>a2dX;(=i zDe7JbCOOT6F)w^G>n~r0*a-E!f<TVg={!qmOd?P$j7=i2l@AAFz3?H@t80;El@b!s z5t~W;<Wy`EFOtEC=WDy#@ab()(%<UX#Qp%GdXxys0TT2VSnzVge8CDL?~g^rR}1wn z7UpT{`|a)Xfxf%i+y5Ilg_`N1@An39FCF9}1{4A8`tZfL6u26whyDskr!fQpR<7E= z054}sZWWM;gp`JPBKXr!+S^YBUkNNhn94gZAw@1=EOEIx<~<3R2H5jMvc8pAZz?y; zm)J?@m&y1UTm-ieO<wJxp+-~LFzebdEqwiv`Q_HKXn8Snhyhc1L}?8f!Bu+0ncW^J zfpp)=FeeY^7G||#3swV6Z_&FqU&e(`qdZidcbW8lof&Rt8?*8Z%Ke`8s*>UoDi%*( z=T2^098PbqXoKNmgl76iVLzg1L+w~`GkqiC-!)$icwV*#`u6+c17w??`F@$_kfaCa zQu9j{xzAiEaSWHhM11%yw~6)q&gYXy+2@nbv(G1g#~&FZI?sY^puCN<%<DO;EN7VI z_%aqpIJw;MeX{dk?iPMIVD7W`It0h5eZ4H7kB&?j!8FI&vU=-@l*sG3@^-xl9;+!w zCXC`nKfmXdQYSUNwpgXEu!VKMU=OzQ8fI?N@}~Vhb`u-&!q541sCP>AHG#+!hV-um zXCm_$8?kbJpjWVG{Cl9#8A$_T3LX6#Uh`A+E+&7~33C6)arvRMSuGAYQL8~$CgFp; z>C=`ja#5|-#<SZ>au6mA026B4^nOs`FOdgKij0S!=YswA8d+(<K7R8DL)ymp2}sDv zYvsPiWdGJRw59ACD3e8mp)_eP8>HDQ7|K%z*;xfG&vM<_9|t2mVqhr87g;JJnOGY? zMw=)OX1HGN=Q~i|*jgv+L@2sp*V|5}gNn;#6T@9~_$hoYF~8b4vCmij)(^5+l?b=U zHivm1NeJ<7wAD%EV#=b8^5`pkjl^74xYbv<)d(L<TP<_s1{Wamr9bwoqV;@P+SkU9 z5yc@6uV;I4{a(Z6<90;0$F3=QzP5lc88z$U#~v|epLv3$wls1)@$;Gze5cR5SgxZ_ zyvsGZl@I&yW9(P;O?s8fhrE_Id3hB}lf0_UXR7@1T%E-hW9Rdw=JEdY@vQZY&(kUc zR!g#2uWJRBM#c}}79$Fb-3<?8;g8N6(l&ZHPY$i7uWhv6wlUf*wjH~6#$;JE!vkhb zYqF@jJ;U!YOEPb2n@DCNkW2wFO(aO~+88}VNVEW|O5u+_s@A2|kQt%ZuGiT8=A(_` z&8%U|M$J^ed8f>|N-|2#@k1zhna@!R@oN7|qW+=P#j1aOhqZ)@`h<FhZz<Q8uP5*K z>5!jFc%tX+DLy(VGhl=zdM%W~#M5~QL@K0tx#~|)gc2IAdT9xP@a=x)A7slVS6}Pf z!YyTp?A|b*l2vb7sH^@hIAt0DO^U^i;HgdHhG~&3p{$;0`&GpObDi3u^BX*uMsC{7 zy^{#OjvL8ooPP67rEGB*UL1kwVwG=tSwB)s7JbTo(i)FH`o!y!RYiy975KyNe8o22 zfXPKwkqI+!@35KSkNj9=v2Dqv+Ka^kK7z-=rs8eeJ0hR#+Y-yn8;Z-!g$Un|;=P4` zcAXgQSFzD_SL#-p&hj!*KKXX}xY`y;iIRH`RWU_2NX>L8`QUGBks*c55udLsD6__u zO)}D8)haJ?Zun4ssCVSfU09qsdSbj+VN3XsE0i7?J&}nDxe;F7&Ga9A6aUdS@gIE? z6F3;U5V+X!AAJ-5(Kpdq-^^pw3qH{Q(KkUJTt@r&kG_fj=$rWeTHi$FoSK@d%Ak9O zx>CShIirfx*P+=r&Ym-Gwp$Lp)>NVUVa{y#O;y1ebEYTsG+283-L*4stx9;;ad3+J z220_C9cfLasF1MK_1njF{-ff8>^+j=i<HAnb^%SF7M!MwXXb3%Qmg&2N{#-kOvsB# z)rT<{I~gG{ud2-N#FH3XUxh`<T{oTlJ)`YY{hgKKPgM6QW5<_re`0F9TebH@y!xKX zRDWBJ(qC1oKTW6d`MOMOi?R7k(d&`w|D<o3uB)urJL1=RKvL5+H`QMk_jLXw)nAI< zlGJ#Ge`W0SX)@K{Wop!nV>kZ3qr<2AOU<XMZ<$X+x`;QG&#_(jv#pm~5BA$_>jZA; z#=V@7M>@A>N3fHJZ@Sm9J9k~qUGg`VErQ?les?$gO@+TB>4m{s8F~LV@!yR5H|eDr zreaYeXX`2Dx7?~nU8b+Q@N>IKUw7ek{W$FXqIc$8^v#?F{x0V&j{!3xDUeg^VxJ8b z`%kp}!~*Wh!u}L+5%{+<X%8L@W&x=nP2)G20?32j3TBH+!C%4b-YfVKI0yU`@`WRG zL&t$fg3~nqW4=1nSulz%nqvPtOJ*=#(5&$wu)O~(1UQpi1#vJe7HkCbU+`ys@KW$k z_B#lFkAPVpF1Q^`5(;hvQxpYLz&*hez%0=g{E?juJQn-{oCRJ4mhgXvdBLY@d;^IR zdK{QJxS_9-D4~B1X46Z-05Cz7o*?0~nkg~mU*jL)N$gj{6jlYtfhC^JFr)lw+)Cnv zzRGR657+p>Kur&_@IZ~%fH6ax!4m(EG=AkY%ilDOFV~o25`9GKTrE2{bKKD23c=@5 z1YWSX3(m*gZ((&GVIl6bw7cLFaGz`83c=^%{*ZPTOw-M2ws3{up}4ODOZ<YRN^G!j zh2XPs|4_RNhS!|k7OoIH40pLVOTr7LD(2){xI*v{+`ZaeF!SX(vK0+np|+&q9@OrF z$x?M6Az0l<h%8t45lZ}WAE6ufW(%wP2+zb_6f7wI!Gmz$VBreE!*Tx{Ebf9&!F|7l z)qR9#;XZ&$DDHw!#a+&Wf-3}{kGog93m%NS-@+AwFTj14b{9;M=E#{)aD`wG?hk2q z!KdRc2SLCUf-l5<opu*|2JRayTp{=z+{tED4@kS*FPd8nmU5j6mh!6uOF1=zr94`| zlJ7gg7<K=j<fEH(OMVrDC10k3CH-|^NoO-y($fMKzITF!KZoXHG;}U7mBJAt-yzXI zWuF_KqUjbACr0iw6ZaOF6VnJSCnM~0!FOx=Y7!}CiKc5beV?Z9()3bIKdfn~4-(&B zG%frKy<XG5()7EUUZ&}uWRjRiH0{>(pEZ4vrdMiuil$}hPvXB#(~?g@|4`G<YWfeF zeqPgSHN8pGZ)^G`P4Ct84rtMbWuJ3?SJOi%bTM&FmuvbnP0!c#K}|2yw4BV6_%>_0 zx2E@Nx}T=qR3<SeX}Vm~vRzEV*J=7pO)t~*d79p=>5-aNinfTaMAJhMVq(T=TFz~Y znV{+Un!Z-k%QRi7>CKvk6^HCO5T!U``T#;V4_2hQLrUm6w?#`e6ndwoM`?QZAj|zS zO}FqKF_QrmA7v`$MnLFdU7zP`x=z3UE=?~7i@6UF|I$AY^GiTz+x%72<%2Anjhc3! zV$s_*Jy)ma15M}Y_kRVQ6rBULkDX{)bV+tUF@^S|(1j`VMJcp!W$Rf;JXkjjYK3IU zO3uc1zV}c2z}CL^Pum3aO@v7#HxX*8Y+6l+8ntrk-a+l8?;T90xVSHww5}o4HYwK- z+P1gM<}SY^qI}NG*&T}5uAGf-wVP(n=AOUQs{wVGZ>hK~G?x)@m3>{Hj^qDUg&Vps zMB7`TsCz3EeQ$-L@U2iZz7>kfx55!eq2=xW`f|b4_@%0Sd%bcOUXXmRV37M6Ym*gq zZ2Iz}Lv-Ps(wwQ<O1Hyud2j<5`byuZS1zBxVs=Xyj7^KRfEEKstygYAro_^rS5EX* zs#knVJsovAo?)6VxuwbG#d<^M-|qBkEbn3Y_v>KISyo;Z!{3qO?N+abj?b;*+oj{1 zN_?7SEpaUmLeQ^u%)q@DSkx<vO!WYH+8)%cN$dkrdgT^<xReka^l9{42ebX=Uu8F{ zKcceF&n;5iDCfGm#pUq{EN4SX0a~=IUEQ(|!?migy4@RE&eq?w_6?!kMkMPA;m2Nw z4Igy6>K9<qzR}!X9bVvD?g++9O{I@X9ZND_TrKIf{TnD}E80=(GNOjlYd%MaGD5`6 zp9WzIrC98m*kgw3ACoX@34FCodv&Z6vwk}-=vs9h9JQ}^KIhqS%SZ9=asiNRQu9Z8 zpl6O#)Vb>&#p{cm&g!;e@|A=7kz9ZDavY9Z?<`(#h=YLx8wBJvez~JgP_}<07t}Qj zqrBO@COMb1d#&NQ+mBJau-g2$@KeIBGqjE~mp@`3b;S2*wduRBI^DMd`~Y|*cqw=_ z_`kr9gC7Dv3H}-QX>c>R1^f%}8t|{c>%hMTuLmy!Zvg)e{5<#(@Cyyx*W~+S@Vvqn zwU5azs#Q6LY^XUF)l_9mq7}|+^SZJn9I|b!HZy*J=CGnQp_jsNe3dGVNLjsJxHs>g zL`oKYIS~QjTD*t-4eJ}mW8+xgaG500ct-Mwy`P8JbmlkJKKu@9Dqdo8oQv&bBkY*B z?X)gLG@j{)i;j-1delL6HJ*;edVwQep&yKAh^*a?M6<``C9eAvLwY|b^;nJqbWp-V zsQ;obWkSPBjBD|CNJhMeMX^O&>PBf~NSiurz%%>#wvq!r^QDNoxe*P8rn<)iwIK0} zBfh$_=&T0ngRWG^dCiu_oICxI<01>|iyIf*iM}!HKK8ua`f*yd8N4&iXTIq*RqTp= zGQd}-_dR)~HBkzY{_MqHGwd~Q(f$SJ@N@g=kQAOIrfGn|lO)8os=pD>OFp+(xb-hn zedY$AXQ#KZRqqM$HoomO_ig*cvoBIsC#PbQ&c#METxiW}aQGU%4NlG)Ol(N=><PsT zR59u-?d;#&vgHG#;l<ECYY$T|Z}ggW-=NP7=SG7aL*|C+_EO*S(CHC%b(Fz{jP;u+ zRGlh0AfhWEo2GLN??}njH(hthO&~t>>Yb{x)jLw<jkwf*NYQYei`V6?s;B*XJ#R-; zTQZ6c)Sjtx4|{)fV%c)=64$D8J-ZuPZqM<D*Q7aH+FOeb)Wiv;yy_HLH}i3aj=G_5 z(IKe{#jXe279CQx`oXnL_e))_-{xw_W5Z4HDNjiacQvF##QG?PUJFv9+l}?!21l{Z zx;AeE@mMv4^Ui4`R0$cUt!|DgWM*;H=}Gp#?jlnhvX8{A`#0{wv(G(ygj;%wH8XFR z5p)+86`eoy++l_1xut*SHssc2w|rwV9GT1<^<<VO8_D0B9=(ehs(#FVoWxAPsf<?7 zW9F&EF~L#ksC9(tQLlBp>yZ8WV)9b{`Vv<Dj?sVph)MqX>%U`}jgr4Shu<N6f2Si& z^C0)E^daO4%pVjw497IbB1fyk>0IP=ra9A{8O|QgEN6~0&zbLZJBK-ool}$FZ@<%i zm%QUR{*LD_pT86MJCVPW_#41q0e{8(F+HYC>beJGa`oNaPf3Zf`wfZt?3DR`9gRc$ z9cf;6KK6Wqhkihr@?Y>eKZv}78^D-?Yrte_!3F&A3BFjqyMmeP5kAzs6j9{3p}}fi ziY`Ykr1W2M$AM*>zZ^#~QvsoOYdWauVY**nYI?4we=0N#+5M2;XnKQomp+Kx^IoUp zV{WXIKDg7Nb(P>r&AD}=#m?^YCtoyfcj>kE<tbd_jTYxAl{0Rnmp^kB{kkNZ8$#1+ zxZ%4~n6qbHKdqLrLW*V8{EiWYb#M0B(~snFx_CTXU7hrU3(s|T82f(hF7?%&H$q>q zJ+)VIC-_MHU#S2Nx8#V`|J|OPah7%Bcal^@OtFN)*feFX`mMS+j=KN*9+QJ&Bt9wA zrOXQr5{qxy|CRf=#mth<B4(J|icb+o`01|yJ9UT^C|{?u`8!tsx0!jPVMmNlmNh#Z zrcCh~6O9gfKH<eoRljWCBOj^W4ma~IcAjY`g}UocZ`bkF>9Wda(of>^6JL%Mk><RE zkp8sH14+_`Fxj`0u+pxj|7y<<@%W8K`qTdC;&piPn~VLuRbNO#KuuEAVwpOJn%c>2 zuI2U!#e>`YPHv4*)oqL2(uN&viw7&r)Jsfg^?B~-@2Y*!q=61}opNr=SWJ}dEf<d` zHKE<aBkxxcK50L+*bnRM2T^CO{Jda4Sc<9%{*rC8-F|r8e%NV0{KJ0OWj}mqKkT+2 zKDQtC+Yeva4{AgsNzNcU6dN+UQ4cxxL!SN6-+suq9|qVDZu?=d{V>FSILm&J99J<f zw;xv653B8mC+&w8`(d5^u)%(K!G73mKfGi=Y_}g?w;y)e5C5<qcG(Xf+7G+!2hpCR zI9!JSa8d!jV&Yv)+v0p(75r_B^Ew{6Qb`&1CaZnS6C$e4(B*2CYXsMBd)Kw<Ua3vl zJE~3f5Z<55!Pl`vqLZBF6gF>9$!p9>e@yDVx9Q$N_>4>$B5H}p;x;zV+nAGYMd@iZ zw(Y9+nyPMwTRw~TL_06N$PK1?V|ah|g7YO>Zef-^;o}LK;Vg|_o#&5^AL4CVEK##r zeTWgg#(wdb#*E(a0(x+Ly9{`Qw&2CHVR27C*}4&&L%JknbYuVY&M6z7p5$A+&}|*v zn2}Bzy(F?>t5>D-j=aXf1B0jSd$m)4x#{FcQFN@+bOs`6jRQuAzUnoh53ZGs#&weE z(*CTx;jZJ5(WG*Q6w39;SCa)-=QU>ZvJ#$ZdxT_7Udw6z1!o>P7S~FZf7LqoRgUkc z%scVh!H?4L!<azC-nRGb8n7p+29!uX&2^gd;By`|pogvj>NSyhL!x6kYCy&?y9R9g zpxS&;YLk?I4=I21dAs;~Eg03Q6dU_H3%7Qp{s)P7W#lGOuXC?uUpzhB($kJ9FElbW zrjB@$^EMGrlAu(%cv@=sqt3sMef^vX3z)B{(=vyQ@Y5@##9jAXjARW&dW7dsN(<FI zc1KJ5XB@WJ%h3?8oDy{gb2uFQ<OA|akeiOT#5h|K{?fhRA6P%F1_Ghs^7x_h;E~7u z>ha{qE(aIxjb6TK(U<K!-q9DwQTH&s4mg7`HM%qBP6|X<%6F#J+@~UgluwII8j%Oe zA+Z$(Y+FeA4B$8;$uG9@<*_|IeheX=79RBQnS1E{=(jXq3Ad*&K=Z-?mp?l9Yk%}= zIsW|Q&;BTaD)>eqa*s$LhGfpY0rLU%j4liGQwJgsh?rt%){C<;>1a&zyT&{p&kjVd z&gA$$XG@}EGyFvx=4H#Vg@)e~oe{Z9zIWuwYN(80wo<buy<H<(#*M&RxEcNBZSOHy zzDG&4JxCw*BqEIiJY%Fr8|KYJ0+E{&RoZB}OC*mGxp_$Rc3f}A^>!NOh5ButRw}h& zK48~sDk29p6(jyAtA3KWV+Gkc75j`<1;J4#j+Jq9uPTYy8`#2ThAny5$n61|(Jjf0 z1{9;^uyPfwTm_?Ps_i8hy=n*-a3_+Haa@8?k-t9kE}K(ne~4ertS);aa*vd<S@u%2 zNi=7;R_!3y-c-4^A$yM(c^2MJCABinXMVE4;^**;^EKU*$ha}^GX`$Q$oGJg+$wv> zxi}I1%;M*ZcxJdI)7+@piIlxWPCO^ypch2~ZOl$8t(-1jn#cr7tAdwS@X`uO>%7D} zjcqY9!7BEaFGL7&H1|3E)<tb!lV)E0ioDpWE6*jrxzAC(`N;LeprZKfit@R<85J1M z>o@y2eRj{!sV0ScORdw%)k{WmraYHQ@X$TdS}2CMw!QCjt=ej2f0>Agnmb8V2vM<d z8L7RDEbi}2<ilk{qPO5;*IJj(2UTM_7r<wR`D)z72O*&cEvY7>m#&B-?B8d!To(Pc zmJZZlRd>sxe-r_s>h#BvD_>HUb`AePQ9ko)yZ)mGA~=(3CQUVbAbWuaUZn~c5qP~E zUUjw3=oN@s4pv2qAERkzOHVMGR0$f9&Xqmqxav0Y&}dT?Oj_Mxr-G8wC*Qk-yyl)1 zf51fVks3kh*=v8~WIs77N3<eNZ{(K#{>LQJi)pI?Gx{qg7@m;{1oUFuegy~o!lNRN zP<C~jH-d-w=|<#!@zTy|JoVtO+=_yZ`<K(cjP><>9>L9FZsHW6QM4(v#)zm0!v~zM zd!NK5&WUO{AUZQ~ZV->wOHum4<mJ=CimUWfe<js-MO32oSH4)?mJxAw#P2HoGSD6s zx$0U~+L#vbL`AA5-j%lCckwIi`SXtWY2@u`k6ZC?R`K7b<A46J`1kAhlj2-yF1(LA zhc=-G$$;?wv<1UBNp7@$IM8seGq!wXeeXD8#*s3w`Hre0M*9m)-rezm4pdgzURL=( zD@at-&-rSVH~z{NBU0a>GSF-gH!BJ?SEnKgR4QwDStdD8#;6C9;4^=vl5hkk!>m_M z)sdWV_2~4RUsjJcbDl7o?#`4VDrvg!G{GaDuSsj%a;UYW@$QR-rYpN3oK`)?T<}XK zX`ebGH|YPivw%`Pi>iV`mZjK<?{DCw)ciDpBB#iud8L&<$d6o;R~lhvFo0?&RJuiu z3A8mVBLXozHg`NO?RZ>bKUV%#vLaA<_g^L7P@3ayqIU8vThu;^2iLvF^Q#WO{+{^I z7~E_;Ar1!ju2gO+i$1CH##h*~Bv5$?(x~+DG=xxTQ<~A<>MPpgbB$+V<>7TmBwUKx z?ie4ae6HGPuP+l03ilShwIJ6#;MqYD_#;;?iwtifj{c8xT@L>Iu0NqgQ&mr9vYUza zu{7r%@oG7!y6Rf_g5li2tvMM+`$kv8&E#V2Zdf%Qv)IHxY(8YO*&)9Il_M>F`3*Lu zwXgRUaX5B7@NgR+o}gm)d}%WYcDJUo+h5qtdE7}W+X_>hXuV$=6DMLfDW=xK)N`Tx zMSR!42vg&tD?&da;j+HPfyhq%>*~m@U(ugARLwHaXYHG+&07yuhttwZT&tc8NoH}^ zQMlz0QB{|imdzbcihAu^o)&=<&ru%l!6V1MC5~%ctJ;(0wZC$2r}qUa@B8Z`c=xxz zShVJjJ(3qcO7j-&2@WVVKl6JwO3HpjqBiOxpa_FMN^9Q~S{aC5)!wi*bWdRmGAJ^6 zsnuTbf1fJV(+=^KbZ&OCz~n7^RE{wpaE0FXMtt|d{QNOSdyA|fiNpz~v2ZlhwTc;c zIwdS<lr1mZYs(w@hVMJG_eF<avgL#J=Ng{7<Kt>`RG9e(Z&6E#1&o9w9_ia0LRr~5 zf6|(nYVMNUj`Hp#&%@8Cp|7icDN{L|el3k&O!3GRNaFj3;un8p@oq-Q{>Z%!N_7n9 zoZVwwtInEcw67C=MGYoFu<))-<9EQy$i4E_@|v&7uviV(vbXCom0G#<de*WqdCzBr zk`Y^CpvpM4V+4|HYYkxZ*Vv#x<TW2wAH!&=W4Ec^7L#pi)_R<!hmDJ#`u8yCo-vd_ zukE6@+esmP78MX&dQTd^8TZ)CGKTkNzgBHUyjl&^JsXNzZ=WhG8ul=)aX{7)hVL?Z ze^}CNvA82?2yaA7PuLwlB`H6>&em98#caJ~wZrQ~5SZJoWCWt4QJKEKpKI~`II+wp zKE_0HmgvXPk&GpVXFZ~YF9P{XWot>z+>J#$EUuHY@LOlBQ)jI3E+$bQsQ+u@ec;;S z7~a>S<l9*Ewd6D>jBB_xYgg;8o|!_6HZnC&>UFKm$ftJnzmuQRJJY=8HpTtgBXKY1 z-M@Xc_<(AmhRx);b9X$~UjI}1yT;DnVuZ{76I_cMI^}QO*fY;sOs>9R=jxgx@%6ob ziLd19n#k1wiT(=txh*9>y(51k&C+#e9qVK9TwO(V-F2;cK<2H@&1kN3t$Hn66v*C{ zhD~zaecGzP>x=f>UMx&^%nJ<2?Wn-D&cw{b$yNpSY)8S8J^esF=I@TDQ(>*lOOh)| z^+Du`mJAU!kydREH)MY5UP%KkB0A`7BciWpSMzHu$ZGX=D>Jx6SsG{yss(AE)$R3a zqPP9UMTf+`CcE|Ho{QG2nzTD9koc3%bi9|j*$xv~yq_1fZzxhsSlV^$`MN~^mAtwt zZFLi6Z#*Rn2>$T;9zN!$T;5%-`&+1_`;Bm$=<|D8daUtm<g?FQ?=?62V7hW6I`!^h z9K=fPW8#iVn$gjmlZv*u?)``Ykm|jZE2n%#@r5Uld4t=1MVo_awks*W%A7lVMF(Bc z6};XmSsIjGwtNqXWyQlXl;PpYhh;Jq1uENis-jLVVpJO;o-Y5F#M37<m1ndBJ$X08 z!FX@`d*gNPv5Fh%?rNA#GGjZWXl!@+h&MbaIT$|J%XRN>c_LSzk;zqCmL5zJ{J5?9 z6t~VFfY0Ouuz(W&ms(UZ`#pBYE+U=|`Q(!!*aL~o72YJJG3mewA(OvdF}nB2j9&h~ z#Heh;<nBgxGr-7-#Zt&TJh@m3`A94sA<w-3ORS_54<(KEUt`f)8O|g8UbD)bWq2i8 z-pXDZK9H-coa=7Uh}uPEOPS_Q`4%SRUwG|jrut0AWDj=Y?O$~L_Fjp%izd~7_wD=i z+k07W=gZZmQ%oI|RRR?3*eREq^0BH7s>7f=1p8@mzAo5Ep3gtLL+~+;Y?W?t19!)J zc%26f^G)5*I!eIK`!}=K>ZH?YToCBul}DZLpIRx8_hS!PJd0}_nF(&~X}!G~`4>9T zc!oBPP;BBimd$>Oj`m)(S&K$rbWRTukFgl)u{wPWlKTgC|8hcfw9{X?fsDLNOWbEf z;-Wx@q5nN;YzT^u>4D(gZ^gdb2(K5x`-BMAc)z6fY|>!1v1`p=xi%2ZsWZ$qOyFjm z2V3{9B0@TGe`e9ZTXbk)f40X2m6rM>c^hzk%7|uRK6_c1B)V7Hn)A(SbA@_}8%soq z(MjP$z3w=tx_z-ovG~wV{T*M?jv!r{=lIU3Ao!BH67R`_$dc-Yme5JYGfk3xPfI4o zE+qvW{L7Y|`&;?69Po*r&+w)mF%KT>OL44wp{|<XuUzAe)GwCNr#JGTOb9sX;csSo zz}yy-F;iLP2GzgCa^baPY-#0v_o}h#n8@%4%+~O8<o1rz%7-4dEQ^N!tY&cN!qH6+ z4U}>C=!+gYUNF72d7aZ|m>c6KCFK`B;=TE?<$d+&$bfqSm1{L~yt#VhfO~2#2=ygy zm&AFIg>D|=uYBIDS4@>eGfvXUfM2iqs_P!Fl&hphRP=2lLa%8hmz+pa1GB{8OiRzm z$jt14>50kGCR>|cDW-Rd$?3-Q>Bi*#o5uBT8dk^q9&=2;e*H1WVvf`1cy01i%n2#x z#BR(<-IxLYrYZP0jVk}l9+Z1_cCTK&drNUjkx8*g*5+x`SDRzB>8Fk4Te6WnOg46Y z+Stxl8>eLNVPr~nA4YbQ{U>&p{W<KCx*I43UI5Ml9sy<n9|8k_hk)yV*MU*MlfVMt zD<BQH6BrGw0Zsva0bCEf0~`bV2)F{+3Y-f(3e*6f0=<AH;8Ngu;5)$YfbRnz04D<f z1$+;96}Sj^9Jm$u66gWk1&jgK1E&MO2C9Mgfa8D%fUAI)feV0@z|Fv3AQ!j?xD0p^ zI2-sQFdO(7I2rgEPyxINd>42cxE(kIIDtig0ki^xfS&`?fVY9Zzz>1Tfh|BG@Mqu$ zz#bqQFo6K@9N+<d3(N#!zzM)lfNOvqKoRg5a0_q%$OIYyAMh-28t^|r74T2sSm1u( zO5pFn`M_U+5by=i2Z#b?z~6wOz#o8{fRBIz;HSW3;0@qn;3;4s@HNnn6!dduJAMrQ zF?a%a0(cvE8~8l%dEmc*{{pTB*MdI-e+KRi?hTHBBj9o1ao~;Mjo>rEXM%qZ{yq3c z@QvU&I1WAud=mJ-!T$}u7JM!EHSlZTk>HWwC%{jDZv)>3J_tStmR*oN!HdC*!DGQ= z!EN9+@EPDUz`p_i27Ckf2Jrjf_rb@5j|V>peh_>$_-gPg;8(yGf-eNG0<Qwk1J48R z1MdU7z%KB;;CsR2!Q;W3z?;D5fX@N{3H&GU9Pk|QC*V)O1Hl8q4}%{DPXSK>zXg5^ zd<pmx@H60Nz;}S}0JnqN!LqBZ7;pnqfjpob7zWG*vH(9Y1egKj1CxLez<eMB@B)K@ z=|F#AA}|~X0_nsM21<anz^TA5flA<AKz4`asal*#+?m9eNgSE%@ybN@WFlWOks+DL ziA-dH?3~S{O=r?>GijSL>yt?v%Oo|Kw3STtcPzhsfC3;L=m+!$P6B!Y#{)-e=)B8( zKmr)n!BYoF7c3bVn9F=g0_07}0C|{^_$5w>N5YDK*#;^dSji!}eQM8}Y(ABl7CJ%X zl{%M9xmo+&hJi-_#XvbQ6_^Xu0nI=QuoLLc*lD%XXs69ilbsgf&*stQQ+SmcB_KQt z(7{w7d-eq6=!H6d0k%zQ`Xye8OZ-cEC9Q5i(pU^k1?qqnKnkYrUx`4%V(9%ivU+Cs z=#|+!BPYF2TCUS&Is7mE+T|*FBu2_kOzQsU!PrS2+xwq?AfCi@qxVDh94pg}znPLp zVr+j#Sc;Z*+xfkBilrFapG6(!@7&b*w7;{!$?5o|R2VUKd@1^7QvI(<^`CN&cdCD% zyiAN8e<0lR?jF(1dou1lV)}k&`R?$q>C||yPvxVVc+XDF4_{dEkea_eQvH>LGwxBG z+KhEzIZk8On-1HKC-e#M{W!95@}84{RQEc|yUoR6f%B~T)TO(e^Zh10CQG`Bzu1bo z%lKtK{gL+b+l+4R#=V^S@J->HyWwwcH}T8)!*9~lBIP^CVV~BpxpvT>Qf6ow2z?U; zvc;FP1_iPWi6x5ynY6?VeIHB_4BY{yS`3wqs)A1h=io03!APAN`Y9Dd{CxoCzu;Yd zkedZN_z{0{jsRAMJ_aUBhW=9HsJ6dd<L~xWdKrce0-wPyiZ>9>WWmt!8u!xpK?J$D zS0KP(rC<$}lloVX4MyG<9Ad8-tQDLG9tfUGd;}@TVU}F{y+T68Ud~tW9aHBksGB)% zXmEw#Q*rWw#a%G6U+Mh-E4?4$G)ub+<`qis2UzL-AYXFt)9!*{C1<IHD+CY1U3PIu z{DNUUr^Uh*g55a%11#=>Novk63s(p}1*iUGs<;a#NlNbrSn2%`Cz&x-{DVol()$5c zdOs*HrT0VJgSazKtn_|>mEMoja2Nd!;x3r)p3?gPR(e0E2e~h3cfq3fWV3}U1ZUv> zxpo&UdQbLSSn2(sTyrTS`Tph(0aK2-ZZK6R*AK=mw-`*-fCZ~O-14C9C4Z+v3<B4I z-QZ@h<Vy>fSLN;mOFD&+^ti#ocQIJ_n+g^_WXfFhYSe+n`~pz4bQmyy1cWZ9aK$_g z2whBOig^wYdO3|r%u9gKJEekQb^_`=j++O}$AHjtVM@$bfO6M#Her?f>B`w5H>4|f zO`mGJ(+I?zZM$oFgr@T(V=-fdCgJuui*ilR*Y1-v-K=TJ7xBMA(=#-^Thntjo$s;Y zpReg+P1k99uBK(qTjFch^b$>P*7Q<M@7Hv*riXmTieL1GNceJ1FBh5uw9k38XnLu3 z-=yi)n#QYRAo*>dTcHhGG(td(e7gn`W{G&j2pd96B@t5u2rcqn%%y;GSCoS>h7Qj= z#8d;~-YfzY^8-MlvrU+XWLoT}Oqo8jHpuCy>6~YpVrl5JsbI~NX|rbDFk24#)J&<K z6{?*v<@%Yy+D`PWIhAN`5Dzm^@L)aF2ItgNO`oEaCR#SZX|rbC!ei3Gs&6=IH8W_3 zy*@N^)^sATf;(HkqwQ8(HQRQot(-Pn`<nZM=_rFlm*ZTAyev4ga>^_#yr!mG6lbt% zrcIe;rAJO_>BKvxST56(TqKJeymrc*8uUciKCZU{AAXQ4Rms8s7Hy{oMy6NQqR+xk zQD;)SD!mHd>O9%Gg~La<m6_V>)=+TfEUi@G-#t&ZT-VQHjcpp4D{@z4p)%AWIT@EQ zQ>IMxO_EBUVkT=^;*+Mbn;+F=4nI#;8?2c*`v&blH9k9@+qC;nHGi5E8Q#fscb;s! z_PtZ%d}Igzjyw|BU)v=kIsY}Anq`~R^JF4l#FSe|B~sG4ocMa#c1gIq^JKbT>uA<t zq@O7K$;VEYL8l}O!FSg&1b4y9D6HjRky9ee#QtcE+OJ@3tdTP&);$-$C8SVZ>%7To zd6{QFJ1O<11Aio=HObxer%(OnKI^!ciq9ryS5-}SPoG&CMD6Renp+%{c-6F<+{gw5 z;>=l9?y8!aIW-AuMJVm0mi^4xwV~?jnUyoEW(Uz4d(#}ExE>o0D%&1J?jT35C$5{T zYDB%PLmhNZlxcV4So#{4vBzhc91Nxi660O{**|Ptmg-M`?z{CTWu#0u@9l~|JNW+< z*8HV@k`k}$&fRVK{FlS)bRQO8WKuT$^g=LQuYyuA{nMe>fa!V-mF^YoPxap^vm7@x zSoPoe^s4^5xO=hB;oomz)qh70sQ$aSOaC1nRR0~U`tPJ!_20$)KHTYqs{T7z_222w ztNy#VOaEQQ4=on15KMnw^<!yHsvnyL9)Ue+${hx#$*O)Y?OpYIseifBwvhw5lHU@J zFw#%pmC7hA>2gB~|HWY8b1GQ)sRPS<CxTBV0$Z+5()3MWG1md&K3`Gv3pIU<rl)JV zUehx){X<Pleo6R;G(A_-%QYR;^i!Ia_lW<knqCN&{@iv=FV^&KP2a2Od|e|R)O4|? zAJ(+=OU3*KkocruDTcgMdcWL4U~&K#mbM(1ZoBl)ios%}8z^+SqSV+@h0oKp^#79e zh>d~PuTnlrQ)scAa;r~?xGA?zL4Ms-djmF=biU@$UAVQfT6Lsuoi+3N5`-Gkag1oc z#s!<Jv}~JVdAi98gx)B0M~Px7(JLitr9`WgD3ubOQX_yOpm5j`&a-#d?dekQQ<vx6 zFF0QxkDuDh?hNWKipq~8^;4wJ?r<w-87qFH-lsb1ikRIxlWkh$fq;~+n4|5dgmpX; zpM;&u5A9ZnIzhJKyZw#*6gwXKb6ZQDOE#MAgjIL_6uZ7I(IM)HPoivrKdG~+rn`QH zTQe|K2h1ZLiO-FY(X4i2QHXqC1n%<9+Xa@kYWFL|{%DNa_rgAo@P~8NWkpxkDWy*f zmj)uaW?8fOyt*ih!*-$B+>^aoqO|YJ{(r@t3v^u7dGBZ9myBhP!qX5`1~4E2N-c1V z#Z!Yuc!Z^k5}>6`EQ{E(<yP2=JQE8$3i28$@ySG8P6GFG*S!QM<#v&kHp{d()R5H3 z7$lKEq5`1~PGYA?0Cm#f&|EMWOZWHRd!L!nv0j9gcH5f&{`UL5_xZm40Q(Ky*VXOL z!Nt9S$J#M_P3G({xjKQ}KC)s>yaQbOl;ZJUJ-^4DOI_W@VfM6~*2Kn(NVNyp65ek1 zSZG^IeqYMW)7w6S^qT#We~1+4_8r@G)-m3yg@to0;l0iI$3=S5d;jZaC;H-%g{u$P zg^)@N#oS=jbnBt7J9jyL^-9bCU4psF+vop3G(&e62Hp9z!#&_c{7B!~boMTM*PDG` z?2bdrI-#Q5;YN_Tv*J%d`gz68AgWYnYvoSz0-^3{mpk!W<nA5kPU{Mc%({X;QXGW_ z&ALMKcHG$u=~rf50h)CMUB;{{<X`h7<!IIwpjlTiewle(;Y6{Q`)W|;t3b_@{y1|B zbm6?Fb&qKAL!|EHPxP>(m2c6<98H{N-cq?rDdNI;OyjWVX6L>P+G){oI43|~7og=P z#|_BqxE0c$6>i*|V*Sr&@%lEdVa#dFwUy3L*HNy~)HQ>dOA(^DpG8wsPEC71%hIcs zTgT0(q<95^=P3%OtI+$MucEHd{Q1hKf8Y7)A8a<w{HHoBp-#<E{2u2kKOBF)`fJ)& zp$d@9r!B3lI_|uy#kvZ9r}sP0)egl!AZei${3xA4HQjvWH@2wrc+`cbw~Sqpj!U8l z%~#FXt89nCMzEZ}5@!xft0o-(^RrZ>x0fIiUVi@4)Rmlg%KC_6d%T?=GYv6ct(w_< zwIn}Zal73ZFE=JXm_B|ybxOKxXDB(>JDB}|cQ7}B{a)j{U;n}JT}hUb{Y2xj##7o` zMYltZE7Y$UPiad=ZiJDMpHNQ|j+0c48Rvvo;#lLFpPs9rHBR+|QZfES``-ipxMeK) zQQf-sV2m_w719?4XgONrIy&#r<nD*cX$r5+oof71K&baR-sG-DjW(aMVcXia&0AWg z9dDYIp{QcB_d=~G%%C;S{qA(S-Oi0q`{NBoY1B;D$0|Q5g{QJFqpnQHJ88U`dVJ9Q zAysXDkslDA(z1fUexLE7)rAvvSVTAq?+(yq9bI0DFyjLn+HXkX(+V&*K8$mn_ZQTe z^%mzRBRlR{d<%<#)I!VeGH*n#K41y%+neb+%P-$tKMX|Z>|K`fmgl2Yzf(Nq+weQk zn*N4kvn~P6x`eEm{wBN-N0Jx$^-<yIYEUZJzZPOv7`e)@kd~h{t|8|%Yv8{-vo%{M zn7i@wUhh#`eq~i|p5CBO;VJmudz8Q^f2ircCyOH1oj*VOwBKL+wmH-Oa+UdbwBM)l zdyE0<VnuOMf0_Dw(hp~eO<w4dz(-%OxlT7fH@kE_>^wFSp887}%%N%*M<Gl%KXXFO zDi_`{T9^rs2B|R_H7<!F)OK{9Ty3rsW?d)s<o7?B&qUepoulT%D&alp-%U2|dnk9V zjjztdb>5G1A8LBgb}K2V^G3bY&=ao_q5hc95140ib;<o;jp-VLHJ7UiB?fCWe`Bh| z1G<%VY_LXbGN@_+FOP?Mo{99Fp^(R(uI#VxoAVrcF6ZG!SDmsh_`Zzn`)&2k-*)dG z?tXjz)>G31!`_xVMqVWpcP=wMTDz5V7nenP#St6XPZ5ptpC0|_)-%$hH${5?9(xj^ zMmF*{{G>;lw|+1^`mxk9OjQ*lyNv0lwk}T(JeVGx7y0}>7}TvT-cujmKlXF7MBpKF z|3S7jJ$hSeEg6#0Uj1ZmPmgvcPfL$(O`U<$NAAX{ezMm+VXT*@M>|rL*k}}dTtC?h z?W67450L=l=2SEk1Ubmnj|z)IqP%)_sqc<=%piKY*Y&Ip&?(O@5!nSY<7H<_)Em6t z`LFoac>{H01O9~|39lx~MHigZ#uX3yQuJu3P~HoFv-0`G;C|ItgZJ|W@0F$frn0$k zgOewj?TdGeDeh$XzA$~`@h}NZcRd@5)V{P&qhRcxiU?@OnDWedoZrOe|0q*C#1Zv5 zUd_4Ln<J0z-+yFrZ2r@vggbX1*LxH$0_@Yr#!^doi#_U^*I|p9+F@30iwh13<&u$# zbIGqaSovoDJ_=6cj@3ot1LQH0saZUzIt^WC%By^^rcu;j&21Lqg6yffNqL^DE$e=; zrd3v?rCsk4pO)U<_HJ^HO-`<D>tj?+-E`c+bhk(p_e~6stfc&q2R*NAmZ>oRk7N8} z6^>pG`sZS1+CTOF{F^avES4S{OE#JtnO#|_D<-ecRpjA)r;(J(=N}W)dT+ZzPI!mo z-Y9on7+*9B42-tkJId`R{giW&f0(GS|0#WY)h1LL<(XR+?|9p^f}$O7tEN+Drtc{W z@qD|QZF=+rk(vQ-<>mJA_il`gTr37Z%R6ol!<unJ9c{;U(-R`SX^2cs8@I2_Ngq3& z+R78ul>WJu&)fV_smZmrZk!kOuL)}N{nQ+7iBo%d_Ex_CDgPQDP5G0Hy1_wP8oUxd zKpUo^nI@K8aGlB{())-ESG92!!~FEy$0NO8gHFE_j(q-pG+fKh6??a~rnk3-l8fqR zZE4OH)nB&7nAvyKO<<AUFHk7y?eTD=w;LVLd6(3O-{{<$nMF5Eln+oo<J*0tr;6bH zCOp1$S_xq$4LaYDNf<A$Zz*Z;-WvHip7lVw_f<45b<d%do5;=s=yF+o6yoICi}c8+ zO`2a?GpoWgP3J2z?Es(oxn+|6XZ!lO6jIeuZ$Gz>{Gfcuo8=89!Zk(wmDH6FkRzUH zPcERbP+r`?vc0)})^;+>eF=pfAUFQ{^&h)UJXvlhdMW0;MLU>kfMCQ-7SmCWC+FI1 z$Gz=s=8^dw#EHeb$?f$Fc0BWL^2T%U{`g$i_nFzV@`h{M^*;Mb-y!p^@6bt<>%HU> zZmKEf3phDzmKy{Z`U{3~e+0-f(6#BEdU9H#A+;&CX7vH(&n*gaa_hukzu)68KDo!A zru!m!fc+kt@NBM~Y&H+Dj~mb4r++(M)C~@}o|e4EZ#T(#rkABI)c_F~`jcn)<HP(+ zrkjFJln*h^F}|68U2qTNA3A(SQ?&s9i-&72ZyR?HrM18Q<f6SS!Sx1nGArA>x#@e_ z-c8MS_jRm3K$*8Yg69Dek=nw21h+P-K{5;6sB+RUlsv=s1=bsdW5HC7mc~Juag_nx zVD*7(*RQ+!qIK7YHm8!&&FlS51fh$z=wImSC_1^GIe*-3-=g_1D*4<8Y8Jx#FzRxC zwIuWT<F}hx8w1~6V4wJsfcwe94Z3s5&4)Y5d#6=|Z<HUuBZJ{R;>>gDbo;%7?zCUi zC_lVO-WfgOoaMq>m7e>>+-~=i_w&2YlYD-h|6u$pg5kbTcYhWPZ<2h^)ZN*^@Fq#0 z`1wZp<><&@ekG?c%6I49fAx){R^!)-Z=Az!+TT?B%%}BFNK@@2ueLEw8h=0b6Y&wP zH-1@YO%?tToJ{qeXo(GI()g?2r+qX2r%L~H_EG$!CQY9i&Ze+e{ZDj`fjuu$6)UOV zGVoQ(k#Fe=EnG#5za@MSybQb^yac=eWUMM(0A31xf|N04ReY4dL_cE3tBTUu*8i!X z;+YM~e-?YZl>P*i`!L^Iis!r7EB>blT=X_j^kPRJ#+~T7MK+wH^UOF|dI-d-^hHqV zc*fzkL52TKNAGsn3M%}I31<oTub{%calXYLfF!MSKS&l!OHZ-x`O=eI!0^ZLQXGW_ z4Sx*1k=w~WjyYb9+z!m`=TBlTdm%v<cUo)`o{#_k?d*jMu-|R5NyuI>^Ny$dKLuUP z{~?P_LdFd9j;HK@4Gn9>yyFQr9fiIC`_n0O*$ZK{nEm{q+0RcoEV|a&3t?#$>q8!F z5-!HR&Djg-GsW!|n}io)f3LF_(zc4Vx(Azt7i0fjXD@_hRNQZ|Nq7<VzjXFOzSN3e zv)Cj&5Bp*&L+Ka7>M1U<*d%0+^`d3YUdS9+EWR+<B&6;ZiH{)vLiXqsH(P8HmSW%I z?1iwFig#LU5^}!4@IRv<e^QI8`8gkK230@Zpz2{acmdcCs$7qND!&l<P&q|Gl}9zG zd^dy2UpJ_H>;{$Ieo*N;0xJFi!qL9}C@A$q{v`MC`Ft-p`UV=8)W7g2`vylJa`b<5 z^kGNe?&x1Q`VL3G3N5)wv!j3O=uSt!?daW(4wE*yx3|jE2ONFO*?-W{Q5v_@*^btY z&{F3+y4}&`j`nYrtaS8{v)AXH;ydc-n4=fdIi%_wUG3<PI=a=-f9B|2j=s~;dmX*e z(MKFTn=sA3E*g=P8ieHA)v`cQ$A&&ar<bDc4c$)~r7HN7`*vr)%+b3XE%~?XOB}t@ z(R&zVq;BO;_P+YKqj$UTTO8f((zDsoQRjcFqpKM#rFQUV(&OwsM=y2sSD*``Gw)p% z(%%T!?+MU*1N6QC4JjVKHn6dC7oFXZYx({ycXnVd{kqNVEu2l*u&rhDdIP@m&Fj~1 zX<@_uhHX~2e3{WZ*YageI?Mx&vfI+q!XXBW)-Ku7#zQb0wh3jz$%Rer>?KdGU&A{w zA-74c&3bfu<<{5)v6qW;6!L5hCfh>ypLcLz+MReR@!vykvLe49Z^JgWU9Yo(llQx? zp_R!&%9oq?w7Qr6Tr-~WKD=)+*-0rp`MrZlM12aPTi~nd_Tl;A{H^owRVKkg#gIBq zO)EDsGl!K|%3~vwr@Cx4lT+EakSsBs+@uWuQq`_AE@m=Sc->5DZm1oXL=hUBhOsXP zo0+8Uz_0WQO6D_BIlhm1e=+^*vY6f%IMKjGrRL?d*p4p8zkH71VwqYoFz3U-jP$;S zftcnypFjiGcChwY#VDhmyGdUx-PIb3^ca7GwXL$N>#Hr{1;@Q0+??9}dhfMF`n7Jf zdm8#$8tXEvn+@Ysql~*BHd7mdk)OJRhX<CxON^!esaqjMdhX?ytD2PxZi606{b)pM zkVMr%Z-3;L@0Sn7yxNdAR2Qx-;;$r8ejxP^*|nrm%$AWK<J8wbCvX0J`mgWP&I%K# zZ~u1%Zoh`!PrRR*Kql(FmSI;EBY#EOxF<G!ES$Q+<|pnQsq0%dH}1Vt&h6Y?=bD({ zcl93nY;`>Ri+I)XnD>*8ACG7qzzxv%0}bA{cL4=?jr9CG2C>X)ZY8fphfL=|ej+<H z`?Je&*gg~)_kJ<*c}xoV-15|WD3!3qxe&*D(km#<FXN8djZ?ea=iX2jeufLgBk3C` zjDm<$4cWC4JLUPtN^oT5VG<qpx`ygAUHx^Lt6<*MyBoM0!k5G|UAza_5@KsgreSX) z91hn$8!I2I3lGp#>N71oVY!}YvWVkM<z#R0HOtA~ZIpN@d%16Pp((J;iozNqf%^!6 zd$6Chwzbc~-YF{(r{vS?w|DWmN0DD}&wZTgiS&GlXt-27b-ixB5BGD0zRI5G1y<B~ zpR?s}-?uPVuF>EkJufR|9~oaBG}Q}z-eun99$a!;Tl%wciu$h|aXno0|A8LkMvObi z0nbcyV}ivxmB?orGM`-$%QTh62KiiK;yzT_Z=%cR$Lps#>MXYx=BhO?rJWHfwIo zn_G3T<8bzr&eLOqH#MplZEkKVsyviEzpxxlLP_<wQZze>a<Y;_zGpy=dV;&hRaW%k zA^JooIE<hn*He4dQ{BiBiG5c!WyTL(QpgxV-g`%JQJZNgYshphtvpoNzPy9VU)=lG zg6={F7l#kVtB!aF$X}^SB*({&>?~5SgS95ZJdrr7w_DMB2I?}kOY6Ma&PdM}F-&B- zhAZDR1rhTGV(HQ2TTA%;K%_@z*>iN?HuSqm2A|Or$t(CBjr3@cb2+B7d=f*X7ZFw0 zpA?KDVnAn0>oUC$D<V6(Fpj~|99DD94KlVovhf11$MI?t<;peFFvLSg9s<%#uUevE z_|_INuqg6W5xI?H%!Q0cX!nI;L=%kbEH<WKU&(&2AZFxsV<Rp6<jYh2<<>^iK*a35 z*=P2~;NJS8tdC^op*?$S$eWiKTUi3Hyoh&g!wK(}qR69*vu7syQg7wOIMm+k$fK*@ za_!4L7?i8O|BCpm+$-VnTE(cDeliqhPHv|aw3XZ0X-{*L<XVxQZRngd4lzfw1TOK+ zEX`Kur?)qTm?po|jgwIF!@dww^VCmAc3@Utb<Buvei#(p45oBH``s5?G2)0ubf<kW zuYCqBt~yhh(-O$quFupkWbtI~ZGKDh4i_{r)2&DD%X|MqUV9JP!C7<}dPB{M%qj+c zJ)FZ>dTUX9XEHpNy*-gxRg}19)rw>!!NXcFWtX|@ephl`b$F=qO})XK2>-L4-@fqC zv7L=$iLs%?*fa99^*5O-5mXnA4R}}5C<u2I;kM&qRf&^QBat-Rcq^z0jBoyU9V=L$ zNDAPe0btL5&!3ZgBnpupeGF>(@mC2nxeB}nqObxllXEY%*9a%s+t5npL-m<0RN$M* zTLbaWq&_tdOfHH`eK$7t!${A!aTL#7R-Z}jEgY}75k7TxLG!R96AtyHNn35ziQ34@ z*O^*hjC=n^BP&8gwomIp)3a%6$@www>DuxWv9YH${?>ZGHj^(BaQgy=LMs1N+`Ftk zytatHl7{drOvo?RmcN=jJ(2Djq8)c?tU_vLrdn16d+VwOl0~tBxf;^@G3XCYr@`@o z8j-N)Q1U!qHpPa5IGf<o*Mw56^bXsBsHWOfG+lmNf6vV)%*iL}`c`)`E0i%SsO>W= zT%O<JG1%aBEv@Ohc8Lj(k$i<Z-5j$(RACge!NXW-B9WEK%NCU#g0r8l^;(!td%Fo+ zs&25h(_-(CF_2Mje_pHZE>+O8&VwvGypgP`%XHZl37Vya@i8=)$+w1GO$o-%z8pQW zns$hJBK>-IW}em{pMMIMvCQpl^r(n+lzxYW_A(s0iLwtD+I~@asJH)d1)Th&y3FlM z>oTcM*Z&snJcakY^e)^`>W$1<wVAH6Soy!iycZiXsio_8c?WOqTNbSkvk#zf1<Ihj zKvU{5rqrKg5qN9I&E&Ia1G8vDC$Bg#(T{1HjaE;OkxVV2IxbFR7IasgmpZrm?r_H2 zpE}cT00~o=`gF<O!04CmstzTuRoT^fT}6o3qlwIw-uG-7WlR-m5noVSiM@(Lf7E?- z_Cp0$equqaX*iW*+yrh1mQTc1+rh;I?azl#P#;>{j$8F)zh?%3liH_|J(|s&YUXWz zGhdtDUKUDzDABjQ(}a!W(KZA$wjsox(0q=B|9Em1X`(19*?{Cbwi|(v^4d)2x2tGo zKfC{};rRSQiG4@Qr&29jlAM~hw>?DHZEo2T-LyFwUB5BOQ_lQP`m)T9&71FvCO1dh zx%wfxw)M`AJJ%*TCg@wc^U`*ccxqEiXL}3w>vZ^9l29GL4iQ>Q$EG{m>~ZR=b8khv zbJ}Y+cXXuMlOg})h7NP{$f`ShZE9iCb48b9t?zkX9{P&^b?eKsrjdtUrA8p-yPrhf z_)5^-G~uqbq2|MNa<wIx7p8Zn?!FX^f0A_G7j!pGI+st9&S1HIIascN`^$p)(if{y zfpYbYj}qQgazpVirjpx<k2973b|RWcuI0x+o&D}<;+OqY@mEh1|L$q>ukxEH|HJrW z-l%vCECc@@L>^Efxdn2Aic3IL#kWWw|0{Oza|w7BD1W+zeHNmFCyldE#hEllnTJ7z z_YRf{?}woL={yWUR(u##cysuGEW-c0@QLN`6;S>pf0Muaow**!flpVecgf|h6`T*< z2=c#l7C%wU_Ykk**+jVKfIoA17|-(eJcyIhzW`AcdZSnQd<?t@^gx+k?XZ<ajnZ4Z z(E5L~*rxAwQ0coDl>d$3h2Shu@k_3t_&yFQeYb(gTPjvLydJy&`f`vYmS%}Z?)31j z+`Zs%FSrEyVTbpU4%vGk@|ubrj_!2nTkYuE9IgV-#~o=Ezs|@LiLy8f4K@iWr$zOk z?1f~ZxY1&h5Va`DkL-m6Y2=BZktb4*iym_JLRgT+4_j;!o`un~&Rz(Mvv}BIlW;Ni zzjOA&66}vzY!XV|buN*Z^n<W+i=!5sgpz~RJA0wzefrD>n}o0&&HZ2|{m`&#&HZ4Y zxgU)BUGxy<vKO9?{lgZUgs@J@k}apGG|<)jV6~_jRQ|d_<zqLf^!9^F*AY<h%dz57 zdKKP2%q3sbxFt2jpXjADPN^686WvXsq<+Gm<ZC{^_=uxlpc15h$)D`saP(`AwkZ#B z=d`t-YjQ%ojxKey%3c2Bj#jxFd7Ptl^PcEVN2}k9e%R5cI(pdA=QvuGEp>sT%N%{F zqZ=KqbF3zOM_=vehaG*RqlX=Rv!e}DnebI?k}pMF{^d+`wJSgB!rIf>q|WD0_PZQ? zsiSun$u`7&+Sc9>{9NtRcHH1@UQ_?RHTOJ^r*8|;e;%OM1?am1^xXk^XMq0i0s5-} z`fmdCw*vJ44bYI1E|~*f_BhPCjUBAKWVoRv$xROy*EkI)(X4nznA&8WAe^xBG82q1 z(8^2QHg0lfXPqW^cI^s6cUB*3G2%8~3dX8%Z7UKwVLO+8Nid|lswB6w^1L<cNoA{2 z!x3Gr{EW73^X9)a2XZI7Z{iOpFjI*d`PX|o-@E*Z{Q2Gu+qQOWOiq8^ZV&A^6jf|y z%$f2&igwpOwce5PX*Fy8sUJzr^!(6cu74>!`E6$KzD5DOM>&`uPP6=?zENz^|8>Kp zPfmNj*O&YI`7B{vV7LmcU{bg|7fN0;og7U5rJ7y2X<Soy_cMtwk4lY8q6p@L&{6Cw zz<wqH)l)foipZD))2eZNCioC<!HR&vYUE(o6Q1N?cH{d}QR%KW7!((w<tWO|{RAKB z(Nc}4SH!zWeUR@;O%0MvMS4!4!JLi6rF@>Y%A7Cu=5cO*EH_oF%Oaoiq~o=l)h~*} zo4KzW8ZKXIq0hZec>A+OhRE;{9{%S9+~LgaW#!+CSG|ES<|Xe1UVsgA(q%N^y=+nu z3qPPx>cXo_V&y+ew$+6X6S?Dkiz#`3_7eqs;2d{4dy~(_Po7F*#`#HJN(y712^h9a zC!BiZY$v&z9nZADyb@;`VM6Xp+%IqKHeU?;D4y94pU3h?%x>l_@NZ!0Y5YxZhflzx zGTX~4`$seY`wn3&t`OU&P2b;%!SoPzQfT{)#%T9CZDz|I@ysgn$@))Rl-WxL<4cO# z(LY|q&tohjL$STmnldBY>XSd`Imh7MIWJ%c<v2U`1c~9nn_cIbRh$t~^1W4MsaL(s z{R9p>bw$F<?2;B{Xm&WaAH9$dM*GtX@7=fxCC?;IS6SYE6G!^(vE*OGB=B@{(#n3Z zyZ%(dqI!wsZaK`uw<(x|Kh2&dIR+1m^IYyv>%HHY%<)9Ff<_<&C+DWlhVUj^bNOf* z%3t?mN_{<0dF~##e0pOZFRh=jP5&&vS^J_MI>1`GDYjzwxCSkbRZjj12Wh7kMX_so zm8wXuUVJRz?a-)3q8K&wb-^1PogL}@4$gS%R^?gQpY2$`tLk8+_YlS540)xf6j3MA z><8qA&H|6g2v79VA&UwpO7XrABgrsTHK>}RNgqSV^He^ls_&;x9k~mdmw#S@$<~8I za~PypV%>jp`|ZgOUGf1_tL6V8uJqloeUwAj1(ioFwnjdNIlTKwZy&+LGA4cNcOjGg zcrc74uRV|R{|-Ks(Kqrw@wa%AjLvg;bUDoRcCz;?6M&K0RUPmSq;}ZHZ>_w^l#iIH zq%t*+_l@qLzE4WqIpfmS`N^t-sivG*ERd!K3cpW9lbv6eF&ggx3`CWC+_M5WN<H~8 z=fCPes#`-JHJ!>03fT)x?fA?)BSxg9jbq-OJj@gfY7%bQwr~7qpBJNV0zMyYneoW7 zU&ZU|fY)b^fNg|{7fQkLV;o<cJB78S+2?LDjwWl7#87ngnXhz{UCCxnp}#NXv`}Yu zfzf%Z5Rm>L5q>FA{)4K4Ef;u4<2#py$I{0ASWO8pv5w{#mu3)&?@Yal2<=tkd7K7h zTd9OckG|x3XgCsoGW*;l`9ZE#=ZWuVGH=FKC>}($N91Ui_dTihc<%x8N@LLrk=h~7 z5}D!J#6Q9Kl<;mJuJeAUa<Ubm2LCi^L+<N}E7B{8hl(uH`%R<MwCE?pOpEs#<0(q> z)4l+W$%jgTbLx8NSn}hDtClipl*RgP8LMAAa^t}4GKSXeOY7FYh2w&AK}YH{4a3GC zOztJHxVz3%McmkZZFwklx@QYswX&82RI5sm1m^@&x!G#Hd3WsA#ExGdB+Whj$?`~f zZzByVQr_2W;J$VPtGgrRExRJ+ckPapr}jk3yZY-rq+a4P_f`W5uWyBc`<4nauog5U z%tFw@i=DkuV^@15VfV=#9ISnDDGs;*t3>YlZnqhMzn-|J;b`iV#Ez$wAP%ya3<lft zpWJF2vuP%3%c~3r+i%d<nFf88`q|b>)2vG;Zq~+sauGG)cUR<T_7tH%9_Hrr#+ZL} z%;%OzdUlXTKhjPUX-B+j`yHvGN*-<7@`>a+6Zv@)L|!o6-C$Vlf9yAjvq;UpTzAkK zW)6wUa=F#^PELUO&6`!j9dU2VC&r!pESSFxUq7}_g98N=>3J}p)JX4_A!tk{b>~iy zI>pNRW=osWQZRuyQ<Gps!POz|9-CZ3U>f%1B7s5dP3`JPY;7dYvEo8`>5N1IK}Np2 zM=2U$<c~iEHKY4uw8mG?k5Pb9?Wz(fpMN|Jzj;B>eVu)GA{g%9*-$49H|YKV%LSum zn2rO%@FzJpwQ3S~!T3jm?xrb+{}XhdnD~8@4MBI4oJ%^Xye7%dGr{njJKtFKITgRW z1pA5j-M;@lXr}TnzW9{(_@65L#%b(B)1+VNn@-*^)j1#epDKMS--+zCRe`KmXfuLP ze7#G+IUwJ=rElR+<}ZVM%T{!PSXGGMg{rs_OS%6D$oEX?hrx@XmpJ^8L*40eA?E*% zXIOBhkAP*+I~^_{GMrRo`GKEW@enBbRRUG`FN5^&(*2J9CI}C&;vrCc`3Jy@K*<Zv z2dhB(LdCD}B>DkR^lFE5o%!9wEAv}G<>zln+&SP4AW5tEe~$hocp3DOd6v(wd#shd zK2Yxd5|sb_MI;jZ26#5u3H}jVg)f_L-Jc1{{fpod@H@`@E6)5u_$wD<elHjWzv$>R zcnS1YM{jc20$zamN>J&k1Qovc|0HR`^F-v&@c(6Bk2|6^{C{v9|6le=><Mz*c_P9$ z{D0X$ggyKa!~X{j|DSX$deOx%EatzK2Vj#>{PB04y>Owd2o!7*iod=DRQN(zSjA-) zn}n3>BJB~8y%5$+vGyE;O+xY8KjZ9$CD?acY!aT1z4-nn{h;Iv;`@V!|GyafXPvze z7Ls`%1T^o1z~V7nHI-wO^rIG4^Mlhx&7kt%4Jx0zLFK0(RJxCVM!tY!r6UR|zG_h6 zO70;!fIokUwPWN01S<7mM=!PQl{fJ$AK&MvX_JvYVSh%YN!{S+IaH2RjiXO<^h#*) z;iHb$cp!R(qy2L%t&YCa+3#|+e~zW!(Vuem{<)dE9qpf++2QDF8iSPQ=ypec$<g;a z`hPmQ-_c)l^lOf$8ymj<Q5vrlZNSjO^gAia*2)1KeSxDj2uWSapX36=j=sXt)h@gn z937>xNZrhz-23WQGzFx&pSqB43D|E9&|e79|0_U$JwSgmK>uTa9thAs3edj@&?5o* zKLYge0Ie;0h51_;pw9@<co$>d${DswYu*5n#vX++x|9_-w5Rkih>p-C+u0{_mmxl# zcW2n+I!E)#Z7m&}rE%hb8NCUzX3eL^pTBWZi|KCol$64`X>_S_q!U`$%dYcck3u1a ogco_S1v+!A$7KXB8_k0!Xl#zq7+FT}yw4v_Y~i2lQAMHtKasBJ00000 diff --git a/lib/osx/x64/libdiscord_game_sdk.dylib b/lib/osx/x64/libdiscord_game_sdk.dylib new file mode 100644 index 0000000000000000000000000000000000000000..3402426b8de37b08289b1fa54f1324631357c458 GIT binary patch literal 4251528 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∾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 y99H(lsayrFDJAW|4If0iQlk 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%0DG2YuC(Vg5LkZhl-<L0L=J?LU>d-x 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 m} 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 Y%W>Bg81UWu+Jx=G!w1^cr?Eq2AMPMxo8l29B zy*zh58PYIBzg>7N)(@Dcpiz<wiJ{+@&8GbIJ>L$udP9T*$P6^Q7vq2Eh9Il$z&?(X z8xPTttDGmb++-aBu_-#JZTiS0(Xt>k4eZNHekGq6XGKMXf>3MJ4$Ry$f7$fnL9i4> zHO$S}N7{5AyC7Pahkp7V>nYr;4k8Gtd78B)kE-?;>IfB{!q>tU?a2h19hpr0^JOwg zTt0*p_L?gH@`lR~ZXLsY1<pa2v%5fH;HuqsU^?1WEoN%Tt0SA)Ln3}@cR{Ejf8&7~ z^f@#<t4U3f!+++RIq=00SFP=jJs;5SiXiLk7vWlGhJ3)e$dBA8>i9~|VHhT#a1sA< z^0&Spy*m<`$BdkiUgyFC^25=PZ0q=+q1<Mp?Tpw^X9k;eZo(Ptauv)O%vbV}%1q5- z0LK_1@&HK!ITm|MQT9XSBzBoHAaRxhP;;EK-FPpz{MYTa=jOs86g5r|QNx||Znmd3 zw}{sNA&;~t%aQT1$H<gq$3m2nY0>@mrQbZ?9vL6onbV%#5~>oOReex-uESoI{hzJn z-~i~dLrtr#{{=ZO6Abuy{9lUyAHn}#JX5|3ZcWqw9WeR?_szJi6QtBMfB#9Tz7j6F zAeWRKo8^xTNeexXpS5{g@i$3dKXVTa?<c0$SS{ODm*s6O{^qRWcZ<skeq2n#hA&1u z_5>zo)>v)ZZbrPm9w{@=YFk{E_oI{cr^Q(7CWU*{SckXWZl`H$r}3o!$w|L$aSNn} z-av`8IOW#wvs?T4o4161Z>yXI{oFbi?e!;Lme#Wxv`Ui^C0va(d4EGkd_5^GbP`rg z2;iwe94A{K!9&u*^MyZf{R7sk=ly{t&_}a8OQ3rfJ4>J#dPAN#A8Qra>@zycP$YBg zwq5I2ckA(5^E1>zH~OV5c`ZFDkUUW}2CD+uc*6|DxFpn?V>bMLl;yDgaz0S*%bU4X z2AQ5;iKW&&YTrc_cyVgLxDv}2tXfOKOpB@taT@&4a6g$^ZU2A6F~Z0Ke>^1<@g$ z)E3{$u0^3>%k+JRS3M^c+AvuH7E}bx38}t?WlV*`M51Fb+sXtKFbDV@eS<lNIw<h- zE@R8FA?2H0ee2nfs?%ZfYyt8a)D>bo6RM{xc?juL<X-JJ&g5DS$+17~_YM6-!|6P0 z%&YV%SGcG$`SxW9!17UZ+?T>cIT(Vrqo~5({qfx?qntH0N_KHJ59L!UVIPV*R4^jB zrstEpa0a4EC6~$*(O+P>VGP4^*LGHFYgBM9OIBCI(>0@m##?vwBe4B}ulXf8Ep3;n zrPYwaR=d(z+CIZ<=ceJiG$;btVII)~U#~`qN>eglZBINawZTCLBn6$R;N>YTSuoGR z2dI!Je@064MERr1E6CwTF|j^^)VY6ieqSW9I^7SG98`8yQp*sWiA6k!IPY0ZLu!81 zLEGQl<t`S(gFASZx|mki4dX=U$`@5BXKsBhUtjZ2C7<-Hj+MXTe@F2Pd7HBqT%^!@ z6K^+G>H?g-G%rtn1MCL@>#=$5EAEF#cwY7g-}3qHJe5C!-)#?=w;jgQ@X0%UcdCv5 zX?5aloC=aIsH8w#oU`aF^OLvYu-xi=V?35*P;~ypG1dYCTOc_+Hpe$U4@<gFx9?o% zH}li-jiJ~>|6wfTnNHEchxy)|9_g|(+|!j8c$W3NvA*%i{8kITS*!(X(#Ar`RQO#L z*l?s9GSqi=sU7QEvdXux8b?0iRA-&m4JsUq457vX=qBybc0wiIYo)#qB^EsveqJv9 zmLsTuv)(44Uxj|n#fmpKJ)B{EI@^aao0}&1sLd4t9@|q2E|~Xa7vC%3%87fc5}*0n zi0cappuqp0ghiXE<R>2`wNvO?Lg_ppoCaY;5Zt^SVreqP(p2Z5dqL=JzXC%s%a7+z z7Q!_BBd+R8;qcnlONuAgLfAw6su>S*sQM%CK@+Rs|Gl+P&^%X$0T&|2lHVxJVrU@V zJ*XXk!ljdkw?vvaJ~lSESQr||kgucyn^pmH9CnRr{WEL1fD4%a5R;JL3OFd*q3mCj z*Bx%r%pBGME2Ra4Ga-YvONZ*h6{K)PBq{U@TIM$jGq?MVBYDfi9IN;c3V`4QCXd>j z4Hf_;r<@$+hG{c=)gnZ#F_(Y%Dv-I$7ILc*)hzTBqfBHdnKei0`_HU-_|}}_shOc9 z-|W0Mcxoklr9U_zGpX=6-e$jxW(_6Rq0LfB$@6j`GK{^=yb4@0&cWqSZ2twNMBxE8 zG^)(E@J^Wlg1g%Ig7kvykF3IaWUPL-1e<NM!Td&}5B>TD?}G~VDOfR$@au)|qX#Z{ zUrs-RI>3FP6&Pne7S4fINR6onN0pGI71Ff@!&iP&7RuZNv!)D8A?f~pt9*BkL~}y# z1NI&~oI2FT!ywd)+vahQfY6{+<;&LtNNO(JHN^gAlzg)){u@o7LyT&A^RczT33$W1 zt=x_<JHl2|=h3is#(sb}EF7B?TrTK?i*nR4pg#*m8PeJQU#L-5F6i~`T8daNsgu4r zOW8BPBaOH8qOvIQWqqs{ln*m|orclU71>!EwGK(Sz6B+HBnPwIXg0wS_*do4NeYqs z4KrTvL;g6-c&Lvco*LIRtpu*C0oMu}t{^?8X5EJCoE9O@?Zb=``{R51C~GRN&hjdd zd$Z7sOkk?qfw3xU7%Buf?I+jf;X87Rm-L~NNkaGU$R{~`?XchysajHDCTl4L5y7RP zw^My7;L$xch^y;^ct544D19CB-croYG?gnLLwuoFdB_x#w|ECK<W30mViNnyzQRGb zo#`l-`^Nk%)#ow=yT`mCg~4!=r@8e}tMSC>hj^kFfuuM!1tXc0JxINCu#LKhK!|wA zLFDQuLV>T86Cd)ysJmB<y4`JnvT|RLwmgHuqQ?%_XQ_eL3yZR)oaa&NG^ya!UofJ? zIXqlf{PO?UdlT@gs&nB#kp!bccTm7c9fIZBL~TuQC@F&p<iI{~j!*@p)>NuB(mE93 z9N-fp!Q^N*yW4VaFTHfIjjgvgwzU_%QlfQ8P)u-)*48*wabzD4DoTamK>ok?UHc3P z;MM#6hv)e}pO0jpz4n^dyWV-d3tmN`#&#xQbALj_TNt7Z<SsF}$FmXPBb{r<Q>=lm zUpt;M4eKc|Uix4=%}?m;ITf_pD0=}1xv+QP37kV$sIRd$-6)-bPQ&j#TpF%=$hv-p zDgf&mX{cHox`65f+f~3YDafUc1MK;tnasuoAZgWxVlNi%Nyteq_vBEiH~Cy+N+}|^ z`u(Nk@PBeMvTA}~K;l|u^SsGzCex!Alc_>7T}`IcB@{o(eEF$-(c<UJmvGKno%IWZ z;cQh?ELHootW3*gCrN=4sv2j$T$TAUj4y;q$s(K7&&gT{4N85FKXwr0ZQeToHP<(F zrCUkO(ywf&d-lSz1=()mw;Y+}8!l-q2rNwMTe-!~&Us<GtoOf2%@kK;@$TESa$LIN z@8nc`rc{hQl=e-yGFfbQ-dg|EH${%>_iw$mB<~J3$xOoR?BQ9$^B$gcJm2f<@4sem ze}4u4X7TSs-q-L<^M}Ik>3KVwxNz>-%00mM18X)Mjli2Y;z&4<hMug62%#ec1me=* zaJp5Dr2k;mP{cxC>sr$CmQ4s3{oaAON%R*9Rkm(m(**vk;vOn4r3by=K^aH!cRh%{ zRlmE9pYzca-0$$MO#nc-jwE~TU*x;p{>~Fb+}E%Oe>Sk%3b^Z76XVz?aI5s4{n-_2 zWlN#K5ZB_h@=H{y*YiWey*T^`=crPTtK6F9Pu&O1_|pEx`|DFb=fK={DS#}O)u(;| zL3~jlyQ(f#a-=L-|NZr;E2Oklo2yT~@$5jK`o<Buv3|8Yy|EtuX|8fFt#1>3z1~;6 z_`nbazG`R%qS|?O41_4b2B2xUYJsQ_eF36~TA`sTQ%A1V{U_&N<@51;HUP$Z2j&+A zFv2k8CEw+f(qjoLq1Nhy!dEG4XMYNO>36sBb3W4W_0e4lUotMZx=<UPgV$is?)K-5 z5oHq?Qg~>wM$yrhh&Qf!rW<>$Sah}4O!wN?0zLjAQ}*=Fbnksl83_@`-h;iG>E894 z!iQ+wB&xJZ(f;2iqw{}?S3s2ELn%0Cp9N7*+7b|5#SaD17JlS{=okgjTItdQW_}J1 zpPzGL+;%B206vR>&&5JERJ)=ODtS`FvB&JE?{AdS1L1S~qyRocT#<-Uv_F=H&#(O3 z0pL^Z-=fzC=X}w2aakh@qBuFLN_*Zmp8h~>H-IWfuhB;d3nly?Jr+~=Ab;zo9Sg$F zC)8Ih)2q6hs249vos>0XPo%F|mJxeX$mD%OVHqYnR85*JPwXfK=T=%vwlZkNmti-G z>J2;i!SSW?!k+@q`u%g9S1=dsq~ZA#6k^z?xWv#2;ldj-!mZZ;soU)ze~d!(T7~HU zkj)GHNtnG^Ucsugg(_y{Sf@^%h+V&Pd*M`g<cSK}YT^)kmDo4V6#K?`=XkeH6et%n zd}_$Y0`(IO0}9m3ZEV6RSqagrCV$VL0pEY73HNFRx;v7@86!(`P(?><{7m;>_47>k zhZB|k?h46<$O9;3->y&ZTi(G<p>~WZ<X}nQ3qx`x3(7PF9;U&63uY?$Pc$LR7<C(1 zt_GQ?Jk75pV*mZOhB^+m|IB(GeE)sk^$gCR<j@DPw=KwF+di+o?Xs$1|7|JM{kQ7s z^!~g3$1rAM58Cc;zS8hUBJ_##{E4r!Zdje)g5k<;hynVEIUI+IxQ9pFbK!EA6i3_> zA~-xm9JRl7`c=Eo3Joi+x321_x88la-kOlN8C6eDy%l?^zSes7)k@NrJze=ieJJsI zyh`^E-yT5~v=#D^_`58iH+Kx^=fUF0*yq#L{h*gz&q)ohQ84xx%BOoDvo>wD^Ph^0 zeU7s(L!!>Z;qoV<?sa|Psy$ZIZ>T8bT`{gdH1>^I-mnMI9XwJLa(09#9u{wkI31Bd zk>uGssX&@3D57U@0kKXx)1xV9xAd*IzUJ=Yyn57Rc!C{TZ{7EP({8Jt11^R1=-x+R z;GfIib!TIJ(?{0wp?3d_;ye3mT1MtgZJC>ocg*Y(oXGmx*(`Y}K~lMnEMUgaVu}9S z?_c^aP^AI!z*Jui{xV8x4)M%HNqsJJK2=Qa!up9RH0rz=9=qG_e5Y#HRO<&L(X(Ck z1ar?kPsr<L?io&uHF%a8T=oKB#I9)LOc3m2v?GGh#d(?NS_UJl(MTU<(0?KSW}!x3 zpx3j#*c4nmx{9M?-%K}=t(94zxqBZ(Qy0l+F1LxkF6=xWF30n+fyL;vZg`Gby=nbp zdj-x4`lAygn@i$9M9H!lAZlojIIRDwd5!+9KLhUQCB2^4$e-xi2=VG72-t)c+yJB3 zCVesjWOt<87gb=ytKJzMyG=S)fJQO1g1wvtk_27AzIs%6x_&R{`t8#7>yH)C^JlG1 zALj3o)$0cf#(QK1r?Y}BBlBxo<`%Jl=dghDf(1N8O(?lLlO??VDp|sZ{a>%8|5^H@ z{8p(kYUmxlXlBkY5|hl>J<_|cGs`<sUjEacMJ<`-Kl5L<$982h$WDOoNYd5a)~4Nd z{yv<i)*L&&`Gpn7GDnA)N@7Fhd#XSNNiM!OzLp<u!mA)JUO<rWX}e#rt@|Gh=ST1} z=zO=z_RiU9kL|2&nKZt(<=PR&;eNTftMg4%tv#Y--NO}tvGIL?YiWiH07rByx|WOc zmOU<JBYYxIoH3@($k@Ho<->z9jeS7IWaNqby|k41DAvva<9UMdG)@|yXSFPVgAaz( z4KbA=ZDmO8J!{i@$*=P@S3U~PXa4_dewkWa7a~rlAAk5$C%812;A&#x{-62%%<!8t zzYqMM`Tf5iKV;|kgD3vKo?oG#@GBn)WBz5(1P-Z1OQ#D0-&<h)xC60HBAmkv?F{dE z{p#zI{k-^pT&aelz(6#ulr&h%X(C{da~f7>J;7y+Je-8s^QzTI;Bvlo+V}i;T=-w) ze{oGJf69I;34emm(IFxcTlZ~kdhhIT*F&JO{_tOR=rLJo*=m%ajVO}B-t_)(e%F#~ z<nYFx-tbsb@OmRGbU1&@lJ7>rnis+A_HfswaQ3m&R2v$LMe_Ti7(rm#cMLhloAics zHCnzs+_bMKYE8vAwCjEu8p<gw2M_skU;ranVX=^*OInHFhZ!YO|Ix<kb<Z`-fg@J2 z^UPr(^!S4qm%tjP2Ejj*J@sUUehI(0p#a|z?)}_%n04b#(zZ8Tub8@I<Q;bYBmJ-5 z9bbCslGCkwmR$6`@1B1Cki#B{UrzIv+3oSGuK2+vmtXo_`}9NYyY<&a--+3$&mKak zLGI$&P*B#Ls<!X`&LxY!cj>ZAue49M?0YV~^3tnfRAiri{!p8$N;l-Ej)mU9sl^I! zQl8@3j>&S66T5m|N5LTy!mx8&QRUNObj^#g9`EP;b8~**8T|em&$Rwb?R}1%m+vH0 zaByCJ)9*(^?HU=X@z>Pvz4BcksV@0%1HT9Hio*`thO^ajDOOJJ*be$5C#R2$c$e8w z{&xSWGgZh+CCMee39%E^AnKjbA=-#h;lR@=O{9}oeMMZR0=Zq>rl@UPmYJu1;rvUe z6~mA=5r0RIbqEid_OD9*NEopJ{#~Z=FXlF$<7U-&s=9d%<X@HlDV8yckJUniDIkgi zO?c>q-HS@?@{bIEFkrmrjLnW0ks6U5pBb@yF+DnFb7c{g6zLxH8)!QDEP2eW^F$El zS_PHqHcLTfY+l%1ULmuE^ZKeXqmG$DDUxlHt>&LfX?In%eo8e^Ly369S&2riwhOzq zI2qwMW9BuvmrhDu*x+MFrE3rFX?pvVJ^eL}tEz{@LyXe?^oYnEWTqlpk2e{dlH1NL ze9mnc$M=V|LLv~agEg0;zFf&7jyz}FWDY|xonOi>xW<$9`%aMg8L-}PbG`ls(xq&l zC&EWF!wu}wXrJ-V8yg~+>&oJ${{Glu>MM2@ZK(SY9pQuDLw+gWKB&Cy-dF-|RiDD) z_UbNqsY`Ay<!|7Rxu1XK#*>XrJYx?(Z%*UcL*mnQkKpS5sgb2uP?*Um8ZeK6Z&31E zd^G4Qb4Fh(V-CMT_obL$7K~%(4~@UIj2Nel84PQn_hPM?pKLpI$&br()kkT6ke%xH z0?-{UCk*iaAXkq62NCVvbINRIb{Wr7o~1lXc$V-i=2?vUk?qcB$B4*)WO7aguM_xE zLDB@?tNC4RyTc=`2=rYu<}d_#E(o5Bg6CrMym75O`OogUalQEkj-PGwZy`yI>7=e1 zE99r`{7CdId})<e{*%r(%8vp10HTccLL0-*2Xb!9y{-Z;!V1ZyI?Rt1G#lE`yG%e$ zMvujLHMF6ovEk%AtNDKN5ecO=;$GS=1{aJYI9TA#<oCTrsAf&TO15zVA25Vf@Q9BO zJAc*aAjcF2S5*i;TU5ppBVCGoSeX0aKUXt3-o|RF!AlhF;mmC@twIwyb{BCrN}aZ| zPMW3%(opdIVL6s(`sANX;OKByqLqRSh`}b>ctq5ZN?eQ*CDe<ixD63?1I|Rn^6F@7 zsL4&;>!fY)NagOzt^PO9mUsyAAwM1g-BfdkvzjOF9n+bp85KM$c$V=j<5|kHlxGP~ zaOVsZShGQ_=I|$hdZky%HH@2YfQR~Kkp=itSE{gkekp@o1Q7#S0cCo>i2yzr3Shfg z1TWjs)AE$A(C&LosZ33&J~rwQxwu^4?vud;vtxU~(BARirw3+O7?pM&BHan$c`9mG zUYH7522NE<U0DppbT-m|V4^%Pc5&GC1UxyXxO6^jQ`phhu)9vd(L0vFCa)D(e~OGb zxp6P1oiEWO@!!Xw$sAJ@o){`xayWmBtsA~Qgb!>#6M5A?|0F>W+K_x-HbyQCzw_v9 z7ZY*jAbD=O(@lQ9b^S|VE&KAF3&KO<cGDC>N$7E}iPKACTncEjb;Q99%ru7`Dwb>P zt?nFvTrApi*s5aDp2K=bu#Pz_1{Q614l9Am(yeA00GOt|I3UJbx%Y!LOkPGGnyxF( zkDs6|31;Y;E_!$LMl#wN(#LxlS=9NM%~k}Hg$Y#w$^WMba*|6SS$)FsM<cQTRX2-s zDkfqDb=MOZmrEYbM32wy<+}9V&FYw#W^>biQDR39HQp`IRmt`84ePlx!+>=F<o6WI z40-p-f{Icg*#Zed&us!vu$Kei@E1(fE|k)?&;;8w7?&6qlIFJ&7XoJjRqX_kDMZPe zzKCZUlNe%B39_Kxnw)aigWKwm$fUxmy5|ANstaz5;;LqVEHk~$!_ofoCZY7#Tg@@1 zG&7Qo3e$RPm*_xn8q{+h>HVC!3O1N%yx`KKI)s%-!+Z08iN)UAD4Y83!<aG1A}A#J z4`$DR_C=tOMn1@YfTBV<+=;CRVDuH(H&8yZ+U|U{U`_3alP9t2a#0O1jt^OEL{Ye@ zp$OEOPqhNx0n@SKOMthDrj)#%PZG?G5xyLt({J1e78H|P#)qj|upl`Wz}qY=<zE@@ z0-zt9>=uE;70&@Z8<an)pteBq)9(+bsic_stWC9J%Idl5nGxG=?HJZ1A;3k{A@sNW z0m2pNB3yY$Iw_|Z=vh-c=Cqc?Fo1@TLbxm~BfDk^ki23!4VkVL3KFz7X*>1Y|5s7d za?W^-q!96HN1S49x^M*DxY=~$!Vz@iW<xM896`O25p=^dX#QsDMvYtKc!Ixb*4PCt z-oRdXk|Wa#6o1+a-7}zDdf`bk^x_<PF@3zNIG#S8zD9>b+Sh`(=_12%#2VTtTw^+h zj`Los0x~`aQ0?Jq^8`oCujbid$h+W(`DHK<fIQRh;2EQG8+p)$(w_-DJ9tvhJRnu_ zN}l)z<`FtEza*ds%o<aBPH}RHAa`$a0k^!NtGwX?3;`#x_I~q9NtnEBr>4)B^y4M{ z3P~4DtzvoqD}m4aUz>tt4wqB~X`Q5H^__u#buX}?!HvW{A>Pw?T^aBi0#BnSuN@~4 zBUVwW*DH6=IejE2>hWY%>cw|~A~n_2juVKg2!0DNmFe%f90Y?b>F+bpKh}!=F;T)h zgsoT}uHcIGjRN2jSbgPMFr#VC_U1L>sHiB-{|omY11#MXY0}P!M~=^1#J%0PHQn5& z)g{!e$(+hAlG%iXu@b+a{)qeU>NVt=8z)ROiBioHI7p|Nf<%v0<#@eX<3{bSkSCkF zo=7rM$sH%a#<(V{8)OAQoSDoD!DYG*k!>Auu0eMHK9g_(oA+YiKpZ}%0vD!9XKHn_ z2n+<{WcqfH#%gH{0wAq(Lz$Vsn`K(lm@k-d**=mAd!$)6%EMn)DdeWEhbfZ@lqEb& zNUocZ3JrQrXl;fa@e5C*fRkwFtFx{{@_6^j%l$GY|4{kriDL@_j_d_>a`G!kmP>Er zL_iS>0K3EUWQl-)o%%@Vn-^+HeaVggAq`c%69hAFBL{)WO#!mR7uYTn9tK{FZ@GyC z(n{THrN^Plw<|frmdKNuU9U(RFw5ZRqQIz<IX$0N;%ssxXKC(lupV=Y2i9*DOCSOW zPI;nL>q>0UyhO}$r*RrgMgD4-;#STA9FrOmc>DXI=C`fHDCR|tws*?>bbaO1W^XHB zVe))<KCy>4GK>BPq%}1(a!^Um5V`T@^xWJF*avfC&J;3Yoy4>=-?~2Stgx~`uW&8i zebRq%Bof8bx2T}T*&=dZ9zU_*ATC+WQviE^R3mO=XDG(eGX6_vkwb5X)J$*4V0Nw| z(+m7!a$0Ca7eJ1~nSN+O!Yps7qY|Ul+X0j%8%-e!j4T1SmlOwsVo|!KhirvN06HI> zCR;#Zfc<O+c(Yb&ycK~(v(CZpPUvz2zGj1W(3@bd(^{~-%?2~G;TPnNELP}`VN~I! zPhfrTR#rgKl~rc;gX@*bq`E*zHQ=|dN8X%7uO=$O3r?6~p8@prv%5|{3;zKfnmZ2U z4tgAbL?hnq+sGok?9i_Q0^Wt=$|T0w5P=;GxlaKDvNLy?Y3pfRA!65^d==9WB7gI5 zB`5eY;<mSvDdKKu;}LcRu?nIMu=Jw8i##T6!9fMHxK8HOO2}1mV9^p@7*{cmuzMjr z9$du-Yk*)ky{u~)q*Mp3)ul<_A_C6R)cZ_*c&_2;26gKu`eB(Z)L5DBG*+En!TSVT zuA=FhZdjT?8hQt06bv#UmoQqJh76)S&zx!|XQAXA+}q_Z4jyno8?1!tqa3c^#t$#* zUU7h-9{$;eI&e@C=c?==oNrHvI3i3N(Qd3@)_{Uxq7(^vH%U!Ot>6&<Q&-Udsod}d z31F%XBr9PskUX`5R71<A!ZxVWt`e5?vJi93HPqP+u<T6G+En_blqdO9<wVo_f;BW% zxSpxh$P1C6<-kQYxNsHD*kFY@tnb~217sp#8@LIm5YlraOWgv&(apl$P6`XrwP_N> zl~AO>Pfm~zPQsRlrzFhZc=E`+K`Z<;Ndo@Y$@C1IzD<lIJ$(rYkCObRX4=@NRqCeA z(G<{81E%W~XpJZIKuv*s@bi|BG@6f}Qd^{IXI#WHEfOr7@bbx8X@gDIxT2gbxJ@^l z;e2GBgrfn>b)n?9a6Zy2`ORwR4l<Tk&c!n`rendf)%Do!f2n9O@xRtmv2@_iB2*X# zqxAlx*@PwoXSUrY`DA;;mf=FdHKgkdoXjl(I@Xyrom*7OZ=DrqZV~Vi&|R^NyJj}r zjiw91wWxM~lXgHn+Pl=nCM9?E(6QBx(%QtDq9rzei<hITm0=r*Mc<+0o{GXl2R*ek z81Yn)i5Qx7xEX+?s=So21?g7g&;}ZERr3;~gayd+7mkLZf(_>-mkswO*Kz%t?Tsp$ z1J`@H<XpBGbSO8x8Diz{PT}}_N%s9sc|VVLF6z|uG~7L2MnBHwgRn3D*^;eRis6-Z zr@S1M{&Xw%bQw=%38B;~;PTHTA*u?>OIhSg|Hgp=L2SGKlzfNGesjejeSG#j*y<e< z1aO^Q=x=lx++}b%D_2O^;_^Q0`eyiQ+nZ$rI0}aovGA+YK0!03VAVeBhPmX4xRsI1 z`xne=nlvTPN}Q&3>d~Xw-nc3BcM*^&BK{O)2k5E1vi%p!Lq+m{G!}GVv)V#`xCC2H z)>zGRQ4s_;;6|KFB{ISkpf<og3golgYp0aVcCVOH8ZQ5Y^N)$Qjr{|M_;!DaaI((! zRC1PEJ4Flvv9USE06dt}IB0?~2V6B0uGYO2f~J@5hPw*nj9lJq=L(tySY|m?BX59m zs6*a>?}QnSD$69PY?c$5QbGC(#wQ6A$lNGDs`=3(KWu)il^=811`B0!+!G^sL}jN+ z&!avqWJGGuXYd^;JG-sK1M~;-Cv#W3M!jgQKP6W2#>z-dJY?_HwrHHKmIQ%N`a8E3 z*IJuyZ{TOmVOt2PQR-@p)bL?joCIM-SQ~MNDFp)#=Z&4+D6NRrB(rwXp&v9U6_#<a z2)&Akaz{_wJ(B1ox_Q*J%iM)<r4x|~3#S=siil=<F;vj~ptVqCN66W0J5N2Fkh8=b zj!pcNJh|n2tUhJf8?{YG&sGLp8zPWtGdOi&D22KHk4dm8TkG5&<{`S5&UY%RTQ<(- zE!_EbDQ7Bf*E6eV7BoXZ_4G38+7_>rL_&?qd@>T$Xb87}M+ZSVi1+qylH`dNDbXRL z_RLgx8zsM<csGh-=CDm?<zfGq#|r%GZMkp+?WU9#4&sS<s%K@_%2~k;Krdjlfoyo8 z^@qJ-PXxV@iADb`ou+jm)x4GHn|8W!Wtp@id)5S#%w5N~{Qp?3>nM;FfD%h$Ry8<1 zYlh;OM0e?8d*aeXgz@lJE;Ohyv`I(->F%_JN&(X4=XMuUm#JBg*K&JnH(PdOH<wi{ z4!U9I%#jdscj*Eem=hnRm9wHd>A3%$joQWn`|^DY>>(>{N=d!<EMV~d<`^irf7*h` z#M9$QWz$v=Au&)^I=lqJ02(VuW*$gf@LUcOpVf5jl;XVDxwG5|TUgbj7AGqNzhIZ! z8ascM8)FYc4~7%h%Z&LOsQM(?nEke)$`RaS?0)_kd`v#3X|+>Ii~;aIdG$a~{?MTi z?mzM>LBcTmjm%UZsNg=ZsGF?S{=_$6Cz>RyH)=+hYlPQ)Ux>}*S6)(@b1X?F^vQ`P zeXB`7Ba?o(q^kx-X3Kx{b;v_yPQuRuKh3F2()k2l{Rhb>T>mKpldlMJkIW<sEc@|S zOzuyv)=C8H9;^0PAw1o}6JswF6fE{()3~&fgIoP2<kD~dZ(vylb}n7b`q#+~cOtCd z+ii>tj{zWJEtH`2B)J&3F7Mzu5*>it6^s3W0c3bj^y60ZddeW;uC+bX&De?38G?O} zzvm*hrzG2Yw4`nWX6vl&LeDc8`!%*?vDe=Ow6ghANl<31+CF-vkGb}1Ii^Kz>kYxW zZ#ZD5aZ8&TTJwNSQFN&N`d5+<f>#Yw+@XvOrGk6*Zln~+y^?$l$vq0-sXHj$rdHQW zl^vNQD|CSrQ&V-iq5x#4Qb}V&&ye^8Y+1d;r6HsjclXNQ%-y}DVzemsN0T>e^<;#} zsZ0un?y|htnV6jxOHVIVUG|K{=pn!<1$2B;r!*Wzb=|4FS<rGfYF7#^Ama+6*V@($ zRGa)vANDsf9lXi$7j?^2PG`%MG9CVt^^!2TAt!yTq;Dc!Txetr%ZmIJz`QU{bM)Eo zm;69Ki!;R0lI~N6vvxWD4`Q^CW%h68llVfsan&GyT!~MyTi^?zIEe$=wp%4*gMYnR zhjs#CGa}A={>MkKG@M*KGj(FrSze?hwDN`2Y2v^0MH-ib((OSWj^YP7QkER#b9%$h z48pla9HQi2go%&%LgFy2^O0kJ)i6ltu)uS;WV|B25nBTYF?>*6@=}^m|CY49_Pjab z3ni`?Ux5sQI%j~jOM_A?OALlQO*-Z-1;y=-t%8rNNP#_<!guYCK`F9Piqf|A{=+3d zPDJ7fk*+UT<k$GtxUynM{H%z(asr+zthj;~ejw?qp-ENn+GOgPkOi^SPjiM2Kdj}K z7x|M}A6lH?kJN?Q<4?L0tnk&e_kzI>*=p*N7gF`$@4_8RTndI2*yqn8SB`!D0P&xK z495PAe*|GlB;4R94+$mSZzA73jER8=#ExS-&MJzJ))SP*#UqGP_aIr)&J^GdxR96q zRe+!X=w(-+S>Nye4fTbPX)F$uhx_{rO~Hpp`DK}G*^~c`zt9xz#DC{6<fB^|<Uf+@ zFLd|igX9y5Fei;4%wMP*0}PH88Gj*|Mp+UJhUI<sJwJMF!cFqOxY2dKh3na?eMIdd z0Opf*$s3rM>}sa{fo=C|az;`OZ?Ge|J{u-JM^1dIg53B}XPb^>z$f>-Twu>AF(d+8 z%Lgc<x^Ze7g<XTw#3JLX!teU|M~F%G-EjYt#CGC0Ovu{+MYNl<44ni@cs+F{3%o%P zgnK1U?F}v3Q`>nKnj_4kvQVhKn>M%O7pT4yhfq(%>6_&pOU%_L!Ry^klX}s<)%Lc> zhwba0)E|E;h0A`mkcc=+b7?I0ToK25P#OMB8>UdZ+_NnIPY}gp|C~~U0E+&^7@VTr z5z4e9JIK`+-pJ=nx4fGTL;Et?Ue(gnwdw~&UK+1hPXtX+SS9#*&<w&x&3(eGVSvRn z0Bkn$lGn7dk8Uf29Y1Pcck1-q<-?zb{#%LHnFQ+T$@UdAX?yEL3Zd7NP&CS^BAwW< zHxdbY<p$eZ+LvB&rq`AL!TnFhf0SHHPLYS6^6$3kfCfYP7gSDgF&e%A;_ja{RIxP5 zA^m{!W(Mjce2M@bH?HV`a@3kC=XR+$C_}Q{!oOWBY*Pr6syRT&bA$PWLc(h)quUgp zBM;AR=cjFc0tDtt@urSGIE#g(($(A`!c4<@nUm(0BJHx>|0tIYh;m>d_Vi&GC<GL` z^JjS@U$@<Y9x<}TXDUQ2Pwt@)gXWh=efI*X^i~cYVpFV&w^_}-a0UX5$v60sTSDRK ztI`PY1mEw??Eziy4@gwi!?H9ds9GIznh%vW>J%IzZUyw8gXzHx9NTHG+(?zwua%z0 zCW`wj{8FUqO+s!^vS}sZ`P?C~R|K42WohTw-g)?^5KlJ^x~9eW7RYe4{7uNIl{lAy z0hP%<z%JW%8Pg<(;uq*5L_2uxzDEEvHG=)UkAcl<4}0h5vk~TVe8zSj4Li?<n|9<c znSqo>$$=9bdtCZ->cA<HqhtfSmaR4RJHoU?%l~0r-^<8!%U8W)-MEPtt|U3cgbNHm z^)6kM^=I$W#e(i&zgWf7I;`SZYz4cQs7bv%Sz~?gfL6lXp2xpg9o7h&J8Y`SJ8c{J zA!s%bHLH*3PM-3<jr>0O`8R7DdHKgTmuLvZ8j=YIk_X{|IzT#4#&47vZT=&Bhfd<R z`>tq(q~GJ{H)w@<5qxoKXD+m`f5Qa$VZ7n;kFDzq%n<Xf8>S1^MC6rO!@AWC9@{Ml zEbJZ{A1)wZCB8(KRP|cj|3^!91yF^%UV%G+?|^WpU@WkgcqIeYQtH^=0DT!@USb4m zWOkz(2rwAC@+EK@LnLgYI9{jQKw~9{IpU-Sjn6=47JpR?`YymxtpF>A*bJ`CMPBhz z+nZ*a-l2AN#JNn6y7OR^BlN%InfaDO56n23pZ?evMG(Woj&2`rUB8Ak%64MFzD|@$ zlmRA_$!}=&TYt-aMeK6j_acyVzKNQb^ViO>iiq>w3T7CIrvE|q4noIAfaZ0`t=YPT zzHkPsmA%M`&Q}Z2=^dFDs}tNzO*7rdXg}&kjx35)ZCy5l3YgQ$D)_Ga#CATE5>dDI z$RaTIVd1KtWoMJ6z`A}6St9wJGpiz_yO*7kJYqnTYo(ecW3*bZ{D69*RozPpNF+l1 zjQmK|gVqgV=Hc2c>xPd7pE;XNlf#a*QADBAMuU7fNaT#e?fi$)kw(fNwXXkAatd4@ zBF;;A7$}zT1Y=`aFe(^`n$bUD;9+zaB>2i6KoKT;U{WWBf050V9!0$~kRI3{5**Fx z<zQN*%17lX^wDbiyTT}t;T3G*C+l)-2MijdRl@9Tx<rC$y~h0aAc0#q{Z?``HFV@z zH~n0GW=JcLl~59bk%Udy%@<Bp>iuKhf_72#HLYl8cTI1Pe*q$UYIY3;KF3OS+gprw zc0M)b!l_bMxL|s~<sYm!auFQCu3*2sYxYaDYR}T)0)$c#QQDU~WJx|l7uU}83f|_) zz(#h!R$!fCaQpnfUo0cL)C^1H^hj08x=CePp)J{AP$kO{f?a5qYVvAuwG)MZd?@1} z9-j37_^`JOD3YUQ2k89pDCZ<>JZ@6M!S7*jx*c`4ML|j4MP}2%tD?JR(?uqRdX|16 z>O2&7UKSmDmA_;yZ>bU4=~^3cKBBmev%JH;JHr;}ePB7v=*yxG-}4>V03oUpbfxME z*=yDf&4SEiw*_%zhNL6R2o$086i`E-Rza|sU<bPQDclJlH)aZ($S>ZcVhC|D2>W@t zd5bLtm$=PumWKNu4K{ARb>loXezHUSn)GrjIp~>7?|n8|@`%3v{z^gC1HXyVEBUVa z@FAV%mbz2E{FN_^u}!2U3Gk{6bVI9AU+nvMH##9z>j9xFWMsin2I#VZPop1MrNXxV zOEw+LA^H(xJwQqrlcOGq4cB@_2Ko(EqY)7PJ4f$_QtfAF$$3kn4!`7|c0R5Isy*>W z{hVY;`=X?^0!d`uq-jt3hf3NHO`5C4pY$*JCUIp}lIa@Fgu?b6|K$awT}IkZg38{R zN5Xs(J~&fq*G%_Frm3X8LYnmS7^$f;-2VhGk*eKGQL~QvyX1#Q@;{c`BT0EwQ{>cc ze67EXRO<+TRo^HRQcHxtLue~0$7PZZe+b=Ygoe5{#pNS+34(gpk9?c@E|*w1TLOJX zzi)%n@E*}AHs?9EpwAEt<zLC!7AZE0Vp0SjURfl(yX5Nwd`*o_9m|)fvri6!;MW27 zE=K0}{qM+ENz)Ge7jNlWFC!GK)cQbOMotaH)vQ0*T+C$v&Zo<(Mqh?~=QGNyH+{JK zGn{Xk0Jrxk^6Fvq8sus4jp#@IJ9)K)R&(Xm;QWrnh?OyZj`J;75nL!OpQBcR%~yYd zT>ao%viL}|W`o_lclZC`e9L8&`k$X~Ip$q4H?JyFt<IqHEyJn#GoNqS)+gOK==qjT zJ|FCSOM-1LMSZ!1Q#RS$ZwUbFfu{Y=x0Dd3Y0!EDvb}!K4w>yeehFm<uJ?h?r<};z znDZ&JzMn~7*1v}ld=7otlbZj)`m+Dx+h^66-Dv9hpXkemU689m*<W9FDphC6;la+c z3?)}qUnbG2R_|D=0_#WODt}ViRo-e=k{`IsXV_fl;pEAzt2(<c9PI3_vYME5xWP`3 zA<il$OPQX5A)F_|OeyaZ_(mGn&pP;ryVGr+6L`+yX-qoEILR(HQ$$pK##MeHw9Nmo zNK|&~<hOXq<A!c7s!RTi%*d>Zl;9;6^AJz@a)LEtxs{+&?PSQ~*`ZGpfo7Yi02oVN zYPRidTp?v0uLZ&hZ@E?;-hJzNsIR==1*M=mfD@#?PI8GyUDYsYH`J<{d$~lj)&B{; z1GX1$OV60-VOBpRGps5@L<Z`W^8TsfZ3gu?LnsRTo8Yrt|A6&}Q8}7l?>^Csq~mxu z>05sM`_N&vZBA4xC5Pb<`^@PEPtqf9X#{0$#9hG}*vz#tFS<6<Z?q$>4I^U=*REa0 z&jmtXT)UK?s{e4SOOoTMwMm^G^5d(r_ERy8Vi1*w$mijverz&FOAi7+r1X7F##EiY zvMF$;4Wwr^RWsS9UG*?!5seDV^Z-vG`ef7~sfjedUfT84iYpZDL#FYKp$Zi8TY!Qq zNTI2QmqO~ITa79%s2|V+Hk~z*FyGk)0uVI*3uSCdaid3GkjXL{A9tP3fkZlXIQ!w6 z*>RXCH!$`yeSn<InZu+SzW{zR)$qh+g>@JM3GRb@Yr-#j8*`U2;%#iC$2Io}021Y` zBlRVWkSHHJw-2$0G;|p7!R$&V6*?jBSN1e%Rr&E4(=2R&Jy9*tR`Yz(qv&4sG~Jbj z=ifrcqbFNn*7an|2A(YYyf&V!ITE5d*|I)3*@6_uftAFs=vGqh(#j%~wM`l&GCzJ9 z_H$_@?L*zAeK24k^Zf{AZ7&EgS;MXt9aIgw9Q&ACBhy3UHGpA=#%q|*FdY)nHndj# zyOSqT0rCJ2i+#G>y3VY+H0tjz7|Dqw^$`(kH`9|jHDfiuB$Ek$DzJb%DG$K|<5f_; zS=N)_LF_~Twksr$JQ{8U0)_q6wo&;aVWhrCnytR_-W(q3<1!2QE!+Mc_&ur9Qy&Kr zs=alR-7gnJigJjC6(z_y8F}#=w`-4Voi;tM#q0^(qmE+q99?lkEJtVq&r+UkJOR8= zD^KL$dBrT1&X9nLVpvw;${yLuRF5B?44JsAGGq`EDhENkRA(+9Y~xuXh>9l=f!DNN zD@o{iXK17fkBY=9kdaY8$l;TB{2%@6(Rs=5t3Rx93AkUTLlwP&N8L23sDp~S!Rtk~ zGbG8ai;Uhgv!6)MewAWj<DZw~(9xv;Y}UYddvH#G2{D_UcsHplS#sGU4AQJcLe_#A zm1QtkxpHoRm4hv&s~{`Xiq-#s3$X_qKU2RGzyh5Jd;!gQv`g*^d1MfmbcVM@=9@}@ zM(s<^67wxUTt%A2E7rtZ#HIKr(I~XUEvyp@s3TWbD+Ka1ey;|-```XRnv)Ax1@Gs` zO*uI0XSP(Ka3|1~;!oPdFSx}YqjkLOzxs^<`5u&f+?@L$(hPqrQ-uJI-_550LHRHK zBU4>NhyM;zi%_SZP?ynH45m*)Qw@F6IfBsow+ZD{@#PRX3Rn2OOAk2aqy!d10&cI- z!R3r_!8-v~evBL<(|G?bl?TKW#h@qy*cXCeKmM*kuzF?+d@4(n`f?Uwflnvr-6I%Z z1pZ;?(iK&halLdGN{2l*;=d0!M31HDA+b}m8KdKoW+v8k$L~q&<T^w`{a^pAYPpWo zZ_HMxYlmkUybsJO%Iq9?6`z@&UL6^lA7atOy--($iI0o4#>5{tXOM(u<elZ%=LXzw zbLQKIq08_OpXdB_-wx&T4}AXm1wIb6<)+WDSIX)j>1g~u;nNq-Hs`N%?YF<6cy=`o z#*Z!|R}Md#iFa8Mb)Hmx59&5}AUTutHzMr#^%p|!^*ZA>xlhSIUtYOwm31iP*$qAd zD+X5<=+Tp?tP!|%R)yj#c+H4&y6i%*6_YNvz*opZ8P^5bUEIbX+esE-{W*i>kNxI< zBim30@IRXW6%>|<%+6bO!js?PWA^nyk)eX~@B7XF&glO0e=NoS`}yDfR_^?(e}cJC zDKj34*R*<voF$a&ubqz?uRA#}c45?=5_RiQajA|hIIp<(58^gC0k9U!q0JK-UCkqY zp^{hp9^ya1t^v7V+jxjm-bQi7Q;%%696?%cXH^bZxA(_`)E&E(T9jGy)UPj78J-ne zWB)9wO)y4pRPHMr(AzIwAh2V)sUk^2dJYAX9;>h-LW|No30XO70=-82z7)55gS*v5 zL~y#|ZJD7#fYjq(hIUT?X?7%6c+1$&v;4lsyL{HnFd*0lxchH?d{kb&9;2$meQN_0 z9|iA~t$3uaCrgKDYi}frc2Vz8jds}Tls&J-Fg61B=atHS$nAE-xtu+438xg~yb0l- z@ld_=cj+3>q(<=(7;ek#1iMKrU0So8)|~~TjNb%Ph8O206%S7vk7xzco!(9ZqO9qL z>hK>3=3&OH0QnKG`OzTlbkcJ6Px}5}o6glZkBL!S<BEU8YF-j`ze=n?0lP952~I_j z!1ccq(2xWHJF|%EgqmB4r?poK0o|DAV;AYMH5uRA+u3@~L!zaglS!OVQv&oIpb1MM z`v6VEmj(bP)yHo!?2FP6?b?rIyuv4mJRE=xbI*FLEajgtX+WpQ!Qd{DgUy<VGZc8< z#7t2VBucxPbUE3}h&ZYtFlrSm@N#l$p-hIki6G+MyofjU#A1Ei*DD(=b8sU#(Y9_q zshCYfRJ2B@AQv&m`!Je_@jl|*+`|LI1S_s{8g_@uZAGwSGPNYiY_JeglmBktQ7o1? zW9e&0NDj80BfwG;cI7r+${E-JrkD*h0S10nR@Am!GCl`>RzD;QpF=tgyCRLHu<YxF zXjdy+__DtjhG>93ur3)1=khB-Jdm%EnCn}T*?*0zM&^lASf9J9xU0IDHu|N=X#a$7 zkIci{phO>a$zq;*<@E(z!G=oME=~J_j;_vaPx0sMBK!2A_UTNO#6Id6tbY`2I)NdA zN}c%Y%vd`Uh|1t~|E--z0mt$xa4f3;`V@IM4)+!yO#>fp!|VRV3?3grZ=<Xe)d&ov zaUZLr%&DVNY^|&9%prq6x|WsEh0@ofc?AwxooU6j&QfkhJ~nqVr@eR6#IY7yf2%YH zO1pN3Ze{7p>LBTRBn?`RdreYpHvY(Yb42YL5lXVEXh?h-PG-0+p8Y9KX6L>RAtcuU zspOgRG3#sxl}vk_O_aSa(Qb~EEkn;Af%D2zMB%5hHP$6}y!Kh><-_C}$gjwH_9>bX zU5)HL{}!-eaC{(k7AtfGiM4J+FW>u^s(Zdqc0VTbX9}3Jv_D6N4ob!G)E{_j0ID=l zNPw}I*1B3JRZD%WN-b!xj^Q=+^~X>5-}^nd8@K<?SJ-Ao@so9e=}Jf+1@i;oo4D$I z((w4{wSZ!c+~qS{mU!&96#B==V_HELx37Lk1{%0E+FsDZB6BtpiVkToJ(Nl|6VN!d z6)ll8M={wq?Tf}By%&x>PHq+xpi~8l1|{={t-<MBr5l~Y#}PhNx{<mz1iG>!>de&# z=jih#kgW5h9$??)SG3ae(2KUmKTNF9wjTI*&fi6xy-{bU-*F<{$%)vM=HHC&80Qry zw380*^t)<gCWT3qJMXi=6VR*u@-Kf6dVKKw2e_Xy{z?x2IQagk!S8naYs=Q({GWaA zpMT){r$nEtm)~LW@-M$=v|M^`iLB$iB<jax-%q)+guT0vPbQfRCPdVgKN~G8TbCSn z%V>3Bl>I@Jq-nYMP3p&X!rs+2t9;rYZGbK|wZ?h){`~s9QtoT$@Gq=YP~_^wu8=RF zW_$De`>(4nXk<0{J}LNK0nQ2FD>cLa`fW^h=eAOT^fa*yApT_kI6kHd{m}=_BXDvK zy*1NsZp#CnB)Jj@lwoh3ItV{y;b*b95;^;<^E<f0K>lrzs|@(JmVb?$1Yb-Y9H?pf zaFMmHvt0n%n%2qidK9!d$CY^6wrZb`oj)l*eqQ6my!iZ@d%wiD2joxXZof`ZK3x2> zwp&<qhxC*CunLFjFUIQ@4lzHGCkyk;&l0!rlMN;8!4pz*i73+auT)iY?^vl-{!r_o zxwZZ?c}=Z9(qCHZ56w@h)iFOy))d~zua;@0+^3$_hraX@XjJr}H<M&LFevB`9rTCZ zsNWxRT;2oXwJXQdfBVT%(2x0;&!!jEm}9P~I`qGb?pZ{Rur>8r@v|1imrR)dBW7Iq zuHlUn^J|)3#z~-SNNQ-!1EMahuj!gzke81i($Iig(K`HZQ6}VEx0ve51)T0=`(=aL z=XBcnT8@k?@T&V!&D|KUPgk@m>t4y=IHyk937NFF|E>d$kIbY@q&8*g2`1n?zu%VE z{g8tKg7(}KAY*xP?wTr`dCKt+90B2cVJnFPHqq3QtY=965#vkPkMZQg$eyX!GWJ&S zPwy9D`k!GXaD8BRz3g9fG}G-4Q7t0G`DOo)70j+j^gVu$ze>2PRi*b=Gd;%Icp9TY zuYq{d@Bi23^7-r>$K?!pOdcxv<d7ov2i8ES;$3GO`y3TN2Q;M!xrxus%l-~|8No|x zm=INORk42??eU}3S7|V4PMk@ko-3#)iy)1>FZ=8B=pz=r_$l)6EI#Ud8d+Vs8OXyU z7>ep6%7QU%n_}c)#fKmHBSvRua~NY&Ja-|12IPkd){OV#U>vtnHe-(weEO09o$re* zG%-7)TEU-R(7BYk+7^^uq-C@A>AK{-q`(rT`5#l?)mNDMswt-Hr}bT)t#3|HU&)~Q zfbSf5d%o;o@V1+^@PB^Ve(;7>KMOQ<$-U3R^5oJ}_*VtFp>@g0UzON#*#!;!v2(zx zE_wIh@@Bo&uKsx#ysN3_pbXwz`Iv!VS*<jKNAM}b;E6s&KrlIJ5PskPyueUu%kppc z3j)*?fd6}LfBsMDL*P%oo~&F+QKOV^XT<89{QODB=lKnjmDE|ylI}c6&{m##(6|Em z(4FtRe7_(&XERCf(LdqP3jNu?9+~$*HR;A0wUD+I`<B2tB9%II&pcc`0ZzP{ZO<UP zs>_0BY4DVeOL}qe43x_92A)>#Kd1h@bp7r01)})BSGh<IIhFsWH|YGgWE(mU|L;|9 z3$2#BL0&vg7WK-uriS)>E78Qb@bm0I3DTVfVOjJuXg-@FyYa*UDG1|!v2@W5wMCpo zP%dm~D_}4*SeD!Hj9)Sl{~d>A^V{JYg#+P6jv{PCI=Nyik|j-E#$PvdFIE}^dM9*O z&J?sh8%)6h@@NAKi=m!S(S=~_1!Y(lE6_&PIH3t{=q?_UP+(6)xv2Ml;BzR#n}2vc zt-}Fh4?<*n#=qv9Bl9HYEt+!DI{XXfg4i|sn{ddrj!O6xULjMKzC=}T73AERgJT=V z9Vob7?0onDqVyr&$U14G%m0Erjr5_aIdfzfl-jkK+WP&k!nRB*V7A-h^TS>U{v_IJ z44q=C6WeE$y2TtS?O-&PAP|G^g$)eN#tq+@10j=H6%fr6*CpoInWq<e$ovMq@n7!~ z?Sn6t5K?m#0Xg%%7SyJ)0&sFG%7D~}^xF-f`m|9*C-noa=Sp$wLfTyC|3j1qCeoen zo8KZU`!DiaprKaMfTCYa2-+|*U6gJ~a)RUxJ{NAd1PXy66S9rW;3Bz)8E4ezb(`%) zw{f~!<MSG}v;-+4@D~^UA&Xy{cB}|<PaS5yu(0dOJ?X+!cI>pRJI*PwnirV8TkC{c zg!=o1U#Ej!;WH=ZQUNP*+!2C)!rtuCnl<N_H9u`7P9%jcwY6Xn^kz%|JqW~9KD~Q$ zer!nw|L=Y<KYpU^JZCp;&F5-Y;!pSP3|n{1rsdzWKFlCFVlRoCr<E8ZaL#$d8u#1c z4HaL;MHEYtzXJ<p>PuIZt>(MgYF?FU;zx#?u7h_vq6UAGJgfO~ifgG(9GbiJd`HlQ zc=w&KkJ9ihz(l&?JM)?3MrYm+{cZCFszV&nxw37I+>vo5*Lb(Kpi^`8puU(iueg{P zAMRzaNbmaFzAI{v?J%^cH5;Ah{C;<2Ud@_lQ8SmB+)2w)!x~eAT%5l4eCl@_8l9&q zpSHOgW8G#A&23HnTh(*N>}HNb?^ieOJ7j6JvZM0p)HmqTr}gC3?+Al-k@jRhJprtQ zwLSvKs#y~%LL@srxeqHKhGl27|J@&q#$G*?xdXE><1pWX7PWWSi!Um1=lzhCv=S3h z1tfnZsu;Jft+8Q4Ui>(~V`HfSkGo}C^WQ2vfxTD4Gr-aKkHhoUx&lyN;8N<M5Gwr| zclt;`5#uw4=KT1v_&3LomTO;*B%o7`Qa8D;)2&-iTn%?Qf`!<Y=a+Hgw<N~O@%Jeu z4rsjG?wVRkuNhyr!0`NHj*P~MyUZ~-XHH3K6eUU892=Hfafsnx>09%H1x5ACXuE3( zLE(m4ozOGThPH@@(?5sKoagPXP8pPc!WZ-M8VNXNC2nVz=-`XohP(V{w^ENMo(Ets ziQpvaR!r8o0?C9Xe~O6V{~Ek1&_m>PDwr)$8hrmOP2UO|VwxUL(-H5?XPMj71#7ds zg`ka_p4#2-R|O4yO7)D2Nz9H+hU(X3ns}1VS%0eAVEyUA@FfK|aCJ-nHtSEJJ5tB2 zmEro`2+3bC{3i6S-TG5?@uV+ViM;|90?1wTK!6wz>Kq`ht$HN~immH^$gHqUYUPa0 zX8*M-06=F;jq^<7M?<W{S<E+m#HoW|%+oj+Du086p;q%y{mK{49{;Qdef0-4jThEu zS;f@1v+QPl&io0LKZm-a&O1@(jga#(J{mGhe)8N;g_2wd(Rthp*JPIJMixJqN81}d zN)S)_Dp{S*G4(p1>$?s-pSPipVlt!?mPVk(`8?!oC&o<F`G7;&_;c)kDBEf-XL8a9 zvm2gda!N>OY`85iHXMvz%oQsW{KOaNi;LxE;<VEEsYHikerK||W|oLja7n2|mZkIQ zO-1CAs!lL8d}F$l)%2gd;V<5`rN4h)e`*|<t1ZhR`9o-#Da~eYB)dcuj<`$F)=w`b zC@Z&_{w+2<GI42H>`?wz#7Bugztw!4WEJ^PEMwK=+GjP_NZWi&Xjl$+TCrSNoH#{N zsVIX4_>f&*@$Z>9tpdMvr&DkPwgGU%4%_)gX==J%bzW(#8bM@cMZ5}<*k-##7jizP zk=RjeR48J9QC$4(I{crEm1YKv?@Ld}__pgvq|dh~-JHhIhGsiZzxK8~f*e_iEzD(& z^H5Faj)I!857jiiZrvvAUc6KksH+LKu&<wEa<&!f&UG%J|B~9(Y4M#q^d7%04?i;b z!JRqSsqNLT_CF~M!=rX*>X6m1<-y0>hdmFDj2$Xeb#%OOPp5>XwwgtL#$lJT`((Al z>GgG|4xX>66|ry1d_}A~blKxOBF@#N$sbbz{n;7rKc~V#<XE%k@FF4%HM>A&VUMa% z&D>duq`b-e%`XKDzQ9|gYDsBqmR1t4Wy5M=N^-EEb-!6JrPQEVzx^>`u^U=5^q={W zbHu4(vGGkG<;T7($CMJ5zz;5+sT0@2F|Jn!u!%LL*7euY1w94H*WwfhmL4t&y8t}g ztGk%Zu(&jKT2MmnJ1U4c<0@?D!U`}CK4krLlZVzcUTP9EGW!rj+R%!EDL5tny=x?{ z2`TQfveX^I{tVq2Zu&t90hf&~I}>M@;xfV<I(p?X2co0H1h$}~i3&uB7q!eRHtVdC z_*XN4Z>XPvaG1sON>D{POV~eVlUvt+Lkyuh(&{q6Td9+@52Y;0Lae}J(<}Q7PZocV zSQGiN*~$oh3^xqjd9>tsiVO|ZPqBsm&rU#h_+aC%{HS*s%-{@S48|8=J#K5MgArU+ z;r}meyv;Afmdc%q{$}B+)!H5K>r=rzX%DZNkj_Jp!dK+*<CQOD>y05=X}tt_IOi9_ zmku8`ltUI?VS)$R-!>CEWyVR&lU!$Lw}blRzg4gvb^;W(oELxl@uIV^65r>g=HVG- z`AK2oGpP18;mr?1dr&$GMS|{}_y`iA2*@hg3-v7~MYcxr*HqwNPa|ibcg%3e%`f5m z1YZEth`;7!@8>#zS%o@)@A6;(9cBPG{1XFsle+y$L0328LL@4^<RAFqpA@8S2MRUy zC4NxnZmo0FX;fxJ{`<Z}MK@CsAAe^)E|HIAQg;U*b6L>IA95WEbJ|{@T{>n!mv#{m zGBy7UB2~e&Mq68=-L7{rv*xb5l)p}Nt26JhmQatI_?{$sVvKS^PdQOosmZ@K^;VmD zZ{v|2>d&dyIwJM`)S;=u<W{<+c0+=t-HF$}Xb`VCg@(VD+{~v`Mf&4BJ|@@X<bFot zr(K(D$s~0og;1FM9sWj*mDcZng~}u?Q0YyP%bZ!c`Fif6-~WR7oDLLnf+p|rzZQIc z_hh<~sq-oLCF$UEq^8@c3p%|eleWSCCeGTD?~Y7bo4-zv9uQB2w6!1O(Dsku-!KHg zU$DgMf`78y+1(lFJJIin0l8p9LF)St3}=|==zntpi|nAd`kU<*-uY7&QZ@g#>#u2r z4+x|hnD}Owsu5z-RRO;k9YuAqRDu%zi6JQAzbwCz6vn<ORwlWksK~Z%-8_LmPZe>* ztVpy4hr!`KqKeI&nlCENRnBJQSJ96)?O2Ee8}Z_6h0i)^R9@cQxV2ON%Xm_%yPcT7 z7HW-y$BX6M+{QCNzsYSDfm&*YKr@JVd9_4QAyVv0o0E(qRCw}NF~gX77D$$`H$7jj z1?1?l5ac|&yi@K$!k&OkJZsLN#xwn=ecK(4z)=K)RJM%k1kMG+K8Y7~fmK}ab&gJ( zD}PgmAh$Wic0aWFoT9A$Pv!5qYSTgquhA$7(47`r5KpoLUTaUBp5<4JEMxeUYP)KF zY3%EUUpXCqrC0csG_%r^VODzlBufqb>CIurmTiGq@!~xxqOc73P{)U`T+?|8j7u$% zC6y_ACRP%ecu5(7_9k9Z0mei0E=^sk^PyD!HJMAiS_1w|Ix$0D<X|SWJu<E${yQ*r zuT-gBbRam|MJurq#2_Gm4J|Ku6))Mri#{BB1!wn=m8j>_V9xH-__?!{pQ|$SGd_2I zpo6CIIJPG2^J?@MFbn5DB(osH7Y1`YEho3Dgd0%VF`326rLqM=WdT}@fPrIQ>W~x= zEzW(t{x093mOn#_vO^5?+sjdB?2et8cI5Ep=SxrtZ*D%=h+D&Y?Xf*_Cb{Y15i!W) zsuH`L^Nf$wCI5(*ZLYdJ@ON|%#VsGmP6F8@A2*Qw2&9{RJGI9?<$R#kxZ9cYALm6} z%UsO*s6BR<US?V%x2N`m5>Lm=YV^X%w7x!)|3YN!qd9rPO%E26FZQO~vbq_kuAXrI z^U<-7Oj}b>+}yEZ6v;n8J@ae__cM0LXZau(kcPbrxB>LhX)R|IPi=_}DIS-<yO&!h zJM8=!TsrwGyjDk~yeGWp`B~1~;+<&u`nW7rG+Ei%WBmu{v*w6W42P}%{{FUQNez^J z-F>4383-<vXKC<6Fyr0P``d2eXF$>A{<g&p!V&$??rvLL16cs)=)G-ciiI(_w~g4z zdT-lbmz*FNYm9_fn}R3|Dg<zQ{7s$0NX+X=oobvGmfuUa#axYdQ^p-ojTM>81EhA@ zhM)1eH+HXoDNM#eu6p~GwyTbB@B8Jno@&gAH<Y_1vK|Mpe=vY7{>ySn*grZBV*da? zuHMnA>+q4Wj~~c3j)`1YH6CIf;887T!V#yJh7Nowc&aPt-Hp`bzxyN<OwP;4CxiVu zBJ4|iy`@M-e&BOAj;3h8d$kN0B5*UkGhI0LLSsWWVbEahdJd$H$g+eMgUb$97>iFH zU?o>SB;(3p36X3A{^NeZGGzOkic)+0n@-F{7HRw70sJ}soqA=0&3=HsIv@F~=b)#+ zeppRoS$p3~a;hv1f652JfMv9j-ru@@1MPKTN@V6Iv%X(*&qAYLmt2XOH@hPZK2v86 zx$|z#KXa!Y8Sp!rEIuIf`oO*TxHRnae{(bmAj@3f3HooGJ*521O!+egm%rrT<v*|g zN?r1YW0~g+eb3d8FOXm*q8=M6^uFHKyQ&v=)N*NZVTX9(k-|ODi?>S3@cT)T9gC{1 zn^A*PLLK@<dk&|+miP7YzROw_YUK}6^TkQXi?{ga;V)(*JEFqffT%gaJ_2(J$~45! z)<}Lb+_`1AUAZ${`MBNLSqd^}v-62x(NSzyLK<+o>KGNte~Vlr?8@$N<zMa2&82qb zdqK%`vDNR33(3JsW{PzWDt3^T_RF7BG5w*@pi4nU9^uL@QIC6uBTf?XR7KnlZWxvb z@Db;&$k<1?hjG|Z+)2$f)PwH>x1N2!5^qz9W3lY%)TwEBg{nMZZR)i1dm>}I5keut z&%wrlWXJB5kPS6EV^`F3ZSu2${exQ`gZsm|CBmEgby0s6XIl=g4!54&1s?uO>J|wK zUz!)Ii4t!;$}uLecZnKEBF==c^9AE2lIwbmB1L`tH8auYDNtIuHN_e?v;;1-+*$UD z|Bp-LP)DdI_3zouliA-*JLUwez(9bTJ!LS!MM=Ty3b^W1IO_`S)TbPOL$XZ6p}<>@ zz}q%pt=->l39NCt!NpqCxgA(**a@8Zz@PFNogKj1Uck-nd{|(umuolyJ7Dc8JO2rO zjWR0@ti31jr?9q9I20{uilt%gU?qcM?+q$;(3S@0PiNdIy~^!Ukg<o20D_s5i(qp6 zLqIaNunS$GUY#+w@a}wcEuyqa$sTbFZ<BXOgy=l1#Hpwc{40(R%<dAj1J2oLcwH~5 z*e)NxGhY1{FEEeuc;KDpHoTb5^aZpw{v`ADO!N4vX6h0ioR4`5AXx6sJ}zkH>)OnV z13sRZ{wSfUr6elAynEyiB@5FZ<t}#G9`MmW)>NDL6Pf*~*N@Cg?%<d0PX1FKLv4DO zTg)uV+3uM)lhCNaz0Z(@t}X~tzwb~1Go%|pbd&at!<(g~Ti76v^jtMRLvCp~zrP2^ zgV+T*Gj*Rd{WY$G!5Um)9_2g+%@l3=N1Crkm`8zT>JrbrT0Do1cW7$9f31WzKCt&* zm46W*Q^WiP@+kDbanP)_NaM~Iu}MJ;SMxMhQyclO<|1*x9(DW&$BIn-?vZ>;hj8;o z^|_(}D?DsB-plG&8f`QD+0pfA{L=aIiNiK(#~RK0&Oan;w5_t=|M8_cdAw17Fm>HW zLj&u2lzgeOOl{mBZ*u;4znr&_(>elqLxwX>4AAC)myBu@ufkYN9y5@kP<|oJPe{0y zLKE*$z^N`dd(%MiB2AwU79a711Lx1Br;9*K8^X?0YHx1nz+~JsA-_iMcFc>P9L87{ zzQiuJ?*ZE6zg1%1LuP?nYlW`zFWMF`yrK2st{N5id8)u4cE4GTw_OBFTWoaL{a-e5 zr~;vX4a1IbXq2oAq$%5*Hdyc{kd%l=1a}M1slhQW>>d+xYl^sm5gGnDJs0+#pGQ4F zG&icTT_cweHs~@`=SJTUHTniLJF(-C(Q;G{!zg9YErRuB#p!D|Aq|5&k<~uTo}*#% zHp%YuW}tNDcx~tFh2i`cyF#M7hhb}!2Y&3x<_#OT_>HU)_XlORae@Swx63h=Q}lGC zxJBm2FSgx{VuS~!H`1XNsIdQ$#Ab09_eHDTkv_&|@1Ax<b$pq%X<AWzQy+#FQS|eR zV=aH=7qC*MD?sEL>qdtZy$d75A3{=Ea;l3HV|Y0#^5v!6B%{S=s3P6&DyZNU_EUly z_0K4iR%2@<vs8S;_8>1Ia`m!_reQ?|nJy)+)G^QzL7JNXb<IB;HsXB^dURO9h#>nX zar84mt*t?=VF^dpG^_&R|6pmP>NP8|5sa0ZE3X^!G52cPEs|CZe-P;LZ@F0Y_)yK| zWy#a&g5Q5_fPD0HNe!Aa1CbBs=ch&o>(tor43ie^u-4V&Kb#M05u&sxN1+XNnDO4R z%838y3jm5Ysxf$NG_N(m>(%CUX7GA3uUUE~=jEDqERHx2);N2FVHJgt!$B&q@D4@M z;P<|QWy>*3lWyz|Ug1rLvZBT@gAb_ih)L!ZiaQuTTlhI|C-_KCdBM2KWb>3sq?e`& z+>%Jrb&zpLZVbNn7m~&Agz;zO$Vl^go!-uEg-zQ^n_esM&RFl&uCI2UY}%f0A|}+7 zf86v6dj7rn^&G3MZ~9B#VZGr?o~-d=XH+wWwe>WPh~~t9))o4Nww~^VSn0qgWZ?Wt zy%V~pD|By=p+ld}yzUzJx*~AyTHAR-Lxt36Z@H$xA3s`mGZCfSP^(DGmDZ-{`li0p z_=x(Zz58M(rq1(^T?wh`OhriOcb==UY9Axoc6=iJtw+&tIwd=#<Vlolmy&E6N*<j$ zMhcMqMae#_={2&ypbFZ<Q6F@^Qd0SJWd{n>M^K=?Vic$X7g>MfG=D4d7TBmRnH(uX zT1MX?tG(jxQU)o~_MTU)#;>veImss)MO04o=>#SIg7uf*p&H)!k(rb&hvRiDNFGyJ zAq&jX*Y&cJ+epI3xI1<d5!>YQR8<j69j9mN5bcPhtd=^=O9)hhxRRE7yvdV4IxesO zXi$56C=nxz@Raf<mus51fo%uCVD%BX5QAWGuj^DDDa)jOGxrNxzeoN^gzPaW+qoMJ zgayjiQ0@3kI5Xy0Wzkj~*=ASpXGS$&0kmju*g2Hg;MnIv+sIVRQzWPkewUD5%6m7z zagFO^y0I%Mh4)XoT@)&!sB8Df2&qIW^It*rF5^7xC^lN|dKmrn962^AVVw)NH3`dL zc7n`@_%s!8L;YO!0dasWukgFN(?V_h-1@feDV;9XO!ia{4|WbY#eXYvdO`db_V~Ab zMNU*$i3x1L4Me9OzCznWb_DEAdj!DvxoJ2?q_M*D586WEIMY{c#58IesSO(WixM2h zV!C}hJ{kO!ZXbEjN)O!a_fIw5UQLbK?K`fQX)@gw1hM<U0;~CF{J{4{dVR}|gUw6f zRa(?cO>VDm3feesV6XR3ebDO*4_fJgdp#+r@ll%5UgzcX8nC6;Me(t+9Cz`8isG5o zs5n?$Mc^-;GCD8$FT60MDGcd})Io>zbIPSxn*vm27UIuTfyMNk9M~z#4#zuag$Ewa zm0DZu2!?_vqy`NDb5~a8H2R)HMR(LF-7xPnuvTRCA%pzCKg3*j!1D&XM~MG-{(k=7 zlt&%)^iLs{=3ouMZ;R6UOG6OloKr^s!ucOdw_L61Pp$-K`ZvIz{5EW2`|VHn1c~~7 z7xlO+C;5Nii5V#O?7~t?kyMsdkNFEtQbkTuRFVb+X0K+F(iUEs&*aHu(TPQ?CT)Ek z&OpN8N!005KO(G(x3bKiCO?`UtPqUyHGa#^{!by{UrnQy%=is{DHZ9|8}-I2ksRVZ zcgvQMLKmDYnzTBfZ~u`LdK>p8d1;{@uJZppRP}15+9ksu%(0uM7lRUs!4d6?5CbbJ zQf^CnAT>IiX!+)_HSOt8<qHs|rVk68tr2V5bJmYLFpf!dHIcFov8$e1dNfM>NMT=K zG7JCZmFQuQ+D+Yj>seZC{b_DtAK~dBa({U>eAr*6X0p8&IYO?f`}Tw|c8Fz1g`o-& z?lA`}fwd6+i}N*Nm$>waYhS)d@xvpP&)Jot<^pkFS8C^DV-qdJUOOLM4_b&y6hF_B z5l39SP%4Qb+r_j|g>zkLq!LDFdP&XQf+C~kPlcTBnx<`shMQi2*L`Fup{%A?P-}@g z4$`cFcT?Z+bKDC@^#v75MXF(=<!(E_OLT2^J~{`QtrYDBinhK;<;&rw%|+C_<X)O( znW<TOa!zRt0nnF~Om(jv)n{lfvxB>9q^fhtk*Sk$-h|AgQ<jdI=?yEkHq9NLo?#}^ zKI~bU;Yd}-(vji(%~P4>QJGnmkIr>WZF(}(p%wKh`$ga>b3X6UFYk9gZ^6X^Q7`)) zd;*j>wg>t$=kp%tlR|m(_eR5h7<<ux`d02=U)d$5zQz03cQc=~zSnW@J79gM>|fss z&J9ZcO82ktZ9ZvzwU=e<vz_-<eYPAVgNFK>UmZP&e(U+5fLHo&?&r9$&9F|Nc0Wf+ zkmrATKZoK+c&?FhRxEpd?7jck|NPkPq`}+eoFDrr?{l9Y8>}B6j9&-8izP;|h3(?9 zG?M^dQ*qjxSrT#2EseMrl)2}!kB)oceaHgdRyHnupr=-zOusml8j({(3ppKtZBpb3 zoQ#x0yE968Zs46w3$GR^%p*7?A;^pP^5N?sIjgqt<acNw(AGtqdD|l3K-8Urnw)w6 zfWPd#1|)CQPTu>r_>*X>{e&A^{gCuMm%bpt4UT7X>2GuFCx%`fDLh5yP;DAXr}vYn zXazrG*-gsSG&S_*#TFv!_@e*E39MIGP=>@X;EcWD<D_?9Lt9Pz7s)T-qB_Sw5aqH` zmVS7k8{Xr;@b5yGM14E0m}eW@>jpXEjQd9FQ0OOxgKimeZrIii|4Tw&*d*U7%B3l3 z`|{xN#%U#EFH(Povn6~d7vwG0tVd{n>XK2-m!(l!Usj*9dPh6m5pmNy^MX^xFhGrJ zq}oXTmfvG-b8jw{jse)Bd?=IOLCh;86#NPS6ukZv1aRj6-UBnJ&!3HC0hHI=D;GjW ztnfDR>bqE-z~x*`+pS{4>XLnMUM6wZCrIaAp;pT0r7+N&U)i~pxmiU)j#<)~f6GoS ze%Uy8Ci7WtbIOXVT3hf|P?=Y1Q|n`{eGxNb1q0!sW9w2Aq~xSknU6gGu|s9CH8>P5 z!0i%T{zK9Fw~=1?0{y-gfN9T*#kqJ;43}~`VD4c$Xsh`*QWKX?DA7e)y8Ab}=Zz*t z`pT@)XX<<hk8S_g(iZW!nS0Ul2p{R+aEO4`&H5h1S(b8KODGU2vsoMf98JIJU#2a* zAh#1qF7#wv1ut&@Vdr=;ajbqwhLxkU;D(~tam2$tzdgkPZ0+#N{^E~W0%Cn}*il5O z7GL7K@q_r3@`DAqzcA<MY=%B@KCmuX$)}8d5q>nszO3IzWWW2n3S`Kj_CrX_0%w|@ zkl%kKo#kbIWU~bO;cWj_{m$_?4h~!E2$wN{|D`{-kRj8bv+plqkjf|3C98fth~Jd+ zjVrR>j~V>EF1h=cqYh|aT)ksGa~B3U+$j;a9@M(5m^+()F;0<B(?>@vJt68{#pNBb ze-wqQ{%+lHHO<)0=&%<Xw=mhOFWk6|RuqKU0nmbN2*YE}83~T@Xqd=z0%O3#0)3c3 zn8^GO$e@f5*t}Z;7<&(HNqAQY@!v(?(EW8aN^hiH-2}i$x3x*rA`Z9i{Kd|Hu)fCm zWzgkeR@1%I5%sPZmrrneyQ<epbdmu06Hcf*Oz?GZ*(3CMJ(sjT#%~Q35%wbE7LwSi z9%d4Yf9^2e^+H1O4O_&w#+lw3K7O@Dc(wdpdgT9>MIvD#S6miEhFsYy8jE0CxU#^g z4Cq>OFr6Guk*l&$%D}?@Ui*uBD&l=du6%nG-ff3<!zLN1qF;`OuUwcsoS|!<XL^%- z$U&rhCtIioB;QUiwn#5z%4Pax8T>J(*>*1bWXTvTgAf|9Q*4tgTY>hKC~>DQgjm4j zzFOeFIYhb&A#hnob|7~swDc2lM$6F3P%dB?8gXie7BLtD8{sa|#&LJfHJBwYE>8YL z<aBRZ5xv}oN9G2xB8ST#pXrT!Tk`o$+Jx#t=zHy>OyM-?8Ojj`BW6=CHiWLdUNF<U z_Dg0yvB**j(ZZ#7+zF?uJTXeoYpdzsqH0;M0GR@6?u_Iavx*4K6wE8eA!J06GY&(| zRJk>(AuuRQx``2F&Pd@z(U>|jyFpEkLn00(cA|Bsiv0^%&5uI|!&Mxcx(Bf+>^u*~ zVNLHWmeuO-<Y&7qFA)NcfQ#6`>Y$*KSe6Z~@FQ}L(YpQ~s>s<Xm;4+RkZT}Z7C3z& zOmLlFdeevtlMe9#+3{xcl>9Q-JpZnpc}OlelvyX#fB`*$5wi!u+}5V1H0Vj_kUh_a z^SkOp&b<nx^q39w73#6QtMl#hoe|D`C5G@WSI@ZMeHPiQM1(~Q!mN0+Sj!-SEIgCm z&OG-B(scXSZsZ8vK1yl5Gj@itzym2GKT*)Q7=c|<76O88;^b}**=RFEVcZ!ZTbz3F z&nAliO1-09&tfQVC3=OAj<9Z=#Uh8xw}h)cu@VV>le;bK-PI)+ChXliPM@7`48hFr zzX!)!*%9Ddk$kE!vG(9Z{;y9+wum#n-dQ6nX;(eBw2-gM2#cWC?d3(S+U+50Q?Q{$ z>+XFMm+IJK+$r+lGMpI`vbMG}RM5}D)OYLG8hqnT>W$)hRsLjp)Ida!e-#~}qaC)1 zs2g@74;5)aO-%1s;Q{scwX%10PW&?{Db{;dg3>trbL&Zsw}O*_>Vpt=xFk93#0sfy z#UZv=gXq?`^t7<|uR0OjzxTW&ZXc62%Oxb`$dIoNi8@>SzxN-F(Y7b*_@-hBsoMNl zDO175Hvkf;`UpeT2CL~WxbN3G9p&Bq9pQ3x$J>U)qyf!ciAPEhuikdgcqHPS<V`xF z-nm~V6>n6I$!)juA4L-93YIlgl-++}xA{f03fvC7UiT9z(uIgq>dnfpcUsbkW$DC2 zauO@ji9>=!bRGqCI{w?_SQ^sXfe(ZO1m}U&D6L2>?3@b&vIL#&HKk$ag0iSHlh}+) zCNR-!led$r#+%IngRAoELsfgM8$^p}&|hqq;6Oj>e9V<fto9oM<6!F!gbBZ49}J3t zk(o~IuA(%G1w$+TlLNqt3$GobxRB62ept(dT3L~9Fekf8&P?!QQN;U=%+yTpu9SJ+ zyGy2oE_V1wQA%hFOO-lqrbDkXZBci`nL8w1Tt*c2W*|3(4AH1}T)_{~sx4O2ALx9o zv$wYVz5dQ<`5sPUu*x*JOBST^Y4{T^%_LIY2{m3V9ENkFS>es-Y2t5$^ZzQ9gHncM z&)d#)o3*$2dV{RnB)=p{eI(U*(ew&Sst!j}(@QL=vcx8DdW|{eT|j^1zYbPW=A0FS zeY^n2Mp?ykt0PX&{)elP+M2Fn6MCaY_8yye|CyBYzrKq_@<yeeB|%)m{r~j=QGtKL zFLHmy<o>06ER&DJ$ep^D{J)VTEKa~_zdxNKse1B%!gY^)yegCb#rOFV$wA(Ke(&hK z97gC5yi#CZx;Eij`~E?h5^DQTQ(I}KwwtI;P3{39@gEO@;r{hQiZDy?!5Vnke<t{F zFCVhIEysSR@gDF=!9rXCiVMhrSMW9Lb|Ba&^d9oHmWygjAwhQth#*<^gv)nZ*W3DW zm+(|9s(ynkw`Eu#VHaUWu6;3s^&tg7Gl2U2kB$aG!%gO*IV2#g&D-&%inodlIYcJe zY(jV<<w<1@y=nb&1~BoubcFk9;ZgS#XWWg&xkz?gAtmKFt1xKfIE~$dq#|6JD<LJ{ z6#?cIriA<2_Y{d)cA8aO`!#auNTGD+BLv4dX5iH7SpyvGBO?}CBWg#GC)5LueW(cg zPegPNC`v_*5c>{1L+sM1cb7r7+*t($QlutZllySki@W`+X_YFv(^M+WQ;IHiw)qB! zH@76;=>fMQuC)zWT2{F=d7}WL@HMhGfr)duViJJ)#b479dCg8LZhH0O%B>=ggx$Ly zGx+o*=gE5KCfRV3W-#hW-bL)UU#1fcMkSH$mPyp@*3=0tK8Y|!X)Ip#Nc>hAXL%Nw zRDTQ=4ca>~O+`WY{oV05(X`^xl5r5G>yt0nuHW$tT|Zqm(*y4c@K0Wllm2B%{|}SC z;rp6@tmN0t_ao8=wXgaSiKm-|=O2{9Fx;#F>kT_S+_V>P9xMDCuC?xR%y*k^QiiDf zJ?nZ&hZ*uD0r1riQSbcz*=_+Q?P!N!5y8;Jm#6_!h5`i``*dFjqyQxF$%7#!;$4y- zc544lMkVC}Fog>ZW7r)j-xjXgY$YT(6doDu1Hj4)$rBESfSBw70G=xVul;*5Ok_7i z<*!Uio?qT4u)ST5eGojq4L$&VVBUIv1nI!~KA@Md>4B&MM7R2%?2!`tl*xk5+qee7 zx{3(!8ef3MwRY1Af#T{itNF`JfdZQR2z!4LD55hxv%GuXF!Uy1;BKMpEbp#;nt|pJ zwx|LF=1p2@!v-NOc2$>k!v?;Do3;<Jns3rNf4D{I2m%Kpow5IL0d{A^Il0C=qoCeV zewt&B;i|6qo8kP2gke~6Rql$jahtU_5l7;(whAOmk^%3s8l<{3L6Kww;F_GKD3UB7 zP6Z+Z4oUM8O%D~=ReR&VQceh4y45TuIotb2dPD9#@P6F9NP%?j(`g`mYsaAd7;u?q z<?hEPOoz`Jupgf=-6b(+KR%J&k7s?h{WzGbJ@9^%HBg4E={EdMl7+&@dXtYeqnZB{ zqZuzicdU%Yn|xMIx^Be+lRo@19sPAZ>Cx{<<!;ga>CJ)&K|Mg5LUV4^Z3z4a;yqgc z^ccy5$Co|3PpFKlZ-J<b&{ZtQPGMvjl)F)HA?z>C8a2+3bg!fKM3#gdb0fRhMbTEF zATzz#uHx{XzlHN3W*>dPh=6GopWFSHA+rjqcs#?4cd>uqu)W3HQhV)od4WkY5;sNG z`@b{UJ2D&__+ZFFiJzBY<5Z-TQ@ii`*QYB7dst;5@f@f<bYalK!U$Km86IEK;7?^w zhJywo-dzt0c-TA*L~x3IUW<Pk-&wUr<<yLG6KrPBo}L<S7~tGtm-pcNuuqw`lPaG! z_9d<tgkL+p#=BPdwSXhf@@ulezMtJ-^=tp1<=5)_mDjAfPjH6nxFB>JxR6t{1}L$? zgo<~-IolPzfZv3G`d@+VQk@qQu$C>_9<J)PZuqm7igwp{HNXrK$ybp`o>UwIF>K^3 z3oP=;lp1f+u*~pPAOXKTrZv{rH0>R-WNDBe^q?){Z=Hi*wwvubVGw@VZk9)rbMVV{ zgI^{L#xEG);=j^1Q}82li5X`--txbB6XLu?aR)ayJ(TO*&Bj}Hscx`;dV&phGUM@G zKX-!-(vRb#gIcdtOpRHwm0e|RTCaPJ=#5<BZq;@ml3CYZE*c4E-9i;%qiv$Cpvxt? z{UAXd){Wnh92`Y3H$+76Y!Z#38cZ>wKuLowtj<|sZw@;W9TS=}cI6LM!N6YHQ#8ws z?2#>r;GxRJJrK5CMw6GJS4MXrniGGz@Wetxh`yvkve}DR3WNpou6;;;2&LPiE6jfO zhf^e@^t$%Yg+i<kmCd;}*qrd3Y&94`;Q-$dmPr~gn{%yf&Vq$OEAmvLPfL;r3n#nt z_mr9C{bG+m0@QDhEIrJ+?W)eh{}(<-%=!Av{;YL&W;Unj@zR^KTsLR4be?XU@fU^9 z&$vH<&v#{K82D6qN|G}0nUSX?H3Oc}9O!&EfX@Gmy*B}`syg@obA(7x@x*}=6*ZAq zlj{UlTT-W_B(jg5AiaXxTTyyj5!+f362uA`I0<q*ZZB3*I@oe=YfG!%n^sXo(J+_< zaR}mo(h6$T9ghPz01oy1KHqokb8^Dq(A)cae)swRc^<O&*?a9Zyz5=>de=L0_UhUE z!t>OGnv4-slRSs((*i@WL_e_JiYT_ar8$nd$nm*zY?;o6LCY@FCP2qBm2PSQ3_Fs> zOIo9|#l><;ZL9HPAPa&RPMAlqYM-)I+s4{H9w7zt1Ns(HE0A@W<Ol2Wmg~f<ydjpl zZl!}q*@WcGVj!a@4jg45<b>o6*@q4qJOmiIhYlEJo<Euf?J3iQ0AYFKZPuJYBE47s zAmDX6gWp`MMeC$=5*Z=}i`L@DLg3wF>XQ>VijFE~HRneXU^Nf=j;-cXA7M4$03?E? zf3@v(Zr*cS<+t&?$37#+-#YylYgRsFUUKPBU9>()dz$(Yi*rIT>wc-$It%X=7GCWu zEWDQCl&j~|CCUCPEIx_R;}O(}p<Mf^H?@4Sds3k-pF)<8DV%cas-ZBqf_}{hHU8xp z*7+i}HX-pzVKi}&xNN1K=AbYU>fj6Xph1_HSuQ`x?|G>QI_+6zRrKCp>BH!~Tl|JY zB8g8BL*6C~b18rpKrI&9LX@(W;~_(A)4|U3T{<GaalUDkICX2elF5i6c1ub>Az`xE z0&+AN1Mxtouz_~M7Q^PIT)nfVXu_JJ$^51WC4@F@E@2hS!@u{J95AK5uuhH(J2_*% zX{iE#ljiAGb&e2rQj5fsi=-AwkJwoyu6ek4Yd%{^iDjwjU5VvY0s&RCn|@b&HsR7( zCgI6wv*P^;KyiOk1oy-F>5F<cd&4hY&K2Lqb&g=nwTUaV*QHA}U3u2_mKkvvpG^r? z&pg%5mjq;g;si*Kqek~Pc+avO2P5F<HOj!?rS<>?qRjzQl$D(OR}n&XOT!Pm)GszW zw7?JELcAkhc9PXF`k!gn0do^F2>Lm8ZuDN`B>Z?$B=Nys(OJg>2QvfqDlvqzI)Y*n zMGkwiTNUNxlM@p6sb64+ou_G7*zxJDjtyHKw?nJ)pWMFH?_=OjtMBlNb<ns6Fw<&n zhpi1Y(J5c+kuZVL3R_@u;5Q0FWI<v#mJ&}<W(3>mKs~?k*_ATyb5r0KMxIc|odnu1 zyxra*D(t9RpaF7S$OSGkt4c6q2Ycn8aH~p#55dP9^Vx}zU$=M(qfxWR<%W0~of}nL zFB!x}!76oKr=z%Sob#j2>L%7z94&Def3;u35yRH^;201yc=OQ*wrh}_sOp8rZm)73 zhmU@fuL?y=yx*+%|JQy(<+nA?irzcZur#A+G!9%c7#03If8K?`l`MKFK8fs+$I3NL zW)`W&AbRf{`?Tuu$z{F9+v<oOd6<?@II&e_ro4_hl<^*^_$J8l^i4&uCnboL;w9s4 z#r#$im1^GPaPb*0^LRr88!9kG2K!pShJ%K!&+)TOIXG@0K2GHe7|->ad|Gxt^iuBq z7rrFgw>2&wwk2H#B--c>s0CFplNe_xI$0h*2YDF+(C-bygtESasObDdagWS=YK8WR ztkGv~y=^a_K{kuKzz5p2jGLUmna)^_Sk<G^#9V6^Yx4Ec=55?_8Zp*ePL`Qf4U^*j z2w?KK;n|>29v#AiGtD!C#~Q<{e*ip|2_CD`)8*e&v(%6i`C2^nHJPiIAQSzaO|*Y* zBt4)90qTZrVbvS!0H6K7$lD&qLj;p&5!;QQ=i~%XXm<fd)uU4gR)J^={9@deF-|83 z*rRQ+<N>kd6{uXlgWFF(2kepX7H6`D%YMJ4w}9=8vyHtdUJiS4B&CD%|D2N-BcIv0 zK~!f$u+W$b$A4;mWN+KgjFeJmG95QNyk0Y9KMdQ_Lwm+1`JzW464CfIRF5FdQSCPJ z_)IwQTEq1hOon7q%hcVE2%%%iWicjiium99BtnOc{TdF0NQC>36EtO3#H!XcZjMzF znG?E@H-EDY-@gDp8+#f{*!-=>h6$CO(rWp&=KO%>dCVT;JqJxMDVseE$P~=LQlAtl z>mgRKZCMZ=w7v&~n}S<ka3H+!<w2G{z@5KDFRv~xASfh(&4X2c&|;oqc1?rK#cdzl z;tdJRbnxP)9s^!YM-}=@NrCrKoth7(;_r;lu{TxcThryqU&au1<J9`p*KqmDG+Y_m z`a-N@Wwk<bb*z9#VP(7dh|RR8s4)+TD3e@b+vbL&m9?a4dP#9p<Hi_Py=Bj}*OnA# z+G``lge|$cC?0t&I9}q+%$X(W2UP;8nYZlqKAzv#M3*L+_(1M%go(oi??^dEjO>Y9 z(t~0>=h^)JMw^AKuFrwC&alrV=v!%%+{){Eb-1dh!!PgH;gN`ljxW{9Tz-0Ldg(Uf zBZIY9Vg2~W|5oR-_CPs%wb4BwCqQ3r2;1_8aCpzyojl!*C+Ibv*r$xAK6NQ<{`AAQ z!RsGhkSVrH)~xQ2_Qt}6y*q>P{rl%1pDl?V@jbj<*h<6U1;Lk?ZK3S>y|{<$_`%<5 zfmfb)eRLDWKXJG%fN|YFpdX-UcE8H*4`u`DrS3J=5}&YS?ysg5H#uMBBOaV9hCUN* z9Oz}vENYBCI0=wC;yTa@+%-`J!mr2YzTP&Sul@VGco5v75{df@IH?pg92@uTj+dMC zGWt8PEHu{K&sHuGD^GPT+~q2fuUhas^n_mOE=817YvtK-9z-9f@zB0-0F=K^_vQN5 z;-#4T53m%=TtgSq1fgwDA0*B>?8EI!r0L&p?fi-o-pm!%Y6n8G0G3iv4_?sWu!nvd z>82lf{<M;>jqA=_*_#|>{kbe&2Xg{rH=;O$JZA*|5wAGNUCHCoEKYn49;5=@SoVOF zUQ8(t4xnyz<2!W2*6X<Ln^A;1`eF17Mj&OWy&B+tM;DLlo@yP*;zw?M;8TWG?-AyC zx>aM9PA%ljbpk@_%R10bSl2bm|KX6xgy^Mx6e(y^&DLk){*}cO=1!=i(+Af0qcXK+ zn-RFwBp**#^{lD6^;K_A8LOB;{S*@jU^ZbINDhf&xtKP*cpo6mR4zkIlWeakdt5Pt zqW88b0+Qdi2~FUNKtTB!zgBpuX&W6jF8nb|X|}`wFoRv`LhIvw6&k?S7un^a$RanH z`eNli4Tl+=D?38}GO5M#cJ1!-sH^v*Pl-1qcqx3Ba;6=~&KkmNty&J@<;lqxaG|*& z-pmibvLncP`+s~M_)Y8uKOpw`;8z{@%YoYT6<|Z{iftJJZ`77=%OcwBSZaDXZ-``g z?iB=yog$)`lDSt1RyOL>BKL{I%!6t+D%GL+Q0)!B?*3HQ`w_wBS6FkgR73f;;M~wU zbOBqt(Vw%=l1XuD_qal=p+hfQ%kEXBpi_GtKy;AhJBtp231vibJc5IKB@f@gpeLgD zuJR(!DMael=i(PX*T(Yo&&-s4kbL6I6PpjvrrY36AdlW!)?;3LkaEvIZ$DU(<;7mv zifrS#03jb?F8ySB0oi1VsgDJ?$rfgPWHq*HaoDD1AMEZedHXH*&x`)o8qfdnCa<i+ zVrNy+QH*pN2z2snn?2dbektnKgqp?01rvz6h17;svUFYI-6&}BWJBSEIznv4AV72( zuC+7rTx%14rqRoH_cEsyw`OYQ^xfwhb84f-US?Fu5{(nO5GRG~RY11;Tg<4@2RM(t zaRWkC+Nr=|S<o`}oq?7vJzsn6J|S%LO!aJkRMfB42H<7!vQ+>WccEB~|8184`kLhW zy04Gv3>r?S`|BH@61~ZT@0Vc#iw(YnZZY`sHiR#YuIHPEuJkW)mlyS9MQwv6jQM># z&1ed*pbz_ai*Nsf`v-uR$NkZph&=Z0i0Gw#i}L`y&H${Ymx)-dn@~f>x(N^f8W4cj zCf*T%*E;~OhS~270Pk~=wSNM<ABEuk6X4yyV8om;yBT<0@coex>M;2JnV>4Z4eDeb z{t2JsseW<P)KUqRZL+>Za^ck~EqPwg2Y5Ec%N$0yLIlO{iLdrZ7ShY=uHC<XUGtOE z_7^RHsJQrQ;DlZ%yc$+#gjZ{;nR9%9!mAY(yQxV6zg0C&FGXs$JRgfb_>LEWwI#kY zh7_wH1v1rXSOpcBT&$bGOC3jWLk>7&R&CUSbqc|@!}x6fF#mJvdBzTuAA6}mXcYm; zvtHR&e0}>4r;nQm#B;cXlgsfNUSxw;_H3>I)?&pF_->Xh^1&_Ake5Ak?ckx!>!<At zaxjO_ZVKP=wCUxD0`wFYG+stPSyFe;05@L6x;R)g6tkAp{^cTZbYe}s>;tt?6n3KY zp<*yf_~=DG@XFTY-YFVTul66O{ic(K7EFtV&3Do~!qUxK))TC5bu6L)M$6s?+@o0B zYij45L~6<Dk>XgUww(Bfaa!L>ruO}(vSqCy0&uaHY*@1`milT;Zt2PCYc}aY0DUag z+0g|Yarq`+Byxk;jN~(jg!1`|{|Dh+ci8_M@YZYt?~5N7@$>w_MV|jak;r984YveW z08LYL><I9J&_=7|>E8TYjz4nehs!GnTTa-BcN;xUTSHmhV)$aIK{^${Bb9i`&GAZ% zZdQ9q9-sv-BY@*`4U;5>Z$x=A6=c|JD33gOsuNwHkqi;V92`nwna9%m_7DU1BbsUW zsrrjScv(7@yr2{%Ss|NeU)V#8B7O`}k4HALi`x;k%W*_EUj|2{EVB(qd&xoRujyQ! z9wtlEGEAihar_nyH4Zpy5Y&C#Pk~sL)`rLNUL|mm2>t(Z`j5mLSY|2%qL*A7OTHf? zTDruOw7YwKs-7^td6sqWOo9!N(DF4A^A3^p9^Zm&f)=G`!A7)ZiQ<$Y(=j&#JR+TD zv7?>QW`^aNtIownq~S=V$2f0z5xE6wq9dPV4HHtNz3Ib9!;4KHW*QHTCAuS1qUn+9 zf1K{}bMn_c#Cwutq<@O+Z`x=Ak?2puv~#6=EH7HjD<ma-%cX`%tgOfv?3iza^YnqW zYlF3e>|BDW!i-jn75GkY^GS-vlzu30_-CyWQuT`8Fp=GY6RELIa1*eS9&#jQVOB-3 zT^I>dOFs)(K^DMd-2&GhVZ0=|e~&KW8obc+$IZ#o2gGs+33=bf@q^eC(H0$Ax?34e zDBm$XPOH>EmmwE`!Z`6=$*_#k!%(o3>F}yPk^Jt1f0R5^@*naK-Tn%2z(|9USO5ch z$9mi#lf3Z+M#lbNE=LYo62QzaKn!nVZ7CO?qqT$`)n^Mh9>Q)jzGjnAf>$lGctqAe zlq}rD{E?i^KEx2OU&Fz@?4fN=6mJ3(I^<hVY%kxs=8MX=7V868aK=}MD=&=X-e3$N zUW}OYsKzw6>8RjKCM8BI7qs;RkD$9*(IjHZEe$Wav+c8&uza6JKY2r)Nxw38W~E;T zcjl`HLVU`eH%a|>s;&QV-SeoS$G>k!f5*mN?-Oqf1$n!I|2imI@X%18=lmL~DI`QX ziCNf20M-hwY*$_>*MKVs%j_gQI0)3OlEo)S7okQ$Ubpma^cm#1AGac}zR~TDzt8!T zCL5`4M&P-yAHh(XXVT$1)QqYoR!yk)vP4gKLrNXsRAY;|&b9Sm2HB=E6IOLSRGk~a zRX=ni7#;R>I9Gb<4YeM-5wXl{L~Y@S7KbAO)yB5=jOeVp7*WobG_Q>xKdcQ!4sStl z%pybP;F-s5%dU0t3v&Aheza0*kS^Akq`#Tu_Cuc3G@VM06W!_T$|3-<6C*$?luS?F zAte*TLl3aq;d*4g5W#K-8noIN3PY%;+bk%j+rptC)I&D$W)4rK>7>A1Zl&$yc0RYx z(xi@6*5b5#bqn(bR`Y|9VBaDcjWT>CJpmA)7yy|JLx}}kOL;z@YYA5-#ZaON0L}>k zD7wyA_WsjgMqii9zLl;g;7>sTLi+UJoG0h1?}zQ~t9Fws<oO~3LEOZbg1doiEIAGl zd?Tji7nant*Oii}sE%56+6kB<fjEy`qkz9WB0>M*VGCP>ThxLaD9N9i^`({s<-b-8 z!adVsxPg~#=r<wk7(pdI?(?7yc?1T3Py2z~ayFr(l-e+w_zQ0s+dti|d2(9X4%5)) z&(@d{&6ZQ#ru=C(2mb?e=3gAb?qzlAzc*(r<MUew7o@)&k9<NdjmFW}?mh?U{fIvC zs*RJ0ZF9o#KMXE-NP`T%3f^y@Sq+d!o4=2A!bp;rGH4N7AoyS+;)QSWLZ&}|eN+Y) zR_ByEYOd`IFIA6OcfAm)4Fu}6WNpd%qMA8%rQQ4SRSr)g%dy<AW}J>%y|WCHdzX>T zWr6+oKeD^`aZ9r;SS!6D-1Ld7v&*$DxSA4rb_CBteO^}n>EdZsBZp|ZN-{7-R|@T{ z=oT5IOec@hOcDw$33+N4K8^^ETdmbDIwqy>I=gZ*F)$EBa0y2fNLMEVT-V;Wh;%+k zhvYAwX@`?ohtcq25DXF!xqM%UN~Z;_3YzUJy{_w=kQ@vF3%^RV@21aeZ{)M8byKjy z7w_<VFgp899~t{Aj<KFj76AGX?TLs_wbx#VHP5&%B)HigYK8{chZLc)+BxOS1%z1H zPU_a7T+~nXo@olbgk8#91_4{KrQv8BsU)h=i`d6Vr$XFR`^><#-B(UaS)G6QQD1@~ zE)3Jc;On|!l4ij`IsFOyou`I+$+N3%>m1kp^9ehZXEUFsKffBqd8XmC`qY<kaOj60 z^PqfoyP8ca-4v_Z(7?&DVX(FGW>%W~SGexMu9@HjT1l_vJO{J8MG0q6v=1argmof2 zmhLE}vOn_T>E!kU&J&l@AJ&Pm1Xd6ah~4WWpKu1q@^kgLH#INeEgntq7}W}vTOs!0 zRUK`IYkU4-+&`*G4i>S<U($K0TO7ZaSTQ<Yl_nlPA*LBQK5|YIwujA9@WTrs7^y3% zGSje@cSALvN8G#7yh}gW8$N24GO+PV_Tg-Ak8k3mX!AFDAgNx3V`BE@>+X|PsP`$N zcYV3_7Uny3W_*rTqz=Kl5hJRrP=X5UMwL!rxQJWPMqgK`rCZ-si(N`h*~95m!u2b0 z$nFw{AX+Y1DbZ-ViIyApsIU5D@{8R#=Gk|7g64;7${yoT9}1e|7jM+r5l#0HQ^#pn z^_R9nc!EhqWKJr+P505_JKOBCsLL)(H*$f#Z_>q?>uhtkP>YrVBlmTkr>AO%uuIw& ztb2A!+nIIWgq`#dw##tmHX9Y>oNW`n5xttX?lSiq(TXuc7VzWJ^M<tQQahxLXYnCj z--uTJa7ZhEzc*w7e;f3?a{3TR3yU?`qTaG*7ei86$MXo6M?ZZH<@8j;5H_<$de<;y zBO16Nf!q8V7oVOSGbA`Y8Rv1bmO@sQm<Y24r5<<-#r4QC6>js(avR}h7dp^};|k4) zjP)RF_RDW6{F{y|IEQydn->B4SmsfB3Q4u@!OIw%lA7mO6yJ4yo*R()j#IMJh8OOu zzRk%#^VacjLiCwi0~@T(4Ka{gG%?YA{31<?tg9@SXiJIBkzZ<0>*vC2$VjfEjo%q! z-7cq*3U2RfVl5&7k2Z~?tG4q1f-bm;V4r^t_ukWa1DqvU?HBi31Z0!)8Ozab$xY-! zNH|lBT*Uvxo#kNq@Cmg0HV!5Ia44B?-*8^#gII>_v6n2gWUdb*s(iCy5YGM>n%5y` z4M5TKh!Fq5@@V2GFivhEAnt@E>RAajiN9qU2$6bWm%x~*tqf|mK3$vaE?dSXCRy&o zPTdl&f>EhEY!$?l9r(`%mlj3}h(P*jYXBJtH0n&x76A@B{2tAHr|3o&^>sftM19>i zNlpeP?ST3<pnf^F%er6`ToEr{pkbX?uC88MTi(XAG38w~pnf^l&z0XR$F9G!LC-6v zmwz_uOZ~7(sIQxiqFp)EN90)^VC>A}WG#jMr%}INq5!iWjW$bv#3H~zQK-WL5W5&N zCfmhIFg`nfS;Uf~*<wA!n-1GSZy`T0-oz!k&paV}7WWy;+*q=DS{C{Fa1y^KVi3GA ze&QtyqAi!BklAhl)JnX8Wg)o`JAzv(@CVFwxZ9KdCN*F)VlzmAm|`6QJF1=7KFk&^ zK0u;}@V!n5_!7AMzC~WL7{*<+KaX(_=6-u1-j!~R$)BlsvA8R_R0=M^=1@L*F^pf{ z<L7ytW&5zF3k%g!C@a4@%Zr>-j6|L|Xsa5A*4(dt)>p2MRju`sUGVs_vgkAQ(Aw0O zYAjw?93OS1rzKw3;Pfyeq;)Um3sUS7wyfvfltJH!-aB~rY{WBf?aQ(L&&LSc6(eld zzQpY6yL%0h(Q2t|?Z#OD<rK8kEU~pO#rHgCcszN|aC$Ixk62_)Jb7ld%wJMx4n>|= zL2j0kSOnL#6$C_E6CbuBwydob={f<?@KjkwSh8g?yBio+Kr|JE59ZrpD=c(c@`4H^ zk)`#+y5fYvj8{HilU!4ic(EVCk!>_N<wt5Lo;nBJFLmNV*|SB@CEOTw3^+YC_>lOp zuGq5W1Uq}qwN^}PF^j@JFc!fmzipp5wj^|oPR52Y^cBP`Svz^Dy29v6=tBh^ARO8U zeWngNE!FoBixULQ32sI-w9d)<5e<z9bZjiyM^g?s-S2x~^xnR^`+GUl6~V5}OFV*0 z{UcNMi$&H7vWMV6Pi886M-u?k02s<gqW7LzqG+w8ejVi3WXfQmN0xB*ZXByfSPU9m zyu4^wo5=^O+NY!u_3thX4GCaZZCx`Vc_z%qAaCaKCR<a3$iq`CiK;wRG7XP~l(aMX zcv<^|<mDw8LzKc#EHg^Vve~N|+5aP$IXyz8yWadx;*E1_lFyptbmu81#&MwNonqqK zI$~r4t@fA(LOwZo?~q;spP3n$TFsb4SfFRzN#a8p8Cjx<3tQn^hkLn16Jr;|BQM34 zt#pYdp0cq1TC;h<?}Q8_ns|{?1i$Nw4SUqZzk4VAGB(V8HgmH}G(oJ}HWxN8|I6HG zUE6)Oi<Wj;zNc(nmk2Baic+4A#D=Ym`HjU`in~-3b%@yOOQ37<vgM|3MCH2kOcNgt zYcoYM`!N%_A$sq6FS0gXw!+)G9-YF^L*+4{2c|!_uHgq#9k0vs>!E)01D>HjmaZ_- zMt+H0gWKzmV~H8$ml)w(6s8vA`+8MLD0?R43&+4-4oGP4o^x@TD2nPC$)mnF5GnB! zn&t51g@^XL!Al2;EWVKbP0wo1lRszubI&E|axD35jk28l&CCwZEb5(f;(2t(y-{!- zPd+~i*3P-`*$@Mtb?1s{&V(20&w<gUpJ-z<TFj2Hz>5&TyB!Q9`r<RY#6T}XSnzgX zpf^nUC?HB7=Du{F?E(XHUxuIIgc~;KKI_3MBYXsU3|rbs`JS>C5z-ZO7^rU1|6%Ph ze+IOIS4ws=77VO|4!#pFd(tovE%nYZ@DbT#V#-jSB_zsk!eQrI9ClWFTk#**tGYJ% z+{oeOoedX4+jf@UMEG|g__qT5%Qct7zts>#>=&4wIp`YTJBecA%M-IZsCWq_3pBPD z>S4#$iDBEA&f+tZ(>sgKOg3~Dr`Pw`2Zrajb>e+Fmzj+7eGU>x3hdb58>w2J+a9SB zJn=eObmn4n)$Q=?ZL+06G%M*B>C(|s9KH}kQ^Gx0zrspzw(*x*VWOb9W9XjSMD7;p zn>YdJRLqFpB2^DNGSn{fR8KtePRwwRG&>>g`K5Z@Gtmwy;*rf1bObQO3kaZnoc(ea z=ofw&%VI4Au-9k1XlbYAd&(LCbY034z{lxGY*>4}Uk3pM!(Yb+Qv`4Z1aLE^Fou5U zw0CClp;SB0lICd9zfYp~0)i(nUGcVV@Gj1n{ml89vUig&)K~rHRLxkl`6lK}d3K)2 zr#8sHLwdNGSKwoOAMkN`abEj5d{n}nC)0D8KTXw=Ry#w<Cv!#62H!^jB{#40>|zQd z;p!V3HH&qf9R++K0lg3~kBN*$GO?K*qkF0x*NHF*QCRSOYPDvNR6&Wlf^Qjnxh}n= zX9%IZX;=Ap9+GChR|2S|(k>H~(xGr&U{{F{B%lv>YtXf>lRx$AqWA7j(0YO=qSNvl zKXLo>zeo#>g9D?2le6SJ0etdC`bhNIFvU(@avmrco1VD9|K-VfOkO4a2(!A;JKc)T z<b=^1-t{_jd~SF<*Su{Zytg?5@w&XZ{(pGOiedY$f5Y1C;r$n$e13SNFsM@iNMW~A z0|e9G`TrEO-Tv6yAED~U5UNk{M|kecJR@HO-&b%fmUe39pF;ay$&a)4*-8o^k*(~r zhjQ;YtedHV2WGszQ~T^jD{z+?aED)y&V7BZUi$a9@gUgiY33_o=Ge|YTZY-Z+^CnA zUV)%u7xvlvxk`#4$3edhn)JISiKf$9FZ=9?JhX-A#KdNw{p=_@U{d3J`|QggroHU5 ztq(ufnasc6+PT`cfE7d44uC7>rvT^uQD^^N_Sx0yM=$+B)*k-bw7s1@d{)1{gFW}L zu56wKui1Bu>;BRU=HeLYe`O+%h31(>4ZDq7(PJb(uKVr!{N$H8`e*YiU9muC8| z9LYOo{;_{S!fqptjoF7Ef3$bL%HF3&lg{5M7^Iv8)zq~9LOZ-lQ|m8qx14JI`R<kz zu&+jNpPy?_oFYFtLR#BRHw`Z6?zDMdWN-2LMdY)j6Zi&004`sd3~1(u(o{qfr>b#( z(P+tq!p`4B=bK#Tqb(^-Ov>s)=w)39iyf`uRP);D^d5|d!|D5v7*0GnX=pq-ZMf%# z)%_EOwVB10YDqHYlz$z6lfHC}$(CaNZr{a41~<QM&VBvqA<|qVv)B5PF3-XK!C!g= zcS~aSsy*1VRZPpGL8>RY^iVF8P_4nmi~H;2;4-^n7JS0h{S~p=pyMT%2j@OafmBPU zzDW%ywRcT4AziqvOA?u)$yk$GS%UK`^|s$!ASLWceH*|1(4-vb5@&><>t=-VXCPoQ z#*IviI<aIt1%r$J3;G_twD1TtsW60B?~chyVqTcJCEBuCLrJt1b$_56e}H$LSt6{1 znb}Bp&qdG|O#fhS`YJmOo+;y?Q-0_jC}om+WfGEbB4=d4!7uB<ynx$jCNPx#)Lflg z^XLEc?EEtbnxJ|!L0HUnD8J#W%miT}*HV5j;0jioDFP^sdV&CWSsM;F>!}+wh!Mrv zR1}!jVKM-8Lwg-S&~%ePpeed)PA*YR%Ot=C^O4O}6MUnNfT0~Ds)3EJ!*#`hSjD3I zj40tzg}q9S0O_tQBD1dAv_~Byyzn|&*Y3-KK%SjU#jjaXe&NN}V)b($?`1>_T3q(q zUi$9ctkl3GRjQg&!8i532LWFC4{9;Hly$+)<RlSAJmn61CZhOV`L*!qNFMbtyv{xx z2JBo2Pqg^7YBSa9I4$h&X=;dxI1ONrs_^{UBKb4O{J3lDllYjhwBU2GSPoGENgHYq zX|??spbV)e_xh_4qiz#ZKpk@3l_}8~C7Ke&<%#Zt#-1<~oIUgGmwM+X$>~p_k<;*W zvE*zkU6V2xzzz{jcOxAUzH`NnF8DQUbqp0^Oc^Gyc`JjH4yrKx-Rn3`LCAY{OgQ@C zFee83S{{6I@}PG;9mLniFJ58ip$jr)A0;=8s=8x0cOE(&jFMnz7v~|#hlUVya(9yt zd1a4>9mySs<X*5geFMbd^}a?N+L$lNu96=F+io`cpeIJ_|7LUIZ?hR?O{Dxy?v^Fx z2kv$Ow;SCp%g<luZdsImr*2d8y6lMzcIunzv1*8=`pZa;q+HS2doUQ8EGPS;Q7E<p zb&uXmKa+l`d&**Ksc^URxgF|m7jQe=-Lg_!s@-iXx1Mf&S7)*>C&Z<0oUelyox~Pu z3yvIIz^<pKB;nK^4#mjpa`$<n4DPew?e}_ZhE1o1)FW=xBLsyAMhFVgj1Uwe8@_{q zR1>}dH#N^%%2~C&=Cfm@tq-?aS$~lL8TS`Wd=HwskkzfFRs097vRkbRf2pbnUu_BA z|Gk#>QiGu%HljoB>%m>5xk}iJJ|vKKMS{JF;(%=L%IpC5)&Q&NfZHB_Rc8ZixQY%3 zHh+Kr;0BC66k9`))sE`n`)Q2+z+0d#P)Dt?yd!mV&pcW+{g=In(k1-tSuJ_;M%nxY z{iu}y+*+MuJ3arZVnSea>MXvyP6Z_2W1Ouvju#+!LiIOSvoRYa6CYtAccb;o$^^T; z+Y1&q)`pY)o||lk;RcUzS~b~jK5epXddyPIw>DGr7F*My3FClSq*BeoL!6}KuAX0* zNXmo_i<XYvX{eyP!SHX<O1_QzOZ$S)OYSf{$OJ_T2Nfi5waWdacT*sI^GWd5?+gtl zX$L(pVBaXV4Uw1zP0?b4X%vrRy-I3;W?6z!GlZ0-u?VIqu;~KhG4&p|AaBb?V;77a z$(q<i&-rV#@;1HTvPqYU+X`qiT5)HwT`WUEw8H5fE6q+JTIt)n%3Fu3NaegzE=H+M z)1Ni;bdjaQ_|vIHqg5!`NbeR^TluA)J(;nNr(G;`S74rd>Z=TP);}7~p9vNGxk_f& zQ$5;Yz{=uw+C&C1N$qk!4PXOntsFr!*b2HxI6iZwP%7NG^VY>{KeufzTf9@)#a35+ zTj*bwXTLt&$-iUC_rz(duWr-m3MLb+#7mt~8c+Rz4Fk)0G#G3cD4ydA=D+hT<DGEJ zI6iyc$jQ&}gL%T_XB%w4xGGb&HTenhvxD7!A$$1Gke?l%(<gX1Ic58i+c6|STa*4b zcG?BOt8e#O8<*FFYvTc0QRWN;X3B!cwT&x?q)5}~#K1W@f^%KKG%SqapAf^T$uB&E zthl@xO0v`8ds9i=KjFu-m9%o3q>G7_!}I8adSKR??*yMb1yP%^AmZXpHMTZ9j*XHm z++wLkcHGd}GnQJ~1a7*M>z}KM%8;}N^+_ueOWrz{*D$~7xp{Nk=Vv<9^|GfQUPD-c zWMgYx^OoqGBUqPM*=knZjJ5^~-UMw@;ybRakpDwCqp$#jzQ}yO&`Te5@p_xjQJJ#M z$;abW4;<>|^8lLvjQM2$&(jaNUi6wx+yBW(Sn^h{+5G*f;cPylCE-l4nMyNkW^Alb z#{_qBWh!CF%;qOc*P0IKp=+AT^aV`V;^3|~do@z)8fm!ri#Kp|UIY88i~hh-&1@uw zCC<SKr!Oazt%=^VCD=xYt@OscxjkaO=C+A%ztH@);Xm-daejxt(F^pePX2Gr?}9-) zo!_<TUX6UuHS+h&Z+%_^;r#w+)~C(yy2|b5cjV1~*Zgkm{@*#j=f2(x^xY@^x8}EP z;7;fF-R@qEG`mLrp835buYquWuW$Oa`JK4^`n~9;9p*QyZ-z!c1&v-%*ZkM$oUcG6 zo&OkzwjN5oAlUNS-#yb`&u2fY*{C1*RC;|!NUxPa^dCd77X}l9UQ_WwRXE>Ii5NQi zEP5^aEP4%FCx#R{?dbJF=rycgmR@&}ewH`Jm*?p9!k|y@Ms9MA5Y^`kH!vfwfpETm zc~y44v+jW_<fxmY*?2*a&uVk9w`TsCJj#8^Pj<oo+x(B#hMXDc$#zMp%18O%tBA;y zua0?owsY&6m_M#qmOA}w{mamFKb}6COx#n>LdMWX1!6NFmQAlz+Dfn7@RFI{RPrHV zCTg(0$y(j4^Db`FwjA>xD3tC`XN-Rxs9Xx0IWaf<LQ!v=fH^n5?e?22zG5Hov=aT| zl809`#>hV|*5L(}c~=a@wt|Gq<I%YR!uHHqoF3MLfyBe<)5z>?MGVoTFvRb}nbt>e zU5Q|huPPd0uwIB&ZEeKhypF2zxYMEg(98E<QVP0Qi2U|oc7fb$DXTJ7o2C$j3d0s` z;^LTl&iVzoi}4;-jH+Q-yz+zSEFDYg2|uYA<guzh%Pl%O@?Ed;U9W2OWJD~hW2qSh z@kqw&)3}fnE|JDBn@i!5d=|Y2KaW^uB{nIvaS6xp8C~f^L-@#pU?_vY3{>yU7Q2&< z#v&VX1HxpzrBdwwiH#T&9?Bh_HkL)LZZ7hqCb69!ewbA&r($;2*hUTmq9Bz{`HDKj zU8J!}eW+`q6Y=DCi__oefhYsX`(*NCH4h3**$*2!;AITZ*TEjvN5IqX%D}#%0@wh( z#$xBY6HR;%mJ;A<PAW5B5^#&VN9);<%5*fYRU*5rxK8c}<(KZqJUYQtPZS<ln-P}} zE*O@<uj9$N_@BVj4SaE`7-LQx?ZGIPLz?hQ0~fhx!O1*`?wQ^#O=TD|Qt^5quEWW% zjpxbnJ6ZfIskyhWxrx23Vam&v4BsEe{Y%<3CDjCN=DF!l<Z$uJ6GUn-k5?Ki8{Vtp z&y&vu<zx0MNX%%9G#*nMy=O)zd>5b^aEu!NZr_<05@t3=@2OjL(vXJQ?w|2-_Wa^0 z{0FkAA8GKF+oH2nb4-EjSET2qW;`0CkJ`V0ul7z~#I$xr@2M_6X-MO@Ynn0~*Dur5 zgFOW8k#Dpjj*Kh{1CB(SYk12W3pw)2@i+_Uz?nXg0jIx8-yUg%2FaY^^&&DF4aWj= zP|dx&r4OQ;&o0}DOF;e8{gq0+G&OdO*Z&dd-l|+ebsJv)9V4<09A}lj5G-P{vNLco zBhn0%-D1zIvzHeIv%*vSzi`#--FQ7=?g09@9z4<igSa<+H6WJybhx~*$8|q<mnD1a z(Kn6je)Wg@LE#P!^+8U5hs$5%Y0B14R2?~Iq(%TB{S5(x6i82r$I|%~@*NT#sAsMn z?J`~2?Y!*y=>h}s*_5JSnMv)gE(+#zBe_&HY?u0*FF&25>BQU;!ox`kLsKJVHcjV< z(n<CJ<r~CV`do$!9cvAS-yl(yesZvDoF8p@hDtalBU>GZKMd&il0cdh@^>NLm_})n zB|GO$5tX_1sS6A8GO?^VF5D+|O7(OgW=rl#J~!X|a+7@~bR-nzPQ;y{e7K6y|GJ|1 zi5GT8TW;WSGz<ip_+XFdHS>8u@UscYxfVoEanLaJAml<PG#k^MS1lMk9^XU9$CEBH zEeBqr=-#3>6c(IOWn@DmX@h{(>!5q`Ap_W){efps$vWsxzYclWG`@8bx^XFR%0Ky% z-L2R~lPETnN`kQz<N3zC=cRgnGS7R6UG{t{{qY-Yp4f<<U(#OpHn2U7$&oN9>w$)x z1<?s7Z)S+=*tdh_w@ZGZ13hJP2YLj%Npz8C6gSOyyPyG#h0L+M!5AWgwKbgKrT)#q z`3!vM;ZXW`9R_T3Q+5UuRl~MGIyZrIVFps-DDUOQH#rN2MmO$pZhX&P%JVXfPw?1b zd_8zQuKUkJ^Hrju{SA%vj$d^TrKBEk@d&)dZDYPQFLlm?Uvc)e+vm64{<q~X{wSDv zo{$tx4dXr(Po_TP<!X{%cweAWY-3eOpY9lq>BiO;tcQrfZGGL6dUL1zj>Yo|zWFbz ze+u<GRdeC?6>mCr$BGAs72l+dB0D|=7~{HUEkggaGkb#WZ&^Fc<Ccb<#WzgmH$&g= zGs3nt7)BF0`@K)MCpe8Nyws=I6C7>@c41FYq?e&R!2@@Tf7^vU!J&*~SM~%ej<HHi z&wuZOLha9QPjHRC-NByVkC4Srw<kDLq<?14o<J*CbaWe=M|OWS`oE)p{XkmG(_ei` z{Jr$iJJ=f}PTj4M0|AkFm{G;*D>B*GxbBBs+3oEO96o!AQwtiPY8wLaW1fHIq~KSE z83~asA^9QsNG^ksCSJHTeIYe7MIx8M73T_{60PA^hlO96$pj|!_b<$TWvk;zzRax- zHTpC7?R2Fy&NEl2sCx7zXow*9;J?XxTe0<;coST}V@j!2m1+u0&8Jj8e8cgDP#&P* zos=vHT8~nvudE2Z_DAhZS9-yN=cwx=#^*0->$jHlxjjpIDqrS0omg?MTAxgn>f?c7 z9}_D)J(jvhkNa4sZ2t_`3ZY7wpPufNsXL(uC5e=;tgv1h-i_<-tCvE-{OCy`eP`RH zsy4Zi8WFM{TQG+r8Xwo)d1QzpA^)&Tdz4?fg4^TA_VqWZ-+A><+^+tRK3;aV0kao< z%mFixK34L19x#nQ9?o_zs6FQIgx-@6cgg3nk9p#s@;8GV|K#nkAN-brJ^MjEe={7# zL7dZ0^64<~r()EQDcQWiA4dut{0qb+VGrPDmdZ9AyAR^VWEuz6CrOl9pKKt+6Dd7~ zbKM&a9qybYUWla2oR8RCTjr>`l&^sFq2_xrr=f)yRkwzX;W-s-x<v*&Y8q9hF*&Xy z!PnLyFc5WdOhacSxFQ$ZE;*}Wqhr;YD$BKCdP{55BnQ5F>x2is4U8NZ_QXU8@?VqU z>Ypx?;;Oc1ES!rt>2&3%g5DCGr?xYDMqA!sBZ5yTinhGOU60igYodF#-jQKljbLxh z<vvL!<fxdc8;-VTn>lYU)g}1x75%m5aWYse2*RgyTF?hhH4O)Z&it9+sS4WVNTgvu zs_H`v-w%W3utf6NJ}_5yp_Rq0RfT`0!aAgw5&Mk!xI8Fj-F1A$6fA)ASxko{DByM> zr-W9t)vfxOY+1;q_F7^bCT|sgO8F-K&j|-Ho=4mcrJ#6SZY#KzB8%HnZl%oPwuD<L zw73QL&A*LXHnMuCv9Ci7Pb+lsPd<EdXkCLr7?w4}EAUU=$DYaDBs!tT+@zGg<(r$V zJxr$x{DCogmqrhnNQ;%>cbkUO(bB~Q2m`y8b=*Ew0K6SWO+6ySD4!iITgxVWg>Aih z)?s0;MQ*q)<%!kPVP3Ji4c@zBKW6b^PN2;A0?q5cuBI^A4XGttW3}C1-7-`)`-@cU zK6J-I3>L{m2Z_1t54p2J%Y6HlotTyd`kC|>x~H1CR&HzOEGkiz(hf40JR!gaSjPs= z+=pJr^-a8MbKiHm@8|HO%WfU~Q`y;A=ZbA~?}odM1@4!olJ7RTUru4!vd#U{<nyk; z93BlT_*LY7jd$;g`PJTX0NpKUZ#jrd1c;XKP{@yckmf2{;arp}=55rk%6ZkiNAWt; zE-j^8G`*T2ifV#1>oTXK(0DFXIf)B3YW$in`Y}f@QZ2>$mGVpMq2Hv3L?z*ZKj~ci zb?baxm`1xS(rn!qr7BI6qeu@n@iQnz8kl`BQxDGEC-)$D8Iv<@<?LGrh(vO(7}G;r z?uv9b^M#!|SSYl>?OawL>(dvS(5K<LbQrSOM21w^w+;pG9>M3yWvc%Q;+4r2w|5hX zrRw-@jR#BTtg6`5U}~1CTE`#EE#HzEhR2qX++be}fFug~l8DJZZf}NeNHlm61r^t2 z=1OfBc_+NjZsRCEB{5MshDM8olIBqm>^%oQC(Ht!zAZ<%&YZ#Fu!qi9>u1j*9mY>% zj%;ATJM@?M6yM@edc6J|;a+NfgGJjIu)kCo5_HRe9Sa!UKj!YIsmyn%z(e{H%y)%F z?SeQD(+5-2T_insfcb!Ln%6fLX}>;rw$7z9<_6`I(}TTuVC~LW7!>PULR^w)h>2It zr%<y>z1qSypWC1F_up**)CD^V{<u&gG)Hfe=8+sr%`1f<#ZrESIBkDvU_D(Vj1Ttx zJ;hVEZsJjGYSA_>345P419GK<kGgsZ+pjw;q;&n*kz&b}S`d&SZG08n7lrqw+!uuR zu-YxE-Zn?>trOT#*(1ZczU8sxdF4avK=a|AfAF;LV+M5j0EKu%bh<}$UfX?IiqR3B zxC9dkV_sYHs%YJ^lOm0WA%hF<JB+chRkgHHNbA}bH0G8q8hp*QEw^)NW-Gg$_a{Z7 z&HusglZf1=q}teyYLbDCy7-{HTY_twnG=>hs|I+gyX`IN?QX25&0MJ_OUC=V+Y$iE z+C^m2A|r9W8qX8za3;n^$!b#L3Tg<Xq_vp%h~}HLv-&6B_&0J$G1!7&(*+Ks$+g{A z5OJHW5|^>1YWcy9>eoAoo%buRS=$4AML!64#O$u1ZIb@9(K=Y+jE&>PvM$_B(LA;y z)0kXb^Pt8P_wN)@S1gbk6OF#NhlV6Ozxp;}2q>1pP3iHex|>XqVsV5T7bB_a;*-Y5 z^2HC;<QRWEnz)M!Xeo>v;@o`0xFHQ#BDtD#5kr#gWsfHtZ$jDNLWa<_zSW4zTH}_` z8{z7;{pQ%dQ)8i|6hf*#`G#8`v6-I)z-qDn;A+lM=z&7b;Qe~wRjwdab}Tw#gM~4D zK4=G`CQy4qaEZKt)IC<Yp>avORnH8hYnEzXsZYKa%I9M<KhCdzWw!pBhpffQ4gzr3 zM@RfEWRotW0q9}0`A0NRANiOhRP~jAYrKzYy6I3f@dThjR)=n3B+}c<Ng#aF;p*>w zsxDsnVmKM#d1iEJVyPwu4F0la1d}9w#rxc*-L|={VKS4x4P17xsZYM``u^DvNdu9; zK&Pd9xO-Lz5slj*vLROam&PRuX_4)VxIt$n^?Om*#(fRi@yd+~suaEEW$lHq60w=v zG)B+&HK1r>Z`Wx<(bP~$UZHXGgP;8;i_{QLi?~^q+}+=#T2`iQy!k6&Q`62@K%_qT z7G^FUK$bO1FyY$%U~EV5BVCog<6}C4VGdrCHA{u#AdB`-9?tw*{(L^1ozEV8c^T-S z-!bUiJTrvO??rYae?cn~tNe50l5UZdkiG`1R`;Tq|8j6hF`tJ0`^QmC&o4}G)80Y6 zpjZc?ikxck;1T}{@%%bXVcPoII0X<J1nGF?zeInr;a#iX^DPJRzI$Kw$8YRQzn=nw zmJ9}Z!QDVOd8;vXewOj6fOdF(mK_r%;a7<+jvMEfec;%1ei=n|{5!uy3Mo07OO68h zjso?vZ^mY6ohC3$g=JRGVf-0mL9umif>_L<zrvwl=0nsgl=+$Mfmq;=ZLN7oWLVKc zYvdd?-z@<sX=mKOa6a;Y*vw4+e50h<o<4-D;Z?1M-(DTg_fwn{HQAyMwi+7S+Uw?n zw~jh+<Q+%twG`SFeOT(~!^8De??WHnGWzg(P)7sxEpJAfr_exs<c)YFU0?Z@(TC?i zsc7O&#^%XXQ7fjphdgMbf;_-W%okypF`vWrB^;L<fyWs4&BAz}3l~5aF5*bISg>$> zl7Gqk&j!M~AU)?iy7_$Y?^k7sBpa3i;V-eu7mOsJW^j$t#l?;o?7i4^&4|I}LzigS z%$UQWMWO_7spJzZW7XSa*%Xe_s{g%?<Kg7~W~mU?=9B`Wkmx)q6ia0GnTn-eeub_L z)jEn=RbR^qbhU2SU)8<ttGIWo9u8e-8%sP~&8=<G{_JqWKG)E5wvmt&viZ<7`yBNt z$w8B}Zz=nv2cyGv5v~NcE^O-^PF)l;@|9Z@YJg?nxpv$}eEm+B!9C$JutnvTfjdwc z!Jm+vXD6xTqD`z?AfaN=zu>Y5)BuLRS`*I;?5LKmEtq30K+jeg_ixkk$?a!fWWT(5 zdWZ@)g7<m*B@3>t-P!@tZb`i7`M0W_e0Jc|*2m8G&%<fZ_RnAMbpK?2+oFkIX{?xB zZofu^dbUQ4UfBMr9<hIZBs${`w(Osic*r`r*w%@ImJK5AaPf<6pi{04K{Sjuw%<VM zE*;IS6xTtwQjXvGO6dx|elYbUu@-oXiRJ57QkQGByaJrV*%$BC{jr@kPk8s7EY08i zdrCcEr3(MTQ;<(1g^3juv@L|oC>ZpxoQ&)-CtE8-FaXt;JBwH7%iQ_ik$c~;G8=Ko zkds=fRT8#Y$eGR8m_6-}cJFlBf2bNl?W8BezZC9}cL}TPOrgfLwV^;WX@G5W-0Mr- z>#QO4*L^AXYEAb#Ylth-J?up&ov@CECtNu}9Q^8eY?1>FG$$-SI}5P3h5AsNr07OE zhN(pV=xhn7cS3Juo^!!Lyb`(j_iccBxfMKNa<0Bf)R#U5GQ`<c5L==Xg-$GIUIC7T zLEXsyj-ZSe-7W6><8t2*&Gm;(yJ4JYeQ@1)lq%=fSG_g0eixnEgHCA_@Zt}rE8;0* z4>{-wEY#CjmLAMQo8**<<@E5^R{611E~?2<J^4JRbsaAAPV0n_TYyA!VfRr?qXSfT z8Mk>;`Pe0l%pds7SQL_m-O1O2<Yo43dH%CTo<;Yh<Zl>lSh6E{dy<u$uadTl@bwv# zOdnvj1a8~^r*Qxs#le$PdBGiFoPf*z*e>en13c{^IiWsJ{=8^-r`5>NNdBJF=ykA} z(dPMc{b@hL!iMii^2&P?xxz$BYBO_1D>EcxTF)P_58b0Fxs2_-gjP8xmC_ATGf+CS zZ#HP<UU)(wuiOw^OvS_6P)?8>*UWSC8ol+0V&N3BS^>JR4s_hd{=QKPnx+E&<?IQ@ zoVB>P4F+xfivu~wtYj$IHZ(o75E@qyZEgXV<Eg{Xep>)+S$8Vk^8Izc;^OrDIGvQJ zI<AtB=<0>n@!@rvyEe_$m49AG(?WNr+qRzDbv?J6dTxo`X#Xf%+H*U+=XP|@?ZoVD zVH0=C&D}Bvh%+&NR+sVmIhEB?FrML-GoKGNapy?IfPF(!ai~629*0tf0wZffDh{vN zp_b~mWf$!k_VBPwb$HE!VRZQWT=lJ^dc6H)W)dCWQ-|o+lD<3)Ze(t}j>JSOP*BjG zn5H|>;<&Sj<$DTaP}$(7YLKgwH?H4f_i@PeV?$(Do!;t@QllFE0sqAJgwn_&nprqK zAKY;-0QoEo>qqTi*vyr}5G`1TW<6m0>i2<SPj8OkXAjo(f7M~#%qe;LY8Rh(63eA} zPNOUn)vvhUXn1<WLz<<##KSONw_o5+v^n@>zK(vjyd(uY42sdjKx#6|6oL%X6ne1~ zf=r?L=wg79N^DX!;#r;pAaOsjQNL3+x=SihyQ$PRJ;b7<@|l=_MaC=p#EU$mzh$^? z-mfyKpTdnxi<hmOhU*bf&zQ@ZVSYSWw*Wc8LPmhbC`_`uHF*4J7Ec9RY6VuJsjy{h zQoIxLj>Xyj$pA4$*l;yOe)-CjdL6B_Pb8sRS*1=BK?DhC&X0XYo74VY6b&iBq}=3q zW}em-T=%j%yCLX186*%sLjYb4rpk+xr*A?0dZ<~}ULjxpw-}gZLrf_@MD3hQo(*RU zOO<DX>EfePH<fFy>Ql|-#&ANZLibE;L-!iGE9Z<4hqYOdq`Z`vJ@LBm&s=MPx|G-6 zAN=j)6LrInS{H5pXV#A#GoP7Y=b_&5x^n)Q&scmMTFyCSg!!I4zwle5^LZ7`rj{g8 zF`Br5aD|=Sf)(QKFdQ2=c&_H$&1>+jJ)w{xH^W?IH`=VXG&3z9YIlMN20tLyhf-#S z#dEV4CMX*S!<QARH^=tmBUqO0k-25a^WcY_Wq2fu4}G%g=07AF<LE&BfRKK@$e6+o z=XtxcAsz%7U?po_^S0iarU%L;#@vk{n(LG#Ze1~15K<5~qPD-28C{WH&9BVpq42RI zV$5^6s2Wa&71KGyq9FfP{SYvPvCH?OD^4TW@{{}*{U;Emz0I7a0rvV)pD`O>4?cA^ zR`>q`vvK{By$iZ8fxC4YOba9=6VgLq3~J|uTH#QaD1+ZdbcxrMYx!%;ZgoBqJMyM- zBOY+FUfDaAjB^`yX}1avjTP7|+v}j_IDMA={1*nYSn6(9P3CdWuZfUPDwb@v2C#%I zWKJF5<h=7zjm$lv|B}=9EWzY$Pj>q;dlq@gzIy^bsY&uC{_gMD`VPru(0B~f&jKIt zqbw66AE774xTjm;qPE}v!}wnwNFWt^a#1S{cwwaB4pVzEiK54IVe~*Py$>E6CGTE6 zK|Zi(zTTv6UBIRBp!($diszpcqo-Q)ur2Q2*`?Z%U)vXct1d}j+BEQK9T!3`blR_5 zt)yRg=$-_1{_b9_1oO(gi11Mhyt#Zh6}wDfA1Nf()$R%UVCzapi}lR9y-2rl7`}f& z79KNAsOvbAa$^osi_~xEYqYu6R^?LF;WSaZ?}2&iF+3F-C|{iICk6eWd46+w5fAE9 z#ScnwPtF_5V@=MR#|&N_9ejrVFO&x=Z_5zNceAaSd^gdNB&UW6Shh{+ZeGF=prNSy zRhCdZ`9v)7dL%mQ=O%1v-X^O)<r^Ib7Tj7ymBa!Az3RXRQ%E4rlyJ5l1e+*)?P#{E z`e1AGX$e>8{Q_R{$>?w}^W9G`{5jYC)EP^K=eVE4!=Fv==g{!yBz_9Pr`coQXqlr1 zUaBx5(Uzj>cht2yK!h20e4Zt3VmK)Z#Cog7DpcKx&E=(BqqFa{{@z_a+8Vj3e7qWQ z$QRu5WF~V`Uo;#{K=>>apw4h_n)Nlj4~oa&^q+Hf`Yk1E5+{{2*-4{}hO@y{_w*8_ zMvFq~`5eWCBPml>W1p(?ppcZ?(hzOA)oD;j!>ta3!Z3)r#)Mfb+Ri$9SNPP+VutDv zqSg)POw6N$GjWcG8z>e}&a;n_PLG~ks@me5*Hn{}4zSWxB)IEoRer1JL&yOIrM@ZT zCh~}dYLp|lI^DzP<%3N~lmfm~w`x<?Lbzh1Ek_7UAy6kT>II8F{X$qg1_J&=U_sgs zRB$t-f!hMn?|$JUoQT_--M&+wa#V9ig6Zh4@L79~{+UMQXIh1!|FSdx0NV)tPbw>u zBuATnYZDEP#!O$!w3W}}zP8?5iw$JvYYnB_Wc0=)&N#%9;U`wM6;m$A@t8ial!*7w zx2pE)Q+w@Eec*toV%~VGVr-k`5lqD(&}Xs~`w?k7o_svG5Hm^W()!QG8VxTfTzR`R zu$Okh V25XcqLqp|am+qVwY8WX#==t9K8{e<yd*V}&IZ7bviBZwR6XjZghkiUg z-|hJ+_Iwm>U8v(VHuikYIwB$Y_@^9nfL^rar$U;L6)g?*@Jsbcu%Rz{c*=yu^(E^e z0KCjgj_5n+rwr`TmTUDk`2^(4P&O3LKCS&LwaC~mINmUMuyMQE)~3=>-LN;ie~t<` zi@$&RQ!o4-K@p?U14KyvL2J2){LI^}<*&p*<?k7!ji!Wz=)K1riF)10*UrgUS6F7P z5Hq>R#vfXPpiwvca{NHj1;!`Xr9Cv3P&65g7fUE=&8=8M&)v@FcC@=)013K??CTV0 zlb%BA{}5!576)^%m{|+D;>1$ARn*4x$1%DU{9+!|QyYqR@w)|&{Om+>$%w%j&47c} z-vQZ7bGdeRW`lKo$Qb}*_idV#!rkhOu`~MS2tA7kHrptsEn~m%{1>!I7-i+fVp?`D zh@Kddy*D!Zg9v6fWP_LMk-6Sw0aU7ChFJ4ottMx5Pzq&pPD-AIr{75%wAiLg$irtP zl8$~SjehfPn!(RmG+AV$kXcbQB-dlhUuC_{W5iZRLcIG8!xi4Sf%Ia+559S%=pVsB za%f+;V#H^I>)5~S99*Fy(`^(>J^^CBJqoU`c72e<(Vbz!b(^)HaqIR7^*My$w~rLV zfJPYy@(ejv3Zu<9C1u>wOD!!1Dxi4qUI84@U|xi~>|bw07C9pP@vMG)HT?02epCX6 zn}E4YZTdP*;2+>vYm$Qzm!9y%pJnX#TJR8vB#>dG7UrVi3^HS(<H2UpA|#<e(;_DA zS6H*y8y)p8RCj!yNVw`qN$(LyTlV0??l18tPn>www~$-(oSrV_ryY`w7Ntj~r>B3M zo@PgBC(=9RDaLYj`oi>g^Bz|6FeGl-=R(ThJ25!6f3|`%+JYO`&^ZU=uy8Q<32GZg zfpn>>&Nlib6s%AFEzOQ153_~Ax7?TF?$Uel5V7%Yvi5m9I8|>The!OY`1yj@-^*ma z3k+W7|DnXq-|;-3cw?fN`^+^8u@_I>TfoIjT~i{s`=dy7{cm~__a72Vi?$u{^z}mH z)Gv(d9kxna?@h$0*NqpgT~VL9!`NR$8FNw6%!j%x;2!t8OBQqA2Gt=e$lbPmVr?Ri zl)5eyk`2el{CW`SbxZJf)G*|xgy61KZ<@sEDw$H%JB^!FqLKg=AM~3tF#SymrQ>=e zN4^jGO|G5*&2#0y@FlU_<uhF00PHFuo;r|s)GZVN3cfmBNQTJhLw<4aHTxh~`-HrZ zPWMlGSf#v<<xF!g1ynV>NrrruTfC~;wZ+xZdF|1Wo0W%z?1I%zpF|oq@;B3XaC*<| zc>oLMSmMpd<bU!~zgTNLKC+}s=*>7_NkDg{lXUWA#4U4!JBg<gR3v1}2^Ck^XPwWn zvkQh?r-exn=#IL%);o%8P5nSUHR&;#8Fy<Wt8e2136Zq2=DU?u@wfLuqjjpt@*d`V zYOx-=ZXHX)A6R!PB6BE1LGbN!Y>lY#APNEt|9*GD4(Cb53z9$(TW|A`8!!dwADGca z|JGUmI_fss)mOj^rxfZiqU)Z9(zcFZk5g;_Oh>~pl7Xj)Mi%xz%$7Rw<6Qq|u2iF; z96aVfB%Tifb3LO7*8Bnble(piNA;;|I`!rY3aTpd;>mB%lhrhxw5}=nM6_9QXfb9_ z|Go05`%eB0iAcq>0_85{Q}=Dtmg%%@pDCZ3{`>!{@~JyNWU83SGmN;|9OvzfM5UQt z&EVY>N6iYi`!F$xCY5p=D(-Qqu^VAesiHfL9xso8|L0j*<XjxQGy?LAr?iM@SFr!1 z4pl!sFJI#6^f$3&r&qP+@`L3>X`YkxV5qYnl2_=s?sKjc78Ra*k{p9|sFZHzKhCD6 zod1>c_nrC19MDhsbd@rEXbj`DYwqR=OSvmn^=$N-`|QVNi`74}D4r^%!D6*$DJkkZ zPxtp9#+fZ%xtUcj4lY=IVSgHZH(vR2bk_Cy8eMFxYD@H*FqW1T+A<nDq^h;i7M~Jm zYdg(#`ZZjbWnfV~4z3kDcP!dzZ@6VVxA7rTCk;$6ElIUI@s1pL^@$p=63+$Yj21d@ zi9KN-Cf@eHkF`gW?a^z}FJ;`5@$R#r$$l1I%ulF92(}*xY&j2?9pERqB;-JhzxjM< zwxdYdn`~y13My9y|23ZX5>NV=>%aupJXFMY+VASC-ax$=i;m>*4q@?6ieO}yZ<ohT z^L%g&SYW5fm-$RaH<;#Om$%#`wLr+nHz<+W8ofq5aJ=fR94|q9uWM>VIZ`!D8|VKz zY+{Zd9#4IzB)H)sW~%C==rzabBeD`<su#WHYy7BBeu70yj3aKbz76>k0QSp?{mpXp zB)37%3EsSoL(EV*<;1yHZMEeRZMIaJUoc*#KXB_Qu$eBvS>cJpjj9+|8>Y9+)6h54 zE;M73fi;`nvJKEK=BXV;vO;RHzx8u@I$UL49@1)eyMU+R0c0V!!b}R}#{>P(E#Y_+ zImC&=J@64VhyrAM;qhG!rR-MZdh#K5#goUwOV-a}(*r#_EfGyD`5Yb5AtxhWnt4O5 zOQGqinfL^IGHYTQBOgU)-A`2{+lyYaQa9kZg?V5Q?ZL-l4a1D98Fjr06e#slF(gC1 zS5z#yF8K0n`m}?Po%PemEClQR*%r>lHY2RAw}P|XlS}Q%2CcWd-IH-VF`dm@!Erpv zV_jE_;%5)0+|5tz)2=+$U%_No!&kC(;=lAw%7`Ai{F*hkv2F;u+0k?I$*ey3tkD*! z0Al@Q!<UUAuM%s+XfHD@+o3EYY2-eB&t|mog!Ezcq|{l=ypn=7eXK0?4}x~6CyT=} z`{YWbqoj<5<sc*(d3zvlBt|dBaoarXoOUr!K22KW2dk;q&LHEuub{de`s?D8$cHl8 zypXcyY<&R~_EI8ro=Aok@hQi)ND_8pPi4W;)D`!?TP#kg?0V4@=kF^O+wKi}$5JPi zI~7}B3PMAR#lj{wLRhAk46VtGg|5mwn>byG5Bj?^Qgp-`S<(?)wfI=kJkr^hwKtGl z{win+4urYr6Wy)v0=r(1Q1T-_dM%J5B~6eJDei+0*Z}d4EDi*NbRVAXtRvxztB8`J z9!)CJ1{T<U!1<^Us%!j+&9C!s9_HJ4Z93(5yt~{lPP9SD9k6>Jx|j0{q#w@macgiN zWW5*s^ZgkCnzC4n9FOaM0w0K-`AfpPCO*u83t-lMDGyY;kL$kKKHTyA;&{q<GV2|q z^-KaLD5@w|T{BCyac;Ev2B@srnHZ7k*=;x@)mN>IUNaK$ZamqBMRBxwvPrYdv1pWk zR2eoH^#z#!H%|eRn+TrT@=X=MEL|s#=<M6|i-VElTB6_R^eRD!ZAH;pH}D4We55|r zFrXl4ZV;+9>R2&9x$f|c&QpHh>csT+iIK*Mq`PmQ)c74Q)zCf-_GEr=VOX3KmTa8o zVI8<_w}&JRiH>*z3FN#Li4P+W@w4E7O!by$tBW=?ud0sTlZn=SP~DV?h^;7y)~&fu z%a3e_%e>@i=O)h{Pn>}gWl64F5uL>*4^8_~aXb=`{dn>WFNHC|@rT+8>-pd??bYfp zA$GmW=d=w|(KkBn2AkA)k}s1}OT6T$(uS{lsjJRSO&#wNUR3#L;F2q9l1~TMPhr%; z+81gGiMpUM3xnB{#$z*YolDN1$bHR&!lv$f`IA3A)mcab&r8E2Xb+^5%e~4+z#Lvq zbuaf>qH5?TM~Duu@>w?R-J-MJ<7G|s-tz{+ACO|Ksy%wmLpC{e5i%7HC}^K8n+i_5 zr+HrLY^e8X)n23vGm*w&m~N6`^|YZ<>Q$|qe4N)u(T1N5EmgOQy%dll=d<M-a@9v( z#dyEwlP56Jf)`B>CM+snz#%>#%w7DY5T<7jPcMSvnW>gZ65^@ThJ%Xr(UC;Rd6_uG zv90UqO9lC~hOI)DM!FQ?Ht~n5(0Sj?Afxx}mTXVFdbPLq)mZ=c(HQmfGOIaSHn&Y9 zALJ!X$j`L5Q?ej<4M!%nsJVD8U_KsCT|rx~MQ6$CT}S7wFpw*wv;S47oVu*St9-#r zEiK_=;Q}-cOGX=|WWUziXmgymq4t4D&upb<6?gyDaJulFV~w#eCc*h0=I6~Ge5)}Q z5{MuQwn91tx^s!~4Y^$B9C!%;p5q%9a(k{mGtGHu<!$_k_H&-L<?V)J-wGLvtJEnM zLQ9NAXUJHzab@o^MuWl0iPS6Mx{xc>61O(xt_ovzp+|t*KkNjJ3wFl=){r-}?7Bu` zXW%QyB9bz$B63-Eta7WDx}w61a3=qd5KX~jY`6p>qKwnqB&V?3bt`UxE&76A^paTL z@Mbs$Ei0=3LVflJ417epJ8Ts3e`TxReT=nJ_|M1KII;+mKRH+bT$5vc>kjyYQJ3$! z^fxJ;K8!L2yDoFI)#zlW;*tI*=KA6{3{GLkqb)zzU}p=r{lW{6-sNC_^0VAv!7Qy6 zVEjMR!;W+~lbZz8|0Xv21Lhxx<=16~GLQYV7s{NUZRi@;&=*9RTRM7BW`CRi0pA-6 z03AxWg?>hHNVhpkE7X1`<$8D+n8|?$fDSM%WV#Iw8QF_RJ+zjCXXRfk?cTuWZE9d{ z-wK|kSh{a6ik8us^d62i6{QG%`xW2@%Q31x|FF0-en7G$?2~lBw$Ricd#QW0!FUQo zc4RztzjmHr3-OzrVM^7usRIe^U&?0)@N#B$aHGVGA@oG4$I`7_UZX9T_~*islSNgd zKUsFInc@-0w#GI^dHnqftV0}I9GyLnyE&Esw|0*22$W(kEgEjL%EaurIJMFO)Zh${ zg#l?oKH6tQHSLHHVmB`)rri!<5ohL3WBJ=-El0^J4h-8k-{QcTJ>P17=h))Btjw=O zaI^F6#oG6BekIGpHtd+|thH;FidE}r<nz`4Ry?e~|1Rp!T4`%Uu8EMJ|9tgdpRND* zkn_C$V;$TUT13{gMmRa71X6=8bl6~>8oRjmTAP7uZ8~a7S8+}urk;U3@xlJl8<*9H z!E;$=#x6$PZu?NLxzgNdzLdWGnpYTPJVLNOX8`7AsGvrs@6vnq01y6>9(Km6V3z{o z^<g^f=Ex=}bo4R-#GPk^09<ba#L)`@#Gf0N@j;uH`sQfQ{|5X?&FHX6j;;=;Ov_*M zfX!JbFaKQaot$m&2ivzNeOh&i*T--@*PJ0?*iKGZqxJVW$M@Lj;rQeUVUBFs@nH&= zXnT`!E{5R(M$0g9W+{f^1^BzFE-!i-XM(;Egu2DK9$Dydd{Ydg9-vltp81^pIXT;( zAN1}Img=^~ahix%ZH&&^%h(4~fO}P1Vr|h`d+-e7CJ$8BsrDQ3K4qWMYUtTy%djIB zLg9VU3Ayv(-t~fJ`BqJ5P4b1BnXlT>AhA@)8=>B|hHAySNlgj4>-953?)s@<=)@lG z`Xv<&PWe7h92FBXddY;5yM7cr!{2MF*HOFLY@x{y;qYh7>PcR*cJ(xafAWmd`pDZb zvcmtGPujdHOZbBSvo{kCM@;ljmerJogimV?nm4blwy4trtJKZG2cm{Q`@qzgqQozJ z`f%;Pj&JKQ2~g+<Qa}?y^v1n`q?W7`4y8=a$HIgSt6RWRl>!xtbP2sla=PzgduY1v z5_da?FG}6*Ty87e?fg8p@RYxX8}WXChcS!YgZ^5cnW0=^IgKrx%e9o>bGVjpZQ@!? zM}%y^ZkpBHD;i5*@>-Y^i0zIsa$mRr1lo^!ZI6Y^%RdbyAKzg7@n~!4e;OReq8UW` zt|^GNyop#L4^&f50$2Tk-}`bXaM}`l^Hh7Xhdq%jIXJZ1o@}#8?g$o8AkB13qND)? zZ=)g7wtY+84*DP`pFw|P!35Z)FGt?<bQ-7ygyruSOYK!YXYeo?aU)_O*o<QKB>r|a z+Tf{2=_Y#1irQpQes$Z+{fbt^s<8ELTp4PAUki@7T@gU}B;Bff^hGX6=;Vr6A4GyC zzm}0_)oJ*8MJP3_Z9A!paWC%#8~>24hDfxby`JPHt&wpn=7#^W^0BPEU#x)3iIE4( zju%6;`=Q7Qv2!|36UD|T4_hiOmVV;25)m<D2<(J2VknCM(;3CKCjfuyyQOSE^Lfvi zTeck|in)UFec&I8STjwm5FuuL)yL81r>HBQx`fx`<}S8+IUg}jD5(AIL>}D*J7Rd2 zSsh2co*v-j<$Qg;zD8=ESs5$)vn-#`w-h25!U{m0L}K8jiWD5PX87L3>wpM$I?dr* z8{f~QAL!WtC!lgvpV?5H3?IqNcw0Qq(j;8dBoL6kF?C@lA{e^eCS@?kQm<thJ?o0L ze3j)Y%*eE{t*g&$*K|ZektuyKjoM#gxaiW(#O71IjyB$BytOJFZSJrBRtC}8?*d%R zM5E2ual;6rv-aoJuvJS+1@)~jMQ>2>(LT~e6XoG`Z`n(Qz{io3c}7YIZ9>JGxb&VJ z0`-b}7Kzbn)2)yd+}HEq;nx-3!f3eT3h8$>FHjtKTw=+o#j#~?7uJ&<S`m@IMT_yu zmr&VEITT5O8b_Z`w$MT^vNf1Hf@5PO9ZQ~Hls-0wRKs4A_tsv=mi@IbrpUOj1{YDV zK6#4Fdb0S6cMyL5qe?t~1PlbsL}nG)TFJ#h5Z0G-2FA(SLm+c46X_b;!6A@3N3v6) zS=*RHz_7lD;1&xaI;>*0pqBNEg>Ef>lBnamnrnV)${NlF^X70jH<o!k9qqvg-ZvcQ zaI3!TJ!e%nT~>7&()UHy38{on>l{A)@&)ke(Rv*wX5bGC%KGl47H%od5I;ELhmut& zqNkQ$9=Xk1gTMZoXw}J=-mlBRrDf=^B`XT9#0ZnHO>RG@>BfFR@cjOA7E3MFj0NB4 z!=9tbxq75r6rm_YoeD0ZqO??t2)F~H4zR{I1pfhX?1}G~{3zH5)XB<|m8x)u_>rxD z$rG@Kfhqq?ZK`z)we4`;K_<_3bU|r6b$La+>fOe{fC&(x-W>P?X0o>^xjuCf`GPMk ziDe#3@13J(eAci^C%Mduco`^mL20<&``VoRXFReoJ10-MIoX3=rgQiu`j?gWnxt2J z$GGlS{wzr^{BQVvhtP*Bt$>41_WPV4OIBX|D_1Cw;q38GGyC+!8_3;`ji)Yx8eM>7 zb0bUL^UuHxpVJ!gjU|djWV=6|5~vi)*5b7BF0u{^!1Mb`=x`lGaqEjU(Hq)ggzSr@ z&Mfx){r|!Xrg?u%cEl)*ZN*e!v6ep&Zu2mZW63Mv+;jLdDHL<GS^6Sx@$G+b|Gcdi zcA0^KC1+v1zttCo2P?7fLC7E*zkzCU$_&xH$^iM>l+y{vL9>0ojgqqcbieN_Ve{3& zT=vy?<YgwOC>@ug#MRL7Ao$$6*zo!3L$dZ5t547wyIo^A!yj`Aojrcd8UFrLsdWug z+lK*F2d7YDee!EyNUuaMT41bz!r;|sWimiC>r0OBec=8dfPV$!{8ae=<TK#^tyg-( z|FK8iza8NZz5Q(X|9m_6HwDF~>>B<<?=|?3Jva;hGk{nR{O`=d|DHVfHw6!#{ORzY z@JtB*H;?;l_<yYz{%_g|{(l09v-ppVCgjQCzn<S$%AcLU-|a%50s0s4CUdC&2UUw- z6WaqwPi&cGZvyR0Lu`Mz@znaN_ofi|>-l))JF%*#ri>J}lmE``vm3Ho-EDB4SyVs6 zY)G|O9&T6$sz1EQK>hkbSx|2TII+s770Ra9j@c1|xW*zZ&Mm<hDy&Z)yGu;}_^A-m ziD4qJJK%RoEcuv4@m~{dzJoDZ@Qhz`L;OSK5rFKlwL)+@V@VEk<idE)tK7`ejwX!J zs0yNqdng{S>W(I)<*u)MC06;U_+4~UkegT7={MRwXaS#3+8vO?ouMr`5l~dV?6zqL zPUIu=!$CGbwkt^RlABJATcbtoAluCP2s@?hGrF&#DF$7Vw;5U&=2>6pRKU&Y{_$0@ z%EuT4^Yu!h_9QPtfTRtv<fGmHk?pmx1nIT<B1l{JY~E<f=1m=s0QA=YI_k<#f>*u{ z&?D^bFVnfd7HW@l1}Myk6d@1uK7J$#4mA46yWMNl0(I+mICr_)wx*|_;rBfru=R9v zBi&r*^h$!%RH`#B$fo@T_bGx!0Rj|DlTJ_C<VP*~yn`3=6<&q|*8X~&b@?^Tj&(v~ z*#IOcl_r?>1zB9pju{!6jaLPN_p3DCS92c=`>0>aZn2WRrlGr&!ae*@?))(3EH8B^ z8#yZKi;Cl^t4m^4FH9+pRc(mQa)|U%!<W*d>d6mrjVv7MlUvydFfVERx`Yr%32f-u z`zz}nUp5@X`Dd{0x^Kd~4|WlUgHcbjcmG*9VII30f+i`wZ;l^u-*0I6!%n~7+rDQl z{_~x-7Do+aEe@eO!I)zm9pr%neDD(%RGvMQ#)l1*8z1P;_}ZtC{GuI~CQX0UCdN0; zESa>tz!dFtRht@P8sCYGug{tO@lzS&z#iyf@0nO3NHrX&{+jBV@t!o;u__ll#c=<U z8!pq`hnQYd-8MM5I=yH1`wb00+u8Sr+V>3iyLZ^=F4#Xi+zXGf2NQT8?D_3b#@eG# zS3bH=8SgK0<2~QT`<q_lJze8HDID)TI~i}quIKkhYkSRaIN*E20XL=h5WM(49PbYJ zag2S>fSX%weE<2S?0_4Nwg-!NpaCypy6psP{9WRW;%IR{tY+DKW^4-1MV$`P7o+OW z#W#oleNlD`pCdl|@1NX}4K9S7soi?Go1W<p>2<zI!7ljGvDBI4M|Tx}dMJf3tf&a? zJ)55T#GgKea}8Y{FB8RVNcn1=PqvFcy=6_WE}tv@|1g`?t-;U45MX#0#-IK{_&CAi z9Dn@j@uKHbJ7dh@mzloNqilTXCiN)K%wpnp<+Jgh&Bvj4eEi&C^5Z}E9t;$JLok+O zkKq5<S9St_S=lsTrLlks&Yz3yc}2FrPA;NY7<Q<7<zT`UR5Pj0uI;y7p@2lYlFKZE zbb@>c9d&^??uXj=<BDFHE&6D#Xe&kADB7u_!GUL)RCL&uB?T|OUl<%YmY=>IzQYI` z8;G#ckx-5Lhjg!tos{k5j7g}mr}2BEmrOOeR{^(kblZ_ID{A+&l@Av4X1;zVZ(QJ> zw((@4yY1w*)m|nva8g{X<f6h-nduR6!}G?!dnJ0ZHXge%ZmnRkNsKn5H8|0%eK^wn zNz)gCZ?+yXEvIb99=iMq+xzQdu4PiTPq0}3-Evx~@oUS;p>d7wy;Na<crFV<o-o+D zF1vEhF+xf<oTqM)?SeVmbhY;_LNbluUgrf2^Ce2E+@zz{<@@Sv<jg?+!@l4ZUrne@ zmJiK+l4##8`%Tq4_5dBH;0i9we$c0p-`c$O^hSm#b3QaMU1Vs=W)77x{@1~um_M}$ z!IueWe9L=!-vIh<5sIlMjN3&$iE{C555u-;F&`Da3Esfzka2Xfgrd!k4+#eyls*1_ zru#v`!(XKO4SiSyRyW}WBeR7P!5>Bo-|CQZ$t$T2+%PDC0#1z0*e@hMCP`0IHybJ; z|2uN(B+ow`u8{x}7}<XqX&e;uubLG6lFX*A==D|<VU0f;ukc4=$+P+X`X=j5-zLHx z(jJEUc*7uQ3Gs2vvQjU3-m(%L#FrK0Aik_9p6t5}xtYulc94xg<@d(P5Mju+;w(pf z{SgqQJss-J52`mgEL#V$M?_+BT>&Dv7kd(ucWCN@q^wIo#y@ILFn$JmvYBrv;fjYP zb*i4eG|~qpv}A3i_V&W;uPtcZp4Etw<n(N38l3~C3xk`RMqdfV(T@7|eV6AC*hGK5 z<X+{`d!A$(C6Qr<<W-2TAz)t?+;X72(DfqHSW2>*@!XNaT?wG*6hmIB(!nN_8tKzf z<>-CynryCZqGtp~-ueg2&B%kFzPTZ0OOOXXmsrYHx5jN|asc?w-y49B$N~81FY_R^ zLnZLC!DO)%24m~oS!xcbew)WVJKhfV(S{~+NxgkH;rCN^Cc#R*<l5Z{%`lwsvn_ku zGN~;`Ahd0_XyON&7c#)^B_M*b(9O^W#AI7nUV&A|QL)UUvBbxe{)sDn@GeT%Q`)U- z8Sx-qbQZ!kC)ofPISXMYUKHj!!(yl7nI_=NG2EQ$dYK3R+auw&utmLa7BIuPLVN!n z^WgFOU>+=~4rn_k_{p?hrV~T5ZC&fyYNd?|+FHo9l<NYnC0yroE#^9hJz#FuLdYL5 zXQ5`#S=%_%iGh_-nQ7ET@BL9^LT%OUZ8Y3CUVC?37Q$GBI<NcS;<yNiZ4@<`haneM zG?r-Z6HBc8n_2sA(Mj1U$uP!B52n(okl?c>ksftgtg5SVD4*S>J!V)ND_uyDckt^$ zANbwmBeAN^hAuB<`x-_Xgt(DVxMg$0mE>S);#08`mwGrY5bVZ3=^_4qQk&c~;mDDt z1l+x99z!VcDs4YBwX|ey?4ADpKk-u2pE0rFPqAct#<<IWbDa3ooy=tF4C`;V&A31C zr{I)jTAMfo*!d?n{Z^NOFY(y978US3PlEem8Dt1ZX<zINZbW*k^>N~npSnIuG@FDd zHzYHiu~vxuUQ@Ge`%c}wKtrxt9&NdYvcdY(jht`4*Zi<=Zm&^bZm2~k7b8-k8U<<* zOPxPS<eQn5s=%vS5p9+wPJPM(uq#B-m9f-pN7|uOW-*vPwAcJ(R(L~h9j>oWw2a*i zvAAFU^D|QahqrTqkE*&BenJum3Z9^#QBk9!CO$z>iJ~wv12Zxs)PmrxQM5IJPYMap zDiWAPay*_k?I$g_Ep1wBOP^A!7#~OiNCH?5;sZqmd~v2@D-Y$NmVE!U_L)ZlTJNpj z$L~kZo_+S&kG0oYd+oK?T6@^`ltgol;7fU^efmZ=#@MzC<rVrCz9=J1;P3|!up+iZ zWvlul2WyFkU=OlFMJ~Bl#1AX}X8}x_d&-zn94!*RjEiSP+Is;9!fbYD7QZg5@GW|# zW$rA<hKf0;5gyv96^>8CGCD`+#Oq(2X4Ra%3nS);L>Prtm!n;-XyeX5dV@7intMxc zz4N7W_NK(wDMsW(`7~MF0C;6uS!)}4$h6jK7*FSWDvy<|R9r`yqX+-akCsR&;h*22 z8jM7jtt6u|aLF<uCaeA*Yycwjo{@!Kt$r4~Av*$h8f!96JKs|b!i+cU^k1pk<#VLZ z_F}{TqAQt};7U{vqYEQ87ysy?J3tg8_^;zDYbMC5yFpowS%yRoxrnhS-3WsJ<XOZJ zxql_>6kH~UvgzY=88RJ1UaJ#`Y0|(tCAFRSJ(1e{vm7;oL3WcI`IIvc<;WtzX^P?h zyjkk=g*ibc8HthSUUa1{^NFdl((XTy95YxQTR6TF(at1&L_GZX6e3!+Pg1#f@%Sq) zY=(mu(*zL6@g80+8!&^wUq=+;4#G~jb1;UUL#cx?R8}Oyuz@wR!5V7jc;>v$4fjsN z_hM-@{lOIZKso~(72c7>M#DtNPtoAZVR5-sQp${mMOe33StELL6_dA6CHG4kf2sWK z$sQ^GR&t{9z51^Cg(iPm*ZdtPX!%Jd|H#5rJ)6jfF=ojnzLbho(I0^$S!(18nJ8~F zLS6E>tc-QOl(*|N!7VwvSMu8EXKyAu!=SpzAMp>+kIE4~B3#t@Z6k1t+3!WqdRPdf zdLRz6N=}#P_GflUc-~VfN}6>PxQ&P}2k~JpEJ*xGz6B#rNe7Jj!Ad3uGj0M)9+}R3 z<9OBtogaHnvp7}xb=<}{^-SBp=n7k}$jN_`;~=&roKd^xF0AF86-1o}rK7BX$`U%( zMr1pL2A4(Hyod`|z+mQEtntlZ*&Q(TNY!mc{!N2@+XjivK(=<(tV_*a(hsHf;DGf0 zzN@{!*T(@a?}vYeji*?eoZus$Vn!_@vmD%swjyZaF{aMPvd-7)TC(&R*?Vr)f4Bv` z8;{9(k_&Qkvfril<0d-gKwSvgkt4$2duJzE=oo63m18uEi-%NG%5y8v5}pY0DhB}% zm4ko}YUq@u^rV4Nd)iP|@w2-lUdC4sR7p5%5$}IoHaZ#okn9$eld5_dC6ZjeITmP0 z<0t`S8~pAaDroNTCB?0#XCjs9&TA>ZkqVU$vfNKo_QpQUm_!J9Q?N!BK%VtH8Ahlf z%Tshfvl;TKkdbi3EH6|>v!{U3%v&v;l#P3sr`f5;j`fLV&Q@<;Pml_R{ku~bV(R=| z=cDOg-}>p#T6*2H!Q5vUZhCI-(v~A`dv*GkyWdb^i5ANxS?rVC3r7E(sqIA%WYh4E zOT`*&f`OA=v4i)6c^`EP4$r5{ZUxYb?Rb(UTDx}T(NcVix2%|_;BRO2@bRs4d#^6e zYH!ZL?XBWH?LC!ui1yy<XWAR}h3$pyT{`7*B+`mMSFp={tLgWk1n;lu`d;vP-Ul^| z(MM_Uhr4iPDNfymyC&2KG^!hw>x*dft$GuW<pY6?BcvB<)B=TMNP&^2K&{9Dyxgi# z_C4h$-bUECUA&;$Zk?*_tzT7hT^zeY=j$9v@AdXCkfy5c=~_!4spXHRmb^~2w3;uX zUBB3JD|@p!G|F8sSz}qG#jEkcIm9^bGA{>XllR&ohH}4Dd1lv!W=d|~uDO%Rg>+K1 zCnUr^!tCW7-$@iGir&ND%kiwIR1?nzp3OWL@odXt2!D9m5Z+ZjZ;|~SM5_C{HlD(J znt7HO3Rm8<)aN~o@SY_p-sASG5fq%ax`ttPWjhb`V;L+=cF(dhhhoPT$lPx6_Ojrj zi`|TD_gh5E^Z7rU|JnR<-UqT+s28EQ(_LMNXgTx7sM8$>F+u#<Sl8TBRA2ESH^}5! z3(jMS0tdgB&*Pi@|2v$!zT+LWWF3h$`6ueL6#uCR&ThfV&yJ@PFeJ2Y*&Fd)Q<;O4 zDDcbADX@V80F)_E%?LnJZx|zvspTd)fIrs2BneOB=c3en{oB3wQBUc-ShbU+oB!F~ z8w0mO2C_9*Y$Qi<`CfNf!Hva^fYn!*gg%5{YxmuP;CF;`7&+A~xTiy5gzrtLK^OmY zBu-P_k1MCIjEWQjsrObqu8|MMnXzwW>?3qxP(yG4V=&l=nBM#;K6a}w(pL-C%!2Xs z6Fykg^P5g)Ei^uuYzCWn3H<AdFuqUA4?a0G!nE8BKal_kVW*%U2U1M8Xm>UNU{UFA z)hC*du*(7RyESrhUypi7;!`Mns&2yvjRBMonJH9!5bVBUbo+Ia50`}W_A5cRZv)3H zbVH7lKp|Fbt%7KdA1ve&8cuwhEUUC&%eM$YWcBHuxPjl8pmIrhb5Gm?*}+{|#Ic0F z3mxiRX~8=I|J&2F`p{OIE=iFm-y<lGDx!_MF7(U&i(Nq$AI$56V4J~{kBU;#xS*`} z5Ku|>gnOOo3-cTZU{nf8Z}G|zsf_g5?)^)kN8V{!c~kwoKIAprg}(cb^zdE&A4kn9 zpZM!9tan;rMIv$G7q7ps4eRngTZmBouf#te_vP<HZ(1h4)Sq)7`cHYO0<nK&jlxQ< zQRhDN4Ir+3<}D#13++IJF&&S8vuu{UJb_v==YMiO>&G`OW(iQ!0FFqAXAJFJ9Cc<6 z71NPGfeFSSI}=PB+s(ODGsm1u<>vE<(>>};E<{Z_$cp!-3o*IV+PRDWGm5;v-|tPm zXsfZ9wBHvi0J|m7@k(toUcPR@9xm3_m?FYvSWb|n-Nntm9{t!0h#TQPwpDkH67t8` z5p46?&+jRVid`ii2a3@rlq#+rDgLD`?_=it3J2yh`v+QkAp6kgeX@yVfLWVZ;>zh2 zf^NV04+z>U)LRA#j7m*>LyoJr3EFk$HbK)X*L(zGJvTr*Cv}*Pc~73!GsnMafUG^< z+r=!kafIgA_8)I<M;8zFTF^VSo@U<<{`8|b@23s?e0xAdU4bRL!NbIB9sh4i$@Ka6 zgFC~+9aeSsaL3rfs%{mlGMAZFByKxYeNAnT3_E?tO_hI7$=|<!<gSJPxM!)A`n_Y^ zxLKdRIkDi&$>Uw`AMg5Gq|thXW%UkJjhq;mXkjHc>I&n*-pH376{~)>>!CzKjV*;~ zuxcMHG?CvZJUxqP-0@fCnpNYdlIql#fkjP)ClR7VcxvMbBT^v>oRMvkZrqk2JRwM_ z7X!03QdSjTbu4F-^xtf8Zt0a`FP?Xz;3QbE262ilPVjU0r|&(IO>fBO@ec;d_Qfd} z`9rBr#htCRAuE%oPxsPIpY_k_I3_+cm#Ix%rn*}5WUI3hg~V>_PTHNzfnwOYr$sK! zu?s!>PkkY^HCgAU6KP%cueadYH_kLNQdnzF>&PkkQzRyW28C_Ty1ov<%0_bx+&R?D zF;OvJl}a&=b_S9js-Luu9HCEp<RtPY7xF_+bJJVgW-<)G$`4NgY?Jq<EaL!dVP8Ri zA6{M0XNg~+`Z(XU1smR46q5JDQaBbXmcRw>?e#>IuR%{I;!$!~7R7MI-#%DaYiNgb zuTo50#b(%<@Z5oQ923@rje<_9uxc+6HdT&`xkSWij&dDmncO>+Z_OVltr;QS$>(~r z?U8tEK2XJK_2`)W8RlEo{1f3S_Jrp&WWoSRuZ+Jv7a>jLD|=N-vT)uz9m54|AA0YN z7yj^ftN|ND%BY58&sk(W9%>9by#oybAEZ(@wy3f-P(;J60f8q^dchzNTg5H3;bKvd zK3f?muh?hR9Z4$@r+P=S8+K25N>RkU@O<Bnv5~xL=F^yb?eZ#scPy`ZN6fC?Q5on6 z?W<9blpM=`hZ&)ottcJ^=n~}2cX5{^<!5=DD5Vz>cg|MPO}#N&d_ZXR7vikXfp^rd zEMzaG`$o5*V5i7pW((xsb8{Nw@WU;hcby7ODto7*N(vpSoL)lfK)h5Q899BR`MC(b zFw`UgneUJ&XJn~>I@wWlraY|ZF1@pAe=czR&*Ud09ue0E?UAvKO8NU@n0N>adude5 z+gBGQUxtr3dyfYLfb08Sj&KgQ-*+^JgNo`JZw|DP#aoUj^hrfk{@x0L6biN6tcyjB z;6h5CNUhf%dFtQ0P_Ql{E5+4tzbhxRVoZuTvx_3mh%kb4z<OXM=Pf*1s!!#2^@+@1 zh}&b!+i~TM+BX*l>#r}WAKQnyOt8a=xRVM|-0M_z5OHC%Ot-CA7B-ig;uktiXT&Yi z$797jOe8M$e1rlKElXfe3jwAUOKe7~R<<@FXUY^g)eG5Erc?%6N8BQ1Rw8yUrgW5T zW8~x)V)pDXHr*q_PG9cdh4km?mMhAUxD#Ac<YPw-lW#C-psbAjBb*}Q<*XVFuli4* z0EVGB?@1>kb`e<37qNQ()FEtN!T1R0A1)dM;j4<8xMaza3@cIo1TqVY;ee5TTaS;p z1-qrsFf-)H0+zAY4d({p@68Rk3u_o0_2fuv<y!*Q=$9)4cK8-C?67yXY&*JTYvE}* zu!Ej$J=<Yj0g1T5fN!tKZg2$L2+tMaMu>H;Oev?0K+w1_`&Vb`t#FPA#KPS!66%x? zUEB({rFsQWkr79oQoK_LCCQZNwP{tObUa_W{<Bi`!%eg6=Qv8nD0m(z+go*-uZiyP zcKty>F4!-(ocouxRrg6G>7QOF;Acg1>HikF!@SL62%RR;oI(i0e3aVKlUEEz6!ITC zP(`J{0X&EGhFw0F>FJE%u(H|OMT41+Vy0C$S%gE-y>23jM4tR&U;Tk@9@|)Un|)VI zVMJc-HNLjt)XypKO$vZh&EOOgg-8)%>e4xyuB=dkapv?>z0^`%Oc>e->7-FSgiUfu z7BBeK@0E*LwQ3G(<dmVbw$ztrmiY2aqc6`a;#ti52A*Jh3~ZlJpOR;Mh;Z=6n5QU{ z9-U%jJ;Ev&3n$4EjQ^4=v}@IEW`mS?L#%?_OK-N7fwk{KkUfjy-W~a!*w@%RuF{ny zOG3_G&JRvu^mw}2`$!I^U}Zmp2WBunV-M@=Sbf7RiK=A|KIEH4zXKB42OpC84zray z_yFfBHu?5ZGkOaPt=Ni_*Er6eC(8l<Sy#hPvM-~k?u&U**jqu+LsM?%<Z#xF6QktI zNny8FM0f~Dy@};|>!A-k)NnYp-8?|}QR&<=*m_1D>?#jSye>IQ^P@nmUD739m%N{y zdH=hv?<*4bKGZj>{%rYakx;AsNz}P4>QrJ`F|!D+^|JvImldvj_>7Zc?j5;f+^UZX z@xr(6{kG)WM@QVM0h1G(^oLmT5uzOJB%3^rlRzTlzABrU6KI%oX=O~#VkJHQ@KgkG z8I+Ov-utbOygLzO5Sy5hrT)odWowP}M%wkgoVm~Eam~|EKO4ijt6-f!_q*K7ii<mc z%)M<ut{h(x@29SXjHta$93<te3P!$;J})A8(Q~Brv?Jn12Qc??AcC9EwtOx<>cww$ zRi<38DZHz}-roZepb6vL<Xy<Tkue#Y_xxzy?Tr|N=lijZju$BwbuC@1^}#u3DZRj- zJ@^KOgn!WfqN|O%H=vHLT3;wm5BEw0Cq4tF-NWu(lM{zAbnP=yay<m*XxR=}00<1& z-M-HXTm<9-ewhaE_lIe-O=IjJQ^sH!gdFDXz=k=WY0KBXj&bikd$Qtc%iH<hO#Mbq z=_J%V^9Uoroy~khD@ZQAx<~C`_d*6^a3j(xJ7f+kzYCweu_*B)9C5?$NbWlwww35f zOA%a`;u%5s&3{Na?<l`pG(q2k>jB|N=~)wFZI`YAfjqkQZvGYS-KQFOs`$Iq+tgD= zG>4LW%6+MHdkGSOOcIN}MI{YkyD!fwt5A%83|u*|a#-)ggO!DI(At>2KPJKsXKjuN zg_~mf6*b8VG91Q~=oYp40_pb!syO%qtM+dq@|3T&>YhYB5V2o}pqbN0#C9#x(L%CG zy20hAhhw+5l-X%wmf*N^8hu*<Yrcp(S(LK-m)W{jM(S&3eU+=x<TA@C)L9`EZ-{5f zuYKZqNISDS(waX&ppLv`P)~5g(4bub?P%0x0Ve`XWbdmuogiL4tw>6bA)s@pC+vPZ zSN8^N9rE}cv){*3vP~x0%tVw)^iK-iG0dgWe99!r%sAr@C(plkCwjP&53<b?-05~m z&~h-P@4pl^cJ&Y%x*J4wc-``TemGBKL*QHiEqxM!J-$E@L6k~cyPn}t?p?XUrK|;V zHGHJ(*+}`nthzeVlwJ~XA8i#5Bk}e1+45eVxVy}wwn5E){1ntmu!wNHon6WU&r7kW zeSW2VpUh;q{IwYcyq)=aIId>bIWa4^9nsDwXxSyW*W^M~&lN_?SIs2SnUOH<?!ta1 zC%;9!G37VzuuU<-43@o+8Z{Wv?j7i^!vew7w1f*UR~PDs^u9Swud+*4+Pzz7S7G9< z=1V9QETIbyL8^(i70@#jJer_$dwc;{Sye!FvpHZ3bc>enn{i&meLw-h9K5cMuEV$l zPGi8eyqy=bpY?91S`h+m&r}?0;x?t{<a$5|-yjI0Y!sQoif=@f5wx4j+PDz2j3f80 zc~#PYmL9a0#jI9lmx&m%E^43d4m-Tkenx?c(t*fu+d0yS#P{V{^Y5dg4E;r%+BeKB zlvLV_l%B|uE=27TcMMk7^{GtRW@=`)tjvL_%sf96`8!|Se14NSnTA3H1Uw`U5S|B9 z<7;JV5&J5X*3(fsf43xJ|5s_uzG7g^o<5Y18xnt_RKOjZD@$W#h=?}#{zOKq?5}FK z@IX(t{AC|8+wUn5><P_8?(%vU$b>77Tww=y7p7ROoR|pz)8Gxl3-8WTUWnDA_ZlJ- z_|V9Vw81%{Dm?=X9zG@NJ}8j7!hJMpo=@)<kkG|u??JwT6lJQCCtP9Et8`n`9ks{j zr9PJt#oW=|sMahRm9`_iD^~uj6_?Z1puIm>wzH!pR<<`B-^MJ{;BJ|aK`(OV7j}jb zo9`qn;!$eb3(O3!B>Z#rdy!l$l_oU6Qu3y!@!<-mR(l(^i(%GFq`YKFePjjPSZanP zSBImysVSCRnPO8mHOE95%%{KAzw&2MV9tzTH1=Ob%o?+J)rcs{WZwcI9WfMRol6(i z0AIIXuLLsc1$^hN+mD@=+wUEZj9!w_^RuIK5)v|y(!)*ZAIZy7dHFL+C-0{GPbKSc zvP71B<x_GiDQ}tbmFe=gN%?3N^B%MB=$tG;Xc#}KEtaZHq{Dit4P&xPTjpwCi_^88 zNNv8oxrrF^H~&oIrrfkJZC>DsrIKcp7a3~H$kRqY5dR>I``kcSoWC5n`8YZ6gTcmF z?^(VYFf1uy3Hpnmh}a87%Jx|E!}@Z!$W%<KzGGQlk`{eLTtpbT`;9c$XDI-iLDWy^ zk4lr-Yz{a4CSi4yYLt!N%M=n~lZ7W*mQdkPoJPxAth#rlBPhp^QTK8R(D!dl0a%HF zs!-fQzC<1oPsw~roCo#b3L#ROb30XYV2a-aWyUzcy@mLU<&U(Af)`OrN6Jb!u?SP# z4TVr1e-M_eqG+GVR-a%W%3uv@SFJAOR4aM{((>G5+8tfWg|w(nZ;H8(8fJ@o0V|L) zH6cw*{Gi1>UM{UtMO$i>O39RR5VIvm-yz|RFV3~w;jQ8LoF#cPN(Ze?h&`;zHA0)< z#JBEIoOs~<6h<Dl7YvHO{n?<kqVJD5k3MJk>FM?hmG<|9;3Us*)YIMTp|_u>G7U#1 z6LL#uD!Ij5Sc^}Ow?c7-i<hsf{<Vy=EQ3s{FJKk*+dCz-io)<a+N$42)f>**FVgj~ zbF}NfdylRUW;EW|J%ap~-jbDnhU8yl@>kxi<&Tx}N_;1g-=+P|`Yy%iJ4+B47AwNK zy#`0(`$6ZEMSeru>C76)%kRlc+>WjJl8-RtN(ShwFJkV*j<HTY-ZZgh;UXffVhIoc zQ@Vo%VrV7UBA5b_ASZXl6apgW65Hra3hGiW2vacG2!?G$Y>9~R^a^Mw;>!LLv~ol8 zM1tWI2O0q3n;@Szix48)SX5pHC^_B}2aX1}x8p*L$RvI&=u(^si@aZw53U~odn=k# zXaz<$daiyUZo3F*Smfo3hmc^kH-k4|Bkql}1&c?Na%s81L<DF_MBHV9MRcZpjQjL^ zX1(zRxIx<9qX)DAJ0mt*RKWr3iCXELrLwey%Ui8`MWGjoZ_gt_j@Ehqv$~G3;b2R5 zQVnnUurJ!hGXw6B{7PHpX~NJ%%3G`7kL0cvfnoX`*)tB|)@pB}b}6i<Q7~Du40@La z*wv*L6v;LSuGy&-MY09OsX+FCc_~>UzB)f#zQ6hxDhb8+qmEoJ-E+T|BFO!RrpK4Q zt4JDsCxxWn-Q9&AeJS(8Y<hg&bojzf^!U8#E}2>M_<V*QFZ^=!*j1`MG(E~3s6ZC~ zo#^ljM8V`<dafDGm2Wc|uHVe@{<up?G@O;Mr1*fzKj}L<`kC8OqraQ{%!D1h-b}(( zy9Bl=Yt8~CL-60<-a`Vg$0(77m1YmfDuZd7D$XPn`K+SUUIqne%$<x0QLF)~{l3yV z(E->?B91xH-B3}iQC5&E+^XG0k-e`F-2giJSTW9QpPRfpS!NYgaaKVVZ-su4u-$2e z?3TC74}>(c<7VYr<XvovtDvqD8~h+|vYc$E#W>y4z7OZz<sF%-9PYt6StC3k*kiKa z0=z&%7_dLTTk_bW3QfNDiT0;C>OQ(k&?C&#U<6@tCt#h!duFXhCACMCb`Ue$_qGSz zUZ8Wc#9WRyA5fv~^g%Bof(0QzX9)7zi2?U+k=J~QJR`3Of!&flU;l6AwaN~aHBCfI z)p4=VEzPy=6|I4UJ@EMsJZHPI7x<ejpx$x>AJusQ0C;b#38x(E-lz1dSX)4@f|VV~ zx$H<@P#(i#Si@T;SoR~A1>9l1(!<vc3H;?bt+6r?-=8;qhF>1`pe;x3p;`Q8yCK)1 zUHHp(Gd-G}#b34?{xY;He~Fg2RR2QTOd^lS(HO^XfA<m(u$_0%4#S({t0#3{GwWw5 zft|1g0y~rOc*lR3O<)Jvm(ND6S0WL(Guu|E%6fc}(pue%EJ-M&n&nRS`L~Kj!uCT} ziR0FsM!H<A<i`@!Y%RD!N;v3)bPp3H1ixquslHgKl9kjaVRMKgu9q4|HdX^w-meM< zXlZZZ7$>?{NRo|*Di`;%u<e$6sdJIY{kTC!cOaS*?-h|~WDP-Ct(#;+i_?@qp_$c^ zkd^LPonh$NTg)eEr58jci**kn&IX@2kvSnX1VNDit5Xda;%pG&%%AMHB2QiPX-P5> z;e<Lb;hQn;&-Mx?jBy{`D^riK&N+jeC3vSu2h7n*nm%y?OB1K)@lwQDro@@vFLU7< z`1vL26a4&8D8t~V?x!Rxji2fLl;oz-GnR#&ANttI-Yc{C`THr3ewCT3=GmuDJ!*tR z_bW9CQ(S6D6aV6joLjGCdNcxBicD(&9c0R$6rmo!TTu~O_lgwDF10z}MnD!6G3+qU zfNEb-s%?h0hoGcDe?Z@SZUwToi2h(x7P(GI=^G->{i_W;POh})6#*H^G2l2EgsilG zkjgaBAQNDuGYv3K#%-7eHJ52Zfv~drA#F|}k?fT{2xOf$Z^#dXXpNRmREDU*tYBL- z7p>#DF^;^&0uE}P-I<!p<PtBp-$k3D<{t<($CA3d{wgb9sr&-+m4A1ZZ&Psr7Mi0W z_1{+dlxuYEfH*6Qp!?-Q>k!_15MJ;-2+u^?XHzDc{r4a~BIa-8#+DTEdEfd-$S1WX z6)5=>Kt6h0m8Pqzf;0sU=7WGcs{=ZJOj@gqA1JWm$BUHhghY(2lG9LEKo1(=^^UvO z+A91*o^I2;j<wd~zmN~D$M?8ZC+5ZvpoV-%Fih2^p+>mH5+y`g{n;MEZ<=Le7j`uu zAm*y(@-=qdLaw%+^C#Y<hRV3=Vsot8bt*tS-6q&TJAR9Pb2H{1swtY#rf4#|sX;Gt zoZvNJaF(b)sFQ3k<@7>3DN&E5lXDj7IhW_|kZt&4IlkkZRgOh4D3fCmx$99B#Ho>* zN=)-e@!EW<l4AUQx>oX#f41Tu3^M(uc1K@CoC!<<C*!tG0N8;GUX)%XZ_X_CieEsl zfnK!ntQQ#btl<go^#cb2e&1wWjD}O5aH_x*A&at$L<7=S-Sf<Gyo8Cf9-pr(PJCa! zwLrYc!_Hx#fK}@Ozm(?Oy(d?W=5OWhzMTdw2t@7&y!2a8-90c9CJUHr&_U482@Tfc zDoMD}!rb`&Ue^2}ynhC@HQTy1;K*ctdPN_0bPReiAw~dceN<)q3F#Nuq5EkX7VP-q zRwwwaRvgsoGl<SzTfJqcwz`W~&_Oj8d8*Q1gIMby^g8ZP9ZjKCssv{B!MRyD2nV!L zdrAqec%|sBn&@UH_EGS{%W@c<GV<P8CLPz6IqViZsP8aXZ^hj~;NaiI7<N-f2~Bc_ zt*_h*7D{QkIOYEB+2VvRudDspIE?qP*JrV(b5|C{WNWxpVCCH3W;iavG25(K>1ITh zHcs*4@As%WW6<UdjsY=+Hy`cSRRee3^0%rJ;j&F^K6*^Q$5$=!ey6<u|Mn9uzpr|} z_4qu+Qlg=zz$FHSg8vd^!>wN8-6dA0&YWhe2z{)?JyC~_YR@wF)Q8KTpMG+u@h&w? zF9)7idC5|#eg?*@yH)mZqB~&6ckd`fJSj%46fK^tWcnMKFsF8h!A1PbpRcN7K?SDh zV7K?EI)2dRv^?wI?+F~YRPU6#N8+FKm_91C9{%s|^IXGyo`d!zPZlhpJD?U^0i7C9 zfT`{Erc3mP<2AVO5eQ793W>^FECt1In*gn)vQETTk5lJ_G`)3RztsP6Z^Yg&i<U~0 zmF($M<cO3%XBi)Pu@Av+Wgk_u8&T0)qQrHqt(q2fM*@@Q70-_G_0c{&*wefs@YtYu z^%cOQMc}bEc{h5Sw!m^lPV{S0=OXdCEJi2#Tb*ckQf{($1_2}pS6#D;4#?Rbt4*%T z5MDR?V~u}4F|B}-D?|4(?is(Aoq*{38FyVFyg_yjh)4S(HkVj^ha=Y;a02OJfGxh! zV_Cz+?Xi<XrF&_`6csNDHzHn~MQQJ!Z>ROe=x4TW5gxk58>+&Ekw0aA@UIjPLhkG% z2&VP;kCY_JH_X80bXRg<W^AHg3_C|F#!BcH6lsQQH)Bv;dC7f>>u;$JNwt>Fqw55r zBX&!K$(teaZ_GyNu(e0kaWDyg{V|HB4uVo|s@@qXdky__Cw#tF`Nsd?ep(ezBXOO- z%}HF_t^t&<a7orWG`ez#JpQoBVFS%DSFVM*It@^Y2Pq1W<8D?EzPTX<!ar=wfN+Pm z_$>p%j}u2{;(2wouMlXuz2z{$_oovzTE|uv^_r-AQ~jDyJz!*0#W}swz#T;al@<iP zv2r3<c-VKfvLYZzh;i4adi_CmVEjM-9V^S+H<eDjo`Bc{#$PF`NYtLn4o!^NMii#* zca$qDwYeJ#%~g+S`izyoXWCnxY406v&o?I10ECxiwfFR4(%xHQOtvzSWXVMnUee#H z+op#C=^?V(9b$+LUv7NQ1K!m5?)$>=-GnrN<dPcScM1b~MxHgkF9Xl(vfBF$eP#xp z+*)DZ>BEyy%g(rx#AaCp(f%{$e@HSjtsJTyV$9hD^d;x_c`q}5v2Hn3f1=K`Vpx$? zJCaUB@vJbqGH_~cVW!D12k+~$+WQPXlWH%q88Y|Bn%jA-gi$}lSij`_{u8MqHNQuE z@%XB4{@k&Bd3w1gtG)hN<6~jZp5GGYccAy3!*g<m<y*Bo1h+9OvtRMLL(7R@(NV;L zdar&^C-3iL<Gwk@|B(X50I!ti65sHy(Koz9+E>Fnur)gp&Uuw^9C1P5-l<~*+-|=g zKaWS-V5u#GTWIkA_wc^w{S3VS&ahJRdoaKFYUt^RtoAA}70R^7R>YnH9mQ(6{Hp}> zQ>(T<U-0+aWWtN(g4)TQ@b}B`r=P!<8Q(A+pU<DhbVgbNxE}(D8EUEglK6XWR(tKT z>HS>(`_;hnnRheeo7}0rL%?$=1^z>LUYXV24mqgG-0!RNhY|P#N*!r-k2rTI$bLz9 zzV%LKe2-{*deKX#_3XY8#j<+Vcj5L-aMpptmu&BjtoAPN)Lw=k`26)N;XenE!&3b2 zMS7gUmrQ#&6B_=rAA%A7GmV0Yrp^eAn06>Iryat+?D(_#Q{AaQ8TsL>g!ci2sMPo+ zH0hzn|5d{Kds*!*1VIkfUK-vum<+t@YA6U|KP7SuIwj>(Zb9BU-E*t{q0_z3qJs10 zoP`hZt1?IFFZyj*dwfol+KQ(<AdFd@AB*w|`Q+D~Kl%9=e{zg`qNcd%Rtj$A6L$Zf z)35i=<cr~*8Yw9M!Y}?RUx-^~W+WH%;ENS960ZOlC4SlIZ9$^#i+b=)sc$(T&D2-$ z_!oXLNWO47e^K{^Uv!jVgnw;T16O}x@pdVGPFC?VzOeW&DW1}OrNT8}erJ?ps(?*j zy@?QtU48oM%|#?9sfs7mNK%whe71z7=%Pqwdn3L6T@@dyCb1||yZR)egG3<spNbOw z_O4+@4l;ULF#?zx%hBgIVp&v_JR;dEd03b54(3j4F?EwIV!t=p-;71?cm`3!j>nd$ z2l~DFxEr<Z>*zQcl}J4n{~~|M{;{h+Guo(cSA0P{ov!g*!cBM7{`}s(6XUbKoIh#j zcq_+CQ^;rZyVdKx535?cQ+$^myeHnusjGoa*Z3}Xv`g_V-YYNi{F3oq{%~zpdyDrT z)ZUMIPkS3z9iqJhFPQc!zp%ZE#LS-@nPtD<C7z3Yps(3`N<it9e&v7SKR$c*7x<5V zgO|D;KFEJO0F2dtT(mx-5!&(k(TAM>Y=7lmRF^GZNq@yLuCu@L`?IqBl{5QkiQ|K- z$0QBZ$tk!P10W#Erk#b;xwDA%?qjomT?4uJ`(@({<zE*lCNJJSn^WsgRgqkW$W?)B zmgXnB^Z&4=?Apw#XDw?E_r?@UMDSjME}a!D>GPP+^H-jBn!5aW)VBkMu$9iDE;KA! z??i(Ih<fqM`zt>))9{9IR7rLJiNEsZmC76HnL7!|G=it$2~WPj5tMr2c;27I=?Qu` z`Zct|>G7f(DiKANT*8wl2}1MDE%v=r&Z3JjfRz4G=l9@v0tH&ikKZlx`#-_gw(2jy z*FW&`(D-^XyiD;`G>L+*BR2W?n)n&1PUBPO`Rw=y)S8Zepz+59`QrP!&$=4b&RtZP z4wZz#agl~E;wG5Wli!eN1_C20yUV{tpisNGs>Cl<b&*^XPv-=|P&*~ODu!_IXB#A& z>j_eobG5l@sTyFx9pB^sV*kIS<^N0kSALwRv=EBZ^OsGJcT?%Vr^l-)l@&i=>I*sR zesT#^o7<Mn>r?z+>6Q5X#FP@*34N7&fi+3=Xv?R7P*0-3$?*mg<u$IqaT-%y0>?^% zZY-^ebx^OIKe=-nyfaQwLTXl$wq1>^VApA!1!MlfR=Q5A#tXsJ5o#1!NUIYftCM&O z&>5=yIt|#M9yS`ZAq(>-&rs^JYPYD!=eHw7=Ero9HQ1F%50D-^dRME`=m4%Zpbm9@ z_hoDEYM-2i+NV^Aw~>Wmx1eGL)Mt+@@&ni<{)-l!y4$GQ4!yyc-!R98_q=$dilQN~ z!<)D7NOY&I@V=l^{YKa+n1+@L?Yxk%JZtpni-7*AP*!A1Bdq#m+x=&oKFz#%OVQ-{ z%&4&wpNh%BWJ5}FG2RN~_}t5P>y<M?Ie8s9g{MDNV<z)^5{^vM!i0rmbWiS+k#xLF z$8`!u0#TWjk$_X`8(G4Wxg&@`dS=HI@td=;f@W-}h%YddV5VV$nvRp3I)R%RN_?81 zB#`fHlCAN(`73$ASc)X}NLo+|BT7Z9_LKg<pjFRr`)DN-1yUIF{eOa1-IsSlD`(Cd zUJD|g7*@<%EyO72hw6cth4yRLN(q$R1Ty@aI&PZd(w%bB<%iz5fOPV#RH+{$_$7~( z0B7c_1-{?;hc9YPf}TP6Yok=a>amIJ?DatTJ={TX!QAx-Tf-k=`3^8d4v)_$#Mx2a z!lfnF>kEuQe^VQ7o8Ah3%jwd*)l!H9roi>O<Y3>Hl7G_n>@j;ai!6940cye>3nl{v z9y_#c4)y1?Zem*Gvh6`|q=34J8uhzs(;t;Ni+_r4SL`#)ixvGz8Uj7%PJeD?aRD3w zCsYjbV)P(Li!*(QB_~!$bPWD;IpVuj$Lfa?(q-ozEMpv!%0a4F^vYn>3hZs~Ed^x7 zB8hiIz)q`AsF8#2r8rnN@xK{jZxGB*PSeT+#=p+0?AN9;-x2YL)Fln~OE)}Q%SvF- zs>y&m)#y|T(h9U*(a8TLSmAeS5j6zpD|Qgo4c@ophrLSfXA=(n9%~R-Cea`|n|Y@j z{bnnE4jI6W=V!X}qxoTQslofH*0jZYuw9TQJ)g3ggjL0~n<zt3_c1}PXO@bp5KOD5 zFkP<!UblWt;Z;vBYXmU2a=V;>xK6I|48&Jd@#t3FGtx17TH-;{Sn@PP<{kJ8HCb`h zHMt9<3_*p8Sx$6==D^JT7$fK;P3ZASEUsj#XRAA>2L2{V@3}{h%!$vb$*mT~R?mXf zke2+2PY05)7pUH3EvwkXD)6wh^UYq1!nrLS+niXf;dvAIOlG0F8A~brB;xzKRS%~0 zUmh3Y4sB)jH+2J7d3LSvy6g%g?&HD}@mq!C)$-;2)ZfhW0Zdu#(9f7S4s#a@Afs-m zhFiV8@7;A2y>Dkl9z<8OdRmZO@qMA!hUHbCmN=C%!eaJ)^Qas$`X=<Ckn`~SMidRh z$Xm@k+=ADHG*Y9KZ+ly6^&wM0j}VDPmQ5}9#$Dxt<FZ+EtchMPW&KfTr*1h;d&~R# z=>`h;`{_j_r|ATR8cEJJ$!u@=s#|@+-KbbCEvPiT)Zb~d7ReGX1})(dp3DdM@HyV{ zZoi6U$LA!kVMJ4sUlWkLcOxL_ZPgXivW&Cl)4b}T*yC^2;9DaLJBl>eB=N#THteOj z<BGh0-tuurMmiJpeS@4q&2TzFexK6;GzD?*s$VA_7qb$#-yCowO%0QT)J8BaBhV*S zvDx9=Liqce7^4V>4gJmJ`JuqNvzwRJxGq#*pKe|YX?=qYzkG2NS<qt<?dALbPv&_P z102Xx{#TLi%73Rs?9X7gVkp8s4G@f;9C5GY^l|Las5^HYB6LsdUb!+L;#@mm65e?n zc|Xt+&XoifbgN>{Z3D)E9SxX5F$cn##Gm$d=Bq+*nTRdV34UR_g7t}H$PKg?$_2O* zG%WshkE(Myg10wywU<~EF5gwXQ_7UVv-bCx(J%QmiY23xC5DLmdrTiey#N2fL9?+u z@IQ#J#9jb?w0;Y4!|s%>HA1mVn3f#xM_Ub3sx6YfJ2_8C>@Z9S)V&q|!DppZxOF7} z&63VVzLtw#&ytJ1f*XrQSPR!!qj!oiUA%SQh?)brRa^PnQGG)4@YH&XgJ&fEkKE~J zVpFxTnAVbufF8Z60GbmT;qgoSHD1~J91g?0;(v;u32&GK)Fr~S+zIlILRkZ4NNk#y zZb5TlHm*XLN@2REm1C|D^}@kerQoW}O*Qpw_XeprkX|w#(FhOzk};)|Vbi6{#^|a0 zibqqY?iZ}gtPtPvLqp74hfYfHP1c4c>7MK~aC6zjfgOVi13d3JlimS(dd()iNYam* z^ax2W(ez!##HAvb65qCtL;#Ve3Xb%@@d=9Pr8q{Em8vsYPqj&5_c3WCD_4zo+{dK3 ztlUQFXlr~C5BVn-BW05HnPg2SIXjhfACvy3E5js=H)5wCa@cYm*R?wk&EzUwGIY>m zvN9AR7iThn)!F<K${&Id*lGXf-w%uDE4PQgV8kb(WikIkaOfU$VmZl+vOE`0sq{JO zb{&?EE*-mp_*$9~u|tLU;0B)b5njVMT;cZe5q^yz{Gcq9Z@>o!e19=qe(lggYvD@b z<h%&77h-l)^GR;iwwg~ms!xi<6S*_2<Y?(Xf}H%EPB7ov9mRkr`QO-9%^nxE@0LGR zvnPph_kcoy97t}inUAk7&Bi~CJrQb>4ui{Z8Htj9yU@c@KU(^4SPlm@Cs$+*KmJS? zc_seA6fAb4#M<Kk-rUcO9H9iKf|YnE5)i*R*+VZFhxOT^M$;bap_oQ~L<d-dA<&BY z6g|uJ3!+M53i`r4yIFO=pj2Wh!}0BBAVAqtVP5-fyp@<-V;)sJNcFQRe%8?%E<Ygl zQTx9tdoi)Ef!}RL2`El5jD!dtDJX6cm&csf!L|6D28=DA64=U4Pu70MS~q}+7pw5F zgTGiSVWFjfjIXvqQX;_3C!q(#Hi?Kk8U{}!U>N)fo&3#pP9(G)E{fO>y+AFU?1vTz zR;0l2Ww?8jd_Xui#upldEZI?g1VSzxOSc_l1=KP=X$k&C04!brb(^a;a~~z$O__dS z2DYban=$?B@lCE7B-q!bXOC7s_u<1SJ{Mc=+Y#yIfWAIArSE0+l=!0d+ZxQJ7ATng zPU^j=K_&jT*X4aie`?|?3U9Y}3b&M-XavK#R7V{cC8~%@TF1aXRKj(umwIha5bIWd z<{~XGvg%%;;iz+KNyMoDv$4&4n~aRe)y|bsvLGlLm^A_=?VN^~b5l;1=kv}Re1`F~ zeBH_)lvJ5uFN<`Z>^v@ilT}it93!}h9fNE`h0#lHYBPJXl;LH3|6$gGMU=xuuhMQ% zS(K#gZio%i25g=e$47C#f&&bk9JP%lc*O33)%uU64ROO^R2?D6RCbs3)RxT{+)E2a z>4aVV=hTG#>?vfe*?enctvOG!PT}?)F!TC5iVdU^ubN`y&(F#)k^BnsGwQe0ekW~j z8+NWMUK9Ed*b+2bM1M|uohuniD)jQ4Mph>{(}WMbt5Ej|<x8AgpR|_9J@pYH$#je< zs+sd)P8Aq*m+~Uw38J}et{M||zHi{n236#zJU@n@qOHN!YbFy~3wWe#IT^=+ppNh6 zKc&F1(2Todgyvr_<33r&C-69Ee8elNNNl|4$khHW+|)e&nuX59X9j=%c~3SyWaG1J z-X-j;ySNaHla=hh{=g1wx%|qlE)$7MkjF^dqDc~M6Vg6xRixVGw;zQe4<+EsjZx>D zB?L;5?L^d>QS4jhXFfHXJ>y!iCe(&s-%ZU3I*<%XeAHpF^7pM;4cG$*a4U#>u%;v# z%pU%ToX*nyf$JavO3G|Fq9PDQh4^8vDIumo3C4I<?GtoA;EdX;%utNfahlp1aAN)0 z*kRX?5=M`c39?AgqB*_7ww~PiVP<SK9}T;8y%?12VC-?gU^Xoc<kp*kWKto6Up|y1 z3mn_#$0XPL^=+~fl=#;FO@W#@ZFyGR)lx?M=VjN>We;Q3o}zDg!#?J8#+B%!8PzOB zdswTuUsrVCbCx_QGNG3*BWE8vEdL4J%Ua?{RB-Me*y36t4%=~8#;g_O9bH5?UYSA@ zj#uV8izJ=U{ZcewkIttU@0jV&Y4L{@A9u(&s+YmU+9S?o#Oz`pCVz#m>OPEI?SCa@ zGczUIpz-7+zQc$_11sOoEc8Yw-t6^+fCQO#tk6xBqJ+P(I)PV$l;UX`c2Nd6Fr-L& zqLV$SPRqM<mUxX?2xlTO`;rQOL511q6U^wh{wL=pi?02G^OC!GsRs!Mo$uX1FZ8@* zsCH+sS44M2-cH@8lAhGzI;Rzh^Qf!yfq<6JK(Zpyiz1mJ8UKPqod118DiWHP_Oh!~ zd4C*h*NU2Gp3ihQQCgVUHxb-N&{r0dbkJGhzB%D1awd)5*IQCVtVOyPxgKF3eK$EH zixFEsf^(r;F5zuB2Mi52c@**s&>kB?J#5Kp_6Lvp`wu<4sYo!@{{4;V_}HoYeL(fm z1H-xP;no&Vs3UBRgw>867%snPMlq7b2vEO}r2%Fs6MrCa5_QF#vEhJoy^&OrCxQ|o zASeE5Zq<c>CTUB5Ys!9|!yO|J>{-R$dOxP-ZDH%-mJNUBZwEIj*c)fPN3u1V+eV0M zE3OU(*75@Z`(J_h$HQZFYcXqYuR1JdE#DT2e>6PVJ@E7h+8|Ew9cwDB8w>i*Ean91 z+JgT2EN!c_`nBz{Ch;tbHSe;D3Vu5Lm>loiG6`*7I)R*P+v)r`YvS5nVe8EGyR2*0 z?Xs?;cxj6_6CtNk-dNXDM^V9|ZN)jetcn&&p4}WO`ygmN{7x|MruNI-s*+r8r!SSL z+~>(*V<c}@@sp^&5Wb^%7y8hQSR-*05}B;C`Fp>j--^Nv4e}Z<#9XD%zcTAb{Davl z-8+>7QIT4;<-irGd<nhk{o-X3lkZ&oVjlt@q`&-XvF86+enqT1UIHxr{#B)5=~qxK z&(d{(g>g>ef1gl011`9qS{Qtbch1vC=jZ_0OjDA9U)%fpTNyZmCgR-w;oMRh?zwVM zGp!V8L^f;WN=Z+rP{gPLqSmPPSozyAYxGOPJEIO#SQtg6k0WdC*y^gw#9k>UzCX8W zpyH+ebmr(*F~>eIVoxgw@*1j@b&4SW<nLx8^w@i6y-RWxBj@ltw@pS!AgDFb@@DbD zwc;Y;MXcrf0(M6rzSm&Pgr!xdkcWx>?%_%9h$^^|(S{{xWb5c6;l>Gx#QM|-QZf7a zO6yJrbYsEV83vU$=(7_lX(&EHiP)tA{J9evyv?U8N-dlQ-3V66z=O^d#jJ>R=HEJD zR(}zvtUD((WTRL4mMruNmVFwq9)2^JyE|s@47ydth_nP}Bb2v}T-x5oC2=y<GyBHs zUR3&uTETYYe0({Qr^U*A*v}pjPyolQ&`aUgW})j?`Kwm^T*V=RcmOPWUwlUjRG6g` zsCo*;4kj~JRc7<nVwTlX1OU2!W4~WbH>mY{eU<{cek(yOo@J`rl&+pmSG^}rQwaI6 zySB~w2Echy$ZjKOIH9H!gg$wqGwt<%D;qdxiFs;8y%1p3+_o3WeQA^%EXfTzH?0nF ziZDA6{|u1D02w}x7)n@me`0ziE=s(aFk@}3zYSJgUH&BAK(u_1b#FZ=IX3U^kFj>& zV#OB#ph)iXvGO%Dw<RL{P^)!~A><Z}F9m~SALwI|C}I*4c3WELXr@I%iO|Rd8lTf{ z#nm8Pn)LafwpW~LFCr6ijJ9{cwD%hIJwb-Z34CPw=aG@=pXe|2XhKORXm1VL+td7Y z3DomC)UyF%*|p(ArJj9x_P$x~lYA?hyD?h69$%b@bvYag$(&YZPtg!2YwrF($?GCS zCde#*srIL2wLjxlU^DxINcoz(-$|ZJ>^9lKfDqZ^8=5N5_-0%Z$vrT;K+8jc+b`}6 zKMwwL6o<n$#xnb0lG!fEL3?+wY@>Cr$e3KuAUFdDxGq%Vz4&-%Jo#vI22Vh1>)}v+ z89{YJZF#fD3nu=o985g#R4$!ihJ?RmP>||CLBU-Z-?@srv##_`pn<OZaIQ3RD1KNe zfzy0`cq4_<>*%PqWL}WHtYXYq2`t_h0s{^&(4TBP5}Sj>ZnS48%Zq+_Jm|!I7k@VL zjM{U^Ahuv|@4c=U2dCD1kvBT67ZK6vT+MRvV%6M;{ZZ680;e6h&`6<7?l8lE(N3M4 z!6JQWzgpQq>}tb)p9f!Bd<6O=&;CT$=T*_%eb5jbchQW?U?6ypvqbw0mrHCXv{y|h z8y`Oy?(Gb7Cq0hXBk;W&p$u2sNmy`Q;v8X1e;lchsL*%8E1#8BNjW<cabrQ?4#S5d z`s~DqV~vOdP4Mi*1HergxMawppr3a4KRx15p9&=1i-2Uw$;y~wjqvTZbT3{Oro{4> zB@o>7SZ8Eg@LC4hnzK3fUY}!6XqT?&YI4`@W)yLKb{d7=3J`FD1IF8-)e)X-e-!=X ztbu4hqnHX+R0Q_EiGr^tXz$y*N!Ty3%UM7+vnQ+%m2bD=uL1;cy<wC)tVGBJShfn8 zFp54E?cQ$?F0vP#woRGt<FfZA+`YzncuO#s(1~;E^X9A;2;Is(Hr|1g`XL<@RkUYQ zOw>;Lm8Xd&)JXG9v!;97|0+!x>EUZMBLYGMi`?nMd|Fx=Zuw-mq}PT|-Vp976jv~i zg8mAnjm<nGS(@S}u(#y#qCY#gpl6q2vrr?qMay?v_rA{fMG|agZS8m1ZPM(G0KfFK zBQ$;OYUxr+BJ}k@yDzuy$=@33;GLA!G7PgHQqd&-U$cQRYN!!@zaA}rNEJqPE)+^- ztGok`WY~j9N2x(y`)Z0sq{Ss8n1!v&ss7x8krc?Vhjpy(iz0TIjU*)B+=czgBqtl- z2uCj#NpXwV8XW(7Ae^zE?@a&mK3D=MBKE%sdjbo<+3K(Q`=hXL%q{j4CRS*!Rr@t0 z#h8;nAm-dX08xItuXTn;gws6Y;)8iax^dAb{u_S5eCl<;$~T$?iP=ro&$u)#e1Od; zA(0u7)r56yNwbb+LxgpNU>%_>)-hFC$39rc?1NZ`5*;{jV?p;@4AC8-&&=G*ZUEL1 zYDRKQh@rjDI=FBIdeu+YPc@%z)MuAZg)puf3}L+2zbosI^#r<8?jiV-*-o7Cm(JuD zc{xLV&1Y2*%|+zBPnC6mMiZ7=efxz>FZ#tyFF??=a20CsS;liImLZBzWf?KIGFN$p zM#%Tsg>sP4pnpIc=lpYu46gKoJ^GyZu74u}N+l6rWj;gYAEx+;emKe<Q0lW3*ur(P zY3Os)Qt#_aJCCXQrOcT2g`LHsqf(ZFoThc>&3R6M*YA9Qx8!&Q-UZXN7k8dBi6<{_ zS}H`8T9>IrWKqA(&YY%s))a5f!x>JqeWMKP+=4CtIyz_iDWAh><jipd(L%lCS%#lH z!B-i!Bdy<g&fjh}0D76H@)w`2-1sakg3SiZrYFLUbTo^f$OI@q@giIWVVS~|QGQaX z{NzZHFNkqfTG0S<AoyOhq0;L6TBUUjwy5$yRpGU=KZ9{k+9vU~>u!VL0Gm*~)wf`v zcJA7Op{A4R9sr|lRIu8ciooEHz9pL}wZ8aon9`pq(1|JCUV|bVrWArJd1#u2tz@aS zU`+2OZerB%rr$40^QO5Ep+)wuF!67D@NY`DO$Z71(qRLUd)(e1{}>U+Ex1~~br*_8 z&p3d`ev{4Je0{TCE)<_TkaHO^athlA&;)v3uJE!s9*itbt^jEVKsvnA(C<<DOhI)L zc-6ei`dW(@`qQCd^x%fig^}6k-bVrd$UDqF*9fg#4^**gknnAutbscaFZZ!TvrKbv z<X##(Plwyx4EM)8(1mX@W4!@rss5<T`AB4Km-7+TN5`+06STCwQObU7C{Zs^-pH;D zVSaQ8Pj(+;kt7HP>CBb$JhnpT5jC|Cbuj0Hw=aosL69|itJqwfpB?)`^$!7O*e|?^ zCj;dUiCQ1ZY4M5z^`UO4d-EdYZ&YtV+HV$J<k9Fmx=A8+$3=(N9!4uE3N6*kBf$ce zp&6`6Eakm1qgvwS!@Whuy%wu2Q9zFWL)Q83)nAVf&#x}f$PB2`ydG9J@JbH^2E_N} zR+Xb`uD()qygR}jh1IWOo>xdEQa*9`b9t2Y-z?95llwx}n+LPsjD9xjjh+3bcXJ+# z&>HFCkqk_F{QFJ|u&lpgYK?mDMCsZ&(zRjCgz4HSISj@>V!brr=bdlzrazyRccRIA zW_4EHVJ7ds6?xq9oRWu3d$URe^2V$kc9c_*7(ZH7n`!@w!1%8#W|)#kM4WqyRU6=) zML~4RVd?ReF{g5<1on%%!$u6+oID(RlK85D-1ky7IO0_GSEV!G4(o5e{cx0gTh(7% ze>vjZ-QTbD6<#C}VMmRSYERV=r0x)YfG0FPR1rcjL5?I7ODLWCu_`0Wr1f82^{FX+ zZkE0KO;nM#ch~)ojJL!4(>MZ)JHsQlUSBlSoHwJHJTmIuJd}a8dCzliE2bXF1X?== z*9;clx?`wfF<+VEq{C#8@m7vk(w$6HV)zLfh|YTqd-r6i+C^@zDsB+Nk=fK50oA36 z>VGEl{E~fCRMCn&xinIc=k_Is;&09@+(wMQf|8U>Y>|SzB5_wpCpLTjWxTp4w3aF2 zjRNPY0`YwX)fF{&73Nh>j5>F5ZZKR1DF+A)HFJP4Tn`XVqgKw^iZZJ2<dG?pezZKk zCjj(YXpWH+9|gOr;kAKTh2D1oh*af$jf9NR{;jOczCOUmSA$6~GJjMLQC)ie!tvob zIBO6uGlkX05uqY+j~2_INLGAKAHPTQO>@<Rm~(m-9v_wY;tTQlB&t6oK6mGZ;<F;j zDcShkkJFXT==|EqEOa*GHOR#wwV{D5#Qh_MyW)2Se*uu9ZdU(0;qMXWbiv;fQ}|1_ z4F0AFD{*;tw>sf#+u4W2*Bg8Wx0ZFO)BO4VBplxhyH7cTc-t-)9GaobfD5tjGQ2=> zrXsOgUYa9`%wSUMxleq@q&lzg5lvb};(osC3ZD#;a{nXmGZlW``OGM-MdUr1kIb4> zkvRL1-*>v7{I%Au>u>x64kh>EC9(zW-;-i$<&AGvM><*ScOZ@I@ZvuqBfh#QyYq)w zuZ#5#Qt-o=HBhhU$!{Kb-{_(Bp;zx4Tb>!5@~>KKPvWq6IcA8KZ>_#4;`FGQ^J)%p zy2?WsX5Y-az?#wJXyGb|sJiMeL?|ODj~o;vSu`L>k5k&JwNZBpxBlH(YAqW&qPD}b zA7v2oVj?fPnHS;Q__pEpC-JvW8d1}+WoArX$0BY8HVxO8at(HMPW=7hs0&)Qb?>>8 zB0HuJmm(v%N{=FQvx@vHIaqEqc`sertiQIr-935Kpgm-!KcCUk@^-JD8@QzGOnrf= zOv~Fx%Igh1ciJz^+n<xu2a)e^gu@I_BF^<CG5ep9vNibl$Lv`p@s5&NN1`}<BImN4 z97c^E?!lJnrSm#!NL%wiLw@#N?cFb@7GQlSyZ5Z^EBar+3DjctMaHzV_I`?B1Jp*t z^CT%wdbuqq8n~9Q*+e|eKE=tbx4u1EI2=FFvq^9{@Ra<GS|ibh9q1i+LR>!i^*lsm z)%IrV9f_~nXVu=Psg{qd+8(5W&KU&iMvfch4k-zgt)9B_{`+!rTJ{w=*AJY!{;n%Y z?=Q-It*mY8y3~&iQ#WdvPl|HajdIUEKWLv9D0?Mn&l)(&?OPJGCl*mp(7w5ZZXhc^ zqN~!Uq@K{!ep1Uw1)aJ1&e*=r=mDeL{Goxe)~PM2rY8=W`ntCEX;JRRvQ1N8OZ`|s zb)A-xE?w^S&9x`y2g=%l_UIv(yS;|mWBXD~(4IShmNAr);H;7Or=+HsmPy@23az0X zdkM)D%TKZR3^fIvI}4FvL3xHy8Yp`<t1m;pL|+&|A9_(3C?l5cgl1qcln#~JV~eRP z2o=yF?7#Q3V9_B`Ii^FT4kLx^jPZpC%hep^+}z6<-QT(X>``w2Qv+phOx>hI{<O%M zI4o-t%GOV9OU+12de(B=XqQG;1?}sHF{P(6E&Zv4={TD+f<^YmAnyn`88VOzFuPM* zw4QxMxov^6mcZ1N{?A};`_#25aJO9U2D{}0@)mTn$CS0TpyMCii(4*^&9`487{30_ z50<TM*`J4*0^`lM?j0^Gb^JgNYyK!w=znCv#)LdXY%aW;0%gt4gqNni?vF1p^?83l z!Q7n;FN1J_sjp}m!8jre=jOZlhiQXFWgE1;{`4*{KWMk4deXP-HGNS`^F6KkauiMK zaBKb!QdaG!@*C5jfX(r$7nr&w-G%4UUD#H(J}~u#^w0f)sV}8Fak(2UO?RTi@5I?% zJ2AlTgv@?#&Ph!tENlMHwG+SNFWR^^x-Gnvz+O&u)6_NE$iAY$)Q#HqCq=>B*UQ?c zzT*GN-4&R+Tgx0M%6%okg$Vg>|D#(t(Y}6Q*)Ex#iNoCSh4}&r`7xxdMInK(*y*|f z4ENlA=iPUFj(72ou-H=naJS!;l2IlZbdIfKzuuBjOh%I&7$nE7P@@62-)WMcBL$gL zDfq5U#)k_jC^iDgGgcg7@;{UOSIK8rp#`6kj5ShF)-}FdNrt$lKO%+Xc!s<+Qs|eG z0gsZ5zez@eWT@AT+wUdGm@64_u1bl`l5vM*2pc5hCz4Si8EUoQ_WPw|L?y#-d5L6P zA{qYhZ<dTRCByIi9g=aZWcVGcmW)C&vgOU}^AO?3y_=-IfYu5JKA;@<`v3|tAHMq< zsi1QV77&nl5h3MRV%)xmm%SD!TM0uw4u<M86gcTdC>h4Q4xTcQs$rhvwW1DE-yr2& zpYMzw5_E?Y3p1TKAn5iwtZYNss?qL%K~OzddaOOVZ>a2fIKhCj_4f5cs0BuNx~YZK zIi!Rca?sg^bO0v`H3qrG!5KZ2-Y8$3SnBqtR@eg_J4-m-<!*jYdo-Lz4hohEi;LNR z3zYqh6qqK=?oBXAuDY>m<wg=>+`-+Nqg>n|r#3<7`d-dh;ZVn7>=JY)3d6hH9dcBl z?Das|dYIUSqupUZVlLck4_!YyRJIYj1z~F=S!F_HgkuXWvR9R@ccX=QuwUT^J)po- z^Wv-W3^(%WvM^Zoj?zajI!4%-sdR@_p*4S+q+moLH$OL6CWokv_J&~D{>$C*7w28> z_V1>j6}i{u=EYm`^he)d*-E9WVxO-1YgM%uno0?@da0?jnU#ELkcze5CaHHP^`4)p zw<NpX0jYXR{d&))-d-#errsiJzSw-pu{b>Ugq&bmlHRsUtt^D&kIQq1bZa?~#~SQb z9jl#{A4B}U4)qz)utV{Hr|t!#FZ>}WP6I+Wzn6^D$Y>H;PoA5i@E=NkZ^;+pNFJRc z=<iDY$3Gz7r;&MN2tjWnFGas~Qm9=rd~&^CGFC{2Pp;pTj6X|;Po1|&#$w6vsWTuM z_e+M~P*^hVA|oSXb&-$eeIQ5Qm;ibzTa6mX0oOQDBRZqdU};Qbk|iWZm|XN&=7v!< zFg5p%rff{zQYm9=NZPPda0-e&Yz8;6(*_=rY|kXy{A6og4lM)O+}66S={zr;+L!vo zu4^V)*{Vu#txYuKTCt;^8(~Ks>cmjFY`-=CRp5x~Q@dTh##->Q{EqMMIqOW0UP`2+ zu7(DFQkb8&>@jv=_Ub^*XZcm-__?$vUX(7IJE5(|qeBZT{ma6g{Gkj{+D03M%)d8m zjV45d=|a<~!><YiBY`W!gS7||tmT+0Ja6Yn+!;7stD3Z;go^bH$2<7~wq)YW8KZBs z-XyQ!Fz5{nnof|z7CC`*3V!XUi%2*4X*380cWXL-0A~rwGWI+iOg$ze^EQpZpl414 zwwMwtiCZieLB)+>Y7RVBkZJ`2)CrO8`qe1+1-z*(yBMxmY&nC%qSg$ImG7+@e1%gr z*k}!|aE1*w`lmaGeB2@VM*nn$bN66h|8zAklCYpUnP+L?#Oy75pRluBnlt*HGbzjD z=}gt_frK&UtZuH7LPHsiX{kU9)d`vg>!%cQ<%JVlZ;$I~hcRHCgl=dunpNUowVEx* zyw!r&8C55$VEnysh2qLRuE$~9e3+^CPlK^lc8v+I`zLXLiMnbJn_9o*&L<zN^M*?V z0x84VGE&)%-WIGD?aOrT%#Ee4n<KMsOgFiJfV-@493j%b9H40Q({@VNTykpF4V>4b z#FBHwQ_p9=Y9>)&gBO*Wop?XR2i95^Y8ckTs=HMhjcfmMs!n4lH8Pa`KuXZejA--u z*&Ff(AUj!GWs@UneJv#F)4x(KaUwY?vKWl~K6#3f>tqvzBeYX+74F1>h(x|C2xvNg zfHFQoCooUbi9gCTr(5z>(9%jwYBZijDKK8lzR(9_^>Lg=$=%&xih|6bXyOK~E(6>* zvViNC^si_3!xq>Ev}WoAnlBGbLsMwgfM&;8DY_63g5Z6(FLFZv&3@kr{mc%nmz7Qi z1-&$aflHGo1?*>?&<~v012(uOYJ5XPLQoV~lAej<QZpeqo0*BP4H7$exqvh?1q--S zFg*nWDUhfp2TjHc$I8LPoCY=N^zPk*Udg$M*&`q~ee#=b2H=SxA7EYeKu}ORg$$q5 zh35w<ZTT3GH7}3xB6y#&YR5ep2;oobxZ+g9Sfh@zaxTLbjKQ!==rHX1Yrw#;GYNG` zb%Xi@I@3^@R5v=V@NsA1R%UKD?i}yR3>sfHc#H6JrdZtdVV-R=;r8NY`Cz#)cs_7H zGeu;HV8Bh3R)*v(Rt}=^@tGbIhGU6hj2PzEHJT(7S10al22OPiCJFe&YjJVC{3NCa z5B3vI#d>@3w@BM{H}IF+<EQDvouZG0vv~yT>n6*?erTyamOsivE@fQUL}Itqr>+Q) z$n$A=v0RLZ?B(s|om*_)xi87PSi9|RB0*hS^|Ab2c{q<Xn_vAY9J03uorj(y17NL| zhpP<IJK`+XCF|F3lo0*9WKeSm{%8d^VP3d3WPcp#iKU3);r^*!3TUnYTK0k*bstlJ zx{t}go~(xeL^u2p@(Pud&<P?<_zQSgdVs6C_Q$_lyl#^ITI|WgMIYU$HSF=eDK*%e zg7#BO$Z=d5kL~<X(y?aSSxQ0>!iQH}^juN<!DfB@p^1m%D)gK-(o)igUi>+E2lO0a zmZ_K=r-)Ce+wV7ZNH%>Of{`7`uSNXw?RMS!*m@kEwaE5gfIK9En&EK0`DvUT1q|MG z;_MHbs%)UD(qy+}AM;XphPTtpxJFKrjAqFwNct5BIK6+7<qH(v&i71Z$5L4*eQjp{ zGw*{*uy9n4&efAzM@?dl%87r{t=d9kSlHdzVqFdE6$5v7xu9Cgchg=d0K|0nZYE}k zNnXpz!MFIS7HsxH0Xzk6BS+|%WEIJ?Njf#PG-THeBMssSHLESk@$|)6EV;Ub_2Q?0 zQ$hsWL{Uf4lTG2h+pL;*_@NL)aE);D>rH3-E5!z0$V&0VAAWECvEQjj$;nsY4S&aw zVT4o<>4a@HJb`JnLz3ep7j|d7pe9~aK+6v)ooY-NrC|E9NU=?2z7(;$bpjWDEzx(d zWxGy@6oAPjg>fDZy9=c%uLOsS8qH<x6n`yg(L3(K0#F`l>DG$Ip$$6nt7PP^?94cm zy11X{^gm3#7j-VU>{mx)I_@uZgEqs-H%U`0y29#(-p$HVd6w{5vxbR8w*b%qh$cqc z%*`4*<Rd-S8z9GeeY50oa~|?W)ez1-PEh&E;vDaU98>QR)GIGkz<Nnu_yX3)XCh#& z;z}Hh?yxBo!%@`DPTfB39?p-CFr>tK{-ob$-u+14JuG8(^ez#;(-p$--6=X@vgQ~u z*CuX)!0qiJ25!+?Z*Lr$#&5jmt=d+>6!-d}97?x&pB$A7+H6U349nt$?3aD4zyeoD zVebO^PpwP5pKSv)p9fY;N@amn=ZTmmaLEiv&mMvKoq!-&gnpfKKjc;1pngg-$fl>J zW!6&-NS`WGne|i!=>}xhQ+<&BiWf;>`1zf#p@epN`&K%Qw^QD9*4<EZ>R2gt^1j`> znvzceU?2<<q=#qKt$}GIUgQs}J9YrKHw#jwX69fiSw?99mM?8{_H=yAzL|LbcXCfH zhm=mJ29Ku_<s8YA#<=-2$GFkkG5;SeP-gCLF2XB{Gmg=$9ud2T@re>1lqDMv+AJMO zydwOp;<Uc-Po;Edz<X<+cqnlpip>AJaKFi^UoY`1@qOAzW#qk0#{DKE(O{kuTH&+| zvdj68aNA9Nz>xSVMHl~kR$G`R3{;R}!4{et>7S7e$gV&r(_6&%pqi3v_V)u*-;b8> z<=7XdApFPM^N!T49M!vp$&;mTI!i_NeI-Tqz80?-b0>`aaNdA<eo8>U-PW1S0gP%} z{#mr!npBW`1ol#|%ObOE6-9a5ZY^u&3sReQTi3Mne-mdjYp8*&Hh%KIPsIoPiFqt< zy;t?daj0~q_aLhmZwt2kxtQmqf(Ipk;#wR?W*)}=i=q=gNDc`s>%flcDJ?_BtW)_l zhhPWRy<*5N_05o9c%9t4PBMbl**he+!f)kLzm@O!tz4REB_B>y_E)L?T3*gNk;JK5 z^E|)iV@=I7t9DywGq$4Mg?!92<azG{0qOiHezouSN_RdV5B1ZQO0@-2?QtZYyW*If zndeFkYe>lmPo~Odpxd&w$Xd3(Wm{p-76Dq%HaW2~W+v{X6M;3W`y<sjhh9RTyb(3V z{yKX-6{!Ia92gA_@TDj|<c@lKXR8Vvyo1%>Q;H5_AZ|3O7<d-#OvL$iiMTZ_Xq6xK zODG0#&Wtt9AZ*TKve2r3TGW2QTl|m+;<2V-`Bj6_SS?zUTM)Jbh`%g5Un@%FqxFqA zkz%J;x$Wu-9dG3t&{mWJ`?z?c)LAT<*5j)#?WS5pd`9h?mRNPO_+@Xxl!sHW`dj!> zX?@s?|4OKaKgxFHDNI?OvRKMfP+6V>{bz~)ls06`ew3Uqa!VTLafI!+;#&|U)`Xhr z;de?SP5}3@eb)SE5r#73=ZEChiS4EGM+VIj+U)(B2*VQ8_yOv;PZqIQQ_ZLIxP6_1 zHM?u9Wt(H}*(XXf3qC>Rd{8sjWj8Z9)yy+po4J%`41BG+GLd}bu=EK^B`#u6!q0*3 zef`VB5`Q2KR_RH6CIy1lvLsyZTvq6%Tv=}|xP!jLoEu7G&UXgF?6@q~n!gkMn2b2W z&Fc&H@FQC8S@AfH=wNli3F6}Y<-t^6#6=Va%|tCkys4#2u5_spZmj+3RbEf1-A-Ln zIU-Jh`!HrLXH$<)-RS2l8=~bqt=e7mYGi%>qmhm^;g0py$;5wA(ATdx-!6{kz7KPf zS(I)ZiHIs7iRFF}EB_4Nt?gXjQkv=#ovAJ6YaQGUffNU<m$!^@`#vfcI5V4EsWg}N ztYtszEmhX{zmMPsk@CM)znj<si?=tOMsCifxx`Sco*8&XoHbX-A0r^&e~PR#h%iS2 zsIb#}{oxRy1{3bxWRg%*?}tpXgyauRlC`M!T$3y!d7DWVlDtNfg@e{UDXk=)E<p8f z_aC5Z77Flg*8Jlj0G2Z1R)nX8C0vg?xyTQ!wp<p`<oTH;K+0Wi_gxau<y9+*=6d$V zn7swLG<->@(TcC*qYMK`W53S;R-^Gt6TljN2=&i6BSrE)2k;*JWeOXr&PZ$kHB<BT z1=OxWy4{`uuvHfY*x{DHqoLY|1INlM+##jmOR5{K1$9&zE&r!A-=PaJ`_o9vJBTWn z&cJ4tT<PZjE^0me$(3&3<)0~Dv_#^c^ta}}1~?)ufA1FQSQ)dqs%YE3O6v}+Ri`x* z?jW)+Y_FrSJR<zquX1lPBP*WK8_sZ}{W`8L8^Ie<yAwa<cLc)tEWG#iL3=WwRej%X zYi{r_4f?lH|1Q<P&H9(sjkjC%FU!o_{J(_pJm;dR{A!}ZbyS@m&HZP@?e!>EOcxA# zF<oCDE!&53aNSp{LF;wZhug0Uk|&1Kr!j7?difD?`_|aUhB=xGmv5;4*nT}B5u<cY z>;7eMWYL<O9*OTklz%BmJV%yQCs7;!W9}JogK}SzcyjDX_RoL>`px2}m(uP*jIJ6< zD~(RG_;F}{I{p`ipSGau{WtuyogxP{qqm%-maU>xGY9e0fBZa!wYc9?&wt8KgVfQL zpZ=1(G(Y_fKa`)|17>#Sr#Gbgl44#~-AXu<@Y8x>1^;V)S_tiotPeh#>oe59C$0fe z=u;O~+KTx4#jNxMzU#tDp^ygddj5;B(-DTB{+@~dJbs#`YZ!Ne&pTTgC7f?!cjcYJ z8iOV&tZ|S@3Tr%3lZ8)~01fP2h?P=*MA#<20Q-OY>Y^|gq{*wqV*Ui4kz`hDZ}<0G zyT-JZ5T7>*+2Hhk#U!P*RVFE|E!CtjVyP*4A+Z?$Qjk0k<>Qa!jah;8o!9+sBy>k* zDE5e=kwJSc;zpNVMs05MwXZJ5BE5||vo;ktB_g|>ew%vE;iB&Co{7+0_mMKv|4`Nu zYVDSy)}m|*JsM_k5b12B%`}C+%nzl|I{Mp5;(6q!hC)xGM214Af47UYb3U&RYGPV; z6Vp>o{HkjcV`)P0QEumuIZgZ(#QHo5XU4q;NjG8_)Rh{K@|#xarkEd4<BY1#l=$jT zQthTGu~z6cF*w!!=SegVLLZ$Z8kJ{q`Aq1KWk>~@zbEcGB>j!P=ikwvu>XHge-d}| zQ1q9}*I?PEsc9^8tJttA>aEIT&L-2U`_5OjP~hff7K%=&*Y{AUCmOyq>PgIIP_O!w zPH1<@e;c%uurof|B{3d7wA4G}mV<CYg3)xv2{}+rbLf1URSxYi<DKzh#iE1pLUsa) z<Efwv-d{}CL3lsgZ%8*&-{psrmiT~n8so%tJ65ge3=&WA=U{eSeD}XY7w3!6MMYn| zSMU&`@7EMTf$HaB`Va~njOoH91k>}<nBI$WBbF5;$ANgWZcZa!-{~pDyD^j5@of;V zHYCxG-3tbBGXUC+X2W5B{f2N@bVnRzvf{K8qLK5Q5%m|TBRj$(c7lZbC{Fwmjkm$* zlQR|nhKgzb7k7x_dyUrv1m|ai{%rN?XXwv){KOnynD6^0=T6P(@NU+hm)_H%<)&7q zqAzt!(~Nd9M9;F6Vp$8$hCBJ0*(t2#XO{i9+FKGY3?v||M8qbB=BHtYyAh_doS~(~ z86)gm&gyg(<62lKONwn2rUXj}yS;DG&ZxH5ge&1teKxQT+y1$}3fErrw|zN1oXzLR zYm37?Q4_aO&Z>*iG~9J5*Ql!|*gtkNerr)jk4=r2bFGjB2f<_9;AI_xyYW}pm6&tA z2{j@BNT@j5t&#T2*3n<lCr8||^u`sfZ`9rp-uoIqL>-(F7ukQI#>nT$=E2o7CLrd< z?DcHmUXPW33X@|)xC&91ed(6WClE~47zE$T2rp{IpGKb$b??lzmi4{l;=bifLe*Q* zJXJc!a{rku;C`{(1H?mQZPsq&?x6S6oy0M8-|SDKIE`mn)aFFW_j4_(aGs7AqU9Y{ zd^%0A0k|m4#x!2V4?28F;Ntwks+VX<M$GY_3^)0cnmIp&Z$2f<nWGbfEFd}wb|)9z zC$Whp)Fe;IZY@a3T)A|sVQ))LP6r>~!^d{pklcC#n&QWLOr-pknZ0U;9kXI?uf&lk zUmC2s!+As*eC_MPKivFdtYrg7)b6otVIyI#M~#-RssgN&awTF!{GH(eduJfN4WsA- zTV`HDypgKmFvTKbCIsSd4{v#=d$8w5-tCxvvAny?T9y;vIy^ZPEvJnpFa7DPX9Jiv z2Yaqho)ePmxtlXz&RD~%Uh?Y5K~%b}2S1P0*Xw((vfmOD@Js0HyaUD{`gGE|5uJCS zhAvz4MG4;o$fX35x;1}08B#horwMql;oOv?n=ylfQNckb<0@8FgM+t&gAxI@PS8st z7m}3u*2@?LkDiUW6FQPdgAAP78BExzbsRw*z^YdvDEQorEyQRBPsh6bLAnohKPLEA zmd3YZq<i36)E%2kq{zU<B<&ZfUgx8T{e1FQU9d^!H%>f~k+Jemtaz#H1KeI<E}cJ< zAGCW(*qzuBxR|H?YSl&`brTaon%cG1z1D<&n47p2$RK)h0)-l1G!#~?ER$h(WCuYh zthhMzM9SX+<;L-H#_^Ze47+H>++*=hY`#(0-CHtSJH5g1D*QjIx5u~zJX-eY%n}L? zUorQ13O+0a9ix!5pNE#c0!mkN6W|`tSqkG71&0Qx6|=iJT+hoC<^-OWzo2P^zMmAa zpYzq=9p0=ya+1GI&bj2vTd}}`u|ocajnTsL9QrB^jjx7<qNg`u+eO=bF&~R+LcY9= zFA?+G!g<Qnm=p;oBsa|T=R0nApGGzCHQ{d(2tY3^PhHh6O@IhOfjsn>hU0P2LLG%J znNe8XM^{~GwBOqjSz`t}fV{BVYo^{?3%Q2v@r9*`@>0K~OGuk0#}~qyjTHs?e77*0 zhuT$zaPhu`{2R$D!?q<7bL|l_bMbwJuvdWv{_Vh!jP6#Q1Zi#>HTJ4lU~mtvEFPOb zZ)ae9PEOAjtL{!IL}Yj(&U>H!S!591Y7kk}svZ!2V(|Ir+&H!B`sv}ph2bZs-*(gW z({H}<rtsi#J;FWLS+(c$F?ur276g)3?PhQ|nrF<`;-BPO@$Kw~2CYR2oS4Wfbsng? z07DajA5NAqF#%fD1^)DI_ZC^~q=<maZR@9{GvApa!pK81s?0~#>z|@^kZ=o!I)a{2 z`)%(ASxsAY&C!>g?$D6g;tM`mEP&>eQ(%u4xQ38$MUhKpre;l!B(C4u53z`BOzOVE zS&MW?ghxGoUDJ)IF6|PklCEZL*TPMqN#n+TeZp0tNO_Oy7gLjS-Jc*9bA@Rh_Sj1> zDci+|;TEq1y;F1it`g*%5x^Ve{+I!Y%Va0oG%hkJ@bz(_kv>jDWcrtlEeywZj>iO! zjuZg_t9H6n)HHHzbnI0l$6l3H>MBZEb^n*TH;<31Iv@Wt*$4>UAOxc#MvV&Ag;>!< zK^VxujLayl0&c;TxNk56R0|AD0=Z15(kd-&wdUi}qSlX51R}B|fJwv+MFpio0EIga zDuS|z%J2Q0bMMR~;L?6S|NMBp$lQC*xo3H{^PJ~A=Q+bE<c;M#vKQb&?Ly|<NWu?O z7R00REfLZb;0466kKzqEBBBE)ISl1^4f3IiZttn7B-S)T(|g9&_SdLg_;b9FvmS3Z z6moWu;Cc6+CUK=hvO47#Ipv3>%5VLrlxK6C^39ZgPqOU#XFBD(rOMA&<te<1!t>G! zUq#{Y<W&H6oPblhb*ntY`u%l}sAo$Hfz0A#8L)NjJEBBZ_ZCo@)pyHJRQXRJ{EAd! z>}H*JEkE%~1>!c_RXvl$Y#(|u&lS2ih1F6TpUF%mSnVGdOC@=E#jYB)FRwfI47OxC zGaHOpr*%I{kTg$_WX`FRpP2nt-KySlx@Toe5lg?#xQ6iemmON^sI*Go>GqSAF3(J_ z)J>%{q2yMx5|fNqI8#KW5D1-8y>V_m^n_Ib4N>gA@}+ek56`i7P^=d4K~oBt?ci;* zRYv?lz!Y%p_LptsH1|f-@jqNCYV;;+|5!m=!C%$u_tvNS^>JRk>@aOmubRM3?YR`o z+2&FMo2#KU>1s7F!8@Z7#M%QB#M=WCJTUlDU1pF|Cbm=|C8lgR)(LuSDk&OMcrs(B z$tPy@3Gx$F&K2=iDn;KUHWowKL*JXOPzxRFEIR9J+>z%Ff9xu+8M}`4%sQ*jQ3_F4 zs2<F@PW9Otk8VAuhaQinjF>JNtJhs_P#@$xepUNH!V`kMv_Y!c+6+>a(NqWm1wz&Z z9TWl;K)8rWHPUX7wYufA^~m?in~iZ(Q;6*mWz%aC<2xzYq~#4CC|ZifEM3`^s<PPi z8jMmBpx&zAR14Z`SeQpH@Y22&S}1!>Sr_RU-5e|vtWY96e4VQEVy52AxJP+DDK*@h zxe{(ZT^5FF58zu&|KDoUf2IWYm#xrG1b8~;1Lm?Lk@}p<-~PRK?<O&pOTdl03kLl~ zLNnZb{9IhP_&w#isq*{9tHz>h^1ea7@0N#ec}P?mH|?r4N;7s>8XLZ<G~V4w!l#lz z&W0T%#HHx>vKL`2>Y2yyYm^{LN@)h06B~%>^Da>#Zz9}bX$CnPUMJxV4E;<B&6%MG z66LZvyx<$Psoc^$q)6zS9do9Xa-wTV=G<gvsgv11ej1t1aK3nz&^N*1#-huQ%%pun zd)$5ewR2^FH?5Vy%@;p-nkNk7-Dgg~Fhw`sqZ_M@MV*i21HykuK~+Fy(EE1@hjdTN z=RC9!cVr4NFFy^Gy%Fr`bA3q^?{Hazgl8LMJksoS?UxfAWeuV2?74KGa51Y^!J)s+ zwOZW;C$XGMzEo41(z{|gL-gAuL3LY6H0^e*w4LolYdqIhKp8(%)+eWX7T|5EX)x>N zi#w*s4M!$Db3lagR!kMX#?Ol?-GuS<HGWY9vlpo#gVEuAz2*w9@vqhRBF2lV8|twT z4fGnGMk)Ii$31zqlU7R-aK7sU@rID%JU8+TIPVgdh}F$QdfQmM`V8<qq^}_R-1umk zM}4ooT%--*%f7S%H`&+z$Wi|h*QVV8G=vxJiigiF+-7az_6t#c|BB+4T9nFp<8*%k zFYTIhB)TzP1N9{hk&9f$Lk<4uU0BG=n=nlfO*wXXj`I3az-C9tRwJ4{?}9*bSbv)% z>k<XBKM*j#D}gR{`ul7%s&Axn6aZNuj^goom#^$Sqv{wQ8IEkv50VEykvM}@_?Z!# zd9n-bD3DS0>ZI=GTguX(>b&fKm#qs9qEsfOCc7fr2bwLB))T_}H%%y$tP4p#ff({E ziyOD+cH9)+zjNGql2J;AAsL$oCQ3>W6ziN1CpI^>=5}mO^efpws`J(O)s3y4Nj*U{ z=XH_R4vnoxNnUfux27@2bj=7(RqIC_)&qS$_qq1SIo}@GsoI?LHKy+X71Iuefs-*^ z^gQnCvaGj7B9E+-BfoO~mo;2myj%qyKJ&dgm+9fSX{)I7adEV5m-f6X{&$rskV|}$ zD1^EC3Ug&WDLjNqEldI2mmfp3N`bdt$+9;`rr{DYtIN{QdSuk7t&wMVVwVIV+hwkP zl&z6!^@ucDs%9Ibst%27nN(-5sG6+^HI_8kQ*6}pF1yL%Bz|%_wpbstY7>t;^8iHB z=R>1<yh8p~A&E+xB);Z!8IL}>n`~F&`1A^dK6c5%kHAKXK71Va{!#j%WYA5iL+RrJ z$?A`3gzey!Zfqc+v%F)oPzc7K-N7<r;SuBrf&7xwj^^$pfi!6XIoBiO-JSew{HvNo zdJ6sTJ}ik;&i0ub6@9$_1N8B4Fquvtc;8qpa;q)Cbm)Ucm7)VpA73l_@R|P>Q)&F4 ziV}1hP!7lqBO_ZNk>9I~_W@pFi;&11rB`IBRTqn|Qbj3Sah!iQjZFUTvdQEsJXB_N z`BTCnlPaEUGPzej3Ym;ik38w<Nixrhn%tI9uA)vwD58XU%*~2Sj&;tHV7#M?esj0K z&o@T(2u%kbA&<d4yG3L`A3b;$;>gDknWP7~^z#2-^l;lx(?ffC0q<M&Z*&((I3%$j z%rf)F8~KI4zIMOp0`r1)fnk++;3qm^Q4-W|Rj8NA)SsmczL;hN4=`IA+W&d*E4|*k z5qr$6E{}3Arj`ydxgk?ahx_!Sp#5g`DAGZyVr}$C)Xug@A4`o2>E1M?_e6ecd<V?E zep3;j5(?KV^d3-Xzbp;yC-7Wuj(rzm7wjL!_i6Z-dF20J_#gMv_&-!0th4H0I}HB6 zi9eshKj;+v3oxtZ3;vISE`V@it4#;H6UQL}TF64ZQJR)(y%3E))0jpI4}WKq!WGyR zW_5XJyF&`od9q32Zv7~vaE*EtQV>MTGFhgaHWS5F)EHhW8U{j5g;Enj#>6F5i8-AQ zFmz>N9g(>P6O#~C=tN9p9R{3vWkyD*hfiWw<&%(IJm42sFq2m0VqH}S$K*^{02?_q zVCh=O8<EY;{c(?2C!*ZO(mWWO7tgFCP;_%XBi1L5I)e+FGbu~5*nUI@O0)f>Pe2*A zl7rtrlPwoiAkQ(4iP$u%kB00$RUaGbAOSS01#{Wgp;M4&J|Xc|EZQxJS5h^q`9SoY zy}^y?x=tRtj>L|eEjd4^-|YP%{bui>`pw?t^p&pP>^-c0v-fb5*Of}Yfk^y)5`Ne2 zpD}+GfjH|3qQlw96+GK0m#NG}cKlzEAkc}+Vo~1)8ZQQnUN(>-o4@tOe#64;dvD|C zEZn%+6SEkb1mqH`Ewxx{0Fwm|M)hJXQ6)<k)-!AY%3>`AYt?_Kre_D#?A<(E(?M23 zKV$Kx%4Sn`rFzQc>1VCq8ua=tnz$m3qb~l&=BQkBs99YGf9!BnU!H7^I$l2tM|Dz< zJdLbxf_CGBF#)MH9i#r@)j`<af&qFJRAYIcksoi)O0DWXiU<_!Rb4GcerHw3C)olA zLO%Y~vW^=LRtHb;yY`E|QL=|+9cYndU6YsnHFLketT|+1)6Sj{V6!01`TrWOiLtM$ z%L#9lQE_M>mNQ8|*0N+%sxLQ+T1zTGr)_YrekXL5O#{ct45B%5omIFWh-p!weBPm* z4^S(x2(x#~O={M`Yh-gkIjW+{6hc@02=%3E4*mnNzztvDWRLG8B4Kk}^obuPvuBhv zIF!uJFg2M~P1j`Rmt9`53E1(&fNM{o6h&Xz{{ekvC+REuKc}xwhocD9x}u1QH7SaC z4WF+hMg0D*wiF?K__-8uyx+CCa`unXL#f#D+tI^4o0If#i+&V(7$L|KdidAXEb50O zQGfhig?gD99Mo@wG!*K$3F@=2R;X9sn~z+fQGcDPP4Af`ZK^9?6tbvRmZz9~^-ye| z%z*Yjdo1VLVPa$RgdtxEv5$4lBPTU5N@&BZ>8T}2jL{^i<4vm1*6wc5us$keAAOSk zsHKs0`yLsA_7Sr)h4^*mB`VXgl&w+I@tpOlPl1^%q933)e|A`(J<l+E$2H7d9kEeh zn2<ft!N>6XXMT&~r4ngfp9-f%(eJH~o?_|1)=eyD#U_EfJ_^>X%$PDObG=Du4ByCX z%{QVDSWn3}m}lh!ZsL7O%83_6$v8P49L5~qS6C+sFl0uhWuE8qi;)i2S9iKzjHO_3 zUi=^XaIl^%SEV*vM}5~-I-mw=>OsbIcakVFc4SEr8%4TgI}|<S|4&dPkoF2$d3Fhk zG(|+!0aULU5a`Y%RY?i~v{|h!*udF|^T2>?leyk;R-|RiVm?)L=UkxcpvB&T6wIg! z<6{J)jftYDr%FI(4$d~O%4-%f%7~lTbkb&r-vyF3oORYzUcg?$P$<+l`Tp%$8Ils9 z)&ug4NvC-fel#b9r9NfPQTLto)jlT6^GVf<{x!SpnP(YEjD0=#^qlb_pLXRYwAkbZ zZ!CZkxJQS4xbZd@*luuzP6DefV08_bZiCe!Tt<?mBy%*>%1OUaMdDVyhuEKj7W*+l zA~Ocohkxrj*eTROU4llkWN|YPzw60uO{+_Koj6r)5t1k8j!<2>y5VZQ=9QDA_ncl+ z$6wM$b(LQMi2<y)F8W^$kcA^fu1S1`6g-O5fu#=KSeLod&W+jAysnmmtt{~&_K_c8 zE%WK;(vJ`++ybW#cqRtu#GXzfnkGkKbz-KIh<iy!qMJ_4r7HC~Q<MlQtK+@GgB2Fd zOc@0A#zK}PpX5g|;`g=y*^yO6YFxALg<>c3|Bw9tC;yl5Kc&K?&SOp65vF?V3`9+> z8EMr7;#jcWv_7iMQIX>=QXDFq(U;|U%RpTtM{ZV&uMVp9_zUPt^b+aH<oacqr?6A@ zN=2@4^cpU^6K-zdS8!Dit{S-XE}!?j_$$(4w41n@U=;3D*@%7G9FlJ=BHo;*t`e=> zh&(N2VuEaaDm9k#G+iP;Ollp!+=!MlY=J-o=@rYlW3b|96mw65Epl6^f;#L|t<X!e zr&WtwjxohT_12`%g_#jK>N;u9a#*>U_jy$Lmb+<ao@ClRAKH=Li=>nhiKOK4)6gPc zbFNS@d=+W<UWP`3YINGFFu%?LtJ)1B0SlgY<NpPaGOU9aLsn_tLk@i<@2Ar7?A_*D z=32Oqxb|?WNDRw^1c<0dE_-?M7Lr0|)0;36tAV$@*`b1=5XYMHh#t-_j+IdIqV8tI zPh<Q|N~~mu4|LISOFUHvgQMJG4v19AvBLS;JRfOP@8H=N`L?q$eTzJCkp^LI^V`!v zXCq<>iNp#bB2bfbu=MKOjKpNVC;VFNk9?nP%-p8GAJXRg$@2XGzCUupO@ZhX+8&ed zFJoP~9<Lm3X4~)W)5s1$7h~pk`t$5IpI^l1fCVxXun5vTX=E6H3{`x64V0s(VSYCE z2nG6lOB{*0C>yob>!-2V#&94Mh-GA*l~|XB9IJPQ&SUw}fcWKJyvg;}yI19A%<|Mn z1236@nrL8&8HkG4@pQ%vSt0L6V)XW`Nf`dJu?^$z!YSMZ3Djkp8@X~KS`jrLxf&#z z+8?jRlc#qPqDv)}Fw`C0=H$*Al_No=2a?mM#PcdEbhS6Cg6qgZ=}W!Qr9ux{$PM`X ztAhy<q(T|Jp$x70B#A@=L{Bi$n0!YgNwCm)M9N{}pZlUcqQOpi1fuXpJ9mO#h>X!d z|Ayw*yKlPthF^N-8jAuCN4^|8KO5hID)HXZ;m7PV2t8(9(<!^A;$c44-{z=qFCOX} zD&H;)JS?A`!e{mFQNEI7+I&vP6_ToHH*<cbdwC9hj9&~p_@abS?T!_z+?5OG{vLIw zhEuOcdh2~dhFm-1*Ow0U{?b$9GsonMMltP6pWl-qA%eQNRdlua+3{?tC3bo7E-*T` zWRJCGJHr=Z)5qt{jnLd)iE$ww)N-RupPh0DF0xaQ94jz=>6E|nil0w<P*N?p!&#Re zD8$JuJZ;BU2ji1TndN!Bf7bZ3^q@0ps%6i!WP=UROIg3^9M^o84UP-dwtl~L>y*Y- zzxWI~XiaCAPj~=wM3{|i0BcCPk<D7ldD5kv2Pqe@rJTo>aw(FF$En_zbsmSwT%p`q zxiwjdBj~SqV>Mk$i&~4}#tXrzvB>jKWg`n$4s+6KZL(EPUGe-DyZl0us#B)Dn;W2S zF};<mTuWpQBUIgydYD<22><z6@lhPqQhLnfxz?ZDNZ*c$Y$8f95y;)zN=jbq0Wm;w zFM3b9K9iKMksV&_DB?K_#uu}7kzplJF(Z@b%1yepAvgxfZ*uLROb7V7qGw?19+K}j z$2)pUd@G;fT^Bq_X+<&xZ~ycw*&ji733W>*W|sG`UEUBZ4HA_)5WPF!SM~~CSxlxo z5ji+$5m`W}YUlV%ps4d@{Xoz3oO<slMN#y@?vK`g0BZoSw$Y^&4JlvbJ=O(uCNbET zb-s^qeWAQrx$c_m;=~aucbC=uk{-Aod@U#386y+B(y1D#vn8!gMhGC+w~N=Nq2FK? z4$@$rjpo#T|F1XRrf#tni;`IbY;nMwyI7`QYZ{trM5O`jXJ?ZaDuH<B@gN82d7LZd zqp@0*qK?%g`|f5Mli+h1ak(FIc^J<e9o51ex7E=uq|-O<Di+NwQ!XtoMa@zV>)Civ z50ls(&ZL-9xlvpne@+xvwRf9V=Vz8(=S!F?1*HTf#3<45GwUvea;bZmu6vN8<L{0# zruR_hL(w?$V1n6lMIgT%%9{jbjjb&=Lsf}$mA<*SR(z3&uyi}Xwb6>1Vw-g%J@ZAr z>xu^};Sobs#*9Xw>MxsIW6Y2Pdth_+U_3-i@n=OSj+6yezWG{10=bK37um)lKyB-V z_ver67$zWYb&$_+zWOfMiCM*E%zTG;nO}^V`RJZpAi;&v7~BFizOuKt?Tho>GWQY- za2eS&!8kgz|6QKRV1#V~b#SeS5d`KW4xW4JknGPBPMF6RP?mX{uiswOZwvI>LjAT# zzt!uvm-O3W{r0kcTcY2V>bGUQvHv!9xzDwVt1{@6Z`!vqw;MC%926l8z6kXB#F##c zIRi4BXS3#Z>-_CDmbXAAVi$1SJ((}c&@#T){ON3eP7;A7T*_hRsZv)~h`WTpb%l;H z7Q$V*iGq|;hd2<Q#b?p<0<P^2EaX(Ns0Iq`_tB`s99-wk4g}^T?UQf4(HWkPJz{;C zWEG=Ix^I)kCU0zkFpd?Ve($ZGd5T&@9>n^)DkDo=iUA04EE9qxM}sa2&=I;X{y0hO zcO23%n~>J%!?fB81lzZ|&ex_@G@&-F4$`eM<LFk6s<R}8`#XUH|4X%w@|RD5KGSJD zpIixHF=}}Muu<5t?vTuCbf?K!>24EVh<4fVHqDyeE<C=bAM<#uSC4rT+6NpC%ZKj_ zjzYVQuEPrBHwka(uq*h8*m6ZLw&z?S=rrdD9GQ2NjM71S(4>TA;S-TSoR1LEgjiC> z4NM=rNxx{Uuf+fMnG=fw1R?ctltkT)tS>x{-zp>$E4U4{--fo9=l?SzHzWQx$kQA1 ztaC^%mUH^!vY62-d@N^4KfW@nRj-<>rH>*zanq79@WjWqBa;%GWJtF}Jkpks4HP0D zTMusLChZqVU+(6Q2Cnh3P4`7~QRqI_@8h=+Gg1P#Ol$8jmY$4I!IS_f0@G)9_Q+7X z!Zh4hK}WYA%W34ONUGx}|6g_d!&YT#*(YPc`%C@I*(pC}>;Xmw>i(>LsvqSi*<J9Y zQ5h4Ufg^O9OA$s2aJ-5!MLyuMDB%S^s|U8jkLyyIZ>t6OHkyl4pBM7jrv6L8`7mc{ zLP>0?bVrsHYyPX2!)j{LwY*Of_<!7D179MN&+0M;z}I+tL&$!fAa5G$Ql=kitjnqT zky*M+H~lC?pP?Rc2e*+#9|TF;UI$6C^R@h}WP2w$?fpv44qd`;s%B25mb>+%w0Mnv zlooyZQCd7tKT3-ytH(oHyb04q!k@;t^EcbWTfo@)?o?fcFl~=iZCQt}ZBz%FaqX#I z;3*SbI!qfFS$r*jz}=A-wZok!@So!@G1Qi(gfBtKtIpUZ6n9BJbf$@~hnHK$kp`Oh z<_IY|grTGUOoRqTr_(_Cg#AM6R}@blL$HuoQ^h)95|_*rYjHS>a%!APXW?K(^u^+N zBKS}-kMc#A6pM`4MXz;=Dy>Er^`hV;iw@#N7d_W0s`MUR)asU26fU!icBJSsQL9uW zB=kgU?<Tqwd07!NSH?uqed!FSyiixZPUq_mAMcIMclryzy`1W9oi3(3E5)3?O0iT| zO<hcPREjzMlwzrF-axTbH$}}KK?+MVc3eg4OxtlyQ|NwMnsjj6Zr#m`H#XqG*W{<* z4}G!A^oF3Uo6FDzk4Pitp%hG$o9D}Gij#ZGYl_j1;WcrDy%b4wbyg&@xVAn!SLjs* zTD9)|rFxcG$Qmop3?bldYY{p`pSFaXl$DNZ_OS%A<9qE81wr1?rK>ZTNJFP1p$d6m z6(({kPo`eZ=%|!Sn52fHOJjuFM}>s>l~2{feH2g+5+PDOOkoKsD;y?ZIn(Qp$&tSc zxegh>(=R@TXVf$h9U^NPW5!B~;6c?LOD!|wyErsvyUlkvDu%u(>n3%=!*9;XkhvrB z%?ZZLx8#fPH>jDP^5kp$IM)~R7rT8#R+)YivWgHqV{7HlZ21%Bk5a_sS5|rQD=?H_ znXctmdKCU9--t{X`C#r!>0_#oZ!tg8$Nm^^y|`x%&#yEuAYzL#LpJ!y_-zMHXJLet zjQcWG&cjX)8^=ygw#u2VbILp5_hsh{&L#E+l7ibgSBGMWd+C9*pU25yjHeh9-jKsc zecs}H7ZF)5q7E^GvfJ0+sBCP`OBEBS(Y<78moXzhRk|~!wbiuJyf{-LgGiHqW!qLl z8--T!pzfXK86V&qxiar=JFJn)Q|=Pv;XHaH`*aDMa_{y4Yn2%Q-l?xNs8xnChmiMg zzFN;$+~RldE;fG?`17t?jh9ySF(6XTY&LH0aB(dASC!3GIf^!+{Utfy2-Su`44POz zh_Yr66#i3WBow6yOl1Z7wE7|q%Z=(sgluC|GAX8so(8Nd_^#3|rq%@K;0ijH$|T@e zpoa{T8Q{k)(DE^-p@{x4ZIv)qn#iEOm(Ev{iqMi)*me$8lZvQ+Hd6_`@hHlG6obD? z`AIyAZj>kQram1K%X#weN;fK!#8}S2GdPZMGKDhQ6biQ~bOD8^K-Jr<4jRxy(fp)Q zo*1jH-QHSCI}xSql?tBL!|Rl7yB_Vof!fYj4aNq_kJy6D>R~)4&O`It+ay?+T)$Y9 zZ|m|SZEKM(L1DWJ{jILaHjbx{9cb7la@9{>MbVN*1Z449$P(JBRc+~$HT|TyPr68R zwzswCEglP17wuy;*yByl@}IQDC;q16t*7r-F{Bo~1J!lASaw=i413muP6Qxu;&4P` zU_EQsR<C&(lfJg1#Q!GX6|bO6#MmuH@Ad|7wkBpO92ERf6kQt8H1c}6B0H*6Mw<1u zL8XOe)+8QXel*``-TT4yN<RwTfI{@%D}dhga_w1{mHJUMtvdCX*ThDa2m#c(w}yy~ zVn|`7?3ihLjNZP&9_#F)0Oov=36<vXOv=F<@29mox#TD27x5E!n{UW|!&h>Fo`eTn zPn^HVWNudHijolM3}8pUL;wd#j6}$fDvYaG3z2;t#{W8P)~s7+tAHnCJYhgtdTgQs z?p~!vEW>P7kF49+Xpzn{&e7jtDl@tcEsS@9=FJbv^Wtv2#wCzVL!L|)-yzx;%9FA1 zjm2Ml&I<qW)kfqAoo5&`*YLFX<dbNXjB%$gE-$wq&stnlqaTgPGZY%MDAWCdt7H#V zW{)pQoKv!g!^v{ifY+{xlLswy@jhsgOA^L)m%m2UYv7QlJR{P`lQ<l5T{XtM-xkZ( zgfZhpK<JBhE*?r8HD7ErcSBuXoL^p3@q{~kAWsMH<f*e!Evqq)crK}B**QtlnDo94 zw{Nfv7>l}e1wxfNCfN5Y72J9Qw}gHK4_(&l$3h-o(T}3Ezn~ul#*eDUHZXpWgMRTp z!;W}<GMdiD%zkj3J2rA}_?t{)MsH!i*nlhK!&t%4-l#_CR2kMawFUI~9iu9bQDVyD zu0%{h+=a2x+vk1mh{zmwN_mavNndPYRyi&~U43S-nBAg{SWtG$^-+CxsU5>#QR$WE zD8`wm8RtQ_VjRdx?HJbc%XqZa)!8w$_t~_-7D`PM*g%?4flB_enOLHLUg;5~Wj+0_ z6yM<uJb262PKcD7O>T3a8F<(h*x1Q_Tb6^dDmP$)MdcUPMBzc<gE_{7E2>7$HLBi} zk7NC2t`LAISJ%a7k`(_Q3iZZ3PasM~FneP;w?3$3y-X9lJ#(svamLZ?snY`7Q_pvN zqsvRIhGx$i2IJJrR?|G|<G0nS_a3Pvs!imk=Q*z#SOieQA`RpJq&jA>p?R*H_!cc! zSEcn%PAtZ+Q@!g~la^jA>0XuYpPDN{JgQ|o5CZ*2xsG*Qu4f&evFsIZtjmYXdSuMX z&a3hKv$C-%&s=Z~T_S?J81+rh!$e5OFe1XbgnLoM%BUQrtcURFAh3Z<c;(8Q!yc^; zO5Cihu5^UZoH@6O?Mep@m7xcSpfIC}9=X4Ng?T_G)WNf|O9OCHKsc$!^Ee0D6|AFk zMv&`m+>#@~4hp<6#Cc>zYbiEtQ^Nj9%-ulQ+s2H~WVm{A9z4rm=Atq#eWNnlAo`fO zI=scG8Tmiq#+~8)1C5#Q^Fi$5gW>&XrKci9RV}~aq1=4-3~5tWHq=<?FXL|5<}5`x z<u!p?B3|%K5#I-(xjBvQDgfM-*BVblO+{nP$Q4AsoQI19cKic)(OMruM$u}i^a3^M z3Ak*?0UW=W*kp6%bE4xL)tdy*(U^=LJztF;2^|eR9GxS0v0`g;GAcz@8`VAOEwsWM z@0o?HZh&^CBd_bcT<hdD7u+YKFz1ZpM_3LPV@<$OXp;?Iy`9abqM~6ormDq3K3;|5 z1`C|MJjDV^SLlrr<xnLUYeTcpD|GA3-1F#29nCqr=)&c)zqDMs5I<hk4|?rWT(O*9 zvlT1dB7KeJgilVflH!-<Br9E~Mss*p`pcV21quT<-8K6-egJkFDcwsd7C+j(L!nYN zo*S6C1~`Wk!}6rfg?d4@Y7Lurmq}`@;GQ$n1>MvAG5Zan|45D6)KGu<K>AQ$IqAO| z>i@ohkuP6CtKb{aA0ZAcUeA?Q-+<w0^|4f|OMjo<>e>HYtEJNFUzG&%{7<Ux>)X`5 z^~C>bME`!Bx-U|77xZp3q8l#!*%L-OCHtu>z8KH8sOM=YLRd&>-)1TtJcZ`r0yyE4 zyy(b>xdeJtQ8Xsp#p5L>$$POpo$5A+_MYW=(p@w3j9H$4@^hwM1@LrMv|573^K|ws z&p-I-YkP#m2Z>KzY(T~m;h}<DfTHKs?7tLbq^VBtorXyvr4cmo%2%sjR$mP&a=v<V zZb3#OH+|nzB!hK+Z}5yY;b7mk+8$a^`~A66k&N1&V9rq<a<R!Zi_tqWtj!xl?W+;B zZ?;nV<^hr-ICw5%q*keYR|px)9J^L13*R7r^hT7REyfH&Mw9SM1mqc~`VOx0n>V5Y z-8s`83n-yFLwU=_aF?^UT4Fip{7#XgV$oPmHe-Y}YnU4)nhxt8kC>l;f^F{BGpZ5; zG3{;`3)NW9u2$2gl3UIV?4Ab@eRw^py*=uD)R9ItjAeG3G@5HmqeqoAs-m^!NAXAN z>sw#9m9i(<T|_Ax%e076CW_Xtc|?5|MQfmXY@=x1w#Zgy6aB#WO??zs)@ZK$d#R#f zfT@%o>3}FbcE_}vR2!v7(3Ph25Pkeif_E~*%n)gB>RWwG6*};eSpUxiVrp|#j&q*q zj9{0j<EC0{an!Oe6vL`g=GivIcfDp0c%?3$M*)f}>C&ubsy4+}I>jH-#l`88;>sbm zSuJ#>xH_{V4yjCN{<0^FsMDCCPV&n&;z~ytJgak200R(*j)v#g1lDmaiqNGG1C!ba zdQv_&s<r?L_xIen-Hk~9IjnwKnfeO}agc-I2`3(VzrVCouq($h$t%KFBeXOAv?BNg za*CXrR(i|e?JF8$**Jb=f33Qi^uGqU_#ei8lNTuKkE6@}(C2a4XT|=BDNA}1bc>;b zt@WVK7rQUdA1nTPCzY0)t&LXJ!3J-nH7j_Mckg;iB|6HD=5#N}b-`V|7al$F3u;V! zTJmb53)yTT78;Q|6idD8jpcMDJR8@KwD>P9Gp0|<#$HmU^eJP;bY2{284JsMqtA>b zK;sHx(Pne$<Yq(IjmcfyZ)--rk6J9pA!-8ev8F}2QTx2Jh8I`88qDjD0Zxo;;iXap z%|${alF>ycunYW{P*$0;CWKB<_Fj}Vft$7SZw2UhZD45j-{n21qaxTo%4N!pKBR;G z^QDlHwU93XyI$jKQ%N+YP7j%#cT$1QSdbyuDO(^kl&U}o%L?fVQ~@r!AqfF4Bk<}9 zbcVw6pi&jj%c%YxHl(;*!U`53hGwJcA@!Zhdtrx(#b82ikh*YK-UMs|@{m9A6mRTO z7+hWoC%&3E!7eay6X|ffDl}n(Q(zvcg^9<~r1*0!HVehXejn{J9#LR#T;8Z3MP`gp zk8NbesLxrPH7o5QeQVH|nJywrj{C1f<g8b^Wh6$U2BhsdE}W5G@w{VG6)OSz^JH%c z6+2Qk8uJS7Yz1ApMvwgS&z8L@RZCDWdkx2;W@X6(djRT6Fs)^cX$HVieNdx)DIqjn zs#KR!f=;}wo|n)Lx;~@o33-Vsg4U%wQ9Ay6NsSdO6pfP!QA_Kc=lpDGO{eUx8`W+) z5+5bth<V^eXS;N8bvn$;kNK})zH}w((M$nS%=2EV?rl}+b?+<uuj;;D>i&hQyWb}- zispf4Fck4<o&ODHr6BP6lPHWy_^c^G$K0TJN?Y>uB8kvSvIwd1il<A=cG#B#Jd<m1 zvP=9U3*jT;7}pUsagF;$WM8KVr?S!*yufbNEv+{07ba3}x=fHGXUCs_p_Q^BE`d<q zAYeRrR(bDCUo1e-P-YL$49*%EGsLsgR`3STy1Y*o`PnLe<T|e-Q^lT<EaUH!jkidS z-@HBFZML`@tZa-L@0+iMw;DAS?}1#Ik-}3>WtsIUT?>CRaANn;H52nO=2Ra`MPeXP zjmGGKeXnCIXGBC{WrQMy0PGjLLLQT=o$%2qJTb?l>pY5^(ya(F<>cuVo#&-S#dnjW zF73k!An)NV9#IRbf}NsEC9!mRU$E2<(1E}A+vMa+&T%?tNt>KKXOrV1r>Y@zGNTRk zVv4vC4COl*8Ymb#VIQkR2@OroQio#7Bqv95B>1eDyW}=FjdCvbdrk%#>(@NrM)jpq z{QbQY&!_kc1JM|4G7?Ww`_8PWnvU?{nGI1v3_38JEeK3;hvT}q<hcx%yfHmRXr|=m z2?|KPYMS6Gw(nQ4xsWH&6hE(w-Coh^N4RT7{mN4_^w;j1F_$^|duR`c-@j?%x%f>_ zJR9FBW4bI2V#8hTQi7vt-1eL7jAn?8CQn8q=j?0&ppY5MaZgJp2e`K#IsBpEzaodH zm&3L@Xe~{7opBtyo|rq?>o{orhL^NS>NZ{zof3I%*AW6Q>)JxWjh?bE)6cybtTjxY zSzkO_{1fYo$c`(B>nEPLSUPb0K@RM-u7tL0JnP(%rRTybxSJP{;EO#XZnSPr&yZ+( zR!RNKJ9NMpy^g&vjtl*|3)#tU_EX9oUV0rr`JwLYo5jB3ac`q5jCMY!(Yw|vXF@lg zV+(HcgwqfkElnBO-sV991jf`QM=&Jnd-I?|*}9F7=JW9V<1&~Lc$I@@%Kr|&nJr=S zB!sEl@fjS2O;S!KRLS9SS^AvGuW}03mstEOU~ZF;E_}Gox{HIv#=<qmb0fLiaWaI; z4U*;u0dt?n{Bnf*a%)Vl4rn8*@)P1)4s~B#Bt4~H{9cR^%gbs&jy}mUqZ6TA^StH= z{^!M?Qlrpai_-zswd*8y3jIy(c2>^D7L*yBNW<LNvL|>KCyb4m56Z_;Pc6%znu}xo zOE}2w@3Y%mwh~M3dI^qr@MH<DyAfiMp__L7q4|snwz3_0qZ8?rboL%Pd%ib1m5xoK z&vHSb>Sv;Z20NRftFA~}w6Kuv@`7-C!S<tA$o_)fSYIEb5<VwEdCYCIRzjAP-1@xA zcrsb?HC1xJYdZb2Wcqy4@n@6u?PVh(%Wcw<jhyHMLK@Yt2G5TES?Fa?V}8Amf%(4S z*=bWud6R4xdz#1#^_caj1Pn+FpQVaBZ{Fyig+gaNAeo52W5fG1gT0s&_Gg8P<goah zl?_`n!>?r~j+&p%d+3NnhxxhkkZHbVEZk>J%kGe2uBd7Vo~S%&^RBMIQF%b79!US> zKt3&01OK#64Lp_p4(aXV|3-F9iY&8-s+>M$CI4-CbeW8}eAYtgYWb}Hl~H@6Go<_F zHKF%Ca_(7#FtalF%xO87rlL`?K_gBZcx+G~JlLXA<V>D;K1Wn)b3{_*pSL-p%+~T~ zPe=HvzKnt$QInG^bUOsV0=vApHxGz_@?uCujv}awcGC@oa%(FVmvXLdZO$&129%jn zw6z&<9?VmxT}|#-igqSp164rKjh3J0;y3bMF485Y`^dRUZtD!wRux0!*3sXYp4V|~ zbhFtm_qgiA680%!s-|FrZ15R_*H~F6_Q>$yL=t^j17W@bf{q+rD?YRo<^!2RRG=`} z3d6>_U=P*5fcc5XTxB&a`HD~^tpRg~G#NV5-OPyTWJbJ>vAK!O94ak0#oc;SH1xV9 z*H{qC5LXw41ER7{UoW7CNBz;>7=+jC@wDWJj*suA3V-w&>6t(JvJ{pKy|dvCbDQ`~ ziO21YJ*Z?UH#{NfjuQAer_;id*X50y!uh&+2)ZXJOZ*1ak=W$-tp-<zjL6G2IaN}* zk8MQ=TZfK}Ml(o~3PKe~WV~X1W`p%`=MG#R?^zRHL}kg3ucV~MY|_Q7Te3Rvwlh&G zACEsLS!#HjQs?C9Qun4RAJ|n_&Ug8tE2oWZ5$PTrAwE8DTXL7pIJfN5N{|Lt%0pU8 z4wk%=5`Id46N7pDC<)MX9eah>49IZTT*K0nplt*~lUq+V0r!A;2m5!j^W)K!>A?_F zUfeV4dEL!#v5+J!h@_s>MvfJXF+^T{Z_OxB%zCqWMQDC+1y#y`;%8OHKaO++U1weL zSrTL}4je7{1HSv0Dz+(E?33;){gd|TZ|L+lbo$g}`2{+CLHqPaBwY?fOs=!;&1VSA zs_~vZGG^~ZL3oxq{yTn0@*Cp6oW~dWnI6AuF5^y$nA4S;=vQo9_@n<D2I`SzLZ`0K zltApoVj`@I@U~tpkXakI>AlvQJVNY7wGTGsg2o2%pBKMKo5;Szkl~9hDHd|&^tGI6 z#e!3$<dVt3){WLR86BX}SIRHo2o|@}62ga?2$~@%FNY3rG*6uD)EtQZtGI@oWKa#n zoAN~W)CF*yt0yZ^_Jt9_*#M}kP({92Rq;G|MP{h$^xD%8Q#MY1HNI$7vGA^V<4HaG z?9aHqzAU`+)c5##V-xzuS^;<iS$1n?vej|t#Q!9t6fJ>LRW%ZNR@aqSoN6?!pW|-@ zTjJ_pc!Y>l(df~ag`JIs>KqqWR9A`e*}qe$#RpKOU$FIPAcTNwX>#Yeyv=T~&U-B9 z%BO`C+=V0+$yTnn*(K%U9Vi}<89`r8p}}D+EVW9G?U2zw$EdEOR9f`~lox2|QR|~) zv7F!prOe(!cW7%_XHi|XfY-rbMfhRE4f8{1^jC6X6Vrn9f(b-x#Y!|=+g_9<&B&If z!7_xw`KpNRc<q>VIUa6`zGRzq2lw{sm@Dz~XbU%Tqv{zR1je;|uC9K1)=m&WsRUi( zq2k#j5bEb(z!}%U6~2QFOxnys4QOmW^8;(}F;HT9ZIj#AcE3tkqHCk1KuB&Ft2-8o zNTa{$*HaK`ZV1?g0)4(PsuF-fnVLl|gcf4hfNxPStJkGxEHQdyG!Id8iE~HqP@3_^ z>|<1JAi|ME6L3VqwK`1iMkABM^jPwJXlD8>y#uX08G3V-0ul{r$mNh|Gg--=01PSs z@|%eS_u5sdm!|B#NoWvC#b;_TbKROzHJfFp@4^?01+$?y)x0QU`a`uQc|k{FkqYcQ zJa#U3$wB1bSW)yh0k1HbsH)E8o_np|ERfSw4=Zp6U??dezk<a!2<fR3bpNoj3J*Z= zd1`hy-T4wk4v?U~o9>?c)Yk~GJawkK7+#RE;|3=3E=|VUK#+UD7ppBkPYVkM&<8Qg z7a57y&|?>M#Geai!h&r)FbVCkLZAt`e#$@Pr{HFiwVvBWr*~<e{`HZn;4%s>m#$F7 zV_j9!GbAx1S|{t*7wy;X`gN)OnxkKv?AJZ{>f5*UtD28=%6oQ!_jpa6XXiXzn$9dL zgj?MwVJ!T!Xpj=+Wa2H+s3?`*sD0eA-wKL(Z|wdjuWQ%AEf8w3v$?ungiT~ierUAP zuoGuV`dRfwlDauR<W8LA6jVtRJgc6yWJV%KeJR@a@!r_WG983pzK-UI%JfjP)x19! zVZUE3>UNd9YG)Y_HHycj@!V=z=SeuC4#d9X5;ktWh<pJ1v@l`karoMOt<tpTKB<6` z2?#VY!d-e~h-aFdjlY)vB4KOzpOVJy_3ddpydqph%SOyCoeQB`PrpOwqBj;U&j>qv zMT=gr?Y@u5{KmNo*}EVrg_r=MS>EVyxG>f#Z(KPbKWvaN|1xUGsyfekBq{@s-q-?Z zXYnAwVU6v<7@|2n`tU<|ZaQm!B-S7O=&7-PXWPHE_U}CTC9I9Q79NjZ8kR0MX<rQ7 zQ*=2cPwmI+oLX(GB_}V5m&StLGdH3_Ze<$PC2)g3rb2!AV^2y~nObF3iIZ555dfz8 ze@Lq|f;sm*%nHW1uA$PnzQGvL(BBB&YHRW50jG!pr;E9*mh!>l`)3AMFtdGBFMDu= zgT1Sv&V@Sr!sD1L0@0XM8lCe5f6b9=&A^)exkl9-MWA!$k%)1pjvwwfujePx%kFN- z->$k}QC-P9?wVnFD6!GdS~mwp+~!2iGOI&8g>rm|!`AA+AsCl&S+_7B$M29~qv8zT zi&0pI^pMv(^s4|ayz~MAUvQAN1xM$oSe!Q1bVqLn<a8K(Rx7A+&`~;WdR}C`wS-hP z4oo2qsH@(gP1~?+cVz%yIDu^B)Q>%Z?6q#HOHLqFzvnY1vRV<VoRQ|Ft2Aq!sEWvG z=1?vF=h?T7sH@6Xr`J`OR@Y!vSMs#EnB!&6*EPQNoHY7~BtU0Eo%{%8CPyH)3WA%x z?y3Gbc#gK~5s}?qkFPd7YutNRiIQ)WuMpdsXNBa3j-3@Nqn5<Q<+Idn>a(il6&q55 zlkaMmYt|!@BFF0D3@v;hGgx4L5I&F<I$EvF8yhxfhF{H0bbQ`kkbl6&qO8e3`zjY% z*CbZSW9eG5pQovQJ}EZ*^60ZR;sp8S=wmHx4kSyyDi}0ZhLul$e#qd!^XpHkA&3<! z;fqZzf`jGL#rvq#di*HnIrG{)4|hd-%)7hK!V*?9tk6?4@fb}9P~fq~qUwjiEN%wF zdO>_N0j<fw1`$7L)6?@}XfUcJuy(vRfAnn$_G$9!uJk^BEPw1|2Wv+4P|5i<f6|23 z4IM;04j5Ofq~t>`M@n9m2g8jg=L((kbTVg<<XlP4MLK78mh;W2k~5H;Vx2Q4`AuiZ zac+IsYkiih8vX83)o6!gu}|oXaYRBO>u}vJz#z+))0w(b61wer1$!e_#x>z(lK^!F z_j|+CO@s0}*^_lULzKiYj7=%^$HxA}8y$thG^Q_sR%%j}%lXK%562(pi(=s+MC{Bb zsn*+Ptx-LV>f^FiOz>Gk^!lQcIm=Ul6X;}4L7>mbiP7D@C~+40?Dl1as74#tA_rWd zo}$%NT})LR7p>`#em#BVY%#xu8KKX$DPU5WS%K?_r#CGjrU+|^by4-V&)VQ`d|4w4 zkvY;D`f27HxtIZKSRzRH4%r~#nC)C&)L(2MPnzX{X@~GDStHTnD!85aLpr%uJXJ}q z_n9MmW8LqDQB?uYj;FU6BI(~T6m&OLOR_8e6bWcnYuc?Y&ip$VJk09CRK>+&G7@Wt zXr;0yQz4#ewN}a^Kun75)Ka-WOunfZEc#nLMH(pX#Hqp^9EG+SSp*tRm7=kNWAkj? zYk!U+rVDap4YJAl6jDl|G)XU)UncI&(P83L5F8$ep6b7KpBz=<mhPid#R(L#Qc^)` z@KiaK)l(G2%%H`|t)A)>)J9Hj_0-~T&C{H;e-n>!GO+S_Z`~=Miqz$Txr@~9qVTTh zBk?CF>%6Q?Yp;F(1}@8Bl={H@J$%FMJ9$182nA0OaeRpN45vPaez*&#&>#C}E#0K= zG7nj$e-!btonW03xrMHsq`y2jZ1-(o+rH(c_f5?%8-m5QKLzzz7Lg=<(^jQ55wg_v z@1o@&$5bv8VWe}?9_x)x)Q8->(SZt574avZ`s!fCO50xR<R9&9@-j*3E>*;Ts|uz@ zsNjQtzj=VKitHKfe(hagT}ok2r<FR%eKlT6B{_D#*P04YA}@c--^`#F3tzneiF<T8 z(l)<AJ?{y2(%)pOs$O1WmpGOZ>+KRpsuB{^C%$o>U~x>vN`ca}m8w2SZZs$p7)(7P zo%Gu1+itnPZG^F~1L|sr;F(x$F=PdMMD}4!_Mx_7t;#MYFLzwmL@yFhgzbd!L>Usb z_8NDER&6O1yog#tSNrfm&s!FzpL!4j>7JzJFYA^}`-MsiVu^(=7f5a)(R|g1$wF-# zi0}KSt|l*y7C$B}5Tj~Uzb`7L-9yMx<fo>`=W6MILyz+w5b%5<^eBd42$Jo6A!SXF zU3@n7t*Lgyz0(@L-EO$AG|Zp!;z3TsV!t|Ed!^~^K^#cmmqccy+BB->k>Io&m-*hN z`!iCcr|pR>#jM{8{lAhnq;&d6N-FyADDylqMmGd|r|MuY=?iP#k9{vr>fpP#FxnR^ zIi;@ismta+p?}tDQ_C}hgA@}C6awz%oXNDQcj!Na5$*@J2ZQ+6j#tReS45$3TM;jo z5<*86Y0{@1KXw=2R?!$8X8htw;o8(_?DFA(Ss~Wd><2+o9AcT8r&_9rFF$;Fq^^>X z$E9H)y_p*QS&CnNh~KZJAdFpVZBuLW`E!B2^g#}aip4^6L79|_&UXw8k|~xMo!L`o zw%A`5klEm5Di%NRL>i07RJGP=$}>mRVjU;X(^kqyGTU^vQC1}ijAKug{<CCcx&cOI z6Z3-S_@cQ2T$X~^X#9PFo}4`L_honC2o+<^yu2^7b?3fvmz0t)s=GoAv+mKCRwZ6` z>i5<kKYP!I;cG{~U$Ii?!(0E=lI9(~p4v4<zo+cEksXC~N@c7PQOLyu64NgV$_OKJ zJ<glA(g`t|j9imAu2R8YN3`%ABudS#`Rob$`fLi82g*JnEEI<rSHZKHY#)02tmNp6 z&ls}Fi-r?iO+Q7EStKf@O#E_W$VC)(>aX4qs;|pTWY%RH3mZ59d<t-j6;z=4L5_uK zVokT7oDbD~m+kvc<ZkJ|pFleP=u|){JIoxk>cz)Zj8LgqMC8B&&~HvHRQ><A^q=hu zb*~@&$ImdK`oER_|GQ29_lkCkuEUy%{-f5>#Nqq@NXC!!|FRKY^MG{@YYKg4OPJ2- zpXO)D|25lQKbC*a59TZUiaxVfXsmH_HkX^m2IPvl!(5xrt>wVF?8_k3HYAVGSoz#0 zuk?XWz0u#Evon!d(%_3;n;(eYT<9w!BKkIUXh#%SE-*;xuSbZ)K4X@su8`=5*4yY? zKG(kkCZCyO<n(|5o<llG{RRa8_WNVCW$fy23)0jveO^!EF=>5FI=_L=`<{@_uR)(F z`v83=I*9%@(BGB$oI?&ue~;an$YM*+AH9e^qj=wp;@!5-++ztw30j2CeT00L*5~7s zeMZIpp+2{KXZQJ^2MXHCUxlx;e;i*Y_5Jbub8s9uJibdB+S12Qy?g7oPMG`1bNhCU z*8JYSJjai{Q8wdCz0rH}E8_7Jx?_g1`9sNzw)r2N(k?$GKc?;IE!KZ!94t9#ZF;;L zFR!@GcbALt$$Cq@H=85hWzi;f7mkGy&c<3a4|9G*rLaG79-=Z@-9Yw$B}}x&?@l3M zKtKLW$%~GBH!fyexg`=O-s*-a7h_G5s_gmCy{tbiMfM#v@kp})bI@0R=#fFppL3x^ z_;Zit|3^2ca@RhoyoKT(*WT)esjDzgNlpG(zh!)-<qKrdbMN|>ok~wN8#oNsvv1;f zyFJWNukcO(?1`uM&(!Pa$XdF$U1BoHc<qrKWOX`ql)KL+y8Mj$;9KnbPMdn0-C~Ld zXV*_hBQNi>FS4({YLq=^T!U3@e|WN6M!D;N+uRg6F#Wgh$A(NDz#XO;Q%cx>Y5_0_ zPN#iQZf>zd9JI9rl$!^f52n6_IZg(;tdP%T$~cXF%J0C(z{3DKkTKzxP8oo$^19Kw zlsS$vv1pjoY5S#lyYZ<eaZLwcTFHoP$cU_*ddk6rQ!~sD**%TlL4|GU=}>)t!6S#! z_myTL?N`L-r01ur7>Yg*t#534c_m*RrQ#T`3%WRWkmvy_LWL|6t$vhu^dOwC?FECa z3l&PH)`il}4;OL2Qg8^Ij`VtmfVgd9uvQ-@+g&OK>&3f|Wd_qRSpU9919974A$U6m zt2dT2_*$asurT5qCdMWwD?a8}SS>98sNR3|MrfIfs0s|J+T2&M(#rWlBoOjj!Q;^U zPd-n}$C~fQBS+hfBr@H3jAFSEgASBd_%P#z@QeLsUuBGrUdFsHA;?DL)9OpRj>X2r zqQ-iFTGPH8^mT#WA4Z>vp5Pa(=r%;jJxzzu%@b%Z`kQWm2^j;$Jvi1ClqV~_Kq}2o zb|&%F;pYQ;zV|A%Dd!ZdX5Qvu@|pZfD?kRB*2^EQL~)tI{C^ko8pkNat)hB^M41Yn zDAA<OV{<e3Ywk+$_F*n)$YO&zlcN9<KQu8w?Gs)gHhnBb{yvsdATda7iJnhRyD!ae z_;|vJiPOX}F~B!*?p34GcqT!}yv+?T!$B1s4R?HC+zFmyGiT0ixXPQMI(lYQiQNd| zsh2o_BIs08t&$k?pugbZszck>qF?*Vwi;EdRNfG5<G<vl=1D|bTp1T9E|uRJ9B3>Y z!j{L%OfDTVzl_*dHJ9<JTskCSgyo`UE}>eZ?rHAVHiO%U=*8CLhul}SIXBTwZvEYw z{Am1Z+|b;y#cWFSQW;#*EO#_hXG_O5W)p&e8>@=wkB@7wl_$>RT5Aw)AR<0weAT}M zE(+RfM7)>XxyGn!k|*465+|m3z!&XM(-W<C7|}_-_FovH*rOB+#6of}Q$+?QUh`oA zM>Mp?SGFfOgjA0UXI&Y5!2I0&fboY9sO!4+1k1?n!Bz6k_`?TwjyqRAlk2+d46f^H zU`BI3)Wbijgj<RCsNwU?_}BI5S8`pKq_-XYN;P_;3NO!$$bqR7i+!m1z6&Sj8P#Vo zXj^e-|MM16+$ZM83rV$)E}HA79gsV##~;&Z<#ukU@zjU64h+8*uBmv*y+kBe;u;EM zxH86{(r9(=+)4p+Jw=NLb`IBgUUCXAb}xZaGZJSvT1R!>X&35j7fSnJvGc*p?j<6Q zBnqW;Nk_9A&$$uSn_H~yH|w5?;)lQ@MzW;F(Sic5o0EvCzM0uOk*&yDta_1E-Zb@H zlH)xvdpj{XiSTB9FQ?yFB~^X{(<kLwO23HgxW$jdhL3>9A$0ril-hD>p4$E4YQTna z;)CSuXQx<FxKr_-S0$y(UhxS`ZeV%lF)|oTyC2x`MVmcgN#$-9PYr(pb2**9tupfc zDdxykp>uIPY4)_R6p@`Q*|%WKEy^e+Q)1~rHlT1^QHg>S5)<9wUQ(1>MzXZkg`&}l zcUdrmq0qVB#_grvBUHS*TBJpd*Y%~hv8ju<WS_U>O>bjk5v!xwa)o;%%5BLSksyr? z1?;F&s;jr8#ar^ew{b<0w`70vOa0ljU7~RP@R#;yE$u%0!Is*WPZgB@&{wBRcER_( zB}7Twi7YJ(L<1}tJjnW8{u5VoPsQDx^V#)dm+uQMg)GhBUdOwMEfXZR%(`zXBL_|~ zsvoECB^xS@3Gb9gD^^uj9}HdK=%W<m*2;B_;`p#rh8Vm2Sf%%;)qOWXXMzNsS$6=* z{-(JP*M}3ED~%-$#-awVYmNUzglMC8uY{k;#%9|;@08HrDm`V_<Yk5)#N?3e>(k(l z4*J#?^<ul9^c6U$cbg-=^%_sKFbV+tc~QK!O&6nqcN1qSdZn4>WHaS*`TB|9VCM1d zec#u(ExX)YS2?7tbKl@x8Pr<jVQM_wwEa_Kc_&fpi%rG`5UBSXPweM5$n8bAHm{`9 z`Tmakd>uJQxg}s))}Kzy!bL!z_!2X4??J}GJs1><yd9g^_U^b7X1pbh8B_9A^au0< zZ)C@a!!p;yY%sTFuD{BbGa=Ifi2RBb6z1~Ove2IAFrBbfy|7h_u?TnHeWwr|+uTjA zrFn|IM>M1)Lv6p1xogpoOd|POD#Kx_u2f9Q<WzC%Wy-=%bxhDLHao4?YjTdUyPDt^ z*lEAF1X^qoc7g&{!&$J?+g_J23+yEP1v`ByET-7$`{bAUGl!ji=u7*vFWY_ggDtf$ z?-blAy-M$rU2u)?dSulIrFNx|1^uM(b&s|og_nH=0<w(izX=|QJHtXmo3h-0lgQ*P zc-z&GH48N;8hBe_DH`~IUqBex%x^uv7Qf5;X9p+M096s*Dz>qQiw5~b#XR<W!0&SK z(MlsVBH^r}n^>{pllo()RaHbKW}>^IQDNW2rHH}xqKnJM^BUdJd4J%>uKU^FAE~Z7 z#a|-`i|@+{3h88rM%TH-6cHVMuBqy%iO7hXBI;zO+0tkcRQgp8U=vqtXr2oHBobLj z{vHKC%m)V|&@B41b*$~`F(-l7XKcWgOLaO2ZS=A0*wyLUXIprqdCr<4P4@@dTlp1| z2H<)SYyYC59h&^}Absb50_lY}{0vAp<+>7;hXJo|whi7p4-4MAe+;~Mr|0%}g^sIp zaRA1}LFr7+CFZsV?-dgj81LBxc*T{_8hVuiuUujT*ynC@z~1XqmA>U=oz8(4UA_n9 z+s^-&d8h3VveiV+DTaCIA|>xwcgz(qb6xsabd@5=G0ZPgS_iUM>I+9SO&!_6Ia??6 zx<I@TtUK{v`YDpNPaDSP)4Z<S)2bCCshQ|dtSE$BjjG3_gV7<qAyZedzarW5gk+6s zol^nJ5lM>9i*=w;mDbdMnj#ueeV+L}n}n=X;45)WW!VAm(S~@~3m;10Wb!0Dx&-Sm zM@rrrVL3T*&k6i|+rZ`{@(V2}+)P^~u!H(-SEmDE1@O~8aS$=bB2Yjf958yZ%IVVG zK}GZmR*tfwpxbM#*iNmWy|OcXJ((6SogNU(8$;uFa<?5zDT(pdXI1b7+w)|*wK%30 zf1#t2DS6uqGU`#{u@!mPFjx0bsFj>@HTi^`l0DoxT~J<7h^Ili_!}hq;J!W^i9NmB zINkHQl<GyP-Nu*|+-vMvLqg!)-NqH%a-5&@@l?6c`Wm_Uc!e?g)!oLmEk<w3RgiK< zgD)D$sL3v2FF#*7EQT;8a=bwKxktXwep&QkRs|h&TMa&A@J4Ay%!fwRujwRrCVSqc z#4wj#ME9aA5;SsvkV(o9GjbrysJfieQZQ4F9T*F5&hlLt$_sT>G$0#5Gx0%}en=<X z#_4KU!@8?st(Jit$3TqU>lq6-I(My*QI2JlS8nA^4R<qHtA1jb+-#8=s<&)sTKgUB z_62%!KXiZ=u8@lJb84qJFw8G_v72=1M`78%5u<uIi-P1p|BiT-Uc~#6DmO{AHSr@W z9^P`S_IOm(Vhz{^ou1{Si(0Tu{#d6-dJiXE);i1NkJW{A@e@G>6TrUtncgtV#m3N9 zzNr0HWXwLkf}!S$x4HQxR)X4DLksaF!jC3+yy^o?>f`2{lcN$$^h?(8p-ypG+9?WF zJZj%BWj>+~6`GHzlfF2otHu4Z(tzxz+=^M^Ud$3mvglYC**<JICl9$K=EW)s+WQk7 zSfcvPd)Z%s*#8~8Gf?(96B-r@;xEbm%3<~=SVnzljb@lQKuL}EVMcXo>t2ld8$vH& zcgke~<ZN24#E+93kuqhsMPIk%kKS1qj{;os=Tbg+vNL*XpQ$)lN`!hOQwMLgxmePb z?81W?6|Y5xVcitvaMMa6{j(&>r$5@#^m&BTiZF+csw$hsF%hpe$)&fl2u6&1)sMbD z&AB;Cdvr(bXn^+RBs$2TE#Y-oC})YMPyX6-0`1Js=-A}>V_vi8cNs31T;zZS0(bDI z=qDD1xkltso=P?-ecoS|FlI`eC?xMZZ>&4^s<^k$2lgnKMx=vQC2R1A8W*xaG+-{> zkpXb2Xp#C^&|Ai#P6>s$CRN?wfGuq@3+G+dTtqDMbPI9f5$@uzBdLGgfk`M!-TBbs zcWtF3<2$MDO}|Cgg<_^KSEMEd<p49h(8gqM`hesgpNIQc&5*vyTds6SDC|zhr<p;; zNl%8My+}^40lQH(J))QC8&xSFo+6y-ZX0+}bwI~Nw8@47Bcyvj+C=lr^d{7qeW_k6 zPEV`MP=lis*6ZX4Nd`?pEhSMFQ2;)-CQD(C%S~G)jGMNiK@>c-QLLkzq}ZRJO*M(7 z!tE-&ZH&`ZuwX4v59*k?^^`m_6K{?eWTf_=Y<uG^V(^XTEcgzTaS0XlT`!>Kw?X|% z9J%k{8lU-w&-~IH`4EP@8ZW!KnC<+8hsGS4ukP^<ggIl}lDHs!IxD9lj)lUy0ivt_ z1?9-k&M3!0)%Mx-`6YXNuAPB0%ZU7)CIV&LYrYLBum{4KTe3mUZvJ`Ygr#iBQXZKV zFt5+o>^UGz=YpIqB&6yjK@aOQqeiZ7f>|4Uv1@X;=lY}ZmkT9f<wT+&mufL&PArrN zg><S;!1%>TA=HWn$)so<@%#(rTBsh%#mqC$YCw(fy8sXxj%!m>2ToG0l!FZ14=iUG zrk_K%gSY#$?yO4`Y5A-6k3E<LIRNWv@tfBn<UW#3WRDtNE5pM*8hNZXVt2RONNz-^ zi=ev;R550!3K4Jh@qvnKSz1P#GUL7E#aPzB$VG|bSDAm@OG(G5GkIO2m*RKTALMOX zcaXUs{aAMr>>_@o_Js-E253LDHUWl1x>H9(v`mnsX5ZdTaM(Q{;^Npf7r6+3IDV4u ziLcKq!m-4G5JgYqgf+g82LGqlJ(p|nlczu*o?M$bz9&pkKI_i+LwytH$^s-UZ`{X{ zfug}x%orh>t;^___ZJoO)L!+$@|v@4^r$%$N(c+N5jRdqB>o3%bKY3a*3D{)s5#6O zfy}BGE)9V1I?bh@MbKUclr(VTj}mqjHBneV%O>QMtT9E#jYm#7Vq=JsRW+9-g_Jt| znr@wdm%sk-Si~8)-e|4fq^ESPlGa(@5PekG^&F;p?T;^Og}DN47JYE5DQa?{o;AXe zD5OQ^knEC%xNvRFSZtS*_gdC0xhc|9OG!jLuyxi6IiC~K&!!Y_Ou_~@kru;1<~Q_- z&(s_TU5gA@!w)Q6tt7Ol=~y^amR=$^SZ9XW_(|Sc>A_EtD~?qBL(e)D$W=j2Tr7s* z%Qzg#jQ(#9!AD2Ju?#6vN`^`B3K4lS#>4sNq}xkN^{#(;w6d@~dRI?u_CDjekGzdr zGi6TKTDd^)^66?$x3zLf8Mncn&pl>kp~t+dr_an)d*R%WCEtz+L_7GRqY+9e5ypOe z<UsavQI*-a1oV^FkdQUuJa5^q;0aJ-=e{+0SUGFFnN5ST4tibtynPO+o0d0(@F0;j zdTF{4Z}!wu6%Z{r;||$j%bENRFz2pB!3G=5Q~b7E7c=btY}JI&=VPVZY5hsrN7B|O zKNlY5)7r!1h7W%n9^(}}F3nFtL;0Hl54rwE;6Z>>dM@y|(#vu4!Ca1$wOrIx^7d<3 z?a!QW6JW}(5r4iBu9^|Dt1%+8W`qr|o#HPnP}?su?y(;Q+5X!U$S!`n4akNMM^iop z!mOoXf$R!h?Buq^iYcaMOo8mMEgG_KZ2_`r+mXyy|1Eq!p4uM1nIHT(eDC}Z;Cq?C zmj(F#%;k#xQt)*J$7uKhTA*q}IZJMqPKPYY#g7o<qqi!^?tH5aWWV&agY2M6RqWNa z#a2@+3E9tDHDp7ZNp$va{~P{&Xi9r{zOe4c;W_3%fM>bD^Gx8G<ZXvuvnE{Xj^>;B z?E$#xM*%qI76qB--fRQFI&V7wp0A75v@K>*ED6AWZPEZdw^abB_s0c(V!`fBs4&B* zwuH__Ynz&99SsHhV*|FWK8|%K$H7`%XsY^tOLjS9=*z?Ns|ZlvNz{dxm<HwFRQ9Ua zdTR;ae@{m6c%0xn%eU1;)iWrD>$dee=!=JGr)kJNoT41x8y`L9vmw0|^_kdsOzb`q z1g=nGAnRK*v89cZk00P;?iRtRjufAyOeTeyX^k~y4>J=}00YSjbyP{uxR{b6lh<d2 zaO(85CUaV?Kd78ly=^m(?ql#d>w`4~+|e5PN7Ime7aItw>%ke;3YBbB|ArAtR$TNE z>tCee@|J`|)gHAn53R2eL+^lV#))~T%c<`%9mjH-*9!hduGh!qo`>KPXIZz|^?uBU zs$LcGDK?<#9%Wg2hHvyO8YjMQ<B@SSSZg`PmFUT&o;cbuHsv2p(y6>LTo)@AxpCLu zLy)=2D&Gi*lu>HEwZ6Mf>q}aDd31$?`QsrFJbQMu2<CCFv@t&n3<>6MbTIEH!M7Yx z$UiVYc6N<tuEM+=e*p8j{_1^3^{=EDcd}S-qmD3bwGCi0q)-t;<o@e2g8jT)ZZm<g zM=$e&<OY6AA(25$253T}n+z|7R0csks1QTE@|!r0kM8|ahKS14ZjE8&6TjGrRMRZQ zGq`vytPGFQ;b~-t;R(~AEXBBpo{%)vF9=n0p}2gKz;#6~{2Fo#jou<D!U<JRQKTtD zVtUq!sx12j65G=zK|@H;y};#u(Pf>)O;aoeW``%w#c4|pA#>jgd7hGwttDUrf0(d0 z#yv-A6UHEvxV_dSp=x?nL<@9rllAA_ip*OSF@Gc}uMjpnv6gn{NkM3Uf|%B=JJU-V z5?q>8Y4IUGU?pGYy}hELltvu;iD)WE`D0T{@qcKsrZ7-+^hBJRQC%6Y8!GkQzOz&< zb<gD`xe0aBZ-^vv5-B#ytB!{t?D5TbLs$wiK@w`4EAHaKx`$NZ9fy{xUPOh4g6i0C zhj)tZR=l&Ci5A{@d5z+oI?X$wci|ncb(UT4V|=K1=PybLA291q#XFDkjpm(C-l4qM zYisXPIgd!rFTjEI8ac)h;#tl%nMLH?40ZHEUzsf;q{Yf3k%v0#IjpSlC-_PiZ?XRF z<jf&QQ1uZ?51EP4x<s9IM^`GmBXN<u1KOj3rq%mqYKSx|5Qje3%}Mn;?MmkAN>tnZ zoepV8da6E?y&b}h1f_5Dte#E}y7956>f=zJbYm1XkUiUamhA*d@Q`rW`7+7xXZ~C9 z`?ssw@_TN3em~*|`Mp;<zvnyrz8SSRE+LP+vG!a(LWJXg%H_9z_J7Ug_y07PkNeqN z-v2;4m)Ex8^7lc4!{rXY33BG{YRBJ;zG%<ipL}z8{*I-WOy}<x`M_Ck%2uJh-kcml z?P)809d^Au#jfjK)$A&f78Sde3cEIv+J;@fZo{tk-mcj7LX;2KweuV4?ApW}2fI$S z>)q<G>xY_MH=rM)S?_$^Vb}BCvf1@Zlx=c8mmI~eJ;_P2YcGiY5O%%Nu-P@tLn7$# z>MkewRvrZGCCtCVtEV}<+CW6KME}H*&KC{xeHL#&z<ae$jYsp4<h>7>rWNm%9HHBJ zl?048hhJYM`S02FivNDw*p~k!PFkD!*8D;KYct=<8D%x!UQfO4Fn%Z}E)=QwpK_v0 zHY5K}=i4uSniIGEY)*V(Z#pM-m#UNVtsm4ooOtMbn<q?_KHr|Uqdh;4r1Hbfx8Ehw zN~ZH;F(0V;Rty%@O~BafLH=0(S1ee|7aLQU=%(Z|^8&j%D+`InWChRhM((#Vf(aaK zcgoSDEvO&+4(7{WT+h`RK&&C;MMvaYkKKzYsUbO0OVk6jwk+Fs7k4^%Ejd|-C>;NU z6o>mI)~`KTfAEUt{x?Wc+`ozkYbB{|xPKyFrzY$1H!JR+yjpSpk*}t6f6MEN`={CU zj^#r&Szp5gQ}Rb+6_4*~ak#(qHJkf)vmg|?AUTTrdy$jk{-Vx@;r^@PI@qtyx&he` ze<^LU{?f_u+VgDRwORn&;Rt}`9r<L6{fUC>_<h#Xx7)3V-z&QICd)g9CKQgEt@Qaj zjL*6Vmi3}+B&EoGH2Y&x<SM6I&!<a~hp0nIkp!ndq|%7!DYpMgntdiIKkh^$LSOH{ zw5|NOqrLpN_vguv36A_Yk$QhpeoPQC{h!K@#!vpQ<;S|8mLG5aZ22*6ce?zLL#`?L z(HYA5VfoSWX*>C`eS4ZzQ2KfSl^;%iEKM(&E<ZlrCGx`#t%v*=D7@{*FQ4<(-BTiL zwxY|jjdCGn{}V)Je9p=06O^d<Seu;hyAwIFJ}D=P+RF)p1Y1rJPmRKHiD~A@3E7*q z<;3%iT26dIl9Chu=E3?Kscq!M18wBQ@Eet!=+~s=#I{xGa-z0H$%!lNdM7(_BB<rW zg6owuSj{(Dsn2h=<-}_@sGJtb`2~ow_B5r-iGA?pAzH#ONmO#;Y2nYLmhifh{2<A~ zcSoRbARkg%!e4VJpQa`J)v5glw1oSd8r{^G)Dm8N)8_9ZFlb6UkCR~Yx7cC|l?B8M zSdl43_`^Id<QJKe$9Cxp@`!mxE-F%wqw>9S;YRaNxpmmyR-Z{+js_wM%OU8q_{(<> zsluL}40@+E@)JdoJCo*+o!0c7nP?h`v+Lpf3@;T>p)$mB{@%#vpu6oKBejKY;M%l2 zdk0@x*ToS*MFl$lI)#hNSAvT(sL8sopN*wQbk46O=Pbz?!GwTeDmGvP$2pMmBP6G{ z<eWzi>AUq8DqZ2Vm!vBz#!l-bi3NZ(zKu1YPHVNkr^AvqinKI;1!djptE|c5{}a8m zh%*M?in&t{))?F<;9_CL(5A5BZxu*#8jmLh0&`-K*BssZWeu7Wut{f*&mlT&qAXMb zC$+LuV|k;ai#U+l+sg&WUh`6Zv0bob3A`Ju>O4GH)ZSvkaI5Vjl3T62NEXAN`5_{< zuj6g^m<GqaD*y*`0`bAmRe-X6imnubVvzSTttR(dFB@Uw4MST)@D>>f;W`BU*8s@- z#wY-vFEuIvzqb;g$+2P1Cvxxv>aov&2n71cO7#?)a3Ad9V-HsLtauPQ<2<Sp0xDi| zt6EFsrQD>3=#E>BG^6l!7tOGd#&>d-td*NSWc^z&vv`_5%z@~N_)3n9IrKk*<1pc= zd1A7Q<=nQAqoC0Y+XBU&RP;jCiHf*b6|7$@6)6;oiv&t+Rq$|*F3EXlNB>Db4?XD? zb?iF19u~)4fYwW3b|xST^_LnHYYdeeCMx2mayv#c4XsSl9^(?MWE!BBv?<%t(mLt1 ztKh4)=MR6ny+0+=>apAV<L7B<c6%E?PD``fdwNs*_LO~G&V%BoFwl4VwfUu~3B$Jc z+^p?AzaJ$S+MbAuzn+4LZR?SU8~W6`Y&WTh8|U1d7I8x~D2S$z^Z45>FST&wKHa_{ zXvY$wB;8A_0^6*I9DE(^G^P%+!5SQ7d%d#l5qYs!!expkRWXr)74aukvBT2O=`a2e z{S1W;t;FI(=%@X8Ib|OoA*b?(Di~f1+gykeo~KlCUbHISS*4<h7t$FY)^l}UP)((2 zTytP-8?F(+NoC{ntVZ}+KC|ZXAXCC@=EL;yN<0s?A(ij%Kz01BBK|L`JEXtJJF(xZ zPzEO-+EEq|v^XMP<W2l`Do}zattaQ(9WdxXid5S3OOD8j?nxG~$?rlg9i~HV`TG!j zeSK5f`9*dg<OJT?blM-As0>&IHzMPr<JmafgU&5s6S}5CzR>Fhe6Pi&xl%y&HIi9m zVg)KedXH`Rbx_QlTM>UGu6ma=u_n(a3cQpQKmfQxL+!SWs^yTE*M(cpLV1YZpQoID z6y!?i1HkPobsN=xlKjX@W|>VYx7!COY-|fi??(T^rHtqZ83K#Af+vWOxrA@?RlmmY zoyb=8-OC>dOWQf+={YAVA!O&Ao}P0wqe_0mES9S6BLqo0oVrMK1>n?A6eMT=j3bdY zv4BlY%SR|(u_7M0u`PL}%{OwK(+|oJ)LEe+{^<RLE*U6t;~)<*v)Eigs#>3BQWXHq zKP*>#azlHrP?b&0v!0PDozE<}q(^{xA38t^#cKaT(Yv+zIw?6`i3XcyAauol3bNB^ zL%~8Q9T+r%F{!YRRG3b$vKvMKfw#e$m+*pMtyr*D=3q@v4T7~i2Wy{vqA;Ly1Z&Bh z4LCG_8=WIqOXi%2pibrp){;5fp`G-eHgn8NdOCGg`p{GOv*qC-@kJiEzAg5g_2a0^ zq8%cwxpFul$EJ=0)|S(Mbhzu%JGe*9JNBTKrswR~o;Ik*({s+*n3iLv=j>abDJr($ z<fDChq;pUllH;q0_kg?7^f_7owuv|8Cf<}@5cQV@QMVL*&<?>DHmUUxfx`59NJpBo z*F(2mC+i_6%9Mn1O6m-UhM5{bVP^&;=0s}$v~7Q`^hJAV15dFs@JKHbM@f0+Mccmf z?SE+BS#hn{cYbC+=TJD=Ptm{}YsSB?(rcmS01*R^!T$uHPYNi}h0SS|ZO>4_rl03( z4w<(*u4vC6_I@$G>)(4L7qOf57ZHBq0gNeX0-`L`>Wv}+20_uD^=ebCtSQ8`U(Sh@ z_s<gbQ%Vs}F1v3Lzo_NBAA|}*t$vxGuFk`s%UiadNr3OfO{~`WDhsy|J5Jk&)?;+f zn^n<@-&`yHHcW1~0C5CB?i<7fC(*(7?`IAs9E$enw>9bK_G)Q(8Y|AUctFbrF&rf~ zD&qbzUmX&^G$p|*;%6KtUxPu(AugF1L5PT4N{J5GhF)0Z4U$PmKqQ;$?<pWM51|4) z%AnYHzv~&X<~aNAp&QkO6l|9b;bxrB9a!Jy;R=jz+x>;sWgoJlbE<kys*2oyONLSX z29KVqJwU%6OQZao>LWr;bz=x3?N3OoRf8NtiT9&b>%->@B!r_oyhm@%Nn62(Qf&>W zxl9%lUH-UGE#X)4!=Cm$t?++T&tflR{fRp0;orr~mze8pp|Zq_5to<UfeGp(w)ta$ zdAKEQKdm4`&4jY2wcgsd8A%ZvFkH1$a35utl`smcXpy~=yg}zolAO~eCzl-M;=uRw ztbJc=w2t6b7QHf@XFai7r}ZZ-B^}b@(OxdA?jOX50fm5%jZgh-e5_pm|BjC*8^FiK zbw7cReZNxpSn;C5$1fM8<0Bv-3t73;aaeqO*ID6X8{gt4=HO%WscrCaORK`i%c`A% zPbsVMF?)fHk9TyAB{>Qo6Ua&7gXNY|IvQB2Ir!+lOQ-#dwEqGhQ$Zv6xMbeX#>X$$ z{lDX*fL5)=|N9g8xMhUG$5HbYJ|5>M#UD!rWFcz;bsQEScM{<a{ure`O5&rrxD7tm z%S;*@@C(&W!Bv#i_{ezC#>ZftbA{w6d~BPaj*s;=?E5ZB;iGD&#z#-m{tJA30UE)_ zvVZ(+d_4Z%|2saaY1KOY*`L72`b#u_Jg@N4?S*uFoGBm+S=;{g1NiueNO9n!iEq>R z<NTA`;KM5_du+hpR67N$DXZ~u&kHs_UeGx$lB4i3ikuXGc)!%JuVpFf@W)r5>$KmI z)*c_1d0nHi+FVLZjaP$x-7m{ZInd`dUl|kd8qQg*#O{+d;e_&N4|lzoul$_ej=YN7 zbmO?5i4srA2Ib9*SG`AKPdItwj~;9+>X|z@*7+5_$?&e->g)KSFVd3fD{B~k6j6M# zbKU4h<$SQV)z@(a1!Zo@@U7kAKVmdKB%@2|!Gume*V}&c(m`Skj9%Io15<B5Ck%bA z_1?ynUHm0)`%6~(8XK7MF_XDCf-Fai8-41jz+cknRRuY?%(o?+)TX3)ZEr6|wLr-l zzd5YX-{(WO`L>&w5#Gp_eKa}#E@{Xg9Zg&->WmIcj}Pcmhn2fr9PQc5U$VxhPAh+) zTg#_4pE^lg;Bz&|k!C-UD`=2T`brr3$~<Zxw^X{q=&;BR>rDrW+_<4mIC^L_yO$k; zW{sCSeEelC<GLkIFL_6uR&bKWA9HamoAATgxv|bNzXMia*Wit;CT7a&@!fo`wF22* zja#y~^;G521i(}P{QuZ{_xPxa^YK3k2?QaYpr8>^qDBoW3JRJi2ureX7Ip!ZASx)I zsz|*e><V6j3rQr0b#1&*X{}0Yt+8qiRUoKH0!ZSe8t-`JqSdo50u|+^lJEPOIcIkh zK-<3B-|P2Bd9gWjX6DT0nVIK#=9%Yt#^u*j&U@gwa2Jl<?C3&Rt$em!fOkf}K=ICy z=`a3bW(n6($b3L=NhBkj8C-)6#f)5K0<{C{fbV>LzB4<Vfy=poQL@=r@nd@ERCqz7 zQgrihLY5Ji!qBd5fNyJ_aT?w|jCoy2^G8bZV$~EWG7z~$>?`}k<*a(EHIR;Z)r{O& zovM#5FWWWB&@SQD%6Gm#Yt0TFD9Ue??C_!2hs~ha%81SNeD07zlg%$;Lb$&&2Kk$S z^^*MxtOU0CSZ%fh(kblLTq;r8T6~m-Gpj)QE_|8<`uv#Mm#)Isj`hq>qaz2aW?~8U zm0d1{rEjHG0b>My1I2Wr2(^d?zjZ^x>kixCeeCJFvu5LR6~RYOIL^zy0(bL%@?StF z?8!cYv?dp5Vt=gd<It(p;|0w8(cz{U89fxM78B<>V;PaqiQJ|(^H`swoaSqio(V+J z+xJ@=?N$yxVt*luywk^P*m#?jLL4WYqTK%pIV#HQw9Z+*7!LTXF}XeqHzeA}dVD%| z3iVvPIM&sb!$Z+f;Uj^8z}8p%x0%z}HW&HRxo#!S#bvm&aXt5mpSRD09yKjkl32)a zkKBj$X>b(*YXin{Gz@@#7qI$?5AGD#+IZX)w$gE_3cMcpvje|BgRgmyKPm9TLg96L z;nQHl6nU`LMr9lEJ;rBSn97maKyLV0@z2m_k1<!w%><HiQS-dt%S*+cj2UdWyjzrX zMmvSF7r&0Fd1mN%V_9GeN|KS$MaHtO#Rz4&sHh27e7j6*wmHQbmCmV$XHbXGS(xIQ zk+aRnFeSpk>u^$pajp_!3_1T>?F7s@AKPj7B?ifJW?g!<a}1)SY8e0aSoJtG!&+;f zMDKWgM!hn}U$<*z23e~SXo+;)ei_zOX43B+7WFsKq_*;il=VN0m04p(vaUch2fN<@ zZ`}+8L`|_pJ+*`Qwcc>LXBiCqQ(~K<oKIFta$0ilB0In9&qM42%Phu98JOnd`=?e6 zvyWlD;{`7CIJWCpy-%v=<x2J$Ws4&RMb7Vly{A?7z~b~$Yft4{!CN9_4_IZ7M9PR< zR2`5l$>XKfSJp)Wiy~!@KsFa!<2zU^#!2;qIEQ+HR(PVrcMi&$QH~~C3)@Fgsf|5F z{FEBZqquI6ySI)r7OcvDg+LDXQt&uPZm#fTzv0P#zqGnM-2dguw?cPNUezEz_Jn`H zr@-lilxVY^WY(zc=%yf@y=5#%n%~JWW_WMDuA8lAi&-3M4jrPzUO=S5J|iChOFRl2 zrPTxanXO#P)xu|_*4cj-n>X2LicX}Q!^zTv>}DHt&y~06%}}Q=u{(H!xn|5mw322% z7k2(3hEV35rs3UbR&_I~RB}bbF0**;j1=EZvR^c-y7xD#I?MMJYqQBP{cED=_71?s z$gmNfRE<GwgWxnKM3`%|WytlYej%&%gHH}sCjY3PgpI0^6t(g&nF$2a?1^KT0n&+6 zl>`-<ofRAozhsplUC+8)2U!VOV^y$&xIfEPP(so#hdL)yfQMV!(VSSzACGcKu=3zU z1>cW$Dv<hwyNP6d>QxnVB=|QK>;RyfAqb(HV{`d1_0lo37>`xm=}>qO{9^R{^qar- zyx5yeE9H;w!$P+Tf1--t>MB_ES=Bn2OE9E^(w$$lsaSc_Xwc{57fWf}vxlF1+B*TN zGcAu_eiL4!WE9%mSticR8trVW>i-1huttrse$~;d<OS2IDOS~$1i7?98#t*OvP!ET z72{1TUe!bUDttG+dm08;hJ3|Ts<Av6UBxe3*)!3}X95l!<s8>omb0Z4$1;|gXGU^9 zBB<}Q%xTs^dYH3B1qlUe@GVaUPp(mzHOPl4d^b;?HjGMFCi{gnCv`|CP*v<uB2!>| z-=FX@mmJk9c}>ouo8&dw)~k4pj}(!fY{y?_t;C0@H)R!T7k!}-ULBZGM=K<iFJb2_ zWQoK6MtSO^ds&lDf2lv5sR%|GK<uNxUWmywCS1@CwN6*a)e_Lh;3?da@vKB)dTBrA z#vWE0xh@fVw-XzJF<@n5J*L+b+T)`Atc~)ZN+sFa;#)f#O(k;?@3W=WHFzz$JliVi zT3S6Lw@J*E(&FzN0H4p<EaTv_zE%DomMBYL%xlf43feb7{N{VXn!(|NGD5+Xau}?q z{G+3s*>D$11q}8aJ?=R0%eg_1yJxL8o07dU=p%-3{du~amnY2S0uP&(_kPKQ(`0>R z0GT`ctbo|iJxn++_711u;qv7N8C5|-ESjxILAWL-kEtQu!qP97ATct%B?cdUmcD-8 z(wEj-%FJ9W$NAUfRWyh!qD7+Y*M-~Jo@AepM>bXEJB1-~s$s+g8mgLTS&cnuweEx% zp;wgGLr(mvX-niI#ZoS$n?B=@YZ*jkU>+XAb#~i>k6}jwa+b@W%;*S^^9GPJ2zQ$? z?+J;kYFI98vuTtzn#+@j8grOlQbBYyd7Eb(U6YE%yLU3Gl*U0t1DLsa`e$Z+^2<y< z-N^3C?iuHMOI@aIS_{%>r{B_-vpM$pf_-OD3AgUmnUM!oU)cm%%3dEnH`SeA4W_>E zvBIdG^OUSxeJ{2@dQG~q^qip(PwUUp4SlaOyj}1-(lW%MA^!ZV-8l0b8g5;G(<n2d zOzeHd-vvuC>MFyc_$Ak?A33&7hvP})I432CxHrUDJ5kikC60STZvSxH8@6tnu}VAm zYtjz>zH95?uW7JyZ#YrtTSaUB%tK(jm#3X8Zuw*c9%-Cz&S?!3Hs<EgMSJRD-I10U zl>)nX-~J74<_nj5RxV^Zg$H3h9UTgNh+WO1b36&4vj_iM2b35JdZfVLXYWne0<9QI zal^uchOE5(kl4)(z7u6sT`MovZhv|!T9_Q|y&=u2A6GWkKklNjUb7hLyP7KOv@caX zCgm_%YVleNCdiw<ur)0>1@nGIjl~`#qLv9mGfjN}zaS24l8cAA&V0wnCAvV$vhTJj z$yu9}FKY~gTJ^EAHqmCsFW{J#FYATX+<L3@Lihk(YXWVhy7P(6=L<TPrCk*e>S$D< zj>eY@1SFA+<=)YyIM6bdjm(_$kJ9tg(mFR9m1XppB-85~;U<~mR8mz8_{dEuz+7Nq zRBjRIZ2G%E5r+3Yd*_}*p>CLe$RMcuC|wL7BOco=hmwiPFZ7j;qlTp;Gb{dKc5V!v zRZ(8aIuA>kcO}bwgfcnU@a$-!;QLARHEzuZ!>AG;qeL28>K&U}lu^}{ZdR1vNpZ7f zX%0yiH;&=}TR+;rL;a=HS*p2DNgO5LDJ91zQEb37VY~|ik6*(;OoetR)W?UDrSMIk zC;Pu!6<(wYm%rq>SQjpD`CP=M(WcB*2a2)JAV({YpiYhPpYb{ve<i45eop7Xhox03 z>c4YPg8F~1gF^k^R6(3gC8@ygM;(S2oo?PdF2GSsO&rL~StArEb*t9+S+-g6Y8E%; zaD3v$J7p;G0V_n!Lh(OZB_sE1{;U*DAKga7ZDT2IjO1*g4VHN#t@%VZET7;jItWe8 zS*C+<W;uV<L23EjD%hsw_ZPKmd9opL*NA%$lY7_5!cyVjmgE6iMG}O4<cnM$n#G$* zhS*-k%Ma`eAZ7hLhapXx{nRX32eMcLP<&C~3an(`%`Eo5p<qd(Vg*u&Wiw$h`FevV zSDR_rCR@l*Q*rDXX+*R~*N2>K@FNdl7t@nTz{*K8Dz9b~nCOINtI(Z<?n#+bm5=b^ z*KS4>)3#W>ub4%#zUYV_%{QCX_G8|&vXY}YnKHfHTZ+y45$Ag@x}e14_npxZTt1o+ z{)d;vWmHaL<(T#7j~I5D$3NCgN%lx`)f7rw&S0j+lsBg6z@_In;OZ{mnmv=0*EAsK zx+y&*<qAppt4`UYQdW!=_~%IC2ol8_Yv5ZcDZ*UZeMtdPP8MJRa*(Bb1#+06Vq_p> zK)jEsagYm7g`*J{zk2(#$Q>jS0t-_HX^}HXkHyC8MlCtp=}4Z`yW}Q;E*^YD<U+&3 zZtCHZdcT{xQKyb-lX|n8x>~39a8p&um$<2qlDZtl8knTmSqvVv%yn}rVD@)&-m1%K zQK>0l%XKq+sJk%9{aiu(n~>9mLHhHDQa)F(ebdeGfP7v*%<m}~<r!Vdn48OaUTFHp zd3|S$&Jv`1O#hc-Vh}_lPb)?QE~l+~?Ea7TNE2@5bea#{=n(A3Un5l7W`3E={a!Vh zJQUVR3M*L7Buk5B>hiu}F+1gL{G%>!CCNWaDeKag!`hLrjMXX9uM6`Dvlv5605ll6 zU=T?y7$hp(r6^!VqC$?WF{cm`BrYOleMg=(W<ZKNZ!uA30VmK%@~YI)LsKz{a=eqo zBK=8JbLLqv^>Wr*TI?8VPT|ro`%RCu<*cBzm{?<|Yqev08J!fgK8P$FF#K&H!XnL{ zh)jOB-5vB`bV<RjhmtYgHGWV$JKiy#={f<{_r%+0ek?<!Fr5A2I>N|y&i?~qq?%t* zv0O1Gzbpv9JoETn>BJ4;naWSO`ZRMk*9fq!@74MKXA1Dc0W$7H<<cw5yFr}vM8G7D zM?W(vdnOiSG;0^8$!bkTvj+Y~gkau9as(`Z;3-mKCO<hH@fDMacZJE!XlRjLjLjp< zxtg&O?8YF6spK)x@Y8&<3~`$zFJgh$vKe#Te$){bEWC_ozTTjTa4C2ediv``ytWDj zQzpv>NP=A0g-Tg3=FvJO%CoOL7v+ksk>QzmJJEYK?J`7w;AqGwJ+r6)8sL7nNQv+u z94&V72Rd#eaqZ;4+OG<myNYum`CMQDlDP?K0-lV~ss?;OG9ZAcR`W+xfp=~+!s60f zL?vh*9r2<}EUEIZgPDs+7-RvyBpDjx8GPM<0H`@3{c~KUAVN1AH)V;ZRsp_vmKEnq zTmi0V$9oFm50(O5e{_i;TYprs!*TBALfmB))QPx@aGiOMw_e|DZ${00N~()wqc;t4 zq6{ml7)G;~g(Izq*<CrQiI|yaespCRm>XTxO5bY>@~cq0e|WD2d|DcL^a?e&j^u5g zqRhav!QS0POWu@$edJQ@LP3GS{>vbT30fkxa~9&wW_vr8(@kM)a^uHPz#`ke5$Ldm zCz)nJALP0mD}Y!W_j=H0`KNiGg@jUhp9t<SA>s}$(%+|Y?Wv{cX-joCtLl^hD_HBQ zXg<u`YEb7xc4rzL|CPO}=ulbFGMu_Io&`O0NJe)6FAO;s`ZDg(@@o4yXI4c(1aV1H zUHke&=9&QM^LO>6yO!jA)^Ccuc!F{O`h&4_cxGwDu>|-PP2jGg()rVG;h>O<3F(UR zx+%vo9!`Xes$UVMn=0M3&pgM0`xR`BBBQb_hSpmP=vSnRIEiWE`13;c+l;n}QMriK z?(FbsFK&WD)fyVF){9i$s9FXfn5{;0>>ff=Yp6Hd)GSX^X@Ts-(LpIK=;~|AERdJj z2T;xwfzzXBI}O@Iycx;)?hL58Wg@f8`CJECT{&;6Agm-s;#jk^K!hQCE>X;6X#s3) zCU*c)_-z!T`dz6+m=!-_`!6!t6bKA(EBpm{Qz7tt+P)B2Ih0bh$G#tmorapyP;0dU zP9+=_M;q@Dqha%oI=8T&UM6`O!@GgcREQmSpT0Atu^~HlD<2>Z346uwUK51}tj)g0 z&$Cn=qH?{!sisOae_}GNQ`$buZNr}^Gqvrltq__0jo!zMp5tK99X!F__Q5nz1`p$6 zX<W5x+#9?k8kf&Y`^N1m(lDsXCNa_EVfWx~MMhfCAF>ZbKVE5gYRg}AzO38~08(4- z-G9pwgolIYDafY4R+gN7!BXAy5sWK0mmAITz<%fF$xgn*X)E(HCYN;Yx4;Z1;|@xf ztI!)bb<2go)CqxMB9_<c&Bj6WL5&;kMi}o&?{ME}H9pXKhxw4XE3^P&hilBnjmY9; z&oM3=yaj7RfD+4UDGcO&TQ;k%d$!h*Tj**1n^E}}8tDn&o|hIp(P^VvWcmcr-r%%w zHWlkGA6K)VY|EW&7wT-5_eqF#qHV>Y8oh&YCB*hc9oV@D?NIBAjUwyHXN^m)CkF@| zBT0`FfJi@!UDv@x{oJTGpQ+}H45m@}jkGES<Ba<80CTp2ChvEkE_zmv{CkO!zkPpm z`*f8pbgay4JklQk4`JS)cA$R8(979>6W)79H{k-^gagi%PX{`4<z1N?iMf(Q@HPMb zT$xLedae{|+@o-gGgX#2FzQDST&xp6cHewaC!efj$p@hJH($mxI}-DyPr9P#3uD48 z(Ef!i_!m?^IGTW?;CgQFlQP%}<Uoiy<7LhV>SSthbGW|%y>z+7qO_nF<Xi|tL4q(e z@WFuwBry>~WJ*rNSp%4ecm&@s4n7(CIu{3jPFoVaywgD!;qvCR-~<htw&;7?;^e1~ zJD&=MjE`2m6DqX7)gsjX_|rk#>-c7W<t|K=8!B^}19TR_ZGk4l^)9Xf<uVMp`@*_F zxUQy>e9B6*N(vG%^;r`Y`FmjD;leCA<WF+NPjcbsZ?}+>im<|>c+Oy1I`~ao7;5|$ zAN;eOGy4nlLp6dJ6FTbU)td8;pDuoZH*l_&>Jli0diA`s%~4Yqc^yi#9r_w^&X53N z-QSQ8AEBHVGceWmh8BHXWWrm?*%Ey?>K(H5VE5#hXV=<Kyh=>5I)>t`>OtOQv(Ur& zM9!}+l41{!AL8cm$$KZ+f$5lPd*&PZtM&J#GGj`A-P%2;F@t$OrDFHEna9ZPs(%CS z_K^hjlsS2M*ZF4po0D2MPN_#$wr91mtZDE<R%)ozl=_YmF{S=^{m9pkZu*g{AL;s$ zr5}0vag2U+(2orL=&T=xejK77J@liuejKhJz4YTq{Ww}by6eZG`f;p&9H$>g=tmd* zI7mNo^rNeO^wf`|^aCHp(y@c}qd-40^&?vz=sk%mXal$%#_uS81^iCtm+k!ItiPC_ z;FJ;kM)Pyi<XOgVBEQS|UCr-Cer~$#DsSg^2frx4`}jS;?+^SQ=jY~=XC1#~{9feu z62H_m3BR_Vxb}J8CJ%i3KHs*_*OfdQ`PnIXx2A;K=l@sU(dBPV=$|Wl*nDFddQCZx zfytAC!f4iMCvml!2wGx73)szfBO>;lOx9@D_kBn_ND>d#i5rQCWh67IH67cbb1#?N zT_m^or04U8CHFfz{E;LI`xk505jRN$9v#wR%XGv<$^9oC9wvz*#ftq_N1PxLs%-6B zC@WJUx=D^%I>+2&iO7|Rt8~PBg+!<d#_Nc&i5y-X@wntrg$~dWcS(fm?{PX}pwuG# zWb6<fajE1`4U=6IeH@aA*hV%Y`bY%qYg%l*jyNch<8>Xe<wSC*YFFrpH4-7B|Jai{ zVv$6MfI22yGzy&~5vtnxI^qh6kj}+#BYA|p$!T%?dfui=g#zmMWZrru($42CBk^4+ zZ?O}|DJ_Yg$=mDlCIZ`dA#Y0(X+3%SUE+<4^|Gqutur~b>J`X5U!*3n*Z+(t$NC=g zmkco81acvbX;D&8!Lq-4LXy?3f2Yh-8n(7X*WRIT{o6K=WTz;>3BN#yFoWOi{A&39 zj^9)KUgY-*zmNEB=C_MqXYfZ)ekb!A#4o__Qhqn^3-i01-yirr!%zI1yvy$kemnWe zx;ld2iTnogE8%w@zsvYt$M05t7Qg%XE#;SF&m4OKy}m?vHY7dNN0~ZBd+c?4FVjc5 zdA9<N>iy_D&@w!cjG2IG<E+Cqm}JN#<J4qEFB#cOD=^Ke(qMWSa3#Q`<ae_FSN073 z#6l-Jf?*$nAV36kfpzmooWWHwojl>$1JZ)GaV5za89s!3!4h9|G%|TPZx<cR9rj{) zbva|F2TFkQs;@E59SFmx&Cd;Q?DW>A()<tK`il2i^V1fm@7QFmiuYEfdFBtlfEv0` z!#GYc<oZ$KFUaWsGFK@nGk0x4yxKc|cz^Hw(WiUoUpmk;e{?@N;}w=G6`rL<jmDi9 z0%VW%hBxgEk5RMg#x4{$Af1SKR*koMc0YKL77S@3d6*y@m9^9dOM*q$fC4OW`oCrF z#LM%D>`0orrh>@gRmR)_6j^HR_M*S`yO<2Rdmn1Dn(m2e4o<dc-};LFsrqD&>H3VS zY6%xL&b~J`n-EYq4=9`u6v}|YSb@Ta0tLlCsQ#}YTf6>`OZI<kyZ+0p`T71Q+C%>* z@v{H^>uTEezfFC?K|fztGwadq`!^D%@At=SLTJr*(Yo=QA4NC5n5NrjSEMpg|H1jZ z5my`ko6oXr+Ky+t_4B{^{ByYDC+G7yoU((&dp+XL=c~j2rTN^g^Z(|vCIkPQ&k2VH z(5L?_e!j+3^Vz@1ozK55|1ZsFPsjhw=l{*;ed*JGc0NBKir>*5w>{|2=T~m|FU{v0 zJN$1x|8GA3x99V#!_<6!^0)4M-ZS&RG@pN;_P_c3zxn*%p3mQ7s{nrf_<najpA_2f ze0J^^;{*hw2P}W5<|2EtqrVY}QW=5{Z?muQ?^(f<@rhbJRV=^Dn>l!GK-|=ToF$)g zFD?U<d*e=;i6U{uOB+I;Bm8K#&*2p*1+GF8){DvAzn1Svl|St-ZpXb?gd=lMPAwe& zZPOo4iF5q7jb4}%=Qz+h=@0Gwx2Z0o*=Cu!sjj{f{&7fG72)5i{CE5DZ?zwPX`v%h z{cpMYB4fo&HF85PP0#bac+~la-ns0rZydt~XTecs<E|`jLR#zp<%UH_hjFsgP1SGC zSuO9r;*WzTayR%3N68U>M$pFV=uyf8%BQ}_ZAYc4!$7+=4^5cAxxVF&Fn_sCzLjI4 z9M`>^{SkQrk*oTVtH|GHLvU=eW|f<o4^IwAO``r!gC|J+y^{57FF({jsF$ujEY-hG z!G$t>g(=nd!tYwX5|J|WI5c#JJ{I7Uwo$8-mAmqE7ruw$C`|hqL?Dh+x?DbPJ7C)X z%LQXaCaT@D887COSF3+)I9v|cZUt<u!PNL>9goR$+xR*ikJzhi{6Za{-#$L9<LQ0d z{8M#&zxMHCb$n6#_#z!Yw0(TOjyK!KXY2T}?c=u{rusXfef&BdKe>H;gN~otKE77R zPir4vqvK~ue2*lY)p$;dO_x*|?bIPk=<i)1Yrzz^be(-s9P(s#IRsBUBecUdiORLR z{RX#HtQ58OBr4Cop0(?XUY0LMjhjAYYDbj&F#Nrx2Tv3CVd5aIP<>$XL7{zA1V6xo z6Om`A$XUN8vM>>Ow2Iu0MpgXKM5NSLXy0|eG~ssCaGUyJ*qm$kT_~=4H99y%&i2)G zR{k1)LEhx+YR)d>oUN~=oLqY;_7Vj0Y%#*6YPtQj)!v5cg~*??XC=;0e<Uj2E#=#M z`?q`|^~)Dx1|VO&Cp<_3KkdiA-$1#x;wSw3z1zL5f4_m$D?lx8!`wLj5mNBq*Fb6C z@znm@&if=WAV2HRtqM2$3EymO{kh$jlG4VX+j$DXJ5JHs`g2>*)}Pxl@PmNq>6=nX zTLNA}IRrx;?)YxkI0evxQ(ic<ElzRubu~hXw6lE1rEQ9<$1vY2Wmd+|HMD$<LnLWR z0Zno7nf8At2uh~ZhYLh&ql22XXmzev2Rl95^+*&_rI=6J5Nl_A68=YVynu=nJsb41 z{@Qv%Kr{mXI*Gtn9s&aY<ezkbb`O~alPiy3OvXy!r|m^u_#SCSyEXu0pP9Zk6~+_z zl1Y>@9@>AU=q_aHjB<uEDR!F9m=L}s=3_E{md-CnIg?_o-P#VG3m-Wz0@L(UWZ`zk zzBO1N{v4HmQHD@^Qp7M5+Ti-_e1@`;gDD9!a_zmG0Ln0o52mg^mp&zQFSIAuNwFLD z-=389)E7o(pY<gC$WQY>!|zDpYg~W1cc;WT{Lj&_D>52tayk6ZbN968f86<~Y8@@O z^m3)Q+6+)#7n|R{4;Dfropw!;9JhjPjjB7zA%K+fjVfUc;Qe3}^&}oUUoGW+s`lBW zFaSDbe3hikV6N^6UMW<4vcO(ZX*K=N%oWPDKPR1cvM>@Uf*umJ{emkw5-EZn5-CM+ zfodqx50%kd_?_16t(l&3KUW)nhh=*GWO9MTzWxsTiNC`$66@#S<odbY5XZE^UT_9G zg73nZ^~%$n(G(KmYf={$2ay9H@H@ou@41RIa@SI<n9T0W>cshs%a3EstgdFn0ivk5 zi;jPUb44-9{#3jXM7|YgkM9Q}L6nUm{(?O7IhWD&xvIZrB<snX!^oCd;Aj_$x{~#h zzt2B{Q<c7Z<L)fec={FpFJlfj%Iz6phBqz24}PNg!K0J>;L$9s9YNs-kJi1OcChe+ zfylMe5^6}c1jh=^Slap;TeJMe(|b7oY%wjY3(D9(oR{slZq5~^c)YNt=5n|BG^o+9 zSz4IXLp1(KwCB@*f<IoLLxbRtQ52Jj+%ttkl~F8E<6ti*S0Hj*0W5N90X*_9TzvmT zLykygSd;K^_~qV7_~=^#1U|hre8x(1;Fn7a3Z*$mrZmT3@)T%}+3rI&^z(3e)MnSD zCi9o}1CCdd)i(%%*~ea=Vg2d(atRk7{1fx#HXNt<tpDzO8QS&#XY=LhF8|DYvB>rR z$$ZI|=KTD8*?rJY&6jH&XK43c*LJ=reTIByf=9e1?8V#Y6feGsj^+AnWA4eKfrS5Y zpLVSeqgW}GR5gSK#S2xA&N_!t*#MGA<ho1eGL+hUBDVH&G}FnSX1*C0K>`@31?BX0 z#H9I)zn^iu2nz6^ghkwg+@;9eZ}vyZ){TsIAB#O)#*D*aQ(=d2uI9!Vb1x(!5FOF# zQAS|Cie0(J++!uqYV=iX+&0ByT)*ZUV_E}TGk<(h-!{{F6$_tCZk)E(SA2=Xg5A?* z^zOeSCW@tQ<9zyt;ea(eH<m|fBcpeYRa!?CpY1Yte#A|~HQSBbD{mB=H5JHr1O429 z=+CL7v2I|p8<?g8r8kDjP<o>jReIwh^|wy_ZBTz()ZY#2?>7Es-e^{A2}9qqLvw|b z>F-Z}&y1E%%QYLn%<BJgDmE%jOOwyC)o0kGHs+hfZ-h1jwvmD2=3u@LuXT74^Y>{^ z@NZK}tz*rKRT*Y$b7=dR=(xkV<i0i7NuqtN+$UbPE?{v{fi~f7aeTn)yH!z1a=1bJ z%q$TTiAhbfefBm@ZI8VMo++{abNzRjKI>h_;%!mV;!RYTYnJE96tP;A$<{M6zpU-d zOdme7z?R1*3>|iNVk#=bEpCg}Iz3<7rT>R%puCvRJ@IG#PqbinZZaFc%Jf;Nr;f)~ zX}IXGDXxJETVyvW{;lOw3FxZ7_^TNw!Y{~7{K~F)r#lP~WMXzMo`-LTGhk-@m@(ss zm`u6;s9Gc=jk%8!=ZoGp7$MjeY#3X(6dfMND#ue;s1}Wm1}drZM{jCXhTZt-vd@rS zi0#=6d@8WBa1x9F?JN5j0OzxM2k@lEFPFVwp0D+F?x&7OQR360ygsHC>PFLy@q4Z2 ziVaNYJ)LkFVa)wTdRVcM3Ht%`!EsyWbMB+ysX)L}COF9>@_ER!(0PhgoxB%0??auZ z>BNt9-X}QE$xi%K=Y5*<oTcOERm(g7d`<JhDxiWj1f2{Eld+4E!P;box@2s<8=TYB zK#(a8ADYL)k|}cBPxKcc$`s!q1CuY*Ra=+1#%yD<eO4#4waLfQj~^+2QLt_n{zfcM z98X3yS)y9K4Z3W~)OUQbB}TOIQoLuLk|9=UdMz~AugA3_^Ki#Q=)qH!RT}H0#{Mg5 zvIXCBRqCcS!T$+=`kungtz2>w?1iCW@LZ=Z{PSnZ8W4-d(5dmBk`_p$b*7n4+A)d9 z0vh+c033657=-mAsa->B)I^)fM4OolW=O1Pl{LP}k<Zd+9IFX59RJIAP<=c9%Pzml zRU=B|3Ew@oA}Kr;xc5bNeC_#3*|F@8mHfCBHr*8;$0s8`Zv9*63x!O6<gFbal#1|D z{69POPw*k6Va+b@C({E*C}RKFosJ6{frqYQC6?ExV3Q|0z{6WF2_z3qV3Qpav4C8W zEk!JEgHARwD89xmSpn-bKn6z9%gN70^ZXhx+p6<b{LpXubnb-3)y$L{fAN)d!7BpA zdxN*op|JQE{6LUpbcW~#F0@~h7j{a%)+T0U?I^4C_(B4UBp~y2p#%`hdut@Xtn`M( zHer<IKR#Px5EZS#!Q|f1uSselsa|=mYODPZ65`sN9<wGX7mK2c7@7n((8ZqJiWE+S zQ{{54PS`$LTuX@*OJcO2C~=7<29m4MqL%6UJX2XVRV7!p=O-}5&0U@k%v`fuS=bCm z0`kG$2>=hwP}na8fmdAOn6Kfe5wBkuc7V>tWQ)JV5*(Ph@&;e=JHa!|)|YXhSJKnS z?O-gs6`;&G1Q_NU-7<5hShwY}5e()YQd(V_+Y{2p=IrHAbNdNySL{7xAO3l)KXQAn z(7y})krRDFUfT%A)qJHM*$)o%R1E5s7TgwyUfYWe%vSpukdW*J)gJc)We@$f><F{< zCSzPWyxb}+FHE2g1?a7IElTP5oY;VK_TVwHO{!?x05R#64?Z)Ie%hTjE7(hX2-l!H z?X_@JdOzgi3uNGqEXeCe(3HH)EJe8Qv>*Td>OM2)8ndruKhF6AyA<Kk>_4Z`(sjC} zTGrEE9^=TL+zKbM<Wp~7WGM3DJ)Hd`ZMG!>M($tq&ws46qalHjl#ETTX5<RNs}QfM z+XGo&(aYHkueURCZ05H<lj=fo0nsDBXg@za*84tdhtK*!$*Z`i$?UTZhgH-22>Luy z_Jd~nde9@T8NRWFXZ5GUe_-X4Xakm^%9H3f_LXl4cR*Ua>8J3~oXv%x9uY%DmH)2g zxj-07zukP4zxEJplJQd4+l*x0w?`;L2b_uu*1@j7M6#wSFOIli15MT|oGcEv(iB#= z|FL(w<{%y-3fDcQ)%}Ex!6f%Fq=wj`azOWJJ*uc?bV(7jQ&mnEsN5gDt|4y7eDGEe z=nYRSEV<adKDAC-6znZko-+x0sdlc)ujr@twAZ_%30vL}e?{Y(N#L3iR-Y!Km`%Y- zDX*P#)=0NgXk<#OAGpvZf%u>MT;r6TlVz;JbffKlmNSF*T_*5d{Okr#P^Pe(Gu75Y z+WYm73I^a2nY$8m4&^I;-q-jwNTg%Hx<0%A%WN}(dD35F=>;H#)wmMuZknx)#D_M+ z)k6G)uBRMTrN}GQd{^}4XU6l5HxuKzX4k(wp2z6E7?t~s=le7M-SHf(T6BQ%T=d$1 zU_4(fOOEIIO?o^}ylnsD$&CQ;|2xgdnSsa++5JBfrvZJonMTPv<<Uf3L<qTlg`sp9 ze+zd8iuspmFT?x8_YAnp{JW7OXoK1a?!)}Q`Bi(~zxcx$hbbmsglFdh0mbAG&y8o` zhYk6>FUodDWOeDUYcW+|A;#2;xZ^?Yl0xCX76zgYcAm*!*1&=j%DE65f_gh2zvcV# zhxQTp?|>f@q;x$F7X@2&gd1y%zt#Q-9DXpajI-e!1T+>>vOdkYc;2<Vm+HReW=fgr z4tOG5&(Q`vpX}KWcnZfk;PEwX&M==l-gi%d{CD<8`+&$_yl2Mo3PiFaKUppMD_a0l z0RI|zkPh_OFf%V!3-G-xtjLuuI?lLb0a2r(-7&`Ne!d?^;OTFAt+=<(X8~)IZ|7Tq z^sjsspLGfr`PfOn<<fI?H3@q#TwLSV+VX(RZ-#!~2u;PcaAPmC^%b0kht~P}yyIhs zW6bSKC4oMFcfVJAxC@lDK5}cGbu-`J$oJ<lQt9o}29S0NX_zs1@KwU*FXh9rB$^}+ zC9$Y|;<Y4RLE=Ob$F)mbE*l)vS{zo7^JbA{TKg=2)LDL~9(UiT9&@xXy-h2YH|UJA z%`vUJW#eO7b7U*jzQm7p#&>ka*L21;@|e@Ofd?8GyNs$&!Ty2t#=w3NoE`oyF);_? zLR2Q^b#P&+1g$MTHh%{Ht;Z_Qp=WEh|Lgc~m%`=y!++QRyZA4lT67@%*Yuyje`8bd z-zN_KyZ8Y3?`PoGie;k%zshg^W%zB}aUl5JFS5UXiyyd7wderwo4ocv0KdqXB>WzB zya9bVVgK-J&ktyBAVc<+XE;0EFYOP%bHE^HsEPrYk}c%_SeC>Oh;X_h_IoRK1&Q_i zQgVboC0?W%a1I$Gqy8r{#YJg1LWSJ*@WD-;NEYmaXHPJmuVTXwzUbH=@W*I2Zb5#= zg^h0+m1mMc4reO9+-vS!KgHPEAe)yPj(_K(!@>AB^u6|Cd2ap4#b3m|&98a8F?+zh z{JHJk>?uZ3+PCuOhbhMFe@wBu=JMP<#q#H7kRf<)uF96zKAS%`)6Lg$it)}%{61m( zgBY+WBeYQ3uwk}Pop)a2_s-BAYtw^gQc|YWI#Fu9;rP>3Ba713NZB7#TBB3@2dZ|m zH1hk9@8OQ7HE$u%JjFC-zY-{ZDcHxK-Y_!St0EPB2*1?@b}O?QHyaHm0!7Vljo&Z7 zbwkdUt9yvIYU74CrF}+~SRBV|5<`1gpe=Sn-s$dtw0!aB*4HbE^;NL-UtV8xwjXGH zokg?%&Gn^Pbb$4hw)#J?zE1Wh*O%-!1k2BZU)mqP4Sv_e3~j36h441@Jo9<h@r1I9 z7YXI8Y*9PWEi6!ty?A1p_}rG=%-XN_58azt9kR8+`$V`XGc-J0UY8ac3ZGSDMs7y# zabrKTc&{;6HXUZfgY<f>F;5sfQcY6Fs?^`<RIV!^^#OUoWqbS0(L4We2J131Am2%D zj^-ovlEIQj(4{a>*g4n1Yb`+$)Dydi;8Y!?dEyr$DzbcHC-A_-mwsH?5I-zA=e^az zqcDtgHdL+l?=BIb1gE+is`V5cmc9=SD-UgHp|kMICM9VIc!0nzW3Gr!=r9o2HgmS_ zy@%fKnm(CWdcJMuaA#*GJ5u|-2AL`B>7+L;oVHe*2ilp*0H^HC5DWd%6rXZU_W!ZE z;{A!3pd!}V4HA)0#0V$H5Q#8|IMd1T5E1y`0>sXqbcK(BkM=l>bbAhogbz}AIj&x7 zw=x%9-&+m#;`j7y+<m@chASzg{d%t03_B&05tdFy3SsQ{Y|~mWOO1o$g%@W((eg!X za@DwDY->gX)%J|{GjP(gNYoZ8H&8H23`P}74RrNEJ*t!bh(!HK&kM5AUMYXH8?oPR zb!N^EqS#iO77pgn7-2QAwf0X@v!_9Zkti01GhMWAJ?$B8krtmGiTsBBa{U<VloQ8T z!4tuOGB27D+2!)R%sMrpqUH1;L=U9tYL3}U-jmi>)B4~rS{}kF$aQzp-22#-H-!G8 z#-3g?fj_k$f1!I?{C+c%HF@0O^ll#+LLAKjneMvVdS0-w#nWA4$KKWpe+o1<k8sgP zy*<<+&*pi8KK3_WKZAd_;_1V|5PyvAA47=3+yUer>01tjf0tdMm-N3b@0g@obO8Jt zUhyBmzfTNz0oY)#gqsrl+X<d=fB3gOf3vT=<HyYk1}XB6QI!AF@{S|^eR)U4<|2RO z1lf`XtgV4QU*Z$GgCpYAdr{e;sMF)s&LU;I{*fc+m7WF??ad~q#5~}2<h-25ihPDE zCKCs9a0kxjTy~zGdfA+J^s(z?bN;g0m|L%lWEK4~B<-B7T_@|Xg>~4>hI|nl@>({{ zb!uUV=gS*jcQ@okDJajbwiElF2OWwS8Z9HTAAUk1Vx;?&-{6njf;<|3+?Ob#v)vy# zmdkBGO%4hemZw@08J16!LQ#=ng+zr#0P2jlgD-r=O#$mizcIqrYZLU+to&ebVrhgg zRy2z~KB_PkJN&}LLC*JIIjdly%EY0DtnKW0S1nKQ$Z?{QLNwYL011EyqTyITuuNo$ zG|O*ove#fhA1<%P<Np2RU)hg8N;q#n;Fd2tOfJ=s7Wl1vzcn=*oKcI;4#k;tdMu|B z>a-!BXP7v;s=e|@b58IINm1@%E6&L@Dj%jS)d101T4i^7M4U5M<GOMY38SK=*QNQ= z*97`(HL5-qc_n8KYdds`vkmty(s#0`J0qaLO58|4#L<;PULw0~bAL)a27KheV%44w zv|$|{xn&I7jQ<yhq{S~z>2s$Np;UwW+4AUNm0~J!GT+#(#K-#^x!xM1kM>6&9ek$B zlyfIN#LsMqyr%XquRl43>1}jLjMh`bDB*N<9H<-*+r4_B@QVO~vvTDj)Mmqt9<to6 zCCBHr_Nzzojuchi8tlP%Es<68?x^<jQ|WKy%G!%u%E*Xbv{6|_t4#|vv5H%>fvyM= z&5BtBtDYd}kIdqlyUBTG6IZdwyE?VH5?TMP*=a$%QgD>Q;RoYclBZN98DXs|nWNHB zm9+1)x3_B5Z+Ai8LJS%cV2CNX&egDSKI~`~uSVCqsiO#H)uplS#Dx0EXy}_`ql0hz zTtU601gQ5RuWbP{M&tAL@i!8$PXVBwGxF^IfKp)dG7tk;E%vlL=@b4=MhdXn(kHo% z6y2y4Xa#R~A;qn(zZP&rX6fbqdtO`^;f9skhRVv`z%p7VdW!-iE<Bh4v^Wt}wAc=Q z*&Z&xAV%QAB<8EY2A?&Y;TnyXOl&j&$<M$DgBce>7k{Q8bj&apLRWbdgjThWA47bS z6;0wZ<v*n#y`MjPDwogVc?)F-WI}2K99t^gwYIw&Ibc!gsSQiAPQZKin;CkijG(r$ zWCAx!=zn2$$HBokN#7d`@wYW}HS=b2|Ch~qqb7?`@<u?mj&WIM7ft4>A)ui2LVYUg z%4^WRKbNc%WSR>X^EPfTB}u|f60Rs;ml2w%a$hCd?Xny$CBQvCqPRM%kKCKlQOjHV zX?4%&;B}i6sLu5OD!D($9yC;es;>r>if5Lj*#-N?A1m=)iFeQM*V$VRVW1Azi*cQu zd$<5<y=|J5=`7IK$RTk9h?DaL*^hD-mjn_%TIP+IAg~&wpwyq!Ck3T33QDH}rET<W zn|;V-3QF4)lyX(nkgI`GmUOnaI-KAN$mrnjHmWXOGSuzjMMG2<N9wLeBwlsVBk`)4 z+w8K#bTgx{bEz|=-Tt{^^MtzeJ4Q@Rwx1JGaQ`mGe({(IM&)3!8{nF_$^irv;V-X? z=Os(5F)O}@;TByHPPFCL?nns-u%M=aM41&uBo2}?A|^`;pL?>rxc&?Zh9)*tunfeG z>%FElK^wvzL=eYUy%ju-tKIVEk18~a-<xq{<;$VoKI^8uwIzk=@gB+A;kPSaHY%Ym zd@5Mcy9n^M@Lb5VS?!DD0uWK6<v>lhb)@Visy+%G?`V7&l|>Sh(E9l8XWLt2rxB&r z6W@iwo3)hLfVZ#jXlBye7o=FZCpYKOt14Qeocvep1{J@px-X8N#o2poEZ@P{&|y!$ zOrIrqh<#Crur`_^<~XVLY(;$KHW&Rbyv=7U9?du`k>VJKs^35_V~_F12BEnw-E)U` zf-f?uFy6)CH+&H<0AAO&gh0MgDFi`{<R1tGB3w!l=@{=)<Ah|V!WwQAm(9M4+1a4T zYg8qZ<wV}7ES36QG6GpaO-iFhhA9;-PTG`;76mzvB1X<`f9>vH<pQZQiHuhQ^JZlt zan*FhKF}QXI@F#Zo^1r)RSgVbI5?6W5qlwS_9(9n9wTNz96@`VW#JfA+SxyPXsa&C zNQ+&kKXuYBQ!a8yJ7F?u=cS~%#TixSxOon_iadQ&@)%XU-L&_9Nm@6RHcQB<thY4C zf>C+51R~Rz^Eho5M|zq(lx<`*)x2t}nZbJg;S;@{2f5hYItQNN3Q~TdQ~D%QZjh9b zr0ndZj5>QycE2ejh4@YHs<Iv~CccoC*n{PZJW_VOr&1o26vf*dM~cx!=qZzJI5&j5 z*Me2sg&zvrywjd6><=qRt{rQzGw@s{u_K9{Qq!HzU(VdSo98&5?dh$n?^mSoiEo7f zh<{;!WG47z+cv+k_y*>2H<?t$wxRC)<7ghU(%N_zU+Y@8JYS@jm~LQ`*ARq;3;x(l zIS$@nX}fr%8NAVuz#AwoN5&N>%;7;Rqae>%Ix1gq$7$e>(|i^&YfJLe;l!G>BmL(E z--yZ8_gyI+Bo-`+g&4ldmxIGa2|$oZ3y7nh8OSV@4Ttd6lWOIgCg&TYYM5HE+qMOa z#n%>02o99KsgwWsNur!D>pidHoQxoW_4YJb^fF9|MStpg*1-aBed>ON(d*PvjrVDn zy5oIivF3#+<<IMrW7lB&KhR_MM_2)u9wpDOxj$9o_ZO*E{xKd`F&-NPzt3bm9#r^! zn^Ae6#_#bHQn4%hBQx=(M_qX&k`7<%nt<HBscex9<uFXfrD8W%B0a5;J(#^IEsOdX zq<T3wO~LHPg9r0G^DoOYi{G4)TlrC_yKqUKwJ0dYJJ(d=flO}C6i!NHDI(<(<s|lg zEv443iVb_k(|Y9%z#VklGZUrV%QKgA5pwGWy(^vv{uBCBAs9=9K$Rl;C&Wy;fl%yt zT9`zf;7Y-<Au!~5q}Cv63ze$NTJ-)(5Muat!G{kqV~nL{wosg>3CsP4I~pl}DladJ zJV|T*T>J?el2&dfEr;V1&L#A`i<A?v)K!M=iG9LnoKqkk-)jG!yAG4!j;+#3LnY}1 z*(D{ujy)zxnwo%#J6Vkt8~0Z1&J3NK<kV%FwtP%Wl3zVVAu{xI_a=t^4+0kMZ>#D@ zeC$4Xi{=P9OVBq)IJ+%<Q%h0NH+2xHE;3k0V`7<n=h@*cOy~ZX!ZaMPQJkiqvUFI> zBGuBkoAXp}i^koLYy8?`k3SFmDySuy7Io9k7Q7s4lXjz<cGpDGE^3oj=BE915@~~Z zQ|I_%iP!HHR?aDj*Zx;Pb&hgghuW)t;Pv1gLkrW_4wWv9q6+}GUE>8Ny74uD4V%ww z`!^8x*j#x_qy^oyaxMUhO=*)h!A*Np2-e6pY2s;7mHC}?>{Q;s4XHOIf*Wr6Kw<VX z&U7)mZy^4}<w6G%d%v#|zZmEuj#DIYp-!Bu6E`Lj4HDzC`RsnKAz&xG@*?-M?*>RY zgXg}XiW_nU@ru5DLVVm$%EA_vGFVa+eOWCjr;{>Tf72!L&Et|HH0cWcP3Ocnzaqux zf+ye{h>pzI*Vj3?O<v|emRurLZ&x^o?)gEK<`Ai7JKzwhM~ST&%U}-#W{2~W6|)t! zF&WjK{2t@CFMibLA3x0kUkr{>jMI4p6v^s)2B<B5h@Rhy|2>Q85C0p$Wuh-Ke5gV| z$H`Js1neX!Az~JR3~PAyQygzZ<R{2cB62H;b5V=%$j$|I!X`(x+}fdd3-n=xK09#v z<rKQtS6PFh&vvOPnDsC)Yfth04Qd^3rsK0twO8=#-<b{pNTSfV8t9rZ%+)-bd4_pH z@3c5ekv}c$(xPwGAayMC-~_?IiJPVtK^hlo{`xDKweZ(oN?W8L@gVgHCa!u$=Arh0 zZB(w3eCcpa%OwD7r_~XUTnFb=N0e@_6ym$Qv<l@syLAI^wQVud$AY&MMiPFN5NN)c zQ0z+?5{CqXLwDMLeGBS4mKG>9EirZPQ<YqHM6nJ=>ML&|Te#1U*;H#&tdCBv1vmB; z(w4Xq4EO4a;F$9~xlor5#@r{Rclxl%)Q3g(sprWaPn{oWq){z-oW%23<MCVAY_(<9 z{RJTBze{I?-xm}adtcswkYbict_3y75GG<~T|%C>lQBc>!{n<*9aE>i>b{1`gvFNE zp|)47gv3j{kjk?uUQtT%$t#4iN-lXIxlT7akJ122oqZXYPJklJAQM+{!T?3U&NV1< z=LwTmPYlyUOr~e-$U^cCHLa2PJXr)Ip^LHzM&|M)ZYT?37!1-uE?{bJO!AksLMBl= z`cbPJb~}rjhSl0rgnry8Z}ds0UGAohEF-O~P1*=I?RrKzR@^4-WH)WtWuzUY(;Pq; zI<3xr?*a{oE^U&xfo~L?nl9GKn<XLv#y8#MYABO{@oy3_XN}B>6mcbpGW!RGT>Fi4 z(eaei6gqz7BNabE5V%6eqls5Y_k)*J%CGynDFY-$knYx3RLXslq7ZdYQXGkgI?=R` z;2cf)V`pr%OtO<2$@TV_v-nnPvW<IJkg>|3zq(vxHn5{7>pb*(kv&9K2yurK$KL#7 zpmPsXrGlUM7azv^{}C3VJcgf(j}g`7wjM5{%ze`u+eL5WN=N1h`@=OjZJ{3v-jsgi ze14je!#>4>^Rrzq4hMMlW74G*eNyGGK<w`$KWWcj_xAP_6Yz78@MYVtam|e2hH+;~ zky^g<PuOb*0ER>TLyo=nstGA^j=lCn%+o|Z$6osu*Z{GusH7+QJoM-5TRJ|a9H+j& zUX&8&)VFs`N}N;QD<j+2C;J7_C Uy*2t9q8F=$k=FPAs2Jm8k0sXO(HtcRNFqTb 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%0AAMe2u$vvp<IG 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≠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Ⓢ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 p8Dui>??wGQ5)_^S}L{h{>ff4g~L z(cNrFi~Q0wBFE$`B*gXIY|*;?x4%IIo1MAa`aVbBPy72B6o7zqQqh+WE$SV<x(F}E z&AOfpUn>b2Y?1WQY$Y{~FOG5f*`(>E#khU+zi@+^HtBgw+ksEX^rS`$%d4~;ddL-m z6EmYhQuC(QTxSs+3Q3EUyH_X8b@`K}oLrYRd|KPWsbAo}g?1#{ET@yMEhu}e%Nrlh zzNEr6>lhc+q1C%LzPNlq<5gpO{VTO4*P+j(0~f2=O5l>K^rScJm4&F<4xJAt>e(P_ zakXE}edNSE=wfnS2vSiWiU*oV5vHLE{e|l6VPl_>SaQ-&f{$mbyb|x09|+~rlUiJK zFOAp@$g9A>`>IH?`{4Xn2AeKv>^e0uRdx?2d7)%UsAEcixKkuoQZb`lG07^tq;k3- z048+mDSG_kg`&sjR%UF+m7etCVhzQR>$*XjblEo!RPZ*-zgI>1;VX46SkQvbD^#W6 z^V~&(k1hy|HMlda5!Zhlzh*R$HEvl~*H+@j`7mKfg0kVmf*F>c^t5Hjp~y&1dqEM8 z;`sPpOLHi4p{p}M5y>I@p~#;tq5wq>b@>fNCViyT<dQs!?5M32+PyT(`XQrg&?9%e z9t<JOKzh=4mjj|x&D$n>W6&xZ@%Qqm|AYND^gnT#P%sa=RRFXv4syd5cEeVRO7|xZ z+X7cezhPsqZNqlj1$?DpL%PyiQ1}^N2kLow8x5Rmg+LdUENAczW9GJ%&)pWxS1F68 zxZu`x6^Il8h5@m|B!U`Dr@Y32b2HoCJ<vOMo86zM`~f}em@Y&tQc=wc*!-`%xbC7E z4HBc_LseqCvs4mtMGlBKx;fNt9P=k1%0)>?^Uwi94>P#Ed<I+u+cGq2INISTgWn>K zFm#l05mMJrNtHqvQg><HSNpZUV_Fqc7!Y1mjp1l@D0LnMpARR_p@r0JO%WYxZn>aY zh3%c2dHT9Sc+q+&Sc5N@T(*(lL(v?-BUj%&cBkoQb%(t>&l}|q!EnAFPTf4lpFkl@ zz(bj4s7V#um#@+$fA`$dqH(ft8MFG_@fiM?#GS(Sw$%G_E&|$jhrBz_9i`jl-z_Ak zwG<fL%O1{$vt8dJ-OIyV<{2TpJ)+o`7%j?`x~UfPME^V2ss*?w+0+296WxI0tHjd= zmHNFcQQx&Z;@!D$RO5eUk746Jz)O6F@0oV1ri_BLuXAz7S($V9HZApwV%KnKs(-aB zdAHHI!{B;Fh#DA%xtXK>2CfG$+c+}IceD9Okdkg%yVH~A+#o%LA)k58NJ{enpp>4q z-l;6SdpW0;@2I6)_(uPhg;GP>K-y5E-E0095&rk!rL}^{<=2iW<;9t=6QIrOTcR7l z@Q>zO@qc*LieK8V_#dkHH7Y(m>8DM~H*Cp!6-D=+L6m<Iqm#Xfly5G!l<&Ps%B4!# z`!9eqJ?U?&E&i2a)F`mED)M`13CDryvNwoQ3pm-?pmF5s<Ok`puV2eYNd)b=3m?;` z|1_;~hCHZ`xIj|9_m4hTwA6^_(!Kum7=B<zAyT?@y?<PYw_|f}Gn58#acN~rbD9WC zcl#I5cEt8~{TB25{MUS}n^iYcSiQIo4S#Mnohd#|LaLn-hf!*BZc`4o4Hv!UbHxlL zp9Q(b_+P!+aQn2Gv^|I0QPTYn*(;1IX8%4$mvtC+hg9O-437RSLmE4uXNw)n<glID z6B#)Q7Z-+TX=PX)oZCb@TO^bji$Cf%&9c}?!}M-1ai-eCZ63AkDzr<JT4}p~Xz1Re zQ|`Q2?Acg0Zu@J!H65Wz=f3*q;w@%GKe=aYTRkk{nl|np@aj7vsnHXQr+QQ0!lBfG z+<<k|xAA?E-y-HHI5Ki~Lq~|Ys=m#aPT1w0k>WQ)cmMv@Cr<PSoyJ&nhV~=lM9tSf zJJkOEQBrcg>i(h!e>4GykfD2NqW&$TQQ|?p$sM7RSzEl;ZRGP>+sb!u>D@_IZ)!X8 zrYB&oT0odq(4vJ6v+LmN{wC^=q<?cI1!+V1#}>M|Q(M0^?Lq(8Gu3ylo?TwMy0HtV zY7VAgUTsTb*VvumRR9|AcuY}dd)#!kkP|d5?J8=#B9tndb0H&omo-#_mFSF}?~nR2 z_+9Hr!5+c2Exc+frO0~GXvWJ#2BNH{KroGe-LguRmFS8M@n4#)x!PE&c`EX8ir~s| zoRN<T$VZd^0)h|7#^QoKm{$KjJZj$J_Jl1h0?MSLHKEc&p7m{hZ*&|<iz6SKzsmfU zbwBxjA5*?z4?||$EI#T|o5jCeV)4y?%gy^Q(94Wby7Z*bDoebPQtv%hh%iivaHSMg zR-w9dT+H!uFw57HM@ctd#diS#a8ak<!*wpSbE-8Em!Ax$f97;b({^HP@6?*NgrRpE zZccfU)nL<3Z|Z}b=&1_EtQ9T#RP>%?{dbemTfH^)YZ={C^r2+^za^tTrhmh(vGQ+y z+2HWEkBl=5;P5-TnnkU|4zG~fQ+wG%JH)snAxM|)Rpw9Zh|E$8$XNRH2dvzsE&d;% zjyVF==|3_HvU8RrLM?vN6yC<z+g43s|946bC|0NcQ@sTgtHqz8%mKw}^6!}8DAq?} zR0<@9dHx|suUPz{S9lm*+J^2xXDEI2x58i<EbGJbG*{;$E<E)=iNZ{r6PM=!GIz#s z3|RI(BF!lCZ5yjelX>@V=Oh2hRuQ(2`^J#qc<5gg8#Cs<SBFw%gS1X0Srt=dJ<BXu zP4Gn*ggq&H%mraF%I<T)a)Q6MV99+A`LfT+m3=Ewk>q8_JmyzLl2=xvqCAQy;*j}w z)Q(q}?LaNzkiu|l&)pbsYcTzFbL!?gwg)U|4AGe<#CNABO<W+181~jHAn%!c=g+<f zG|&d@UZH1tShrG6R?2CJRbbuwIz9yQUC`D8n)%$ArbVX9Z_)q;L)PXmnB#`*92V2Q zA=7@(E`O*)nAwibN*e^NQ=X`q_!q!qj%_R4A@=c)(<{}-gZI}R(;XN(rq?PN5c~?p z*gI@`6~PTIII6I~{^!Z;J7GBQDPpC#Pk(gnN|E2$yU(q4IznLJLz)h{fLS^8M;n%N z=@zYzUBt<fUu8QQ)}fkh-pUfbGMiZm6;SNAWwVR0@v%CHN<N3doWGoE+{HqiXpn4` zV>srohZ_1Pf2|bv71p$P&+&~jEEGv!(bfk`**gfMgK}S%rQqOcvhxA?A=<7g|EH9s zHY6_8oO>K5CB-q*@v-f7JJ1Z{&!8gdhH-vamz*{j6(@r<dSU_w`{>wAX<VIO(0YH< zfqlK%NzN-sVf=p(4;^Xa;9Sd07o0e#FL9&%znuqHKCL`ZKy#dVA(|G9z%MS=ToqQe z`6pfA@Mr)HKUhC*`KzpNz?gmW(eF=l^SqpaVO&m(_YCryWy2Tm`D~+h-#ZabfZdbd z1-qr4;9oYQw5Vy)cc*jM=_T$UC(BLQO}xT`%oePom(h$A@H}Bn46r7z*pOoYc(zf5 z!L?bo(dscO1M4HHQAR}C40X0k!<}Uc^BjEC>(UYFN~B8{!4x5imjF6)2qXiK0t6r! z=m`-3X3-`EAQr~#gmNZSGY=_uKI{e`VjePN(%#q>O`S4QHCfH4T5I0$o87R-_5sLf zx{+;a17oxQUM?Ri@}F1FfYJko-p^r9hpi%FY;V;ie2$sC7zl=)Zmo+Q6<{X!?R+Sd z-NBcQgEC(xXI+ql!Z`QCzVEN0T<pahH)3k-ICEc2S-_?#n*K&{Wb_N(3YlL9rHV4o zE-bY&Uuv}YMcPZj7=ii|Z77V7Q@baJ-0^)u>FgW;9)4MpbJqgqF4>O*a)jhptn(79 zB)CW~-QZsh2c5ZrH^pb}w?N|-rVK;pkTyFU4iNj~N_)7J6K-7qz|tdX?Gnb~7r>Mu z7u16(=}9Z5LR$Zg=0%gAi(*q8O@0GB|0*QA2eGm6vmYrQw(l)gVra(k%yLwm)59_r zfeMTP-Tx7|?+wa>{NHDmI?5nO-NFl1daCk7K_oq?Cg4-v2CGMFXjeB7uesya*mJ)O zQT}wWuDU26p?r=`Z}8ur$oxVFS_ps3g>J6>fK|Lt9-#g0@>e$q-4Va1*+5+M0O9!3 z-9@pR5Kj5<qOjm7)urn9g6o~a$z1)<v`8t_P=Ol*iyJQ`lMjBAdDdR~EaYIAn%J;1 z8)mKJ`}KUk0W{x&p=0B@<R?Nrem&!=^O`6X)VF1??~_@H<QCaQFIKvWNYztAl;+q8 z&sy0`ZX{BSODj*xmxhQH-NZ8}+UeQ{sv%IH5U!yFnA1_&BNwx+p4_M(rDoBHz^>6v z(d3k>P;y2kf<xr5UzF%=`F6ofn_jj{j+o7jH~^o{mN38HLcW#!z#p((@YOz9BI81N zgOiU6^rydMd(NeMO$E_^bQ_-t=FA8*KXZ~o*9fFT*-`g#SQ@NqZ}r%!7CWY+=<~5_ z=abA5xs(iC`deNgDeU{A8X=#p*IQm#wDz{&^}KcQ+--W-5?$E7gWsh|g+6M5yamVh zMBNB*I_74=HxCeUHPbRD|B+jtg7hO7ACx{fvvR6MO?CO_W==e`@ZI*SGiRU@DRXc! ze~+70H;!Op!)zjH?!2|1{<D|^tJ&cscR42KaG_{k-!p!oH^y;v_9#|h1fCuDGwi+o z*0Xf9Mds9;k(Ht1J!S;?mj7G$qDV2qDq=bG)dV*IQ@*kn-6Yg%{;%h_A)gHERIq;i zkL{iO|I*$epWNO9)cp_JdwO4c?}j=EUf+Ya>uYa-gOblhkk6$qqTgH#?ysd}f%JsP z=pIQHS>>xkDMWHJ5Wit39W45$zK}gBl$rt#fUqfyX3qudAOo7(;vSC&8;n1|qS7>} z^Bh7TyKBnfi<7sFF;Ss>ID8e^^mC}iqtDZeqmlc_C$?o+7`=J1ZaODKtRfnbEzhsq z(6LZD+GgyF|G-}lpk1}QIJU&*Q>xKNl^a<imU(YCRs}2$+w$l9UriK7EJ8g?=HLT& zlvc^%kc`7=#G<j5)zIu2jw;Y+`uD%tv}+um$Bmum!QRD)HlWDEL45ldM<u8iiD%;> z{;;=-wT((4<oOZVAs;M-{;^1LG&K9QL>$`(k3fDZ^cRIr?q^_nSza_SRT`Lds5nyd zX5*(L$(tZf3xRL;GoqdblEHa8iexot6I{HbL=La}cuviKqgR-(`@Ji)SL`EM!Tijp zf9Gu-sC+z~)kHgD+L}7cTvgZa^+w}TVsw2QzYYA>@oVMRgl}dMU>@QrAjf+6e*ggS zo?Z@BQZ7EVMhr_ptwZUXs!Xws`}$DCKiuEL1_woh_Py0(A2X4Xvm+LrM3yE(t>!>= z9ll%pLGtDA!5u7<p3O3xx^X0g(B*!AhXAX}LEkAbci9pCvV8egaECiWIT)0Ade|pl zb8x`dq7kkGQ&XooaQqKo02&PrD7CKFdf-RL|2Yj&)9?v8cU|@n|D{=_+!s&E*moVC zKSTyK9u#{}X<XwL8oe##O?h0BGLRZ&_R#2VB*hCpYs?om-~0RyHiMdt0i61FmZEPz zs)3JrypWz3_HPS-{doWW&hYl{7jI)+FRNWI^-wSGrRBL^HqpzXgM0ZR5kW8i3di*E zUW%BH-Yt3fivOa4#@Q$5BK}y~W)yy(|EH5^w?Tu&Y4p?Hil3+>sc|Di#m~Xos40F? z6X+kea8ZnVji+%Wvb3!jpYd#W;1IevumefTvt!)y;Wk9@^!W`DG;(0}NW?#<J}XfR z$44DS1MsL6Y`%i^MSvF^3;0L?FJg4eco8Fdlc_Nf4NLq*<?QiiMa4uyHnM|rtjC4t zK|I6(f4R<4kvrM`*#6qh*L2yfiv|{@hPHzF$w&O3iq-6o=4<)DO{0H|=6%$nU_N2Q zlp6ncrqse<yb7k&DgR_$ee~!bl>ftzm;W%l%|Fu@l^+uDi#9<l$39jlOVIw?(vv;4 zEjJF#&u`AVct7Nz_lkqw56!>#%@?!x!mL|tFiS0at%uzvn~SGoM+SR>m;KMZk(V4a zpGdRvTkhcS07knv#-+v2!p|Hnkvw?a$J1m^hZ#WO2pZ9a|Ba(zAsg4>hsWOyOyCkE zQb2ah2kg7H5T|8i44FE08h1FG%-E1%MSR2m_3JEe9A^v|3O!Gk)juWttKX8H8*s~8 za@fvVzk!tXv}L`2Mvt_6@HqZBQLXfMt)emckzC}eU$U><!Csv;ys~iVt);H`()GoS z@DV!N!rui)cH!i7XD3#dJVbl0{$@(4`d`;2r<X#e_vXPDLcHo`MXUegS~nSfp4&Ac zao7^XwGwCJo0@(Z<DTc&(XuZsd}qA9%4uVeIx&Au??Xe|$KQIJ4>_TzyQpYVQ7w{& zTl)#PRDNIjx=&2k?kiMo>m{UT0~#^@i@)F%V+3g-A!2W=z<><_MiB<A>5W^6m7yT6 z>sbiSg9N4Rwl2JOb3*A@F?qYx+uhZr>=~b<rxH`J?C+7fCWZ7Rwi{@)N~#fBCG!H< ze)Id5DvH80VikhCQ5dXDL%-p?VGOE&@xQ3?IX<B8^WZ!=;NR(G7hOOh2FzbQZRml{ ziGvp&=56Y__g9k8-2Q|k!lBf1R}sz}QVpu84!>ya!@!_U|Fz4Q4Z_saEVw&U=a#v| zG&W)!KvaoH#y==-JT8=W`s^v#$65d+E-?zOHg<{sIwE@v#ojSe*<Dl~<M;b_XT{Jx z6FU(k<O}>82S_*%$YzI!ynER-4w=d6C1s4P!;J15=-6UXXV|%XyZV^lFgP^q^k;p^ zq2bXmdw&-`b~;X>H!}x&W5);hjP#KfIXPqF5&6i=r((AE2QhdYk_>a}g(Ng@Q$sX) zBG!vYDsG00@6I<SN6+SM=`9we%e^~#HXu*0nwAYHigCnWN#S!d?}LhcO%^`)(KGlP zT2QyC)J)fY3x=|-Z*4m3^X%|jkTNyFTQU2a*h;q$++mj<5A<#|<>q-EiMxm_;(CCx z`UdC$S9mCYM*=oj=OINq>>kpAWL#`9I}+dGN&cnK6D!>Ra3%u4rEAN)=B>0Ols1Pn zk@OvHWQ<^mZI8ya9GR&t^CTKz*>-1(oTLyG`$;Sak}w|AWC#J*DKSED#h@e!PT{^! zm=MyZw3-J40B7M}tLB)e30l;k7Uk~8qgq_1(*}?c^bI@|i&Jop(sh`YbCDt97hIl0 zwK*Rr=}!CF$vcQO$x7a6!n)zq#YwZCBwZx|3+)u|Nt^9jZ7R5Vo%k-59auZyc-FE6 z6*@2B1~+Vj4QNxwIEd*uL?V|d)jWX}A`%n1unWvXN!!4ZfS-BpKcw{)!wyn%KmY6* z!QdsXQ1#A52P3Od^N%MH?n?t%)>saXWgZf;r<S&|xV1<giBw4#|K*<(?L3<2uBovm z^GVYOIAxKDE<L4p;(&#Rvtg5FYV*#<6EeRhI(w5&NKF#}!iW!if5{#^pR~&xt2ES1 z0rr5uisOHpeRk6aC5@AuxBzClm;E6Rl%7qEWrz}>Se5?bm-qGFTgB&QhfLS~dBkK( z>U1t3e>&w6@7FKLbnI!=P+us=Pv(wLg>6&7m;x?PN9dJO5Q#A!s(k$aT=@qt9b9>a z7!j0;4aId$OA!u1uHY!Jw_Un!NB#PNoUhO8sNbb|XwVL&8`t_jzrb);&}RVxnOo^k zVBS%Jb0)np4gJV;0`LzpxD6KiJz5U5w6OZuH618z{1$P6?D)=~k<~0)AqNhZZJh4Z zFvX4yVEvi748T)B`%^)4{9m4Vp!ZJ9_V5jDkb4`h`jO1NhA~HP?-E1uw2}bj_)z?z zQFWUJn9~mQa6;a%A1D5m^2~S0p8agr8esCC*vN9<`xBSWF+9_GimP503K$3HE2e=X zN=08ubm4m6NB`olj)LGZTM>Op&GcuCpG>2XcOYSoq))A<dD)Zu$Y*OGUZ~{rUWBr1 z7ZRy?*IPN3uVp$~#c}1^k<o8^D_&H2Y)T@<?}nCtKo^$Xtv~EmodnFk?VNy%KZK2N zl=aqs9Og&oKNXFqn_wgjiP7m(P&8x67A7_|*B@3ouUQp`i=WHfplQ!8I@m)a)r_`@ zT#4=aSQ(Am-K08ND}TFRKJl}$37PHG)7M+t)BH>$EP|U`)z20ck!x56D!@cWAh4;n za^h#X&xCi-+Y4?ylI79_L`lpr{S79V*KEkB6z15_zwYbJ{0?A9@OxSgUJp`GUgU=l zJ&klRTU=vx_W&8&as9qD>iztUattHUirN;b@S!5Gm7@w~9x7H(+TAzNKUbj4{(SY+ z)KV_Lc@)yKQ&Q`y>>n^`3%6S-_(uBU@ZS$mOMVgTDZ3-1yBD0@*OXiOnqqwM{r&~C z#%#+o*8_D9H`tvHJMj^n9qjiPoo(B@^sw9Tud0YY6TwlAWfKGzmirfSC7N((HP38` z&Uv)?`}S0!bg%#4^}<=Vf9Z#>QM|n+{}f4a=kEfz1C*ZM#yWz95HwaJ5cMyD#zENV zLa1i<f-|B(@!a&pGygAfX96Epb@u;E$Us2i#08BD5*01D5)~ytgpmwPWFlBh!3CG9 zyzU}o#46xG63H-~mRfD;Voh5Yx@d6&M1ce_2`&&&5k&>DuiRl=C@LTd`G0@s+?h-Q z^!0t;|NryP=W{dno_p?Dp7WgNJm=XCoK^OuieP-Qwk^($Q~)=RlZP}gErhc@p;ft( z1C&2mVirWfy_^FoFo7J?SNVzRNi<~;KC{rte-ppexv>jTsv8YVi1k?BcV&6;r{%s8 zD2YA^c^WNqsChE$aYk8NqVm4~NsV2CQ37MFmK<XjZ4zFI=cDzZVrSB*kmuua533EZ zg8FWA-Xu@C=W}H<k#po=pf%02K^qR@Xz~Ok#%ZgrzYd7O`qKjYYTVwpIn(>7Q@hJ! zLvWVQPyUi2jJ>WAYjS>xq?X62JR-0YlX@5_?tZ*X_TOtI%fl_Wsxj9=vrYr|=b%mg z@remEq-}qq@svF!;;JwG(M&tf&o>)kWaSC+%Zs9-nwVQ!dr!WJ8%IY{c9I#Ep~nx* zWJq0ku(5aS=Uafobl$mQ>Qer7u@N~@v^#OH=SLWV^G1CW$^ZIlNeWT;L{ZDc`!7Z} ziJkB}uhDrchjkXSdB}3cW3<H@5S!*Whi_24kT1wRaYAS1zS-n1|H9-HX7_V5hn-M7 zT(4=cZyq(q`%kSfAI#;0#a&DzHWAI&$ujwyoSTZXv!d8+m<_G3`ckMH!&Z;csjs?} z2P-ODw+RZ;pU2rFIM$U`_xSWiDUiq4zo@3F0i)Ebc#jq)A&cS$CEZ5ZG7oruAYrJ! zR=ya!!qhgyh`TqN0tKZtmjNZODa=4=&3FSP#vY;^?|%>V(eJxV@zO<=yHL8|eAV0k zVLng4FW=yHwaF>a>u3{k++x?{hT@a+sp|YIsj72ZRX1c*1=Y}?bhXuOc?$#uo>aHN zfLefkrN4?CuWVbdFtu(Zo5`Z~E6bnAqTg-<1YLuxu2dUXOOb!qnU)|G`@!?|7;DLQ zH^HT7%c=Fo>>mt%O~jJNqSyvwOqVl*$h57SV^eaX;ZGTc7J)nONsYw#`Sfs7H%$?^ z&3NEb3qbFvKd9AA-njSgt2ED0-ZcekDGoyt8~cOY%;rEH&+`nv#={Zy;`u9G93g%l z3-|eI0#n=INM9Z-jy(MVIC89cr%{IcorrvW2UBUHv30%rdKzF5fLH7@vHaI!<Gyai zQg<wRdGFD~I%m0_*!{mX^C@+lbKLveAM#Ft_7Wf)5cf_|f&xY)WKc=Ms*5^jCH(gO zDcv&=N*_eVL~ncFGyPG4O=!K8QV5hvKs1}MSqX$*$V%+ge29A&D*;&~XGPkCN0iWA z32)hi8A>=r2`g;EmFZ8OwF&*x34gQ+J(NJ~@T`PP<EUjP8#`OAqPLN-j)a6fp}DWq z%TtwGUdtqmRl)!zm`NM=o~Z;*vdKyewK=>>kkxJCY@6VWBEhu!1e>s02^hO%CGu>- zb4ozMkd-izKH}bSewwhI1ZuorFHLzc{z|A&f~j$}O*mf(25?JkLV*$tXtjmllP@nJ z0r^-~;&(P-*>xl!OUW|9(#WwuIXIswD>;>?-|9&vChy?sK0OHmlGpMyR!>Li>4!X> zrzee3vXrOe^rZ1fp3l>+@>I?~JiV_cH7bb%jdz8fOiltHdjF&+#lK-9Fd10o?4&?1 z=l$*oO<IvZZ^J8XQwYdqP9f%Ez)T^N?oOe*#-#~?nGLXuA_OhYO?@pP=vRW&2{-F~ zTyp8&!Zi(Aa458)7nee&4d&7@Czo;E$aOc@EUvj+f8kop^%~dvTsmxMA6GYM%5hw0 zaOw0S1mCUKa82Zz!4>EF1DDuC@r*D?t%{!fC6`CEh^r@;ye1@9S2&LfE}a!97PyUp zb=Sj`y)<j?8l&v^+UO>SGvQGS_C?XqJn8(h*fbpFS%^N-rt~)Y9`bx!79FoZQtgeR zSccQKd+d4)W3tCN2T5I7Y<zxl!9nZCUb~M8zJxw$I~*ILsWoLfiYOXxsVwA71`=_J z-In9VYsKB`n~9T8F4_pAmb|7sJ~6*6Zlq!O4a=6u1msD`4ves-yA{?{Ioqm-e-C!L zJeRA0s}I)zt{~SquA8{-305T{#6Hapuh%ZHR}j0W_VHjlU3D00ljUenTf#d`6CjlM z%Fz_mA+q(bZ04PkJ5Mk7Y%PzS#m;n55+P)%c0U6`9=uRt;&(VlqnlNjnsU$A<<Xn+ zO>B)AW+cU1D@(;tinC-)SP(Gk>g$Axw@+RMFJ|_iJDjyAxL?O^%1=H?y5!$4rxI&E z3(w@!`h&B6Y5DMcPkZ^V;jc6G{bof#Yc0%ZnRJ>F45V!femF>&VQmW*iPI=rmzL03 zF^Rg`n|2w^PqLxicxe4}ze>yN-1_CC0!N6cMJU!!YusYhWY&J>H!MeEpc$hyWHv_D zG^~(cwywhp_?^dZKEHLrwB~*;k8|J$X08+?AoiqUjx&B(cGm3jX13>rk#BOsm7#da zjul<m$n4|P0(Mke*$b`d<9|Loc@MANInb+|$TywBS4cT=pj}>NcazEv@0|7UvMkAM zJ7%XBNy%R6y;;TEUFBNL-Ym@CY(4UzRsQJf?CticB@(N=AL<H=jX~2(u(|NpcI_UW zhPU=&?slrvN{ANKIRm*#9;P>9YJS?^?yks3F-uR<?rN9wqXBTuX?)1sUl9xF2ZSi^ zJrt9}9xx6Hz@sx1jGIEBPCG)03tN|IL2~Z+F#-GHQ+o$BdB&PU7Au-V#oK(dzGKza z_>W_2q?wLvfe*AV8x2~~RkH2&Jy5~iEsLoD;nz-4o*lH!P#!)`j56<SF_q`&b5m8H z$ka})-4K&gveWkqF;-H4Go-#6x$fJV;hEDF7CXKNe$cV9ZBC7;EU9hvxP&CI&*VJk zQR@&mS^rEnYOFVTgX^`pG)qum(5>MkWHqafh5*cG1BIxjT&6vZ$ulyso%!!{x*#X3 zG}cFY;mxl}eqcigYO_78Y{ouFx|NCGPqE%u1xXD106J@<+=S@|bP+(u1_3V&-^|<8 z3F37}S8E@?gbh7frVrI*MtJ^no@a6rGfj2_%%^$_Z_=>w@-f-!ov%M@2eZ%Y7otDo z60=gDZ*%V8^Mo|e$)abn-KwCmZe_{i=@m!G6&MTBdH8YI#<)2Uy68xj1#5#ZQbLxn zCU~NbR>i}GKe0H$qSZv+%YE1GSnwMV{jb`Q6TS~*kOa!Jue|SGGl+IStj6Dcyup}| zcE#JA73Z7%u(sXf=I7`<$!*TUlhtdsm&*~L?LdIWIfTB))^j7D`DPPv15zOeRQ57r zhX-UVX>7dak$qn-hs7q>vwx~xrm=?%?{pqH3uA&om^D7cW*D^Sxj>r{@9?FfF%>P= zp>+3|dROx3KyAl*-0}jJk0;YvCvt|X^rjbe&PhjEF5}hnGIy|Mf1&l-csI4DhkvE3 z|9g6PxO$VKhvgUUM-R8qmxIv5rUSkDzVz^<wfoUSA4&f+diXbV#Q&Zieu;n;IJY>b z;S=0O52yCaq=!%UwDfTJxd)?%ScrWUj3GOkE{a&F$wzdXs>Y$grq06XXRPYz0U<N~ z94s1#zuXaiM<)v*w$)?-3BEiB`DOuI!*$4K2A>?hLVUxJvKf0bDZ$&zAYzR5C(cxL zRAvq`YOef2h{#By0#&>&^KeSQ8+;yakgQ<nLgs$5CqK!8XR?c0lZX1Fn^;Hi<KM|a zsH>DGy|&<`W32|%htP?;gI$}0i`70mE0?1M9-6z`EYx!73U%EbZ0&4UpG=c@(EC=p zYbM9%PULhe^(&de!p-E!dd^G^|4W&ZV<Yi##Ari9oL+``-{dqEN!S-r{lfpWJ!wsA zxZ7;6=lE{YUKBTacOKUbFZ$?sWD_Mv9AjM92YA9n{;bbUc608+BvL>kW(G7GuArHT zE$4DX%R3~Y^I;Wz2&!mFZ&o6Rrj+d$YL4dp>RHp$QHxAVw=W$|OPnINrE#)<4X>{K zd{0`MN#RX<Q~Zl-gB%+n4rMO;>O#YU#72lisa2#uej~<|bQCRYZ_Dfbh)s4dS~GwF zL4~MAwll4m?aijsbbkV^?NyNKb60_|YDI1`&$+ijq<n>Xeo-iPvKuK@ry!h*-B62Y zWxjJKSQm_WFQhDpvi0R%s7`i22{o*A9XmY<>>8Bmav%%Jbs~y=+<TcGjCHfu@22}| zCTbapdk2_zHa=L~{$!{aCD$-9ounhA`-W+w`-W+AwU#aj%IA?<hw@WaV@Rs%1nMn> zf*H(uK2VjVOqE?bR!~|jNxl?J0N3a>OKVMFd$A*hR4DfEzukavo%1_3p@TbxFECLP ziA8jg(UVDfV%22b%VI-}1pkMxw^vlPIzvebRPU@j)55$9xB_<;ik@twG8$MA(C4c; zi#ul+c6$k<!C%Cq{_YRP@*WXLYZ@w-IFs2<;d1!ARj4HY&Yri$?P)M>6}bjxC4W7d zPvUt=JIm^fg59Zr{Z3$6Zx|yqhVns$BW(D504{k1T5|eKhz8z{mLtQJA%ev^cktrg zCv$}DR?%v!y_WVd;`@lz!3(3Eje8>tHT4;|lxzw+8&HTeWYYK}iH5;||3ukv5O#*1 z>aKr)uq-wu*BOQWT*CfY{3e+ZE0R88a@<5Ra*9sS6orD%JH$@DI<2dEPugY2+q9pO z);1wC_PeZ~|GW7(cIbiU<0Rni&c~l~W(46gpg|e)aoZBX=)ahco8TjYG4InFyLR(& zDg)PHJ{BKErqp~qPY-rJp6I5h=VO6+_y1}>{uryB{}1!=5H=d$Yd$V-?l>RklaetX zrwDxxIv<~V{y_6FPark(@#Eva=X{*4^F`u$Rdy|L=i@8K{%_{v(Hw<(!1;Iw(c9bR z<962D?=c?}%BJ}^AKGt>FjMn!*$Z|)?&5d<`S{0U-T7FMYv*2mdVy?lRu<T_?@*I< zoR66nSz6!ID`2ogv>o<KY5v#s?+=<_f(j#cZ>}_c(5w2=*r~+Xk}eTJ%Y06D4v$Oo zSBg$1MHE7rs@=V&3|U+V5kg4i{4&por*hlx(6XHCX|UnPE@D@r-PzB@<Hg43Qf}ol zrnuq{C+ABL7Ai)i{hXE~Ecsmxx6K`9$GV?}yA;iQF)Wc`-+pa2atcm?PSQ84MwNIP ziAqL2jp3iO84l03w$;Y=*fg60SPbVlUjb+7N5uvrW@2OdJ37UwYA5=tt}v~o6eMrj zSQqb}e0ZBo?hoCqOwN_<sWfe|e=c37E8Ii9tSIZY!@la5Su+yiY+ZiL8HS3`z~>~y z$MCDg?V5JEP(bY>q;Zp)R%4H*+#Wn#_CV#VI)39|=t)*EVC<hiW^q<BV!0;2EVQy* zJ9JMHex==a9A%>SxB{53w1i2mIn;cGdQ)%9ql|ZZlS)%hyvN1Qz|$e?*v3Mdyu?lH zX%l6eyiV!o+w_u$>|X6GUN0@ASm!P1aI(Pt>g-gq7OQS2YSvg~c5^a6sasaOW}W__ zTS;Ahb)=n0pR?k%&4&H-*`w#%-NQ6$v_|NdT&(+t_79(1dDMRz-F)W$;W>&l<MH52 zW;`wyr#Gl<#&?<fhqv7Q!#-y)Lv04g>>rLnJj(uI(nUss@VZXTdWB8%;mQ2@*~#wy z=m*#onEgUMI|a$ZWMNQmEDW?u&J_H@`cIrMdc(f>6Q`z^IQRq1U*x?l+CmXFhZtWY zIk`_FRyg+UFd;b#8_D6TxkYLHTCl1(E9}$3E%Lr*R^VOP6yk95S=q1?^K;7j?hYTG zc!!}cYBf*3>Q{Ntf%at{JgdSj?ctrO&}i9$+jTr@!xz-s6y065*~*u@Tlw-3(|#S# zm?2A^gN*q9qWoC$D#dc--~p)F9r*}(MGj_u0s@3Q^3c6;QSzL&9?0JB!Z!KwJEv#` z3rl_+ir!)6$Hg}`R}Rb&9#gQD9KT}J_ISPSaDJU@zf+aTr`n2_d|dW3Mqng!<#-uG zq1dp2`5^*C>V51mg#jskZ%U8UpfI4td%~X(D1`H}%8GYSx|Knx3}^`O)j(KNoC_tI zbOR$>%xQzYi!n+l^BmthA^nDJlqA>L8I4M`@(L8po}Z(bhIv_Nv_P<?zk^`y4O>Y4 z=qXL?M(41e^eSF5e2BJiJx+(qv|^UNM=|MA`|Wn?3HlG?gT%2P)rvDDdeadbM*)F0 z2+cVNKJN0(8cqSiz<s{zZ495qKx{V8Jd9Q&*~`koWa(x75BM(nB-NhO#4N?!;|UEX z#4~)X^8rh-nbj||E5pWUL*j3gX~qZnpEc!Eq)ui|18q)#!3|~cDH^SI5o#H)qk^9I zg2l_-@#6RcjM$66(Rg9ZzNU<$31`McZ~E@5B!aTWY(rTrG=wojt`O0i_+>+K%RCHK zw=z$c1P2_n+PSvRS925($rBU`yJ4HigCS20+#xRQP?VdH?=kbvB^@2;M#pb+l4}^f zJYXjITFG%{Oed9?F&�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�jlHHh^7_Bm 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 ?jc*yO=W|Q2 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ΜNBUDx%<gDsbCI>Z;@65VEX2P=j*kDjjUGv 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 R%UA#(t!K;3@DKj){{dKjU?2bh literal 0 HcmV?d00001 diff --git a/lib/windows/SDL2.dll b/lib/windows/SDL2.dll deleted file mode 100644 index d48b854b200e634ce940777fa92a18ccc6db638b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2494976 zcmd44eSA|@@;{!m4Ybg3Q*5NGtrTtDRt4z-N(J16ru0TqEP?_8f?Mr^x(b-MxFVKK zDqQbItE;Q-y3am-)Q`HlJo(hLKw402L3t1#%7c1iK#C|7Q1gAyoO_e>fv)@gegF9J z(%gIJ%sFSyoS8Xu<~+3W+Imx}$z)2y|FM|Kv=&eL=iuMIe`=9DXz2Purq?pw9k$l& zd3V_K1q*M_U$o@5UoN@+SNYY~-+Jq9-uz$On7_n#YyQGp^Ica?%m3AFH{3YFY8_CZ z7hP3uGTm@*rfF2igEttpb(lt+J1`}s$drC2DmdR{y1-=0KLe>Y!l<~J=;ikmK{tI` zO!%OGF9RQqIp?DD(XRPs<YchOORro={1JyV6q>%g9$zERH!T{0XYKi>9IB|}Jk#j+ z2}}Q1f4(U{&-m!&`P|v2qF%s{U3R{yKBJce9W=sw<5Dl)bNZvrL?X4FIwk4fe3NPZ zh#Ri=5}A$_)HLAy7SBvPlm0nOriKwq1mfQ=%>++|m`r2wydTe`f53B$SS0YcjcBWB z2M{*lne@*=cuNJ|lW!oQ6}|Tso=@PJ^v^+fzqtK&0@;f3Q(s80J^s}aeK(5onCIZV z=@&q|wky7a%3CP#xKGeGrjfvVqX%BYh_b7uBgHh6e&z#@#Nl8sc-~tCeT272$NQ=m zyd}3UsRjzm0AzvtqN6vw8*jM{h%6J34bwTu^i2=EiB#SHAOFcg>xp{`O_BG_XPTs; z4wLh0=k%**Tr*AfA1soU_bQc*b=!QuQ7s37RM)V4mR~c=YTh4qpKU5R^fpA#q*&UJ z<WUR%G5mZ}G<}_xYBD)v@5_qTAxp1}la)<!U4u`P)d`D{N$v0NOpyYcka68m{Ae3e z&NQv(a$05ohN9Wm&713-<DA<h4Gl26{3p%6Pj8gfv_k55RDCu|k<~@%C5KSw2&&Ug zbjziiq`(7IY*zwCQSJLm4$116BfC(4KYyoL)UWodYmfrVkVOYRh}XJ9-np`BxdW)O zYC>MGwNla6lQ7B3iCC-OvTu2z$;=c-+_6{;{96Zz76AXk{efnZSB{EYfRq|(sLNz} zliC(tfe+E1k_LHYYV?Wtx2)P9=gO?V#UtF0(6u!vEK);d)FXYCNS}y@_GhZ5ACVK8 z%ISiO%PGSc0P5qtmk;)Qx)aS%wmOyU0%f~L38O13RLd~Xi-yh9YQMFc+)AhNp{yLy z{u#5I(Aj&Wz$+--e=1c9Jc}1abB5CjP;w02lP|glonz9<kU3ZuGx8H#S3X0;um3(4 z1JC=F9Evv9)EnvAD3nhO|2>y(_T8(Me9hG}FNuO-f`SI0icBTj2s8+w_{WhS5+5ap zw5w20WG)C}KF90XBCxno%0}%Xrben84aAZ|k>Liu_A2m{jgf&2aG=3v?>~T$iSL@4 z5k_}`{}yEjItEmO=YRR3ODgyvE1Mw#tCvBAUO|cV_#i7EIiQ!@RNwU<DOSF+C1yXb z_<R!)8H(8#U4Yl!F?&Z5#)zcKNv^||n_%5ZD!_Hflh90M%dw5M-k(XUEh=gbG<bhH z-s~Nq+V96#-8QdHd*rSR6H<RAQZt~nt1R>JaV(rK)lt753#UkRG_D;B+q|QJ`g4I= zjDj*<s@;XpaxUt_>r<(yp~*!JrlOi`-b<12!(B{)p3ypxGq!++71x?5<0m3r(9njD z+V>pCnn1?ms9pJF#pfmm<ZZuMs;fdX>yAlv)LdZ<n(9%&)1m;;#4*p~tL_+zKNpIQ z)K$sF-^InJ0Q@Tf)~U+#;j_GM53;Ev(kNSHayAENb3{7Oz0%NH&_yWccPYa1GcKY5 zMLhemMCtvKi#YL{LTZG!0tp)4-=bEbV=m>6v3?6sU5htc%bYQQ@@~X;0NP-Mm~iL3 zMhM5GK$<Q$z<Ei>IRdIg_YwqslC3?xBZW!{>KN|<gG*TkfX=x@J7x*2x+N$&@<dk& zt{0{r5~+QCE|hofVD!nZ+ILb&P|A1FtK)dnNEjS^9SaZkTD1>D*`&y;{)}GIe$@;u z`h*7p(UB~a-`+{B^JQzdevrbri-8MzKL*_2V1C;S-Y|n!SvCW7tjX-X0Ld>K*^XZ` zfU}Jk*&Y+wlpj`Ef{dQ;9S-z+1^SsKE!vJZCC)HVWVl6S@NdnB)N>9S=a`nrvEd5H z8d|Yi^mVC`!?wyYoN|OyydzM@`65TQ_8P>7@ShX-g9QGHt>kB{vc#6MYH=%$;~kB+ zX<2WlBFoa>pqTxDq2WN!C-nCj-Nxu)1AW^pMxPAySL5jL1Xo#}#AodnwcY|G{mDST zeQ^ero(tGYfxgPJ94{DPgrROKIR*>*&Z$^zEjm6H)!2ThmUG})!u<D(m>~*euTDHV z#1xq>p@(2^RLc+WKskLcOedx9ru5Nzy0RH!d{)pIliqCc9~nBV)qAybEgEHV7B@$& zHTBN5<h-sg`PyWvtZpc2DQR%Nj!rRog4VWQ7n<siHJZIPXYKe5lQ*MW`Ovw2pDP0+ zf5_bSrMtA**A6RJ3v`onEx89M)Lq@|30fXOUgS!L7&bN~naFzbQ^J;qkW95`ziP-f zt)t4d?I&X~ZNw(KNn4nU&nNrg=jZuUFn&xJUV>H!a%r=_%P?s><N>g>9(>b3(jbEl zw%4+<MMkrSOKU94z>H1K6jP02RxR)KBUbs&RxKag0nKdi4wP1xnKzZ0O{>aMxEq?d zqW;Jfw)`2`^iNxm10}Qk16iV5<e<fjR8(j92g%LD`2Qc$*HW{S1{v^UtgK8gkk_Xn z!K1hes@zKRI!Gx#JOwj7K~I59Z$+AU7(8@PIX1b*xc|4}U^+6P`ltRd1ie@I7#?zP z`0waT*@rG!PXHxQKr=>S5YHTm8d-IxQ$hp12Q4>q#y1Msssr3iU`8gQ2(eWl%6fsj z7=aSuN-{z_J%g6vI)X-@+;D0mmCzv&&d?D$@u`-j$!MknZX0|P@L{AJ4ivnM6#6Gi zt`CS!W7V>p^+XvEie$CSCgTOJ)8u^ZXJrFS6EGt-N%ya$9FNJtMP_nJO5e+XQ?e1x zp%j>ltW=XaEgdX*<`H5}1octbsQPQSRDO`_R&L?CdRDV#BHKD;J4$kwe(z030oo>1 zv6k7hVgq$U+%2w$%6~2^Cn3FFRHj*>!+5`q-b?Px05h71uDXMu*sXl8&3#DHVO}&X zq)nJ5nV!W^`xI)EgL4WNIoFN_DtTMGwW<>+AZVG6!tf~vrx)Bp%&i5292C3@y9yTN z(>Gq0;)&+IP_PP5@U|Wg3;w4(kKw6}gjH4=xgGF4CDm1M%X;cke`ic`HKMUnAQzSi z4F+50Xl+|FOu(5F=?|cx52CHB9!C3y!5*QletIuo8gFYL8|ZS-eh1*xiuLC(Lj!Lx zYwS1b;C})PV$g03p;F+VBDGRat>e^^21;5blE&&uH;IfyIHlesQitiO9+66dNU0vA zMkeCNpx>i>37VUK51Oz4j_Gfr_qtyv=$`>}X2zw08CvtZ877`Wuz!h;@D?o6QtKqx zE~B&HuOH{mdIqIIDEsa#Wlq7;zB+2<>wR?;m@4{bp(OezxqXTGh8&zQY6;vAm;&X5 zTY2B3Y;-AGwb##uMEED1ha{5}_$&B?WX*COo~m^apxT|U*hz<AK7WQWQng1G7n+o^ zwBSUuV)+>FP^aY+c-q*4-2P6?Og7>r`U8zuHE!wF4YG2xjeAx))6zt_Z_kmHymfe! zvdZ$KFQ}=o(pO_D^#_2^oS3~36DDO73iU4accyvgs+QZ46s(FxM`@9l>_D<CAzacW z56PEu;w_Q@&4cDdhb1Nm3`I*^z*g)d@T;}F44<e&AB8cSZBi{~0v=8!*<*aFXN%@M z5sR%uXv?I1aTFu1m@mfp>A+m~_#z?!Q?g7}SIaz%X>zG$feCZ<KqqoSwBC9U0uUUY z_7J2hh7w8I7&PJUcxVS1H0D9P!-!u9tms&tFRPPbq+tM|IcES$?<2`N!60HzgSUJc zhUi7guFft36<(K`3X2BYX!EFL`E?Cs_axU&bdT>9m`+igN4cS3B#c85HCCOLgJMxo zWAtD8xDN83A-bk>!4^BWu)%wtp)bIdRY#E=ChG??GqH%D=)ce8uw~zEkRpPs*6nzu zLD{AiQ-6gmZy9O+4UWV-l~B%*75fu}u2_d-LW!}~AshgSh*0dcA}x#3FyC8&&-i$Z z@5Pi1=^V;@>yy5TK&5|8iTQod@?2*umM9PO3_zioTqj~FmOo<Jm>9tI*vnX{*h`Gt zDl0qJ5i8e^#E<qvGnoxB^!ye8x$f9nicFy&I^<wQtYnXD?vNE<zVr}z9><T#N?7~J zizLtG+=kh*e^XA4bodxL)K|pz<%qU`N<{-DDQl#xUXA{*!eCLJBm0}oa_Olhd!!;J zMk8l|Slg74e|UI@v<f&^QOso{cpuo3VTx{zx8H~)ZKaO*g{;m>Cs8^po=yXeI@_kb z&ou1u9hTMWatLLJ&<7*^wM6<L?NV;h5s-s`QRHzXCCX!1g8xaeEKnc?{!Cm`-T88G zBH{tEx!EB-w2@eKL{=pPtF-6~;Fda%$dm%h8N0$Jt23A@;9P?ot`IV*%*&CoDu8&% zw~#2lp=2BUHDwpINA@?G31*Q?zg`lR!wwrtLb;OmJeA+GeeZ{<52*dz0OB$G>mVg3 zx+=kM)Sg2{MPC)^&Kb^Y;y#=Ipv-b36)%IkqrB%<cESpCyKjIHdDQFkWi_L`<d|jw z6-TAp?n##hhhajOZ>&V*E3H!Xfrvv=U=U#|Q4*A>OVFXrgiOo>CsIAi=N|GvJgGTy z@g}+SD_N@e)~$57&BwLxJJ1aCDB1k$BDwfmVW`mr8?`u{@|LzQd7Iiqfb)dIRgoiy z%a}h>)+kv8x1sG1ptAI65b>7^^p%{WHEl%6?A`cUL97&b8(eU!b8VH1&*To53kK`l z0i&g?d(ySbpBK#TDQ`Dy()rD@Efs-bB`x5+Y`9v^>zwl<x5DNd{UB)_|APQe5<bne zy5Kj}BqhVJzWqD0&DOW*(G4}SA1o$0i^v#W68)RhmqjIq+{!y{<pV_SbnVH|JfOj? zdJ7<SG3XN_A#**-p+tUJodiCg16`Dho8T4n%Yg=?gFbabFwGxpa}J~3>K!(@_)`dH z-7()*Pw^qQnpvO?M#+fU8uG_c*qVAo@%ARqx4O``M^@gA(<cQK7V(Tq<)HS|bHw<V zZ&u_90Ljh>x;)C>o^-j*AAuY#^cBg@b?I{PT)5)><kCs$zHH<pTZA^j9x3$hgY3k- zm&&RSJUHfi+N13E6hp;y2~aCdS_RdP_Ufvn2b60;38Z>Iib|&(kg~RDn7*P%<Mu<? zs}dMap7Npo3~kr5C{7(HtG5?v2kD(hcbFdZH+2kB%rNj=en~^ZmQ&=<u;(<sE<m9) zBU?oCucfS(0g$9E9X|kKa!bJi^ii1Sv9elabE69pJXd85thZpg_D~-AwM!>qA~J50 zZOP>xby7|xto9f=xD?~a6ri1S##+gcp9@Z<BR};yG*wv+wuM9~9+X1k7!NAi6oh-= z1l^IvAp-DAn0NFSN>7Ib=iN6%M?KGu#X*QF#eoeh7epBIZ*9#uYJmNyGQ^~&gCUp? zRe_vV>VV|QCCLHduLQn`sCLJw_n%1n^)FGD0~ISRa&_8$vbi<Z9`7Hh(+8*~@+AA% z4pOhZ^!;$+`&aZGNPOQ+-`>Rco%DSJzL9q$z0c${>WX-LbqBgiYrkxONws0>G8n?N zDV21XI$gKRRq3AUO&FfEbt!1QA#GiIzn<f3YKg4giT-GlX^L<;Y)U!&%KOLQ#R*ri z?W7bKMeoYjn0?I#MR4fL5jbi1GR?nNa{Bj4((26gN%y7MTuRfb_iCKVPp~W^1yYeo zR*sgJY?D@h>QwfiyPXZuG^f8Enf6N)k;^pczU&;AvYm6yO7Wk>;>$L;R$Rk2ITW!u zl`RMm^qnuwe-cjj-$Xtq)!2ZnInGct*R5;@VL3!3)fcC5RzLsAG%2toxvu;lQ&+nG zq(utkCFd*pG5H4gPxg}n9J3(qQQJoTn0%T3ll`T@4zk9WMuol_FB&)2bzj;@a337M zZ+tpfK5LNwWV#f16^KryQ&vuuv^X2IH1L`DEv?SYnRs8OY1PL-b=&+WGo--%T;?g1 zC#`<ZscfdcM3)k)^uE+f9_&9kKnmO#N0&oUbPN2c-AN+QHA}Yt<UlDfR%CH1Coy(~ zqUew>(ILA)h>eIshve!Mo#{WBDTZ}W&Ml0hH~Oq1$A8i)1@=NG;#trUeP%h!e{zr% zcr7^#`k>D&x&D)q6yN}ha!L*z9$(Vp4o=NSYsTJ}IhG_^G$hTmY9q1soJ}bd4QT?> zfap<=vN`${UQ?nPe$%4+@Y^r?5q{I7JMfzsZN=}P=w|%dq8so#IQkZTv!iSAduH@s z_|1vFfZwyCPvbW?`ZxTZ6a8b{-X!cdrnPM}70;KI4>bG93``+Ju#@D*-~I!++JiLm zDq>QA))Hm^VZ?#Hgl8nT9Y);ka&vTCy(>8NZD%b+{N9Ivg0H{&BQr8W0QHk5hMcQR zZp?uzOGDnPJW2z+$P~F4Q^`*09(3k_ptE&+#vL<)&bP-~?x@r=mo$X-rs?^m)mNAS zZpCNDuOCKal}dB2a>P)g?|*Bg+jv^HOUg=3vf{NM#1wS4gxb@hZ}}saW;92<u=8Tw zDn1`YvuQHo(*4O#kVkvFhML>p&G3J3mhRmG5GJix{DP)Sdwhc<&oW?kKE9;DpZEh) zu_IcJl}0k(fpIt6q~AUQIOdb-?$S>05{ze3AVQeL#CCd7PI?fx`Ye;Oc&EZ+%pq(V zyroDR5cF}^qqKX}`EXBV7}^t<r^aZOnqFCVz;}QO@V>!4gRvUXheu=hfK#R1m5#_k z^p_Zy){#%IUH3XAPzcR;CTyGtq|+2WE)PWiOwOK4ZU`4A>&2;-Dc7UzqEz^_?5N91 zSw4ahqmjZPiljotJRI|FiZWadmPf9_4^g`bbnu7aKNJ!7Y5qdWrB&PrGS$5H`BWSH z`#nB;g!s#Tmd<Y#-?Ga5es-YXw_qGx=X;PwuEQA~%w{pmUkL<C1n5HIFttA;nlI+N zowB-A=PMi%ov&!S;A<`@73~U_rK4Dr?#hd?64RKtUz7xa-+=0U4@ciL)}PRt!PFWw zr983<#TfAbBGbcUhP3tp2ARH6;?m#NgALuPRk`_I8UC7<e?ta0i@F-sy+&n)JqSuv zVocA7zCrDCBSxz(LHo{t*tpdz(w(uvf=|bM`=gK7>)jQfzdO0Hk<SpzV?RJ&KSTFu zuT*odTrrP&1vT#R4UA%nBM3T6?~7ct0kmi&JZJdtvZZ*fGKLc&Y2;6;cfoUt15p3L zA~;fTs?L>GX9c!-&n{`GJvq{w4Iim$1p+Cvxj^X=3^F9J-Tke^{CBIeQyU~meCE2i z;Mk(q>;8<ObDB=4H^ZRwkarx@IYwH2wFv}VA_yn}0q@n4uM*LAGID|j5hKvcy&1}S z$k)hig8M`>+r)GwX}^N7FUEY;g`uss6k)D$G{%wNbQQg*dC|E-Or+=yLVpC^GjzJ& zNZ09BCqs-|ygx7579Grb;e->s8FJvgh@9bZrM`pmxP|Gy&t(-UR6&3$P$t?mc`X*t z_4Sx_q{P~!H5BsSfZPc23OcHZ4rQ#YEI|AA__8D0fJptv^hkjweCjk637QU&YPsS6 zgODR0r8-Bu=X#cy92CW+@9||ti(zWWukI!{2l|V4!Jv6(bAMc2sqC#(+M$v(*^7$| ztd-owU$$R-4|*wR9Zrw9MT=A;=16=A+D9NE`iWsj)#~)<Q;7}|c5%{b5XyGZdlOl} zYcTxD3M^oQcO*hsGv<I7-4qdK4;D0T1oK7#C-MV4ZA<~R&$+za+9!DOv|Ha<68Rof z!D8k_eho}4>>k25%^4GPKaVU)0u+~THLq<p^#~18EJS;JnbGTw{_q;|@kGBLCm*FG zAEin1;l-SKqK!0+WH?d)GFbj}Koe0NZLinkUFw)Jq6X9RX-0oe%9qtah$~-!1nskb zQ_oLH*FNGG5%S8W{?OxL8wd`$I!x?d!$@N~uH_<quL>%7s$s;}wydK7h^*|;{`eZ@ zZ1CpE3i<{E08PbG(HF+-r51>S>u5?u{kqGRmgMzLhetJ&%^d4i9X#S%qVUL?Nquy{ z5qEGVQnq<BFa?&C6tcPlh}bZuCLo8pP0W{IucJFy56y1O>tF&0MbE>xCy2#D)G@?^ z?N*{-cWJ9nb1UXZ16q=7EQsHNKJ_PZ7;1<b5JnRFznE|7+V8maB94Z-6ZXZSTAF8p zf9iw>`<-usTklccC3SwDN(oxNxf|M{j>dfXh&GmjSfo=;+Hkyjf;XgENNOFg68x5e zd^hRuKBQyK?}25=h`}iJr!))Pt(`)E1#T<!YB{9@t#{+$3Cd<|#Z8nQQ^rtir)n7o zVh}o)0{4LcUftMBl%V<+u4cCu!js0IL^K<AVI4e#Sj;{*?R*R)Qs5Bsge}pTV)=XB zH=I~xIUf~IFBlJLdk0BWqy2f#;TsUPya^DdSHy~YfyqkQ#lKm=F(T`Oz@z12*toB0 zy)PemF!yPQ*)IkM$!D2@>d?Yx?;2u??Tp!%q6&X!x>R?GfVVO{QiQLh@^@>yDA1!? zOA_UO*tPtfAdAZX3Pu3sw~KPx@l_wQ59V6>d58ErhkA?rotQ126nL$_Av(gAk7g8N zFEiY!0>E{<hGM4b$!{9T7RrY470Xkv0cJvAo(531zuNvsD9~eh0tq^_mfFwws`U{9 zV|dBM=mGVz)ZtsR{fpamr%3a`-dpG5J#5+ex!r^iIo?|Emd0<d<BgOgY<UrHB+OKv zO`H7()El<sBP0Fex|8f3tnE*@d~8G_eNbcsTZDFgqga=qD8;&ff3L%DQ`{a|_Fsbq zsx8V6QoS>x2>k~{`69D-NNJAmsIn-H>Z8Dxk<MmCoAfeT1})u-HMBocK{<rVmc?=( zzV%$J-<CTGfLg54vuHeI;=EF6y6>p!NCS6ksbbZ#{xiGDe<Iy`NVU9*S2TXVYI%`? zDN?!R8N87{ME#>$3%Se$zwP+e{zg=()(ny6I}o<qicEsh^YJDaeHGpWqg{AoMvGo% zI+CL2D-Px(6~ZtCc+4y8eyvpAkpfW=OyPx<`|yGuc=T$~!XXjTKYhIBc1nRgfQ-xW z9Y$NRCH1#2Qx5-x>Bs?R<`Sv^k-mH$yEWc<Kn~Pu;XtkWEwJ@H2Rxg?o&&`8Fk{*H zzhqTtE3Nl>k(UE|A#EAwT%ILYH@kz=2gPbHLnxu0DpjrR)4`;(AGVt+l_O520~2x8 z`aWPW`y~e`qG^4b5Y7UEyYwq>h6lE%@+Go4D>e`(Xq=<asT1N5-w>%<Qjphw3ZalZ zsF-Rwz8`&u`JKdHhw$Y;Mg8{$-Xf%!V*GO}Uy(*%4J=eVi7H<4d)m(#F(|u?DSHCh zfKW&XwLpm6h8&P9ZQ4VukC{k_tV6Mg1F-p|)qi);HRy-hu~w<BAHFtW`z1LVqF>_s zVMqoj`bzs@N?N*ahWUm!J0Y~$b-+R29UQCYYUQ1(@r+es7tQPOjPd&7_+(|f<Ewq( z3ljBRI(qrD`@kmw?_U0eec)Sq!9RtW42?2lh287YUQ(s*<!|W?UnhB{V9B#_6zDJX zn$|lv?4|C*n%Fk}th@>uq@*;}V@>usPO@JHP*Ximuj*Qs7x^P*rMay$qgiPTolMDS zR9ZuwX&J5bl`g()8LfzJbPKp9#VdlA*i`KLEIGhi5-|Ot*hO2^zkiu*hP$>~%SZo| zUhYd*MmXPKy8zfNfVtpR#~sdY^3bLHzb2Qj`<=-Z(7s5y^m6Z6RNLSlCA0r%R36>K z@)P%GgBB-BXMc8!@`2p;l{(J<IVgw!a73#?!Q;kxbHHDG5zp{c$7xd-?)y@?kl=sA zSJJerd-;2-jPeoDLIrYi4QW&+su*gFpD2&^=b~KTX`ewdkc@e(sA>!+(X>^c;u+&d zQhOH1>+8{;KcKiodo(JX+e7QGsO8IG_Qe1wXK3#Nkkq7_daS%8jgB<lbOF>SrxL%r ziHnf8j+JH@r-x|@-5p=}*CN89Yz1P;Hr~$&LwpI=c#qaAyE<0lBmq2;lli_wn6hmC zi`~?*@*HwZ855v20O@$Xj`&zvi?*1A8=Ii2d;M5X>e4=5f=RN+$*I)7bz~DFt3NmF zZnyQ}u^#owg1-R;g0)WO=XQ*8@P)NsJd4qkBPCKGOZ2pM>p_C?imVj)hS9O$9lSC} z?4k@;j0FsXJ?#G}PW@0jwGAG#axrYU6aB3{5hQy)mvAs2`xVW{9OSgm!<IRk2Wtbd z=?u=o7cTYYvE|BFPX8vecOoVH>j1glOKlzuf192mIw&sZo#XUxOkoH7B>Y+zx#RG{ zeM=AusXcoDbobZrSFwCgbt>~5vU0b{spb|0%gjzCtpH^G&y^sn5M=R^4KHPhQO-FJ zyFaWdCHG^hue50sm?<Z;F?jMswF`b^%4Y_jOSWlQXnDkp0Vt`%&|ZbYS(Vidk*V#l zwDEY+dx;dx+B}$R{C!_6R@_v#=bnMO^?^mkuIU*U%fZZkp6VtY8hNfQX}^P*5Bcw0 ziq>wy?(AH+t>gT)s1hL}b@C$46uIPgc4Hlzr(}uoynFtS;0^T5ze7D;{%-PB<WU!5 z+IT(sV9Poh&a_hnv^IEGl^nc%y0#pp%fXvx!X7G2WX%4jO0q&Hv{4u|AP2X~{<~z8 zOTBBf6j%f)^r*Mbr*>%5Kmxf+0|nka<w~aqyOH2O;II)PTtx`#WEmrl?@mwY?enF; zJQibY_nN|$;AMhd+eU1QhA=%OttqoDY@j1Uj~~A)J(y|I2L6fa0qOvt8nb4@5rT;5 z_E1_q?c&PnF!@YBX+^)^$!?0nB*@Y}TNC#SC(GK(w_wJ~vZddh0W6a3NnE|p<x<Pg zOVg-@vKD$1dAiVpY2~s%idJc5Mj5o(pUOxPO?ZQe^?3@xw6bj7M|_?cp)_j0LYV}2 zmNs}ZL9;{zFL;l%2~E5dx%lOLyzqe{9#5XdHZ$16KrPn<ydg*yB};X;0T`*lkMQey z5WMAaIBgfk)05%}V#`L%9+`|<gOg{nI|cnmbApqr#Mk%OD}}G=P^Yiym8c96zB-u} z%)R}Qu<l$)6p1#zE!u?&Gibi{(35Bt@$osdnRon+lKrpOLk6+coC{jO1*xQu+6{ZS zbfF$IkkuIHg7$@1U}lbEZsT$reQ(O)v_>kz*l)ublI(96`CoDHF`&ZTe+osI)He#! zA%K<YBCO@V<5WJVR3I-~q`=4w+AQiFq*?}mBI0zvbYxSl5_4v_=7tHXUWM~j6_}qc z+ep?Lr`t+U7*1>bAV5-J7`}rQ<|GV>A=r5y&+|R#307dWCk~;xOt1p;yf}o8Km;o+ zNf26_4_5R`g8Z8y{gWX7WJr1vgx0)*6&XnoT4xAWU{<Zy<y{=CfN?Xvs)H4oiLa}J z71qR8g+FHYA?Jjvzzmaj1m^GW-2xl`!YAlA)%qE+X#Pq&Y3Pa##P!5%1xorBPAlm1 zvLNmJuG=F9EZVmuxpqMsv}x~TU|{G^+<z8hW{uN-Pnt;zJP9w&DXp&PN2ha+gP-Hm zrIqvg3j`cL2>b*H(wfQX5d1WyvG()BHU5(}pb`oNKOSxj?d!j4T7UQw(6@deY*&4$ zQF<w)lw~4zD+MM4v7GiVEkUiS#fF9u4F&ME5i>f4Hd3hR+aok8N_B&AY8T$~jtZy% z?A1VZ=^U(#)m;X{01oS5t4p0Z2gjSFI+6(_tWG3UAz_<TN0NwyrxFP=5?Z9X!{8JW z9!?}UkbtV`ATSdAdcr_eo<sPw?FwLT99%Vr%70dXZ;XQ-bEptr2URWC=-~b;fqlzS zz~ru=n*nlk1<eF#Ojl4jKo{ts3>TPDj&-P!0Olot^8q~II~zco07`-DEMPTrE-($R zkfpb7hAhqhh-K+<plR84Fk3HS?i9BJ)&Yd`ksDTpI_N06i{gA+q8TPW4+;TsHLfb_ zN0I}<sQUt$QF0dLdfLeKXQ~dl9ziapQCibngXWKstFe=|QC`@vz48~f(8-~4sPp{d z)|(qfK!UK4`aJ9dn?sEM=4~~ljZ02QYc|&?)6ygNGKDT~!{LRfX*|`Wdu=0$#GqXR zoa%f9VLa@3hiT!h>Hi=J2-@G})Dzn8_0(F}dSme;X#ba<>O(5E`eu-VO#jfq*XdxM z2?XsA>EH@cmJK0jDr>B$=`KCBSWm4NHJv3=Z_rZ*>P4DGP1AMoH;54u0iTmx1??^! z{IL$+P6jh*FVVr9bnse%eU1)(Ne539We?K9kLlns0{p`Q;@1gng$~XZ;IDM>O*;5{ zQRN;TJWU6u3G6L8c)SkYFR)+N!G$__hX6mXg9qv0w*g*jLs!(-VCTDGf9h&6#7CB( z%M<<@By9gL(eJJbT`q5iJ)+(o6@grydkuPk<Wfo14O-pBRK`{+gXe$PZ|o8l=WEdq zTR{q09RDF<as04P(48B~gvEhr5r!ggIpM38X^8}3C<28dVWOU(8w%b-3j9%VFdK@% zabYM5;$Suufp!75cLTQwaKCQge+lsMiH2Deh0q!}s?@rH0|LBT2OEaNdmC`yNdVb! zc&`QUZ5`O3jfS@Zpw|+3Y-+tf1Mryykj*UCT)<xe6r1)9?$yPZ2J3J%M0>UtE=$mQ z8TI2wJJCIt!Usy&o%e49d;`IUl5a#>uo}5V{~>6ffij|n2EPC2?CD>Lb3^;Iw_s)n z|90+@doa_A`93Z$iA8vG5eAS&$R7fM(a-e!EOlLkjvTVc_izDOUN)8WONp2g^o3JN z#th-w1|Kc57!rnd|Bo{+G5TQiFbYBCh`>ZTMHk$w<3wB-2r$a{+9O}URiwCa(E19s z`<)$ZlP#c8tGx#{`D|1n(jUJ8=`SEX(w||qC^MdKw2N10d1R%)uS=cqZ&ZfyK?+c~ zklFYzBKHsYNz$iktdO<J3%9W;?u02md46%@&D&s#vBmD*_fZs2{*8EsxuK@CmF#gd zn3f(nc03ka550{=GEl5X{kdwLh-xtf$*82N(=oGH|2NPn_FG>5c*0u04#f>lGGjJf zrSvapz;5hRqW+NvZ0Ezaa(qv=DHU@(%G>1LNLg3rXrCTJLxNZ8o^zY{nl3!&CjPQq zgylRO5vg<F>`R~lRjBrV;~g6wtkRka8-^dL?phGV>sKdY_H0VTxz=TbT9ICw>K!bC zVaEb|V$bZgD5>Z{a(ARPGcwV7?_fO*dkLR{pkZK2Q(C3fllx(^I%sU0H%m{){=Y|% zzG@m0HoK^LY0Wh3r9%-zbQFY<=>n4)7ntdk*0f@Ism8gYJ$4up)(N+YT0m}<6VVxG zsGYnj*Q&Dq>{W%}Si!3Tqt1}BW)$H$+a_hr8;jvz1S?!<kV{%UZxHI9k*TJVKL*z= zjfG@7s-?pzPNl`AeCSfz5E?Gh@}7oBDHWJRLW>pvMfTs515R$it9s>VwIaJTBuf*U zl`9u$C67{PR?KJIbBTYJOMVU=P?miQmip$D>{0ty)*YigV^z|_O(-AR+V<P1_B!fP zOyZpDs_?Sjfgc1hUaf|JzmEMJP=+Tv5Z0!1RB%?m)>dcJ;$j7+Kp^XER0S7!-{nw| zxyx{Ns(+*t3xB$O5cHl6dP`a&baY9;MW;rtVQq84$K{A8Pvlt7_3ve*DnwUV5?yB# zUFQk9GU2C2s!=S$T2=1@S+&k0Lf*fNV)Y=yMSLt*+R&3OoIA_cHb03R&r-QT>#|>< zq{ueTb}nW6Gi4i#Y%~D39^r%xN(fNGP$X#A{)Q&x6`1ZpbVrbr1=Obm>L(L`It!>M zdnA<|MA;Dyn+9-&!7E54-#3s-28uXWK&CAnKWbU#I#WLMFWaQu_YM`gaupiPNF8`V zA7M?{@fA{nb~il~7*mX^AcW<s?l1@egQIwe^EqHRb`l?hv0BrtT@nG`5jTrGf@p<v zEgJ}@PWqSVS#a$<BK<FD8yMMtJLviusOH1dkxm#DV3-MG8MQuWjm<~nUTy>0K%fEe z6#@PV01$VL2jVm!M!q8L2Yc?NI&duXdLaEqAiYXRBM7MlNK7*uw#aDW4)R<j=u!!< zUsA1?QLT?4&)R&nBQhJrt<A5;+f;sg5N{RywgPVx@Rk(*s_7YjO-ki>?ElAaBc2wV z@UP2A_fE;dHMQsp!(P+AeScHB<~@v7mVQF#i}D)A(MYw&*AM$Kv42`@?Z;Tz;_Vl+ z&!$8=95-&V&6}Z(e;7)RBX8O$dcnN$LVDud0e0r+-9xxx%Pn}&zp&+6{f$abk4~U* zt9$vUh|EO!AN^i0e>=UP{4Mn4^23(1;{{vvx0t<&^IH$#p<TQb;)7kN&8VC-fMDvI znAfhY1%wXuo-l%jUVw?;9M4_~;eHj!Vl!LGHf&EoRM*;c9XY}<Q`#oTuhN8by1pT* z<wjt_o?VTimWrie*pKxv0kL(aEQC@XuTL?JH~V&wp&OZeMAd{kVN75J#$x-xNJ8G^ zDj09l9$k@QiayPD2b2tFN?_EOVpI=uGC|JaxscxR1|{Cwq$<znDy6!GAfiXL3T^f5 zS*=;iN3{{!n~)@PLVgx0Td=zq+YBp}W(21%09B8cqMwKvM2+@u4Gh`j{~_kP0Bl%< zV1sc!D`;7mgqg0X2BvpM62ZO)m`6B~gM&s19-YuW;vJ_a6mNn@tL7Ap*Sxi0(Ze-j z{eFQQTs$2SRkTVQ_yq;$d<eyCSb*N3(3y4|;eNmla+K@7v4~ru>yKzJBRb8XdjJx| zn5o0G`<a+Gc{el3&sdTlWVjN<&>_zwwA+JF$(E~SG?RbCRdA8^={+Fo-X!kfzK8DT z&sIAnmwG*-ns+*6b@5n~FkV{YL<H<TcW~ZJBi4FnI$ueE)Un#`K?4wvTW*I>a>A*s zB+-r81D7J?7_6wGE-1nanhz18^&Psppr2^)-J~!l(MlQ`Xg@Wjj&!TH&DRd-&|Dh0 zv4=$)g$X`+1`k{dh+Dmq;>1#29Wvo#k@k(3Mw#8(3!KlFS*})$#^!BkP;3Vy93=#< zTwxTiALPdDnV^$j_FSTei{&nnD6V@=fDUbOm55kA{w%p)$lHo6kqaS@uoLC9lkZFI z#lIuecon|g>Wul6MSK1k3`Zb_BDjMvGn^p-JYRcq9sFG)e4I}BQQSBL8L(1DLA*hE zDKNMw6Dp=8S82oDe~tVLLo(gZbf{eU9E`c=%*f|}IEy#QkGaho%W)aa{T~2Ou5{oG zJJXv3dg~hQ`3N7{4H(T-Y%!{=-h>#uW(PTur-3fYiykoSuh6gg*p{bSM<TzhY}Z!Z zjx7VY>&C{8jHQ&o)PwJ$XMh$NP2Vlp7(4E9c6|doMZ&Hg32%vnaE}D?OHtJ79tpn_ z2~YJ%5K|`W!#xs6UQm?3M}ku%Ea{O@BoeOgkwEcT6jjwD;TX%V_2)ejJ{AchdL(QR z33)vdo)-z3Jraa|SWk@-+|AIr>%AKkeH90mGRwUSlFY@r`^a2KfxnBAZ$io1XNy@~ zV1(vF+~rtd0iZO#V84%p-KbFz1{oV+zLLYpM}y-Spnw6UNDh(=`OwaW`w@K>PHKSB zFp(U_q&N6}5+NtcnCBYh?jbj-OSyYNJeS)*NieYa37d98y9*mN;e;zE44Z~$5mhBj zTIO9C6V7KHtR<+B*OAzL;8Mc=6Oy#@w}4_inD#U9P0ek_(C%F#Y+~I?kyHfLlS|9S z`mk;}y`ZS%7-qKKBDTEWb1q(TkfAO(K+~zYHvk<AV4Gt0&ymcB2}jb1!u$(bht0$= z?B773$eUr}0LEL4hi}aoVtNad#<XVuP0l9L*CE}=S7+qo@qR2frwPsZ^{>&CRVCDv z(P+vs?=OkunM825IthjzS{Jlb?574z8tcs}X+Vis^8{^r|0qXd_MdXA?q5aCN2_K! zm0jBYjnt|mu+kUB?1O-St2{1>XD0f8xCZ0-!A<Dy=MwX8vAz!ah`5_jcXVWe&xpm8 z(FFx-urexR)_4})U)SFU;d-OQS~}V8nEe56m{{N$g^F}8*8-e`TMM#@o?D5YIYiHE z33_<FN++ib<jhGTXB1a*L86lNCI|UHA+8B+&7TcT7>x8pd8nr!>fyx5Velwv^rZe? zivTh9xyAQal{DZ4<Q*9aepk1EiXGIoYFabyB<#B2Z|XMwj>U>e5l99<-o;S!2_{ga z47H-g4_pk@y$Rb&`H(lAd8@q}iV!$}H>kx$z`}y-@CCo6YXfm)sqnznL-e@QdP<~e z!d<wWgm$sgd}<y73A8L<e2OB7W;&r=x=RY=P<$acW*CUBR1S;#87tN0>2Cif9LPab zgf4e*<1GAp8#sq=A3k`dds2I6H$|{~t-`5=9}~3BBC21*-pZp+>9+phh717CgxjQI z+%!4EMwFBOL!70+uTeDdwRX7~ILl$SZUlsgy^J)+dJEYt%hObXYLVzcX@91M_$Tzk zH`uXEe3``8Z1Ht+1gBjlzP=G(KM`MFiLXx7gi<u|wNrfU6JM*v*GJ;(5%IM{e0jxJ ztN5BGzBY@mpNX#x;wwvhy(PXn(CS#Lp`uA^)L`0K(;?jR-X+Pz0U->ogUKGN6Mk2V zOEBl<(2fl=vLkbFOy_Xo#)Q3-&PLd5UJe$Ld}G*y6rG@reFeOiZW|&8^FAh2Ww%sp zZ^9dxPes$XFLubN6Fey2h1(K%(P<XQO)ls#Hf*Axp(yBKqoBOsBnp}<Xq1_dD^W&^ zuQ)mXOCtYInSw%RA|q||MGG!QM)k@ZIww_ts^c;Q*Vc=yYsq*<wgNYyZ)pCBi^yTt zXHj&O&UH4eT+}3SP1c>j(A!G4TZ(z}W-6y1420O#1py{j{0UDse8DmQKqiu{d%)(% zV${rb9AYj)Z`!^cBH+FaAp+c;GxsW}IP~lF5b0M_<aK~~{&+%rRtG)Gm}4?NqFx=d z9_2^A=ONGjG|k-=`(Fw4kpS)gm_Y#o(H=#ZPTMC8T1cQj3ea4UaSDO%6reu}&?o}U z6rh!RIAachE)^iLes2H%LV(T`ps6C`J_3Eqq}oRaP?$jP3(!CTdVxT%3Q)Qz{y_pg zBtT;X=neucW{_p#5hB7en?O|rQYQ>`k+4-jP#U~7)c^Q~>|t$v7<I;XL>KP0m_d#_ z#?`4%iCY>V0{fZZJR6Ei7O$%RW%0yTGYI(beHR#=9(Wb_kp?&_n12NGb|WEjBNt&k zRE08gsLTfdp#D-V&mlc-zvKJg{1fT{$F^cA;DtoM=^BRWwPg!v`>d}>wV#7eglR8V z^K$TpbhD9eoGr)Ese0A&HHx9u(YXONuLEDvZAtR1j@b(k4eir$cf&xs!bSO>KFek0 zIBtG$$XGF;^JiFs-pMxI=fEW!*f4daO)hQrX3}EPBtL`@0Br)jKq|-36H$rRmAv1e zc*H#LOaCI%Sh9gVX0fPO3ecX5l0zkX=sv(i{m$<7dne;Ehn{tB{;ghjh+a_lI(nk+ zx0SpUuKQrIUiVI@py3}XV~zkEeL3;H8{d&(OrFC8Y8qb0do1$5UG(3GAE{%$F5(UH zJ5iMss6!Lb1<O%{wz~#h1aY(1<4d&=452{#Z}5~{mYeaY+q3l2(p}3(Vb@4$)7=t{ zKeT~Fy~<JA<oi}umw>z0p8-*O5oL+%Bl5}PBYCnnO@ZbIt&Mo#W|l2)!Xar*_`^Z# z-zP)HUL)|v8e{($cJkwt(<YqG5%=|C*eL=17`#+L`38JxLk-Gz;0t?j@k^99;0elK z!2^_+gL0>!ocb$?Zhxb`&kufG$sTPO)}_&on~+WW>_&b695;jH9(xxmxg96*&@3QV zX^OU@eb&8K08Y*k{Mkcq=ynkJQGvgi9(wXtBzJL;(D69(h}KQ}DO%?(hI(zr8%8wm za60Bj{QIXU=eKx7f{F623sG-m83T-ck$(YMUCU?x6Z_G&>gT7nYiGSkrrdiCD!uM} zRO%Z|F8@55Hb8G-FmOU$*^SS9+GK*$-C8G%6&CJ)(tu{nWMA1q9hxN?21w)>L{G%w z#d(T5UZ6Vee1b=$XfyL~4sM{qD3nkAhd@Nrb9BPosEeycT~sX)5FbaKpz<vYHsh5^ z*xKbPxOCMdtRux~(EWAnUkA>7A|FE{MRfAD3S<Tz_PW<6`@56jTisF!?&{N=akLXl z`{VmmlW!0gjU!c}9Y~s~-Gd}FoX11|E-Er9-8zWm_B%`@qZ<<TN$dwx^U|mu@b%|h z$0eeU!SOoc{xH`wq|bVuMn7v0qn?t6XhVEHq3oa;g#%4`ydcq}kzj4i{!3I|vW=Ez zCeM@}Y1CF?)c^^gAG?>~!e5DW!;S>4lZ5;tDKY}J^ddh+hy{;AEp$eE51lVX9jV>w zIImkBQQ&jGTR(TR0#Nx|*L5#npNiz59c|}PJ2EkCYr$PgvBJNj1k$gkkw5Y<a`OC9 zwLV99z{v#8-CT>9A1)`nTe{XzpH%+hZsoi6@+VQg(TVciN#z$Nm46Q5Wp*o{&hO}T z<f0AMq&l$oYeP|F&rUIJ2CbjS=*M@U61>s2C=x=7kWaAp{d0x9kVnRH7WoH~N&l@+ zQ@)3hFP^lL%d90uffnbWP806CZA0X=$9hB!9YLB~v*JX0t#=t7wp#3aL_T`07uUlB z#pb=60OFBf%U}8R;;}+J9`xQFwhRK51CYC<A#C|!7^=m;rm*F>{z~94@J@C_4rbSa zA-Q0hv?i^-iIu3PUa@QiLUbqJni)N^7849p^vktr^w`gn#pp+Cu?A;~ey|ohHE`7$ zZ}5qR!<Gk;5t~s=IK2$`Bf6eeTkZzDq{ZJk05OSb`_1^meIq!z7EG%RUV-)J?1`Y` zVK7m#PC=ryCbLRuh67WJVoXYN?E!3Y>$G|8#40SqVih)NzRGJ`N#BU|Cbq?SOOVsp z5;wI!mSLUgyf1Dl?Td3tFSXJVt}`<!KQE@kp^3*EV82{SgGaS&%P-_h3-ZdPHI9p1 zxIzhQw;^rvbH**UMx5jilUSd|Mrv2nlKfP}o}1-rcWy8(!&BXSWzaLAvobh+z<0PI zCIxD8q0$1gb9}cP+M7~Sk2$6-E#;^*xWOr%k>-^BTAGZzGc>2_$Tc@O6-O@Kmick3 zhT>R;NU7>-xQIq0Nm{cFXI#b6Yv`N7KTowY*Q3s|RRpsg?&?OIeVvSp)4p?uv=p3L zO8tgh*Rpb@VM;K&j`&?!+&Tpv6L0@f$%Y-CT4vahP06x9l19WyXE-w5rPx2=RGqml zl#S=Ia%E~RQ|1(ug_ts|`-8F;P)7ElYxuxnV*eC0B3=(Z;Xv#3{va-j9ri83Or}V# zKH>?wF72S}({FSJC&v(=a4Ea*z<KC*<>MdAN))TwX|nk!=KjkU$-&%bvCg*qm*6Pa zN<8I$5qx!rUA5`d4uiq927^DPhUhg?TX5A&&$dW`;ZPmX9(WUT(I#9&cWEbXvhCmD zQa;6%DWStDbY>>>ML)S17lfK58#cd29I`)ZlfzC2)s5#!e)=_sRMaXJ?UIU`0n8_$ zWN*c*jbAtIib<QAuRbbe&2-?WY9xN-eEc|U1alE=G{Fi8mMxba@zuMOJ^uaQ!A3!# z6dcLRyidlxDjst~Ij*uP#%(tHag&k_ekgZr*b(Q3bcP9A9uTiM3jY*|&hO-~qm$^+ z`?~|l*m3c`p4^FKEh(8LL1$oOJ^8rIcVbg=pC`#<Z7=e8kmPY3<gxPRhJ$W%L%lA4 z*<nWkRYvlMigBZMoUUw=!(F-@*8XTY)a?t&pQm~j<Zm%fdhD4Jbe#jmB>CH17R;P& zZt+yNT!G_#8l>+g7QPh7-uZIyq9D_wyeAhQb_d6waF?E1{u|tRC?Ee6pRc=1Pb|OL z6U<~R++*0{DMlbIvzg=&t<Z3Fqnz)CcI({5HF+W5KBqbnLg+BJ-~}Rhg%H7sLY*2( zout48h6uLlBFKDJKAjSrb56&Upl47AW>64AkMarXJpfTmV^Itcz1Ul9OLapSol@2? zFmpbh*K2OP#3hj+BO!+L%#ji@IBPznY^sbOHwmIM2S2lJAee_>B#6#jcj-~z6HZ(l z<=^|A3rZgx%?xm3?eO?+NaHGmYTd<0%Zr;Kh*t#D5Uoqsg;C0ypDvi83*uoz5RuZM zvq|eFgh<+@C$+|z7kLXg_5MAb{7njGZzO({7n4ndBz7^22S^OBgcwrK!89^z!ZgCZ z>T;P&+DAeec8sRtbXvfN2H!`zOmb#tapUPlb3oig_V5ot9IgwsRl-CXB!gHv=rXro z5%ieZkQ1>oh;=KCM6Wy4ZmBHBE5+?~I`cs%&Y83F&}yqeXui9&(YL1yp{F(EnQ<y% z*AnB48&`fc!@#>k5o{o9@m}s$W!NX1wfM0iSXRW~Ms^>7v=Dx#hamB@@HVUMs5G+? zLX);a#-QPb_=65PS7{DuL(MpOdHS(#AQQr4T@QW<eRe~iXW7b$uB}d#hkMmh%gxOY zLojV%CkAv}>-7WbFgLiXVZL4CzM)z7gJ6s+I4MR#hGW5ZjHpx^-N!$?GML@wE<Gs) z|BCc0f)~{h11YKaOUTBfm8EUc{iIz}bn{nP+)QIA^FMB3ZBCqd(BN}MAmwbqZBBm6 z^a%S^mWwS*L@bC(CeW#tVPq{6rl3rif+k@KE;dZTZrv2r)Z@a0ao-`(!nf+d3P2`c z0W1iS3wdyg1AnkQus&aogyxTQhMfh}B0O{SCwBcqM4Zxc3^(|7z+9Xu=itYI?Q_zO zi8=Ip#Ym?#<cb3POoT76%lD)c8@HhMVEYxp+&Ght@46zG83H@q#UGO1e@=Q2*LDE( zKAAhj708Coj2GPk(B90j<2xpXMkGS%1d0<sS&nanEofvU+BHQ&=KO||4$>QJMwUa1 z`~&HU`CoT?AmnALE-$T>%694kcp#9MRwy6j<%~`zBqh|I;;!z1sEi^{1h=%KzH<Bl zA`JVW!+ghi_zOVp<GUsYFKU!azm<Zt7Z{qD<~Da!mNrWFb6f<r*bO}`?nGyh#E>%} zhG58sO~{7Li7kZ~&Z!APR7gN}>h_FOH6bTDVZyRFdvjQxL>*lm7QGxeTBD!`dvF(D zTU0*2hkPi~)5+nqiA2}ruxp~==|pLHnt7shrpw$}Gf~=+=9nlAaXC65K{gM<OIs`P zS2X<let@1-Dy``1Hfl8-4!9cdCiwF5({^*>?;&x&z^?FcEY#P<>WdM1V5hFaE>_{T z&R}M(Tz!Jn_8<a_cLb-vC$uO>?ih+uJ6T_8ebjSv8yty~P}1dh$v3wgl+7V(r*R{) zU&}^I(&Ih_#zzP9KZizY2X_EGt7hL;r#d-doInBTrBj*Qn_m7hSufe~#dOOv?i=Me z&RJIS=-gc|_4{O?kEEAX5QVC+b0+l!+`;km3_D%=XOZ|6PGs20j(ONAd?IM8n|0Pn zI_oB#bqbv=Vx6rbogGg)3%_Z%599II=soCcn;Xn=!)r7*PllfYeJw9;g|cG%A}cDp zq=vMTY(iIiDD19;!UB~J?6OX>;zAvD#XTq#_jyKU9}>vz1~Mz~M{xy)XV;bQ5$u8@ z=Thho<R;m@<ooJ8)l+%S<59L>8FZb|34bmXs*F9hp~z5|xlL*I?}hO<hs?O(6;}wk zM!~z20*`_M-j_&!i)$oYXv3L1DVP2r-TyyG?&|i*!SO%PxN!diNb&@;lYBkg)R>8| zngjc$<#d)Lvi><FYQ(nOgmA&}YxeDqw}<o_0umW&4keLE3Vxay3GKJ&qTs^LE4wR$ zb4Fq7%q9#}Z4vSdFd2d;xV5B(=z@2bIS`TtDarB-)X2(DB#D`rUIQIZhl;1;D(1*Y zPw5Wdb_6!SF;6g8cjh+3nX4@R5DE^L4#qyMRSJ|rO1QB-M1wEjN$RgI^MT~?x-W%i zC#pE4tNj5Qt?A}QR((5Ee?&LcC%cE<dKVAGNH-@B)e1oH%sGkp;$hExmEc?0!DApg zE0;Qp+&k_owh5$Ix=qNXZrj#PHgzKVunZHDErULP9Cxs*T>wqEJywj__4-^;w+lE< z9a$81-axGiJ7w|UWplXUi}3$+{67}|lYpJh5R7F*u!s!7bTR~RR(Jaz)dz2O+H(!I z38$TmLASwM*aT)3CZUk&-tECh33~uE9+lY^XmML`K-hv;8L^!j1jJTKW;^gs+zvEH z9so{#_wn0<zzW4T;B?Ty%}(BC`0@ig$sZNtW2(Elfr1_F<etuiONudAILdqBC__zQ zSYd&Tj?brYnEYj`oBO?h-dJ(-X)NAOGmY+pa4JpN%9V*?JV>6h;jc1L1f-2(Gd=uO zdF}K6BmU9M7`p0&B|hFRhrUe3%ENTJ98lSY>aD+5=^C#zY#44N{RN1<B{&U@Ff9$B zlRRqjtjVjkRe{fO7klD&9=Q4M=rvR>Y`Es?tFI=Lg0p|*dxx}qg<>|a_%4NFF)k6h z8Gs`ZM0S$DpP*NdYJpz)_+F@(PV#lQtWA)dci_GuM5nzSPuRm&kY0~(7(|`}H{$Rv z)4c_xg65f^J!>NQcjV+HAm7QQn|)z-wM>^i%L_w9JW(!#Y*%q>Us16vYJdof>3&c0 zU_pGG<^hMD%61uJ28#DA+)TyeNKU8|USK5OSsZdAh~%ygxq}{4M`h4u`zFBy`S?E3 zY~0=m(N(bRwHfs1eXWR=e}$(U+6S}Ss@G2z1e=}x5gW`4bs8E!I3%5c=``6ETT;WF z*$g5igFCn>67!_jE32=_^(f7i3tNcTu9ONf>?LyG%?2~@S2)|SNvJ(O-e5f?;T)r% zb$)CU{AiIEHVS^Ug-$TTi<@1+Ttseg0kX$*@O13(UXL?Ph~U7P(Ay0!h9?zhIXPUJ z+%)*Oh#43Sr;q~ifK<*2pDX0s?54;dpH$_Biav*sf&}67&g$v&dNa{Zia1g`>rc}@ zy}x^JU$&#%yp4iWXrgx7Cf<SG4yMr{WRi<9BTs81dD7i6G?NDV%&?Q4HPPCzGoP@j zd16pOZyW9BMspD8&C@oT=@RYkEzqj>FSq+Y^>5$p=Wz@X3!MiCPRoP4nFk+Gs{{`o z)aQ_BKaHPgKYOWRCl68v8ww0I6eapzjIGQD9$QzRo(%?hr)LG}Jw)AL1?;=AZusN$ z9U}(od;4iyzKnGpx{awdbQ}H7{x{l9Q9ZPKEVVK0<fxF&1*7>wB+&I2C7Pe`GMxG3 zTD;VUj_X5BZ#oVaF0SJ|u637xiYH;nB;y^5q+vX)cGD2k0;^?p)seN@n}%TqcM4*f z1iq0qrdc`0nFjpN(VH&g44G;@l+$(4aehZZu(!+M&>}$P3_7sj;%*30WCc@Lj6OY= z3I+?sO}0;6&65M6(}Ouu@n~G6LwovpU4@#&ZNXVS@SNK+d|6-!{635*wn86Xsabf> z`xU*L3CvClife!&4$+7t(}=lID*74^_#U&iV?^2{6&=CrQT+c7eWJgzDEMG=5XMF^ z)?(ZuFovmS-_zv?VZqIC2A$O05SrWP_#_pLF5pIou&9_rLoERGYQ)!!_IB?#;r_<^ zZusx~@kSN~@J@}b#Z&LgxIO67a`Yz@?#HzpEkv8q@UT-4$RxF&xI(@C_ny5SOmm#R z!?WV;r@wvETl<am0*Fv~P);qE+=$|lgO}O?w*?D9%@lGXsWOLHX<ezjhES7OLonpn ziQt=-4Gkr;>tLTQC%%-B<;X|tFytaBhu#<|o7}w(<nGlqxKO<d)px1#^rP*dxYNh= z8~tg_ci3kYazZgmhzeqq2oACD+JW}Cz_@Y_Pr`K_r_qE5XG4wfB$od=?kK@M!?@5z z4t)j(BZ|MXBL(T66eB{3SObBBxu3$pm+t=~lDbAH5tt=8VZP)Te7T4q_=`x6eBdKF z%TW|(Om3VpIm8&W$>db8$gOLEv<qR^sXnbQEbg)ttRYuks5<NnO)-LV#=*gwGp-Xe zZ)Y2>;N?)Zr#Ortl`(&WgJ8!0Zp5D=`O>D)S2bmrucnq^!kVgG5l*A^YSR^Ae9#Lp zo%s|3v2p0iM4>AamOHeOSfBB|iVZCk2c8m-R)#2cRav~-QylVtZpOs6Sqhvb)+dsq za^Oxn6;IrOoOGZ2=x54n38m+JMXbjrnMAZRF3;TYV!6Q>e_g4x8X*N<L}?IeR9E;s zZp_9rFI+nWT`JJ=ZGRMSeU-xC7g0w#j$4i~rKL^=@jU)YMH+0_LHyr@b}Sez6-DqK z#sBZXu5FaE;gvdA8lV*9f$A!P28*v;l7YWERd-hbh*N+1;kl3X4$==9>v6PhUbn{; zEJNgG57e#+Az7#g{y2x{tPUsXd#D|wbSISKGR*4`zWE#RhXb;oU`}biqZqx5fGpj` zO$uWESjHdx488y?S|D+oI}yE<?tcQ`a_Dmlhh;mkpQGzMkb4(mpXC@$oFu(4MsLSR zg0R70TLM&Yh<Nfk>xGkThJ$Pd!uo<>!IEABwMRjS82-BGg*)iI41Zf>&Sf1?0&E+& z3_;sZ+YV!ukwOGD^~v$tb`${-w^6v(<}r7$dQix=jO4zo9qKWOP@o=@+UZ5dMQFDp zDYV-T{XjdyzJGQJ?Yc3KA<lWsZSm;tna~Y`W4fdnk!yha)R8@y&4W+f^+R6!?mOZi zMt3KiEMEM=)bBVhn}@0UG7Zz>+r*SOz*k>4V+YBD$>W<DluV^LG5!yc>?ZpwQ@;@a zo+M9Ac3!3?&zKz;&0Br{s>Gxd)ncOc%bJ=R+Iis&of1>#6T`#~jPl~$<qGICHe%q6 zoUs#w<^#R>FZkPv81(Tc@@y`t*j13<rOD)+B~Pi*T%r2$Y4w;#a2++8IQ&KNEPPHp z^Pa*}pJpefbU<86-VHn*o^OL6wkq;q*xmU7%-HCXiW-l)q*)vAK~7H??##>vKtlwD zaezS}2;^JL&O0a<BXX=k%-g}RHs6DZSvoUJ+$}WhKg`n4V=tfx3<2+Gx{kVuFW4a% zA0Of<i8Ks9N&aAx+_c2y1`E>1+bb~+vfPLeFU!vGIk=1)TqvB0C+2Qf;XSX4-?LX> z5}zzjQ^|f}6HEjA2a+e7`^R{SFa{7cUWMx7D2W9uBxMO1`wK1Yf<#1R1j|k#?$9}` zym(hxpRUuH#1SEDao-92ASk&~hQHB8xJa;ApQ^x@eOT)<_(FTRnJ;-a+{t{g&c_pc z;NXRMa~FAXl00SU^8xUKMTDjRt!Pvggu^zKBqR<YHpDfJaY+8+>c$XOw|`bvSAiAV z-3uEHR^VnTNY5@TzMXzKnCAO>kf&#St?PV`=KEAM4qJ0PqjMO=GkVPT4<@)KB0OYt zmiIc}hh`vZgK?Fn`(TDKsmrHVF}=<0G4F?iY0UdM3$FqEJ2BxU5_Q#~V8?%$_fz|g z$?oam9ZB(=p6$=oC)7=PScm8Pz41T_gbYC`{OPZS4^p<26^LU1=vMm~fa|dU(oex3 z`o)=g5fsSo>Uk{GJr9Zk!W&_0vT$UAlVBhFD+z{zee8iaMa+OiklYi5iV!op|Fmq3 zH&cwly@ie_ZeWCtU;^NmcAr0Yl_!c93Vw=sAqEAG7j}ss^v=mu%t@hQB8E^4NVhmb zwjM`dF2c*ma*pO#madWf3icQti5^d2=@Rh-mM)GbJd=nguyj#$GfwU4XEFaVo{)%z z_Ay=~SOU?o+I+&M^fg{n-*y?V4O4<1w*6Ow_fv_%8zJ@!x(wck>+<%=?t{19{~?-) zi~Xm)jNdc6jo%o>aq1tx(+eEQ>^S`}w3+)J4H{$iin09r+nF^06&}MYo_Svr2s=;k zZvPVRLLM<B!<Pq)1|<0Op&Wwn)cnp)8n3q^jR&X=7%6uWWF!4xV4rmo0>i-yjOBQ1 z1VS67p>q(1CI}=<j89NR_yY-a@(P4%@~9=%dExo#BbR$&12Y(&kqF7}qL9bwVmu?_ zBe||?VnD|)GqH%6h+_=g1JJ)XcJFAol=xszf67==!F=JguE4ADK6ns!H-l-zgLvw$ zKw+JL<*i_t;SzuzAl_-PpZo#HD-Ujh=l`ugC0qnzc6WcOyPL2w;U*Z&re&M|=q3z} zGq4N04c`iXFBrZkxn6?51Wy+E`ecEIKYkkjfi}AcziRs8xFA>3D<%!#kiDGV;YZZt zW0t``iYF5P+~0r!ALD<>A5T8vbMi3Yfb!d%#2%!~j6;FWI|&#{i$;Q3<dqQ~L)f8s zDB(~TOw%Q_PlsY4Sfx7@eXQ5@C0xHV_>ot&h=t4I!4tyu5Hz}ne@XnnwY3e1O%Xp> zSDVq0&1jm8*4x~~f;fbjLM+RYi4pEjk(MRnMMxnqvt(w#-}{o9+S4nkF%Bl#LERqq zTpuFN8vc})&+9|I`4jl7W`<hEeJUxi$zW9B&Rd1qJ9-;4D(+7-0p8u8;Ds@nye?W~ z$m!jm=o-n;$3`AQg<FO(l*GkYi@_vcd<v(6`hio~sZbJ51vOV+eB^~FqphcRD*lW0 zDDo!+KfA6!cJU{A=j6T2$sYa$*4^}VZC;oVD{L20vxO&7M6be=VBUx&3GgQFy(U-$ zo@CMLM9BAC!kb`zB(IhBu{tprie;=o>hjdXzmnG$x*sZ_|GFv|Uyei*xfBwgwl8U3 ze7_+*)+4yL7~-FI2v6dHa503v?h+56Ztmh=kZRFX1)VMCEi?t@53)+}6w<Qz2U!~Z zL!ZSxmKY0v58~O%n0HaIfFgR>cYoUPP>&bzQWeERlC3Yk>Ac$fJ{%6X9din*{u`$4 zGniJm0apd1)x#U`1k;Fr>jcRDZvqMD!}=oL6Z2ts8&lJPYWN?y@E{P5rC)d<@Fw0z zB3u#4wwTz|M4)#uxO_@48|ddlfKLc_BjI4+tqEA45W;RCd`$=xm=v~M<Dvj+?BSGb zA|$eQQr)~RPD!sF(U)s7Dn1x?87o0n+%>^Fv74@)VcXc3f0Bfo_<L5=pN?Mp^S|lC z_l!Oqo_!PdVWACABaV?SVD>bIbsKM}pN#$^2L=jZyORcz#q2)94@tO>@Fiz`Pd!3& zGwzWFC<n)fC`QvlNf@Mr^T@+4738GOV&_p{)4G{HDw9}<eYv8;ZvD?4)@Kl;xUU{V zFF8anoz9PBjAVrq=TZMVeM|O=Jjyl^RY@{ZU&i}t=>qPnF<v}{p(fv`aG?O_-6)>+ z>nRz&l32G&);DsPSl@_;q-5a#2Y7?OPfADzi@bhTwM~?`2N3r9S#8+sXPsidD&9@; zi2zL!Hj{#h`2i``H%^KJl7GrzX(qaGW;0Tj;zf8FQr!&hMk999tKRkLa9x(%jfnst znsOS&OT?q%If0Cr;c2q`zt+Dtqff`Itr0f#H9X0`qYiyR!1A7D*lF~S0%+v$k^Yen zN88)cV^9@V$5|hsDXd`cfcrGB;2Bygbps7O?}7Wgp>8U5;|Bz8MUDn4V*?;f3?ZZr zng*g!^!dz2Df@(U#!?6ho6JV3?v@{;fqi(2KaF=lFE%rwfxX+w)97D*+&(7T#Q&sc zw6eo<kiyZp$QdmjJ`zveCXOj$*zySl49gBd|MYd?<+O&w@l33NitZpqdLQTV@Stf4 z%-~F@#+kdMS(pV6#$Ji6DsbJ#tS5x`*}M^s-Y4W#ywA)hv<@t!k+xKQBV!w0Ffl3V zRa0Q_`r0yZPBO!Jmg47opJ+>0vYi8OaTvZ{Ms%6BxOo;fQ*E@<4F^}SAr^bv;KpLr z+!;EN;w)~%E;o3YZCGEk(XJO04vuLl@_NG=OE_JBVLl6g!TvF>=G8aB==O@^p%6Zs zOiRkN83q#0uC#kRgGYiB?y=&al<s*J0o1F5p5&af=h^K0Yr^xS_V5-xGqza_70sZ{ zdVM&c`o18sr?D0d>9IZor!%oX#zHsw{1aI5eHPXZ-13XfBo_2*o`&~c_E*IB%U}hg z=YAPdSHqDc1?D9e@;51Ro=71PjH5w#5+CGM8P2B@8#^0(YGT(#f3e3VwGV$&L^zH3 zO7iH(>nY-I$iy{JEKwzgxP-@v-x~_%<M)<=MfiQKpqALwgLy;ENz9w@I_?A3nK$ND zyrb2_UlPy4=fyMc89a5SBH8|g09zl!ljF%4=oX|S1q)gY#Nc!q`sN>`-<iZgigwwm z$P=|;Mht6sxLhhaN}moku%8o*9o0Q#B6(b6XJr%czNSP%hV~+nKu73{;VlM;oZVRr z=V6r`P_ZfK0N3B8RJOxioL1}<LZ?Y}KZE7%*>QdOr<3EVFZ%FwLmuGVH$~hxMWS!? zKT~7$d%URsn?jP#%fp>r`Xhy<r*sTVmX0y&=EbFB_$zovCl|gbo_WuSr~N5B6VhS* zBR&&;(#&MJ$V4ZRPLUjNchl5@cNW{0k_v4^-|nN1JU~C&sc*TjHUPetK>O*3S3U{U zPG5{qyS-+ToAm{O_M#~EurTQAJEY=L(6jF;imJ;BR3DOnO;b{xqgP4j)A1b}@4p`- z3K$EPa>tAH!K8Q}n$gY062e0{jP=#N;@v&_^s8iZIsALvp{#3s;kS54pIVQIXWk+4 zv`6qX%xFD$8s8w!`fWp&rL5i<L&5NO@x6#TFoa%d#gnyqJ0<CArq56~dIO7Kb5MtH zuhFDsD`ATHj4_po_Z-;|IJ^1^c)Y8~77H*>WsGi{+H1G5qkFpGcgcV3HZY!I-w^5m z82Nt{|L)l*<gUhturZc7@jl7>ezvf}C&aVxTRe@v(EX$M{sHceY%sLz{sEe{^Zo%$ z9m(lQ;vQsNaGyfAVX5c@FuuqC?=TkRpSy=O0X()*xR(}_Dg2VO&5|HszrpsKdS!bs ztq&*l++NuZR{!|@1wENcq02Z^Ek$6QF6hH+uNB5CrwcPhe-it0@B`<F`AP4*6$6(* ze2wORi~os<pNO5O^a*Zd&4Sxtn@NJaixLS!%$-Tz1Rz<nh?6skleBkLjD&=VSWDKd zPCzgsO0!x4f$NYpRg6H3PQyv|KTjvZyzfBwA@nVqhTjQ>=JfC<^!>U$`M049|2k$R z_^06=Bo`jQGa-y|{^d|}FcoJ0!MP;+4lZ<K7<d(Dn9ja9vkpo{6og{eU9i)(=%AE+ zR61iZ^AQYVJ}0<G1}DKiw%SX2a!(2Q+dD%iQj0NH`G3Se+z(j2VkX8({JG8rcz_>u zV4Nv(-gR`LKJL?pGY_X8+vUh_4W?ztkKtf!O1q3JW;*DK87IyWo=BDMUyod_Ach?J ztEJdDi5;fbnLRk>2yfP1+=383`Bxm+)8JS|Y`B#~%5IkI4VdTWW5S5DfX%*7-8d+G z{1Xq(atG61#>PbNC1CW#O!DWQbc}`e-g(a@7)E0OvjLXk9YnA+1C~x}&d#=9^m1GZ z_Y8257&l?z{03e9>mt`O6n#){FW-nzuFk?n>pkVcY5lP&7^k*Rrn;0?r~lMY>Hfch zQK-%O3~qoeS6Z=qbW@A&Ct!CR<|cD+<_C9gd@U_&f@#Mc1Qg9AGE?ut=D{!1-lEg4 zC=OE~SI_}2A@ICEjS82gDWA|TxVQ3wA)B`l%p*<Nbe#66c+4T}(j$;ln$qAhx6;1N zt;}}^T`GV-=#vT3aC8j2Hbb7$?YGaL5=`@ZN<+8L0KI0&q7%FCXM;;N>zBB;*At{z zD-Awbsc<`NDdc+)6L~z#N+rH71~Tndo=NjqMlDN^&N0T1qtfyW{696F&Z}XsE2244 z_U3XNBFk<BSEgX^>+k8%Hk;VxRv#)wA<`MCxTM{CW}GOLY?*~L)Srd<l{;|~`t*{X zEvy9HXqFhyjQ+$01(8p%1u$NN(d?tR@;ABJwD+~n1YL`+BKe%=q(Al3SbH)b_hf;W zxZuel{;oY=5`|*{bgqC;v&E0GU06;c--ti#vp06QcB>74;Kzgxc1q=KAd!zl#qWDV z{GH{E&Ogx}ZLBn42^rgeo(@jLU32}Udw<S7h?zIS`;k;P4i;3J6X$nvy)4a4Y&Ftt z*hIFt6~}28AHh!)Qs(F&4f+^Ts%(Ry!0l1k<9lT=bMmpq{!(Bf+F0Beyf%ivUw_9X z?qFIO`VCUsy&Rm+H7TwB_V1iZ6Y~4_rJ{&gQXmESYn&l-x|9BL6kp?mPiG2!<KCYA zU^acHrAO$Lwjm$XPC840g%un)lmc%cO~D`J$fPSEp?9)MmNs3MHp@yC_V|Z<ha!*l zo<D{1(;x8R{PiL~XHSzhD^>7yL%xp4Y#>xBxSJ^=fnfUk#AMbY(=Qf(AEe8D(kl+G zh4L7)OR4ycf_hRWsW?#ZH@t}0#zLFAI7fPEalWiB^x_(+Tip0Fr)CY;iZ6nYIhC(m z#Xry=Z&*-zSPFb$L3t0%z)ghf(@?@Xk^`-11YPvWf2R}rx&(>1t#GCZPyG2VXRu<Z zT>XJu9mCW*Ot+Og@E4W}urbYoEEmDr;tnzSart<x?pW}ep^|$?=%fV~K1^v;LJ-~i z>rs!otl%Qt7v`lyr}+O6B(q?F3x9KC{!!_IcRfM-9kDY(!JLAnC5NC8V~$@%IxwO3 zr}UVgFIVGm0ByW&Cn~Gfq7A0vPQ1>+eq}{d=M>CGsn{i5v<ZYLw-k&;6sMqFKEABL zfj^szIzCjwFlOx;Zl(3{<EM^F*WvbeWtXcMm#Jj{fD&d-3jQD7&ILZI;_UxfNFdn6 z6O<^eps9_TSgg`&OJ23j!bUc_5xlg;s#T1ppuU0-ytGz=yFrfY0#<C*YPGMnwbhEP z3V2V#B>}tuT1Bx6XmyvUAXu(S{@>rsIlG$>Fxr0pd^9^}F3&vk+~%3*%$X_p4!`H& z9-p^xcw)f6=_E(dlv5J9-wARncH(!Uh_Eix-fOTeP28@mNbPDK!168ZGl(=z+pR<B zoLSOOS*_eVF&}0zlzR`yZ_fymAFkan?Yh!ZRiw%}p}%6V*>pZDLYa=}eus_xiA%SK zYd;i(>;6iE%S%f`iFrBDQ%GE_`~iOfvRS(gm`jQ{=a`nD-@VS4<`!3H<{&jmOxjda zyLHP5fIV)2T`XXIdJ60@s1fbx<;?sJz!H}xGl->>llIr$?T|DPD(kpo+h=fS%*oOf zXXa9dV<irxa+34DnI&<Jzy6Fm-ZI@OvqC;}DeUybeA*(Zfp$v!7lo&O$jviGKO=E2 zy{WEEWfL>^VMEKA_rRQ!Eh`q&ZT#}mvWm+~hd47QP>{GZ-y6f(&>pgs-U*BnpCN0> z8dG|YQzp-6C-7P=KNAyrSr|H7J8>yaM>c~>LWxJZG6?RPsC73S()l%^#MR6-^+M}r zK*Fbid+_Ozu6)`D%r%fIF(KC?dA*S$L^B&n82?BPd(*R}XdeJ?G63@|z#kcaW!(To zkb4Ah>dA=-eGIT!+ZeCmUobJwXU0hnOVEAc-V-f_6r(MHV6>V4oA4M+IBA{J82yy3 z_}G<j7(NfHCi)u=ELO(o>WW29<14#37#tH6M#rz=1v%;Cuqm7?lzhEh=jxtT6saA- zRB(3bxa9k_+`}`%Or$z+2q@;jq57%Ld}CE#?<%ePl2sFUNRM-^N4fzIr*1^-z2T4d z75$`#QwK5-pDMnZk$rbJO0utR7iOv3$g+Ocq{GUzp>I5FC#NyT4B0L(J+3Nor7;kE z6M=z9y#c*MN%ALV=U)mM^6HMIU7}zy0Ign!YnLY19+j=tO*;U81l2Nn8cdAOjL7g= zHmHjz?%kjr2e4=duDs3?N?hub(ld_6o^_GJy~BE!@kKjwuRk_%>FO@hyf?#|dW1GU z!~8}kJ>0&`&+`$2TbD7nXODYa7K5)5=`KAk(`%}qFA3GPN%anZ`wihLJKrzyx&FYl z_-xl^`vZ~q_{(vneo*axnsEp`e;`=F5#+m#L-12H(Q^n2FwX}cnZ?N1&nd(q2x+bh zkMGcimtga!>~-uo++|pwh02+i@dz;YrN$lLtb)&!GupTX;o4W5cOS+LpJroE^UlM| zH)pvAw=j8R+yOZVxC1}ic2JJ|1^EK)r)n{L^b7JEB8hPWaR!EdXnX};ZB=qd#!n98 zOV>nbv5{;}lJ4Fgs7cBl2=~+-2x->GRFsZL47h3}9T~SEuxg|}iRVftIRqRhDT`NW z9Rpl|A*wi%cSnb2I|dlbw=(Z*v;BkXF#lqAmVa=U{DVsJt$#4YpN?{w-sK)tQzZA` z17nAGdNOp<Tq)C#eRu~C?cp8hLR{k=9BI9SPrO;@r1@#Z+>3LtCoJtHHO|5JjdSo( z8m-h1$S`^ka+94LgV4!m|L}*!&dk-F9fP~SktKPJGrO^QpW_&uG**gN>D$}!1DVtf z6)jHZ_`bn|2(#xKEQO|6x=JRcQfDUj5n)^Uctc>)_FaQApBL6OxT}+E&<G6c8UUis zfG9{)K?E(^muIjiMNa^p?->B`P9WkL9MF|Vdv^@>1i4;D(>MkIY&7zNG8xCf%FjOi zf<58sKC8q8`31l`-@rR`Pk3Dna(Y7V3UBHu)-5P?X5|3Op8$P6?8PleLrMFe-TMcr zjDIlN^A8pe^!$S{)fJ1K#zoowK_a)>a}avVL0Itht`5SIbGvmA><9Q?(n+xEMStM_ zJc*z1bANVV`aHm=@WZKo%n*L<w8lMb@4@KeO!w4JIIP6@2_ZO}<tOCJPnbe)o<DG9 zfyB`B6JE;l6O0M*^3V1Bgc4151(jxU(Q#u-lTRL&t>O>LOBiS-y9RaZ&!t@$zYjkl zEd%L=PbuJxpP-YjGHaEzl+TkUXFIFDo3JOS*F87kTZv28`=mF<*7s2NXqx(CmY0w= z(7u<zO2wPt6?|sB=yNbrGc{2pyR<ajT`J%UK*l||%TNqP{r`>^;H)LL56<FXH}L|e z`*=Yv4no&>fn(wYxmgZDkKzTVZ0r;-XdQ0i1)~o(@dDOliWhJOBYsKG;{}`kvv|Sd zl3pE^)P205*Z-Gz!Ka?k{8!=y+xJ+9e))L8CmF;(KVCotyGy)a`XN~o_hsS*N1T)G zkAJy%L9RE3|0G_JpP_@if|7lC1$#zxx{ntabKEJevv;>(Png}r3%Ud~_URYw3GgNv zUE>!J(y;M@0i8!}0Cq9KX~&=|z`eu^d}i#$F-Sw{-XG{LUQpD7ctNh*fj@t>t2;3N ztZv<b|3<uElSjHP@d97byTl88HTw_a1qTo8QM|wyh;HHq+4-I01&uP2#utz$@W{d0 zTHSrTATy%$vgFIg3w%=kr}2Uhx=3@6;st)A?0A8XP<QcyEC$<nf$yt>{eLfBpuLe_ z=>0*v2^WlHIpT#2Sl=a+#aVoeT|{B$_XmBu_Xm1+;}7&T{y^_6e_$a!MB*2hjtk$e z*9dakF7)3eC_b?Ke>CYAAOHSAL;-RanaF^R6`Wk@@J>DL0Vs$t^h58xLHd1HR=j|a z;CbOY@RgUCcL+Uk2bk-JvaIEtBJV8%;ezk#O@iVBCS)Ld%WQ<8DzH>e0O5ed4FA0W zm#EnDXtU!2*Rc5O5*IM<4Ki_oJ>MIIXrsWuX=Wj|yR(Rv?jtggwv=i2c?UXbA_HZR zo>k|k|A`-<UCAaia3a7Gm-=q5q*yt#yL(^o183$x8HSZG#+8$teqfe_HU9C7hXsyc zvr;A=x0m_fL2|o&U+^|aBrfgc5%tT>|Njf{#HIeU<=LSBZ2rF&knpF^9{l;z^Z!gE zJzboX|78BJGXVGNERJ7x{_hJgf4$^0<MZZ!^r(MsLDn0CFxThQS3iO5<)m)hW8ImK z(=y*4%&RMZIqEAErusn|W#W0AUOD7<av^@-Iiz6D6gFW6IT084@9IQMI<0#r;`A>W zPw*+_s~o7i-6&2^V*|a5y7LJRQEWg9RzEgijD_bDyqFam$j<+f7aKT)c8P+FKX9*; zt>wlaC^j4lrTIQSGny~%4=5Iq_5Og^b(hy-dkqZiX(aVN$$NjWwF{iR`UCf7MF#vv z+5Ui!P<Q@7mH>_u*)H|Ni?XCU$T95B1PJCB!gYCnVD>84myXuqOBZVQ09yu%;@7f! z;97PMTzNS!59*1Kht2K*UY$Q5a(9KwxlDt1teQxNg*XU4_M!0s4n>1J9{@9ye78`% zv)59eL{ab=O>tF?TdNX3<-3Yj_9(r@nVN#a>+@Y4D7=u31Dt2hdpJ(c(3^rCjU9;} zbB^9?%{zN#IRKvlO@kX2zTM30?!~2HNPP50ynxV9PQu@~m5F~kzQ7UBeOotPFTx!- z;%x;8*wPS56jt=*Uc6sn!b9b6gllyY$Dm(_YxPdHsDSU4>=$1Jw<Kl@W1iU@JEnQs zP6dgaS=#NwuCZQK9F{igMhp-q4%E~(Df~5Px}fa|1$?_g(Uc05-UiBDJ%U2;y(<)j z*@2R4pj^@;DEP{qp-jCJ2zds=h&>_Xc`@!zgz*8Gsd4JiXmg)n#d2p>Da}LWuZL^d zQ7MYv4k^wVaDySpG)QPajD(ajk;ifOI02dWDeZp>J7JbMu|c#CyW9k_aj8@GiUi=g z(lSH@KW&-I)g!Ojy%}uQc!9lJ+O46j1!nukc`Jj{wp;$Z0MGbJWyUV}RBf56kI>Bi zurax}80^jo-If#d**j*5&)V-9)?VA8k6gBquBq)XQO##~`C|AwNPu1k<uQY9QG3hS zw;9_)AI26~66CbT=*C{ojCDN$V)@z$$irzMy`33P_XLP#YZj2H|7)?xb!Obz6+m!W zlh4-d5ivFcz$4|<Z@SB(8}ghPm(kv;$$7UylO|q(oKtXvwnG%aR;wMJmvlHYWa5lK zu;OL*9Aa?N%~Fa_itTW0cp@~c<Bs6Aj-b2vWP+YkoyHgGBFnpbpkLZ{G%mwNI%Tp^ zW!NZl6Xi9Xc7B{Y(!@<Y9XziwCv_El)zoeeCeAK28#!{HG<YBa;GFveIOqO4l(?3i zOrC~kMBsSvsS0fLIDgW!sb1QhWz}1t#~RQ^+x2)mkDaOy>|FiHuI1YO!b%qfIWLiu zdcAA$1r&z@8!Xud{W>+1XDtL$cadN@64Jtl*PICi1YP+!h(#NeEQegxlyWH+kJ_;? zEP29+ejG&_D%G9^)w0(lEixAn9w7&!(hxP`t}}FHr*bE%YL7yi=v@o5b`n$#{V=(+ zZ-!fgH2v3rthNLk&2PB2%`i6kN>;6{it!&sDe>+u@#^giO#9nbnBS*M*YX>3<~=bQ z2?@pTI9{^ozKUY=y<OZj3!ucHgCg!rtT3;mF6MrRmVCp)wYO`RaL|1|9B<H$I$3{6 zceg6Bmow;$YH}B2xa#*eO)(qJtWUVXldGn<SnL^9Lr8Z9-6hqvtRk7IVx_l}SzWtC z6IFHX^00ez>AmEbxr!R`Sm}jyq*fJe&gpFw&!HG|GV?6797e7Rx$7|>N58^8Iw$sh zGGW_w9II*>+8Qfupn?AJ9(&SiO<A$h2Y5taPT2fSecPj#-p5>>b8rqjm(8l0QYvXX zmbtMsRKCf5sPuW8`v^aY;BLyFRyhV13%x1q-c{P9q`QTZHkB}Xl?2^a$<gMj%=<G& z)nGC<u5rrV3%QS(J%<|e)0Q4Of|U(*i_L~Qc1?3EF_%DvO3%JScY<DAl^7EUZrdG# zDaT>E-w3)bA$L=GTUFvF8PNF626ya&YF}98?zp4MnY%p1cbIB~%!jC=frQ+h+)(<` z7U#TobW<tY7mi2NuL}iQczlh=(ZR&8G-Z=4W8KZMxN~0%*`+mEmBGa5UNyBX5k@!z za1oTHOdSlVsa;C>HP)a<$e9?SOVuI!yrG<b#_q&OZIf9qN*#l~wbufXd)sGhWFR42 zlH-GcSG{*(1@rWxIQM2=H`^D*+VO||2_-ZEGpXtA{Y!{Th+PF2>%i6-JAlI2->!1s z%D_2kUW5wc0CS-++5j!M%a~n&MeY_bNHV6`nRNreqMxz7FBgAIP|vPPOx_K^ZJnUi z5-+Jr+-Y}^-DQR;ObZ@M1AROVG&pUSomG!Cu-Wame-`Y|_JsYIfhX|!VpvbXw?gaa zXKdtI?Gcj8eU=M)Rr!{h+AW%ep+jv3x(OEd4EognjeeGU{UJU<c6CL%y;McliG62} zOw@m8m*^eNss(XQderZHucY$#4|_9V9+Dxr$Av1^I5X#(r~1-RHYW_In7<tX>OU{} zh%~0D@63A6laFf*ls^Lnyt<Q*iGVq;lYCfU+43<-z!Fo~T)4%VInTpSGQuI^d&<ap zA@;0bp!Q&*1>B8{9AM$+8u(3F@N@TsZ#k(hx|5T=b}?6GATcG+bn#qP7kT^YqB~*P zOBYi|1HO;I&zf$)BNUQ{VZm~~gILlhtDEk{qAT3lY)H)g4QI^;v_Y}rHD}gSW)W=7 zdXx>ZfpC0I>Af0Q+%v6#)^K1>X#-hI;A1LcW)^W8Co#8%<JNS?t%;A+vZJwHTO675 zxokJgE_hD7{au9nH_DrnIqa&%d}|WY21PTcvYmD<&)CLRKG5JJSk1WE4wbjxU;0pK zhi+|}8E<N&A_m$AFX0|tl{o%Dqb^>=so>F6ANgzSw+Vr%CK97pRe`q*sIKHoRRYfL zbLgyutX{iO!qmr*K!Dpm7jOlDRa5g`HVS(vcB)-4UA|UfmvVqz$~)vOrM7NU`_A0Y zmSane@0eb)t;c8GBfg$aOi85nW9j`#kEV`+P+fb-7GqoMc&`WPX}0tki<tVQ$d`#d ziSC{Jsptpcs-f@3&G%A?lNzA~`n)6*pO%lVM%))d@qVo)trBxZ=F35MD_@v|oY4Ea z94arQ4+-K?`Ca&W6;XLy_20)Md&+oZ?k3HL5jk9U1e@RQg;&4XIl5`Hb52y7+LPC_ zQ^s(9bI2Kzg#8<<0w2ZW4Ri<ee4syiFX>49sS>IO1G_^fK3Yb~nN`o<h`T+y)^TDF zP^HG*SzX>zllVDa?k5rVjY#d1(-OJg^Fj#2k^|V%8b6RPE*dotT8u5aPD~0=)%dQ{ z_$PJZZVkuda?~QVt&!UIg5|qwxHh)-)kt7x@<n#6R_va7YW&d#)93qKGthVob;FGx z*7uKB<*-m4wFwuiDyMPll%Eep;}(TGX-^HFT_Z1-I~MSNM>|(w?+oz;LP?Fgj%|Wm z99QGM-*M|iK)OrfQT4(nV?S@)di_;(&K0kQ<5303BkohP`KfazwyfpzmZ<zr?mC|G zZP0KUrvR8C<d`8Wp@XhSq^>?eO4vXvj!?ffrq&5V^w#L7%H&_iiuj{<@oOM{1Bj__ z@~3XL2;uH99K~vtBrpFo-*S-t`H;kknR`3ksQ49f4YLf7>Tu^%KQ=yngWzkCKa3&0 z$RL{6hTRcG;rNIl3}(bYb8GWYsM<Q>I#qS%pOp(?z-aQI)Nli$lJ>WXM>Q^2_U#A- z-b;RmJ*cT4P-^YP(5<O)Jj@=tG<i-1T_^l@(GSYP(QAux>W_#A2lCY+AM@C2*IR>L zZ)fCo@Ch75D_h9-B8kH4WjNYArPhA0qoa%djC0C~btyhp$!9if9>GY<j>=fCHop%U zd&&(B?#or~q7ZkmD}L}p9GRi3f(sg`lbmrxznr>hyGk0aK7*gW4bF|HFuAy^8{XY$ zKGHg^F1jnfz6w-2mL7zuR*$T9>5(IRbhy^IY!ORUfM(i17u?zP{jU0+61Plws&3kD z`WeoT`q?cx+vN8%qAt2Szy4(U`78aj|62A!&8F2a<)>)2(|E09KoG8aRzI`ri=62{ z2ZkPQnX-iST9q@8DW>p70PrOcUx4*>ZakG%<iD8C588a4=s?~r)J1M*O3HZrJC9X* zKF~g|<ayd>yE}e>*6X`As=O-be%=S-xqCrwaKUJZ$@ia$QA6t7tNYYdVR|q>TU%MR z@rrSzVXr*;(&Ry<{c<ow{|?9V79M&qWfIq%%~j6Pi^J~7QZD=}+rHWP>F&)=|Ec-O z)kk3;hJ6xZF~$kvbDBbIgl>F?230YZv2T#5!y|~L;HkT5=;|XnHX^i*E#y}=K+x}o zYe!xe-Jb8vItPa-F**=VoN!4SpMCxKI#%)oOIwG8TSKo6p?*$lUm;>vYM;kv`<<sK zKh23XiU`woi${tfq^1~gXC6*Ow@)Q_!nZwvuybFF6P?GLklLz=!OYW%>0QcqtNgnH zXUao-T)MTjsQ!BmyYjF4c6uaV^G8zn+t$oTB3UEx?90~HfYYd(LisurIXgMO0oug! zSSC2LN?34;F0uEaTy%Sp)A$BC@TBiEU*jj=XiBTHd;)%-b`a2~T&Mo#EuZ$zS~_wX z$I)a#3CW?WH2u_V`#ApN5@$Zsj+uH!mTGzU;}V!Vva~AkV*)+Fj_~c(@FFo_ML3Z+ z=BvC1jt^Q9X4N&PDL9M|D*p*I9_xQjaYYOvB)l72Ce#vn)xY$fM=^{vsuxk1h3a`( zq(PP@_m7V(!O3doqgTbc+>s>)Rf3zF2>>)RLyjy}>LtXGCoo0o>VFwTpsubBCyLj$ zq9x9}t*6%J{yiL6kv@MpBQ;d|`(i9tqHr!hd$ART-|_r4sucq=^*hf$<N516CqF<* z3D(RQk419kzqM_NrWL30asC<u<uO$6U+sFtFjU*k4MP(&gQ4#|nPI3t4@gs~7?NdC zDVw2{SPb;1#F;*r&gz;|d7_ZvBm~KDQn28r+hVBH@P1MKH;uBbw+ukpwlA_GYBa63 z1!ZeB$|n0Zv<aW!wkEf4>Sm&CjJo|TetdZ=2Uib0SGZ+0j_&N^%-RBGVVrDt<mJ`o zr(U+<=2OUqc|YB>*(n-X3a4S>5`$i#2~MYUdna9uei0AgRuVsZmBdXXzO{tJG!j$Z zlM-X?PA+PIvax>w@#GRE8|O(Bv0G0VlBQk*?aHl7)=oJhBl1g4zsS86`nI$TF`tQA zEl|mc1pqGt<xJlOKB-pe{A{nkK@8mMZ<+0{x7Xh=s$u8(9`#&AWp-V32OOFQ5*~+a z-_CsTDARFD@0S?YFBc(-nBcO|j1YEs=5aW=&ODMbu4M?Cdl?mtZ<N}FQ(WhiwI;`~ z?+1mLTDsX8(&Wq)Ir~p7O+5l8PxcdbiNb#^^x+bdDNTM?a9Q+Zz|H_{`=9D&yKhi? z0$3yupiX1cHMhopj609fvuK&-f4WICc&0f@{#X<EJ5{SwdI|ZYW)#7p*W|KeA)Z3D zJ}&1d_c3y%H$x$^dU$~zByVu8Vu9t{VCcu=e%|B$Ji?!N-s|&i`DbS3AzB%vHb;e& z9)($B6G$EVoQKqO+WOtU(L(np*zVnj6iWT8VOb2EnF&0CJw~l8M&wby3nLz+`_v@U zG-M>MzlYa%87pY6pJ&lL%03?Gm1=Lc-^nPilOf`^H;mtY%V&-F4$C#BA&&d9Fzrou zcHZ$p6lgR*qm5)E#V}KEL&?mV#;^BoGxdJp)hh=~YQE~t?&7bFVP&k<VU_!QQ0tqU zOPhFdUt`%5<7@2SVKb^?_-A<}o}7WwnG3E(s8Dj~$N7c<Asp1Oi~SFxB*9@jILL2t z(A|kO{%4hQ%1YLUA>LT_#(uSu4zq|^O%)DBny0m6L{=>5%v;1Sx^nd5=IsPn=4~d) zwPtf$rK`NZs`!W-nt<=jIuk62h_V1BSl$}d(v1J?`;d_P+aWyEh1>^^<F|6gQ{U#t zeN^kQkQ*Il%kDc#k2B)mSJ{J==HXVY&sw8r^H<+=yHQ2M(JQ+yJ7rTo>%HiO<S|$$ zwm*rusp8Cwt0n7TXKqw|yU~ICrP3^&nj^F;l#7oV!o?4BO)|c_+0}&Dh6qWQluX0t zee4sfA0wz7jy^S!AI#jd{Lm`Gis-nYn_@*2;=8aiZ*}sdT0+8-<W*klJnBE0Q{sP^ zKH*3t(~XKg2JMYXxU2Dy$7FlRcuqKKhO=f_pQn$Hq5Trx^1@oDYFTPdTJCGxlG{Hr z)F|@6HXe*lvl45t&-Hm`apJAGl1~YTcwCi}b2rj39xqY)KARRvlfO~geLXpg-=Rx~ zu1U@tg20{$*x4GrTple%Kla9L2r23rs)`_n2v=^gTCodU_lnMtEObh;&>4`0PQFD4 zJa#kE)H17t)?VO6{P8*CMT~#upd6~KIT}>|WUF8ohBg^GrfPlrRvVWj*_S#U9~#1q zBg61RQw(Nn%#->#`RmMabz$d<75dXkehKER&bhn=7K*kAqr@WBE=Bg^r{L4i;`92` z2A|V}kG9@eyTQ89@?}+hf%w9OSXLg~=F~=Nb+HGW#YVi_JEdSb3pC&_e3tQQk#<zB zWRry!k~x61PH*`o?|<&t_Jkx~!GybERlK6HW6A;XX;Qk1X_dk}_E+*F3A27DvT*%K zy(1V??f!FiFy1(b8o~H8R&A!79&y`)6`wi@`771&gan60On{pMcqvg+yNJ_$`sIWI z_o*2tv#|QR5P|OWIxg#cIS&Go%wEG1&ZX!dtk~|{+zjyYRs)i2Uc<Gm+}~#2cqMlo zq&I<$Vp>)F{G4E`!A}BM6~9f!rpDq#fu8h_S5((OF7y+}o0!qirYdL=TEepF`mK6v z6e>N5Hx~7I=+yZo02gJ3ei*E16mjZL!rVPGnv}a*woq?WMt6!1u`i%8OnLGGHuyxC z9!4|qCjquG&|Vd9YybtZBA=YQ@8zK;{!9tg16zV8-d#q*ne{5UUUaCj4>^ju#O#ae z^GZ*usU<41j7=bidEuea$$zsYH5jka%eclAjXk7&luw5jCyC$YJ3Ds^RK5_f1ewaW zglk_`Xy{QOgetcFva-5%D=`<vbb{{cNMLuwO;x)eSG(JS9k)rId1DCl20CF3{n+v1 z%+jJyiAM8gzx-1hv<(npRak0P8w!vLAiUTu^``g>L^1J~4>l<Nq9-r@vK&~|Zleei zbPYL7{6!bgKZ&8w;ckHHz-y^323#fPi4X!Yn5}Dd%l(vr)oxW$b-YR;5hu1)3e#F; z7S2pzKg?w;9V@EhQwF8%b##@I*c`etB;A=jlr_92>S6R|ow$f+7pmj8iDK1|#NCmc zK7eQ(QW6X-G2TgLJ_m~{UaXEcD$G^mJ~Nvi6Co0Ijb5Cq{w9R+Q%dv?yl#`J(oVTC zLhkXqc=CK6G}q`$qVUrvO%SJ(+N2zeqqk0t|E+;$;z5=1XIzcSQ^D?)E;aOUoyU?W zz7x=XH=zaHbo0Ow>PAR<AWiM6p-ZdWwNSLHHmAmH$kZo(bq83c9)=ZIiqt#u5;NqQ zt?M77AF$hMxiMLq5aWN7sUT!{jJwG*RlIyQjsr2m0d^k8*^5dCS$u8}G&e4tdSq)< z&Gc_*Q^w5zx#O5SnKCW@(%5h<ff2Jtwcf&luORwy;|F*%-_TXoRW}|;kXOoq9qf__ zCpfkO<1i%o>jT&m5WiKn4&9K0V4Ek;Pf38T`F0vkwYxnzZf~`ZHMJc#m=?DhQYLNz zUv`NXiNe3lGc3_4QiqmyqMr1Lcwn`=65`dL9oAKeSeEPm#~S%zBIBwlgb0l^Fapd* z@-MI*s+8II3mr6Do|mPXkbXaK=+g^4CR;qpEgog5JE)dDpZ&y^_w&oI?Nknazy!Sl z4~=9$$~^=)--!W~Snk)42-n^sht8`Q4y;Q4^-$`@qt_@Gb7NhV40kg;2O!5EE8bbW zaK542wT~ORm7JSOGGc!`+5Mdrj!$dwAouE60nel~$tMP@PwN5w^}UP-^n06@8A#ry zG-s))*VGIieE1fR+39~-=PmW(OgwibJi3hS4uuDP#T<H9?AYJIU*Y!wXUd_e2wrnW zL0lcjlp9S2>Q8vUsUJ(r9J~)U6&>3=`5ouj6*}duVe;#|Ugc_}CQb?)vZ8r?KBq6y zWXcPyAG*7EoA@n*c(SBHv&>Q**OmT0z#JW?>wV~H@Z|k0jz8m<W92wWT9}XJ$yu_7 z|5x$<Qv1ETgFIc(ONXps){C6;Ti66p=bTFbbJC`Kr+hdk2yoci>!HLMp9Y_j9S^yy zxZ5L?7#`qwwOqQbaZX>j?TzO3oT}Eu;}g`$aZX?9t_%fMIx+2BQs-~>Gbp8rFzKgm zQFI6AUn$y3h00u?Jd>_-M+29mu(o4+RFv-*IX655aCdaRMjLzGD=zShCrxrk7o=Lq zHuo15UrwKf&d_@@Z#>V*`>DagkUDi89cSo=Ry7E7`YS#@tDO_Q!XS7~-r-qof1<WV z-!-<}O#L<|dW~0qbG}Aw`?@&0e(@`m_;@+dW4!t;S@pk4UUX+~XV$kEOllE-&e8?j zIz6z)<?`bsGPx||He)oLSg};WU9q)=S5o(o7E1qXfE5*wx4(n++g^g*VabN=Y0<T- zy%04g_A-NhfR<meEqetQbP%|en7#tpf(vpQIyxq^GmLE_yen&Jf7XsWx}&c%b1iM7 zDNepCIwFS-I8%@0;E&nI>asbtsCWyh=Jwvsl6Q^Zg%almBzznzrsLQQ{hYEzPTBLr zoeOe@^CvPK5nSk;znnv2+3;!w@m$X0x~zG)Q=Xes&53O_98b1%+ZxU{)ZyNRQTm7k z+7bn?M*?p&E}b&U;#b9e*W3W!oIETPXj{n{Zo|3Dez@IsHr(zyYccO%u6R<Bu86y` z^Z9aynp$w7KN?C2-3-+Rxxt5$YTq9^7KHg|FA%9{u4n&cQSME_Cw$7S7v-KXl;fx? zOS!i8=M{%Jms3)U3SaDlV(J~mtY_eD`)|3=V(<JtB8$IsJ^m&DAhcZjJ6ONn^Y<N( zzlUV_%cu;0bzL`_@x1ow_-Hn@KV$e}_`4~?-x9B*0sPX=^7lX<IQZ@uhu{AepPA?v zcjEQp46lEa*O}L6W%T!p@S9O}&+on&eji6ymfznZwKslylw6NbB}#G*X@-(*?aR?O z%kQ^xeSRw@X86tgS)>EGBb)|m^}3Bi@~vJk<sG*Z`z3h#di`&Y@3#R+e80v14*mnb z?T64$Xoj!W0ZlrUQt1W&P+2PNA^LiiWx39!Z}!YUAkF&FjLHs8KZ;XS#fNijXHzgy z+1nmf&-tW#Q=!Q^w)aVP%!sT^q($~N7j>V59@W=+I`n35pQay?YVR+72+b(a?TAK= z;vj3($iwy>kF4B|l1)~lN9xja<?RcJ?r^TZon!Mj4;3gUTuBG~9&ri3Mplpc1u3p3 zcb06$7QM@M9oeD}JzLZ#5?IE`rHq@e>YTDygU$uAHI@91Ucp(^TzFI+ZRV2A3&Lyp zGiH->{vzl6SDf>ocg}y4Q^uV!TrKguGv-asE9aIEPQT{VTF-j%F6gor(pa%`*N|Rb z=lrZW=#&RHRdaRqES=NJe;`}9pqIpZb@}T~qhcYcYxtx5d&y^LLB{CJIt1dR9;778 z8wYRsM_)jmQl30j0h%s~gZ6ju5BcqZJTXI<DdKfAMKD8jOx7JlxH4vD(I<sNntX9u zBtCx$c|v~nEl)QGe0lmEslCgSkFET!;1dSh)xOZTwZGuaL;IAcuhRi^I;NOkBTq+s zlT=!sKJ?`2-7hasi=FfT;hg`1bN)ZM7>2W@*>~rh^XA@Vs5T=*zs-`NdbZ$tGW4os zDCWt~dE}>M=qSn1e92JSf7IEc`o2Zh2s7j^!}C8)!gm@C@oxvD%=`9Ceag>`b6_gV zGW^%(9e4ppYZl>u-C4sC%j=xzhQO3p?R>0jUCo~FN;~;B*_FOtv6=8Hw~2T5XYqb! zYMsU@zd~aXCvS2YbgGv;*HEGw?{i&lbpVz1*N6Uju9Md0<G+H4Q*IA(eRtdIi2*ke zMTuR_xXtmfy`1UyBf_pe2`L;8=m@StsuxErV<477KxX<q;c+l*n1f;8HK)4bh9wGI zZZnI09jN6k9Ohd8Elz?h{2Jhh@l3O)!e+2J5L<}9r2t5D{cg6y-4YLoe9hZMx+X}M z_xA3Ckh1=P)QjSck;{cR`a_%A?~%tlYZKX+sg%MToz%aQ^QG-X!VNO+veOfx{N2?n zQ-M{uiQ(F1;Y1|=Q@kN<of;KRobj%#^0gZK6nZ3MZTo?q{~J!6`l(8P9Cnulo#zaL zxf`Ze7I%l2M3e9pcWO{#01+$Bhjz~#WSE=nSvfJS$~@+-G^Yz=r+`1GCK28o+}i9o zjlYKpa)V|n!jhQCdEP~X*MA15w-|R~4Xc+mI{JE>PQT9O^tAl--uc(WWhV5i#@g%h z8hj8IEtA$2Y1N`XYxy%_MV)gg*%z&pIGno*^TZ)I*j={GoKd1fZl415wl(2xD-*eI z>D+T2uuV5mYrjD?fj0Tp@&L7w96bOn;-lMEhXd@m<{kKR1$45pN&Dt~xz9Z#9Od3a z%=+5YKj9Vi{BxAWAA5o?caOoJBKWgG{2?gn^JfL&%=&XZ{;;<Kn$UCc%1<Q~MTK|p zYk1{YIvPG*VE8n@E1y{KohMDSyjsO-(()<@ug<W%3R*>Mwu-30vd62X9<Lhc-{aS4 z_{H*~aXvYQUkVsnejV{`i{9YfyV88K?*3kQ=jki_JD@tc!RH?{<fK(%o#EdK@vja3 zk$urJ!@s4*EHcL~bjB>VT&#wREmI!v#KmQni|c(Znxnnh#bdcx+z67QWevX>ZiWbh zI`apl`3d!O6Oy4|hNo|)9ydH~VC>>+mIl_%HsP?c^bITaoOg~b;D~ormQ&lCy#wJn zc`$KyuTRm$i^GZGi{z&%a41H9u+t*<2)~pywHIgE=fvnw2_#I!A><{V!4$O&pqAOl zR#wV?d)ctNz{JQEM+myr-LZT;EKgs!;PW1zs;o2rN1s%a82z#3zZMhnLS}07k#)6> z`L3|#)NW2Twlm|ucN}DA#>}i3ao-9zzt<;RzBz5L;s1W&XtGi=VD<OPl}PcGoA@)~ z<2q+Ne$tgXmV4|Ld?)AJt=zd_m3sU_W8W83^s>=w<8O`mB;$vb?R1J?b;?Kcan=fF zz;36Qv(#5Q<=0e_cOlclL~{$JHkElZXE?zq%jJ2+n&2_f4mn=M=Q0vW%VGQuZK~e3 zD#H($P{7&;{kQ6$7MB|sR6uh1Pj54nmG?BEErAyrc^N2q>4~V+SW&6}rLbAN-4l=f zjU6y@aiNimXS>RUOn{Y%*Lo%siZ2;&UaveAV~Q>sXvD!#C@lwUG_!K>URn+Ye@kc? zIauW`H=fZN;}vD|zA{I4yDQ(<rTLzM@2vW-TuaWRj~UI_4J7_e!Wj1nYsp#9!@tNG z-(q~~NuQ{6Q;~D-hy1>)hqXn{IqlB5?;0_A$JqVlPT40;@xPq%3z3Pn&VYYA1J+3_ z$|oWd7iMJQ{Lhn#!jYW$X=TC8&q3$ePI4fM=cZ*~T}m6|<o|l>6^QA@Z;7wQ^IpBS zRBvM-h#%KY-g=37LGvN+C0Fwfqc!hg>cACfn|BXM@@Er^=gGBCy|$aD$@Xau+ZiZ3 z-##6=)jW-~Ppf%xOW9ES^z)C+(;@cht`E&qo_)Gvqj}nRjp=U_?*(Z0x}Jonf~04K zr+siQSfwqV*@jxeUp|!PFYgff%U*o`noF+Avo9bc(;lC#&*g45J6E;h)fOX8|KDEH z;KY{a0{ljuZmygn_6?Qiku&`=g;~kTr;fgJHl+<t<3dV9?(&uGtn51KCvdq#pQ{E$ z5@)iaZmKC?Q61f0;M~}!082k~6?$`u^IYzkY>`k1jW5Hd^4)iv@<ww%9T!zRx3ntI zW<xkt6>U{cq}fJy%)_YWx>MZT(KUSi%Lf!S6|1NGEv?>WzZ+yIGh`?;WGFLaC^KXz z%f9Q2Y91M;EfO)!r3U`|2pMKOv5*<`vp!*NVXq>D!SKAxtp>d?KI?*sYF;w_0>Q;N z489-n47y8M=d%~9_;);!d(3-V4`P!=(FwoixxKIC5nq3Jyx;}^Ep=F#UeU}`1Jm9j z^R#1&^AkSbB68*Y1VDVoRmQ=#$F^LJt99%q8KK*Oc=Z8lzS;RnTb*<LatDKb#d5xh z>R-@Mod`ph<|%iibe)0vGi+tU=y@Ldv}3f0k)&DX#1>Gsd$x59@Yq%f-{u#b$^8h; z`C<|bRIH>b5flTPRR{yO_f1!zQq#UU8EkIK@5;_QQ$q~eA&HmSSol}N0JF95CkR~@ z*7_2+d#u0uRfDzl;|<=yX{nqBTJII>X-zo|cp^<B6ERdCz$S>;odoJ*X+U+w{Pxr& z^Wrn7DsfJSi6ULZGa?^O41Rs{K?shwUOI*O>i|wCZ`cEwc?CrxVKCYRD)U4=UO-Vj zxA!SCatS|sLcegz)2TkDFVJA1et(;JjR`&WH_8`CE8qUkjn`V`^Xc(y?g4w~-?O>& zE&Y4e>Yvu?>CtN$@9AGBOjb|%d+IuRHTHN<&Cs{eXoQsG#!rkI6zkUn_l{Y-#VW=x z$!YI{U0@wb&D@(L*$98Z4CzF7nsAV>3DW^_HS?9#1k8WIj7TC#Kx-*@>G*CtPoS+; zxD`%pC0UVL6Ny7FPOmMvp@t7jYZ{kUC#t7bJJn0cY6wFGR-x6c%?!E$Sk+EsDJF<F zNakVGQr-g$chNM~T{RWUrp!-W3*3x<;z{UPba){J+%00v;ZLkNTy4$a1qhj9Y~X=> z=AMe$G@)1X`I0p0397Y^V^FW~Lh1|(d+N0?AC0!sy2g{(fktAVQrNqyVl_5%VelzM z#LdH~g}%i43Ky<%+X$+Gean<-si$^k=1F~IP{a$)B&TQoXZAGphdz7I{|tIE^ta=V z=iW3tK4?bJk(fKn;l;ulwlpv$z>BsB$A1`BG*`DaSynW|iZ&Bcg%v!EYIByti5YlH z8cw8Q<&?jqK42R5<nfA+vDCS^uEpa%mI6*V;$HoRoQX@=4v5j5F!&x@aLj!DRyh+^ z%Pqx(BUD={KY6b5gU;laOZ0KUQrb=^evmxm6?;3OpqFyq)1NI=Z^nU2yVC7EeYTjQ zOV(1<29&YS^Jn}b^|MY*@VO?h6yQ&i6nwIr)Wi>w=ZQ=6DZYqet;8m;C{d{Ze6o-# zb^oGp4ZfJFRXMvqAcY|f;+yql&8B)nq>lgBwA4Afo0Y*FGHGpJ8jelkznMBhZ7h9^ zZ#LN)POgaa*@yg*zo#{TX&Q8{`~<YdzDU9NkNDHRRt4;59J|DH;OuU-xYj*Sr*!-_ zzwO{|5LrlzHJivZm{2nQMVhy3^U&@W)K|MwLiHs*i8OWZlC|b}Qg6S@pZ0Y;PM~Go za-P<tc%lb`C4gQ~b9~pa8p!x{KCu^(J)SmX?{PyAQ>Fh(Yc=<bGLf)%>II~XC}ML> zpotf%kw8mT`LYn_n8fbbrmeE`d+k+8<-~-!I&pq}dJ0VI=u%Hd3DWmuRxvutn?mic zij~-ohxef8aIgPX*Ok1J*7ZpD;lVPb;klnb>~QXXt#hsr(_Kt*pVfJv9(3O4zt(vl zI_LHFpZ{$;NBs9<mD3Cl|JOKPsavRWo!Ahs^Zk0z`F{Vkk?%+6c}{FDyKJ5LXBN~o zx8!s2*R&0qi=4S^!AP7s)d_PMSh%2hXWu%Uz`AKIIStPIrBqAI;e+aq4&yOZEOR0& z&FffFqgJXCz7pW-v_oJN@bOi5$Szwe%hGY;HmouFJE6F_-J0ng`bE95E)xcS%0qSY zdhGZ{uIDo5(Aallu#Elvhw92IPWY$(wDaeZ6-u>XAIC0}9ca<xYosPD6%4Gd^T~^p zVpcsnDr*{aE;1&bOj+HK>R@%7NY$<6&ze;<u@z--WOi8|%dBE{oe8Z}_RKC8N!Ezo zjNNs{w(*4Bl|^JC5E9s3veRbw64|{8>gAHvN*UZ=QN8Ciiseel{HtSNGl#4Mn!wh* zf?-spHOqK<n<q?gmD5hSXNRe*BCMxxk*S=b&fChK@G^hatWXoC31g+(Tj&ntZ7&x2 z6+ZGFK|x+C4!x~oXTS=l@v`pBXjS?0>c9$PM$g=g0d$@#GV&Bcph8adGM@c)UnsE5 zdflN40^pIAcHL(lMy;%Ki*zJLtk41(-Kz_f(bzw`eEb|RRE+Mzye(o84mP86y8^<N z^$d`1JH%A|!UNQ&D<JGr&j4X|c42nD?E%W~3J4q1GeDS-U6_#6COfqKx&p#p^b8Q@ zU>D}#UJp=#0VES3hK()&3QNGivhFnA==slR=&yIA@6vDlrw@(JPu$2U=o^e*wt_QR z5v!9|>laB}Y!scETlIAEN@aU0zj3R-PY6e45HljRC7;sb39qWUal_uKb1vq^^aMox zLey=Xbm<Z)^(8NpD?eha{){(zE`7j@nf!{JFbswB$zsYrk#{rx4T0np+QfHJa--=N zQ56WD_4t=+8ueRCP2-PI6TPRFOoY|@i;U-zu{kf$k!|&+TD@WG(&`;`x0+Jh_FWdz zo-qQ+u|g6T6oVv(Y5be&TO-3N$yEd0cla}wfm7AkDQ8Wq2h2K06W0hOYpXPD=wzr- z$Hk1GL8aHJZ~Vk}a3irdg6T}47`N4SiH)T|7Hbe(Tl11$r_<ZTa>_6w&c!&5#%^7> z5`g1qdLd26$r1Yu;(oS}#78gb5ANcI!rt$R`5W?f{Y$?B2hPsVx>%J$tV)&J#?73Y zxRbN0d|@Q8A`(~?jIJYo-$Cpw<UHG}%W{@1L`<UoIjdRrZWyaF-@+Ll*b`7?pofsC zXbj6`9;|MV!nNudR`S7QTMqMJ_3j3*-aUoY8(5f^mp?GH8lKw?EYIeBF10FU^RO^C zda!gFM0Okx!dK??6t6sBVPsD9VD;$+mS;jgA1|5EK2B_7yB%ZSZeaE8DP9C%c5&P2 zeI6{GNzrwTo<;tAykwF2-1)~ItbX0V>eo}e`T?sS+XX#X`*j1$Gw`2}mkj)VPV712 z%kXUYSGs}qm7e1D6<~eEiB0xk6?6lupr^13fK|YEI3BFRZeSJm6jmXy3Z2**wv0Q^ zp1FVa9QN$!{WXU@t2s=OF6*@_%w@dR8Kd`4-LGak*JdC7YX5bzToaC{)-N`Yqb(*3 zj_{E7SINvfO{K=^O#7`iZeYAs<F|GfJTQ)+>?wxb^ZtPLw)(;9%Y|h+c$Lym<flzs zrD=+J2Vc}WhSpQI9<2PqI?ZVQjDsI3uMdaW4<4+?>U&<S@5Fks15CFUJHQ3Bu>-l& zW9i1m4pw+hY?X7#dQBo5%ruaFwXbnzKcH;<E3~|XnZf$Onh|*22qJ4p?bhszf6HT1 zf8-3;eV{+`gV(6ky12^2&m}ORdN{hq8Q>47)-eg%Fu^9W-&T}k&Ff0ZZ8brMc2RRp zlm2M_)@}tGI<Rzu-12_)Htcgk2l%|levZ%k)AyOZhzqco>l8N+CeE13?!J|Z8E8S} z7dy|b+PD8|R#Mg#?qy+z6&=_c@Nlm$4&C>V|BtWrz&)%0z+U0!ehK)V<2>AhuQmQ& z;rICx@I8Ne{l6^!`yzh$OHhBb=VssF!PiQCulVoxCGhvW@56!5w@#z&YW%rX&Rn*J zAvcIk);b(V9HH5ZFYd3qUwgN+KkmmxN55$e*bMV)7vjc8pD?&lS!joB+A+8D;Mp`* zv=dI&Gdg0UmmArYgPqK*$IVK%Jrn%|iagt~a$9ZqbFIw8%YtCN+E;o0L=LFT7=LkA ztDK9Bh2o1rZ!P{7^*@m%Grp``a%|mdGAA^VStk#;PKHUoIFV0GoU#Zk(ie+jY}l4l zoC&2ud=l2qU}cmYvt+#e6_nsZ^Z2sb$U`TbXsTfDFj^*@D|=z>p6m|pK7ig)Z+O7O zK|{{&*VI}N>)s@_M#FepsrENipvO9Oux0~)-u4FRRc`+WFxMzzN()Sz8J;Yf38Jp0 z@NFRobc~t09;-mdcvDRS9V?;|C-4eB`^PCx{{h|-y~Sx9)1A38k<R62i9UC|{DJxV zb^p3d#>z&Vvfh^UFs^ArnylYzY!9dQ+G`hnBr~gz9=?$axyEm1asU20GmcYp_uh*a zvdrqG$0IRbFy8qzua`c1@1@Tk^y>LoJTrEP*GvB1d-)HzqOhYp`p4H=itU~CVK3VF zr6}f^v{Ce;_@W<J+{2*Rpdt~){+|<3R5URFwAr(NXg`Q7bLL-J%5lEhw~!OonYPQF z`PG~pzas3mvPWm=s!;s2%bod`eLKAEW4#aL+rOZ5+d=}LfvZjo#YYUQcIGyPD|T`+ z8F$1sJGVB4Vyo+6!j9hcr$v7;x>x;o!tQBfcq#P*_D<N%L>HXDaCUXY_DPegVr!;c z5kG4f2LZ28-LQKWKvqt9A^MAnz2YOzuCEAJG>3U()&3M!J_?ub1l4~CRqciQx4sFA zR5VpPBb&kj4i-LbOnbtQpV08SZ-$-I$sRF=4XKUk{i20qUt{Bs**12;`KjaEcjK^D zvQ4FMJo(8|o;g1vH4^_eYr~wkUk>tUKj-`rrD*jC4#6MLXb2}lRd3q_JucU=y=fxt z2we5u_+*W5iSS@AtUgbhlBa?H&`{@p4B?u$|G;9zW}BEG=I~n1xk2YaQPpXjNy5^p z#nNfSm?=vPk<L21{ycVvL8O-U$9TV1oj7%OxMJnx|1-x8R9CE;{0+m#2wO_FZDtqm zVpNG*!#}0f<i64My~#TxT=8Pq8Tm0MDDN+PQe!oGGe1#FbR5ND1EOQ<hm?5qy82b0 zj;W7QyZ!o{heUqzO>)Awrw%pMndds4Cot`UF>FfE`P90TRC{ZRv`N7!kCp1ID-t)C z9%mDCN-If(6S30cKs?M@(D(A}&MAFB*>1Cr6^@lY!b5PuHKH3ebU?E{+8>wv(QAA@ z8GYKc$#G(*5^>j~s`J=(sC_gCI`e&=_t<1h_fut#{WQ=xOYI+wwv~1^SC#Bja^+@* z>MqpRr)%mb@L}j8Rpr=<{Lk`p+?E9*I2&buNXa8!$w!<9NQpY4<U~sD_DWu{CG0v; z$=4~F>6JW530r*UG_lEnBS$mxJcSC-;CA{+R%PRI8Lcn(T3=`3dbpfH$@yN%MV)&5 z9wn!GC1G3QVL6zR|M5z`)fE@%&ruYD$6dnXnUAw*B0LWDT7I%Cn<m2JAFo(yy<tnd zkqZykD`~PNS$K@|O8!VmCz^nV-JTWnPI&^MdxcQsA4mda`b5kxOMcJG)V}?6=HVu@ z@G81^w&*CD{_Sj<vg?ggB4VYL;0J2|YY=Eo{vo#?8;qGd>vJU+Ryva%$MjMQXU24J z4k1IY(5p(<>KBw&^BZwnPE8D=-qQNg<X``yGjqI(oL{br`X>SODu=b3LjR_QsgShg zIg#>aOr3M{^Bgo6Ucj4ATSK>MJV91;J?G+DtgzVO=o<FcG=<$ak`bXut;So`F!8h< zm{&FUgt!n~z?eXHXYvQC9Npf_X}pBmd??`2A-XVMhoB2VPNa;PeQ|89YC8GM>Qhc} zViOtt$v+PMsEYGH0A=9?pB7Z?H-k_^{Ua#~=^x{jAV=K$ONa4`wd94a2C|*$_Bl3} z8ES7O;ZX}}K0-UF9eaR!<mwTK`T;@?r@qM;ToZN|Q>Y_0+!mheMVdehZd|xxgA*M= zTTV5IMFivQ()y>=lw<uP9E2o`Q~jJJZO7E=XMHNS|17hA<>ZUU){k{!FF?4H>&DjB zV{B-Jt&ut)AKJPy?P()^b^lvm!s`ZVx+^$%gnI?}RBCO29sJc5NhkVu#uiG92voeq zIX_Cf3nL(234lnVG@s2L^+&SnC;9US@-<owNVHVB{)ye999vtJt@A<jug2Y8UEWm9 zf%-R>gIG<)C*HY&>jNCEfNWGp-;``b-1W)hzS%3Mx?+*j_&ss0vn){Alv{Cli$SEt zp*j&MMILPT5(A<nZ3Mp&4B2jSmYr<I-uMy@bthuz;tDdPhn9|)eN7D}%rPx}Dw1)R z8K+Y|$57HKzsu}3<--ghT53irUT~s+<`Ii@>?&rWGuhJDUcl4SD|ia=B+dMQuEO!V z%v1msHJeC;bb)}cFv)R8BleI}q?MZXPxko}rl1S4XR9=e(#dsy%+HyvgQ9Z)%CSn? zG+9KFtwH|$R_4!dW#0TYZP6HNbUJ*=n}0dg+OX48O<0ti&2f9FTI7-Wp7T>>l2Q$3 z<5nf?0-f{_GAeu>ZQvP)Oco3@v{oytn=(>5Jloir#6`I^?pkv#wVD4rapf5H&%uQI zJ$_Dj$m7QShI3B&L!~A3ZnoL^Jab}~SZ1er+o)Z56gN;cP~U%>HPE2XfxqqSeRI)1 zu1HEf&Nwpqr9-IILN6W~|3EeEIk@pi1_9|+Aoa9o6GACn#E?Aa5BbQD=TG@F`Oq~S zn3?=OMX5Xx%akVy%U_cJw{CYwYE5RJU}hZ0Ba)uJMdH>v$&8StImMIg^AGAQ$c=N! z@L^1u1U01!lJWXWIM}5gWj?<;ab7Mi<C<#*`jY3_=m(B6HoCq)!n;Vw-MALyz7KL; zxeQEWsDG^%hReIn2E$4i8#5{b+a5EBYWk_9KE9L6bXJiZF`=a**$XS{U%S7vtb1e6 z7IieH@f<Zs6h?&K`)`Ba@95c{2mB&guP7^SkZAzPobWSZ6#u5eH<@Vt)4h<_q<+dq zw`_iV;|1E!QTx*}?ZHA*g=h6sg=QOGC~fcs&3rwaW%W~eR0_MxjCD&T&qQdljHIni z06Vs**ua%Ap$)RDsgo>9z-P{1wj4(#QFsqO$<N-}-7$1c>L88P=!qw_peJcaeP|?z zb}l}5p`(#3qe*I-QB(5wK=MLugijP+{ybIhQPm$&)m^yYpj<ky;8L%VtL0P9`8{0m zStyJ35qpiLy<LsOWk)c~6JsXdX?)GACC*p#ftqJcf(v-&{3zA+n2)e(=!MSoBV|Of zFGeJyyUDplP^OX1xga;53b}mi=x$D~IZQAX%I%3Qz{DV5$)6dxgn+K#l;DZ2ngU{_ zqk*2R@k;3QY(3v?pLrak$C>HJ^YnNak9Cw?$U``~+i`Au3ry-jRfqmDyGl3pDA>E5 z##urQV*RNUoDzj&ME=wGzzy7HY!L_M+itNb187kvoUb{U#K|4(;r~6U5EK<AW<%L( zGMpLx8I)YKd&y=MM<nAr=(aO|jzOX>y0gD?<9*~j@nR0WI`^@D3-MT|Eom1BI5n;w z%)MzJGAlXrmsQsmxNMp2SVuvgbK{Rq6@Lh^TL&?OMB(`>L4Ed{7WHAE?o(VknwPxl zUYWQFcIMPNN@~og#6go^LPGiCyDaBCBL{aGp5h2rtaf4($b!rAQxZSItOlIv#U3uA zZvU%K@W%)~*MfVvcEBy+z_O0@zD@0RStLZY&eG}KB@(h_OOf2TU3@`CQ8)OM&Q$dI z*x&8zGltVDF36uTvd`56l_NCJzbex=AFJpXU-d2UinJ$><+!3W=sCu$%oy2M_LaNp z8&`2sq4EE$GNkhK0gBf=$Y~nv!76G1jS%O!v_G0Id7@+*CHk(2l5lSO9YW<IP^n{E zef_g=3@Ia>?=+rED!711Sk4prL;aDtsXEj|>N7*wSFEo8wln``Bf<E-oVB>^W8}4g zGNK+!xctwEtXCUHbjE422l7aNEj4Uymdzv@<5Nh%lx<t9E1I0>`v@jcm`$ekCIhEU z@sX{@N1NUzWlRkEt~zZ_mf+*C&mUG^DT{r=8%DI;)9EC&8p8PV<=&BPc4G694>@{f zXnY7W<98w{iC7A|$IfGmtZvfS_OZ`i)bx*@!dz%b(&9vi2sd6a5~47;HR|9QaX|7a zj+(`Hw!@X>XocOrs;ZT^Ta>z478hl-9NGz2-e8<{SU~mWH14nI+lsj}zs*Ye)%(@) z@tf1w_Ykup>BN=#>tqo%!j#U$6+JxA3}iN-pDYopb*yjWzj%Z*mc7ngE@oO9Y+l!! zGsAZ1FuYqS22p7kwU*K)Q?&Z#JfRzJq|iu2bw(nl#4tblqQcslM?u|-@uYqRfr1NW z)3qAyNY*bws}lA$6R8^CEEv;wp7Mbr<4xZ(2;qvB`U7<Q+qmRz-iFH<zQ=}9EiN=n z78ZQ7WQJ;K#;M@d&J~+9;opuwrGJ~90|;c{CGhM^qSHTCI*w-yJ|%X2oV!@H!{u$^ z0H2a#^C_pBal!(*xzJR{2I!ak*(N_$dX4vNxG(B^&l-fl%+|A&E~0H(_eM7ud4JK! zKlegNz#9)k6vDbBVzYII89*B?4N5DM0@TD~(!JA8rE(VK4Qc#$3mkH%0gHU5N0zt^ z<~de6QNM&CsXOy0h47!(I%Dy3_&s4fzhU<=bDLM#{Vd|X7d~;08M<@BA=H&c6yd_X zAF?9@uSa;+Kb^2^NawQLRGo^I%=pWMf>398%{5%X2JIeDDYZ3(aQR9R;f6a6);Ak0 zBQy~m&Brt$%qw3`jY<saH*{%gGadQ*T^&D@TXma`(9H&XN<6$S=#K8COlN*bJEz^s z+(d3a^)GZdu*jKrUax>NZve+;t!{oNzaQ^XT<)T{%c2X(gr_s_?A}xw)SI)x`n@r2 zr#`3P5-Xf@XVlB8ELukbF9D;@9q<dkxz{YWw=x7r%~zakS|jRe-6B*Br}$=p&69oV z+}xi?c2qsg+2dhif=X9cV1`a|L?lZ}fETjTt_xNi;6(FeUlN5ca#cmL;vc)YUx5!! zmhqio2$$Y401U*G2)4q2rVGP#NZz2X80i@E`;cWt;>W~WTZoWywdTtNew~@UzXCtq z^&=An9MEeo*9tyIzkF9sB;ql9?;HN&xEgM6<0eL!+5l%pC5FJOCY@v%`<01362Yu- zH%mWNKD0v@w**$D*6}bK`;zOEgp(4mICag*+@@6S>4`x{JM)%~aGpE<Kt2#0bbzM+ zN5o~k{3d?2eN(%v-thKuz8VU=5lY<I0o0%q=Hi-#>>F!pXaCbXf##jOBzY${RL<uy z^9OQ{=)%B?C&d<au8wMXQlHL{inL&OBkJP`<P9iuUxxLt;3`K)VB}BRNiNsOjbIm> zo6n7<foQAYp+5jVOYBuQ+zn0I9jbWWiQUZE+jYTh%{i4$;{Y+NqTPvJ>V;z^jvUHZ zFfbfl7~p$>r8$-6kWNjp#m2fRyj7F51}=|{uZsA}z~vB=A#|fCpm6oAXmV&X$Le_= zp>GUj^z!LR|EytC6WPP<5stK`wq_N~VXK4rTTNPKWr2SETL`V?6UAYmZ~0buHQV${ zzHjNad(Xb5%b{;YdN?zvjcMPvcAr9D=F8XZ>H+WVhVN+RW#Yo82jyWt%GS&s$7AxM z+pL)@<H6Xt`2azhHJ~T?KPTB>YP6cdgnD2on+!s83=xE=5Rx~uR{7;z`LNZQIijyI zfX6g&%?JkYh#CA6JRmtZVY7;Fv%iIR^Q+Z}$l=`3mxkfqb4oR8dD=on=$H8Dqsv94 zrBPCQ6{F1>ole-1x{c%*MdC`T<jmb%&FP@!SoS%k1IY<jY;tZW=Utc()<BFGe+xt9 z1m2-b&3Qp;t?nY|ySnn>4^Iq87^Vlf4sl-SK*V-l!GX<d^ZT`N1tO-%SS4pvb2w3h z%^}!j8sA(h@?w+53$OrUc8YqTnS8Stm@%M_NAO_9(n&F0i>PKn4m+W?XcF#i(W!Bl zpPneaO&D-XkQgB(MFcZ2YKsBJIH^@)Vn<ElbOc~Uq<njI1t)}B4n>?%FV?s(R42yo zUmacCmoLLU3^#w)8&Z7`R*dl-+yqJ0C)Lppa;qy|aiZVapEw0Cg903>+)~Xuu2>m4 zR?aYD_kz%<MCkz>2EtqN3B~{9&Wo`7w7FDM8HI0>0X1%?p60|4dDM%U1@`#_J*!^c zBGt3^Y;uN8@EQ5bkVEYv70HNmdQxuWSQfpb5(5s2xNAg%21<dNH{U?DCN*6C^3V^% z&&sa$%I%XMkwFay)`Xw)b0iJ3O+)Ro5DCSi(-X&kg9BxUHibA4<!h;LLPbaASWeg> zX^_B}GX+J=CIHCMVtON09cb4wbQ5qC?5Z@s_uDDH{4V3xC^R|I<lFgzcUjhpFfX<4 zrNq4Edc;(D+RWlI%qz?@+~pUE>&=BZ;g%=I(C08&+F*3O6Ly|mF}zo7fKbBTo~_=4 zGkSAfXtMX#=G;(X0Ox&GwFKQ&!Ic|=ftIb!z4XlCmr4gnx-Hw@*xH;=%2;j=8Z^c` zW6*sf=_5_-aqhPvQd>>ny_$-}PV7$gx3vj(d4*Oao|q3uJ%&|d&!L{MOg%wiB%XH? zcd3YFrTnHnW6wR8V2lP@D4sW1#pTv*43RyCY}Qo0oEwueF8a2o@gsy4zj-zPudKOj zOW&G`&CU(aBb}KQe{7SP@bRyt7115V&h!^dj<vAQ=7`PnM<0Ml$PxpoazJ$jS7I%$ zc23z8PUJogQRPM)gyZGh&_G)ueX*b=M(3K$pODFCsC}I2JLx-|2oH<^4x50W;~?^z z+%`*xOxp+fVJgI`N`z+%l-uIO{$?6i7KPp6`3r<s9mE}(3<tJKESJ`~N4F2wcfIl9 z%#_W{aBi*+oa=>lvqPg$%5MiH^OS!upFD^155hi$`Za|TVBuLP-OF1Y-BEb;Jb0Mv z1S^{AAHwmugfrojmCqAidXOU%=*M3&K@vNsL33WY9Barc>i-IFCY<mNXW>&@PLy(P zxSY&j!`j|X<3*&>e5fziTq_<Nc-5iG6#)ZR9Voe~B*`WQp9QQ9(5vRPz3oC+T*;ZT zpYD*cETV<-IFXB$k8=Yq94gGxMU(r)wf6MvO&_sn{RW#}8Amv}nAckiIn0P#UY*85 z)-e)M2x2&5H~~x<1b-UC9gCEI6e&;g4J}vGSj$-xFd?j27ZGcr{bOp6_Lm@+VzagO z)*i|ge89lBcFy>coAcE{#$4ynP*a_p30WlbYv<2d?abXZ?jm{fGEKtQtasgfGc71A z@9uC1CTGtiTKy1%)i{a4JOK}{<HWtxci79Aeh*w6n2$~7?z4G(EWRdrt}0wb1sk6v zev)I$-?rr^s{BWk)8rLOl1D3J9lHz3_^!J6sxnrPA&HYs(*Zu=D2o>c&08az=`^0o zw|AncrLA>~we%Oc&FCL8%c%$yZZlM{&*Ab7@;GL_hKpA1ej+L?FjVkXP<v9tJudY} zw)S(>_rst@TXz)eSPhwzp_7*`1zp{hV1wi7S08#~b$t;bImN|eSBk2de-SP-yQTUe zK)_fd8XPGY|6~WDyInDUJ0go$b@>u7(i+|$2zTlwM%#dyu8ieXB{$OoT825o1!t=w z&fJ@gMPq4SUA{sTGXwyR`Ar<3lPYGq^7d1V)hO<71B0_QEaI0(fwm?b1s;fd_IIWq z?3EO%1O*#S$!=AVra6tjmUu^ZALUH{j8S1oF@#$*KHS5^W2F;?ed2`S%>%e*Ai0!l zmnl%|I<=nPL`q7R<P1(;Bozr5@oV>W8z!doa+MCHU2uU)BP#tkd2g$E3m@y?-Kq2t z5C4F0^s_!wUgwi=TABDA!x>1!RD(gxMsA6i{(}L@2H6;2;h%M<L?*syLrkgP!*wxD zHpGOPY9Vp*+IaUbKyf5xg7nW1oa-An$0OaDH(7t!0%Og;N@ydj5()L9*S&hpR=z*< zNk`BXX7cUWo)PrHs>@K-F;Q?htcXkMw^p`lABVHcmcZF*?_gH&3@D85VCh*!-~RB8 z<-PGlibxR|sv_kymh#uPs*W@LF;o1s5eXJFbvR0rgA2*dnc`T{C;n(dQ52{r#Qs?b z22>>Ia(3vG8eLEPY3C1}#u+>#{*4^YpFBz^{)&vuYS?-)vPTmEQAJFH`E4}G>cFev z-gd1VjwT6Wdh6!2mfIGo<$TmeYbk}VchD&YT5{`iQa4$P^AC~ePmAgQ0QygiPS$N} z*#?3BMjdDV3NZZDQ`Bfwjg#07Nk+4p)GOm{R(nHNrJmu3LG^W}|JkPcJB=4YAUw)h za!Y7ai1ABSs?CE`vG(-$f-^*UzY(0J$<ZRi3Yo?%QA#x_s+1@^P=wme5!b25*Kt(@ z>N}O(DT0wy?peTiqJ)KUojWR*1VcQ}lKA(JQD>3r97`PpPDHSAz0GjyUY^)tu}zhk z@@{@LPok8G2*(n_*juNv2sH8D#>0`Yp<B&5POmntjwE;An9usbzKoHnQ8S}q45(6M z=U?{VuoQiq*g|TO>gzP#D{duDQ2@IB@@FAo&T|d?c_zjmJdWJnL3eY|?FepL5pr9a zHsCt1jIQsSI5of{-<b6czPuh^P+?GK?yBI+@7D!a?sQY3z|K%$RVZ=Obx^H*CAUI` z++}<pjgK>61VR*;e4jrDMqFNoda>PssYl>NkbQNst|A(N)2j~DPCBRYD7a!mU5Aoj zbdq<F&q?ji^Ux-aDRE|<NPH(XK?~(X;Sd?wA1s6kTi+%Ft8~MDsBWUL_oEaXse)Ir z|I#U0-GNTyX)wf@f0ubrr5!WTtI5|QT-P4PIv@^{9lp%AEzB^v&h#-VP8@$XNO<cf zEl1-p4{91l`E267#H-1(rels2dMr^pTnf1WdI6jmaIR(yv5O^{33jtypisH8Gw%1= zzd<B~FPi2JXI^d(IP*^JwIug;&M1!D9^fjm+k27d%@L2iL3PS2sqv^<C$U?W5xZlA zpTzDo**O;3&gpGh-p-(-)Yny*DBSdSNYtD2>Qh%hA~rLc`Fk}V;KC}+j2c)O)W@mu zXGZN1(ad<1UY$Kcort^I%#6%|JQ3I+LjeT_Wt}VUm#tB$4LT0YgPFXkQI|j^A65U= z2n5F{Ca)q7#1=@aFKwpaIOEX#$i6w5E7?F=59H+e=(?%VkALX4Mb|nk^`?}VO?0`@ zwtS@Uns04mE4Z7>nZz3clV3<(O}l7YQMyXQjzIltVrsW@SmDcSb#jJZ_xGvOsOwB0 z!IuK5Kk7B}Wgi~EiDz#;F#w&*ElYhSsbd84Y;bati(>}iBZcr29Nm|iD)ZO4#>$0L z^>S*MJl90wd7|}iRHGNL$(StbF<luSGl!7zKgyV*jI}nS|KG^CSQ#&o0jXv{5#yA0 zyv2aF?{;Fl01h9_+W_piq$ssbtuu^E9xfDlv+y;GYP&4k{(|}nOn2tRN~h8aF_JR@ z8kd0vi-(&_uj1LPBI-%7Gh&SDUT@Q*mHwqohn2q0rYn{Hg-s7r`sX%%oYL3YbeYoE z*mOxU_8gdOv=cy)20U3AZ;`?3P;X<dKDhdcoB;n&zv`D$!G?9LSTC@X%*aP*FkB7( zY9UNl#!zM4r3{HCzM7)Av2nIZOf?+U__^(aA(tp`*R$l+k(d1V21~G%eiMa%5MTbO z()%pu`aej<^JHjW@nW0z*<Z+8VDdJla&6u%0(-w2I)IIEa8>g=z0ehQWwTDI-nIp8 z9j9Swoz$z#I*HSK54UHzPWoDUp>*&nyHILnrb_L6(}>M)MYQj$mp_vWzNbpkj#0+# z$`B1$lNlN$K`f<9FA=5_MT4tsllO(`PObt-T|x#|NFS~@(}}{Vg1uh(HL8d?NrVs@ zN(wdJHcB{76it^^k@0Ykp<e1ji`iH+ezkUNH$}?0RT;Zk@d4#EcGDzpP{xNgW2Q2$ zRK}ZRWbfBbojZ+PSebu6(s|<q97@Ye2?sWDGb@C=YYeg76LNA&az@{M*O;Mg_4(Yp zS0EC%=4~r8`(||gQi05KBe`66b5@x1r~WVOzICpfmjf(r!MVaXGMNIlJMg*B6`Z4f zMbor(G~*k?EBJE!BEF5gh_6yE=NQMl=K)`TJch{$tZ-YR>-*@Q)HyBAyj5=T{gh4V zf5cjvG7+4tUvr(Zn>U>jHi{ShbfLz>&4GE_ALmG8l)Qd_kfZ20@4Uw3SD0f%@xqC; zXw7?(TKd<T*F=gXDv_M#BBxRNr(~Mc4?`cKI_!QN!q(#h-MqU5+ihyii<6MQub6yJ zLr(qI<9XMSWscAfM%!{jZr((m;rH+sH*YM-P`r5kQKIy!>%XQLU_*vHC+pF<u^loS zcsacUZ;0TTKCryNE6Kp?Pcmo-nX8(;vTBx4bL(U2p5G@K&%2h69|%yj_%)vGD~V`Z zB~_QJ>N02eO1JoFl7EIZ8cgxrbiIbQ2I}3HsW->g;~w<Vc=3(tdeho+z@MtuWU7uQ z883eSNQ46W(atdGAg73id8bok-WLaH2)$|e12wb+JB}nDRP=FX4nx-#5cuMFd|%9> z@0G-hX9AS_Whh|$)PACbq+sEF0Bg&mz-n`bH@kW7l2rE}X<j<4GN%i)Y45Qd0Mttq z$Mfb>`N>KT6vPMA0|I5yx`Sluj~<-XyqkDr%sKK;SpO-R(v532z7WsbaD=phozUdj z(OgO@^$X+>KU?*)ga8y>-Jl)M`;Krh63Ju?0!L*K7$^jEs3`3<rmqR!H!VEGe@r}Y zlIhc&N6I<NCeE9Pl$LZ9=e<-a&8>9vMwu#8|Jj-sBxMGmKd8!>>=Tjg=P)G=C+|ls z%=iht`Q?4EswRqmgkjT4_q#7>r90*DE*kG{;+|5)vZ7qmWG(?yqi=bQ0;W;@a<a<2 ztdE`-ocaZ19qwhVu~`R`HOR|qGg(gKCXiUbY9Nb#&b;RKTg2bwHx#JKn^IcJ<U22~ zhF_R4b0$rOHf5y9UE#jw@@{WS^Y($w9k@2D@ZfQ9n1DN)cjfC2O=5`7yfxg&Ixxt) z^M2d$oOs$<M3t>7<arezk>|UGo4$b+>c=a=d7MGMHb2~t%^Pd;BmLN4q95<6&6e>R zK5xDnBu;pQAKWdc@h^yZZ~-Abk!dqFT(mv)X`)=SDKUIp&_JoZH^Myo_AdW#S@tfv z7Qa^}uWoko5WFw!T?2iz=DqcZZ|_!+>Z!eZh`Pq!{gy-*dv`NgzL?71HSp}|$(1Cr zcbgCYBKGbi!OOCD$7SGson)51J0PoO2|f48)Z8{#_RghaYwzCYIosZ?;n}ly&y!5s zyXVsNti5|QQ}2FT&)U1+r0b>a-Hc4tYe~k7w|%`Ed-qd{y4br>YG@5hCCPo;yWauS zw|56nyNkW+Em+pxee&=Zuy?Ig?qcs2kmaHEXOda=?oJ+!x!8-n+gb9Z?A-|AkY(?_ zmqDOR2<*k)rRASG>G^(TGOYp0LwL0<`3EcH|F3EJC)H#5r>>QM5?$q=EFWzn|2+Hh zPg3%K*cXz2!ONEa47{(C%$EPGnnwOJHMc!v<e!c``RBQl{PXO~Kgo>zr|Wt0pQ(4h zt>?*qx?V>9GgYr8iToeho%~bORsPk`lYf$*BmV$R%RjZd%D-TF^8er$k$)<8m4C8) z`6rnz|2*zf{s(_K`4<k^@}EJVObC3Q{8Pus|3Ub>+$)z>0Pj6W@<0yDLl3S2yVkr{ z|KjUG8>yb^!Tr=VdT=X=E_x6n%ST^&a1GBM{l=3-4>k<?B6@JV;AQDSSq9!$NoMK6 zepxl82fP2A?s+50c-}NRwtDb3&)ItLvZ`9YcM-|79?VbIvwHAgrruq)p4Ed{>3V5B zXvkE(l4QJi<00MX!H+2Fq6Z_@(CWc3l2#9n+l$}(Yk>NCuphO%=)tZBfMxaI1CsI) z-!tywUj5!y<8wYo<t}>gh(KAieor#>I}c84-miGvmmX~Xn$?5LX<<jBBdkBy?>$jC zWa+`N83am%K$adHAb9e7vlh7ie6ambo%Esi9{SLm@ErOu4lG;qmQY*&TJsi=>Zv}= zQ6E|dMoDzhhkCO7VMrgw@$Av@9Fpk68(;k*`cNu(S^6+A1Fs*+EPdGd$4pJ>!$&-O zJ-<ydo_8f3TYY$m=WKmgsH#>U9wV97hd-t3S$+6zrryoAp4Eq`>3V5>n3$<LmSnv6 z?Sb9s!zmPX(TDG;p%uI`lKa+&=>YZhVdo$A(1&)iJbieRWRLY>E|t6J!@UA!(Yl3X zmOk9T<G%D^{lQ;KAHFFZvh?Aw3<5<$pojX9yuXt^<nEylTXZ;Fyl@Oyw&u;Fw$+CR zNcB`7V(LTsFquRbeYlt`e;Cq-F+6*8tR{&*EIa6n=)(ZP%hHGZ47?rpb<&3oJo+`I z4{!18_52dac-~k#w)*fK&)NF$sH$3hxSwQNAAXarXZ0bTsdt^NXZ2x1x?WlzF3eOt zgJit;rQ&Y%;ky)d(TAhd&<fr_lKa+&s{rcj!-oIcLm$?V<>|xoBzvq6_fWZuKFk&< zi`F!fS^6-E$9?I;ssUe09}W=?S^D5)5Xcb%J=BNQzwe|Ed3)%?JG?+dAHrbSn)gR) zTYb2lR8RGxUVTU(YDsj_hqKA@har6k^X$>Ff+YIz<bhvAA94jROCPr1n}(MnnKeJW z!J}VO`tV|==5r+Dd1uhE)rYw}XY0d#s%rIN4#~7W+?cLs_2CzpdY9XJRv#`%*Guce z=uFih$$0T|2XvzkM^e;99}ZSSD|q=N_pJ|g0QL3ZjeGXchvj5>`tUT#9_zy_DtFO` z27$6@T}d)aA1>l?U;5C}|4Zq^SA;{BK6Lypjld?7J=KRc>SnDU`s|?(FY^WweHaFo zt$Dwuw$+Cjq<X3k7po8H!&xM{=tGDse;Cq-VLW?uEGLOR{H5rN=))&>120P-l019x zUMHEQ56iM@N*|uh)SOE)o)@HJs}J|^oUISHs;bq87|FCgT%E3G_2IHiz4L56s}G~n z_0sxKnW;LIBr$lW8+|y4qAvQ-R}HP;ZNKaD^x;PU_4Q#HwVx<~o0+)zQ)GGi@DRx! z>%&wkchQH50%g$}OEOCz&g5}l`tbMtzmz`g`fWy#6gS_<vxmT1l0DUj1=P*bhrWC0 z!$RHxq7P+Y*_t<<+EyQ~A=OiTI9q*4A4ZVqq7TQDm8}nDJbT0VDoOO=&cZLE5AWUy zyexfK&9et@DakB-crvS|^x@%5&3j13^M=x~)rVO;XX`^$RjoeMlT7Qw&;B20*8-<w zwY_IzTw)CIRbq-vMX887gfhoeGsooQ<Wvq7kxP_hQlc6em#-llPNh^tp(NsvQW@kD z6_HY%<WOd!RCJk=`9Evz{qA?|^?oxs|9-#B`|S1XwbtHyt-beq{T$EaLywS`Yj`Ff zE_Xba4=qA!V;mO7o~fB2AF4p4^5N$hu7SlktayF65=w)7cnxfo4=<7~b3Q#2hsT`{ zLqJyf(2G==eCUcpkq>_ctSBFzt?~cLhXap?fkgSR8`wIq6^F;05A(ql`A{vA4@+@x z8u@T4yxfp79Bh*h18{V_`H)36C?8tkK;=UQiex^V3T&HE9f!z=hfn-p@?png&?oX? zBe2!C5{DumUJy*mho?j4WE>WzG=^c54-W#%d>BSllMj7y=<?xu$20lRIpnoBJd+O> zI-bjiMj^Eh4hv(Gt0%~ZpB_c)8es&&`>Oj<WE=P~4lB-wOQ1B!hZn$B`S2v^GWjqO zhsT`{H-oJ5;Tlq9@*xw4A|EaStSBG;S?&Lo51;-k3?#~j_kpbgt8sX|`S3WnA|I+p z@?p;BoDbFD<%X1gV4Hln0Y}H153R`t<wFx3sC=l0BAE}>fNe8Mr*l5sSM`6%hjpkV z^Wjxst8W1gMLs+sn3NBXgv<wVSeQ}=hD|;U0hamDho~kWy5Z2}!&Q!F@}XVGYi@WZ zAI@+*mk+f=YBCNBV-HqIkPlx?L+ku}_y|R|fg5pHaXy?4r9nPC0k+DALegdOVH6IJ zJ0JcEvdV{!q{`$&OB{-PI1{j<e0V73|CJA${}~1n<-=RR)`7)1Jg$7ey;e}^X`9+b z#V3kXz<u~9Kjl0~f_EEIZUW8Z!8JGv^Waf5to-L~nuE)E&;SQ24{D-F=0Os$b^m*O zmIdp=U6m`$gTpW_p0`<rN-_@?16zHwaVYZOpMptwKwp8e%zJQHm{J{vO&;_ImU+;F zs3s3`ap>~ka>p}y&?@9*7@o<4QykCbLA8)tI)(D!o=TJlc{fA3dDiB?C{{VJ9YxmV zbvUFPc(4mTX4!$CHpn+4^#UY1?&!<E!SgLAlA+akc%c)ud!cq2F3Uq$K-KkgHvH7i z$0txWy#{GvN-ngkZ0bN>nQXcMhx|+lrPMs=os#gm9o+ItD|iUv{4KRPpW-RMOr|0D z7XR7??!_T^B|Sh({M^k?kQAo84qgyYln*b5DrVuZWUHwUhsNHCTMuY&8cJMy`Thf* zwF1@VLrp&)3P0w2_%509p$lmA--eWqI6B^ZXb3LnLk%3Ld^q|@=sulCe+O)PU=I$F z54XT_1<#-T=I6sg(kJ#wvqF7SaVYZPA;F}47#=eF<FGKLG%3i3>w#rHbSA3FhxRyh z`Ea4*nS5vx^6D9$$%m?r=kno~Nls-64hv)bVcpAz4^XV~VJ%fMlkYMdCeDW^AgL%H zel2VAKjy<m)JQ8>!}-u2+EqTBPhOdPI30(S3Iph-mw6t@e=06`j_oQC3R4bEL=!tg zFKq)ch!~YGP-L694Tt7&wHrC6^Fd7XJQ_VRSC}$~ba8~5=g}Su6-~e)Kk{atM;lAt zAup<;-jv{e+yHRIekoNX1=}qi_95rR$H$r=8!iEx{@ak!6h~oRRQz0KWwJs0rNf1h zyx51Lz<tV#kAZDJY{DV(;xDjVL0+imGN+S1krxv}eIsxv^5QnZq`bH(Wd0S0g(-V} zZ(`Sp%YkKHv?8j>iwqpPyg0@2OkUIoc}E{+p2>?t07jq7i!V@QRc^y!VeGH4P9fzz zm$@7wl^gS@qREZNaai$w>8GO<(Z65>3sY_bTSasa(q$q#7l&m2xb9D%0kVqc+N8?3 zm5f8NU-}^)%~SbY=HK8WJ(u}E-k*LFYJ)(c^<grwbs!&y$F*O=^T{`WEApX6Bp>?V z8FidbZ~Tq&;cT!?KAei9<IRU76Kp>0#erHUcAzL|2Ia#>VB3t9I7B{N3d_fz4+W%8 z<iow8zJWLt`S1_Hq<rWSGB3wrVam2&gM7FUSmr|$qMCfDheMYSRUOad!*Amq?;sAr zGx@L^K;^^MkXnSp!r0}o9?6I2AyWD97*#ZZHvxwg=fhW}VLto=Y?Tk4Ntelo_BcH5 zd`JUX<wFvwGH!i8&dZ1Y0_t^3=EI-i<NqTc3ZXU#B+7>efvp2~k^{$iKQ0?wkq@;Z z`Ec#~oDZ-5Liunq*d`yU;plktVc%Gr58H8|@?jl{f@V-Yyb5fau>gn2hjU^1`12u; z^oe{J5bEoWLy-@E5lqU5%R=UbI4n#l`Z>slGk|42)FrCPhsro~`S5c=z%%)90NC<A z!=cNE_Z`oz5357!5*!xBE`;?+K0FGM%7^h((FESTIIK7ycK#IR!(YHw`OuDZnS5xD z!{g3}vN3S0BLXAb?|g?M>((9|iuK_Gz>4zWBKY|K$cK^SgV-kx2_5J~4jgAbv;kM- zLs}#sI&I;6nExZ?Llv-1KK$~~@#n)1aCyJ976&RHmZ2zU2Ia$iVB3!~aEN?34VI5T zANrC$kq<Y7`f_k6^5Ig!q<pv_WS)V;!jvUPf_z8=mibVLs3sqdj28K@AHeWTK70yn zd0Pz6tPgKFp38^DA$2wm3u9-%dL$plL8S8G9;#^aVE_&*&WH7f!+f|DY?Tk^kuH-D z4RLtf`EV#7Zu$A}1&XX&+i)oIVGUqK`EVwD{D0)bAo4-v!_A=s*N_8$kPmpDWk6xd z(?5`HexGH4d7lMuWi_IfWt;a}{yvj0Le$U3TUt%Ci@vUh7dv7DPz&!tPz{95KLRA4 z7VJ00`~8hE2eYv?TlpYG*$Vud)p#|X#5XXnkY#(HArGFbeSIV4VXP6fZ%BCnmFT|> zDR<(?tV?TZrxiSccbhh(^g<c+@LTw_CBE^B4{;^EUY*!@!|V+FeIp(JycxqkE9o5& z6gR~OMfnw%q|CP(;4t&ex<-(JkM1O8zJZU-BxSDR2l4rnj?^o3LWsZZ@rT}7Yi~Zl zic{ZKg@ZGi7v^O&&5GkUP!Hp)F&TIj2q|{piuj(a_*rj1fH39nS8PaGf@3oy;ItHP zww)4Bc^*aaLwHptz8P6LoyhT`!t?8XkD>Xdytmm((ca9T>D2awywkGc>Ag|y3i@yc zDc_Ltm%z;E{{mOeYmhl+Q=>q5z7=N0Q_sa=ValuDapDuHV?e4Fl2UMJmcRy?`J3_s z##i^7ra;YJ9Gb=NboxLZ`DPs{3Q2F`urSsJwkXe*!7o(7B{Z&raWtRp-H`GKc#R-| z-a;JWyB=weY{x0Dx<W-)yi&e8METu-48ks6P79Regi5Z&A?4TPsE**Qo?jt@0(4&H zs~ur`LrOK&q9b^bg2R%os7>!b;T<s8Bz>2ogq^zt2M3<BaZ53W-*riP>s0)M?<-}# zP9yR<h3p&n#B$P`6vz~T_%v<ON_=T5=~cK*B^mex62kE`gXlLX5SAy=zi;4cF9=8U zQBui$)C#m$yqksYjDLsXczTaf6g<CW#&;o-{sO?W06F_lyog<Lj4wZ$>xX#v{9vQP z^s_+9iEkeBTUp-K{H8p8R)AlSH(wZ-lv}r2Zt||XIu;jRL7#Y7jkjp=3rmx-t3ghm z1U`)KqGeC2Tt7G7@fUs_4KJM1dvV2^-^SIA^tVUWOFHm8<_UaYfL>N}zc-ZG&Hf@3 zoR|etcKrS9_=oT#tzaeEnH?`S4oF|R)x{@7zfOB-F%ia=<qgU$?2peQ?#XSozjzef z!-tLe%LY>*&t(_!$v5L-Zt~`<$L`Ck!EM8rTsPc(G9AW;8K-Z$`Nqti@U0`}y?U4B z#Ea=e4GSKumULj39ap@OT;G|<YneT%i`N6mn-9Ef+P!@pwfo)s(D{GD^_t*%Ek2e3 zd(;KS7JW~<Ms{J&FC}L}ZNDjN!&is-2*cA9&d0Z9j{fBa#6;TociPgI4e)Y#5f1Rq z|84kCGhS!gn~$GD%1*muBmJ`m<!ew*Fa1I`o(@sG6)ynyfJXtP%v9ZIm}{u`W7N!k z48Kj)EG08!#!^s3VtizA@LEvLdKzCGo0NKNPbGXtE#(}+Y-gFpV6FqR!D?d0`hLmG zRKaY#0u6@FjbOeFX6Epdz)b(-D`p-Z;rxv4U!BZM{FWcJC#8Swx@7hXLCL!JB&Og8 z2nSQ^3-07LyelY;FRjd!pbg1`nev*TT!32SQsDfzM$0@w>1-*1*9Y!pEz<?1&2Zb@ z*4=6&m@-;WzC<nVZtL!sk2B>CL3ss5vdiznDAD){O4<zH-OG)ZY(Y6nV=Fp&qS11( zpe(Q>7W8g)qvcFNIoVQz-hKX6_9abF#-K>LyB#04fxAcV4To`-r3AgZ72k;fr9@Ct z@jU?P?n`+4AC#SfLht_*C2;pwe3%22wSsaziii@pI}e{%0cEkEbhDHo7<NoUjy6kq zN>Gwfi?jsp&c1>v4+~1I)woV9diQC3!3SFI5tQ>#OS=1_@ujbzd_2TZ0(XlIrK_M^ zVSNeQy%?YKfuYL;<ss$n4@+xOlAI?fZ&^wZyD$HnDW?j`s%163RO`8x8=WF3rE7e5 zcWq$G5BG#4y&jVvH9By2{ku%rEhux|F_fTp*KTLZ7D1V{)ldR=SMOrVN<n#Qr=bMF za6Y~XhekgyC{N%k59CYGyYGzRuA3$(<548t-G4sbRd1G(FDT0_C2)7$*-W`zQ1+Z@ zW~sp4CFd~ZAA(W~MKTyJyO=3g3Cf_Rh7!2jt_4$C3(Ci+CEb0s4O1Em%2>33D1p1N zOPNwjP@ZjTD1p0Y;tODC^l!t%VZ0f&q`N~pFr`>f4x$!O0(WPgiZ9SKOZiYxW}IR) z2EnikcNsugBPfrah0n?fcdu*Cl$QmiE`DN$D1p1v@Y`U}GE-3K_lcyt*IdbzxS-sh zX()lasa=^eTu>fHEz%OW`*mZc^bwT(7Z^&=yYsGM$~A(Lai*aJ?zRSoyB!2&iPaLs z?zU{EoGU1ISS^9Oi>_wMDT30uh3{@>e7+5aDhtYhEI%0LU&)m3?+!=$L)4PJ`}P{9 zd@d-@qDc1ce+^}`puGRC9}Ew!Wi77?N=+2W-W_Eq&k0HiewB+TLGLzuo3;E?P@cD1 zg5EuO15+LplsW5tcb6K<U_t4KA~F>8?ll`(OLsx}kEH~`@cSmFTq!8$qDZ>?$vaGG zB`8;+h$w-(8#Xhgk)YH=5mAC*ScXo(Fs2Gh9osK~yF=e+%CC9hFn(((fxES~GG)J@ zJc(M;-Pb>0$__!<h+5L!8?d#6FGYfK@%{cHJQlys1Ii*nxyWuv19vYfV9Jw%GI@+Y z@1}L<@SY$jN3Zu&ZSZKO+$|^rZ}d}bR}oWg5tK)l8cNW+KW$;kUj=0?im1_nyOkbb zN_#<BJjzgl-feLgQ<@3NQ$q|Th~2A)G38`IdF@U^34-CBXPHt-P)>Q;Py%=FxrZs= z4GTxQb)KOF?oPjtDgP0aqI(S`aCa!a#D_6@M^F|`Hk82KZ~HK1g`m8SA{h)d`Z8s% zplr01z}@+VGF4D+MUm{?D{f^i4+zQ{O9|Y4woxr|caWf5*x!%cLpWCk<px1ng(B(h z#Iu-kg`ni1h$w-(yPETob&;Tqvy`BBe>$HjX9!9k6p@y|-MwQuylV=|EEEwX=-vEr zOewu99L97MNq5s9X3AHB@`9xV?p}H`Q??6ARn#IafxA`l4R!R(YC$<-`z3I92fmO7 z%1eThi4P1)cSk?OlqUq`0epi^y4z(8Q^pI*$cGIjaQD;6Ovw|JjZ+LIaJT6{nbKQO z-kxeGfxAEciz!_M<pUH+ckjYOZfH?EL3!U&f>gWtG#<vLf|6U`3`XE?PeX|bN?R1k z-d%78YdJwsezIBucOPxUltV+qk-ip1(p|!E_cKAc#!>=zdl||mLAlXV0(VnSW-ZGF z<&%28yC)jT96{M1GnByHpMl}a6hS#+DM9S6+ry^{_X|qn&&{bq;O>$GOu0=^9>53x zsnLPE4}8Ov>jh=dK|=|Gp~fMmWC_YIs6|==ciVi=l$L^W1!~FOjU8sn>4NeDY7r%H z_m!hesUavYqn31cNG-k;@yngzFs|zDr`pjn*7BvGG((YexBdyK)Vm)D%Fd)z&)xOs zv7xsFrEX<I3EZu8DN_~-$}H59?l!uJDKiA+##V+B^lpddOc^IA?^rEC@7{I`Q-%r3 zW2i-jf?)WlEmL|4O65U@61bbujwx3QN*%O7x|`XaDVGXL7t|t3;O^-im~xJw^gu15 z1n!=f%anS8(zKJI1nzFUmMO`C^7qROC2%*^jVa#_2}k+^)RON0EsrUm3d*5jh7!0t zc{o!x3d+p84JB~*;Jr-wx1f~XV<>^UGe$DySwZP{pP>ZqUUxrJCJV|^)ROKtd4MUS z1Z4_p$=?0KPzDOh{V0;X`}-Kya-E=Dnr|q9yTAUEDV+qRKZ;08;BNm%nbJZ~T2D8W zU}l&*lPT$fQuMf?1ijn)-%L4CP#$>BP=ell`hBMSe1{!Ia-tYl15e%t9<E2SQ^3z} zXWnk&;kR{)s2snEociVhtSRPd<g|s!^p&vYxAN5Zwq=@Yq;x&=C1%pq$ecyI@VsIv zYf0G`xR5y%<@WO4^RF=F8ELPW?4cYKx}v(*P$o)48)4`-L!nEljh3>O5z-L6PH%&9 z>-CL>(oY)t7>4dP6ms_oL%CKOg1fO-423S9eq<;er6IVRe#lVB-Fo;SI3~68r6IVR z+8pKZh1~6WGS7RbNkecqR*G`#?zd+%rK&UpchiSAWeU05;C%c_QnQpJw~L{IyQ!T} z4lU&F1Vh<lDLh7SH@4MK$lY5%s!CekvlJd9xSRgQ&Z>dCXI{;QUYCX_CN8~>4bc_q zAvlDV`O*;Fjjb>ga<}>QO!=2IM8S}Oa_eqeLwQIVg1f18429giq(5sJA`QXa*rEZf zg?hK{K&JGRhA0>spxpLuzM<quLlg}2jTUnE>f2e%CDITD!*eLN?*4iQQ<_Laa5w$g zAxt56_u~-#Qd=5=yQyc~>D=vxLr{JnY=)7?h=O61p-}HGF_f<@g~y13q0~^w-CB3C zmX9oj^Ol0)>|xH`*Kr6#>!cyL8{3}e+#PT?Q<g|Wa5sI*aOdvD_b}yYX^4Vh63T7w zzG5ha(hvp1Y4<XP+`V}OYq?h%qF~s7a@)HNM>6GBX$bD7W}zGu>fN}Z{7o8yyRjvP zLc#Erp<FHvQ7|mRx0J2BeLAzD=F$)aL+4!Q?iYVyN_}aFg5ejGTX%0aNm4}`g1hNo zqTITBVi(qOc#ud~xSM(c%0VG_uQHS`EX4)G&4xn3Q1DmQ@~)-0VAz6kXrbQS)0HW& zNkbG2r6{-V9y64A(h%H@Rr#B9ck>RO8Kz4^a5ufu7j9;l{~=RGOG6Y4Nrpo1emR0C zvOA<93Wlria}(JQcQd7jG(^GhLT{$fL^gR4Q?jKYxSP5G<+gVlj_3X6#nKSmjV=2Z zHl3z-S3)5&;7n<Vf}!y(tcBb?xers)q#+81E-1IXyVg*S-X;>3g5iLnkh>lGvX&A{ z;W2`{>Def^?tWt^J1vD17Vf70{Z^(>FuZ_6xVu&wg1fPYCOCIbnZ}gG(h%HD-+h~N zckVmfFHcEB6b!4jaKDhd-y1^@OG9usmScRORJ-g<Hgu0P1b5SSj(6_%7{HXi(hvnh zr!-tuFk6Q<&v9UOm4+x7w$hoIiQOOPGUYO9h=L&<RY4(l&oo-jlZN1K>OTyH+}-^o zYdKXKg1fQ(D2Ep6-G(!nk|GUJFdTW2DHIIN8t@k9hk+ttDHvL!+`4<Eq3pI4PFM<t z3tn*Uc3QxOwpfY_hRx&M7H2CCG14ogA-J15A@24J>9~3T%Jb3?1;g9d;<U^3?rGil z`o}bBh=SoHlv{Vtd5p&>UmBudI0NONQ12e8#g|BKmxj>0v4%-JjMTf0jh25%LvS~J z*Ap%n-h7e`T_p`sFq}M-Db%|?<}jtTG(^F$eJ)dIB0KeYrZkp@C>ZilZr%OSP-;m- za5we$c}yX9A9|6s{5C)&EZmKKvVbWR4DT;wO0lKz7*R0%=>!+M?aP?*p`~!bQZTH0 z$+=s75mVMkLlg`xQEuHGZYVEHLvT0!n4yrn*S^eJW=cbFH}zALLkqb(WeHQ_(hvnh zn^%}Zy_>p>DZ`~93Wl+tId@-M&XhjV5Cy}TpF4NYd6OyENJDTpcE)a|kh^^irGqpC zchd*M0qgE;LpfI(qF~syiz(#p>2I;2Q=}mZhJGlA77B(zpD?AeG(^EL$51GCe=(Hr z`-_ByyQv*lJ9lI2Sj*>@!U+p^WB)<9b@!q7n6lYYTrk|W)ww%)GgDrbhA0@$dE2>L z^Btx<Ck;_BWNc}nLDgTs);BI=?FPTEUI~<2d`v;{VxSRU4p-?bvH<ZEB5Cy}F zUpaRh;b-cgrMoml!Egi0ZSVg6HB+vXhA0?r{l>Zb^<k#8l7`@J?AasE-FYcIc{GxS z;BNZ+D7U>^xe8NKr6CH2o+t-}f?<!L{Mt_>ECs`^s!X9^c%&L@*>5R4MidOgu@8n8 z>fJ$A_`?4VOW}ltyQ!T@oV)Y!lmhytNE(8>vBlT%j7h!wZybWMNE(8>>FM9%u^Qv< zn%nrC`AKPrg5liTdG;oE-^%7SV1hJ6!LR}4*4-_Ja<?=DchmFe;<MTBme%1$-y#jc z-PG>~x@F=kJc0ms|0)epFg!BNEfa^QbBo$bLlg{y{^gd5JKyJ#ZYB*;Fto|#MpN&m znhE}7X$bDduAm!A#@%=D%QNt$k~9Q&(@(gSDb%}<&0s^{;aY-sx#7WZB5S>dDgUt) zPFM<t!E0UYb~QQuj-|L@SYRmR?gM>zj8;fPa5r^1%B{QY&_!@}t~3O9W1SYWA#(SI z!R*UaX^4WM_E4r!?Ecu7wLBmVQ83&-gBwl3um(Te2}6UVAqs{QXEKG{oji{zH%LQp zH~pjeu6LWiz?3VbA-J2GmEn4K0S;m4B58<%A(<X3FtPj9CXSagq#+81E-6eQcjw>` zT53u|6bwE7!4z_LF+2yQw6925xEs6oC8p3s_Mf}BU%s*w9wWG${vpcY3-#{TPqCKm zmcj`OcT-Qg+3m=#!jBrk&}wOjg5j?{m_qKZTgxN;k~9Q&(?2siRdV<H+MGvENJDTp zHIDqU!SJ3*weivr+>I@-?<TSyr?HkiX^4WMQUf=UO=!z4>MadXFf2wn43WFHp2jmn z7ioxsVG_zgA$QMgz?62<5Zq1wq#2&yF{!rud>+Q8(h%HD{iqdFsCOr}W=c#NqG0HT za%iF0-DM~zNJA71T`yt^x%+&3_T^9?k+2jDZ+39*u5HJZ&n$%#7VgGAMY(l1|1zd* zvJ@8#8&M7lxqJ2HOj#}sQ83(!a_jEH9hovm8lqtM0Og>NyZisllqu2>1w)#lQ18|= zTJD#I;BM-cYH5MH+i-}eyG<HG@5VM63c35pTO4)QOG6Y4*WvfUth>LN7G+686by$= zi^$zmt8%=wl!ho68qw2qCK!H1N5hxXr6IVR{*4&`O0~b?av3N!q#?MQ`YRqUf);Z3 zK}^A*{Bny(SPF)ZR`9t!1w(T@P7cbKmcnC1!BBv5+q=6A<pWFMgr#6;ypk!@yTfq^ zEpJIfa5uK-HKvfehj9qXLTL!@rq_6#DdcVo9D*`K8lqsxHWYIAc0(B_4N)+hwaU5s z$(yWYm^4JeaMD#g1(CZSP3H-|mox--Q+NN(?HQ&|<KDem8iKpAqb8@x-PyNr?_Mem zQ7|k>=K&yhA4ubPIY%0zVAwg3<As9ZJp3{$8eLBsqF@+Cw>(TROt_0F$<h$qO|MP& zGtA8J_XnBsZEumVa5wd-hnPa{{xE?lpIQnhECs_mQ<*~U4l(yBHd=}chO6-NU^W<< zn<p9nEe%mHETd-?jl0e8W-(gytTY67W0_C5EzXrV1ZA=`1b5RfGZb>Slc9`~hA0@? z849`E(NG3TLlg|v9&_%#8{^sgI%$Z4;nq`l_NHLC?_%zkPSOzEO?~z)ZV|=qc>HuJ z+-)HZ!QI$}-P}Z0@9#`Wmxd@94xZqGA-Ms^%Zbtu1w+XhZkhPjP=4+u5|)BtTu-Ku zyA90pxzAE~jNop1r^YTA=Hn3VZnG3lSh$<I8oOzX5%uodW@G)PG(^GhhM`dJo>`r{ z?nP+`?xvrHavKb17|P?)5Cy{qGr^O)Tg)0TRvLo4v1RliqKVysow#4_l7`@J`kpMN zkh@=9!IYb&Aqs{I@Zce|kh^2d(}TIv5Cy}?zlHnVS9oS<D-BUF3_v-wkh}MrcsW}d zg1f12qujdtbsHY(y3!Ebja}5%1;bUtYtsNENkbG2Y434Jk-Pi8<raN&vq)G9hMrf4 z`&~Tz2rZvj3MVWDL%fL#hNtm^yr68b6c-G``@7y9X&&EPCJn*e)M33{?|ytbYnd$# zQ82V<<a+lC{Dd$JJt7TJFg%5F^b1X7f2+-uk<t(a!)<2vrr!Ol3GV^Y5PCPZf3|aX zR2|mxcWDUjre~bw-0fbMDSwuRC>WO1bMEdm*S#;4hA0@GHrKt$-KAz28%jeI3=PaM zlDkuIh(=eJhTv{$v7yk+aQjKTlKga&NLaWV`|&S$*TSUQZB02F_gV^%5e35u=7I(V z!#(D*$W}|?gr#6OWG-lsyWNV|&>PYa1;fHiIqJyWB{+n;FGxdhH@yU#IUBoom`&Sb z(h%HDecouHRD0cMDUgOJ80wmR9l3j|(K1vTqF`7&*`?Zt<Jp&+q#+81`*Af8zL2{Y znKQo5(h%H@U5bFU?mp9xN4kwP1b5R<34@_#I`{5b(hvnhYm`F^xtoKV<mi`^q#+81 z%mqxL-hFf>Q_5~M!^mSq!Elqge?;z18^bL+Xem5Ka5we5$K9TxS7pACyvtHJVc~A< zm+)NecXO_`UK*lcxERm)T6b?VkNYl_hA0?Lpa**Geiu*WqD8Z$Aqs}w^eC?B-3;>- z?j&gl?xyF`bGByQEizBx-X{&g-PD0wm_osDIv!|-q5jek1;cuJ(Ao6vNIY^2N;heU zf}sgLXKUR3*gUA4DGgCD)TZZbjk|A~2X!xyhTv}O_H9g|R6FwnHq<~Gg1hOT;IbpM zkh?=n9#xZuC>Zv4cfm06A3V}O_7n+A!7%q`jyej4l3pBj|Fsks3@y#Rj)LJ)9HP<h zTZ#*Y%itq?A$OZx#|gVi8iKpA26r-r++A!g3@(s{C>S=P99k%L-`K~ubsm+5C>U=2 zl5gvfyZ3#?lrho}1;exZ-JPGRUo+)SX$ZZWzPpOsGxR;5!}~^Q2=1nC!5g-=cek0T z`7hEC1;aqRiD2D5{W|WKKS@Ir4C^m-z56L<X>?tNG(^EL2bW8rg?jhY&U_J}jx+>! zW2?LH{6f8Z)+*j(9_t|z7Vf5}n@t<_?ny6ICPN1-g~y13;gj$t>*N!;(H~n1CoBcS zM`v=Qsdu*&vM+B-LvS}eYqFcjy5kUrUXh02ZtB!)oV!()^3LNKX$bDdy3BI1+i5uW z%S362g5kvnc^D}ersVT5j*x~Z7_vvZV3<^kwe*vQC>Z{=$Zc^xfm?9*T4@OGrk`ML z8&mH-HlJJ6Q5xEqU6^wD2lY7^P`$OYK!F-h=?0AA^PN_tzQx&Xx8+s4BEGt~#l`p~ zX?p*)DZLzP-oJen?}nBgIN)&Rb(wz;--*qhbpC})@sfSKq<C$wWB5u~IuPExt&fuM zCDP0rGjA%Xga;Gxel32jcHrgsaoW6PRZ)$9DZ8K--V;t+-Xgc~tT%gRB;`)J_<AsM z3(wC6>R9koT0s*coRN>$Wl?8y$NXc>^G>rkZTT?#*5TS@E=&RY?r+vtO3EzTksaT_ zFWG)dFWJU_fUV5354nWi+im$l#|f>7{igza$Zstvo|OK@<@5qPy~WBe(`Uy&Dcd@B z^}WqEr2P4nCj91pNd|g@-=Af>lR76uN8T#Z(TDo!wJDkWor&B@DRVEw&o@qrwMSE0 zZYqoQ?UiA5LoKT>F2YM_V^@!ujhC;3N<&Pgd8kwtYl$i=uY+sFD_T<D<>L_TFD;90 z_y<0qXz*+38Vp(qt~`}FHBF70j`%~ii*Kf%nM_Yc^GfaoPkaDj3cp{CPAzVNm#*<P zF^^hy*;yIg5ifYp*vTvT@}oBx`E^8S3I*BmoyEKHc6T=QHK}RZ<0k0Y0-m%-?BW&R zO(6;hb9{n*+uCZ(jc>?`zgs*W{LFYsPW%_C{pK4{y{BJ&N*J42g?%&bgk$lY(2@%+ znb4BMTG+*`ILY0c&d^m2y4b%{gntLF_Zq<RpYfJ@;Qv}*?)qyxIHEtNgGT*neoyt9 zv}So39S^4sX_+10o*Q4E8-Ks}SyZ6n7CG_K9Q@KKevh195T_4Zv_Q;c<EO*%1Fl)n zGbODlYQyzw=tosW?;^kK@3oo%LBoqXL#^yMda)aAJ#wA&rxA}I(HoK%D>mC2rguPp zgXwr*-nH*A{j_x$FVn3)C*SVN2W$CKU!LXrWBkv8LxtdFih;NO*R*^dkN)5U<8k2c z-grggi6Y@o;G0N@#M4~A`V=p|%jlQv{rDcN_+k5*>+-2Rc>LZz$3J9&zYTl^+@8mT z{BSp~J)S>9oIho;wcwdo_mOzv{LTDqjw>5(S@HG7m!Kk*HKL!iMQoXmsN4$`99u0A zTlm@ueK*CmrxM$8?a2byn;-U;dhyUu%h&qyBiE|>bA0(0DaZ6w0C5;?&qHdy-{Ab~ z<JTXh>SuZNuXFXo`6AcO7nsQGgi#xHWSHbeW{fJNr{4v^Vk!G;`!8O9?D(5$Z$<WI zp-RQ}#zBj3PsF$L`v#{+#4690mqqGF=8FbgIh<&1z8&pq{EzSt;P+J%%rEOK-;39` zz*YG(9X!z@WChlT$G{8nV~|f^`8`73$(M6HAYQtG62{BPMB;T@eeb7fR^eQpX0r+x zW;~ARHn(tD#w`5JDqNK@AAf26z%)d&Mlw`lcrY2of1ody7(#B`R)`w~S#hHfDTG9% z?{(1jCzIyf3D?v!`2_!#{UrVC2Z@U3X&{LCwLKVKz76x`^|bt2Uw-hfs(ve9zRt?c z__oL{9L0<0;j}ur8O?L!@8JMnRx17-@2}_JN3qehaWD?2)kZ1)1qlsqVb+#AS(n*A zM&sS}=MvUs`V$JH+0_VoTz-!MTlB}#E~Y(ReBI0(fBylVjITub($qMDDAxHh&aa(l zeLaBRRZS58S=PTuzPz58U$Z=ZVPgJ{tJQe+0Z;VLLMxBhZ<knKUU~c)iTUj<-}OJX ze_tF%Onbdw3oOz5iTdwFR7%i)TXIeN#CVyBnf8PCpiVja!HK9REKZ5GKe4@BYfrYP zcBDP0``W|y*llL<e}16t(@wjCa@(iRJ4f<+DVSosmVrU}ZS0e};;BxTnM*K(j3YhX zdSmuKU<UJL51+#FtAxB&0{J;YUc;Bm{zwANAK#sS(f&yOR{X@O&wo0?XaDAb82CTT zr#O9de(@l9YW-;M)1%|v8FdoG*U=o=-+Y=-+$iGjda(TdR_jN0F4hnF&J(R4ui`JQ zAFCO!%Gij%g)=j@;!ie;KPI>;;|uz;Fr%1C<GC4avg6${TI6DPkMFYKlWfILd`BOY z!%;52&ejyG3N!H~H%!W)W7#1M*;sZ+Vch7a)ric|YP1@Evrv!S!D>YAA%d`>^H!t( zW}|IW#MyjPYD+#<hI<pJQgBv4Iadj8$($n#M9PJQd?JhW4v{(v+P(E^?IADTyIHw6 zzRxhnn?W+j%P``@{W!wmPSE}M`t~Z19p-0vKG6=95}Z#gL{0M7n=k16qefzWp5;6L zY5x0G`*UT)AIV=F;n#}rIX}jO805#^E4?OKe}nnwMlg9DvwI&t*PD+j!4@^xAGIdi zZa4n`Ddqi9Ag|}iuZzf!d?V{$5Rvcj<W(Z_WuE-=E42OTo_u*kp6AIQiO9Qo@_xP? z(NNq91Tp`%2g8fky1u-gmCNz_?w}s;ud=+sLHtSn>Ii>Pgn!)mI1I}EhkR@gOJ4h0 zp}uH;Ju8o_x3u%E3a&gc3345IzN3@ZVnpe|HhgB8*7UpL_YYt-Y`UH<S2RMMHsH@J zkKd0fJdFxC@M_#bHQXtdr+-LPfAb3UUzR}s4}X^Wz5J&OA~jGY!TPZbwWvSc`118H z{AR3Lp9)BO=>8PZzkI$%Q|o+GGeaq6GjqP?*H-a#C+dkB=-nz2e%Kz~cNe#3TW+Ik z&+gV|!b{G7*B;DgwIli;C0^JX_~Z8HdrQ1{>I<e9Z)<&ddn<SIm)YGF&jihMx17PM zIRE_X&%uh7Yga5<efgr9IBok2YZRv$hLRgyzo;|p`5OB2;f`plx85W{li%Mr5hrnf zY%liuqdAyfyr6#<gW~HuhD)@*J~<xw5&rrJKa8*U;@h!)QG8{iUfPQ72(hfR6&tc~ z`exT^v~rZMLBwZRzgh+LTOUXLjri%<wB_5g(w4uA|CIv=F7uk~;%OQxiTP<2Xw-j+ z+Bcvg{UgiK-^$mYYxO((b$xk;mLLAg^Y3T}HNG?-yw4nOKeGiqF~T%oHZ7h9Ua-E; z@d@61_aJy`b{y=}!}*uz(=Mo>=hKU*hMP~r`N1Y&15`;c-yLbM^7-(WUi-ILIk)E{ z$b$B~2!UuY%U1~b7+)^qeF|uPesuB4-u}+aZ#_|mf-I<KC%9C057)25_8NZk#QYE2 zQF9aUkM1M=Z)yEc1^i(Dv;(|we>EIpe}A>ilXr3QAinJcM(G;|6}fA#JBi$_jaq@d zzMj5sFV*(4Jo$Pj=kYiP!eG4SkSL4~mRA+>kqPAc_lEVaO(5SO<mV-j&lB=W3FPC2 z{L{9ce=c4q-);s^t-o`9x;LM<06mBkT&u%uc!$qc>upkme@TQNjK_}u%JHv4yvX{x zm^j|-u(OTVxL|#y>))Qf=ZP2Y*J(f72Lv%+jsnB2zYu46^{;dF!+Z$xAH)Rt-_Yvw z`uh-m^Huft!9RH|h@OwXjyehSFGM}^m*ed*aDsR&^c6<@9h6vKuGQz}^G@umJLAdF z@+Q9g=q1J<uf1hoMB2LrJdrNp{nYKub@pajeL;S^b8FgP&jYud{dG^JKVkj;<=3yL z>bw4E<@>kqV$)u)fBF0uyhP{AmhbfK-R;F+ftIiJ<vq20jxTR*<s1*=Aq(Q6E(D^( zo&7$3{e7)Xd&K#aIWM6t<KwtqK^Hk@;qMP=wcVc4qyUXb4BFg?{E$}1P|S%8UHdn6 z>DmYBqH~*I?}%BX7uz=1zY~tviqD01leB!V0CgLpu4ta0KQtaAQ8&SOeAX&Ky#5tj zm7fd2t5AP~#QFy((tqeb5&iA|NdN1olfeI@7a9L)JUiOkm9_K4JqU9H0{`~JHL~GQ zf<wq@NLt_q1WLV|5xn+x?13JA0-D41EE3=6CHAMM@CUcwH^Un4aTq6xfBuZji(4OT ztp!<YNY+Ag;e4<bb;SI9uw~fZMl^rV@#X8Ze2g!jDdni%7h<vBfYhuHBL3a=z2I!g zn}eD_fs1%Jn&AA%-OoZhYfAg%|K3l%_U&sS+6VDEh(rJ0gw*)Q`8^N9Aitj^QP_bd z|Al;*FAwwIx1VM0N5;DycnRXKrsX?*b$xyNE)?yd_8$JkYws#8-|ow&Yxz=NK3K}3 zemcZqe_aWwSnnav^W>*T<lQ{^PZ#L=tv&gB5qUjN{(MA!WS8{s0Vn72`Ut{cJbRER z9M5n*49_p;gI?bGX+6Js!t>Js71ZByzGptn$5yB$@^L13cK;Dxze*#;{?(|#N*~&5 z_<X+g`Ns*)x2T3Y-{SsR0b0;MHGG8}e>DD}gya8t^I-g(J-S>r1SI9(LSlyIU`6_O zSpxs=q8iS>F#bUm{gVZj+fQ=*f8@y<TDjRT@%^i9V9=d%bH;)><Gb_h^HnP#3EICM zg~DOieyZ$tPtOyH_q%A1d71_7H*<3FKv2;O<}Ng^2e6n8djpI;!>94VLY|A8*lkdO z&Wf@01Iii~_|Dk<cZ=YHW_)|`(VbzJ<G~ra=M78Wo?C%`n@p9ce~VGejSr3IGeSA- zDWJK4G>5|zjwg?Ql%HD>|MDomUX-u<w|aU0Z*8Xh-~D0OIoAKV;3)sK{spF1w10YO z{SQX<w~p!$^Y^b&{?Vope?tBlQT{r`clmL6hZq0T!SnKCyDuNC<x72emX=TR<qfSo zvYrhBFTr}Y?;PV#gx@YPf1%~e{Q^B3laK9fa6j;hwB`H6b&2n{mz8x)TTVB-ab59U zI1$_vq-S8LB4R-989KrS;vLU_qGpi)O;9KTBwQcpiBkI@)_Cyc-XzeA{P^r_uew+t zME$GEuRmSYXa7zS{tfa8EdTj~(Em=p-0N?;f3O+c1n0YzQH|my!hbR`f6H0r@CPO4 zPq%#b_bTD<FbG6{v-}((@9fK6yjKE8tOpIPekb3%&66L=F#c8)Pa>9{L+$Vy*B`{u z6xMCdue|f~o7o5Nib_v#MRTL)Q|Gbe$n$Out^clll~nthnD((8>-9doUmLDh??LL; ztER;pAPnODMG}P*I`{uPAs^$*o&7Q3i2m=U?DzHTU*PPA@x|Fx+#WoHV{qBYULO7F z%)sBEJ@q_&?>V`N|Mx|ENTk~Hk&ut^<*q$T!IA9&&6_```SRvkKFpU_)^hs2SfT&3 z#!7!HU%pJs>-zGEQjYOH@}3;;evtb6^Btc2vWR?{CqLQAT|DD*<`m+1(fm~-ud}f~ zsVKj&P2-E)bP+iVx`G5lxBNkd4JSLi-wL1K<LBvx#vk4dHIhR8H2t}x!@J(P8a4d( z96Lj|$Hpr^c|w;vCbAVuPn%u*M8lg@PhI~6QH=L=Fesj6e|C)6?-#M}_;fuvjdgk> z(A=*Po=@!E;@LlXy0TCD-eQiYZwq)LeOO<3y`gv#YM70YX&di0r?74_|ApfdeSY~G zRF=zT^a;z$eCzIdw|SkTwsBYN;HyOV!F;iAv&@H`>E8GtU)Fi@MZTQQC+2`4#;*Vj z8oyva5Il-R7w7H;)wL_|j_;RWNqWP{$h8LssQ)i#8(#m{^lQ-mx@qw#;05#b-iDsa zpuI=lk?mbhq%a=QoE@J05hvI2y%0RJeUtHho#V4V<3S4iY32Ll#p})Bsq1}58+h*f z>mTh;&O@C9`;%3u=jLOyr!r{PL+rX9C9T2vSh#=Qy(zN)@2l*iJ>q<M5i02Wljl+m zcRuR)biVUoRR59F{PvmtplPbOE7;!o=W1}>`qK(h5pOdgqxQ=2q3)>(n&}=nKK;mQ zINlV$dpCOe+FN}*ej6YQ#;*ZY_1cH~ze0YvepEhQ$T$0PH~wgFFVOt?^--UUd<gdg zW_w+H9x5dm|8A)1#-G|(2|UqX&9!{*22Wnu%1!$r3);W;RIhzOKFtLsjIZTH;{J{J zI}*eM{*FQo@|W#hFYNX3?Xmn%Lf*=kyZ+?)A3U8;r+Ds*`G39F{w?5<KS4Z_y46gP zS45unwYm9<<990PUi=OK+r{rN-(HrrXW9>0(BDmb6Rv(Mzy6Vv)p*zS<y)+r_5b{K zsQ*O>bUc3~<YN-ZR|t6zU+(;y29At3Yd=^I%#3c&5Br1b76el%xSw(`=DC;n{P3Le z>(5p7oqvbddH&^r7vzgrzuyHbvVM1Du35jGzB#_WdRCu{N5oG)D1Lr_RnKdk&Tra4 zbw;HG*9YdJX5cU1e`w;{AEo7$e0eu3m;QaRR{M8$#6Q>Gr67y(JyKWsGtHN8(eh!w ze6E&X>&r)Jc`IMuP0Q>0^5#}9+xy)b-QHs-RX85BpuCPs3Ffa=s7d1y&Ufbdl!>5Y z_<~`#=WFB0PU88oM`HcC<>+soQ2)v0>;J7Nq5q%NN$md?(4+o84|X~JKbctn;Bxd2 zPN@G9r{9ei@Bctn^Lb@rhRbnue^eu}KkI6n_Imnvua4-S4xZE>#y@l274E)?^i7WH zYh9kcKEA%nRv+8L@|^{7xW0a#7WBXKr-@&G85rLDP|251wDRLU|6KPL#esVY^AFBH z&yM;x1`5P{akN%~{=b<y-u`|Ic(VV!@wza|pRV|>e=7O*`&#>YzxdgkL3+sj;svCY z^VQflrz4BO4Nh#aUSVH-EY<T?><1`(^CSHA5x(=sT<*ErxZ|HaPe3jGK0pSDVSL;~ zdL#ZOMeJV?u^+_SjyI&fV>JVPynk2$VX!~>ltf_yvivb2Uz$LEkB}GoayMSrf+OOk zCulC7kq@mQ4%>SPDdG0A{ZoYgy1st1|5+9Kf1pOx|Br-xtuJ@}Ed@vTHyt$c&&4Ok zdkQGQ#BbuGpRWw@;q>+K^|iM8g7L^AU2e9iMS8;ao&#Yp9tTeJ+7r~T?A3phNL=5= z8v>M;x6fWr6#wHKKhU=fywIPUoZO5*gn>Wpe1BMekC4|*AirM74^;Qsqy23TYV`bW z5mn;$1^!kBFZ6eule0hjUkm;1<J;r<bpEs!95LRlLG#9&68stFc=K0fU!6JMfVw<T zLw|Nw^ZX@y*ZTGrf<gA!-#<YX^lu?m4fD_WTi37O)7E$KN&X&M$rG4qmWj~jzPiNw z?G>n3&VGGgRnMKo_3tUa{><a4|EKcncRQZ?KfhY8|22=N{)+PJud7l~`>~;?i@Eop zzFAD=ZicUbjZ*b(yqnV{Iv;4qbtCsX+M^!DhkC#9e|bNC&kF7p-tEx^;s5#l_{Ayp zqWfPcjqV>G0Mna)!uItr6<o*I9dj0HMDp!Ia2?UaZ#~i+rbBrBn&Q1|d4&I2<qG)k zNBMKh<3s%{(Ea)T4xjDz1E#sfL!$ay`!$^Zc-p48Bj|V!!@U544ae`5Joo!0&bO+l zSWdn!^A(8t;qyHk|IKz2zyC4FSK!SrlTlHPPivnp_Urcfe^iOa%TFf+@#6HOzgvLo z_xF0@g`=P7eEPR#Y{0o?<EsEQz4(Iut)Tk)uZ!q+^X(jv#rlw8^*Q+%Uw$-M*`xTp znK|D2u?0NQqVRfED_`GCt54;B8+ry{7H;L!GXV4X?=t(o^D2J9xNs)FZ%l78H+46g zK3a;l;AQ2e!HyqqDX*r=m=ox&<Se|U%r8yjIa*eV=LKe=9QXCzbF}uG8Ap?R|CN7{ z`6(;$_d96T%!F6YAvZsfFJzm}Ncg#6_`<J{iDwtAF9YC9!s}1_Unw^~nrr{NSq+V% z_iJV;HPQPuJIm_I(e(Czs4U`VE|^|CQhZ#_94|ide2v%@$m{d9P(fdxzm#euzCOQu zN#y!}<qGvLLIth=onulz#lLy}3cT+yiH($1!Y8mMq87Cm^vLsG*|tjbd9N;HD{Kt< zQ?*|jqv*txd6MU!&;NXJv^}5vF5Bbt7bW07o0!k{KR{Q{`wb>`*a9_vT@vWONb8UE z*QvHvw7<SR>RF5Q*XJ)s+y4sHk?|6-H{aHZ+PmWq?A?*T-bLD;xZiYH0{*YRDgOk& zRs#MSkDqWp_-IkN^T8;p9d?IUzmTAG0`(-<jqcA-FOttgz;z3e*}v5MBmM0X>)-Ng z0{v-G{WHOn{=4;*=9k?sMf~Zj_>ukSi>QMI+cm?kry16t2!CW^{=rh?e}vyTF@ITk z{052nqb%R8$A=es^KCaR-|owsmuK%q@DjBD$S>uzXJlgjDxc36m}tA7>*)4uk)NL! z2e!9=cKn73`CZE8AAB)zU+O=(T>h$r{Lg<5{PE&xGRQ74OnfgSrpO=1NBH#u-QRBw z_t}`QB)>(3e_4d@#=8>x;;x|71e5a7$@jkC#lyazlzgo(U!~=9eED=M_u`r6hmqhV zxPQ>IJbvfI{EYJW4HEMY{;1k>c!Ag6bygnncQbei{GC`H|H;JsZrc7Z-+uG*^mR_G z@5qq^`9=NPATfVcdHe(O6Sl7)!Z*|VDnk##)XsKY!1k{<O$RT$zH@d&p6AJr9oF@` zdGehRd23I;C?c=t$;UZ)!u4+dymHsOEUGE;)r$|Bpk74X1oK~I)bsLd40vLH``Hgl z-p7|OvvQa3y#Hm6xBo2wPx|Na)1v%b#SioUdC$LwiR{0{9MAs2?|u7T|4=*@qE3SR zS%`XG|Mc<g7g+i6-k-@p_2A?P-TVjlXHF-t`TD5WU%Q{9KJeT3o!>r>|8kVStUNyE z_k7TO?GN~DHNRgI;a^!UpRSKI0w3=o$?GGjeueOPM&f@rH^Tq$kk?$Fznb{|^_QnK z-^J53kVU)?2GJYuVZJ;|%dhq24Yj<LFF*3F(qGq?Z_)C@b3Fg%YWa3wK1$1%`toj8 zj`JgY{}Zy{`gAJ@M1s2bK|I_Enja6xzVXN^9y&(&>&xfUe38aJdhtBbuMu8P+54>5 zA3edN@rva0>)<8G=M2ja$KTg?^q?A_VZMBamS5}37g~AvylC)!Y%~<}Fg;h<h+U(5 zv?ht8&-C5|En+axzhZtd=S|1=e)Yd+ixuO4eZP9^0qTni-mku1YBx!Q-6LNgpNP7m z1^)RLtw#+|*YyBS`Rxjw%QnURIf{=%vm*0d!#~phI_f0Q|Jm1Od|iB#{>f4O3&E?< z{~n3;54QTF<L|E8HRhV)7QKF=yAgDF@l5@7;F*N&Ias3O-&~(vW#~cL+TL9bw%GsB z{i|spiurG%)#vrk5axLK*^@Mh{f6VCJ3E3N7&d1UXZvi5=L)XRC855&3?98c_g=AQ z-P6bUMz2t1$HPnGFFnmmg19suO}e3^G>CVv|7m|P2pSU1C#_K_STDlo(d_%{e?lER zl@@-wmv@@{Z26J>UJKm)1AczG?5Rk+ud0auew1HO5&xMeKer<OkSM>N;z#<c9qJ_L zuN_|{j@O!?BVB{AvGMve*eYK4&h+9n&+2pWNBR5~bG&%XB26M*!};IWSI_Em@?pOG z;Fre#g!}WWz?FfEX)Tx!7owiDudlDubWWGU>H0ri9@pQ;Hg}>Bh;)U0_mk9F;qNq* zcMp)hn^Dd+_Ik>nNPGDHr?Mm3vt^&(9<To|M?JMaon9Uv!&MvfVBpPsag)!M`wJT1 z-A_dHXZST-KGFVhG3aVP_|0C={c`Td-GhqdjOScmLBjiSZH!$p>4*;O;VY<UKKyQm z??!Y!tl}%v{q-^wsPWkHU#|la{+<Vx9g2dXsO_Dy==JJe=!)h)I~}>+m<2A)mtMT2 zMg6O%{B!xZ_i-=(_w5PiUw*!JtuJ3?<)MFOeVhqebiNq}wwZ6#c-Z%`X!mvtY9c7O za-y%PUrIV`{F&#^TChv<dGuPu31=gW7w^Zbf*9<__kQ6~ls|4dAdj{__DAvYh_4Lx zM85L{6Vfxm=@Hpz-uH>r5Bn1dN$X>0t{fTf%BY!ef8HQ5f6ML!@p0(UNc_$OPxPS6 zcV0i=it_s^zB&H^FX-=fK7r!ReUAV?9#cFBTz5|>ydQS-bK|erpGUs`!cl-eqCU=m z8aJi<;n!ath4ymd(R4eh-1aY}Qs-wjw1n}KaDOxjIxt0wsVcfZD*X>Tqt6GzO;&b9 ziJ0$}QtdG0T|U=EC9(f30FB~B#3x#6XQKVngPBOqW*nhezIs0%UPe7x19ul|Dn9#z z?Qj98;q}1JKMVTb`P+wex$D!*zzFt#_;sJ+EU*3}uD<Gj@qXt?s1Z!BbU{du-k(WF z!taL%-xrecwQiaUh6=wP{`sd~`>6e>AGUwFlY9A2=OaBpOmKcR3N<40`-R}D{?8@N zVK{{6_m!CI`nRFg=lXx|KfQQ4@`>nwI-gnV%ePoL=leX!f_#4w0^xwuKgO>=O6%|A z%ez^*ThHkH2NW@bBHGUOjbZ+E_Uiijj_gwHIXu;C?-niJ?#t&&Il5yR#Nl{80IAwf zPxI?{ll7@Thxzj6T7IoBudL;*eEDY|oA&W|oB~-e9<M{7#{=e%Op*RSLZt9{QSxs) z2x9)|EA_8{EYRP{*Kg*3A#dQz-S`ai^&k95j1SCrgE;Kp^^h9>!hA9NjppD*_ZyEm zzFa@__dv{IZ|A_hlY{BPWYiyALC&!Ln)pZEpg$^+=`aDgy=YGXC}Dec?kul8J=u-O z`I_Uqe4zdMg&?c^A56^9ygy%;Jrd!!R(x*HN8knRso@iX^+V2$^FbGDuUMScf9QFm z_s>J3{!H|1zzbYYy-N7g$0vCGaYj^MbD!?_$Dv7){y4J3^Vpq#(86N38Y@xDG&g*^ zk=M$_sB7XMjG+If`3i%0$O9#ehkis7_apfI$*x3^yW2Kk1@&8d^-p&7U4GRCLFDhj z?Iypx{yH=<(*9N8$@p>l)-u<v9}}%UC!gcX`&v2o$9Tws{^;ZzaP|B6_3O#{SBd(E zKkyu6{pSez<^=MpLO#crJNtVJz5dDrP3}L|K^%@(7gFNSmvj938LEDPSO3^HuRi97 zzMgz%M4siz7e(Y5o_w5>bN^I@FzEk2Bnl^pu>B8v?QablwV&&6fGntAx19QO{QCR0 zs(8b6l@E%)elG`0I8)B~Q#R@a31>n&xcYNPq`r%9*sC3}cS(i(FXGz2WAAJKxW6!7 z%ZTf;;XUGUJaB(K24T=&FZwE6e-8sk<mV{RT)ffxd#x|;rsb`Cd2=nV>&q)^`QZtk z{m<T0_P6`;WmfL`m)4(`nM2nD%VLEf9QW@x4oAi4?>BaY3jO<yp1sS3y&4tRqhDX8 z@dusbtt|H8yPkK6;(xr?A2U(GjR%Hf9mL^y4~JCbKjd>gc^4<=co+|15D({(D74S= z{z6{Kmxucub7ETD4%`ISf7fj>{zmvU67wfozKh4b<Gl9wwQ{fj-(rq;{kJuEqB+s~ zQH7|J;C$xDX3@VC?|ppxTdbVzw*kR?ERlZvvn`nBopk>7Pf9{Ob&a!uDX8PxQ`grw zSlc^1)@yH;mT&jv4Yho!FF*2*YR@!ZzQxL2e<D8b1jU~Zp9V|xrra-q-!a1PS0TT4 zgnvPW{4WZ$KR<1%$e+a#{+khg7>{PZJ_>cB`}GH?9?zeWPnW-P!AH0U-DK}yT<Q3( zKWRQX17x)yuIGEC_J3m{{LeOeEe_A0*D}}5_zS^v^8>~29A93b<zsw#Pc84`%Uf%C zCtqGu%bWP}eH)a2m3;XsE9d!V|3l&Y^dtl#1X;d8$cOoImv3{x5$jo&w2$s7fH<5# zPbVee{t5EFp8TivTAt;}-*a;I?;Hq&`SnE-h4ZTyA7!H><DKWz{rGr4%5SguVf&fu z;-e;bUVM!4<@?@N@;<(Nm6bdHDgQwU62aWhc?2xcSj-n;{vaXfdQuHka`SIltQ%^W zWtviHt%+~+|Gs=VK4+8OaC|7f*McC%_vkv~zw~bw>F`#E_rUrC{|2Fw@NYV5B=RrI z^RFN2_5Ew&``6z3$MI1WvLHSh_%8AIQTrd1?f-UdME_b4MElo);f?PcUp`aI$N2I* zDW~}N?050)L!RZy&yL75Jo<5&tXs_IH3m{-b})`waB!+QpwgVE1MA7qy=UE8LNJ zzo)$vRM8)KR-cOpnvW+l$BT$8@+?eGj0(>0`-A7k$0r2ilLbmRe|%dMw9nY%?OtP| z$n)jZV0r$O-5<&S>7+^c<MH2*@_Saqe<sS$sE9u#%0IZe0)H-#@|P*Tn~&-;*Ud)- z;L&)y_F;Iw8>RF0I$s;+6Q^%2$YQ)RtUf27<I9h}CGGL}jAnB@h-UWM3QjP-eM#uN zT?C2AZ!x}^x_-W>pW)TN$<<f)2QZVlyB^<<q?xCJ=Y?uR3&-aMFoXC!{H8ZRf&X(s z3H@JBB%YtR{&-P;j$hxzzmShiAiqk;uT3C7N661hAg?Oql@iGJ-xs#;(>J{Knf43$ z(ggB(LSC3aK3>TCB#`$P@^%U2R|$FD1oCr){J^TH|5b&2Z36lJ5n=nEOd#JN<iirk z=LvadU+(f_3^*cx8iMB551RiW4&&#i*S+|;O6cECqHw|r;xEIi|GZzns;ECEas7Sw zO8eLO^*2Bm#D6Qlel)+#zJnfcn1X6ZF!Q5*v<gIT!u{tpuQmF45qoX^Dx=746T}tf z>Ar$+zg`!0M1S`MkNVsH{Y8C8fZo2P2Yc|C+c#IFt?(XoTXPTAM*Ay-{3C$$<}E*3 zgg0;LmxRSv!)b37{u1LCE6KL{UfM9I6aFn@4*ZKezvr$yXQGC<3>JM_WdL-D`LYi9 z-g?*(@*rN044315IwWF0g?QZI$$xq^kn?=70>U63wv#A~$I$=a`CRA!Xw(w^M}r|B zs)YYt$pyKd-vD{we{0XbOPqgheWU$H8c6DVu(IziT7mt?{=38We7eGGkD333e5o&Y z`8@|5F`fmW$^0&WILz;xNJ+Rp^cVWum7~9tufL|%@3r>~=6L(9&z5`5@vqO&3HE`! zgx8a1qMqI_tOnKJ-{0YDm-~fjAdCKJpFrQ85q-5H`oi-Wb2`%=b)we~-urjZpKd(r z`u697;l_i`XATeZ{2Qg^+kJUAD>v~ESrGrN$aEP0EPqVMYxr_+yoRt1Z@hLa^VGTf zPjDF#jRB*H^-rjWiB(<(46cYzRQ1`Ps=}W>J|W1beRs+Dyo5;M`4zfrohPpqk<azy zUoF-33q1LozMRIR4+tV&ri0<e3*s!V{vED9x9=PXgYoE0qHsK9{7|?b9h&HRQZ1*? zjSr@et>F6c{`o7Oa>RQ$-$lQNFokV}!xWvd$3^t9{WiJrtc+g4kmqI$D82%!awl;i zg$v1>mc@R?#VvF76Q^coeKGBAk&EwH3<wl#D6YcQQDj1fq_{?otM)HpHw6tX=vn}e zcRBXozB7^iLpZsqz&`D@sm~{HWn(@50~;sXqcMfis9EF2e`B9R9j%RT=7tnsX*Kl9 ziGN3}hx@Np!IE1RYj2g{3NRXA&u?(O7=}gtDhcYRaQ&m0ama~^>#rX|&Ckt{_A7J! zRmW9-T!Q+Qxc;c)s()pI`X`w7A6NY<3F;@C_G5aI?Wg&Gp104Acgx78KD>r{`-b9m zcbFc?&WV5Aa+4VW(}LHmh88{O`hd-c(FYepJ>C?^oisP2m<}h6%7EVK407WI8Q-BW zH$E}r7yK>mN80g(R@1BFdoaYW<x`D#X;~~4yUpxAACLL%!3QqR9<w%?gEk+#mF)Q2 z*<)AdVWdA16|>_-WwBk@>c!WNU43t_1G!ViemWv6{&Du`b>xrPm2sT3{2+T$>P;`l z5JC$U5kEU#QWm=mnl;<5)A8T4<6ooBxm@RNQ>X3kcW*c_OH4OYa2sL?WT<4~8JP4- zJX_%z3QtuyuJCAuM<_g0;eiVGR=B&uT@}tzI8))a3b$0anZk_~uCH(%g{v!^tZ?Z| ze*b>2aEZcu6yBxqHib7ST%_<yg_kJ2K;hX6&ro=(!f}O1D?CEtwB=bDEs(Y?(pF%J zNL%p%PGwfpYJot!0Yv=iF8RP+CB|9LYLs1pGP6G|J1bMlA#1B}ONE;$+*slI3fED% zy28l{mo8M}t#FCLdlcTK@HT}vDO{xRN`;pwyg=dE3eQk@s={%FM=Lx+;h_o-RJgao z-4*VtaE`*63b$3brNYe=Zme*9h3hC>UEySfOJ7vuuW*Tn@jWP9+D_&R+G)+QG8&b| zwt_%QKCM@X=S?2J?5rY%S1P<j;ROoMR(OWOQx%RYJX+xq5(nouWwF~(9NZ~cE7zCq zl27@qaE`>GzDvu~*G%%Eud%}Q6|SRjb%m1^E`33br@|!)?@@S{!rK(yq;QeKD-~X% z@B)QrD?CHtsS3vx9<A^Qg@-CUP~qMRcUQQp!Z`|OD%@7#mI^mhxUs_Z6|SRjb%m1^ zE?uC;U*Qsk_b9we;cW_UQn*OsF#cabaWtPo`4b7{*e*xrmwUnFJ@wjt?s_EhHF15c z#}LT;?W%B&!kG%URk)?X%@l5|aD9dAC|q6PWQ9xT`~H8gaEZcu6yBxqHib7ST%_<y zg_kJ2K;hX6&ro=(!f}O1D?CEsp$ZRFxVOUH74E8Vj>4G=w^g{M!p#(JtZ;pW>nL1Z z;betN=c(~mxJ2PS3hz>Qo5GtEE>d`<!b=ohpzv&kXDB>X;kd%16&|7RP=yC7+*{%9 z3U^gFN8wC`+bY~r;bsaqR=B>xbri0yaI(Us&#UoQxJ2PS3hz>Qo5GtUPFqfAG@IzG z23wKkBnmI~VLwObKTQS6p8EU?#Nd2ps?-N1afL@KJVN223J+Acx5C{O?y7K(!kG%U zRk)?X%@l5|aD9dAC|q6PWQ9wgQ{yYK=xTK3=OpsR1BKfZA4Tg;Q5LT9V81Qpz$+DA zqVNKRXDd8I;i(G86&|hd2!)3#JW%1@3U^nytHL=7XDZxQ;&S3S9h@MZ>q|cRua3gi z6;4*Tbgmj-g-aCPqwp?;w<)|y;Ua}sD!fGD1q#nrc!t7L6^<)BTHz524^?=e!o3yl zu5ed{a}>^0xUIr16>g?*V~LS}81j=%5%LLFe1K~yT*YAslVyG2(m87U6)sVDkHWhY z-lp&-g^Ltksqhko7brYi;TZ}~RXDEjXoW{8JXGO<3inpHyTV-+&QUm1;kF95RJfVK zjTNr1a2<uKE1axw>9cD56)sVDkHWhY-lp&-g^Ltksqhko7brYi;TZ}~RXDEjXoW{8 zJXGO<3inpHyTV-+&QUm1;kF95RJfVKjTNr1a2<uKE1axw>1;Lr3YRFnN8w!xZ&P@a z!bJ+NRCtNP3lyHM@C=2gDjZjMw8A449;)y_g?lU9UE!`0`}?EINTl~iEfpVA^4X@y z?2j5tIfV5UuA^{ug_9L7ou$TG;Sz=SD7;JIZ3=HvxJcoZ3NKN3fx@#Do}utmh2sj3 zR(OQMLlqvVaBqdXE8JD#9ECF#ZmV!hg_|kdSmF8#*HO5-!pRDkKBLB8;Sz=SD7;JI zZ3=HvxJcoZ3NKN3fx@#Do}utmh2sj3R(OQMLlqvVaBqdXE8JD#9ECF#ZmV!hg_|kd zSmF8#*HO5-!pRDkKCQ-I;Sz=SD7;JIZ3=HvxJcoZ3NKN3fx@#Do}utmh2sj3R(OQM zLlqvVaBqdXE8JD#9ECF#ZmV!hg_|kdSmF8#*HO5-!pRDkKBdNA;Sz=SD7;JIZ3=Hv zxJcoZ3NKN3fx@#Do}utmh2sj3R(OQMLlqvVaBqdXE8JD#9ECF#ZmV!hg_|kdSmF8# z*HO5-!pRDk&Q#;CaEZcu6yBxqHib7ST%_<yg_kJ2K;hX6&ro=(!f}O1D?CEsp$ZRF zxVOUH74E8Vj>4G=w^g{M!p#(JtZ;pW>nL1Z;betNpH$<oaEZcu6yBxqHib7ST%_<y zg_kJ2K;hX6&ro=(!f}O1OB`HJOIv|!$SXG4%ftN)#q76xOFs77-4*VtaE`*63b$3b zrNYe=Zme*9h3hC>UEySfOP^5Vt#FCLdlcTK@HT}vDO{xRN`;pwyg=dE3eQk@s={%F zM=Lx+;h_@q6H@%h(=AjyCB*+=Oye*4z+Dy2Q8-iKwhFgYxS7I@6|S#v9fhkaoUCx^ z3^o1=mnghP;av)EQ+SiYMGCJ}c!|Ob6rQc{427pE99MX>!Xp$Os_;OCdn?>s;jRkj zD4eNqTZLOH+)Uxd3fEV-j>6RyPFA?|aW(!5mnghP;av)EQ+SiYMGCJ}c!|Ob6rQc{ z427pE99MX>!Xp$Os_;OCdn?>s;jRkjD4eNqTZykody8&do{uuVe`9ZCo~3YlfWfUV z>jT$OxVpm03YR{n#$VwQh4(1DOW|z_Z&J8OV*mQrA`<EAU$e{SKN8`G^YeWq6Z7?5 zjL|<sr9R++3inpHyTV-+&QUm1;kF95RJfVKjTNr1a2<uKE1axw>7#0V6)sVDkHWhY z-lp&-g^Ltksqhko7brYi;TZ}~RXDEjXoW{8JXGO<3inpHyTV-+&QUm1;kF95RJfVK zjTNr1aGgKE)s;M1;nIJpcu=@R;XMlPk{J1hZ8EZGGfM6AvI*s{JNZf}N6jS)FHm^4 z!ZQ?}s&HK4(F%`Hc&Ney74EHYcZItuoTG52!fh39sc<ue8!KF2;W`ReS2$VW(&=ja z6)sVDkHWhY-lp&-g^Ltksqhko7brYi;TZ}~RXFb91kYdI2}1Pw%Ue(yeZCX%+11lm zc2<tUnF_a6xTV6)6mG0=eTC~NTwP+5e8;Bokec(;QUeO`LKB{!!S`GE`S!xBj63Q1 z_7?P{JKnV7C*5~~N<EQ{N8K$S&%1l|@%)X#D-~X%@B)QrD?CHtsS3v>_TCpu__7$i zL}uR?<M+aH;v4a5Sn%o?UKr!|zsh3&Ex`DiSH&)MuZsPB3=KNJD%K&vt73~#hhG)D z^*~oVf{XsG@O`lhM$r3WBkpzYi`9bqKX_m4*L$hX6{b#t_r(yu<~2LK-D%#nvoCl4 za{^qaw-m&NsUHTD_;@3aUPruv-@_}5?Wa~U)yheg*7wfjfD~@Pl)h|!>+dysuaA8~ zSKD{}%3|B^cS%)l{lK4jj_do2_QA89_}16x<wNWIeU41;Z+h(u`Sh}*<^Sb)_@)VX zO|&d_+VSu!hx)%B6*RO0f9T~=>(6V)!>5;3E&pMUUo!HyV`Wpq|Iq#cua)7yl}Xj{ zV&pd+l9J+UTCUFjH94;)hIjxHIUl<4K4or3qYX%Mru}pQB6oG#Gpp&bNMbpK*YgXt zz3@h7{3CokF?;N$ymO%J?zAiL_GEfi+sy2|Q?lZj*~aEI7?<J^u-QI2FSRA9>Sf*x zMiT8JYeeWcVN^!*;y(YbX`G1X@e5~7i--D7a83KY0oZ>JKlZRPsdiElTPm(+j8tp6 z`am!4=dnMf70g4!3Ll+|f5(21_jh__v{B}(Z2<AMX1uhx*TAYt++=9U9{Xut4LDUi z@}a754zF+a%xGG8Wi{{+V=apJo$vLCZ3g0tl(zi9s3oN}pw!eO)h9qT*Pm<ZKhhIJ zv0)s!L?K&pJ0Q;!g()ZOKNEd^_hk`{D+iEArGdKQ?p9SDQkAmdt20^EffLR1d%BS$ zQ9IJeM@NT^Y`MDR6!sz?4%zR$1^t`s`gd779>o8tf0L|f(&GBJfiNxlx1jlP_V0`R z6ZUVGsb4|=KKo@k{o5THW&f6*$F4kL`nNx-(NLAwzYS2E`qyjZCHdv`FQ<>mNaWDU zO6Z#68!qL(t;q>8fL}bP{z@xY0lS6M!uZXT@%w%8tbXW<P6*NO$pKQ8jf18%j2v?< zxFHYB-!O($(0{K|ODLgX#H>%*lb|$=-|ve%drDpW?mO3X$_*5BtdCTM+4Oz!NvJ5} z`J#Q?-(4aWN^YgjVV_BTaono@{TRMN;nMT_4JilrnyxQiff@%+v+=Du;mJ^&*8}K@ z7S!b8bFKQPp?*Wk<IqX}m3$9~S&iSv$&GKm8WUNS%>1@VcgI?;j;D+T4gJ)J-a*eN zer|kI@z!xwk)ikQrfFgwj^k@yrFCJ<uazErm&z8S?0{Teael+!w;z3Q0D7x1b|JJD z;+^x&V}4Cedt@8R#{7ChT0toeCQV7oFDqN0mC-9{eL=<-WODScWe?&3%yHXr+@U*W z{Iv0RV4dhthJVt=AFhm%#NhSHp0qGy7AV=1R&l)!Nm$&{3J%nzy1(PNLuGiGHvR=z z=}<<p@#Dj~woWpYkKKau%vU?Ive@jqV>C>~pWIg!zjoHSa_|y;?xd89hQ^YLPkN~; zKOK+hHY>DVusW}<{f@|_)E`EHcVFS}_?X7%b<_p)!aRDE`EcFY>V2oNbq8z}R_c(H zPhQqJF^T$O7TiJOY$FRhor-V%1Z{;c?NBvvjdrOWvkN=brh_(xooZ4VAVct{X<?_z z_|vGk$3iw?`g0LX*!~<tho<Wmp9J&cPM`wQbsu5rv|YE54!O4qKA;H7AB7Q18(SS| zQ8Eer+#v~lm^OV)hZCyO-=ga8bVwp~(~GLTlQ#B8RGBnoL1|gpnE(EsR`3;|Q8xDI z?@+K4*saGrw03w-Af*LU>fqmTFK~BAX(f`5O@npUp)cCOOCLc~#Hsz#4z0!%mpv&~ zd`Bz^z4jF3V^?QSO4$vZotCx6b|JP?htvMisS$pHG%F*Usu66+uw!ATdZu4%n|`J4 zMZZ$_HlheAE_=a-M9DX34v(|xkFjrSr=6!Q^UTl>yO%s|6bvPNYz7HbUsKqrA^u=k zPsN`<cH%zg!~i(ap(?^IZT!U?{BR;|+$Z?={A6I8J*JDt{8A-t{4+F#PKph<4=!<P z^{M<&cJkJ;FTx#ahh*;Tf9d+JJ+BWl?U{2=)ujB9b&_)@rS`c!h79U-D!RKD4huWi zOIv>JNjYg*MOoB7H1%mz!X_O1<x+enqoW&)HfhT{mDkz-To812{!!}e0<=pt3R}3b z^gRsc+?6m-Ib8+LWxkrv{8&dWEG_<ic%bk?R!HKYlhhPL+qSf^PeJZfpGScN)h|Lz z{>Yk@)5hmexGwKh6FqtnPIN3Y=u#W!=O-g<)ksuI8~;Wv9*J70=a0nsNtg)7{L=lN zlcBZ@=R(<m!f-w76-*D#xe-K!bG6`HR$&bhWc?v2zG^;NZsvKqpWCbCg5S!@66otd zi+ox^wbZ1f;dgjWn<Ou&0!iAqPlJBzklcv)6HwYAiRSWxBflaflc;p;-!Nsc4(H{H z!N$u0cLxLUJm?Ais7A`JVQbF@q1b`8?r8<Dur+dY?Eb)!NQYc9+?e`3kFu_|=#cXu zK~x6wWo}{TYQ^Ww3ml5UA=Pji<$|-=mG=Wz0(%{jNjf$U^O|er4c7ESFpWULxX`@R z`ZhR(l?8v054DJsc11WVdDG0}&j;>|!%S-Wr^5-<C1Za_%6tAfvwQ74Qv+txR&;7) zr$iXr0||Ek%`#%T3ueDldG>1)z<LZ@1h6*4rkI|v5ep{5pPmam-1iIRW=B87&Eiln zzXn_$_l_Q<4oTdU%h43){VR4>xq4VtyxV(dbueJ$ZU%e6lQmlNB$(k8-Z5~~OyO7) zX%cM#Z+VSWZeQ-)KA+vrLfq08Ep6<F+DYfx1?at!CGgdbLlUif74ZAtWg>6PUD1{_ z<(6DSKBFaF!Bp)lzhOZ;&0v++z?<d<<C6Qc8J7;UX-pgYHWEH@-1J0$mTbd>Xxo>} z?fX}`{I9V$Drtb+4)WHlFRs7V*d!k_lrpbHFpy~PN=Ps`7^CJqMw2jg;=l|2r{)9= zDEx^UfVfin7h3&Ipg$Wb0t1067<$|oGHZ5cr?D+GPKoHNX7z2qlhQSn7P5Ls)PjDL zud#>lCwEe8H2&bToSjcC>|8rL?TW3)YkVOi<t{2l6FOq8TZ8qj4U7*OMB`sdSB6aE zv&_P$8oKP+prOzHh`ziaT;I%6lr?DrZJ1xf=+T660l5<|DZU@oN<Ko3fY0m8m|w7@ z+=i@z$E|1{aBIet4rXh0F@(b}@4!2$g5~Ilk|w5qdH--v_YP&SGyKoIZ{V#$p3(Lr z<z=AF>~#tnBecvmq2MbVmh7Si1pZ)2F1Q`ZRkD_yOzOZ(X~Dm#XfcX{^(}2YwHyAv zEG_h#Vwa$?SOtf-va8M%0yo*krUBy9E;cPNJDSC&;Bg$5Tmy|Al4)`&h=Dac+pZWm zSw$7fgMv?~3Qwg4YcSQ9q_dYa4<zwC-+}6#Z>IHvX2kgI2-QGwTEWNU#|38kD#%2J zlzh%Y*1Q?mBwN8OWK+pnh!DRWc)lq34@o(-3SJ@Ub1a2jmp6I0(g@@H^o}4f;)fBh zPX1>rKhMbrdh)7PUc<?AJoz1cjs63-2l|_N@>{HYvy)f%<lU_NMJF%$LHc)%l@~hs zCQshk$_F|50>~53NfT{OUJkBa4a`IztOn^|(xhpoMYkH5H4HONd7I0Np9y-QNx5FM zw_dCq9Q8ujLv~(hy|8A3x!Nq9I6;e?NGyLkFhBSE@;c!X+A$y?E`@naOgOEkeZ<eb zQ93E*7yN<YuLc6ivzr#QA=Q&=wzGCgxz;`=O|Z6Q5KY_Ff>{+dwm|}oW;Xr(slf3A z-<9Y1N>n(oH1Wv3V$IwNGih&m8?(O+U^@w0FwU9HE7$CuP+hVaJF&!;ZzJ)-a>cih z7?+mIseL1fKPy-KP=AOsf(>tEjhPKGb?%VcxYZ|#-kk{%dbbUA2L2{&{e+o8rw>0= zo`YkpiJD|$d8briVze=lQ1$svb%SzM--h}nca^*Gyb0r0QdF+ECyD8VEAg<rM&jBm zj%8D9W0A|oCFWo~;f>s2e7-WDc4)YdH7R8%Xw+5m%>33TgD$%ETQU{f)63{Oifgn7 zUPHlBTX2917NFoRTkr`LJdT3>wqO$#jJM}YZvL&0bSznbDbehETzS4t(`l%s=PGlV zA=vK?1e4|}F@u#qb*VWdfHlo-TsHl-CxWKm@Qv6}_qo}`+;6ykYfk#wLL9Cq&r-+7 zu?(s9oI>U8uq>+bb1;9GR6_Qt@`1OY{B>+5RC$at<_IQNRsQr%#;-okuh|EgWX|th zzdm;(>i0AvxlYcq?P`Mh*oK{yHvUsOSvTk5?_eUf8iGv=2DYP(tMB^J+*S`EbO%a; zh@$KZqD+TXtr<b*9X-HdwbRDPb5KQdT<ir~Fr5mXMZp+bFop`IqTqU4a2FNiqoA2B z=#7Gs!8~ci%D7b}#aC0=4W{fvTh^A!vP{{0TXq(ewJ>G(*|IuR*3gvY+OpqoMOigd z*1(q0_34r$JeS1|@o1D3e@JCtn6kHRSrL_OF=aDs*-KRRswum}md&8Dxuz`3mW`#d zDW)vhmJOw{QKsx&>&uN)HUMRA-0#J>(<IP|B*(CAa*~^@q!~$CqYj;Sn)`K)vL|); zd<!mV(`~cT;teByFY9m&TiUeA8Fb2CnEoFU{vUJi0v<(?J$z?E8iQo)a0%iCjT$r{ zC{a;HV9m$`ClU}=R8(})XuK=p47y%I;!GfIJIH!>y{_x7?&_}ViXw_@5+E16g(xbZ zD<EnQ5e3u`5SaIOs(L09VE6gI-}8On`{sEv-Boq!)Tyddr%s(ZRV`Z%Why-G>Y!z` z5N8{A@Qc!V-vh`O90LwA`}F2<ey-W)++1ER%{Tj8oFBBu<03F_gx%9sJ--H8SvEsA z25sY3g&oaTkOZx1U>{U2an`sQ!KQIn6Puy7aD})Px9v_u>O4N92#7n)<d#LgY#dfB zu#7{AZjUGBpG+H%I%teD=tNl$v8M!Cg=U}Y<Q}c7q4T<6&@RrWtZA%=xZstAx@~NH zS1Md**2oTAMbNzQD+rk(glseWE;IWWZvhbhjU*~Nrq#e*t)DVxouR+konX)G8eN_y zJLX;Z(a{->3F+}1$&*^IES?EUr{~dnKS&Dv3q3>rAv!<%vxV;Nb&F$Ovpc~ys@f?X zyA=Yk8?zbl#w@kdUWnzKO^G!4FR^d}e^f9swp^f9TZQ^A26e(Y`d*K8+(UJ8VW)9h z5=YwZzwn3uf^J_h7*z^~*xo;{I69-mYVupFO04&s&wBP_*=IZ^kzkBIhsmy_X0sXn zkh=LJyV=56&i(;xG#3!XMmGYI+>4r6)8VHcMVqBO`{bZ~$JGJf9`kM=tmgOqWZpf3 z7l6#@Il_G9tLV2L!C02q95RAKT1#X78_hnM#7>|$&lavb7q0s?TsID`J99+!Xl;-e zJer)lc&px{O>VyjOJuo+TD7*&N5@kc%VBSa8=8~fRPf7X)mpxm!B5RH-P+zi0B$XJ zb{hRMYBpEC>ukMWj8#kJn&5v0BX5kN${C@BLA$n-H|JHrg7yPjq#@XC?$3r$;sJpP zHbo>-{(`oxV4nvzeyi}w0{h;AXGmf9X?TPsFso+oH7k$K2-M16#gVgjC+tu`VL&FR zeBT!HDd|kla^ZuTgc&Ua1*G*ViP9^F5eQnp#D5Qeb@5-a6|!g%X@#0ZcujnZ5)M_A z3rWV-W<3<5Gl2=(!NQ>B{X*g}{n6Hkn0*HFxQw=+ksGv28A-u>n&+PaVhObIym~z| zTQz=71nhLp3~4Ba+PRGO$yXC`buwZG5i^3mLDR@)MmGr+zCq`zfb0`gkJcU6OOa!o zNy3}d4Xwp{DDSFi5FkT&XE0ywJQmuW(ACuKWY&10z<y9SY@1p00zswu(r&iiP?CXo zuh2;|)-+1`=V)k3ei*Bpr0(7|@?b+gyM2(vTdhHRGL@AI*Hh=WRB~JRn_!diN8aTx zz5~wD@<KI$W!yzd{CJ2@@|S7{%eX}1dlJ8R1o@;&CyGTR-}!tH7HaA46N5J4_^r?; z<0jbxWgjM)<JntwCv=6?z7Z5}X*@ckXtPt=1MWJ6>PUBl29WS632#diI>RMxw^Ap) zLs$_z(=XbcX#c#6U)26|Ax(Xvq#kj_ZW#%WkRQ%>KFsWw(PYF3$)9ZLV?|u;yn#L{ z4LVzO*q~~GCM{3sCOv3he6{lv^&&F-15#q93(#M+t4{woEq&TP>4nb1wDjWrq(7KU zR~K<_TMh}aK}Q1U{PpJD^vMr(D#7~!EZ4{Qw@QCi46RMZassM8O~wZI6_9s%b#7F7 z)qbVj8z-=AXPA`JG){I^;M#wOzm;}>Un<-Z%5|RdAOxC>wL~ZY+xwE6cBr%MaLH*r z;-)njmiy*^V<5nay!k{qE#m>Sy+;cHcL_q<JAijx!WdnG$0Zaw#+MqF+Id+55%WG& zPOoL($TW0|Vw`>Cd(e6xe2vSF&L}J2goqDtW%{EO@BEn2kJ<h;5(3C1i4swNsS@>w znvF#GBMC(P?U~fv9{V_uN(lX0!Zn)_@eNE0a}Y*tW^^o(MQc_6?g`p+t`6A8miXSA zb#1`+oEnz1W{@Q`F<AZ)qNQh=urG^+mS_0QK0S$_l*`K`k@x54^LBo|s2Qc!_z~5= z(gOd76j5Vfy`nmQ^)4kk9;)*orW2vQe%}}7eZPhAg{YdDyioa;r8H~-)y30p?`dFx z%xm-KfbHy9)@IOCi?SgOJ~_)-a-nCVdIclPM>)@-(Nl=;hwx@l&K8s_6MZvk)>i(- zX}(t`3VfsLLQkY7iu;oj#XW!p?T6DQimi!<^+YkZYoeI1CW=a6<L5y(LPgI{$ZJ1^ zf!mDEP~%O6Qr>Whv(FcKeW;e#m%H-%*ZD|WS}reBKrDeawl^G|K|3O^>Cl>GA_wj9 z^oWwz=U=Vm_4uT`K7WRm*CSsbn;Dh;)1YtUA64Kr0@c6L@>=bw+Q$7PB&F50yeBy< zP&-wG9B8ePHxloxhfR~bh9Dy~?t_%1{PZ3LP|;fF_C2)06vfTb{<h&Go;E*S9{*WB zAEuJEeD1-!{KW%E#Uy?zY#CqFBZo)Rz+LSt1R8Hk`~c#$e0B$ks)FMiD4U3SjJR}H zr|3@B{5g~d1)i+Fv+ag`s`~-iqz{ykK8YgVqQrz#yPF!LWy*{fWg*}!nkqtC@t>B@ zd{4plddT360oES5rw%2(BQ%=U=|QaYWT2=;%ijjH->dDuzK_CY^-k4O4>sVj7g?!V z@5`c&nwDbo=|&L#11wH&5L#PYxl+{8{%tpfF}a>l1XKafXH6FGf`qYm2nmVMS&$&{ zLc)|1@w2N}<@fS^;5Q$r_pRo)t|VF?%B|kfMT|evrl?t2lqjibgPbPFIZDX66XaGW z<S6~WDAE2+cY2h64LWf!HhlLxkn<rK9bTMcgev1}UYT*e=K(?2;-AXIR35bcEtAsd zUxl|M89z%cOGrdx5zZKgf--Uu*+O^m^18ePG^2;kp^ASaLU%Rtz#91!L1Asjdp#2- z)7+DgahXIa`TUzp;tPN2ivTHx7{zy2lBUsxUrDme&FBQ!7wPJ!y5?ixg&&6lAHN0W zNc%oaY;bR4RgF9T#mg$^L<&KlBS4*Z@}SNkm*1({HEzA_p1#gm-}{!&+Vo#*zZe9e zIn@3Qc^U84ehRgJnFvL7nYEtUKSNN}-h_Cm{Ug-ATq1S1@#V7k!kyjgPpVu0ms9nZ z+4{X}ss9uE)*txz&D6j9`sZR%Px40Sp>9U+V~pDecGP>qw;>pAinMsF1K$)bTP#0L z9m6fTUVD5x<LXQD(?qg<I)(zeub(zlcCDY1x#p0|GKO8*FT?qx${RkX$;cxpf6~`{ zCM2{yvVM<sVEaRAyh6vfZ|0M_7-5~^jP1|dZW)y_NLf;f6u*{Q+1c@Pc*uMi8Qb|b zq=cVuGL~G?PrDxesjEF){ml0E01B1BjP3-nGja!$N@VPnq86CZ12UDM9Hl@g;w-{; zZbw75S+f8tA}g{N_h4eTa^IAP^MVpJBWo|l=p$6hntB;}q1!asLQl7)WfSWwNLNcs z)U0cg87-p^B#TN|qqFOk>~VrXtz^G17j?#XdWp~uVRI?Y&JD&!=72&JHXa=fS>bSG zMb_d>O`<#;0}@lT6?V~fJ(#-Fc6=IbZjRNK@mmUZwp^&{bPx^opyV^7^C`c{m`bAj zLD}xNT*?B9vW|w#@LiD=nTtJ{s=4Ih{1)|DV~%;JUIZIGs__aNeNO)F^gMoNS6d}> zjUtz2e0@1IP4A*9L(_DiqN$EVO_TQ!a5fnS^GiyGbM5xNs5)A(EM4G??x5!_<EJ-; zqw1wqYrdzkBF%|*(Z8I-bb6VqG}LUA&bGbFfOn1rRr@N%r)fO;SRcisI|ZY3Qj}q1 z=f<y*Ic`B3+|3%UEeW?6%)mXxql;hD;Qbo@_epp$lL7yv;7!>}nvBNFG}p&(AYnn1 z@p>|>JT{fTrc)77OL1quk6uHv^@8UT4;0focHVs8YudsCn1|%8E_|30L-B@L8JzEQ zu49#A8&|5N(AUoNMLpGtmi&w3e*nPsFUPF#fm8i3E}rAF=+zE}E8HSmwKSavapNre zS+qE%KhQ{O0$;5L^|nN-oB%PSrweqs@jS5v=f6+iH5tDnB)u4njVUf#8?67fN7CQV zHmW7R=QBH)ThkKm#X>xrZw)4LS#}Hz`o0W*(PW$pg#6igrGm9Bbca3mEO|?Wt_qen z1!IR72kXD;(QbCNXXFP@XaX{_05Cqa6pXavhL&@v?azhk4YrX@d>|G~1T61v=38H9 z<@-ZA%RCK1EdE)=Ww9(-k!LvPoqa$CsKT!`87lyjKU!itug;pE`f3Mr;!28IN{VEq zWo^}}%#+yEYw9Y!5}~;F&Or<$(Yw`Gx+)f6SE>Pv*p=>kh7NCEnAFd_j|uiW!JZB; z{Xf&GsCN7RH0ap7|9_+Ue>VLuZ*}46P7_8rIxAa?olx(N3{R*hG|aqsDJs?unWtmZ zaq@qe<!(*goC#fC$g7>vJ{b*iSYd>kMApLIoI;VjGM_t#z1B0M{Yi+{`nl6P<jH7{ zq{8IOmx}w<6!az>D%kvQC|q+e-?!hNrqEO@=w^?r{;n4IqRrMv!jCss<*>eh;2;DS zn-4Az%J=8Wg=8~2okFbZ@ejxNC;d=Ii>uO{Ln*{>H33w+mExJ6M+e2&c0U0<1tXeE zu!B6<(5p4F#Un>Ps+UQ@dl|^8h!R$=2`V(^eX<BvOTgnOJQ#Urgw)QA9zv*SGhtcO z2y2|egLqjVEY2X#S#-J*#JK_6yY7;HbbgCja|;QJGpa~^Or@I9KET5sZz>3?DEXcD zUhJuc(@%nu_Qz&D{{{8#w!icb)puK3d6|<;`%AkxUbZPBovdfS0h!bV>73y_a=$op zbK>okA+1EtZy{38*SkIaGTL7hIT``4wyi07>6A;J<*}?D?1`Kri_My@77){3vi@dN zEXDC2YI-lua7O=E`fk|d(l_3v?{jF^q|6dh>dNdzxlD+dOT&l96ATzveoVAqcK}sp zREKE4J^vZPNRqF0n~(EpMme5#w)3u;E`!934kCop`Dl;-9SY2dWgYLgKBq=wQv7Ty zW9WTqIr`z2zQS7np>1D@3!^Qk0i*u{SFmYb*K$_pf0_IN%h}#q?;II_godbCp!AA3 zF5>RGEID3eKo(P$?ziMb?o6Z%1edS+&VphYLg5pW8TLECjsP56`!LYE?Np>#{h_+} zKoytaOc<i(=lfnI9KRz)N13%qt<Y^v`OiPd+TOhHNvW7UPdJ?+6S}OVW}{gv{O5oB z4ZQi-zbNs2S7J{3E?{j+w5BzI@Y;{S;V(X#u^@egwPF!@%=s57-q8H(Um|$oHL7O= z@)6(-Al)0)eOF3)O@h9mdJ}o1`s>~MgqMeG@~ycgB%jP3;~%mtUP=jCuD<D#xfjOp z0gAA2l`g;i@gzPyBzvB=Th1nomLU`Ult!|RV=fZm>Ng*1G9My^dnXd{w@FE>Go=0V z7e=G?T|B6&NPU$4dK*U|oM*-NGv>WR6p>R|?b5AhCp)u?$yU1qcj~u%JF}7EYwwmW zK;{qDcH&UDs19-VkZ44=sk1Xx0Ax5H?LfA^yda5D3HW{aY4<mZpO(N+O1y{vnar?X ze)<4#-Hx0yn=kUG+wO@{8&=$|>h;IPqL3|hF1}QcyQPdT!7apfRd1_Xy)cNij7|V& z)`-74l{BMM<t6f#D_TV=5K@BGjE*9t2Y1EDlt8_2nk!I6kJP;vOr;t(s8o3IB~r`m zSCg`2V7wi=kaOvB<TIl7kt4sH(p4Wj?<nwz9C;0N{<rzbP;w-)-Q!<EmnS0MdUSg^ z<M41x?tjet?!U>AYrdu}lo)v$eEZoxxti>*6rs~ak#N6_&HkX0Cws-JdAfYC8t3!l zYGkorgKJ(|KP0=x?T@cFDmfeqp+CH&<?l8Y*X_;D9pch=GDvj2%B)wloX|Tv@3;5O zD2^t=SNkKo65-3;(S~j+9hg=X&>AJt&Ec7PyusJ^tx-ez3K~sm_vzJ=`RAkO)Wmn+ zH~`{jrpj0HVZZoa1b^ty2pJjiVdk(ZS~J6yFQQwkc}#Ig3A+ZzoUHrRPl|1noG+uh zn9<D$UtTPOyHLtZeeXFocK+Xm!DY8_%j@#?k@JsDq7!?sQ3-=qsMwKj@o*j{#Wto% zf<5Rm9t`%dDqlwOb*^2a`d2bX-}>Euu}X{{c?`MDXpL~j=#fVd2$i{(i3?Ei@`%v( z1aUDP*^{8MOoUl7QdIaM=xg~K6cuP%M+%YJN)hiv)B@K&vm6-LKJk~NePZQn<QoQ} z_J_OlYu7##13rEoU6Zm$sh0VKEYdO$$5qQTNzfkqf_e=9i{N`gQZU{12wK0Aw%~a@ z{f|1PBpSwjPE4g~i0=AdVZY7AJ_;PR@hgSZJDLaE=c2#&XEm^)hjU048Y~SyB3SM{ zL}f7ssK*Lc0;Q<=&5;JY=MY}gvYU!?g-fiwEenNIZ=L`u8&-Uq)0g#AvV1W>b_xsz zz&A*-^ZrGsrmb>9neAP~YgswRj5#&e-dFdt&=jd3Smvt>6$X8Wguf5^Zq5!n0oFZ0 zqyLAFY4Yca1Zgs^B1YaQ<3V0s0&b?5$R>}KH<dVF>s{-IuqPiV?h!0+W1aGAwu$Q} zCD$u|8jCYY9pk2(y=?7^La=OrELU%zI=jD>jv4s@K|P+OFK!81KQieC?b(>#)+AOj zSe^gThUPrbh`n&oTzLt&6O`Bs?;=9+k+PT#x{;vTyZqt;;meM244R50vddz2H>6>& zl#Nu&7)hE&*JUsCzbgC#g6{T0<-4)_udcl?#gDP!eZXP9{xhcA@{Te)@H5IHv-w)u z*>ANdx#_Qq8y~InN7f%;)t_beul3h7gpbeyodb(=w+Ls5Emm`->er$KXBlsevlhK! zdu!mR)^S!=ZPLtfS}DenJA!Iz6644_5Y^o{QhD9J#*xFwWf{#=Fpiv|^J**7ddaP< zNH369-7XHxkzYLKylWVCPQg7n>9o<ATAxZ$KkrPyLd|LRh*xku#w-43*2N6Cx^SU_ zjU$B8>=B`d{k>LLYpm60S^aCBO4RfA&-~VEYxRB`tiA0Gawlq9DltFwf=o|+HF^j_ z?EuTWV{*TYr7C@Cn*88=K0Z(3zewLK4?bFEXEo3-q2sI-s)V{t^hjjG0sdpM7Q9LO zXN0`$M00}IJ->_de7-un@0^K)Vo@7i`gDT}A@iOZuk5}X$4~-lmk5G>MQt4!nV}pF z=AJj+`yBANq0%~A)j4>j6ET4~|HgT+TN!eWxT`XZH<ss8+S@Ns8b#$wQMsXBNt!ud z;NCNkC1$<(d*fT`=D#65f7Sl-%eg*h(mwgMd}3m!QCmMp<%oIzF<xwoBl|9s(4dbA zIdjMFmdPKOJ2lLoC3dD8tG?0hT%LldWfcLQmjtGaSm##QfP=sXIg@6{wxb>qO9i3M zdKG-DI=X$M*sGn>0CS#QrxXs#9HsG17kpy?)s)Oys!BOUVvkM5=4kr9D<L*F72CL0 z!EPZ|3XgZ3#Ti@mr~SRSxrJlW<`A^nfL!8I%x_u2WPYa>%%~_ae`sMxoH|{Y6^zZw z`Y~W$#9XjAi!LU<qrz_%)(aFhTgsN=MYsIqY&`0K41pWhDG6=c%nP?DuwbMy+d1u6 zop|m~+XCi=bt=I*nn($@s^B)iIem-5sj)Z@fUv?WY!;CEZRSNCl-%;8Ieqp|W?|!x z=7o*hO3Y~uWV@)D*h!s4kvy#)a_XFp!QkeFh|Zwz7qg~>Q3u4>#k7c7NZkWwp{jPF zs&*mOHVd1~LiuR8*lxs^Ov$gLe6$}sJfHRNIGH%DCZ*R{`NRaRRaof`2zr`$WCpFB z&Wc?<6>Eor)?5V<TQW*c?_$%T{p6$GII;aq<$1ng<jL`rd6J^b!{{HW&#vEKcp82T zn#25^9!6{ZI>XZ{!6~~ut!2LY@M=qCu|A8;6|$H)U71_dl6;M~v7pCZbYAMl8&TJ# z-$zKlOOJE5RQ3A|)$cR;eWIWWAYPs;SfF3r(=_Igg$4i6F-r>ScoB~YdMdY<?a%U? zC)Sr*?=jT}tR^#Z86%gZOTCi=c^t*$B>Nhvp72X)Y<fX9+_SX^e}KYHy&_QU{G*xM zgZ~LxbmlmCYWjp6`il-s>(%@M<s!T>R^p*^*O`UOf{)U}jZ(fjcY_qN0JJNUxUi2l zfa#MT;jOK_z$lk~48|2?;=NB<BV3bvF-7K%qqJ!|fLTg9nWpjV6KLE;J*L%3L8vFm zqHcZMT4fe)@na9l@{7+DgTU`wZr(czCX4L;l{x=AWDiJ<3FBx0$0JqW9JIEJ&h?aZ zHDz>`+JR-+puZ5IFt?KoX5ojFe-MoMA(f!!)5m9(n1!wUe@5iDFg6ShbNe{LL-VgC z@Fnid(+lz?q}ZL&@R^D#1oK4>@|I`ruVjQRhoIRQs~L`?j!?sKdO{jz%a0}IMG3~y zg-syrsGuk{a+f>RI3-HX4;aji+i1RR<}`$}LPlv2(`Qnrb1_gdMmtr!@=v0qNu44A z%)&TD{HBGUOTGhf3&l*^4jSdNR`@koI?TfFK{R`p0B#e&b^t%&{|nq_%$hMWa7)bT z?@^KIc>d*j_xSNqHv4y)0}^IqOGb&=e?^HofX(bG*fPV+Js=oq$~C7qAvXNxrS)c? zv$lwN{2LkeBV>fb`iy;8pRo_?7bck=A;1_YOtOAqlJyIdtY4^EAM2+KrR1`5Y0+jZ zJ%8vz&j`ogvsg~N{l8gGd?hRE1@un*Zlnq0s&cL}nQOU0%jE_>&z48o=Q%v4XMHZe zWuMdMOW|D^M>3vV3Hfn8C%lD&72m++&A!j(ycrMdLb>Uhuw_5I<+gL#rWl2KfbKAV zE;SEcQ#T@?hn;t<C=H(0_Pmrn6|8PhX}*Tgr9t0;;UAjrE(8|-)|wqg@haYB=i_VU z@FwF^ekGM%fZ<(;-<SElx<RsnA3ko%6re8btPkqrX9TV0ef5h%bmbWNooBWqiJOeO zc$Ytsj7z)OWAbfd28qZnsoI0UloWLoZDzUKRUdn-ACNN7cKZ<#wX9$!O|01%Dg{va zFWHae6YXDIOm6=h+5CzM@7d;De!CRei6Op@4hU8^%Jiw+Gks4Bra8-OW5e@D<2AM1 zQ(E09t%el2bG~vu6>o;5(V}Q`dwUl>=nJ;-SMrrw9|_g6r(IT#^I_g&L{7Y>O%RpE z?vWxUdRCN{duZ9qP+?2$DOsiU>kcUM)Uh18yS<N+yR@j#RqAUEjj``mGnB76951Sy z$YS$|?$uiD%>QkwPO=Rk4eIu1X?496Jkhr@d@t<(?pRmzIQ%4Lp)Q76kk<ay-zlSq z^?oUHs2GX9qKjqAx>o8GEYDl^XIU|t^Vdtft{AH0KZz|$1U(I!eqSL6xH^M|=DJq+ zLOfspPL`6QjdErtU%{o<1TCx#5BXPaQ<XWxoO^~Uc=K&Xi=95Kl(ZdAW~Wl(8vT)F zp7uICOI{Xz+0HvbQB~=%P(O}WRoqh$T(lPEkyfoDz~C6$i&Xf=MJM(od@ugQ>U(Lj zzkN&Z{IvaPMW1baLJ}PseUIF42@1bh$us5*ju#^Xlj{|Kq!C_PDzy!a9{DVJ%$V4R z;rYi1NMWAU&Ugx|srzkP+)!Dus}{9r`U+h7Y@-73G;Drf<6T3+a;{+UtOk*jp|N~y z8>bVg^2g6m2#eiN5g{#qFm#8G4_NCEj?$}X><c#>IR@>t?+CmOU&Kg6zqGF+cJ*jt zcb&MKO@U?Y%ZPY^h<)<M*8tJQKx%*2HvaP5(HXJH9+vh=#$f4Udmkp+Dg99^U{hhC zY9jn^DBi%woj?*imc!D+sT6O`a^qr2K=X3tS`TBAiWrF9gUf#M#z;sO-q;V7g2iTV zh}xvqPla~gKwyMdMM;85y#$Naw)b5iLtpWxZ;ct9CyBo7Fvj;#Ww88505|?oXzEZD z+V_sgr(Yds8x_C~MUtkS4O7onXC)4z_|_1MPGK2;=Ee6}_@LDKLXQU#1>X6otjYR% zRtSnpP_%y_bgSiu3}9AhMQfF5N{^E+eQ_XqoalWsMQ#mQQc%Sc)i7GHK)>Lbu3sK3 z_=kRZqM%N{JXg@FUtTI$r(YHpY|$@E3NpYOus!}*RR(L{NM|P3c}T;Q8y`JOW7t!& zMXsr9Y?2erptmK(^I3bY%lkp!Qnxur_Y1cNZT~=Ze%)W)sSgRu*?=F-%5mAm=)=da zGREZ`$7klE$Us_ImJ|H9nf)#vh;mn9saSInQ{>Rr*yKd;4N$0=iHH>#WAHQW+k#TT zV}&`u`>KzX#I&WNVe}i9ZK5R1q=F_of^Mh6WIGim+o>?wPG}suozOLOJE3dnb^?uV zC-6u+F&v~DlEY~!`{9qvq*xJoQ7XZ4fID(aWFH`h!bRH6^eeLfYm26c0Lq_?<)1it z7qIhg_=DKekhPmsCwMPYVZ4OCGce5yuyjSnoTK7T5FzXJa_?ARM9r;k5-#<<Z^qh4 zgUbp@Py%O%vx<Xi2%MFGA4II;E+qN<^9Ayn7R}xxw?9LM*u#2OU#a-53AzDEY7HyG z-^VY4wA6gZc{BR)xA|ie#G3P8%i?#@18xVlDV=#}8(q?74#>+NMVDN<0$s-JHzB)1 zF43A>j=%u{Cm??`2Ye`+c#HhBp-v81ZWjKGj<y?BdpmkAivhG@bAYJcvJ~ia7n-V& z3sKHp)#<T=wfcOAsPEIq<)Hmu)J%T)Z$js~uvvc4rd{}J1Rhm%s{ppj+YXd!l-f&o zN(P<{lHo)75tSS*jUOnP)(nFRHQQa?ztI_MD&4;&V4l!o-gB(9Nlm`Am(+>!x5bZ? zIQmWVLI%yN+%233@JfX%v=PGjnuE-?eK`Foy(Df<vQQZQ=Tq}!+VsDTTu&5jhTz=1 z2IAyp@GHDvZ+uH+6pDCWHDN43Wu9+k+51P#OA>pPirq;9E$YOGMao@Dq!ci+)O{Hn z;00Y)5D%KndqtUfV>6Ir+;?oVRWOEHfYh;Um|pL!$3KWg#)%E)+&`0Ip16JX6y2dz zycHTKa~rF!UQz~&nh#`A^O0G&ofXt}dB=<}trdM2e(5u{pupLJbqJDqg;W?}XZ!CK z2*Ns9%5a855DKCu3AdVsdqA{D5G|FTkN3j%Y#O#LVB4nV?H|oc_E3DlJn;v5^%D5) ztj$W{Tb4!F0QUXp7o{7_d!Lo55$|$Krv0Rl5{2Ly_DGrQgcn3;!OiEgKpx5}wekvK z>!GY=`@$w7of?o#hm53Yr!R9QQ~WZr%P7U`?nHV6jJ0+2x0n(m(v^$l#s``G>NjA< zXjN9|(pXlN{SRRtXD!C4F&?u<+z_$zjSy%`?onah_<_3mx5B)hMHYuZopozu>j}7t z<v6`RppeTEiZWDMrFh~epLMq?z*fc(r_x34)yQWGbkJsx1G{3N;5IsET(-ry?1M0+ zRV2)vC((i`6(Cl0c9Its+{=sGXh?HFYKd?r2}S=95x^31C9T&%_is@YES6g=oZTD^ zl-iBiscJV<B832~kTbhTPy`4<MSv==N`;_63Wl}&JXjzG<z&A>fDr7wzZwF*WSR?> zw=!!ZB!Z8c{Q@5ibmdIhQr@NqmL9&(0`25}cvOw+FP4rvM1f2{edLEZExr?KbtR-X zoKbEinphVmyU4A?2)Xf5^ha1gx@fG>^E7a%Th>YFUw0nM21B{`!pBixTFm<<gE_vM z^yG!EksWhx?H!Dr>8U+X`7`;gW~<pBS$9Ug)6*YmuEKoH-5$3Nj5OB;YJtiGHZ#qB z&DH_H{`z>11{PcQVF3CgE$aa75vV<oe3{_Z_W1gEU-lQyAd1v1b{YVz0-{HxWlNy; zY#}3UIZ?5|wa;NAAGG!fbgqtI?8OeL-*uaJi=I<8+G9qWq-V4|5%n3JjPqbHw;6qw z6hOjGV<ZDM(Gyo=j|_XslN)8&J(8bDyc5}Z)U94Fjra!*W-iK_yj>5H#U2s7M;Vv> z9;I_38}ws5;b+W6#uUOV$Ij$oVRE1Y@)e|XKv7)<VeTTe?i8<}woniI%xq=zhA;pM zg*fMtPZM%tO(?9nRQe8kzNi4`pONpOeGlVzHg2j*J^$h@L*37+-$nx6t$naM3QNcG zK4Nl=SN27Ob}7@$6W!Kh`GA&MAD5PY7O*~)h1hRFA3Nm`mzMjkB^WG^a|VY^h5D~E z0jaq|;_AQ3oERH+LYcJzA41kvWwF8I9-~zbqCA~hb{8Aja;(W=23LcB$d-w*oc^V; zdk6d^66(=1YX$4l8tRkbe1fRwB;FF<BhH9OXD@SZ1MfsVnilo4j(Q?3O5WWge94TK zj(RQyHT!lTUg!#5NARVt;B<nb#q0dDClXxP75o)J(G1<x6D!P{jN35tF?Icphe#?R zQKD~_Xas?POS}|W8e2F_T0k`umSFC~!+yp_NZ+oQ)w#qZ!g=U^(jiIR&wnX{B*S?N zMr+@g(vM1!t+Bif3|~2!`V?8?H^RuNblG3P>rxw^S-iyZRxmv}1~7WzkUpHi&v>Ro zZ}nP$8gov?9oy=UjV0xOOFgf7<mimlcunn}&IqcL24y75NwnM4y7(8W9Q5r7kJXN! zZ{|oC^Y`5I+<TdopSg4ESBXTlE?f?u&(PIfihAjBQN=s_{$jJ{e)76#yu3PRcE@qD z#&J&28r%G^(2xk<lZG!TUz`aSh-;`gLWfXhswOkY<UQI28%)2?(K)OO{yE^Mx$uuB zTH7C_y^2~KYfRDw@5qxtW_yE_AD<%QHa2Mdqx%S@DyY|TN$&66zg&{LZucjb0`_xC zF!^H-7Nm=&yc6~-ni?Ns5FWBYiKZtJO|KJ1G(FGbKZ~Y-b;Vw?Nd%LV`4LltoHbK= z`+nunainTFB>OGh*OTn~F_)P0c1Z)qi~uG9t0iC;G@Fa=Y|iq>rWYhCBDgz8hr)m6 z>v`Wpqxt&qZ(#xm-~AvIujIf+t#=g(#nH`XO+A?Gk=G&h8;y4W^TZx@o5Y;A8PUuX zw`UldW$&yhda{%SRfT1|0xl<Oy`K30ChGDc<4NK~Pzwl-Y{OU&BCTQeJ4q<6y}n>L zsUz0YU$h&7yAHu!tOd7foUd21lHJqGthq$vn@F~fWz=SjRM*ZMNm$vqh6&NXF0S6- zVSl=Mr~H~V2NRjx6u<6xhG)eP?QA1=w!%=`AAsVcf1i_4{fiR)1L9XnBguI~9b?Y> zlSC{sRsjjuHS!2p-*EcurIQZ?Ij84NK2WuvIQ`^AHh4I?Z$?|GkNwiCB9Lm!PCl?P zs(?MQhf?jR?=khh4pIBG<26Fnk}nl=-A36L65ekcjuL954TZBt;Dx-O27Inn_D*_* zPpsH(90Ytuj}TY78oTe8cB=~ww2O;z(8}e~2x+nCDyfvzziNr1S?azT*iczx;N%0j z7FfsHPpHbp9!QQA6Q+m{m9f%)%J#OS(kF7ucoYOq`@a=qM8BeKDliA0Q#JN-IF18O z_MilFTBC8Ukk@FGNo*{lFn1os1Vs<1b+4<L(RC;X0m1o*i*pemO6scF+&|ra$x^z4 zo~XgJpK!Z!?ij{?`~9w5NJbt<q&nb~jNg4$Mn<t2T?U!eyU$hcGHX@u_VFINEwX|e z{e=X}sQ(=#^oN9DD7uddo^$wd@z8F6ARQLHp9h!PpCVnjufC$XuA9Q5_<r*Tpj)NT zMJb*B_$j~JU<*j$k9?sAo0J=GqpDr=N!3reVvx$HFfyvzmsc#<JAanszd+}Yp3Ck; zvO!GH#Akp|+aIg<==P9_yn2sr51ELo_o()GA+0@LSpdo`P)d881<Lp@C?IZoFhRBy zDp`8w_SSe&3P0`iTk_FP*YZfU5iclnN>~)t5zr!nR@}F#8s4X*Jy5Or_NUx<KZK;z zJAR;&mQ|3O5(8HphZy+HU@Zm?CKqC0%Y6`j*uy#83_yggch~$IJ2SyY7d{y)65>{G z6q}AH9#uO$_;Ylq6PwAoRrF#+@E<^DwVAJ%<sOKf$Q3z(c8^l;QR4Nl;IWr15aAH0 z4dfyn6o`kGxQU!8)!3Z-D3H|&-TqIgcb6Y|FKVk!NDpwHfKaanmnrjxfkH8gbNgC7 z;1&pUM_i0h@B{RD6n#}oRI!ZtQ)wlaphoCnkn0pR=u+e;O}!_rr#1D8V~qOw)bk7f z5@BjpWWZX_u=p#{&h9muGnI4YBI9A==;C=igyHjRrxy%!J6BBtGHLFkxywK(>Tou^ zD~oG6DjP{K5!?goRN;P9qt5<rH+<mCU_zKhJc6x2N|M$6<%GKnw;CBH$?0JFVEEvI zV>BO}s`7fB7?k&W5Iz`8gyw_DdXM$KSu=qM)m!mw-c&n!cYs3VUA$7D;Wz&hkqqjV z4;gQ6aJ{4w&UM2p3A?Ww6s{_ICL`rfz<lm<9Gm`{>3T(5LcbA)JCq|Sa)nBlnCsF< zxwjkgtu~pPRR8fpZw9P-W_OvLysR!gCDw8?DrO2zLHn^u{SCf|-z)i(d=Yv;&J=Cd z-CGMU*FK@pqW>M>a*O5-_;wLFS<IR9{!UGp3BD}QEhF~=&?073?%GXF3z|(L<iY** z<IgmgieXvx?_qGG>fgRHinkjV0w?|3gCPAIAgKEHN7`<${#{2@vVZS9hW@?vDBZtJ zBrwji$?KfVZ8GuKiO~J47&l30%|#TF9C70HRh`fyPVGavBQBKFt2KTyfUdmhE|*`j zDI>u;Q>-5oDTd~GlsLHG;;}dPtLghcbN^;%W3$Ws%i~{YqV;?rJ>uT>UIn4d54q}` za<V^_{JUIHsnXr=$He>yGsRWryjidT-M;M}x_yN!uC!3l;wn=yJYLnIgCgrQm6IM9 zOpwW5sH9g?a5Wi=P|S%JW#J{TrRj^W5eq|naP)rkoN7Rwk3Z2(^|j7^19375?4vK1 zksu$e8O~HXV!yf~R~9U4Qg*nfm!dL;hr&FElM9XKNEoL#ucGnv>&`UlYAkioO{BOu zC+YUp^Iqs`J?DiA-T7{Ea=vp8gK#Fg=vlNeJ5n)so}(WWOC^<rCoC%Y!z#_>!rMh_ zyGlcjAScr2>C}2K$;S)x;p3N&(0n|V{P1zH;JofW_;?%<nvawA8rwJl{YeDiF4gpd z1_3PAo9jBnbd#!I)o891`BoZzzxEsHH$cKp)ms_NUm2k<G2W;N0fUZ2h#`le-DJFl z1}=TyeWLgRviD=snO_U#>pzy(2*==-O2Ukcn|R0|NKOBU{{Nv#XW8;Dlg<QMqsbTw zLGqWBlPswN$d>)tceXR4^tvif8nR1!!apNsd^Hc^_&x~LZSN(HN<lXB)fvWZYA<MM zQC%0mq|0yfb=<n&9dqRDgU8GX_0#O24t#&hQjae(CH00hF}^^|$fL08&>ELfuC#<? z;hSeDwyr%(CPcZug-!Fa*!2bZWw9#?hOsv;_atE)!dK3D4QER_UwuHTS0mS?-0~2{ zq0#;~@@WwqD4d@LPzFx7AI5(xRZj6+>ibe3TA!#B;EL=32Wd`%=;WuXXa@ZysRe9) z#Jr~+0dw{}T$nR_K9oN{S5q!W$GgZDGu$vu0k(gs1btn`IG*fO2sPrF>g-zDMR>9h zrB7ki$d?1mk<KG$KS3Ge+%k-AW$30!$fu-sI3v`S49<jj9a7XNiW<}YXj=EuUfs<z z#k2|Ep=t6+XVdi#U62kT-={TJ)}+~IDlBh(dYJTA2={8<zOv#N@1J>PH?X7`u-^+9 zCs)5KbZtO~D;v-qMBC9?Q3I)O%HIP$IdM4lt(ey{h{he6E0^9WfbR6C;p?yPO<>No zvua&jAjn&!@hs-yY(}k5;!)#)KrF8ZvLWfOBK)ns!xHN0%eg!JgW~Qk{zxlN)Bn~n z*s$!ZW|66b+)^25U_C>Z>z8uFluLV_BT-Vzl>ABFkH~=vTHar@mQMh2S>lyo4d=EO z(O%-)^NaLH=$N40|4SJJ%CNWL7%}XH|E<Jmz6fotcjvVqrrNEAhqL=2x4td_rGHmw zHUEWCP#iutvLk=a36UKKnDaLi5u4H(**Vahcb=LLy?+%n<^6vb^sGp1NYN`cmYS0V z!Zz{;Q*{xs2TNF0Yr$Yf(>r6u#%IoRKuSA2cC>0CecQx$5|`f3wy|1Tkea+5|B%Gw zItd>PH~vrYG&>f>T5fzS{&Y8ZH{Ptd85-gdl_q3fqv6e(3yE*PQO^@nkGXZgSS#2L zsNd9+Z2-Sj7umpGf|C<jQ8iZF=FNGs-t$MA*VX2|dbfx{<L^8IwZ?NiYQ4|!+kTzf z?&ln;+I<QSr^YMp8;TE%i-=H4OKkGfk)4OkK0DGmXLgXnta{4oN$~-zf#S!?PKP;f zHdF?zx?1m<AZOd7))>VLC7;ZrQCieEj<>jt(2h9ywZ<VjxgU@AFY6ulH`bj|n`aP= ztYdqlxvJK?qgqh0!C`FXt=9O4U+{dzqy43{0o8TBN<8&h;?+`p^Yx<YJwNa=XIAx| zFD2qW(Qm8w$Wm%frDNqNv4jp_((OeZRinW@_K*2+@S*Yk!U?h-RDMP7t_Uql$MoMW zy!?$w`~f&)!vSk7CTPQA&a_YYhYZMK?n~6zvp8p|SDA{FQ~c=k*6Eqybrt5ndYG@@ z;;CQPGxE(DgX?I`UXAVV>i%}V>aD2k5q<->e*BN)r1>qG^&4`4uilWcB_m^Soyi3G z%^AH~$@hTHmjdQRp!?RZ%K<v$@QlG3TY6;Ff77#9D__&;QT>g|yg_A-pGzO={IT=j ziH*;X>^#&wb4y&DO_Tf`%NsXP@yk&>ob!6)yd-Lo@;{Ot^>^iqUzK^g6ISG2X|9O& z4^rt`DbgSpE0DS_kS<vz?bjXO2@3d`E@1uru~c~nsq|%}(;M=AM)65fe9Wc1MHuOT zY^sM$*)qaQ>C%%iPNWy8%Y*u^@0kr|Q_~RpaZ^MLCi2HtV?=gRbO8!~Q?(?*EX>X= z&iRKX{p-5}y7k!?|7*hq{{phhpWv6B+iv(JF^Rw9kS_e`fG&QeC3Gt!*NQAjLs+b+ zEC$Qo@v6PMWz9?EC5}D@KrxpjDN^|}RQ~j6_q>e0krgb`7Pt4?o$y88BXjsbvKPAN zWg=tiM5(t_O6VKs<hQt;q0X!kbr*XuYb++-nvD|j9wQ+}^Ewq8qC@lB2nAxLi89+b zf+&AvN9OEV)(Y(hFnev8Rad_$lU;kG%+ml9L;;tky@^fYo4AQHQkTyz)C#ll<1fs{ z_i8K5*$lNW$=+Tc^fiP(A(5@z3iFoL*^za-BwAu5oTUSm4ITA8LjJPy=F<B0J<f^s z=RUa86QL}B?_XyHa7YOFR#qN!PHbv+T70A~(^p^Voe&FT=SD^)LOps<&O(SBXdBy^ z!<mB5;DBebTH@fe^gbf8y1Y2?4$F-eJavze7UM6GSEHa!OZ)|^ClqHCquXAh<joyl z%i3blE&${XJ>O^C5(JQ(jXc1`C1>;wsGg*9amaI}0^OR(8{r~7U&Dt7YQPFb05^ud zK)SkOE?MH2``ou7dwAj#C(LRuDUkDs)+#&iB64ywE+0G%SnrB^)z73ym|~*e@lqoF z{*~k~CbEK{70wZ5;%xEe(7pLX8=t<#lcTf{g}RU>%^Ae6Ey7V{sCX0&UCqmsVeZi8 z6a!(LhQ#Y4-??X`Abvt2Hlu%{m|%==gt_12l?yJ4i4#qIvOJyJFUiTk@w?b+sNZy? zM{c#4ymF_^c4T6{JJRo|^RMg-ps7yw`#Qtf;<$K3FLiZ9=uCgdcz>q4NA6uzPo-SU zB8|OA_QUWkg_5&fN-}91njmzLZ6tt|HYi6haTdQu)DOAagJ`+iBPwULxL3k&?G7A2 z_)TI1#}8j556cPkT4zS<pj)+O50%k)QDsE2k$KKGZX;;t&6W(Fbpg*NEALv~En^11 zTzC=cEmRkq(P9H=Zzl8wJcB1F@Zmuo^u<AT-ud!I*IkRk?k<h9Xs)%5sbz&3JvI}` z+Yve&{k{j_T&$SGL!AGFA=t1L{^;7U<=$W+yJja0$Ati&(mpIKK8s&WJGk?VHE0D3 z1@<iYZGXLD0j4Y*u&hDPsn};_5n(Lkmx`+<sF9t)fNf+^uJG0T7nw#&xS)sib|-L1 zi5}+MzY!U*@LCiPvKCiNpeR->KsFR};N_+n{Y5~Sjmr=W?ad+(zGnE><9mT9xaG5K ziIoTmh&&)r**vj)<=L_Rs~{!g%-(^OStYS4o)TYc<q^DO_73#Pkw71Rq`n7%{w2QV z$}C<EmlJ^jGq8#O4e_ziulVE}S$oijLuu21J+_^o+%glrhgN4w^8T9$o+EF^ma8UI z^Mnt~-`DZgFY$L=My@Eim+%BCZyC@vYh^TXzR^6f)qJFGR70o-ep?d9@R5T()JFWL zrXenI{5%m?&OU~%in$1|!Ups1c|Ga!7utJ@$J;P876H#St^!7pAY<`89CpZ=>m5rh zGzpUN@~UWyp8!GB4-Q!!RjbU&8B{23X*`YI6ZoP!;f)9D*bkd-8HW?2`m-G-b^EiB zINhJ$5}E4Hq}WgPXHfd{YPUb%m;OY+x2pbZCX<%%8}=*V>&nX8CdG2PdNdIGH9gvJ zS3WP9^l>lMrF|m}JtWZIPyZV7b~r9^H+~^M@5#EDPc+<UY>mhv=^ICGR?o}dMS{$z zFfVURI*482ytA-t@f=?$M@`s*H*N-ANs_t5z{VHSZc4eGO*qjSzexa-^IO0kv>14# zg>rix!?=*X_zQ77M^41ny)Uyo0>cWk+{Y8Byhnikf5a@8s$!DNa*fD`JK}pW%jv-E z%PiT%y3BHjyeejC&sso5*krsd%0-MqnTNC*YWpAA7`M{>vT-xZ3A{vIHXe@*bJjah zW)AC2a`B%O$WS?Dra1p0!nSda{0=JNSH!QKH-R@#XTbB7)ubGSZ~leF+ATYi`ZAK9 znPilR0G?yy=`@GrMw6-X`7WY>D7BiLe)vt;e9|kx1T!W!CE<@1CzxVJ!4+dBQswhu zm3m<y{DpQXFEzmhzi{PNa{8(;KjD*m&eaQgD@jqMB!wK<1m{$)zn;c(dcd<H;Hl%_ zKmK*?J@IeFNyPSE!O{u+B-_fnh&OAc-`7%k0GF7R5wi2nmedAPjbce{fUh}bf}38z zGEN{SzKVCH_Xh0Y7ZRcPjT`Oda}H(Y!zI7E33!Qw?ZLkikjQS9SaYG#`b;`dn%#UE zu`{&J>NH=b<HS*OTD@}(;-$oL{1FG!<~6{VQepXUcCN^cNCSrnk?TPc;E2A#^5&R7 z6Nxr^qu<xer7jZBDX;z<v&o7{n@K2?l?BKxL*#vW7VhX2HJx*g)7MDM)GUrSat_kG z^j+9Tjz4aNx;CK@1CDW|`mPGe7d2Ounw71%$ycs$HlWv<Cye~%s62gg%WwXEdB7}j zMEc5(AA2>7D0lpoRCOCs%_;HAyrG&xR2dP$9NnF!#4vumA~|!&s0zm8*1TKX8k`~D z>@}jCIly#D-af{sM95U}E4D!u86$b2vAhi`L5ftf!2ZdQA+$FcmJ}iN7cwICNE~;5 zb|!4pqbUBGh@k~=-6-K`&1dlkC|L0cIyxw<yj_)|wir8jh{kgeM`*a_Xblg&PSf*y z{4^p|J`!JHa4D{hKhY^~MQ!mbiE>tc<+ejS1UEVjso?z#$pGUh-*2si4r`ORex3U> z<Mincxnk?{_?NJybo?m=N}q*?;_pZkje}EO+7(am?#xQzdr(cuQQ;+beHa_G>@H>~ zK3iW%kB9|e>ZYFJw1&CpP4&SqZ@ZYyE<Ip(LdRaAW4B6dFctefZsu^<4v9S}6?>bG zRffaEQ?c9lHV&}8#hlnP75kEo&6C(IY<ug{zR|G*Bz8?Ic7~?mV2NFpialGy9wxDW zCzgGB<FC|C{+f&}yirAW;iv5BEqA8bPnn<k0Fv@|ORgW8r*;4r^sP3dG73eZ&vo6? zxKD@sUr&&R8}u<iO~y8U<xf^AH_)6e;DG{oy8v<@E~N;Paa@G)lz@jOp(vauvFHm# zpdGM|%6pktR#XQwV}=fPPb1;6mYg5OP}iPZ#Rk9}8Ji7`j1Y%pyxYkOw$3|rQA^sN zT#)h~C}uh9w>}P7%klkG)31DA!M?e;`kRbmRGR2Ng?{dp6&${I(bH6Y_Nw*Yh6B{C zezZX=<uw`K^DBRjB`~&kmLQ_SV<GWxl4eFfA(=|g&}2>_QdA-pZRfpCP?pTi07>PI zgq#aS45%2jJ)*oEid_#vJ>I(JC8v6F4nuQYFXy&CfzekKjJoT<(bsd4-M!+q792fj zDEPx~3qG-Q;MdoOVbT6l(jH`cdjTK>KbYRlONK#BWbAXK$yw9&x9dta8435zjEY&4 z`ra<t`Cbn3(!4eOBwDKH<E5wtMP~#rXoLB7-opTuSnC<wGWKM=DB~0L)#<alrB9P| z*;FDu)t~utxf?$0?^>(WvQ+vsG>G;L4}|{6POe>BXYJ(nrh2CnaX^C>_^lm&Yl~b^ zuv+$iXDT*Q=TPH6Gl-PD>Wb6*RmuAieBM)`39F>_i5V5cBh$qEFL-hVOX%9jFFh(J zb}aRTgRyftZj;N6{^PS(a!z{cC%NrjZGWuGmVK);)YOHG*NM%u+7SnzAA%81Syi|s z`@`+KprQ(_=o{YOr6(;^NyS*ih0*{1TN)V$Wo}z=PJfHjbX?g$4X+h%Svd+(?}WbY znPCmOTi~p*b9m@o2jLxUr!VJT^1KR_zBT2Syr)Ah*$RC`<?cI1`Y-1FO00xQ0#ASn z&39^KVhe)m(oPkr<*V9HSXL$XFwBs97^H_dD`FP@VtpcP5w)dqw)ctKpv?C!_iNK_ z-2}_oLjl-(h}{5qlVS5Kf6lQ2V|z^@pZur8p=V2)85RE=J8usGS?fL}A!E9Pn5@JD z2M%3*tK_N+WhGiG7RX$x?v*i5*kV2|t1nd5q2>vlslcG3Iyw73Lyp$NGT&8E>8||~ z(J|<7<2#U=CvG+8ic2t^JDa5$TIe)Z2dGJUDb_47^Dcslq68p(Z=F|-ppWq)iGt{P zg=mL4_i_@`5H+PCiYP?uDTy=Mf=KR>)@yqCf~)8qGXQZCuj@_y)1@ozyh7qoYV!pK zc0kICcRmwsAx__QLN_LH*#%^?ZWz(xAG&KcTrc}~;`2pZ!0Z<)7~`yZK5eBV4iQQD zY@YamIX6qjs@z#2A54Vqy7)E)BJ$eyPJs+zg_@~EQbZ|5C_yokuo4tkDd;LF5~Zci z+5UM?)lO*ppGg}<$br6vvNydxE`@cOfE9dG7d(e+a*cB|yjmHkeTy!5^TZF$xlc-Y zLa%5FieA~=Q1U?GJ8o^Ne1$I&R^@Aaqa{yj|5nqxCIzqP{Yb-WdZpG~@WQ^?w($@U z7GEc7lfb<a$i#po<%j`k{-0?Hzc!WrNSv~PJVYEv3M^5?lS^hSrLO#7$*k7RlihXm z3U}SC?I6wC46-^~me2bdMrGN2w!3T|*E`UPIaHR-EA+D2-#d`avUz2tESn|3vUz2t zA#aDvZl!2=?QbXLn6BU3p|tuflz`OlNb16*@&sY|Q&oMD7q_a}$*TUIxcyeO7&iDn zQ_m#7C+quKvc8e;Mj?$}x`ir*PU3zxaTRFc2!FG@52J^9Z*9ty`m)W<Um~vxU_|UF z1hWhbVSyT=Qv7hI1f;!w;6*jk>*RAA=_}$CKggcyejBNZg#T~a$&85~yqHpwJYmj1 znV2-bFy|jlgyIcVMb-m-h)_K87pbqb7j>S~;V&)@-+=k!@3W|F-h=$I&iEaVCgTBq z<qwlccmNXPM8YD$j}w$iIh1Azol8=GHz|kax|(<5!_4-2F=6KolBl9O$KYTdd)unb zs{}Q2sh7%%T)G(o+hxlcd4<JbutL)o{)3hG{mqK1b{<W}ZhoZ)+ZUy6LAmwO^PH;F zrPOH+pjKX;&i%H^{SLqKN1Z}vQ;LK!NT}}xp2NG;Pb%?872gs*sjCvxB#KHDb1qI- zB2Av4&%3!lNVSfZyF*kw^}AB)$9y97v+@olnwCD8N0T8iQYW`*ie<iRnW?GCqNNus z<B_{+6U3U>kc#?wSwX`w=5!pCy_RK(~xxJ7c&idu{0G^zD%TM9N<xZ#KZp(CR!^ zQc=<Rm$UX6*;fj`W#_FIAQa@!$zppylu%3PkG6NUdaHcQ-AigCsP>X>{11Ccu3Y~g z?IX4R|GJN4M#U-BHeS3*D=bS1IoINMOAEFWr#6I^n$gw7|CbG+It9vx(2*LCC7)ab zK78z68$yqeuAIr@77)o@p>L8eoM7+%{jBQmWa$92R;Uu*=U#T(dpYm8$nv2?v8T;% z2cnc~D=Y+F|CQ~0<E)Ap7)tct1~dAu1gyr<1H<336!J)B`|2#U4w7y8$S>GEI(YF{ z?ZR_YwwH>l5*VI(X3BCleuHKialg6<U1o&rC86)5_!f!1M_Hv(`$$6#|BY&<o;VEK zkZT=hQ>joOQ6MH3@?#vLU@jG#q3kye9YB#$sMt!`3)H56^)jiqUU&H~@n4$uy+l7V zqukOV7mfboWqmQnySBFkoLpNuo(C2Ywh^qnlOzhrSg5trI-+U33?%Aq?4e3h{TdI$ z()P9!WXgZAL0aO$y8H$|D~_5lY2pDoLp4TC1wlXa35%Rfe)C0KTd-AmX(8}U0)d?u z;FoW81u#jL`PBu!+;C2jezlNvzGl4>uy4!?VDBkwKdwuD2tq+DiT-yoC5QQ{;AbV( zSmNVQ%_dmIey~8qM8G<q-A}VtzFVo(&w#Z9Px0E9w3}rs6@+NH>9-?%gl!xyRbxT; zS1_>tTq%~<r+An35rjW<y%28ms|l8`ypDxV+xUt&$#^rs?aP~tudZ{YlvJBzGol=- zp4S<R+LD|h-TNyt%eqMW4M?y5H)hBIT6o1}hC%(2&@@S8g(v<DrDM;}TTkf$bmGa~ zbm(bsD6bOPEbv8D>zI@D6V-WoQHMCqURE0@xEzW4ykMxkqF{z-)K@sQPlz%tp7n9r zF;?=)Z@&K1=#d9OjjVHc+;tvN%Q$DA74&d+{{y{isK-Vl4Q;+YK8HJtIFBhkqdp#@ z`%rpaU6?HOP&~jrKB_{)DJ(V~_HBiXGFUjv+5D1b;j3WY$Doq_;MWI}nDb>k1j|<p z`J|L9WIZ30)_<K9tp6sf-Bjya{G5O+jV$Nh8Fa@&{~Ni$JG(x?uIBqW{3S-kGO7{) z$TCjlH$Ds|ZqnpJaYp=2vD)RF#JyeCa@$yY?a>)M#%BkHIDC=f*v9c<+qf~?Hm)Py z>S-HS$#Z-byG(VS+VMH@3^jTt5_|kX&Z(<<W{ftTATVdS?HwbLld_zA6+2gAUslNS zj^JGy&Kh9n4d5Mq9>d6AD17$3>IY2xWi<T9(mIy65}07@l-#&{6Go-;i7#qaC^x|e z8@L3%h5tI5voPL(jT3tt`i-o)pe~V2cAh6m&9KS)gsl&p$nr$OH}aKhWY{hZ&14t$ zPV~qC;SAQX3~lA<xvCddzQS$0#JM!uNwYN>m4Hb50li0{t&!IY624O@A^!MCCHL@L zO`I%xWr4+9VAja~^<vq(bKZDB6fy|Xz8zJP2_Zj({36n8{y|vufOHg1My88i{2G$4 z=rTjaqBHwEy300}N)Br^wk=-t*mQbh!e#J(jDZ+-m`G04KaP#iKGYxzAoYD1+U&eh zB%%?q!Tx)qrN)iKL&?E{SHfe+B^A>3*m6GtMf6Y6E1QhV1ecKBWZa#6B~y*;PRFYh zSh0+*K7wt(rigbAA@|;<hz(bXqLkrcbRHKN+be{N9xJAZcYvT0^1TiexLKr#cFNa2 zj5bo#RF|hKGKp}iSGYHtAo}XX(u5~Z%@HHrOEj0RU0<o)c}c#b6?|^y9C1#dV%AOu z5XI*bpJCQ)kWkFK^nj%OCO-4)T?u>KFtEEbf>q}_MA+jB@riIfCRXlrD){cZ5b^hO zac-YYQ=u$Ibz|Dz->Gt?&mhL7NP6Wj6}neyu9pU`Rt+pob6FC;x5UfzA^l?;Q(X8c zU-^}N(9=kf{Zd~tzMTl-H}Xi8pVBYS1PXhc`~9yg4^<x>=t*T^^6Sub&Zi}gP%wjD z;1N2_`5h<ANW27P>M2#kUg~I#K=YT#`}Ru3ZnZDdOR0gO^<`%*?q_sa_!-*vy`HJI z?Y~h>cg1k+>7bEOBgR4Q5Ry<!$hN&Fskh2%S4};hpi)zB`VVTVE|2x?|9$>W9KEAY z_|~Fsry7~iorXFZ#vU||xTND!9r2>49_VWQ((m1Um+}-es%q#8)#O%8X9*YYrK)~M zx>i+h0HRA@QR@*cy5e<T?Mf-J?<JMk^u-zFyZ+ABM;MKj;1PQROt-LHGjH@Q!q%sO zUQK3g6|cT2xs`VWeE$BGVY#`hC{cZSR{p62!lzkluq7i(^#`&0fZ}FI3|d_7GUzJx zw!?XOTW@0IYft%NG!*_|-S(y+aDL29ozp+gT0{1egaYfsG_2vjwl9XuTC$M&3)k<G z<1MeSL3J%*qOaq@S)0d6X#ag`e2{RnPPm(dcqJn!ZFP#j*HqV{UF?tDb^tSzY<08S z_C9u6(VCPF{%t2_?xGgLg&9Qn7v}@yw;XGyOl81lIM4mu8?9=YlERBgmCwdj%QI1V zmmFAYqoPt@xr1|HDOzT}-+Z}_TQFkNGqbP{<-6;G!Q{bSz<KR)yGlH5o|e+c(k$Pn zp%XhA4hWl^o$F`5u5JPm2VTGVuZH^0Bcm<9Z5FK$_hV1H>mTYz4G8#_hwls6`i2Tr z)CJ&{vlenxP~AJf)ETrj*(1qq6dLvWv=(B%=6+4%Z<i@{2<6LUSr;0D+IRou(m%N< zMz!+BY^m%uG4F*v=%4=U^!R6+dt(|pk!RNkxNL1#L66K47YBXbG9uM^sL_&&JUJ*X z%?G@MxL$%=khz54JB(x|j^P4j=N$oA%pai>ZDSs<WE(6t!=b^%hSWN1Y%wVrp<@C6 zVTQ)tSAYym_K6M9EM!oVdeLx%_3MFeXRW8>W8TG?_=^X=)b&A%z99G@<uRV21KjqG z%k}{IQ}Xzql$8-Gbk_D)exT7mXNqz%MDp^-Otyi`ne>-LKI4rD4=R9doC`#gQOYkp zs;*P6If1Nvl;9}hm_Ck{2U6oo`6_{Zs?5||*v{%lv>Dw@CSW>LMO#9xL7US-ObTBT zuk<rnhuXcQ)fbW=-#hIioyeNvH>zzyPtwD-_icrsBm6kZ!k?rj{PFtN<SY3PA=BU8 zOkOfI8PQ~_?Y%_hXOee%KZ^$4WCXj?rtsQioS2LNRj%{(9~9I{$w=F~7Sv6~A;|~@ z^^S&GLX!O91ML+8VtE5Ny47Sn<Hj@Q$L{IR{_&<=97r<amnxWleuVIidC!oPPjt$M zI%Skj87C=AbjoWw<zH<o&smc4tWJ4cr<|fwCQ3@JPN~)@n^vkk=Ss?rI^`;zlCSej zmXxVFWui`bSW}>|ovu?()+u*tY?9(i^+QSTlK0MwxGBVY$t+<R3G&28$UFPC(lVk+ zHfSyAbkZ_H6S$j=7lsUXe;Qw2qWT<t8W^?H@Q_xLJ`fV8e2&26^Cn<3UQ0rT2&04W z?P4k9VIh*Pc~!<vmGlX)7Lg3Aq<&=FoE}c?r;}?O7^Vsa-|En5d?jNt@7yA6dry-{ z0FKt|8#dd|N#TRt4@)sI{3~-wxBF^be(t9!4*gp}$Q>_=|D8KnWw$?0W3>U${)wW; z9`pqPZa&V{-!Qd|_X+!!hWogaRhK=F`u)Yl{1vib<8*1&q0oAgotGs@+QP`oyc*&~ z$h?DGNwl?d#-Xb{F4OtLE5LP$f~yNXBCVe+EO{4~JmoB3S8rD=NDs+;vUhl~TJ666 zB&wtO+dDsZyHb2weUR@|ywK-8n)u3mXzC;Mm9OLw6_P*;_AUx=GL3n^-3@!3w1yd2 zt&-AdkoiL6YolrkU%k|^yajxSp5lBpQ*^aQ%)3aiZCt%SY!&)E1gnOqAhF(M;ZS)B z?Rx{k(sKE@Wcxv?UrU+q%6#>qgU`0J8iH8UzAwQsUCsr<9>`^9oXH14)&wKB4U~gh zG4I7v>W!4@3?U_GPaEju%M1PW5m>pq$~#R!CMd$%Uw8Ri@eB0)ba9Fv?74Yg5QH8w znwrn_xy<^|k@5kLQlZBWJ$>X;9zMTZC8POvf%D=)U33kl(51U5^pnq^>vyCmx@zS` z=#r1PvVp44F?kmY<V!&EP43iwTav!1-RT?qze!*6tjPkWcN%@iLEkY_>ZwBCR<BE+ zBQLt$bhQ9GT)<4gXp&879PHAUx9}pj{n{$U4DuwwiRCN0w_hp!c_Qss@3vn<<x$dp zr8RB0;i^74r}FGlyLh135QSA$gD!9`hL~hOpAI3n`~o3!KZRa@lHO5!(<}3S%zM8; zP6rYyz9oF2gv)doS8grO($3QsViVYWp;Y4o>r?8mn)fnmIVOV2B3+l>V(+N)NIj0^ zd{upL^hx3Gt)*(5D_;S1C5-CNbi3(ozgI>lHt%JUD<517;>Da2pd=%t3i+zEeq)bG zv0?enlE=hPt3>4Pg_7i17vuxVNS^YbbrP=;qm*cNQa4+-XA^EZGe?VQ-ozk9#@t}j znFG~pEbosynP==#?8)I35_c-UfD*Z!@vMAj)}QfK5#7Cu@-C+bsYrY>ZIx;tZ5x-f z6ID`*DAb=!q;;(KoI<9o#Y`hiS>mRlwG(I78Zp6E)d8(c0&*NCs7?V)!@JcsW=#|C zehi$8GX-L!8J$VI7%;>b?YGYxCRR_sJ(2s*#F&k{;f2wHPSSofhlw>*BC%r<xkVyz z_-;m=l$gQhK+K;A_;{VvT+{-_V14ZDgs(xFaLq~e;NuuGMyz}%_PMCeao1j;j$11z zr+^RJ+TIT?kZHt>9tVl;I4wUXr>132Vf+u237^?j%XmRi<?N807ui54s9?<bQqMB` z0yuglESUD4EWA~tqe(2a4@b70%ze`Jd?hm34E2J7Rpoek4AcKa<@3Te{}amc$;)$Y zE9AbUYcAiA7=c0e3b{?R4-QDqc+nZ4LP{qCmlA`MmwQ!Cv;S7#Ik{#upAw1Gw(gkU zW1W>#YG-lkV1(IkW;UoMC+`^GID&KkL)z+nI;v+;i=3IL0x9Ze_uT_mf0hcYUM!b6 z>-L;V?xGeBrL$dlL5_^6x6ACa2I_IuuS?#^_$u=?hn_CA``4-Q<;OLc`%LQs)&)5e z`4pI)J;CnJx->UfenCzU9A#EcYg}wHGJjGZ-A+L~t(04`&=ADqV=_tdWfC?)rparL zq|TrU<RNZ4ztan@h9g70;RvTZKZhkD*P53V6pJ_2^-g__Q~`E+x;}oIDlXtMt~gl= z<9>-2)nq($o@=nQhF9{+38pzb;-a_7`3<^H=5z`#<^xq?e-TO*g(-@}2?ZkQQAJR; z5Y%=gQdy{haj$nyNh3!5N|N%-UZD69`;1tfidy35szf!wYPRaA;xu^qzKinra+&tN z2^!{b1yjtSWlx#Kwa|J8=<g3HNfx>S2?ASRkh@p}4d111b$Un=)&U|F&s(jfkuhx< zAs-zoxUI8t<M)A^0>cjkM-MNbio4!DLEp&BdBFz|8Pa52#Jl{(7ZYR&^+B7m1Y2QE z)I1*Uye$HwW{{4a$s_0+-bW!iMdXlgWR41mYapXt4{ybY(vm?o$0K96o=Z2GHR4{Q zxJQp~Wj(0=?lXu;$~w6_U6$JF?(}E$%e~33={#6aM-08Xq#&POl}nPN1={KM!=T0O z#XmBII6cK0ECv~b<3vWCbKWY%ORZ!@ywu3~sdPa?Eu*iIW=}%anDc8%F0&^MEZa+t zl*)c1Usywq$Xs-&D@TZ6!Z4##c;SNL51?uK+1W~%z5!B+`&8n7ox?5E&F15LW~HQ= z*H&D@c&&?~b#Y;GGu}sM=PC#tT^BCEfr^}c&dgn`E@kgGD_f85*}v1W;UJ0>cQP#- z<T7>LaD~x=XLQNQhT}5zI${tW($uo`h*rmV3Pz;z15_QD8|36wWbF7~tFGEiAm|%A zgpgSym+-L0C{Tfq2)GkQxA_8B@orN^Bh>$I%n}G-HA`Ie2|RKWWiWoJK4v84h`5GJ zAQ+@~78Gg*<DH9Doff>n<DEb&dl;X$k)bZ_1tXdRn0)V);m)-b0zOS6yjnJV`QB07 zX+JD|m`}vaEE1=VU6=TCQp?o%7GV>=k0@<6oTm!RNcwZ~?S!MIi12w|SV8=&lHWG) zdL*9xTr5Keq0cO3-<l(W4@hs=S%(Bi7lxIt@M~ow*M66Fac)ru-yu18fe757ox?h< z(c>h3*E7R+Ywny)LHnG6&Q?Oa<U5YMa6iU6p6qQ*ra1Q5<YC3trw``I`=gZB5VW!m zO{yUAnNQKBu0E2o<1{U$ITLZYzFOMTwa1hj<G{f+|LBjSg5_(hw&0LfuCe9j=Tnxm zr<#(7vi?y7WDN{P+R>P@9pzo%`*(OFI^NIc;6^w~=xs8-=3V|Y3GrEv$(l>41l6Z! zFla+PxW5;R-I+O@@A}2hMOn9gUuO3z!E74v{W?3m-e1*egnF<-Yw~Bq!1Q<fPkZOD zx;>{yc)RV-_MMrn7pLi~E%*DjY2^W*_21xA_D*p`wLU4amWi#C^=n1dPOttjgZVn& z(ac-A1x>I#>u#<HPrn}(7amVIJ7D>z2CUL)0bh9`*Ggs~B&_m6c1W!2hB=S<b6n?3 zX$9w=m>%nEfZ}@^3H8ND`QjSiyIH!x_7`_7%M3YH8+Tj&VrTP|Zh0rEyx|r0xNHW+ z2*Jl~onyQ*!4@+O1{iLm;%}fDCFe6GU(`pCixQ6M7QG07;;KCdg(G|{d7bo`_8=hS z=+ITLfI7s5-v5^$(EC4LrS}vkk>ETJhr|QCaUR59{6ZGrV<r$;w<yw_B~&*}=tlLU z_o^D#<N~x8<(}@8@1a6^9?^KC;yM~x_e-QXTkzg=RyVxGE?%|S(7i=6yW<sOqsAM+ zAF`-!EXLs@&FCDk2RI{|ijb>=Q$1Qnk4~mX^TWM-*A*}yDCqKh)vX22tV!L7dDYgH zJRT@2Dc!=y15qq#!K)B8$^PPtsoiLEZofz7w$*gcGk3cC{7vz1$)V)Av_r93vx;!R zoJe!AG{YO+OZK@XzXHr&&C7|ebjA>WVt4)*yiBHd3EndVX{0;SjZh_5qfOrzX|L`` z&jx9i{t4cWWiUhm`KsPi+)&yb^F1!+%zZI)3tl?8qIA3Xq93EsRBil4C>_!r-{~&C ze*&>r^?P^6_e>IBrdbmeeD7rnzWBs$9l6QUHNSjcd^z3lwVx~N7uvB3{s%a+?j1GS za;m_pzdQbvi)+BXxR4oXb%i;jGV+v$Is#sJ@b(lh{F=<E^t2il*Wzj24GUwsC$~sz zu479Do|9#=EapQyh0FL>o^xO=?L>m;Qc?N<-V<guoTF5c=KO202ue)P_?0BP{NlTA zm|1h2c;uYT4+ZrwYbG<ElPo?};a?LUuCf$oq|vFcccU{tfSlSM$ERzGgU9<vq~<Hx zUx|4iYDea*YwWUtCEG{YOAyr}qKkrd>8N022WRXPd3UU3PHY-C3d~qyClou+-XpWp zxMI}+>{Z`SSlQ>g+ef85a2d|5WIDGWb@8*S51?>xv}0A7EYMlcR)I8C`0O(4gHrS5 zEfbkbuhlyd_PLW$A;Z_&<3<p9C@M5($z+|*=JD;H<B;2#2#tiwQL<vmCmP#*S-}|g z_BgST$lDGG`TEgKV{q%(zMUyGsC2vq3W?K^Y#AL3A8ucxbtsBT<Q+_Ysy<l|ODXXX zjiTkByT1v^)Tq>IE8{9~YkQfHVvj4P8l8M6+Q&(hTl$s_X)bCj-M%GgzT7OzxAkGE z)mbK4TAY!u(zu>GMg`T8Bei?k4L`tTl4WI?)ht)7jFQGVxpe!wnI{D83n=S1#layT z@fD+>dDdr~X>&IIQ*@rssIBKWqk`KzsIkK8_Lx3Wfqt91uOGu|a3bqVsfhH;MDykK zs&C#?mDY@5M&)B7e6LQg2g>XlCyU9XMq*2=cgZ((W{>UO2OJAheemKM)d#mqAC!6U z9(21w&C}xK=jz+``CK(2efNes=br4(MBcR;!KuM=Fa!ZZdn@y;D>KKhn`o_betZSx zPExG#!LlKgIes#?h78VVe@MxFy%ToOa(4s-yNcEAJkj^{MC%*S!kO`j=J=n>tb5hX z`(;Bm1$&%dJki?XETD+8A+sk3-7Qb@m|RLC<73jOGSANwhx|0r`Z+E)bf)Bs*sJ}l zF+<1ln;DuRyNMGRkOd9{@|>l+_)vl9cT`@>t1{a^LXF`bQ%05f8cNMGTVWo071h)~ zs%%J|g6<kmNq9~ow0|geM#jI2Bm9npU4QSZNMLL;PA*a892aczD}FBFRw^i)Js6_C z{T8C$Y;cKE{_)_NtVaSI7xo45Z!DB!*(hW6iM*bxRi~aF{9l}%34Bvk*1%h6un6@P zX|yP4!J<V$ii)-Zn%V-X6f6TOxFA~X;Es}Lm93am$;4<~aK?3X+;H3-WLH}%6mVk^ z1aUzfof`uxpeQKh`=5K?OVWZf`1SW|-h20+d(U#uJ@?#Q3?P&hvDrH7O3B5SnhSb1 zysE*$SkY@qY@Wj}@P8Nh(NnT<!DF1`X4a=4moNw2WXoMa+<n_etQT9NF){pjw8qBx zC-d);KBE;r!ta#u-zH1G8d&Q=$@vM57t=RJ*V+%YqRX{_oW{l?Q0cDTza(>&RrelY zCA9<d)0pStb-@@EUCj>4n5gMJzfCCTTDU$0S+hsC4hwGti1}};lcz{}xjemU&Wd(v z3vV_Nbh}yIxzzjfhAv!+q#h)Slj;|qkcjmVt8ODWee1$YQ$v@Pwg0a1o1;}Vak}&F z2R&8915nzG_xbU#<d8?n8yWnXg-p8wLhcZcPLNORg7jMH!1pXdqV2ygiGN6wRo4D{ zeBBE5LW2OyzTA7h!9kB?)$^!`c+=HM1KKe&4lc$3^`19r4ao@0D6TVqbR_e<<l>3D zuULo0WGx?+beWofy!5(0Fa`F~otAUM%0o954GvAiopX(mRx>gvoqAK!JVXX7^v!C` za=jX>nqA9xNrk$mQNC9J=%vLZxP;&mt5Z7(Zic};V3rUtB)dXe(J`hEkXS%mD>TAU z=xg-i!?%88BxYyqL%Tg@aA#WsQysD7_ZNKAsE00~hRcrVCy-<89XsABEw!mx7lrSr zmc=l*AK7n>-U?4z@9MVtKVwpTo<IqMCSL4jtzObq9v<OQXM#b--#&)Q?ocVErjCcw z=oDzs`G`Fs)-60_6Qk{U%K3tJf0Wj>YP;5ISzp5$Il%x=qrTA@w(`^yL_v?$;>=pY zn2?BalQ(^bJXgw3Bk^63vo|!xBSiq}tE4oDT7$Zal3AT}X$fRpvY-&Wp~^h8K6|@$ zXcNyuv03^UE05rN_}^NwZsnndzv-}G$5RehYPMqE8h#`0;RgO}f$yf_WA7*I>jCh) ztF|S-SBh&D$y&oozy0#Nf`}A;Z>7KQ@at;HuXRBDKL3^G_b)uu#c%A(?=6O>1iu#> z_zMKSkA_d-SNm(G9J>o&W;s+B+w?e#pOW*h$g>OiCnBPoNR{G`wXlZNUVM^ugT=Pt zmAwtOai+VOtMoF%({Rhd3uJNgn|cxJlhe`FO)N=@9WCP^<&oZ96ITUFgMU7=L=8TV zH@&Hx37$wme1q~{8@<IpOj+xV+$R~y8llL)bZ%dhn}#RD5^c6(FY5A_@$ZcC(8X!X z2Fu{~PG37la^mObRp3?_m&Uo)*0kf~$$3ZWC!ubIItuZ{<dT}+U+OYw$3vpmFCu)g z(7m7bfQcl{{x<5Vv<E@OixK%t)5JQONu_TI70dte7p*LRq|Xw97}#ym0Q{>d(Evng zhtmglVNp1jN6`q#2~Fxg;sakhtw0oE&_=vn8p+5Pi>iE*{89>pe2JrlXfA92bK`%G zRu>RMh!qS$5az`TP}&SRTGM0hLoaz#s;OxUwoVlWhMKmZNcghbg5IlH9;sUb-3&av z&}jz#vRO+m#6vd&C-lddkJhb#v<A3KjUd$xLHl*u`g6}6A-Y8<YyXpMFps;>{UFgE zG^;U4G0`4i*Mi4DNO@>F?ZNfZ9(ZMRI?`<$kCNu0iT0pLYN50T^LJ=7<Fp6eihdG! zS3iO={|5;eN;lML4~Awtipe#-yU>~z4MTLdbO#gj+Zcu`Kd0i&VZ<LB9eX?39;{y2 zvVCaeTiS=Sb^EYO%|N!T+lQ!H)MzwY+J}^)(dTyTj8;4CgNT$K&c~c&^Dlu!B4{d_ zvGXn7YV|Q!<>7NY>PWCSZN#3>q>UKrQSG2MS_2*R-gx(v+Kqn{zce!?px%fA@0%e% z*<VI{c4|D|xvjqQT72W58Gq2^L}#=wMtyXC-}uOEPTtS&t9`A6eHMStneZr?FFm$u z6zoJvaiXM{Cm*T%0uKPbx{<w2CXM!Q9ePB~kzH>dnxx(!Kt+4E&i{YGTg&YfW#p5> zZ>Ho60`27)uXJQ~()D%P=Y)Lz3%rd&=I`kr=+23e=S<Fnk*tg2BXgmmMc-NMRVqD3 znh4UCrX(mz?QGlrzmva)Z(NdDjT7H0O;Z0;_!W5q+FP<mmix)RB|QRft^98(G`}t7 zBOMA`mis}_f?q99i}~QzNzBlP{uOzuzn*?5+c&72=PYS0!|3w^4oz+UbbHDfiz{l} zs-CFgrl}o68%f1!r}C{P^Mg^y_#}tkhkBG#d+aW>>8~c!_g9rBeQ(D22Nz-Qq>CQf zXrD(B_Hcz+gRe(XrhkVXgx5Hl)R89tr#9*Q2er;$_@Omo{aV=d!)ZEGe@?7dvVPh5 z9xe-5x629aT4|Ey8OgeZtku6c9&J7bLQiO<u4fZ@9S03Rui~u6*3z=qN6|@AO|wvb zhJ7A>QRbF?edWC`=|W9P5!J7OJub5ve%?^GDYQiMXN?fy>(x=zBc0wMKnDiVmNaMn zgbg`|QfL&}UE2v&=W1-*R3DAa3cf+0+-~=V4fJpM4tM+PRFTLg|DmzdY&-1@Ux=JH z`Hr)%D1BEa@Tov)LAp9q=ej|-)b1v9EvOZA>u+*gDN8R%$3D_6p0DHn$)eEa(%xEj z=GxQcI?tLK^*v|FO2(AUXrUz3ZMc4v));@wV3Axzg^u_*M;4G@@GsU1y-vzh817#w z)_V5HMgc<8P6jOY3CY@+WXDLdX(Wp^6X+&TWfMd(kY~G_+oh>XCGwwgF}pgJ(pDqo z`=J!$E%qZZAE$@>tl*DA8+!r!8`W}0zal`7BWQiKf@=kUrHbFNXGJE<N((5YySvdo zg@-W-M|Z3XBzq%$UgN>)xpBr1V>9Yp*~8^+I|^HUt2d2vdAOs&Msrvc+Cbw0w~a^o zCmK)jHtVk2<wN$vpkScUc5GRC@wVx+CA3CF6?T1bil&)U*decDY^t%p#Z9dDmT>}| zum5`znDXZ2l+XR`obh^Oc<Bb{)~Z0%+ppT|ubC&D&pTLSVZqB3=xp<?8(2p5C|s_y zKdUB@b|%@HaMy5XiruN{HS3sKnq&Bt`W(*cscB!~>!hy610W#B1VAqoMRyiqq@4C7 zS^rNqh4lONKU|V6=~L@B_5UNO|F8Uh{deq3{Q>09@fNM~?;`mJ4<P@-1IS<6fL8P` zSWo`><nQ!#lir$XKOOp4o%Fxu({<nc$4dThzx==DGx2}sZ_R6SOi8YpN7aaAd}`M^ z^1u9d@=w-B8Fv*<PC&KW8BC0Fu@WmdTi1rhSf=Pz@%ug$s2n4=!oQu|AC}zPk^5U> zp<*{WcCdJvZ<1391a6YRefAQXJtCWGdb2k?B(vWpJX~rQb}-N^_t;hzf53jNz?58X zntv-*I9IPL*rtv>O>DFO5pUaZnI-eRnjR+QH>#<RaO}}9!m1ulm-`|HryVmS7lbQ8 z=)c#AidKPI=#ON5K|~_Bg5VSrRiC&YfwQos7pl)^__@#&Y=_u*n<d}*Qt7v|QghmX zQQ1>((Hp%7-s=rxZ5sc>mfhVHMRjpI|Il)o1K6lCGzT@ky=^BaIN;!>U24(8+MhOk z$tEeU@(+>JoEL3<i2d8t!${UhL$?g0M`sc3gf9^IAOUpKwLd3hpF=5nY_fA=CHu73 zeRX>c{bvjqnLV{w)1Py%v6v$>mH*U3)7W{Vb;!Z<>RRx0b?DMj;EQAx3;qnj|4mE$ z4Sk*Z@Q3lc_k+Km;D6+W7WG8%FOcvc;Tk`@4}<qI8+UeWkfGo9QxbfiDtz~A#kXlG zj*HIipRj-Aza}Rwnos_^y`X%+7tP@t56sw8Ti&ZqJYarzmUQuOeu*3pkd(TJG&&j7 zMo&w?t6pILgX6YfmxSLH5`KTn@Kk?mEcEHDCIXWfpRxxP#OpykJ#A7u#cs0gye*$U zYrWoC+J*IyGl324z5M2@L3*bM`K?^jm&CbgRIkxRUwAnntlm6liFS9rORSfdd9VE8 z=(^ZQZ{v48jk~hql!Pv6ucwwYQV%a(O_uNeGlf5*3Eu^OLjQ&1qAwBawC7o`Cc_^{ zgd6@s?=xPcmyfAog*eg6EXH+&(QX6#NSSQnZj+w29vJ`ZaBFVc;vf7!X!prk_KSRt zKQ`prq(8Qrj8grvBmS1+k8SkKJXz&}5~pP5>l&qNMQ<hq#VZSSdy`jhsI(?rn!EGu zZ2wt1-_G;hBbjYfYfr|BNFsLTBUHGr_QP^k*?!pb&&e(oOskQDmbj!phIX4`%HwJ< zA}P{82`)V2&W2C?kOxxj?~V_U_BhEb3wZ6N)gr}cT-tx_#FfCbzC<t89_s$g9nchN ztZS(0r1fg19yAb5(&ZSEa?Bv-|JFVZg~C@(aOy|#KKAH1ZI7rHdA^Fk?#pjJO}%zf zLTy_56TO6!`)8-<P0RSP&|~x;81$)=^F3a^Q~EP`33`67KLb6rKIy*~L`xyZ)XV4I z2Y=4*<8SZa`{CJ^_+B~Q;s5vW^=lA}{^JFsJs*jE6?{*TSBf1-)_0+;xu4KhtIH#W zKhOWfr#X9$)XDO|zPty%Q+^j;vOl=F*Mabp+YW!kX2>J;{z}RJ!)Nx-Pr_bFBgO)M z*JK-sCCBlT-nLWpH)(&%!ozxV)GWPcIT}j3JLKP9^7p0Yug#95uagRm2O-sPo2s~< zvB1*Y*=_v&XJ_~>nxBCXt3#!Q-uW{-^Xf_SP=7fIkG6WF`hb!7P-$<wVI<e;`h_y6 zAsb*DmX)58UL6`$*jze7wN3LhmzGHm)uCbMRhNZIFNiIIw4+g7LuhpE)7l?N`WwP9 zvySe+6o^#UunVksHMh)%R@r`6libH-Iu+ti9rG?+-bE&kR_N*VdT&)}Z?Q$!&_S~L zX1PGPAU>V<+rNd-GHc$j!fM%uZUtRH$ZLi_pQEc+L*psit%*xeg=wWl-r}{sLyf%u zgsZp47a_#IeL!ip6$z1%c61`A)XIS%-t_I&Wdjbjf(;VE`ZA&H$EWn*<jir#IK6%x zOjV8IJhTRXm#A1QM_&y~R<M@<N<R;u<oM!I+0&R1&bikaIo;^=<<zD=j#<zQgKxn* z;0uB;x=kCVTF8Kl?;BW^&mn(z97N7+i^$r8UT6WZ2zG@LLY+RaFf^<Z?#rTGgoMas zWWJG=5o#ouM3fJUg={-1;kNA-y~(&2V`=upYJAXfDfv^l+CTg0Nyk64>tjz!_LXBz z$##*F9U&##t{$`3vRsF)gqyh}cgj@^0eW9mLb=|O6&qo<hh)*&8`g#6-_CX}9bZ#e zT#`NQNF+zeNaq(<Ze?#rV7C7d5)7lk5PL-X6H;EHlu-|1jH593+z=|^0B`NzgiCT$ z`;aqscR}O*1?8;bE1&U88qE7T=<ya~uSx>9WVrm_1zhLBY<lc#Z@lM%MRJb5y}m%# zZ<d+7gTN+&IPU(_e54X_PZcU;PG5gBf-=<`?jY^i)P8H?tHP!EXwF&e60VvDczBpM zzMkI+^4meb=EmKBlbpiC3e?Tj(tJz5y9g)ZO1={K6XUaF9vM|=h9+e}LGQSG6<H$_ z(|+o-P4#j2w{zL7keL5WtS_yke^3@KnJBC<Wrd>DtwQgtdF36wY?ms2-?~lwr;11w z>oqzsXU$@u3YLiFaTj0Q{WYY*P!0^81lIWaL0>aJW!1?wpTgI|A9;zpAJbq~o!o;; z7Gxx(mQ{qljJtb~4y?h4BuVieSuMRwO}zqh1_Z2En(1eI|B0G(xy-207op$85}{^w z*4@mfTl3iW5$Sju3xj(7pw1-7nm4IqbO<%UmP5F`oKWD-$?uUCY|uJs4PKU#y<Lxy zt1KXm$K979FIgQW^J<BS817?{^AHoG*9+3HjWS!q+|0Ju4I`(KT1K<I*1YU$<{~=9 zj*$LbWgGUuv?0LPp*pZT%fFR_zhp=EFiQLxaOor%>D=f}Dr$VagIl9;@FoaJ44)g^ zevR8#mWsDatVgnkzd!sdszWTC7W~Ji;&((4l~t#XzN62eaA-=9;n3xflPZrd=IBK& zuXvf0K^Cx%&5Ye;%EOv>7V=mkfmZNl_^l57lI4%~Yp4#jiOMS96z5IshOTd{GI_s( znc8rB*46cpg7mf5t|v25O>y@tApAoVo@ppNBbCC=v95wIg+3`SXxpl3V~G;-+DSsY zyoTgzWiqGDB;_sR*_9ZUI9H<$jmW;scS`2(JsS15&f)}P7+Bd|Gk|^4S_u6={Ob?W zKb-_vmOn<nl=rDg`b%y4bs78-`rGV7f8igc|E<^lpY-1ZrbK-)^8ds1|0%Dv{3k-r zAJU)rtN%~>=Yr{g=-*}ZC#SvW&jMS2*pQC?+<0_r`d@*ZKSckT|6lrdlJLLNpV(h2 zYs11<dQB^XZKsv_NGuF30qYQ`{Qux3T%KRDm`Wd)<r04<fZ^h@(3kzT#@$s$M=W+r zrp!2F19ZDbW1?G<xO>wpoI_EXFWE}26KGAO0ik*<#mOtEJ)KsmFM*7`)4;HN0>fG6 zwTAqF6(Zy(+7$KkOh(~a;&JR>cw|1S3-BrGE`>}GkrivdN;x%7H`VWw6r$tqBSkb3 z9B+{7cCG?6Vx-Fej=Q%&CiK-ENiG%PK6_r4<pS$Ws~K!ZAZg<6GYGbsA=W9=18NDb zCMis_lrU*^tyu2w+cRzdp(;_HZ$L#ndZ#x2w8%8IyR@8)jMj1$Q!5$4M}M$JN0QEw zS8DlJgfC@z!#YGr@v|h>DgH8sJJ`hZgcR9MU5jP4U->f5u3W-8RV^vsVJ+97;hoh2 z54Ek!|D}Y;r2NMx%m2+p`5)($f7Dz2i(UQ<x=Q))6;Ju++u;p`NUm%ET~N@aHJ9iT zXT-RmAA40xv(?7{LvP&O3*P@riSLFmDRJ@2kyHmhlO-;@6m^MLyqF;WkCyl?B&EbX zsU_}?9kow8+o~Otaz7Db66O9Tw8Wzkr`&%*ohf%7S~i>N_K^+T3<9^l;vnHqPV{oM zbR}zlC}`=L((L6SKe=m~dJt7lk`Eknr-AH`EfQCfU3Wh$yf?jrEPO1G4YN2?cfKG@ z`SFkXZ{*c>Ed9(0cQC##YnAnS=&v-O6_iDIw#VpfTKa=NR6m{5|4WYFkTfAj(;msv z_PDzn5l;0zAgAet=XGH&N-fOn*n{|w34h5KHvUL-G8i2F)br=HgL-x8K}Y6LXKFp! zp3_bF{w?XIoGhe<Tp0k011)vsFH{SL7@q(&9heOQwib|L0g?DIIzDT4u8x1liSOjZ z7n%51P5d$^J}TdmKG($GW8xc~_(muG7mALlyBkdWJSYA^Cth}v5<k+!KWpM8V_DKe zM3ISj%t<)LNvK<ra8|B~zu$>3bmFI*^uHXg8T*S9pK0PbnjxI^iHWOo;{Gk))HcQe zvl>j?O-`KtCXSh>tfx%ejZWMnb~<aBtB%+7=vcd+g|lwaQCuG$ch7x}+?!ohgvg)P zq-Czr@)<pz1S#cd=067|)80y2MsHll3N)D<WoLppD`={(p0TUzk-l;sC%OGSs%PwO zpYFSwM~8IZ<+|HT%m-cleI5JC=eP`CF^@a5{GZ|a26pGrpHA3Ak`6l3*Ncc5yNV9- zFPE3yhxafbH17JlM`q$%<476bY_VQ&#uhItLcQ}}JNKyJ*KhlvQ+22!{~|QD{7vag z2lbw82D08s>(nVNtx%TTjFaH`h)A9Ms7&5-DW=-R0yL>(GOZ>ScV;?WQEw!e-@v!A zLjBe-(;jN9h%7dFlFsAhV>1w{J?nW(797f}-WS6WuMNEC@y~KMzBb!margKC<OGj! zpUpf3;RGVkL-QSKl9O&ovQ2i<zJ4CFVpu^|beDv-4G;Z7K6eT@fAs7z^`gh;w9(yS z(9)@v4nIT-lw@9DK&6MdE_|mBR@a{^&W1oXr)3h)BKk5ruAB~PA{8%rlH6dq5_2&; zQqAr^_rY(-!b&cpW71BlXx(t)DlnfOJwO<D??IV_GTA>_5$<*foJzmlkR}VSMdahf zNO?-;vjtj{s+THi<TgNF1v|SYmc-XeR&s!*EM*@L{<{}5bhF}VxwOTqle5Fcc#hX2 z1LP=Z$VO*Z5tbb0bC;<sNh?Tma<(&_MOwX7m1}D46eY6F)BrQ?DR-na5S1r^ad*}; z6d9y5+|ekzIIN(Yqd=iNMRZ60y^;I%d)$3`4xj;!OHQ+bb;MK<Bj`D)Y~!Mww1wG( zG460@{%nbq9Yv$_Yt$TB#x7i1^Md*RB&HQy#Pv@SLqVPjX;2age5Lx96Jm5(yt_x_ zF<Qhc;cJ}mIfTnPzl-QI`%0=gtywV3il&PEiE;O#Ptz3F35?7`Bg446?`&8=vR=01 zOATwekbfT4$e~h(C0y0qHu{=1?|z*x)w%1DR<H-E$?HjOtF9NXfz5lW2VpwG8mS0N z+FdUKl&Ac~-K!6kj)@h#9NqDvmKwqqUflg8u}&yrsENBDBxJ^v{F=11PH9%%iKMEY zu~^gaS%L5P>cHZBIr5i1pPh*kf~6E9mA_$<(r-GLwlLGGlWqA6D?xAeC*AcYDTUGb z6QrzV+}8?bKs~EXydsYpT)5B|j24@`SZ42K$hd)!X`Vv0?Jgz+K|x7-I3%O7f;=Xu z0c0sPWCDX$qCAp~H<YQGrWjPZw9r%;E{eN<>cm(fQaJ;u>pL#%WFR|HstLHI`@r?y zFWjts;I@#j<X00mdf*Ko9AfJ^;(39X=CkCyjCghEtXvt7ucXd-7EtHhf0fZQIsVc& zusrZK$52Zd{*4so+-t-lmQ?~&@ngtAa;YeON{3iwEC&K(=q!%*((EISsBG1(9yI7k zt4{G2y-sVO=nU=0VLWI*j-rrqI15DLM`&<bhPnmvd8T~M*!@9QD|m`|EjoyCLJdT7 zQg^=q9l?(%+<3K=ve7h9lm*e>wB?ZS7gNIXqH_DAfuEHUo*kW{!)?mFQ8_ln@t>Ue zn)gLq#f&G*p^Z18EgjUhO2IiSTPgFBr#?3?1!}##Fro6kJnMG)S4d;4=Tr20lo?y3 z*%Qm;MW8^w7y3y3iOCnt-prmT<U*9*R@qJGaQh_f6L<UN5y)IiB_o>NLfM(nEQf^0 zn?0GLmELAgHV=8`+Rr@uSs+hUa;xMdQ#oYESZn|6C&YoK8Hx<6G`Ta(=v7@>z{S@G z;`D=}+F%au(g4T=F~|wC8ra;HcR}IdY1`8`9v6Gc*|D}Y?S`3M=m93~e(exr2DWR3 zrng3aH13{bhh8Jqks|d<cqRTm;e*5i_y>!PJ5R?kfz?sIMnepJ=ZU~n&zRgXt&MfZ zZ{W~{QZ+(~pp<^Y2CSUOTd$yryZ-@cHo-LOQZ13K4Br}CWkxCiC?qFxfF=4v!cKV5 z;RuWx!hvVTzS)D9xv}nas)7Q)-|<1lQxBH$RB~8HMsW@sGq|9SK$wlYU&s;+{jd1D zJoY#GPa;PCr)sV?DnHMDn_BT^=Ck^Dfl7wsb#teu@0dTpml1Po2WoX;E@Hj?oktW! zrTazmyGpr8FKn5zYV?@;!eey&E@ms=c%97{#tu+Wz!^sH>UevKlt#Yj@%?gyNvL$9 z9xYD#r;O{v;{LlnCNHOKQiqIRdd#>T+WE1CXOE(HjvZyjWs~FRS!Ns^MW?oiI7RXo zg0`jP^-xCKeJ^?cQF@Nj^!N`Y-?rqduOl%1YNu#z>bgXyQbY0kQpVZ2M3yj3V>Eic zj`kq8ga03NJn*QIi*zbmDdpkOwgjg354iyZJBP_-Je?YhY!22JkEV>Mr<|vp7y2Ny z&YHKvnzx2+%j)tU!5}NfXu#jlCEvt0WxqQ%+~NB|FY8dOpqxKlT|7C{zqPvf>Vy6N zVUUIWf?uf4Y*(k_jv9A}<tO!_dccH(eVjJ!A$5cAhU(&)O#il6lyh6e;9lBqjan(& z$wJM}_)gOP-Z0FzzZ1+$p1Q=m6sYs$1^YWfp4$HEMRYQCDW{gOD(^cxKVDx*5r8?b zl5td~6XNc8dofkIw`C1(!iLLM{3PwVzR}+byOsgSaXE)__EpHWfDhf#mib6EnX^aW zJ2UKhg7Da<I=9#tj=hle8e!M%I=wH8K}fRc9CG<n^3Z-;vuhkd@)ve(Fwo2vW(_(R zdx4<nBcA;aF&$aQBtr_dF>!AMoQT~#nCAkj*>$g-7r~t+*5pw6un@k?^;;&G=qdgv zPyTdI(UuqO;fyUag$(y<qM63ZQGet7V{zCUss91j0)o@Su9L}^5<M;K>ZjkVpj;Ll zb{(z1{8qE86K@2W+lsN#lB=|lnqS%ZHU3q)d6E9<z_DHF(N}UfqRX|3>{UBf8%m2P zo*lE*A=f$y9X|=9xFYV}{16F3-P%h!IsDM|5wUDw%KK6@NfX%YdX_Lr&itH+N%n+Z zq`Ml@KI-Oe46(YA7BKzdbzVGp2y#M7kpwtxg=4sQ=1F+meK*xp$dpg%yo6kJLg)M& zMR8sCzz_v+qY%gG>w0O1=|0WRe(RH`3$Iwi-ayWN^Ukk7I<4WH1tYi0r!VdvBLvqq zklh)iHLGDmu9XLATTu5Pm0Znwk9kt}B7#DV+`lAIYkb)=mdx*vmey+}e(&8ifQh<h zJs?1?nfyjCCyWctQqPx5jNj#jU7Onh$)Q82bB=m)t10v~y3pSyD&3m5-kSH0Dn{d- zlOg92i`kHkR{xG2F6)az7vntPK*^q2*+l0JeY!vdtX>-;b+$=cn7tAaK1B2~Q!T)9 zh$9i|V9guC=9*Hx*&zq>q){EgE=Yk{$`)u1!(#S%Lvo44=8woTk+PrMMCK7#U;^(; z1Qw8j!GqF5o+t4<DLmv97K?<36opEQ!b1jzN(YA7-Q8TOi$7HAk=u#tPSz&(CU1G@ z6XB&!{A$hLuio%<?H{fdhQvQyZeH@#Tjr%e&DFfJ{$8GSasP@I+btPPf!;(uA(JXw z)tZ+)b+dUXP}j)|cCK2Ul27b(yPj5rz8cPjvYHUD0nb)vnwLCvs(C3;edL7<dh!%| z&iR?DJRn>1{@t1+<KO%jfB1{R<R$!WFfV!P1M^a#mdOif-jrtxe>hdYYBP*}(cVbo zqt$F+%&3`Q54bJ{!cns|D4=PPIK?ESTO%u0%Kj8|i+1Q!5>yY+?a+YKb|@T3wnJxe zU#he}r`hd~6?|5ws>$@xZs{h;zb$&7ggN%w9ziwjh}}y0X{GXY``Db?KUiI6%VW8D zq5RDY<u5PD<0W}&d9W|>DSf!2`e!L&5%<k)#Vlm=7JXhuyJ|A&j>_(Xlt%1cd;bvo zp@2qSJs4{!@-j+RsM>yuc<?O?>6sM~H6-9V8lZG_E893tJ@cJpFcuk%E{$<aCbsq_ zjWU~E+6H6FerK7L-p~FbIpD?$-i4?zw2Rt6doexpY4Xja2-72(@$AqtmRKI5CsL#{ zWX2<O?6Ayu<rtf& {Fb@msVV-i;XQyPJ+H9R=CB(04)c()62h@IdFd^Vy)vKAAk zs;0|$-$r#I%p_3g^*^;lze(+kt22SoOI?y}xTDW4=>Ii+fAm*oY6h|rxf_35xJ#vf zv(W#O-pDM+JajVjADW>5>|F`^UpMss_8jy-InB`j@L8?tZy?&xKOGqDQ2r142kf7I zQve4<fByviBf*Z0|HQ+{|1ZC^rhlN&|J77O|E7}G^rt20e+!rcp?`APe&wHg;PUtD zec1Y#joF(1dwCf8SN`0Z{wc(%V{H15+=qS-(MJC9DF;UXqImcH=znG2fz$swqer&> zKWp@#hpqqn(7%{CRRwKY|2?hcUrV&D{|89_uY31Pf5Cy%|I=iL{!WJeLlg9$y|cCa ze|tvsf3mIrXSSxlfoNO*foY{bdVWh*58wtcF5>bS(tU@cvv-hCTdU|05<2}9+Zt6e zg2HgJ4FB3d-N9VHUwaVSvtM}>9k@KcW=zGDXSxu@u0tNCJWv0rwLG>wjXdtV)yN}! zMr(PzLbQ>`^}w`}$A0NQVgK}d4xIj;3HnRG4*h5GF!bO0V{7_*3;k<vG4#JPs5SjR zJmt{;GB5{1|JA?kSN^pAG$;pT&#t(|k^c;^L;r0&4E+mtw5I<W;#6mw{to-lUzni( z`<erz|M_3{OMm5o)Bm&{i4l9&_@t(P2@ga6?(MDVe}OnP3fjaT3>(;5{u7Bd`qOt` z`kPYrddq9VKbt6rvR|JbS}*4dj4KN@S-r|QH{;#0vPc8>m*F69WJ<nAX0>)H|7?Qs z!uDtfpxb960M@)-TgQghYh<dY|5}17B0Ysxt4`)oO#L*&&GvfqGud`aGk>BJ$N{`j zb=4J2$LY%$^;*wes*8s5XI3*QGmh1|xPbWhoBVUk09oK|XWm~%I=vYtt(qk3RhCo_ zV6wxv!A|0P&&hbZh^~QM%b@?#3DoFgm$yRykcRRv#tYzR@-Nj&To*9ma@`$!yxxf8 zJp4*#(m&d*#b5<5!y8G8VmZNx;)#EVC?bdg|KGu>2|3LW!kKN^B2W6N$l)>wk=&!| z7moXNqFDX9OC4lL>S!cl1%KKrzMzrHGtsa4Y9WdVw`);wE9N*WxFQK_1sC$+<g6)q zk*&Ch<TEEwQ?jATq2#*OluXs|{+Ar#yog_+g=5v-f(&ARkyW#7X}+GLtQeCLe&{{R zvFC;K!>wN8$v*cav)qsCF?mn&JUub|6Or1)C#Vl$xf|gmngR95pGEDLs#DGvK~0gv z9#G1X`Q5ePcI%vFDM_LF)4Kw(OC14;(rv+-s6)(qt~Y&|YGc34yiWSEipX_s)%R1y zU1tPL_D{>n;(Jdcz#bKo$tZkXbbvD0Rvy~Lgy5%-LmV6xXeU@$Q_nxI(P>rryUEXY ztDZaBrtY@CbL2oE(WPm2K-*<PtE@n>b=f}9&%@NyB(mD3M*C39+9~bgy?q(bnju4O z9>UNMVXQx|73tqqM0yuSOA&mcKZ9E2imvAXP&=h9$q$ta2qNwiH0j&aWGp`+Hig%k zFJ1GtsZ02ZdL+BVejWOc?fqCqId@n5<COJYMa|d<;lmvNvz+(ZVh?vj>%fY9?tS<- z+ui5<T@2hc`2{hz^n=+(8#y~YbVymKcfIsy7|`cFN10sHa%EfqeY^o>fhP4>K!j_6 z8aHQi@v0io3Y1$Gz6DxM640u{ta%M3?UxQXFT+18asi(Fh)i$QTJ{#SQLmi}0C~GP z>X5+0LgO-`HyY8E=`$LA3=)2!Vu00CFs#IvvBi?ax#o@ObPM;)mClwZfFYE-X5Wq; zu4QBT(@6TkomBtOim1$Yv;Wb3i~Zdw-)8@e2i0b!q?tujipIb`zA@sS`Ix8}`|St} zx05pvD+0f?HRq9u?iU6)9C55!6=0{IotnPXPJbVP!iNVwQr2VWEI0&vM24QQMyI>! z1iRFivpJ6ESsg`aTS7I2RH<f(VwXO0;x<|q7C?rR{L4p$-d!c3#=vGvYD7sxG@~T& zg{AHxRdkd{IH^v?ADh6%+@bf?_)&}j{2KS=$p{<Mu4xP8C-AGw*G11qs?Sf7qi}r# zU}J*rV0zM2c%c}#@DQ(SH+t5Ki$z7Hrk~bayO?kJLtpY@Z#v`4M2eBf<Bp%17v=Zn z{GC2BEnlEsV>e9fX_Jhqo)&vh^xKrrcyv1S0ga+s{3j^d8~3#jZt{(){WaakWq)sv z*D}@e5Yk5q>GBiU>+(%Aq~~kW{VW<Cn!qmy=Jtk&J{tc?g8#LatnYRC8`N_PG>1b| zIUJffeQ-+-4VpLlnZtr*C4KBZ>X*7&QV(UEXlQ0wiv*SbAUag5DCL*rSKmZi-(r0Z zXW3Aj%R}$Vod-)s%DRWSCzeD8ubaKcsyh@RQTplL$h35s_Wz99A5bSql*|TlpnMxn zUqatMdRQuax3d^?h;=Gwb<Ek}oE>^@{!B5c7`LH8J!bP&?U|fYzQYP`K>Q}{6FP1G zA@r`rTyRdBNxxI4m(d*E9@^>U3i7_zSNZ#eW`o8}PQEYN|aGTEtI*URRSxjt9i znmagc;H6gZNN5>&nH4-)o)i4+uN|JQKD$sihX>bAZF8a(Y|!Yw#k)LJ$V#yZa>aVI z@w(sQ^@D@la<E?W^|KscxQj|IbnAQKWdJ==`WrR&rb|j{_nhDx%Wt3gWXnD0X<YGZ z=w*XS$y>7N?M*SLgRQc?C`i7|MzENolbmIVPIWyZW4?)e7x5X7F4O3wTuGtxO=cAR zP9o<HZ>tW{Y+1p+B=JVz^BHM}BE#FhA>AeR);z$sC}mVO?%4Glun#WK<<v{d>@utF zLyfIg@Mv+pY~nAH_~<+$b>`)gS+nqK1?7m%`NF9%ZZ`InEoVHdV1dqLu)OzvL)b2< z-8;?KgXIPV)Zg9^(_6q|444g1e*=Eg)HW<X`3gumFoleEmk80^4~~I%snvzjCt#vi zto*g*RdVVP;dmt3n?p4jVHTZ+3K)0erFUpzcBrN!Z~37yIiZ@|vQUkjbdfOnQov2D zh~;czF}0Dbjt{bleiu#)f-aD<;@Mkxh@OE^OC(gjm}zL0OLXP6;=$~VelF*x)!XM+ zOyF)2F@YD4kjqD=NgtM>a1LU7r+J9ZNDhzWXin}7@eGtRaM^h^qDVT$9m*Rwx1}X2 zMfPHd^YF2x&8LOMEy{rgsUbay73V8zf|Of->qRr-O81F6=gADr^K~8A+b22q4(#r1 z-F+gmuBckVV(GJHmSyB|$VEC^&)I=<#lX}3t7WBuocWoiVda{SB&;X4rn+7qfU#RD z`9C-&(_j}ucBy;Ewj}8`{jEugJ(%!c<Vdu<gXxJ_b@#vv!~5*iUoky9R%7?~A*^`y zG)9Oi^vy1B+aZO4qBedNsL5{Q|1w;YQx+Neo1EBt^E$3v$wYh^g9nrhoZ37r($O=V z!+y)cl^n3Mge!?UE@#SgWQOq(JQ)??a*sEX;o+{LMp>272HeG~r$0b}()c*{n<V*@ z`_rQrNsZD9a`Ip4q`h<%u98=WiP<<)!XA<^Gn+s?P54h{*3IhW%b$p&OjoR*xXvS_ z91BZAA4&ux8VExcPMj^9A1cI<UGq13R&<O;r1|JRNWIWYn26FTRM+i7kRDC#Y88;V zSyM0*z!ZlDKNCEal7uBgQ&?E@;V@Y@A%`VK`e%OEJxv83LX*PXe%z|NIGjgtu06i1 zyB)rvPLE-`I4jjxYP*@*v)ZNZIbYlw)5F;<-nB<V`4>m4kdWOz>wADcf;wU9>@?pw z@~lYn4Yir<j&IkJ!_&7p99nfpkP!e{({27!V)e2iM=(!5t@+7;ADP?K*Uva{&k|<~ zJW5^5Qq>1ZHEN1Ve@Q*qBG!M3n$RKu@Q;{<6Y#Kr-%4!K;pw+2>X*<m8)O0>ss2#P zd7?A6JdPZsQ%)nSd*dvv=Qa>kbT*|d#zv~u!xP2InTw4r%y&g(Lb{F=2~Q)^l)e?* zj#aJb^_3LQaVI3xtd(HBsgm(4we?)eXjxg;coM<sl81DP+5;&a7oEF0#tGKzeB^-R zZPz7{eTpWgbp7OdWmb`D?M06%B1kvAzvnqqOv-i~@a}2%X=m4L?pEVLQ4#6i`+hm4 zaj97GZZ_ME>M0uV5;@b<8>y7DRV%E)+bxz1jjIUxu=99$<Kd?wl68V)$qlq*BKTG8 zF;UH$ERlnS9K0+v9Zv^!biN0gv}#$sM$><k`xczO->I-OU_zdC+g6c!*qg0BJYIHz zR7;N{S2gqD4UNkUU6-eaKhy(W0qgepw`N$ROS1gE119A$pB2841Nk@kw>8UEQKbEW z`SHhjbLu3=xf}bYE`(7n{xM=k65|_K{CgM$(1SI4FQvEz*1T21xks&kfQINeLh50Y z!4@@Zmu{)XQ@mhf`9*0a4ln|lpcdwmuc61PyO=b38>TZKCS4%aOW50}HuH?iX`R@6 z316kdWi$U@?&Y+Po$9SCFm2*gB>7!X2v=%uf#hITmpo5^DR47?gzPWM_prVE!Kn0; z5Gj)M+RYvkwK^Ro8~CsDhR<Tyr@`0B*d2XDnFRQM^oDLMXr_k3^J`Qm9Zx^?(rWxM z8EJ}S{dSM0?`WY<u2@Rar{#q(pF$0zH)!5!B`0oqYY#oKXJHi1zSazERG;!B>vm)v zl}q{RQ|z~Rt#Zd$gHFz!lQ;nbc~4V!3?aja`!T41n5X3-)8qOw=t!TJ<y+P<e5<az zR^(*n$T94^N7V(419{Uo^xI_3&8*$k-3o3*WombwZrwhf7p<@i6y~2<F2*Sy|33a} z?8p@UXxh9pcGr>_*K1INOJ;WLWX<iET@lI1CYPH(E4Q9pdE*9-@>y1v<H6>a)E1p? z1@9+sqf1xe*2+-dmt-N9Qo2<M>(lKTh!f**xWM=NLF|JJ&n!JQ$;eM6pnI%a%Izvl z$7or`350A^(-~M|HFlmAlylgTP_$k|u@U#SWHBL}-%PJnkoMQ{9EEESj?H4ZB9@UY zLz2(X<1hv?AfxXupas&6U!HoICRtNAi{#9c4n&VenET8cgs9|YWp>Bjqmdnj7-Ji3 z{~{q(FLJVOlkIV=wePnkx{|l*dfi^#L1u$FX!#(PY&3n--K=<t{S8I=v`U;kQNitZ zGy2CxYWqPPy#rfgw|~}LZ~7u(T`o?PQoiE|@I?JuGsR!1tw|rmW<(();%%e0+<+6j zBs!9ByI#1;p&%-wZ_@8TsE>fz2vvQi2M$ZD`<F5n6MddU-pJKCCG$H9LdJwNWK=zS zsge3s0w6x49iL0QT6qqI78ymae^|Cz)S~9;pkd5l+sj<k(}a}F&otS7cb6tW)e{&! zj64_02ApUJ?^&;wipm*&Hvjf`^o%W)88B<^u!y)fOAg^17zFH99{RDok$!1}3)l3( zgDAi^R|rikG}X<_E?K;q2MSt`vi!4UzgeM-2^Og{?xq^hN_eXWO>>#`Db;~rZt=IT zW+D37Lvp#tKH`3Yrh-iE!ITUCEN2Sfa#{0O$f*|N28lw-D$11LbM4@sErXAGR6_@E zCpf{(1+$De(#csio!1JbiP*Nbu)eC+t9fllk8xO5Y$o_v|1$+M<86_VX)#jv=fKEm zZGA77!1~VvGpyTRliX{6t2O7~@ixN>P7^}_fLy6`M|)HSk13Kh9z&!i<DME~q*_b8 zBuTmzyn-YMM=YsGybSWRw`;`N0XbWB6<X<9^3&HyQ+1XECjemTRf69m?f4xOVYEXs zzV^3{R&XxpZ|ZHRmrWIkRKtx<t2ZRoI;}oI;x(}ye3vEQ&W#vyX9?Vk0+%exOBpGk z`CxTNOX04dDF~>Hz%T8rJC1@NxV}z^bS_)d^(=v*%EoZAU>F95*8JI&c9!@P_Km;V zxIAhHW<J^>8Lx$&0so-C+ZOr<0wY&(C9toi;g#Zeofxgd**98sOH(19vh%-B(mtOW z)7y@@MPlwD2297AFq6N!gqRe8RX%96S*~G9P|(@V<z&f4E*ovd|E4<)g`Fk-gni>L zwDo-lZ9%kyp(1XFeJ)`?iyszocQ8$ZdPl;(lD@Mp2U)Ht)j%3vPpZjy@h>^jLePs6 z?*b7m!KfvwH5o2MbZV-!K(wBD+HicVTM+U5^VB33{M3uVmRy~>)}+U4XKax$eAw_< zEK;#FNsZqY)$UIB(_QoBdlItg1r4<9YAC1^fjzXqwy8EPP;a*zFFNpYEmncrA<KAX zye*ih;)(j5u#b<s4Ab>IxpPQ*{;Kbpywm()Dwe7?m?YCgs)Npu&K%)}wV8=NkuOg; zlq^iQP%=#zlv=4zc(J=aH(kCDD<V(n=1Z15t|Cr+z<0~V5B?G+zZ@;v;d@Do0B6P= z|10c!$D>AbN9TKjYkXbtb){XZ-Q64eOMk_hi~mkr7hL0yc_WYH*Q4^>c(5=H#u;~B zZY%icdl~)?YV;ss4r4P#7`Vge);z@(V!{07&_v|n6)g3acOdSylg|R8Ec{fykWG_q zVB`asi8jm)lFJME;>OXI>s;g=h)Nsc9D$gVzgZx58VGp@qR@uuqwzeFuLvH@gs9F% zK7i?D!?f2h_v<^Hxj5Ot{9s^q*fss@{|LS2dS{LYGcdmxm~}QxqlPhCnPf;v<B}D( z;96wEJPHii$OaN87kLNbDH~$4K-{07Ef6*>@(zS!b;b%rFh5ryY%KB)#AG{<(+osj z3WU4^G0ui?8;F7w2zdvh)P~scjmA=#0wM1}6xa}}4Mb52guDZBhz;>F5K_t>f)k}I zAHe)z+mEp1@`An~z$s;~fmm-tTqzK9@+%2-N?G2?W3de}RO5Lhe+<EiQkD;39=BnR z(J=StkJm7^WaR^xr9q>&@vluOPtY)SDa!{i<L!JlX_#RCL=9uhUp|02%Z8Z;45eH{ zs8h=F4#aUb#4LfhKfhKWY+B?Uh>kYIB!LL#&lCt7i@XD|({8~=0)ef=Qrfo4HYepQ z50}x7R~g`|UzV1atkG7T8$%uK$&b^YOq>^|H(ZV6z;%Wa&t~2LL@xyp3+G{DAlYv? z5VNqJO)xP!d>-84rgU#O=X2=_9w|npGd&Ml@Bip?fbxuqEVH*xGel>HV5I}QTsI%$ zt>P9F*IQBp!x_s{=D%9fQ_g)QzB1MoAUQ+KyQo&|@YMcPD>}kg|8F`{26%*?9EYCk zMQ>Zu(`x>uhKa$@di9K#ZUiS$(=O_fkWIdk(xjd9s5Fhz<7!r;x=8aTqa;@F5(>_o zmcZ#2vIY^@Q3A_2sIQMK=Qvl2md<6?5z_u;jgtm9@OF){{pQA}=(cm|KMQb?0H=Sy z>>xR(%L>fUW=O`>L*H@5hnG<Vt~Be}JOfFUFOz10jgpM_juV3P$m8+SQrvqk+Y0rl zRXQW-8`YN=6OXE8d3$YO5QkHtcAt4uWqIVLbZ_zANj(-GENIAQA#molF#kWwLwjS7 z>vmrwj;i5sU8eVbw4gn?o>dxWMtC4l_H@bs6sYGh)GT{C^Yp;iMs?6tx(oyAs8bW; zr`uF_*10p|cQ#@AbpF3Ll%zLDFVsFRmcf4tg8K>YCb|T#&CzekKJyWj{xKa02OHHd z5A(e!`K|blEphypz!qqFM?KkJ*xji6^XeI@6sSKS%+_xlfLa7%&qwAlBypo82zRU6 zV8)nEq~=`0yA4NHiLqAo(I`aC`Vfjg@EJYgP5#YllH@Hb4s=a{n4n~D=U>QF#Gxkt zws!s}lYji9ME;4)g~6N2pOQQXbJ;iW9re^KMcJedkvurT6e)44{^O&hGrR$ug^Bu# zhr%vGcD|3!&yz9EJhl5%ZBEphQ%Fk_`c_JkYBOK#)q}I*-KlE?3a2Zt-x}@Qh{nvO zfweUc9mOANG=9(HcFr}V!L`!^>OzfI&m|lFp|&cFWB4PtoW|Cf_19$bj%sU@gNx_- zXgxA7ZY$^c4a-z37%GQ*?$0b`Y8O5r%u}G5AwEy_veBkX4mSG<e-2C29(<s^Yq}QF zWDu+MC#Qg>SdVJk|IEWVVoLR|o84*ZcrAgfwfLHh%i-p61Gu_E7SD%={lYwse+!wv zBs`^Eg#4kjeQi;iRkw!HCgydC`Q}0?8C_RhMEZ+mgf`+n=W}w2WW6FFZ7-Hx0}|TH zgf5ZLtz=2yjJJg%DO7~5W;4WN%+fNoI7e#l4^j=e_ld|bt1y>koJP^cIdX;i+(p-C z>;^@rw=;SplhV~wTNoyAOn}r^L!SR5141d^1_UmxI@?W$!1O%Jgrke{^K4(+7`~O* z9q%ByKFhkJqjcv)+uVx~m+E`BbE`Cj-6r!lG3kIMt-X<VV9R*jKd$FA0%;ot{Va)l zWQ%anyx0lIomz0IY!N`bL)GCYX>P=imyrl+2kZ6PvLB}@U4@A&-Y~7NdaWO!*Yc%m zB&cc1Vs*Vvw~N~={FP|IDj;I-7(0QGoplCD^1y4>gQA~RlHE~cP`9b(GSyROIdv># zt<?JgWbBor=^46)`7uKOS#-z<JIos%m#wZKwb4zpa$orQLQ~VE%3H<Nik(nR5*o?c z64LjsEIkK3*c6**_SZqqhlRl04GiR*tRCQnn_-S8*8xHfc>D2ww^s8e^&fx@cG-ZZ z^+EGP{&$-EuQ2(qv)9WMvLIOZcm_eEs1`k*Wh$Gsb-KRqQm)&1we3uc^0en$Yap?o zkhp~(MmJ~95uU#1qqxb6Jj(~<)$6%4GiohCdM*xZVD?Dk`S_hOBGFx9<WP>N`uu5m z-KCzDUA*BD+32i#*u1mktV!K1?~!ZTV)3HtAD#Fxb?yRYd$}qACRkdwkzP;Tt(XL9 zSBW4OF^i+>xT56EzJfq(mTvB3|KR|UT_o%BndbhR5xN}KC+s<6kYkZu;vOzpR_D>? zQ;#xYs!mb`<f^`stfePx8&Y-ISEiu4DKAmRUTV}H$|$)WY?C)IX#Hx0V9jcZeV8o& z6Q%q~Nco?j9^i%Y@1f7>E|%^mZpy4C^&L<;&t$n@4X9MItb6I)Q4_8nPEA;r3YSEV z{=?1$VW(0!ky&fj*12ybsk+PzVg~0?K4Di5BzAD^UDZ9!cY~fm6<!OqAW}vPEAmI^ z0XOBItb5Fntbvl%pU;=Wfc-`GScpu$R%I<Auf{L4+b`iZ2yT9ME##Y{NN3vj6$KhH z<ZRr5#o7KH($-Y!8a%;i$I0LZ5|H*w(q8AJZBJL2bjyA3CeqEv`x0H2q|SPzJlf|Q z`w$%NHkqVY!yoJUqG8XD_0jdmp3&h346bx2J}Z+WZA-J$)l^AjOI+50)vFjGIC(P{ zfkl1Cha5it5+7uGxAyGKb$t@Fa11{SgdUY|IofLl^`88QtMLPad>PSf?8)=-?$ zbl}64482=*GEVNT@=7rsZXBIY50Pw2JsMI+>*H<I*Po#yVb^11DRi^j^FCgItW@Gd zrm$f9JL+WNERuCmoz|NE!+wkFVfPpK#`WmQx2h#&bg%7)Rjpi@DU4ibC}1r`gRfkg zaD7-k)uu-UZKAaA(JRQA3#rv+4J!8qt>;bklk8q5JAD}a4#9Ag1U;gI)RzS4^v_9p zt@(eKWV=rQMs{cFa*Bp0F&&mvY1=-r?us39>MmfVp_H8um%T4e$3eb6DERu@w99be z%_!&DXM^}@0JVbY6)P$A(;Ge~Qyo`I88`Trg@+dO+gaBz{m|G1$KPX_R(kOd)5gfT z7mZ)Be&UkCz+{$A{Aa+`Ijo;(D+>;<#&5KOYmk;+dDvbGbX0D5Sl50HEWH?1ylP5D z@$zYd$lc^N{k0@N{Ti@dy_F04aJcnVa?;62_&>$Vr!*I@n%)F?Z^b^Wt`9S@ASBQ6 zvWg4ob9!ROzYQ*KoHDJfc=`01WyK9s0tR_W@oFn5>yyfQEtk`>`Cl=(*YX|K@eQHn zJ4&qMm-kw=!y4Bp;RF&fwvm&w8`4+l<AH6xN#GlS#xLPW1BUT@XBZ68qqMJI3yw4p zTX(nP8#1gr_fUL#P9{O`DZ^watKpc^Oy81lX;(4`HAX)JtOWSFu_TPH;>%g@W0&ts zy^`g7+q=o~-C3*4ce0=Iy^6k{S_<Irm+#P$mgRd`^hHQEc0iY}b=M;Vv@GLv|5sAR zpM^UIcDL~z$Duk#oPphK{VN=?T+C7fcw&9utcKXd*jpzeXQ-4<X-A6aZ*m28uN7sX zm5tvXU6#Ib_3reQWyOtCb12&!<Tl;nhK)xX%sCDyN}q(HSa-`w37XD+4Kum>koi>+ zqkRjaRun1m_sQU~hS;Ym_%nv%8@<bU1}*QSt_ip4lZLy+VWW)S-+VlEWexq(#Mphk zZo_GQ@yiNF0~liWq?*SnJ;%(p>_^tCcc2I}oAVB(LvLh5`25UR=cIl+cD6xGM{y-~ z)|z{BmNj>JM|F>+tQu8Nw`STuh%MBM&$w1R%Zz6<<Z&^%Z)Tt<opb4HGW=U*$r1~e zthy{lVZ)VOJ;9x<`zV{3tA>)(LL?PmP${nDhJ(x^&vHTpt?(idx=CYN-!pSc{=n*x zFW*DmD^eRdBq`cW3)+(wz9dr>9Y-cR_z}lvGLEs@$%i;T*YSbl^Vg_pp@TO_WI2)c zs?|b4CGM=wxK=WL8?B~X)RRDQz{!>sA}1!dUm)Db%5IOi_g%v8CtMb{iLAb5z2l!d zmRWCIpRKA$U%{SiZ`F{3vd~s8lRqciaWf6bT@T94Q+OQm+w5W@JTV@G{F<!bWMTsY z+IT~s`(tGTsxtgv)8K`Nbu3<KMVhfxCB^HetSKpeZ~A+~We4k(^ixX0+-q5yUA%;; z5=p(A+XUX{h47rRa1}cHrO%R%<Rxq2p)^~<U?qG`N30>6CImFJyrkEvvQPt;{*|RS zto|i^6$tM-0eO`aFD*e^O9GqIIm%YDnNK#tT2v<do%U+dvBFii#ml>=k+(G6U80xl z5n0w!Rf*CoM694psW`gzEf;PdYW!oWbzraC3U(w*>EdqG>+2Xx`^J1dwT3Z<k7?gK z7(AoF0}?BkLw+sF#m4g+gLDZz*4*o}D4Xj$s&{(|Eu|h#wJiy4sR(^vk*-*X&@W1R ze%I{~+HWU-+hUeOx7eHQ(^${=gD$VOrL4zm>sMt1CS=f_cr#1t-uHbRu0*IcId$)u z^SN{h9FJJbLc2>$MTDUlumIZF3sPSwLF>+g&>hOtx_d87M0@kamVr`_H~p8gnR(IE z;h<ht95YQC;}#h$M=hszEPa4fBbkSOp^Haz^R@aRzeTm0!J(`J)BW#>6cSY`6x9{V zmp@QcUe3WOV|~r-?6`?NC3K-wzQegRAiIrkr09>7cfo2?-u>dkLIZz@%EHHlKaS|5 zQwea|Uo{yb@LQgmqWzYsXJPC&9D|2&4M2m#x8$g^TT;1+ek8ND!FGsCluDMVm)S~u zy68JZ=+m_%v1sn#;{RB6a)_;|7iHn0x#6K*OE9VWu;h|n>!kJUwYsdAZbGHyTuOUM zo4HThsmjuqs)bOOVvL3vdg_kUdO9R2Iq|QNUD?db#Tc;~Roje;ANQKN@P#f*s>-7c z(N&b3)`5RhO6Y*7^H(3}(vLn*zG&Do6MF3`3VtL#^{}Ta`Sn)4TT=5z8(oIWT9jde z63n6yAyd}9O+mh~W3T8~bTC-7v_I+5g1c*VepcO1N<*xcqZcwB;P9u7?P#07Yse6f zjf05cFFX`A|8q|CEmCt4U0pq4dLU5wTcT-aqmlXV-zB{o<R07fx@@{5NUmQzDrZw0 zyWs4XRinCNx<~LMtyVGqV~@A701R67(N1Yjv342qurrzJ&o<ccT>hyp;3Lr|qrG%r zS)-ki@2<fa`SeWmvj_+}`|Cvio&Biqd#gTHpXY(|V}7vozH`C(Qj_3p=f|-gk*OXp z(l`flK1in8VS^2!gLroFxSDB$@jtoo<FVQ_RP{);mUvBu3`nH3w-NV7yk2U|IH6~_ z&@&rQ=y_MSs}c8}TXg&x65oe-I^nms$Sj##V*NGycZ7qo(9(*~2kLOZ)uH_87Heag z)KJ%#OEfQ5-3s{@epa0({8+*HIsl%Ic9OhFh%~O>@Ps$(u1__{?X?oV)tdQ?d<whi z8;T38yZ*{&Mb*;s#?2WOZ9OywabLR<Yi`=igXAE}iD^EITAA&^Gv)-#9abm0gK}=7 z9n2gwN86d;#rd`5#Yw<AK}Rn$Iuam}bX%q$os_Be!96hM4&9{Xb;#AoYtJC$IR>!6 zJMq{D(!Y+l=i23em6Sj6$n(_J83|mSfm<eUuN$~S_JK?2OK7cn<tW7bJU^l?)rfd{ zqfr;eLlEx`47_8fhii3t+Xn0Ht$JW49N|=T_l9q$*NY%o)SqsTrx)k?2GWNX-^#y3 z-9;*HgOvdjdt3`TAH=Ihe~uD5vxMIXK*iRY`lBx7Ll2E4Ql<3HQuT#-nKI^GV%=ck z8-8@_Dt<SN%xw@x+FEsw%C~ePpJF6jbmdMRa5eg`ldxIjUJ0qH(@f#*1T?^-hOy1s z;pr&l5NLv@4Zc4YpX}dJJUPR6O1Mt);!v1t=$`qzc*Awe`Ic$^XuPt9C9by^2)T4t zgN7z&sHtGp{RqT?2FUpt?vT%v|CLhy1El-`Qlt1;kRilq*>S~dCuCL6Fi2M$mF~eO zuywGpHKfPt)nO#oOS@wCr%11by^!+nD&@~lqWs@#QT_~UC(GXk`-A0As(s6Uk}3ZQ zQvSm41fZPq50A-EWBA@*=_lwf((?(J448-=Ddo?PFmWkmzwk}N#JO6DUtlN%CcIjS z<2Klzl1j{Z(y2-;w~5vwbfm6z*mqoUu7Af4D|=#QEYG%Y8*kL~kNY$9569_Iv&oh= ze5d+5FIK@a8E(p>*cc0Fvd0s!Z|{ZH%4H0gw<5sQ$^6JcN5Q`cHa7TavInR6xwmL| zruy+DP4`4^_}WZ0)WG^~P3Y;g>%HMwNgZ94LiZA>d%kl99O2(lQPpgg4zgdiadVqM zylsV5+Q4p$jw;BKP4)c|Ews_*Z`Tc)ziHL*cWp8JEeA|B@zYWtXTW=M|2p?9TrRsC zsFo~~uV9({NJ&<~kFJ?d8aBJWVb{$2<XdXy!J1Pmc$*HOH5}_Ckt*q}3YeNX4Y@p= z<amRe_Ke@<)XPhxUJkE%+g>U;ic6HD!gERBH_f!VPgcZY*bkz8&-I25Qro-O%*zCv zoLXn{i@0}9H2hy7{1*xTK&mEw9RBST(dkI1RsBk~|G-PrKZLS9Zn0+Cf4XM4i;T)Q zFpeY#Cq~@EP$$*DLQe*i;11-fF_KhQ0DTZpEn*P+eyO4Bo6Gfx+S=2g?8KIkA`cO% zj5jf~9eX|X{_|YIpyv$e`RgJ>&q*3ORH*6csa=szY%sYW9Tnyl`Qyno*<wS-#_Ns# zLx&nJRLmxgHfoS-=JN|>#%`pY6(@?jdfFH(HO9jYMh=sjoT;wTU~$?R2H<5rM@=|O z$j1w1FtbU0i(=^Mt8MD#Yk9S26`Xn+ahDr<-mik5H%^6~TuqPhj}qn4ba)E?3tR9n zqvQ=fn|~WD$^S$9@PD1*U+@hVe6vZTt*sVV>IsJSd?~eGRuOpYyaynV9Gir`S|IHV z2|aWXjJ3f|*8L^&q^*c%%#g0DNAzH<!T;H1;D4{btg$yB-6frAXp`lY<o~b~{ui|1 zpTYek|29~X|CPu;nV*#ZwT6GeKOFpOHffylPv9Gsg73H%_`0OxyJjDJ3u%E{;Jeb` z`|eWkeR>M`iuQ-^D|eE=c}xn4t8MiAxjrfU{bqwD`TJ+E6~0|KuJ|X@1mCrSZ#il9 z;crq3zM(Df6{q66b02&U)wRMGGWZS=e0xp?-<bX3Yny`aqj{<PtzghQQGQ+b!FLs- z1TEy*#o&8vJoqAlPvz`~KNbNc?8Tp3;2WEY?*$tyDbK4;Z-wtU99!ghqTuT$`0!Kr zmFF>bMy#W7{XEz3M}5GWMH#z>Kew(N0|hK;8>K#!oBZFuMBBwhCxPLxRHzgS?bJu6 zZ~oPpj2QnBRQsQ|VLWjn<B4j8KqmYV+wSP}&H*UKx7Bt!F&{jNRCJ?X7${=oOylsx zOm(Kg>9uiojP+yuM34W-&7Gy012n#|K&jC!kS5Dd4UpJV`AJ2dj8E8KHq5`%Zw(%@ zo>Vkj2-IUo)9TAr3*s!vq(<a*k#svB>-pX3IOLSm?c*pXe?O$SN&sb<jyKenM*$~8 z8ae3YBgS9XPS()lbqOsB#N)p6yjADPkn0G#>xm&(88oAsNjqlyRekja(QU;wIsPr- zY(|0eWEA`uM!|hY$q2Z``G6TR^UCF-($1?=h>2cDKbvp~j&0T9THcK2i+$bPNf_It z8Jjals}OQ!0VAF@jJ<d<j6G5aV?P6^E3|lM4j*XRbVm6pt9PZjVR#{*n+w(Rj2Wn9 zBw+tazP{a3-$pAb#UB56d7pR`@-Ek88F_cpWEpwig98j%hY49OA#1z<9*Dd@D)@iN zJKg^W<h?fgf699zAdbAt{*{#Xd^}?q8*~wj_3jH}cL2CQd0U2$edT=~3HC4Vq(A*m zXdT+kT~<n2hK^Dcdhu(T4nIduQlKv}s7-+$uT4j~P3|eyymed(!W|MUh!H18_r;<o zoq^qw{@5-YU&x<!A>?0sBIGY8f2V!7`)!H&_x;f`CWW5fE$BHam7W`Hu-~EQwKHvc zt~B&~cLDT#+6Q`y{tG>c_IK?eMkwO%J^QK=ifIoYJXQ<E_&Zx{u%!JyzND4?j^YR- zkLv{g#e#o6Y4&Lkt5Wct)&gIzRD4tR!FMp;UebOc|62^cy<@?*wKw>@`@^>*E6HE; zE2;b~V91<8H~e+n2j91?@wGSj?h<@c1>Xj;cKF+0`PSH|Mc*oH)JEUVFsO~b-D88D z;<4tgV+i$q{#$6=E8?cp|HqL=zK00@Jtu&F3<-Zv-xBL(xzEpxe{?i*kbcHnFB>_S ze#Wc$S`PFx=u~Cc#GF<lD^g{`0>zhpO!SDst>nK8$5!-z4D?(p^ehL3Lysg$^>7pV zR%O#6t;%VJ4&R{~M|37pj{RpkM+QVnvzZ3}Lf6rQhrj^mSxXv<?P$5g`H<M9j(^WR z^uuHcZP>&7RfGR~=SacuutN30cP^5$GGLi`@u)ZCg=Y74p5hnNe>oWJDf$&It>g}i z%Gf*_T;5!ZUSgN&KNIbfX}{I14nkD7$B4wjS;42J>5B9pC%`P2^Q5VN8Hgzk1YRpw z2WF@9Q0Ge=9nz0exqVM_+ZAcU?O>g(!PlKJCDx2oCGg7_)9>>8`Bt0X_2$K+-jf&j zUCJ{$K}N4lU%(9ora#-7-*;YY!LKeqRc)C0D{*4b2egnEi=gE6F4rx@s*4QfTs6wZ zJWL04yT~N<f1p?Dee(s4W_on5y<+hWIi)F*rKHC&nI04G87P@q&UgWl>Iw-BXYG7J z2w36kqJG@sVr>@|TSn9(S?h>Un-8N4AI@sDf%4S{ErA}F2wmoLfwbFo`A!+XHua}c zjz90-=$4{5orhj5Dq-FDU?e)iB1UmOJhIk|)vnCC26n}LJy;*nfyxtT%1~?J&RhJs z|2w^iw^FKw=ta1Lo|{o~h_>ebz-dXJ3%IxVSO340kV*M!eVZUhk9^r)tK12iyG?#e z4tVfDpz#mA-r`A|+^-e`#XN*Qo=I7H^J%y=^<<*b%;_iW?_{E5AP8#m5YPneyBL2g zdH#?cA%3WK8JRmm0vz7$%4=}zjqbhGAs;jE_C|_BUC%AwDWBEy-Qt8pIe%Zyu~?xl z!=+>dc2<MjTj3h>ye=z_@K4G@_)YBR=IkRg6)C=9NoaLR=-tp-Il)eieSdFUPIk2J zI)~ck{Tqj_Ek#e#%6l<_|8?66*7hxnO0_VH@s9_Hm7wIoitIMPiS=t#oh6rM$>j-A zvYocQiJX@{<5yQZYEN(h;WK`f*><aLJMZ4AWvnmLsJy)zk<ojsz$nQaT)f%3b0hJ- zBTF!CWn6t;{L!>?B4=@yV`xcih0#MXyX>+Ge4oy|b$Qh)wtuf94MeZvwskwxB_kpk z<~1^UU7E_yZ<kj5vvs%BYbkSqXIP63AfesV9aZ@rD#&31dZf`Djuu@E=UQ)mm)I%2 ztf2VODa8IGv_7yTJ@$?s=T08F(-c}CodRU>N7mhact%^@^(%P9eiT+9hKg{f;c{nF zLwREqzh4!V)b6TbdKu~Sb~C%}p`N#!tl(F?>5ID>Dnj&7n!F}OHoN%ps@pFw39a>a zsV)iZKH7Sqp}J(o?s%GYe`6-gc;Y1F#G6fnWr3orlhogc_Zk`dlzxS*+cWoLuy*fz zUDSxC@IqZLXY6j1aZZL6e3vX{?C#!!+m3<_`u*TnC47#4cQ3h?_u0HhZu@xem!HVO ztJ@#cQ5ib<FZ#XvKP34U-eG70XFBp`&0AX{r}IBQgUOp;jxu_l#6Pg}&6m^Gf4Uf& zlN(v7-x1e}w}g+GwPX^@GJG_$?mz@De6%GznGY)-LDSHFNpv?Ilj?eXt3fmeV54VT zFTm=Q<b3yh)Hf~4q;FjB29L^ZaQfo7sGPW>=lY}T<;^8<@A9TAzg()8C;K%D)K$x@ zwCKMC1k;lieU7)3I-B%I!l6fqXN^bQ50rUX_&yOM`|GT_LcYD>z;eE6tK#)D<t6O8 z@>xtkb6^!;^5-<{_y9e$4-h>W*7X{bk0e@rfZEOSh8v)yO=1(qd*A35F;~59Uh>o; z^WssjnU_lSoOv0q9yc!&)n9oD536DEXP!RwaalTRC7AmR)Jpa&l2CpiiYL`f-|P*C zB~V?i(}wHieT=-*=vGQLuGgMn1&Mn$zc>sp@(};V^$0Iq-jOMDPPtee;3-7yaBW=K zNg5}+KO7EhCQonZHhDyQQg)`@j`Y8nEbKX+ZR+0)w$t_vCrs6lfo^4FvBNt=gk60I z=OC7lJD(Ty?5C%B6nD1jE&+FSV9`@#j!D~_EC~#V%vEjVVEDR*uxkqmtl&$;iw)xr z6uv{Q^^#3^&__Jj;b^$gN6WCt`cSBd_Cy;TdS3)8LGLMs-bV>j%U7h(d!(j!D&d-5 zA1}~5SRO*})6faMe>3!sOVTSx*feN*E1C6kvtvl(a;-WD#>$q20*{j<?8+x2IAB`N z-5k)l5R8_IZpvR-xZ9qmgtcG!g|**!u!Ye7XV|L}d2V7%pZD{*pXC$c<WH8A=fi_M zw=9S2qh+lHTLc$K#m%~mhbqgHVt9rWVfP~@>nC_<U8v`UZF7%myG$M%B#%w39MJQ- zS$?9`<r*zVx=Gf}u1g6ss5h$T08de$tN2W|nIM2WUA(~Si;}2nn|a4$JBVDOYe1BQ zN4C#M##Y^rV2U;I{gC;Vg<;X<{D>6RG4Fxu)^(QeX4jf09dbC&Rg=T{l+9B9WR4`x zo3AA?hKD-+XpzJtq$mq#-NOSZKfptaqK+5#(^|pTz#e^_pA=gn@(H`f0g~K57IvN8 z;@k8$BHcWM+RC<3H8TrA<tQXfT?kor<>3AYA_6Xpa5giFBWTvghh2OAAqBOAUn=b{ zJT!Ix;e|?@feAX?k$CiYGEB;k@?Hv*nnTX02`8MpUgul>NTK#HQj|#9z(?49FVTA3 z=<m2n^{xG#ME^3<=UM<YOLA8#=YDl7d_$x<xj_BLc*m83cruyV{6*FKL<C%Y2~T(W zOX0Ton_TyhnZ8V%&hNvnPDF>@2k{H99eHS8e|;jsEBiS&s#5aR4yqa9NZ2R5spVj? zd0jy&hu2PqSG93zi<B)2)Gnh)Rt*WGN0U*DXiuuYCz}|r1We07&SU*TeaG|y1$#cB z>Ne15#wB7M5dqh!gs00okK0B3k^b>T?zDb!j_0Mza$@}4%;F8xFJVb^X0N97=JMj7 z{81*AB3Y|n2WpeLx2x#skB^I3`v1fuQpxvbUPA8A_=V#PYVD~~9gYQeVhGqihSs#V z7|?T>PHc+JvD@Ex>><%(A+jDK$>mLS<Q_6Ka@(dhzAc$;Q%~rpy*9$mG<lv8elzkI zOS%+!e8zMH@)$~}x{>4wc`PL&;5wFYEswoM9^WtAM;_NZ@~9~O&X1C1HO-;Nvs(p^ z6lr|(cT^?o6Mj*ZFL-EGS;Y(c*g8sE_B=ToJGN0}LxG+WMVdaO*;+yZC-TV)yF)t5 z{&&eE)D(72b@KK}-fMh$B9MkA1Vi`p`F%5z()dJVIuJ&AUxiEuk<^iCog^iT;XGrD zu&XS}I-0grlC;-JtUA41x7pP$k&OGxbh3@=FrLwVz_*Y;JIyvemXN<#|8Y!TApd4U z)%GQcinvP+Cc-vHy8^Dqh)-Aj4Ddq&yfhU!mxzGt76B6F-DL{vESiyiTSa**!pD}x zN9Uuy*4>LG(x~uKQQ@!HqQqFyzufi_^Y3<%ayyZ{!ddzJQf|F?=yJ>Dg>utA$iF2Y zs`*6_5_W&{s7T$qOY2G4^#PwO;9^ESO}2UCN*Ay7om*VUc=1}_a1$SPF9nLKvXY0+ zeu2(JTg!5heL7h?(<DwEsi)HgE8K(-JrD6#*DvB%u7q>!3kRtlFA>hSNO=rXIF#}8 zl<`<_$e*q+ji!vR<k=ceVmwyT=j!xUo!)KO>~bga*r+bnd2k;SPwf?R9$;=N{ub-m z&6$u?!!?gMYVf{j)cJH}QG*6TRjeVU8lFK!!1Z^+(`8T3_u{}tx=om8s^Qg`r4z&~ z{V;uu80lWi(wi%aW42j3{Z$&zJ%>wiUP1==V550Zo@04vfqQuoH>`tH#Ph}Pq2Hr7 zw%iU8vCDP640r1USZG`PTn}?Ucs8A4R|{PD;msmPs@Fwwd*Jthzy`j#NN)SX(mW`B zDcr3*G_Fs0as1cW8Kwa8z#>)Cxk}CyvObzMQGN^4$#sF^N6q+H++=f@TAXf3MWoL- za^=L=iV!p6v!y@KTq_+fNz+{0z^`bBD&o8nJwzD_ydq)e;_+KEx08ji#l^Y}J|?0X zRT{G^Y)Q(N(7Z(Gx7`Sp#i2yyhPKDgEn;h$d{zw`XmuJ^fY*P>!d&uIn>Px9r5<7! zbRtyfP%BMnC81+<Xr_eDF`?rLosfim%!E!X3s2@$*!Z*#-oRuJezcs$To#_>9bC6l zhsj;mD+vov9%Dm|Cq%laW#J1a;D2hUiG)2xn5IMY?0aS((6ccQp=W_NQ}k>-5n)#m z;o6Dr%S%Nu$NQeB6)tPlOX4`V8+fSa-2$2gL^!K0zj$MrJai%d{9w{Re54C`ml^<` ze(}ctWGAS&(onGmV72Fs6e=n;6|WJlsd$bTO@&ue;V#isWR(gPJv9|~0D%KOg$HEJ z;GxNw$O|&Cg4a_3Qi10Q7AXu7!naI0AcRo>scEU`R};awG2!7+139ve2}C(r&9uW* zA2%_eIYQ^&U<IEbL&<$CnQ&U1RVQNs*sT@Im{j~%10Qys2nFT~XxP>Kx9(}p0f`a4 z^oDG|y4%Zya|pS=2emIgtCsla9PQ3~q}@R(NqeSS=miI%yXpzf$&!`hvK2a{@g<Y{ zb@DP9u(#^u&QjsL5(edas33244F{|I2@kUtOI6&ZF6Jq`1m!^6@UVfn)_3*dl~Ixg zd;E8phjFLovQC*IP}Y9s7MBj3uJrAt*agWygp)7$HZ%Dl-?td2|I@!F@%6OvZC!-j zl*8}Xpf@AOZu2B<8EGk{7fGWw0F>}dP9P%eiV&`qB*=?ak`*XAI@<LG-E%mKhf3=# zpqBwr7IvS{1LJoQ53MA_cwscbv}QXbF|FBMLe9IpQ{*kQ<l20AWzjhHpOi*!+tkG* zkhY|!BrGJ}nm6hsW&$S{gj~@F=mO81+?&ryCss26ax8an5>^p*t>*#mGcdlVgTV}p zyvp2&oMKTxXuf@4c>(yI23Y>o4+}viw<V~#yu~nkjp`HL7}JW&m==RufjEO)OEOpa zI#!o;@Z}%NGB`8=CE_MBx`)`3d7}y;=xXRICtn0}hCC7^3hgIB;VFcQcv_Np$nTKY z#vyTdg2c`V5{os7fj#!{+a4iRNSsnVxcy%LO-{uG^ELU$s$s|Lf}b<1ds<2RJ?fJM zDP`Z6IPT#jiW*unV^8P8yASbY@p95hkGrfoHr8=mP}a4?Q%`T?LD$d}@Z~70==Y0c z7tN=e=wPLus|~$0$`TT&Yf|yOMMU8LXnXVcsEVxdI~~%PDB%XB6&)i{gC+_HDoT`$ zY3X1`gW`taF(Mkx=(wSFD=t7{C&2a6fQk-|jyi5L?mL3Wn1m&OTLLabTmS`c6On)l z1eCnrbMEa<C!^2jdH?w316_5iPMtb+>eQ+I)LkP|EpIk)q6}g`Q^z6`X^<kaeW)W7 z9^&Os@+bj?xP2rqj|=|^s09Ae-6})PbK~$W_Mr+d*HFJ%K#DCuSZ_#Y8XenVJ|G^3 zR<o-VdyBp92PV4tz|dmO>x0?SZ2XnRjU&_f;o<1g+#=R?i$p_I8dq|P`ZLTU+RtFq zB=)(`ij>=H*xcES$w4W|=`LZv!90X*coJb%kR$LxA!|PHFgJ^M)7zV08k2#ev+o5Y zjxFNHzZgcR#AcC`qc`L45iPAMjb4?TV}2emmzzA>QwEr<<8KIXvhR}Lyle;{u39Th zyk396HM&XLs^nFe+)A;%AXhwc<m$;$_JBOCvRS~{3*UA{L>gi*BETB){*@??{nghD zPctvYk3>wsk;%dsTqb9x?<_n>h)m0vpSRny!6YNWAFA9Vob2C&vmZEVlV8D}LrEcj z0(}M0;^zNXs?O=XYu_M;GJSo&JLcnXiD13*SS`Z)1lv33Cl#SYBFvVE_g_SL?87Jm z#6QJ{5dQ$K&Mc=%fUkyMXp<svSE=3p08BcVbv9O&{xT2(vmW}#0UoFSpMXk|Yr7`t zBwqAI(*B9e9}gwHR+2NHe(V@6!+wO?C&tSlQdLVt#Jl-EcS>?FQUMEIK`Z~!d|Ky^ zI-jn77Tq1ll&1bH2w4B(7is$^j;iiCcxVzeRg^^JbM0FcB$|0M=~$J~^#-y38cP93 z@bp2k{~VGMegn9y4I&KZDz;%4;s`%S#<89zSXYLpz$xDM*<c?<5%Av#*N!Gi{-oNj zlgw~W!fhSL`FW#ulH0$wv3e!nx^LR(-8v_ps>L3rsaVf>lcqEV`1t$;)!b!$T~Mb3 z+<ih4hwoM&CV3>)M{g*g*Swuj`$@7&^qRlqN_~taJb8Vi{|kRyAD!zP+n)w%r~Uc? zQX_pqVfpswSK2?0*2uouQX@KbV|}B=9!1`ri$AV0-YQ`sYf+~Ux@7SoDMiNI<*l#G z;XUuf`o^me3CCr9<24Y<pCD_0Lpa`I*W-3Wnsk37I%qO!^xzh&UCI-=&hhKf%8{#y zv*&<7IRb$FEfEoKfN;!>Ggf>+a*KL<2@<*K5#d`W4P0k!w2Qxi25Z<6#EQ`L#??mX zkpN%EENO(HgQW7#5h@dlFiYSH4?4x{Pson4i4OS`X!#T9Y%SY%d(-P(QgyaLhBPHl z>5%3e9DC6IQVFxcVEJnKr4sJN(Mq@jk6Q@`D!;(F2vO^ZUC)mYah^lOMu->#utP+P zJr6)hFafvq!!8SIDM{;z*^-|ej7#S4qem%!y~No=NT1+ugouduyJ$E5zDPiK{?2c- z!>Z(l{fAiL@5{K#-+xMg?{R+P{B3=$3#a1z4UwJ8-!RZl(YD)*ffhd3c1_iVzp;NR ze_L_v57ULeCxF574d5649*3j+Jrqwef3E;%SN?80Qi%}$w#|$a(P9r*B3kSe-2a8Y zi%Ifd{2c*GTJ$r-*-ft|@%LyVBHkLpyU1^;An7K*@b{UoRDQ=3EBrkdSNZFg0N)w> z#`$ZJ$?wQ-U#DmyzdoSj{Jjil;qQR1sk-pjd_wta;n+9qC;a``68<jZ7yhooQT{H( zlgwWaIJ@$9Hk%?;vha5fzzz}U|5qIOeFC>Tf7#>V{6`io`$Wl(M~>&pfdTe#Ycze* z`wSRvV@csuz|8kc%um?&S1n>MWCMaKIEn~+G+DSx6?;KMM7$otRjJ+wLOQus&xleD z>bl!0{*JM-YJ5d}l{Cnbo2|XvBaZ{N&MxmM4EfK!!jL!lMaeA0QHJ~*kIRrEVRGBc zZq-QNu5Xv|tbn^tkC`EJqrc;!c@V+sF?Xz;@}XbnNIx#87{)*^?0XaToeygH6SNP5 zR@^IaTOaSz{Nv|Qb12slBvFRA<CiCoP_`UEuzd<i-Il-IHi@vjt)_?=JBS<c$TCqF zRra#@3l0ijYxx@SvdUq48zjuiUV`I{!?52c1>NoLZ&E^?$A&ivkuyO~8DyU%N(!e8 zE%v7`IU?{6+~kxpE;#Tpkw0H5j=eQaXgg2x&MbB^J{w2bU4TbNgV>`Lbyy9q_f&sQ zRQ<W#Hk`~w{;~j$XI|!Jo`c(6{^I-DjQ?hI<=>Ur%D?vsws*dm#J>_EEbj}1EB~Iv z6X)NJ;&=Er9j|p4n{xL^n3WyDiSw@!bje&u;$JDqUH*+GMZ5?Pl0wRSS+|tJztxW_ z{~B=YmwE_ohUA^;bu!)`NBP%2y(|Cx;Off1k6F}r+iw%V@yz?VnXiB0f8*a{q)3*( zqhyD`%Crc!=aVuae;K+Fa~<Kzzbo;?`8Qbn4*$-=%kr7&JyXK0?2$Ne{!ItnAMmf2 zQv{K}Oj5*)a4{)_f7#tq3jgkZMEQ3Qj(tO_@bBYk!oOwwivGiK^dFvN`SXCQEB|J* zsp9f)4#4ru*FNuL{sitH%inlXB=c|MVamUA2)1t{WrBYziLkuK6R!L_3QwGWKh`Gr zw;#dQUDuf2REf8;d*H<RcNXaWfPWu=+?Br%K^8B9&n?1N&vi{H{JY@q%D*#l>_Hx( zZ8j;b%vvFa@ehvj?+!f4{Hq67SN@&nWUk{Mfa96Z15n35xPQpM!XqR*XZX|ZbPP|h zSAqm)5MiH8T9<?E_H^AuiPg9qT#rXM$Wd0`i{dXhD0B(_i4RM`GH=1LFG`Vu%_lZM z+ZP}!`&Aq*+2eR*p<XtUZ-i3%jqm;qqhy%r%<~fa6)cPt>@a4%MA<mf!csI#0(~#w zf3xxS|D;;JF`zQN=V}JS&cks#n6pH=&hCQLS?^<l*pK3n`!r<!P*TL%b_LK5F~{Q5 zyA(2CZny1z3jY%Du}B<#yFFClx7+RiN+vzN&m7JCdY<-(XLsy{6EBjGvg`9SNnKLh z-V!eY4T=KNWxT{aQM(s;Qzv2K>?g=b#;R!V4*MtF3AvbX4D6bjrIOgKlYZi-PA;S} zHvLV7?Nc1PZl6$c6tPyO!dThad}x*Q!s80t-3}8jh!-oq;aw$+a_eIm-gsTqZ|or# zM|t=7oFe1xUVSP}E~lJRWR>?xw|uYOBlYt#zl;Q4!Ex*7JgJ{;&$^t8XHg{OvnNqB znRkXLCp-_6O8!Ko7n8yvFM=;t4urEVBk77XUHBQ&_!DX9zctNv`~0rCx#@T;5#Aty zPyQy{Nh6`u)0tqFaYmxQEBvuKQ9W*ZnRu|)O$!lr8pspv<q{$+??S>=<Gd;<-MYD3 z{M5~P)J@4lS~mqacCO|=jaVyFVXW+GKD2Ho;&JO{f>ZeU&vX?z&V^hUly)M=gJ3?J zGoKmr5AS37hLG0u4(1pBpCE{wX|1-8o4TQ)Uln=Z&1MAcV=jDbuj=HzA8050{qV)^ z7T#<7SmD4+`&gNP-){F&c=q$3?n-QxR%SGF?Ssnq<9-#s&m`gRwU79E8%BtugRTQe zMr#$EP;~~gqs^sa5Mwh-?X;5fh_~+~JGUlc_J>4Rz7q(S^QPWo1cA(sHwmAj-XEt* zZ7@5Qv!>R_vVt~a*7F*b_KQ$C8dLlt*AuK>+x=#*T#@tr^}E!QreZ#!F>Sj*O5o6S zjR8-Zd|BQFU^ad81-~`yZ5&jc+6CYHR1!DjTD2pGRLcgD;kzLi-hT=&CzDG4q@^q) zmAKLFsX6r*&HVRVBxvKFy_mkRyl0Y(xll}2ai|~eqduT&c^!_u7$D2r9}vsu;}@-b z7><fr1|C;Bbi8;zc{%fyQcwwT->?Azanj$cpAsjo#m-aWTI{wb|F{0;Wm0tQZ-#)5 zT6>rXdnsuX?dK5P=(vM$Z9fwwrQ3c+h~I5L8Co!3`~4K`yLKtqC}OQlg|V{zd}zUj z;OW|aZX>tO-bUKFb>THh?Pp@5{j^P%_VXjZ)Z;ds<o0tyH#BbhS#V&Y{VXJfQ->|K z2WY4LH2$+o`<dauOZzbs@Z0TXprp<p#!V)+N)bjgKcw8~tu4Ey<fSD1z4nvPU&96i zkvv{{oyB&z|0ja&QDotApZtihynF9<xxWKXocsR~Kioebp|kE&?R6K9U8yvzAlAxM z80J5GDED8-<8uE3if`|ELTtTs7RZr*%Qp=;(_14r9+6FN)`+J{(uBThx8EaaXF|6> z=lu={Ml7F%e<h?)_K?wiKud<>a9gACei?@LbKr&FhbG`z|5kX`zj3u^>7xIK{diYb z{@s$L{98w`-IF8<{*5ET@-8A=rT29_!atcWP7%K|UjG|juJ@bX`z6fEegG#v-u(P= z%K7{A#d45SRvE8fMv8b@pCN^m^@eUKWjwZVwpP??9D6Z_qG<n;cc#zD_%Ix&{o`>f z%4z@LdXJXh5sS|kzcD)7|DBzg=ee1;J@&u0e^R{Tfne^B(8-(xF2wIqLhVKpCK~@? z8j*b+5tcX1FU$+~<&6V(zcz7B!z(vFwpqT>0%Hxk0LK-U!=%~V4^ro#lnyBq_0Rav zDaIF4|0HsF$a;Y$*ly={O_(%VV?VgFJ$-#gTplV~B)=<rYk}S;*xvb%M1i*3B}7=h z7YLWrO#dLe)3a;&GNQV|VtFU>VWrJO2yVkC#r3uJi__bAF2!3gQp)SSOn|JyD{+tn z*(ssC?e>%8`FrKX-Wvn}Ddo*4kyGAw`({nhZWnY-xInA?CVsog|D<?%o&BC$WH-Xf zTt~3oGr7FubgN?#;g0;{5&16``4>O(UtszEhS&5yC;`@`S(N8~ywqPhBfpx5pi#>7 z(WBkUB=US<ROLAp$KLvr$n$w5W&J~OWuJ|s@?0PYWjCxYbf}|ur*=nIL@w-4KrsAS z2Y)h1<M5}&K3}0_a&id1*5wI(v$mJO8@2xfk4W?B?eR42cDANzw>Le~h49Yx!%q2m zjAYs#WJCiMM}ZZ7S_IqkNuJOr8AMp#>j+nVUWo^O8a36zq^R#W`G%)q_{iBGBII<D z<vWFN(|fYST7|=K5ES^(Zr{<3HZ2$B|5m8@m0c11pHr^iZtE;pv8HLaGrOf_e35yN zrS)+Oj(yn<sgL(aX=T2}FEafOj@HL>c&Lv;&=*Kn_c>V&BCGp}inINTzYFVx?N6vL zF)4KUFER6pY5h**Q_ol02dfwaot$EF8YRA7*vap~#3u9mb+#U)|0CEQ1-=BoA0~oH z>z*)M<h;sZdfV_RW8YDZdl$&Jj2dOAX!#cM$z^IeFZiGUSl-78>2_Z5i%|G<?xz)e z5xT+hK0<uJ^v)AJR^h`q$f!^1=BtOh_Ha5)-YndzfGRjAjrb}O$e$#5kp$v~x+LtB zHyyyW&V-s8WaT4Msw%Sy$9}y{s;V!z*#A;WvJD)qs(m357i~J)6^sJAGZegBWFB%p z$xw1+DEKMB4mqqBDLF0nrg_p8pf9`b?+tnmSRDk$SEJd}DmFi`2Y`;sm_@X`khEGE zvc}tsh=}(F!kuk_5grkG?=Zn5RWOk6%7Qm!nb@e&doa#L8sqKHIDjG7i95!O;kB`} zg5SLmQM)yqUuo(Q|H_PAm8K#JWfa$bXVm^vSloFtV(3=R|K2Lx`jTG+djpPgs|gQ{ zi>Jd{?8716w3D}O6YIU}r96+aAwxBO0^j~YvN+#1{Y{15ehIf*a;M*`EKnkO*pUi| z$x&S=+&+Fd1>?937Dzt{7-wztdzLPMCmewZtRK2HU_K=`J7RtkIPHh^&*|D;8*uEG zeiR`vpoH~Leks=eI9jasTeQ83{!}6GL)&8Tbj1F|j}+!(c0VYL2tgCT@xt_T3$y;A z{~ix?lZS^%)?FUt327ggk%uWn+s}a}ArHT@zYy_WMz|vnhf`MMVSwNfdFaJA^6)gY z7&Y(l%WV%iNSQ1TWqxxhWFJGtKTDKT@sc8xF2~;fiErpu^M!xo@(iivZM#`&eKWtX zrxi!p^93Gi{RpY`V<0iWlW$48_3?RKUHEHZ)zi>To~vQiGbEHhNx1bvr{3Sf?T$d} zi+UFtjaoUt=ByrRxP8(o90F~iv&MqsGUF^;E8X*{5wP9Lu5mJ9{8y{>y&A_}{DahY ze<)!5$1eps3`Yx;fyeDH+4-gagC_sGTH!fvg@5hUQf#0U-%RW*#j$QFw#}u&KS&xd z#os5%VZY^N5+v*26Tw9lKSHp*oP-JedngeR@12B86|1$9QG8InI`25hDNYY5&X289 zoH4{&nF?cNpTmb1=QKQSasDdBxraPls|9)&+2v2?y}L0JET2a*vI=|R$Xt5oO)j#n zcwB`jcDU?eAT!ruLOH%-8SigIH!fgPhPu8NE-fUT{0RXb(ulkA0U;!I3p{ns<IHg2 z{{_66fN!^(fs?!*#%;ad9S?T)XX61)=I2JXGT`Sq1lzZfB*D*>L`1yD5uV`Z&Ko=V zxg?_E@dl3l*cRbu3ZUFI7Z@vhFOKqa3!Y?to~Xt6ukv^0=WB|ja6XRk^VvAEe+V+C zgHe8Nx?lL&Y$tKl9q+@>Ybb!r&ud8+=jUsr5q{o*+l8OQ9eCkqK?1(ru2y)?v*G>@ zKYIh3%+LGT+JK*XZ-Af2kR-v+JBWyQzaTup&u96F%jd24C_gK3>~mwn&sT}HG8M+k zet{3==il)p^K;{U{|EWJLNc-nD{+LMW8=t13$i4BJ_s^%ZM~hE#87wq#Qc{6xcoen zba8%OK^oy_z7moopEjEmzzaWP*T>=8?V$?aZnw`#;%7Jgz7Y7|)9=GT33DGK+FnWe zgnmDqh=_MG;a&85vEYg8_oCr%ya>^be#dwSJ^lO-<HkcA`Rf>S4NBhbJ+x<vcLv6w zoRjjFcK~=S-=Fv`nxROFW-OAu1!|;d#tSdwL*&zmHobeU6P7yqeH0{iSI>@o!WY%= zOWE(hFZz8M3FS|CnMp!%Kb`&G2(&(mhHL(gelHrXBp9{Fq8kF%Q*yfBK6?m{v*s_A zA;~O*aCsT~B+(sCeMU1=t5o22Ohw?n+AIQh1{7GC!}z5%r{So;<>N`#?>9q}zpH-V z$6f`c5dGfq*UnO$1*DY1!0o2rlg`t8ND7_HbU9FS4k)SVH;J^rnU!cpG5bU!BHjlG zcWU}cVOi9BsbG<szF)rM+GGdWV<Mnq3<f`kT?2?ne;KZx`Zz}dd?oxcR>>9>{2)2$ zN|Cd(&^aEak$fXdnSGs-uA!tp(#fBsyNq<=4)~+=45G~`!tYEA$G%~c@cZLyMXHwZ z3%^(4D8CotaoePhpFH4n2GLhieL}=+He_J8jGyKJ>=42EkEp}$Cvdy(-#PYI=uR&u zL9)8~mJI~>TuQKgI|&o&YL)IR3?y8qk4NKiyH($|YlPPah0dlp?@m@JdJ)I|+jml` zc4Dneg|V`K=0i*MEgn~jPN!0wAx~@oIjTHbdcZfb#S=g2JGHnIYFnL*LaUr|Znx(^ z8O2{n@$Um`y!b6MwfHXPNBCkMVfiWnF}+vu3zM%FDmXHE8=Q0>pLhE6<o$wSrvv5k zXuI9OJ_8Ioo-lhXND~ZtP9w7S{Dl&Fdl2nu^ls<F13^0NTP>bwVLf3S8NK&zVbq|R zIIThUKVlqIv9JDCIMxV+mARN-NNm7Sj=hElj_Jb2AdpH+`o*G*R`xUjWsGxcqjTGc zj1u%7=+Ju?AojC>C+Kb8D|uZ?xK`)|f}`McqxNQa@n7sWW^WPd$?}%>5IQUSAScUk zl#5r}s--A*t;MEEPB7A%-Z4k+@5{B=t#GQPQixj_I?SH_EEj<qy-Nv@zeaC^>sy#o zgoax1(O%b(&0ypkS-J$?*spKf+hH$efEpR}GT^+rnEeWFqxZoCn%S-|bgd&J?m3{? z=l4pTS4m#d7_Xtgvfi@9xp#53n@S4x5|HACabseNj`ROSo8A%pl4Bu`9<3!R#+4ME zyY^FjVT&RinuO~L2bVjdVQVJVpOB={tgJUA$ycQC>#Jc1_6w*~hZ8?GE2T4J^9WH{ zM7&d<(d-CXnzO>@hG6u%y#G*D9rh45W8m|{K-o)8w}$1Y?jb}(ypsq=6#ps?`0Rhq z66Ifq25MZWY;L;~HXp!<p7s&6dURkj$|%_-H|K)fnq#_pDoHKhAbw%Ri8v~cN8+Jl zLr=0^Otw7vx=-FZboSmIOTV(R_>GYA1N$oYMNe+M%Bg-yH;i=R{x-u+AFi{jf5ird z6pXvRiT!)Kb-F-$-z0JDb1L8u`DytlMX&LcR&Xrp{gV3cFeYzSQEV}nywQH<DY=R! zFMVMbxZ<OCvWPi1dR0!FeL681YN)L%;WT}^5!m53PtG;3n-nw`N%AhG3NTB)$nCN8 zZM7V$dImtzNuFTEHtD<SH+lW$Cq~{5a@V$CZn5(<Z+)PUSAeh2Tkl_xLn5&b5woxV z(96i+YO!D+PB#|`wxIcjB#m3S7Gsc|`+SM~Ct&fKthhd4%-?hR9V3kBQ<7*t`+0qf zf|kE17(Kixz?&FqB19IJxDWABrFm<b@!s;rk?A55JB*3-1W)OKu@5xNsm6OB<=5Nh z``(nohl!usvug4wxAEvZ_AltHIQZK`tOj#_cVw1*D;3o^5<8%>gtg^L5s7f7z4-V8 zsCuLJEy>TkHC2_)LV2;sPJKcRB#qTM)C9Lsb9e)*m)uG@)_A)|rFY-d%E<0tZ#&Fy zytl&k2p#+SQ>a<8{NRjNjQ2*SRu;5{&T1UlON!u5R#U8E$Es3b##Olk)tC=?Qlngw z;2l)^EuN+jV>5c#F?JW|T>ZcsPkrSm$*ZxeB#$|^#Y478gHc<^H<9Ai<&uJ1(<b++ zJpI;GW9Csr#biQVImejg6SqKu<#h{vh$u-$yWMw{H32cMKEcT6;e&vYUz1x!5T2R2 zQt3n2S?7<SW*zhYqp8HSOZi_Pz-WrxEU6tKH?z1zT=2!zZ>{2MhOVovn*wL3_%%}M zG)i62FnM&)x_F{7|0naCpl3(bX(^!*0c@gO;hdW3Yaeo)Q%f%hG9Uq3o|?i<svNB^ z`w|}am78?e5l<$P-IBZiVHF28yYZsO$d7zVNj)YxpVO_(uP11C)z^M4-^t}XCzml! zE(=p3(aEOmA5J!3Qjs8cvU&EWfRUBC>@Hu5b@8NPo^xYabT^!F>#NjyMi@5Q+*NG; zQd0kY+Gx+OeydlmT+Cal46H2Xxfk=BfNaOUP6*cgB}J)ccR@d6*1Zy9ejTjej6Ir( z=~$k>EsdWk=>g+}<;HY5m*O|_R`S*OlX2NcM&5Q~`hT3jW&%Dp^7d5yIVCiTx&7so zvksYGndg*KtQ0NpnPT+a<w$)Q1#KMFi_jF~pxe@Hk6YZ=1RW$(zDT2|pnZxVMRzEk zeJ(Oo!lOPy{%jepiyD|<<f*je#ib?Bkrr+Wi$FPT$$8Z}e*RSoAU5-jX>t+;Uq>u} zXAX_HD2>XKW=yX3i+hpsi$@fEVa%S%HL%#f`H}jyBMZ18C041Nc8BsPPOtPEH-5#< zqakX;NaRh*$hE2^_(w=V^?FsFaZo7tWZNGF!$Dw(w@rDsOWUT1fV9o!f!skU_Mrmz zEBSVT(>MXL+h-CVCf?rmHa>YU%HAZtf8lf1GbYeK-8r5`^A0u#+5hS%uS8Y}LGHb5 z7%k(ZLuAYE2kCgOqO)m?$Ud?BsX@A-tNjax%Lmb)HhLW)UD#7<k&=pQ|M?NsVOPE* z7R*>$dHHqTv2K4yAHaPQzm@sJWg`7zo!8fbcW9kh&!XSpjwp9S(|Gx^-{~i^j$h9i zY|A$vkl?(=w0q!^m=+YZ=&bib1d1!q{?)=F99G{L$15JU_rana7Y|tcM&Y0C4^BP< zjZZ_|67<-C;VGdZ-0u`ZR)@3f<Bk#W3=dX&j2^pa#&AbGr4sBL{;mbeSEYQ72$H+* zXh-I&9t^K2s_6(VY5m&eXWV*S(Tq^nx|GTtWRHg2gr04EA#ooiK`)E5N^;rVzT`X; z{XK7DmTSApux}oqgx|mmpA(p+FE`%%7&B5mcnZa{f3U~M3C4S$F7!|c&zLkvpFHuf z6ej$y|DsW#oW9`h+#zyd?nL|Pdy@!_NoVHp*S6kr%5CZve*AnL^nWCG^_CR#1lgY! z^Z=p1ipS=Y3!(M1Kr}FU<v?-c>7%Zh{55u(C-Sk4su|ud^s(hze5uq-sBlKVPK~>1 zo|66=PcUiQ(xx(_Ja>?`fL+`m?&Rt$ZJ!tBDt9<4Hwyi2x4!1m|Nff}{ohyZ^@KNS zA(FbIF7`JTrl6VacN%qsb}-_nlU==?1Ttqn#Jpt~^y(<o|1OG}=D{-pgMR)W2A!`k zL}vin4*+}Q)Wj5{-F}FOh<6t-9{b)q4O(ILIzD7JR67kEv0`#oe%UWzGTU5ksR1cQ zXZz>3(c|hlG%NB1poE<yVN(YsR^lI!-5MGQ8#ECyt|U7&ZEC2>Zv>XQmZ~D689NaU zg!E1u4MxpUzO6T;{mY|$G7U_u6<|TFitvE-$h$atab9d|h+260B~+xldE)R#86&H# zPq7mMFM0`IPMwm(i+gp8<cD$Ybn9C@L2L=sMqxpxC9aFKlhmz-BuiX=cAoCV3WMg- z-4xfuU}8Yd_4Gfq#g%z8FsAn=eoL)E6LAtZfNzBXva#^O<UZWNe}a<ApZnZlQG6QN zZoj`(%XKno?aP7HrX~e`oe1{-2-j)k0eG}rKY^HXJuT>X4pI58<?3b;?Ta$8h$g#B z6at$se45^6{IWu`949{I)pZ<Zaj9gURD-pDmdOD7$Jy83DzngA^HiRg$I!1~pD8O? z@O5~*<-HYDmhW1{n|&jW&S5T-4BW#4Vt<gzO_u-IgLk{@5kM!~|GEf4aPolzS#Usx zhvP*$IR6e#`I9N<#iSQE8#h)%Kb2@tq+83BOVUlI1f=`)5+|M1hQN!v=`PY;E%Ctr z+l3dq1;9V!!izv|1+F{o&k>erzn%8S9)pUQm_Jkc34d0Ig?e&P8!b!>f4ojunc0S8 zuU;+ndor1EDLx+u2^x%}{L9886N{SH1nZmpkor|8_3M&)uBP5OR#JOgaj4Zc98LWV z9tPb;&Eb-Fe|{45I{kT(*otkwImvMBCw#;W$IAQU37fIUIC?K(H};VS(0>WLu|-aY zT9mLGdpFU)Yd2OQ_5A|NQ)-=`E`|k$2gP`1YZjA|{<jrY7IvhBP7R{E_rpMDWxzaa zH2MYq>dIm>OCCz>iPvxTkwp)$Jf-MSL$FoCXWnlgZLSH{|2U*X5c)HI3ZJZ~g7r3c zxKjmHS{zS$iCF3^b}%ifG!N~>BcvG9Zx=~`5Y0u?_9Q>Qsn0d88oCqj(AEZBZ|M4d z?C_xVXs&3+fc0+f6Y9R0`>MKc<}ScxN=a9j{IEfm#ImK@@E@kowPG0btG{BeHeg<r zn-eqwYeftnYLe;o7eiN;n05BJ)8+PhAor+BPP?90S-UlKw%9^+@2v-N**Cpj=4BV< z9tReNgn=2?=MD}qpg4hQr|ZOKq|v7*?U6?S;`h4z?zqT#XrZ`fYbZ;T`4{Xj^hsjr zICG)GUhs)GC2lWF*E_LvE2W@dLFxdo9L(JASR5};CgqWmIImxlJ@%eIPAbrh)A$hN zPUd8x#k0qd&wo>#Y=N$FPNjK%T9**>{Pb?$y}Es;CV#6vK68cHTxu?<%%~5aA%cP} za^JXXeQ1h$`_gZ{(#;*>1_|*&4dOXQ%Dm9akGTS7>RU%>W*$@9zmj(#!f8WSwr;8{ z9G@0Gu(Ep3zSQsm3+aSXTAM{~Dho>v#VTxN;mscGJk$l!>qEU3rV|b5p=qI)Dhr$Y zg?lX&lcj{D%ndzKSvbWjpnUes37;whr4tuo_c|puS(RpdJmLG`8rTh)|J*2)8#VHH z^w5<t(Qfdode442;Q~ob`&fs$a_)$@35I+wHHP9GsR*mUow88oS9+kp(F3IKofFQN z^qjU{hjr+v?=Cle+h=b2t4ZIw%+Z6@d(v~ly%%PJhD1iKykcEhcyUI!pWkd+D8j`{ zw|g-uvODV*%qkLVyuI3Zdqu!3#g0Vw@zQ<ukL)&#=`RsSZU>TE0Ob)(*rC-kMzPz8 z9=cK{@ekJ5Z%B>(h3|zJnM#RWhEFH==P5{Rw8YSFro={y4|6stu>ySBp2sHbkPR{3 z=856AH<%y$<*|kh<`!N+D>dJ@9~y|X3#V#H%UdMQD}2WMgJlF(^Q;WM=J%-DlM~J{ z=8t7!vfRT*=%*1m;rP3<#{7|lFY%1X3H@BNI&__|W{!+l0vX$!M{ViO{Ys^|g{<uh z=>sCW_cNyFLoaOj=`Sekx&#lfCxr~UYgsZ?jXjCg4XL4*Acg&i8I`PWt|q%$s_tQt zk7@u)%w?m+{7xoWOTRei0}`3bTK^R9PyJPQ59-JXMlb6yYA=RoLGvqKeGA+E<;8q7 zE}^D7cvZM>99|%?0e|bMDCCl8=`ctg<*6#j32!cmUgS-wIxQ#sWeF!}%&$uF+XUF& zvQn~aBhfAISI#Mo4jYHM7`n66+$Hr<Y8@-foDZ^A#X2J-q5<hO?78b5;r>x70R9Fe zjak9SzWu`=1*64G^>%x13ztMEdqzjE8njQ&IT`aur_`(rP2i-}v3%Pn(Q=LXz54sj z<@T}o{RPXzjM10S9Osv23+Po<Bl@S9Uxz<2*TTj>2j{h>GajOY4V?&AyeT>19h5|h z<q^8_>+Jp%rBsgxB~^qo-z+KkHS`@sdYpaR#C#0yv_9is9vDP1Wc2<ja=2J!a|b@g z3Mtf^{aLeCRcwrev9wZR-F-^B3|%I#66RqkbBS?J52`}Bvqx&O0*lC{(P9tuWv2x5 zztYMm$zL1v{9@m}0)s4{fJ;`Zvv0i0mx6d2HDhF~aTh=E2Rk)tP*4V0{WOyn)_3hp z@ka07kN2|M?VPAmMMDTR1zEPpDUlb?Si!6>je1`ItNk@Ald-44NI^DBK&D%e=}y>A z32UcwLk?rNI$^I!*d{kjUbH6dObKgt!}LY#Xy#QCw%83j)qxu!Vb8f?M-#S?=QG%E zn;9q6s5u%g(Ld%Cn;YJdNQYX@V2Dt=lZA_<37s=u8WOa4AoC7bzMGcAkOEuZu^e8o zke7Dqw+yMwXbK-x8QH5QhpP9w7Kg&O$TLN9uC`Z&sO0T-@2|8oIVdS;@0Su3-cJo! zx5_(4ao`Oa6WZ*KhxbTEReL6d3aj>Dgk0=L46Uo$gZb{Y+6J`oFEMvxfjl(5GScn| z_pFR`ctXo6tJ~>=4z8^3pbs+Cu6S!xyuA`B9TB}s`^_xhswpS6v<*1@(7y?nj!121 z6GTV!AVE{SfbvO4bOhS#um#!=O@g(Ky>7A39`7$Y=x@dWgcZD<AvB4v@Jfdn_0*Fp zQ8~R7r$^sEj15kt*U^LuSCFAho_+XrSo79(J7@g~BBVb8{{X>{Jo|pQ!ohz<9RGN* zwLY7mhyEyYf%Hc;*!Gs^=P3~Vk<Z+tW1Yyxy>xQY8U33$<L#Bk+n?JH=F-d8M|KZ3 zX5T_+WcQK0H!R0ZQ;JxkUmy)OxMqE@w#leHiFhX}tw<VmQ+QOQeUMRm8sU!Ra%si! z@<w*k@UC%ChWA%v>9HaD+25#@_sSJ_EL(hO<PsB$#!2!i?-OW;xzgT#G<_xLbPZl+ zTWB6cgwl;q3+?BwJ5jW6Q$zWc)mu^yV3cyy?cWC%90^{*9W<V5GVZSva|JNV8Bb{T zN$*c6Hls%RJ-j#d4j&P{=U5t=jC*d|5A2_%hNn1*-2T7)vz+je(R(_+QJ_O_+lc=? zC&BF(wSMBRdx0#|2wj15qA&DU95HG?)yd_Ttnl$*K4_vd`pLj;$Y@eB=LDkn{P?rW zCCrgQ#B>s`7{u60ioPdR_;KV4SmBh1f}iIhh5;JZ`IpFeD1Uzk?_k_G-h_TuBnLJD z;pp+-;pb5Y+`a=eX$Rac<Gl5}0;Y+6OO-_A=RIISby3RjB<@l#E??<S67@IqD5<}r zNJY`&^_LXiN8>43ay&Wi$b@dCtCVJ0cVtuY_%<nhGxZ#?k72Zxgd!>aHHqJSTv8-- zCdJ>U>5qlSa4t?_Qar~KNq_7graxcf^SZ{HO;neoP6~UwvMVKs*H?0U`tQUi<-a{g z%9q-eK2+o#y(f{UEC2d^d$;dvx_#f$?fbUQZ+Cr|c^;2Z{gn=ZlP`>BeiG&E^b4)L z0YP{8arltR$Udh-*ynZ#My*_&(8nL<UXGHA&iR4wR_A@@I^KV1Vg;S|dQ~`(0G*$? zawo6I^dC?6cG!oyo_K8a-m*iz2ZYu{BiY~Y`8l%wx6leX@%UR|zrzTAw|ej4;=UP- z@)82Qb&%z5TxN!LdbmT@NAx9=L@xE;W*KiU%UBY-9BtXTKitJ$NfGu+rjKH+!FdeW zwO5j{PFJvQA;SL0UlZHpF}v*xS*1LmaJ5$=`!Wnf4?{hRQLakt1jp@_+!41|Qd019 z*s)jA`ahKQ<$6#vGaM3sO2>Zm6?wB@U$HDY{md^bpY1rh>|x_^5A>AD0Cxz)==^aA zb!7A@Mwpk%G6cK5GD3#2MG(Yn)%*gxDUO-d93!9XS|5$eANI0t5QfCRWoR{ta?xc! z%39GKWGR1=UH!GXR%DyFt<zn-mNc6Pa^j!_cwKCC?3sPkqO3cWQ2R=f>EfS^ci$o+ z;ysvfW!+~E>%Ku~y4o`{W<MfPNjAbaskN7v#=*Ubb=|o){$=4_T|l@upI^AQ2uHd1 zJRX;OcS><~T*DIG+ZW|B2`bG!nQ2fU_Y{6hb5BEgI&!Tqo5+x%C#Drwgi?9fMP|am zIFI#xaOJOK#g?@PT~~7MzH0vff90i+B>rOmlETa6N>`0J{{><4Cq!KaQQ{83jg2Q^ zH~z*(cH!@hYn8vB6KbcDB*EW{iHLaT6Q0c9skE>E8-GXh#;Kk4UU&ZPdr|m10koEH zEWhygQXJ*)*?5xqd;ect{wh;X5zY=*F8@F0?*a@nCh_;JGdubFTcyL_Ww^h`UlZ6Q z`RxrR7Ugdz)P9mA3I6`_necZk;mQ2%f7$<)zgx$`-&YrR=kH@L2!B&RYx#EimA`v& zl)qc>B=h$~=u!D~`0KD%xIE(jwfvS*_$2;b3}JEk{m0b~f3L=M_?x`mAo}%KpdAi> zD7xmwPnE+yLhT|Fxg3t!4-gUY{#+y+-fGPFSsF+*d-0{L3j8QCT!DH$NzFmE8M9|e zY{Fvqw>;$~4++e;So$F5ZT6^lyL0;F=Y`V`f!^}X<d@~;`*4)gRe0cZI%TYxDVUkr zEWN5z*S1I_&$0jckaRPlVcoPYO+6sAlCRpk>#llDji>0_QM_ak@1~M9cW3{E{ut6# zf5hyypE&%N6DP9%e@2}D>=!_$kh`e@{>!!bB>f@wCZ7W~Nxlbz3HkmTp>_jF67uaM zBI3P`aFy?A%Kc$y&}VhkAHVm0L!XO$&N);2<9B2WU?^BD-?99{<bgQK<UiqY#rY(m zxPt6EPt3X|4vX}Cf+7rXEpYprWc!9qYlIKsdU(+M=T06R3MRq0;mZHQSUIQ5c^by1 z>`y*OTII>mt#scJdX`{x{92ahCdwkf0b~M;LIBy1gHc%|5j)tS&}4i>yyp<_vA-q^ z;IjnymSo^%MDYHD0J-uJ-)BnqEDIL=B=>4Fhz-#97izoj!Iv^>2j6nSNX79EkBB4Z z-$2e`nytpHSEw4sv2jZL=9glE_hN^T|B$vcS~y*_`Nk`fh##i(JVdl-v~{X9qX5sO z&3+kVC6UH-&U^bkyl1d0j6K;cG^N4|d@26-kf#oN&jP8`a*|q^7YKf9*d;hh>nJ?z zyUCTU+e)c|S>zcg;Ot2#i<PH>R-;xn!1NHZ<vmnT_zZrLi@tFbJp_ewlR)45IR_M7 z<w6bG$Hyxy9YTGP-)xNi1=Mq-W)?W7AZza=0NHqJgd-b5&~FoDe++vTxH0D#bh|x6 z;luX<Yr3!^Kh401`>?>?A-KR@?&6l!Sm4Jc;8~AW_!j$Gfxn!1U2pBWf07rl24s*1 zvD-361Z~(sm!Q!&iT9~!xjs_8miL>}fiUX>1)Gd$mIPINY8^f&0RQxTw4tjz*CTls zPTqqE6l@IrDNv9X-o`b&P#<tSA~-5mH>S;j@{ZcAlX`PrWSRyp3z!4%37~<tu@<Cv z(To|nWP^6TjDCqjQ=_fPDgKU2()|TX?+%wlmN^2kTx`mI7Z9!1ZvQl&#<y<L85C$Z zSQkq!+!2^^5qb9~prqmh=;XaL2rOteYTiJ!A|vK>gtwZ!?)z0N6L_6}b)Fh<E4B*A z6kQaCgdwee516gAsrOIgI;{DXzu<?dX9uEJdrB%k3D$2+wGX&cS6Q&*RFU}#Fo>(^ zeGE_jDqaJeA=y`~<~2V#!ARrf#~%K)oS7U@4Umc=8|HGk0h7)&UhkCz$2bWBb?9*| zS9}P^H_XwO-G;72?I+GV2<5RpZ|~)OlH~qw0;XXs4oI0xYU?KL4_`n{(>REv6XIjY z#5jG}2K1)+71t}AH%6Sf19u)wXx0(%GVWID8zTX8BW?1zb7|GrzlGJ67W)~5AIv8N zE4<GaNG4NqsqVkwWs}C4f7MeD^`Xqjh<iK2+j&vuN>(*gnJtvVNOD9;T>FvR<Rpnv zTSomjlLstC+i$Vk5Gy9g<iO<EJhPqx%>YR@NLm*rt=A;(hZX*r%=MHJ(((?{h5aXH zcGP4(5%xuwC26C75fSmG6P~!y^vQ5ibK?#>MZS5XrKM#49ml@=P0>DI6KnYt#>#Ht zL$%KeJg(}<LrKEr9Jn0IAgjdqn**&h=}H7&x|AX)r2RWH&JU#hgF^m9$2OPiSSF6< zem>*(37x~cG~#i<yW4{CQhxD)mU1L9_Kl=TbQtwSSl*)v*8>lSNm3Txvnb)_Q>C;A z88uPKJDT}Qsg&6FIF5bq8<Ok?Ags)d0%v7^kE1323=f;d#|gPd34LsP??Eh_9nj<x zz)S|Kq+oO;oEvVp=Ryqr<&^nBkjS4P`RY<Fv;7Qi>ua=6%XcHuywGuLp6UGyUb4SN za$U{-7zthk(CBlDlNGxh&K^zY`UZKh!^`_@PJY7U0ZIAY;N~|>@_U>7lE*7($M#d) zzF7`OQ*o2uSLSXe*zQ9bm$}>RtBA0?%L!NJF2*Cw6%%o$__<|r5sV#sjxu%>jy?2s zN%8=(R;I#O*|Ydi#!ki)KS1K1@38Cthd#GM?V=<a{u0Y~E}+f>073QX0|ga>IqguS z-<O^UukvK9TLps3YPHwT0-f0Jm$~JOY>9mvezx^l)i>~q4fO5y&#Sb4R=}@chB@^k zC<;L#t{1oU4bh*#u25L#T?*irx$sgwnZSwr={WkNGiblv`1>%h+BjYQW`l|*I*nla zHPR&bn?{7?tt4Fedl{ZMfAhuf@^@#6@^>?i-TbN~If+=>yueu5gK?C<*?7A1_X_g+ z9sd4!a-6?5KBhSpgLzYdH%$kv*O*TJ=78Y;%HO#w6a0M;H1a2W{i@92?=!dw{$8W7 z3I1N~!V6zt0#4j8?(gxp0N7;yE?%MhJ%(WWe9|QN`!o@jw<qDs-``H^<nK!HyZn79 zsQjIVW8eIWBw0hOm8mdR_D6gue;4EF&R-AtxrUFD<#!gK!d2S$bi9bN@Rv6$236_j zr6<Sbx9$@7>*tz93hRX|M*r$c@bi@!+rrPZJ|p@xF25&J9{eJ|!$1?~?_^L2pNnx5 z{7qNb1b@9Qyzq52aN_!KmA{GpW!Tpzc4h6AoI{jx0>Spqu}Q2gAp#qagez;G#1j|Y z8^sT6#h%pZXDMrs$FUE7S&~d5*2+{EEBjVHl(kplamTn92x-rg*YDYrIt4iFpYUtE zeJSgyg+nEwGqNoam3T7=b!02OR9rtxd)~cVc_;Ry+J|=PW<T(fVFqp&dr~VLczKU& zWdfe}G8DeuZn+rVmDBd6emeR07@*0bc@$XSpGB}epCk#<%pd~$FN7=quEZn!lYPIz z;&<%noQ2o)7E6G2X%59b6EDTpX-nLm&J^%=u@NMlT|==l{&gJtA1_K?9YciizwnFB z*n^{tkKu6{e<*yw49f}K(Mf;K{r6?cKe4B?kTmiqeDf%@q-(qg4lY-HEATTEK4DL% zHj$>?{t!s1s|VFhn1bn?pC{>4_BMx=kT#jAA1+m<o<gvF1vnB+eUk{wdobb3)J#0W zR0acuEhh+5Pd93cJTfL9@Nhu*Gw2Z<jtI!5pW9!M!~(|)A|DC3Rk#L6+0=lC(;%!% zKzAm2%AjD=D8a!}rL%OgxmJgZXVP6K&PX}y@U&TsmTb2}(1(8!JPd=-;bFVI_(F#t zwYbt_#S6O~x{n0T{&I;HxLEuX0ZJ5j2@#fe0O4BT!|_Og521hyMrr}y5l711q!p(3 z8l%rks%?Ws9yaldJZ!<yg0|p^>$qZAC3T!lmfXe9McNtiF<vjVWTEJ~A*T0vz?oh@ zu2=>=jiW~hb$uD0etQ8W6AqQi!L(A{NO-SCS7>T^7%D#1-)`?|&=OXFz@9~-L<u(# z!TT44YY9)o6FWki9duZ}WB9ff$r(A*djx)p(jUjw2$u-;mxGR{NIO^)(np-&udK6O z1`?^0^<*I5qvgBN`_-U$y~OMRLOrF}dOmG^m}XkzR@!#^-<mG`57IoBNYi3(2Uc=j zh}$~D9Un?QliYmdKBLrsQkunXnp#}={4T@)q`|+8M|c;W(V{0w*j7@9>;o<xj)duZ z<T(sB>|0T>aaEAC|ElNhuF-iz!F_cUA<PtV=`|c+bm~*N?Y!5u{aU?ykZHala0w{q z<sOd7P?s{RabNDKcdnM$t^dP?hz~&K@TXHB&KlUY=^iM1GgjtZ1l!M!Nvh{|wjH?t zO1ReZ1$ab~C!-IK5I_3xX3KXfUTcw1W_nMMU@LnF4t=TG=?Q_c)5Kn<KB3L6mpb^F zOz?}Ho?niS*K><qNHVE2Z<pl4_h{ywMbeCXf5ovc{+H1BHYs`Yi(hho9Y@>EKk>MF z^gzKCJ1=f$?>bk|Zg(=5d*PD+mOlZk15n%<xbgcWs{f?YmR8BVw239=2j&_s6>_$B z#vB@D!TFPnS<~?Zt?DZ9NSm8+yL?xyX8xWQ^fUzuxS@9yK_wM77a+M;bxnG4&C2lQ z+^c#tSCj$QkLrxUYmG<h{6=v-N6Bi2ah{9lr*q|Oh%tD5Qq*A@)u$$RJyF2i!2PT~ zFDf4S;>s3Zl1#ClP@^%%^t}$W*P<KZqLvd3tmBEpYIf6ixv-bVVI^2$lku)6(3rl+ zg*_<_E5QmYp1|<YDMroP_$=?Hd{j~mcl1Q>!={=Exc<d*MGC^-R5}AQMmq|J<r@NL zYC-VK)zTV$w}biOUdBP;G<$WWPULHj152lT@$6h4)kHI`x^%p56gqmp(J3c{#E+ji z?St_363AcdJj8=<DWm-9-7E+Wy#N7EJ8T?$b=sW+!^b5^GX{@Nzw=MwLpw<vd~vTk z_cv-ns-rkp?fo&2g`LHhP)gBl2fE>MJaVA@^7j4pEaX68$1c>7J@B4=Sf(IOPu6@# z5YLqfi;S9PK4OQv>HUkxx)|#SZhbZ0-jmC-7wzTnSKf4R$}3mYxW~(NHBKtCQwrfP zDhC4e2t(wm8vD#es!N8;HMIZ?zdpCro;x<_icO5$IBx%wG(Nb-{LJ#DP+HmurnO7u zmZnkD3MWe{YI0}bQp#B(hb7jddYhB$O5UJnEw(2U=QY^n$l)lVQL_fPf|FP`9?5De z_fhyPt#~oF4p+|@1*7Nm3YuF=>NllE-qqk9rN&5mv}xOU_pxMV-qp|1rQ_g}{mfO) zs?TJScd`H_%4I#d*CwZAY5Kt^o9v=gB@xVsE7i?&yj-c|oB)e&E%pk&&|z|*smQ+T z;v~kj9%ZlFw!aE@Iu&J)uhPp#M(rLLru}v2r7qn9n3K4#Jcb2;XlC}AtdV_ck7bxB z#{#9~bCGX3@Fwq}4e|4CN7UOJsCRN8S+<%_;|)+9H*L31V0+EE#ck9aPcn)A)03Qy zTyUV2k3*+^RH%mmP`mxWd<mEHwPND<tOIK~py1mq@kW3{a;*OYfB`J-7o*gjg;^jz z0K!QoFdsQEIWCMGoCoGrh3O$5z&!839O=S{7y>h=3(PbJ<|u^;T}6DTOMImh&ml|c zU;@OKX}lb-mOMr|@y9svxx}BT@m@Fn7$+XhDP^ghF2RwdW1KZg6hx7780N;g3X>N| zKl2qws$J%;elEe>+NY>a4qQ-SFEX9tpf93huJUKZT7B*~!@19xRk%NSh7Jo9?2pNZ zdB}U3g$e7VycZk+EwP&r7I!=s^^Q}N^&7G>IMm+I%8BCuOUrsc(#4krx*r{MB~~CM zeaTQxLOFjrzR0T#8dJDyAlv!osuGSm?pj-HuF6>9uii*bQ|s;ifsCfYl$5rq#&oe? zQCVV4sT*xB37B<UzW_R5ejUiDtKRHFXSBJ%ivjjWt5Z_4>M~aF&Mcoi$QQsA(%vJ$ z8u>OgV~Ibb&8T@%Vlt4M_ay}<;3cn`QxM8(9(@+S+&wnic5s=w=r5cI&u=mt>i6_5 z?CAKo$JBgi?jOpaS6Ug_v-Ix6D9??}JB;xS_KU-5&AU#P)|t10aY1A+_pqgZiR?`^ zYGj|3p~}%ajPlF_!7A<+4&b)-N$5W?t=wUhtsuRexMrn5>!0MIkwVN8z$1Hmguams zTI2RtYROUSK|tmJ!nL<M-j$E11pVuY@s<QllAy<(`V<P}=(c1hapm|4TcPINp<il> zN^0O#G<RC68z?{(<A$7IMw1kJMa;QTl@e+7IE)JoP_9tg=>^md*G*PlEhw{kt&Qao z;L4xmB}b2iEz`3cz`6ur2lDI4i{#Ivk9pA095kCa0(FKQjpZD&xnh9SexZNxw4&Sc zsF!V1Z@Z#;139E*G#j-?BiJ%(kgdBkDV@{L7M?lyvonn8&rl9X@D6|klAiEqWBNVR zJwd)zN<~?7rEx-&G3|N{EtAw$qygm#-g!V6(^tFj_wywg5z~D8-v#L$LPl2*ux&LN zWAMW}R&kE2-*Ki<mR7gJ7}z9m6E*a>)jN!F4gB|Aqu=H0TTk!oZwg;~vh9r9pDU@T zLuqty{1}Yusi0hxqVF5NLDaWFr@Vpu2L2KMfgnHHLAHwT7XHV`poRZSNb5Bma`2aV z4@mgSz56BnW!@gHU(%DtChb?EXAP&=-k&t@@?}W<TFGyn^SuVxPx#*;6<5b5n$%YH z9xSqT7&B$Bw0>h>v(B^1l+kBgijvNQI@x9U<n(nC*@D(rrdf=`U*@|g;V<`%N%+fr zrLNy4dy9}w+Cc#gA1{6>&XRb2#+zE_cb0brr>RLNCo)s28*DlXvktPm6Ag&>7eHZS zmiJ3Mtq;vf+|Si^qrzKaE-689%}-0r22oxmTo@Bg_D!+5wEBAyVSn{^;+Xp~mK!yT z;E}BHA<o8h*$+1Bxkb9GC8HjdlhIz??r6oi#K_a5P1T$6Rrw2kHD*77&zQLidIJTk zjeF|x`0><i6wj_YO;{`Vi)+6NPxUX{%GMZFI%^B@asA_2?T^GfwX3J@^zT~Yq<ESX z%!zB|c9Gl}oYf!CJCYdw6nnN}?1?+9Q-6s~1CS!$D0P1$5-w6bzAnDe1~=&^Tsp$1 zvWMnhh#|U;`i%z&(&s@6zIgsqs^Y$>Kg7hck=y<_R`0KG@9VFQ$urS$8f(gdF!!LJ ztG8%)b-SQ8W=4@#fAxC2I4kHDQaG}!F-L36w-RGE`m5;%vQYA$`}3Q_16prP=u4O} z>74wveq^@JPY+TYO$!Q#LT3foAkJ^$R>_yOD<|dUuQfl;XbgW||6_mJ`{paOVWzbu z6<!7wQk$MSDsogb%`a%e3(dy-Z{nyTEldmpMoE3pC~1_->Sle$l5lqG^PT#DL*iRJ zE{b0MVv{a&x0GSZX18F`)1+YUNFn|CROX((#_W260%r3XJ9_UCX~eGKR6(<U&2E22 zeIR2wn^ggG6@7oAImUvC@$(`<l)r|n2UG73ME@?y&6a@q>6-5YX3LtbVwJ7cpRqS! ze!k{=bFUO8wvfbrw*sQuDYGjpRZ{*1f-jK2BC@;x)C-HF)rt@a-|An(&UU>Yl=a1? zy=GH!#(L9^oeM6Nn}r*Zw_<b6&~^Dx{w>vH)ZR%XY0O6IA+|&zQxwi`+C%FC`78Zv z*2j7|;bwdNh6BXNNJIz{BAouuvl4#RuAI6nwu0G6<(%pUM}BOP2O2$tg+NAwqpMV| z8)C-;7#F<S7SKuKI0hC=<Cy)eFn*ETSI}ZF^5N?$fiW!9Bp5VPtd6+xPNg|w8k;~a zPXBvjLrmTyrYieS9g<Xy0kdJv#*7BP*{rwARPub+bA(ezEolw0dr0N-tzNj+9_u4H zJMB7rVr@rwoYJUt^AdK4qY@Sf$*~E5Cbg*8eB#YLe!Yp21ea)Xu~SH(C5ZKtr0oun zhB&OBT}ycDBk`J;%|>@e%tOO<hlc8i%B0(X<6Cmf=IT8n+s14;pDJB@$JC5^qvln3 z4XbCAX&0Yozq5)M)XkvjoUarFOoW_%r(M<PZ0YU&<_c$UVA76v_Z=0Tnd+fP(fh8t zJR_xgqf|E+1}Toex(&T|M!>^(c|{4WqBNsU6k1)>pGwc+J&sHmc^I5UPn|kJ20N9; z;CkcU6QRnrN6l!1X+Vy|N#Bq{iXFyrt00jv*0{{w98;v<kue2V=BgbcXI)AmG#{cm z-*Y5==6c}i&(<zDpW82iX!W$#_Kti8h}*U@1_m*mT-gd#Egf4{<{}4}PIBBD5^cnl z|BMOBGXJF+JN~DV{Es_+2+Z<5;`r&q%Y1)J@;}h&moY_?F-!Jk!R#w=Vo>;HQpESE zn%WOFuADJ(c>~2P0x-+FzFf*7JQ<%DPf3<-gbV48I}SwUngz(D7g+@_uOS`dq^#^W z6;{VgUr6RJ>UTLAm&1Z`8R|&i4nE0TSs>~2B%etNJML4$2Zfw;AG+xn?d1ufl1}Rd zw=RiRp)Y&5lb$iexIrhYzl>p3Irz$j<}WnwWMRh7LQhZ@=2-X_+a*bZB6F40ypb}s z+?n)bG#E7^=P0QeJ8{9bcA+cT*@MVV60?`DO+y;Swy9H&PY8@201z`nLzpxKJNN&G zu5>`Ba_Fat0_~K{=<>7?P^iLnoaj6=I@2SKfi@z2T)=~v9=Cm=Xu?1~mtFg2NX70; z9<kXM0#Bg#DbnK(bKJ5<r2$b`9zXpM)cO}*cG5`3-U~G0c$wrR(VNWon3zHB#?LP2 z2djUW2cv|&90*~t12bHK+%f!?=1$=EBDK)<Xl|8o6Xq?EpN~tpVQPNO{m}ZYIVIJ< zNm~#5u{l&I<P8z>!IP(W@)S>=gMmO0VzNo{jQ8vAk*OlqlvohiT~fb|i+}t4&crle zZqH~Bjix(O1up}=-7=)QojW-7wL9tEjRzZQn!^YAovG99`-g{c<$j>F7pYjG_r`DF z<&xM0I1!)Ud4n7SjftTt<du=vq;oj4#7a!<s}Sa*GHTSsjp9ASs2$2WiefCLuQJ7^ z6E%>T0v_6;PBmlu(8k~+eMiR`BaP`l$v{Cqww+;2%VoKVb7u)<FQbZC<>_4CX5N{S z-%L-m#c!^Wj=5k-NbC^SUP}@&RV$bFA{#yacTv_U{`^m5$w&^)#^+N~&H&a12Fi+K zo_&2jEnugtFmhCnP^0E42nm>5>$mogZ1rgI*83guSl8IKOc)wISS0Z^PL3{kAJnp1 zP|plKhhdH1QTk9GFjq!vvP8_Q>2ur8V2CnnUXPS12jjV8{sF9kx4|XWF{)$I8AyZw zhI5+;?sr_3rZxUhi3q3+HL!Hi+%BJ3D%_A`t`>|bIXeQRsep>oj8*>VOxTmIT&Klu z$Z@XhK^+5+JYjj8R7mp<zvyniQQk)C@pL75`}i8yE@fyhIkFk|#+8y&Gx6hA3#8~8 zndW^?p+A>^9ZtOTF2IP+ZIcG}9Ml8CAiT``jQGL3Js$9AQslfO|J;P1%t$!X{dV#z z6P@}Q;Y}=3<~4w^OeT>!*{csiEk%+pZiP@(x1*Se7GG`RX^^0mN<X+npL{Gh+DZNq z)DAmIGb(Eb#gz6WRBb>vNixaWo2^iy?#E?j;3rbZLG_nmU~Ah}^p=eu*fQzCJ{4?D z!6S980`&*UhD=$@m-2r(|5x}UKY08ZKVZlPWd|LF2XGz~Oj6-L(W0e9-&dB>4m&GQ z82P@7l-$ZUL5=jWbOdGWY~^jh-6%P)XPH8#dpbs+U1ZGKM<eh@=cJ@ed=GVB`!1p_ zHFX|&f(IOBtmvMw)R_JxF$=`JQ@~TlHPAK@nhk!l!LI|9jU7m;-<j&jfN;;kzR2H^ z4LU3d<Ts0=E-`79)vH95MTXkf>>-EG%_dgbXo5k6sBELzjBYPkK-v@)Od%P11~hUC zwe-k3DSI8|T2JOu&Mo-8i-^Nd$2l(ZU-*d=PD>4FCraE>!h|3Emrgm$J6qF?6Q+Bu zgul!?J>f6+MiTxq?^M_C;3=2<8^9;&2VAFd<KuY<uNm8vBX#A#l&=-Oua)H?<vd+k ziP>co=XAQptWnDQam!;~y3)@16{|(JySggA5V#Qb2rH7+)Uw>JYASqqz_evO>Wo6s zEzXjkFuF#j@Tf1WhdUZ9!!~M9VJ@Q>As7aauZvYN6iDQeXIHxD1G#xdO@j!Hs?VWY z9rZran6{MBrizuQ=Sm>Z>{CVvv(M%jE6l2k4Fu;Lf3yk_sFNkndcG4$E+C0y*r+{% zN3uugW4oD55^_ftm@?O2D43l7fqup?zaZ9M&D5yv45nvBZ7WC;MOaKE+zX-f{aobc z=CV<{jQ+zdC<Hws$eH6gBYD(r$NO`NjA<oOJ{rZzH=QAkA`BErH_{L`829W#U&pT0 zAmm61$|}6cafgW;y99_N)*XMeQ!~Q4+P{&1mx__6UFe*q5)PeO_T#BFDeVr9*vCs7 zJD9+DDQZsRL&`s6Cv&nADcgGb)R;`r5<>=ug8yIRhS)@w|EZ9D+QmKz$M{g`nSKKF zK~wg4Xma_N<$H~fV4|@SJ>XwTa@L^f>WZ$-%8aOA2hOzFakM|tD_K4Xryc!9*m@BU z!fCg<@aVnCNiS_!_3xhGkvi9v<x6Q)qA^#*nrSG?vDK73b{{{aFI;!N;%$sA-swia zL5vWM{mM(cUlJXAlBllLU^oJ;m5~R0{FBkiBZB=p7$6mOG_ESQfZ0Zc<u|X{Ewf&+ zu33A;E=CsX6C;bIu}lJnu4KDR7RjihX-Cq|==R|mbNTkZ)v<jj`8B&^|Dq(F>(B#I zpb-`g64wuKT8i}K-gYhs5S-nD8}lN9oVep)_NTu{Te-xWDkWQ?A9+jc5Mmc&SFHPZ z)j8iV27bu27JCkCZZRI%mSgU%X7Q<GYW3c|N5-IaBn`TH?_DjaMYo^BAZ?c0w!8-+ z;{wx;QaKM8smuKcqiUpX=?UYyuTSp<!~@U=BZSWG(ULimw7_pn8=>f(RYm5v%yrk& z;2CdhTWzkE2{G;ZU{oSIEcNUA=3_SNTb6^qka|P{WW8GEuaZ?Cc4Z+Vv%wKGLI&0m z3xp`(J{RQ<M=a>ZoOv-J0jz!9+ml9a)Jl&g)!GBMc<9R7)qafWuwHfyyp(NCg4ui{ z1HJc56SnVW7%5{`X{D7$*5Dn+f!-o=-Ua!WEW^xHtdGQW?$0)kV%#OBE6BNL>}TZ1 z9XFTP$tbRGodkbHu(SRH)!sU%{(a(hXKU<f#gJmJVIxe6{geW2TPO7}RTD}ZE6aR9 z{R3e~R_5jEKaO?raqshA7O!DQo-TU*nHLM#mwWR(8gs?!g2V3%4J10w+up)O$~!|$ z7gB;z>9L_gYodGtTfeuj*&-6fqTQC0nb0vB$Zw9cXH8isxo<~a$!)z*xK(91LB$4= zOD`(aNUteFBKcm`9UBXNLycK-qen2l*NG*2k@{8U$f10LlneJu+%>TiwU%U^7fus= zpm#3dT30KKKD}dCOH+3YBK4$LEC5r?n4ANEh2A`19Z?S*FU05Y?Vy*11<A5ZB&_!W zav^~*r>~pzH`pmj#O<D>_5Gwdq_dwb#g&193=M2%Yz?fXvG<7botoGSJW6B~VV&in z=|~GPY6cSI%%A<yS9K<#<0}kIVUx>U*^Tx+->h%m$7=C{gDD(qy+hX_>I5^6$Vn-V z_RU~XeriT>wAcQg_X8}^nhnh{SzO-I-_O(Le$EJmTl~7wJ9O*N4jFw^wVoYcpAQt& z8TV`>%+IBs+RfsLj!4Izosc@CH>3vg>pa|Ns&kOCV(nqKw876Zr%}V!CJRVu28k!X zr3uXsG~r7Uk-v&LoMaG@OasyK1NX7q-ukl4N8ypXIqT0@Wz_rvfGTg<4$}Q;)}?** z>wWbxR#`(lmfW<fUevBpn+62)FtcIkO6HfW>N5{3@$71l*if5)QI6zgHu>}4U$eeA zAG=&F#j-dZ3uLT{%}%t_K=kkfW5-bMuHKe5at@ymT^zl_;}U+)Sp*e()<L#5{mMCv zWxkBXv<+90QHnpKE|ebmts`_@WErWp_?x$w@Mm@NZW$}5R7Jk^1dQU<^_%-fXAY5G zq*!*UHn0fjOm5sQd6Y+upmT*yy3?|HHx5zdb9`Ov8o#+J))R`jd)N9f9Dog4T>nA> zJ7T^0VST8dk$-ZoNMs$7yPh4+9A{&b!6e&~kC2I|SgN<?5?BcgdL_$u9k+4NEuv#| zL#)F27G2}JJmD|%U7GNh`z}fN%X}9m{NvCHS>AK_Hu6r+b@1sv;U`W@%JS~w9t?Q3 z5z@2tOFAzYC+ABA=_Kb9=Ud5XO8CosA0+(cz7+|7nQy7<FFf(2H8P@wHH@TVXWV`+ zhbnT&J<EGDAhJsVt8Q$A9OiFXgXSi1NHNB>63(!u{70uKGG!@WrX+Xv_uhV*CTp0u zt?$J9fh=zp-;z$@U7gWwy=g5Pz{r0yw@Tf2bH$_@D@`@IPdJ{Lxvx5&xw&<ChSrr@ zZ{`LWbp*}1xq0ex8sTHH7B}nPY!X;=bBiQ2>RrQ?7=QFy4p-&Q!OqMN#>__I{n0VM z1uHms&_8%>-3!k@e_XJB_fh#x!HTx%C{MI+t%zWL6IPX(Cz?C_(Ov^(DJ6ePfF>pj ziILuPpQ{ZsggYwQcYl^lbdbQ3f514eiFTLI`9J)nb?6;dw2f)+Wl^Mp)kbu_cua&+ zCc`)G;W4R7W8%jYpVE@8xUb@hJ(QXY4JV+^jcC#cPCN_-i9oJ*Bib~g2PWv;h!kX6 z0J3l+yD`cWPm$wB48fHn)D35gYTviQzq5|ylgSXh`|GIa;i+tn`=b|P=e1_(6QGwr zf3(Phnw>H<IFG2*Zc(Wcb+AVD=oZzZpx&4%oBpyEs@v-R{JMhr;%J$t*ciR0n9GyO zB{8fbpx@z^Ry43PbzZdZv{ERkZ%sWn>QM5N-`Je$H~OUDx#={x*ZAX4#%2yt_9@Ep z>&Xx?jw?`SW=UX<z}=bE1#k#}si7MbC`W*b6ey<)&=`Pvgn|k*M1UqJ(2y=b69GyK z9W60u7C{G#P!sEZ1bRl5P~i|(H3z?}Si)OmD&V2#*wiC*8DkX@gwhIGi#aasq4<r? z=ok-&8v4|H@&xG$n(sbYpa724rS2GM92e-BMn~<&*57@w#?EtM(j`V~%pYk#$e6YP zd1q(ZnDLR25WPMZx$2GF7IUhtqOmmkXs+ae!Y+lq^YE5NXXdV_s!HS>D}D(Z?P=gp zQi=HuIZ1!RnDI0yK5)NaWJ|hSt*$i2F)=Ay5iD30-dGZ;gYo$p!RXmpC6W59(FIN6 zI{(gP9%t1yvVPy0(Nd08MX>=2KC#ADv9cuE>-~iOM+bS(JE`2WWzZd?OoF;0{5=Oi zgfTOh3WdQa>&c^|1LvFjbZRkHt`RX0ps@}qsaRTUZYB$^1Yeaqy!l5^78U{^keLC6 zWC(5UmTzA#z9EZS!;an>U9pdBvflhvvMH|JIi=hmJ(qLSAO??b6KA!~j?VpcEwQE1 zz|4!#*URO?vakcb$oy|0g0QWQA-s-JDU9fO777Q-y4)>NqBb-5YiU7Um|;>VcZ5H( zkJ>t&VYYQq?m$6k-^Ne}Pn%$@vlsB-TEHsLWneq55nOGGKVS^}Ok{@~%iF{%_pBbW ziWME(v9KQ%hs>~zYX#<xVeG=*bTN{*X8poLh+;%Tlt~m@)^eBEm_2~p1uI)`ZN|OB z_D6@*p1?2V9xf=&=7J_;_E#h>Hrr^y=mU(Zq22OGsN7-WxIUJ8b~Lb{jq~!-<{JKl zQM=Gte2szPiL3rpX|&cy+EYU(OVIkHpdO(kC8#MWC@s{RpdbWIT&W3BSu0rVFj*A4 zwI$sj+3>5NlTGQ!`W_M~;T%kAh3ivz)uyz9M?x^sa^?YnnlXW>zoWRIe(E7eQ6!eC zVg7=ZQ};vs4hYN~0}E>ZO8+9oMQ;b^!S0$d!qnQ+VX73cNR=1wvy9;(c{?rAz#)y* zjJN1F7=s=htoWP(p4h+Lwz{-p#o3HTM^~&X_3ZJR82708;0ah)8hz7gU-@hNk?%b^ zj}oSz84YBnXd8}-(<iWYH--R>nmpDsSkuiaf_+&BR2s|cJhV0nnnxLZZ2QUZy{ta6 z&*Pk{64)So&8mR?%U238lM-11RbT+=KxAI5fN(pjBIgeP=@AZ#15yWB*A0mSvQU|f zkq$<VBq+vL1!GYhuv^w%qh>`M@Cm^<CJxvQV^5>z@i^cd0i5s$fcu5+)NHFH+lg_Y zZrP@XE*78}6Bz&j_ehnXcA3LmGPx)jq2m-(_J#m`K{R(9v<r<gJ`b21Si1=wn!h4g z(Hxvd%kIV4Y~0MHPmoIRN=2r9gc9_i6w`|fR$=;pVRNzhS!^E58uW3I>vIS83s~r= zQC4Zq7-{?%HD)Li&eIlkb~J54z$&7NeytMM>WOUW$0Q-N#RODU2lVFE2ly-sV9#^7 z{b$bo)~*v>F+2diB1C0{F{20(F0GK&EMN9W6eZ1KNHEF~dr@L$T|y2~S!vZ2qTbP2 zebO4ldTMRm9UDoSeIQA32Z(!av{yrP<bHe(I)G1%Sv%Xw!@Leqp}L}P(+CJ6_eJET zs(LSHnN{=d!BaUWV192lXMAqV*vzmEb*9>1_dulUn)L~xjJs++z>QAY6ReQ=^GsFF z5UF*ot4K930D!tNYMxZcz1<+S{(z(bR4XK&NecOEH%OFpSv`=nfJ+n-&$$Z8z_Cm2 zAG?q=fk6t1Cs!f&b%8{OOIsDBG=fxx=!mp?G3Z>eO^Wk_RD`H{X7~!$GjwRAy=SPe z%9YdONi_Wka)nrZCO2&w5Uf~wq@$-%`!<3VxjT0R-H1G4#QAs`1alDdE757rkeE?x zO%@AMoWSV8Y6rb9{aD&?a%MW#16k`C%$E%4b#2}|YYP7aX*Ev0u~wkE@FUU(tr{J8 zLq~e;x+zDyYh-0<(hc%1(&V224fXoTnBvRfOg5`Z4M|Cg(itL0*6(NJxnusk_?SO0 zKIZ2wA7{*;=ZyK;A(mM}mmT5-Hf<Ek6=N|a>Ga#8M=_dx1B=&2ZC^@-V(tjevrzu^ zyAN@CxmkzFioI&?oyM$Rv@rDR`o4r;rs$r^ITp`K)rE7Ia}VY)7_id0`(+wk^sB$% zGh^0G!qRlVteK=}I7^&lml6jp_-yJTx(jZ2Ovw>fhx6YG!0yy=Z-=Vtt7^tD8)d-F zY2DfymO`Z=v&mNe87+2)ECkftNT{fUL=!KSCLXjeWdtW}yHr|vQ2PGZNI-)G4Ot-D zR;Bs7>3!Z|K&i7CEW7ucfcfAjSj-hO{l*EyhM&Q_?4C?g2{ZhQD3J_xjM-adc|a&} z!s7JAHj>tz?<xC+)+zXZ0FM{3HXDW{mu_l`KK)f39qXaWV_%XR7wjr=q^hEmI$|fX z)-<}}BPCi4?6cBYnlC-)M^e&(6kr*IrP$*x$GnLQf27#M6T&?$54O8sJZ~yii)9dW zEs`Is;AMf0SkX>9n7+5K2zm6vj?pHKCo5ggGHvWp!nU4C|Cx2>Zr0VBb^OLy6aKRV zAm?8CGDIzFF#4pH6f}oF*V#oTxC7C1_Aw$BOeHj&QfV|<MJ^6o$E*L1gG+Qx;m@Vu zv@k>}MhjaN{t3XD+QPJTHA7~+snED+U`1K64-sfbz+%r*LRk354yiW=_|tbH{i7>Z zx(rm_&2$GEF6)jMPtEWCiE5%HL%fW0o+ld^HDfF;y@Kikj@oRiJ3CtA>Vu6vN<GVi z`7A+~@$A5l5Ze~kW}Pkz^(BSUha|KBU7@t-SU!|myk0<|mP-W|`J>~h`ipXTYmGk6 z+_UQo`!S{@Qi}uu0OPXfju0Jj!jfA?@#UMMUt9uc?B|axPvyeRK$CseaZIckC^LkH z@5iAfWdT+eUHh_czqzjROyje_yJKQMB3!bxL*^sMWZ;=5p|TqFliyq(Yf{m>$@|6W z&b&9)V|z!3sHr>1G+rLcM}3NBGiDz}Hys<nkM#GdUgI5^F)ct{BqVYA_lT)QO$vus zhA$Cj#y+HRFkebS?9C!0WX+eZrMzTSqLOXdGG(AEKXv^4f5e>$e3aGI{}V|tAowJb zAX=@ljT&5`Zlp-fzyu~5EEbobsJKzuQlXkCF165^V5Z|(ENbmrYw4?PZM9X4^+j<> z029Csa05{U>+*~N1+@ye<p2Gh`#dufq^*75wtqfkp69vyJ?GqW&pr3td#=V@>*}^l z`)0`ri)l-8G${a(<Huo{Mm0aA?pUV=N<n6>l{2k)&#;S?l%Tc#2VV{P>=7Wjy~Tre zGNqslTa0ii$f__i5$aNo*TNhxzXQ1?pCMW1HC}TA?ntYQo*n}%II#T{Dit^n<{3*4 z%j`nD*=zOG$3Y%jdg|mZgVd#uYr2rQmqZ31TIJOnK{Vf{@2}`0jCT}LPCxe-_iYNX zSF-Po6>E7H3qO#AW<ds}6hGw>u<zEmB&(6i+W#zYv1Z41yL*={1GHvpyAI``Y0zCG za)hbqmxMYkoews9G*f|-YIBT3IOrUci<}vn%*BrQ+GWQh^BlTV!rg_^rSw_Kg~*9+ zh9K$>q?RA>M$h}#QN1=nE5n^r>alaiv$h{}!|TUiTFnS<mAxj3i-%ZSO>cMfq3(SP zv?pO>Gc8%CH2YY1=>bumgkjt<fpD|q6Daj3s1$!(W8lT~qVa%A%j3c~=7pE$g};;+ zUXU05L|*u2_ip7slo!6<y-UhlLj8hs#j_SB@kTH=J`4`b@MMwe`(;xFs-{MIweJ^6 zZ5rO35efDqz)a=}7m0~)08wx7_pFkw4vb6MD4kSpgK5<;_1G+MAR;)uz#f3R7FfN* zTv@%eed`x(;ir{06T^h1@%6h5rp2<;(N4ZC^!YYrE{pue4|rb}pm4(CY<Y}~;_1`~ zg8?_EFU<^h{K0=5rlE?2tmCaoXSZjjGnqPtY3_Vi8>ukFWhb$#GP%xK#L1q_i(Wc1 zuy^a-JcwabPAfK%SbAD_+$rklrH$ed*?d)X3-9^yDrqeTdHO+Hdf)GB-t5)z6v1Hu zt$`_EtL0TQNJ{(v*4jDYIlf;7Ci;^o-v6gA+}`Krz5h7xJ(c%<jeFM&S`l~eQZ`ro zAn*Oky!XrU-Y?0%o0aU7@vYrn;#OKr0h%2&QrpEkKcF|7w!T4zY>zd5`Y$-vC;%)T z(f>Z)z1iA9$e58uxF6vkf^;N+ynFm*<Mn(UAnE)WeHS42J(G;u9Bt&QvAEfaoOsxU z_B`7_9pOFGPFBq$v?@c^5I1uu@&~<YFRN91YDuVK7f2ve*{>X9gOWip5yRNVVlS`M z$BDCT{j9$Iuo8<d-FE>|b~8OBYAv{1X^$5i=BS>fd|Ex=+Uofx0hAxq<MN!TJiC!6 zZ?lhA8+H0YdB?tcrZPClwt=E%I*!+eZPdJ@NImn5Us@TtIY9gMmwtVO_R=pcrK@eh zpqWXLtQ}9Os`Ptv;siC1#{V%)Urm=o=BLsXtQz@cquYr{{&fiWT`XvA{OU%#VVSPi zZ64l9;&aVN2YH5`cBOLr8QDVpyUClmNW`DFU!1Gd|1t3*tz8AH(WDFD6Z0P2d_29p zsBQ6S<E^(cT+_iL#4W!PRhey(cF2ZegLa$K*K7APzI}lA<2&he%c>dYBv&q^;RVlp z#PN{*+xxUPjRIv$!BYR<9WC_P0lB4@eu25}@_vtK^AE$dPosq$A2L_3-5-(X#fBtO z^=gL<ch(}$Z&py)#QegZ(!Qr|4{W=fvoeb#Sjuq}%Gp&!`YdkxBk>B{{Aky00lebd zkGy&S$30n0HUEm%wRQd6=G9r50R+*7?(S#0S{668gsty7D%W~%_5|XoZbs>c&qVfL zn>m3`N6%QqHhtNwVIvDgrkXVEq)Hu|yxzzaT~E1mbtufc7UgKH=X`9oY65s0szbJ% z4-l~3dEkgnF=0Z?J=ou-ZJHJ;&QaT-ZB_<0hevXm;{Gv(D@J^(>_5JT_RQLT&vD(| zS2f~@@v8XN$FKT&yzLlg8#^<(9E*==A4<>(AP0C#FW!sN^Cy{^6vJUjifq1JkjszL zusnMGk=7jSRizWw=@W|S$WK;VKvmglEoO&`gRx}gwe~3QD?2Uk{{+ANTm}Co_^tWM zKMB8iWY8#d@EeIF|M%c$(2MkGmkq;)%7#8mZ2;%PFV>^HcM<G*mM1FwTm0?xzsuha zT$|-@UlV`(9{g==KFji}IISaA^U_e5)gw86WTw>Yq=?ncL8kAK=^aSC>-td6&GNN? zS)QvUfFun!FXi}J5Fa64Rep;qGcnTrz5b2)yZsyeV$YVj8VcJGrr1pI|A(3k(A;Ni z$`sg}>(VcX$qjD77tPFWnVY`k!2)F$!>QdhLzvjp{h#NNIqY2S=E?tO^3yPK=~hd2 zjjHAG&WmowTcAD<#Y(D5<B+h`vXtTyNW4U?_AmIPl+|)mDf$iVUvsMz$1bR^Q}zel zoxSuMgy&Z`NB-$1MHbXjq#W9F#{<{)_&1$YtUFJNPf}BptGQ!?Ig4c$arVwG-!$|$ z_8#M%#j(9l<o$xGabDSOUfK9kuk6f9uk3uCNSSmd!kG0xuJbTQRq4D&DLdzs%P$IE zuXJy;sl)i2&X!#16oRW4^Y^${`i)Yr^aQ>;78mgI_^BAVccKRw!t*JTPQqGjX&vH# zQY*pliFnfMSli8VEC{CpY}HqjVi748sfZ4*Y%j0+MX%$<0&l`A`LW9XnAfq2{LcpA zG}CK*hNIA4$C^`Fl6Yk&m!fy_I#!bTg>2OCIc<!xo{Uc@tZ}&xN_DIt$Mag0d1dvL z%wt~1QgS`5qb8-<G-Q2_9TT!HQCMTUR~8A*^5jO(Wbid>qZIvG!%gbxgg(R~oovU= zx!JD=`0QX46Tj@jBIpE3ynwK)s)R_c?eNNa@yU&%d`_*Zg~%o{lOAsg!RGm(@;jh% z6vtye<INm>ry6voqqpo$M6PjRo1iRg{f)S2msh^sKT=JC#JUcHOAffIYMi69rm9Ax zBvIQ1dDJ#ljr=mrD79!c^nyI1n<}C^pC*1MuZfWMOz18LKJ*)Z2Y!IfHPi2`FJ|W3 z>{WOA4RzZ7h3><i09|Ijt^Oq^qUH0-JG|469!3|e^`*u8@*4F9L=CXq-GVcDyQL<t zx#}4*qIE;##hN~Vu>z2H>;aV}s%8S+ERc7AZ`kH7{s3$9R?WOOM|Ws5eeoBcpgv)J zx*8Ta`%vjVK)7oL7%442kFadht}@s<f(YR(TA@pytKkmxpBLVz$FlH#Y19sF58>U5 z_6P7@dPo-Df8f>N9Y8gJ_mI4%?vzwMH@vamO$~*q*2bj1mKtzeeR6pmC$x!QBj+Vo zdUvy<wydFW8IC<8N%oRUQIFh2RMfk>jqTg9g-ave;RRP*+T4WYMQN<aJG{Q=iYd*L z(LGMm5vNJs-Jg<n5qmJPURPB$lBc0pRKuXuBWKAK$2EVI_pcZ65i7dl@a994A7Wk? z@$UYp&bxat*~l?ERn#k5Q#8EUL+9V}Ce?@f@6^Rbkz^YcbmTSW^5)C(8uOjzZ+-5@ z9N#=5uQ5ZLkBBB;p*8ejCym)dX4+@anA{MoON}g{>20x_>kHfIQQ;Nma?u!oi2#^L z(G}yHPiDJslHfwJr3RN}v0e>Tjoc>_fTd9IJh)j@t6a53SM1yT1!QJ2Fk{^PV(ezN zvPY(l`a;c7z3?c$BDsRim|*_d0V~6rkI4fBW&S<b?k3o#7>&?%WT$Wi9(l!mxq1J; z2c4ptcbjW-@MtJpO251x*}=XR$uHUdc|WS*6W4G2vO*I4?D8+#k$l(nE?oaR{Yz@r zv#iPCW{3oPq-HJUqh{7tQAOel{KiuAXDD8dMc0bEq(&oW#4W6IbTuIa#iv^mws!8& zcXB#O<}0jIw%i4&xXMe8E<u8eO9=9RRa=bMjyijEKZUg^ES(KwrCb_cs<6wmVQ79z z<0}+)Az`ufT$K|`r|zJF$bw30apev2{|Xy+HFn0;HPRI%<LZ}PSS7VlAYUZsPa!lj zP5@(F{ooK%KA_}&*%zq8U0P+kKSP)K>l#1mHf>SYgTZ)-rLWJ`9!n>!XUCo{ABxVI zU)Obc6H0g=d1Y$W3Tkx#|1xE?^5uF!88g(w_fF%ws!r{c-AiNgF(7+{e}Dnj%RMom z4#fgfcLC9=s60MIfB}1^s_mBzGhnwWZ0py;bc2+4j>29e%#7~WIFRqtJ-%Aay?kIN z7We?09bCK4J%n?5uIdC?xvu(OXW~h2?TiZ+L`r>Csi6m*LOX_+uYMLUm+zIs%dSKZ zUG^xy-G1cskGi|A$%D4=+2elyN&p^7KF?)tFkderimOXa*{41|y$U0xzFv#qmP)BP z+LTWapEB}cSX>Q-yFoxsQFJUd4ho;^20?8w2<D35k-a&Fs@^6?R!ft?SW$R1iA+*k zf?M9!af9TDw{_fJJa%avw>OVo(d3kUTE~4MmYh);03zoYjH1@~<5<zE-50CV(jp01 zxim9rJhRCClY4ph_fE}yf*RY`mqyxO8x-lY#Jhj=F78p-zP^MvjC=Y=hu@YUm6s@? z#8~Q1*FW6v>O6TYRhJv&b)OmJ@(&S9P9e#i)@Qp)uCuNHbuW}wSHh!!cC^-&QgvZ# zU71?YTDJ#}UafTly2lSeEixgRv=(&6)mo8&*YYLWlEp#GRcPqc_a#B!r}E8KjV^q$ z^+7cCyNP6trSEOzkvTdHrzQGFQu&q5%_lV1=&FudL?58WzPa`8Gvj|x(b;2map5ik zIphD7k5s$#q`~;l;};tSl3v69uWT4~VaKKQ%MSLyGC7RJFON|$_v1fbm+WjhizV)Z zC`k%@`MV9TyBnZR$+Uf2J-75Hw|9?6H4en~L*ccPBjr?<P=5<LRZ>CMn($kNW9J4x z0f6<%C2C;eejq(EecUHXDlww{P4l0-zM{BbOuFa?b%iMNI=J04noLw(t2A6nsM~5E zC4qTpW*+#C=v#%I#|x%HQFcs~c4WHW!z$OiPTDn;sAJRRUmKg;!bO&X2XoZ!7!5(; ziw5B&1L?eU^j3b(exIMoAG1b!PivX-XL$StU9nf*<&{6-l`ruIKIaWY0w_CqJwK7n z(bUg%{3lY#G0QW2zN)fc8~Livekr96Vz`v=^ED*<wUw`<+?SlPB+vMGEQU-ir-N;p zQ~dNnNQ>B9Hqw3o8B51SWSl#X*&TXoSocgSqL;dTcpM+KyhHras$qKJsmTNwuq@}J zQe(oT;pz4}rF;A&;q>y7NM})%Qp(fKiNIJlu8-oG@kF}@H`6qBt+PjFD})ltYo}&! zTy*<%j<BN1$51<Z*F8*o$DY4_Z1Qz3mMl`a9}N&ycN*$`ODy&X)$vb|LBGle-D*h3 z3wWciC3;{gONt{<Q}4O89vjKIi()mM5pOOR0WEJxf4!t0qvpA7^)(2sbK9bQ+7gSr z#AYZ0gPS)<NnotzDRPyt9k`lsoM9(3+M%62lHvjK&s7_il{T4(66O|Jy&H<PAT8YD zRlntRd{E$ZY(k8xE$~Wr@k-Atg?zLWY1HkojSx~>t*3SJl9%=EdmT@-vewu8R+i>G z$33B+m-MqyKM>jmp0PHsW5cPuOj<#JSFu5hafP#%)3RGpv1j#Ov6R=^C0cPS`FcgX zrl9xbEvMx|C?@G+1D#w{^O%>=Jd(@|#u~J+X)1;u&#PYsR^Z9|ZR#VE-_<4h!6vD2 z`+MFVZ+Yd^1@S-bl`rP|C0cWmR0|VW46lCA8`$QRui>%G8~CDEwzpT_?hV9%V`S+E z?S)Mz#W#FfxD=r`UEZO48L4HL_q+)XnS}rrt8$beginZD?X+EqEP*-#C`+?3Tt&)F zO+Jjr|0;S#?xajE_V3xFxL}T{5$ziM{F}%jsdshyeNK;Rv6co=!cnajIwL>MuUrE@ zTe%RQt^DIy&C=%k&4tq(+@q%r@7ldICqCI~GvmGvH(mul{;wQA-htoV0V1UOnC=aJ zsA?u3D320V(m$ZyD4ivgQ1b%<NCcam7-M@Fe3`qnFcuIPWlfWO%zunqd2AfJal@e3 znadyZOpp4Mu|19w@hVV<KMY2FQr$WF`Y+3JP`N7cLL^tGQ!?U^Hl8{C_MUgnYMC`v zV^&ni6~-%|g$XEU-zcgtMEwH=Ok~qmrYoz6Irs&D_X=Eb5e7^vpb<Vhz48^_z~%76 z-F48m<yZz7HAmMKc}GOo^}Dn$$zLIF+1W)6=Wn)sUU`&{)!^&SOMKC#?zfICr>qnD zC$1Akkdp*MkdM^Z!<RqGqks#Wy}HgsTT_2`v9o<N-%Ior7_=U)*^~>Pe{>jSdMyX( zx4NAUF3<1aqHNz_@)H?xOC=mxuhqd$bxy6tGTNHL>(v<A(Q5#sbo4{Nqp@M@ZXQdj zqIK$Mi8p&+acp#NOBKJnos@EXQ=(X_^<&@_yEpgq4j)~l21iLBNxqOdP7T+*6isdi zL^<fRyb4Xp3amwZ5iE@}xu4=<E6}jA=B)PTdBJ#??qTLPlUgvwkp@Qe#Vjr2%SmVv zlWQZ70-J)2+<aTT{@SC_YhgP9M*;Gf528NtJAy#p0-2bmVi|X@0=+{;TSe>q+xUv= zQt3ne!5ROtWA(LR@HX!L^B3?Dfeoc~{&!6Jl*0<xM2ZZ4EMl`qUGmxFDOE>t5g*44 zaU3^v)dDrChAL#ubV1Y`yWIQ5BD}!W^2*}z7i|&Dwc``3jzU<#^{RLOsyf^)r%&0V zdrUf7zzUNExQr~xJyDiXjhZu0(O8Q4*Y<Y<r`86}t<(f8j}rV)j*v<klEzpe_g~4H zeG-uqWk7Yo5BBV;Gx<!$#f2LSpNn$MFaEI5)Ic)c!D8yDpX?pNftO)VdpTxqO8#uL z@X2W5E2M8;AyeaF-r@IXs9#am?D4A6E+P<Js1Y;=TVl0on12^mRLFe1*ZOU=y^xvR z22N%X0u=VV>2f&5sfE$OzBUsbEZzA$OI9~{V>ErJ<WAkjKY5PPzZK2F0{?A}e@i7) zxY(%4i>=PwYjZiLo7)~Nrab|_sl%qt&C*R*B6$fmM>WvYS_CS5*Croha!;NH@j7|W z9G)3H4PBc#hZ3{$pxAYmJcn{w;NK?COu-58(`Ej)dR&w}mXXN&Fn`^dw~bg6v<@zL zig}!NO65FBw(0Dw7@NezDwHtp0^t!`PCGG{X$46ZId;!bLuo4*EfQV%u0K5^MF&|q z_7F-B<=B%b{eena<sYzHae+G)0{su-!y3R!rivs+deUPsa>QHUA48FFbs;+p1+lZA z6X)PRD8eOx{sjTFr|`*C`y4KtC9f7Q*cTOa*{Q4zE1{(1uBmvHo@0tqafzMDF(s+E zB+lfReyO;G&E%NUR9tdqa!h$3L^5ZX=*UyIq0?Se+I+;AQY1On^7!XO$$UW)k_kk2 z|D(PF#y0;wo`Hzo6S|I1I;}>hJ?t*OP`=FbkGEu|xlVgwEW%~-30vh}2vnn~i}#78 zzg?BOX$4&r!xjHe&6eIp3xo+mLF!hwxLoTc&b9ARtQ==sSm&r}>uhSaEhLp?vXUel zZSg!dnW;ycz)`B?t(G9Ug`EXWSBWZ_$aeP9`o_DzuAp@ktLnPK)={jg>vm}!#j3iF zRrMwNw2t}$T_0qHUReoqn#5-*pD>PS71B6GRq{zpql^zr!l)^ly~h!vwJEQP+)8b{ z!Y>k4n}sAkhVkyZ@F5CcAB0znomY0BHVNeP?$pwl)t_$i&o0~LJHp@O*7eI6XNG_s z(un?}se9cz_jk6=ofFO<%0FzQ@;5KZ++?9MRZZTyw7x_XuvnwOE;wO`4;+oE<Obuf z$y;sx`xDDr8~FQ3U9UhbB~TMIHKda3`D{qdTFs;T<SDUKsOLcApGpafV#TrK37qVh ztE^s`Evp0lNIX81Fb-U@AF9Stv|I7()hXyKFpfqe&=&>zjm10YZ&JTg2`nyHFFaMB zd{(NQ<dd;NAB9fSfO_4Pu>V`=(^bXb7h;8<KzKemVl|5|IU$z1P92C9u6?kegeRM( zUi3vpm1X%4kpx^Udh;jks^zY3t;ella<=77T5)4rHZ>L1C%;=zpDsEsRyf;%=YFNA zFMPYf{OaW^XL9-n`~!aro(c|r5(Nj(azkT5LEiaj&P`l)A{zvp@ZEnewk=XcOF1Wo z(x?n+ep+mhS9StCXxg}Huk0I@yfhB;%FY<V%cPiBb{<4o+lba_92cm&aqT9RbpL1f zVE6bPYy@`DkFmeJPEn`a(AU;ikY2U+pmi&4q_Yyh6*dourDnw#0BD@5(ap^?T%{`> zA|LzGkMQtsq-3XA-C_SMEbko3+tT668&7j}X(m*nP9-(Cf_`1EQ5kgYXBv`0?|wDJ z-qpcbwY<7MT7z6a>Bph2J%_73#k9w<w6#4ttl_8rd5Jjn)26e6HeIGZia0>_A@nM0 z;U&#K&<H3_#Y&TXMPj{EwdIjyphPx3WhzptJe(I@QXT7FA4??-RDiIbKkeqe1zpeB zyiAb~lmRbNWu`<vLils@9qn#Xc)I_kJp8dlxpv>0?bl^4{xroOMts-0ye_%>V%R)w z;?@-Q$j3!fvn~KYOd(>98pFIEs#g>OO?^|zDZFE*JJ5L+Vckq7nl(v^SL7A!(QrIX z7HQp{f-Ar_THk_o(ZmDPgdZU#h?gW}&p&h6(55}<!%(#`+3t@$)oH%}Oq^eOX<u?x z^doL45<xruzZ6^R-N=dBcaTwJ<Mqx5NON&D3U^#jFR6qlAG}aK;Mr7F{hoLBRwd+% zHu1GNR&%7+5>bOv#fJ}6wYG{(&21u+W}k2I^p5y6l~O6*?62~R<fOUegP(o4je<67 z5`V8kTbk!!ZiKz6mCt%*LdSdF8EyWqoJ>R{#P;q`wNRB?3kNR}ujkfRf4{;NE4T8& z$P4m3a}arGqNGUKLURPQO>*#YxB+-;zrsbt4OzKek~fFrS@>M^7JsZQIf-%JlQih( zl1e$8a?yGMmazK&fIUfMkvFjJnYw}m)=Lxvr~<r!t7#_3A2}j0efir;1jChnU9I)@ zSRBL>*h-*(&6|jw@e8Oxc+*KB1LA9f&w%*_glFD1F|-y$+3cU?hw74p+(O|<(91k* zbA_W{wuo8FIk3$;Q2PX>{pXcyXZVPv-Zh7-h9f>ztN2?M!jWfy9Ni;gXF>H6VhMsB z!lzXxfP?idnYmUeNVoaLgpXrkqz$Q*W4>|6o)IsZp2EE-O;4twR|{fE6!s~bm$K87 zsq{bR^pxqO3D(&0R2%|^#_CSXu(8L9L{%GvfdcA`cK^Wx95HF7p(7qk2QQbFA)q42 z>?lV`nb$zU9I}FV8jB49C$|JKk#S@}sjI^ciOqi1Ax!Fw)nOW|$7!s72|W!}3{i<9 zLaQ(HV+v&qmi9Luvj-1fXFf8YN~@Eu*xJv+xAX8<D*Vr^a-0yjjueyUIQt_1)R9FD zG?O6`b7=`<^~>#*1P$@O`dTS-_)Lh1c4{<^<CU@b6Zmjve4kvn=*;MDy%mtpXC`B7 z#-iXj^_*cLcR|TDS(3iUM(=ry&o|malD>~C@X66PB<rT#u~dMKIYXw}JUVH5<3C9w zmqHpQSEVa%+09^kD-XYUIIul~xE}hc_{J$>+?cXF6+8dMsI;=oOoLem`q5kZ7T7AU z<@c-zaJn~4r6sqpQt|J&7QQNJ?sOoE6YxP`PpaL`NEDij`pg`L5@sYUQs<y_?mPZb zvG?OG6vT|Typ$Wix69v8s%Uk0X^7Q5Nror-_?tydgF54<fJ>p1Jyd@0DDo1Qh~tte z&6UCa{j>U_+M)^dE0P$KZueV$Kyw!vk>Vh)AM|$|U1@onLQ``m@tcfKq&%_b5BZ8b ztiq$oJH?ae!3&R6(t|_T^otSUzqz55nQ~zzk&LUWj~+vl1HuaU6^~M4oA-s#>WPI{ z77ul)h7b;wD03cJrbgK`U7;~^sI4c~bgvLMJl{=i=L23_!22f%is}B}B_J6eL@EBw zqa0ju1lR7Lh~13z*LKh~zO~l^QWSVmKY6D}UE=tJYx)-45o3NNqBA~@4ym&k-PtO0 zi$6Hox1gcs5d4N2LbC1gCvglBny$6+-;@5~!53jb$JDSWe-!)?t4VU~9*zPpv5~s8 zR!aB(%9m;SShflpQgI1e57;s@U2$h$=&=~psi|_IJq;Ti_JvClr>CNTpY<W(L&Fg4 z)^<G`$}6rz6qnbb#@4<CnS+h+A+Y}crF<74fU#91azvck_tf1X(X_k(9|@(_r%o&J zzckiFg~Z-MKzuPf39sNvFID{D!hr>;ai#ljui5S;&Js*h#j~?vFL;UXxv(E*!${Zc z!q#QONO!pl%aupi_g&cY@8{JqOJV8$+e;8r*7}bh%Se^-FOZ*wI}NTQ=@2(EZH>SA zQG96;gj}~(r!W2+ewooObRZWmko%9Jt3KSe1KGFqfe|;PkA9O{w9OMmkTWSt7gieK zDfB5q(cooXm9EL;#?E+SKtR-*w9%MpCN{)J{(M+OtN)X{?gqMK13A;3Z7+bV+0_8~ zLvAh2{EQ?{{!OJcv^D&yG-Xx$-$?gm*oxQldx2;hKF>L{i|}6$oj<|fV((1$I-c^* zY~u!aZ$Ml_KJ#_el|8S(9QH_W<Fm)`0Drrw+AmRUfIm~JA<w%;Z91CRB5RbBUyKvx zxZs?yy^cd=HZd_-`*%op73sRx%AQ7?G?#yd!nH2gA-qZ9cYZc}y29svHhe1Kb``dj z17D7G4-7bU%LLk#dB$j<7Jyb9RqXoD!|$*Deay@q(ueGIhe!^^qxs{ytg?GQE>uGd zWiy2h+V1`QZ$Hm$lI#U<(_pQVq78EH_P@dLkr+lhMC{cjHRhyPvM;P+$eB)g+0|w9 zoYqr_9pkiU9NCbr*bRkTLrq!pF<Ln78cm&yN_!8tbUL|TBw0F^biGq2mqwChs;@Y8 za(S{eSULg+`g2W@^=C2<f5cJYdT5=)r}|T=;|rQ8pJr^rTyDnnCswnU*P@+@RQ(`a zgSC#Us@s22w6*qt2;JU)6`Nzx*4TlO_~V6<ncKT@OZj**Hi*^o5E{|UHCJ>@x`#Qj znnBH1recFAAjti9vo<}Z3@3c93^D3j)^vkYpD&XN-73ut2HJGa(WCm`%k`g!KjO%s z|Cuw5$G|Dw`utdC@_GNGeit?$B2f4C?vGTp?jlI<%Ig7<)&hZA?*~R&3j+wVzN<LM zmET+Czx<UDzUv))gYvzE>^mCL{g0!LhMGQJ%WZ;fWKcsYG6VoNosKb8>&XWtBZH{1 zxlg$EpEI_mr1{Ev;2Md?2JI4Q9e0qhyuN|p3lxHV3il<%hFHY1CcM^g3CEJ^u4@AR z8DIZNN93SxS8mfCD(+BM+@wLDL^^5@G6`pn$}5j6XhAm(>$)oseq(kq_#Mc@|72(g zzllBJcM$NKbiae&7ee?Q)VfR9k-YLgEVS~T=i&b$EUyczXzd%BHe5JKKF)2e0DSU- zJ&n(e*hQs#x2>r4e)3pXc~~CWNc?R>32Si+STnr&*jVbs>iDN6mlfA0HZ^aE0b&8H z1SLA+N%M*akP$$-4mzH5R_1Kb72qjdagJ-(*VL|xuw7x&P){?ot!rbRx?oO7Ki2<0 z=k>oh71<}5?S4Lg{jk9GpNId4AtAkR+F$)wdDwG8R(q&46bpNG?W1uFoiwECQGiA& z)uDsLUuw#l-X!I3T!AeraAH`X8m{q|T;7me7U{nJX8Ii>BggK0w13`xJ=<To^Y$O> zsvD^4HXX5(_6uz&F^b0p<?R+ro;)L{o92GlT@IJ&|2z->583=1a{UkUmuB;)A~VAN zq$~c%<-bY!zf1nGR|dbV^+v6<t!A5sqftua-XWu-;s@tjFTIuxe8(^ESJ*sC^m-bE zqjMik-<8Yk2ukOf%#Jmqrg#a7>}+qCl>4s#;%^H?K($W73+aLmJs`MbBQmQFhql<S zLZ79Q@f<otrYyD+Hyt;XHP4O3uN+d)T=SVawMf+#cV&HGvBc@T4Uz5}s#+cWhSj6* z+dVa^q#-q`)+;-)A$3xbclU|06!%LllQjM^sX3JvY0vD#9S~ThJVC&S38zl@N(3Jm zBTk)g+5}z})%969g4a{M8?ZT93Ma*SG;=#i=hUZes50HPEj18`#-^^VS`TE#0wJjg ztXZd2O;N(>d<&L?>q#_&4<~t_P#u=SW^%%ctLHjKC5XfwoD1van3e$j)4S}~^e@7@ zHa_$Z$$XSxnVCjA0{%u@WusiUw4tyq#@5lOSh7yLg?PCpNv+L)pBTMO=HZVx?4$1Z z((d3iHRCO88O`<*ssG>o^O7Yr!4|eb|9a@_C$T{|3|8>HArQBhK>840DAgKrTmuS@ zD6*4;!5B+O(OOJU<4HeB$;&u<L3(NQCGY^yZy;+#qbY8zCJV6D&S)bE*mkjU5OjE% zNJynW@7I))F24MpN~THnd)KH`=D&{(zP)+)FCT&!o;q=opEwRFsB_dLtI%mfbC#9j zbFzKDo7mLlC1Fcr>606>t!zl0Tbue8>euhFvHh(EnPZ5B)q3|M_OsiqezMrw;`enO zNvgf6@r@W~znwbq6zt63q0z&fEOq`SjkqCnv!M`I08LeuW8GDq)lmkIzvow^SS_A+ zx9eETLCkIOtNU@;_z>PyNwd)MWqqU~%uUPTzMLDQJ!Tpqd2?&KzYo%#mylLsR=0*2 zqiI&Rh8RPw&r-r{gz>7~{uzatqez+OA9)5yZD4yOxsn@7nb6#Q53%%NCDtw$xbGMT ztN1>UMoRD!v-#Flrin`x5#pB>{-{#((A=nNLB!L(pmhQVCsz1RJlF@t0<dZn!5>II z6(rLYB+`ir+e2kR39uvySj{8Gw!G%G++d;KsZO<I+2RI<CA+L}C?h(M!IomC`_$<f zt<(ehwTdIg!~A(av)WpRQ<gO{eq}#4vDiK&J-lN2(${Hl2Y={jpO03-dN+|YLTgKC zWy?J(R^xp$+%4YGEB*$TadpIW0)#%E<xk%zrJ6IvJA-9ooieH`LVk5DJ=M-NOcjYw zfd&{vZy8-L{cp#{l3R?$zvX`uY-^9#+f)?x!zP&-;i^8jzYhKXb-SbgZ9L*jvS~6a ztI-KaTfI+wJ9IG;Y#Zl=--e7AZo4RCynR*#e0LubG8rZW6pgRWtycbTc=+F^Oz|%{ z1h)B3AoLP%7?>IW6T}eFhk25M=Zhk>*E4Hd!1UW@Z40=5dmTi%Eg;G$j@|BG#_e<7 z-R-gSm#3%nioXtY9}A%CB|ZWs{_b5x%!Fpbo7hUJq8VctQ>%tS1~$kHU7`yC-G<kK z!%@&A@xuxYMv@u1;4Wr8CN01pC@?dRqI3P_fSd6$<p?=Lz|`L5+jyB@u~pp5Yu!v% zupD)$#%3;HVN*2Rd$6#nhU%B+!SZVkt@09;G#}u8`$Ge6JrBR~AQpQAtTE8pvdk7< zW2qan)1RkCr_!3H8d5Eq{EXhGkS3h@U_t5pi7&|Rm9<zY$r}|Jw=o3ew}dkuui=E( z*^-;?yyPt~H@j6K2Oogw7@&jCBvFarGbsd?zZG{60?sqE7vN~EIT7pxoZVRBq`!fx z{)hE-@M&33=Of%=BrYg*1nBUmv4qXM%Lm)7Uly=@-t(kk_+b8gwPa>P>h`Mjv@e>v z%l7j>!{JOHl|Jmi-&ZoFz~ROUsOgG3K!<U-m&j}!PI3zozp#kcyu@PneIws;4PwhH zSow&PP8<4_rrmgaWvE-fX8B8wElvs9Vwp&ClGx&(|J+C0B~y^B$Mc-Z6Di6BLO1X5 z!Mc3bOjRq6*+fHA*BdV!51)DrYLZpikboHiUj()bs;V^*x>q38&kT7-L??sQm*pQA z={@zn_(pzw=BHKK&{SQd>;Hh#^-ORn37ov#kh%nQ#8iwPjmN6aO6!%s%Po%E_NQsq z_tf}u0b{y~MSW{5b_UYgG&=ho$4CA^+6c3x*syxJj-)vbwt}x798B}t@*VjX>^WrR z%XY%2n|DPz+X!*_7-nYK_0v>bCn+SKTTcfQSBYEC$miC3|3d67VAWFcJpeBdw?6mH zB1wKS<;X2?fb%u)8Js8c@JD>v@lW|TG5!h9wOb^z<0~-L&`fv;iOlM5Ck7ixAhFc- z*<p_@M>y;oIHW?9#=BQG%MJVMZP?EexiIW!<%a#N?69{JV?vEauCBQVs4eqrMscn` zwtn@0LpL(NB|^)J>0$?`0108YQALOyV74H3d5XUMH!$*2xrLMqP){*X=eXsJkXw?; z34B)>x4fIn@9S$0Z`vCuM&30jR`T#a++VA%%z-o@;^d@iKqXv^#UPKEe#F2dy4gd^ z6!d6+kNq0wKTu3UDt$4D5}vxUU1kf>)I))d(GFtK0%H<~ZTWSjV;XnZcf}<j*qDYV zV$w_~RR&GJ#UfxDb_^$7F_&*+8gIDxA6Y!|==1J-mc?_zw1aOkl?jfi)K56|G_U1F zB?`w;j;YM(!BnP;sZ6@pn92;s*BK&Zp5Mqa6+7=^Oog?r#@a9FMIJ}_NDzQ~)CL@7 zx^a{y_94Y)@_Eb7j<4kF8_si>o4gqWel~69;7WK&Ui$t?rQb=yLK3o`9R<I+id&uo zej_;wE;`+qkYhj44(p2>94R}iXe3f&KdklupZ+-xl(6+IOz0ATGtDs}JLv_yB)xW| zY9;z5UMEM65xv0IzlIS#3f=m{Ud=J0XN&-^lHHmX?RQnpq^>B-SzC7}->OTEVX34+ z;*RHtGuc>)vpUIROWXV}>5>ZA(sD{?NVo%0BF7KkwvqHa5C0Eebo}Vpe10^_M!z!| z6Ccv~C-I@io$?`C`fuYy=UPi5Gcp&`1jl*~*^e>Zsupo(xlyd=0$p<`Flkgw;c5J5 zisL^Q=v!bo|82*Dc6Ti3f~Wy95ZD}efuqT6WX%JxR-Om`ltOBbFh;aslY#H2Jp7CH zHAb`zF+{>%V|<3hl`7-g?S9*4V@7M8z;ZF5&OF^yV3|B8&^N;PWY=?)Ywb!c!}uI# zpIV8<7@Wpiju)>Xs@9^k3rbsKQhM~)FkrN<@TdHt4|pDN@~<js^l-05lCqI@%hlux zIY45TeS9Z>Nu|MJ#R#rPiH#5QzkQ<y(u`waL<n+b>OD;R4YEgQz~tOubqc28TeONz zj+$iLME0_=WN%xxG)nXc?AMSd%0zfa?StXd9q6Z={wbE~(GIg0rFNQt<%3(;siT!@ zQf>E*8Vs3lg2_3l@hs0zsfw~;jEOgGWZ}JvF4n4frji<azBaZK&yb~uCTbA@pV34u zuIsbL1PZiLdPl3zh3)Ny8Ag}0r^}PaS83AuPs-ynqC#GvTXO3&^zYn#a(BB7k;WFT zXeh)436SOMpLXpsf_>vH!2a;wq5k{=8}U#>Zhi5i|8#%6<epTS`Hn`p2=(i{I6`ey z5JoWH$CNfOhIjqdO1mGrlBQcLA?`vmRy&ZML082*GB52V(Y4koR{Lf~kl*C2te(`g z5%CA+fzN`bvXngT6}0=kaN$G}?4>ZY%*{rDy$l)`>2j&tOAHrb2l=^3o39V7j1rb~ ziee-lL;Ifnh1$o(r4vvD(72a`gyCo4lW>1h#jof`l(s)(sgc^Uig|Sy!p+w(_Y%HF zVb(6H={x_yJ>Xa>HI6p;N4I0KAr)CdZHX^b!)TeElg6k+4c7s&HQjUP5h2m;Ov0R@ zQ)&Tu+~N13tFlHvcJbtB4yKox4V#j3H|}UorI)!A=wIrM1yri|5V%7pY6FVpUuX<C zx-@BaQ>oGA9Pl;xxQ5=<MnfT#rZ&gk*DH?i_aAZJEBMY@Q?y*CBD0Y765@wDhwi_{ zAi8V7oV@*?%%nl#=0WbBJ4j_i22zP@hbXiAp5ZzR18c(p4b~a7Jixz7Pzuk4T4ha3 z-Rz!o?{LqbujYxF0l%2am4G7>-6jI_%2G2F8dzJ#r&`$DRvrPU<I^qZ=L_s{+fp7G zInK24L@{?Nzq^z{H7h=8?VzRtYVykNyqPeiRH@XY`ia!u0+DwFkt&}^*MK`$TV%@T zVLm3qb!b4C4?R*^;OyCS<O*qK@EbPxOL+LNR4}P*=rMkS`E`cuvOeo1JcZf0M)nA` zw`u%{f+A758kU~Z&91u?XR~Erd04@&j9MLY{Q~1zhj50Nr|_X|oWMa5%&!hj1?smv z`|s2VCI0I3G%<4ADITNb=5}P*62^QJf}D*Z6mO&Z9fv|&4%d&{1CuH}F-hXuiGt%$ zpdCu($L;DR#_-K;_XJ&YxiQFX{zH^~M+xq>`Oew$1RDG(_&KS>Z&dxRa*ULeF#zV* zA2z!zBP=h$DYJsqLZJcc)P=&8{2l}pRXV?45D=e7im-&kC;`=Y;w_M&A)Pv{93x3H z?2rclZs>Ftw}Tg@Mh{B5$Z{2=6M!<FR3?lf7Y$yT96bmd%Y|Z!*j!?TdgzKEvduD1 zn6HdPVVtT<Mh0c16c>DFoSWCbNg|7&f72ey?_UDs{<HlXO9|><-+xj6N>i?X6P~6c z7(njO$I_JRqfAXLTK!Co-Uni-Po)OYe@#K(NBRvx6@tittaRZpgAvE1xw~rKM@7Kv zP~ba}LxyD*mmIxMYILOpqGKr~HP^~S#vkm;G#KZV39L)!ALq*4th=Qea%Ez6U1o8~ z(UqADg01a$rII#*y#HW6=rwO(NxV?}faiRXkP(-LnqK1f<Pp_s<&|iQKwE9n<Ojq` z^phEBx5xqoz0nQFHlZG8)4WQDS2-eETJfk~UeGk~UGEIQbT$^^rDqQ!{VMN>k1jq( znQ8cGgS^Arb$+mO^gfL5<1^LP0a|wk2JC0cr2M3Pyd$<;ayHJ(&uHUB=h<!aUuRO= zWD5O5tr9Ko%;Pf~%|K@+<rFCOGNoSTRfFTwiZkCV*U9k4W!@2MF8Lv-(COE+*T`Gu z_cUg$`hv{wtcY4fh2sCZv6A76i-2z$Ox$d%x%k_B8}s)kV_6szUH%Nf8mNR(r_97l zi#FttS=Q9siEn2Yc@rt4&W2vPi59oYH7iOd)VRbUfZNQ7YiDM=*s{OT7R=)QC-CB^ zn_qQ5LE;QGS#4c|QIlhD{sX9kGt2lEeTWKXkVsT8Q%|v&*5JhifsB@$x%~%cXJ*Lv z-<d2Ev!2MG5R52yoM1v+1IVo3oqiI4KP7;3>Za_ZeKI4h8SurNA!p`rH8oxF@GCZv zJj%nr$zx{zKoD-Zm66Y_5}LE@{(7B+Ad1Z#2j+~NnWTaf4y6k<kyxM9N$@{k#{i7N z)!WPx>iXP?FM}q)hwncL0DohAEoUsRvtc_IUH(1B@&~G$Hg$t%yB{G31Ng0GHb+5z z{e_s1J^&J<skvrGkcAZ<sJz5A#Hd$$s8?(B;c{!V+xo7`-<1-ezo}+E$f}Qb208|W zk6GxU7!dODq*)X8-~N~Kf;@A=L00@W|F$!k7;C+jacE~VukxchZ+(J~ukn$kFLz%S zTiPb$55G=xp;N@AX3ylkCW3Zd`X1yKQ^5qM{@}<JNRk@!vE&?k1POvbb@c}p`$Nl@ zI?>F<_G5rAxW3ZXE@wh@-+tMsuAYZq+21y=%?hO0|3*@ko>=SmSt<1pdz)LjZ(5)d zwZDD)zLF`{<ZW?FUR<}L2*AmX$Jb_Y*S&K%=T=KMGFS0w>l=i}E&hQVM>Y#z^l3Lu zA>Pan_99I~>bmuOH>85&aa+1in-a^O<kb0#n`RI%_Uq1H%vN@<%pSoB(6~VkMYElw zqs3?}W@i=6c8*kmncqQDJ@m2MwH=e)Rb6sPG%%XEg-IKb&7M;!ka;cF@{L9M?x}kV zpg3`w6R?AhB>x&|-^6yKE<Ty1B%8eJ&Ltw1sG3JrknDBe(C6G*a>1~oJZj$hehFA= z*`J7LjZ1j7^AEo}K@ZL$qq{lm1sn;58@p?f#jyK*|HqXD$>}AC>+h~BXLk{$<fMMd zDWyS$91Knsk9)P86T($~HDYPK?F-v-^+htUfA4SE&z-HRLGBvbmK;+VOP+(~J}!L4 zlGhm3KxVtfk_%?ilvr}1Vi;8Fx$_P6M~Q56KUNPRw>G|_+)<bK0WY@atN7vbi%8Gx zVSz}MKeNCR3p~{VaT!%gw`%71vq0`*BYTmf`{DDY3uiOJ0&xhnh}wqFFSkH$NFpVY ztB(5&pFhX~3oQ_FRXUTJ`TJNPTjQi;ksP<cN(+3!0{b*wJbZqY1$0<I-==ei&#$(C zKU=_VP2+~oKhy$lw}5_4#}A)B!~*78K>w!0htEIC0)A)#yEpASeEu*C_?`uLP5p+? zmlt#|p@Z6vRBq;N_<RS7ztZgC0R%GE1t9RU^~*uvSqlvO!i5lc)B=Hk^ywi4es6(5 z;8qKC5V+9-fdJ#0lnw$jEwE41j1U6TETC`GH$w>E5eLBS)^u730nF?P=+{&iLf|+H z=-+fy2myzx-J8A~LSS!8;Wh2yAQ1JU&xiX>0ll&<UYA^tA7prn^lbhGh(odD80jX0 zeTmdhjUtnC96KW_<zCTvK%+mLNw)~HNAjokAO_pJ2eTOhLQau4pl?UhsA3`Xet`u` zi_XkL-;8#Zg2hdTu+?<HtWQI$mQS5k%c4Fj2s5h|UY+@Zcemeg{zFys$Z3N&{+P2Q zcrH0DR`1>Yg5URX4dyYm^sM>I4K>H2#GyV|@hdMFD}IEBf8(xFBSjgQKw&HEI?f^G z9jM4@h{%_4`DQEMS>)?_oc-0>1gz<9$St|K-5(TR@8OwF>&I)(V^U|iPV)rWLr5`v zz6LZpUSiB%VxR@OQH#B>IlxKC3wcPYXp#wJ)NZ7hkY@W>;0~kqedLY!)*VLeD;BuJ zs9kP>!KfV`jM_h2U@&S!nw@8Xd878n7LYe;ueN}^QTtsB$Q!j2Eg)~yo@fDiqxP#7 zkT+@v69Bs%um&)HP>e49T&9mX!2c(NG@#-C6=cqtCE#S-@J>r#ab*x2cd>9#i%k=& zObr!W%Y^|n*q%w0RCRM#Q^O6ap&MBu7rsH^S1J6>9^t=L_yr1oIxk#?{v2M^QY$H8 z$dnoQYZIxnlBdRy+%IRSWsb2X)H=S@GMS*{miEjbT)M5_-P|J2rE&W5;#<L73tw@6 zSFS7}^0I^Rak^0bZuiTR?ePt}%WG)`X%+7mLsSv(Ce)kIv*w8s8{4ZJ(*5RkeKF`? zawR63y58y}u3Rb7EntZa5L9Z8Xp;%|74DX)dA#}6NODzXDG?$6$gA0i97XE(rvI{r znu$A?@<iI-85B)!vt|`FjkZ@${sM=`GrPvO6<u~a2FEs5Beb6@^l&!1J6F`~(v*%+ zCKb~Mvn0ByJ#$$g$K+>GD$?}g$<d)xN#W|~`X%?fgcI^xh&|_gPt)ia1S~|@DuG=` zD<a8vGk-PkYrHS>mlc7^B4XVf(FB>ffhWG1d7PBmPg=}Qb7mdc^VCg@`#|3mLyieG z#(mJ{Ai^xZrqYQp+cdum4=48FC3Qs!TTzv^dOAWesjrvVAslJCYa|rABccAPIJ>#1 z_8oyQ^P+z0^hz*OA%X6I!oK1sE#HTg8J=V3hho8XYf2Cjjvv0zahW4YVX}d7nT3wa ze9;1t4UEeybQ5A93k<o;LMI!%PiJzn!9q7PzG8tPms#j!gXI<&a+!rrHu$pzhFoT$ zn;GX>V8~?_x|uO$f#Na?oosN01>mbh5#>EI?dlp_2_7EkImmp_2{9Sb(_9LMIy> zV*%na3!Q9mfCa#1Y8E=#pqv2Imk>Py8%O*!M)n4;;rQ?pe-f8qj5O3N<!;@)@lo?+ z^P9;R&`>k*IdzlVu8B07I;qs(6IzJ{r)_tqXl{EgsTqdHV%}4=Vi7HZ?gzcWz-^)d zFdE;rFS6cA9MBkDNrAXUJo$N*g1rebnNg%SeM@rX&`th<-R$^5ICdBx^ElS`i^OwY z<j1WC7`Ku3w-|>jgK>D0z1lb&<;J0R%`k>e{=mZPOC<g(V{tnT+gFjF8ISI$9DFNp z2=^S1uQPsJU0pwAzb{>J$_krjPvhYqR=`4gtvj<Avu(nV-_p@>pZ2jy@-<4x@|$gb z{gre!Faq2c8U@yXg^QH@uUBbNltEPY%daAlG$bE^&}i!Gz)=FW;MnImH-gVCB{k#g zXl*hcOA%5suy-?JP@=NHUrgm}t`Wj7iTEW|gwsCUG~L=^`&Ex4SEWV))Mb;C<EwCc z6Ky^5K%C}8_g^U=-5gGuxlL!27AHpylHr2!9kXxM!COYQ{|U9I;9*wY`ILtZ@es-+ zqn8kU=v>Z;2dMz9RW2k%G;s7M0!>o{$aM`89dy=eERowzKzRwRtztF9?0iP=rw!n* zKLx-a`gA))q$8pZ+-e5L&A0fYAR#tV?dbW3ER*vSLH|;P>@Sjf1;)sCNSaO`b^kNO z+(VUfQn;u#&NHHD(7=IS;x~{pucz^<`$JR4h3LtTe<}8B+u@F1X*^sBHlwM=L6eg@ ztra^kntVAD|I4TGCk02HGKzY2FGrJH5GggN6feSuzhD_fsl&8O=Z!{j-pIi#vBJRc zRj;LlqEjOg#6C%m1Q#QRw4R`oOkU!T%6C79p4<Hu%PB|t9?FT;km(sQ12Qe$rE3{& zzV63)%wa@P<)w70Kix2P`lMz{W2dvaUDUgT*vR>lMTx0~Q7>2&to5fBrNJLYJ!Dac zaaUQC7;G5zD~p27o@-HJvtiV1i-Os55fIG~vkjxZV^OeNOyh|XnS@c}EDFY3YEfdm zVHD>MX?!1yKbY@Q#)88rwvdVH>m^>aC^6$Os+$lND_-JJixOK7qh7P9eqQ2sixPtl zqof;*Z|~2_$fCrm!>B)6)b6;KwJ0&|FiOrN<J&ziG2WuYzJsWi2qBqE_z}M;uAf;6 zIsx`yNdo`*@NpXs&-37X>75^K@6KFFmxSOyk|N~(Aov&%e5h4}T45u`r#S>Gs?4Hb zjVmoGM6jYhASAw>I`6lr5W$LCYf&Kh=N1(rSW#^j1%e@W>IxC8s9#$Y2)@vwLIf-7 zM-~NwPq3&E!HSZ>tgX6_u&5BhiaN!jKybN5X^s{66jftUAb1;^vXsrXVbm8b3IwmS zs1U)*)ytwl@M4P!5v(Ym5JT`C78N2`QBPVF2u@p6h+swi$)Z5;#TFGJn5dRXgk*lg z&m6~4GP8LHwKqL!sQqY}p?1YKP&<!iiSMuV%eYo6bG<&(74MM(QGXQ=|949ETX0GE zS{MGH!mn5OH$+9b<zDu@+I|q$mhX$Og8P&-ZL?{cwKGUpOm$^lq_XNLD?BHbD-Avq z`1?Ux6iYkCDD>!?tzZm@?R><lrZ4HLpM8_pUqEy;Icthi*^)H#<o}3UMMc+n_iwOS ztfczquf5-GgfHYnT07IF?o6-W<2sH5e&up$oe^%IH(#0CI&YfxAJjdYoKtgT^U;_G z^kWhW_N)z_tjo=A1KfSwX*m6qhyUD%+r#^!h<Vk;yr!6i#B?pm>VG9=%bw(bs|=T> zpquZK|CvYTT9RA+=rT&&RZK}cl-nm|c;ND=e1nl5^s(|vE3<h(^7<x+vg*t}pu@^b zS2Vb4PExB52-|Bklt*wnj~TXcmMc%EX(~LIxlEb;53<BHCp9aq%B}b8yto!4BCly` zMY_1gmE*OXqi^_LLPDt{j(1jRg9XbBZt^<g`U0q$XVNw?%=2m4tQkRC(u^#^p%{C- zWwU1H1>zAxK2pnOwdMul62hgNLm=bPUwo@5Y(_u!2&iOeo9T+;I*sn=IcufSl-W6{ z{aY+F0Kc^$Z#?-wn{O?R1)~SY-t2xkC|rb{pzbxu+Y-y{hn$=n;-Kn+$BZr~^YBM7 zoh~2&zKr<^$G`18xZ}p6#h+bnbkl?*iHd_<=D~V6n~?43bn?m<`hLtPWkW4Q4f~sC zB!xQsX}0@)U)G+0aLTTEZ<57@ERv)gR!Q>aOL<8~gVa*9(NUUgF^hYoF|Qv&Wsh=x zNgAtWbU)YF#pYiOx!cj-Wx{>B_<<SLzhHw?9rz6$h^9u$m%Vo#r?d)EC-j40uamt_ zK3zgMRA@JEhZQ?pAquAEgLer?&m58{V?L2`rqq?Dz>rAeOY;IlB6U7V?)@*}{qke! z3Rek)>yosYHw|6o44iV7O8$8pq*q+yUt!s1EXxsg^TT<J^WOg~HCxMVeyDh9k<sBg z9{!*42I%PUiz3$?Jq7z=q4vUfW1q`%^!QU($j|g}^!ROx%H=n964K)W2iu<Xc*To( z#Afs;yoBg9l07{?iK9oMNolh5cw~<>Mvp6YEXO0w4)mDMPlsOW`Xzq)XuAQYoriz( zmVAD?l~UE!fG@$1z4GN^$yJc@+s#%)^B`}4jks`*&$DN*xWE-XSw)YaXoGuKc-}sk ze}3%>viavom*Hq0nSNvl=O6CQE}i9Aa+%FR{S}~5%no;10S&B$0+;G`Vwp`e_2c@E zv6S0TQ)=a|ZL>bU%p-H(W>+pHv}(&-cS{@{4mBC%U<5JK*{YnuD4IA^3=ag%2@n8- z$0~wq3k8ay%E{NkZDivTJDFIV(P}LtnX-%L2)CAvT-ouI-(K+WizWfowf7L$-ow=1 zqFj4tI=)qUv&vMv55gFx)xqTqITLSHTd9afOlWm|ICQ1mPqM7(i-d9e-WjV%ha2rP zxRGtb9A|WM=%QpH4zR&5tNw9#Rgv+puJzEGzt2(v@Q1)}pB3uz7isL~OVrr1<~@?L z8f_BGqZ8!6M-AK;@$l>33Gx0?-eA)@Q}a8f%Hve#H$d1el&SkxMl+I{c0=oMy^4;u z+MO$X`JBLKq}A?S(dQZVX?L&m;ZtUqtv&BwdF>Hv#~VEShu;p{5!}C$9q(@XX@sWt zwq6xBH?VTJY(IDX1@~TDQl6ZzD{CEzhyEo|Yp@z`YuYU^Wn)uib-s<`RdhU%cP6@a zoUL{ooo&aTb^;GTA^H0Hi{0QFkea26v$sJ6<@Iyr?XL1(=VBi>u3qk0UU0vRn}1B+ zLH=>&Vs8wcaLh>?+NKNG)xPBh$PP@!I(Kvf)P$Wrr>mU%pH5i|vb9}{eidch{d0w= z)^Yg9nJXN%j>ARHT%o6R9A0wf8fL}~$W05#aly<Y{)|~GNwa>6^Ja`S{~u<I{QHL2 z+|9%$9p(F|M$nJ{4p?X9XE%u)sYxVQhg38@Wb}3^4}a`Nr0x7GTiyMpLs*3@(&d;- z5e*Qa+I1xqUK1tidWq|VhIH{yrdMit<+WVRH+-tNlu5@s+&G}S`Q3P*ZhoH)0v;&k z$KUuz&BD6l*Gmj@`OFxVnHdcsgPlq+1yXrfjq#oJQlXo}Eh*8pCHiputE{%4|NMVz z5xE7u;#B~nr5mv|xPG(gBwR#jgK!AiOYS?-bxUaR3jFamDvN7~4lcS|)1_jBeiqT3 z?(xIS!PcLhgRQOyc9eU6vopM-mHyw|hDjs;@paAC32O&<ZtvROo$Ry=2H<tKK4@5- z$HTwut?k{9g7WT+4)o;>xX>ROelNMA;Bjw&%|xJdu0!dg7X>Jd2Pho@Z{ImeQ(2Vm z^@kivNBqlB+KUygL+S4*zXwXk=c6=``?7ewa_;BE>pcNp@7octzxw}-*G$In+6UBu z*Nz2-*QGrCU-}_lKQ=8Wd@1jKh@Sq4+})OkNn@QZesgMo*M0RZiM|QmXwtm=N@?(p zhfN2V9(%s;{pb?Hy_WCl_i!7>-j60(kW2_qN>^<H|2nnr?|rAx&!z?=x{*?2>Cs+n zu+LRyU-V{QNPu18+RjUI`_Q(PZ^^|`P9DYj{HWgEnK=8EQ&c&ysaetd7T5l*|Frgl z&cY@{sH=-Q9Q%1J&uhaP|0mbWF@dZ164fgYI(YB$<+5QshDw>F&M3G338k=qA&m@K z!avrNz!v^@gZLi};jUeVe&8JXY=$LeZ5HzE(Z?n?*0;Zg=co;S`|omqJ(W%v92=N~ za1d1)OB*l5dz82!4t((W)PN6?xov$G5m#b?`t0c{s=s9~dOK!GbFQMKdQFe%W*0cL zp@$}VxQg-#_}i|cvhxl2L^Cn%yi$3L0-v>T>qe}|r<u1X@Tl+A<}ix82A$6+-}#Jc zlo52k<EVd~&nOj)mm?fUO=MJwy5u;j(@Ti+C$~ArQI~!$$5C$uj-%)jg7kTs9nE(X zXWDTd#WbmIeLfdbrv)ygB%J5mNJ+C3x{(6tS+6VqoGYoVTwdb8Ge^9Tao}Hg2R!rx zFS%8_I#;ky6z<oV4X}Sgy5Rt~FKunf`jI+#Bsg)6p(V8(+&8Q4f6B4cAME^CSf5cp zZ0)}PF}Aj4K99VSka_4YP9BYP)``Is_;>!68$g!QY|FWWN2*8IwQzFHP!y-qvj#0J z>P>s$D8Xm6H_`*&MNlLcpDt;}4-8uh$oI^nms3cxBl9vW)$M<(P3iup@$e6$Igdax z-I+R?z%kwLlFfWz$(97z`n%D-u9vd(pLahU_66Y;!=o8qu;EGHtaK8S>5;{Tb@>8p z_-c6&E?xnT4=3CH&ASDB_ljMb4vrulm;moz1=lmRTqxg+4&{B0aMGXbJb1~qYM*0| zF9Jw+9y=@Apg4Ib0CCr&TIb~Sd4Js5{73wB@e~$4*qHt+T~J^bYfVoWz9EeV{%r7n z{$3*ui_ZLdgUAB>igXl_?tecIKTWt3aX+*faYz4;G2rVBzOU*Y3YSZ=HlF5^Oaq@6 z?kaOHH<)h`LT+()4S0iZcb5!!gYT-Uq!gm=tJ0>4lw~>0UeH@@DxQ5|rNitg`W9wS zWTrKvnCsHikea32idlz!6GY#uwXof3d^Y6?^UvQe%x}J;zIjZD^{+J_CtOlof&bed z<#5@Xke;}#1(#n6ad|)>59KK4jGyd4F;nG<AOHz|wAu^+)rl$xlIjp7)gef#Ly%O5 zAgK;PLNNxCSxW?HAu=*Ca#rMQyVH0k1?SUM>wl20GJ7*-wGJJbE`Lnz0LtcdE_VK^ zhV*e9nWkynF(=bUnVFsX-$e!Kh97*wh`}LeVOzSWHFk4D`p_07)I~%`ks#KxDdOEI zm!5bj@osD%+7_vN0^3@!8B4jc(nSv|2etK1CaP}WHI|MJ+$x9IgPI2tJlY&$F92Ev z5%0g2uwlNwPJ8sXRNX<)*yLt0vUgUUlx`S71K)}!pJ_-wWX*g40*48{I63M~>;K$+ zvZ=ePN+!II65h>`maB`OCN#1TM#ad#t7;x`3O-;p!Ft(uKSq|aSKLoX*PgacN9!8z zEQ+^dFSFcBNPhRKyJ+Y>cxrgnxqU1>rK6}W`C=r#7%n;i_jMCqz+IkKjZ3`74o=qL zM{zmjH@?IBW_-YNc&z-fh%OQ?J7GP^_<RyyqIgc+jQXLtF7aAZs}`4wBI$1z)1K-6 zdS=fynDw-!gnzmWwN(i()1K6qf}W3+ntb^Np!N=b_KKS3W4$9@_GWAROs?}j?NY); z%1_qVp!ni`_3^eL#5_M`Yi2Ltk>$_c;V;*vzumhoeZ{WckECDlTI%(C#IxQtIv7Pk z7j2?lg?d?DhYJHHc(vmqoo(1umz=@%$vWpSRlZSc2dN&a%iL$|r<S4l62mr@a`-e? zurcl}5iYdEO)r!Z!he3YP~;Y$odjS6Ct4vV_ejF&fq(I$KXK5OYnzH(R(UpRY~VVH zahNUTZWst}A>cWLgjB-OB0egm^w69qcT4=r`KhGg8|bV=0(Y^7KXzUbbhO2<<4Gel z95PQc#bx28PV@IBe^1i!*9D2U1oDjr7jNnlnIv7$rZ+%#QjFn8_XG%-z>!;m8}|Wx zmAqH+<U*n;hw?Xs_oM2PQ@Ai>%5gkvBgt44sB%U59+|V5WGNcHA95_s4|l^X1IEQX z@W(sLVb1?*{*^g$t!5n8jd$n|#MS>%rku%8q!F0{9ti>nEMCOBBC16f!!k8c9r+bA z#l_Tee)8(#?<h;u`_wn;tj;VnVGO73)KOqIv({fA02%krOqAp!y)piOesA;MBRu>Y zvF&j4-cUBcRgd9?%1%`Ij&^4N&vCUzrjxyIw-I`EZMEVcUr3mjcOuCdT+IN1dsD4f zhX%fu3&0i_8@CTwspJogjRRvd3}ZYEV_@qz-VI}!dZ<7*&;3#;%dPLwpALg|xJFC$ zt=11`0~z`YAbX&5-g5pHYj?a-V@d+_V5rwWYAYiI!7zXG*72*2!(3j*2%`hm<CU+r z{NBLFy}=FS-Kx`f$_rew_q|reII)s^CX~ny(>O>MKXq26o45DXx907?&@4A^U(Xx9 zd|8h5(sJx8x8&3uy7wxU9>qGBb==l3UV3?MX&cPHtbzLV^3H7c%8Gi2%i6BovX-ra ztBbg99j#gsH#%nAbnSmlEk}>F*uRh3%nYp3&8ne3e(2gBp>uYWdwVh3i+YD*Z!Z&j zduPSoHC^0&K9k0ap61+T^mNf3CT9ipWQMOcx;H^P3_E=dMrrAa;YykAKZ3_XsJq+u zNSirL>@~Na5)XZB2$(lf6FuEq?cooFKRbK;oY2oZbFJwT-MwwaqbCM<c*t@LWCm(v zhIz&tFtMr@OdoLHA5=F~5?O#?MWGXykmN}w9A2OBs_`KBSFikaZ{QnV`AT`}9ee>k zS8>-1H4X9Kz`!$bzYt$CMRXx`{&)!B$uq6u<}uozZG{NbO#W7Rr>|uj!ZwX~Uhnoa zv_Dds)V?ZvCCjx}qHT=e0*sloOK>g!t$}GE4}a71;W)k8@dL)g6z79Pn$)K(M{&$G z!fSa%--y_k1GIzbwt!W70>m=#b$a`lSN)tfV5$LR-`fm(`2b-V+6W{B5d0Uv?3KUo zmA~W-To(dlVje)A<MN?AfaLJ^Sukw+++aABE~@{(asB7vZ+b4&`~Sr8@$7iSLojoh zTxd<I$GIUsUImcX1%Ol`MxIBVA;fI;T2?ujc!>-zrn34qFJsSd12jkf0_LxCj+OQJ z4n84$)Gl3pT|M=wqAGwmAdm7!m3U{$!Ow|;=c`Ck6yJOqKtt^;z`cdM<&|%A1jdN> z25?^wz~qee#HYOKtvG`gVU^>{8ai9-4Sdsx%P7rHyk}DOaHcI(SnIHr1Q^cc*Eroo zFbRe<Jv)?ZMJF3?H#oh`!+-4A5KgdSH{S_5mN8vX^gBzrL>aQhWUeRAoPPk%Ck4Fp zh&LMr%o?vn(y6hzXG36WFE{|^IGbSdfw|k9`kLdayq4J{0-9d{<XnxAd<*FCI=){x z7{l?3Mw#)-Xmns}d`?5M8XdyK=e_bz3}PCV;@OKN5!&Fax69{d40E7+uld@)3ASMU zcbh@ueja}MnGkMI>;!HZHxjQ^h8)}`kcY$x`czPm=g+ND#E1zijjH9hfjz&#E<%@n z!7F}sx}eC0$Kr6Z(0FAYhhy*~4oAT_Sc`fG_tlS7HV0oJhIes4xBao{#@r+#Kb@qS zV0-4l{znwaS7B~%gD?3EpJ1n!VeB&~YJ#0u=3{z4|COYhE;{{|oAPz!Ls1blHJidj zB!qu#1SIPfw_uC|6qBGtxFGOkygv}Iy*BFv0r!f*G3sq6r_QTh3bWg)fuyj25pIU@ zb@TUu-FlqkA2~gOm(UQ{*_!Wvy+`to)T<fk%yV>5X`LS`C%ij$K9g8wQ`(eY87+OA z$D`!!_K#c1l(xu(`I$NT;5;0Q{uhizY4aLlxZ%`*7^Z~8AbG)IdDk0qSaz2ghdWmj zIEm*rx@?Op*ut7H1}r=G@MDDH9@|`FU{|?auzvnq*Mvx)Lp8aL5ktB=4CnT`48M$8 zo5Lmt)0?gysMPYIQoUpHnrsFEXSnUXoPX{d9-Hp^m*ViB-sgf`)t}6&6^60<e`y$7 zz{6qeM^A&XVsK~u&GN%q%`a|9gS`6Wvr#F-m}1T@GW<O|KEU5e`j)V=4IR79FOMOb z*5jO<3rJ;oU-J`T(_I_=iS+O~#Jq$wv9wt_#nMGXVl`;p=Su62$~{)|0^0bJ6`U_s zNo*+|9~;ab<kqXb+1C=1uIo-_OwqoK;*vhB^iHXS%wN^Eb{_?B>20RgZ(rZr>)2G# zP`KXfc+Jj}1p4(Wq+hR%#oL*nrd_<ApEFR-O3B{&ve)r+EAMy#oVL>Ic#rRo^o`Q} zg;r)jZ^Cn4$GTQhy^IiM>gt!gjt)NBya`Ww6P9?@?|RiAdF5NY3M8qmUd3uI*6_+Z zy^0ULvPhd(y~wM0Mvf87zPEya^<LS@o9RDRzaSy`R{YhElPhYT!-AQCk<1KUX?_JH zR>zp5>6$q}RG-zwvFW0sSm9P|Q?8bk%+=$d|2??jV~<VxnpCRa7`KB=Tg^Iw75;fI z^8T^Z1t;;bjXxYiOhXGl{WSunarel1PxJQ*f6wx_g#Hn?mN;@)?{RNLuj%VLK>}5M z^#-pT@e!HnMXv)Le)(#ze1%uNL|yDy#rI#l0W3I~`ImzQz86`t0h3C+0kx&xfY_i9 z+6$Y$C1w6{)JtNN+T*HE7nR2fx5ND5rP(39i{qmQ8($BGf7!^QFf@Pkk1Pp8^Etps zocgfE1ryosdzXt9Y{Lb2%N$t2rWv@sz5t+VEABP`K6F#w9KeoT)+t4fUpFMzQ&N4p zA8s-=A6V<1{=bx_*CI`3+deYX|JS~s$C5_AA2u_8uV7>_VH{lhaei7hVcMI2Zi{1A zUyjdsiLubnPI(Rf;r~6CW|+?3`kez5lG)Ra$DHzWlN)NC*p}I!qlG3jhx1AfpqZne zkV)FmRT;b90{@T7n(n^`kB8}1xBnXFcQY4BQ<8(d*0cYZU+wPrRn^xko$&D~Jj3|a z?|3nO)dI@%_*F8U<5zzmjq$4lY5p<4I$I_6;8)sj%<-$sDej-+S6=BZUTKb7d8HSx z_e#I9Sx!}rRlU;cRey?((Cc^?Mzx)<72;oB$15+38+AO-E4*m}|DQG9w8i5Fs|p*e z4Acq+D!gg2SHT1--qh|@m~ffpP4$j9HTC38)%m<h>Z<=eZ&Fua3FR+()gOE18@vwq zO!+o-NnH`Yc-kv})+>L7-A=E3iPy3ABxAuO6AS9ef3m#C7|}n&e<p<drw8vT?ZJCs zx;yY4h4kb(3i(_7=9fUx@tX?n`RK`SbpH8&!EdN8+eFio#23ML&=jj3J=u&xda@XW ze3rf36<pXolNROeKXCujf1JN;(t!Ugf4SCihxc#l!C%@t{x*Mkt~1~-r=VVgL*1jS z>HdG>;rL5}%$ckICV!c=QTsI7!rBZ_v=dgqH>;dPxXX2|?Q*%zt%hWKL-J{vZVqDp zoyKzfp{kk6C+%FqUd{i=J7PuY;^YaHuqH0V(m7+hUFriDG0h@+do6G1d-&Phu6Ya9 za=f;b3uVW}@ZB?qV)ZYEMp~O0(#s5rrEjnZU6woiG<V2UN10fggqKsAjz$H{Q*QpT zHnD{iPcu_+#;m2Od}R%Um9TvlX>Itpw(2f&atyVJtDJAJqI7iJKgU(6iv^J>JZ%%s zvnon&4`1%9x}A`&QZxcge;;_K<2Z4tSN%pTb@h;xdFQ2A+}(eg95aP|BQK!?!O*L< z4L2eWN<YsuPLN6awjf3*VNLA%<p1d+4K}w&VAqJHU4(NpWfA~Vd_($L16B9<acm2p z9M1nur@Ku)!#28dhwbVR+tmTKXDty~WYrSP{}9zmh{``|35J0WPo5JPNzD(}%encw z=@&bjtBL=2>=S2>VC-tXWRpT9BSv2>k6T_vd+J)F9JI<mDEB%t-E75aGllPSU?q+1 zNNcASa(b#U6HCvpWIiKiC4b9N!(X(V+_xw-+hP(gUuj5xvx<-NK&#w_PhDHM5~cNd z%a9rg*=9RB1WYCFycfWN1n9F-JYQ@3r!LcZx>;_a#9Inj=~X`=H3*XT*@(?gd4q4L zT5nxg!8Vy!{=7GE3CT?=_69B&{@WByiTCjIe?L`p;5PEL#EfYV$T^}B5kM6y2xUcQ zJ4K=gW#hY1TM9gNU5lQzj^v_M!}u6N7z>UIdTbV5Wt&A!;bu|tk1(6gI;AYg=v{hK z{9pdWc+W9B{QiqV{pNMq_+wrCK*eurhm6+c$vlC)Gi#&v)Wwh1Q@HriW}e260>*T$ zF{V6zgp)Qd+CJ1tLjy-wI+nAKzO{POy$SH5kLwh{<-K3lca1Le{T(%Nq8OHQrLmlu z)TDo6Ioj|Vi?YO6&P+bUa+aR##(xbNcgAw&kWT+TH_H)Y%d#9%8yul&M9Af2Mbdnx ztFpt2oi^6cuX>=2+l}IRxzFfYz71;&KFfD5%JQ8}@SV4lb?_a|s9#AZ$Q$q-|L^i0 zRp@{9+d00o5)u}LDZ(u4bRTLg8StH%gc{%RT3dJxc@I~}@#Xl>dfv2Gx0xqum_*2k z0_@IOA~MM5KicP0CiqZ21oS!cW?DGVZ1Zfek2cfTMU--~b}e4wTYqEz|99~$xkQ3r z&7?aazw+T%@QCl1^K(`yz{H1zXwdN~<6Q|Qhh>RjIfis$6{#J!GKSR2=L_&7@?J~g zkgFL73prQe3n8aEkE!ya?kvm7@vAoS5+z3VkNDLJwFz<dZ}6*o6dg>G{&wzt57i}k z{E9WJZrl+ysbW}AmS4?t-~V@hCBwGPT`7%=kc}PH0-TCO+W6IM9{yPmhx|%g%Z{I2 z<KibPegyG7`PHdej@1aM{$mLW9(IEn#qe@VRV{f^cU86VkQ)=(eZWyLzTqX0w>{mm zsTm|!cObPC|7>nKiR@lp9rOf0+=Pk|{azZ3;(@wH4pz5Eq|))gd-ScV_Bvg})>=g% zcKwgOYb17^WexaF<5-Czcc}7w*-P@+-;%!;HaO1oG*C5$BLDX2n~spAqkzGIbpx`F zJi#T>#B28@WUo#dLJYFH<;6te4_E7$_@ldJHBrK%Ov~*ryfDXp-hzkY%>>tBf%%)L z$A$}<aVEA<_z_1MqPTfhD(ng24%a9ga&4-r?jGML%ZKH}<ye$X;eQ?x38odI6FVrO z6W1rA1jn=@d43aq1_6nEiPwp56_Cn!Ua5O=GS@#WF!R8JdHWOiUzmiA%2-$lEb-DG zW4H5j@&AC&4G;NTSTRHF|5Eo^Y`YsD&F7oXQu%*U)|*Uyp}dLy+U<{s+VaGG^x3u) zK#+$BrNox7J((R@Z-A5W%`M?2jB<)_A&wIH?Ekeny7_U6#BEYLAz+i&az3d!p?dT| zL<d}z0eN&KpW5nReEJQ)E&{n+-`wG^bT%_{4BhVpQYhMhK>qZ~eYoowRtT>Yis%2J zT=FKP`J!ck%;^o><PAisJP(FGZ37V~3*imo=>)zhDHL7i)HWngNvu(fZFpJFDvan? z`CDEGHz$u<x^Ss6rB8h#Dzk&?R|&t?7AaCn417%&BopL%3lYN1JG_CqIJt3^*SNk8 zRVN+$*z5TC)Y=aoL&H51s<jMvSO>95YDCNNfmhxZe|;CP8nJbSH&FLa-)E~RqPH}2 z9<F+wSG^@-#$gjbjCd1QX|(sH2;SLfo%l2qN+y$zVUbR3me6g&-+I+G;TdlNoB!*W z1=Rv48A}<ombjPS^;WFpZ?V_-tk<|i+_p`b5Suj(`B&nTCKQ){Pr!drT)y?AoVfho zylb2qd>jO|&HQdgW_)hm**M$grMG$bkKG^6OW(4Lnz!C@@lPrK*Ti?NQ$FkmVh9xy zDYZb~!xreeA!(eg&h4aPTT>ZSP8sk>g>rHWFD&5#mlICRK~AWP;+JFyY!a5~m+9&a znMdS_>vMYC|2k{qFo;5P;0gozLnf*j;>7d}osR2)7030M11rfxi`#fKFc;3_8H+zu zwUlRpSI6>&mnc5HY+6cUN2vtK$Lo?$H!vy9;fsf)BHO-M)t{I2(G_2<WNPCIj)8nf zQ@_#yL<Yxvnb)aw6;i-e>`E;eOJ$~u*VQQ3u3pO+!c${P!%2_kDMhNboDdVxQ^jAo zw!DCWs*2$|LLs~s(sHwmtgiF=u-dg!5B8X@`_^tU=36_o`(fpYCT|Z+L0#Tx@)nb* zZND{~CZm{n-c0t)73xXWo`y<PD3{pmf?yMTF*=_uF`zCWt|5>iliTIF7S~@>tEwAl zxj~L)pUCANrAuyW2s)|>a~SWcP}02r=SDTta&JqYUYP74(#p;+EX+-gY@wei={r42 z+9i@)5*8IS$=dh#iU_OmD=8|H?2LcHGUlta6bcp^xIy=Zwn)vh<~29MUYoq<Quyt{ z`2B4)Psw$4q~-}8ZFMC}y_QDuMrxk+60-NKdD}&A45FL+M{3?_&iad&IV?wDENR#f zXT=HI(p~61gq7XT$}yWi*=>OVe-$XPlYrM{1>K<g0@ye}qTxWC?!*Iwj{b-eva*2B zhZ2>SHB?Q{hqnniQ%F>aaVK=CnMjh(R>UTEj8zNcpCAM#@2i?eWb&`EcxNw>qhKY9 zGk88^MDATzO<MvAEAm=?$YiM2ETy5TqZUL{7c3}>rmk90l5x%vH84ouR=6WXkvrjW zK-FE|C2+RfO9*9&-sCJzPw(yy93wp)yE)d&jq>_rTaaYz`O6x5IRb{gp&;gGQW2h; zm*}lbKbIHfGQwkJG*KEWvYY?+r^8Y2h$p-s?#Y{X#0oDy8&!zY!~Q?w-Uhy|s>=J% zZPSuK>q(`B@-_sF(#l(_D2Y-hm)wLKdQ-xCfT|sWSd^CvNn4;(5^mD=c(@QOA`Xrs zprgVFDpLvyPm;c*1%bA_m6wr%Am<X0f>PS@lK=O&_Bl5<rOr6d^MC&T`)PB|*{^Hw zz4qE`uf5jVEKo0S(3e7TbabD0wd~=N-qA05SMP0U`@QTJl(sPcyeZOZ-c;{zuUX4I z$V%?NmD2mid9Mk*uFoh;FH?B|Mb)<C{puU<t|vJUOpivGNf=O`sN>I%dq?HHoBMG) z$At*bdN-p-T>sD^4|zvzj^4XCq@F}s-chd?g^VVoi{U()r{ACA&UWvvr}+P<s%TxG z3{IN_7^jUd0r~0IN9n^leG1!CD)K1Clk|U1x4uETBVj5JB!qsO{Wu*udk`({=ZN1{ zpq?z^{pnT~{58p-?Q<pGKAXL+YXsL_4n>iBniN+1oL-vCabYZpdlRPX(>E9;<-RYM zJl(oMT_H+DFX)W>T)N||zQ)#GVSo!i3%2Df9Y{12cf<z%a}0}k?9;GDvtfp;VCfS* zt<%_jkm`vU;@o?xTmI2=g$G)^4w23T9r?l;F79Pcbjyi1*?aG&da&cD4c@=>diDKX zr1Opn;}2AOm^%@hDboFb{%F$FM3dw?-4@3>oMJa8DPt;dv|N`_YUGVrT|{N^oGvCF zBX>F*A#bsO_n*lTZ(xiLJ9D31h{YU$qu>H*kBP-@=tzM;8@V;Ap=%i{MMj)X_#zYY z;SEtFqmQXy*c^4Qr<&pofCS-Mv^3?TjR2G_6J$5DRt=pBLt@9X>I)@7RbNIz%NJ@T z(`h)m!z6Kz=<R_uy&|(FD8~_fb_-wn@mg?1pM4?<96WA#KE@QuyZ4xdDevC%7LMZY zqJ^dTr{G=~mw|dKCmtS}mkvh5FT66nl9hie27vS-&a2D3rMl?r{(Tv<jCb2hUiRaB zru^H)NLa#cBm{emqtNb3EKkZu7b50*kY+iqXUaA4UN7c)*eZ(aVXIipBi<_R-Yy1> z6jZo(zrQM+dLI&XXHi!&kpCNfnSaamlXvt+?`nKMKoXAL;a&ZTw8)Q!a7<zQ_)N;j zjj@8x@9~a)$h#WnS3^+L$God?EkKSbd1&HB9Fju^yYV1Ur2m_&S&ipMx~g6;zvPAF zFCzY`_g{oacB6J>d~p(s)vjad96gWb=|7T}Q^Ladt~jO|=Nji#C-}RldQ^TJs?nNv z-cipd<twek(Z+{G+D_drsE+C{3aTXta@mbK7oZ>Y3{j9-CH@pKglsB=bpJbP@*csI z?@f6XvRCi#$X61IJz(TN<Lfd0r~H?|{h<vpvV-f~1U)+62QgLtqhIx|9#9`od7Vz$ zko33a!=nAHcl7(-)eDFx@_9CkL|?`ii<4#!3S?kiVXlRLz)3cR$93hkL3Qhx|75;L zwM4Wx&)us-kxXDO5}BOn5utMK$k&b%>T`Lvd^iteh2XrD_>NcR+^d%_+GMmY-0K+% za(t?2UtTUF(~unT$Nt;6s0|wz(Ay}fZ>{xKJmsxe9mgj7@)b$HS6*4dHSM<EucTy_ zL@9McWv-n-8Pj|30|5ECzD|d4JeSFp09*_X>tp8s8A*0}36`eX6rNn^;0Sy{buBzs z?gCE+Iv8y=w|j3WGtK?(<=R%w_#TgV%#0J;5zhJfPVPK$G%Ei|U=cn=bUgW6YprZw z{0)g4s_voAcQ?aS33h*7ezw+u2)-D&0!(<7s(KY@Rxu(#u(yL?(nlfq!_P*J=W=cK zy8fan`Vy{zD>XLnKI30grOvxg>|y?C5Ga$I@!N$MedRv+fFAx%*(6-6@)+8#qm{yi zT|rp>lY9e-Pg43K&_mqlj&Qc+_$)#|3U*<T=xz1WUk;PX*o!hQ8Jk_kQwka5t_%+# zRiP8HoF(;)!!7lsFInmx;dY!g#`p{>X+NbOuiCZhm;V9PM3|7@A$-jp`JW36))(|} zu-;8M`4&1J=<)}XgFd*IX!_tjJzRUgtyJ2ZncOPAPcFk)^-_~SUB}aets6P&@w&?C z;ihif1V04lh1xk1)qkLy*&g;DUdc@1Ap2wbHpyGpZ%Az$&$m@dZp_V=1|{H5rTOAn z2v_GSNozkIdM@Za<Mh){@B8rJbYECGb!+aJT7Sb-79IJCOycz2yH-kZ+-5VaF*g@2 zi;9DuUnG+vt&y)G!bOJl*5D`XeCO!?1yj7EA71bY@94)D`~z$@3V#!m^80>0^M|au zN$V6i-oE*dQ^3n9Fh&jLP-;E*sPcH}{Is|Dq4OKP#aj?9KY{pg!IkuFbO&Dkl%FDI zl)vZSC^R?z{P{(ZpCi)x^MXxx{NfkC=<Mgur#p9^M(Y;Lb}jifl}#U_BWu0y4)nc> z!z;McM+nq4OxLbfY;Sg`w0-~lGTvi+K*uAItXbt<t9v@}4m@#GvS#B|oXn2j6EFr3 zqZB~uyFwt1`K2CS{f7LP8D2;CNH|?+7PsP>p9s)e>WYJ$UUTf@XrUJ0{Ecd>wI>-& zyt;eS!t1DY@wX#ju6j+QA<ctHk+3>Bw_ry=Ok=LLY+H6atzg(=eO~PY(>`8QkY>rg zj?u7#{1n%_)+X<pNNV`4mXtrcsyTy{MTDzbp=q|%(?r(X2fH^bU{09$icAQ+WpdUt z%!}!spkiKZZ@zcWEd1X&c>f8M1Uku}9M`5n8UH07;iTJRc~!TIH%vfVwip@iB1*_` z-CvmD`5*IzzkhWP{pNaz-urtyDZG@cV)Of2Z7E@1{si6uYu#lA*1z!x7vBagIL{%A zTTe&Gud=T%6kRA|4vH>R*j#kyjk;VuWORgou=2*(u{3DViJ7dF{=+PTS~`>dqxD|> zUyO3R>?p^Q!zvx+cw(4x<dq3yo<(5t*DRim@bRqgI+kv4Fk1A1rQztt&`D0b<&T9{ zO*4`@e&eOXxE`BU=Wn`on7%R~hqUh|O`D~u)!{Z?tm9gK$V+4E+Is)ph*Tx}hKyFF zrfyH=j;l@iTY2-k*SelSentk=|G1%IetGr-qyp!G_D0BbGm0I&pG!z4xO7@m_qL3e zlIiL}djNb>>-#99Pd9bg!A}+V8xOknDbck<MAr_?_9rrl?KtMR_O}#6UiN+!%|_Lp z6jg($Z2^{~zfp8;w?ysMBDz)RqV^w0^vltcZz)Y~%vbafJ-Jo5X!PK3^+v9=Hd(W_ zy;oGNdnd_h^x`k5ozvf-rC#?$u&mL4DnE`V^J4_PDS+`0jDo9Ym_Egkj!tP_0ad=j z5W7}Gf3&_!qHk5Zsz7|?|5}8`389L~j+<7x8>oon$YvNvII?Py98aR~nAqHKmLoRj z1O70vku6^_v1#D@|4U-CxiBu80^oIC4ogJeZBdbtCX31krEOEPAB<`rH+XhWM8X#z z1>1Sds8r2cSG~cMcn}(u56Rk79~^Tvp^IOu@7}iXm6+h?4Rd9E7ZLp9=lWs(yVM?+ z_lJ6Rn8#argTIXE-z7q#@n7N*PWn+y|HNq#pYh)YRod=0dMBP`@F#{}Ah1Y=2wj(v z5iwFCJQ*b2Mu>bzWztCFjOzG~5T%jX3H9S;Ek>LCH$o$O8!t9!?&c9L{UK!UA}Xa3 z8=$pC0{kNXP#gh7N3~|mlJeJPqD$Of5QMogeTP;;n^@x>(|7hhv53gfuh&;_y|(Wn zXLB=wukCs!=(O$s$?^98|Ltvm_qO)E5gVkfUZ~h1z!A(VlSa-$UNgD#u<ZPOw{sz? z&<;Yij|lHA3bcI-H`Rx?76taWl+|G_3MAWcoFld^#s;HFD)BqQ{v*o~w3*}Ms{#rL z&Md9juz0Vj8xWGMLHL+hL+G?%UjpIW+CH!Qfb52zBjS6o`a10%ED4%Z<$UNStmuP1 z61Ub5j_F|!_2|?MTo7+1YMNH!0)Snk8G~?*v<3kju-hPn1FIZ8iRn!tJpb!|HGVFz zs~*Fy5a`$DA2aM^y<|Quy3jCYF^}-{A4K>&cv}&&fX4-YlVXSD?D)>gN+E^$)BJ)f z;W$0Ab^-Qy$}v3u{{umoR71<}rhm|U+&2hX7}W0d?T0wfqJ9dNTkxj#J%g-xZ?@|% z1izWBw{2}thPjvVdl1awlbvgF>bhjj)=Ljec5V+@#ut=Q+R=Viv4g*e?4}cMP3;Sx zKDDAGJY|=xgX=`6xO`;#rgyg`L6gL~l*^n)ql#YY08(uwtXoez*mdi^49wVX+Q7W> z4T#q7{>AaL`O!I}E5-hVqOAKzS@CZ>>1X7DCjCMW8xfe@%PFF;-ik%djlZ!A6NKq! ze*kfhMM~TsC2*XS&WV+NV^e&<M00{w`;u75L~l(}`(W|X!Tc%VM9io_`}Q}}K_D^^ zj#fYr)Y@!a-}YH#Zu9<uHs+2z%wU``mIwQdn(1v<GQHUEgd4uE-Ef?x{bk<M^tHN( zo3VOn-fu1dS1-tyBL`qW1g^VP{!_>62I6e5g3u}AvRJCsFYbi&5PKfkv!sLHNYa@9 zqzyqW{-gpeadD;aTcXw7h5m~CU&`1IDw&&f=RuW_YP4|Iw^t1AZSo+rUV7V(P9s^Y z*}Lsc(lh`io%~4w`~FSQ!~&AYTVsa-7R;3MO!5Vt8w4n2d?L8M1K4U#o!d6G(SOUd zT%L{c(Ex)#p66x)_n389ff8eqi2ugjkYjmu3_6`2u8CsJU8>t=N)+4aM6vcr`{rLY z+bK{IF?0i+BJl?JKxaWB+Zjt_^D@;j_?-WGl&lV{WGLjuwSDs70mbs#I_s~)iu!Ax zxz=Cre4YOK{r8IdYZdY~*H4E5$>yk^4jAsIgLToWdiJCJlm8W6UqptU{J+vW2Gf7n zJ7*5h_YwYW?^1(uW6nB&zS27TBYg**TU<N6u3PQ9FuvU3@c+_E8)U7H|3=QPsg%W+ zx|=**03&cGrOvnEYTywbbYtXtJN8??yY^ka|H$@fUj@GZUu~b&@xRx;^S);7JD*25 z<GZ`GukWR@l)o+&Fs1rlEbZGeG1>Rx<W#wZOyj*m@8!Ma8_L(sI3#gMqU}>NP9A&6 z*tTP5oIGm6sJ7Y}6GrpcZ^pOAP8emnw_d6r&L1|`@&7AJ>6{|}k1HX7Bfd2ai{jZ2 zEZ7^1%Kdt|Dk<ALhEh66QDXVHtgr3Q*&Su=V^>NGa#dfx)NcA4k-u!g;SA~)h!w8A zTT8D_CpH+dbmP5ptTGPI-@bgAD<Z1LUl+kGdW=8aUE!tn1qaxvip8Y8+a9`XucGok z3eTvvPpniU=TFQf-|x#$%)aPlx4dV$z52cp?V~=GFZfe`3;tdDE4ri6E0nWK`~Ii! zBjX;?9|eBN{Bv_F6fI$j&)?UkK>IxIo?37!b9^1){`DsPgYxgEJKx*)9>}(6xcS-k z5Lb7r0+TZ#n<v8Wrz5ftm9pKe@AoZYkc(kElp$Uh$dg~WyjUJE>4tL+pKs(5Ui6)q z&-+o2{o?x%xyJcvETTJi=*rf%v*sV$xufx{)6Zx-sdI<!Zf!e(7}(Xee`H}x)7R6t zg@;g9+Q;EdbTygL|IQt=&Y1q0w#iD)vqImWncluWmiOJC7O-k%IQ?|lB|3wab~SIZ z)Ryr36#6>{YBdi^*d;A2^O40NAFEVAI4-r9jt-XTh9)`AuMS`P*!zHi#;PdF41zn~ zvo?Hf!Kt0^MZml#V4NPh!ajqZ(DBgZ^Zmt>sm{BX)0evj&~u@j%8fe{n{a?}zJJF4 znM5xk?30HZ+4-JzOKs<S>X!B?*#XN$5`SmkYX>KGZrs`T(kL=d-lbmvf$rOof5`0* zQ@Q$ts#o29f9@nJg#tG2@b3B`mFPd;pSAzSo%}t}yK7^*bqJei1BJu=#0K8bCK(1w z`%&Fn_*IXt2xe7>pZ_r|QZTDFJW?<ITa4Car<KaN<qxiBYuI2gbf`n8uP1J)0;dyr ze$VvvgDZ=60Ia{s%CtYqyEjQsiAohkivQb1o>m<sBzV4wlGFa9Y5(yif6WZL1-MI+ zB5$eeM`vhMP+8Ke4NUigyrzP^Q^7f<T(y`9&aX&uGvldcsi1CLs{92m2?ZVefu`1n zGOc)%yX!rAB$Ie7lXw+_*TrdFAgn5JmOK58h|lwP;5?5_Q+7=v{Q5tGX|1!YxTXYh zsCDVYW9VpH#hEo#Q7e^GU2b8*&h04*K@?sUy}KI5`A>3?bucOv+xy-)IGNay@?S_i z+4ttb$&EYGHzgDAHMI_H{2;mUy{5#Qs8Wy)O|{39eS-(rC!S4i+*zO4DD{=Zy2gYw zp9H2v-u~KT-=8UNZF1v>I^aLTEO!q8eH&Xptj8;GbpFSo28I@#?Ig2n6X6dRmC{cQ zH00EAjftUTt~ODhJ3Ha`3-$Up?&Q>gYB-hd3lB~uHgDXXs@Zzg?`R-7ZnwIFS>pil zrTW}Vn#$EU+}jTB_p$k;TUXJ-rq-8JiAPewUd(}wAFvB;eM6Afl{O__Px@=PwjHR~ zum&bKexO>syIxBr)@|HQpudiQrq(wS>zWd4Hg5Os>QCR)m{^k;eQ`y7_ol^3n$^RI z;69NiS$iJk20@zBn0P<eobWf0J+WcqcFV=c7l)}KtBfiZyd>N4`3y}*?yp12F~er$ z`QE*YCkLawyRIx{_5warXCU2*o0`#!D>J#al2Mf0nEliHAkJNxR@W;SsuucN$6}yP zQ{t8IXu$LCZI}!WQAo`<$6d80ztDI&AuiK-d0sXong`&tsLI)Vrh?JIsSc0lS8yd~ zaAjFAb6m2V;}H3I_184DuFJH(O2^T+nZzTR#5>*V7tf55IOD%rH2xR^VJLwJ!j1nG z4v{knNFGT12n9<f1s>0@pi-*Nw6-$XZVIO8!N%O8s)X=3oqhE~Mr(cgCh)O|A<mu1 zTzv@4NhNS>xKUVc=n7(k3moV78R91x>FrRY1ZqVhK8=aBQfZtAxrp#Nm77CJuYeh; z#4DW5WncM_mbrPDk#itzWs=#|iSQ4XN8|m*@Yv$nTLZrKBLlwWs{Z_*MyXP4ijYFf z4GZ^Jj!V{XU+RDGk<6W($fcP~lEDCN2x@MyCINE#ro=;3y>Tav?gxzeL@y}anCJ~# zfFgf47z5p`+2D2G#;L2yt>-kY`$j%guKG^XZbaE!xK4jr;i<%?-4y-7LW(}!igx_d zuJkb#Tv{s2k6WMvas(-HMGEn|5zBPz$J0S$1v8?_A87O+hvpdmKAmnowG5J#=G<sX zqrZvS&wNTXwZ2s!)4L49rzsE%kT(gsHYMH-zXdGm)-%e|{)Th{Y6_;jcGc5bC{n>? zpvnPIkut;_kR!D|6&&RcK-VA-eTnVB#JdLmT@ivIKuLCf;3k_yX!ZUdlA@6ivHHYc zAb(K8WbSgt;=`ua=NxT=usscVqa21{Ybx>d#vz*1)Vi%Hv9>AkhsMOC2-C0qDLs&B zz0*_=>!-(Z5u+0hZw3<KPZv14CmJ-2IgD{D==hYHX2`rA6iy}9Z`_fp*>TkaG_N%H zV$?KfvRZC*nFiJ;9#8r^1-9_tyK8eYv6Fd9Q;lRlo`M+wdYU5WBgp9h$43kRay>W_ z%^FC&n==UQ#4;rML|0alXjbl+{TLz*RxIxso)0WckIuLGkV(8UqE)+{4&iR;U%jqe z)i}JtI1IXR0C1oNb^t#qcg*OGLv%GgPj6rM9i~mb)`(UI0OCrfFF(sZcZ;u6f-6eB zyDl$Fw~mqz(;nq$y@F3s)!_JX;4Q9nGMJ-|zPthk?AqUxq8KmT(S4KVKkfZPyF*Dx zp2JGi6ssIw+B|+#gvue$qhJoG*j80qKl+#|5v^?yi6m%VmKi<20;Dx;O$-=Pr4zJn z@hNHWNGmLTUg+;<WBNn=U!i_xS2{5`+}|<%QPI0BIpI~kF(Y2&$+(CELjL2g3(6yA zcjkhmV|Ux^3Hw_k0r`c&o~eM7`FoouC)P_f)4R)&(udNco00BTc=y)ATqVR@^*FY> z9q&S$+CCfXiTLDz;6w=?CvwqlS*qsjvUW;qq0i19*Y;_c@yEZ6l<>wS@wrku*rmv* zA8;z1zk+f82>*6kv;&w2G3ur35Zah?q_rvku~bd6)a#ngbcZa}N?bKQeC|d`-|A{f zT9OP(s~Gg|GfAP5EY*>}^Z?M3B6-A*`wJ`Vn`2bl^~{}UpSXS{#AIKj_802LWxMIU z>n4iJ1hthx?PR8QFtZH)XbKYf>WrlM-o15`c~)kEnU$<};kU0bgEaqE>Rm|-WwS8P zso2q<hA<R?TG=%^+cJc!*)9gk`)+T|YdCQ3O_kAxMj}%+o4ji@Iat^PnCgY(t7_9j zQ_FS-!XALoxBcM!)ntwOTSMn=;K{$llsiA>FOX+dXVg16T%guZUyrKoC8bsJF*hfi zS6A*felhss>vO~?akH+>hQ=#kwl+#F`h=rNRh<?-^-fs{=sQPpiDni7)_--iwo>Tk z6EmA<HP05F(|Df7b4n1kl48QszORi!G-_H~<I(88RNxo%pZ`918X|aDU~so)K)Lz_ zhw2v`QzAGR#kz6fsW%w_h5_9lvV!KN!&H19VcX$a9K$O{X_GUvIz0IXas)GL!?a!^ zSyetb0iI2EF}eh>r>EnJabw%|l<?otH@4ne*=!8dN{U}1`Qj<_G}k=&c(u)ccJmN- zM#b`hkvpFAdt&)}DmW3;=#_|*oj%^ca&srAzL@E}u<e_IGHG%XjYMLoX9^VpD9i4w zDJ(kXuyjO3($u;XC7}LB6om{&1r1aD)E&{SjkwD%v@eqzbKuz%OFDO6TsD8%KTqr2 zIhp68n$G_4U4KD#=jjXfAw_V`M79~FJuFtST%6FC&q7XM#{=gPpFjR;ogWeYrj@rS zF@IUxmd>3Aj+(y=fyTWqG122m3>})rBjeTg=J!;-0=|&oS@IA5G@2KDKdA2;hre&p z_mbi7OZm=UW>cw_Q@t^#>brILyIS9;4u2o4@4DgdvHF(MjQDc$zXYh}l`#5Vsc)&x zMBmrxd-U-4Tz&rq<cs2y`u^ka_hfxPKK#9{h3{3v-<$OPo8j-D>HD_f?=F2WAO3z` z<z<Jz8x?<9^euU+%tJaDed(wy<H?>PMUWQblz%qPeETO493S$<=kZ%p{waS=`6q7o zkAGjDQ-hnth_E2JyP~CIx!~-T`?|1E6_X~l?W0I8e_y$e0;SuHB36B$n9XW;3swpt zI}(^$Me&@brzWth#VUs$=eTX5t&`2?tfDLv{G2)eAYR2UuKWzChl?HjH&5p<E;L#$ zZy>2;0!67hBYapniQM^lj1DLs=gZG2eEay>8^13j&V+A1C;tIw{3F+AyRXmJIa1j3 zbVOgL49}Oy-zP5jgR@wsMjIpk%utW)aQNidN#6JgD6>hd06xuXVAn8B&_dY#GMBWB z>s-dD7#*Xya#f6^vO_)Vlr$I}&3=M45QX5VM!z`B3QL;I&*d8GnOsy&(o|}lTkJv% zi;ZqUm7Lb#8kwP#;G_wk3mKwH)GSA{3NcYp5}g)`3L54j$lSNkj{D7*v3f3Qp4w~V zjSXp~!>e6jCq*1CaH38YoC0M>a%C-{;V-^fDvNOyS3-HHzl^yJ+G9#{PMhTzdr#Zn z*#I=uBVx}>lua#)!g8}Nynl#KcROr2i?RnA>@IHbX%1Y(-{6-zU)StQ2lr_)NeB0e z=|tLv1hon0#j?HstW`NyOE*SZZw)oifgf7-uNHbzg@V&s80Tpw%feT4RogpFG@D?7 zyFr4_N(XQyc~!>caT)&G+V!Pvy--)U`>pom%_I;>b3Q5tq1lNbu!qE3;>Bh^?0l@x zNyvAE%!wb9Ff}b3VoZk35pT1~ZJz52?FK^X0$O8RdNZV+n++#n%r$>DE!d)X<JF8N zKpbG!&co9zYDQsrwH9iMm+=K<&a)4Dt-yPE=W6w3#Iezr`pWl3^bgVgkD-sLp!Dj& z@0pyFa-ytnGxaY&1F7~N=vn)#b}h>2MR8S1|5>Gfdi&o@Z}j9(r;|w6*?+W9i{GGl zU1$H%_~aQy8aD8#zY>D@kNX?LQ~pHyXZ*F{eyE1?G7xTYA#1_~_JV0-c%;Q4XA85u z<<1!Lxm6^)v)o(SNw2V&UC819+ug%lyEJzuI@3fhm>Y%6$(?Q?r3=nTf?z|6%S3Uh zWE5Gxpe72Mo;x{8epoU%W3DkD-J9C?ulW$BxW49f@4Nlw8)_c0M|NuhTT0`q3b(qz zBkd~xO&57t#dL5BK*P$r&9Kysdiln*SBn)B_a3KD`2$mQ;`?`|8-*4UigcOWiDem| zE4i))pEHt)_Rh>ryb5o2qr<O%4*t~dvmJ)Ck(&I)70kJ7Wj{hO<CmT}ku4x<;@k4i zP?Og2?0Xn-YNprwTeI&a+96a9Ya6^3rPagyibQ93lMLRDecBp!pzBOvhRfB)MBZCb zf%!=@0uQf3hA1tgycM;h`(8q>@DiGeXRYnqGP%4zRsL+M9M9sj(Yl^sX_KV`$udd> zy0ZrSlhO3HxMZnxj5L2X5J!CySYrFO&Qi(|-h?DBtISE?gyckt0CDlk9U}wiOmAzO znSBop%tKiV3yld%SH{jXyHsDvK(fL;q+MJx_`5<%@7~gdc2}fZSDlaTO7oD+C>PX- zA{!+}0K;QSC?19_Fj;OG+CIjhDth{J`Ae9&whtTpcj3o~`QWX%;s9^O@ss;ro!qyj zqI`h&{To{m2S4eCdu{muBHD{E+dUq+NpEA{pP<>VbB8bLbmar#C05}o8~0`#_pMqP z`obH(rZwTBitaZSpKR)>qr4@DlHkN#>a*L^HES<xPWQcn*;naN>6%rS)uj{f#QOny zm-`sjmf>uCGTmJl643Cze<iL4C)B;3uK9EOe;R93>FAR#GXm{v!H*ZsByV$HepI^e z#WCr`TSjlt!}ltVuYf13^cRlv7gnJ_IOlvWthvS8H@%XV+6~^mwV}W8d4J(w(=`vZ zKZ*g7xyViD#;pZHc7~;^ux4&s1|&!!k52%JusT^vfxOq2%9QF_ZDti(mhH!OlACAr zp$heJpv<AK6;G^CP-sH!G`&sq7apgNWAcX)r*@=sN4z1-Fry?JwiqcK{uKO?LbPq? zln&0Gry1Q#rgXqPJpR+@!<gnEh7%WQ2C}8C2<ndTCM?&&CNaRZJTVXK;9&~LAMz5+ zLb4Pr)7uGU!9EB^I0Buf>zg?@NUXE7w|ew3l_KevR@pGbJ7bVGg3qMX2V#PdXj^3` zO)_w`qX1s|>&rKqq~28S)=@Zeqro47mzm(yO6l@;JtqLh24|FNPu;B5a!#<g40)(l zO8&o;*r-MF+|^QDzW5m}l^LHEQ#buZ3uR+4N~<&l!B&V9&?@~n&ooQs+_X<CC{=C9 zA8Xy7qRQhdd~2F_*YOh>b-xeUWulKWrPlS~)5jtv^R2ruf)=`WKgz7KJ2;{q$Uok$ zLtgE?I!`k0H;(vr+sOTwq$G7^$U<2)GbjjEk6`7+TBL%R6XOO*AAgGD!iIWQT3Z%= zLY-wsN9Xt0`d3Pg;dkC*kA8tI)3nFJ4_5dUg!}!5O7!nCY2^<-SQxK(|D1L!qb^|) zxAc(p*0oytC1#r7R`~S55{2lO4z5+tj*L`@e(Br~e`b#dd-VwRGEr4rhB#if2dm1` zHSe{*l+HaUUMa?(DDfN;E6GrE1;VZEmZRo{_7^2HR$(8D3u`cPN^n_maPYA(dn77o zcn9Ch#x4&H<tQHQyZ1gH$s=6-*F`0^|8nqt&A$S-(D{0ru}J%m`A^#M`2E}Y49AmO zY?CI@`Z4gt(o}WF=Wl;bQSSKsr$nW5&4~K@!q*a>&ADG&*qHasfNRoU|14Vl8*w9; z0pWIrKWv@Gyg#9&WNlYfzgjGWhTp2evQp7F^R6q4(^>x9r13C4B-5trTzVptyS=J| zoTQwrl)aR=CpKUtK~u19N*wmnN-Mor-(1c!W(EE*h_8-HpY-|h4lI=PF68o`F@O4) z#m|Z3=W{5d_mKG2#BZCbrSy_duKjL>%9$6ZJBn879h>h9*O2a)lU2@bTLF>eNB)~7 zw`mvWID(5$^p2x&HGa%&Bu^wAe+@|oOvPePYhPBlW|{OyZ5Tz_Wa4V*tXr=yne=rs z$%|jF%VIbgjQJL!%EXQu|Kt~PEz2bbH5nv#2ouR)D}=mv%oDS47&Rfg(sBn<3WtPN z+T-SFJkCdDTt$aV58RV%JHksIEN2Li=9z#{TO=6AU#x@MhWneN6uJA#+1u2TY5FD^ z2wsF%CM1k40e{b{It?2<(P#>1+Bn7|GRsqt$X=RCZ?X5Mx~e*ONy-~g_k|!5Db+-! zoZidFGG6q{zEVmiH3JYbxjRk29k0{-^-AmVDv9o$9cB3E6=)^*g(sAFR6mPTue{q5 z`u%<b@?h;1fJ&}jLAVJsCzgCt)n&IQ_8ZE+x+Oc%pw~C1Zwe<}v2!T<$`%!p$u(4D z*Bsy78=Ns&w(++Jjv(QsJ}~jItH3;6VhB+=)YCz{2=?2wNRyL}qDxy`?TSc1K(vkE zwzZcml>G-^y0s#Kh0d~XkrBE9yDQt!MEf4uU^_4PaKGfvst(>%DhH6>go`UJOf-#; zX?!^Fya}^v`M?>1#hl@`UM6#%tF}7~+16F{8NNof?J>}x-~zNpBn4TIummCm-Moo- z{lWv@#8w5z9?CiY@^tQ(8nWq96RF@79;fm9GndrN6G<U$mh76c?9k};Kcuq{Drreu ziZ=mP()I=3G^{0U(}Lyi^Bm|}uHl!&hx44=DWf#DQA}1bc3>#E&A^ftKKaL6SK)15 z;Y|$^a-?k+CsG(QT(Dc@Pj<eNsL<mBJ-n_C=4pg~0!Z7^&Ye!gRZdY0jx`Zi=T4Jw z?M+lH;BuZg(4TVn%F29Uex@DRcBr7vo$iS53Et=L-?_6O!HV+@t{s*`b?(%uf7?BJ zPXA0H#qF%iwjTZ_&3gEa*H|Z=_>XoVwg|&%QpK76T!@FSq5PgSdwBmrJP~V2p~d7u zJ#*vVJb`k4eIbeEpx)}&LS;$sfFdJj&W%4>m3@$>vXz#oOU)^9@-t6$48xrtB8B^= z5H{->>O7Z%=*A31t+o18)J1W9!|A>-obKP1?%PUNAE%SNa!xP`SqMASsYur=C0%DD zT&MXA^VfFJP>-gEQ0`Tpks`OGE!s~8r&eSFV>~jsy2<g7K1IR>ZU5bn!sBR)M?%XH zY!3NNV#!H^)PQyTU~ExxXp;cBk!Ux?4bD?5fi-^`oz~;<p>6K`eRhWnxgL{aIy`U} z+>FG9{9FprI&b)JZ-a4abI!@1j?s=A50h`2GFs92e5Np7mhag5INw3!8zJ9x@=FND z<>14^>A=^-*O5dq7iEi=y1;m?e`0>1v(K>yjMpMQg0Y#PVKPHAJsq53<AqN69>%D5 zTWLGokbxQR0Eyp^z;}*wE&v&sEP`n@7zyf8j@<a?<AlfR<bx!^aFQw1Nf8r`qi<%O z7wdzHwfL25ucGpYBL@*)oDt(iIyb9;7urWGxbVNj3u#Qj;A`Nqe%nz%49Dii@-|Rn zN`Sf-m=R$`FQuzztXG0P>`Wl04>u4u|Loo2#Pv3gYBg<EZ?HubZC0y?TU_8jbL0E! zBIz})ePnKAKQjWaz6d((f>%=_ymIq<{{p^PK1Wjw4#S^!kLN_;4$b+V5&Q9Z(E+T~ zFE#_Ij`+9ml=?!bZ*+`;6FH*h;%d%=Vb$@M@detEEBzAu!&?6Tr)`VY9iK}bDRu$D z`o$ZDcT$9mkSE5wjNxrkiqewi{~b5eYyhufj}~0WJ&tz`q-wT!T{^Ew*5I6L*6UnR ze^SWGg_0fn{KI1U^(=&vm5ik;yb3kJbSrzUOyZAelm%)&Xn&zGm{l2#z%7)e*}hd} z4veMd5y!2zx0fp2fhg&EU6;|PwxKj|Zs@l?C40;AhvFS&`3AS4j9~2+!2njTdnPYU zt*}mltqCzw_zK#W`EL>2n449JGC(G%aM)KsM#E0wB1<1VGOMs7(}oPbz8)k_4t+<< zFLS3!&C0hM)$Jh2(U%L8(Bqwdgwrn^fky%h7ynK0Abj?t@rESlD)R$Ga((oVR|4u# zev43Mcx|%%O0hhrHXU3l2JIFAkSjm&3-a7|H&0nj3)o2LmkEBXy+=lS8OY8gI=>Mv zszUS{L5en}(~?20rr#8vWtxWdLAta)C<)Un&l)$e4=5s9zI5)4X}C3zhFUVwhf5UB z>Jd3(N-tF$gm<P4)(gFt_8QtADN`>@Nxx8auqFOzXl3}HoFAzwT?k!NRZDSIR07Bt z(f)lknU)nQIwJw73@@cBlm-~8+L+Zrwj}EJk46uQLh~!mi}gEfU<R2~vHT<UN1S~f zw)7ha=$&p^CiuDf+oUtAGH92{(eEYJ>rE)vo~I_DnfG7x`X=^V>WWj;>!%+f!$+@c ze|?-f&X>a7YMCgmO~Ndr^|d<L_c|l78hMr9pWOJqDWuZL8+W4EV~U}Pb-~P1^hEvj zZqU{Tdszprb3?T*ook{;w|8DuCJwB<l<$_N;PeVR6!9O5U^bV88-*R=^a#LT*;tK3 zB8L|5uwIW8P%&s&k7O>mjKOY5NbAj1WzlBTHyVx`cM6#L1n!777#tgS)F&Wdr?(V? z!uPbMK>oSuFP(X2eB6c5hZ*CZri8eYh{m!YIMorO_`Tft7iZXb7Gm<@xv>)dqdl>G z8B(=$beg2a8&O)$nso$2(4{*Wnf|F@`7+*EZMA1h1%a)#!EZYhZL&7R)eoWF$x?nS zo~}@KLooJUqV3bMU~E-H#8xHCpNpwjs(f=K7aPku%PaCXJH*knL=Kl5w?}v*Gq49t zou<V)Uf+tz>cD6a10$w;=kRQQG98@6nx7t6s!#oRT^7G;F?7ePCsiQiHR7BOI_!Ye zRbj?lj(>IiQyKS-x{3a&`JM{)x*k-~>MSV{vgA%K7Rn6NO}47h6B-#@83m_D2B)Lo z=8?h8Q84^cksPRQUKG4=Wbi^49CYvuhpNQJKNG&I=RkwYl0`AadQnLL`hVC{?t~ff zst}_bDy<UeMt8QVzO{~w0=1YJ_o2Z2vmd4Bkvxv=uF(q<Ez!gG-$KUlx=#pxCw*GQ zE;zfmlDl6{oxES~^r39;D8CMdsVuvA90KUYavA=Wd9~gRI#J|uwu|x3H*bUP2VcBO ze-N;o`|u36LpzMJyrn;;iW%CUd0l@1x*6J{dEGY~#7z~t$oQ$cQh)S7-9(*-^EGoE zO^J2~rmO(I{vBEh+U7?bo$3K(P+tZJw+H~I(kgmy%vp<QaS=aiN!w1Cf2<{J`%*e+ zs&HEt;3AXYs$;7^0=VhD=5$2srRjyY?O`Sl?foNiOD|$~xg87l35J&T4b(~c0nq6G z%_`IO+6jtbnKtgwXRP`!C63C^@8flSnl^e%pC{9Qq2-~KSy~>w8BtiMS|)c6>*;n8 z+l>FL=qpn0aPfb-HQ;x^@IL_IUXpuDMVJ34ARvEboiz~PoMI5(dp;(uZfGLCkVwzO z>pF+J<{vUb*QC(6{6El%jt*O=nwkk}`dwoQXU^C+Y9~@#`it>W2pCL%#p~Mpzbd!! zZ<IUzqvZ+&;b}46Nc(2DBd>`3RETY1eIJoed&S-6vrXh%FceNczsIq#a&P0f4I1H( zqd3RT9mJcRAy`l5um3XlOS%2SHdiI<mHU=hzo_5xPYuTlYwdD(7hkvy;TFOpDxJxl zC+XuO5;$hK^ddO(JdTyo`b6(R1ge>?9XP>hSp?VFB38UxU8)fM(!q5%=`kWwA^N3* zf2{@6q5kc&2Nx9e*Jaw+wjHOP=?K!?Fxh3BWvhWs7^ZI;>JiK8wgN$eNNV>?fJ+BA zYoVp=wu7=)jvLkfb7ST6;l*<3R)}o>V><VvUM0-kE8bM|-JK_RU2Rs(N6r)m>Z(c4 zLircBNTzdVR$8BQ5K8sSv>zXCTH8LV-s@@@0aW{I>dH*cIx5=RILY6R@QCLG;ddoK zO9wfzfZ;Pp0F?nFl7XcKDcsUn3U@zgN(Pq3qPX2J+5<}q0y>SLR^K$|WtFy}tE7_E zpcw?TbM-Bh=J;6{g<61^HFBA4h?dz|w#;JhFgy$mYJ_r(Txz3rGnl2N*6aEzxH%%1 znpBccyZIZdCcE<<?%kGi;{5dme2xZk%!q;Xy5;I6|5N_Vn2Ww7I?v2n+ZEM+j;Zu- zPf_KFrVZnp>6h8bC~~f;1GRD`Q4(}+=Wljhsc$dgQw3h%RL_`aBqT*glyJ*?gSa;m zzi9TONPfSsp$qEHLm!P@F>_~T(cGzv=8g+%o@_w3wamBx*xQa&+Uc9n(SpL!QQBcv zQWs~FLh9)VycX_<Nl11zmQ<@GWvm9eL0tE$ert5gF~+eHpTG0Tp`rWfjG@8bTYS-Z zl}(YL({KUv(I<5bTmw_`Pr^NMCsTOI1asz@B<a0U?f7b8-`vf)%lQtPkAN`z12;3Y z?I*=-zC7Jr%Bt=Xy-#PV6|!r2ChT}Z-iKOYG|buI^@D7u0}h4}E}bwLV&hmJ&7#kb z5r2FMMs?ic@GA<$Dk)QQn^@4cgVjHgDBt){WmrR+jBg1zB~z1X?hwYeeJbjC7}Rxq ztGx9*#c&;<KHcD3y1)!{p*tt1gE1B0jAi2#rjpa1o73cww)Qk{>g=jYo9_z=N(DEI z6yhSN4c*}7G6u#@&g))BzYUuL!{=*m)<Xr4N(I>qc~{~0|B~u48l*Jou;cEi*QweK zWR+aMAkZAwoLQ=`<pLwfiZTU3hQE|1FmlIn39X%VFBkRU{pJpy4Y_d%7&o1{!OQW& zjTGmu;Xm#L&(*~f9FESc(6JfsI2Adqs@6qZ$nNw*Qz5IhrnXpf1d4vlBO#6>5xB33 z)^o#=uadGcSjhCp@mVRek=@g6)0luOPT$E|ws2Mc7y{k?LkQNQB*8p(PK_YN+u>D+ zqEo^74ExJo*B334DT1UR{2DQCNX}>pTlmNyXeDttCb*)pMCZK%d%J)RzFVUm{;=2h zglvct_;PQ_!Gu}g?@gYer#_PWu93;NsAMsT%Cno~TS#uj-9Z{;7P(p+tBqO72X1Za zdWW70uAECxbbX)I_ak*ZKC-T3=sGLwF>>#wt|vw&e<yCqhTSJ0(-(oZk@($#mM;Y; z@in<g&rEmvdHD*+1mEl9?~NLPTw7JG^iFFjNW^9^sT0UI*9+K2e=DxM15E<7Q^sr| z<Na(6Xvmo7dDoPg_ZPd5{7rnleLBz#L45^HWF`L(k|@?fPE*Lu7UJBX@pqA-pC)tu z-yv}hZ$K3$Z?tOKu4oH#gaSRcD~q~mTN3Hi5t=&-t@mf{Zja>x>3JZIH(ru%T}z2v zYB?`|j4L{&1iRL2HJwL-dd{HC{I}~2z6O^YoWU6rIiU+bDBVlPonF^5w8AbTkclw+ z`vpvmbw@EZZa#%$p)EA8h<-mt#4htJ|HsGT@tVqvN}*4ge@`vTP1-O1{vF>=6sUrK zO$H{Je-E;ad_&xSnc%jc(Ox%gBDx$tN_VZaZg7P9X#z6AH<@~8PQ%(aeDxJk>UtJ~ z6ViM~ioNQ5CiO*8N{(0a;RC}d=P9KMEs%A;22c#Zz9Ru}LImI^1mI8TI`JF8rwNol z2V9K4@7A|Ovii2{S1bD_fJD^Ung0e^3*$e+UbFLcm8JVl#FFY(!drMoN}cFKr2(%# zSUjh(^}$+(MfjSA?=`dc)mnGwlALwr(RvZIZ=o+;A6$GMi&EPZ<hO1?7g3Iwj(KJ3 z5O3M<c_s%M&QoSdOS`Yq>I9a|RW4J$#+%Z|HON6itNUaU4)s(rbxar{CkU~8F#E+l zy``dCsJ6G3E=ec0%8^hla-O=qy%nccps<Mgq9oa;e%$^}K$Ec??qE?>nu)*0>-q(2 zX*%duTiNE%tEdmI70lAFloO=-V2RcenXh-f37pB`S}jpT?Uf8})KUar^a%%euPs_O zS43Wu!4f4+`b(6IFL82kJ7em*hT6Xf5g1^c*zdGeE!6TdPdz%%I)%gA4qghKsAViU ze8jA9Cti=IIyt8)C(kK*nqxJ@P~>y-CLNrEKPJ3JKMc`w7lGNB<K6uh(leWc3h}BH zX+<)xg}lM32V!H$5ocuvMeBP1jqs^$?78G9SCC}9yTZo4Hx5ys&Mon}c4(X|mIS}3 z#~S|KSLqXOn!KO>D{1TtOJUXM?gC850#p9$U@-PLnpURIb)YJ2%pF%+pZn*bM*JUo zT~E`TlXBeU05RNSW^UZ4<!H7UM*XqSJ1XIQ+xF$%zakY0zQtjwnUuBgaaCz}C@?z^ zGq7UKURS*hJgN{jc>a#Y0?du?ZixUEwHCnj{u&3fchra8x4%yfUiWhT7MjooZOPwm zYi<X55F#7=)^FeBr0mMF@W=1O0H{K*%k(Y^b&lvKO5R;Rd8*_esbu)fg09NsuEb>A zP_6CbAe-UbfZ?3VY0CXlEKzc01s~=^Iv;M!aGf;>{U-_>5pmELOND6h-l@>M??NB* zYe-FLnjO@M4Omf$w?`%3uxp7Af5A!=CJLHDiFGPb*OfW^jK-=tyb^^aH%#g!X&5q8 z`!Ei}!-Kc_|6+uc%}tIIa;X{4%EG4P2$Wk5QOy6<sD1}vaSQx$AF?0s<yBJfxrllN zub0gVQQ=L;s*L6e1B%HyH+i2dV3I4#43V8}ga5Xsa6Az!DGRc-fxn`9zqW)bTC48+ znk0TypH)Tq(>Ia5vV@Fsh{*nP-cYmd^7H?syu=y3tq*QYQ8iQFanmdhta5{gO)R-j z7As-?pYU6gn{+4+mtDYS7f@3O7;pg#3jr$#VAxeG|4Q<gP^KFfZiLtha*2iUx=U;& znfKHygl-^I{0dsA1Nm1A>1oADxpBwU`=L#CwZ~EKo2>Z}5o*wqCZ)HYqV%fyZ=~Nx z=^K<D<=e&cEAwX(V0=U-__^UDYim*#mJH1t={KFn>dIY8;i6m1p@0{2X3F18)p@Y+ zeK7k^HB=_I4J6v;B|BerdN)IQw9PR>td;t+%h4<waJzZv#k^Qm<7nF9EnNk$|J|{C z64yGQ?;@Tpg9pcQJ&IIADcT4%&lWzxg?!k9$7f+mzq)mxVUEJ{zd#*De5jCSl<4FW znllCaL;A1L-@$b~##oN*J|mSv*rvp5(LO*`&&p+<4#_t%abaSr!u+$y4;(*9D#JSD zCcOfPAFqZcyyh<f8dYJGxCoMuln>!_bobll9kN?qs|$60UUi;No!|pl58uoNHtdmd zDBp7_EV3_pml<oEg6*f?=8I*umR3#Qgs?cfz09lYhXg7le;0b5J?htLZccy^yV&Ng z7+H-#{!*d~+AnBad_)r}uN~G1J%vvbu#2989CRDc_2nvfuCJ_dJmse-+sP!C(=sP> ze1o2HqVGTQ#w89J--K&C)SLNF(irp?Vte)GbgV)Aba2KTbYGApoES8m2XA~BA|xnd z)R2g|+KV!TJXxLt5pNX)?u>LN!VoE&d^tHgf5-ENPn=h~dGlge{#`e3rfA+Aft&#) z%laQh(`JfIn<H%6Xx8Yi#I|oZWi_X();3#n20r-3aOk>nX{t?&rcFF$CIgbU^gE!- ze>Y{^j5$sd<^V^3qUjRNmcnFtCTvCROzr(S#l~~RX^(Xf!hCurtc{W^(RXo|nRTlx zKh}5YBF+3mcZUVia2lR(Bk)09A$P%tFA!AV!y69;Cr(`DaN=TN6R}cWhz3Lc<V>_( zO0a{+VaQ)e>%N`8!Q7bJH)^_EZ{u0h*$cGoRhTMNNQMhOVAuJ~ko2QBQ#yv>WLAr4 zcW(R+L2+6=j{cr2#5?C`{6*3CtWTixgbvTd4d7II=$2-drs4R=etfUwyPM^MZ<3Gg zc#+P;uJ+?j;D=Y4*qNIcXS5MbPDtX&e_V9VsiVyg1m$j3+Hq^3mA9aqURP!<Vq-lr zSZoMI{H@c`X(LnH@=WULk-^nbA+;leYop+iLf*P`6x=d0wIk)h%sC^2=R~RJhL7yw zPE6P6IecP@Dt&aGUN{f_zDfUM8t|CLd4H_~(z)3YIu8c16u%w+-fYX4+7kP>6#D<G z(}F@5H&i-MXR%o*>Up<TF^5L>Wkb}LvqpAWLv2*Z$W9w686U2)*;41e(t_#2O}x8x zXSWz(Mh-7v<PcoDnUsQY*pxyc`e7}x#U2k<i|{!AfxE}B*k~eHqNI4tIyW8MXv@iS zaX$Zrbl<DkmSnylWc0cYC!yv^c9qz{v|D}P&8iJKT|rSHHJh*MO>@e)c??#!R)c}( z_Ln1JH=aO12iJ<#8X2jODCeAyL@FeTocobTg+!5CKN6`B7dfj;zH$c|s`WXrWP23h zO;}PQZfC-h3iptqu0R_fw!eo)`#?i9AwQ<Tap4>b6b~wEb<+YssbW>4X0vzQJy5j# zn<8t&v{ZC5rUzz6$|@JW$1<n`E@;_X;SWn~x=<Q3B;UhVK|as9gqfW_cLxiw%ua8; z(_RL`3*5_^u*6<ucDf>ZTN94^cecNq{JvZRvdHoUcp4c~gP?(HQaaejH)Y?13C|9d zFQ_AAB_UtTzM+s0N*7E|W?xTmlUn(L!|H;Gw-9%5(jt@D56TzpP1w%}+bfr({OtBp z@5X*RgaB~oTPM;hDYDn!^1YAR>lfPB`T9EgQL>r4d8UHnaT{nVW|+{Rz>w_R?vBGR zgIaq_FJfdKXd$7(P0!#GLhfHih_j}-eUy6AsXDw)mY|_Ble@60Il1x((!lVFyaPA{ zz7BP~ugnV%J(3(8!y^>=+*rB@wXiwbgPbSqkSM4bZBo7$^68`)Ehfo3k&2xu{uCmR z>8%u&B)wEGoAow!Esb2I=fB1#>q5ytrR`Q}4Biwi=ZnZatiiAkUy%mGUV1fmmr^#s z<>q_<0|@L2uxq2(Om1ciAMpPiNzAUgP=+cU)Qqrxt?pgcyKYbJ(R0EN?3$+Yy-PPF z2I_2rp>40I>HJ3~6ANHQ0H=Ec)N9iu@SRLTZ4`DMj?X3OWaegK;1Q~ejxjlh8b%9a zcQBmT;;mxuq2_9}Go^N(%7IYZaZwMPijKm}YLy^v*Ag8}qBype*z}0lgo>zZh9PX! zHo2C@pC?6!nSkQJ_om)n)d85YaZ%f7qCVBcxL6cp;@TuP+19{uY`5;Gb21{~9<m{! z;z&FO&!lA1cJllgyoz^jYtXHMmLWH3(%}g2a^rsp>#<Ar{6ohT+wYOtYz)fn1--cY zADBU9`6N8D=!1EB!15qbVrZ0K8HKyScf$_v`C6n$V$ITs+sHDGU`UKy3z5<>BrZ=a zc?uDGf^qpDQL_A9z0LZ{upJSe3=<DGdj##+M=VtGo$)34S0Q17>wz-`<;~*R-Fk%? zPzOQ63_B75Gqy}EV1{f_be+4HG9gDnz-RcywGRw}&J=xJFH{7>BM7Y`7<L{43=jMj z7+MVm6{Vpq!29Fjv^Og4^-3$z8g5a$>2$Xt`4j;~G<X+z@Xu6aFiNKE;@Z)1t>huS z=_z`)-cvPAPg$@(fhBX*yn25?4pGYp#fF(pz)&+C-c%_8<UG0>q#Uz(D%4|9RhuLl zNWr;&yWkRHsM%)y8CFRX&YzgR&btSB=@oMs!HlZ3w$c+Vm`o*|&xRKXLm}|ZOwfi+ zE8Em$%{yL~&YHNUv0-hhCQN!KtU->8n74aq@u%E4`SO>>JW5KT`lu;3LUYrJzu<f= zRWsE70>Dp6t0D)$Q1im#5Sh=btr2L`0(S!@5Zc<Q$zLl_of73se2NGn1)67>Xup=q zNR~9ccQBnq>$^Jx`=4nYfVUHD(x?9JVUa$yS#2nfXE=iOW~xeb9tp49J$$W_f&SUs z<2B1PcJU;Q1h~<8z`F;N>S|IAZXTf@&q$3>V#da)(Z{LeDq5+Dti$cb;Mdx8Wc-Kh zKxZQDs1N3jtH)bgeb9{lGHRQ(W#aO?l||>YI<$to*Rq0}`kHWIS{kQ5+zsY@>V!Ih z5*d7jEch*9Ubc{^Ha=xpgptdz^0RcDcN8nW8da?;+a+iU_A!x<RlBI{Ez^Xq4ELih zr-&SFyCR+O4(g^Gd;7uzZQ)8X3Q!^Q=F5fKo!jMa74g>ERQXng7j84@rHv_E(?(8~ ztQ^K-KYAHXrKpnpAC4WN*KE#JizXlZ{D}FNeVxl@oTCBx>D>Z+GDQysCo^&@&q$9E z4nV_ngE>~n$c$m}Je?|cRWVjc(<^UbjG7rE#;2i-;b^fjIzr<I{OQ2c8t#0iakQ<m zVT`!nEidKRDa2KVFCcN#D7{H0G|hvVc-2Hp9|dT62~G4Pe8!z*q@rg^&^VV~7wlE6 z1<lY|#qR;UtN0|T7=s6ksvyE>wGY=i&1$_Ms`YYLE7skmu~H!V);pr=Y~XO{no9KI zC2!;Qf;-nfgE6Z0k*L;8aAqxiKnwG(a*z!rXPHS>Tcv+Rpy-ff?ua?W#nbMZ8?S2( zl(T>zsj9C=7=p>fo*DZZ#*jYlyGiAe3A<v+=uS~N+ltHS8^*I$sq$w=;8~%Rb>xWl zBlyOm^HF=235Q%`L=edtKv7Zk<<AxsRbReAU7timmVevI(&Bu<frhUm+M7S(bM8JC zw^+PE;{Os~VIQtQC*L_fDKMz0$~c{T5OQyrO%QP$NLiMQ2}Zpm82?y6#yuDu6f<8G z-4wZic3^l6atIlxg=Zid6e8;0%HSkBw*Dg{i_4b;cqt4?!V>!fa;-@tlZmHT7(Ose z!Of;2s@z!bB(5>>ZiGz{2JP4#2GxVuhPPec6pSM}T{Fy)iCsIr?AiA5QMY^DUr;(b zHO_yUGUD-rQFXW&H`jFSQ6jMBf{W9_xyTIF+G&&!oY^ePg!ZpOSxl`lz85Q!7ZlO2 zUl-$55&Z(MHWwiSw>QM}t7{mqa0Q0PcHAwegENb)L0liv7j%+q4DLh$5_%EhW)`>F zW+Y*A-x?rS*=hu&Vc0MtGD(@q?F@2(y^ev7X!AeAV=?Vak=5pjxU=9)Q3$xYO%Ybe z_=V}ps$g?9O(ykEg(DD%iBkSHA;Iv1fb&{^<HqgSKH!-*vC)}Ds1<mY<Dht3Ch;M@ zpkoivkc{C0KbuY|8t}IIzdhJuS~cn0FNg;E5X~3Y4*EDRGsk$`^)2~*ELX^l&ri1b zH)2%tcTRWn&q{_JP6=C_@ZNaOIQ$UxQWSod@x+cFbo2HxLZZlPhhJr+Td=2;J%(+% zS@9)YS{Te^UbSCkJBoIg9z;OFsgsMipjlIJq*2Kh22SK73=fC3lVfftBLrYPs!|#* zN{HE?-Am})k{RQ3a1Qij=E6*_u8lo!I=E~uQ~BXwW}CD7IND!@)rX8eKI#1K-{5RM zq?lj+UTpJGF!>lww}Yoz-6~P|cJ>})!_V8%Q(W<|L<0HynIkx)7WsQZt&O!xzIS^e zI%!tubv$K6xWT@i=b$uJ=vtwPxYL$yj-Br@W|5cQnU8>s|8NG*Uwl#{Ze?;OmU&$_ zgTxv5>g@#5RkLyj{)Y;|7u07n;+Jp;H7Yz~@I#J0^ab8`m9v9j=~s>>e?bK*b=Q8E zcj{-GRD#Q-f8$F&QUy+9;$cCiIysxyMZboh!2~=l;aahGBC=W>MB}s_-{G6(_=&^w zv)0Os&g=TBg|x~V>Pd!SwcI=5C7rbC#7-sI+7OhEP5HI&(?)aCgI}SF<4YB_y|L!u z_M4pFrD^iJRQnMUCVA#CY}(JpP&fHo8x!lI7U7QJETf<)fL}2oi3*zt53mEc?135+ z&j?gJ2^9gJ<k0>_B@obR013^*dkpxvkEQ(d?g3xd{=K}}Eca+=#D6g~49N-`jdl4C z5m7M^9U{=zSiB7cZsW%><qK_UJIC_m#`P5B@pR8<K|TzsS5a4r!)8HgJsRwjN&Lxg z7GQfQKs|awX(sWeb!xh%ul={C$y-!3{qlE~n;xkBt1yA`(>3eb*XL(L6QXWr<F5ma zMt|L`+_-N=bSmlHi^^al)-Zya-ZYCd?f@?CZ9FewdG=yaUn`Zo>ASuT#(iw}J>5iW z{x!e3h<;^)E<@WUHbRNMVFZw!toGepq3qzX@ux;c_6Y|Q6@C<~;clI{Pf_Dl@jdyk zQZdc7asyYaO^N@5Vpp~QN4|_=hx_z2dYB{ed2U_!NPqsH!2ct}502n}k2jmwBdFK3 z##T&+*{I9a+^S6Oh!rB|{yU9*uZ%+e5f1(7!y#$Do>ny({*b@)?xL#wc+XVr&--ar z2N<5O0M8p)gK<K)_~Pt`aGu?ot9UQNsn=&gq|4^%9*mm7%jPlyW47;y`&~|=5`Q>f z=k*n3pbrkng!C=zz~ZzKmh}7acqkZ+0-^kb^w!3jt?g3QcIz4NX3Z>*v&-UrTdrxy z=jtc?pzQ%DxT<?8=`)8a4!V-cISk|c81q0}m%UWh*!RaV-rDC%GUX37CZ1DBx_qY| znet8U@sfKyv`d^ZqX-u&O$uRx#!9>pp%XmsysFC6d9b{x0~eba7_yFU0QllZg->2Z zIkTbyLIpqjne@Q%qSjEm{${V`VXtKsA@Zhz5dHWK(eq_J5m}vxE435v;pO;s-oD2_ zpYp%4+P`!&u5Vu#Mg1vGuans=@7MdQQpgUvo&&vLZ~Q-}a}&Rlnu?3HaXmIfzo0av zWS{&7Y=+dqt--rC(E@iLXU>2iGB>j%J;yLEo>`{92T&0D)bqkuGP#KuX=EzOyq4d4 zEzc*ty-%FTpZyyLAl4wv00!6m=#f+feYW_*imKXeYeAkVqB(#1(BGO&Y)$7%I{>+p zB}J(7z`hf4YFCO6A>E8@*iz23wlp0%7^Iw&5lK%-mgZk%nsI)4%sZ+jpXEzt<kO!6 z$Au5(1jNmb`-qF_*|0q^JdRwwIXmLq__ICwiQTq_W2Do!>u8V3YQ64%C(<}1ulrV| z%U(Gdy_m0)KnF}YEpn)cN}7jkrJ)Q^kjGAz5bW`NgqP^~!#qpHcXlIEGD~R^FsWz} zVrTHv#CSO=7zxBpO`#yTt4gZG70*0>K<w`Xfi>2zs|*@S{W?yA;kwe!8C&&W;Xa0- zZm!MYELjnZf6SXOvyB~cDJx^$yx`2T;A3<>8;nnRD>iW}N+yAGx(!xL9fG#VE#1O+ zPrNE=7pXXZbdPX&&TU%kg8DjlM#7SQJkse*{jAg3kfzEXqEu|dbvdw`&%p^5e%(Cp zt`k1u6s|u%nhtW%cAvsRWTsq&n)CgKAxmMr$3HRN_~zl5g`X17?8^Te$G~)aZhSQv z!z*7vDms<o9X&SPji<*Eajqhy;$5`irM}23AcFew=1V;|r9vKG_TUQ9H0RkA`%e^` z|LZ3m-_Cjc<!Rcnq3!fk!0k8~J|HMdJYMg&l(G9w`pu=>ZlK#aTE_XCW%MvLHTrrf zpDOL>@4L5_veDP;CMhK!-Ra(H$4&1&XH{^$PUo^aM|)j9Bf8)p5d^e-H@kCG`$fU^ zr;+9G=F-F2ZTl64PYNl+9fOKeMDw`86~i2Fc4uk(XAQ6l7h4uw->hOP4sS-%1GLen zGTIFbuHR_)_vy8B^6yot;U#f0%SGL;3^Gw(F<2@v`nD3~=cA~@dy3A##CF*op2LUW z+LXjzh;^p`66W>Jn^i0pb!NhR%^^3`HP&8YO7^UyU9mjX>l$xg*!v=K=DbA_a}cz8 zT{`8_yhEZdu9=0>W^<jJ&8Q=3I#=y2s>)qTj-B@qY5!go;<jRVQahpVb&{V(fX+k4 z8;aktDct>KtBQ7LyG0T$&pCHQ#bLosY68Fb_(n5)A>p?ZMn((&fu2rIUMsQn99mpW z7?EtD6*8BQDGK3Psb{<!Q;k+#2Z52dj@?My=R$BqZdQ^C=B$@TirvRDWm>5-$P6rS z2VdFkXSRJTyS-(l9YCh=gs`3TwLt1TCp(A9fQNi15(EEoDym1e(*#bS;eb-K6Uyuc zqgd)ahbl<y6ewd6x_Q$Qq7(>}P3W=ZOz7*M8(;EU&}(S$ZVRkY;35JC^QcEIuYii= z#%J~<@Yq9l4h=p*;9?gzq?Cs$@PCci4|cxZLTk8b$A45dptYRs&(7)8S(=82UTbfh zAj?bL%NEYdl~IDV;dDy?H9sO;!Yity6ozpZo>t>QqnJB9lm*bU*8np-yw>tolGLFz zE6kXHW$Jj`;3l(wPEb|`E8pygE^3~Ox|`r;^AhW9ZM?cL$tS1Y7gn97L+?FlX^OPL z#H+!mBS4fEPJYb>$l|8BxZDY79L=gEnp1LyEw<fR%Nei-N8#0NM<g>R6O<>1uD=Bs z(XpEsD?nVUaYr7bT|nPUrD5C4P<M_hzn*Trv6?6a`Uh6TUkq!tg3!IKD9f6z1ZO{{ z$0sK}ovYRH@fb&k8y!@sA^cUDd^Ux*J~N(k=fMpTeX<fqo}1Xb;4p0AA?QM_*Od*m zBjxYdLkKiyoQM{BI+MF?j>v@nNYdQEa%YS!re~BYu*)3<eKA`?nzkcYdNhZP0_g-c zIw!)s!wQW8d`ped+iXz<=uP*2dYQh>!5u6&sb5z1PAoHa{mgbY?XGZ6=ruul=2GH7 zRw?xhEOjO@OTF&ijF-A&4hb?fcSt$8ZL;!0t1?*9Ig@~lZ!u=I@kLT{oe+sDl=u)O zPTr?!!+f+{6L8BjS>^ebBwh2H$x69@)Ls!0&Z0DL)7Ta&Zu&OdKJO)mi<Nw(gK6Z^ z8<(mJ6zGM%pbxG&&9&rnDZ8qsC`V0J5BXOkdF~nubn>hyN3#mIq`oCh=YAt%%T!3T zO>)Lq;(1Xa+3O#q>fV+d5%~FW(rvKe68ORLtz@PN%(iLjQJzLJCDN?Kg(9&%Afd2h z1QNm@v@WkEl*^eumk!L)rJ-@6fAC|rA7k57k*?`)+c#BH-Ht!|xn)hVvCP2&yLe~B zoWfDz^$4XJxoHYw+bzFzgE`jKOz<CCJ{q%&F;@weH1qCt9m`+IAJ(#vV4tG(RA($* zE5rlSUDJRl{PpjUQt)B@V&-Z1k!;#4vQEo!J|~8|i$xr^{?pg0WK2>P@vSAOgI*94 z_wpPzQDc=;amsiS30Vk#-~v>Fz|f?)g%sY@A5?Xa)lvu?1@sc&%DUv5Dq*P9GPYVE z1<U3@1^;<3EBN**^*WqB>mV-_bZ1ph9CD`%xgo0ScGGSk$?dk>cvJ7Jx`kpbPcuoS z_MxR*`VbrJ=_GXFhrj($-cULJq7N>)HcbnX-h><Pwt7$^Y4*<PBjAU<E&#KCzJ9vF zeR06e*Dts5MaO*>uu(9c;!W*xvOYSmf+)w3&@Gjgj>$WR7nJQa|Mg2g$Tt_X*bbhO z>T2^p1{0$Finx$@meY*g)4Ao<0@9RvIK>XH!Kg$C^A!y}7)_X~F(woFCn#)~-@|5U zJH-iGmJxw9lZH)f&*gj?U-<y>-cohC9WvcP$?%t6_x~b<0UDoV$t+;moe%B?%U&&W zSf=6pgi;4%s(1|J8EDx{qlXcVRc^OfmS-hq7;pGnSmqGbQcM%rQ#F*%W^x##e&7lL zBdrC)7zN(MArVG_I980i3XXDr5Mh+_Iz_<kRn3;dF^2@)8KJVUWhxlrO$9N++wU{X za=vnlaOww!fWo#LBWyF|^3Lh^*7p7iT)f?6$3<x7&V6G{%U^H9QQCfthT@kjeTAVo z<be-|^18NCF*g;*?4g*gj4!L@ZxXsYU|U$XpG=N*yq#ZW%KmQuv<tuUGe#-44_ryR z8A_+ACwe4Vb_s!|k;YB9kHA!;{fB_5W=RWJ)wZv1PlxL+_g$i9kXNpGfWWl=$1Uzt z&H`|q{)X43rL8Hqc+V4q%m+^6av4#xYVLeT?C_<Rq=R}>6OnR>yCDW&b0(m%bL2kC zt|Vbea_AIeTfZcT;8zXMAX7C@v*z<-MgN<ooEV(;K^X<j$}M`Q#j&1wao5B1#R4l% z97ugorcyIGOhJaVzc!jH5ZOLdTM^+KsCp{8LTO>_tk1-)n?4M%wb5RB2u42aBdt_r znsguQ7A<HFMhX+#H&^v3<s5@yGE;Wh@-cLU@4CX&QUGT*`Q6$`I@b||w&<-=9zc31 zCg@f_!{o_EVh`_xe%}H>l+P_6D-=3%Q3>Shfk%Gte%{(`aBC=M-%4h8UNAbl9ZSn@ zzA=|Ru{G6Ql1_v}TQcZ1z1xaz;>=2n+$z$2uazQkY!X4~gKcRHl89Kor$G-;^})m1 zdxU0p;uGoP;%ai^*9`5A{W}Ienc!X}b2fqyQpc|JQlZFdy}yMu(t2X9__l)SNGqJm zus!4M)nHN#20qf{TLA_Q{jN-~WD5mnurnEbk9B+FyRSIdxk&Utb^jFNZU0!Qm+%Q0 z?*&T@LI9`!G+R-);$bkgJ*&nNhYJrZRvgjXnYq&2ne7#08*`~8uX{(8Trsiz;|gdf z^^U47y<)8M#Su4NljNk_qT^&!!}%MlMK2+)1GX0kd-L2v^Uq_x=ifJOqJxw)DH@L} z)zqk+wAeL{t3-F#xOcI+%LM;sjS~dY#~IQ8d~&ZyVE_uX%YHDwnA%}p9sP*x5o?wl z!&tUe`1TxFGL0{loXM@Q^=sI4@U8HIiOv{tD&@p82L~8$g+1u34reV?`YlyjZcVOL zfuf_k*dx9bPK*kbwbY10zi5SO@fAFULJw4-_wXlLcd;L?@K((HICjH(V*<mGdEEq_ z$agQ+Jqb7fI~O+)@(0Q#3Fq{BUqQz-+Q&0&nP8b#mIz_Evoej$2+4x=0LhX=8w)kx z%EF)jg4GP32I(W3f?sQi(bixK8G`0!i2$orfc)gJM${r3y(En)9hWT0$6@XH-rBxV z20$`6d14Y<{P4CldxG@D$?7Vdm5sf`l-cd0WIt8yb^VL#fDQNwPv+q{?=ugN+8bm0 z%K)e_o)HFtH*V(aW@_Ar2mbt*jD4x4$<4L-$;`>99|O}S&xf|e6xx?o-H?b%62|SB zQ*CsV4qY8}Wi9)OuBs0DpwOyER_|$U0+yagPPMF>lPMuJG|(;?Yzn&iw~!;vj&+{Y zi)@xwh7$$k_gMlXxZumn$QOw{puoY^A=!#@yz~}1zD^Dk9^AQ;?)k@u$FtKknKGl{ zKOn2btK$^?N^y{-7<^ufQ|IMncIg}5OHRtAYPl*4kgQIS56ZsdqzKlcN-t8SZ&PlZ zd*vR2%1iYQ_U@+4F@wJ-5}w(9*4dABzFtWe!<~%zErcEZYqdQhE&In9?|T7PgV{p) z_A)1ai54Chc|s63{Y(+pix22BK0B;_2<3l&EYfz{4EGrVO}a$w|4)l@YUV$;@bMQY ze2j%Rl*M^+F3*{Y`?<y0zNf3*!q2Dxz^hpph937<Y28~}3XHNc%r)SS*;avS7jq#o zgyhDzs;EEjFVolY3wQ_P_j@k;#}BisKEZ4KelN58d5q{}_GJuxXGvLMn))`GU41BC zW*D0}qWTIFT~DWTOIiR1-)S051=T7Mk`g2PY1n(MtV!<WB(8GkNe9pKTGg0#Er42y zoaLGi>1OD7g^PYAik?F>Y|NxDkBo*biF3mM5P#9g_z$D(bBC9LIj&&H9b!2LGPYK? zFkD@e3G<d7N*=UEN|r0=bUx-^M#1-d09?88_3E{1Z|Bf&$JCZ|=saGq?@r%T5t5Jo zeIhwwpW7)%dL7AJN695aLqC^icCY(NX79?9GGu8>WpkX)-ME>)q)(dtrL_t`?iBub zFC$RPF3?oZ{d5Z{roW*WxFrrRzcbE7ixP16a$|ONS@wgy@avzO4S_ZFe2vvJWZg=U z;VJJUfs%OEf3^wEEEsbiUBHlYi?}2pHpIwbS+pm+F3mGd(`>&~adPD`s-E)lVYwAF z<~wB91iL~#i2}Miw<Z<sSRw)^;`LWPsp?|VX!>l?C&A;QHmW*v2JdS8wrT`K3eXDR zN>!do$~Q8t>>&i*-9#l<PT{YE?wc@J0&8!96^wZwvaUO-0dFN~^rQ4Sl<u()TF0mB z6DP)2vR<X(XZ5M{2*HM76N~O(lgOKoUDH0P1cAxD4N=1tSYjHj_*d4sIEDgC!XLyj zc77M-(TIds$1xWa<pE_%!ntwGNfskU$z3U74!~%S#BdtXz|hLZ6z+Z&o8uRg#*x!i z8tCf$_;}q#(XHd<4`-Cn;I_+FmQ=bq^JC4K7SiO`N9!Brce(LTzr(Eg%o@&%9<ksQ zmaQcfY~qh3sgvW`qTy{L-JVMKlQ^A)FHrusR}-F#!&jEnlK%}pi}DXC-9t+EwK$#S zKTPHRTH#G2!jFEJ@PASG=SGBE`l}UwP#kVe%>Of=MfH7E<({o{@5HOx4GKCzK`+HY zC##lY6!cgev`wiFQPA%QDq51<eZrluhm4!{ksElr!O;-7<%l_$CK#0BlE#SZEi(-I z8+L`)+3aGIQ!BZ2D!l1jJ4Kl0EZ4}%-Ua4D_hc~4x`i@jo)xC37HX^1GX)n^tNR~U z%@|X1#WJs}34GLAvx#hB{aRG&F?S@Oo25_X$a(>R@R*0T@6A+0*y-lQZyltS>D=O4 z9k--GJnY~NzoH~}yClL&Zs;tKZj%ca?~QfyBLsF2%UjVSa~k#6h%=7ZpICNr^=Q(0 z-RDC7oJ?n^M?};?b&;!bTH)SccviYWw6U32)G4(~ou-ztfCaWIhn;;ZJmOtPK3=Ak z#vaJd1zm(TNjF#{!^1&mX0RIqCw`$z+gMlVJ>C}aQUc4vrAt@a>xy31$9Y`;^J9wC z6+ayWhqvFOF>7K)ub+lNSUNbpQhiL)X$2Njx<JcFtbj_M9DOfT^A=vAoZ8eY*3D?^ zvs%Wq&9ARcXBSW7SpM^@HTj>|M#1?-df~62=@osT>2(&$ytVoCRn4<=6~16Z_*Du& zQQ>mRX!~GGKcI3xqj25+H5~q`!uMCW?)HYm3y)mwo?pW@N60020SbSGiKp*9^qq6( zXVBgb+LNfHdrrUq{h|D8P?KHn_s-v;DLX8mD4dtdb|81;Mg3YUKe_EWRr84dw8;tG zRa>_{r1N#hn#}^&@BbNpEIwRnQSPd(!wEIlm)TcK!;5hl34flcs>}{?Qaa{K0|IxF zx$5D@r;wnT1bGv#okKQKa^`4yBP2Ryt!T@IYxKR2gtxw-gg4G}31_ouAz}m6^ye~d z&y9H-e^rQDJ6!yE;3@ICh^p}qiuh>{5enKu(D{7|D%{>Rso^Q=A}-W+jQABVs{M8w z7|AA|-{@Ujfa41ClB}1ADT-JfeH1S1dgk|*pg)3d%vm^fAn_c1Q~3D%aMMU0TuWwq zORUugE&lY#d%D)XU`f!IyyTOYTHMWBNy_C{9X#TKv~*I?8d4oO+fv=8AX4>2srre= z|Jx<wn=JZ{3Kx9~(X8z)1iG?(?(Ms<pM;Z+v4laT=D%;}5whBUpEB<zQ??iVkLA;d z^zH61x@xAJ^!eF!D$>70(>h%F7a`}u;~)(oc4K;<<~#=!Yy}`gUF1-nXTt64M!Wld z4j#*q>611e(t-89qNmc~1&iL_la@g4<LT#Z@Morvyt>2PPdvOPph;6{chBz#|K;t` z_;%b*U7VQmH~Ug)n`Cwo9i0XFFlyVQ2D%00j9UC_ie0)JvczRkC7_Oe-9wj`bq?(b zxo`Ji53;X!z@s|5+|D7b0&RzN4kh%QWC|nqzNPv9!1xl|@(n(!)*Q}GcJNKTooqe# zOz5+<q>FH_@Ju+KSl-!SvGay()g~(G(4{Nh9~%6v^^2XDXLp?0R*~J|PRiqJl^h&) zzmV*p|MI^yF4X5rr#GGn@7ivqPqg_dqG+X0rF6AMHw^U@`)1I7F!mpD1B78W{v#^? z4*wC)Y^4__j^4fh2#ue+ELu$GFXh!RH)i1Ny|v2Y#BBx?QTrp5`7v*Mn7Dh0lm1h6 za^+29g#VX}Sr++1Y$p1LL@R?haV3*U@0bOa0C}bk8fkaBgr8pKx)--h=v`SB4(TrH zg)`(81115~T~sxtQMZQCW2$rblJMphzhCAR;CJDcW;YH-=l2De@WkJmb)BZ9!<G(J z1Ra>F*ds>9V(<QXHO=TIjvmMa6J%sWz3x<SLps10SS=TwoU#xQ_q1WFrbf38?V-kJ zS6Ansx_^A+f+O;m+uAAa9d*7W9rJ@e0psn{*&#rDp{3Sl7SPc{oTbVmvHvVH1b-jm za+`xClMi+CfZ44dQ=%5v_xcSi*>Gs7@$dsn-jCjhUdgL|xJ39&G@q~e!{kHA3WGA! zip3PM%Yu|Hs=|!@uX<b{h&8KpzL%|frLsA>g%`TXyz_E?>ayH2$aSN3pTtM~jT~2u z)BjU{BM$#{b5vukU|+ytZ?8b%aQ&O<>~BT)O4|Mj$TESENVHwjL10PLd35J;BP=x= zE}IrbkW$&K7t;5`e=)NHh0y0ilU~}Vk|>u6)wi@Cy_#E=Vg07qf58FYl-h{DHhjsw z41_;-FKfbDdy)TwZPDABFmvJm!`_>~S6N+q{|O`-gm{92Vy|tZMjL0ST1kaA$DF{4 zB$|q1s1p@SY2_-diQ-TUCIL<#4^2fys%>$orPVsriQp6l35wc)v$l%X;W@?uXW~HK z?{DqrIYU6}egFUadEfW*x%nvP*?aAIuf6u#Yp=c5R`v^a8~uOCenII8+pu5of93m$ zU6%jP`w4fC^MAwpiTOD2GiiW$J@0?sPjC(QKkp}CN$WqWtN4HF{lo*9Vft@)KQaH1 z|AX%*22(i<#s9pY2;Wb90`vL*%=?Kt8vEb-ej?)^&)qTQKB9PQZ}*6z8BR0%5k=!( z-o#2?8I1N?=EEpq1o<G|P9UUdmA!9?RLKYru5)Wf!!Gsvk9q_7WZZFQwryNV37mB~ z%6fW3qt^^PWZ*$Vi<so_LBnBNJ!mj+@TQ@ERq)`=Wad6+Js#8C`-c0!`um0}!t=1+ zH&{K}dgAcnG97-6%~VI)4u^H*nAE>5si*07cu$#h2AZSGM$<Zp`0+S>hg~H2&HvJk z#^B70ld0p1B-T?(v#0BX`f~c|r2qcW<j{fYI|u8Wc9|*P!L&Lxm3)o?$e<)+&>yc+ zM!M@!-CXF10B|D!!F5sK^Q(|9G&U<PR72O<8O30ox6~9nsf`Rj%EOOReK?oSYP9r$ zBpJK$<$+dpJUMZsn&uTQ#`qLPNy5Z?S2O86BdCj`*6`nAL|e)(obx_Wl~#d{daLkk z?qs5pv|Xq2y$RSyk|~VPLVi7x0uEv|3~V5Ub1m`9Xa;ZiI>|Mbhdhk~S8U{c>sh-< z#M@BVNA$=}L@C0*c;a{j{C1I0nO8HlO^2--?~(_@<I-++P$&r@U9AQoW1a~aj>7z+ z|LRQ$4SzxzcJ6##=7u&X>Ns5}WTbu5+I8A)W(MLd9k=R?#`6?@I9j7`Lo_{YU60Vi z`^^VLOJ!gcA@xnu=Kuaur>$2>AatAVSG**oz+(X;QwlFq7-vM~j=)Ox3Zoie4$@Pk z54yxU+#0BXo`P=-=ej`EnX;yeRw3Jy3siIZb5hBZZ;&a(IQ3KmsZG)W?WRyEh^lZa zM23Y`$npaMUC?@q;Kph?ALMmPcb3-q^f=3@2ucHQCh+SGjim_MOqrIUl$>e%U;ADk zD1_c*Q|y0;2OXvt5d;5vKAmB5r(2&;109JPXk_SBvt0OeJ>a@-z6)SNEi&}RD+z$9 z+tXZdEFNC<X}~s8zY|rlOg0e^Hkex`o^-Y7$gMwUKr`*r`<|slX&QF`-@Q3DjfCVW z#<VjZS2yPA{@k=PWpTi?Gp{3tAuGPXEN=z#y(4~qH2Ip8^nBO6=;m7ke6mt|g{Sb7 zo^jGIQIlxzO!5U&&w|QmXzu52HQ&2Z1mk>})#c_Jl(85$%{I2oU^urg>=z(N|GB;1 z6e_dl)~Ub>fi$;Q2XlLUSu@Qf;(7#Onp+fvUBpeM0j=~r-Pd%Xl3DK$Z4Xp3myjwm zy$dzl%=*<1BiuA+>tl9W@^Hd$a@gwTJSF+P$u0DbYA=od`}=CO1mnM8A&Qq5kOtvK zE5&Fui+>|KLBV{d?tMq3zS5@d-t4Rsm9;*7KW7ri)RVd70J#zJ4Mzy{<m`w4g(qj~ zwR>{rzVzhmP2%+CYv3IB<(`~b{~TU|fsMaB_Xxc?yG(D+e&py()|)fo1wniGmGkE8 zPAA{dIPKr>y_x7t)_XG-)a$UGX1(|O%{TPUY~kA)C<t3tYTlWp6Z6h2sN0^u>77}o zEkja=u+^G=O!)qD&YMd$9XQ+M+A;BXEsFOmUMq~}KNj~E6bbDS7G-RUDn@_y>?ho= zQ1FyBz$yO6&m#a&Z@f6zDSQ=c?Ce36tYPZlnU4QBY4B3UE+x?%SX+1-X%Gt*#uF$E zXSQJW<y}>swmj8Zhq(j3r@O7zy#N!Q>raHHncuAK(A$SnwH=CQCEqr;!&#MKFL@hn z+fzf=+})|o?ZR`#1H=<IeN*cSRMkj@Tv?#cVf)nKUuU1%?*?R*+eqZ_y`MhuXm%s@ z{X?}fS*QXevW??^8w);cV;Zc==rUdQ;NvTSlTGZ$xx_n@xE7{mi8@Tr8u*3JS+6Wp zDC{%r8L2RPpLYj&q)%2Jf#l2&a?DZ=(Y0p%!opn1ul`h=u`2!n&kaOZ7yZE>5KCq1 zI^jfT+-qH>eM;Gv@atb&?@}ytDg2d$$vEKzHt~1$1Z-%7ePJV%z!Mgo=<?49;H&*T z3{K-q{d4$qEXW8(Ji08-zW~bo-#rUv@xtr#L29mm`r}hGqmXX5%cKZbZm+|Nu|m%4 zu%)t9N<+&@qU;zg)!VUmU^Rd)0U|qKJn#zNbn%u;?Y!3rr|g;XMy#-t<do%c7ekIi ztt_6m=_Q)L*BE#ipwWP$7(R9URiO`ng0bJDvB~2mSV}$-d_JvZY3wIXpB_wSiix&w zT?*<?gDXBSZW#?q%q+zqPOcPqEdlO@mw-qzJUE6#V(CT$dPV8H!kVB0Ntg6TUEO?= zfgJai{ey3!Hu4izPz20YLA^M|4ib7ToA?*8?q+^kI%VZ3IjoY^I?(^iUs=f7pk;ZS z=RcM(IqcY2;?VA_V4|_RAP8bGM$L^gRWPhdd0}@^ZqgxHLEgZ1mvDWi;@ve}a#DW6 z)x&E#3Scn0eU_Y7Q@AeeQQS1=AF~e|2>zwl@*b|U2TfHcS6AiGv@AP<qp5+5JM?LK zxj^c<+2~`o{C3WpnprKuHl~!JUBFM~l1_wEH#N!PHB=~CbgSCTTAHqs8RSlWiu4KD z8q2R=_kJ%7N%7xEk4Kf^<F?46wNoSf#rEV)4!;dh-|(>jY7(n$oF^Ng_)qH8eb+?D zkXAkXp38H&K&M?Rkh|aB$7N|({I4uaM)hz9muI$M2azXua@G1C4+Ta&q{mq!_(B)0 zgx0);A<a+;@fv$cfO+lYq!G2r;+24$*{6W|mP*^+r<YCzV<(rKq&!(&F2y30M}DbH zp|0SjLWdO7_3q&zGNu{q<nYT%-6~l^wEh^(c7BA!!qh;W@E~icV@aaRrU2A?(v&~# zNo_U(9|sevti0u;5K;CJ?L|&hSfDoLk{hp@(Wz+H0tk!BR-VcM2(bdAmcnw>(@~ch zH<AIognoprtyF)LSC=(Yq|?dPdG=X<*%N9lw#Bi3nLN6ZR?a7d{ur^r6hKU~g8Zqy z9NJ7PwA9LTTwkWVlt10dD@>7-@^}gH2Ibr?t_vcep|HwS&`ej*_Tfa>eU(*#0ji@> zs3^S9vb~WQH-$!ArWRCgo&Q{z`0NI}{<u0+IMX#?rqh+XlDryu3jNlXv_*a+F&)7r z6yvDz3C>(<?yRgz660q17rA;$teyqU6uwne_rg4VQMW6ts=1a=wWW_KOI4CpsFA8o zF3_Oyet53th4!DILIn>LoKCQUETwu$io-}DLXk;xNRWorBNeH5^6UAesr9UE5*p8< z{>sV~^rDo4Q23eRW(b-~jk;BI!;zk-_KhTSt(@CwpI6+<59{+%*agb9+gB>Ye;A|h zN;_Ajwait*d=mwXdPwFrN?4jt@alN2$`OUXlys<%b`$1>EXtPps!blYt2hx%Sf~8r z8dtk~bY4>SjKFM8N@i7`E~AEx_JouuZ7#zoGOevz(A1Gwg@IZ<Gp#psx}ip=)QeZE zG<d^?SYnH@MPfcLtVw(>hA|#zTaHKdCXYlP;(V^gy(GmsQsO-^6)|sne>Q4I)|1P% z)LR}bsHu3f>2aC9<vn>p)0%ioS3$f2t0hf$wyeo-*)q6kX&i$$^|c<=juO9(P$jxd zh|61AQs?{k$UoDZKB02c%b{AVXwG}xhV)l4Hrg>-_+`m#q<#8B#kXh=ezZ+1=oOw% z0__<#SVVtj(GH6ZZ){e*xyr_13ztmA!_hJ2a$2!RV`|PJ=D;BB+!ECkrbm%`^q%1v zylZYb-}(#XYl#w!@_>Dno9(IYoKLjCo6u~slwd<C8G0Jh=Qr=@BFNgYn1Ap$UB!+g zJh_|lz-u=5;tT%+de=?UN2>w#BTT_6bu(%qZXY)N(PNbRz26q+$-aolWrlp3vY&R{ z+<iUm@5lJ=Q<eX3<nQTp@*;(=RoGcN`1?+TFI9L+CjG?<JO1Du!GED}v*~@O&f#<v zv~MMyu=0-uo;ul%O)(aZ;vY~w-&K5dPW+3C-&64i=EQ%081XwOet1s&35tJjG4Y>= z=VvQ_9`T7){xgF7%OH6+URLi)#Xd@`MU7Drw<wCM-R$?R;rXuRO;mo(%Wyn-PafJ1 zJWJEHJZDW*CSn}-Bpv(D0m76cOXZ`IM<kpAV%|~Zq!WHiM*!oZdz!md`PGR}b!=f* zi@^G0_7^0q4AW4GCkraEX0)<rcp6_?R*r~QtdF!#B~{GZiDNomyPEvi5l0p@y?n&a zikkizJL0GzO;4jIV09us;tfqn^j_6qNNnT?V+7{6b?GLHwgz}b{(mwxk~k$gQHQki zNgs}u-yuX-Q2OdrcPm<?&e3?V5=torR(f=xJ(cY}*@QjH2iK_#o+s&)o*`{dTfCNT zg^*es-`jGJiq7Mef0tFF!Qc^oIguPU(vR@X;?cYQ+!qFtwej0d1{Fl!_J|0^ggB}> zIy{$J$IL603Ul;YiXv$PnbMPqRUC<d!?T(5ik}rl+J44Itm3F4k+vy(rG|oLZsgMA z&jG!X!|o<cQgY!lYM-r146^$Vye)mIrmI{lvK~&~N&~vA!)i)uN5kG`eFsJPjp(3j zFkYovZ=ns%hNe~&O1^Md%pO&{1O}B(k<GDc_pGx~;4zo8N6$1Hl6vm8qC@((m};65 zA7}?4rpMu`uvgOI)C9?d()1x{UyN5_@S~VY^v~Y}!A=;$h*-7#mh`OU2}4;x-}`4T zucGJzi@#Of%e9Bm^5(2y4b_Hg=*jFggz5K3Z5dsm4b_%WwXLH1eygac;=9PFH3i#T zLAO};+!e&DJ3F_8>&H`?ME4QjZF<wz&TB2_7Y%IMXp0AzIJt|*p49hWJhfiG#WOOh zR%b6BSo3i8AlCiD)l>f^s|TLQt)7LpdT@6=nSN(h&!?;<F0+ItV*CGLL3g1O_jbWl zM5Oh4=D{8o%kFIqZozd2X+}Ig6+VQ$nRBdmKr^XhhH-1t_QI!Pvi-u3H-k?#UO^c$ zD%dppVq*u(c=>{G$SfL((jYoPr;g1ZRkhlEH`OK!Mq}>7C{e}RO}Ev;Wk3>XhO)_A zysBlmjj(V*;uFkk#DBZH50b5qBW_<y=bC<;CI{IzIWU0su755<mJB(-C#52<m1gKy zAO~r?Uv}b+dp9<#Mchv`Ae-QIIIT;`6p8ucJzWo>G53QgT3sI4$Suacui;+~Ax320 z&u#D-hGgMoY>9Y$F`RL9IP4JRwWvd>1E2!!j{Y3R8WR3R+V<zm5uiQz;$eMi9lx3N z2uG_$_pqqbBm86Yx-ELdqbC30fT-+3O&SW~LQHeKPZmvbjxZQ8BW?aGI2LZ}Tt<g5 zh8WwF@@R$5^HyJm-n`^b=nCl#uaw1}e+j*rq8+im+GA0R-0Y7uI<+VNh%a>Y8l8bf zw6~Xj<jq`CGlR5{nvIwW@gIK%QZtqjAY%JsB33Hm0MVYzXianPMa)MI28yNH__V!4 z|E|rHGu7wS(Pp)rft`Q70qQDwM-Wes6*CRt%YR0#N%<WphwGXYCJPg8WJGfjVq$B5 zq+-*qsH#S~=qqfuz@l;7`<2+gc;TL+T`M-qKG6UK0I>nQWW3lwOjB+d@t|nq>M})7 zSG2nXzW}*XJ0azBU7<y$^KEIWDp?!o8V0RsS*oO8p&{O_B=pa?iuvVGJypM5<7cW! zHqmnNllYrU7h5&utCShGp;@JTl{N(ZinNu1!>N({lg(ESX5K&fHB8$K=H2MKvqw#D z1Ak{7HuOw<w!gD?{Z~QfxR>qk4Ab(qp?Jq&k1uNu$Cp@-y<>9yosAz6M3?8LE)Sw} z5n=quAlgJ`=}8<vI*6{!Eu=Dt&c%fB0VW({?<q5dGz6)05oEj}2sZ>XbIW!U=>58x zT!N(UB<3kbf4s)&)K3mjG5U)q|6o&+ynBg4U$6{vhp@^GVauwbc*P4%>#%x2Ry2X9 z#l1zF`5g6pX2oKE^F%WQ>(zc+r9@hPXe%<~AZ?zqaH1b+rMkj`f^d-bKpZ1#cV9U$ zughv7shZqvKX<F%Z8te++smZYT}eE7w~mQMm$c9$t#?>fwW8D(eAPxGXhxM<155mV z6P(O3rL2&82bd?8H~18}w@-%jFdb&EfM978DUB{eRK&5B^R<x@C<KM%;9sfb^o}V~ zbg@5S0f)q{@kK5+qR1iscPtV?Bu!~C^R}V>2`wDqqF0qN`fM;-M?XlfqtKt4O!ucc zbE&83edtfkoqSkF-ULI||9-vaH&WUaw$giMXCI+$0Fu-Vn`mML^X9gaP+)I8`^~yM zoyEO?4B%=$<LPV;Lm!!UB2yE+w}CN=hOW*|B5Ju%#u$6Q<8oEw1i|eHNX^w5B6wwS zx-rSIKZX*aB9rCxjMpxw%#0<bmizm5l7H&Bl33#UvQ9E-3&l^GuExYZA=FsSCs;=< zp@z*cVwVu3eTB$n{CI^+*!KuXM`ToI%WOPrUDk;d&51nxl@Cx27lNp?NFL@D-bR}c zeCaxziZEV=kywyS5;068T$uGR&ctJM+G)3Rv0e#iH$0PHv{f*JKkD0&)^=JGcu#B7 zr+H5sY~Ir%ZR@E;T$@{J3)>0O43OP*gpa@nQ1X(pjR1*o#*EZyyB{R;tpGwJUWiZf zrC(v((|TW`9p&pXg|Be5HW5QUjSnNHq@(yG=X#%FH}kC_v0h`_fl>I<j<+l!L)iBL z^j%YB=6OWcnJoY0`*}R%?jhpd<=R`Qwi%%Q7+~&Q$(A>N7fmLQ2P1d4mfbIqbJZ31 z+$PW1w(>@f#(|ra>AgRJLjw`)<V2#yk$B^0#W}2vfN_iGR}rbc?2K_7gF90^(t`^` zMlLVe93SQ^e0g(>uTYgHr^LFERq3J=6Q@v#%8%TFrQRwstB#3rDzSpBlAu*Hzp&)7 z)|rx=k{349@tnfRZ-q~%a4XC8z-CnKTS^AukdO!bKs|#a_LVMheOWUf((2jBuaHKw z&FCwrNtZD;p@X&ci$>s1@m>8!V4<p|ouPJ(8;KUx>)LC`T<du*2C<>q=RDgr3FA7s zIxFQP5V4&SJyn<5tt2v{Vt(yv&N&SFVt(zuhrI9A?X&?D-#>t#{+UyoAC+oCI)AP| zyOq&<b@P=vk%!T?Ke<)YRaHp~q|auHpJ7f;jB5$S*ZXO*;ucD{I+l_CtFDZy2DdC` zooYjpoH#wK$pr2Hc4bw~3i5vwa*|qUZEvQ2NUsDEsU*(=-T9o;BR-X+;SfbK%ptLs zae68rMsMg`7(Mi=NLb0>xifCYFvGikCqB!=#hIMQUhHJUT9Ba2Mt*4g^l)WOv6aQq z4XiJ96RnlSCo{Z+#HqcgOE1KN_T0uZ#-KfO)t)(Rv?o8^p5kkWT%K16&wThJy?q_| ze5Lla(@l*1L;!knp>pmDe7V6d><>Rl@Q>GpaGv71aS8K}5&Y>i{Cn`R+_-*3fy>y_ z`%*Gylyv~g^*=J_&CMW*lSsG?9W7XR6H{4vsyeY6n`>}ZP7}hOXX{MVx|9)&d*#v- zl}s;G9c90(MVs_iqWo$OY<5Dn;nLAKM|ZSWDA-Iwr#m`dS#}}|i@flY0xbph0wRUG zcIFIpM>i6uKe&!8-O+AhnOjvXxaQe15mG&Ci45?%Qa%LbR#3efZ6)zBGW-x#Cwq7~ z)IO4&8D*Sz{j;QBOVu<BqiAfYr&wDN4UlK%KxGC~FANtE>-yw@bjE4R*vmqz!75-3 zGs>f9l2^l78B|zGQL<3A<!)72_yE<^B{tD7CD0$rGiJiqj-<plD85MXt+v7IbZ>~; zt;Ejkg<edm`-o)xy`R%@zH!t&LK58(*cl?YVzoO0VMgv9L2%Dcc7zV>+M;@nZP9=e z&|e%3C?TsFa;w5ffTjaq&9~a9crh&gUe>h$3wUX-JQS+-BKBz~I2J<!(0;z0@Rm}p z4oXQ}W~w#GVQoZ!HD|8H2RQZxR*b@U7QR*0v_OfL`j!y#Z@<gwP>m#j9<Z?+N(O-t zTu7t3^%og>nO(J!)hFoBBCGm=Z5}3toX*H1AJ>;{B!M$@Kmj9YEB{$1H3-_BO6~W0 zXEXI6mBiF(8kr98h+J`HQ7(}FR(^@952M^P8U`WNHbYJs^lVn9V4~|yT5%@%h(TIW zl`E}y)}N@S^)ShUc{Z;}+C=8`t7!D17v5>8b`m=fMkHv166jCu-OO)@YDLrm@>(a= z+pq=g8a_iM9!#TKC7u($qtac8UJp<^IT>W#dkMjeb#GNA>)tzI-J4ka3mZDcBGsMb zk;0BQX$Ti%x~-HCKfJba^C{PDrT)4{i(IW#2=nU<e8*GefqV*qu*!;iH?2~gsqwbe zRJ!}7gJqNK;fo;KAB1!@y%w_cSQ^OaE{e9uV8dcEBvz%KB1@nT^SZ1YU957h%{?*o z^Y=98&1dMp96Qw;-*Io5%vj15qxz`3Sxr1zYBh-`(O3&r{@8G&iX_8!{+qW;eO*Gx zH@FlP&Crk<fd!LDVL0kYvJM#2tw08mU;h>|GhL!zqO|Q;z{(-7DvJLM6PNIjQP01X zke0}m0+U9|cq!jRby^hQw0iy<aYV@f8zff3v>}-$N*90XLTS500zbe|m53}oRP!D; z<@bKXc9TpJiP$nYqT*>{o2#iWSt4kmf=zeE5C;{MRaT~Y0XY=nKFDS_zlR!gsU3#C zru}UomnL`EfTtG`)azDSr%}I>U!z_#85}+?v6Ku}NWhYFrQ$D&HL^3HP-(*D7g2gZ zmTJ95u5ZbxlJ%FSTjW|xShPwA9;?_AX?=jU@=-JOotnt_k1N*1BjY!5{a@Yo%Iy8q z_t7$a2$$nudRw{{UD(I--@!#~b;V~*|FAXSMg{yTr3<!_*-%<dtIiwE{X8U~@%VJ# z*{hDFJkbKm4oQWw>aP|OQqDKG3exhUJEH}m2tG&h>2@LbEJs6JH5}y~Wz}}$2v(P6 z@?Xd9LK?(_6^d6?6sB7A7nG|{zk}4le2aUdiSn{rsj;F%T2-XpOiJaYkA??E<u&L= z<vRso#5eIPqOPPmUzG4Gya(Av0wN8j0QwW?V9-X++0sms#*@_<^)oYgz5Z~u(FV`i z@1aFXqCfTS8GaLYm}UbIZA#7j&*w&dwmEoRmclbEhrv&{kIkixr`YjCbSP(c56>6j zK!wWzaZ>QUB!qOi0ixnOmRYj+4ViCfJD<z`KiT=iF&^5FX8o8hZEG*;3M^Y(^Z*<x z56-jhGjOfkRsrpf!iQ_ale^;8{%bc6#6}g-PQTz=s&Xf)OpPM5UG1MP%G`GzQM>1q zm!ltSclI~gx`}z$+X%}$A%6SJ*KH?VihDojervf-@^X9I_EDsDU&bnQNnD#er=%M7 za&vndbzVkSkWKDS<KB)CpGs}g7)W53imU8i^G=-QniyqBSg*+Z_sHg9W9f=^RXb<R z5`MI=RZ3eY?lk{!QY>Yh(L5Q$AMOf#k;+qXJU{Sr`4wDY(tyAf<}avs#pZ9uTQV2k zPN&oOx-9>(5~@c-KgC)8W4mI5dKI7cQ=Il6JAfP^eMuJAylqw{(%0&$C3WZn?j3?V zm7J?NvU>Z?52rEb53km9SRW(2Q6s~AZQ?f`_*3HEhGD{TDUM**#=UcA!c=I**o=*5 z_T&$?+M6|`HaUqIYtW2|t|K><#z7r(iW8?5%$ZG<xH~s_+(O#CvE?EXV;bQzPAV() z583RdO?L4DpRl#bQyOBt4E!&74>rHA+}iFetcu*VveuiV4Tn9;JO|4sBQ{qz1TIOL zdzw({-}$ktJxQ)~?UQExmuilA<3q2rZU1Db9L`=SZLCwK=QM#as7*W<AY<qi_1iST z;ZNF1PZs_}6KkV5x{kKU5UjYMIla!&HI9tu^ajqGI%7Ln(7A6~5goKvZHPjjQqs84 zIlem4ohj!ZL`Kt(B)j+w3#uNpSpbKM_=L*%AHK;7qMTLuXQMrz(w?0%7>z;lRUom- z(bu5ovoN}P&@<`wIQ5`Pw*KPtdJLa)dYwA`-fVn+ol3Wf&kb?!7x)_u1ic~dI{(GE z`hdDT4?aOr%zrTmRnp&w@r@2opf1}nN2vP=O-c<-%;mWe3|*p&@$r++T>t#T;Bma8 zD|J&*O94@IgfpIuAM=jK^-@>bnek(|-u%o^NzRO+GDUJ`+{?7o<U@!<Z``4;-fg(V z2B|e05(+<0by^tk56B_gcBgxoPc#%4!z%R7xZ72u%MHPwK)55ScwuIFd38k@hr8ay zqV=0mq@&r14fr(N;#`EYPFCV8JU+D#N8!%<Zf!n}m@}?-)wEvMv<BC-S!x<I;30x2 z(oNTRvgC7Gr;S`IZ=|)*|4z`l7s%pWF`va_PLqGQ6)|nk@|Qf$u=l^>?|p>fZZpNR zGgK#I%oz@o-PXV$vLk9|NUY!~@=JIq4R!@LFLhI2p{ux2uFZelZ60`14!cqL)i(@= zA=ogY$hTPVsa+khZdJ21m#8hDf~GJ-k(b)rS{$>1M0xfUj&ByfG##HTuJE_9ACz^t z^^<rSGQ4udJG)~5F4DSzEk3>8JKb`x#Pe=+&}O&V<%K+Jv0qF2;Qsefk@FRA?cVY^ z<)~SX0I}XX9sQx42cv_0A%mR9<xrmw)8)ARsf_%t+~eH^GQ6)7kV&>K?jCKVnemoc zrFoIo-GoQHx<+v3%`9ozQqc6ZuF8@E62WS<td85wc$&ZR%Jq1;G@JPwaRb+rfzT;! zz>#ggoasIkz-W~v7L$oUSd$~!v1)sMO=H9PaS}X)J3pp10na%Raa~rmFa`c~fBZL< zHvgMS>7$aMS)iWlFRQzm_9TmkzGd@o<B&SwZeHAHu6Ns`;oV%NMiGaJac8yDd5w;= z?k9RML4>Srls?0|fwsMjuuMR%eXp_O!Fk2$P`mR=D40}t@3>wJcIGX+&J?xMl+(2v ztnF(3z~PIdcjlJ}j3D5jubiZv!eK!XcCOQL!_IX|@8*&T5~<a#503kgVJXd6ELA$W z6c)PkIpU#YhaCac7Rsl%k@I(<4h|Y{k1!(jaf+Hk3KcagG8ETkcs_7Pu88%!tIBTV zGDjdZklZtV|B>s|&w+GV(u0u{!YM(=2mPsoVv>S`gQEPaEJM{uC?Sl`8??ebqvoQE zWJ^h+PATUSe(@{S$&b!Jw_318!aN;?6m22^PC)8_s!n4yE{+IUFZ2;<`;dR>g#uQw z-Oq^rJAIp@IW>&Sm0-Q=|K<)!u-^4+Znsr1GUr;n%If3pM0n&*He7jE=5gB_^R8M( zJ+(<|YtRGi2dV>}S$L2KaJ)B5Ehg>$d!Mi3{=1+Z{$(5fzdwRk(woJc#;CJkl6x|) z*(oJl>+L16$M9=4ZAWu>c3PqgeKSz~)h4dD_bMEoFCz#<^rzW<w)5ktLU4FC*Ug;6 zC>In@q+Bijo!1Q1>H8IuXI0TnP=BgII6~PvTLuU7jeNPX!3<r3D0!+GQc3xC=z8aM z4qd;R!J#XyZ<E8%<L`_tvdg=KU)vc%{=MZsqZ+lrk~38-T)aFIY5k;7==M%U+h)iL zE?(@nt1WFj&bwcSGhJHLPQ68D=F-bWSHjIyRM+-Oq}5*8{W=C*w4<0p<+@_U#=_c) z>$lg^j9k32Ko?|hBQewRuHkvEuKZL&P5zcT@BSiE)p*<2CVG(u2|3@<(=HAg?$}Qr z?n&`=T<DME{T(Td23hiWb>apQ3+|CP%JGqRbn=pem5*7`SWe;7o2TZ(W{s6FDDvx> z6rZp-9(o`4+?$Zi<k+j&J=5+|ZX})Cmtx*t=t1K##Um=lb?wxGdGY+seH(*wnDZ|& zai?1E1~*)1LWj=8U24_Pz~uxF_vC6~Yc~_Y5J2wiE{Kk|?!!o-HC~EcT&Lmf(rCT2 z)Jtgsml@4;sXgs>;zUr#`At~@l(isK=qGZB0azCLgmG?Os!H*s61aJJvQBmDkxZR8 z3pX#OEEe@n7^6-2Uqs8#OWSg=fym05<i++b1EMKk7H#N&5<gGO8pX6dj;2Pn_mdJm z+O3Sv`K+1vNZVLqO_#kci9!vU|Hz!W#v5I7(<b*9rA`j2gJQXV#N)^;jx`LF{xCjY zih@^qTz{$Q=?>L={7UV>Kt^P4Yo4S6|DM0gv4r6;*ONl9W8CUm5(KIx?S0SH&H$&! zw|>fmWWil>?NU&NvzJzL_A<O_XT`+I(%xQV4Ir3w6T=;ooN*A|US#`Oc;{*%L^ZAs zOO;zudJ?Z-v8QC_IK7_-?NVRQ$m**mFYwKyPCkXL-CFN1VV)I_gPH8=kEZsQVu?4l z)yZ_-UsK)7joL8I97-zMo)ASSN!V{!TQ?!CEN-@k;FU1>N1q7yf~_`E{c>&cuhPah zw*F=RbR<Z^rjsZzNF(Ksl<!>)ACxJ}JF#2}p>0<q-A|3N+MB6^-NTBnO`cH_W=8=3 zl0PIUw;-!r0~})IW~f$BZcOFA!ao^#$px=KMThZ(C!97G8)&hu8T$gnNRQcT+-{`i zQhIv6pit8MhXXq80bs>;{h@Uipq;xn+L<beVb>j>yX*G)|M6Gty1oA6H<G=BYk5b1 zLK~-AG5+h10Q(*beww{Mn3B;4PWeZmC#ue%8Xi1Ah(bX{3^>K1HXR?xKdI}&c6n_} znY7fW2&<fY$gON?-<hCBOMf3aSc5Rbma<}}5USV5bUtS4V<yLF{M5ut{7+8_Ji2^? z)g}UfLl?bguOwAGqyw#UX-}Q^&5$cs$qjN0*-U(G;vpSdD@6+G{WE?$kVP-BM_krE zExEro=vuLGhV`|Ht8M4r_Lg1a9fg#IhS<8)-fGRFi4AEI6p*Rbd4dMbsq;={ODQEr zS3NXMZOOE6-QxfD_RX?p)5wNqS`mz4<18A+(a?=qP6HV>HL$@y*xJUI_4NPa*rkWf z=(o)6!@mXue3ms#7d?hGoP9tN;YF!`!K2{nrEZC69S9R08F5>0su@9F=73^+&Yw22 zLa&`#EDDmC0^FSvzX_6pG-039ES)BW)vG?&`$wRAYTXsS)PF&r-J<&n_~OY~s_|jt zY=yA2+&Z8(juydUn0IB+@#*Ph@WF|4*F+MvMedp!5!DTdw7vob6<u7#FS4#;^>qH9 z(VRbv6=|K{;RT}pcp65Elf~z}$oEeL{)A1Tdeke?IkQ41M61UqPd|OTYVXvN=$ucR zX@KOWm6294DDXxZjOf3#Ko7M$?w2eIP**dmOD~n8znGR<W?f~iC!I^Q!^c=^0e9R^ zP;BcLuCG5VA%##lo>^zv4Q>`Vz~dTkp32KK-lmo}A3C*7LBmu{<uy_+DX=kCdmD@n zeD(I`;xs<#LX4ibgjO`GB^~UkTOsug4};YAff3u7lETz<<|>>h^Y;{s#5Sgm)wbSW zA4u$f=tm<Id7uLn$Q;~eG1)eYZC>oWeS<cOXZ;)gXh$^hitb#V!zj)au6f=Pb%gt+ zw8nXhV)O@aseW>RiqT)(;{t@AB&1WyEHQuc7O4PCDDP^~-T_QGBdtGRq`Zm8WwAEq zs>2*}F#F|lvN1ieW~_71@m+ewLYTi0qT$~lbf-ij+I~xcwcgk>UJ^Tg&k{;!kflV# zi|QH1RiW>|lk{J(HgL^{mS$p&3ObE~LTxnev3T5E<R5gIE-s5GL$o_3<<ok9HzKJl zvq8en+l#z>ku<LB<K79IQU9s+vRMKyb(?ll8{K=vR3j+w?%&D{i%MyBBG7&Ks~EAk z*OunzKhhX^m8B9JG~2hm+zg(UaZ;ADy5TNmWwH1+b55f|r%U`omRfG7T;U(X;Bi+U zhln^G5|yn#>5$ClH+wlS-o!gy9s1$;Ly<OTwM^5P_E55k^Mg;s*5`+o3+kPplF6X6 zw@?TW_$jeTke5IWQtG>aot~iUaX1TNZLZ{q!O4bI?HoWdQrZ<Fw^YNOI4YESF38WJ z$^4u!{d_iN`#FIn{-X_aFsPiZ-u1^&HZqmMVPJ;_vO(&N+5S$Bm?BhjD4qC(6ph-o z+B*5Vuo6t!rmK^upvh@hCmqKOG7hUmt3j__YsB6#abLmPi4D>^Din)WqO+~0Db1I2 z?v*k?ypEFDM2GMAPkO;IqQs%N&e+OW9->O0S?zE@`EFu}=n(%NS9T%8u@YmpNWki? zOk1Pch*e;HNot<<WOu*2=xMf@Z=Zx*;qH(xw5{lYXNmus;$IHW1#W+Sj`#tJf0%go zsWl`_tn}YGQDduBBYJSNV6Lv~T(YNKvb9;sn*N!Z3($%!Rk1e$Or4#R{>tq1e@#si zkdwr3*16x^I^0!;bTOG(p@jeBH4Y}dRuP9itw6^s1sh#{De3Mz4!<mg07H4Mdv75x zEvN-SDqHlnVO54d3B;wyjw(eid4_RCCj+mi<(Qwpe=Xmk`T4oG@@?kl7j*JvL&5Z# zJ&U+AKW~6qZ?3W#JTyPQKrxW=zTs1s=^2L0#C=RW;XZM(V@*rl$S#y6;O*x>=66f< zL~-wrY@f*WA9LF2tis?~h53((BOGxrF2);Z8~$Sss?7BtbH9c;IlN0-o7}bV@bXjm zJ^aV$g}xbJO#6@7KvU!$MG4oE@W{86@QM<bkPTgcZjfo;S5#=>u`db!`%(u#J<EU0 zp9Q#KBmiaENZKp@pr|bWF|^AXB!4Tw&v`=Vux<Y_KSWWFWSw8=KW5(-EkW9U%uhLe zW&4l$vv2Th|1rN`9YIs5YNpzNp@rf5ylzR%f6S!@+m`<riK{e1jN5@1TB<MfAM>9E z?&m*d7LlqE9fq|3nBy$rf5Csu1;5u&wHQW*{$uXcA`1M+*u^;hHBee@S)IP4MfTeY z#)8FgBg@!|M?Hi~m>2)hyOsZ#cl`>h;aPvZG$h+TYD5n7uHQ-?@{;L%zIv8~<puXa z(?gCh9^4BBYKFSnkt{P%H`MO(-Aim!{PY>ODF)&)sdYHA385eDT8hv-XCn*)dPBPv zyM<3Ka$!3K^3u;`%>?5BB(gkj@K|}HiL`yLp`Z{RP<8T&hY1k_TjDd}wiFlAgM|jE z=#E_6Zn2bR>)gdlh9uU4v2ommzx*mmR7y!}ECF{Z+C0(YSha*-{|Fw|!xJ3py6+f( z^cXanwv^p(iKWi%zFjBTjONfgYb+huibiEzWIS+t`l(pz2*(#0m)E$@*ueXatc_gr z1myjZ<BJ3DJC|zO-{PWI-gn;hSK*aOzZ1A^0NHSL;vPZ|zS_mFA|>&xvR-DeG{2O- z_8pBMp4+mh-?a8*Y=^#&pWCB5e1G?q{qs~={m=UA{$}+Yz%1EL;xXJp>MB=%KVLn+ zqy;u^`06qFN$8&^ww7$(Z;U^wnA4eu4H}-?|By?R=NrFe7e>$a)r0w3MWrWZ-m7Sw z9%q~yufm2KE{Fnnd-w-2>v)RI7VEx467gig+BiZNSj!Rd#18Sqkww|QRUH3SnCO?j z$h{JB$tmxr0eo1(i*=Xg761!gILN_Qyi^d+r@EZ%+{YX_q-EphV+xu$R?Ja%yP8Y* zSL`Gsk~guIJ4QsNXCZzXT2*GcT#;KQmU2&2<DEDn>Y@9vfs3HSrB|@K43QofTm-Eg z8!Df~2Cd`;oGy_&2X%7+gap55hqT;X_d&J!-SPZqY7*EB0IQ?k#L`5`s7{78yzgvz zv-E+yeY8yMTDjIcZKikjNRH%es81q;_J)<UK;|dbN9EA399I6_zJ*uP35D~r!d|s| zjn_EMUg9;L>R#cEuvd7-FO&wiVS(HZ-f#?sS;>iat?d3KV?IJv87A<mJ9<)F*9wlF zMziyOY0H$dGOX!KQ__dP;7=uY$k`J<tv!5i8h937=bsoI#Hh)Tg{(q&Ituz9A3O+- zIWqquCYe{<nsuJU!4B=?AsXJ$v>!e41;ZFianDf0Ll@K6P1O6gVvMh9_o_;m{kQc- zFK_k;y=T`e{UMuV!ool6q=9)AXO~=rAalY9|3`#$6RU!QSG7HNnq;Ww*0lW9sSlKf z+k|(%=Gor|qU4P~l$xe;JGquVRI?5TcdTTP`xbT+MwMNYq-kGD1u<`-OSOSiE510D z=Tbe?cu_}ZIu(jvqpPW_0xv=o&A5C?8LlGO$H7@8^lObQOP|gl>yP{Y^6*on!yKMf z@_ueKBYR!XgIUy2<DSJ2mZt|rDpF^#g+GmzT<!pUSv`(nWn<x5D)7c>oKF0Laq=cr zD&<6EFxwm<Z_=0$9*#|<brHp8^$r978lR>K-Yza}JaLcu<T}ZSfjDn9?!cwoxB|>Z zSL=eYaj=3#P?DhqWg-4(twc|T%+UXB4RyLP=|N6rHKV5)`b1M`$y2GH+qPAim&PCW zVi|3+c;a#YH65EO{-8!S{*sT8`Z!(8%c0&b%pFRN?-}ddx9G}n2u1IY9^v0OS&YrQ z{&o88s+tKnT<M~Z@#Lg2Svd(-W(9lhjd#scW%}#+wbFOZ3#UJIHf@e({5Q0`Ss!=G z93pR0<m@DucP1~AA4PAIM`r#v=!eV?&kf5E;p>~^#OEC!;(@vEijhnJ=TdPc9q*-M z^c18Lv`j^zuqE&gqxCUFOa%Io{FHNJ#7}9=n@|wLaoH71D2MwKD+86WSpIwKKXIiy znwCPWL)BhY0fi=3getcK#h>xW&J=KV*bNH2zBiiaL`e~i+)k;)i`|K?-z)~ElDacG zYo<q4j^-NtQ=*#;`Q4*7IOQtWoVfP~(JGpVCh<d!j8WAPA>t3?$ph!Dm%Qn)-R)=W zCH(X)6b)l7#K#sEA{dyrgdkHnwyyxE+mn**eH<=fM=*hXZk&DlQDvPv>^JfJhx=X* z>37VVT7u{((snzUb#L6Vx;`USS=COy+q&g=I-vI&Q1;y8Vc()12P2w5(p92@k#I{Q zu&=eRcsxJRdzpV4z@Yop3y~2|AUJkZvo$gvi9Oo$H|S}ycs}JzR~!JKWbv^IFUo|^ zS9o3~Jf3hM-m1)tEO>)lqdvk);tHe$waEkj1ehb`-}qtJ8u@Yby=sJOF!~N$J(*#m zf=y;EQM6pmEXQ9#Z=VSI`d}tp7i{l{w7vip+Is&O?$VfT1mS=7KGO5AVE=f2_SZ*! zWc*jo{&Dc6VE>4=JQCca*-o-6@%?s^l<bXBK1kW~d=?Ge=K6|jTM5@y4Fq%zcN976 z%G>p;uPR)OXkjrxqrLI}Zbh*&JDHHImC5})1bG_^>B|=meob;J+-ezBWod)vE+g8| z-M<Z$U(kk}m8<Q=E!%%vdu9>Sjp|Wv<#)5>bDL4)U0s&FoPQoJ=M%xpWsll&uCt%9 z_wkcn&NabuzQ$S;Eaww)mU9iuWT(fnmUDW2vT?GWF)HlVv%ih?{L&*^uje0g_K9}v z<koYg8WpVP$=1N)bNPwhms!tEzh*rjwe9u1jPkSB^Ti5ht>?ceoVA|MCA_Wmyq<Fg z>-lNG4A{%|GxmCZGV56lMzU--+L*!LYCS);AXv}gT(~|23;Lhw1-)+;LpaQ(Nj(5m z{GM@&jxX$aC0Nh@*!Frp_1N@!el&YMk0<^M*YjJs>p9yVcFUXbkSD_SHEIa0^12ak zIfChV0kbaeaOR79cRM6IlRe|D#=4j{jXeW}r-#`|yfaIPtGEwL%A5T)H*Vv^zk(MJ z=KHt&fcBng{41QmHH5mx1^nx{5y}(uPNXo@AF5Ta=M_<=#EOOfamOjb*}mD%fM-{l z{`v=GgZw7e35Oih5%<oK(bFO@+)|qN?-)wwSf-4${>AF4qaI|k#UzM%)u1qUknKPs z3w}<WEU?<-*vbt;h{Fz~=rq3bs2sXJWIHO=Tjs*nhlMT0ckpwRR{*6)08>L>9euz5 zl3uK*{b$KVoD;1TUY(8w`+3K6EQqwdXw7TWwyLAS4n0Gee+#<#H~K!I(m%IeJd^8i zn=_s^*njzO4k8@He`vs77G6BFk@Di@NaAh3JBPOU9}Ls6Mb-o+mdk!?IJA+rYrwmd z{;~an1u&NMbbHT-pb?k5EkDxQ$l8lG{}L^QNbJpkV06-MZkF8s|DAwfB#WnzQ9M8y z<1$>sli>j>HCF4_W{oFAmzVTzJbBGk_=vVq(E`S{oPtPyhJHv_>YwF71*X%IEctV? z_+iTHxjVC8FH$&bf4@@UEP8O7!XZ6y{6Vr<iE1L%kEPC_cpLY*!L&qLry&p5ggEUT zP$4E<G`O3m5N%s)NSR7#A&2}6xTTDT5jXp5pq23FDAt2;#Q($5IAaicKuhXI`0WI{ zs)GelZ3`mx86{?IzwSIbI=xDt@=tshE}?1+<FtY<z@5$LYAFGQK`k1|fnK=vQR7co z6f-+2lZu=a_l_;<>yCLlvO|otNQschkhgr}B{~6aBA3PYEtGt3?32Vc4Y6a!XvF^- zAKs-<A6Q33>M2wd-MEa};PQ2+6KA!ae4)Qu|2moNbmwOZDLpZD=^=wcdr6^<+c|H} zr%kZ9oA{}9uU9|>u2kp5MH$R~UW^#@JM5N)k@f(14Mlzx<<I%Fp!A$wBCV$q7n!>U z|IYc;te@-@nY)fI&iPaZP$F$l^Np!#nC$5NgJ7|}vx;Q9@)C{R)MJK-P_&Xc@k})F zCXb95)JW?gM8u~)h|!L<Le44v%M-LnxnW}|M_RuNSodKU>YjL(4m>M)k744+j>2Lp z>bqPA3&wpqKj{9nDL9JvBpW*h0RNbGx4e8|skYp&zH-miR!@qUcMK+b#}`Ff&u1_4 zPAJe_e}fm%YcXDmHR@@O>|b`*dN+$sSBGTp>lO&e-fRm5WN#pWsMM%w@Yn;`cv<}K ztYO<*a2kw#u&#LX4c+@Ie7~c6mpo`|^Im?Sdm96~w>qGEYv%R#RagAj=-%(u3?~jb z*x1=fo6Hkt?SMP=?2=wDIs2dP&Kish@EaLj^k?U+7Di;#xxin`oKIzz#w|2`>nYH_ zEIJ5e>VxftuJ5VE+^cO}L~2)>8}t*D88K;>#*yc)(bp~@&vzMhA<}ntY5H6AfuFPp zNnUEs%ezNWsr9T+?Q<cd2=qzaYmuZuHgpfyIz3(K{>74Ie^q?V)YY-Xs~POMz9xe` zP5YVCy#75+EuopC-b#I#O<!_x?3CCS;20Ab;#g{tNJ>bbu#=9ZL3}awg@_hu9Ziop z%pT{RFeI9IMwZ^Z3wfS612-wK$fg{F%7JiwB+2UeE%#Snf(`_x*&p;DrYET%P@vJt za9lKEsp~mz2jk4MaCYtcR~oh*v<hx7v)72i2U`pq4hZ*>+hPuJTMS!{wwJw`(;u#8 zPBYt!=yJ07=M<XmpBkz2Bl}Q*zRALF5`_Hbb}9jjooc}Y)Ek^13)|RfeyVoZ`7v2M zi#+TPkM!J3(bU7LyKwS#>{oI0OgrR$4%Gs>p(KI*I@&MtaA-%vO8t>nx;v@IgH zeCXdd9&N-#7qIx$kMMk5oBvUC#haYuS8G_O#6Nx}y8g39jWsR+XJEVbB%a?VvhE*P zeRVoe_WH;ELKyR&o+xALIc6b!Vs6&|4xyU-x8wOQ$Wczy!{`T1r??r)w_lw3`Fc1% z^nKO}_~9okqEcgVq{6E+;h!mdM<#r@!q*33lUGJsk7W#I?>6cq_?Iks<pcCKBd@%T zP=BuUYvjWb;|TvUfYD&{tLX|hzn=<IGkd-9lV&?L5eG&6k^}y&e{O91{zki@cRqHT zalZ5vhS7}+yh(`VT{99`NB*wb^K`4!w{QgiLW4T_;iX0?;F#B<M})}SBCU6c<}Mte z0=;4U+t=-YY`ZnyLZwFd^?lw3a9!h-QwE<K-iz$_oaJ6>WN-K&_D$j+(i4KTZVQRn zN6-rDTi=nFZjal_X{s8dZ9rn0y=hS`-yK7dMj7LJk(y${%B~jMEXd$_N<;D;y@mDq zg5T_;MHTl{5^CJ7<K@9b_C?x`BGL(Y69&rghK)liZj6yQ(zYXM;@<4iQJvn661>LA zczI`q-?*>Tg9x;0h+Gp!y_F@mBoE-q$mI{lynXawAj)?5DHj)V?svt?$X%NT@z2VN zmg%aebv6y}Xl%~QYu(WF<379b^IB#A>aqkt#o-L?IEN$-oVZ=!iW_J0Z{ycGq<CrV zxzKvmO@@TQLUzQ7NbTXUtz)F!q;bWQC9lHDYrI))ZCVsmWW^Yu=kkDlCEoC_8Lz@M zK&g$a21gg%7@&~lojoObUmp9VzuQ||`da+_md%4AbM@{UwWWIv(EVlxP~ZR$7~or3 zfWZdvpXk}r*CAk7(!Xdd3VNok|4FnD4veP&4Sp?IGwBK<b9+dK+mF;YZNY*^0s6}F z3+CLl0EF=3Lcp;p1VOKp_=zTm?STDmz@B#;;ei3hceMze^q0Cdv(GsUN?m9%&__2r zsf(;u3oj){h#Sf+d<t+Q^`hI7jD8P)2wEKT$}UdP6=_p+5cY;#Y*y-#-wpq>!N**j zl5Kjzi!FS>#i{FDc(O~cPVbj4*IPJ-R_||}7ttPLTTvyeS@E%bH|+bcqK88A4KJoe z${*J{PE8PX&(NTp_eEwu-UQ>dD3S?FYEV{0KEB4RRY&IE%!?WrH?7Hd!UWgG9DcKi zaB`kTl}+%^_h~zl_H1&Vh>E_^7~=FjgiwHQ-XSepcy05Ruwhfp)B>JWZ|vJ>_e162 zT4_z<MQ_6HaXpIQB>AnLeS>_p6*EhlcCU!<-n1(ZXv*UQr<bt*NIhqJS(_i(_(Gjt zfnN@0)p@5N+((1Cx7w>3<}{}Nib%Kih`Y<xkk&`(ptOh^yz#nIJd}1GM?t4}^VZTV z7G{aNKw8vI&=QiW5+3e2E3EH?dY95bmfUWVa*~h9P9Bs|#gzmX3t=t8tu%KF^>6Zq zc_M9N3czS@XO&JnY7^EaNzXNF@qyT~Oss0zQW$9+%t+KAez%92%Q1_XXBw}4i<YTV z$q7Zv?VMoX4hqfdThz|KmI&~Wtc-n&n#p5{(9KTxltD^rY24GB*T|4kO#&kpPw;fO zb498Ik^hLuT@Upw66aT&_|(Zyf`=QQg38{nMJA!?!;MJxExMJ2UGo&FznJ$25kp<& z4R@3)NT67kV3FvgHo&&QY(_QS?=~qs>Z9NaAkz9Q;XrN}X_Gx4?f?#0E-r2FefU8z zc4miu#t!5s6d_`9ft1bPgF}ja5O8jXXtPW78s`?7`zr9XfZ+RNg@cRC`@5B2{Dcb5 zaB<DnR9=eh>>iO#*a=%yT!+70vf{N7gP!8~*w8_bnIG$yieiHvtGIg>#WWtN)yn@o zDSPJ?IV$~2r){&HT#@bf49;KI^Z(2I-}!!I^0WL;c=8JVf28k(nF%W+-tvG}Dv$nb zYwcSklI6{-B`z^fkdC}c=KF-{>Gv+vAP%W%kexLD7pN}UGV;$d<skfEi!kvv%PD;t zQpuf?P|xAbzzIbT!Qw4j21Mr0W9%?M!&#aS5KL&3uJb)q5>xMmbQaW^z&K4P(XbGx zVz3_Lwf#mLtTl=5*q}8lHWm$9Q*pO2F4B4<IUR;2EGAv<Z&j|GXE^?r6_Gr9NQL#D zH&6E4WupL2(;9ocT%ym!d;Z+>-0P;J$=(li<4@rF=4s1t`2uu4K(!rUwKY=+7{${y z3gu}@Sm>yr&|U_)A83*lTGGGJr=eD<r$w;S{z765do>iU?JBB|VbrH(b*_VjfKD3c z5H2V!68)u~S6Mb5j^@~%c82Dp{z5Mt9KN~t&Yknxb>4_}v_M1{7Y-ix8gX~>tcJU^ za*D6wCwf1#5S%p@&*H3c8#QUY2lrLI@!-BH2cN#_tZTGwq}qP8EAGt`ff8|<Sd(}* zx(wbhFN=J2r%9L5BL{b+3(5qhIZ`G}OPxyb;rTEq*U;3;W$SX~_H~bXC{<=jZQm{) zN&i!yf$B!LlEt6gL0Efu5Z+U8nN$hF?+E@#5RNR+HLu;PCGItHa~H`WH$SwWvAgqQ z`8Z#=@ijR-R;0HjhaY!tS`Kd%&WRuP3d9e>L|7i5o@hI6liEhuUpFx+8G^8R=R8xc zjg?JxubzF_Z(C-S3~2hgHdN%=Y^W`32C#K#LuCu;ZW+B@<3HTerIP+j_i(PoQip@2 z8T<^|;pB*^*&v0(C%m2Mj3en0kD6j-GyFZjIY_7S>6|=gRLqmvu*L(?Z0_X$H@fD9 zYaz4L(06_iMQ=-)S^y=gSR_`bX<cd#f#BR$Oog-e81+$_e&w9s`YO`*3y*<t=$yPo zO#d_74WKStNY4wJpMLyNLuB7ZIjO#|tTN_Z?F?W~bw0^uX=$yd08<5<_|4;0$kq1# zTLub68=>NNloc@wd^oF~wTX3giLTn@QD{lMZ?AKQKp~Gx7Tl=<;+W+W$wp83sN^tA zrvw$Qc$q1Zkm8+@TX^IcIK2&<BWd05v|ht@)OlyktV{f&B+~jib?Z7}fw*A6LL9s^ zskL=F^jyNCk<S=K)Fx+v06~`$FVrS_>Jp#Rvb$>%4Bfr1tF)rj&2P1LI3fXzO_H?+ zFLlU+he4iD5QyCJATJZ2z$0t^rufti^gS=0{|Ot_8Yz2JYj3MW4P<hc1%3Z0^g|Ii zI5SmsQ$MO5c!xcv2VAlp>8c7W;U<NpKQg(>v_`5wsKqf}X{7BJpnx7qYo5xPCn#i& z=`5tZtZ(b@w;1eT7zW^*O8EJ2dVg;J-d9KNK0M*`P9?kd1Jrvuy@vmv`pO;u!H)(C zGpY){p!buv3p!33b$K$q*9e9kmx@cunGUOT(=5qae5$htZ}Um-o?(I{EGpF&R9>5p zjp4@m%rsZ|Z{u2(1`M?8ecqx3b2+Ro|J881#%sE&P!#M5XKcLhUpd7ZzCBUn3MBU_ zRlCM-BI$Td(72*_zRm9V59%tmG+muKnRW%^j^z1ST69!$NPzM*Dix<E!9K<t?eF}X zbx`WRe&818Ht~-Tgm6LVaw1#;;aat2(54O8mVw-}YZyx7AiE94jQK?lpEVBJ@$@D~ z<G^#HA+`Ch**MU*H*<zTo%Jt06&Y2<=S>f$W*f0>CD)fB6l>{lIfu+yOYIoUYC<q< z2$i0K2lH7{{|=#SYBDQ{dC8+iUw}(lD~Wl^T}k6XC}g9NwwXdGw~>d-BtO#jNWWfT z+ktzK$X(k@DI_ymYVwfCE!`}E)hzpX{&Ni302@CchX(LS94@2R`5uuDJvRAur)Utj zG~Jr2V3On{OSDMSb4>C8?!-9r?26bttVfhaGlOmYkj6ZdrZFma4f<tPS1>R(Q~t>V z^XizX+fz@l-G>CAsYy2SLee)Od0`WqC|a#|S7Vnk-7{7;tNVYWXJ=EX(Bo!fN8E$g z6R3VdatH_x4yJwq+NAv{RVBv^LUk3rF8E)}acPfWABeAb9oqki|KWaMJi>nw`{f#; zscYg1uI4_PJtdwzG7{exz2eQ^IOj(#TUcP1lOXXf173V4EXt_P^{F_@zL7N#aX*Fi zgMpET6=>ZJFn^jAYn$H0+t$V{EwAM_4tqZ`yZF20;kRIwlI>iu(j-qPcjBIi@uAeh z5u~V1iYh$aE?kO#rrYY8md>L0BMobrfulBC^yV=5S-j$trYC#u#EJFqoPy^~X@14o zFKSuctev)0JMG9=WM8BS{L9N${^fl;|H^qm;_<qvFV!Zx+y?n7-Lw;}|1>uxyc)F8 zd4))tUwHQIG%_)@gzt#8YL^v}@^>RU7s>r$WWfR@i!nqKNXJdaJ!}RRQFtT~8U99T zj(f2{KfAy9es!c_z5aPN8Y#z$TKT&7BPVt9|6`HzmHtq)79!=F{hH(TyD3uM<=;FR zN(trGlAElPT*LeNXC-5F=nMQ4djWJ_l^?J8XVVpK4=dFk#t4+#2$b6hl-mfDYXn-} zY<8DNtK2v~(w|=mZdSb`i=5J+)Iu*QTSDiYdT4FpF@zCSY3=NTO*<PaUu#S~+w6lq z6>4Wk2d#lVeH2CCtEbA*$-Vn1Dw<f+bO^U>2j3<{82ij^c;@Z6N3=Luc*tKg?uhk! z{V7v>QSonlh5N>){6}E1LO<31G>m|tDw?JHYKn^!vlSN?>Ov6#M<*4Udeq|R$6FFB z`z&6T+)!VnjBV&IRy+O0>LRf#F|Q8&#cIy_ODL}z@z0^!3tE5BuXIG_bW1k<qWNpE z;|C|>s*-tWwE@cd%OM!{tI7X(&P7GeBHkAIY}$`B1RYwhx<D<;C_h#+6tE;Ynp@Uj zl%Hr^md<7M)_RZC+fvxFUU=0*Xl`N+jm=-PehZ}VBd%j=^S7iMwzp2;QXv1rhS>=I z|J|@^szenSEtMsVSoY+py|OfzzY?ucH?_gA>SF1am~TX{K0So8M~Lax{EtH|(rVC` zfedv?UAqa5G>uZHOUkG)tXt{59ltI0Q5!}bLDf!l1moV7o0!W`ll06`^{jyt+}J<q zAa~e?8}u{wNJ639sBv5%EV_YG(wd|v<*1$=&55~dDOp1Sky}S;JyJa$b$X=zxz=VN z)L8r@DkhWTFTfhz2j2Nt-3Pu!lUZ_|Y8hLK^huw!Ru+HEPqsekhtoNuSF^uwL!Wds zX|wfB1}L1RZ?d1lp}q<2`S_2Vd!<if=cNpir9PJoV8IS7EIS7erH!cLj3+zNw`2KX z_=fS5IR~o)P9JUC`la8a*@1p(;AX(hlRFQOblRo0!5K8@FDKohslV8<JjVEC>!Ss# zr%404@yuGiW|7{#UwCTU`f9iApFU6K=$|ekzW=GR+$s@n<>;$9ee{tse;D%`piXf# zg(^`kpE*KS)G*uU#mk`H&Yaq)v^lkJeHC+Rh3xO!w5RqIk4icEJ5Od=w*gz(FPIO? zX(OH)?jskle>@dWJnG-hJJ2k8ZSJyK#}%;3k1m?i>-1D2OnqdY>^&>yJG(TF;1_j- zNb84`t8Ww%+WrGLOZPabBJf-PQnUR|Z{T-%Jqb-=-oJET7^uW*+tk0mBlV0MVu~yK zQ762<S>N~`_Y-woHsf8%<Rr-Ji$r}?MHFRl*rm4TNG~5<*rPdY&+D~0J<p!Co4%3< zetvCcHAh-sr1B_YV06Sj4p#O})WG>D5Cb2L-du9N>4_(YkG>8ua4%xu(bA?%7LH|I z)Jz>VzcznmMqfO;qtdM)Y#mL>rY`)Hv#r_~Kj%AhdYv~Tzjwp-dF?vS&SbHDMkQaM z^|8l~d;8kw^qM;(ra(F)O)FJjplx3-RUp-;U-PU$eR17?;J3>?N?5p&9tUGr?OlL^ zAyNV1K(%)^3WkUsXN052_U%UQAcl;QTXjul<QhX2+$&74Fcpl}CZrN+q4^GEGokr& z#L}_7n1BpTOv^j1ebJUJwBrh@u1!pv>5VJ#Cg`%J0Y#=ZvmZTC7Rp-dkr5&-@ASsO zxb6p>G*jTOhGNc3@e-DEI<0q6MI0hXFoc-n^ik3>yEK2d&cghCnDj&!F*Drdr&tm6 z!6w#Mhi}Jv-3u>;?d@0)p40bXD^jd|qRS4R1L_VahwTnPLDaykDAg+i8hAm$s5znO z%nfid!3n6Hx=gPOBBYrz1wd)v!gi2Z<t_zO>)oe)DvAb`jskJUl5gR8>&r#<ZR&a> z6@QP4Vy1q|js@<oUm}&Lm(k5)9@F~?_HU3!R%;`X`=P={Qn8IxFk5l2;2Av=DK!?A zwv_ufpVr$KtvJ>6qMTr|%G$9V>_*JH0F>cEzLjYS$S#YwX;{jq^l<;mp~tDmfVln8 zn=nSRdyC|;0qWnTrffsoX<r(VZokcaN#SqkBP|SPKUEmge{WI|_#<rj8!I`neno2c zmR`<C*AsG<axrC_v5OrWM8LgGTsa79e;asuqQj<UB0hD}u-d7en7gmxoXex9qNuF7 zOH=F2L5#O^M;2-QkqekNzd^)mfi{)LlF@vaAhQ$C;~8$wI(Y~K=Yq-M^_zL~$YU5p zW-A@>ySz-qFIG0f$RC=rB7XtZYukZAN>$mQiptrHn`5j6?K_Aza(Fzj5n^Oi4`$(j zKj^y=*UHJm*8N@-a0@6<mv{&HkL0D%j$TmAq(DM}pOb{SM?i#pE%VmnZ&Tb}{AfTg zY^BE05Sl_83=959yF#k_1Wm5V$f#Qr!0HnJ?AbAp^Kh%|gPwuh_za*952^!w{MG?5 z6VV3(6u!Zz^<g{GvdDsu>7+y9m=I0v|J2&A#^3Qf8lN2gQ@V^^ADZsqFX#6_ukY<s zrO$jp27hC081So&2g3Q8Ms?c-G&~D?ckJ0IkfUemwaaD)Gb6q3tM|g@5_aq^<Jb71 z`=IL%g=1f)??)RGR|oekOwogo`CuB7g_{7FE)8VzAo{~`O7h=Q|6rP*s*{0;482Sa z{}suz^oNI^pm0WiczA=t8Gdf~o(hNj9LM8xO0Y#(IW02tsaK~(W^dyE4RvjAHSLrt zVkqjo|12RCY5i2>rJ_2o>8)tR@dZt<r&_rTF#YTmS8dIoehB>trX^WeN`)bR+HLbw ztTtxfAsv4TJ^L#?qsz-FFRMSrS1O$8Pw{CAXZln86NSV61p02n=M#y(+morQ93N)! z$ZTsOvA?HIu)Vig$mO;gnHtad<&=I@;Fq&lpH3U|+u)e<&Dr`bKKJhHd!VlxrL;rG ziq%0S$X+rJ5UCi(%YvpsQM3+6xAisd?M)iy9bMwz7Lg@AXip`(q_Hm%K18}-)Rq|D zWxtia%f1T%QFxc#`l*pv_gJO%Y9NsX;zq=2A2^S_7#2H5pIPGmZ?y!*{)HdYuV8)L zN;lkn6I9-<ZKLbqJFcfrO7q#7`=&_i!Bi96IeiCu87zz7U5oMAJF6j1pFC@Qq&{Nt zy7gSc1(16X8D)2qW+tbnjT(3z_-vb%`}!H~fpc$lVpF)+Zpztfzw#d2fM#d7k6Mk= zie9E;BGi`%cVbMe;Io`&<b@|pHV;mf>0@f<rJ?P=^0K%CNYb9$A9>>m`XfN_)N`x; zU6|Fs&0+s?d5N#wzbTAceLn_5tww1Y`w?N!GolRmhz7(Nw)G%jizXh7u6PR>$AbWl zi?071bRCTnmSZzaWbl=EpRe5B<6L{g;WoyH`c!SdHk<ahYlnurO*q7PW<%-%C{4&e zhz(61IBpT-qi>OR5UroXNgD9$_Y%c2cM7-PPII4^kU>hfrO=oA7PCIW(>URLU}=7W zcIkY57&}eC79|U(kRYUArOKQvUZe)xFH-L)^W~GFUq4eYS^V@Bx%BG|g|q0_T7|Rd z*QE;gqhG~J1pRt6e9yu1{;`^oJn&Te8T%&^Ae9)yPbiK+%O46FZ5~sWR~w1F8jOgE zi^EqgBhw>tJ{dJ4-=M`0TuE8sh`4o2Z0ho~K7i<lTplM2cNhJZtbx5YZcQlm_{o0j zmS|usqyuf|d>kB6PBuNiTj8wnSf+5+cwDS-?s!17M7PhfLYtZ5Jh^W$mnq_<V#!Jv zEBGncsnks$W$%yLn>YW*z~Df&ZN2m&CNIRV#0tOn%-%ll=wU1&kfFhUgP=|m{QnRq zig9{pDL!+*$KH>evLc9Gn|tigf#j4Gsf*s%AXs~&5<Ip&-*ncT*=F!D(z+*ODw;S< znhvSYnK_M@BxndIH#AL4C#(w-atKDz*%GD&nN0_!(@Dd}3WUYaOWowsSp)~Eyc7mV zSWgyayU9!O7AXv~kL0B;AZ!nOxF%oowQUGAxOFFgz;AZ&Y-e^E>FW}9Z(ie#%e)Jk zNA_wxluOkm-ml@_-6`YEB-*LO1;Ub=!0bcn3`%o&$A0G?vt7wF&i>{oUI91LI^*-= zp&f~DQBX!Nd$(;g_J`ySRcBhKtEk;oRAp{CFYcCI&U!-qr8ozY)%LfJ5j4WTe}vfb z2aPFjeMfD63Tjbb6rQHp4q!+tYq*-JO`K7gnnIdj!2X5q%NO<Mgs>gamPh+i=d;hG z>5<JBdoQ{?jDKb<%gD0rv3!V!Lm0&#;pdY?7CJS2HC^M?fxOf%l)^s2tF+5_Rd)&u zB`nD@IO@EXXOOvqj;UXSN#aU!M34mbFO%dL;ew4zwmpi(<B9ct5AQ&+ZM4S!Tc>?= z`RCaOj|KdQi+a#s6GT1e@4jLS?MbXij-w%iBJ<j)2GY_7MT*WD(=3hQ#>SR+@>}`_ zojZe=WfpT<6qOP(6r77xr?}iDo@1c#EpO$wd_L&h?~{0`#T*tTDyq2stHQWFl2OaP z8>uXxE<P$AK`DID%9i)?*>w`#$jj{7E3iqyQJ=rSo(i`p8yfd=XSI&cituNN(qgGu z_c1#tY5p8%!ixiV(?<UrpBJ%V&Hh@;g3Xjwu#NOBHwf}+8j|x~9kF5PM&f$&(Tbfc z^JWnDmPsst=G^0RKB>K!F&iKE#-pCh=J*`tVF9xo8k%saWofxxvFMvD;TL5;CmJ;K z8_`oRSChs+9<yWEdPEG8e?ScM;2b+Mzi#T=nC+L|fInsz?wnyI$|c%3fC?Lrk0s76 zL9OZN<cxBRI*cFTFP)s7hQ&d9T;tlNLeViWz-j21OLxxe5FyHKOX?m(z$Ui}a*QHJ z&m-yfxy(C#LFTuAlH)Cfa{Aqu#Sv{r6Hj&wr($Sv89(f*$CZ_Z{0hGZDAGUsB_0R? zDeoAn;ORl|fR3FMJYGR;7@quxB7{k+mkz)e>xE@y1&xFGDaTIm?ofHO)KpLOesPWd zwJ#JQGvdn?xKKd>T!F0wQ3{~UIkMIG_m+nT_)B(hW_qf5`LKL5SsniUbeJB}xZBU_ zodGqcK}Q=1?Jn?OPe5$ovfnH@{9R&QQt^a6Z<Cd|jrymH6seRzH%omB>vgM1ysKC- zpnhcNxS}xGrFUCFM_|@ZM(zNO5U7(9zV))jbt=4;@Vxa<(V^qYgREm0J?F~nCZo*x z{RB=5_~;P+t$#T<E*55BX{>M_2J3)N3E@vKcW}^j#wy^iJGhzWqX%Ob`3~*_r~QRL z!Dnw|=-g&TH!PwN^I-a3OOgjk@<c~ppX~G<cX<hx{^n|Vgh>aHTi;=8dl6QUw79~O z-n@yV<XDoG<0mUzj<EfQGgRalzAHJp=4yfKk4(4nW7X)NjkNshT<cn=yuz=Mm`q=P z?=rP$fpoXX(V5Pnt|jJH5>2YT|6!@-b_13XMoawrQv10<7pZ>LtHMxpT$~cYo6vJ1 z>}N!S9rK?cj9C1i3s4x~u~)C(^0d-dp~w&Jyax6H^??fZ69+SM#;tES*mD7Ff`hqN zq;EUeV*%`72b*GL$`%b}t_ff}JJ@uCorB~7*xv%!$4^;XW*Y2#2fHqSJ?~(%3^v=r zE)8H07_6n4K{4<}4*bgiyu^X$hu~%h{%HW7<G?}%%RR?|CkNou9Qeu*e6a&h2*6bi zyd(s-IPmBIT;{+_LvX7D?-hUx9a#8bb+<Y2ZUOkUCp93>P@v{#t^;o$fV&*HGt52D zfj>;T>09c+YeVpS2YxXCCmdL)WOXMT_=y1gGY5Vq1pmr`?+L&Y9C%|0_8j;x0r&t1 z_CxR`4tzxbE_UEeAvo#4Edls#(3E~_1zFP;IPfn5@ZTL+OU1yycHkcc;9DJ78kq)e zci^J~@NXPgYsbL9ao{5Y@Gl&AL<qjrf%gx<6CGGf&T=nw;N1f7p$=Rgf-jR0GdXrZ z03PnZTB(-%atD6*5;tQXJ#PJ$_{6|hIPePr_-O|gEimvR2YxgFFLPiKbOT@M!1n~; z#SUB_f)_jRp9Apu4%`ref9t@P2H+DNcuEMq%7K3wfX6uS^bmZt15XdYUw7b{A^3L= zJShNg*<k&i6@q{7z_9@Qq60UF;6FI<;Q_eQf#-+dB@Vo20KUe7+e7d*4qOs|FLvN7 zL-4f@oF9OvI`EPZe4PWo=eZe+Iq=dDTvlZB{XziV+ktNl!FxOKx&XYL11}4~`#A8u z0r>UxHY}YX_*;Ovd6^$UM%a=6O^Kw61WOLToE&j9DH2`&o+zY2E85;*@kCo*MGsgj z9R9TT-J(3d^*!TEw+}eecoNxv2ck1_f8w9}jDSspKSBtNM&NX+aU%b=)A>XuG0mz; z`3K!KKq%HYsCo3rNULNq9Ro7W3AUcaMAs%y=beE)mCy+trQf{e2PvMwVi^RXkj6DG z{Okz>B{!XYI%ZJ+%6g$i9fxqnWp^6cw@|bI{<Acd;A2|5V~O^mOQ~`=#dgNvcfV4e zUVjhl4T@OyalUfh9AM+nx|xWcHSRp4J+Xn|rMvB2RU=<gJ;~x5D8i3gH2SNIc30JC z2H2XinS%i-brqOtjoX;X`FnCE=Eg|u=ezuEu!@e;3k!bc2hx*@wA~5-8EX;j8~x`L zG;UtV6DJG5%{QI-HRaVtsyqFvlY4pcevcC8HGbb~d4?(^RQ|Qpnl)Vedslo0tgH2k zJYponM!!FK>;MT11ISzl`SvJA_H6K4hSpEymxg`U25s(0iihja%V0m+ZLC7uk7%a7 z@x}aIB{k6PQfhE-k2`)2bL#FYJ7SqnJ@s|5Jh*iqXcB(?Iq-&uiYU@W%2)MGoEh!t zqrB)c{kvTMSh#QDd_LpSc)N)IVNP502AD>#F}!Qh%OEtGIXUE*kTE+S-e7+g*dPlQ zn+Azde%AN-<#N06Fk~%d#*+KPp+kfM=6-t@3V8co7NcXu{crRYA#v|nn7Mz+8Dw1s zZhMe*wI9w_q*V$iZpO@ugya$&6AoZ$J&VK$5ohY_SSqsfbyt;EvS#EB5Wv6hF`I+d z`EcaKo!CO$vyalf<iygB*u}!cA(lSzVBbQ`E`aimY5+k{k9vy#gt(>e$&Mo}dM(AL zMpK^E=igY3BP9&^CySqLMFg4X^gCj`eTlBr3`8N*+I=q#?+D<F9b8ft;Af=aiv#$1 z4t~0WPe{Yh3*eI-e5!-*pN3Bk;1v#jnu8Bc!z%*#ZVvt<2k#-|+P_->@2#@-PjT>d zX?QP#r~W<b;HNtHjcNF^0ldS(PjPTB4etoxiyi!A2R|bXUmU>CbMTWKd_o$2UI3r$ z;3qox{%QE+0AAtX5@|8MgVXSe0KS`pPj>JgLP7rnc<+(c{{{zNmxlLV9Q5D8PjK)X z)9_~lc!z^ea&RvV?+D<F9sGC)KO+ra9Kg?W@Z%hOLK=Qv0H5sO6CHg2G<<RZuW;~V z9ei*aUJ<}|bMPNHcn_hV{{g%=YW=Tw@O5c;@0_6j4t|V--<XC!8^Ajp{ImBQ{-@y` z0erE8Z+7rA((uIr{5%K$z`-Y^;pYYL$qv5B!S_$YCkOBf2ftr3H|9SLuL$6~Irx1J z-a{zpe*o{TwEo}g;Oo-x-sYhH4t|e=-<XC!8^Ajp{AdK2TK{QyM*v^!;B^juMjF02 zfS>2!wGKWZ4L>h{Pj>JL4!(aHJ~@C_IQUTxJ~$1p2;jRpc#VVi5DNMqz<a-M{f|5N zx-`7^qM-i{KHkA^Ov9fI;2jP=&cVGjyd!`wcJOKkKO+ra9Kg?W@R);7NW;$y;FBG^ z%E9+f!zTyu3I{*Z!3U?|6#;xV2ah^<522v{0lfEn*8fTeUzdjW&JOzT;NLembbkYQ z;~%%yZT35Z6(PfwVQ*5q6CLaq+GG;Ow4}yaY%?2*Hmti<&X_J^RlAi+%-2AYbhWG{ z$bY0-D88lR<uvn@dYNU2oUW^Cj7w1bu!{L`jrO?W$N8qRjez`@UDPu!%2(9iUDS&% zYLlYwbx|+5sLhJ{v!W6$c`yx*4J=9>NUK8r?_GawzWg2d?=mi_CxC>u+VvawTb6C! z#Ja>&wTMJ3O^Rn0yilRyc^~F^5l>g*ya^>TnV~LOKF1T!t2<AEqv140FQX|KHEEip z=rPOX=F7nd@pLji^&!7LZ=jfxF+6v`DNSNE&-(i&j;u|bj!Fxf42jL~ga3fYnb_37 zbfPByC4UFCz7t+3uuGe354@lJbM*3Z+TobyJ*Y0Or=U#JaO3NXzrhyb*Dzj++r!13 zq`1R^IK7K!UQSWm9zooC7dK6D#X;PCF779a>wVCb_h%RPGsO)jj&gp=H$p0ZI~SZ` z!KxzvqtymJ%Y{q)*Iam(3y<)ha^YqdF7?;A@Wn1%?%$OY9_ioU!k0MsX#WZqzRZOy z{kblDxeLerb6j|l3)lP8T=)tXZty4Nq@UuCQ`pQ-R!xtzb~42AmJ5pVBCU72Pb7M+ ze{r89`22(WEameu_gT(o!hMe9bGG{&&F9(fvy#v0?laEk$?mhB&tu(Z1E1sF=M+A* znrvnd(MR%v#(47fW-!oszv2it@Gl%Jl82?hC-I|wJ9||#xoO`55pC;4KzbD)96bEK zi6c5j30b%6n^?*j<!&;-R42w^$*oRKgPwzx6uMkX=^Z0UNjl6rSsEUt)D@BDt{{!< z<#>|{yd6zxZARHXeG`kMvA3gs`6sS_rZ4Ac&B-uTo#@4lm%rQ3Sr$8T`Or79l8WZ9 z02)ht5=F~P3#0*)U<FO<wD_j??aVoD_h<`t-CEWR!G>oEuYV$uwr{}y_I$_g1CzIF z1$f8UyRyEC<=!!$*}os~Z=9ED=tP-*3+IMgKOc}6`f$K%V3sMK%y|GL9>hrb!&V8& z8%wYdPVsrERmNaf3dsiu{=rJYn>MEYVgOF$UEERiaVp=DwwW_fS1(WLk_E?l$IWSs zd(r8M^}3wNRM#HbH|Nn<ax#<Jq2540vD%H==8(Qgy#D^o{{4V|;}xGay~<Gt>L5$= zsTV#Qke5x}+S~Dzw0+|aS^g`W6Nq@<lBINGT6=&00_G0_eRUi^RC^Pp!(Ly2BZv~` z1!7eCol&U2{^edELVw^}`F|J@`hN)e8#sUXA$scO*}!bajAM2;=i~Q51`ltfxz3zR zw>Pnj;jlp{2>n4g%jHCe4k28Gv&u551S_LoHA@`*QfGy}8~ZF@Ru48eM>0F6*A&cv zyK0MpfD=o(QM}vL-<`S;ByjWZnXRzYp-2r3U$g9ob-&1IRFu9vGhhAa`z$UDH!>1z zQ=!$#8cgFRo{SMwpRqdmA?=EJGtq^_n2xq4-g1YQB4tt~I%mt|<0pSRa@i`r<i|t4 zJM<m;@mLkP>v>+XNzXoV%gIIYsdYnYr}m&I`zU&nk=7qmWR0`D>z~()kVyNc(W4V7 z-3$acQvt|nCV%ibuXN`YS(EC9)C5*dc*KR($lXcq9nY&{-hV-FbWJC9_fdU(l}f>0 zimu$rANDgIn)G$od4JNysNP%^i6}`(6z#jLOov{U=PY*6{~+Pm0lH@{i_CkHc;a3| zdv>f{9+!;G2Sn7rq);2Feu{=mLFmxGN<nBbH}elLRj^1151@vhD^+s%9(wFT%2Jkl z8Q*@>VJJ?g>us8k)xyR}Vb4%?r&{S_K^@V6!@92ZkHIXZkkDcw_qWtdGH0=Hr!it< z-bJ!Ef&uLb-Z78rgDu$FMo6A11JSZ0gKne_H4MWFq(<a^z29I28yNGv)Deg$LVXzT zmqX+<Idaz;+_@yr{a@_83w)H-o&V23&_uBlYSdV<hBYEVZK1VYvSQ7nGcZ#VWEGKC zYu(0Dwu{zkP`s3aNziAfgS1s^*IsPb|NiXug4=E*RNE#&2^W=11i2_z(HSBNTDhs@ z_x^m(^UO>_v~Jh^{oCE;#pJo1^E}Tv-}61+`}v-3<voj2Q7IK`qVr#8lRpM~Zz6Ii zQIEIxK<55^{RvFCx{@G>4pwCOZEe|8B1@p&iGAx=?I+(d<1;ylr}~P@EBr<Ch$^zc z!~>c0|4QNq3kSDyBXhQ0A@vZ#doVMMtGdX`WE*VkicDXwh{4GO)LbEF)Q9kdTJmX| zFUU*N&bZX_8m_}{I**8-UeL&%$XMk3$MkGdu!w#ZeRuwSAa2{rxKv?+31&Ibaiz)l zVuDR1!c4Ry^O<PJ7WI{hb_P!cnP_Km>N3$DWwRC*vIzU+F+(2&SsE=5?f8#d(?kz! z7n8$s(e~VLl>A*<taDYurIxjoIx8|aZv-(?m-f>ZFDE5Bn(t!*=wBjrSAr&FN|uTB z%s8dj?g>$YpIZU}XWGk?lY=J}8hcUvl8R{4^Gt^59nXR^=USf8Pu=*DbA>w%pP(bN z|5?^NwWl}8Z~R!;FCIJo_=Y2Sh<v2WgQT^OY2yB7G;MT}=y%=_g>aJSFuvGf?f=ae z)5Pr0ELKYv$S@m?wa5JW;+TKyApe3Q<c8S?Eg$aPt%~6%F8}U!?Ju;_zhnrDl(1G- z>OF3y3}tTV4B`I@^k3#*SYZo7md<X|iV)T}MTmKr7;VyeqgqG0JYFMe_CsESY;@<3 zp#k0ZI$9FY7NwX56xUM3Z2SF>Bs9gcj=r1`z2j@VjQexA@94`3A$@7&77zYPhiH6N zKxWQj<)F84qexIdVeZ!}*$O;;%yLx~k;$AeO4KE6Nb^lh?bIbCQ?qS2S^Lneby|cK zS6I&Q(Tu8@1wjUNqlWh=->&6FAGJEpXvak>zejNlWn;4EKa+dAk<82k1tjwzG>|U+ zO80t_%!j$980?@gf5#dPV#4W5xH8ev%%xQ01wRP8L)Uh5E8~qU=+*Q)F~P>5E0Y@! zvNq^!`rvrwr6I4rln|5#Na%${7E7#1VoOmhg37&q!;wVohOV?$$Az%w?+xgEPwS3~ zav`;lN888by#y1FEhCmVzY;aK&%r&C&Uzu!j{!6EK%A4o_|*^b7c9zy`z9cBGxu^F zikzW>R!sMLg4^R(0k~g-(t8UB5>oSMA&0u0T0DQAfG*?#+P8Bn)A^A?X!`^pX{A`> zet@m%7a$Y)^=yjf@FmW)vjxAW@}Yb;UM7CFcQ<~?y<9h*6H2F#`<m|c?8YtJD(J=; z)(s_C@6nCBsm1eJ=Mi?}QEp`hy<<0;XAARwD_9tj((;U6bc+4OSo%KdV-3gLc#2y9 z(0m%f9wC*ob##|<1NqwR54OYB1~hES9wI4{<3HnzSs7HSwM>7{q$3?3>&Dw+K3Qe! z$CuUBv#Hrqq@v|bt<#H|RyPdy6v%49*-K&w%b8PbYn>%A)=BSQb&#b;Zdni>yk(9y z-ikbf=Syi4qs>>-7!<3_@q3Wttyg{UyDC7E<9DGPaG_g=@o^oZu~pe`Shs4R5?W`Z zeXxxNe2IR6A&aS&9m+ZU>XJ%p2)KGAcXNn9hCm3%yVH$_S@n^_fNz;O;ka9MuO|k~ z;8p<!RKZrfg<B4z8{ecFC@@7`2rzj8w=yMX7GiQwx}kLRPAd@IFty;nh;C@}aY#lD zb4M!=l;3<bYuZInM{3OhWzZWiGSbExws#>HIa1wy&jRWP)FYm<{VSZBou79NECJ~~ z@BW5+IjD<p0<?j;*Awdfxm5slF(Pl_%Rv3nLh><$T0Fl;hXCjoaGtq)L?O_7kPrE) z{@>8*_YLMbAYTb_BUyx|cOJ-5R@M{%Ioh<sX324@SR0T7^yLn{zo&aW0sUQW6#)9v zP-1W4-rj)zl`S+l?mJq{699Sxw=!o`^#FAC627gtMt><-g{eb}8|N^YSy+t1Mq-b) z*$0A+7Z=4#)@!}7c3y0Yl`MrgL4C59Q~NOb@S&iQ*_)hwBBUGr!~4pmBsw^dhJz40 ziNRH;vQb;Ck-NV-ynmK!r)kOw|H|vSnSiD)ztjAK_rkjW1il@Jh|#7D(}lO#)I+W* zn2<IL!x_l*6M$o^(drHu^zWV0c$qCG{}Hco%T9K)^n!&LhulJpVuc-de`g8BidH}< z%MJdGuz7&;Ln`(f{O{@6yi8OF&+-<Q!`;HwBu*y!wSD5a@A8Ro^q=Ea=B(2-`oTA+ zf5WX_<6gI0k6+1mNwebLFtXMuz69v!bl)SWhM{k@z53iI?eK|{?QrrL9P;`pLBouq ziL&^Mqp??A$4<ZLt8{7^%ROADa<XfOTL`jGhrI0iRS2`UP;x=II>hyDy{ef6TcVE( z_L)nEsb8U9KD{aX8AGF*93I_o?~ZkL{n**#LcF`4`-XSFD8y5LC+qy4$$ke#HmsNo zD?X2dA=u5v7C$CZzg_~^SpT><T>nUj<lgBY=wbsP<R13oAy(i6)kjQ!y?Rp7^jEUq z=dErz!2C>qr?C)z8!iRtzQ=<0Qq6j4!XHa0w7uV@S)JD-p1Y#fS+6W`{+IKD!1<fM z83fMP*ogw?*SfMNGU?#f6PfLt6$Z}Bgn$9!Nr-V6I3I1A&CMWq{^nfp{8w_p^Is%* z{#N&Z3!a}C1kcyzg6GfA1<#Mp1<!vZ2%aAn2G2J@citk_+2WTu9XS1Hgn>b$RwEAF z({7RUGB*a{<%JH3-ui4Jp9P97jOrh>Z3~rY(O6%7kTNFaHY`h|zGud*S~4<fu4{`# zMGg{K^6!?ak(0+P=^;TGwV1t9-%N=8p~MeCZ=ZcoN@z{=?k6}?W(w5BH8s(eUCH`2 zmcDuhm1D%nD^995ogiu61lGc$8Exi9B3<?^OVG8gf95jsf7jLrjZ%dyL{Ynn%~ig1 zCTUT$sotFt3ceK1z&+@+@)KW}p7?XH>>Fm1s!bQo>-v=Je6f;cZQDo>yn(+Z8~h2R z)+)t_-C9PLpW4Vv<c_K#y;iALR2v}?@Zg%aYODF~CfEBTqb-vLkWBXj{H}~BEgHxE zyos8Ej%DfV&|^g`RK43i;y%S^yT0Y@;$;_y-J7uqgPgkcLD#LBw^)~&Wf38f-%nLP zb!^<<im1DcWJJ%Byd)Vppu}us2aAyLEtVQVQ$D1YaJ)FepY!{3GQb){CC_DqbS;WD z->6|~Tm<Q!T1=-0C92m?|GvrBg;}x?-w%uT8J|A;r(GY-8^~GBoDl5DcD4wMcq<FD z9OTaDi-0Xzy{X}+YW$WMiz<<~T^Cl@)wd=i`|-l53nZ}IqnvgF9DyQZX$d{33cB+d zbtg%8lDY2Wvd;;?(IzS6ZCi`UrL`zllI6_vmt%NZ8ZTMowQa}bx85sR8uJsy*^8x} zn7;vZS|_{%w{=ud&~>m}AP)+S2R;skUUVpQ4fr@{Ue~aB?5%8g<FIEnh$Hwpq)Ak_ zMVlUldI66RMUJ5D;|)bPne>i0@=&Z~b-{bvyZ$9umj%4f==yly@HTwy1@GGG*IBPA z17pj7G0?An&p@v;pf>^Ke*NfVfGLB*8R0tK?oS|%-STMj2N{Lzbd!E!#MPzG{)eth z^8J5L!yMqFGVt}rM}yA^dix{Cdj3j(6&{txnNutHy{|~wEL5}Ek-dg9=J7vh9`o7v zZz4C0a^O@)`vm9u>33yEz_|191Ni+5W_`3-`<Z2rpiZ*>sYGPGq0Re6Xr`aY=TOZ; zBC~w@1KImc5f1P`7~E&W!2{t}_8Mv{F0niNMfY4TK44_9$yc(TMK)`d&QW{zrYAB} z{Z|u8=_`tQ4bwMOQ*7o?WcA0*Jc@4x((9Exo;idKJC>SMu1TstV^8GdLrm0@>}l=Y z5pQ~-p{#Ifa$d5`^H(Q)HZ$y=d1YgFq~Qej;dI%&M0Mv4?5A1Qm8f2M!^I%tz-6rR zOJeTf9`cUJouzVA&x8Dpi9hIW;;k4{AiT9dS-o=lYWV}9!Xty6ggl?Vj8%khHXbAk z{KK$^n7=CKE2aG|k9GNNTPvbfBpyIh>7Nuw?<deDN|sTLrW|*kn$os)plqEL2~7FJ zlaci)9*8bp-LH0NyQ`_!(7lpnSU$`uO4w?x3|SNKfn0Y*WyPf&5GsY;o2GctnXOZz zUtX${<;s6q0=FqmG`3avBmC>}3Ac}oPF_Y%#+d)vOw2$34+wIfUJ^aw)6Z~n{+8$o z=f7NAy>xnqf3R`eTV(C8em2^4B(3&WRXq#MP10KqICLTnUqzlg`POeMpXAy&Qcv59 z70Hs_pH81mn#h^s;X*TypOR#S)J5r{WU_5bf10^vM|AS?=;Y4v=|Q9(J$5j^<e(|% zM`y<R73*+yzcO#{B1DC|A(>v|cG42Ai$ylz60YH^vt91ffk*O9Zgm1fzG5jjOE}iR zKmS%d-z&;a6v<_NgIJk|);g>b4mC@Ua~S+_st_wq*vhEYSuL|u{X%*5@mYE4jEtNZ zH~8B-M`y~mwyQI&uk#;AytxK@HQP~Qfe*3%A~2%>>lgRH`o)=I+LxMX_+E}10F(#q zCxP~3L3^}urQe7*?QQrV8w12jTD3g@8wM1YtW@mHwWT2I%t4jRZ18vHz^-qitl#<; zP>CLU;U8X)S{l&Cw@Cqd7x<TsA4;YhDvK=@Xe(89GVu4DB-7I#FP$<^*OM&$=Z6U) z5N{at?pZ*OCMTq_fL=ftPLKukp@BgbP})J`dL;tAfkq9!V1J_ejp^Sily3fb4p8rN zp7t`FrHQ0*UHOc`E%2N)?`Ax0WV`+~PhWfaho`a!p}$I|ZN0>QHs&wNEF2}p#Vv9^ z844q_I!PT#2DVRtAN9iQHx<?)a^(?O5l>I6jJR7QBIhj$#W~g0zfj8>f*PrJ!|~EJ zjKpBCxRFo$(_XN<HQkf00@v#N{V{*1zlhL{dn<Uqzg{~nD_+W9UyHMIc=x@g$Ma6w z;MPt?f6xZ%-re4`YWjnsqA&B+01ke)|GnQmqxX;z_wlKDt;72~psFE}7WuC$Yqb7g zbY}BM!Na**=%bohlX;bE3t35!Hi!T(_OS^YNoMmt8(HUXp~bF=M0Ls8a<izzfz0iC z87AQ1-QRwfcmD>B0E<!&5b)vv3V8r%zMdqC3CPDVXk&P+p9>vZ&qCN-#WAcgo|LFx zlKH@f{?K;i&}$eAIUPd;8THiQEj)=~_iJ|^O9H(uxL7-ncj05pdBk5oYGe1L>#_@s zXw0H2aW7fzu{zHp!z+0z^J5<9TEjaAa5ZXU=3886=TN60Jf&BD!N!*-$5P*%Ab6*4 z!Qk>`HZ^-X=|2P35j3YfOvyy!!mB8!!tAMxVl3rr`;wTWDyeVUc3w><;BrdMt)YMo z%;rd^6J!Ph#f~|8yZ*&ebKPb#w&B>E>$siYaEy&g`*q)YAJsbMgqzEx=BkcuICifV z6qw(PBOH#kHTSfhGv`jOqD|l8uWct``*gj9O4NPt1NJ7B(`Eu4h&BMVy#?BShjFUV zLK?T$mnxWgY++3#BOYrLr2F2htg~M)OMShx@lDpj-|f6=3kmuMlk1CaPefJ{`7`fP zzGv}0hU7}u_gVS^Q%F5FM`&*u{2I8GNc}*LUkGMHN%gHLptsx2Im7KHlg6(7MP0`^ zeIs?hz+v=N>wC_*wP<=*?3`PRi5IF~*Kj!wa97^i@PS0?+w)Y{pJ#_uqaDC8l~^r* zo*g=@gsQa0eb{$z@$Yjl_<>rJI=cH_1s<>#SuJk7bx?OhJdyt016<UmZ>{wf)Y#V! z%G>|kv0B7KP9@THjcPT61A94k-#dX9^r-kc^fy-hi>bV%;UwEE&bIl!ntI*$&f<kJ z-wKlhrWFhp?h~f|a3aNuZM<Ag8XFxe@XYt&El|vfmHkFD+_}W8mdQiCGr6KC#8USP zcT;n3<8PwzcL9>mDWyH2Y7=*3sX4PaxP8lB;k~K3vOo+75Z&;wV~$W$|MD2wd@U?o z$k^P-N%j^-FHi4N_iFwq|J_!}+3YVQnQy07_XLd~r^(9b@FgTHSq3ATE2sxaO_t$Z zpczVK!b8XWoQJ3}=ijNJn$K{|rp)YC6Tme4bGxL!Zg!D<xHdI&wA&SK)y({Mad8?+ z;iIyQXYMR07~%>tFMN%iKvf#<7xy|};|V0gF_}9k6gkUp6vx(d?NmU>WXDhYoYxIA zV{er!M`jj;?`JzX12k*A^#1(g6kNjN{=x3f><a)f4?k~#m=+l`SU=Q?P15fW!|6{e zd(OG$Z_smZff%FqPTG_CHkC;$DZ=zsin7`(3i+7qbH&l-2HjEata-nAfU$I*y&nP4 zFzUhA2WB9@%_#1kG}%AsxA_CQCzYp;CeYE2nEF0O^y#S8-IFR(M|1U2u53DRgUjK% z<dd3Rs?mM#e!EbpRqbzXr<vXNuG1YZQ%9>$_fs45ZaEKj-@Dr?b9p?M{sn^y?v&b{ z@`5`@*`2cR4$et8p-KGGc%U1zpxV)WZw;uPy0FaM;yib&RJV%hN>F8xu0P0zKegc$ zck??WB5LhcUO*7Hqc%oOQnpGBA|jfiMQ(Q8xW70$S6f5z@JI?$z?1#2>^za0<;ak` zf~<Tvk-Af_%skP_SOm2?X6csxHU6T4S46U(HeGL)Zgt;#Cx1JPH|QGQsrNe;yAhF= z{kU@rojAw#|1;#e!=7Y*0NRM|vkl-iLbx#A3VvE*^=D_5eGPx>aR-{IS9W{$5J;oz ztgeULo?R1Muh%v2`I)X${@paOYL#!>0X_>7I(s>I1NHn!TZtA4-gH)a@&~dD@dwOv z_m8*xs2Q)*a!XD3BqxHivPZc(ueFv)Vz^-z2+^K-@B=JA?3g2ht$!wGW+QpHxMzOH zGy2|d)02<LCiOjwH_H-PAGGUHWz)#wq3%xItCr_>GPESS{tq-}*`Y`k8a6!LXRc;o z(#K4s6`2a!kd<vsB<&=i7E-DsInVwrjd_${iGJCYK*4g}Z2tPO{T|ieWWHE#iEkP= zc4vPXmbR%>p~jhU`O>>px-_#xpBlucY@dMaOzt|k7V1YYU+1E+lv3oGFr~;uUPy~4 zR!&3^n5+wqSLm3j_`U_g-#M$;)tKxufs_Qd|30{Vh06%?+V@=Ti**|c_S$EaYUBx0 zjVQ;+L^%9?bj|Ujf;1!N{8NuKBWH3+9uiAhQo%W5EicRG7#ZUN_V4^R<d1?JBLi3F zY17~8Ga1Ikk*%FjwnUJA<RcU*8^yI3V>3++d_)KTSG%dpM<_V!i`?OO%r#c>(*(1a z%i~m^<H<L2j1K;1Q6DC^2u6o3_SdLH2me&kRdjGlJTp4j7M(^1-#?P8%ol&GV8|oF z>=v7FItfM}{$~fX#kx+P`|X+XHyz0QpSx8X*NiayVpldlC`-9Amw5G)uI$G_*;iay zg+2EnS9X6;c8Mz+Ze@pHTzoGbl>N0U8);?RT$vw~o#e_!TiIe)HajR|8MoS5V`cy9 z%B~5@w!1QypJT2oyD}*2aAgzhx$9lo#X;FmU75?zG0ByU4a)9vWmnmAf8)xkgR&c3 znaj`dVOMrmP<ELsyUw0dC@p=j2+GcJWiCI*i-;4H9T$|HVr6q?X}C2M9j>@vP~6WI zi@;j(L$3I(uenj&`Yl1nQngsI?}~Q@#qF-xID}sQWmo)6Q2fuX_<``{7rNpVL2;8S zekd$H(-kiaiofWJ9}bI;am7CiipRR*1!3_kuygu-e^7k7D{c*oSGeLkgW_UWyd*4s z*cCSf#o2FKzgLFE-*m<GLGdzIye=$eD{X!IlA!pfu6RpWe2FU_7ZiWP6=%ZYvt98g zgW_vku}x3`)vXgc_spPpyer-xKD}2nKYi{=LGedjv8J(&*t4$qsGzvi6&Hua3taL3 z+uV5XnP>gh?6;@C>x#Dr#j9O$d02dlEA9-6f8~lR!eYgp)3ilF@!hU?cv!5h<|zKR zpm@3~7Ok;w%PvCkkAvb#u6T4<d`KtIo1plwU9sqyJ-yi#&kBmmU9pIv6}P(LYl7kf zcUiwDgvCE{#eWwRZ*aw?L1{>Ccf}V4#gDq;tHP({hoos^gW~VG;;CV=G8It#v7q>C zuK2pJ_%v61T2OqYE1nS+AK{8m4vNon#k0cVmxLFjlM0F}T=AV@u_1i=++%{`h%25K z7XQRO-9ISaHrK#%Us(K)u6W<A4qFzv;s;!D!&mrjHYj??6+ILbO{8d3P?UB>4+lln z6s-)3u6IQXf+F%}p4%Q2UFM2x+z6fiFmisTo^T5mP9m#}njr&wYv!v1mF8i_xtVn* zOFVR%g+FHtsH9MXCfbki#WEn%A{x5~6Uf6I-hnz1ds(Zhrf*?IROX?F)${e4ilySb zdotx5mCxWDbfSqapFtcF!c`zq{I$CZ1c@rH9NW)~|6MW4p8SoYHoC}dGn-wPH=Bj_ zMX&J%txbZ=Aq{o>oQxqC|3bWV=8=slP4^;Y44IJ27!rr8(cBM^F=Rrd;mD4$#ej{* zy38F&Koht`coq@UiiX}L0QdUkXj>)&6jVcws$KXm-vBC&hN&HMmgvR&%T=m%dAnHT zls<RvrkqkXXQc)%J@C;d5jDT9%owV-n>#;QDPeBf;vfgtz!Ui}7TGY-*|}9OTKVJL z%Vjv*p$ucuX{~yO>~#Z4S&B$<K`z7DX`3mhEKDzUDH06jxeRBgMcwzqoMOLTX5YL@ z&nSc06Nq0r4>O1jbZyFIINN~$r*g7&TL!d&^eQ^IaaPbRz2ajlTobmaZ#3~+@MWsZ zE2#2A-m14`sG>Y+cY%sjd7z-mZAf&g5_aTCFn}r#7gVW25K<M_7k?$itzj`QZs%IV z+|gtSDHLCuzBm$GDPBK4p?`3tBqiwyMUAZkd>f(PNIB?eYV60*DT{vQQ>3OtP5V%) zQ3I#|YpWMj(ZT?v&Z=8nCX>M&nSN(6{SYRlNYD}~aG9G@!cL*3CCjjwG~!toTyNoB zzvR$8snjLo8)yk&&f5D`X~k-XyZr`W0mgsG-DbI=Spfr6&;vBjjD$`<L_s<E`kS>n z;`MyGlSv7zC@s&?ppH2*Q=wgay<^Td+*x<W97JyZ&H8;JWfF7{U3)27UM|$XX&hIc z3)I@lt|c#rfm&MFG?d2m3e@^Aw*bj_9rA%%4*?->Axmz7lMB)MBo*8ugDI+tA-p2< z%YG<n_lia{u~XTnOxFu^fR>+-Z)YcW=7r%_UDxRov1hyPcl3q$1+<jOk?39jLW+~@ zrIr~Nx+6L^`Ek}&F3rr2pktlQO9~9g^ZLlQndD>dmT$8vC@0_MFF5@V=G(liK%<-e z@||=ymU=MQ__e9B0u0dRk|JjcODg3UZ+<~h8s(g_eGj3P&8>02gQapY7T*bFJb!IW z;r+$y30&H(Hv-VBqRo0(mN|P_{RUt^EfJl+uC}@>+9bqG)<3Ddn=`n%yq41IGM~c8 zWg^0H6ceS*m!b0PBt$Jvro|MqkMBkqIj@S&)qXsB@G8A#n%<x<&roA-)1Xpycfx;# z2N<L#8m93;A7t6pIv7!A{>ywWvZ*#g&i}Wjvq=_@=z~}3gVWrX^*+98@2k=4N5=d; z?3BXSDzrh{6_ukEZ8_ZQ{?=%kqwO~*_qD6XC3FqG*+-H2ZIY?m^*ArqOZW6qjir=4 z-*<-RVcq)!eO=wIvA$<7Vj|_%&$>W7+!EKZu0Qk1e}TiMjt^E)<*XcuR4PFuG9AX< zW}KWz-7nqNa$z;}UO&Z>Vp->gW4G;?Guh@c-EXvoxB2y&m%0V5!xO26rY5JpOas_( zX?f<C|DW1$LePdgLQ6~7h6`L9P7K>{AuE#_j-FSreyjQseYN3hiRwqL(#h3{=3Nb+ zVt^fux@<=3(n?$|gA(aWT}Xd7x8lQ@-6ImIy3$NrtHg_JW}%K9W3MyxXmmMo8Iu5C z(w7bo-`BN-{RTSj(8u(z>n@FF#~oqcvo`?n!hFGrLZGjq&vpJ2b^eo?1rNR}^pmKC zZvC2rzV&=?;Q!0_KXus<diNz4?azwd%PJWW#v`}H_o5=Q;_8O&icXCaTm^EUs>$qn z(NOGl#OcYb^Xi&k&_z+DF3iSHnqL>t2q>UqB(#O2Jl6H20^()<^GkCPAyaEpKgy5s z3c^9^*jH;gCW>ULtWx7VB-znanICAkT<^1pYjn3F;TC9V-x-!>G?Y5Jnxn{jZBMl5 z++Ts9ZqJ6f4{@qDh69kgba<++$m@p2r&uq?X?~}|0g}lya2(w-Cw8atTe<47#a@#I zL%Q7y6Us(xGP~v!yKRXduVe{JWTowH$VZCvxBO+S?6mt8neSj2Wr1R@F>aH`)TKq* zuBApTq2*Ant-Ls)MWnQe)xR7@@)-_#HHQk;w6VG4fXrA~S{-}>Hu*DNpnd()XPxt9 z@w{`Bb~yPG4k66kl07CwE^d1+Pr*4~`umV`=9d4yz%5v2r`mv|^akwBTUdgW)^jb} z+p3m6?y0YEPy=DMm3%QX{Qwrjka?!vet$XVG#I3|9)1_Ra{LsR0=zW)btcfe;8!A8 z2Fm)>r2k}qU;pqUO(wS*bV$K!&?F(JM$8VPW(mKN>~ksfjIp<r5G<f)-w8N=h+pSW zCBUzdoEEMUom80`U(^kffn4JcLoN-e+qY4>9(j>guxE?i(^i;<OlGs-qK4pM4x<@M z4jS`39`%V@kf{K*#sKFONe}*m4UvG_CszN-4fz#`V^YTl?FbNjQV|Ue(OaE1d_SzS zl=MdMFY>me!kYzsx6JC7G}&SJXTD?@{v|t{{8bJiszsabqE;b>->qxb|4^yd%7p%U zJdfe8Un30PifrE#!%woW9M?51kKyNYEA#EW?}p(y`Qkm{`OV;YK+k){tAHk!?;$}n zw^9}S1gy&3`Ga@h7mk3Qm=5{H4-I_UBCz3bevwH3Ko0ao`WMPE5b`&CV@n%wy<JD- zPm%WNeFew5JWO(|pEPBj+-q`7z=rPww3%-p^;0zcB@}hbe4s3biPSHa=+%k^-pMtI zU+bnw*Z9N_z9=v{j+|htC2gdP%0T5{0Y`52#<y+YPA;?O&bpQ7^6MoUZk}}x<npy- zG`88%GL{<ut37bsN!0A61(fTf>0=T)<h6j?8BuTHS7p6Lc2hEgk*WacNgs2Sok7ns zKl{V}!i5@lBvNzLwancMBrN2**?c-fC|ku_Bt(~uqQS}!^bXn1Ucr6w$xv_j)zuhF zqOmpEDTV{R^R?%B=q*USj~O>g`p6DX8M%8pa~ocgcVMSvRidFso9;JbD9b(^wX^lB zd3*?o^j>%ibZ}{O?pGP@a2uw%S98&Wr%Grrmg>Qwu)j5bR@l?hn!2orc}$9pty+J? zOjp8+agMBw3&~m^GyPUHqtr!1w9Gugo7jg@;UuJ`DIx-RpKbHI*PH#dU<2Y`s|r%g zN@%W9$ne#;f5`Yc8yU0AFdjLi6@~-Y0?2m!4XKZ##0p_ZgyeXfw$G(SqhSCXjO->N z{t|KYC3&)&yOrnX9k0>mo<y3)F4lf_i}P(g(b_60EGL3o)+d*6t@2yl7R3Rx=nXn` zfZcv`tqB@<VKGbEf;Q(HIE)4c10GP%?=d?Z^*rednhobx+2Q1ma|o#?qH}?4p#8s~ zoXh_%oKHE~U<tPhDCc*lY9jsoFv_`A)zZiPn+PcItzcdi^R>)p_7qaiu40oX52usf zm4vX(3lr+#?ZZ7BYzpg=>R2X&aO-X*K4`@Yo^7BS@<r-0^2<b<_Tfndr9hd2VGv>k z$P-9}pqXI}2{(i=3>-}cft^I?<U_`VGAA8IT4VlxZp0${*-D<yC9<F4OMJJ7{Ib#R z&Ejper?PuxcC2%KOMcF`D60(*Li)>&=g|D~ud7X+&o*_5(o{{kU{}kZ(TZglsYSLU z^~TI9*&jq;3Ktml;vX}DsO&&gs`Z^fYdLW`c@r%Woo;P7rLXu@_Cr@D6uuqH9D840 zt~#ZMT;;gVKhF`@iQf5TWW*rzO)O>0NgIv<E+LLh-<wR`p^2XGo259Jc7GYTlSntu z;2N{k&jaF{s7<G9tO_x(d&DAqw;oDqd?p0^GWGGsLq|pLc!_%c?qq$exnFH0L*Q5r zo~a9l*QRc*Ncx*BXVR^5f=)lZt15WDwt7az^dZ%WA=6Jtq$Uhc446@xlyi4=!;vha zI%j0VraA?kJyApp5#U+{uGBnrpf>e@2&%Rwr8@hO;yGfKRrN~Zr8x}}h^&wm@{VV9 z!|e>b)oz^2`&<-o(@}KZ;^CvsFHy}~z#q2ibhV%23j~E|>DG<M6M@?5HMaK8KEmCg z{V}W(F(TzJDCPITXv-yowVBdUY`e)#w&-h%wp_@<id7y9HT<XBUM!E5JgsHfjBMN1 zQZA~0Eel*joEWGV6j!hv=yT4FsS2GM0VHi3sPzQ$j#$YJf~G#Rh2J`UTz_Usbok@l zm$K+juZgA7*Qv$LOQ#QtrJASNd27Q77Kzw>&n$YDYE}*3$`<yk0a^S_-IvxRQ&-|j z-WY8@gE><Rr)#Bdkj+TDG^Niv>Pn+qMRxearJvK)$@Ls^BEvi$$qNb5rdeDcwx|<H zLE09CY0niQWy>w>e1%((sSoSrc}bxh9_=lxW8iu&?Chs%wy<-gok?D}?d2Zw!mL;y zSr^3rQRous8wOPyG#W~MJ9ZdUXdO6K3!}1p;p7O)tnKQr$<@4xGT@bc8X!4+n3t5Q z@`QZlpIGIFXM5dVy}p0Hj%Lv|eV}WBd%hO6$dm#3dFTzXT-nTDuQBJ#J+<uRRGUf* zu1Q77%+We5qA7%-UiYf(SMzdfD9>!aT%e0}X4&yb^w2}z!Cao(A1M4DUxHm_o_YqS z$D+D(9y6uA;qTd=_qtTVq=D;ckod-AvuKEg(orr`6Dm^)$5PF-QBaa7VhS6xH5*4k zNon{<9W-PzO%kfz3EdsFwDHhDa-v1=X&be=ZEOGTd#tx1Hhv!(YXM6kJqf1uei|2@ z^AcUNj2O`-twg@@M3+tDNXw-`9=-)k?S9!3pyVwmc6C2CDr))H!Lon73T9Zlb3XvE zB}v8ydky@_>ojN$!JuXP<;ER~apUpR7v`x2>p7c#NO3?dKAEQ$zI&*N28e38@do}x zb#g=FJ+4!ukj+prHNp7ia!w8S+50#XUvu>6Xm#@>H>lPG@&!>LdzN7W+{B1l!)*aU zJKnl3bjc2I@9`GEANpnAFqTLC1oT;i8KQh@*D&m9jWbI7Pd`}%xm*M}3B9u*!PO0{ zM_t)C`iO?-m;oT68V?fY2*+!f>$B~Qm$v}o+AsSp@!EMwmjucsTZ4a2%lso=ckpN` zgmYST^E^P?Z~-eETlwwG&yPINr$oPixp=MB%ueDX-U5rV`WWx`7C;pGWl!g{`W}UI zP5*V4lvY6#M72N3uoUNNIyxS0(te?Cpjd~SBkNnZOAXsVelg$*YyXDx9>Y2=9job| z{WtkSehY-Vv-e6Auz%3Cg(i0m{21ufcwjJ-v3*f~{$a~G@Q*4O&~WNaf5labl=37| zXgIF%Kz}ZWD8qdExHmp;6tH~}8@_Y-qAt?|KhKlU#lrVpg1}M%GCxU;%;%BpTtsKX zc%Is#r~J0eeQy$C-)^G<U&Y6K+)681pPA`OgdmihLdl~+$<?j|kg8;$L)Au%$%VoW zcu5bVcYG9F;MqHQ)?Z5S_&-|kxSLPufhEN27uatHex}#;Pk5}b`~cB(h1W~#dtQGR zz!sL5U>hsEUXNl~c>NP>WQEt?MWrpgPB!<vUU+-Y>!pO77S>mu<ihI`0t5=L7vkP3 zy#C4bp4T_y?^{G(OT(95^5SsMwjqeNxP8~Kz(~vYs@jwO@`V2^#KV!t3yM=;85C`q zJed6v%j;5?SA2Kho2ko+S-doVTv4L_ysAzqL;I8Iq6=c_&#{tgKk<6ncPDy>;#8Ek zl6)0X8N^qbwX?5`1)j>-wc(Z{67?HdKD-ohXMhgT<bLEC+`4C<)VOUxB6ae_e=6(O z*4^Lp-_qK<Ch@e!g99ATSI$1mz!-f5+3$vO&)@0!yV~9!=(Qa@s&U6D?1I5>+bPJl zXMSW{@Tcr}GE&gjcw||;`n7m;+}g-fUfa$AUfZ^#V%2YW(Q&WDBTuyL8ql_5pjWc< zx2o$^?}|mo?P6I&e>RyN5HHy|g*AhR{`a&01wi&1U)Ji>9)QLl7`^KRsAD3s+aptA zwDDy~ZBKWFsgZg52fh)Hz6pwhyJHOtz|!Xn*W|Y=YwQ>xoa6s*XV027D;7<5kRIVs zBC-*j!>Cc}we5!)UBO=HsgpauQ`S%JKhj@aU0G~MC?aJ@_#C)lNO&{&9DRi3B$t<a zzt=nceIAKM4-IVVKC1CWkZ{W>jW3<TN6-8?i_S_pIs2RoqAg<v#Qh8lp?Ai87T?VW z8|SY_XH{k`bk~D*(fOPC?c>+M@6}{m*XiWg+Lvs5MaS-V<aLM3$+pbt$+lgmCn!j? zy?T1Qn%9ln6pv)!8^YhVF7SK%QSoZNHtq>bCv6#SY#A6YS?4{f8nNn4VE*d@eA_Dn zypr7@cnt{tzg_x^8Kw6H<!YnzpXc`mzbE+Z63XGGe?ut8@$L5?<-+-1fOa<Bwc<v} zSj!uyRhE%!V?XC*q?e60-#|&W8%ap|mAJ|45(fR1vGm27;$kK7XmTY&zE}xUddlpr zTR`{B0A@Ja@R6~SHaJB8Dc<a@{cf`i6|0!n4Ig4oHyp!!ZYT%)SrXgYzxS~*8wqbU zFa7%ZL}Z=F(G9=LUT4ig&Q*KrU3(mN6U8Bav)W`N$1|EEM(5~_u{-J%Lu<bDZDV%+ z+eT)}LNcQWKqE6v+_5=%Yq|G3kr^YD{_CFq2WXAg_NF5?FF<g%i|d{J*Kobc)A=)m zOQSCvpfTGZ9(y4uoA|vbnxRpSJe_QN`Sf^XxdsAy(e~oNc;s<W4X^EGD8lRUlI`?; zvLg!re>NZ%eWV;yPXP#G{-(J99Q_~IcIYVUd*chIKzFU<1_A>HUEdIZVVk-ifZ;_$ za=_q4mJ0^4$kPS@!C||A(DtIiAXc&|R`TK$|2hYP8_G#4^v4F^lluBFwd2FR2H*`^ z@I1dA|KR}u#qQb*|5GmIVrGXj(d-smX*|U2_&p`rtyo^2-Y<OY<f>0;>oMWb;WF2j zd4*{Bnql97hFc8<CxL<t0Oo=l%GLR}|7_e}!*l}ux`92?mI(zf3HW8l^T$N5F`se> z3u{y6j|2QNbbc+rL;PMzw(T5|Y<qPCQW!6K=_t6_h<M4tP}2IJ^Tk_3tcokwLI7AH zbqH9)>ar6A*pKq(?7t2`x+ehXGl26C{9bk-eI)?tivdVq3qdL@vdjpfNOcVIRrVp< zr35<GTVF6KA*U`pX6i!KBGVSu7HSLE4uYUf$g2z9zJsYr<OL%C&{!0PPkL3Wr7`U8 zsWB`zjbUm|V>p!47^Vdp!zTib;rb)Uz+am>cg)-}bc#GxjV5<P>G^g?U1W9Jq5l3p zqoD@_<o&uK?-z`I4zEjn1zqN*Qon0TTi4OiN2GyVeR4m)OPCvNnRZscwyuFra*9Wu zY}|fcy!vJC5BV^{(~el=2_uMYFB~1K-i6S#3zE4D0{OCuTEw`GdtMWxt*bxO!z+0X zqIs26h5!BP`v_r@za0)_4ET4Q3>LG?g3}WA^{pjX{F3Phiu*=C*hnBF`T<HnH`vv< zcz~%10mDW;SnQ9fyf8iHgJ2k_*On^7+<|0blD>2W(+^Utw>F$x9rEpL$hRK=c_Crg zxj!Fptt99d_uHqSc^(~)KC)WVnFK}c(iFHikn73;u~bnd6aT!p-*rAS{di{hdS-i< z=Sx#~Toa#6^&GY{-^I*d;kQ;?O&pE$#Zn45z8H^mIedmFn3mu)2Kaq-7fAhlJhFvo z2$~yc3P;DQw{ZV)FY=n?rkt7(uSR|t*J)g@Z6`X~HdKg}V0g`;|Lxy@kMVn-F%u<X zGrw2)J&OW??%H)a=N-aKjxW8>m>G&>y^vGP?p9MM8gdGSM5Zzmna-C&@r+6ECciHY z<oC~t*NDj=BCTuNYTPAICyvy#fYZp`hC0#qrqd?&qfPkh|1@PHpjtQlKAYtGlG{9v zjxy1Xm_MWv$^`xK?kMY5K$~chXi%K!Xt<xql!z0__g;zldyOCs3ki~PX&NKcQY$7b zT<|O9rjKYwC&|$f_cutAMtv~S1g8@zy5eL$_z0kQ;XJM;9@lTI)CvgCMt+?lKn$hy z#x?wQXoy8;;*mv8rC8>u3O2ULlaP#~d29c8$p)|O1*pe1sK*3RkJ7r-mrSH|?dYTd zU80Q}F_fG+#Cue-D#Q=+)|CKxlK!q3@)2@T+b*@StSlaRs&U78GSEpjQp>!y9Y<3g z3fQT~T%+3cv@Cv+r{X1R+IICfL*Fi%F;&g@vw{hY`I2KZjju!)EaIpna&L(F&*#R- zb$`eZjS&4eP&g?j93Z;RxM&(`3OX~A8y|rJLufcYvV?9s8jvtL&irYELqOVHPn*I4 zUNxRsY1;UhN>j!at&zPC1taiN3vc~E-w0*3c}+cKwNUNY%>)XBwpzceGB3654y3kQ z3|TKRsm;bk-IwI%`5XM_LnH+N`M!gkbpFhbFhQoB+|Q5(UJ0MfN<Ibzoq#~#5H?6Q zJ{lNQN!_5s$i|p_t<M1>{P+K0AW8KFRR9^xe1}&dY|&)b1wdt5J;(HVhU3eLwk~wI zJW#!!NQ7|qNttj{V~Ee)?*z0#(mAvNZ0~%zz5Ekeni4oD$gGriP_Rc;=%7fA#aesg zJNPF^A~z>Jz1z7bZpJeiz2kMT%DE?O{{(YS>@#uDZEV-4!Yr#z+xGq-E%=4@v)Nn| zmKLz7H9*=g7}Cmtni?LMUrDjmg>bnGszdn3W}aQ``OldLVkh#{8b=pPQ8T!58paF7 zkVYqy#j1CpX1ok47J;2gR`@^t#X_C}a441iU3Zz_zaKgoZTx%A`|u7F$o<YQurcQs zAPB6$E#Mi2l3yT^9`k+1wI3sHB7aWW*Z9YBBER+~G>^bf3<+>cDS{&vIs=}Mw(N_x zyxF!3!nN0b-9IE`K$!RZF6I&_Fn>KicB7iVo1fYJnNY9tGyA_WRAeV(d)WQGNSEoF zOgI>=O#aU7?^So<rg}bxTcB-wscE8-L*(K0N;aDMUcJeg_(7xBvE;q=7uLRw0sJ;Q z=<PWidi#Oi2FTIo0DAJAn8e9-cL2T3dFaXT=^!Ua=AgINp!Z62+#8Y22Di2s0paV_ zo1^32bXfOh06l*bqZ(~_)oXhNV}gGOq}Z#m%zJY*yamH5TKNYW^Bg}6Gz_1vX#~f& za<+A~My(CUHE`zyqy8>qtDNSpg*LuQ40hK|#<=?ud(Rc?R<fPYj=q%hz>bcsn$DP8 z);zQ_r(2$9@oSmSx8fu_*dK9M^f2a|0li!X^g)onhU1+5oIFo5qlX8q=fMq(=g(t2 zXR_X~D0?xVohP{=8Gio@z1_mj*zG@oU4KhJeDz(g?JcCC9VX;H6_DSnjr@K{(=Xo7 zIpfHBMm+AKXv<rK$|38NYLd~tjU3yVcpHFzH$OSqHp_n&S&=Z0TG#1qFBQiktyskc zb+6=2uVhio|J+-#)aMG`P43dR41~Q^@6&tqw4!Q?DbaWMvOYsJO0hm2i!9NX+P0M1 zhi$ZR+C>&cR`9)&{jrjDe*CTf!shGMhAJUk3@ARitM{w9v=#7}tz5K723pz54`HBX z#xPR^A2k@Lyi_d6#3CJW0f&k4xwj1MzAjcDdEUseLT0nm+&&o^=fC6B@T~7~)*$!f zvKr@DFwSkkIM>@aAHz7uQcgq`rp5i|W4`QpIC^&BXPv*!@!MTUj9g_AiB|=(u&Ja@ zS3#RV9!6ULskgy+cOw6a&+=yHu5n1bIe2y3tKpkvG2+b(s&cHa0#MHbsJA(;(VGP& zy}9ird$A{jcKBj59{razIUoY2CIq0^88o;X$gFnecQw{VmE+o;jb%u;f$U*pMMV@H zR!b1Hxa;*A&hN{^kaxGggZzd@`n}2r7_mTpi&qhMsBJm}lW~He+F0s~M3`JRI5iFd z?&}C}hf<do`-|Ct5qt49{i@c=UQ8~6qB}fNF$6N)=LoYS9w=upJ~?MFZX{Am4#Xyf z?irSS_6R7MBEJK3vFEP<#ny?E!NkdC3>|qB{Mu-A#QF3GG+bx+^$EkT;X%kqv}H}) zf0^`q@kl#LEK`1$#gMeTfZVp$o4tdc;+20=dW3Q4oJ99F%5G_25?$L4c#8>jF{C;d znexA%abj?vKnp~_JlrJwiNfGiK$nR&%Bj((@HdOmk;qS6$d$-{AW6fsp5N&rL-vYf zG%gw-Z!MEV!66`tVF%WfGL!#cqJj4|wE4zxN;{+PEg*_XfWPG<hB{hpm16I{t8xDt z|3X4|1$u$30NHpRda<43Uh-^1J~j|80)0~0$7__V7n@*Wz6dpuVRtb{jJhw&n7hfu zKFDz_vfU{NGUkR}M3J0W^>!47=NvkEk=-TFn;7F&uR}as<VD^j^n>}G@v5=kjN2$8 z1QCbst;3Lua`C@y{(lJPKLIOtfDLjTKf#g648w}&1FU%a{lW^*83qb5LpgZwstOE2 zhsR~Siujhjoj;N%jRa2*1-gqxf;Fu~gCWICEeVvOzl8$j_HqPD$(8Yv<)X`d$(1q@ zB2X3{Os=#WPOcOkK(5?}`82ma#M-mN8Fpi72_Acy*F6F=Y?3<R<3*|X#vM=$VTXA! z^97sU0~#7^j(g1dP>WK#q!1uQb+vVsGtD)xZHhZ3K>FQ5hD_SYK7P{g&`KmGyh6~y zMv44w+sg?*ut`i1;)|svU6B<fuS+U?vp`|{Z}+J{WO+~Ev#<?7_X@v5{~_?1U|J_u zVPxAyPAIOZ)J&NtO0H=qsym0jzgCDhVX9v)kRVu-WDFt~$CC+B1%z#TyFXrJ1*+~3 z@MNap$>&Xs7^!h%7QBdpNUjfW_KQ?PB%8lQ@^`f5Datl_{xX(%V2Ix=HPU~P;seee z!HoZdq)h3H@e;9xXX5^w9G;VmX@WV@tHklRqIEi@q{dSJb3R%Thz3CMt+>BE=5Gad z`}+bd(L!>WzU|H49*n>q2UwJvk~eXHP>7`WI)~>Ehwb(Nwh}x}FAzNX3x95BLA%+R z3iIu-*3URF6y@&9Rz4Z4>cjwON#Z*Zg&*b?DRdTakVTVfL{Q8kB&~|S1XN#!UDBo8 zXBA+WpF;t!+0z!Xk*($FxUxK+x}n%h-8x7L3A?R&kqzFegE7AoC|puhSASBh>UI1` zb&(CVsVgfkN{_iDrcF&OV*A4<NSrQ3sCFjNS4hLf84=sheFzUZ3*(f^ABe~pkRE$P zOj&RwE@2-#iNLjAOp{9raS57Qj@kHt*Z86$X^S}J08;X<78(<)EajT5*Ri+B|E4_{ zh+AU9{8$3iAtJk10R`JdOv`sL>_?+5Q-`M}lmV5RN<WLLP$dAJ78|;(&c_MfGIdzz z&QGTXVUDXQul1kB6*M?Lbcw$wc4}gX*O{RR7gfuI5jd@iFhH#GI<wsC;&M<4Q>`en zY@uA=)ytye*wkff=T1M{xs8HiFS5i+yy_*$Np0ld?#%dmXz?JgbBim9>|tZ7DMwGJ z@T%DmcO08tWs{8^{rQA_Xe;}UP4WE8unegmGxGg7P}q-J^W9xl(2qKQ&3o*}_CEVT z7k2swMCLlT1ufklbb}_omws%0mwx=Yj0gQ=C>Rqj!q~VW`HzgpUsOLll<&UBME<!> zL@fmbN-V30BqRGcuQ2cSJ(QR})Pr)caAX!pkMU$uxtF>e!toD-SW)VwZ;`kAp!qcp zBCy;l%Hg55*Q5V$7Uif*pZ#clt;d7xa38(nO5(R1<sgnKpd248x7eB{e^V@d!4V<~ zF1E&zg@X#KY21#hc8>^x=Wmvz#hya<s8x`Z%ctTrgluSicDWG_1?5yI=|CCd4&^Yu z4dwWrC`UJx<7u8`zoKZ<MWP(35B%8^j$U+QaZw@N@cc<{SttI?sYYQZAR6z`i9hqH zR@ezB_<w^=NPp|IBU0iv8?|u3^`aJsm`oKW1pkPVAP3?s%|vE3_L8;81Cj#%9R*5a zDI$O(?U}rx5Fm*_%Vi$CIxh)~mJ}cffSDa_A(Bjya*!p~b=LZrier^!P8fKJyQQXn zu~@Uh<Yyeu&Yp5ACotnO<nAJqrSC=(VK+axy+ndUCBNa`(3PA|Ho;(oI6`e@<%Ow1 zPm_pDbxsrM7!IQx6OoV*^Vh4nBgx6egQrfAl%U$m{x^tPL$vW_%`kEB-ze&&b0?*X z#iX&|%aXbrX>l{+!(f_QjF4!XgL03x_&5^UvZu4JA==4milp!@<G3M#jLxxLM)U+# zVv&PnRW#o0jL@0W0|^A{;`+{=(H8m;GVf5h*cvCau@f1nmc)adTkUCy7>2%1NXe4W z2l*qTIwN6<;)nhv1fUwkLeFL|xV;m|2s=D81X-QGq9?QftYoSjv=DyyWamx;qaar2 zx91=hLdzgGe~o~J2JGNu(F4HgN#OHj0H^1q4RigtU=`U(-md^uS<`f6^7`Z8I-t15 zcLf(?{O<4yR*1bbyx8EW2Z~j`|L}qhKNDcrOAcadfQ+m_PjP%IfEb#JS%RK$*tIR` zKh-zLWWIhU1OsB3{~W{wjLQ6+oZ*D^0Ku4#ZlWcagtt`=uk)V)gCv#XKWUjU!W+8E zrel^`YlT}SdL1+IfX%_D1#C@H?v~l)BmafwBTxZID-GL(VccuysBovX{GP_;qaUWz zor*eKED&*A8;Jgzvf(6@zW2v5>%B}wB(Wmgu{Im&L4GbmHHye2a@QxJrrHg1G&Rc! zs_Nt%A1aGD-oQha9Y<VD&VJ?S@b5k#nJU_JCPhxJQiLKTmdHTh36(Xu3c4(cSB`uI zWgQesRiQXVCR0axNwje8>sOZbbAr`&Co&>Ytw0?#U95!@8dV0hEHa&J8pPL29S{7k zB1A{TF-M0{out!1BN%1I8y#zfM(;G5P{~+2+UxIO40CkE>hz?#JTaoyU#w9@g@Mjd zr-QNFXoDM)5%AuqDx?0ariMn4<C_{qp6o?@3Hg(Oqz}T|i;7773-l#Nay3^%id$Jg zaSI6U9>-;k;6ju|a3#6{CBQK}Ah;p3^7jZDeZwh7Z2dijwDuif1abZ2FcL+54qHYD zA`5#9Ayi0qA+rh$SIj|Aa@z|)eR8FM%%X<nSyCQAkl1&JkR!2uLP)q$fJtDHBd_lt zghWA~4+(65MceaOR7hwctiqy~1NL1&U;`k%2g3R%z{uuW?^(vp38%TK#wmm|fKn=f z31m$$<BB5CQ-6=6sG!lay(p?MtJZ(oTWIsRfTS{mL{97cB}}BH{8ky&6}}mBVKxdD z0rdoeif33S=qY6rRK3k6tH2mg;!Y~G@v|2VcdHM2(b+#~?ir1RZWRS6mZP(pg3^mG zG8)@ZInrosGP2inWG$5Y043S&yJfD6Iq7yS7d>rU<)L_sWV`G$dC7LTXl`KRg6PV| zHK@SGC9$^DL|qKHIjZ_yglK856hchVSIyOY2z}KLEL}F#j;u=44~<?%S!YzC&N`!) z0=*}XfQS?rj6!SCfxzmOsDCPv8l+(q9~FmP4__BuOw>QE5(Z{5C1wI+2U{nck`n<= ziG>I$PNYzzS%byMEyEh-EJrdcm1?jdc4m4BO)fHe@s*s>3mmPI;Va)GnZRg#O{IEz znz}Iz)>27F*}v3`U{fLfFJjuuoAlH(BRd%N@+LhzoU9(Km-S1X!=xpn-gb5H9eT#> zq;G*)Y*6PmvVrG%W=;U+kbNiUn)(tsP}ny<QrNc<z56!R^-a{Bu1!5H>{`~@DJKuB z^<O=#YrRaBU3K+}33P*I&2c?b-234@Q;#Cc7%B#+J!iNaq~TKMG-NhfbWOby_1U6M z88X=0bN$QpEHt?mVqnhf8epKzu9JuHXTpg5K+!v!jv6o{DdB+89fU9_k)u-Tq79o> z66$Hh5XaigW|}w7TDkh6Zc@G!bS$>+s;lad!_dNR7IYCb4Gb!WcT!65KL$$h@PIUQ z^FX;N!3spnE@5Yqe1MCz-xlult^Go9i_mcMCh$P<MI?iA%)8W?vZ#gS8x_*b=gtOh zmMq!8yOFyd3N2Zkp(RVH^B9mLWy;DANTRaGfV88?_8O4oG2;ZU8c|1cjt^~%omw*_ z7zG2d8wEH2kq^+`u#8J;W2u-J0tmOphDk&Kj6%(s-=@(LWyrzbKS0qF;HUt<6~qeE zQA58@HXi4trh^7naC$PMXHO*go8}Hd7~1aCsi_6H6?Emr!@J_pSku0)eg{qMqc22A z1buOeM$i|)<@)06<PMb(D$qCSioKV<WdC?y{+o=7`B*{&bI5jj;8@^m>1)#G2gc}g zUo%}3S0K+%@E$m311B7Vv&|=>v;fC4%yGjp34%7c4adyq;s`av1&-y(m$<$nS;OQJ zvTtc>JNuUQb<OT#mz!|C3iEmsmvQ26(pUD3JH<x>$xW_P+6X4JixS)9nY-#+W*a*+ zpy5KUVd0CoMs=x-`%C<{otYkPf@P|6i*%sQUHq-;+`->rMBeyoro@h}sj#~vI(Kkq zO57iJh|)io7v!7`|M6aE0QTSuO-43*jXR0R>X2jf=9dI>(_XLTl<jQOH)wqw-r6Ah zlfaGdVK-W9vTa*`EeCp|@lD90R(>?TIiO*D<C{QwMIO>*h03WGIZ%6@FALUQ=L-UM zykrZTRtnheK9cea+>85T2?jQ3|5?3+K#2cDj})o76=2sz*1GjIj|%eLJA(M?y`21s z-k7Jxzl%4<{J8SQ^zh@Z)Tn7{TxQ;wBOD7`OzK8wx9ve*{@hp?>T7QfCXFJVq8s90 z1>N}b=3npD5izfVj)bmt$#{P;<6%y|(AV)7!MSWiq&(#rm!XzKQmw`)^x{febza=> zh;MyjTb^%W1suj@AM+W7G_(TB0La9Y;F&W5`kN6+-~M!dJ`Xo@pcxEhl&y&SFTpMq zo>AdcRY>q-VRXj&a8}QDK2|^;s&|WvkmRlk^t++Um?%zVMLRLo?!Bw5GF0@fvUcRe zydEm+ia$YRm4zxN>y<3i7?{GEIzqETwmZ5bQ#SK~f}Em?0aJF(sUwnp7Zb(wpXJVm zB1y>UY?vjHpI51oN&lJDgmP+10Poz1?%kEF$GuZF*wogHZlLkGK1)#2gRBTN&212> zPY0aK!cI!zT}VGc&)Xsg122&%Rp&N|LF95Nf!SR}&k()QSGUAV9*_G|)Uy#dlk-C* zYD_O`=-+={TXk*kLtE`RT=Zqde_C6$VUx7y=&{ZJJQ*v95c(5URrw6wT~+P)BdY3( z|D>wgqlcmjir^4c2o=@54QryP!YP~J@1d1Gd+ZA)XHmUOT4}a{tp$<0a@TWqy6eEI zpFI|#ps@VZSM9o2{-4P);?r80`{YI!V`oz<w+dIg=#UGl*qb$TFdJ!p?r0?zXvr+F zq=Ko>7pHC-6syYkPmn$|LHf|<*7Sq{3jRIVpA8k~U&a!T^I}!&67{PSk%P7A%5SG9 z1tDpTSj(b!+(YD>3oJR6H*-cv+K);x*Re;+-%+L&IYgHbEooj50@Cgi&EkSE`Xo!f zu+qIWAkns^KfoxiO`TjcHqgZ_3JqP{wk*I>V-Be@9K2=vNK=_yAp0@W{q%S`je_o< zUD>E)rtH&BYzc{3qAimu5nity?xn_-CH-gFouiYRGpk}lTbX+ljX%vxT{#4`<pB3@ z9LALIPhAYOPsN6^c=$Ccn&TN;T+4Xuc_MjBJG+vpL9dhU<wR(KI&$S1ft{5e4AF~1 z_Y^)ckv$7l3nJC3mncpx8$Weyg+7aYZhgthMEzRRozy^jG6X+ES${P6^?|FSq@7+5 zitM(Bp(4q~$BRThmUeEDD`R3MV$YfC?@XCJCsnGy)}<@4?zN0XTF9`XM{kd(#;d#Q z&41G}Dc9rpP)uOYQqQ`(NKXabZG!~k>mx?7Wzy+1Y*2|{aRyf8A?ki%Xx?EVZIS)1 zyL;lNUaRh|$I##}Em@hwCDuuD2vSCub*i)2sMH$)YDmyo7uXl{_(0g>wt^o2PaEO? z&iz%+ig1h#t2KXx*yP&3>!U_pW5`+Z!X_h+GaJeq39D^>6%T<$&P^_ixg~NAe}VJI z9?y2EY*5UaJ|ja+j{}MO2#e+9HJ>@-JfsjJh*Gg<;cf>+j7->q8r|siv<#Nj`WvZg zL`l094RLLO9yLG?jUHVnFG4`vjUatmBr<jOVG}f-nn_6T*de^Hg84agcOoEAr*~$& zq5Ej!c$~Gnq1I>i*Ssc3W`8I7VOwU7P#gzeAFe0ln&%Z~yQQ?$9%Qxg$wRzMT=6^I zn`I$vDe5m`qW7JFP}9a+MyJXu5or_<BR}rWz=O0bTqIlLuY`G(V*PoQpY!8K=eH_B z5U;B7A_ZX#h)LAxFtJMZ?P@+bE{mZqvZS_t1+!i<2*S?}i+r%@tvkbGk@hem=F}T2 zShhbJ(ujF4)A<VKL&AAl291)3o>w_5rdQHtEUdacI&P(*4iZ~!<=LIvypmOM;Ddj+ zFOXkJFy*xd@}axo2?C5!JAs^?H30e0H*kfA0ADB3`)p_z0Jl(vmTOPX0X_$6KVt^j z9^eL2?+9%qn5XzXLG;l(0Gracky4&whzOjT->L;C0(N9YE@Xr%%H|U|J@Ig^h>imj z4gl)9`lmXvECcDzm);f7kW+b9M#G8na5lL#D`?AH{HFst9sn9JJKXLCXit#Np>{7w zGZZuXfHb>!IKyNwSidV~KLut3>vuwIN_T;@1+aFA-4n0nXwJj>DX`kX8nh0u`i~&B z;$gvRo;n<>x%pn99kBWv3t0Ug0n4#^L=d9)#K{9<awEjVTz8O&;hOy(@x-yAJDpcZ zBO*)w5b{Az8dB?bXa<b1VqrW}kDz@mlLyrYQ#R=gAtMvuY-onB70RTITtW>9%KSxA zb12tp{bl^xDJH5ei#y&tU51I0=0@`X{z=xUivYDl>#4n(C-tV$f%b%d3?1AB_8X+v z#ffc3P6{Z93nq60Mm9dQD;8Pi%2*u<H8eoSN?L2{7kiyu>WEa<6V1hC(B1;bOIq_Z z#5`ksA4fIPl@XJXA|@;2wAlF2Xxr;ER+*sckbn;jF+Q}9Wk}f@Y++Jv8AuP7l>P7> z;Xc3;j1yGNbEG}Skr+7%lLr+V1V0ilGN~B8BxY0rGs^xAkw9A9U{Tjl1DFvxHbjqN z>|cu43gOsWAb$!SsW375DWq~^OAm5lY$*_v|3!g9lJod8Ghl=^!tvA~v8wUI#c59C zl~ByFW!$;8iZ2aG)Q3d#+F?c&S;;XC?jyMuRLdsoq47oildhVf1*j16lF^c{V?&p? zp(+m~?jhWvW@r4=@yLnNw-fcO#4U<wtcM6Wp!|Uv&Whiir-w#{BB2>tD^U;52d-V1 zMthNEZfS)VjH6H~a?q0sj!bTR0vy4`9N7=C<FqtrPpo7$-dB0eOTwU{A;Jeu&XOgb zFoBMatr9f)fZ2_L*|mi*gH;p9ny6o+>B#offOHr`cs3noLP}eh3Dnf0@?<?JXaqQ` z`|f}n@=kzb{g2*afE$?y9Gq?bdjuT(HGmNMm~-H4i@YW<fqAZ|++{O%;IzgMF~IEs za0haL8`%qR0bcdOwVA@KvBUTS!VO*Fp!KYQF`!_e9XM#R5BO$?HX;C&p9S?st6riW z*$}`2(fNyb*^Nrr!d@92!Z!t$<#6sDL05=#1)!7ZCl5M@S0UC#VBdMXD~d;+^&H<l z+X3z+secB|(GK5ipe<86JANH>13#oU#`OlA07NK*FisRWo+@+mldJsv6lU4{%;8T< zI6qf9@z70BW<YKI+oI>D>ISnpHgu(CQLkAE{a!)|0AOZLVrD`{->j`C%?JV11+$Z> zqV-)`CLcnI;7_ze;MD3xmhx((R1nMJqDLA#=-evNlrO9dCToCOK#sVj{rD8KL2EQU zu_kpA7je+dOM~c;P-oDz2I(|6Q$>|h7*4a0BIqN8dU!ynhZ~{Zp|H(mY;-wgp6GBZ zXK{a>m%jXn#C<@}{9GJYD{daYVn~F^K7swhTwTAzoWj|FhQH%)B-%6(yDI}RUT#6s z9Xg!P=#D&#I^tT?0pFqy=3IQk-I8OGTc_h)jQP9Vy)(?&Xgo({f03`Xg$*K_?++Yg zVf!wAGBiK)R(@4Jvw>`^>Egl|$NhW$C_fc1)o?;}iwk)uoD*S0j4f388b4m9ZK=>O z(dvGO?q=-sQcj?NIV)2)Rwf3Bi3z*3QD<&yUK$Swr7`him?xGvf|(#w>=g@oO+q(A z=QF0)a_t%1xfUkC%&e=2{iC2wBv@sByOY!iw8H+fNV<dtREvb*pR;24<}%}%s`6%C z{oAkwO}s&}kZQi^w(&|g{rs%yDN;S)Xix%)w5So9k??Mdw}OV70lPrb!cya?SQ!Ep ze6Vv{Fy8`_KFI;VNeSbJC;YYQtGb1$Z3)M*r$M>P%;Ig`=g&-|;p!<ck@QkgS5G3Y zmYHa!fa4vz50v`qd{?c+j(q2(D$;qkhSWgeA8-kM%v`^fC}*jusH?8;235(gk}d>- z-rZNv`E)_&|HqI1e;xor5tIPtK#2Y#>hJ#)aHbKsk#l!28DKmeT*I%iC<F}2KVW_u z=D|B5ft!0h=Rm-7b_YC1E`XlO!NUq;owUoA3SgIlw3PZqmD!}3`D=354`b!hx^&9R zRDSmx1=px0*)yHpKP>;bZ3Gb1SNU{{l+C?wW3Ttukrw1#@<B~a{mlFZZ1}kj78m1k zi;mHjw^;=r^Owh!))ULh<DP%Oc0gYa=d0D$0nwK8OUE1;o%2uJNTes#u={w!NNtfj zq2|upDlgKGxiy)ul^og6Zy(jl9&+`1O3Ny0czbQ-MfL(OU0bQ-SGyVyL~gu<TSyHp zPmd{$HXX}r$5cd{?x#6pqHLDI(Mz3=7jz3$1!}`mifNT2o0*>w)#+c!{8cO7n8wGa z_OJ=gBXa|(KDznsS||+(VMSr(Z}Zy)9azur06&nyr3Lf+P3kE|E;UAQ2pZJ<6>aqQ zHCkc(Cv(G#-Q8Vx>m8Qbw|fe$nR7Qy!;*g{_MR&7;xL=7l_)`PsknmP@G`#5vjX zxAD^EQ@E*TsT+3Ax|Ui0O&<9xd!(kH)!(oBufh-euK#`NzecI>imd@7L)Zqe7htjz zZ&HE+l^^$$leD?uF^}rdyV_Y+4gAgg>Q}t=d%U#(oA6Kd@<+``ea|5f#|-_&Ewx*R zf3Kv?LaQzOUP=0-&91GS$TsTaOuqAq%FAu*`X$1oR8nS#WT`jn0LXO@w~z!UB3oz$ z@f>9nqy+p>B3I795G8xz3>-N@wY>`VxnF~~t+|yg69@f{1ZmOOZbl+H_b$p4>3B_D zeJg&CQF~>TNJLv$`?rN%7H_M(it8&bOb_Xwk1rL%CX)XCTK_=i;UkV@7ubg3(Uw@{ z<%WF;{~-H!DhU4y8B8X|{HrU6^O6d$d#%5iaI?~6_2%i1`nv(_j2?&??q>>Ol66O^ z2wS5qO4+?BNT^MswY4y-jUeYDew{L$h+;W#!L9^M14Z*2jLPhr%lZLgy1wClM&9ma zkIdtl%0V;A|M4!Bui=^OOZ*A&Q00ckk8v-R6b#$`jR}<=c<}!K%B6x~_K|#j5az&% zhA=()m3^xrhgS<#o<63&uWD<o8hABoZ*~)Jb(?4Mw--K51&>6SqAiaZUPW8}-SCRe z|GQyU`hspY)Aq><^0+^ylAIm#g4U6~4rvd|2+AxDQsJI#@^e1LdiZ^-*)p1})t|4x z?BZ2F8Etw1n@Ftssc6%ANOwM)zHN(DE%U0D`D^!WiY8EkSMMX0U}AOk+Gx{TQR@0Q zxtCS#^jGd%7frOst1vJGRT|$UEeQKR;v#(w(b05;Z^{-!yj=60$B@lpWi;K7+#Ts# zB5eO%!vJ+dzec9V^s8FQ$%II&=f6$K7@FMAt6DQ^HRx1p+i$9g7fq}jqiwh!rZn!q zS`+<2hq`bPuS%po@%!Or{XnR0<k~R_Ag5Y9POaATZRd42K31uH8YAFZ;}vXT9v`(g z9qXs>$NX2Rm+1QVJg~Udi*#@xcO-uk9-B=yE{?>iS*sCkx)KO!A8x(5HZ>Us#v(k( z>9X^nmXn9$E(Vub07Ja4zaH}yOHS4(O(4o-%Y@2gWRb^mBI2fx#_@svz7{!A>K^7v z%BApEP@&vk#r-&0LQM5st5+g64vJ8zM#d+s0;~8iOdR9TVj5W*8ivXX{jJi%GyW<j za7E{q)S$}VPD^p2;b@$=VyRO+#Zxe1WR-2e=~b`7gRzWH@GWNsB45Y=W!m!BYlgt) z9GJ!!m~e+Yo_&S_8k-pWU2orkMEy#3%lx2hKwx3HAx88#Ax1Ts5DhU#gC~X<pJ(oA z80QWvrvees0$E+U>;fRI5hE>*SGAlidXG%9@rTmsq(0F(tPD=1AoQaQxO{jjF7Fy# z-fIO~ZcddPE){^WIgRoe!(^#5a1;5G^q(_50x&E1g?$EX@k-fXTZDjOf5<@<!1eIT z?lFNLh>{Jd5Trr)xtWLF6{32->}mkCzjl-^Pm;BfPDL9(%53P(f)=^`vS=M}-G|4X zrN{RfH2;=)6`ixepvhYJFKA{mMdnrk<z)RT@L#YqNRGL{&%~;hG;f@KWMc-GV@LnS zRsnJDX=N@Ked0bgJ{l)}Fg*O;BS!`xodCuXa0DPZPB=|5cq~@|Ku^crvMy;LY9DU9 zHjiK;Nta+LH5~2&#~~$p2MQpWY=n=psjv$ENwJPnh*?=ARYcT6u!3FY^=Bde%SHSR zgNp-Ju-q(6SVoN%P|L9ejP0<9V4SGhDN)u|%qsAJoK|sG7Ncrr!~8hmD#{pJWjOmx zIfG)RdK($0La^9&tDxodzzS)AjM}(E8n)rd>W*l$a6X&hPryeS-()C$NWvl!x*vkq z>FY)4YK_n}RL0V0i_kSxULivF1|<n7NsiD>E+lk`nEzm9s|bz%CM0ZeK<H{i`Uj=k z3otckwW4qhpX^29VmS)eP&py)|A7Jj{;4b$^IzeSiIR2o_O4F`^7mvfB4RQj@&tb; zdh93F_&9X$Y8FK`O|k5Hhta)>XCad&%Ak9iJu(9)Fb2#gAF>i5fdn-W!7<1hHls!V zSnto;za`88O*e-Jvh#xj5IBgRArjU%RtNI@$UF%g#>9>I>r+E24f)mzk%G0pd~$uD z27^rVS75+%icX<V2FI=>2v9}H3Er`~ECZ4#E5b7AL}WdXgbezu0-IJ*BP6H7Bw<t- zm*EMUL_SCM#3$XV$)nVmK2ge%T{Gr|2nAi;8})B?boB~13<(<sc+nHt21BnV#!B=O z{Q4+UUD$BfT%v(Q5n@$a{igz|IVPl<(8~czV3+#D{}~!g^C|NffFnJEBZHx0CBRTT z2`qH6AtU+*@2Q)cPjlz0VK6XRh!m5DD@*}{ETu_ZQCU2+T~j?6ihu%47(sAL{WBuJ zP+Gvl{r*gBny3^Mc!uY10MZ1#*u2;5=0}*({ACoGO~U3mW5RKH;d~AxKn+)~(O_<` za-#v8vl*Pvc@-nq*kO4VAiM?B+f8kJUN*Il3<z=ufQvS+(B%FHjHh{d7-`u>PwXRK z@qQBH)9~HoN=25E-!JCxM!!a&W;Y==#_=py8{R-HEX+Bw8I8j%ud*wMEI<U)C^pYR zrxn^4(syjEL!sVIZbE7^%6<yt4rPy}9?X;WGDq6UBN@>4_JFqk@)WiMyN|3$=WBi! z@=2D+8=o{0gb$MoL41<5bOn5pRS$?I40tW6t7UH!p9C{DsTSgh!bD+YTC(*Hj1uWX zJn=9_Dd&K5C<MF`Pk;#>P6Ba~N3yZqWh=`w%kvM_RlgQ({urb*yViDgL4G#4e2Me} z1{Wvb8Ou96giCh-m&E~G{^`TSwpaj+F}<-Gn2LNpgXkm23-J|#PWL6PwakF`Z3RwK z5$u>LN+ckyc=9m*BpeMpgm=NwCr5bN!y(6uSX1uEnUS(Xb@kwii>MPg56Nv?&O=7O zu&K%f7*X7?d@7nNTfNSg#3l8{$P&s|n_RbEu3o|vB&6Cp*(vd(XH-Pmg}@a-V3}9) zEbDh>9!gd(jy6k!&i=sC00K9$r&i=~$DR@ad#W+^1XrR4f^sX2YI4<Dlffs#t_rzR z%<~WCIZ=)~B?7J#^DJ*pt$z^kCi-MgHT_0yH2J%svR1+0pXhgT8C&sDe*#I>Nod_Q zYKr7>Sdn6%Y9ovI3wLVlh*aN(P~WtQdDBxEZ%>_%Fn*FIQy`2_b%Gx}N%Y7J3K)!Y zGI^EpBqi_@Gm)Sz>6|8v;YK+!tWcmpQb%GIP1B$<XP|4Vb8<Q;fFVX>D+*uEKp}%N zm~M)QeS}iF((5acgoPSe&V4Oyj-}45baafcpq*NtRa-em^e#uC#Ir=DOio{_asmU) zxg_DmNtCdX7oz@R$4cPnf?UiX2SdrWao@>z8vl6+kT&2bW8?+rALBhng2`*BMw%Av zifLm$YBlprGDs{s{xxWp2AR{0WDY5r1RuyrfSj*Np`K;6WTa}`jAd<FWwEM{+Sv71 zitE+eBY*HB3i2#xP!~n2H%FTe{ee|NqKgnpjUtYqJ!zy2lQ1OtGG3`7;ABH=o~FcU z06~{k071uLKqBsE9h_VdtE&R|6dg-8xtnM6(J}7Z!;R05l>RaU2pB!N1A;3F`fzg6 z+?$%ze&}#&QttGU56~EtKIn)M6k$@*seKd_(A*hDR-~J-{jAYed?97biMP!ipcwr; z`8^~8Q7al^R)3=k2rIp5F_<Ds0dra^saJ$Ju<ptRjB|yE0Mq;oN+wk2*BnSQ8EZ0b zxlxXhz$JS%PD9zdh|7mh9Wo8%Cc+G(cO;EZ!LZ6hMgKbx7L!jFA0=zSw%YnNcsv=y z+Q{m<^pH!^6C$V~fEp20I!bhWI}!{67z@Rkza`-YkC*0XD^y`;xwf?gNusAfl{7sK zu7K(<Pv095h!@1U><sk1?9sUN^74hrcb5TI!EdhYH3+kbdc>-wiO90L^qG0!#jy4m z^y=E<%}b-r9$YYSpWa-To)$;(6ZC#|0{CezATq8Bj3aaUT^!l{T?IjDa42a{1MjH_ zg3nk$&U+RFUG#?&1dV7iZ{I->1XbmhVEco-APAbW=Sfy69##Z`Ag5ZrVmjZu3WDXm z1;MR(K@gJJhn^>y#0ln34g`FVh>=MMlN9r(B?x{2Ps2Q;52v%MgUK6rhjLgFV}+^M zP#2Ro638#;*d{6?E|(_mOPyU=n=V5bn<d@~Oj#|D<hWin-vd2c-xode&p%XKy?XjD zvy073;`sVErqaCh45^*Q#<6dWVfV$Vc5Z|Qw~199>7oz*hPfvL*@RK8>KDc}Vym2S z&9UzSwKFDa4pXFtSbD5amOduW(i5cn1^>=Gt_%vWohNENade<MA!k_Q0<P{gwnGar z*+rYWU+IgZUy!!YkExYT&rC?qoO&9{1IHO7LcU&J$k&Gjd>yq0c8<jXY@`h)_#V#A zQ$>}~r+}&VV(1{;S}}Deg6%|EY!jluaZU84xG-HwMv;Jy<T`ZP0@6MmVi#J5?y`h4 zdwR&o4`bjmv8{Fddt%PE2BhHP*;P6IZRGXykO!vJ;~^z5BDx~b1JAwysxZCC!*#$o zJa}x#r^wCi=y;8EzNvEFo7D3GuC5YjXPgG4WQbIZk|jbJ?xJf@xwpcV5PSlC3%Hny z0E1!%=TrnFA>&U50RR-rK!J)En$;*-9a#drY?WMIR}iBDYRia_31+1M%q=Jh!4_dZ z(?Iwk;v``1M+D?`u`{QYi*Nmm<QVF&)a7n=*mLl5oZaBHG=Ntb@WL^$h&s7h>osO0 z%v)QsAJR>mxBiBnQ?^r1d=}Dg(_vT%u}2$hzPkG(0`0PYl5jj;dBei&an`IF*RE5- zc8Ljw<Cn93qQ{4$xM?t>XbzH?Mv>{w_i7}w78*erRSj)^95IO^1q4>n8Iba~Yz&<( z6j9?H<cvkN^=ul@L(VYt&7*#2DAMAy652Z#GDC@>4P;>yl`M_5Knjp66g7hP^frSU zv8~duy%G3v#YJQbKKp{0zoaS?2n>=FZbSOVsnxWcnn)AbX<Sd4M|~N##24+kGWVQP z>^Hvv0oN1X4W4+0YwF{i%T*uas$-66-aswY{)eFUGLH6s-iuE~kK~#~*1YB)5RIey z=LGfVavjzed(d8yddT{rtpS^#BOX>ylmt&a$u%bPs&<HXd=y(ly@o_RhRt{Q=W#br zuq#HjX1|Q6JY`<`I?;JEB2pRsjmJ5eT(!8Mx^%Zut>OoIRrYTzh^R?ysGobjR;N6M zd6MU;&G{8x)f2o!Z`V^Hub9lIFYn6PJDnfL-s|`b=1ufQT$WYOn%+3U6bP{%eIt9f zg$vgN{K@W78UK%c_ifH6<i0zm@Vm8q_n@r_oTV4pG_Kleb2m2{Wfyq<a*f4vWOB%M z@@L**(x(Yf;aE5+G$(%As2nWf?IwR_7lKj&zgCpCBN_$5Sb-!Pt!o$cSi{4i3^wF~ z?B5X05YP?LpD$7B8WiGa-(qn=gFxF8a}9DL-TGrfkxuel&R*Zri=H1H((~&?&t-?m z(esKzdj3X^o)ec`)E7P9TU*b<KevRq0;<izU-3S+6f~1v0X={AUFbPWY(sjE4J^o! zRG`o1=(!}cK$#UiA1+pI;<C~6=ZHH9>G^l$xHR=5n8O9&JUcHa=fJ6HeId`d;dRhV z4Jw3YMMzJb^2QZPhKxP{lf+p899cT;$SHS&>{+lx9~-o3ZheqbZ3@ysW}`mHX&_0c zhSn<=CJS;p8$K&V7(+}~KulR3iL!S%HO-p<j0;vIBXB_}86!01|HWobjIIk0?=Ujd zLoJKtbh23VqLna4NY*8F^>XwEY6dDs(<~nJlnJ!yQeG%Cu=M`A$kNo9%0m9QAH!!) z2FYp!;3yrP3~8pLuk-wkflO;f=;+(oVQ`Ayzm}b!Y5EPn%Dze%gL^Mx7wiAMsy?`5 zw0RrWKs<wiRnX`|j)kWJ_MJVSN>k>^5*;8*9Mf7=A@|=qeQ6*-v}X?l`(@<58$cl^ zTuI}45c)vszU+O4bOLwNj;cP4@zLh%$>&1`{Op%FhVc)D+Fd#ksKwFRC4uKtqflGF z6fV)+gzWd}blIl`n(S;Y9RIh`=-3V?yD$43F;{tdl`|9Pwa1<WOE%-*7f`G3^SB$` zo80>r!oos*#lG`-cfTIS+2j5=cmH24n9JZVdg=IG0lh4olhDhJ)A97GJMhu5*=u+h z|3uIINk*#^4?*wY=?`$wa_=P^75=b*qnD0VBBMNJo-9;T=kq5bB2mA=A|8fFwA!~i z<+02=S;2f=?Nw)@O;6y*k5w;s2_&?){1Y*SJiv3;diyrTEb3vWMLn$X6!!32OdBw6 z&)-$G&TrqhA(~hjuX=)IS^L%z8G)zlE#e+lqJT&5(2gWrV-J~EY-dD1>_t##$zFOf z9&hnj*x?{Cx2pD7`l?8rCD$<AA>8E&o-tl;+_O9|xh|J-R*WK39Q{GNdO*YjyA!TX zq|RD)Bvw;h;R2laLAd}G0us@-pN-G;<B`(%sHJ9SCB&}l%wXIgtmV!CR%+J4G7r07 zV_PH+eQ27;G*6~3GAkVB)Y{Z^Orf~=Sdb^rd?L~oePpmlK2O%m57bWg`;YP(cbvk+ zE<3()%PHfu(K#1IN4SjxSw~U*8auzOjYZb6zkS=bfwBL~-n+m_Ro{323@mY1A+yMu zprHvio5&(In2>}`$>R>0$?lrLXkrp$O=`dpYxuhqHMd%e?joLytE4fB?PJsQ-?Yus zrX^1wgK3+~4)=@V!g5(aWC4{Omb+Y*`~Us<{(k4onPovull<+|@M3mm&Ybf*zw^6% zzn|~Dc0b>jq!Op{-GlO77gn@;uLCl|*6*T3CdFL4rv(Y5>11#N14VZU7?7^8+`2o2 z?iOTJZOna2{!-UQJ_i_dZ8H83YNX_xQ_*DPm>hm#GE!ze>rOs0L!tch$e!+oELGE; z3C#DPv!QiJ3Tfb;3mOuu1=tzpsc$fUgLLvKzI_HWSX(Bb*kbQsd-$%mr5FdE9SUAH zh(A@s^}$uwNp#kBT7kR$?rEcfcgIs4py=IT+-y@8la;B(8du*=og7A>oe}UIxN8o6 z0TW6*s2p9?^C#!ufl5v;eaw%0`cJTsk`MlwA%~M#3_qy#%X)w0r_O}rFsv3zwzZ6$ zS8@(;ii<`{*_(5~RewAf&S)l48A?Xhd3och%53iQBZBr|HIvW7>$$h-(b-&M1u?1= zW?M$9Yw6LNK(zxG@FJRZ-cFd@YF^7>X2#s4;b{z3k(f0g6Xb5BYbnNe=@eed%!+5C zlF}b=OUapR_fSfZNQL@UX|jS_LCbt$P=4Em>00!{^^0wk2U88WwXDk470T}V1$r=k zsmP<<Y``Sai5-;%RQOxT)V~+fV}_66`Y;+4?bmNJT4@K7M{=&|y2~9%X0zg~BC2qA z_1KibZQHT<FCL0-+7Uq7Di^#d{n-#U<cQ)PCM;(S4Uq8qs)1#;k4K)pk8xHiA7DEe zMFv~F`s%h|Y0ns&4*?{n<sW4mqneH33?${rmStG&OZM?+w2w_!udpV!U}773b;*X_ zW*d6A+t5R#buAktwkkJ#w(~p;psEdtCEtS4l=u2DleUhR-WRJL7{{mpX!86sX?%CA zkf^I4E!%sK+21{NNbI*?9fhdf4}HLE!|j-eJ~*!=W?KMJ^Z{eXF(!~<80&^%gbf44 zqOEX<AKZLi$MP4|eDuX(d|;o5t!VX&o^=L2S@wInW}z73AagIe>h6IoehV82am`bS zY%Vh*g`ZuXT~F=33mF+!eyaHeE&cHWAbS(VVHCMY$QuPS1IiXtvN-7CmJ87XF>p&c zvR$LY$eiL`d7ckzRrAh>?bG{<=|pep7s^y(+e2lz%~N4F%f6QdzBJknZgl)+$RxUK z8w{=}DGwzY1ASrD6BD#L@-r&@6Wm_@0P`1^F%%|A_f!^I^GZjtz;D7je~_2iv%^_y z2$p(osu7(%U)ZZ3A_V`_06UWVbM}*wpP@{I*PPn$!%P@@qd!H>Y2Fi{{R3pd7J(}6 zPZ&=&_X)^PDn@@&jsS`FT+A#Ckun5H#`ZouCtZvGUHyW@!Em@>W%Y`9bW5#taWypO zsk`eJSPJ!O{+?Xn&*TGO`^}!>A24gkKIDAIwSmHin7zkqf5T@O%QLvxR6Pk>PW}Hp zMIrMfnh83JBy@*JsGdM1bfiKgA)#zC?Ji#OWNGKs#;a31%FMwB<<sK1DvWgd;KT{I zX})JrMZ1u+y1)FMhYM{cbkAZsjH)%rD&weH)!9_7Qm2WkRmZ5>s5nWhG(wiL45q>t zMRHc<Aj$jB3>PG+ItM93x8bST2+kTQO6Ki>@;@qW;8gQs6vNmJu?yNNiy;!DWQ<E3 zk(_f;4A-J45-<@y8&~$CBDR%qei8f5YJ9kHm4F%_S1p#V3$-rL?RnCJ%g%=xKDrFi zH8;!%NflE3VCzL(WCZ9hM13Hu0VSxf9Kd3>S5O~TS83u`rjp;qU*@{~Y%t!YR}VoC zzc>VTLUj}m9K=ptj!u40elHMW$A$H+*@`o*)2}*{e`#=j-=I{*%jt@(8LX{ub9_6o zCQV&*_$8LsOzm?d5JJL<n8WzDs1UUuPAKcdaWa#x;MvO4iI+26mRQiUh<UR0p9ECf zF7`>6VjBQI^FBLZ%&FleJHX3xPYn}{a{C|^tcf;)$5BF15sY%Cbb`Um{$tyK>1t;i zjA6RQu<n^0+=9kvazIUP-9J%SR+P&;PMj&6cp9PvT(4joB<J)nA$*5iT`q09A;hQn z#n{CvU{pH5-r5m@#7M)?&{}mvD6p+eUYAeTEJivo74i?nZEzsUPQ?Ou)tHmR2TV@1 zg>u<b7aILSlvtiWX81`g!~hg~e#nLAp<f3=`n4MRMc(sceaJoG8uiN~+JzX6Tj`#} zUF?4gs+q-;>H)zw>-DHm???WMnM}^>o;)>=B9sdtWH*GGfR)KCl}nsQd3Ne{voU_3 z^RI0kLKLVR%dWcagr4mM(@2N&>e(b24vbA6Gd8*1o-tyR<$M|f86h)uj7=_M0m3HN zdp5a3{$X&T6TElu{<5|v?<8E<XZ~R^HYsn<kWI34LpJFFM>uYvmiqOX#IingpHw6D zKzYX|gG4s5O^=ss9>*pww4i1U*Zo%TwAOviN@%|L5>mR@Sg_GneF4wfHke1xAni$< z<k^<&Mz$gwlHHhY{dA)F*c+0Md|Lz<3qkVErP-j3-b_n=j$9|(%cdn~v<+YyV*G9x zK`CvO4Ylp}97+eB&0W30f|@)bofk}Q9ddoL<weZ$c;Abpd@MnQsxMtZs~Zj`XRH`7 zEtOn9q%Iw_H+P+M7i}NJMK>f{e#AxKfm*3_zVAMNbs!N)$(C>XZ)Jst`NVTWzaDPq zvD3~`C}Ivm!Kix0Cq^X@g${y;O{B$TBvciTG-4*nbx6c45K}|>mCCY`UoSjn%mOab zSAI3zTVxhhFpCjASGjctW%2@Hl~G-U*|r$JScQr^B5voBV9&`f-lR<^4Pe<Dilpb+ zKAfV2^c0NrI7o`f`dP;p@NkjHI>dTdDM<S1kS`c{xkAbbh;9nk>YAeD=~tDr`<U?g z($SEHB7a_<&HX>fpIw+$L7`6meBo`)1|aD8ZSSDX`P3=nZ+b8e6Z0@iISc{O?BXd5 zL%4z=%20C1gNRgq_aHVwD*r+RBhnRJ!V!@adVk>_Qwh~M^7wvWo%%1WjKMjfX~RO@ z>6$hHx<P2z!wu1AH@JD67Stl*a@Jjk3zyQijmtcI+FiR(TDyJ52X9$f#B5}qKElWt zfOYLjK6m58qFhuWpEE{XZ~G8KGgwePZNtO>5pu-6#9ZWqAe^NPE(;hGH^Vy|bLk#K z8G2xJaWEb$++Ng!HB9aBI1n{aNHuFZjc6VMyvWW|%jrC6;RU{j@@C0(HJ!O9?15z+ z>V@#=szLs$ZnO8e^Nsd6$}DqIr<9TPoTu|Ua0Sp^-p_a0pI}{H)^TjwE|B0f`)1gJ zuJ{{&#kG8oweM&f&bl>_x8&?<<OLCoyL5ITQK&Nc!P5mC-9^&w1}+#~NVItbxjrNY zn5-ZXm8}0Wg(r*r$di%QDYAHZMOZmvBLAQyA}VURwQ7I?(85;Z=;*QieMk0tU*z%V zzLLl7)+6lJ(-;-`!+QK{{R#Vx3Cj0ilvBZlw>QClr0c;L9$Wmtkw5w!o@7)|O^p<t zqVrd`*|YO|x!wAGn0%49&b{4}vmYZ~wvcl{vn_fw#uW6iBSanBOZoFh+x>cR-~%Sj z!fCmc<&|nag*EDCJ{1<Kxk$g^n7vfswqZTfk3*Tsd3mGH-hqY`03%L_)_GFl-KG$C z`~IV5cj?oycpC<X(w>ePEMfsAOcxizqTw$aEHeEP<C%QwGE*yI71)?RVYp~V3>S?Y zDU$3JOYBmHQ3-Ga5fs9j2NsZ@-$e)}UJlVaj2NkC$KV)xXAeWABW(0g;rq-A_cyw; zR9ayV_uQTd2Y$`D;2zuPt6ZgFa&YhW50*R^^a#NBdFb^rqKQ)u@)_O>>2(#kbmtFo z0v|+3PNO15%GRnl1bZ}LTOr+42z3i%0J^1*@~y%~%(C_zpF+xT&vCx~_nn^#t}<Nr zxTn|{$ofK<xzmCVG<aNjsBnAH4s3c<Cl8;cN5zKuF$8GneBr~qn>=FYI|^nx7;z1B zs;FQ^%a$Xs>hz!U?s4V3#eLe1xFn`}*11k!#e0aeN%0_Vlnxfw^msvC^0)i|eg`ij zR3U|ndAE(y^4D14nZCkg(OB!BJ3fcw*j09;NQ&BxgXQ>|pPctt8Lu0&Yk-ioaprMx zasRn?-{tRjNHz~Y9<Qq1_>O#vi|4xbwvtR&{l6E5U!V5EXBW0F?Jl~Ce7wDDxOj4q z$IkvwMf!YBd(2O(zbEq4zdgo97RBr_t3rFsSV5jX_L$ye%QK-p=4lpT(H?Uu6>LZy z-HJVi8tsuiW<#>&Fd`OPidfO}*keYS37}|?`B7w#`8@!*By&OmpyXAu#~3FNj5fzP z<2n|q<~Tu&14sfEq?Hmx78!?Vdu5RkqJ{YP17$g{Duo+#L++Bx_6|2?ZszJ24A4e; z+<x%vB1H9_<N#n$8gtiSk0Fa#>ktewci`=|Je#|@Qv3wXQes&{0+qp26-H;C6@i(S z@4hI%Z!mN-J9I$v&TEoSwK+t{--*BP)aGU-H4T|5&QpnkiAon`Y73Ylo=F^)G#RBr zT$-%!&F>qS--$?bY+5>~F!RhLm>VGXY^?i1ewf=x(u2r8lbyN@TQMRi()VygiMV}c zb7Y_S3$xGkCLj5U*=Lr@&Qfzcq7u=*zvqIi8pBgKcgf=2!-)n37bKs$v?2Gk5!u|7 zN-`WFFzv8`K&AFJB)q{IgyybmK=v1yf|b!JD`Nm^dr_+<dfe03o=DbjC1<(xXq{%l z2`x7HZp1q?*MI~4-S2w%EYl49M9-a^|26C~g!UBeGPBJtGY5gn3F5Q0j%AmrVmJ^j z4MR>$c}n8!GRwU}#RqL(vatuq>+LcPtuRLS+!tgCez51xPs<lBN<Ot*;&yqE2leI) zgZVOcK=Zb1R8R&TwGy~5#81l!;9V%9o#|ye2X=vfWqLUP7S{VVQ$Ncj<23q(4Efx> zCSO|o-6$g!mbK@KOf8MqFG(i~Zhd+C)<x-BJoM|a07yff^7?6urfVR&l2K()NlVC@ zBDRt^fZ12Eb_(Bza=Kx<&)Z{;m_5dJsJF-5E5zxYTfIHzUfE;h-Wu9tPR5m&BM3<7 z*B)a#IJC#GGhfLN!>aq}E)!j4k6C;^d(7g5(_(f&VdML_AvaU|m<3y@Fd%P`ahn-A zCKX_-Vk&X(TaGSl<Qq94B{8!p(NwM%Z1iiGG0S$8<ijSKL4iE)0KsW|UBO35GpBfM zVKxu*{*2Tod_HC77x-`{aU!%fNQI)rm8wWed9&IR%;wfauWc290^q<!wpCIIDWh=L zNZJ0#)NbTV;7x)3u?=%(WSkM}ggTsUoN>7q{5JS|Y0PN&(W}_<+As2t5<pGYETs;P z-}@u6$?lQlw_96&P51Bt=GgAn{~)*i@2F(dqV+#9TK_gs^Y0!?^Ye!g14{%KrWp#4 zrnMn3Xa&pI0RXSX+<yh&Yag#O05BOsj%so9zEoq!v1c=hQ{k9t2RPM}c0s0=hU@pG z6M1LQl`T7!e~}%49khN~8mc1OLLprXHLh=SOCOtLa8VZZEKinfzFKSl2PS6Jski;x zXBN|)bJ%AVNA{WC<m|r(6ZJ=oO6)VIL;H;K<U2Ct?7}%GkH%xiy?OYOkL@JA1@VO_ zr(Jv@M$DV>vS2L-=!LMGZ#U9wT3jvJr`nhU7Ou03GYd%(US}EK<tT5eb`!d|4y?T> z#gyL8nQ&@N;b{ik!a&v+%PSSs5e~TQo;ij4WSfcP8zZJiVeh7&js#!#G(3h(d@cq) ze2%ZbR3xV|b36RRo+J0@9V2wphTOG0Q<oU3W1{yC27GkM@CQqQov>n*!7PDtAuF|l zX<KAjI3^0p3)#eNsdU1E8qf!_5O!W9emhWF+^)eD$NW=anZD=#!Vk=3Q)ejUA*l-; zE~#Q|pzn*Q9_v`&ss&)!E(4tJq!GSSlMQldQ3>ZPHb(Gdu}KG8p?BxD)|?5gHSD@u zUNn+7GNy-v^DAOJZns&A-G)9UTejKiizAnt9mSj3A95*<aM_>?(h?{JsxugEr-pce zXy98#Gx;#&jSTA|Htr@~D@3gly%4wOcs=dbQfOTU)OZvlRa^>Z!h8=@YRBMA#YP8W z_9TP%GOYZJAxDo=bcrd9;|Hy8p~X70<4iQ~9S~V$#{rx2uqAdJ^0TuNy&b0)(iYiq zmY&0ob0)u6y}HQRaqhjw>^RU4*>Sd<ZO7@2>^S$C9mfrEYhOFg*ti|%L|;43HGuK> zZfAdlsw>3~l<t!$JBs^++#G(NV9?Z_w|(M3SFq7zE@M+8-xlrr3q*N`xcpPHhBJX1 zi~GZC+qy1-iq=$g#&>!9J%8a{?CK0xfhXg3oEo-Aa?S~@ezW7$M0T95{9<fn{rT)T zaf^psAK^HsvQt;cl+&`>L<V#zEpJBir1igD;{9@ngxAkt(2dc(3_9gF-7CeMj`Fd3 z%Pu$<=~JnkIPJ^Sw!=>r&<?Ak1bJfFd7yB=NowF;hm-c2T?gp=cg!ph!0b93`r38E zImTz%r0uUj^c$wKq9m~n`6^HOrESpm#F@T!oofwWrUIM^poNggHt_RAa7vrOl5Tct z*EJj(Uk1c1!>{cmn^R17hi9_*S2-s83<np$!FKSHeMfd4)Hb`#uH)@H3p0t6eVMFa zrho|z*YCuVlX3z7Xs%IPBepE#cpfGz;7K{XbS*Ze`g|N<qRXcCip)C}XHbX4Z~8!i z@O|KN@r_qu-x=uaI~RHTjvUsuME0GpiC~+3XYqg5zVkiIFzLSboprBZ-}$1m;?zi8 z`-krHA36KZ4gOnMp`K63DYEZ$@z{Xq0WcBM<6_ony+e9UlZmCug~Oz3HpEo9UI?}d zUXcqx#83>Dd6p8AJNYJ>PvRE&B#uD(6<1LfF_Pk4GI;B7FxeKt?w%_(A5dZVih|qY ze8uG>fv*H+-+8rsC4(&vULy9w=8{M}#5j5LcKC|-*LxGt?-}nErE;H2KK87Ke?%M> zoH3y5B2;lTNW{{_Whz!X213M^d=VW3QJ-TBq}~{aBSSvUr>zgFElRW@wmq`NW81mN z^Z?sC*myI+AWQ|ezb+@+7xW-9U>LCCLHH~ZOCXm45V?&A$SU8bUe9Xlh*RPPAgBrn z(l+5gV7}`jusik*(cKa>`X}_ia2b{vhl`AyzRTNvJT9+F1-;mNLVcoK0E%`WV`}kT z;@X)OjKR&@*?oSxUrW)^Q)~aPBm0l@%(U?;Y5?S!$w-;t|MYWkCCmNp+D$%H3mam% zkOO*y6U{r_SOFrSR1-B+!V>0NBO95^ga|i!9!}KD%lp^t3#S{Ua!o}qXu<4Yp~(Li zg>vh29dr}>ino3_o3OX95QVY`@FV-mbKbu4B;PsTyPJ9wvYoEbk-vu$>Fj^;XMbC| zNN2xsmKd)a@a>~e-@}=@;$DBn7T&EtPIijlz~Y~Vz$|or)}McpJ2-ofe*&RoXYZl+ zvhRq1yj5po?<wQ^w7F>)@Z;@04u@LEPl!a>!lRV8Ei!%>5h>hljH=G)jOdHE_c-VT zmFHi7_MWGT_8v<Z=j}bQ`-(Ur??=Q5d(X+3z2^;no}7{(-Fmy|T9t0+sam8caCli% zPe8hGnF(Oh4$92!p4xs9J;V=_-iGuLJ2#h^^}F!Asl@9f1h{QpT(;3RPtLwpcAgY} z=AO^K<ApB^UlAygRq$zVM1fxyKF)e_OulH(Ig8oj#9?3tlg@iUia2jHiv1PFh4vhz z?wz6CqiATN=2^@U1VfXz1{yj-nX7fQ-3%WBN5?UuK*g`wDA=&sDW}|i1SFIZKPin| zKLpI6P$@txp<bYQiBBd%y?W}E3dp09c+PQoqhB}EzZm`c>+pFa+i1*Aa!xq-0u_Iw zCoXqSJh{{0prb(ITYdD8n>-d4+mQ~EX9XXc{t@C`RprsJ_zln5DFVbZ<JlC!VeuQ( zEU+8r5N;$0?Dy@$Y?j(wqnCe%H1dk}o~0puW+f>b=<KVx$}pd|_Y8FQo)Sody=P3( z-ZMOI@1Z?sMC_xVHS6INgmQXX_$2R6KLZPL-T|ZrcXl6{dwQWTvpbM=VFra|l6mJX zP1W>bx{q`|v2CL`AJioAI3IVuC#mtvL{itY!*u=%-Xr@>5fqoM@oc!p-RhqGyE2Eg z5(cT=@;1KMb2xj;h0ZRtC~g-jw%gax(!X73j_g9-e)I3xZ?vQD7tQzM<=gX*))&LO zZLNo#PS>Jc{YUDw*>IK`!R?!$_E(%w^nJ)1XXg|Bfy~3?6KJVtySzd^(L>Vc0?*Eu zPxSWEe4<}PT(P`ZU-9`w_g{*Kz^@~pXw%x^zvg_RUu1+zQy95?qCXQ40;jy{oT9nc zV@lCi$S4{n6zz06;<FQqb`<v)0%bg}=(jXJiVa7v<#LO@3?xa;xhl*pO3r7uNIt}I z%cXK*X>QSG=!(Lz`^zo*<u$S<&C)$Gxp-u~rSN&Zq!;afbQMOc@Y%DHi@qDogQcoZ zesI=UN!~dub1C*$^1&5hUeRl{LzP!_SU-71oBQMyEpvHA-?w^rEU)OCc${+Xzi(Pm zO;{|es4ur=NgzoodeQ|uE2-!P)_vi6;}4b(=uxy#O4#)%Yx(t+PjvFLlG|T<KGD12 zQ~lAsf7YIRjVVQQ|2;E`MypA=G)BAhMSd-j1nxEE6IEVG3k<)nzkH%0r8KeL@`--x z8Na>3FS-Br=|rQ6Amd4ts}I{%P?}71jW+e4M0ohukVo_(gyp{U95dgga5=+Evt+*z zC4V#X?d@Y?fhY=4=sQwgw2v+DwET{h&dxXf0m(Npe)xJ#BWipx$|6cVrh;Y1b4+p4 zNlPO7UYKEFFXDuaN5A<)!|{kR{`v8^c?BA$V*bzv#oS`~LvvC3P{ITL3#AY3H+v|_ zLr+=?z;|f8evZmOY-ri*EN|$tW!NO+c|&W9_F$B;=gc3v*GxL`q}DEf=wBHV0vP?$ zIYe`>?-Zi8LlXUE5H(0nOzmQb6+?Gc0?{^(n|%5@%^&&}q~5dghgKP?a2X6<QwmWV zr;-e!slX)=oyFixbkQBL1fpMNmw36s=*pi#aG|q^@DZ6E?-6rfs!~R3h`v<C@`&bK zCK}R+%BXf8n*0B28c~guT!%`D?S~E1x+J3S5e2zd<|n5|iRTe*!rd}CM|EthE<|N0 z;6DnXF<kO<GpKFvlSlNMVWe8Wc|^Z1P$MJ3<0^tj3cSBr1S5l3GpyociU+-(ngg%9 zG@@>I_N~KFl<WE=5tUq5csuqm8`oFNA6gtVnSr$~Lo;wm{?OUPp4+H>aUlz{B!Q@# zzgz~K{@*)&s3ywfxiGI4)l`K0`Xmok(#FCAp&df_tKa;gA>N4chYD{*X^g`Bp@6Vi zA$zJ0^M{u8&9&4|KIDyO6SH8_No5axvhX4%9^Wo>{dJW;ba&fu^n<T9f9ObAz)<Y` zh#_+2dBo8twO0L|AG2RBhbZj)^_fD{FppZ^O6j#4;Kc`HGmz6nIzL;h`K_5Arm zo8<$9oz?P(-u8=-KlPtKH1}U6eW;_ZXJrpf1$~l-zC~p9>6qQ<74wHOUZ~^$1J9di z*D6Rc_e<svRYzm#L(%7j*+c)MFut^3Z&px+D+3bC9~zU}!&&_9&zQx2@`sivIbWyg zLp2^AVraelEP*jKr=>O-t7*HWXs42n*z$)q%WfXeAKC)?mld-cTaMx-@8-MZ>kM-< zda>B9GyC~&Xt=JJ@2_}{?|t)!y4xs#?jUFB?1%i>+j$T3fnskL=Oyo%KR=c~^d^6P zpZuZCVa`h5pIH9Tcls-SQ~5*RZD7OsYy49AL%&#@pWkTy&<ibhr01VjHAhy)Vm8;R zW}iQ_SNTKt^`Adf04kgd){TIEn7;ls=MOD{vHtRhHWwx#&V+XBSIi$8YpmFz()^(g z(mnofA*3_Ke2B+O@`vVd?{n#(U+3vV`_l7>E*MN69VHJndVZ1x5F5|)<`3;>IQ!%e zb)$LhPvWCFs)*0X%j|_WB#qZ=8qq#fH9`@6l89a<vifs!ej09gmH9)zd7k{CGh_Kf z8}r)+<|bB$>yW(oy{|HVs7=1hEb7yT7PE)`xbQ~qf%8ad-q0dfOwQhg0#JEFpO+(z z!_^V%4%v3$T7E3*lW4F1{Go9FBgB0Ix>V2a74wHS%kkk=<PVK^_W_?j^vka)f9N-} zCHX_YE}6J*{?He8z{y@s{?OQ_kn?ane`s@|m_PI}*WOwAL+^FRzi7gcqr;Y0^fq_= z74wId+`c4#=!5;|5B-Xq^SS~52nFSETwKS0YIRdBHno=@_~7z?C+F{P2v!E`Qmr4u zH*6v`pD5dq%}phn+fvIAfVkYn1z4OLnvYXVbsI{FqwU$;hemNJRX}T>O}1p@N()D5 zdCXiNQo(7<E4nHbbfk`MCXST~VFxX*==xM`N3!KAB?OiG!^)_fYO3Z0zQcA-2iaIL z$li`shI*=Uiqwr;I;9pN*GqEt|G*<nnz(nqt*>Elg5@WmuU2UAW&G3X==*?FO@{@C zloT4Q%jT|X`9DyxV6O^3@EpXlW*dShs@u3kbsy5W=AJ+XszZGe)*8$P`&3Bvr#QQk zZj@Xt6DT+6LPf0H;E4wOgVX@m+}Jb0?=LA8Eye<Czj9{XsN~KI;i6ohY}xDGA#_<b zS4Vl(C4{^pzx|j4@`s?*5PCdVQ?~jYc#Q`Kc*1dZoUHcG@@159bdKCujSpB`id$4= za+R*|&W7~m?J8YRMwV-Qkm=ZH&P-R=q%S8=rIk0MMx7P9yOH!Vy2}`TBI`2p6*WSS z;@Un;g&?eb{Aib(`?*#GNA9k^GO9dxEDb?J85ZQ}fC?12(vpc@UqY~uc{>uNE2BUW zL5g`-EW=GN<@%ubmSL*9S_lqsE$+s&qEyQbhJ0JA##ypZe7Eb{oyBPcl?N&)Q(jJd zd+@ju{%)~xu5;r|osGgbIc`H2B};7`S#+eh1rgGgTYx)Fa?ac3<7>;URz^WvZoj~V zg4OZJQQR;ggf-8m0?3BL$+OsDS_#U8)JWMq#736YRsUP!dyIZ&aszGfq<CX8ZGIYq z4UM@Q*SYy+F4`=AqNX@Sx=E_w+BCZ%ekWdY%pO!W8$6S~d|_koG8c4oe<YWEhFmwA zF@+xB#oE!+n9Ck^jb4H8-KDvx1TH&!6ur2m`buw(Kc<3d2du(GWxU!e@v(2my5r`l zfq5eFcEi;5DRs%ZJW1VAR&F|q@zrLz!lkM0^iyqxN0)bWRaj}Z5vkx}_yePpY~Ig& z;E_>MKzd;jKV+*_5Kz9`By|-Xn9IITKDgFR3|YM95-e$Y=6_(u%%1m{O#u_q*gA1m zpL#S)rB7l?{&Jo--oj&<yw);v&j|NtI`@8C%GwxgA)B9!Z5C2mvQ^%p#m<DKFW>Lx zj8!=@bNNBjKxNrUreI}<5wzf@BYpW1+d!k3qQ#n`boDz`8gw)}O+^Hk2c+d<El}qy z8!RrKbfuaam(G<@YliJW9|$BTc?#Q}*J_;HSK98X#KqmpNODv;L8ugto4eJ3wX(1a zQ?WXdoVzm2o``29(In`sYnKspNCw(t=>!SSs7Ap2Y9%$Kd>tX1NgWxHc{?N~omfGh z7<UdeCv{;(TXyOacCU3`UaiBlb18&zj5es{SJ777vBC%wh<o<_A1Dn|6$DJ;03zRy zKVeZ6Ucx=X<J9Kk%=9N=HKOy^u>sSqH_M0l77!VH>J|#QwvLpGG9RZy-V<#UYvc0> z&bdiclTp0g2S8hipPN_%-~MN#_92N6PC2Cj6#gdib2$cZ3z317tuFR0#nfCz>s|fq z8^e^ew{nNuEG6xGtX|)(?1kGCA}2=SZwo8--I#27qj&pgqhF4`%iS%a?~qnsOO}eG zw(1m~tbu<APn5NSvZeGrlN(K^uW!s%u_6nZ%Xj(GvbR)Imyu<~iWIqbi}A+lchU^5 z60E)nAIS}&?#zv>u!!KJVmG3YzI>Nva>$0X79E$2%8jhnVzmazQQS!b4dMeVNV26a zVdar~Z{8~B#k&#@-j#UrZsxU6ffjscQ4+eud&o1wWHnlZT9BS|sK<50Ww@$96GFxj zEx_wDZ=bFO$Q1Xeq@E{DS*^l?@eq2}(PIzCb6u+TSjJeusVBKj-^NAh9K=0DNF4{U zWoR6vEg8H|9E9~mZd^{_Bn*M#*07YqyZEh$hoMZY&%cKfv1%S&^%gOPr8UP=!77`m z#@4Yh#()}XuSn3F|EWlV(!o)S_qj)uI;1!@&~61V{dZT_Kyf_5F#_@qO#l;oIXQL@ z2%L=;9VYIWUvGqG(`!biNJ}6%ex|80OpFoX$&-U6HoceckDqvjE+y%F8S`D1ux?z* z%qo<ogL~HTxt-6hD0Q6j7(Ei@fx=LI+7+aZQ64L09Zt3ug9YNmD9?%v3ku=259L{r ztY58Z8<o2J0OTo}t8@kFm*^_ww=Os^IZ#cGi1<_(-GN6zd>A0eOEC?$y8)O3nq<;S zTJ{R|s5sJ>M120pCEaoQopf;AIkz8ecdJ`jHz{UY1wN*hue{d%5fZ_IZ8_x7uznCW zcBiwCSRb>u;ooe78s}^v+Gzj>2Qhw%?az4H-?F5f?Nl_!V+`kQ7}`$FLxttE><98t zX>2Wfz?=8d^4mNw&bU{YPdLL6h9faBb;_%=+Fmop02T^ea50d=*MyHi;T5kIV^EUu zY=9xq7lDjYfU!RW7}Uze0wl;&1Q{R0Z(~7n_F+xv;}+`S=Tr8le;^CC;e{WDcwur8 zFSrcGR6X~2;f{ZRR}}qS99n=mx%PPGboChiP6sS#^Ie(ADbV*`gVwh|xFH}8Mc77W zAF39cVF#;sc?)PjGr=CVX}Cg9a$vG5&Xf%#I?2w2#<HHs$p>er!Epuv4fknpP`Acm z!jT+e0eZ~Fb~rp>^3(&`$+m@Pf@<#~3x`qBkFTaxtxmCPm3JGbTaa3tJ-!6`C5pM% z>J(SnUhQ}ZI=&#-m^cnZDEAvN(W^agC0X3Y8o`eZ>57BwuS73Xf<4d!1&yfoV?|r& z>^Z?I$p5>h=&*U~vu?%ZyOHY7!R14yt{^1G?@gS$Jriv0%j5s`@5JK|Mm&D6=kceQ zf>JIIKxa_T#pOv#?BoA$O@kPbr^UUw;I_%Z-k$ds<vK#Epslw?OrMIbpcDMhcs3d3 zicH_R*@QA3P|(SA)2mgim#qochuFgJDf3(8_wSTEr{z{HVs48K4O=-qxt;?KuwJ3{ zWj|fXCs)812@rg+KCQBK5Jr{hr7(HfK#CygxL_kQ52tpEYl2@~zQ~<%7RNNgg1=B> zt)d}kSN!cTDm>)0+LQ$7mzUM_QPtmtAV-2S#j9c76Wk)IBbkV9?ur9mFZ7V=*rOGj zb@q-IS)Apmigk%)Iyla)r_okeo25o-=Kei-2FMV28>@?1nQn7)Q^dsoki({L(|Y>} zsh85NV-^1kz9g@K#k(n=;Vzenks%&Uyqm2sD+R0sSfsR@UOmn!46M4ZGFF2Wr7zIf zgA!HmH&hU~Xy3c5Cnyb;D;ErtR$>Dbe-`gMI&s)})Qn0jb=eKJ5<7{lL2Lw=$h2mw ztsrpZ&||_8%OdAX0?QG$%g*yffx&+gpmpUHPK*|8(AO*diN0De6K98grQlRhR%zL- zZUbdAe$)q+R7as={!U0NE&Kt;)o<ffOJQ2#RZpBnPSH`hED9kt9r^#BO-)BD|De&) zOfG3;!XY7bQ$!K`!(Yi>X}}yEsA>q-vq44}ZOjG>MLkEczBvnWN>kI3rbI^hcyINU zTI{*1YSC1XjD$G~HhNjbXdWj>z9M}Yuu4nOAP+|%sFWVodY5DaHKl><)WgEUT9cxE zh+-0Q1U?QAfRqlY2nsX`p)Kh6wy-9k+NLh6+*l0a0Cl?X%XC|SW!wgOb?y^!Pxu!_ z96L>2==hC2qVyLhoJ_o1GVz=T9ew~wOgFC|>Ba`~i!kZG<6K0ka;x(vC?UY&D-l=C zjXa33;TUR_ivLz6Ap)sFdQkBLFuw3TX)%t9^@RHUSHKsyg!qE~N{?Z%0)Vj*s?8Ll z)d+c(^cbeZSZMr=VeDUzaSn{3U4iWUYB7e*aQ`r4#4Ev!5{NOXj~=7&9`hj)ibEcF zkPX4uKXL@QHCWL&b-5dKt6)5Ft^yG?6UD)oE}4kLXJLF&cI>4h)WkU&e6v-fsPLmN zP35NV4j&McKTKcIS8kA`u04d@u)bfp0il7K+3*S{H!KtE9}yP>-f7o^{pSyHA_KY! zhFS_iE}L-qeiI&;QMM>^<`o<0nWTG)^cM3-E$)N|2@O(I1go{tOh^!&S2-Luk(3!G z92g(!M|j{I@sbjC1@gcv2n{3RLIdh4FEoq;R8El4fX1RkXpqXnga&CW&XO5KTAj>L zmkH4EEj5wB^cC+Tz|!d}j2?bD$}7{@S~V-2Zm*9D>jM~iw^5YMMFo;aRtxQtrSpN< z{A$drgU(FQNugxt=u|@Gy_63%vFW+O@YQ}E#J*k`9*4}s&jiNYEIK4+9#AXp`OCsR zI8=oE@Zr&P-`TZq6gz~tW_?}EBYeIMHhI02FRnaB7zBQ6R73fC7U_GRkgs8=Ko525 zH+tT9y@O&gEOnz)EHQ5BR4iGiVxgSp)kj!Vw`7Cv;AO&h)4`EoUjsSk#?6HrIK*|6 zarj$EV1zmy;FV3bd=E2wf57W!dMYDKW6UX*5f+=dS9FSUSmG@9>y><(z$YXk9c*ZL z+!&1=xdMrdkz|VrrBNumjc-6RbnWbq(e$>iVJan+#jK>;HO+f&i0Sg2{<d-I2Kz;L zY!utXK+I^bp{EPRwb(1dL!NJq)cQAt{I$94sR061lc$~zxsj>V#l6^6M(0eM?#@%8 zS}7Y@;a2AxE{D#=A+92z(p7cr3B61AqW4kaOLol&0<ay28ldo+2OP4x%`la#X^p4( z;=-SDytsbFft0@sq!O&ef+V_EbHYHaWG+0cRB(tDGw3fvU_b`s;`KJF{m55L89y;) zj5K*cW#urSpurF2D^36oFmvNzEt)z_<}Dr?SWQn!SWfreN5ZO8lfZ;F&#Xgk)vtsl zQ7xgd8toW=C}E+RC=s!U%GX3DR0nB^iC4O4oTe<*@e+VSbG?8vp{V0+3M6Pb`6|(i ziXF+ycLxCr@yY;1Bw%4>al%y;b|derWV6Xv-!hY_<SWewZrRL-?6{^|kOd=HF}byD zR?Tr)aR*@`EfOZkQUi3!1Usvj<mnN5eFnIM7C8u6M4T+0lz}5V5nAMssDqrVS!i}V zf}8^y6Z^UKUH`N260RqXo~pk;ApFnPPi)~7tu222Ec{M!{cP@M{oGxY&y%j-e!+y8 zl7m`KCZDf2WGOWmtA{<gj2|Vavxe9$4p@RQwM7k2vX~$pZJ@>M)TJI-!a5zQ)TC>m z8X{C_5cAa_OI-#~bl_5p%L7cmM@_k87&DTIG~9+SQQ`wO`+=9S<<Z0P*erzkrN}SD z`E%K_klWbAS>|pfR5%gcmHfG`<y`rTja95Z`B|KQ8Enq`m+4w%nZ6aCsPixL=U*=# zsq^JL<ZmD|P0^q07S7Za-S{o&4q3k2`F@?oI%G)}ZXtiQ&i_exKHpt`jP1HQ1iF*Y zs{JsY3_AZIfBwCEPq)H2U@c+^p*4X#_+GoPFjhqRb{HJ!)$9sle}x~)Kgxxp-lzkP zPa-|S3t&)iN@&xqq~iB-qxhz7Q&?;677ow9hWn%AutY02+1)R8coVr*-L;C@M-W)K z$q4<PDyf$}nxxhl<uLN~va{-k2%_ifFY}pt*LqwUs8a(WUst{BwOx^a2>VcSLR5yf zsNGJ^9)cG`VGw_i=S<>=i5e4&qK5qLH7lXWVL8~=nsr|?N1@C)eYx>5^z0W*3`EBz z7gbVC&i*GF2(fe31BFSJ-mA{&-2{Fr?GGqT1%Fv4B=o7nDD0&l-!u89^prUvX!6vy zA}wqLl6#mIw^JHEd$sfs7VPNWE6_uqq<^pI;ri`ydRR%<?0LeS)c-h#4`p6?i!5(W zOs4zhpNI4^gI0@`I?nJPgwE+RUp>7<%Tz)yC5ad5<>=ouy~Ks<T=a5;Lp{jko{vHz zLwYIpd2V_Mz(Xe!(aR5Si_gccjBV-qf^ZhsJE?r*%U!hbO?_u$@HdLHaX_<CS6pBH z>X+mA=Un<_Hwlh|LA&5xuNwb^N<fc)&aYvP@Xx5e_-Deaz(1qUiGRkO3;%#b&&EHd zP?2)k7+jrASP}nh_419mZ3GU0qRQ387!Jh&`OBuKg?@5r;R~jat^;@A@8*1b<nD1g zvg(<$`#9=zHzc+cs^fLKYo7J(tKkTzBxipLGlch#TUw|$n}l!QEf8PZJ2);RW)9b1 zwg64*QCr~)=AWHvK25%<CC}5;<AtlKfZ*4O(MdUb*-|qVkJmPoY8lqt^RtjjPMlNN ze<EDRuH8Fn7lK!~FgjkUy=ZNazi&u3{j;T$lk<4J{EQ2wx}aLh1BK;boVRQDO|HLV zig7mX_~|Y79Nz*OgzMd&?<IG9YoF)y6A|MBv2A7^#IByV)1MT+$K@sU8}8pNSGZ)2 zfO*Zm)z_z!HE?MDW~*oL_p$0({LF_Zs^_{7->?3j`|v{xso^K*(!~dtnUB4F6HADW zU9Yz%tG~jV%5cx%9R&C!(ka4p<_w>IidO)7(qLtF>YC<W9O!!GK)2o}tCnc2WL7OJ z@Bz!9&uaOGn!t-BSY$qQCn-3cI=TfPI(&7un}6KeRPDNC%U3VadHB$sOxLUl+K+Z7 z8x~}07DXpDpDIhXl%d&9&UqfmzWEet!uO(SYCeUQa5|<i>A)Yur3sfgxPPU%e@(kG zV3t+$^aB!YA{{mB&C)W~z>NC$(W>g8s@lq#x#AC~!k6MRfx>$hJx}mJXRIJM2`_22 z_1<gF0IsVk#*M%{y5~xV?-8@cngmJeVQH8t=F2L|n_GFyXEk2Ak09TflZ5$dxy1S= zw-<|F=7uHbpAOo&JEM^AuFND(qCv>i?j{{7)nrMB`a-!cj-1$(@2aG(SL&xKFq^L3 zPJ-06741PnGVPr_I-M9tkIH<9tZdmG9C!U~%zYd;9A9rcJGGP5{#P0#8)W&1CFfj< zxMG9+6CB5EkUzz7&Fv$fb^ZY=SkX?}FjPJFvxziZRCsWnW8@9rl|YMl!Iy?KQ2l%M zm1Ai0ZP;@YF4eqCf(apSOU_@EFH}+lkV2U0+D@KhA=bNm7f*^KNBzqDw#tfSlUj!i za+%nD26l;LDuk=s-1WbbqqP@C+g=!LdttQgh0)<&7#;3~(cxYg9qxtE;a(W+_Cmw` zi?qE;igZ)|!p7@nr?N&yYIxj+Y7u(s<bzXes8E>xn9MF(RF6EyP+>~Q)T|Ip)W{&5 zqPQY4@BNC$Do-I9P&KnG11(B5_YO=xauLjQS}J)bUYaW!f@RZ^O+%-B?cxE`(#aVw z4WJs}k^HWK931>Pe{hMNeUwX@c3aUwPTZ>#U!ImpHc{Pug)V)bBX_MEr9+3g`n~Vr z>SWFI>PlVL!x>E^LDmVW<Xvk<@%{KJeOx~(Su?h}D1W}3Y_co5b=h&1GNiHXyr_P- zdG)m9%(dnG>EP(*ZM?|HooqTeEqQ3S8rz`O551^AXXwbG)6_@Y!}&8_(4RBq9Mj+A zlzp5sWhbqka(zl3>ZOftowP;Q@Mj7?HSOl-wIplMPlvj=@rDcB&phzSEox++I&gwt z)?L6?^&oj#SMKAb8yuUKJieD-rWNQdKWtS;n`o+sGY;+0m*f1Qzx;WQ#tz-fkokVj zJgk0)olnl#tiJE$%qd%Gn#XpXQ{QRP_5B6)ou8U^@N);<(NBju!@le18Jl$uzt3FD z<DAyXjAavT9)F(3r){LG{JK>)IZjWXqa_<!^?T;ajQt^Iq({$xsDnREyEvl9nOLn} zM15YPPa6Lz8+g4)YkkMlMtX*InV&Sz>aEsC@=&`QRGwd5KF*(}wXUg|Yt-#^9AHp& z(eanmZLJ4d*{Z&Av!3UY!*1H&Ag_jhz>N&C+3H%RYM__f2C+ZBfjc!EFPCujtVuOJ z|0JZUo$T+Gsen=z^Oq;*o#s095UWsEEU_98ThqY?a!_+@Jx+tlNv)i@s;sa}z>N3f z(mHaC0=homv{K7AP!U2|{iU||X{J*Ykm;(-)UJf;ZcHaOkj}lF5*g{*XCX(&Dtc9~ zT;ez2BAxqmSvu&1RMSJO51sUGv-(R-BYKt!kieJmLAO=6oac}X)Qbs@KnUeYbX;9* z4D#gP4Ys<cc-{`vYkLZQj(Y8SOTB296g!pJ1+9eW(A(A2B_PEle4)MA+Z66vu<4dg zuuLvhPVY$c4c%p^&X72mF+HwP6Dh`iLCJ8G^cu${{Lcgjbboc9mqygp5a*b;b1e8! zYt?10zJtbBYQE4XE?rA?=K3|6aJci^=_ba_`n)n0i+e2yNjh5R`nHM%!42hwtLf&n zxy`4brr$xqC#L=><;${6)(Q(e6O66K%3aeAlOHXf1!JFHJ&|0sD%v!m$k<V#N~z5Q z?vvC|oeC>mk1lfivG7{18e4RYG^Wp3G>@!yYI~d%IAi?PK=LI$6sVY`d%|5OxV+Zh zq&(gj{t_5I4k<0u@xAKH@nu}EgyHjsi%tJb{}|)Gk2wjp@?n*j<GgMarO;%oN2|J< z*V9NRyLl~AF%#ZT+PG8xIun-bacf!=p=uSo$g}RsKz092Sb@qe<<tzWUz|8@li)W) zx|S+4^{WLTBohReISfH|47r1VX9R1g|I${tgkNla>Oo(Yxb(Ac;scKajMVUv=h>hE zD@)M86?-u>Fz`zih6Y->z!!aS`jJ$wf`q^6;BYEn|4@P%9|`$lc4>ubAu<-+p_@Y+ zc`+QTSd2T_Bujaz#>-NlcAml<JUMBysZ!*?k%mL-(rtH@74G6m7m+^O#)I8MwLM&i z7pD^&-MVZG*QFJEi9?NK^T&Al!ow!^q%Epq3GQ<LcK@tdvyQF@(F^}__tj?R3)bUz z$3d9`bqpy?t3toI9lxO=SSVDeQJlRBO=Q0~gUx#jXxcE?$1#H&!Z_}dKLOb_<N%E# zz#y-7Kloxar$LYJJOXhZI%MX>0^5c&W}J3N!tjNM5Uz@G6D-HTN7H*x{PD#=m=)qh z@|Q3?VBmp2s|^qEVFB&WY%hmhZqD=P^kQ+LHm+GREjewW4pZ?Zxs?J@;kg18J$X0; zDcE&Ua^`**)9JOkdZ|v+1*J{2yC%49fljaFte#~&6W_QGI7hb@stNCy+^T+Y7yh&* zht)ae^8x0uU*_{8MCRNuN79n>q2XAe;2FK*KWUY5n7^Fmvmj#_HB*bnX#ENTC4i~2 z6Sx48_+Elld`3;)Q1+j0EhObbtvyINy_2+Hy@Lmdx@w=)=QGr$5m#{JmfnfnM#~yM z*!p&MdaAszfJG-<F3|dB9Ei-H@cSWRB?a#NGO^bzcL~L))r<8u-P)LFJ_cm{zLpd# zDibVg2ml66L!WE{u^JB5N@Md5<mljk(NVD3D!0&3KbGk$2o|*3nBYpSK|`oQo^E|n zRNheL4oznVON7NJn8^}b1J(g&vSNUqf*%fW0X+`AL|X=M1ka}MlYodrE?o}2IN-8I zSc{*yngzC<KklR#Y4y;0?gW@gB~J_O9Hb?oJ<uO5gYvekNB*vy%{jm${VGHREK2Lf z)~Z1{ngIjNJVd8^)FB~2L$91}{S|&RI5`DKcNRc&{SC2U6Q|7V5YPe!_H-nNUBADv z7N3ii*gxEIhP$h>__jgPU{JaT&nuj0Ew_Hkz?7B<YZ)pEf!1<{psHBAD!H`5VA^>t zGx`LbN_2|7WD>_&??8)kt#b+{u+)Qr=$Bg_Q1g?@ezh%6Dzhr)?^N5@mZt)2%8Rw_ zT(8w-dK>nbUM~xK%tnyYwz|ynPi(YK+s357lgbNgF&>zHSg_)8yjz^RTs5=+U4hcs zOLHIwZ=hnl2NmPuprSGuDbK}N@uh0EU|1^yO+r}zJVX+y=I2x^V{}*o9X8rCwumFf znKN39!K(f_GJmq=o%FUZia1MSAOi3_9WXw*9-}jgeP&pr!wkc6HozRM0*0|9MkcXI zlbcBpCxb>|Te(94raK_&OgaKM{dnsYS_83tbO>#Q&+`My1IMp5esj_LSa>4XjAvuS z#)GjS2?J`@gP1C>Uh@-;E2Jfr{OCH0C@qG~;Q^FNUbl#Ei<rkf=0O;$S|GLX%jPWu z@;fW}@rC-<=~ta$&DFQwR(&QDJX^7$Vk?e@Z-HK=6Gt+MU719eyd<_HTTY;ob3^s< z5g%?HVk#C&@&Os-B?jY~6imEu_K~kH%?+t$G4ni$RXq!f@~zRoCd7E7e^2yB|KtML zhyE=oveY|QhD1;t6ykT3J-rREB?>s>$N-~x5)L69i}hy}TYc#4J1)jr3;}5x{B=HZ z-Ce6k>2Lceh=in8Ki=?LM-Pn_iUb;$T`e-RMi-cDwjL^U2$Co|6;Z1-x*KA;PJvn> zaze5A6^a54hGx-3htAn-G?umz<Dqi8&S)-_5U$#xyCAsI#5&zZqAQe94TU$$B&T%f z)J?uab~pZnw{s+tvvh)pm~VFGL4yI-QM-*jj7i-{sKxf_)FyQlX5f1w(%Y#%80obq zq6<6_&udgNMj`+0Tom#bsBP1vPB9V*4b@IEw7G=Xl0YmK`m=})wGw&Gstj)Mlu~qu zu!(MnO{Jl52&Ran<gbuGe$HCIwv6I6zA=gjATHt!GhbT(8EM{91TVq+Wg!JtV<80= zKJ_x4h?pad7tv~8(&!ozZA5Z))I3fbX(yzO9;`T;*oMzksea2eTYt%BNX~hh-E2z0 zk06T~0KJ&wrUYD$5;m$$<zc8xZ~qOatJj{ws7W%N@1hNpx}JiM$OGBdve_cB)VjLh zOK+TvEIs>@-<5U{Je|%}_+o)7w2e$_W3K^|esB%=OV}%&ILOm@`I51zXeajUqO-79 zmg<e%^R9m^JZG6oXy4?PkJ59KTb2-mnGP0Ao=OOe=tMTLDcd@-*nJryM8z>dx>`T- zC7wN3YEV7P<Js1#@JWztChNzGP(ZuF8O{!w8=jV<7a_+>3`iowm>vU}V2SZDiF_)f z#tLAz<a3+nrHX@88{DIyv%IYY<OeUXII%92wRc_Ngt=o@-IHOdJ(jFT_*r0jQ-h<- zg9JNrN=;4>i>~67@`o-gA>oYYLq`8TS{5oToh-pvgnC_+x+YRIHZMfsf!k%T6qnqB z8&>2iHcEwg-!;q_i0(iZjfixW06fVNjOyIvumOT|4Ylp}9C9#4)qqXqGr4u-H<K+N zpf9Q5BGat=o_+p^*ISHo-^vSbw(ds!=i#r=T@3$l>}oA1JO!*Oj4A$2)xRX>_AvJ9 zHa#N_@BQ#^@urZ6hs;Pif0o}KI9W9;NetZh5f!g`epmi_V>5|vQ~8T^r<zsM>cwQs zOiDn!7M>k3Y_=@=B}uj&5yOUghm^oGYVmMLOQ`6-hiRlMQuM=cW6XLwKL|(LGT*0A zW3ZjA;bSJ6Yae=*JyXj_7tlf<3&rzKB4j#p*nn0|`x1dD=wJ<_=30}=_jr+<ObCV? zRdp#uj-6Vq>{jWAByqDqQi)BO#LKABkU=`3je#rPR!H3SgTf^9=yLshYOwETs4|y* zK|Qs)R8pI}dQ>k}rt&+>RROu8H&xMT{`+ckH9GaX4qL(>d+zT<?L~SC{J5g$_f=?1 zp8Rf=ua4EBO6P`Uf({pvXb;X4GY%r$n?2!vUQECb0ASgR_WsFBo*82W&-}x}b$HzP zeb<OS=*d#Fu{>R~T8>KJM#mt8J&LoruJ9n=BRrt%+(QX=U|OiLfs#@FLfq_a8|}pJ zNM?pYZ_!@K*<8xmA!*}Ujj$268QjUP{O9n>&stBJe=br!EfGVzLSmsh>Jn;!Q`J+s zU#X|h8OoleO{tq%2R$X_&Y~)!ls`s)YInOPyxZS$#E*-22f9^w+;%rAzVS7SV;g#$ zIT6`rFHDgSm#tIifzbiXYy1O{)`$qW8ts+l3xprg9f;52eT-y`RaZ@|$knDyjNfU3 z-D$KMEc~r8lDY`@s(bpOALAlFnIutY;jzMgg$MhiPuMB#9@B6=^4m48MvJy931?oQ zEB})}(Rzp&F&wxL3wzkHFkd9H14F4}#n9d6!Ut5V2Rh-npr7H08L~2p%rIhtT4Ya4 z^=CY=a20M~u6~i?5&N)H6bRpdQLqX{eXq+yg5*c8b%cpi(?9#uT;-b5u7<fNV8FB~ z$0|04_&2!F$``@R4;PX=xb1Jn8TgL7JrwKsS-0hO+EvX_$9cFI^KM`P&t8IE)5E~r zg})-eMmZ*`7Siz_7Cvb{WwW%{tp87;!h41B@|4h_4|Va278oP&(NF)U>EVoeHA1aL zw^O;{sbGyG+$#h;;V{syHIOk0(1IKy+!2s9!YydA%MorQ=z~S{34&;J<*o1f`@%!c znX5&QBfr*&uFACQ=a>>un&L)u`jF?s|B!Cq`o;O_-1pr&P@SlJbTx{m<m@~A1)t?T zJm1c6MXExy3E>jF{9Ex{n*R>(eqYnR)t@T18{0k?v*^{GH`wBzrT!x`psqrYog8## zgXKsW-sl?ai)pJ&tV6nxQEce)TbxoWW^<Jsx4<8c8(#DK20EK72H1bq@3e82?e!zA zWgCg3<G0ZIDr2mF9$?i(^hbA&(52l9tK-WsR9IW}i#}}7FPH_VBOOWS^}4pqVt$on z*4botqPRUx@24GO*f+C4ww~0pbn&N$Z&+iI`DDvID(#y|#n^GpE^Ci$W?IC|n1$9E zXHBn$-P0Ln&9ID7^|!{^^BHGB?H!+(mb~v$URA8CrVga2X~{cSRWmd<_pu7^8(Epf zy`}a<a`tVQaD#3vxG4-7H8Q(ynw(hK{Nf<eUEwU1$_+yNG3!VwSmX@3Z4?ns<#$7g z_JPKNt&pP^V0SWyO2~f6lP0OI^0c>&_X6)oLuS`G=IuQBKK306%rfHwK12IX!P|E# zQ?&)`JI|zXezg280@I-AbnQ~4$zJ@_h65x6%B`$Pw)}5=wo*B`({q%<<f&Yz5k~2B z4{E7-+l2kpNjkic_vd+GV0^}jpU$AGj&I~up!3JnaXpCHpEyRrR+;XcAB^ktZaTjw zwCJM0dKU_XOzlQY3oBEJ-M+i-2ASHYIZPFdu2dl15k5B9hfX|ay$<lum&=e5`c7GP z1FH2(#ULB+L0;IX_%Fk*bq%SKuIc4!+tY2cPDu)d2blN>FG;mleZWZ~vY2<fIK>aO z4)HR#R35dmiY!l1@w>8Og%dlMVTi!S8&no<p?gNhp;nODKZ49|YLt(QSC$b6)rh1h zvg>UG*Fp^;n>ymm1T4j&pZwItBqu{p<;(?x^_}B5wwT!fen<NwMJFqbL_)9e+K^U? zPb2t%@_ag~A?eu7V@1v?p(bB?t+VY1ke)S>?yNo3ote66yQ$8+)=H`}Z<#>(?<^C} zh7cJSoH+qM7-*F&3{HE7s?L=EzZ$y&3Oae(Bo95$U8E?R@to-2jP2azwObdseA6em zoK4Rk4QvzJn^CxfL7cHh<bYAVuL^R|Zsb5gQ>g&{)P*g#EmM<cku5+^U<Bb)n-ErO zT@DJo9|9CQi(=+o7N=#00FHQnh=mwamug3A!Ae(+md*dz5G?&rYuVcnE)!cZY{@Bu z6j;OLgWs}mBlp2-fC>2&Di(JOQuoPqM0#;;Slwv_ciQCcCdAWoMPj3FmPwqjo9#gD z#xA62CzK+P*n@=3R-0RFeqGeOxlcGurKZ>T=6Mk0^~7<fctcOP-Ha0UD7ZgVtYB}{ z(cWCf_s(ba=SVi#>UPF4E#{S});~tM&Jvta;5&-s;BZ5Jr*=xy2K`y3KZ}`|p|v;K zW*D5}J-=t5HV_R;>&xFzs~qC#*gjd1(0yOaJ`vQAt5J!ejc%|g`cX2o`1;o|%Su*M zF~iE`cIAAdUP7mPNcO%+!yN7r0|RVhadFcxd)u4rW8U`m9L=~L4#FrkyZP-w_d7Li zq9ksA?0Aj)qeoloti92g=skOHG+;We-Ibgj*xuNG_TG32X8HRYq=O#jg^!@UR0l1i zGaz2<u>+Q5I_Rw|u@aq&>7bp?CG=QwsuqNFcE!f^b_Y}$ztXndp17CBr6R&qj#d*z z39eeE)|NK9Bc_dxY>VvN&>jVQLosAJt-^a~Nb;zbB#h!~iEQw^@VHTYjvWoivGGzF z-yQ5`p$j+L`oBTzAK0F`x{dGeZM5%lVL1N$T-JLP<m*nEp_|adv?cg(Cm?#t0{t|M zZ+uE8r?<%{v5ec#Tx}K>i2|pe(Tc*ZavZWfjhV;SfQ2i&%htR*pRe*Sn7P_48Ty&? zIY`gt(LfuE^haAf)==1pPQ_yZyvs(HHAKD*oC&4%x8%$f9NF5gljw<jA7-=*sPPOA zsNwN>fYrw}GulF+R#w>n-9$k=`vj{m=#{Ho9-IbQUO`>o=AA6PwzXOq6`@=1GFu+| zi-r&E$&*^k-sfF&Gl^cqCV0BlFN8pXquMg9WtWEF#2gMdX8Je-RJU6DgwwZ$E#qfq zZojD@U()h1YuTe7T*M5d^=%mI!LR^jrBKgcnoi}g);Qfd!Yd08F9?xkr2_PB#15Hk z5;9p<st_MgSkR#bhXUdx@d!WW3-JhlP}I-4<A3Fje;v(QBwwnoZ=@2N>gsjJl@62h z(l7oZG<y(C@DaP*$;+<YjB9shQ9l>f0rwWjbF{m;q+O+KaP1vlWBvbp-~MlL$Dbgu zu%!P)4V%TLwBKImfVvgw*)%f>h4@1*F4{}kG;Gg%s}qgEf=0Q1gg{Pg_G*)#J&*%6 z4}>*qOT>`e!;>+53h{+dF2?~jmV<KB=F<L1NV0HT-ti|9=-=YFUkQ$5DEr58<?`pR z-I$#1a9nT1s}?~p@@U|UU_9C`f^o64az*^aVJc^<QYstV5*9%^2;N#Cyv2W@RvxB> zV1XcKK&zM41B`pC=m>isI{}nK1_CL~qzGzxySvw~?=EZ{2+2>Mg@0XWka2N@>7*#b z0n@_Vt=|YqdIt3!QWIf1Feqv=kLlWE_bp7PJtyxtK4u%GEgQ&u?G;PNzHXny{P@vM zG!6aZYuO2$<`|sV3)`z{@E!iJ>6P#d;5eJ5>Ah1pt|*{NnC?L7sz{)>P|V|mV=CT9 z+yS$qbN@t_r+wO_<eg(H^>^aM+G!>x-FY#4P5x1)Q|dOI5)GnU`oB`K<aA1=Pf~z@ zds6xMpHH#mbV@F40R`4?z5ZXx>mN#Qilxg~Z1+{M!lYRO#l$sB{NhzhXu3Zq)shg4 zs7TEs32KuQokoF%K5cwoIvLX~1qfnzORvfAsSJp2>_BeZ1O7Zi8kFR`y>1I{cG_-H zAQ{=cfxTM>c2pkbNqx3~UD}Sm2KGvCU<Xf>$MM8RT8H3>fKtW?*BvW`h%-U2`X)?F z-+=CPIoP1?fr+vDt9z12@%fK+PejIb3#VmMAeD4a^waq=JNIt0|7S?RZn`bQPzyn4 zowzxLkqe>2XCkYJDN(!?E9hV1HRy}>`$1bx&-8)}qHgp0BHm43<iJ{_FcO`23M21b zo<TqKN>KoqhYMrrU6FofT5mC+(IEGN&|5hjJP**w?;Yr{M-oR;!xK$I$7Q@A0PM(% zL|$VDoFowH)1i1(0FFo?fc7B}&=_KXejCWw|DqDXK-*zFN>h6_fj|)#3D{v}158_U zAUXReG669w5(;p}Si~eMYAn^f1F7I2mx;+=7<0y14m*@1lpwYb*7MFd2P6j6t_E_i zFpQmQ9pdEyuN4$eWV74GxWP4ye1Qd7O`25jj8rp;{gHo<M1iPDwi)q%k$;cDc{HDD z)fV&Y-j}h5_AZUtL!sSXpArF7r%%x$5kQqb#nu&{jtF@UJvK=$@uoNPniaV2Ar6X< zE@q(_iakrC;_O-fDZKhyeF~n;%tKtCa$by@u3hEyDWnrS3!}RAyKAvqzrT8?z7U!| z<nDkW@mFOjc8mE*1g*lAG(N2;Zq4lz|E(G*ivPY<$WJlfnAEXi^5Nky=KHbg@3|vS zgfZXWx74ki^TX<P_tTTrUG9S~rh-LQf#1r<@wmM|X#wDh`8JDvYq}b9!jshx@gu;# zhe9jK`P`AO1cQ^Iq0R!rAH}gcb+m)HmIk6-*yEcswfmDT0|;=H7eLEAwXKNo#YBW> zYKZySkUC1lQv>FTT^13(E>*iB+46n@kL3gy9F9kXli4ghsre)!;Tx^a#UIEm(Ky@R zm_NZug2K-zojH!mzj!O{kX>KS7xJ)>r}x*2Vc|-LbA4D*C0lg$4g<s0`H#xI%6W<5 zAoe{TAi;C(k&~Dbp~~Iayu)x4BN^%omQz&$Uv)iK8XwD1a3z&k$lECArA63STMDPK zOzqBO%hza6Llut?|G8qdO1!;W$0l-<ndAA(rP^LcxEG`|Q+oi?3A<l)|28f-L$>0I z<&F*e073ammMA{pz=&8GaLVRnFqQG3SJ$g^C9&dv$PdK@*x=%yueFjR*{R*c7W^}} z(~vU-|8g12an3{06g<L|@C#Fr<`<3MBX|7{hY$ioE545z*GOh+4wlA@5B5=Fk6xv< zND>k9b>%KKV;%+pQjf|ix6t@d8>3<P=l&h`^v5bX|3d?Z5L=8Kf2-GRh4JL@lUVTh z_Z2*TtAfYbNTb7zG&<Z!gphxa2Kg!6NQ98Lxg+65B80rl9dR3p5OVF%k`QvoCp3=9 z`Gk>^_!RxE^eY;`t5~zi2j{y1B=YeS#K)OS=5)r-T+&-?(M7&jE+j`e7z?E#Ib+yl zFeBXM!;qZICpvj@pD9&OgfTgn`NJD@`f2av07gRcJgP(FY?h3<UGC|KL`V4JbnZ<< z&-}gs7A7}n_D()EeQ*m$M2}=^XgZv%sV3sses`A~->M(SC2MYznL&OjFT+#SA7YgG zbI3w{_|U0ucE2tZp&c-RFxJOh(Fym-xX?2B103q%Y!?BIxeH<KD4oX(K(et5ceWsN z^8z>`X->`(Q})tdX_*LlPafLO3;A}&5m^r`yj(JM4?lP4XMQq2_w^VO^fO~~LbePS zUXDB*4=>l1YW#U#C}NLGlAK0UoB3g@x+?of4`&>b`+L(N{?KFotaIHS7k1l)mxtYU zR+cGxK*eh}y&QH<ea8vk^<CzVDf|@LVC*Lx?~^mF?`9p5(GmxG=NNxlCrfXRO8d9~ zi1gZ<`E@G?=$vt6O`+?zDWwU7Pae|LntMghI{k(#%ppC~-J01M40CddLa?m&7Gus$ z&l*q{Uv7P7fE3c?oHBTvLz;NGhFCQGj6=FyA?gJhW@KIH6Xsi8bbPD&jS*)vt!(9h z#lH8@O3dy5&k-Y?$8n#)sKEr8r*mUeDW)#vVL~_cIH2n<8YWd;tQ7eT0mshLzX4Hg z6@CuMc|ABl^M)JfydB6wq5EeS5ZYWoIp!j$aQBwKLd;j82iZ-&3NrV10hx(I-ITij zMaah)qg=`aUb_i*1!{~Gyz7-i;Xc;T>&0F8RUN*C>D&~e3r=N%ZRvn`St7gUKL>Y~ zkE%kux`8M3Q%P#&uCM`D1-jRb<FOuxqbhLHCXWRFB;B#zccv5FE>(&1Y*i$!dav+v z@+Q_VCj2~g{|oB9(Pz0O)b679>rx7)wNUhad+*~IX5rwKyBU&bWSvldBkO3v>AO0N z^vm0U4CO0aSc9sv*l^S7US7-8FW&b{E2oZAUBd~&p__a|ey?>pU5hfZzOBe8d?t|; zR)WYf;On=9V@$}{^EipYf0|E1mj8u_Cjp8hmk3Y*A>it;N!Ay2=2|DZnDlWB2H|50 zJtr6423MyIFPI{*P((TVCH1rWi5lj#QJ{u##H4$mk(C84*bAnx8f`#~5OS~}6_yUb z@TvT-=cF5ZYOG$5uk8XSSI8DQObuV8Ypbit-Ooex0T{OK!51w5QRKyxy$*I{45kmx zU=9Q{EMf(HXfKW=ni^gm4EQNt&oBX}cr9*pI)TGlBzy;>97|bTf}0HK1NQP#Ncu4_ z%d@`(W+A;zk|F02Ns=qKcaW4G7<fg(Cw?*h;^u1!Y*mB$=v4~Y-~r`x=pYA?J%_!| z;YhrnU%<6|Pl5m!4?S+-0>f{qpKFq+TjTha+$j&@N@_Zt6-3{%htT=t(>OhdXi%n7 zRKu;+E{z$lg$#wf0#-3psy;!v3R|n|r9$TWDqq=3l)@=@WX3IAVTD2N->%I?q?^y= zoT}xX3O`;g_XPCisoK>Xz`4`RWx=3q;slS9Y`%f9D2%c|^|}GdLUGC^)HvF~M1{aS zIqxv4{o}l36FeAA6YHu@a|I&R0M1V1Vcj2gL6h{2fg#xY>!BXC+{d_sS`Z`LV8>(A zH}@BtJ_)oW)DniIHx2#bdxS9@6gjPE5&*-{2i-xCjNy|oNF9lcQymidxSayvaCsUW z&fr?hNV6@(8DflbyixqHWh_Avd3<RYG7bYFWSol>xQ1j33=%MLadC1<z#6OePKzlw zEsS5<#gVOwbT{5=)>=Y-qX0Kk=6eWZA@4-G(?p-U(}YE=OO4;t1~+S0n6ITw8Ee$0 zpOh)@S4jA!j+t4NAd%EftW1&AKH*cI1RhsT6HCz%hETmR6dWuSgp(7<20;XSC-YCP zlh@oRj$>E%(`XpTe!n$q<e$C*=G9j+PCx-Owbb>3$=2uN-Sr)F5npcz(=?cR({-1S zc4c%m@cadrA|c%LeZcbzXM^WAu#_3|J5LnR^Nw-Fb*OYHQmYMqUIzh#TeT2F>^#Ge zG+;uAnIE6kkEir$DW951dIVMt{cnip9OdKN!7V~j4(+Z3MJecVGk7PAb2M+ULtt0u zZzE`hCG>2l=MYnf@^p0*=*a<Hpp#Mo`KWgDGN75)1k((asYUe`$2r{DfL=4#jo^=x z4@re{)(uPUz^+j2JJ1@O-bIfrbkp((8FCY*lif)-aDY(A66=akAGc#)&U~5M6_ZCz z;Y`6p_mFC`o1d*kL-YKkWJ)dqUkQ_9!0@Z4{nS?K0}OW)z7j^v+lCUJ0t6y>%CB-h z>3&8);WtC+<yncY-CSH$E6yBpc<+R&7enZ~g_rVO6w<RCMCk-V7(t7jAP<b4A>p=g z`Wd?SB=*^F;*K7Joy0F8HwlM1XvNd07jO_7;XQbGw)rS&-Sdg7`De6v0Y3X@EL@QQ z<|<@>XT;xC2?I!*B)6VkJ>xPnl_&szF87juk5JSEqRc#s8V6Y`MNy-QDC(vVMco*O zP@`fHN(CSy_%x1bfqem}!a#ge*F@MUEQ6Hgr0aXG@_gM8lQP|aBLpXaQQ)UApU*~I zEc)Q564gv1pBpBN_YsC~dw$mlhnIGwf&)OSItGrIF`)vj6(QIc8M}477W4TTv3+5p zRN|0;n7~0|m-v5v`v`o;D%Qg1ZK(k69gl}5lcA@9F{7v8KJ`1MS1NpnU)*zPoGVes z37ty)1)l|_60NTsPlj5jB=j5VFALVc8oCROy-wl!c{sn~^XWg~k=JpxRzrwI>szxG z79gqg2Kg69xM2OAO!?vbOXU@(D)wHzr|0sJ-kDS73L++(7bjB6Z7>Hdr;X^J5U)S} zTbk|3Q;#r2y$w?d&UkiGF#i20sJ^-+M*-f%8qG%HL{C0y4?W@|ThW)0_y(jwW<3S8 zX`+qFTR>ZXKx2Ue8fYrxa3cmYpzZ^%G?H)rmS-%26?%o7%%83LW8Ri4#~2G}8hTJ4 z&_h7g%r+n}!iRQ9z4RPKIxlC(rWYVc01v>#T2XrQ5!(h0L-3Y`J_(seBLF3Jgi{zr zB72b)fLu)K4+GwvQw)@ods<SF=YcD7&a`Z70xQ-O8WA#>ph8eo{W+;H5;;~cxna_v z^)_Ys{6v4jJajaq^mayg%PqPk#8-X(C2r(|`W{$A&)Nv+ER3kLY*TE-FgM(FyIJ+* z^@q{=1abJhKgYi7d<Sa?7QIWN%2ueg=(9vz3B5SDD~p*jn5~iRlt5IIQMB#YRK*Y{ zpWLmRIKLbyMF!GeVdEk03Do?j%Y#n(z0whjXQ2?dOp<NX;T`oBA89(TNC?udk+`aY zqPLc8paMg3n}K%wUS6><_;h*UJr<leOM5Af)lI|r78OgFvyPt-jX>=keCHD?+CaNV zD%uHr;CB0QY$Fg*d#Q2i`hNVw6#w@GdPylS_uzJ2^#DG3vvt>0^C@(<7SVqtvysl( zKGQzPUFLMKUeIS$o&FX@c9`@tE|`}j{(O@+LWUMb)VDsV_?`rDXdfgj+{@=bC$Qhi zdwd|Wt}zVkZy@JM-@tx7ATf=Z8iFAXTm0*zJd`~Wf&Jsd2eQC^0tf$6Mg*-omqxB3 z*djib`wWpH2MDy_!IJYkOs9f!8R=iHh|HVQV{|aCDlICZSv*v>*0s?7wY)#=r9s|z zNg7;~a3y=3!UZ{+nU_=uDX(AP1}U9bUC~*)8mW)udd}qPq(bkIiE=-iIIKrWHs1^{ zC|qiham<6^;yGm|o<S*@IE8_0C|sH+DdJHnH#WDG!Bgs>>*Qilz9-T2#TEN1P7@`5 zU&aOcpU&dbX@UMreW3q>kUmH8{tJrn{w^yK(Kd5Qp4hEGfpKz7{!{xn!{xP@;l7j? zzQ70kGI{8Sm(g8#lmh*UZ}frw#=pq->Vsxo(*H2of7S>4SA{wMEWxi<hPUJR1iyN2 z*>U0te(QaPU(7grtR{|4de7JhC-i5>SxoT%o@C3v;&^#}n2^q0jSC1F<GAap)cr5< zIA@~$PsvqC0O2`HSq4h;r{zJKKj2gaQL!$v95Kh_e)E?$6VB}p2Y^`mm~d|62QLTP zuK1MlUI0>U$sdR!F8u=NClA1z5a?Ak!0Shu57PH4j!Pu5+hF2uDUJjaUtoEoJDs<K z@1{}Y8M=6N^9+^~KrlxzagT$ECk2W#iFM>O1~YUgUPg6@yGli8ph$j;l>hU>=Liiq zK5G5HAk1TchpMJ7dIAk;O<R~CfHG8m;cC%t(W0FjTuq}&4{)R~ls4yDdpifa@la-T zwa2)4^VC6^rvO>Xj8KxeaFIfGbpxj{W>K_gNfKw9kWs1|1P$S1PJ1*iJ<0~E)E;uy z*FY%23xl!eiV9=`r$>eRkR+g@v&1I#qrw+nwDoUs_g;+>5A?TU2=73-W77EtIN2io zhnu>Gea>~BhP&{4;_emZFVg)W$jh!O3$MDHBYvH5T_h$iSL$LT4T|%}BkMa{pdGuC z0Bpti&#^wv((_wC9n*+i@ACsZ0qECt-}Ki#Y(hYI9p`)KCTir;3MfCoy{NWz)o1)w z)A=5acbZBe&;!%8IvhLE%AMQ`9Ija!OA~OT1@DhyC!8rPz)i$Ir|605jaY&KqbeQ{ zr+&slFmeM)`FCAL!hmix3U2@V`)2jbrT0bG8^7;OXngI~CfXFrU{V%mZ(3sFj77}U zy2^8c#Gzz}BU!<4-T&$}&^6toFrKGYzN^-e)?a&S>#w(3$4k3F_B=T({63W(bU(k{ z<I6hQ?qsqdgu5_@KXX0b4;g+*4ji`#NabUT;Ev%%&QAh?HAMfbf0jij)U?Qv$g=75 z4gU|BEg{}FTXjb8!{ddY*{YqT=e2$Les19!JYPeKF}GbS?oE(+A!@LM04SS)BLW(a z;N6x-0N`-AP{xCY``7OKQCe{K^_t7`-5$`OdM$&ZyT(9}VFtQ%pJ4{kPjgcg{Tyh< z>&}o);2keQu?YeyO2IUURBYrWS7RI#d#<Q}U<d)ALJ&~3Br0(P^g}<{#qoO=>Q{$; zLdxbI#86P&*Z;bFI3YyQZ(~`7=qG}6;gdY4CI#p0L8uGl_fc-3$lf8?K^N@6J<LK> z<nsCOyny!(psGRv6%xCR7uivrYoPeSZt;V}3BjFA;%R%nF0u}w9)Z=FGdLJj9lPt# z3pZE=ALtun=4iF38dx}74C$KvwitS4@F2v05AS{-gtQ&RcThFMw00bs2i;wY9ZD$# zhVmYspQ(XSFSe}{376z9F{rpkoIcS}SZbjbw$GMuems#uY@huvHi>%kSG+qqV$x^p zCy0aXZlF#aO2T~uG66*-yYNnX0RikzbVLOy8;5>wq{Pvt!GEN8PBb;+X~O#~gTT<4 z{_xQO(o=7j*oOYl%=ZXsFNJcU35O=<Hhu72Tq0Y%B-W-ElQrXIt(Wj9doM``u-4xu zYdy+{aDUL^cm&ovD|M4aDI8b$QiE`cwfN5Q!}y?V>P-jn72ic?rNmpuOZvC|toVqP z1@%-`{Fl{5%VUleA3;)SUrVg`GAet~vdx?E5oGu4dh*J;J|AkMrTvmV+qk!E;s~<* z+Sgo;;N33cvYp_J`KH^SBHsaJg*SUSihaIGjgL_vqeQak?0fl&YM-av#Md6I1sL)< zO?l#d|IH$<UNkMDCHh@_oN;`1P6=ijHyr@>e0A8K$>I?)C3x+q9>=t!_Bc*1=hvd1 z09`2N{qS+lvhQP@(CLZ*wJ5Tfh2Nsc=r>(NWlP`5HE0jzBG395`Pb_=^HtD*AA)NY z``qQ`#hd-*_wcfN0Owdi7yCFTpn!Es3iY0=Bj*H`^&+hqTnF%-V0Jm-9HxG5VWxg= zhtk-z&T<?~-p3-mZzO-3Ho1%is7*>kl-mfMPtJa~`2(zO-gc5gZ_k(vjq7ytc6?r6 z-YjGKdz_RPoD7`;paK}62_=^6t9b*=SL!xsHKujEUd^n&jjuAM%ibrmsL-CY!Ey<} zMs3D*)0T3qJ!Vvw>MxY>c11>YCm5s?+kAPC3Or-CA(Rfs9`ZD%zjGR_2Z8WfuH-pV zxwl&Wf=x);$@$MpEus#mf~VDC*bVM?*bOb+!n5kL`X1}I)9|`}cZpo<Ib!`*pJk<V z{rAoQ^vnsUPGYa<^ezi}5Yq-n`H{_sH;ZeUeCSib8=6(k<*rR=MaEDZmCBuNtn;|a zFLomI0nE_!bEWLByrqNFs44<^QOUg8$x9yUZR)1DriNJtOx|tSovA2+n?TreB?50V zkAN2e9%m98E4sZ$!1)GvVBwjKK3@AoruB0W@Leuk8~SSo%pGAO17{q9P8W!PWA8-v zA(rUShu@@327CB8_#1rG&*!xl(Y73H6c4x9;^9U>a%DSof!l1X^W-&vM$3v)60U94 zA)LxlDn*%12-EgXP_n9seB)L#Qx+-HB|@>WqhLBJ8eG_}W>qpRqd8ky)@7)E(S$?G zrW=$!#w;_T%|@+Teo<AskQs^A(E%0%wrR%Mb^L8yQWtY7QVs>_QbkR?EvZX%$t*v+ zE!>=6t+oYsan4+_C2ggBXActfIm943Taww-IJ0QK5{1&B7-cnE68-mfDEO<>R`Pq? zXPJ@eKd#Q@N7#~_{a&=18Ju)5IssaW`4LjhFF=3p+91`YCp%KS6E7lQWobut0I68) zn_1A_&1g4x>5$fXBSj<TKj*AcfUixd){)m}OM|7fCEQlPs8F=g9F(7q45nc^J{Kc? zP+{B%vcIvry6EvgvD>C(e_G3}&tre;@Xr(4pV;Dxh3RX55|Ui+D9-)_&$`Unh7*Nh z7G4g1WGi_az~rFE1(@3gKAmd4nS2Xv%&gb{2U{BRJ1pOVDgVt3U>1Po7du?Gns*n5 zZjff^HXVnpc6ft;KFb<l_&m0c2|*{wRnQ3!fjckfoz*`b&ArT^hMKfHikg3m62RhG zVg+U!=n4T5?J~F0<*YDctsoG4#G4vix?idAU4q>67!0(JJmh-)8w}hQEam<T+t~?9 zIxP(TUN)dbyr82^S-v8I%9dHg%VC1CN&I6LFE8c5IiE8LE!Y^^7bK{$4V6R0YIJz1 zMv@H~bl8i$B)YKmSeBR>yv@!f>#>0NhwVlqtkT6&*Sx$m9Ov}yFNw7uCKIv@Nat(6 zwG8&4xcD*LAvYqxixBIA*+Uc^hZ!WYE?`+ukGYGi3&<UCMKO3;7_j4R#|l}vqQXMl zl%r%L0pzBKW2K(a7KwI^`Qn`Rn?z1Hek<4>GARUZ_uZtixTc|t^}+c~G=1;~_Qld6 z;9ce93vt3GvdOyq3}dxBK=F58%`%>XAMJEQ{lcVC0&I|Oi4Tn&cQ$JWI2RswZl#)S z(=YNMCh@oK!XJEpXo>_4fZPS%kEfpo>;f~^Nw#t|Cr%4HZ$3aHxageYa@==7;XO<E zU4A?>_6w)7?eCMs)U-dF&`RCU50<cD96yx7D%?ul6|U5hgbfPK%C2U1arKd9)?7xh zJ){D%J!uu;qC$AqewI<2&)DD*S)x~PEKJ)V$1&12c;6gfCnB^SNC9grb$h$+^y_He zt<wj>_T{M*dH*O{GE=)s(Vef=`zKL&7fqsP!4gG2hu`H3`lZhl^_1@Th3<G2R{c;P z=<HtTzarH@VnM0)N(mi~-1GCI)vK_!s5f=({wrbM-0xtq4kQ~)_B2J*NZ%0Z*WyYT zwY#~b-G41!@7lfDwL7ivb4+r_hZN8E_v`;YUY$!~2MauKw!6YA461Wkp?E#DeqQ+; z8iLg<$#dXYu&mGTuz{T%Zt$O7M0FS?c>vGm`OL0(1w2cPWwjcBVp-VvrN#$!l>PAv zdAfd!XGeife{FbH%v6!sOoU`<7DJqyDtg;Rkdh}tcs3nuGhsSaBRAkS)2|B6{@v3M zkAcQXjaG@5z6viY*pV2XiY0lbDuhQN5-cXAUQ}e1?#GMD;!F{O-)Xo1&E1rp3g`Wi z!oJb*LW*T0i$hsRG*mhArUIa=D3qRcxt^DoOP<jO&C2v!M6)SkWD%HM-ko4zp^p1W zU&&57lR=-@h+BZmG67?Do{XzqnhD#kI3YF-tt=N4ZW=s7?`%}t=`w7iaAXskic1N& zLS-Vna_A7dCR8F?v=CuGFI^B<ByvAaIIlV}vfpUu^BSYuED{A^=Z}X0qEFPPck}7D z3Pptmfh>NjP=wlnlKP2udIg1IT#<<0&_c7EiZK>DbWVlh#YP2LilTzBw!TzwoFzfU zF8VH0DYl2HD&*9+q!AcrO2zLImY&ItGNqygd=R8#p*kl}a+#Z@;)`6g4tgxvKLc|s zP0o{EZY2%@lI0;4TX-$z^$euq84*K1uaf}G_jL&u_ZTV@h2ljuYdfu+?s6Za<6W^U zx_n@MI<cmxO2nnEezi%;2rHApkkTb?T_UN7Wczr@9t$Xuo=*iUh&}~qph3V{JJcrP zu4HyB(<G{d!Hepyx~lG(qEL@Och&7EAj%{UI%?0uyAO(Tfgvd3e1;7lmlM@lv%ZpX zV_eu@M}DuSw+2`ZP|`giVj!4FKh(Oy0S9j#hSRAJ@!L`V9g0>r>6+ppG|F^&mqwP6 z-mCY;>bmrY8d&KNyXk8u2z4QYSgQ3b7QQscdUMD3VH+XkCY}FcY(bQhY(e?xf*&%i zpDDsGCs(C|%|1&Of|bjoWyuRd+?5$<B)n<pbbSZ~tB=|jCs>7g2T@gViBQ0T<bIe# z0$Y)Qb>#mR0Sk<xCzFIF^aAY&C9Gop3((6>LoXZ8LN5}sb}nQkUFL+WD4v4IW64++ zdCZ!^bFG~P;GMD(#2!Z}D_qIyD4xR9-KOjIi7?n%v+WMvA@0>TOLC1UqN3RBwXH)2 zDjNnEWcEK&Hmz_4ts@69<6h5I3hYm7v4wds7@jj2jL|JM4So5{Fk2#}%C5n?{o$d5 z2B7WgA<@+KG6Vc)DZ0FUQ%GKScle%ff|I}1biGC&TxSG}E1O>fIRDCdmUnqxrY^U> z4Wehz76rH^z>*;9fx_6}LQqdf+93BEAeBpaSK(DFWy<?<5lIn7=Rj*dwegUK5RCst zn_#iBRrl*q`~2D7x`zFACn>zn?XByUd`m6ulL%7bcvcAyO7EQMaP&LvBIwi>EKCmo zb+>Fq>54V#yV4`HEAmXw#q)$LrLf}{k$xcciPVjs_|zvq-q5`Jc6<lgA=x;Mb?WVh zF7}`IZoUSORsVoDGGnBJ7MFP=c)0o}IwWVNi6{XYayJn1G-=qxfp<4dEW3MTL+j8j zCx#8^e&~}&&oneIx;;!Au#o+G|JSH}d}csy(x_xh7mdtr%eKB_-+NIrv<~k4<e4+s zWTvZU4Dp|ns`%l-foINqaKOC-2HgGT4-V*+d&4^hjkI&8Z#!-0Hng@_@`8reu%AQ@ zG_-!CF5BvQndO8Zaii|zy9RT&yKiA3?7<4B*BM?%aBEn`@AxlWFHa@B7nJOxLB3*o zO1zjxb4r^&POq+$Uxu2)!D#|sUK$$WHdIh~RO-yytK0fMuRUM#Pp!}8|KXmmP>-LK z=VJ}6m)w7xT2ie;ALXt46Q4MGrm&24-X}kbdcrh~qlZ$xsPru><4BqmC3iOj&o)kN zqr0Q**N3Yo@E$x_Ek^v%!_^P)mVW4o>So?~_G1l%TD1HrfnnL)r^-1nX;^Aj@4&l1 z%iprQN7Io&{keaUZW+#8>a(doEd1MzM~nVyDL;`Jo5?rQ9BwMv)=R2B!85iF{+;n> z&P+~b7W9nw&zZ@6j0qk5;{iO{{l{%eFVzQ|)WN@ZnXbCzJ6liNRZ6<@$j5k!)|*Z@ zumB&TE7{hjx@@pG+j`rkau(uT4mGqs;U?hW>c{LWJ}|te1G2r?`@_{w=s4+6Zq>Qp z_g`+;mmk`fd#k@<6`=;?F392ybZbL!FdG!IxC-CSO}@uDx%x6b>C#-iZmb#4)eljl zqxh<3y8pV{mew6wGxobXZr;1;+K-msQ-1ZD+WH~MZ!I7&`ugPj$80jV-`!eHYFq1v z-zMlcO&Ie!x`7kEqDX3a6LL&Wbqy-~U3X?(L-W$|#@ds_v9gpJ@Z$bT17~TR8m79z zp(`2`OMPSSelS|o3wqPJ%5<)-EM0r?J#R?YPAa>5d~$xv|Hs_hz*kjWdH=b|1p@|8 zVuOvAYN(esSFwfG&O<7;xpFU@3pW}oYP6`-DAJDAR70iKm)ImVr-zHojPs10+78c* z&y1b=44tW^w$s`K1QJjT1TjF>pjPiCzVM<DP~rdm?S1ae4Qi(|&pe;cKcCOdIeVY| zy7t;@t-bczYa4t4A0(~|uV%<Rs)dG46WP=>Kvs5<nQ3a~xhib>x;_9)nB%Qf7huCF zoWWt#o!c!oWX}Y%Ek6a%vWF^)vVX-=V+DVrMS<=&9$5%(&yToKwkw#GNpDjKXVIxh zBUBI<JWX5co4O#x$&yQ|*>A(!$bF!SbMOD6TD$*t2I$BeX93>kOWgV8_>@293nzS} zDCsv=VLzJiHpRLRkBM~;kB_zOJ_83!{07gM?W`_4k$;mu#=me$0_tugrGzd?)+K$x zZa*sN66D_Tfj=5T-GgId99&L^PaL@@fM|5mi@f6LU7AMd&2?^oW^wNR>XBys!&o(I zshSn{HWxOl?Uh`sCOOvLPR%;OSv~WANXQ2maEDb`*>SFPyY7*}YK)bDwYb~In$38% z<B8QB9s>gA#&ZWwichgCCwn?uF70wo5PGDemRmdZYJBd(Wljp3K9AA)Y~z+MFfHiL zmW=Be)yZ}ZKg4BB?-&bk;9s2Z)?!KqzybO@0DX|IS-=}m^DlrrJ;3=7>ltn4=omU< zaE}hG>&OU8GWgqBH1;go*1da-9NG8U=<HdA?O37aXU({D@1cdT^YQTUk%k6HF@-kT z1M&W1I|Nvkj9^CFtGOXqFhK-2b$$^|jgR4dm9ET?|A|d7;^+CT=eJqR-K?Yx0Kp(F ztpqz^2yM1lGLDGRxbfeC|3As&|7Y^}|6YJ-uK)Qjgg=5sUXSZvO-DBg{EKMViR{;n zas6*`#^{$_OoT7xh9X?T+oaRqKM4Y7OaVfim|u7g0Pk4Nf23~8;A}Cy9^KFU`f$`d zD0cnxe^{dCb-Vs;IN7?poVI08q)okQ#Yw^);Y@dS3=KE70BWbBVYq+^G1iPBv!YwG z!6+FxFxAC~Y#%*32zS9K@q8Xvy{FkJZs&pKKyDtGg-~dR89F*?odF8jxh16ZxGBKx zUZCO#av|pk>0STh>xxaUQvO%y)mKJ(HAe^!o^#MI-!tOECF-6T0(#NS4+Jlm0ZisK zd5q662~MQpX8~f`9X+lQmfmO(M$dy2N6mxWdfm47oQbs8z|suGonXpZ*Z+oXw=hMc zpiv1hC47Pz2L3JhxaNeJ4?K6}=7XT0gKa#7kg6jRTZAe6xHpE)<P&KkF1|pOLJ-C- zgCW?l5ffNQ4H4H_-6C^%9CUB$ez90Ap`m~!B-t)bmdvUKwcrV7g88?7lXsNZ_wvpg z{NQ@c2kz3aDhx}=yp607nB4p2nhpMkgv}}c(*vbP=rB5u9I?Z=YopeyL3rF2uhdZY z*ws0{XYu+dQ_-Ih`*%?;??_O*cSIs5w>*NUTyQNd7&LneM2$CeO@{#7v))F?nQUTY z1SY#X_OBr+&MLft8Xp_|c#bTw_?J`N81jysAG9hSlGn<3ZQhB%7A})LB?ymha$S+n z+K5XIj%sye4tR0n_OOuxEdC+&GvNaYY`jI&7FHEjVMIMr0I4ByZcQx!M{o*c-?$xx zATsqCsEn!=fZ!m;R4bqe96|5bS_nu*W$j`>A{_A;!*S{!*PAZ;EXY$>hvh%9%Op_< zYZe<}qJjS)kNz#R=wmoFRT+sQy5o46;&Z~EZ(ID4e?N;q9lUY$&*a4xfh`d99lA(9 zQx5k>n34xj8R7K?)(?2~+%d8n%`SC!j&>MRJ%A_EcPk=*MNHbD{YFkW#Z+gstY*_1 ztBrTCx7SXxOgD`bV0K_+`G_*7i$|}wSH~__J<Z&c{x7d#4fKCT@5eV(mzWvZ`vY<c zK+R9<q~#?r7$+?ovG=Imh&z@ohy->`%*8l8M8M3=T?qw^*S?K_BWwxOKwVNT8I13e zWQiadXcie_+A1e9-Td-y$kisw)o2_0%C+M*ae(TB;G<dT?d^W4N+4tpsc%%e6>-1V zfDHnMVHy(bFk@6D;}py;r4=w50r7Bojgo7o9s?7+$^bK?krpuIKPD0CH=sHsBN$z& zLlbvb!8=YGhgVlD`ga^Zgp%_vk6l)<#;(bcvPaDV!S!RMlFYS=(UAr%S7K2P88laD zW1Uc4>(Sztv-l4w)4KFmVIo;v){I(`UFMo48THYLSe3uDI<yr8#HZyh#AGcP%7FRe z2rreqEUe+<E-;<ADbDJpQ5G@fC^7id{7HUirAlG}`P|0QH0R!f)NH3fSVz?i3H>rH zfd!QN4VCpxPqA4Fn|uD9lW~~&UVQS_{ylU3vQ2T{t#VdZRwO2GK|^t7!=zY$miTw- zn~ugqJLmf0cl-sBGVzXasIU9?1eaLA%ERU0S{x^3p&k8uD7^ng^DR)96W^cp4zu1V zkM-|1U*sQh<DwJiM=A~CV%prF;Ws!Ak27AmS&)x{Ss;fScmWLfhyW%)_>I*7O%M`1 zA_82E0U-br@POE2L97yp0leb?b~a#f?tLx~us<)!0c^Jx$G(LZMj%<>^)E+G#yh~f z9|*5(0lZR8$Nn^U?E_wbv{Eq3j)oaP6wrX21sLEOx0AHxp#cLi?{E%ay4Y+JD>QRn z#L%Bb5+t2pRx#ET!*DamlXv#-as3HHhfgkINHwR+D*T2j@9^ZEXEsi9{V`kkVv_XO zB!?MwhJ08E!N_oiu&fHzoaK&c2$K)>+$vb0&IuWk&vTblSxHZ>Aj&l75}~KX3dJ;G z7mVK)GyclKPppz@s#7?2qbP>E9cRvAz!4ljj`ee?9iVu%whw!3E$8~__~HIRP$o8R zgOLRm#ZP3W)UI{r4D=7t)|X=AURadyW@H~_nOd-ZJ4wUrTd-v7n>I6+0a&&T9|xA~ zWX?jZ+F?Pnny&^l|A!ZK83-O`kdFtCVUg-MG>HYC>9NR>dR_0mpaYxbeA)!5lE}5g zK!QNO0L6!X11z(V1{f_sls^xYeT6^)H2@000V)tXppxw$^bP|Qnoya8O{|ux<_yFH zm{|WyiE%FoFh9iUpzsAC%DYkjkmhdxOB6OzjJ(8Bj2`6{*9auMs_fM!b1RgM{MlT7 z#^@zlFfukKBSRznHglWoj7nAZ^pX52|NJWsX;Nv1p*cOXp)%R@`~E%i{IaKW90~Nx z3U@#kqZf5iu2h+{RsDOCe%T9d6L!ay6>JZl=}uBguSeuWpS0as1=!1!88Q`0a8H{6 z0aB^ZHNcQg3)mseE@mPryEPf(<Br$~C-e*rWPMt_BH@=Zsgh04lRf26{Lw*tbx+=C znz56Ho4KNL`{PnsOx_e%i~5IXib@yhoOG(H2WtDk0Lc9dNk6>PE|yilh-;}J&cwiO za#fEfFN3&U0E<u!Yi`lO{tWeN3IOyWNE6K$^bbQv;HUe>4fMZ=Lm#gw`}5!&8I)fQ zCquI7IYaVkH00p-Z(}g!m+df^Yg#Wqhg*e{D%5})DnTFB6R5;b$zXE+JujLDqo{=G zSXTU?RK-XYB^O1Y=MEKVKGWpgG?^(Nh*-$?@3GuL{S)Lja)Ft6L-yt1++5Ip8c!Dh ze1zKbfOngo%QyW`0DM+}X9!0C|EB|eH#3ZhGQ{=m7Uqm2jmNjpz@ihGE`mD@tSGq9 z`gnO_271Glnl>nfrE%27O;StiT;F3nlirgYzT>2OY3uD3VW;CM2sv(gqtKjqq^f&2 zizkGDTh4~tZFQSi^4uPQvz3wLlXml%4+l{-R>Auap5As=f4xRLk_2ZZLp_No3Yyio zPpL1F-m)b!No<jCpF%`HV0jhZ=iGakc39!z=Da?lgD>#HxIect)%2=R|KopuK-2b3 zL<L5b>G~4xKdS`Daa!P&B_?l+^}j~^P^#%hctxn&P-;-)+{vVzMD5jBj#iRR^Wn8v zZMPCbs(QfwY6^->HaJm5@empAwFwwuATJ=Fe7U-xgYHx&vWGcRs%aBKiML~(U%82j zDo+m3YEu7;N~T*eLhlB<;28MNd69Zm`OBO_$j*W{$iJraeE*Y<qk8$>eu+oVdRb<D z{LHz?O|RO{7^!GGZLADBYrd<c%!pU8vJlS4&%AaL<JO;tNhQ_s{SBH{HraabU@q%I zk!^+pdia9eD`}tH-SLnXnygfGS*rM}(ml!V_l5>|>wwZEEB}kRcITMt6Z%}cnbwDB zJ)K07ON6o_gMtmXJ4!N(^VOdbKlAo#t?K);2ArCphZEzrq?(wqZ+biC`jy)S&o2m` zL4M|_83+SdI}DXbZz4KIc$-lu@Q$pHa`Nz~&)M1M=j35yp&}%EQv%oL&))~Xoeaeg zVBfHgN(H`gV4?`iCO!fiY$MSBp!}{5+Mi7}Jq=mg>^5<BG?ziFK^YjBYS*8*doNdi z734)vo`T=?Q}2Xzd?Wupx9NcESMCQ<g^?Dut3vA;NDU53^}T}2C&V*>@FY=W(NBob zf=CU6^;9Bs0BT`cMP1l(pjPbX2o2b1Jd|kxo`ZWO1{?zY4p6y&kJ40$oMeAuWV?2z zB^wM#M*CHrsmi7*%cD1hW0H-75aA{+D1}iGQSHlKlh@-X{3<({!S0kl<(W5y>CDr_ zWO8XbZ>w*5HV3#W@XK^z<g3AbN)U!)s%$3mj`*2ZRvYH30$xis4KWd4GjIckH<PGJ zvu()RA)w)iCs0qU?cW2a`XQt*@&u}e3(!Z+1=CLpHUp9}x?;dbe`qPy>B%+3J=uE@ z_6pZ;asRr=V*kcSGgD<L>$6ti7x!NA-h>7Yn_W=JgDLzUK{YQakF_2-!TH`UCGx*k z7pr~7x$kik_+~s&yWY9)Ull0%nyW9%A2NY&ru1d`-w;TozozAzEFW(BGowpb{Z<_p zzuI{YvqKfc?K+ys{NCb+;}PqJ)-;C&E6L5yCJia);u8wxjr~?ROXJOP+BYlCpH<CH zSu3wv<t**!;(s&bbn%jF3+G&RIxhTH1R9D3v8%KfxON5mH{)KY7`;LGz>Gu4f)>Bn z*ZkG<W?!?1$EfnYNwO8AV$LwkSuH7w-SeGFZ3;Ra3)tBzY+tT*qjIh@UUlL@J~oP- zj>w;qFKsN(bNSeib~;`IrxX4qqhP|Jfn2pqDn?bj0M}HbB7AJt3of`Q#2>TA{u_Ho z1^jt{Zo<9?d5CRic;aXU)cJ$UO;4S7MCQ2OW>oa-!x`k-!mzo1vXtRXf?S6|t{)SX zNPp*8tnFCH`JPH5p0S=}M))veow9F?^(T1qW7VnjgvW48(b2_5`!$>sNICHy|E{{Y ze-~Tb--^fm%kTq)#%I6W4J?<Q%UQh<?w^7hy3@Plonyg;>8Wc8HhNj_y_EN+3$irC zJahotSNI>Pedg{jam&SBUx@p&!l3irXi3-KHI+HjDDiDU+`EoFMfT9AX=78~K_Haz z$Q)jvqVb4(tj}#*Tk6)nu;kwgchN1rA%tkh{@LGI<q~d%p0TQ}XAuB5NQUa1ADKfc zV*#PBt22Cg)<{=^O~=cO?>*l($OSBx$q|o<%O2#z3Vi{6_;Slj`m&M8?C<#(>}Tq` zL6d(a&QA)QKL7;)=9h6r)q%xxyeIp}NP6bSbbL%4-;r#~=QT&_*t?#1aF>}M59`r3 zVkKer+Urd+@Dpb(Z&K>$`%>CoW6Z3;$3ya7%Kv65b^vY@MlZPkdNRQs675W*qIm5l z_D6ZaH5=P$(VloT>#aGo({cN}o<jqU+g-Z`7dpa`IaT1`Y+Z;kobu;X$7|nkmajvA zf#zoFn|hN?&!j>dlj+J8@pN4X*F*7ITqD(YX$!lH3XGeIzec`uAHbK6yr{`jNsb<P zXX&=Zto#*)sB8tbF<2LJZ^U8OzZ}I2hnja6tJ%vZOIl=bCCjQ{Iq@D)c_{MY(F}8P z$vB)6(gOBbRIXkrSNmUi{poS#Qyxb|1dQc>N%hI5-gtDA8|v|PK+jbP&Q887_a`q? zxtxX3)Hq(k<Q#0Kbq@Aa-Z@zJh;y)_Lcd_KgWV-9pJWGzv#`Lqw>}+ijd?Z6bVE2D z14mlMduL&Rf)l>QrHr^+NI!D>2W~nZ`BEyKikzSF_9MDznkepzDgMn=usT!sOEw_A zL9UI7>X20I5GqW!C%WJ3(}1pt-NS(f;cELFx{5sPEc-OQl2=T|Kasu|JGot4<Q97z zN_or}DI~y)bQ#EI#`MSB%Y5N}#$SFic^v>RUdBzP;1rsZzAh5D$=q3Fd}L1V9Xe%2 zBE(_(m*Sx}uzg2k?6iN3vKfSQ<&VgvdtcD@GLj{8s=cY@;L5iVX@=u?$qGF`v}w@_ zw`mhg8P&k3u;-xhi0<gXlgSd$UzSE@MqY1bnCLbGDh;a1F@hkOxZGxG9O2>F9Y$-@ zN})yGerm{hjoFxXEdrycTxN=JE@Z1YE98#uGhTt7B#+Sef$X1Ai0*5-tXfW-Dsvze z+;j&|9;63#chm3w7)XzdfK=z%{y0cKX7}&j2iLVU=RblgmmItk4;=)q`Tf?m!&v>? zOI~_(9SVp5xt;sYAZ`RnvsV%neVUV=IW89Mj;9;I7P>Z^2=%fu<Zt@cShUMHb;@ow zi4A-WnmrBB@@RHN$RZe59i%IZeg(L|uLSoaO~=d>%3-i<-v~&0J_IDYES7Qpa;SQw zKe$k}_!i@6CC31fbLf=-Qx+gxZvn!ULNvaOpNS&|;WiI#oRgk3(mnR%2Gl(>9}2p6 z0mznzL!*Vmky+`=anrR2&L3Nm77%9>C}953rQ`TN^!g#QKu`H!8zI!(T#=|9blM%^ zk_h#W0n!Me-u-?;{RdLgNkEk-Ak?oo%V$D(A=HD0P;aw@x*;IcwL|Zt)9)3~=?mEV zZ8u!R4Rz({^`f}$tThz-t?U)l8t_3Xhi=yw((O>MI<frw#b#DMaXi_+z>w`hk?paT zR_E&jPPQIH!Qaa6qx&CRPXYbjPh&oieqX?;!xNz0#mw6nrw$-=ZHLD?%g+e|8gDDM zySA5xj+ZQQzRIq-xv;s5<6k&>Y^C-Qdfq2Lj~sy*_SQt%qJQxOh(klmmzfiype*l; zzlFP?o0b{C?RT2Hbv$W%xXxtaY(baFRl>be7qm>u0T>ej*uaEE-UY>MOt*x234Z`5 zfW8?%0C6(RU8Fzd?I~miFbK;GKKHL<iafM<FUI`(O7VlP*de^Ix?OpGaL-{$Hcq=n zk$0p5r~MlmtlBOo9p(ibFJex|(>WYZ;GFokLU2t6i{iCIb(R^x7hVY_Zw7(v^<39- z{2_hgIbshl$J#V;#VZ2-uqHGV54{qDKO}_eV<_Igoay>8>7Q0@heNm}msc<H!s9hr zpUzFzH-?@x^3wbH!v&T<R0RCtQJ&cl{~Tjy^#S|=OdQPdhoz9NZ1V{H`cwGBZlOTH zAASR_SpM)hbO-(*V7^M^|9fDbDtIJ9$HDU#^yNPRPs0zi(1jno`;Pd5qyvsn3kPtf zePon$fMdb1MA3s}uzcxHOaBqkMLQnAXW9P&KJoNaTajTbY-T6WCH;<c_$9=DNFub$ zNF;fDgK6gQZSNn)H;E$#-@1%EvLnDZv4=jV{jbFyJ`CS_g>UEv4cB}!<*lKwCzD|g zjnxja;ewER)7ZyNW0@Ihtfl`K67@&vKT48^BCT{EkwsRTeyl3xUtFE=*iqXlAw)aD zh8IYEn5Z3c+V>L^ml6B=cyv!Z`il4Lp%=JO(AzKJeY>s`93(0Cv@rMM(E)FRJ`cyE zYXUK_c7u~%M2hseU&4{&;(!~oWGf3D!$t6PEBVQ>EbPI^dBZdynA&pZ`Z`1oaW9z9 zZO`Sv+dK48={LJWp`(e=P$D!KuYIcJGwKe#N}}pBvNm_Jc1|kqIQZ>nSlgAEX&-tg z5!xGCPx2*Opn6pwDE}H;a<1iLUC_kc?SsyJTL6R+_qY!#+Aa5W1G?6oQ{Us6fdSp_ ztitUk!CMawJ!I&`NIAAWbn~t+B%7W}M2Fl^Hyod%G)B_X`q-s6taZJe$2Tkc#KaIR zsSb{_DS>M{az>R?poz5&92@El>QA3r6dg|AEFnQ4wiq2fI(;ki%HqiVkfs9p1^rE2 z3$on>9pd~kh(t%SXYw@j#@f~!cmRyMSwQ0i8r8rn$H}r>j4P}`jAd*A&1c)*KzJRR zk>lqe37!AoOggaN+j36ZQAEV+Xr=qWq7|K|iTl5yb=Ad0G2UIF><-?7{<6rUg3y{F z&aR8znv(?D<ymY_3dFg45KX~Sqrm8607uRUIPJo9ofDXeX_htIp74#QFn(|Rq&Y9Z zx=8w^&yPdzB=i1OWlx)ur7AGC{S>VQQFA8p@5c0cy5DZ*m0YMYp2mtFEyGgXw%DvS z6yH@2ip|AZLmk_0l*_8hwx9Zv2ag>aS|0ST_4e`;i2FQ5z`6HZj7FBj2?gWF`rUid ztl$49kIav7U7M{lgVs(pAna)SkEKZ#=bYy7o-z<wE}TQ9<E*~8qV-6z(|#!ttw*rG zZ#@D~F4yPuga=eX+Y?I*=SlW+)P&r`Nr)_3oR~3{-=PZA4cN+KE?u9#t<J@4FO4S8 zP2Ul@E>7$M>1y0m`o_LeeYnv@tyQP53x_^u#?Q#-@$=@%R=u}&7Pji$jNh~rs_7de zH3AvO8>F8});`yAtzRN*dDr!hq`ZBymaiklLi9d7uJdP=@>uN8!bl!{H}5xQ?);S* zrpJN*LTQ5*YhbS9cOw^RFZr&iT`aVt1sD!>upZ=FgAy%BHsR@ae&4V^KF&oVwWTsy zuM4+K@HWO!IeUjQ-=z0uG)Dm{7+2u*O`P3k`wi;W6}5i5`~>2z(st&(j}w{wEB;X* zM;A7k@m#<01EBufGtpTV{<&DvYE>%yh4huigfQQ_!cW%KZn-<jrY*YOwRhK*xNhy1 zyK3Vljc9n+-Zc%`d2U7P;gXiyZacqKrin;qMXiU6mz;v|URM=jGtOAIm(+3TqgRIg zN*+HaWNBFTTpA*J)Ot9)<VBMQ3zm^g$}_YP{1ASsBk2i$qipYeLfM$7X5S=xdL*|` zVu~op-%0-Oli!>TQU^;6s>VuNmzJY=lxMlPe{o&hzryvei2Eq6L;a!WS<m0K2m*Sc zahaid+@>!uTCv(AcPC=C@7z@fFlM3-oZ+(maaMn$qOSEl4kdn%;%+;a_fX5#{4ZX@ z4neFcbWB%fpeu+~vpgt+hSf0-)|94d*DU#`z?z=a;U#;Ny8G2)eavT34pKTD-xezM z1@l=cO)^t#yfa9{X_aF`kI-KO7frNmF%T9$Oz7^litB9GWav_Q;$IUcdQL9-Cq(B_ zqV@K&u`S~@Sa$xq{ylpUtrt0OcA+AIp80c|V}3(emS4`Qi?NQXtAH^{F=8*Nqq9jb zB($&bFRqg1(%J%vVnty<@Hjpk)aQ0=ZK-tqFE_ikg#7y7^&41sj^NYi;x*sqHfQgh zJ~p@ha(&O$$io=MWRG=>E#f4{v123sJC43B4(>yRs>GcrQx|%x8)H*V_H3EU@}P*Y z4w-2i!il#>q@GMQ{l+N54>;w&iB$37K-?*BHz%2rkT%!bo@yFMLCsFxnqsj$9d$Gt zVs6`u!>ROzI*y}C7}rYnLHaY#?t15#i~73V*YY-3WlDQ!Der3Z<42Vm^-%lyyr5oG zZnQefALp4$FDym$oqo_|*P%;o^M+#H+bQpr6tbHlvRnBV;8WW%sP+ql5x`KwFL7LY ztR7;rPz64rmh*ttn_cp6$llfqI-fH@dT40KS=Aod%lm<tbCxVLn&g3NvoOBhYzG*Z z5vLt+t^hrH-B1>wOvQiSn_Y45>S3FylCO2)1J2YgZ}z)DFGP5Q363Qc3%lMvw{3kT ziLdCgsrF_TpD%>G>sxQdYacOPciPv{ine1I2ux*kb6xPm4`gQ&HuEmmtzU*4v!61N zt>h^}WHrF+b(Y_gD?{VwqQw&!Tn1X*O?pqvO;7sq3jZXU6NYAEn97gkUN5L0_oq53 zOi9|FD04%5Xn1k18!_0%TSQzC&UZmk!<m1WiF^!Cde^Nzu;eHC`8K^vw;oT^t;b+s z4HyXLTwKUG(Xc|7rh_1;2a6#3Qe3MKB3@nd(v@FHp-eYJB<^|c3X`5DB-kpuQxXM3 zS5_Z-FV{qGmKvA{b2CN0joz%`Oo$eG-!bj$&R!S55qw#~8LbZj&eejm^UIUikOfA? z*cS;%A`GEDfJsm(fK#sa4+YS7&&vbo`6Ul$U!telCF<aa9V7ff4LBWqbyf%UhyHKt zFCMA?0QEOfzo8x3uZYp+=wtr$X?1<mZr6Jzm7ZJ5JZH9<N&c$a{R%j|KNB7Zru0-s zD&<{|>iFfmuGEz;Efd^y!x?TAnf=HYZ@V0YF_H}T6HWbyktV!yUM~rI4VomElrqaN z+~PHqDo|zujAprRtn(V)P1UYlg3|zlA6?*0wZ$7S22>m56#2w+)<OGO9x$!9;B|6v zOfocJ(la=apK2Bm)y^pw>^<OorE8J1JvQikG`1J)9dydC-0Q4g`-c5+a}QTCa<}8I zZk+z|9OAh>mLc(QvbJx@zj=q-b{~~>7KhQXIu5O=ecEaN8UshOOKi88AybjFm=`=t zA$Avba}SvUWkH}U`#;EGVg4C|e&GFa@P0Oc_uTYUv2<LwLRnvNy*-(~+77@uha)oj z7ko*1HyD`DbJKN>8y#@lhEM<2#byA$$)aL<*OonMu2WuCLLa-GiZJ(gca^(zXUN;z zHh8q{l~Bt`2k->9HULhz+em9UAX~V*p{IiRHnjv`vOlu6)Qb(PU+;P`CR29F%R?K` z0sq2uZ0PX<=BW7-oMoP2F72i_%o=-EQ-r9Meh~3!WF;?7<zBHBR^Fi8uj`1({M|F^ z^IH1c@*Q`>Y%!>!*kk4V2O<C?^DifagjuWz=GE+1$>yXb6kSW1*kh&q_ht#<I4n8~ z(ma);qO+>>EZgr?u+KhgQs(QF0mXTMw9ZFvJ=dEx&C)Dz=LuuQvex!&$iN}!PYqqs z@lN=8zRA^;ka=xezR9ybu*vU?wN3u8cF`m=3^l^_pz6H^>(fH(^=jAudUML#kn%Pk zOcZg9<}RAx`iWBi8hLkjR$Wz<YPuP@uC781zg1s37r*KRw@D{~_DI56t3$ITS5-r7 zr!cRW+fY=z#iv3CGZ)cTw<%F2H|(U0*WOTe_w%Z0NlhWD$o3$=Pv&Ja51c->D7(a9 zIOSzC1B8b*TYS>N_J!=HOOLuhtH+c-4*@9HO>5K++k6Gt$c0yAKJICKf)5Ltu0@A` zNjcjTEL3!<-V9<Ic~0XwUq$fL{&h7w-IbY7OdX5nef7Lg@^97@*PGRh5lBQ>GvgG* zsnwT!iW_vAGeZRYOR#+8{hE*RPAw<SDr@<)+xDI2(5WIj3%@cVUm<9I`*$oX;~zC^ zV*5#QHTjK#EHl26-sbNoQh%#idLy?<?#z^7e_~h`#4LMkCyak&Y&Bm-olcmRN}uzQ zt_m$GE3Y~UA@`h#)b0A8P5HL~G*+(tF0KMkkNv8hvXcy&w+FVJxp%@L3<_E@NNP($ zPu6!FY+3A&jg^db(>JnE_x7O?zv)6euin(<&xV@sQTVd5Sjp@#We|-_b1hWxTDpB> zx5UQk%*+2chITXQ4rjgwls3%LEGz;z(?)o?=(6j7L}?PF8QQ6E+iM({HZph0FRe#x zog!IyY|KxVd*ivmt7V+)7x{ISIlHnND-RUNxn-F{-xzCGk~Ihb6KWp^25nE&WV<FF zI#zg=LvoS`fcD^9)jEG^b1a=W+BWzeCwRSWT(S`NHc@xmd!<WePv5GBE;xB?5$enB zAjwnc)}ByY6(h(UTY7zpSN3yxRgJl>X8&yBSR^*_B{oqe55y-APTo87Sj+06f6mkM zI@kY+MqCO;Q6r`$0K^~A`V<3~qvHNYI<_voHSS+h%JH$2&vVP~UgXaUcl0j3ChmWw zY<4<)YW%#q%DXR4`E{i-ICfUM6*6-3L2XXz!1<bbwY3!LO_jLSfhorpX%Teuw@gE; zGv3F>3SM;q^9<;EdP4NK297~|_LfSszJhwVT<fJ4c3jOI4hACg^CgtRaGkQqb#Cg} z@0<)vNfc$zGt<1zc29ZEBEk|(-{5nhzU7|RTu8VReblZsqQ9}O5u9kd(GI!(4+OE4 ze|Cx$#7dHK9d^B(Lv26FF4<D)&;Rf@6-67YNH2DvynA`p%X@<M)q{0FtnEwVoqNBi z(=q-D$)@o4QlY)a1{bZU_ire5ea`ZzbpN(;P)1^LJ%$xA|K>@l&`aJSdU=}sR;XNg z9e|`P&NQKMGX4jIWwu7>(w*FHSC5@U(q9ZKARQxg(Z~2V=QLCbm!HbNi>gwn-)a*6 z<&)yPRA-XX?n7o43!JCIfhGJSoiq>Ni2Sad<NBPAuW~UBd+f{a8l!$2`3Ij#dit|w zq|&o+*)Xrh$UWJ%^(EBX5cBKGdAk0r@)T0Iv^#Zfde$^GY6dTp^fHYXad2a=P?PCu z;FkGAcRy0^-(4g4b!<Qq4B#go7z|TQZkTF<VY=rD4P$OH7&{;u*ABFV?)MvjYHcPM z*O%O&O<t$tM3`|BD1Q)u)V7+KKW7rp>P!?!=YT8_ebg_ffcEcGKrA$$^FVdsSO`<> zq<=GGMz4_a%W?a0AmNn9Bj>vQRn2(rFSjbL<|HYqTrlQmrhQCAaO*MN50=0%>$!Lg zn3alSz*}^uTHJ4_h8nmWW1AnTBV>kc1}~hBk=KX1N;Q`Y%S~&~`y}(iTd(=jUULei zfjAFRJVgF?^uH+c>k1MODFK7X%+7Kf{sCb*L;0bNPo>)<f2;JT={rqAu~Y4|x0eZn zu@{e>$Ds)Px)3(yo_C4X&D^+ZLRvGa*4UvgHjR$8aFl--JLeyB5u03B7~y91vWV)O zyyX+iOiesgcPkbM9oK`$#!%=+a-ghT%7-G~twv*gQmZ`&$NaiqcM#E-DpJfK!7**P zSMwtE?lJqU!NNshqK{!xjuCU_frvn45#DKEOd)XLUx!JbdEJ4RSQi%ri?ZX?VBvYv zzq^`gs<~N+N*qIPPQt~?U2j<H#lL2P{KpveEOv|^fKdxY9SSi@*i;p(jYmqCl<R$x z-pic!vjO^a6dl>jIb~yk0J;H&yHms}hAdKPU}E};X0G!kqH$4iUZUK&?^$sGj>eu> zU+LVpkpMFw>18Efc`w3=4GIk-sbv3(p29C7CeSB)!I}1-1OSN0HQL?3P2}Y6(^8>l zL|{G!DJxI-*Gw|ICG!ENR2ia7Vz3kaVo~EenKb@f7>d(zi{_8KHFHY`zx8l9W0CWH zawh%yQqz<ltr(-F6`Y>lV#Ab4-8QBudx%1Fbk)CxqtzX|TEfY+yscPuQ2{~DZY1%D zOf$Mac0m7Ve=edw3~Wl8qJYwh2uw6YpkpHV;k%|k<9Sto;NHjb{h^<0fO4)s_+iRy zyzjU!{faBnFsVPIm4+6w5;_E0S>m3jXL;KAQ*bEz3hHS~hYR}^@R0wYTN;ix7|p_7 zS<=>V16@Hi9X36`@<aM{@^Sszzx=p<P3DTIY%1W#H0HLC7@SqJILf#BZuFX~Z$3Hm z&lAR4_&^}R0YLW@zYUqcr#zd%>&i^Ibxa{>vTqyCz`Ptmb=RMbUaog~uU}+PXaC1F z%e7c@+Sij@G_MZ`gXNjkOdEw)2I1`|jy1Hei?9fvXtOk9Bzc(E%qe^~gj+(|K2h&M zqV=Z%%J9tmoFrKL@ERPt_x72SADJu1s~tgL0;$ZDLs|KvsO_LB!_K?bsN_6bC6pN` zSfevuY?Cr4QI=AyG`V(U9w*Esv)$T}`3$9#(N5^;TQk=HT9No?k+`yJv?q_gIxk0< zjkkCw8($I#7H2Bh|IkuqDfKDRCo=myxg<Bmfho$-ER#_}0~3;n8ItQVwK(0+UiTlT zyZ9HRn;E40Bkk}Gd_X%|wZTR^M&(;TTSwY|vB{^ng7z<k{T!DsQ$s?r{_K~{VYOC( zSy*nSl<(O=b2lITHoIH&8+TuTV08a8zx~Uj$Fhq}+uBu(5lM406s}X72PH!dN`^W# z-pWv4kl>b{Rc7by^n*jCYM){-v`3DrLXHB^$Wcf}5kVPQO4M+gKkMZ{l&Z;W`;?KD zda^^NgG^VK>B>ILw`lh$CX&65m^}T+P3!iR(2vpSmJ_q0fcfRvuFK0}^-Ut#0Mr?b zvl7L=%x_DX7_5=8J+*2SzWs)zi=3M6VzEegNX|qgy<UY)x-P;BfJI;%Oyw~XVHZmo z-H&KoTKSi96>XQuQzzdkakEjWXhJGu9jMye!F;6DnDf_N9*ckqpw+fJWYVo9UE5$W z7GBIg)n-0V%iKQE*4}I=!!}Z3=IXZHK_8utr;$6Tu!~rF@&pgN<>=Jxjd6ypJXXRX zL8tPNvFPgIvlgxVUUW`DAin9ri0naGsdC5IwVUi})lOa1N@J@3wSr~Rr@NfLUE?IS zIG-MN{<h0WbdOs@jl!N21DVO&h6$#y1rcW!Pd`zeXy@k0BHjg=W)TjNDA+c${M+N0 z<%-U{$tpMCBSxBh!EA4+XD#EEVsYjvQUH$3I-c2|Nem&dbgZQ+lEw%dawE}?7b}uw z{^uB$owQQJZp5-*K>URt@DJ*qRceI3>{r+s59&w#>MVbKn0r1iEn+(>bSW3g>iX@S zMDbSKQYYy^5_uB!S|Yt5f<41VV;G=SWV&pNTVn6ubUF6bb|+}(rd_Q5>4npF6Tuj0 zchpT^TAE7Fe=2`ppI;gp&r}G_#a>Q3fm@fno?S$px%Gf)R|hj9l)$+l$8&>r-J)ru z659@!eCzxKZ$?5h4a8g|*}XeFHytl8zbKs=UzG})mcoF!Z9F2M(UPj2@2Q=nb<>G* zbVn1a{qdnv1fGyfd%DV#wcWI5EOm`)kFG~N4o=_yufgdY#-#vGrxP3vr_u098u*-E z0H2iq=jhkZ)+)E-G#OUd{k=?l5fhzDA;nF<f<&NI_aLk8C!C6s?7qGEarfs{#u%eA zr{gWCXu_|InAO&+CXkARtr<ClDsd$HERm8|5o=A3M@_gaBI)p9lVL$5Z04T?k;LKb z14IV+<(K0vr|m_j?Z{ZC<Ijo5QC;<P-S1oH+`l1vg-IC)7_h$w;F8&Y#5pYTYyo}C z)3qETk6KFDg~aq;KANQj+WiO3q$A?}YYHd&pkd{inN^x#8zdsOFqfE~e_H~NP9S9u ze*nu*Pd4+>^^PJ(h|FcqM#GaQu;_!xt(m89X6Bs<`#{mVG}|HBZ-x3-s{U0PCNz?D zUuH5{vv0v33I+VkJf?DX_1ihQF~Ip^=X=jf=;KOG=ca0YOWA>j|I0Hz{-R)HFGJRv zU%={qi&+mHaBgOY;pVTiHL`~EH}^Q}*KtwU(Y4O{r#g8)Nt|2|vypLapHne+uT$~m zK^Gg2^|6C%+0p-JT7Yw?cVp>!A&B{659JYNTRY<ED~@3^+wx73E43w=F58$R1+-w> zAPNdLG4HyfRJB^Aph)dajbT1_T}a)i3Y+@}dC|2TG~!y*2qJs=y1jy5vXoXpjUu#y zKC_tu?cwHVj9%tHQv?O63x_TUXUFh4z_$@NJ;W-_!fA%7^*A`aDmd*r9!|Fuz-fH| zr_G%o4yP@7IDyFjKY)`a*dKwDnQg70Xc6odsC<Fnm0^4j6+<}30+0YI$xwFyPjH8w zlA9Z<A&YgqEbZf8GY+dYrZ?|#)<50ptbc=_#U^L{_UD}S8~CjOYRy}8pHM@e9bR4d z`E`c*F1Jf#jI48)E6>+GO5}3Kn2Ho4-c<)%whplyK##jzuFAWs?k$M2({Ur~6dlO% zPfo`$h~r3782ZhMCR7pkzZ_14E)H`Pf`do9o%C$zqCRpw{p8W#OLWub@=pfetJ}K6 zqm#t+`2=IH79TUs@P;pkLk;2V0Vt@Ow#xzV)2=TvFMQmJj3+?5(w7~B3=9Hdkl!Xm za(bC?8>V32+XAHr=z!!V9PL<brMG2E7VO^!<EjR;%RB^<tvq|6g8}>(YHPE`S^vcS zcDih@8*n~a_nHfzdamuoqh4Qhd)v`a%VdsK{bf2n?N~BB|Nc_9#By#LQcO1OO%?+( zPBHOoBet$Ih^{Nm_M6jh$M<YZ(6e)ZMZQ1O#4aW>OZvj2l80T7<6LD)dJYj_*w28T zlNjZ37t*t-x9%-9b&uP`okiigpn3pdJ{Dzv%#uc`O?K2FC#((;DDy%jguEK?k-BEH zq(~$ZOJ}VdnHM6Bgc%5r=cC|C+C^o@HmHNdtoHwf*dsdJiu0rF{R9FgV}v7WS*%*J zkJFYsVc(Z&dvA<U`L%x|$bErwFC>7z*|6Uqa$xW=&=PBPU>M9B39?4mGqRua6)Rmj zSFF!1CbfAgCG;S5W<ITj-yrQYdxJU6n>G^K-yLICl2+!!J9HrG<%Pe@-@k*V<sR}f zfh_0KYJ7(bYnF=LY0;VaEyW<4!rx>)v$W+hwMbuRk($bSIc+U>$V!uw-r-RVOrOTW zTRA0H$UQ5`GBqq)vu9EB^sU%e-_D9rg{V~10$Yq}N9N9>V{-YIJYnEs2U!UzHS^q& zG03OL##Btcg0AGd@P&dR?lEvOSzX-t#{D^!{^e+4FRBJEZaHIFM=M~+AEtzzW0kP0 z(V3cVAqOB0IPFsy#$Pi<kqx>toj|q#X!ZbR!B7ftG&VP)W@Bg+)Gj|YSG;%F_VaD6 z{ORY?%n)zc*CEJ4JYk@bxU$b6>yM84AyOZ^`OLFy7qWxF<R5c5S(v;!L?M5nfM7Qo zq~AY$JV+lha?$jyPV^x&N?^lrXfUevKR`q>z{!3ewalos447&A^S{9>o90v?SFk5( zJ&~K;dnbza!B~;i@t>o@9I~z7L25+PVcsWm&HbVj>oeY`ykO(^^8S<Oc#k_bZcsu9 z=8aqqbmM*ndhva6a<8%1d<)S1dYBP2@@MArztzxLWzu1NDhIOm(`n|DRk%x^7I!Kj zwi7=xAhaE`>?K?AfXZLPw^`N1t{)VfXEjqXJBVX$pmk)KMl1<Rm2}Xg=i59^pp)zg zg)>gYcUVzR{3psLVM8v>38t=zUC)}N>l8iURNM+Z98+eKE)0@Rd`)Rg`L^nrChLS} zXeKOSV#k+G;%HNwq)n4U|1#7#hGc35CH{K1N&4}xlawq|Zn0S&2(ol53(WS$b$mSM zdOo_|&!w5B*oSk);@9WT`9i90QcbwX6!BMk`RsaabpVmXQVKW~Ka|4RsrUzD3|R5g zY7_EhyY04pv8bh5)?EAp6W|ucpbKQE5i+#NtP8KCv)Ml!%RF4N&Gmh46lIoP!DK-| zU#q5e(TFamV(ic_41b}oZ?9w@GCkoSkLkNILx&C?8~Q<Be}aN>SLTGn#C6#8zOT+@ zp7?jQeFq<Z&D-?e%uB-uk7chOjlA$(>q;LSIR8;q!$v%o)7vxGhuFTSNn=`P6fK$8 zhD}p?%zdUE6TffL9d?~WU*^+Fruo@O57HCA8+`KCW-3hqyIRiRGhLU_Otz0{t<;@L zE#%#`WOv?9Vy!hvz3dXX4#C`ZL8L(%zecZ5W~JK?VXMoUYrD5zZ!Fi=%Y?ke<v$$n zdm1VHYt*qMX<6W%!cmh|7gt8th}U90x}k)AAB$}$2HLDzdRvMQeT?E-N@9mjV@!-b zPPq^5^iEMmQ5iSd=Y=-Ninxf3%0ILYczI*7$Su#89F%F(4L!v967Ky{Q98_K)8-2c zim{E!*?)|(N4@8@0U=pb27wS0krB2o4KZ2B|M?tF5SwTv5ifS%oELUOY|NvE@DXFr zJR>oDe!<@{s+bZ9iM3HAgwy^>1JC`=75nSGr@Ve|GxVqCMFfxanV;@vsu5z!)L>io z=D|$#Imsk%B1gZul_IB9P~?8+tj%mIUU{iW3(<NLyshCDsG4`VNvvj#z9qu@odrAj z4J+yhSq@-GQIjR+NeJ5&YpMTD0vq|g#g60^JM`~}J{=}Xw{6wzCA8pe#rG=jpjx(z zxW*UsZ@-efsU)ulB{!1uiZ}FaK$-UIZO?wEahL-CpoH%cc%GkZJW$}poU5K9^rF(y zLUK8cd+Eg!$XC}zYV>`B>ZGk#2_oH@pZ;EeE7!+_bIsdioVu4}*SxB>sOD>4Q_<@( zpWOx6c-y2T8NDIuUG+4-^(rh8ecP1x6_rOWb?BP)N;|By@2JdSQf$a%Wd(x;%4R-Z zJ>{oA0{Ss$>Nc8n`GmAW7}M(ex_Fcf;vm=JL(;j4yIf_ZawF}2ld8{J<5V~lQBhw+ z%PT4)6!7W6+vhAvcw4#;pV6H?Jslq3Hdqqv;clHyoey{z>&w65sq3>ke$EU19#cY% z-fgAcHD$D-A{=oyB=`c>Lih^JSOFUM67WBVuQdjJYjRjylfzoJ(SJsMQd+FVIlpGX z=<V~oJ$Tv;KOAa_de@YyG2ePnjVViR2uIWgolQNRk;Crd8%$WuYo&5Ym32*o3C|!r zgbk16_v7YYhEimIvC=$$lbcUg1Ixr(W&{e?dy0|4aUecgpGLS|Mr!>TPW^Qj44IC- z#xASlM+96p51rMq@|mShdp%*qo<^mfS?zS3PuP!PT;{ZY)+Bv2(#XuT${yN&{u4iB zfUzxKW`rlbwMQ0`BJR&F^Diq!G@IeaCJ}$d)B3j|#yMglr*Wi>M~xq=oZibzb>?#@ zRq;v*QFq!mz#+7_P*vK%5PQWC&95tqd2=c=HT%aDp?_{<_4ABl6wgW^BL(R>>92xh zwW6GkvdrGc;=x$h{R3OU`<<&lAEw>HyM%vHc|C>*G;Zp8Oc?OY{UnHU7Ubg7dv71> zwEvv8_?MQG)({vdZ==wAZ`&SRx;Rt!dE7kVUs_3!xA{`iHdFNh=gRS#K0Lo1PBvX$ z$+X|VPt;@Tfc`zJ&4=%y3ypbCxJ?6ePu2+w<PWA12P-=h(I@GN6v+C^Y<mOW6fhlp zzK{wab^JRvHCmx4Ns?oCg#~1;f1ZMo#!0yRYqW>vqi=unbyEa>5KSq}IYsIuvAX;Q z6au??0K&jd+4KVjHsPEFWhwvoD+E&hgQjaS?_H%nlA@~`Ad9DzL)Ht>DFuX>B*mh# zC+goNVJ>-qbV0Tju>5_qm#P(hk}xEorVr3;=eJI@Oj6|)P`xWe{uXQ@SvN0@q-g|% z3;OxdsHtoC^#R1?9sq!Yh-0u^)dp0fc3zH@ikGqta1Sqec|?9ax(}Df&#N!Lb&B_F z_p$Qx?yS7^W6r8Oamk12{4uxW&T9G9a$=qJfbb&jrRoZCnPzBzk`o8`Xujh&+VpEo zhMqHrFVDNE(ph#C!Q8?@ScU~PrUrli_L!of63&Cl5N9QAOnJkiAptSTP1%}Y%HH!t zhBTw7isAeCDq#j_250uZrj<l}DTB&%bviCVUeToeEgjUP1pr0a*;cQ~dB*M|XLRp5 zJ%%X*R5KRsb2^_!Wht43snY&aQsZO8^_Nt$%Wf7usV2mIi*t0qF7XLJK(Pv7hSY8^ zgwX_6U`6nyhPf*6n~A)WB{^Z`!W+qnexkfBBMnh#J+VSoVjVwGNvyLfQDwg5P*n%V z+$QV4In{K(sja^02@V%{k605k?``k-dT*PQEJ?v<o|I0h+AOE=ybSV>v$|a4glC&r z=cUK^u;g_tW!I{LRA^n>hEOW>2iz@9uibFxwECtw<rK8!-<dmX(DE_!ahPJVi9shl zrqiiVHlO~EKFKB1=w|k#G&9gIq%U~4ZSWmD5=w9EUsPJSrOlXB)88VyuU&kz-Jd^< z2!`_7jObmLXja>R9Ri5eI4)FTZgr9~`z5nmDL#M~AB~kUyAiR7_AqP+srdnuLgqg| zT2oOQ$WBGWh2;6|vix|Z&;4G(7S@Lj*@>tdatE#PM>uM<WVCD!@_Dag+s|bsPbQnt zYCOY+R=8!c;cv-MCRv+lIgio9ba@f}#mA$r!b+b5+U~o_+O8$9yBoCLKITTTX~wlg zhJyiJAxPv}P)g%u2KC^)^wb(1&Ayzm(ZH%g)wASB#w0qMxnKtyfP7FEeN2VcQ@KtG zh|glanbufEdl2K>zmLwENwWOYR1CQ?q|;DG&Mq0E$muEUGaLDKOjOh?!ebu7Tlti~ zyx#~wXT6~-g%*f<K1@uCt^dV_ZYEgx%g)xaH%jQD1T1JFks@*beIybl^CC2Iua+ar zzXOdBgW+bR`^{X1E~(#;vIg8Yc>BAD%e#-1bM~H{tVB1_^P}c&_rw;jd)yYMbC>vF zeK~u3?AxWEGNDR^Hah9w5sLeo%bc+3(+L}SsVZSVTBK@jG0LF1A^u%i!oS<cII9(N zOSm%?xt1?u<Gg$|-nk&sq%<cGx;~cXl%kXDiFfLtEuR*3A1>xFx!WWUM&HMN%6$)W z7$sWWAW!2nR7kVpkMeQ@FO4BZeN$1#I_F1jQSx^cb*sAAaSww{b@9jzio1bV5|i$m zvXHoybL_+{U_m2$3EcD$!oB_cNE5~2rk{L^l<yXDz_Z9p2jZp!@yPW`c&)<Mnv~a( z=z685C-KNvxv7Hay%f}C_WJJ4wd7V)!ALo3j)^NMt65D{I#b_QV_pyKA+A})DPFCi zQ$*dMAoZ%Lic?!}QSka)?@W8HlM^Cts^EwBq+dP}kM4~}QE>ipGlNO#rtDQ+@#s$Y zrp6aciH8p3@Rd^cQ7dSpJfWR@?B-*LO!T$0M3sIOI)&eYAeswdyQ1dv^|{2je5Xg9 zvqGkcQMu&qqeL9Xko(#X$;~L(s!Z-%J7*Ou^$o}6UWBU{x<IqlBwKerW9O_A*GJ`t zAqbn{IyTS<A;E+M<J2bzEePRI;b~{tE=Yh9a^#)a!zl`rE7rCq6hE(_(n(K6gwte} z)F;V?-&UkPP7YnkKE*`CjhScO1|w>e-})JD=m;c`%3D8y6?lD>=3o>*&4?eEf!9|v zlx5>SRQ&iw_Kt%6aIteFl(1O(06NQT&9HcrB%dXh@GO*f&d$p_lQqAoFnU<^Q>{z2 zl6pS8+SS=HREz##M1Go{FYi-^Ug-XS1{D~Oa?H*OQ}xx9TKl1$`B`?A#0Aa}SaKNq z6?6)CK5C>H1b(d{Qs~8TJ5*Pkx$w}K{37A+wGSX`cb&k+V)9G=_>SJYK7--2=$d#j z=XLodOMQqD53dq+^`+QP!#()okFV{%djPv8(qJ#df7=9@D@6PJq2<zQSvHJ7`o0AY zZIhh(v{oc~*^v2*KVWkQ8i5G!XX@v^IKt_rY(Jd&?z}vkSMVQR4wfkGSD}oS09i4_ zhC%}YaiWLJ#zFxnGCMO?eizr7M03S!X6h+nJ_S=(Q*!Le@E*zRLe!MEE0ABre`0<t ztk0o%2wwEx$bkYO-Pn-4r0tw#hV{UYIwTfIO232F#E}~tF)ETg=XEn(C7e%<d41e# zhNPaTy!8y`NdnI<*H?pAY;G;%O#B6YSt#b!W21ZnGWy!QjE;}Ym+p8>E)J}Wj-Q(I z<}gvOr2+W~%9>=n7A9W~XOBpB&#&J*jxD((*B)%w5H;($##-l&gLa);IDbE-YUa}> zIr_6rtk({_H>!Qe9HZN}_Ku&`dt5m1V#33%7Y)sR*{uG-TT}ORs7UU<8vIUKD3sqi zGv@Vk%^M)Os`A#)$b0VmM3ki*sz@rozA6!2n_@44W6$+XFJF|N^uQcHd}e~fAOey6 z$^@$zE-2i6$3GgcBP-rt-`b#x@>}WZ$Pm!g>r6cf>iK=jzlwTZrkfX~BmY1>;Sa0l zU$Wl>z$r+>;_M6T%d*DLKFd>cORE84`bP&fIkfuK3OB3$V6&1FWd02bn)e2<Vg>t| zp+(Lud-=CLv=)8l=<_MUc;<1BunK9tizkPI5Vw0wRsAV*d?!fZa^dPqQgF!-7}y-d za-9vKrG)x|+;E8?q?GNER?5mpR1qOjorr;a`h`KrrhjbYvkJE>KckCz^>i)M8J{E@ z-^J{k$Ne+#7#qf)iG0{}M{&lADJ3VLcEqCFh=6@P8S~zVMK?R`lf$BvwhISC9EO-i z1UiEZ)#;C0$H^D>o{{}+9c|N}b77CU&gvo_9Npc6LarOfK{4l|thuE;g>k@5&&6xI zP|mH5IVsq+xv(oGKW{yvk%Ab`MIf3;11ZibwOgfay4@^}qI=x*Bc{3}s%8)I`X+1+ z_eixv%0ZeCsQvhI%V0=buUb=OW;JVZYkNcb%$d8#V6QjKtEl4?^VL>vuA6T$+NcJ$ z9NQzhE0^n1JGveVSO3{5PNEov283<~(SdU56!br;UTbfoVQNKh#4)n4)Bd;RQalIC za$8x|3ve0ug3euvG|Bc=3t*R}gNCn<Qt)e?`PnAwy)5is#IT{^@K55~Ykb2Wjej<9 z^PUQI#l4|;^mQ`N^l$|lKZiAUUz~I+Nf+uOzAlc@K%d-x`6onm9cTj%4(ODCl8A0f z&-@tKibBMkOU$hFxgYcFc@A!()%@|EhKMLd^jU9xbUO%g0MA+p{JBOq5#U;@1F`5k zy1P{*m$GR<EQ-s{b>1^jja_lhv_+pWX)`3!vQz{m24V5IGT<Q-LqWe!c)vH1RzZr^ zDi(b$?%D4N9d?Sb3Xq4=UWUf`F~Vrqp#ggO5G8WYAI`By$3J4?5nHw@{zv)r4-=nV zN?CS&Vux3HEP>Vy{9cF{)lJ`}#f*ko+t9AO;?yze)dfv{X(x1#gZj;u$4pb6ByQsm z9Du5232qnTRgJ-9365;da?|r!tRqPPur1t%mKfK)^rLuk?I0P8$llrBBqvul;zUf8 zb$1*$n6-U(JVg;27)XB1=sdKvj)m3{y^^=kIth?<ZfL`K4;svMmMu2Kznzct1n(Nc z(xR5Lbj(e!;^c!o5gSy7y2~cj&z~1c@5r3}I-BFub=$J$J=;qYa<eE?{Ssu=+l#_l zWO0;gDbHUrKSeMBx}6J7%M%Y012_;{NPUJsHtv_iLGtWRQAXqnm&{anD$7qA*DFv| z%?@YPGJ~$5bEBMc2$|icE&0r7gZku##>}eh&y0|4`yV|NkM4@DJG3A&lONkuFC2Q% zfRl#+$zvrC=75G3gw-gc9MYf*`5vUE0%Xb~pTJfSukjWEY=21cBgiV`%Mm$Hr<EY1 z(8<GDZPouNzZt?{kD$p2L`1)C28TlN+3nolRX5`uXEnUexqr>%zPcGWf--M2fC~u` zlb71CZk1{d5*=_><IP14v6&t<{EI+)pVNM#;`!b~8|r2pMX$*VD=$tYTlC=eV1gV6 zy5D3oZdl&M?1r;&rNE!_qYJFM9RJ8`(fa{xDbKMf{GM#386mSpc{XO`>{vP-9Vm3N z2PweJ7r8EGdE)$C7y7z_+1&A2%F)Lg`S>F{({n)WklI8J@UlSG&;Wro`w()#id=a? zmfZMsEaYRZxFA!$xCMNpu<Wx2|MFD4WuA~wec=o=bQ8ZZVftYEHoL;UviaJmo)Jsm zenP`?90T3N-SO<-5F@$M6yvm4eKcRfGk`#`lyFKAO9_8LdWeo#jws1@RiLx_5d->E zlb!iQ*zt5xVG3#8Ciogpj{5WMA%ipAq_7VE9QfDa0{RvXlag6ehf5UYxrIZ*E)>3; zdT^qul7;W$VFNsw?S|~7CyiGfngjJ-H#RVo+O66&9prCkFVCdMdSgE&Zq?<^UXLxl z$0f7Y-V2pZH9M;x48$bXl-7>`TDE6gb|e<_^0e&DLEuKyHrbx<aJfT#*wm!rx$Wjr zb2LF!6(kO7x<ArtlG;j)azzxo+4Y`RIp(9P<HAn0sEVGuq5aydZl=Hkc#iq3AX21w zM!=*etL72k_o-5T1Im*=_cV3JPTTpBrNNd^5q~P;F`jB`m%`4fA=g8S5g^n_ILSgZ z#<XdVF8rb&7p5nj<~GfjtJnvPW1FP+4shO4AKFQZ_5AiAY!|1RAnRPpfihVMRk+5) zS+%#Gbp-d#q(b{HOrIMH4k0hIV+#aSo$g@nO@+Gku~CVYQslCgVnp@@jyP1$gvqox zmx)F{%loDvbF-~!BT?Ilnwy?<vJQU$Wz4&zT7QiK;cH^3E6^7}<TM8nfP`Nuf?ekM zh=CH0xW7o0W+EwsX3~L+6vfjKebL0`i_i@b=8M|N7b?lK^^t`4Dl$W`&XhCFaYy3g zwmO|&nPvj+HHBtBa1Xtc#4QTy-yfiX>NUYGPKTOc7eVw}DVUfN;=u(3Y(TOwgzaaS zOJu|pLTiV{&hT{JXX5Hd!jh&(Ec7HXbuliu<GIka&&BBV6>d)2=h9?oa{%aAXk+bO z=e`E`F&!~XJlISOS@_UnAr&7rt%(#!2(7dsfg$Ih$qgZr)IMri{PHPiW%OmQQjkwT zQrOHM!UCzn2D=FhMHMa;wiE6moOPjtw7}3F<gMRJ4FsBtbBGG4y&@E9n$UZIctdWq z8p@F%*LyZ8qr`P=8ETqU^DQ^=Wp58vf&yWQFT7%fs`*l5@(1L}5GH%bG5~Wxp9Bic z`aJcy-(a{}Ce#8ibra~;`p}l7$BmpKd7>=DG5cB~jTfcQtuRfa<)o+Oc4|CbFK1zo zni)VLL-nC-k{D;z>ldY`M#-V(3tlP2fML~SzHUr<2T8=n&VtB7^6e!b8K#?ZIl=dc z83RI(L|RRzef4I>o9kUoBX^Rke;%#kL%pYq-}`a|h=MoTG@@fmO&^f8ftkrbsmlza zB)ucbqS4I}9K1)6{3%G1+N?i<8#J|rS-d|_!2lkpQru?EeT@+m=G0UZ_?;s{fSML< zNpg=8)U%7cqEU6ki4^Xjpf&vV)Q9?{^wAI!++u?BfjSdtX^z-zQDQURHnAnWB5t|# z3zfdP-rH;AbOXp{#;aUBM3N6f`Cz2gw82uCynHD-Q-kgbye*(JwCG_{=g3V!W`fBi zY9p6nf|^W%G*?20D8NoH>q{)=9f9DSGW}rO!_7RGlD}j3apJ^}+ZrFY)9JieXbU}c z(=&fT5s*(X0qVdeucbX99PdDOECot&YI+m}vIOamQ=m_?e<xaEl*5hQ2{4bD0eL~O zOm$rSLR?)iQ=m9d8jW)-bi|m>#zLEtp?5XYTZv7Ej&fbmvKgc3kI*Cp3D6`02nv$? z0mXh8{n^V$Lx0W-=ui58OQ%RS$rGX{14==7*rXhxM>+Z<*uRhdOcVW~hrlrCSI~{6 zZs<MJ9n%-2-=xC%KJjMz{Em8eC8cCPP8Y2w?Cb?JP3ugNHKQpEn+Vo-ac`IF-^eXF z2VLA53Jr2=F0LCseuZZ|uc~zx56n7m6?!H>ZxGL7+y^Z8gjFFNQwRCbZ;#WGZ|OH! z@70;b9oK1aM{6(ZyJRSf`_NNkomb#G&MrM;wQKI)NF}1aM6Kijd_s21e$)amSof{V zF@^gY0Ydgf+6X_+S7cX_&azwiIP_1h@0MyC*_@NMSIBuA?15>!tNcjA$gXncGoMFe z{2AQWiap{%HnW_sMzS@c|63#Cabp>+&58cg*zGi;|D!107%anJjycPlb@1Z<YQbH{ zh$1C_O69(9z0H<u4Y3acv2-O4smyvKA^7()1WU`}os&+;L0L-s{3=@@e>MR5f4Iu7 zebBPt`)(1mf5f>Fm1&WUrgal>JQIa{KNJzuOu@@E(X{pxH%)TV7zV2`&WWf9(;~yp z>KjKy_<FYGVGx{Pqa;iHNy9C#BtqJ@?pQ=N8}WE8GY1hq*Q12FlKQCB$YRta+!U)a z(-lTymIK~)+JPl3Rck$<$qq0i@IalnQ!}z490XB+m}(I_k*)$G6Ru)G&NOQPG5C#q zvx|ncK`KKJxW<>3HjBvHq^28>sgWw2hBxOku9=&j8G<pWTOt|)RVz<*7*pLqtd(mk zBh*f{X?14Sic+S9^iYH+>Ag+`Vvj>aZ>A2iAH-TCDj2AK1Hz@^u3dzT#Letj%DZj~ ze1@DmlA$g5oV2{sNHW$NDTl<B!VPUF(H0~f7$*^1_zkCs1SiDys5i@x?pQ&X_rChj z+js$23Nd13msD+xe_aGmBgRO=P+5IJ$^kX6ASLoQH%Q-MmMVxlIk_iv#1!T2L}f?U z&6mbxdcj1{0qsXlUKg^d#6WHz;GhAE|9~Ngx`|D8nWq&U(^Ef30-+Tg;}P@0;-UDe z2x)qz5(vFWpcxo?KG=WR&#k(998bzd7~4$dS3LBBm6R6-5;NqT`zwtNl##6Kl19*O z4sEU-xchMmG?Fvp5()*{H)JHDA5cAy=9;zAhSUb__X&;N5N15N3A=pXYvNfJ>0R=v z-3kwzl(s(#Tb^Y(qr#;$UFo|>mwgg$BPF1n@CTjye$CmS>?Vq~^j>|`lHtF)R*1l? zvQP6bSmzjlBaYKkX<Wti0API+*kea9$y#1(n^dskO`6q@S>I^&V}e~qDk0cK(5!xt zOn5zR_499Yb>zb?gh9iZ&gv(1ag*wdb<Sn+$dV`YjKR=YXE8ewjAJl>jj_%Pij$%3 z0ohO*#_(x!uqfKbFs^l$9grGG9AAZ6=<VXp01nY+n*bqrWZ1;(&hn&Ato>iHiMTjF z#P}GVU1*aq8rNylcopt`AfMpeBuZKFiR*R4R-QdrKE0?=K`VCAM_C3d|0AVr4*Tx= zbFqt?XpqH|d<8lF{2lS<pUCpb0tXwLd88Ko(}Ju(7i4)!P8Vb-pO{H*MTU|<#8cD< zO%1vNyuTMHgCH#3uyRBB7D8dr<veN#5%19AN9^kCI6hFIF)C0IjV#R`G?OUhtu@t& zBtoo@sO_TRP$F~(R#jvvbt|#dhbCt#@_uiM8x*No6Vft1DNYP^-H7%>4bwu<>W9qi z#3|*dB&Ih~+w_o-0=0xu%~E1MX6t%NDw#%VBGq;kX9!NN=+Q)7`WtDW3e&0N+%inX z8~Ta5YpK*Bi*qcbU>T-(xU;DEmK2pO&aKG|X~%;+vt%KVg7vcY>!(BPCT_|x4szkJ zpAxh_6Pt$jz+yCd_3-Hsj+vRG*qj-rMKQp~k|+u~LNeVVF7+MjRI1PO8Y!XH@>8?S z+EU-Nn&XgqGIUrg=fzrplR`^X!<DpH4YBYQpU%gd&b36AQckayZO5<J0{W%(+EN@5 zK{7QBkp>N$vEuA;>orYI60G2nbMY)jq=7W+wTF3;zDRiTpIfi}+5dyJ+IJInlNk$Y z7G{fr#af{G2`FK(tbxA;D;tzWqgFO3i{2Z(oH-9VK#U<Sc1{0ZU99ES1<Qvy!uFq8 zoC&p+KDW5*BAopkq#Jp`tVo5;Ba60Rfx0xe1|3<I7A!^0!t|)LVP?H{ntEyZ0QQmh zbs&Lczeh6z@`pvoeZ^?!v$qhZm6@f9uRHgBj^#~u0kOeq??zq=jwc?!e?JUnGZwAI z7IPN!6iPLl=OYnq3$nJULyKj0@;7NGrc;TLaO-$>wnyYdk|GpqxBh30MA)5vmsIl# zBemh*NaS@ys>BtxB-f@<$d;sDQM4j#Neju8EQ~a!14Pax((LfR!9Ilc^cIq*h#d-o zem&c2a(<4F7e5?{ZsdL_=D*z1g|T<@>)9jjhHh}<5Pm0}_FKyZ431S$1oUb#MeFaN z90u<RzNzngyRq=w8+@b8IuTVhSz1z5r3=`STa6JxH$3A3%89X{^m;m%MP`#Z=B<x) zzsXkKGP9tdCpRdz`;BtJMg5OMwpNlY-uY-m*C5T{f=8<WX7_6b_EM^;^EZ*}`DXUB z;xnL|!5ea5@YW3!f>$&m<e?3TTwG$t{<yycvxxZ-n<z2korHf?P@cCR8^(x07Y9Et z?2Ff8d3aGjw__%p3vpp_)0#wWPr|tfy9SIbQ|oosXaM7ez@lL-``?%^r0<X1K@+*b zj{^udVdT(D+Fl?}$ZS*!r0+9TXeCSL;oq@O%$Dd$asLGEky4xYblkt1VZA&Ycj|{R zyGYayCp>H_>-W+;>R<<)@_CrH8k35Pw#M+=AKglR+D~h{cyz_M&Ew<bcG7dPQApHo zUNSb8o_);Yc9zdM?G1|S*m~C)wHJk#jOF%IZ%(-O!r*mwxON^E4U<VDbI3?4{b)oD z);{eDp8Asx&)e6wH^k7MNt}jN1OExTtmPq`;N#DD<giY*9<I<ug{5s_IHC@0Ivyis zru{-`!j>5%O?gK$*8w9_mu|AjEHYm$3g=R3^KN9<SiC~J#_d!=O<g7kAyAEW<5=jg z!vbdG7>ZV-O}}O}Q6oiZ)ry#wi}33-7iVTp{AUJPh{VJSQ}PN*X8MJ(y1*dg+#<{} zbVVPxv~jgypE1b*w`4OlH4^u)2QSx9&Wr?ig?WGAPPOPd?zlWT5#8;dAQ4~dq?k9v zZC*wG-C=|x`O}}3o;r@#X}tPp$01FfRO){v9L>-Gu}6Pw^acN0Ve+>UB05lSc^gPj zr);+C(dVO2GvBt6$lDxGr;HtlKos3BlMiogv>($9R*xHLA8-3(-p*Kbzto$Uk*tYv zD=1=v=KKuBO*IKgP81=`KVAr!88DzrD5AY*<IxR?C|J6Ro9tQLnqrQ`k)YHG9et@W z2IU9X9@U0>e;EUp+dz*~DBeNZ|9s-8$Qg0&jcK2y$ef*r&VJ<vqutI#Y~h?$e}H+k zQW3(Cao=-?8Qa_#W9b<XLW4a;wUEFoNg*s2!h*h9PtL@!a2C;cJ{6ARr|k2Dpu$}Q zm?4Mo^BRQM20vVt53$#~t}-8DySI-ma%~tdqZqYk`S0XY49$%270uer5Q0)CABB63 zPRFmYqL9`|gRCWh#u5$1OoAqx&_x;_VM&SwT@x0wDR$-h^c^OE!4%hMro4W{G<JRO zH$%@m0yW>*Okh>*veCGhIEjSpovq{1#ph(xwp7zY2EUcKiH+O1IOPD}*Kql7vdMVu zKtRpd7_NGmTAtK~r8Z_*m!fKoqi>DS5NTevCYco}wuuNL_!rB@r%V3c*lP!)rcUpb z$ALN)yH!LjHb|B(tKzAlHQ164S80RR9kH)umc_^Q#K-k5ou;B$*S_m=>?rpNT27O& z`~cUzj5T||o#B&mAjX7I_o#;sCqwVJx*;!9yZP>aK`aqe+kkQ?gyj-#nMs@=OmH!; znuj5~GFEFEUE-T-?V#dxtrXA`jS^cb7v2`?&CQk}^Q_2`6HzS@y4Yil{Kv(F-`J2j z_K(V%Lr%-&g_tS-X5*BgYf;j<=?|iuU1SoHN*3YB>k}ZVnBFJYop7RjCfdJsF|lIQ zJj7}FxUlV&cL@o#Ap@;E@KQd$ZF49H(bqakA0)LXej{0ylHSgNmeMx6e_Tuxm6y3L zJSM|{>YH^VZ@;$@3wTI%F-?sXuMiY@T^YnTEB;}{Thu4?m<<W}L9}V=-2+s@mm;Ea ze1%|X5L{`$mIpyK62_zlG0IoPQ{e0(=&Ww8s6)gM%<1ftJn+&Ck-z7Q;p+c!insPq zKh$#}Ia<olU7y-TeiaqF=guM}VAAPhQOk+3wmYl!od^t$mmfvhor6aTFYD{^dB{~7 zWUnDTRYlYa)ES!L$hFI#A_Erri3;iOjLn(sZJ~oK5K&jvdv73)umNNVB-P9meK2gs zdnl4pX+$>Wmh_PNMiXa^Ar&q1uGL^e5T8-FX`T0+fWFrREZb0cm@sm^c#nui+}ob; zdQ?gsxxGgszc-ODaPE*xmy|&*(RZ~(yvWvO2P*)CsQUoPytPwQUE533$fpTRB|SW} zj(~-L6Ezp4D@%Bv8rnOqFI{;ajygM|W2k_*=48``RMV?k1vkn<!*qjbV|ox8Na~O) zbV4IMNTHAwQ8|2(_d%UR3AnL7(1r6!W@9S_kS1ews&3~}lj;E#Kt|;vDD;4Y@g^LQ zl+dF)pM=Qhl{!{&?olG`V|?V2IH&!xG9vD6CE8pT_oWGXftNfEd2@bAZ!jHJLH@)A zUq2ZJP+y70;?f8gG}rKQ)s)!e?pS|zu3yGYOP5y7*1-wBMPrlK#QOITy_2ZQ3QU{1 zlI@e+={Ct(ojfZxd2OtJ$o0$i<jN=2q*KZGDd`>>NbY~5nv`cxUf2J+^c@YZUx^Z< z>@0mgWG8VEeQG%cuxiRq@999O;>BrSjTI#Wv=AoM@uul7SUHovjyHXsPn7P3TtH|h zJ>4cgM*78c7wo<endc__N=&@*YbS$?)?7*PHMT7_g0`zUQPNfwq?s}qOQvOJ!YE5r zjkm#q43i2{d~))-*qO7dmFZ`IS((nVnH0=ta#r8;se&YD1C2fX8E5s>;yhz-f0YcP zHCm=<p`+EG3#S`FF2%Zvg<~3&aSvhDrPvuZmWv`r)2sl`ltgs+{Ta1*R1M0Qqi$LY z6=c+^@ckLJC?e4|Wz5k*EjmfbX+{n+-EUWpqnfJ3B8|)&(I!khzX(%Py~GF|5S#jm zQGvYnJa$iOYb!6hBBqa@xcfk|d(Wqm-C2G^pCX%R9R*c`0S#nT@xN9!wL{`UcLto~ zn>J=e0oa&r`8;#H;huMn61*)+`I~YT;e*;#rixS{m8l|CXetvWX&bJ_VO1%EbYB)0 zN8R6O8|Do29BxWbxsPdw^H*vDlXxZX(E*7=0t5xcLR*M_nCMZFTZt6L5GiXqC6=s0 z26Z6D4T@{oMrn|JA9XB5bI~zL#>TKpGc|sx_S}0#*iMa$nfx=0mt1A0L)_~@7GVM+ zLiA_MOz0ofV+u1|&uFawMLj=>EW@<c>shh>m-PHpeB6LdbawxX<N6kPB_r|=0LS!~ z|Cl9p@rYm|49n1McCpX~nNv=4I_^Wu&LBywk@mfhE=tiX$}K)4QXS*spLQeUK&wRa zwew*Z2zw~au~0W(r;*>3yQcOL!*raEbu#(7-{=rT7*CftXVnHd%V901GOw(b`7?&Y z!xS;faF`Xz1`Kl}u|v<p{Ti^&n`&)z%|a-8;E<KPc&K)%@fO4JgaKMC{Dx=262LAN zP7%=^Sr^#F!eI@~$g-j)yO})}IRks=7uH_+uPG|fhEP#a_TU@#`!4f+>DL2oNd8-_ zEfb1+Y$%_U{U`Q(Il1c13um|S8so;@xc52jK-~Ag31@%DKWmFRBd~jAU6VbN2IOLm z^{OI`_HUVmC#Ra0K~*0^Y&@3jGU~TF@V?Gz|0o>t{8sh7<MQ$Xe2)$=x+{r?s|F{> znacMZImR5jt=!Cp+zd#1TS%)JK-%({+5G?Tv|CB5i4o^EwN-1+S9#98TM%T-B-dO( z*l(b0Gt+U<r$f(wz?O9dYnp|)QGNz2U<#PzW)5@@o&uAc1|jH;I|<G<^mPxGwLVz} z)ChBH^sWoiVR;jQ1SJMQ>4tQ;E>}VK;OSQAXJU9I*<oXI+fG`uL=#u$ro;=V(l5%k zVkw8b!SYP3oTl8)5c;6^ge}*eT;$<0DLE~MkpTV;aBkpnS}A)9JgFkqy{9bJJ*2b1 zz5KTF+jSh<blP`OI3+(x$+(R9C7}^{)2-nsanxD8_$)f!Kj>}2uQHT(C28qx{~!}k z@8f#BtY&rg+vHxfqV<l*QX1bu&kZ}J2mePOa_6^#?_=n)NJHemk*)yAe?jLO>`&Qo zO9QN+9Rd)L*{Ek3Y*dZ6!OZF1dx`^gOblHATVDmVmKk$25?Ov~arObzzfoe-86uwd z-a|n~Y?5ztBR1X3OM%#w@;^R>0`ZE1uvDLunl7C(c}@SGd4Aa@V#_L!n<O#?ak|DJ zFEIHR8+l2el786`pC(lx&o_ugWZ&l4C-{K`5a7*tDhKL!GwX;~I+DppIS1`ALZ9B7 zJ<L{SZang||KCA3=U#D9iACp7h{Ph@Uu?$7AU!gk0yVMz-Fi-8@IHY0FN&QwySjh{ zfaH+;?8y|hXhpuhHdEhgG)?tQ2<p2&hd0hIxj<)jrLE3ceOY93rauGH|Na`}F~1V! zAuNYQaWOBKO$qRl995Guu`_R)WYYeuAnjR7E17D--x5oDkq+|C{-o=NyZKo2TY-}g zq7&Jl0@VOjuY^UYHtr&Vc>if2cs~RHKm`Q_W!^>SEn3!OCo)h4{Lm6Ln9xc!2dX56 z7Qb$cTmmZg|55ku@ljP*|9>XQK)}Qk6ciLnuxOK~prkD=Q=n!b$QhVXP*J>Ai=}vJ zwKzevRzoHM&NCfL`?S`lwbkBjYcIA>@mfv7B>}43s)9FeB6AoJL<!-V-}|%AnaM=4 z&-Zuv=f~?sW}kiEYp=ET+H0@9Huk|r)F4(ejS({<j)FZT4R;_I3)|O#^sjm^9~!p) z5q#7H80_=dBWCd-zu`cOkwU^DE>uizC&j=l(CWvw6037$)z9+l$70qqd6WB7b0xbL zr4D^=Rt8?KtK`qE|KY4|-py5b*yPeuZp<yctO|W$xH(f4b_|mWldO%vz&rt83`|=H zdC)XyZ#8{Q$17)>JFL3jOhp$}ni*<NQ+qQnFBd7UD*M^reEvuFb8wNnz}(;V%CUPj z^Y0~t4%z@e>h(KYhaa0o9KR|*)?iH?-SN*2t)&I-3eI}GJp~`XH8v6I=l`cnZ*h_P zG`O1MuLfhDHJo7(@k_D*>p}k@Vjf<Yfqx8Y{L=Iq_-Z^O0C`qho!<CIZ0pu}O?&YF zzegc`Kg=T-$v%UK^?==@4r^(p+d-p~LOb0J7!yd`xM}zp?-mV8Xm=a!>tfB$Y*eMY zG%ueomW*+~L!=}|se6pJwuFLGC)N;=)lbSIVTAeiM9rv!G1_e$C!>!vN&<68&GVS3 zDLq<X>!M@o_q8>+0ZLd*Y0i@S>1=zNck<7%wx`sVp}E<{td7k3XHGF`?1fQr?vBk` zDHA7KCQj=ZKY2HD`rVGmu*Ob(t{U4hy#DYZr3;EHiI?O-g}@oM%mHS-Xr3A!(bs4& zCHP}VaGU&N-8Ou<YSS?%7eS=7?JEOhHUey^M^GPcR?;$h%TvVRh#Z3n$te)-VmiWS zWo@eX6w%g9+zvRcwS87&QaryVtE6OKFiw)wLwKsq=`fArQa+t0SWouHJtU@Hsp3BN zL$jU!y?sdKsV_5j;C-ntTkd^?S<)n+zN`rZAWKRPCr;8cHwdN${KEsIn$#ISdG6rm zpk~%eRYQQn(0V$q6kA#Yz=H<Hl~2hW_73<1*!va0p#6l06|Y+l901#;rEaIVutL}& zBM||+8$0q*!g&eMw(}06kjbC7^?B&=dJohHkfco%qJ?@0hIm+k0g16UXCCvBgY3?M z>JD1KyhMXB_JgaL@ftQarc<fGr-M9ZdcmG7B4Cw*c3X(Ry3qp*z=;(xPrt1~xPY=# z<N6^d2rb@+Uop!gfY~$}>46qwh@4~4Lh5X967tX@$A4;Z#4mgE*7*}of*)K9^mW`h z{Aft_=ZuOyTB<k&Oi)%i{dEIXwA2$rj(QmK(~n>XUCm+$Td;qRA(r9EC&!RZW8H<$ zjHZqK)pqQ3qq98A`z#)G<Auj9jNz%9<q=slFl6gs<dS0)I-S5&rkhdl%_XjJFblvf zyuff0;W^^0<0Vv>jIcvSLaEPvmaIg23U9(kJUodxJU@x)rtV6idJ%%mdeNr4O9aNi zktqHlb7-(lHx_1s539+o{~Ke0e{$f_j~n69;We8657_2u{|d!T(~WWQ0&k+RUWpGM zBQ7yh1~qozErOK+uEn^{kv<3dyf*(zt#fy9&KI#~?X?3d%skuZB0b&^oz<)iqap#$ za?nzeqU{jwk(Tx^SUf|k;^hT_#WMl~Y6}V%Pm+pW7(n^qaw}IGI8+-r5esaO1u_AS zwp;F9=#zk96gYTfn?H@7i!#JN_?$z~unkV61QEsny8zS1dU}5=Rmg}H4c(x*md2po zfDTJ!cQ?qO*%U7@$5Oa=U~Jvf?=KR}u-d~gD~kin8nXr6p@z;e^Jaq)A3e0%K)iow z)q=)L^B&mBTgSo_o1-t*1ttq+80S^oYyo{_4aq_xywpT1mH!-wb=rZna?}7~Vwyp& zLhrbX;D~^ZtNLLJuf3?K+&iuk+yCE=t7^IrslGsk0BoET&BwXy$61w6(wGJPo3kn! z9nN#xJ<h98_;6nJOBk@xl_ZvX$5o!fBp~ejn4_xN(62mx|3Fwu4hF*nYV9P%46`)2 z7R+9vkl6cQfRfZikC|U@<L4g3;#F=m*bunq3@&irzNi$nehpYswprgFWWV*^Z({s% z;tJyDJY7&Ddxr-)c#e4fIe4M|>9o@dy2@KRhuVqddg-?y{gX+hD2#(Ypg?BbQ*@&% zvm?*I$9q3HSr#WfeLIa%$xKzEqujFViNzW7UBtsE6S!esmRDB&GhXrVE?r4Z_q$6w z@{Na-Zv2~9>V4+2erlqWs+wM(&k8*Hy-R2Y_d%_pP51qWv$^YvfpY51_=l0NSY0t~ z@+$DM?)``y@R#+TY+PAa{1ms<FZJk9etSPxJr6T{+JmK!UXa(`Icl%MG<T1({g7<A z*3@s)&LiAXepVn$|NUW_l3%#I@q|@yTzCD$K3spLssAix8-3FHFU-|H<0SQOtDxW; zwYmPcT-*&W)BjPX{%4f!WwL#=|63+y`+x8!e*d%YtMf*3vh02py+<u{&A-A<j{LG( zn4uZzybtUhawX}`;jS5+!pYfoX=Xb3dCh#n@yVgj*1eyYcn5aOWn)y$WmJ=!FkV*o z_Z<d~SJDqWiQhpd$lgcUhm$?CcJ>m3KTp>~3hAF;4`*XY@cza{MDQlGGv@|pRM(6O zJSk2r@0wAm6ZXx#G~YF23<y6(eH%#rc!@NR;a{jc5AY^~KN~u@!0+5o2ogKrc7`k_ znEt~=^>cIAjGFx35<>^qst3ukIm(wHpZjU%-grpg>2>{LrQEEPex&5#H}>{r)k++p z>XSo;5EjV#Wls0>KUugH3vOgCR_39mFCr`<xut!hdCwaU<CdKa;|dER_RFWrM%D5z z`iLKQu*2}FJ3oIi%+n`^<^@c|{;~q)Kla}p-lH2{T}yKH<JtE^`PWS(|35z_fA1u| z*QlO)A5*?x^~{&^&t&RnrNQKvd8v-gYJaAN?(l35-X1&4Bi012m#(u@(<;)_nPh(` z-SkcUw(76_nEE~XL&&imc0Mga#c`2YEv6A3xuKE6<+e3pooVE<iu9g^z=8+bd-JLr z{H2%Ipn-Nh{SuruO`yGhJ(LG0liaA}g53M^95pxoNClE*_7LW7Vz`te`a95C^X>tz z3T7sQ6~yD0|6-cDK`1s28Va6Hq}?`gjw%yKhT5TJb*E--$lgZ?EsK8^TP@5IpsVJ( zeR2ztzUW#q<2>X``c0O-I+!}decin^S{5|#Nul(F`OuK}ohmD59A2*8493e4`~gKX zf9Qs9mftrLpT3{kK-N1{y)?`}rH_8U+8}Ljv{x(V407g=_UdHtGsM&3X+1`JuByr# z?JzsEsjl3WVBq&Nv?>0rkBs+<YrOGZtlwnWuCr;f(Cger!s=YpEl?crd^V!RiB`*6 zl<SQPOAEYJ@GA+!UH)M5uZowazekeY7JQHh{WG9peevP8$Oq7!B)fM}x7WYi`|>wL zX5l{plN{`CRwRyEca4wES|-1wcIx5^IY9b82x2?;4Sa^OT~8O_#3F6YJly4QRk8jE ze#B|-2JdJ_>u~s~8v5{TIe#+$;5*sNP9fV?ZwNm%P@Qw$Lo-sLTB50&%=6-v=^9#i zibDZXcatH+(cdMTkfJqB1?kgBHCN2;9d4&r*oV6?v%tg?T~l7mOU!&fT~JSfmW2`% z>dHJoWbrRqcK2DpG5#ecc);}pn>N(l3{qS}uq_zjufYT8>?ZNM+-%qQ9Ib9|Tkw<Q z(m#p~Cus6f0D9Z3T*<HqWN%u2WW*HHOydWWHI3y=<B>sG<SwTVZNXRg*1ybV$wRy^ z5z~Tj7QNt%B@)0ry{}*ESH0SK#d#Iuked1v0o*7#?+<F8eQv>~*};POikdWNL(2{; z+_Gb6&ANTz1=|b$!YsEOCFbbR>J#Awt%3b0>K5!Mm<D$8Q%O};?XpQ$?M8WWYv!<` z`ZbO)W``HNA9ysJ*p5HD4Pk52GN}Z^)vdGFr%mLc*T}Iw@MvxII%R0yUHtD7gCCpN zyt_Ard!0PJx|R0pDrj?di(3*wcCBuS;p(;N02>3R9ZUnwY6_G{9xr|Ng7*TC#`GN6 zi@8h!YTiEs+%16n;#B`a0F0S$7QTU6?tCs?m)IH@hkefa-RD*$p4wZzj&ATmm(xO& z>qWKmL@BQGo!0+{xdv@mpI)%t)ZR*K#$3p6F5HqXsa^-1tD9*zK1|~ZFJRgVx?&ty zHqC(c*bQirgdF(iXP~mvOoq?-85o!H37=S^AYdqaW3BwzuZrJVA1a8?er7zy(}RBk z8bc*lYGt{!sVjaS<UCgNX<N0MxTV-NpwI6RE@aYV2+4<g^#(lRk*jOK_TM5j!31!5 zxjdVroBw(e_=;SAv+|f$G`dowu8ggPKF)wDk^>H!pOFtxXV=T>ZC8AV9UA|Ni4MNX z&)gw2g7{!WF637AD*IV0)`7^>lK$Zg1zWWMVYM{=K?;WDybTr?{2m`&Tto{lR;}66 zK8|G9+m~1<Um43nITe6<Qd;~@08@8`of`5a3Dot>`GVkUJi!GZJch?YAD~eldqLOm zTKd!nIpVA#7a7t|C?g#zTB+~-Udvgzk=I}rd$p!-{<Z88>VB5_A$*f=T%m3(2cdmo zv8hg7N|jAk{Ns7?*Lm?{75{_0_({aO`Xj!4MR<nK^B3%S)bxy-O|Rmx)N0fQt^SJz zR^uazZ`x}$-lv#vv-6tIs3YV0ag4Q>&2cpKw{`F*k3ZfCSdm;0q{CjnOKOv!#3f!` zg>l*ArvD=s{b@OYJr$R><<Zdlbt`1U5me5pc+{qMU7YVfN`u|!`}k9|Qz#kJv(0E$ zxbw*6@k7N|q%St{ZSEzxc;l}%-Rm+B)W4~9Dr%iM#hG7a>7|E%M)sDv&9Q_=BM#n0 zR`R-wfy9HD07R38hFSb4;h3bMn-xg*i8Z}#HC~sEyxc_gA086`C-adE#MtRK-c&-J z$ukn2nD_n#Tc<>4@48tL>}WX>wi+KN73D(aQ%f3Ouj^kwKTuG2YW@7e6ISCJ<TY@` zhi)X1;b^X&yw=iz^+&tvHjwi~-P`0WsC%n^eo;Z)rl&|PaPU6q^8;L`nl_7xr%kKz zmn^7eOs&Ll3IV~ShMW_UGuhFX@#C+HiBQ>HpH7DCS>v9y16#UwW$UvOM~bY4@6s#$ zLfVPlbgH=+JWAYMTz1!Il6MzV;(43Li+1_*V)8%VGruxh?elnf6dU~B5w4&{oHJth zN{u=Fhts*b1yW-8lo-A?d|mkZu-LokS+65Dena(HPmYP;bk|PZa>90sho=@5RI-kZ z@9J$WI<;6UT36TW)<T|7W9o`=zrXvb<DA17SEk+k2nAQcxP8{b4>;&_+7i1uYwEl9 zbKXh=j0~B7cfc!lHYg=}A-^J(==L^o^+4S3*DEyk;eO3-X)DR^+gw`m`nKpM%G-(K zJoorhui%`**)1zdQcVTJP4m1lyt{ZdW1GET-0-d<(-CXY_dxQNU45POf?Wm2tb%j9 zsIX6GP-d!b9ckJ1E7#A&*85%gDD&`0@H^jYPB{u0NufJFTh4>;sUJ$8-O^lQJ=yG@ zK{jt*4Ss)(Y{qWng$n_JHK9|hPXy?M7vJ6G4kPoD@m*czoMXRC9}}JTTMK`{%rHgd zUO0>{ldRygBu5OU@LDeO;IKe^Bls84ks6Cz_MO(Uw-@ymJL85kNjooW*;k5gwp0^# zVau+PKKnRSDJ4KspM6*d3^$R~!R{c_&IOzMBFEhCam>EN^!v|hS#q5_(aa!t)ztig zu*0(3yncL#EMZ530mEC0-ODK~_<cCvP2_VZ(?Yi0#TM?C?>^>!%49Zp!J--{@T#7u zs+sF*ip=)v2KX(7J?u?Rl0T4bg50}7khT&^-+jVukv$Cg`{n9)YZ#6<KRx58b;o=2 zk>bGHhyB+`^TzxTb2C!?)daNc>pOeF&aR@_3)Ui0E_kuvjoCndcFVq!*#`9cYOJMu z^~o>j$Q<aZttP>nfy^BS4{1d6zXD+U?R_fOUS)TCwB{Ul+SCq>?V?#{1X#b8R$KPc zA~ie5)sjAGLyhOnbhhd2JoMRT=HU^}Dt&$?7GOPzkJsJqbYgS-aoiSb(NlCTlA05+ zQ}=X@d%;==BQ4-*?6%_JqU^-Zw`%H->lx}5iLFD`Fgo3Gm616>sm-Gf4Q~NXI73Z< zt<uhBve#Qpf1(x?;N^*}plGi?osrahUWOPqoVA`<+JbA{JA9zk_#hc6JipL6o-6!a z;##)$0=?;2k$i6q?86&~w;Wdu0ezQSjr071MR^5p?=GlkD!|D;o%EtqzO0X7@sWC} zpt7qA)(8ovo+>Qp>Z-9GT#@Js@Y7aPvd?OIg<Sruts&^1!=G+`=`q7u$Fq25zCj-z zoW2Sm7*Z$#Pm3VY#M-Se0;aWPpGJ~cThHeSL$qGF%RSD~x4{#yUOBVZ^Aj~bH|Qm} zwgqG#mZikDa51ZDfjh>Olsyd=!x*h>wHj^aB(W6|E|wiC3)($$G*iwf$$z=waBw`a z+w)0>PtPfImoPfDXZXU86usDRFfb|Le%Z89PjMz~oxMJ7HAcx2NexD)-<+w?dQgA# zL|tFjVJyLPxPc>>LiYStqb~MfQZbMWU3HtyLcOC+q+H<6!44$5p0a8)GkUT8DGkdB zxKjvs!`ovSjNb#TVF3c?+UAeI@(BtqF^m1fWM{FDU*WI*O{<B>!4>}hC%*sD1w_Pu z3|9#|H=h8saNh#=O$;&2I?(hRK0SUCX<NqJ;9G%4syDO+%p5#otV-(1)IAR@o;o*7 zZ0)Ui5a@IB0BYj!!c1|F{@Qq%l-L=jCit-J9Kjh&W3%P_o+vj$a|S<XpYC?KJBT%M z%*&u4@JE7i*AgcJ3M6)IW%;g$RNKTW#HZX0`MgCfM0r2k{*Ppf8m`2G?;P<^v5kJp z0a-aQ?lZX$4pjzb-c$m+``zx({RFNNT|T@#v)t1!CJuMSgXsm4lj!$8ByZwCz%$q} z8a-4k-X(zaS9NfX);ZA$Ud<F<B|Rr{FTgVk>=3TpCLXm@mju$Ewgt2mY$Ooa$taDA z$s@N796pK3*y)3F$t4xn56BWtaW1FJmrqewH1)VSk&)WPp1maMpnZwyaa|6Qq;*NZ zrmiG9PsDFiZ{lC#@3Ht8{vNlQo=|5v8dODg!W#)P6YnW8EE9>ki+7*RTb0P%HRPsG zE6GjGH<+%c5%gwu%lJmnBVT~=^R(2Jf%N9dkepPVj8Im!rV3`o8)uZ`(lNZfV^_7} z*q(+t4@K#&L)3KFH<jB1oIG`napO#Lw!`k1^}#mxR&8)o!PNN(!P?}q$+YV)RMb6Q z6gwIz-qUM!SnbbB(=Fg*^<HCP3m($h>b>a)=&DAxkY9Hg)w5q2KblIU^Qx!sR668b zegBwj6u3?qb<T~0Np~l|J@8|}p2aG%;PCxaHE%GY`hw+(=>aW|KH0t=?k!DWb9@u~ z=9d*twAeO|ts8VJ9o1CTDT8r*X|O;`4mWV3sR6}AMx6JV@eI$5z;~H+;fW~M=7vx5 znsO{59ce-0I}+PV>hNg#ZANird4vVIqpf$muYKsX#P;5tU7s1@`HGI#!n$X0^N;d= z`>{wWKA>PqD%$%gJM_}rUq(YCqjbz_{0;3#lCgoY<hMuh2A0)036$lC>O4|o$vS8* zKD;6l>aZHtz%e7v#RH?xH_KxzVvR}0PZk}Zb@o#3ua1c%R!%V`<oc;Hni}0k!X;xL ze`gwluo~B>vCyHpr^m+LUST!vGBsXO>6PH{v?3aMZ|)bO&fTLTJYXedd08~nF_$xy zZ&ujO#fq&|Y=1oxK;{#3`;tWYi$~2yo&+nuMmsX=7!`At0~TpEr)iDmh<@~}hX#|j z1!Ewnu_BrrKfy#8%H;ZdRQQ^in&XGjv7D0DU8SFyb(b!{OsAl{prFo<j=gF4oVj69 zcR{^cbHiP)GT9f18s<a-D<W0PabXU1ho2fHq;U?IJg<Neb-(XkPsFDx@y$W03jD-I zp^8z4G&nGbplq@l|4JQ^1@K)7<^vg-=(s-oj13sWPYvbc`J4IU{*Zi(-&q?AY_S?^ z`7$z*J5#bj?mPrrTek#UObz)lKbbNiltHi?n1*PwC>m;>n~5ebE4d_9iW;E(&bK(H zc&x-~no2c1pxHQ)Umm<ai&e+2YL6UxU+l#k!8<D>T-$9phYXPFSgMB(RbL<Ku^Rd+ zUKhgwfE%egFf}!fFk5j^P&9e&>Ia#a<mkWgW8;xC1>7@NF0n&cTc9t5uPexv*;azt zd9a%PM+r>M9IHXjnzQqP$|KzMig4k-ltFXCH43|Gh1K}3ft%*UFjVsWOI>=<z1id( z@_j?LDEM#XdkG5r(Z%Sa_~(`qp_Qh_7<n*T%v-c77!r}-d(64I+?_@ivp$BO5wbr& zg=UgvYl;RJ=xXQ7dOaoP;I6<rZFQJ;Ju8|}m_Er=_2I^B@KLfEhfgE+J7quOBj(H) zMYdSEd(cSEwct@(@Q0-6AHlhP&<z6INvS33C)y%x+j&A{dr2+&Q*NQ8{!)M;2R<2i z_ZUT3p93axaY3`uRkpb0iEV{s3#@KQTX_3V*#q>1z+i(u_Qrj{5`}663yahpQ))5X zNcBIc_BU=dEHw(rR-&xfUO2d5ic{L*jsXTa`tgai?n=>eEX9K?O&xWY8qP7Dd@!9c zFo@q!)=qtMN-XsFOCFOrQzSfg{I5x{8a_o%k6HYY=t$e-O11BnD?0VnN+T~i@4&&M zso9lwa-P@&@4zL$SrJX$Xj<F~f?Y*jW;u;I@5DmySPk<;S#6Sc5I13E%>bEhszU>m zH#J)w>hL-w5f&cTUp*B!bVKB3(lP->;DV?B{z#&8Xnag$efsGTRU)C*R<+n0x1#UN zoRgI=ZO$SCtGI4-A(ClvELq$N$BNI8`@Q4@c=Xm|cBr*(GasBq4EPO|3vph{zNEd( z4z05qb|D8x@J8S87J;ZUXJE{^r99F$Nl1+x-EUI4yIfgP{afv^18$@etKn}%#GDbW z-8l7g#c15^$lPM#(bTy^$Sd}3IJe?12|fOS2Y_Evx7c>ySm^eO_-PRbmW|r2saBhk zCjJmpk=X+#Y$`CA@DAYGNzenAwk^ux_E&3acDe#yv%ewR$(wE3pdkvyraGk`xNm4! zZN(iLsBlLQKz40hIc)SCYH+*q^GbdFhWiJi?5aC;2!FHsk{mEaKUJd>kPb7WM@J5A zwyO>#w)GApBu9D7PSaV{axregY^UsOWlyXMM4hrqf)OXeI|jAoB{n^v(#KUza>#Y2 zw&1DCti!<z;MeZG8gkp@3U$_<MMvD1ZZ0k8X&;i)_9phs)FFTrnLib(CB}~taoee@ zkl=qtOh<4FxW}D?F(Qp**?)GO4LYxlhSpdOw;JTUqLalQxax!L5xB$|MKo1hRCl+X zykdVxD-H_YfX&-g7`v`B1<zI9(2$E%S8B*meym1ES%lG-4YXU_BAfd~48U5{&&ULq zu_~ZS{m<THN=5sWAmpu)RMWJ*1TqS(o?8}mE*%(gE=7ESUq$f^mw18l5uV*r4;uf< zhx*yHingPn;D!^X?O*a^HNL4;C=^_3K5EnkQcEm34dLEg#?0@})8YlmX<mQgkg@4c zG#R{u(z$MZ#&nBy=|AB6*{-=m_%QvmMQCG#<JDk;xeWswx1E_ZIFaAW2KsVhM^I!$ zuaDCGd<ogNhnQ{M9^8MPUcEi{ci%;>+xr5e<MeO|r5Hwm)h~EA!Az-NU-c^19Vflt zdSbldS%CI3<>Lt!)D3G39t4r}FB!ayC^&ruKQsB~1YaYmx_MD>f)dy{RKTCR21Fki ztn0j}Rf7Q%2-*ZskhdfFTmFI<?W_@WuWxtvGQF1M^`nVw>Ib-W{_z}cC4NOQ_c(NB z;H8$YC1Vc|NZw9tKLG~4c?{4y*lKaMlUR-Pe_2Vy0h_pF2_}sfBHcC4PSy6|6e9Q+ zWlr^9W)>P2AeQT<+az=MX|8pG-zOC`c5fx7TYgc+ExSvo3W3O4^bc^LHr3#*d$=M> zv+iwW-D}yny*BlqTK2f_Mcg)?NLn?iPy5F0#Io-Bi{AEdpuJ@`i(YHkbRsonK<e_- z2HP9oWiesVll^EaGKKY$<H#4ygbX-w^y~t$<BeL(ZD*=k%&mSCD{7lst)_>WcC35x z^*_}ayv7-@j@(h_vQbvQspamIfYP7;NOJzD7`(i3tk5!9_8j>lJS`{#$IvRPAtXX@ zrb9?mkdnIMx08tYTJ{6-X{97zEY!HhW6ghtGNYljbNfZdPOh*TSDLa{BFnC3m6-dv zh;t7@vt0q1&MgyLWKO13P`hHq#N+*xR7xymrjIiF!tM#Qo#G;R#5uHVHB~bkAlC6C zXBW6>)?Yh$>!@gGqtzH>9ClLNVYSuJp$_?Mz#LRbej!yO*g#P`HH8tZjf5WF=#5~2 z8NrKl``Kf!V+4cD2xib5@*J@mmTF~oZb34>jOBboyvz<Anae0HWfYexmQlczzN=Q0 zf1$~LDdjI6<=)LlP9C`=S-eJ@*TmtW@oIZL2Ii~HYF)KHvT<8xDEn=k^|3zhW_@lg z<~rFr!;*K3*EsEBV&X_zqhF3lm`x5SWIS4<H|5soh}P&erY{6q6@Z~coSEgAqL?)r zbSZa#N5Yb<91m{QKP_QC{Irqge_&9h#;{G^t4CwP1;jtIpojpR;I|J0L<lUBxS<5S zrJ*u+rdomy?bL1M6=L!_B8-{U;@sPklCDS2;Kz2}HGCs;mFRZtwZki{rXeayu+nNe zjUe)MjrKWKQ?W_Fy4h+tOzYk9_2zKb%aX5ms86t)F?#B<Y9%LRP(XIiqg{GVzJ8jV zOYEZHs!kF1kk`zQ2J@6cKDPkTp61hP{5jRwq2P1+NZhBUSEX-<p53{GyZHe#QW;4J zi<$pTl*#Vvxp{!s$<!3&!Aq4|w>Of!v?7w4A_S`2%EU#e8VdtE^orGRv0C#)L8#4Y zJZ@yuX~NfY)I0DMa`TZ@9)!RX*CEq0&_mb8)?ov79D*WN8j1iLQ&YVj$?1Z(&ipU^ ziH2UX8ul~)xn3}LFCazuRP!*^s~6oQ<5D&B;jYN<#dYe%Vxy#M6uT+_-qTgo8S)kL zBY4*+l!Z6M?G8mY$?~OC@jBMSkz}zNdJ`XU2Cs`c6Fmmjp$=7zoGj|!t#DhgH#tp1 zZNaxYyr5evCLu5yx`lBW*?z3gu9|e$nUlr$-Rp&1Lef{z7;2zBM%eTTKuf+gZYTMe zXw96}*o$#9;}z~8wc;@ZtFc-Wn3`JQ{#Ul`FPcJr+c{Qwp`Zq<>>CYDMv9F(S5_KT zb1Au9>DP%tij8U~+o?~zM7Bbz&nNkVK2GfIQv^*yKPB{5LQcNda1`^A;TYEw(a?)% zD?-<qre}CfZ|1I*E2@h+GiX{P7IuaG&bXrqc#&(}cTMDs3U@mJ1LDgF02>3kZWR5Q zrhe@B*#|X^qg06DT8$48EoI!5mG0T50y=v&&F4Bh)?>)=Tj;3OaG{da*>7++mflsm zBZ<+}31&@?2tAnHZW{Oiyl5p>-8EUhq*jtsyR$Sa%PuY!af2e}l&;A<&jlXmb89l2 ztMTf}_5fWiX|G3}>nhwA$k#($t|{mtFDJ(Lhd4p*HJqa}u^qwZz($0$>xB&qj*6bF zMNbPBiKAy&i-tnDPqWe#JgYy?SMaAc8LXm9s0GjA2a}wQ>Br!-Ly*~^{WFM*gx<3f zBPl8Iq@D}=6gl$#+1!BP`#6Uk>;gLYwnHoL{I=EuRadniI@_w)L_6nLrJu1AFL7*C zwo_3Kmb59vPG@dON3gHg<L}Xz56M*ZM5z<sQ<>EG2K_8JdOt*AEv(Z3+g1|h$lx%P zwp{XWVtlcv(P}(_&`Y<vAV{qjhhFOl{(^9Tg>&ra_Xt^uPW-XiscU;pw})-CLvL9P zKc>p+=8oXqBqJ@}PSw>L77e&vb>wM;eR&t_?3P9Z(XQtyX2e>L-&C){E~pc+cJ${d zh&cJKdnXi`qYuf+?PsIdO^#g9UA`?ihuprLJe^?Xl$@NLt?yF5K1O*4K_e!=1b*vZ zGB|=LxY1!EJTduige0t<tppjPbPcFX<YeSGN%dvq*9f|;X1T2u43}AYVX7s=n)^<t zv)O%(r0(@b>9xrLhu;%acA$uUOE;mK>JV6jC=L7kbsOlvM;-{7z2%ftDPqHsq1M7* zgD<Q(Y|2J?7%|{)<cgU6Ww4oG%&`%kaRqb-C7R3K*ZumC(+%dLZbX7Gc3%q^jwI_; zjm`s(TZ_JA7-H~uLcqW#7SG=*<OCn$=g!^)enf!%(GBW+D)`@gp?s(t<ko>M*>%&? z&{>Ut1FX>``{rpSu~h$lu)8{*cbqmb+|gQMHA(L;TSH&}EB#&rQ4th|-?jtTRv{-P z2OQc@Lq$V2=?8@GXvN;;H<*;#hc+P?Xt$jzF0`v!0M<>Wt7U&wRu3A_5R3>KZMA24 zyKN`<C*nXQ%~LYCKzVr~q+t;&V0E(_22@Mzv1Q*R-fH*>1QAV@4#IHjFHlam-TS4; z(<~#iz}sl3Z{54K$x8?F=xJgn!;%=FVF8_QQ3&QpgdMoLghzet6c+7H-;S2vP|=}H zI#A=K1R^7;>E&TX`<i!wE9R`D@#+W~QdohZ{cn~;Lj!j1Q>}l*t1BPt%ttF9h$bam zr<Jb$%NUZg*^MNx9tZ*+>#+krt-r}yZsQ`f@zXdZM3odxUAwjhv(;}=Sp-46>DU0` zLu;fjrwZq?@<`x7B(PsiOx1x50wRJl&6yoq#F<VI?S|Q*NzcqQT8plrQ(<!#0&Z7A z)pqLgJ|(!Yu~YqDoz%3>YPySgoYaT6NrUdYB!koJRH9A<IXA*t#Poq~1xp&|Ey3yo zfWN;rw4R!oH=_Zz8vm|tCd-kP=Vt7pX(a^ir1l9dk+zm6;60BScnZwXl>G#+G+<j) zVW)0=DiT5ic~yDLn$R9g-B=z=O|Jy_R^w~%^vEGDlwt(Cqc^WW42o8PX2Gk~J-Bd8 zFJO$kiLZ#mX^2OkAXk+^u78M)kvpo~sR?T%ZQ+tn6ZO7z`;a?C$a-16-&N&&pQ~>^ zZmfWzUoKkmfQO8AF<+6?Rn@x6#Ux>`OoVEVI_G{-IjspVLaV*!jU{#N=TQcVA8tAW zez-o(b%Ek&fEeL7^-mmyB^Cf$R(GJIB@i#S6WdOJTdN~&6G~v-C|laC#t*=KkTa6F zvE)Ro3a5++YwOLT!-hNJ)PTADB3TU%F90w&v-vLj>|PDDe_L+zjaBXtPLacXaL`*e zK&h&00&`l!oYpX>(+0XtG-vvENGDK~A4q+tv7D8*aY3X!svRub*T!{BMs#f1JA2M9 zm<xUhBO+*%*vP1NtN4Mi6VdV#@DVO|5Lq%u*H2T(PT3MJzfVyA2tMKmqo!n}B;dY* zY_Y^VOSUNjL*cN5<q^yQeSgn#?P<d!&KoGh(S<wfH*T#>J>;nbGN=T0pc2^3!%rKx zri>~)s|Pn~aH9p65<IeTPdM>5+VAC4l8^7wX4MF+bKowK#Id0meXvd9EhtaryFLvw z!&J^FePzp+>6^uSHkIZvc{Yz#2M{msv<w@1m_^TAX-$*NLC_iu5HFmPyzNc1&+To8 zb{kt&tT6u}H0!h3YTTn)#B9BHX5{Q8SPdh*d7DzN-d?6U4js)_S?7ahcU<=}ryN$} zm55i~qNH7F0yBMdLPNfk0mHG9Xpj{LH}przWFqlteI#wp(&rG-f>osvE2MFI&1x7Z z(Z`tri<u5b-5dWZO9lI-AqRF-7dsU@)cC5eIYwxThTfcesy%j6h1K{IQ!rK;4Q-w~ z%64vM|87Kk9rL{=wl%$idKF8S*QBx7pbJ&gD-|mpyS3<$mfOI7kB5Ow(@Lf!q6OeY zyV?3cKccG}PB;3vLH9}@_pHdUEm#13`*Ma0j-NyyH$?HiKJJeMjiB*W1^AZ?E+Ygw zF5$-$G^P-epz&8Fc!I_Y_v8ePII+H<@lAs6*AbvS{Yu#?m+z|#j7RPj&a+p3PAULl zSkv>YX72C2tp($Otwo#{jf)AxmQj~s+P`u8q`-zrobnvnJgE;3h*k}2aoP`U8rII4 zoSYuDxTWa6%1PLm=0$opnAlc=cd|aK^ihabjE?{x>s=iIb%z5cj90Kp&Z?<m7<$A3 zW}#z=XmVzGObgI+OhR<*kV1wr7dCTsc?@;w6kktf?mLy1v-){6_IIg=606Nz*$I*F z5VJ`NPBkMhdoC>ilm*S#kY4<>1xxwsv*mv%ITd`~{46Pe41Kzi(gjs_b2&$9tyUE) z-@3Ytoygc)na#S;td_m?+G$1LKq<M&u387LuTgER3{fW-BPedkvhW(Tz_KtXD|392 zBsWE8!`9!l+#T7)ceUBBtrOD`cQs7sd+<Du>EMqypXn_AkRB2T5&xd)*tmT}K9c^i z#qeh-A*F*H?CT)!p%2nIrKN*JNRkecH`)8uRA_0wgAw;xhtu1Oo#M5Ojm$A;rcM&= za(9{bbjbZ*@a6u*A)GoOPj-u!<-CI4HQ<wXOS){$NtX+^Gd#fa2gqCThhB64K}mK@ zhc?v?Gq3&1aa3Y^Ih-~R+4`*R#<c)pAJwwKKw$O8bYLB)Fv%aZiCsjKQy}(rk;JxR zk*fD((^W6Rvy;=incV6-VRATsXtxo|lG5m`5}!lYL*Qk2&^O-k`PmJ!5J`=IeWk6$ zWyZIG_}NU4pWP`=YEBT~XOF@by7}4bIevDI>Pk(RVvo)8vmp{KL$8aUO@yDN#TA{Y zS$=kv;b%QKSH-{MXNTcua`qGnyeG!&(+K>m1S07K#7`mC1Ltk5U&GcptsH3+36ZbU zUBCaAFn`#<977fzTIq<;{XCVU7i3FP<lZ9{4{xyqFnsbz*OwY?=L$)Uh@Bt24LYDf zo+3fDHaX-CeREHQpQw(9(3`IfKP@W8Db}Q>HCEHlz@tfh*3>#f{-R8Xx||ik-dRW_ zKwgSzN$_W?#Tor)e%yn`$Y&GUSJy`RFg<vwNCK--VX;rr(E=(^u)QcJ!2S)0dhH^> zPF8iE0K3f-VB4*x8%#giq3BA}8u+A>pR4G{RDLfT=zhzzoHiF}GVTur4DYnaqJWjy z0wuYx`uu!KvOf=xBHN%>4uP57@__WppUUlj@p@qN%ij4fu1mQCgS@no?iytF&VVtb zV7)eHz-7PK;hi_^&gz#}*xGI#Rp+FPIzT`&nq;*|TMfHIBR$rXyPHVyj76T6u}Hpp z`Dysq#_fkT)DCNP22|35I}t8s@DDvj7O>6?fEq2+gqD&=3o-M&yU47iO!mI*Od$IM zrKO^$m9Rvth5C1dg-zROGTi5N=DA(j^i+|A$q5LP(^x8|(c!YCq}a~LHh$bPoQaq< zKda46QUUfXtF^bt*W<zpDqx6EJ$hWNL=B%5`Lyu|AWHxCs##i$G;)*L?jel~5U9tF zoJxX~xP_eVo&3q^@3Q;UGG#ji+Id@$(!xkpvyrPgGuEark*<h1eI#b|IR!C8=(vgt zYmt(PR=?Un3Fq$aHgDTKU@HN(!Tomf6B=@wew-mi{8))&JdDD}2_gD^!oqHjw~W1y z1lil@g$}ad06bvAdako9&bL<SeCzw(x?*fS5N6jS0(|s*Yn3_QT78m}Eh9&mm1TSO zbc;D1N@s;>8I~3_a^`qz1*caP;U+ehlc3~qpN$b7qH_kXWp4Lx)!gcQixZ70xX)lK zfYCwO9^$QrD^S=+onl^onC34(wZv$ajqq!XJW@3naIiq3nP#3RROa;c-aLo%=GkF_ zbMuT*+zUp#Xy*A|^&^i<bE$Xikgur|i7UwEepy+C8_%Lsqyrc`<cX+FvP#8xWv%-) zk|RmZ+{TtwnbOixyI1gs6$fN6tjs+@c4IX)KHG!5rt6xhsm<MMBs){nmM!YX!>Z{A z{E_^3ak3PC!4}-`i=O9D+k5Z}UO?WEcOJz(cKF3;<{{#&iukJ{vb@ft5X6&Zb7@Sn z!79xn&zs!VV%Wr=z^;f+7JqF}?rO;Js-EXj-yz`{Ane<g<+F>oHQuZOJ^)U#C$DgC zfE}Y&09FHzzoikLMTC1Ae+;Cj%TV>hkZzoz(rgCMf=@yVZaXop+Sq54+jUudh>;md zwzc()G|JZB=-~{^R~bgE8N4)alkuXd_jT1f(bTIG80!5Ax!oJhLN=9pu?tww+{V=3 zh9BePg!2tl7gIe1c8E~>?hU3Rn~`GOFN-XTf~Qjgjy2r;1cUrUj8Y+7;(h_|Y2<L< zG&zo#A9muwO@zctrDM6oDGs=&Dx=eCAe%?#cg++n8xqGoY0h*@B>v+M?N=wUU;W4t z_G&}o8*(I`6CT%lDjaNH=!xhV{xn9o;TmVe{UQ~}jVo%Uz}&*b<CqG?#S~}2+3GmF zJPJk7d68}y+csCg;fUpQu~*U3?OKEUvxn~Oo~}GF!&bvIvqWjjH=QW1CPtmFSGr$R ztV~+Dly;KR-!i3Nw;HxfP&ES9wWc%&5SLZD|5U6;pUxY?IrFsCx0xf6uV%dISKdN0 z26=r$tux?avbifv+z-~84ZLWsFK561keOE1i;y92qix)tISXOL5Sx1;a43!@2d|D{ zj(k~^=Tjw>N+b=n*Kvm&K_waNL&c)8)%wFTK)1C-*(5hqrI}<MA5|!T+Cz%5>J8m+ zEKz)_cy)AaaOLYl!$Z8E2B>)eHVf*V#4sMNeQG>D$MW|d_ff`Op*WP&55aLE!BG)y z$fUXx??M3nI+@sCTMgeKE+^DT@A)pTFOo?+bz7NIH%^I;^#BvUR#NM!(Xp2@Wp6=u zNJMP9H=Bx<QVuB%lYvXckw3IqCsvzvtKqxKrgj#3`OT)?y_*jfj9r;0Oxi7cnm*(= zJ}j^CXHBnZTzE2$+-@D@p&As^G=~qB&mBD7@)|JdPrg|4Y7W(2kAEYU`buTY*%@^< z$5OK@W65h2E!&o>Dr6I=kFC+MBPUUCZf~y4#+<JrJJ9c!M5D=T#!zg^l+eRlgfa2S zu(-37^)muaT!Z3f>X6=Q_ASJ7npKtY3uv|?vk16Vn7d!(t03Q&&E#83KIWA74u-7N z_iv=FSBuxuq6dwurbI*DRA68w5R4u0E3#q@LKZu8bw&JEosvzdbSsI_K^`Z8yYcbF zVVY>wn1LE@U!pog0Phe)>+a=G4pv`O<7q?7^l}KjFvo4zRJeD*^r}&y4qoei2ZnE= z$?_a|t6vBBTiiwDc2C1gOirH7-p9uO2`kg<@w2tNKD5nR(u%H%iv~C*#a^EMalu_9 zK&AA!w}nQy?`e*gv7BlQE$Llh;Tn4KJijwd8*Km9G5(=5%d_%X-u>vro@u(JkvLpp zEetYCPgMwHp%#>^o9xs?fV(Mv`ctUq&=sI5Z$_szw^Mf?+M4S@ARFy4WSUs5QmK0^ zuQ)eOIjK3rwl3;Kq#Zjjo!pV_uz&A5G5!(gh9Yw?%sUR1bObLVqA*^C_3|HY9xO%| zevbHpOz+vozUq})483ZtC(ivO`OqxEpZ7CxOsA1xXWPk(=~cVbsia|$J&DUYSn4&1 z0AV@U_E%^NB3WPC|Bm3RpdE*t)r?ujqo*Q#rvK+v9BCEPUWW(BY29}cj2{L~OX~7Z zbRp8(!w@@mqmf+~slqWs=g_<QaAf0ssxwGN?0?#2KNziQMhn6AL@+WN^OvQS=wpOk z5D}gjEkuW#yr`2tNBf|QU>4g8Z3pm?KkB?>^cOnP@v?j4(O?pv)g<T^-R0w@hT-C{ z_Ft&xX}gM9XlGZa?NGF=B+wDu4%#wk`I6J1sk$Zo!Yi7a&FLrkb&IJ^`cU>@%kxI> zuHM$;{4RO%ezfV_C?-2EM$<#v;pro;5VU9t5aQKQ_YN>!a#~05X47!vuZfVF@5>^e zhxqXH)y(<RU&Bb3eZYGs$~E_G!H3Br9ixW@SpMBlgfzjmoUmf|m%|6e8+=HNpGeSX z8jo%wz`tbhDx%Odp2v@;Y1~SZx?n58(=^VQozpb-CDzw8_9p0l6%qy?$p1Ly+%_{H zQ~qIndncYf&(onM4xc17T_@yQaO8e~#JeXT8mF$0sb~I?Sn6B*JA#)G!IZqGyvd0m z@d`V!^B86a`~IbcrT7A?VG>0j<1~3Zzfo>xCO$_X+)-1)4D?gAsVl6fD;O@vQcU>? z5#D;{q3+8a6ZZ$=S0#g)SI>qX3h7KI*{p?AO(`%>1`1!&M{@j`bVRq4s@5a5Txcjo z_hqE-F5*`(c#LY?4tko^Cxu?N5`X3!Ytw0T*J}I>IXi;iA|GSgt1)qLD78fxhMx<n zx|=w2oxfvZXQ1v3hP>ZkOlQCz)C{%I|K@V87#Md8ui2r4jO8E%k?tI)$~LFV|D}b@ z^nq{TY3`ntJDi4uZ$hNUj+L{mKKI72=Gl?j^vl;<R}(ym-g>;^eZBR;SA1;xqXPU( z22UXsY}!PGhfUunB*+}$*I<*)q;?G`x+#ZIPm$td)ZYnq1h3~WlWBoU*pju7la<q) zob~9>%eBr{EC5D+j_h;@Sw0^*Hf#`b)P8#Z+|wT`j9bErhTXzdLmwT%!!OfF+)~%x zC+N>tbywy~MsHsAGFL{2&ik_6XB}J3GwsBS=qq3zi58fL+PRrq@3uI`UsO@u#p(av zpgG)PJ4{eF#C<ykP3-B6N6j@-!0qMHNk{OTrXMR^DdM}&|CR4rQZkQu{bj>-cs&5* z{ao?1XUVLdfr)`vJx-`T!Avm&aVEpt#&1`4r)(KN9l=sH0=YqF?hMK<anEM4%(Hpv zasMo_XTI*!jbYhC8vq-`kA+a!xQ($IYlO61z^&Ab+ifjudJr_Hcq?1Pc{4fkXJ9&- zRRD41jEFV41%Ia;E39<ViLED`V7<sT;HDpXgFBr&>2F)SccScOVp*E7G1;nW6XPEx z0($uct#t&a@&UbwUqq8%gXwdfNd%C(9mW6K$2b{7*N*W}s-`nt@I}h&#?J*JTZfyA zM_~hc$3ZSRnpT<WGn^_i#LQ=X_$HbyZU(@Zp)XV~Rm<hY)0`m2ICiwl5ve+GR}w!T z_A@0}e1PNCGwxbtw@oVfr0Ppes_=@h7&XNi(GkJdj+~oph$Q}r4)F#IaGZ^11a}H} z&LIy==6A22+53;;ijOEys?;dqkvq<?7RF2r_B>oBt8~9>aHpPj(P!+3w@D-RmX2;% z%>4C&LxyO8MY7fOp0%bE8{ImFlqrl=eGsw!{8lVg`iV%@8(gv~<C-*cD7@#Q+VmSg zhTdNF>1{cbC3<t`cK1X4WM-%M$@qSG<=cXX$m}zetpqctc>UA*l&w$khJF*{e?`zN zPuD8Izhv+kLNJs?{CEr{Oi1MMJ0-9@)pQM5`enmRYB_AVl~|a`9D;KQx-DQka+wO0 z>bu^fJA=O!H1PC5{<z~!F4oOh)gAyc672nFk)65&MdA&dIqh-(ZZgy`b!oSfDv*y8 z%X>_pyK1vxE{)X3+H++O334W$apj%br>1W(o!l8TOW;UNZI+0N_o^_*B$2?TYW3Sr z!g4ynfU}hiBsDWCBn`Al8?&W0IdYU?3_OeJk=HOj)8pt&7~+aJ%SBwJ#Nm(zk2TM$ ze&hfmATH_II)d-6GpMOUuo(WOaamA19I`@&5)~QEh;v>vH3Rz}ZqYYxC13TbOts;Y ziB`IV6$0z35$#||twKXo#bBPS&x&7)gjS1g*70Bja`X|=4Mm{UQ8o?{BMG;{#s`7u z2qm6!*Rcr~FEf%^NAO~=e`9Dj;(Q=l&ttI0N6ZorENvA!ZElhb;_l#2H$OF?{sI*s zFBrNq^Nv({X2hD<?*6C23g%z<f4%U(BkV0WJ@IwF<m-{k)*6J(xG$*<vz}0H5amP$ z(+^5M>u3ueBb$-WOijpVTZqV$&%l4LKE*=-oF|U|B|$>~*C@chWbkQ15WqryJOZd8 zBz%5M37&lR_iJ;j=`F<itLfJWnw^&?pOxzKSu@gtNEN)ZKUZk6kx0!2&8L(^oWpMa zEF3s`bLX2651$Rb=fnuX+}(^c%;3Fr-=7zFE|<6OyhP79tr-L+XXncO9SWITegUfT zgL3eD<Tm>5+xN8v+bQX@izf)4#6It@L<6jM0oFW%23Y4SV1V@<LICS3emr2EPDsG| zmJ&Q*Exra|MR8VcF0WujR`z)%I>9gK$44#q2&$ZJ{OLKqUdqV$hH1%7T|Owc-SO6a z_j#2yc%gCDyl=*Nm}Yb1-1=f}oT~_)WSpys_Q&}EK{L*a6foob6(Pp?O@6#_ewvWR z`Cm%##`);g`Qt2`t`sMDDL-y4>^^VxpS>hEzQp)SGLZ4b_|%Tzzy1klz$bTd{8;tA z!<@)udTGDe^(xqFJuze{Sxi42H~smRuC9*YBPwJy{f>@ip@|f9dvMGF!D0M+bjz;^ zIgz~ne76wHhl5{#YqtKx_=N-w9KNK0fy2XufWyuFcyRb6A;BT31P=}mU6mt_7_mNa zOd;r=WtKhYUM8q})=<Qs{tx?m=0y5wlG)>W_|Eqe`QIP17k-;GV2HhNBRnTLGR1dd zCqR*VkZ5wiq;}avqLdNOMFt<jx3O@=0QY9{#!~pvjyb#y?zb0BS~?Dr{h!tNq#$cd z4Y1>ydy$@XjRjtevK)-gjPdXeb!iE#_7v%m*a4tX474Y<7uNNT;4WTrPN1FJ(lSq9 z7Y{~5>A86Fy<azg>VC-3URn(#l4Wc4gE2$Zrf5|wra|1cpGf_>j<hN2z?`}7=wSZC zp>+1fNz}QfChE+xbxxCor963M{oBFU-6%julT^E?>>e7({2t*R9Z+>M9)~wncc6pF z{0O$NdS;GXGC|>+Z|{2%WrT0Zkz)t}%fl-TY>gfG6R@n0ROg0;?I7Tj`wSu8(Oq*} z@JcH25wJ$R>FdF-yS)j1d+?iH1P%T@zbcD=gNXwFTp~RD`z0aa-ziG)@NeLiIsAK( zR3HCV6Lhy{<qpq3<1`xi9r3Kp2bg1y$u8#$8!|BG5hAeCK84ZZhAw^^P8=>I(HdG$ z0{Ym#wr7bFzsa{k0X0Ig<b)F4s1CKnN9v0FCo<>x_@UcHxWNYp`jc=c`=fT0)jrm6 z-pP3j5Uu+yFR0bA`!TAHJb&aczRWK)&L_d#Y%;{%pRs1yL~qGmIX>|K88vSV>VAR@ zrDlaUHhI-+lAa{<ea%w8cMY3ZeMPROw%`+#@Mr1A1T)3m_5Q-I7tqZnXy)e=3h*x( zyq6I36XD03pCUr)_pM6s=4bwl-299r)}NpMAn4wcT@PitunLzZ$?0qlut_Ye3;O!5 zbz!qvXXBu2u-dOr-!Ic%e163SHAfKD@U&KrhAW??EXn!Xod&r**>-jT>*lNjQdf>l z9L4|Na(bUQ%4X;&f$9y3qsO^+L=Yh=r*@(PM&Q`G$L!<(n_=YcgVs}}53rjF_SiT3 z_dylUgy=r#NP-4%JHamfO9m$r1>nm0@c_4)BmwR-O7H-8;pHCS@Q-1$vg{`Z8_)On z(HNS>F{S7qWjZadlXmJNbfx>bSga3c^eXaYPWADZ?-stzS+RR28M@=2P`-EaRx2ZS zG8<rg@bZ^b7yHHy=JREvZ!VPPPN@qyui;*(=tZB0TJ;$a+%%h@d+>i6F+0eXPX_;J zKK=5^;BWZMl}`pAF`v2epH-_DsjaIFMS>$v*(_7TfSdT?Xzr`#r))Mqw8}bznfSKd z;CHI*9e&&y<2x9s7r)Poe@XG<^Wt}S@k<qdZeIK*FaBqWFC#t=Lg*(`Wrq{m*Il6o zYCM15o{qF>m2K6wcMW)&bmO9@Io{8}oiZzkOE=HJqcnQlgx)>y=fU$H3(!8VL05MT zNSvhfB9(5)FP&SzOatanJ42P(_Ys%{7zuuxR-(-CdS}(H>l$!=cjdvF#*RAfDX2T1 zxA=M?Xtu-s)ufec(#s)u>b(fMJG5(n+fY{U3>XChmhB|0irhCY_u!(BW%zvk(0&c; zfd4W6K%-cUIj`#Y;6>b!$j{56_prt*VgrqN_z092%c7~zv0mRBWWINI;hg;l`jW-+ zi-M|9zCq^mG|&;8vKT)hi{-2=>g<)f7-Cc7hDNI1G>Lw}9Skm)d7t^<cH?2M@Oc#G zv?*3~FdE2^3-MYlZl{s!{X+9^;TtWWX&KAxH;fM>8uzk&E!(L(O*X$?vne!sE8{{p z=X$eS{>|3-CyHfT`ZZPS@f!`z)PDCba`WwXdH(NAGaekSVe_2%iNF42hh+5QIrz+< z9Ch}&gSzQI2a0w$F(C50Z#mk>M4jXA-wcNaWLw?wrdXrUgYPbPgGutfd(7{GJ#u+y z_Tz04=bxzfqp3To?WOd~7!{zbLOsKSOvU%hv%Y!kB_bxa66jA&6@M<8x_`eJ`c9>d zA>#{?mVL!!E<!7Io0?a`d^<H6I>L`jBsCdCsl_=EruTMLtHLwc9FvL{Abs5tb$&Ix z-W2qn`_hA1W6)<+F~{xpp+mCUxBiSD!(|55>=5s1Sq&<Yk6afsEIF|l6Lk(podX7G z9(bH}K>D&8mZV<u`bScetSBx_s`jH;_=L6Se5?$W%t>T)Jhi0_KeCpV;KdHzLo+K` zYoK;<P1oWn9QC!-?bP!wWR7#1Qgt*l%zXN8nDF67yDo3fbLN(Q3}8m^4Cr*y$5?9k zmzcctW#>sZ4i*FB-Sk6!yt~wW2iO|EUUgJ^MxS!ti|EE!z0w+I7y11ZF913>M61%# zsv|N|OY~Bj^rDwC*2HbYZwuJ7m<f4NYnn@xy!#4PatgMX-={DQhq0f4mUxx`{rR%U zp|{l4#J&L2-xUk&iiM8Vm1S<q%HJe1Fvg+&f&^cPS(ogKgqGLg;$>%iJTBQ#jvVea z@61SQh83;a4y=Lgcj%Xg?>L~FQ2<Z{(1;#CUL5OMJdFeV&bqgm*e!I%bm7fdU}q$7 zOqFtNx`z4KAt)C`1MeG3GIV|adv@SxB=ko7D&hdI;CghpSi@G-hGV5Zs@g;?=`%)a zn56I4xxgl63GJ-=1NreNCK|}sKf3bIk{hq-LtT9a_XB2q0^%Uh;a=9l?=c+_&QmlG zRc!B%eB!Rq62^BX!;2)^z?Wu*cZr4<3+)15s*c8-UD41Et6>}z83~-AYwl4a`NE73 zpK2}KV+>?@e~V23ZXj#94->X-FYd)HnEt5UTX~PFU;kcKKO6+;>;vx~TZ95L@#=6Y z<adf4S{r{zE|YAVhl20u6?0nVjpPo?sdiv<G>H^^R?PWg)ER_%IeQ^=XRGy)6IX5U z#$q*IBfhb;FZf<kySVRS2EmI0jmA;-(kTI=ZSa3e0M<<kTJ%qw{8I{*Qb<bSVjE|Q zoxEw^&r2y%N)ahVi*1}@%J=gj@uH<uij`7KO7UVF&#|3BT#<MwL8Syq2`;vSr1Y{H zmw73@NU7=NL9ur6gkFp7UIJ!9oX_12jTyReHW_`5IcmO~nKh?Vg-n&91jA1Bu;Cc? zbK*i#=egn~q6p_Z#SihDnh<~u-R3r8H^!<omgd|CsM~M`xQWL~0*V2`HNEBykEUi} z1_s~2aQ|GI<A{5-+C}FV(FvTqy!w2l^unmq`ENK%9t(TmXLP`C;w&{GrR4)#p<(!z zSMf&kVR#kGY8vRs;bvc<oyV%|F2IBxLwns0_Yzg7al5~l37x^VnHW+>Q<FIxuU-{t zNz0XWK=@WWK-aJavv0-OzSZyA0eDj>=Bt&9C@pi}<PnTwmbFV#QI>ihP^)T@n{XT| zg*vT9IirfEro->raoyQ#-g(g^UhcS`2hO2gYu32}-r7)(at~1sfbe8N5y)nedS5tc z@uY&qu-n66-X8j_1fkx904agR6BycIP;b4TB;1>zLWPSbs1&%TJMbzc<eN}LQqkfG zkjr6^?<aneux~;!NyUpN;3M`h*oT)=Q%dMJAxKhi@q{2rpx;;hq+Z}{FZfk2aL=7a zBqR^bo@e+fi<)TGfG;TU;icB2S3D#GK5+xU*E$#9nGme;;4n3HIl{3N5NmNs$~hD) zD#i^)-NmA1;i^6Fvu0hnBy}wkcmO|DXUCGmV$LTc&LD_eXG_rlPqej1t5$i?oJ~E9 zL4Xkz*De-o0hkwi@e{h~n6=D@=4br0Zb~N22j>}nS~o3|=EL&{Cte1W{PC!nG#{XE z`DxwsOqvhTR?-Aaiq-ToE2vM;-Wm$Yts}=ruwN&}IqW}I$5`G<E$sg{RMnGoFUr+y zEs`hd|3lJrPo-Q8IqOzg(P>f5F_6a%10jv4ReSJ|8f6uaNqSlAWTQ!!pfkojhg8G_ zBNZIr73>*?F5xNQ)B(dYkbK0;bBI;k8@$quQnL<}_RdGEE%K3<MXUa2M&)nnRjYBg zS>M5`by=*k7AC3Oys(P-ol0TYS$aw=;6?-MLErlV?_2lv!DaX>7+b%>U7Z%K6p<<( z^wVM?B#SxRiWAfH7K?(~#f4fd4hQ1*F{?tb8WxHP-a>J>Fg}M^p;irx!~}1VI9wFJ zlvp8E4GY8sZ-F>m93Mxl$g_sUVS=|f91h0MBUXr1!@@AZTNn=aikB1X;SjNAImpS+ z)&tjLxahX!!8B&%CVy?s(ka|-L~kFUw*_?zw3ttCX?@*1FbR<kk+eHB8rottzLSOL zrfzulref^g3`oI9HdZXQ0r&ssu<S`S<;Erww2cMu)v@)?G66};Tf=kNr4Y2eN$1RP ztua|vXfT$|As8!6n+AMG<e}|`xv%AO!%~aeY$b*pK8kg+anFe;6RTPik$D-iz`W5@ z{HK4%L<4E~p{><rSk$R74<@j*ID>RcoTIm@W?f6R8n2)xYpIYDUf5@`1QfVojfo8_ z8iZXO(aJ&!E6aIaitrVrT^!NELJA8@sh1+01#uTgw62iCx}tY_t)*e%Ey%k#QVi;n z!m_f-OA+pZz>6bVRY+k~dEQGA{!ZvsyEtrCmERF**dD+vLT1Urv6dwTR4p~ADhLab z(GTJ4D`FNi!PlVhwYLmC8fQ`=OeR*vC5lM*s$wnN3|nVW39_hciUCTkD-~v4!MPzz z_g2=GR&RAT!eP^66ma`corDp0KT<24OH-s>&2IQtfGEwT?N)n<Mo!0(GP{MX?m_WF z`Zvai;cSj}qxp6#sMIU-gw|6(-PC%7<m-u~_XrzaE2zZX$%vK)H;q3~+CHp`b{Z+V z_Cx2*3-&xFM(VuGd2@DuTgU!(P5K}TF*Z0D@3kQ}&x1>w{p}pHzr7eV*8Y}FY#e%L zJ7G4s9MTpqB_~I^zcM-z8z;}&MWN6;CZ2Ai5b?IjPzM`bu3@lIW#60F%7TeE;Ff(P zHx92?8Fsw$xu9JbY1xG|1#NKg3&&GY+*QxiHv;P8!zGb+?>k0y?}IzMeK4b1?(c)W zmvOCze~G($d~l-_FuM)6j}IT^Z-o{4z(vR`Sbu@KePCYRPWV7}C%o_=<FDyhiCdP8 z2pT!p#^m!=E~^XmW>z<6xhGOiA&BTnILHg)o9%VmSkXrpbTICs_$``KRJ&2yCp14I z>|_~HObwD_G{g(C@zLU)qx86%DQYCk7<ic+WRMbhXP|E6^U~3_6E-gidP`BVZ*3A0 zfVOI#LWirQa^+hk3ovh+{dw>vy$7!i+83C8HiE)?T>yZ6_8E-Z+h-p%yTZeYpU*z~ zU8|vzQS-cwSuga4EDzk$-8p&tY(dTJvkxLcu+NU0eRkaJvuh<)v(GlWiljG({yw{d z{hu9L!9IJ1+2pQ>B=%~b{Vto`SZEKvnRD|EfoQiur`TX0j|C2rUbmZlq}A9e^f8ks zF(Hzg%szXo(P1nsr90lt6-u-LFCz$vTs?;R;liCvV+Gyg<{LWNmfeLQV6i3>KFwda z0kb){H-BI_-gLIsZ84(!)?;wqCR(P!{=H$o9W6!iv6B5cQmHai7ifc##FADlSsruF zj5#Hmvw<g>GjF;WcEss0aM)`$`yXhtf1|HwjY4x(2escn=xfdZh4%XgBLdW$Fh{fJ zM*(#>-5cK)X3rlT&DeHFFtZJOkREm}oy9E3D9h42@a3UR|8FS3reBPq$EJUyOukv8 zpp&#gDv$1xI8GF1Bh|KY=d0$JGv!z`w7+hbG1*4HY$oCr1DA^|`C*qbY2gYpNB0gN zQ(!fD{*XK(n&c~)AR@1R1AXo9p$p)y&3z8`>*}@{@&V$#j1|^%!|SQHARZGw&KE(| zuz8mb>;@cRLl~GcvDJ6ka7CdV?Ya7eJDLOW!7%g_c*QXjm`6R{OjI2-dWoG@L#a4- zpabZ+YgpHHKH%%Y!pSp}$arnQp}9EhTyo5rhH_?C-L6ct+46oe=ut$&_vxVI<G3Mu zc>#xja$D_3mC9E8F@C+RcHA8Xm&YYPQ&)A+{ZG?u4a<_y!D{+|9=Q>A_#Sz)gJr2l zy~f>LPra5-M>y+%)4D~HM7$X^gmZs?Gmq{LEiLMY`=k*E#rD!t2#701@OzC%87!S- z$&P0k>%W>KNY4M&T7t947P5KtB&X3?P8if!xhF|^pBZ|Rxp<+G%5$u6htK{%s~Af% zN~uDRFV0X$=PR{FcjH5sGlO5yav(8@yo3Amuy{0}{p5W`2;_YwkYj@LO5tOMrnbTd zw-!b)vJbTI5LL2Y*eRD+891CPreQsx`%PRLLJe1L{VZ=t>tJ2pkXDL``ON)X$f29B zd!hzCnaPNvJ;aQ4b==K?r5n&9?IJ*=N_(3@VX-Utip^_u46M~Q?EQ=Ct6u=*=0S1z zM=UuoDv5*X9BBO1j#FVB>t)A=7{}NGC=bNr!%jaQ2RV~Wh!e3??P%C{E$hATQaCBx z^zo8&T<BAqeP}s@zYasySaX$rffb{c6XF~_+sA613AmSRujA^9fM?qBAZT0}8}fdb z1;HSS`+KRP)ULLIddI}0e;w%fm^4GqIeI``E=oO!e?Je2zNMvAAnpP75n{f#eF)-P z48$WIu={(!j`LnKfcAL+G^llSj0b4=xCi4b_V8emhdr2r!wt^%^e_g6JZU)@fXmf7 z0jJOhmLVYPfoCBp0}(?jO!r9aw^x0HOpZX!-U#=LzI~ip&S-TMxZ3bI?OjJuJv74* z%`PBECioICQi6y2I3V)L#A^JMKn#??DCu1>^EIS0Hb*LvRB?Z>2~q)@Ae2IAgq7hO zbLYU7&?y7DEJ`hl2&Ia`qL<Ud;8Pnp%*1;<|6{p*Pq2JX^$IhZ{-E*xpW&B#jY=8L znB|9$7e7jQqd9oI2TMGa%`0<hGzZEe&4E~^q{&h4esdWu&A|qeZ-+!^q3-`O0{0E- z^pN-hkl4d^<mqQ%umV5p9wK?O`xUZ5VWjKpY~atm*O+s(dV|rcB9tJ}lQKxC;dB!H zc?gZgtdahGME<tnE1Vm0YG}Nv8Nn7|oD;);P`)eu_3gCoEQ=(LUtleKgYuC8M}m9w zHiyHh##Xa*>@JF=#{Iw^|0wC!qD>+q4S1VQ+fe8qmY6GsF5PT6$vamMd=cUbCuhJk z`VS8~lM0f(BY18uj-~33IYowk&EbmC=H6ZIeu~1r+!0B<i%$4J_Ly&fG<3*HoJo4J zcQ|>54U<t0=gMPY=c3|B=)|2%qvoX;^_4@IMCS$8qQ2^3;s~MN6AE*dVkI^z4jdli zi-LR1#i@%}a_(({{~V8x^5uMgWKGRc>ylk|g5$K%ao%qT?TMeNvH62yOqw)QH#arW z)(X0^Cw?L8HMg1U)VCR>EDGRLNw$ppij5^ar%7hO_h&eequO+QMv{HW3Q|?PZaITS zGSZawkc^(zg`VvE3Igs6h6~m+9f&v5=x5>L?$bx=cD#%2!7mCkocX;G4}=^7$-H@y zS#4n*ju_qhZN(UOA%NdoT;raiqVn`_jugS}ZJvu14$-2{uJkN=k;EW?T$<-(Z|ecs zA8VG$>YPa_&9u_)`-*|onVNm4w;LcEt+>CJaFgHqO~o}42b1}DvF)am=p1vK_)SvT zVHF0woZi{iL?~*_p<ZE>`#Y~bk4~wJw?wF@me@QC1O^?LcMeR5%UX{W)#1mWvp9a1 zI|IW=Ge7RFPyq9mwJ%`v?LGx*WZ@m|exEdfDLwm%dO*o$*6eDR;gHtH8}0(0A93CS z7LoM;tb@a}Lv{ea+6Ro|;QP)??7-50#FrweYq^z%F%u?c-qp2=?%7_pB+haA`<W+l zF9f^SJaMGwc=lAjZ(ZG-o=E%w0>*Hl`+VG;`mK}YUuDW%Kw5Vhj}8-i##mL%`fTg` z;FYV&+3r^Ezh}?^t2`LytIo12g%XM7V}KC&O!7-g{2Yk~tg8rL+mgQWN2>SwmFYkI zg~qveJ=?mVecp-#*396scAnqMRUvuZZ;$4bcF!l?x5~@jB~;hn<g+SKc$(G(XxiJ? zLErah+kK9lxpuca=(qcM({5$EYyxS!<*tDYbJfY}qfcdXOdVIR%Dk1=A2WUuy2pQ` zI`y&R&+o^T*?#;9kJVJr-48CDmj^3M-fLU(;E;QtM*Z2;rZJTVJI(L4Etyxk=QAH( z|0Lam*DHkn&*1ePQ>Q;qfBvBluU@8~-aOqkoVLsE_1bR#H*gD%GI`3&rsd_$Y{(-v z?N_q%D>$aF|Eq@&U<osL!F%&cgcF@Bd*DR(V0)I&P5jFA8Pwy|k%R4iQ&-vJ*}63K zblyXr?ke3s2sOIDWsd_sdGzpI(mq5F?z1P&-<<wskG#40b5FVFWc4?v-$xkluDd(` z*pH#-PkszNpZziUi%y=O@!5u+t*U#6v!?9>A1`RrWX#Rd7x7S-?Y1zYC25V<pPobB z^jx*VpB}5y&zf&<**(8PpM4!rn@^uB=bn}Ry6QA|?vH(pfA1`P87bsnl|zNiLWRA{ z{kFQZch8mdL+&;IhM!&dQGVv$T7UBSxQzId&BrN;ljncG;pF*0-FUM69zI#5b+?h_ zuP2$0x$uRV!GYPq=K$@FgfO#wc0ZsR{lPNBl2)cqC#9PNF7W26?2jb-Y|c!#VV?HK z%-06N-@2fc`D&kgo;c5gUhOUEzyIlD<_*kwPyM(p+m9qUsb_;fj|b*4qcel&X8Vzw z$E@AtN%3)Rr5Qhk(qm11l`x(W9)rvQ!`SBubJhNyRv!+hkiQ2UR%#%>COPxmhxo@w z$NL+vmX`F2KdP1y&D|{7?{9Xz_h#Gs2|0U=m!8fHjwabh^ATEtwK|&h$~{|n-i^aP zziCbv89Mvudj08-q3_dAPTy|kyC<)IBk|q1*UfMK@G<rO*U9UbJ4MTGVK@>QwSi1* z+mdj@iNk}e2b-5IG4_tSy}u=a-`UPV^G->)=*1I<`&bXQI_s8^-yLPXn$7%uD1Y#y z`BT%kB#vA+uNT>oFPznh?OPJN!-*q<=IvG0&8qB2s?5MQ6+WaRp9hJquzt|mXPvdQ zhe5O2&vsV)L*F<0ozH$(Bo1G%!DPROB@SPg{l-^{sr>$vRSteR?WxEkscBmihtIMm zv@Tns?-#f{mi=}=d*YP*Cy%hFXa9!pN}N`rvb7rD2dI%07FRe%!|HjED;Grh__8}- zHT;G+lq8(sb|JK8CRt0_Jg|#<Wzx;B2l$uRRb;okiwA-0yW+QUt(4bqRfLOgXd1r3 z#ft5yT~R!zi)UMRw4m^B&CaLQ4?Q$jhjDNHK~^CtgAz{u3TzIULodb8sCCYgYl~BB zovTqd9u34%yk5;Ey5hgsiLS!<C;3|xXD`+jh<}1%Aij#pd-zhjxLh6Y{_!*LgC`*O zGt!DVt(k|j`OP#knSFBb&WXMzkawS@l8cB-Io8o#U<B}SBkRgI^yB*8jREuc5dL;% z?M@sikI%yVq;z=to9qODF!v31+-W?vPONFv`=N*4w4L+WV#^_hvE}{pb^gr|@GopV zUpyS6+P#s)@<1Xz%6`ZWtjPQ+H$IBWaJXRHsJhZ{{k_8j^Xu4=E-$R!n;9g0GUZjS zWoNPdkSd|P*Pm@{E9lRgeDPZRv={1+1n(+Oq`zQ2-<(;Og-2@IBg9*abj+4WU#YbJ z$zvx=dhSQKVq!po=OQeC)&P=I1rj@TRlsw`0Ew1cjlTsq@YE2SwIAF5rVaPs%KpS! zdP@2duSd6NGcF6pEq4xz$<NVbHp`P5-?kdRL?ChqyWp?0<zEN1^7kr+UajYgVw@!4 zCZ3r&U;rlbBAMiM+M)gN->aQnXeh8we<-t_>^g5z_H15vE<?@17r6GV|CXRio<ch9 z_4w<AGG_pHDxhG*Kv%WUm|AEuE!1tZmKJ%Coi{HF$)VklY@fZvE6>cR2Cvik{k0l9 z*sZF@&w4ek&DD5UsXtfHQcXd&_7<}H^YnYgdwJYzXw<+*pmX&Ah|j<B@i{kj<3?JI z4;WR2X3N}HbJj4ou~}&|{QE-c(a+Jnf<H4%z1>rWy5y_=?BtB5yXi6NysNTbHD%+g zJovwp2mj@nE$TN3%;QcUB>vo>k;u;D4^_)hua-n+ecpUoO>cu<^>+v6TTQQtZ>6qc z-rn}+t&UKSd3zhG@aAo~YJ3sx8Dq+uxBIe?Ju83Sa_d?5{83YO{<`~VHM;)%-Raf* zzs=wOoP7Q+qw##^;5I@kwsX`yhlC#VI3st1rm}jknbDWRI`Ec3cRq_UcW<j-4=0Y7 z$FKGnf{d&f{D^4iojc25xMOP?_r^be=yhkP;ZFPWJCI%f!q%T*AmUN5mejRH>oR}y z*3F@r)tbkT@TJ!?0~DX-OD#LZt^$E&UKe6s7q;=0<4IXO|Ch>TXJcmfY&_Rv{5|v| zP^kgIi?vQ$OgfUDEXlwi(FKnG5Jai&h#GEmgAidk%2{CX6@%Bi?a-Tdo~b+E^7}Wb z5tbxBIEUT}JD(eVGDZac{`nB7A&fwKn2PsWXHYlIQDOYAs{bZafBezRD`ZpVrBhi5 zmj#qHJ=sf4WOgj+$$wDM%sK+YyrsHB9{pJ#Jp5~U#~@!|rK;}Zb$w@!Q_P#2h1&Vu zQ2Qq&^WpO7%y2a;8cW+U-VBmmH9m<B7+`G7)p%El&wEy8YyMX^-u_kd<nx_bszL1t zQto;(<xQ5sgP#5XuyVi$j_fngWa<8!x#tzG4{@-6H+DLDArO^w`s)Wz!Blk)_nSI+ zL}=FR{*#*CzORo?2pdH6+`izZxiZ$0Q33#mFm>EZBDX#3qQM;P_l*Qra=(*j4BioT zBQkfZy^PO^M(Uxl)VHBCu2*cvx+!W+?nK9({w?sBu(Eh8x1~DbEq;ZkQ5$wp{3%{p zTvTvzO557wf%wmp7nK_uqn}gV|Ha<B$46CO3;)?+0tp6pB0-}<0Sz{TXo;dF8f-S% z0~45V5xiAv(bybmttiX@T7<+Tn%(I}dRp6_)}Fqn_4KCa*mLS3YSkv;4vM+RHOgI` zVdO4XCHZ~Vv-iv-+|;Az_r8A|Ka$z|+0S)7>silQ>sf0(m=uK;0n(aPK}*3UawB!g z#MhMwsB2b*_Cz00K#R9O>W7Q7;LsLyMthK6#@(sjz18zE`(qpzx58OfHw|YzI4VYF z_2zS_clks+?`kX;xHz7Em+4~wrkR%?NfA{(TH^eIhJdyt;9bV0-g@nNCMBwjtrb2< zA6%*>?~&)^aG`tu-k?OBKY(WpezmN8nwo&~Xr3h({T3aS*jiUZZFy%ZqEApplF~_v zhI!#M!GUY!4qD*sG4@^}i9C@KQYp&^DJ}t@96ahm-xRJ8FR3;75Ubptw61E$NnjkD zMLFZu$9eRZKiJ=IkJoA%^qN-QBi9`Q9qhSU?VkB*{=$7Tr-jF4t{Bsw{(|5^FEGtP zUpyGI6udaNB;X>9JpA?~t+eoMU0tKOVhnZz!VHVkRf17ty$hQIn4IVc#;a9iid9x{ zKSHDw&cpUm#nPEShONatm{Y5^nRt$M;x(`xj4s2%w*Z$&O#YwTKtbUv7H9UT%fvhg z1rpd>_*Q7oE5oH>{1rxGcor?8%j7FSOC71*v*6bbE9({SDLCUR<MTs3ed{vefp=@O z4#i#-F38Tr{Ru09H8XE^x-gE@k$`l8s4UWjTj)}}JmzSgzGj^#8(v<S?G>&F#kjOJ z(V6Ek0gJxR^tkk7an6l(IfWcDXfrqJ$(LF0$B1Bm8!+m`mTfC7aOiLVQ!Q+yJbv4+ z6*Q>%<y4R;(ioa!d8y6=iJ3Z+L!Fgk_a$cpc7FmhNHpL^x$U~<16nS#Cu6LKlgVZN z@G!tTER}0G9K-S@oM)1iJ7qBa6W1s<mL7FP`~b(FcV0`hIzx&>U4H4Nq}CbO_=#P4 zotx65&Y)LfPCnaB@zfdYTw+CjpPQ0aXJE@G#^X1;DLpaci~4xseC$eo0`^1~05PW0 zv8&rJHoSc?6vzg=m{2x{_Nx0tcI*#$H-IjEC)l2Bqk6lp*VHDfV5}3u{rgU^`e!G7 zH*je7d*322W4(jCm^d1B=_+*4IQ2RX{}aFTfU%BrQc_6)&YfcE=%n-@g^jC|v8t#S zm@tyU{?f@<Q=L3%q+q+<$ymkmPhWg9hVYYmMtAbU3E&ETlqoaL>(Tou!Y;}UX3<h` z_Eh?xT+fc)pS53Ec$MFJi*0}#7f@jVs(=+MP!hsbgfC{HUMia=JEonp*x58EHAgN` zpF;1U963@-fZJOtZ@fBquLuzZBsD0(AEo+!{g(~8uSqC^SY#=&;z=GV^xLk}Ulhf6 zc8FEB(b2@PT)ONGODYygRaAV?uMZVP&;HOqO9x)(hK-aMi%#}q$-+N8YL;jR^`UF+ z5sTqpwIfmnmGIq-QckwjX#@{tTYV#Xn_A12)ZsKAohN`&>j6IYs(?LR<Frr3G>jgQ z89=WMSL=Y}5>?9?LDETRN*aiRWL96cEB)ve>0n|2ZnbZzYVn7aFw1hI6~06zLfpT` z875>(E>iT{HxoB!b*Z;iD8-5M=iFSeNEo$j$b--ZL0)bvUwLO2eV<hEA(3nliw)^F z`KM~2;nWoHFrv*mH9xIE9}WWv!orraySZ|TvKh#RD5zz^7097IWpYlubN@s;=VI20 z+%|+Y1Iy%5fLDf}mwh`M*T<}siQ&wPCs>(r2Z=IqkXRiMFDG#~8BcZ;8rb%xsxWgm zI`23}DDM)n4$gOzl)XAVWU=&fla#SKNvxJsH%VEllf-h7<4@`yt<2O(V!gaW5<tK{ z9j_6Ax--wL4vEo#bp)%Qs1M4n6?h5!t|amUw>c~Pklg@#mf%GY=1k0$U(ZSPjcf@< z;HMk8J05*kS9f}Ko|F&wL<|Hi*q7ZTa_xsML&OdSKC=s}hd8~*4z0Q{CD=FqF6~uR z7a1v`!%9Ep#A6s#&|Xn}1Iy&CV7AkLL3Z+elYDeJlqFoGBc4+XK7x4d2;|303pc{s z`Sr1fh&Ob7<ZjGvY0>h`>5{(-g{WBM#5Z+&)knsY=#TUuID;)j_(<6@Dn?fqjY|oA zRBHDZ7|mq7u0|y(f2w}inFjXYvg0V;kbaM*-xMJxTLT?S8E22sB8>#2md^F;Qq3Z% zHw_Dg*zeed3?3BIvKCE(Ge0hT1c<OFK|d9!@r&Vt)Af>+&_Pc5FYo}4$YTVCal^5m zuPmX_t2IW((sJ@FR>A%6?9nN)Hx^BCARoLSfe#6|tBJeI)azNKgcFtfIV!j$F?4n8 z`lLRO*cHJWDtugObp<(#Ws7C2YvkW<O>zf&`}F#Yd1?>6EqTwc@ZG3!{SR4U|IBW! zR(G<xMYL8y8<)ilXPl~zujus#H8-Xb5k8gAK@1O@XfCzF0CnFniTM!6FH%RR7Bonb zWB}8*cbk8={`?qcM}kMP9<HUD#!z0o5l9c+k4Qg)I4joorVpz^>m_G~UVj0Lf_Y|L zsPb++pL_<X_L%jOU!olU8u;q<=U3nxe>?drsy|*Z=jw{;;|pfz==Dpms&qL%K_&X3 z*RP3GVj`+9KHpjrnaz{cSW&npRI1m1o1w2j7y2MWZx2r3x?iW>&~vKN|L|LfrSxc3 zx-5m_62M%qU)jAKy?&sSqaXT{LeeNkycfNGLaOT3tEc34^_{1UFJLW`Zv4Q-7rnlx z!09gJq2OJrKVPq?KDJ;sZSntwk}~^FsTu~#VR0R}Nskv{Sm})S37#szq1B1eRxfAN zdzgdv&@&=y{ly_H!Xqz{nTXSI)y9bhbDoh3zmcf$I(e#Zj@8EdUn$fD9pZYwJq{6i zNpM2skq;c+U5pi=FS0W$9-IyqvyKT|D0Vu;f&3WyvQ-?dJBjp7#^vS!Hm`VYXa0z1 zSuf?>^{SeK<%l<@*HnWKk)G0|)XdUV4$)&biY9u9zSzWQ!k*G;`->}&kC@|?Yrw>J zYoqi*+Zw4=EpJ@jOWGABC7o3CySkyW=o@pm8oD)jD_iG<s)B*D^NHtQd0d}80-O0F z&+HMxuZOnAo?BGVE_Eb{>B~X~<edpBTq$>x#h!Q>!_Ab~Ze>vw+o?iPMIQuXWPGCj zfITi)Rnrh00A5#bYbdJJpKg%-nxhKXWA>uXnugH(EN%7!^0QMTFyXsRA4d|=BwH(J zO~gsT<1=_^yb^H`Rh2ZcqZLan+t7xn`H;vE&D59BMh#NaxxtU&In!DB7)z*Tfx!5; z@5!`2q#=yrEv^N>6<I_IhD<#H`4+;VE9u--^b%A;Jb#!C8{2Lw@_P@(J=Jk0h43T) zM0%-!?%R+ZUFf4wch{{{sS_+O=Ee_2k@AG9i!?>b*Ti1yLVy;z_~9o^F+H!mDJ6Ja zWdAOOhzMuLBd`8VP;7|=sBs85DA*Wz;(bZ&vIC~56M@*9i)1ghRtDjQ9Xxc!s>&h^ zC=QAJZp&^$Q{k^<H7Ys-_mIuMT-o1*$ocB-==9ZzK+1ifz&9TMd#%1W1Em7tzYnQ$ zk)7|+1vcfRUcuQ>STbEXgtM0a>t`zu2cr3y_<pe=s$Jei5N?#j-~|R8;U0xpae80S zKwxp*lmk7r9^&n<k);QKZ%hdmMV{Iz05*Go02^nWAG=iT)9?=j5ZCqB(+dxT_B+dY ziOat*rucqnZH&FsWdfc0)$&%sm7yk(lB=Zwut=I4A#+zi+(x$4V&s7a!n)CaR#)&+ zk$%rJZ}6NS#7|>o@H_!1WkM|yrajJEuxHgXnKd9Ydak5Alkd>5QtNG@VZp~DFYP!l zMG#*UR}fzXFT#4j#*4fUK1XgMIy*}#a|D~hH9T9Jy-lG!D9#`in+%~kv|ij#Tw11% ziJW>^t7y@eX;Oda&m2>nl1tKqsDn-^o4_BS|4j|4xb7zmB6P>{)ZwfiLH812lc28- z|591h6Fl{62k|!&JmpyLfIIJwPn`lC#0%dx@iqsHjiH@M%v&VEMeKgFe=n!!vX5FT zp%g&XIJ%#K=Uh-XrPJb;G85g)uIM9*h*b()m#1EJl<Pn?QMi!8QcRXayqHlpIZ<w> zK|qqq`5GuR0Zx4Zl|)8ucP5<Jjy>r*-aMod1-Yjd-xn7nP+|zqu@Swm8{bLa1MF}g zB>S%V3tuI=196<-e*1tu;JJV0<Xz5Tr9(L4I^*bT)ZN^*L#ZjE!wilQV5;%B@H8rm zH26W}5dr8|#c|tG{4AI!&WINz;W;@8PYy5R_|8Oe4~r%Tn5y3Rdiwu&K7ar07nslK z6#l&P`Tec`Q}fyWyZ?9RlfX@SojBBlZci@I(T*JRC9Ti0@&;##w*6MY0pjf}(9+}r zMM!0nlRH$mN9U*|S}g0+e{>V2oi+M2rBzY2Z@EQfktWM->%L6q$};`gyQfU+y~$<j z&{x!VpSDiBP=C?CaxDf6R_<X@y^}S2^j~Cb?mBcAt~)-paJzNVUAo=r;Fq>;f77M6 zLTBUrZ^0g=1zRgZ<am@t1)Y(CcTdrM{awhFJrCX2h3XR_WeT^<>SG<N?F{ykv%6F- zn~1Z$@$qsLua3Q991lZ(#Xd3_vz*A^`H|^JpO|2pdHEE^UM?x^LFXKPXgHiQ-mt>} zD$~qef=wc5UZXF*Q8sZgYnT{W-F{xmE20-u>>5gw*%uU7c4DR=$LY?sASRb|Q;X=d z&7H6-sHb}RwIzP*E1XgcqxInq=S)9UO|j-AKRH}qd~vc1z-fceT1qe6IOcSt2B}W0 zTO!5uB;E=AiC0Og{CGImEy}}uIVP6C$0Dy4w8t)T;iSLLH6W4U98b!wN@%;qWhs#t z+Lb<SrvxW)4JLH=AZ)!`&N&a8Go;$FmH0d7qwh#vQi~jqs(Svxtp^zi|I!ke`NL>w zW$f5ze_b&aGIHTsD?h#}m@8Hj!D|r!>EP?es{&NgLwgnUObKgtAkqW7alB>$=Cas- zI(cGmGEU4F<S4vG&N!$cn#*sODUHu3pv<RQW)lYEOcOdGa(vTgoX~uk(6)EFO{jP$ z2tK(p>dt3NxA`ngB4U?b=(Q5x(Zwq+lt2*~d62FoXLK#!1-10rr926G>9yiJ!foZL z$a%R+4szzxFW%L^kjWrUxSEUhO=?cJcA3-j+&LxUl6&4f#~YtdnM=%ZK9MSvRYJU; zpSbnNoW}e*w+?vUbrCuSLOb$md{&c7ihf@eyfi++@8aiDz9aVU3ftvVC?<2P0Qxvc z<0qmdFUw;8>a2%1)rxXwxR09QccU3H!*PC8@dI5}xB{$1_|K12iHw?Da>*qx5<<MZ z!-k|9=x@B31{f+BVQgUH`xsF}@~1y4m<G*<?$Wy{)Z16n8hTI3fu=~6$>A;%UBC!* zcCj3)U|suaxU)z$32svlUNRbfJA>MCdK=af)S1C;1+8+;y4fU(&2ID&X9d&)8yvp* z$VSmjWPV+^WLW19cvY;k2UWqlau(!j3QmznVa+j&kS-Mz9C7;N)VG)l;(Yj@<CP`( z@WPG|p$}EPak(@OFMr|D;I3|8x{Mxt>K1PgTT~G&CH_5EoXD{&e)#Z-gp%h$q8}CP zK_1B}8Wg;;Xh^W+2I55gz(f37#m4&`5@CExMS73ZcOZa{CUV~fh1Q%il)%w0(Ugb+ zyyd-U2!~&+kD{S^%}=S0Ab%Qq2B83D)<+nLWXQ8tW>*mI3ClISuOct52c*k@)aA-@ zgY-b2R$}M;U92}uwF&*$&Ei^=l@-3PKmKphOnK-#a%<Qon)2gIQ@tYHv`aYfLwrZy zkl9ntIYFLM+%)(5wJp@`$un4A#CVIIL@6%wUU}0Hy;iOmVgTfp3n`YQMz<#P=aMAj zet=G}73~*#2Bnbm22UQrMFT&VEnn;sh89iIpL~x`qPZydJWjOV&TR>N_Q^#XKS!a0 zEnPknA(85e%Jtft6xfd+Z4q7JA@zdG+0LVz{o4AdIstq=i#n?hX>wtyhRb7qk2*8& zYkJKNG&b_eali&1^~F8u+eq@Jh?&*9_zss^N5v4Q13Q$y)J&K4h`COUV-kTb{9e4y zI%at!T35j85OLK@@4l82yiACyvMsRbraG6X;ek!CW-|2(45`e_({S?1)1v>uu^jsm z0Dirf1f-Mwh=cH_u#@nYFY|j3Ami$_j{)S^!Z<z)9O;vEO6p;<qb~z=*41@>``ZLr z_(pu)oFCc$w(4{5XVES0Lm3#_jqXZ1!R;^6Su%Gb=bj%~sq*Qy(@2teBYQ-$?~G26 z6zhPxfkZX~1*XVG;SDfMk#P+p2cAm=4416oUUHVDngFXXH>SuTJv${TmMcz|i>}ve zeewp#Qb#z~AFD4tWN1K(ql2ZX%8tq@;ONgTph)FSY$=a0XTl`}?AZjH{vK~w{tZar z3$W}d`+#d+DFMXAyz=}=b(;dlR$h8Kyn_CugsOJ;mbLi)<vR^>tX$oaV(}h*2GABX zRNi!z@se!v`cKgo_8hL){7k0zkjB6jV(B$<MDHTiI60Za|J}x!(Au2<+M&%!pdDr6 z;f8A8<TomJ{d8?ytKQV98XrjGi{kb?OI26J-ZMG~P$b6d&=a-%wCJ>tWlk%}n&^Sg z+K&%rq8Go048^BT>|Yh$60?#=CQm$NN5*H*Z)HU%kRHdU5>5|hr8=`A4LRwibyAjN z_9q;y$x{6tUkrjw%CeL*N>ltLcgmuC>jY)c4+RSGeJerae?o>NsPmZg7ynJcOwdN0 z<E;E>D^+s7lz?P%5V@?y_#mDqmw@snfD-);FY)n%$3m~}pjDwW)GvdR`We?uG8#v> z()s9ZbeI;S<&vakIeHm@H(n<WM@sZn8IC$lj!Fa^0%9mnL}djA5{9sUm=Bv8C_n7B z3kvCxi&_NNg4fEzc9>RK-r5ot_f{4+9;qzuK;Z$s=C4w}6xr3R(34B+7x%LLf3G~A zmar#9MS-22|2L%RPtK!&%lrHh;*E6{BU0fmM>5iYJ%+{IOb~AlH#xV>Bh5tJtilP3 z7p>1~E@&_$mLRqpQm<G$5Ys|Ye5@Uad+xK^h|IL#v^JXFO&DtExO?~H5DwK%4Ir`J zHNEee_AOfV$)2<Ob0=uefYl%0bYhJk!v+NN4h;gZqn9#b<X}041DuJB%HX+}j%Yzc z-mr5hPQ|1{fV9}a#-X?e>n=D%-mq^d_F&2pyhz@#Z75E|j3byKZ`d^y_hkQ!mSex! zWl}4c)n{a`7YBN3ktcvA+T-eDa}Cz)7~8W<&1NZc97ia%Fe2Y_)<g8`6g6H0hdQHQ zJ0|md07Wpy68%Y0MAnqL1&@%=#CmIz@PX_GxXU}nTz@@E-KWcE-S~^D4@WWwy7$Gr zEcN?p-XMPc){pWebgVM6gNOQQUY(>0|FQl&b;8CioTM=P6fu(s=knElHLr@<;AFbg z+T+LVRFxq(QE|Y2F|U$O0jnMQ4x91-4DhV;{NYzsD|McM?sly~3DFe4TWYmq-+dzy zXK6&QzCjuf*Qm@G)#c*H;`TS+=`Y+=)lwPAnfM*f3G${H>h4IQAz9lam%b(Qls5Gr zvj`7guuAFl35<Y}R_S+*%FZi8;}jR`w>r?U&F3g#zDDv@!OIt9^Lu%y-HFG&Rp3v; z@X#g7cqFz~_&0|Eh8Gp&Oi8I}4W>iw9-w<E=-=h}e)Y^1i9E~oU`nSfFVp13u*WtR zW#~^VfxuJw&`>`EA8qLfM~3s^qL-yJ-9bKGt=BwACe$x>pY2a&Ny+x2TjqSr;ajSR zn$)?C^YB*{9AQ<KLPp|%6zB_hmzyIyQ&g0Sf>!1(nY-2^cl5_n1X7V?&;tZU$@klH z;(Ae>nAw*`lMh~FE`xYT1`#L+*L&+Ve*w+eOXktrhxD4)cr)cy22QRN&SB>&=*SCE zrP3u{L4NfKmiDVKxYZ{JDYcUbIA!57tnFg@<9}nkaGS8b%0g>7uYMQ307CI13?Z$9 zN^U>}>L^^%+aNDwi@r60ZHlXxGM1;NRDyuguzLva%-0vxV-sd(M`SLGm=#NeAt!2r zfGcvX+9Z}l*Epb>he_sHh92$X485jGXS56*mvFu2+4C7IFsN>Zk3>%&aMzD`g#fkT zrP@|z;69UGWv(zn>&XUu^}08*nP!#`BfT<U*QjM02byH4`D0%o%n_B{r*mNz8>9l9 zXxtAvfSb~3TB{Awxwp>RZlLxzDo47i>SB7*B)mELF0_v5shdPkJ(NIj$^AzHV)qv5 zPc-K~T!e@TjG07em!e-1nP*4D2V1V<V#MLbElU8c111TDPxNQ(`+^@J&I61Cgg|2= zxWZL1wV!}03Nj-yc?dhiOM-L}WLeup)KeAeiQ4|+*5()P0vgm;R+a>;7iuR9tImUe zkl;52UD}U+g`5FGaLh#j@2%H<gIBsRSBSTBdqs2@NgymkT%c9ALXKBx(OHmnmGFwN zkFl7lA(~1~X6PaHCVHr^(r;NXu#9lQQvX&8O8p`!7)k{eeS@Skj$Dn{FGG(HfZ+J3 z6tpeKt9Zh&G%Aehkt{1e%c+A^)Kw2$Q9aM-NC^p7h@pwy=byrIw?e-k@)NOc74%(E z(133ZM{#n5QzlV7z~<eN2U>+aA;jMDNXu_zat<j#9fl21LuRGJP#*@#D;Eem{kr?1 z$15^Sz>^x?C`3gtd67K0ls!RLpzuQk{?XsYtBn4Ed;)`mhMpz1cg(vg{}6);gnz20 zj};-TKC7Wr+l&h_X6h^o{mE|u2bRQrf+z!cJ{Zu45$=HS@eEPSkHvrJs1POssM+8S zy?p)6H{N&ypzH@4R<mKXiT;832+OfWz1*}tl|HS(=Usvx!gH~&&ge9(W~+%A%$U=n zbk;6i(QB?}C8O_gDU_p6J%b*81m|S&{Q}VdIJy$79FvWa<-%Pcq4(nSio3rB(dldz zot3eSj6AlSBXNhJL{Qe2mcjehJ|fiD%$rC0{oq7h3GZ@u(y#dShl6>;O$_-;3qP8b zR<hi4+0`Zxn<vbL;Lm<w>$CO<Ock^g&v~#^ABwNkUGNz8sMa5{<-DdqMdZQwc0UPE z3UPOhkB17FW2OR2#}1rT`FO{2j0=ZFuy@w0zYhYduq{g@lb<j|GH)YgQZD0@wY$uv z=Q0n?a)5?%ZJEr2omr`^GQ2BG&=B-8h_P?ASWWol%~{u#wsQlt!u*7MlB8E0R6?)R zLFIMa_(-Tfp+^8;&eb^SW6DoGr%cYkAE;G@7>e{*=BOG0I;J0b?RW%hff`nwTw`GE z5ktyl0$B_^^}7{pn45)<kc}8*3A=hl<3*Seg0HZ<r$?~+d51Vz`%1lAOSN|u!TuPs z5=Sb~wA51DUR?fh_dO08<NIEmd~+Vt9X0`YR-p<e^_`BF2-CvTsx#aK{LTrV=*RG? zPCw#XcJ*)R>}kVLySHdjx(ws-I(PS$B?wx7=KUKvfM(A%j{ErTjAPN+`!7+?ZzN-! z01Km{Xs}{lY9D~%=9A)EWLtfaMZ~+>jtr|I!M()i@9~)sJcn0NllB;|T}J!UC)H>d zx!bKe82;4xdIp~UT;rT4JpbpJukjRc<_kTlEPIKgtJrW{o_O@HAY!R7bo>|1B|+e~ zK<$ljK6Njjfe@;~e|Pq?d6L<09gUVBCO;KaN&^3(;&$vaE9Z8mgpjF^3p-ND7p1I@ z+_Or0zd|+y(rD-#ESq5T0;+Mg#|EC_v*T`$|3;FmmdE#lOlkzhJis3o9FdJr?SOCy zq#2H7l-=+5HL}(9`2#<Zf1aqey6D9qx+<MYPPs~rICzQDOF@cQoS%`UE!&I!<OQrx zaO6HV5w)rK>Dq8Q&h1Z7GI^+7W#~^YRXETZ{RvH+aUIm&z!+QxjkEfnc4N?@Q}~#~ zqFRZ4f7ZMM`FL6rf_$~r@E&I^_6t5Hnd;i<=W0US3cF6JJux++HJo<t1476_-h$LF z2YJr4!c0Wwu3*yaqMq(d3vmSZtQpW$K&S9WW<Pq_A;x2mXa68DrnLu($~`K6AXEu( zOZ730pb)_)<))z}k!!J(mC0eVo44FEFh$W_u8NV`6NI-_f9grrvFwz7sg+2xY-R~@ zwLF*?#EWmC9HFx>>eUtxsL{9<g_-71bHDH6Rcu#A_4fTnb>nblVK=ssn+aehI1~;P zZYOA9Dptan^o(X}U9CU<C(uMJ<%XjH!A{;!RNONA+oBC9t^OEiny*7gkQ>>?JgKAW zJg88`fV)Y&JdQ!QiMfvDS>!tn^jh1gcrEUykwsfW-=LE&!o+8{8-cIwp$NRvO~mz3 zKv-!_F(LmMh#fB{ypOOG(Hn%u$O>SlIEQiBzR*gh%vv7JJi@PR=j`4t+aObxMoHlu zjF;pox`aC9N|-pkQ#=a(abo-k-{BWOImJ~Ti_H7Ga+SNu;a;L;loUGjFf5;NC#STP zU{Rve$arSXS6$JW<a|9~tTM88;N|XfasD^@F+@%D0MWNWwwJD?_Xc+UieV8>kx4`L zY7#ERo(mH?+VxWxF2x`HJBw5NLXK8trMz?%Wn)e98sU`%<#<kD$#*(sPy{1dN%8nT z`S=#uAAqGIA(RGA_XWyDn8U5~GDY3kb$$ajxl?wUFsC-vwJah>n7f8vxVtEB=Sg8M zE(LcH=Jc8nIMr1?=qAq*6rImXrW2*lndCXq)a{CXjcke<A7NAIIv5izfg_qKe)|F0 z8f6omdye6#U9*!6&Tz^rKeKGA*ZiJvX)>JRIA3$hc%I<<XBf}7$(ER)UZ;)eE_a47 zhUY+q&oTpb|G~pKr)VT=#2M353qHpbwc@{oFmVQXn>$SScFyrAc{}<P*<4;FI*|pW z<X=QGk$s~f2qT0F%Vq?xGPz_6uN?8;!4;<tpB&|mvp*`gn<R7(oHHiX57FH$+OvF; zTZ_)}sV|?p;!5;79F|aZ7P24#=-m6_RD{^f>K0~&IY(G+T|ZnyAqD=&WSU%wOG>=Y z`d1|~yD(t#;ThUh+sxmvXK^R&s<QH?(xaPT4?cQ~sj;6|G_g!#YkwAYw2Dq88rN$E z(I*kp9w#-@{t|Kmo}%L2X?rg8w?y?C@xPJ@^{!6PbKqSjybq#sguP&yTw~KIPI*|$ z?u@RbK)kE*-WjUDCjBkrQXi+EC}iRbeo}Ys4Tn{ZrnXBz=Snx?{k--J{k$#FPr-+C z^zZ5}{Y!xIPxHPwDA(Z#l<4B3`qM%AqGX7J(u9hiv!8Om<(c95$q)Yfa2(#Xld;98 zcT(@#$r?eHPwD3tP}5kRLV)Mnwdep=Ug9Ol7w1f+gIY>ON3nDNp%P9{Qb%)qB5Xuf z8TP3kx}R|Qz9hgsBi@bd=tr7xgA-vQ;N2Xszsp|D*~#FE;r^FQwE7o0C5{nL-zlJc zV;>Z9p)by=%T~v%-*#RnX?2q!46;Yc&P|3%sdbalUWg0ajc!Vhy2<#9iU*w6P4U!C z#%xL);4X4g(&{GTFDm|TX--P9@{K(PyO9{O+(?vo*#)(Nhl(yGN14@(?z+r+J6g!` zh?pZLbl%Na`ir;R-}vRANx4X}xjNf-ilDVRKao=t&PO>q;gmJ9QLOXj=tT7SUF@~} zE1)d`Yyw4Wz;EW|`*@3N4h!Zf3;&s~ON#ND{Ec0v<m$rZ3yN@Fz~U)Tj^1f^<i;P7 zox?aT^;=SEMb&ja_%CmY+)JxmHLx~rjG~OUu}|!exp_Bd@=9uFU)vO!L{%>_V(Dzs z+q}Cy$yv{b)cLp!vU~iZDOhC+yE+kZC^$|X`ur2km0Icg;!D{3F~=FnImT560S~NJ zbL6Vvg}5J#!x-e7nDldRXqmN{)X;8jcmgvTG$IzXaTRPq!<|d`%xw!C@u!zs@<Qa^ zmYD9ypUPN!<m%u+<<Nk6(B4v%fL!DNPD#{*x8+7vlaAO^a9_(3HMFE~e>2=Q%GA4M z<{M(abnaW_7&2UnXY;CHk52B{4wno9UO;KkoqlXNlBXGt|D!s+f#%;n>C%+Q$6F6~ zDqS`1kJPW~;{uSJM_A5)WFW@&mlo#Eya?wWxeWnUF)Llw?DUTvTAJadMy4sHd;B9Y z=8;${@Ch~l$=AqhbE#G#k6yEi1T&m(6ds-xvTwyteUoX=_K16cv{T)b8|k#-sK!aH z<hF+U$bBQaOP}{c4q8h!GH>HBm0&a4#&P!4%M*T~D~b^`z#Hg-e}z1uWoiyZ1dle- z32b7f%00uBM&T}e#`idl`9YQ%jT^|oxO)lr<Mu0@qXg*d<i~MdQt_yayQ6<!c9=uS zN~s(HBKmdaMB!)b<;4Dmi(vOMe_MXItG%IPpC0+wIRY0k=?H!+oL<n*OkSbpALB>W z#r<5lO^~eC;MM-HKOI!*Yz?1J$bzi}t0L(Ns0V0>RS_Ku(2_GwPIA2*+ZdOJRHmdo zo9oXLshLd&sz*(oa4CAa<w2yyKBYWI=6#>^@PO-h7C*D>*hLQh`onk9o%UdQ;kEcb zgzv=irBALD_?{F{CY#F5i+k$#l*x6^$0L)s9A@Q?I>2iRcPf+e8&YCVM{*yKBAB_R zt(UA!4HlfoBUSRXYj7>$Z{zm-Ya^{8=~<uOQ3P@LZK)&N$5s`r3Krv{h0ks=X-1Zq zF9TRiK^qG%#{UKzzqx+vVd?UB$RBx$vI>vI7s!Rv%N+8iMD{-65HD|qUw?49l}m|h zDWPAOmM0BaX#?afyEr`(q>k7ttgmpNY^n1;sZ-`&rewv^1fHn=FpU^Mj?RkAf0Fvc zeYOTDaZT4=P<0cDv3F%X4mZPT&+;ZV#WTWvp5_t!xQdIaw~VJ3_JG?+;STP*_z`5J zaG9j2Sr{&B6FArd?oer)BCFmx+!^jSg*V}T*Qf%UB7NT_HEoonHUytd;BR=qP?92P z0&G6yGv#@ZgFy*$aF>t+xq$rpLYP63I)%5gz2wUo{UDJxBcU1&gZgZxyK(@%qKUkn zk!CjdSMq6}OWLRA4RSY?P(iEllB9~`*th=D*-6xTstNb`7a6R@2A<Z7g8GGKUcR1P zk{hvji|SM;<BZd`d1PLZR>5D{!y^6K4|lFeyNy@*4|->%-ONi=eAHEc!+l2cPUi|* zBO|54e}=h-9>)FM!VjZ1xnq*}$c9UcBSU7MmlByYOYrspA+X!5v00Jr>Q$}bLU#>c zw&=9=d(-Lb*B?~%L>{UIg7&v_1OPDa)V(S4#>T^9%986+ktNQ0{!?tFi>Jm*h|2D$ z$^L66dy79ju~@c)w8*7WDF;{%6^dr^+GRsX+8YmY+)LF_|0@qsr&xkoZ$z$S=G>W? zwW2snCQeS^{W*~Xv?XhaOScb1c8QM5DxuMa;GGcDNfKCxRkkT$l>@n{c@IHd{gF`* z3F)2d-qW2l7G<4|FOJMmZEY%Ok9>!x*k<5gu!^@Q8=(YmsCfdH9^s9ON&klA>PjK7 zXHD`iBSozV?_&4)>BEq2i)i@Eh@upUu9EVKff=GKe;u<U&`rcL!Mv2nVJwJnY}0E+ zJEy>*023Kd9fyWqBYZ-4h-}^9K%}2Qq;+`$B6`hZ<OLGokAzMNpb1<=3UGo2`<_2? z#S8_OYn&yUh`fY9qkv8v=R%pKTs6(k|I~xbfb2FE{K|LW_I1@Ofyh-n#a@oXZ6X@v z*mH5X8N4}g>m|8<qS8<CM_qsV{68KaaqxTHM|)tsGg@c<mnB9Ugs1x6B(;>{^Dk3B z`aw0u^OKu{*z>FY&rxki|G&>u?A>_(pF-gjdn?}mD&Cy_kCj}wE5jcNlAjmGAHn56 zqJIOFT@YM-hv*i&{;sFSgNXjBd;a+TqMReC`)iTaWDqn@3zuXO`v7=53#+M0Ml4*G zkoXsQQ*>6nCimB5eN^^!zx}XU-9nQDNA|w0R`&(TdVWM}svf>J0AM5wakG>*96HV- zA1OUb^y7wZ{TRkuR}QzE{S&-Dm_yJsyQ)F;V2$5?`TwXV5Z{3(8}A=!HxT~aU*yAz zYWb1>1O^xQ!__bGTx$99{nlUQQFiJL6yW~d;1t2f>XoFHS=-CP_i=75%1uAR^@WZ8 zSh?%4F_df+P9_%y&b+a>|06K~iq4N*BGF19Qh$D_H94OuLobLXIzRGX>jY5TOGu`O zqL<<4q#g9ohOkYXpNd748eQyK@Q2=VmQU=BJwaH?@8_$1L4yBVdm<x&y5A|UN<KwJ zVPAiPyW8uYlOctDY+c_OM0UTWh7-9?wIBMEKYUA8xGcBxmUQUcuSVNB!!2K~bxVJD z*lM`4vc;m`<v(OBjCWPAFGIU=QvXLjL~j#(5Fnsr@mu!;j<WnN-Kl+;g&nz%&BS<> zC*mkzR$k;?9UCfm5wOBCZU7bCBsyd7F~eFKxt`n@tnh-Gx*7T$4*!u{k(<7IUP{zU zKEI{FMWZptML0oYl(Br|F#DO)oYI9S+9aINhxsh!__o@|2Qx6T)tQW)(vj*>BTZrG zhQP;c;3?9ZHhI3BXZBLD4}~?!mOPR@+~+?f)6>&crsX{I^;hw)0OqDRe`x@iw11V% zx6h}JaG!sY%tW%-6}u$K-?FqN-}fcoa3|kA@qCo|w-Qw*m=~uHivP0Go+dq#;^eoS zJlwAy?o%u2bMK{dE7C$dt3I>(67<E9x9kBPX@s@dzfG;+^tc=p8GjFjt+XOlX+!XS zHmsHZppss8lS&<6Quu`y7Mk7X*l33>viqI?Jtb<41!$3bML%h!weu0Q3VP#H&`Lri zM9El~4!<pLD`-;*9?JbN;%CBR`y4nr^anXC+~-e{^?B)DIPGb-)@k5rrbBNwNh_1W zaLW+o;;h1hAz7Ef`F;xyI^5@bQhK2(U6L*Ku9P$5E)i{v*&{yGm--S1MWuJhBU zfRY7AA~#bunISnJCFyEpud{sNQmOTyni<>kad{=&=YS!gPTRpxqz{!uA7xd<%Xito z>`@bGNkmQpPvFS1EV30S5kp~6WHt{%KHgU-IN%#<^eC~FRyAA#24UfomM=p*k1>Ub zcL@yR5T7P3x6vzWR<6Yjl;!Dca9NQ?A;b1~7+h_+HLHJQ`&)-Q9kHRF9y-z-m$OTg z*6r!x9<q7#$&<RiI!#SNmKxX?fo>o5cwI*^U%m1bsybMDA5QzB`b7Vvn*-)a`F~Jf z`rI$izp6MdCEU|x?~-vHB2!TJGGwa{z>?aor3?y#xL=+m4I=5~;q))kQ*~HaBE7aJ z1wh)qFRA>$kIw^B+)OUM9Isbje&p;I(1%DpTf59Wx|KNprS1k+&O95$331_zG*e2r z-0*<a-^&(hOWUK$o8g?XMtE`#YLI*K(0!EVn}b_<nLea#_qcH8PG9(*TxBOfc(Xj; z;J1C3PwwBgn~dZ0+jdBPuhI4)8Dm%{<qekfAtcBzA9hKGp=QPosr`xy<Gd+@45wQ0 zsmhjISCAmTLyfi_W=3m;g+DwYfVhRy@y943`cd4@79!9^zab->W}s@psZ@||!^L}w z^~HPCXqPkEvhr<=_MPv_Xv;K=|0+pD)m@*%O-YkIGR7R~U#>IYhx@6X#n6QhQ$5Qg zSGv)*M|!7#a{1&;qwPH@a<R&KC_V;2C7HYmAmhJkX6!bsJ#NV>-6EHeDotMK06@TX zMgUkjV`ThdtW-M*Oz1j((T9jXu8iD|S0pU88tuO`uF~>jOlso?sqt}!b9&0WN_X>( z@N^la)6G0{@Vf3Z=!|iQ^W$}fIFvzzr}tNLMggXMkn{Zt=Vz#s?Mkw>?Y3H~b__h0 zlG3<6%ixZ{s_iK$+j<#QJH%@&V>Q!i5oJ>DwByR(+Itz*X!ov8nc1%HcoqK-kMEQ2 z<Le>gL-zZe<4fx26#jNuq3voGWrgP7uU2T|d#M$R!a2QIf)2KVKM(g)q4K#JwK1AS z55xqcY6qZCF)~)mT<5Yz-4*EzPft&*O4hDSA{eX|XTG~QF9uCny@$v*%qvLD>Qxxe z>J?NU|5abchYq$}>8y7USuJN5k$0XQk!2w><t$`T%ype|Q8k0ivhOMXazs_|S=O+^ zXWM}U=HY-KiO&NQ`0NYc;ovh$Uk29JCfeU5J&N(hIOK<6>=dwEX=ZGu)F3ho1>>Wn z4mBEg=7PUuyn+nQlS_%LoUdROO8?&tRd?-sS9BG6<jT7;o40ovgQz?mdi%|a_-x8} zp|^4Jb5B?DGu<ISJ0U-LUCEC#TP)uAggI0yPCZT|Jv)4s(CAE~@k2(YN<)GaA^z{o zT-h0Bt}6uam(;qy*Prr^tBYQr-MB4FQ*qA_6}w1>=nJ~WTdw-B4zS7fJjHT7&m>d# z;-$dfK;A>)JF?2cbJ66#S!%5>vz7*|wZ@SYT;Rl?u{7+PWQH#^!xKD4cs5G%xw)m7 z01Psa-g8+tV~NtZqQ6)+{D=ljyZ`k@r5qW_P1<bA1CsobJwmWAg~+AlNBr8+!i|rW z>Ge9LJsR=QCU(I8zJnU@1LKG%kH(k5HF5CI1zyE+FAF`+S3S<B$9RdzaN@g{V)Pdo zMDGgyDA^wVk1a;{dVjfutZL@1)nDF<3n*@TwMRl+sprcw3df}DHM7!Xm{apO7a5&h zMBne_SiguX9%nK|MtDrRFZ^I;g+61{>S+@DWX5%^@@wid(*DE)<|Fyqe*TX1mt$7E zE!FSEuvQ>sZ7tZtjcQZfb!Kh0_Ir1um|QrMp_#1Ad~dVAe2rPyVCWMY2u3_mE<_)M z(>ndMbABF3T)UiUMZWS(XQy^}oLy9J6z-cpSg-G;*U#a24(KhzcZ?DJMnpxqpN|X+ zwpv?EIx*bj`o@M>v8)g4piexdr32o02MjMjS?eoo^63+seSCWAN<NLYi+(LrWojG! z+P=ai^Doisi9#vi?(7*Jjg0LfV%za$!TVwlGQ1SS`dq(;F4MrfQ?JzkTyz9ok#@yZ zXZVYrl<3te0S53`HBizpOILgnNTBN0R*tqaf9;`NfB7oa^jkEry?QT4lEW#=I0%H! zI=B00Xe-Og+XLEGkmxV?xQQ`3NVFK|z*V8GNhGTI8?0jV2lNJdA`oYe-b4rKji@Nq zjvNs{8C(2U56U~;I-mTGxFL3S&UaM~!Lxj&;ce&ws)g(5luxWH%84{GOd&Vcjj6M* z3Sf^mD4v9m+tVOe%0%1qwF!2SUS=&X^LCV0cckl2icwm?9`SQgg$*hz$8V>hR4#_s z*3sXR@YJ53vEe{kiq+z?-m*3r?Eal>M^ztm@>{iC{oNr+jr(#<?{U++T7Tg!{e=yU z(e%dM>85tv)K+)Rma)2OH7$0QSX?<>$`(?Fb=ohYeVlojU_YR9C+-FWe7UWj@CnZN z<tTb;pOiymIgw76m;UK2f*t%@%_3;$7Q*%qD)gBxxm*C#zL7sCw#!p98KV4KTA|Nc zH>g5C(N>{<)X2-*ynKY2#H?0%AY$!D>$obWfl41*C4Y9wpH}|dOVNADIJ23TnJsda zZ3h)}tf9pf(!|ONJw`%oc?r>CxuUu;D^U0rcH7Li4{%j~@QHDxiNk8~?C{}TEz>eV ztopQ-W5NNO*q=pDn&Gectd%}UUL3mb30#e;ZR)3SZ?4Z9@!>ImYh$`ki;zG5t?E62 zz0Vuv^I8L-`?RQAi!WoPQMFQFZCbs2_E-(P(HA}oOCeErq#xXbnfiaDFNG)ch5hM= z>O@&NwnoPT8gaxkp9)WXnl+MvaXyStmBK62dMhzl2lpCx=Q`*IvKc64psI|%33L<q zfNzF&%qi;@G&7nUq_eW4&vN?Eg+7NTq(d@=xcZ5P=Urxd&aZkjS2$bF?gt4C%@?wY z!xVt5dNfBxN~rm{dg<@H{E!!L?7EaY6=fck&hOdj?l`<gWHk>uh3;M|bT>avcW;C4 zayXq?8u|0jIy=FUIoe@Js=iR1PVk}C7ti519D<XiyP>VoF_<*alTj7lboPh``HlBv zf}(Rt`k(5O-_P2Q%jk!q{c{}Je|jH&C$xXbF_-p3VIA^c1o?;72CQfEwgD+cb7Q03 z{m8(7yG2Nv2(eG{Sscy=ncl`g`4+RVg*|CC%FCw&#CFls{7uoC0~$1WelFVq0nXV8 z^!nRU3HARXhY!$dJlULvWK$?gYzq0#rmz<>6CFq&6MSb^dMuaU#OW<=Fi^rk`9{Or zl<djE*{o|^j@1$>=c=s}7~y`Kty(!Q5*zx`GR!l$jG?~F+E=Dw*1^4WWp>e(6YY7A zrIZzZqE}}C_)=}}1bak%pb)Paz4|D_qR5l79P&%G69v+V8W}A1JoTB6`oed;%H`rK z4cIJ0TWMOGjK)|RxIOULwq8}+<u5MH1A!V#VNGK+&D0v*WGNKMGBX-03@h_dFb2!7 zlc7IFUr^+>7*l)UljilIrAiEFYCV|C#5s*=x4Rt1Sa|@!zs)ZJEK$6s2(PsfTbaTw zx;>rk5>|lybAiJPEXP$o_%6$eF}^0F;8@1gI{bE^7R~kkfOa(U_D|5EHB~IK-V(qK zSMe$LwKwkLUat>u+)fb^Z}yW`p|8`?_um7-ow1F7kn@=zWkG>?nRz%%GJ2-+8kMI^ zo@66vM?D95)=w-GqMgReT8gq8e8kl~vziC-r-eTsHA<ntRH~CLL=pTG+*G1Af_r82 zfU?hQrM$}Cu}-o-pt5h^!#b&WFV)bB+Fm|-(=Dquk$Wl3_QcjfzL_o3XEu`=+nuh> zh)4}2-b113@9}|=-9zKkKjfL6?H<~nE+fVWSmmMcJ#RbdvDNH0fqv|tO>8$C^jf(i z!+NXwgJVY;i80;+Z8eBYAow)i9+p+6ZJuZkyUiEQ`x6NDeQ3gN1bJ|2w`skHC;=`Z z;Dbx=Ik>b7Tv`V%eb~4sjZE%W(^}WK2V7cba<KyV^!*gpg}(4UwV||rdOKCSRP9bv z)a>)VUH#s`b2fv=MZB4l&~3OAno0fghtnh3&eMr@J_T(5jp2AyGX{42_SOG`&7>tq zv*Lt;TJ?&a=a?T;Tj#TO7|wuP9BAB~W_Uj&(g7A!FT8EY>*<J~+9^D)FPug*{_?lr zX-c&<W5YRBFq+>6)zS@X4MI4WMvSi(RZG=Qg=sF;+5x6*0tHqps<kOjwN{fAOlzTm z^k@$%7s?vl$U{Mc&)O$fYB}@~1J!_q7^mCK$a;_<VdHNjl*b(I1;g86y`eQCQUo`Y zmUAD-12$gm<2vQ4jVFEpKg@1xPfQna%$`~cm1_2TSBh21vGh5QRhW1}4hox3d3<5h zP9Y$bwVWtXP+eiTs@``PU->&k5}?Sr-h%|KVlZv|TLL!%Gol?dwT7x4iEJ6oklGX$ zCsm41AS-C*uk`w0-XQLnUyL>|JNh-*VXT&dhQ=ri@OG%7nIds4ruOn2Lf*?v<+*>V zLn9zBK4C%OLxmi|{_5>pd4v1a+aXc^W6UoNHqZn_(_wz&*QcnEJ`)*1@sZ^)y<b&a za5Fa_z|=P~n$$A8|M>w})No%j?1js#Qk<@}!Qt122%wZ85z${*p_n<CU9U<es{q>c z?iT4nM2p={As42WX4u65v{|qI3)IjEPw|-H=^g`h>t}3dy63YsWO#hiid=Gnf;!y{ z8|i``9F-=}!;y}X^RCe2#Odh4zIX=ou#EKRhsX<xd+}K(CCHDGY3IYaMCBfj1parE zC;uG}kaP20H=WLR%`Z6<&$VDocYaG>co@VzmFId1o-4LP$+c(Xm*&56DzCKYbMZ?5 zMw{JvrC*WKomW!p<5T#gdE0tGTKIb=K1q_##wQ(Rj?c+Z_Ql~Rx)wuhhj08}e&&CI zpOH{bpMjro_c8bxHZhr1SPeDjy9OFwj%T{<V|+LZL(_xS98Tj?H~^P%q9(V!>N7A- zr?k_BqxsdRGET{jIoZZpH|A3sa#$M0Yh3fG4Y`~k900YrU^@$kc1kl2OQRUUHJ^i} z`Mk|^VQKDjnmIR1^WPj$f}!dBTnr7PiIbPp85$WX0Z+OxG{2>ChrPg2@R#DCP_;m* z98hj&1|Q{3sTqO~@uYMN!3wtW>;BI;C5DaqBfnVU$i<e}tRizyj8aA6ySiNnaYZ@6 zAp=g;Xa@{!nTTSWOUsu{v`2gcG0dl(L=5xA#jr9AaAQjqbM*)56uN_<PAk`4<F<md z2mhhk`G5$XwDZ`tXJ})~S=)$W5*b@5-rD-U_PEkD9*@(s8Uoe^;oojWiiCGVqdXDz z?KarACc}Eu&>Aq3Akgzl)4ro~f*mL$w#moH+$Ci9|AGRWVBZ3E(3cWGQEZ!pOC?bB z!{co8Hy$GP6fU3j9nsgaKX@ja;o#4aqn8<t@4=BSGp+qb<6dMRCG`w(M4$IzNV(nU zh2@QrG*gQ>sZvBFp9uKjnJjl%a9!2&<L#nf8n!1rItnhwS`EXt8}W4q3>$IB48+o& z!1L3@SH#@09wojah|1IF6JMnep-n%d^osDRa{u2JUJYD|<oJ+#xSRCaW|3XF_xzYq z{a!De4(y`G%ed@_z#@F$dLXYE{<>*JP<}8WKI^bi^}fuNGc_WidY4mD<dnTk)0t;Y z!_}5(lhtCoLzUB0&F~zq_5Na&8mZhjB()x7$B<fKIOn8);aWZR=pIt5coa&lJ*hSG z3)kAy9_^7@$GEk^w$91=!nLN`qtm3;{cJJP*WT2cQ{B|_3s>A5A-VdO)XK^=GQ$gU zttK=UT9b9GabKFFLQn`${lP$Qvyv6kv}Tn;#@$&N+yrkKnbF&+!PNmSlS7<ZFS|$d zE4$+ST0yIjkm$Rlo=Tz4Ptv9ZpN}^E!#Qcw_q))hdp?COv3Cq{SeVo3lG;|zO_z-B zbm@O-(zz6BpGuQTZ4Wf*HxLj|CLfyQv!VtjF&wzKL`kN^<pUJ+w6-f*a?WLBGJR}o zY$v{qC`<sciMb}TaFt#y7k5(g{fabwDRui(sXSFx9%0o><%&XmIhA{;yoahh>{hM_ z)t6IwPb&AQ%CB}SSM=)3sa#;5rYaXjsemO;w!WPD744c$)q4FTAzg;3zObFrTC5XL zFBeA~;RO1nj!e;Luyd_;B^D_Vh2dCTVNJ@6UU@1J>p;$r-mw)^beDep7xc@KgS*>X z<a5>_@i_mF$nM@(^TgO3dyAU92It{NdCktlPu1BBpPtFv@1#7NC$2rDJg=g8DnG9^ zVrQT{J>CjfH7b;pW2EsOSp&*T%}EV}$4|oGVM=zmI9GpRtjB86U$`h9qSHC!Lh06H z?4a<i9&w%>UK%#ASLZASUEQ6Pa`9~|L{xuL?me%RyK;YrEmr06)X+`DXF&&u>o8}> zsU~&+I0@sCkE@k*yu>cLfJA?JXQ_5f)Zc~2LaoHz3aybarXv@Hd(y4xv*`RU$ju>r zCT<7H0OK<Bhl%KMSfY?`Y<AU2G)^gc%@Dd#M5n$*z*3AdYW@r5p%`gACX`;{&hQ;; zmC!UX7IDE%I8g`O`EhXP$HAQ+2X}rP-1%{E=R4rWxJ2fzn{kQol~|ZZ?*EA=CH6B% z-yjyH{UGyEIhR5n5VxR_gmmVj;97AeVow%8c@&`PCv}J}^h!)C)KS`*0HxQoL5DDN zSf=m^2<?boqUx>$64+5RMt<>+j-A4JWPFKFozZmuIQ<bIZ6nU4{^T{lvxtfNbCv>C ztr#i*DFM3~uD}P=<jgf7VdLx(!0>^*k#uViW;vzaBgykwxh4T|<}t*XWvSW{6@ytK zNEL3KKZ;O&Qk!?PSd+xitD4p^Z!;z=muuVxcfiL*ZenY*+qG>8Xb1ei2ym<#x$O~U zc=-)e`xso*mKENWmmhjMK9BzL;#@9kR|>Zp2~v%}cSu3NMDOb f5UQ)qgipFDsP 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∾zfB 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%0DNbO z%F6q^VzB_er%L(PC76?gR6jYa5{vccjXl=Y|KJ~{q4V}zcm51fYl>Ru{wPAyo452K z^UXch#0^3Pb5R9Gp`ExDpSRb#Q+9m4QRS=}l2%!FUQ7}cpvnnbC@k;s3Z1E}SOl~Q zhp1%2_L{^E{Rfe`S17*65upA-_w!{3yY^TE<@{cu8Gn$wBP*p%s4gP;LU(;uvO4B! zl^){$EtPClv`eJBPh}F8k`QzsP9*?g35`;*uzN>V>S9t=Hsa1CHG&3FS8H#svA3pm z2VqEo8fGK*0XeblZa_PWB*p}5ZMVkW?zZcd#dj}EU^L6>^L4fjrL|tq9ABf6^<R?g zIQr4!cm089IRXun7Jb(*c=Ioxc%%)}t~NzO)+1(JkcwyC7Ax|DoZodwqdQUDyb<NJ z_3d3<#Oq59L&*By9~mrM8jc)yW$i!%=yh-YPYu5wVD8CVh`$Oxdrf?XwX<SX@_ET( zLQHw%pS-2Y!=PBv-i=4CJ9IH&Qu8<ZCgt8%In0_BtbVe&^N#B&VoWxScglQcy%@+G z!Csqu%1q!vlm3q3H#20DH~Q&pi~pQ?Bd!03oe_9Mj44GP#(GH>Hhs(-0YL1+J9VP_ z2r1G*osuGq1jeB!MR>ytJ|#R-LZf*llawmZk?@L5$$!%vHy@UBE-g(?1Bj7Vgcc~T zwb>x!!1GoqR^Q(X5k3{oOuly8nM=#nhwdZHI_O11vhHK<wtiv%m0}8Iu$f=u-m<~W z7@zm_XN2NH9+(ou%)^{QvG3C+DOfmoZRcrI<~Pg^bj40-n4Q}dE5#)e*Yy0#6;@LL zg&Kx*MK|kZKeag{%dG`-Al>9r=ldnj_)^AEITM95_Ee^res2G<-lBbRfwux@VK1Cm zf!o`;9>=|Jhjf{Cvl4%jGDepKsUcYkRP?JglgU8Wa7Gu7^@9Zx4Bowyfh`T&^I_lu zn-gr7CL_>~BQu@Z^-F^@b^mw$&HR};tEHxYEg3hl^F|R&ypsqWQPY3y(%?-fLnG>z z25<I%XPIBK!;g{jgh^7CMwlfBpNO7D!yQpr<4h{F_n)ObGm-|?Hoq6Gccz!iEO?D3 z3ese+7|e4@5#`ExU1JfSQ<%f`zLzR}i0X{tw>FN&V6gD7)Mk?P>s&r9lE|MA+IdTZ zc|!Nn&QlFPn6C$an5s8bj~ZeYQnxXspk~S}^w_nY;+<zY7*{4~-DWYx{kLYf4$&zy zH*rimqNh>?1RVzvfhLTE1V1e`^Yhfip*52cf`eO;a&yi}k00ro?EMyTDv|v={<YNH zj`fRkqYS96TmkBCXUVVinCh*yb@j&8{l_+L-Fa76S4+gK*zmkIE4FY;{mm-LYKDc^ zs5;XVBkCxn=BbqTThCfY?=xAsjHt6`*UMt(UO&<EJ`OA5c*~OzUol$okz!0gEh%f- zR|o4OzpEe<PBy%dD?4V*<XrD=<S;AvyDlLG(#}*DiId>-2z(vv#|;fm5Q|z;?CySR zjK}03Q=1a1?BvVpJ}gbfJI#GMDK1}<1v>g=a|6d)e4(pP-B+$u6|;NsQs+K$jbS;W zlCu!5Nf28ZnA6<)ZyL3`4l9<qxiZ-}slE##=IY+F8W|A?MHa+)=CX46s0;$*U?2DT zC2Y2{o<7A@rE&l%;Yq`WNeqg5x_#l$5-V;&tjtO`)VNHn9kxSefooqjEwj!&d^H+5 zcDCk$Xb7564T(ZXwVK3aEoo=-T-tdp?safO_fdP#hJ(hAce-e=kzh4H031)w;d@rD zikoyV6Y^ix9Z^5zNCBu#j0zIP6ZRtIHut2dhHizu>&v4(o$;8%V?BcV+H<34Ax*Td zv)g3i9Zh?_T^Ao+Uy^CiKpKQmY%{&aPG$)vk<Gci_D4_4eE3?4`OsTF7r38YC7SQo zHZ<R)lw4g5!c-fCjA{3sXnNiCeMEoOg3M~ViG<Vw$k=ozkzmGmYG5NRQe)c;`Q$04 z1k*OxWz{4gyvEi<ZuLamTrF{PJLqW7Lfgty>77(f=Bjj0CgCrfS=L$2KY)F@Nu%U{ zY0C2E9SSB77?=%IEOlYVYIKxS*YA?Adh!7LXZ${15yK~6KN5c<&S*quvsa(!xo`N5 zSjUz!w?ThaAt8Dk#C3ZlTqCx<t`7;#I>Hp%*Aq9vll9a-YLH-<5fzFb!iq9N$?-$^ zR?`BW*m4TlqvWjAJLL3yg3m57qf7IH$K=PEnXaj)mn`oyZ2s?mj&rWh^_2^wMeZ5j zHHgWGf<O0G%NTev{DN1w)uhXR-2LBSiteJt5aqkCLzJFx?9x=hL9W?_Ik;~p%HDs? zXjonRxXE=Umr*?!YY*f3!EcBi^3T$`-|FqrM~l~)oP$U{0%57EP6NP+F!VCbC>&a7 z#iO*?XHMgH?~m2thPUm}sj+G`{S5@&TA}*9LA7k2htv0k)0N<qyilMLWgAx+T*oQ> z5~ZK&rQhI{AFA}Tl%D4``5DT)rApWfHBubKRL$jBVa6jKx6<WvA3*Ngi{U&?@^}4^ zvhuzgLLh3!iP@$}lr}>Go~!Aq>Oy9SK6#-Q%_Z#NFo&cvmWKP}5e&06w%k}rI0O;H zU}i+E=vH{|XE-Zb+&wjF5MPNI#3xZsV~R(#2_Uw50}PVy^GDogNLXE7<xDLNTQ7{B z_URg=Pjq9gb8UGjzC%@&ppDcLa(hG#K|a#@tMvk**O!F`bN04*S*+lU6;n_>;;p$g z#EIS(a=zU!eHUQlL4ux+0EMn-52_4w{!#cP*-kPDIMwA8Fa2~)IB~u4@}Q^47*!_} zm~N)|D69YlE~>`qyFs*aeDH#vf5r*}JYT>+5b)-;iQ#!x^}@FO+_MAtxEj@Bpg)T| z2m_)k*^4y^oI81?y1i@;KkmpiyM&ZjKbZrC@bZJOA-ktL>^`<kpY<4MocW^oTzyf> z7s;!nDreEg^y_7e>_GAcjCktjl)v@hecE$a!#0#Vpa%G6r!;yp8ZY}z(&;Xc{SW_Y zd#StM6p$aVakb96y>LGEo@MOpL}xqI`7Fn|C*z8cd`5>C@>m^m3Y}a|wCPL=n?%HW zEyR3OHF#ZBQ%CF~VssIEQ`v*tID~G+PIN9W;_D)N^?+rSYdEjcwrIXQ=eAe_mZjEB z=r#-4yI&qQNkRO~7iG2hi2J_K)vN7Q)%F{;x+@bk;{ha&vD74ZaK0g1?n=on#z7H- zWT3>~f09t;%qbeYkCRy{(T23c?TNb}?%GR_*P4rLOK*V>R&xL&AC0BChxukSe%;HX z#Z{aJEu0(l<+j3vwo}8<G5OX!U0N8f98+lB{X9=0=QuVFnr}21j4rAiQxrW8U0`74 znrf?dQzS8-+m?a<5JlrlxfpN*L8LFYi3qWwx@~J-$lg%7Yt9X05~U>ui`e;LCU~P> z$&OSt6fCU7Vjk7+R6s2LetdC$`itnQDzwe~Q02<Gr=`DDP!#`LO{iqX*hHrh*Mo+0 zqNr%*1N+JxXGFfnaW9{O_<U4x`(n61om^Guj46^Xw^;48YcaTwDXF$=*;kJhhT5xg z^85Aei<7LL^BY7xk^W8!*T8-(sg9V)v7dEBe*_J0yCpnyOyO-ao#QImb9o00D_@UZ zZ!N%i{uAr=zKo~A2O77i(Ge@WDJhGkKYteAIH511Efh3soB?E@v2?Ajo;<#&n!B7s zFZScBnndxrj5oIm?|~3I0m&Zzyoz6S@<pC&Y@$ee9n(Bja#`N9?f&(NVQ~%=4OhNp z&1)yOD%B&OP^nMV?L4YL^Oy8Flx_YU52^Jy>*2$^!aPl&1H}zrSWUx7gs%ohtg)N? zTdEtB50d@Gxyfp(MNc!V?A+SV=jP_~N$%W~kqMOt=s((S9~|<Lb?1ZRrs!2IdfjPi zp&j%~;bywSIGme$Yx);;??|h8C`cv0E_BoKn3+P|zJq$i4lL&jlOLK&z4mY)VgFE? zcbXQHg(H*pvCBfs%)B>>AGhjNZCEDvkexNWDK}pJ?kq40elecjv{&wH7{*Y>HoXgC zm@zKzyoi%qqg6FjD3>xmyhL*#o|9S%E|2w;mke2G;oK^z*9&>=&)BPgKY1OZ(r_{Y zL9fGj9T-9XFGnJpqbGY@<~VJfA}@f)2FQp(%)CLVgF#Lbc-$m-bvlO-bo;NAvK_6B zIK^A8G<+B_U(e&~_QoM<gYdRDQGM6yh*S0#O10mv4E@KFWEKXoL8*H8xF^1J(A)5@ zziMKZ{Q*p>x#v7o;iF4~wI@@a)N}^@WEiWUq5YY0_AiCf9V>7oc`?mzB=>43d9jio zdy$X2I)9$k1ursIbF$zKZsjn*Eg66G$YgfS3dXOYE1mphY`0~LXW)D1A)V9yaRo$R zOj{9$OX;+`WSpF&*R~0*u;71ye~VM_97PfT9{<R{UVaXj{G8OBXg~LlKa!70**sn= zZ{G}d-rlJuD?ZB6d9cPE&w@08d|s^QS7sQDkU@9L3z#E8;RHIa1iGE5?y9%?T+x4m z!i>RW#TQd6IhZ6P7;zf-+G)(8OCpXf&v|w2OzA}r5@mzFFP$GjFuN5ARSavqBydjI zu5o=?Rm}jV^Cx|s7#pyEVyc<EswR<NO}wDSNaECGRv(nl8EiRPea4mW#Eo=TpR3Aw zx}pC}tIuStyE8nu0jtmVnO|mjdjM9SF?I58eN@owaiBV8k`|co;qAhbH8pfPbG7`T z@;J`ZxLD*sz=}TRq>A|UIP>*Ew_~l!9q3#&c=_Md`|kGT^aN+x{PCOe$D;O?P^gr) z*>85E%FzTlX`WAzq<}bO?_S;)M*Ou%5TYx5YTzUSt@AvJ3~Y?Fy`M)k(+aB(_x{Wn zQ)2ZQt6mz%VYBh&JX|%%>N9Z=50fznPYLqyeF!%lQqX*RJY*QluSWr=w}>##J^ghx zt_QyCCvoWlJQDQgnT)>-{1yT`miF402iX=w!a&l!eav1CEoOgY^yb9X^61%;BH$+X z=W7Jxt<Ilfb$G>4@QGzm@NQ2ZF!HOyUfH~SHmqN;{xaCMMTD4JESA++_U5a}Yh+$X z6kQGte&VC?GUW*6{y|<Ou-n};dN0a;*}c@@+^!l}cU5kjd%SI4{K^<Vh610igChn_ zazFeD$T<ZQ`6%x}!-9STCwE}rx(e|%xSq;+j?)iI0GH#wwOHSjotq7)^P$wfrp_Nb z1;u2-^3f8f!PM%FKIRd|^X`R==jc-7fkG6Gf-QCGeN#@htFt4{e9@TJ5;v)&v!B=g z_`-TAmdC+OVOAPDQS=PGfmh=c{E|9Q<hXy_nJ<8l^Q_7hbIw5gRD0FYglhgVu<{qO z?wlloaNn_RSWXn*C6u--@qK+rPtRXuhLpM3WOi<mw|{X9DarF!V^cThdw_r1|4aBe z20Y`<gMYk0T=xa=+uFzs`|$nqtXy{I6hCn(L`MJ61gleB-l*eHV#@=(RW7v>T3Rs) zMsJKvCX~J}lAK1v!iiz4&Ab5Biaa-$uGKuB)VweDl}NidE5{jiA?}gRs3G=<A_-Y! zvXK(>V`3~!y~+In49%1t$m?VyK>K^l+s)t$k?wBg$NMCC$KurfL!wS=o72^#n@IE~ zl;4unL2-8?Nu8Zp)64v<+j`?Wka5`jIpC)atm!yi>q4UIaf0SzPwODt8PmBVq4=J$ z60g_Gk9%`~t6@mT2d2W1Nrpq8Ossj&<85%q-)X~KZ)kFMPxIuU2)kt!NkvVTjcbr- zQSFSpP!qxs{6LtK&EhtK`R+%Uc%=3IS@Z&oCe%UF+Ra@Rh}{ci<{Spk-c~d!5iaRs zCxg?Lt(7ZoJ8pQQrdJn!aF?zK4`>~*!g{8a(7}P#mHU5OV7FJ<J7~<}+P;`lmSE^# zR3EPVgLr!m{;1EHE@WD-4!mQ=87LX`RnrW15{!VDnZCtCh)`nkx6}pRpf)4`ddc(1 z@cIiV-Go@^n$See11wB${eW)y>)+{?_Jwo{D_n2<{wGPkBzsyJf6wkOZ$7tIvV7(m z&cUr;<M6?k|G=M}R@0**(YXHh>Tc<=Q>_;mk!71|`sNHZvg$TYa2w8He4;Qy(lG;F z*)lMwATOSypkrhtXIdjQp1>O1T4S&1ESj&$22oMDEc*4x(C^m8c0%sxpO7oFpQ@fL z`58n2v{WbZ+b{;z<wOTY+K1PH7c08f&YwuXD7%dMtryxnT&#IA2%vi6B?BEN)DdeT zBORv9_r~KOGxzo5L-c>cXgYrFGg^n$V%8;#ti%QY8Kv|oJvc9^7tuJrQG=I&PSKwn znY>8)q#3IDILDQ?hq~4<Dw(<Vn8VHTLri{(u9=dziQ<d?Mi=F;#E515d!yk<Vq{TG zVr;%@f@4wr@B>PeokKajm%G1zM-sfaeoS9H%<^N6^tYk7Do@QfPH{Ea$?IvhH?NgF z^;a{lUwFlgYlFzst=-4<NQ$@*k?4)<Ct;vGCEY<%Cl{&*kqDeGcM3in-4}-)L|1Ec zR$5|@t6cNrOOe<FG#EnD5!Xfc_>%#zD{2vB<uag`(@;W~)Y=<EU28wxc(Ry<JvYOj z=Dfb%lf&C2pFR2dG&s9~G+qQjEB?NcKKlES@<#e3_|<}+kgH20cQ(_>SBy3*#7aTT z(*zQwYn<T`AWFStU2W!*Z>sWpsN9hCi1}pqU&xG_%+4(tfA+}aTZ`ZWcD%XBbR7%* zyPkkas+sd{4Lg_TC%(;Ea~Y5?uTB&p`h5K>JhU!9Hkw23mE#Iy!^2LV3{Z>A35UYA z4_SHtBQ$tNRnvR1k@&=xaGZnO(BO4)*Rh%(0f19iR5`9FT9)D`M$QEo%=$$t7sY<< zkHeIUE#p6EEzr4<j_`m@bjQ1q%4M-NYIo(F!sujlE>yJqx!$TogN*g__7CBpK5+Xu zn#N_=BU$^8ElJb`?D06yuXVRScCgFXj?IwwKxIZ4$B79L!Qu9Wop%dPViYW}+*h!r zT(4xOUK=bDe6=uZd}JZ~F|s7d5kC6gUm(TX1|@g@@nBcxy<c*R-u?AQ!POD3!+)Ia z@N4Ms@1#3CixW>>;fyO{U3gxN6AVh}I9mhH-V|b;HhG+}Y|!kzY@m9;-9lQ(C*0ZT zuWF#9$0vPXh81r7>#nYsLAI;&ZTNECOC*ga$r~@J_!UmU%cBg2-YO!6rPU()3{yzL zkwjs!<urJ+yU(SG3qfjR5z{V+j*LuRL5Pb1t65!0847Y3jSd^OWVLAJ$#+?^oSJ?m z?pj<7+4a@_YQGXHXXtjq74OFWq5gCKtnBuYUQYYSLa#(hL-5;oF^%!NHF^6hMqfhz zdoh#v10`m9J0(xc8G<WD(%#89=X#sar4p#VZfCW82spL+ec`1g<`L53!WGW=qUMg- zGhxyTD>u!VhM#8iOYBFN&}`J&{Dtspj@73psvvARswB<nz8vxU)?3b-{@r8x7oMf{ z^zVtC>He*Fg#I00RJrc9hvozCRIhJWWHs}Szog_OVt02H4fE_y(Myr*VjHhok6);K z!FCo}Ykp;_?R+*PS3Y<F=BT7HBVUu%bQ>)5s8Y`)wUdk4I~%*vQ}PV`^vA#yt4<7g ziZ=T3C6&wOR7yEK+Yr#xj;m8rEx!!{1^Zcja-k50lHneOB;*>@)t(+VUXcIra!TI6 z12QKn=>d|`@?P){hyOppXGtgc!7qZpVFADfbc27dlKOUo4>SE3_(q<GQ<}r<v+yRF zQ=S<z+%~6`x6Q1xOyWG*#^&(+5LfHbsvoG<)|WB@Jtcq1J41Polh?V`TMq!QI0Y}o zva{3k$B_dxUt%FmSC4l-|1YY%EDK!rdgM7}UT89zKg{VSZ#&z$EZ^ysTtT#~%!qOV zq=pqwgdJbPem$w&Om^mcnN$3o5uy=m33H8?OuX`sjU*b&(NZFnd7j^E#Az&7GR)Kq zp{F&&t;0AJc7(PUz4#cK-f&OT+co@XO)pJPr)&+`Y5nWA&74#CM+V`vKDZ4(98Vv7 zjPj{o{ePwp&XYcP=P~ucuVv|j$?F(jsd<q_i|GE!3#q}U%^IT+z6KAR_B?ryk_QiD zkVUUb>BEfs10h4-XjDd~Z)fNl8*?n07Rg2AX?hD(zma87LjP4gDK0YHlYJgAQGAPV zDFqkF4PUP5oW`wxCjHO?v+mxWqPMX>MBvz~R4Zz%^jEDROdrDxL-kPLu>fXOk2f&- z=aG(x2u(ti&6MG*+*lFOF9#W$Y3K?b`)fr6r`)K<+=B)`crDF2wOezx2D6$|x*DVD zSpjC1OY|oe#8z7Yn9KV~bH#Ld1=^ohSXjG^A~+JcWcAUZNaD`0Uf}p61uHu5O7$Cn z`w8&!qX6HS4Y-Iok-Dqx)$Ve+&SU8PS=w&PF}cORVY)-thK3%j<e&b_o6pM1l$I!d z<hgX#&&W!_PZWRfC+OZpk|(q;^MrOM#og(ocDh*{Ge6xQE5GIShdM*Eof(;{^pNR{ zzngUJWAOl$a;-k<kKxQ{p_vfUUKrn6rHG2X3>%0-8QMlWQx<G34?l)RwE0bSl*{ts z81$+XMk&67UVJqNj}^XpOiNs|^6md}fpDUd6WzUCoh>Y3swa8V8bqA?Yt9<pK>IU8 z1i~#9C2n{=MW1mVeO5k8>R3{{)5n|7il6!>>j$T?A52J>Nf`Cjv3N8?WNCK17%zU; z#n9Q1098B#TjRsm_phNo)iMb(6U!_`;%GncJ6rfI{&TtpqbIqG*juG<T7L0s?9INt zmlc~+c7m$n$U`L0SlXQ6pltb0eY>Bbz9{u|K0U?jZ>=~wF7Ys!7Ky*OQKrV|^+qXt zNlq`?CuIJK?(G^Dh@Rx7YkUme=l;<o2Ce&+Qpp3V#Cfnp0=u~*)~oY$5*wAMunS%D zRdK}mg{wXyf2%Olu*uLw>tD)4EHncX67Xf!mSf$YvA0p@*L-XT9fMx`)V}-v)SX`P zHv*XC(C(+ze)2gs2f+%q4D(vfeW(o{=B=^P&XZF5XoH7sYqX#;QW)ErjV$uj@4sLA zbsP(yDZ(fJD13q`e6ABd?>*<?<Jn`uYK&_1<YA)tn-mdyoFvhmW{*79>xtr?RPWI- z`3RMy#y$I+vR8h~{YebT(Y%jckdsx?3hz?jsmEWGc3u4bP(i_o(P7{MfRVe&tIQlQ z6Mv?Rz)kc5-R7-NpVD`f4<14PauB*j?I{HnK>kjMi|#3T51<l#xXq+Of830pQv08! z{j0M0ag4#t%m=ieB45~kAH-D?laEkIs{OFf2u$z&+;6mDjlz6xj-}D^pS-Jib3{Mg z=nEonXz{z>pfygYUhl_eQvm#qXn%UWJcvH}y}q+wW6r9z7xS?f*W5_T$3?5uFt(bF zDNlRVI)B>mjU4Z?kBIZoYTgHH+b34od9L^g#|LkBfUel%9%h)U-XE(vIh)$=0w?yC z94^29l6HvQmv5#gbyjMT`}zX8^i5`;F)!jYt7_A?_Ad>TR@#y}Mw(u~L;s~uLjN0{ zf&Twcf0XUzo#adZNOG-`mk2MctO9D8`ZE=oWi@LXY?I%Hi+US_kK1>aaC*x<UcZ`y zlN^fE{1sEB`=7=)M3&o#eZMg4Y|o5;qpui8#x<bw1EFTKp)0b`IfIEgDW6PE{I5H4 zA61)ulmd63c^OmU{?ZUbQTT`hFkdfb$(yM^J-#}JsP8;wL+1ol>*eVli;a@}xtyNT z7OCka4ZYKm7X~ES(H?iwLbHb&jyPAr(;cyGo`{z~%hs2tsLlDbx$|8^-+Ot76g&Sw z@`q26%x0FMug`1bjr~vZ)+q1EEZL~}q8tC6W7@EiRwRnQ#3uwJ5S97~)uKpZzNa;v z7$sg}@n-Tf43Lacx$3h&#pPzo;I1iyKWyYALf3g#({iZMcv#QT8~2R}24X`^&X=Qk z_N;P~@#QGjTTkZjV)1YP&5WFx0{c~O<oGP+%a6>bHCdn5WiavAyVeUI4Shn^Wow?! z8Os1(t{u`6y<p~E{Bv>Cc8-Sr@SnzzJn*X{CZK;~Rr+!$&>C8^Kb(iYM`IuYjY%p@ z9dxx`*jM?i>YaO~Q8zMm?sjLII`>fL+0^ODdok-*M_geqZTslUfu(Cc&tsF_{uBcF z6loSktfuYqG$=PbeOor7oF6xpazNf)^8qH6XMB02(=h1<$u)EDLmI1FY1$tsmps>? zoA!s2jk5Y;ap*eYPeNU*N%8HDkhbdALf8mu8V8l+ul|@?=kE&z1JUcn#67%Fn>w%3 zqrC@}<hXb4!QrAEg%p|`LFcPM3p(R9cLHdMk$OOqas&$BpUq=`yGQ5gS^N!z0w+{% z=c)it<fqV)9UlxEf6s1}x7{D4LCav9=@-#7E%l6CgLkkOn`NHDY{I$4=Rd(WtN(Ks zA!H)K(7v`nY;5z|Dgw)*2jI4qABykcsNdE=)sWSQp7=|eqjRF?sziKw2{}8PiRgi6 zRuu`G17SNttWR5|s=Ky`?^AXJU~Tywux<dB(Z`&EH5UpwDBeJEQ5@tNG?Z#81Na9d zitks0E-)Xkaaer}{0dUIaXH$HyQn57`gMcbmUlz(75E>cEM{=42DcWK!p>vR!#<aV zUr6{Z{zDqS!72P&z5u^Z^ufL6gA9J-v+0LT)1zGw{Pr9CE*5@`Te{}5tR+};0~-U! zz*1#XSW=`Lo)7&Nu%`kxOJpH03mPvl^kiS4yKY+wDMt%c_X)Ml*DpMNs<2Iz-yTkA zV93t)@8Fxkg7duj27Zd~VD%_>XO>UH;CJ@Rh6%B1E4&tqQ>_(VNN4i4kPQyrR@69U zJI}|LMTKxHl4i?~{`x^_W#^wPT*uTVe(v@A$+2(MIzOLJky=K?nPwA!9RR8R_6jrQ z)!1u7UF+cd2t7ytd3yghp++ZbUGPj4PXurG(C<^mD*U#Jr#wzlk|Y_c8iWGv(b%sA zLjXvuUUMW1if$)RmxfvLNj_Hna`_%e^J|>>4^j>7UG24ZnVK^og=rf*7Sd_b@p7qa z%WwR;CQ%n#dUmd%dZ6=7#&3GQsWYO8coIYzCsc>v4bv3Q5eMesf`<qDgQhP8MQm72 zd(;|V1HyK*O|Q-`R_g~Eo?VkT>uy@_&!@*D3f+>w9PF}}(&TefGwK%5YY>f={B9Rn zCiZJx#zg`;Qxb)sBf23H{}H~`;B^CTEwBPBLYys=HN><lC*GNR=0#dBMPFevuOIvp z2B5Y|gJJ8L5vLMy39qa%g|%$aJy;!Rt;riv;y(7HPxxZ?H$Bh%-t4=gm$)n6HK{C_ zdb>M&?d$4}ll0kJpr>03!pUz!8{@QMW+P?&nydrAB};dYso%2pmm7CHYG_nYHwaoL zimNGX;twmpgb_$nw0x2lIbIJwZSiLxWtLShd$jF}RzTYeK*Ez}md8KP_gP%DAOZ9C zT=bQ$*f!IdeorRdMwZ~oQ>e=OZZ3Ov^mRI0r|L|!flt-L4uTNZGWW^rKjBVmyh4A5 zfFu-v(awt9i;hD(YxhF-l3L>C-^jeuKB|Nk=FmMg+MTWo+xTzJIn&r2@k|5MeOLJ7 zKoO6uX6;wnClY~+o*D*B&(28jFD>}x6j$#4=)q5zuyBHx#6AHeoIE}C2g!7xk|r^w zABkn5iNr!gmR>7N92VTOdaWk71sk{as8g+H!ran3nGN%JYaY?^>{0z#ToX{l+aYQu zpiFp~J8G&XNe+h!(l<nWCOuAx$Y)M2-YCKr=7!)?pJ>(JxcE_;;c>0My^Y@G$F0R~ zz!5rp*RAGWutf626ki}u+LBzDv^>7$`1pbR=r_%y#T_ou3*yP1Bw2TEK?_kurE*%P z99MSbMxVhyIi4(#8{Ff`zf;1<BU8-e<i)ofjQ+%{t@FQVc{1O?^yM$c|3_icD}JN( zTetp~gCY9HW90Tld&GBN;^}y60iHgCh6SuUe@in5cbSvEHHnLQQm`{G-X3tDxb~B- z%Kg?|iq*>TS#*ovkz!oJ@ELGV#_x@a)-$?vFfHlUPyHlSJG<&c)oydECTY~gdhQGN zkL1RVlLD1nxUZ}8(U;2s>P6Vv{qO1(Z@1<-QnkQKl$}d!ROtwGo*Mg{<OH#CqHH3` zs%4-7ZZ#QeYND*hPcHM5zXoY2J=9PBoCTKp-1zl+E$uwh(AR6%s)^}#ZFSd}!qH1a zg5Q!+xqt3k5b)q55b%@7kO5mk1?BT(NS)lkv%#n5KBW~XZ6RrCqKuo8Cd$h`Q3gRp zjlJei>1BPqvj-%37#Qye#yx^DhdMmFUz8`-A5OvUuYU1-{PM4uTPN`05%ck&^n85b zQS<R*zvP?#=9?fQpx~Z=QU7;U|Ncjhs((nj{$WSeA5#5`%{Repd-ebWXL*#pHM87F z?Gv!ihLMMlnCDmp{)8_x`YP&sevJ90@kKa9{99l)5j^4UJJtBh$2IHrc4@A}x}Eu+ zs-Jr}RrPtQI+JJQCi;L=eAl@m@$zU$3OM?#k6JGFl|=D)wddnUym@=y@L;|?J~>n8 z;nTw`oVw|Mz)LRn%S+#IiogD^>ffjG_hssDh^c;Wa%hbnUH_I}Q2vH)^{*Q6FYtdr z^<S8&zt!Ns`3v!HRQ>s>`aS#64-9~#?MJeAUQGS&8^7vqzthtCrTM^+C6G?RkZQ&q z<<Fpg_i@Vm_9O3<GmKa$AehiJVjq{3rbo_8O`CyOf9E-=O3+62vU<57eP~aWr{&@A zRDamRCv~b1CC|^-gc>jZ3=dq@;=cMc0;4@{Fy*~HE)e<;T}kp3JvH1vijsPTN#tR+ z9{8Q0U-yuXxj4nO74k`Z=smF3;oF-)GJ^CpO?iuQ5TlOw9L|gAjfyAK;JG?mS0t1R z#1)3EX}K4E+A$cJ&yV9f4=q&?FXS|pmzmYJp!AQ^)$W1lgq*q2NV%<H$RMj}me5F) zok?Z{!MuZm2|#H+Q}lI;?>|R)-{YD$gR)NBHeD^4jcScxCQ-!@FbzCrrTYDup&d?7 z^AK!)x>H<f>Tc{-cWdnHrcpzLmD3BvEMdL$S*8M~xF=r-xl>GT@&2<>`!iTPLFMRc z;r`Q5Caw?-uQsZ@lIlgx8}w?ZImvA*Hs<!Gt3e%QWSSI^tEE6jQDk)PG{|$k=Cs+o z4B_Pleh2Y8iQfu-wJ%ie9(tDkwbQ-Pd^1SU(BB}OQ~Z3{gS6m{Ux@#cPCA|TgTBuP zVb-#SH8|@d%YmW6b5!Ngp!d(IVc|30T$QJMr}(q8vK#N$ll&v~tGy}iAsD^i<SX3k zU`3<awW;F7MVE;+6J^`k_+)VXk@}`Ytm#YjhZuVo4aea`_Z&p*XD6t;8&chE^=T0A zCjUdQFjOYWcBqAa0zdGYOg+u5K0a2{S43aKKhpok0y(L3De3Vj``{oAYNvPrUoxbv zCb>SECC8n5ND14#*pK8qSx%bBW`;UkJV!k{P(uW-0=AE-Xmfv0+D*^;_FIk_xqNV% zx5ce5%Js!P8hA(`?_MCr$sg33{y%4&m_(mn6UEbiMtTwHo-^93UjO1xXt=ENSA06< z0g5CaLUeUx)_*K53Ti>A%3J@LrD!B$f`|<Zd#zy;8GkfqzVJz}?<5+lySAq31(06g zr{rV<fOy{^pi!O;Udqv~NXPx8P82HL_5*!;|6k7(iH?@n<$QUE>g&&!d##cJDNv?L zzdfXdZZipKy4)m4A3x~HYtx@5Xtvj>R~SHas^>b~5xpg=Q@%$(KC12nlacu1wp!=4 z{m0h?c0CHuUhA4Rt74Z`vB8&pv4Xu;pINg_*k@3n!=}vVt9{w~`6e^vw8z~`^Js^e z#}ma*3(p$x^!o2bn!4aVk}8FIYQ1jk)pXdyUx7eou8Cf&d1h2*o?+o)W*A|eJyksR z1mhti?lMz_F(aEj^`PYN*}`M-&r*1>YAgP_@OX}-ZqCXEZ*P7r7COKiDqPOY;DTv* zZM2s<Wj3_Q^$gZbW`grKReE(A&if=Sy_ckF1E)KGK6QrtCszxE$De6ybD!8SIr{ut z_0W>o`Pj9dpugl=s{PRj9Bue>OPW7Zq_0Sx09j=pFTPlKyz#&h{5e#p{EgIO@Tbv< zP5~vgcAT0xB+WIsv4PP4S)Xf41plc0StTZaN;3`o1%h<Nk?{ZWQ&PWq6#UfrRaoGm za*qXcWl(!+$^M{(g@n}i^pM#Qy2=QVmm0t;C;C0EvWS*NoO|^edND_{Crg&rI1-Y* z6+&;svvUqWY?W~zF$MOiK(|kKM;aIA<Wpb{1-w4i@>Bi%Qce-+cTCVy$yDlXgLxM> zA`9R6GL1+y<X|YKfUz(-jU}cLo`qiyH<syDA85qE`Ng2kH{8g^7Q0qWUPRR?X!Aby zQ&5o9Ft05})t+Lv2+fyB#^|6X=Gd!iyaH{T3wy05!VER!7uI;~<GJZLRnqO98VL89 z+jvmQMeJ{8gC929c@G_yxX)*!q}E78P^70tisa+>8(H}Nd<xZ5sPipPK4tai^3#ve zpI<Sgpg$FVIK%W-^JgHBF}09nw6gW)&FfyPNq(+=7vuhx>Ei9~+jx&2tBVgt5-p~S zUoizt7kA@<Ju09s{sjg0jR@t&%Cb5-vnHWS1GK{@DuR*0ARJSKFsqF)TBfmXVYK)v zvot+ybH*A$=-==6yQ9aeq2fd+mzL{uM9Wj}g_fuT#m?Ql9j~`nvX)5lH)!0U1H0CM z=lho%ekho9njy4Ru^V}ka{q$FhV3##M)7^k9*$LklCj5q?#o6I`HH^QcOQ$&=}j-I z+3X{wd&DRSjv>DpkMXR2*yCPloK26WFbKMpUyvv2pGKajuWjUl2T$!rXuGXzzDO;* zg(jlg@D!@>8{N2AG+?JNMR%D}pT)w0!IAmjpqadeF7WKg`+f=?U-0LpzM|~&_oU{7 zKSJ!&?;`0jl8%}WQvSP~Obx*#oFpvX{Ur!i`A|P>WmZ!W2oCPz^u5zKNc2T?TbN5z zs?idabsCL&EgJt-RFhl3yaaR_C&fSRpYPvG=<J}=&_of6HvgJmd)HYSl#L(c;6>uy z!!(#C8h4VQb$>h9O!goM8v!33soWT?YMd18`g|wqVHzp!JiJF`u!k6(ZD2RVqDN*I zE88}0Or8N5)BNkBonF7SeN_5)FwBX65J(c$jS0C?VDw+|Jw%2Yy^LQ|D5*h_#m$V5 z6n&k7pPwR-+Ki<c6`G0Cjv9gJAUbJc!l*`~TJn>-rDibhNWX4gCjISHI{vxMYw@aS zml3m&-J0N#H={S3(_iz{*%zW$!dRNmRAIV3uwfq|0uGO-rklK2qjAP++g|Eb6kBdD zJgbYFIN>_>dgvPtZB;F_IWO#0mt2ArF!&Ma<h{?i>C!6@3c6Y`B#F<T8uw1YV<&s? zZaAXN+Nby)ZA%uKMu{&lkE&h7zHamOZcDX0S2d(9+S6aplWZ^x$sht=l&xyDLqQYR z!_!j+JJk97UA~^?6rAxd;BQyi7E|_^@C%Otp9Tv$T#<qPUqrY__1AMhq0S3^_{N`r z9h<UW^fTRW%=35CP$OiX)<fcUZ6Zb3JRA;1CV-K<FTw2Nlugw)S|6Kocow9JwnfV+ z`ZX0@Nl_!&+2KWhjST&X_!Cc{p+DC{Y#Uumq<+ZQxk>U`%)Bo&yd?S#eQCb&@xJJQ z4WF?ueX9q2`$-0Plua|v{Li6BI~`B|p?$g$tiruiCF7U;osviaQmp1_l=I}!MSt+? z8$hYd{;ttK%MyO&5%B~DurvuyqFq-4z}-79%fJ(q!&jwgS!@R^(&m=ZAR3VNOXjmm z;JL5xS+>83w>~L5?O(xrUmwQ*H9QgU2zbj|_^jqgc=*5eg>X)TsIOsGJb3M=!C(&V zaO@2%?Cu_xvR66<x9KBqeK12b`F3h>24Xdlge@)EcXmK~J=a}wt63b6G@u$Q=v0C7 zY?X!^%<=&F!HoR}%66_z>F0^!eZu=bCpACl!06|9lGI4jQS*bpzI(e&%+MM&{q@xh zZspEBQk~hQ`HIu{yq;R;V54gkzJ^>>euv=or*cmLK@@p%%@)uilivA3+Fs_{|A5DJ z76OUBzFhjc@2%1&Hjq_AJuTL%p`_cY0shXc7q(Kf;nyC5|M*XiSTFPz^t(vyzFzSC ze~baaEmfmYG!!zy7!b^&Gi^X%R4BtqJDlU)gvCHxl(!zI3H$DL_FtA}7H&@bQ9hte zy+j)`UUha*KI1Q=9K!%_xj*{r-mc17k?7m;&%2@<nf{qhUp~Rh<hBp*!{n8eO40Fb zwPdlq%iBuq)Dr3IcaZcPNk{c()_$#1&{GZM8izNbv(<FSFf7eIM-LgjN{sB>BgZs} zqOYQtaQLga55Mk24(9M_%eQ7{oJ<KS;1oP{A~mOcaR*{VsjbrpUd3)2J3UPoi(#FD zJ58ySJE+z4ZIV^@Nz|=_{)0M8GTxxX0nt~L??gKhY4Ocf@%;s{%_7;x*NtBEM#|0A zVDQy!4Dwe;Dwo9mtXo_Tc;3F%_91uvEn4N6Scms>%Q(~JJ=ozcG*fxyhzf3;HYZXm zM+}rM0?>?eGO_u=(S+Pgy8SpdFDiUyT2=hq32J+zCJ6EG@t%FCT49Q0PqMG6Q<R+V ziGEMd<4k<zBCA<?lPrt_73!hF?Ry_*_rYZ##zV|OZ@KG#wzn%O6O}VE=!_2!Uf8%* z{<U5RdsV0F1fb|e26mdF&9Cu^$0v3YQ84{4Qi+SL?igz8+MuVSKJ8U?d;?qTb{kf8 zb+z9isQS-d<lONnzhafsf#&XZg#1!&ndA+;?2%zJ!c!aY2Ch4lN(O&;lym#MKHV5Z zO?VT{L5vcq+-)_j(u>BPG!0krgp)7u1apfm`lt1^G%G}_vRMUdEV#WB+k8Zq|1z5H z@?RUSAtYEK>RY-#5xeCz!%xq2<EM_2EQCFNx~uas#@g@WjJ2veQtQais0}$pAXCQm z$ke#r?f&K^#`VMq5r!xb|BUwjg$H|L#0>F`{t(~o{)lqPN68X9pcZ0`bbJ2PV+V6? zTRpQBWjbm69-ZRhAXektBX+};gX@a;Hr=7Pb0n`*Wi;yymJdlAB8nzS_xhI%*V>~= zNd`qPriMn^a%(g5^?Ck0p0Z#4!=m|Se)8|9MfhgvugLu3U)}EOsmXt%27kW6&n!Q7 z98$}-SG6}vkbtXZrWx8Yc8VKRx6{~4q6SR29XC22xNo(`^_l)NRVA-{F(dy%Anm38 zy$O+@S=&kv@$fg|{A7U<OEsvPBlZNPcf6gh=oVFE_?P{_AkLmn<3{rl7PEbg{}*rP z0$yct?fq;>Fe>2<N)%hrw2f_0JO!)O)LS;}Xd)Yk*Ct|X5arTZLusN|6%&&vZ?_w< zwXJP!%V|BWZ9UbVdQ_~|BwP|MLJ}Zc;w1>m-UK9o0zn|(??3atdvDNl&htIrc|IT6 zdFQrf&6+i9)~s1GqZ@n%V2|+@IWiX|{W*DOrz7?=obPGaABUKRc}1(&_+;?rzZxI! zlc>(4mpA`JGQO*_Rw1}gGvM@uM6RBK24u&-yS(-T$$^5-s<Y2!LDYY8+t?1YVJjV- zC!1q~%`t##?{pkfj#rPQnJLhVR&NcMJRx6*5X$NVuUJ(blgAE1+a4k`U7^iN=kC14 zeJSI`U*8xCznsP8DoonYSUWl%ji0dU?ddGSIOO9unng}FP_g!Z2-y)T3$&caX6-Bx zdqi#+Q^33M?ICAktDcFz6g{6cL3=@4$eCnfE;2DDQ<0bHa(DcVxXmeFu%NBT%UGzW z5HF4$Xy$;B&Y?zrkRQ2!w9CnTcRboeaPCAiCz~U(%*6%Et1}AjA6@l5jhg#cAOsV; zbnbG04zHg4sj0j1Kkd|gv8L`ZpEY%xwcRhsmXJ4Yo9(NrD-Clb&$n~0qDaMaJr8<p z0>$2`_4$&7l6kB%USM#mUo1b=9u_xLz36XLw~U9?yfH)Zer`Sdug6E<sowZ_!La)A zd*&J+uT!BNXg4SDK;oEl;HKkr-iOPm3fdk_XEME!i>Nf5b+rWd{EUIv7a4!y?=qZf zOdU9Onn@82=puR?+C%b!W+%)stI_5nig2T?@kykV$Di$Rq>Wr#lNdLkSKt#W{&GsZ zkvu8mGn(_T%5(q613sAfCVM>?L8@rZOwxN83^fX;$dApZc=TCB{AbCJUndawIuNb= z5PdX*8u~oXN5Kta9=bMEF#e*4LhcQC%8kF=&}0TQk(pEiFhP^c;rj$lCMRez*`rAf zi%uHyg#<m`cqo+~qY@4LV@mv|>CvWcjb=S`zfX_3CVPS&FOi<02cpMg*bGETp?x1Z z{s*@HY<m;-QF8;#A5KOfY;f1rzF(uZMHZU_KAP-bBb+=x6l*BlZ|~#e{LmT6^Fy)k z5kIyA=b<NguXk_%M%|IE`wb5)DRdgdrw5iWreD!V3m*$ea^J1nky*RVSd<z@5`l%> z)3-5kBbA4Ol#x-TB;u9q)L+6ZQye+N-xG*luuimq59{Al7W2B2H4A@ho+!+q()A_x zYSP3nAlolkFvzK&pc2swo)83P+0hgbvh_MPCi?`l_e=z+@UAZwfJjD7rVv7{$`Kwy z=#YST8u%cmAx=;V))r6dx76-1QvWa)s{_IaasV6Qe|3uRcg*ojZ1)HW%3Fbd$i2ES zzQ%|R+5tTRrg~&{p=wq2lT8~urxe;`?9<T;UjLzOQ`v*qmQd6GD8(X@)pU}jXTxHJ z@qf7wxwO($;PHnVt@{R2-kqnM>zC6#g_OIGa<L;1pnT|sI$wXdy0FG+$Wo4kkBU=& z6ls8ox4+F?AuB$ld4E!uSARQ8f2fgW#?Iytyf9V%xDGZhB;T{?PJ{0I1E3hkQ#k;J z#KwH+$<Doq7~ALZ=Tqdhpgm9Fp2e2m>FPhIy;5F1`SiEBwBsVR<6#q7LnUH~dE^sI zoJEqr%oGlFSJV!|dcsxKgyR1+l(^tVFXx{70rDkfi)Kv`)OQqd8WB`($7hOsDgcn- zYuB`@tBM==e4nRk$(LNyzbWUUzo-drC$oR#CyOY<x!6+*#ury*u&ZC4V?^wdNW`S9 zsP0utkD1gO6YJ6OT94vGwfwJ!MB=At*3ZDyMt>D_iCA>6A8|Gj$4x-+Uq)@l8EN)f z!~s>AzJ7w9aot|^*JsL`uao4_-|X#O2?!ck;Wh9SV|A{fNhe(AhhP73)fd|P8JTrf z#ZG%@KNk!e6F&|u(g=pbq}$UCWV0or$;__d81$z^ex@FPX2YPOWtR9~IdAIYwK>*3 z50m#JlIoP)q8ZINB9c9MFa`0>*%TRZ&j~cQAC8T1IhOj@<b37ngLR8*00aB1syYX( zCLNCz_p;cnIJ>~y9Q!hOXj%bF-{hbp$TB&2;|hn20>fo{W3!}&sckivrd5CSxMgk? z&SV)|2m1XJsD3rs*5B!*KI^fZ(+r%ZSYUzi)BLBF7kguW2P#Uy+MY*KC{BL-|A43Z zxJWJKJmqkYZjqXp8cO=01BGmye3;r}ru=nY`C*ZoT?kABr+LbYmcf6<zM1Ne7s>j9 z$-km1FH&psbKVJeDT=n32t!!vONVO~rq*W0GxuK(Fyks&zWVs`FrC5ov&+k0-<)ar zr3J(Nxa5yK@f?c?nCGf6oBu$7-#j_X-NR-F<2&SsfRk)ib~<r?HKpiCx#!#QFG8{7 z|HKP`E0(`iM4eDw43mrkfGym^6=Qz>$P<gqDCwwr8CRas{c@ci?SZu8ckd6(aJ@7> z`(87AFR{b-(s%{oaD@Bla>gktnstqzay2Pl|H*!5#^j#^mTWgc?5DheITqIxHC(PK z=KesfolL(0Z4A(2NA5YnP8b<V($|%=m870+3I5G00ngZKMXpJX7ur46t9Z1n3yb9E z^s2C_xSC50Yb^m9s|Hegay(@9%|VVo0K622_3zJmHCLVNu8BQ2PaCpqf*DhX&azp) ztGP0*YM1!FYg?Z`n#NRZ0iEBa89LZEf0DFt>YsopIBHpXF#XOFk)k=Z_new0Gtm-N z^NYm;&f%n;453baufd@yHn-t0j#mSm1@9^%l2u3zcruM9WG8?IK}t~FslUzC<Wru@ zd2LN!@@i@U#*zLUTh=+DY!5(vZp9j-Dxx_Dstu0JV)Y+s$`W=xX70j-wRq&iLRox8 z{DO7FkL~I?-S#t&wDZpQXlKD|M7vuS4^;Cw)xWP8=KZQ`n77Le;`r0#SZFh>^Zm9T zQ6+9uN`JG_`^tkd>WE%W{hcNQ=a*&Zi4Gpfg+Nt<YVPmPt=@1T@NRWm&+ilb)>sAq zJXXbwI)*|%Um1Q|uB7iPDM#=y4a_E@LJ{dUqK+J6xgTFquPe%wTVP`^QLNF9qFKME zBpLG*^&}Znm`n1-TR;DkK>>g1;;(0c!C9J^ln1x@6~q*BqRMeE;f$RoTf=c0eZLfv zx7u8EnxqMraA*BS(M3e_4D?wCxbJrPz|^uQ)Nk$kSx1k0-H#H*<%E?PcSzUcUK;+i z)IJM#s-dNJzW3z}tu5qJIj=QZVQmdTc&?j#B$k@QJ&i533;EK2L{{+0pV`U@Z=a3W zQffHr3M?o5>iJ`2-`$`i*h5V9j}fi^T56y1zJT&1pPJH+7uZCZ`-Cn4fTr-=y1vgl zkDd+@xwYsB0>fQVGA-Q=2U`2PeYq2;H1ZDrw>iCB*|JcTcv}_R&*d(BnsCpD9)A#i zN@0I}NO+OLYm({0tmmIzxb85|4gL|L)E(w2f#2{!7hPf{Y<_$QHG1RXu;V<cd;nB? z<3F_P1zGgw68&mA1X!HIPwXsG%v-?XAF_*haUHYr!s@N~Wy!F5CVqZ0EGox8pA64c z_|#;$N?~ipH1O45agA;d{#^=pCBrinUX={rp|FgbUVe3Z{4dFHnZmzHhD#NWB*V8V ze19^0qr%@!hQkU^NrsCRo{$WO6uvAOE>!sZWcUGvKTnvRSo?ji@9Sr4VQ1Pao{WFO z08)5thb8(mgySEW$Qn99y?C8pw%C-l^KoK-Wej7Oy<4t%jAZ=waE^C&uo#}aysqza z&ZDPhh$l1VGU<pXhs_TMn)~0AKDA76@lX1$LCrfZ9p6?d1Wmnn9hb0@grq!tV;I8s z^#O3pKW}6uv@jg0(d28?3tl;A!ddhj?K4m1bd!tvvXM~8RB0WOpq<1@u>X+1sk6^_ zlp7&^m>JN_KIMvtWHtBExYXIFl4_6y-ki@3J%l5FQ>|KC4peG1=S2n`m)W~Zflvbk zvvB$12_<`|0WWupFh>TTSB=q}KZCGlNR;&LoGpN)S!VBK@gKOIJlMY;kQewMFEU6b zkr`}28a>K*p1%cJfc%~TX^$*9_3IQVWWQ{3V}jR12`9q~f1-x|PIqUCbofJy3!|n& zc4<b_)u(#N;u~=I(;=@}F9=);K{Q~KQ|c`igQ2!j>H#slx$Bm@l(W)_zakC7aNU*V zS>?PUU}AJlzuQc%5yT-4eP(&-d%j$W)JPn-1AYB3p|;pZ$<y9AJ;5(Gz%TLD9^b!l zS|a{>#lPsqM`|P<-GMzXS-CZ~-!j`LWRE|d93PPyiAC})u=yf25{vG@`29xEq(y2p z%m{zi4?kwZQ*5~I6{WLMmtbqrWlm{vZBj&PL_NxV%`Yc$M%W&h1g^v#RQ#!4q$b`9 zHl|>U=bsq8@g2rngD(WV7yqo{?JGpb#eZ!u@h^Wm{}d7Bx1Wx`Me&b*I=)=-m7k6; zQ~WoR@o$`I=sukB`%NWXZjuVq-Z(??0ma{}_&hJ($Nxg%=_KLU$Dnh42Y3GFsk!{k z_x_I7-&pt)yLZ`5K!YgHo|U`Ui(cVH=Nli)*x6pRxobe%m5U)Z?-zN|zaoIzm&Z*D zx%|uL-)MIr#}wwn7?uy-$Vu?kO=`!j6gA@|nl&D|7XOkTj%3aH*o+_UBTI~(s?wAN z1Wy9wd=DXM<W?27j4fCQ+u{#Hgrq!VY;5`t3ehv)@i*v>9G`CVwoYZKB}>xJKAIJu zPUKyRT%H0ig0(N}56XX?lK$e&^Hw0ZJB>&Hiz9wJ@aQ2k7a@I-?D454IwV?W6$;2; zVtM8&{xSPBR)@USX5T-H>=%;V#$Ke%?-JL;y(d|dKn;*<m1l_ZM6)gvw*ORy7gAKb z<o!*b{|IWD{UoRUkLpz<+ME=xis=V}g*=V*fRc<ScK^a>8Fk*-o*S9PHt)}od!4qu z+^1eaGDhaN^2>RSM*hTp%;j0+`n#WNUu6Dj#s5(8<`lHd4`6zaFdYV_def&@I-D^} z)KfFiqFL?qDUI7VleXx_#;JFj@OuicN$ihJpdPiyTyAnDSu_v)(4rJu&W)zpSGVhx zNXFU9jL~M6%=X+ffRG)e#`#Vqr#lVZw(=XP9Lvdos;`>ciD@ccnlF$S=wD0VTF6zO zZ8Q#*dlMK=wo^6jh+httMsMhn3RsBT&-mAU|1I5a5w4Mp`~6%#-Nq5m-GUK2Zpcwi z4mEOwN7${4)X3#L%z`LnkbRp!=nq+A?|{B9&X7^(K-KFM%%xy_0I4MQDe>ndnms>r ztq8HlrV(39>~YR8!r#)nrFIeIkr0ODIErR+KhXgC_E^aJFVsJ!P&aRn8mj-15cNL0 zS6$R3a&ibq^uEmS4TTl(?Ax6EKOZTA-}genr-A32^K#rw3CyQ4vNM-{OQ1gMEJVbd z*P;-{y4o^<<=bwcQ0&Vp7O5??@%SwWF&W9Qa_OPBt4Yv`C)++1Cv#}z->pEr=O*LQ z63Kb57Z~PV?!oiD*9o|vwYB)NveIgvuP-d6JS{Wcb}X$`!)3qJ@NnwSv4LLxIQ0V* zu=mz;l|XjvwDZ*OTtKz>9yKvi1DM#+QHuO~n?TZg`Pj?2;nuA)5s@LWx0Q~SVZ(9x zsy9PD-)yFH0^KU_E;N6<6faWi2}345mG!VGV+LTn4v4bcZI1l{0ZH%e+`}4dA^oS} zVoqAYC>y52C}nrTTam04WQafD>D7c66E<pGF;w;Sn|Y%+y>IPS)!c8Ju)R2@58@A* z;vw>nm;IiOsK1w}NNr4`3+urwLdJTd2&dr|f<Wo@JM>z@NZaxJvEw8*;a&VirjN6n zXl(2pmsU6yoaIGMHEK#d)iM9Ch!qeYpXlp1mNBjXtcTAIQfOV*hqiSM6?P!4s(=!c z?mz(RK|(6G@bKFFn{pcRW{a;adGqoQ+j*|#VX=e$i+?D{Ef0%VOt{^KhigvdKcjO& z^Qo$7`!w#}7+)Blq&(bzqkd>34$Oko7yrmi{e>EKV-2Q_TpfSBkB0nh4+AUy6y<z; z<DWMLC3pL7ll_ad)cM1+PsG;aaT2?#o}V9HzrTNRS|QB3XtJrlX}6(F)%ncLGO)_H zcMhHOX$$MgW^w<7@^ffJ#33uLeIuuVmM7<Gn{t&<fQZRgFT;?r+f6;?$Cazz(0?7? zVHx9z^)9hxt5y4ba#v63kEb$$=kDb}vDoB)gLr{YitActGV=0ckAIob)H2>^L_}1? z<|!hQv1b<;wv4Z!6Fk@joe%t{f1^57EydySd_B0v_#8YIn^tk%@|m$hTl#O5zAW{z zk_WcL&b3KDGl0zv*n-_slLl`357_y9#*UtA5V+gsQ<O>7Bs3fk!Qz&T$t0P$ge|DX z%MvR!Iz-l36;9CCY4{U^Bfgd&J0IC=;qlREm<}iNzGhOn(fYFPiryY-s2UUxP~=ng zaBqM2QhOvXlChM`x)EMeYK0_R-P|&ST?U^>lW5ihns5I2U2bPtqAb5wmqs!cs8ro6 zQZUF|sLU&3?QB|*XZ}x#eSJV?TJ}GPPkVze3#v(=ZUq!fGX=gcF+dilDVJ0KHU7v^ zS^KZP_^2KQ9b&3dbqDzv+hNWpHQc1gNY)@g*vz`#V~=aZ4$pM7yxI#;qY6)VX7_f- z{_{(cyVk_`H&Zra<xbk*DG=`Ik%f75R`l9{J6|8}4Vg%S+h$-rGaE2KgG@Kf<*AP! z6!K<(VSe`~R%UlpomA}pvfE@au6s$<qqIyEX)#HgV|)I<a*sVX&VQ=%$P0Em{Xo@4 zcFUZN&$QS#zVO*w>0cy1v6a5Lztg-FpKIT;GPi?a$SzEKJq^OY!4In#^*>$seJKZb z+=jl^)w9al|8FLWlxvU}v1>_5vJj4bo7_F-={aLxGyb?^yJ9z1pj<@l{!bj->BEZ> z8i2W{^0r%1^SWZ6d|PTVoaxB}{HeNP_u#l<4p#`D>!z5D9m;qq8BIOm2ngl;`P&As zuiS2Oyr3MqiUYnLy8<w4LDf95m&Dh$=Mf43c@I*RY;#ra9W!83@87B0#dFHf<!LJB z&nEuxSR+i-6w66-J41RAWwn|AS`p~QkzlSGIRJm)*tuzGL(-z9{SD1d!>{0uAeY4z z!nBWH$tpfrd&CCD5+E;pJjTmgNnUa84&n+AEE}M!c`~l2y5!ionL>=6pT2L$P6;Ir zE(5jfs_Q`Q%O<ZsM9Rqf*+XLm82dwGi@`ptXGiMLFayH?&ecK0j5kRIiEI#K?7c`4 z5_9=(_!Uvf(Gz<hH#u<5q5fAGJcxRZg*$iezzT&oS2u6L@E*=mK4XBM188i&JkD}J zujs7T-FhEl5IM&iY>Irlc8`hi#~sDj)pAE){~k`5uS^|<JT{hF%T0Ctd#W<E>3$ak z(wy?l@6D{9L1nCI;M$y2Z%^|A5f4hW;a90X=$Q8vB#9;xJY{*^>9n4+ymcS9^UNfs z>g2kn0M9}7+I4qn?4zI2Ay|;^qP>wH<jSBX`4hPx*Hzni{!YkeQ&>&sJI3EPbw1u1 zIzCKi<IOUk0`eN(eD0h@&X~H^OtNi)LYa&{#L|*(Ztt8+xbOo}tdr9@c0)B)<QTOu z_R{Z6YtJO3kspc47s2yXH$4KomU14-o0FaTi|Iw9C`<h4Ipm3Gqa2jYTK~QVFS}KT zmBXK`dD_xk@DR=VMHwRDk}1f0?&aAW+uemSH@?s)mPx0?d-1lmf@e0{8CascYmY+W zLdIe1HvuvSEmKVIG@OLa6aO+ljAP6Tw}wW=+?J+2=LA~X`v*RdccXiMUfjM(S*Y}~ z(5UXz`x#5QmNH>aHt@3~w@w4T+w8__w!e!~Toj96O%0MSe?y4Gs&0|Ii{I?a7aGHw z^zMH(bX>bVhjIBCEW_JpNtR)-dMv{#t=j21!_2?%3&9ikB{#P8Nkn@r>0nMf@}2r2 za6qV_yZWS1!CiTyxh_WD&$^-#I}rWT7kl#>Zi(dP0Xh#q_Prr)GrK6{-o^9Dzjr}Z z!ecpEfp%jka#voN1`mVnZr-E18zYT7{tnA_ci*MEF~2*L&@zt+bK^A-WN|LVV`p5e zS=X7bYb{}dwc9KcG@OC$0V<{JpTQ?i!*+F;Ea<$C<i=Fz>iAg%rC;b>Rn7s_zePAU zWTY;++#CCPh18y`dj&Un+b~Y{WHM|R|98Gb6SZQrxgf-wAEH@#-!f9WxeTfO2eMg_ z{&%JmI`bLv;~z=##w)FGF9PfMIW)yi8htkBK0B@4FEF<mFq%=yC=ZwoHu2j^94Dlr zSu1Y@@<c@pO;mcN1@%XpdyEo?DL3c;-xJAn;ND;MR($~=-?_=)K1extqKTVnD!-i2 zTUv#g$?v{i(0x-ujz&=_GgRj{$?+;t+&^UA1G>TkpY7RXSaigj7V>@!WxgOppP_`m zsg<1ln2&AwqgyR{l$X&)i<Wq;SAOdal)vM@Dj&&c^2(a~8@UT}z7+Uy!O6zo*QN6K zS19b!pZh2@1?bYjyp$Ufx!3YNe?RW~)EEEgW@|@@pZYv(l*HKjJ4G_WRBEhQRTp^X zkdDXUAt<aTOaDbE;ZaUaiuz*GQyY2=1wIYLZRv4SNevvXJ`U1rHvZn@;sc5J+lWuW z#g1n~|JS=M{l<966nV(xg3P}vjSHMSWRCZH@cYDHkNNGpONBgh-Q&WKRR{iDi9=8` zWUi~?ITR@yu})lX^dQm~sO~~j63>I$Hr1$x;^*MQr=9LCemft(DbX*)my6X6UG6<D ze);w4f1-@Z$mEb2Z{>C3f1-PKq|n62|G9UQ_`Clj{%54%KgX2(Z}4AH?&G=k##H=& z!K`8NfBCrhLEvxWe@i@=XM?$oSU^My^2jG2|6T9+_@k#n`>%Q(dzaoyEm%^8K9JRF z@(9ySDU|l)k_gFp%&{G4XV>(w&|-&}`OO<|QHpx^W7zvUlU>Vg4biOYMcm#Sl4I8I zKW%DX7Hlb`*BNAy`O*<|5bmnu4#FkJ3$VUW3an><)$<>W_h`;5R-`>XndqpZe?`0P zIr6_kkDkX;C}QM;@rYbJkWn3bdziPlSUf<%HGYt4rc2Vk{w=dS3qqYgzYPV!>|317 zwt7WJbxzOMe7!01V}J3JdtjXWydYzZbP5_c#MlXDc>uV*qPEma$)?|qyPrehR2P8Y zH&brRl<!sD6}iBH*l%(v_`h&OA{IY+5Z7E3g8n(<?X<QK=&|>{y5G!k_bHHZvklBp zVAH)ea1()va{OHh(StP)O7-2So{whaz?0#~#dkY{xt0|_pio}E<%3tX&7!;aesBwn z<MOOKQ}R~<ghxww)Q)iUiY?G>?18Ymzvp!Np(Ju!W=UO3rXEnoR-LbFL^oY0o;$>S zoRL#Y+(Wtwb;ESyDbwDsN6T2aK{oLEImpyJ7+_!dPP~g<p{AQw=NcuZUL1oU0=434 zSl&mT{1zP)N$)L=ut?RSmHePJFqS!RP?}rUEhHlu+q&4^t$B`Q{a4&l^MYYL$kOz- zX10;dWQbkNJFRY=UHFWAK`~!4F=jG}Wc-GhVvHE2nbIQe6Jn7Jm&k<Wrv7{)jdJ$P z&G1n*8YFIP7s5xktE@E6f2V%mg|Ax5Rnov@Fi$Yf7+a$1A@a;sD@gf)*--u7LL+a@ za@T5|!P_LumN5;-rlRtd*dA(-2QuAyB_c(;6rve7M@BNDS%cGh&J?{PTq)}J6I~hw zx&BghhHBetTzz71Fhlo5?YNh1Le@^*%^1zPLltJ1_V&l_e;AwE2ebM4!d1Ru?V8Jd z`}|~I{}c<gO%@Ba#9L4)V$<-a22dD4jDh1?6n`1R9E@816Ed8tn*KmUY$!GLJjsA? zw#dNqn^-O&dVZcV+D*H%_HMQVcNpZG>5(tfOd-gx)UjsmNm)%P`DdS)pJ#AWDzN&7 zHC7mT63y0=A=ZJ@3}q`Hv%crS90Cqy9!!?f);Ak7rc{#aP?Mnb74XQFUUu&PPso~~ zx_Og+O30aE2{|)A36VX0gGf4v@GYq(JmMcYI$%~PKHa)W^kClwUy2G!N(9r<x~-^0 z6Kf4!pS+JTlJz%}e?^t(=d)jeexITTa1fHYG~&LLa*{}@Gqs$rAC-_Vei55B!Y@VI z)$VEp5&Jx&88GS$%n%xKQAS8OdchEi8XAW6ifkBX^v9;d8JC=oW!!Cv-S%yWu)<vy zn{Ga0kKYMLYHY<m{{DVkqn5^g{S|UH@b)r0yEyFyU%8Z2G<c4-Z;Fk%4F0TpAg>U) zcq7I1UCj3wzGGjTWQ@2^ZuCZTop41f@)~+CPyCt(V%_C<pI6N^JR$^pwAsKB4lO>v z=@-@oAqnU9ll;xRtP$737O#f66`s*D4wNas>JGIj_T;w+=`Ha_>P=a67UR2dsr+=V za9+-MS(;%atG6>JZFwkfPTF(^{%k|aJ5wuUH|up_AI<tp2^E%5A&V5PV?O**dYX=Z zvk%0;jX4v0`*Et~G%MNvNlbq{&kX2775+eK$cYHWKbfG8)tvGpfJ^igd$;t~07UU~ z6mLkY)Iz60r$zCBHT-elnnL`{j!1k#Ton*DyA*a0vs3aOUzV?Hr8?jbP-Va>*He6H zF*)1VNbB=Km1?S(N=EV-3(`)trr|<D;9n>mB@DXe1{Hr^kLL8FZ;<@eYd))aBTVy5 z`&}}`2CMu;gH(+{1bd_6KVrq{E$U6Y)lY_iLVO{)X{?>k68=_PoOwsy7(KSKkrxrh zb|5f)?pzi7!=-R0M`?389eG#Y82{Oba9&xl3%?e-Sk@p#DHMU^x3YY$qC_191{z3E z{cg2N6G6<?Qmk&NXSzrgZ}gilp~jIt{``sRWy0SRvGSw!j0CfRZJ&^=^6q^|>iE37 zR@3H<kFPK{vb6qbbAOx02Un~Ay%A)!9sdv0&C)k<4K;KEJ9E<TU5J?Im#kw~L)WKE zys4!}&%zB-luK0NzB=S@v9awtqcAn-4!!+Oc?bWxocw+JowEJTSC{|bO2zYU#Xje} zCjPD5=ae_{k8oL2%)R(9{gZ#l7QSV9Y%US|oNt?mea<Z{=1x5)ANU|zoJzpy3m5Aa zr}!Cz{qrP?^-ytqP$KN>=izl$D5Gimr`@YA*0^yud&hY2E=h}B@PH(nA9a$VKBuVU z8&hi*%elx<EdJY5sWz!QYn&`jSN)GD!HloP84BN%2pfDB%b6fHl}P&aKRPUC*Q8)} zS%P1a$l$Pp{(XNcekUvHhl)zU&!C2i=jm^(*GtTKf@@7Z=tYvG3A64c4EvZG#N=^9 z*o9qCqjZqv^JGtMbr^fDxArvc(xk?F+E464y9>Kbv1g{3!yLTIp5;!IykSnPxW@PY zzj=Zg;@4=1E9GiZ$ocYk*y$U5o0VeEzp6j1ec{*bmMCK)3uDxPygdWv-o&TMr=Hhf z9Zr3*kFM6*r)MirrwZzJ8*Zm1*BMwVs_^eOuzdf11&n{cw>x~IfB#v)i9ZdTlrCQA zpI7AAvb)OK-i!O)wO?p)8n!a@4m9hacO>KOHt<huSe?XH+`(qZo^28vZDJbvk@cte ziPlp7dz+YT6OUp7cRRTeEED+ZCN5a|K*w@pKWUW6&Z<&&qwNAFF~#Y91WK~YzmPiA zx2Zl7bForVv_M7w?|mc&s93^BqAKg)a_#<9+mlX_8w%aFvAyoH+V|C5d?xC@0osKJ zmh-iUHfh;$2&KtASi3_xoQ6NEQzKb_S!)~8a8xQ)H0xJEdhzTcdUZu?$7;J<@q}qp zMh#i<V*_s5!ldom-B<gb?A~sB-3nR0o7}w^y&Jo0w+cUF?+!-_OJQ96s)Y$Vn)=IB zTx`5qNtl0~t>J8HAajMd{7hbg$WD_6=Rb-Z$vCz~>BTd(l0GdQ89!VZ^?ay-)LvZo zk4BJ7GriqGUMuC@&HW1{pLKX)b8NsedEtnirCu;#YgD9mjoC~4qM6}BhB8k8fFnV$ zmQ(*zvWSEq(|AJwsBfqk64k^9BO#}Mki}W>Ceew*EKY-#r}W(-aS|AxX4cJPfuEE& zB1@sNMYDz%(gnX_&D%34nI6q*@<y@Hjz2)M<ereq25hol?aP{Av<)1%f)~8F*MmLx zlGORwczc+UDAnB`iKy<d#8Yo#Hs=8EF`?_WYEQ%*>_nWYr6;MS1}<(@=W#Ada?EtE zUX;M<ZMSYuF>TJ605B^|I2vWHY;lcfiNDI~C@I6$ju<3$KL&v_DPtL#vsPejs{I}C zEP)Lajtdn*VJUcN_RNsepjBA>Q6i=<bT@i@UVlCH7ywfRz~F5GbU2S6061?<>9S&v z57fXPQlfTcCfw`ZP#C{UcqZUg&oi*rp<5(-yPc45q4^11n)pt3IoIe>Ra}j+^AmUZ zM6$lRns%DuSS=?IOaX~DGAJG&DgDiD1;GVWV9S|0Ox~r`b{svN$A1K>e$P0MpQRcv z;75Ftq(_HAEbH&9a?%VP46r8!%+SVE0J}WC1z^a4ZLL-YXk`M*4^YfxF|QsZ`_CHl zKM0xmW}_H*OX2bR&CdL54Ty{azvlSM82Ej?N6nYP;e;mrn}<J`lzW&MJs^^`Z>5jP zG>d70m%hz3Fry=pUP?7~3*kZ#V}L!+4C4!c_=Um~|9cX0z6}04GE#_?QTP#sF$fkS z_u}fo)bV)p6}0lBtITrgPAZFEF24@!vzKFx*d5zqQzj^-Nvdcx>nc)W%{KmPiXUX- zze2p}i`c)}#50r_2W<+SqC!#PA;HaDR0U_aM?s~owLkuKn`OskrpB43aK`2p6uuQ) zuq@obimWqMc?gD{Cb#T8J*|Lznf$SD*sA`b+z)foo%r7>{)@!Nqf|h|0!0k986Q^0 z??LKVA%w1*R(Q1McVzjlvV3?YW#l2Aq!0RpdH85W)kx;$A_`0L%`En|RRYx)90-oj z#vY1}aXUG_L=JoVHCqpd#3{&qgtXakC{(X~pqlEbDODdLek+|6yNmdq50d;yeET<u zzftkLM@eUHx6FB!qOVZ&%P9(mum7}KJj)mrdM_-oN1}T*?i2z8QxPcSiar`KPK}tT zxu^o<rC+3OnRu<R;}<XmLg2M43<Cd>&=;dwXQ>^}DE_ww-)~raA1@#}s_6M<y_s{q zjlWm%)x_H;7_on}SlmBzf9FqB8o!3z-gpDgOyLRQ|JDA^6I2i%W{MPYFz2WAZVG+P zd0D+-@f}kwqqkh02E5A?>d=7dF_Ce`Uof}&^k)ZDf8$RK&Ft#$O6AXW#}y(UrEfu? zOMSZ)^f{)6J&kG2^s|o8G9L#~73#Jg4Y}7ACSA*&1xJAtMD&L26i_wOt1r9iSC-!A zis`9}LYnRHd7D@36;Rk|_=%Ag{tRffbiKZiuc=VCdPTD4FJ}rHR~Rn>R-(U>v-x8u zWG}bbO<S3qDdZy|QQI(w2wM5IOKIgxmq~iqTE6Jj@~*_pLe;l{uS9*(tbj_?QzE|2 zB-DVp^@^<?8gg6BDm*d%&Sjvg-Eln|VAfmetA8#Ni*(?}1AEKvHC*I}Zxi+_Umr5# z!JH5Nktt(_ac!=beW-xsiLq1qZILv`?cX?YeCE^<PlH>&PVzF6d)^g3_&*xJjrKjc z)Ul@fhx#so`F>9BB){hW5B$273gUN|BJk_|KW5i8`CnaMhV!^ogSx)`58jTQ;9r;n zYWwEq-?6l6Qf=RT{B<7tBk3fqH%Y@TymM*Q*J}H6`0G42O)ZaRG?=9Ri%A+@+n4tB zJC_o9gQk;c&P)2k^{bGuFs-hM+cGm=8Fwlb4!w65$^TMB^0f3H6$jclzfR(O#&K=m zd)>detZMZ<uE)=K*F<bn#6N2L@~{8xWfXhIOj#MjH0Ukx8n6^De+GDM-|(i}msUMi z+jka!oyQ*37>s5-V$f_`O;r8&V1U}b*GJp|syU|_R5K<~)IcL|m&w~rt+>9Jyj%Ik zWjdO%j-(~EeLZjfQkdLmF?q%>YsMwHt_C%X^BJQ^r|tDZPe_bCA)E^zq^4hRLiige zghMBUuRkFizv_5+u@l0toe&;#0zMa?5H36+eBBA*|2P3&(+S~w6sFxx;91)jyKXAP z?`0Sgb%u$Wyg>c&Hc@ojwNup}50gOp5TB-eziPVmq*LL#`oG!Y51FWI&QsKHO!3^4 z#CbX6ZSe>6N6e9w&)#~OTk9J2HYj$eH5kq=SJ&YBg!bv~?C<1yi@HMx?Ku<74^y}r z_VQO{NI^PW8Jl&O6Y|<8VQcDj%3=96FSnX<WDm1Nb-9aY(k28!u~|$d>$m3UFIx~j z|5)fY;SO=HRd=$*gl==}m9HZVuun<8W6CJEsry6=Qh!M*>otlk1WM0SHs4~_;CRwx zj3yUJ=Te4t<ti3>T&=RvtQq_%0pd3S5x<or_IKr1c<&{I!zL{GRwA1|7UfVuz<D@A z3*{00)nK$x=O*ttxg^S4;|0yt7Ztfn#x|BTZ5xQ(Dv1mZ6uW~5;7^uW!cP7k<0x0e zv#H11M?y5Xu{~bgv^CwdZ-3CKOb<9i(^Zley<4kyhoFA<vEYHmK-H^&WtBU)x#tB> z-i6F@LA59L#Kj4bnxyY>`=_<L%IGxR#9pZJ@2<n)G3?goy<nt4jv4J7gzV>i;hbqA zk-XkpZ1{dZyxfK(et4M;|HXzma%sa${B#W7B|eZ&Ka&cz)aUt^0G8;*A(oF<npHAx zb{Cru)_SA);8-aBXy&7zttD;QKG~ev<}^4aj_iY!J({%<@UioL*Qc&76$@+18jOM% z%L%ccDYvSqt<;=*qH%ba!9(0b)rem;Kq8MBoV3VzSTLKm4vdu?>|-C%zB9L5kxay8 zdPV_zfhqW`3ch9w(uhto1=Qy)0s)@K!-cCX6uCn#UD|zcpU!(0a=W}B^_uxA#)4f@ z?0y{P?@ab9JwE5E*hVNMAo`DOMnccn0Niy^3&Cf-Af96V8`OjXst(bHMI>;<6_<M= zf($%F0JK?*^&~A;j(s>{A?w)i`~Z2paIj#hQ@0oNbU;SVXQg5Mvu27ri(QLun5LBR zDmf<hvf_wsOtH&uKdp$JeZX9n;nequ2DG<A#F{N)Av4PQJHrGkgz1gRN(t5%DgQJ& z$e<WTubK(Y{YGr17Zx{lr-uV=`<;2SF@27~@`C|s_VV}fM4N{ZX&wVx_|UsA8WNeP z3Vy5dX2-r$EZr%bH#0UH>@X$^rBb<M8<Y&)WWfkQ1JRek?bPo!G|1@$0ZX(zpm-U~ z;UO``n2#m+LZGT5gVY3pHgFLuRAGB1AF|Ua0<Jze%h<3erZ=T3a46Yb+_D^D)34_A zN?`O1Pv~bDLx>q((2kH7l9#1b?+O(Zr&oUvij-!C3O4-U?c!<sLhgp14c<JP^#t=v ztbVM{A;NuqvHL*NK1E<geeF^S0g2(njyduwIBF@!9xi*@aIy37gPKsh9;dUteipRz zfmUFd-Kn3IPMeKn!%^WXJE-8x7iejFJIVmEWfR|FT5n~{lO~P9FCKV~Bzn07F>i_d z2F6?iEj|fy`0XiDdtMxaNIu`h)=*5NJ)rof6>lHWH1WL48=L<T{SviwctGhg-}v?e z{KZu64#iuaa39_Z#fKHYJei-x^ejke?qx)dylvjZ%9?KESaa-b<u;eQ^73rt0eEaM zbyMbIm63Y@dpz^+L_WwB0wREU@RdS-W7}|*<lNak#gVGKnWp)KmKSpz)qOIrl^h|s z9P0cYtaucAFw!A6_8aW240iFk#(wNK`^C|AaB2Itf4%6chq%Pe%3`>Aomdk`AwXF| z-wYi3L>V-;W7GGEldUt$l@QruVMLq{^EE(3o-`%K9?+q)zZjVHdFsS)^y$1_{=zWz z0tqEb!)(OO6ipDYzLel$+gtPIhTRwQ=98@_2fp)Q;vQ4b>C{yM6#fxR{TFmU3cKAJ z{p^o2YRvuFs2A=&I5DWfRsDv<o$~8M|9|MIifGQ5L_6;enRXgR(}<n7SEAg$uP!sE z8Ko)UoQ6}?P76_E^$0_SZEU&nsAVh*8X1qxnFUQ;9aiv->Rxt<kpQK!VNeh~r?kLg z&wK?L!whg7x|sn%43vv$Z7V>m;q!fsXX?_^wPc(fDp=t>tesuDF5jfxnpY9z)a%0= z75QYIEVczJorm>41?9#lPr+vAVcoaK{rzL8#B{IWL@iCB#ri8x)!ZcH!811;v9$L` zbSx~FDR}fS8K5;?)5e#sNQCN<P(~(0cs(((uR%HxQ#aE?-Ta|?p4{by2|T*_*7?g* z^_N5bdJFp1On#naUt}kL#g5(l1*2v#vRv3U4vU)8`C{I7QsTeGMkRYjR#1klrK5eR z{c3Mte_SrUB>k1Lu|JU%Ki@{YuDnkv;xrp^qaq$n6n;>J4_bR$TuFB+2{(c}l<*D- zhFF09L{_><Uh36KZM4O{NJ3Z}%65RC@4+sPeSu8o{y$~@37O5EE{t9^G=2*G|0>Ls z*0USvBL&0=h@SH;0^9ab>RXgbu08d2oW6$bBoukZ47%vJ04EaY)V!d(%zZQ1wEG<X z4+fUGZGkuSoOQ7MX!}t<)(7jB26)suIyf!F*qOGac;M4{i@>8Pc8+=FAsAR1Y(Elm zKOpnR@*E4iQw$f?>kfb*b?Bb*ydrl^u<65diUMnb?Z;#cxxa+VjHd0LIPJj1Y1_vp z?RR10r_OETdiAz{_~HJEfrH_|2f>1)4{c{M%nL?~kS0~|A|t1v!)~-VlbXl&mpIQa zFAgmC<+9my@!-4+oN(YkIIzvYvG$$gW~{{g2u|vQf7|U3?5bNdt>zglkqPtI+ctih z?iPSET7~B~fp4y;+Du%m#Dw;m<bAQrOx@eOHnhqM<kAo6s(a~AbcYjNv%+*|in;5= z{zFBo&ufIT%%B?i{(&Q@4f)Yv0M`b$g|S=MwC5Z;_tHQM9UZcRnbQzKqJx2!AUUyX zwf8s0&j~cO_qnY>cg?6nzz9Xh2k_$wHtizc(%8S$?(K)_aE-)4`w@3paMTfAJYQK9 z*zP>Pt~hdQUVh26Cdghqt+_a`ge%pZ`ckH+kjqII7@{RSt@YYy`VfxrIQ2TXS`@A9 zFOq7m`|V4ntq(=7=?%fig~3;|X^$~!u?7iGtI7*C?L<oq=M{%IurtwJ#Y!kWSl55{ zL}&84lBTU0`j%!lCTMP7Bf9<I7WA>E_e{2+GpSw4mxcn({0Z59bNjTzr2FDS(O|zs zvi39FmBG40gPcbW@Ewj0J|i3*c0;&eRnYm#l5jyMf0~LiVQD#YlALXmn!;Qz?fj&< zD03zE)sh5^A<iS(ObfazbrU8HC;=PUW%iF_9hRxz!9zH`)HdCj$)$T0?c<!Gp$Xai z4x3O?*OWbxGeYZw<~8o#B7lr)ofOT>o)jH%#w1XZM6cKTtD#XVLecyBp}?Sf!T_CT zK+hXIWK#6<2^M^X0k0j=N$7!{XX@vg%%HnAShwR)k=s`^>d?f%>WP6>lcU3~t=o!| zl-|4!Ixh{*3(h}<zo!P-I5E?`{C<cC=LLuwz}EzQ45Yb%s)tO%0K(}?&<7oJXh0S9 zQDPwBK}yiaNhA!cnrITz31=!nA19NLUd4sol*k~g>L=*qR1z|(K5r5R5gx1rePsFb zCswWE0PD*UH%M2`4+nY~=*59`!Mfc6r)~%{nRE~HEJ;S}jh)h58FOXF4SuuFvcmF5 z$ayI}Gc-Saf<A_X=7%OQKQ{%63szQd@A<L(wdKHewzJ@MG+OkH{d8+KKO@d?`^>2{ zXC^NZRji_0Z^(9r4#xkZIeS!lU7z#NdSN&QY(gH=8d;zkpJS9`E->!pwu<-`ObaEF zF8f*g!bNe1MwCojQ!=fEhvb{W(R4;hNZxr(VU7A&U#yQ=hcBrIV^}+|KxKN7QlqfR z^Pi_9p-A@fxNG9mW%W3L67e-(K2G{bk3ZgDdZv7TO1<NaVg71%51|Bf^Ed1+VNeAm zey}lU=rKna;S&lph7d#;G~5>19-4a2Y40xzEGZ&;5v_FJH4;a0OM`XWk1?B!S{^M5 zFinOMN44BuBch69Pd$(#mGDQz*HALad47YDMN5!HC4pt(f*z;-4MYxN=wR`*<>5fA z2+gEEs;KC_Rto*o2m*<qDn!sfa@C4y2n(4(rribKNd7R4>DrM2wlY{UUeL!rfkYB< z=kDfvqPx1JX**nhOrq&6L=*Do7@`S3vEV->)rj7l6ivs@wxa3QyfL0=lHST?Imjm7 zto>n%Y|>VVFPpx>w-G+kyrgXEHnQpDRTHCOJQR$?YMNN^KCw%SPTpEnzslY#5ssE2 zLE{rgZ7!+nLq>g=kXBKk2HjOgTJ<2Uw$W70Z$@5C&~JD`HZ5JxzmKLnT?nr4x3OC8 zVx9c`c0Oiw@~=q(EOR_epOt3C*yifj6Jl(&5o05!O^RNWJ2Aj=6DcMoHC2ku^d#2? z>iHO>)x4ARGuand$JLDJI<9hrT!$9$jhWNOIi15Yr;m3!K?ET;F|Y<9H#s_Df{}2~ z(-%k(B-;=P5~SGRJR{+LW)md7CIys)xRSV&gnLk7q|_uM`H)KCya6N(sJcT52%|{@ z^>LCCBohZ#O;9+K1S1kpRstM>gu74)r;w1L573aflY~1<;lU&rS(&ATLAD<xDiCfZ zfeqony5c~rB(S^gLnNE-;YvuhL9zGW@9Q@Qw)Koo-O`!=t$dq+e9J_>A=`@PLnvRs zZR>d=Dc|l($hToPAm5N?ZXbWcH^2>Dh`6qG^gAY$%JdsdXTSiY7~YuC6oeDl@kxlj z#S(p&TG5BrpodEWZL}$Vx)pt4H&)_qh~J4!;&=orsuH(LqEEg66Q{MHd`)zo@0O4I z;O$b9b>|5CyY7~WsHBYlF|qYStbjw_t%{!l961q|o=A%L?k^lC;JCl>c=>iI0x77& z+N&m_1)=UZ&%a}}V^m`#7?<z1A2oL|8y%{p{cw{}v~mM2C}z*XM(zD5rlC=L+~t9O zG~VKA{U}H6dt%$}-P_-OjHc%ztL$<+H0r}3cED*%0tY5W)6=83^rJqPOj}+&&|1@q z+dtIG_}_q96rFeoP^1@)?FeB%4scP$fu@}U-S&f<S&7yig`+2}lywJ%BNSLc1fpy7 zVxv?!lW|7JSrs`Ga^q6J8t%~ei<Y1PRb3IR>l<)S_QYuE0Bo1xQ60r~hX>z#wYzfc zis=iBoR<d|PY*UVWlj&dgSpPz&V{k!Ku3wDUV8CRaiF)ZC-8%3K0~iw2yFDKkmL;j zJ5Y%RN+p81?fTc)rzK!oJ?8oTUWRfHr<~I{%hSwR(2nXZib@K;hu*TTXjJ>eK-c7G z-tdyZl923J-$#>1e=Qo-8I0cC&xM-z6z(67N>utOsI8I@gG-CBLe#y-lBEM+rXlM~ zq%nLj&_$DzQ%=x%d05``rshmuj6EGSOnRagV8k=}r;8dv7im$~hx7AZ=4X?T?kA+j z-zLt;(IUO8L}xe)77#Ukp>1!lE>0`|t2P7nq=z~+x^qhct;K;>zDCFOmU)T01ipj? zlJ{{Q&%b7V9wXn}!jLlx`+?SbGMN=KM{BM&{JqhAleyaU&qznpwat<i9My!?ZsN3f z?2_ue{YBB+pz3m?tG}aylaE-pXxw&LwrzLmu*#9UFEn%Fx$pD0DK;QlYWT12=%BDO zx%uFxu^mm_0|>D|ldh5*Xytdb^eq%nCgX-*r;81xh*#Z(Bph_l>Dtyg2xDQmJanb= z=wm{RrJ`Kz_D+fp{)e}|b6y%Z01-BhJ8zq@<}{`A-f!sSMnxS-ejc@-ZtzG6iZv^U z9RtFFPr`v?;Xsd8WU#GMC;pMN7$cYC!m+@}hj1r~4*z{gqvMYUZKgNj3NJOqnK-u& zDhX_+f1S!q{*7UIS_o=|d>2YemiA5$IhB%|t6=m_<(b=?B1v0KMv^wd7*>k*DyrM& znb9m5-N5K#<I1FeUvu7!jr77N<U#qg({U?`_YCGo>hdaFu2RjUcfz&K43#%U_bEdo zKNVcIFq40k2hm)a*Jt*TPs~}dhSZtMouSuKND(tzh+G?ThK_3^vYWrX;euADVGtzL zB64kAcdtAqMzL+Rb-=aJVW*Y^_7*g;`Jpkw7#`JJ6#b!Dw>XbXLnvSs8UW~zgv!!z z^zwmpye9rL^>a<8ekW(^_o3lM?nZK{`CSa(9Z~_Lh^Q^Js@Et5GujLwATCv2u<c?Q zH2XlJ;ZRpKQB1mvGzP0X%vejABR>3Nq(dxc_6k$btBQgmr3ffhNKm8&iL|r($vp!S z3T%;uYlv)Wn9)vdI@@R|75g9|MJhLfcEut6w2{Or4JiCn3KI}8`400<s@8I|50F>^ zB$KuCQVd<QskE~+o1enrA@`7m3FIsep#9>s@*YdNQ#Fa(k#hY&(#>$-g`}5GOMG1) zu%AKKF7`HQ?tE$7Am^oPPa@^yRz5Vi%twa#2)aS(Gl;&w*vzMp=TtvWrvGuWpP5He zxsAMjp3OXj%#NRDu>X<eXC6%EflmE(HuGs@KHblg?SBmQGiQ@I-KjU1UA{E#3^JeT z=NaaI<oKC+EA~)^Q-2V{9u52)nLqF68ScDv{aGfUAKsM;4v()TAO4qzxgi??w%}$J zv+KQqb!I`(%6MRRt>Vpn^vU1&S@F01`r>EB-(ZJUmVbkg1KD+l2R_8%K;)kUxy&Si z<?%tlE5Y>cZsBUat+dwadnf24|2y)0M&*Am&$s*XJZIzuMxKw%;qU)%c^;7PW}Es% zdEQT-9534c|H|`x$>D6tjb=%8LdBBkbGs$q?fCE7NyO}KIz6V$NC+cex){Gkka%jb ziXsQPR+3T5GyyB6tkgHlDI`iI>0R9Q^8F2xDtjc};I+!b1_hE1sg#6`k$+aIBcmjL zDk(mbq7@(W9rFY>m);nOa+I**<D@GM2K`~9GjtBJ{5#0<YppDop7Y<za^10iqAagS z%JTg}b4iLUH!Hb^Qe=6hFUuvLdp%k1&wEK(-eLfO?<Z<6BTbW>C(9+0p^j?e%gAzx zU@LBEe`Sx#2>yqp3$|pr=?p4}c?D-M;c51qy;~WWB~%6F{QeVx5%_?afdsCEeia}3 z;@!?2yCtzjZzMMKMwmD1Cq@X^MpUaSDky5m-b$pTeCHV32eVfwFqfJ;XG)M4{}+N> zZ~8DgG(@f+kSfTpA81BLicI$f`MXwvW+3MV8PUea2@*Xi$p6D;KAAkH_?b_T=w$W; zd4tWIMdl%X<`X13nLR;XW-|{ZvnCxgjhrCS$?OU8^KIrFGN0jRK0%_B*%Rc)tRO#& z%%Af!e;)b_Hv#=vLEb4r?yoog2YJq%Ua?y8{4UA!yCl!`v*IpT;QvCNzfC(ld45yk z1R}P#r}JviXQhkJH-BHtTWJ11muJpaqN^_=?6$h?wTH`ZD!<UFU(djD9+iEf_VA>e z#}XrNc2f1-@K54{(dz=C=uGTrD_L2#x$C%62m2bPx4^nkAlCj#`=N=`I-KX1OvDbp zrT8fvA8Pvy@JFu@s6Gq!^XA)vZ2{~=cVNh!h)wUzVt3Hk#-KaQ_+9#j1sv*X$OR@P z<u~2z)Zc^Ds6BjB`OW3kx0YxH?5^}6ltj?c+2wRkGG8&i2KD^a?+>-=!m(9zW9#M} z(~jJ0Uou`;Xy4|Tj9d!hnM37{Y1fNtdHGG%Z3g&CVR!=k#(}{1o;wKH=3O|p`krKS zN?0U^-816(V9fd-lWLJD=ytHI4+T1kpPCpQmR9%Pv9XOFX&T-~;3dkRVauNxj}cqj zr`A{9RNJSPV`~!?`h=lVe+%ESqYs)^onc!QmqV`Qixcq&YfB$dYLI#Ez^jr3p?e?I zooJ7(-IdQmME+Mb7&V<yuoHh-_+dY=AGiqEk0<jQ?Z?x3ZT91tyl(sPTwbsJcrh;x za1?(nFIyk5=|cX>vFIuOx~*Jb$97~d-R`~#e}&o0?S^fPhY%S8t-MrKpJz8fmbtBU z-2sB>SQsN2AKh_M8UY>nLBFfcfx3s4(fMs7%;BX3YmZs3|Cvk5BQH=9QI^4)ZNSob z-7_Y|61x3tP+(i_3GSN32IdhX-x33s3VacJt&?wQf`x-`pDg)4S@M0d<ojgF_sIf4 zOBNuCEF8%e)%}4G{C4oR`1B##d6wN2d^Mh`&QM$Qk!4~o9P2cc(fP&E`n)@!HrwqY zBe!*gv{A`1ZKYI@q5xN(*5}Rj0%H`I?FHC^ug{z51@PZMv_ZQ@2q{MmNfkOxVALn7 zVdAv)5<4n_{TvJU3THtRouFj?xILlhgLw69soTcp1Iu2n<8mr<z6`&z(cnV82-H)` zY|WV&M+vbCZ(=_`dU*rz)7;po%}ufNFishb3R-8ex;Tb_?m>jqiJlig$c4BBb*8#P zE?@O|H417kUu@()mzT|7xrmj@S!f}NV>zo&2M`@}IUu9+VGHy&WH53v%fjqg>H7V? zl#A^92D_`wju?0EROMCRBo>a27!xko;?(I0Jw<W|e8h#}f=x~xx1D3m&mI|8^QL`_ z(@W4j0{n52!8QKrW$fb4OGllT*vRY2-tU~Zw#a#@i<-_`!g=R4{9DF>XB2}yD@f#D z`C5hfNBZd2z~*uD2M>@e40FBPA4Ber5FQ)R8&3&@13MAIY#ihFq&{*QzAV;YXsMgj zU5&(g1{)c0x(RADiVWKE6_ps2DjQ;#guWC{jgO}1xrb$(JY2UU(0({52a(qdX#w4) zvgRGRlE7j19Z0tv%JHX*4d2>vb{7G8R|t5ZV-yeUKEE7m+dz-8IV*N6L)caxa2D(x z3T2<FI~pi)`;CW&dbQBh6?4}X;m8*qybMru`fKL=JnVJBj$DY&c5QKhwN(K34>e5x zg<zOcn3+r$cPJBx&nC?{J``g`GCV_s@#+dXlb5mEU7xp*n5Ni3i~?dh<;ewzi(yjm zsdx-QMeEduJP3j=P86ZE0U*()wo+bIRp@VYSPkCLPo6{V(aYP4-J@n)!ykZh7W~sO zeDkdlFwex{{5+V;&z*VuLxi*S`>kR7ouN;gKH}rCyj*}%_9SOPSvlaTu13|+Giq5$ zbXa;xH2ta)JSBh9SW>W&z2?kT{8Y(H{5Smg4mO%`QLP_FJkT6x!LHeGPChPBZTL*+ zHUno^lc1{URQy`rBEa+UjB%B7@;5nWY;y8jCPmZF1WgcY6k^V>CC(`Pf)w?1p7xvk zoJ)bHq}g5spQRcxpMx^a@-C(utIg0?BfqXV!eanw<shq@FY@nmDR!{AjYJe;*K5*Z zYW7<n6TH0*g?QZ}zHVt#<a!g?P2?&QDT~+a)h4o6pFJkFmpSS=BUu!;M{#onXgjL* z?5;(q=#?KUWrs;IR<n<tQC7JkN4KI`q>=5Yux^C&i0)s6>R#DJ!LDP<-K}V#G^+Z- zHcg9dCTG{%%5y>BY;(=#A(JeWyUkZGUyW1;TbkUJ7<;sOIkrjQ8%-eS9Fr-j5?fGL z&f<}RW0PgH>*985E$`;6J58aHzfig<0m8k`6oX+#9kEV1J!eahzK)5F?xI=84(ewa zVI--VdDxaGlc?NvloTW+RkWSLPsae|S?Ww_bjlI*&Xf*iV(+7T1G3C1Yj(=4q*enq zDzCAW9oz3r*+lOn0Zsepfl95omZ`EvKq!R@Dby^0G|4op!!#?Wd4z42$*FQ#FA(EZ zuDn+)QVt59`*VHJq83o<6m&G*{MYhoL|;=EKSHSzF{e1bwtI~`CUe>+G>xJx73Z`M z5X29hDR`%pzp0#-k!Yn5?Vw&7t<~Ntg|`rXC+L*5&{n!`D(lW!tl`wosjNn4H7OIW z10?XFH7biivsS&L<MSZx98+#t3eUA+Ln%|$29roB(T`13Lz{L(o2)<BvL@epa4mB3 zw~>7vIIrQa%!fG-n>_TO-?*UD)d5}b7*?~alNOoZ6J~7I`R&RoQ9&|$t#9<GxI(2K z^O*M7YO3&tfQV-4g<YcZEoD=K-say2kjkS@t4{#2y6JSEFP12U+%{Gw@OStp28R=z zV<ves{cbwfBp!Q<iq8Gl&lv(zpmO9-&9~SU#Jg>am+Jd%bsW^FQU<~_^cbC1nKR9c zz+!rg&1)0M_ndXKrHiVzz}hJtOE=9D1B3KbnmG%gQ;F-!I@Q!XgU&v}Jc4|4hThl9 zjlNF9Stwr;=bBUyjK09lwgOjEft9iPvZA#ldQtiTJ6&O%z4K%<i)(K3lpXgFbN@o> z7_}sNgLbl<M;bFoZ7PnYzezWxO^l9U1LF`7=jH0BG*iEYC@1p@htvGotGo64*8BU5 zoO#oXDSBV`^b%*@W`t5(w<Od1%CO~qhSTge^BW_&(>j%@)cE0OIP(Uo&?dUN(|TAN zsNG6u|Cd<Fm11Y!yS6rBW*-um8xbl*Z&7qdx9R{o*&jeGCF>T>IopQQVI)15S3|@2 zs<ioqlZF=+o3UIZ13N$ODT}N#lvtz^$b;_b6S?<6sfU4?Z51O0#S-npWRtSBC|h5V zGc0Zjsrrm6RS&<kDZ316$0Q@?tcN49xGSN^nX<jeDSuy-SO<YQcfjY}UA7bq<>YT< z`dnwy1>h4UZx)n|r%<>*<dh$_<wDNscje74a>|aV?sHquv~|BFQ0w)xT0ab`W2<1K zr;W-$pjiMdGKAnpGZ34c{MF7dGR_<MIDnk;CSkAw2$gFDW~I0q=2l@%IbB;sxlf?R z-R}y`K7Fk;2}Y=?h-$VO2&vmsa#1gdKz~Q1`bY%@cFsl(UbX)2F0~d?VdOft61=>g z16^d(3a5Nk0u>35WBXN;SfuMMzF-!EnSx-xHi4|r_GwBd9u(<bvy(oxcMhP^1CV&X z2=T}nr=rS~t#QiOU8~$gyCjpv^j(t#aKB<r4DDD;)l=V5{VSEWPe{BA6!aUlaGz2T zA(kQ@1+g=FIhbmeD+l1{62P@6)JSNF8bb6Ogt#(TnQ5f#PKyN4V}@Yj!;jS<J3n{r zq5xnuA0yi|Qwfx7Du1i4`v~_&U#(fm!ybNtHkfg-6jKwj8e|RgnP|wfLFCyDd3r>i z89BzP|D+i>s`f>r^8~DlQnziOrL7r=9?X>@#bIc=jE~9>h2PqgTqN!^>l~<70W!#4 znzU1SI}KNnL7aQ+P1{O_KV(UvNRLkkC_>2%BG67XW<5a@hxL|(n96hRN3lz7PMX)D z0mfukZuoC=$SG^5tmXgJ%DO{!w+g6)$1zP6Hb_U==?u0MX~M%~9H6-NHz9fpfpy3^ zbf6+<swQBj1MTQd(r2r%$vAYn9lwogIP1N6SziYV>Dn4JcHtxHs?PMVQ(wcv45i$v zf?SGK<m}nb7=O~N516gh$UPmQ=-{iI{4FKZc)V-GPmyk{ZwLQ4jKj(JNcyAKL`FQU zTgOU+kr6+4*XrhuewM?Vg0<cH3gOV}HhO_z0E@!AUY5Wicdc2z#!e%qpJ|H4D+}FC ztYej*n80RRoX7C|7`CFzH(5B|g15ZM77qm!&%Th?qF__(6ex0D8w5MA+sRK#FCxm9 z>Sr5OmbKDQ6KYmyDMiZHnRvdkGgh1icM@+BTlLk*`njpDv1a}tKClnf%)dGiy(SPU z=yjszZdCk^OYt2XsFk{tzjop@OISn8qR6f1WCkPQ&t+QL4SpE+wgj<iw^@=cNhR4P z{C#XfFtACBepdXDY?~pOnnrn%!lO_~L=%8iqEQkkC~CXNxk63cX#s=+ts=x$GC;W` z$<!54S`98=qE^2Nm3ArXPKA<GQhbl1K7&A44@gjGpnIsUae$$bj!non8z+Y53`?Ue zMUnKMi>V9;8bSplp>wi}AXK*7Tm%8$Gi>G40W)&5jS2;}U<nD@1Ont$6PtFPrZ{nx zb6&IC3^B-0kOl`aJp(i)N=@BlA&ES+xydUXXeAoTH0|_w35I$PUUKr^RkpV*7a`f5 z{I?XbMWis?v;kAgDuq6aFzE@xWJpP?fFvb>rTC@8yD~}22mPE03;@QgxvZ{>VL5R` z@ig}KvhU0#vcqua`Pob@hIYe#jAw(}<_$EinWC{FcG}%G=cSIO_)w2KphlD1q^55b zH3DtqX^%C<PbLA_=WRBf?vxjywJ|)Lav2QDR;$)LYdb1`kJy_qE-3ah8W)_OPEIp0 zg7ZUp0kyA`_Dzi5!7*O~g#_xXRV7doXekLa6PZRNr-|D5<2-%=7abF)fH^|p8+1Y# zMj(&?$bwi3p^CT~NtPF!`HPt`x=AwrP~%85CXplGM#OnW6l*;B<`5ZA(nZOcBSghw zX{*_#V4Yn-v$N+8Q@C)rF^jC4Mb}K*0IbECNIu_Y1%M5bgjCJ}gF`Ze)MZr=4s^Ui z)vBAMHjE_0#Jv^aHpZZnE_#$2iogOO0B>)H?oZRvFA3MZdM*Pa6mQdEOIxRud) zD}z4cZ&imD1=@)-5<op_7#bEkZv~mnaJQY>O1}0Oo<Hi<P0FyBK5OUSYFbwQ4j%`_ znd_))i(=revNgn%D>E~UIM*qILS=~C(ap#>di6#=CHLsn8+9x!5G>f>JYIltFyzLp z4a``y)E_W27D2<wI5qz#1fj*UsM9jBG%MLXT|O-Xjm1wfk;wd)4YPtX!*xCF5l?!3 z$0yH&8{^l{2PgWkSca~OT-u{)LF}s4MtPafvlaBI_*FK~@=}jyv(Nn)2t>laqucA6 zY0xn7b~FE$rgAR+^vLfQ?e+yL`i0DvNIQS~BL9EcPS1Vo7>MzI{`xg$$#Hj_%HHSS zJ0-3Zm<pI5WS}K+8^xkoqiF~!Q+F3R%eSZT)1{vd#m(LglaClfa0Nt9@n_6LWL3`2 z#`IfQQny6zOO+Mf`Yr24&1jNV!g5kt_nfwD6ook(Gp%Ms3`-Z3io<Au=peWimM>*O z_ym@bqQEY`$!)V(eQ=HPDPo^8O1sG>1|Bcpr#dX))c`<IkrkwDE&t@#RoTl2R%@dw z3#nQ74xj{~=19SvW%A(XG*!CH9JxbPqG$r%R0iz#1YdQrP$Ekg7?%qiNK;?=dwxCp zz4F2lmH^H+m7??(l>p}YY;R32s6eAM|15I+#ma#7qjEE!Td80>I00prj09WxM&+MH zI&mPuYK6V}pmPNC)zI;HG%Rr%X0mmrj+GLo4S-O=$4-4^jLW3#dSZ}l?2AZr9=V{1 zzIP84xxMuMX&8w|ynudp?ir^T1^QG)exRR?#7;4b?;ptMJ8uFWM937|xqNi3p8sy5 zd)KLZMR7Um8OOA@Z2!s*A!`{70420I>N-M{h^qAz-wZ3DkNm^QEc869l$K5Eh9t>W zTcUGpPovOwGV%p<HW7uK@mE8pE76k8vIrRT=~QEWkwHeCyAG(rwCf|#AfoFn+rL8e zZ7`z$w7`|cON>AvuWB)8oXWJUnqwR@%o?Q&Wk}YmDGZ<T_ep1|Sk4j=8zx*pSd0n7 zB#=~pGC|JEdNPx7hea3nh^e$!ZhZ2byqkhExKeiZDy7PO4^<mY`$A5P)O~O$80akt z><`v$$GozDSDi|xu^uzx5Jt})c^g1kO8uIyPK%6q%AD~Jx^Foz9h7p{v<u009^>hy z?F`oQ5LBPq<bjsQZSrgitP0Nme2~)>1#deGMo^=6nM(aSBe#x8|9^)+B|rrORKY*q z|8xbMkobRXz?1=0Fi;iT@);Ej{$HqIAQhymg1+saZbA0{LIvqmkf92mI<bOaUE?77 zVc7pdB^jZDWzK@HpI8IXhX=K$vRoANxu{WGB)#{<t-|BED1;^_HFExhLGdlyeE$F) zeqy#hM;mob?+pmz=>FJKg|MwX8PDA~3!1oHFUZldqXBQ@?KQKdBSDjKX9hRXa4=Jw zW9S4W(>TnqOQEL-p-d!p<+KaO&esb>Gx;}YWSI9xrCKSWjRd11ve~x5?IcE<&76p; z`=FPj1}8}iBeIuBcb|4@nZX%iKNX;0^d>gEhy9e@a<<oA%sZq?@CzS%0F@G477;#P zaXdR+`_AmTdD@%K+Xd^6u<xdm{LnMIa&S>Z&cWF;%+Bv^ne1>qXEZ&NIwItvgb~w= z?q_09T?lGp%LGwF2xj|1`ih|0G81rZ-92Y^3r%L!8G=%(K!Po|{xfL+>aj<yOZDAI zMa68}VXal-i-uylLm@islH!6kr|v!CL-Vo9qf@+HqC+&<k6DCeu{3x(*)LiQWkoi) zp?a`$C@lGU(qLrw)y74JNxRcO8T$`h9l5nJ9qGGgw|=$<-45racTn*-Xdymi8TM|7 z`>nM?*@No$F<)j2ySdPLsXwq^CoW5afy3=R@aei>`%daRPv2&N^|4)zqPVF#z;&=x zvw5^cfzn2$%Q$Hu(^LKi%8o|E;Yx5Azd0BX-?v>e|DsyL<xTvQb%OFi0sTm!W%@D( z0>QIZXqMs<r2Ua5$h0h~Tn}KNF44D1BBaNG&Vhk4_2j_2cK?Sc|*|uv&irc<1d` z`d$+!pm%wt11ptx0D#&ktM7s6XMrL{^yANZ`hobdIDl=8E)BUmS^pUInzJ9ezdIld zM0d>&*^|?Yr*-J#o6JFbMAGca+{mzn36_w)0X(<8DGuG4e$He4u*NFiXffw)0smID zfq%OwUOq!A^-2SBFmYNUFjHpd{5fD$X}(9dD|PaS;D9sdpQ+;Wzd1l9uc4>Q-c(v8 z>@BL5%U)1^o7C|)`G-~@Sn90NU;+u6YM{dW$$|Ob99SHE;F5Ih&KpjKqa`BhmIYXI z6~Ld2U8mt5{Mq8yeWdrqymt9?>S4dj_`TE}ImcO0bUnHAWzD?1S(NA%2ct!QkOqS+ z-_0JeHTPrCz|pSJM#%>1Ol{QJBZj@O;F#k{6!XTlwy?VmAa<x@d`RK;i&mfp#0*@m zWlbRsDL;9(i80&SUiGCGB`X7boTM3=oEma|WQCt|OiJWzKe8|-vPR$59}e!TJdOS0 z?_?L(?X1xfKrz=YBI<`SQdRB?Im<V^O>j;(Umwp`-WQY*m*C!^A1P6l%SqimUkU8i zE`L)cz9Wk&x}p@zOy$vDN!KBg-=FU+KWeh{5-)2sI<*pG#+z#q%@ZV!?k|6PzDlm6 z>bE^;1m)G*)oY+pbb}TpUD`>)5R0)@!OFJ`q!&C$pD3?3SI8!{F#)OzPgH+Pof?gq z-{d=_EM!zUlcmiAWp+$b6S|cE8ML`{T!}O~)~C;L3E4_8wE<lSSXT~Ho`a70Pv+GK zW}@m`FaKsmVVoTGnDNE%^G~rpOvn+0W3tp3uX^FdmXVOllv6+r@y?V(PWc0=xeLAA zW}~53K6(pHzK<E0+G3z^5_Bm^;E65WDLWW+rW_;FCww|nv>rI@l<h^vv4b_`O(Z7j z!;}LGixzBoFr%;nbfz98Jj<RQVGXyJI%f5S92%oe^BO}gX9~;7a+&r8aJ2yHo1CmW z%-UlknVGLl2FVR=Wldq?2Mjs1m3;BXM@~s&*TI^x`S7=jk3DVdOvKou;bNZvp?Ysm zYtDK?bJhhw_1KHXD95gt*@mIgDJ+Y$Fz^;*u+btB5r$NuwgAfrRyU$ur(ix~Z>(Vf zK|2lz;&Zke`Fh6m3Z<xz;A_S{X4k1eW1e7{1Cc}lO`NmZ$z?Z&4lAf_6&3Zeu;T2x zVgOC1kGvgn(l>&{jDvDSkW2v*op6Nt-|P5JXUaZx`wONGxF(pfBbtdd<bW|7{5oh= zhZuGd)TQl~%(U)F!!L=!M3=BgGuhdA?9><&JdC7xX#}18y|URm<sUm`TL`uD*~uqX z3}zS>ZS*h`ig6vOTtzD^X#pz#o-(pBm$T*JOx3O%&6mdjjn~+mg$r0dY&8{V7EPyo zqgt(oiRotxxPiG4jHq36&qqKNT6`V^x_DVd$Y3gh+A?;G{P)ABP@?=3ies)e9B+5o z6$#su8AHL;PGQBmmCZV^(q7N3y%c#YuLgi79Y30>z;dR%XdSMMVPVD=@ok&Qb7bTb zwk~j?Yb^6Q<y9JTCfrRnYTfH$JLNUQOln|-k1{?33?FMAJpnm7$08@X%|hm@J;F>? zr5P6J%6X&Dv{pp1quUc6s>1`FO;(caz%3=9@#&3!5yK4Vg~XcyU7?XH*8LyF0JPH7 z1xB1p=(_k~Fj0qS=At^BILf!e&7CsFY2JgAA)Kvdk5m33wH*W#&??`7;^yQ(m)8ir zNCAW8m?oUE_d%}_D#VC+KWV99S9{hjC!aA5G@;6rGIg0#{(-u5w*V~ykh)b4M{%dj zWPU-Jovw`NA@D5!0Fb+!GOTrFM+C}ne)$e6+)afaE1G|O@ZFRhK;K1`I-vJH-yib* zfsO0B;3}X|Qze$G3jWQI?S)-O=SW7iQk<E5%T=bLjc+Um@^jHyy_wjuhU!$0JbY$K zb-{IHXhoZ1yZM=kooS`hkj8>6RsYj^2d%=_Uf9@|_M(LWP9TkZI!=8(7r+_UPS#CW zokFbdlu|T`yD=tkP_mEH(@Ss^!RfY<O9FUI(kg1SbzV@0#(5{p(sXwZetnOsIg(_z zw_+jLtqISZFS)(V<Q|Tp<T)dA6`VCjongExbg-zCsZP*J%v6r@AOVM_!QmDrR%7(( zGwHd44{dHgWPs)?*=)XIJ=D<_QlZ}M<`ie}Ql(<y)8R#lZB2P1`0X+?%1-3m9>dy` z@zMdv4?5VDW^<$l15~$u%t5E#>0xKyHWl2axR^?U9}~TTa#paJTa|Bz@~Kf~_gVQ& z@<eBzY3Ww4uphaVWNe6nsFOYhQ0E<avl+kh?qK}ds-UVi+$-TD?2BIYosStg4u#~h zU`syZ?ek(A^C1|EBzbGZ<f5jn%eSMdnVpuQ4REiPUb@OEAqKuz26`ByovBXuoaJhi zuxYI$S3t3XuFGsv3wyz6^y@Xc9Q{9rGW(s=cBLR~#gj1ycC!AoL$B4DvYhe6oCcI` zpkS&*sxit>>%rB-$!B5VY3R=B+&f7;lg}Y%O0!eG+&LX97#(}@?vEJ1*sejc-<h%p zfKqLCAxTJu<?xKLQ#DdV^1~@po=^OAq@oV59dgP(w1a&rJ|<Hcgys;{)D}4rU@KP{ z?kY=xYvCLQjv$b$kESq<kx3ggbS~2#vTMo_0~Zev7ONms0TbQ*fnPo7mF*x?pN+6R zjw~|1hR8U1K+5($RZ?dUtS5UV++y5(s6w%Ty`p8mq)Qh~(UG(nxQ)-V1CfRp8>Wq^ zF@1$E)@-j|aeX`1M4wCbX@rLJj9&;Kj@beWO@U;xp$GEn*fKR4{}3+;{~(rr^RT#> z0>==+l@>x{3Iyl$ddt!%On9=AU2>M@9Xn(~hP_}#lrQ39M(HBBF(B24xn2hqQLc<i z#ej>8&Me^s0~ZYWouN{Zy34vl*<^8>zMip@BpJ0V!DElysEN{eDAI#+qFkP96uC6b z+O!V3Y+k2Qv6F~!q#FILT_sUoPJhy9f8@ZD(yRK4oYS_bqt{8D1@mT`W{gCnt+c^x z<gl{JF_C$RNpB}#xV<bBJHvD3J#ekY1R%tp2<UPd!7+O0zYl2bfM}dmcKiGbt7uX( z-6LQ<37(nCRMUm?NxuBe?gom5WZ2OMr8Yiex`>#!6tZkgh>bSc*s-G<DwWboVridM zt~bEQYiJ8vFMC-M*Hf8HO=xz9@oYgTi$4u-UNB?tDaZ&72Mex7WEHC_Xcbv~d40xS z3w7ZWU_5f#sgr+GykS-<<e&#zKIoVfvZ7F^sE~!<2#<haC$U{<7}@}^)6tX;ify*V z#3?F925cBYPH7Z-M-5v=!&q&a*74(&F$08Qi5D1=kYkEGGhid}vM{4}x;7qPZL&s* z*H71Iu~}pQm`0eE+69oXp~QA@#Kz+{f=v%Lu1wqi4}0$dUR8DG|8qjPS?CT|snwcx zVjCQ6p;J22kq!q=^u(T6+M*@{tpSuvbxdSHsbeuTiDnm$@~cem7uwosXU5;a%s82L z>a-_Z!o{jdkc-AkKrT5TCZHnM<p24;YwvRsgtj>TpLzbze|#io@3q%@*Sl`-de?hf znxG*_%_4fObhl84DKFixhU^ulvSC8);r8!rbILUiVEi&)=1F0xhyq34X?1KUFJ!`^ zP${FE3PFL?ahk@ctmswVCX2a%{p26DnL*+(p&HV*vS<0i3N1Y;^e}KNV+ECV@$aax zQ%vCsI;>Pom*j1*=S(Jv-)42m%<_l;Ggp{ZO#FkI%vwLq%77rF%(P1=w+dk?OAo3J zjtOPYvQi{I#2yYa$uf+3WksgJ?>(V4i+)EzI|`_FJH_d!%cM3g16*j$<Bo))NCk^| z-RddagJa%lwhuFAQ*;H#l$49-!~9wS8u0MNdG{^-fym<P%bdS~hb|sqOEBrWT7Tw? zFQS;(M7jF9B_s!4K2F2Ac~`W$?RZh7F<Sk~fa{YZzUI~Z;81rrL7k=*&%rbxZ{&`{ zT3`%E8zaiYg~)+5*59{rR2-Gq@?4m)jugY)CD(bH+OapbeEKeXI;K|wzBd%{KkEKC zF`02`!fqiirYJ|)IxrKk<#`Pm<rx^dD;tmtqdcxhjO>=+m9Io2N1~Ba(dKj%DX~dd zB_3uhU*WB+OMi}1v~+{jtsHGdk)~*KyB^z>akqUIaWf%gPcd<W#KdH2i`6YWO*Z7j zjPU{Tb_=j@f-~SrRhNpr>*yx`mEHQVk*885(FisHaf%#c10={nbeB|>()Y&drkv?f z8mwe43=1NN4uncZu|%qy(nZ2poPAPNymUv=DLwpc<iqLKwE16x*o!93N5ucfjG#hQ zr!>gf6>9sCR%QBQ=%7*HWSpsXkK}kDXDUfq<^NaW?}(!)(Z&=*X#?+Xj)2J#8zDdD z(Ihy(l-W!|eqvN41&fp|eR%et)*`&B^w347f6;~}aQQ03X9eCBLDGNbOV!B7X?(<= z&(u4_NhU?|V1*{^rLdufwWP=Vr#a75;V?Dl;6<joN%+T0`~yXb;&sOFAPBUR4--YB z8#T^1hueH#jKn(ct7ZgLf{;4zug#q*pQkTMLG!q6ay&S>O?5ZAmu(*cc}_<{9#DpV zN%D)>0DYELkVu5u%S)1jKcGx%d`U9a4{`pk5=?_0Sywy}_4p&}VuM<UtynVV`Qqx6 zM9liuy66X6N+ve)rNlC%VuRMjKG;$`5m%E(Qt^pT;*J#^v^iF@j*ui^P^`SEgwo9& zYZ7VI-AKM)o(P9rxF7WfVf;({cCYamzSD$YJT4i~YVeUXL^dP|A}^~;H6t#2Dh+>3 z){K0x@XheGiZT>2lany5($Ze%FgQF+DklkYG~wTX1jwN)?EDUaeNsM5YgGUQQv8}S zt5P*9SCxCf-++hg{SJtk$MJ7I;_C)kurN>+<w{wCG2y|gcy)UfwKYn7OkzAml|gKy zD~4KIHcFyBe>It2^cr6^PpSQ0;|p~p?DiU;c~QdFDkhvtw|R{R>V&5DX%c2vNv^fp zz5JD6AjoRmDj*dvcw^Y|d2Ojvou6Onjgdt@k7ze4KA+;x^=)+4^L6Ce^P=Th3xpHA zK9B7}<2qMP;^7#FBMM@mNUA`(>=?u}o&+B!r-GQ9pHsyZSGP-S<M8012YYG<fGhGz z2Tto=sFDj|bj1)QAyn3RwM(}0U0te)89<|ycfz3qItySu5C6rnp<>eWB!JVSfrPYG zdyp$N;kU|5@%s$l)=6uE_du2ixYt#W1iux5jWKDH>Xa=5<X*jHD&#v`AGxc95SeH2 z*{W|-0;P1IshAW~DH?J-Q^BP18L)z;k0)t^LTDhq0tBMZ0OkPY1d2qQYV%wBdm@z9 z8_7qqp!a7o7-&99zTV1#)Adm!-wnw;<}p}z>Fb*gTN%y^<DUdzPwSg`kyyV>`nu9V z)>IZRx;km5gb5Xs{yJMRM&hLO7^%<c8~9wrpQapPj2~IIrbo(k70yQ{@tX7z%V{Im zdRSO>Q4Ik=fENy3uET<{vd;ob<2YUS7>c%i*2-Y|Q8=_44<zD3VbZV3B)}8?RS#;a zWOi$X5vf;vU#U86c@=jsYck_m<BB=&hVAN)J#1xxgdHf7g4<x5gPQ9mc4JsM9OSe- z0s2aSJHBOAL46uwD@{dB!f(R+sR+m%9&M;x_dT1VTrUFSP|#}R&Tit61}oJ%>6N`g zyka_%P-jj?Zrm7Ll@#7CVV~OlpOz7SF4m_xDvJGU-L5~9Rk7-vf1q1XUSUR}ju5<1 z;+rnGS-NZ`_|Zbdec;Fgrc4Y6{$bEgq_(XbohYya6*f--(?*-ght$tmrop6=0f{WY zG%uadn>HZd&B)WYB7f9^gFT%E*SbJO#OAPUW*O9A%?$bJE9$qhmsNv<eALAGD$of^ z>(qGK;;@$Ii`>_skEM9Pn8#)XlK)a@SZ}HM+Xd5%o(&CLJ5uvMrCzn5(pmtgJI~Nc zX@D`K+lnFq31__1##EaP2&VYg#y@Es+Py;c6C8ZmHt>;9KIkaK)=f4M0EJ9Q*a}lD zUSZ<t5*?2@$<08*F$+$5L7U3D?vT&yEP=%2YrzJ<@8?-Iesq4}CV&a^yY@)7gg6>_ zub}7#98S;%5*0W{1IaDTi*ErevON11AW)IHp!4h-PkEZF)9~pQZ|LXn>f@TcQzpc9 zyiOeEtq)CRGl5qxw;dB+-R+^IXb&w;&g>_v!U)WZ+e{JePU8c@-TN-Wzy<vqZ~h9K zBmQRI^>s``@^jrJYAC8tBIF%}kQbMN>yx?0+u;{JAVDlV&O{6C*!?Lz{?#}U7IDF| zMPeic<53ogOBasj__g$e9`BWw)f{zu<}wk<!a}AILO#(8%bKtEV2QAx<Tq1cu2%Qz zs55)N{>UI>sRf%0sH3yXL*i(JffCy8W=k(RTm1A=iG6kE=8GK|Hz{$6jz=KGpGE^X zT3E_^szNp$OPAy$Y7F)zpveYxw&7e^=+0rlG%p-QR@%Yd&pB`8584<*T7ZX;U`!sT zQabg_79YQ~(l9ZpbSv5|L~ELxs#2n5+!CeUWtTU^tWq6e`D6!2h^4DD++&>_tV$p( zi?h}>@mNgs%sdr)d8%19itE6E2VpriE!;88j?H`$`GRcfyFTpH2Xw8&pKwxointv> zg;y1<re50Ym=`)<D^_?I5tP~zD9{M4Y7q<45sZl_<Iu=CJH=C28I9i7JIk}~)v!>x zX8zpSBz#o1!OBv3O+gh{IKTigl26CBDwtuHDl~sZp6EwN9v;40@krpbt~Fq%U$Ozy zXn>_52%MmHinpm9d-S1At#)D+;U@V#4xfD3t!nf{4a)3#CndZ<|5>?)A%H=yobQ${ zKs4PQ5X$eNl+zKodIV`triZKwtNT`l%PLl#ssw3UCP78-+^tgT>t2Y3{neI5hs<Gn zY{?i{DJ5JRSNBA3xBAZTv0iTrhFsmH64ZtwBE-vH+s;O#H-H{!7yw#tniOlj0oa>? zXMNkFav^U0)#kDUBmJyeFUN8OwN$oSBaP>xjdY5}Xr%YN;6_?C*l-^eFlk)OBehj$ zc811gu^V2-7>KX9I(v7oO}#dClllQkxOIjESHX-7k{euCSYcpoa9I&TH8_mHphcBP ze$i`Q7>lQwm>m(RBM^yKsn&3un`|_Kc@d&wX_Z3TR*jq5w%DvXkdZI4n<x&zG;0R4 zmCy@b7u)*`TdXD^Me(m1gHBVp1(Sw%H95=-9e}gUyRaQYyEs|X+#4nvd{oeashq2V z^8}u<64KFSM`e)U6f@WxPNNiix;9sNDfgS&dXWT!BF)2ycp#sHLe_ub2CsA{49hU7 ze&rlV_@q+lBJLCuupSW#y;Rs~15pl03Yo=$ylU@k_OKL?C~xV6z0Yg2R`7-jGSggd z)=}CxYn@{qc0%IO5t7g-k>OEbBi1n>Em<HxazKE`iIz?RCB$jGIO@XuE8EXIx+fSc zx&)n2=_~4t%Wk72x!<A<$XR(pVS!UY44E<5X#P8KtJ}0Jgdrb>Ntrt91wdYr3jn>) zHHAlA{|W<=FvsVQ<WBRPvHlogiH(o;4inF=pL-oUR6n}6a09(}48TArYef8H8+^Y_ z&#CY64q>XKWc%932B&PDx>xQ>M(rA49je@iM!<+L;K2nFUfFR<+mycIJ_kzZRG2(D z#nUWN)mfeVk%EdZ`pi2^m*Fg1rv}L4Ujo<TLV}1N@^D~(6rS{(KB(3GE(Jd0sCRl$ zj-O5@Om}Ao^<-u=?Vu*3ws~);c0w#7u6}*)wcd_T5Kjy#DIR5cw27dog!8r_{nzPr zj<YP%9fs4G<P(0j%LJy*^nwIfEM*(Bt$55fvp+0aK4K>hjXQG@hPKdQMau{8C|Vxd zkxPXgC>09dk`Pn}pAI?Z;pr7!w$FYdPsRK#p*LT;h?wv0LoC9}c8Nk8(s(-VlQSP( zaOHF62<DvoV#qnIyo9J>lDT`nZpBfI;A2G}z8C<|MHrE^ydBf#?U=$66t1`oAtvUu z^yq#@`v|>SCIvb+JCrr&(EWOac%US(6*YDP63V*V;aGD9&SS%!!`QRl!=1=0Er?b$ z87t^^S0q)ZB1p~TI3_1P%`dLV;JU^zkkSUle3H4V-G{KBs7}2dBl7~s$PwyajmYqw z2t}M<<Tpc++j;yW<tKZVe`GV=>iX;a{*lN85i#Q*nNO2ZaOK^Gs8F`7)>}8q)Rj~j zwW8ZH{c+$tR|Gk9Zo_@GnDS_qMIh81+Zgwqcu-#?SH(|q9KGTEBpXT8+r-dMvIx07 zX-%YsV%jJ-w4HICij-C$5`IUKzt8&C4<xj97Zuzl<-+wW0jgxW<~-SN3*JX(5QvWY z)Y&%hmuyE`i}R!|cayZ2hF3~PYL1im-EkH<+o=+Pspx=eQVkX!>OTfE#B-jal4vit zO2WE5MPBYCxuGFyx8)MSpIpV>4O_6gy(lpeCHW)VZM2TdkK*_x40<j;@fk~j;y;3b zv>{r9N%YOYmxDT&F(k$`#O+#<siXnw*R;A10_7L0&mb9HVv^BUqq_SQt$*I6=bnXx zV2!J|=}6JNF^}0+g-tL)!*jjHZc){We(T7lhe=z4{K}XIXmm%;L>JlsHI@m`gvI1R ztof*oUTDCpSx$yDA5fU6WMBi_Y4{b&*nQ|@&NMLi(#99yT{TkhoHSMCs5upU`AqPI z!LcuQ$n>FNDE}59Gfh|VP`sKyvr<BSPhjj@)&^8)Eta~<xmMqv(;soZ7HX(9WyZOI zsV}i;Ak$J0%Y?UadmSYua9zMTyzwdCUX+@=LYCID(M91e17i2GuxThyU6SZj95e~l z!tFy15+W2eWvy#UP}s5}Y8i@TMtzBdhCHj42LKA0Vm3GS#{o6l5sYC1upJa6@Rl@U ztr++t2VAMbAS06q%zxNjUUC@GRs*Q`RAvtGw9*ywp-U#nurK5lldy36AZ0OWnKa8F zrX-jfLg0d4m1+PQre3WCbHXmPB>=gwS!SDEl5PdosRmrO2TolG91wniiLnR3iW6o{ zUIcRw1`<kAEoeOL0IIY{6d2k7$iU`?3e0R-pbFWQg^lbLgekyLQ<h06@)9Bvuk;14 z@K$jod+gC2M%ZleY9#82ViA?@21>&ATKU3>MXo@2BKx+z@JZq?7D!+s`I|GzbOktZ z&H^~5b=2>wEZfh9;Rb*N3`0ZMyvfXWH`|LTg|K^M4_6$m>4Z`+md)x@qUwJZ4&xc^ z?xtatirU%8{!TdPM1YYf*)o!YSwhK)e#l{*d@J%O6u;g)!%>To64=`yb#x1`jMy+6 zuJwj~A_w&zIN+vIw%ZIXFsy(vbY|O<D^Wy~R)K9Wd=Sf7svu7Y%ARw*D4~u7JXD7Z zs{(hJ73-`9bu1C=-04|x!nui=(o<@7*$YmJw#`_c85*|j7WhokG`?w!kP(_FNy0qU zODzjXGf|REP2|d}2+^kzLvRyPE_WcMxXO)-5q1+J3YzEWk}nm!qeP<Oj`CFR77r-# z5*-vJ^e_5C_7tT#5_5g>nj9{F>vL>95~ai^5GB1d=IL1ST8smaBRBe;LXx8LYNI&r zsu+ha{WJdEZbGA}c|88DWIi|*c(Y~I^O<qH&4!jNz1;*b*p%7T0?5ah{$hz|pV1%L z2i=}enuIQtXNAx1&<8lZrGI-hrO=3bv!CJLCQ>F1e+F`G_J&v+k&2rsiwF%ztL)>t zoRQs7jHzVXfSie3TKpO<%RyGlX5q9+;lN^1hY*_bri1-ZW}`dU+ZckAoxh)S<v2A^ zD_JGRR{WygMXH!SEYY1qy&2EQUX8U=A(O93w?8esdsN6&;_WQx8AL<0TwSVTkeXt# zV??O->iE(G0!)d8&4XA!W*tXuPxY$BH7ir{>{882uufo}^=Oo9<-(l+?)HYmpQ{N= zp0b^?)!e`_Trj#z)GODH)|Z(}!%p#L)Kvaa7PJT4n<9*d?KC=dEyZl7>}Ak411~Jq zpmOb;KUAP!f$D$;LqrcNFN9Z?yppQ6V&gUp`ed6B;$YTZHs2xElT4+s>OG@2K})fv zI>SP64g$hWE)k97<J)VP>(L}9_CiI^8pJ?!#$kR>ImD;wh=TbVDTw1Fvd0Y2!}`wI zYB*UJqVY1N9;8L5bj*24IH!OdoaZ%2UK!NkxRBxy%qa(x7oN94Kyh;hHj=hV`Dk(Y z#Xj2A#xLxV^Pk62L%|!MkemyTP#fIM(jl!+(os6<Nc@RSjMr+0a1)0A&gR((C`Gn~ zT15lNcltGilVdN^tmDjDh<&7tCx*$0jE%}1!Dat2OcWJX7h^LHx#b)ZK*9P46CELs z=0V@Fu{3n0o5SKoM$llwfgIkslR6QI(qjP0r~zegb~*r}lOTPq2zePm<YltasrFFG z*8{-TXZp?p>Cw4ThABcKC(ED?5MUqm=3$E1v!MgIHg)&$h@*7z$TP)}t=0Q++0OqM zJmnl`8=dfx8|3wSY^xpooB&a(bJ4lPm`#Z>jdB0f+?CfYAG~hr@&tx27>1ZzS%*xY zu%_!cM%0>ECR|b&*X9&SI;|1YcW5>!(kYAeyCn!o!~I!UykPLsaA*(*G<g$VDMKWh zPv0<k%hGyK7@JbqGqWE=a-toRWHW|gRP0ou-^~;qi@EIBE!>A&#sAmV4em>D;QnkA z&I9q2g!oVh;^Y@~D)<de>;pf(tB4zBy&D>1b%QUtKKY59;z+7)@Msx#=v<)a+v4_- z3WRQoYo4&v%4GHr+Rte8jshZehDu&wG!TEYJCHCOarTqEavT*|7VdC1S*Ntpd|Ig! zS~&+5ozCo(rf@Hodc^@C@T`-XPHbpraAnjH4IjjzI_KD_h4XAq`qf|ChS~3NiiE@M zOl{m0_=Dpe2676=yVasH1>^0)6)~FU81L5qSI0Yt@fKT<9q;seIHs?p(<W@*L<ciA zVv)w{aDA4TLv~(8%P&1kzA*y%Mxuv&1LaZ7Z-w+A;CRIeINF?mgTPeV!tUr5>Wcg< z1tK5x40g4vS70j(`6U2kYypVHcaqqr?Da6>m5X-uV)&8ZPdx)&nKN*cn-=dt#6c*W zk<1+va@6Gx&B!=(uX*}Xq8MfUF7x``-*}Phz%cwWEL1+7s<`>fb9WLM%;ZA|ET2R^ z)Pj7d#pFY96@?vsL(qL{Chc@0AwqqHvBC7X-hI=fbseH1*KYau_7V*3vXY`SnU0|o zhzbr6Qq?VlRSP;a6(NRtC=-&P_sZSsVv7c54$|j{4JPkn^ZI37@uYn!6F4o1C8W@4 zJz@#%@E(3s-S+C^>b4q)jFTCdfFvswO7DKH_xEXZA>oG7KmK=J{DNWEHdf^LW9jGq z6RPERroRc<(a}h;?uZy)wvO{XzC|l}rDIX0x`%f;m{0o1KX)jCi_Q`VQa&<_%Fhl& zJ`T)dK7q(%=MF^vr46jSOdxVaA0KD5vtq(@eeoR!-YfceIUqx!+4-W6t3!K4AJ6AC z4z-r7=seNKi^d;QZB+md?CFND7uCI{DVX13{PDqgCK0+tg!r=%*u49p#(DEbGiUG& z*WX(p#>hKFOw7<rA`=&Xd_Kl^k`bv1Ix<Lr5yT(Aq(_|b2E`x0hP=he+{?ps;*y)e zTLI}V{`mX3cH!;u$60x_l8QqbhD>HP^@LHyH*wSDC7_7~+FBtN#2>Fz60T1@a)$B8 z%g>5G{#{M4v*M4}D-F}Je9Aj}Lu4hF@K1uj$q<dnJkL(?=iW|>KYos&<1p=&-JEj5 z$m8Caz|e=_wk`sB8~j<X2;{4odP-|w4dlrJu-D>@Hz^$r_-cK0(Z<_^o}F7{rY>6; zKJBt{;+BGt<T3+W8vqT$j_b4}$-QZ;Tl=kO5F1$;1|8>!B?$%wQEv}F-X=gCT;Rve zsArd65EStOXKzMRsEb-hPBf4%{<x_Ej**ImMG${{<oop9N`S?i&WW`3s=lO}`>3jy z5jaX;WF?a9WFn8l&gvXSUHma!v5P!j3Gg8DxX$ur9GhVoycuF|O|G>QpqLH-`HVgU z;m6@HtqnSJ&<-HdAUHkOAPbNMdrh*AC9YG#Fw@j;*Gb`oBy)86lhS9j$4beZ&tAzy zP9$-Kprphhm!@bu4_6G=gW^HE-${M#mu8STV52Fzh4uhHMG<5pHV;TWt(p)DA$lQ< zD(KmbR+6BFk+p+Z+^ZQf_$0MUTEt8wa)sSS00o7I0T0>iw+ABEQMmQ81-})hV#KX; zbneusU-3ChZ=E#JehG)#b2_|2GiDY{13#;sIC(CECXXx%G#`j-8+;C8lDF}`jph<F zsSsA*#U(%Z8&&Tj*;-d1AF=SRfgKq=lQqNG1!%1O8PSR%|Du8>OtH>OY5ICy$XXB( z$|>9yhSZyQssq@h1K?@Bq@Gcq+epHo&#=~oGv6i(=Rp^1oaN`Hj(P>LNH|A=&&2I@ z9t-*iNKUq`43&#XKExUa9Nh;VHdILOb_2gb&tXjRw*PVsVkj;A_{e911ZJq(q(qBH zu0GtRaYwX7OUx6F5kxd{?wI8F2o6`sA#r-bF*spN@_s=~a&0v|8A(TkwLLhxt0zZp zi<4t}#3Wy>nB>mL+TR6Bx)OqFrb-r!yl;OfcGgCzS2S`(AO~tDBsm?SXyi~iB7;lu zD3i=eqLK5r#hzVg@ZeGf7RYH>o~3`H?*u8wItRfdR4rw(%)cP-4a|2mDU@xhjERVI z&as)53hP7Ma-}>QL_6p4d3|&uM13I~IkFqMw^z396QUz$Jz>LBxyx$1!{on;S57vj zrHSY9m$WT~LVRFoRUXru)tZ~2ESVK~CTrV4ZfxcpfpA)Nw<#M^tygq5m%y0vlrpzt zEs4MoOGP#InpMhW1gJwe_Iv8r(hQF{q_U!YxV2)#q08;M+8AG_$<xgrd?R?d>=m@h zI7t~w2bQ=<T5F2gwmyS}oMxdxh7^#b|Ic)k<VHr-W}sBoSr?IsRvv<3b8EcfB2W@Y zo9fx<<q#++2D^;`vzAjOI67WjH7Y!GD_R2OJ3Ey5hX2%d;zF4N0cp7EV4b^ljT>hW zsE$+(0+GRyXIOX<Y4B;EyRab>q`XV6wynF=iy6YxB?(OcS_HzyFt^C(gdz-Lm>Z%h zDs0;YM2*BPF$l6vgo<on^AHE5G#vh^3n_`piQ+rEY}dKLEDGb9XFEgLR4!vwd{$)h z$9^T-^LG&0+}i;;r@1n;wLUv{Ky!V>n>5=?*7AV(_n0~~ltuB!gf_Phqgg?Gb7@tA z_~xp`X)0}sF={BcHH^EsOqybfbS@(RLK59k#6GA=T@gebw<Sg%dF;8!=Qht)Gc&`1 zkv@%24D0qB<eEtL%_&gAvdeD!C6iXO52z-cFcD~=c~gj!l=>lv)vkQXY_>NC?L&_a zQYWC}k+78Ahgrvpmh#HYmCagJx+5S27IX(+$s%s!tdQoGv&W3mqGZ4obR1JY%2+^j znS8RnGH;B_GL4zNHmSW$*euV0Yr#~2wtnS5Y|3m_?i2|a49br#5LB8;O9RP6#*+`Q z@?OIlM0=$=+(ppT_gVT50UpRU(=c}`Q5Iuf&HbF^lDY4vM8{tIsp%J_6@8$8*a!Gx znk0APV@nvo9C7B$@D>}wVBDC>{vCscKqL2C2@7iOgBu5RJEyqgb<_nmFR~!pnHR)i zVHD~j0+DCpbca!>&GAeY2`;j^D;=D)UkDO)s@_fMAcl2NRNxfK9KleEvw7~fh{s3N zZjS2;-p%H`p3^x^Rs3dp5*T*mHYYechD*Yi*RM}KVlKw+?dS2jtVu#qBsn#rK;{$J zqPY*)dMxOqj)a1CTi;qARyXv$Zh7MJf!8gcdC9=|oGl139;V;E9`h-O)k=~7oRd;S zgP+J2zrj5s!o=q<NVk{g%#6jt7fV>7s>zBxC#q8FC$DUmOHq>>90Z9f1jXb&xa`(H z8Cb6DmV+Q?vnR>tBAma9af|xql}u;R7Z)hFs4L1b!6350qQ1$gIqImv%r5H~&T;)T zztmfA4`)7A;mql-|8IsfXYnHWV{)Bm{^Vx5#lo3a(I<#xh-SXZNq<|s8pUmlqyoXO zqM3g-Fxr{tjCM3dzxZz%tDSc@n)!91wT{FOCiO)oVU$+#;If+oS@1d5#vhDkK906V zs~dwz=CO%vA*6T@rx8=d{Y_?ybC!*cVwX#jLpby3dBT@h|17Y;+05O56z>FPAbR=s zzex1r!k6c1Wyj6xM$xVF%4uibl6<93F0k<Bw^F`%&PL?+zoJG2EAGlYU@3HYb0V_G z!b2X%Hip~j`dX|`GRs_uxaC1$^XK^r;C}x_)!ESHgE=U4a2oHxEP$9!%VSND;6gYN z#V+5f@a2D0?D8XjD0aD=;w@(R8w{1q(WJ+CS7Mi6ecssRkGXk!*sD45)8DJLxIk@1 z>zd5qy+duq#I>faKvR*4U7r3+aKu|ydzAhw_FKoN68@p|N1wKIX<YPQdcjX5I*l=y zT5TQRVgmh892abJ$fJA8^HXf3Z<9wK`ftjkB}4v$0%@rAt67P(_Qvx_q}ec-7H%)p z+_*rpelB_RM8wg@B#s^%oLQ&Qxe_xEB-o^sLMh%6G$R^K@2j_N*3m})CH(#4Q|YEv zwt}N3jV<CXNV9tz<vffp`<s8p;#Xepg}W0zmOh0CwR9TNePiB;15SQu@{Wqj#*i~y zwR|Mx^@#R(!|wh?-YCp(Dki*-?>r;#A0_*!A;r8)nwJ8TxWv4i!z(TuPO3PrNtf7X z_C}@vQcmHlba}ZCb!I4fB^n#1XH|UU!O1pEXxgL{ayk(SV#UHhf|&;^wr@2F^C1cn z>{PyJZ#v`Y^jNvwUORbu)1Fe^7}+#&bls?X2`L6Q&B?3sjJ;YpWKorG+H0pWzA2YV z)cSCp#tQ1J)^4>?$8J@m!y(3GFs*HTYcS0`QA}u%9UEn#Mc6!Xx@OS?R|+e!0ka5x z_F>usFolWXnsxrbjMEM?Yf>=zF4+{w#;Mhg$_HFkUYGoey14TVBLGEQK~^NA3z=Ja zg@pAH=)Gn~RraD7d7_U2=QY9U@Z=bVm%t28r`#{5Xy+CyUY9{Be!QZtD6EsxU93vE zAaKCs4;p<A?m@Dg#0a}V%|l5>AXcHi<y7eE7uHk>PR>S6xjP(A#59yR2~pk)$|Q#> zV%!s&kGLkzvPiaZROxE7mm^9EYg4@TY&~+vOfg5SuAl}u_l-Tl@1_7!D=gvQ`KkM< zo@P>#J}X$pg6C)iMk)(rIwfN!(vZ`6^O#GrWAcVh>5R*SX$e=)vo*QN8uL@4Y;IcX z$<1gCxyj<DvA+&ghnX<xXb{Y2Bo%F7U7WmTdh}QdRsWy<K$luHj%iHZ<Sx3qlY>Rp zj%kEWGSU+)z1IwxW}9qjp%%gGjAJDZzQ}ZTnzZMLBsMy7RlcD~UHP(I+4j23KIr15 z6Tb3~tW3;5)U^^Bk)GDOT|8!&X-WwAk`AKlp%Ib>bzw0+VlRa+OQ<j<G+`^BZewa! z9%FvBt|wQk$zdcSShx+#roskq#3l}65DH@X>liwSH|zn+h?P_-7xSf8J@pTOV|kpB z80W-XOzltchwJ$)jVH5KIgwaC<lmH&@6zZZHUOLjT6!5ub`lCDGySDJ6sr84x=7&^ zFE8tbpq8cXMR@b_vKk;i^i~DyAP6LNn+QmP6dFzi*(_GoHrZOab{KZCU>Qhg)oK{I znyl$+rNZ`bMN(LmwT4x@Q}~=@Dz-2cwG4I&6?qP9(}NDW_OOekAU8G(KRJs6nAp+N zcw<QV%<1$Le<~!71zq4O_6@I8W7-diWLmK7QVq{)HppPlmaK%|3Ki95hNjzuj>&H# zDq+@HavH&_6g<?A0C-ZEu{^ixBu}tN`;`@z>{4;K*Yf8J54?~9r!8O8E+$bAB!B@) z6FmUQeRL50qhgX`Ieo<j)ydgCqKQYKN)v|Y^dAU<jd?a%KLj6HFvJ5ItJ6B3!%WSQ zcm13hVzj>%o^9!nf3bJ1-|)<?JIJ{4NMaSYB&+u$Te;>sujaAuDC{6YCm5ID#Bhv| zZV4>f+t_x+Zi>sCnjG<$i8)(2yFY}H%|p4@CofI1jLlB5aoPS}RtBAZqt1#A?L+w> zUkRP2F=&*njXRO+UZ_spn$s?;8eN2QWv6i!iYJ3ohJP3rn%gyJA&Y?BNTxDohg^sA zhWzO7jWdHb=v_COIJ<xW;o;~yu1e57VeMXW>$l+!*7b#H{s00DGlrps_;a|se~8{4 zT|VNQ;c+>8uhRwI=mc(d^$(H(7Zm5*SN{a<&^!b2w>99p%&GUfzA?MUE2^so`qKtA z0J7&AU}Lg;`a>gN{rx6)(huY#7mhbJW)Ala^a~@7oqQR>G8+TEALRKE*k;CH`#Dk1 zoJ_Clm%i~^-QD9`()WB52NZwbc$nn$e;hC_%{&e83BVzNU@niLW?(=sd-~Cf`uH+J zezC-FV`yZae6Zo5c(fP9qls5@?AV@M-9<f(b$!`aD8#9X$05JrQ5tQ{S+QuOP53ft z8CELf(^T#*K8U9?J`RdDsgeYXDw5&F$R;zxfNj%L=yn_OXuVi7nfZ!6gDwT^mz129 zPZ|H!rpJx;=$I>eOtCum1^igR#%0+tt?%stI|dlz#w34)mmv6wM78YL&_MW)fG=~l zq2j${9dCN7fGLx8KaR8z7&sOe%eX?8acET>SBAb7_O=ysM#q@}Tp`G@*Ru*8Yvz^8 z-IxTpv4B4l3AT4tNgZNiXjRv4$DxUdGxJ(wmBgeOhxQ62keX19Y3G*dsBvd32*d-w zhdm>28w4-IpB)e~FAGmJk^z6_G?d0K8Ai~{kYU=Z%8W5nFDMjs$d|RAgD)eN06Rdb z6bg`L)5VAlvua?MWXkB+GWt4OLr<2BO-RjTBKBa(+_;?0kp&gOe*Lj5nZnHyq@c;G zy}u_<=9~2Kzr&IpYk(uWv9r6|e>%&Mjp@OVu`H!Jnegc!%Z+k`ZuJm@_W6PQxjv6S zQ;a{mg!%hC!zBeD3>Hjw<#Wa|9Wt#NU0Aux-eKQN8OOUtYLSA>_%rT_W@zEajV+PU zdF2*O7__hK_^{*bsIH4&RuS=cmwjh7`yd-<16<Qr^$Y}aI<X);`<e3us~e$UJb?{4 z%+h{(-#JYFg-WnTzp6i~rHf!eg%}QxaEzUNI>ZURh(m<!;0=0UTbdyjkf8$&)2y)u zn3L2kHU(=6FjA5>e2@;Hh|e-5Bn6qs=JzfZ)a94z9ab{Pi@%AhF{P}WRM1+hnKqGw z*-JBwfg)OoePmQZMoJ?6fQP~;8e3%JaGn#sED+cuL)Ec0FjR0qQlP-yInKy&Ydv`> zCNR8|xMZM(C9KnUWg2I=AIMYBvxh|=z@xMmLq#65E9j(I#!nq1K|GapoHXE$r*bVf zUd>^o4stW#CAD3=lhDqnSn>H5Q{`yf#`Ew}Zftt+Qdj)2H!pRYz5j8%)TM{t&P$1b z3Yn?j&q$^Gr{Bg%aZQMBAnnaaopsyj*^CsiZP>4|GX5iZsW1HCkLRU6^=fx_atgdu z;@rH{w^2+y;BO6tk(s+_W07^vmbBqukIOOF+4YL<W<}loxsJ;*4?2d>yYeXbzuT;o zv4i*E$QfNe-B>B6nkf;QQ5ifW**MbFCJ9qHqK0;#=Vqsl^pL3aa$FS~C<&SPCkav2 z226EI-yt8h<zR2I;^-FRtDYwYp$KP3yrJW2yeV0<OS|>VwL<A9ntPY|E-;FHVgc?P zza_o-NpWNc;Kv?>%>NRpY<If)A!L<f@T7*&d-W>{ZsFJ5_a@r|DWBybeJgNX(U(pz z4T_wY`#W!)2(F8=tEtXx*BT(at_}xdnu}^%yoWvreD0t^)@?HHB1|xm3{2z1Q9Q?D zZT0)@cVXX1D<>`X_DiX%NM@(0)rq6mrBn)^*ZWecm86{iQYr;vkDupKD!Z`CT}tH? z3qq)p0=;ztHQ!Nq!x5RAsY?83P0l;Mh4yjv8wJ=C^6o3h*UudVTvIi;K##W;z#wA{ zDgA=WVaYQK*gKH`igV>qo;SUKh@4yWlqeXXe2WT3J4h%TC~mIG#yY=Ga+1d__7I&j z&Xfx~)Ibu|F^Eh_cXv<yMrcV~qiWa)ab`neBUD2B-yZi#DJtucYnM;&eV-Jb+Q%^c zR>;t(|GGsD-G&-az7JQPvbdqTrq{&{jYilh$xFb{=0gMwr8#z))G1a&aG?}(0?ri} zbtsM}fjDE4mh6R6@E9_1EA3bRZK<#cOo8JBtfIS7icp~<Z^y5#8~Y%?8>v=-X$uvG z_UsF#h|FC&sS+q`f$l=7*Oi@PW@*1Nk~uIEa>7thprG(Vsnb*Hrax#GO366TT_~k! z4`p_tlmUHzP&%?zd3A2ng;IJBE|hBY9{xFEZ4HN}QOrLYkGv&?l=H5~b$T@YuSW5Y z-L|78(h}Sym0+&elo@C@Nj+|hh3fMz``NcRD4pvnDL9}jbyybhe}&fl&H)(AD~xsc zDvu4bBbR=$Y$lU5xJ)WhkQdDvQPAr;saOG1E-X2kN0<tLQE+-efqh|D<<%)G`FOrN zrRV{zY&`6nXfYQ`b&{e-RCpp3UhQvmuha?OF1-uw(Os+QvqQf@Phu|QJ5aHCg{Re} zodD#fsAA%3;wUZ~-6}yUWQyetx&NCS=q&j@3mf4yaV*<$tRbwnD66}pc)_34UIc>Z zg)lUCDs&ddy%gz$^;M8rj)6_~HjAk`6v>FaRJv+Yw8N&TR&jd|V3nkv2$9Rvhr+J# zb*15YCVb83D|kEN5GIZb6Sd^S#L0RN^h*DGzm(IxutFUdZI)Wc8N*(eLP_$hEK(-) z`p~8iu<p_;^!m_8>yi%=G4}e9rw>*e>~0f#<SMhFw`~7=zm%B=LL+5Z_io)U^>^P8 zKi(C1@c;kfeyN}QADyiW1C1dwFnhn0s0fF`ZZtEGn_5(}lo*x&d%x5XcBS8Uzf{Re zF%s|2{ZbKN={Bc)qx@wYR(szsHQv?rKX|{?Ee~63)hYi2_e*Kx5&_^4KVkbr^c8*) z+PA<4|LN@gQrh*H$xgu!-T0rpU+OC1Y0{u~<9?}^lTa-Lj)+~)x?gG}_5Anlmud;` zmvVRP!ZtXDh6l&Yh);Cvi=G_oqJsb#9P7e^<5UPxx{@&<oW#v``_vP5GjEZ9GPe9N z`%*M!dr`6|2r%)T_h<;~pSuBzsJfTowU_E(qEMSCFHs16i@T->+2h1>GBA);J4-~F zmdI?Mz@Yp&VDAb!A+;X1@3*pDAPj32#L_&KmpYZqVUF1yRwUm<W|pf^xfGp(5TGKE zdHkI%)!=N!!IqDVT-)8|%`oiHS-H!ATy4GpDee4x-l2lJ@~KDsia%SS5puyUoPgQ< zkKR)4VlYfHX%cb_tHm(t0!RLGStjBqIRdy+ijlG7`vq013PjPin<i4Z`5-R?gkuVW zR&j`N!VGzuidrc;KPZJNh8sCj?#<u=a&7Qxo&mxEctM~ZsR7V99-@^&F=+}i*dfEV zkQP*f<g3YYtrSm#^z3N|#<(Rg%M%>zKFIHi3!*Vblzg%Ws%^r?nnEij&hJ@3BvMtG zwjyYoF;P|kQ6nPxpa6qF4dYZm<|)<}vNN&9O}1q9mup?v3Kf~wqYnC^+_JXHB6-*$ z2|2gA)=>}PDNb80m6iuLk}4j!sfrbWlLpU(3%$bzf^JUf8({)<S(IJBc}5@)^1>CB zWW!aBGb#rA8V@#QNSnOcIMoJD6p*wuQdrMoNc218Gq0FK76pPz$c`<@aRi**!g8Cs zso9#xi7L1QWtzS;Q={U)$x@v{%Ge{f!Uk=#h;Ybzm7Cr(<+|A2S=&H}t8s=qPadW< zTH|bS4-GrDqT-l!l1d11E&Xx8cnB8O?Lt$P)7~B>H3v-h8qUtQ<*qzW?v?6Q1+WXy zrQWcyYMiQak^il{n%)xw*0BkRO-wB}IM*9J@O;cU+r2$wk4m$B-I`c_*~jaQSj+ZB z-4m9S*?<$3>lnZjGp|)hSx6Q#6B^it49RqWwp$AGoTtZH8Y()ZC63*OciOT`0N)if zxRPgM?jV#|&aOgc5<4SI3&sCcciANCBXH;kjNt8%GJ??G!yh-FT6NmvW|OG8UURSc zD!{7@jR?aM^z$&;L%Hj>_G&g-JX;r)$aQ^{mNUidTB%1JA)<tZw0d176s3sTCJQke ztZ6+e!tYMV;}*fqEyIbEt1KBeDfDM_q7)wZc-e<?l?_TLo{(Ei)-WLgu^*<JK5?83 z!CIyi#mJOFughY>I7jBQastJ2t`<0}Q(a0DHV-5rG3rtU*vW7cCD@^x%J#ldTCW0e z6!W~wa5dK<eCH_3#Kf$`<+dG$1HXLNhM~PyxE2?w#(Dda@}g2y1@<utHl<jd$l+#4 z!a&1UJ8aIF@eHJt_|K@9qyl0%uzO(+2CZBzMA#g=Zvc=@PV$x=MQRs>#;H^V2HhZ6 zImi}~8+izD5f;%P@n5QhocrfOiwQ7_+&ZYSf``(5d~Q?9Ug4m~odiL(PPA<T9Efhi z4)&UwrLA|Cymrllw)G`toNz_0Ev|Vi04)U~+*mwr$2<d=Te8X&mxvkV<^pR$qsw$X zP1qmmf0;)sL!cX1cN^`|(_`ki&L|-KvurBivWx?S&;~jaG3ZAg6mCiv1&Ua!ls>k> z7|d{<xh$|*Vp3)uuxZvO=xB?TN`y5xRFAq4f@QihIIKXI0}`-@OOOn&JXgI;zSzOx z!8%D$bq01CFAjxZ=u<Sv5D`RXi8dNqR~10fu!J3KzQ1SG=kTd+^8j7#tlT}wco2(= zQ82$oxCj97+G=s(xf{a0&eISMGtbLb5vS8H3HT9e;l4VB7%H@l&aoaVL5<Wm!Afm| zgEWs)CiyX%tJ`MPqnnF-ZhI|zDr(nVZHiX!bJty2Y*@D4v*x&Z{sjBfGyERc^ipv6 zS>hXJakSM{rObaVI%n&E)Q$dNg@C_m5tj5UV$JMEYZr_eQ3lh%RZMG?yj_~en%}SS zqT9yYa&{EgrZ_jJyJ@Zq!YVp46JDy|S(+I^w;IQp2F-F~fFRVuwa6>SI%es}Pkqfz zb+L;T*qUl<RFB)l7x^do2nT{^c(A+06p~2*fF~(4*Nl+^`m^INNP?1v^_I)3v|O&@ zJ8sv2DR!^7<8Q@p?wB*$tNAY4AdSssb;~a5Q-}1Wc#h=zPS|g(jiw(DPJ7_uB82ya zNu!THO%VR%_um)xrn@hU%fjfQ`Yq@Hy!xkDJy$j$|Bw0%OnnPqu6)Jr4vQSJtHXLJ z0bWOfY~E7Am0_Y=0QiGfhJmF7&q$zA1RR&l+^UU6G}O8??B3Hr-bm$kWtiPX7F-#| zca3OxWf<t$2g_@saKU`1cZLC1EjizvVJ~?Puaaf^acrM5BLYkIau~@-1Cw61U;Zm6 zi^jJUjqgrZ9X+pdZ8dRLbTM!z6Wf$)t=>Z$7WPuE*=K-CdDRAe4>W9-eer&$VUvJ5 z)<eVQyE$R8Pf$&?S<zK?4m_vEZ6KP!-WoUQ&Cs~T8}<y~t}r>Y5Wi#`iT=@IZY?{H zw(V*%6!~vN(FLM&qv@YXj`&`TlG0oW`A+>N`;A;Gb=x&fD;4*o3kBPiq%-z;pUp2? zemPx_bCX^xOjmY`smkup#UBnqJzI8|*;H-!3{=i}gZ1}jY180z$pBm|(Y|vD^`YuB z6(I(ZB6IP`<~WyzRUg(f-_&?|WdMq`iOpWMDckVCn})?N<7We`8cjYQ$FI&j_)^SW zu1+j`la<?{Sgaj;mtWctTOMo3^<OUX*W;Vu)xXuykw=g*F5i2KI7}=bba3_3p{1rI z$6nrim??VY#^l)dx~Ib=_T>?J)}${Y_ZB0(>`gsM-BwBf*2347;|;yZvA0Y+Ig!@` zMOf*`vah25qPX;CW&~5(?^-2Ay|Hq8CA>2qbtOmHvFeRg`rSFXZtT~3LAg?41YI4v zqoZ_WZU8|J?hZn8Eb?UC%&$qCHdY5{)-H?CR^5*3^#*qn-*W_4mMWCuyBb#ZtfdKV zzsI;kg}1S(BHhjx`&wT`a+Y!A!{0C^8@(;x4VyL*H+;<VUcszKFu5bCP~oOofMeXZ z^_z8!8yTaX<+;lQOH;sK*Km+gL9=${I<Nj&^Nzd{yD)ix_SUt@%`K~Hn}=4{Y1+0@ zL7AN4#x_`$Xn~#o%ypL%m8ot(sA6MY_Rz5P_LCC~RBeEW=1^d4Q{8ouy6Y^cwHA3i z85@v`@=@zXNY~w*qv@)(j?PUh3Y}X6DS9NNwdjXe`;XGO)!r!$CHgVG#Dji2w2mb~ zz~;ZdSo>|E;(?k${DC+|yp1Wb6y-RT)Hpp_;YOv|U1~%D5-cr#r7;89ZVTVgw{nGp zWH(JQn0X^#zE|d&s|;C#h)w-wU=U#dJXlDa%y}S0wa3+Ld-=kxIVA9M*g*53yYe#r z1x}C!Y}WJ$krwW90}dLw(E&2Ne81pQy-=#jYC)TxPXb>aFDP&ij}{cVhgAh*mG^SK zRxq#?x(BbFTkqCQ=4IMy{=}I{6{i${nU`{=L&fAauklPB5A)aZN$TQ?$(>w~SEty| zq@=yZ-{~&AI-c9OM=r&Qps}q^yM7R}go9R-iKLKd!MCl~pHrxrI0rIhyqRF6!b0}w z*b?RzW8F%9bW=V}%a--VAo8Oqp9o^9nz%|0aAJ*u@}!+saT&?Au2<lpKCBZ^BoYi= zRi&JUA;(7H#{Frk*koQ@4Brz?W<-!%ku6#kKst!(;Yuj40ZnCr>cl8HX%FD7uc+KK zHG~7N!sOg1X&E=`0fwl~iubDgYFxQ;ag!HJ<QCN_%Ruxc)+l-z*3yuuv}{2gfPd7T zmSssuA(^^8J5VOV<*w-#VZ(h=-h7v8E<x~^me)lDvno|kthTa_b6L$tN~UlE8yp>l zow7`JS=wkv(7nnABnvuZEx>GzjMD^j#x8+h?aH{bB<&4iY3Q0d>r1c8oyZjud$P5a zs6#4GC78^jKWn1Pt?$R_GyRISjeVEnK{l#RR}eX!xH-Dr5!}~ia%m8iH@uL(i`m9U z4*PIq3Tn=%r7WTFKBPr1Hv`7lq{!fAB5`IJDrrue3@~_B*#j-8v<KNJBO~z&k!gaf z4xbjgO5tb)6C-hiAHdY~Y@>(;tEDgdI5^M(2S>(#O{%F=natq1kZ`eO4am8W20_}m z+_MZnF>WV|DX6JJm_q3#vLkS8p~4lo7IDmGH{$Hf2au6%Fw{8o$*^0+)*(b=ZY)^u z6^6s*E-5o04oyr)0fOAnGOaZ%TSxxuVyPY^9pG9ODr_R%)uw6)Wtu@n?Fd1biyOFb z?kWY*8E&Dm-*XH#!(}G5dAT7AmX{lMje85|xW_`##bNiowcp28{|u03hR`2Ss(B1i zjiV&q>5;SfPWlF+O*YLRUNO4lm7pR#OV)v1r$KLXP_TcK2cF2DFq9?rc@avvB8HG^ zsNx;*TEFisvWgLv7-Y?BDkCzmy^138`l_JwPr>J101Em5109Q}u5)q4DZV0<Rp@xc z6NFIb*oBIL!=@Df3n-{g*Q(HW;%0r2dNupjk_IqFMRJ~bHfSl!ciLSh;gy}iO~@;I z1w0f4SZ4K#*Uo@Jc7nM>`evXIxMn|(3S`5<mFvfyvHNZ+g-$GZB|B|&NL=s+>AwTc z0UMB69JDP*Fx`0z;8;j?%_JG`gR>?N*vNoiq2r0R{HRTT+BKy3Z#2-D)wn!wA{!wG zfYdwqvIPO=HAlv|EOePs$ROCfWub%m7$69g8xhv$yeBnq`IJJ?Ib<B)K>{0pWG0Uq zo#B-@_wF?)Ma6hm?NfD?t~yN`89`SN>CMt72WSM1r6PwTro9d?5$XkPN>)XcHaM-9 zl`pjV_Xbd^0_eeOo_kfp@xOdcJ+jgzaUstP3ZavzAog))($F;vFhJK%H4BUM1zr5& z2GM%O@w+(j6V{$@>|pZ|y`Oer4>{#Cu+o7cDe&ftW{|0zv;BOf<84{axA{%p(7#G~ zLud1QeVaG*^PP!_DX;eHZ;2&yoSfJx9hJm2InD;=$T2lMIEDr;>1tj=W(E<BV`k6` zI%WplhL{<&eLAb5?c4SS=SaUT<{w!8n5B)`n7k41OQOh+RCI#m2=uh|tunI`J4xkB zKdwJh2BP=l_se<udv899zxDBC?gL^>_VZ_UCn~^{*pJz5mS0-F3Vcb?w2af(AiFSu z;p`^mX}3Iub1_~uKR$)oagrAI{kVO<8tK$h6R>}NoHCeVk64BP5EO~*QU0ZP#2Fe; zy4Fj45psOHUU1~>N=6AGm2p#$X?;X;0>vjgsV+ObiQ?#xT&@|IlG3OVpmM3slrRn| zMG30n)1J(C)9GcIB`ck+FZgOaoWbseP4IQKsNUOa4!#=07JdyN!%!H?aKS2z5KsOG z+=!M%J)1@QzxrsSb&Q&zV2o;+{jr8-bGHS#G0$Y|w9e1!reL?F1I<?fFkuI};0UV9 zx=%NG><EOrs?Rva0Bxfeh7*MkDx)I>R@cC}0Jrc<8f*8NX~aquYz0t40plRj7zx!V zt);FnK?R~80^@LWRclgBcRD^=rVKDcO@h=SPKB$CL$wPT(RwMrV_o#*wirFtI7W_Y zVd>OC(nXfLS?(?|F*VO)jw*)Wbt<5G0;l)V-PqJX>td0n<n9$9qukE+$<SI0x(<sf zH$dF<NN3o!nOUaZ+F{|Lj_d0NiaHw$z3t!-J<PN|0qYpnrAu(AOC3xBx05I-&@6+T z27}cc7HBcJZR)`+4%VTTgTyYb3!6c>1)y~Xm_KH_fonshD;h=}3uma@YvrNEu%s#P zsxi_|H4+QZ^)}8KM3Ar?)$~_ZG-AORn9s2UtK7?Jg_=}frjTKu=kitrL$xxK19`rt zUByn^DcHT`L>CMRl_6VUj^tAoz{Akkl;Q4ODsncAkj`b?mgf|>SG{#RJMM6JXqT0F zw3-^o@`hzm>zJNPZBj7DR6A>T9U0z2=Fy1^*)baIo+%}Og)S>EeUm}tE<acptufu- z8(hxOX|HOo6ZfmC9yMqbdey+`-UQX^URR0fTsq-A%q!~AKp9iEfo2;`cYL960JiCd zbjxZ*Bj`z?CB5FT{XCdsyE)_7-GGv;b3X%r6c|?6Qpm=oUk;sQAB6U#N55=u+)=?Y z)^eC9xzaEz)uI)A+NJ>1n=VL!gAT)lSX2uHz}=dtp5@!KAY#``uCgUcsv<KEBe~2j zz0^H-*3MgXaXD8amXk$a?Y>#3w<HU<x9P$W!YFEV)b~_ey2qv*FHE~K=X9l1{wY%B z425RHWsw$ZBH2|r?$W(kL5-Cpw<=CRj|xTRNy%0wh^|>$9_O!2c^)mO3X0Q$K<ATk zDd>v1@WIWkQq71v_lMPFq%BnS2LEhsX*cH*Ch%4>O!Mb<?pZb(`r-yB=-qMjK56cr z!-`;{*m`5Yf(B@DscSV}w_=vfK(txqD=Ewe+r3|L4bd6~7Y+3=x0#Zmjg;_OP6um0 zDcjZAx@R`LL{-bk28&&mLn)e_vzAd?xQuL^<QYo%4{K_;jBKE_%gzewTdRemHmhfQ z)TIUW_PW-BeXwL*<tdk~Q^GU`fg?i$n7isT3tjX?rKm?VJ6QhHTu%fm9*k_oYkahb zpa*jLB($HnmRZs|4f)r3ZUspnIFIX_W;h)3!9ks<k}M={U@}97C&}Ol%{YgoqG;T? z74+V4Ls4$!Y)bAXoUWQc$EpdLjAVARMkU-{$(Tr;3?ad7+)^tY9L>ZdYMpS0s+>*B zV6fFNwM)a+hf>xup(%i%-zqh#+kVf1P`1W$>pIy<xEkF&03fAE6XkOpfUr=cV6kON z7xFZ2se}M2*S*u+xDj+l=~lAJLDC2Akg|xS7Q|9an5<*uAKI=~HVWWjO|y+)KT9%t z>8`;p(^fU{2vCE#^R!VL7jCbJTD9%Y(_ofs+2O*;0PYnf6tB!M>Q1h5P2h4PIpNgc zUHqvlr28(*+xeqa%=*jMyFoG-JGj)F)M>^T&mZl#>q5>=XmLxDxm8}xPurb>apXsC zLmLw)7puTOvwY{S#D9ouy9#yt*O}t#RPL1JvFA*wsQFCnGX5NvzOV~ndU5soh`-)^ zhF(RYj^0BG!>E6dLq~G#2Lg2mN{)-&<D1E`IZoXn%5tT&Ax_;Pl{79nj30`8tRI*l zXY{5iXE*1BT0cs4>w{_i_UK833poKg32Avd_VRk={y@!fAX+zHh8#Ug%LA#*rRjr| zkz>`}6hv9ECl=Wnt(zvr;#l=6Dh|MzierEEx+<03#CNGBLsci=)tEAsXAk0!TxrIp z2s9b3o7`PA@kQ_9Ur2ZOVRVNqy0{cgq0D@Iik^4st@I=NbjhbXE^-?~ce)S-;@p+~ zkgxx=e;-bs!Tk=)``vri`<HpIKHhgxzxBFTWPEDb$;k|<_aiQgh^$|E(--2)7ZqGh zc)9qTt;Gtsd9v)L@gHAw9S_B2H{P`9(>&aulnM6m@$rks5>Y?meeHW}ImL6D;?3!} z-xPmqw^!wB69Tu^L!ZpxQ!<CRX(>Ke-Wi{>OC=ZHMiHh?WZ}%>=63h7*iTj7fa;IR zZ!G)xqFe8o7S=jQX;i=X!|~c<iwKtSfs)!Si-rqqWc|WRiX*!gj^w4pkBm>v_|p27 zA(GAJ^GHf?p91ODoL}*9W7$n*i$5uNd7OchU`?dH^rsj9&L1V<_3>|$T<enCKfU<h z<8$yo0{)>N&J}!0-?*sZ&<{=j7ri-pQ}o8@^c!!cC#zpw5?lVLN#Z$iw*w);ZzsPo z&e+HKWpqpZ9b5^L@Slk;JFeDxHHBE*dJisSR7g@^do@3U=;*s%YTNaaoL&$~-VllU zoj#1`nhjBZOGEqRXzDN5owQq;k4KwN&=E0j&E^}D*9`F2mCV^v5;?K#l-2RTB48{# zr7rMl$_MCKz2Mc(q1L!!sQ9-Q+?q(<pMz^@+>aH^S3>#RmCHw7`D5nK$-Z7qJs_%2 zMiza9*x-vkQroiVPq_T!i7!DaG-umC|CtUZC{ML1ukI@33#LEzrx(n0-&=mt*$p<d z$Z{>`11ix~DTh_mTeUtmXjd)na{oYF%NhhEM+{{{U%3q5RSknS3rN|G-l~Ry4PMQP zLA2#e?&zCFc{SrG=sozK2tSna;Zch|;5{H!5O4XP<om6`^R=VA+G8FbpKPb#7x#}Q zc$^RJr7?d|!DO00j)Yrv8}Ze=6ej%p3i8|k&q=Q9Nu~GnhoFBnTyKnrZrzO(jo+eC zksk5#2z{Tb-qWRVSa!+{Xo2vw)_b*L@vOh8ygUx<`RTud1i1O68Ned@x&K`I+W$C1 z<b@&MnJJzAy7nW*9o_2N=8Hgm<Rd@o&tl^isV$pm1`zx3d#irqJj~aFMy>XGAlro| z%erjcKm27S(6xQi<vcOT+@$y(AtrdSUamRlUaX&Mu{=PG<fca?k^C%+kg4JDevyoZ zx7zvf@ry6Fj3vp>MzU@D6?xp4E&3&`dcNLT_4*9gs`t~X^c7U$>{Y_CywAq+pFuMi z%S-N_9*$$KCI(}waTHT|f#X>G8ym+<`Z10xmz~MU8#&UeeUzFm5Ki;Y4NeP~X6J+O zdVsmMf;Hwn@I#w%eMjeA?A7iE>kF*mmdCAzO7%rR-_;wVX!o}-99r`;2JJ&<;j8v9 zo_v9ry}8F=?Vx?xaT8wKNx48+V=jtlU431!7>}U;SY>x#zwC_byDr`?5bB)6hT$iG zs(nxWHkWbv1dvq6-QfC*3x|4UnBn>ov(B{}LRBMitKi=R{5#y-)boQP{7Q!sU2^wL zs`ZoP_@PU+*}ELde}V1#r>WMinPA}B^^V4G-vom)D$@?(If_2P@AyJ7Dw}4ow$k$K z_zh-tWykNm7d~63USm+TZ}l9%$C<tA$-BWd|H5%Cxyhh@K)5=(70inl+!z|%YoLo4 zI4T>r8{9_5*1=`lC{OsCOZ*c?5sUpzj$l4^Tm*Bn`nWWfyvA`Ea~g~1JQHW<Zoh26 ziS9T=zUB@3FUHnzwRR=;<fy+(+wwU7DAc`BGf8msl{T&Y9#jbyF}pU!`%JIy7~`s~ z%u1K|&#}X?myL`5QU!S`6zF^l$KL*Rb_la#qG)OR3J?%(@#+mrW_;<EFGgoZzZm^e z^p^FGz<V{#0~vr|Q`^XMz+XY&#mn^As0VIdJUG~@Ygf@4%`jF)&384T4_?Y&rLZ>U zyWe{fAuay)h124GGpzrw?YWQ8)I~EjSF}%j0}L*3Og~p{Fpn}DdeL`VC+}d6EW6F% z{RDWyb~sQMt1odgT7C0?)fLW5+eZcm^ZkKQchf(P8m8D#FR(2eXIkAKR$D^&Mh_qB zG4JPJINYz!Gq_JvGJtD*fLHT`#y6NIlB#GNKFK)bk`tch(dq2|XH78zPIPo<7EJY~ z9xTM&_^mnkCCRTC|8Z+cve=l`fDxHa4y~&M9LDBco5M5He@<n={Jg;ay6v~tu4C9v zxq2_K{Pq)8zW$w-zb$6v@6MEWeYuDgB|gimUBMUisd$YzbHsaKtL-aphWwBa%NL08 zoGWZ+%LQ&oZ?#%i0M&a?`@CDFUX5s{_n_m!9Pjjtcd%YBw%Wc4p00mgh?)m7@2XAv z^&LIt=kq*YV5>?>te%hdf;)<N_}Yczd}NBj+H(?|GyK1s*NYz4ujtH&=)ViZ@qHgP zxL+6CmE*U(ZCQ-@%MNu?4H#c|`@dxK=%c_6XmQO$JVSSCAFwn#+Gl3fO>R~ho&HHc zp_v5_emHpkFeCB+Slm+?(&{HJ9H;lqHJrXnbRjpJ-K^G0cR#zMMqV@TLpIMI1AZ_c zd(rbJ$a#VN{K3DmdOt+Hy~fYz`5hMyZ)lalYoTN>c(x|r0Pi0B&xJ#O{dR-Ch?3!Y z)Oz?na5dNNX0H8`ZT|xM;7qMS{eW<`eE`P$-`(PPNAv6dPO!QAG?=_2I(gL+!{;H& zXZA$6pIaf^!8~|i2j9{sK$r|BF4<_A-9hzN_Uw+>pH-n?`<cpfy3S^p3N89qCqG!c z?a(jIrleB<;Wwl&qZh&&{@Q9&4U2!0E>~Y=*85rVo>IwsHZvv?^w_x`LC-GUWBw-p z$r67v!XE7HQyR5y$N&F?=j2!?b(*tISGy$QbDm1TeN8qN@RBpfVdi*?!TKd&2H_pu zxGQhIf3(DJfTKe+5hWNs#m0pkVf$|<cXj)ls*iUs$`|)HF6yUC{Ns-KEA+XE7LKv~ zAIH$%O$q-*`)X<eMD>Q!UYwrIix{^~t33(-F>7DUM@Pu}*}2m*0Ehjo(XC!^(szBT zqkCnq{#y2Gofb9roYU<03DXjrxuVntfpk+{dYo5vX&)Hb68{+*J~QgK6#0#`w_H8i zNrs|{ZC=eO4sp>yh_NcglgZ2w4soezg?&41DK$ATtI=hrowVakj_16%iSrA2yz7OH zwdQ;F(iKRXh-VyK*5&4110oy|&R_AXL<ym45}ZMF1}t$^xne1xId&K{77x*zGS^m< zxnyF8S2O*Cnjy^$4&kC=h)U+ilQji0T-Sh3)=OUSa<yK@1ux_DQW(4x>P6}vmC0}a z8bXv9QnmS#5iR)$-HC*4xw9aZeUWm~!>Xiu9o`!+`P<`>Qw@hNk8E!~Lwj6bd~Ap{ zPJI#e8{^!8A=M23_wiP(i;j7%hPVXpA&(|!c?p*H{vH}4OvKTvDKKO~6BPGKFV=*3 z@M2Av9K2W)t`1)E+kacoZ4$2k{4l7lFo+2-SMG*=If_;wkZL4nE5v5Sk!KQ276)Lf zl9njHs!I6nMajQHZsiOfOCtLc5d@nn3aV&|-!LX!REt;5NB+dMWM<@8WV4?tN|xcF zQ&aFu@+5OFQsIGuMK8KecP2PGH&rT8!=jgRi<EY(Xv~wktbHw|<JHcBB$5Dz_#>$G z<@9Xwb6xU&(G^E@Z5<!<U-QA_LPn%Bo*ev1K@b6nH|)>hDiknY$s0&%HOgL0(3EMj zei5S!;kMwLtJ<Zt2We^y`Er%7Ge}GINITARmcG&LYBF-zhZ=RmGQ(UMUw#LD?VliK zvk(wIaW@8CasP>eZ}YC+sIuSbj6w1fed&Ks@vAT}n;5TNpCb&4@jpW+#J`3d>5ilg zh}JDR9k1TVGjp=KF_-*b=_V2V(O0@B*M0T0SAQ?ROZolVuE}KPmv{F)ia(gXN9+Ff zbYkM`i@%XY&!MFY2COq9j95IfDb8=XGFj(EkdwywvxHkniX$6~^}WWLK@N2{J{0N< zuSU}1Oy5J{)z7$G)bW!8*y7}+{o|2E>M1vQ^iuAiDk()iRpe?5E1^EV2?q77=Er+@ zDd#hVRn+{DUZygdoML^PPeK9`tf}7IuHm-{NtW_ttWQpYVTh{?AB<M;VZL6pbVBI0 z`m#J$Ff&=%jr{we>zVusDifpx<8B4RdF$0a`5~s=Ive|<@vYSdbNr^}_GBr>*&5d= zT$^^w)Vkd7U+dM!Zi!r17yEwBRIh&UB~$7WKj_0#?)&)qBdGur6I&NIH6K)X)IL<@ zZ%a-emXk=%h!m;N^~te6pzVFGPhN9NiMQsZgitR@jvcG1<(mDNH9J~2_=nsp^P}Qq z?ng@^&zD4=(~MRFN%>fURb>rf!B|81rXHDibn!J_{eUPpvhmOSWt7dU&(pxDbe%n^ zOpvHzb$OY4xOLO{G=0U;x13)zkOYk6A--%w9Y4MHPV_@2zxQf>&CX>nQs?}$dpXCZ zqVtV573n52o61}6#ZlzHhl?@ttYcp^7rFf^Qo{3qZ6`M)_Q>vhJlQ6<DkTNUUr-{J zoYGB%&YF*rFFuDEP?w;O=j@L8+hWk?%J>}SQNlkX^1XyBwsbLi6=R~!U-OgwJ?<Y& z_-VrMB_jLUZ@&CQcX8y+>O+ym2k>wcF$^-+16cHVNfgSYeOh1`*0zMVrm-Y)pd_+U zGLH{CY0S(h6d>k5L*9mt%l(b9$TRFm&E1iW04;AmL%QGC@Y>~(M%DqU<mRr1Lzi<& zU~)=M^($S~$8)>~X0l@9a}LMn@b?&aCj66zXM1s^yM4_EvUsLHF4@OQ>#v_vy+W4O z{E!FhkoX+-l;SxE>*x{oP_bH-aW+7IyE;Lw5cjmC#K$^V^PfA0te(!|$m#a$te(R` zf2g>~W^6eH)H5n=W2>p~J*o^}9(>7tah%7G87UiRw4H^<GbsN~n+pNkvfQ!+oXS+b ztc>})+v|RChK=q>++W}RRUV5G6()!LbgJoBE@bwmAO2Ve6HDlVNKoaUy80at^#S)H zd>4tWu^C$X)Uobv^=s{Xrg{2u$>6g5^0F?QjJ02|IT~<WzjEzxK>w^qqiV;Jjh#_^ zA8X5w`}E~Z<CI#?Zj6Sev*(gz(H}qe%1r+>*Z5SB{{1}KKT&Iu)Q`=MD|Bq$PmSku zMQiK$q6zx$Aa-S5@BRw#BRsM3kSIn|F&1)dGS5cE;Zwy+O=|H3=uN=huIxEas>5;8 z47xjf5qrCU7tNXJ==*{>Q_Q2AGk-qC=1h81R&JIdVYkq)_97^scQ1~|O_3Z>Hkj_( zsUt0;!}F88;Q89V@4IKZSDrn5%+mjwY(ek>g35ODcAA<#F}8>N!`AOrK-K!Kos7I9 zTue3FE`?G(xE$PV6^UH_U%tEbN<TTy|3Npo-ON=y(syqpSHH)tgPJjbHT+g{sLUXv z)XZ=-fJTpbo|YV?2r_NON)gRu)}b-xT5UY2O<&f2067%xlw0vL&_t+bWIYX;2?eb_ z&?UOLQJlTe(dvDc;0S5;{;uXzUd<H%=|MIp_okcoysrn{JlXsF8_c)be}bF_4FL6b zaXsAIulIW3pv5e%O<7mEL9Ff1%eyyjo4dL)`zZtDw%vQO^(|Uusp|YBBh#bR>6zpT z4@r=$KFR4<^%>K|$tm56d5%ri`CL%<ZlCqOd2x@k-U=c_!^`MkmpzrSor&QRuLBR9 z#}Bkod%3(l@_8*z4(=cKUzEMkl6b)VMg2qZ$m?>4*Y>A#9fhhWq^Xsh7V(=fIf*oJ z=4(FAmw|w3Xv>L?!8^pA|K9P@FUBcqe*14n1?Ruf)*>DDbe<E_3x;;U)VTv=h(zRg zFj6tD(4Ftqe2T+LI7&5F@j^M_H|9h%d2ctY<S%GOZMXN(4q&UBW=2}BO~x+k<0E=; z=YeSQE1doa(M?VYsI<<_;t|6$n{;^PN{s8Hj-WiNSD6#~(SOm%DSxL9dd&x8W1cDU zTa(w@DNqNBxW6@#9Gp}(o$ONjjcn1QP87+(!+827PsPbN=d~4PLR6gmj6HWMGlmsP zKW@(@JU?OQn*?bqmBz33&A8u?@H>nBr&r4RngqpX-=4<@j&d{rN84h*6B&>!&0Il( ziK}9NgT{O{k5VYk*ZH8zUYI6{<k;Z}|ETdloYOc}uH#&1=egi)XJ<Ojb{lf*qFrQ} z+{M|BbKNGL`yzGGZm)jo>AEQ#?xuFtO(8l@{apm2sgD($)<scuMSQ<b2@CB#S~s;j zG4asiM|6xcEWu_i*ytF?q;)9k#SUJp`BEI&Ssd9BkGRvQ-70DMUy4UGaU#3)J0CFW z<%zCuyqW_nUFB_3Uh3LxWyA|J?b?DD&W}y;$V-U`Ys7VmitOTRcoGaNM>4_}&4+jd zewb>0!L#>pWslQcvELZ|H3LI^pzn@(Zeb>Z!<~+KPQ;)rnPZ+7gFa|l>I28T@4J(Z z6AgH^#jhK2oSB^8U3=JjsFlr9!>9r}=4t8{SD%V_wO`~5O9?i$GJC*V60z~+0H@Q| zEip#thdG?oZXvW-y-r|*FX18g`+R&KgCB`cJhhmR?ot0)9qWpdGYfPWoEM2Fud#C- zN4Z;yy)~`zNSD|(q0f2X1szWFd7cWq;>h!y72j8!%>8t+JJl8PB@WT4)UnQ58ab{x z?v|aChfO@_)qV*g>(%$y=`Q_2p5MJa;nu<0f+uq(9AF1=6L?4(GM|PQXl*Qs*2M~P zs6AXG;WVg=c=b8ax&d^PVWxAZJ@&P9JA<~_<ZyxmXm`84HpU~Iw*x5+^4m&g_-ejn z1qrt9O~w{!D2}Wzj;zZH5k#}+OB%IAomNFTF4JBy_B90I|Im@)C%pPmTK=3%m{SR; zX=SwTVz2(D98C=s()<@XB-4N!Gn3m*{b=1NrP91nUcJYGIkJ_puNzL{ApQ-DY_&dW zK3F$YtD{o@wIo}LBh6Yrq`5W-1sYNrtQpe#Fy<QLD#{c`w#6gOBx(_vgw0x)SxFye z+fDxq{FFQYtjzGTU**y9vaf&A@v^6w7RCNc=s7-0SFlAmVeb9!wf#a|>f&F=kU7j0 zWsLbx+wm`&yjGUWI&3zdO6J-`9@98xWBZVMJDrf#-z4#(9U`BjcVo$^r;CXEKj&C{ z&UP-%#ISv2!=GcIFUw)>Ec$nzxh6dsk8sm$E^#;dM}L#2wt1gD^46~LTeOYJG4qB7 zE>-79ULKzBvHM`xs{Jb@$3@9F6{Z&59<4sn|86gV=>DyyM5H}lef-n+++O5wfSx0f z{cLi?&$H(*ubwD<^~HoyX@CZ&avRzP#s*;)UtipneLUkHqyA*XXw8eCEN<AFV~6#9 z#gVs)Bio~#Y`yBcIGUwjRVP-Tc(3<B7x))JJ`f4`=_sLriW~OyFNqK>OXp+4V~pcp zaGPzzWW~);@QipT7U;NjdaXz2dUtInd`iWVPTrJ)zwA7G6v)UYVorE>;YR4qYgba6 z%QFva{)%`TFk0zj`+gVELcMtkA3@dF(|dRAP?Uvv1S^;qRz`)CXy7~U@hZS~mEW$S zX?Y>ws*CgYd_L>?u<{O`32a<(f?v|h&v-+N!Akk&a}inj)85dpq)2P?hDLGc<%%wN ze-2bBhM~HxGwLHNZ=geRK9d}LaY^K06p!DUpNana8^>&nC2yk>PveJME<(rP16o&D zRje;b77Soau@PT7R?&=b`A|3`LZm7F(bD@0Mo0ZugXXus8Li$+GhH{(7FyL=GzQn> zdF=)asOyy%_f9pw@>r(f^sZ`ionihwWTRo$j|$><n4W1BY&w(ZW&BYsF>fBQD#$?B zT6u2v&2%bm2PrZti}kGP3zFz#16cvcavbx^T}Kn|Ob#NrEI4lvxh-&YGXLm&%O{6y zzLpDpT!OuFL6YOhj&b}W-mtf0eja}&kH*uP&R1s=1P989TZ32gah+uABVPT2zI<ew z4{GN*Cwz$5L)6bHlHqYb%N)&Rbwmf)lE9q0KH5L~*v~yi{VA;B6A`bb1sX&aE(NHM zz9*aSqU__KOp$>U$?<A_<cbVd5igtXz1hbhnIeNJg5~ucu1KDW4A15pmVF$WDUwH# zT(4%LD>6bwF3#o~m3<tUDKdg0{k)p~uE=N=d4D$FCD4lZxmW%U+Dzj|r=NGHBS%Y@ z^%RcW&I##{r>Fn5=<W2>=OUwX(bKy=o~5U^@%-PRrwb$j4Cv_{H2-b%^p5k=(`XJI zR18ylHbFgYon*AN+dYN^b?dnaYNZJ3_lW8T0ua>Ih?UMoP<ztT$#UJPScf)66g4i2 zI=>TCCbJ5SsFEOh>gcFQoTwvS)kaX=8h7ME>pG;Sj`VWbPR0DTVC~L>0vbVOeG5jg z@*%JI3wrZNRd|C|s%nKkW+;$1?+EKzWO5!We7>l1dq6T3k+y>T#6(n3Z*Tr<Ja>6R z7c>Q#SmNbrM^_hQ>1y9UOjm#ScDg$E_t4c`qpNqEhpvKlYiB@LwLPe5S-QG0Ae$Du z+~}(4k)x|LRJ&GBx+*H_Xrg*Tp&hjWg`1SoRku@#UQ$p_uIe~81H~@!T7j-UR!mhl zl-ASppo;SXf*ufEtHmg#wkNvQLZ+ANmJ~>=qn*y-PMC-SlSiIq3Q7qL1%60pvn2NF zKR{ita0C<Xc0nXdUdM<`h|Ko2hmg7+cjTqN$V)&+_2@VfBeVg{%~IEmuE<5o7tm2X z4z$%}MFN^jk$}2>!xee2@&$BMkAt&C0-8&afV$q|iVRb}fR5@hFIyy_xfBVg>sVK0 zl=201RF5OFMFN^jk$}3MfMSy666FiXsUAl|O9Em`;efh6MP7+0B;ngEk;~@h<Lqn3 zZQhO_SbUC7@pC$z!oui7sP{l0(cS(Z{UpD0`iS(WD3Fnn7KE~PiPRp%-!J`9ZZjO8 zs=lvaW`F-V@1bu6c9bw16}bbd)49xx%`8?zv6TN#VLvAFXUoLb^~9eo6Pbydxu`VJ zPfF%IwyXO$NF`KW5_zj6@@D!v;Pn7sXOd0vhv$R;h~PgW`1-Tukv{<c&jDEMzsM!T zALXLEb4Zx~;!k@@n9m_z{_dy_<f%PnL=RsqiMbSb@=JIWxH^^T3@@<`%20`eBr8C| z!{OV`D4e9`Cz6#B<y^}r)Y&>>RVK#{OXw&k2QUd@5dRFLqjES3uOwSMP!A=Nxqrti zCwrpzS$d#I4ixvBgS3=>la&aB9xtfUGbfiNI;ZN`Ri5ylAD=3cZdb5nQZ%1AmOFqA z0zu6>j`6uM5@G|SdW~rxo6<$v6iq}uT&LW9`BsFMvp&{W*@|4YSY7V5mMx~QYC&{j z<NZHQAmHE_Nks{4F(OaWdR1K#d9oz30cBrF1W_G|zfFnA#@NKpMT^6p3=hkk@m8xH z(!CQ^&~=`4<*3i?{g-^r9)MH!wk{rNG;RGx3aI;Gz*n4P7toOs<(nHFGt)@_dz;oB zhj`>aVWm34+v%MnYu{)c^h@V;dv<DKrPuW*8Nq_dA+q?{=;+*S*x9(~K%Pah>O3fh zI{wdtXIk2@cTZSx;LWag5!!-NT{<V<U}AR<_9T7#UM=GEzr8FsgB2!_iL_{y&ny~$ zSl)e10VkY^CYLY>2qLacCNAp}XoW-RWYpJ@UaR2R<gJ(WDH_v2TvRNqxDSuwZpyB( z=^sUgp8Nu)GES{5UJC<)Krksw5#$7G)z8U9L2jHirUcEDMDkKwN5xo&Cr1n`_76+q zi6++xTal~guy%!lk~De=f46Lis(940*001OEGj+n98U1@EfODpi!_sto1|s#N@QX; z1@<h=p}~k!5;yUXxR^7?;4jn-Ca7rQ3psU(Jc7>DU;23_*5I3Bk>{Gz(Yj*9potrC z)~~;Gx>je99PgUA^Zs8XB6p})k>->{IyeyOeZE=a1YMYrD6+LA@)EWXiO7p3kryVO zTy$q~<mqB$Fp;N<Bfpcd#X6PFT@Bjd?2k)8y3JOuvS>o<1#7CEh-gT$6%`6CnG8t9 z=|e56D)KtQn2vG5D#9e|pAd2&O0u8fm{8Qy@;us?L$gQe=2t{T+;&`_TOi322}U`T ziVa36+7)toa|?e5vZHupdvWAhrKPCfp{X|wA9AJQ4AO2YitJ@1Me@@~U&CrMSt+!8 zd<*qo3<a1j5_hpk+;nHTQaAVuX19W<ni0&sSz|JB$NfzV!b~P(dg6;{bYuo`g0--M zeJ%6y5w?gDe;=Drl03hpw(j&so=nglRCyC1FIJT|Nt$}GNmEH1%<;-q#dir*b0%)j zR{1DLp>QeI?1Pf=;?(K)u&bv}ur5pdGt}Fmj3!S8x1+4tmBD|#>@TZdy*iPc<X=JP zTc`5SlCmk1%*E)i-<pqH)TjDj<oaZ8mDa3ghWFb_orlLk<Hp9k-?Drb737iFpWhMu z4&-+<zZWH=-E{n5UN3bX30S4(1Ar}55wHE%soA6EU|q>LBH!QC*BM8}{O$gFiWkaU zLe)l_UxmDIMqcx%E%aDlHy`7D-M(q}l1?uui1#I`8~L&Ci}!uPk$}FBx-F&e_w8NY zRCltM7mYtAqu7B({!7@2Fe674u(n4_f0V~t5nFbZXc|Z6HP2V4s=PJLe7}^pl((kA zt1syj8*?NYX^MJlwnUSw-qR-^?bpfv%l33bO_<apE>5l*sKjV;h5hoe;Y9F#*>2^E zHtZRwiX~Yc?9GjGDf02u!M+W<kqo!YUADVzKx|OUpsjO#$Vf><)m=bc4v|b18R&op zDws$O6X2ohsnx1feK$jj-g|-dz0<Z0N7_u=j?%Vfx@x$(ELoGMA3!!7@9%KD!a7Wd z(pk9!8g>s%wF}`s#|b4ds395_Io{uLRwE}fWfTf0ksC2RjcB4aM$kqf=IJ~4inalR z8W`V!bN$bBF|vavZuY+RCMOu?=Avno&(C2hj72z}FAJsuvKEHZE|{hhU-rHx%W|gB zM3m_AP{1Dg>RuLLq268;j#@?t)}=zIz~<Mj-1`g9HriXWl{v=bf*e5#v5<<5A-?6B zMs-UpnH!;jBdkw?25QO-AaR%ynSZXsj`wGlSqHe`r<<(t{26hv^%lL>u!s4Tn!9Wd zJ+OID(_9}`r+;kBE~=s*SLHg0D{`zlo3zx^M{f?O8xTgupb8O>iJVF^986$t2pF_A z94!Va=<0QI{o(1qhx+=v{O6n7y*0rCMt7zK>#Ye{y@27x@^Url{w{q<@f0UTdq9j0 zd~gw(Ec30+ssf#bC$vR8^lBA=#a0134{1Sr^%uJpPN%E08Qu{Z1UlPR^m}-EKAiPt zKXIwI2F9aiu=PaH@!GEjBx^2G8uQhyd;0xE(C@*@Zp(DMt?V{dHa)MEP0!oPP7T^T z*N3T`%Iqg#j{1Iu^?h=c>w0GY$^KN|S5>)A4;FQ>3`Sh6WpFTD1}%e{H7KTqZOpYH zaHh7KkWOvX4wD^@hPnO?T}9~3zP86U^gyAC{#fKzYVXzd8+2i90n=RUxV|!9M+CN! z%EWd+U%QQi?)2&hvQ#)2)5AuwQnYPLvL@2A69ZfZA{Zz0rH(jxYu0&dc4##)5RE~J za1?2owMduB+X$>0Y5-66r(a#S(6xLTadB)=6I0yHZ)SJ@^gJEU13R|f@j2N4CiovX z=l;jW#}@b)PQ~Zg|MG(UZ^<9G{~hH3nc4q{(a=h@!>E>c8g~@r(*uKJ{!6%Ti1Snr z$JncW!Ef_nZw&!ymEyOupQU(`2l348PKVJ!VVvw*M8%O;6OblNdTorW?bk8F+VvFg zA?{yV0FxergJb90zEXWzAd)k_8+A~BmW0~@WfC!hA$05Gc?M*&w`LokSrY4`5pD$^ z6&u5)Xlr&BC07~Ej%u>Hfw+!Q7*$j^?Iho9lmhakEZJN=@@m*r;1tnvu;A8y@P}ZZ zISaPnW?}o=rv5+dy$f`m<$33;ZOcXikxwReVp5YRb3`h4NXI^l%)||xXv0?6CL%S2 zBo1ZLEntvTD6%<D7fop@V>!ngd#7&e^w5^cXwER5re%%2x~OwwHCwjvjhk!`7?gl) zZjyzu3<PY$#^?8cp7+~(OO|Xy3`wY2c<cM#@4eri|8sla+b{Ug(q{tEnDx=@;T2D% zSI(-xKABwrar@wL3P^!Vk6(9RT|HB+y-r^?#Y=7ahf*spe`CevH0O&)#+25STV>s% z3J1ECWd8`gmn`nDmTz$@ol1rU_P0xJpZ<YVcIS%C*Jm$(3-VNBw2nzsrNNzdFuLtG zS<+3}y-TieDz*eF207DyS5JJXn9r^-p->Co_H~x`yj1;pQP<=IlVmIrE7u>w5i?rK zXeN^v>ZOUYp_921tsP{ZY>(D%;Un{e;h&X&v~VU#3I>kw9FE_0OySKm+=svE_L>ht zb8L$vFpDu!iFiz1!7lKhY?&XN%E;Bu-C61lj!S}3pB!>d<+?2Eq;|li0~+^>Z=XK3 zDeRuPuG5r_zLp|bUO@a=B4m|QS3I>MIqCZBw4u#(AG^?b9If;6+n`h<6H}@$Qyn4P zSuweyON#a?m<-uUg)P&{b$uz_2D!qf4-nHcRUPe<ZL_Rru%u4;It@!STFY^pYem4- z&6|>mN0@bQrDpHc0;Owa#ElPK!^Em&IwcvQE(ctWAFO}0jI9HU3$)TGJrg=vn$V-N zZpz&m_JD(>3H?T#Ptw;R9dG59hL8-I(D_Slul#5#yTK=P)4ZYRHVp7!GGm$)?0TS0 z)=z=8kCuOFG)<a0w;$RgN~CC`s8SD9sg^zqR7rIgRpLU&wVPuClk0M-8{@0nXH6x= zbm%fF_^}^tzHCuhHe}hEL}kWr4Y+`&mRh;ubCZU2>4xEuarm$5na7|%=Y3=>{aIM# zzoMT&e&AN3pDdipU)ZmORs4nhT3BSiv|)F>Sx$anzqrEb=dfR^Ka42U_^ypbzUv_< z^067ORYsX&Myn}%zii{{n*#|l#>*M4=D>J0!>g&6M1n3XW4yQoi1V{-FEPFgl{Rmq z_%31Mv3!^DC5hf>?ZfOF)tcDF&4lFV9iQv!d2Xgkb*2m8+Oxa1dT;gi&h1CC@FHIj zpLOywuii`cEZr(E;ES?mJL9C5P^x}1dltEWQOp!`8#L*(_XK#UnbI{J#Y2&q0Ap=+ zPv<t!!3NOUrEjv`*Ep%$IH^c@V!lc&)NiqNnO{r3RAQl)i1;u`SR@c1pFlAS^;C4* zEv#cE!#uX!sLNcPCZ<2sDdwYK##O@!_^9ndC?I<S5}R!soS2DnYCJI$r3q6h11=Ev zKvmD4TJcRaN3xR%nmik3W=k30<UsdWd{ewPggI!L_w1Pon6KWh{@%b`WH5(*Btira zdh%GNs}d4n2IJ6RFj>Yj$!*Uzw4%QTy{I)wEx?7wtg<Ik;c6%O>S6wEuo=Bk%O;Wc zt?($miA1x?_$C*LjOCkpo+)-UOeI~-+T2yWwTA9cUnj*XS#OWeDLIpB9GDZYvW?gT z2iD_~9?WFn!!8X#5jG$eV14#TY|G3x0LO$+W<UR?F-V6Pg;-=QJ<A>JWif*!cTRO! zv^-r-jI;@_ugIl4$D>A2rXq*b<Qx)R$fbyDQ6YGCFnwd$rRk@6zxFUufTs4Dkm<sZ z;vI{`8vZAdH?dF1MADuzdSolwChyQ1sM7Ui*bcqXIP|G~+A-+Ust>+<^l7B_*PA{C z`QK>r6ca7B=Lw{OCq|!6Qs&2?PbaB_iRe?z_yjV=6cq~;_F&r~10NK#3bsx16BaVN zWzWFO>aFa?qDk71okm@R1F=MX8%^9-Mx!<*-V^#%Sx+UA;c2_1W=Q;yXq2`~I3%Fw z=2WgGfsj>;diD^wogH8t@W^7tz%L)mpqMm{c*gFVrM~e^GgXarX%vA9LZw*7#H6(D z_I<`Tk0Rgs>rS7%v+0xSW6-CgdwZ7TsV3_yF3z$2e1i08qRt*qh<cpPF4CtBqv(?W z!WZ9F`ZP-tJm`}cAj8AslO!<v+B`I=oP529^a&13YCoM3lIL%8nF7lNc*8ZL2~>0L z%sWm;?evopAB7&P?Zg<VLoibD$tQDnN|SYj{L;!VoX3>P7EFsJ>0S1*lKjrpS#_~| zk5yj-SEL$CO%-H!$?PMD713eEqPxHVqtg<`5R0Y1;-i}2qYx-o@k)h|>BQv+cnny( z(%7j0k6n$ma~yUml91N4SP!!K#w5u%1Vr5zObdZ52@`qy#!<duBzs;kE!H#^TupVV z`mlEV?Mrq3*pV#g@pr{hF-zW!{MqTNgx(N}Ov-*4S=$*>??_bg?v=^HL&+hb-pjPA zkB%|jORRtzPiG}xh{}ZUy_hUh*_1;v^ieQbOSh@V1Un_I7fmbDF43)jC%#JJyCt9J z_q-%6W*XHo&h_w8nr~r7CFdQ9Zd(EzjTc3VfUZd(|D)x4*eiTV^1RA=O&AmCiDWTP z*h7&jA=03Y*mj__Vuklg@cZG=@LZR%O=B7YlPGd!ZOpAP!IMb)D6N$B20zoML8rt` z^`2>y1(6r>yb(&gFCbhxH&#Oh0UuP$Cm*>w!76T`J^{U}LHEu|`8-Ube3Dp?(~k~I zq&I=G>EKwk6jj-jE-IdowKie&(Is)7SS77ndH;zcDC44H6d(MBLKmN5ij5)<<z37y zrCay#FYl@kSlYD@O6|vz9J?H8+4*J5(X~=W$IF*v&+}!gvHIom#rQ#TF!2C|yn}f= zR{zM1E}OTecG{@bILW54E1jC=9gc2$-8iUNoHtg*6mw8tE9amz8IfJZQoL?@I0*OD z=^{-qSj&*>p&j)Z<EkWh)3tfgB2w2%N_2lb8ca%?N*BlKwTWk?q#^45c*FDVwFz4` zTPF|QeM0=x?8;;CPt8+Dlc!)`Q5W<}(4`ZxuaJI8)My)0y&p|Joyo}A7oBtz#NqX9 znRIW*ewXjnOG&C}8?E&Vq(qTo(aadxUR^BPOD77_G>Ha@YIXCsT(*}SMU$3@CN(l> zLFbBe@5F?AyN^MQ&i^o@VhDIb?kO4Ozl--$V-|qR_jYTM9kslmcE4c$lJkiN5&r=? zW5S%Ftz1hYHT&HvG?~5Ppw>0?XwUfT8X<qYQ~Qo7F~9GcF6bwDFsqP&UbYo1>{NA6 zi6&hNP1<raP5P+OB!+s)B~Ftzb1GM}X*BEO*%SnQ$$4)@x7{SFH1GAOD={853iHL} zO=y>tlQB?Xt2EUTTFA#;yL2!pA+6D+7RJ<oW}t#MTI6ETH6O01LsmTAs&~oWXj){V zz0~Xhy0nZK#j?GiPdWxM^7%*4Qjw#G(OE+emJy>9w1j{-jkSbWB7*c<)b$l3NaKk0 z!YU17CG4DnUJ2GnB0X2&0S;qowA(dF5F^v|YMq$AcU)pL3t9V_>eLArW6v{2i@YzY zpDd$A5M=u1a-iV^lQz~`70LYDp0q)*C$`B!mFv!$uvoth1KDw8dZD+9GQF$DQY7ug z6RMbkTo3#Hd?y_T?die!j$0regdS~%`p*(QdI&mXvnbX((LhL&1=-vMD%q?l5go~# zjUFAP?LZt|hMr8zbZmKE19SyPTR+7?Ld_Ly;yU?g5}S9>W~DgyplR;2P!l+e>3qkE zcFJ{yY7EV%%PR11j#P{HsMVKru5z_V7OE&Ya?Ej7>il}M1iZCg;it>U4i=>*k{>AD zFkO&I<u+xX5tSBs5qwQ2UKe@k)MGH?Gqm-`Om69zX3A^<9jfKy^Ozl?Dz&n{o*oxO ztpv2v*8}vtv@8Oyf%8bn%%p}vxhU85@vskAZ?oywU~U#$^EkyH%k?MO5j7@4$~CzE z$m(pYHP2S8c@R=#&cj}B5cZ<nsybU8W6XIBh4@BX9OD{WC$*F_)|?0PHRwmtnumk& zw(!pm#;fGCjbO({(Vu@SHLnoe_Ka=Grck4=mV7n{`OzdNIE1b?D4SF0=GM{CiCd9R z&EqVGX!$iHgh6N+WxckVL4}1oW2KBlP)F0hvkx$amF&S(dF_LQ@Mi;k{rJ%`>sb}v z>l@eyfVbB#eWv1IER;@2C>=~J%IAHsF{7ua*V4z>^kB<Vy(_lnp^Jw&VYGBU%V>L^ z3Fr57OrkKq<GGv4Ej}`LU)db*JY1aP|MI3DD_3J3Y%}{Ow@B;S!1T^cVlHc5Yfe|$ z{AO;Ww8uh@|1_bsvNgZ6JIur^9W-9@m@m$62g9~`w@@|Aac0gv!s29hcPby7-yej> zllotjP{7&-9*|M#liirKY#;r<gZ}U3@BU<BC+mQTE+eTgzUg)+kEU{~f(3w#OiVoj zp|7b*t(cDmz^cHj85b)%6zxFe^V8zmfRI2I0LmNd0-5L(^G4?5rif$^i*`#H1@#0& zZkZK{bOkwL0<i6p+iPmE{BRQhA%xpxXAXIqDb90AGB8<yDa}|IT}|FFmkFu;%#E7D ze>UC}c6$m&PXuQ&&N@h4eIgGwWgnpln^+s2Y|~F?w|p*l=S(eGrfpTSM+OXLL8RWj z`1V<58C6NlCz=wEd@i@<V~Sd4bc88MW$lVBn)BCZ&nD4UcAH3%Xm_c}SeXpzSTozl z#^_rnoWCzJNk;9@+t{MZ=I*A~i*xtTp>g-;DjHtCKTp;CWp8FKFVY_E`*XZEr?Su6 z<Za@FnlNdF^^5zon_1ib+)mZBG28x(Qa0?**euJO%=TwZU>)Uo2HS=9YS$WWXD<=D z5ExJNgbf<<=!|Wt%Vw2r(Bq50gIL!0XP1D-YQsqsTilWnCsb-YViqvAur%shKIO{> zENsnW!+u-R8`{3S!PJIYm%b^R+VIjhZ6lWdk#qotV`nY-9KxL1M3~34wbr)YU?L%` ztQq|o4j+w{-!k4bj_nue#Ay9TeLr5d(Y9muBlRJDOK*<Zg`sc7T{uZMIeca}etJyA z1lGp1Fzm>zT)NT86W4I@X?m?e4QXO04b5Tt`no#N`Mb9?f8$vja7Mfxi+P<=c(pi< z|4*CIMR;-C>Ff0wJAb*z?rqFpP{u6J2WmHV{`%adD}*eh^&WTrj-yt<Ot`34_{HY$ zM0y3Ezvg-1v$$;jPDet|UT>pYW@Hf0U(^a^^H*wxE5^)U*6yq&mmF*Qj+(vS7;pB{ zsZJm1SEl3{TI@gw0XC@^)_+tm8LGvM4l^`{$#F}3A_GI%Fl-(_9mhyKNgTL&WAi40 z63k}iaoH619eAw1`$YEN3Fa@e_p>h-XYUf5$POS39>3%HyYubLUx;Nqe@_FsX|j&m zgJV7~mO8>ti_xpm{$Y$BE*M7}Rn4j`DFG&uIy$H4b8QT#XI4p|;#gen{P;1<lEP#S z;_{=!j=<icxI9c_O=4Lm#T&8hzz5?U*f2!XF=wzNisSFU5K)df`T!j}nfY5I8d<3x z7KY$|pug|||Fb_lyz&B6!E5i6_AJpKV~fuPZdv#u*JTP9H~uxKp{ZO%XtQS8bdK>C z{0Bg~srm`pkN<np6$VY&(}zC(w)f+a<L<}I=Z^iw`Fz&_J-%<|Gqc<#^6?}W?_@rM zsN*T?BdOta_!r)b`>~B|EN<Hti`$Mhr(Yd4r;{f<r<aVkE1NthGC-{Pd;v<JFrAso zn$b*W=J69uVxP~<`1fW)bMXJT_*njmPrO(?fxqIBm#W`Yf5qRY<XEl_vODFkc*<Y# zUH4Z+`m>4isZRMTx&-Kyzv5^K=lj!N5vf=3+AYrfQ~rv&Ph9?rPdqm+{d04tH(#iJ zm;4p4q1aRYiWNY%>Ef&2FaC=0Qak0Zc*<W9dAobopG1E}=GPXC0#5lWzHj^$zxwns z=+CXY$I_pYoh{0;6Em}&z+Z9TscN&TuPe7`I_0luT9lLJ40#NHkntpgzmU7-FV$bs z_^S8BALNw3;yXX$<&?jo^ft%zS2O^3%3tv-Uk?1yg+JVN4EprbC*M8#)JVa<&i?e{ z*qfhMG`K}|9y^B=tsaA}@r3;8Pg3T`pid{MgkP?|V!2QKrb+J!eX2a=ulSCSAUiqq zsc2d7e)Ly#`gF=)(diR5Tw5{piCwc~io2TkW)9qR0p4dG9ZjI{FC5%~+UX?vE8d~} zPWdbT%J?g?LVoT26(?aObjn{*2ST3mS1dcQ;n&Gu(FoNkf5i*``2J(?Pj@~znmqmD z{)(ql+$n#>a1_+9g1@5tP2Ly&ibvC=Q~rt*I?tc-SHvRnSIl1#inL|YziEHPg}Nta z7Yvdv*UWC`bj#*thq-63qLQG+M{rxY!0z1}!2urDYLJ+C6E$TY7h@%lissz8-`iwX ztev<nes^=piuIOB(5|UEGZU|_g&)8h=F=#sD&?)nc`#@3F3*@+imZ{B7jbGha-e5m zYBp70H#Z;qV{o5iGTWQokV=eX^YgRY)8P~jti<anpBt3#O9vO|H2z(+x)Pha3Ae@< zR`_WY1H{x#qm4S4Ii*9KRe5<mrsY1S7hMKRc&~-u>t6VzXi$c8Qk+YtZd#4FxRK*w zG1SChUUzMzCpB>-%?7R@$1s`mJap#iYpKNErmWmjhwZ74Ps2@#mpp7APda4%(}ecv zLEa_zrMTxCJL)O|x2F<Y<<V0YTj1-`kJ{K!UjpmO<O<zy(l$AnJ)|1pG_`)g6p|Jw zb8A!LP%`^8Z-@1i*pbTWr2D>P_HizgUfY{W98PBU>oZT*lvLtn9ipWQQ8QeYh`u?M z7*yp{p}tT#RmkACZfqG_p^J3!>D*-YupJ|)TOUdJ7WL_EQh};Zfv2X#_NMF;ygbyD zeK?twp}bdEH6p?x)u@tMQ^cpK#}*>I%;2kDs>@5wJj@K0Q-$nU;xU~wm8vYpx6$sF zY@b3lkI{N^tn~J)3}sdbJwQJ0zTV7-nK<VZ9Y?26Pp<fi4>&EOEoxJ-Jxb2aJh>|- zr=s~g`SyyA7U?<69ZqZaC6{ifXmkfQ>K{Dxs5owH)2FKk8yM&0inDSHCP(vou{5p+ z8EoJ*gFIJ9;K0Q0)Pt`ef0)seJTqOm)KFf(O1yoqte>-jSQ`>p0n}>|%pvFk?r6I0 z3wBBklU!4)QNx)^;Uc9ICgO$9)M~~QdD6wX>A!PvF7>I3<h*UsZOb`%183ERqnuTB ze!wVyq@^!5;MN??=58!D_h|OL^{e@tie_^}us^W0{DH%m{Nc{}UVpf&e!w5@u9vYq zsqU$-AUhuJrSU9CHk{S`)kzxm%BAx9&QVnB^v({{M#Aj<$?VSN>}Fzj6D+6ejDowk za^8LV2wisQW6`(%`7|E(Cb)HI5nrONm#T=ifvYbE@JL@m5HLBNtGOcCGdP7a+&O$I zottsS29ypYxrOh^W%<PQP0@bBYi_52TM3)rGf)|Q|8nkayJ-V|x!13SYakc(a?Z2` zOjSTM+ppa!|8RQzVKt*s{()1stK)B-W#71fP&sjlb1`-tlCcndTM+h5dPB``%D%xt z<*Dp}<c{H{T=OR@80JsRXSs8l^<~)y=V!U^=YTp|U6xK9N+%9qnwvFKA?jOh-O^5+ z;{Lc))KNeAm8PiUyvbZq=WgV$aH(9)Mc4EDtbTNnq93hwJ+Zm(n!wBp*GGkOU&~|L z#>*CcXs%yC*pxjAi~4@bKQ2V)caVQBt>g19^6DW8S6W)SsH2aEL-*@vBR_rHXuE>? z=oVd(sY`NObmJqJI!5jL2zXpCeLTELKtEsg_gMl9JM@z$@!~yG8PASgim5A$J@6UE ztguBNw(7?(3RV;~sVQoGSt)l<ReTCxJiyWE_8S!*uvsi>qJ#(dXwj_6B(&?1^Xj$A zB&l0D_>HBKS9EgkC7U)Cn|YikYbAGnS_?zV)oArhfv#GtS}uN0RpqWgniLgO9+k0H zMT?);CoZ3CeS{FIL8<h0$8MGKG!MF3)NlVL-Z@wPM5EC<plBM$d+NJGwKgfi7FGJX zi)x8FWwu4_yPxRXYuU%8d;E@Q)rxkKmXRn9Btv4I-@(nAs&>aFHT5y_WHONP3%s`I z)!KXL8Dc!h8>7n4ZuR0GMvf~_+h60~K4KRJ6#7$Tv)f-aSd0K2!iNXE6ZrbPzG`Bs z^?cDa&K=KrU{rWUAJlz|pSAJhml67z;&2lfZQEo`PSz^;0R<~7>dW}Nz|*1UXytV_ zm0u-{*Ob3EMTJMnmF`b6Ayk~AYo_r_DN*4?{yoEo*2m(~HAU%in>bPHo5bvRT0bnF z%v0P3`8*|b>{rO^Jhcr+v+wlC1QSQ?phI7YX0xek42Za!U~4xkh*(c+dmXXyX;lYz zyrzs^X9C`BH^CFMc*i7tc#0ppGxlzunS3}fh0Gq)SDH>w{G6w@{dyWCgH`o)Y!!NY zkUUAs&wko-cbE^0UsLi&l$`0EirRk0>nl@u$~;Hd;>RZIcZYsE_LCnJ!rL(X8bQNP z@RQlA>_eNm)b*TyxmVM5@uQPe|2ZmNi3xdi3Qvpslvx{R_R}GGWtNJDpHdb(t)B-J z6!m|q!*l7KtSW2KwLPvBwaPCVenmO$)K%g1C55Z^qG?N(vIzRmIp2~pW)_)<FRPKn zrVx#H<^|QP(Q7uW4&%C4dK@@2ZPrq9w{G6Af?tTHUA?r9)YRJZ8Se5frS*GN2`Wh4 zbdl_xK3HlwLBqCX;3?dH&RsvY4)Nwcs*D)TXm}$Jj2=;+ji#lR&f)cOK6Zp%C+eSa zgC!g$^I<Jd2f*Yw<qAGT)6Tn%554xmx|t92?8B9}(GSA|_C?K%rd@X%jp(295zlZd zca+{XM|YIY=Pvf;_a5T7fi5GwI$1B700lpvoVO*q?FxNy`l~DNL}!U8(i(N$$#3?F zWxGH2^&557Xr}@jVwBMkql|_aWi-Snqaj8a4Kd1Sh*1XFILaU&Lm5jq3B-&7I?J9J zfV%&H;JDQEwT~pTyAu6z>FH}XCU+c6MPuv0y_Hm6l=rf0^L!ptp{zq0K6t$-MVKWf zw}gjkW*y@Y;MGlM1Ncz|RPE+OK22)jqnLbuAy*?k*N3>fBz<(FhOYSw-7vJu=z2PP z7_LT~&4N%}!NyPjh<aBLI7c@w)@7g2sRNBLObue4GJ|#GARw6mXD%4J4v#m+OKnZT zg=7bJ3;}?*z`ls}$`Cw1G18o?IbE*;6KQcGhr!~Hf-;6~H4n6kp?~6Hzp^uR#^B3c zq|?r&xhD#vnZ~N_s$bv_j`av}OlP}?W{Iu*)&2k^@dq|of8e4Y9@KA*^xw+6>(kba z_tr1uukd9??{se!(aP}U0)mAvD-_&S|0caf9&LmgzMOY@j4$hm5OsZ>3&xB1vYw#v z@Z~>!-|=Mw-wj`~ft>q1fdONlNB9I7bA(;09AgHW9W5$;2pH23lK>+YKa?;gtBPjC z-@r4%m|UP6hir&L7FdV|qgJhp&tvg!IANTru5+BJoszlC`=tSKs<#8;G`uOKxqlm6 zP=;N`uM8CcJ%6$&^Q?>Dcrxs4P$Q9Ssz-L+)|L!NsPL(!>)8_dz8NA)y9!elDIn^5 zo_}f}<wJn`4)Op3F@RBoEr5)ugUz$;2}?{=HpoK|u0!`J`ol^rVALn%(Py+;pt1!h z*3Nzm%!~@XWTEXFV5b+*0DWnYLsz*QQUjw#g@Dh<@kvsE9TZX!eQ=Bia<C_EF6WB! z*6nKj^dyvHKcKdiN|FxpK%zt7e;zZ0AG+Ee`$W~KUsO2Ezdcm3aKC;?wfF@?B!&zN zlw1%BbNuK?N)2kIf)0?lN}d|B@G0*NVs_9Ot*`Rp14Bp~#R}$tCa3-jw1b(FXE<ze z24r(s2_K{Cx^TVknP~Q{#w4ij#lb7g*m{qRlYk{f4)fDO!`nGoW_FAz`e;s{n>~{B z)e<@tC%|Abpd_W;z(yWK_8(OhpXVoIaC1P}YTyoOX!<}=3>*)St9JM6#~6a`L}T0- zygp?lh(Qwxdr?t-uCSN<H9$(i?f@wbl{xgber<iU3{pNsdaj;l6kijOR7NjSj6pr_ zisy9+eGRaDiO@p=fPDghR1|>uGyRDB(G20&di_n+BkrIAL!%K^tpXVB(D)e4)kJGm z+cg^*WX-jXSM{VS0Cb~%A(npe3P4jD%B*Ct!?#2F#sXQqqlz^BJ9%B)TgCfMejL3T z?B+9bb}P9lGBL=A1=6bSBuA2N=9^|%pT*px=tHW;21R|K80~>jg?_lX#gAK|tf|G1 zs?5jq+A2Otl~hhq>+56-Lu8c_v{psMtPlt6O^tZa>g^xYk64XXH9`$<Rgh}gZ>Zgx zVEOcGIv9_}SB8!qMb%gNR#z&aiDXIn=0$23VbN=uTjy9#tveJCKBZO7hqY0q=?pdn zV;Sj1`%cx=Ebr9=aagNCVLwiR<YIT!4;>m5>#}||&kHJswNeqnM-PJaKZ&$3TH!1i z30h(-FYWh!relew9_o0M<+mz8dK(D(hWOeR;D~urk7^A1dzEGr(eH6?gnsj_z?*8d zutD~!J3q3Q{uodWHZTlRzxF74*E3~YG_K*hnAgRR=o_)Ti+B{@M9s+h5k-V?YCTBL zq{Pm7Y<|Jt$vkmb<FSmQe^WGVF%!zBU8_V49gjxS=4;YY1}%ec?teU*)-s~9Y_Loy z(643Ksy(3fNky~8WAl1YdHj?g7KimDPgKX#GJ+~WUo{haeA!sM*5U+rDT2npo2c!! z|2}@a7_G&F9)o_i)o0ygQ;v9Hs!>mB_mFC*wrRH@PpWC_*gLo>>X*=fVxoTSF3Q52 zNMW0KY<)sqWelTQ*RQIFP7&8@{4(PgH(o3@i;5ricbkKu3Bw_sH<v2yBS4E$(~M#m zYx1_5dw+Xp{FI#g#Q@UP#L`ySdRQ&$SCQ&M8=I$9VxNLu^&I1#hOV?4+sp_;V2rOM zstIuDA8&Bfzbl&d$K77K*P6HkLJ}1B6xq^3CI^w$F?+7+=I4raJmh(}v^Sde2LsWx zi$;viX?oq*9O1t)Y|bOE8Ji;*C^koM59}y(cNCj5M}gq{M#UA2vA`c<u-g!WUD%vX z|8!T7yuv?pdq@m+$tO<;9D%U(IBbsKtJn;cnydUh*c_OhY{0~Kz~vlO6=!mUex1pg zuwHO6Lej?WtR{Ofvmms9x3HeEJF2d@8-w1e$2$Mw)edZqV7gLO@NG1kGqzDff3niq z92GE{%~6F<gw2^p4o9&$N<0pmqY9O=IacUVY)%<_vwG+^UU}c}J8Pzn=67}=Uq3Ft z^W%RU!|xaZa(Q~p>#*eh=*T!i^}&kK4A0&5oeT?nN%6z!&aK>N{7W&k#O;`9&!Y!c z$2f<OfhWE@2!IsG=C{w}-%LJDftb&EIhLm*ONX14I6a=9h}GwAQ$iOcAzvTE-&~xl z{KWk1=5*p9=fk`LCvygy6I^wA+1}3dvcXP)#L6@DTXQL2iuhWRz`{BI^gZKhGGK?o zl<(>#>SLQj4C}}|>KouKr4EQ?uf~aphPOS$4=DkZ;07ZEheU4s*x!s*>4SQ-u!pv= z7n`UYB5M0TKaidFoq97|Y$Eg?UXe%hvz1&Ng^D3Ez6D0Z*a=>DPZi6)T4P14Hfp0b zy5a{a6U~?qVPrPk4T{@MT<eGV<PJDt58h??LzzeyQOO~3vx7iTpoPY%T^Y5IHX&&X z&7^fAoob?(I`xGF<pt!?USSwJu|pja?z_}n)d~EWa7HX7rqmraDrcxp2KMsM1-hy* zWyU{fAPoD`$;Cm73TM9Yzr+f$n^AG9ye1&1KE(KplE#c0weSyVchuLcacehxvQuSU zd1<XB8Xz_0z>S(ppiL}{w^ew<FcU*cGX;O(Lc^FclpWyzmS+g)01Kf8q3^ePlE52j zgyH}A(X2(I;o}F#Bkb29DCJxsy~20H8}J)8tW>F2V<X0vFrMxghkoV!S~_DpoV)Qg zciM2O3OhA0R(COhheW{nfwd7jv7dryv$3Pju!a#4C!<+K1?VcIl+I8FMoa8ZD?<g$ zv`H2f);Rr+TCL^qfm%GOA`{Feu^~jl+Xx54GJOOjGp|q?xFh=TDVtxGT?pz3W0#8B zl?a5>&LA2n?AW5oXoEy6l`XqVM!=<Gt6;Fzmh3^<q@xd{`3c<;wJ;sqZ9Uk)+-XyV zh(hA+n%U$&?dCiWEeh(;3Tp$6T&1qh7+a$5Ln|=tQt3uAk0=()W!j}9Jhcd$wg>Jd zYB%|Xfx-P+Xn9R66+wNO$wi>vCboqokHSNu@u&k;PYXlRu1E|)i?#zGD%+F#D4KRn zr@eIh%W8X3v-#3(F9ZG}2(_@2pT^bvEa;A=Edop3l8>gf0i_lU@Bt{bHCn#s@I+8* zk-pqnKQ5H|uMp%iiLpRU)bPuIQZ6y>d1g{ve3{620ks1BIBpt?rpAD~fW(fAp>%Ch z09%fs%0SgS#Zqfm{GwRu56Pi~rLJ|6@h^g<hVBPPmjS9@XL)gU41U^tBKYY~{`)EX z^o!u98@kKz)7SL!Zw@~h?J<%x4stSV2r-@zG)aYBG%hgY<i;R`j>b)*$_Ac*Md(mL zx-}r(*1ZAO@Hh|yBayF%q<ZazND#Rv;4F~UkH2f<B~(>7^MC6l>H`KDQUaa`xyeAI zr3m4W_(IPPiUuO_D&j2SN-ia&)t)~trV?z5djg@O0Vp7(K`o)Ea<t?)NvLKtPBPfw zFv)O~fhX4ll!<L)+@!qy(0Xd#x?wDgqDdziJW(?nA&qAMPu<r0M}sGUq#}5tS+cA_ ziar5w;$yo$js{3YI5iq6G4SFdXnJ0SgOMBwm7yl!S%gLh!vR25$Ne^TUegvPg<&xP zIDl9gUb-}|31CoZqw?>I@zO@Hlw|*usL2+iBtVlOloIXY=fpu1f;+4l%*d#14;2L? z$>^vB%+$^|p>8ugdPi7^^lrd#6llr-nid4mbV~^|?VAuZ{mCiNbhO~<-2hD=`PMHA znszNe$)KqWFa2ucr-Q7>arEsY3ht_Zkw3^`iu(3%fuFKFmJKCP$=3<!clDeIf|_^7 z(FiKG=!_*$;|QOMx^wnR>BvVb&Sm>~x_>BFo)cOUJ}r@i!FBLK_#_oy2!Y@7Tx)4b zQPnQ_Vl01B^N%BcQb!f#PistEiu_5toonqc4VrfKGn)32B&v9RykslqneeHSyVYDE z#V&+!L?n6orR<W}(6LQx&x_@6$UpvHM^$i(g>$R)B0+_0I*IzQwpR8-mr7yr31u}o z4OGHR=zts2boCi$E(1Z+qd!X?==Nps*ur14=`;h+=hYz8&q2NgT}5;P5+GEHd6OQ{ zotWW4;|#7C;~(S)+Y}lj6=V%C=s}T8)8J}d7=``;QXpE?O8Ehh%!g9C97}1s=|q*O z4BH+qO1NOa)!;)9m0%VbORQpzJS4ePpQ?uhN&+31FCp8IwO~|$*cG4|UPBXmxFw;{ zGbwju;fc~owq#Tc64P2lOV|fc6bMJ-MLsjW`5haHd+R$@S5=eHGusH2Dm|~js1Idu zp9}|R3Iwe05dS2GVib67-$^ryxa=8Cf~zmBB^Px$g`-9zTPa{n2<1%&F0@GPVxvs{ zHlWu2AXPMt5&eqForJO^EJ)4o5-5pH)G3Tj(eBbDis}<037G}KkA{)q1~8%EQ5>Eg z6m+`IBvAL81d1w4kAx(Hx%f0sXw#{i6gz!VIa5K3lJXF1(NGc4q-oE~gnw91M2LX8 zy(e8*X|oFrlax!Vtv3t7dXahK6n~usJK&?1G?z8fCS83-6P!%jW}L>A06>RxkNg#X zslC)_E&7oiiQ>0|Di{q~!c9bsoXQe*?zYU){YIG?8<ZH3bmkBBKvShQYy&P$yJj`v zEY`eY^CYu~!zP!Z7)HNCYRL9&(X?+!sM#XXZpT9=J))9l{sGyQrZS(Df;raqsRf}R zlRn)?L01{Dl8&%_2kmH)E?*$LeKQXNYhXg^w5v?;lo?SR38gYqDwJQ;_Q`{PslV9m zP?@|kvp8DcEi8a`Rz8ifE|~TQo%W)BKo7UhUex2f<n1NT3pH!&1TIP7l<wvQ?9`Y? z@YG8{;{fs~mpE0tF_FaSo9{#LBytiPDK3J{AYpQK;xQynq8ml6-P;CFBcwi#_U=!Y zIe1b*qqTRc?ulscK0^*iNt~2;9POPdRHnVNLXV}rLtpcL!cTv96n=W_MDWw0Z@(k_ zG{BlJw^j^#t!Pp4L%>hw4N?j%;iu~iKUwsEpRP0f<QcF-g34m+ZPM%IR}w$T_QCK| z3?U0s`f|Q!LrMyt+^QE`D)?u5ygqikKDTg0i)GFba)ba=1Z|Lv{G9Si3gJ{&CU2s1 zfDVUH&l3PybAveOiX<i`$&jH8Y^rb72BQLkg4ROiu`@H!QHG^NsmoB4BPP=UnoUNL zSfgxt_hFQjd4f?wP%f8>Rehsj6hIIPpI1A(>N{Ea-YiEkvO|no=_2g9pt9s(SW2+Y z>860sjRHOpOMun6tEx>uDTx-gh>olbMS-uX_^4v`@FVx63E|Z1WJUGOz6O7aco1dg zVm3fNl4kHFylnWfMfz5wrEl0^8cId*Vfav{H-&xVdPol?AmyE72A__pXlcN?1!6)@ zMKqP>ITD+ZkKtxen6Om|Q9T$VDw#hzqLL4TBdV8pazv#Zut3B}5fFs6A{o=A?i1t4 z)^&Mhkg9092yzlq2&%jy)HBB>LxlixCYIn4JxtF_<%v=n+)d?W{F#}t{&uaPwom<U z{fz;Y`mx<W6zIhaM8PF^)D#gFnV|qAN8>WMkp=x&=$Fhn*OC=>Kiy<|=2w)hbz7cp zBi>y_W?+Eu%(?$DlxsW*%d2fly+VW^Ekm%88sWf3J~1s!lXhTS#{;r0QblBQ)%F~i z%)rl(V&h$g(Gl%2Y$$8R_5s=CsS?U#fb`O0%4iutYQf}W^0fyMd-bYrXZ~&0`sR~= zX@5JmlIcYQq-qf#({7RPS8fd0F`$;Plt9%jddPJ14^WlPgQo<l(gQ_MH9Vn2s{ItG zGKti?4yv|x{-U7jTjX$ZK~?NOF!bYN>hsb7Q;Ax-nc`x2w0dk^YI5`72B|!_!k-8C z)8fI2KM!ut!^1r$CF0>;Gj@}~&N}j!8%&1hAMlJMX$3hWY+A)10`m%7Q-6mCuI7)D zZ6&msWDC;7>?Dw|UJGlkUr5jz50Y^jZ+G%$4kG^pc$NFc5j$ZaQB4DIHPOepuQko> zZ<@QaIrqssmseLbb0$Nlf~9BZ_~Z`>`h2ePy5{V4^=%3{_xps*&t18kI$-G}k8Twh zeg7gZuD#1@o?7V~5|ArTIQE@zQUPiy09q-ugnLhUXc2(bm4^br&WfYYq5PY6(OUIV z9BD)RwN`sm|FXf5yeV4LUx6=mG`qeYPmcVud?L;H4(aTD*Z+1r{%QFVrMSsA`{c5X ziFBez0Sj?s;+9{Ag+m##BhBVV)L?Qj(cuRDEUd+Bz7cZNsJC>T1XuXaD`<lSEdW2= z{PUUoyfRb0wxoUz&j%Fnhy~nQ->5{FLk(_zS;2iX*#U8kjBehk*B$)aFpS#jDssAE zI}cZgKfZZnrbx=e#2{nddx_UN#AmE8Ebow=6&2?M9ecToYTQ6)-5{BXnf*$Nl@URg zIeD9eWe`j1Agd42@ji4Y8ELVuuCHZJm*fLN3aUUJhE7VTuvV|wl>jp6b^~;6dEp8w zG@l0%#Ki|R0eArX1sh+p7dNx{mP0hB-7MCCHf@x4sHUDwGa?s<rq@#@zP?a)tjs_w zka7_U?0^D2mt4d&Nf>+)j-&#=R@y+P(L6$^t7txbwpsnXm=BVhQ0=#<6+O@j%ItvV zTNB9NAedA-i(jMO$o+UC1AfiUxkWiYMDrHY-;&Z8`T-KCA?T)jaFmwWsMmIL*SUZ> z=oz${PY7MnHllW_q(iS0k007<?%r~Gu&2yHqKQ13-{fLEE2*H2stcQmVm>px7Aq)? zT0!{D{dWwsSk-Y+r-mkqRlnK@%QZp*Ch8!KnuK!#YJAnWQLvd;%hIono{|SOx$sq! zf<9>L<?kSWWj3S$x#%*l_-Wh4L!aL80>y+{VomeH#Y>e}<cy1dK7}854OO${g^Oi3 zKf^M}>X!-Guo{9@eKagUFf5mvVcCQYBZV101esru7p;$_D7TC>%Wmf?j*e(b>}g62 zrxI_?dm~zYHUTnuwjI@B9UF*ttY$8GYr}T(k!DV&SY)SXU`EM?FrTwnv=5|n7t9I! zz-H~cog_*pHirEtmwqdiTX-b9b=mH>QrWBP=j<3v<>pWNe6HrYRIV{GKi8at>u;`a z#D9(xIezlTQ~6n3$zD3?(%f{8>{vgWfEHfPV^iYPnM-q(rxB7oJ<Yz_rl3U<Ioy)U za&;f+t5O8ja&hDOKNW`3xd?ubZEEE#9rAm+A2dsgp3L5tnmwfBOZfKy|6WQ`Z4z^Y zNUrP5in`LB)g0YYQ+5IK8R1)er(t}>;cmaQlTvD`uICENii6zV-m_a5xL?0?_rPhX z>aEpVug^{<!bO}eHb|M9a;v5&x3RY|PgbDkTRi6^+``OViTS;g$*|&Jw0>vxj-G>4 zIg^C@mp4}04U6&ppOjL`Sv}#_G!0SR_1VwAHGkfQX!(#`p~!IP44cL@L))eZi_*A` z-qJMh{%HB%F^rt`L(5N()?Ze!@`CzhTw2ZDh_y|#hnDqlMeRXcNrAg-bv(?j>_Hmy z@Flr5b5-$6a(AAszq%Nl^Hb~=al4r}J}oC)Dz1x!bVdz-!#$tLo;{%x^TU(rLvGij z3jH*rsrt$5&mA}|S&f-o_AH!aMc#^T$KAZhip#-A1E7Eav)}6VhZuYyKpXLp7<@Fu z;G-c1ALKJ9!7N_7N!VtTJw9|?XdujPxy^R+n&!Nl1=)M+1tyja3<P4I$VX(^&G)!w z={txd5JC*$6e{R7g@!^;nfnbfT59kL6JPKq4ZabeA)S^e@w^!tuMBVA79tBE>69eS z$XQ6ZH%+O9qNuGv65-xbJbzhB6SsC~10KLd0MsuCWccUS>WZO*2x7xICPTx=^bh_t zB@5W8!NPUjR)yKlw}JGWIpV=>H+gU~O&;zFV+B5xl!y@5k@0Y^0Yz;%-F(qLAUElM z;F;ZI5wA;lRikOU!9}hWS8R2VU}2+@v=N~0Z6=N0Z{=Ox3?NiD8zB5%RS6Il0wC1K zxvvQi_Japk{fY4461GWt{nokLVj#GXeYoSo@A8%1dVhZr4Q6ye{t}0RH`d=W2LI*h zB;310sDVI0oQKwhPy>O*(Ap3hgFuSCX;7=#V(9JVXm({im1xn45-ot1jw!!MwS)oz zfUl{3i}ncymf#<9RP6|j90Y~C$+Dire8+uhwq^UWpgA}Fx8^7EhW#A(MIEO@@~;8) zZD^b?)CU|J;OD9l2YvYr;L9M_t22cN7v&|jxExCA;Lbtdbu^xiV<RT~(U~z`6Vwyv zBL%ea29VAT4;aYo)vsvl&94dT3Bv^s+yw&!l4*4FWBf=3BUovL!E+;<x%pLIZ;(8p z<4LPZFJV?B1pyF_@YOVw<O$D?wY(oJvs14+xJ9m0fFx=8fNp)@7Z8MWRoJTdArl2V z;>Ijj#3~>kGV5Qd^BBz*xr!bV7Hd;2T;U~QiTsew*%dVofJY#$MYhDqkf^Lg4QOr* z6H*Zq<;dvUyoXg2kaVqb5h%18U<Bp>$izQUpCoeVnEHT`K`aNzu`Y789X_5Bs52O6 zqfP?eQeQAA*%)L3MllouA{vjvD;kBb4)EF{SJ3uH)t|sX`h!kg{EGU?)J2P5WqiEf zTBJTQ*GMx6bJd#wG;YfDlAf$bOmsybQ1|E5Dxq9!nat@;E9hoY4nX;(I+S6s6a4HV zE}*9*b`I-sSaU%nzMY{#I2GzUI3F-)E|b>v{UpH|4UaTQaLs?uy#ZAMj&bJ3W*PTO zzlonGEvEBY?GzRSy8?-ple?%=i++u_`3VYLnzNjtN&3lLBk`A{uLMD5v~LfF4)KNy z1(@foIUc$<AolXX&yS(t5R<5bnJ*yiE`udUU@|k&9ill$|HPwpfJyiYwJS6cx8m5* zP+r64M6N8=V0>evei$2#VF1a&GCt}T>b5Rzl@JdXNZMd*3*}17*e{q*V`yJq-^hw! zf@rAK*PMg<84BxUD*~57J0Qupm0e`puLXuvB<W$vS{Vq<KpR^%=VxdQyF*>Qd({3` zRx6$cJ{%fTw5yqQYHwMqH7nfb&|1v`@oJbGZR>UfW>#ykb?f$WSe*t|?~InefwZhC z@l48L^`U6_j|h-VW(m0I7IxEHg{Gm)Yj+4uXY7`APC;aw4QM)@&YjQ6UXofQHtKI1 z>^6TE<rW-SHaIDn%`Y2x3%FaC6pmg9j;_3}DVGLEr<Q}G0d!x;Rpy{h6~CLSnGbrd z;~Ym~T`=hjxeGwkKUq}CPa9DB*7{oXeDg2OT`;v7+|Wr9zT8p;a=!IuPPQPzLXpKx z0M@rabHaHN(fX;;`VTth?3tQcSyP{0w%PC}5D|Et%x(k>Zpl6lK>Qg`JNWljGVut2 z^oloAv-jw*!rZD4SJVk09xA)*y{0O)V*X+74*#IO<<`{3QGk)*MtBFqc4s)*O|K=v z8!Ik<Q(3<?I_sv~otBM?$aRIR-iY%F0MxN(O_g6wF2GEN1&+_W<n|g)sNB8+mPUjq zd%5H01Sg^}o^=Aka6RfH0CXlb@5yMnx-cEYLecuu=Jr!5u=9sjo^Q}OT05AUy_@cd z);_4?68WcIN+y2(xqzB4%B`90Ek4Ydf>b(TZ{B48rM?&6K1(;UPp>W2c?DZj_Uz<} zq)z)?RK&yvxIlN^R1BCG11=zD-a}%*)er+NaAW|-G2j9z)+Q`@09;Eq3D1qj#P>Mg z$TStQEH4%?oV~}9>yr9gOO?pc(Zae`5ikV4=j1y7+Fl`P*v$s7TKWzi$5bwz*vydJ z!UwNon#2Ni1bAHmZ^C`NdzFd3gfKzFu(Ep7yc=xfTN)Hxs}GGJ@LC|U&?3-(Y%_<x zv&6x$fxm6BF!0Y81BU0pK9}TWLvOr#EdPfz6%ml_rX1neb^Ha;#w-hXxYt8smIXZQ zqXHhTu$Ik^Sr)RX^N_%@1kfumyD*^L?Aw!<rqwx})PUr@<gHC$0YMYUODoFcrT+z} zTx1sv9*bT0!$msW+~lMe{sqsm=+t2{+h8mlg$(WA8BnsssCbyZ77Izs1*c;G^FT#8 zR+hkYPAv7581?u9Qz50B257EEUe9|yy+LJuo|SMkVC8*=m7gtP<<k(A20loWD2<$y zqg+dJQed*nNf(YQCp8VF<fMc6l@{fsK&b_s%Ow<@Zv>Je&J>UpxE_Io-DuF*fb`1> z{9{q24t6AB8NfA(revNHkdhfB@&=&D4I72X^Frj%V*|g7Ul&F1A;=`7FMC0w^09IR ziiNpFWj#~8&w#lg!y62R$&6cwQY5`^n26g6Xakq@%@Qcin4_Xe9|Zwgpzz2+4Tri^ zRHk+v534a$&0rQbjFDBZg$G#{`f(RJD+ppv9y~}`YGTqh6^CIrh*5~{P=TL5^R`4b z7Mw{zjsSJnKg-ZeIF>Mgf%(A-0854mtRUwy>oq&N@=E%g7NQPr6$aH|9DURjnJE2B zd({ewPQN<BGl-=RhReW4%R#Cs)GiFnuTWEA2MyKX6=tX<;j2l1=}g>rz4gJI5)dW9 z9#)R@rtuB}KeQ3HK}-Q{1Qmlk?Q}^=WeffKfw^&kFWu^Pa0ZD@0S_*w&IogL^oDaQ zw8qTn%r-zh?0R72%M>e+MIDXnK+fu($2OjMLWNWDG9<^%QaAG1&U|<t2`4_0>D358 zv5wP$lWk8Sj_l@LlG0bfPmSw{O^>!K0(EI2Qai@~i_lSK@HBLzd6QW7y2R3<RZ=3$ zZ=1++)wm){HWjeP{U*DF$TBYS{bqFrCU!wAv}92hg_aoGhCKkGWh}FdMV6PF$P)HA zNGuV%u&|f2VX$|Xq?XeY5>ytYmXb`?&CgBWc*0W4igr}k>pu*{O0AqOd1W<-0a!%~ zc8(*j+(4tokyny#R++r=^olx@Wsa6t_B=C_c$F3W)Kv8hRO!;UUDaD_jwDS&nLLh! z(hiv}mr#ODVn`Asm6m<a?wQE+5K|7+A`__OVuh+|(;(Hwg354l<NSF&(eerbEOs)} zWR8(brsh2oEjM(ro<6!vvdQW)xnvMZ&ejok?}l75^cLsiBZ{OoNFtM++mHOp2qT4m zx|xr$un|<h3;G>|ksvV;k%J5*I3{gxaHv5<5&HBU>1%hUiQY*j#Eszx0L<Y>gToJZ zhSfL_$$^OcSS2?jzyS$(L4b~T$0aN*!6t$Q)wC2@c?QD-)$|UXbQlI6GZ-dG<v0@9 zp@;skB$EVINGQ1tlyO=cIBceH*y^E`zY_ZD_XdCM!$2_BS6>1C60x}Ow_2-%d~#=s zu9w7`O8}m|9;3jOu5^~<5?yu1Fqa{%GFa9q0V&c<*IBcFb;UYs!LVOB`1Q-dUFv8y zs(@JDZQNy=ZWF(Nz{+r!p|F6vAp78(0KN=&QANr9415J!LL$la!I0Sjhb@2ysmAAv znhSFo7Kt$zq7QNrSTM}R!#luSqwtjjFCDq;0vtJ^bO>HK7BhQ&haZAw0$Cs~fvh6D z0@E01Bqs^`1hpJqks%dCP!w>M)X-qBF?g#Gw{aBSBGlB_?+kBA8fc2;65bL7iwzzF z-l94a;VlDYCA>v#eyMnC*HL)uuaAMZ*hn02v2DB)ytM!&@q#1S-er4G5_31gjzK9R zay5pp=I3Trr*r3hAPp7+OwHPu&Q(UaO95olQR1MvWP@5GNfn~2p5K=v#818<Dc8-Y zh!IHu#(s;pYbGgutS0`()RZJ(idwbW@fKjEdgXcb0v@#ibIl$?XhVC1CU%;zMwe71 zHsrcuL=^)bp)J!GbNOBT?H!`6H3qDLS{N}9*`PIbv}HQfaN}?ZZB3Uv$RHQ`-aRwX z4_9w5M_Z<+FQF~JhSbp3B+!-`JV!#Ta<oNHCFgCAmj5}F11+%nCR)!W?(~_!D9{wu zxyiDm_f`Ll7(&(C<Dbi|GA%H2t!Wi?F62w}N*5f2c%vm-Cd_j|TrAWAGa7c3Hn_>4 zW3sv@2~JF9&-m5Q{QesOTOV)L1aSmW0$b<)?biTXzrluJdcUE+`!|HQ4wm7q|2(d| z>rel4N#6C}c`gH1W*<1Nyo+tjP*^$8im}=lz-3OZWd?#~H0Lg>W%8~iQrDG2W8JXM zjUHFtMXqJ?E=1O@8$Q|cE{p)7g%WO+1YSiMSW(_p5^Y^0P~!3~6Kd_4DHM<_6L<yL zm?T_)7|j2I3=HuXB|(Hu&SeT_lYhxl(2WNr(<+I+&=Z3iMv%_ju!k5{1qss-aDbo? z%an<|P^r3wpaCw#g))!p!w$~{I+8o-paC5B417tdW4J5!++=8wcTv5q)*9+8i5Cqs zZ6tLFw%uk{hbjsw5Xv(ymLQ5`JV=5hI6+4$Aso^m>57pE*?}M?5!yrvs2Z&l`KwA9 zN)>kTgs-a34MQtRo(7-{rszaoyW`?INf$X(G&p!F1}Ra6>(n}ID%Gn+C`K7BzjJw) z`bu&xDXW9j3wal?j4Bp%ya+-s+Cc5>m}ZbBE#*y4lqU4UC)M@dCkn$5PT>JV1rbh4 z&_%O0@?=<y${BK{E{=l%hc4H{;GSMI=L^!1dRXrW6N?_D)LFHp$=KWLgwm*mG1iH+ z?TE1&SMx5Y`7-|sNUJ(Yj|~Eu*mQXd$yc{px>-Rlk?3`lhwIc@AbQ7P0yynr5fy9U zIxzEel(1`oo98`p6!`j!69HfBA&_5&=4}hRz+N)YbLf@I9Y@$DaJ6{q=X0~h3cCV6 z8&}v>!d@j4y$^mFVb{k17^k5o3-}9o0j`jpSu(qU+uGbjPpZVngfybH8<UBhTm|MR ztLzrAS+%(}Re~G2Rc^ay&?zX-b{|2^5N<Yfw1fx;dDr%(+d();ygo?rmm~4oOCgT} z;?A<1Tx|#f1D-hSiUD5?x4>FGxvm+CT_*pM-Cb>vaxLAa5@OMpWM0Ya=iijZ)F9Xq zowo%7J4)cC4wF*({~<XLOz_LP$RQYgWT0#I5Px)G13h!FDe+c}y<F=#PxT6*%Mn(& zsxt{v1Xr!BtdG`$X-(TWwh_Wz-hxxm3whLgDCfF9Gp?NLV_yP#ox^rerf>YWB=35w z41ZlaF8(Tfv4p=qe&s3rg<!Shm+`*GUn0mw{3U~agkL8Mf7uZlMf{~>DozZ433WOC z8sSMYp)vSNkc`V7%JCPnIX__I#PF9xtdb;5R$#FZY>*BBMvuW?Kv+ro#^Nu6&F=7R z<1cieW%x_VQ~;>sGF=P+05dRFhQI7^T%`%U10HkKW#~=Ni>pl>mI-?ahsF2{yfq4c zfyYkauUI~I!uad2nolzRGT@b4WiZS|S0@R7rE+UxjO92?(j>=XUINf4Kr+Nh_!R6$ zqgk7(-f?0e?C|kGm@GqtzDx*qK|Od(0L;8c9ssfGo?aJ$9nP&W&?QM3Rdi71RV+d? zRq({|nG~nL8Ys*SWUz2EQy_PQh~;2z=w)ieU;^h###kANCeU?{re)+UwsHz;Mp<?F zu}yq)g(Fx?`b*wj@5n=}ZFG||0^W6P<GQboi^Bfq^PsQ~n*gk_;yC)onUiGab&p?Y zI~(<?HEK4k^@mmQ-DmEkfhiaVE&3-8b@GS1<BNE?AkstbwJY-E(a=f$sOnbmry1AM zJNTPgd8ggOn?~U(bF=J2cK_~u>S9I1B&?C(WzT<%2v_pNhi*Rbwm{*!iT7UtS4iXs z69g_KFzVt=k&0z+C9+#dejOpuzx~^m?ZUWgpKjl6BZ&KWiLU$Ratn8-vb$1QKHXV= zBLQiN>vL0n|I+G;>^*k(TyyUH)y>(>t0`P{;P4l$?^J$Mc8H7Wa;XbB`Q-q2Ppg%x zZ({Fd+57A;nCVptQ`4}I%?_rsea(qI&540!_gdi}i@F-HOKXb0|Fud8!%Z9YB&h^s zP}ly(L69D~*siJXW_^$Tbb9<ritf>$CdHpR^+{H@3ou3as73O-f0chK`o5j_KdMa3 z;H*T<M~cxGymB!Y417etsgKmYauJ8SovoLevmuO<rI=8v<F0xuPNxQRt6aYY#SQ5( zfkM`>M47hkQVyxJYl-l4xmRW+1(ABn44d1`8vDBX1)eQLQ@0jzh=pYrY^HQLLE%%+ zrK>4Lw7YQ56ZXs*P>^G3-=60I8H!)h#tE=L)OV^NCkPpR$BwM!m$e}`l93pPtI2JE zqU@Sk#32|AnOubQh|)}wB{MU-+`z9c7^EGvfgjmkAvyxufSFJj+VNF7txjNx?{D#l z??mVg4#tonm@o%%X_cEoIRw+;Z*G05gqVp5X^~K!Lqa=XVwVP@awfs8I%^`Ffa+H7 z*hSF^a)_|=;`|^G8A4%`W#_|jmjR{HOZcJ2_GB^Ik-ZijB0PwwiaMJ;)s)4TSf7U@ z?zl}!<zL5OlF@x$eVqg{dL~fk9ok@eZCarJrM8knb>tZh-&9qrgS>_N+U%Sz0GUki z!i~QSti)(07{lK}!p6|BK4fz(cJG=Em;`jPx<jH@I_5^mjg0uw$*ev~=3+|~)aQKA zX(WCbo81tM1A?CtC+zE>FyLJ~1ja>@o2>aW<+I-UyngKNU(Ivc{2~>k&dhL$QdQ@0 z*RM+AN;aHrbRZ9XOI1DZf>ghZGD1S8wOwkZ4>|{>c)*IPMNKu;vAW}l`JR#Q2^W9i z04$L#L7c4es^-HwUy3w>zI%}=!cMIq>Nh}Hpnhu{mE5gwBl<=LI>c71to1FDaD6Bn znS#~lx`mgITG2=#2^60pIW{{$-jgqWeF`5~xqP7J@+s!YZem6p#H6lOepEq|`ZdM% zezILci-jIjb~a%sQP<6e%YQYehb3p`<U3kxC%A+~!e%suc(^R%uW{kyDLZnmR44f* z%VU`u@3wvjxs#hL0LixhqG;Or3wd%!W^T;Y5i$d66Bqq{iwqU(CAt08g$@Ds>vjVK zrnCXeQooXy9c{SF8mYK*h)d2_FVrg0Nqlnj>TnD}GWI`8<St&ih(WiTf60$7)(Z5m zT*+(GD0Btx*%YUhJ**xyhiq9v_Mfx+VyoohoocMz@9Xy%56f(mTo7VI9fskBs6ZIi z;peE`jSK7es7spr&$%;Xq7LBpUrO0ZjMTz8q;il%tSNt_SkW-6mO$%E0$T_q?gdxz zrPsb#Px0jv|8nJ3wR~dgktlS`byrbz|CCR7ek!W@syUe9)g|ZkN4Nc%U-~Pu>$hPQ z5`qb$_;&U0?;qq~lI+jXx{Bn>M_hCsjF+)jr|qeETn@#1)U}OYWXYKQZ&?1?*Qewb z3}ky{*Y~Qv0@oJV-xvge30D&Ukc&Z3Lkxl%Vi432gCNk~fJcr&P(uJgOE(E)jq*u| zKGs-41<pw?yW5~c-Lf7u;QQ+4FMF|3VS)~Iv{UV#pB>~r-e#KE$Xi^?tV1f`jF1sg zg;4}&JNZkEL)Ej6w2Dn2z91Iw-jW!nG-m@e6THoP7GqkLCau66X^-E+q318xi7^g> znzMUAd}@o(2p0Usi-NDNZ{&-rj=e(zALqy@qE1#8ixf8_>;A#NB`*n}Ij4jmi~$x5 z{U^T%!cuPBF^CT+LSp$ltB+uIwjfrTq<8h?{KO#UeAy>MC3IRqV$V=J)&;YBa+PN_ zU%R0>;Ser;hn|$CIRTX0G;|B)l%0L7aU1&aG5sgR6ll|&V}Ij&LuUI}vh%F+sVP{u zh$w{I8Ds9dV$6MajJfX#z9MXz8WeSCqlWulyKh){+Ack#VLH-SBUDASGCW;=->~E9 z=|mu#4DpFx%bVfpuj!`YfTw2?7<K)2O$kre6Qb?w%s>Auez`?V-9WHo>RCJ$F}1L? zaJ7y?X6M?U2Ut%fVb=Mf0IXwwEh?irIlfkX#>3YYgpbA7YU)w=S``6bb5HLC`1;^c z_&O#ai^@I)d>w<?@=pO@hvQny@%2Flo&_k1aTLUk^Nu059T!Koy1;fpq;nt)%NfpY z{s<ly`HXHSF5&IzXR|{~|7!+t?BA=6GJ&_(*@NjP<;2M_-RKa6U0*JU0ciIsuVx`{ z!*$?oaEK0Gm2<K(g{ZJ;D<ANRoyeL8dwlBF3$@eBX|yn9kv;oqb5N^3UHhujWeR70 z*}n9J^9ZQ}R`eVM407f{h^&u2R27BJL2`w5J6Oo7tvMdcFJp(In<tL^js+_0FdDp& z1-pqUH7JLcfsaISaVO?gc7GjGFLRO#I8GmgS$W*6#~9-1a{#jrw(x+Z3{;(tt6LAN z|EEjK4)7w&Vjo(!K!1f<=@vif*v|~+6&R<Jk0~CFx?mws(yI$ITAg?#)GOt8D61kS zZv`Dug=f58cIRvdlYuP#&Z#H0jpXSw_K1LnWS<vx%ozF%lCjyKW!3p=4XKV;1bO>Z z=z~w;YGdneTJjv9eon6Ds3L3}4tAn!kbIxUk)54#)a(&OWJ1^t7cu;yEBzWTPKBWp z<k>-Y5c_AOwHuJt5ju#6%Z~|`M%j?4xD-E^nYmaTo6vklgeu6r#Kx<`fH&9#kWP0Q z@b;cF-iafD$l005N37idZw9L%te{V(BNx8sL>nrp!<kDko1swcuBLl^KvXUF!*<RL z7SxzITuGQz!kK2^D9_)1A$A>WXm#@IeHB4N?DBH1w{`mfIao7%fPJ&_Bp=!zFn81s zGwCkMBVLA#R&f;;+v#(Xd2BIw$L*Jlgw)g<mXS_frart0GvdOmgT?Jz)DP!icL|e> zK4mfa{jMs%AJYR4<1yDBvea4H&VLz;r-mqo`MFy=<d<!J&gR~&qX9~O&f@%Re*n&# zb%EV+Y^Oi#o?5%GR-ZIYacib>Dg<G@yN>hSYC!mI|EL?Hz3a^F-2Iu^nxa+}We)6Y zX*!2A_?F|3u1l|F(n2l*!Qz1AlFjX}-gG!2`(&=%!A05}-_3CwgO9jHAs!X9O(&eY zEidpePU74s!|pJTFFz&(059u{esS~G5WM)Ke&hYci0Zq%#c3+|ykCQ5JjcB;Gockv z8=13OEwt3qSYE}8uJHh8*{^YyEHr|uTbAmLRyiQCKf|KrwRD3O@{p`F2;EGc%v*}k zspNkBGJMapTiD_0KFZQ^=~uTho>pC6=}B|Fzpj1}PxmX@6N+Yh?PEHWQ9(Ki!Y=k! zBk6Lsa=EVSEhON0EKkJo1h!}w@x^ACx10VpfetLQHC{RBB6FV=>UDRbm#m=wS*11U zP*@Z?c)`8#ZB&g7wq>g&!6nI*XgB%V=!qBZXFu}V(It$wn!|0zloz6Sew4*}vm3p` zK?yWN6qV0zCbW-to~X9iR82fqAlVqJYZKBIoLaAfxJjA9MWr|-fFcJxE-7u*ZS-1E ztoA_PIl|81CGu-a;dvFN$!g0(YuPSGCIvNN<8Rf7+n`dT;+@HAHYHOEwY6a)7jfa7 z1QD9f_>-xXtfs4Ny!+I(7HV<YAhV^>9yP`4;J3W1#hf@&nzIx}i0F-bMPpRdZ7(BC zQCS!<1F!1VG3%TipXcQoX7SBf7F{%A+}<H9HGzWyf#uwu@ThTnJ2=V5xjg~W;w8uq zD<xGH;uN>%2=;#7#^d&0BV0_(9QzwX^oAIsH^dOVA%^JiM4if6vi{Zn5JPmbS?3`E zqK|V+vY+!6^Lv7_W&9p6?`}iw;`h|@62GUIaXqsR`GM?0?g2B4-)r>JL*+r;;slJ} z%kYKxVgZcbTg1CK2;pY&d&WA5-|O@&#<We`gqRKE_m0=bq1P^Te$O)(zo)j0&+iHD zAB*4nNAeoO?|sVoJxe)?-%}rz^Lr}4jNelw#_)Sr1b$B`o!_%MPt5QA#>=C4z+c9F zfhV8e`+F1+qxro*LZcGvPmJFitv_j?yN=K6{gHURkIX%q*K3UD?8)WxYOuE%Uym|y z6racZHcF|3;bRp`;PYbbMfs;mt_u+@6f@gR+Mq`n0DQ|iEiifhO|em$#CgYj-gO{O z3l%9Y<MY@S!S8Noyth+$7Oqbm+LeOyV)RHL0deshYiIm?dpDZ>vfx0E(wHs==;vk? zk_8r~-1i?$7ARS2;gdhmi)Wyt;Em=Ze$J>6-oY;p-`n?@JVI?HGhsKAGiCskg&F_1 zWzxrn4|CCJQ3_8Q*K{_KK>$TLs9knvvP&^cFmd2<b9p!JKm@(d_&GuPpo@Vb*~ye5 zl&~B8NX&~D78D1B4!0*>0$!1K7s0!R#jb7<{S>1I7sO{-u!yA~OCfhaGzp)kVZ}4b zTfN#+oT!hj&3S83+=L){H8wb|y45=3dSP*R)D2q{>KDrMI#H^hcCQEL;$WQ$u^7P_ z2+#<q&F3Q3R=v7aIF&J{Gf+&&jH$mJ1lYY+FZs{IFE66+%lp4?D*-9S(M~?#L~xnX zkk2!LF{EX81=J~q95qhh;{@v%Rb%GFqVu4>gPC(s<a``0<Qy+!-|cu;j%=k<)p!sV zJz#d@c3hGH2^#I)&nMGTphXG1-EKu^ia2j)16pLC7$O6hn(aJ4`pP9Jm0<2TR>^of zV2j<pBe;=~&g0N?s;?cmrTJkTC^{16h*VpM4aD0y18MBPDb93tx6dRiINVp5_uh55 zLWu?l=~U#?>+BO&K!Jhx^S=z`5y9^09#MA)>1AHyhx@{LeO0{^*mY*N=CdiJ4$zk) z^yOA!cH|kD7`SJ+u6&i_d{W-ybHR0Z9eG6?u!@)~B{w*N1WQwyl65^o+aoHJ(QjdL zv}=%iDWyfD)h=NK`EY81YNznFO*(Rww~P&)mSfxV@C|~endcR2FVJkE8pkp5IxJ1O z(|w$yK#LTgH-ZeT=Fy)puv~s^TM3sC=!zs$?zBjPqkTa&W1HdT=vYYMXE7j&$kRAp zR@)b~l$UOM8Sxik#y{xf=Ze+*T+_|Z&A`WR&?KS9s|Jeb@qhR^@gn)-qQ^f$m+&^w z<9*~a9(o)hJVs?l12E|d1iXrfi-(C2)(Ii2jpO6SO`Y!#-1vW8a`JHF%bz<6H-6^i z;l}SUA1jW99hXp+?)T|G=6R#Pruu<@Jqj;=`=sH;y`Ol`@Z!f$;l&B?;&;w1!;35Q z@{8idi!GB;c;%Oa7tQ=ZR38k2VA6%}1{3XOqCG$`w4tnSQ8p7w3rv`Vh~pa}bV4Tl zd0O%E#52%qW;bqPVF1$c!U+IKssM<jF2?|nCQvgxC8MJg1dw(wpKA!V{2$T~xI{Bx zL9#gxh%_n>g%_z8LOBH;T{k4?2wsdi4;?_oC5;1`Fa{}$LRdO5*1;5!q|GzXA`{Bw zZUa2E-N*0)wU}<NX<`M?2b$BZoFK{=I6e;&Itn-zjao7ri|~+~G^N^h7O`ZEAc14@ zGcbI{__xchEUqNH7o~&FIz|i<f*Ez%Y7sLoC}GCUiuo)s(oo`KpfCWURlQgJV8~H8 zQuS9JEz)g)9C;N4cD<76yPo$~YAjZzT}w^iQg@NsQCz4pxJBCzKnC|mEr7}530!<T znIQ7203yFp0+HW74v4(|?SaUx6M)E9-eV96E_r|B$iKe$<l)Fm$!m=K@zd`yjx4h| z8T#=t@#GIQli(6f(mC7D6lICKeH9OGHpGJ)FY|C`Y=LrDY=MHwrm-w!v)Uh!Snwce zaUCLH>`fZ@BYTri^H-AgG=I}bhzD8yW%ed>6fL{THb=KNd6fucBS|vR#nhR-$#=`} zq^_@ux^61Nla&<C)=_T1Eg`MTAKxT;(bhzwxf)f~?YIBiEQ6Ag?UvbZs}3%ARQcoC zmkba-*1kkdJIcO9g=1e*Jt2<dq=Hzuhzv;f+p(-i#~s9<PLDrzk{<%XvQI(oxa4TL z;|K#S1^9S!$2fyn?#PV~o-KRtQ)O~Ti3{t`9wT>z0C0N>#0;?`hJq%0>~aYe$t^3h zIw=!AqBIJ^M>i=sNUdD(*!&wYc7&dx3N2jtJ02pTWgp@JJB`5XU!>92{;mVE-NHk< zz05WtmRSfD3uhkrh@nypL@~6Gat*5x3PNFsJ&E-llt&s?^!?$`0y$;%nL<|*El#h8 zm`VyMg9L6Ml6ZqB6J8*Yfk@@`x>b2gM5gmBu~gtkQb<u>KlZ?dkWyDlvc#_m9CgmS zL`gy3C_yCBCLJ}3zK^s<{X4chU}WvZ;vM&2v!3n1&SO;!Ki%q6(m5*bS7TFW-UJ}H zM2Tu`AbT@y!Eo8(haaI2ao0(rstL7|0MaXpP>l8o_fj)Zh>`6Xe}A?{3Bj8Sf01{s z)=VUS6z?4fy|qu|35wAp=Xjd!0TQU9_*X|RnD~*78YFGYApI=lcz0~PYkqz@JX7W| z9cl?<#}J$7QPx8wv9`uzwux6-OkSuteNLFBmXh4!ey8dvMI_jrV$ImTD17CUY?sT7 zN`$4%)FU=3p>G&U8yJSp0FZ`(=jSANym7SPQ9?#s3aGIO9;H$BTM(o^XO>Y73AXLh zOUaq-bO#eUQYR~kFg4K}2|1^Mp#bP$wbiZe7LGLh#B8Cx$PL#iIMlIi%AA?Dmdp&s zg`|j7F*yc3vXD%-FO%ZTxu+?jHJqN42(q1s`eb09{_ogOntilJ-Q4!5%+;(wIuiAz z)ri5Oj!d%5lz;v(Oaxaml3m-3|H%sv9WMa=5Z6(RhQx9vL5t=F=ZFviYzXHNS|wzM zwwsGI|BGdY{Q;%R;-&3jGRh2)A~R!t$orsKF9058#no<p5@r*|QfNmGYnBHYNgc66 zq9jAnQ)-krYWrlR{?Y}~8?cheMJ;K!>24kcNFT#>l-;znD1lT5@Uo8lecJNE9G-S_ zCz3_U9Ixo+CUc1)C3C#Fmxqf65Inld`tKbtj*v;Y&`~7KRMy`t;ziLksjNlFFi;kW z5+N1wlFHhN;PLRHQTc|L$~VMRz9FXa4Qt%aRzk;&a+b<^kw3 +kCIdGawTzjTv8 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%0AF( zOiTfik3IyJsX1xAt68#u?@w9PGNm6Ltb|M7*}e$CE5$AH(Tl8T^HZIre<QE{buC=b zS^AeCU|h<->35hH+)-$64}bT`q@5jdQdyM2K=(>Rcjg(UUUL6Y)0<NXh!0<T$8fm- zHUnYfCGOsZ65FO#9+{9@0imaXM)0;Ky9iz;rgz19Et-AB8}^%z-tjPpYick1FU%%O z2huwKtlxitGl$?Bpx4-_1;yX>E_q~2%b`%WJGOBBhRjF431w!U$-JC@B|Em5t?Dbh zH^q%W^px9G@xV|9LmW>2E1kdQ(%%xtdNPc~>_#Os4e<Op7Sh_E9x)O8y2(&=XXy-5 z^$!4CfQJ8WH)2Wj0DX$oq0Z7|m={FFx<@@9-N3ySD!aO~^uQoT*JUC7_mUr*fMcgY zfQt-qTib+`Y#WH+W4;Mjd^mL*A2-=WPCo7sttrnvrcUMKA$O5Xa2iQ6b2+;E4bZl5 zI`GuMMt)&#j4Oc&3gl5IH~-Aek_bhr!bVhuji?G6Q580#Dr`hm*odmI5gbXyty#cP zBj66|V>qI`A7jl@3mO-S<E#4AY*^2PB%J+7+Hy#?j>G!hB9~3oJ|J7#)wgf(j97Ny z4gQarskviK6nE<l1`(A>*f9Nx3t;WS!Hf@~gsC;M(bXTo@;mXGQ`91E3U~eW0~#J) zV+M?DEl?9ot4shxJQC}R$(2pw!&N*{3V~lhZr#v~A-UZLED7!@?jG2&{%8{IMK(%X z85DtN=O}4K*ip>lw1AQ~Q<5|cI~0d*G4jacl`XV4^2kG#bNF=twJErRg^Js<=Suc} zUb$11Q(5fJcu{}W>CbY-^2RQ1msTB1u4RhcqR8@>sAo##46fEqUvaFW+X-#e$47j0 zC{O7hEzh}ckta{_Gvt}6p|XkKCIvU}KTGGi_`sk3wj#FiKkDBz{ywEX^5NUWwjW!o z$HNnmb9sp9jLqcbPX6v2Rm)NW@9_VN_RhF9>}`sj@ml0m{Z3zRje1#GpVyz&`tyuH zZ3Xa(V<Qtb&>D=66txmSzA`)|5HIQLeF34<e7>tciwS>-yQ9b%U(ytm7c@>;@-*>K z^!VrIlnZp8;q(7;B6v_~`uhfewx01^&`vT&sy<cT_adjhADO^Wz=!Xn@909qaqztN zQRvLQ!V&gLaCq7p{`~MIeMQezBKyL~z>lphx@h4Bw$%nUvfD$p^ZF#R`=_+&<H+2p z03y^5=w)~ac#7ZBAwZ$ZO`k+|ZLg2)j>vMxYy8jS^g_ST=Ej<iMNVB`i|QqE>Z-`8 z`N%+qOV3+_PQ%}_w~vkNc88hyMNVBo#+8u?uSX7D8=3HQq-u3!?wg{yD!h4}wj`|k z-uLLiK#=`mdt^6vo0aCRjvTr&GFN9|1e723k8A5M$xr4LD2Adx=38wh{5I%%f&c#% z83_4&sP1v6ay`wt$yD69K6sWF+<!6NCF)uC(-@2o^~5_*a!*j0dR!fYtxd~y(6E3e zER?T@$Zl?@>QDF`OyFV^--htqZ1#kL*#!zdY|ov+w6+hu)nOmE+osX+i@@JocK8MI zSeo5?K6a}9E4Q%zXQLmX-qcm2We6opgYTz_U(T@!Pt0|YRi_}z!tRT$B+nZWr!6^A z9b`E+D8>AnhTFO5IiCcN1+vwS8EE}^(}XFqEFrpDF>Ge0EhP~5`~SFG*iJ1fx>N!+ z?~^{HHA>?4x?!9AA1?a9EaFRI-`%}-VGPXZKBaya>5o6+?rsguAY@or6ORJ4(lUx8 z(D^%J9hl4vzv=*6CUtl6EVdGXe1yF8(;E>Pt_du33}02D(wGOIp4ZNEoj*_}p`20` z7gbVcGSfHx<V5&y@!(bI#or3QdClv94DV^polX*Lvv20al4W&!7A>nQLyDLyhMkyK zx082Wg0Fce_V+GN>SOFK-rNR#)Kz$M$MZqaQ@$NU?MT5U;wZSAH+QmS8|Ym=RZ+$5 z^TtNK>!$II!RyL-C+<G4ZdY$^qh;E|n>)ci2C=rgElWaW7H3O#>iR?X`g~HiMbcgB zm{<Dh-aD|W@I7x#W=+zA^_N~hT<0LqXhpR}RQEle(&lA)(qj*?lK80<uq8KXAClvh zJ+2VHH6mz!tAk%HRtm@T%l_(q6G}KM_8-e=;1KI~WvyYO5e(vFXxc)UYx#eYy1+-| z)~$|3cax9vgMJzoo>8a@bjpWyN6PFx--z^PnY;>YrjkTqOw}F9rc0i%WtdOZ-};NH z=40D^)-L}*8pWbLmGxa%3fFg&m$3YEI~*CV>!yj`dO(7ls;?Nw*!IqYRo#`@-u`qs zys^PMe~|42K`|(qD3s7u|2#XbEB$6yzasBy(FbRs%SnsI>~kfbd+@0Ps&>A;wCIaG zl4}Q(K)k7)(xNs3Yb=u}j)2T$bk4VdU(Ap8#FXUiAj;<#FiQDG47gW|&^wC;@XamX z3LMIRlg~_JiFdUqEz{WFyIPb6m|Z&K75lq<gEEZ+y|gG7YA)~Ww~wOJ%gQpNzwpu` zV;8+|&u9^~i;ne-7Ja+u{dz=uHp$G%Y-zuDrGJvssL`9fbgDalZIArv8QsyNdPHA6 zQ_-tZJ9YNEZ9i*b2{*I5v;MJ=HT_r%(Z!wp`YKL3*U6O=2e)^QE-T_+GV4q}QFx{| zY(te-`Yp0$Mwj@%hI4azArb7)0PxZRLuj5lfP84%1-8<EgMV`nIQ*i!bVH*GnD(}_ z?pkS0z%@^1Da9`THpT4flCor8rDXnP;#-RaoQ=Qdt{?2T7#qd5_xiAqJe;V!xTdvI ziyQa%f|#kq++Z=feWgnszgFns@s&TVSs9t*?r+Smypc#QRVONcmZ<57%(;oY1f7o& zKA`@@yor?uCFY@wudi7hnR9WN;}%!4q4FH%I5;t{q4JRWnr9+&bbo`QZt3L%Gf@>k zR5^~UuX#E$=esV){L0@s7~?C?SB{bOH7`cy3=WIm?h+?fUZBKk)pAs#2EBJ=&cB&g z*33IX04XIOu8coO)bKV#WDajtxMuu5gww3#8f9z{oSMiSuFg9+cZP6&q2#zSjuV`C zWKJf8^M?@5g-T8+<FSI1h|H1wv9;%}5Y7xGCzbIy!AVBu)Ve$>8F^SmaT2q#e#om9 zO3K4iB7sgQY2oAQGp{Dl@h9tttPVaC^*E<c$+*j_!5K%gTpe|%H7G4kHgyzeHT4<G zP!nW~*B7t0)E`)?!8=@K4i9QMTrHyFny|K`EY-?Xt4wtOu{wZwcnEQ%ON~6duKu!D z11Qy$)1Vi>s#0pzq4h(aw#Y-m3J$Ixg11$&9TY+uT0i8)`r>u9#VZoU%SUX!U?)t? zGp{@SDsRP%_<JO~o=Jye&E_8<+pK*Ph0BRovdSkHbdD}LAZEuBGDeZT0m2TEnyi{c z)7)f53DU|)F=#TL@-@ez$N!!U`C@s6NDXEo5bF*Xf`Xq;s=GqfeR>S$#p?op5h&ni zyY-19dt{0i^Nq129F6DMf|Z#S?DG3d#8#y5WwqvI^$~XtD6;*0Olz-~QM&)dF|u&- z3>v<0iPAs6dAxS>w#X<944%<6d+y%;%tU_4^g<P<u4lM>t4h7ne@4SaUkY%o`L`d; zn$L1%3%*<C6-*j<KH~PFb)LZg&GLRL94)kjxDGC*HC;yk{_|Wp$BH5!J>ZX8Xjy%c z*q-t)G_5<KTt52w?^O09zO~ptcRTsQ#hxX*N_$*Z+QpzV()xYD?vWZU`3%a=Z?Kg$ ztm8-0n!s`5@Q7kpni$Ct%Tz5ay{%LIEAppZ4`SO8Jr-j?#})3{$hDodWu1}M_u)b~ zV-_Z1?wzA-BmmhDkRd?-5G&n|7m-BS=1AK;R6Hh=@7k@PpK6(vkEOni!5;cgnJnI< z5@@8<o!iJxv;29N6IcAvm=T{fuiRAhdh?56E3?Dz-5>=o(v9dT()zq1z#4^ge!ELd zW@JcUv=Qd}ppdU2JMv2MQ8)RToJ4)$b?P+m4kRBIp6vJNS%z%gJsa<`G@q2rY^!h0 zrv`M5wfR@u@=H2&AYBM<IX**1r*cjWQD+{@qP8ve8%BJ9;X0jpDWvA?@d&CN1N|EZ ze~y}B_)$G;`<J|gper~&sBO2dqXYT<EA^dPsBeGOH}<Rb87hKzaj0p_>pl84GpOmf z?tayOeZM{-W6&?F=dJl)=~qyXP6CC$g+1#T7}RsDkZ0X#HG(sG0DYndL{NXe@)<p( zteTlr11%(>g*5^Cf@&&MO)$>dvoJfl=^yRQRFiM@LTEmE^dF?-;bR|Inwa3|SzJ-r zPPjFmw!q={+lBG`{F<=ek=A+Y7&v~%>+bst+Y#vEfAk{IAJfQS)<B?7xI_q#Yc#zG zbnhPdGNT&9BI%2hMcg`rM<>%4H}cuaXQw=&giv$m69c^l@QhxW{s&Uiuzal^j7OB! zKmV$$!KAA-%ykU8I^#Bz{R;}o$<BDd1+9$)n*<@}Qx&sA%6_KxwyysChVvQn*G(k< zS%C@Wvpg7Rjz6l)%$m=ede3L7R{P8&ZMgn0JKVZ}ty0x(Xy5h@`&WpsQ2g_@>8Ia? z_|3NxfB9GAHz@u~&i!bw+wZaz=ut9RM%M}RH2g$9@ULu@ixrsX30{VRBj9h@GJWjd z0%uw@l{UMRk{^syXC0DM<{eV-s%<c`(Jg;BQt%fFvg4e#Um7J<;|C=Aw{D-pMk@MG zrL=9I!s%f2?@Iak_9+|}MqgCQ@jX*U#e=a<rf0;8QZ@Wk72&cfJ)^oP^=*D?ic<Th z)A!K5V$F!9hz04pE$9wn?94BYm|va&xLc%i+vbJ$idZ&n-OhdESGw4#e4EzOh?$!{ z4aOhc?kmJ3BZ-f4zhO}9FoL6s!dlS7UWj!KQQ;N;xoTdA&n)pvhv}90>(>gQTBx4# zAH?=Y>($&MRv>s|>L*h2)61(ZlXncdkauALr0k3(g*6U?G}=`n<c#MUZI9?~dB;E1 z)hLL|1L$3UDzuUE_o`nd^qjW^oO~j7gW+HKV@mniRkFxz-p9MT6=d=bdTKX_Qms7V z_<^(b2>7-$FAT(#1UI%n@oEQ+NYA54<koilKzF_A_-<&A)0Fh)sAuVg3&>NF^rq55 zQEjAES13I18lrLCiA8(chayimwbPHO6@9QNu8LfKu90m{7xHv}D$=?Sb3LRBh5tp~ zq<38bgIf)Qk=BzeAy`<;OXz3*gcw%!2IU44y|n5<6pCFLv)`(#_(eFW^sG~S4fWD$ zI`y<2NJDBL1tmpxo^J1ddRNa^>Z(+vGtnBmhSIoz%Z#5N3+76~`%xKA9aCKPxmq=v zBgY?WFXWBtk9(=qE}nOjAb@}ag^?3bbP##<9R@biwo$#mfrUZG5it}Ks)r`Xw3Ves zYLk!&^ECVW_ywV0PwZ?kk*5cC9DPMv&r$-~kMz<eClMFkYw)hNKI1Sr4b6LxSs(HJ z-AqVp6hraUIIiJe9#+KBGAmPKJa>`QnG3)h&*+uW%7r`d$8ZLgs}JOboZJfIZ7sy} zp2NYP%i1<qVsRW^LyrfogC1YK!YqVaPcWiz+%Y?HJR|Sl_k*t$rmMy{w>zDt`eWXn z^1>Drq9Z@jPeI6*A`^{m>5iqc6mojfl}OHdhm}`_7EqtEbW-x<^;@J$#kE-ael;Uo zx<)ait|jMfg`B0&I$+GxkuU0#EE~wu9%gZhQ*)H>ht%{M{SSoa?h(jcKnLMNc&cca zgkG}GD2?`m!^k;lg{UgG5%m)Ov%J!EYvD?hmXilhRwOJ@Lb(2r{=jzW^LwT{y0>dX zw`xcoUq52hz{nL>Xe8Puv0izj!l`}5#YE<gvo*}djZsRy!YC~r*<F|klDVE7a+uUl zYPb`shrOS>iCP_BO(_30<X6TvqC?VQ4q*I}8}>e;PHtLv{`1J6%zWt|pT<OUs71%c zpa1zXaE>IhYi=+8_MGA?6@QD)L(8`k9`?S!tBUV##o<@Pzv<$48cC0~S&tOY`8Y1p za3j~?_I$dm|1;PG-gDi-J&wi()jGz!Q*a9I`ZW!BOre_GqerT%ts-k0ZcoQ@jP7@Q zn>7GHPwVUqu0TRi2dhYT{%m=92&ZX|Y&x+o$SlvWXJ`=*Zd)~DFI}(@pt}4@2CjLi zTi~3XmDgB;dh{Q3?*s>?DmNG~J>j1fCRET)J9XFUlKUq3k^cm@)Aiy_s-i5J-(Y-v zSi6I7?Qxu3h{#8GzD}o;sU3nwQ1M<N{QHk!Y%|N*F9(em#9fm4rs~3Y^|b!!v3|1Q zvDJe6B-o9Z!GsxvyJZ8-ZsJ-QxUiNwO&d$>VdqM)-6(6tEiN)2{ooqgd@7EuXd`8y zxofpN(dEFxJ2*J#b$$>oQno-fe}f%&nV5Z~^$Gs=k|+G%JR{yxx`sC)5nRq@=WBdL ze>hPo{Q^0pz+7<MpnP8Gzj<}D2an+_Cc3MpAN~>e>CI|>s+jFq4V;J@FVkQ%r8kn? zgTri4R_>^A)TtvH<1`vyj!jl_gcROG4x;vc7B*HGjZoha_CFYeV4ar6+Q0j0>+jpV zW<+a$2}r9@f5c4t2mPf(#d;=_Xz|q2-u=}RN8e;BlIw1MdiVDt#cbE#phN2KpGe-m zzxc23(Ov%?4v!FFc>jn!n5@Ut`}1`iwxGx0wa^{b#|4k-$K~1O#a`%OUgv)Pa<8av zy0l`sFJJ1F%KXuqy<Mi|tUKZS?)E3>{mG;h9_sqzfszrI`ETeq{g_c20!}KC^iC?1 zEIWuMBr|Q+PG(Sp44kNAt`l?aSG*b97CL+Sk8>wlrP5E^ftuh{Gjv#9$9Sd-$$%B9 zsOu&M;*YD0Z-FC<z4uFaj^yX%TY{_lh8bOjuz${8F_s?DCz)A|F_R=f_voVIcU~<o zchnB_&Z|gz-}jF1pXn%GR$IKXo^>pd9bKG{9&x3%tSCtGse?3A&9KlexNglyUtXZZ zjR912Xa|tn_zx#`T~{$4;eO}&g;liQABS6^q*-^ndlbn`wOx(3{S1d0<SAMfA6U$u zPcjI*!$JD-PqK1#(z>LkB{R1eZoRRDSESBOrbp0<wW<F8lZWa0++3xmXACN)zdZ~H zTLj5F8T+U~TJ2yxjb%Y*@8n93RTe4UfAx7CU#@i&wnVs{N98z&TJPTnvb*l#2=f=# z9C?+Prms$`QQ*5S?=d@j@JI7>A`H+_=_K{wsqTWN6$1&*;`T|I7mv}svvHdz@i{r7 zuA+HL(mN-Xl;?W+K+pOA7^V(JP+R)vAG8&{O+trX(cQ(1<lz;Q!gq-`5Uf|u2(Yja zVvkgJePHUw!7Nl#o381b%IbE7*|6FBhA|2HAof%i7l-JiA$qJ34VEWZBhuYicK%pR z0b1mp*p1(H;MY45Cr*~L8^0Gnw>97OoZF2p59~vY<iYDvc&J$vgLS+8?deAqsO17; z7p+C`bx8?Ja(cT7Bq8b91;&}*M8wRN|MdmQAlPn0J6pb^o%Lw&=e7?!Dmx}KWbto4 zToUQAWrT0HBBLw(Od;;KE^d(D{FS(ve?}qhHkYr;A6JO`lZ&hNM-<{7ba6HQ0fo55 zE-vm5D8#LDaY_G6wcWLEt&3~)bA`BnxVQ=aONF>~F0RS%D8#+#;->odDlRj6Iw;B! z=l|m{3(p8~^JR(QMs@kKUHKW{#=)H10=4=-GZ1s<iE^{06A_xxES&^SZAsA|>>Eng ztgvN5Mhh!mbnC;)$N+qz2I;A%wVDhc_pD`GZ0iTb?p>+HqAnI>8~*<DuIz?j@qFTN zYhS-TSlkEHnQg-|<@JH}#&FvgECtNmsIry64mpu6ZqW3H6>s=Xqydfd^wL8I8<<8V zt+Y%;KE0Qvn;FJhmck$DL0arNzF~Qrluf1=yX{RCne=U-!Ind>boTcoBh*a~01ZFS z<rt)`gj@Q5K#Zgal>y9#09NTK`&gEx3e%J5^@Pc%2^Ih=E!ofTe6!2>l%nZO>CO9E z&gDT)!{bUI{3K=&L4WC1J^{8i1g4^E>CjdCTNVjDmmOeP{GL!Y0Oi*2Sr)D0i4m4% zb5AHjdjCT#i;zBmPbw-4wocX-+8A92^Z?<f9cWorGA*rR`a^R|A3onvOW3vpFEE** zDg;HAG@khY_V*eCX25A;=}j^%8IZ0Ca@wfTuJTqc@&;HRBF)=?bTY_d^g_Fazd>Wj zqNY!I&$3Ji>kHZy{WC9T1x<g8PoPZgSrKR~e+I#dEW-43tZ~RPqi035akx)BS%m3v zNIGPh*Rvv;8$C&eJ&s5&c3E!dSrN@GKOa*LvZ%R7_ct`&)w3edIQ(?t$s*Fe!(|Eg zvEc-ZPMgx*+$(vdiMFilS&>kx^IkPqNDwN2?eh6yZDctxYqR$Uo@=#o(!|o^erFIj z2RRLbsPPrDtLfAxzZ%NUa}}kx9j=*GzGZ}^K1FK0n=pjYOnN$D;C8YxQ6X*K8x`f1 zCMc^YEWB)+f0xU7HuOoRrT~s$3=(S+YBMT+gYub(<n~AYW6f+c-#2R6HvxOQTjBj7 z8Ma`AS^rt(=hjF9@b4q7AR1VDAm4Zo*j-Vi!^iNcW*nOZwA6p%5aZu7w49du_gTo( zs^lV`+)K%xtz6%v4r+6a%MBzX`60Yt;a~8amiTr4C70Q+iCno^t7&IpJD`0n`_I6@ zVTB)=)s@eb&R&PjI9;~$Nu}%h_zM4Hgqcj~7x{`Xu?5`qF8_jMsqb0dn=K0m#FX77 z2(}>dy_>;4t^2;|LSQI%4Y6uJ51FIf;+`=!vTOwM;r<lS!d4KH`U_H#C0Ks!^D*Tj zOoM~_Rk5VEFhDQ_bLI+Gr`0nx77_qbM?zv#iDMD-`(rmIjo(s%beIjA5NUl{ah)9q zd3n39+bV~t=*tD!^jF6S@Sb#95G)adU%c2fAM>t)sx<)LZ*>E)>ssy3+NoRb!_llE zDm|0ZF7_%H`yItj>5iS~V(S&#NG#=k!Z+`uXF2V@Yz?TeEssg*8qaL>#^vhTMt>Nt z0@)>v3kk;DVY$}lM$#omuiN!m7D+w&oI0*^u9hGAQk2_A<B^Tl2k>8PGx#F|jNta# zM(%8i(`Zl@B;@oiNw_}>8#9o&uG`s9u^Zs%fmZ|l*}w~m2%p;bhA=Mzra%^8&NP^D zhQmn~4C~=0=@qib3&R3m`_J6>DC*{?$&tO@Lm4gliL@R>?n2qU4ZP-aH~dIz8IhPj zuFP%L7Iohia1zj4Jc$I1Yel-DJE@Nhk(7i-@%GfoMkt-?-^Png@&4na$Eyj^e<<o$ zoWm*CehXv3qWVlf1$TW^_+}2qwf73fX=nd7<;IB?{}^-1_sZ0&Ang_KbF4nK0%%vr z+N~<6fv(QGgq})ARiy;(aekD1^yz1wn7wB5*`st^U!8pP&)Iv6kN)&q6BXo;l4sg1 zzs@s?^NkhwshRg(faJytuZ77B{dHR_wv?b=2PsmI>CS?`3he3J0X%)S42|7-zv)~! ziad8JuXY#Q&}G65{-ZWjOK5te^<H&}X?l_=e^@`G|E6pJf;&z{ef&S=IKi>rFuU#L za<k=X{S`%rt(Os4wVYa4Q%6_X0xoTics+HV6=2?FUgafjD^+F6gq;7m-1fCMzoHrR zx5Gq{LX>q|pD}+=(7JuA3n-vzBWdAdASUl$dJg-)CvE(Ot?#;5{B67YW{=Xy2F(3* zIIQ!ey>T@nGY+H{MSukSsLR?){>haI9o10^dag{TE)C>6i}aWCrAX^m0m_ySpbdWY zw?u~8@dZ1XQ!Fw1<x?cCRwC4KSn|pDrkr<4=YD@qXs~KDSdF?;*_eFtFMF=|^I?0w z^-~2W7z>=&CJ<P$ah;suX;DbVB69GL#Ym%`r~TvEoHl1iHc*Q>Jt-f{myH!?uKwpJ zZ_+=oqj@%?akVez-VF}uT=&PQAg1S=gmzBIBJ*CN=fl=hE_Fce0lo|RPR7LE6R{B@ zL!^z92b$PW8OJaP&0qjy#xE6@)F_8BEb$xt&$*gQyTI8UOVwaJ6N{?G(@b-S+<_}8 z|6eUe6x_#hXisFml^LYt<D08-xidq^?;f;l`TYR$)6?vtSt8&Q)}UIwIM?0K)(Xn$ z8r=kdDBWgSqnm2}gPcJPYgdP^ZD)#zP}~#=JUkRCq-2%fO7^Zaz4+S_D(~ki=V&9k zhA`2uD*D5pTbu4D`fV4zMA2(qG*3^2@`E?qR!?ujR2^FGk9r|4TG<m0<<`R_7Col( zh@EN+akvOA=|$htwWk+;#B!;Vx1sz%E!^5)9ck0^h<2WRgd-t8%`LKI<}zhA()xws zvsb*wv_*SSYe(At^RR)WcZFrjMwhAaJ0D<l9BD;X!tfjr@;*lo7n3TEdf5g85$xp+ zDyEQr`a7nTv%2((C?q#jB)yt%s2Kmu!`3@{gk<*Mn}OA}o6TQd(?wadr1*%5l|wHW zX_{xw6OtVp`X!53He?T<i(!cW@GQ|w3c2ZHaDR^4dAmi`M-uM@h0izgn|O#EUca9@ z%ia$3fNjgUDO<X|dDyyM{^!Mj8TvC=%4@y&%{_{L=oOt~i)kYNUPuh**lTmTX%Nb# z8~u+C27AcQ%K!FHktG}^{iIOeX{e|EBDX|dD5B1m_gC8=A#>M@Ha|o85_>l{R4Y;y z{tgBpZ37JelQo0;(82jeL*{8YQ%pZ<c~XOMg#0@oJ1@WzHgmf%9<HCSseK8mG)!!F zf4JbUW6@ewm5nY{XYKtTycJSO{%RwD^kc57SvJCL%Ilp1C)|i5e+gU=WEGKS^sZkW z<S+qGDI+0P_5O`VC?YPF7|XBBbl8f_Wy=VSbq5O$um0FWpd*-vwPLY9f2vKfb=~q# zwtN@$C*|VV_LUD)c(MyWu-$x_+Th*cUgyBGjCIhvr*Z?$!~R<=fR5J7_UL*4t($S% zWmkpKu)R#6!MjV777nF-IlVZ%iC>ZQ4gBJfJk!sstE|nGRC;w)nH{{kp(p^Q5IkJ2 z-r!{quxNP^j;%P*RnZ1-_-ntEFN&87ag-aU80SitO5$WJ0+6={x0|`MqYc)X{Lc;N z<fgiKMe3+TalhK){*{?Mq;E`b=ci_YSJ$9+HM(|<SGy+UCP8}v-}FDfNzy=vKZz|C zQ|i)MZ(ya@&)b)FP}`gQ-(LJ;G1PYE(!i(3IUJ3ggXF<FMl250<R}a~$b9tD*-}4u zjAOnXC-+8Jwh93?wfSpX=myLF1TAe^l2kk{<$7kb=TKjpKWReOpdipAIUg;$RF_b} z1)NyMyjmX{5<?abS)St!8G4ei@u+E{4#RBM&E4yl%_rM{84a)Sz3B)=X*DO9MuoZl zHS&Xoc1-6|YGF1nbOduWuA*SFv?ueD|M)jP7uqUdX|<b<u5H0Sa_N}#dws@umnrw6 zkF4Z`GFI_?^c_0Fm^P45lvyUfMR6nwe*EU&gfbb_HdO)d22mUSxMKC*g(gWh2`LkW z(8&Oq+$11emmo_ezfJrO<u~b%S;(^I9X#g}-PGL(z9u_*!`V;ZAciQd)%X!IpFk<S z^=iJGfjb?rSad!GsG0N#3Y(e0zwg9EU+xUbXyRz8T$})qQ2hyf6*O^w660qsQ6>;& zxO4fF7J7R0RKa3#6&8Cft_7SMUe28b-7u5vWD%GRxvp?r{Znsr^toiSZTniq!s$~J zG%&F?+rJ;QsD}l4sFmA*=d9pL-#L7oxg;RgGr7>^9LhU7ZLMqpKt8%gRZ47IpE}-= z>NH_?Do=-#4yB$(1ygBDOqACk)KAZR44U#MPUzaV(EdUyX>zD_;!H=Z(-WXLmB3}= z3|*j}SwCc1{gCH!_glx}B7><-)a2;(`fhp+^%ueE?J-CzT)NM!_S2J)qrAEbIP%&j zOyqclA9LMZ_L|lvtfE-)uo2#3T?-W#r+y1#jzW94<A-o$tEtvY4nztm%MN^wMu8c) zcdZw%7{}91?K|*<cUyaQ`VNsX9}RhW$jXjwJU}{mZq=AcUvL8D?|2}7n~KEjX#rG7 z6MtUCH84I0COhje|BMwCx67k45w(%~$k16g$g1hAi|MyxL!V3?ZV`^INMwg<DG}Wd z95?CxM0UDn*TFs7@126(Q;xev4aM&R>}8%)9Mkudm_MlzC(Y>(iZA#_!z5h4<5~qU z4MRHQaPbt<5O;N}t1pdQ=Z<0W(GM>c5!fZU!|8;)<l&fiqn0mk@9)E#7qtKcVENTV zyHa746VH0d5lCv=-)|D-Cp({V{KKuNyeh#HrN%$}S$i1whzxt*m`6Nv?NiD0`(MvI z{=|I#3iJ3k@co+WdoYiK6!=ffqux8$JS=}L1Mw^V$}6OfW8f!g)P=f+(?kV$k#Zl2 zOwQPe_{JK|^#7G_V2bzke1i^EYunY6cMM?${Wsp>_A%z?Pvh5%Z+z6vH}=2I@eL34 ztrlsW?EN3$8#fur7~dH4wS42`|H3!+(EHCJHwpN~{xkk7zX<)T_2w71cJqr~^O^VB z>E(Z+w_T$DJH37XqW?s1%dhD{Z;vVP|Bl{n`%6!HTb26%iQabIj@}lkqyJ^CD$rXe zQ{q3-+k;m-diw^x^8XLg+fc|OSf~Ea(A$H}|KI2>v`201Hqw~D<B1ZPP1|Mb`Juls zL!s6eM2$%Jaf{s;#Qs{bOoO;|N2q=dUM{q9pHN~l>yA7wL|WyZS-E)9f@pX&1r$#9 z$a4jGh&ucr+&^S?NFqDl=3=Uei6i&2=j7|i4EC??rDkHPh^fi+vCU8Dim$M~<fB)e zM{Ba>cRwr_i2hy^*~g{3efBNLN6&ZZlU({2r*5Bqf=j>JrT=}q^k9D#uDjTPl{v#K z*&saCAi)wL;sfRaGRU6VNg(^PmDqtsI12%{FVco$!=56w=2z7zWuv!W$rs2I*n-lY zV8~FJB2@StKcVTFjf*&I!vjb0;Pv_FXow^I)|bSlmy}69Ei=>HNc~zi;_2XC)*l(i zZvN8)Bt6L=FkguUbS?<=mFf55;Pjcl(uT}xuBX?l?$A{GM`iS4cMWnn^dtzRk7>&k z@O>D#;9wyiedFA~WKG_@9=F(ai*}@uN*qYNkkUWSM{B<|T&wdhv5vh8oIt$ItkZfU z1#hyGQv?)yV2+U1)tG)+)`F~^i*3y=l=zygM%7~te7h>mzhp7Ph}pg~|E9Tx{r#p< z@mRC`CYp^#i)v1KH?HN!JpqrSn$9{Cv$6L98Uf2=1$tmt`*|n7Et0a@h$(--j+E#g zpC0~ym}(}0G<au8qQuPDb|={NT_Dbjm3Yem`F!=InWwzE_+7=#-@dD&xhb<a{bmd! z_Q9KG|Es9z^Ze{(MMW>LKlrFt4_y_-?&2<GVp;8uToH8OI**<Pe?`Ln5nWz{359Us z{~oSLO3({4m6G;l3Ga797tcS)j{UGnT_VH!!SC13{%289O}=*a`)F$}C64yE`fKvD zd8+xlm+}BhtF(f5Rip+RgnI?yqce2?K;}s6sU#*cALLHtw+F&_|0v{Nv2Ok~RoFnL z46rc@66%SK&H^?@{jb>A?Dl;;X{aGH%{vsG1kcvm*Zx9lN6}jA@7uMr-*)|d??3l9 zbt8R^TImjzE(!aZnw`k}%Z$a{I+cD8_c+{P3^ou+Z06fTs#mv+*n1Iu>Knmq$VdN7 z-_0izha#=YtBInCkdI#7ozx4TPG1!euO_3sEOis_EDH4^-mjC78@%6%^vB`)d>lI^ zjRr5u<0Z7Y{IgN<Vr<YNZQp>7{Ko#6xOXm7dsrdb_9M>ljE?tjqTYOT?(_jgj)s@H zQ9FodoZ1$Uv3un5v)?f~?i3wow$9ceBvc%!-@4;A`R{B3$DskNzfZzk(l!ZSW6WhT zMt1AqLt3H!2v}VckiJ}EG5mKb7lWs<i<pjXOYh>1AF_H#=VwfrqT<x9wKx?JQYlt6 z`(Jco8`CK4KtB3y)(!0$$D`DwN3{%^u>eVox?^f`a)uoWcZ}I#_a(dK0ovE^v5g*h zoMKa*sU?<;Nq^ACPUcL{!Gfs9VC%L|t=DS){NcjgjTF?`&+~^T@!G8i%qq8@v+-t1 zOS{u3`%qdYr%V%UUDnrl8e60Cii!Cbv%Y|miJ)de@Um+HI@i2^`93K5`=<x<puKkX z1~(7<9`nG)i+TTHIPa5;KXYM!gYZ`%B&epr|Kzl;yb0F<2iT8niA-m1FuzXkd6#Ny z7>_x@a~9X4HiBvPfoHo%eA?Pk-?ZljGd3aphxU>$;&9r(6kVBHAE?|*HszyjXNlKK zEu8wk9dLEzqx(%2eWaqc7~Dh#r)RYbRFW*dt9Gm@N28=Y%q3(njj&r^x3}l+KJSw$ zM$-GEW(t}t4naSbmPmAXnWAWoOc-W`&C5sMoua1co=<A3ozgKZLv_JU64_9x=`tJg z(Zi{p9Qb|9-X%D|*c*w<Pn~2Mc64ps@uhxb51r+_;h&}3)|oaHXxr3`UqB4XAEY{6 zp;SAAvqsUGYYz_6)a-TsxViY|d!Yvh3H2Se`XxP2Foo)+CrI6qwl-y>@7;sofc+Rh z?)WJBT&Rvu9qjP#|L!`R`ZxoG!&KFoyQ`5O1!xV&6T8t({)Hz>@+l-ik3fI$UdCnU z38><GykFXT{Lw{)2oA>oCtn@^b;K3MpTKtGKSlMd**P44GW?hE5BTe^ZQQ-FaShNe z`RGYdELxN}*b4NRfj(FHs{>&IRvd@>V}I`o#d;TV{_bG2pCrBLLlt^40ddHjnc~Nf z;iMC5lV19M)sdaI2GT+9`kBSI+Y9fMn@KrPvap;?@ZV`dM_s(@wh-Tey>rt0)uRH# zLQ7k|oAl0$$qIY#Wcnzxq}}LW-B0_cjsD#OrHJvA+rL%coo07O5F&rj&_KbNjMoUL zL5J(v=pOjX^;i8^BIV^F6_@&F7^GtjW&QHeZ>nwH$%AAJ#Qle#D`bYI1Av2^MT9q+ z+0x8=@S|&VZ6%@%i_APF+N%6CufJ=O+M$2J`mVzmaZ|MsnBK^z-~oCC{n!ficUk_G zE_C*0zoh#p-mg@?Hu7*q%ho;@j^`s@{L@uFf@y81y94|4_Q}O7iEr#vyfWz>kH)C6 zY~<=4ii&3KL2wYkijivwVukG0qO*z*3QZbhRs=np`V%CLzZ+sZ<+$#{9*xKB_cWw( zG_`Cpy-JU~Zas@EY%DbZQk}h2sZ3!2#Tob%s%3jqR|_M?BqN6iWXVVkQ|WWY|0e3i z9Q2Rw`DC&EsrV)ODPm}*v<}!)!0G_}-c#GiIi*_9rR0-?R}Qo}QryZPxYGn8A;Qus zDo{A7us-6lRN}XWa0|cH!EaUY8`CfFtudu5Ud4n;0>Yt`f;Vxz37>;*K}WgTKA{ZL zih;)D6?f&Ih)XC=$NW8bllpJ-PpJCMBoR#cGyxaGUy+LDqp!JHatw|nk0U|<rld#O z=l1eF8>npg2Y(c)-34YKFYX<IpZx_e*a<j3l%YKqle-V=gYbOYwbR94-y=Q{^tdAg zNcI#n%8F9`HjS!nX)a*^ixv%F+U5>?Cp@RzPG2;S7VF7{>B-=91B<zZ$HPd?7qwKV z$^B264qI*B!8>;b=Q{i9rGx1ZiAwg?={x$yR3VNq&A!dy=7ofJi>3zh7`Hbgt?T*T zw6ss8bx#_GZ!f`tN%5efGF{QaUm4=R%x^M_Hx*vHK_X-X|6=eWt*b~`SOl^;Zz5{g z3a$D_vg$)0k!w3RtEkq2#o?L7#Vhnk`C_h-zPPo+-xqgbnU|e2)*;Woh#SLmmSs}| zinEQyEEj}y)`d$sY%F;!I&vm20_lYyceqvUFBxkK;wiRh-vT9r?ql#T$iYWsz<u*+ zRM!#Ud(+b5X5NsyT62gSs<Xa_)BA_)d&R7S=r^t*m{CEm*y)$pV$nR+|Ku9pjX8Q| z@DL?V_V9{`&Bv{ROknsCkdE%W#qp4IH2t<VZ~I8Dk5V%1oP{X1&O#4~T)%)^3$LuN z^T+eNXV;Co?|8sEqhw+AWA?j-UnBw!>DDB?+g-cgp4C6$J?PrK>C)iMAJ8HWxab%m zBGQV37h~8z+R2IIX8a;QF|&cM3_~=VBIiyPg8rax<n|z@!R`7J-raW*1$OS?XN)&T z6?+R7@K?9+f1@-GmWI}PSGC(WZ^k$A(ST$fYw$+i(M139uQY&>7((;VKvT`@7p{P% zU2SYO(-DGiG4SoFcyG|bgBS)ngoz$J1i7>TQu6swj?EH%b>78^*x_0;G3WWXE}J-@ zsJ>WEF3;g9O5RA}Lw+xHTB-xvGoO(V)&xN<M}&$DL3+l&nxU#Wj)-0yX}cD&v@m8H z{oB5W@k<Ml8qkBz6a%|LcntISmny?zn4^m^P1#2Ohl(9zB5oWqc`;YU64t#w5#G#E zZy4^y57O^(R`rmbhbQfQLbLc=wA}E%Y+UA9|Hu6$R7u`t|AVC0kZG!bD4?oIYG0;C zKB7fciaYp2;uc}bOOZP6e7?k7&0LTqP&Fkpwh8&Aku+BLx(W81xm!fgSvMKZ0A;jk zw8R=(4>j4hzR9Zn8L5EJuf!c#B6E8?ncUk?1KtD{_u}q=owu2UcdN!<iDm>jgoJ$b z?tnTk0F15eB+@jNo%4|UX<JRh2&%lMM>28^g>3lLFFe{s$DKihcku3XkOsDGQkz(q zny3$)=(s;0Jr5F9;;%{6+PTF)l(UFHGoU&%i+N<{v&9tQtzqqO)5}XT9qA1prdM!v zJ(BED;Pv#1nDUeqMe2#DytHLSi<K$1aC*bv(ktS#-vmfZ5l6@K(altx9I-6Y`iR3D zq87fEoN7skbC@M=huO!)i(<5{9i#(6%g&5mOdVyw6D>-Kv|goj)P=wVjW>Y+(@TRZ zjgvbIY0`9<*nQf6vAjl4%$;nss6_w>-id<@J4+0}I{&eqpeXF8Zil^XS9|V07UW?4 zOK<o*w*fd1i==>}+}Q?Ht}yd!g4YP!-T{X}{@TZzlxw|Nk|t=M{8RMmTkgE0yYdTI zHJY>`ny3@r2}mxoP?*f`M1SLr;$P<w#a~X|nZt4|e{?K&h}GRf1rWjCL}WVRovOp$ zX&n5EiglpXs3WrRAyZ4$HF)LkpUNg5RZ|mL>b=X_`OyP|Nn8-Xar7Ej($Z)^W01~S zJgG#Chw*qvkJp5Fm~shTD0cRn&eQ;MyzF%5n=B3*ycsCvw?Jd;-YFKC8nB0khX6^N z_X#`(WYSTvfrpDB{wvwcQe%O<Rpc-HI~#ay>zzuH(US-^5L}BLP7E|eDon0Mt;WJ* zEFW!x4g>8^?lt2<@gnc&2@u|ni4h+~+UjU&B6BXcxDS5rG~wmKp}B{He4<QIFSF){ z-_*u#i(ktH)ZD=~pz$JmFbM+WUBC%)=7aNm_(4884HV@5X$-D~-jc%JGy-%T>IVD! zEj{S5TOSz5u($!vmU%%oPSFO6WTzG<Cq0)eUg00OgYHJ_DYMkRwHXA2#U=(EN+yQm z3hltPFaD5hmhj|{nH}C0vfwcG^D!8UsX4gJ@H22kO3gEacAkN{4Ssd)I5sappU!Tk z^tamOBF$)ib&o>b84|c<Lxswwe=>VnjO{{lM4!}2w!Mr8du}yjUS0Sm+e0@qtFq;P z;K%Ko|M7(O&7&)F<G{V-+fAe6eNs=@7J7?+DN<k8{U*nuqVALWefrpVA8oO~{_Plu zBgS8qUY_r|qM+d4e*N%9fk+N9UWVj~iz0263?i#T8#e9OI~}`0t^^qGEc4(obar#m zGY^xFPW-l8N4I|VTc)F1Vmi84XFmhx4m3?&KQwiTS3{&^Ue&0Ix%2$DXu3%>Z0e|~ z-PAl;Uoroab$MRA8;F6{x*ofYF<w77|Mj<mCV(b2M9SU>5p%5-QI<drfvJMauQ-Fq zyoui!(<@vHU!wWK(wE<%mQ2nKdO!ghdy<R%1)JT#YgHw(n%i7~eq`7x!d0$zol(T} znUC%Z8S$<qeQujbnY;R=4oUw_UN1`U>zDppQ9p7)3)I_;%@5==BpAq-?T*BZAx0X# zxE_0g76A`3W>Gz~wO@oef_Q;{EX>1{5nY`@KGU)tauXza)!0B!hhqL6r>BFTIQ{(S z_+T3|^mJXJo-V;G>(<Yg3qm6hkkd!UBdy;eF_HN^x35h__%k$e1~%2u$hTjEMpl>y z-hNQZq#tVOE&UV{*6?YVCa4399G^8Y^@WeZ&?yur)=(UCzlK`k6+~=g*q)*pxr>dN zv?y{Bn`w}OLhfluQ;BjMW&STNp=!T!>$ZIEKBCBjamYVmI(jJs_3yJ5nai)vNmGuW zhaNk~z#l-3wpg+7s7B{)NpC_~q{>A0=!^6)a>(#AspjHX^FB<RvZCe-wa<##_;Ku4 z&@bRHd-##$<Wa9pF6W-8UdoE>6pyy?ka0fx`j5nyWZ2}chvPjGlNkDTrzJGs4o`TN z5wSX07pWmv2UleOg7*Bgd@o>ES(!+i9txveE9JUy4<G0|3it5?>o{Be+<Rw^qtcLr zyqywmv9raEbGm<y2Y)ZQrLLd1bC8Niq^ASzct~A_F8)XO*S9l#-Y!mL2Y#EucR|j9 zUGmOf13y`Kb_9{@+QpHFS8-Bv^2v6DM*U8I6%Sr@d^wR>5<Ux~`Lc~CF1f)X2|&~p z<5yNx#(UDA7pL}1f8Hn6fQ?y=d!1w3QLuS;$Qkqx9m;vXf%}NR05Kn3Pu1NVeaQmA zRs*%Di`{8p=UBaq!mFG=fuwh(#INL}IW79hmc%iYF5#fOPb|>ilnyCTLiB_(loPrb zXxH?xV*V|xS^Hbkmcd;Vy^`oxgKsW_lpYIA#cwd}Qe;4JP&V2IF;I4KXRV&s<%(Zz zEKK^*js_NA=e2epn7xl~8rH_GJ%K)Rwl$jjD_)sYDI@aHQ<()xJVdD%vu9N2(LF@k zwz*J~3$0YhLwT2H_Jw(MfDVMi^3fN2#0C(W(NxT^(#@k$*iy8$M<y?6+BqJO+1A(- z;2{6NB8{tOjY)HYmx~f%_!pF9wz0AH(P~<QyitJHb+gVHTzV`_Zz!aPO^LK}4LaZT z*8pBGa6c|&&kZ2g0wE~d*bQ!EA-w?3hwpSf?C66PT-?RsR~^hBFy@3F=fQ>fWLdl$ zT7*>jK)?}Yvcihzqq|dt_q!6_XkM(%@q||#DmQF&yi<}a-kkIrWB$e}BYs7@-nzbz zuR-*So+1v^JPcd>q<5XNWY(gBDPEF(t9Zzg%#Es5z<W&gR-yvq_%5E52>6T9O9<Ze zYSMxhGV-?A2^@q7KOJwDAi`Hr?SWLA#N`(0o=pfn$J5b~+qZZ*@4yaOo^i88LmJG# z*;}7rJx!H`>mtr_RN5?tC0sZZPJuogerIoO{~z*yw>y8~{DxwzWAm@?SM)a|Bif(R z4Vo31mljzN>7QqH<D~dEOb4-OS{9(QVKd19WR?u+Oio%~o7s$Cco;;o_>)>ze3l!Y zDBj@Y8QT_V@vEl&MLH;yf)%9vP{eH)B?eNtf6NGY5a%?sCy*I?ELer}@x~_uO1eSF zyomi#qa8QZvuHiDa2}C<#TODL-ISFnEgO@wfhq=R=^M<Z(xrFCZAyo;78jD5(=C_m z(kF7+{V<})BV!S2(W>~zwBSccum+0}jf}OVc8^>pJI5*M&1I>bri`p;!NZ-xnY#X} zYgfLZQvW=vi#$@-pWRv=3UeQqwGX#XVQXAG1@3y(6j?E>n$qF-Mdv(hMf%Nc>BW7g zpiZieJbdCVk^2_w`!L)Bk@?8TBkhs<>dL@omH3;`8sirtfPaQhj2*7aW71S1yd+p~ z*oi{(rzEpu%ltL;BIqo4F_s}{WV8uD5b4V%fE@%wlguWiD^Xvs2MU{tZ29%qGDMwZ z@2WQb00L%5TEz<d0Rdv#-jT$SjgBEJC6X%9{5@M(zG}}z(>9(MHtlh1+6Zf!F*lm_ zIUBC8HqAAw?PU?F_n>CPuvKlSnHZ^}$Tf=%gZb!ZV?|k`D}pS^^sI`aNb5xu^6Ca= z`xp5iY_aVIXD$IRy=V{_rVDDi1E$twfH{%-YvsT5Ps9kZ*>HIifN<{zCgOc<ifdgf zW}94FmF#Oo)fq3d!EpsLA2DJBlYMK^FC+%ULQ2aHtin~!4DqIrC*KBl1L<u$Tki~1 z$YI3X2Uc;u7G(LHCMDBPRddX__miqDC(9D}{Ia@T`s9u-$d9<%PS~;?4nZhqd)?KZ zXE0Ou+c@{XhEaQ+eQK_r(Jbtz!e-lIwSz112P?7hYD(Oz61!0%<d1OBpvK&9zl%Nt zf;d+hClBYG``tqOxGg`M^xP{J6?eq;J>~q7K(-TYwKOQ|Xhq!{MjfZ9!xeQSQ9YQ2 z_K&^xf9`$1eDu)ckzs<@^Dqs}PL{jHH~f{~M03oP5pzIBD^{-c#s?d+580!ndYLI{ zeq`;=;fT*ur`JB(qU_qAtg}Z{|LN=_l)?Wq_P+Rz*3NmAc2!KRbudKk8%7>!t(2~G zUZV0q|1+%3<aqYD&5+}W&ztWq;2U`#_82ynR%SZ=Dr;xzQrdX45({mVM%=ZrA{<|> zaNKx3q4rTNVE>_={d%-BY?+=14;pKYJRxZ0pFUF~UvK_1Oj?3vZ+)CQkCyp?TMV@V zCM)vM$;X(;U*T5N!hRv3r+~hLrBgBr?rvE@)60r`ET5+zhxHs2&=ycF*UQrXDju>d z^OqKN&DQGe-{0i8xh8CjhdXkV6Z=U7hC?)X6(QS{ORHq2qc(q)RuhzpOKXDl*ZKp5 z2gGBN>dmo(q>rnT24tvR=8VBq^_2V2VXHp7U|?o6_ffTDVZ}y1&s~Cp*&a0M<V(TH z7)1POi8`=jKu_I~zsg0rHA!f&+oB<R@`{xgc4m1`;KQ*kT(c^Hj=6-!!YqZg>Be>; zCnDw7fiNlZg@5;ItIeO2dsyf-CB0ueJUl-}<8x7CJvO0CAFd9gi|9IB{sqSlg2Htc zql$%_28n6lCoyc5H@33&vyVnBZ*H{N;P3OUkh;Zx_!#ZHQ!I!lN5)OU%ygq)x3BI* z^zd0~&k--M-9HF!Dv+JqM|gFEGTfzUsBDm;rID)_D;Z!tbdSD8k5BSdrLUyEVj!Er zH<_e1e?pvQ{$85Fq*Pdqs{g@#Bt4EDM7TkE&j~?tF{?1ln_T%uRE3eYpTTgsST}4H zvfO7E!~`UR7pvY)?3Ne1<y+lYM5^UjbbV?x2Z;Wh_qHLe7_a#5!V0L(Z~Wxb;N*mK zxqn4Dw-?RozQf3M>c`JuVFiN&Km9b{eZ(%@1oZ2bUiEkdt4Z@Nw!_QqHB9c0<3+hi zXscN#j2^wxvt6bkyg>CM`V(A8V@E!e1RV~@_EmR%4>*Vj%Gvl?TrS6Y-`zjm_w-8l zao|qiKze6BIey;!n7YJhcb5LM@VTn+`M2<s%~FN`*PLa2I*ep)yZPiF^xC$3XX(Nq zftz#%Ua5Ws_As5LmxV<;OH+l<GYX%_hM$^@<&z0%pH|_2-&K8Fn2ZFIWr2AMol-JW zdZh9N!lbYDIU8+Ka;wj`SH8EBT@;yju*}Q+vs_}4OZ*}ENz|)b%ta?h`Uz#pls*+k z>e31Do>Mp*jjM|NT$UTdEITMm+onjXcA@^Hze7IR;X_$_JL_!I`&sCsYWQdDushRQ zZnOr$I5VX)4RGnfsFk!aUe0Fv#jUnyHkU}+XctS>J)p0W@z6C~*An#2V`}D_=rC5? zp02l6skrvyq{{=;$6ColpIemwI7sK=J9A2Orb~}I_!<0Q;fW~N$JaGMTBuo;EbtF< zc)y1!0Y0A4Pc~XTAAAgODZjF)@*@<r%fXUr%db~dXK5=x`p4&ah0oIppJT&M8~9qm z>nuGvh%{+QZE*YGZ29pXHQX~4`>UG@H0Sg$FkH9Xb;hf##-6JmA{&qJN{*12&YB=G zV6#?Yub7CWBKU34FC25^bwxAgH6K)9;kF1YxQ)~xE-W1^5AfJX+ZvJ`k5z3AEJVRF znHj~}V#@^lY1k@>tqs{RRiB*~!!oDLt%1e{<>aASEp$C#gBF9(#Yf?I37F&r*E0Oc z^je;JwhXqIkR;2sKTb^s0PH`3Ryzb!ZLcv}4}jvx(20x=?`%m2fcKI6fRxlRBlqQJ z<|HDY{S}du6*+w5Pxy(<m%k4Z;>tZk342+4iCRcrh-MZk4UziAHlDT2;cRp+QAnh> z@Z+!gw%y#G?e@_W>n}*V6z$NGS~W7l&&*Sad_nb|qR1yk?nEs_9qhpG8-VY+Lwtz% z*~)sDT5{FM(JpJJ%laulYDw-F@Y?SBlsK|DUepq4J&pL0efR{-RT*o2dst?a%5?ir zBEv>9d<8%ED6$uR7CHRHR7-FC{MyxUT2Mm|{9H{G_?g9z|Cb@cPwq4m?$y8dR7Fqx z97N=OitLS_atA)ok2>9rpI4Ms{RKZkU+<h}eO(h|?Tw#d$}fBd_z7@&0nrTQZDE<- z_zBkAZW&O_o_WI@K^T};ITRAD1Tk(#N@fWs0KY?(U@}bi{K6NOCUQ8Xm}VntE1NHI z(oEwU-BZ+NcQ8M7E2xsQk?Q|4alR&h^8vvO)|1CfCQhQhiN=SmfYrw2X+mVeLb2Dq z8{-Y{k_cC5K8BiUae)~eF{(1sdK?7QwLI7#xH-M(>zZa_u!$0^_Y7_3GVtGH9!9dW z!4C;<DZvO~n42i|MBb@LBZR%eiBduoBejX2?dIV&ODW%-;rEaE7TdrBX(K=$5)dPi zS3(j=&ov+q1VFl;B-`JJbHskXF@u@kBJz7GYlQxrkP+PP$~K2(=a6l^$~vl=u2~mQ z)!yWxt;Yme&C`*|!@b{YS`G%h^Cl*}h1xhI(L7c2>t83IM7=dn50*O3lci6=N|Tkl z?I`1Xww<w)LiFpa|5CyA749=f+HRvr_rUPQe<+@#zx@IF5-01iB@UT!S^kxv*bh-~ zOI^j4e{MP(tvC7CoE>PbBpQTTtK;<DLu)lgVYF7#Ry~OCB6xHnTlo|{Dyn6>^TkLl z`H{;S10|Xk3dx=~?1o|s9Tmo+k-1}mVeVlU?XF}5?itSdM|!I!>9D46sw>Bu=rEvw z;jv)YA00r5JY3g5d(4;0dVb56(#U0d0gXZWfI*5pykg9x{_`4&JMwQ7_+QX}hdp$F zY&B;;5Mr?P-!LnRztGAUi*h5aUr?*9B9ZwI@JZqvC5lr<T3=V9TTQM3_auI-L=jP> zb+Hn)HWPgo(aCJ-&^Dvw_S~JMIX>?6VUJL+UmT#kElWu5UE20yWa#pAiosQz^)q{^ zNT{%xsXaY6rm}}WcPR`r9i}LJ14UtaOYz_p={L5eJ5UXBo-9nABb}is6$2&VnGN3E z3xKM`X@RD&mtt_Tq((g)*pPkP-Y#_h)KS)Y%@tBaEE|AV8eS32*5l=9D`!A|rLBpK zd&igEQNfh9)yi|&nQt5v(BBGBH^v(`$ZaCD3&fMdQW3P7;5mZrjK|7o07BMRF~G|I zbuGh$VT(VsyJZ-VsAc>AKWN#$$icJ><pL#X*K`Z8n`eva9$U1%BWZH}!oG35_KoJj z46h#girGncjns_6_HQUm1LBVa+e5aV{=5pTF{tLhY#kSfUF6(t@D@Iq(7-8nC}Y7* zGbw7n*_E$-oC#2ryI+c}Kn{)W2=Vy?sUx?-j8Uw-5N>^{fIMHHjcc9RUl^}GnGchi znn}3MC74_=k_1QV@|sCvzd2UQSZ0jGfYvXe474666|UVLtQ+;XP0L0Pq@7UmX{7mA z?Wa9_q-_ix$;rXAwHLTcU8S}_EC;S+smS~#Zf0NV5^bTlo5Vn-TGwKgK0~T1?OG7( z6M>f^(k(ZK*>V$^zlZC<ca&g|28T<|l@3lifTQ#B=(<a-(SIcFYltuRbd2fOEnj_I zj<xi(M|;kr4!16jGS2eLOK9W^inJ~t?AFBZ5_y#(t$~BW27Y9XDSeX^byV%EASzJf z#x*YYsZ_D#q&LGwaF#1|Pf)6B1;o)RGE)8rNOY^=U)*Xaxon7l*wEe_GO^z|AZLX@ zS_8Rth041X@thtj;?CrQ4r+qzxf4jkUN>7BA%>At3nQ&>L#YJ%IN9~(SyrYbETeOV zZh7|%>LIJE=^j@uSbcAGO?#FfVI_BY&vHWw?USL~$e_&6U6~ugGJ0>p+IOz<yVh+3 zPKd+ryS7aY^S`M&)Susy&{NJaxqqS}d&$!>k0SR<B^YA6_Zwpz<Xr;D;k<PSEFVU+ z|C4<Xa-L`U0^trpFj9Hdk&4FaEJYfrJQb44Q@=E1K0=DkiF<<ax<XlvK5h*AcACpN zKggP!rLhX<V~)gNd~xpEjlYA)%=k_S%gBD(@NuQ`_mKMx9}SB9I()P%p*KE85C!CI z{HWm}K2}(T<@@pDpR_mlcoOk~u3sYv+vDRDMfS$WUuPQFKLlXALVR4RtiADZtjjtx z$l4np>qz_>e0+n<v^p7<>Bh%w<?o4)6KV93itL4tn;m`JuY}(C7(x_~Kj5b)K7^*6 z+*}3YI$tFX4{tiUkW_n|A`K7Eg>-T6B?j)+09@BYWV=M!3<r0HG;xf}HY3cICEIJn z1zo?S2PwqJLj%VJS#zh87Vv$xMJZloD$32l+L3kI!t~Uh-w4988_S(pNdJz)Cltcy zoQiUz3gI90BYYTPQ|{*8<tuotWkK-1YEN|vs_qqBs?+*Cp<DV*cI&yF8X<TGqL3a_ zDPGp06w2^0Q;e1rMC>HT17DL#Vs4L2W|Og3K6=7oI?E3snWiZWddX@*`i6hYXWgf) zyig(0zq?3qA@UpkuQ(qL3kEM2hCwfhHKkqT`SOsSl{uw~6tYXg^928`h)!tn7`c@b ztd~>~asUIxf>PEO1(VYWO4-(JV6&2Cv!E74{U+~p&k(6xc;7eGA91CZIk`2C_(ZPI zH+cC+3?v%93T2nG^0@XZ+2~-ZBij;1Zy@^DKnxXy-Tu}Sw2(|oNyoj3(gR~0HPALU zq~hY+IpfE!nR_k+>ZY>Wm1#s_ea@Xqzk7t8J}wsM<GdN;z3GT>c!L`=-fuk2B$VKM z&y5_<eiWt7<oJ|R*vRF#&?+=j?B~jN!yg64{VCjblz;YDSk$hR9?{9&K<;i%VXX)b zmA#Y4>%IC=WA3k~J?YK))IPx=25(ck{hC^D7uVP~t@Cf=)Wful7U}r2tNc1D4C=l_ zbzg_pJ~MiJ*RL0FxA39hHhl|?E%>{BAl!gXC)SUy|H=mRS>kn$XzBkf?KU8?miud} zyYhbi#cdMd=3PeCr1#hYK^nUPx;i?k+mLlZoNPZz2FnKIXmpby9=X@`Gdn5p*J1z$ z3V4v0eamNh871g7gYNqG@I&4G`wgD~D*gLtgu3}?VSJ&;F&B};!N?uFheR*nn7zEf z=8hTEQ(nt;VQ$!i9&(p#7yg{a^+>n*vk3l1Z^A=4zw=NtCAIgT%>_o>#%nsf**}8) zTKBg5h{hxu7!*qWHLrs3;5bfg&83NeANrrKL@)1<)b-Mo1%W<_bEY2Wqg7J7+N9>! zxCFn4gMB-aI75o6!=<ufN0Krxv1Y<+Dr7P`{=`R2CD@0J#6fXcYA^&eY-CAMW?u7; z3bd&0L^x)!DS!UQI+RZ@O==6eMCW%lo@`xESHTd)Fr`X*xKOAncX44oNM^^5_dh$t zj_>|Z$m7^CGjE;0h-(a8^F#Tx+nycp!%rD1`wS-MOpa2sKOGOgRH6pCh{m5Ag0ne# z2F)>UIDx&sUHQ>vvgXr+OmyGWb!_btkw+%M<AWuk8c07gG(_4QT|0usb4q-Iu;H&@ zSb=mUSf~~j@Iqanzma;pHq!bN5lBGlA!O^_-$x_399_VNcj82pZbLa{E@vjS9!yHt zo%E}A#L~!|eHFUF$v>!A+BvOICa!koyMF8De{Ik6)_6cA4c_!>@WjS@Oy;Hf%u@g1 zkF4Ys9~gu0O&uWcGmcsW_`1SigC8TTZc5YW5*boir1gBk@{0c#(i#FzPY!Tu7AOUx z36P4dYTNmAOT)P%g1COqaILZf)7r;L<a~DnNRK<DyYpR;rxEK6bf1aLJCXZFH6})E zh#b3l$mZmv4>QX)(ds^t|BJMLfseYl{{Qg=vJjNGL5T(hT{UV@(4c4&0o^4DY$RY5 zM7-2uu@PFUsJjp^g~UxX+qa9+s<pLVT6?v&_F}ntOF#(V4Z#a|E4EtSOT2(u1ib9; z`I>p}C7>Vs|9|s<eZSu`XJ*cvIWu$S%$YN-y0%#hZ*%>7(mfzwDzydN;)f$;h0D!e zKBj4Wx;u=$qz)0{-<i>Cwad~v{*(r(*7-s+TY+4zj|}lDDJL9hMzdTKihpjL=v)3j z&hY<`ujG*BH7L?dt+<pNQY6pU!X(`v(C-w_>D1BcpM82=Asf8=a+pBqPoDLZd_#`~ z^W=-9@Z>Kjfm>?oP~)Gnr8d6B-S-0+@b4lqeYVmg#*Wk{(l0J5Gj-FUjC{^U@=Sgv zNcGujgR{St0|DvkXZnoc>^|U~EFm^$w8THnIhh_@$vN`(|E$q_<jZ=%O?D_!kG^u6 z<>xd>K-if%t;U%>!(Gcpi@5WJEKxZY%rv|JN668`q$ykEqj8-{7q)TuI*BLa=iS>$ zL?4Pw6(_yRt#tLy1Dc;g)S3x6a)>6D_%2vS6ZQn~aW7U9RAAFGbMxtic5Y^0+6)5T z+?>YI2^%R9UlaNMB~wwPP$7m>@*Hl*(NnYOz%MU(7}W9FMQE)bFKLfNFf|4s8cA>= z<k11HTh9)PDlU82Y?(Pj<t=28Tt{qn{DCC?*6&hIvag!rE97B=^U>hUxG1#EcpWLR z7?XLrrotG+(({>k;B<pfB>7dy7|`SwAtu)>HjN#YmezPBd0%<2Sgl*Waz3389Ik}+ zoKFKBH*|YCzj8jU*|^7idJ+MePyfiJvL3#gPc!zbVg^)}QUqILosa!joK?urc^r4X z7&&D@DMM(SGoD6;XLeh~vJIp&ygMWPGBf=$TQC0MXsrFie^J)VN2=uJBaKNRyl<xw zT}<t7eF70T?DUtya5h}X^|-WiyRi>oIGUXXj)#l=OG16xtM_x??!^28B|WZ0cAWzi znSc&X-l8GxFcp;NuAFW{{jJv$*jTkX`o7W3JN;Ed%4sm=$bg{zejvnmvz@6J^XVw& zn1+JLG4X~16KaCm{Y%38`Ij{G@ju*9(Absi>tC|g|L_aAZK!t+lDQ-{9^%~0Jb_;V z-UGsg-6T4JzrE1Z($<@3NB7tFPc_U|T*}~JC{S-OLul}~%OtVU{~_wB4?92hA3Le= z<FNl&X#TPPBHvY4>XgWNU3&jM?`{hwEDTMw*@#Z+TI^Op0__O+7f<3kL~Hc5voFqG zxpAI(R&&hbpa&A_sxw%6>_<MP^tmcMl!GtB1fv?h78(Ku=>`Fu1OWZ3?HtfFnrJbR zCjzAVH9HhnkZGbw5BE<4>EbO<?G0y)6H}K1vK()!dx8Y5J>xOT;^)NoJenT=S#1<D z+|xAJ7h6l#8a0G;%^_~x8Tcjz#wQ>xrTMJ_etXYSTh*RPwfoP_t@h7Nqy?wiGi|jI z<!CEY?E?kCc!e2vD)~9XjpVLG(GX$(I@l!-&W>xQUhgXAUwD}|9w?0bV#04y_&SAa zNHak{Q_vCxy`)iYIXUT%Myf6kpHz*p+xjS#WzkqwUEy!d2NgIsa#HocKL{+^uV&1w zLJXpuNnv*;voymxE!Fx98ipLwloEyDjN^F*5cejH5E<PquZvdItW`+CvPD+DRn@co zv4Bu<Ce4iFpZz(QO!4=KbK=!Afr(eoW@Gyc)^w%{b*jQAE2)B1h$d*dg5FY4Dh>60 z1wE&r_Xx7Bc)U>YaN9498=eZP%iS7qGkO%0-xEJ1@vTbyuvtk`*{k0L`R?j4Xyqk! z@)V2MEA}N(0tgN@CUujtrw?)GvBSnqpJ&r*W56R-a#TRWlJAK-F??aZ8pRQ?pC3k0 zqGTlTVJr(bGA-Vx=tN1S3G&7HA~^1A;>BBsuC%A?KF-J|vgab@_e{oXBX~)9^-%J~ zp9mrP<8^HIb$I$UhD-luu+)4Y+0}i3+JZ72*>Gleu%4!eEqr}U*2a4AZuKih9V^K* z$gwIYdJtOa9*626Q<8iFWv3(f*6KfU7gIs0OxU0=`Q;rV#)e2~3Tsr`9lC=-N}yEp z=>+Q;c6<9dbSHsl7Dof^O`6U6u=<5ydie&jX5B^&k)8_UuNdtCm{+=eY#T+qn>|d4 z478!82aye}us`);TR$A@WMYDkHOd-T?;4xpwjE7}vr$DyJ!qFaVCF8UB{Q>4#<=nk zB)ac1*l9esE<qs^ldW&5khYD=mVc0SbFzx5C)2*k3qUi6q<h)V#@9Q8oI;aB)w-*= z2D<76|82S~x>Y&n<;a6fa}Ta3C_JkzJdj6xqwxgv%#IZUBMi<3L8h&?yzcR4>UFAT zw~uc?KM?Dzh>s7)IJ*tfN*-%g>hxF3Qhmv8EpxB)?2Kqd`|ns$%ssO?nKPu*@546p zL_u4CZ&N@xA7jCe*uVNl4@oOyvN>hw5uUZJJ~4-hv*b4HdF;+L+0R23XPFB66Aj-w z)nnTyHn>yz8DAr9zon4wiKg$u(e3mv4b8#j1q#QsOGv4agCPdHQeMJ<%`x4O+0d&v z48*dP^)?G2fBOuE0Dx}x@(L_Rxn|^)5$VhV>CEV$hH||#IEV~l)noIMzh)H6*3T(f zi#1Q$AxF~Xu4?*a)DQZ?HaV7Lnh%_kzxINgW#I+_hZLP>{1XB6I%YT7%udS!snwDn znt`{ZyBE+93p6PFgVh7OYkXmiBT1$ms$24>UXULa7~C?Dg9WJzw1HgN3v!i#^tT;h zB7b7oknF>=ZmS28#Na#B58~5&(A{G)h36-y0H4GCjUDRWE$`_Bh=2GaWew)}SlLXT z%dJUfi^&_)UA0!?LY<M?WLhoEo<RR*gmqxY4K%OX@1`x=UZwDQXOU8ldac%J5lhQ) z$f7Pna6vP!kq*rB<jZ;D!K(ip&ae(K^DI!Un}EWMzou%XKXD81;aMAD$+PPc16!O> zJ%Y8r^$vmT>=Rw@gu?#enC@vYz@c8wgtu;Kls<A~Xz5F57bFwy>u5f1ZLjk`ye8b0 zJYmk-`)|(68?NupaF;uRv$!>_0p*XHk5X~+HLaz=jU4+SOD<CduL45nW}OuDmwSXN zw}e9Y5&bkm(ci8K5B1-48em`+o>g!Yr}I)<vO~D=U3?b8?Dm*j(R_WuT-=V`(OJvD z;9hy$o<$~isJX2E#JSNlM7qx)ikbjg!)qw7Gli4aiYKT~jsM9S`HtA`Rq2;U?v?+Y zxuC%;=)Ao_e~=4WlLei$H)t>y6f=S}0)f3jOL9RGq|>1PJz_6hb$BLIEfLVG*1Ekx zpUefFmIb|UZ_wLwL6Ml#xkmN|og;xHGyb={*A7>!)66u_$I9mNT&{k{WU02Qi$7yK zO{8qBdd^Hn#<9&N0=<?x5di_d(P1{kS9#q@iyN;y-J$OEzQ6q-o(Q&MSpY1OdTz3F zv$-=zJ!vRiM<-w|8MQ+lY8aon9Zt798U7jd+LP)IJ%@O5zI=LZAu`?1Zs(m7raIwO zml%Ajb4EB+HTm=C7Uzt5Y;f4;7VNG*(e99Q4z<2sm&KSK*T6ZxROFb%k8M9&7xq8= zd`>^p_bcJ9t)`#d&XiaX<WNtxpA9_b!&JIHxgAZmX_~(|5K{&H78KRRR+VZDx#dJ+ zVqbvLBcP<dXy{L06#eOoYL?85*%5MTQ7@g%5r?;|w-M9T`jzihYVspkv9Y7p|70eC zdqrSxu%`j5b6QOUWF{c=P-;@s`g=t7YUAWcQiF=yhHfx<IyKqjyq3A9l_ayN8>80K z91GeJI-1H}!Yqhf`i4`iRev}!wLmj2A_()RS*%tY04=`Nv?ucgKlp}SD)zXfZ0>R$ zQs<zGZU&lbQk6r@_9CUiD5{y*`ozeOW|@T*H-K&D&3*pMPdLuC6P=WFaOR%45!Xmh zp<;A&gOZ+wAyv}K#(v6wIn;+gdKK~@AUaXjp+e9LHIXfOPL^)c%l4%v1#uniDt8}b z3|oS-*T|~uBVP9EU-<29=ApkmN*WKeNec<*jv$`nx;4&2WzD>1NhKpYxyrd7pT_>y z{mhrm(s;M}0$@(!)cTiv(d8B+ywtnX&(p*f9pH`|u9wJ}$g?kfSF}pH*9u=~*|tjQ za5+?O)iO2lU3m0y4>|tBRLsrStaal9Ks1J0zId}dS`=#eGNp~c)<p!?JEvg1IGJs^ zqmoMml(EODb8c+%spUQ~t2i04;a#aNu_%J{!l@&73<hGL_DX%#DJ=4+%jCAVBYrPg z9ak+XIp=BW5>vSDzMfR>nyqR>-wU`F<pfoIoGUT!6jV>Y#*R^`QSYl(k94X*cDWDf zY1*4rMn6NtVk=IzJSApL_q5POq3^6*)=VyL{7EG>H_!fq(}Dy^+0x}+tYR(Vp{2(0 zE$F`|O|^V6X0SUJFnkl&*Tr`+#6U&P3jGHnnuDzp4}K*A=?=L<{1>(@<BQg=<Y5}M zo*S$*+8P(l3bcZxy|JJ?-5cGfnBP&BVZP=cv>y!ig7jWUrZ@<tygMsD6j8?rk9xu~ zh}`o_t?Hsjc!BX(!OsmJW4NP;*~9(CR7AE%HLH=#z1)yuyW7Y!`5QBGnC9f()8uSE zM{S@l!(ruONBO&}G^kSr-YblUFnf4wvwMI=n2Pxa9SXu5lQPgS`q2hyuF6$c)*yDc z_>n#w-=A;N0{E-~I8ws}XB4O&$Nr?>YC`X;BVx4c+3I2Y)8hqHVMZ}>3@S%;u!{6} z(KG;YKG;~*H&XE^oMyV3$-rX_b3<ao1+r%}@j2i0Bs3t*AKlezdgQ{Mu8jUv1085^ z2Ba?Fp8AA1Zc@2B%Dx2Ma=mybvXY1JA$i>_Qayhz<;xq$GX9)3ORqCNm8?%ZD>L~f z&{xgk#9XD^U0qoE`MZ6)tB1nC(5x?%8ew`fO1OPZ>T0yiu$uPAok>GYQg{1fLIbr9 z1Hg>fq=I6O6yf?(wQ*lk9N|I#lh1Vr2L{Lc^X9BAhA+aiUI@?G&^Ir?nMp8^zpiW7 zVO_iT8@?`H++AI%^k$)N2&J<(9n?JFeoHur1jpN#pnH_TYO_0xC#1tIrnep)wYFz{ zjzDktp~5Py@oaq&gZTIRN(;|@4&A=H+f*XN@3g7~=;(g-H<r<fk|P1dSB>TbBXTEv zR{?Czu2CTSX7gp59BvKZIPKRM?=T-di$P7Q<d|ZkdMQlj(R8LfB<?CA)G0calycCe z!<-u;XQG`&Am^IX_(}?kOP~hGCm>_25`q?qlD=dG!dqJ{!mRmk`8FX^h$M&X+?rkA z$-Jf8x59(t+^q^t6x{(dWg7V8r#bMbXPB(<$6s_CX~cDhP%frHSMTH)pjLz$B2-iM z6}*G7+0mH&V*L5TF6WrUw70C1D`iE?kM9aLa_L_(`aU(C*H{tUJ9?{Z>3ljfITqZ) ztQSmE@RDv%Pu~(+s<mI(3X<Ky8bkW@SE*(;Z6XJZqYzYDyST!m&pToo-=yy#0U8N` z)4D}}iWO71T{@`csB2xUlRXn7GyGJuzl{wo#pZ<%ts;Dva>86^Yt<mL#S(XB0co5j zHBNdVG9w#*=X#R`ccjHupxQ}GCbEa|O0lU1?FbITAYS(cC?K@#Fw$Ai(f52Hb|7US z?A)vD@Q5&nu+UP;72#Pw(NZ#;K!5m?&0JX9Yk|h(y<mDcQH>Ad*I0IHZ0#A0%-mW* zL9woUG*1I-s=9u3qSNp>z9;;xl?vb8C;D1VdnxfDq*B53&Xp9`KL<}#Gz&?mt{8#H z_OHyKD|{<hjoLd|MUVfOs`Xm2b*v%1C*!}OSG#0>hSy~$^5gdTv)3_=Mk~z^sk1AU z;a{>D+QL2Zcl?E<y@(4gL8Y)qEes06p7fA-r@5acJ6)t3krCcNCNE=BGV6t!_F|6? zq1cLiPcly~Cfcq?+e^J@h?b7Mi`YGJNv~7W{9?#pt{v#Lu7$-xFfZAiE}yXoPAfSd zPD>R1<UGc)BR<)h(f4J0q=nnh!u>#SyFbo>>#*^M+W1L|fAuTkkGAp0DSkQe$tZZ( zq*HBFv7+u%l-bVC$Y&O4iUsPK0noJqIysYm8wshxdPRLlQ3n&1#ozXK=x>&cjW29% z487pet^G?jAb@t(<gbWteBm?GVOl$BM5m*H9w4s%2zt%gXyzEFc?N+D)`m;M!SJjV z;W?dl(s2X%E0}TOgEB4Ct_4%r=};Qe*D5@=Y$CZ>=g%e^!w?8Q9>001U@wdcI!%hm z!Q*^=3YsGajOwKCHJxFG+q9o@Z_r6|m=XcQzU}{+ugU3}#WekYE#2-q7xHNs$MPxg z5iLuG9!B{o!~GueavoyP@waNCQa!}<UU_D!&hVf*jR0iW8Frq~ID^*tuh?O7eX=Es z!Lr^G7T@#!)~N<o!(&PLJV{E1AW~>+!XO7m_S-smDC2(FlDnJLV0`B#e^1MsQ|ajn zEu=!}eYZX71+j*E$fp~2?}nqS_}N)jgI38kd>VbGsX@BRx>dZ1d#z32-Xn;20|$N3 z^7C_|dZOr%=`ihs+qNP<_~SbGVbtQu!KR2-)!Bo8)57<hBmM`z=ehLwW%KI?_mkh# zia%fRe@@4<>vPR^0`S$<to*!=-~@+ux&32X`t;uZ$llkjHnW=$W}3>5u92h6$ZG5n zEzo8sSc7PGGE~P-Z49%Cp-;@jX83atowCWW=TS)jBzk#kdffBQ+uQDH5U{O+AaR)K zOf%9MbvLV@=`S7P{KfDVmW7DkQvz<o-!)@TDR(E@m!Nx^URXt(Vgf9N-KKN*%Ewdn z1v43Y0g%F^u{>vz#LThs?0AFxg8IDZj_a)O!>B-ymI$?w5dAs67TypTeN?@CrF+~T z<bPm}7i+>Y#>%`nz70fW<rk!f^9Vo|j+Q1DzQF<_-LAnIv83_mF@P&Bw#g^S%H%}= z<VdfkU3^0_>FfT_^u;Ta<$I+!9GYX#wkQA8JHBPtf?s?My*gTw-1fRq45Cv5zpeSY zW&)WZx^1!(KANyY>*MGU!l2r10BK9#HA-*l_lyZ^7TKszx_*VKpA&3YnS6-&Ueyb7 zP%%{LUvhTk@b#>c=x_K76dyW$D0pD(+JgKcov|&S$2$9Yb~JnXugtNRYk9B3NLD`g z8dZoT6t_C`9G{+7gEI(#DaXtRMz?E&9^mY1ozgAd=ngMr1iLT*7Fzzz)Jh9~?)?TK zFC>@mo0k_zy&{GBW3lVYF6k5fhuoqyGoC57Ke50oy;gPTe=Mwy^?WpqQ4&?x`8Zht z6MI3Jf5|i*(L;ZPVD};r>}I2?acgfgmbh)x7-WnWO1rFD@UZ%WR0;mpDx%PWUdEzz zZa6+8h!8!ydx8;c8spOsX2NWYPZ{c8vZgUUq13(Ps1G^O*C`}XKm_6wMtgWtO>P1) zmT;;Cxm{?+LwA2u)&y1uou)kPYowEt)=Q(^Fpc;X$_F_+v=mb|)srx@1lO_iW<CN6 zPnAr|V?BZ^6H}mHiP3U7z7lir`?0cSfLIZk@ZG86R@6ub=)>{#6@<1!lcQd<5H|WZ zMEjShzEesmAFZRiW|+~A6w0+qA*i~a{`r#>gq?CQKNCug8Uc)qibSYiMWJD50w-nb z%YsJz0N7A158OWuF=`Q3`Bce2Xu_fHYunWX*cDFTsA*%WIM1E)><4LwDcj={8r(Pw zOc4I=eA6xbt)D7;E%*!vMn4J1ubSaZX^8oL2SmPm?dT6v$;;5Cd;C8Iyw^s2?s$+k z`WN#xT3?KWBX}lHlafBZt3Gk^ug=!gJMz~&+)*fs5NWOZDP6og8PCu+Um_ne9zhM> zE5U6s=V=Z3TDzFLq}Td{6U%!gK9j_0+Co^IL!;$%=M3G0ym$Qx+~hdR2)tx=69Gxb z<b3i4^NRD5Tqb2oS!7G0Hzdz8Ghh#oG^%gS%9dtW)s*(xA+|Klh>Q<e`{|+(IYTOI z4O8P39nQDWV7?AZ)WB1UpH<R_N4GDJU;P=4rWn23w>@fuxCH}q0pA8b>k|dsVQ<GF zR&AYy-Q%YzRb5qQ^nIoV8D3R*Ry1P_UmEv9GE~sKVU{MPgwu;gShrl241R-qt|3z^ zAFw<ab79$tt1p$Z2}R>JbbV&Mggo+ZDltu1I3=|_RF_3s>DHk$0lKn2zJ79|U_%eS zy^sMr3&G0YdZa<4I9#<)v<GbYf|oUi_1vy;JUq*nPhPmL-kR@kzh1GkUXA0#;N*Wr zAkXmi;jVx84JSsd+C~$Z`3Bw9*iz?QoobjEc4YbA89AUkXy{<RGlx{Tf5=RhwD=u= zgau}m+^IYra+tOrE&1Tm*vJ?mtRi~~!&PrYe`P9dQ?dU|6id`mBGk##_%Qe?^<XxG z_F>UnXh4IIrd00Ks)n5c)WX-9bgj918s7rW7%2K6qCHF(F3y31Z$d0+>*ILmEBff_ z;=IYT)}G;ACGKAPpn8^XBf+ZbnB~n7$qu)EMG<xkLhj!cKda~wJ>oU%b{cbA3Nr+c z7blN|-4Wg%dzU561%{T&C(n9a`YoZBuk81odwk!R`S#X7C@h>|m5h~X3xtSqRWU+Y z;wvJxQ8Q4X*bM&Km#S((AU$Ka>#YL!pg*We#+B6DUIy|{hY^sHl`&I{pjJaiz1G+f ze-+9Z7i-SIgWNx(^bvbr#gc26+etPO_`JNEP2tE(?(dA&7gCwZCyI`n!tk@dk&7co zyYfs;lMU<kJ$;o`lDTr{U^F}O;$-qMa!JqoWH0@ZS?oFCX$*DqG;v`rsMQ`r=1iFn ze&j!v^F>(1eH8K^y9PCN!%Y0DHu?v5edOQ2D8E6Q=NEB4D2SmZPyo!}&0Nl7du3Ch zr&sD=9L9;|WCkCYDEa2w>2@LX59!b~gr@r|0}-;3b4GE?TdC9Y^2US*Mh0?W57n^! z`6GX^ul>w^c|6Z3$0;~NN^N{yW6g2JANkK)^O1kV+Qyc*^0w9FztGsSD|N#Bl>)4= zAPs%eFrN~e3w4j6Dm|!zG*mAb|4mVdO4RrurG@)Z)S65-6iQ+Kn{-CEg&UWe^O~*d z(%*WzNmV?)RD^BxAK!JYKU&1|jKH=1{H=%E*rGqtqRY6mibelgWnV}^T_4q8nOU3P zWwT=AMrGXi0gO-V8G***!uvoj5P2a{FsN}{>V%O0&d%g>#AoI0Ui*98=OQD8nNDbS zy|ZjR{Kd`?^X>>IG?q0#ZxwYKfneqM3f*tO{Rdqi;!t;Mab4GY1DUVt;v3`LljHvi z;gNqEuC3nn;jn^J#c$`a*1!#Xg=CReLpWI_wr0S)a5@UBr$Q}T6hJ1v`T-llT|EUP zK|w(G`4>9^+~&Lz;Q9e8)G7+?kt2*Y(*c06g@s~oj|~r4*NCgsFwh3SX%Zk-kS{Jl zx0V9Y2b+q1nc{KsD`n^z19m>Cu0sXuqjT9}eU1O<H=gYDKe;y4vQk_WYWXZLke3(q z|Fk>QvciV!R*3(noddcXiEYMEqOoPSo-0BvodOxKegM!rJ+PK8g|+OmpDPp@^e;}~ z*{Q*Ogq|MqZtK_tD$b2}@r%TKymRBP?OWMo=Q}gCSt{8FD!SY3xtwXC)f3N8uVdUF zWHO2zTI*a<S?4UADWmna`N-F`&ZT3G=ZgV+_{(W(x?NLN>SmA38xJsEn0P)OszU7( z&mUVb@An}t-vN!hI?p5$Tq{G}6U{6{`R9RZ<VZ|Y%0`$Tiod`C2)NGtX|?jJqI1pO zJkI=gx#k&bY{OZFtv}Q}A6dmX>h@s#*I8K4Wgo5Di$urkoZry)S~Q7RI9kP{IyDrK zh->7<dgq6dZrP}H-!kWhA_swb?Ti=+m|!j|tE@@P$ggex_6*#zlJkF~&$3P!jdoT3 zsY1>bq8`}4A34>nK*3T=8z7TJxJc?uLpvt@wotx6&y|6LaqOjiy(j2KJ^eaNYOch) zfLZ`Eu^}={i-G%zbxKYrkUfQchp!;zEjJU^5ssfcics!x<2QMY`l69<B(7Z!l|=XR zT00|5^+*_XRcFqOjwS5e8T>qrrn72Y^yIN%|BS(Y;WV14w*5OZXr}X&h0gdSb%Z26 z9?IgJCBwv-wa%H-3?$XfH)7cY!E!TP%It+P!ks+v3^Q;}!~l}xAy_Lhj;szPrhkc- zdo$QD#&qU2t7Etyr#{dyGe1B)liPL=WOWY6dO(sKx3dM*I1`Hvg8&@rat{sB`P^as z5w@AVkgUNoJm%!Vm$9n@UqNw1hXy_B<4s|-BV$g^QylFRIVoKcR;B*d(MaEJ1l#FQ zY~i%L_-Fn$8TcfJ5sWAkAJ+AQ;=G<t^zHTWlE?Mlm9ysEYreba8|S;6sqVnK%v3j1 zJCT~|8qB0uVMHZqwTiM^D9Am`YcEXjX1i@~Y)xhSPgWHT0k^Onc3Ca^Tg7$Zs$u&O z>~ED#fRX97j*X3c=KIX#-M%OEfJFYbpYZFHJjl0nuNoO0-(C9ZTrhmp4h$w@d>Hwx zmO=`)h2_Z=U+6|+tUCFJ#4h|dikAy{(R!!YJ^PmkE#1C}1n7^rnY?!UPD=*>l~vCK zy-@d$EIPV<!_q*`{MkCHdT_XVLRi@t19UB%KK}1ka|Y#dE|e>E-?^W{oHGON>-MGG z-DqDb+;w_E`dOi8x6vONe2nHO<5v?*-<V@D^^Rv*d4TZ8)8Xbi4rfZGJKy9zrO>_H zz7)IPGlgt-zs)oG{ha=jv8Q5gL<Ag0Ub?S_F=<fG0fwFzNH3$MZGrSM%jbfel~yml zPl#LPfI0acziGWFpa#<_c)K<X;up<!sw=|r>$IkCldT8WPgIW{wKhJXAiPu+Z8zW( zkji}jY=U!~sg>dQ^ukmzD_(6v3|u8B_wV<rv<aNXr%TKxAK(`ncowi`nN&P34*@oE zl!z(gby#sn4T9pF*UW}QW*T4$2(pB)DZ7ZwI}u>}y3@&A4tl5HNl@YPeaZsbw;u(h zY`*?B-5jZ8Gc(B!>y>P##08VAe@?R2&rJPxxgTkBl3R6!(#x+Rwa=y*I%=GwUb?h6 zFXnrdUpW35JxF0@F^)&4+z0P4;_Y0}`DrcmNfbR)%_Hu+2T*q?u>>tPL95&%J|!41 z-k+|O#HlRS|4N*W_O)<ASUaWV#>#+@_zF3YZaPpyF@e6BWXMwa4`7JDbDAyLppgr5 zo&xSH5pw3zWHnS3e-K-0Yo>DC&o}Q$Y&1?#hWoLLn%`p#Ggqg&=dh11HPl7Uxw9MT zXkloIC58)X&*t?Ukd@z<FT-3w7dfUeRyiQLy}4<i<-UlY14a|juY_xAhOcF@mA@{2 z?(ClRnuxSSb&i)zATw2|yk<IQGPy<05ho|`H<lQ@fs!^(>p2ALxf3G;`K^k4k6hws zvN7BlW~Cb`Z?4RXepKUJg!B7`5!}@o-Dtp0t8otGCd<eRN*aB-=Xqw(TgoW1#+icf zu{Kf=n>e;lc-BPdzi?FdO`YICOUswxJh(D85ySAiV+&{R<8Ql|;O+_92F;62oSmOM zi*E>#=dQlnFgsoyVD?qY+he?HysU9{3iF%Ji1GU<B#&r}HI1l>9s-b#NKL7jJgZCV z&&CPy!6BQHnKguJPIbeoeqGX>FP_D+eBl1>dA6{CDQrf%Fgk&oDJyzN@{h0r?cFOQ ze++g@nU;B1Eu+@(xBZ>!aAj~{@~jsO7S-{A4F-#gdb+~1*6RMS|NPw4uiO;*4)9-5 zzv!vS2ThsH#0$XGt^6D6=8r{5B&xVzGXe)@RgpJqoPHwMqkNqh{YUqNv7$K9m1r!3 zw&<Q^JZFfZUZ@?u(ciA?a8-#=VopA*_eLrah6f@e>SwL0P0Y$SL*V56PT^I<z!3=L zuM^29#s_PMzfVooThV`;tS_of3_LE$2_@5$-a~w4+3wrK0B|V+ojFf}?&uODGqxIq zi8JiZS(>F@i(DLbs%JQp8e$`R2*FF3?|Po@rJth#1VM7#?Ed&eGtorXV6jr^UN6cz zT)1$xeJOUoZ)nZ^-zH$#7@KwUH&!ll4{6bSb}OO!ql@?UcVY1Ju9ppLL$F&psuS_> zj?OCIw@G6sX7osd`GEPOr=gX};~gc}NsL(Ue^*1wKq<Mr`N}D-amF{$9MOGtj6Wdg zZ$n3Kv`gWtuIO9L!n;Y*?d#-Mt)#gcj|VN9S)8C0UTyCyxZC#}5c=cw(e$gq-pHGr zO(M|!(MT2<+_L+;0G(l{5!RcoKOsbPEfci=vmCmf_(3jR%YNq3^$`0~?C!4@=)aE% z820arP1YH@{`+ut9RICWcZv=p^KRe!KzLR1w@NrgtR6@VM6A@8S4p&b8=|Aa@uKa( zCl4it<tmE~?i)b{b)Tl~lV6ap+d>KMShmxW*YgRGT_<~R4**Bezb2EOzh%c$$M+y1 zbcP~_J1cb#ixKnotbQSL+ByKa`~Y<Os`wS&_3`IfBflj2oi|x}&`tsy842-IdsN@k zI6`nF{+o2!=PvgsmjmG#Y_?oidQm~DPoyO5T)=+FYmvhm$6Q?+-P}0l2M0$tE;Zy( zqggiyj4wu*%=t#L`~5hwE>G{5=+fO??y7ft=l_p%{!cbmnfznd9h?`rPdx!8zB~PO z+6sIY8GL@(C%UvJX8B+E&*(WYhd<{?@A@yutN-gX_CVxiM|*XjI1jRylq3^1|4c zk1T(C>9t5PxV+!<bZ>dQ(nv_2o(vNB^73fOjKBDRb_4>clApgXHL4*IIQFM!az_9g zJ4JsT%RGDghOJh^MPRmdjeS(5&DzRgCVxX_<*FTrfYz2~t0Yx&3T40x=swBZ>Y)=w z*C_wd<S$)Zuk2}`UiuV!zeRogIR=2K-+}+*&&D^_$GbHP9_kMI`v<9(&*UsTQrGes zx7$FsKk@5U5+U!;0ZdF~ZYJOTML*ff>A;e4{IXXj4MDF}d$xUIDOQIELbGrz)hF7( z7>0l`MP1=>9#Yr}@O=w-dr+uGaor)h0F@e?_u%eAOoI(N#8**z8V85A}2J{@Vwd zs^z6Yaw4><zXWU~IN|Bv?9b`G&p;`G+Sy@OW*bPe4tWY(-uO1SuuI0GfJ+*B{@UT? z9r;~&OoQ-nnow}3B6o$IB^uIdoJ(h0+t3C__r_clb}p}!97=07I1|~Yp049tqn!z3 zc~qjD;xU%BWE0QwaH6%WnOqFVQ2N3j=7_7Z(+>@Q&$u@zf&*$mtD)YxsI)fzj%3|= zfl=>=j9N(bL^>##g0VnN)p~#I73zgLbaG<g%EsC;`H{ow<C{ip=<(b6Un-26sts2k z#QscU&6vDsPpJ8tg1kuon)uF*TL!S#)|FpZ^=$N^TD-@kj9nX2=mV!BRaUL8@t?V^ zb`+jCb{WpDiSORHCFD%bYje%F4&#IgiFGrJt||zBx;}jPCR78Pw3-fY{5O3+JYc1} z`qK|mwN;-kSQ>g<yj@%M`GS$QKO3uWmlUsT+yZbLuXl7RJ9F+}kxBP?bhB3DTv0nZ zzjOF11jR+8MWDowQf4<X^tfi0&|`l6R&|5&&RW)(&UDO#&GESjrQ`ie2497GziNd) zwpO~PB?y#EbD=Q<BKYj=8Jr#uke4jIR$N^zdW|WJzE=}Z);ghr`uG-IIZJI5lRvR) z1zTUPU6l&LYW=d6zWBorQgw+5*vYLb04;xFCIyFB=T4sW!Q}k+YpVXcU@rXTVOh&< z=4K6Skv-N!c3>{DRRbc2?Afj>u0BF|R)MFGgpwGK@5<47y!ruX#8x5U{5N_l^x&#_ z|DwN$3uhrP?x=e#FTZb}egy+rN{zg{Qu+hCzcsz$E2(z@l+UH!5g>G6c0|je-}p5B zLc+`PRs52&>5Vn?g^QRWV><`TA5=GsL!Zs>-lTJ71=GU=Hd2F^HDw&}iSS+xYkuHw z`yrhJab2_6gP_i)V=#lAN2yEqKx_zz6?Np`6UoJ=(U;e(Te=p>A8`T`DCx2vmqt6R z9qByr5~Sg;ng3z`lWw@{ox$P5Uo!r@{H=0@99{}mDQ%3|bL@V-9lj|%zzrY1zJ37w zyt2dTrzOF3BuAFkVfWb*uIHH0kgO%Z(izpmjDJc=W<rq3keDzbu}A4SU&D0YHj)Kf z@*IBjP5e&QCCPGtyzepkzLlTG4h}mc`|y_LX9=X?_;@RnPCpOHz}>t(M{4?<y^I)V zE!zIh2^%AkZoS2moZhl8#qK7(AUUn)nRI|NNZcbNhpEb@2;XfpkX-JHd^h~Ks8-1T zPdC*h9?DBC6r~iljsKJVPrg&v^>%69;ZH3UwUZB#O^q`jef};E;B|W1J-6(=4^q<P z(Xm+D?~)`nh@fOU;ARXlsk1HQwO!XcM;e2}jLD7T+X`M;dz;+Z*X}2B?;>*m>zqWv zv%)ewd=0OfWQvWwac+u6d%w*8VK2jGP<Yll7OY-g>zFF%s({4c7wVnySb?4qNZZJG z<)8JH<vV#s@8L<AU{f0Ybd!u-uyo0GH|(KvKhyU8VdrO>tz_<u3|Ad?_LW@D&Z*gt zm5|lz)3_|m#-g*y0@LoB610E!jmlAfNEtG{_r?kK`|Q#t)>Y{K`Co98%Ls}kR8Bm7 zg;c~ZQhaA_e8&GibF>k17);%p9{eEXewQEh9iwk@`f4s`0xfxsAqr+p6{886%kK5Q z=V}H=A;OG~AG4Cae2?0J&Hw(ke`)(Nwz?95A~GgiRevJmBxK-9$P=9tjIYNti``Fe z<_L|iYdU%z_LqE1d8t}?eHl8KKQVZk+%4(cksxJ6UgN(9{upkymT6>%MB%$==2eD9 z!`VkHc*DMK!fZeu7h!^eu5doyu~)diUj0d`=iaoxp4hmL&nafmY261>Ilga^7uDeu z<glTq_p$rlv({5<GO!u3FYlC;sz_KBO|lbQ@BWpp;rKoyBNQ3WgVIi3)s#N>Kq^SU zPrZOlQx_%n3W@C%a?M^LSL_w?y}d#%*ehg^LY$H_%tQOGVD!Z_6LwlU46R~O(u9dq z9p5M-kj#dpui8VLUZ-fSL6X6Le3EjXz5#bBTVOW3UhO6CruPriOSNleJ6DFCIgB+m zWenbGk@(Zh%xCVbT8*4jwaR}cQ{ww<T(mtzLohpPvuLq-eOvmer+BS*uIG3@8q67? z`1Z+hx6YBBgYljf-(AlHSHUh%dA;Oi?=-+>6~xRd12ccyZoZV4)@Vpp+9mlJub!Mc zk!f%o(%oXNwBB5Y9OV8O77SITu6hTx^{FJ_{P$re<L=(>lUF+hPY7DmsZP!HpYLNP zE$E+4{kq1{s!y+aCC-*TW=c{tYHQ^Yvfv182Rr7)1)s3($DGR@POI~^#j@w#%1{5J zUO?(Feukd4RWVeEPYg;^xg?IJl8NkL^L)$w9nX%h-p;EVGcg!>n)<g&$)<ynwB3iD zT21L7?K3_8^tjQ9Nyv)G6>L4{UE3$}p(Rxtw-}k55kBVWZ7elI&^#S}+u@$pE-R%~ za$kQ20P*d*<Dl!UKJHN_VztU0s|Xh*hv}&9z9#0W<WU48FGB@)#=Ew<Gm-~_qgbF# zr48Vt!`f%;Se3R5u;2gL<NM{zx3$-32&236&ReanDLX;kHm4(>c{VJa7`tM5n3}lD zZqjsX&tvI;VmNMwUbZ7x8`~Wce)p|U;4LRna`#D$hm7kiMihk4fs&?dP|;Ioku_rg zepT3CnTn8CUCQYTv(P4ZUj@U<4283uiKCmZ2e<eHUPr_yjCCef#3zLPt%V@bePbuM zK>-+HlI9D4>sthP$tyjl6wjF;HVO@ZQUJinUcnnRWcQm7vvF!pT{Ll)h;}#I0RS4j z^zBVk%7-+J2}IF%EV$`=qqE>Px)}DvFUEq?#Z59@z?~G9AUKm6jRPs1NEH{YJ&|5> z!kViu)JLcNxavE$V$_fxRU>>=szJbfo58+8#xs^LEqDRoJ#TCNMmLyTi9PmauRq#& zRk!C6#jC6tl*Qri<JaIA1yy7G#!f}wVe;=aUa>xxxX&5+PM%@T?P~JVUwwSFd*uVn ziWl-@PJ*@R`fGO_pPD3Z7rfK2K4Fu<1b-g|U&Oa-p7ggzP4vwsJ6#c@tUGMZ<`#&E z0`BqxsJ)C3=85(ZjM>7DO{njAwk^^@Do^=P-bpGCx|#AgnnPI8eIw9J9E-M#_doH@ z?vs0nKFQG}lMNDm^<kl>YW&vV2}j;u_7|GOJDSt(VXvT38&Zr^b`wkMsW1m+XLPC8 zZv%-7RS5SD@UX|P|1?Gu-_0gBlBHhB6m5Bo6T~e2)b5F*<Av?eHR^n;1t!|7f}#s~ zpIDJoL2Xp9fNz{a?}Bvq^Qk|*cbYdv-)xf-wj~|LyK137Q(-Oi>)G~<uTx1|6s+^6 zXTi$&htnsym|*odor8kL_R<HlOKv0>TTXH?d38MA7Z^sp8YZGj^x5@l$Lq^xN(~p` z+^qH`A_&y#l=A`Q8Q{VFbxbqbdYQ*e!s&dajIeu*Nrt=Wd*%@DFcWPeER4Ib$NCZN zrey7*J{+^u7Uc}16uY0_|AD3g%h7ZubVamUFI|z>?>uTbzFqYivfzflkWH32_bbyZ zaU4^|&1EK-k!*n>jB5X=esTyygcwTlfuW9>m79v2A2UJuL*9?Q^JQ$6FVkLzGt8M} z%?BRyq+apnCB6;oTBucKsb$8E4E`aDe}t3J>4xp3Y>WF0hB40V-fY-J12cZ0X;2L) zkLo7}Z{y`Fi<NJHm+!P}zT%|}O`1^Pdz?<bN1J@1b>5@;$<4RNOm(7%n#tk~%Op1{ zTr7}oWB0VxtcsaW5nG0uNSFtXX;Mo6lFQ2G=?a;8_tGK8G^og(lC%sl7rd~cDQlAA z>Zp!abTYP>G}s=qQ)z6wCj;V;l^R->1=tSDH1Yao^<|kRat@J(%%n5bv`LMS>?M`D z(lB+sf5}T-?{En3<RKKt_|;G|U{ww1O+y^3mx8AmQ1maW@<RxEG0pz9@%OyW8{ms& zX#thHUhf1q^N?}F<owS=nCKMtiLR`329`;&c)c<6SC73Ppit^%nN40EPCR5fx1fxr ze|_TSvSt8qy6VB4!8o$!7!8C;_o`KN7L>WCIJcKQ1eEU8{XI|Y#|Esgf~@}5BWO8N z{M<_sREjFs-|F*dmpq>NShwDs0@aN1`*ve5=l0uWriHdk(HS^Cw~h{lT+Ks^uU?Ck zu7CA)?^>wTs|?Lg*52@}l7A>kj*ODHepQ}(|GmhPODn-q4hm2OKjl7-3206H7`bxC z<B=UR<KHO{C(a$MFl;X8V@N39>=Uiz!rYpkP0qDO(a0j15Z;;UXJkV3Rak@n6W@^_ zgpfV5jHi344=bIYNT-r0x#4J$v&%j5DML<wtM+jGi|qs=h3j7-)~L0u8>0T6QH>q` z#l`6N@>@6HcVgCBMCClRpUu0EjQ%Ioyz{z9ztzFig*~s1U)?&;jMHjUbrc3XjUkVa z7j2g+`NsyWOZ;u~C`@`<71Rlw{1QxKYyQKd3|11kXXpUP7UJN^!14eu?tIP&kRuJR zyiJA|dKpR#Wg8cgC@Qpc4ZrNsq)JXQ0NOQV<$;Bnd*Vt{;mBe!z{v|x&0K?O26^PX zN7<|Vzzj^myv+VkgFA?wR;IZ|Py_Y$l$a|v?)-^#%x>RPJg8irzje7`x}rY<=3X8# zNggw`S?PX9pPGDMiwqFAwCxc3PSLkWY$U#y%{RmC$-l1X!wBH}wqmeHwm!?2C~K#v zkU-+<6qhJD6-d+UL1A^h1$k$J;ⅈSfGJHlkuHJKK-+dGE5vs`NYYj>0F0ky3(04 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≫D`LySCEjLl$y$)=Y>aw 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 diff --git a/lib/windows/SDL2.lib b/lib/windows/SDL2.lib deleted file mode 100644 index 99c5321cab958bb4c2e43583c7866a69972923f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183542 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 AVE_OC diff --git a/lib/windows/discord_game_sdk.dll b/lib/windows/discord_game_sdk.dll index db82aa7810a9938461c77efa69608283b2e3b7bb..be946ea703adc24601e2ef1f67c49c806e632ca7 100644 GIT binary patch literal 3488768 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%0Db3i&POMcO}Z zm;q7lPk_>D!TB4IlDWAZjnAPxY?x<pLAByNVA?PvPNrn9lZnspf=<^!*Ag%E*mw_k zW)iEc=CWL#R{^JDqeFc@wx7b7@p{DD5GuA;b$Uxs1eL9|YN>MT_lGFuHH_)Z$6K(q zu0|s=U1U0K9>b>i&(A680mY0=S2BYcnSM(ouB1I=nj`F?QM3)I78sBw2{5pkBP5c3 zKe8I;2=-azc_DgrJs6a3?K)^?BPw2$b<3RxW4#~<-a|>8<?;At%krSzCZj(sxD%EK zZ!F7$84SzgD;z`whX5t^o~99D@6WOj;SD6(96C%3=7Dn%sluG>(q9-oFlvyUl2Bts zHhrmR5mF0yL1OCvhXtID##W3Zor(9?9ub7n<X)HQ85e{s-J0#Z;zvU41&`I3(!gGk z-O_tC2!1SEMV1e>lH-LvLh+E&k<lIz(y%>Dd&J6_-l}~B;EHVa2&)OT3UQ=8LfWR` z1J7wV&O`Xfm~3xt5c@6EDkjgcM;;%0;CMzdgX(Vmp8!LN80Z)2m)7mfct*8l!!uI! zpzV?AC#2gW-#&-$>r2;SaC<~ew?{_R?vFh(>p=>rTsGr-{51vyU5Muv1X0T-ASl%y zIT~3H-X8hp#sjrSe)WKWoox0<2wAe(BenShBMT=s30V%@9x4CvmuQdt`@W2oWyd?( zBcI*zU$#enDjGO+dt}Jy1DD@~J+cyo55^wpOP1eS{FL@cQanb-W7s1-yucng<TwoF z8F3gIuN{p)z+c!f*Wm&v5j#d`!%RGuXs}QwUe5~>g#<=cmf@#<>e(JM_!31?Blto! zZ3JJM#cgWvg%E|{OGsP-wa~P%0cID$`YDEKzy|QB1i=>%ZecJeuz@O(8J+olQZK5C z^p|gB@P%a<d=XfvtztO_U)XgNGP)ip(x+pNpnHW0Xl%3OKn$qacAp(;Nbv;J*sPr% zJl9tvs~LPL!UF_f;%E!OmmYChrSp;qzErX<Rg4ECWRnQK7?c#3MDXQL?Uo5tElM%? zQiD5T0`bN&ftbNCfsRLq5PV@LWbma6cS#hWmMPMwornxY#wm{8W>`8!pgrF%#sS1t zn1fyV-;YjUQd;nZ%$kBp7}&u281@e71)7tb`eVz91lQs=UAyhCy(6e1k89AcM16-C zzZS1X=+(EeW8|*%j%6F)vQ^}<P%BwX*gF&@DM=aa9ZtR8dn@f7D`$F>b_*mceV2)9 zLajn{Y44D>X@&#D*1?8PJ)RJiF^kn=Ry+^2ipewVoqJC{aJ(dq1t&hApJ33YRis~9 zw-3nPNm*~tMTNji4x4y6z<G&Ry3_5Qz?mM9Jk`=cFnEyj5}#kTKW5It<(bW#OYz(? zbJ+U?_SnoEF^gYC)`K^5rapI|X3n~M1~qejf-Kq09MzS8l(fy-`50>wq-2vf;0b8} zJRynnE44$Fe_Ooen9P-Bl?QNgR6p_N|FV6v_9ixP==RO2M<2MnChVIhQTSl&8-??A zpz#*SYbD|<)iS<<@`=F8A4gGS>E9(qR313P1I1@MvAL=Y@2pX;c^HI%ZGq^3h^+J( zk(FFn6>e06+UUa>wN>f*&l{2>D|PeWmx$;H{gOVzSojTI0RbBh5IAW<swK`Pf@O`R z@Hf$z5k)N~56?!{7!TJ#{}?#w2Ka15pKYg%H6t}^;N+HPEUV!_0w+6wSqPkTTM^Z? zaXyPIHqjPu6r-0oLcR)A-KGEW@PS2}Q=cT-gU26|<0DJ&K4kfh*yAJP4!J(=mpN+@ z#Zfr^X*z3=_=pji;Q3-AaF|x!;B>w7Mz+B`>3Y%9)q~PA)GDeF@zzTHRM&yazlf0V zt>h<BxM>vyFRjytqCOyfow8m+I3HYJKbD)WuUDPw8B||$r6hHk#5;X|^!0OhXV%xh z#dAx*+4}+Y^%7(~czylQQwOTAN3qM<mq}uGB?)yLaFeu5^7@E@h5AtR^<#+i9h$vv z)7MvLu5569eeJ^kvc5h{G;rwp`o_Z#TwW9Udf2Fg)7P9|o4#HFfzJ?6+&_7B4ojEU z4^BQvd7ZmI^6G-}&J;%68{Thu-HfaUFRvdyaiH>gIocaUUQ3b1ri9bvb!^UmM_!$w zFHv6qj3`|O;U8RHpSkwGEU(`c4IH|>t{-s-@>-R9K=S%!o<H|pC&e`R{JBXdQcMr* z{J9%vq=@L15XH3f=dQ!bC7#!q>y+mCb2ITAcKUvuKUajj2Y>$D#Vt}s$H1swEEX9D zK7a06?43_Gk<$kBGi0$zXWGtk%`vcaGWsV?<O4i^Zr&0pO&(imgwT@Lt5VO86WSB+ z6pYPWxPj&-W<3$lOD#|9_iOVhjsLat=U%#o)!!{Ta%ktzotq=2(N3ZLK7Xzgh4=6L zxuRr!*^Hi3U#7&PJjez6mde$LN5OkaJ1=|7=eZEXhfoFG(K7g0c>m*g?gx@l;=#|$ zZc2aq!+#y6vWz<gvb_EA>JlN9X>Wf#i|3Z1%V8u8-R<b7;mLAb`hCcHNN;~U{s+sA zZ9?Vy`}W6I*!LtiHcdwN-j-cP-}_H4T;I%RL~@3c+*rE<R%Vx%O#6d`J!QWCu{fg& zOuS5zD!-ZP6NE9&%f9lE>l5#PTuqT%1%ju$c7yt}WY$67|M(so_(jGB2HP(rN}2C} zpoVk{!iHCA^jfxx!-6c~{SVyi-}@i<4ji`PU02AxH+__4Mct@qBcUwfidL4}??xC1 zclgGrd=Dy^hg2a5;SI&JV?Vq_erdXRHcsSB;4v!o;KP|XE{U~>qWUip*W-9RvyD&j z3J-dg$ck^~YSZ%#9XZwbcCTKHy73iS?B&_Yw@jy&$!HYom=inNXxKByULC$<m#7Ed zO<MzIcEt3>!yRTO`88#HV?}(u*2wGA5^b(SUY|AzZAOFBecJ6M%C+4k_;j+{T#pWS zlqjXUgWpuNnd5Vf9*-Jt#K~?)X(o7>@QR}O$LAX<S0kl&J!&pv&H2i;T_vJ0nl3Ru z{ar4bhN%z@&O+0bM$^Yy5(xgu+Wr?e57hoUND=Mh1&?U3z-&Js?c;qHSYrukm=jxr zya~=rChz9K=(hxASts^ixf<4>TAwxt#M~Y{Q;AG;t`!aK-Km75E+yO($ER9{;`7IO z%Gfr3{~54)fha!-$Q%t`0wT;Gfd1!^%mVnpp#JgZhY&u$NfMxl#NEaek1+vnBc-<u z6HuE*fcdEecnWz3Ai$vGM^TI)RJO(sV(kC;MftlzoDh&;8c0xUkl+ZR&yD#XX#8~p zjvpyv{DQPe3{aake&iis{MqC+BpROz4&M|!!4zCW2&K@@F)Fr%Hd}qgtdHYW@y&6{ z{6#gXpC8?vt$aKPTj2J}A;FW-8T3k`2*i!3AZz?9vT&q{4rQya8JP#HDV$o93=n3k zuTs=EwZx>C=wcGRzMfX;VEp%=MS}kza+`u*S0d$^L=KC!>+$tn2x&s>o)^WW*iEsC z-AEH}2H>{{%25*2<!upC_E+8}BkutGmOS2aNPINt^Jy0vGLh(CW<3578zwU2@heCX zc$mu?k2mq~NS}730mqLc2jBuDiv}+RNr2fx6C7v3G3|w{czpeU?awsZ_ptsXafHf9 z#^WO79e_M3c<jp;xDy3`19w5J{l=XQH;B=K1*5_5VzkA^X!Gr(rGC$jKlP|4Ge3L} zDS{us?kNK<P95-g<Q-tZ$^760^?<X+crp0>9`7sIr)TPUj@Q)l2RPmcs>wXwMMx3j z6(miXU_;>pc8X|e&xuV&-T}rdtT7*$R2;NXi78ENXO6j1%(QFFRf+H|`9r|Y+H@4z z8axuVnuNR9+Y3cz!@4u76Pb+N(Xlq>NTDy<8yrXSEgY#w9j1{p!^TE=iSyL6^Ut?Y zJ~KT}L(2a0&)(|?q-S|c4$yC(68?1L&100vunklN-#Z51HD2Gpb4}f%xi_BUTzlgc z3$8wA`p}W<T@Cjmz1;PesM6MxJ8o;cvZn6(>lS|R+PPON=Qx$M;_iwog9>sh$o}If z>Mt+C&UssjE5A2?!Q7kX{y>zN`-8dH2T?sr3`dE&UzNAu8^4L%_*^kQxE&n!&38|8 z@LS^F?(b*&E2CaVv^*3YV$13sXK%&}%l&fOe*_j1zkg!fcj79)5?v-f)&QgXD~dM5 zt(4Blbv3+7N@znna@@Bm;fZdiqAn>c>Zm9zcKRbzVa*@A^Pl+4IKMewz6S9E>_?~< z4s6{SiW)4$hN@$KWM=Rq7nmFYLWlm0PrA9eVD~bxdpl~&^@U3v!O<vkuUW*%eZ(SJ z=T_iMA<}QL(ublpAJ$<1wM1t5Q)o$Hu_Ji0qE+BC=o);DSs2Nz+~62R8;()bE8$6Q z=eTI^U53I}U)NuH1E12yh+{{C6z1by`cvZZEO+non+Kv#aA9WJm}6i0jzJvz*q>9- zReXxKF<N(ea&NKW?^5*k(p)HMZG`OYWYRotlF97d>-q_1r?HbN(dm8q5b^j@cki>N z?DH!7Uz}ln8D&Zxg9r0lg!#SaL6}4!_hH5;U^J85`t7$#T2DgSuD9g~kw*2zsrW^u zOdf;56&X|Eu}{U<lBWV=D<%tAWBc~&#)MpD8{01Z4DlEf^4vi4;c6JlE~oHoF~(Cu zeuYbW>^F=KL%j%oee71zTUTQnDFL3vncK(yW2YQdG3O1OEqHdsWFzMT$Vq-h#!t<R z<!cTjX@)M9W4~F6@Hi&&VC2}h%uGgYBInbSWX=G18v74ryU%6Hx!lNk8t7T#2tqg^ ze)OLs$DWJ)l5G0E=}yPEXgZ(ldd;BayKv)8o*0;Z;$@-~`bl{=d3xiHWS%~f<L>p! z(Oittuw##znWO_pw#dC!W+7W-l+bjx5XfM$#Tn*ME=ytymv~IJFo$>0^7?bL+lIX2 zJzJb7%CQ}?ye@dvn1^I}y+k}tl~?hlY($=`_+i;%pZW?;(5}#K$p^TH`-cGdE0*2h z8TUbX=!+p`u9eR#&gaMVhi)n0k4|OpTS*B1FO0#I2*P@JJpg5fyTz%LevX6Y1<L;; zkq7t)lm{b4=6L+-)rFoW@Gu(<o{DL`y(b~<WMWS14L8VXy}4r9IqXmH6y&S1@{JVv zUf0!-%r^}jQV_aO<||Llw@bg$$TuK*Ov!*AvtclaFTmJ9r0*4j;Qe5Hi-~rak4Ggj z(F@`+nCSnq<K^QCN?H0);w6Utn>Q2WA!3j`-}tT^b{zquJXAVFD7Z`BN@Nrubln{m zaYlwNbO<7jvoZ}gYI{eM`359Tx(ua2>&|TkRmLX`|3&dQAwvV}i-rNmj{)X`23!A; zJhY{TJwRnK*P@T9EVdfD<lsl-Hb*o!X+-<Ba-hbDW?c$70?NJ`E_K#bC~y=FMeAx1 zyVr!WJyi))*+!1-z!1vUVDA9LewW^S*f7ThIl(eU;=>z?u9y?Mrx`=E>Yx!oWt}L0 zuP9GkWceCV9-s3zb^EdQ>;ke;X@YV0=@*Hf0}@^{xptp^mhmh$-8RU5`Z4BXf=UAY zHg8te{Ci#J`zQbI<J+Ytkn(-gCUz~cAJJ>PY|##oSvEmwh}IoPLqVJ1R-Sf{J+Zr6 zDcxA_b-5?vWQj?YxMFAFq%xO#sLMUY?Q+lXxZIavqv0I<pXG7oO?A8ShSO?Ux`9n4 zEgU>OA5TQYPoMQYnDvcOS3?ePR#skycR^WsnUYp{b%`sl66YT)crURGI~Un65V%db z+oh;Z5xt2kuC~cQxW0Z@Ly(5R)BQA9WdB{uf5b<OKJs5kxqGtPDpkymh_@yDk-F9X zNPUYx@&iO7XE*mAId28*uZ6`<SHm>cpuVoCpX&R{x$-l&*{|+U+IC#1wC%gd7pW-h zR|+<|8kV8~bi-M9lP~-qXYlX}wI|&31uecO{c0Rv7Yj7LQ#T$fz%BI0xTkWpoNN7( ztLW-fb(_z-jOX9t^N1HKW-&#}L#nHR#yrdbBf|;E5Sxidj0fu1R-Eh*O}i3JyBa4T zb&%$_U75N0XZSq1`F{get>%A<46z;J(PYoKP0HQV;Dkqm7h=Vr8EX&C`U!8JjDdNZ zLCPYhSj=eFpUls}`RK!`Wn+K+yuaVZ8*lvaG>7YOC33`!H%^1GHEb;|Yrlewdi+mJ zu?HZ^Fei!i+O+i#(fZGzhE`B~lX!9e-nU@y56`%5Fd=bOfR|dXm((WKOFE;Vc0W0? zyojt2Je>4cf<DyFZddrqBmadIwM)4h0j$!l;5%g8y7RHB;u*J9xqCVZ=xX5N4~Q7W zFrxY^I|LD<l88@;XSK)Yh@r9C#^@~%fo31PE@<`zE^G5qUSB7v+3Ah5QA{MZ&v;wl z=pOx?hqbT4?F!@;4Rv}qg3U28-Yz3|3!eAjw=SMXj;&)>_UBwN7ijU(Zqec~Y*Eb8 z#iGT8e=p`oEb2tQ4?>~n(?=Lf(_Huw_Kui2VewSAIPWS~K!|*$m0iF;5DJC}$obd; zx2xf==!jCPyBap|hU-Lgu$(kh5Ud5c6?GCk%iD5?xEkA$!>`SUbNTrYSHr{1-&w{3 zRKSgk-F~eWhtVqtCi@F3aZ|<{k6&9{>DOwi6>SQt**7Ezr*k5M9<GM_L_x8SnQ;_T z`hGTNxMMAm%?Mh-t8Bs}ddrF*#(kL|cO^8aiqR2g-RUuIwXyh58}1$Vfl}ID?)vfb zzVIhQnJKuiLe;}PL&!H*3xAfwzaGPXiJidk8*{*7u_%9OGZ5zzp&heJxolsXfk2Z$ zm?=htTaVACC{M&_<!<c8^H|A6_@e;76#DXIfyNK&U}w!N6s6r*F)36GoOw(XheO4T z#Y%Wdp$F!QOk_UPJG0QEFH6oQAj?j$?=wA&DRss!B5H&;R9_~oxY_)YUpshe8mt9K z{$gBukHqh0s8#&-;P=|G7_<KF?}-Ey!u`;1KJ{h6RetS;e4HSn+W`ct`*G+x`7adr zxgNt8U>e>9lUPro0bLE-sHlLiK5ZKK%_;aTgknB*G8p9+^4kWM(yH<EGw@pnf0_KI z&R*?umqA}D(3h3P5W^OzH0VnO`Vxh(ni}pKg3k2?FXc9SRA1*s&<;SbHHaJRIM)=! zfx*KLeeC6kd=(q(k3Mb0xa~@5o9oBzN_aOG&pvb3eXDnp#b4nzw?2L<6mJ>I8a#>? z^tUe~lhn6hW5gP0Gx(36IfF;4-IDEGjc;RaeBlm^bi1qJFBG2eMc`_&Co1l0@bgJz zTCRTCi6?`Ib9?;i9@)<_M#x<ayU`qn;@7T(aX31pw7ost?|i%Wcsuz)&(goU8mQ3& z>U+MW8_H0vPkT;mD{1Tx?(k`Mm$0R_o*aMV+)$u#PjI%+`9&|*zG#m^z)SZAr})&* z70o4LqCVp@gXR$r|M@NgkdgXIpB6yBHU(cs259`P!489(+mWI7=>)ydAYV)nL%`}% zKU>DCWC%rI1mJ;BTh87|O6sdnI#z<mW`96Z%++K}T-2xT@oP8&LaU2|z&$Yk+j@o@ zby4$A!-VEy2zoUt5eH&~qY#IljY?!xi4txr=|4`Eo#gg~`$meqe%FL3vgZ1on6T)0 zzq(%8`-W1mp3S-%u7D<0)P4F0_UaP+n70DvhO1#RZVfqAclp(w`n%sjhH=cD!A^s~ zoh?=GpKuWZ_^kZ>9#ydrz`3g_fP?Ih;PmTf%{&zSyBhY)!Iu}i4JvcxHXZckBi~>< zP{83?><P+YM9J45n3Sm=+kOX2tI>@wQX-FpFwwB?;=;H#=b4i3gl~bVJ}TWt5jIBb zXYY-4B&?0in|-hv06&c9t8K9lFFVPeNIXP)z?XyGzp?q!;lidEeE-Hyn4Ii%^8O9E zJ^}WZ>l2VUYki^?b*HXRSnHu!g@mninA#TJ0eg8<-PH;MZP0+H2sJ+o_gjP06t2fX z{s2c@0X_*;ia;;Ypp=cp4Sl$LT*4xdw5bUBv5fxVEMyONz`zjI)jcL^vG*x?y+f`q zUYuclaiH~2HjsJ!6DeZ7LX62{E-)USSYSj~jO8B%SrhD#vfrXgI_S{Ba*BlqClm-M zwNTMckbreAGy!eJc6aZocECmFz{5t867Gcgxi<(KXg1A40M`^S=)^u_lTYLp{DOLu z<^n$E9Bc#3QkwLKt1y};(B%@C)wA2JCZznxPJ-{b<p*z*YE$ulR-gXIO8_}UNMQT1 zT*i;w;MRQtwXme$8L#`$ph99#5XK9RuH<kl6Bf2s3RT&yXg5G@UgQW~B2L?ZGJ<-F z>n|K5Eaf;QmFiyK=W}A%_!OjsWpt<qJY~aTeta1)4f9FB@uryr!LeTpbo<2CC&dlx z5ZuNBe%D0Mr7R7TgDxNTO@%j9f<mz%D&?H=hmBk-OnMm>awRZR*MAFtjhQ{knXUbs zf+!x47x`h)6O)E!E|Xq=RZj{A#gi~7rOov6ct;NrXpEP9A(-L83R`z=SjAg_RR@tT zZT<0kGXxk|@;@DBwv<-Wjx9qLu#LbF?)UQ8CI2)e3K}H~NR=tT$sjnu?yfg4;qv5E zv@rOpX0f%Z`CCzJQZ>;jfK^S!SR6mx+K)8=KKuYBGvmVyqzHVdWUWaX!eD?4#w=#D zk*T%d>bU-d*U6RD#mrr#Ea+NIOauW(3yv_E8BD}5U^zJO<LL&n%irxVd7xV5{F+1~ zOBI6!<NB|^Va%zK+niR+XI%L4!(zK~a~$n{%^5%szV5@p8L7Lue34^-w%E<3VZqwm zS`zy{`e7li)ED%yxTUW$pF=Pgpv#hS${yJG1xiNpi)k3Uksth0!sp}{1NA9Lb7H$I zGx7_RuRGQW1TqF_^-MmXCYNYd2{q)`O5sI-^S^^{v&Q{nVGc||+y|#rbSq;wQh~V| zox*&C(fkL_2ojv#t~-a|;nUpEhE-Z+?~ZcUkD|V|o}uWZn_n($+nGc66F^MIs}s%` zC!BtkN32IE>U#aEKRO-sxe$zcgo$#Q6DulkdEH9eN2mdNQX)AgDy5xu7Y0hdSahpT z?GB9X3zT*&Qa~59^g04oIf`>jK#imM9Q~ym3mksuZbhAw+v~@76lLk)dYFK}e?j<M z=e`J&4~IoM^cx?d$>$&2NmJF=_Fj(9i4!vR$r{^OogcxmC8$wRFC@|l&Y?pGw~!`x z-3Wco&Qnkaoy8*k<Dav>B>ye^{$ewfBJ~>m`(aD(FUDwrxN4wFzN;G*%N+2~BUMrT zuun#V@!@fZkM|*biP<k)D@+8K!tYOo%&5;JL*227hc}C+%UhYruYMhbgX+Nc^3F+| zA~c3i_+q~+UTcWryt^L1c8*`Wjjh4U*{A>H-$sLPGq1W04Z^<f3!bHvzP0E~L<Prf z1>yA@*PY5RVP8P|YN1bCQs}-oGU{ylhKr8sEgIL~d-k|~^U00*{>a4saa;9=>Oei` zTTq4lKIi9%_;o;ag*%<14#W}M2%yCE+})!c%L2QaKt;wzJa`isq{jiaKJ@Mx^e$B2 z;|QJrZKW>@>_9f;h#_+6Q=|Ik|Df~22H3Ee6LfjG@VXH}iX2h1NlbYRm$hHR*z{=+ zp33Qp9Pyz{IUYPAnZYY4IDq{R;{>4|8vkD)!a$Iwm0&exVhOKF^S|`{K9bamPuIc; z#mfYL4X7J@m{~PYtwbhxFgG=R?P3ILZY=gA4BQrjR37EmCgl3nE`LGK?sC_{Q3$bI z-!{)x6aCm#8^sUtXJHpMQ*6OTiZ{mf&vV_hbzbB4x^l~S!FZ7V0@61j;v+t;tvG2e zxoIl-3%bmj7j`4x>&UkqJB&8ZbFF*P_0%S)QGdY}W$zZBHfp24beAjqJQyspsK4M% z<=QRP>h3`4b$PjUnoq09gWjH9t*8?foMlvz#{;GPc^>?onOBUzm**i6ei@?PGZ6Kj zf~faIKu%*1XoLMA{I9t2r_zHz)y3%39jJmA)WHiX;RUroO_%vpHm4pQldmsCSPcxu zGIBU7aN@s@)lFx0-zlEwx?^?^{#1cfcLbvN<8A5iE_5=M1wPsb_Yvr!&-|Q@`lUs_ z(pT#|0d2AyKZ*lGC+GXdb}>7qzea!g5$dQ*ixeD$W3^hDq1D}JwG4l%it#6ap4{QZ z;e&G>I0_-xr%f(Kl(g<>L;bVnl~0_CnkN?{90OB2S`F6<W1Q*43WXQ6t8ik8!i$xK z0Aemxh`I2PpUa*2Gt-Hvi{FW`OODeQo?MKM&aU>W=X6fQ-VBO!H(X+JVG_r7c(2DU zf?*$ZLO^gf)KfnpblLSMv_yGY{26pWg)v>(hc^ItpBjZ8Kz>YrF;u_M5j+BILnHz% z`j$Pc20v1(u^1TkM;8AzRDZoAILep|{Z3Rz*-Q?Mr^w?*(!`R-vQ&9QSA{$l|1ae6 zPwdR0$RiKhk@Bd%0G&JB6v?J^DFj<U_GW-%rhs7(0@lQrLczKY{5Rz<ljsRg6ZU3o zC%c=eSekTQlqy~4{X3g<T}0_B*2k?jr7Kg{AWQj_rCiEVA7lv&NI!_D%Tlp^i(QuB z7C~}!NKPLlCl`_f_{l6euw+0a$PRD}`jdh~c1aPO3n@5%*&qey_WLO~`^&H3dR_nh zN91~h9#c6r$$rf!f1!Ffha-jTto($vT$o-<c6q^iJmrN83;HFfVo-T$0*6`hA`XtE z$oSO1`M`2QR>U!7e(fr#uUnzM+LgB6Qbil$*S-rPuJ@~rI$HA=tOtZI9Cb9b7%cSx zwAja{7TZ&Iz7Y>L^w;Z%+BS+63+JaW!G-=pn9!^<p}%$`pi2Gqrt7KgigTM%(5~#= z7SPV!4*Ss+Rwyr1`wMpY7QDF{y;5Hal=?^K*4^WaoI4tE6t^#OF`Tsrk))^}`_*lF z{rm!iM&*NDig8f<d^`kyfK!A__|+HvQ05V?e2Sb#wsK_aXvF?T2gCt}u2}F~NooYt zzJR(zuf<zTKCKQqXK&pZ0nH1YQw5#l6*@;2#AL-$Kz|;~J<N($DwA8;ehoUK2_i!S zmLc?^_%tsROuX&{Q^ANjFe3fgKT^#gb-_lC-#0YiffZO*zJ|Z_6{yM=_CklK5U`6n z?_PnY{Ku#&NS7=Ljb9*z!tlE`3Ik0x{rdY3L>?q@s0_;VirrvnG3Ioh-e36&wUXG5 zAil!RzOmxf`ZIA>EPtnp++g~uRTL8<Q;YHI3sG0P$k@%l)b+m-VeEDK)K?)de(mRl z&7xn_G1&ShmCRM9(WhwNpwWlz2L6IR!P+q2vKoCKm`2|PX1v~R?=59pPF>o2&%2d^ zxLIjJUQ+BmrC?XW-rL~{^Me$T8T|!sD3J?PbsOxxeYtfjVDIho_|ysc)H3^E>*Y<z zWyM4B=MFsZX%pQr(wOJ4-X(tZEx-Dz*nnl)^*#FiACdECf%9LfJ1Ic_OPdAGpG3~5 zH&v|v`d4Il<j^M3SPFuvr-D~=LVopvHotmZ8=!my45Kz^GVC-}XSR8K;Yr0#ALaIp z&Pn;X=(``mWg6@D<v3F&*vKy)r#MV1?)@d$c;~ZZ<DL2=E6Bs<q^8&pMPLIH59d|5 z?l8{27GDo{jjiLN`FsMTpQgPUC^O6ng)@yXRWU@g(ywB-wGI>iOhv^ZjoMYY0rew4 zP6rPZbnc$$T6n<)m~|Mc7D&dy2MaqewVg20yT|RB=XKo_MH3#{`x7kjpuJ!23icsa zXCpR&>;MgX&b>ayMS*UCf{)Dlt=eGlzX-r=cRdyLJNx_vy0W*+r(Li?IlsQr72b^T z!j&uN2Ci$~YO(TgZD&c~{0e7&-BOIE1dmI6+Ds=bdZvSycj=QC5R<A(;IVnwk1DDR zcnQUbRRW<V3C_ub9Wsf20N;idc8IV(K&CRX4>H5;MxEyBZo_fNCufgs?7j#~K5~yN zNUb5Vjg@_QpgUMdo@^?gMrofLcK<a_zs4DWmx&N6+|7N^`Dp14ebI-QS$2>1eQ8x? z9rW2`GFP$R^a8G-oucTk{~w%K;RPfbhGp)=Ia+c1Xkeybbokn*>dgl#>j>ATnEi_W zVGFl*;kh*XLCh-Toe9I<ZnGpA`PkY;Bi~!8sKepllg*)w;M>>Lx{3rJR^UibA~#T* z?3#?)-g$)VJ<ptmLKu5hrM@;oemC(Wll=fERjl`r;Xyc%5>Xob#b$sG?=^&3UC-&I zL2?Zl6_4?kSt?u$NocN!+x=yWVKdwJS=tNLU*iZKg%(@%8^<8_9tm{m3vkonowr|2 zuQ<T*h3e-y5ZRafr1zh}aDSj$--8=h5eDii!Z<<jOv4lqV#IHkzAt9P@;q`SN<^_g zO~i5u50^lA0$qTOZU94%AE!QXju0vv^B!gsg49rm`2<@Q`%1f9cSZ0+GR}H14s2R* z85l9g3FjLQp_{JZ*s8c|Y@i2GpDrI(>3n#_OVNTSz$;yta{~VOPoS$j^8|XRInet- zCmmLl#9vh6SB<u~r9iZ$<v@at_hZ)pP+ckLAd(5KGA<Rg7^FzVC)P{LuJ<HB%|;Ph z*oD|aq`IF5+7^WMN^>>^XUs!X>rIP0xISR$vo^xWo$Q433qqNUU%YCzoX}_Oh}~}P z{i)9ojNWpeddwzBiw-GlflzhxBSo&FKpf`@uEA773IZE_0+9el$gl?LY!c?e%csRY z^*C;*Sh|6;M;^vv2f{}$uYszF4C}^atqUpo@MV-CMcsl0Y<*vo6sQnVP`_AzHDa#N zU~=V@e7og6X-#;HitYT8zC;9>{|=TXZU7|Vt?ttHMTm>8cimY)j!^5sDYLt&Cq1!y z*=p%F*WDsMqP{V1yDh!$X1+sq4K^?2z~(&}3u<v}ig5Ryl#qW7NM$@Fk;Qr%Du@%p zpo8Pkmzmeoz{b{kTGh9V^)wkZ1=SD|_C-b=$K||>BNr5ly2q}EEsvT5J-vmA_s`L$ zR)szwffKC-dX&<aTn$*0!CnBYdZ|d%ro{o9iGJLGUsNSx8<3*D9DEwfs$wbUuche6 z?=fZTJ`_`S`bU_u(?B78k(edS;`etE3t!iVXmSoy=8H>GwiUm1hyW_#dL7bG--D>U zvF2B`gT33Olzvh75%A8O(geO)^Pf`Rb*zuOD(owWBaGV26-2W-%U(^YkIeMvof()3 z9A!rPixh2~5$Xp`Z^`$S?pegib=`T7;Fm9g$MsJ4!AZKCE{tE@>m9d;qxm+ssC?bm z_U<qo5+K)uJSZDH5mE4Su=Kk%_<^F0I!EedeNG9;{dd!~or76_Z<vCzz4rIxJmjg> z8Oxt6%SVo=KeCV#_AV}Rx;EU!*}<b3E~J3c@HQ${J~J&fc^!Pb%M;_hM2z<*N#nhc z<2^flyjX^sd5&1o!+8DYm`i#;7>@yO&oE%yc?#Be)60KNmX93Kuubsi2e`-qZ)-FL zd?q&}$^l;?cs6OkTu)y5eu!hTl#6lB#Y-;t5SRO6x2XZ3Et}!)b?G;+8HPh-ngJ>G ztLu&s%LSdo0VIyz+W>+5-cpqOSOR(L5{m{r$W+5ZE8_9jhCPne&bmU{9xS4$v)qWB zz!;Hxee2HbJ<oM%6x*hIzYgV)tG4OgzlW8BeT;ISLn3F;-1&f7Pd^V!T>@!26fP5+ zcp&i8TpzZ;GkA)@@62nX$SiJ9LBRfq8Bc(c?4Ulj!GpTn_q03fW+36lM1or+bYL_! zcz$c*c^`%dwYz7%vu>f>Wex1XvKW+IuSXfVTWR~3hw&l07IWI0mK1&yn@)$KxLCbF zRWD;RsXuZ=ehV)Zh2QL*g0VGSU3ebyefGGO@3%4^_W?8CdA+AK1q;U`(;i!<J7uO9 zjZEX^g2lOlJyQ0YE`49Y`xOvMS3^0ri~I4akNVo43Ea%LZV191{=y3s_0NUPpbFOH zYH-1pzKX(Xaf1$2i>;~tNU-n%86J-eYd}xRpFR>f9(U@e<PUK)a&tK<)9-}^Ltm{L zoAnxJ;|XTlQ-M{y8Z2OV#%(W$jq*VIxUEQjV7;qiTLXG^9<ym96t$sHMoK0_=L##^ zqg?@ry17`JR)TKMgn?03p<N2U>558iA^eIvYAUpA=KHmUwH4ar#fr8(#LlZfETm@E zmN(%q$^omF3quPDe55UBGf40wp&7R<5yDklz8Zg#pdg_Iw_L7VtSw(7pW?-e<x%5l zt+srld|HO5UB=V-+H>8!)qW^Pf_kI)?aFH?lv#dU*n{8d&kJ>2NcA|bAlFRf?8B`e zR|ojBLj7?e1<8-B^n}zu6y}Sc>##J+<X>ZFDU<(zH&yw&0dD}xhF6H1e^^+C->A6~ zH7Z6D2hXuq$|N>cZ6t+^q#BvTT=PW|2*4k;@_7Yr7aPxO1=-~DGCXfGp3mp=75Jg9 zD}0d8!W*&av!Rgm@?*%W*;J%KP=?Q2jNi??;y0;{j$gn$A}{?iVEjoCoN{ifc3=(h zUtqf4E0u^OFmb<W0vxdLI#I0yIv7c8QE&cxf4_JYviBQL<J~KVd^cn5I6w=`LcgMR zDv=+HtmSK%t^k{UJ`=90dLa;O=>`f<Qmg=?{0kv=!&-5XxO{$yxNNKc)7$M@$XL&R zRbTWOErQ|dtX$L$i@?~{A>#?gd4Ey#+6LPt^a-e(mGB+-_*LUOAZY+g#xS(i7nKO) zM0`SQvRlAWxHI3|5TzoX!~|IW!vWmbJcCVnK-Bi(Bj75uHnRztBPw&W@c3+4bcl!Z zTV-Y{mSU^$rU)uP;rpQ^g~Kr!UEmfyEYs2vdFV+hj<~aK4D>`Fo~}U+YdXCx$mY;J z+u40Y7sC#xoQI<|@4sQe;fd1;;AkMjE81lk;B6eBaNi?S(0yd-baGhu<PfU;s{RTV zY&mOKt;GuQUrJAM^fK}t*Pp>{g*NxA=s+A%eGIz_3XV!EfW_^qE_A>Ha`Zf1hAv4C zSaY`E09OOI;FAk9yaNEwMjZ23gknWiU9P-K5s$!T>AVpY>NO=#mn2HxYL>o>rNixt zUoG*gwE!-V5AMC#@}Qv2#fZ)xvCdJ5CKSAGJ8axKVOWxGH|ZR=qzo7>ikhTHEY1l8 z;6M7Pr4`2hPH2zsi;FkD){WeH#T|m}%5dL1%+|XlOZeRKnQZ>8ao%6C>2q+6Wz}&~ zZHi4a;ypwA?k&r{<oZLV^0N=I{7D(g+q5^<&xNY5HMdO|mJDVUPLFo6TX~jDf`4}? zT#%+M=cicT2p)o!9&UpVi(KLL$SrnQ^q8NK1FzDf)^8g&0xZ17S%)1>RZ&EPHiE6X z^bL=bv%8#iXM(Z1@dy@-H`?i4L(YDd?~du^-TnR8J*;`xDe4GV!$Y;YSMUq1I{IO{ zgg4aE7QtlpVK={N3S9SFF`4z^;_Z?zvD{qGNwclDia}$d#5RMt{@yXhEM?s<XXSs& zo<E74q~{D6h}{@~4QVO`(s1i-MzWrdL09k-s2Gi)Y*_}%BEsN+;Gx<8Hfrel<3mVT z-3fyd`+`B(zSyIj9&XO~UZ<}#debSLUO&Fs!xDadH}+jqz)#|e@~hv3d;`e{U9ao8 z(+V8p_Qd4-LNR?4616%%<^{rTEPy8qd~u4vcb;Vk{Lk1L_LK{OpO7N(mq6fQ9On&D zZ!Ceh4*8t37Sq?_JkfBy!&!F<TFgaX?HDIHVf?G$1WbPpDh6r9^e^2&8bhiD3mox? z#R3Z+7A$ZpE})a-fV$ff;w&-h&x?f|uaNSa*l#KgUJVN*+m4bv!R2kpY{FkR?BnEp z*~tH^1I)iDDSv{AguaqIB(#3Q$w;gPVjEe7c56Ou{;`eCpaCwlOmGQ_3%(IK)?0)B zmH1zV|Hb(4!GAaYBO7oWo09Oq3;(0|--6{sA?!={aY5%f{!v^L_9>B7J-p>>i|c)A zpZ?a#*cuy&tPv02&|6M98J~~hFJ};Me|N&aSruiPwvzS%zM|bDE@BN%DSgc)j!DE@ zl2D0oDBoa}KlF3Kk3uh+`Bc}&4tI>}$9v<>GS`oRG*ffR*HDdd-^3Njj3Bk}TSy%d z$SJ=9&WpP-iYi?0NEa_-#R41%(t}?Bh%u`z?)cTO1b1u}7m-04_%m+7y9zGw<)?rS z>f}2G%UJlH!Xpu}B}E^Nm%i{#d8_Qlc-)_z-S7a(+&;Zzyr|CU-l!3yFg5zmyi z+#d=<98#yZh=_s^(ErEYyMRYkU5(!f5QrC?iGoIpIw;jpUu)1>lY(^u891XE#0wDH zBJl#^1wok+utkE&V20@+R#9t9rFVKqD-f-g31|XdBU+78HQvt{FTo20RPz6=z0a9B zXENbZ`##_IeBa+ka?YHyZ)feb)?RDvwbriv&LB^8J+NT6qfkv^{QP2!KLsS9fl8ro zVg!&@Fymy-><FAF8B$w~gqU}BnRma`PxIo7pszOUaD_pwo?>|E%=6SQmFDG44YA+F zq0v}imAETnXkW%}d@d0+UR0pI&d2UoyS!n2SZTicbYE(2>v+i^!Kk%DB-7_*FgmH( zBsJp;ywqxi1$40xP*!zg$}o{hPxvtssFYnUWpUwPG)&dIpD|S^*dkcI`7`#G979*3 zNr5D_z)f+LObqd}h~&t}gmv$eFrRMaUljX_oquun3Cg|_pV+08yr}dJY{LryMW^Le z`?8d|mH{Wlt|>B(m^1~1l+Nq8kT;DoigWZR2KmK^^Ict8@a!I`|ILi)Kv5_kw*>yh z=XdgfKJ)bJTwkY+q=FKP1bXl%+bZKrV;cti>qt`595@k~YESkug`KqvPSl<co#sg# zdnE|&vwO;!Z#82d)7V|NpjhS<t5awt89q5g%G~m#!i63tyM1a;M27pC`?^M==|kCL zRsspfa$BsI+iZJ`XDv9K822fDwtc~%Rdc5zKpx+Rs+aX!WaMw^MtD&cYgtWkcM(|~ z3Ssj@sO0{c;uyIa58Z*#!;;W_W+^C_wzDWRi$asAIP0d4<4@M4HV2Nt?ohA|)?-bq z*ZjdO-G(N()cf)w7<L#yJH>@eJIylHb0<9uuf=my-kA5_<LEsl>YO!t*txR5CmB5> zmx#MSUUQ(cKYdT!>gd~h2|pkii`e56!P6~~aUEBwhB&51DoI~d9OA6_VvVz6#|X+l z0M7RtkxWA&{B@hF?=%~a2g3(b=+kr|na>f$e5>N+D;d13vT1qPWq-2Zu-fc|*Qy_2 zqb}~J0kI#u$}5;X+M}$F_sdbfcEJ&9&nd79b-J$W5asgIYW~DVeCcZ0JGgjX4O;z% ze;@GA=F%?xQobV_4T&Db$$*_5*)8oOt8P_10vd+U2|qSJxIqP*@EK~mL{{dNGF@Cd zTLOjPkf2H<JfPDY@%4PBk(n<X);}-S0&|Z|{1gx2MqGx?m%b@_wWNj$7Z|ZmI(+6+ z>IvShulu6Oe~3hFcmglge%{Yhf3y5R8W&D<n2}HDQ$-_Wz#99ydC+nF^RPt@q}xyF zEzdlV-UKD3uw_A%{opr;ip;k?4BLLm>`xhqWF<RRQ7|?Y<~PnudwFVM55@*m#kx?# zR`Nu+h@}TXd?)-;7UP0vxIA<wZ_T5x5s%@_61pt2{@VJHFT>M1&65ckw^72;bf$sc z>#J!$QlM)dG1$T5?9o{)&-&?>|5SXQrLQ^0(`tqe)XTZzmR408Rn%3BcC~z~ib}hY zHG2S)#>pGZwGm?tuUjbg!=vSAIvDs^`DF(K$Bi1Xp3NpAc!Fm*_CIH6u*X~N_YD8R zFy0Uf;2DnFg_QBJg+tQ>q+^oBut9v>Y3!*Nt4UR%OZ1Ru9^#X^o~)KAi7>SzzqcRD z^TfCb)|QVm9D6ITT=DBW%}r7|c8uDk^_0j6N@Of0GAh~iD;kea;3V85FD{cZH9W*D zSUGGq%&58pO|lOm2vA{5e~hYm9RsXH4;gzkGcDVKo9|WF6C|mMiZZR{25efyMMs%- z&paM%a=~BQ@0DF7Em{ZWS?k4;(KE2{l;dXuWJy;dH-2vX+>kZTYv6q2ogjYJ)umZE zOHynZ^U*INnkmfBStG!AhxqP^WuBrb;<_!Z2dd?U{sJ=~bI56@x$gCTnsg)y#JFl# zC^?BS>biD^!~E@zT*<Cnjmnu(Ba|P8b$G#O&cnV}@f9y>GC4EGsb`D+)i<wW6!|r( z`MFA#wAWtiC+vkjcbU)0ecb|YpU9=E^m7OBJ>t;yI5!;yG(YbY*F*>mg*7q}C+dk< z#zp6FSbU8Do;S<&o8QSB*nOUPjs50N`puK_<~VtCzJ8OFpL@+pMxn$I=`us!7Jta* z|6cQsCoDqTr}C@Jw+bEYJ1{0kJnTb^R{pEi891tC8~98$9jD?KQ=>9)sOcau1QAzO z@JYW=)6uD?L#C+H{P;PhL%|i9nbhY3$X8b=3?4_Qj0WVHS6hIr;t{yLM&2ku9<Sb5 z-)}|#m8yn+`ndJ!vQd-ePbDi#W`&B@@);KHONs;R{qucfui@Y6C$VC%9t-CdX9W4L zR<cNpulCfxCo)s|DftZ|N2OlinXKRG#1<RA#+sm%LfneR%@F*&->54iwZVF+uDF<( z6NQNdFfBq0qLyOhfX;->6qOC1(u$QaiM4UHS{qyPs0^X8{Y5|$OVSA#1dBaur_MIY zpPf@wzcoT!==kF1akKL~B)+_!K&nnvgBYE-=s~E*CG;mMatZy3np_ePABEM}C9zFP zhf^5K#8Nu-@!rcC>m?-)BYzt3NdlfLp_F1^Bl<~+_%KZ*1W*N&g?!f5?8c*nl@e8u z2-HxD@81$8k7|fuJQ~R}e=YCrcRDXmbUkyCk~3a22+o*`gO~MNT$SJ1-Odl+gX;Tl z!Pq8AMV^vRtJ_J&4`J@w;+ndh7Jv$RTE&dIv)Cb6Fb{4T56v@oztb=8p?TD?)DL-f z6a%sH@8F#(=^j=+gt_GgD(IiVf5QN-uzvc@KOzZrR5O3YtVrw?r~%NmGA_s1@r)a@ zVPr6vvnMdCaQD%Eu1u#<%CvG{4YT_m3^Z*J0zNCv`)@7Cn{Mlq;cwLu%zYF|Eh1;h zS8KvKAD3S9#uuR*)(iXLney=MHXgE~*$;6mPnq5=JS3l|{qQh(*a6vPz`IP(>*0Kp z8&^Hi2|P=E`2{BSMUM*EXz?Nw?ey5IiXz9n21R09%QJ7g!lKo?-&SvaN%Bi=TbRom z*0sdI-;;F_DxM{8N~F#dRmU+NhrH4w9z;!H$GbXdk2~xl%Rbdh{r~~<)vtV&`o-os ztjWTN-Tg0{2DD!1-$wpz;h)VyUGlLgtQqd3Z5S5cxx^P-&s+Jgwkp=%S>?HJKAffm zz*m)%nnFoH1W+a-D?1Jf);*eU?^nmM5LY0uNTwUbT?SC4Cl~QT(0LHF5Pmx;z_Pdq z`;|ArMJ_ThQ_UF(7a1whkj)ha_U-Y79XMNA`9fIVS4!P~$RCk|pOB3$qVmFHQj$il zertGwR8hP|{GLkawqy$3XECz)l$BEb$5wSu6t6nmSk;%`R2@E5zB+mg&pOCIOSXa7 zXg{_bpZSliknjXLPm{3EoP0P6RsuW~06WBBFz(oYD~wygMPq5l<$|S|?@{Y*PI(sk zH)p=BvBfFRX0SD_ujQ<t2(_C78Le8j9iy^QLtX8B6foxr-qh2l__Fd*u(Hh%X}84I zrM++sMB51>+QOwPhq34lUVE3QwUm-={Ze!85TELG#>OX8Parrrdd#t&OEmOvDFu1K zW}0AnauCVwJV}3FdVRHum=WHp?{Yaq(2pURh>6;7Doo`MkTx;+>y;sWe8?XLIRcm^ z83(v~jIg_th24z;oeLQUVp~8pvji@dc{V~l`}R}LXGg1NZ@}0x<@6ACV}EmcYsh|& z_Sd)uxV7l~eKG{;c>o_?CITH>pbV)B+bd{C6y~ZF);HN!i0ARbQ-2#+#&|vTe^57Q zD^1+UuBRUNI^{@)iC49k+Wag7OR#BLcT-`WYy(ZoRy*!GOx8+$q=KZ|u+@%*^1QAY zg6gz14^RDMNFps{SUpTu^{wtb(Qio+@nuU7q5qQtn{)xm*6c3uTLt8Ffsa{;-31;1 z;u(9c01->>Ri)remnr+mf(#`9Pn#lG^<DWUihv`ZfYY?3jmU3B3NazUN}x7!qDhA7 z#Av7+vnPJ2cr}`1KNNW4i3d8G<?6@8whqo8L7voJckDwGfF`c8xJDtn0w<j);+#XB zi6WM{?H%F_XSMp~2M&QZL()CV<10tn3Zs0dvg5J-x6>JrwO#Mr0(Q^(P#2aIO)XN^ zL5xB#R%VAm>T}@bR#J>qU6G=az0=1-NhjWG`dGWc`ApNt1{cj}`ndMdob-Vrb`5Sd zHhoAGxuVj8g-nD$%n&jWbPmtVpa~CC16duxb?8ROg==Eq%dAIf1EV0JQ-TZMDAJp! z{y-@t>iJdFSoE^u*+JpiN=i6m>hXE0OQcAAk`H#`spse_s9?O6xj>I7HNh)nG#)}j zh&%r8EFE~!SwEl0KHtGkq5A1Jr*%nvo20{4!hTMWue+>QGLg?4zurYhZZeSqQ{061 ztc#AMz>p?a3#)q+*s7+^EnLcy$_BAhh%5?hLYHnsmo_E$16kfUUGG?OXs5oeK%?wc zp88_-Bh*@<h3;>9kaZ>X9Z>!lizc$z=KxzvY0pkkD`PHuv`z0dir!}+-`Mni3Lo%S zp@06}%fFoTFKfbdVXG?ZOwbFA*&o43t2R+OGt{T#U)dEQS9fAQn5OnpI+5Vp&7Z6R za<QEquPAYVHAP6KKuj@*XbxabIK)BvwtVE$r=fq@(!nq+MBQ##=F3#eZi-IJJK6OU zp*Hixzgd>}p7fmh2ZL~scusiiG5^llPaVwwMR5iRB>&EQ?CHu7zmNHMf&+yNWWC8w zhxQfn?|gc&1Gbq7%f(+!^Tf}0D+Ezi>P%tB`XNb)d@LaFWBsLO-L9N<dh%0N2<*w} zj}wU`-;o0>tIwYGWpfQ_%aMPl_)ACEj=7Utn?Gwav0~36`KI1FNDDDS89rso?3sTj zNg0sUR*miaJLW3&e0-S@?veJo@6{v<D<j#;VoC^w*<M_kLFL4!*wdc1BEt-ti!eBF z1p~}5T)iw3O{L8RAHf1GXX2E$0xD(=Oc8d3EY$+NNvP9WpF<=IRk^zp6@DH=j8MRD z-w|favM3Am-TFso#}?HJjxnZ0V0B<>RgFVy>Bce6(?q^>(5~=7<{x^;Rn<lBZRTic zRnxo3VKkbjm>K2cM&Uy~W}$<Wuj;cr^?0O^Yw(Q%mJ(gc6#owE<qjB=tgoJW*}4Gb z_}nb9VbFp7o$`$XKdq1a``eB+JcH9c@e6z$88XR06yqbCjKpleIk!zdh3647(jn8T zWQJ^i9E%>%8s6PuS+Lx)MX&S&Jj}zeS1FWn*XcPv4L|cuOOM?bdJ&!}`NrgHeC8kC zvcIN1^EJKlOUcJ|%XSBWO<#5m>&O253tQ#wtJHnjdM4{nihG+vl>SkWita)cmuI=@ zWfO!fD6Zn=n%bR6nVDKWKNfzn9;Ns8A%RGn`Kvbt4BKQql7@6*Taii&a!93X2IOR) z(|htyYkdMkLv8l@q<eBnoO^`#5uZ8WZ9_(1ZS|~Q>eK^-gVoOW9v;a@m?MqTN?b^l zCAkDUetbmTu7z`tRWvkmQlaJG5by7A7zOhk>&;iEoa4<s3_{F{buH@7LkypDbd%Zt z;A8`j{k89&<*$9F){n#b*Tv+C5sgAHojKoVG7mnuT?)mzC_n71gKPQmb!UwekhG|A zdXstR!JT%=gYA;eY9~0Wowyz{fHNt6<0WYpa{KjX7=6hbdf~8PV6gby6c1;wF#jeA zBS2|!WRTxxemRFtW!Odv?<5sqqaA<VQIE%ZJJ!JNXNWY6=kT6Y^5cn}aH!;O9qd!& ziAwJJPkYt)l<PeDO*y9GLUy1SdTUjA^7><qzDJ-CDQBThb83kUe6Ak2m?Y3ucLvEO zGggg{#P_Wa`T2e=52gGCY)$zxzf1X@_NQ6NbB8Uer^|q{6nWN8X(#2eav7M5r|iJ@ z-O@Y~v^af8^e8)9?2piDUTUTkicP^~)s6>g#q5-n?NlVrXX^wqp``5gm_ImI@8VOH zN_nYM`O5||1cm28lx*}*@-&@z>f(N^sCWsYg)3hG%V%#2Ad`_O{~6Qj3f}>Ccrh{U zJPE1zWtx#8Y0+;=r`j~t+dz_R>a+jx;Q~Zt#wo~}@a-ui;Yr$i|BX*L1{|NO2do6@ zjvE>4YT9g+_?4>kIM?>I#~B%wepqpy$k+dn&t%V--EZapbplgL`Y_CGUNN~@AnX{H zRqpbva^Nm|0AgZ#kHtb3m(2b$%2~F3E6YD6z2#r%*z#{T@3q$*u~yLv_MfBSuVMcE zntxC7Pw@u>fycA1qWH{rA<_s&r-Ba%mogH>rdDX}j!nEbzUJf0IGu;rFYvnK1a4Mj z$_aggzUD)Ya*NgL3x}1+i=rKDr*I8+9ji#k0N<a)o9z!2dWaosW!W(r?>X`1*KdAj z%?3?aMx(di2jBg4N5S*@_lTsM;6z^Y%f=PjNMi6DnzGNUXfnNOBo_`V6Y4ItP8KS- zRK~;uALY+g;|r5XL5ywsP$xmL-+dxO-Dd9oOb^wcPO9kcudl1Wl}8DLvim#K(cf!P z0c+3xzHRllv`2roJ&}Bo<hOlwXtq5u{T^&<O8v9P`>g%4YN6!xMsc(isDlLHn<Nth zPS2VLJ*u*~8J@~kW6`cWFQ#Gnga72q68gzZzDh)1f8}*5Ao^Jzq(R*6p!AdB<ApA? z5hoU1MHhHZiY3=*QAExiV;Be0MU&iCB^CxdD%0y<+^X>`jvkVFhy9fh`z{k}NWC+g z)H{W2v|L!|BWYEkm!wrV0mvyn%NtdrBurrIchv(J-4|5%kDMA@^p*&j!MZ08uc-av za8FbO-{7Km^uwolxSNN!0F=~L{)l~4MaF9fROx(pv{qV<Cz4#uV@CI7=m7)Ooh?1X zXT;Sf*m=ua0`0UyX;mL;HjP+?mvH)8o_dP%n^g)mz>$KNwVSIq3?cvFTjDHCw);nk z6J={|W^u6YQw$qZI3tG<*N<oXl?}g@7O<vEL>yi%L`ao2ByLg9<VVT$SR%@=SacD8 z0e6GCtXZZ?{N-*gp0(qQ=5a><QAo`r7-d7CoqhTN{5#jfC&BNHLgEo{l9j9zjP87~ zL&;I`p86vw&vQOI-{TEp`^SrVcmTe>rdIk%M5Q~AmxmMmR?312o}wU=BwrukSpdZ_ zRL!Pj4HZ|y*;j*ajWm?x-E86XG8N&Ah%1rOt<oE?D|KyU7M(|nbYFyHuAcDn<$_n9 zXfqO{rEet?f^p^pSIWY#N~KoumN`)<5(`YmxmJqcpfC=Qmo<+q6kjgs_FM)znS~Eo zQVbg7ef9$QN6NEU&iV_S3S!7J0})v@nmh2|ju=KFQ7aEiKbC$-X+d-cFWHp=Zj3^W z$R0piA0uOZC2vQDO6Bb53cp1Tz@@}I{3WSJhIUcM4p2W70(P|WO^TGTmxx<zf07yK z_AQ&qkS_}un5-T`>Ux*L+T(NRC%x^b^@iCRaZyRLw#jUHH+Orrk37ToOUft<K;3U^ zIo7?`=9JJG`yTR*TXQ=jW!bA-pJ&;h_f+48=sJvtqFcGgv3K~y7nB0+q)ckse0=re z{K}Y*-A(QpK7d8x>ZbqndnEDE=Wq7{jCz6n-r!kF5py0X#d?B6i?vznhi0>X9wzm$ zCzoax4_Mu^=CzOP%i>XxUMeo$1-7~tkN3wp77y{do&pgDO6U#(jQo;gh*&UYk{^^9 zw8XTP9j7_5N9alXw-K<LUN3;CJ5_|2d#S*+K@zi!99N95UjiN;BWi1HVeQWTk>j$K zhRAuT-_UWUi|NZ6LMvhZut5VpG~Pp)vd#f%9{-QNNSvKyw;(dE{vR@4@)&6uwy%h= ziosP^HgNg@^r`sxHpRz7J0yHSG4ar6u>fhpByq<W*>X*iY7e_RLoO$4WAs?o0?p=R z=l{A(g~d%QNfq*#N+onQfRDy0E3gB;WWw172@rV4`w;1ldT=()Dr8n&v?R5wVmF8a zpjlX`Sal$(wQcLM@M|PyR}!jV?1?RCGp9VycVpy1-k&Iz{qQf80)02#W7{vJAM?hp zg1nAf((C;m>2*On71Mh)K6CeT(tO&o>n66n({CbFY(9~j2kp~%#LelP_j3_TwtSv5 z{~n84u{m-N#0JS}eO;w;k8Y3rkEPINFwo_ixXnCyhp>Cj2j~tHONL_-in46G5P^ol z7<(kig_R{E^4$&uj2=6cA8e<7j-ASX$@9cmR&8wuX-IETnh)_R6#?ZGgFyUdm0~{t zA!6_m1QUvx49>dIJoQYWWczzY5SI!%2{u9T+rz_E_GcZtR4tuhGaO>XN(qBxlWFi% z1gluzZl*>_Lyq#B#>j)5{AmUqION-QdebaQ1=3W-f2#!GcvRw=tK#^#5uS!LTa~{Z z$zwHkphomW4t*oZacr6i=c%Cu5nOBK%74M8w@CE-sHkhCmWoAJ@+>nu)0dIk!c%`o zfe35l&1&{bv$ba(9)7nu`Wi(M0bk_;ly;hnK8IN<<u|<9sCz_4mKR=6Uf-(tUu1k8 z2P2OL>mKul%HIzEJ~VPcVPqS}wovEg5LS=ljv1OK`EHgBXdZC*C?v&iu!k>EOOn{k z3s3VBk?Ng#3a*)FIlaFcgeyu35&O0w_QAw}S>P1Q$%I?jj<C19CBi#G+u{><de%+( zvT{kF8+MY1Oq^t>4N)bC#1i-MBeq=J=cdP2NQi7@Lv%eC&stp~VX*hS^AOK1Wzau! z`}%=gE<1P$dAGY?r;yYi)%QWsA2~U|v$idz<9~EqR(yGq7tPUE<aKit->tlSb2_=i z0UfYP-2<d-*-Dq?>}q6OHPLmu26*bbsd69ZKkPc#6TMWGE;LRXXvUAvW7FWYf_J&W z$MJwop5+@72cMrhOBJy?k8YwemUtSxg#mI$gPVEgUrUQ!w1_A{|M|vg1$Rn|=M|nd zc)7H=RnEI!zA^Ew?<2A$r4aj^(KXzpiX1~Gbi@8~PSEzOYfCk&2G^*SHvWjJ8CUUV z8U}}0Fc95q>Yr#<fkBy8#C^e%g5i-ULY_|`)!TU*FO2*9o;I*Q13RstFMs*kJDO^@ z_3gMYo*zH2?`Z`cOL#Td<nI9+2vlqK*KY5d8F=^--LCn_$1v{;<AtXUe1M{!b^d<S zPb>I~x=jiMoANf-ZqE0tC9(ROg@F-dPIO^?LZ=QLK;|N)M}AmHRt-;-^F8wXwY&Ry zZfOHFe$U!wgzfEuEp{LaibxG|{&Wayi5Q-e3ghqPXM=bMgR$14tPr`#0I&UT<m}uK zD^)X0yzUXfU$mQ__M;;!3Q%W!o2~P})vydUroJIAb9Il@QkW4WDeM@*PJaGJBlvWa zV+5RA=N^Hjf99vvPsZ^pthsdysu?h61v<y@$bUM9W%v}Qp>VsPcRYdWEaddCTqG<` zMZP6gs-GbeW4fnv;F;IJrv;+V-zzdmR2B66Ca}ua$V^HT)e4AjW50KR?NmD353u0? z{`_0gK4AD6EyeRsEBF@nSkJoiz`wyKtJ^JtxXYXUdE5Q9Pm6|_lmQ6Q`O*JUKNlrX zVNtyhA>zzzMu#sOezW-N+A|ElTSeWK6tTQfEoELCD{NhUxMFQG9pp%8mBLYVCYWy3 zXSM1DBFm(+Sb)d?r6h{OJn?j56b_IcY+MP~GOndueO#5C#no34o6PfbM+IAOyMk$m z&fWw3H_bvJJ($;K<z<pxUk!!Y1gs1Y`1{x8SFFwV*LO!IrJm+@b95_zv7`>1AT`Ch zYaZBJO+>gZ5#jJ)lHfpT&wS*=0!$X$Y0*=^fColg5r)Vg*V!M-O8#9V(a%qWA_pRL zbqsQ@k0NlEze?10LXI2M!bL|$xR^rw<U@)pi-O1mY`{pYqmD8>M2nEJcz#O;Qoo&s zNPjMZ&LD=XoRSZ+hI%L^Y8NCASK&`d^L7$k>98G<5!}*lV&J%I0fzwE{QMG$OiV+N z4-_`Rh>~()M5pR+`<D7P^nAqAPvm>5bA3<Z1M7PfJKw|iTuwm_oUkG@qcNnG)b0GC zW2u_*ao=P5@4DW$N36O0xV+RCpm>imGiTagHWYm!)t0Nw7%8KW;Y+?g^+2vNhe;WQ zYA;EdWx2`>NRQ|1G9KC2>oJ};ud~OTFJ+8eW!9(5yaIBjhEXQ1%vnC{4N4%;YoTmH z{P=2NM1+1MmahU{=JVf{X(UyLvT;@+Rmv}Ikx9J`OYbqTdq4piI!XFINt(FrJ8&3B z?AAW$7kYVXYuiopLTO5db>rF|^qnOuqz+%vY5wc^-Q5i<gxP9=v8U<9<qy-F{Y9ju zyzmK26tE8NGwP7=QQ6<Eha7pW2Sl>XBYU^6EK#y;Lv$sb+Wa(pV(laH8F}GTSYvCs zF&}&}mlddoIi|;hy~AJFd-$mB(Uo+Q&oS-UpV0F`g0mB@d@k2`_5r@k)M_(sCC+o} zqRUD?>+Tkhd-><vp1HT5Ij{eu>`eZBmvR+c4`bWrC;U4Kr?waQcM<0$Xl*BxkB<~G zWDS?Z(CmCTbfbe)N|*A~9|M;&V%Q?93rQum0_2w6OP|`NN}7+2J3t?vqmIpquqVlG zA0ca{Mq<2I?Qo^AYf)ujhg@&~=T<T`aSM$NJY9TJh)d!2ArW50R+<>NP&|ZV<4d>= zAEa(+Z(#W$>b8vAzupB$i;efA1^imwPQrM4^xf+A;t8aJtLA4+|E%HmCVe}DH?yfT zOV^oa#Fp0T(M?fLmNuwCE>&x7VqhC4F^b%+iY#5p1^GV4E&+-i3%x#l<>HMFsNHb7 zkh;KF`4cm!YlitV{*o^k@tA5yBf)PH1<X`O@R7C)gFc}MD!binJnregEmuMfy; zAfiXaiaex_M-B0>OcYFphuVo<4!cU&&A<!QCD5gVpnh?No8?SjX8C(4H9K*YUzTFC z@EHqXY4yJ{-f_K*cfCk=daG>UWml^4{zhHw@qYO2eHm}{(~j{9tI|QEYDrA*McKB* zCu~^P%_np!`a^Io6niFwIX$6rG?y4H6;=YPrs7a+QwTlimg!(v6i@EcDJ?r<YUgEx zdCJw2iiMOil5VP#r;V7#(&?r~w8`>{+02=4>U|*06P<1fM`c$2pQ)+W8K>S?IHfX9 zF%T=`6lWrbhMAYXNpr05l5xs3D?b{dGftUiklXlzVGO~<9I20yAW4aAexR4PG6XD^ zu7p$L-nNMN_tG7ouJX@}mEDll?4c0UB?+g}=gY@#DtpjJNo`FzP*)B|9J!|0k?=x( zQ`gFT8dy&Y!eP0UL@4HwzmTugaA4m+rbU)4JGImnFw{nZ@r3t)wCmL+VCub))VBl) z9`sX>)KWe!dLTnjbt6X>|IW%k0@%&7*pXglGilYoh5t6vIL{8Hyk|elzxG6S`#PR* zpYTy=e|?7byF7Jq2X4-X3y=@o!38Yb9C@X}&G0A(Ufwms!pqZg;pI>NmBvde9o?}; zOSANxl1vQofQ_Twg7Vvew;M+l=TGFs(SNo(adhSTX&n76xBG{qzkb8QQFf>H8%L+x zm47XjGda;LJYDy9ji>+Qb44Z_hfHQ6>oq@<&jndYSKSj=zdIv?tM?Na1g?IfF5qf0 zZJB2(oP-q*a+I8>OQ!6SUMYE)D%lgO&pAb5bx(V74t$=vIUC>hjL&E7XZh|;+3jb? z$C?7)43Di5V`wP$B-tC#TsTwW8QHa&cQU8mab6*e3oQQFY<uZw@!3IpW%DKWYOrp1 zzND(cF@)V|G2Yt8$!#-Nw1Wi*)@lz&W=qUcCEpYfi4l*V9FX;%xHQe_D~>UepeNGB zKf+G8hYuHzf+DT2v7;er^nXBu94URb)XiRPJ#}Qx=X2DGJHbh7U<8em6iT*yh;S8? zL@3tIM{qX6HgmwGRD(5JG{{G8Fb|t1H0aHb2n`~~xYvfkTNDk_NnUOmMBNPWHa|^+ z!T7yu(0ZLXK@C*VAjh;?>qHg3RGHs-B}0Q=b4bdfL9aQK+xP;>Q-<x9NL{Z)?7G$o zf7Uv2>}wVczO6vLf9u2>uUeJ=CY2QpA|1-kwOT7qBZsD}6*djN$--~Zpm~=}4qN() z1_i}jDo%4?DyUTOIOJrn8z)?%Xz>bl33xRv-Upg={12s>(t@8mN}DyR^hI`QMUQm~ zse01mKThg}9($fYCR1iU@fgaP^qH+3>|MW6_2XZ${`dd$`n3zD+F6X&G&?9ieP*G^ zul7>8=>0~S*9`5ey;`L&q(!Wr1l9oFhM;FnW3Kg#)bt_f`12YUEtx_~Etl+RJ=^^B z|Jr)?;Y%4>GR@Yv)9cy4xZS_??76KLIs7N<*`0Rf-0Ru9e|FQ-WF=B5;p^vjC|c@e zJ^KYDVAIeWg!8bT9e=T0?DcG>!hYx{>?pZPmpsxgspw~nD%q2Mepu2A{p48BZr$L( zx_yw(X6<MBQ+kxoUe5{@U$y-YqP3v7ENOvQGe?RUEN6+q8)OqQ5h|@{JdC%25u44D z&xr3_ppG^yV;S@7Ku<WBfqOwIixFBf{y(BLBqo-cJJ*V#-DF?lcQl}ul%jx7UYj?) zIYb`dh7_2=)hW-zt3!U|`3bZu@_fyM2DP;$JohCFw<?vcEJxwYW{2O8JdaFIwUUVw z2&%5(kjqjI*`xV$*nY$8dHN%N5(KaY$r)z#7byUciFFRf`^KZ_A~jJSiLMz7%tKhZ znczD4e!gX1#e;>EFn8cFs{s%xL)Vw2lQD4@AofqbYSkOijZ{6?RrLU=`mj}%oDq(y zY>w)xGo|X8R6W{N6^%d7T$HZ5pv)6}lt*^YWDwTXze)A~0G=ndS@8T+nIZNAo-_Zb zfHTj0OPX*1Hu`&IY$f1ENi2a_XZH)skT3<|T&o-3dKQG01>xo2upvC9EK-CS7YM&( z-uo2OBaVesI@DE3!L}w{DO46A?royqoGCT_AQKu3t)kZ3kaDIgMabXiS?dg`HAmN4 zO|A7kYkfN09$>n!e5rM&uGL7bpSo%dlqvjY&stABNiEr2V1!9(&34r)l3EQtYb}>r z&k71~UJA9&an%|mwa)KZYpT>j;FnsGA91*=)-h6Rh_lu~3Wmd})iHxAZB!ZLs&cec zNtM{35LdlGdxQ-R@ms|A`okxvdNS2^{lE!#HNN}P)qtSvHu%l;6qg<R*bAxOW9Kts zb4#m8{#+GX=r>|h4bXiRd7_0QtmazHwUKKL*Cf{&TsLu@&9#;5Jg#j<?3P;jV5RZj z(jd1nosu4JD}LprzE4jM-tv#*dg0$W<evl?5We=yuaYlgp4ovWn%2?NlE=RKzm%FM zJ^5AY`^@jJ{3_$;`@drSt@q~Y-!{*x_@qVeuN1zN7QLd9RYsO6$;2K%&!^%YALO_E zhZ%8`r|t?NsKnV`BbM+=U1diY?Ny1W6A6R2=C4j8Kk_4Tn;)rSi&DF=M3tX|7@|j4 z3tCG)$8OLBuG(lM5>m)hq}*LvqN*<MbQ0oIAH$%aycZJcJv-<V*l*6Gdv00EqMcGX zJAcs%adGwxU*4)NiKMzjS95_+tu_+N<<?w&K|g*^T+LaN@&+Aj&SyTbdbyOBO+|5A zl`TbUvu@fJ*l~P$n|{ltn?OMol76g0epM)8szRH?EM&_&b%n6K>31|m$clPkJo13m zh*38{vTHATROUot=@6FYUIcYpcFp*OO00TPT>`7MYI3+Ds;u}tR@6V%0zO7Aqcayh zsHLG&Y1M5HP+m{j<<HyK@_0$`S>|<2kWiXx-$t;#=ARJ>KR1qPeL!$b5+RAX+D0(2 zr*ed3-(H;`IZ7}`^iK0O<aSX7c-wy?;h#T%=WVKrFK9!CYR5J}R?%r)lIPaiBTib= z^wU;ZowsKcd(I&H*sN1ew}uZV-<17|HBwGYoFT8+{;nVwGWs^YRXH-h6udk+GifiJ zuO{t?3zRHuP1+?s#R+r8yQ}@N?0od{VJB~}V64}8CDUfMtJC>Xa@Lo8G7HvOIN+#n zPnEi6`Oj_={7Ey0fM0V3qVsZc1@U>3NHWD32+zo#v|CRZ0N|#qCSOl}<Oogj7!HtD zn*+u9=7c6@jU0NBQs>NJ#8ERR#*yr)d-dspyhZOeE27Gtzzw_$ML%#&AVwRRz~A$# zV#f=W(H)*Ul3+(Eb{+hSd`%5VH7v6Bq{`R3gehq8Ym+k5+C4!{tN%Rbv@SVDrqxYf zYCdx1lPWVi);M&O^!k*ZlfCH2a!^J*2zjW@hh+ews@Kg24%?HYy14U(x+J--Xk}*A zvBKZ5%Z{S1!{qy$^MyP2wiWTa^=TD3bMl34=FOMpP+^$r?=v!W@`bYc=C<*^Ou9Tq zVC_RZ{6bnMZsN9b|CHi?J}IP3_p7D*y>3KQ%1*>QifXl|R@atX>KhIAB9(Qi#qR|& zG=~32V&GFNWcCdoBG;vgDJ!M;mZ*GeuR9WX@M@cVKRjNc%*p2}l(BXsCJzymv31?d zfNnifp7%oEIrQDX{oR2}`=IYG+|Tmo_9&0OYweD$6d+|dg^uTpUxxyVV=vgow19Yp z;khvAP3GIr56N?!>e2rRYu?TlQdaZU#TIWVEMgP3#Wrk<1pK5okbpJ2zlBEP%r!p; zw33MLOX*(w=jeok7IT02aa;=9d5Owx#GX?sw;GU_1HII~Tu`h^G5p=N6Wwa_r{^5Q zX%K{f#-?mS$}W`WMM%7H5{GbfUrhEh5SZ%-OgvnL%L<#TBOlXZaa}|(E_|?<8;w){ zL;r%^3uy^~dE#vH)fB6JZhVPih8LXL3Hwkfwk#YO>{Y8pXj4U_2=XF~e0#76V=B8a z$Ctr=F&VQ9*m0nJ$KiDd4Y6G!H&92I7K^-saK`~~qk|knDnCN7%Iz;;#b;(j09@EE zxzDjyD3PI3M&mp$FkN2Ort2<ptWA3<PYjuu27#{movdnU)|YENY7m1&8q1=2{FEh$ zQ-j0`2s4Z=@9ayFMNK018HqLO7t49SKFmYnb|rsdI}gT^LEyR@&lmVV9Dg_Yw>X2N zTx!X|HL<8)36^qjL$p-idb#!KTO`V;2vs0x5(I4pLE8!V>+}p?p#;+5O48#X1TB3= zTh(aL+7NN6R?#S|+Vphz0O%TnCq{e@qqqs_wf-5IbjD~VpLG$*>n#?MTq)%hk$|I$ zNE#UfgffwQJQ*TMoO#zz!L0al1qw@s6^Yd%jbBQ8@#S4IH0!N^$9h|*-X;pAFWl8c zc$E*9lD6<#BSjJkfsXms_hd{K3d$_G*G-GoM&Q5M#{6J!7b1*yaZf1WV|d?4D}20I z1#o*;)0S8+4;3gPm#9!jz7u$Ju7u2S6h2=`@ydpeRM7A6op?LS8>kgvL^pA(mb__b zu~bvX8vHOP;cDj-7vaunwxBH$B^J?&TNaCg5bg8uaTn2cD8?RYtY|!3<`3j*dJW{# zM0>m<TJ^a?x0yNdMCJJGRD?gcehE0-@0Cj7n6nQa+tZvqqu%au&i*V#tT`*a2v3vk zsep8z82CL*2rO%FhHQVbib2QAs#M13^xz?%9V+kK@@87TDYF%iL_+Z1te&F7*UDTt z(fj^Ix_&$%5HZ{StQnEJzUC7S`KTE0Y6ovvmgWs|DxmO&y7@JIB9#yN_#n-kZ++C7 z<5vXF>NZ05=|!JH0*;@<i>+;>U&6Bh*Mou&i8)wH3U0ZKmn~6KP?!I>&11aQtv7R9 zlDYL;x9Z5qXbod*iO%M)RjHcS(i%<8vr4uow6Go)T1A_q^SC3mY_ysyTC9vgkZ#CT zd3of}KF9Huf7ob!<qn0(J-)IzdMj<nAp?IqFa5C({78Q+W3k?YHKLGPeVM<WD)&l* zmd9FgHqU&=C&PfL)zYT<^du>iR;%L)^|V+D+59fN(A~cI_>(TK*RjDGeOfe#&XZv% z#-~gKoH|p@6OVWK47oTtU_!uR8fp}SV|U2ciE1sFqLxTGFUDd;GBR5vXpSxwh?uvI zIVP_{R7&TUTVHy?+dia(N7@DM@$bV`K3C$vm_nuXC~@EqGLZzvIo95z?XS5_-YHQ4 zX+U!o-7D}K_|e%iQX>3qiQs7-ROwOJ=>oQyufLz>FJ733`T&?qO6Oe5{1%s02ReMm zlO}6T1;f>YEFoc#dN_SqCcah6n`zqYF{`8B@}*J5_F3Eec|3M|OI8TT4GTlwStahI zf|l456xl0j*2Qn!<Eec_O6%BNHR%^z=wLdkwnLs!sx@bnLt+k&QOHlHG{H&b<a;0| zZTz|#kq|_<V7kNKQw(93xf(aFELuA=X<_R@6eLY9_Ei^0X^sw{6QQ*?WlD*RXFJlE zuV`(fLYEa?)U=9$coP(^?=rvj0~u<l5%QBq77{-F25Ccf_aR~#R!Kc`$^}wvBCF8d zQqg+)dx{0);bFFfv521BU6>bcc2Qkqz4aYss(*IsqqXWz#0|^*mZ;$gR5x2L4yubM z1WM+X^JOT554+8#I)S!c0n~KZA^>GGbl0CU`Q{P+V>n>L`g;3Q6zt7^zwXP6Jt8w4 zjQ<Fq#~f1lj};tUi}~;VsXhlOTua~fLf#ye4jJaa%5hmF_kA8favInNt0uRZ*QQ(~ zCm@&gI`uVVP+7mN->eb`@I)`2UPW0xTEN?^n2V;mzaJ!I=%6qAe2t7uojr~1?LuJ+ zfyB(_fMrHS%+PCgdrMZxx7sLC|68FjX{*<!vi#q&+pB#<Y750#6aM-HO>xeFW%l>$ z-k&F4s<YExs`2@tBj<ifqT5i?e6HDrfS*2WAz%l67?Na<Lnd9)b`crsb=V(R_Lrq( z==?iH@x82+&D9r-1WAlq`Y;X5%tatdPyUQsh~m%q!*)4lX1?xPscf7kfHx75c1EmN zkVaHCavUGZxg`UC8~|k!gRhc{r}9}s8H;&(yZp@X?$}Oo=-GY}qd*HpU*kA1yfu~P z#$8@M*2B6-=cQMp+~U^a1GKp1r)fLiK$`!lLlnEr`$>@_=GP3n6o!}9&uisl)0$JD zOBfxDO|t|w2aV>rkGbYx_CKsSctPrtNX?o9hqmFIgW(D0U<F0R`4v?=LH0X)0_HOT zJ@sYGCVUXFMK~loCZOvfO|3I+e{d1Gg>VxCr&PM2n;0DCL0aV2$$w1q^bE8+)6nKl zL3`1owREch-kXMeM4<+Er3^2pzAJ9c6~A)p$JY8{*+Y~CDg$rpyg0nyIoWpb^F#!L z^{raNH?R2Z(HPrW(F+!|vBynt66)5(cG0y6A%eX!jGgAT2PNdD1ABxzHeog1X%ch4 z8pVe7AN5g^%SJb2qu3OlBdwbYH@fC?B@KXuo_gi&r4&dSRth8vYzPH*VyBalCyt&J zXPlA+t6jzr=X4ZFe)}9hGQ;{Ft)`Ol-Z|j`#F{|6GSrYPMVToizj8dc{`GUIt`Wia zU<p4okNl|78gQ+8UxtaMKmW$#Y~UyP3;9VkR@^%}3oF+0pi05l=G+e)1x{#X3=4{6 za`p*6C^}SkmIdWyhb=$Lf|426j)J}8htC|k(v2TZewuA>savo~yGj+B-!R-}6oppl zKNdaLy+7OLra37&+T@z~->tI%xmEzVS4y55gOUa2y;Cy#VbHB*`MTlC98`R&?lXK| zPbxmKLeG~EQW(R1nt+2GB>1vWuP}VrB<yVV9w~KZKbeWl@@KE78Tcyh*lFJJ3-@H$ z0Cnh(4Fa1C#VS#dEC6uG%qn$q(goM?Yc06GuHm|uRcb&3a1|$=s@T&39SpPgRVpD( zqeWz`QqOTTHN=eDyaW`+AUAP^#Gt5`p?-c1;!;r|N-D{LD8N3Pr?yp5EleMrkztiA zM_CKgqDKWLds&;_>!XRGo}x0+9_y2}2}z=M&x#&P)IQ?#nt!_B{=x$m+*_o}z2ft& zi-EgnT>Fa8H|D_SOLd>&OMBw;i{H)Q^C#R_G!9mv*e3YA<Sk@IYwhp38to0if1K|| z@E+@th2IbStQY(iF=5gBIdNO^s#jEF*RCO*Tw(rn&n*7E*tG-u^4QrdBda7UC)d>& z?i;7a79?Tmn?S=>c8}UvVA|0%R+&p460*4%<MvJSWa;AMjwxMeNanM@mASdIRzMNm z!oFWu_*i05|HW@P#q$78NR{QSP=2z!9r}0XRJnzX@v0>bhq5#R%7%5Vs;KZw%RVKx zorx4SV*8j-Asq%F!m(Bh{b3*y=$6TPzmND9c-Vz+)9>Fed^@)OzkqKa->3S_g>NTX z>z$DF818K#DttTYjjw`lL%NT1G1T7ht@5Y6;9F+vdC~haV-AjLtyE5q+GuWl$OY*y zIE`A#D3;uB?pfwsb2E_sE8VCd0VVf~fJMF}N%PDph$8=+EhDrYrx!cTEiz2EohG7( zfgC05RCCv=SdCbIUv_iWnC7hSE6#d|YDsa{%ZM87o$ND0sC7tTZn=Nym+skc+GA{e z%%7$LWYWLfrKiO&Ogq>4hx>~E54vV$`rq~s{}=r?@c*y9;{UB@W%%u%xUXpRD!^;} z7qk0+%x{N$;f8px_<v___;1PowKAfNG?5ecUt8yba-RNTPyNeMcdx73gA0N3FDc5o z_1OyVb?95Wl|hm?+4TNoOxl&mS<$yj_@Tw@hQDY?Uq?P8kGHSKE8e`efUT6;N!9{a zVjCo9s#VTn-J;<Rdwow(&!Bs+GWD-_3E-FYfVV9@behlJkptwCUwhH}xs<Jj+cxus zErCLeGMrKB?b9$3M_1X9R$1ABL9tSMSDV#qUDGiC&la-3Dd3XxTD0k5H9Arf9jVph zGCiDn6Vvb)idM0w6>O1Ioyf1KWI7#iC-(q7kYvxA<ue{QI2L$P{FM+bwNmUBrRRz0 z!2;`3uF!gd-u;uFpc)Z9w8~R;rY3>(jJ!EYsXTbF*_*~gKgdi8Dvl-FX=TTDS(2sE z$$Df)b)Sdrbj(MVe;AHLmA6}yAuaTfzuo2KtUi_1g7acWX8DNiY5q1b7;F9-CVHC# zMSXJ5-`x+m=I_Bj?$`WX|D*r)`8!dMDD0TOe~-+XzvFp;%IcWEOFF*F{9UkPkMmc5 z+kZ5FGt0B*Pu6=aW12!P8ID(DnbL{+$LKL)d)<x2k~X$Qhg%6%O*G6EV~%D2cDI(= z0#H|=UDL(|6U6#~r}H_6wITiSDyCI=B99?4tC&5;7_m7uJTh#j&*34W8UntSz$T&j z=`DfQK7IJ>?*rmE?IXo#O_I8L>isUnsg)k0*hkdizsf!W6)XD)wh_*f^KzD)!_b{L z^V>HbkKsnn)O=n(ULQm0skgKepEdF_+EvC$w}r$HSIFZ_e1udmZtG~gUSt%tU!=9b z2@X@)Q@_`oVZM@4tleqNA%0b!g<(x)3d7nn9HQF<!_r0(aVwc%*hUd`=Wr{L+1-mK z*#4=YT!tBB{84Qrse8XHBdts@yO(Mt%$O`~{%;|bqkNi)_)PQLa9Hs;d5s$@HZIe| zzV&a#ro}^sc_e2CE$d-8wG0GV{*ZUOaoj67UMU{+Dlm1SAP^@{RVC)mkb_Sp6d)LT zROXq(oM(_%e|9itnq~j$$K%IHB#qKEg&Ix9@#oGX#U|PJ@2aKFC!SgT4xH|}cGGlE z&E}6ivp45W*MGu1dGXolo`nINsTQ=No3&w2Z>I{m>?WEGf%ix{n#@2z<i%}f+x?1> zc<PlYp}e{)l1kk{70Px=Do@;F{>6#MMuI`ec>|s1?;hCQP1+=Jm<0vmQ(1Lz<5N_V zG>8AqMKx#t)}op(q)E$C&ld!e{INV^STH~FEHu3Qp_{?oH^6cqq<9r;qsmA6p2!fT zkL>PN;hS`w?lclN#BWf?r1s``)gWCf`(dciv2OnDH<~(ThYom0Eu9<1hFne(2(i$Y zD$|IhS@$ufb)?j&XgpFi^pcEb%cmLkiwtEgpWIniWI+WjWn1}*bFZUMY*R$BCx1`} zO%$3PaR)Z`;ty(vO61n-m1XHE36%awrUpeQm`KQID{8whk9>z&@02Njg9E37I{OgB zWP3#Y0H-gey)zh}q9@%G-9^>ZB&^U1mD#_D1sa2K)nZU*9>bHg(Y$nvw5KuzGp&sw zo#r_dUn9a<RqSzND4Qr7ji!$BPbxgK4n7?G=9qw*B>0^a{FXnnTBm!$;P;CkkLaH6 zxnWDk@adk1U#;}4+ZxP&E;RIsVAGrZLa~oS!(UEZ+&%P@*sG!P(Vd?9Khnc=(vNPL zzKr^hQ~#yt*2oD){w@L%yr^*As-chDz0PW*%uAH{1fTELj$gpF`J@X$g4l)tc8Gg$ zkxqYo_!5DQ`RzZuP=4~S6kd7iKc!<^P#2VM6qMh@pNVatx*O>a41@F%yBuh^u`As{ z<X#7Q2MPAeCATYLRdRc%%Yojlzf{8r|ER*V_8Bq=dyPe#CF6pmC9M-wAH4fiLG=sM zs7^v1o<7M_2dckrzPl}h>U**RrqMAss<(f*C;o3Et%Ik_;f<d+><_*-3cxcmhR)~g z+Qn)&V}Eo_)*n||lO@~LOqSOY=N(JBa~JEf>zSsZ6t!%H5~HacM#-O|9Y$3+3{)kj ziwtLvLnMjin@Iy87TxE?@^yv!^_bjV!!4{D6WX-Ks@TjV{AYxkl+Y$PcdP86s(q0$ z3`?4n)XVL`_*k$pQ0&<6zzwxXjtk7~c$(hwHfT@F?|&!Rq^QC3tSxT@jdlc$&h&w} zmWGEiQ{pMAh6fE?IU-A9SjPh`lS=%bEG4gSE)6g&QO5a9K8u`)kr_+N`+^wG{SQ~Z zVF&*!F*_FT13p;(8|^Zx3^r72iIdGow%MLB;_SALE@TUmQh8)_C4gk2-xK|*{35}j zWYw;lhi~s<W&cU2;5tl-1@pha*D!_;XrkbqQh^A%T1!B0!?gsGs<niKqq48n5@-We z&{D(?2<(!4h}hsCl9BKq!BWr8J;_K+V0I@Om{S=8ujTCSxZfw9QQZ?tM1o~i0j^NL zz1Hdzmzx8VCCkNXbItEvIQ_y33#b20?<#E^NJCOa<mc74mP*#f$v*y^>*db?PLz+$ zVm9N`{K0tDFw$b+G`(1A$A2)4ZN06M)PGFA!X0DB8`umyMqPU+nGDGryP=4ajI@!( zyqd11PHB+zTYkZ?bBwFI$_Qc_sN}u6<}#yv2j{89FFZ}Q3rSiYuR4v>&IC^8$ue-> zs59x<g{wNv7LpI+O-GY7T1KOsaWC+^x|JX7IKILU+sOHnY5p8}`f+)mkqkWEu{Ds6 zm+J(sd0hQmp(qaJV8hUhU#$0H#Ox_37^v_nnUN^rxd|#Rt!sh8a9Bz%rf2!&IY<)@ z;<RlgO1#+c%`7T<i3ggB^k(Es=DPlz@uByB^xWr@>5)ul*t^^5*kQYKGTIVeY1*Ef z%0*Av@j@couD}We5`q5v?JrWhV6t}6_M2A>cWg;oRz;URK4bK)dmp;7Z8nBEQ1>qz zc`mmQd;4wQ{X_o#8y5vUe~(20NuXj&ouGdb^lwE`Yj+!I5@ZHTiIj+c2oXxz<}%Aa z1WQcDfA5CbId<Kq=x)Q+X`ApokuO+l2lhERYu=CKf$goQOv1@VmRZXI1c1!ji#m1N zyV=WW#vj3{AKCsNiyVwI?eLbRzm!3RHplb~U$atx*Af-sQ1ecJqf(iYoj{!5Vr25K zYcgO|CFTZ^?_eF(Aw0=y3@y;1v)FRgwaH$kxm_c8hctJR$Y&3~hB#;BKW7Ym!q~Bu zq^mz8_i{mEZuijLu^plEKOa*A;|!lUJ=*P-=R7*cYW@Z-(<Qw|4w>$AHlUvDxF?wZ zsu54feAmsd&W{`y5B{JzD(*h{=GMy&$P@l@1@3|sv9X<YxpEQ}Ukh|_66S6`cS|Z} zjN)u<<@aVKc&(dPOpdpDUOL_BzJ&K%%`0YI_$wEx4!_$%)izdp2eTG|akU7Hq9{#l z1&#|R`{eJrUim95`-LloW&c(_B*V35OEde)wb$GwT-##U-&6eC;@U@Kw8eek-!o|^ zH~+qXH%|WjI6z7B???C{A5f~9xOoDFQ>&x|hph)=i)S<C3h>cez{7aO<;={d8vgaQ zJgI0Hi|nHjK+Qq@k9cZ7VR_Afztp_)ENM67H~NN*5nId~2}NVAo&hq?X1$&VEP1^~ zV2V8kZWWqgHZK$v<&j#R!9z;nAuJw}?oO7|i8HLUcWB4RP~IC1t~HW6L#NOnFLHeR zG6|CSCOQ9dEupZ#4Mh~XJF|=qyHh4)Y*JPe=HsT-#?@_QBp~m|nvY;zOIcO<=izUk z9l!7_y`G*OuR6<KPhVMHkSA~SdMa=1^>ia|n2*Fw%jl+2x+%7%BkW-)*cl7?TJz@= zLjZxE$CaXg1>{f2&!34C&|ttvg^pk&Lc|S3(<&G_kU!d25($umGp(VkSt26427$Gh z>jbX&EcyK+z=G*{{1Z#SEK!eURhQDk6q7$nWfJ9SVL&A1)xG+63b)d0b3!J}VGUc) zK?d@r3s|0&w_ZHq6NabUB9#Bw+b3o*=`VQTT%5O=OE8<;i*r;uFwpq*`s^vu9COj5 z!bf{m{)?%k7wV^97Z#pI&Vk#%A-xrhqf?!;_mwx?JbszA|KXC4;lFA{^$h1EHu#kc z%G~%vN!lws4I837Cu^r`M7_sXxZ10IM75#ZIE5z68;6p;IA@D)dtOGLbG4WLSaQDH zTOnC`72nO>qH8}h9Y5k~PtoTIqk0?DUj27u!{=fVaM@Go#5KVTU#pn(Wj}W@>H42o zOxmLmCX<@XAyK<+zu&nWR1$9kJL+&f&@<#*Us}jB$IxKv&)gB4h6&uYIi$9y2~pyN z8_BRSadj1YK|$pp8FaW+c^1d0FUh?bdzV8DeepJp=hxv~o<j^(n10&VvoQT^9%xMW z%0N-(ylu!Mn15A3A$mW7N$ChKisTeeN_e4h`{P#ybu;*y_D8j)zb^CG`Pm|g1HZG% z6Kt%-%}%r7#_VcoaWNw==C*z54WeB0J?9?ReBZHbf9Lz`OZPb67trAU)_lKv>)z-4 zhsS5l_xE_<o^Rg^UuC}gyt3E%K4ot9#O>33-#st8T8{bNoB#Ojcf02Ifu+{`CI#6o zt90-B!OWWfj(%{a?lz}>a9q{|9mxaR^HJ#sD~WU45B=b}t?soW%f6DPFH1l8NhBAP z)BJO9@ICD=7kn>F>=%3ol5Xq2p?|&dV@(M;^shI3S@7M-1KSf%!Poz%{eo}N%lif2 zQ^Q{gzRxXp!S~bne!=%Iq>cJ-z;}V}HW&VGI5rEuFY%zF@oPd~I?AE_5Bmk*``Y#k zzFV%}BYYRVzez@tu?G4@qm_j-6XkFYCz+a8-Qfase2E2Uebf?p=(M*7iU6mEdO60< z<?T^Plx*rmR(O_mj&ovX+cFQArOm?$Hs%ttr?As}^*ad1u>~fk#J(}PMO;V}v>hXm z44`=j3Po1nDoZkh=OA}HKlojuo=dz}>^-yLXbFCv*k<jBOW1%CG1_AVqOM4i@IoY! zP1G&M)=b&lUiQk)i8SGmm=iQ167w9y%9Sz%**msE)<kMf3>>Kj>xe}>p9jHMs-khA zlt+wsDao|ch6J~;XJl=Zac6Cm$-Ly0B{FjI?_Lm8aLboz{$<M(W#%)pvr(Y;^+n<z z&gzLWS@w`(0BPe4_K;fnBy>bU9c3vB)L<$K#-2h6m#IQlE3^zEh30)t{qjQbKy@%a zv8IYW+@Vdfg^Nyeu<YIL)f&P~%~1PW+8**m)zFPS?IBg=4;-cJA!R-6A(8JJ`Ay10 zw=T*4R+H6ndV5PuA<uT)YvdEsuwe!t)Et<rjLGcI)tL1`4pdOtx4x@D5aJ-Yx%uW( z^P!pef*I^YF@Y)_!SBSnVO2FxzRg8E<8QHu=Xzz@P*QUcj|s+-ZQ7WmOdI2sX`{dH z!m|%L^SOl?ow;+d=*;6v1=%JA;|qPFGh=vm9N4oA1jhdSiLyVRq4i~~%xBnA`Cn)P z`^6b)`|}yLzI;1xI+{o+a%naA9Un&ttVHvjR*Y+u72{lL6oMz_CDce&D<g&+!>54j zg-&Of?|u_hA>9%dh!QLiU2h5IVC0XHZL=j%O=Vs$m_dk|4_(AC$ITM+!<*1D9EXHR z8PkJdnI2g00+=4=mT|>2A(@t?T!8+@*X$LH6q=C%;~$~|gT>2a6hM+RS^uo%z6vWo zr#p8X?lcHV3~O1a{9R>#I5BO1IMIgZ6xzc6aAMm2aH0**F}x9Y-c&<h4OU-YvrQ0K zT9-<v7AOx_Ly|O~+6v(nD}+z15Mmy1SRp(`YeoH6_!Ikg21}#gbDJTUKpG3=iE(m( z{82WwS<1dPYpSw2bc)TPoj;*gu{k8wfr`o!BHP;w{J8?wej?wYw*_h(Ty$K$B7-nt z18AFxJjE#tw6+?I!%7=F`N*urvyul|IzLRcxy`&3HX5|Gu^Qo?a_(wu7e<F#DMHvf z?YdNa=k7p;nO^j)W~Ne$(c1ACz3A)UX^nZq)v`@6w>L{dIz`z&=<Br$=4w4|hUuTP zyBAAB2F3O|KAW)2^G9eFmfMoBC;y6UdxBxUKs;vdcGB{2FZ!i~jyZftr!YgLCaRyT zndoZs;2*mf<jFTH%<$BIP63%+@?;8wgw(MtYIjmBYm;Q7ZoF*N32W>O#?JzQp|)f= zWbrt!z29Q-x6_4-6<QL(!Dm<!!PAR`v@blvCoi5C#>XkP^vwC<yy@6LtJFynUZ{80 zobeYwp#)5|*y4TR3#^{q{J`d~x%(gAYyaO;{c}W4-wPCbWrVO-mFmXc<lDeFH9rv1 zsV^0jyM)f|<FcQOK}ZvJs9lx4Bp`Ne>E#YKtyR=u*-|pp60g;?JHxUWs{AgRXd4G- z5$!WP&_sKPYK-#)hyhhZD-ngtgrbO6q6mfO?M3YQ+fzcR8DiK&egn}9&1bIIclpO* zPw65WiG?vMGFa=_S{}0Y(-nv^5_Fe{K^f^;;<OvhlVUCeuUcp!_`bz!6r6|n{8u2O z;x#r_G^m|=?O@SqOVH*Kc~-ne?#<a8a_nO_=~*ORLkY0z7%3gE@eR`0WZb<f8^Xg_ zbO(>(X+`6qdK$&;=ed7pq}a~16w6&!(C{APHC}zfJ)tgsY3<MYGy9{R=9km-jQTZS zPjB0$4Ioy$Ms62(&5EpaX3-?9s90GyTg~V#u37rs0&A8^g-<Cq#HIJhUr7lrX3fNz z7oH3BWDEWc0ae<%IgJKWLcPkmsr(=HB%-{yykwHvOJ=n>X7|z5pGdoBd+}R@dc}LD zHHONwmpypLLi_5E^fb?PO|weKRCj0=vEIW2h!tf?JN0cd+gq7pJ{|^046wMn`eb^0 z!~jbcwbgu^qF%Rue1>m)vRS5jnYDgp;!SOBh4|mg_1vnBZ@lE4_L=PR;^T3fg$w&q zo|8cIDqC!RFRNM_b<|CIJ?m-TamM~9%?qL~j0ykH!Wb(Sg>`OE`4>(OLD#=h_<*;! zBh6lyjSuGNFOFuzl@-t;YIoQJTQ)Am^wS&lOke4mX*Syv17G)M&2$$JY(vDh02=8T zA7^M8rkoYky7!&;BR0w0I_E3Le*5T4vzf5~d>{B}R{UF?3+`Xcx8S~S{B+GZPJY^4 zA)Ze;;@@@&=s8?6cb+26PhEM6B6=9P;@|#AW*`SYwc_6%=4nOa5MdIroiYc9wP)tw zKjx=PoA;BS{-tKG{M50v#+f5ZZu|4FS{ZmtRM=x$_m?CVL1JWM&vKNAdDz_tD0Qij z<AYMCp!IR;`6`NI8Cc1MjaKxz5ZjI)2V-rLTkz(M{ZZ-`Ou+N6n*B`FAf0tuwxY?6 zP8}={`k42GBplpjP7pm&9{@@|Nn8(Pp?uKCAHCz!KG(vH7AngrMx3?EogMvvrx%W1 zn43yDh@t8bnWacsF#Zcs^n&p_S90O>*WgK78%vzsZ4BLH49A^fSAOJ}U_u>AXg+xY zu1R*CrK(O{6C1o^@+r+uy>4vr-O?D&xJGOg_M⁣fU_kQ8KD{LQGdM_)hW!iNXSt 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 IfEV$(S~W2Pho-ENQ)f)JV>s= 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⪻Yso*3evGJni_%Jf1#= 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%0A=5XK{#-`x-;s|D;eBHeT>dvyQO3f15w)<P4a8<m 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π`Kt(56CZhYHW<1|M)XKk_W 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�q5LFbqbRrMp_*{t%)Agz+-ZD; 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�oOjT>MIGcSjts0yIV~a9>J@2O1>&B}K<CR^$ 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%0D2Z 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 z�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%0A0dQNV%q?Cg@&@iMQV?8RN{xsDjJl9Q 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�RthwKwoKMB8Ug<4iq{W}49xB?^vk;S)&g~WF> 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�h;9cB*9TA#R<aN0A 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:)y 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�#YAX9E@=<>m%E~6LJ5x(gDh4Tf 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¥nG_K&L4nj=ZvLasA#|| z%3fVmT*K|rVD_VLCo$@0as0TxP8guBu#FuW@*ocqUc**j32oV1qQdyK0`%>+1d;{0 za<>~y<Fpy#>dR1CgrGlwoe-0?pY@LS%=c7d2?vPck3&0~y7Mtv#webW+S%$x8^fGm zsx!B#3okr1@>=lAN6y}*f~=wy_v84A@dF}3rhCa?5WxuqRj<P>QLjb?Eb3N9f%5aO zjl%kr^q!SEwEBl%5XIC%7KsUEy?<?v59k`Oz2?4OB4?do*u;NXJ3~7-R_K$qZRSKT zhUw!{lC}5jGF)a?QFz->FE*~%?=Nt}u<s9DM^ram!`DV@wU5-Km^U^vws4^4nA?xi z^NFrZ(PLxCi3^u~(yM17b%BW?pw&cl)c2e2D#yyNI|#Exnv}lYL6<nCPij<%la6ED zdjz1ILFPZoSL&)r_D66RtNTHaisV$H+iO=S3y#{{{VK=2?g!|<cO~>~Gt&np3F5y* z!l+_r=-iLPn!%A{a5&x7rIuRuB-0_(ht*-~b8(}hb9U%ui+589fP^DHw7LZzMEDTC z?;%DK{t^0nU1)(WcY6eOsWiWVeexskNMDiS2zJ85)gh(&Lkl~Ea>`>S`xACIxJ@0j zDOZ1MQaf0fNU?{})2+LvGPeMh<47PT^a76Lojo|VP-{c2g&s$NG>!Mx$OX`9>H&)f zTmhHvugBA_qB~Bh@y$lkq0@r_<wAP&-$Au#QcKmm=_5`s&m=!2Hf|CY_=iJbZ3{aC zYNRH7cP)!W$Q!Sm=Y3MT0mLP?yJ14qMiUOlOM56w#Fk4hR#Z~QlZ0g;N}{;_N%<o` zr7ZQ){_7W0Nc+6L8)=(epm<_y{})!hp2_3IG#eyp6@(WqBxL;GXI*J8NCrX?z$fkw z&S$w@3&<f+H``^P%pRjWR(dXepg2-a{BPw{*v>L$DQrE3xNxr;eVyr9WN0nfy2Gzq zy2uPhzj&OZT9p_Xl|xz-<K$nc7q$3rkhuKNGy>)$8wT>MLgoLQwM=Ut8Gb0(ci0Ks zeT5-GiDwjyM<X1hUf{M?!0@~Nloha3OWJ}6hTHm)XHxg}&2)P$gPsI53c13}fi<KI zv0#(9o?~+xr{v)uGrCV1`Er1hYyEFBkY{BaCsS_DazgP$WFTiWSTnMtH21(@Xz!3( zASRU!yW#{F=ZnkwgYyC&hZrPR!Gb`6b{E%k0KzHIN|DSc=ZEF%!G`hu)x2RMJlk*S z`1$gt6wolzN$gJ}&OVmes0EhAB_M{HlK2@#M29(QN52wf|F!{<ea{KlWQtkJR=$%- zckI^{HnYoxmx&Oq<L(0elAyS7QWP*XJ!`0Swi1QLm_0HNwCiGp$BRqeoIgQSA25An zR;w#d`{bn~?7ti>B`X~b5_jRdcGdhe8gqj_eL@6|ZiDTP0=X-E$`ZEt&uX(e$Jx{G z<&U_tPU`K(Ybw5X?2bq?F}XwG263@w^&j*y`c7qXk)B4QKf*x-4@k5wnwY_`E^)M{ zoT8Hty30I_LK)T+Tp(_S7G$$mdE1aqi>yT*X)***15Wm=S*HgVC6}C>*c1iBf99xv z6ag2$g&?bo3of2lPAIG-7-iLDHi>j4Lk)?eXkNu`UVMsL$T>p`=@P$Hwj%k3YlJZX z*Ypcb&QzL}LZR_G==9h5)P=HKm2Z){+W(p0uzTfF(Xi??Fr+B>&Z)Sf|27I51?;(g zKo?bV=4k4cV0oPTcRc(1wLOIzrDW)-OGhD#8;Wk3b|!2n3KEniHiCTHrGtY=njYqD zA%vd;P}hBh%|opR4FaoK#uC~{t~ZpeQdH*a!bxPo*ZC|QOnl6%<(2Mgh#(UT7p}fm zkbApg*1+3PvZcraBOSpq6xdFmb^{+0X{LQBm{WxPrN=q~-OM|b+S(M+u=ai-!-R_> zKa+fVN2yYR3q<{ja`s+cz2t0J*gIT4EiCf&fQymEY`eEWP>nVmp_L|~LSeRW>KW@g zSgc?-B&!aXyL>UoR3=_kjKGY4FxciGWi9@bi9%QNNAc<LZ2i&{eVkvg%TFz2(Cnl4 zL357q{)4St5o0=_BR^zAw_4__c#6}U$n7<;b$q{Q^$k-lb=W<E#t7qfN?iCi&x+=< zRhdkMuQIDW-$bR8^jxC#!;VYqFJc;GCyz}@yxj1r_q2Okw7YQmQRRK*qAZ`}^U%-l zc3d9`hvn?9d3_e$4w5p#etr6)_?-ihuQ0p724eJCYiA<$;`JY99i?tLp!5+YdVPRJ z6l_o=n_6`RSK45nF&ZB-%*c;@)-#k%Eo6h1(tT==%cXw@-g}$dk!4r=7MDRKJr@)I zK(p1ISupCwcK)!JQfvI&T92#9XlWdck{por$0PRw)N_|1!vjJ`-BBB(YJA^3;wx2p z<4HY-ZdwcIzW!G^=h%DXzU;+yzhkbHNz{2GiTgMY(2Eu@F;mdwj?{HC-(1_OcTZJm zXK6f^=$121XZ_Ri+ubka<ItJz_PD!nFRsf`2Dwq|sH&3%yu|OB^c~%ahRu$pXY(Sc zneH0Jbb_wAh18XtvoL){)D&!i@4>tass6g{qFJPRF<*QqLiA2`5Fr7U^dQ`B?R%lk zQ<#Ay<lhYEEFSlmGI<kwFuvP(FdsZNneKKD!qIIYsysqhOYS2Mg!_&=dBaMej34dm zI7E}8CA&^oW>h|JiD|$NuNA~Sq*|J=-9EwgxSrHcAOw1F7Ejmwz17fI1^iZq;+Hnw zy3PS{b082as7D5n=7(QT1wfC~4vvrmIE8uCGxn)cvM5TLJkgG14@Mt$_AWj)W6(C6 z3zJium&A{(b8s}5Rn1-w4mgB4JpROMEVAR@>w9cdfl9hrG-)NbwmR|=E0Pp&H@s8Z zVEkIE$VEn@^0^>YBLb=i#ShL*m7-GT!r^?oF(-_jGoTo&2$u6~Lp3*zWqPbnE1As) zD=f0q&kgkK+JjC$>NzjI$25vAZKbeZ01WRqfZc9tA9G@Luslvc*CAIM?(X{$6{H>o z3?1)tUhmO0eZX_k@BTuQlroA6pfKgIzh3eFw^dylNg~rc;GI-AGFx;4_O<u6;<g&1 zqcS#lpY;xjx;qV;E9J>UWc&?B6k~Fkmd72jAilE~IRo!VIXJOhbCL{weciyKDg41` z&^|zywuNNeJISiEs=pIbukH=0#tlIg9Ar!a`vb7V1jSp7mxL2{YD$KO1Y|ebcPb*r z8<_<W>qlN!3MOJKLmToFX0ONTQ%S4Itn(sO(Ls(PNt06VS-?7IMFLF`M2JmQ7a*{Y z7n-HdRe;V(MIiRC(Ra;RX9mYU3ZS4V!g2!daS%taw#3tG&zk^uQ7|H?I3_B;TVz4s zSsm5Dqo=_ALJ_F$V{lAu%6_5j+}U95hqwz>B&{G(j?&h;0&%7YW9{n*r2mT)F)Rcy zj;4ymnhE_rQG*nGJ!*Okk1e`&Ys~*txp*Fy&)QUpuc@SOX+`$zn5+gs89_QAdZr@w zv$#Pf#@?9^9t$n#G`>KRk;o@Ce~^(kD;CEqa8{|oju?=fc9Y+IFB8hNB_Iy@M9w}; z@nQ^V?5bxG%;O>$6m+c)rTKrub(_y}f;3GQEBXR$)mfPu)|tH)DRvm!8Be@`tief8 z&V0;+y++uo>sd`nC?Kiasda~`OdoFHO6&&_KZ&|^SnDTc#Vlq~O(+136SNI$IyHin zr826js>j(!oMxq7i&FLf#Un2<0wVLFqyK7p6zJoi-7O$oJwp4`8;5JG6l6V$78<4D zf^S$zRIW&I#uB%<J|lL~OD>wJ9D#T`B8UOujluUJUOZKXvU{>o<brl7=}``|Hqbs# zvz+W3A&2zH?<5R&LJ19|H}}2-{Ye8T-Aqx^og8f;mD(`>HNh!w3yb#%MQ-Xm6pUxm zU2hj<9^y+FgcJzGIN#@7QuimMv5IsF4!0jOME+i&P`aG*TK5&E$3}RlKIdLnEPN`O zL<&EoX5~UX{E)3XOh-jm&|!-`zDIPDz)m{x9GyPqrhxNP<O3GMHx!#O<c13hVJYwO zb3uCdS3U5jDW{KqA)IV(Zx}u#m64HoFde?JPdycIDyEWgFO1eSKJ7BMsIi`Z0)^M; zFS5mV>o>fSq1L(ZG;2l{_ywA;iHZOU!9soeD6kp0_OnSZ$>@LMt)QjAe2`dt8l6>9 zPZhJ)4td$O?`BXtd8($o40@+71U@1>Uy&M1hs9|G?_C_)!M1aF0D}&CRoMK}h0j&7 z^I!yae0&dMfaONZDg}pTu6~e!D<KJq9CA(IXs|pStVP|fL3yaV4XO<dT#eptE>Pp# zA41xMpovWZLX^n+OTzG8x(9Rb;JqO0D<Rr~<}CP2qAlv=ANL0qIE@9~*!o{$B%n2` z@7$`~1$)ixRG%H~_(IgmwbQZ~*5ixfENkG<4kF^fqzxNinrVWk!@zO%2Jt@(7&Hx9 z4_J?N)7K&n61z@yHc{!!f>&N}D#)1(Sal*yjOrD?pEc-kUO{`fjkHq~U<?pIBG0NF zFJ<KQ%&MQVS7FsE-EX~6>|tUb`}Cwz&1*-kRZb)eGJOOElN^XYCV^qqgQ*<uxQ{19 znoc!jNp3k0ye+NXvuKi{IzMunVBqGOq8trULiB8^W=MJMhpz$S^H~c~Y)XIs<uu}c zFWh0$k9MdZ*pvz~bNt%jjFSd}LipD{21W%AJPWSIt6^QT+`4}N#F{qAqSw_7(Pyp+ zjhCgY>V;1pArC2m#>)E9Djw#|go8LGQWCBY<NeI(X#1za)UG`?xmkLN_XZ|Fs;Phq z*{1fT9t^aFSWQvWWP_A~QJ8RGye<Zn2r)AbTid4f!YSi*A)#b`BkGXSTk^#tObRU| z#T9u{%(H9cCSB{2ES|s?k(xI6EEvy{e^Lyr;O#0n8Cjk=NyBUiB9gLUL!+5uiJd&= zUy#9VgMmC+>;a&Ewf;-GUEH9%^^@s<6H0OkL5N2Ln*K7YX#<M5eUgk|jRxvLS7nsX zH($T%$F>Bb0@O##S@LR?!cj$w?sx6yaf@lk)d};^d*8jvfaf$U!U1CRUMWo2_XMlX zs1rk!a+DnYOv;k1<TB-Ysi)9@k8_Dz{eY#2j0o&ep3Xwd9xGug-Cwf(K$wp?_~!w@ zc-lOGRN(A7J!@1J3Dbb785bwSAWT>XaY;o8hR0iYl#j1WDt;$~)W;~~|DuRz7vTJ* zY2hd}YEaxd$@zL=2%!!L4*COOL((4Sl-8q?s_K?>yio5=JM_S`O%Y^_rE1R94*-1X z=oo@Th+i1{U4g9ot5+4vkbceI?7y#7X3--`tXv2mC-Z<uFXqsvn!|tPND4;L8P$j$ z5RcNtnpIgA=$gvu*@1Zjg2S3DWjI{re`QyH`09ohR3GAU#E(|Bm*wZ2^ZzQVPHiOz zyW2X6tA&D+hFK#1t{em^5%@KWOa`Un0^gPMO901iHDgWQ$AjDS2nr*&rwNB}vM0(d zy_(C!OdJj9{!n#p#tVvmB=?-h)SNcwx3!XlE>?AWuL4-04egJKxR2z*k#K4Tor-%C zEQluJpn@A?hDo9=6&N)(*G`1TCvMnpM=vPc@2>>P+D@QN;~8PRZY7J0*M|q`6Qov9 zzI0k02JV9OZ=v4AffwYW$iJB$$gtooepCx-O;2Lvn#{djRD(K>9-Bb6+jAv3HOZ#L zU@1tLhv8bSSrG7Fc@i;~pImX_ZcdmtL?r0VYqsoINXu33`>(4tXA^vm!@gaW6=qaZ z(TX@Mc)(FFmEguY#iX04-ys_+c;+X<+tN-wkS}P1EjxV3S-K82lYX2{$eoVYCbAB& zA)8;WdnT`x(>vp?6)wId%!aA}#g1xy_6tu~24nd|szz89zrx}`m$3c>m+7emB6?zF z#rwk0bB*lijSRw%?LHz&J2t3;CF35Zu)@i?YzrD($lH+8!}m$7!So)NyWgm*!pCJy zO|!3r>c!&c5JnxfN<5bvZ9j>`rCXHg*Uh8u7eoewNl{=c-)pTrvRM?vCih%H!?Ghv zHP$jUmV!DMEE%gGkWVR37BF!B%U|rKYb4^g{Nmya8X6+Ah<qN!h%L#J-N$lS`vwt? z6v9Ci5B8w-)O}Pj50+!HQk(5qv!$@>NrP<GE`FZE#Z<A|Vx;ZQ?A6L?YvwKF+t%{3 z<z<HR?P@|JSATmGg^Eaqv&)OKL(CO<*pb)s3auwkHg1G&BW%H-45i+DQZs*TxF!j8 z2Z6*4=a>ZvHY#i+=_K${UUjC*ue6<{2m0WU7lUSf&chYfu*;@U^G;i7Ss=E=uSzUW zg~#>+KUP9WJD45S&T0Wwmz0^<R<r)so1@WzEGmrYN|WXfG(?Zu1bIXp`HU1MsZkGK z7(jDIs|j@b0FN)SiQ<6fczy-Z<%p;(0_6kZ<n5gr5r;erMhSQv4x3xYtI2Uv$WiCX z9n8llPLzuX`aB)_A0SW8A!j~Zko*EnXS2}Sa4prO4S^WS<-%Q=-DzBNvV^ImT;7By zCAnk7-crbNm>e$&-s8fPHLw^j+!L4q3)dMb9o(iZYk)#T;c@s000Yx@lJu%Gv;Lt= zzzfHoJ6N?KUul(izOWs&63~ee7=-*o7WM^l@(E-pF^JW4LDN7pm_cXtmXX&8dpm|w z;#pt}a8?`_7}|uyK8><g?pRl*4m$xIccOi{>BUq_Qs4c6T`(m0`t*H2c9%N8!Sz@| zU}=2uH?O7MI3-FfqRZ3(CZwK~xf~&hm<D@6Ul7f79=P2Z&*8DkxK~k$EiXrfxSj3@ zux|)4(IyXY)m%1HaK56u0!t{?rn!2?_q*IMrS~A5RV75oXNMU2EgzP|fZT93l>Oo$ zL3r?EYfTU$aaL2oD_MVct%&wU61?{5-4zc7Od$n=D_;$$c6y{@E9hb{O(nbTRmnc! zU!V~-n^K)_^sj#QJ)VyN6RTC2b}^Z8<733FN7~Fd6ea!YmDVFiHJr+|iRBh<V$Mj0 z(1)?dWLs-Uc_6Zs7cS5p5twn0=~#=*!};6=W6F@Qi9qvm{*hMyfPDP%8kAt=QR^b2 zz?-0&@SLhda=X9=pA~?A2dFj<R@~j5m|TlPA1+ZA^U@h&{|K#A#p(i13(^NnxGDkR z<kZ#`;n6p!8GEZ5K18-f&G_Da295CA172w9^Q~hRxspc?p%u?1q&T<b%uDqBvNo30 zG2!b4)=+pshz69MbPcqsPG|{R2fA{cW;~1)kVd*yi}#7Bi=RH;ss>lrel4?Q)r)P` z2w#9Z=JX}C!Mwu_AV_~l*d?%N8Gufx;LC>utgm#C)?<DvEbT+M%_9QvySDHC(}XCl zJnT=TC0^I&%w7g@koRfMlp<_qhD!urj+zaRowgS^@(ED)+TX?g_$fTZXs+vzQfH7M zy2UUuRybSi8r>fm@eNdXOuElof;Z1p6tTX5`R{jTu)$!Fsi8o}p^5l_i2>-~OTu>P zD#f|<4rN8oy!!>mnxcvj4*;%k!~{=raZ89LT)P?K{nUJE2!!Y=vUg;L2EAWdh=!=T z-xd)rz&!GHcYWADR?T+5D%h!*b)(|-aKYxwj2K^sux3yIB4~lyS{26<!XnyvwB7qU zT^<#gTXAiKYhX(*%a{2}wR1{li_Jbm{u`Q#)MqLQC@~!3sUHI#XKKw#qeBiVF~h#o zNAFcRR+Am-bLx+YB%ofhuQi}#vqyqVwPjMK0E4wiaV&B#W`;5#OzgC4*MGPD<3A6l zFQM@0$JjyjyG8h@3c+5=Y1!nXGU7wGQvgg_r1&?iKYHAc9M~YmVM06rs}8VJG)w(r zFmBU^kJNSo|3jg7Qfy)_^meb_bb(W>&Ie?Ms%IkAa^-SSW7qoYFmt;18iuP^hK)hT z$f2N8nkXR4A&8i*7|hHfC3ATv;HL47Ki{fNHNqE@EI9Xxwiwt9XyIJxzU<ljyPh?y zVy+yVXfQ*H!y3i3<y^JsjwAl+-ywOW933b4zH&Jjy{hQPJ3>C=<)cJDpRiYEO+<UH zhNxY2LzbyDW*}()(41+bFKRXE6{XuGst>Q4*CDf9A8u3X<OEzgk-5_o74g>o+)34x z9sPOrdm`><EI+jFuQi`jPciW%jbqXx*u2U}`MP4Tjr2|_-a=KfYhU~XYU{IV;Rq70 z5WyoPJ~sHZ6-^oo;7b-nXmKzNY4r9aNaCo^aIui0bB9#)k?}$?^S+^%sz;L081!&Q zk-kWd0tV_%iTm60A~E3@ODE3ud7Hl9s#wb9ouq|Pb4U?bca<cWkdwP%?;R18Hqj<Z zmuek5CH&LQv~)yXv0Y5&g%mop6?_!5XO`yy6UKWxRZruALkSo7fGYzbsy=f4y4Y1t z=fLrmd6-(9D7xz|DVthRf=uhO)I327+hWl}(zTc%B{XPezel^#VyL=FiPi|ss|M-E zN%Ij7@O$lr=}bjCfLpbmT&t{Y!Q(ONXf&`AzjM+(AtYRfcvx}kI29o+>K$`0N{$&S zd+l`cY=zbSWTq4AGNy)+5~RHe*({U5-NeAul@5i;!hbaQBJ{w^YX^qJzKj4jK*+!5 zhSF@!z`*DE$|qkB+fA8e|5**F`(ae*BM@L_8b}5I`@5d}dO~H!QvHW@X&P6s&hJT$ z_=!@Jhz3IHV9dT@uZE`+**PY%kk1}AAYzUhV`NYz;3FRZc`IBBU7N1twVf2$t<A~n zD5px3p=2?$^I)5<4zLb&{rjAoTVat}_V-2azgz*A-%(M&rNm;i@)&WjLCmcoETlgK zTT~3ztKn<uRH`BTfa+0BFT+ddja{21@I|gYUK@|Y>&J7uePOQXN~Z<ny;dBb#_1Zn zq?YkXm}?h|D+zUI5%WmIGhmmW-s7*e<r7#GN&VWWCPK5~*~EWnfAxP%Ey>^VMjIbM z!9Pv_tI04Fw%Yw#m+3en(?Q(}u0nu8Fm#mg%f#Ky+O7F<2iYyf7Qm2je+1$wP4vCl zrV$Vufd293c-*Ynyv#bbTd8sqHR8w5$Z9917k6e1_wLu?2{#QqK3iy-1}oiKWnJnN zEz>$S2GxCy1|Q(~#;UY+6C&!#W;8Vo`70{z!>7~fwRxRGOY^sZrsWQfb-KhI^{hS5 z#}G5?a~C}wgRVz+5^?6JKx=&&U@`PD02G$Z?#v+tXjfDA5pN`CGcgSBTFftSJ82ev zUBrAONw+D-Nlr-p4>B0CeeWz%vy-b?1@vy^aS#}v5xQR@&<-;dm1Vs%_cGfZ)oH%O zd<aMcXm(5{t}R1xKaeo2N5A<1X0lN@18v=G5z`JpBqaU#{&`*mi>Yn;N|*ipI%ggX zLH5Z-Xi+R%Gw1SlQx{+=wd>j%NiBTEOi_liB>f8>aF%x1B8f)?epC#V{wvevX&Kbf zK5PwjaumEUI)CEe{&_Z!4DP0++^1xZANxIHH<{%xM<sukmBWJSMy4KS8sFc`QB(-I zk;Tl%6CQSfVtE&WT!@yDZ&_E`aJ~O1N$3~6Z_{xmK?-gj_54ynEQhXPROfe|u!kH( z3I9!_)t!0Jaj~X|L{4jVlE?885~T**K3wBVldb~lo<<DmZB5GMT>s=&jyCj7F7~cV ztE?Az=#g8f0wP+U5O(Ek=Idsb1O7Yr^D(V5*7Uq3q%ebG=2lQqlLeLPRv|Oti5!7h z*Rm0e{_&j1zzpUD6FIhZb<-tAjUIu{V&x_+{6h`{pf-(QOAE967=cnqEcj1j5m_kB zh2U>|D33Lnz%VF(32a_wUa4R%zg>8nJ$*n3=e${`tBD9xITH3#=HMvuJid8oVH9mE z_q(T21T2u|WJ>aO@R_YJpl!UEdNJ8%z-n2`^LP048Sz9+E%slq7Ie4iHuY6SJJzm@ zS<t}8sj^tZ&bQJGqhFLpdnhwMk%xTNAX|9&2)#F!VR}l%*Ll7ej9JuF;e2hx%UYg@ zcUTCEw_8z~P*8dcJ)pt*HDHqRigP}F>#%Gp&cYmqdE9!BRVglSc4GlEQPjj?kdW0{ zfGqvlp*Fa(I5()}B4!PIpg~)O@tVPW7vpaj%bMB!|G{Nsp1E{sKf>ikzI<__i_fQZ zSmrARKfEqYn4BPAM?^~rTFXGW?S=A65HHAllGg@j`X&VfY<I}WK#|&@c5jaQ@Z=s@ zG@a^qW<e)FH{(WMR}^RJyO`e_;vXu8MvK7LW331rJTS~gdtQW0Kr~dD_iOV=wY`rU zr*ndglEZ>q)is2Y#1i)ifCDpm@$ei6N(I`eBrQzGTx-Nb0dfw@^Y6F7dNbDwJd5PT zULsP3Upnz~42$>XzMM3IE(UO3X*mbyNKlPy(z86nDJm^F52DIWd~#3j2j|T!p2=vS z6DfMQA7$12@KVA&6+Axb<kM_B-;#ZI=Q5|oLqS1$lk^{_8kLo(_I%U3k_?#s|L)J; zWL~{R=|fDUslpABP4%hFCO<&S+x7#K`@M^jeCF<{9+fvd!(o~CQX1Afd74}~<~X7W zEj8<5Ey_S?F;<7cUR)l1(I6WhEOZ$jZZ7;I2-!16Ns*NZsVQ!!rG4#$oSg<?QLVgP z&k?E%+DRCeWb7W$D2zR?A78hVMDC&-pHIA3SOwq!Eixur?<1gLSk{ObZY1Tow5oC) zz&=*xNMoX@Lz+XwV;PsAx3#&gOVxc=OHx|Ip~3od2<ABc_kQV*NKZIF(nyD3PYH&^ zlowa9)~NG~qg0ZHB@PQQ(T$1}*!QEFKcB0aF2Dw7ipD1iYz}#8Z0EHiY&UUiU{W${ zS7z@Ckane0I?w;@Qut$yRc{JB1nttao|{n;-l#g;npO%P#OXL);zu_yzbF-ljls3` zeCG(FBl&B}h@29gpMwIwe;L2Llrb_VFz}n3ou!;Ji&_OcAeCkh5+iH0Bwv0>AD?&` z0T}SAXp~8uoYiTIkP+^3dBF6nm6g+rNYD(9&K}`D7;n}d?1tX!L(U)8Ymi+cP1nBY z)(5Lxw_1fKe_`Yn-NXB`-KuD1Ti@-9Pe`@xtuN1Q=pc`WnO0w6d`T8HX&xB*>^}<c zn3~owfiIw*UAgLJj?d|`ApmkD>njgZVMF*G3RE0oU2XbtA$J23|Mv9{QF}aY^S-jH zn+AG;rp=VHwl7zMG@k>xb-(FsA-h}&@Dku4+VEr08_cet<q0Y9Ivm1R+?>ux&z{xC z_%`E;M7T01^o379BR6gZ$^htzF|`ni{RmPN7YzPTH@XzJ)4)TX%$gW94j_F(z~UC> zPvYJM!BiOT$n+(gb1F2Cr6Mv-QpqQvPk;vq^HvQ{I%Oil1-K~6M?fByOG9%?u=oQk z87gtBhi8^dLhet7LTnk#T+R+#+LOM)S-~;EBA<PzRaWHOlhw8>&bJA;$)3a_EG)<3 zYe+$gHou_$Ae1|SX{>Fg>2A}rhslgGioo4(VPrBoEX_L#y4w)gox}ri#H4sjC>q%L zL0Q%0t!3yvhd?+mUi#YJn~U*IyGlWCXj1O_Lh9+BN?N5i7OD>>xszW36r~yKm^GZ9 z((Bhzju$c+ZN)!QgyxUA3<n)hSQJVUn!XR#KWn^_$YEEc%O`LCSV%baJ9eJ6_i+MC zUXEH@sRl+pl7gfKn_b!-M#TQ+&@p$~aah!llQ!d{jcpbNKtOis0|cpwf;PjoH`eiT zgL%<QI>pk}o@W-Ohda;x*u2DEPHAek6LxK`<tO~(cKl#;?yJg`f}2Kg;{lb3rAz|e zWzud32He_fviJ^KYa_7?`Rj5Czujd(GNh~`bvWJecK=Fr&zFm+Bt4G){hBq=^DI!2 zE4rgnUAIjLs4_S#$+0lr-7TR64Avjxyy^mYtKEO2Cv$K!bE&WTtMb-m8u{iCxWy$k z3sXj4$*`_=b*7Uq_FsYMd4}`_gqG~4gy@PjR<+A*b2y&iauoIozLxf-azit6aQh-} z>Q`RIkm_ud45N)EDjR5Jhl*+w)I^^T+<{)LT3ALbU}>80vC&7wWRYaivB;f=$Tmwm zOe1SMdl%Fo(Ah8-1tn?;9aDhsxVaGqT}iuSJ4=wddK9CR)Y*~|MO9Xs+@&y|5_0fv z%lWa86a0q_Mun9ry19M9|2{I)s6-aaj8quQy#Gm0)CQv%goZ9m@mSU<ag3j-&0xAj z|3ddm+pD){nLkUBoDVT(VZjpgG73YkFXgO=({^VbeFoQ3B>KQh8_frgs)oV?!Lo&^ zjPtlmHvc<}fWFLwb>(AH(hFJu(cGIQ+I<a1YpY!PLRK6~i2UTAx!ZdywY!(hD2_o1 zt|23#v`;74PPT_!eE>JHVo5y4;U80gCEFjEi5^r?Yb#9sp^*~Y%1_^>7dmOc1M(LE zPGH2c(72fjV;Ns0L@Xi3svz91s8SD7R!;4)<9k&2b@fR8m|x_n%`<Qc00G4qsnbPE z+Cd$rYR#syYdn)z^|ZTS{C^EAy^d3-wkFn$jjN-cT4Dh<grswV2<2!2MVN(%y-KN> zvYWh&ai*~PlE*r6{J)-T8C#j7QsFrgj%E?(^xwF<SS5*8V|nr0t9|^7Qxe{@TK-vE zuJ@@l>mW0J<nK|}a?j}HH!r@~yaS+q_m04}pi%X}C1;NVXkuViw$qYrHICCAhStl& ze9qqos9hXo1fEn*K$EcuJNZ~Zo!G|8^yd1)$D9?9jEb#G9AFE}v!vS%j9=LuwZ~7| zRl=pt*E|*-OpHn=27Pca&glXu2;kXy1=Zc=zn-E38tn_UbWR30SA8<4Wv**KydXLF z@%2VHn;YL?k#xg{pQ0Ttl_>j6Jao}c%6Oy@#z);gFklQh-gpX(5>q~paNmU<+AGk^ zf@K?~16;?}(d!QU9Fk%Ozz|T_BM42?AJ0Sp%c?rpis!YXyIDc|KW~EN_s54K0U8Tf zLig%Qc{@U2T|t2GM4{fN%_1h@awOJSmPzVK6FDDO?~y6AidwSu6!H)TkDj+Mg~hE$ zqGg~5_B{^yG~nVx>s<<6sw6-}G+O&pf1eC%XpCa0RyJ0woWg0Gwnxso>mMUp?4qTf zi2}~OK80hHtRLD1s(7AIQY?X%k`@(Laaa4(L>!LU_#r3j;hQ-!hhR{^xY&8w5mj2+ zfM@l_UDbYb^ry!S1TYQa0~(a|0dvj*I`}Z{6;kh!U)YjB!GCfn8ste_#v{^lflX?< zqA<^=eb_Lt31SF*35!_#eN2P|u)B0vnbeGOl>|)a?tv1_kCid(y0vKsaU`7iiy~ZR z5V0N^8==_pByerhl=PHEp(V@Bi|s8)g-G4n*r`~_N43)Nen$jwQ1uEb@AgFsQDcoS z);Y&dsR(a)C$G(Qe{;e@Cc6NKa3)S1L2+7z?{5bc!H5BYmom+($<R^4>j;7LXNgR% zFzwD5=WP_d?YxG`dhpcw2p;-_)sER(`_ZeuKGT4AmJvIUJW(*?#K?Q3p576<WYEF_ z+B8FGJK~L`4K~ky*olw|bhM#YOmjB>Ii!#Bvv5V~%Yvlx>CWq=i`HfC)l6x*HUN#7 zGF^x_>Co*{ZM?a@2Qz--XlGoX2f3^14;J!K)y$SdrfoAvjEDdwL(XrK*`7Z*Fe%yu z$I+dDC$db6mi6{9IBTVIe++O9WuRoMGwLN6fZsS1HMhB{fAwRV4G<O;G^VB}S~+wj z%^C`DwhvadftH#5bNwUey5Y2JA6=2!qX52c7y$zf&8Yl|$*@m!3l7@(+W`%iZ`Uz- zWX0GDYPnhVzc*L0=Y+JV=rftz$KED-`Mv$JHUS@>r0Gc`+ui+ejy7O;7(T7}94tNA zc}|~b7hh~`w((E0kxf*3jLjDQ>!lJtFNbTT>2x(zqK@|b3{|b6_YPJ+(l?%Hi+a?_ z%DGgGLc@v(N($6Q(8hKZd<;eG>4}yf9OH?#7#DcB0w&MeLTk&&#y66vf%9&;ll&$V zC3x_)ZEV$5E#gUZ>Mpvh05CjbdWhh3anH-wa?xzdzVU3s-hrMln>nsvZHl1>e&yVr zc_wVLK^*|!^pdzz#`2*SU9N=K3OCH}B$P6n-ytr&^4cIVnF>b&EsZHvF0);rY_E6= zHdY^CF{5@|obsgj|6%B=NsW)zK$6^W95S(ipJWb}&g7DZ8-Of5b{JAZa`$=kv3YDk zyp!z<$y+`q1-yTzNw6JKFy`n19z*lSIA`*9L3JkM0?P^Je20vIE&mL$%M)sN&UFqS zO;lJBWXk>Y&>pvJiGFuoRY$6+H#Z|ZK&vO^k}*Yl{$KDpi1u0APFI3$;7d=B8!ajB z3`OJ2hS1Dm5{g8sXGxLwvyslL?WG7AoA5V9=Ry$m9zqhRG&&3Hyw3IdnzN=%hy4$8 zLeuX8?Q;8Y+m2k<`87xDQL1>tS0Nw4zy3SFHTGG=A7I&QwD2D~bITyaBPh|yqZKJU z;`5q5Kr|e*axBQ;Uz!8s<vCIpqm_qMic1LLU|b&19SV&y1d4dmE?-FspBlkt7XR2K z){@qq1z#2Q<X=Kh2cb`unW~EE@~djmiukaWpo`6rY64Wjf=7Rq(pIlhGzacfdK9!p zRG#>}Y=KgmAukX;cP_R$eo+W$*qRn;Aynd$ScPD_ao8c(oB!1IuIuDrK6dg!83>^Z zM>6hFzC|v|UwZv3>~hg&EwRvaFOP~++;G0yI39oDJeZT87IR%4F+M`yN*J<H5E|RA zk#a%HxyoB&lgd;e@R*6IU}!m1e&tG~#P(B8osMMgkhT5~y!QHP+^W6%iu*gNmgkE2 z*`77hL>-?X;!ITY1Knt>Y2{J<N7{JvmjK8tVA!kSI&M2O*%-<rt{V!p=$8jbXFfku z7sv3?{LSVDaA}D|jV`ECRS=?#+zdu|h4;#`cyR;iVtX4*SW8jcES<pbT)q>L?)fcW z94Gm+kEgvaRQ!XFuYsE2K~ejPW;n41U54XB4@mYn*+<_UsCV6R_g^4Pap|b?*op|9 z*h$nzZ*W~0>KSH|Vt?Jo>jHk{F(AB*ry%j?$x4lx0Pl;z+9Ka;oO<&Z--6tbFGIZV zQ8sX0j_)kRrGc2)pnHgd9qb^v+MVotJB>c<!|2!0M~A3PmBU*^H8s_r;G*j7b#%yV zlN}pIy@Mld;!-NvMm3PvS<Afo60sCLVW$yc686=z{)FWU>?r79jhm)kFmMP|g^34j z{vk-L1go566yn^A&+Y6bVRNsBaxY@F;<-3*swWZ-clsc#bF%NyTbJK?i}-(mK2Vt% zhVpBLM(j9HA2rpqZm&Z8#Zn4%KN`C%6}vbtDKw}T{+a8;bh~EV@yk!j{OIM))`SO$ zzM$u{98AdFFQ*l~4N-uH;V|rhukpM@J_lh6s8Ajhu7|!y7*~}IazkqO7Zj#w)58bG zhkkzbGV@YW`1(2o(xg%qA>kCvv`S68lIGsFq!u`!$aJf=DM~qS<Qf2kMf;W4M1$>H zrB$D|eQq*W{NKz<;5<{w1p1RXuRKRn$n-s-lj{a~Z{*9D_EA2k_{`)A;X13)yggfr z2t{EfCmW{`V)^f3Ir_J2D?xGJ@AKCyxTYJkDGeBD6~wu)<=spHQbob;yGwf_OJXc= z^N8uw!srz%1pW7<ZOl9Fg>0-sDuMu=xAOTNrp~Y}SRUR&tJ2EXVY_cFCe>~<39m02 zl_{39E@35nfTgG}kYx3I+61mJVL9p!2q|WDM+gW##q|j`_S8XAIUNYgV;Yus5IFm^ z{ARl<gjo#2Me+jqe5yb_9&1xhHYc&1PZP75+9cXuuMyB(X`H>UeT)dl3gZ@<pEw6H z5LdQZQ+hz>e^dz@t8Uy+*ZCqNP2MncE%Nffsi}<SmL@nEXjqPs@$c~$1VV3EHMX_m zK|{Phfcb6|PVHV>fGnRi9pr*^PINV&!X&cu?8BOxu2B4u{-$A(eEJi{YsSopTJbW+ z6pJQ_1MO$D;`G*h4zyOzX_)u>nBFbGObI^u*DUVssKemzLj7p6!2k1*?HVKqR{f`e z=&!K=*m|p#QVlUaR&WwPL;TqZvEKjFl!Y46kzDx5xNXldSkiPZ(BHKJqkNo#hCCE$ zzR!u{*k~7&1!No0U4p*@l{pYa;up<UX5miEd42=BgTkY}Aa$hKZonE&1SEy8su=$J zie!g?;`kL-*-+8Be&hjjce$Ce-TC=>6oa>=dwOYh=a77TXmr*PwGeWX1OESd?kvJ6 zOFr*fu2uaB*zB<HYF#P~GI8omS7X}&p<nx)#Tst&R|{S_ef!Ebt*MUy+r$V{aNlf? zcO>nVH+oW05fjo|FzyYy*N~i$A{*3h)0T#OShx1YfI8?rsOq>4Z%a$EH~yE>4IeF1 z=&xA*+1r?mHitErC#6)B$|k~V(85#BPB<%}+6G2meTkiSuoCQZutz?nt?^b@y1Ok# zwm1ID@(KQF7cS21zaBj&{Rj3uIMu<5B@E#b|MxY3AXRLB$23iaSn9dl@A-YgZDxkn zX(L}ig{l_>zy8rF{t8Evo`FV~o`0g^X_jg}1Z5uMq6p9=3TU^S&(5dYLvD>TLG`cf z%+*0fbKUn=%80y{-X_$w!=lrkYfsrooG17$yQ5TN@@E(eTSj%&QBfk5|FD_w*Z@WO zh@Ii{Al5D8XfmjhqDgpSpUFOvf`~UP`u*7L{)}(#KJ%8ZrKmsL<u_-*9XhbEF|}(W zus86DDWBytQ!1g^r?vSL5VP-5&h`xrzV(fjv@ToAS&kJpDV{~vHsfX#x#FsVHl`Xu zIf`ZbGpWGT#q3gXw<hpOiggU}A2A8bmw$uwU&K?#!~*->{y@n2wt>nR=A-zqn$T~A zyghU0-6|HbwmNPjAgyq4CS#?t_1cX1dc1s@8HfA@a#ChXQq(L&^_Uj7Wb+4jUSNBl z(io&`yDU4P53nHpZ#Y!iH_ASUB!5HmKjaJlJhO|WGPDrsW%r#jD4}CX_vSCYR@EJ> z{G*^G`4Dzh`NM(e^n2krnXC=%uTQ9J7`g6Q!y=;8wnFt2z8##$SJWls4PM3{dAI8w zPj&n6V6O<C(2tE{)iPsZI#N%WM7v>CGl;``qF#hOu+&}vitwSr;Xa+y4QprT)BRy( z7hrJv|1}O`sQF~_PeRT%_kkwbpFzXK=(fITFa2u!0}XI(lethjPoaYht+GJK?^_5| zz6UZ_TYmlt<AV5F;io`5q<D6f;#M$J-AgSO3Ow-*v?d#z2LA>09ELC)i-K-Qy@sso z{4;4|ajB8#N9pc*zQX5FXV;MWm7vtad#iBfd+T7XZ3TNdWIAIPsuEBTGasUpLx#Ak z3pYGwnHAz9*EZjgaTa!qHK;on@jH)l9qJx9Y;Kl0y798Pl2j?@C`v|re`~S{3is6y z-wELR`Jt<+t%sX7A|HH(R;Bzh+2sH{W@NCCt4!A#@~RJ2h9eQD_0^kgnBg^aKSsk@ zIDX76vebLZNcVl*F)!?$2u#fr5O*Wv_+2{<u=mo-ZnCWnD+sFOt7ciBZk7%;-pFod z7D7_))gJvDwy@eko5hpOy4Hr#HH3;~l@Xm4(lmV=YxK$@VB|JgPyUvgkKILTPDhWq zG*puJ74K635(Gg(zn9)Y5{=Js^uB<-VS7}#Hvrqja5;Un{|)l~DAT<0XRXQ*2`;HI z;h`~AU>R8-K*&#D;8M6dY%Hgf%9r9}XRWJAE(<F>*|0tB`~}2rKppRYFr^gS{FVqP zMwrpeNEW!8b}{$>&>%5og|wd5V!X;s^mTpFvHVH5f`6biR8{-Chxa-x_=DnN(9~|Q zpc9gzpNJw?w8!(@UI;4|%0AuTG0U#Jr4ujZyniFcm%_Ry18XbHO7$1H#meC-Pp(CH z)CWjM;Br~clHJGtyA^pIK_$Jz$_Gi=#9jDi%J96sh`52-pPnb*rd?mxH0e}uB)^Li zOB36H<@Rqp<R*Ot^n6=+H|$AJxc6}LuSMC;O)YW8yh2t9?6ol8ZX}jSVoU>@(YuiD z7Qj+gbKCxhZ(}&?6Q(r*NBA;cgFKVZ60-vb=0|@TZns;|6(pRL3{PHy_|{NzB37PO zJ^^TDI_v4X{6q30KOnu0N^?T9ly<$HgsHDa_!4c8Dc<VIq7a6;7!Tb?BlEPnMhzTi zdvkeLDx~1k#;3Lr9JDns^W7Qyl~}}?KQuPe<yXj5I7$9t)mKigz6RCAbw9(q%gER~ zeaB*witvGQBPbg2rcOTyGcLNH9t4$$-;P6^N$TJHM7r&f!`ygw@KCzqhdX=l8;q1g z?}#|TLa#s()LIk5r_pYb^8`_jUupJ;%P>UpAi;BOdt=}Xj~-+G<^kKXOVYj9*JD*2 zPt=+=x}&a*`KgD2wt)-)n*HIbQK?8@itSpB$0k<eBF2~mV<(j$1f@E6G<MN;dJiz` z+6~z@0qC{u{C&@zOeEEGXtG>nqB@Q=dG05nyB%LwQ_PA;9v0?+g?<B-&`>5RgOcS} z7J`!$nSJJ~We|=(OO$^+B#90)wv3SNHUU#_)sOB7X~F;3)wd@i)osnSlgL$1=$0p@ z5ndvKEa4c-(dukm8m0Aw46cDg$fU1-(-T=Vz^ai1f`E}dOeSeQABRVi&G7WJJl(0j z=hLk|XV9g+*t~NExWO|3Y)GPAd6QTr=f10kTkeU=T`p51^QhpDO#FRv@DD+@+a_ls zSe=_;$1N**X;#8s0qZ+V1};snR;A8*&?6y*dPsx!`f!vE>$7B51nQ@Cy5yK=HILUy zk>JqB<>nNU0|Y6th_oQYNmnWS3Z4XHAB5>T@mlW#ree0R8Or3_STsfYUtEMnB4@S` z8Nb^2J9*;Fs_;;@!AI=H9);U+sZS$2K99FP&ISSeH4nzHy{%4nA#p+lV>mL-uYWcr zc4-LB$+bas(Rxta;%V?tXXbW?R#FsnwQD@GEEINbhl)BI5(o3!HV8$SJ~roIfNeIn z4n;v%-`h7x$`tP8Z!y$qo9kt#B{=ks%8gV6>xk%DOirJinXKtnQM)>GDZpyFAUv(w zj^m>%)6<Qc8qviIl1#g)qljOerzZjOxI7&eZm?2Mrttb|3ID++ALog2FAZlh=aJ7| zNQXnlA$oP&SB`ZR<(vvB_z8VNdP+Drk1%S4nJaU!w5-Fb8CZlD2@sT?176Oj5uwYK z#0dbfe@{JcUyJgOCu}*mU6+>}L$0Z@)&AM#uc&*SwuSUGpYV(`79|p7%-RjS{&Ca= z653Ft$=HozP+~evH&`jr1JTE6FY5<5P(F#GkrcGO-r?caHG&gfTXZnS;TmR0o)D7A zbS5k6>*p7Zwbm%ZhY#!kp8t99MTUiKtzHosJ|y34&rhsNJ~`nWTk<KK&<>U?1&TPG zj!nK<EBD^eY~V%>NGCMlUE3qMJxXnp&8pM)o(T&J%o&AM@0W0b`0J=XUG-GZ+f$Pz ziO?=>yqd^_d};}fX^T``U71Un7WRkL0ak>i_AwPr@Yx?l9<wTW%J!{gvU|12bFI}J z%MV0oPufIb=3vOVxV~b9s)n*Ee|bjl|Bq|Taiqu~qz!_suYdn{p#`pKciOeTIX@P; zdaH9RkmUoto(+_;UMq%vWc8X$hCOCHJp<#tF_19W##=1ZvN3`wlh7(vEDZ@ll}3gC z9G!Wj01Y40*0qQVMr-n-B?z?m7;?Sw?XfBBZpb7{JH?UIW$KkPk68ZF74KF=_hdJ3 z07%2lZ4pD;RXO9qR@A)BYbdL9KvmoCd|iyuQF@G&js<vgH>!c_R1rZ0p+?6+$BKgc zymJhpDJz$qk-j-(t^1-wu(b0_K<KrC-`eImOud(52xM_j%j_P1Xyttm!N32~p~Yob zQDn<Z`Vm6+SS7Q-h>A95E`isY!ktrF_Vzk2(1Vm$&Q6n=cpwu}gXziK4`sPfiYw%< z$)1?XnJ@O%Dab@>416j~38My&3d^9FptGV*WP|R$aC=l-5&kM@;XoZmsK7ycddCl* zHeC(k{jTJBW1rnJAmtV*uRn-C=u)2bHI0TVIhJoZftaC8->Cx0rU4||B527EjmGh2 zhjk-C4QxmI<8Ay9kX;{yd9}9qO7tZ9Y(%Ilb(u=<Ah|c9Uqdh>1Yo;hwdc3bTC4Qd zkyAs1mr$&-XX??gFYY$*Fk;1YYMOVh=8A)>$oRim@a8z1naYFB)9yXv^}Z*&sFD}} zZ*Mi`KE2<1%;r14ovhI_9LUSA++pbE3Az5{0r>S(q(`EVS8g;X%L>H-8_XI;E+i?= zk&2lwN+I0@d-A%}vFRQsB4@(r(I+r|<=h|`Tx8K9oOc0rEF^CT34jjz2NVYIDRCHJ zcjP?s(3{>5+upkcbA;I?GDt6ICxm5Oh5iTfq5oz<y4U@-oq6q^RzNWfkKzYGj|8|4 zKxiRBaX9UCZos2fkDo|%G;wzlTL2s$!^3{_b1F02pzB%Py;)MmS29i8oN$pMkdrvQ zB|CYV@K!hEOXHvO$yWQC&b@XoCyO9qdWJWj!*ZDj2SXj|I%408FjHBKefvR#+RR#C zmHpi^7?k?@=bPRSS`5@`35UwAiMskjor)wZ@q9|gc6wuSQUYQYyV1BJk;mb#vO}mL z{h0Ugv0MO+P3`1XzKRVWfOlUtCL>Zb&jfoJKfyx%AG7&EJ(CZ#vi|p8)Vg3@LT@rB ziO-UZvdw-1{!%ke(d4QGkQ-TZFHJ!RV13%RP7>B$?9>xYF}a1g`8L0ntJ9LD-%;PY z)xIqOeHU!sz+-u(&ne1>X~+%%|80`L_5c^U!fU_u(c7PV^%2@+kK7pCb*?zsdP@hU zq(o2XW&kG?PL+GoIE|T^nvV0dvWmXJ77)M{zgxA7Fsq^tv~o1}-Do}cK%-^T>*2x~ zXmJ|A85agLH=gt|*0k6G@mD;z0C%(|JVM9=YJ%9L$O|1ZIOf1hJRt;Nfo8zLp=6Br zP>uobZ=v88v$8_lk>ATPSZ~wd&j0lI;N!(i&2h}l;NvNw`g~l~@yoIgpljRA%j3Mn z1pvBg#LqI)FxwnZ?>vgtF7e!*Ns-`(oX^q%S7Mhe$9`Sh-PceHZkR`8DiMEx_qzRv z_UQ_+DuT&a;3qw8P`STqPoF}HheW5)31(5-D{)B%-?eGySGp#+@~X!l@?A56mD!VA zXYh$5=6h#odN!<C8<p81|Al#{&Kv=S`&NkqH%@cA%Seu3Z?fep@(YZ>*`TrcJKeh% z88b)_nApea>TMdluS;CX+pj7Yzv9sS8pJh%ygWBR)j@CjAwMt_H}VJsAvOlO?a|Wg zny}N#qPDA2T7_pudqIn;+*gsh`#u3r2Q`2GqQp3=ODqu^MMI{WU}`|23&@jcGrBzG zBMsEvV_-%_C616(O&?!9F+4m#V*b9KB&Ko(wV+NXaT^^)nT>(}dCz%|Lni2e^*7FQ z6W?W_{UJL3PwzyhmJ?Oa_2=<(YiEpxj)@k=HY`Mp$0!_UeK87NSmou<cJxtj7}!D* zLNxFcrqcRW_RvHMyl5aMPTy|MZq1_K7ZqL6I)OtE^+bI)vP>aiU$Z&JDXN*%863q_ zacvVqA#y<o8*y}(S6Wn3vqn`4Em%+yK}=$Ryj8{f7{tY%@ktnWt=xw!Z@<?8#WKmT zvThNHKFy_S(|gKMTEckKF+Ogd+Mp7~(AA2zO{EtExb4OwN*+Z3&L=3e8Q{O4qJ)#W z1tqC3!D+2zZdte?rZqd5Nz6}=az=G>U^fZgZT`Ra$jlTkJtmZ0|7%t!FzoX!#_6=R zx~6VE)z|Tqn_kMQ8ilu)mpgG*A*G5@_F)PY$LLoxX)7%3;^#tmNTq0KWv~B@f&6IT zg1uweGk1|?i(J}dD03ux|B!H!LBg2Qr^!np{d|B{x|g=&+v;RR0(czn#Yus*&&}xF z1SU;dr|@f(uQ(NKe@zu9%pY6cFp|ubf=`BK=^2ICEGV&j8r>+kI+sSiCU%XWvepRa zK#i|!^Ruo^p&wUrnEfsCFLSYljSz<brva;ndLW2dsQ#*|RR{2C_%g`M@H_uD4wX%o zI7YMZZx7OnUs%_*vv-kAp8-GbV3&i>Ma77Mv&Ao1(Q6SCn@)}|?;s&FFB=~DBi$D& zB!^bd8l8>Gg%OWP(%y&JeaG^xBw@s0@HsGF^p)Uobqm+!59eTFP=?il1<_FVr(V}N zWW&03vC#93DHG5kO;)G#r_xd{%>*wPT2|lUniSqo_p+a->|PAGm&n~BdmTxue=IS^ z7;M*>R~n>hJzovVpkq_fC37Hg!cwxnWuhwR!YDE907t8oNk2G_V%T<U>m)G1P_Z`L zX{_2)ca%f>BbLXFN_J@cvim@^U73bk4erIvzj<iZ(~GK=LWv>;!F6gLr9c|B7ucr` zc6>4<mqm96f&pU&WO4eJ!@m92NDs*q`<=-kWAbijb5g9<>rVFm+zX|~GW`99fwG6q z{65V;KBP*rnvMv#G{7d^>P9`i$xZL2Z)!}6Se^NzY@{78Rnx28(ariA&iKP}cm>pw z?oJHZlsjU|AGC|o5!_yM5eNKGSarxfeXZG@WFDQg`!Q+G`Ou5WqM&zdv3##<DW<t% zA}#mKkzWSSagbwq>C6LiFLTTJg-EUm^Av;b>^pp3k16Wg?TQ8*?5u!%@qyC_TS+kE z=xenDEr=qL^0@!5_lvK@_Bj8QjD5u)H7(;%@I<s1Qoc220C^Xsc2dy<Qip~1N4p(P zY<U&NB34IRzh@X}hXeYi(8fe4R$YJXeMh1Lo6j@G)*&}7KwQ4|=4k!tw=OZS;e0{o z(vl}6_2&+kalAtR9;9bnZQS%9SSpAhdz)}~EPo-s9dlGQcOkc1&8YG!S<oF>Y3J@( zcVxOt$uKFq{0x(QN8mn&^wDoQ(JCfP;rE&Y$Xj;w_5`6@OM@9DVfh8oOdHmGRLVQn zrCmX#eDR@(pn!sREKw;VNr{%kdaBLNCXq@Pdn6MJ4t|XM#KD9#(h$KZJNzAkSBLBP zQgjBu5&|y*Y?7OM?rCp7^x8u2pe+Ll<PG?P-U{$}muw?}aoZ4LA9&zCTWI%mauejE zd)oI+K2@Qyu{f?O8=c+uBI1Y^hh&ReNK|Q8s@^V3Cn1eTYL$f^rH_HK!18wS+TCg% zSSDBE1V+jM`!6(w?M*-m);JhMmJjxfN*o8t9BI6p11Ll^M2A@YfeoC1g&Yu<e{V&M zOm+LG;RP7gTs&XNsN9*dIn7L~0QKre3(^BVlL)xi!DTV}QsrRbREu5!AJG|*x^hX} zdP<rME|;bu*AIj@k0mUnft~5W^q*Duz!%1&)~DeJr)!KPL;aYuls72Rk=_1p2+}Fm z(phSX4pWdc)j`pziCIuM82t7^?v$NJ4JE$`kSBt(vC}#t9GAG0z$RI2V*2-We*B(b ziP^#)ZEDs<k|%wbW7Z->D;={wt;%ys=D94R!76O<gu1SgUtC1lKLK&C)uH!lM#=39 z<raeGpm1~23!}^Q%pnAazpsIL;qXb6XKG0TuI)z(zQoUlBFg@;Hpz1^`}p_+5=LqD z>J=4`Be!GFIPjcwrFU#hSx}y<VB=w9z&C2Aaq(<fdaf{K`cn^prl*nz9%Eh)$${JN zB%H!rx<H&iXy|F89vQbR;rSHorjD@X*c<A2xhpe9o2q3zCC-4qvm(rd@mrnL>FJmN zq<sh(#=%a_SL61s#Rr`{xMYu?Xabspe_+_gV(aO}<dvyv^@)~s7lX9BX+}nHeL(`` zzjPFmj7&8uTNA#@wWKeB(o!DP=pQjtmJoF8OHpLFHAQz%_(<Mcan`N8eY}Ywb2xCx zitY)=o+(9L_^(=o;(jR6AHN;jbci2))`$$5i&#eL6N5H{nq<0Qu0z#e&ddGPuv!g) zLv6H>%;nbv`PeyUGkh}*SQ;DxKz!zCViBeQ9}1s0J3;T2m8;_E1!fZdoEcv)g^O2b z6G^x%DFeXu*nL+wFl3eYi2lVX^eVW6GQqvgCh8lUo-+iThM=EV-<dbDIF&vFG|-jO zA&dHj%G{m3Klc~kG-I~iBGD`JOazOCr-<)Wm*c5g!f6d3Syk9T!<_w9vfYJua^G~v z94@`n_UX)B(EeShAlfkN#0l-wyY<&zy}_x1T%$sLEhmtemFYdt5IS)_Dns*ixF>?* zpGOm3$j$oxsUB9i{i-s9pqHYiVw-?-wTlg#Zv$ft{T%wzsJ&#pRqGad+%4vK_Vrvp zD|P(`RK#Z@zI#JnYa2FRb>LKk0hPs-*;KOfg<o>)PAj!6ePK(4wO>Nd^;CuJ67%^g zK5%ENgM#!t!A`?WUT}(>C90jUgin22(9r48osu})WbgJ(M!F%YV+U*D`}mWhc+s)O zzp5bB0=D%JdO116y>Zr*`jS^q&zOCDVNxLxXANF_)TYI!F{T-tO(#WqVj5A%nGL3; z9AXv>%Sc|&h^zbe2=3kYqHG?kJb#Ag&IrAOCqBU{ijL&>^{KH=-}aP5VhSIa>x94U z@Hk{sGTgdJadl4sL8ZP>?vxzg5PinFF}x?Yp>sVYC~jyl@*L2!iwpf#8+*4=b204x zgVC9ww{i|=w;wAYUt{5@GmFTr1=)%DY9Z(}0gbgOAdTk2lUn6(k{tLEKyN9JDn{`Y z@?t&eb<-6YeV51qqh)uY_9lDe3UOI=rFT$M$SJ+xSV-6iZI@qR!PU-bh5ijUR{Auj zJW$8GbVaO@?D4t#@7E0mQ|#B3d3j}S&D!$rHG-hx^BPf9J?csyq)IX#adzhBaefX} z_xe)5kWtOND#kn_7Sn+EUF$L{ek?!@J6dWmIlv2~8#;KF{Xq&&)Xh@@n$zf^IEFaK zCcc1Vg7bwU9bPu>He3trkByBOf=v$}NE+`nn$m});X{uaI{U77Z6auaQ^Il{9(9`b z@l9Fjnl%KDX9P^qef?iYT<JtOvBILYl<yMVNA}8v06hlrpDN8B5i^7%DdN%{L~_w{ zo#5~|@l(c+Mt9ym9O59{^;tx&>Y0UV`Y+o61=-IqIV@-qrV_!WbkH<OmHvxX#bfZj z8boXX3PhTB-22v-81f?wtZH}Qhs~wa+vpP4a)0B_jZXI_4aX?^paB!MD97OcR6}yp zXdx)3-2RVt0L%1$=`FAWh%g()rQHHKd=#jqv~y|x2KUl6ennTp&+o!o8({#4)JQ** zvc3{Yh_7YCl;18E=1p3EOY<@ee7Z))bPx%$^J*+(sY5<><MPy4KjPFR7t-NyrsnOh zDfdgVV2ccK*py0tYN}6-mI~RbkhW&9G7Ih5{oA&9d(-?<F|^W)USVVl)%v;5NFa_P zy><&EZ8)mFyw}>0$bn`pUXRlT!#`C%P?ukwo7;Ty4qJ@UD#e99o5M#^uayTGC}`ci z>oIs#B=mwxC!#0wo%lz7c$|?oEIG$R898|5{{9vts<{F2(g{!;oSxjgMT60t6Y5p_ z$9K-7G2*rLJ<IaaCq--CUvILTGo$tpwuMauj@yMERDKzh2zqJ5s7}kLz>MK#ZvJtk zP*04boI?{YdUP@Hi!lelx~9ZaJ<IGJ<v!Y|u@-_=9J5sg!sdA|41vdxJnfGDO`m3) zCc*mP$c{O1HL?Nso<wS?mGhMAv(4@dF?7q&Xv1G9WQ?H}QoA<|-O_-#I1Ld6R}GV8 zdlwI;^)+JiXG)`exfVDWeBt#+^h!C~S4(EciT5^eT_L(Ta<nHe4$9I-w}d+P?nfrX z9gj$4MRmMH)rHUW2q%)NW8dUc)d3oE?QFDNQ4E}9Y|H;VPS)^imL2y{{*%Aspp?P9 zSVaVNRK@*jax<<LKaZqb-x|Qbgqtej1}`;aN}dV9p-tt^z=<3B=v3Of`&Djl^*w49 zh;J7lBub<l|FyT@i2Z7lpwtnDHzZ8s10fWKb-Vw5P5d+;8@dE%BC){`k47qd>8xsu z5T>&>P|%=tr@;KHGCt!xmyvG<z6t&*^j?t8QDZl#x+U(3cHAlbBHlhKU~=&`*)G$6 zCP7OmXwR(-$RCxb2roionc)Wr^du`*kVLH_(dC@}w6U@c5F7Qv4INbE{}VRrJAr^E z1xhTv)(9I`U8Q<bSXCgW4y5?0><c|4Z>8?zvsnM27dVA`C+2AyWj}qk*0pJ<xx01? z?IUMYg6prNl1NoPZ9yboMJf(MJ+%{rprSI6?rO!Ev1h~X_A5gP!R+wb#!x6#NFd2u zRnF^42NQu*rfas}mxU>Bm-mDl4SF4ofdpB3R;6z`1HSs%HC>*%S)31~cXcH8!EqPM zD>0_&%10_x#n>%XU^Ppl7Dssv;7$4clrUnPsU%_4wCJyBT|>84p^gn~Kn3zAm}nSt z6n?i74@r4+M%}~P1q?gDLYNwrmb@W(vpXA$3N9ckMzeFJR!t>GU1sEWggHLa{0+AV zHbT+syy%9jr%Mr6_y<0!^7Ia?i5ACNuh}^Pgroe3@JeKMh(B|3N>A5iD)%DsdTe5) zcNLQpq}BLv>)Ex{D6+fP=iOR2G7B6GhKuMis@pyn#Ax-=0^eCwgZz>eewxh>`@rfe z3Oh#|xc#QENc`vzZ%iWNTi<@@4$uo|^?c_b0$(^Vve80Kz?iG)cWr^w(vi_}<=Gbr z%GzWVf9;PSS*uPtmN>hAjj9Qvj>&4ix$|UI?^HI|1s&4rbdA>&#HrC}pmRxW2p8aC zD%0jh05#f!7y+(mr2IW<X`n68$)vfV0)wmT$N4V{Hl$0G!w0XJpATP|CUcpE#*4La z;H`f~D_UZ`T1n(b&A7ue9njMK`uUT_D6TjxnR$;iDI;P?gY{t{j&r}4$&6lBr!Vdm ziQ#uwMaZS0DJXA6;Jy&d)hl+|R$SSNs2$nq6e2DabUd<rat>RU-)0P{aCTk&Q~X~d zt+=(duF~H6bN_9toxV(OfoIk0*GpGwNwU}u`hlo{{zk$<aGcx21xQwr2`GkJ2rI$Y zdyR!v@zJawD(MNYd~}m`UqYG~y4-0y?`3nApN`@S$@Kx~vJNm;FExYJYOJ`Ex3UGz zi676R%s|Xdbejx(`y-{TMU3PAP0X1P>`j`q#%b_re>Yq*|H*7e&R8VjW6RXWYzq!p zn<#RSx5#1D+U6OiWb$_drIF=`VpC`)E6O8vy{A*8GezIQ(l(Wfc`ui~FAwF&&q+0H z59Kq|US`euZ)r1cwEPjyto>VQV3>TbQsNGQEW258;SWV+do_!7zP{i0a_XPfbbbXZ zMHh3DdU1u+42CxD=t69XEy5E){Y~)N6G9L~x3}9G>Xg$Tp<n&wQ3XyKlwBieQ325y zzRz-JBSn}A<8fdon7US4-g)Tck(65~u&=MGUT{nvh`yi!tIF9bT~8hVKO=g>N}4oo z7HS+yMiLy)U@|x<W^10=aa3(zW<x#do5+m+1WlJVfSu^ip-F7Qaf6)NZ2~N`(q_=w zIst6T?(?KpC~}YcTa!@O?0K~av*9t;OsBy#G=&+gmgQf|B~S9<_96c{SCEpA6rS=Y z-&4rI2Cig!&c*3igVAgyrIOIzg3g?s$G4Mid0B4EC!V`8l5phVpedfJgD?xXMCOGz zbs8AI_X(|zWh_7SP0@gt)!{W0yk;BC;2_Lt$iLvbHwtH)?Y{3Qf!tHh<)$WseCKow zW15b*(%=L(NFv-5%8#?U9zP0P$mrINf5V4-k|eFXjkn{TyJGwOM!L?+cjTz+OWv;T zu#D3;w%&Gm=$OO{`$u7G1Wc5&36>xCH9r!IB;0x4$J|w+&1sKSGKv=Q-%uD0l@-Fe zNXP`TTPesD|Ac{kHmYIv+j~SXjv|)Bo~7iyLs88U=C$f;J8q)m(76H>KcTbJW5|0f z!$CAxZa$1x#2zq9e)ZZ4#K~{Mqt26b{Tt_&RuuReKTBQEk6?^yiYm(5cCsZ0_6P4% zR{SJ*()*<ccaSI(7*c06NrS}T)t~lTb$F__)7=xMX4p_voWXd1fuw|woIvzOIpX|~ zC>b4}xkS#gXhCcNcv(Zo@FU>584lwhh{#g0uW$O}MHVESU_OF`!IfQe7gLo3b9EU5 zl}S7BsRBz207fTpS@mlN2zB+UQ_RIODM4ajA8oJbUMpUjWL><saxDm7NU#(*dS@BV z@@MjPlkIM^4`Xa%18DU-*9;?7pf)GYNqK{K@l|Z9U@dtK(#6Ns{o5D=Ei@|!r;U%Z zisOxY+`VZvLP*J>hge(kV68?egtFDLesIz0ttn512}Now+*whoH<%b#z?7ef16!r^ zQQT_J)w1I?-eMOfQG0>}5-`L}LKFhV6QLr_X_b5=8rCn)%Dz(3a|xwc)E1{>5n6+6 z&+UB}?NwyL=ZVfq;5PLqwG4^OIfalIp(;Gss|krP(>u2sD-_f0gsb(lS-*v9#-zUT zXbLhsA5^4mIK_>vh7rWKuuk*p#Fu=RDFJvK`ni6^>%RG4c*G*eBn3^P71SI?D(sH^ zj72B#P8r_&72z8l8B_nX^wwrb*>w10$<P|I6;Q`D(n+jF*2%S|sd^KG3w*~yI9eiT z`~c7-2kGH2$j@UBl^;aL8?ezLk3^2_8TUASy0L$FU-~nf-&g?|q5a&H2}*5WIkSAk zCb&}WTs2Q?3X>c4T@MgFX^&=~tS?dYbWCg@)q!VJNG?sw)YKu+EnEo7!c<C0s89$} zq^#TV${GquCX>fw0&7x1oZV#0Sdy2bktKJ#MtIpsa4A?nr#m5h(Qs?l)Xt#jwd;?< z!8ilKF&L3+^CkhmiQ`la?gsKoVAM!(xqRt&_K0kFE`VgL;aWG;9Kk--;m?~!Fd_y= z4K$nltfREWSGz;!tVQoxs<Z(9i1F=NBk!asn`ncy{w^dyV!}F6_S1DGa@(d1$TtA< z;!B2@g3kQOEjCF3{}Q2uap_7Nf_3GUZ1`N1sIjCUFG>OnG^Zs+V1qM{VvB6&EA#Cr zll4DH>>7(H3hC%)A)0M-IJ2sp2`7nW{n80sK^<DP+_aV?ltW758vFH=!S<+cNl?cK zU)Tl7!qMu=SFSS$koVW=l-+#rT&Bq+F<G^woHdDa_eFj-w+V;!+<Jb?XD}ci7$~>L z|4T%IGk~nRH9If|p?*8j<m4V6fI;WrB%4U)aPM$_5XSPQlnBwi5>#cOP8sxi`@UXP zoV|&TJRCezR#=INSDRaN6<mK-(meYW{RwYUMeTnD3M43j4DqDsjr}YC#P2ebF{(Aa zpm$Co4y5`Nb8U$-hVkVA>}Pm(K7pYZ@%XLDl^1kWc-m~ss!^RZZ5vXz>A1(^o?2`5 z-<F^<$>s6JBv50c#Ah}LFMkLaHKATMUF0^=tm?S&iOH^Wgyf*eS&}RiOEOy5h2h!( z0noI!yp(#I3r<5t3(MI1uQ@~Yp7f6Co>s)%nG&T5iZO|I*d?&C2GX>Fl2_>Z7^F(} z_qx}tk0nq(ONN#y+f3-(q+duMiE!qkT53#FwkwOWIh{+%YwV{n+915vW_KYSkP&u< z?6u8GV-Rq2C}VPHo5Cm|eC{MoXxN{j)9Z4;JKc@j97rx<QrKh~RM+9OtHj2{td;Ko zMr;bI?b0?CkVkhzhCnG{5ZXU9=q0aI^42B&joJC1HHeEwe6L0ar_K&@%Q1SFflAN9 zfNKe*dc#;`GiaEqG@ZSs^PBQ&RM^EcoBm>IUON-F1jFV~NN8?-Spl{Lq`rAo-<Hx$ z@!IZO$XeqNvBkXO{l&xt`7A++ithQ959_vq?pc&9-KxTsWmkkQ{`@D?u7pZ=cGPGC zA~(s{JBmK|NLRfL^OYoxma2KBn{G+2pq5!v!o2yn>A$ZBlhS)zZQQ{+Ju)J2|14QM zc0LN6nClI?%X%40pN{7k?>1~H5Z)XiciO~)a+c_R+BSHlaMBmH3s$$BF`Uitkp5NV z_sjhO^E7jQyF9f&?Bsn;q%IzK&`&rEt+U#SDM;2+FYcZaD@kFZ7am7?EK1Adxvlx+ zEiAg1Z=W?im)5KbhG%RvsQAKl!$h=_PV`;a7onfWG2e|jawB+FxU;&u@{s0WYk>rd zuJ}<%(&Unyt41KlYZLQ)p>&K<Onry>3bjuEyUH1<kd0Rqwz6KV#P}G3<Q5=QN5#ye zNrQhfj`UjsLAE^fMsw-&g%A%=->)m&RWJrGc6b(7rX?9cxfI!3<vkLiNR0=4T^1`C zHTY}pCznyWTV5Nng?s8AY^OfsUij3KVYE^syA|QDG}8g`qjiyploGu9CHXT_z|Cua zRqTJ~+X4VVK)%1I;90h5fOUJcy>z{g`Q8#<9PU?yOU787hWDv{PiYS}rH`{<^q;_X z<u?1bB1qM6YZc@AJMlNtKWX#d%TjoGGx-*^CG{oWmo2S0y7GwgM!VhEiC9K#W$2Fc zaBi|Nh_Dh8-dz14L$d9n<j*iq!?<LtR--Yot0rBX+05{Ff0P}Vzc*@yW^UJua|vzd z899$5mcxo{=Vr4osJ?=vz?rm83;*i4w`EBCOT2^4j&FDKqPHv?m*0xG^rUtnv__;K zzV&@!xzZa0%?Q;pi@+GRQ+?EH93y!mYHai*#AMl$-QNELbMmXTad;?k=^a)T_%fzQ zkI_}Y)Af(^g->WDbte=mBEt+eXP`mY(8gzy3nr;WLSy&`&+!w9$0VK&O^!^2suz%7 zJtEaAq}7SZqDdDwy^iPg;op*ilG>&o3O+bHNh#&76OH{gQJG4^^07n=hOAXszoe`H zJH9us`k<=zs|f5<DuOojW#JMVp#fN$9d*<W;w-DDc-7!Rntlf14eBFMFke4MFqeIt z7M<Wa-Oc%~&!oE5Tmwj?WeY^tT;62!M{1T6+`(6aE9fhG2P%Bk>BY3M3_dph1v2YQ zdhe+<%1!zZ^Tud@`BJmD+gQ&63s5_E4B3_+JRwLf>J=E^?yy(0|2cs2;LRk-x#at! zMq0@>3vAm)UZk$7AOET-8N+qu%7&{ArvejafBcNaaj6o${F2MyzR#NP%Y(JS__?4x zS5VbK4gUO6NB+-MA>+XA=SbpORLh^k4^H%DfYG=tQf#@)a4MEOCaEORyec*{;Em-f zJSf{B@dwrR{z;9ax&1)#AA&0VvEb*fATTc$y-67*%haV8PCXocPlL<rDklYdlV7rq zV3(PF>qj0g^eH-}xWt*J>o&EK;Bg$1AJw}iTYH}3%z&n0JMHz3dVU-qx<i2P<=TxE z7#D)-7Wwd>Su2Wn0c-pOf!8CcX!B2L+TTR_TM~a}_uH9qPkAbD<o1tkz#S9#>8;+i z2z<`8t67>+0zT|2w7d}a#2VzicvrA@Jz8rRw1B^KWI<QPh-W{G1XRJt1Kt@$#!t-O z4n{Z!-)pMzNH?dNF?XMk$^wd?i|@aHbvc10kQpb!z{=CV*d7(i$>a$F#+;_1*|kb^ zdXImT6pIAqZ3L_p;n+AC7t$7M96$;8edm;pe`B_;rj+n3DvmfX!ER3VcZ9xB808Pv zWpauopVmf^Y{2k;{|kdU=8&(N11~gSlyiFWIEr6+Ka3OuM}Db+mU~9E8<e%K?4=u% z0DLoVc%5;!&3!op=h7U&+3zo0RUkh~4<qsld<i8*0CtYsghzm-R0gWZldAEoJ0g^k z_k5Mg5kRWVcvBE$P_9IApL94ddi|`_LqC=b7w^;ESV@5tUZ~r0o`U7Qr%;EcZ;RS# z2T1}hS2E>f`Z28;CY|4^{LM+Tr>ZT8hjpiCY%#ZPpRv%z?;1xC%d!Tz;S6;%w0^F! zS50xn89)64?R$&dz)l&wF;6rD-L)WNjHgm;rjz})(Bmw~i$N1#vjH{X_(DFUCEZpr z<y^R~O@8vN)3x61yLp2hxMx^HE^br{8(`g~>y+ytke$mAf?*NaH_!2rTrq1|ObrAJ z4iBj)vVV#HMS?Bxx*}ov0OonDDp&P3ju(i6Bv!*d5iuQ7x%lz#6&{92o)s6=;1blK zD!4K6Qv+i7aR`*rKia4b_L-fHC)^gNN{}4IsP{2NIUKc}_2{r*wXMB0`jW|yqP_Uk zoD}*b@YB$#Blj@%TvnTm;*+6VVIIYEZ#_sVZQa5R>JlW&r2iMW9zi^2P@XB?>d$mK zJpz(?N)MT{DLq`Vr&-UusR)warQFP;W-0mdLlk@hNbpy+Kzuia(_ltu&1S;^;3qm5 z;%n^~8z}=JW7s&Chk{6{y-UZ3rkS#Yrbx`Y(IhuJh7u8PulVVVEVR)>X|%753A>|2 z;IE9-U=SniCr!99I(1enRM)=U{7~KV%P`onK^7kaB_|#X%N>R6r`vU|wcw8&tRNx9 z2v>DXvcon;9o!N4S2>v)XeMPt__M8noY}@}AJl+-Tf>SEgc^T1^bwdEbAV_SwbL9> zd}oN}-v>&{r68fsU+~x?@ty+*)^QHIA4Www%@yKsE0I7lQyuWqGMljq7zqECx2nWf zJcfGMGAEkEx38S-DwqvpF|1y*pQ9i?T;Gh2Gu!CRW`beyfHwVdEr6L7PI6Fgn>+Ei z*TG$TI|n%-^=>)jj2$0CO+q2<r+}uRH*2pN(3Vy=zh<jC=2Q$Esz3?YPK!1aFx}2? zdREZpXP;M>%1MkMeD;?$qJern{^Dv0egZNeUS^ZCB<JDtvHaiMFY_kaCWF40U>z?) zd4aRDo%<|0CQAz6)b1@hoFC={edz{`awU^QLcHG^iyJxxemU8}ZU^_;X2<0#?yJWN zffOFPfOPRN^?2th-HV-DAbQy~1k_e%1!VBJZVn;%wu_4B)#}-w>@D#Q2Wp4RI|Y@5 zP2)^Jr#Mrm5?<S(xZz1F(ygVx6j2}_>^6^rwt4Hit)5%G0ayZhoeWEa9t|F#?aAMM zh;>n7OCh#tmffEa6qtMX_EyTGh`ja<7l^km{`qsH|MUjx3^P6G#I=F#LyJiLUU^va z*$++YoeyG47L;>ptlN8%#sd$YpZATzMXBM}{2pd#DDg<6|Iq04eBd~RIfTO0YZ-=` zD3PETCUdcIW?*i4?=r@akmW{BX8ZVN9@JuhqfRGt1t3avY?KoxspMyS&>#-nYqBE} zIj02*>+zE<zCqD8KT|F~@<OEiP1LhX=sE&?YmKA?xH}v}cKWCm9^i7+-K|no8z<o& z4d-4!eVKKl{~d4qP&FGlzdXenHEW4PM7R|Ce)}gt`7ceEWPM14-ssTW@0*xND`2uk zjE6Kv*uuN~sBA~PKlih;(ZECW$hQU1A)FJyKxZzGQNdr=28?b4R-dRzGPirrE#2ou z;yoSRfv4iu>r32t^`Pf0-vfyPOsuatoQPuMuB!xO6ft~++!%Q2q}ad&W07YcsiNFb zuKb>=n~*`iD#3c3RrKQ0**bTh{839U=p5*CKqoM9r~H<+`>by#zzp|<rpcdy9pJI| z$=!dnDL@&UMFZiDHIqI8TUi{4?9(b!Ns~-hQQk&-vqjXgE!dwU--la7#_l8?6?Lx| z$5~=L^rXb0uJ;1IaM$I)K=Lyia`cczYU%{v{`>JHA?NQ!m)<<(_}NDAWikZe=jO-I z<c^~J!y7v#hnh2fghS>-H%L=io5e5DPYVia%gim%C&M;q`@+0vdV&eiS}l=Y08F$b z8~)rMfe+Gy%nZ73X2E_^HZ?|d6qkXNX~L;(Rj9Gt{IW8qfoDRKr5zX)r|lFH>_M|< zU^~H@U?1N_rI$=g|7!=*Gyw%9p_j@D6eA4!ZbOV?AgIAiCCx_r+^=Kf)F&#G1H-Mt zVuNJlR`8vB##Uo<V<5X)rBb|6#hAd8t4rozvH3|WI7f~DO|2oqp4RkzLlySQc?o4j zyJXxGUla!)8QF=&<OvScKdY#=C#gO$cP@lg<cpY9AL7wbi~PGQ26NpOSKjlBPUR6i zV>`Zu8@6{2nx@PV2`L9rRu5UG@0DcdC#yOQ2Q!PT<mJ^Ynk#2RCUcSe9Gmy=Qa{0` zkej4jW|+C}vsv1WT0s*p1uc?WiZG@5Jgd8&uGge(^?PoZHOvz=|6FThI^Fk}F}nB+ zyM}M^K_UgzxWA_p-q>{oc7dUKpB7H{HXQ8<_0K*!7LlYtJRjETYO4I`-~5$~6>p@? z6K)%sqtLD|G!-OBd2m^4X5L%6^WC;;vb^R}9X;I$hUcM+c7|mK>MGkXN%|Vx=M-00 z*%ye#_kF*|A8hIF+0Cp+Yd7qS<@<M{3@XF|=M&^V5mCN;#O`Dl-8t7jd)|B=1i<0x zTv>F>P!h5wDHDZOH5>>V0K}F5d{nfEfW1uaV~Px(n)fn)+sj8JYZ%mbvzsAs)2f2$ z<CCSL!sNls22b*H2W4o(awC+5m8VTRp^pp%bu%5mi;>At+H(nSa^h|+f?Lh6NO5=l zAd7MQ<)H@%{e9=?xjk^FnM4m>fAcnuVGfgWX})`aBe-{bD^UL@%LOF3<zkRGz2l3E zx{^xHEggDG);BJdvc+=>1j?>B)Gj5S3d=j4!)uj8-D52)vjEC58W?&(T(~oF*2qHi zE|5o#(0~bCCFvT=n4fb>D}iI!OQA(d9^o-uS})tMoc>i^9x2TAj|LlNbo8XS4xcz{ z0wj!tSfn9qQ?PQ}f$aEOF05*Zt<Z<T14XuRw~B`rT&qPu$8Y?7u<gnKc)ws{ETeMC zxwTs<B)V;ye2)0$$)=j8k|e+Xkiu%hK?>C=-sZ~*(}VO1pHJ<);ED|bTjL{uvu&7e zU^8jF8l5bUt&<Kw=N&F78BJckQmGg|{=a|*E**F2=wq-=#hC0{j2~U4bSh@~D%fUk z1dsCj<CI6-)U+z6qu4EcTt%OE35}i6!>_%Q*x#nsSCmkv)m36HmHGbojQ@(7+WUN_ zJ<SakEGqUROz-NDkK@JWG+JGzsToy<H9d;ckFJWu2PcIFP};8Nw`!A+93$@uEKD+a z=(hgsF*wN%`)ePEpk0Ga*l7FkvF5=YhB>bc$=CRlbw;q|5|S$cW#W2?CS7&bqzH=k zyxRMb2^{1;K<F30J3cf%b7ei7XAPLg(ghRY(lTNNGjDpp^OEFimYq-)yZ?BIYNT14 z3IP!!|0x0Et4da%Y|mtFGeF7m#v*_Wi(*pe4~N_6YUyVJzAFU0lkt+_B3Q&XvNW}Y z@Mu9SgT0c`pdBanz2oV2dbJUWxcY*qQne1-wB$uo$p6Eqfu;h!qiF=}@Qj>@QROM< zrD+obok6Mx7W~Gv%fW;lB&J!cb?)FPh`;hfz=h$Zj&+Ztf}g#7*ttO3ivh-uEneqk zp0kivqjX<UJ*?$<+E33)Q(qx4hB`aAXl`|d&@PK~T(W%A<ydktu*Aa5#TtY)XK7HK zJ!{E*eZ5o{{Sf3wq1D}))0A#0WxS=2ywI|>_IoD`P-m@Pid~AJ-{vJoAxH3>mE8XQ zQ8LP(C<{Z$Yd_qZozL)Z<K7PHSj&guFFy;AS|G1x?bh_EUyGLD0Ow+(H_m22Epq1v zy-1gusnGGH2Ed64aoEd1&NbiO)jcUg7x2YZt1M2UibN4_cC@@-VEA;{lp6pTrReZw zqYv){owi<J?j=o)y3G|iT5>cIwYcHHMBG4Ui|8b<%M4E)?o)aQiE`t_A6%f1sPa0C zugjJ5i;Gsc-l55H9x^@qfS|5jqk;SQEN1ey=xS+@l<2QfZ5cX%QEsfhfq;-9hJQ=a z<2*)h-<|z@a_CMda>`|BjPLYAw|$GqGR_^*=bMm|H|Xo~FCzJv)0UUy<wVMGEU_^W z%PE;n-+7LRC7ALicnWmb@hlNKO^f;pC$>yD0F{8WI$IKC%LY-<VphUYG(}jIq<vRC z*E2+)zZMKvIb-tdt<$RC*8<^o+|k&>@iwT&R9H%PUVGG%K619y+Mt%#@DG`Oz5<I5 z-*_a(U#$QP1N4ioiVwO3kUP08J=|Sg*m;VK<TQV<Yp2Qw>D8{DqdGL(SR_}ktq0(y z4)ZfI(rNJx;D2Mwca|qIK5WmR9S(enAKkmwG1&D{rgjV?8X2!)-AZ1n&2n;5y?)KB z&^9)8%G}rsH+<8*c>a^k7s3`f!s6!K+D&@7W%xo)7wgnc;0j0~yQ<8Q6f$EOBY=Wh z6q-kSSl41WJnhij0i%dYpC2!wKJT}pO^)Oyu`{mc_&4H|^fC)dK-<b%#dO5#o7tc2 z%RA5IPQ%FaeYrDhGyMo?x8q-sy=uWls)1=kk79e$J^EW*B~6>%!@pdXafgZq{J-rZ z&YJ>TbR|cPx4qf@&Jzb=bW*=&5?}WgakiV}7$Ro`0^=EPJ)hr0-!IFB=FrC*?=r-A zaKR_r&A07;x11Z6;cx{h!dx%h9){S<8OrZJESfm4!Zr$s&*~hfz5NizmScpfGO2et z@Cw<6g+F$;j(2V;DpVviKQ(%TLW72J$T7zWYLF1eecKkeQTvZ~RQ=utuk61wYYVrM zg<lXn{uE)_VWj;x`PXVDOi|_&Jm@%Cg(;|G<8n*oot|CmF1h;5APzgZz9kywC11P$ zJv|A`8be-Xe__sKIX%p_3}CeB<)MSJYAxr-p~Z*SRRX`Q-bei|O=yrstQi965%3Z7 zaVB;Qfm83cN{#Oq`u{uRlO_E}uQCSY3qSw0T%#T4js|gPR1f`%ux=S-caI7w@a?l2 zgNMUM%Vrtq%1`@F7|!0;styrJN3&D>-1#!LOg!?KW@msOxz-vg#0nUMVjZX!v2QW~ z>G<{S>qOw=m!C{0^2wjj5g>&DLL+XD(HCE)Ry=4cH7XvaE|jWXSG<wZCoNL{xFN@T zo^MU?r@v@&Uq~0Et3StRSgr2hd)vZ=pEZ$j|3Y{kQP+^_#p$sIS~0fzCWGP`3{`9( z>Cf=^ifX`9HME>Ki3EUO_LuG3IUSh@#W%1a2E>f#mNn*59H_Jg46?|DQv-eIu-o5F z*sZTilV<y!#BvAsS#aTTaBH<4I)pk0I*{>-I|E5c1Mnaz)8j3OeL#uNvI;+Akx`G7 zZ+Nk=a>!FAcre^3Ed@G|+ew&$h`Z7mY7AWoxXXg~h75n6OJs16Er>bydOTz@i~is% z(ZgL94n5M2HO_b=PGZhSJ%^yU{<*L#ez_2y;;!gMGEFPa1IJFEMbCG@yBo^1>A^sm z4)U}UCb1rU1i6b@{Fz__MJvWcm)K=|7DDIVsY4mQ+9efH3?#<JlT-x}+TuGJWh|ut zuBJ&uh#e87&C$Ly|MUht2DElP4VtgIb7(fkf1M2bQr?^c4Bg3wXi+1wRhiW*U=w@{ zHUg^*utJo!fxH&BjP5*KwE$;GL3pB@^no%7aS#WkWSni4t$}`uV~g@(mBZbDS>Ie0 zRC*+D(w0iwvH;PCM@~+6ozgdk2QF@&8fxGQUM)U098{yv={`u4bd9-mf3rM<c1LNp z)RAS%x{L}&1enfJv{jFGLq^gtXx|e5eb{~(^!LyWKytJpWs`6oOOML+S*|z(2pjS5 zZ^omXqV_S`3Khbll(tTJB(!>^1*=0k*#3!cDmqk3Cc?*F-Do%}EV9`-gg`kr(-9xd z3Ua1iaT(0!=QYy7LR?soxt4CufxX8G*x=vg1glUGj|^C{*KZf3*m$jxZG4F?PVQFq z3asEAl5>kH7662&ej=Q#Qgk8C@9It}?s<P>ZBB$?zB?$Ic)anE1oSoth&`;+axFmR zh@)N{sy#={)gdGq8>~#ootT*mT)1^^oGnPGu;LsUI?!R6V=#GxZDq(i+K+E;1ycr@ z%BM5YWI-H;gh0M(bapa8iv#2M>l)Rxw_PO)A`vpQ1#X@}0xT7m$?7i*W41^CcHY__ zD0hZYPzx)N&$_sSGCMHaH?>Ynjl2<1buILX%$v~(-Me%>v{0klipgtqWhWUNwT!P$ zHtce(5SC@f6Ce!K_#sgQFq@Zq>bIFKZOuFT=5)<?&Hnq(hMrpF5%wf-WAq%Rc$Feh zJ#xrv(1@~(MO0`v@rH#jG@&Njxt`$eOV9s4^E&$sv(3cd*T}S;Y{9q*ZQt3*2SOUU zKyAiS9QT#fZ`x#1C!ZD$`(lHA<wm!{fFg3ON%x1@?R)H)L$4{q{a9*dQiSc%u)@Qs z<^XQXO9*6;CLBRmJOE@>6IBPo&!gLvQcxU=pdQnGi-w{Lqjbt1nGUH7*SW%C=PVRX z2_-q7mp*tMxTlFsuL=|W9{Tqi{X`*LQl45S8w6=7OSWa(xiprJ?TVdQ12QhiHS=RN zKu@Ko+N(G$0<DPfoeI-GyJoP@<xVy5@7igRLTuwCHB$JTfE~V70kcnU6B4Jp9|5l> zNTH!?P_*#yZa$~3cQK2S*-j*?Uh-<c;!CzSLK061jR*bg<C(sWXxLqZ_6(=ES0$sQ zU7W>_fMQr!qbn-|sfLsC?bRh{wwuBpL))mOwaASgI+!{XyBj#J63&$FHIUlOhHMvq zI?Cz>Mt)^F#@__ZLx7{@nnoKX?G=sen`B<f$}nwR9|sTepEWysG={R|_cZWjO&(?u z@g%yFo&@U!v4qsl?Rd2$^r4&FmT8ba=(lE%zZQb+*Yr&-htIw&j(771zf?Epn3>pt zLI{Veio0LP{tH{WrS1(pnwe72Le3VU=0Yv7>Hc+>uC`oMp#V~_a_Y3BF@0}PyfT}; zi+C`J<(De4<Tqcu$Z@uFN(Kx7YtW}(b|SyE6L3>%9q?O#S(w{^LY?BJXX6}ecW;qX zPbT)=GavR(aRbqXppGL3LgSu*<+s#O93AWUg$+fYnVX)+<WXRXW$K@5#&gS*6C-=R z#?>D4C;s@RS~ic!^qxtoN*{8t4{Iv><JG6LXdQ);I(-R<rxQtU>56|22E3Cx8gstx zf*RZ!qGj~ELj4W{@1$=F!Mm5RhsUIPB-(cj_A<tei#}2#!fL|%Z_jx}G!g&yr1nq( zm^@`ASh=DaynYGYvN|)MH<Ocy2RPfHH*sF|91|8Sd4EVqCSmf<KQ<H4+9~m?4jsrj zV&ZEjo!(*Rj?-$|9yEGtKruT>O1fwBOD6F5n^Fq$R7;VSmtx?SwyZYti*32u%@gV+ z?Fz^8Pv^VKf$Iq!`o%<rMu&|2h!-<!X$@z3geJDUWFA5@@wMRICdfFZu52_AvkPeF z*3-_^)t5kT;0vP?by5_T37Vye<^5;a^MJw7QcopwF06DsGo#pJki6#<)0M@h?d_R( zMoUKLF4NT>3OqvZ920iTY3g=<As4C5=O50@Cl)`6ifaMb5^GP#pM>7lykSlh^Wqm+ z`b_R22xLJuACeiy3$*Hk6`zN49rntQbh77a_w(6`nfF%_q)-_c9)3F7=;q<qsb9G! zgzJPimJli~RBr9$4tpMTti?>7x4jWU{c>dalg3Zp$kNktjAZac-}TFBd*PJ7^r8%@ zJ>rxo@%SZE8VlAJd2D|}3SG;|mWBl9n+06l;lF^`v{&oC?%J(5*Q4eS-_scZZ(6VF zW>s!zT<o{d-%ty&oFRNkYD*^2y_RfLj1)Bq{3`U@dHP4GSl8CfNluNlz<^b~h%B&= z|FUz`2kA9Z$McF9qQx4kPrz<hm%O771227k3+P74=m1tQaLmc2K(rIE$f;n0ZCt3k za8EF30}<1pq@fK7t-<aUByi|(aYyQ5g#I<Uzc?A`!I}YiVqZc08uK`Iqz?|dyt`b+ zHb^W^1N#mZ0_53TVRI10<_0_@@khXpNsK*vu?dJ;KJjJ63}K$xT>jcoc;6D^f#PA1 zr@Hl4@eWxGh;b{{fT8+13U74DzIq?+$ib<Y9r9ltsI@!f2}*gO4QLPW)i$UaX4z06 zK|p?VkWPG`sD?Hww!2=yZBsLjFh}T3-?=-rpSzESQ{DI6&%@FQE40c#a^w7|L8E;2 z2loZpb5#|Ntg)XD2r;Fnn}m)Ce18<0?S@s;2R6e<ud7BVV0jMD3^M&7bN|tcv6u&V zss$<CuK?r1Qq5;VL)N2y@?TqE6>ZU$i)(O2OGyy3d-x?ibdHPl=XL<|hg;;e=~_Jn zUDimH(F6)1)47by9%)kh+GEtmYoAENX9}@dJ{ulnWsG=f7dW_Vy)C#?iXvZaBj(m- zaBfowX<;0y0|}U}W)0eL$*eD$#A~Rt0ea_>Fu)*$J65%CeE@R>0*4CpzoD{0X)6C% z1_)yd6gI0QG-E@6hneD0S5duF0y;jNM0U+v$6beye~>`ylD})hR!()Doaeg`fnn;5 z73z^+bON}hVoN#a#;QS_rx5Q~t%GV?L=5z%ZtHha3}rK8h->MeG0S6LI3LCj3n$UN zB7_VjLBc}m3Gq|WXI-r!zz7YJV5Nagaz<C5BAGI}Tavi{w=yt6-l0*9QB2t{Ja_(^ zD*g14F*)MR%b~5-(-uAnLk5<1So3*B7+hjD(zB?PERKCcT)?>^X~^^0*dydhJ))3s zF2OM@_q|nW*YowmN|E_$Yy1c$G`;Iw8vt=q4c84s-OxZsxcy=QctQA%bo=_o-wyuU zs3#9F_XXeI>d8*J{$EuFeV6(ro`Y}25;TmP(*r{IciZhHG3FbK?Zutr_CX}STZ(60 zYUXYau$k)6SI=%mx<hQ>7g!Ij+^S1k59B>$0lv9m(LqBpENIjw;Z=VZfC-Ltb{}6d z?ZUmO&q@FmVQ93UI_3w4EnwCOU?)CT4xz;mjV@hMI-m)VJ6yDE(nxfj-oVYUwkCWt z;dYsvl;vnW*S+4VZ`o+K@f3y?o@wyJoL8maBG$%}z8Bio%(?XhrD1G_B%w`djXX6W zA;!2s0f41!93BE>>5Q#K!n1-a1G@h^xR{vlN5&wc`ihh+n8rGdeo7K8ypbTPAM{_b z1>M6`y|-_C$gA^fIA(9_{bL0y`?Rk`TUW(*PA!qR?@89)=~w0ULiM}JegGe5V*lT8 zCB1~;h<N)uE41Z*^Ek33pzfMvl?2@9MA*T8UR9!uNrrx)s_JIPJBEc|^UM0S4aix- zy-6kAx}Rhm1a3U9mHP_g0*sPsv$%+g0IgP2o1LB=&+(;aOU~HXrAIDQ#>}?gdgvbp zb3uV;nA2~9%vw=^Jh52k0E19SK}RzFYITaPwz&w)58+YIN{u+rxYoI0X<$`KGz|Th zYPfi38so>r?7{s&*vx3#7JcNO-l`Vjquz;M>At9xm87Qegew+%T5^5deWMr1tr^<S z#YT;_cu>=&fEkaMf)iUdlaTzOCMD8DE?sbNP0|o;4fI6}*AQz<*?GVgvLX;54?*6K zWyNO6&K+PUeto>ssOJkK|Ka1zzqS7}0Bir0Gq1@qfeFQs*l2hjHtVp&s;U(&=+oYm zQGIK!BQCvAMbw#7>W(qmKY)v4k@~-h*)5?;q0l6uUPQTPHkr7wA8Jj+L}_{Kl{aDN zS4tG$kwmPmb0F4VkpVcUSuJw`k29vAIwhS~?3~rs$$Vbk1`vSnu~_*s!2%jw=9X_q zDP=WG)4+FXGoBuw8?prv?*f3}`HRrzW1fH$#vw2NnqB9BI)zVlwSlI+Yd(c>-g^C) zf!{&!hWZzH5(q9ci`oprx#*kO1(*!Y)zzx^iGxA8TmClre)88`uu})hk~QF=bP?NS zos#P66UdBW0`mLhNkZb;^0)Ye<D32clxvJaV^m=EWu*zUkg^4GFA=Uq|9HE2_p(#& z#lA%_q5gO81OF5X;O~p?|DV;IXd>R49_{dWHK?{|V!%G1={`Ig>XCf~qDne~xKnT% zEgnV6ENU~mt6jSoBI9Nx%`JAz$S?H4Iv*jBcCIQheo%DKMRUEm>pvmFMuJOxAnX%a zH^C*;nIM9YXO>>%l=j<a&4)0Lz*caGz`hS>rTn<{W=ggfXDIA%c<O4U)ly0Sz+d&l zsGG!kMXv9Er$n7Mn0zgWDT>^lQ2V_A&}8Iq=6PB9#^AkS`W0bHP#UBD?{T=ZR#Y0o z@NMEfEx%JogE9ZxA%>kMX-Ut1=8)ze6;f#zdSBZre*{=j1C1)S(G^R1?&ehFs_f1L z@T_k*@O<i*2vMi}(Gve+JM08{8{dIJ73@b?`%2&lAad8+L5>th(NrdsB6FWXEB8dj z>C-TuW=R25$Rom{QUd!;V-)VGUGr&p^zcsyU(7m_qm75|bkSbpPf-R@=6Wsx@q(1= zv#w^PsK7h{Q9BL5M?;cc-Q}=rl${9Pf3vhP$Np3Y17e{4nWQ$M61+7UTDW8oeD8#8 zL}OPUzcfp2p>3rp?N1z{+zFk!e}?3ZZ2+v-X5poxbB7rQVDOKkorVuUi=0`+LkRaX zF%8Qo?zqVjnH}~Dj&vw~&HRz=a`NznT63e+oH0)!g*+uC8NTHoh<3c_k>Hrz*rLN+ zSpKgdaeDb%bL~<|a)Cv&KHTSlRej|y<?{5uTzkyehYkudjnIJ7@$;wZn*_)1n{ky3 zdRG8{TP`yuk!`)xj<mu10VL~1*%B<fHC5t@noem1WV63&jqEN7wq=L~%s&)%O(K~j zZt_|RdsEX;YCx3lihAJiWXww*;rftDp*opzMAT6Xx(wn5cP(c!6)!0R^n#OuA^JO4 zQiI!DJE^vNY8WG@q`+m`2ww*4W2z#J#f8=t8*Et@7mL_tve57?5n7Z%S(mPe_N*)^ zeB*|5NL-lKR}HoELNxr4YMA+?ZH<b`Wz$#k$YS?VY09hq!mK01bkKpk;SwquC1;Pu z8{BY;zK3Pl5H3yl@PDsJ){?A4YP_DR@RMj+Cj`FZX)8s)MWzC~w#b;q^cul+2$VO@ zzQ?svW|;(BPyJOldpIjowOD1LZuf5KqKTNs(MXT&VLCi_oV+?Rn?O2cE0NdX@Zkk! z;(8T_N@Nh!MHc3~%eQ!%kKOGD#HvId&rg<Hqu9~iftfi7{hl*EM*?Vhj^4eLY=zN9 zh1yCmTFbbLbLvE{f)3$_-{UokV&k7%p*>Gx(^Nvf6q_JK%%v{8y}bMmeZG6c1Y$E_ zA1sBXR`p}^Ay5@is2n{|p}P>P*x}$&A{@nGX_lN4-e?bzfuu%qAM%kUU+zS=E?044 zUO&@EJZQc1BFSQHO;-4g%S)ypVc!Q`d%(t;I)j(<epr<&sZX0at2Ch~;RP=xu?L93 zK^&X9fQit4{N1TC#ooq^tO;l&RqvdFzYpk6TTgf!5CazRw!1}{z#f3oLB5@^SEw{~ zsV^X<`xKUY!C$V}e>H?KcxI*xrA>^6(|q@Gm9VPUE&Y4%4F7q2EC`O3=ZR)CB|<JH zfdp`Tu#lo{apMk^x9So3HMJofCTS_xZ__}w2m_cnQlS!mi0&o;TM?5kbYK?ZAoqXw zUqRLO4mA<P`S2%^mXk@QXvtt5@?3{O<qTbJWi!Ilp-%YV@n9_g23e!bn^F}S1`MVx zzQZ0EVXnKVT^VnHWh1x*pSYX1)O|`|@yK|{Qu_wzuIRW&jS){2G*pnElq>b^a#{f= zAx^0L>+{aHoWRggkjU<BDOmpKhI9=9L5P8}Ghaj-7lV@r0Zgqif#V_1o9Kr*$pzxy zjE{^i$x=Z-<~`J{FsWjca$4|!$wRU0Vrc0GJLOb4PqFqaB&~HF{>X)fugAufU#bC* zFV4up)GBFoB{IHC#Au+T)Oa)ixZ6C+F6G9Le3{b(>}#<d>d(b1k1ohtu+o!9^nX!3 zcF>r;2)MyfL_qR&Wz-x?WN^}Tb2IA)X}yLb`n|r$Rz@ph#H`X2$3g<uuX;k-7e;kl z$+u-NG2WvWznGXK_#gv=Oh1;l^Wy_Dkf3@jg!_6j=L*UqueJ$xmXa{xIPq9@bz=Lt zbHS+W_c7?hJSP@2_H;xS<TL`r!^(+yr{IC0M4=b`<!UJow|)DU*PL-5NH8l$D^iSa z{+KFb4urz+#TL=biDG=1Ew6|W_0Q%lOxnyVD*5nv_Wqs^fj&$Af4P+NupwRg<sltu z3w6Bvokw@QumFqq`q~eJ(pOJIQk*1=_p5CQm_>CTOS8cEkCbn}b4(LXMLqDYG{t_b zxAalb_|>Nk<yyJU*0>Hj+^~|gp<^iBvuS%3bz(h1#ZJe>;>W~ay!W3nzS^DoVCpJb zgNMsSbglIl@p^9-u=E#$uI6;?&iCWf`~6FY;H(z4{iE}N#u;FQJ+L4ad|d7l3jxJr zE8Vncx*o-7W-`qKtXs<qPWO3YDiB=gYOra&7pBww9eHV#a_ox-ENC*I*;0zuzgVWm zK>#@d4kQrj%}o>yu_3|ky4<*m1#}KzTHVZvyCJVL6Y-&|I^gOh-_JyGJ8q$^EWDVj zaed-`Wp2rDdQ6K5nbg}!HK4%N1+2qZ@sHojLWS1thp@A@KhR|GhV~o>BIOY%{~vPJ z(u}Tu{sXsx+q?Ji)9-ZqJYDO}7Iw|s42*zkRw`sUPu64rG*m>l0&n^#1<I|v`nC)F z(@Y1$<QdYIx3IV@v)LVVG*4gY!}a#<XeA*bhmOm+qU5dvda8*!^>)M44BRM+l(G4W z4NtHtko2R5&n*B#e=4@Dic<YA_Unad5D>qYS5CEX=I;vQ#R*bCOX;;`Lm+y|5|bd~ zAI?Tb5Xq<qIrdM>6KisA)X^}Xi<$JGt07*P;mt6j5UJjC#Yg!t&68^MBnkoItIt1T z@=p%%bFz#lKkFd5P<_T#?QsQmjxCzY@d>w;2no?pd}%`s83)e?Lg9ZB#DRVSJ7&e{ zI<2|*sinKWtWgNDTJ=_yR!G)Ir}ulQD_koV%p^1VynXlJ6`d!Bc9*wBqtgR`<A5}B zTByxmkDn8c{ry|+y~J4M^LL*=<Mg_0*J&Adaio__I;ZB`_Dkp|+R?)16P7(U|LLY# z*E|^&@hm3NV<m8#KVr~)F)>PZ*)oHl8IGNIFbf;876w5F*x0VFc%Q2md5#_XD88I} zwlmsp6Js?oE^MfAqiJvp0k`HvXQB_;L_^}U)@KMAXh@6%S)I-1pEwnBl_;<PxliEA zGA{-apn}kulf1|Wf#MS1K}yBwM{_^#wii*l6bmmlf$9q;A|T8d8XhL<kT%vKBcGX) zA)vMq;}p|m@AaWnJ4_xx*Sey-Z-bcu8B6@XkCQU3MnJ!YH}=y)q5L^;wkEt>>v_~G zC2X#+oR5UH5{mfX1!H!}rLxlYcw8c4!J8CrZ;2XU-drOB<{!Ru^O(MS(I*&3s9T!! z$`+xj7=;QNe#3wTCzdgTY!r&g@i{mn9;M(kuC({EXNhvo*hPn|M`zRx5Sn*%D+vwd zPB%kJC&`OogA>m^V2FdB$it?c&8!wtHJ=$^Chd;VwpqJ4%yGa=FCX)DFn+~dCVxeA zm%E7D#>lCr1_X}DPJhrTWQ(fo1$*TMjeF{Hc(Fk7Ad^N($_WpQ-wEkb@*tqoND@o2 zSFb5tOdPF8zkQ=`emKdXNd~p&W*_wBYe)?&w-S^!vbaKGYJil5j&#R0%_pY1hw5)r z5`d;E_rd<bSjk-;U^liYY`FoR-W)tUp0ME0D|-^i?+x`5Dgtp3HJ7t_NU?0qY#}eG z_yqWp_X1?JsRT%!P*4aD!Cm;>?Wzc3OWY8IlH3vyIYyi!_O`hvcOJy2#X?9#s!L9u zDC$S4>Di&11iaqJgMZ}tM2?FeVg8|a`X}@l^=d&b{lmIW5peqd#d~RqUFpPE{uB19 zv8+?j{Y6?>>JK5`F*Hz^Bo4uhF)(2rU(xS48X=w@3petHzp9A79ZgYKviZ8fkcg!? z9+I}Xy&j-8DGajJZJ6G6)z6OkaB;tewbw5##1aqB%zM2x`yA#MhX(xSH6m9Yi`5f8 z3y*SlG;(u_s!b^j6^c^&J3}2Qz?PxK&S$*H#(at{T;wt9-ccNG`$XcCx>n&RE*rP_ zxw$HemWQHc&L7LWMrqE)<1jz2=eae=_$#<_|0eFc79!0;{TCo!W}wos_;8sM9x_QF zc`4dl66L<bNu`wTdS)7eiC_W8XlWLhk9c;&_eD0$Nc<@X+5FuK*GcedG@SAaH!`wU zAns7+Le6sx`H-t7q3VV+;Cl#Kmws+04%ubO54nz4fVf4k7V3#9eok7)$}J%{bhtL} zPdUoRIBI7C)Re?fhDdxY_hwqFCQe2=&L*^MPC@u`E0&n~_{dx{8j*xCjN}tpYPwl8 zRv9U?$6*bU8?7ZIptiVLfQDcIjoK2$D*eFqylRA`Y}Ys;tk_ZNuS3*KG(~k}%RrEQ zy^roG1eTnef!?BK?nKw8-X-k$RJ$P;XF{g_FX}`?5z*TjPm8<_{We7~1d)I2DXLIQ z0Zjo0yZ$2lwcvv09;sv5U?<0g{=ln9-z|J_E)%+~4F9f0raFya-h<e$?Tf<k1s~p& zz1}W1JV8EL6P;qvjjwKPc5icD3eowD_7NkgzgBg5!H4hpqzS?SRv%i|5Mgt$2~0N} zWv$M&h*%4iNvhkaZ&(2E4m$G{PA1$P^*~|tE~Z?IAMhiU?xVmuG<d0Am$K@0yYz>1 z5Hj=38!iU0npu($d0%Qz9<5`e@lcvkVuXv}2JZ1?a)(ioU|yK6lQhbJYGg>ds%V$8 zf!3!|jq<BJvGD_~j!0v}wZOs0ft9T?$$R4A%8qbSR7my>8)-tUoxHfs-wZ!KBXj{& z?BC4J=7A9im0pAmz13BdX&`xu%&2v<!)*^75!~QW{cF6H{W?;JXeMe9N^PJ4%hoFt zO_#H|t%=gVc@#N@>6H813#Rs97Ad0GDJ=vXRo1*}f9U_i3hSK%6Z<2D>?r0NpeVzk z3<E)<ZjO=zxxExY$FM|^o=*RyiWf_oe;)~CaK!RQ<RSI+qwtYJV0zlPf!-!reMY>1 z)-NETG}RySgxK?)PJuBV9W;%rIU0tf97?JgTkPJQfM%02O@1%;S%*+<I6*)8qEFUm z-JEm3Kv*GgW(7h?w0PmMbG~If!&70(IDBQz&2|}i+?rAJmpLD9%_)C;%rZGVe*2u> zIE6oXd!y?}<P_;=@cG;L>4&Zq@n!-!z$%Vv&8KzkIgq3Ke@IBNtqHvOYKzPGXWMpk zoJcq<GS)byQqTS%qbu#KvH~zk;4su{VF?(z-*CP$!$d|LQ&8m6kS@~%ye$-;57D3n z7$aKlN5!B-EaS9^IYU~9F@ZD&4E;$NYm!6{z6hTCEf?k0=>yvEKd5Gu_o3<A12UQF z70|qg3#(WktAqSx>x$fdf!dgrZRKY>9cKTWX;WBZk|_^dWE}Fk>Vn-oC7xwLA}V0H zf{}2aE$j!bESt?piwts1zRA`IZv(vLY(T#dua~LlHWL33J|QhagOnt}yzA2@d)Asp z$<We3vRk09Fijhw#D=14-Ofs2OH791J^*G&7{2A4jk?xpSPlD2|HWvJ4Rg-`R|_GZ zwl%>wZ8~N4VMtp4S}Q|6|7kk9a=FBT4eyy4`std7?)}PYEuiAZx|u^}9Be<?)?E|J zTj7l;Ouu}qovR%KgYfmcI<WpD{)Niz&1NJUpNvxp8W6V&6kQP!UQy_Zte*7)Z)g8w z4f{$XeNk0jb-|AyeoouMVO>j#^3GY9st*INH2l=oy|EnNJ8h!G(R`pfB>YdIn*udZ zvZ>Qt`KyyEeFnUF<7kb_)ae-fJ}N=Gfb3W`2xzHAmO!}!*-r(go3`+oq`sOoxI9;j zARPR(Fy*tVJCI3I%er{!hky>>%uX33HA2iweI*xhV!8<dxtl!->EPib6Ib0EJDC-( zUe%k9w|LS6o<_Hn2bW?F*9C?bfK_<OnfQ_y7hG$o_3o3i5hqWG*n(y6NME`czj|{- zy~bi7q)gtJhE$x+VSwv(iSu#(*T+{5)i}<VypSO@6=QqwP2QrtQGK`$Ag-<wy7u_A zsnRv!tDM=^`emJA1bmZ}d8dPBN}BMLZ;Om~dWjpSAR~rQjAfA`9PKI^B$+z+s+Hv{ zHORVR6@Tu(pW_!mT)9~G>V^vv72x^D9dAtoOx+Vt*f=oi>NnRtD5BPd%?T!d8FvBZ z`bERLZr=V9P8$OcxN8`q2g1-*-df$<B!A<xAN!Hfex)s7jSW5mc2=;D5WpauMRAN5 zaPUm!KZc{#`gOFs0#EFtq}P<4ks$1)8na3ssI_A|U9Zy9TG%tEe>Zxp(cOl{`xKUU zK;9)OC@LgM=llN;{^e0&kbmYmKS>7RRbPLi&bRk`!Qs@Q+$}cZFA{As4D(&neKV~0 z1>f72!#Q?43>@3H1FZED38~bcTyRV3ojLa7s#9)WN34q{{Cp0&`d>GYlp*5z77FdB zrAC*(uGZBW^gplpMI@5xvOHqM1FBZfvs}Byg42FhG#MB%WUPtgixKiy>`M@#xm}4N zC<owVV0Fk1VgAq{TR(47j_z7yTX)KFZvPMtfS=19J>K@57-A8%HdAx4YcM`qEWdAT zDn8AI!3KHxOZpZ?rvYi5Crgh@TSGTjE3{Wm47P^jwkfjxbtkOenf;Szv?(TW&+13) z?%lG(%f$0#=~-o5LWBF!joNSU3g!;Lf8SQwGbNIY>7vNJPc`!%52B8nw?$FADv0vG zy+tYgK(}2O*ThPJYMNk#z;B&0#9ibY?NWQX$#g8u<PFjtiLp6Bf`3X)S`f!`xE6Q8 zX5hp_C_%wnUca?|xfe*R)yI_#MO3f&z{LiHF`z#i$@rI@s|qv>HWAjMkO#e2`{nnh zraZ1WLlBDVFDlI+oHBIk$EnOKm-cpmFiesQ8>LKJDoTN}fGIogVO#ZhFHb>=!Af*E z_=XBSkgn<x##KK>Di*xjlzFo66x!qR<~-aWlNVrmTcox2jW0MZX^{FrE#MViKN!<J zWUhmF$aF_kQ{+<+QM{ttI?N7DgY|Lay7$)=LcC*!Y`<6i{2d#R);&1V-ot%ZwY2+5 zJ7QmA2aTXa{bIN2om<xAKKjvP4Sf^kWS`in0#d+_WeH<LP;^L%NMYKT)%Y;3>5;FC zfzc4xE+7nQiw2&4;zVm29Q)iT9^6-~)?~{%h;aYL!i{n@hczPH#V-=pdHHwZ83WMu zBgc&G-6c-wehP@qW3aENkzlWMHO8ktKSF=r0)*WB3{s&QvoCqjV$KIxibGBtj((aD z<dZlkt=gT{ugl2{!;^rGJ;pX)_Odb!rk+MI-^h`HK1<(|?zP@qHN_VYoG7XmhJ`U= z(jgkd-uZ(puyfVfY9ot`m}TR8rLKeNQ%-|#WKDBu>6<X7U61NFkrvMJ!6c^h5FrUf z%A%esc(w6HTb^^2-<w?M%m(0_pVPv}q}Ff_Heeq5uIj$kENv@2jKE{hWRP#q;iG>L z`{qR8)y6mJx1ZZI&Unh`bkGYSKEXDNPpDp_G^Azm9rhALP50m!G{ZKCQLp&%T4fmy z6HV{VLRT3&R13;rRU@%%h~;57!!Yfb{vS(XW__8E5Wn<t_Yl;DNV`Dg^w;>Mn-KVi za<Si--euU(BBQwbyrEJ5NiG4yYg78RwjERr7jpeEJ!VM{OHXnbfCt{&ho3p;d1|rv z^bSGzR%#}D#Qqv2m%)deZH{X|3LC3J%>q6@fNAX81gHrEe_znLJNJb<sDBxbt#fh- z#=)&;P!2?wz!v``HMXw~bI!&;f*!T`*T70XL^2J%Cl~T&P1%~oK%|Gm7jF|YY)ycM z>(#hJP|0&zXA%RKbhc?`@iE(vgWY|OLEW|o#nu@wN0W_+IZf*)48A6=euTKI`_n$P z7f-GMD;okQ{DOu^&xbBXh=(m+A?%jmzMJAg(wgco>nQvoxL;eCUD7HZ+?V0fiDJ4i zkho^GRmQPFPqjh)<6&*7xh||YxAa4lHp*v(e?X)I_$^|XhTQbxk2YdhE6!WFR>uI$ zyMU%`VFo$CUQ$9Ka^@};dD4=ohGQ!eL%(A(FY-U#OG2U0oIG>0)yrH#M1ra=S?Y9D zjU<UaW==FVQeL81faY$ey`A6af+9W45!mnc+$pt6JKCHG0NbNDy>Xz^ktMlu@4$bl zPIcct>RZ8|4AYJ@q|KLNTGT>(&NZtz4G^pTg71^mpG6xHf^BOBM#IJLbK%+%+WV(P zRd@n)+~x<>KpbGQy;%BYaO?gZ5-N<YIjCtvA#9c42FnRo8B5a)0Z%2JOfsc$1osmj z^-TqH9+79A;p2N;+bE_2_XXZfvKSH+$1X0L@;oCL+`26^h3L_1I*f@Cv!H);KV_^A z&E#^T;=Irl`B7N9OXEJI#9)>hdg;x`q0VQc<>RYya;b}zoy`>%J+^-T^ROVU_0A0_ zqDKK_&%veJRv6KPUOg^a>Jh~x+HGsi1QgO#=y6659D!3-X{ooSky{_n-aulO+zHV2 z{2bCE8`aw(kU{nZDuX03)MnKVjBg=6WL>FwQIkXj7wlgc%pn??R5>#SvnHp30Nd;V z*t?skPsXrG0lBu3Ls|yuucPxb)`lm^?Guh_u1dlP<g1rBpWZ)%g%t-H*nSRxLtp$) zv_|6y-r(}@%}f}SaM7+_7JE4PNs2~%cPU|AW7sW>Q_;^2jEgX8dgIyI*3)MvOfXnC zVz$1F^Tvxxho1em%o;yU*+}vsx?6LplCba5Y~|1@CxkMv1)R1wbS1(_X#z*^=j`mF z%Symjia|c7<8Trf3?(<|1D#H@Y^fn-NfU>B_mH1|`h$^Hl&uGsj7+NM@}tSYCc4Se z&IffFK$iXqksSW5>8WVwn!7npF+D(pIgdB~@*r1-wJ4@Uy5Ir%GmJx0HvT0M>I?GG zo#w=zuDyT1zMc(q9-QafLfk#QZFXnV?d&QDVmXk7>3GBv_GNG{0|By=q!F_DPx9E* z>oUv4s;ZzPKLtST6}PQA>SKPQucUtQtZddF!5Ul=R^0fMH>5;kCN^9=NIH_r+@KJh zKfh~hE%UwEfy%`ovy}?9NB<}eVsSI@&H+0<lT!f@nT5ZB@Ycwv!=ULq7)|24)>_;> zPL(%=Q!qxy#!M~jW!F6!c(RE+&CDj>xQ#zZTAAb9m^v}jeOIa2a&^-StCVsGWfq+! zd`Obm{DG<ycGp9ciiBnUg#ZW;fQSOIf4oinaOm!9=+l6L^*D@|d@tDj6njnN4Z#Ew z-!CO#L4+KNpruB3!OBz>StZq5pw>4^Av}AP2b=KKNXeTJ*UQaE0_U7rFuUaWK<v_L z^aJ`O!|wUx!_Q{-0Cz<?)M#c^tCKt6K4A*eXb5Vwcj|%MeVGPG$9H5}&x7_eW;DyF zLts2Ml52j38;(_A9~2RiLk>kjFJs-j&5I6W%mGHge?yA{m(^x`>e!#@1f{rHa+*|y zM-ttrnBh_dgnXJs4xW&(OVITE&8LlZQ?hNSG~t)Y>VvyO=6+iYQ`ZYXmQsrxw1=;k zpZVkN`yhz?H2oS0Nsu(<lU(yLn&q2Ib|l&3S7dneabBl7l;AY`0_66Ot5}?jp&1R& zGqEub2&Wh|2-|{|T;9V8x28-zhw!*{HDW@jWV=)W0w3CSVyp3d(W;DRm&27Bm0x*z zhX~C4P-C$*-7)akGbfgCGF;e=NeZ!AJZ7cbLBoZ?wxcRy*xLT*efw=2kdjU4nTXO# zd=4w1FgDNAFRC5L$Diei-$#`((KBaB&4huzvMWK;lj}+J)g4p*B^w*0enwUuYBF?r z`5I8(D{_AZhMeey48VaD`NmtY_+{jd%Gx~W0?*+@7(3(Jv`P_z%HsX2PHBgq58{8a zIKZ(sN#6pbtD7~pW2@V1WiRT$K%B#XWr-@8oYAgeDix0oVBbl<;G~=g>zdg@Eqy&B zoch9ROqD;4Wb@Ol;i!Yd+(@HjPihP-^xNAo0B;w)DqbOMeWL;8O}u29OCNj?N?Fa8 zB-09ir~BWCc4Dk}`;L8+XUd`_aOd=>(b2N#{d|&Cb4S{<^)*)@*`o%A<QKVj;l_MN ztePW(sM2#E`&WaD%=U66;f7Bi`<z}ioo?*&+4z;WiQJe&weeQIC)MulKiBV&7(fAS zoF9MpV&o2QSrp^&ezV$P%rR!lP)}}#^c{dX07XE$ze+hfHm)+z$Y!c$tuEz}#UehX z0^SItOO;piiPH}TY$|38^!w<|&*tF_G{#o^0*<=0t#g%kmE;9Du%|2%hI^)Ojtmkt z_+tckeFdNnW`jIOx*-LT*SeiJ)!yz4#kRnke5y^aEbgb6PK@M@d)eE)JF9R$_NiKd zmnFZdm^j(96|9M`S$2fyJaAib_w8#Dh2X0XM<ozbD2H`3qy#V3zv6xvIZkxEo_$1X z7B(z0OZ_}Ut&&lzdAb*<YI5rp+rikZZuw)rb_9_g_xhNvA7ntLY28^RVksC|nYY}T zLEfd>#sjooRIQiX%97+XWhILvC=i-Jm4)UE=yRLJUC?Gs4QYVx9hi@MU&$q`R@fA9 zGxW+$QmozC8$|V)1Yd<c3uJ<!{ne?2&pDu#s<KtE=LBFF-wg^s<0(UHKSH&1E(i}R zstUQ@ej!!r%Y!vPxL9yq7`#pHg~XC+UmiQ~KZDf`4A0EDxwTM=o=%SLs(k(0X<~bj zE=I<Y=lki-)ozdnL+x2I%4mqXwG;Baax26N?=^}{DPRbjxf$&+GMuW3C2SY}4_0&o zch-l5D^-Q|R+=p!bEDaH@kIyu=hG0_fY4ttFFfcVm3!UkFcGyk@CxGjc)&~$oF2z6 z%{Y?&a>QsuXb<n_M`G=@@zWvxZ8@nkEwjR+no9JX^+rK{5C3RU&1u>+GD{EISwFs> zSF|+(3(v=PByA<T9Bl{>!=2_g2v3-9Z;-onK$_9#VaGJIJ0%dWb8cT`F5VmyUkqSC znz(-h%(%rsDA7l|1$0|F2|c(-V<1z)0%E5;TE+ZVUB5{0JB$p;_K6CX3R)v}tRt&J zD^+Vfz2Ej>AQM<5@;(-2e#zRKPS>9FFv4JycZf;qbROd!?53hcwm;?09at1UNRN>t z@47qDH_`mvEp0+NbkYvx%~WT8+2qAfqlx8=;1aX-@e|6j@Ta&y1*iomm;rasON9jL zJ0tx+Ww^<-umXpNdyWbh%bFi1btdH$43m(Z8V2gC@ZR7so3(xH00O3-!5u3T&I|dY z^tRw9KJk#=)wplrtsn4S?z%Y7#^kDMKyMY8Hqi$DOsmFF)$fP?&kZ?!|8>V%Po1r{ z-chkrC9p|%hq0uYBZ1)tV9Fo&kj{5*E3l?xBg0L`Hr&2XC<0-w;ioYk$c9SU3AyFR zb|tVYi-7`tZ;Ohf`c?<+qwG|>1(R$Jd81)4$9vlDgx3@X)op3hR=uf;nj%SASJo)( zl|@I7%G~Bps|LXZLxC1Q^dxAP!^k!(KT<Ydq~g1i4U&^&T$w9l@sPLLulQ71DICqd z>v>2oS$W$%yT_R6h+lhZA!j}r0lbR|AKCna+p(o6+4lhUk?9wN<5e`Nfhj%_kt*Ih zu?9%i$;(9lRR^rL5wH`+UIZAmOm7O4^};bNEmGcPE;z5@%35!hyeDTcWLNN$aU5N6 z5?+pl=sQO*^YF*t#+H3OTzFl1F~1;6Ti4WCCNz8TtdWm5@I*A~mgSuiQqGTX6-9;h z@_8P9I2UN)-bv}w&vH5PDn27p;2LTMlpVfxo&Xc{t2oCo%4`Uk#G4(~3$-4+;`NM5 zn@X&MZ<P1NZ0jhi|Lgpd+9$=xAxM@?G3xXcJgDuR<c$O{^Lil9WO@*OV#({j@kL<Y zxl|?wi-$7{T&X<VPhO5)1H#HTO680T@_?z$hmhp08G|Dn_BQzajNW=EZ*~PYZ!}05 zf=HtD<Q7x7r%C;-?Odn$v$++hvW*oeR*#jB_5oDYx4@1difAVumlFIm|In7U_{ofM zA`;?Ff*?&Ol?<QH6LLU;72F$it>Vu-1XSOq;|{YDMA(~0{}%9y$=~2k$M*Zu{8FD5 zil^x?$(crnuGpm);YnENGaa9GBxbbyfps0g?ORV|P~Kh@^U45S?7m;;bG)o(Eoa*S z3n#|dxrTXL^-zQFNz&twmvhwCF=3$qOLam;PR!}g-&Y0S1y1m5?@`^HvXt`e$D98Q zQ{?ky+SC0u!iq=>>&RbyuMat}4rWZ@ElpGoLtv-72EeO{GTPSAq7Ye}m)Bi-1Dr(J z7NOJg(FDzd35s(h@}IlPgUC2r;wY7grAMXPXzAbUPIm>hfGq1fl}d3tcJB7)LKZ(F zE>I%p)nP%l<Zl*J@7u7&H=V}|Gx%`r6#<DSr*-B~m=nUx&j0NC*C+P(*-v1o7BEcq z*i2;XlEhJaohOjjqF7c^#~;NX?F<(%Lyzr>Wj^a!+669@VGANR+zq2(J-UZ~E_Bfx zF??<tu=ei%b7VrrDrrw(1B26%dm`cgdGNjYsug2C_8I#`^YLZnp81)PA=V#e9f};} zjMT<Eh>Qf;bUcp{We^*SuMh5tIB~wSp@EM-E0>^TC(cFTJWu!a#3;=1(BfN|^T!Pg z?%u;Cp3}gs^nHM!XT%_wVL(_~&ta3i4nzRfDnh0ycT%Qnx3M<~Y|7jwAWem<E*c81 z*%=jHaj_<##JZW0t?>?f>Ib;rvo(q9**<Sc_3f(&Z7u)hGKn!Ky(LbE6!S^+b3b)z zvhR8PM2+~A934&Ez&pkJ@JZ01m^KUQN4Fj+jUxWT7*f_L!9%qKxHT5VtkJkx$ogpJ z)|Gu}5NuBUb_kC{j>CiV(t`)X@I}is39;<LJRt5yoh&&dk7|3~%w-!xYw>St=O-A= z;z8GhG)|At$hk@+6@&e5LS&=fl>9`F3LLPY*4n?#$TaUf5d=UuoRRtuNfo5~GX1yD zU3vD9(O9pGSc3x_@czKTAIf7LZJx;*r0|wM7gIa;7P=}x9V`5~`HU10voF8*ZbS~| zQ7uIm9=RI=F~`)I?oT8~JDuvm#rn2L%1if}>bn&6^>8{UOqZoqA9dR=Mavo`Fm6x= z^H61J?lIX&HIoSCv#?w5u=G!wl(@a~h&(2Piy(=a9osN`6srT@)I|LiW$neVF6VVG zp%>d}&o*s&SvwdEXIAO%84`{S2YUBGGyV+uC!-4!aGMT};R<3Tqc%9Ez(ymcAt2PS zF2)yF8zqw>c1+*AzlUTU*3AXAiuYHD!N~kmdW;oy6c%sJQ>N8Yed?t;lAIrh7+lK< zN5XW>vvbJ4Q+>qL(f$8QCRu`|4J3Y%RaFjJk5t;b=*r={zdO3>5E;X-cXoxASFT(O z|8wzS>PaFwd{1~(Wq9w7#vsi%)0MfJci-jV@o1=N&$Y0Tv=oW{<0#;}Y<la!s>S5~ z;pae6ercucM}HrZRJ1n%MNfr+&6R{-V%vk|vdy6jzI5bmUfq2C<gPgv5a@kFQ9@<| zVyvKYZD>T3)wZ1b<4d`9>!IgFi*5|TrIDkZ<AezWkF$^z%r}DGDl9`8l>*qJkP(B2 zXq&o%5hE0RVkL)die;)$wQePIoX@AK1r*6hhg>ccN73Nm?Nd*FV}C5I{}gs7%J`9I z`?|fckLCQ6kG~^~6&F=TN(ytc6@PNdLfF!+)HwxX**=j&9;Xz(0B63Ouv_;0zSvZq z)@aW=7&m8AU!?cna5KBNQgK^S62Gc@h|kUA(bnC2tmlxe{egH-ktM74EDctVW6$MH z1<XId3%O8Zuo$NiD3kvYy_+zz055b&1hj985O!wLQK;a#8-T%(iNC&?&<%zu<EyHw z#aJht)le$k=??{SFpcydm4tYkQidt`BW!tU6AKt3yHJ)1qIceOA%3P!yTG}m0B_pp z-R~D#qKO^g9>IR1DEIpf@#Q*I0Qo$L>;lMxnizL&_9MZ)r97Y7>X$bac$hF^B@nX; z#aXjyJTlorU^GbtMl5YwaT^P6;A(c%9i(64LY<C?*UcbWvQ~6oIS+o~0Ee#N-|CY9 zm1(I`ov=WSe=^J2B{gb@-)EFsBe=q@UjyB+<ac3keNhUsUJ--#Eo?J1{m#?8mw zaA<?xhYN@WVX?m5#M#P(H8kQ&bv+zU7PFMd=D|AcF$YYLYftQbGA1(3wU^$;NuAB^ z?6t04gFyb*-r4O?W5xuCXL?+_?uzW`j$5}c)KM6rJdWLaq1O&T^e!4v*Ff}UT8FHV ziNr_anIS5D;Ehq>IVx6F=f2!gZjpwEkyh-9ElLv;8SCvq(>D!ad1fmd)mA~fPeZyb zN!RCoOXZUk0$G};Gpappz2sC-{7KMJwORxZR0*cjLP>>?%!)fQC@nAW8Y5%Dk_oJg zMU%8Uj)-xN?;ngNjJ~CfS0@1M1?ZCJi_BFx9LBDDCMi4p!C0L_|LeGu3yi>q*dkMj z+byyHUdp%F{=*jmGtc$`oPqkrn$%Ri4?Ml5+HKFGNq}fDbdiDY@~<A4f7XDm7$`MO zWy6xFDjP&l(19qE2|d4Ouq~I&J#dDe$LAH|GvPOzZ{}Qjn&YM!@y%fyZ-?Uz#z(U8 zVAwfXKyFG+?e)AJnm)a}w#lAhBR`i!PIJ$Y=U%({+FP+SsPOQWqD-gV&H{`#j>{{m z8Ahajn9M{nVdYRdvUbcOzzfbHYznQDCrb6h%87u7GB{RkqRSg^7b)vmZ%>C|DF%*Z z+>5Ea>4pLX<5$zfsVut*YEc%lI8<78a&|lhY6`!(M+Icgqc=0Av6#r2z(QeZ?gb5i ztF_jwr4d;_mhoc{AVybV?z##gmZeFi**1(5ryFBK(5`kXsH7ZyfzRn{fb$NPhE=s| z+zE+%wtDO5PZ6N!tWt2ByvrDNn9bp(Oki6522V5Ly=}@AuaIOiij*Ql{u*p7OT?xu z4X6Hn_zsz8a;tY^X)fGk4>6!7flO#Fv`Kccpw7cYqz;0SCd>ETs8h?Gy1VOi=JPY1 zX4t5BC=H{w8PL@=xdcWYZ$OUtT)Pp$S6db>k)e3~>lq>Z1DL5~cfg(;BTrS(Tet3p zGTGkA=8k<use_R0hhP<1X#_^i)>w+&#uU;tW{$Npwwx%#8~8_1Fu~<_p(f(s?GjIK zS_WduEHisZzGuyTq{AHTM-PXw9&{9oS?5@8=9v=z&|}I(1#e%V5VnNJ@8w5(t$eW; zDfhs@%JLxU_CL3{9r7D_Bg|zr+1IgftbMK8OKBb2ENE>}BM^+ci0d2c+uyV_#>DDP z?zD2s^&%liQs!u*MG&$WD+ND_p6#0SVY#s^f17ZY0DHkM?tg81P$E=^4K*EKwM`M% z8&<Ep3o^`{7)*@h9pBG1gjOi=s1FXX@oGF+2Z;imy6|A1|1tzXT5~hcUBb5H*gfw| z$3hklBl4}NKLI0l5!i0$AN6)9f;NdI))CARXo?tDB1UC?{KL)LFUX%P-?v*Jd)-n_ z9Xk}{qDOd?m9|I`sqd55<OOw>F8xN-ezd>Y$ppEWa2iN3c^iQ!9%f<W9<XL<p|Njt zR4E7(QoK;!cO?9v3CZtKy?q?C3)lroDO2p{Td0?hm4g^tMs58-X!|hp_7=$I0W=h{ zuKM`2wagFGgRe{MZ6-Nah$7!-#Cv=;v{8D}LfGSCWs;^8>JJoV%iq~dbMmfDIqR6d zz!B2r>ON(GPJt2a=CK^kE9Ja~5E<G8TBpWLw-kj528@Og&trUly)E8H5C_Ua3C@c< zLrxvW{@6#vy6i6_^XuZ!4v*a~D#e};`2X8qwRJPJnynEGF61D1%5z2=CFY>utZglm z4NP2Xyos8jT?u#1I5hjcNR2tEBrmsNWp+k>w3#Y0&<^GRW^-j2j$^TWqy_+B6U!|e ze3EJ3#SAwiR4J)R)(HZ9vzaH`?`k{*@Wm%w=^KZc-E7hz1UWGYg=wVkg9)raoGGoY zIj?x<1v-;aq(cZqCxoC8r;)i2&1)B{QlH3@6-L%>JleDZleA}W4Kv5xAH^}%P};V> zx|G_vr=|^r8&ZkfOF$kK1yf0M(9i+m%^RAfb~}rwC-fT{c?ZrxNcbG>k-xqa)9XVi z7r#u?VUCixK~+)2T^&@Oo%})WhOrG{ztvtepPiq|toB`|dp?GgHmG`d+MQFnwT`#i z`3b`tNY*nT`&tAcrmry0^meso@bu3B`l!OM9Y#Y@tBIJIIHT8|GeiSPA-wTo_%GvD zRj`Hmh%6omXEcrlmd)xn#_e`NYJJ?Sr8WsYbm1m<vwq@o{bo0yffP<A`uBON^hMq~ zy`LgJe0E0x9_`|*=Yo0pA$IsP_C<2s?io72H(_2Co90gGPC?ESt)LoZ4jd%a<CA_O z&H^fK8mr2FvPzd1uje^WM7`cdR3sC2z*ZqD;#rtfC-ly*-a|$S{b$QegAm_tKu6_4 zSf@S73VU~^*6Y{c^>__?<EAS~^>&uP79~1gz?z8oOCBq_@J-+>w9OkdVo?2DU6UZJ ztb#K$Fp3Vam{G(yltTJ5odn4{2p#`tZ<N|CxLBjsp=Y=)KCH;9m=~?S=3<P+M&1vY zh5WwP$Z2_#_NVMMdxIx=RU-@xdEnSHsRmv3e+Qcme1d@HCcBt-ms3x*oE>xsQ(5m* ztV&7rqs$N5exQe3+!4qCWc|;)IKgt-<rC9@mQ;RWKt+P>KFPp!3r$zCJ^fn;hGRnO z7MB(*dx2bFIR*jp<naknkqJ9&%3LU^$u$7U1vMIdU$Vr21Y;n5pX(e@8Y;%P$HOF! zA6h&ZnLqGV(w+JkvHhlEf5MQ9vAL1KZaMcd_vovJ=L?Z7N>cTp#R~7OGF_DRC70IJ zQ=5sp5Cz6|Dg#6n>+7SD1BAmm*FKE6w?wnJY$bZGOVSd{l;au|>wKu@!CTN~YrVe* z4++c8aO{b7lYQ+(1}FZ^9bY{fp6=3^TXcj9)UZJ9RwW^tLfW~E6ou{VcJ?-j(cTQy zB3jO*=y2t^#5;KduAW;&(Z7Dw3mOb8Kk_kEgyAu}z^Q9LObTF4+?_=46)btJ`n}9b zNPjk>Rn8S3TLq^)WeB5lh*Kno`Yz|k;jCSrDG9nV<E>_^uLrkr-IDhG;hP+>SXWtH zo1{QbWyq5#g$qZNH&XQWKDG>LUJxmLmDI3VWn^PRNPUiqcu71bsPw5+&NR4eK<=B` zZ}<-;93Fv6YR@R*P~mciNE@TJqaRzrsl^cSZyrag){2ok6UKO{|D9ab#ftJ}IbR(d z9l9^IGI!wgY54~#7p1k$?)>$*@(^DN60l=0OkCe=I>-~k`S_8fM@`kc@zdqZ;n{NI zr>lItkqz6T(cj2)-2CMjMmGSc?*(3xrxj^wArW010`?=A$kZc5@$ZCQ4TzQ#&23t| zBV~)1JQ4i;tkFPdw!7$L!LV6`wQ?RX^!M!OIHso5n!=few?<)!tMyPvl@4@yy`9F= z`DBRRAptHUh1o)TSuS@MMN`GYwpIJNoKZ*RQ@agdD1@H@H1QgFf#7yAM_LFB`!!=C zJ}<Cy(sLIujIx^VA$N8V(#$#BP_~l7Oa)#9h+*DFB4*LRgKPRyOOQs*>6d5nEvMuq zmx;|oYltHMN!W-MWh*m9^8$IBM_@?7cMKFvHC}jpQ>cM;yR=_P;qTW&fEXrF9gIRR zp_{9!)RQKP3@%W_SE`G9y1nnOy_?pW3=|j-tR+IKXCU+Y(F9v5vG*iMu%r=@f)tTn zy)%;W<1BI;E{|0mdYnU|Dlmp3lm1kdzSOj*d`WJ4RN%NF=(yl><!8P)DEmvqgh06+ zi3P>N!IpCqF_B9|SlK`N>uSMOZsqCRoUG7Bsw~saNO9}vAGYtu5H3y6m;c%|*q?`! z9ta7cZKEhylZ@AZm-`j4K;<$6l-2rX^xzw{*U54A+15eLt@;<NqOm9*Y`R|_Anh}F zY6dGt5BV9F*%@J93kG8JG4#S$(0jB-Z>43w;YV!BjWqx9yg@#AIGPv-aoVXfU3&KF z3NDA4cUp(hDJ@Mghsrb8hsHkK4*HwmF=`<;^PM#gHNj2fiQZDrpiFT{At^YehzoL- zH{To9ktGUID#?39TUghJs(E*RDCGpUefEHQ{$9Vxmlns08OupXi5z7{CJ#NSgs6B1 zAe--GsV(L-m;i?xH9SkS#NwatvabwzCNoED4_Hbj0t+DpNVwvZp+e&Mri(a7wU1wy zhy2s(!zYLb7ByN3O1IJ$L4%g*FQ#*v$x|D}fm`5PSckV#2)?MVTau?4O{o3)q;}K> zQdojnq&W^euwJ%mn@Qe3ymC}|oAJ_sI&Pd>Yp9=rLTw0jH{_$}KD$shX2D+vGO_#= z>vi@t*m?%Z%&7e@>E?7KYU)^LjSrRma-H1=j6eb5gv%i^;-&pd5xFdMPU+%bi#2r) z^p)&)1svA%b3IX174T-88@*@ERh`FUjjwoa=wtDfz|*TV**S4-x8%NIvIK-_KId?0 zE*%leUtT-1pNEiC*WYq%P!YlLykUjVmpTV<UcZ7JAVa4zf_X2+3V+mOwQj`A6(=bU zSDq|&Y>i$0^`6K_0{9fQKGjBR#=}<LhYta?W|p-B#>Q{JV$MRzPkvxbd#)LrI%anZ ztT;B21WWE9P0JHTYBdtSV~Z$(;BfY?ArcmA%Sus<E#{VZo;PPo_Hm_u{mP;@QnG5g zK{%Mbckq60(L6)~ti;Ns{vm0oi&Vkd-}4s;ZPTw`X!IY~*a@0NEXBTN|BhZGR}1H^ zFBmIv1_7}-JnpdE{J<YG2T{6I5T)F?pJsw~oiY0XQL^qYm<lN|DX>JdVFJ0y!BP5g z)4yAc01h+Ccmf>VX4tV)s^zA3Z)VS;6JU9_&*e54QlqUJIvs_i`g1WQ-OhMur@&8a z?#O*+5h}^gyxm%9FC3|kK^k#6_fe9)5!;{GF4}@TOFkI`KIioFM4GQLG%yd|<I$X7 z_fY=?Ry-mrb$;{RjvW{gnmpZf@D6)zxXg0F|IqS~eFNj{(W`8QRbbW!^W(2=OnxYn zFG8SsNHb=vDv;j#&6L0Ap|&*E#((YMmu&cB`=U+KDrN<QlBK!f8~6r7OVQ+I*M?== zppOnN%)V^Lf3e^=h@wvNeB&x$n&j-0aaI}=v~~;U_T^eIJg?pB9s@bOhm|qtyK(s5 z30G;hvJQip1y?C>TZbFYfK3*xWCN&uii4|z9KItRLod@!Dfy-nXytbeOPe3iNVHrq z=mcS4uJb;|*px-q>MI9}{e(?Jg$m`~srNsadsBtIRqq&I%<YTM#vx*_K_DK-K)FnZ zQjR)HU)!lQ86m?R8!(atHIyKRl__mx(lZ1Uk?%{^uom=QJeukyADwtCHA?FM@*pU* z&`T_zl0zwO8OLX4Wu-{Ik(2Pkl6h{;;GVsFsj9!p$UO`(uu;n*pWV-je<Os|g|(r9 z9lMBQL5%f<U5!si{z6(>ZVgUdBRFO!f#;YqZb@goVjRd@7e5SUc!N#duNR5o1Wk+v zsD%L*s4|6`vXbHCSlc^_4abICrsz9BpqNf?4qtF1?P-LT5(p;laR|LI+%yGSoP0>> zTsnsgsY8H!NPT&64&67pi9it;1hkO>_(i3AbeLEWJ{*$e8g4q_#F(C+Ea>JoM$|(P zI>UUp9dQNhimGE0LvO02L?;ar|3jO1cdjpqz0-o9+>FT#{_wo9#qs8UU&?Ztl0<^0 zW6YZ2+X)Q1>c_%!Tx+d`H7_s><qAuZxQe<ki(`7y{1>Iwvk){*L9g-5nkv!<!3jcQ zYLuVE+7&|92iGd!!>-^;i9ffJBrMJtU$^D+o%PVlQ;*U>w|tZm@WlItwLTa3$1;Wt z+80bel&@QPjO)@-eD<|J;!a7Kh-h_n81IV~i375|w59`nSL#^O?8JgFbX6;OV>-<U zFUL%eXK&bz<z>$iHC4^P0@OZEJJn3VH=rp#-Z!ceSHKp<wuW#2jk7-5G$`n6W9m{Y z0lxS*-C>L)Eh*bVfsa2@R1Vk$Y6CX39^?POlOF%g<AdKFf>00s(my-1p8pM-;mH1_ zX|+F;%*b^uG}P3P0IdL^?8-|E34-eo)Ej?jIm&mPm1Xx0yXTonmYf)Z*EvyCL9*y# zf7l3N*S>VO@8!_&BIu+Mpg#Bnhg#8kWV{c8#!xj|F}v(*=eIrVJ%-1>7w|e={{bn2 zYnM4h1t2>Oy$d(We+CadUVmiXJ@)C8Oe(YQ+aii5_?G_gzpp)c12wUru7D}c245+F zBeKf=!;V)zaAi|)J~<SF!v@4OXMF2Xx1b&mpT#w#=+c#_oL*9peH7nvAeSD~O)p$^ z#^#RNZ=qOa8PESFXvUQ|^bDhR8XtQJ!-L=i)~OB-Ic5oikm3Jc$g@-T3#Cy4r}o~x zmIi9EYCIc&i&SEV(4++S{5MW)_uub53kg_}%V~+r=!ZkjUYSG(sYLbr*$VWPQ}`{& zuusMIuu0F%_pKGY*>$ktq2Jc!qk(?Gn<PZ!IgCU7r;f7Bee)8!e~@!XW!eNOH%i*3 z+BL<dgJQ<dWCg#KlS=lapU^g%v98IUj%c*MzsJt;6WONv!eKm`dwCL^3To_|moMyj zmNgHZmbG96n+H8o&+Blw`Va^JYyF&~bCcTKE<Z7ZR&S^IWDSgo_yT;wNch!T3nt;M z81(4gb7>>v^TFMP!6uwB=|;o~Z&cW~g>6@ze<bo{c|u5E1F$x>8MU0%hpVY$VQUep z$~nVWpZ|L}cQM|a!%F#gK8M0rWnV!ss5S;bP-koz?{&(S9GgISjIiE=Lh}~GC=o=K zpnm_IqiVIY5Ved=j-R4Ev{|1^OrHHQ&Zq%AFu^9iAP&h#?&yMX7#IP8xqaJwXxa8p z;h{|qQhIXLHi)_im_lQ=L`e;%e52(W`J<`#0r|1xHlA+h<K$2>*(uK%qM8yVY6W%T ze>7a#W!~9C)}-yjpJ|rUX_mfgjL+iUn6<{`somwlDrlAbsmgLZ4NgSrD|g<i`WMIv z0IQ5b_+A$94@P?AOw7xHQgXi%ZQ9bRBLYZx#zZJ?B{uphG;RcZqmv7}02G$J5Z#-+ zv0}GItPSg}QF2l5<a;i;Gkuz(ALdJ`vM4hmLIywKD@!+x4KrfU);0y8jItgM_+E~7 z7HyeEO&1sPi(+d3#GegGP8F0|aCdr{EsZGMmYu|MUC!9q;&)GR9Koc;2Aw{j<astx zssfAh4+Fxph7(~wDEp@9g8uu%tMlap@_iyUO*&D-$L?V#cHh5!(f9CGAW}qbmBZUe zr;pnbFy0i*9lvACpUOHfPQK5bZKcA=&WpB&VYmjL3uyUG@_d1k(!lCPYs3-`u?NK~ z^#3Q6C`~{-CKAMsgtVC$Up)+fK+q6y`4J%N4=^e9#k9-)l-`d&RLoxR!pAxHYU$yU zCWtlwUaILz4V7qH#|e5WleO|a_F}Dh3EnOxSSB%+=CwaG87gaLTT%gajBz^LK<a5N zq$ZC6%&sD>gxpH-a58&r!zJx<`cOx0x<-zQ<&(wHH*Aau3=%O%IilKzZp&jrzQZ`s zCUG`>K`i=?Z;QqGa9cKoaW|?j8fPoXIkm>q&eOsJ5~JB0Z{_RA^Pj|S35)6+NkcN^ z>MfKvlo#v9Wh6srSRiJ8CSA~3aj<O>J)IC@iNSxS2d;S)mb-^d$dA^I9~?=Z05BOS z6XPPUjEeuXI`VuO`p<{fT_8j{5LlvT?G3}0w^!GiccE-LoD0PXd^IlqJfnW4v^^D* zqAo7AzK)fam63VKM&+itjS<$!m16X5nT~6K>{WyWncX!ITo%fa@+2uD4n(^nrOX6P z?{lJaMlw0<5k55EI<M1cS={m0Hen~JQ?QvRdwR`&2CiWysy^AAcLK<{Nrmc#GsQr8 z9R|G^ZSaGr3qC^#aI#b0rb|tp8d+$zX1VR4Pk(21_LF-fM?)KN0$Pq>l;<xV1iXwr z_i*(PuT}SCb-VY})Y9iX>9dJ?($^a-I$d?BwfBl4TP2`qp0ZSD_lkalGqo<OpI38Q zu+fD>*X*HH5VRGMUPN?~HnL79Aoawjaw&@Dc=k>+2yE?Fu$k~+K~9>s%u=`!{ycK` z$RRp{(Jxi-m@+R1f8TCO$Nu?d1&l$^v|AbAN##)32$H%mIeaUSqN@Bsap2RM_T-t@ znp6FsKY^4#MW*+{TQ^8Njm4Hu#$By%GP6|UK(eXIuR5vcp{xT58y%py5fW#Y>r9S? zD&t8$sO+tKkghI?GE9`Txh}RUwACA~s~+M$-hWp~^~wpWwG-9V_2s@Ou)o0K10YZa zijqTUM`x@$d61wG7sz=olwQ=W%qKQVepL)@&r4RkqH+wl*Cs<>?g<$$Db(rPaBCQA z@na@T_f{&j`!)BlJ;Fc$;cE812DYqoMFdS<u^yxgYgLBN!+rPm4aPH?ua}I@7N=bJ z9t*x$X~~56A}M1DX*HDkGJIhGpz3^Pe=S@#M>Q9Guj*JW1BXW5v>xDjEM9{>PsJne z1YPuvfd{lfJ!i<N`c+j^xruL2*3N`nLAUDCU`W%t4h7Pi+h4z>g=Wm)Q`?he>z^^e zFt`{0%xVzxhusidRiCTt10!W{ekheTV3dqCgD%4ngZOv>`|h;ajZjjCx-AAbqI~76 zM*yS6s$#RJ9*dyTVVZ>$i>_m<mDHIp1&4$WbU5lxm$F;Fju(H?He1TP3j^wI_^RW~ z<h9`G_-G&k8ntyk>j{>JG^A3e@$LyDS-$O|DsR_fab41V01xf8zpf(Pp2)HkUL}{d z0|Rp4g}VPBSMVi%(Z#mwC{b>WwE`32RM#yefGo=4`m0~cpOKqIAsVdudXv(mW*;1> z44yF)>?8BXOc{_Cp^7>bC9MdawF!-_K)wowQ0JQs);CN;zs3l#Q*40iRuf%8a<$mr zc$K4_zqpIDk6t#8Wg;TW_*x>)aGQXEnu3Y}0DP6w9=MaAGK7QbJYS+dG<-H?SZ7~l z_&68EJ{{1YVWzGjBT-UDbeNbWsqB%ZObF{g%N@y`yQx6Jw0KoR#T4AH3}HJe)?RCb zI2$)FQ3qjx<FE?18&}c=r!8B#R<)Rqps}W{_&(+P?A@m<Fon$pF_d!!Qx07vsUcNO zRbVQB^YWoDqhob=N6oOs$TguY)N1Nj^p`CpYwLh;ErUklaXTZ>3)7twF}@p_Cva0v zE=G}ld1zV~PHPI{KSBq$*+PEC@`4+I_e^LP$R%C5TLfMJQ@#CYj-9?q_T?Z$1RFC2 z58IeC!{D>&{r0ZU$Yz@$^pZ=Ra~jOA(dpi}ilSeqt_jfb#_F|SHx#9Mk8ohMAY?(@ zRAQV-uAY8=gL))6DSoFU1qqD6u5|KMZ;cs}EBM9E0u(NmJW1y;FZvhC7oW>{xasJF z*Sud8Z(0<LJ?d`m4PNIJ-rk~$V%%~_@^q8CVR-(;>C@n{hhZv$)K>W>n8nW*WVW6b z2qb9<Cd!5Qp2r5A_U(@oecXy40{|xXybk6@JP-~?F=8>ef<y@+d`QarZEx>p=3<x5 z3NAt)jUUsgMl#YwNmucM9ve$Df2BI6-xGmd0-x>L_zb}j?f|Hc*D!V6<F(X01?$B_ zjMYA|Wt(Fb6}`Plt;3LcLbgGU{h1!FesH}N&k`QDs~Q_mttk#&R0mDxLs8-0i^w)( zCNO+<c31|J@+FoTbH;In2b@tURqe8nhRC!9CxtC6PbV!^2~I?fzp&ADWti)}D0Wds zhJQHXdq8XaIi^W4UJfNT0EXE$T<1m>%w5=9^9(vCCT!Bq%8Np0Q?(t>F5-&@o*I|f zJpsiDd5X&s^cM!z9fp{!S691QlO7Ep-i3POO%=2d{ob|foHml<*|@$W6Ly>L)l?>a z@pQUDV@>4U!Fb5ypuqhY*@uC3*QOIX$^sQ&hi33tX7ijrF~@!d_;DQXGsIehY8ysk zGKEYzhJ2V)@W`RWgX!OlIsY-aw*z8<UcXxexwl3<8Ix<|rleiJP9En^qC;RRl=&-3 zv;Q6$!6^maFOW$jW}hv?6KAZalE*BVH@Db|*e~N?9-<ioI(`~igL6dQunAVA5QFYP z@ojPR*5)~&!LBaRm=O=UvJ|Z4?mA$h!RyXsx!^WPA3$b5&`*{(<Sr6FkKIX5+dmi& zI4SmL@@^JQrj2lxjy~~pb|4HG8NAz%t}~|zE)gELu4+_uW|_ya0pal~LwUyDE#8k+ z>(xJXS5qG?If055;X0RVr>BvbiAw*wZ$ZzUN)7$}Wu6k>O_WHU!h2?Dg*@4k8oc7) zm~I7WJSVuO`pp>R{Ar)YVNfI3YhWi{_iCV()IuLRhiwJb(~fFevT8vnRj(sO8Y{>D zz{Uff$sv1!7^@p;G>}M!4hER>$CD5F2T}{s_=3xpN}uET&^md|aozP)I{eZ#^n`zS zGmcxu150y8IHq;^LhtaoQBd~;bN|AJ9CX~FtQdg)OD(4$@m4HzJ_S8Hg8dfCH+AIC zyb)`eS{rnnY~T9BPmsqlbM9(m<Htomq7<sxk?_M=hQmOGEwNo*nM#UTrSt4Nr6855 z>aiC~Q&v3S1iz%*)1GKz)z~^#Y;os!VI8D*x+jkRp=dx1$mBit6AGCS0d@069i|~Q z^Lx8xvk;CU{|a^L*AE030)Zu|v!sgsqXp))J)2+WDY*OPQ%$9H+-u_(C)EPnr3At* zr0FkEuZDu-FedxxXNa4K$-Zt}guji+N6Ye&^i&cm40*aA38RZ}55jo;_SY9)-mEaJ zX{Fb+QfSbY`Os9Z2}ZR`9pz!rt_>G`qd!6WxHN=@sABPC`<}h5qM7pHNMv3bT(@bU zwL%(|nfm7@J1>cDm2F2-huUD6aP*_yf+TrS(K_&geF5VTLDu9H)cP!qk`yE>&@NbC z6)W)@g3B8e8c5ppflqM9;}U^`|DWYuoaB_qzFRUf1rfxEO-0O6(4ZSrjvt)3ZBIlx zR?5~t{xrFY+E^7LTz{ePbd+rYMT829eam4@(-#>)M;s72osRqNEY&F{|H>;YV!<*# z&-n!!2kAUsxzvn9locPQy!+qYssyIywjMx9;b`<HFom4jtKTXz9U__+%eVHaj_u4% zlebNFd)y5e30^=svHab_eYC%(DP~@gTAxl{#lIdz1Y$Rx+p$w$43p1jE%>now#!1H z(--o9hcN0yS>5FIML1#SjohQxBzAqe>T4eHO)&kMa2{3!7Xo%eHkD*c`N%p;AirqJ zfL463Q%-bs#^6c^CI$8?+3fhv*p*sz(QJD9x#r}<C8IrUR6VXb>6#sBS06JPE}j1K zk?1u&2CP2`Fw`fb6IBwMrR|ULHdXU9A>4)nAzUo}QL2n(s~qmCXg`v2HTesmBU<gN z{eC%bVw&T4of-2xEB-~pyK#4~qPHx7Ssr?V89f}OhqM*EJAxvl(3$c%VTJp~R`g}x z!<yEMA8^KH->rw=ST`OrpA@=&8*&u)?6E2_qcNE9ec^%C#MSK9FWa-B&W~@I0{u_% zf_OfrpW@ug#s@Xr_Q}w`g1B!j@<uG>7|~mGMH<ftMtmoHET6&>fL1c!%X|)-a$()B zu>8MW*Y}>vqI_ZxWN)$TkM%|w^*JlKbmBy>h++i%O@HMn!|E#YkqR-os@6*<twZ^Q zXb(UZnsFc=`P%j=U1(CB<R>%C!CqOQR6Ca5^f<Hqyzk`|01l>&yG_|6eHX14rkA2h za+r=)w*6a(@GzE|iN}hf_xTdREr-a8uF_e=!*j|)2Kv^>-{*m8DHTe&wI5JK&1X0L z-45{_#}3Ecj+(RX<;N&c*?~QdtO8x*uyAtmhyddsh~cXr1njDRp4qr@&tk$N^5Cc5 zLr_9d=5nk;oiH%X7Lwha{*>(ghYx+6Q`XnVDnopw#RCx9e=_haX>#6}1}I<1DD1I= z!hS~kF(WhPXDBlIOVbs|oC<=PaCoIJUWa69{<pQin4V7t%q7KTI!PQAu%2Wj7*j#n zwO`^GM({B4=4rNyocJQ_?5Mp7V!4aRYR%xu;j`O}`em$+jY{<*eWYXgGmYO|iG$J8 zY_(a+t*A1B^V$nF$Pk|j2&J<h7Arbi_Bv!-f4&hqK$kf{bu6!z8xr?yVwA!@m}<o5 z9Ygm$%u+htfHymiuPa6lisG)B(owC7=Bo%KdSv;yK45_fbzIgS#uVpLGsP4{vxsig zHxrzQG+M|jU-@7aEMYo&fYd>RKZ<DDBvO~24QS~A>%)j{&0uxIYnqO!bvVLQ)lVe( zfZPXk$7&TcOKgD#LM4yt<)K)l2Syb78&vuG*Oq#Iyj@2MSuq=hYGn9r?iIR)o&&%? zwAV4BpV0&knknduyo5UN4e~ZAohx$G2!?_~1tcmUNs$D)wsyDYa5gbG9I_DZ{nlA9 z+1+uDNO;qFq@5-E{Gk0E%$ZbaX=D)It3v*{>KFVK%oK77=hNh4=+-O|GGttKrzzNU z2U`IEW{9qi2rOC`DL2%(FoLeUuM>GgUy)IPc0>{=(%2e9hVXQ`n8H;VMmGc=arp4H zUyvA`mi{`wdU#GrYHz}4AvxL+#V9Qedi*UWYPQ_RC-Lz8WBrx8#Q8?=6FG@x0gw$~ zsu4V=(sWX*wV%CtQ!i)$w|}Hlp5&*gN<if~-Dtz9$}U&Wu(@l3B<MR34!XpnF-D6S z!eF9iiTbOA|Hb&Pm8>GZZY>FIq_x|&n;eZ#?o--gkU{V7m%GqHkbAxM41<91hY!Z4 z$Znd^VMwY0FCd}Xpwrd+TJm%j5wO`H`x?*I0Byw^XFvc@X%n03g(TdtI+3hl@16$j zD<2@9d2JVh429mpaWXewL6Z<!Pi*N1`&uF7>BQesifG%Wsp6wsNid5h`B*(L0Y*>o zuzsx#JHBm`Rzy&8q)zA4Khv0puZ##cL+go(%^a;z{fFq||DNB(DQi{=B)+|V4$7GQ zPwZ}CNas3uhV_}Md&iFru%(<#^Ry}2$_lI_=MR0>+BP0+!#Sl>jvYbjOCK#X-Q?ip z$?G*<{bU7*kXMi&@Rr?x)LuR6xwX(O{XW87Y&IwQoo)r=FYV%&k#3Ucbwyn&P^$@? zaS=ZuAL#6ROeR;v^;JQV8+7#arAcUetayD}#Gj&Y9r;!B^{_-$usPW<`R>kZ@Dbq! zjRRfMgxgUa%(~@{g9HoUj-H0jqn#hxZo^j~LBsUI*<=&BfUf_j5TL`lXmmlHH8(c^ z(%;PL?-jUO4;tVMon<erC4BMEg=f3G5kSY1A$}5>ixTLt%oE|*Nu{wkRLIzfRe&eU zCA=*&fL8SVOB$BE(cETbZ*VB|pLcqgS@4+YzKiE=Xw34A&i1nXJe5j3t@t+D1tQrd z)X_nrfyY1bz_X}gQ`ZhQi9Uo8smNnk(9HCwsPDJQ(3?vtk&07I?w9=-^}P5MUf$s0 zXT<nh1!`8}hZRdpz7WYFhGy~<4B5ewoU2ifQPn(q)Ybq2YL0bbac13s>C1yQ*xe96 z4NyGC%9&lWY&%fZgJ6pcb5n;I3g2g!70<JCtwU4Kzl4-p15Y4~QX6Tk?lbr8ltMr< ze}RKOD7LXBUkX{t{lg;eL|CPYukYUE-P@&`Cf>g@VZ~r^G~@WGo{bqo7{Rp~{PWx8 z4GG#T@(ZyyOhA-~VfDxk;(e>^+U$;4Om#yiG>Gl6q-^Xssr228@OH~QNs)=(g3)Ri zq{u$SQr0t$ZIs)1=(9X#H($V0gb0gt2ehi%*<5m7ZCHO9^`TkHL&WF{P)8&rW#Y0m z?|6N7*KKdo#R+>qO{bctb#YmwUeAsFC<JYE(WQL398q`@9p^bYHa7GNH4s(#Ezg4I zs$e;EfwKvSXg=h?NT&v%rPse70+^V3HVzD@c96oiVh<I(p}s={{xFQDMJ7+dooRUb zudKxRdqrfKM)ZTNE)9D?whim^#<Hz!)o5%rcJp&CQ9B3(;rt&CJLG*OURndd-HEg1 zVgnKluCQT|QLx8@`3L7QQe72I>B1A0PYdlT^3S!f&}!X?C9u`p&=IWBXSr;9chAOa ztc_V2ZA`trVgQBA^$xXh+EY*Q20(o*0S66$N33G`7e;mM0>LX^HdE8dxJt|KBDBdd zuQY42Tp7;9@&zewk~(abR+!7)E4>wPQiVFJ7F{vIhD4rVfu8~ZHQFp|x!5*+8~Tt& z1--m^9q0AyklapAmI(Q_LGnz^<1a&ogM2(=ytK<Y^WYz!6FuzgskBKSO5Dw9&IPZE z`SlhXouTjGBX8DmyG7Ie%|^|icr(gC;Ldm{j+-cG3a&=7X`HIncyJ^=Q@Y#xw0pop zE_z%zHE^1Tw9i{`fierzJ&b|iPe5!OHh$kuU_YE>A$v#uFXcaKzg@rCR7)d#8^qbe z5jBD4bQ4&&vcVR=V;Gido*oB<=a6*qhFy*MORMB>>4nn^PS-@!#mb-K{fbApk-fZa zl#q;r8va-#wDs7@3S!0Pss#&L&Y{>l8IE%Ot4(nQagVI3EEq`LkB!eo2L$@=N{nqj zx$_Fc#&Z!M^cM3$5}9|TSLEuB6`%#&ZSLDwn9*?-#26$}CbL)#EIfYv{Xg1#?j}@H zIy$Js0^ex}8#KtjJ90w5BcPEcMHDIk6+JNe?S)J-_g>ob)Q41MmnDV_wcNm4FEwnb zGDxr|X^%|#@>ROwj?nr=OEj5pnQC1{s;G_2GvW8ajdkoH2VH0T<#`~fr)yqvs&MNc zGvPPb^?misfKVYW_kSJW%H(~g5(MTxB-tg9MBl7@{{}Hy?<39kb-t+g-VGvnmAq9P z&aez4_lyU&zY7ITQ(HSW77i2f9`1sknY4PU;3q*WHhC?q9nP?9yOEF#l4m5}BO+ss zWF9DwF5~Z>eGfD^gZi5DLuq1#GNvLIl_C)Qa6#2Q)`4v<%&w26U!Oagedi^IY_{O* zgk$PlBN0mCMOYZYs0Oi<(Cdb>Hvv%LtVGV?iN$>BfkWBT_~5vt#bObg=~?;74*mCH z(vZm$J}Ajl$oqwG+^*;S1TD+H+(%`1eFb0ocAAm(y^VO~;SH4r70|{j_vz<j6fULg zIU7NQrvER01AH)rJZIXGe{=w**3jvA%gNzGjj;93wI@Wzzz^0h3Z@Dc9b7x%$S6~; zjQP>r?XtuWUpK7=&Rl<s>(uYzqJTx8X0(}xy<5=vlhqS#m*>f(C{@!aejJtHBRO}q zYd?@TDY??tE5vGjR@<(YAG>H|_-&4|Lr5B1{tiI0d1D2;8<uOLrf~4}%C<Rfjxr5w zXmHcWUy08K+JMRZW3v#5O@MF~e;|8@BEFGQVNQtA4V%BhqnF(1T4Lyin?v_bSP1`^ z*xaR%ao#=dSRg=bC?>(NhhG=6usyYHDiCo;Gt99McP~`wo!MSf*GwSB!I%8b2|q~0 zw$u2uV_FrjCD-gA9>7o1l?)#e=bDss)8Fj3ckFW8ZGEn!Qv*Al2maE?YAy=rW-tX@ zZV*FSYn+Um<?Z#x(^9U<&iuor)-dm>z)vE4?CtGr!IgvX4;kJM-jt8*623DuErqxm z6Ah6PaD{&0tU{<^KpELSd6b2u^w-ut=rB$H?)hnQ?4AXHoeWvJtdP;Uc^+7#>|Y*g zP#q^!zK^HRIV6rOE2B;e-E(unaTdl@phOgcqBrqVi%uH~c7dKd`S~P5z@|JNXU{ZC zco>wqsm;>tyMahJtFn0+gE%cb;PSWrRPXwTfcvL>8PCO*+)YPvLIHMhcQ6W7(xM&r z3{9ArMpMSBDmu6~>1>;g^IF3l`RSP`zsQ5Fm?ai$Q?<!zaE_SVi1w9q+(7(FOcK`& zNhVx(7$1b}QRYgo{j|fTJ~<7JGk-%fA0D;mQ(!BD`#IGVo?+So=SJZ6?#<DxoP~V= zVnpYhxnsBWwM?Z*tGMUgUiH#*#-7^m`iyjcR?+OdhX`vMI7Y(rc;U{ML}|-rVjklq zWnL3xeQ74%F<Fz;SPp#O_=gfdw^-0#uCYzSpx%V{Xv3h9nuQ>t(3@yHhRnB!4X|ZR zA3Ywy96FO#s0!!cIO^!G#C@1P@i(n|l)Pt#(-1E1HY&~sj&rR1cg4+cG|3G|f+rTX z;ocHGc`j#OqBh!w@!+m(s@C^<;DFf=O-IyRin@Ko&G&yK6|0?XuPA?0I!O?mczowH zqazTp$$EFf$r1^yHUdOZdL1Rb<)`e#KJhA?iwVlB@YBlLIX3xVIieb<Eo8B2a!&<Z zE`5c=hvIh!^ZX%ir1DS5?GQHlLr+&1L^UxqaQ&HhGVyv?-4>?TIHWB#$mv&1!(~pQ z#ayfHD5r@QQ$oCo*RJnl2?6M!Q3|u!7uO2<c2|o+(|tL@R`aYqI*tE7kSQNYls)>F zl|ZCcO27Z5*Gyux+KO~!3FWXSG+ZW8d#Sz2g3??-0c1s7EF#zVDK_m2)#w&1z_H0& zW7&1>qP{OxByPu$XCh|M@nxg(GdwQL{B1r)Ln>i6NZUF^!;C9u)n$cX%;$&vKHkgL zekZR^BWY;!@)-+&3tSgNubSefZHtL~9v@!EPPr9F`)tA(F-2e9kkw417ayUW<P=sE zS|d5DAXGaxP%lApW4CU*`okmE6?>fIbmFl<@1P2Xv6e&!^<1RouV%kLSk{_8e)JFp zBt(_fvJpc=C7D;>$nKeRHt_}Bb3S1#u{<getbH@UNYeE=cc&9i70*Ji(j&`=Lch<U z<TAF&WUBKBqR6NRjP5@<=x>=x4dF66AL&1ufDg!HFMu3v31K}Abys2(o+#@6iI{#C z2JHzsnc(8U$<@Y+P*&KW{6>S08&5}If{{@tN}76yEKjZe=E`yay>USqss_xB-#Do1 zzGF;F2U_jO&cQTU*4DiPysDnG?4}ijir&JJ-m2g>5ozD=u+Nn=t0V43uMs^)cMFK$ zGNJSaU4dM|BZ)SoVGZ@O&coWVkLVpKQm=U-p&fL21?nL8{?d#g*RVy19gfMF2yEBd zEp-HS6_}TbrlC*Q3)Y$YSoW!-M{wj3g<sZ&T_1>TT1!H_q_}<hz8W(u>uC_h$rI=~ zzm-F)iqs00arMR{PH@lrjDB0Dswg6T8^?n@UL?J;L7@Ls7}7L|xoPbFJC>s-(uvEb zecq~il$o)qXzttTo*ihzj%fq%2nvTJ?|76z>gguz&jJ<H(#R<D+_!F;FU2>hwuR$~ z)DCVo^S*1Cl$*HS-R*Fk<qhK7-Rg{V+y6l7W`etfmz#P}lNth5D-_QLJdKAD&9p#2 z?2&5caNojHbxy5;PDpN@E+@5z4}(fk|HkE$9O{lL8N}Qw%x79t^g`k%e#gZVx6(GN z+nm!3d(WUwCx&Z+uL<*jMtGy%atwNd%)fJ+Qr4aRy{H0!sADLiig39_9m!OhdTdrt z0R6i-8sAgcy0|8qj4tQuBR8YYQY|nj%2t7GO$8CejhYmFF{9evP5u62hM+5XU9~zD zD(yt+#=mO8HE{DB7XUO^ytcLi(Sx&6apFk0Mg~V(Y5q5DZjsmtyQN+M7Y$^cCbWej z9SWgVfsJx)(ne8i@BXJWR7}WMter8Q(^<adf&y(w9CCs2|LsnKSiBIg8!#~dR{*M} zHi2l~-5iYfs#Q`s##wQbf+nw9!i#j$J37NH<+oRc-|Wcdc>RaK*ezicQ}uK*RUn&5 zm0f`nN{iC@fEqe>$l_SX-c2jx+tF!3!!QjY60b9*x_DEmbh=dXIHYbo6Fpn+8z34} zF{JF*Y4##sDHRp9e>G%JH_Eg9qw4<#go>ywKi^2?Y7n96$TN@%n~#N9t#RT-Mk5sM z3LF4KK)k;sG6+3JEtGmbeG2iu$<;va-VuD5?S#7j=en}pjn%3-ap{wzA8kLDCx<-~ z|7nGR$~s7L4`7=6rHPA%D{sKVC%jAxoULOM2NNPdD6B{xi#4@(l)CJc5-}J<Ym}yt z`B>T+7_^%Cx|lFh+L%FD!Ng`8{c99_!B49QsW!hnObRbJc+Xf%<LN3N8=*g*QW5mD z@=BL?Hsm2Yc`(9`l^}fcK<E~Qs19+@XWYg7Aq)H%S3rnI7S#y1p5)IT!d2NHO5Ik~ zr6QN5x?#xTQ18h;tOb=_8p6Oo27HS%nrpAYc}Fif12@LQXMtnKncpG|vt4<1{%`(? zNrj{{ErKhhI#w{<G4TF>W_;CxpRgA3b_>kT5(CHViV?}?sRX|>(FrsewETii)J3a> zvx*v{gL`2ja-jQC8|YZwP+zeBTFxO;wT&Hfs6^w`xR)?K)i(ZZ5siIN=XH2kFS2dw zMBzho<HaqN>zU`~GGD;#=9y^U^yTT*BdZ^1y~DlcV6StxiYvED$m}fOda{iihueGD z764#aZ^YLVOQb?MeW$}Gmyx)LVEx*?yT;Es4bp2y0dyL25X6|hdUTATj`qD}=aEc! znt=$)<&}IPd05FQw@A-@%)8!Sd>jc$QQ+_dbSQ7^M9n6`T08g-CF;+nGOmcl>joWq z1jTBB_cYYBQ02$cdvaXz9IIil75N;otxGN-Ii2?GtxX&L9Zd1292@2z)oZ=Xd9;u) z>_vb9<RpM%4(}zSoU+Qm>*PrmlrB$L?aU19K<h=APoxc;OU)(55*UYAWZ*+l_Rbbn z4fvT;!EMgTKoeIXRc6>1QH>K#0S8XJMcb^A3$}zfyEHEzlISYZPfGOSp(}}wC^@jQ zfWfhJ0i~UX+>;h&t8i<9bOq<htDAm7+<=_#-GN1dMk!IL4T%ipHb+0xDOL+XTW_$Q z$3P=#G$c;Wgf671aasg50iyY~Z+p@ew7>6f%`=@N>gy%=3T&!~+pe6JZ_e48e%w=9 zvEWht`Ik73cwLV8u^jd8kksL*d+ZuK%UI0dky$1&t;3&;ZZMy$pg>S=0PSBcZ%6w> zP@T#ndg{LD2ArW|yV?!`SccM?MrUb1DU#dRj*5*r*pw(DamTv`<jIF>qN6VH#&L#I znBLdc_$}neyz;R|<2)|UP@ReV9bnpzSsVM_6Un~_c^~GVki>y0d%T-ZFfJK5vjo97 zhwZ~*T|an7p1$p12D2@`=>`mree1wKVLsY!2`)01KKj^4;x^Ohk-h#&T4mqF%oC3g z0<vEG4dAKjwpPXu9b<$?*}&M%SfG<gG`(j^kVa@+{gm?>PCZIeUn1M3!2-dWUQhhG zTSeo}(V9zJm^N#Z_qSU%g@LISq_IfQ;U#S6zJWYb-GLJzc1n6-4WrUbl(;!2DM83O z!<Tx#ZyY@5WQLO+R34N$@-#~5nRG$b0tC4{xcwC}s5(QxMqjtFT_Izy6&|*l_$Q&% zS-z^;7U%~I9#mbDwiu>a2D+*yU?vwccQRE{b@i3}pi{5Ou&iuQc9b#!z9Gns^*<#> z5pSR|l`ybP<-!H^y}MZ=-RLH*Cyy0V9)3Cde_PBA<-vbj_5-f@@RgjsPI#$t2V^9& z-q~KnVO0b7N+dDfSLl8^FEfXT4W28WZs7?@V4zm?5ZO{lFIlN~)P7KS)@37mk;{eA zn2Ai298vg>r4DoPqlO`{odU8ZmKac4x6T6DrZ<r+$cuD0f8j5TpGJT&>B5Ji8i~Kn zaSw%!J?wRxxS<Tq(;Qx^Lu^qfe2AI|csYrmAL`wi##sROXlRc5);D)cQt@DFbdznT zDh0Y#UYIteK9cPs)3HGjDupGVbtyDKpDqc*ZpyyBYb9c4j3YXINUd<{SSi?(4Pj;Z zs>n*P%1mCd0ii$pOW~dJF!Y<9i7{oyTo0jr;f(701pryLOjIN<kvGKS!kX6_w}+V$ zqFBJ)+2a!imfq5=S_c4WgRE?eP^*B6Y)|#)D};xnGR12>X04~l8>x8bJ%MLAazew- zVar|FG-<`~d^}%~6&d6E;CaBOts1bsmI&lu(vk#`XGV>7f<WiVFzbrUs)v%5bVKRX z1O9o9aMUB2QNYmhoZ5_3gy;Gqyf09Kp>p-#slC8*vshucahqQU-GVDwI`iNz10$6+ zCopz0T2RCxr{RB}K$iD{K5lzTv(PobdqLx;z$b%iI15D4Vgsx#Cby46`OV-=5kV}m zpp~uh&ZR42L)B-fH=Dr8hU5X#&DJKDlK(=#dPg9Kk}4^)+ytP<lCXF7T*2K125f+2 zggOYYm$^M~-)KtEeZK`oP7|Drf6t6LJ?5mZ__aZQQRb%1!F#PjlZ&d^YH%L4HE$B% z>#4)E>zuiejbOj8iBqRon8?OYJP~%Pwc?ksj^2O-6S-r|A`pIT2Fz>)w%R)Y`R%eq zvCA{k7592^WEaGiN)ynO_4ndd$sVNda~LcH6M}d4wCChXH`R!j|H$QAJ%WH^UXd%} zkM6Qn$7||QCK2aMVpnF$TF%-5@p=_!qNWk@y#2%phMdGe^WEBIN?_?ypX8U-Dt?oY z=jfa97j7~LC2oY=z`F~2060I^79O!bU<1$9@j`Uq0QlCc<KSk|2UbT%K*qNge}IBL zh)Jj8;aG?e?lFQ35?NTz9*Se@=YSiebE?K#QgX|zBSeHf>dmJ(e6IKhz|dZj0dzfF zda!M?ZR1}moL;_0Q0aDh)w$L3Ai9p{GOScmqq%X9$`S8arkMXeH(oGjwmyOYq2>S5 zG8g3$dq-Ce{5T~j>(<}J?m0WmutQu|%r?t-C-G{oCBz0Tg|Kj&8zNkcFZpepZGz68 zPmOHDS(CJTx|;Q!Fl5@**p6HT2eXk@-lky)Seq|uFSXXESjm`_LGBK!OdfZun%&L5 zA-s6~U6zCO1huo{{I3F$f*e*MdW0|q+P_lqEbG#YxtC$-#N^;_a-sNa2Q?i%9<eQ3 z2nK8vx?@Dw#K0AdBQOAiFDadEQztiz?hz9n+^)XwhU)$<9usEMjM2G*CjNj=mmTwo z0v6;Cp5(TfC+P?a>_~j4nwZhp5rKjECi&~Cpii?(M@6Fb;$PcVr+hrSZVLF=U7)X2 zVELz>5wH9q&)+6lyJQ99@($v-0?T1g%1!Tb2GeDVgQv}ger5eM)d-8omDNU-Lt9KX zxLiUdhqXE5tLZ&i5T=g41KgZ}NJBu3&h5`d5+<9WG*ZvB7{hp(Oyd0(&kIpq|H7hm z%XccY50)n@T#1}3r0uYE=?v2*%wigoQ>gt?;J{Fpo5myaGseFa-zTC-eXbiwh{q~D z2Ynd%cz8&CfPa=5=__oHZEiEzVOVxUic-!@m$-;g&{zL=5mE_Z8EX4Cfb%cZYS*K5 zx(fUk?58CINOpY4n}<kW*D`g%YtC4}tbXbiY>AGvb|J{^4|OcE;4qq`IvqkTEPlg4 zs88s8KqmPd<Wv+rz^fQU_If|fUSKA_>ZR7EK_euNW@{nzgxekh0RaTK?Kaqq9bS~@ zd^1}V+*QDLTnEzMoY;XS`VT6v%l&Wa73hp-h-CYCh(e?LRYr)<nRX{ZK20{(TU+|K z93Di*fc61reG0c`9@al*&v?w-qHAV%|J!eLfdR8<MvWHR&`pghI;$PfRg@*{tmDna zWQFy1vaJ&(85DPAKQM}2a(z;JkMriqw%%3yaQd-Vwp;xGItSPf^#}R@C7`^gIxhDO zbak0siI4VbDz02$AQ3P^NQVL#a=ii5d*pnPI6^)4M3s2KV`io}*m5%01x<#<m16q& zBq`!D+AnNBS&4x}wS=*WaSbyR_u;)Prtf)U8q4LB9CtM`gB)bICP*(-=+4Odl&Ane zO&K<uqq(#JCSiBQr&s7$FV9ZWognmwGy_^~=DC91x#;9HY2(4ycO#^oEH~0S<T?(= zl-yBoPe%kEc2`UoqgW6M&Dz|WIt6(3^PD!~jm9xh-owV9ZA(0MrBg<iTu!Q5-G~-+ zJgc{%3g}yd!ezXC{?2fbaE1mGU-?%%P!&Yt6p^Fp7rRWx_m9A4$==sZXa62!Z#Pq~ zkVb8LBXsI6<8S|tP*=@<(Kf{XK+NsoD5@1iyBk;poOTV`tm-u0wm`z(@t`Z{7U9`d zjzf9JUgXQyQumgfe0Y&BtSRv;Q-6sp;x<~yw+GYnxSw=&29%K~+kX|%l~2(_P~~bV z&{6*3eW*l_=`o4o{^SY99Dn7KEeB3#I|dCFLk{h^n5l3^%4#rcb4usOm)cMA`|#|O zjTb)4We=o<Lf;kyHYFC~YQ@mIy2-G^&&AIfD+6;@Aax1D<(K4^+DjI+YY7seO}C&K zB;+2tCOAMtV#AMM<_X+s0FMmGQ*y$A>1T#TYO|92uBHV>ySJP+ODv{)0{0Ph^OS=R zoe*D~$9r@N#*ABbirC6%p72;}rp17)eiHUk)Klm6#tvJdbW6mzvWZgUpO{B;{MJ~6 zgkN;4a2)n;DmLsvt*Eo7m<$I|+hcpc52ADQHB9t#AuR36oy?k@6jqA#;KrJPc=4F+ zwG*VT-VZkYumGd<xFrVDA~IWQ*YxqYc7Iq2QE#2K{TCyR;7*H`uxO08n+S-x*$7yg z4p)`uI@2|8!<D0yTDwpqp$;HR=&uXCiN_#nCm9JX^*$ss;yU7Y#WXqW(O{&n2RON; zcKZ0SQ!2NSM9RakOp(|kCbU14gc2^*2MJKD04F<R?3Ee``*8EU-?lO03-kCDU*&1i z__FfpBNNO~*y<nl?&aAKU^e=G5EkRGhty<(+&$8UYX?m5LjitFH2nj`@_I4<VpFM4 zdW+$=J>3c$;9!D3K4+Yf%%N1}N$dMF<nog88#R&ZK@o-Q=T*l=cVH<wQK`u&D{rD8 zbf65~`Nm7<kSEK)|H`dcyIVA(Cl9`iqh7{V%O7NXO~Pka$Kt7{@FgrsZ1EPb&GnO^ zFz&_IsiiC_w+Xp5Hd)a~|K8g3=}dsbFnq94M@H;wuSuTsU)G7d0X=VuBi8am*v<<c zR+SLgKcUDHo_JB;F*0^3`7_q<-OJ~FpWjBPT_(%GiO2!cHbbuvt>OHB3TpiJ4H1pp zC8TYb8$;c`sx%m@uEfp!w>g9)vEGE3St>kf@s@`T8Ao}vN0OTqa9I(h*|}BjW)*u4 z*PVW3Ud_w*c&(H&z|@-;tXTuDBEo#Hx)D1P=y<w>;-;pcq0S^f1(Ji26k;<<&U?w} zo;fu%+p&Jp8tClrct1xCJw5i|FV{i*Vymx!xFF_(gB6p>YYCEUZ;6jr6QV(@{M^U- z;$9mE;6|0+&kAJ+F0iplw}HStpzQgeL7v*HR9Y7&r#k@<ja}-H(G1F|mi?8$QtE|3 zIb6J-8(A!0O|2{B)U<D#1@QimHB9=HA`<nAArNZOQCFxMsCb&^gpR3s1@Z*7<(Emo zLK6Pu;UUU9Cwk|dlM$5fvB>;-NYIi3qYmQ!kxMD;+d>qN4r{yqN_rm{!-;5g?*JEK z{PA$Z|GV|doX2Ul)G<2^H1?;fD!k|l;U%ZEim<Ry05q-vSMWq>#qb;!FiW~on&JC{ zpQ2hWbse`T)Sesl8A$6+<z^OJw-}!7-)vzEd*VL6)h-cD-p524gYx@?4d&p5?1k2N z?zbH<egkN3O*{b2y=7Z!n&Oi>Hs>>Jb<hZ5I$N1b6R$5^_$SvRcrzXM?Z*1FxH$w+ zs=1kU;I!fdu`Y5ZNqj?<a+paixT!|uz~r&@2B24$G0V_ajDXjD58m@~m-tbSO~tjU zF}<xy5eiVNY+os+s`{FGX3qp6UT~DxH94IdfhzobCJAkT0t;3<<$(7Y(Vp>XVtWP& zd?N6f^{!kqg?pB~?(b+rl3Nw#x|hWDG;Pgrv(9YO)z}^RdyS`g#p)_zdbV(V0cBlh zKgAbM<j8OdO{0cT3H;FqNfYN*qWs_$)BS*)qEF(jnRM6#%}Ok$n_4>;b+5Wn8s!r9 z;mf&~NEKe=+K$+uY_@kioG|1@H-Gj8SXK4^0c4}PH~fWDnn~Hp;)dT_mAveuvT$NM z(@K~1WUjCAEqnfVS=a<~Kd?&wvpp&bbOMKphldL?7Y14ZKPGJf87iaBFjT@AP!-!f ztLyiUx2a>3_J%qHIG@^R<C-*_G-RRv2M<T3x?+XNOfS{*4Jj*zo=V3g8b?Dls-e>n zMH#rhMwBB>)ZBpp-NL>t$STASe?7_|MX&vZust90+DS!#K5e@~T&)?3otE_x75&>i zu~KkgkSk~#4T%vfMKr8~I31_71vq$H1vsQWvL#1%5+p<Iy8%gV`3&;AqB8Ul#~EaO z&8gqH`=D1zqS^rD5s_F<RbYEFnt&OkgW~Onh+pb8{X0+sIB_jgDqUEwup1Sq46{RY zkFY?4MU&aOTMOZ>5D~T3My2S*w%{mc4%HnYxbn|boh~V07br(vRf0I<)+9IhI7kzr z&D|p4dB*Z+S1N54i0(iwejXgsdm?{B^iR+<p?gS6<rKy}|KfJXeix%}jkq@T|0p9- z9do~q6}m~Hu8ehvfs+DE|F~Lh#qBj#VBs@)4U~RK(`j1EZH5B@&`)gd&67x1kE0-4 zp~L!+=kxn(j!$|n>ep_D$~wGH>tm+(Qw<2E9tI*mct-W+-+&|@WC~i^#*5QsiQX>J zJPG^HRkW<MO=XGht>Gq`zdS+IlrlGDHy<hfgMegLa(Mtj!;B!)1ob6D?x4e7j#^{? zn3!kE>#A^8J;q%}_354fO|$=Id6>=$F(zIaYxw!7j4C*UR70NRFEzq}%R41;wRA+V z$m*o{jIF^Eb-BTpw&0nbPCFU!UFZQ8C!Lf1>O{@6WwKA=8Xo1%eI7EFu-N0Kj5>~( zNnld2Y~+onDhD~(nhBA(ma3B+`4=V=F3NvvamWuNhccC3ZxE*<WiBQQ#L3Z=z_&t% z{<^s#z(W<CLvt8i{k~k@rMlt&iXKv4{9~i6>SFi}GUo5xN5&#!oIw;Q)J9Hxa0U*K zj~7Z$gKW!ukq^^FI++jduX&hBu*B4308nrqDipQ_*4d@QL7RNXqKhvt`~bWts%LyJ z>t+dZX?R)|wf7UCyDy4Yb^ALYmMdB#PaG4zMz3!t?eo7QBNu+rb3~g)VxKd3h#o>R z7NjM5Sf~$^Y+IuwL4m;Axa(Q<sTeDqvh8+PGfpPrQGCeFTqLg)VjfUi0kam)f;b9b z#WA}C9>M;UyJ2adqxbKPTY@_#bKkKzH^aUkN?@6MbggKa)H|9q$yCt>smB~|P&2HL z4pwZEQ@e9SIX))7{3v8JbT}N<C>X*25=%beOVB)gW{55M*{Z|OAb}+K+%3g2l{hLc ziCUPTU${FPvb6hYV*HKZbyNB3tm1xbuuuCRO`I@pLWO5XvCi1Y7n@~NRSLK6o@ARe z#%rv#pnq#Gb8a2S;-A@~yE=_x=jJe(x0k2q=KdH>MwZ46Hl17&-oGbE>$>CB1~T$T z+x06_0VW+FG;J@M_>VtRcDNT<q>ncY!&gx@xlb*{#TRwlj8W#S_ag6PdW65`gS6g> z`rwjSMF{oO1asfmS(dAg4k7;=&l|U3y+7BBL!znPv=Ln&&6P!+g*8Z;G7X$oZo7Rg z4G&6Aijv=6jswP2(OQoomO{yrEkE*NG$E0AK)GPOajR?~-fS0R3f*hGR88&-vdL60 zz$%}r*wQ?(?QS3!=J*3NWC)WMj`qj7J>8PUX%vH06PS-A-ywxrqKGx@BYs#cnV{E! z^6kq96qYzu3X=vQzFWTQ4KfLTfsrJ&rT?d3Q3eUww8-YE()Rz7IZv#;!Rb0!p{II4 z;(X(nZLi?8IIAexLPO=sm>dcRP`BvvSR>%ChR*LO5|ZjxxVSO=XB-L=87c)?t*+yw zo(8nDJfMH#)-p1PeccaRj+5J6{L3uO(!m4|SURr~T=dcu=7V^(ASPKRUwpo3e$rp# z;b#@8MV=F{s@Oy=9mgzJ2W{ickdR7(lcL$N*CO}djkE+zuz&kQZ{h2w(u!h0U?L#3 zzdy~ywggeJ>@;kM!2`)ob-*yN$|EfZYcuTSZXh0_Vm(JQrb&!|bmH;Dvi9k0m8*y9 z2DV~I3xi=_fsW@!Xw7FT2m(x>6F~lD!!DJ}zq?YaHkfNd7Qu8G@QqcTLs6e6D{-v4 zqzxk^S{PO18HrI)kGF)~{LW2UOns!X580=l01mUinygiG((ZIw!!P}>kLue@f-Seo z;uA%58gkAo3nVxahCvHZq`K8;nHdEoj1DX9R~PHm#`--dKD=)AH=;-`9z(L36!uah zUdt+LlWgFpqF7ZMJ+aFp`4iIqoBLZrpLv+6L=kYw-RK(bl~qi(JBte;yUso?@2L)_ z`EfQ&Y|9rP9dB|^M(;;<qC;tflp7bEGVp#auB1^aK*W(El28b|Thy;L9j0Vas5LPD zmhd<yz}}&Bi$=$~+{aJn5YOmSW1#dv|267n-FJ)n4NMCeTz=kCg`0P5CBVT6hO+uS zbkwWvj`d_a$!vQ#_>N9Jzp+dv4Q1|O-`;ZxogYl?47b16$@i`v-a!_AP{1B}P~^?W zTz<{u$!bxWJQv<vF>t|@gnCi?=-813*^fgDW7)?B#YItdO?~uxs8?j@fSL`zMi$e) zs`Jh(-8w~`K?kM@5tPY*%4@q~9;f>AF~kQGj1@F`#4DM+zDil2Ie6=lrv7cD%R)aj z`>IIr1bhdtWzFpxNrdQTqbVA{@*y1MKso~MdIhCCQJVQK2dlg#e*UA+E8{@n(rAUB zo%Yk~ltqxS`mYBwml_!KFypp%jn?GBe_F@;+NOtzl6~*BvYk{~0e=~&)PN+mlLW*I zS=C`N19)#PwN*N>t)4Iyf$Kme#^sV)-lyJLJ!;JGG1g>Z-RP5ionD>%KW!lOzL)aU zi-3JI;MF6#^-R(dX-`Uus?7;I7TDyDE(p`_=?xBG^O6B<B;ijA?v6`P0gxXXIok1o z+8I)+CF=LVrS^MYeX#q#=4H`whUbZ4lT+gvLaZx^to);^sJigfZ>!(s!olLf+DckU zSlB=@Ue|1ak+T`<KPJv{ECUDA18B?0XbE}F)j)snc<J1|hTf(eb&obrd{iZ#D*I*q zh32uG7r7p9GilC3L{JhZ99^+%pb@!TM&Gy1fLSr41lYLu>pS|A#5-vO#Zw~gu6Q+~ zbR^A~<c$?*gWAu>^)VBE7uR^RyVufg<iYbg6Jg)zdk)im&Nf)fH29PmPY8p8*PcSu zQ&!VMg5_Cn@j|67qHqLdFSWv!J@ObEBDUkSQc^#xs|Cvf6xN4}lK{%(GZ{hMY#1-a zr74=_>_XrIglszpJe#qECfOOsXLiYQW5(+uMq;%B`UE^>Zn+GqIjW9q7pH?iW1;FD zRx==T-!nyq(5Xedkib11EL7lU!C9*BmdS!m{O1nnHTUCr+ckWXlNWpa+r{`Lo<X(* zdomv$dYw(E{EaD_Z=aWHHtCJ=-^It>E64<mSb7`%oiX?{RRCy!mFw8GRf^t$%3F=v zhNxam3o0c63RCEzpz1aLwEr7pmFd{ADA+28&H0t}Zs~mtmwnd^ExSs~`99M#xz7XX zA0dkYd{nT;(Qc&)Naiohn5@DiR(;DeJ~<k|auX^c1!gH6?9s^S!+Ns>8`JZAZq8oc z>6)Td`>YR-tOEw6GosykTj<ZY@O8bPkr?I!7QdO&qgC}<C4}+GuR|XKKAJH>^V-}w zI*<eJ7qQbZ(a~iS+Lhow(0apXWATRF*eph#I5%JBV0zXB`UAo6c(n9HL&H~%$rs_+ z?UBwd!5<^AcNYN5ya%%KN3Ib<qWB<<&x6_68ZPo3TmO2q{=|RK5&dZ4!|||?u2WqD z7zFGEdHYa^NI(>K$>W8Ojbg0r`ezO-Q)p&TQHCzCre|uTs;m`3>|C-X?#=WbaK_|X zR_;mIV}1N)$^<I=Lj~^`P!Q`K*s#&{qzU&k(-kS^Zjf86@bQ)sbg1;g^ny*NFSxd| z?*wRIT5^zHLc^^_?1H>Lgoh`A1-Q3N#~<As*+$>Qri16pVjSGM%LE$pxzSl<2jrD< zZ-3Z!N`EoI&$I&0YXgz%11F7ED(9ufY#^8q`%}-+p1xPC7YpxkMK=jJ8yMMMWwLY* zU6YBZ4*1A6nNpEL>Dj>L;DjDQU}zbWOrx&TgxjSur*m)_yVd!?*UxKK{?fSmg6s1( zUw1`Vi~s%146=+6!E}RPwpkXMcnmWlq_nt;An0%E!{c@Scy1`<xpci6I@#A7=;8~m zS_<7KZqR-JxaezGS|4&K+eX;YnSw&oj_6x!j?0x1P6HexYZ$|u*>{PaEHS3%G4+En zLzKSMvC|mBz%qh!dnDnDu6kiR>?$b4KNUbD__+5kJqE^1`2;gq4)JJ4V`uJkuJ18? zxv4;HY}>k4VrEZcEN~R#vV>9bRJq<j%C?jyrG!!HGCTk`Q}F-CbXg$Xbfa1t*9}Wl zICh%sN4egA(ws$-E1X4Pf#Rn1j_!4+4+1X`W3VtS>@u-1MQXg6SmDDOML(+kQ(xSy ztl7dNe>^&i<tJ;B_`)uqc|zCcZboPmW}+X|O){8cox;7VZQP<)))LpMUuXFhjr}3M zlsSP@bx-{wx6520Yoqgv|20wdomFYCD8586zd@btTed(T<uo^>@{8HJ+?ycdyE<Mq zTa>(0Wyg1_6z|59z%f&R47PSD{*O`k7S4J*S%o5mmn*)^WFM=xAtbBW!1Cx^2H(MS zaeZO>cx7L!weGK|R68aq6aN<D+>pr#Sj9zm!N}~uw(3Hv?1EXfsh)X`?+3O-qFweZ z{G&3?CbEj$bE$siL05DxkBA^}$^cyPoc%@5<J^35_y<+-9(0QAOlui09K}Z%rhdso zj?i!`im?@3p$(H11z|6E#<nw*m#hc)<YLBo%Lcko@XQ|NRN3bvhVUQ5anB_C#qw@b zgqLU1W5BZbN@X3EH_xCqs=a>dLb80|M`ySY3vM9%{_NFXt{q7H_`kx~PY4H=MKbCd zpg@2&K;G1VX=F^pzgpH#tGJ%W9#j(_xg6jUP-*?!ngWmPX>~k<gyNc^fNiFpOkt%F z`So=~J_=~TPrA-cu?GynaWJ7<C>)7A&YpSee8$Qre&9i=5V<KMG34?Iw7q7&?8$mJ zvG@j%a8x+``hi(pLF0v=i>nzY8{@~6!6^JfyS#6z;5&qDgWIM<?XmL(T%-ZyFcT_w zqrsKM^BGSw?zKeFIbWzWDCJ6Rj-frU+#_^3J3w0RN;mQfURAphp^P5Hnbj)zJ4*q% zFFG3sP;K^vCJA!_0W`!W6rTs)^xcnv&nFls`492-1vbdWpK~Ko6o=Ey!okW=G!|{e z8tkH$5>jiWv^;M4#0CcUzlwK3KYipyI*z_xjaourArPjQp6XMGw#zwg5PC;4Z8-DN z0VGo)w7IclPgagU)7pWEgPY1ek&_@!D?+gnfxKywFFjMovghl*7ob1Jm+{I<e0H** zuG_AM|0T&(3Wzqj4zGQ24o#f(-Gq|$jBhcM&w&+E^uaoZsO&!e?`r$${1>#tjr;CK zfRUvDlpq4E7}Im*lZJ8+Kmh3NCz&%#fqm!@nd(<NP3e<q`$ZzQHH!Z<4IqElQ#b_S zJY^4P9uG%(W1v~R1+0N743h)GQb3`XC%h)L`f_V=XYrX94QCV4NIo7?02csw_N})8 z<d2usT^!Vs`|MSveX_?#;`m<%wm$)Kf>Gx@dQ>mv*JxK?dI4ag>Lk0H&SaeA<``=S z-aQai#wEh)_mXw4ayI;-gJRHktp=8voz>(}#xGRD=Rhh+e6_1ppWCPtkCd##Wkj%o zmP~CGy=Y|mV$kD$jWJ)WDHo-c{I;I<eaIhD_K^jsM$u!cA(mM8xM8S_G%?Ov@%35S zrVT`qGiHyY|B<z<c&E?K>)%YpseA&nrcOkq1&+Q{f{mwXPOFNz)^xN_@HZq?I9mkN z|CeQ|>_^H@>I%F3>&JzIu8LNJBRj`rZk7&WhkemUH0w#LU7(F2co5z;a%%yqi#<fv z5O(UNV>=dksT|IQL4M>ip}K%&i)5~3TMZ84J@xC#!N}9J{5y>avjko9PLU0j)8{=E zWbakzP`D;<X5qaVt4Y*u%Hi8`CYtCXvjT}zddu2=OJ}kFBPI22ub+;Kc!iqUHKl9R zCI-E(10T|4+;iwhjGqa9$&LX{R;bO4#**G#dW}BBJTh~kHQ;!B|A6>)V)8z!?LH^} zJ?^CV7*4MTHG)_u^Ku5Y$$plGF`ZS}8SR~%<J@fCvnpQSCc+U-Zmp{nFmi`OKX~~W zSBM(Vph=p)o!XFE8Vvlbk{wq`?7EA8QIbafg`QTgq)wp}urq_L#pMz&rt&g{o7e_A z&cc`odiO7?K?k{_mG=Ss-Y_MZ!Lx)5y5-h3$>b7IgpPfC;S0TepFyt4D<&e0{DY;v z;=hr{Duin%XbnW^^v*LB`+@J?^l4v`yH6wb_H6N3;pf@IKdyE&3v}ti_K8lR)?!Ir z$a`lM4bf<SifwGou~z~la++UZS=dSzxt4HBt5@dtM~q*79Y*)i*H_-+Ue16`3ATPm z1sOE`9Uco%(OvLEPdSR_MBkT9vYrYVS7(R62FiFM?EY_JGz)M0*v&TTypf$pz6GH? zHiN9=5SIqQcDjMag2pJzBpW?jR}zLOQt~I5ZszED$A`84v0gyw0}OlTNVOF((D42D zYO^@tcD|@U3^7kiu-Z)Q%6{}dB8OrilR1l3V2)=-MjpVXKmK7}8YTm4hJwUOBrjaJ zMbF<uOK2}qnyZgy3L?i;#+LVwrLXmVaF89|;M-4^9YQQGye_Y!&Gf`1{!Yt1gs-5n z5Y3#ySGZFIK24G9(aGKG9d}~8$liN_s>PA2canmxkt2iFjq!TQgc`>d^FS9#jIZvR z=_rXP*CcK|r+V&e6)We$2T)8Mia_nfSI=Jrb_KRMo^hYQi-y7hJT!eRJ`jFOCCV(K zzA^EsIP2!LV&{ubVm`AIG>!$)<en<}1=we4V~&>Bzqoyylt`EtggVmY*9cRko#OKy zJ1>bJNA5kI6I{uO;8)j8Suuvpjgj6wD#+kV&;2HpS$i%m8_P0D0>y#{u2*)QI$`Sf z$^G$cU+cnx=AVbS=<2qAyc}8J{yin;kP<!<rwsrVRtX>K;)4(~jOG+~ttbk<7>GSm z0{m;uP+0Ri5rws(ir+8`Uz2^T<F`tDpxv#@054UULc@}5-w7$+(LTdwcj$m!8NwpK zO5dH>=9!)}N#|uwE@TNo@*n@A{}3iwfgE+zM;%RLlRB@3NqcECd`E{y$`}Ll??IGh zwG64tB=9y!IJ;PAVF5OGAHIe02Y%dqSXpcWj~%aZ;2RlS<)zG}pBBHYPSE!}x@0)p z1$~WwHeQiko>Zo7hl;eKKn_?|#)<E|Xn=Bz?UeD!ka?s<fKqfxMjBq%$3OLbK3RC1 zuEoCBW!pjHPOL1O)1w3=>%pk+^Y{Za*0)nU5eGg<4a6<3V~c$`T}o~%OlWyase)B( zqAg<7Gb@vg@VgCB_B8cUI>Kbh2OS}s+*|Gs&h8FaRRQ;CffwH?B5?{eMk&;cKPL%D z<ja$Tyc3V_m9PMemzalg8Fahn=G#`H33Hw7IbB*-?0DrdnjeK56=6BFo^a(|ai=Zt ztKU->Fn@+wlH<5|AdPZZnO%X+pmki~J75;3XGr)QTjOv&v1Q0CKCl^RL_q=}F(0hj zL15&3iUMz~7m$2&C`bzFZON<DRDQRy)@4HHh<&Abj>Bl<E$EzP*J0F&<fmlCo_c}u z_1>V(bymzyNnMzQ=Kz{YQ3D%4gC@of*3E-jkmsv}0T-dQFJMqAWFxT6hL~so`{AaL z&}h|vAz1>)A{krcK{3SH9D|c?_>~NYHOk*8=!#Z)1;XB%b&C0!rB1{hJi_;)r=V4b z_QaItw*S?5goF~}%wsj-`?2R2H7kMOICD>V$$g63NYGO0&K@DSqi)DnK<X|uD|fo5 zXv^3^B~D*K({AD06zmVC_A;Bkm=-zrcH`~>OlN}^s;B8H0z+7rFN0+dnWS6VsPicn zGLHK?oTYgdyBWPMP28M@Ehe+j&&S3`3!IkF6wcHrVdWFIQllT!wmp})RXsSrx8>+i zXoGPdSG(qxMRCW{En6)g^PMGa!90;AiH}xVZ=&ICTf7*qne_F(6QtjSuJFU`U4!_r z3Z!M&3+A?dH%l2gWLaftN(hoAR@l7Y?ITaQGvr)DQPyft@aX9FO5xTg7*P?&z?Fg! z3OPL%x*lTWp5k#vdvRk4{D`HZ)N0`V0=@zwE5ZcESQV2=$nz4`OHI3C*6$#e^rTc2 zEtSO}ZMu@egqO@7>bNaLHZ@Di5X^yWe@#oRaJ4|v+@XY)9iLp6=SMMtpEm*Znba$L z3C86hUXC)RuiQXTRe@AWB(?W=$-hS!@ua!2C0Np*=b#SHer#mxmJg+!>TN`m6oKn$ z&#T{eM(`@=_7lgC20FfpVc<eNQVoU^|2j@Vc?Z8x2C~7*ZD9)yFfk#~)@|nAtC|02 z{h-th#j3|pHIT{IvPOK1&n^P5lD|6Wu`@Fi97$|E5zG;YKiz<cW|sx+GTABT*|ha- zi^HPWs)Fh8+~A8xQ<87;Q_5wofB<lRr#wVf5fj*i`BCgbX)Wol>EDI;ilEZUhAK^^ z*(KN@@ZUL&m{Tl3+zdln6N~c;6{lk0ijfSP4m1qj*dOyQ@ViZ}=b*1SV!B=``$t%d ztjpZoM;2?yh4cn^szSEk>^N{`H$R8|(@FYe=;bT`M2yLZHzMkJQu^`Ds04x6&%OqF z%=f&mbos~@LqbViHr9maW!k{FpLLHvM7O*!8R&Yk62~>G2yRUOjY5D!`1+*pubuH< zg{l9IQ`pYV$2z{8K&&7hr!9!KAB;6&nKb?7z^SkN!XboF`YbCrjiU1x+kh&5juTxu zrK_lo>y~aEEdf#@maog8-q>Yq^<=U~RC8CNjcgk~@9Vx)Qh3goZ8ZF0p=7&qjSkh_ zN_k1gXEng~ek^rmV5b$<BOjI`qVrj>!0dB4M2<J){eoIF<V(ji&$-z0nozExM1NOC z?qN#n-VwHpberIWxcBue8%V%w`mAAiW@0twA&tKn#q>9Arv<VxW!WOYb3m2hh5I*W zrL$#E{_4Dfr9!^<-t6z@YXoJ0VEogm+vo|%6R*ktkrZS{m~0;RF$~isNmn}}Au6o8 za_hI}SqSf}4Qh8n36LQa!~O<IAj0?%yksP4zg~yu%=?>bGB!ghj;PoAtioFyCI#Ba z@2BhBTc5%%zuP6sHxfrD@pUQkb0?=Jv(N;NPITOJ+is;6?WZ_!egG^tel=tOw17}s z(PyFIOWq@75wr(`n8<W89@(<(=Yl99C>A_|<O6lOHfyahL!%CkPD4n!;Cd`i^7MI1 zv^g1pzi-5`URhS?`u=vuDPPU2W_v*(?9RoqG9zE&%Aw)^VV2hBh60;Xe%@Y_xpv|y zB?g@<5>S4ylt(h9eDF$(PjuaT$v@TzFQG7<ZDMvB4`n%bgrgt#M;j1N65P}oUx7V} zwQjPNu4xsA82goo;myNHnp63E^XXKj!3cB)4iK=r3|Q(Bm>q&v4CRJ3E%l0vX}{Y? zoxR_49NYuyp<yZbU25m}I6WYGaPMtsI;9BIMeZ9&`|c(-fM`5M<Ib~bBrn7jQ#?ju zfj5CJP1qTqG))}E!`C9kSv?j+Se9k3&a1dqj2X|>S%qR7`>}81kG}^7{lAM#b7wSI zoFzun@b@+9JeAn-4_nsa><b?hDaZ4(wAJ^CGqpUG>gXv(ZEJ%jRyIoBPZ#PC`AO&@ ze{=M^FUEeX^$B9DrQ6uPt@)*?*R>>Q#~r5kD1C71nW@SPMiF<+<dPgs7kj!bztk9J zt4ln2(u?bW$?&*0M@urA>PrI3JE$@v<f;4Z+%lp=R%33u$Z;iSlVO=F1GiLH^U3H+ z)j}k?vo`r!#*l*W@M9v|e=P2RmzYRi`P36y)y1s<g`2H~|9o>j^mB@PRU9XF#Eapi z7uLSAiv4{7R3v7qa40&iiF>X^<)<T4UsW4Seg(cq;*n=fqfaueHUWkxuD(o16cOr~ zGTpv#LOKF8T*JYCI$S-{5(JHB+xD=UYux<eB_`Q|sVGj&T&|LS&Z9>*93|?%kp_7( ziDjLxHn#?e1!3)OJJ!GiFD!A7NIk~YZ}40}j#$~OKQ@<sC6g;+_nRNi%6ewR|Iw+> z9tH}kq4XTk7#Q41isV4B8e*e4|3d~j_MYPmWN24ZXxIemnZO_YD9!A{xiFEdRP27z z%R|?;b+qMg6e|TEeF~6*nvDf=D<+YWBH(2M-wwO^B>9#?XdwQ`S^8Wcr>|ZFa0B+1 z-PahNX)s@vB&*AUhaNad>5JV)n`V*k=&C051_rdGQD^))xDqJu0I2&EVi^{7C>l)4 z)tEy`gFR*L01R?`03g_~o@v4*Sev6@<_?I2X&*<FMrm-GsomqKZqfH6no+>Ab=D~3 zQfW{Al)s*eN-3gew~O-i^9ue=D^Z0FYO$H9i<KCsNOiglL&B96=4+u48x6Bex4(s# zyX)iIpHvwBJSU@)x6Mz#0OIy+rK^J&Zl_eDYVV2mX6$nXqq))7trv}*8?Lvx#aXFJ z3CwFEHDrjnDb&}*7FNuBKcnUW+S;bAa88{EdLhPqTfqq!s2SE&$bb$hvj*z9=k=w| z5l9#GWqf!L!{269s}?h9y{Ara56m6QN-V+IeLx->jWFbwsjrcISfl8rw|A=&Y$@te z4LoP$Nv*Y72nKMnviU&5Zoh{>^N*;eW-v~%1BRF4hUB%vpZT*zHs-QkKeY!kLdb+i z<yXGX)f93T!g<%qI+_B_X?bCw7jTNrXm-))ew)6U(X@AV7Z#k84*ghiik8*y^u(xl z-m_=SabPJ0c~4`G3p}pL0C9@KK;&man@j5(JdC@8H5<k1=y7dA<|UP{^^tY+3H1|u zFFN;|tQl6ShlF8@abcbJ<#IZV(vo$|J3#=?H9VHn5u1JOMhdylJ7RZGD&5>WC-2^F zgaHPdA9PA7>BbIGp13p3B7cjYF#^jZu1g3FP~p3iCOtIQ=n5|p_}+Z-wg0S7xj!Zf z0}QI(LiC_v4exH#Ik6`f7%urJyx0o2-sT!GK~ccmIG(5@%Kg%1xbA_K_>Rm7?iE@T zR*(S-p^tW(;SPxJxb^Q2iX6+k%E0jXILNro=^ie?6iSM?*oOt>nD#H0c=GmEV(y6? z?>Oy6J2h+m;ZF3k1L<(bz!j0-F^_?vz>dep%iOmlGXQKQygL^2(QVlU*zH{1f~qs| zvVMP0t~wIUVq&88{393D>tFy~O@AM+qw2B&T%7UGtdN%!o69VwN-|Qd9Go9i-$!yL z1t4RBZ^^ns{xVmD!=V8mcm7g@767q5p=?xjpKzh>PHVMthTGMtMP(-YJdYlb9GC4W zd!XZyhJ8-CmbT>V*>H8P>BoC#pkLfXNG!;&Otff#+C;yzG@VgqF0)$sG&m>#pm<`J zhhT2@5_4h>mSP@N9FXRFvWJ@=y!|9Nh39~M!mKY*3B0>nI~1%rLOBLR8EiK|O1m`? z720EzCboP#iWIkDk<zd3qApJD+4-gt(hZ2BEZh~TIT5B4I6RPrhYxIRw5KZnU>uNf zD9$z#oDJb9u!F|aGcN<8x^s0{8>46Tv8jg=uK)BJ(LVi-bg~SZs@#JX-)~(Q@Hv7( zIdyWJv}d|D%OS&6#O^E3go{50Rso1_$T*FIa6xw6Q;Aup98U!)bdF9C;W^1KPmx-) z!Wx^Lk4xv%UgJ5iFB^EWz24BGdzmedV}%u&&M%&BWJ{cXg@7J`5Ta-*wL>;UPSplO zxQ-2DZH?XvY7|0a6*6!lHmY9oCa8;thZBaqSb8Ei9Vieyz_vp<-c7Z;uO?$(EpOY3 zUQTr3Sn<!Asj^6qk%#Y~k36Ydj0N6S`GO&Oo^O-VHDV!W9^=y6z~HRs!#eW6No2{r zlLi-bD4KpXV_u~F6po@qb3#_L_E%T=?f9%#MJ|HPg`(!-Zh9;5I^U@g@@7~>xJCHg z;@v<=UJel^H*A=9A{X~63}|yivdjz*Pq|m8j6*GFa{s;kV@A&r&e6KA9QW9r?Gu=$ z+8>stax(Nc7Hz#50sp>u88$GHPrUyB-a#*wdb0wzi96<+r9=)<`9BogS2Abxx>DB# zBET7v*0;oIFv3Qx0u}wkl4CAL2qGJzu~%SYTN?~U`5)y&Tx?cR%Y|-6@Rv0i$@$Mp z*_25P=~R<_l1CvjlcV4(>%k4d`X_|?8S^i~*w2V`QkDUP=G5Xwr>bXt1}^#$pI<(I zD%rM<JImHO75<vN0QlY4Z5mA(e(}n{Ji+$v!(TFv#r74l!yTglR0(nC)1$8ke2x|^ zuE&(27lc0zBRhd|M<eVfL^Ky)4^3lg#edhaic}GIuLjOg7ps4RPkc|O5G=OYX9^<3 z?b4^92@;ZUK|mbvS<d>P6_^XdK$S6@SVAcH)`Oy14@nrypRU@3A9JFhJ7~jT*|t4t z5MdO%V_e7uzlaB~Hk7f_V01L!SyYg*eH!7E;P!Jje>Jv_lYiV|s@N-e575Q@d8sV9 z+<3^DIs)t2KIk_+zhD(};v;Ket`8kq<c1Kv6qK44gCuyNp6c+xYn2-~oEyWDyM=qT zSMNv*sagzgt2?i0vEJT=Ha9JEtq|rFj=BQha5(XC_os}u?KcB#11z>j_pIcBPPw*r z)gjq>FG4IiWXRi?h&1hDQ)Bzl{9D9mMhJruUNI}<$ydXSTP|BbwR5qgxdP!aX_S7M zu@8IekjNJ+W*gRnS|aSrc0BILqXzSCA1c!$7V$h*>0@YQtJUTvTmW3YOo}@vyXKsw zDb?I>vD5@os;|V2c_VoyN@B39e=uwIZRLfSmhvk+iGczGcFxzN8T^rtRhq4%+@*DQ zzfev3v(7+iqno^7V6Pj(h<I5y5Pp&eOrwSwzc$%`=}N=F5YN;U)}4hkQ$9NG$j}&D zTSuJLQOyS*4G3c<LyNek(7?%WDKx^7hRGVXe~6T%g9<A0oaziG6j4_70!X6hrZ7^$ z)#GvxzoPe^Lm^K_ba6K{1LK?}zuf-$0^)pl3IpKE=>ihJo-J>Y<>qy4-ks<8#M<$% zav=3hK%2XM2#sv76Y0D?#}BQ`2Z}{|Se}rI4Di&1+5i)*W<<3}&|E^l*y)hIxtz5Q z8$&+Z78aTR>>5*g5vtQW-1J$~lCO~|+CS-%!XBHvk$veGY`b>m;jFJ;*$H*yT7|wx z{!=z}4rmW33m9{3!nW=k{qA)(LT$F6^39~!Ay{jdsc<beTtpxT;y!wGafexgtkH4l zbDxy=ImHiwFfN$a^IXs=aU6RK;#i0BVV+hX%&q?|OjKDfI$f|+UjLuL^%lN0fz_(G zWzTcIrFsJyAuM8`)^B7#J2!dHcsUKVodOOwp!<|J#NUgimj_~p*88rG(=fd&IHf;i zbX{1#&nI?cq)bll4>Pi3%w{!*a__tV33$)S(qYkkf>c{M#a$D|8^0$m1&?EFpx+1Z zB%%=7Av0}lSaa!*EEOg=R}71EU|=*VPwxkM1oxomfBt|5<DlVEff_v`Qrd{vL(eki z{{mlMsfoYp(`taExt={<<;Z!v7c2p+9mtt<8qNKfU{$$`7ejD{I2?fAp^!ilxo4aI z0GM^iASNRO16)4J?%Z%oJe^C9WFHt6JT1FiG&62D*n#<aDe?@PC?>Ygy{?N{#%gxu z0pE2At|%JVc33ysgA%s@n0sJtsbxsAHhCk>8{H+8bU|QCPcJh^AqqEWJ(AD^B81%g zU4KarUcNHDOvjyd6QCEjymfT3a@bJGcZ5Sd*5Utoc*f3fj91tcU;vwoYrA-;nXSnN zIQtQf0GVgA%0$gI6zI=HvrjLA74D+zrawqfG=jKEcPwQ+GA&|Tp|HM~N=Mkx032OS z6+GmudOi->fz^Nb-6bU%#zZSQm#(<$GoWYW((<0c{y!0a>Y&wrcJ><zOmPEV_y1S! z=_3j*LOi0cgAY_KYhT@`M(S05!otD`5-Mj#LTl@KPh+n4nKjXFEVI{KOOekM820Kw zrln!K8;T%{-@}cin%B10e`4>*Yskd>FC#?$ITZ#QBl+etm5Y^H@&p})$mmHl`3xBM zs)U%8m1v2kNV5myo0YMLd=xxa4kecOVGP|m`wp&NGK|VzbO7yeKmY8O7Lhz1)S5A6 zysUHY$FcArpaFY7NTFksvNGzHk0g3=zUqnPS1~lxF=Cu;R6O71b)%DM{wiuilWymZ z$Y$XHk@&=uAcs#4{f;DI>fn#+vktCq1bLked5N!f3GQqy4`oft9tT63U6Z5!3p*&u z()?!e1!ifrUS<xB(@doYU4G}!P}xHY1@4fwX)e>+>)nPGbl?3wO4({!jcz{)6Z-dc zf0gMS9fQP2bb-|Yh2ni{>nfgja2;>LQ+oFFpDVh<@15UgH<mUm0yquR?wv>IF@`#u zxb4zLHz9i7Rp^ZoUktFfYz4C9g_|tU`>x(CiBQpvn)3sNd5a;2Mz}W`UpKedZ7DX6 ziH^6i)GSBoUGV8q_TLq$i|H(BPz2OW0yvwlr)GrjwWj3&=McFKkE*lkRvfOTbnbo! zrLwvpModfM5y}np(ML=!Zi)Sqy^k<cu0`wGZ^HsETFpj<gQU8UPCaU1nZBJa=2hM2 z?SU$wYCxf<PAB;k-C$^jPeFjfu-wllL-`^Q3qk*TMy*LW%rjc?HFFAVi?r`xqf@b@ zRQnXnX(YAMsY+n!NKSQz#GPJ_9!ED-v^;6HH#?2Z*Dw1A{|V0)UNmEt*rg+Dx)7O8 zHspUbp5Y&N#xt73s2y(5pZzI|NVFBdA|D!5l0zTpV}Yx1iVBjBW#tD+ve7@AgY34P z_r&rWjiXA?!@C*|QQ5Uzvkg1I-e5j>tW*~>n+fXIFDFw6;iv~sNw8n~k%4MA;fYE_ z)k-|}w-cdziMebE>7s~)KT5RYUDX$m#>N*!^RldvBO?%Kfe149J9BIwrs(ogb}gK? zs&uEk#g*;j2UGhH@qtOgb6lXwSd^n2<Ek6yV(QCV81EffF!t)Mo~-B`g&~>!jEV_c zFTOhQ!&%wo3gjRqmGPvZN}>nji3c*gvXXNrX`UsEW*8Y~#`ai?EnUUCvK`J=%J%fP zi`79Cc88CEworEMNyGHI7G997tYP**Q9<pma3ag_goiu2EI^8^fWkW(k~axPaX;0A z9%$v|jy%9ho~-r-VG?3E8f%k3r300{>@RrK;zd1}uIP3-#HDEtu(ZGHE<3e}Y&dcf zM`!Wmyl6tAG|DhA7c_Wm*dBjK;w81XzV(hczfZUQiNw2tv!Ia<DycZnJVPQsx_5f1 z1)rkUVuRlNniyf~Flv8K5${<ARXb^+mlw^zYbH=FuebDmv={0=NclZn0>swI7<;3i zox6<BB!o?z{mYRCH5{w)NO0Su27&?~WUtJ92S5|c^YD>`5Cjzwdpj%$3P=Y*q&KBW z5mXdH5+D+im_ijn!3rYwuBgxQ?7jDb*pO%MV#f;hhWgE3K|RB3`u^W<^w{j&?(FRD zY@40kTTuRHPnY*E$GpGB3+%YX%h+VH{+5xOb$4|SDO<5x_oDQ`3jNU==QlK7b|K<~ zZswbbDZjPS4TU>nCP$ezZ9KB+o8ki2`FDOd%I6#!wyk(ro1px?Cc>R}hq?6s!rHzk z&+>z%N1s8fR-G`gyPki=%EV$&<eY<TpFM0ntYS)9M31<_-ly#g60hAjf04bNd#QXy zkJdWrMmb_TzGcUKS8G=d{?z>1_V6}_`z$AW4?j4gv&v!G>h&hI9V9K56q)b4(R6j^ z+goi`C|=qh3=C`8Mz-+ME$+oZcTRe1*MxPcwJut5&?K+W5089rUf{c>d*k<R<9a8R zcZz7x<7U>hG}Al%pB8LfRI%Dl>tJ};owYq?B-&>?%o_1=-?)(-E-Y|dWcB=m|B_uw zyNkiax6~aZwHbX}JQJq3oa$X2;aaBmV$qW(lLvdI<ei>42Wxp~%e^CQIyN1=G0yhw zqu$A9R%Xc;O?OsZTF~|4!rTQj)GI<&lWZ&Qh40yFv)g4{_jPa6+E+Xg7@Rb`QtY?4 z*`eqx@ol^Fqp$2)I;`uXMzg+jD0~q9U^Kfp|Mc@U@mWsC-Wa)LpXom7#Clbu7E^!E z88v2esKu)8FW<~5+<R)f^NvI7xep`%$h|$OwquTJmC>z@_Zk+RTA!qM>+#iX12>+_ z{cWCe>3sN(SYMaj=h7_<2Ta}W`nb!r6S}-X`zN^dkPkn*Ypln<rOTQdiA&1!+m5UD z%FrJ(Y48NL(}WJz9*H==cE4regOT<Z2ZAClV5WQA0Bpg@%{$HcFP}_^{IcMX!-CA} zz4kjiPG3EJ)TibCnZK{?mcWj>^oDi!^S~(u@x~W})^1o-(YNhkwtAD_LeGlH?75>l zl{6@D2|eT!8hg)R|EzH)y$qjmcRHNhA8ez4@{DUU>+%mB9@@U#`%<`Ry-k&=^2>zk zHu>5XoHcXX-!>j<fAda_=ZN_0eNO0gUDD)1$FtER=dABz@T~D7lRIMuzhOJR8<)1m z)_=F3RYd9t=kas9caMH1$r|{&Dsj=7c@10Ly<B={Z}ogj{d1#-J+t-SlDp){vA}$e zbV|ahA~&0z2Mk6|x}$~Z<P5DfT)lf@SKbr-=ypRcSR7B?>)~<gjPuJWRWYZhr=RIL z%%NeYl<5Z!8&>q*)B5*)4v)v?`G2t6JgM(w*07o*vB!3-$+%ZjJbmOi(-SMCpYx}D zcq$5=n<bi9*!_%NKgp++RVS(+Z@;K>Wy6eF>oz?#IX69ie%cq)tTjvAjt&jc=a>`~ zL{xY`xfO~Pq%5<Udt2gHlVCfo!{(!`W#N}2)Vii2VarzA?|pPN_>-C8xUGVZMWK`Q zPgNbQ-aWKz%a#Qpt2{Qxc8Gu7vHQ?%zWeWIh&yE7G0*r-71uq2eIo44iL-hKH=P&7 zrt6ok3i0AUnrP;bc*ED|wvVwzFM0cwZ=;STmCeeT`>-Unxv(JRjc4$Tbe+l9@=fCg zjXQSmbn%6fvHj+_*k0NE`PtZB&1OwckKLKFA<Xak6ypsCI@{mhUwvb$gVSB<@*%#n zCbn^C(!xFCM6=c}9<F}B^zoc$)dKz*r9><3{wD7gC%MlaMd@@mloZdXY4+gSsBOm@ z*IF3PEeI`LcuCZERkPy8yUt(Ob|quT;(=+B8si$_q9;ckPhQf!$z9r`I<aZ$oYH3_ z2c`ZN_;kzmT?P&}EKQcI@!;l_JL;TloA+>n>9j!m`=Z?P13CT!9CmHrl<B$w_ZTv| z_syj@yjhP&D@QNdv83|!@+C!WS`QzyKC#uXJQv)@VLq?nkcoF{tS+}dc`a<+E*w5+ zv#Z)*jexbP_Vnxtlm4hpS<vcI3-0rWZfUoL{{C{_t*Q(xucO_Bg|oy>?i*UIn3pj# zSF3pFgcAu5pVS`hrc=Fc)6|{kH(7LZ9)JH@$iDIMhh0sS2|X*1-3%MIHU6dZbl%a- z?sh$5g39OZTAOLHC9^npU&U^|@u{;fX9lU_b?tbAHePAxELmE#;Yf>4$GDG=27mtC zr|p{J?PIsK&b`rS%A8ZzI$VjqdgXfQoM-osZ|`wnS4XctF(aSueph-lSNPuickPk= z=8w*NdG%1k<W?S5_lG~Zb1c!IVVAydE?=71!PU5_&5NoL0jcx&F$IkrTO2KI(0%Z& zq|+f=1Myi?5_iWpIe0^_iGj<q>XS<Gk=8dVXMVWzzCgc`Yj5$#A)9N@oq6c5U@r(c z)c%-7ZZ4ZU($?N0?b6H5`r(obTsN}=>cb76-pexRUS-{?*Mbv)$zP5|nYxw^*}P~< zX-nfB$9IiZ7<oTwP`$*g{ew9zYb~v&2G(#No@jJyWw}v?LB+dPMO*FM7H^y1<V^KJ z^`(bp$JW$J3tO?94qFuTrp*A6la;sYyInQC2KXtuZyV&l*17cD##`ax)68YrH+1GV z8>PG9Nbt+G^PG&TMOVXj74`ADG5h+669+9~-CyKAT_PK~gy(r+$6QZkS84n8#phdY zy|yv;)+zH5oZo+2%h@t};~&4Ve_Pmofw@PR+C9Tz!kKY*w%fdP&^i*(>PFK2ld?9> zGrJqAclR6DBJjiLk716tHasls<y0PJcwueO+cWZIuIF|o=kIe{Ja9=~t+DsuPO2d; zeu6`lMK|9>FY42)+v|&VmS;-mt{PYo`f9Y_GW!Sp3w2JJ#bycm?@kQ8(>r(9#&G$R z$=4bW>=Y_mdHBVpt*u+Rux8|0NBbSxsr{~Ish)do<9GXq4B~=`*N`?RJKmEY`dFYh z=8rxWH*WUdm{=3!ux94?rj?eVhLajh$xFLd;ubn|%<lbbjIgR@eYt17w~cpOdUffE zQ|<b(7jIZTJ>^_>tB)RnUKcWh=apLq`kNh>dQJ$*xiS83lPRyB7af)6%r+Y16U8;q zHSb>aw0B$SP}3GIE8`mbS-$V$&|ti^Z~vIwL61I1VQ+fNt>7DS!&M8NdOBW@czoqv zW#sc?#}570`Ez{Fo?B9%_Z?xj4_|lNwWXs=;lTG>F1G38+OC!F>=`aAqF#*6x?a}7 zbe!5CqN#b&hN^Yl=f1t65FA&GZ|J}4)fKnQ=KZ&wvv7N*Z=G*(XLb9PSl7Gjs(0UU zeK7iBd-1*4M9wnHtpl$v?bEOHribfomdK%3Wf7;!{$0tH){~kPxD9Mwp6}!G#B{rF zg1PkM@v6pmE3S_I!>ehb{mSFs?=If!*0S^LyW85eo-=stJd1OI7s{Sla$@^sZQ2{# zJWKanP|(Y2?(NH#Hnk&eZ5zPyc$SSFcNn#Q<ZqGcV{Qix!^ah7nO)H4Mh|P&^Lo+S zqA}?uVM7kHE3K2KFSE`1a$e2yb4whd?|kii*{m)-Mr`gn#Y6qOQJ~#c$AZFfO$siI zNT|5hrFU-c!bU^-EFQb#TE#uPPV6abT~@m<bbeE5H~oen;=QRLdCET1McbYWuM9uc zHo*Qy*5R&Co{w<sI&?|n&QU84w22oaG`(g&GwI{GaG`VNd~35~J%4+iTcUU3UEi)P zYabs;&rNXLvc9@Pt9|Eyh9Bpx@8+0YdNDNV*dyn4@;jRoY_=YL`1$Q!VgJ>44xU@R zd0*kC@-upq-$@nwkLllYZoAJt>#}&dRkJn&2Y$-wJ5GMeD6e|x_+qE2h5V&4{cc77 z;dwc&yO-$xio~~D_l-2(WZ)6!Ts6&6ee&x5s^O2<=`K-@8PL?E(i*$!n;ms;)?m{? zv*s6mG_KX_oxi@h7U!6?&wBBSO&h|kE?pd56VUv6Rae!Cu_s-2<(0c0!<v|+b?Y`| z5&ufYh^l!;FIn9)qw}6jxsl&=gppN_&bqUCf&R{0qPgDh(jSFC$z&Z&#V2RCD4Tl6 z$nRyo#PMLW!PSm=%Uin+*xD?wxZCLJ{KIPJbIH8s6ONSV`KQbY%bb{G#-8&0V8bps z^WIxnCVlj@GTd!Ea?OLW>h7X$Eh}wVwN?`hZ`~Pt+H(6O-H%iGrb)w=-+wrIt#NP8 zBfGMM3ju>xjrH{KYuWp*i(j`n#sjuDe%0${^vQ<<M2$8#OVBU+-0rh{zEA&8Wvh(F zuy1G=eW=VD9>ac^R4pi)+<sH|W-VcpOPd|M&t>k^PxzE+Q1ZUt<imFxb*NaedR^O8 zxa=+FvwBkW{+i@PGwlL%IqW@qZ};9&eC#0H=(WPANtd3VZG!$tuswQwcb9z*F#*f3 zCYbj>R$#Zrw~bYh%?Nk-1^sy6g<8(aJI~LpXjIwx(0ZHmGtQoBafschwecXwtk1D{ zHr!i$#;?W4-Z?I<j)ZK94Lh;8{mh|nY;-$H-Or8Ld^7IAb&=gIH{U0xbNU^)n;Jag zO5PUM*-MN3KU^4hN)c@mVpY1RxS(sVc9Pt-yK9bjc@S<NGjaYd_Wc20u8-Esv}qjq zTZ@BFrZ!L<xzV)a1+mArae9#h90vKkFjS0vaC}P>k5s&~^`~~xIVYNaT&r$!CGEI{ z`oYRC$-e5xHeV!HU1S$kbFS3#Ghe!^3RqpXOj*6Djalr>MQ`7I#B+4>Zo)UeW?{U( zk&;PD(;hv_7q@VfUz_GJ(!JM?rWp=1sya;dnZj9SH}0*Q_pGc%OO5(zttxF27`yXJ z-liLI_ecG%RT{A}(B#x)yCy@<w$o1DGd$M1*UZj-0by#L^~VR^5{Wv@6>&_~PbxHf zZMDzwM#+jcLgQMaenUPaEIIn{l5<Vi(s}t;_uB`v9$u|FI{xUP)2nwaUKIbrWL|b} z<-Sh--rHY)>@m*8|6TI9;Evne-|Q6?xUj-cy*qzy@{@fl_bghVW6-S8Zzh8WS6o|j zxpm0I`%PC_x?Oe4Z7jUq`b*mux6022Y<p0td)dK#P}hY;PJuy_+TF1$ueIuTQJk}> zBga>3^QY&PdFi1Z<6F%xU-8*8!$UpDanzuG=Vr$28xWG+)p<&YO~`7lU1L%9+})S^ z?e00@kFg(0CmEcKu^Jsc%C7Y8sD-_r#=H}HI~(PFEb4N+U1l36?t|_g-3Im=_=jZ6 zq*MDot?--L@l=Gg+VZM(kExg5wcoJz@VX}6c25sHXwtsfoNM~p;U)uCtastnUS05D za{o_9M@pv5(dsGl?9^u74pn|mLE9C=RxMMtbcTzH2Rc?pTHEUN%s%{ht4V2UY1NGj z+x%?e`!$^^%IJF8U-zl~s)u|n`E1_Z>k~KIoa8#aY|j;5=plRhkadvtf!loU?{lXd zC~%4t-yGR~NTKK9ZhCFruQkQX-9EY2bZRiR{Atyf24l^iBw+eMroJDwH~N1l_kQqY z@V<+wvlgvztlcUw-Np-Cae8lvV``VzvG_%g8)L`WG_=jNTe@J3{>{q4Egtpn72fq# z)AZKeeZ+Ac9>*+dbZ3T_UuYMPfCGz~M@LQCl>B+ny|#PbTCJVo|GU->fBV`?yvFP9 z@jkg+tk_}@I#BdEJlE89_9xw@ZS@2%X3MtS*}N_*@lxM(_wCo(-7_kmg6-2+OKck3 zn7&T7axIG)b}p@1qR(M_8+r2kR@m7w55*TOPYlORYp=dp*SRdJQ@8h*dW1i&IWuX; z+;cgRede^fe_(le=F+DdrWN2$3Hk|BoZn5_>p9nFkCxWVwyL9#=k3vHqMtV1TgS4X zL6^`D5nI!Y%AUo)opZ0cS)<}Xr88IfPWR^@8#g>i@6e_$xg*}ka15(O?rZl{ot(GM z{DiEF==6)=oh2O%4=GLzHq3j|$iwi?qu<(<SXEt;q>Z_qsN?o=R#?>KRZ9cjJZsYa zx%NSY-Tdkgemi}dW*?pT=BD$rb<M7GKJfkGr`_Mt`pt9U)Z&kGS9K77`0Uzr(WJHS zTpJEM8J##j_Eg5_qs>DnZvXg4Xkk@g8?B;{wrMMLs%+GEi@M(SpKw&zO~=Ox?qAna zO}QU1`NgtXZ8s*hOqwCxQB=HQ!@)H*PV+}S?(p{Xy5jykJ>$G3&1R4HuerhEu2`yj zUO4>yoJP4a+3f9l7EU9(j+insd}pJ8QChG2*tnGXmdCF-dpR~R-C^w7ck-4W?siG` zy|}yLSg<Ij)792{ujh|z-mCdDACn<|%O7KnD)gcne<(0C+uH9#l1n?uo?Eq3Hl!zR zy~bDe-gSl_IlpuEJhS-SdizZEew%4@`R0)Qd2O|C=G8>>TNpcEa{pPcf<rq$)i!)` zXIs0s&GQ=+6kU1pB4MRr`k3pV!W5peV1w!zrasFbHXhot>zAwY;{m4@cIE}FZtH!2 zaTit8mwQhJjw^W;y=FwV^)_=U=Z{$}FT9n!A3w)DWd88`>vq4+Y8yIm{P+(~dPUva zKK$B!cI+Q(M+79`-aI$)js3~c$**>p>tb_YNi(emJ)fR#bX;Vici3oJx_)?%JzOK< z3n#lg?>P=;!xp<0zs^sZ-G0iI9cLO}xgXJf{b2En7t4Z;Q<L^QywiT>w9MOWTS^ym zh8P#!jX2|Qe3f|@Nw=4tMyXqJ#~S(1zIFVvyZCcZpl;(uO>(D?(eAr-vRzb`>2a5( z=iCNcj7c+@Y!@mWJ#F74lOx0a(7V%pS?Jait=xJVe0pD)_St&6U_kiPjZKC|vZRKE z>t?KUx{}j8PWRybtA3}nT7_<1waYO*ZJK#y#>1_p?OJE5`^~wazi#3D>7h>#)hvx| zH)H?hpcT^R!XT@|C7s3$8_|4q+k)OTiNk$GQF>a1mrksCJuh<3^KOlHrTObjDeSoD zz=&ZT@bOX`Z2N9G$J9C`#$5U&%<s5c_M@Sm-QG0m7@%wZe9P7cS(l#d?VP>%qC?=i z5!=pATK;Kd*T80b9|fDN&zq2cxcldjnh~aOQ^eM-rQ=evW@mep`|XI$JuI1AaOm39 zzMX8l8gCkOUm+d$yY%|b1G`5*JJPp_RmVnmZxtO-?d30h{(Secb7y*_jyLKw{kNs} zL-j)SN;+UOj=w&YJ-D_|H)ixu??Ow9;AQc>I?Q~&`{B+bi|zCCOb!Nn`L5|JdHSgE z&a0Cr{XV{X*nZ=kw!gWB?3rS7b&0`-g%^jGI&8V(IN|p1_XCQus^)dQQ&#?I;^&j{ zjl$ntD(_A;p0(un)r~InY`n_Q{M|a6jO@3S4<<hi{c@>tx#@>!gBg!hPhRVFIc;(@ zVMfQRWsyM-W=G{L-M8wp-X_1=Af4(ARlE0L`iEjmFW=s?!r^lst0-5|H+x7yw<WeV zRfhcGi9=2I9lK^|zpF97aeBk0MV9^NRUK~EedG3q-dcOdfBZw%z@<slao;m(g>8@N zei^LO(>HKbTxiY)zd>PHrp?zcUK_o>=u`!6Z?{M}`uvfK&HntgNo~#K{O;GcZCcXK ztY@2L2CEPAGE%0+=ACb$Sb9#|W5|vBU0kp5LnjBcdD3uNQ|q;(Upd^GZv4E`vbAz! zPUv!Js|C`cOzr6oT1_pR96PwA8GIJeVb{%>-JfBbMjm;2e0$l>SH**0q+QU@Pni|c z_G+Q2-TnRX?fm$Q%F2hlJ6LqPkL<(l;V(T#&zARXym)Hjpjj)bUCw4@`U;Dt?r|Gx ze!y>Hw^k;cR<Sc3P9~1YZ~n1e?EIwXt69@ly714nJ{K?dO<Fi*mu!nz`|iVr4f*BO z3;pe5OJ`@zEO_qPX3aSLs|y+p-g|l5$Ob2yAKl+F>{38m@#x|&TV9n8wJ%Rj`1D(5 zrcK}Jrbk=cc#wQ$bg1k5;Imq`jlze0sq%ky$y0ba@WZ4(EUnMxO_9&a?>76oZIHbn z%A@a$=F9I@&TTQ*dB_(VhYfjclIIU{vF@?-+{FTyINwY`$@J^TCK>nEiyy$Y>NR2G z(Iq2|%JU|6^m5+pv1+#4g+5ko*LF5DT<Y68Hmqp#8Ix0u$E-72)MuC*zk26|AsOk9 z*N9rao_68)`{f;OpY6KEal-Wt<)gj;U=*O=pV6N`0j1fIlS5lQd6Kz&z5m9Bt)p*R zIKCPgBsf}M6fK}lzeC9&|6f2Z^*$Hk<<N2KadQy8Z)y5mn^ZME?wpiPBS4zUmxzV9 zQl$_}6LE=1ny5;GmzAO2b5XozRKO6S5SOY`;zbHvmVgVziDH!!z2fyF!x>TGXnKMq zzJf1MLGZ3!alQ(d%amf3SSH1(a8^{jrj*}{@;CaPPB_6<Ai))|K>nc8@E4_f(WwaH z(pdz*JSslz?r+?Iz>B3qQ98V<H{1+15zc~&&%wSeH3|t1i~3nZ@%!}+`HRNWu{m7& z*Y_d+F&!PvbiABnB9$VAGA3RvmI#x@Dv<?0Q6yExSPJ-xL|KeNlqiO}&4^Jd1Tj!) zN$Pk@fh@(sS|kuS*!1ivjPEHDIN8|72$B>ssm#L4($3PlClNY9rbywdV&r^<Qe>$h zY8%5!!pQm_N@eFEuw@3nohd)3k!C*sD!-=TBwac-$AJFz&&urwI!!dw(QfcPUD{V4 zpW23Wi0|F{!qakQKn17evC@c?$NiLBUpQPu$}=A)t3f3a;zGVkg!83BTqRBs(JfY{ z!1=gZDo!V`N)<mvj*`rcAj{K^N<W@2#386!s#MG6G6f<>5~k>sQQ>hayh_0rOHhv> zmde#C40}htr`xAoAp+r0D@3>m7=kW=3fD4{Ot(2jhd|>3nN-CWOO+6c>~8A12TH6k zcPgIock#qZTq;vR5;ApS5@HzTbeLN7eNmt&=~R4kD!x>Px*VlAUcv~B1KWb6x}0sN z;+Znjm8n%ITME83Q3UU5sBm<DDBw#ZP=;|Ka@4CiJFBH>3clRbEDnc0j*rI$%cP<> z95SmG{jw&CsvR1rwWXaM(LjZ21s|mjjnkX@>Flf&L17D(IK_XwObtE^^XgC5i;&7E zYQGKP`DM)g*ndd*;#5%#Vj38%q|#5K((eKd#{+&d@s@xO`M=;xEQP^I%9kj~t}Q)^ zET0sLzf5p-;rahj&p#HWEFnQDQpF^Q(?vp(-|o>QzjQym2zU*ECoUM3x;OL`5vY^s zj?<C>f|)8(BuHdwBH@2t>8PioDjs-3aGv5<LVB@>91Jso-~S;i8pp4=0pFLK7<fQ^ z8WVpIa9uUvPXVr{27ERQGkzNI>40yq0q+m^UK;Ry0gw7@CO>TekNQ+59u1QS&sV}M zfS6z<K*uc-I^!u~Dc;K!y1VrMzKoRuKI(;lkHZ7W@<ru}0M)TJJWRYJ;M!@xdjJj% z&9vA$I}7<4jNa^*<>ya2)M<mre9--65b$LC9bcL|T4p@DpJlX5i~p5&nG!?hlWvz5 zP+6$X5OCo^bq7rqW5a{yIv{SugMK3%dWXWGun4%|<G>phgwlba04xAD00%%DfD51l zzyr_)XaJxGpbyXxpb<c000V#~0EPff0gM2e0W=3_0niel6$PyU+5of#Xa~?9paTF7 zU<}X^pc6o6fGz+g09^r00n7lp0dxm22e1IJ1n2=^1z=5q4S+3x9e_Q61Arrd6F^S@ zX8;#~UI4BDy#d?++yOiQJOR7_ya9Xwd;$Cb`~d<e=mXFfAP^u3AQ&J7AQYe<Ko~$c zKm<S}K!1QJfM|dL00RLA0mJ|d1{eYm3lImu2l!=8=f^RM9PSyzDt3AZDPQ!sngBA= z1)kiW22`y79&&S0b^I%!IQQ@KGyigP`vm^`e~5+P(4YC2n;RPT@Bg9nBl`c$zuesZ z(LeJqH#d6VzyF8$j~Vha|8jGO#Qpn!DE)Zh&-}x%e=qwe=D(7B6zQj=-v1|LzRyp| zd+<+4d+1L|dc;r3dH<h~^5~zE@R*;F?;$@W+wq)6jdfZ24IAk+(9_p$tlNOyuu)?z zJ^hAU-3EHU>K%~#Pw69`f!+U%f4WRiD)jGPSw7#={9jpIz`VgYQS<tOiKo{WOgz25 zVB(R^p$$BBaO*Xi)?&FcW)UcN&&GsXG6v0nG0Xrh4gsprBp85RC!n<p0y5N({Kmn% z|BG~x{sQsB%;&^<@N)o<RGiH4a{<>~1AZRh(7IX8S7a#AAJC~uL>X$ON+m+O1TuJt z9}orsE+*>@trrk<ru;-9gWrtuqjd#>?hL;L<tN`_811La*^+us`+HD+s(LUR%1^IT zoG3rdPcO<(^TYHr%ViDX5gsOfE#OeOpj9h8QW5&AK!4N<_=7nOCCh>4%Z2jOe7I45 znol3fPxHl$-{&vhGx^&Fymi*VcQxQN$;+F1@VZdYX#LKl-yZPYG~inSUQ>Bl)r0p0 zJkqral&Tb=Dn+T13srKZ%EQyk+sD_>KcG+Fz@Xre(0*az5t03)q6ZA*#|wm_gv2EA z&}2!9R3;y$P^#3aY3Ui6R@OGQcJ>aAPCYGRe=dIa9`$UqX-4<{@`X&-*`=2&6$H~_ zu{qjY9UdARV2ChiV%XHES@RYxTcH4MUs|_m+pc{F+_+<>&RtBpnwoX%Zf;@O17$&T z8vnak$o&_$f0+L-|Lge&iDUrCDFPp<KqiC@0hK6Sg@ZN>ZCfPqQ(?abcd&>Tt8lbm zf;J%)mPB|{DcKL8Hi3ZNH;vDLJsxw|c|ZzZ+!9No!Zjp=VQR{cbkhh%P=1OHEFh(B z+oLYUU$*Fv=PN}HcCZEEU};6{KuE;#q}mTVOz{y%aD`#F!9{vWCf*bnMMI}rDb5tt zsig6=B#{(~O(IZBU`qqGo#GwrzHUZqpkoPiP=Cdw?+tid1KtPlW*YDl0N+*vz5wuD zG~nj}9@QW-U4%z<!o<(72S2kOItZ_c&Md$OYoL$tn!?Yn2fvcS)BBF}z9jALr}n`q zdHim}-4kT9zIeq|yj&pt>-6~=WKAlHMVoAd#90j^+YizwAwV*P^zwW(|B$P2m8?#j zM7SzR^tJurX|M|p%~B{%6)Ry!5jOcUVZIV5mWn8eBSXNxCK5zZx<Dj?{WL;gF^rk6 z1Eh)M&{r*y;ILsTQhpm-NmFD{`H>FVKSy*t{u!Ac_;ID^M95Tpk|DG~3mK`06=r_i zsQ8}hgak0&NP!6*9uK`3+DC;lO_E83K#=U~V3&uF^AnJf2g*5)Dn|}U0f`^@8UQ#n zhY45l6~xA>gb$R7Xs}N~?h^k{NE+zG0uGf^2=GC~h8=GpNSJpp>k5MXz=srYjo=9u zrTwe;!>IUyD8rP9XiA(}uBlW!CVm9qo4~`w=hTBo^LkC;#{eFcFWo+wb_cXQK^)kD z#EOOKak#13_j|;aIN8{paUg?LsL1xEhdcmRDSs={`|H}dlAj<-5v9POV)MhG0%^5W zlYH>0bUT7e<Wne8s;G>hSF@;a`cyb3zf3xvC^{k3rYJ5#d-delLlqHho=QYWUJx+j zqd7F<gDf)~tSCSXQGWrpPB@q?e7F6Mn<^z@0nxqSW|oK?hNqJG(jk1%e^GvVoVTO= zXpW7bALXalN1FJii{x9znS6HvTHneE-S5*b-T&7oN9!|5`;}tKWzIkS`N||*MRXSe zzML-*t1{|F`Cm2<NrFV;6|yubvWBp>v?1mq3VvElij3MG#{$#H@=YR257rUjn!>Yw zqZTnvwWRQLzTMNg1RhT#-QvAuKKZz}SSgqAGjMT=Tmq5`hAhN3t3m|UFH)HC@uj#( zp&(3CMCo!7*t`iP89fxxaSD1k^|Ti7?Gqeq1-9|Ff&`ImPurf3)>eE+8z%=xYa2UT zk&~0PNazp)6Db8OqGQ0SL?$4zLmK2!vnvd9Oegcxm*SfbgFfoV{%t}6nL<RT114TD zYAT2w+!87sqz^%G2ZROL_G!W!Yrt366CUAFcv`ODCjn^AfS}l{6H)%OpTug~*H(%o z36^4IEHWXACCpo(;7p~Wv{-1ZX3TQh3=3=2rkMQ80p9}f3XwpqP$I)bi8uwO>EswB z5~`(iWujglO%jqs>9`0sy5*ue+o-QrOkYv5loY-MjDMi-;1d%Fr5dCo5t(kmK=+kM zvMA&0=t>!3Au}n3OoG?Z#Z6<>XbaK;Io7^rU;+i^JTO}ZT?>v3^N1dYicQ;Afr%6v zpTXz~{>WvpBS#x<eq+)^2PR+9J~DrGIVa4Q>U?4$2!EX~&KxXC6nI>A+z+V1-=Li1 zd_sJGV3;7R=>;kE8s128S^Q9FTpC_M&B0Ux`dwl^0NIwPQ=~X0K)D%YyP>?;iY(HP z=FA8-P=2}}@Ig)4)SRH@3=1)mnlo-j2FGfs@U(vB4I}<%%8%wK2zbNE^k})JOInp7 z7a{s}g+~U*LaFemZ6g>$`RQ@^`}k6rb$(Bym<msi8^5g21@jW2D0Zk)Cbh7(w6b(0 zP0)y*4|P)esdS0SAMlOVG05(PiJuF2RQ62#;(Efb0z8`AGsCX~JgSorLMlwnJQNCk zhAC+-4Cwm%`73RRe#TQKBTOFX{s_nsK)c0-Wd9!wC5&Fs;mA;5^}EFrbqIQ2l}w}} zN=-pLG`<7{?fdFt7@EoaJBayr(f&_k{r|9=(=4J2=!ffuQB06Swnuv1xCkm7jc-hR zDd3xGz@G=al?MC?z$1BN(m4%yWY5LKo4`a)6aC(R?*ieG;mn`GR|$l`{}6zs|9N1R z*D^NDb%1N;eDkmTU-hk2NK)-uf3&}PUw_R1lQ(3=)u3fMKxcQt!3L17`y|pGcZhU{ zz9Zb+d`k}upu$i<xcL`n60YdfDdgg@B`i;Ht5W?Pk-K<W>lAR^@6EGX3~q7z!@Dnl zYiII0S>FrGt#r&d<l%*tTpAr^m+FO;1t+E)SmlMePL8`9eap+ea7%i-b<Mm(t8ZVp z+q$p!l=DH{(>1x?aDV<$mc<tD&GRp3c%?t`p3E{e?^b~O*t2c6y;>9D!^;1Bci83e zJ|hh~^mx#9zmM_7`yVQ;U->*LEa^F*x0!F}^}KP_6Jvc_NVT_Y**?{G-Z9^fcb1j; zvWH)KG`Hfj@2H@o3cjbU-yJ;T^n1f3zc%71uk9@s_-$C!yxZCGGk)#*%zHI<l#c(> zm_yIa1g`!MTD5lkFj(QwFR477{(6~zMp?@@7dBq=56nJ2ptQP4z=9aBnr+Fx0j0JP zPnL3r2gH<Y-qbaJLx8euQHk}vdjXT2kMl+hY13zpaKw>DZTj`u|LJ<_8UE-#R@u{y z{C4i_(_4C7BH3Kir~H`FxUsi7_w}f4HS}Stfqj2>4ZUq0THLp3(A|N(g@^k_#m#>n zl>NSM%65))(X}3d-Y*Z{z57rQ*lhjFc0=yY3T!h^zEs`rbl_xu!dS6_9rXIW+e3DU zQ;_1_q&tV>r9plldp6qjX>m}i%(6es_FN2FILp~rwYp)jaN*rmWd)wWu1Bw5*lC#- ztlx8bq4>k<;N@P|-;Qj1J9zT6bLz!Qnul!J5zw?CFfgQvQKKgp){P8lKD){ClWn$! z4El1uV&CG&A+z_5zP-)II5ek6*Q;G-Mux_Itm#)>J0Y~qe21ycZtM?@_vXBt)9iI< zR;2b;twG)Tr9>WTaw|QqUs*T1{;g(C>z8SNVAajt$NEVQM4!-Wj)fh4Zn?Lpja^vJ zwL4Q39mQcs2bk$LPF@(+?$Qp?!^LOAItQEXTT;LaU&DW~ws39laQ*D4r!6d$;UO_= zss_JX9xm8)DPH~NdU$*J(ZRYq4I{b)_S{mC<QHMNaO~o>p4k!Eho*H|6R<HN=GA*? z%WL-|l*6`9Xg{@WWR>rx<}a`Ii(K3??pk%&n8@Sp)6cGYuq)E7X?NiX`SZv|m+W0X zpX}1#FgWj|tNWn-Ck)OkG~rF||9M)epH-hD{au~657<5LL;r-%O}D>ZWEGYBw1tWC zxG<`+YJPR&PqU*6HynIz*1ICAda$i>a}Xyw*&Zu4=J$*~;)%Ty?~q0BGRt+keRfH7 zH@lM3D`l6W?LGX{n|y3E;DD*c<3}-G1D-41E$w2LK48tH)W$tL)($w?YNdEj)$IXp zB}RvzEN(F{q^#BJ<pn_lZQ5DA_fH!&a75?fj%}K48@Rw?kaql)Cj&>-Mtf!RIu2Um z(qr1Z3H=8ZHgMVDWl=b2=KaIredZk)<ce>tiebMQ6tv<_N4xy)F;)TP(@SjlF~hHV z?DEf<9y2J+@KNiV$73>-eb2~GV1uJVZ*YS?+YL^+JKew1b?D&3YX@7bPAD0yZoS1R zD)-!AL;h`UN{Q}}Rl|cidvn}}T(}x%5vi>ja?)@|`bzHaLvo@XG>`PZIb_|8P)qxX zO=Ab`zMC;h?jNgoJh<hO!V$4uH#t||Yq2Tzd8}^o&Fc?hpKd$h6Lr2_+^evK1^t(X z#ck+1)^c_5SZE!l&QTrr#Ia@$$WOI@5qGFo*5%wm6aK4@CoIP+WBBRWZhP#@Ci5@E zOfvU!F6HanZF+mQ>?40HR*{)M*gF1qEPwXB&7$~o*u5|9JI;;I$E#z*UsuF0t$O6R z!bV$gdhtD<upDQ>fzj)dr%sX!Y!c`Crf>R9@Y&rnx_{+m!NMf7xAx`+!qS5;RbGzX z!t_m6VMaa~!v2-J69&v!Cv?zvsC>KUj?in8*Cq9umLel%MDW>5!J;QeUm4{4<%z1^ zTQ?K6+AiX!j~KYO!!wbq-lTUI&UQ@DFW<QJ<hZDWNh4$Lei=G3;r;qu&u+#aOmLb% z^wG?ZZxY6MYv0S>X`XnlPp5T7ulR}M+dUb$aoCK+$DNlyZ{O%-V$(EU)Y)-bNf)Ob zH|IUJPipA=$?>=-ImzGqbNqr1i;@PO-}7;F;`yWveb!_q9%vw57rc6P<#u=R!1#+7 zTRu>UpF5vwcoSbKzTjPwR1i@q*6&~DxmIj6bW(EW*;e@hLzUbC{`kF|p}gN5E$pf{ z4Q()Sw3F83s-b~3%f=k&(jnQZzv-)4Y2nGcl5MPWBF81K<mP<3F?4ToH=%6E3D(PG zdsjV&5r?`;M(GzF8oYV1<d36Hb9NR_k(9nKb$@7gRN}b(U2!MYCrKyeT<8AAHYtxo zJddsVJt5`(ohiGTN6br+m%G>(ZT=%g|KNm!8;rTqNeT<w_A6bavlDA?hV>aH%^CS| z=7V`lr8oH>vW+=crRLeYpG~`MAWNN>+|9X-k8D~VcMC5*Q|4;ed6-Z3dfCb5DW_)4 zyDQ6yDa+k`sFnP5&+LlG)}eB*ar3+%<N5N4m4}*{nC*~1oMtyyrmU7XxsDy^vZB+l z{ze|wJ*GqtOCB)!)6T6$!|q(nykTc^XxO!ht(qVF{B~IQ^M!L2pDh&U-gqt2*%z-E z|7zO!W73(5Rn{LKXZ1Oy(2E_eoEXefo=P25VRhR<IWj`Q*)vC?tWX{8xV3VTk`tD( z>Q3|p<(OqrGul?`sf^0rTpy<PP_@idMV6mYs}{`q<IzaJRVu-kgEkxVZ>f6iQ|4R` zX{Od&7kcyDl0NFhlqq_mWx4A8ytLrYr#GvgA2+)FiTy}@;d9`c5uSKzVegXY_Tdq! zJ%Y=g-Af#wx{IGV^yYzmsm-zr7k9t>GIij*9tEkVP1EFgA1xx-v1ukYd*&I%Pfc4t z;>n@e&Shya3m(|H2YgO@f6&0V?5R!q_LmW6&c7$7FSS~^Y24KL>4`)7$nA%pN!NN4 zbJDYoPR1x(RZi2}y)vvzR`dvLsK{_Fo8q#tcv(hJW?F-zcGoiGt0yGXmNdyMjIzje z(e=%gt#OK*P>_`=l5`sG;J6_($IrYCXY{?yAp_nT``mAxb#<n*{o~W2S!Z0wv+lD; zXZcR-o_EuGXI7xo#|?VPHCeIT%mwA6I}d*|wxzG<@&Us?M4V0@&nq78)a_8|ss@LL zAAP0V-oN4d;qRUoC#(+bk?k_G_5S23g6sya#_PFhv$6vV&0@-?m1nPiJG<wnw(Jq} z)Y!OQcO6Htr(!GnUQZcudyspdkd=!^Tv1fCy%TY9MDZlf-8S7C=Ip#YO4`raGsmpB z)A4&{sX4Z))xA1ot<EVadp!E($y+(}dXd&E&~EV|@?0N&kaR03J>x%EFa2AU-&frt zC^aOYO98DHoEudsM4}ieKUIu$RCNobsfFY^3GKHa*bWa`hcofh0Ecwp_2zdIna}#( zm(;DZk=4+j&}l{L2kWEbUP`Xl>w8~9z5ib;=Z_P=FK0IvhV_T?Wa7VQk?S8&kf{YK zI9R9<^Q9`7ofnbuX?>AO4O;52ud(&idwO31^rT4jR2QOxdfyn*L;%XeZ>Yn$N9sMj zuOb44Aqr<OiA)#Ns05_&iDRdjDTRmS8UacX9M_ZzMD7%xZU;0UWPUI#ntD&?gFIJB z9-u^o(y8|}9~7T(ypl|37WJOiyAgI2e54d2-*0EUCl!r2c8S8%`!HWsuW@lGW)1b8 z*1vtE{7@YPz=1k)(}+;C;&FH}SuXVc8#6pQACU+frg2pKP%1pqi6LNyj|V-K2(}pF zh__&m_!r@k<{6aL*m^1)oiB5oBv3}-LCgqXrpNS?O5Pv&!X}gXr1hZ8c)wQfNT?jG zZEcAi3!#YG=K<X*Y^#C1%K4!3CiCM&@g=14cN+u_*)<}0;p0?k@+pluLV&&(PDIiw zbXyy-gPqz*ZEK@;Kx!Kd7m=Gj=;$&|3p08#h0H(tNdV=i&j(x65gGBE7~$ytik26; zebnvOQui7#-(zRU{;u*5(rrKq{t5<Pw4bhTy8jCkDb*4c^V~AX87RQ1bIU}wLS=@8 zev_HL!6h=?UsliP*diP!C(buJ5%nC;7bL^Jia-=YA1Z>;37<-qyPPU^bcPb?g~B4k zBVv6$0s<q$d}2L4y!u9jd3gB{*g9XR3=BS`goYoZ%b6nc>-MwjxQ3kAS~`#-3%f?> ztUT~vMe(0RC7b~r3F>>-2R0ze*_6W5{Do5GTzQi$?_XAb_kMBxY0URm`>@JsWWCYt zatGwIJ3Qak3CcR%9_akjuKN>`-?-<bTfJ}3FB3hDtSd88;$;#rQu}688Tgw!oy><6 zF$<6i^@s9-699Y6GsyRJzvxc+iNNrO?jLAB-7aZAJ+9C$PQ74LE@_<s+BpW@V#?2? z$Mn<b(Bn3fK5ju`nDlEX`ZOQR>oAz<F#U)sN|TP?OD#>7!VZ3Kz#)j9NtPQu4mKbQ zl==&sdqgM<%b>#1{SmU8LQq2C>2gbF`0JCaiua^E(eA&UTq{*VayvakDu|K6gom0* z*HC-}l5ApJV9*AB)9v_g+#f;rex#X!GweshW<3m9YAI}Oz<dRnW}&^_|F%7#StE5< z0?Nv&S!8|D`zU<?hw6?pedP-TBBc`N;}J<{{{;_}L5A^gl}rJ*(~z?|T&O0l9D+?` z(uNF~ub{~-EK7d27F0y4F<?u<myi{aI-BG-1Thbg2KCSyTv{#&B>bV}r*bJy^v6FQ zeNjqeD$7KX%GB(?EpW2$Y&(bKo9;J%2ObH#_`iSu2vPPiVPKHrNsp*OYS_sCkH<V= zd}5MFLRxEL*flC2NmN0*K|!0tZzdku?;2~shXKAL;AyHt*p>~?NbwV?$QGnTzVPpS z0Wjqg!{t_)q9|l`C`gXtOOjz$2LXK*vJ?-YPysIp8pxWj4u^u!!F|%{-~m!(Uf=~5 z8erkgjK_GXf&T@7gDm{Ky$)KS#H5H+Nird7j-m5N`3MEt2#R6gK~q7}Ml)8eN^o+< zrC`B|<7i2wL`IzCJ3O+xIUWxtA;>y5o;3Fa!zvt6f%QH`m+t3}Q+~8(iQqcrr^hoU zALD@!w3hpC+laDmkf!B=zNgB4K3Ogbf?Jqhfs5=WX`s(@(e0m}XV7k(9@+k_8j!95 z<^Q)mQ+@VU1`EFLmkKF6DJFgv;EjNJO?cE^=zP%mL$ZdTvKhrcBb~M|7$f^9ONk^k z#qyWc5@GgcA%wFI(nJY4nYXbf21aTsc%R}!OmGMGUErdAn2AUI1d_eng=G1_&+mXa zzhL@t2>tDRBQ7BYRy)MpKMqfT=8wmPL(dS1jJ`xd-xQUH5a#G2So@?w8xV@Y&<pHc zgg@}r5DFIAwPX?J7f72iVi*<)v+D@@q$lyAyA=ul!6;AVuD*Jt?c;v6{1umcFMr!0 ze<r}o|A9oLT0#Hyj!K^%7tmZ9)jJc9)_9umHuc~K0v^@VxAm^Xl}R!+7><KMJ6Lnl z*Mp(+0LWaIkCTCYiF@ymEI@oFAAJFb`ZXqg65vo@$i$BZ9FlJ)egfc-PEM|tW}wMi zmPNJ|cz+0o&eK@~{_jo#ndw+Vd~^<niMIp1p9XwCz@vQp-SnK1=ET_<wJ2h+0jqLX zoM=OJmTl<R06Ga}P1rS(V-E2Xj!M8pmb7Vnx0sZ}o{%;I>m{TgwP6JIlpoCj5JXXa zx=&~3F9z~~${p@;i8W4euuA}q4r;P$Ya1s}?H~n@wS(G8jBsMWf!aq5${%Y7v6HD8 zWC;zkNL$3DyASB1ev^rB4;_%Ea_$6pWQ)fP-x=^Y;Io(psB~wNMO*qQGr;6HJsZLz zVA2^2bWj<%b%pD$dYR+BacAdVy>aNnoSn0jN#YcNL<Sb9BIizn1`9K!IM{}pnwz=c z-BLi}!QK=sCrxlKxE2u1@WB`nnE~S+HKcP67H$@R?}#TzO>v9fII89>9M6U+yC?y! zQ4?i3<5uZE@OK<45XJikJs}<RZ>gy0{t~K%0NTwpBKHga5Bf2QD3LG7pw@f)my&WT zq4;qC7tP0*c;|ZXuJz#2I;)KaIx@g@)qs}+4xQCtrmFxPI`5_l@2>%`1RRoUXT&f7 zGu{ZmX-a1l;7#GNga-jL-dMmHYryB%gGc?PkB0CCfYVei2#>}R_iiS=dYhV=Gt-|B z@6edS#BT;1l7A+C3*b;Y{?+5J!HVz4-@5r917A1)(|||i$fQHh?@Y~pnq!$<8Iz!v z5({%m$}#L9#Rt9am;pS%6t%9M|E<Og;pz4ZKMA1QZ%qz4Z>8V!sQ0u>pEo2XdDJ_~ zVbL^5KmMKH)QrT|j3epO^k~;$F^R8SK)EHPTVHsqMdW*YF6p}eMfhSWeCRwfeDPm| zFQLL4%%}KRNV)a!zn%(TL4_~*i|_`cNP0glB`{`wdyb@PrDnNi;%T|oghz7CmmvL7 zM%_luPxHxGKNqhe`K0CeSFNAlQFPIq6+wg5WIFWvxgF(iM!v?Fe9-G>l`NLHY}*-b zq7}j=zi_lnC4&i-81BP0g}WWaDe4s5*1?P!AL&bwK8^|WC7@_q>gyegup9f+1^fMd zpAV`0`BMz+1{dX(Zbvj<bX&E`{Z(>^PTEmA`yZ8eDR9*}T#8AYA%f#Vre^XrWW5AY z43$AAhRTheg!~QtED^K5e9?Nu`rhx~*pbjP(&_!(e$#3KSzZPd-*o>~dG7oEf%)FR zikuhG{Lt}eH<YS}`rccOB<a)PspK(wo=*E=TKXN(^-LrGt+;(PVo4PVzS)|IUPsm= zt!Hlx8{eHFu^&a?&(DwjJYUce!l^8Jpsb<zLhD8Z^m#PW2mF0KuZ|9+!-=i<4B|XG z6`;O)z^Hm)_M7y$??EWw34O<}QOVOM6zPo)hKgNx16lqZD86a^x>`xtBS0)?XEKVj zGn}|nz$OMP6{-8Z>z3l=MgUSsl3}~TsdZxKfH-Q7w3G27xF~|yDUfBrK}+h`B!j81 z$3U?K6kllWhM*V(vlF=FExAY=3b*Bp;2v!e?57Y{i<2qi0p89y+}ojqGpuM~L@9KB zp!X5hMQHuSOh*eEL^r^rx#YLNY!^&F4uMfy0<r{rzk^K_gIpm)f+9rAH}Y0>K75)% zLg;s~qK#xdps^Fd*L(_KAcb6}!4ZBaUNHJ1-tVWvqd7E!ui?`apc(r{ISdJ+<jG)I z4I>>|4yo4|vu4Dy7<AB5rl1;z(<YKnv=%|I5IP9d@4`G2xJ;BOU|kM34WQF_GLQ!a z^^-io2<OFRii{tRXePk1$Zu}Am&sAZqO+ZZHbbEX1)mVUil9cPc*#?PXe@=(nu#c; zln)nX(+K2(5;FrG1WZ;66rd~uwPq@DiW@NK=p)E5#1O*t1Y|T>lny6J$%D^`7--a$ z848h7rdELbAP<2h$O8)^<WpvVjxYruriQy3K*Z2J6L8anNCecSAdTo3vAIVuCj&(b zxqC*4Bw0J?;tDkG!U0t^oIZzRl`y`cTB3iG7c0O?QQ#ET_HaraSd)rWX);AJPH>b2 z9~6*$%Z@}QlcVgxtp;LHP7vis>N!nCmWh@)=-g46K(Wc>W@vI|A(Kin2x3%*ATrG> zuqIZgkc6Ph$lLtkevS-i`RED`lmOt-Z8_g~zgAotsjnjnSgJyY$>|B9C>>6HD&Z7( zGIR)Xu^d`4nJXdeD)V7)2kk!+bW_2y1eGI=gqaWYO6V0dASo~adRp=a5*0p}1ObMo z_RS`1k_?n3-}t|Y1c`}M-}w_D2_eW|iWojZ0A%6ptQe}7%mYfBILS-&&&g2Ib@L*6 zoTS~jDaOS7AO*4mTc>s5nB)3>YTWJ%#6pxvqewKXy6~t^K|s4D)V#l9JUN~-&%@)? zItVwFDXH`A#L9`;&arJ|JJut~V|tXI=AYT0klhct-GrjJQ{m};KtsO)ox4~@kEe1f zJl$X2fDRPRshM~wbf9Rzgo#%{0U$iZmmJ1w;@Son2%K@iU!v&K^Yq7*pYErb^fmxJ z)NcWk&;;QxbXgkmP&XpkZ70hM=}Zuegn~l)T_%1s;8C6YIDa8-b%z49B<8Qoc!dxT zjYmxU0>C3(ITO!?`7YA$F!60+|IQfj*hJ0p5y~Rva(^EAe*b9FB`@8Fu7(sE%xVXj z-^Pd*f_mt!$4Gh@MbCW<Nw2=}xnIclx%pJMzX)%&hz#dW@tI47ceZ5K7PNfwn>WNz zb(`X!o<CfMEFhg86MqeGNT06>@2CO40dPnLnBg~4cqUhHMMDy51L-@-@<cjl1TIjo zNY7<y8AJG)?@xl@A~|B>p98*=2K-CFqr5W1e*rw&PhsNqpq**LPX>HP4dL?ukM@_C zbPDRhs{xN|2%lOH{pI!GH`YUc2Zd*rH)!2qc_CNAWgPH}?tS2p<Sw%OiM9cJJ%RE^ z`q%pA=`~|1`3xrITVp!k*b9a3Ch61tA#E>IAN>+a4@A55g{z?Cop$RB7f10+yG(xE zA-|}<`mtYvxrIs;3$uw>u=s{g^qAn`5grjfu|Xc;eQ{S;JS;LeI3U;$;v!(uMfZ{+ z{XhtqPQlazh@l^7#t&Z_N)^l0N|<91lYcO@1}je3nk9fqXFNp*#8u<_8hDTTYi7J! zz}o|!SwCoY1<Onrv1MRm{8bKW_Ixh~sJ`srL7!KWz(`N!0dA&(B@7gd0%p=+#*G%A znv$p^9KQGa_T3ZsvI4qwdK==VJebO$n?JyUik#oV=tY*9iWwi>180o*B0dX5emSac z0fDx<8O)VY>6=0v1PL&il;8?AjFK=rCg$VLINH$INAij43_&x>56KY#6(~r?>ntms zQ4|DDR5&z7Ay`k12RPw_`!XokfRgLVfn>XZ3V{1E!ezjOPz3W^3Ctg1?@$KY_b^*C zM;wwDuf=`8VscG@3mjm_A6c2<aMx433>KtyY*{uKNAVL)r5hWIOc-M0;j?MdSlBLB zz;D`Wih2k4!7$%^wPw6UjTdw|Fy~9CmnJw23J8vc2IAG1DGo4+j)gC@fy~8_OVL=d zG@)+(6ThD<cVaRIw9wdX3l9^I#su{I*iOGC3fJgJp)G+@d_P4O^<@bDgsU{LDXNp# zcT_yo*CW^r8As{HsI#(>-{}C!FLbj6xKMt&e3<dky$dKmVBbrGXTI+S4IA;u#9IL# z#be?F0FTDMKgmzs+zcgHM)7BiJOE+vpmCjCa>D8Z=_80W5uCE1OsdGaBq`y%gWtD{ zc9b943?M*ec;tBnW!?2ZaFrB%d@oIk-iK1*>HePxPib%<VFB?KG?6$FE}en}Bk}Pu zC5o3z#p{eb0L=UnM<igSK`W-VGtxN#aZp@OS$Z$DPwXMh=nYa$tZ;h+o*pk?x<~+B ze-#(V_L=*F9Ov*d(zUutx|I~Z@(t<FttH+1)*Ths$oKBoNq7GZ(xvHDP=13CBp&-r zx|G%iJ~m0_6nbDV8t&TF94Gl*afqxJx_?<u`RRG-KFUwaDYHK#`=5Gy8S6N(s!J8a zClm?Y0&zTxx-t=LiHQ5d;IIkZk$|Z14wL)@lk8#4`at6p(xox+&jF9-TXBVCzHur( zoiF!XvOeNQk}h3u%=MzdC@LJ~)>j|y)Vi`>I)CxLgrbk-k?B$OR98vVRaOcavKK~U z8u7-GT!tfYr3Q}BBV>7@H4K6VbreXQA>nm)=1bDx;_X;s5f8h*Kajzg{qZb{E}GLI zsE0pvz=&u)Oo}yBeAMS52&LB3%<`@nOVtPMQsWyL>#N-{PL=1^b+ec-V+B<lkwv)e z3F*Y}^ir}saEbt3KTedNmWTb+ybm8lrqApbVBG-!>m-x1VgK>yLj{!{n&Ti~o_oNL zlKjB3kpOyLKzT9fhQ9;4|Dau*dP}!IW<4?2;WRNOT^bL|asqJ5rRmb=8<_MfDE{ei zhEzNgYJ5X;Mg;h`06mOB8JTaozAG8yKeHbRMCxo!#@K(SV!knQ6;tWb_7$`}H4{(U zQ#0|jJ$2;Q4}!u~SA;%_$R{mNv>efH@kp}YA*9d?1~Xa8pN3!0=pSf0v|CBNkNj5e z8-g^xA!=1fLJ*<pjjX$j&qtOJfQ~<qx?B%Rmm3JGzzCTv5EQw-lp>e%f)fN<T(Iv> zR(c^Nu1M)kXmP<I^|n5BdRr9L6BM<u1xILY(Qkx9q>#!M{U$Y>{gB4ihf>%E%T(c% zrj|P2fbIg0LfZ3zpq`CD>RHH30I8kzhWRx0GXQ;AH5_SVgGtpTO2D5`$9_#J5VWje zz-kESSifSuX~iid?t|2+0ZNZ=abG=ANP+5!^rs%=PPz}FH}xd+rlFuVrPB6>`3JIy z2ZA27!W8)fq>)MyAiZc+DfI(%njWO4lp+xM^)!k<C`!NaevJVoE21d@fiMxFB@M09 zl6n(LQb^4gU2_-?8)@=T1?Z;J3Aqdt2~vq4;e_5C6)fTXQ~ARwdF{p*roxgEjW7YS zaN;)Bcu@v?DHVr39_p56W)p<Uj!6T3sw_<zLu(+PoFLn~F_9{1ONHi#e-;-sN_F#P z)01TUj#PX!ZlJy;7>mHXu|W7|Nx6ScQ%0S|8BWoo`SAr>o!|)x$BDwhaZ}QsHHcIo zN5QUJ-PNV^E<t33uZ6V(v832e(WCpj1C*a0-~No8h!~k5aR4SAgHzw<o2e&e=A$_b z3<H7ApOq`E6GQ3cQuI;Y5sZfi>DOZ5pBwR)bR(gpy}&O(?LyjB^>zCXzVs^uvvA^+ zgfo7LqK5+w1b@Z{ib+>6ubj*$%?BDsP+5M7loES6uu`Ws;@|>Mn52qQ(Owj}2?IyF z>Pj$xqC=PapQTUESz=+ACmB93K%RgYN5w~HY!Ezz2ie2^DII80bUrE=`Pc<<k<Oio zzW_LN85t9Q6L8+}{8@VB!i(H52R#p3s=@~pWO$TV>Jb`%)2kkGmlF?;41|?V{Asd$ z>3q3Ue!4x~gEY~+nTdY^I5a1L5|WA}wl)}?6^bBEiFw1Nr_j-$H5~@WiN1C&(Dew! zN|A>W^}DFI!T55qMT*h_`UDGfp2GsE29qo#))qDvR#+5YtO_CeP-to3OBQ)%pdJ)_ z;n3|!M3_{CPAvtiyojCHzNr3vQ1t^-b)vx7v--2*BeYRD6=ZqfkT(Qqe*?)|uqq5r zuEX~lzDWkXXNDhM7as8sUBzF7&!@tF9g<=18C~6hZXF;`7$IGY7_Nv%_a(!$6?HC7 zu+=6M5mzMqpl|=Sm;Jic6ZQw0ug-{RfJk^yzCbome+(Opuqgz|pglY#+R+AK0@aWV zPB=+nca8eWIb2B(XTYG(2Q7yM$p~>V1bvWSi4{}ngrGzKnCT_~4)v`}JhJaaIxHq0 zE#fudivf@N1ZH@I@1+4hA8@GeV1{1_I8-J~{3gIPh3D(K0qsdD!0evX#F2IksA}r; z24t^;M3Z4f@qLZJqBWM*KGMAdhTT0w){h0Gi2$vm>lp`WZ5BBU{-}_GeJmUlk>nRa zdczlsMJezZbJ+inl_h{Ny8t{eeF2rH0yJR`V9blsvpP$rPmg;-D*c}%Pf`Do{t${j zJ!Hy3Gx+s(60pBLNAg3j8|ZL|b@-4A;vRJim=hHa>Fp3O%l^;TV_z2laTFbTy|*4{ zA-SVN{I8#nWUfaR0Pis56M)uq=r?T>_cv_t=wc++$gyfEnzoT^SrM^qhAlr&)(;vR z5O_fX==Zn!IBLL&N5`q<pu<PunDIUX4y|4O%8uCT8M)rZo|0}Q<<_^Z`ek;w3~O!q z1v1~EC^G;v;6XaPe{1Jf-#NxhR62A&O53qB@wC0KCOm4(|Detx^jEzk;ekK24AJN1 z=<;U1uNe66>@Mr07x#qH?@)Rjnh)Bg&!aH&P21}+@jsly1Jxt4Qxn2x-D4~TupX7g zC}5KUW=|P}peMp9Hg&uu47(QAB7wlcre{xKd{2?U$;LJYZD|NJpUR}quH;@K<phm) z2pr%+sy8N{KDWZeyVesv0q|(v$P6z79Ma=6@p8bSc{>xY036bZYr^|$z(ZF{?2RzP zs{oJYf%JJ6=KB%wPE-1$0B;Hpt#4t*8w>A{{4(+R_24G}-bX|D0>Ei1FN8;H0qQ)9 z7d`)FribPYJ>X&DHv<mMk(u}{fNKX&-8rfMM$U+{o{$Vyb%m5OqH_g5$`cwhnRt{3 zO?aDn@Mx{r9-f~)@5$t&FVJiR4--EcaA-Zn#G`se^C0HAPG-1&dajchpFY>g#M?oK z<EMeI|6k`iE3T3C-4l31pnIM4b4V}Nkn+>(w;q%q&1DcU^Y;_yI-#qiPj&uCmp<3Y zOpiX-$;8v=I+^%?d#;m7=f`uMXpUU(nNAnjOr+0qBGXaEY0e+>`*+WCGWnv<b29D? z_-}d*nAOoMj`lZ6xe<|KQFm_u6OYC()NeT5Aj4C^>l`$<{1%vg99|;XWK)5@?N9#6 zy#Y+V{@J|&{(t8yN<UNPU|93*7nI1aIez;Er74wU`O*Ef0LlZ6f6Pnn>G=?kDlgjI zKZu-Pg;K7Za_R6?@E_)D^hEyaIS=3}7S4KrAPATrlma61TO^<Ke)%Wp|IqxFk4!#N z;B*CA{iCn*fF;gfe8B0)q~Xp8TK*nW=^$GI1d$*(C{3_aP^R(avGB1?SR{i&LI|G; zG6ka_vu`dN=!F!_B(~FSl3#lL*OTE7q5Sl`@kge<KlhSLg{Sl11Tv4tAA%pS-1*87 z;u`d_RCv@z5d2m8!2uBi$dKe;3$M11Z#%Sh!>I27(EQb{3qTtbBNPd25+o|*is5TW zs0{HtWWLdy4?#b8&~GN54>(jdOgx%LqOxb=vjK<n9!&fqgwufE4!ABF@V5Ym#vCS{ zCxAor0eD(GHjitdYtYcZuw{#u?OJw*!}PXzFWlEO)O3((qLtDr*Q&^Ap3^F)T}~(6 zue(>fvjUn0m<9Ci7v4|YFSp;U0qX}G8*qpJiQh8bZfNMxl%WMfS1OJv9x57Sb<YaQ zlIKm$+m?4Nk5y<|7*d!vZQ-=CX)orr)h7RGv$VBX+FX`48yqe4Lx%^y*t!_})Y2u; zx;k9+g2Usn&^s1~qs1X!vsjo8h9ZJJA)AcN#<aC`NE%u|n+KmHMnQGBEM2xPhaku1 zX>qu^IxK>ymM*5l=J2>|f;6PZ)#0$UxCDKU4wuK)(bDFzh(uUy9!HC(tpgv4CK%Py z(q&<~ES|2mHbyY5t;@wYTn<M^hvJ{5%fnb~7DUwHl3CH>=we!0T!;$9$ZY9wv@vZS z29b3kAi)M(2Xd*4L39pROP9(lkIUk6w1EJNjp=HW`POA?0eNj52&T=^;gLnafsApr zSUepzrlZ5wrAid|;IT0-ht1W7`qt$F-$WTgUbVE@EG-_3s|y98#UTp`Wm<>J#dNjU z94Hb@heehb3v$l}Lg;JHY&LMg1rAWHXmPZmzM#w@87>!C;bB~|7<E`W+Q2YZ3rdg8 zVQK4PY&Kb<Y%W_zSBJ-gTGZ9j(PHUpYeAA^;euT1@^m>+uN-ZjHkYHL4XKjltc&S# zbU8YhmW~b!%AW;9w6rl&WH?X`938ec#^Z6JF0_D(whk>wES3&i2WnWG!(l^tK$%0K z0dr(UXlb#zJXGU4ET|za6hD+6(5A#ro6F;{AqzY%s7iR476^?lm#3>s2_uWgVQE1= zI8ZidtOYUR@HiY@9ZE#C;5Ehr?x2W}-2e!d4u{3!@U$t()zQMVIlv&46s84BejW&~ zmKKY{0)ELhp{>o*0Ul9-q0vAWL|Pjfh8ENVRhc?ETsH6tl8#|4Z6u6b9f%7x0Yym& zKaa=L(g8UJzA)65pd8o`S)0uUxh1QZ!{J~&B-%Vk1cVM12E=A@xjHPUF|rLp)8lYJ z+(Epcaj;R5p!jSy2n3I6Kk%g=41^zJaZp><=4wO1APP{)JWzX6%}N{OMoSBN0o0In zcq|=^1+@mPjt#-JIaFg~L8H=!ngl^dqN@dk2Gxf_%|m#ILp4DyXljsS9S|u(l%edP zB|&op8G`zS9)T1SkaZppdITgjAlj(XLBya}fc$`DL$1m83c{}o`2@j4T?3L}kOpYF zJZL~V&~ZZRpo9l{5hxxIQ;;S?prMz74uS(simeO13^W(Aar598R|^CY1d9-F9VCcc z5Csg<fn?ZRs>%P@ZzKB#P5pU)z?1!Xt{cSi0E<6Q49oP!+}rwMp@;mi&Z>ai87=$b zyY~i~CQF0gvzpPWGjbH5{{HE>2UiBe20bx#X!(d7_e`jG)4)aJ8?7HE?vKVLU@V}3 zuV0hj4M!jLgKKfn&C=wQ6MfM*0~Gn_VCjzvZa7vXfdgcqIk(cxl{h1oAch!POYvh& z@e>Fx+E-!XgDE@|7oi72^S~<TRt#X!E*YbRq5IQvXUxK|Td%dT<8xflJlY7JGI%PW z#o$1|y&)UR&4*RF1*}#NKGwsg*{5OH0ojW&ogfsPeW_kOdXPto#WQGwG-!1gx=;Aj zN&0l=@++^1Z{5%{E;<CX#@^E{b!XpXe{yQpxW`>przfvZpXFWS9KN#t)b3U}w#(Qi z9UcZFhW-MyhFi`WH1_OX#lp*%#`b7tSQ>gGSuX8!y78sy=cU6onygPKUDMg2S-XK} zJ$p5Z_#)V^j6B(*`n~9d>F&t4N3Z2xdn$cZUVSb0ZMb%w9{;;}5X^yWU=9=mHHQv0 zX2b~L`b!!5&gPG`D71v*hAOzf$BN+E^a&|9NDqQQ4G(lO8ti!?qFAa{QZbqFQvW2L zTv8VeW5$Dusy{to)KZWnf}IUvEbMHU3M~;SGxSwXC0J-9-8hq8`roCeRL287B1_*A zWYWv1mtNh`DAXc?JfdU61N>sW1N;Ia!XXZmP9{Z%i9Y~%)GnC#_kfGgfd2qEH1B4H zhmM`FOJ?F503OvR6R%efUcVkZT32eK)2JSNU%;b%4`#X|z$5-?V7?y)?@=Gd#3MUE zP34gXcv}d6)2Fp7`*iF32R@!eTPN7@(m6+4e3q}e_VFCy54pB`Z|#P(FK<3xBmDXo zl0B*?_ut#3_AcS?Rhv`1rbER<^V%nbKW|Q?wP{Shv%a;j2>+I2%hpU<J#0R|wwCap zD0tQ>t>e5$S+$%mD7}>Mboa>tC)duX)hGN><y!}581@>qq1K4-JNEw=<S@<P;ECF{ zgg<1Kzmx3IjN<#XoeBR@=TTiwj8<L5KA98#S2Op`Jau|ZNt;i0g#X^^ZY^dtu&cKJ z)Qj*JZM5(9G0|yb=qGQ&@8VW^=H|Jw{Nzu8gn#F$v#q;&Uq3SXQv~6kajeU(@`cG$ zOFqRA{`{r!*_|b;ukQRLB>Zo##5RmhSheK*Ckf#<d4A}|)OWXER)10v{_VM6R<2mH zWlMw4!wG*upWzbi*!Zzs{vUB~0#C&k{}12IzVBtpB}DdpH?mVnq*Rt`-<K?*&9y{} zknE+9WGzZaloF|gilh~#kWi^ac+T8=Zr^X}`};lr*Z=i;p5u=9yw9BTnKNh3oH;Y| z`Fze|0)^Wt-BcqjHQhxPlPTO@s_}U8LF=p?iy0K&d_X2dBJ#)U@WoRUp4u?daHjcn zN$O%Tg=g#!Kh*6~He0q>N#WfmOH)sTm|VTRSWDsld>l7srx}mDUTmW9I%Q=~d&%kt zKNfFOcxBAqp7voRmv^a?!s&Ho*WTuIe5<h3OW}{x!+dikB+4z9UQjsuJxu)PD@hCP zOK&OsgCJMB2jfW7fu#uw?>uA^%+%SGoVzqb;c}iUhaCj!A6{PiN#W=@2X~%RT}%Jm zR5;J|j*c#|Qa54TD%(CpRpBXjD-0%qDPuND8;M;-d78&yF7q+m-P@JjqDA@24&E;~ zj_>VKIgn~c@m7n$_>jjcinSi~1yZbiz&m{LJOQaSo6a1fe8mUPwDY%nm5baz7E!cc zFqqP+j$|#*SJllxvkMK+Ju3uL81KYCrCc=_OrFRtqaPwpw?6}&Bs4g@7b=nS-I&gX zMen#6%=oboL61r7vo+WN3b%@!%F8_)SY(6^r|^UR`)l_`F@1K#?xXO?6)&R;-)^am z#3oSqt+tap(-U_lrel*ST;D0Hqs>meqY|4z;g<`t=NxO-X5PV`qVP8^1-Z><%w7#) ziz!?(S^K%#t&`_|Vk;@!@l4Ly(7g6<{J2^Q@47y=#qP$7dSzS_g%7V2|19w3=b;U_ z+Z28-%JK2ZE@Gz_u9L!F+llS{vV%V-7S~JRI!dD1FRl~}pTxbO@T|*k9PJ(sl-A+i zQn;SU`Qm|nC+B-`6BN#AQha{HhTYdb;ASXX@RVWQR7%BBdi+lcmrK}I!Z{_{Lj(^X zXoQUN@v)I&&Xc-$v<Jmt@>x$6&Y$FbZ;$7tZlBS08z4$ohTw%M{9yO_J<jV*$Vc%K z6fXa=5^wlc?8Z5~9EGPYnK&z+@=j^Nqi@<Vm~{=wr}70<d!OO;D7;MQO>O$~m8ZYr zO(=XI@^xd-jjRtGgbft_*Adzu;{@+e->?YE_|ayDIu4+HcS7HHpx>{S$CrUP^gggW z9@Q85TYSZT#G_~VZ|ST4BmM%6|IY!9ERi}o0Pjhpm5F+KL=9yyJouxW7ym;(dOxIn z3jj&}SAQwXj~~4cqWAIT@d6+o4E+CyNA&{!mfi}c|MNJ-&;bV+`A`PwG_`;~<PL)T zXubZK9}fI}ubw~h55fG)k7M{h;@5!jFIsQQ)1&rNe>*<Xf5f+dc=Nx==?C%Xx3T5& z-@x?$V>|zs#g*1~YWt=>5nwQAFY@<#0@b`z$q5W|-5l2_IfBO!N?4x1`9Jf6r>gKU zs?j_;GF1C}{_8Nmk^=RLTP~kAK3g7-_AY-f_p<$J{C&T)ah$2Vr#zZsxqLAoA3bl& z<HcdTspsG2qP^JP@=5+jyflbMzp=`rA7(*N0>+2duGUJXN=lwee>UFV2HU_L8F<f4 z&9}UqF`!+b<4dS42>p6^Qd}KTtTRy!J=C2E5uIoNrV0m6Si-;y<N#DF)C+xuA4CjC zRq=t-^50Vhps{~XMSIewxKX3J-9Y6~pQe9%;zqs1pmQ@(+(ZBSnVaI>7G!Xt_+SHC zXyH0k<2_*MODPj@SOk=SK?z7ZRpfv>HYXCWGog6+AX2LXLpMil=X#L;_4@eNb>RTh zqq+cSm;}$>X#0ZA5|akEgKDJ&Bg#ZZ6qRr4Dsb^nVKjd!Kv|zM)6xHdf{hL;`3JS! z)V*LZKjD5sGogg#{J*~MD3PglBmbCfQLXbF=c)2(@|++Chf591_D}tu0bFfR^i5GS zfiNA4lOpsB3;68v%cDItA&8-hNrQ4B#Z*I1`wl`YH|_fs4Xf8u{iT6VN#Kb$OiW*2 z|Ie#{Bn>?1gcFIOz$;(442hWtzV~>6HbNrFF;gSabscoyJU^+&yOLTgj2z^&au`6) z3b$K9POA?RjQ>BClLqC`>X}j)RMxWkeG1dj+7+!{Xm4R?^+IZ(e&1_(Kt*yF6^S7H z(YC>NG)K1x-vHnog*JtV+5)v6i12vO_Z(tiSsstR4MFRMxR+UuSq^nMtf0WWUk>~y z?xzp{`=yzIPh;l2J3%^Hd1>XO;j|p}JUY2j9j;L|%_(NyMBqNlGZJ`v3PGn<0Zxi& z4#A-cGvx~+xWZ|U2!MAc&p*n^3QiE(zx^hj`Uw)qM`Z)&Ou#FGn<t0_odz&E0b1XG z9`A;~$^kZjVLng}S~{?b-d4cu7StmDDW?d^`Rlm=-795q3Ci2DNIeg<eg?gb@Pb7t zN=ZpcSxH4nRY^@rT}eYpQ%OrnTUkk2Sy@F{Ras40U0Fj}Q&~${TSZAlSw%%fRYgrj zT}4AhQ$<TfTUAL_Sye?<RaH$@T~$L>Q&me<TTMw#SxrSvRZUGzT}?wxQ%y@vTU|+A zSzSe4Rb5S8U0p+6Q(a44TSG}hSwlrbRYOffT|+}dQ$tHbTT@9>SyM$*RZ~q<T~k9- zQ&US*TT4kxSxZGrRZC4vT}wktQ%g%rTN@Nn8|+>ih}H(#v_TX&7!dxeU9`Y<+XFGJ zo7#^5T5tdApJ$hTuQ%{1f}(!}YVH3jESC$uu2B4E|8lcUJsiyPbWWh5uL9ea$9sTy z^nJ6m%pXS-M)j2G8R+gqvl;>KXE1VPw2vTy1r6vmh2D3T$D{8fQT?ao@yB6$>g^Ed zo&z;$YFCW9C__7K>K0TJol*ca3iRFHpizUY7%ePy|Fr(l3UYCDBM8*ozy$-8ng+LX zQa59kr>E|NS^`RGfZqtvQ={{q03j4Y$=L$spml|YCy=ApG#Y-puAw-J6<I_GI_#i% zVx=gtL#J=lUBhDoW>>$A6Dao*iW5WMAgV8c-;<*IQ^Qf~0e#j(gC*o}ScWNs{U@zI z|Chl9nDYe~T>NI|KpoOhi%peR3gxY(QVeaBM9oaIk3dfj&8h>PGvgl#qcA_(2GD@R z|9;;7R$t+v#J|+mpY0NO5~g^vqtp$0!vJ5s{(lYBL;Sz_kNY13_!jtE0N)h}gx`1P z2J3e<jOGL<9(}(1YwZEUIPg6Q{my_XAW+YXD9pD8T+Ha$;&1WjHMTrn7o<n;!OP<X zLBE8y&E@eH{}FEq<NsP-FhxNabf9lTM=dX^lZu9eU_r-9%j5TfI5f@jc=CV5qu(>c z{*pfMKhpdBM|vliekYh%!ijQ?QLhPf?D^ZM6uopvpp5j?<6!~$&>#&tt)E#wE~Ab} zfQw?Zi<3ru70UpZonUN>b`j`EghUa834wChsT6Yna$2*AgPhhcF5eH$^{OjnCJx|U z8;qn~L!))U$OPR4ya}PcXo=EPlP(!}G=Cn?Q@9@~SdK-=Y2z+>2I}#H(@zP@%kf8h zK>ZAXhD)<Jf(IV~rm1!Xz9>Nj(3~EHQRI=JeA@W*1sM0BZT<KBfncsv-;jXlf9D7N z8WE_JfhR{)&~iBwP)=B2*sUvJL1D|cJAsN`{g-@bJmr1WvT^nDarSa~86Y3}o@EZc z525wzXxY#}8;?`jKXwkZbm%qu@9;;x0`In{4W1*#;~{E_N*w_<FjCKtB+SeVP#7%B z<I#Se^6CPp1^}fQ9Qbt4z{JHY%(9YIkd2d_jf236=jP^N;>QXQR$y1+1sQ~}!Z=ZW zB3>3R&!T`;!Ykucu;+1QxN<@T;~Z|DZUMK5Ut+3?iavU*NNJnH(d0DYm+TztH_ZQ3 zP(&P^T!s^lr5sN$t7*K})_(WitG6Rd7y=i!jIx@hj;_9?l~Y0r*jU?mt^HnC_uCN+ zfsLKARY%v<%+ku)!!zOd$^5%r-E3SkAj)#vPDf`K56@%A%RrX4yRYAlOtW#BT6%br z6D~DfztPt}{VD$7(c+TpH`?xWbw7J<k<<L3y{p^OdegS;&Mt>jQfun!Z`^FZ)6c~( zu+#C|_r)c0;I3D%*+qkbg+*NUAGmNa=2{cKz$#HQbL&kGI~<)4#9V3X?Rzo(>1$|M zYIsDJl!D^<i}g3|boal`GtACWN)>(7+qGo9X~#|mMh?z3ijz}8!J7Jrk!jj-JMV~& zyFCw|4!mDn!Vq1=<6aZuOc;d-^jxu(?BohMQKncS{7Rs;p-4~z8a!AAdIm0L8xC#; zd!Sk&%nTGZfbI^^R>89ZO%@h<EIS{aHG>etHlTIF&t^j~#>?Ze1TK0GRvm(fqzf^S z;3rA$po^=<3)06e;I}jIGp%6aW#wh{qi3cUq~FdUOJ~L`M_?sj@yaZ61VMThJh>8V zQdHiECl@p7;W_Yn3|fq`ba6{uD;O2I<ndx0VjSdTLR|Jr7QRCnbc%Gk3^?``Oyuk0 z;jH8*f~<7pB|7qJ*3bEPO{Q2!UUCB?`92-<3SB%iy%wVxBP)G4%PRa1!geNd{0d=a zex?ls@)7!qVpaiyav>r1nG^#n9UZxZGxjS3mbjK4Y&}LGU&jmKIoQDbnpkjfKs|;5 z2h>(@%ycX`b^<4s3&%~z!^Ml`!wKM4vI*0PFiK$k2>!T>_$FL8?jf$1wU6lut{?Xd zJ4iQ#drug}O%kUGvpCRDv8-!!4Xih%o<4nM@6i)kMVA^AYv>u6H1rL&e(8Bg;9a4i zxpiAi`Gt$k>Vw=#hf_}fYKdq=wB7`+xw?8GVFpHK7G41jZJpAxrvpryX~#<$m~{=j zd{fhdU2aTH?Qom<xs-QOL2-?=eSSgV+2Zr1RgF!z=~-C$M060-%_ZkM9~3aG6cm>< zK;BPGEw!~1h^r-~q*b+aEUY%z*x7GI8y(5r)5||BYJbd;;_{2tEj<@51_hsR7T-&U zC&=Ty@K{9!a-0ZWnM0T$!L*7_md=F0zLs20FF}wXNHeOjSR2P`GVwDruFy5r#=A2z zDe=>Z;f3h1hFXO6bczIKpn_&dTti@G(!lG`2{I5^8Eh;yRoPS-6d0LfrEIOG8Q1a) zN(u7{Fj<2gn6Ry6V5YZVT*DN>f~;FhuS>^FzZqyHapLL7N8MIgFfx-%oW)I9nCaPg zbm*Bi<Ol-ft9l-GtQJhnW~M?GjCO36u?%L+B6xF4O*}gzGrcwgbF9Wnay^zqg)RQ1 zR|E_B_K^+lYzc~~597=Wuf}OJtR*<oOEH@<OVjbhRqym%Pta!IGDO=z_AFz<leJ7m z?_*Wv@mvJP*yO_me>yfi69Z>D$($)%kNk}}j4_1IjGV{Ix{YZiIVsj0f6$17FTqBX z40M0{<ne+8T&$remku2^VUYY?W&?qlfQ#oc*`QCpr3VzA?CFHmaIx%i1P|7&%;XDN zB5ZO%rwzwWPtJ>f3J#hLAI`d+0bE5KtOPA^Fw%_T*0Eby`S5f=!AS(qLPyWcOwR~< zRq}mF<^=lx?7(41?t;2`ruN}z*B#AH?Z>520s{JO9$jA^zYWBpV~^$Wwjj;`EPw14 z)#r5s{>I=dgK4-Q^jQ-Pec%R!-h=*pDHaq=edYM)7RsC0Fz`W0?JsYXsouV6YA~1` zPju6t*v(8Lx`p&I<p|fTr>BrttwSb5n?&*Udv~mM-!LeO8M@GD`Awc}x+&VpF1YK+ z>)ah<FT$cZ<>a2uWYFELlP!39+;?>Sk&{9U(Lc;~6>D@@*Ch<U3WyuF$ga;hw$WtI z@EggK{EVxGgcd?$qN@Fp15>^e*+;%kD=lt1ljV4Dit&<q*=A=|`R3-;=1rHqWRJdz z<9Vk}j*_d|U1_gGoaaBP+<8&V=DzNR69WEvqgP*4>E94qD{<ZGb=1p)>)l4}2G}kZ zsZ|Av^!t~q2J7$YP4cN4F--OdO{CAn+)qAsx9rvm(ajeZ*nKP-TNb9Kb$dU*@{$y4 z=Eenv=PYLKK9{g<J?Xnr-Foby;|2$Gd%MobJ8P*opFO>9T)oT5>abDw)riEn$_@0k zmxc=VbY&inJ;9Xm@WYgGn5dxTN~8G?g|jR_+TMNO<t!ncJi|Tbb?=*XWaOZfU~i9B zoOyNwW}#NxJ~OA9csS0zCfPZRc)D8M-pM7X*50k@rJ_b!X`4uVx!U)`VjuR(_FXfs z<^KM5bssijV(gr}uBUx@wSQiahNReC)l25Hhp&(Ko}$0WoDk%Dt>tv?Zn+>yW)q7~ zY?Akk$3y5_?mhR|mbmsomh?7fzjS(nRui|u$2Ae;rq2^!37U*_?f%)vMt7wbd{FRF zZ8xz>{C@U;gL2YNlM^ChgY$lqm-lQqePO{Tl&`@<=4m6{IB7dgzoc0;MJ7q&YH)?W z6205ap46>_v(deEkI!W#HYGKFx_vodMP$z5VvAJ0(h3<Fg}T9{R~d^H4+K>uEm;}| zUhGQdWf6%v+A@76SSUrBb4$v_fsJpSFHBD`SQXW%@Q&?zZsVH&Z9s1HZV=tYGnL9~ z4nJ}f*I^V^zE0C;p`R(YV0Lc~+#eNtHD7<@6ULgpXPwvNn5;icpNKP?K6oyrjgj>A znxvT2N3GQk0q3nhe`9X=y!K*wurz~Qkom)*3$<)s7rzSLGmTDoUfdbC@nc%YnPUSs zdfC~Y++8te3#6|!GJN6~Vcoy5n03>ovm?~4%<`k%Dw_Vx9*%1~r$$F5YnU{?>vxx* zsT|vq?0UQ=QY0B4!4{u+M?k`F>gw10KFMH{M?G)${1B-!@s|#xTOZlx7w^_JaZ+W1 z+4zU|8|%K^rV{hm(Oby*2PeL-J0*Ukck9P!T+tT}uA5O2w#NQXOtz{euQSalE06L& z%)=Z{)7P=<+uH7*)44kJemj@H#>B_cBNO$B*Kf#aBf=kWMVB+mo_tZ^?f<@)Vbhy) z@ka))+I3bV1D#)=-4%CCm8fzU^;tTV%3*l<;q}bi0gV97<AtKPt}-!lu9lx)N;NS* zc;(1>6=_!H-ijYTmM-(<z8enMjHslt-sRVY`ay5fy<-N>>tC>%KQoiF#-!#{<hs}0 zTn}<Z=I$uRC}+Nm@8jw>-fC!Q`%^e(%3%MIP)UEUadl}6FWtA!6)D11-IH_}Ph*v5 zhF19+TQ9jkjq_tLH0Zsa=3^~B9I?qD>39)gw8SKG2X450hus^tGL8FmMLm3cyJ-4I zc!Q*SCOdbq9Vhp#${pZNxRsc($Q<o3S~qyaYbjOWTxhBG^^Ms<Zf|nr4VS{4x>C72 z<i+%v=Tl;Y55@S*k#kw{o7BAC?F&7#+V2cbyO3;s`@_v8QDN((N)vPAq`O47D_)nD z)|?eD>*rg^J2qe1=!QA7^l3d!|Ea82pVW#(28-|G%)Knob^Ec{My*;7`}?vdx5O0W zW4~GWk<1G1)*hH2%-EEGyO|qk^z*(+_%j9Vm3!PJjg?y%?dBKlxsJ~rI^)nZc|w2s z-kQb(753`USKRB>BlbyUy>d`fJZgV)eUYAIe7aEeHU41i{KxW|(=>gn7x!*Pm+?89 zxd=q;K9X6Oes|T%iNg=(STvltc|Xos*6;Na^`0RA=t`L3-(DImJR)fLp1fwLKJJmj z1x=<-<y6i?Y1IuAmmV@q<sM`~7BBIY*S>gnUNrHpAI7_@tNC?a@6d_C<LAAbjYybv zg-?zSN(4H}UF#U6>36LNIu!POY|g>LCoApi&X{MX5Bu3f6l-6U$2#wc&P_dp&oZ*T zOP>%J75nvRf6V3bc-_Y(dl^SMo(!pUKX4)Sc`zSJ%d=WFFZCd%a8TFrU<|!|UcuyN z$KaONcb{5aE?H$U-eOU%ICHdm+s_mcQjgR#iBHcmbU)Gb$s8E#pD^mT?fw`maYaDj zeo@dp57za`ySMlh1s1)0vHw2P!v1b2#f&l>3lj_97N^Ax`<#r`b$>h_DjAVFwq@@0 z#XvzTY}?-3d7NiLs>d4Ig_sIYt*gsZZ|QAM7MAdybz6TI|HvKNI&1Q?|M+ghlOo+t zM((c$qcx!Z+FPTq+&}rY=iHXvGh}=<<8%IrO9Fd$1{>_yIT3L0%c*RmQ{9ttxpe21 zL)S1iD<w4B#mBFWT57jxwpO;9&>NYM_K;BDdSkX&<Dv5f9y5-N-0K=cnUO+C2?xLB z<_PdyMS>Ex@3kM69+3)fIq-7Z`|iUdiqFOcRcZQiV!NlDIv!0U?$>wFvz%+HEwl5F z*u(IVV?OZHosC@|hBBnvxwl)6K5l;d?bI|$^_b(pwTgcET^<wpYPaRI$<>#;%d<8{ zA8Yn*TlY26yx>Jay#3FD{^<#lkmZkZxwnT+La*fCPUN4_b~{<$r|DGL*CpN-AuX&- z)6Y8^=dW=>#eIL1$FA?EAD1R(E8}semYgnpXx?}wk<qU7=R!O#KIZFymwcgH={@g9 zdlw{H-Cu|HkeZ71%U+S=16O_De)_(-QPc;vV|M(m#f<O5rw?8qu-)plIb?Ka^n;_K z=>cmL(!9UDRx#T(;7_izdw%w*a3kgm)CVk<e$>fcJW8J4e{rEDzO>`PC3-UV198^? zCn5cs;zx6_E{w!&WdCS)LFM+zlGanzx^&?hN^kD}BsE8tr_HpUIzrE7^7Hw1-K&*+ zeYKxvOyn*2?B~-b+rAu?r{faHwG!Sa&-YR&qHcOJ%B;`vhLd|i)Q(=aM{lA2q1wI< z{#}RX6WJ^Gu%AgJXBKSKzwl1osh4}(%136UgN;muo!d$A;fMPx&m=lL${AaK7YWfS zeke=dxq3@v{L=C6mut+<(!1|vydfuJ?-5gH)K??0p+i^j-ehE$pT6kZ6IQ21TpI5Y z4Zf~D<d%3M<<w+c=-%1`TaH0}N8|F<oAO*wk130`&isgNf7P2YF^rj`^EmM3hn60f z-ciEK$Hxqt;$Jz3Xqg}7W4U13Yf)oUA(6E^nSSNuvtt9>m`=Wwcv7W%SD?7Nw{$k? z$q1Rb|J;U=CXr)!=EvX4Hi(Kn*wB5(S=KWop))DGSJc}VLu@tQP1COo8(fE(8JLh^ z>W;i4z&w90&A}G4i_>SO^OpV9{Lbj^+DR|NW4v*@Zshiz7#6LJRkAm<c)H<JyCUYk z*7G$2Mf?10cCZ&zHR!f1&_DWg>Ynhyx6@pV10_~U&4<hsOcvZrL<0G(QqvR+cJob~ zvO2w(q(ZPx*`7z!=Uk9M4i0^qGL*h~Xh<n@%lCaVDetyV%09dr^)=bxWkz0?!%C&u z@N04JpQtFM@ao*eUKG{Su=RUWn2a>l<R1ETGjGlP)^{c^M(WS=age@dU2U0l*5Ry> zd3BEKId{XQruWlz-z<9h!nblfIWFM!`h!@NhuTg{A+AiQKdLry9W%gIb8lXE%J){1 zS%cB}NyAN>o%H9J{Rx+49NuwnUdwg%TrKO1cejQ)1iz<Ngf@;Jd_Qe|q9E+~iNTr6 zTRD6^y~RFmZ#ZQ0sA0wDK{>ltgPXoSN@4b)@nM^?ljnJK?yN9cx2k*G+QVjb^ToLw z#viBCACAOBeO2unR`q7zO<#weck0S&U4J;fK1C(D@u>eMuCKBCYEM^qc&Z?ZWkK{s z_Mt^5T@#-)FD|n0wPWr$7?EU(UEoR7aB&%v3#V^>Z#$N??q|+<f@b|{EiMbWg7as8 zZq|)?*hV-fm&mu{`)!MN`aB1x;^xKQKM&iOllK+s$2NW#eAGiSxOw?uJ?A8n)mbW) z%Ru+zn6ha5NXA(AwI$n-7)!IrPYaJvax8pu?K`7dGWGH3c->-0oZY^l#(Q^KQvJsi z&Uq~Eb@vfs_HF)A9oBw!PuGIJyn)!}5?B6H){KrNtcBO<8;<#oaLfs{x-oz0-eehM zLDR>b>zrym`~2{Z`rSJIj?V*gga;#bn8{?#dh#+Qs@fjDzS@E3Q}*R+-(t2O^=>JV zos?5>__)8oFMLX%-cZZpdBzLjZMD|Lw@N>}d~0JS$lb{E7R*_*@k_cF->Q-Rf~-*i zk&YjY#Og@W1C^;n3FqSq+#)Z+dApct`oE1^C3w<vW7*!3ZuD`lT>Zv3;A8f;r6JDL zQ`v15Q(uqWbe~x@ha9_iIewuo%Rj8<(!QFK*;J+Gg11c``^<V?zIyJ|^X>A!%D3#_ zuCvJ%9q}*IG1@czz&}6zvI1AVRaLv)-A6eAHxo@FNqhP{@}Jh1?q#@fXV)lA-#FB= z%A;S{oJ-#6<em0!I%VA_pX#%{&FPC)i;Iq`J^Z-!mh~}CktM79q)+Sbb7~|sYHxN} z8~VCyvEk#Y#SG(f(uX`JYpt_y8LTNQ(chENr82%K<0h^jmee3~$g5L0*2Natv0t5@ zu~bTJEqTek@ViuZ^^02!_iUkl^Ob4b%M+Im|McGXX`L1#_j9<?xHpPed9CH6hD`kV zllg2L$`jUStnX7UOZeh`9M{J6y4TY=`ZV+Y$DY$o>c-#t_^p<%2$*eDC`S0Ru;aO= z)+sk0cCEM3KGuD5KGvh<$<Qvv#9Pj94~4YG?J3$ny<vy-wKZY8ooM>h!LyuwvkZPZ z;}@mtrlf|i9o4XB{(hKnc;xw|vlZ3P#uXCAJHsnYWrOc-GV{OCk)EH<jk$Z2Mfd)- zHv;s}_SBnb3K(7s>SAgxf03V*wta+;PK48s*{HK_yzJJNxoxTPtGTV>%*xJqcy9SJ zHY<PmM@7~P@thOpH2v-GTboYE9*EkmF}1RN_xSwL9d-74&#gaf!}}LR@{Y`1__W%e zC0+d8$J+-FWo|!x_1VV>(-e&gm$8#}5ewgOwTF0XKdivrf6f(K`sn8s{80JILa8&i znr)vH*)r@qYm(dNVmWQ58u)(wxf2QU@9xDMd@jG0)v!1uI0fp9+g|nOuz9fI{v|2V z^9)tlJ?GDx@f2f-2Na{iIwU%s<2s~Slf5v#DY{$J=Hz3(70sz|D3URUL+|;kMgLe; zd;jXvBb@?6*-cG}vHkT@g^Q&(k}NwozYS~5RKHVckT`R<e@1@)y#Y33Wv2q<-N*K8 zY@yM@`ZmXD`sr(rcV)Y8D2~|IWpQQbx$ntF!6Ad|7ZdLa;ZBM_vo*Qp<C@!5wR3d7 z=+?T5H1EF8tydAF+|c2<b1Rwr8%b^1g1z2%&m=u~!9luDH`Y+sOuT#ZTGAM13y+q8 z`D$;8k3PDW%Ewk?Wmw)MvhHrt$Pn|q$Q)W%@S_Xr!}}WSJjVW(arV}&^st8H%=ZNL zOG?}#EOl3}>RNn>Y)-pn5$r7cxxGfZ)Jkx=Z=&{#Ad5!b1+7&owl9eREYic(L&sX( zpS4T6*d57O&9MC#dzIFX0~V*YX^vJ#Pgq>6-u$$EI)6vJyovaVoHatvUwEd>2AC?p zou%pDFF6Q#+&`Tn)b{Mrq=x*_N<>jy|A1NOaOCl%@`Tx{evWH?ogz=!caAq^jN4x8 zOdPAdb%xt~Ea%*q_PI6VF{Ki2m(BZgRwL{lhf-?Zo_SQIQ?QaPW+LUV0pE|w$+Pj5 z5(FimZo8GTDLd-R$CHcu<>~Z{T1#DM`u-cE>F;yTq-%2BFmSOKNFn#IyuE((>9ye} zLG1Nw^J@xjv*%y9(B-%DDDxwa2*Rt52wRgKJK{_~D;%T0o_>&Tp4+=`dV2WDr2dNA zb$i1;p7JLh%zCoX%zneFh~gbR(zg>Er1UlnWtYG9Oy9VRp!&7cOKJU?0sX!TXkQ>> zxR`=3H5<ut$xDcOo_a&Ir#X~hoAYYl_m*>8AB9aBngpgE^fJh*%F9`^+r2ci)T%g| z2lM{r_L~Q4?DlbAvvp!~SkXeVzqspFzK>A<SV=8s(5mT%ayEtvH?dt(>7ya{2s~Mr z?>+3WzvjzUT_?`A(3ZWIq)!L!8T@Sa)$h-1NPa`unYZW2)fA&kRp}|DFOkCSpA1)i z^uF|X)ppHGTGRGtH5HD#jACCO@=|PjWftJyKHSu(tL%D|uRvdSedX%akwO7wNA_!9 z5M*RycFvxtuou5$_wmJ@0WqtzWcB9vSrHMATX@HX4{cF+7P;<;&4EYIeq!uuPv1k9 zk(Wu4J*_w7t9m^~P1d(tJ7?BfxjoC)n@BL=VwuwYw4>Se<y=qm`ZXmfeGkTuRMkv0 zW@wvMt*Yt%Y!!R%<BC__Ge3>j%U$k@?e7Xn%IF>^EC1wm{_bK_bPTt#EIMAY&_Fj& z{p<Hf_mqqacpTmaF|k2=jh}XhRs`kWJ8E%Y@Ob^h@Y4s>?7KaRoFkv*JM5OE=Wah8 zyB5D_rIES0ZSwJjq^$3B;$P#NU&ia$>PDD6;Juz_tR5Yj<(GbY&5`s>OkUv4j5q-f zJ-Ygc8oBR{WX#=9+U_s8kG4zLP40abZc`wVO>n;Vf&b^X$K%jG<lxt)65(qzht9cX z*6p`iHSta*py$n)vMhs>NP5a-`iY)1#%>BKOFEXd#TqK*kqxa$y>nL=uQTl&+IahV zM&`TPvcu6n*A+GlR95SJ-zSpB#r$nORx_W2<EbN)`U{EL%;YbpZzd$z@vzsfH{wwk zY7DNX|9s9<`aZNr=`~d_sZT<FES5{$XIc7i(XwBg@0@Sy_v?Kho4Xd@Jr~}1Xa~DV z*p=*awHoVOLJlh{WzHUA_EG-X<(j}1*;!$*uTevm?bbq*(VmgMj2llj3i%Rtr>W>) z@eR00*Q}YyS#$H2Wgb$pI>B7Xyt3{57LicZ7vydZS!n-KR%~s^<J$UI_w}Y@*+Ja# z<5J3umBKqbnETI$=!1X7l>Z_6oiIFrNO_41+(JR5K>=+AV#hK*_d7Q{^*gs|{hdot zjWuYI6vI&(0SJt3|HZ(IYyZjL_zzs>zqw((apS)^YTxs3zV>|rs)j@h<Qd|-D>MSI zK)KB2&A&L|#$BP5fAKbjrlOjExFHzPvAp_+j~*thzJt1Xf`MvJL}M889)WtP{-?iq zT4j(*RASOEUb~GM;rA)~#S1@nb_v~jOydO!yoRouw<pke$GMehSI-5Xqj4P$;>?=V z`&~3nvtNSTaD?TmMn6MpA>=l%ti1^j?tZ=td2yC_tf}F?;Gd9h%)b&MTUynYPvyjE zx;Gm%xL0bnQMq(LyU<|k*4GK&s9fcaBUgY<77I@vg&W4`(d?xtob$|j;&Y2@g14Hd zDZDpv)yyHbD>k{ivrtYp;pI{OU^85d@HU~mz<xkrL2^VeWz)(JC}*tbcDk<F-P7=J zDjnq`_X>AZ0i*vl?G^Qa8lKj-`n2+naeH-r)(GG|bPrAi21ENSz>8L6;@%$p@>VeJ zhSO!Rw<B`oqL)ERrwiQ_)dxW%tI{O0^qIcGoy*r3O9mQNo#Hc6rcW}B+3AkS0P~Y| zF|suwSsV8DZZ@0#@(g3h<+A%Fs~*P#i7&FdpB}<=_|5w=A3A4;nVhOS!CrycW4edH zHl9MW2O~dyl4F`y9J+3L*9R~6vj=U=6Junbm6&f1ur4vwV?8f1;O$bEmX_<uFx+jk zzPl%|d)@apwKGd+Og_ePr^dz=iyhv>{%Q8colGC`{?B4(+5BWz+RA^wsC^ChAvt*b zewxYdGbOV#CmH=(B|}(77Hj+L%zHFG<7oD0X`UH!MsEGsC*|b)scG>$Uk_ZZf26a~ z=xE<yf^5}?*-Nj^dnO$od=z<*RTX@tIH~yI(3u(gPWQf&?j=jns9W=r{&#ly-_Sdf z)*2(chX2c+DN}80v#Fz7b)I$adipWD^2+@;(?=t+CpvnJQ>@3D1<qa<{y1r?PqTM> zxqi~UwEX;rS>bsJ7gOg9zo~G8vU{Vc8gI2H>z+hhHId~`v0E6vY~s{W=CR@Nd;Yqt zU8POWNme={<JURfrae$zG#j%&-1PELaq$Hnkt^%2H|MxlRQU5&JlL4$;4%DA{^J3? ztgQBlBLyL(`UA&`^tN=5h^+cav#-0qUdGtvoTM)Iz}&^eMZTBUPk-U5XP>gHxbst< z_lEotP2;El6<_tBtRH)|2NbSW61HS9#I)YBod5nTDRs~Le)_S!cb&skUo1Qut<9~R zPCUEoqy9DN0^cUC)#5Gvm8Gm*K5XMEVAhr=6>F>6o<2&$wx$&$%wK8td~<`*&)U7E zqHU3_g*EpYinX?{INpE_*(TLp!Q{N~?m=R(^A#!FhL2IMEbTj-tI4%=JCz+`H*I;M zof7#e;zfbjof`cMuI|1YI(GF1p5VDVrnTz9N}VRWi%yr7Wt7AG>N}o>1r`;Ay>DB( z<kt)2?>>b{d$4_QquCE;#BWk*?m4H6@nky@=^6et+T+cE36s=&M3>QPem8t_@2|4% z<~f>sV08DepXt=C8wX0nTAzMIP8ac>Y~!!EJhh5*{EPKiciYGWS$EQ^CzIPM)ZyW$ z!fT?^uJ_8EOs-|WNV#AdbY!hm=np;K2)^;=6DorJO!8l8_KI6ixr9hb>1|gSD(a4G z9jpt8k7TV@JQ}<w_h_sAOwL<#k4%nJ^MNcAh-TiEoYyIp&drC{HA|Sk=V-&cIgov6 zTb<m*@rjQPLw4U<PCDzq{`f}IyUtriF<>UwL2PH@(eTMQ%%j2R=A>OM7sft$U*IY~ zOQzrcbYcwJM`mVp5-oz+M=v=frY)+iJM{8J4DT^ICgoR?=hY12Hkb4Dp4mQaw!S%Q z{Nc?9!y~<dcNsz|SDX$wt+G0|rHbQV^-Ds#fA=unbjkmQQm$QzFkfQ5S^V<^{w1@i zeKDim?s?vxD?GU01-T^iUD)&~_CN~>Nj-3XlO?pr%%9fcP<6ikM%carOJ-%d-zLZK z_{P^NNB6b-xPndh7ruS(xT6?05O(0%M(k~_GpFbBUcOj(?=3B|xe%-V#H_sm%eQ4= zDE5-)IVPi9N1uL|G7>D?w?kaig~7~s`?mLa4!+f6$D$%sH4kUED#{n$ybv$!QS-zW zlK|~M^NLqDJ0*L!sJM68Z2VxFJ!qzp)mU#hyEKnINAwbC&UxCZTQ*`-x3tHos}ymX zxZYKJghzDb?Caz)@?G=B6Pnl>jR4i)c7f^DL)QjM8xqzznV4f(8bl@n2G(*uem8PF zoNs#zTS+?4+dG2e#%YSreX2BbI+AGirt@5_Ii}YeWip(%JiRO8H?-%;m>6GBYCA z)YhD~9ZqKTa&Remo4exe7`Ddry<l}}jKcSBrxs@?4<iwQLa`TNqH{CG5h1%94_Jm? zAY>jcwG)oEvZVL(ef6CEndw|bx{td+{_`XP{z-beP5<nZIwL)&ghyqjH2c;|Wu}ek ztB<g#)W?0+@cDdx6>q;!WMx3glE><cCb+4GQUk2Unf(kZqN2M$`njsdH!zG^Hor58 zd0+ClwCyUcxP-~=Q~;6Rr7(?=N7D!YfFpTNYf|ZR4UZio{^DZd<ipu=&$d`v-dd=B zMekp>wjiLnp0oVq^UpMU+B=ma85wcu!O1h%bm~iu=6(o>Hfpbqyx$*nB_XuT_tbol z9WP<`+9kIBVaaZugw{qYpOpuBzAipY-Z^z^h3AZ~(=8V-hf4==TDg7EiZ^mx_YBM< zk&09J#3d_-`N`{ZPrK(h?B~l9yl*%uG?q_lb;tj(Ticj<3EJ<*yMEpqz9Zx1>qGk5 z;jR&lZ+}eYaqaq%A@CvD{NYvZF{g%d?A8aGdnUOXI>l=%j_X`zzG*+`R#`6aE=IPH zzmAEtQQ1Fd@3xHm*Dkv)PrYGjC|EdnV8_S(w?52|Rjo^52urxmlj^`LeEHoTkCl&V zI#MMsJiQdOon|k5?aPIM6qkF!lez@*lhqSPwm7g^T;2Oha?Fa3*eQ3u%I^Ya-g&{T z7mM@hrI)^Q4iKJYkT(~~3MGmYqL=c@lZ+UhrXQKir%B72Zo9EAv&_yaypn-mNBwgI zzr14l+~ZNl<JpH#9x|$DQrPEoa$f@1v&Kbr*GylUeR5`+?}7NMbH)l&4BWRa;kvKQ z;GN%k|H#<?)nxtEi>|R>qi!`$4ho69P~ks)UZ}B9MIg*~?SPxdi5n*m9xsx<xA>wP zACbCuf7C_Xd-eO5ej4<)n%IUtbF8Rxt;XJ%%0KTh=f`u1QHOu!9^qRT{M&jK8cbJ| zA7R`H?V(Ne*K9kzrRqqoJ5rKF)XQ6+81-#<OQlAPUUzDl^!=8X=lN@e{I(^WVQKyH z`18Va-)7;$B9lN*<M-R6Zr7jAlDu3~JYwZ>hSxPD>x!pY)1>GtwlhxpN!z1Ye~K?{ z`!Igq{vrJp*0QJflU_zF@t^p7sLx2^(|IPE{k7tUBX)rwxmaTrB-Tn#Jsz1m7g*Zi z!=K8Tzf~|gqBylF$;5X*Ht2`F$pooC{n+Kovdq>Ov3E87?AK@?`yMhVz`J+GZur_k zx6B6PhCH+6l!?x$@W9Ly*BVQ<c&&4|cxeqL`(ei(EkEC$u^XEeo}X53`AN4om!4+t zjTfD5elsCzvg1+t<V!`pidL!JRl=id`aUJv`}OIvJPEIU{B-s3t|ME+Biuac?i{qV zPVn9;pY$!@A@{ZG?ONxbyLw_PXQgZJ9PIZEnx%he+jt$@uc110>arBhbZ2o~n3{mA z8Lnj_fmCh8AG+~u8rJDYKW=&r&AxnQUG4W{_zC5%EY%JpoXpZL+ro%l1n&du42aFX zh0$jcA192pyJ0vUZuF76&E#;$hw<InsJ$(=rmk_C>Z}Ss;*PxT+?p41{{Friqry8) zCy&>$815#O99n$tbmH)jid*W%>^&!DyZshz)n`9^-}=RPBlqowZ}D`mpgp@)$k9Ej zdqP{El#Xq${v>qWaf8D4mKB@AS$RA{geQwWhP{pso_^)V_5P?q`@`OY8Ktt7rd#j7 zJTj!vrAcpf{%X30K)<X(W?*jP&9)?Au2D_G%g(xEa~%b|xzBrRn2#5UGaIJooD%8S z9>Z<ryz$EV3f7*w>v&0;{k+H%js%YjCJGV<!d{i_Dn9mT<nW`#iE+m&C(f<BDQq?7 zE^<i*rIO(*A~O7QKiRxo8Tnn>np^Rq;$6KrOIfx@g3I#;Lj0TK_Rh1sxS{vHlEog& zxv@RKea9U8<0%%gr`F}zErZ|9^`acd-b9?|P1?mAt2QxL=}EKKXWLk~?!5Mjn0*Dp zYNe)}k8KK=xVbD|t=jnZIPtLTc)SY1tb+NY)d`YQosWOr+hXLPz}AhWBC}U#-Wbup z73oUx%C8`COKN<H>Kco`@QA#UWaPh3w*RJ*fYDot9Snt{v)qY0ziqhm^OUW~1trV7 zYwEJSKdTPDqWK4?IlCV_WthW%?#L)Tqr$p;>%>V?rnG2^byX4Lk?7;Mhu5sV+W5KT zQ<1~{BNP2szCN!B_x8QWdBIcQ#*;54$8%+-N(T!A?^Pl%gF34@zuow<_OSyq(}F-s z#*w8L8DFNVzcNg1SpW0oz^OV>X8qaBlph{^oEMv|IG{g*Pny>Sdj$jYdF+opba`zz z{;@4k?67M`f}H*A@Javh^xBheYrpC(s6_hJJ&#M|sxQ1HBCeX;gz(W7r>`FEduye7 zZXCH-!66@CqRU@Hm&$H<{&UjC`!chu)9&pQxpRq|bMw>~(IEVroLcjxw^6V8w@CU+ zlx;jt^M8=C<@>F=!##q;)}FH!p;;GdWUhosR3;RTez~2zl|%2@s_>#T`Tmi+yH?B# zWF7WAlzzx_&%P4H1IJ$d$e;gkpuB#3F-Iuv+DqlFQ3vNrR`q$FGl&rnUu*wL-T#E6 zwCX{ZHA$(NhjjY3;>{YuKF5@3e)9R!xc2Z7n!kmE^2XJ^5wh|pFMad&`^pm+_EU!4 zO-A>Wk;@FW?Q>31>fYMpjbAL|c_Mci?N&tYhvkWBl!XXO^!Ktowwq^P<iwW8KTcl# zk^bDMJFnB-)8&R%Dg-T!8H=vrecNmIw)geCFraHUu6Y(K^dh)WaF&@aBPFpu<E1q8 z?;sT~yt4N5zI&njzq*Td_1>I5>n`f5D7?`9;<Mg)tkvg<WIb<fUH2yJJ%L2VbwSxY zPY({_>8|(1HRYeTdT80a!utGElSKLTMY0Ds=bN6II4$;&{mJ{;m!`U3Y~w11PT;Q? z-5p80c29u0`n?<fvj$_g6S|@ie)=?j61_T6%--B>tiwrI)BUb~X>Afmy~wijYo3j* z%X;x6q4wKHc{1tSkDARMkFMEil?;XXY8T9gMLAzO;BK$>hT+)g&}xsp7A((QoSXcx zFD$Fwp2_Lw33eU-9^v1HwR3zi&l%NeSh#L?ql~-I(B-R#^O^6*bP&eMWT5{FlLyUb z=1kqUsD8TF$RVTBpJ`ZS9xbr1tmVn|-m>j6iB1-sofRn`EklwgEqRqhOT%|8-Pros z$1z#a&vE5XsYhJOOTiNg@nQ8&w+2$39O5euEVbD!D0fJHRq6Q>u25|698+Jq&!92* z5^`IKTj#+Cb(fJxLS51{e;Jo!cXqo!Bu9I-ZeFS3Y+oSirqbF(H`H&aR&u8GieJb1 zxy3KC<^#uUZl)%wxgVU{e06d9Th6AMM^CTzVw_K$daQb8Yu=5AK@6KlnPSx&T01c2 z6J*6i<_<Tv4MRpHGjlBtYh16bdC<JSxw~`hea@+<>;~aJEwUW+&(XTI`JFqn`Ct@p z4#CE0d@{T;VDM+B!;1T?uW`0}Y%@DP7_+V-YjP}fXT`r;alWzf-Ii2I65Zp4_<a(@ z*EVCm#I;`(8rsbdJbJ(%e)Q4tb>O3mi0X?CBIdEen-$FKY{zD+-Xc7MBRPfcBR`(L zDOnvk@RDPN1I-_Z#qRO*<4hdez$B3#rl`9%bnZ9sQsTet4#^5sd({8ho(AoXZBSou zV9Gm+E%*N*uUdvG&)U;_6PV^0_<M`A2@a#JTEfZae8DUMTSBAFfGw9DYQ090icYF* z4QyH|#2!rUOIe{<V7WwuxP%9LqO(%DP)+;)v%K(lP{+yf1R~}*9SP&aQ-I+XAd0dQ zNupD71+r_Eh;qRtgL1f1lKiT9k^-2!Rpay$Nn-&!q=97?)0AKv(yU;2)mB_lsI4SC zWd3E9*oJApp-r2D#ccAM3T-gmuA4m{7H-Bo6SKt(4%sOUx!PYCF5KEPI<%FD3EDP| zUD}2T0bV5KfwdS8{9!Fvl=wKYo<Q*(hr<$9V^<07WYJ+_!ma>r9f6)Woh)9DaqS8$ zQ4?eUJ}9wx24<WHRtL=vyb&^CnQ?+x98Mc3lmiEpcszC$aJ|Taa^QrKfaS&U19fwd z8psB|BJs?)Rajk+mlfoc2I7HKpxlcE-VRwPQqdxTo#Id~jME0?qwPfmYXLka0^z`& z<7O<5ftAq>`1oX@x55bld04C_JL>k4js+{hg!Li-H<Q4eY$c9>=OnO!ReCH3a5aj- zi{Ms)KSSVL6Sx^=VZs76e{2L!9J?F%5@o{D<DY{{0Hp=KGQpl1>6vj@B~fL965w=L zX(m=25ga5IuLU-OjCdVJ94-fsWdqJP!4C1bc0&xdRSbhah9wa(^uEBWC6<|pv%z6d zg?sEu;I}dxC&<l)m111UqJUQd$A-hL!5V{_$KhDPaVcU|fmGmw6&&|k;2Luhtv2AZ z62r;K3Cvrt!`MvJK_>8CD-C@2oCESPxLg)x!d|QfhYUDMX1p?x$bi+yO8}Rt23S^{ z8WYgK#<~EPtXNP71;C>vAEj2YSbi)!a1YuF98hAh0%(nb^Mt0t;y!?K0Y{)XA)GxU z8smr71=#9|2Pc#cI9J7e1!o<!25cJG8v#pXmZqniC3+lQ0aP}I0aOOomLC)ZNZA8i zbOHo5Xo2nuIPt^)TL%mlApn2-IE(^L0Qj)Q1GlWeS?4N31|FkHP+`QfWBKW@96%Bm zMGA1piNWdv$FYG77!n!0IVGbC+C(B2qeQ}Dm39HIoZMIstRPxfEFz$u716b2;psS4 z|2yLuwI3*0rAkH<8H!SomRtsi|06Tl$N>`&=}ypG6VS5!e~Rv5frEc5AL0LH`D{K= z>!FiDf^wW%>{PT5@(%)2T>dlr6_nTUAL-p(!Q6bb8MZ;%PAJD>9aX*qL=wahh-8Rq z5DOqyLu`WB0r4rsQHawJF-Fw=a6%M>C=5{=q7p<kh*}W!AR0n6foK8I2BITG5=0M( zJ`e*ShCmF57zJ@3L^8w#h=(91LrjC10Wk;SDToCSiy@Xmtb|w%u@+(j#3qO>5N|{5 zfY=GK2VyV8rw~UW&O*c(!+M7(4N(iC4a5+LX%MR+_CTD5xWa@gPYWUmA{k;S#14p0 zA-;e(3UL;quqjoZG(;_k77%?P9)eg6@hL=%88yEWL>q`v5DOsoK*X3+(-R>oL8P@u z3&=?j$q;iOHb8W7aRZYPdY~pLl;Gmx4m_g<U|hhom8ccwKk;B@Kh#IfuXN!)zGwm% z;o{=u3MMo97YF|E!-GR<F+gqrjkvgYy1Mz&_7@iE>lN;z{7WvCtNh|2;h`F8pgdrn zHsEO2J)D*=BFHrW*uQvsP$Fns(E~x<hQRC?V9t-uc8Jjj5e5cePCq@Wy|F%s5Ch9j zCu+*z5a8$+low_4ARTIdFDnby<*9xiz$(Shro6#g$~-=jfCEt&Js<-l#~1*V1Bf~r zI{?rbEc?JB1q^Waft9sjyDV7b!J-HjNw64zOnN|o6j<K}7H6=Kc6)`RR-iOLTBO}> z%Q#x2YcM3#(NeG%Eg6OcrV<8TM}RAZa9?+#cZ6%G2W1<H>QCvPbi2{>O>uG%8iAf5 zxP?SLUDWELnB$_={Z9&#ho_e-u-2u_>j*ax-GPC4L@1@KB&x~of9Hqt(P<%R*(uJI zVG;h>|6ezQdZ9EYBDMJcB?YZN-_Y;~P!k@$VIcvo?w*0@Jg&gc3+*^PeTe@{QNURP za{fu@@vA0)5jM4zfcpPu`~O%Z5}2|s`oAg--A{x^IGp$w)H;xBYJnlyZrNf<DFxV0 zJ+Hr7#qa#@g3<O*YuD5h;z^?zQgC39FPOqLARx>a><&Zvr;?~w%D+!4TE6AmcRKx+ zf&{!HyLtn!J^xFkE>HK@O8vdw|ERftY9EyA&-!0h&;L#h(tAV)xdwtu1Gwx#{quln zEP+EY;OvCfE@<0<L+B`AYyYqE{VNra^XoYO$KCx(M{6Aab7~;>k9z!{bNqh2Q)e3f z*JY2P^=CwJaU$B3esT9;7uQHI?Ft$R0&xrIM~EhHuH9eV0fuOVb`!<{z)J96TTve^ z)LX^Bx33Egb&ZDg2(wuDf(r#q>lFR3%#;*FW7_<)o80`sB~9D_`mKMuA<Q(qFDY42 z?{6UxUBLsSFYve%hzSG#Bf)wQKzB?qCKTfd*1SNB8(0gaY!ARFgE;C!J<k6ve;6hj zNOZ^efPB>4Dq!s&>wSNU>>%(z0QgU)-JO7a<!|M}fbCJ3aFCN)PU^l<9|2|oVe10G zwM>oqE#55D(~}Yb(}Bs3x1v6&ekFzRU}ofh;?c1<8gKclIUA!>>VgZ~4%8}`Gubri zSAKMbmL9wY01t3f-$AJF2L`Y(f`thze}+M07>C~K&_JgA$4o<?zSA-P!4YcwuX%}L zsPhxio@QoY{$B{?pd~@W^bIOv$ZBw92`xAXixAbR6wZ4@lgmksoratyjv70QmI18N z5RE0H|3Dy9{u9y+f5VQn77C}~uj8h~f`7E*r}0^M9JJ%6l?!lKZd%H}JWCB4DZE2y z+x4Q=r?lsS(4ob@gW<mk*#EEe)cC=F_+NH_!Tht`o)Y^0Nly{b^NZ)@qT%i@PEFtT zi)Tn!rb}4f`o$^PXH#3K<-lMT(1!I#Xo2Zl5Ndl^idmM#kirL-sOefD7C<CJBtbNU zNQ8)iIJgM&Lo9%p1~CMp4MZh~oDeY(2N$3mhy@VSAcjD+foKSk2oVEu`X^OR55#JS z1rW&)Lm=8fRDwu^h=Djg59L8@fmi@B4PppH5=29YN)U+<F%YNcpj?P85DOrtK_o*Y zL9~Hr2$2Yp6CwuU;14JtVhh9qh-nbX5JMo^Ks1D?1d#|4195tmDt{1S55#JS1rXC9 zk|BmbBtbNUs05J+krN^Y;`Dd8KZrdLt05LZOoK><7y^+5(FUR+L?wtsh@22H5U0Pv z{X*=4*aEQ{VgbZ7h-8Q%5J?biAR0ncf=GnO2@wNv`YYT$z(5UU{;Kum*3UWOr% zlOWnaG=!)GkqD6!B4!y*&%p9P?19(<u^M8*GE9S<3^4>EX&Kr;ZU|8cB5@gVLXLqr z{RNh58TLTl0<n4-7C@c`k-Q8;ASXezS%!v?D?ubKLr%ys%W(QLEblVxfxHD`^)f7g zJZ%}0ArD!GB*<-+p&{f-%a8~;=Q6}VPQ&R>u>8xg2lAF>SPeN13m{KhhGfWT7y>zI z8QMTjLqo`wmLU;x8gfETLk#58@cvH2LC9&?133*_Ag5t9<ORzx4RRWiA*W#o<TNBf zPD2~WX=n&J4V56LArW#Kazai+4CKG?pHTsEP!#+v8B8<$#KyFUBIUw`q6PPq5#nsD z=xi*4lvKQ=_dIBUklL7JqO&$5s=aHIIR~~OjH3IdZ!)+bFY&@hr&HaLZ{z{I7l#kh z(}xfLiU~vtLU*&=5L87@9yfN%^0PrMb!9S0d~if!-l;Ww5%)y&C?Nn@HHZa214LLx za5#16HiVF&Yj_p!fplKMhka}bK#Dg0{IcS>IbzmTJ!m`Nj1W9V#xdJ{5s}_?;HQsV z@D2EsddU&-8YRD6<?o9OC@o43hZ-YAd>RbgRV3u{gKWIq^8kdwBylfar!7KA;QfAO zgBK!vXBYVCAqgxe1dC)`5v{>bN%&R4$jK0L<J;aH$Y4t>o`F38sg~6cY~<LAWKFV3 z^KA1&#wLCcv%cCPtItHl%Y61l9FP5UuZ-G)Y~}Z^-TTxJN#<>sPdT~`!RKrA_~HW* z3r!)Cte6urKn^g}AhIA2%}p=4XSpHH#?fpe>Lv)ji72zw<Bjn9xA6J5*dtqh^mDlA z1R?mncY0f1xgrW}%t?n;%n|%EwStX!KV+-4Opyq|2@xz_2Yxz8zM=LJ4tpOYkzQ_W zWYbPWumB5wI*86CZ{k`JUu2}Vpvq~VGcv@=C>eRg3`wgMEAO=oK!A^05ZsaOpLku3 zrY%V9CiZOX89799=Ty7EZeQeH%j2pauC54u&gFo`m3GKwK~rHJUqxiNObjn^+7F5U zqO2tv?~Vxnd~y4O<#vQMr=9G}YJuRx7uzuT!HBut`~Fp-zKEz64}K!n9kG+TdEr*} zPNeaT74FMv8)QYIEBI+4<Tb3*3D_XSwsF7bR|Q{0$<UGxpW%T}oyn3A`V}NHmfiu0 z!7k9v2-qMmN24AcS-TFIq1(UCrAGjH@*U?W;T?#SB@W!=GVw!R^M?iWZ}CPH(=0#X zay<|q!DRK-oNfsH?UF}nVJ=9`r9L`F*`0`)fK&KG({0FYl{p5!Ry#ysdXLaTp$(#A zI`}4_bv+Ui%i=hQGe=I;W5CZCsR`JpTDu!TsyPycecW^qfq<L*0XH>}JKblM%hS{l z1A>eu-vd=dVS(jXX_y)!;1kR56RUw}oY}=s`l5~SrzvuuYd1i;SK2?5*=K}!h_P(% zFfv0}rs=odzG8*wEpV|kJl=$qTQ{~BJg`OR`5j2HbX$?6srurcwCzZ6{x-umK~9LT zRog&PHwoErfhe_&(;X=i|C*W{?TJ*8ui&0A`yjzva?OWZ{SdQfH8|JeK!il+fZa;w zLssWqrf+*}fRH${haWd@K&a0f_6Xf9%Vb`*Ba+f5I(nSj4IyVT+f*%jB06iQ+xj^C zkQYY|ufAm(gz(v5!A~6#@AVkx-@5@B8sTj^6}Jr`W;-<OPa+}XFPzu2@A5=CZi;Ta zw%-rIUpa8juqqfa+{|3<zhI1%om_W6<^2|<7;_wF!c0P1ze+o%-tt7OI$JLJobpFv zjlW!7jFLf^ZR&LSyRDI{AH0ud4(&vA^ImLowe~<>vmxc{JN=No5^L|@FP1`Vr~z4- zlc{aO;*8+Fts%wWypUQp=k*6y1tP;d7LxBh*CA8<{bgoe+mJ(D+rC@Kx+C;uwq}=Z z`XRi!H9WdCsz}0N;)kKMEl5!NqLPD_8*)I1tFy!uY}bnA(TY_?80!Tj&4cZcwW;h) z?}gkElWBW{8=$;pOzk@d-WwwCS8gO<ezzUD<sN;puEP_-&FJ<%yBdUO&L4ExEVv25 z1@u3znIs`n#IvqA6+a{mFJ)L6r-vvOHYa@J-hs$v6)hO&dm-86^(~TvIAlH9=n6r4 z3*v`t$DRD<j?9S#)e3(JL}am5gj#MJB!)Tey`;7q5~nBGVHX#Gj7Ukgyi8w@a7mKD z&lP!{cglFzj6dR7s?Bu!pcTTu5m))c%N1EOEQuX50qN74kIsD9fPjZf@N+}L>RJ>O zf&&q{eP8^Bw{J#pTO<rkaUO`o^fzN%a4<rbvrP>9&K}{YiS1sI;)QS%vEZkIh~C^! z_|D~sIOl{cMUDC*D~nne2BOUohUiSku5njnNE@gxvIQaD?y+IhN4Fq2+h@nf8D5B( z>;>7Fc1^_GVbV8Y1e`a$)h(*H0E9c_hzibnGZJ=X8<D})6X9MF%e5j_86k1*2=<V6 zM*2U!OW<Y;K(-V9AM)M<DvIU%_Z`%ufT*Jw5ECjWBH)-vO4R@gh#;6zJTia?iUbJ? zCdP~zb5_ilj+ilH#yl9oI3ngWL{U&)?XKMe`al2oyX(HY*1d1t(&0Ow+SS$7)zvk< zt7>{OH7?x;P(9;*AI|n1P16^Sct+Rtpm!&%Yt;O#g4($+4mEBOK_B%pVgHBH$wQ|< zF>Er1`mCS+-r=eTE%8k5*Htl!))zu&s`=$qqx6eE{nc9iv$dLiZp~SB^TY9>^mHrx zTaP}Bp~)^vy&+9~XqS$QTK0DuO;_E{-*>Q$Go2B4Bw=%IAiY)JIy6gTO1)Z6T$Q%o zpXQFu`8#i91g){oIi*95;k0!|O@FWBVf41QS&h7MRu7kMd>B1+44ox))@?n@huU3y zFn%Bjp`l&R(gCtQ^iqjgfn8WI<=<y>rdJF;=E<K0QCBB<%+y4Cnm_-V<(lPzR9eG{ z{g=_aZ%b-KE()N}`&|6E&87`qm^JWA=`{sqzco5tZX%^SBZ{_;b5~Hd*nkBMQL^9k ztf8ym_i>fC0g`Iv6%|zw->MV;YaEaHbNEA*^Yw+Rd~U|?={54-_@+i{|23myuv?>{ zRqYyQ>p9wT#TSfy9#i!5jJQ4TZ-;2@{QOPVGVjlJ{K1vuDLkLb@tGcb(zR*92FC;A zeK3sl-;Lk#eLSFS;OLh)mgHhRM9wymJkA=H!Q<y(-zx4q4fiA7gGnI05?@SsxPRp& z8xNXCH5Gqnc2oAGZwA5Mj?&Hj^J}$b*C`v%Nv!(%m-=HFRUY4;<6&%D7R2!~O`^Ep zjM@jc>T4qDybx)ag*uT=)SvF}_H-`It6rX#nz4k&?QnJ3etS7>cJM*1W+ztDHA@e) z&)B@4O1j3^T|Z+pRpzvvmy@=ID$e{mF?Z88`XDd!fZzNbwESt865rTe^y90{x-&=Y zrsu{t9skUEFC9?($^5YP`{~ZW`WZ6)19W`en(k}j(&)=c+rHQYAEZqh>USy`c!*|Y zHCy$_=`hu}?mYX{`Us^)HEFG8N9iRW+ugo3k5SLC*Yodcj?r5UCWlXWe4Msk-}zzh zi|KTKR})v~y(ehU0}qGrWhd#D&uJYq<4;kStA0xcjXX{NK0NNBq01TirobYiR{OJ9 zj&t<XhbNtvemX}ZhFx#aC?tapTdbNg?NJ8Z=NvL?w%d7{64L2`#qsm>#&G?nk?k(f zw#BVV2dun6?<M9LJ*s|@#x7}TQa=77wYc&r?ZS(TwB^(r<2rg>qOS+9E3`RziP|06 z^6GWF%XE&(njE|3m+AfGyP{+jmudg~(ayKVUZE}SHho*~;T5{WR$g2xze@FTq}Ar_ zy-Gh0b=i{9D3jK|W)hr|m`R<&lb)Nu&!k6&6m1wj;2ND-Hr3kZ)HND(G`H31w%2LX zPD$mT7F?%==al`f6<(*?k1pBN-|q%}xX>zg&V?KFywSqJp&f40HtW`1{kG&LeR^51 zU-y!mbm=MYu+}4P(W#&Irkp;13+v}LRSe%VpxVOQ)MnVz8~Zi4sqN&xL-YsVp&iM{ zaHA7<XbYeHy~ov6Q76@r6=rf3tuySFfBJY8eU%)OYr0KE`yO96H0-{LKJfVG`+~o+ zXj<y>YIAL}Xx*KA_l^k3qLFRyTh&>UMa$NXIlm?|ixzHm-&9eWMMo#xDRb&@mpV*% zAyo{!OSjE=Za942U23*5-9dKZF74dn<;mQ4cj;`WL2PaBJvw;mnsv|I?oq$&bAjz9 z-lHFSj~VQ_^B$FcJHNyG!9AL{Yt9^5jr+9WyBZc>yWFQ2MmE2&AmBdD(vvG|Cf}!9 z;wP^3KYO2!t)}R*`qO=CRcbYNzwrYaba(&7t?m!#xZ%B<Oq}q5=H4kvv)KNCUf1(I zcP8rrp2r7t<<%1fGb|s{!k5)!jt+ZB4>VlgGIP#DN>+4lbL#LznzyCnp2g~i)Mi<H zu5+D7w3g~r$s_wm^v)Ce2K`1qqFddb`R`cvh-MtH)qj5W5xsa|Mvu}DkLarVDJ_Z` zXVWGNT0YKl&Za4~yRKUrkxl)a&(G<)E}Jem;+uK=ayGphXfwBEel{hky+4LD&!J_F zTQ^_fmP38}8#--^&Y=s`O{TBhm_vhfpH>UY%%PrZ&V6cIm_t{dcrYrX#bc^}>UFZ* z{W1NJ6Siu5^keFwyKdd54UcJFn(qaptB+||yjzzJ`H!hz`I)*cn?0dHOKwj7*6Rr! zS=e*q(TFFsOuBrP@0ur6e}A0?>hn+NlxDj&dVPFC+iM!-Z*KUMdhNfp>yhJAS{hmL zs%Z36Y=2Mb^+{f_>h!1dW8v)D2VOp<qgqD)6Quu)KKLk^_N&V?I_paAx<tQclysVJ z_IBnoI%t?B>Avq7-E!%Cjj{Ki(W4J)uAN=}jJ6v$#W>0IIju1<G<Ce^bDA{wVSsb& zb6Om*Ciutt=QLxX>)o{%pVOje@+&4EpVQAZ5BM)>@PdwLIsNo&`xkVddDM@#0Wau< zO}}hBl3vhOh4D*#54@n!jY>?sAHJY#iiYZ1|9nB`SC}3AQD03fR6BMIFjLbWLASqd zvQyK$?RIZ`(N|43^lo>ip}(5SUo;;<qSdr+@4iVRW~*uI?nAvJ*RXUAZ=ap8S50SH znB_&ERnzo`CvFC1sp-O-S+o1(sp-@{>zkW?Q`6O+R+|d-UeeN=bDN|$e@Rb&UA}UB zr<b(1qp6vR^Go{SLDAidgI?lw^pb8_n|<m-!b@87PI0}6g)eF3wU8rkHoc^qw@y7e z=-^9g)^mKT^ouWP^{9|v(uXgpN**=R|J_UKsW-RpwjVEP#NK6DPYrVEr?bK3wOi#< zmvd(y$vWrKZuahxeO+?tjc;pi`wh;eYFRg(z>r+_c`&cR$b?)vvsOtRp9Q&eLE431 zwi|QletA1hqXW5g;o@GO-)H2~O;4?Lj@-?qq1EziV)JsT>q?)s7A3j#tkk>fqgt=% z*k8NqO=|jzj&ISx-mv2<x^iBZlUsYfqW4~I*l6DG6-|k__j$YjD|*b$?P!znuV`X| z?=R(ySJc>I$UXJ)SM<l3X~cHNE84caqR*^juV~FK-zu(NeMQTLj2~Mq=M^2%DQtPy z53i_mWY#RdvRCx|Q>FVPgFO0AwClSiE%N9&<%{qQ)_FAK_V?V)G>=^eUHh-|$;193 zkM7^omBvQr(HBV{vIfq~qqWMn&a_yOM^BNoze~60(b(J}W6m7SqYhtg9!R*7M<qY) z9jqSZ(Sv@+>u0~sqwm}K&`G6vG%Qr-rlH<z>e}sO#`dPK>E6qJ?W`<b)2ZuE{I%cV zHC?k}ZHQ^#*YsBHBZHRvy{2mm4?p-G_L?ruw<#Pt<u#p`aO>#)g|F$fcR$R^HoT@* zo4b3;_rInw&ELwVo_S4!n~ZyU@YZYEc5TC<&!4@fag9xPSNrmsHl3ICxaF_cG$+Ze zs7u{9G-TBFpQPoR-|k`fy?}gBS!;2;Un1!o6lff9M8#Ijh(Yli$3#`Pp5Js^57Ek1 zyvGq$JO3x#UsX*D_gYoM%*<=yGJjToLJ;p`)aN+Mah}eE8d>#X<$N!sW52QO1a?(} z7$<&zQ-Sw2;{A<Auwx$oTaWLL=}F0-$II_6#e2s8e7yXaG>QDUzhb><>su+-hp3ny z(`l$!9#OenTkljXpQvm_E!H1bvAm*+?L}0!;sV<XSFyc_%5H(#xvG4L?Lkz2p1<Sy z7WMsa=bx>vz~d2Bi7aTwd`XmW{*|*LSo=s6ZQlG?Vc&m-4Eb*{85c4{{_}oYyw?}) zVm*k=RgL=uQdY1!lr)Jx=v>v;0L!^^$@YeWbbD?(chga#=uC~GJG1SAU6_fLHTWXa zJAbjCtf~!(F|=S@Lj<O){@_K7t4`0e2Yvj;Oa9>GKbSp8<hS(8{@~?*@R4f2r$71! z8(>+*_9m`}fOQ<=DwAM|wPX}q{{c%LT_U4<vvoo~(UC#HG3+NV_66|u%$SX&=nuZM zjoV96GoG6$p`Jz6By#&8CD)$Yx%#4t`F0EB@yVF}CaPj5kKcfLe?4b0f9V>|Vm_jZ zc9ExG{v!887SrVgV7{W_afs=erhvc3Q~~}PQy=ixm<s+HQ#tr+OeNs2F)<PRHTDMl zH6}{%*O;b(zs58L{57T;@Yk41z+Yn$1^yaSCHQMh1%HjH4E!~wYVg;Xnt;E?G#UIg zrfJ}>F_nS8#xw=|HKt1N*O)56Ut_8Qe~qae{57UB@Yk4{fWO963H};W75HmR72vNi zW#u>rDg%FwsTBM*rcvOpF;#-U##9CV8rZ>KW2ymv4H*12rh>o5RPfiBD!^Z3ssVqE zsT%w>rYi8)m<s+HQ#tr+U<ZGVsRsNtrV{Yin52Ne##90R8dDYcYfO{DUt?+l{u)y$ z_-jlx;IA>2gTKZ!8T>V-QQ)sJ^#Om4X$JUfOy%IOF;#%S##HdvfNQnC4eSH{8q*B$ z*MPxa13UO@Oy%IOF--=44ea2rF;#=V1`PfhQw{iQOeNs2F-ZY`jj0LvYfLl1Ut^jK z{u)ya_-jlBe+?A;HKsD~*O;b(zs58J{57V@;IA=NfWOAn2mCdrDd4X$Rf509)CBxB zrWxR`K|J_tOq0Q1V=4oG4dTIHW10c}8dE9wYfJ@y4HWz}rtCZlssVou82mM+Qt;Q9 znt;E?GzI)MrfTrlm}<aZV=4uIjj0d#YfL5JuQ8E<zs6Jw{u)yi_-jm)!Czyl1b>Zb z2KZ~h;IA=NgTKa93jP{XIrwW}2Y-#J1pGB7YVg;XD!^Z3D)?)l;IDy#zs58J{57UB z@Yk41z+Yn$1^yb-WboHO!Czyl1b+<}{57T;@Yk58fWO964gMNa*8T*I0)LIM1pGB7 zDd4X$jRJp-X)^e0OijRFV=4oGjj06uH73d6uQ8Q^zs58L{57Tu@Yg`WUt_8Qe~oDd z_-jmkz+YpU2L2jT4ftzJW#F$dRf509RPfiBO2A)Zk_P@7(-iR6n5s81e~oD}_-kMX ze~qaR_-jm+;IA>2gTDrL@Yk5C!CzyV0sb0OCHQMhrQokIO$L7r82mM0@Yk4{fWO96 z1^yaSb{z?t2L2jj3HWPF(!gH>1%HjH6#O-&8t~Vc`hdU2R1W?cQx*7YU<ZE<82mM+ z3h>vMW`MuOR094Q6Djy>z~HYj(SW}O3jP{XHTY{xCE%|yk%7O)G#UIgVDQ(NO2A(O z27ird8u)8WlfhqOss?`z;=x~IssVqEsS5lxrZVu?n99Ll13UO@Ocmg-F--=4jj0m+ zHKua#*O;ooUt_8Oe+?M?HKsn`uQ6r)gP=0-*BGn7Ut_8Se+|-szs6Jn{u<L1!CzzL z0e_9L6#O-&GVs@!W`Ms23jP{X6Y$rVO2A)Zq5yx5sSo&TOjY2oG1Y*-#xxE5HKr!u zuQ8Q_zs6MX*O;onUt{V6{u<L1@Yf(7{57T;@Yg`WUt{{)`bEY<81CXzZDi6>$GZ`w z_3xOxaWwNd`MF`W3dep=3KOO%&pCG7k+7>{_YaN_Hg6w$X-I|Rs{UX7UC;h<EX`jl z8LcrOf3KKbamcL!IaY1Jxk*0_Ny`UDyRR*6MXuj7%8$9BOJY?&9$sDAf_P?`e`>b+ zrQ`goZMQc*)`*P1HYH$Z;1<UY;Te~f1~n$>msIDAU9HHyl6))khSsFcXb)$%NFzex zCaM>CT9M}7cc;k=tjWDIL36i6v>{!u*{*(g-HhnW(_L#;VnI}g9?l$h#fa299C`S* z(uizta{bDlm8N9jT&eSufcB)*zK(MiAGansbrRxk9coJIJ-Bz{^<YaZ$3e%Yuea{m zd-kWJ+ZCVjHwH8&xz@K1HQ!=S43oAV)Zf^e)Hm9$+;qm2yx8_*)zOAsNP6uxt{<q3 zTs8l>qaw32xxDIDkJu%*9j`PRXn%RlPsc;M?)3bz%AVNDvMdhVZBFW%G&!@SP74yZ zU}tS7Sy$pTrEbEcf+ELe6(w`Vt~4Y${kuoIhgg#GTkV!Vmza@Z&0e@?&XJM|o6!B! zy4N74O1ZP?OjF``aM1L}Qb(eg@hNowJ9}buU~kQDWj#sTh%Q&gUZ$k=o!Om7O6^I; zhJ&vYbsWhr!)NYctsIHN+g-k0kC~9>tru1clC>j>)oF7=$6Ax>x0a?aFziW;+Z=B* zakC9s7-+n2$<$&;UOzpF^)L5|y8{}L)19}EJCtrq!u^{+{bbdFEZk!}c*<!9(zm;D zjQpq#`8qGGy3@Tbq@J~d@u79z<jm$W<GCB!5_!pV%V%Q=aiX2~tQ_G&2Hq^0(R-sQ zSz=$Sx#v(fvS`!o=dP)J$=lG=2R5&5OseZNd)<4fC()nX>qfyQHxk$2rQ_8vwaJ?8 z#m3!>tcj0Dk3J6Ldy{3u>;fDv^d@Vgi}hxvI+NS;_wD{6>rH%jEqip~ml=6<y7{gq zJGzr?InBw_TDGK*tZ4COV+Rsz6V_g(*Nf!%y)!JyH6i{jC0%2yX&i&QgwM=<)}7Qi zFv-hM(v}pPwm+gi-jnDCO>4Y7!iqc@JK*4$MvlbEcz)ONwRK7JW?NPmruD<~Sc80@ zG<kQ=+h$~FcHI^ATA7n6vy=YrVB<yF6?=TzvadC1*WT!=%g|nATG##mEWOm0be<Pu zEdT02I#}pUcz(MzInuGT*OHUo#F+F<^pEUC`i5Ma<Nuc%F^&l9xZ9~OF`ux^y0K#~ za`3yMyvgWZByhvSv3h^?AijI*H5zkJPImoW+G0UYPm;Q%-ejKzuH@v}*kUVZcM@A| z^_)iC>yt0bPVUp4R-bgJ_N<|cx*ahNf4y3k*oVw%kUaR!kgnw6ip1Ul#|_B7jl)wz z4%m~;$;Qj2-FlN^Uxmrs%WX)T4fA|2_Gm+Hw7q+*bg~zDGPUXDmTTQe(`62)-XwUC z%VhLt7f%ObS2U~P@Mf;W!QksRn|^&svpToNR`ah<{<?F!`%xQ8t{f%j63aSa`y=Gy zsp9q@yLTo-f0R6YTicD;9rnoVndeECp1HW^k&Y)(NLSTbbh$T)=<W3Vw7Ctr+uSwv zkgq3Mx29}HgIZn5290v;-a5{t<z#!$?9yJuebX@AFDf~)d2Bl^KC}fXKe_b5+yEOA z{r03}bhkESakGc2iPh~%trMej>WuUzxsr9qdsgd1vgcp$?XT`d^5!4Zo&2K*3GqMd z_$I#}@pkNE|IdZGB&E|{+4}?Rr%mci-%{$|hU^$`T;{Ucm5d)8KjF#-e=_6yjqP3o z{78EDMs^E4hZD;K8<c15eTkuEdh_|Ke8^E6?KJkEk>tsC<+ctR{w5;>AM5W~At%>$ z&qwZ$8Aev`ebT9mn;U8Eyz$2}n_(p9YMIsA;UmZ-yJ|1Hw(3U~*6_?f>+MQ<jJ$4G zoZO3SOz`wNu+tW=qoJhv!bGR82Zxe|!A%S{ee@^aqC1~5+w4RJq@SBSzoa+G?~u?Z zK6fPX-6*Z8zCD5*&YqkyT|I)NH!)h%pzctjs@^^4m_-ND^4P^kQ*Zc^$MLoGfBxu4 z7MouRiB29#;&kIzeeL`=@!5a3ypBs-^8LKuqa?3xq`bz+zv_MRBl}MzHwu{jH|fyD zckvLDLPxve=q4@Z4JTf^PCdT%xeb})qq9XXxi4vI?6=Tj%K$Qa-%ri#cn7ldio^YK zZ-261e^jo6=>T%CdvXWE;6cRfk=4$N_I{-Q<{I*6JN<}WY?DVVTl6N42PFP1NE<;6 z+w{BTbI^hGvTIs6`R537riFj+(u#rPntyWbQD6Ltr>=YP{@g+2?yZ(jCk^XC;vB;D z&h&O63wrjxdqSr_Nw}6d;`KrwGTwjKG@WyP<mvKzJz{R#k}ajxcck@bi~WO)^z;iF zJ~(6~SuoP^+oDu!l4|t0hq{R)ndV(%!c>JHDZkL{?WO$#NKRH@%+t00WbD|*k{>aH z$ZWkEdZ*$#l9TIdXL+TJB(bYjKU7uoB`cD1ZYH@lA#Glq*xNX=5An9$QxN{fmFN%N zK61e5e&mcnLAOpSXOc9&M)2)Bt|Z;pYSzNz_T*aM3#M<nyO9^h&%SN>=tc$)EEz_^ ze2G`H#Gu8mnv<)an_jcd_9eDIo-P_Sz>_rC_ws|K`vBs7(ztVjZG(wfL5HBWEuF|X z(@wWC-TlbFe}6#(_X)CfmV&C%h6yU|Jy%eL?@@05^orYc4D%s<$~tF3W$Dp^s{OWc zo_k+VWsjN#kWMklj%)8QK{XpU37RtduAq`%H47nKnr=@)WxK|6eX>hX`OfEpn&>w! z67tjSCurK%IfAMlpA$6d(04(7I(93DbTYR{K~=T(3M!3!D`?s@(-N>N?E(c=Y)TPS zcIbtm>bO?l!0z+WU(l$ATLhIA<_elT&#V;e$vL5d%3tr}{7=51X|}fC1^bMtf-09@ z5;SVG!4HT}t3FszpRi4WCU1Vn<F|G#1G{EIqM*qwZwjhf-?SX!P4YtoRhb+YRBl!4 zC&a6ad<B)f*)6DSb-AEwYyLfolmpv;K{|D_AA<T!@TmY+p5G-Xdn=KAfBy8m<m)(M zK^|@CxX+!Ool`&A_M?JCcfQ=RLE#wE#6c=uw8@nipZmDo$FIP#`i#-%{04-R?`KaG zZ~YNUI)^8GSoLBwQTi!&ty^G29=4dcujyq4DV}*N>e7dCWW)QFv4!)7lHRM+W=&2U zMB+>(RtCv_WN((AMMTgjBFh`~<G6_n8PtD+#jXz{h-qZ%lf+d6iD_t9uTaxa;@4%? z=G<sXR8KC+`vw}3#WlU<g*Aqfk#*xXq-GByfp?CqI}|&d)U%jUi^L5l8Hd)7*?fOE zQ7k(+AT@a`Ssr<^_3R@<NcE|uz85U&kUM0aY5m>K<gBH0m#^i+$YrOzzq?%zB`;l1 zzCD{AK*pZ@*=DoeFfu*$tc`)MH_?xEO0swKBlR~oGTX2=ko3sZ$uXNZn$_2{$2A8# zk$$qF<Gxq~lDXCAZ#tdcftWfr*}UO&B<Y^}N;#`lZ*sJI@U`owMibKp!}Bciok;S& zdOu6v4klyjo*BODXdu~=__?^_CIy-0IM}w}u^VxG*K%I0rU6;y)XQ#%ei(^#Ua@NH zfpKJYEsMJ*FUFAGEsei5s5gq#KGL^tpKoJG9mTAUD{}ggA+9%yA3yC&Jc~ADS6GfD z8z)=doMYOXY^PuP9l0=$=xx5Ood0w*nWq1KMxFQeBr0;^XgL2&L0EuCqts&0w`e7y zl0->`q(Y~ndPS{@dKIlIXhkAV1F6KI#JCL6)>X7rs)hzAClcsiVrMtH2mMRt`Zy!# zU+T^KJ`Vbqty%ZFK>yO;uYn5s7q!*yf1rPv+<$6M=wIS)M1F++WzUJw&d|R+To{-H z{fk{-Tm<wl&!*%CL;v#fd8=aRUusv++X?+kqvM_Rp?|4pJn9hiFE@5O*h2sEZS(7H z(7&|l*1!|`7Yplet)YLhnirse{zcXE{88v%+FRH>fc|Bd<;Drnzs&I7I0X8a$L){W zK>yNVkoz;}U))>oZv_3z?7<E~|6<l=@C@i*ZuLkU4gE_e<KUjqzr^}~dI$Z>wGiha z(7(*p`4|KJOJKh{HqgHq-u7Gz{mbWNz1Bnj@+8H=8TuESiH+7m|ML3sEunw$>Gymy z^e@SpZ8M;M34Z<eWawZ1HY10ie>wLvVKDSB`|k~33;j!3Bky$RU))BP6+r)T_k3TW zf7vi#_A}^T`eqHahW=$t^4F)(zf74|%LDqCx!cR0LjN+m%aiKRzxc18+!gwl61w0m z^e>N-w{M01rTy@LFVMfpdq?;||B{`&X?m6ZMULymDPJ#MK^y$gVN1p<aJ_g1J^CbN zpERg~j(7Ih6x@rke%oFpW)-+zyn<F++`IJZ`(HHUlg{B<H-FKOIwvP7|M^8jj%)UI zUiypX`K;by9Q%vLzSg<sF!UFVF@Bn`)ZrIxDFmj%dhuU${+!ZR4`2VJ*IT4K)w%wY zKAC=Eg5sZ_bbeyXwgt<6(r%XNgN{x7Ne@NGDff-|iR;CGQe(gJZI<nS(%6iMB}WZ@ z(kthBjff~Hr?uBtpEo4CoW8xGvnu>-IbHg4<X?xkms98YWy9MoD982U<#bM;I$0}x z%c-XHqRtY^;!~{ckG3nv_2T7p!J;`|W)_#xZ#7rU>-emUP9{mgKQEP0)yeY>zwaxf zZ7YmAwp>|87j%8>IBseg{p-uwSGmDu)VtZcBh&kp(c3k%J=|@}aJ_gL-QFgrb6>qO zYJOnL={W^I=*Z+1iSM5Lpv|H#8%JIKL4SUn+o{EYAM|X{SjE>hKj^TRvi@&o{Gj2+ zs+~IFKd8t2&{|GIf8cuYA2g-;<+&D?KWMeSlfK_;%;JUh;y-9kSLw>dpT1M8(6A<( zAAP6Qw&eB8y6~MomJa@4`p<XDzpwb6R%9%$(`oj18l7%Xn#aCB_RqvuwNH)sPSx)p zmZ!OYr*ACRCtm6Hop#7o^(kZDAA69j)4;pVclyI<!;<sgODVO@pETf2DZOVTTcmTZ zlsZ%dDsP`FrF#m)>YZTM$A)=2B^hf=sYlvg&FeX(^u)4^)9qtRalLpcZCEq@g2cO& zK0AA8((0b2G-dk?9S;j;7eXnn7cZr9VZrz}+QNHye=~MH^7Z21=oB66WrxpxqZdD^ zb=&O!Mi<y03){2)8_nDvKizZwH(KY)y85~a-{`^J-SVD>e52uUIv1`F`G)JoztKg% zoGxp+eWRzJyC#~OexrI*HiX9;e#7<R-)Iv>L1RTh3B79T687z72@S}c-fm}B39c6} zp^nDe^!pqvp~=w$vwChRp&6<q2e+lnF02<Xp~fLPY{_^D{obbk*iQi^bel(y+1>+6 zaJ_g5eV#EteMr|5Di73|_@iwJUGY!n(8CQ&aJ_g5Ew}2>ZB$7yecMQt?#KGE9l4(_ zhGZAhq0;3Yldcuhr9a%RoIY7hGluJg{k5-{?z!1EKVV}q{p>qkc6V_xt`{$+4q-k$ zKaVe_xdW!0Tpd)5YZ{B`uNkM_n7I|xkM)Y&_3Vpj-@j6aR9F<#My0tQYPBe)moL?S z*`^+2VZC@UUGMoUa7keiwg0QrF7@jo>S_7(tV?zgjW}R7H~o4MeYs@kGjgVg`kfn) z^6)?r_0XBHKXGdj4N)C>WxukBD&2M3{FPKhCpY}Z?d7B*I$ANT+wJfoy6#T#)f<W; zdVRvx+?;_$v@9nuxYV_XdVSd|Ywu7*=eBxaHrlF)_8&H~-BFVw+E55=`{24+GitH) zhG|r%tdQ0^u)}%DmqJ=?ciw5s+(LRKZqL%32Zi+Q-pSinUMr-7JG9MFoGHZh;_P#V zJqy-!M<ESLG_q{IwvaB?9euCOB4!uXix<)_y{~2Y#T8QbTF(m?jVYw17MuNV|6NGW z$9F7iKA@1g8mjjtxE9hwr-%CGITX?#EyjKx(W#K0lXmoY)wYlx`}p2>qER7D&XVag zty4%9)h=0N>J-vYVZnF->)(HE>G!b!*NYd>6dx-c{Rd1fr+bxME1>mlhcEtqwt&io z1>*(uuk(e=n(r>4n;PVGaAKdQJ8Go+MK3R)hG|I+(vk|O*X=EKKc*JY?(L_i`@|H` z_Bs!z91bm@`OB11ZAKQ*Llc)y+c>ZQ*NYcWKSh(($4LQwae7_+kZuLkqCrX<9g6}Q zU)Fm1@m2-&&0u$BLZbqjlM!OzR=WV#ix<!+VZnGl^-NFfS@bEN#-`IAUvu;684v4_ z;_Q6dV*1woHSgrpVe01PZ7%224xe4+9;fo@tCIyGQx4|SRg;YaPVCC3o9e5Z>TJrV z8@4V~4qTB>pL9%~nKnNk*Nf-VSr3~voj)<3Cd4?;s~M3`b-I-MEE<(h>$H#aZ|Rp$ zuRZv=?L_~4+T)gfU4Qp{YU<W)QC*r(>t}Xn|MTg-jL-8HSmx8NvcKQ@w#}#Q+;=sV z88f>O@~Kj)bGED&W6dwA<`=u)F+2R@bFqddZ+H_{{7FOWD`pI?nWv$vT$iMpJkd~x zP2Gp|V!sdB<MC<l@z*qTywid?yE52)(?+vTZ;or|(NEUVoepT|E@`O#^qm^2n0a95 zlZ_fWNKeO}uGG-n;JCwk7iw_5IO7lL9X3za&@12E^xMT~Xjy}V4M)dnX!-8^yIz4B zIwvkV<qNwntI_Szx7GbM^zx|2H~aL_;CgYE&TYo=D|Q-cJhIi%r7{hD-(h0;D02<2 z7uQhRN&Rh1jaYiVUYsh0_2PoR$Zi8gl}Pw{haKR52q9z)d>>}WIgyusDr%ad^Mi;y zd353y?`g}<iu}piF8SD()>`|n`DSiUYVFpp_r~=U+WZdJh7&MdyT1|S9n0TBYu9-` zF5y*+tCjh^=yXK#X1I2L={>f8Kcs%GUC$)0FR3}AVb^v$m%{TGd~p4fsEQ-f{*WK) z@9SS!^l$51SUPb%l%V1|7*WM_FQT6BV`8>$=45+O#dS8K@_G{HmDpSLf3sdklgQJF zTDks5yssBkT=^|NapP|5u8C7}s>w&%4el^$Y(070u2b(%{cI#Zb?D|<2iN9ub$+w+ z2EMIhyHC3`?el@%eLXrnf7`t1)8*9%T7BGf|7dDr!n&VEj?dazZthu@b7bm~4xv`A zr%zKw<M;~y+{8~QdEcz3)sMdW*0atVU$-|kzE90smoa{)VS~>n??2MrTDD>5rRaSV zOJm$!+ozr~ZK~{RtM@*A>C-ulzD_!@xcB#3PIdD~4VfQaed4|QZvGoJy9P<^Pt<v{ zpc+41_E$WAqOvIQxf7y_=TX$(&Zl_ZMP<`7zpZcjUwwYXby%W`=UG&KVE^;yTg*pP zv0g-#i0vFT1KXddeE)VXqQ;Dg5d2A|lAuVo07nSwbK-T+E_UI1XBQ#6h5SKAY>q!( z_4*dCU*2y{$NNl+bKR~E*#Xz-|6ke{9=PQH^zsJBM+xUkEH7O5@HkDlV&GLB71oRy zu@_rUCaJ?-@QfN*iv^Dpfi+sNW(*YKK=s)RY_RrBv_ZbGEhzLWkUu;b2IA_oR|9-O zd~5cCczB)+uoE&gG+-b0f^7z{7o;1AI+Q8oKa9O#->@bO?BVQX!d_AA)ttSe*$c|5 zWG^V|bkrG4A$}%%K|ZtC3$|zL+9Vy=YZLMorcjRU>;?PT#a@u^ID0|4;0LF`{)oN6 zK8#f$JiE?_RSMLP`%?ZKC12D~)Oggf><LCz5)a`xS#rrF;R#4Cl70Xzgs~?qSxNc| z#}CZygCubLRfB99-;enGrYPhzRLOE~SD>b$iqCn{h`a)y`-GZ?Dp`r!qo$!sR$+R4 zPLvU{3^gA0_vbYI*XKu#V)YQqp57G8o+A~`RD24Q_zbE4v^_k3YFw4=;OS9as#MT_ z+I}3X=O9*waV(!nLRrSJ7<k52<<qD-|1Zfel07FYhUE>Vg(I%I2l3PQ&*xhG*ZPWL zEgMQ4%<_t1`GhhKX5}8mNX!xHPOO9fbo`J<G&}YPNyu;8izWKc+b6I+!}g<Dxx^B{ zS>UzypSI^m7|lu{ZVROs_x_*jBVMQl-i9CtzURsu{(b+jKXG-b6)StJB#z|+Pcajp zaW;w_&BT8x)4%5j+Xk^bpeAG46V0qxZcs09p2Jzq#Ibz@G2(6O_cK*_tkBGUe~y`W z{(mpwD3%Yj*hqHH0@>gAe<`QfWdBF<<9p#p3}uGe{QWAZJSWi7Ca@InRJf|oV}lZk zYjnkZgZ_JcL2MMOnMk$`JlV~P)g08(zx4vVC5z`r+@}<G;uIb1I%Zt3Q`DFkr+x$b z2;<gZ(_ycFQ~1n+c=+4{^>pzHh#JTqa2gRJJh@F950CW>?iUaqJSfuBrB5%GRQUXI zii+}yWRHqZU{8y~MaYAKqr=BUu;+h9MtB9shDMHpv|`Y#<^5z4YAI?ts$?Cv*Fe=p zH9&2MYJzHxYKPhj)dzJ1sseQsYAEVB)F{+g)Oge>s7lmXs7a{FsB2KSqwYf$^FM-o z8ub#Y3RR8z4z(1u#(G{Kx~NiA6I44?IKL3wk$q5oQ5C46s8Oi#s7lmi)D+Y-)J#-0 zss>ee123Nx)d<xD)f`oZYKJOEbw~9<^+i>nhN8x!CZndHiutD@XP~N3)u^SYx*K_U zO;Ed`_C$3@RiGxJrl1ati;#FlMo0#+=OPYe&-@(}8Ygj$9wQkT5G!G}Q2_}OunP+3 zgQbfBU}+=xJBVfRp>ffIfxTzjYtyrQ;-Zl}0wN@?!GRL5fM|(RR5a5Bi3i)iN8C7x zQ(TB-U~rVgn>~oQU*rTyuizjdU$zZ<=57LP7cIPDv26RGP^K)8F>rs#@(6~+EFV@{ z79ST97lRMtWO>F0hX)43{UQXGe<TpwN7ZQ9pO&4x*!?McLGbeGG-_0*1R-DGQ7l-R zc(GstZxUF5Xo<VKLwL9Yd}D!!fkJ=Bwr71{1dAHP7z#O*{e=!>5c_10W9lk=rojC# z^va;nPr_Xj&zEms$vmGJZ3><rJU_ECj%9=S!&5sew}p7VzsfkiU-)FJjDvI@tOQVQ zSC(@iQ!mC)hfb_t2L*-_df;(_!ntr_8p3oS+b)W!xA3_rVfVd}>~lpT>BZvV%<}x> zgj^vXz90CMfc@}eXVJJ{cz!4keE)Dy$OGTMaQcM^UXIG`d3oT|g*OOZF8;aApKHqV z;pK#TIJip?%L||GVhm5m%l~`46DuVIA5?hn#r}0-bvlauO{j7_5Ci`#B_=`|NN1vr zfs{P8yTo1M!1f-_{=%K07=qbZv62iH{3S8&|7JB|wfFl!bBXxx_xOJ&cXpTX|MqVd z^C18H_j~&3%=Z-k!4FmZkNm5e!wgB~ziQ0q{2%!zZg28`^Qjk(T{(Tm%vrPN%uSj% zf5E~<i<cxXUABD1%2lh^tX;Q$!^TaUQ?_i~wtdIWU8%eG?A^Ejp95(J4;?;o^w{zA z6DLodK6Cb5#`y~uFI~QJHS^l_8#iy=zN5;zd++{(hmW#z9zS{d?D-4z%iLFauiw0V z_x{7jPoKYh)#Mix78RF#EB*eXto-M%3N}p6e($7aEnPkR+6Hy%)|1w6VA!xx<0eK; zjhi)Z(Xy3E>o#po&Dym$?_kl<(#pD%taF#H-MZV@+Sxnw=;=tPJRp$$Fu>@L&@p4f z#)U^jMvae-iH(~uF+O3E--y3Q`YZl>`{XH8rzQUHKK}pR`~Ux3|4z;>y?VR4x%ctt z>*>|c+o%74frADQ8R|Q1IIsWz-u{0?{f~<b=`5?#3+RaN5Apj#7{h{~iwyn`1Sv8b z))ImdGK>#GFh_=QLI^Ts@UI})A;Z`p1UWK{y+LqChOs#aKFBbZ2Ei8@#?l}tkYNlC zLMU=wj*=*3aXup+8GJklN@N(jgOG&WfTJWC*${aRazo@4<VMJ;$S{ToAq^SEP$8rv zH{~eFKsH9sL~e$xLWZ$R2-(Q&`@BL>Bez6;hujKTgKUCairgAma+sg*HpsfjZIPwO zrpQLfX2>SU?U2op+at@6VGI?59WsoGLXabO<S21RwnX+pwnFwr?u4vBwm}X>wndIY zwnL6bwntVX!^9ngBxG^oFd11cSS6A*$WF*9$S%mK$i0x$kX@0}k=>9pkozEKB6}dK zkozKMBa7p~YGiM;zeDyx)*uf-E=AUk7a!s0e>mE8k;OY>DKbtRN{o<oumdnbu7)f_ zu8u56u7NC$bN_|xgZ7%p3glYIQOLT;N@P7`(I2gioQ!q@(T-dPISsikat3leWEHX$ zS&dvDSscG_fGm#R8zO5keM4l)QC`1|kfq3tkxh_|kY&hCk>$w7$Uex;kQK<yk)x1X zAS;nuA}1raLQX+8K~6(%jhunp23dvN7FmsKimX94LzW!l$KMWFirgOA1i1sU4A}x% zj@%L12iX!?foz2wkK7443AqdM8su)ssmR@t(~)hEGm&kPvyttP-yz#0mm)hL>mKLF z-vikQnIM}ZQ)D}2IkG#l6S6O|3vwuOFJvWhZ{%cTSL76AH{>+rKFAr!9>^->zQ}51 zPh<^pKV(TdKVENSDY6f;3Gx7B8S)ThIr30sALQZ43glqqDC96?CGt4rWaR0{Dabl_ z1CoYZ16iDxtA(6_c0FVjvOcmJ*#KFCEJc=_;PqjMEJbdJY=YbvS%z$kEJtpE?2BxP z9E#inS&2-LlaXDJQ;@@u(~))XhAI=e268rXE#!B|ddQ{7`pCK``SBVc8zCDbn<Mu? zmLrED`ylJ!4VnVE267Z~Eo3FK9&$3WK5`1O0dg9$F>(fS4`dax4&LCYk!v7pkZXxI zfT#HJ>LE*!^^r}G4UlEX#>jHy9>~7PI(WkvimZnmkF1ZJglvGk2H6-n6}bm;2C@#` zP^ysikk!cg$Qop0@dorXKi(e5M#wrQ{071tSr6F`Ss&S5+#cCi+}@OLA1ZE-94~H< zoFs0KyhhyKoNu2hZjYQUZjYQPrnltjv&Hnt@5J=TrDA#+Pp^9h&o{CWvOcmovQ9Ui z-cC%9>@KE9_7&6H@${jh9XVdK_vH2@(T==Ew9C0YRkS0gi`<LbGevgioGr2^=XWCe za4tozF@>}4S$_P+$VSL~l$Sj_Kp4f9u(8?zVFPjff;)~p2H}__j2c6Lc|Hg*+s73~ zkAeBvCCuYP7%hyhGXD<K^HFdKv+{H>zX}1?Pe6cm5)dLV-w5O=<S0xJv*r+B1Q`O% zn?s0UIdC113Zu{xwpA!9PX{C55XP`0fe?q=!RRl980~TK@{JQlvtfM-=h0Z+33!~L zIOZF`RvkbH#&U&Yz5%QzAcWy|FuM*R6t{=xBS8qm^kJA^44buv5Qq83;{KyBpAg&+ z%<@8jk!}cK!e~CMqY>+c+ru$F1dk8u8)^*Zw;?6WMe`biTwuNz=FkTU>v@2oomfen zC88e$?ZrycTRT1t?ZisrA`$%(XfIZ57C`iapxprXhRj&tv&C-OburLxtk~>;=vP7e z0Up4U3+>2?S+UtOj$?LrHbTw=v@5U=)H19@=)>kmcz||g#bzhO?IYL`0gHYZv@<I< zvM<`9y}|K{`-gUC#YjvK?GISoKeR(AkC-0XBh;UG{4tX8jGeUk$FSN4yI3F4POVsJ z@iJ$7hx`U<^MiH^<rDLR_6x^{-2^KQ>~C<D^9A+oEUd4B8h~~U`xEOI)~>+$6Za48 z+=`V>^gE%w1B>+s?H=|g9v`%SE0$XHYvDS8<HPARmU@!F!`WX?MzPrb;QFZAZs0nx zVq1yF1?j9<D{{i~7BAFGB~KEzuVlEss-}nQ%!;*A@woVE7FX?ggX<2CLo9c=aGYM+ z<AfC;Roeys9Xc;<J;HSg>$${s4%aKNcwNAC3oPy*u3tDWf7SzB&sEz`pm5xk<$~+H zYB}M0ugY-U|ISeE%I%>asLJ8O`LDD?|4`K)^GANrU%+`0>nTV$PB+$~cz}MS>Ure- zNo9__Ux5}kOxS?;FOVZ|VdL5HK+QPgnTZgt-^%kEE}W-++Ir^wQ6EWv+&}M6T(s8< zpD(K{AABCc-h44V?@yey=LJ50puZBYH{L%~+9QPHui8IAdY>xo1nO@fi}}5M^Xs~@ zAFFyDxCnhM|J>y5tn&Kj?aWzQ-&Na9)$PQ3>&?mzf!9lKZTsV&-|pJ$iPw{pw%oj) zoV5KGucyj>oY#|!_WFwv+6h0-s^#G2uRKn%Ts~OCyj-5z>xP$WpthX6T%J|R0qw1F zzr0*-+H#BK63-X!Z=I`@Go0N^R9?A!|Gl*BhwtA@+YgBQuj~(D|CQ~H@83n+-|_ud zmKW9lLhE&6f2;OyG3=8U$|0UvUJfs9IeGo}(Y8arA0Mrq@5c+zF7(^b&i;Kr&;y7q zl<#Mdw*Bz^R9;VfKfScaUp3#~&uh5Q6Z~F&Z+0c|!1MK}!cY%Gw8sO-4>4lP;N=>o zwe#&=wEc)!&*JAQY!7GR_wB`A1nwKa>a0DlV*QEzE#IGq_BeU^LE3i2(>rO;D^KrP zr96=TaP9hBo?g7##OtkZ6+5K&(e@+a@rd^kJb$Mu#}BnLSbJS?yYnC0`}|?=uWcVZ zf3er(_ubIi#LsPRcdyb8V1NCpeC`ALXpg`0exHBRL%V<=jvI^peJGAYTk>WgQQYKy z1;5*7kvLC*W=Ry<voS)6{1`bI`5<x%atd-9@)G0><U7bJ<Oj%V<h#fk<lV@UTfDp{ zkfq3%kWG-EBFm7)c>+1|O|<(UpF>t4XNq>LuMWsjXkU+<gdBz}#q_O_Q_voStc&%l zgPewT@%}FZc`Djf$j6bTxV<<}_zvyjbz_e98koKm?c#ln?rmOwbI~rt^nW26p<V2s z?a(gHE1IKyE2g(YUW)9FEcVB~$cND$io6$DisSa$`$V)aK)W3GUkf=2?czL*JKA;8 zz6R~vkW-OwA*UnnL(W9LhMbMO4EY`MN#s)G%gDNSczqs0HbQ=gY>uo#wnG;0liiUs z(C&+T57`HgPY*d1?ODk2$j^|IkRKthLB5WhihL9~9r-+RCh~pcY~=08?~wN+mm<GF z)>ZNPSdMIjtVT9RK80+Dd>h#v`6aS1@)P7x<mbro$T`SK$XAd}@Oo^Eyaw&T$i8S7 z=S5S|J`U}6Xm5v{j`mP-dptk-$eC#OM2^Spt&y|Q9)qmF?Q0{yL;DKkQsf=Tx>>w_ z|3NlF7C+a`k&mI>4*9g0AC^a)cXda5657RiQCnnRw2SkQp;%r6w1=Wy^e>c{e<!rZ zqdgWm6Sp@)PD1+u<Tc2mUlxVw>!3Xq?cT`lxIc5`bhM8}mY}^AawggXkmE7`y2#mR z$6+|_I)!>@e~0#!$fd~rk&`e#DYEWee!fJ1I||EVg?1yf^G|E`kR!BrM!PxM<B_w` z?tpBE_8G{@hxq>LBTKM<rO57>ejc(f@<8M@n12`KP_!o?%g}Cy9FO)8WOKBeA}67p zkDjr4eB{MwS77>%$f;-#M@~nciLAl&;unN7(LM+5YP9!2&PMwz<RrAqkl&$wBXTJ+ zAGKraaPIN?j6=H-@?hjOhq%1~vN_sUA=@DjLUu=9jhuqp8zTFneGzi{VV=JYawyuT zA*bT@4Uyx~J_I=p?TwI=&^{D-4e}b~ROE%o>ByUrGm%q8JLcaQIUDW1$QfvFg8UBc zd^ABKd3Tr}Ur)4`qJ1{9?tO0Gg=~a80ofdR1F{PD*A&?f?SA6+xW6{Y?r0x{?2CLB zITZOKay)VxauRYn@*3nD$f?Lzk+ZRU#>nYtAAu~6>%T(IMEeC~HS!tcQskY;(g(c0 z){5zIf6b81(Y_AZ4*7576s(`F$nI#Lge<O8kt6$}eLiv~Zf}PiigqQk3hnmD@o1lp z{0__8961T?Bazo2M<8o3eGBANwEH8c;r_ZKr=xuevM$<9kTcO9h+K;Kw?xiHy8<~C zx9^7h4(*$eB@g-en2apP^zD(2&^`v)961u%4!JtAJ8~|vFLE++DDoEMc;rLKNyvMU z*C4whry@ro^Kn`DCMFNu&kbPydsPl(qq|jk6wY>tes(a<PKi8*jiOggKNe?GM0*&{ znut7(jq+DbKaP#SRb?3KsLGLS^r0$`|HBTWq*d)O%2}1gQEqYn30004MmzavU{IBD zKpw;Yj$?K)2bhntVx<@J=kqV(Y#q$Uz_<f^Uy}zu9u>%PfNxJ$=ELV{U{rtyK2H;* zt!F5U6{}^jp7^}YC^pK?10N^j-&uhe&XwQO;0%AOriX9g{?6j(pg0a3j<ZdC9w-Dy z9mMgS05&?z10TN$)RvdCI9n;E57L&O+bfTU^B8UUIFHqyXU-9S<R7JNm)tJSzKQ#T z@0nCBUu8Sz=_hI1As>%{)-R@q@fY~EXH^bj=j?a>)BgMR@Ey;p>G^kUAcpU+@_cg+ zVeP7F`cQ4V;r4L$-P5Y}2<`dfc5&8G%s;A1eZukZ?+QT<VtTRNa)wdys`<xh+cmdO zsFELyvj<mUnD>BGJn(s_G1~g%^M>NAGt4`~Je@ep%IBe>zQy**$5$)ckH}&_#2NmI z`-Ab<aoYCC?cu_An;-?B2dOL{pQow3E@A!~u2b>+^7*H#cE}&DTORnhwm7Q|^Tcrc z;_NvvT(1Gz_RHr1#o25=zYhBo>x<8GR9>%~#o2d0|8B)bti^tt&!2^8>x<8Kg=w!3 zKCe_+esSJMi~+V{y@yzTe10rU+mG{kMR7JA=G9@|QJiImd25)TtGpih{Gd3S4tAJ# z688oS{UH41fzNAIwe#z((heN1ZGU|J5B~DN=Y_@92Yfw3)%L^ZiNsY3V2AxzO%M53 z_6K|(ud+ORo>^Sg0MEIA_8zFMFV5m>2MPPU<1;~Gk0G*n#fvOnk$j$7TqVKRN$_uF z^W)?5e3j+l^Ej2)59i9`;S7Jp?P2~?Tx}uFE5nlmL_4295OaX>eE3Wfa}ei8s@h?` zq^cciR4kD=pHRs#j}G6O7xyP#KUVCTgtZLZ!sj>s>*pblk74!xZ|Qk_)z42ppC|4e zju+aiSXyA1?+vR`KTrlp!FxbHPg_~v{D~1&8Rq@PRVuKK1CGA3{qS`F@RtWZZ!E5U z;p<ndSQ`=h557(yO8fcETMz$RwSKC`S3O=nuRnp6f(JhTURfSKUjY3H?_nyLUqK>^ z+j9=pmWMMuF@OioG1~rtbFB9Blh5~8?jJXk@aHU17gTh!G!>$qtM<8B7+v~@U00j@ z&)-wl(OUQ$zMp!($7=rI%IqX{U$<*C`G)X&JKAmHt8n*~<IQb%rxLA^eRamL*F7q- z83}w&zgDkm2a{a1bFF+{8)xzPQjGpQ03m@woByBb`SY9}{9#vVnLi&?_+2YuQ+)oD z)-FVrF3I5eN+dsPiSMdv+VANlU;bd>dE`|#kZRwH&(#tm#NW>rS^Rx%k;UKD7Fqn= zZIMACPm!Uzs<D^oFS)Q8M3`G0%w`V7F)2)&yy=V|lsoGFfiO_T$`i4mDHB#q7SyYo z@EkiI-SxA8GsgcCe!oqbJaPfBX6&iOLb{pyOF`8~k1hlC@%CQ<Dj8U76{zas{?(wG z?E}_=ntU%_2O4#8^#;(Cns%E&(=I>UEU?bW6i}0wbGLwIR2#fi(2&;KK$Gi#7F4N| zz8zR?H$!;7pY%lEoxt*$4Tax_%UJVNP}PrZslxVq#tOd|r`j#s1I)@HsAS#Ay}-$f zrtJfjK5!C#M=oW2jemfnMqLp!?Vq^^fHTZZh4ZgzH%rjuyRQV5S-KnqyS&?0K@}e* zhlKnF_zS8IJtL@(tl43RSEt4cD!cbU(3AsRjzGMMED_XX`bR-!6WxwNyrT6sLFLL{ zTvrS`2JxD|j|iIftnP7ONy9OMDs(OiD%;sSU5KwfK~R~|9YN)9+Mj^<<Zz{+DgR^( z%IfDN#HaWt2^yt(A!u5;%_)di<t-9aHZM<5`3Hy75Fe$xR8VQ&8$na1_B;de$_GmY zm3(?5Xv+B>XCXdqNV1?Qd-DX%$gn#nq+hjAP??ol(3A^JGlcxTT?AE}87HXHV3nW} z$8&;8z26C{ajt(J(x(_X2&z;C3Yt82fuPd2hXs|nKINQL;{v2t@3RzCb!3pBn$1%L zRYq(VG|l9upvlJy1!d>)B5Y@}*qN(pjG)SrWI+`=>4K^?&jpoT{_B!(9MdcXRW%>T zIVFLsUW%X+-z$R37Jd>`zO%t)*iN?7PEenPBLz+Noh7Ke_8vi_w%_4wS}dq)zVQ{< z&L^7+sxk-`RB1k+YsUkEsvF(s_P3>iMr~;!{63)C*;!Ee&C!CUI4%%Ww)%je(wuvO z`cy9!)TD89{`-OT<$`7u2MMaaFjr7X!d^jH`x7)Jr9jZA291UOI4#^>Q01W!ynlX~ zD5%f(t%63CT^2O$?K?p=XKD+-L#Ui)EvTYHe?e2u#t0fkRtc&}O&8SU*JD9t<R{lL zt%Tn#lqWg~8l?;pR5Nb2plQ8!ajtbu(2Qdr1eNtS5PsLt=aCiHKHh@LcSQ**%U{a5 z{b50seeMe?^(_`uGO)4mdx#1LTds9|1(n>17c^?hT0v79pA=NJ@v)$q`elO3Vw&BC z^UAIxL4AJu394u}MNoCm4P51?1yy!=DyXV{IgfwdO!$38)!H6{ra1cvs?3=rXw=Ac zf+lD2-(l2r$>Hf{lnUyjuB{UGKcShRvKk!)mCkbzRQ{KTpz8Qxf@)rc3L51aFQ_tQ zuAtI_Rf5WT>=aZp`KX{iM=lAf$h*hw2CoFo=vW}A)I}!?_AehG<vOgDpfX=;K_%Xf zf~p)n1x+#a6Ev#&SV4Ur#|tXoJy%dg)G9$!I_(gY^$&t(thyj*8p#q=^ZbRNQ4_xi zs?hx@Xv)&scZKWB&{)u@MdpG^CANaf!g>p;x;;=(Nyk9WiBW>eZ%q?aVYo<8lL6}m zO_{e_Q1yx9TyrlAnpWe!pgyf~1<mN95!8hK5;UrpfpGto=4>pe+TL7HsfCT8zulj) zdKAJElS6Gz>mPEwU&p%Zn0f~thu)p`uFlHaj$^_Dd-N*2=Qxzu?D#Oe$g%dhmpwyW zE;-iUaYb=!-gn2%)~!q;1AjW+I`cSvf%kjIMl$EG*+~+zKcVAJ!y3Be(!DPkO;-O! zs`a_Qf1<~J$GS3G4V_SzTr8>S_9*bBW5d&4t#0bnB<Eh2^j8;taQs+k+_Ls0J#w{L zM%27*8IJw0vY8rdDXANA>x;y%5jk+QdQ^uwFC4?S*&IGGR7$)*)bz;gYe@E=-m>Yj zOJid3;oFg2qg#-#<=^bohe{liG*MRuy)Se;eBD7$FS-W%{i^nFmqfK7Z%>S$xambJ zqNu6A>s)(X!pqT^_>CMZEwQah`UXzPHyqo5IIzdQA0m3>`HDvGvt$iP=aeN<X;=&5 zRB*EPhPjPN$J0AU>gZNDjtjYR%kfwTV!8LyY0GLINw45%Q&mmAJ8rVAK2#xZL=?>? ztyqv{K&I`U(mr^96SCWX^JTB3`ecTxrs7ilCZtrib5Co%PQ>A5$5)pdHX-Z0V}9;B z)sD=Zr9Qf(=%?e#+Fn=JcWO%v4HDen#e8>+@V%mY`esYA#$&+u_l;VU^v<1!$(wW{ z-R(x1Ex6N+C_gV~k?P-y<mGhu?&V=hRv5I&Hd)hv=)J13+`YC1`4zl#?+~w6B&fel z(`19z#HRhQU-9)y9j`afG)o#FC1Yd5rw&}HcI5SAM0zgo{V6rACfWU@xLN6NDQWaz zaJwJ5O~|>tf6jdxR)=h(p^rN)XhCdk9ezGbHzhS1{1Y&3h9TKp?|q-i3oS{DVXGTy zK6D^9lRHQ3+|!f{t{JU2B-)w`+Bd1ZYx8zwz}A2}9Y=Q{vi6tiXSx^>n;XMxpBiOC zw(GQ?WzbEZJWN<}bns$hvTozZ4Xv%-JC6OCSm#X;B@Ki6=hR(qO$@pRHcf8ZflMD6 zZ<iF=g&f$q*K@3257K<X;-_QVXdFKqJ9K{J(UUY;6f@=Bs7AzS^!)r!OS+QL6DAgK zTINX7Qx<7@xZ9I<zI(pZeb$4Vw5>Mm*(G~&_4-Hk`$A)~uTJ|J18;XHCr?-mjP<rB zgXScyY~QUG(e!;)TQb}L&trR1y72Q6GxocBDR&EQFUVrY7pHGvZQhz(-!-gjVN@Mr zCQmh-me`TBoY(qd1p9qHpST6^@kvItc(ky48X>VOX1B?l;6Pr@c|PDuT}N`jcaHkz z_D*Dze#YIcvwDy$zY7IvJ50#h62CTzhmOQnvwn8HgSzD9jpU<klL#qU)v~a@p$%DA zZ|jJ;t*pt86ZU<gS6Y%>UovUsUv{Kh_01pJ<#!@_LlzG!9%xV8FAXV;Ja0pa0t)K2 zxnWAS4s?8A^0GS_QZO$daexD<x8Z(8`4Btu_>uVxYXcckzv#6>Wti`{bJ&NvK~ghP z|52BE@z(9gol>cB4*Bdj`&Qp+9>Hx%>;1|;@qT}iQ4t64TXkwp42tb@_Fu9k<;wAa zvznNbfIcs;2KN8p$lG6Mk~CpUN3Wi?WV+*f^^SKI<Us4jnk#7*WVGM2*aa<RWW}IU zpCV1Hh~%bs^nxQA#}2sxwOh@k<iP1#msT5>I_^1sqxm><LYC{d=~Fw%oQ$yCdcINZ z3P)GH=5Kos>P}{d*DRI2=|Swr<!D~4H6zp0mK>aY(}rZGwv>dsbtA3rHQtm&ZOL4V zggVlpT}g>fz&{CDJxFfJ#Uavd2Bb`PLtvCSdjLwvU8UVg2eNZ&hZ|jOEJ?KwU)S2r zYE9ngnryswvj_3Hcc#~05<Bv8tfJk8r5(wOj>p=)m}Eh&Ma;<bo?t{Yq4i!ndbc94 zRwl$<SA27H>#w{wZFIR~<cqOQOS;;Uu$iP#db|@cl#V(Xkz`Md7amZB4lHvV-(gX+ zF$=r1a)h@DUh&IuwS?B3=G&DRZEjHQt&t60M>fPmp*w45E%y72gI467>(-OhmO0hc z9JC`r%^uEjcA>;3)_$a3kOO(%^u&-k&fUn)oI^UxuG^62%Pkyc*tI9JWlicP)$d7u z4G3TK)Uh*Z^1jWy2VYn_eHJ!r*{}{|L3?X|uP1fLrS3H?@^|DrcI#=Gq;Ym7Bi%}N zt^Z;{@)RC36Z^I!)(I}T&UHEv9dAQjllGp(@6N-<*6|+1ee~mm5k9?0>swwQ?(g;_ zryooSbe!6O816a!eZ)Z%@@&GLAQQjN#J&BV!Z$NJkQMJMibi=-Qg8UXDJRde-znSK z@8_5eJ;>he{xf%s?MSjd*Gsr~(}k$L<(E7&I*^Uoag+MS$Vr37>Pt0xH6ttBZ(j($ zEGM_R=QuUI+LiR{5jJ?)_Gm|!r%u)NewdJ=oL72LORP!n`85`lH0w)-?Edj$z!yT! z1m{Wg!g^!>;6)U<wsW>dxD(A*gZu-*t|a!8`+=YJJCUnd+vhYp>q&wqr2g_tGb1fL zjP)<vb|RbC%k}+lIgu!zc9}zLdJ{z(^X}QxY{}gda@px7rljC&!sM@u<>dX)r}mLo zy~xlagI&vOcoKu1J8nOm=|N5oy<8{ip^WICdDmdvwO*uA+gHn*S~?Qv8UBW?ueKpm zV;_5wb?r&VT~1>*mzFzr*3GZBt50k4ByReYzWe(T{kK8CWMle~PG54))_mzimNn0x z(J|DDOxgY<DZiEjDTzLB)$O~S{M-0Upw~EI8V$w~U>>p8Cre4MhnB*9f@m{f)R4W7 zFx!zoY;{<?f(<}qGFv9vgpJ|PzmDf<t^d<+%<Fem{#(}Z-P#H9O4R?dgMZuTza;u! z7vZDf^WpaST+Lfzxx4dn@;&+dR!th?t`f;dOG)+zeh&VvG;kP3ER7h<tGtIeArCZ) z<3)1dKhjmL4!dSuCGpJe^G6!YMi5A!T*aPJ<vk>TJj76SzmRX$P<6jjwvC3_Gyh0a zH9fRVUDm$DV8Y)2xo@yRUSi%=_Ye7tVZgv%1MM!UzB@YkcpPi%dwO-Zaptg1ki&?; z5u?V$1Vu)V(rRo#bVzXQh<H02f17SrQ9)J{$3%>ZoET#j9y1|mM0D`D;DDIm5u<{m zV#H1SL)cSW{bNRjSx1c$uB+!P^Jgr7c)_)zVlN@EVM3*8TZwgSa6F7cE4#Io$j|9; zHVqesqB9CjB__-!q+xNUGMPlp;?$O6y10mOW5R;r$&wi+?IaoOI^=2D%&4rLB)$e? z_PEQ~08?Q}2)jOn=gwNoWI>}t*mGzY!|<=Q%YZ?qzAjGett6Sn!Fm>q8w_!ozo#1x zajM_q`Uu-*vp6GW<J<OefpnVR(+S&_{ubvcY%A$rwJe^_u&wUzal*FJ-{O3PZH-tQ zjJopu`uM`O=D(-&g@m%-<AnU|ev2C<<R@ow8Ela&&u@^BP9kq7N!wFXV$B{H8XLd{ zwAl6e|FHKi@N!M(|NlNYC&@{2l1y%rLof(}U_=xZ3_??sK~$>2G^o&&Dbb#~j!P;f ztwE}3r8*@@RhhO*s;N$0qYa(nOWFoQgA`>-5Cs4CXFqE>b9QD<E<%&v>;Jr7$$LL* zueF}r+LxKxGiSJLhWfB^vZ-Tsa>GY$;m033pDtEitlwE@opr)QQXdSjjIi9FKIQmf zpWi36o9NJXwE0)vHqQDbX$#}k*m2g6bB(o4nH+w|kw*W!{6p7!!JLBvy}cdkN86Yr zZ3`QSsm)><^2W$un)-zLFcuMSJkT~>Z6{iv5lfwJ>uRL>%%v@?yS0TUff8+1>u;3$ zjeTciu&wfH{XV0%Aja{pHk&>?cV%b}^<k$6X^!ccTzqzz=zhO6v2!r&Z>;}}8xY$i z{LT9vPC9YY@u!_SWtjgEKb(Bs_)q7rk0Vtd(R`d~g4TY`XZCAsd9FFpJ<~1SwcJ=~ zNKJZqi(n?}pkYw=px?f|6D^ru>7M20O1Bi3?^SHuyz5o1Eb*YoJYKr7u@GIglyF#t zpIv18hiXuSYO6?RG3$JN6ja-fq2!M|*sI)a<i-qx>eo7`dFr6X-u!$<w?x-WQ@XKi zag2MNI5y}O^c~qN(KFK{-CXXLTAA*BKZmhi<ogWtnXbY6UKnHz6{xm24}!)Am``Uz zwcQORudrt2d&-UZ5)6H>Q-h&zteqN+VID7vV*+}#21OmLl2-FM0aL^x|89bc<0UBR zOJButoEtL<b{5CtwG>Co(vEQqLyyK$au0gOcz{wqCt;dc<lmhxws)aqQ~D~7)7+Rg z7{)QEyVla{?JJ4rRX8T{*jw4!iSGAnX@11_GJ0F+h50GFMgNfHrmhAsga6w17Z*<- z_n_yY^bKp^#!Q0hSMPY9^yb=GOF8E8qO~*!eT5oqW<6q?yBfeWvB<wWU2N|{$)@xT zYv9JT!7z?GH5m5Rn%Cf9#(I(OC!j}bP<9`Z#<w)zQ!s=7^63#5Prof}mJ#%o?^E2E zbD{Ze=b{}V=c4k*@V)u%j=smyCpDNKg6xJjA8aSN2~k@HX7OM97Q1-1-pa;YxV8B{ z3rgld^{cmj=3sAC&;7Of`QxAziDL<Rbp6EKmmyM6ab#hhSmfW^F1F8Z6S^H7x2?r- z8<fn2VH|bV&k4)ceEm#ktQW1H+33;r6W_slq@jGz!2<rvr#=i<+hJ~+$=jRnw?oMv zVCZ|D>%oY3)=mw^F^?C;F&RBtgM|A6P6o>7JS-B6{2RQZwH*y5=O-+Vze34E*jXG) z*HRoq-|ZO3DD-F?$?z^yucgfA0xS`W{M&k@wVeVbmvfh@<M|mVSpvg2>fBotuopew zuT1yH!NQ2|74(^AHq5u|W_GoP0#psku#ErOx5qBlb{>@6@)`3z=Ek%_^{aP0x4pM^ z)>58%yl5@WMUU1X_gU*vf{G*9gWJ2^%)gVM+HQuDzwT~vZ0E*|f}O>YT)uYVn8Z9@ z6h{_48b^Ll>rsaCIkp$CABjc&T>{niXDE4Xw8gQv8#5M$ak#ZKByw$7t~l24K6Tjp z9ep2-KG)m`eUjZm(i$pIe#ZCVI)VS%cMVkA(@?T&(tJM%O2#ESufcuTt98y_)i!@j zyb_6{>4Oz(Pz>Kez^O6ja{}rWzv8$FDvp<+q%VDSJRj%AOoHmyTIbr3#on6MU=Cxw zX#Et?+gyWulHI}q)=+_Ji+_&$BK+6B-@AA|fRerGBi|2oW5z@Et9Lw){c!EnAj3Rf zy0I}0J$f7zKks@R=xP8{#3KK0f?*Ayq%VEL8n`i&U}tf}cxrT2*G;W{el6|BJYE!s ze%~e<N9kbe5&MGqoP=p&k$-o(*xrSbP3fyRPIF`0U>HZ8wX{HStl{yzG~#<p!}cqz zrShSnTR}W!zNcUY|K-yoE}njeSf3H}mG4vBm~&z1d!74?8Q80p+f{AzHJHadUQ~m} z(W5n}9Bw@lM_3$bm?akZ_oRz$!^5o4-t<)*m%A}DVHii98l<|cc@5ea>qWlj(4)t5 z`AF*#|Dvk_%;CR$dfCOZ!#L}68hz#a`EJZK82VnP216RxP7RXG<3(|dM_-`^<E=;H zORfemODyv5Nf+COM_He}=^NI-jhP9<IO^2kamBHQ$HDT5?*p4^)ZokJSA2r20nFjQ ze0tf%v%}HW=QR3;HE?65!O-_QHJF9HRbBJ7`uXGFKIZYF8Z1Izp$5lVkHm4V1~5x3 z^6yC(+lI$jpS|fD*1(OK3Bx$*+^3H3y5=>=GS-WHpNT%xHTdgVe4;g^q1tjVhyU{F zWf#v5Y3noLE9QF<N*;ot?{#Vr@3wYoFqV0|D2_CGv<8V2tw#nbjyx<9i~JjWytN$- zCFh@Dar_lZ7Q)WrShAMlh;{E6$8hv$9LY)MQx+<Y0xS`W{M-7g)^-Y%Tz-<p@eGtK zft|%sz+SDjzN&5hm{=Hzqf#S|)Yr_X98?@dSSA+vx9iE)b{3TU^c0KZH7HpIJBy>O zdF{lJXC5zFS98&$^+=y;J@Qa-lwgHe<lpBeTic~ja@*G}jt`-vnZ98hb<VG&daU`e zJ%O=a<ogu#HrF6OWjFH;YbZdqm8G9%`;LWb`x%tXBk(S;$&Kj^JM+ErF?=7=v!m|` z^r-LYDWO|I9)@{`vD3|`uR*ol3MH?d;qne8&GZd@AKYW=;KsfUtwHrCB=&yrJZv`b z2bNd(jARwt{IRe&63cS*V(5kWC_myZxHOdCIq7GbkH<i@<)NhYTNcZ2q2z98b*TLr zNn5WqUqgAudI{G*`b^g#pJX?Ewl(CT+Dfp5|Jt|Rx2^3|D4BJZ`5w42J)ruvw)ULb z+SspQSkN=kBh#GjUTpuYYEBFOZ`d3RIJ|G7Po{UerD&g4txIjHbu;mm@YPFiHe$WE z4~8fyh|d>)U@eq940l~%IZ47s_7oknjw$*n_Z5vh$MSV5?1K6LY=GOH%YVqjP;<Nr zo8aX0Z2vn@a|}G+^uwU~{SbDA4`l7{t3M2@>#=!_dhFI`{i#P9U%jXvdGux_3=tG- zWm>2P+3#9g<r2$nf_CMo;Fxht&`-H6!Nf&2$2Cy(cmrzQ@fY(S@;1~Q8%(u&%z)b8 z?K?Kd#!&hMsD87c>TxSRbcer%E33!+zUxmtD){O}^+?24tVj8B>ygP>Zpz=c+{S5F zj`EIa$2k4E(O!hHOD$h#L)GIksQm7B8UG<qLe23O)bTN8y6t}fYL54vzU%j_-`P<0 zn2isr$1h-54|m<ztj2X?azE;!YsAFJXY1>Do6cc9h;at~d+E!@BI!yZA}Idi)u9@s zerRnmbmcn*mERKWV$SJ#rw34Z3@;*A*jy8##@-1v|IjPdf$JJnP5urw*K1HUJLM|t zHy>)Q7o5K34C{9yRL#!%0oQr>2vol(;mT?^e8Bo$yA=L=QSD|*kJK)>)_UZicBOt| z`OiV+IrdXy$?0YKsXYmm$0Ylc+yp3>*Fn|pZK$~>{D}XM51?w-`ePfrBUJ5fhU(XR zjm@<clzt+VjT@k9ch@YdT_1dq&A~9N-DWLQH=DFapnHY38rP<a2T{Lx&mcajF&J=q z<bL7*)%Hz$2Ah6@@#?(LhZ@{MZoLd<W9SCk2Xj<3L^V`>DmRB}ko={!m40sPBTl=z z792B<<y&l>WTEPuaLoN82y`wAZViH-AnEin)VeA#f0lJ9n?c@eoDAj1b5L^i&&=k( zpw`~y*V+DSpvLWgz1chw%GUW%wr+&IVDH&M_?+3HH(0+zZnXKXg<7M>-DGR@9w^@* zftvTYIi_C(<<IxXL2vj&sQs;-Ts!6rUcb*jCH(iI^UshW=t=@2DE`>(p&I0&+S0$V z`sHCGdi=M>vePT{Q+o<3&nfn&SQnb>*HGu5?zh=olcA(f!Pdz(P-FLoS_5}M*&OmK zo9i=B`k7GuehXFGKmXcly9qwX=GIX5eC>{^aota~uKTs~uT$Fa)r*epx#$HY67h9P z&ojLO!#e%m)d_}mqFpRIJ&&$qGx-Ou`_xGJ>UM{X`8w1bi=pIuciPzBL)GQ@xwii_ zsBv#X&DHulYd-<X)}2uG8H`QUWizP$zAm-y$Chun?$@Q({i44g8@5q<t#nLHmab$X zzE;V5O)o*U<?gY(m!R^Ny3ZJ6zx24%v*^lW7ClSdl*{L!mcp)g+g!7tWUoJ3O}+#* z$7xWtdkM<s*rLt#RVe)isD95w)$H9r*)eqpKFQ`$Fsz+>?O*G)=Io)=ZasPJzW`so z^k$=F;}u`q<o;|u;(u{<ddSrYDpx7?i!sL%)NzoZe~}s~U)$YpV=jWq^Aaez<N+Id zBUD|6J!t!{hMMD-PJa=~#&+|qF5|G>9sSENtVbu;r?H!?-^Wr0|Gnr~nk!vNL<Gg3 z`CF(4!K2nzELpw-+LgB~?PAjDDW@0EmB#{lfqH4K{tImENl^1IfRa-mwwinwYObF` z)ojB@tX~_{Tvt2&|DgH}`m5D!TYS=MoAaRhT>@pVv-4n6eEqK72>kb=+D(xjsa;{A z^+^8R?LybNED4prBJE<<={cuY(3QsudWHHamxn)QV{d{o)ABg~A-6&uPY*%O^$b+) zj{ZOEHy3KIC!9X$3F~(x)OqlfC#`mOL-l(QhP7MCYn$}u)bIb**D&?s`jlSVOe42m z2D7mYJ^I=v|Gf36yl8dKF1Gbif?5Y@_KR`H9R0LT5>Rz6zhF$l9_WQ7_Ijg2f9W~e z)jv&p;vcpq3Q+5}^`B<*N+>yCk=eQmYVGa)l<hwVYAwA9WpmKeHusLOC;AtmUfcWu zw!jacv3?(vZN5XEwKdxJIa{NrL(Ov@)VzKFW%|xg$Hbn*-Wz@nYQI1KoL}SqI5TYB zKmYjq<C*yCCC0`=^ooj$C~n1Cs)TBg{;#!_Ub9-oXjj*qW6Ci`Kh?JYgMZr`--N2~ zQ&97cdx`&$ccA9@{L5C~|3dA5AIkR3S8T4?Q2IMgKjuHy??$Nc@4&9`Ong%v&xh*o zKX0jZ&oyK#>a?ERb0zWBOK&!^=+XE0OK)3`^fFhcw_KfQ59{QZa*WY0tP`wIE9L9U zuiKd4K-FQ$8#d>iP;)GUIu5_N)b=ldn&U&K@AanjI}fTJIebt(eh9;QbaKx%Z|imc zxasWm%VPZZqU-jE;pj>tA}IdC2ca4yKXkj$bzCH&@>`@`%sM^i^a{H2SV6B)FU@uM zJ2v(vsQFvo<v-+BsG2+kHP<sxH9Pt}>o*r_t|y#6Xu0(}5~^mWyzj2tQ2ic+ve((M z)V9sKe=OBH*8OYGJpOx8?UtZNkFRuhD`pI8tJJL_tX&Q&&oRerSJP8YFQO}tNtj@y za(N9@-QR$kYkY&vy&S4`gS*%q+e6jv7f?NxLCw|L=*B_Wo(WaEUp6&__sh$m`ZZv4 zWwncMx9-=@U$4gEtC!wvOhb>>Dbw3>8T7FnWm+uP1*lvl*e_O`UO-pQQ}oYMTji@4 zld3+)L(Mkd89Awkjr|T(U7C8@{%=Cf@ja(M2xX&JFRRNaY^ff5z_1>joCoh4v3{Qi zU%`JbI+jLlkM2q$DE`zyYbZl)<p)^4%TRes4>HEtAJ)w2IdtVQhn}Nen(K9_T79ms z&2<Zu91^pdoD4O``A{``7plkjem2)Pq4eKE^?MWQSn7!{dhK~El+BZ%?6q#xYwAXg z0~$69S`xi7J<~mk-Ancqhdob|+kyHG?GX%`*e?;w^iB6Ewv>AM?;Wov?f!V1ODtac zu(3?Kr8k7~5e&74JPfxsvU((;@>z7uI;QBSV<p(QAt+Ht&GDHHY|Ld)b5x+@dxLF` zTcB#UH4m9+&&^PC%y)X%R_ph9sM?*eq1EgTsD6Khvg7aDYrTIuI<bBqcPHS#7ae!E zNVhbGQ2fCb){ukRN^Nd=&q38HHq2OZdYOJ|PeL67N%kkHo94O>>bQFwYOV>J*xVmL z<-B!M8@nS^?QVwZ(HytAwt~`6gtBo1RPFBC%#OQ0_#m5uq3m^b|FLYRb^jXH+5Ja+ zWXIY~LXTe83fozJ(@<M+sQj0=wfv<WOWT;9cX|wl=S<qO)K9s58EWi)TiRT6pyc4K ztac|s)#O~L+Pw$WW9-&8*U3=&9H@RvplbL2aI4)|Y{}+fFsxlC*Sp(yUcZmKMfmSU z$K9||D;{@+oh-k}k(RdrUHMN!<*!J)n00#2=@oS4v4UQq-pb|SBW&zVP_wpdZ*$)Y zb=*A!HP<sxwL5wT>o*r_t|y#6Xh-XJBvkEANm%XfhU)hq3~SfP=N6e=*6-tPCjNU- z?aJuU<1YPK%Wn*7tF*i2KL?fPm}7P~(^F0_qAQO{nAq8Jc@0$E-+-EH{3x4yIaKWi z?_zUo4^_KgK=oJ#HCO9r+&C!PGofnt%U!K@%b@x-U~^^1-H2V+@8fP9{(DjFW=Xen zhEV+Jq%~BawhDV&{wq-V%j{!JuwQ!8>3MYJF^`_7?wYI19yazUsJZ4r$+4rYcHf4Y z<8r9l_1x3?O@f;1J5IkJs$bW=tacmXi|#W|h3fY$D0`jVt1Q`V{jObX_l~t2FWu4^ zLh<K6XAOz5mdDBgmj49p%3pzYG2`^C)63|}V;Q|n{WRCU``XwaLe07yO0M0{YWF*+ zx&8`Oy938qzd2BIJ>c}N`&+;Lp^m$w@kzD26{_EzQ1&{j-R#e<-?dwS|6X+54cueJ z+LaHn{ALcdJSNa}-pfGcxk7tbL#G#=9*4?fJk=1yKX19b5Nhm`P_vFc(B^&`>YVuw z)LeZJvf5n=)nf_NT-^>feSfHaQ=w}2<1bk4UWMxSHVkXGX|Ji9PHGMGeTiLay}v)2 z`fbu9*o0@%`dt`#_H{jJ_pk3}5{sAKY%D~dX6X%csC*>GTSFOYD|VFCBMrk^Iu;zW z^iy4uUup=_)KPORgsS1*huIvzfs!vCZgX4@b=-|S!uJ0IYK}+7ncn9}>vt?v?SB77 ztJ(cf^S7?#GsWBYqGt6zd;5R2{Zsl(aS^%oGMJ5n_g?Wc#o$D%cj_doXZd(r4~Y}3 zu0_YJW96$>{~Xk@nRLuEk3K_;O=<`~=Sw-g0<~U>%%5Z3X-&kAHXGlDvi>@h-1ud) z`3BUQ`{@MR{|l&bM;>D~&xEpdIn-y0cR+onxbd+K;b)4+9cTTHP1}68LaoiyzGCN< zN1=Rw8fxCtCYpW~lqWwS2Ri0%g4*BNHDh6N{k~=d`?RkST{Ff?w{nC~{P9z*p#Zg& z`MTAw0Ck>8oMx;zJ#c!O{>pP2J<Yn%T=zhoZw8-ibDaYvo19|nWOt}J4~1F-e}?KY z{A)JX0Z{r>sDAfD)%G8gt+qShgKX{!WzW~H*5|?5eb@ck`Rl<PeDxAzV+nfn^We<4 zESEu>tJ61KonTle_KOv#7tnQVrs$uiM#|R)85?sh)ND(k<VWAIvHymu%N3{F{+~dN z+wBaSYYdeBBd5O)HNyc@Z2XU)>NN--RHsd$`ujR<QRBLv8nf=#sn+L@wc1oqowM4A z$&22<osS-K<r9>X+<DfJKHqX!KG$j!r(Ja{(=Mi+UT}I0Dz_!t#aNbeFE!Sj??4@Y z<GyWk&V!QU&a(QQ1vO_5s?Pn+wtjzrx}QG&9Mi9Z>h~N}J%5UCIw#)<WoKpY#ScAz znyx4Bx!3d4ADd%{#fxfrvGiyyzhe!FODuo6saA&)R32087h{fPsADrn{}lC8PVa!K zU9SsljtrFazR<=V0#&nzp!V#4k<D>Dlzs!0jpw0i_U6U5KE~jKY<&TSwd>@4rTL$u zZtM878MXXVt+YNX`0qv6yWPgF_`Xtbx#hL+eV1pbyeFXYSNNVW?pSe5LmhAB>3n`d z-IU8cxM|netDt6G1|_q;YdOCYYR-qDYIo43)^8@%T)%VrGN^vLU1qiW0ycC!&V=gs zGZ@ycllOBk{`~rR9`&`m1^>OMc1xvOIzuS_;0M-_gW5{Xu>9ws@)x_>SaN!qeriub z<uS?rB=y%^*Fn|pZK$~><ZSK_ppKW;D{SnJP_?@msz>vcHrG~A`iW3BZh$)O?z+lq z*9RYDb1;;>hK*W+jVAFu^M(QX1Tz)>o^Y{Ssj1wh(mJT;iGvzr_e4M0)bGZ|52CKD z?m_$3_+0Z7ZdYv-(^!1)qTFQA)2=}|P<-iYEY3JoTj|HHHjXKnooRhuf|3zGvfS+s zmE-R~?YR_cPJf-*xXx$3i<BE(XKLg|zH6?ggWG*qom$Y#P@?^^lem_9B<FwsS>{_e z+E&GfH1n;@hiMTXay5L2|EwX%IGfKw$$NR{gF9z$SmQg1i)3Ht?2#S6kN8piUx>ty zK0lnjJ^s}7+{0sE@je12!)XiScjuhJHSXQUGgo*Y6#1QRZ#x^YJq^7Ou^rsN{fo1; z97=l4?ilw5HR2w2NbR_5<>KSC`D5T<?0L~KFa>>%YmnE<Rs84Xe_@WT;}n#{pw?dD zCO(rOUiG~YO42vlang%@ItIQDCFeu+Yv|S(blbN}rXfwex^@Y=j%-M`_U*n)-^QMY zM}K2_v2rq?<L{OGTC^P6?!SB)h(26~5LuM1*ewk~@n*Ao|1ZpsM_}kjkFG(FeY+-_ zGL7jjWzLT+U5{*O?0#iqrc1gZWzS$tX3mCKQ_wQ9InzDOZ>3jl%MYDzXGHv%jXsuk ziT9&)o7v96@~vk7Ahy*y4$7a_{@tebZ|vF7KQIq;u6#xI2UOXw+V=JbraI<f82Yr( zdb|Dj?PkCH8?N=gHhTxKt=2<fXunPkCNW>V8ss9jXQD@I5Wj<aLhQ@N^UjY~o!;8B zahINrT@Uy9ULae2x&%E(c1!s>FOAq(Uc*M_&W0e)KiSwBN=7@qp+{5DqoH4*71z+j zn%tLK59+xK*QbfKu21R1@S)Ci$on*nK3=r;a_9-yAnWp@IFIw+@6D&Z*p?)r_BF(M z1flf~S55qi<YSS1iR7c{@Q$`y(4#pI{>b_NZnJd{lsxG4)?Q7!^lI!jQL9{QYz*TY z`Zfl=_SFgx0w3e#h@C0uE5wMM6#o>{rBE{6>HIe5F8nQpiPgUpBzyB@ug2d^@OBqR z?7mXNZuVYsdym=e&$eU;lppoZC5a=jTjyLdo_$_a&op{8r-l2u-rr|7PGnnhDwNHJ zzRm4_Q^DN>g*DzcdS}%6+FK+aSF-k+#&z_y1$~9O{F(d0hs?Jf*_P}C!~Arz_9rmc z%Isepu|K_r{nEqaYJu51gl$O*I{W)`>|I#v*c*0aef#zNTHSW7GhLSs#+Dad|0bg+ zU4uN9ua%PdUVz#v{LQXyDHwai;&}sV&3yi^w(m<&eP=?+PvFYp9{R;kFYYne@}hg; z6VQ{cK_1K3*c0Y^>HjR2oMQ^cAG3H)dEDZ@9O^oFFO<xOnxmnCv1zVB-Ma?e6Wuah z(|Toq-q;v4CfxPESGS<o$o9Sd{<vSA`{RK}k*7NM$MxD(Z}~Txv0fDS!RT4n;Nwod zGc5Ey3-x!T6vuzx92VB|eJK6FWy8WzUxd<E=JWiI;d3S8b1;5IpVPsXp&xlzbp8)t zZa$BK^6?uVn$PFL(C0xt&*T_<uGTTwhK)5jrj+A6W4$QH1@w$-@HvikGk;UC?0ny; zamz5rqoMrUxa*eTsNpd5*F7s+Z(WS|(weV}ag6m69uMeQ*Wi6FwwND5?=6Fz^Z(su z^SN6O+jmbd^Z60DDn6G#hR@AMcl3D(derCS0P`aYllU#4e$v-`{yCI>P=E9JC@7t4 z_WoS6FN|KZGtA%FHG5{2KROrY(UXxJW)_jnf7-br2PM}#y`J4AE3q5<a(f<RcL;h? z6C=KMv8TBg!nWc|JY{zGgVG!NGzWc7=Qs3H;r)FveD9)84yG`7XE~S^@nv=mU*gZ= z%QI#>SvFsefT1tFy9d1|_DHmQ!o7l9_dC@&AI_Sv`s=>ldGeEP*Lhg)AKiz~UYglh zj-Ittd{nc<i`Gzl!LC0^sPjvPcGWpRZvutqtzQ}zp0hk||1TSJAk>)KpvDYaZ100z z3N>~%)bV~NRQ`Rgx2Tir$}#I+u9Z{Wy9_zDV@}7S$09i`zhn(rsIB<RmY*bgm{X`c z6#mU?X7a4<flF-6)=*o=LFM#jsN6NsH$3j3aylGpoX=&wbvy33buX9o*1uo3=isv! zeI|B0de+ht=0<TBU$cf3)K=+L%U4jbJmt`przDhA{=@4S>Y%Z2K()qRu`#DX<@S1~ zKLl0lk&MwC2Se518mO9F4>ga^{g!ps@!a&fmwUgC%lPI+=Z4r<wh!W#s*iG<f5RG* zP+MiF_yeeX6<)VIq+yD@D<`v|<W8uqWl&@G`>*BjCs1Q=hsy1PusWBQ)yd`1iR)f2 zSGJDF;IkJ!hjI>jN<kyajpD8>vwUS?xCNE3#5<O!;@g&|43xxSVyWfqdZ^YS)R@Oy z`_^yT*bAWAZ-rXVo4#dp?E|%*e+9MwcQC9$C!g<4KA!y7c(3@=X!C1!20nPvn!OLb z+0yb+KC{bRo?w_8s2I!dSx)j$v8G{`9Bcb8Q1Ud?R{wWx%rQ`T`YqI&T>w?SzeA1l z$A7)+*xVD=y*2A|S;jXn;qiasir2Atm^s$hhnAN#x^kICS3Z(Zd8m9q*50@6aZqv+ z)Yea-#=HcT%YEppvE!j~ISE$ha=UuR|5w+&T(0!^$7e6f@j2)zOV3B^wbG>QkW(1$ zf@(?de!cQkZ0r)|DFY>OSfGb;HnhRU><+c}LZ~sXLLKjib+NINpmKjUtj_iBb#guJ zr1dY?1$_3Rdxj<G#YnD$o|eO056fE&swGLg@>XiLd}W~|0khOWIUCf?#*Bp8do$FS zXPn-xyXE{$sC9igRL-A<>i;6F&i(dva^H0F`j`6=`0PdN`~>uLB=@ntmeV}%v1?Zx zswG9c@>uR|dCNgb66UCja@N$##%u<)w+(8{+feKLm=+uREvTGd3afKn@0^l3W&O+b zOnmmDT$j+J=aljQ%V7p8*OmU3xA;KITLE2bGz}#&n5PcPSxd~uYy-9Tbf{cE4VCMC z`q|j=P`UmZtj=}4b-n0o>tC*$CU?yBX!Pj1t_-mpW?{JGp;{8W6RNxw2V1@}P!fk3 z>Y$u0h8oi_$i|F^8uJ8Hu19ZRW4{QM>yu%1uIs(-NPK<W%eBAn7>{pWw0@_d$HT<6 z-xHUHTCOrsyJ8!=oT4i~<&7*4IhZBS%E{y5JI|bFp~h^xp^Z5cDtCW{8v6p&+J6UD z=d#{8V#cZKUM^R5-!TuLy(q^^(WB>x{AQNp1XR8Xam!a3U3to&D^GDKDQ(&%NK*&p zYys4mf4jPj+{DIQ3$<<==&P|qpmM(*tj_g5b*_CuX8p_caD4Wn`;N49OIesB#a-UY zt!JpbRkpNT$G5h;70|=;F_gq$Vsp#clTc%pLhYTpg^jrjN`DqA=c!>f$0<-bp9i)7 zepsFRdaqSZ_{O@Idw<TDj&EMHp68**loUizeEDrHcS)$WG7MXw)^l+i%R>fc$h*ee z2PIEJjTtiB#vBio!@Hoy{tc==&q9s!ulu&CvySJVzV796W#^0vK6_D)ho8aw`;i=H zcC>s2P`k1_SiTDA%2N_ud8%x0{qiueo#pHrs4;V)_I?1v^UMfazYjx=T@01`w_$az z>#f_NQ`Ws)`*k}8-@GWNQ_!R9HnFqisx;E_lR;NY4qf?4LFFNULBh7jLCHx_Ih_O5 z@&;7y4&2Gceg!J0-+<M*+`G=Y&7QgL<#J`~b`Cy!(fPNGUWu&R^lp}~%C0WQP%U}d zmE#1u@>Kqe^~=E`bx_WZ8)ak8f!f<;7aOxHlzuGK`S)R{IbMXS!S2kV{rke|+}B&j zi@&+<<=(I3mT$G^SnGH+dUPGfMqBO*dsx0w=xWKJhdGAIL;15^f(m)p_L$vm%u!G! zyBw<JA5b~miM|>;7Am*np~kK3{F`W7cXK%&-@GW7)6kQV^%_fBUh;dpT%xNbjjnve zpz=`Mi`Q-BS=&op{(J6eW5z>``8iZByU|x;H-^e(0&1MkWxaKI&bQayT+YTfFUsZP z=+Sjq+|P2EhGCk=SYG1j%13!$%R>(4$#a-XDCxeBjoBNj<x;3zJ_|K=8B{Kt-5e{+ z<@~eO-CS1i&5LpwKYPVoW<F<mi9zME0M$}D!19rU%3l(u$g{R*L&=>`V_tLl|Lp#j z%PXLAIR`42bD_p{`rA?X_Gx_XP|JotC&tg|n6DIi^s|WIAd5YJpv9g<S4$dQF~^}| zEq|WYv9^5>lpG6{uPdQio`PC?yU<r-4~ELumtdGL_xwV=_XNhAyY8;N$@u0)Yi|~M zJUm$2@9#^8SY9$vyJCl0UJ~faNBIkuhaAk3XXWH^m;V=`#tc8$#+(6_%ZH)HE{4kG z+c3;!<k{e5%3Yt1&q~M7Yxh}m3`ZXhC9<V?3iz1jpSCZ6l8c<)(7h?>e!4xK7j7T! zw)LFM;gRQLR`N_%5!?0dlj^l=9m}I7RdFZ>%h0n>;^T--vKUe@aiVQ+c9O+&8&to! zP;v5H^_e_p{-}S>eAM|X=57LQUX;5N&?mVDZ?kYR@BccxOQGa_r-#q`URUFJ-<9Mk zkzM^f)yv=NwkzLSbK~*Bi}Wmd);0LpOQ%`9IjEe*GPZ8>Q29#3*ks$c%hxUcS3uS8 zKc`yX*PyFMhv)w9Qw}0)`IRc4H2+fc=vvNvqe~FypXS^LO7?SlYwvEm^logP*pz7h zKE<dDu+y(=(0gC^oK>p*dG`tI^Agq{J^EaA{tRsJPxij5ZDf+uYkhy@KH01K&d924 zt0v0XD^>oeCM_4P_`Q<MndU<Rs!oApX$tqV&aX|_R<9kQ;yMRP&V!1h-t+Ql?A3c- zej59{XwDpZv^J@4QJZg?jjn7<`as!i&~v|6Rz3II$@8cc`JrdxYy1wXa;3P3T-5H5 zo-vD~N1r>*o!uoUecSAxbC&sY8<amy?33&drB8ACbf^1!s7>p<M!gSvt9$I#>#vxU z(^sluQvI7Q<~5|8MEo%sKi~W=ooDsW!IJa&taGjHeW+e%vrlp<RE$2R);clG#9log zSGV2ARAf#sifJKw(KYy(QWu(^F{rlE1zfL)Q$8=uTHEJoQ?J{h<X%`EQ@!WTCQn`a zG0k93FIs!Ipl9Vc;$zBAH9r$jZRLx(ju4-Ge(@q}8$p}&W1)JV;q*U2$zx7$-Lc=) z9Vhh-wrh(8!>08M^c%wU?ys`nA>JMP20Kn_3btu$47QloB^Y#FjqlyAr9QsSbFk}0 zbuOYWaSc8vnaeD$0IDr_DX(=du^gQKU29tk)oTj-B$q(tsCAJ2?e6|T`!@#l-J*e) z5bp-Hzb`nNeO`2YjX|I08oW>C?{x{v_#+#?VO#PS7~1UH{Ybu}cxAgq`;Ooo*^GRz zXl1(3Q>n@)o%5HVj}5K1ubuMcW<Qa0c|wnU-`ehglD%ltR?_ut?cY`3C49a5yNn~I z$<Oxh63Pd~J&txS%F6`wHrL?u62GcTki61t-U=oEc6#`I&WT+T4QYHH(39_jKcq8C zhi|s|*G)reeD8Is{Q4Nb(cp7A^t<hGXw8j6pDRZZA4loO7DLK02P;3cw!>#yTsJ}W zANV87>B}&ze@oXh`F`l5)j6GxjqsX&c-8kq-M0MFjJH?$r5fLdJ_$;^Ux`^}BY?4M zZ2M#=xfrTn!L_#z=stBoW3Psd0)J;?>o9RCz6|VmZ?iJp=WaY>z33d4K`*%m?_=g# z^DE|<glXsZy-@NdRR3N-vA%IA{c@-tce!@|`#C$+_zreOap-S9N4|qytIg+l$Yt&R zE62mpvoef${}XxhDFgE^hBtm{e#dE3za3p4e}35@a(<c3ywUT^>gw`YJ}#*8S?l!` z^f^%CeU4pk{*|vY-}C5dNx_2iwa3q_&nZyHZvkrj(=c4O?t8@pgZBI2)O6ygIv3R2 z_UogK{$BLHat?i_Yw*4XH<};$8;m7b!cY0I^KA3`0w{SOYTRdB-veRjt9#aSV2$&{ z(C^{%$9UG$$1;X_yfm{h0X-T^a*p{~xyk%2z!dSx$7wFk`=Da@Kd9a#UEf`y`b~#w zpY8O9o=pK~<nWts{=44ss+ufTe5+BDmhZR6p<{L!`Z6f_s3x~q9Qj|EPbC=KY}@~W z+WU&r`)ePvgX?<<)I2|Rdi1-=ZP<&xX3JOkq_sE)eYhq?yiX;3O7KrPI^Fqqw$uGR zX}!ORFyeA-uIBgu>h<^QVH|UM(b}FYUCtuj=W@a25z6oQuefeFpWnUJ@-*x=%jZv_ z`b?y+M$K?z{57!FZ$B(nT&uXY<+tW-$+i2fTn|N$o<CB*F~4IlgU|Bo55G2lAAr)` z^*hs$Cf+8Vf4yhL@1dW-+|gQ3kJz7q9<6oacI@*{b_Qr$emXt+J@f^#QR92)OCxrc zqeowtC+}eH-<q8Sl<e;GTCdAfS72)uUYGkd(nfzTI(O&L$GQf;M$&hh-8fWR1)tLV zQ|v#5+WQ-*eREwqIXIE;;@{IHZQsQ&$*&qYSXO0U*NWiE6@RZLaTl+*=bF9iprqw@ zrauKGar(%gS~(fdob__z*Ibr9UbN<N=+QhRes8ua*h)KlcR<Dc$4=~5I<eoGU#iED ztJ?iies)8T`c;`{eifj6$vUQB2A`FeYoU7G1{L3O7t053f33VNz*ar~K2E!GuJiiR zs@SBDn6YAPxj$NLDX7@uQ1KKUD~{=+y~iAf#Xne|{qDAy$3cxf9xC=5q0WbMp>q5u zs5xupU<N+bi`B24dGzt3`4`lPqx2_>BL^$^D0>I6Ex!(h(!=+qN4o2%dmT71a-TNz z2l!Lxb>JBGd66Fnqerj*mHYAIKC^cLlpH{t?AMBan(S4bPZYC!E<|k2MUSq_<iIV1 ziu<l^AGRgi!Z23-R?dZ0zm;=3zm?<OPp<cD;QXucWi4GJ|5x)Uf6e5fLM&eNU8Tei zSA1r$w7}|<h01xt>E(y5J^qN*Esw5qLkenL$6$QE?d$!J^*sq{>$gyI9sXxq`@Q~R z$Hdp5j)kdE@+j0X`7fwBm%wn1xEc+v^WIv^%ul{X%AtH6g)J|Ne;j(jH7G{;oBNx^ zlY-J?P%Xt0=Wv(5i~eeTUWXcY8T)kn%zzr>*JZtDtrI``<YQjl^{O1HZsYOIi`LmR z^t6IRe2&u3Sp1czE&dD)TO12d+1kj!;4#a|T&O;8J#M+W^$F8I^AGF$IjG$2|4&<+ z??LtN#vID+SSURW)vrOnSv9fhH>-Lz?a%$gh5r5__G5Bf<Njec+P!GrBzn>{`1s1t z@*0PKvhxEd`LWZvPw8N%t&W|1#Lk==c5=@#H~(a3e{CZNI^Dl7Q0uqZhF(K#tN6Y^ zt$wPtVjsgiUUWQ6K#v{|vFFXd!eV0?7MzbCI-fWAm#u^EKt(au_3bQ%@>+_ac~-|5 z;^@&B$}gJlS;qoQy11@^l3StbzwHYa!<$fb@yBw#-zi*xz12O|R=2-De=V(wRmbYU zpRD+MhozS-o}6RKF$QBxET+N#wqt4}RPS4%VxRevjeQk{v3K(OfO%}!T3f5y=GWkS z=JBF6SVoW5ukfn*lXA?$*elldH7Gd`Du#EVTJHaki@{xg>b;JhckL%%zcs11>bn@< zy!2*c;7`#NBqFFrv866IP;IF<jWNfP+n<AFm%me9vz(m)!#OH8CJA+&Jjm&1L!BqS z<Mg|rM&1iG?(qNGx%zY{+ZVp!a_-(|8&~z7&Rl#C-_!B$59|G%8ryzdlohKJt&3&o z?rrIhV$Z#8aTKBaNy8j*Yx`eN((Nttc{-Gjv!M2O_8!EfJie~t`|$EtmU4{oB7gJf zb6kV3Rr($CDGn>n=P}Ey?aNU8COZ9VF!a-{-+G@-HvO#r`ju~*a|C_7sGg(Hi>|@@ zR(Y5Ag7Hf>-*J9!MqB7ZC+C4VvcDFtMWreqmA@tE(ept5ee);jn1PA+tZh1!{0u6l zKFh7{|A1i(bzUD$xDNmI`snapiST!O%lx+GN_4+QFJ`P4`8*4Kh1X9XnqN66zlyNr z{BQig_FWIP)z9_W1BO1k+Fw!U-g(INuJ$#a2MEtOHQN1pO)}Pt?%Px7Ssna{UlS#M zpG*>KYUF*U#?YtX4c4|3l#e@iX$<>Up!AuH(f9(C?(YGvukrcDV)?JNGcocve^#;0 z*P&&0dn~$V9flrLK@cBHvf2C&91GnW`K<@@@tUr-?-3}U7em$K4X1C!Yfs76Q2T!g zHSe#Tz6EnhPeJYX=a$oJym!A4-&Xb9QmdbjIk=%?%tO$pxe$HKg<jT>c8tL+@yo~V zJ#62eQ2KbNm``x}6>k4eoW5mGi*Z}1{#QHwUZ?ZBRcG>hS<gj(FDs8<;crDnYOFZq z=lrTT<WUJd10_C=WbekHg732XOpE#b9+ciXsQc7GjlExweil9OM(jq8V{dab`@Cqj zG3afs!P_kKX$&&hm5n{wmYfXDrhVof{Y-3T4V$%mP@aobKIpJ3p+~P5K|ixwiZuph zXZvJc(@2h>O}?HBL!bI~Ka<boAC2Z==uPB7pUGF9-+Ug%u+NKTJs5qGYw&qU_iqf6 z_#qpOY)iI=p-p#P=vU*|o+-OEj$?1T7_mJcJsZy6Uib2V#vtcxeU)v=4A@z`EpzI} zJBoc?G}~zOXuQcmjX`Xn*?0^}-gdhGyt!ZG^X9B<Mm}%$an6a@ETCt@S=-}GZopc@ zuHsq@B^9UhOj^ylE|twXbshTij&Tk{kH%RT%((!&vbi7Il9QnH*47?VTO0em&Qq?L z=5+UB*K%XUKQEeLuJF8cdhOpNpBb^8M~@y`NnU-Hovky6nC(|#XuD3li)FV?ye&6( zjCUaV3h{18yx5hE{n!rUg`v$l=aBKtQ|tKEv5}3~oQ58aGd`3!osHW!GMi7q(5Aab z-k|Cpxg>j?+!yP-v8>9j&Ku3YSn<43-q>svU<w~(F9#(D&?f&gu$~{|nR8`+Wa;BY ze&lNSk>Av8W?*a+vzLOBZnVjd1PuLf=aP+UoJ(46!JiuEl2vWfu_&vfn8%B54-Q5z zy9R&0%WQ7`#i80Nn>F&?YV)ys-1dDJYTqRGsU}y#Fa~$O7XB588h^*Wpg8n?be;P$ z&AG73M_DVQ=b*&<7;M=X6!1?rFBoP%-3F_D=vU{SanvtY?!yH7c+u=9pl4l!_o1>i z*9H8L&B<&_ehjO9sP~@l+*R<Q9PwcZdi3=`ur2qc!_DSnP;%ck&IkAW#Lyb|U=wa7 z2dnt{u2w(4o-Sq{FX8<^`a;*>^OW1({7N~NU=qKTr{3Gy`q>#u$|G!D^`uXj$2#{^ zOXa_QH@wb0)zI78{nE_C&{w#p+L2>&2eY#fN*ZVj?QY(C>gJRBhtE@PU1uFV&YTUK z^$Iqd)EEr9u*P$gpTIulUFVwRRq^Sy%h1C1!4M@J@p;eeVlfq=+G3wEJ&vAnabA$H zw#-QDb0yUAeC{ZIml-aHl7Wl~^U}%v&MbUbo%50G+{YL%itBOotZVRb1iP6JrCm9f z6NCJi>S8&GHubv#uFSvDzgm6&PGF1|`8NeU>l(a&mEFz1B240|{5aG3d=zc!cL5Cj ztFxZ(lW(1@=U1xykhP`g(e<3(gLA=W&CW6?*^IW%?2i6*=XOtEzZcCo89i#ZIGTG@ zXJ<Uyk_%vGc5h#a-9-_*i)+}8@5O5(XJ_u7X7^bb+I8!+wZ^q{%x_kI9ZY777oF$M zK`*)nzYgL_^C1OO_$EL81tr_>ZR_ARC|L+YKg07(EIiND`+n=_+wu1kIG1!br$5h} zfNd{&KlWnuWv;=;UEJSdiXC7vrlBN5dzM@%&g?$c_WHior{8{do_TYOoo6<sZ<vox z&M(WAhgG}>lK(ot4Et@n|2lq0p=Y7Q`=9!}`4)$He3u`KTnsmlHGdz6p?{scE||vL zoxLt7RQV!{bJ3&s%asE;mheNiwq#p!EevhD_wS;wxrg3?-N@_wmFfQaJ%+Jfw5}(h z&v6YtKZ!4xAEkpW7Xf<WAoJ;XD0v4e-$%JV7r@ZxI_JCF<#Q+JyG2!g$--jv=y|7b z2-h)uk)3y)kEhTU+U=xHi90*5(|GoKk?k~kv`)zsuWOvGGY_>Kyb43x?jCs8I`<6= zWPdfE$?)rWX_aqU&rNf=Csd&jU$4v&=0^f%@l!tK4>KQ+INWMD0fxT1<8AL6=gBN{ zhsWE#HQt+Cg*Ly&<}i;JokNP~(cixajxv9;j!9T>aqKzHd_NS*=dT`VF|>Zs*4&mb zjHS-sEE@Vd;)r}FL%u0rW7y|KRt`oV?izeP6JMg%&adakyIRA}Z00(#IX7anSi@%S z*v6nZ!E79PjM+RE%4UOp8{U6svDj4ZQla+EUHOhb-vLP3^FjVI+x_aS!Q}5(e+{ng znqA-fYmKz97ABD^FX7+2MUUxZhxj#8Jk@FxoMvk?JK5G|^6Pee3)rvYH3@Z|&3dw5 z_wPm5FUffQt<NIk^;<Ck?U@s;?oUBU(^t*Lc2I82ftvFksJT9b&G6Ba%=T+gb8gD( z6wP@M)Mo^llg+1xPvN;T^hGdSUz_y}U(*b2YYGNW>l%cAxv|4Hc*4J1RQGR&+%k`~ zRp;*()ob_Xx5pXlMKLW#kDm97t@b=zu;G^cPN8jYHpKpxMFJ{@U(iQ#m+Q;l_^Rvg zgg>mgzZWysi~OB|9`!f3srgibNqm-n|J~U94K^|TZ1zbmb$vVYx8?3N_jeRyy~y7& z=uv;OTbfTr7>nEX6I+<S&qMit3i~AAc6~eZcizYFcX7nur8WFbZD&5^V6c^K|7sia zw+Q9$9@>W-==yf%@8mzOd46Xw){F8x8$Fue_)g|i8kU?t7wl;M=AiuT#XiY~u5WnG zzp&%q0|}r1x~}T^uYS!Z^7+#}(a)d87Kx|E-&kAKHh&$@Fpn3V%ch~HU4uUl7A~@L zR2Hf&1=APWdF4r{^VJ5f&%RKx`tMgopW7YvC;VQ```VA&U$N>OIsw~WbPbq+KGQY$ zScA*W|5VOmt)MHuf@99Lr_r?*5-@w2jd^&w_1*A$c8=Z!YV5&Kxjo70M}6P=UjQXP zclw{8=KLqrx%&;*?mwRy6#0Cna1XhRd_J?T>B_yXPYdzYi>|lB@7+Ggy9S^8*bK`{ z`3IK!I8^@1w5v}NDvw#(m8X<r>}qSzvtQT93@lNna2;N0eNTbP=~SoBf?5-Eo&G#j zHBP?D`kx9lekPO@oxTvt#_Lem-=5eC?L>aN<#ytWexGI$ZC*6%V)W>JX?!N{fBewq zY-C%~0&CeAa^H$JlC*iz=&|Tg8|5GInwWo@^KK}4(CN|d>||x5?}~pra!$lf0X-4U z)PDa|`Z4dB@K1KW0VQWSz1B1K%VewS8T;yOe=iZgzhis}^sy1Uu~}xTbPeR6?C%e? zh7NRkL##Q7@tye&zfm!u$NmEv!@m}_!sml?vC}Yk#lKm+s%`#!Tdwk7Yk3*^ZV~^p zdGkN`nfY8qFI;PJybN_r40nCDg^JIgBch+-j(Y&VS8|T<xjl!zUgW`a^sH;}$7udK z^DPZi_$S+UJ3k+EdcEHpDan^Qui2JGYzGgnxNeKHc^~C^vw0@llJj5~fA4Pl_ik*y z(0^lEzZH;Yj_7Z}eA2pdsq@NwY<rO&%wO?&?Bb0ULl!E(DX3T~j`5pJ&%y9~2P-b# zGj6bTa52=_tDt6k1nN9jhFV|$hGBl{ypBErzv|UwI{Un6?iuLOb4lgreBLt0Y}^JV zbDbXjKIwef>eKP}tSS*3%WBw2-a_2JFdL0*OIlzUSI@@%`Q4|}8&dWi`4JDTXk#30 zUNm|Fdi0n}{gPwM&H0?OvDn+F@pq$V%g##9RSP0^7okVbRf*dyp31Gnh!2YCAhuQ0 zBVZWgN}iP*`)7Pv!}p#tjP(*;ThWWI!5{Ov+s(%^O#j+^I_EdmHVvv@4u-yl?|p9) zzV}`4_g*u9!Qb$`Z+@$!#%IRs(mox}I-X|YvlrdZ%tv3Sz!9IP%I_>E1*o<d)VVtC z+B0+Qm@LBhZ!KTj-eF@t3zh%FppNyIpyp`0)8^O?s^_jydHx)8NREMF-UszOk-ztO zPp!ZAnOZ=;>%4YXe6rI<A1|6Yi=K83KECYl`7G=%v)7kx$z&MXZ|S-}znyV<^>1g) zlijLg#M@dNvGodi^mxq9<GnIBcQ3Xj17K(?)-*NN*xWEAu<z8yAI46<j^~xJw0Y6! z6#87(;Nz+Mk$Cv0IllrWr#QXd^GUO1EAqTfR9Bp;`+_PTbPZU9K1oIp??d)aX1@UA zMcY0fYX8MfUkF2SeaArUKi}!~d`&&F>b|zo*Nc3eh931bd9V4Gfn{fV?|aObF;ID& z2_;3RH_=zV?(N1l3~UYtPHGNX8U_UZRW7gFj~v9k7_W1$i@wfn`71GO*dy3*QkS~V z1&pGP7g-;T9$im`zi_|ukokDopUuY{l+W0&`}eA+%l=A^o!cY!=b<N^L%z=O66be( zki9n_Hv0{aIQ#DW{-ZkY>kcpB!y2C7Q;hYZ^GX`Ms1pt1eak#*{v==;Kjq_`zggRF zp!CO}`Y(36e=oY;_lNH5#AkmVc%{lWSzC%;h7#{v;&HCa_$421ddz(K8<g&!M~*ji ze4<bHe!0JC-EhBtc*p1Y)^?j>QC{a_&x@`PW%Omu*5YHy{@wgfItGr#h1Q;h8RAuJ zeg4ndwujO;dBTl_(qDMet``FsqdlL6I_I1OW$&9%{p@(-si}r7+mE-FuDfuqKD_!| zz3fr)Rdudj*S3}C-ozDutUb?t(WjvghZ3LX%CnZMB2-%rhSy=JJqZ{d0#LOpmF=E6 z4|VR#K$R{D^%_40!<s&0@39wP@hQviOHl764S3r2?F7~LP^htAhnnj$sJZ7r-A_CK zWqUD{FI|{ZzQv(@-3!Y12~hGCsCq_!Phz*nsaw_S^LpFLpJqza-;3<Gp{HGg&tLjq zW-IHMgz@LB?I<WIK>7I~)VPw{&pm&K`|)}5Pxt(XcT4%>esPr#n(Y<z==nOanB(5r ze;!IIPWR`Yde3l;eFB?xo=5!u+nX!hc&(&bXx(PWm6w5Rl+Y6@DB{;c>}AV;3Th4J zplY9b$?+9i!zFaB<uba~c>F)c9PQF`u3rple2IBd)LC=h0ws?^+1>wnJD%F0_FMxs z=2j>h-CwZdtPN@%x4dXJ{seX0UBASRyI(=s{s+|YcjCWo{Haj${od*KIeiem>T|R` zq5SgKm_&`|EtfvYI{Or_F+&%&*GlJ<G3afPTIK(1c`QTiiob45L+#1KG<8vIFG5M* zSFO)AP&uhMJ^PxCxfLqscfv3y?tZ1-cTX4M*P7n11b=UjQ8r`JBQfTdnja-tCLZ~8 z1ly8xp}J3ZeK;Q-$@>FW`u7J8X1?h8XiAk$&2kR<SWSj#F3q2NllM9Jr|kow<S3^{ z&&fsEsB=!%ai<(Fsj{g!m!YSj#M{ijW%jbL;B39_Z1<o|{dRGES~qH*s^1Bn*rolO zGP(~s;UD<2nxD7$YsGZNdeM5Djov)KTD*_(cPtkvsN7VRacy)yZThzD+ZQV4v!VK2 z4>f+i(=TO=<VvXh^<qi<bIoHJ&sZ;tC4(M~rTm`x5nFD46wtFSu4i4GP48MPdqVko zB2+AwI{jcb$2b_q(y!~(evLgEwh8nL4)z|^<BFp{=b3%Gr~SEDb1bj&QJyp{;&p^} zAcE#Az0W%2pSF*MlGB{-zmr(&Hy7KOYi&IDlV=_;I`7U!&qjPKbGDFwX~(?I9v_&` z$3e+eP{Rg&X!(2-YE1NZD1xW(yXsi-_YlKr_o5jS=t<Y$b5&?);`jW`mx)kvlGCHd z?39R|s7<ZkSyeVQ+b!s6DEY`{7qgdxC1<OVZAlEO-`=iIG}c!lKKNJ%KHV|aq3B6X zh<Ll{M(nwH`?D<>3|&q;{03Q?@zwEFZ~ODpv?`mLZ6<nJlOiA4Y_j>2Fzamn#@Q}H z^?S|xP~-ifMe;+hIjVk7Rb!f-=@@Sddi4G<))kx1{=HB#-|5lXrWjuxWA(O=x2?*i zW}Akd)})A!H{Q+S4PX-c%Iz6Yl7;Gbn``Iutrgx6TOdDb#JjZ0w$}1;^k}>#*>v_V zf|6-YkH(uUuRPvK^zowE+R)Rk!N*(XZ$&7^A`IO2&e}$jQ2kDG?XCTr&+I>`Tfk>9 z&sBd0Q;{!&y9a}L|EBlE_TS`R)i%{fIT`Y7yT7`hOQ4U3l8^lDVZO!q9ZpF>db7oF z9+dnZs(;b7x6wz(b{;BLzVBP}d5gK&Th(VPYW4GRlp}F0Lr-I0;^RoSn6Ej<1k4eW z{Oi}t_8kJ%{|Kn|_o3q0lD^XG#gTn(?Zh#MdAz6|Mf9|5@NpFTn6DMboY>p^y8ue= zhU$N>Yd?-YisKU4SsY{kwRYmjFpn3-F%3QK8hjkde&%b&F$Pn8&A-1vNgs}D^&bG` z_lr<*^rdfSal{s{oj7)59xsX`g`Rc|K8`Zq!IZ=X8Vl&L{^s8mQ1S>=|HoYWx%5#S zH$aQS?q?1Q+V5xPDTb>1nR?s)7+758tM0{?qi1CV@xBHdm_KR91kB>Me0bLR|B};( z4>F&(huVKD)O7!Zk~ds?y<=j=^J}LD^O(nrYVbIE+BNvN@<Yt0l4AzuiA{cQHrVzZ z3)TO4sP_Hoqj<g!rTgC&9vRp>c)HI|zCaAr$X`qAZTlKbqQ4i_Ad5atMiK98c|-Fj zxsfpjvwTxcKD-ouV~yN8eHeW;ZUof+tD$@@x;YlQ_IfoK^5WX5L6UjAs0QQF)2_kC zRoK|#DLZCime}NX!%*9|7gYcKpxO_mkK*|jlwL26@>+_cc}d4O;^@&hN^$cw*vyzm zFKlA|?X;=2oeCAl8Bl(IgFcGmN3gRv=3uYZb!=7J{5mT|;#g86j`9}fYiyXYfL<gf z`M1yJ)^;9L92Y^gUqBzl@pCA>UOh7ZUOREjWF9YCR|WL6YxrngZDqce9kZ}RO!Dur zEp6ZTq55A1)qW6t6vr7*dP7%!d+N%DboiUi*L8gEzux;TiI<46&gVm_gY1o`kC#R^ z($cj9@&4zxZwk^Q%#VLS$@5P4&vQoq9>;yMt@js3Mt*0g6Wy<kSE_uHwWgO>{Cgdl z9nGI4l%JIynu0QZDp%v!mfQ%H!`on(!|-oZ4AQ4*9iDLa?;F?q{=`D;*URH4-L9PI z^>pw`d!2M%9*!RUUP5M+#huv2a*}X*0V@6qEGBIGfSs)G(NOuj5Gq&CL#>1VK#h5J z=cYhCUxL#8dkMSO_zux4`1En!OIX#hJ|_eJ)1DK3wlW&M7+Jf?(H3WN4`YC?II~VK z!VLLRY#V*X`lNTWm^a<s`aTSmlMkJK*=H?hFF{Ewb7=o(VVI-HGoN$tEBbs>smgba zU5GwhlOg`NE8}a9f12}p7soA5=e6A~{Ql>}kADC2RczFFKV&!By~s`yJ^DOmc2Dm2 z_$NENL&+XakJ@RgV<#W6GpB}~_+DIx+`NBxcK%t%PPvYq=GQvL6GM;2Q@~D&e~RZ! zC^^gN(Pz)bFg{wF$q^e<(4)0UCOO~iZ8qM4k}kB#X4J-<8a7H18w+dLC^BEh&3O@& zOs`|3rLtliqiFM@+K)z$#*y2nDX6$P8`+k$z%Y&)?^RqZJG_Qz8CmsrZ``(yOC4Lc zRN2*x^U$O3TjcgN8zoq9_WthdZ%LbufvsJiTJM>({CDMkjG~Vh`7s7P>PLA$^CLcn z9&URZC^-|#k8ip5T7Jw}1wZCR{8&)KkHr4wM+T<wMfv}>d_wMr^5a3*9z7;oUMCkd zj{Q-zdkO209z9m#2k<(>+5Quh{MqSIJ5%b|nH8}!yM~<-c2fLPT;G6_vz#9NY`7vj z?s?F9)LPRlL*8hQQTJcFp+{?+8Ef{EP<f0wRzBAhWceqbeg?I6e+`wZhoJgC0VV&0 z>K8q>FUFqtQ9fzREmb~guG`V0$6Xm83jEWY_d>}6r$=opsbM3wv^{Rw7=j+Pk^MaH z4f0Pmj)0O0PH!F1<3yfm|8>VFWbAW@Jaet;^XseH&(~{ymEXFrS%MyYzb<{K`5K4v zy#iI6JdA(A+WrZZ>!F8O-y&2V?uQx^UAtr7?0Ae+A1~G0@>BC<=<h{-PD76#JEfG_ zP9A2y1TapU?C$~P^S7b={Eq8;ncLs#Z;ri%uloFWWQ}K(){!>lshPND;;R?kgDpgF za}A1Hxd@JOHTt443zeIsV*s_Mcw|%fnSB=OSWdzWIn^Aqp+2Yo6V$$^pz87x)Y#F7 zTm3IP!sdPn%Kpa8p?dBDHO~s`;_Z&>!XLvK+P!Fe8+x?<h4I`25S!-xGTV}4U}&e# zbM*^kFY;Z7s4gFrpQRBWnwG72j2DkKyA@b=w$J~P#Xb#&zC`X7$1+d#ny=pWwlnnc zA`4mcX#Bx3Hh*aX=XU<d)?}!>XQAY~uD#xOKMsCp<@t!_=abfz13fD;1>d|#pNAej z#}?8SXBH~%BvkEUj^*QQeHI)uFkIVE>p2E9E|1foj;Sl4_FV_n_f@F1zWK4XmZw13 zx)@5n3&T1`p0V2PU2?mM*U>b6y~t)3J$fCje8ub)q3q`!vufv`eAo;s{%xU-o1LNh zj)#(CVCZX&d&^Pp;cu+=z2zs-?&~}OyIxf1+33;O^ItXpGmc3Z*4eRqqN}rG7AlV^ zs9MHhe4@p^CsdsefZBHyRNqsf>ilb{+>JQia<@B_>;-GpIktSoI{V{zH}-jvjj`y_ z*n*R7{_-T=A2`WuG_kF^4S|xqp==kOzR>BlzOOe&{?w_X_p4OpmtrlWj}0xgzy8gg zVz!eog^#iyur0s3Lg}^a4}X8<_EYrnBKv9dsQv8MoPAhy_PVhx`+Z?(e^Ad|_<qI2 zTHmiI$d8pgBfc==M;SeOo-Ka8DM(B<dpEHy`6FDJ{lo_=w?CdfUcx+}NA2fM!{(`G z?_1hNE{87vD}0_^k=;7=Ut8^3M>>XveAw>4^zrD?^<6yOe9k$hp^n{zV*u47d4{p{ z4P$^_a&f)|b^P?p*fDzy)Ui4rDsM5yXkBa!C7Z)~`H2NPd}{gG4O?E6pEmSpe$wAG zpA(J&RDMcl8uL&+%Cw6ar{~c#<VbN|4V9l?L7mgyhsw{SDVCoCRDS*dCHKI3`AIZ< zdifcTEicN?O!R1eVrQAp<!>7cQ2EI^rl9uZ=qJXVo<fg(%i{bDRDKSF%Fj=r^3&XA z`AI?L=NKrN2<zo1)#cO6PaC$pC_i)2qxq?vYd#kpb5Qw7J0_rdWX>}NPEVj0$&uoG z0V+QYXIp;00F|G)P{&trj^(E}l=O%7@{?)&^zt(kTV9l(h3L`z<SsCu(~b$K`~;4r ztmP$kp)v3D68rPyNO3*@m7iy!*3b6mTYhFj<);j_e*Oa`ufuxz$u)g?`I(C?FUrp{ z^k{w(Q_bhVv2?LJ?>J_ldKB0%CY_!^Pm(jm`BkX=TmY4yhoRQbZWmd8vQYW?9+X@O z>*Z%s*ZTSK_b)m6c+re`^k`g_@0g9mCA>DnSJ@j#n<Ne8&qUX!)_aSoZuR|GTi4Ng z^C(Weo^QhkFVg3uN8`+1YB8l8<526n@?B#Qsz>@VW6tSubmgQ-f3X77<VxG$fvV@v zpz8S_sCtf{X7$WN<?okJGLSiS@4f@nI@=X$9$t6u&)*3+z5VHDdynh(?&NkQufsp- z{r(<i5x#hl??anc%yH~;i?jTFV*!TOAjcHco*ezexYJYUIhW_(LFM#usGP>9TTU;7 zI)^+4mD4hmJP*Sh)_AS<I6l@}J8P@m=Vv*#yeL1Td#sqB+?D2Y+A#scbF5?O3d>7y zl`-%1BKwQvNO8UZm7j*3<>w19yavJW8pIgor#F=JhxPKa6d%`C9_r2G^E0$($NWq{ zj~=7(tIg-i4~#{q{Nx<dP<!(96BABPqbJCj;`}01e!c;<e*OTJpW!nsKN+a}oC_rv z!g~1`*z42F&uDCU(fT<DJ({25kId(sV;U+y3C94cNAkzU(oAE3ULr?|^DU_S^!uUZ z=NPE`%!gV(F~%rA8$-$FuwH&fwS0Q{nSd=X%FitHXnsmRF`x5}8L0du9b-^EQr8;G zvy3tH3^`JqS3~9JS5WKceW?6Qy2kQTfXdGwpyVE?apB)4pU82k-@?47<L{#R=MifC z-N<ph$)SEjcolxXv{pYIU#i<V%;QD=&Ok4?2Kg%=3)h>kDaR~~{mj}XLCM)r{g*=J z?vK~m{?^TUP2FtL2Em4HgM$H$y&853{FBmlts35kI5z1KY%-}aXl>(pY5&`BDRQ!! z?LMXyb9zxtCZUg)bBK>Ad!zZCbPQnG#dqp#+jkvQ{PS+GnEnklei>A||ISWJQ~MQI z&m}HaOl$c4qn5rMeIJHCJ}%GOeXq<h|B8+|Sj2z%wEa!C?-VHgAoi&qZBV{n0@dEx z+A3hP)|y$>HeZK@Rk3JoRnVhrEB6cYC*hce@t<4UIZ$#1l<yxv#q#HyT?~=GGe0JV z-&LO#S8vNFjh##%FPi-v^t5a6Yol<B&7Xrs=T{fDC4->)jd6YaGh!PC9oIl}Keq-t zc_wU4o*`2n6U^;J_pRg6=eq_UL+m#5H|LmgEZ=J9qY`?_#jw{et?!9YIVw5*9jN*C zbYn75J#TmV15ol;7_KSzyWY`U4DA2O<zh5*dr>Y<K#%4k^=tF9<d}1e!|>Ym8_s71 zi{U&dxdAE{v0s_KJ5(;tg&I?U+Vh^%d%HO|fMG5oe_Qx*<)CV9YCUSc<yHP`-lhRN z1W73IwJhUbihr8-N+|iE)A`J=!}pxVGQQeQ^|n6-GW7AH*|O+q*YJ_e+s$4P25x(2 zZ6isjey6#1|BPY1zf;pP5TEKitGT-E{@gN(IlbtZI2b+a8hi}#JI&wx9TrO&2EVoK z=b`$&2UX`O+K0??eODG!`4fn#c~Hlg;^^7XtM;{!{hj$4K&^))OcSTJ_n&JqeHkjI z$Dw37)c)vNnZo?l>!W(xua#L<K54dF(9@a}@p;bQW%FlY(fRd;_mejD+tKxj`mk&j ze28z*o)`I$Ku<%-M?U=C`2dT~)*CPs+Cm>(pQsP#Fkf}-)!RM~vm-v-UdxAh&Ied@ zw%&lD&=&gO`b2#Q2Cv+Q;q>vMS$9KEyM~YQ@CWAuEIM0nK}j=h>bI-w<Jb6hb$)|q z^pLf8+^+6%zP9?Se!A~JfmpogHy~!Cr<4rjqukwRc}jZT>uQJINWUVwTCz~bQ}TYh z=P$Fr=yJO2-8QD>kM=s?0jRMJMa%s`P|^m~{uETprGK*53)kLb$8Hfy9)jVqJD~ei z-9JZv4>#LNjaKqommhb(a;W?0IoR@|*EkE&^RB_?FgD-(&OGRH1a&S7oL+|Nk%w9G zr`Ya+k_{iQoa_%Z-&djJ0jP8QUtyRF_gf70t~cjwxc1hqVppAJGp85%G7mlL8hq^e zKbwDPsJ0kPk`MX(TbGv&9<qE)g_7rCbxa%8ITj~vwDw}EcWfzEd6mPK7uCIhUUCgS z*5t$Hf9w(Szl5$jXJOgpVf<gL&jV07{LBK=Z-JWU9vH^%{&vTp8qeLg4JGc6@jCb8 zjP>h2j}Kmyj}m&`HTZmF{${ZiOBPcODj!LwC)uwa74($L+0{_;5>$R#|7v-83u=vh z2*do;`Fq#1HYPW#`8|}i-CsG<`Sm`0@uG7>(<VEt@H^wl|Fd{wP<bmp?sTX)%a2)( za!`7XcI7(>^W;x$i(Q^S`>5sUWT@Qz1uEYMFjn>tb#wUFxwY2T<M{Y-*2l*g>(|zD zeDI=JM{K&{+R81oJe8lc92B5pO*=i!e)WjK47pXF?r^#8`Gn<Xcc`3iz!<HqP2E_3 z4^Z#CGd%vupLgn=k5;!`IaTdb`0Pb%a~gW|{8d<FISu~latoEWJk)whIXy!^<tq-0 z<X3$z`Mc%+VJO+~AC~{^pmIDBO74KF={->6e6CyToa0Z}?0=VQ<xX)<#|JOU-R<Z_ z*Wk}}xw6HVdB&JRS9~$3+!blBkT11Oddm7d0kt*iY16NUTEkC3%{$P|wK3E<pR0Q7 zvbg#GE>~;1E|=i57v(m-#fs~)xY+U&`<Jl-m5%~cZqrWB(ogkDz>>@V51+N1J_RM) zK4&@K11iU-L&*bB>+(@po$Gpk=WE2U^)J`s@Y#z#JDrXm{rh6smn<KtmyN}LTmAyt zmFpx_eq!ubu8ZpbytU<^WatZ)%WI+5bLvGK+jWWMeplvH?!N>j6Jd4EH?4Cn$ZYw) z%eg-n%)|#TS}#TPifi!ag37Bdcdr=>=!!3kt{f&{j{K>u<rVAmO{lFGpmH{pF`93r z8|#n#dcSozeJhunTEC<H3I7J7&&}=l;6>M*Md;Dr5X>&Mcmu~IR374QT5gJJuUOku zC>ilz%gr<>Iq`MN(NS+$j=l~xhtE;H^J97I|K0jo)AM8V@b;YQ{Fp?KUbj>4SYGmP z8?(zSA4#b7R-s+_iP0}SW@%58Z?$dxmgVy6P;wX4)?c93Ul%v$7opbsL^qeub-mY{ zui)qE#$2zz)|cWKxJ`R56vqhkER^_Tuk@b9m0oWC$6$`Q6>H187UPXj$JmEX|EU|} zW2(1)7GkfSk87)4v4&o5+a9a(9!HPXou{G|dQkk(;>)2ct|ZJ8w_=XJZ!zBimBW4? zn7$2Tl(W6vSReb2b<Vv_+kNt}uWk;NE9GVczIo9xG66lK;1Itqg07aUl4G{Xa#e)N zQ;v3JCJ9UAPi;pv*qB97TVL*CV;UN}hPiwXYW|IxL$Z~d%ja_UI=M`ZSa);ThHqZ< z+0h*IVkDQD7K^vg%a}mdx~rfoZ?WE%%L47OZr1h-D4EdRa`_OH?AgP{PUvYlJs)bW zam*#NXF40_xw%`n=sk6dNyEdxD{(}f{4U;}{BGVW*qqPLYyR!_HQm?Q-)Zh_&NUpT z^{wk@%MR@|(Qnd@LFci6Q2hE%46u9#gN)_=miG$nI_|SjwJGqvsCpz}iaM$7Whlw@ zvATV(uhpP`%xW+ks^7eRUBhd@=FBbg`$EZ0PJh(d^nZgW`o8Rt9jVKw^uBBoTV8aI z$e`z4gU?xIu=$^YiZ2coS9t@|i|9HhWMPWDs?U`!zb`@Mbr5|u-;GeS-R8#nb3ncO zwaJNf?;KF?{Oi}@41D&Yb+`aMdVg2i*m9b2EDSY0fv$X2(3Qu`CYG-lj1O_Sg_3i4 z)vcQCxS@@i0+r*tq2y)P{>6=~J{vNp>b8foHOATK?0v3zJCXnY@q4I?@xhDY9XPVa z8r{rdPD14^1{G^DZh8@2YcvB3<Wha!f|3I_wfub>Du3T(jP{)G#<qrkqi3J+TspPR zxir5sd0J2YM$fwBr;ZsNBlF3h7yV>%eAEv5Daug%c__A{)hq2-+TLoM9AWj#K@BNG z^^EUe$43V0`cQ<bdya8>U7vvQ&8@Bf7B=_LVO_(&M{p&S4A|0aY_OHtxEsnw%hqON z6qNoIr!Rt9qo)oxn*+AtZ&IV51m(lepk{u@wJ+Yz)?5#Kmh^}6(O(+|M4oy3|JeH; zIJu_t{kz#@|7DX*k_{VKGDuh~84<AvMg)sskVI54B4O2H5G)BDBrFXEDT~mdL8>W( zASGo=kZLeU+k7h+5k#BTAV^91J<omLWA2{4lif7&^VM(P&u2c*ea|`fywCf-=bZaz z?%Wx*`*(kAu#Y`vU2B4EBlKks^n@0e9L0x<9}&gWuHsJ|$aO8OdJy$&nT4K2KI!uc z&FfwviRok@=kS$4_FsawjBPLN!yG#beFxn<{QEn0FlO{G2@XcwaSlB~XCNkK*?Ngt z63DU$knsp8X7<3Eg?O=S*WIM;1R!H`2ax-GGEB;^8!mCa8OZj}11SU12ghk0kn$@a z>rD(FEU>Os?x`{S9`2X8$Jzhdm22ru5C@J)uC2q6QzQMcu>^WdhQ+sI(m6s3f(?R+ z!)3e$fSkvv(K4PQK(<I7Cgp)cWt~eMBI{lV=$_A@p4UlH)DzQ+S@hondJ^c?qaFXJ zCIIC4jA4Ib6!pP9Wqa^m()JQy0Bx55xzF1`w%uwUsqeO5H}}70t^#uI?Hm?cX9H>L z1t6d2_?zl??Jw)g0w8@_GP0Y~8@LR}evdq$o6{5ebRhL}4wU0a3y^F4wLq4?1>~Gu ztNN!0cXRqc{|3l<Gv^K|Fz4p({r#<5h0bli>vE1w<|G5(jWB1y5qPGN3mwF)m*L}O zOvc6wW`87OGY;ff3j(>;rH_+5#(_L;gn*2H4*L;Pz%a%+w|gHcZTAE6*wzB%K4%;y z<qwaQ9A7d{ay#W%$^9ij?*D5b*&MHZn;aLqPc&hlAAXLRGmiV|@Wlw{$0F$VeWhGf zb9S;|0y@(gQp}wsIZFZ=&k))XQ@{lB&F!rx$Ua8`*~`s9=K1gwr2G>g$H@LCihdiA zIa~^4PTvHwpCZ_x?NLCEm+Mr&O>K9SyXyV^b8;7kFGiTVICMLAk<%n+8O7YG62F9E z1jsx%K*l$LcEmtqHz%igylkTE^B|DDeGcS4zdl9EkDesCy9>zNd<kUkhE0~-?E_?= zCj(hO2guz0L-jAU-sEoY0&DBi@PAJ3*1;DeJcf?gANRgF0U&0rjOu|sYYy;0#xH%g z#4n~80y4fy)Dwf};9d^$$L*riWuH1Ab9N4pv7ZZME(1Rn{Zt_P{%4cquFILS|1==^ z?0%Ny@&F*){R7DUP0n^Lkh7MN|2a8J!51T(Z#n33D`$abnQsZj)P)kSh++W9Jfts> z_(jl;am)Z?$Q!qNpDX(u0Az1J1#+J$=Sle^QzR!{&KLbGAm`hKK<>XB$Tjl=tse(l zZq9+s-F&rea#!db!4pRP@N-w_+=s_M-ba`YAC2&wWeIfq9mI(%B&Wg41Vhjn$IRtA z4}r{22*?&$v|}EUicw(TA}M<n$hO}AnX`tAWuFJ8O8K%&C3mr(NRAJQ%el+ZK=ye# zko$MlzD*7bosXst`p?Z_q1=97<s4JImRW|F8|jCQ$iY76!8glTN-Ji5CSxiJ<Xp|n zl01hMQ#Yx8i(u|X85a>PPeA86cv#T^a=gURKheQ{8H`(QKQ>+ZSP68mt!Bu+lYqRY zN~=ElN@=&nH8Lg}fE;^={Zwo}45a?lb#iU?0+9WG0Hk-@Trc%|0y);d1ai*Zo{+J9 z#|?5#mIkt)*MQvL{I+g8r|oa+#x!6oZ{%~Y%n@x(LtjS7Z8r2;Yb_7mCOOL7D!ii5 z$<G015KnGz-YRYCfm{=20NKr5*oS$%U-vchbhiS>$<{-DIP;V-<nbj9&PF(n)<REM zF%0}d;uF0~Fm<=YDF$SGf<VSGi+W-bn9w-ydb_ke3CNty1#+LQ?vV1EelFweD<I9@ zkd$$D8<2fH0c1`_Xx}CW#}&xIyu*GtIrzTTxI%V0CU_pZ6frcy|5zO{8sDum2@vLp zc?ryyu@FcJCLfVJg@DX&`eDg;2KCH)_#wfB>M_*w+BFDd`vmIQZ&opab`gv_mQ~M@ zeGdY1?P&#a-x>Ev`F_8YF>?}-wvL@AV`>SIdhpk>Hbx(iwXzAwey;~|4*U|xc2B7O z;Da(2Uk6f_1KIvdAlKFsaHDR<;{FB3V(xGqi<{uyp_{WGKtCKqJcd;tksm`mo;Fgq z#*p(niEsKT!9-fdP!Py55kNUHu9$gR@*D>;{$WK27{_>IS^cB3G>b{>$&hT)G( z`PWZKZX2HzJqP4i`X`Y4_g^Su=LI0g+HxQ{-1b`;BOe2)7lV`AUVqQ@P=PTpJ@S8V z4E%2!s~nTOPdyL0FhafVC|vu=(ED~>3%(%*;Xmov{ELjqD3Ez~fLtq*|0Clh4CMIA zE|c*V2fFJTkmDzgeu$Yr%i0rH3<EiS9K|%+MKB*&Hs%@GXC{#A&2k`*%>$m5bF@=| z)V~3;??;!&`nD8E{ht{b<6FNfKI{l&zlQ@k7k><7yZ4sLx!cD;*2^<XL)`D#PcAT? zGe=`QukRV6A4=W&o^@JJ9mf)5w-#|Q!eeImm|dJz*7}zGK;oZVDHwpxCdv0@EQQ}w zgw7UO=*&YxF^ByU7>_KgUoLG=1#-MS4CFrZ-jwp~SIGF=4aoK<069);-j%U19O#y# zPma&CfULh2$a3?2_m<Z8-Cf5Z-&GiQBR&6xxq&)kMq730%Lv!z(a^J6V9qPTA4;sU ztAtk!I{5{FImD0KLs3UL2FQ3e1G)dLTK*)Eb9E7r?ague-~wZM@mO7>NA?Z{V!fh0 z)0LTuto-kMp>w7GYvs%#*P<L^WrS;JWE`HYvc`SxbIDKa3&A*aHVFcmm(*u6_QHyp zHKHdJ!$6MF+^3Si5c**rQ^2H-hnBy}K92!8AJ+l7&!wxSygnyu;{HJHdoqw?uJ^|> zRz3o94ek1gwBHi8IIj)^a;#1OlKpF{zXfDJW-Jx@UTOZZKm4)8Tr-x-;fs-;*r*xb z{=139*OKGFH-aJP%ys5pf(anw83r<b8PpRaY`<2vZvb+iXMyac;-9k5pMWeM^OfW* z38el$kh$7#o#eCu$Ud8ZtbYT@aW+^v?5eiy|1X&ff6RO6=`+`m49bkKk7dwnwZN=V z8E{YFLz@q%-;b;A_ulWi<6tMy@%!V+fi}mWy%EN)33`JTe9OU&0Ir*WEOUw&krJ0v z1CVhzPU}w8@<RW0uz>umcTSpkWIbHSZ54Do9?>o(c)n6>_ro@2D<I?J7mubNbuJ#A ziJ7+zIdhKBLjOjnFM)2yFWOaj27!!Uu2}dcpp$o6G1RTZ9g{ie3H7Nj+A_X_fZTUC zAY*d@kiE75nYSB&ZVasdT?-!He%v*n%n196K)2(Z1(y^)?DJV5Wr^y3ac-rZ0^^Rc zq7P}yZU(v?t4xX5N&o}+(Ed0eeLqR{LSw6HLgBGB0(C~{^C;-;d@h6SQn7g-kTOqo z^S`ovoc#aF&UEd0=33wUw()tsWp@$u7Psg8{f%s;*h&Hu-Nk+hw&`;(AY<Sc^U4!C zj`=XOG2;3S-Htf|?KVmGDsh7N(B4!a?N3+TUeB6oTmM(X%-^JCYc6y<#&OsR;X@k- zsNK=37nKz|Wkt14Q53OpxBIx;{d<(0Z~u3?b0X~bZhNk1c+{fK2z?Ggk7)sYqU}Ug ziIc`U#O>kOrW^{SF1EK39{kVIhl`@-oYj6tvxPjYb5z44W${=5J>go)=RR6p;zTzW zyIWzKG8CBSv4zB-z&q2bPlEjp?s1#37)DzoTr(oj7i)oui?gMUg_;s4IY4-<0kVE5 z$|(B*$<Hq@t>jZ6FKLf`=4CN-J1?QFN}Mn_u>Z%E%O6xXb8s`y9IT1Lo@d?_+GY&g z@sIXK7=sDW=W2n8K`1EpGeDLlfHCkQr^P_Z^8;mFeg(*KzxkOYH_w`A#>HX}2cCmu zptqZo+rZA&(svk0nWFlgs%KUAvt4ttzwJ>dH$vN^q1(1Y+hUHwKK+W32V{=wud3b; zZCt<mbeqwqxZ)F873E!>t+egQiSaw_vF+v`db8Vmem;Z-VLoWzcLFI-8(Ti>K<z}> zvc_9Sx)}=*>}!N$p%J=09;1WB&n%E*Aqk9uBYpoRkg^%dczheEZT;p&W+Qm6wRi?j zY0uNyUO2^p<QWDAwv)0$fRx98<oUFg`|)f>-yOxzt~c>aVqYVS=K>#|$y(tQ+(CF| zp{JDlhd|0Wl#%C2+SZR}aMHievjO`WA<rmuJMZBgg=ZSbc*cPdaAw}G22wr;lIJ&C z?#FZSM)1s8Jj*7x=b7C}I7RD(XAqcE?mM84ax;)Tf39u)c*fATo!5?ZllNBaYlQJk z`S6VIEIgfEgl8Ih0$dr--vcSbQAVEoX<NT_Z4G()tf@7p<~eX(8wA~6*TO@vuE9QS zo&%)Zqxx&AZ-zFk_p=>CpMJJmE!#;S+o2HF4ek4WAmu65-%`CAZCu+vYiifiVB52% z7TPvBsY81s%*iO|_F5a;RqW+}9OEfqR5{E6QZ_>wb23odA};Oz>!^j?d~%ZVaNv5s z0J{B7?bJ}5bK*n4j{{O-s+)5z`!|y{jj(5(b9JPfxQxQSMi`d~(34ug7?4M5nDB}2 zu5${QQ%>RCgyTVI!?+x&Z3}T-yb)Y;7T2=V+jEWVAzYn$ombEk;7dQUK+5~Wh3iK^ zmKWkW1^ssvN4ws{bvE`j!nn@&;hNi1>?ijUu2EnJyvZpJq+E$MjO+E<wh-6gkN<tH z4cONRxkjNUwZM#l#0cRP-bc7Pzzq13YjAJjx*gh(>kw^Qi0hJ#;JU`*T6so$uA%*e zR~AVANni|o$u$k6Jio7SeFez!LR_2Czn$ZbbTbB$*w+Z-y1<8PW`D6CA1PeJz(82a zqCm>2Xv4Ukt!)c&9n|#ia~+L+jgadk=t(UwV<0w4cm)p>u36|Q@MZj*1B7b{%E+~s zwk^apvk_d^T3iEXw&xl+Sa_v@<R1q{z?)o?K+3%b3D*aKEHA`$8v5@j=XSjr19Pyi z5yo|)57*QoVn2GQa18=;%0Jv7Tn|DU#`Q>TTZn7zS^qxQ2=+BXu8q)>T42UNWVCQ~ z4i~Oz=n3#;{IWpG`-chFkAUlo>(Y(jy3XQSb#{BMxg*4W@<`zt1%|+zoZ>*rm1x7b zUaxHn#Wjxp?HqTcn=vpK`x;?f(>`1iM+vX+(ZbaMX26$RgAw7n9omrV5N%tCYhCQ$ z=Q;-a8X?yv=t(UwV<0p}cx8bsO9EryORi}k<@sZT>nlK(7vj2XBe*)}wB=e2J?UD{ zUq5HYiT(Jo!Zi#GjFqw|ka8;8Fs^57+d^EYqyLU_Zr7VJFwf$;$cJm}IN=rik#NmI zPk}Gv=ZqJwB`71;UfR}tCsybkOZDf1^9H^{o}6hTihYfA!$u5xTno%th)xiGNnixL z$@TH$g@0GAI|xWQO!ba9uigmGRp+(kJP3N+wVodn*%LL+CzUu^<+KON=+ktqdmc#n zgX$e|PQuQ=8|TFq=Vd;eV<!ve6fg?jjPnao;asJ4<A9XoRX3db7WnRc%#?qh^EB*h zgkxhSbo*Xzc#`mp19Qr0{3*hDDUd!4L>*<2wzco8XUNgIufEn}o7Yj!`R(tkCmIna zd}!l5AZ42BwvA!f-?lLUWkzUYl8=qp=_O8D`+QeztTr~R|5u+)8$SPIvB<Ks1bRpf zn>iNzF^;jYMPHr+QeITu@4CF|0@(6ge|opg+#Z28M(E#Y=<V(gG>I(-7&t@hpARIj zi&eK{8K-S4Uvn*6Dd@Fo-1wM;jTk=k@d~v&Q+3<MN*^1Q7q<1M3c770ekP8o+UKWg zW1X>K<!dzd_siE5%g!|DcD@2<;kyFZqAy<pDa9zGj{h&%y?b%V#4gdI2><hFegQkn zEjufH>?F`<Nc$ZNq?~N*^eN$e=pyg;b9K$|slYuGGcLxUjS+X;LvPUnlPf1Cw$f+g z_@wr>!#3-O09`*TyN#_ZF1^uvAAA+<7Z{ftQ%>&ut~qc~o;&ph==PWno-5q5=Lp{v zkbEO3C&m?XK(1>kU<CfM?sXuKiz|Wj^-~~YG#q`f*9IWZnU2yv{pMy0oC^7Ba<I(f z2m4>;<40tQ_z?ic&J%vm1Ig<Z)eC(uTz4_YL5b7L^B+sJ&3(t9&IoN!fNsyD-~}a4 z{Cu(53Z&enI>z_;7~d<*_?|~wo^`L#Hto~iQjdMcay4}OUUckYu^Cc~029r^XZMRF z26q9Ot8G!o+}XTFP2DhFO=xd~)~7?ad4;A4F9%4QQD9Q-cbO`6hXBdzXdv7C3COsw zRo!pQtRvSAoHvXo<2Ptpo;SzyDCqW_h+ZmO93Z)*FA+TiJ+8j|0?7QNfRuh{LqE3A zwuQ#pT-dY6nys60pYd=d_bhaK?8SZ}+>*eA@_xkd22!5Wa(k@}UeY$_X3RIB+z5S) zK)2WQNF2uwwfzl{QiL+*5INf&Yu(Y_wXT)63gpcAoA%hHzZvMZzv;`wRsxt&d!GWC zrz)-M4|I80bFb#ow*GqOp5ZVGZH#byjDc>C>*N*Ee+KAWF58QM<nWT}G1ftD)VBS5 zm+juWxN>4ys5Dj*?UpUh$?+~tPW^oTf6=GRa9ri#$T+QqZs#XDLwF^CIpt72T{sQ~ zQg#GtzRpL!Ui0Rw;U}7}qswBY(UORpJKZ)sVrXN8JmSzBwSci;-`Ok0M&K%(8!D&4 zC}aIKK+1A$W3Nd|$f3YmX*jI$aA3Z=#@pvB(IR$Yz%Y1_S1XWmhwASE$>}t-VLirh zyO>Ns-`+TQw+)}^Xk&yinFZaBN$zT~5xfR5QF|AojP`E@QvRlGib}gUrA56R_y0Xt z;J-ZrU1tP}%Wxhe<0nf_y}LLSN0&s%fqj%+mgm5j1faLDQwZznUu3_*PI}+L?)E=` zlwK%f-F86A;i}s<$Dlvk<}}OZbRV06@L;@CLTo&sHeONvebsxQ4LM*e9EjuQ<>t7# zgf=~6!T7qyW0z~yI_P1NhZtXz=rgSS9t)(LY3%r%7uH`6TRboHjCb}GMY$2iwGp}< z*XaI;tM>h=+S&|d^l1o?GEVjWy}QlmU0hz&*P)m4Y{Y!p?o;e^AIVvV-@Iy0ms_@1 zLQlB8<^2qf9PA{t@2Az)+p2$|`araC<Lh%iI^qi0?qH3cgf>PP?<vq5EFQ`0WDG}v z*=uF2Z-;Hha0rn0i-rW8A&q6ucFpC^mMs-d-=fWVRUWB`l}F3cC7G_-F1eyWnG?X+ z_x_u$l=W*{)~DR*Q&i`44|(@ST-^Qpw{2Tl;#A__ueyc0#)_j|vL*-pJUOVJ?w^Aw z%8k(XM(9Z`Fk>xxC(aS>5FeihQdX%h&y7_%MN!OS{#Q|Bsrz5Hy`8rIWt*mboWb{R z#Q)e%%>UNGjD=Mej~sM+jS1ZY9&?1p$3V)Ls+)Iw`u!j9q#3Zi5%2gUN5*C*`Z2<} zG6#A}3rwt>xxz1bpI`<U1#gazg+R)yK(;^hUOB(&r)}5gL+zED#)k;{G2+g5=(Z1; z`-N{zF$oN*UoAk&?Lhia^-J;LZ6JNb8rSAOHy4t(XN~i2Gp;<pT<PJ&<I5W8Q6R;{ zHTNrxC(zODk=%wH2V}b$S}x<T+#QGZ_vjO@@*jtV#wPhq$38|FvsuvXH8SyQ;THu4 z=E?SCAY~em{GL{QvDUATXV;bu=UIn+jF9ID=r+&rgTgHUOe^Qj9}u3q0Lk+l)h`CR zIqgw08PB3VV`en(Y0M-)>lrjNm*;zUaNaD09tBcNK7%P-(<+zMK+4Ce<5`_{_SUV( z-k_`Ve$!qZ^e8)o7<<k`xW<P~`tuTy@|x;J75FVnQN2?f>JsBRCTr|RZPr-x9A?h* z9Og{e@!o6s)_;r7Lg>xBSphM8qVusXJR*Fy#x`X~pd0Tk%V%s^+^?ut7w?(1981ft zflZ&a%-9a0-Uwq+4?Px;5@XwW4A)g^EAgn<z7^=&*8iL9>+^qe^Nj6@JwlbS?$K|5 z!$m%wC?iL5TI%7*ak?6MLMVP4pTGj)m3&-yWq@JuCdXHR^yO0^=jVB-quj1-%{}og z3)~ZL{V8I|?@KN(@O!jPP)=XDmZf3K2w7&KXSKlOBlM*3&nc!9W56ilK%e{lMy}2G z2h!&Uf!zPuCuHA#Xv=oy7}DD(e@!#}$By54@+&j>n}vRiFn{x)$F;!tl>M#niUG+h z2@EZi?MHxY_Xi+-IZ)f4sck#T-}q}af8XKn^-ccbuw{fEC81}v!1x;bo%kA3%%w$7 z0RvBo&-Va1_WuB+&-G7B3`S|&n}Kfr^qKcQ)_YxQu7l5;;eOuHdPbPV^=k*Z$=4|C zYlQil0Np+=WS<evfoFwB7?^@T<W!3~`dSYp_ms9>23#NK%tmltYjF---=1@3k#KgN z6CNR8T=|!xj-0m!lJo7__F16I*}4`RkN)j*6Yd{Jxe?~C1$tNuO#YqcaV%2~4+ANW zt8U)YGt|oGYTD}{e|EjeXH_E4iHDUs=q)4zF`Uvb2#*|){stH0nM3g8_Cg@rtpGAM zLA0U1gSKtaeN(EN>xrG6{59Py*z{i0dAG@v{Vw$I<hWY`J!<hx{a!f5fl+WIzej<T zWk5FH40V)&+P44J-DhlF+#iQtTwTQ~qUGt*jNE;aV`Sn6aNEG|!#7oX`c7XLfP)df zuOkaR5tI`8L_b3>iC-}w%Th}OV?fsDfLZl<<crdFGLXlWhgAP9kZrsCLH6AqNPQ^w z<#;^_$XuMIeHQg9%da7NO^Wla195(Lx%d2T_Kk?4b$+*@I%7eui_n)5#%3k-uojqD z#NQPE!a$Y<6tl}wjt_m>6G&eU0@AmeSO@u;))$rIx5}5Bt6*G@`uuic%uOBpWybF` zv^7FMW<rl?f#Ds?3b!OM^0sX6jBU!XK(=etHvNM=W&|56-1k4YcLsdMZjSuicRX}) z`uQB+$c=qg&&qRSOoPx{ffU0n`Yz`DJHqME6~bv8kg@!$>R+qgzi;{EzQsKst_YRK z%A%!d?|hnuzKb?5bNUYL73vx55v@$inV;b@$HRqrnFoEm%OuYwvl7P>@S*MVu}zr) zq;8J){R*6~IX{E_0`u8$s6`tij7JE1QVUExGVkMf{GQl+2T1w5>X)I8@-v{zX+80n zNj~d|$9xYL#$zFLJ08JR;PQdkdJ#zZi|QT4qxNQvhtK$M<K$Cr#&iVx8eyEG(34tV z;uQR=@QDH=;K_LG@}ZRN1*HBYknP`A-Ec1S9Ln;I;N10=ww$Y=+t&-R)xs|YOoBH# zUhp?5yBtWp7<J?v1X6c7H}-TkFYZ+|(C2(P4Le0!;$9x^S+%>q*+k{c3)hxa9v^v3 zFKgY!Sq7w-yu?2hf6_pfIcvm^F!WGPwyy_LDnFJs+XJ~~?)Hh4{{qM{`A47|1NWX? zPxoHQK<l1e3LO0Ii)>7p@pl>eHbQ^b`uH3CLO4f&^fwM9=iKMG7F6Hw1X6bXOxhd< zq`&V2DdW(V{<Z+W^%wcx+9%)1Tj8(Iwe`l78Gjd}ZzE;cSVi4UVm`m&uY_{|NUkx( zBrv7EpS@Q6{5g<*z6hjzruxu-ioc~_YF|LF-+tq~^|tTM?=<>0LPlBWIV~{bI`EBf z&3-Lh!_Zy-ff<d#)OF(blR(Ph{}TUy17v=u>b~as*Y7@X)9oAQCv!<#v(S$buA%dw zr?kNM<a8-@eF!OLib|cN`t_Ci+tVp^hrks;=JE)%adV~bJS+JBx3l3#f#czKUCtQL z=T>kq!uP|Zq1$=QbrXMLK*lAd7%LGy1dM8YUIbG9r1}ZPrS5rdGmtU=JCHF-ca=T| zYhQ<}4Rie2p};xB>N~!_m~E<@F!o$Ks_x9kp6?qQ13hf5C7GTQ&p<DUbqqS=mw`@9 zC<al^T_f5q+oRM;Auk+<OG>4WzX921+p<!Jv+pb*Yi=qR{pbp5zgzcGhhyU~AdhLk z2Qqh`R?7Zk&^K+*0J7a<s=ozv$GzTr^qaf2Ki@QSH-dhQkV7MMd+x^i2%n^47#Ijh z*%?5}r9j5yQy_hMs<--}-+vBt^4H2~a`$}y>D^{dx&JB;FIrd&-JVaGzGB0vDs?i- zZ5xzP_5_m8@v2YKwllQ+I@SAcTZ#Y8?C;bxZ{hSS?ol+{x-YRL39i8kCy4*d9DqNU z>~*8(e$#hcZq}AH;9!LBkgB<>{r!#X=Hhn<$7}kXfKChpIhJB54<Sz6z70ru2*`1{ zGoC}COb2qGdx30s&1O=66Oj6sK#t$-(I;~>T>I`nplrr~;=V;ayS9Dzat1u@do~-Y zGX~_i7JV7vd%>#j#`mE?DIsU_%hiY<X~hJP<-sjWoizOC_F(s^Nt`MI>B|XQ$Uc*S ztiN6LCsZFbK<dv1vVK4GN#C1*v^!O8nEP5sSmS3Ycy6fAc6$?pb?D0ok1;jBKnzF* zVqy^7TKMLI8VewKM^GL?9Ju`;kaFi%qSp=-{r5n|q*V7g1<3C20<!;<mfPQHCcwjc zuh6?~=JNuyF~WQ<h91=d!#%o<@QDNC;7hKH)t|S4Y`2xRu{l)D>6pU^v@t>sqoGH& zz;K9fD|VB>q}o~qq<jNpyZyC|-}6JW$%D^Vtmm1kMHY{x&>LL~`8=iv36C5wt@Z-g zrW_0;kBhX8`7Ul>&v$Wy?g0<a^DW+OlatYCV}xt}1n8^SF~r0pww=ZU7#u9y(}0wx zfoxZTI!Z5XTWCGVlG6s><F(tHxlnd*o;&A4Ep&T5i0ml5f{M8vgnt}*M!D|3y|me` zR>uA$AjjPUK*~$1&&9r+3x5RC=at%*nfDQE-Y)?koBM|9#@96-U)}Sa``Z7{adv0n zn^KGe=|^A}oWH<dZui<r+Drm+p6^j7`Zyr#hhZQ3cruVa#<UN=aXuX!IvVHm(8dVo z+d}B}I1djI+c97mT*)H=q`UwmkAG^pxt7_|=UR2jT=3zwYA3#T-PG-vC!Pn+1_vWN zPA`F;)dKoK--5%$w}fJ9H;H*pF^Y2LAPzmLu{k6p=ZB3z#_<Ip`}>>fb-PMFM*~@2 zGF0@HK*|{Hdm4}&OdR|B#4-L$jpIn4@3cEn##nG{%|$;(xVEIBr?tSuBC?0@i7N(y z8Te0*`|d8>j|H;*5+LJp%W$bLD(m8ueS&v#={fQMA75JT-#A}3_C5#4L<$^?a7<*O zXSBe?!P!TAjVUHZh_4yNFv{tB6neZ~{NH*{854T|IVOGvWPgiPFWO7SKoH3CcT|6I zZ?RRceV+t$$Ata;->(om&vQ!5EBlF~+z9jB0zIq+#-H%MSaZOc{eGrCeW|+NT9Toy z4vv{?J$C7D**u@MWIwSP14hAt_8$aNo(Ga&iMBE0#_!r{I{Mz&+%q=w(2o($fkn{m zYb$4@@C+$t_Q$+ej$Z*OJ;TEN3LwY95okl-*5^aRuQ!bkG4x}EKD0o$eMpZIJ~_n% zFslAM38cIXWc&{}Kz!(_ZSgy|^DBzGy=I<`T}s|P<ymKg9DDS8orep@K;;AN$3XT# z;o=;G^A+753#3d0lEdv<ZrhHaKV#FNvE7V1BedP(XB#$|7w2Hu*6p!C%0!@RTgz?R zOV(q1jb*#*gFb%4rfa(awsm_f(6tS8ZELx0y8-<fe+?SHW2iGizvF(kVbisJ2yE;2 zSRiF0(6z1Qw(UjhvAx=|z0SvW4mN2!a42l+_6b1B6d-N?TFd+Qub9!lxHpDc+i&&U z-z26GgDvo#-qCHp)BFEX##r-Mu^b$X@I0^bq4wu_$s@$ytYYv;(W8n<#Vjy{m@qbX z9WL>B707rLVPDRtU4UGtjt9D98pt_*3y}Nuuc??()3}3sUu2ARep~r4;x(Ym8GsAW zUgvu5iTp1rV_X@>Vc=?n&mK&H-ogMt7!UfIJXYhX7#y#0RZJ>o6@$lVJun!N?c>Ku zoLhkG_hBH-ybWZWd!cW}c?6JgJ_X3UUkl`(vw?2h^_izSE9TB4h<OLsPiEfMqOB3y ztcO0Hq#)n=e7xAp0F&y^3D~Aw17y2fwT+C0t=+LO%HowHukR`EX6{ta&-=@qH$cZJ zqASMV=*i-5QZcI-oG9f{#U#*~AZ2GnB_6Fn_VWyo-F^gQPHWHy<9i5@IUTQk_TQ$* zjBOgva-VH@yTCp8d5<D)?tee{Kilx1UdP<=+I=bFV1)PfY97OPy_^^jle^5Bl8?Az zNHN<a<q5^GV)`tZTQMLr7zAcDzxSLbb)NuPw`XIi`!4^HK+eC>XGqSc0crnUAanjY zkU9Sn$eeEvTg>@zwOJG>cLLAYzi`2GH~q_b-1(&KQAeK5S`J^`V~q7IiC>wS+g%^e z$BR6wpf>|4CSHN_#fQuk+^auN{CXEi*&JnTHyG%yH~Rfrp=T9h=zo3BQLwL84=2Vb z2|WR%7*62}aSsx_Xmj!f!sR8Pm&4Wt=1S#)!W`Dejd>e}eT^_)qo|V<#BhsUEPO)1 zICzrNqs>w_<|2vLDL^mRLh)K)xQ;CFJhe}`$!*r+nuBh~F>;CU3IJ2!OHN-*m9qM2 z!u4RFmusPCzbF0X-;e7|>}!N^oee#!1tzYcxbVvTq|`}(FF8Gasg(6a8QX0G^m5&! zz!(TWvEf_`jg3O(%maOCge@bS<1Nrr)|g387eC@a@(%+!-m+JeIx+aovimMm|1TF` zZ$KUA#~nb{o9}7&EZ}p^lbg<G`bOKM(5DglHUWCt@-5XOykkJ}3{jsU+k0Fob=O`c zKCJ=LZ%5nuUE|NCAD-VGk_$~{JY2|a8Fc#|Vfq@}1HW2qPscXpTA&+0pWjzjErc!4 z_lw5X2$UOf;{e^BTcMeyPEPy&{HJ2;8=z~;=Qr<h+Vb&hu4O9)y;hCWZ}u0x7T3wJ z$L(#gP1z4fy}!@<Uu%8~TLs=_(wTC`f%zVVevI&3sR_D${K(xPd{RL2jVnfg<QKXT z>*RH^{Wg&K&jA_NeXf^%9|v+S4NgeA66{O;5bdMT`xBPAe)_+w!+9#towmxL+i}g^ zgz*A?<arOaDGvat<NEVJ+;2G7+;13x{oQNcq50odPqJ(@L9cgv$saG$Kf|#MANDyF zNV!CHd^gqReK&Jx!{=Vw63fm~=poBa_!jhiv)I`hNZC<!JkL88&ne&SeNMURY1p!! zQ~q}Rqt1vs{-H;-z>LYzt%zN#*!v7fDMuOoEb3Y2^t=&gF%kED0crXDF3x!__c`a$ z-&|LFzLQ!&ZUx3KIl617ha<;o4*CL@MLzbSPlS&H%;jWz(8t1cXCS%W3#3oKQQdq; z=KbG*hIGe#VrXN8r=)S{bG5+4Ec=<*41A9HyhgS^15)-y9ovPq&GSIYTdMo<%65WR z+3(u&s)la!%6uVQoV6IM;KsPT2c+zRI`Rr>o5z5ZmsKy?IpFM!XR`-4cgJtHEAiXy z0X#yr{q1&N{-)b~3!hK9Pka84#%o2<qLN|<Z_9CiTWG#Nvwz>S8vb<lTDR(%d@Q)W z41(U`dXpbBvGOw4|0FP4Cfhq;n{o`0v6!fB%rW_}0>|W5^zWWO_?*WTDmUXhZE?*& zkGKcVJl9Nj;TNbZb27^5YLrnP1Cr}=+Qx9bq{#obAJZ0XIM+fx{I`7l|Ix=B^ZBzm zh`Ev8*r<69=f(W;2g2NO9!9GrpGhF~Anu=V7({_wo0C9}<t*yC4kmFYi|bDm_b542 zlR);6HHdoN+X_NwyDawSwR8~W{J+R3FoN+!TW|Cb+n)i+=WVR(wA}~4g`w?{K-xYR zNZVfnxyJy!Yk@Y#1L@9>dW)?KfwXlWkhWe2_5`l(BU}%wDs%rc?^q!1`~9AI31U>} zxU~j#M#yg+^r#k?cm}sDbAmO}|7Ac*UzEA_`j*b<TihLQpD;&Cx%Q4c51SplL*C5W zX0$az4lU4AT3|S&wi3HBU_@>I2FUtTQMNuVt2@EP=1OklQuRWf8}n5My&bopaEk)T zCj`tYr|AQw>=_`(!H25vj5aQ3pZEPY!-n5^Z_>ks+~z{J&z&M$!?yNajcv*>pleIt zeY2Uq`(`=q@ZC3_^Rupt^ZwFCCG@#&FZuZu*rp865J{iQ)y9X$hII}Y#{Tv>V54Ot z2Ho}}0UKd_$omW+Ws2(NxVEsU?K5$UXp8r7J@28jbu;ExdpIz!>!2^=1cR6{ml-5> zlfabP-hW#uy9LO0r)!(DfSS*C?>%bxy?;JqC^y1bH$!jK0>dFS820dC-woV`#8fx$ z6+YOSd&_CBgSltdoAKWD#XKiktAQS}j-m1Gg-1j&0L&_<q1(wg-y2BIlT^P{^<M(% z+ae(4EiL!Eu8qUC-#nP>;mEk9pf|d`<#QLVMb5yB9M&q&El@_?zD`+9JN#Z0^T41P zCslvQ$Ah*8LAS?h8vRm|z?j;&4oE*+RX1a{%DTVbg8n)>7qjb4u2LRuJT5JU-bx}6 zGk%gg3b&YI7?@Q~JM5smfo%Vr>OIkhDIX4W<E3l-@zyvSwxr{6X5u&jZH<s?6ZDKV zuADmIlimsEW@>u~w#jX8Ai12N`n5pHjaqKvYp)55$<bO9$ccUCJe-)@wb1P~z}dOX z34s@F->dwVs_yq&*7}!VufR286m>>uuMv7!3rxN;w1*Gv-2|jOth(QQi#fFCx$ZN* zEwOAZh2Cu0O74RG@u96FxDB~fb#v`B!E=pS^Kx5Twq2%k6xtY}k7J-Ov+|q{iLE#= zqxS9_B6<E8NIrh&F>`3&imk1i@wUXngXdezp+}XNiFIyQu@xLz=H$SIcF#r`>wgEN ze5h@(KDGN_p1N1S$8&$myKQ)kK^r6FF$uc8ex!zrtt@eO;c+{VJRSj3=Ah1vOJ%po zc-P>=-ggbowRo5@knz}NE|x(b@Aj5oAF_Mk9bx#e@9Tk-H&l1unRhq7W3m48v?>F? zb-gsUMxe|HZH<Cns|6<B>AlLF^qyj?8@4HX0M)Ot_WOP3&`yE)7Ahwn#(9Z{50CGw zp*PSV#PEra5DsA=%L0noy-|)2dF=w^@ZAqczh<%ya-G)O$CA*i?PD_@Wk%RX6uLbI z0{i0Fv5(mN1Ca8P>bU3C=3RcRwBd8lD{a|X3_a}jl=nHXAI_g)i@rSwq&%d$?Mvlr zd0$Mv4KmL3Wf<BRVVp-pw|$H5FLpve+D!nHVcC8J$k;CeQdR&N@0D6_kG+J4lNoyp zJRHa=4ZW6~K}@clkyvZg{<}cRYSjzfEA9F^{O{ZLeA3vgL!A*f4$y6z8Q2WrL!TRf zl%rI){c5BwYfdFB8?8PzA_t&fd}yODw;?sE+cuW?*jQuPSm$FSHVWta+UKKc;{#)( zU&Yvd#euu+J0yJWXY^9|gm0ny`P|Dfah!rSMmT<^LAURl#t*@G0SEf{=z-$nvq0)c zHi&)++E6#=#P&M@Gvs2O6B`a|Jsg-z=Z`+`7&;8ch(pCj6SgUFAZ->E7dypW^q!l~ z`rL&63awX#%E^uE*evX8gz=dV-Co1fM+%<=kmEh77y?F)5ROxTlt+M^UyFeB^(C#B zXDa%*&s1z*;NIMnKf#anyf5Ors55bx4ckWO$wKJWbQWUfc<vbSH91D&kOR`!FffN$ zFjxB@C3VLiEp^R6#^E=rKLcdDH_#U)t9@dPIIvf7#ku(_PPxx9_s@ulwMKm3I%CFX zKQiEEgnIR|_G@!wy!aVZ%pEIni7TcRBS4P7pz67Ca{nm}43CwVoe5-bmjZbo?K&XG z@SQ-O^FIJ&AFlx!^S;=ZxvK^;<~ZkT_dnFF;B24c**g7Yp3`V+gmyB}V_IOwNc1?d zl?2A&GwnVNWc?c&gUwJ!eM@a?o(101=Q;T7|A1e$&-<r;fMtv$??IORB_BuLdmIlv z&455m9OEa-xJdz7mN-eqO&ZADhEYz$7Xoh19c`Bda%=?Ajy*(y8IAL1KaxK80<zCz zfNa|YWX<J3j^hc(i>>E@w6Pq>e18VyIJ<j-jJpSb?zqxtQ~UTln_Be-^0&pm|7<E_ zMh+v;j}dYi1HDBHOw0lk#lOtS!Yc|rg!qu-z9?h6BY_;tzW`GHpl$8n<jo~-&pDuX z+sucIhZE;v7J8JOLJX()Dar+y1RrvFTY0VqvfTh}W9GqyKJy^9eACYZ`a#~U=-UYM zy8wF19b9=o0;g$gPZdlkMu17>Uo}a_%dSAi_-P>h`}1VkXE@r@f8(d$?-xeBxp97) z@zR8TjBvb6hi>0jPM$7&!iq6q1b&j^Z1wjMAbkinicc$m9r;l9)~4|xgno?BhX&}j z53wfU6Hp8TGwM&>k0tK=1L?yPK;~t}8R~;RJLi7e>GS@oHS~k;rkGgZS+Gq|ZpL8E z+j(C(21h{804e0om?vZ6PgF6em^~X~Q2qbYnKA}H2h!KG&Jy3pp$+AJU`P2|4BH!X z%rRpy=kba8E6cXeU+6sHlQ~z=fu4n5<XCr(a6SOY7^Hyo>0E7V=8@m~T_?eopAY25 zzGkA{2&eii=m{+_@s3Tw_sz<0e{53@0=n_@dCy$cJFwZo{i6-7Ctt>H1o}3@@i7T{ zSPKl_$c4f&tC&)ZD+Yl{<v;X%Ifgw3r2qR|AhG=&ko~<1^p2BVeb(gV^tY4eA@qZ} z>$)QE2iM*z=y4i^7(b#HiR~mX&@9{AV4HFzknK*?Hf9X?t)&U{-C2Hq?aVk{;Ni?% zWT4yYP<)#33@S!|S>;%Nv2Z^ONbZY(jK%d+HOAI^#s|F%-W?o!N284q#&H7ls1}$w zCNGix<G_^i`UFTRM;Y7gu5HYFF^4$$cYVww56`oB-fff5r5+xP%}VGob__8*0zVNR z*-LSMPVM!>Hl-fOb{DAr6QDcp^ckdGJokr3tOTD9eiuIpZH$o56zGi>pF~`2M1f)D z)(WIN31stss@_H0u5X;JC9h7-1HX1=oCV)&%e@}DJ<g(62zN&@1WYT(>dVB3oq+UV z4v^#Q?8`N#);ODq{yQ3H^F5q6&K5zB0x7h?T*aqrJb?-2^%{`!A&~9*X&d`IGw^=L z9O}`=2st!Bk7|M8keVSJ62PR|`Vi;}%Gj<>+xUGK*h(I}7rdT#Kcp=l8R(4`kKC2Q zBMr=`y&7y&b_0^fN!rGaMa>5t$6^%P7-1~NK#yvHiAA7AIOMLva~1e7N0Wh+X+XA{ ztL5t(*BSEJ1mk+GhcoA7U{(8Zow-JM#uSslkowUAq}&c9_o}O9T)z#ZZ|0ud;nw$u z(_zQHC)bf~=Hfi;Ys4M*(4(A85EJLfwZbc?m>~XCI2{XQ^UY@p=Y4=)uJ(U91V8MU zt66g!(AEg!IUaga3k<i+^<vLS;5Y<cw0+=p!uM}Lw!0i{D6_P!iKESJ;RbM9X>nWQ z!!2~9@QDIL;74vh15)<8LAd=1NLdABeIah+|JwPu#nILX<CcJ))B+Q?#4NFw1}2o} zXF$r&ZxU|9QAcUewuQK@*#K@ee{0LF4tmnHk{@rmn}u8O7Tj-C+hczwT)qL)hnvxc zGFRIc;+8=FotX<9!wW2Ki+#97ZWV5EU<CY_vqyoHlUjw_=RiuCwk^c1ZguCmjX_%@ z%;_ZPNi8rrP2DbhvcQzu?suDTc^b%e<4{Lw)V77VE#3fbIg6X~_x9YJJB3>a7?>^F z=L0DN?htMd11XDu>zfOc(0^xhIumV;FmAJbxJ8p<F9D1y&*y-Yvwtq!N>E3s*0zP> z=KQ1c+-lL*2)WfmPile5Y5H#AmIJ2M_TamO%PT;(I~8@5W^G%D+w2YCw#eeP)Q4N} z9^n=N27e*jGk}yKbA;RTK*}=U`f^(TQRm|pMO!0`TMT+q3ryVN_ldm}Fs?k`15&QP zSGaA5I!e8^Eflw<8^CRy#jP^eo?G^p!Yyz=j#+B^z`4TZBOraa5^X50+O`n482az* zTxdmGBaGWzA8z4!!Yu|2gCBEt50G-?uY}wCK+0O+`f^(Nap$=WLt7){HVS%D3rtRv z4~V@CFsVGd{aUy@2xPm1P)8ZBZ41S1?gntnSlqHc+?<DmTL|bpDBF{PlwK*}b}x{! z0Jy%mjryeXace?bBaGWL=t(Uwaf?18_7cFT@_ddwA!k1<+)7YKsn)iI;+EY2Ze^dg z<yH+n=~~Gj>(h@4w;V97wg=A_F0TOT!>OpFG;7;J+@_)b&d!B77Pt96+=2^)TLc(< zOtxnLDMKC?ZqEZL%Yf_4Y4w`Ua|@%b5#}@kJ*fpIr|~DmUJ4jjp6>xE*Z)SiZHGEa zy|yhBxA_~uZMns5wGX%KLg5zpE!H=+ec+SA<s%?{xDstBt=hH_x5#Imk6Sa^8e!a8 zpeMD!#4Y@^aEk%M;K!WZ1Ed`JlyG|=NLdS9UrtwV0Jo~o+j1KOJ?UD>&xPdg#9juN zRG!_^!sS6AeK-hpl=0fOP~2M3e`n`H%Ho#x;pQw7ZXuxajBHN^QhGfr-0lTZ768{5 zw?SWYp4(`&HNu=ufS%L>lhf$)VlM%VD$nQ06LR)*!mR{#lxl5TC~oNu;I_)*w$_JR zda-cJ0n=)G@C(A_6(D^$6?K$mZEHV2HexN}Wj)h031vo#vC#zGeqJp5dprw=4|8!l zkaCCWwvD8*;rajG#g>hXkB!ueSR3)7jb<Pvsk-|cx@Yux9_!h=s(->K&%Iw>^D`DB zP;P{Nje;K50+a91%ecOINo@ASHl;6+9L#Uc3jJ5hV%ptA?_oFhP;ws5?)Uy*w!iNa zcwKmAUK5N1Bg#4Yirhnq0V&gf^kuE;vtO0^)j-P5*q5<5Ui&%^==$EPbTXc;dDwoo zW)}E#^em0J=duuOjc~p#fo?x175bytivlC?i?;7tD%|b`Qhx(Tjw@9+^KDD(-c{%; zaI>B#vvtF5JlY!JcSDWPvs&=&*jOe!9AH9u?(t_SI{-*-PXpQhO)dXS%MHh!ERIVz zfa5xgW92$Lheu-&!!hxO@QDIr;7Lvw{6)$x2T~t^I<_C7ZN~svj(OYWU3BBozr8lZ zQD%g5s0DhX78nk><+yLFeGbDmWgnnxL*G}~&*!_aRkYX1d!;6Cfq%8-6NH|0E#_kq zdRsU+z`&cr<G{Bh28RM&UOwMN#?V(s-!&Q@tsWkH{$(!ou*D<1Qh3CG$#=x=gcVY@ z*Sn&h1f-;ajOTLI-_iQ5w2$FHm$%O|@4>IZyTCKqhHnGf7~#Fy@zCuxKKQ<Hi2##o zZ_s->c7T+As8b&8o_U{b@t|$`w8&$dV`vF<dmV^;fOAjn`y1tP7|PUEyXVmBzA5bU z`eNbU|Hr;YxGqhB-k=3$Oeg-Tu>i6xsF?c@_YqeKuN|<>dwqKW>DN_2%GE%ZxAlzv z0&=#Fy;%<z_OS|jt=mg}JZJxg^Gkf#=P^La1l8^5iEEr8?QD!fnGxC;4c)epT8)13 zp^a_14XIPzwh{NSG1sz@^0ATrJI<-_p^dA6l&e+8_d4fyFUGIrqeT%ur@V?be2(dX zqPD(NLyx&V<>Qt52XdtSZi8*gPC(lA`yOiy`tXh!Gj69@wx&aGv~7Kix$=?p-7_b) zHV3-4^fy|&S;v5~F0j|ZacV>B$(dt0guacq&j~_LZ~#Nh*v`67?BQ8yAj?8U<?c96 zX?X;g{7QV-bDfO;zX2&<0qNVJ|B`1RrUEI)eJyj~ZXo3q)jtDrjs(Av@*4E*#>UF` zGRDLw-%fGfACBEJ=ytv{CFM@KoAi4vwkbCQT|4@nc$Mcn@loi*{+$%#&}7+~0=?Dk zEg!pZ8Tv1kzW)WJl%UMD<@3Ir6m5CdW;3>yS+=s!Yb{%m@^UApeGkAkWe=ch%jZ2n zHC<uL^X!4KH45cMI7UW8PiTP|6S2y2CsZMQ&jC{AcNcvu>L_OdHFs^^_cDuieR8+Z zW0$#G1U=;Tl#gesN4b;IeqU8Pe<@(6tXo?<woQ(+5ZV~wS|5gP+YI&=f3kRgT?`-k z^iv>X@p~ZUWi7YYrMShx#CWd9E`3cwx5sIuPq~wTZQ6TAIs8F&*l82fRR!z>O7i~E zPBnDfzd#jo*;nkm4y621^&<BjChiqYn|GLCU2J!ZZARbTvFqKY-;8(C;*)~j;9AV* zIOsn4j%Qt~%bh4b^#5KU<NcuOo%yXpv=n^4r{6lXz_t;tWOJe0zjcUgCB8WW#kUC1 zjS<QtTS(nq1ElUrTsN|A8IXDGkN*>-z73G^*&F*%!rG_AC*b}TWZMG21zB2#`1}XF zUz1~t&zP@+KSucejbY_OoV8kD)~(!NiBoWUiEC;*iDMYZIEHJ>-QPQ8QO~t64oo61 zth+2Ib&G(kdvhD<t9D!ItKT5$Yb0ziM;8Ejt#}WR_MZiEzc+yF&%IyJSmyqpq~G(E zS@7S`|C2QHtgIp*3$AO`(3^o26N~gN!aoiS?IfJ;s}ru{c9yymfiBnHWs`dsS3Xk~ zDvgyy<=<X;-jzVVMg4q!JJHE9@@1?RSbQ_kqa+J4d?O*v9gt<YA<*$5zYBq!509}7 zvO>$vJ(-;g%z>HR!T&pc{<u*8^qu2jJ~$ZRI9?7tN(Ujv_snqdE3>=!9)M1NBZ>)N z0&!t14%k)N{%EMQ-C>xtJr>AV?}R=$CME*e9{=Tge&0s?MzXl#HT(WeLnY!<UFK9b z;yu=$|B@$na*Ltf2>Wh^ZeOd#>+ue>J;c_NK+3DC7j4_q*|xD9{~gA6W%(Ru_Ut=j z&&ETYq0NUmJGG2<wrxG!UDNI;kk1J{z;|eGXDIyHxw)HD+tSt9rnT7Vx5DT7@=e^% zjOFRzV1)C3HuP2o9AfgBY>+rOK$gW1hQ5!)=-7Rw?gk+1u024?FFsJmIMB`82F9kj z=l36*BsdshY!*PbW0M*q{s(~cKXDAk&mrRTX@^SPT|m~|aio-AbCks9d7zAGd8g5D ztZS)Jy%2+qyq02~na(EkWrXu~CiFBXG=$v9BQs9;gpL)yQAGzB94mF_0NMU6Am{YE zT0R;3Qtkk9ZY|cn>~p`B^vUOZx-yXG$Nj6I+vk4ilW?wq54m0hq)b)awlf<0``MXd z*_q~JClW1pa@ubnY*RJ|(r!^tybo(=+xI5=y{lm*?R&0`3T>NtSlK)8Kl3#RdcA8o zpP%?C!XXG`4kEztL@7HR$b38sq&%+Wc3dW*U%$A_^w?+oXF<2)ADV>g8RhUQkn$JR z{bDepPv>G#C^j2Y&babBhDqRHgy**Nq1$oIoF={`6=OigGOQQ?GAA*t{lx64a;_9m zJq4Y8hoMIiBaV|Skn^nn<Z_3--vZ=x%K#bQL$MEYcr1`I0m%LQ;+W|B{l(Fn1ICo+ zstdr!2-yd!+Q&4~Bz^@Ib7x3Q(~1coV;MYCFbbV(Y#QxZ9)ix8=Abh!31AZO<#zCN ziS2PfTKO}Ou?_rKVtWmcvAqRIc^k;FuoB4q?K#m5{(f^JiE<;%*<9%MoJfOz1RwT$ z5s)%fb=yw1fSs~_ZS4f0x3hB=)+Fus3~W=*1p4_i2K#&c@oqDR9NW`8HW}}kJ~k6E zu@eDi&lX!>0U6spwQgUa%faW~{c`dsum&0)T{mm%dlhthe&)^*9>H^g*rvTWkUTC| z9p{B(`xd)zw2hTTOVe`JkMF*4-ai|C7Hy8-+}iKu--t5uXWSNf_;U=dgx&z8kRQ3m zrU?HKkh*ie%!L&62z+AM6d>Dgah|k&1IRJA63BXcEY)q^Hpk?{{l}o(2=|`=-5yH` z*bm{uen$Z*hpTSenN`5fLd(t~A3Na-aPLz4U7>bX7O+!R-PRw!F&jb~BaD3*y6s!$ zLh&aFjKe;CoCRcTmH;WQYPs!e+~QzjI@e>DF-`f{4P1nCq-L@AD<I|9suz0S%Np9V z-sNCy*7VQ&N}GeA*Sfvt$5nDF;tRX<@uZ8zW+RZg-#xD;^wH6LoMqXa1Kl3aiA%&* z1Q?$t_PS%6F|Go-_Vv3_zjqkq$iwHmQR92{7HxeGLQk`E2!Z_vF2}JpF1AKqCVUP9 zdTsmtCt?%&TA%G%mhIWJO~a6HZBK{auuoefuTa}S*Y?2fGX^$Rx%WwS^7&r4Yyj-z zzSmZ`Ms4^1mIcZg7p~bM>}!O_$}seLD=x7X;gba>W(cQgS4!FAK)1QJ*%3(nXrRk| z>&h8hH}385f3=!@-d(VW+};1l?&9=4*ZOa*ffdd`_+*zG?yEiAxlXQwK9>U<V&a<o zsql;fgI5cu@@s@+9grM1Lmk`i4|F-}IQzX%tjE`^Ki6^88zGez=wSvHVmM{51D9*X zRu^njx&vL?HQn)_T7~b4EvNnU<dinLZrPSYCG=+3N}fabCXBZm#OD4t3Wr@#))@{_ z^w$xG7K=l|hePaVIR8?cC(jZN$Dz!dgMEB*u$=bSGuOLrW%&<1%fLWP4&t|zI~lcg z-_2q>1$1rud<WKmKD@sRHS0>uvegW|RZM+rD{?FH-70-A2U1E<CbqiG=u=$riT7Q2 z^9$HoZrNH1-Og*`PS~0)eZK>wgi+@8%lkjjqXw#9L)~}wN4($j722lnJXSVgUn3mi zGoi1t;_Tcj96~@=MHLgk=-tBW$X`gCnmN*D9FS|%kM5E4mD7PPf1h{jtR#Q_9)4nZ zNIbxI0(#z38O-zJT&#i~15(U5h~1Cl9k{UnpWG)rwnG{9qV6S5_lHYEC9!T%{+B`j z9ed5#v9Z?Krg;bV9^BXh_uv|~1*h$LINLRLb+&HCy|=r4?!9f_!`c43tpC34Z>)dc zHUEzK@2Gxb{riFM&pEa^=1~k|-N+W$s2zkgiIW#%=2-4|nO89&%hJEsYnA6@en+5l zeg>iQIPNTx>-HFsdK$<sQ;X%=+|m8x&q{yc7s}oD%V(YujG!H#<p`m^7ci#fnctN= zeBXXf+b4m2p$AdV`5t^xFaVyRU(5C#4~UI(AC$H)1FNu4zZCAt0#60<mD_JTBpe@n zq}+Y?eXseV?*^pzKLYZ8!Ih7SPbWVn^#?yLdLxi)=ud#W$MetvDX)7%?p@rqQ0`q! z`E9wg8S3Lt37?9m%bh;Z&jR)YzL3VdWPoGfD`PetNZ-u&K<^azABa)gW6i4hZr?-m z-~K)S53vc}>+^lZ)6D%Qj2R=mjvQ1Aof8gX=6*J-b05gE@N&U~V&E+q-^n*+yysBv zUWce2dPDEo{Y5YZ<he%<<-Bj00<zzr_MdrM^ceajl?;&cG=Or>{RoirC86!Y=#TT+ z0aAkR;JjGZfm2_SvM+$NapcP~mu`7Q^nn?fYsUlG$1j0wclfK~%hN#WvDZYu4#*zw z0dg&P2v`Oj@VeCR4CK1CCy>642GZA~fLtFZ0Xe5H1iC&im9=6zkZZ!7K*}$Gob&zu zC@~lhWDITxG6rt}8H26=Bx}faK(@c=&(iOwK&~Z|mx;dH|HvBG2&CO9K(>Ea^(8>A zIbUdb|Ndn&`ZrE>a9&%q*7F=$atEw2)g|~Ywb-e=QO`FmonwnWE=F4;jKMPKbGa}= z$bt3~?~1=^U<`R<*_A7#tOR9jR|{l$QAG*gjUVb3=^87JcF7i1mOAdY`4Mw=hx_XK zt}gc<i((bg@^op&d(UtDj=DyUY=1sy&N<^~W5m7wgC5rc!#lnjd{+stdTdh;0FtNS z(7(XB<r>3b1J(}{)0&;~+<08AgPx{wh~egZEIh)%v~sHdNMbn-NRDH3!Z`}`a_(1v za{_h>tyLy&3q0Hyw>0!5i9rmv#AleB%5UNt;cy<%<xttJ-G5fBqg~!B*7vO#TZ8KI zaiFa_=#8$Wysg~lxITnE_I)|FDfa?hTY7(BfX}t*lASrm@jS@H9-+!u_h>~{*ZlvM zZSuG<pIpb*Am&E6ZcX21NW1si#oQGa>;E^B%hbOF6VN#Z0$QF!Ip;=9>yy}z%TDHN zS!<ml)ltqhJdAc66H(N2?G6H|ClnpD>V@(&`e%6vdhiR`-hHhc2R;FEz5nSy<@k^W z@))?+m$KfU4dglI-+}Zm@s%7mmI1jo?zT?m=Tsoq`9A@<&MyPfrukn9`#;ozLoimY z{|h&BqycqC7@r9A7A-LIG2W#D@8PO&ZPZ|!vM*3<md@x`+~X7bd74?qrsw}{jLn6X z%|+1d`x~j^3MZvDCSaTLW1!d1S|@Ln-_=xy)KBmK(9>^^P7XZogwfUrV;h0q?tW-D zv6}>D)poqAl&u9aK3ky9<)qKF+wZ%XO-_6c!{@%mA`b_~ehKs>kYZvVDXnk<C1T@d zAf*Ilu1%l&S5>>hUI*_r8-X@P==*5s?e1lji;XxisrI5}V*f25`E}7YMU^E^WzpeI zw~!ul%Zi<{qR~!K6vtZq5Bo!{TvZKiKPK%lx~X;Mo^yNzY#ZTRo&vprg92jWp6f0C z2m6Sx5g?nSQBI6QXAV+|IbgVllsyb&KTiSKb~TW3-nM6jy9WIVNO=OtK2Gda;jTr$ z2XZ}l7s&D!*y4VVC>QhFx&BVu|1WcP(=j%({k^eT)EVIz3qen7f$=q5g|!OLKhtI_ zkaCym9i6AlrtKP>7y6tl6)HD#aFK@_*W#r<+@hNauOKi5p5!>ZpKv?|NPQlVzI>#* ziPHcpPUDBQkJE-eBSr4aNgRC{Va}4!Gg@Hc8o^T}<d?1%%mFzbf+$a_U#ozWQJaeo z?*ZASE7~$&J#=65ZZ*H}rK)#_Uq1KA{mM-2!`R0NV;_N@)&j#nI6!%CQQ^eZmv`MK zV;tvG)sI6R+fM}2S2JFADsYatgk1m4@v_Flne({o@FDGf_ZbOFJRM+oOXUxwY_pYc z-4fq7QFa58^AoDSrn>n*A@6TvnqaG=b#)fn7~vS11HIk4x{cV31C!uL`_Zk1&qqMU zvcI<R<FU%(!F+O`z#e(q95>a_ZQIcuDx6TQ*jx>yY=$y&FzdAapI=Sr$No<$TQ_5B zmWPAuzYmA(j$${kQ-zaI+q-Jn5kUHKEYRiTb9`GxKAz*-xBk~#{zJF@kJVvJz%Kh< z2c&F=GS^oB@)`K<@)JCr*X|jRX7uI0cinylWQ+FCg_u|*J$x986!d1-V*VJD4he@i zFujZLxM_%#y#Qn^{s?sW={0Mi|A!y3CpdCmZNT+nq4xBFV`vikG{QAv8uT<tK?vlP z8YX;WK<XjtyUO++L#6K8-NctQK(1|$wl!<T4F%SUz+Ri)r+V~hgzI($dYlP@7@v~$ z!aEA2PeEW#Iqy1L>LvnNH+2v3Z3U3N{R7DI{`ww&TnDrnQ9Mtr+q?7Qsk7s5W7;v_ zTu;Y<ml0l9%!J--<vS1-|Kt0K-wu#|$M==;G<1eD45Xw{p4B)`*;C5S+gr|az5=rC z=_BO)=jTA`L-&zm-)JEFJ_$$~XR3aY>Q||Llj<J=DSN;s_Zti3xIGuhoD@}bb1I7P z&)*?=Uxxd=-)o-l{jA^pM@Aq|*6)&=QD%gF$D!Nz6ao!c+YS<&?*b`}2aEn8kWz#; z?l`f2-?o@GeV%d7dF*m-u7w_Qd&-a7;2}7sXup31Qr^njY4bbc&_4cl#-rQ_?L?u+ zw7|@d?4dYc#E1Nk22ze!-F_~rwSb+pWoI#T+n>x~=o=r}naXX*C92!My<SH<R;~u^ z+t!yl=(TPy`Isd}<CusKZ5#lkj8+{s4y-8dc5YEbo&}6zf7?cjWg`K--m(!n9Otgu z=L)s4(%8^@On$$MT26aD=XK_o*LA<P{#8OxShhn)Vl2Ww{d)ySx$p?l?HGo!zwKY6 zWg`aNj$sBiV))R;6+p^N)y*2eM}akdWf(R$@O<#U?d4u0#{usbRqmf32VA$OKu_80 z_VJRJ<d0-64Ud;KG6Cc~4<09LZxqONEr@nJK1PAmlPE6(X0=@c{c*pn_7j1g)0`h0 z5gRW9d3}BOQPOrQkoUi~JX-Flop6lwy#UC*yN{`Gzc*O{q|Fz`3WsgS$-THMfGlr1 zR(!b_NWBIeD1(6<gZ3I!GZJIWXH6Z2awGI*G<16nN=&G5GVqQ4cEdKM0_fW5Q8Kni zaoOGGYMjURnY3m7Z-bey^DTP|p<`)r#jLII6L7x=ANGGBkaC>r=DODYzc}Xr*tCA@ zV{F!<&Io-BL62*Jv6(y(>yz3Th;7R5K-Wh-2k+zgey54{e9pmVS+-_FZ?SB}PeMGk z?+~^rqkyh0T?_sGe_<7EaxJ{O?frJ+XJAxYKdYgqEZf;A{8U>ZY*Wq#c4T`J`dXju znU?KYKDI*>k=K*O*7ZQj%c`4m#VVh3#Wl3e>x`qVXC{5h7z>{F)Et<P1<$AIpxf6% z@kzoZ42*&sW6<vu;Z=+>j*afx2G1am#cw8W%-?O5<6$%UE%Xd>(!+t{ZZ7l&AjOQk z&}3ZqsEr)ZtwWic59=K<%W2CxzIQz+?<Z|kLa%ju$=h&Fg@4-T9YD&xsu%Svb$S-{ zaq?$?xc0Wr$Ht>izqKQ7*=~VuuN~>rVH+R%(+s3cRo&!#8=ss<5AJ-<J3BTubvuqV zuGuZ%YJ|t4#n8)`V2H_c<ZSUh0c2U?EIIaMfXrI}<-}l2k1480p=UK-$NX6K`7Mxr zY;%V6`8<%vsds?v;|n0i{PZSiw+zVg>NDk7@d}XFI$OXt``H%gjyJtt^UFuB;fIrt z>O<P*V?1;_AAt)bb`c<B5IJAZ1%QlIMlp+e>Pf}mg}A;zP8hGg=g2;n0NKY1Amz$) zB_DSIx$omZ=3~@((ykTA@?}6CyRV-j`S=Tv{k#kG=3|i0{Ky>ozds+}#eCzr)LQs% zB!G?ahqZs-Mj$S^$oxcN8MsVxl|(sX9|1Baanv&hj=@Vs538Pp&Tmh{is?(Ro?#3y zKW_rr$5GAFXBx<3PxvCq<JUm055bG2&*4DM)0cqcaO6}u2b>C|zU4G&cLI>}b1T^5 zx#A^2dUGYv9T$3zu)WWB@~xvWF8-H)|8CaJG`Je!y6GH_;|C`Igg{@@SLr-$k(fHr z-53KIv$$ds_0%08W1I!XkaPC&SIzw~mrEZDfRv-IkbPzWna6?CwI0YmUQ_+h8PYBR z<XCzBO3BYlK=yBrV}A3r`H26!^E3(Hjc}eiN4B4*nHwY*2_R#cxl!^P1u~xjAafH& zJ!79vC|)n<Xn7Rn?o$qmanuK|mOk$QvX9=^NS|>a$B^?=$@f!0&eJTAHa-V3|JTlx z_Pwr^`L{QaoZbYo-ImwMICu-ldAbj5(wl>T?zmXbJPk*FIP<g-T#ay^&V_Ez)A+5D z$G~k8({!uG80CyvSTTxv>S^eVaT0pyCW+U5K<1_IEa_t^kkb2Svd<VG^SA=Y_2Gh> zrH=%VdbeAo-C;oH=PGdEI(i+@n~!aM*3HaOKb(B51y>`?NBz-5oPf1%=8_V-_+1j4 zFm%Q?4s_$Mm_a@D5RmzB?#B5ha>95Wd%NtD2D1CXv!%}`f!t>ukomak4ypeV$Uds> z6#Z%-+r0#2KK}J{$wyb%_U6Oy{jc@MXg)@^z1H=+7r3d*czmKCQE)KAag>0b)B?tX zJ~;PDOw#v?&p{yLoV`bUOh9LhBET?W%YE(#a{r27$iAg>BtEYL8L$1YFQq~Iz_sW3 ze(&q)ItDSae*bFg=6bjeZH<u62<VMkV0;PuQtU>65%@)}Ng(UX=1SdgAj=DJYTW=% zX^T_Fhg0}hVmA(qgBNXQfaFwvzto)ybUF1dJ0I_@T4BGps$neR)X8^L`L$yVnU@&) zF~afD0zIY$CWfI0gi{R2vLrAC?&Q~fo|K&iq}=vv87mI}DUSnPKlHfK+h?7s8n<!t z!uT=*{TQJyW1z>i!1xk<NO&cIEXx2h@P{0CeNf7-1yWv2i7#&fDIWkk@+G^8d?`D& ztuI07ahFB@JTg9Cc%^~#B}e^X;dnBTWxoYdK7B-dDb;-fK(8-;>(wgQ+|=t(XZthj zRbYHR4qUIo(35lsVse`Ojrf=ZvdjT;y-F_-A7jwDK7@e5N2Tl<Alv>GNcrF~S+5>> zT-K|B*q2hPeYp3O@LT5ciRNiI+*8sq?e`q<D)8*AuYT>!m<}A5_n%|B7J9~ImiIsO zl=zhUt@sp!9(Yp9mH{bi7fRhtXv5gtt!;k=bjN|-58lFaKX?{wx%Y!R_-(1-y3pdf z6#8P<dY)@GE%s7C#y{{otR>37@oC}uD3Eny(1u)3(Y8&xZ~yA@8P$z=-&%2Zym8Ik zrI&k`Ek6S1ElQm&kSp)AnVY(dKJ)mWf;}TV-(CjYz9*Y}R{RPr5)446Upd7HFpM}b z4>ti>w;agzc@2<bx9S;*$;Cj*G9cSI*w@XU&-+YA9FJId-nBx`jO!$n8=((P&>OUX z_3SUT1bO*`^qm7z2BC~~M*t}a)&1Tpv7mtMtYv$ZkL~PBIA7DggV?5w0n+wmsz0ZC z|32-1e?4qM+i`3Bo`7;AjO`@o_Om<Lmoaznas32R&Q{&eR<eMt#g?s%kFDG*SdZ|b ztrLNipQw(QwtL@v^$BhBY3G*XA&fRgIBp`)$7_MfZ8jq|gRkN`MYkJ)l)HdzcfXeV z@kn-p$6|}eG9Mn!Yr-Q8jDQQ{&;q3V4oDs^YPlbe+7mmDM+9w*Fdk9pc07Wwi|r^d zrkv&iDenNu<F8uo$0OAV9?L8qt9*EbmkN(KFrl0l11Uu)BaaGg10L<(UtD)m+jy99 zKL+JSINv8gx95BMkC^Y;_s2lWV3aW@M*}H0s}9@keycOzvh6oEmwR|H7ptK+x;^KQ z59vRNP3O<}-dXMKf-=f!K*pd++knS`mBpp!df&Yeiu%W3Jj#u5?nj~5YXSSDpJ~_( z;lu6Ift0xF<~!QH*70UO?OET^+B);#uIU~QuK&;zu9dw1@&6I~IiRylwj)5wRwyIa z?X^uIP7Nn_o>L5MjgV6uy3Hy1hVTe1$9nY_*^U7z`=XAV4%Rk>I4$1*PF*Lq<x~aT z=9GR@c!b`<u@k(QvjmWGBI?NLG;LFeQw;suxw3VWyH<<STpv!^w}nR}i~H%|MNTOo z<x<p<(^cB05T~xEbe>Zk+8SZ*MnJdY<g5@LF<>0L$SDJ)-1&}hx(~?mLY!JRfK%Gy zl=0ydTq*Vvz@+la0Vz+tE1X^cu8&jQq|V1_4B8rDoF+lH;}m{h?4^Kd<rjEQIK2gA z?mhsnk5hUBIIXfct@Ys)T_yH1z^w8MeIT5^29i^$wkedmF_SwVr)g+wgmIb)-HucI zufiz@bUu{r2#~TB%E)PZZBvNTstw>2IJGUOAat8ka<%XX{2lAl-())mr0k12aynSs z6yh`u{n~Ti*3DWl$Ko{Khg13=!Xxw%)+g}dxJdvhC!&s=PSZApI0a7YJg0iJHNxCA zK)2(R%?Xdl$5@}hi=0wG%B83yr>nG0Ax?8PfYTC-({dk9&Zoj728@FjIc0#9J3kRl z_W@a6h*N!I=i?MbTO*8947wes;Adhl0Zb~t9FX$V8sYQ;aDAMXYyhV<7N@SKx91f8 zLhPl0Y2_FATsXZ2WbQryu8&g`{n}&N*3B4iL0cn?Q>zcB=s(3?2AEZTp|!&4Yalt5 zYMVm2TeAV2YJS|7Qyp|Wck!=;Qx52SDccbsWh<1C)Arh?5T_ROYsbabO`K8|r?d~J z<iCVR;A^Z;>ts6yr0k12aynSs6yj8KM&~(=LR%xu-5BV0oYLP2j}X4)3xgNOO#(<c z5q0Ernzkv#DYXHdmRX!u`Ebe>b$5A0x^#D<;6+X;_ghG;PpBiOtF(=|_vZI}b)*Tg z@_D}6ugv7J8T%Mv%vzw^F$;DTP6=Qf9LeuxAm#pI;r9rT<%MFllH59Zy-;~(TTV65 zZBF45jT11f`~uyC(_28s>;s_7$>+K)iazaYHSW{mvCZqH1a$jaEl}3o$*TS9OU33a zpli!|&TkRzSkL*bwrs3{UJF|ka$rBnitbJXA8wxlq%^7Scl|fwthWBxzVSM2651G{ zZ&RS#*Md%^*a`td-8IHQ@_JZx`#Jl$v~BsAv1~1aZu^*mjVM0!@jSIVP4z<Wi5+n^ zY<2KGnO)DZPJbt1Un9I9Fb%rRDc3{%PXp<50+>-wtALE-Iw0#RwQX-8eXyUktc-!H z=Q-_7wM~Ecoxm{kZ-jai^pF;qaTE@SKLN#TFYzIz7zc9RM}Uk;2pH@s{tN^1-upg4 z)*S(4+uMMQ=gUCac^&BbZ~eYx8U5FBQ3&Y^`*hC9`$C&R==Ru*^%h^kK-vu|I>0#m zBZs?y%+dWoa(o2Hw#$H&H-Ro!{T;vk&V`w<YyTe9*3H^E-@}<cEFxzbgAiyZStWKO zz(60d{a#<q3Ch@RB#>>3O1nCxugR~u`u8ZAjA!wmF?ad-EPm~|;ATCGZ|jCz1Z|Cw zTNHX!3k<i!X2K&4O!X5Eqp;2Tsah8Yl3V}($KLtCT|M6a|8w{EuI}noq6h~ego7d$ z4nl|>e<E97JBZz*ZO8xo*&J4c*g*)HGujri9TP%02#s(|$QBM7ZJHfqGMV4=^?6^{ z?z_)@PJbv{`|bUB)bqTr&-J<9|E}x$e9qr{$8O_xZ0r_nGp2jccYKfVcO<u}@g0~x zr{U-JU4!lUoye{D9m&ncx2pbIlB=nYVpgq(VAo6ddLMd=&x&qfG3VBIa|l*kjBoa` zwjc1z{+dIdhrjU8do}b4bKt(STI)BCDvEnGefP)5)a&$RV@jYGU68(x$+*Q7K(!S& z=Gw8L`8<0gYulAJ#WV#<?uKDZ+jkqcePdVZ8l$e=!n$r=qppjw{qLx2pEH)t!2tAy zVH8d4EY;WIDsN`-W?+_lD8|G1TXM?FT&Nrz!7<5qVVDEA7pxokO^@-|skZhtR-u_s zntL<Qr)p5d*QK%r_a^uy8?$&UnGZvo?(^B(Rrx&d%(Jjt<@*r-YipNU8*`wwtlu16 zKwZ6T#e>OXxVO|~LHwLa46=Dr*~R8;0cy@x1{yQy+RqbEdt7B_yGF-3uIpw7y&k4_ zGL{|V15D4u@b{i*7xPfR&6MBK^fJ`>3C7WP@6z-a%TV?TwCgtm3)qvSVX2?Z={8$g z+pnSGc@WC?H=)+ZWm}u?H$si|DAZWPw&@i94&OCUG5ikde&(+J=F7`aKD-0<yQlkY zYwbrvS)AhZGSufr{|@#0TEE?{Q=n&d!?w3^zYmqWGobu>0V)S?LVfmbtAy!?!5I3D zP`UYoYyS*(Mc-xzYaa%ctKm?7p9wYokD<nY7^?rvP~&_8)jv*-^}B}|C>amKJ;7aH zcCWGjE;(oQU0+t$b!ttIqqU<N#?Nh9JF0C4y&PFP=^>WSGSs2?KE^cE{L4F*q2^zF zU#nZ%G49UK!wl<CHJR?#<7-fJYl~fN%;8Wq{uFBL!Mj=QpM|phD%APse#2@$CTaS; zP;(%*m+7}c&GpuMn@<Cv&OaHd-x8>C{O8i+RjwD4&U4p`mH0i6aQ|G5{Zt>#{USbi zk>3^cC9Xm7D2DP-t4|K9EpdS5Fomuh#-RFTXwOp<J>F_RJLeFnb1sL<`zKH}9KOGu zdm7Z*%R-%3?S0}Seng(Cd@kfX+P%n+vFJlxgZI61Ag>qkPh(GmlKY(AJN!Er`-Fez z;*u(#^K1Mub~jqJzjIOZ?}x7HIIGxS_0)XK;j<U*U9-{qDZz-(NiJo1NJ6z`4>djE zSoo&ZB;dI6R)+C|?D0q_X>|H}!>sQyP<6ck>YTF<w)ze`#Oi(>l-vw;{2x&B?@(v! z$57|r26epm;2z@!H*OmY7_(i_fBg1A-${w^9{2bfd+eeMsMWx3!NA70!S-W#{xY8D zFOzuw@>t8?PW@lM|K+7!iuJIX=Zn^$?myPKuxSnUL7#{|Tbm!^*I;(Et%umj#{5af zfOhR=*%KU3G$y`h>!tKv)8q8leqEql*SBJ$wFmCJ!1c>Ae)zpE#u1bBE3wYC#<n}$ zYz~L=Yr+w>R!<#neQ!F_?t|`!I(O5f%*GFnwrk%j-!lERZ`<1a7)pLW((aqyhl-`{ zJ9dBeDO8Ug)7E||)Yf$BaTdc%Q1=WE9dEIfpw2&Nl-d6wlzutX-tnl@{|L4BeFVe3 zV+FraHDWA##cF!K|L+<{b4~Tn5{nnz6Bp5oDkkFRT5y`xC3mXTIR-Tyi>FvVvru&? zXRKcWU3tu-$G>lnKZY7_rytn4zlN&C+fMKJL#xTzP-Eqw_VYKOY%PQu^AN^Vt&WD$ z{qM5uS!-V(xAxS^UxU}VsHrB(=rHt3q$a5`mh19ame(9qo>EYGEu3lj3DA|N40@6} z>T%iCbG_5;+^wP7zXvtOlTf)Ic!rHN45}vIf$FzDV`=?t?rc>1oak(P4nIqMs{L-d zVp9l}X0gf7CFo<I#Lu_<+1v*bpKN`b$C4AFbbmiw?fdOBFUDq--?IC6wfTB3z%MV_ zpZah=(&F{WA6uM-A6ZQ@P_;<Fu%72x{1wLxEV-PFILFS-LgjEe)VW_k)$yovZH$wl z>No}}mm4sK>bQj))32pke|vq<C2QYWO5?K^<$e-+I=YsA;?~lIZY{xZEx|DN7g)Xm zbmc9Bo}ylQ{HCj0uk-EP^P$e250(49vo^-jP`MusbzV=#Q10Vy?B4Ot<Km4C;XUdG zHTJUXrR0CpPQj+UzFzfjG_8SSn#1yYDz?4ox-lDlhHLQaHn`aGn0G8(<noA~BgcyS zW0&jsW9`@{P&wXioSpjzsPXpWT*+jp^LlUAdE93FO~DOX_o&;ZMt<g9=JUh-X|>;v z4D<7!aZGtt{euZjc~!&-^yqs@g$b66%H_s94CklQ(;Qcg0`v;GR=&P7-ufPKi5<&8 z&BqFqbi35X_#RaLx4F#PPlw9?2TnhbvBUgt+IifjjlIJB?^GlI3-R6N=c?ye`A|%; z%bW5cf8*%U-)_uZX}*?W@(S~B_nfsYfb#!ir+*GZ|2wr==63@d8MpcSva+x9auNHJ z&@;44bX;QvS7Y}o8+QVf<efg#>F+ze+Hc=hWLv*GRpom|J`cUFXv%|X+YfzGXsOAM z@<j6?c@6KU<CA=w0VU^gO#WWr`c(5{3}ddyk9@?BLKQ#KlgxGzmanzPgRV0_mO}Ya z=lWFhBlzix{pd#@FUrRt^k_bcH<<1CjnwCQdprqBMsiGk9P9d2^JDx<_)&=XQLN%e zWwO~$-NfsO_@cVZhLQ;!lOI>QKGpn)<yM@JLG<yWd<;d8<|BTy+0Mc|zQ~UyP%`sp z=EtK@?a|M6jFk_O&vr~}W>b5{bo74VXial6cMG}apT;~KN=7=p+UHl6%1*P_=9)kD zYoYIzO|i=E0Q5oO$W3<3x0<a2EINC;^H{mw6NWKHeiLgn<5b%NCPwT{Mo&cS<)`r6 zhJPA&FDN<C>Cw-F%&lQ(X~a&Ot6JKL-A?UpGdsV7l4qP=EuX^}qj?USKlb@NojzWa z&#~yyd{(e4iQhpzd8{~3fy(D;PUo{a`|_RkQ=`A9HcvjR;Ilg3m*DDUeTkt*eJM{f zUt)K1--SQ&Wh|607dgFJE=Dj`^Z1)T_V%+8`?+fNu`7xFnq2TW%moZ{;q+?u=dFbO zU}7YG^l1Dg?1u6i?DIIZ4@3J-uV#M)V>OSt`Qv}ZAF-dSW*@tu6!>fyk7fT@DEr4d zy_)@bD`7vlCK5k-i}<k{%3av!acCcg_MKkM{s_iu9&_`@|B63iKUc**AAk$ZCtv~} zLi;eZ@APW+=dFbO;Mz$1=+XEScbok*Oyh&>UkPRZYNto{?;(s6-M>diY@LoC-M@?2 z$nj4$ZgqC2IlWqpGi7H5`}cx~-Noq97<1Dt#v&{`d);`f7<)kZQ_cS1>sD-k6n(sC zzdId0YQJ=kn`8HK5AE!2LYwSw21EOi&v+JPdnG^Twy>EGy6>-_)H3(Meda?6A7r=S zn1c!a$%lQQ?vsZ>#WEbK?>SI%J`8>B+I}E=^I_4wc@%b|d$ZPp#+bk{FB*GdH6QQC z7yOisC!D{}Ilb0rH%DCG(q`0$uUl8ldfhvVZ(gL&MvtzE{7lPj1}aYps2T*0r3dXf zR^BlURpSKIYn1^^kvHY65$gH#Phj|d8&u!<P|tT_4_IA~gR*rhl$-^1KI?p$-}3H% zL(?4ebv%MLFRJ56^yqv~Kg2r2e~sCl$C7oRvoVn03qQ>NUU;sGjTsReMf7OiDvXzR zV?OF^Jnn7OxOZrCW6QbX<Lb{bFN$jbdNi*5Bi#QzY;o+$W62>fjLW^QU+eXi@v>dx zZ%=q13K1V>pqD}`P4}Y7$9Qed+3Zy`A2xw2<3q#b75gxNK3<fE!RS#RDzo?;9Dc~= zY$$ob>D6AZ9V5HVo|F1`^ATH9(Z__NHN~5IlFyMoVYW8nvE*nN##`lYpf8cFmHa$w z{HCT@wLTK)(dXm&r_5Fv7M<NMpw`a@v`LPH(*Mu(t@YbSV;MiX7x`RFYvzmcJ{`SL zgCiPS@dm%+Geon^pF5!B6Q{Fw&tP5s-mj~LvK4ub75iCJyt2^?J!&J5jRgN>?-VFG z+v&Z#wH?>3bq9VYq*dD68N(QL-CGBp_HLgJ-?v<e$BJ3cEA!3#QT~hQ1sOzq%*AKS zhn!;?YJaT2qVsF~)3&c&2X(9s$8>%>s5q+mow)hS`#pkly~yt|=uyAp&zawqXN^TD z-%_;4=a^p$q3ZAn)Ui?Yk>4l6(C;e0OR!je*SIHInRew~KKIEl8^aLvp|nf>mHX$- z_f*Nnf-b+}=<+)Yv&5se5>yOdK%KuQeO2SV+&R_muZq}Q8J}zQ@v$t7#1i{?%e}kw zg2j;dy)l6DI|mg@8WxC0ZHu8|Y2X~iG7Kt~L!gfP*H!ui_G=0H9Q`D0Hs9mE%45Z) z>voYby-2U1&vOmFMv1u=PtLIj<$D^+*8s}*3M{&q`@Co|Zwl3Scc}4x1T{C#hhdym z=HKbJte%=pW*jfFISV~H|I#nJdFPme@~a3{v-m5lrI)NN0~O27P_euL75AI&IP<T? z?`$M*b+H`g{{FJo)hayp^RJO{yeO6&dURhc%(GaMuNuqfiY11wSTZn0JZhT`70bI& zv200S#j=$<r`k2PVTzl7-v4HQdmx;PD`@wz3}75Die)5v^qL&|qs5SSOhWmcfr_OB z^TeaJ?tidY_J@k)VyIXyfjaKL+qYrhzm;OYJr(?dcvkS;zOQ=Rud{yG@}ihWpqE{P ze3qY?*InHlV{ceo1#}%xLdBJ&J(zE8$3W%dtk*2|`=G|ZAL<;xj~v)+A1N#DX7@^8 z<*|>i{+CVhX&)JcK2#G7@$seJwD^jS6{s#bC|~1H@x|Zbb!TE!+aICg+pcVVhe3^Z z4OE=hLG@$pwfKFVnfOp^UtgJaKVKI#i%m8ge${dx$-eDs=U9O9E4je@kHHjisckY; z-1k7m@-bB0pSa`xUZO|PbPqHho2z;c)V#lsrNB5|6w5sHoNMrPO1@*U<Q+3me#c<A z_F#s1)b=J+Ec^e-tvwj7J*eY;{x$!dy7bi5KmW!vrWeh>8R)ZJgO4k-(BdjN27fl+ z^XT$53FUi&_TXJ>8vzybF;H=y4K?2VQ2BchhH+N;ZKJ`rt)BTeigCQi<^=TU^Ty0y zTx^bcD8CZ#ng0Py6PMa1ySVRyisb{SxIc2oYweeb+ll9E+Al|7%Zp+jk6v~SzMiGO zTFlA!jTxvK#h~KMb6j!d(bL4QwufClURh+ZuSXw^-y7<<pRYrk?U%7TR{wk*#F$<* zUmMW}$$7-bSEyKA@ehnCs4f-S<!cryzAWt}7xNB(vwB|v)psfkYYY|VM=*@D%6wg< zI9J1c|2or}Vw26m=+XIF`p{xZd}Iuu{K`SCw=^sem)aJ)xEnY}u?&NX`w*z()$aRe zU~_fEQjWw@e`m{B%8M<A<j2MslwWzMSTeBa;`;)sF6(fPVmSgTmLp*pi~IZK(R-C? z*!{ZJ-dt>XQT^Kdy5-tSF0oh(j%BF0vQTlvpyG;s%G`AM*zWI^kNrQf*e`|}{}LF+ zUgiEdi|w$E{@(IS-ak)e951q2LXX}*=l@|bB|bBj(B)Tv9?nUaBp$U*fr|GPs5-7k zU&Y(oox^*mCv<Av?lE1#_1tafZ;0b7e5c-DzcY;EMR80*PrC;B5&HYN`JZ-7K(&{b zS{ym_9I>eFZKybUb4=$S4Hd_?p^p3gu=(E|ix-Gx74Q9P_4oIWLmAVH;u?cK-Zl8R zQeRkHWycubf(z#yx_m7_`JSY`=wjaapBD24P~$ubHU8r;jIYXl<6_0P8ur0HcP$&! z5cHvunDTY{)H2e_SVEUyX>`rG1k4bR+Ge_VUxJFICw&#~dhVRw;b)wNg`aV{vBqbd z2Hj0;n{)~`;rDi{e#Y#7$NnSoqIJ=g+NP<O7k!6x9{LOw9r5cT*~R8gxwA3X(bh!* zUF#zUbxOIxk>k4O$Z=ly9uDpG=!s4Z;dd!2j#;Sovg?<mpS}l?=-Lp(TicvG6G|?D zvh`#e8}rDvcJ9ScJ#L0ty>;yx!tXfz9%}5i?X7=Ds5yRSeM9)2(+8k@dj!hY`B3Y2 zqYkz%UWbbRXkyVgKZH8pf4+L%D&IFOPiOA0=I^JgPReclJxz6zKmE|BLW!?azPsfr z4%L>1^0^GN<W!Gehm!qc7H1hsw(e&6Js3*<1T{uyH^%bfo`)}MD(>LkW#f*cN8?Ve zYd#lyn$H2cV$H&M4}1J$D0vrZ-^;FJ`qNPJ>aR{8=f=1bYK-N@UBZ_&759=z+`aB= z8F!_(#gKujRRPN9#QI#HTn;u`&-z>p6?eRs>1RU4eZA9naAO?p##mn5d3;&fxHW%e zXEx_}(K?$~C7x^_^S=l)#GqK7gOXh~uoz2F@-Ecz<@uSJvGRVdN<3PRlNj5J*5eHH z=)8=_&DZ?K=6e~+=d{{4w8zIl$x~4ENpEEO?NE7p*6Am>F)nvwEHCcH``29DImY&) zxC`jfxJ#Q^3@NC2nS+Wu*0&+Z6T2S&)8*#7n^@ezrgqMeP;sB_^lom9UELVVi#z?m znu~ipV|!8DQ_-VwXScK%0;sr?P_Y(airDq|*HE(F<`#DWO4@B<ac>1Bk3x;{XQ=a* z7x#z<*Ie9L#`dDP^XSpI<J*|e`K{eNhw?eC_I~#G7$|uPhVy(Y({G32Ja_sDZj8&_ z7|V;h-^`Vd+wVgu&hessD2*PCr?9R0T!DFFP%L%*&EJ!t>e8BHlJ#BR<@vc}75rS) zeJK7=Q#`6q5<MDEdI$5hoG{<x=!z*16WiJ2E1~2cQ1!Wbd(&Tos!zbVlApOTo`f1> zd2v_pWo6@8*?#_hsMo{G#yto<8h31<`J5YIahITcPSIX=IoNAQ>vKC)-23cg`sGk@ z7o2{G8{<qj#`5A`h%YM}&&u}mamOB6Htqy^H16Uciy;X$SF=!Y2fH=|Ibzr24_t1( zwX?<j5tQt{i^ZLWl7B*tv4tC>chC0YdbaNTVf1rzOYtN6n^0?7S59;f-?!M56FmnQ zi5`8wuQ1r+E<?o=+uigeRNXU9&qM7CC72{%%GDew*<&|5cPiA}xD)F5Zr`vmu7$cc zxDl#-TWo2p;ZV;pzU6$VYuhT|(_`ss@53y@_vY`bG=J>(uyr17idW<JMUTG6Qb?K) zWmw$99zV3F`9BNFzfYm$pHBC$#cbN_wdwJUy)y6L$v5S((9Ac*JR3dwUCz`#W;f=T zg|WTNrwLF}hRSiTz0K!4pyc;ZzWd*M-LT5<iX8D6KCk5Oy;kezV>yp;yeQ8T(aWwu zb4Y%a_I0uBXMUw%k$7}$qak+eC8$`ops&u`9_qONKItYkUQ6lsIB~3|@6r31QjF<E z*NaB!atiS=6^EJM!NJBXdd|i7K9uaVzs2-1lyo`JV!97%oKK;ok#oaXJGI%D*DEjd zuUF1iY|UP;lz%#}(#${2rzPk~DDnQq4q<KLo5sDy`FMlVd)N5Qx{<T6w{E+j>tUS| z9Wx!$^<{oDZ3Vi|*;vl?qMS`ekM6mNL(QK;%2<I3{FINsfRgRLY5K8H@;j(`aV&i$ zKY@zz7B>dJbvcmVx;)N*sz9&vwt0d$BA*TPx$Dm{FUs8j^n`2hxvSu3+WC4Nl-%re zpS$R9f6kW873Aux9#;(7FDlJq&|V&YlJ`U8JmO;rMpz!xP;CjQJeH0!J>!^%@x!d| zNl>!Q;nwG;P;2@Hr*}QV_U;p*#(W8C%(IWQy}gGUvkz2F{o1YdS=s6MU2E<7dd;Vg z7x}UPz2q8vtcCA31eK%B<`>_x7%u&`>5Kl)^jqk&GCmD`YQ;Wf=;K8`jX{t46r4$3 z8_nhp-!mT`hVo(C(WZZJ#>)9Le<gfsGkaN|8qlLYrN;7_0e;Dc3(hhhx{NXXN9UNn z7kzZRckd44dbjTOVaG&=Onth2v2D3^#eWvGk+G}YllhwEn)#x8k4fm!dyVWxTmzh~ zlgF9upF!FF$ms*<BYhN<oaglA`PSxl%lEB6$Gyn60q8A!8;@_!)=3we?VF%{`OxV* z(MS66P;#!*d-v>kLeJK*#~KoyG9A+$itS65IqgeR<Qv}@=(%^x--GhGo72oc?N4*j z(=veg`JT<OxBt}ax8kuR2IbH4?Du_o#rB8M$BXPAfu42^-hSmu^5g8C%VWt!(Cl;X z%ikG{etvkWZ1-v#^x{2_PRF^=5Jz<7Al##x`Jft=(I<sgnsN|KG`k6yy2@-%gOYcl zeC>F(wNHVP=b+mE?%I2A-F4j7jqzZ!F`I<%*X1%JkreBZKjuw`TGVAC<YXLDi8 z`u*?t^7EtG>bEndkxMW7EyktjOH>rZ&#z?O>Xw6QE8T3&Le0tK&x|>!{kQB%f6bQ! z{X+hn*YvNmvEGClD>2E=9Sik5WWx1!4cqkw8|!;e*VsdEv@wo@n%8eRz3XIqe<lHC z<7g<Ku7|qs`Tk9&-v(vxBPjU-YMi=G?Sf9HwokOnv`x1ux2n{7u2}!v_CasmPwd!q zFQz?YdF|o-MYH}<T{Te53C5OhDX17GzzmeAU4EvgnBQSzv;WGptB?L^t?J(>&R6U~ zY^QK9E#BG?{=LAY+ML8VZv>AMw^$y&1tqQNtFd;5%Htp?`x--I>pU^~-NdqDh<xv% z{`sc4rLkh@{h-9hmHP$vcKnl#)1c%$r$=oJ;rytL(GeS`SFsWMCHtcr^F?Q4ehnK_ ztJo+-Y|N`-ql}Ft{}jjJP%_f#(Ks4PE#nwKn-}G3FnTms`Cl<E|74?w9wU969<?#P znGK(_DE<5^G_$R>R;psVGS%!A9dl6gAPq~-hYz59U)LSm464ovC>aRld$rG{4t;@~ ztm5Yjy#E=_^&<as=tEtDpJ#>J&34%_eTVrUhw<C&*x6A2x1o=uv+H{z)Hsb!kNy@w zS-w|!UReM8Ccnb@kDdreZkqqWG@hs8gYxn_D0#{0{xgTszt=d5aaQ!XC*?-<nGo?| zGI}nw(&R(z*JihLC%M2M`En&x%mZnY?w@CM51L*@)BabHFOhvQs(W90z1Wlw?R)*u z$47k0{KkAKz$AXj_G~C$_HoA!f}u~5@9vIfylQh?d6*cnJq10wzOn_goq}a&qb-kR zdsBC8OIXczxtVRnt8?n-HpLs(A3bU_c^9_am~}jsw1c6I=x<wae)D;@GLQWlnb^!1 zU8AR?N9SVdZnGbAEdAE}$fBp6PxnFPb9;^{#`B?KyTJ90?n6uDbL6@Ze`(pg^h1y4 zrGm{O|CEOpoj>!PUh6x_qZy~x_xvVCY)-CXGkp)Qe@r)<y?89y1XineNwy+!Es59& zUTzsz;$GIf8}n9YV_FRx12{iwV<c@}l=o3pY*et3;-CCJ9!f?#-M<E~S&e(^g|fMt zU%!jJ(&V$|UO)7hCJ!RW&(s5M?m@Mc?&tN@`z(h4gObB$*s({T=HLrZ=lYn|s}a)# z?A40Nuhr?zd{ka%q8DTo@je!3Qak*U%|{<Jp9azv`p~=KjNXmy0-kHWRqeUvI`i;h zqfWs_H9lkJ{TNI?FY;puy6)2?-jCoBY(M1eK5Tw`1VcZT^L%%rd|1Kr-I)>lv(VF_ z^(OoIBKrY8$lmrmmP~-5{qXa48->r`YW;rav{&(CE%{8H>Y{s!x%liw&zsu(f$s#W zAc(I^;R(w{2CA(z%iUwR_5`}Fds$d^`TEPFcFsSbj&*y?p7-1iHO4Hcx&9v1eE0+^ z&+QpQvLOuf?p{NVUY~RL8ND7yb;T$fGwAC@zRX6CUZ3+%ncXtXJZZL<K>2!_J9aJ% zeX8<#`d)v;pBndh-j5`GyvUCf`XJZvuUyYIKPoWBKiT`XYr7Jv-%YN)cdX60SnK+_ zUV(k?c!GTB)+*?@W4n}Jchj5M4A(#UjEK$B@3=qWpKR>~B?mg)??D^a*n=vsVRJR@ ztN$CPzS1tmx?4-~sX5k@xzg+Prg^<SdJ(;%Nrd=$oqoyYSKhJg7=PK;fBIE-+%ZkN z_NTIMN7wu;JH}rzJ?)r>nz?1i_#f<ed|pG)mG-o!YtN&H<2lB$Q+V3i20zmf{>_(f zLCHaLSc~viP@jn%`K*1e^#rIfT0dv&@?NOdn%;x;F#WuJ4)$iKeQ1MHL-@C0j)VIB zmY+l2H@pt@w_|pG!9EZBE2#Hd+P!GGIT$Jz$3WS;6KemM>-5i|USD~8uAR3Cs$Z@9 z$%Zm(b_KtA_EnE-Zph~W*zzJDN1?a4Cw|@XTy)Gq<ty!&fQmPO<@pv{=hrNE8$li0 z4r+hf1M1vEpyuA;Fw8~Ij{9;Cb78f6n7PWw3hp14Hj6`c+PvBFz0lO#?4xg(z0KdW zn0A1nefN7V8`juIM=)Nkb?^7`EPcGlhw<oT*WlM#>`&aw;fHKqyuf_83x+<pzvs1n zmCsAZ-opNB{yl2>t=bG?Y%iJvBhY8NhJX3J(0oie=Ai0WdY5~CVv_&qcii<D>ez)) z?YBb7X7p8F`a`wXb!;1Stm9V|60I_IX<pl_@p+j!iaqk4s?Yi2X1;6erRZaz#QPq+ zhyA~p%^yO^XHH+<dq|nLUCs~dn&^`0oNg#~Eb9tT?LDt*ZSqk*O=27`T5|>T7C!#f z{7O0&7xA1Bzr*~=f20JJ*LR^}+m=3(yP^8^?$>2pzsBA{e9Za*@7dMuTxA}e{wHGE zydl_}_b@i*J&Yb#MPmE1$NDw|eOLFGU)Go9owqzcmv?M=V=m{I=76qAlgYam>22QO z9#=&~{5(y3V)aZdvHF((Zh97K9>pDtAKTtqp}($ANp!8-9J;P+g~fLLN<uwnD1Kze z(=f;U(p)+7eH(Kw)VX*3&HBCqb#1$<V%N00p==!Vf%$Yd)EvC?L)+KigYtg|#+J7u zVK^5z=rC@B#w~*$tvl5n8u(9T@LDFX-OVQUy7k)!>+_tn^Kl&#_G=vEflsLQj<!|l z=hsz*al9z*`gi#rp`1f}PILcsIfZJA!QxW$vEAo(ECJ>7xlpH1aQalI&x4_GZWvpS z4#Ru2?s8SN_r!DfP`6%v&?EZyv8uEw4%wT*IbM|O+2})EgO4N4osDegVafS%%@^j^ zEU13_gm*uDf7SKvy&OLWEnIa!)12c)erC|4er8*lpG8=4e%w>18P8`np!__ZW0Esn z-`*Q{9=CC0`|!DYw;I>q`SN!;&)t<vjos$YO+IQ~H=sAl7~*r8Y1=u7wKhMmgOaIE zU)09*PoVO>8+|1|gwlCmz2<$&L~PZ%PpQ@J=fKQnek-?g(33KZc)t_v&4&yuIDbxQ zXa41(`mN6~$+oU9_n5=^?Z&H`UOl%pnE4C7eogn7ld$C_oZsltc@u9izbl=LMX0rr zgWCI&PEXM<*TM2I6KcF~bnG17W1bC_g9~9;tH|s04et?i<h9cQw0V)8!RY;5gU@@a zbLSwBU5)v;^K*{VtG%Z*S$1l?)=;Zm^Fa4vvzqy%*cPBibCv39If_B~Sngshz&yUn z&(ERq*M&C4^=&BmKd9r;*US4YYMGl9ZC*6S2=r)f3NgmzpT^uwkCFaPkG@}(lZ`6x zSIvmnDWWIBk($l@ZtQz*+>f1|I@-cmBJWo$sbMGn*Jb1BhaR<4WXzNs_jV|`+uMo! zUgk*7kItvD5gQZGqpu<5y0bUBF}LHfBmu)%s(c4}uI$v9Pk#Sc8nN5(e#?1N=wY@p zu;lD*!(+{%0Wh>5Su;t-iN@GSn-|TC40?24B-ZI1l--ygLCI2Y!#&qJyT)F>P6eB5 z$!jcYyPujrU8&7ra_&X1bxcPus<?>X2NQ8Of1u_{WmDT@5}Vl`lY!d93LMwomD!|o z__|1fe!3QCV7-oea$NVP71yu8`MRU2aK0=hXb*attrV1;1m({T>zeIRP;TA?W&33) z+h?q2wyuJ*@jTRh?c84G(+5ztw&U(xBOed-H!7#BZ@zBWr*rrkP=6S%i^$*nIQ;|W zXtTYn)??*Y{!OO87x_6IJ>wdDeoI?fj5)^wtZZraujyxT*U_eZ{U<Q=tIF?mwE58O z7gc_z!|xaU>ElKI3`TEs4c?!`HfAFYgRSlH15n3bg_3PtpXgqHo_uJQAKBG;Q<~XT zUZ$Z(_u!yE*LXMXZ)6*p?(J0B9~(Y$@$T5{cl}oISpF#P0i5ea^X3Tjp{~K_A-0{x zUf9-R&p_qA3={aO$A?43lZKKfpz8FrJ5GL<`I|9Q<#V(AG=J=CREqdkMvu;!^7dx0 z2y@QQg;4TWrw`<qV!02>*QhT87O&Wsk@WGRJdH+=`cl}z<pstP_INIo?bn>1<(T9a z*SB}K`hneAHyl@=XrF19Zu*SuJo(hKeb8<1&WVOhr?kED!d_IR&F3rlxXDM=HijOZ zTbZ5AuRIKPw8#CRd>jZRySaAm?OObXWSTL<Yw>c{*7%4YlhC7Ut1`fB#|LsPc0LWH zO@7<}C5v32=-QemADYb_zqW$EH^r~HSdSi!zl6OM|1=NIhms4N9-S8>IKR1_T90L4 z_Oi|F>vgV4=+QZn-o<PtpnS+l-`O7T03~Cf*3Jd4y)Au|mo42nb@i?Jo>VfZOY@qc z`;De<k=Gc4Pw+kR`)EE-{W#`Dekahgu0eL>S9w?V-a+QqXdX+lP{-=J)(2g$a-YX6 zwkw67-;BK1H%9g&@Ac&)cBi68-|LGX**VAzH#=8C$qi1g>(Dmn@K)PIn@sC;t1@e$ zOZ%Wp-TFb(r$}jQXcsip^$2{gTF?KIOYm<Mpa1zfH*&5Qt+On8bk9tmWib?>avFoV zGpudrGcB%%q3T?O%B%lQ-MT^3@9dUBKbQaat(G+NNAs@!)0W>kN}XdivamG99-nZw z`SEKg9}7@^>`WiYA?_UeeE30p=6m_S=QHFV<do~RJ|Dix3O*mcwjS3U(7oJfV)YW< zH=$3}WI+5HDvq^0#(rW<qO0DqaqfN*N-uL<*OUxQpKCSv080LNp7q)PM^>W`q58J{ zvGt2(ZLF7}YX1gQ4fngi?gx*&(9S;#s{JXbHUFX0{rl%VYCIQ7eMU`dJQwl%$r$>0 z3HL$toNMs8NL<XkBVPIN@kJKfKcRH?-DSS-H$yh7?C<4>orUPhh@Je9&4VQWH10`I z@*}7FSYN9V>*%GmW382gTJ3(Xn8=u3RJUp9WfcnXxk*p3eB`10F2l@tdmO*Sj_n53 z|1GFF^B1VTKBiiqf0+8u)fZE(SpV0)dOsJTxuf^#OVrNG20TcA(eiT(h3jk{WUjaQ zk${>Xl}T=of!dZT^waz+U1N-0YwbC7&8ry4^`3u<c0FIrOf<&a@ifOZ6AK*IewX05 zSaeL$FMhfC@>i(7i7Twn4Nzmh1~vBPKec{`K*>a?u^xvyzG1F&&=q#S(qcFZ%E!B) zVweZD2QPMdud8hD+ZpQk2&jGNSQxI6tL^-wU_I?)oPG_|bN$~yJr{lf#$an=(sSi) zVDmNByT-mTpe|8!k6hc=hUTJbH<B2=C}&g9i>|@%V~LwAUzwZTT!i6V{F$4JFr16@ zQ=JN)^iz8Vy}<lc&hNUx&e`Bb>l=q^{{fV}n_c@|P;=o~r+)yoy>^{!=j{MB7j}a> z|0*bX!09hTjn@U+nj2d{_4A**UngjK=Roh>&1glfBk#qpX<ao?jAd+l(R}UII?>|$ zfSFs(|Kb#jD-BhHxMT1OYcJ7HHORvX`B%)zpIhHcp>p;Mr_Y3{&nr%U>K5z&0hIK1 zHg|Ai9t2f`<6XOdj?y#o9A!Woav6D!@}H(F_u7+2;;R?!RnyS(uEEd$>{QE3>UPU< z?l#M33aU?m<Kg^ASMH0BS^BFzhORkSreBgesU{PCX?_0ymD7)%-ta4%_x+&88V*&n zSDpSk)cN&{B}q8nhC<mm4r*PW<Jzmek29<-^;yB|?x)koi|mg@AL<%>Udnfv4|!N3 zR{7PF$2z_~lwRw3TCaBau!_&qR<*xstlTEC<wZHophsgV{o2Lin1NbfNvQZMcbXpj zh8j+@*hWK*_a0Q8x1x_?-w}qfN8WRou9ze5)6H+@o9rw=?*}D5~w@lRv+&|{>J z)1$AUB->-7***5kJXW6Me<SC5QQpR*`xfs@;%>7aK(!U2@|1=7yUfQ2p<?+I>R7wq zTHoEEWKUQvKXc`KBtJ`=`J^%1)VIt}@gDB0`KK{|0woiiUe~@=(4N-~{B!W;zcD<N zv6}y8u=1doGPHY9eaE1WcMU!d$)TGE`Tgzr$cs?&cc*vdm}F-d#_9gvRP(>JFiW<Z z{f#Madr`#pV)R@%TGM<84%j@%xUp|`wjOc%D^CBy>Hf3Y-2?lq_Mi^f)$2EhHGNh) zO`8|R+lU^Gw}{OI{}j(LP;$Q0uXXxEPG`-Z!F%(+Z@R+Td-HQ-TWh}g@2^C3<w0|1 zaWkKEjcn5~(c-nn<b7823@p2P?|HAywINWxPJ)u6)7#KjHQdvkTg%rm*jrg&^Yry1 zUkg=y4emF85-{&<f8l&-GsBLJfRe1!XTfm3Io<!>Sl=q2e;d*Xf4{=#D3y1uuhER- zrJe_4(R;}W#LxZ0!{%qkF%Hu%zC9nXV>do%zE6Rw!-q4i{R=4l)`x6wxC=`6v29u< zws^zpiESw3cu}3w=+WP$ip?@VbB`NKutI$D@%cxrt>2>-+YV6eKY7gBpMsjZ{WwSM z{yF^bYCOL<uQPG!HJIb7{NBP^(yn=<c`}7qyy$tv0`#OVB8Z<i@!wmX3eOtL&lwXX zyI!QxH3w7A8;ekRjM1K=E_(dh6L!v@q4WcvG`;;(cFq$}d)N`P?Y?TS-&y+wP}jJ7 zpSJ!tKV!A}3zY0U$7;F=N_ya<=Ez0P*Xy9{t*EA{uKztX9YZW$RMQ#g(VFJVmaoKo zWBN5?;dRS<nReB*M7x-zU3tvWUSdAz@&C=WbG`?qKkf93U$S%dec5U{7ivm9`iiyJ z&9j>B{HmS5@gJ<FCqc=*P;+neA5Fg+s;2Fnuj@hC^Un$UM4l6lj#10Vcd`9-dLqZX zD6Yxq^IU_U@4?&5+c(X|RZw!H(|gA|kBc{U4nG@M>$Cambi@9poq|ny-M#8>vMlGA zzm5)O3@=(2!_a5D2JdHLq4`#Rm-l_~Sve^!u(kp3SPmPZ<VE^~Ia>+;=dK3-mqz?= z=-$%*>|f2d1k4hP{EPp^+Qz<T{?CAt&FB;Q-?QTxwZ2<A8XL>|T%+<fkv?9+`lDxD zgU@Te!W?(@e)Ko9e;IW4YkuBx(Ms4~r^mAP`=BQy_ER5nUxW{`ci9JK|9TkOcb`?- zyvDU@JmZDerfR<hq-#@^c0cC|&3w~y(IR?WNkM#W%Ac4Y@g=-}hM)4O+sEeP`cV2? zQ2p=tyXkYG^w*sJ5MxMx!Hwnj=2|h0T<6QjG?sI{D5i<%aT!Mh`CIth{H(w<ajEUi ze^^X^fzp5bnfZL~Qq!kEoqwm(FXvq8KX+r*Z5s==ZR`+iKBi-^;rLELkGk;H%2fFK zg++Uhwl3Bo2)`x0Oe=o%=t%z`slv+~sq5T6==_%Ze0ovu^3qrD{r-O0_kQcT)d%4( zq@}{opM*Va%mZ4C>F?kARJng!+>^Yop}&dHXWgc{==Gez=+S*Rv5{Wc;d$MLUBcWJ zpzhNuu+qCrSeK*Mw_^`N$>UJ<I(h@^dp*=T->{Dz{~^>EA2|IVQ2qTJJgUaJ%CG0< z;97jox2pH7+80!t*~IQe_Y=K(C4z#Ii1;;>-P-b->Sy)HLv<-TCOIDJTXhNV^U_fF z1SQ&aZI3%W4>QzVHF+0m{1Y~|u}^_&-#%_*oex#p-8Qk~dqW++d9yCzJ>&aOvP)mH zc`%gCA3)i>2I?NTVe>BGYj5+nw0`eFjpNrwW0kcrx%cW{8>@S*eU<T4d%fo}i#WaL zZ_M;rKM@R4(vg4FerL;be1O#}16AvSW0K>#hc7u+23j35P<1Fk9k0+|dvpRlwvE+b z9F(2b{mn*KsM<UOWn+VFZ4S(bk_Ax5AKBi<d>LxYB~Wwur5()n-=J)7xTDR1SE25+ z-i12<qMhvg8BkJ$YPY|mG%&pX`+kkRBG!kw5q>wM#{J*_j@7&m(VQDZ{=BTmgB<$M z$egPTadU2OH|L<{L(wtMam}gZzK-Zx`}uvW?iHxxF{t^GhVfmj#y^9abA1MxjebzI z|0|S@-FLM)w*-c=n;p-7!^XT0YRs8Xb8ew)AHKWw@3M#a(hq759tpJ%9S3D+aMH&4 z0%}ffu$Sq5p^pE|=>@0zeX4)mvflvH`(ukYbo<n)k?&RNy8dry)4rmZ`)t%yW9=(P zppQ_}5Wlaa4z_$Hhgm&xQ28%8#yGAT=ArUbhI#6(9QEAK&bb^)u7_$rXnz}H64aDB zc&Hu!CDhn6p!ywsfQ|hFDE$*C8?PQ{wR;~*uRF;4b%yG9sncgd$)m1)dB1r+a${<w z-#kAq^4Zd_(55^qH)9#wi{|1K^s;O4d5#}uzGe=!oE4yQQGtm=EUxRI`hN-~b>Fo1 zYoPkR1eMRDQ+E7!Q0?zIeKAyiZ2v5T`{(g>(Qnt=>&?A3`Tu+WRPD4BlH|e5x;z+< zzC=YteC={0E#IkcS$*;_tes<$<C+I$&u^Qagj$C=n5O=!&FfI(9(lNpc^p*xhDX?# z--oL4ro-*{)=<ZP3uR+A)R=#U+Ryes(%O%P>X(CBGk3f8qmHt*bUf7YJ4aam1CKU+ z7Sy<ZgObl&yI)J+sPgv%7Hqou*V0#6n|{A**sQ6R`mDeZ^pcW|_*xcDusDNJR)-{1 zEwhdpjw>G(bg=-F|7W?n8)}>#j<GRzhsx;(P-A@KJ65~bq2$J6ZH%7BSq)Bu8uJ6F z8eMg~o$qtKZIxWF(|7gf+V5L~8QY7d{7Ce4BwyK+ESBQ;EcO6hu_j@KTq*wJPqbst zL&-d-_A|a~eeZ{w(+4)%@!pK3G4_IzgQ5ESJXHIe6@4~eb9orT*j|)}QRrpY;O9;3 zhvsYg2Nr7{DuyyFk_-92<;iyJQYg6^s(qW$)^{{i9zKAQ{l9PRFGI;2Q2m#ehrU~^ zxjYPGY%j{gX!Npc@Oem{X1?Z5wOC6~d5F=TB1iK7KB)e^GuC$#sP=oH`hE<RhqF(y z<9~)~@5ES=b)fqD*9*3-aSh9FNiNos_kwEqskNwmd^WLoS%(Mp{aA~Ud$rj4mY?{K zEWa73ycHaaKeqiP<5;0x_u~olEcH=NKY^;v8K>J=7eKY|d4`SkQ>fac&a~qrppHKe zwRimqYRpz=*>&i7sJ-luQ2jPN*ZO?}O25bHWhhzX+TS_P`n?C$&)53o8qfD8Z1vw$ z>*>VeMfc^4(Njt~;@4SWg5@iAnbj)|RqMQCn&YZR94h~1+NB4VbFaZXQBGfh8gF>k z#yS?NeWMF(tdpV4Zg8O;-wf*b$74<Z97@0EVjFwWc&mB+C8qxZ%J!R1e+R1nw=T8g z3!vsoSA0{u-`6&%a-CbcwcFRC-~IZEf2T+}>AOu+zO|%=pqHS;=R0+!#hlMs&dN~v zj?<nZr}F<ksQ&9;;qnF5J_D-nnLoAmNl<y+kTE2iL-q6VZ&fA!SpU_(uUEUL(te|w z4Z@xm?e%H&q=G|yPGZ-Y|M6?x9E9N<bS%Lf`B7}aRo3TJC^;9Zz1P)t&e2dg`74y1 zJkjRJ6W5sj98~{sAK<;e^;&nWt9BnSU|aIEVTWKt-uLTvVdS~oYHIiQM<cQ2ML9YT zeYR`xIZEAV{^xG6_)AbZiqW1Te~RfrsQw#Gvc6kFwLb#YH@Mz%GY(4r4AtI=u_Wt2 z_4o5<n=12X@OEo%{fuI4FUrGM^i*W7Wb)=~;bx1q0u@7o_B^?e|2-z#vGbs098~+p zH(B2#)Es#ZO6vU>P%;>*|BB|wi0!|=Ig-Ve7v(089-SkFDdvCWR*OG@uH0l`f&3_@ z4SsINeheiSL$z;wi}g)I<>pUNasXp#jFX|{bg2G*jts0aN79MazsLBsGM=%$C=XN7 z^N~4{zTJGy-)6Cvp<;-u{TJr{X;7!lhmt?J_Hn<ozH^}RaO$t@_}`~m`$mi<*&2p< zaPQ&nQ{#SO@Q&m{_l|ql_<Yg-+5^>A&!b0?D=*6OEcBQPhp1M{cja!&e`31TuW*;u zCG%UWSAyfZ7H6QYKLt;Y>-CI^>zCntU85_UuX&W9J<t4*jm~$NjR8=0zYXQaJg6~0 zgc@u6Y4+Mkt2@p1#!zE^6Kc$Jp<V;e|Jr=|{5N)=(ok@7$9=zer(oINFe~iDoLR%4 z-B-?a&omEPUKDlx06yy)Sx?3LEgu=j7*sxD4_Mqu*Iu5%K0{uW!(HyNKL3Ck?wj{o z?tTI#Q=r;kar*H4EJt@h$*WM~?97;|=W$T$@oFfU40YV^Lp`hPL$QHwA6kv~de#0; zWwkb+-$D4`Mfq+-&$|Z2uNYEAiz)wz#gu{Je&zHy$CZN;dg3ALb0(BL4V9Nqp~idp zVaxLyFwBqJpK5)-YShka&;F#GYTZr1XD`xcp%-0)&uR8C%TIikG4;6RBL<bPBFB}V zGP>4u4ra--+CF#nIO$Q#dmgGDk3x;VGv}(7d%H1uZ`OI-W{v&A*TE03aUEE=3waJd zE5_gUs`j~qFMDh`zgxFldtdTAUxV17rW$CE8;Z`?(nIkzh(B$)uRLQc{m$i_cGVyQ zmG3;qRf7afQ!llB=IWMx!fLR~lU9RPPgxCmLG_z9+iKCBv1NWoD7nt*k2#zEd4H|H z6FGX<wQn6v#Ah#hZD$U8$u;;IBubW#>~qHS^Om<bR1HeBD~}a))gTX(bF8iXvzF6? zq2varedrFT@!xXoJ2OVO9^6>|J899s@iS>Ra=eDGYtixjd@W+zi}s8q=sDNmbCr70 z;*2|He{Xq6LFFpu^a@n23NS-{mA~J*Ja>G-ax@TXJ{}1*{>xA~dIPGzpO3YElXCJm zR^NP74&?tV#`Gfp=c8v`gU><nB^UF{=63+I<U>9$b$PjVuEq8@D7n;~<6~-F<8{>1 z;MEt?n!cy@^JWP?dx`NNu{-yqT5O2VS>-j$LuI}(;q(Fw_c^Hi<z9FD9L$kdwIyD$ zb7n%#j|=CS-sul^?iNte==5`;&fDmZHqWkrvT*}c`?2_-c{d))zZ;!Tw?M7k2cY`- zTGg6=efC&=wes_C2xEHD{2Pg$bqzk3i8sx^O4<C+!xH(D&qLp^T)YDn<DMLoWMK1{ zYW-eAe9zSv)2hxt<v=kH#Ro5{cLu%U8hj2)3oNeupNu(l#g|48_aT^Zd0GS|N4{nC zeG)1+OW(Hqb$93bde{1ULZg%azTAA7Txt)Wh|ga1ylW16!8Q0?W*1t1;(sxg|7^L8 zLFKZ@apg9TuKJ{4nf$6P`;MLSB-Gm3{$0!Meo%5Zl$~dtzB6Nm*FiU?&v~tTj!Ap1 z`J8Ls$@e0*yvWBgddW5TTowOnab=<6PrYyP1~5(j)K+$RJo7!v-wROk=S7x_FQEGQ z*tf57KRj#iH6QzznODlqB7F0rt-jAbe6K)BLjIMj4=wK8N5&+&)?F4V{uJ%XdjNCf zPi^b{&H7G;nrj<W?3_oT=Hi1NSPox<l6Roav(MS=6+XWhS0kS@hLF$Y-P8Z?Sk>oU zS|57;QYL?1^j_JZefeHuSiojA4}Up@`@lN=f(o_%!s=J~-0GM7r`0?MRo@cFHJ{>~ zr~N7eRnH{t+ONv=D=|OR_Sj;p`J9jKwWGcNZu;X;^Xkb@%*GFvn2niGHWoO&+oz^a zfU>#KKkPNC$D!u%dY_qoDAakkLA6iBcg^Yhq2w_rfBgF0wZ?oKyWfBA`kjVvUi3QL zeDq>u{pRYehNbq#6uR;pgNi@Vp=-E)OXw-;t+o$c-KVwcYU{VPo%@}(c5b#^*Ki%* z3N_ZLj4iWQI~$Xs#__qWbzNAp|9@U?Ywe|4KbqU|p-nm0yc&UCf)eFGai=?5z6za; zxdzKe3TpogoF1oNxPH(x)IsO&($RAIBPe+qYI*(<YW(hQ%oCyJ|EW;t*=sZ1!o9QB zcap{)K)%<K*I$<Br?15{;_;$dEI^Nb$GX(b)uM+n4VABKcdJDlN{`d7S`^Xq)J1Kd zxH>-2#cGm_SuMsx)nX)Ls|LSxHlBkzZ$<Nd>Va#1-uwHZ61Kd^*9v-z`MR#<Cb6FR zUqRQp&Z~VLYa0V4??BDrBYT=Y2PzkD!7z6B_m|eK^8J%32NCyb{%%&a@f5piIR|@Q z6#HWIsjk7V)l_fuyA0Kqb9!cdH$Py;<>fsnIj5K9=SC=L$2nS~-QBq>tpBjDvHsZd z64oC*TK`}}i=zZp!yHuoldwSiYU{Uw^|=<R{&js!KNBi%6QKI}*lRuCo_X+^k9~Q2 zxaP$IeDI>2G#t|M`FVU3izgMg_yVZ-%24s=U~D66n*b%dZESfP0VVfB&5Ori^W4<> z4t5bgYWcpp+Wo$;5L;f9gZgi_{A^;Puf<W>%=|B+YhGkv+T~|Hl$^P#<>h%O8N)f6 z7gxA*{k*94cV+veT<q1}GgwPLlc?P4Iy8h>yy$LoEP6%BKm^T&cz?@Nd23^Q8>d6f zue@U#s(+FGs#99$ZEkJnLdkrndy}DCnEn~m7^iG$^Y02M{hfYxjq8t1)p0bGKW8`} z&VyPXKZELjE0k?tyKQRRBhNc@&ClD_HUDdk<7*cj)>J#aSD!?Wem1APljS+<xufYx zbmc98TK7fTmA~u&t6dxh+gjUMP%>;gt6jV8?cBYfYH}Hr%y8`+CTz^7p=vaL2dm*f zp`^XD<-b=opvv`k(BahSEBtQHS2<Vt4d*XDc#)n%pA=aerClth!XV3425P>>oSxd% za#2Aql2hgQ;DL5d5vm3!>}+{FkFk`m%b@zzde3Iq5#;9I^q$S>*!H4zJPkeP8vK5d z8Eo+-9rNFCxq*r|;q(~C6>kYWN1hb(@1bPt-7Igzq4Ieq)cAjgs>K&D%#pi?t2T$u z8~*Q~LsRg<i~OF89-TvlJuT*3(qc+M#ay9XF(&r1T$E_flQXq#yStr}hsx=`dsu!( za*lF(vOCxBhqc}VFCFRj!?oaArgf<~w*;TPgr5^SiaDr+A$|_V_O<*J_A_Q26OI** zD~|=Je5GK9Jge<9C>go8&9$eX<k}%thnY}zo`5p@98?Wngp&DC<M`Y^RpVMTV8nl3 z?)~0365qV&+A;w>p$Uxm94CiayxD_{MaO`4#b1WHwq#+2ysIs@zx8bxYI(mDN^U#A zaySc0mN<Re1MR#RV=LD?LfIeUY^9*a^|`*IMy@kQyIilq&-N*IigyyWyyzZl26{@9 z4Ea~?QWj?b<$oC}zATI%Y;8p-8GMN4<^d>a_f0!~CDeHLL&+1a-REML8o8MDtu>#E zTK6ui+V0o<B7F9u*J=BHoA;FzJmPbjKhpA$Im%cbZaIz9uJxIQ%5{R{Dn}VTeyFt- zpk(l2w&ov(sz>H<J9qOVY%U+gn6h^^lw1fkrq6k;=aTdAcU5Dr)n7SLJi*AOoG6}N z=vlQRJ}0qnnSZ6D&F?HM5Wjrhe1yet5mc-nJAF8P!kFB(HD2ZZY#z3%y`J%PwD~<M z_`jz3bzMlHFH!J_kH7SP7GnSvQ*orLE0mt2U28T8Q!ZC8Ldl?STh1<mk|&|^z6Iwh z-#fZ7eC;=>vEBw8v-)aZYfh}LcE8?6;<FcBV<$>iQW2lq*m0JZ#IeS*(@W^eQx+=6 zdD@k)6pS5XZGVF5v;KGN+!LWLFVmpL|BGusIBoU16{=2eLY?;)sIh(S->Z@P!gtob z+|R>jFZw=UEY0;p6CClmkDp|D%R3go=jJt3eqvDhNpoB*!}#&`_%5jR{vizK{wO<V zj}xqY_Y<w(Wl;UDbNb($9{aA@-VUm+dqVX)3d+`7P=3Z5tzRFg_C26#e4x|MggWm} zPWQF^O^sR}aopNd%hk0W|I^0N{t%;P=TQqU(wCxVG#L;-M{{GX{)O|633S!F^b?zJ z8L0UegF3Zvq0NsJ)O4?0&^3HNGzWFfuP~07MA!Snm8`J<HNP^B2^c@w+WL;Rb54M| zkG%)#+{IA8K)3VvO@AJ0?2XUt8h%e;4=6o-j?LxqP;w=dt?5uLFF^I%_s3lWy?%Bm z)NwzTYrR*S9<}z*Wz7ZM-;O61FUsj`^r9vK;^#vAa?4-du{gozLKbSjN;p<7v;3v$ zr#zO`f1EwO3x@jz)V$g5B0Kj4sQFWLdhd&^-y@gUe3}h4)<KtAE!$v2^Q$}5ctvN^ z|K8~qLDMgE>o<NToItH2zjwN-x^g9-r!$t9@bv)nevw?|a+a$El;1_iG)!D!ZD&Er zBpBudYM46uD4!kOIes42`pnP56aRbWVeGq2xz$=sp+`R>l)KLI7MtX9j2`Yu*BWy$ zye2~BzQl1cMgNM+=>=C>-+Q3u-RDr}yn2<jA2HEtk%t=l9jIFGd5wGR8*0o`p^m=^ zRkLlJ54$+qzIOZ8xE@YuTzhKg?<=R{vls2di_qgr0^;|I*v(d(^i9UX&n!<Fs654? z@>k}#n1?y)qsMjETi@-WYH}LXIeXq<?I+!6wfO|fY+<t1@P4TChccFGb*LNL*Pzz= z>37oFQ-fOf5`G^~5sMeCpB#F0{S<!T*3B=CDRkwrGR5T+D(`8id{#IvX6T=yu6q0? z)Hyx#miuF%&KdA?Yd`N6tHC&^{;xyLjm>Vg<L5x_-{YPB2~>>_a6Sxowtelks<D3N zoV@nb&aa=v`0ORdgZ`sies{lkht(!K&6sq|(ylxupz<2fE*4>d`snc{zp`@<gR03y zsB;!iwf2K=vsyGl$(2yGoaXe+Znv8DhZ^rZD7g)4UH#UzKkM4#&KLVkP~Y$~K?l{S z*T^4GuP^(Vp#PuGTLYgn)qD)!FQz75^jvi@`XEgR#P8?1hindH?>7eM>XM)7<|EWx z%g->z=qEk%fU)HC(t~!dopFpq&9M^w#5fG@w8!(H#%TDp-OnEhb)P-~>bg^M`X0Zr zetZ1Z_LO6w&fETOd+sqFN<a4=o4-?`^!uT%{ny@W&ns?*@*#7dt&bG3=wA2)7t<+F z$NipE>v}RKv-a#sE4rTKiN%ZNN*O(RJxM=qbE51Rz;JFnW=uonI|h}%JjccOEY5q_ z9$x@;&OJ~ySqgQ|GmlvN=%UqRI#j=Qk6JBvg}RRH4K-#X)bTr@_PmdsUgvDv9<_bA zM;%*Zk2?L-|B^lGOYRxk7qreMlLs$a2Mf>_D!GW?7g8mwed<|b@p;RC3M&5<+Cx5P zb<IK5De0K!c$#^jw)!Wm@19WCnV&+<g)^SC_NSh<TE7U@zuhx7N1lN4=MAX#&Wx$& zv>QRqp#z}W{kq+_#`oxQr?36%w$^%HUG171dJSd<x$>glAMSMqpE**}5kEI_Z`hnj z%r|Bn<Fso|<X^Y?Bwn*RS2(VErD)fh4jhXdSN*b%1^VTgcWV3L3wF*lDD$7ea6kCH zT`PVGrT2Z&`n?Ht-eGf1-}4nWx1e4le-Y~V8S~7ii=g!PUbT6>-XCnPZ4D(mK+V<f zK+V;Yq5A(4>KgR~R7`#GS?zuf*7|JI=rjL)b5ONa3={Fei*hm(J*A=|zP8x~7Jm|| zt@5_TS43Bw!Jl}pO`Y}ll(O}`1#0_P0CmniZ(93KoU8dT*o~2e%GqU5^15sHxvTZ} z2eM=SeYsm*>+3&l9Dk2EmE3yK@9g$EyXD_EDF5B+mH*I~K@Tq%Q1#7yY;{e4WGp$x z9g`f_8m=rh7NE|HL(QX%W0~=j%rCVqftoAZzhmot9Ml*OLe1USyQW_X)o-u&Y`q=} zr62abt=ldCX8P?=>-PPM-4p%;%FY%a*glekI`2@Y?}sm%%Z)DPQ=s}^4t34E-syhs z)>`+Y&iVJvUBB)p;DZ<CZaR8&-KUpYZR1dJmp-$2bB-yP`o!8^fRa{AY#!_jbxzMu zt^LA(Sbgt-%IU*Uxmy4wySp)c?p~{LzZRV5a<>+I{wZAFtKg?<qkFM_#OOtTXFY>n z)`bUAPL;Px`&g)F+d86a{l%fyQP9p<g4*Y^Q0FBbi=3CIu4)_cxz*+xC^PRuowMN= z)?N(k-0pQY<_@jQ)^DM%w+};&GqiOqtnJZI`blkKp}%dNj~$`f6Hx1RD3q^fx^`dt zTAzJ8{m1{kwO`e_vby^FJ%2K}^`d*chVxr~Mz6G<&9zbwV;Ws^uClJxF$=Y}Q|lND zj<KFLPjZ~6;|cm{o|kDC^HB35?HJ>{M7_1W0d>y09b(}g|6LfK1GRU*<Mfj{TEBSb zSU89GhdS>BsJT4B>FabcUrvQOzDq0?zR#G1^5KeZHfIm&ZvC!<nydFa{b8tn??LVP z?OjY`q1yc%9#~`l%4OG{Ijp&%^*sZhz3BNs1wF5g2=V(-enXoR@r{g0^zeQFYK`an zSboar%2S$tiC*^jE~vhLhG9*3$6DufU*Fny-oR>d8C1V_p=!DVV`{(J&5fOgI)1U! zeJ#Sj@|EeB?oe!BYFlnysY}`4RTy=ltHm1pjNyOcJ)W-j6Nuf5*3o?QWLU7Knr64L zS{C{l<LK&A+}i4shN@QpRgdCUR*wu+jT4R)&d*bCwVkrD_5B6Z-1-|-4WHS>+CSOc z*4x8dSk0$xY3uzSsPo^0vUNRUO7}IcwcdiUYfp{+dh3VJUbNoQ=+X6-8DKRj?r4mm zt2U*b++GZopQK{|OVm$or}VeJw?NhJ9jNto=yulrUcz!ecn8z3hRXS$p=$L3)HoYp zTQ+Zk(pOZADdX0jTGU#%s*$b-bBM)@UMp?5sAY}PgRM4Y#{eo{`EMB0Q2CER<uA{1 zF}{0@zZGVW_Znz@&w#4I!%*kc?PBeB53*Xd+ST+6plWmp)L2WP)>*6F?D$Pkwf@5C zot$l7yAx_$w}xKqYPSmav#aYKWmU)V>nMZIUR0y0=y3&)`0G}7U#n5DpD~UeuA?Dt z9YN)>NV}M%Uz+;paorx)cW0=YWTA%t{+_NDN$WQgYRpl4TMaW%=f4f*$LCJp5nHO= zK2ZHna<=Vt?B3z)*tPb#HkVMJ|AP0-eC_%Zj~Cr%jY1zEx#uVyWHrkSGsX_Kyk%)u z9pX@Vj&ocr!YuXE<Fc#w1^e4MbD?Uu!B9Il4ON2)2Uv}kK<Pg`&}w)ORIMI{8t*+Q zS=ZV0>#5dfK_*@5*3(*W@8N4w#Ah$MXIO$BS5gqap2~+?9ukKcv*_xQgsMq}cIB(! zn1N~PrnVPc{l0*z#Xg7FIbFYLW9*i)T08|cX7*64#U)VZ_hKy7WD_^GuR*QXVHREH zYVdE^)09)~=j%*ZHm8Hpqp!o1kFs3mq4J!9iZ?#On1=Bq?D3UQ@;j&;bsui$JPRd1 zKhkn~H<Ww`mFv%-#@xi&8tQEL9M<}6?%d@rhikz+u60eX)vg-px#kRF^rCqmT+#A3 zwG+o%K8tB%={U=O25R2Npz>Tg*5+&$D&I-R0Onmik3HJ@UIR6s-+-DchkV=Ge{hVu zrhmt3`xewa$$K!YAwI~~tx&qJ;Wuhr+sFR&zqf|9YFn#aHCK(NkrOZa8^3LG{I*5p z`cwG6)jE5!F^R4<R~~IOPoHEgIVS0+xsc<y?#Yr+^$8q{9M3S1)HZ08^&JgW+v!l} z9CD(yAOBse{T!$<k8iZ+Nu#08zY1#Z#J^{+n+$~NHxp_uz2o#xpytX@=i?Dj=leNR zYwsL?<$v#-@$0@oj9zpPvIIT4H<wPc+UHL(mK`&+E8hvI{FYC(<7ue;<{jg(!n{%2 zu|KeLE{CeoGf?N=@<VIiF=O-VaHy$x9h8k{p=#X@+tT-dnk%P3&7E_g#`iVdw#GiN z^s0YfP5t$-@6}B?*E$@Ao{p@$>^YXpB-EkG*%n{HF#}_#Tief}WDeBY>~w~mbHSO` zzUdgt*)}k&0hBxhmHTI$exMuM=djji6k`)tUk;TM)pHPIdQm-7=*dV<^5>i1amO?) zk{`uXI@e-vIM4dL4t4tQADKQLDmN$o*xGM{I<I%f)&o1XZhKf=%3d#<rr5f)3OerC zE+yYI#@uGU$=CVl{h&n0HBLMm3(EMT#~(TWmO8z6L)+mEt=nJKI@2oc?ex6{JFzxF z!;bZt_UU%1=8t7pz7C_07ug+&KGZdMyRi!_z7qCR{FD7_p^o3|^t$@i{H|9#s7v!V z@Z8^$i2mmGH2D+x{f2+VAMs;8dM@h6IOgM6v;Q2FyybMW-z&6lkGC*iI=4HcbL;xI z{9m=u_ZkLViyz(E2A%irkg&|~w?|zaMsm!H@-YfM;~IQE(i37q?lSYE9gijJL*=Ee zO<mCDLUPcveq7Jio$J;Qmi<meQMOm`oeE!@h0T1?8d`!rJG9m`Ct^P}`=u+m@44K3 z_$QRFyV54v56ZXRRdSKMu68aOIp#&V$e?FjgU>}W$DF_ijsKMM<&RGHIp`kA!7SNa z$s8<d=7Vyu6n%Wehs>20X8~sMC-eo%$3xt)qoCUTzOz$}y}L9C-~Pk?Mvmr#u1ibs z&5QQ*e%G@`6eQy7k<ME#k~dqtIjD7>r(HFSJC<pWU2T14L&+;nf8{zmrvjC;AO6hr zo1m_z_d?a;ZKro(EZHCIY}WPY81$$M|H?<IW2Qs8zSyqRrrfGh*P(6D;jy-fHksDx zR%NY`jsttPjvW{MYt34tWn!!2SwpqIRpi%d{S8g|P;4=D-{SL8xHlHW@3A<p<FVv7 zFq{j^v7ctF71<vjv7f7AKRbi_5@+wbJeHgfL;LP~=IdAao_U)avHul*hfg_DPWm&B z7d;0Xf*##NQV*G5#hJzcz36;=^?qyn7|Q2|9x#3JgEl9U?wm`Ya{eo)KLW!TySE$H zy>-XBbpyLHskXBfTaRYfr5cZY43%av=zgqza?9Tcj6Gt0C86wQV2(KS_~3`l*CV0y z^PptB)8B{ky`4L^cNL#UVY9i<ehyBc-HY-)v5IfOqwLLY>;*-$y%fq9Z!6v`KcyPB zmPBj?H?{oUfAKNi55%6vzMjXDyI^Q5avw5)^P~46BWd%Zct)Z3a}9n?<sN5FyD@j< zvE&;twBhFTrd8(jEZJMh-?mbIwQnto__Gu}`um~9C(MT|EI2<p@L2x#grQ&VZx7Y_ z&H3!l@NG5i`+nX|WlS&HH;d>6*Wh!Roo&7+q5LdLf6^ZJeahx-f2d>gpw4^K>AgF( z8Q7_HyW@1nr*&0-Gcj~+9dz1TcY96uGzr?hsHTI^eT(-aK8Nf0GiK)$C^^UJQ9GF$ zb|yva<g3`pJsab1x|p2|l$`DK-rd@c>(;tMU5}vY9(KNLb#EC{o4k)82(L*E=(%vT zrfXqPVjshva<|oUW^0e<O@9MQK5=^8CS8L~8ruYY#<UIA8{aO7y~R~&nX6ZLy*h*I zm5wa)F1T_(75lZW7q!~`94|#;DWhj1v82Dbc^F3?Rt~Vo_a3}?I3J#Xit#{>Nse}X zxxUu)cf`-XyuVq_^`d#5Ly!8K8g4%2VA=We%frpzd!YQ?jboAnT;JvSTYt-!_cy`0 zUgU2QJ?d}r+vZaimYhG=9&P^q0?Oa5IVRcF^<AF7Groeq<%qwPD*ncfHJ?(j==?e5 zJLYc|%HPk@=5I&W*I#RTHM`afy_LK!=lZKXI71&V%3l_JhHLQqNAizuO~dr7_P7Kk zgZ>Z;=jl8sc?Zfr|2(m0;Gdn@^Wz2bX`N-CpG9@Qb{eKE>suf6d}yU<AIQJv{DFDr zXWRMa%Wt4!*pFk95w347-?EG!^(Cr%-=;=<n^DELplrS+VDP#<J^@O)zG1%o5=v&k z<>jr<FIL{SA@ud4njV3kcMZO#>9@>Y4yK)-PsmT?hi{s1?Kmds<@(mj+l*E4tsL>K zQpLBz0`sj5i_Z4uZ<{aAK*ewz$0Vn_zO{Ti;+HF*xAW-hMR}Wmo_7sCZ?SjHw<L`H z$sV5pB^$qEzTFEYv*Ge;T4DU?{EF&+zV-UmvcC00&xcl;)<XKvW-kXb&d-;i<lKek zTX&90`ntaUd3=lChhY5hdHi9W65;c_GOsb|d3`h8`!+q|+bs0x?>`h5ncW;L|Hb^= z^F3?(9&O6+IM?S=80O8r&azSDHHLmuSKhZ2eZA;;Z5n-{Yw$JAzi)nIV8z)^{?*zB z(x!fU!_cRWt%vh^-&J)f+s`J;m&ogVvzpn|J=q-ep%I&9_U)Y8yYGOKm;GKIu@T(X z(ndepyvRlZJ!+%WxOtG}pZvZNN}hB&_kF{;zr4lYUpC4{mHW$F#LgsiLJ!5~uegLg z<P*!!nLL(U1zo<Dd3|(_>_qalIAUWddh~fo@>AxG8?z0MB^_Wj8;RRn+89Bb7v(FB z9<@<qyo?(&=WJZ#ZA9+JC&@;Yd=(>hW}|z{K40m7FwgwBJeF(#!&oAAf;+0)=|{Vl zu>R=2#oMVcX3mX!kF)cDw-b53I7)URb(s*cF%dnQv)pIA2E#x3z8942=k(}n<Fl*S zs6=cmsbV9(l+We4F+XrN{$9gI|7k7bID$4W%GF5pXdHQLr1+;ej)#)bPUrRaeR=); z)aI|hPm!G!y#79?nO*HY^U()|BRB2Yh0o1q1(uw>Po4dJX;UrtcYUh)(f`gB`*8$) zyvUDH=utm{FU*f5jQ`Uf9{?rSK>2Z<YmYu>oFX5ptc5wv>?-eb(Y+`CnxojuINMi3 z$qi1g7VoHE*N(SVJyx|{*R^{5n1C%W(&wN@^Hyr5cfNxl@0fwQuTDC~pmLsSZ7kOr zW9adqTR7haL%jxk6x3^Ax5Bot3w@QhBcbwjJd`v-&C_c68T*^BFF(_;<wf~fgdWXL zuATXuc1%F!CvYsab@^y-%sair@hmw~oRgvQb01WGTDP(M`~WIH_d@08aVVJ$YvpH3 z;p@xK9Bg?}ej4s-nV)P&^Eu@hhssZ-gRuxTe}YcNoYRZ+OOi9iIT9*AXF=uXaj5yT zUA^V!OsM?)1WLxkTKSoUkE^;~R<*xhUyHEiMfvIf+m`t$cQ&63j#;Suq#WZ=`AK&% zRvL_P^aMFmoWr2<^IfR?+zpkVjp(cSb0SoJPJ@y$uvUH+;Nz;syQ=+tej4sxHb2AA zqw6c#&3ukImSdKmf@2mcKShp*`;gPK=s9wvIHy77=P9WC^yq5&`7u;}o`lNJi%>ET z*2+(t>0e)d`eVzB=Fe#KXnykRn9mu<B-H$gIhK1^USd6s1*exdULi+{v!T1?XG^I3 zoCY<2UWdxh7M!E}>;xr)V6FW0z31!8&oFFxQGO<%NApuz&wMUA=AiPEc1%Fcn@lfb z;PeD~lAI~dkucnUV7ULlaQ|7??LRQwf1qSMtd*Z3_kMl(8I3J3%Fi_PXns-~n9p&? z%KDa{qGJv!KP8TfX{YDV^W;cz&V<U(D^U5_theRo3aI(>GE{!vhLVLa%um<$`*v;J z@zkbI8Q62q@%NFV9y}M{vDtI;uUYqdQ~_VSD2EmFXbv+QTU<%U7}OjqZ)7Y$<*q`z zn00zV{rgxhHipXKZcsVA2x^Xf0F}dCH?$n?2PFr=T63&8W6jU8T6@0ortg+5#0M|Z z2i@N?Z}H76mdd8aB2?aTj%lcT1$~VPrx!U-v8Nq#FdnzI!BBZT3M!AcLglf`CYHw| zq2}W8Q1Ud?d&>);>ibt1=Cxz%eR&<^RR2226#S1qf1E>`7u9HPl^9F-p5ULx{2r8? z?DXC}It=g8y317^6aSCB?}3wg&j0^xyVX`(&9=L>o28*>u`#I#VNfihks{;_S8kCr z*w`bC6zk+}&gHJ7JA<6iG3UY}cY}@)MnWYFLWmnKE`;Cn`FXwGX7;`F+1+s5eSi0Q zJm&HIJl~)9=ly!VUhntk{rNMW`AoM+aky(T_jiet?}xvB#ZK97y#u`>J;No*?&;zT z?ooY<GWHGgISXwYV{R6J*J%NBL#=_q+BZ9h_9Qs_CIa+rFJ;4ltiJ|GyAE}khXuNg zeH~Tw0Ak9yj`CWjPPS8v`o^epG`J}-I^#9s+qa`=Nr7jekumhZGBqCpWc{PH?(smb zukx6GDwja#_dMUU=Z`tzI1NIZG45AQ;P!kJ9U?giDf)rTL#9?R3FJ740h!kTko%0I z<zZkD`DBhx19CsQ9LPF10l7^A$o=IlAln+Vll1)sK>At(WX@j&YOY6Mt{-pD_2mz? zpKHd>Hb<eZF^-S1;5AzC^?2A-Vow2+h?~Ao+(oq116?iFJ*XHpc#KQqyE(@<<6Q=B z)EM8XfV3Y6`gM5}kn2N0+Ob-0-#aS$D>PX5r)p7VjPVW!x8n^C#dy~?3$aWq0k)O% zP4x92I==mX%f`&{UJq`^93L)mMu5z10Lby-D5i$Vn2alifgHO5Ajh%;3~P=WfgHz| z0J-jJAnU#Y<T&rMn~duzK>BI`(tZYXbDZbd)igA>b$q1O;$${X_H8A29UF$3@#NcG ze5FPJ@u9yffm}aVxjn~*&`$1H=J;j(M$2Cm+$i|k-vKzM+h6=V4x~M)Jm0;TW%Sj~ zJ;F?mU+y=~L#^kl)PdsDHyZmaG%(JMKw1#%sP6!+W1fNZ`p@SLX#cx<7UtjG4*P~< zuKZ!s6OQ{niLu}*1`jiRlO88|2`k1!GUmfT<}0q{e&v4f<iWD;`8ugvdWekW0YGlk zf2`#AR3QCK2eSN6K=xJT;j#}*0&<_20_6IKkC5%&29ldT*~jC#)X*b8T%Rz<+>aZf z!I%#Vaqu*QhM62YQzf406hTKZsTc&tC(62$j*%R^e4OxWCQEMnogle85J+nRGDlx3 z-|I)huLjckoFx1sAa$H`vh>wVAh$dJ$5Or!NN#dHz$4d7mj3X$UIz`v`0k>TzXzO* z7MNW7A`(wXF{bD{OUhH=A?=TXpGdCuI#t#kewy%$fy~Lx%3oE!`{~jb`vSSX(=_Rm zU4gVIXGr;jK-!QqHTOWy%@+f?-9Le}V%26Jvzrl@eaudy%oykO_2BmLD~T8*8t2tO z+Fa$fkLpKT`xuQfWA1qnxa}i+HrmC9acswB*kI*e=e;rdvd#<4@uS)DnFP1bJCo;? zI;nHT=OirCegvcj`#4qo7<_r0b9t3h3+JWL*w&akFM*p9Grq#-i~j(SWf>s*HUUgE zilz-f=5ME;$+|s&tb00;76H22E4oj_vvW7*dv<O)<7nqu?~OTn>2EW5$n}t&d%_pv zy6Qsl_vl69{~4hA9|Qk0^ZB2<%-g@0t}QJ$d0zrw#yF?01rKV0$$O?rv?qWpizo(I zewoB`=;f04GlA@rn}D>1KsVm9ZX<AAJU-ub@yN#!Z=P#lGfu-;Z;ZLF2e<c)_|I`o zeuem|#WHOdAbl4U74eC#P^U;ixS&gC2iGeh^UQxiL4i|%=FJ@J^}lhOsBsIQ$EAMe z!v928KXV)aj{<2X$KkW(nTI&gIaQV?oG#DLg@KG?@>y61s|S*|r+E?ld{fOUEzRrl zX!c($I>NxT>MxountecO+~p$Cycf{b+{QDYlb_u3ac^=w3)>oFj^~0$w7}#zGfOlC zW^eDrRr?K>h~7m&>f3y&=<TX?+sm<U`8Ut;NNj72n(M%$T3|G%elEIvS8ne_pqm;m zxm+|~1tec{g=l^YNZy|2rQbsH221niJeqyK5*;C62)e21)T>1EbfBv-CYrYgy1b2X z(eTta9~bkntuf|!5x6}r!oL*_abQff$A7Kk0!V$+ej|Dtf$ixX^z=8^I~Lm-qu$Bj zwqD=wMMDUfR_#Nt6}_W?)VK9~(OUy__3G~pyymx6)cg(SH|Lp_ntk9=4Z@7$*iE7% z1&pcw_pcYtp8~1zx*J9FEx?Xwo&!JMRP$m>^U^$;Lw^z-F`#dOED!&qXbu9Y@rXsD z`8Z%lGzU}PTys6PHO8^g2p-jfuk-vD(UAhCRR8;TYMz1A_`ADA^Uc7HXx{iOG*>^{ zQgbc1tvP(3=!gS-i)DG+dqndPAT^%bEShHmUCpJ%V@eB4W)=s!M!JOME<1nsFbnM$ zRCIMp59k>viS!7|9ro;RPZs6q;km?O@Sv5$%<u3V$2>WA@L`!Y5ZIRA&F%Odv?7}a z`mF^IvSFC%yXbYe$9S#yNdRe&C@<(;?DRfczdK9H?-#2)a?pgf+sZ-0($btqOY9Fg zcm2I;0lHe0d--*qYuj%P)*E9E0^mU{Fgb8;Lhf%6zy2G=?=WCnxo>R8Z`|^`FpuBF z0-Qg>H~pl5w6~PwK3S{ZvS;Yim-Cy!oMm%PQn|8ayfxtV{lLI2;w$q<TpQy<|F;5} zkGquT^WTKFy!?BWQ&$n%P2}j}wN@&RF5j)9C8(GL@?16wj6ySYt_HFnr!15h&H%Ff zQ6Tj%Q*K`;`k#mPoa;pDV*NUl8)Lg6a8qK&N9Z=(8&^%GSf*_aq+i=llZT&#<)=B1 zpETNxXuG$npSz8p?Rw7MuKq;#y=@P9+_MS1fEd5Ue|Ip~lhB4S-czgxU(bmjX7b_O zEwLvTL+|afoCebRE)xDvAnoWog#Rib{j&h*=1tEHJl`YqB4XjW!4L30t?$Y&$5=6P zun4gjE5pJD@D!5?GdWHEP4bogt6)@lK+%_!drvXNkYXJ5L)ss4Ag$XyQg`#c!XIyz zede(HgkJ`v-*=Rk-Y@m%0cm$UAm3pOT_X2w4+nA|z8FaB_n_>TN5MDu<uid?e~D`U z9Wb|#JA3?ZN_w^S@&Cd1eQoJE;+EFu*y4MHiq~Yv7XO1Q0`BLagPE}vcvAYqzg+q~ z4bFW%0%V=Y<FY=1_3p0zgkW4Tq?iG+Uz1ut{8Xv?-fRb$!g%DmuO5=I_T<AdCcXmF zN8k}z{~?gpW2x{x|1Q2x2l9Km7nT3|QCu~EKMmwObl_t$){X$u&4WOO`Hb>=mzBEj z^j-qw`Xiu`v7Dk>&F`LW<z1Ob_P4b&Ucwk`=XZ8nx}JSQ-wV*TF~+bQJZR0OnUv`D zKP#93vTwr5)4(|L%a|^HT5`MnGm^udfGocf$Q+-Kwzwb8)HY4bC~XmQU~TJ|&GB#& z)*0jRFbp2m0yCaM&*7YLh4{V@NSmwN+y^N0I7Tg|Z;xv}qhYP3VI6qP(vV(>a{}mK z{PzKAuP8SfyuRBDz3i=_Ep6<VMr>=0xo!eaX@SX4;6>4sc>#HPUNjyDqzy)yyFUP_ zJ>PlOD(cHQx655-j;O<VC98w|<O8?Q^Fph{rw<r`Ci;6ENdGI8=kp&yTe&_vvP@mf z$GjX}JT^4v(dAnsT7rs6AY+OGqtHs7tAXx$-fD^A3?R!N1ycVq<>vRii=6DcHA-HE z{+!?QnsGH8<;K|dDDX+v{^-1nb3N5HcCGk68A#t%?m5_>-E*+19>=snY54wz=V0IW zcFYU=Xe=}v<1u9hc(MC(%Iq;D`ljR}0A&7CK=xUBonQ<|3jhPiA@db_Mam`v$qQbU zIk^@{8wq6jR<BDNy8y{=1#&DsrR9&jA!A`RkiOppvR>8TUb6?+mplH(3a6^Dw4gT6 z`!+_uhW;2-;tZ-UbOtnba>~xOo`Y*+o!Qr>p$%iyH3NJkg}?~Z5?e1Z1%dvzL|^1> zDO(A2bpu(qplgxS^{&DIzZ<Z>r&~(B*7G|Xa{P1LZUnEPbC~g;cnAA9K5YL|AZ?Cv z?Bmn%yQ~$t$GuUn!%sVN%oNly#<&~6>$Sl6jlC;Alfabv>xE^m?+>I6)H+ptI`cg^ zALZ&uQAf_c>b1<iVC<W6G;!?u-Uv92bOJM)0vp7yqnLUR`?PAP!7^=6AnT6-avUG4 z<<|n4Lv!rh$~tyVgFpLxz|1dmvCbH$mHFT)Eil@mAK-lbeev-ekd{`yH`dX{0$mOI zyWVPkdlV@O7pCPMCmCw6-W_H%RIY2O!4JO5Z8e*p%s)z<g!&kXW!e}Zecqt_F6H=+ zcPgH@yDO^z*Mzv|)qr-rzT=&rqk(<40DO|`C95Hk!90NveNF|^8kC#kx7YhZBX7dD z$2r6gRnGi#JkEnQV|->|8F+}D4>MyR=Javn_7(JT%R=B>monu*?r({&FjhX49G&n_ z$<fmrW!w(@ROZBGKyJGR$XwQJmhrq3ki6#?!g~YBkNi^R;NJq-H@5@1{kuTgm o zZ`MBt$o0QdZr|@{d<%V%=e|lD<;Lh|A-E}Fdu%(2_`~>c`4S-QD&=@j-x$2JaHctP z<(OMfU!^VIiDAaQ?`_jMe)ooUD#3$n5N7;EJN0pV_|V_pK-v+?F%P$RPJ1l2x98yo z%f}3G``Lw1Q6DE!C_Z{%nbs3XpSF)=jt}F@Amd^j>vMd%rz-37`0Olx{6PAN0%Pj) zCLrTqtXft8Ip3|+^|q$TXy0h?LTcmqoQ1l^IQAFh(H83>+QL9;ODZ~D`#4F}`y7z5 zt^-o*hd^3y)TP!^-NrsvW^%NeaZveARukLwgWJc-D0~O-p`Hmq+6l_d+*9Fk{jve= z{ZMm^mtV%t{FlF*jh&}&qru}qn%M_JJ#>teNUr^gDU>r`N#!x{xaOp!o6JYY0Nvvn zko~d{$Q+)~UAAomlD`b36{)XkZF{tGlVh*%1&iPN?s9DQqX618R*Z!@@TeA;+yr}T zZh$OH0s}pztWPf~+ZD*z_XaZ7^OXNw`A0xne{HKu-vu{5&$(&c2E^IHcftKo^_V~A zD*~;?c%LQ#-o!+}O#T9WCH5$gWho%51S({FWXgqSz&VZ*K#to8Fi<M_yZ}hM2FNz< z0J4qGfgGRR`^Z?F3*@#p0eNp_A&~vy^*zz3_mS&7-_hkOW6bn91=|>--UjfX7MPgB zmEt!B^!JnHdw^X3it+(iM>|;SnlX{@otJeV=$II9U8j7D_h5e8cW5%d5$H0;--|2+ zU#0~n7s;(8{>0W2e-Ow#rmF>`Kpr=OiViTTIoY*Jws{lCZ9WCEzpw5u+uQ+Ue?O~y z6nxQQK=#eO>bt66x7qy)d*jWkx!=;tIcw}6$Zcio?`gk}GBZavLxVBS(d)sJT43@R z+D>9~6cgJ@P9ll{AT8tX<7ALyj{EJmk+S!J%wMkolDD0K<jaAycYySBEVgCdE(g*c z0W#n30d+r`i0`^@%*`Ut!RBQ;z8`t*TkdfN?HJ?uS_K}`0+R>dAkh*8vMd6OAt%)L z5s+mA2MRw2NV`t?8X)8Dq-}W33&9Wb$HV?&`}J6FjJhM>K`k&kGuz`>seW$4GVMvA zo5wbOo0p<*K7(lQ>v_t|oU|!N5Bsn9qt^HR5`#rU1nA#EbQ}SsRili$kJdWJ16`eZ zt=ZSQ)|`*_?e|%ITh3UheJR>D#(iM}_(Cl(xsB{3y3;_Gg?1K<gHyL3JfksORU>sD z0<!M#9c2t$0VKZ~NV^TldFXQ>`*ftXeWdz2Rogb_DPHG-!Hvkxf7o^Cccq7Y<o<37 zF&g9lo+ZHJT44IfzpLam4rEy*AbIyIhK34vfLx!}`e7jZFo}8z^dpx~s+G3h2Xg=2 zdWg(ZhXKit1+wq1Q@##J+YID+%E7zH`M{Mx+5#Yt8ykS^>vHvJj=`0A&dUOypkIHW z<LwXSm;KG}+a@7)W9;u{@MbMA{T&}6x%KZZ{TWvb18HfjXJ2OakiH88*#~hT=X$?l z8ui_Ci;+@408C<xaND2mCT)ENWWR4StdINs-dLd9#&GHHsX&g0ML?D(ft*`b0Xe6X zLksy1K=%LXK#uFHRioE$7?%DEW5D_i!}rbECmhoopv4%q*KW#l4`6T2{a)HP$`jy> zJF4X&AoJk|GS5-eOKSdC0ohOQ09of#AambsPswo=kZtV)<XE@}$edpaWLr4K<~?Uv z0KH!40&HhF)*EB{E5SorV8&c%-#$)oAMx`7kXC@Qw)|Fq+P2@(SZ|De$Aa5_<NM*9 zL;dW4W!jNI*ROTYXdeCPy?ZZYpK`n=b9^)BX>j{qQgVOs7Xva6VZ|UY6%-900@+8M zP{tUlw9XDd+Ri}L+T#6!wV!3RQWM*sfHGrjYchC^7MOkr9Dw7kwpoZ}S_#ngF`(z{ z0rfrH@5kJKK4|fVXgLQDe-6L@CEt&=rIR`1*l$8S#<;I0!53<Q$(etQ<S9K`=Sv{- zl|(u7998rkB;_GsSaUk=K-uO*Ap5x)$ZeJaIgVBWxvzc!<Tx6jZMS#svfvB!!~fB9 zm;aWyIEH-av*qXuW7Sv~`(^8Mtn`sGHo`~gTrghHZ&1tA%Hu$eu{g?IoFJG{Olx^y zqLfDz{aDZMfRo_FFnCJG<!*K2b1aZ!aTbtc?-3x!<fqEJ9wKcnJyeblCm$xq>M1~K z*$m{l#z}|EvG}SZ<k+4B@|e90$a-tWiH5RJABX26)j(=G0oWV(8|BvlS^qI0?E~cl zku&atdu#4a0&<_Z1IT^lc`diU(-`{|_KiH>X*8hR7~`D*Zc5C)9+`xE9V2>n#4>GX zAobbz+7t9+eb>9n@{tC&j|=h1I2Pi=HqQmpE>`Y!J~P@Gy2a-+9G{GH8n!jY{+<PH zYfAh`^rRJiC*r(9H4QyMG`<GpxH%Gan6G2C?$`Mb$oHGesa5hH=n~34N53&g2X$=* zxAX4{BRBBP+^hi7UQ%xE4VC4&Hxwy=&u?*W$mD7s+A+qlmH>}wff*y=pNOsikYx@q zIaM?tbc&RX2QpX302zz?pOE`hRf~UQ@Vc*2*$MIFx!*~h^clo@W6Wh8cu)(z);X<@ zlRi!S?|ZsvJ{U+nCYN{$FXz_~a*SU{-yO^)^)Sv<jvnSM4IZ`hq<$*C<G>iSQO5^B z+BGPn?rXJ<xxT~9(&DX1yoXg+2z?#AzBBqF*v1(5fhc&B7MOem&k{{hVB$<!u8xSV z!+_NLHjvg^>*jkVVjcDInTYZFpLHI~X3UioWwmi$8wB3yddc3K51*rB4oDp_U{W>s z&z5zk0ofO40$FDXkg=^(UeL9Z)3pH4+UT>}gFU_@OThn@9)nGuSLMXQ^QraV0g8Z` zJg1|g&woiD{I*(_Ujx#PJYO__evy>#ezEYIfsAPkwq-l3wGI4#h39Xg!<`XFJHN?p zLLFn=k7D3KEiih0P1uhv75{I}7M&jgsmK0Kb18jV$Ak@*kB#6pmXFNOu}|Q`Htzz` z?p6Nv{2G?|HPi(@a*l5uS!Vxmzih;|#<(BM1Gnek#2oP-1u_R=#Q@NErD*&Gkome7 z$T7DbNPAz`S8dg8_Ez;noU+0m1t&P>DFB&Yin~I8|E^B|`c6*Ile7O{n6J!?s{pn! z#(g9RzKo7xrk|p}5^YJK?<!ed@k@ze|Cs1I6v!NpM;&f=p>9*qy~yca-^J;?0>Afm z|NCt^pAc+0S8v;6_O|txIQ<)Ex^Z<aXc<?Eac$Gh*#^(5RpD8+o-?ztF%J6MloJQ@ z=M)chin*h}OdPR!(El6Jx!Z3=_r5^tc7M}#SIggY6_j+vH5}&gP?t#OF#n|v*OBhE zTvzv6&g*;HS@7N7H4-%~LOo-=W?BqhuLVYP=w{4EH;Tr?ZW7Itfz*8a0^#=n$$OzL z?LZ*8nUB1l_np)YI=`c99rgqB9z~nRIG*N#r?kMt6kRC#l0cR@w_+bv%^ztDpDPdD zBKyIsK-SFw-Pk;yzuL%{tou`Dj8u2eYU4gS2z(O#!;H4XZ8%SY9{RWpNGn7c`A$IE zDCPDXRgd=UIVzUpllhqkZqHG{+i~we+bqN~tprG)wvXj`d~CFQY|i5&iS{De=B4Um zj`3l=uWeEf#PJR1!6>#h#vI4N?RhZpCyCKfOf8aF!{B~h-WSL|83*Ka^m8Ed_e))G z&)pl_&}`<q>XNKB&e^r#wl?1#q9q87K@a=jVb%E@keXI$x!pJQXs=cO=lFE{AG}rn z---TLzlB()l>puT->LWPo$9AL0~=3q=bUFe&MlVogzv#UoxzwRx5FG+F|#z_i}Vin zN|vO|?{5Fw*RvlvPp(6(#(2G4-D{{*$H@j}_TzA~<S})x^jQ$daTK^u#!>nn;SnIm zX%h7#n)3&>5Belz+ui;weX+w`Quk&c-7Q@#Z4J9yuAhGnq>o<%*>?eL`*@(+mwJBq znnxd|5XY9z$7XDA!nVeEPoTIrIFki4ISDKi9T8v*d7!5Gk4TI+0LlNdRCp3d9{s!U zwLsc>Aj`jeRLZw|On4ATKgTM6NBI}Z&F>NLU!MW<pE2{HQJ-rL@LvhdJiV0K)ws_r z2Vbb%#1eZP*Af~}9hPYmfz(#DRq^bt3d;(L{n@8;d41#a!Jo(T!6UKG7<~r8N4gPZ z^XFTRW3l?U`$_S+4CwmQ?}^K;?}_K;@tIEp$IX%)4IGop!RM(c6L<P4@s|LGpohM1 z1JV{NKL_hr{{pRR&I7#OX%;Ts@^R-iPT7adUlZCi#$gx-$LW)6CYJECqCc$|2l}3t zvLl|6n2rH5#_LnEZ!H9pe+6VaMY?U(z@D=Q){k`O$a6gQug!fB=XO1u?Qnja_xH2^ z$JeoM_&wR6vTWa!f=>f)WT(MQ-$d3*{(Y|qMqZZu`xR5VKBepZ$|K5?sOMiHef0sb z7;Vp3Df8qLK-$6=<vwWXDw$751Gyh80`mBL^=hfN7RWJFxkl#S*+AM~fYdwjC8>WF zkVE52Aj7#<d0YR*SX+)U(ayE(1k^Fcb|-^Jw7}#m_8OkmdsY1Jie=i~K<Y8Snb_94 zUQ5t-JHN3s^ZTkC4V)X+lhZlOXz;HSzae1C_<mi=e)NXq%F#N7Kx!-K)6MBqQ0}z6 z^2xq~%WKY<QlWE3p5LLHd3+A)7-Qb%g4=UIW<B)1C0dStTeO}Cbn~Xi%dI{3XQ!`f z*n;0ln|#(_TVp(yj|5L^fyrljgXoC^1Mi5YP47w`i{BHzyVj`(a=RGN)o%Si)+}nZ z?q4j*(ZKvH2Di@*BkyBB!iQ}R1JXt*FX++5=`p@*z+9br-QzCq2j3poL;<WbMhzpu z?R(h4&v2~yR5Yvt(q2(+pNG$-uWxwmup~zd$M{-s`~2L$S^Q@{mwcxb<G?6%GEZLu z8OvalaXy&@q@4iddi%WHU)j2E>QH8kZH2(?zKKIi2p_h2w(4q7jycEk|Lf!Q*Up@? z%<`WCZ<UKLv7f8IKYSrE#({2(y6<@1qZm~M4O@8aZ}y!j*wz^PsR2By1!ms~J|XW0 ziUKna%5r&9-Xr7(QsWViZ|`n(9IzvrGv7jUW&f6%Yrt*I(Uj;&0+XtL^>WetCXgDh zct$i|1MG<A1@QAt^Ss>Byf%+!=S9&G1Uk>k@(It0=2L;x*y9D!+z;q#_IOv(@U5V= zjqgS#W4$r%6H~y0T44G;R#fH$3d>wSNg(Yx<zC;(ENaK^O3UxsJbr^+%A6#8Grn+V z@p}%CyuerN_zG@y^sZr&ck;~jNbdg~*H<I{4*ce_BXzj1@VF8~o5uJZZW6p%3rx<! zy+mhB(NT=|l=6V`6nMOclvS6Mx!0}R1KpT`Z0}U%F(B=C%3lZaoa$pB=fq;P#Xc-m zALf5t?f*)hyESrRT{C^x+~jHrd>P|;>IU%jT3~V&>m%_d6{BSmPe!>PocRa=Q<}H& zy(L!>Ag#(L+l&M<2m1rL&0eLF!#9D<)dxV9xAk4ftZk4VkGb5d+{~kku&uGqSXcrc z)B+Q4utGFMfk}<+l5&Y70c5?Mu#UEm)~)gt&Gr=*7gRd(y@oRY8cRDl-FM4gW7nX} z7;_K+x5uSZRfgl9_&*CsJ72l+(O-Q`$>U>=<zp`RGPjlNIcugr<_mn7=Se`?Ny@8+ zmd+kpU*YW3*w-1@)X%-P8|rZ`Sm#HKwY{C%`XXmAE@rmFk8mn(%ySRyJF3GzWZok1 zYm9x^1YXBZftfyxZ7cDGwv+zKfCs9jEHOaJ3Q)%VvH?i@nQkNBnOwrCTYhI!+I4Da zeP;*1U%xB&cjFtG2kftXagAGYwtP=Yt<+MzZB{F_4+5{FGnmmD8B*p%Yen0gK-zIA zbN2)HyN_OOKX_diMA2qPzWZ2cX-R;ua=qnf31Gfc-_cz~%N0OZi=N+X>oFdxw}Xyv zcz!b)+Zy9MFoE3a)8uf`;fyGA63|Ia3x<ithk>mAB+%8G=Qq3asn6p#yGwKYv!9lO z2Z1!xPrlvDoFII&{l|c`<;wHDyQFp?{CT|Bz^k0&#*H7_8sivm0Jq0YY7fy615#sH zF#rrgD|P-1$T9wNAme%wNL#Jz&3!7b>%EbKw!BZbbPRaaXD%3f7#fTfW1$H=tp%oU zoc$!;pkh=psptgD9N$Q(li6Ex@F|cv+HM~?_8bgkdsBhT*`q+_>=_{InOu2}|LwOt zSB#OqMq^uJZvT^049vtBJxFvUfkDJWP3Mh~Sbhg&y&Hk9){3sPE9!eWrG?!J1~}Pw zOvS0OUuUNu=Bgei^A2$KnWkkq8W?v9+@2qThm<*)gT==gb>jO{pzBkA@3w88=Ws^v z0KXl44kuqd=82l7p&es9UztU2<ta8+bOnK2l>$bgn;M@7(vCV*_;MiYybYusf0*$5 zf$W!RZEHBtjj>M`zBdH#cab9i?{RNtY&?h6xj%Q=^zWd-S=}7d!@(z6x<lhcL;47e z)x*W#Ux2hV%Ex0JH#-LC>e1iy=KJl)0{C#BE!r*5?>DV7qjPzVPL9L1;PyF6XuSB2 z0i)1N9d7}tt4~PuZUuDp=`mwRk7Gun1{$~UnDOtf&s^|2VimL*<8?&wjyNV*eU_Od zab}K{_#=t|AmdLQCv!^xn9{txbd=P+Zi37&B@?CYIv{P#(NdlQatzKmM%wrlkZl&i zC&y54_3d?y7lYomt}UCf-Wd0-B;(TphDl$($=Khaoy+$fFZ%upBscS+*Kg8lciQs4 zHREsswl&6aI0Zbe1x8zNs_2LUqtHoBmrs%0mY|Hbm)2?P-p~^2^thg&9{O9CqldZL z0B+wKid_Jo=ZlW>xD5Lx(9M<gegB}H;WOu+o$)gk<;Lh|0=VtRxe#MX+kIt*`1u6r z`sv?ocK`aF+-G`@vF?4ZrB8gDTZOs5#j{G^qKvxPKSi}!-TdBQ5coU}UYO~x$R(mN zJX8880nT*}c<drsw+=}A^~JJoBanIc0?7ETkIFuAJCMAfduOM6!DxQNi8ol`I<unt zRQ#{V!}<PKWC1j_*U!sy;-KG^;Aqx06Gw6uG+rwHCvzEA52PORy~EvB?ne%R?{>a- zu-7xU)DXtD#yBrEg2y=lz>KEw6`~{EBs%=$vt_y0<+AQ{AiLyo<vmcB+xOFL%>L~4 zzQlEm!DFsA<F{m&tX66-2af@1Myr1guB)Ms`FiR~(Y6}s=C8E#Y@W01<7CfS8qh{T zpF*d{0dl_5k!3S3=jZ5Q?v{Y3DFkNpq<<kALO_;9fy`3^7=~8rnggWG1G3HyK-Rex z$T;r;y87F>Mw+y%cMiRB>s4;XM-*)u<FJ@VZp9e7M)b#k)ad||SIhF_zm|3X1ah;b zb0xM%fw?hx{f=s7;Jb^-E7t$Ca^{}zp4g1ojq$mdu|tPCNiAS5nLqyxlE<)OTrsWa zzfspK#ud|w{+o0?(D{ulZ~lYy(RSBMpVa|rX8?JP^cx_@<pV&@$7vwPf2X*dJJbL< zZyyTedGt}h+`jfYraQZBd0#VE+*fL_tugu@2_Dx1ldI?=(UAluHSWi5ml(&QjCQ`( zY3rCCqt14Y>CHKMn5!hXeXLDAjBBljMAN-krac36b7dXVH_>OFW4eD>Hg5W<0k{1G zm*SlN5ovcDEYo%ex_+#Ci<7aveQ$A=<zo)GectY0R^~(=lQw?^q+P4LpuD?Nj`ITd zAF4v`J**_}*%u7!;|#;I#6udpI)j^vovr6}bIS1Cy?t-2VA?j$G~63IrLl_>ZtChB zJFnOox3HTtrn$Sb_p%<&&{ZYQ;PpM7tvB_;_U@gm7WdW)rf=g+uP=6{HFk4;+|(W0 z_rUfg*uE#W?}hDqV|yRAFU9uTxAKqgVe|eMZ)`YnRo3!<*Et?J-kPz_nA`v0HCkZC zW9n6$o4hPJd*Btx*;1g}FFm`Az<c3NHcw9TTF@E6zRCYyxEic8Mt=ctdmIE_!?|o) z+HVHZ2B6IKm*;;N8tKpD9+TPc;+Ee8xP31vyiR=ifsr@F-%CK|VV!dOd*}7^ooBrJ zc5fMHCAb}D`mHj&n^gRq4x}|G&v!4a5p8(I=~d47InTs%^pGdP?f3)lh=$C1(G&;g zoD~N8-j=ehu#Wk-9mxJ$taa_YID6#JOAX46x&04r=f&9o9q)<1aX{K6<+h)C4?i)> z&%8W-{O_Zm;fv$yFZ2m(R&LG%|KxGazIji?=W!nRzjFSgJx;&=mmfC|+z0z%Yz^8g zJN9=3Uke_#u3=K!@LvP){q0ue?tT`lDtE_c4CUNkGAQT%8`ARB)_C%h^{b_x5A}HN z6Eb{2x%-}u0Jh`(o0M)BLOuR=H`8CXOKJTW+VinJl$Qd1rasEKhxoL<54-|A1fIrz z#C<6Af$T$JAo;HUD0A!V3nZVEDRX}({1YJgMj*8peJK1KAY)tsWDJWxDswfy3uOK2 z8_V2SZUvH`^>LZ2=?)<IxKA)oVY{n=Jm0(WU!vzaAlJVRWcwc}pR-BozxrvJ`+Mf! zeOBh?=vSZ199O+r&JSyW-2SgXo+m!7{E08i+#J0O<oc6)mOFj1emao6o3GqqZw@Xk zcYj~KSD$isJ{?z9?y%dBtSEQ*^vo0>>zm(52J-wya@{D*H~%H?CM?+}JI)#3Snx(3 zG+^eOBDSN9^AM0_$r{Ox19T1L9OprB<|;W@%A??^?Id3Z43x5$29>-0UBA6-^9GRH zY_)^%%Yf|nYk@qT-3Fx3X5~wjuTcJq@;>Twe;~Iz9msa)06A`d19bb%dhf_4#A`ou z=ifJ*6Kbge9|@$HoCJ45JovE99k>kJQ+a`}tK;MM75I+1%S^q`V?FB^L7TSUd6wTe zc#Yd~)^BP^xf8{Qe*XxhEmV$Y)>^!WcV!+Qn=Kzj`?ZcOu?yP8hdxf>GOS*?{aoBg zY;VUAMwv0@uO8fvBeZL|lhHP}#xiXHkUni6^Yi#vYWY~6$44vxAKK;+EYo%ex<2%K z2+X*xe&bvl?D+m`&RHj58)F=IQ^4nGff+N&y~MY(cexYXQ<k?v8Ev4hYXGwTrOM5@ zO+Sxwn@!aE9UZ$F3;WBze>N7*%_G4RK$?lge}L#t?=Kh!#`cw%ih@#hGRjy#0^~k< zk@8<E{{ztN3-`Yvc5t5=80Qh^paT%+f6%*cm@D@4Sm-jwTs44CVz4litLTxMtB~X) z0M2zWa9R);MLwB}(+-q*@S%gGPUXQeAO7PI;m3@VT%H1CeR*yT$GSlF8rX~(ukXlf z5B%=O%mlP)jPva@@U#|~Jorx*&FPZ_<G{>uvi#u*l8fg~lsHFW9n*LskanGJV`3ZQ zF-}6GHMV@eZR39O1C(>DFei=BW{mG(SqSd8#)_{&;*Fjoc}M|W19IOCDo>t`bGaW& z?*8@@snho~sk0N1W2518;fGI?V_`Fpw&4sJV;}xh_~#Mv^^3D4=kEjAXLayFn*rqU z{YD_$HGSYUz9x_H9$(A_+n$9w#(17K2Ry9>X1qja;{5h}@%j6UM9TqD;cG7u{vME; z3Q(7}Es%V;^0CUzJ2x)K^Id=7An5%LzU!Zac8qZ@h=8ZqX)qI$|4Px91hOmwOk6Hy z)0-rQOMr}F|0|@<SRnbUKbQXb5=d?zCzmn~>-Pg2ax_uOMsWLB?E7W86aIy?c`1-K zN4b3sUwbfo<hh430p-T%XEJy|3ry_M82S?*YCjuDJ5RaoXRe2zC6=G1dHke*g?R9x zpWg#%e^hSgY!m%hIrG=GjHL$L&RO7Uw2KdYlyMnWt=x`f8n(~PS?)6T2TlQVb9{1N zTL5n7&;M)jmw}(K`f30&zqbHs2`#tdOjCmuXYnB|<Me^sac1B%sD6J8q)k(9`xuSw zZ6DJt9}RhYB<EsW;KN)F1JXt*w{y9OKJtvem6o5i;CB9;-(b$vc1y1jKmCF9o9`ap zphMxSoqLsIQOB4&?!oJ{z>NFYZ^c=s4->w;yj?+tYQTh|9M`nLM3+47YHZ`EID zFR5)l2c)g_@UbzEkLtr(#xn@q_K}*0|Bb?jx(@`>#wxe_YcjUa*I%<NKXbtC{tEpL z=Lgzu1(s>s0^NLB-(@WI@Uy}4voVjK6xxhvyVt0n8$A5fj?Ev>1e6<d#{sw<PxxBI zqwOAwW!h1|eDTcn@Uz77vow#NG}?@6yEm(!KYRGu?BQq7;Vt8-1-Ijg{2t?ZzUY4h zNL#Ml9tTsfeZFxp$MQ2bkDtIFFs9*)d0Gjiy{tUn|8uRSFYdSI9Z)&TX1*;tA{!s) z+j8)Fx8>}yI(ohMOaQ~sK>vRSa=+aPWwaSu2RcUJIqUJc&sk4Fo9)dXb1WV6!R`Gm z78l=1U|RhZVwpO8Kw5>?$@fmIG<EQKKh1|Z2P+<z%>l=(54_QBEt`YzjTp1q_VOFV z*U>0rF7O=J2)yV1<lMKI@jInyXeZxuT=~jOf6UF%;vWCN?eUhlN&KdPan-O4$UHm` zq^&X9^89bxM(WBL3%SciM|CKh6Y8i1x5q``X3-G_`WDFYbRc!C0n%!<4)%lTJqo+L zZr*3mi1u>#gWP4KA)cdw*O&?Lh}&wmUlM=RTmWP0>t8@>aCBW0kanALTZ`{VZ!NYi zj*pS3Z;ZJKf!n%b3&m$rF+#jWw5|YB-v%Jhd47s@?l|h%Wg@<pyfOEC$z{}LeJ{DC zocW~AOpb2m(>H!-t9KPgZxbzkAT_3M6&?altIi^nF%P9c+POf+ak195^E(56a`V`c zWutikwl&6U$EDzQt|N;?M^MoRWIp4-gvRqekQ&F`F4`vnStku-oSk$VTf6@#Z|!EB z)}f9u=5-Rdt<kwd`~`qX^)>oW;`?wQwLA}`{YyFizic|j!|S=@VIlQc<AFLDLn=oH z`)5@i9qBvEoseod7|XP0f%Kp67~-D*f9=c_b*N*E<7^VRJy%5kEItyzP(qfwW0|^l z1kx_hI(8o<s3GTE*K3)1aO2L=!!eTqxBDab7xC!>GWG~Ct^P~zl68}S95W{YS?5h4 z^>)>5^5rWuvHg5CqK+}<s|noBS7NdFOao);?_(hSABQs9BCP`*V{ptpJNKBo&gj@p z-~Y%y%(HBAR&sP!6UXo%aQj|=;2zPGx?9iz_v!L5AafN2(#`}@Yoo5W`?L}5x7Ckq zD{g5@fZP3;xL5qefMM0w45U4%yffBO%jH1!Bc4B+j%Q6@&-bip%`wpB@%)ijxtRw- z*wz?x7zVfXrq;^uihVC{??m<Y$d{~^-yqKcQs3&Aws)IZ2Xyu7vx&!e-0NFQ&0Bcy z+h{JDl-10!SPq_G@?p#w{YM^@yaj;4`(%0C{gUHOOC+}yK-MkjRqXV-3*RN=Jd0%R zlX*R#Iv+m2ss5#w{*~Y{SAAB0<}ua340G>8vK&Jh<68!#rL~Ux9>bZ|dkn4blg1tk zy?RaBQDnY37d2p8W5rll0N!dpdsZ|#Kx#~+WZ#McX=xyH9me|5GqOA#$hq%oAiM7l zAh&%0$bS70NSlmpIW|wyHn3lgz<Jrp=De)vIK-AS*HSmzsYSUl`WX%$&;qWfo;37C z@!@hDNV`?JeUGG`eyr>InB`+0c#YdiwlCu=&@MjoQO0FhwQ}3X@;p8^T0S=C@ezCu z=la@aFD%o_fb?nm2pr!!j!7sp#$1KL?KpfZac-h*zN|i8H9o99nMWUa`Xp)jSq9#! zPoBq^hc9aX5J>w>Ip#sn_tsWUhEI=q(2R*7>KJ33b>KlQFk>RN3UR(5{$B&q{;9mJ zc{tIA|F(2-?61nv#j(B~+@6PnYekC#46oMlv_|%s8X)ua&zGdmW+1uO?{$JFAXja? z3!)zDjWJIV@Sql$JY`<Nz5^}v<9}KF?gDiEwsE{#Mc*F%<W+9we&<J7UCfgY+|HBp zx@bwhhI>P4(X$_xX-5F5e}VFQfUe#==OdHRcJ4g@Glpj6Xkc#UfZOw7@C{t&LI>OK zie*|)pzABo?}eAsm&ZBsM$6x3@Sxjbc8&?G!#S6>zh3=)Z2al><u!S}FRwche)Bx< zVq%S8y)nkx2yXuey#H;CgEu9%JKvI6Uj(|bw((v4(sq1ruzYU>pJ&A#eFysj{L|N2 z>&5qBD06+6bsJGu=ssl}DGql{c1{;&3PSQO<zN_b^Z(}Z{5Fx}qaN#xx#J()o)6<2 za4dUQe0>I_^?2`V-_zlHMaw4?#P^bRe6O>7Zvd}XF=pROzmMm0;Gc1xjb++nK#hAU zeDjQ^Roo*_YCG;Q)*EBo_284V!1(t41Lx2mh_9Q0w0|jY@4RUP{cquUpI3d3QEDtd zIjfm-LM?cVqF_dI<Rj4=0J1FgA<hdC2lMr#jFi0xq#cQMoRg0Oa(zL+?(T1xOYuxl zkF#^$$JM=XYWKp<cbPHO1i$wAK_W*RwKjv>`AqS=8Xx+)4oG`Uxx63ZCp?R8@eDhT zL!Q4q^Zyt+Jmy!kU)Q0IG3p9|hqb`uEQF^DLz^WB)n7<%Hhm@B^z%TE^ZO;#u!a3h zZOr?+9Bn)g+z9TYD45aa>&B-dp&OX!T;b-fcULL<CD83-AamN*F?;Nk_H)&MI>z|j z@C@))$DE!OP7GS;Z&r8F5d)IH(?j?sAbGk(_(wo;9HXb>UhM1kz1Vfs*2XcqWNKEI zyB~ntx}v=*oFKH(&kk6oH3Hl6I~nb?<#(3lcTOI^jt~8!es1qAe!l>=<#%N}em7fw zi%!WCZ)t@SfN%QQ9?P`zfNl95i+0+Iw*l*oG0!vd_)YXdyz1u)EYofW(r-bxBBxsc zp7F=8M$LZX_4~Gs)bb7Yo9drrb-ME)c+ypp-ERU_qAgQd;e^XYUqywK-P2F@n_aMu zHX5jTn~L%IusuF!q5Zb<wkSsr^R^f~%!XlRKTh<oa3at|KU-m$767__-Dk_*a-S`G zhW{#%=YQ2|>!INrK3ityn+a&cSTPo+fKTE}mSIL`e0$9sFs=Gd-$wFv1(13R1_&Pj zBwq`pJ-MBf{|wu@^-8-rr3F9Y*;vjU2mGGcjkm8G@2(#6s&i`F@tXO)2K9__ECj&q zcR)D1BloqUY4uRiTDzO@!ePSC8zJ0`+ld~!=2Dl(xHX!V<Y?k}SPCBJgby=$4jhR2 z3c8r5-g}FN4F?D>=-kQayjwxQXz}{pp#QY?wbY@GG0y2B@VFLyt>rNE^+DqM+=E5S zOdz$LS*Q6qRQR<(+P2t+>#Mdc!GB)t;Zzlt7DV!#cQ2(ze|N`^XN~RuK{ol?U}@Y4 zj@Q4tW;Di*sc`(`#pkg{iH0daYN(hX+;_C_e*tNiVH;PYb<IBZbZE+R&E9}=V{|_Q zJfH<ehyQqtrQ@XCTY$7h%1wWH-AhZ+Z#!dWlcm9#*7_VTb7F;)gbv2`>mP}R1wc1e zkN=Yxjdr|#vo{Uvj4|#8aQoaXa8iX64U3QGfwVQs?fWhZ>C3u*l(KxR0=KU-d?zEf z@WVKM0i^v_IqsuR#C`OubMK>%JOh3_?wxy;bIkEvD~xT8kw?Mnw7~RrV2WtK4=UU> zsUKIk=gTo*23o1JGnQHZARu!$4#;xkq{VaYOQ_Y#$+{d3+;#)_NY_)&JTVpLTky{| zpEf#_=gZ0PpL*wnv2z-lj5@~XcN(}Id+-#E9T<TI`o9OrSpTNHYRBHQcdQ?T|7qCX zoy!mRm@^}1LemaCogJ`KZ|n7+4*%innLFMio`+bB@we&Az(-nhd*lMioqvYpD+#2f zP|ke&E|h#mP@X(nmTx#m>P($3bs|8H%Teb_`3*qkJ^`e=E6<biL(i{p?-?HjWFKv> zzQ+K`&79=*zQGA+p>I6qr2pT_*~k1%+YIEy7~e;*5<JS}!wAf4c&6k(4s=(|mVQaj z5{v@be?B1Br!K8<f8!HV3;}r#me%cq*gmY|;^d2Do8JTJ{~;ic-M)(}+~14!kLnl! z@|@>RAbsqwnhpX|qq&~%gX{U8O+^l7Pxp;3a;@z?8Qt<)TffU1;jtetJbTN>ikWj# z*wz>|r@`ZH;<7o7-6FbE!1!-v`KsSbp05KkrmojZtQA0VdADX?yj!y$-mO{b&O^gI z^heKu{_pU;ncNQ-qD^Crs~Oxr|BT%)F$93Vg`)eYd!_8hK*sSgkm=~$tZ|ieo@&1n zv#0_3bB=e+Ew`yfxiQW!!@=$2clrSwv*4e;cEd7l43PZm<B0o@CUWmClJynH{ZEs5 zmajOtee8%mi1W!M(smTfv^hZ6m&bpIucyB@?g99ww~Vn8Jmj{V9Y3kRVm?(rmtmQ< z6iB}^=3nN>XgTKdoL5Xk+xhZ5*U~T_yjARvV(k81d>)Qv+R;Ea_B_wut@7~YoZB+q zV(=QbwQRhx#}Kc!eLR+F=K)<`y}M5AUD*BV>_5jyzfMCt_IY4?oa2n+YHp4u9t#(N z+wmtJ7yoI+C@`s-{=7`a_&q>s`~XNBj5^$x0=f;(ou=b{;|g=XaT7IL=T83fTIQz) zyxwgso1egw*x#NIUkyOoh04uw(d*i3DcbvYAODzF9wRp7#8M1i(%AYME&jCV4+EJy z|1*-aG<XPcvTVEMlHb8V^59c)oR|P)elGyBd<?cBKSA57D(f~8_tCG;cOQKTwB-B# z;M<g$xYwa=W6VR*&svYC@Us$k0LZy6lad%>;1T42@$8H;#&bH5<Me#3V}E}>8tv!1 z?wf{kW8A(0+`jIMy@37tdGVJ5(pD?C{VekEv(oajHjf|QD%{t5QT&8~v{RMae#+0! zAI~V18)H19!R>g0tKkQ}n7;);+Mkr$ewr*lb`F{QM2=4$2a|bxCf10*G%yVR^c@GX zU+)Fd-dFC^y7skY(FKUvnhR=CW{mL;2e;?S$V-?D@S)EGfwVEoZ6Eb{e8emt^YZuz zt;HD8HXl(R%azMJ^-@muoqENyD++rStaP$7G@nb}K;PDT>dkS!d`8PStHI}SB8D-C zj4kjwa{H>px%+Dp=N&+<Gw;#s=a{D!<(LpgJNe#|$2OZRpE2+R9m0&y;9EGiSSLQ_ zzbQTgD06*|=sSA^uKR{I7CA$jIy*HGJaA!GXPf3?_nuL{|8Fk25PJ42clN9A>g<Jg zAC16vyUr_ec3fEK3~cV?^!=#iyH`zqhGRQp90#Mo?Qsxz2lIw%d*W@;Is|2|R*z$5 zjC!p19od{3xF0m<XyAUZ47^T7nSA-*6Mtb~LVfS>u4t(NQp*w`>;F}`IbM0)TWYun z8vo7Lac1704`0T3y|e^8rUfR(#J_YLY!b{Uj{pN3CB{DiX<q=@Uqe2Yn3F(S%_mat zHXw6*kMf<gtz&>JKLzOaUmM4<$rmF(dA<kFS7!Qh7Pc|QzMKng_hs@k@$Gz$xIUHT zkAbv7SjT+a1f<=gb=x}L7DcyQXDzldMxCR;ZJp`OqRsyW&KIDS`Kmw}Z8VTNA5s2- z*6qlD1TUoCHoliI`(`RfBd=vwf!EVH%#0Zy-gXj!K5F|MNGthL_~~B>KNraLPb)9P zHsl@AI^mLzX`O+3#;A1`xUDtasV}ZS#P>_?TUu})r+ja$qa6gKwm&F;PI*VPIx{<_ zwFdQ!QELF))|%|x*YOvMmfL`|2b5Q09c>_xS}#zZP~H)(i#n)vrKNRk9<8xr=;<O_ zt_0HND}S%6@K1o$dIamjE(Ma~nf$4ECjVh`bmQ@K?4`(KY0G!V+1%{!4XA63ht*l& zVJ$FYG}cXgCV?sSyGeEUP{w-IK<c?j`BlpE>D#ac`pRdu)Hev+)|com`qIFR`mNNm z0Fe4d0jci~%KxN1pT0TpVdu-{CVz`9eM|G`OZ5<aPDx+Khh^#*sbwJ`^-b3Dzbb!9 zxs1hP_a2Yead719j_o&L)HBBYrXIXe3rt^!d-rt$&`FI?0BJ8Nzq*(3-vhb+W97$T z8}g25UDrXaC6~3-S`Kb&P4?;Q#MSp+KGAj<kXk+}75)W~d?M=7?gx^0L~9H_J2KBV zTUwKOwEFwPf0_8c7D&5Y`S=RqCjhDKZsq;44Y~Ua_>FBp1734Ev|85)A(R>8xyB@L z`@5ECC4A#UKf7@mHe9*=ea@UbJ{DU(mgMmfsp{(_wavj;rtJu%&$ga*8q|cCJf3y( zDmVM(SZr&I*V&W7!&+d*dS)BZ5E#(ciES;*qftgX3&?usXdM|Z-QE4r>zzMqske>u zg0|Kf-9=Yqb@RNY9DE)H!Hn+k4x%*<Om8d8pAHh;owpah7RdVRm78;EumAo@!q4}0 zF1<b{M!sXD_~)(vTQsqo#1jE>oMeDJ?+pOc8vh<OQs+h>W9_!1)SWT}|5OdW<51b= zav-^*ZEUA)nw)q&ud@=mzOS5YhA(5qSg5|T_47T!-6dWJ$aoVYB)$kRFic|aIb6pr zkolSoWd1e+X<upiw%CR_IRwb{UjIMZ1ReRV`&|E6XN+w%gWK~<Y>&Q96ng37L)HH; z<+umm>VAL89Qez*-|w}|{e?b<qrNd7)5d~N(gJFv-^gAPyAMbn1SUty@*#Ulp2h>Y zt`SI^tNdLc+v%j++V@T3)N9SV%W^bPV+y>6jlztk;NCcPX`8PDY3~^y`kj>5|9?)n z>bo14CXX}FrZJAcx!_SPFq)(LiOwL9xk>`Vh=a=yjgmaww~yrWDIm)q*jM=bK=N+b zhU0Q?Z3EYZp3hQO{{nGt;q~iiY-5bMp8($K+F*Z)BL?&ZMb|-CW}M@I)QRKL#EL@S zjrNmi?)@t2+QQ?~meyy#@VHg}%WORSUUWEk2uL&i;vB5~0%Te8Ac-Lgp3!)c2g?4w z8p!yZG13oVAh&r1$b1EK+i^hhOM&dKyS3cRnO?_0f9$&(n_D{fGG{zy)<J_YzMnM$ zZr{I4jny##WIlX{OPnF)A@DTv$92~nB02g4kbE<cx$zw;+YAJ<uZ~rI29Wh$*Yfw2 zcS76DWi^oXk5FIsz2~A|A%{87YUM67Mz&FlI>y}lAK(EkFykULPIN?p&JnUa4#@Q< z18H-W->d8G`7KH<*8H|G$2aqk0JrD2a0vSrKFq`JK-x&<cD(E9BPU+QNR7U$voX?7 zCAb}9>PXDx+U{^H)Aj+<FODy*-u*EFZR8$PjISA%uUX)BOo{Qhr+^RJz7$BiLb<um zJk+|+T={GG+rs~A+0y!qf!FRq_%g;hJOUnNB4K7sq>mHbk>h0?B$NliX+Fg$$}<|< zDM!h=@e}&G&t5E;DC76~qjk<WM%pTyB;(r;bn~yrF|WB|%3S1z_is<m^IxAoP`SzF z9B4DfUq>tfx95<+6p1tOV~Ia?vhWNz<BtHjpZkGH<dtR9Crd8x1(NT7g5>agAo<-V z$~G&2+^<&wSw1=}<xc?Fmu~|(54;cL`bj5A`L58wedRzPZ5EIk<^j3gBIOS%Uk>E< zRa=+L-nzbr`~5_||A0$hgT5Nj-5HSQnbz;BoVlmg;@@O*&wK4P;0u8?Gmew>qT4xD z;tDFpfN|}Y1E%VjK1J#b0WxR9fQ<PrAaj*e{;BdFKauqp!w3D{sJ`SHu%~+s==F}p z%HJYS-|!mnn{H?F7KCqOJXZ*VFVljr^Y&BC+nJg-#TYP++%YdRPm{cjJzeUY3S{2S z1akd{K<4c$<wv7Uwtp#*<u|GibFScZ->Q0^?*9jP?EhO(&K%J9XtZgJ`_E+Xm=>5E zB+ijI0*Vn}8u2r>og)(aK4(cxGtZXTuL5$tiOK8SJlRG})JP5MEsYuQsHHJE9rLg1 zJD@={g@Dv>D%R2N2D+L&{u93LcgSxW&lg3o-WYS$2p-e|ldJG~@O7^E*$YUkQ$ADq zT;&DDg-&q+@)kC~cNp&OE2n!rn-;$I``=gE+Q-;G%tI4&8RIo&0(>L~7tG`(6O~*9 zXG(5@mk6eTtQrGm&X=;YE|9v%&5$v5&xJCkp1erv9&xeE(LVyRKMP8_I3)$wJDmeX zk-~7Nw0TGB4SC*?T6-OGnCBg-W~@!XdSlcznVdnwOf2ckpl_D=UNc*?egSmH*09pq z!|E?|c5b`~&l+Cr_Gf{|?{(&04=ua&c6P!4{M0md#{YO1ITf$x*|-0HuH!z7*#-Y| z{vVQ`?^DnB>FfXJG4?&i&UvO9bIB6y`^FB%!u&YSJve#7%sdl&S>_f8$g=1vnFoD9 z&P~x5Wghea-Sy84I&1pMv*6%tGVrXF$JX|h|78L4JTbAdulpY%eju;=L(fTh>ZQK! zf2L$s2u8q5vEBjlzcu1$pZ{_aUoGV^)Z_Z3`iZ{K*WrK9WK>TA?NXl~^*BfRv7N6; zme*b(F)sMI)cN>IiE;59IiG(O$Zb1a-PfrC-tk-E=lrg(!)v%<^QHctznAjWK%UEe ze0^W15}1rjOraYjmX{Xvb^4=x(#@jzG$5ZE*rdGgANx8~^ov_0)_*P*owauhKkQzK zJ$b*h_v<Cn{`Elmz4SpT@9{U$vn`N0dj;qNo}85Ou1lqFjso(Y{u{~{{9XK|f$Y22 z9>Z@SfqN{I?Ir`6!`p#;_xeLXwm<oC)dM6S`h@U{f#kO+e;mlZdR5D(JSF<i2eRG< zAoKl&^3taz-r+#%sROd!2|!-wH7frI$nExiM*L0!vfhP2UR(c4`63|4-djM9xh^TG zw-b=tPf~t0kUu+30vYEAK>FXT>q{}#$ae%X9|hgJINk5Ub8;a)2gvgd6aP&(-sapZ zH^=-slpEuI6#}>K%llu)HR)^Os~47OWkCA2?*YxCAL|~_BFo2O@EW(3?EW5q1MT9& zHn-t2Y_M{#?;DC2z*h&KI}4z$F<v(Y!R<IBZ;JmoFuG2b*8tf!JD`j<OzRZ%E_Qks zl=3Vq)Fsk6%>OMk=lfpQFbV4Qcm~b%$EqBi?2k0KeN7TA?1!>`ZmwSK#MuU87s%Wd z^eJ}weAFY*J<=^)oa~ay)#Y_>rS9hTbwyCe7{^{CctQ)9ANo#r>*qu}i;kkMqU-NK zt}8DV{uq#a4C>NW1IbP9yq-7T&;gC*e{89-8a(cL$&RyFzkW`*Onj~^7Y%bOgs%hA ze%n`g1?tj%3Cz{#bv+k@Kd*aKrhl7rG_rq_;88k(nLK8;>WBXg6Q8g37Y&!9ELX#} z9@k0bx3sTe6zUk`>HTPOI)@nz=|TORK(+Y%<p9y}29O#~!8+PSz+6p(Jv1earY*ci z=Y53rIa+xP*#sW2w5E0y9WkJPds!|YEE=~1Qe%8a;n(aWe8JBB+*torEBwVFvVJ3w z&6n;X{5L@ICzLzzK|TsdJ4<;K=;k8NGghgE=#zGyv1)HU#}DVNO=!y)e_vU7YwKqf ze7lL3D3Dr%K;|+53<hM~Mj+R99oo-5pQ-_}&QKuZI9bat0kYm@TAl#XRw>^I<aQ<M z)7;y(pP?Ro8*=b(zPJ5dx6hpOcs&i;jq$j=6x^Qs0=rAzoROOIJtQv<ko$R9%fqP0 zeJ+l2p2I~H16a@UB-ZnsC<aVxPHTrt-SdH*d#_Qx2*~q`Wy&i@AnV{)0@-#9$iBQE zNPAuRXF&QWhYy~&)dE@1tM4+m|L6A|`--ttE^66V_2712#rKwYgZoHd#ep2dkx{}^ zSkFAB!PzGX#R%%LJOIwTJHQzFjk#O9r_|kPFUkEFAh(?ibdQ(HZwGQbe5t%pwG08$ zCMrJzNFSF2*;m(Vx#=VPdNz>zTmLD4`u_WfIcIEh;M*AIq^00-E#Tb2{5bndp8N-B zj=`DpxMEn#!{E$Y0GL9)xo!1+Quj0<b2nT0d?5RyS^2R+sedVucDwRNfNb++Aoq)p zwcIP0i93F{T&{v|W6Y)R&epjMjgdGb2T3mdK;|-oa$-Wu6X1+H3XCDY%;m}hrB46R zlFJc5ZZj6hT-Gc93y}3+2GTmK&#kr1J%G&RI4#Hbv}5ot)|uvAtn;Be_j}shWsV#A zT#7oz=zAr2Pz%hs3Dk-IFffg{sOj*7CGM#}+90fBdA?_aDihF==ej3|a$_7*b>Q~1 zK;c7>H*LE&mTAWWU0>GwD`wD-b=|YT^05fqzUBxW3Lo0$$LgaHWg1VbcY183pPYDd zmrY))|J*XRTJSnoefIn=e3-=J2gcOj3qa=mRpZ}!FU%CQWA`KL&$0Z?1rJ#MGW3HF z<4UOS`;^<yjxM7gE0-C|$0l$)m$9+^93MXPu|JS@pmO^<wf3&oJ|>{d7{|n9@ER>J z<I#UO<|S?O4fV0X!$&NSk7mn9GLMfmd<5}f97h3Zla<?XY|P`M`Y$cx7zA#|kvIbF z;zJ(;xeTjSj_d8bzm0B0I~~2=j$0ZM;Px0yj}yN!U`l=Oh-Kz_cObRd@vfr=YiyJ( zZW(VmxE-%^WIy}|hqU<!khWYop6efj-$l$cM^rwyH34nd=j7bKsBMPjZx(ov4Z_Sg zNyDEXAI5MzkamM|<aauLd%hz3%SQQ~;VSy%{fzN?{hsa;vbovEox8I!^BC*{uXnv< zHAIdQ|8byiyeyvyq{as2%Yd|u^5Lk<^=Im~URr0tpRLX2M(ZL=>ykWL0~1AG7?@Ju zyG{@-!-33W6OfirzERijs@r;L4cyalt&>pK81q^WZs#>~wCM34gE>uo{{zUpZB$-| zI<$z^T@2*<e<=6Tx^@e+7Tw!YYdN^BH8DxFrhy^oWghPYQp;lH#aKrRXx#=N*Wale z`^O0EA1CMT9}V#3wSUad(ZzXm0l0lUNKHmRA1``N#4>FvkowHMAg}vXlbYe%<38HI zyPRX%J*R>OW5rll2yS0z_)nI&(kBVV4WgWJhJn5lWVs1Q`^k^wyzCYr&yi9<+Vm5p zPu>m7dD_Q7w&C9U<y$Pwy<dHf>M)OcF~jfk&YhXxCZmoq_TLon5XHbaF6cKD!Px(? zX!vZ3XxtrTTvt`vd3I@Gw*o{EHt(odM8AFT-rNKDwiL9Jvux&xl{tQSKDZ9t&S~;2 z@sR;0)!#5I(`Epv?-H$J{@=ZSp7-vB?}wf|@4N1388tIEO=!m$$3+}`nHHE_B^pFu z1jw=g(0{hXQG1T`a}3CJ#ag!~(9LC4x7m1i;79r1J+bP6Zx=&HWBpI6$Gr2p$XSxj zJHLwwgEz7qX7V12O5Rf!3;KY}Y3d@uka8dDvF~Ew#E`B}T`2W@%A?9-;2G_otEbEU zc-^^joj&}$e(rZX?*O^W^l6m!qk!bk0%^5Blm31R$m7h%K;COQ?0n&AAhnFUK(4da z0C^vv?+m$TGaktCcNUQI&mXn?KA<~pCRWX!SpR}^c;k!CK~1Ziedn!qc3-&08Pfcc zGicdb_t}gGJf6+){T1VCLZvgIzPoc+V>jo(rebHWd0n013%g+Z&dv_YikwR9-S*QO z|H<2M+;C1AiP((sJJm_xllWyE%#54Jxs@(Yo})OuQs&}@N+%qX{GNY}^y6G0^ZmgS z!h1a}e8qFZ&)HYDJ$}DRx4#m>O4rY82TR)*{G`&|{$n65e5%yHA4n@cO|}aIY14r8 zceC<s&l3I&korGYzVvLVzYStw{kX=`tlYlln({aFxt>>d6q!@r1DJztjd3h40UxOa zCa1w$MUM~2vgAUEGX|t(fYcem`tU8XJR8U{ej||k&R>Dt_DLZ7vOu?;2IRhSmbPJE zGgKzCu~9SI2%^jwebj;1Xo1ljxUJHOK@WA^r1}>rw|&gW<70v4V^JO-arg+~Lmxi{ z(#}!-^?S!6+2iO&`f2a_|Dl$#)q>YqvBho|Um;*p{dK`IWA6>59y`V`+A(9p<gv-} z6$7{P7+wS)+U9dW+FB1EOY`{HVENdX$43f2qWDnvAAz)m%JV(jKkDK3^Ed@{jB&g* zfZMSJ?+{-RVDwMo|3M)0xDH6$8|&PBy6<%^bLZY2J<iYOKLTCf^E1KUw?B@ZV&r8h zVl~ENThUVFmx+U!eK2&l<S==c<TMJT`TinvLuRqe1z{lPfE3C(Cq;m9&HJ!BW!wFL zoJR&FWShSMxy|u^mTj&D@>u)<koFnS?Kh8i^38zWww{??fc3^W$1DQJsjq7$zQDcE zi5ThUfqTU78$j2u^?%Z7`m^qR6#u=Y4<EQaM*Yo|P6U3~=C6UY`O58md^EPVeN3}_ zH01FShmRmW^l=7|cBXRsH$02zBhPPmR$6}6f(P7|vg09nAC3?B(9dij?N`ceKjn|+ z_cIFR#@H{T!EHaG`zxKaw!0UWX$J!7*UniZ{aF1Hw|p!FxBJES0QyDSyi|S6F+QyS zoZUblIXTN+=KjQSUH(`$E{^L#;1LRknemocBC(`^arkFEn}D=0l#jtW)_)A>#%pP5 zM7z2EbC->lxTPhLM@#Up(tZT!e^8b$2hw*;c_r4-_R_kT%ctYLpDS{|`zl@rJv=6k z&-uSdT{e0GsAG(Cc@Vr_3rubje-jO9U`+je4CMObP)1v%b@ClkVn)YqIXZON=xDZd zECaX4MKUQmGC-d$4+Bz15J(%N<@T5_e!OMh&@Z<OpxhY8{77(n%ts$WKj6bY-w#L| zt=#q#@$fUx@)OVF$NzAplhAgbQ9mn<pFW*u_bKfDQEvaPrLR2yeO>fK%a}^Q8(r1e z@t%AH=U4E@m};?1y9Y>)m|Fa=^JHwFJC?ncnN#L)R*rw}Z}Y+J{Vni!@#!e0mV)C$ z|9b+t-|nY;5s-cLv~rBGR{xFaJgH+n<-+FEko!P~R9e2Ej*a0ew+N^ik2{R}2Be z(93m~0;w^k`u_&xcFS~qzWs5Y(Wv`i?!IaEgJg~_?vE*Odw)znCK`OpFkV#KX(*%r zD}c0@w2ryg6UcL~C$Stk`xf_lzK?C0mtw@T3R;cv8Pdw9Fs2zW%=DM@jKrRNT5=Hp zvX3H9NqGdEIZc4G&jVVX0S1vv_Um0h+F?(~InOE}w>j!b+2%?h`6ob*_3q2XM}Hu7 z)F>aW`~c-gD4z+W{aMRj0#eInAkWXbKnr!?-g2w|4NoCvuY1dzu+A9UbDnN}PL+HP zaXu^UCsv4#4M6(45$kC816}_fzlWNHcH26)i(<Vo=BEifs0F5<63=5kT`7K!1=6~r z%=K%X+by9#>l|X8<zoZ5eXK~mQ0WBlVVh?FY3C}hs*rbR`km}IP5f>v_zZmY#rI6R z<$TX%akHP+qpmTIheq&CT43VzuMxkQ)!0v0iI#n^OgjX~dPe}=xZ8VQ#k0`%1Kr#I zpWot)dvD$&{~Qyg=*t=CBV&9%zi374XIO*lq`y;dO8-ZJoTD5d_m?Qvb3BD#7mNd0 z?gw(b#NViN?`x*Pd2Q&tCKv~DeFp1!A2<l)?Ym@JFogBwX<!KBl4GvqC8;|O$aT#? z&b6Nd+4g~JrQS3k?Jgkey$0m^y<e_$pT~a-$QTZLMKsI?GKNJ!&S}e(Zvb*`>i(*% zuLW|u5kTs>3CI{;1M+&a6SR{L0Q!J?0(md^cp#tuzY54_+wKN(d-MI6*R#@zmH*p^ zx~JP7%l~QnI`=Ie?^mJkjB($pf4=qeUxAE_gUp9AZW2I_uLzL)PzLKcE+asW!_WtU zF(Au*K#sTAKV*ETz&XA$8w6wT%lb6db3X_G`P^#)>xn_EC#HbDw?xZJK-S&nZCTd@ z<i7JHkZqT(mwKasv`c_)n?SDb{*H|GCxDD$*LOw3sX)dM19D%vUHQ{M?sM-cFL_V4 zs{nEz`7Mw!J`d!+{)zH3#K1Xh2$1u~I3V}AD3JTyEx_D;%<EbI`7i!&AN!{J7{@xt z%2MRe7{80DUDf(H;`?02OY$=vv!4nN0ohL>tS3gXp5r6{<haOSJ<$QO|HGSftp7{U z56<;TVBjNZ<18TUB_PMnCqV93L;fl2`)w2-I|Dg(#sb;KL?AU>r{zxp>C^YI_&Og* zZFef)_Y>K!9?0#QfZQ){26BwQ0^~l>16o;L3#6Z)069jl0CJ!C3y}4n1hSoc?<XC* z8sqdk`t3mj+A_xY=Yof|fcc_^@E4*b1$5^aAam$^iF+#ASEDz}x?_Nhvk}NTmjKzu zU0VJukZru6<qq1S)u@lr+V*7S=6POx<J#ic=;RvY;J@^@2kW8Tm^=5r)cTo-XhD^m zw@_h~<h)aro6iuC`Aukf0`)i!Gbne*zG4*XS?&YpoSjC!0Q!r4G2<&4drts4*4|XU z8OSkSiC?C&t$HBG>PyPgKyKe1ZP9j9jfVp1V+xRCc!rjnzO$ceAGP-T?>o*<jCBfp z8{>GN4<6S7Gv4D}B+g`4$$bRKu^d!%ily8EXO2^-pGLl!n?aqW?rA{w(`@DQfy`yI z@<R171W22x{0t!5yd20rxL(V>o-G^sGIH6$=L^HAYmB*wfY)n*i9OLx;z$ESh?6nh zsqrpWUW|3LfYxmQa{D`#dud&_1zJm9X{ogu+}0ZDA^PG#Uw2tP6G$x$%9jCY8Rf%K zm+Q~eZE@ef#eWvggCBFv-cjV(a`(L)&D@VN;3MfA_H}-Hik>KtWdWc&muh(!$egEv zDb@HfkYlM&iPYT%$Zhuqa!j2Cq^$*V?7RkK8|J+s1M|E$q%w^-^Sn3Yzp;$@=e!d{ zOvcD#;P!uuC(0yO5k)`H-M7mHlYJzo8I&`ZVQ}`X56FEcQ7Y>rz;G|ga|}p(7s&qj zb8o4;2FP)6g-`l#0g%3WU|aUz7$E1(Gk|V?RdnV5qkNRTvm?(Ck9}>ZQ)S)Dao_Xa zMtMi>1yO4Q+Mt%XK*pB>+V{H?eI-7uZef9b5(l?uT>LD=_Kex_4Raa^*me>yh>x+b zmPL_s#(f)*c2tG5cNvi5y$Q(mY=docJEHwv-SF4F_gRh&wlx`bjIm!Ez-zRC`spWD zDLTSHmIZ(b#K?8e0_pn`jk!?k76ZB7*3_J%i5l2mI!6OFt<R$&SXG60WlNjguuSU( zbbVOA-5C7_;`aFd(5swU*zeP@tuc=8Ip6^;F!@OK7ymKE2#`85z=&$P8p!&00-2wO zfwX6UjBypv)o$GzT}AEIy-{afRui`^2Dketu@&ZeeAwndAgxw8zPD)g+nUj6!~PD1 zdZ$^w8o=w^*0OVTaBCa`tHswBKw1}+X*?~C8w=^jiYI0HSOsn$4?^1@m)d3*EYtb` zT_1VgUs?WU{&+^A+!%8=8r;rZXh4+{)wZ|7GHnl_>&qHjP4we2wm62^*NGgT+^3S@ z_83b0rG4MFRZdKOrGV^%w^hT|s6!sqy7s<Q^j7QK)}qW9;~fre$D4uAAU=%m$3WUN z<v2$fgWqeMZO^rh^kuz&!tB3s%jZIHyFdK{F+R5wpO*k>mn*Mo<GJ7Jx8axHXN_<9 zKTjPkqei#i(T*`511E!X9;PwJ%tdUl=n5(NfD!2Cx*>yPKi&sO8v|td)yj9@LDpXe zq&)^?yB{m>iMCkZoO`%$(};8lcTN{(%yZ+#>k;d>IQKBI2GEW%9!KlIqgr5M_0@{b z)Xsu2U`jPEs*zZh0BOsB)b8I=_&qzx`Vwrz_V&^?egSl2^!QEHTE=IMq4v0mspy?- zOq`di!CTEsyNLgYq7N8CoYb`c5Yc)Nko+Pb?Oq`F*`$`^zQT0;{^NCXRn7B>S@6}~ zeFf@dJBuuxOTg{(hFCy+hk<d``U#NMX;;y=Bi1pu2W#CEfz*vTpvC`T7QYK^*8Cbk znK6$2k>K@OVER8X4D-%z(&k1W?F;2?{U=qD{yO;X@s8GG?s)87pQD?+_`TMB9NS%U z2V^XMAoG$0#)r%D@gt;9uLCmv+kkHFD!Na{yUSnC_wMo-d~NBw$i3>DG24tbjk)KL z;PzPX?J4o3MheD&{yjwRbRcaxkg={-z8mT=o-mMOu1R^m<NU}Ch^w7vXv3&ujPpeV z+}^j+dyAF?Fbd7|zvEs~_7sr(BjtOe4)q?R+e`*>{V$c@q8$5LtKTA~sn@!P$9%HA z;`g&UnNJ^h5J=;C`iSg{<IE`W_cV}p<vzj_Kw3}KVciKp+BD^OMyAE@x*O1bd&m0u zIhr_T7v<5E*-!lVga41ccL9&8y4uJ0Bq4WT5)w!tmjS{}k&X})6?H_=sHh`?qGBB& zu|Xq@A=sd3M+F-dbyV8orFNv$My2hjsHmtTQl%E{RH?;!>1a_=sT~y+E8742p1n3R zIXT1S(|-Ma&%f(=&b()>z0Y2keL4Hw_MnZ5uAY$5<{^@{1xTAvhu!}BAxS&Z>d?fa z;=@!t*v>uRc}+nw@$esoF%WuL_GduSiI7>kY}fcxalCyjS!C0(7`*-5?wf!%A!WV| zBz<CZ$TRRv>qO=M13EK2gWXrT>33d~X~;VNfe(wo#3gc!w$m->2L|B><MO?ub=s9c z@?Qym&?Md8t^ksL4`g}o3GYG~%x})|eH`vDY@@&5!a2Synes6oHjD&s_c3<7w$mpV z0w%=9dyds<PXlRlU4!P&I!^nv7|5~Zc_3*tj<tMqXrG<Xo!&k(?VI|Er`gVaycN8? z-9{#h?Lg`cl0QN3Uk#*fHwnK6NLnxa5aeaO94^P&-{<pv1bfrw@TNaCLvD!uDG1&x z0@H5dCt{u?<wmhj+5pTHn^n~1(04c4biD@N9s~c$l`1J^?}vTT1fZqMcHQXy7<z2; zfN_u+qCY<H!$n~H@%YhqrOb7r<M&3#ZvKNLLVbHV4`6&*UmI-pYzA+im&8xeenx;k z*hXKEz&`Cg7HIjtoBtr0{t4{*mi~jpwAT>IG{nBP9K2ryCXUf*+U_8bHYUkW(fhBQ zs@v-qK<3Yys^z}}GA<QzOg)hNxx(A8_qNkFTOC(zPua#gt^;qcV|6-Wd79SQ0wgUE z-rhHwaeR8;NZ&X07*5m4>)Qx;dp`+H*ZQJBFZ44emjUVjkAS4#3;&^{+x^`_TWtOo zf7;dGGVpePLuX)|6a8NUNqLab2D`u0aeTUu>HEgtP?}Eq8wPLpH+iNm-*Xnu@uDjM zq`#j7Ne3VgdB5bX9MOBph~^SCsJ+zsPA1cua*IEMjYE5?q4@9Qf$dqU{0jTmh&bQ> zhtnA=#%2|4HN?KM34A`C1`${X?gctl0m0}+n)d_Qh856zww7HQ)G_O9)qUfq^K~qb zY}0v90kX_aAm?8X3vb>V$~5ore~y@Dn0L?@+S-mhhUi-ed{_j=m%wG1UtO$iSbvGO z?FArh>aj@keSzd1=jS_MN80(}e{-LH@?J;)HW=cybrgJq2#lY;#o8A)kh1udnhyh6 zXMW*5K*lP0g?>H|1(FW}*&e*W2x7)~Z1{n`&)*!<&js=?*LBzl<T!XA(284z`w5f3 zK<xJMe!`yen|9oWvJJ6a-45O!lh_X>20+HdC%ghOCef=fr$oHyL-P{t+jPk2+f1PN z)`a_Q_uKEcb^P<&_iazUf75ivj_+(lVY?yD@AALwKDS9+r~Qut8M_dWaq%tHu}fa7 z`6!U>CjewVKk~6mCC9~(-@0Z6CJ}eWba{uam*H3IHn;)EI&8j1KZnmpS!|0XK&uWM z?vHoC=6&sp^q+d7IMxvPICy*8iQb@X3<7C`H>~|lg7;i6egNt7aLCx64wSr3<A`Tx zW_xKDW7~i{hFIQo@OHZbH)^{)zyNHbZJU9#<4xhsniqXk>Ra9Q)StG_#lG&Fezz^n zMvg^gUv(dI<2P#?y~{KzApMI#PQQXc&rRC)JAkBhK>CmXGS5yR>!v62(ntKSUB-Ju zt6;;oJ*V7+G7YgUZUY|_0qvwszMp8@6F=6rM}PtN%CyoS>9lGf`L}_LK`-PX&6Z=@ zg%1On&zu(rWcVhx`D^&f^Wv=Ta}3rIZ3`ohA;xk!__zp+?TK4)T><;4bKou7rcIDp zHuNi4(l1+9l(yXiFa8(we+$>g^(e;>+tFn3ArTlG{Xf%og@BYrf!?2L8>il()3yQ` z*BwCS$&zD=fR-<Ee<M>o18Q`}c}AxB$Nx1s>z!@11HKp{zX80x-n}bz+@gZ<pX>Mq z!CQS3Jo}v+$Z<WoLehZ=iRm#BE&B|}Je7Cqar_A&>)>S|$%kWjE@%c?b<sP|@m$*G z8m%gA^90`4-<^C<=R(GWe%y|-Y13LDZP@|z14)$AuH;?XUQ3wv6a1z2$7)xQvz^6p zJY&oE1b9CnfMbb1Y=)vDOCqK$zw8&f{0D(7YYULEeh0{Omcg=l9MOKAH8~4D*sinM zATz|W7J(lw0^?V(6Zb;k19kijNZKa6(>ZEA^<<dqGM=<;n@#Ud@C{bUsd$F&mih;V zVFUGl1*BcMkde3h=*v#|XnZwD-Sn{;c?_}Lg}~c=R`+V%@q4ts2+)I#I*$U<hjS%u zK9JNd>9DEGv+<1%HkmkVPqT&XEGK7l_xrBD)_Q}$z_0ZFJwV2x2r^QM<T2y^%na+` zbfWx!_qb#FOdPrl@%kf4o)brqX<ObWv_FBzCC)&`I03{<71sVoK+?a2U%ghh`{#hH zhc|?;!7=1V16j{U1F5G0$TH3S+TXbF4+pmMQM3o*@(s>MPRE)!Y)09Jc#hfuKFF8F zK_(9Vb=t<TU|i7sG_EZqM#n#;;}8b&xR-(Sw-R~j??gGqsZTcMX6}>eebw}lrO0oH zWv>Kp@1L;^+MW=Q_9TIkXSE;wu}|BofL83~{F!n6yS#sYyUf(?>9aKszy?F)JHbaq zVCpIHNA0s4NWUUL`soKUPM#MrPW(=%9rc2a%dv5NF1!;+dI^{wlT7z6it{BVD>Bc~ z>XF9~^^XT17J;$Zy9wh4?4r)`FKHVFK}OzHTA)htpO!sm6?m;L{A2ug4YbShB2^B# zdlsIe`qTe;1MO`$_hs`7VDq<hUp7-YreArX%Mh;({ow8AWcLR{EI<7~#v}Z`=HtNR zJ9>Y{)*)6gO+d!vO(5&E<-H+RoxTjDd<u>swE&sESjsYE?sqcGwHFos=h}9rHovcO z#ylTBuY@m#IHqp_A7o%broAQJmvP|(-Tq@hQsh0|M<Ph)xy}n@Kl37;Z8wSZNJ6*E zg17atgMf_v;CFPM;JbP*ICQI?E4~F}T{KA9bAX(mT@K`Nt|2|ukY<JZsV-I3k)`@B z&sOfv994)l-*VQWEz7ucNQSzL7hz7B;W~+P%e_grVx8eSi+=Bb4#v)1tmlN2fop6r zb$_N~h-|xvS-8=EZgp}z=aexd1U{|ATwW<3HbXHZ`$)&<!jE;i7k;ASeHD;#O8`ly zAwPMRMIAhzXwIch?>B9N9Zu&%CmGun%iD=#46$t#_Z+Q4BA}17A^f?vDFzH69+XYT zKGT~eEeNFC)N7`D?aNXAzV?Ak`RN1eF@`b?aXi`#-u}NX$uG1I-hXPlqu|{;w9S)% zq?>{CX@8_KHZy>hk8<pVK>B!-q^}U(J{KO}3qIQB`;CwpqRlPfhl{|(Ik6M>y0KBm z<v`Ny!rOI39CU23>4-b%2!DlZaBS2u9Y{J;c)XkFxK?*vZ}?-ozO(bDJxxYlL-cb7 z_y!ReKZF0$dOg6H=zjid9qX5Yw9W2sm^RpAy2hp}2HqZ1AO58-0zEAA0nxiwc)O16 z4mzsbUHz#8Z`XkrC{+M@sAInMuXwng6W*?4I*zyd5whv%aL^Hh4i7f!7y~4Y7v9w~ zPxV~Ubsk~XFd6Q!hDk>WZ1@K6eEz47WgBDvj>3LJ{HA>e_;GApAk)TT`8r0bpuZ*a z<n_1ubRt*F14!q1rvzh2Cj|sU$QR4f@gA0~(=G$%BTsdXE^`u)bPAC55&^Q!uLg4b z*a)OOUjun=oZCa|Tn*&;H%n|83*`05*+7<KzF))Hy34nRYfDjY`}pml86&sgSVPpk z6MRerCT593?N1a)SqSJu{Akl}B#xf}Nyj6NKDGkWZ608=IoxO8ZQhfQ^oc&KLD`1b zE)wA5A}~JrdTD#zf}x($4uGtyD9}@+eRu^(*|1`r#|vaR=Kx8Mh<pf+VcR)b%J@Fe zih<mBJ;dR?q)lar!?%2$`%TJY4A~}k!Y)JXOZDYw7jznAVi+mc{(FFwMap!1JU~(a za>gTJcwi9mW=yhr>pWQ{x{Y5BWZsW~tiy*(b<DQ_S@y?3wyUp&FYcrH3Lw*)fuyHJ z{yC84ltE{D9pI^Ww|foVzW+OQVA|(&=rhFj83G@o6CeWZjrZ67#49z1!P9@Y$o<5= z+P8~=q(drn3@-yR?~_2b+c7AE<(?;H{R&9=Z-Lb1D(s;OU8O49n-z2gFqgEw>%5)u zv7KY9`lWneoa?|h14+gQzo);7*JvGsYqgD?K<XTUG}2K(@=o_iI#6c%y^u`%W-N=Q z*~GTA0epj{C1q1`kk%Uo(oWCd{`fvZ+b{*lxScC$=ZoCQwu*|(w$UDz<3k=pjJF@W z-JU?5w#Neuz!t{hWgu<)tMK-@!eZ*S)yFEEuGQd&i*i#RG3W?mqmG}8-c`ce-_O}b z9S-m6l~s22sS3Q;rYAfEV<$H1xfn>gQh2+bsW{$A&mx<i#SVHrL;I_!lv{{>QXe4o zI@Q@0>dJ5*Jd>Pt$+lG7Kjk;u`$+KJ>T;OWC6F<X0clGZ=o7ozfNTpd0@+6X24vo? zlI~>pV(8kPeJp2Hntd#Pt%H5O5!yZl3=G${Jp`owCxu5_>vFGr2X#wZGichkXFw_@ zoTqrfj{}lSn~UzJb%udK=w&=s1DXD+*z*sO2PJO@kohVztce?jp53jRwkFLk)>RC= z{XSH3WPg<qJ%{bDZOnm;dS3>TJ`^5pw#yohWmV9h);H4kO>D*^k0IJH8GKL#CN}Cj zT2Fiw#>oS;?g7{*d4RNK6_EK~5Wdo3?aGz3CvEM@^nGK`Mw>mafp51orRpl?)w;t# zFKna!PO&j6d_K}>&ow}%qmIUwWEam$KdbUSOhdJE9c8LFw&5U-F~mL>0&gE%)M%~O z3rva)6$fgYh5$+X0WI4czA4&3yE1&|kWAChKC}b8z0Q(j(09a!)3Hx_6KLskSU1*J z1AQEGcC$`pGx8Xs-|gU=MPS-WV64^=272rD{`)|t7eGcjOY&e0>9&6DhP|*OX|qGs zcDEyRu+|*~`VZ3kh1jPZBY>n!B#*t{_)wm`ukg5L$PF>>LGaz;J`R3kW1OD?lKv(< z?oT*Ae_rf?zCGNZ_<uc}{hMpHtb(tGcptcG;OK7ewMUQ8aSICifb4flFm||}KZXSZ zK#uDkAg>8LN9y$C`2N<rUopWjkdG1lK-NzJ<#`U#`z=7)^A3>fo6I;=&&$^V^TEFa zWZ9P<rq7EH0of-00pugOkAN)GX${Zy@X_9v_myY-*ypyPEJGZxiwAW-XSk2jwnTl} z#vsu07Z^lrxW5d@Hhd?Ll#4XRxVPlB&*l8klYU;M@9mHoVp$>Z_PLyALVtYwqjf$G zBt0X%eg3}I=$L~4dgHkqXwC~;(sa@9?cnWWPi&IblLRIw>iy%fPnrj$%|8?VVIbpR z)&(t9sW&WnUT7W+e{E|=?1`tXj6)d58e+Tb1m7V7+CaVD25naWNLd&dJVx6z@mQU< z8OS=>3S^#-MgAqwvfXyR-$9$x&iAy3$9d{f_RzlJ;O*m9<ao@vkJIIzjeXL&KueFq z`;Uz%BYm!CbS<^%S_ZzsDlP5&eFEkYQud|TCtU>;U1PDP`IPiEuj3hX?Xc-mL%O%W z_++#NDf>3;lO6_U(ls7sIQi8Gxgo}|#YxwRC?6ZkzK#2!hlRIaPeiFFt*+AdO`G4G zrju=cD|q`nBYv{hmjtSl^!`8~>wQ1rM>7p{nB=wF;vL%67E_ngAvZ*y1K{oYy{F*( z>eqTN1d=Wl-advbqaNG!;98rG_2BJeNR&FTF|OYSk`@YIS(?i=(p_arw;1+a-!Q(< zm72@!PL@6g&9u*WF#gRb*XpaleDE8AVHyLXoc0B#Y5Oc;+K*S{VIcEzW8dbsQp)4= zx8>lYQ~P&&rz<Hk@2NTt%YiK81t8B0M<bnebOw-g6_EC@Eb8F#M00Pp)^?wB`EbO{ zc5jw(+nsz*_c`~J&bV@Xj6pYjNdkF(9ywyP+6p95PCsJPo#Pr7c|b4;<T2b#d~;A9 z>x=PC0urZpkFN*E@jbc(>WBIoPt)c61jxF78%P?AV;ScIfTXEF#{U}O?*sC9>Y#p> zYsKC6JzfMh+55r<$P7_O9K5|Rgw8-;z(yUjfut7U?ftE4zmyK6%Z{uA+CLF_4Y5ud z!FSVrrq<^NGQLsaJ;12g@HCMAZUQpTn?U;VA&~S5kha^$pw+ZBZ9Ft%&}(USv79a7 z?PHL82F7^Uz;XwkrS<FwwDdUqUuWI^(3RoZYBJIcQQuVXc75KnF~^5amOmRvnk#(9 z{zaX({$+fOrRii_+W?;Jl*AZPPw?+U@ZG(BpJX$TGzv1NoeLzLFT8n%Jt@Px2`wY# z-Gm9<-w$G+-<$M3J=0zW9khKFkbQ3}u!0Q(w9BU^9Xl=6zf9xCtlVO9Jo~N(f>>jJ z>wbU_X@)!~hxZ5q=jb~5SwNS&e3ov5uK*dR<7aF6Lnwnh%c2e*Pqg=+i3h+3+xe;m zGDB=1ZQ$+w#D6aC*`Q47D8W9d50JboFGuCwr0-z6igQ)53-7XcbAs7{tc25=rE%Jj zp{?$)*`h{`Rsl;}D#q$O%(a@e?)~RzTgCt_Tly5LKCYwKO1iwM<+Sd?bd;URju6re z@fxWEyiWwCu47kVejCzyhhMJkco#@JijhV-2T1-d;hzxR$)2sdvB&+LuJ%-b_gNZJ zaS1HJm?7n_x>D<JU##{26i7-6e+2T9P6N_Dj9p#Ufmnp{)5os#efDv-t(9pualBpa zU{m5Mt;hXC%*935P9S4gCTXt#EgKyE4<*M7J2KoiHg=3e9z(QaJos@U*i}~@;y=&_ zTc~e6km;`hNe?1T?C7>0MaX7{8Rt6FbhGb7!SkF;GP*t2;F|nuUG_6TQZ;0mbZyI^ ztL(s(pVU<a-mc4kEzYG<_GduSiI7>kZ0Bn~j<=5m?KT}D@b<C5vlQ3AQs&J-((Oiv zZSAl%)ZuUrOxW~n1#dqm`L9D=K^JXb4J17-ynS4&8r|KOiI5p$ye5OU`{KSHeHePE z<4PcDsqp5#E~hmuV$}Byo*lFO(59_vHu8C-8q<CL9llB1<rj1Vy|9}$SKXk;`H?`< zI3VRe6MpQCI{jK8+v6iZQcsk@e8xwoch^?JmT$wyjVQ+uecS>*Bm&b%+&|HF#eb|Z z42+A7t8UgltOb%b0BO5tndTq*kxnnhF)Z&;DdT#e<zr<b|6>`~Q(gaMne&2<dieMa z{yWIjV-)2W;#_kB_~jxnKKgFe_JjmuKtKGZjlWy2eYx-!?ZZVt%AW*stlc2I(|N-? z7CzX{r*__qmD7>e5a(sh;C&)6c1CX3y5m4~o8EsDNP0*3Bap`Y$4Xw)js`kB<1aht zo3*38ZG-fYK8=SyLu_x2<Y_F(_!ziT`{iGu(G6sr<B$`>K=o6db}^82rSP-v(7vDk zGkqNp0J5(B9?{1hjbnKpI!knz`E!Zw`gAMfVw*qPc~fuhgHt}SeR;r#fF$EnXr;C@ z1`LT`?*d7m2!909n16=kZ3EJFjHg}JSZhJ~_H)CsG#fZ}-44E)g@cR@?z=Dtkus<L zLhC*oXz7smi!=SN$+&UQnPGi`Z%fX2vTg#<WhfszA@C6q7+(^1Yx^TW+8?+_*RKcY zg`bp_{ZhwsF_8S_ow`l@2*`G{7D)M3D1-bRQkMN%F+txQ&Xf6vr0itO-Qex#$;7=F zD`6A$OvFCvL?C%{-IVFOie)J8+l(!3T$^Sy``;$;VHyQ8vGqr_ow46&RNy_Uw9OU2 z(z1FWeTWMG-mi5G$I3C60a@Pd!mkEeKJR9{Z$A|NeuMWc*?#C_1mzf_k88l&$NR); z?T2453=G3h+IZuAI_+0L@{{h@{3Q=)AD;n|dgB=Scz~2K3CR3T&l$%b2H!HwmDA<M zheqT##A}>I;O+f6_>i_E0;JwJ(DR_)e*kE;apB(rl0Fpv6y&AtbL3caU$bx8ea$3o z=6y}`e}@_Njm;I~yV~pp-)U)0wXM(^ZATPHn-k<8*87hGY4bC}Zv&Ec2>)H=rOg+~ zu}(HGh0b)FX&aAOoo1WW4;*X@K8kmq9?`a(f_>5)AnkOj(;d{6R;Nan=kQb<sB1WQ zd)>t!!+X|J_Ji0bJrA^W*{%g<;CTCZzu2Z@Dfr=5DXCaT)}mZ&EOP?)K_>{0H8mIX z$?o-H*I5_l9GG`)qrQDyORMaNl+QfR*MYbDoOnXp;&~G93X2_gKCbKZ9w6;(M;_AU zlGlupnZ9RNN5a;B^Lc4s%V#^_JYYC%GsI`n)4|6@z&1&LeZSRyhk%sD)@uw2DoKw4 z{fHZn3C8q2;)Ou+$2_IyG-m@@MiY?oH-Mzs>vX@m2*~uifmR<7em#)+?|53LFNALL z_VeIY#@gXL==P=jWVsdKyPXH0LEpm0at{QO4i(<6$B*Nk^t9XbgdFs^H((5WR_i$# zNSZFZUC){fdJ;B0Tb=a$4)YA?qCXb^Nf!xk*W)?L*`Ef;4KZ$h@b<X5pMxIgqMlQL zq_c%LeIwJHZT!*y_xi@Z_ND*7<>%N@iaKsY-5KJ4(QOAG5rG*y0-JQZ@Vu=1ZQ@V5 zpGSafPaYuW(-Gw3m>hahV+=^S4`_`!FX{JI6p-(vc>bs{24uP$$Mc<&0Ma>*CE^-` zNGGpQju-8eZS+eZ^B(bgoz@BD9P9%i%O0~)=bHf}tpKu&KLVM)|MUH=|6TkLNFPpp zLECU0kUp#iaz6A2;Xej)tnK{=o$dwlxI=)n=V>5)aKYw$;2<FRBY`ErGk|>m<`SSA z_$wfv3H}Ml<4qr{%<ya@a?F4G*#Gpu=>AiE+w`#ws5?XKW7CiA{*6y8q1!>|E!}Q> zK+aJWknJq=rtV7$$o83dL!;-f()Yl#y?Ia$`#}J5w)4>I8a<L8L^}IT4C(9-KBN=l zf&t_Upr5l%9`I+KHwa{&zW`Zw^=4gW6Oj3?2a+}cnJ@bloqjfu->!`Li}qnTkT$*u zqz_*J*~iLX)%+nq_Oa82UkIe{R{*JJ$ZPue*+BNO#lqhSWFLDB$UgQukbSH-d}1Fv z7|7$zJsA6c$8Bps-`c}HnE!M-+Y;-u?6_20Vyqj%M}Z{9mVU<H*8T?H)$xi0*_I;j zXkGz1F1sPO+7ftT1iW=$1U%#G1;)_+SZ47So##v->u7=SOM$GzPT^k#vd%`q29`NS zY&jc9S|a>Ufz<IZkZtM@A~$tp|Btx9@&EgE#F*2!4(K+-_7wvk5rK)h_X8a#|2By+ zkTH)#P7I4Y44!cb0M%A~%;fiUo?C&8-Gjn!1hPK13V-$cI{yPe(yPLM0%VyzQ6}qV z2#|H=^euz`1jI4zS~7i~{?gWV<S|5hI>0xG!1x>fySBj(jKMeR%f&v^djl=~w&y@G z>UNmdZ?)-5g1664;~zqglv|H|(&0c$Pw%`1SWEK7)SHg_`f}oA=;QmxQ_}te-NqZA zTaecf>wFRTW)T>l{YkAa1WbzVlmDT8o(iNboj_7t_%h_>@h8i%nf?nexevBhoY>XY z;o$AIx<A(T_<&K--TNbLOBs;1HUmjv;WtToZ#fpv8K&VsK~|WrU9I<~pv(ST!OokQ z#?tI$`;3G4TN+biRd~C$B?k0;qW6CbBt0+uNl0T1Pm{b(?Rxl0dv4c$<T1o{9RP1{ z*Z$A6ZZ|OSskUbWkox~9y#2as6LqJx>u<8p*s%}qOtY2z$dkMG3EvK}RWR|njPu~x zkE7sO&q45U_{04jK>9ueX&hUo0O{KgfUKj-<ruWnvFKA%?0srE?AX&g`@8BNc@5Er zIQZcrpibJ8{HOLI1`K_nZG08T^q!Jd3S{1204aZ5czZo~{9WsTb})Yf<c8?GAH02h ziGGP|3vASLF_82F;hmnhMW|~ppSNvD)6W=h2JfQ+kcmTVr`DYWCPnXI*k`&=(k=y( zej&WMX83-FYlhdRz{YRso|U!cONRHVsAo^<-<BPj%Gs0tJ*8(V_dg|P+vS`#=hV?w zUtS9AM}8{i9&E%Q({>_x1FUu%D$p1$9AF)zatBy_-4C?pb&#|Dxq<ADG2|!j1?B@u z1}%C10Bio7K>6hTKwdkL4APWnj{(*kj`KLqQ91UkhP|Aha^p1sWv@YIm5+DcqBt;w z^4lTzVKbBvnaS6Qd=c1h&!=DuWuC8ezxnEGJ?HQ7FU`N_5}&gMST_6sNFPqi*0#<C zlD`;8AC>`W<7Xnz%hAWz0-0};@IM1G?jHj=PdEa;lWqiZZny%-F@!eLZ`w(uuZ#`- zBbs^cFx&Is{AuX3`*<zFwn87gIMxv3*8twW-cGcqwl@g0#uoBL+U5g*q=STiRQPv` zb!@%_@|gZoMlF!OVjONN%FbQKRgpPIh|!0=I3F6jx2D<6SgX^zzwhVit#$bX6)-9K z59y`tUI?UpzX!4|KLJ|y9aysDz~+8xzxE0>xTDhg&w;TS#?0GKhwUSKtC7t)YFK-= z8iX~n${p65`){7z$A@*x@nAjTX^8!!csk~)tRxVD_2cQM>o3w**Pk26`iqq7zL`Wi z$1i_{?u#DCnI3|ieK1xwKn0~;M1iEqZk=`pkbU7iAa&hZs>i<L`sgxm0<x_8g|9_f z>`M(m%BKQ(T&8avx5A%2&4<2eI%CQ4+I>bUmh{O7eman3Vj1qQ{Z9(Ufb_#ZKx07U z9`KP$?c48wq(1>!&f7rt!_R;`HVelvCZ#~uLqDJuliHq3YMXmm{i!xXe_9V4T?32M zK&+j(yS25qrTIo(+re)Jl8kTaqai9T?}A_O;SekBy`+9u9M=Th-q&n66S^~8>!!=i zI21&FL-fA`e7E@4Xy0RkNuZMbI_`t&fwXxpknx)@=}y;En`xtM9!Yz6ygDmo4`Y%K z-hTZQsvV#_*jOLO0!h<^-`%>D9Vjc)dXoDpH}Q+6*~@;p!NFd&UDsDg&<FIQUTOa$ zAL}(K-vpAs^b=jjzW|c|Bard@LU=q|o`h%1txnID8)m>iK3lf`f2xCw_Osj|jxogg z4}l*i0@DT)9vy4<zyT^MaUKg9(+`!jtAV8ZgvWbTUDkA1Pupzo-)~FPZMA;~-TqI9 zC^t67VjPfklJMr;JEwOzo6m;6Z{a=FFv>B+@u(AgNCYN6k-^&cIM8atbpuogv7*f@ z2kEqNNMpPkB+nE%<}4ud?XF(yzq|MK>Qw)xt<FF>hUiNhczaz(hG=`#P>pf$KKMf$ z9|F?94}kQgkK_#iNgcwQ?{INv&f6oH6Ua{JIZ~2-{13mwtvDxTJKL!j{02*FYOM4R z({_Xf<G`@^@g|V;cOZTE3P>NakjIL@yrWl=X-tQ{Z|l0q)W^0opLmYR33P8;(GlA2 zpkNZ{9<FWv97rFIfQ&v(23o%C=06u&pkr_Qg&8B3;TS`-bESiwf&C@+K<|Fqj^Ws+ zUE?Ip2ej;S_y&19?aFZ8GImtWOxeNlVkGzmF^qaxwmLxD5gUm(VWX@a$n?vFce<Ch z6lG=7pGi);7?0Iyc9GxYU{`dM)FY5KdB3CUE(zWTn<?uA($3+K(Z2&FFV;Jmg!N9Y zu&;MgHw!kG=c$qjJ-x-jqJVi;NV{0hWTYEnc~imrL}23O@eWV{*h2jqfTZ4#kvISS zf)z+{m80)3hp98|zh8{5H8x!_@G+~jRR0VdI6(QO>~idr1_CWz(q@M^yhpu!HgtZ2 zvHXAISjK_#(->?uL|!$H##)(LVqzXXNc-+NSfdv_`*9q|dWwzJbIu@;W1SmlrPpKr zD)Bmaw3g+K(RsW;j_C!+Lp}QeNfDqmF9BL{F3(?5p54>c*ETk<f}NGNv6<JkyOZx} zEI0jQ6UwGd+kv#j+ca85fFu)>=pou(ElvG;57quKA7j8RAIDp<#XXfy@NOK-Ijaww zp@7H&h%x=XMq+*HI9=XVK*qWQ$aI#$vUwcQK7UyZo%Z?5D##46tkvM{=TrA#I0wN8 z>R1OPtry;YFV}r8bnL}Fg!DWn#^Z3TA-03*;O+N&6XUi1s9*?4U;V%k?4*q=fb`{A zAk(su#@N@&F?B%Za~ea}(EdG);fXXmsV51(0Z1}!A$hpi33OwlzGfiPFBINM|G4k% zS$_a|3{ig&yj{OKQtOW$f$I!x)ZY%I{>z1T(jVWA{@ule=Zqa`cCpV_G<Ubl@6&d< zfwUzGq-`Of7dCUh5lFw*0a<@90hxERq-VOOA3q1N`~S(hMUC*)5bsNF0?+Y-#8_D| zJx0gcC+G$;p7BW<!$8(sK+p?hze`Tk<82c8nH~erdqQEs0Fduzc!1OsMZToe<M^ZW zebR@3yl*sef*#v%0&=|jIgsP$iAU=?z6wZtp9J#W^ix2V>C`p@=Vk62>1~ta3ENKx z@*AQb5%BhY;yX^qNC9a_5Ey9CHmm?LUJn78_L#_>Y)kIOHrm5-D$Y;YL;Hq<x7!ms zUg``Ofh~;1XJXsGgg4hFb++^0?I>?g=d(Sfo3VI(nyqXTTfkQ^2p|IO3Z5vo0<9z< z{ftb;H8$*Lp6gD~vYwF9=T;!|gn^_V0huq;{BU9meA><Yum$OcSbiILp9qYdk&|E# zY@?nL*eA^eT6#0Afj0eu|M$ic)*bt02(}wyU)v1cJ~qUrYX8GP#wh?~y?9R5^%S2X z^#tTt?gKKP7x`Fb0{O^CfE*kAz_`S;{bU{Ee7_z~I)Ute4X5a_VJnbh!AC%=4jitf zB6Ihyuc!C>Z)=}%<e0hvHW*?bsF>HizlP7$z6OAdhe!Ct89I&;ASnp6;s|6}O8D4x z9g7e!DRokDnvUrjAY(oKbREAPK-Q59d8O?-{=dL#*!gXr2N@IE{~F3R#5&Chc8`hs zyV~c(**Yd+AjuD8A638@;zS?ToTYv1oS}WY4`}&j`=-$kJ(Y6rjdObP>2q0@+fErU z45Y1VfXzS><t*1?@Z&j0>oGjjt=Ixr;y9m4AR;g4#1Z(#GPVMl|0D79Gm$eN%h=uh z+lmWeV}}0~VvJd?4|xpHuLkh;`^WLmhp3R;L;T>gAy)QjkkLN9j>j;yYaNgB!b#=X z?kljaMzAnY5X+1ANMtAV{jAQtuqU2o597KSywB2@imT^bwBOk}K1Vg``aT{=dp>K@ zd@1sfw_h`iYeh`<;+lc+VLSrJZ;0baJ9ztbLhL-PD*<FoBS6m_ExQFsS|NN5(pYc9 z<d|7N(jt*B6S+C>+SlgGnGgGI*PVOfjV~i{tRapI6Tx?gfOa!pi56{-`vUEY59m2x z`?4KK>Oda)upG$aR>(2;0<D;5c-JmM+ii1Z(+)SJ*~YlX!Q1;&a30RBbG44a*eA^f zQl|@}Xr;@QWna(5Wv%m)$A9+gy3UJy`}wuQxBipcV5h^k{>Iieq#I%zT?BqB2TzcR zV^9rMp`E&qlzgT8On)G49fvfMA86TLkfRD**)Fc^UOBL6$-r#!q)QKy@8M`$hWB-h zePs($_A!=K<lUCaUG^mx4p52j>)73bebQE-Wsf^wxm};T(*KpjzK%u<%1j?4$x}bu z#WL(O4l98iw>JWZ14$-6+@~(0A*OL#gZw@t1bQyjV`6NPwy!66QYnySFrCL`dT+Ag zqRj2ihcrXh_y^wJ?$l+t=P0@!5Z#{$kNJ7Gb$l07AFu0WJz-NXtI~9_-K=)d<@o`w z380UD{TxW@6#f(8%aMoax@~{it!=yJ)TlXlH(_>r4|R4&t~zabo;tZRUrkz5pbpzm zs1Dp*q=s!RR@FOtVhyBf-ofwEH(Y)5RbM=dEy24DMIAY+$4#z)t0EuQ*jcI+vSN|h z@A<TUAAZ}OSw$c-#Q1iCx8L)L-UUCg(WhD52Q><B?x|wL*>z8K3-vhMQ!Q@qs;dlq z+$t^A?xMfMxkJi61pA~3K<civ-T@hicR&W=9gxA+Gwb6rJl}9Hgbky5t5Jya@ZG%w z@_#H3+alZEIM{E9?~nz+=d<&IOdk!tpyQ(A8iRsyk$eAuF+^gw<3W8+xcMPH?^+3D zOhb?9zIio}{CQ94IoKELbpEC5wS4C@x-N>J)%-ylb^0+t9yk4Y%|8w#|1aVDi7igo z$=-{lADVB*Gu&%SpUX2o9J8k5SVQF7!8eG%A6ZF2xfliV+B8{^=kFKOAeo3#G} zAY=Qlle|v$ZrF{zW^7HS*~RkICEe``zoPB(1EZU@9Yxru-DN=9ioQFoFdID^lReIH z>rsx?cV*pS=A8kVA?j*$(B=6H=GRi@S3pt?WYpox%~rV+vb?T<HBW8Ayl|b<yf8-H zdzhzgwb_yck76w{^$~vy`rpvH3%L(^5NP=;&r2#Do|iN(g8pytyo7bb_$);^hS+9S zf{%&7*cjQW?eV;)>mv?6`Hq%d^sct~OCY;qj^wS}ulJJu@NU{5yqh*4yN_#3hA}C8 zDf}4PQw?p-#(y{BU79PpuW{%a)>94pCh6a>d^7&6fvtw}v6BFAf9ETf)bWUaq+=BT zlH5SX+w(D=k0Fk%-?I0$?9C5!?B;CKeD4qScry^le4he&?7b+Pyg9%0NjtwxybN)4 zIKQ+&Zir>Hfe(wo)UW?j+)LZ8%YF$++AO?z7yFzH_2*jxy&2|q|CQ$_b1_!^HxB=e zL$6qI+&sJgZ+rM}d-!jAa5&F@OXm@uuaChwtQqGfLuX-U`46#9v+a5z(okicQ<H+e z<1`;TzDl331;Zi_2dk|6(}{T+gMx{<Rr)?ZkoTz)7f8BbtVQ!a!SMN-_Xq~h(|mG{ z<P(fFYu+sw{GR3$=T=$Y&G-dlO`7)tsXx+KrFbTH3x;NEd2&{js)0NNtfieZHHHK| zh7U;kIU2o!;qQw4Y>hs_@C?l-&l0&{<V=yDq0uiGnXY*y=s#Wa(bGgO7?>vVsT$pa zfm1afn<8?-;3*>aYxD>PPZs$}A{PvusQJWXjXuH137S_x&bd4nRw>U8Jx3b*rG7>c z2XapJ9*}uHRyxMN&(g8~PPXQ6$<cN5NUkpP;u4)+UaHf}%d4z=PS*o@o%>e5D(kvu zMTJgJ07*kCbvd(vY{oPDSE)(BSap>u0~XX&sZ!u^Kt5Z(6v*$Co&fd*ws@*kAK>Lc ze!EjNu*zCrzysv7<*~qW;PJo;U=YZ*^fZvquvQMz{Nlk?)~&e*fc$dLGerAUF|-O1 zz_UZ(VBoKT)xiCSRVn@h^EE);a=dGV&j0Lwh$;Bv_pee%0FNG7Wj!}v2;}_wH$XmT z>Nl!N9S-~sa3XM{w@Muf+yXodxDz-YIB86k8U$Pf<o%juz(au7kF8Pzfj1vir49mi z0uKhpfJXy=Jx<$m%Ar-N9{e2OSm5Qr3BYNG>9|iEU!^#r%m9u7wgHa<dXK2G?yolh z4+I|o`he}gBY`0x+s6Q3l^O+p4DdU^!+?~3cvO`d34Y-O-8b(9GVYH94*-66w6<^Z zF;!|m@H2t?Ge2-R@Ot0~;9bC>z{h}fz%j>GsbRnd;1J+2jBzZt4amNKJCOR#e>Xd= zA-nP#%<p$|UwI?a4Y4n50>4}Y=K3OX8Cu1~TGthebX&d|Xz3o*bIG9QzScG3cQRaK zEWQ>t?B-jGe@7b6A-o=51>J@iyN%$d(=m|oFMOT$$q%%Wfb5^KrBy2W1MTOWt8||5 zH9F5`AoIAc)#sUhKr0^dj&i0oEypd*e7!}RsXu@`hS=Yl!P~F-+&`&Of$O!-6*p+x zmffg%_syDbT&DSd07=<6#<KC`eoIbnE>*|2_fbc7l&OQ3m#YIh`>MJ%{j7RCFhf1I zTnF2a?W>M$&QnLV=c>axdZ_y4IXE_34PBFk_a{n}eOB=A&d->!-7bS|hBy|k0&jnx zBk_=qL+n9~e(<3?bWCQh(6XkLn$POg^?TMmn!g;#`aW%y=I{TFZU;{R8PlVr%rk)G zZw4~|1HxCjbDP}FJyiPlh~uwEJj;8ia@^xCnw1yewWetUjYu;@|60J??*+OaK^s`3 z^(_XH3L&F@JfmGu-khuOPV!s!caqmqZ~p?-pZD8mIlq^@#ioB7`0190RKM{(TBZD= z?=2wdL!)2%LB9-bY5EPB`$4AbE5?Q~4dGZr?BikZQ4yFv9erHelLY!7(=mB-t(JWR zWWKL}R;+C6fy8NB+VfgdCp*&gvQAXE`*T_MlhF5sE_Vr#bdB)(|CGJT{GYPsho|_m zd{x$bIR2yJQe~cP>pYWFd93Gl&niB*a}6j~1DX%O^OUn0<*v_Dth7-`v+n$KO{*xx zbCtvKyzNqz{=7{;+c~y-S=O_;Q@ZBum8W{SCaOGdZm>rnCy|vzyXcKIO&YP)_fWk{ zi-Ov|@vz~N3}yD~TBh~?9LJ`7xA@ajyyZLIbl>H>7iG`xUUqSwvi^D0pJrQDmOjq1 zyR56-jEAeADoOTE^o$q93WE88Jb$j&RbHUV-?B^LC*>;~<SeHxS5-9jP!&^iR7HKZ zsz~-txcU~TzHL2J-^Lu(cWSokTc4%+CQwfQBGtbwPxVL4`cLhl`q$^E{>h3&-x$(( zzT8r+2DV}DgZB&u*7sKfT@|VvV?<>im&#dz^V47Of2wF-I&UTNRv>Rb<n4>RWjgPE zMXIWPxT<p1D0i|~0(UWD`9VF_@c6Afo_054n_2*y@yu;>S+X?Y4!TD4R3q93su7JI zHKM*&je!2@<bXtFykE?+qbeJ1ps&h;O)M+IvaDmOaSY}(^#gEBS=VDm6)8{KVC88X zq&)Ql@!mb=zSJgV#8F1&INUF8J3$R=JYEf}KTZvEO|arv7B7vNd>mXWM;537_4~U9 zxCXh3lejyR<`*Zt1MzSvfBgto{F1@y_7MJK@aEChJTjfP>T;b!T~-&WYS%E;H(8b_ zjk{yLf;|Jp{vvOsw@B62pP_19CppFwL#nE@VqTA!@8_7O0fUcKhl6z7^5HXyb98r2 zwR)~+wfbl8>RtR@?rL>cx#ojNPh$VUzSXL(qFRMPJdW}pcvV@g9;;5t)yQf!b12Hh z#(d<D8dk0Dz-IU%!>iSSBZT)=t4j{7R!<&Utz0>1XYj|>BTMzDcPUq1w#u7;|9$f! zwxjaZsO>pw@RmYV)>xo=OwCvRmj<h=v29+a<DAY{R%GLSgHpv~*;axuW#A$C>X0pN zHL|S)eW0JppIWZG>jtZ9v6cNumyym}?bOw$dp|AAQH5<{V@ZDZbayVUqYIQ9ZQDJ% zI5DtSj_QSe*JEm~O2h`M!=D<g!lEyo*Y${NBG~QJcS7)?a&%8s*W43*Y$)>Ky2_!C z#h9<Qhw52>t?KEzO69_N#=wJ<SLN_r)z@{K>YeNv!`n+<%A=4E9Fea^Y+0^qHr=B7 zG~SBXtWdtSgVlU&BY&)8lg>kha^+{M{AN7ELA!E|>8r-<C{UxeqMXfns%}HBs$GLI zrZY#CFV9x)jx1H&?$Y^PylT|#FVs}6Hq5A2gTAZV1NjpI)#?|GnvX@Q)g$NY?bZuZ z?Tqpst<`EJwimFOc1d~fORCjIY^N^jD!=fmYBlnQ)#}`iuJS1ODOXpkMcC5IiQZVP z7T;8@KE+14t0=p$$Td*q{2ZrZ5ZiO)DQ#zTU9}qDS*@Dx(Y)vBYE^M>wOa6CiqCtf zT3s*sWB1mmKc82lPB_2D>KEQsHR`9>e|&Duu6M6kKIPT(YSdpY>@N4T)~H7pbeF4( zYSeq}-Q@=^tWgnc=n@v0@<%PIQMY0<@_nsK*FpV?4no}@h`Jw%x*vwRAB4KEM%`DS z?)#wbd!g<N*j8Bg52WHp|K7a1Mr~YLv+Fx|V^`gEHR}9jH42aUy4brOvR=2=?E1ek zlYjkfHR^#ox|j1VWc%IKy`1ksb`R>o{BIe{iTt@n<^H-xJ@llm7xIPA)TkSQO!pVp zs>QFMKHg99Lq9}a?o9FLepRC;AfKK~4Nc9ZdgrU&F1(-W#o1nFF|NW~{tvFVhhP6k zn5(ovm7@R4N^P;+xSs2ncjYQ<@2Goj#oUqa%B8REX5-B~wgGt!^}x<_@M}b1=CST2 zwbmRpvA9;nuGIUV0Z9uXW4_-2Nq+`f^VyOfOG>f}FjA)8Us*}J9G)+3wAru;eAp@t zV+fGtC3_520c_mA0Z96d@XreW58=)8#!TzQj=N3f{j=;>im7X#0P+~(Ji8fuOa#Uz z_qDakC$X6aB;`Uz8}a_-G+bw`p!a;wAVQrE^Z5-nJ#p}Uo1Q4j^h>!{07*Bb^o)g` zSw>I(?aq3<kQ<^u<G}Cg+u&)l@48wQU8?PW8%X+4c>6m~E!1Os=V_Tu$L-*G4~=AE z76_va-Jo@R0VI7Xys5WLYiWCaD)r{D)>fwLwM=rhf5xE!Wg6oB&H(s`2#n3aTeZD0 zLHBL7DshvRefneV!`DE@@JGvaf4Bo^@we1k*Wh;m$!`Oab_jnA%A}sDKn`gE(SdI@ z7C2ouSKNUZIDD(Iw=(0m59Ju*_YBj)2Ss4~PTZ+&_N>qt00!VY{iwS``*8q}{E-pu zM+1=j0vt<!E|W6u1d{Ftvizqd{Y6R7<ZmK_zvg;4|7R&bIDWao+x-asvQ{O3uI<Xc zOWRQlq@AZBjno7rk9A0zu&(2}^mQErC^OSKBpqq`*`C7S11u0^;^@5_{YuLJq*Ln~ z0hy(*B!3#}d4>J{$Y$zvsAuE1ilqFe-hA-g#*KSWU!vzq?33;WT6*`ej=?sRm#Odk zUz0N?yhmAfXDTLqw{J4|5Rhc*BKD~EUp=NV{D?-sU`Wyv!h69dC1!o1y6sj08N-PW z)GFT3UHM?G^~~j0K*}$9ShxMfK=Svm(Xsy>koSsS2hyHxK&IzI7wfPJ$np*VvMnD0 zWFI;a$b9y9`nSVBr*lfxic}m}ZXNh;WBuc3lWTRkZv#mm3Xga6CgK0sTlK$d<J^by zR}0EWe_t?tpYf-i%hL4H&z0cq<G=q2t;+)pzy|ttBarkQka2lQ<ktD1xj^;H?u{8@ zdJoYysh`89>H<}b3*Jok5Qig=A;!WBzC#42O?cPWs?bx~mYwUgEv~0EukRlf;2w{4 zR_byO3->q2;@!SkPVe^JPTThIZr^&FZ5zSc>&f%GS`~g)+meTUQZ3M_J>;x(ZVw|N zH^dm!gSYF6Jcs&_au;Erv<ztJk^fsSRk}s6JuIWH4F5%xNzQh{cCj|i9`@VUz}xG@ z{j%2W1G1ii!YBSztAd+!+6Exg+>o*TRRU@6H9*p>K>GW0k>fr2Nm#eFHMQD|Zb$xK z&==c$*~XhT-j2M6*hf3S+uL~f&)SX{Fd}y6V4t=YNSYr=Y8QUje9^1ti*eed=ZoI- zd-6Nd^wT$WSNCy0vKjM5Y>dSsAgM!m=vjdI;#+3EI1a}<jUfTZ4N*@s_@D?(zj6Ns z{pJ;|XA_Y0y6}~i#S1EN?;ri+EvNnwqu!b#RfE2}yS2}@+U!VzpKh}w`f9E6!WR1b z7?AY5@McbVFz?U?)4$BpbwBZ!u!HZ6IJ`5;I;XEK$YY4HXagT*0?5Q7{8yYOU<YkD z<8^IADP-g`eM`TFx-)zil(6aC3f}IwdK2?d(Q!&b>--DQ(rNp@Vo#@YJvTsZh`#y3 z`$VwIx3>^q=wi8z*e5LoI_c@ipeLH9hy7-agPz3SYLy2Y%RLlGI$HSKgnwOlQ?FlU zsMkezOTDh>evN0<_rFojc0(Um!UjWpw_+psI0rnCiLKhE{q=pI$A=J*W0?|+0sU|5 zJof{6+;hUeA^dhAkEwk}=erL`zUp1gp9AE$dx7v<w(9hA-_z-L16lVE3t#)b)>988 z9Rg&X+yP{{YefD}kz-8h^557??{RKxt06bU_^bu*6M>0`=kGWVNlY#VlCBi~RpG0V zhxVXfIewe#xmWsC`u&d#<9P$}8sgk*I`{?=7@LwGYJD+aLUi}RKGP2Xl159OON4)1 z_)Ipg-v=AF*=*eDV52XoZFB=Y|IquV0%>CqNLnEBCxlmWj9DMgX^z#l3bEYFZv@Oa z@^&0!i0y6__=pHhOx>So8xtR+zCY6Yy|GVP2xPt=0$I=c{#RZ1`(MR9#$uj21<x{Z zmqm}~`M-j_`g<2IpD>v*+zYuOw)Jt~hl{}26!>SYihrSX?gWxtkXbhHIUv3tz^vG7 zeXnSA2UEHir*vCSfsF1|X}a0{S3BrV?yObrFSV`{fuysAe_r?&<e@FM0!i-(Z@!&8 zl3#&3oa21IMof5)o0VZKbda06Y{s#MXnQ;OBrmQ&CT@`&kHrUoo_}c@JAkCegzu$1 z7XL!F$2zXB9P?cueKI~AmcfT@#)k>reK2t@`%TJL)^Qd1xXspZfk!1oryKjE;XvA; zzv=F$c0KpDzM(y#`?KA?h4@Yo>#2Q=)iwRr6TcYm$m(a;1H0$9o*5shtaf9@N}1=a zfsIb{yoAk{t>Ar@wW+v=Iy`uWqHRA8NSY?R{kzqwDD>Fw*G+`X5aTr&yuD9EuJ$ND zHpb^dAZfnv_IrXM2OXU@9Z~T1`EukMkMd%pj<bNIvxT?o*y5n0_`a@wl!3SF2wsPB zu~ElJ?t?}NZ`aX)<L$8u+H|x#=!jnrKd@29EFh^-c>A^cTIxu<ADq5#`rei_og7EE zgSTI|MQ`v>jfw-^*r<Cykxc-yk2Z+h?x*+u?tV^(%n;i|0K7exk+26hy0os*+y~VQ zzq@rAqSUvCYvRo|{R!|G+AT8UP3RVniu^?DKViAYN}CR(@Af!XJkT}HW~}f*Zis$1 zfVan1bz(fbOPAaGmmVv7U!bMOowLN9osXw7`g&~<^^|0(!qKU7&Ptn(Rp2{Bsqw{s zk4FXX)@2@oebRA2OGkMg*Wmlue!ZHcF56lN#;=OiUH$TaZ?{TK8#jK1_}!~@e6Y%6 zr3N9hbnfQAp<7Va?%v~EX48E;_~mxpQICp>u2+AfbzcgZrMqYDB;0$wBK_X$Yt)%x z4d|Q)yZTxT-e=PnyU(LyQvP|^Cq;mkKDh^aU50Cj0LsgBuhYc4!)8Mme1M%5Wa`+r z8e{1F5^o^sFvu($2KQVtxcNBioyQ+#u%qrF*fFR`4a#t>yxX+hyz@#QtZ^UZ8|s0b zM)3I5-6G?I=Mj&^$JS^J0z(gKA1-;wV_g@#_OKprrXVc~xf_9d6Xyi|+sE%VXghV} zKit*!3h?&$#~;&ngn>c$L7R#m)qYHbj6Ti<l0uRf&m)>}Uw&QsT}R&cT8#3Y?#nyL zjE$>oHm;?OmbO$INj|RaiUR#>_5K4u(r<;YK^kpcD0y*h;rKs9?lrJ6!+nKuNHfH` z_kkZS0#n!VCot||W1JQNNjD1bv`%}7`ZDy<PMf|cc)wL*%J;;R9xP6$_08fwXua^b z7u{{``fb#w=lEUb*=3J(^{op0bgQ(KF7Hz~PsX&aWk6E@r!;S_gB;fhM_EqSL1r8X z+jK7nA7bGk6W8R^9+h0Dbsd9!QUj22w%(g@-L6~#+{estUAvVwI9$iFeD|YWeXjuD zKm{P9Klm*4Kcn>x!#?S7AoZL3DJN$bgI1%weeI+BnxC=cu=84)FTCd12|k!bYg4`? zUeI<2{-Dt#7zGA4XxXUeJ=QVD0om5$K*r(~Abp;NGFa>dQkM0;a)$eriywpk8RjmT z<h%Mmjx|L8)`Aa;z|>9RMUN#31ATFA-)%tBrGM0R{{U#!mBTa2oVBnoLmwQ8G((I- zJ@|kKjQ;4Kq4!U^{C@&TLthqsee#y{$u7dX9OlfdueIB$vkdQ)O^`Qu(XmZ`h}d*? zf)87zrs^>HD%vCT(x=Ned#u#!fa2p=%mro{jU0QoQeOri-H&(mu>!o;uJ5n#5gW_D z2}oKlJjS(d`lh3dO!`7LeH{+^5(!)nV57b(fTRxL&3_z~*kZbkI&CrC6VI5lUdx_H z#enT>B=``J<ibWf0&jW9;=fBZhJl_pwT%ma><_O4ng6dq9<#gu90);2rvDOP8J%f1 z6@ia}9|t5En-W_*O8rgi@&QT53jZtN9~6F@@O^L$Z9AUFf|`Y2FZ^r5XNvRGC;#Vh zUW8)}G0w}theTj}^1tJ;BvHW-(EYZyxe1ts)aQZB{|AxV@1t&_jcM12rf=;`)6aU( ziFKd%M&Cu>f=<Th80?cy0FpQ7xoU@Js!LIp(|PWj$Y^&C^sh$Qh6=E=34B5XCT{8j zk0lAeuVWJf(q=E@ak2lJtvb&QK&Bn~p3Zv`ka7Jjkn|jo>8&V(ak@gv+O7Xj{Tuy9 z*@i6t!6!su{11QVu_PWKWqu%ihyeqL0r&fF(|Kxv<evjF?;Ak+Kke^2{Y)U!vv4f^ zFO{+?t^X#%d+S(JCDXfBfpv((9<Cjzvjh1I<zXibzC#4YC*Q|ti=unpKRi}y2uRxo zeWZCWko=p%*W(!SyStyDo`#JX&dH{)3`ZVAjDZ)tUj)X!(01Gt6n$@g;;~Zy2HcbW z&|c{8wCRsJ>HiG+VFUHO`Kjm!?n%E|zZd=^k0Hx{@OJ;BUqC->puSIbX#Jl8E&V-n z7vMbnR{D83M7_52u$^c8*%mv~^m7bY13oAQnfQml(z;^6&`!PoAdoZwGUlt6JUCBx zv&a40y|-r^@*1K&4dCtexc{YX@B!7=dVegCbQ_TN{8Z!^v%9?K*+E+z#_VXCUe?1J z@b-G}<I9kc=zf*DL9YvM*R#{6$F7sHuY0Deul3;VI^(W^Ry`+yQRru#Z?nEoL0^H4 zzK)hWb{pDIo?S2V-=3zIzOHo8>&YId{8?Jxy+G2hgg4hBncm-ZKMTG8!}|r}aI7J# z{=vsYK-=lRFHhT(%pHjT6V*0;-9yJ>6=bBhfXwT1<C~5_c<$2W%^+OEl^0IKyALbu zPh>ccT|@i#Fm5H%>|_kLg16V5uNv)TfVQJYmA0!0GTLQgm}$+dmJRzJ!%Q(}U#E@B zP^KZC-&TPSGpHZ}?NWzo`+PvkB8Q;e9iU}>M{6HG1~RQ^jFulZR`cTy9%!B4o&&P1 z3vn#-T?!<Rv7y`j!>ZrGPuo~!&J7chW{CDr2JaIA%Vn9q@v!eOU49|<NtHmR>E}Jx zm&#pgKhyR58rovJFJtG;xS2?^jqNlEzQNL-7RzI_9q~y6l@}Xrx&cVK4@e(kB6o^S z!*ktZ;}k27B|+phM0-NueIhWi@*b;gP(ZKPc0G{vFp&ASi`=X~mj0hXaoSUgwKpf| zZv)f!O<Z=^?8yIp_x>9?PTLU$1{?JL-+-hN$Y@7D$>VallnV~x*~nO|3pm9*N1lvw z?azSPATz}FvIzWe5wJ|g-+u!1VB`Kk?t_L3k1-+RT7Vm=Zx3U_cANg4-~*P1RGSD+ zhR>q!KGFX@$Y>A7?=J6tP2LEdY3Hg;`=)=lA-|y>*jWnRe(nsNtbO(gdWa`!{Z|29 zIPM1F{|;o^Dn}m6zTL#9>iNv^$rQIta^ufLlxZjzJ2SusL_j-fQ?!r%=0ufg41!Pe z*85XShFZDL0y6K+(xH}rPXXyy97ws-J<KTmakz)MIn5@vu>^SgJ<OmV=Ou|*G4@F% zKucGK|5~Vf0s1)hq`ecvIMC0@NHav8Q^DJHdZs|9=y>WBt@AygrBj}xyqV$NVT`(Y zzTSs-u1tU5nr2%eY}-Me7aAZ_M}af7JrQ7Rs<x?RnwGT#X`}x%%})c8f9Q1G7OSRf z`EVfR!%>C{Wlsl^H|v@Va#$~W(I4O!*EMPF?X|wmjp^0dOk7tY-4Nrt3Vc2b2N76) z;_QLSbC%Y19gsA8hUk|6;Oh4Oh}6sHf35OGSR(bzu_E48rw9B7tJIWE?>W%<U9ICS zASoL%%U`L>OxJ~NC~tT30Qz-%nhhK$R)UWJNycwAYoH2?&aZ)_;()f{W*}+pOtC4$ z|Jv=OExY+fqVA7fV=)rE&nh`(M`ZRu<%2EseGK+VhXJiv$a~NIRqDOx5X!LLZ<aN# zGwqu(rZde3#v%sZULWCewO$X<g*<*>Tx^)osMBhiblQ_ZjxDbPEgR)KyAqWZFz2q~ z7hz-CdDOJWddLm2J&p$-5&`wHJar-B5!7Wr4J7?mcyrD!Pt&y&WmKl=;{28}yMF3h zO*wEQkg?bfi~vcy^lMgy@XfzvkMK;V-^2ut^8pP7ke73#;Cwj-JgEZ6{54V*^RWyk zKc>Fa-4Du~{8&Ue%2@`aA8UaTAc^vHyW<No`_YNxd^|`fioEnACieQllbV4ncdnGh ze3l<_U%uRS4>_<2_U+?6<bBQ0HpO#h2Xq-K!p<7-5fPYJgf7v3#4pyd@PViO3dnYm z5R3xd7wJ3)w`-p-1v1YqKpyh~kTLfx#5dQ#UjUhY50G)62_2-L0V#i0beem9PVYE| z{)Bk#<vWghn~(9KeVr)V5Kmhhz(+)2;uE<{+wK)i2nK-eMLO+1An5_&XI`rPdjiOE z-UTu~e+M!SPU~#fy$nA&=di8MKN)gEjM-H1Y=<OcW2}6ra${rJ*8)io2=AmTY;?&Q z<Yo+7W78FL(B%$c4*LV`$A>^tF=Uos4)=f5pW#=AYrNq|GeqCK;O%o(@8uZtr2IR9 zqz8>Y+nl+Xy3*#%#;>qV&vFMnN$3e+qaP0dNzV#zuGcf2cdIr-?>^r1$dsQpGZqt3 zrlEZ7%m5z|fvI=TRodR5U}DKY<+)PJdM(y%ZYYpGT?6ECONB2(UeYN*w$1Z^%;z*8 z-bnw_+GhGb?d9>?)9hv6%6X;xJT>w|tuqLWiOsbln+BwPO+eb=%F9xD`1aoE+22%@ zovBSNLYg7QaWQzW2v|PL4&8|P@(o(gFzl0l0JQX4>;Igjx~yANmZ!>GrTOVHGxt2r zVeaYq3+&_E)BYdsdnq$*paJC=;<y?B-^pNuj4#m@+U_KfGVjmPKO<W93Xt?QkZGgt z)OCF*kiOclIXh{$L;s1V*}<4@25;}Dv6Z;5fQ{w;1W5Y1@OC}!SDp2YgWM4H_`uus z1b;D5C8XSAu}?Y`X!%oJu%tS>+*O&C{$`MV9=?=1c^=8Ip4sX&-Hi2G@G-YlycIi^ z@4pB4o9@!O7IkXfmjjvB2Wh1Jf#l7Yk?H+4&ug$J!<b>ltp?;VM4SBJ1MFNN7dGk% zt-@Sgbnbtzw&749)1DE&9eK#_?!IS~_Uz#v$L2J9c)m=4_tO}VvB!Ns#?fDEefRuE z+w<qB=1cC=d@GRl+%J4@9Anuh*EgBowQG4jbIf)ZOLm!MIMxttUkN^9i=|qt?ehWM z4{4hodsz1!-=mtp3`k$Y!mk(pgU7^&4Bw0wzX98MJ(QvS)g#>y+x~d)_Sl9W$311( z##ohMpHu_1VrSl6$CU=>`5idEGOaHgnZ18gSCqB^Hvrkrl0YAjL^;d182p5v(E1F| zbjFwXTH0|;4<aw;Dsi!~6g=}y1(I5%EaqbwyKA5RzwWtxwj+-r`V|6ikD>p!82g`= zm|>rE6woP#Yp63VhNfR8Y<jkW_gN*S;uU=c{Zh)k0{f(UfR-MI_vY#n(B*K?X)@%7 z=+jj2_WM7P=h5dj>awR|pEMgtUHU)B3UcgEL0tJgl(mwApI<&8_VOQJnZEIe(>{(@ z8NNqxLFbM%TdmtbZ+8F2LnUyYcvahWEs*q6;fvnTd><ffpZ8bICxIzn#_%hYuJ`l{ zvnS#HaI3k-Zh>C={o!Sh8Dbo72R}{(w4LQgw;+z#xIZ6Ax>R`kJ?PCiKK;MO$eX#4 zdJFn-tQ*K7W*l%h3j-Nl+@~I*A*OMwLw=tT0)1}}v}{d?ErY<54h6Cdrt>(vjf+rD zx{c(GjVrOwV^#xc<7>cuv2g?P`*55g?>pMYq}Wseo>UE_jZCLLmo>lY+jV}$w#YZj zr7c=(Eb&Wlv&K@tLe&r7^pt+wb(JNj=gq;t!LJP08_SVqh;1MOJ}3g(X2tTmgH&wB zAZ!00XAiPc$3w<6b51YGa4&T`b?@PvUbQ7<1N%rF_>iR~)i$DmK`JOZC!C{g@B?YX zmBJ549`ZAQq`AWH?tQQ@bXo6%jds2#x+cvw#wP~e-behi2C1az`h2F={VyPGv7Wb< z+IuJbvcA=Nm{IG}Z?$|uceyq9$9IN3bCvalg=q&?Ik$DsZ>>Lyb=$mY-+Pr5s1nyu z&d$@m0)s92xn0-uvcCVqx3gR`)H<fL`!SZ@+U|O-WBXahvJR~E5KD2tzdT=+w_&Vo z%v0s{_|ATGNuu+U!PYr0_UFOsJDUfqm`7iyUyl8yX}l{pOXZHv@|Rd^rDFXt9N&9% zQP3Q}33)%p_GdZ1^p(M?8k^w@`eUuo`rfL4Yu`j!uup);v29O7p2M+r;3qhaXz7`f z<=1Pn=IzoW`n|3!m&)?eE8Q+#J#(-=VS(z2Z)gf~u<j$O-jtp9*TL#0Y$FB^wa_{i zCtj<pR{Ymi8P=_B#5NVzQShg1G}aE~y2ka7s&dyF#WfUMT%!?b_(mt_!j1U+36K?F z4Z2w-t*6535J<~W`K{L4YhG(S;rD)1i?L>Ek?K3TH0e&@pErU<fyzPIsQ-u5uC+%o zv2oQDs+#&fs;1RiMKxX)D-D(e+!BLg#Gr`x?SlnaV6NiDGOzKk_MO4%NNh*JKccnH z<rNsMBtBVLIV!ua%FPP6g0v~im94VCyMoYZ;#ZohO55D36m?U2f05r+RjjHS-KuJ8 zZ>$a3OI5XUC0J_((_m#yzN(qh#YW2(_Q{f>I(0X;d4q;p_)=k=ii2MQo>Wv^r%JFH zzLI_8MQiobcy3I`&9tSr^XpV$L7jRLei6xE0sI_1N!IhU{M7cs=BZpSwop}#PT6bC zG1_{o%En%*a%xXiSzoLwZz@k{c>(14kmo_3i}f(e69xQV)HdX4EP@RCQ_7Ql5+!kC z*B4(5RtJ2k+wJ#&Ct@Qqmc#<9f1!`r`WMshKzi9uop(RtkRmmtzD^Cn+M8V>$~MRI z%G5H|ufA0EyT4DeB+)z8Ggut3-mSxWwp=6EevB0t#zwY+o-Vv&o$3ocde^BkY@Mi& zgMrrCsBJE^<t$Y&x`)+btZ{<voBfFB;E&N`A@1f@wihZl*4yDd5tqA%a<^xzLVR<S zvku1>x>TVlk37qLOVIGMz<Ua@wr&yD)&*j%Q_twiWWPkYpL3;Nqx1Z(zF2=4b=UW% z-u?nT4(;j#ub*D0MozC&e}P}$2bT2C*)?XEesU-B+=DG9ZPC>S_drlypDC%;cU{%^ zk5AZ84I8Slo^UnnsMdDGTxn(MHHV9_=5P_#9LCziQ)JEIA{W*|M?Xl*YxI`{>eK*i zM!z*qO-R+vd9&+OD>l}hL2HaE#TeD6hw9VJ^&U%A4%<dAtX+&XQmi=UW1Zlea=ev8 zvHo#$FWd{l+L4L8U~T|kBO@=@WR0UtJ%;65W0+NMGEP$8E}r#Z_!6wY-iUA4+j3B^ zB?{}6sv@ibpSO->S>G#qt#)%0#%Z>nR-PBS$Nlbwb?Omp#&4%QBQCB}M`GJuo(qwF z=N|IB2R)ys>8c!sI&55zdVCt|AwQw8f^@J*Vv^vPYmNO_0~mE(hPp1Bg0bJ~|LFT@ z1C@|hLXI&&#tV!ejTjqH@7CDR3V9XAoBA?Ub-x}bbT2hyD8^2VIaO$9RZ~)9l3s`T zLaf7luH%}!9t@_H`(thGw$oJq`e~}aYl<><hq8>_#jv{wcEkQwcd&9W5Mu@Qlj$pE zv;H|xN}aQDK9zGe>-v_T)Tyo5J~jP<{TcRFw(9ebWk=(7*zpPMNba&DhzX)oUG})K zPK9qu)uld%<J<*1dH%Bg;}UC#=LU@*XtRh>8FZH2<PMhD`gZGGb?Rzty#~v;UxhKg ztsl-$eG%Jo9eebP@&xR$9s9;F>(q8^!_2XHF028Kd|YR_9{=~y+A~oU$A7M)x0vz$ z@w@BPCHK^+!{wO2W536}Dc;HFn$9{^kIl4SS25NnZtdaNA1*^#?_&F|lwZPgZ#~Yv z_gk%V*PN(oRh?RoZK26mhPesWfi~^bj4KD<kMk|I9~&PB<f{Q~ct;!OwE^{cYQX3+ ze}Oe$D?lA!3`wi|_aCZLA7P8)SYk<GYMx`tAMtpdIt<%uQogkowCfs`o5+c0#q{`s zTLWs~@Ip0w`x1=dS7AN&A1e3M4wYYjHSVv}sr{d*Q=X)(U!KOhitwKjjTl$Z9*WQ& z($|Lfp>66htI(QTRUXiDY;9W^{OV(!6Z?$mb$?+pKY=xEV`d(Ou8n&ln3Fb^z*o2G z{bErN$4%>U+^OA<<2?(P72nhxP|uSKaURE98F4G0Qj#<=Ip+^`>Mm@%+9c<M7(1QX z#<V{ozSurB^*EpqKH$F(>Wfe}{gUO0KJk)R@1QB$|7xAO99!=?Y44l|)c3<2pliR@ z>w9x;e2?Q8l7vr{2cR8H4QCCgzdmb#>zXXx!gQVa%8-5_)`Oq=<E+~HWm&bZ>$6fb zRGlY)Ji1NbyfGzrmyJ)nQK!cLwN4E+HnQJM!FkG>vlPSLBGqrSHD`%)WpI5CFZ8-9 z@c#msYgJ&bg?0J^Fj3D3IHqwv&Aw@!L%NPp!FTJ_#n_G%eU-JCH)5{pZcUxLInH@m zUZKoAR+zF<*C-tC&Pdj&Td<k>C~#==Cw@|=Lf8V(M>Mo1Pw$WWBz2u^(%^#fL*DL? z<{mJ{%Es$Z?o?p&NLf~b{ETzR7jnpF%6SL6=o9DO+%|yUge`&1w=7G=f0CsVZx2*o zf-l&P|CGUo2;o|<anAhN^I99v`QFS6n$DTuc>buymKHTp3y*GXn%UN5xYL?i=g*lp zSG6vf-*!$@^EpBA^XATMnbWpVMR%m)(DnuNjv1=*KTXMY{tMUW-k~aP>4j?0BK~_7 zWFF)<bU$Q%tU*66P4)t0&5$im(~*UL^4$O(?zDU!$b86`iJGYobf%zBaFk$w!9qb( zjyqc)_s=YiTLfPed`9q5!KmOJg4YPP3C<FnF6b5X2!_O`TLteCd{l6g;9G**1+)IC z<5(d$T<{3N;{_W9+XSx>j0ip<xKVJk;1<Du3ikR^>l-e3j9{Z+NN~Aer{G$_je-fm z?SlC`b-9NM9xr&N;6;Mh3w8>w7ThTKhTw;SxnJpWJ%Wb{9xpgUFeum|xLk0R;5xxK z1V0np?`vKDM8WS0o+r3SutRW};0nP<1)me#Ecm|Q*Me^JB~p#xL4wB%&Ja9L@G`;c z1#cI;NAMZJzX)y<%s1^)+W#m)pWtM{8G?f(&Tg^uGxSH&TY{Se*9hJv*df>=I9+gp z;7CEMF#K$m{+YD((|I}rr^TcYPFWV7EB)g%!8Vc47i<tY-wg$Y+=3iOK_TlGKfP>r zTqFALu-Wm1jXzzTe(F)D&YOLHQ`_lyqNmPnZEBj?*w{K}?zu4e7wUUWZM)dhPaS>E zn9<f442?(4zHq^u)}~XZoIV+cPimjtvS9w4i<;E$vnS7+**JO5tk#*W3sL5IS;scD zO`bWwZBlFNyjHwHl{2NOrD^8;?nhp&j&7MZzo}v7+{TtBwT8#}Tj$L_3g$G;M?hA) zj)8SjvbvP%C(dhJ(9(3woR+4OaEgGoAw5oQ(wdOegnJ$2r#9nU(P-({(o=I==C`%B zG|j~kb=DDcFPhUjZ|((6bK6dv**a(DtQHg&GZsMmag9p7-{bU|bJ~uX*Lv!lx!-GP zI(gQ4O|#q7G0ZioeNNlaP)K_%TTh{sb{&U6wq7u^4JW4w3&l0nrjDLDcXm_Daq}j% z!{*%6Tj#V{UZ{nL&df$0sMHFUaq>k?tt~Ty!KTJ3P4gGDw5d+lF^F_CvrJfU?zuS6 zVMSr3&xXg%J9^#)!Ima!^UrHVWBL=zIAuZ8f~Lk)(y47T+ZN1+>ft&5dGj+QV@-@6 zr?xaT1&^LLw{Z?jG?77-tHT*J?M|A9ct4B!PF*;^t?2^F)!%Zaw6&Zzr?qXt%$8|$ zzdvU#;`oqh0VghKYl8nC9&_}9)>cH{1h6hmrmGLWu&kqJ2HO_2Ho+(y+ooQlZ1TK$ z=Pw8zvtaIQnmK81TkAqBFzHlV@cI9v?tb8<o)bs^f9jk%En(0S!k|@47-Y4Ci9=Bs zN+nrSom3n(a_At8q(T_9#D<B`5(X{p${L)dwPDZ_+BIxwSIaD|qVRjZo726n?{~lV zdms04zrTAu9xty~pWgGC_viijGpE$C<h$2rpD22}b?r7z#*fdcId;6m^`*l_qmOc4 z#*G@$IM9i<=cuJ-z~~Vd{F}|uV;ir`qyPIwG_c7XH0Hb^(WPyUam*X9>*&{;j=S}q z88~*t#L?E{)^-CYjcXb;cF=@PN7^T>?sx8)9lx_0^=`URO%pcWTYbXzfA4LhqrUeu zo6emJzQ$_?jXo!n8qqY?56f-B>Q6Z59Jk$oapPV02ZnbK*H>!7IIBD{T%*0(Sk}=K zzrP^Sits)In;JG<*>|)XG<xDW<Hq~aY}2WXcKgokTQ|C$K68G~9^I$0@!wouQS|x7 zpZm8z@#}VjCSLgOPUPfT7x}~sQ==ztyxrVfM@=|C%sBdd;|w=mk%PvaGrG@t;mATo z6T@*<m)spO>g>MfkC-^ZYeq*W)$|)ZB4ch7Mn%63uWy}p*y_InZ2Z~qEb`y|+YM?w zuR1Uqx^er-;h4Ox&G(*=o6h#nH(n7ZxOl@vhD0y7UVqgeb!}5W`hszzMu$7ubv&Ul zdaCv3zkA-V+PIHn#!Wo0btlmdUgy5w_z)T5ch{;v`u^#<JRD2)nOQwy&VQkeCz=P; z@t#{F#)N0+m^R^Yw(0bZ3a>fl{Km#`y|g}M|JgdHP1ozAVHFG;JfiXZ(a~e!N0zqw zqk;eC%viZ|&mTR0)P>Qd-=B~BuU**Y;Ln@TIJ)|@?pl35wr(2|^*{RL6OJCR>62(? z+mlC+IWaSOeE-oG9^E`7x;6ZG<HfM?{lli{mtotc8ExEhX4rDn#$Q5s-5}@vyb+_C zMmG$JPTTl1;e*IeM0?a!A7+~#E{Oww67{Jc+$VMHruT2ZX)Rj!5uOumqi{owYudEm zu<h)ob0%$i%}hT(XvBGEA3yq>jhB%_ZT+cJ+YIdI`1_BaFlqcT6B-*vPYlcM?~b+^ zICgYn<I&BdM|o(5Lm1fa=mDD+Vdv<`qb6RMY3e(A{K;<P3Fky3M};3(KdXPVaYd`o z*XkJypJo%j^PC$vVBC34F7Aft%9>-(s~<h`{4ry^vyWYm<fz#0l<{LXekeEim>-=9 zk3v^#xVfUs!aejafBNn4&h9Ob|4jHe7!u92|JEyO!o*|z3eK~9)BC(1p5@gK36GpV zhaaUz4Vn;cj4(HEH@5cV5#!Et_^q?>y&4^biMZj;9^J6<gK^`rL_IyPMuiXL>LV;V z`#VSby}P2%_=bU*apN~WFQP}nwY%}0y!hSEiH+Ax_WM`s#;sHT$9r+(wi_L#t8bjo zTvKpYMNfvOY@ef2Q8YK~<;0_p5B=iCXK!lbC*`}}dk*)BzNk6g2mZJtFKik;Xu^<j z4Wp0pf#G)#H|3xS|Ly0aMKuGCI(|f^`nltZ9~#~ztlXdrGoz#Ts^=kmCWRmS`C%KM zRRev-MbT;D9De5+{(~^O^=>=y{HDzLO<}J8cl}f7-6I=*PhrzP8-LxO88Lp`sOpx~ zf!#L#{Mc4E?{whCA3s^weWUl-r|S8w+na|~f1Ew7>gB^*f4-sW<}<5~jo*9Y>$_iC zb+1<Erc{6YojDc5Og8;E{9Z`-r`OKad2HHVoo)5s;paoezO(UvcAQt%RM+AB+247Q zeChP~YiBO|_S*yQdUu~&_x|sHPA0r>_%+CWasT?xKbzir)27y6r)>J+#y^|T(T_U( zw=MstBK9x;slH?UU;gudYDWLH`yDZIRKw^q$BZ3!*4d5cjGvG>*N6Q17ffot@S^HG z`W$&w{n5wt?RV^P{RbR>!ilMqP98Yul)*!Wo;vKmcAo#$@AfY*i`LuaUtSjR|LU3k zm%QKq<CjUBwzdDmqhy}n&`3|YaLR72i+At4)tGxv)tBE{-ViEzX?COi@6e-X?tc63 zc=f0M&A%`Irn)KF>R<gQ$M<O+|G4q5+_mzq9itEKT6NcH|9bzI&fWNmliK-vAaDQd z?Ra#?+h@I9{XMYnzUcDTm;br^WfbjyX?13WJF3s^O`ijs9A5L?{_Z~hz3$$*`g!v2 z{ao1g|M$;-e_qKQ{{8tT=2q9Ea97odTdMy4>;GpzE^b%de|GDtkNOW@&?f#L{N(?} zPqnq*|CMw2pM9&a-|v4e|7TyjX<V4sH$Lo_x1NX6e${pQ-}Pm!|Ey@;@3PkY{;zsp z^9%gH{*Ujw@gM%v_Iv--wEnZ{xWhRL|7`m4_rDI@_lQ1&n|vvM#yG#MN+zR!@8?I3 zXgFi^re7*0&ueP<7vsJ^X48BAUu~cI7jNV9;2%ArEI)zay2z`M(G~8pt-rsf<6QWm zuU|jwvC$vuuDZfIZ5Ks7b)5U7UZ?o!&c08tF7jHGb+m);JBc+q!Nbwv^Bz%}U)jmu z4b&yB>k|IVRF5dey|Gv)xe+Cu;YGXny9jISpT9sxN4xs_Psr*7pN5=H^DDdgwZT8_ zpX+uv4;|y)Na`dvVvx@8vabGngf8=TKQd<>=l-bu!ZGs2=%ll}zMH?}qr)F!|0xPO z$>UMf8NLH0o#(Cmx+1mK9JntUb&4k=tFycSvvh$wxv@L1GY1}wo;uCfpkC+rNet3O z-fw@$pc6a>6`kQZsQuC$cquyT5+Bji&*>yj!XlmJ1z4&JyaHui=FGvqhxb?Z$@e0w z3;Ygpy3CvR@@L$2jITK)isI|dlV3n@UE&Q$>F7}B1PwaDcOK^ZTIoE$iP{bJ$sG?j zXC33-=%JH5FKNwnfj`7jUE!Vjn758|f2`Iie%gmy<JZ=T*J6f_>g^A6bb^PYpwm46 z7;FBG{qu)N=?d@E*VkS;&i#?mDSrA`Yp#pD79GE}|Ksc*ah>4d=&95E$^dJwOI&xn zbEjk68>@7Z8?ixWc-e{JKVa<>m3ceA!!Sq3xjz=@6km+RI?JD)Y+r5mi7MP}px@)r z2_B9{o#vUy>KrdW#hSOZf8K7eIqNw0M?$CgVkC8zKOO2i*A?z|sx{XM9*&Am^Gwv% z*gr2n&6?{nZ#Ufe({b*Pg*wF-qeW-=)1Ns#wf4{5&amb>!Nbv{(>xP1bdKXAt$929 z<iY5!(|iqj=^Q_ae!9r}jrM0Nbb|esQ?ye1&7Wuv*6BPiMaTC0L?u3Atm|ASc@h@r zY%q$tz$>s!m-)oAt$Cf};^}D8IbMtzy2z_BM_2fa@s6Q`IrA;(t@FGTDP7_XXwZ@W z+SqWe>qKYxUex};9QYk{(q-O!qUW}b@z5q~uG4%oiaO7KKuMQ)J<2*d-}hl^w&t5z zPacM>PV@DcrE~l;=IautFLteOZVcayemc*8z))S{^%$%DfstrK*8D?X?*DCy4jrv6 zUx+R`%a0?Wi~I%Zbu`6)O~p{1;$NUq=lN4)b%lR?g?Z`(ubl4xRkVfeyzdO(=UFFs z92V#d-;JU!@L#YjjOTr?GS4ucFUAI)<yR2f(sA(*uC~rP#&2KeShlkMyvy~jLmlT+ z(OakaCZu$pUq?e2&%5NzGmPi6F;i#wY2<a0zr;cv-QfJ*>{w#nm+P@er+5mM>Ks3f zvM%yhSfis`qUcC;*xGo$8C`UqUqM2b_*>NL@IUT207G?>``_+!XB)5Osc6zUeik!y ziND1h9o^yYjiI2EJOwRbJimeEy3AYM8NL>AEPMo_ZH?!N=%lk;`lU7RWdFSL{hp;d z&SNn^XZRsB=mLL&$-2UaKHz%LNxmElbdHy!MVEQE1@2*;;AX7RS$-28e`pLJ`k-^I zlYBRN>jJOEARRsA`b48n@oA5_mbP==c^1~_Jimqx+uJ8^wb1(O7$1j(PVtSX*LnUB zLv@9B{gwUeIG>1Y7|&BMOXqmtlb%<dy)WO6g3j}DwCFN#v)GSyoKME;FrIIRKWG@` z`2%#)74H3%>scqc8NGFuuX)z?9lbBNpr0;r+vhy5b&QWdMko0qOx0O_7PG^6-mb-Y z(Q!TzMV;cyuq=${N3lv5`Rd=hw|DZs{4#30*bo2UMPD=M7$1cmI>lEYsdM}?28Hpw z(;r+zI?fX?S!ei{$ms$<S#q84?0tC+X6fiv_XXzbBu~I%o#FdY(gpquE5rELqUac` z(<#0T9d~hD{4nCW!0)4{uJHOdT@Sl@?Q+|Y(n+3(2A$=H(X0#nH_X%(KHx3SjWC|4 zVWH0P(^#U5{3%w1@x1%nKD%{-vnyQ>ar@_&5ZldKapw=5YaQpGA*s`R2ZriAe~gT- z@ctiqCg@}^@;b+_Vv#O$_m8ZVPVjWB3S;<VM7!G$4_xKFb(-%(LKpZS=%=H<M$z-1 zy3Y47Pu`+ppE}0<uu`XZ3fAcyKZ}lCjpr@?Vf}TCPeD(e<^|}d3%m-$b%me*!twsd zYkAAH)?df?Sj^NZz5;oj<L9t2jOQ)aS^qGePs0kG=7&+y1^z2)_w-)8{%h~8qi@U$ z9lBXho`^0w%MT-=3;Z|K>k1$6t$Bv=JPnOH$4?`xi~K2Oh4H+5)Fzs*6MRs+HqpH9 zUdtDvMQ8ajEZ0TeynUN!wT|&oh<@zY`3iK>IsQGm>k@D2&+GTrF+Kw+o#s2xp!0lI z$2L)VFZU5Ygsd*`UolHpc#kd2Qzv*77Kict5K3V@ug6O54}3)@Vx3O$Rp_|4x$!Ty zZ4*^=o|hrk!!^m<bZQfI)p0%%y>yDN#sHn;*N_h5dCwoViJEkR&%g|w=Ib#hjOS-j z&?R2CW1DEfKIXQQ^*~7{`68^+S$+c1zSf!7qO<mg!=odS&?&wH{dAr`LpqGvxlMEk znst)<@7^XFyPxqq6*F{>pT!(q;%`yV(H>rl7M<iNSRTgn8(6K&yj53oOE`~w1Ul&? zPegZ}<tu+|4fpq2{ypk-iEH+16AjfdJ`IgJ%{L*d^ZYty=`!!Iw{xxI{4*>L<N0Bf zbb&v?N?qag{-$R60LQX_o2VzE1I>*mqLa?@!|1LH{5SO06+Ykq*JK#a)6k%E{4|<% zkw3-EFrIfmuuYWL2|lQo_3Y`jd?6O=EI)>lF7oC-HBTMmqp(h=_zHA9$b0ec5!WT& z@({<MV|)hs=``Pg;X2O`9AQ0w;#hbknstSDPnxGr@EOSKG~b4WI?wN8Nf^&R>C+}! zp_4oT6`kQbQG2lQ{2DszGJkxG_3Y)f+_kTH>I9EOKb_$_F<j^QZDe$rckky~4CDC% z%+^_c7z=cP-$gNu=WUL4f9g2zeS-D;sn>D?Dmue=q4p53<#*9pmwCq%+eAHdoJS(5 zGyFIP=^}rMvAV*$rrJc4!+1U!Ii2Po46&YvIu|?`1)b)(SfUI3ca(L7_ZjN^>I6?h zthZz2H_%;|`H)l1M<@Am4AnU<kFxzRV|bqi$Eg$CjLAC7zr`$F<ZrM*N2A^EXwfOY z0V{N#S7D8=@cw7I-VXP^JOf>Ijz2<gUE%&?tdCCdV`$Vxt{dyz=@_4cIXcZ}pJV-# z)|Tg?t1j^S=%p*X>v+#k9p_<4>onhmrZAqrzziKtXcO&+IXb~-pb*CMjcCz%KJx<C zNgwaa52CCKyb5b{g?FFi@ADjKKRgm$bcP>9LKpa-sMk@mIbx_z@eDNT9Iv><b#j#R z!aH8-=X9J;!5p3D>rv1-ei1FY#9LnGS*l}v3RZ{l{7Xdj=D_cwlP>dCS=Wh<@zLn5 zQ#|cT>v^>O^HL1gCEjeBHPkWgi<vsb(=jiM=hv`UmwDgm?kSz%DOerG@QbKD#y<Iv zGp(U6^A6XVTVKb^1JPZl`2qCS1^x?Cy25*0=epGi9*1U~;fF9YjOTBW*U|NDqQkLJ zC%OMDYuL~Hc`8ae$IoJ=F7dZmr=y>{kI?a0ujMI->m0v<p1RCi-R!xfV|)aLhw(fS z8J*?qZ0Gto&Bx#7{OS}>#eALPB`E3=cm9QQs^gqSMF-D9hyJcl-un*6s1tk+T6Biv zbKN5Yyp~T#Kb_|OcY80L;;XPk=lIKc#vku^?{QzCUMKjj`|MvAxMse&=@=h_Wje)o zV^tW#TmQ06v_Z%DRK!kjy!;yG>E!*MjVS0MZ?T|Fv`ELe7nbQ94}H*c^+a>#*B`2O znXiA?^<aCB|A0Zd#GfIpQ-wCs=LoMYJ?ega%r&WlcUoxwI?hL<9LDnxAGgnx?R*x7 z>I`o{*iZZkpIIn`?R*_t!uUn5H-uv;@NU1Zc7khvQ+;igk9*R!eUkU$GZEJr{>@_7 zxi0bs^wZH(KCgc39O*oNj$+vUbem`wEYm4|0$oq`T3&@-I$89&i7@91@AXXUe7McC z)z0t*&$&m8&+@M^KkSDuZE2k|KlnSxFwk-Fa>RA+dH2u@?loQHgMM#6I?0c`==_H5 zydEt&`h%}kmR84P`Nfyad64tM9ba~h=@>64d95z+$7s<N9`LGXqE7MMSQEzZ$LM&9 zF}(Hb)&0kLz#ly)ZBOwvSgdp0f@QkIo4?^%q+{G4wS$f4=uP|4!N)CkkA>|#<1KU3 zIsWEtYZ%77<Jq&qXXr5Jk>_Bz&hwUkc0KDD_r@}v<Qw1hS#X*$y#0HQUB`I<(mKU= zy>HICz{5W9T+(U24{O49{s%e^H-``HA6<2l9}7R$Mc(}*_k~Vy28}xS*O(f{aN)1U zpKhQ052SVUH_u5l>m*--oX+x}F<+NC{;_LP2am*Zo#DUz-Fp4ZdEtXUab9(jFGq{c z@k>~tOMKL)j!UQbSLk?#xp7o+TspWPdg~OQ{F(EWwkA9m-F1QgfuxQ;ZxbDcp*qQT zAfxkK#ta?2`x?(Qo#1WP`b-(&Sa=MYbcP?nOkLz?oohe`pNGXd%O7Bwu5jW@*Od;Q zjM|aL@bLA<=rrGkH9F64qQfZj;T<;knnB0883~=`#i-Xs{su#J^tI1{Z|uLp`||$Z zS_hrvOOe!BehNc%k#~vOMj0LFG-l}FyO7rf-le9kuj!28F=)~megrdhk-x?~9o4pt z&ckAz<@d2nS2)qGZM0ekUx?Z>jp6-#--*RK!IMx9+xZ!+(<P4iz7Vl7?j61Y-F1%t ziKLEvABiM}>fo!831j%cE!sxC#@f!)F<j^PRW#``@9cYn%+ztd3G;NG+iqoUI>sq1 z)4{i5br{22Ze#p7V|WOb=rqqoSr_>4Sf?vIYFo#0mNn$p&|Q}~-pMiO;Bgol#_-nL z8-KR#JO({=h9AKIUF5IPpd;VY=R8c-S$-e0bcGYXgY5zxd?8xG7@oS5@r~AmUqxP* zdABZYqeVKw=b)rB{4!SQ632FK>wjMA*!g61)@gouSL>ilynWnS={S!-?Rfj)2hl|r zc#qv2mrn4F7@+f9MuQIi@$Tjs#&GOM#!v9RJOo2^n&%>;3tYhr9Xx7J$E7p;M=a81 zj(2lhI(Qsbg)yOj+%_s?G(Uo6y2#&PwT|{`8y$w)bN7jod<VMdJeSc^2k*YOW6=q| zbDy@+hA@UdLVTjR@&5a|K6R2WK}u)&bBxu|e%1|Ho#6sz>)<cLkHeUR-rxB1^Z{+7 zKA5Rfd>!WL9KVFcy2Se)=(u!(Ggz&IA4P4G<K=6A(l%PCbNnWj>oV_lu=Ujm&Y;8j zUdw+$Tvzy%UXDwrIggYM{wv0YF<d^xb$Nk(@@|K=jRxrik4K}<@PnAD3%q6Tw$U6N z;}jO^;2W`2=lRLQT_=;wpW7Vay>*OF!XlmK+fmYaZj*H0!x&B>YPL_l5uJ6Ob4R+K zb?~cLt;@X2QP%20*AJhLE;`M>MNeJisNOZ8gO5amPI2;>wo#{xoOiw)y>yOWMoO1> zi@w%M$9O!lI>QCb*1?~JAM2=J+i1nHp5qsr8}E3W@jA{!FiWTTR?OFVUWdgx>fbi% zjgn6CrC6!6Jmq-DKiS;)RV>tH-t7cyt`mF?R_YADj19WPu@fERCFaj3qlZrO16ZL8 z{6|!DnY*SO%L&$puQ<v06TL4_J-M}c>cH0Kw-CmcdFw&dj`LZqo#BP8UF08}QXLcH zH3<8U2Dgp29a8N$*AA_AjMubw=G3-P{jlox)M;&_3B#SgOC2wFJ-ylqj(+A`+aBEO zjOz9zZ=bGqoR_tBnTL<`>@q&hr;Vz<HqHAqR6D^x9PR#fj0tW#)_q}ojQb*|Q#>8> zbuM_E>-I8h%P*scE^)_3_l1t}wG&(qI>#?yQ5eH@8P`A<!vnEOr}-C%vaT8a7@c+e z+_ur#n6ESZb1c>+K4oHcozwg|Hm>t|ZKIpf@pAj&zoM(I@b8+;O_%sH%+k^MZKFMr z*9kro3v`C(Vo?~+oi1oS?|j@O_uUk0!p%tOsM)zgxK1)$y3m|$55D$d`_VaW!Sb-3 zuesEDxx#jS36ph+J6&dOI?ib<(7`R2JI1NT@McrIuZ{&{tPaj0tAm$KwVqeHZn^7~ z0msOfptsKQa~PycJbSu1pJd&5#?|gM+jG1Iou)a)Yh07)r8E2vhU+rFb*=Llnm51B z^*!C(ICs4<I{43M)@9x&=RI_Shhnx)^N}~SUjKaHjnz)_4mWxJ&#)$ZG~znNhtKl$ zl@8xOWXUa#U5D=@@-f1>sPHkj*?$<%S74FO@pD)j#&gXtd`{>XugCDK9Pb>Tt!UB- zJ{eh^<}L5AK03w+Bf8ogcno4X!?z%=^PI?ATOB+SOTrkw3oCSi-@L1B)bASW!&~0% z8Lng82TeM~H(;vH^B*uvm-zO3oTHhx^HTKCC0>VKI=a`sQLj^c&wXv9qAu`<DC-LM zn(ut;B%g;4*Sb#l^I!T*)Y1L!l?NP)4*ngAy2Ss)(lBO0+vrDFt`qzUhF@n4e}asz z@XrfgtMmLOR_Zcu|A=S1j`LV_y53rG-DBpUV|)}A>l9ysk}mM4NaoC8p=%8Nbb?RD z@UZ<?uKmZ|Q##3M6m{??=yZd*@peyGLmlVA=%v#<1@&S3BA-paagFH&r_mC|@L$pW zM*9hV(tLD+PsRY9;iDH@L!IJ@DC#WVi>122A7Z(#@NQ38pD>;uLAbVy+~sNSeUtg{ zF=*B)z8X_?jvqx%7x_cX(G}jVXbw8gL$Oe&c{z$<3{QQ=bvVm@cnK!!5`TsnI{vKV zd#?J~5j+K9{c~K#N@JoHUyJ_E=dZ4C@_EnapId)^8YLaQ;Ok+m&>4QKwc|_LMtd){ zAKMdrDLUM2t@t^_b%{57$vM(7?vIpC@f{ee^ZYily3E_Z?3tkBJPZY$=0zpPb&Iv) z&0lq$=ot4!i%#)$tk5}r0c&)LFMh4M4q474{61UoSFPKl*L{usCu=y{F>(QU9sDI0 z>FCeCu0Sb_;g7LOSNPO-J!ft;PhN%2y21nAv(`Gr%TUo}j^6hizRf;)Du(JD7tpAK z=dN_FL-V^R>oRZkf#cFKJ^~$nv5)Va?bps9*_Y1p!<eTF{4N&hGH<oYHLPP?_py6$ zj^^Xgs8f73rs^EOh&j5%TdZ~+hVk6@6ZhKf#`9%p&{=*M&APzvVx}&0-5T?}!)v)O zdgv5SN4?JR3mC3TT=!4U)i9p>VrCf6(=jiM=izIeuRE<d&%i95<3-5pBCo;%UE!_2 zbl&r>D;|iXPV-F|r1QM$EBBJFaJTio&esV(@N4ICu65=KXw(_L6Iq?-S1?PL_^NMx z*4$-2{3LqlB7cnDy286hHPHZ_;FoG@q844^&1!3+RXWDUA-dbK^Fwtt(F|SS&oEy{ z9crS(uvjPgVw7~2xAJ{9C(pAV9*j9U&2v%E1^yH*y28D;sEIQ7*bg^irq1vKzDMXP zUEp_6d#`iKe~8sY!*z+*qgh8=*F*<khEDP++tfrAo#q+nc%L=l<=fUo4Z6%*b*hP` z>KOmzhc!`ICwVM3=nVgKyP9aweA~Gh8J*>Ox37to=mIatN?qojJ2;+S8qeopxX$vu zJJv*tbb*&+nJ)9LU238p_q#T@Kl<quKfH5Il-C9RBNpj0cihFg=@?JgwI=HRfO+!I zk<@u!iUGRB@9$>Kb%l4`-8s^69*LDY!}nmFF7Vo}HBr+7>-nRa=wQs&Nq)bZF}lLt zy4OTq9(4Wi`X4*jI@-&4<aLt!@8kM;$g%J=#C48;kDj{3?e}%OI>!6&=eTr|8&TF7 z{^3E^^I>!5v(TV3yck(s<Sl>V8q+aOVUZ3l9qil{ycd6qCLQ&1t}#O=x%ktXXpIj3 z6rCP%jJ)R|)>bF@q(f_>Svt)#QP4Slq_^|&sMqppbk`N$`f%5kj`INIb&9(rT~}c{ zpNKAx+0K_Cp|d>h=$dGr&hSDk)kSW9jC(=HcqnQYnh)m@*TLH!>oq#gCt{gS@ieT` zIbM03HTji!@*e%IiB9k<1FV-W@p`P*(eX9W-q;Yv@JMug+}!wq6C9&1@CxL0nR}*; z*GWDPU7m1U+<l<?M<@6!%+VRX4-0jHKObBZbzS6rhq#wfuai6xLv@xPMx!qCKBv0J zb%KYY<FBm)?=Z|cI>9>dt(*F^n&?jmzaA_OuZgbwnQO`T9KVgM&YV#bU6F1b!vjWC zJH?M<<JVVw$Vm6F@ku^yl(o`nKD@#D&a$1?BW%x%_H1mlCOXTHBmNt6;IGh2N9Wil zQaZ_#Fji;z31q`~{tC0h`0?&F6vBAE2us3v{te1uJg>#NFn)sZh&^dMUxe;D%h#Xl zdb3s~?th-^d!TEEJD+cEi>)Egyufw%w6)?5ld2v0{@9Hdx(`otjJ)Ea>h>}Zm|X1? zKXQrlZl6WoHEVA6lb%u&9d(6sr&Bx`9gF6}3lP@@{tJ5Q3eTJB`F5%8+;XM&&?SC# zT6KGwpO{|lBHuEj+Ie1hRdsxk3s+Y=_@Zm7W3s&FI-hIaE4tn_j~1Qa)38jZ`EIP# z1%3}}bcK)2xgVc#EPM?*=^Q_UuDZmV&oW-e_+Z4IbuPFOah>5?kkEPlGm^T@yZqd> zq2qiU(mKVLBBQhXDzafbZ*g;tKb!2m_;BQPk+->}damO<v9&9_^K94EbN0_iVu4O^ z;@0Z*pXNIeuKzqQ#|C4{-1aud(qcS6i?lBB8Z_zX7oIIx61H=PIj#X6;{&i-C;65; zd=~u9+VW+2pPM?%Ph+w!@*3oHG}p5M^K^=b-Q{|H-Z|o5pr_9B3#ixeyKAD$5$2!c z-^}w`+l#ykMP1>e@3o&7?30_3&{=*QNnPZXNa+f9zR&UMIQK(Fr+6B&I>#O6o3oDb z2fuVrE%91D<bKa#o#cBF=2qZU4^*Em6+V1{a}mby&rs9_?(?8E|GoF(Dd?&zTzSZv zhvvN>cHim*pN!c$%kvAZ*FSIeNcH^2cx-EDdB~&H>m<$BEwt`lo8vdp`9<fQxBr#( z(QzKV$Tg-j{1}$#BG>%ddg&MsMD&M!qBP%)F1o-K^wPmc{KlH-BsV?jy_T9YKZRbp z$dea4mav_lLLqGD9>1-wTY`H&ZTn#R;lHEyCHv>Ci}tDGoPEYI>)`pAstddvvvir0 z&$*XhwjUmggwF76Bz2xgw-|Gh?fmNV)#qoK`~KefGA70M{lPOt7x)9L(G}jd<al2( zpI|iUH1GAA@jAh0VV%zK{fL$9hr2HGHH=R17%b2kp0wPv^i{{jkE4e!@)t<z=q+FW zV31Do1sEH~^W&Ht#`DvEa=fo;p8Kx*NEi4m4A*7;LD_3{jDLzIo#b)I>I~nCnL5wE z$825VFELL?@6|*<MnNa|R4mqMz6wipj(?41y2yV;Syy<Q_dP>&oDchpYiyZ0a2lO- za29bLJP$o|fxE4A-RcCNfQ356C;rVf^GD6o&|T;FB_wr;H~ZMv96H8*kqP5@8fJv? z`~vb}Jhxx%>(Vfuk3%Vp=jm7##`Eil-mtd3{oh@yI?lt8&}qKqAKvRt>&dSpr^~$U zXO2zBc`z2~G~a}!VLZQqav0Cou5ryT_rClB=IavI{nK@;V|*PFZyCc6p<WmGk}upN zI?H*?*TF?B)WLsQXZ~+HN4(3I?nxcz6Hu>Hd?^O$EZ?)<vqBg6&xqbJPu_BaYhK6r zaKv?zfAF=r`Pw7K&!Av?iNC-S9ev~L_NX@Mvcfv>jp(iO{2Efa%-gi7jT&^E??zb{ zxP&!2cuL#asNbKg0~at{2bVBb2M?^Njh5;(XHnL{2h`R^J^yUZoJKz#oW&p=+^$`1 zv`EMJ0F=Ub{tR8;bu8^`qd0o$;3VpG@b55Rm-sUj!}z+|=uvbkI~QC=cO4vcFdrQ} z_XoAnY+c}Yu`rC`EjO!;mgpE?gB3c*dv<gT@3~)iI40{f&qPk=_)E;w(H6DQj4i$I z`?m99)axRz#!y}1{=QdwqfT*b>)NQIgL|XnUmPPhBCa!BvyJ)d7~i|Cb<+i2fn~bP z9Xr)VtHKz*5F2!s*Zk1BuQa#q91CXa1P{hMo#xw6(0Lx;**re*zB~s*b)J`^QJ45! z|EKG$&hlG3)<(4-nge&($+f3rd=R?pBu_+7o#p18ov+Zm04sDM7!_US2X?W~k8J1L z;?`8>c`4@U5^umF9qm>dJ%y#Z$oKEzI$!0ryaJ87%pJR$vySmgn59eHv}bM9`LE`~ z3(!*+cm?|DG7stI-0L*IkMQfA3Qy{8-A?dYPX5?6XH4)XtzF^A_o{9$^3=Vno#TN$ zs-5PW_i>)QHqURO^WVHLzrU~b(iPr+KXcYeJ{$9NhVRBgUEswD_s+-Gf%om{Jn96W zg|yD_{b<$&{s=i;;cf@Hr^0w1gJKxZhaT#FU+sN)GG^#3{~B|2k-tPiN4;yKBhV7Y z^Gqz)Ieshr`0tL3+a6XM<#miNLq%tKK59QPH{SJd*Pf1ZKQ!tTKZs%&!^;A?!b^^* z-T3R=GXFH`+WXWT_-E*?GyH4J)J1+Dd0h$H`j~^x@k6Ms*gs!=r012+@pEX@CH@M{ zIy$O0dK)WrnYXQX9(A0LL-Y@G=Dm*gywwRFg~>X@w_%3P^EStLM(8-#Bl^s1`B@Co zC0>KEI@{M+EY=m?vY+Rtj`0Clu9G|xWu4(0u}T;CEsXu#ocS9}*3q%G(IE)ebCNH@ zQrok92g*9n=N?xbljlG7Z(VclJD|Ef#j6p1eH}l(Hro2cT7SMz^B|;jnrERw=edGr z9UM<NA7MPdfY?7BJFi7o9i3Dg{R9b}<OcNCnXvs7a|qjc5=uJDPhh1k@>;CZ(cs$X zV08S#cs>tto#iLcQx|zH`srwh>k-3snqNm)t1{0W>UvviZFxC*>oPAI=Kj(}{uB#z zg%3W>xzkC$0%1Qn9x%MRo+*A7UDi2vUW0^=PB%yN*1;1HUYp@9&u~549^+nEtdrb` zr8>j&u|gO4U98q+-YV^Rs$+ZvI)3T3d@;J{EI*7My1?(Ew~j{CM(3mUD`WT$bk=$P zE#kV!@1wh}@HQhIi;i=r(dHkTkHiw4;tQ}$XZc=~b%Ec&YF*~`XF88M#y>&rdUNJ8 z5z`sI8C`UqdyO%NFou7HjlU<xZ;iE2+sph7q79B~oH?R{PI2-q*QXAif}GCrqnM+M zoIKln!WeEw>}&JqyU;}!c<;vQ`ATr{9OG;cUW3^>8gJhd>_-Q;pz}Ab0e<FO<3sZo z$mwXJ&veYu2_B63I?dCtQ0Mq@6m^k5!&2=Jjz$M!xlZy~SgA8S;(YV@R`bm$=sZ7< z#k#~_V2O?{Fb6Et2_B5HPV<det@Hdk*6A{DHp%(&U9Dog(}nI69p__E(kZ?GD|D9c z#VTFkH?T&Rx&1}XR~!4`BhgW(_zHB^IsOg0>LPzN+41V=5_3jHCwMS6=rm75hqhkJ zkE4?=@`s4)3h#cY>qjSe6ng0l--ddf=Nqz)H#9$wSk1msiN8P>9bIk?=&lny7(I2G zry;3x{456O64y-e4AL<^1PwaL`%iVewVKaFLTC79^wxQP9{qHQzrY|JU1<(T>jaNP zqt5W%Xx0UO8&h?e-<#%m+gS(RW4h<LPVg`c*J-})D%YFN@#9#oi~J#0>I!dnwe{C= zJ_Z|fiZ4Ki_Rc#$icY%7?<1}&yu&rtU&nbMdg(M@je4Eqov*Vdb;j@j^wcSyjC!5r z1sJ3YyaEln%pI@yb)k-NKTOprz6!H+j*FP5gYUe-v3Ib}{5+a;iN8QrM>kq$%+v`U zjM+NP(=box_;D0;kw3>`9o^*X2Q1ME-tFg(;Rl)rW0p?yG~{)TAIAb+<PWh(S9rUd zJyUd?Pew_n`6jH;d43VAbcvst?b))K<}a{NN4Gi_6m^0JW2sK_G%VLSejF=xkv~I4 zN4I(AV1rKbS?I92>y6)@<9KzM+u!baqGS9Mly#EN#Og4fZ^k;E=jTz|(LA~B9qu(9 z<D<|;r}!dt*I9lHD|GTsbIF@$7(chxpD(h{FrF_%=PiuqhtWe9_+2D*nZLZpoON_> zZFCsQI?0z{ozC)8h;3;dc*cC^UFZ0>SQxhRCuq?X-sP8$UB`Kk2V9?9S!X^2O*+lj zV}{Q0)0m@+Jbi&V$86^Udg$O1dg<WTA2ME-dCP}g8#=~)utcZ$S}fN&ehI5|i8m`a zt}vc=eAH*n*5=74phc(naxBw1ehDjeiMM#nb6dywIMi-qJims8y3El+bI`$$qRY09 zi_1vp;OJMLX*&4!$6fO}&u^k7jN$kb&aVz0f;BqLUoWzT;hV1g+Sg#1t&^NZK?gs9 zCA!EHf8+lDq3xW<a2;I4SRFj^N!NcE!+Dg$7%pOU7{e16drod=4Cm3HgNw-M;ESHJ zZea}Pu_}z=BG!a4{FCQA|F<`1o`lId%THjIF7jF|&{2zHL`xXYH(-U%^V?XX%Y5MP zJnuRi!;{ceXE}PoIoiQ~_%OtElE)ySGkgn@I?sPXN|(8AiO&=r<AagWNpAO|dtpc0 z`E>NuX}$#mbe`WtgD!LLms~$O$&=7wCv)SM5Z5KHd)c+EV|)x!I>kLp&V^3$m592y zCi!V}(nbCh-F1Zzde!^sBu_v}XZTJu=sZt(-F|kqAAS{GbeT6_=3dh=J`}xmk}t=A zFrJ^pa9!lB{^)ZyjORl!IgIDCF;i!F(3|$Ni}m4qFkBb-U1W5bw_5JANyqpU%nsxE zdMwa6ei}tx<n?dc&#untJFaVFb&7AtY@O#fQP5@HeuaBM$N3zTb%yW5I$hw85Q|$w z9{H~EI>U>wS{HeXvTJEK^W?thqEkE_J#~&>zyMw1&Hv*14C8qyI`8hd_(3Fefj>e& zUEyvkU2i(Um!Mf^`3dB7k=J6rjy|v+e>Hv&+j%Xf>gaE-Rm{;zo`i)u%fG?WFrH%{ zyC!vTUu@7Ro{mmk9Sh(4iF;WW_#>>-74G(_*Z;^o`4V*3S$+aZUF5YGs{JJ{--O8L zW@tVbo%S?0o`fDc%TJ(Q7kS%%I=?#3L(rtt{EM|-+s*mqRp_NFeAqhIxlZyVjMZ6w z0$E+;ExvSZ=ot4!L8o{+mgpS6wBGpc&K=in@b!$2@#$Es(|ik-={!I2t?T>8_Rnk4 zto?sZqJxpsNxl~Ib&g*^QJ46l+ICTDFZ1Ll(4>pJ7BjWqSdI?CJe}km7VF>_uuPY@ zu6?^`wT|)q{(q)(_IAGbBNTOoyLD_AE!PP?3l*K=`_Z9?@!Wokc2Qi%xG#F?6u-Vr zyJ(#*^X}Ukvyc676ME|`zlWi^!UuNpb2`a$k<$hK91C>h|80LXmgp3hw=?H`?Voqv zzFo9P$GI<-=oC-Fa-HR;uu2#CBdpUE-oCSA+0SeFt}gAOye{xZXwen!wsX5^g--Ao ztkD^M1|1XDlk0YA7j@M!9);dI!}np3F7U#*G5ebXx7)2<RIg)v1cvG)Pe7y2@UM^! z<M~s}(iPrych`oF^Wi=0=K!zeE6}KO{5odnGVigE>p>?thhiARC9KfF+wN;kbeu<_ z(}Cu|k0GIpT(e)hXn>CKK#bLC&SR<$PVVnq^fVv71j}@m@54%6;5V^GmwD#{+C{Yo zd0*~}PCCVt&{b#oKJ?TDe&t|u)+Mg%)h>#DVm{m#opp+TfrQR;8U1wdc0X+wrFERQ z>F1g}So1K{>onhn;X2P{H0j_T$GX3Cg2!W?&hY(MtP8xwagJBVcnDVOH2(^<y{sYE z^=}t-(J@Y=rw%S)fDZly4Z6Zd4QLll)+wHgSz!#fIo^GtV|+DQbdJBp3LTx`Ie;}f z$!8Ds+C$8l@53Tp;Ezz!74CMbdqgMr5=4hue=ef44(>F}+Uhu;kA7hc{}E|j=7Uaa z7d7i7&p=M+_>MDd?`>`Q6U@;SPNdx%I{0!d)j572E5jJ>Hlkg$A&lWM=yaH4;rr1; z7x*L8>k5A}+S(p&9nNeQoq(Y_#W`ej@Ozk{D}3Y_*Krub)3GRw;TKTSCEjeT_0ciz zi|7dBdAA9kjXJ>@bV`~VKZzc?$Wg}Jbnr<SuG4%AnslDu#7tf09nW=*={RSwSO+h< z!1g}&$y-kHtkW@0p{#@FVx2B<+vavr>_}s{FS_d#Pe)Sc_(crWC9b>B`-Sn`>2l}v zD0AQ;n5xr!3+CuNzlnvq%==7n?sS4PSgC_sutAsjM_1Tyy)k?xdgvU#fO=ix&u(z< zA8oB}G)MH)!Pg?KbG#DGy25>La$a?c=Ld9wkC^4!)k%H@%XNtd{oMJ|X?_JAj<KDO zxY;v7CwUTj=`25ilrHjGjMdRCKCh7t<9P{Y>k>bAtM%`zc|AJyGyb-A(cb8)6MPza z>NH=2dY$9b=UT(Coo_=$=lM-^IMzDz_IH`5j`Mi*(ituwrGwktZJs*DeUa5E-mGBE zakg_`H0cyyjhQ;fCCt;o2R-82(@CC=Wnm2e5vz5XcYM_It-twj23>UU<LIf2yys({ zZ#uy@ph4$(tA(C#I>t?yrL$c3ThFlpw)6Rjj<=nQ=&XakLPAGRI~VAulROFOFrHsR zvo7&=Mc0Xr^W~VYbNnreI(o)Fuw1A3kT={@C)g)XLhXt6$-hAtUF5IOQ%7$aj{!Q# zSu}+4T*71>yzO$wsN;M-7KAap3@y6MJ>PQdI?1!JM(2akG3CA9b`7JePV++a)<y30 zj-S(U&Y@8U-?q|won$}!9+v3}_x!*$rjtAq9Zxo%m!Z2ZbMFsbpE}7mAg%Kp`^a(W z;2SVIZ0EmVp|0>dtE}@t`{BC3Iz}DigRx8}c??$S4Bvt^I?wNa?wK>le)zC8_M?+L z4Mm;f5|-=WgZ}AQ!Wg~>9ZqpC@YY|rUv!)&qL<F{r%34vcU$Xz(Fq=dtj_TLn5_%E z4h8L-XGaHp?Y#$kFTM_IbS`W|$06p!yM5yv=>$(fZ=K^8Fer@Sx^JB$9pmFLRi}75 z=7jOQ1T%*k&z~W${Q(ibHfZm2+ZcWx9ZofdKSL)SwP_#iiMUSiu(s`ezjD_M&%k`0 z<JC3oeFJRkz}waOf86Uh4?|a-<|#<%96yfUy2u}*pRRECcI~4<I>Gai)&>3(YEN?w zaNG9wuVb9USRK3sSzY4KFjM<QO7zDL?W0w?%zOR7eumpW58JH$#{Y(u=8q8mJ79%} zZC>ph=R3BKh8rLJ4w`hC+il^!bc~<C#{U+^+iq3uI6sXQ#uRxy)@YNCc1Lu&Iq;<z zuCsgxGP=M=Ze86^ioe*Vz3)-uwcECj9>r2!<e8n?`+hZ!ofo1Kw)5dXY`^jE!6kX= zcGmW1)`ZjBTU#A`dS~w&nx~^#=Xl)?UaO-W9UsEqp$qP?Q}wkmp55Ac{%sdyj4$$f ztP8K*xqY-hI-KF!=I*;VE}h`fn4vS=E#BULJGGs!#5$ehKcF^k&iqfrbhKOh=o?H9 zy}R>>SvtXqJ-jwF4?}E(<KpgJoiCl>@tCPIJnTo_H;m!iu}<gtZFCsv{BrG{t}z|s zuP{SL-P%WoA+M8s5ehoX^H9_UzOB1Cjj~Vv6Z+{g@A%{PzVD6ug6lC>r}&V)oJXDH zOHk2S{tcoAYs)JU(-nSuZ|6prdFLL^hmP|w%-3n2ibXod7wuy$M%yPpg`_U>S4in- zU-u}|I>Gzz=NiySJ`1aKhWAOdj|QA+3=cztPV+hYyZ3a47oe;Q{4rMR3jgo`>#XDa zAR5LP!+*nMUEv3Mdf%{}w>`*fb(~Mf2A$^V=s4DKasPw8R;Tze%+^Kz8uPXPs1<d? zBAwume`+1Zc`qJ#h;yLRd^-l|JimYjUE*tcw~v<T9Dk0Ajt+ATAUezX@EF8&hW9?g zdC>{J33GIw|AYm)%yr53(PACrKlE{rpY6T)z$0BJI?0z{sLt|z7^@3>cD?IFXZUrj z(PiHGXxD3_wc@_$q*J_kU)O<-@p;JWEI);UF7ihx>Iy$_tn2n1@5S35=UnSJpN`== z&C}7SbKHM`dtaycF|5-?{u&*|TdU)(KRW9Ke|&=bNLP5^iS8Ml=G(DQ=lKP+=n`LZ zQhVPs$9wVTNa^Tg>yNZf@)%@vhW8%i+S3WX2^(~t|AdYiYsGb^w2!*z82@3gXM!&A zfkRv~I?0z{k<RjcSfUGj_NncoUgvr*ejS5!nRg!Mn$dCYizc1o(}ufmb((KMhl%FH zZz8VC{Lar@x1o9aGh7=w&O@+Fr}^v=&c%7&m+wPH7x*L0&=v04;F@eQf1ZS{I?GR> zw=VMYquu+L`tt^7dLM+(tkjtHzBg&L(|j!!8lU4wu_U~fM~`zJ&o>9Y4n1^^cRtHK zsN<YOPRGvnS%8%~YP4q9pp!fj9WJmRz8wuZ&(ES+m-zg1ysysk9as^@aP4^SJIVez zfus(;0<(0E3z)Biixa%B4qlH=&E}J7AN>e%o#F-On!hga8<?fbyyHaoi;nY=SP;hZ z1z4oBd@ovbfmflVD?Ii*bJiKIZSqXG(44s+X6qDB#5|qnrt_=opXFUIa2_x6zB~Y3 zbc*jrGUw00@UD}pU!TM|*=#?)ZVApI{JF~Dt{2&_*CsfH8DT%1!7N?1W7K)uzP#8y za<TQ9?6rvN1P?+Fo#rfh>EOkexK4DD*I}uSF7>qymg@u$#!8*$X{hKNXD;&$nQRU` z2Qze@mtwXq@$p&faEUo{Gdk%kFGct|t;APdZmn(4@#DzqBCp3x9Zm5ZxWfDDJeN>= zsr`p-i0R;=SGoptnsb<~gNs<8ga0(m^?#XbgWFDb{plDVfZjUEV`o@To#7l7>W$V# zUF6kQS<kHZ<!!F^8KmQUBvLxXzeG630%xyrErqYa__5F(&4J&z)_EN4&jNA!I_K^R z^XJ*<s`LCT61o(&-(XF`b{>0^{p$=5{JCpbr+MTpUK{?*D)+h7d9*#nr~e|Xmoc2Z z-5O4HF8HK7oEM$u+t5Sj`MEod(<S~QU+rkFui5UZc7o^LUENQCFPi7PKJ6HJ&wI?% zYZIKtg0O$S<v!1iEA5|OL3dr^Z_!&v^V>)JA*B;M;(q(o8NL&%b)H{AG|g-ITXfRV z1MQ=ikPF+nf_XYPw!m8H;8Pzoe!BT^4n1{n5&d-V<`26!bc~Z&p@TE1=-_P&o_jN# zcdo}|o#HiErlUuk2dvf!&Y=D(ujLgOq_dCuyhixG5G8K+SoPY7@gWG?(|p=O=iB%+ z&p=k^`0HPJFC9JZ8pax(<T+1R!>g?ozk-Y|afd~|me4Ui0<(3J&p@~))4cDK*5?{? z<}v7{GkhOXy1*Y{tgdjk#pV;n^Z2K%^-SaWP9$`mm!n>nd8^;LS9OdZE}FkC@JCpu zE8OiF`?=OWc?`Pi4Bv;OF7R8=dKTz1Z~mNh)-gU58+4MJ(D6F!%q=aBU6*)0^4edZ zi1tQ7C%6Gco#B6=*Y(Cc?>u0D4u0eXuhm8V1dDZrcUj_E4P$s1R_HW0|K5Ic=D_!2 zvM%r&n4!x&VX1ScGkiZf-(U>?4GCT0y<T#C>I9#Kw9fGTXb$7~Q-t$a;l#_;4j%MM z>$Sw)U#)(=B=~~YjJwg?_@rgN?z+|W#&7)5Ir23|nWw#39h2jlx2hfEGZB6rTH-C= zv4);wG5)r-qZNLQgL?ZfbM2pe{i$Qz3ynI-&6phKzy-|ICGPjGb9a+_ipQ0GhUyH@ zLQkFN7S!wbd+np2{l#-er};iC(*=HUrG3q^PmVrt-Rc;>@S)d-?YzZDKKsLV-gT8@ z|G9l~3e7q={x|y!+j$7q=``Ph*v;m{BUU@7I>Yy2fiCbzXwem}{d@IX#JFo~CphzI zb^U|)t5^%49SJ_*bI-<GtQ9vSt+Tu+{8$%x9dbHaV{I`%jOX{haKFs<z8qicwK_P3 zCLNr`3>{p+939+ly>or5HQ^(W(n+3x2A$zM(X8|Q3TEmOFZ;%IcAN9gTYYQ&b&QX| zaGm4{$mk5;iK#lzr8afG=a&8Ow@B!yZJlpNSr^so1fPMSI?ZRctBaQD4Bv-!y1*YH zHpj7ZxAt{Wcb(udNa_sVhoQQ_?`}~Sb-3M}dB-j5q8>WVXQEzb_!$h>C9d15E^5*- z?u(f^#aCmV&T$Eg!+4Ix%rlJV<TiED(mSjJPrz!O;X4uCX&v|#bkZgM{kC;cE;N6R z`8w)U7wv(CI>85TZ>{q7$(Li0&he{g)MehSb6qr5CwM&O=nOxCg}TVsc5z&Dy_SEA zoG$Vw$m<I4vU6Qj&~ZKiMV;bD;&oB;UB>e#n58Sc%Wl?0$N2;-)G59cEjr7Ccdv^Y z?siT&i)J01$5b7B;U0C-s<55&*bugJ5gq1v-_TthZ)koWQ+0*6`H^GMaUQv6U9?7L zcs4rTV?VqEopp&n__5dO3h%O)_tSAc0R^4nOHtHWeh4L9;B)t>i!%4x&JSUxF7Tf* zN0)iaee0qHI>v`%u}<=#`#E>_X&#A2o#7kNtn+-yfpyUeo#ltIK^ORa#O9kb@7l92 z>Z;>>3VP`@UylJg$Il|IOT5Fu#{bfIJ`wdg#g}2I&ho=()CIn{mva%ebGmn(zt?X6 zd_7|K+dn^xuDZnEqL+>itBVf80G;FsNb3yWg(h9#o`)O%fH9oL03Ce95za-}&Lgo% zXZS|6=scJDxZf9eU;Y;TbabR=2!`tfpMi`{bFSV!sDqzI#|K?M{3+tP!n+=APCCx7 zp`gqB4O(<`jOzqT!x(-IJsvWKzd=$*eT_js9p~3DKaAmT@c*%N|8Y{!i37(!w6xo9 zHHeZh&Qg~!h&sA6=!oky$5IG$bV|Z}SyxAxQ?y6iAWCxPh>|df!eUPAgk)qX-C_{- z66T0P_&(olf4m;Amyh>+=KXnpe$4L5)*QwRGX^bT46j7}BgXJg7_6h?jX_e!c`fp~ z!re}Af9V(>fM%WGStoXm`V_1Wzl|Zf%)5-}?CVzh;Zre2r}=hF3gh{0Ob_FEmz4Jk z<N2<U&da05a4RP0GWQte9@cSgzzm%Z#{4jzSD`tK=booIXJI@yU~L%BGq5R)=h<gi zlgBi#Kv|dgCscGax^r~eA6=`Ddo9nvB%SA0OxI=Zd5-z(IFH1lFrH^(Ss2f&&=$t? zpb4FQ&Fy;QDJbY1zlr6#%zIzxUeF1?6je{SFL){9y2LwOWX*M)&&4R6;m6Uai`?mA z*P@Pb)uo-I$xmv2xzX|H5_h`HoWpiL2FrAce>Ktdx!62;B1Y*fCoXr7=-{zv(;1$J z4Z6Ucu5{j)*e4%{CY|DG$m<+`ezp7hDc2b9oAq8g!DBI8XSj8WbE?ZcaH?~plYBWg z=`1fs>}ki#-=m+7uI(J{*JN#Vg2$s(XLugg>jJMs)idV6kNwSfUvn0@`FhW4+l%}e z=7cePz;xG!PVi_{H#^t-ha3HKXubxGI(t*+=!BcCr%v%@D2MI*0M_dQ{}-Edh4;C| ze4e#`9*3CD@FIk---^8MR?m6cE8J^_{p&cNaGU2t_}Lvli}-Wq&tGAnj&Ao^Fw=4A zB&RV;2k$q_c;6c)_!5MlDP{Tgt=o${;0|*(KEVyBdfsdK#X0ValYPI*t#@_a^1F=6 zeE!`Xo#DoOM`wBJKRY_do9^l8=w8P=ck6g=yl?Axo_hb*@jPQ*N9TF&{Eja0DGQvl zGkmYX{T^~3`ME)Y2R+;|Cdoq|>F5;S@~HdQob$Zh;~nQc#-+v1qvHy`?5U1@W_h1y zIy%8`HFtEG*FM{^&kB!vzN6Fp^uIdxQ{<KxI<}X%b!kVJdD4p=o#onP9dnNH(Jyz* zC&kaa(lMsUmo4uYljW(eb!^Y^#uXhMz1}(cPpPBJy!MTbuJDGHTgSX<om)FP!;Nos zbe5;S-O)Mzd3DDzM(?<P|KoGbnxy!VwvI6czTv&C<9WvW9i8XCA9Qqr2Y%SmN#1j9 zN5{GT<E>+O<|iGU=eeJDbb&8i*U=en{H&w1Jav6X=Xm889p|ykYbzaVUSYpjFlsXA z;C+zS2|fi2b(&AzVBYTcG{66id#QLpROZ@mJ>ztYe~TeH#jkI4UUZ3nz%m_e^0fzA zb&{ul*KzOUxV+it^1tkppZnQonJ)5QwypL%Pdx|tqfXU+*R*??$8J|0&9ObhOSiAy zau1exRCRSU*Y-4@TT|_46~^$LSg!N@D%y03|6N-h4Shj#m%8d`oR0Ac$m$fI)vG$H z=rqqpkEQm*YcN2Ux%aO2qvL!!M(Z@sMq?PyYcM^G=ia@|GmPic(HzF}OtgmayawyT zc<#MhbyU@2JfDs}I?b~&Q0I9KhU+r-?o%C&3FEoP?%wM~%|p?wQ#^JL|L)(`hvy-o z3%m+RUFHMg)lpt2_)IkGG|$8GFrHVTEsW<A_o|K>Ub26_1QT?YtA0`KXExTB4??R> z@^sWM^BKnvW3Vpp?e*1Blg{%B%+)3S35#^Jk8P-b*?3-wA-c@l^sV;y^m;Eo1`BnH zFGsV^@&YW^1s>SX`Fh2C_#8Cq4BvreI?vCcO&9q+tkq>6)ZhEQ>a~0UM(GUSiE%p5 zuVRue@e})1N1Jq!zebPcj%7e~)F1Ua!QWv{*uKB@$C9v}UqkFQ`{51fr=tVB7qU9f zFJe|0!&fC-KRU~gqH2Zr<#xn$h1VVA9EIi{2fNpFoX25?&T#S&*Oi|~1;++<bnv@d zyUgDqd?rSRR!8?8Rvm5j+5)dekJqggZ#T#o9pg4k4cobTu;UHedFNkMZ~3`XoR35J zd0L8Rqhd^+o40N+hCbYS+Fs-e>Ppt+i0bGqjMin|c8GJTV|*C0I>~>=be-i#F-sSD z@UJ~LeEpE&uD>z=H@udQMn9e6ZI5(L!*)(#df3iO5nk&TvqpCze2tOk`lG6&vM~uh z2^(~pufb-W;}=l1(z)Xw(Ws-NtD|3_NhkPqtPW#%Gd6@V$5clnF#Jt(;ERyfSspvo zd~}BMXwkt}9q+hWjp1b&sM9A@N1r16T(QD${mwmRdzpI;cmL`*?{cDle#?9Dz9Sr) zPVh+>qSJgGhUpwXfd*aVcBFNMD<?a@q4}T&$NskS!nYu<^ZWsZ=n5Zviu)^!;l-yq zeqH4C=(Wli-gBgLq~kmSgLR6p#xR}b=P^nb`Adw`72b1{bE@M!0!=y<wqcge^696U z|7yp`w_%dba|@buiKDYzlREfd^m@mf`4SA!S$+gbUEuf8pv%1D+2*6;d=e(>H2)nr zo#W>*R~Pv!EYUvjq64v9CxZWI`x^7%PUpC0bc|2NdY$H55&g&f`K)ujmripQIUStG zoG^w*oM(KSHQ^@2b&i)|pe}LsSnI4~!5AIJ^AYDe_d3ZJqxxOfB;SobI?t~op-bF( zg6Fo5@sU`rlYBACI>UEkgU<8Hi>v*9ZfnTBGoD>K&ZlFcPV;QE=sdrRwlJPwy~H!{ zeecUZW4ewmwVuf91fPvXI?We1nrGP@_->?ho_C$-y>y(1qD7~;5v@AQbFo$z!ZvKs zWv-fp4;(L_{TK7sX}$%Ebe>mYnJ)7VldbuO-it?|L8tg?jMG_u1e0}vue{PV8MbpC zbsyO$7tu=xufEE7UFPktHU}N!!;sfW9-Z~twdTf6sMk4Of`l&e|E_V(=xB;HM6*ut z*(m8W{~c>}j?bLxp8D8!&Z1EV=fgki;Az(yuX9|$CLLTt)hEs!KXaX9*G2viSzX~B zr#YuO&Xqve&ao!1{nRmX0x=!@$Lq~OXZUW+(0P6x^L2@TMzfA?aQ)usIn!?coI-;R zo`Nwt$8Vugm$~$J$D)HbBKoiW<f@~-i0K5^-(vouc_ilOG*81qo#Ux9y!SfIi!oRi z`BMzj6<&M0a}%0-&UDS`I3I_#I>kfpFz3%SPeev%c^<O5z;o}kZlQS<>ef3J?mWjF zbc~~aSZ5vF7xQ(3M`DRib3@+q`E$+FFjVJwF&cD{7v1CD3C*9PtSj8}UUSfK?s1=M z<_pcoVX{u~L`>INZk*>cA~erKuP@D?SD~LSbL#`1?V-8z0`IM3JP0j1$paUnqIoP* zI>R%O)_I=su=5(4U&4A_;*Hp>qetB91<#rP=|`;(nskCkVwO&G!{eTfUum9(dY$9N z7^sW9=n3Z|G=GYsu5iyM%|XYx#}c0}Uu!-NqjicWVuH?c<I|pjp?MxQ=>o4p^#*Ig zt<65;LUZS59jA`*Ak5WC9{9ZX`$qFvBy@&nBB}E{<6rLE(EJjX>k@B7n~q+vK1+QK z^Q~^NJ{YGHJQ9<1nj8M@b0joRL)Av>!;8^F7kSY#_eN;`6nS0Yo-dn&&hWd4Z*p9` z<13Cq$N8U_stddVvvi3Me${wi-)8t}gs(-5eBpBQF(%82*SvSuocV5qzel6M`>k+n z#w0j}>hGKjZd~cS=q$G&t4rMNP4BB?{CgC_cs}4QU$=a3Kf!3!X>P()o#Ss;c`qHU z_B{n+KN!#FBCa!h%75%%r};)K(m8$+ExN?*ZNBc>Y~8rqyXLK9{PTO(Q%CQ6wxg&M zd^TEjn&*7re!SY(y*y~G=hBa^4IYn_&hVW`>pbuBiS^WR9){|l94}vn9y-gzKXna+ z?ZL=}?R;&!XVI<Z&mSWEIj#zS@?Xz4V=BDkI`^QC^RcM@*?#ys^w2qe0dbxD%=L&l zy39YJpriG^uYtdq&wo>PZJ>uve_kCuhB3OxpJ0-%@FQRNybj~Jgf?B~<G*wrpXJ#3 z!T-5#wlRi>eFdH6-+t{LInzA(JcMg6%M-rsxc2ft_}(_EiRKue;w+Yg*Kz^N!ajKo zR_ikVVw;+%T_<=PHt7r}wyoK+{~Ui=RkP*ygje{n?d&W3jF(^B-u|~e(Ek@u6Mcu} zI_g~G+dZ%Cbf9l{YNCrUSZDb7nwn_3PVps}tF!zH!o5@GeqCy|{M;tN7uA_hcrDLG ztjhfP{;oAqV`wg+Ntbz0tY*vatj=&5ZDBj_vV;BWI1j~Uo#N{ezAwx1h#hO9^mev$ z28}w;d+t=T<@>b+ckN*fZIAI#w1x5fI>PsKC4OfYYq!01=vfn;k1c;!4!^Ut%Y1yV zj_qkKW0>*5y>>MR9p|GlL8tgdY}r2#@7>WUPVHenVGQ4liq7*_sOxMFd)7opp`T9i zEf}iv{P{l4yRPuyeXVV^^Tq$f0A1jn`<k1M^JI+CS$+#yUFISETyHwbO9HycefO)` z^81z(Jn;bMy~b;K2@1N%o3Knr2i8O%VQ?4o;Xa9)s6oehIL7G|Pr+oJ<JS*$yt>4l z537lK)H*MGEC%QlPs321<Cid6m$>sF=QoV!%LaRGow@O&7^sW<=HWGdf2w2TuZMJW z^lQg`ocV|Gya{V{G^{4N4Ru|uEpL0g{pc9yPIh1D;Od5&DC%ZA--mv>z&oDeT<SQ# ze5&)JOS}<P-R*y5P1GMfbb?2sUZ?qb4AiMn#*emM;m;wTSrfIM)zPW5YkY556SWvq z<aVsq6+R(ttzurwjY#S&@ASuxYb?%tol_IduszAW&#j5(>o^~aVt6h88Oy_Kc>z}I z0{>!6xZli~8!$?z`JwY_qJ_G^Z=*$*dHb>MXC33i(591o9@=$=Z^s6m=YJ#G(OU7g z<E+1q@!{yDlYAcPb%tjnq4T`g1@@y8d@Aa8GB>^sy>yPBM7=KZCrIcD?=r!4uj70y zhUpYvg9e@Br;ye~UWW;~!n<5p6HU@_J^@p8il4`*9>#M!Cg=)3dXaSw+qoUBI=Z+f zT7~dTD03>~TH4uu_&N;HIbMWey2#&S%g><x&#_>k?G@hT66>$yd;&^3#fe7y-^Kdy z7!21Lo{O|D@ONm`(PhS?DU9d8p{}Pn@M6Suk&pbd@jA(uqDg1@=84X=&htyC=o0TS z$+KF=x%MyKx0mzFgVCsy{3OCU6#2F*JWp)T^E#~66~1zE$CxaSxYGLU>KOS3H0T^Z zhO{p8saJK3PjfrM-?v!dSl03Tya-Ms{F(6JuGiE=&0ZVhOVFmX+-<74_O_kR!zi8M z>#ub#e1_(DOq25zw)1;ft;^i|Z`MJ_`Q#gXChg|><hw9K=ehfI=TXOa&l@}T8Rs`| za^3c^A3pl;?m?a6Gjknd()@oncXXDMx7I{?W42hg=saI=oBix=Zd}4J9el}5YofFK zA(rX*teWV=JB;7Md+}u$qO;s%wsrQkO`P|<b8GW1bG9}&{ll};_#8ih`MSvM2tV(Q z-|al2-R~mK@+bMNUz6~e_jGicH{Iu&@!IJAnrI*N*wZ!1qY&3=z7_*?j+bDtF7kv0 z&ZExo47BPzpSRHXxMShI4|U8r!7u;IG1^|@-Y@u^(s8~RO*+FbV15|G`!2OsI>DEt zU1xa%s`oPI7Hf`vI>XHvri;A$i}tVM{7*FL0(btm{p%Q?hh;j$AEI4X_}4Gl|1X?h zz773!o<GAdUE!mb*}qQl{b<q!{u%Ri^s;*g%fc95gmzuzKCjsS-sZ-CMn9e9P4A%I zYuC8O&}ScW;72e}7kC|p>k1$6ANPY!Z~>FU7+!}NVGIvybIt1{PeY5&@yBQjV|dWJ z)-;Ua8K~RW@$z=>xjuD_FTxO=;iYKMCGPUR>mZEb6EIb$_<GFIIerC;!g%gk_SvW7 zJQizphTp<wUFP@)uEV~@@K_Ac8NTTw$NNkB<mZspMgAXhI$G=bk4<4aPiVK!{k@ha zueY8$%ZriJMgF<sUe?k7tOHtfk|&}qjOQD^alHF^Uw#RbbcsLw*7HYKc*l*NKRV98 z{?RjJfc@~r7^5?MFDB^%e~Rh4!h8N?4m!>!W06kt-?2>R_$9RI5_kUDd+8V-gR1?l zIZs0`o#W>*Ko|LIBy|*Zi4H`APViWa(;2=SlXae7M^2acXUx^nHeI4YSQ5tbRoixn zHXLAm_(8-DbX>fklYNHf|6r;vb7s3Pe(#Xi@}1bE^SlDp3CFU1muN(1<8+EAV!F=r zQ8itnwP8D7hRr(5_o4bA@5RS;aa^96DPCXO#qS-mw*0HEj!P$b(GFdrCSByuFgJ|h z-FEcvbevB_i%#)XXw_MM5NmaTKgR}L;oWxX5>*}SwS0IF<8_k9qM|eW5W?4)1>SL& zF43?<jOQ~kL8o~prs_NwdpSlO{3&`3^j_R^*Dg^%9p~dPSf_X*hUqM?@7=|pg*2Y` z+|3-qcpibOLyhMJ2wwvf_^*AsZ24X_$Afq8Si>ZLvuBrRlJQZzOLQ#egxB(|Sfum( z`(Jd4h8$))Uxo&q<@=D<1%71jj(ryR{`#%WC+ySFDL!T2j!tvB@7Cu2{km-V{7Udy zzjR*gGtJkcP3MC9cZm{%Tw~m2KkKYxd;~`8BwsYZYjuWiLz^yfc7OX1KX>Bv0j>vM zs}%V!3Hu!ESom?IbdkTt7#$tdCE9PGb=C<Uj}1D*^HBFI$Ik0euPeOAVEfl`J{`++ znrEY|^SlO|beS*xjrkpJ4*V?gy2w9bk&cdZy<wS7@|9={<GF}R7|)%O&ifJ8gfr-+ zgC`%|CF(K6c-}nJJazP2>xc05Ly5;9>lpp~Eyvpq>k<t#CdNq&)4_Kle4U)<p2v5I z=Gz|UB${=Kr(?^{4S4z1E^*xn9oyslK4QOi>>T~he01=?FiDqq6Q=9L@Gj95ly#0D z#s*#Bqki8d8u}aW%hzC(&hh>u%uOdagJn8+De8~3fBpi4b%l=@<yoPV{5LGrIbMkt zUFP^{)=CGTi48i<x1%oUoboEv>oWH~-Tk8DJQ58$%`-6}jOT66@Ep)FPGOD?&S8-b zeg(^QiJL|{e@EHQ1;mcF4&41r&nsVV$9OWv*q-IN;h)18zV$56E1l<;P|+pMp6&b| zV?5u7v@Y-)X>-tJ?*2!w)iF+-gQ3=z&qhk8`N%QWO(*#;Sgy0&jIu8Bfqx3uoY(Rw zjMHiU2}K>9XWwWIV|egb>v^nw^1yNC?B`%f?sC5C+4mhWJ_+GoPV@5^Y<!W+7_Nh- zT;!h8IbMOHE^*Dp-b=^$7_{pY--OL!Jim|FarVPIWz0v%`D6^%X`X}OI?u;k<`{<A z58s58&hg6_qf6ZB&#rSF;}bDGjOV+N*Li*ui*%WHn&=wVaUP8}o#v;nbS%d^UXHGE z%sM!U4LW!xs!y;_-i$svy4n~dbZ{0!b?}QArAyo`>sr+@J_cEx;yIY1^W5pL?zJ$6 z&qK4$@aF5fM5}-2y{2`EevM5!$(NySxcB165Z6Wi5d(G9)Ft{YhUpaFfzdk8E0NJ< z-uZ9t9UbS(|L$7)y?t^KO*+_L1QgBD!6Q-7X>LYK7{k%c<{8Ft66<yFwTMo1?sx@y z=n{9j#pkk)@n{UuX<mv{7{mMC>RjstKRe61jqqOlBl0@Bqf2xs7U?8kf@M0(Popi2 z=j~>@=5>ruLsiOq@h#}3^ZXVD=rSLYcdh=xKKV){be5mMP+jCNF-ljs|395yo#4xm z4deM`%+MwN8S`~?k2#}RC;7em9Lq`Gmv_G3y6ZTPK&wviG_>m+Kab72$Quzm**@nP zk9wWrZVy-o9phuLHf-lf*r2ogn+L6XgE{b}n545jA5FTzdp&I3bb`mC?iAM~&p}-0 zc{v8^693^*U+d~L&&KL7hF{0}Fou6dbgDT&=6YM?+S6Hn8gq4#zr+$<;XR-59y-p? zEpcs(G={%HMn_M19%8Ca@L0^!8NM3}b)HwDsLOod)7CbO=c;EM`zUM0pFQgtqAT3@ zIj_|T9*3gN@O-rD0^eVB4V<R=U1W5byZ+1Pg^uxW(4>>R%~J1oy6t={>UD}|V6e{f z=NPUl{EHT!BRaw7p-~rJ_I2PZ9baP<UiCS?+%<fL?YssFUFPy@_8XeJtZ*zk#;Xw< zZ9DJrx_eN^xgC>rg%2ostxoX!Xb<Cgw>O--GmYn?QKwV<Gcr0_>1zNq=_H?n89Kvz zzUkSe<9r5UXSq)J8uZaQKC;!lqmz6EX6Y>7gSooEkG|zOe70+V*CDPe{Mg&Bfv}yw z!yFy0vWA$i6Z|ad(#G)jsMmgBe{|J5t^u9pk1#`5xaS)0tK<BS|9I^mog?nlX5Dm* z2Vt;I@^kOHmvxc%e$PFw6Fd^jb(-IM-~Doq_2gs9u4kR%iAd`#|MY?TS4SUqiO$7Z zo#C0-p!2-PTKDg{=EhSnN#}SmnskwW^NIUcC;48~jj@Kj3Vn2$&uX`BI?YRw*CpPF zf{y-ceb%|g{$y_a5eDiC_x#NBP{;Wn>s@0y&z(Lue;wmNSgn)%+!sC@&NDaO`%ClJ z2_A_FI?eA@++VuP$NbOyb&4k<8fy;x(^u|E9er(mFjZ%GCT8e7@9~Z2q>l3x^crV< zcrp6vBL8NiuMu^U@5Mr0;8keWWj^aW*U9<j#!HdZCEkdXj=r}(KX_j0EPsSnUE!Xa zojV=pfBfja9&c{k=_m8oF&>0TI?2!d?7r1S-aD#|HtPhBMBN4E!0&BS8#U@OAG2+( z|At_Fcp~yT%ez+9M%5F%FW-QEI>*mrh%WMPwy%xm>m=Wc7G2;~Xw_w|sy6;Y^W-DY zpp*P~O>H#iM*l66f7_*Y%lE}8z60}($@2?n)@ANfTf60ZnFL35j^!fj#`~gPC-`(E zbeiX5x-Rev<aLQ}>RKCBbdH}#-NlZDzeFEh;XS*VkB;-c-D{({I>9L{(ZP*q(OE8_ zq=Q$XO_#ZItTt-bF&=~sI>}?<f6Vkd-)f_8Fjq%A)JA(?iH`GcP}E622g`JZZ$U{H zxYLfcTmBn#jF0JIe*b4~d?zO8Jim*{y3F%-uJ!wfyq5pEi*?XBUWDpPtOKt_FJ0js zde{0rH|E3Fqo8xV-EPjWj`3C4q_aG1ckAwZffO&=vo@M~seSVIn6IO_`J$+UvskTz z$L(DkjcRm^+=?b$<`MO^(L$Z#XHe2bUbk;;H2O00<lXw#Mw4`$SM;mh^1BF1Jo{kd zZO`+YsOU29a)|5l&&Knq=%v$qD+cI1zlo$S^G*X@w_!Y=ig95)--^j$Jim!t7|**L z>YRr0d@`1V@jM^Pb%8%YSyy=P!(1CW!RMlSqIKYV(MK2fBP4W%_a0R1&uALY=U`MA z&-Y?N7|$Oe8^-f52iN-jNXGL7%n##vw_}{|znCYFMD^w7$+HpHd0vIVy39R?y2f;z zPsg}0o@XN)#`7A?3gfxwZ(TECJdeb(FrH_l9L96!VeW;=t|dMWah>ApFi_|CeGJoO z-urmxT_<=PGCIQ#VX7|hpcAbBzkGkn>yWt8I`EFavmYJj1tUCvbb)_BQAerT=+{`S zlYBiYI>&FJ`YLna`ahVbPH-az>nyh*rAxeFjO|z3=bvh$OE5ua`8&)A+t0Hd&0#x# zg|%V(*xKkN)Mf352amH3I?2yrv@Y^~=R01V;0Lf!7kIbv?jIfJ+p$^ax%L9{{;PH7 zD==JV`DZlhXaZwS*v`E!bUZrFcW3;&DfYvwFiV$tum5v?b%G~ina*+%WgT2|iRXik z@f5_ST2KB8{d9Dx`z)Y?FZi>yz1BJ9c^Ik-{6CD=(Zt&5C^YI6=P+Fduf$wk=A$NA z+c1W2MXS#9U4Jp=I?XSlS(kYHWOJM5efeG_bb&v`P+j5vSGw19g3rf<FrFVqHjL-$ ztDIjQ<KdXEQ+(cEjc+oZ=OL#H{6Eas(KY6bqE7LRSgmus5*1zMqo#O|zZt_h#C7n) z*ZHi`1^yPX>+N%zdkO<|if_j-o##(5Mpt<Bbo;!)y~z(Cp$q&yhU@6Y+UQt}(<#0M zQ+1yIi@dJzuWquQI?2;+_6(nHZu~9^y37aN;u)xu{4<8#X#cnRoW*FJ=C@{82VLgF zZnF+L$$!FHo#7d`J9eKnWj<w={oLfW{3O!4$RA^ZPTo-)Ju%y7LD<f_+-a?JoPUcA zI>R5&aen{qSoqkxJX>^%FT-S==bi6%ZR<Gy8Jl#L??YA2y78ocnx~%u=J{KM|2`7k zQyU$L@c-K;`EM9!e2yQ(WL@M3?zKK)KfDHOb(y!H>l)B;z6HZ?HXm+5T9>)ceb(8} z-{L%aYo~e6*3NU=)-H3O`?rqg(OWysbGCM#UzykOwONUK%-=emuiM%=-u8ix?J@rC z)=u&4t)1uY3w%vro-rPbWje`UpwBJVoOgN9vrfnP1SEBe+ZLLWE_2;OK2LRwlUSyM z-$TD!jp6Md_V09z565tw<bPqlF7dZ0>gW;oHJ0lHuRy;U#_+dDYJaIo)E~ojf>&UE z7{lM97{)wm43>v6{1f`!X8U8VZ6tMqPsebb=KUVGpRk=zMKNsW>#<zt_$l<e-L=8* zVTdmCltrF<I>%39ZWzPsP|y{A{R!(e(>(cG)a&R;^F%@?IEU#v_+jLAfmdL@F7a0= z=xA|m^b0J}3I1k@b2-cQr<^Y|=oJ6-w9lik{TXw|GM(VjSgq4M3++13uVa%g@z1Ef z!)u#sqXW@PC-?&N(;2=SgLR%?$1q*yhG#wZX4^mCf_k0j&(NqVyz_IOOFGHdAl#2d zzU_H)3*&hiHs}&3UvR$eG@d6SqqAIT@jTJNeP1+QCpd-hTnb)*@bmBj|Lx!AH^(~j z6PTcjJo_c*UFZ2Ntkz|&T4sH8jH8!5m+rDA+z*X9!8c>M&hv99>mrYS)%pF0b>Jx& zrgQuZ8g!9ALRwe2&vNt8ac+Li`-U<65u&?|;oVlamUNttK`))+$*9*^ZhqbMql^4G zmgoxaR`Q(EaXuO)o#M;Urn9^N?Yh7(zhORk>(4)8s*YB=_K?#FJ{@y(ny<%vo#V%_ zNEi9%H(e+H^xD?iXdk3>g3}nSgRjLno#SWGsEhnDvbw^%zvUj$aUT7)^Lvli@{Jg* zbNmd3>LP!Ll&)~^RbHdxd;-Sl6wh5<8?Dy`eiv2uI`3Tjj%!%Q_+a$WNgj`WI>WOu zQ0KYxf2?yD&q<WRc)kd2VLac4_As7b!v<aA9}&&9K5af{-?Pp-$zze%8NLSvUEozH z>N0nK-+Sp84?<Zd`C?RbhT|Vt!}}aN55p{-;whM`bNn0%y2uqY>)>7=x({`nQ)tz} zjUQRV`&~2q5VE?!D=}S{xyxGbrDJ?J=ISJ$gM!X*%_r7yo-up~hU+9>gi$)fb1+8d z`Bh|eiGRRk?Jv5Dj%c@r^Sze;gkCzsdDQFR7m?5<{t-iT^k3H`hUo;Ki3XkKi`F?` zI>UD%dcc181=Q&he~(@|`pokj^*X^PA)(WJ`{(Wjo#&TO(k0&Z3+GG6cn~T&$rmG9 z;C*=}Vmi;SBd$w4xnd1<mgi%cF7QWa)fL|PfA+8AoWgn?JPDh0mJ6tQ&};eSubeMk z;vZ4a(bw*GH0uPPj%7N{*P~VE_%W1qk>A+hd@XbhaMy3lRmb>XH0dOd#|)j}*~sfW zzkr3h#M^JOh7Wly55jPr<V!GGXL%kb=mNiw$-2y)zjGbx7$1o_I>|G>_jT06-iu$u zP+j65kkZi)ju)eKf=|ado#yM&sB^q}vo+LZj(&7KJmR&yAA0EopN4v!<|ZU`j+bDF zF7i=7yO(u}vskTz@55SM;I~lGW$qf)MVobu4@Gssaq)%dp))*Vn>xSW$uaV4SfWe( z6<Tz(ZC%tKC7s~Y(WcXU4cc{%ckWcT<?H7-H+8A=yP<67_c244dGFe~sGt*kDVFOj ze~5Nn;X~@`qN>NtlcylAbNnWT=rZ^1S{IGd3BDGMVGOT9E{x${b*qaO>LgFcvM`3< z#M&^1_wHU7MUUGLUx7Y4%X{uv7iAW?7x;AKbeeC)T%G54utb-+=T43#jOXWfu8YP! z;e7G;XwuOxjtg^ilK+B&&hlckgz<dAu60rRN#}(ZAgc@f5oYKL|FU;oG+!rpESkf3 z{=YufWU+nn5=_!X-iYZs+PyBidr!x^#Qb>;;=0T`#p|MhI?ktIm`?Ldj1J@ZcYD`G zn{<k=N3W->CojbSUE-ShI)AUM>y3{?gHG`e`_@Gj?JpLL4oB>1>%f<yUT66!4Aw>7 zh~e5_TpZoq-?gFhyav_Jm^1IRpYx^Td>Rru%`-7n=Xt^Ybx~OtxE)cmHRQerxc+s5 zS0|h!UFO~gSz8_FlhLfxd<RN8&#SODjOV6-&e5~hfnPyhm$=iRb<rXn<KwYRr+6CL z!gwA$*g1O6I`HL~rL+7v7V08@hoX*tRTm9HYZ%Y-hPXbTcU=4*OxI<u{k3aM$M^^= z)JeVo%{s$(V!6)qt7y|D{sHTC{5N&clUP(V2VRi$T3z5b(W=W_ca*i&F|Iqt`TCdU zqcKLO_$p*{mLJ1pUF4U4>srz!-tJh}(hFY8$6|m^@l8nT9A7@%9CVf!qpXYkEjH=s z_tpoorH+@YPjnu2j1y?q!S|+&X>lyP76WvJ`~ShSMJM<S4A*J?9Bp9??|f2Sv_Z#t z+(=_yw4Qt?#_2r2ib=Y}KcGoRqw1plFiR)+49wSQz5z>gnLjwqJs$I3eD7HM`L}s; zpK;Eqj`LTSS?ibV^Ut2INaze7J=L|RQ{0ReUF0jTb6+pBZu~eJbde`Fxt_yzejF8D z;%+xslel%`62i|wf-juj(HXw_M)y+qbMk!RO&y)$y1#dHk{fg8_p<%-B23ps{_JMg zn67aBEnf4AIrGL_jn~nPx@dni=>(sJSvt#8Z}YtJJz9z1xZSnk&xodHdX{3#|EtKq z{)cPnRo4Lj9Yb}F-^UnT<^%7xFP-44F;{1K1zL2856ingbdqmE)pGmc_fW6PeBeLr zUnlr#jL})1hwx_t3tWGXV}H#Ue*9kNQ5Si;xz4+e@yRIZG_OLtF7sjcxwgZ0z7Z`e z%z+=nYF*@-`|F~9uiFnFj3GM7ZJ4gh{1fszn&<sd(RqFjRVByEqvkumI?dN$oX+uM z$mk+}h)KG_J3ipKr{lbEf#>QQu2p^;y>yv(dC>9eIG=%pPV+SwqI3KsiaJ{89HKRh z=VcE$u9fD-wGUfo9pgc0&`JK&Bd#r-;YU!?1^y4py38jQe3rfG8skeaT4(tljL~I2 z_)%-ClYACd>ohNY%p6+HfxA9#&N{|JF-)hp5e+)ai;&hu{v2((!aFXq<~qUYCtSC0 z**`a7w9fH>C%s-L_(UwzDPE6WZ`%)dTWp+;@xPyP59<<le%kpB+xa*w(J7vWlFo6l zxz6{m=EfV*sH0~+qn@+op`SN5Y|_CqisrW3b;9prvM%#JEsjek_)=88<JfsA;=05; zy=bj;oX^E5o#6r+b@0!~>FD3ShC%qbYld%o$$GBwzWhEiy3Do9TyHwY1+?qnPZ0gb z`tXh~d!FbxzlMx1@&7PYN3YaH=OFwU$PC|$E%zxmyk#AXN%Kr>(s^EmSerR;&$nF< zI?f}J)M=iHQ9947kO||t=PKtojOUTahw(fUOTu_wg;E&LJy$!fFrG&ude?ZKiC#L- ztB}xT?)i@EP{(;B(qTN$#H28uS0NY1bI&zCcfxociDDSfOR!oO`HeQu4ZnA>%p2eJ z+V`#7d#*by)CoQt%{tA0$8w$H=h3E%{3X`w3io>7_aHjX$9&`&RCayxR5a@xSAFbr z?gQtSk3&+Y`1Mb%n=Wyuc5@D6_!zW?F+2tBI>$?~IgIC@{%igpn*Tc6kPrQt&tf#| z1TR|e>%fo9nZL$B9ewU=bqv!<z6PUpj?etsvqh)*DO9iZT25~8tkb~-Bz5q?-*|1< z&d*{}7|(lt>mJi_{xb?X%kN^jE_1()j!P%F2~{7P1AmUVuJF;D+-o|;%^0PNylAs~ z_DR1lg17m}XX_`{jZeUIo#Gpi*ExO-i*$)c`mS-<r;d?lVw}!%1(S8~#BKev&hlc! z+P!aZr>;@G4$f@XHJYV^3n=Q~13Gt&hW^)a@dX&8Gu(p7y2Q!qu3P>reQ>Xuu3P?` zNsbSy?HX+`Cdq$AY@PY@62x_p*CU}T+^f#Mbeu;ZrBi$h(mKz-?dn*<cD@KzpV`j$ zb?fSP)R;4`!~|XD?Yno4Cg~U-i>W%r*C40;<$}?Ds9W!~yaI7u;=OmUE;_*}Ox3}Q zuv!<njP<(0H|}WupF2i=0S&sunVq^ub9L~8Xx0T@iDkOX2lj9-zVKdrA_nU$Z$kM0 zS)!eti+I<lDU9LqSg13+04=(}>(Hhv+<!0YAI9@|)O~3@FF?I6@H!0974H8FbJhtS zj|pKsFTm6=p4VYc7|(t8wiaPLkH_*bo)=(k7|-jlIgICL>aFb`{I>w!b{}h%^Jm(5 zUxe)m&h6VZntzS|FM}(6J34skFU|9R)|LxM>EIGZ>);I-r=$MXY`?Bit4{DqSg+H3 z4L0c<|Af(B89%^!AfppJVSnqXGdv${y1*;ZuFJgr0p3r?_%K9YyUzJWZ2A8|c*%k8 z5!;JgMotG;C9I*2@x2Fi^}BTJpUdc@gQJ7HM*Vc~xI?=7y*lQ@c@%VT2`xJK^MUT8 zZ>%%#c&KNBj`PuI&?$ZmOLU1hVY!YD^FD*D|F@2v8!%9(c`A}R#{~@6!M`8eaqd#Q z4$Ew>@LRvK=DN(i4tM@^oW~vE*zVXr%5dWl_s&zkAK~|YW1bt0=Yx)MpPsybl;oF( zc8n?Up~rgfQ*Gy=$8~H^@yz3$ujl=a6z==Gj_nEl=kFbt-&b7VQ%1Pg!tXKWTT&hS z$@3K_ZJh&8J-MTEJfoqb^ZXgY_e~WZb4o{Nc=uCXGv*xUqma=l?tWU=Er0h@j6Xi3 zqboe<EZ5c$*9O=AaqAd9>0HlPuTAqkf9mK0e>JwFqjA>td~=@Sdpcfuf&KV<qsqMW zLgzhf=k*sm@7r5{KK>HdM3@gB-RK?+&3SD3|Csoi%eFqBIX2NXY)tT3h;1?-eh6`0 z;MGXzGB2If@!ArPxZHkiPw^F4qO<%2T6Fpf_xKdgvG44kFTxm|;kPhVm-)!4o{c)m zi_oHrTzjqg>lmMhs_(s)Uq!tx@&41gMm>IT-Eszlb?|vj=6r_hjnAC!UfOIvJQMXg z&ucJ5m$~<iu6rHl0W(~~I>8rVlg{vyi2Z18y!~zN86D#jk<=-^38Qq5S0JNH9J}3f zJB;TOkq_hfek{=i-hQTY7shY{+I5=eBKpY~{uI4*g)f}t7<Gm}z_75L_rJqurB3j8 zObTQ8A>?#{``%@({E5{BkHu)6;fK+v3tYi;9em+G%p;8956~R8^Zs{RE1lr+SRcml zL#W!ue)tRY(G?zZul3#57`_w3be><uC|%;6=6YV}IR62Ybef++lP>ZPn5CopJU1|3 zC;5u`#&=3YS)PX(y1;FitIOQ^0oR$1@rh{BDZUA<I>%3AtuFEx*q|$X)B?v<WjtSr z9y-epqh1%di11lf;=3Po?Atj;UX6je%-b$>&FCb5@Q}{}UEzZsc0GjcJPylrhUZ|l z&WCMi*CqZLn{@Pu`yJKWn;ZLONL%jr;1QS=w(~_;s53nK(T;mL&p$urGurm(an}Z7 zot;y@3Vn2zpF}@h<h2;6qeWe#OAwwdS^i{eS9rn`9sAGlb665y%kN>iE^~6RYqG}i z@;EHi8J>k^o#*H&_h}dJ#r-f!CxS6fr+L@stci~EIjF9+A1<Je4*n7eUE#kkb>4N3 zOIWLeYg(+Qj`48R)mb+#yk<^1c)Jzmrek~>T6LP=z<OQgqh5ENboE+(6n%7&_bOR8 zo!~uIdJi4v7L3s)PPAFOZpQGn$mtxvgZaA5e|Xn*rqlc{tkxwy=sowXPVzrd-QAq| zA7$61&hyX@-1|Dk-+kyD#H{T{zV^dto#56_-6Oip`?tG)!gijBO*+f<pL<s9U^`!l zIXcTPVTmsBjEdvk(fe{M8g!X|_m%zY6i-E~&hg5P#_wbd_uS+h>o|`@MyL6nA01Z@ z$HkvwfUa=gpB$S`aKkp;qBfo8Pdat;wX-q&!1mpuUb?{B)O3pyI>za`Zd-o0eDJ@! zb&H1DUgEwxbc;sm1b?+tw`hWndUT6k*}2=6&+ZaGx=Xi?|F@d=>eX$_@1IZbyj{C( z`Tg?+{x8BkQsD`^cZ;UlPlo4Xt}gH=SfVSu_a5D%<vPI^q8!Ha@%_3*(|56Md>aZn z&t)vr!M%U!pLLv1$0nWTyAbPXJg-4NUFISEyZJk*Tr+$*M(HfSgp4k6m;Ji={XEu+ zcNo~s@3yyp{v(Py!wb=>3;YS%b%h5U+AZ3w6MQaWyBg2;qh1&I6AacBKIE`&(QuvQ ztC7}OUW!It;++PWkB;+>M|bl(b2ML!Hl5+8u}K%X(=pwm9=n-8pN@o1a~{KW@JAS@ zD}2aM=SU~{X5_;dUXSK5hLgYT7Of6r_*QHPWB8EauBF{==f7f{&hc_g)+O%r`)*NA z$9M$h>J;CKB|6V-Sgy<bixZtwo#6BSU><uoMxKkhJ*^>sh`6rso+ovS2I@GUhG9C* z!%sI)o#MOEC+@v?9R}+PA96;ws6i+BdSrBt-^6rX=7UDNcEcE+j+QWn%YiV44?5F% z4`cYpbM5~Z?wv8+qF-Z_PVyv7&{=*2SzX}un4v3t&Y!%O&IF@5jNva)3S;>B^R30+ z&Ncst79EZEo>;Aud<oX;EI*H^-gy4QMXp_)<{4P7^SlyeUFPl=TQ?o!<59hjHRS6q zaqa0Gx1d#*c-u=||2oD;VzW;2Ul7~Z9C+6&9gB|hpHS8rE?|=mUWZs;$H<AR+_O4( zJd!%Yi!n+Uxzp9omyYpBH0d<QZm@R!Z0A$3T&FpYwK{kWHtRC?p6-76rMYn$19b4c z7^(}r5u<f<qw5NdI>rCUxhDGCC%0muF7u8zdsgT;k3g$V@!!y{bKL88uieiWJ`)Rd znr}l<=lONC>JnGa^jaO`;n=KGeBEs8IKV!61zL59>+W<7=ok+})&9owE$E~3{P5k@ zM;G{Wtk)Ipmv_w^VEy?V^w1f81pRb@Ke^X?=?Wh(*Le)%c>-bw8qf35PZ#(rB()!2 zMROkL=Jy?%1HX${!n$#<1)h^S&L?58PV?OuuJiohquxsw_!IOw$Q-!;W1a&#!Q(Mp zXLugQ=mLL=$zeSAf80F~#`9P#4C8qLTEci<hqf@D`z~@{gz-EUbq5>I3sA2M{KgV< zIK;7V*QdHgDIMcqBdwD>9vPkCBC<Mo+owGz!+1U%d0lwM^RT(&^EAO5Q2y`!QQ}$W z<ay7Of!2!ugjqVncVnT>^Xn+;67O7ezQTAOfp(qZtFc*U`HC0p=TOay(X5Nyb*b0t z7$1lAI>pmab(m|9-$fr?=AJFqLC1L{hU+vhec5~I67TqmbsJ<1k3mvr_zjHKW#0Q$ z$EXv0GiK;Ke}sar@S)3H!#c@Vtgvo_&7YT{MVEN@*PTZl=aJZ;(>xP(zp_vM9QC@w zeM`Pp&<P%k2A$#9O5+c=4*Yxc(<z>a!8*(HFiaQtbBxjz?)j$AM;+(mFiEF)BARrT zm%QcKcZ4<PjcCx(+ujQkbc&~8s?PBjZPtH?{d50!%||DAJd!%Y3ouF-cpWlfJokUk z`-bs+9r8NIuV9HT@f~IB{A=sOpQBY*xbFw90iEEnsQQif;_KF$o6hk|n6FFR`D53i zj`5jTt<yXc6`ki*s6Ntp=l^RrAD!jJXwgOP`d{Z!$M`sG&?&wPbxHf-RjAix?zzr+ z)Nvk(2A$@KpSypKvVUHT!MeyBk<!r@)*Rz>il-r~bA0$$u7jgpZ#)qLb(R-nxGwVd z7^9=F?GKZ6@HEWOIerNXb&0?D(KUaJwdF&8vW7azQ;^p=eiO~Q%*mgvVHm?%Y|z0= z5gTfsyi?RY8ldBRE{5q0KaMfF$ep(79%XfmQ<$TJmv!#$&%f9YcdqUpZO}134t2*G z!`Gu;=lB&2(IwuurhC+&6Fe3ZbcP?SHJ{^Lhr9_X9o2RB$78xj<8+FrA**xz5@zWV z@7}e0RM2rAiDf#?Gf~!getieyhZ)a1?ASdj>NsD4Hk}RIut^8+wo~`0$MME+8VMcz zPYl-u{tDx?UqBm;-o^2rU<}X1FrDYmk=7ON+p~K#NhkO`<aCCQ-?h8{N6<0y6eM+y z-$8>e^G?0JmyYxKn5;8=FLJuT-}f<x;pVe@_h=A?=_KEXw9fHMn50X*{T^PcWBkLO z=J0#3jazdJ)hV8a(K^TPqEVN*=U&~T={n9MF;}O#vbS@6qT}Vh_1;$}cq}IA3_pvU zF7igq*U>)Rqm});M}tS$Klj|v`|3E4M59jgY)sdAUW2(|Jog;XJ!%f)`E;~~@%$v# z>mqMNRmywqZ+{27ZgrLyqt_pd;f+Y>=n!j&VLHhZk=9v$1Cw-_dk=IhI?k73ei*}x zQPf3VHmJMbmtxI%`@y#B7@vbyo#A`Yt_%DLHtPx>{j2VNUy5_VQ&6vSoH)XMbnt~} z(;1$L^*YZlVY4oA*CFoB2Jg#*&_^eEEC%Qd&%_X&=lMr=kJjn}e}bx0%!iLoS}UF6 zDHx!0{BI<6iGOjF>sBZDT#VBhuKBI~oN5ky0{ZC`-;bm&@H&jr74Ca%_b8(iJQhtl z!}E|2<M~r83FA5YJB+mc{50n3B7cu&9S!du9gbF=<jb)>jOVveHOe{V-oLj#I?msW zFh=_irP1Mto#wTCIr`}=zm23WbMHTxzm9YH6wi~eoqL{YpQqc-BQa2?c_xPIJg>nR zUFO6{_qYxoiy1n@^RQ4C__EVHKhH1+ehoQY;?Ac#e>%p;p{P@Q{%G?YZ9n`J(z?iB zqftj^c8?B0lTPyAFh}QjDGIv8ozChWwdfcR_@ncCrg`!tOxIanhPk@LozJoUI>yJM zRj2qatk-#7g{re0JNG=-TIo1%d%o*X$M}z^KHL2Ham00zcOLJ#q2qiyQaa7EF;3@s z4YIn-y)W=t5XSSpS39n>_2f^{sw><-Yi>Hh<5BfT@5>9&M;Ew)fjT((SLaa&Pr(?S z<Bu^pjNzfzIFCBTbFoktxN3^^)G;1|Hk}FEutAr&eyaQT9P{C+sMk4;u657q;16!_ zUgvr*-haA#L?`$vEYVpmqNIa&xY095$9W{8G1iS|qL<F|8YFZ%_$JRo9sJ9jfBuu^ zGca7I`38*EIerEcbdf*9WL@DSZg<S*Su4H?{dA5?Nb2CdX1b4bg0Dd)jNzBi6vlAp zS&mW1_yjD`DV~N>7|*BN<(S8s8_&jCo#!>!tjpZ{A3p2HSqHud19XN97^;J-?si-{ z#>b&ir}(tF#++~e{4mDp0#}gL!AITadebSs2Zb<(KgF^zhWp;{d7%?L9-DNA=OH%U zc&>lYIl90Yz5?|+%S8;)!5h(_qlKRHn4pt95mUo>UW_?mJa5FJF#e(L(alR-lM}2D z$DVR8=-@0WI{06xyU_Y`pQoKW9p^t{sLt>UNQW`J!!yo%7{e1VD~#cnu_%n;y_%gb zo!~sy>)_~F_xnZW#@C=;=Xe8>Vf%C4qwQXBPhD)Dd={4IH0M#$!T&?Mj+S<hPJ&-P z8>M+Bdg(l`LPD3hcZ=&>$9W{uVLYGknrF-ZIgflZCh0t{#SC5HAuF6;o#d%lu5-K| z?O_Zb^}6fn68qsI;yU=KlGlgrd@DxjJojsJe_d*Qcsw#X!wb-)3%m|_UE##L)*+1N z$tdY8KaF-><mf##S`$v8mk!P&p@a8)-#X|x--NWzaXTjI3V-pD{a>c}h_%j*PI4A? zfA+q-81=fy8!<#jAG<!$pp$&pSH@5DzPt(vUFP0jn}d#XI-rAJ#3Wtfo*R7jg)#gm z%-0!SfTAvN1*>&%@*DrGgRevNB*(?yBCexvUC$V-GyFbMy39j2y2o{jfB%E~_b-~K zVZF}rOQ^cs+<3Rm?h_s7GzRM6nHa9~eED{<sOk!9#ZRN3F7o$C>S%k$C>?w`GGRQI z(4>QR?Huzv{=FApjU{0We}R&&aR2I9)UFfUv{NjKt~6&Zp<V}f?h%WI=op`X2A$&j zFhLi1yPadv)G&reV~$SqY%J1wE@Qb4PV5qk*6QFZu~}#NbM&~%-1zLCv1ou!^9l^r zC9dz~J#>O+_K8I;SKB{-g?1h7Zhhbv`EK#ex|h!LDkOB7d+rg7hUqw;j<inmOiT*n z`GJ11DD_vz$e*H7SGeylW6^Y-;IWviGyE)?b&;d~v8YuCH(<R^^Ao7L#u(mtzgW~q z$N4f0)LCAJ;kv|69&Gy*<N14x($OI?-;X%&I>{5!q_g}g^18&afzG=Q9)pt3@cn4l z1@3-C%%3YUhR?!Uo#y{%>Hg!So)ZU-e~x4kH`V@X3xm)R1}poeV~}(wj6`vZkwxda zyE&q`Fqc#k22os?OGjADB^4Hf5En+Guowv;4AvFG_xW!7<MnvGe7xr~@6Y@5`OHk) zwwuRB9sD(_ukySDW6?15*J-{5gLIx(qFI-@;kVXG$9V*%hw*&rpjb3vvU&0=$m<gK zJlZ^UoX4UR#_(fUtBd>tqABJu*s-HtC;3t&be8LmwSB7n@Fhs<EWd<iUE=OTo!>Bq z&%z9y;rS@&BLC_**Q$>3$ylq?y!$ZQuXf(~d{lIX??crz>&c%Xt}A@lNwKI&Cpn9h z4qk!Ly3BRM{XZS&p(BjBCgEp9#-ckgR_D2l={mS>r0Y$`c?8;YnrC7~7|#!<9oKZn z!t1eEM`u|#lys8EVXe;c%ZRSEJ{%im4Rvq}5<0`rVMrLmyPqBN+0Z)hc^DtY@W}IV zo%!%{n4n91(4WjlCpn8&9sC%U=pwI2yN<?~CpyA-z7E~4_qxPyqOUIVVSo0zq?7y* zhU)@<f-$<ncmB<~<*W(6je;(7!v*d!9p@1!>onhn4LZ*&5xc>7-uptY!#cqkBz5p} z7^zFV^;rK;$M`RoSf3k>;d?Mi7x)v*))hYVQm>6V$yqGZ!Hcj)7kQ^Eoa>v+lSg2w zPV-EZb)HvZgD!KgY|QVpG@g&dT%F<)I&^T=Kdk4?=E(=3UZ;6E!r#T0dGN%}PVrp` z-;Y}0s!6WN@L1mdD)SD_2V=HQ@=|R2_g0*q+}XiBrZ~pa{f-iT25ay2eR@1-s`GyH zK7Ph;ESh$;dD>5oceutid5it?B!n?JZk}%bwx@X#`sy5ScdhF!jOSShbI9{^*BNJf ziMP8x=I_dk;UiGcDQ?PHhneQj7a^gueBKRSS9ON}g}J)GtFb^=c=nCvbJM<2nPWF~ zu3PYL@ATR}%Rc#fBz2Bo$4Fh~o%6049p}?9Ri`;0(7`LQIE?3O?lS%<zju$nzT5F$ zv5$Wb6^qWjPcPip?_`NZr#|TVe|q02%@56Yj&3z)?(>Ls(Qz&;j79Upc3y*}y29DT zuJhX*J1@WxUF2e$@uB$#EY;By))4JF#aE-EbG-Fa?z?|lXFdpXb&}6PL1*}8wCOzm zRJ1;`?el4`Ef}d2JpUQ56}reDVTrEr_0KwAw|g#r5dC$5|Mr}9&{<xH*}BNzqM)Pa z-FHj9m)&7LJPu7d%ZrfGMP855I(pG-0>aP3&-2WeI?r|Lzg~xzxrU92a}pbM@Whwx z=T39u0$OyDH@xaRYTrN~HKL@G{GZpnHpcez@5k)_b^kAKO}N_|*2nj1#(2V;ot@=% zD?7Ww&2PD<p7MRXe84-_<SzT<bCA#(z8M2`o@c!4Jci~Mutb-5Jyz)GJ@?=H?#a2j z>~jv%I>955(P<vO+Urkfo`Q`!$BWSI-;S3HYs^~*uf!}}=B+<62OZ-spP2LAnh!>! zPV#veq%)lU)U~LCr=X;Bya;7o4E@>WdyubLXZ`Onh9AcmUF6R(L09<PFRi1_@NKA? zXHEFOsMjTauVM|Yf0_6A)^pwJ?^5~n?>b+L(tOhT&h2SlxWWB$ujk@2nsxC0-&+fv z<g>6uXLvEH?=zlPqo1zunLl_x)oGrJ={m<>pd7|<^^eYzj`L&;x!)L`k7ixs_(u1R z4n7h^o#I;&YjwQ*4EpL4-}jT(c3t2PF<n=<;b-Sg$N2|r)X^`o=s;9I;JEmF#C3*O zW0J0Lb<{nYrQ^KnSKXs^y3Ad-=pJ=>(0S(pi0LGsi#|HTx1gWS^YdubCEjAo?!FJy zWBDiy)hWIdBXyQ<-Kx8vP2sWpJo@Sq{|^Zrb?qMQfq^=~r(lRq^JEOyIerFdUE(db z?jDWNF+K$2b&{uS(>>~6FrF7;kS_AaNa+gKZreR-)^Q$;(K^K!W30~dd}MWzzr}PN zZPz{83$t{B*LHKf|FKW5-M)L&qT@Um8J*&bF+pefZcNn$eiJivnS1Qe-On}mSUw4@ zI?dCtSm$_1%<;~*PrewFbe8W%P8ax1%+_V@+P!-;Psexw7U(2jfTGUw!&s(^{25m1 z3eWB7cptV;eiL(bnY&hZ_q`SN$pg@)lYB0g>I~n46*|w)qpVB3WsU1i$M_Iz(8=Ih z$GgDV*0~0-L?`$ZlysUWqh05CA=c_5e~b=Y;a%&yN6{l5%V(pT&hTxh*Lfb<;COYK zCu5Dy@j_H|kw3;pUE$i^-J`07&I=DlwNCLw#C49JMSor5AJC+uKCb_r9IwuDE2<V* zPi{xOE_1h?-BUWo1JR_DJO)E_hUa0VF7T%qtt%XlyXJN9-n+Vw7CUx61w(Y2Cu6wI z@j|3^kw3;5UE$i@>_^9W7$)g7Pee}Vcp+x%B7ci{I_m3Qzyh7%rI`Atb>J;_H(tlM zvWIoh!F~61%#Rt*Er{z3KZ-_O<O+u9;F<lLFP-NXP}U{x`WySyF>b^Lo#dbQc3h8} zTYu*SQ+0xyF-xbzHq6sGZo^_-<aJo8D_p;idqKx}DAwu}PrwG9<;PLg=CM3$KjU?t zUqy#5ab3de>J#?EH=;%7c?rhr5?3%u2RH5Sxpb1xz($?spARsPCmq*;t{05f32w%C zo#t7Xs`LD6_-|d}UocNcjoqXDuvjPfPgtrmd?!}vJim&yVf;ZFg{SO?w;N!*j`0Cl zp_4p!p#7id&m;WPZ=ECW%YI;W^!LM^YoEij{B3gc_9I;9*z|9F_}53eZj1KGO&Fw; zJOP`&SD)K9cafhy%5fP};w=Xm6CTTlpe;O>cN*-q>*f8TIJX_sIfo+mIKlPyv~$5D zFi59)CYp7gS7NL#b6v`Q!gwBmxnVrdL|Yio%_mxiu$@02<`{kUt8mkB*I#_UD9N{- z+&P~-cbx5hdB)ndm@`)CBwvb(&hjEuJ?pyS^@!`}9PeFd(!t#_wl8t)d>jVp6i-33 z&hZNvt4qA~-^?M5=VLHeXZQ)se$I38$0%rT5Yb79o_Ab)IjVJ*_rB0^o#1m94<2j$ zDgK<u(?a{RYL4%`sB?RsU%1%yd6Iu)!i&ba{_Us8-yy4`@vbq1{ggOysWq`Zcm&qz zG(U(9y1*Z!%M0!ouKv5vDmu<LW7BoTT_<#QjDK~ReLm`QJEyPko@@Lj>jk>ZC;!9x zm}i<dOzga#qbs{dmrUy1p5-U5>g;H;HJIwTmzpR435`0#b1_sG_;a-A3h#ZjYdVbQ z8>gB7i>@DDiN3nbr(R?K)*;PzPd86p;2p2)T%S1q?Rx8Ge3pma;Cb`TJ3n=!$J$=x zeP?uzPw*W#cXpotaLeZX^G-9JcjM!H!7S_Ub9I*2-0J<}HFM@ZxA_dC<9z8qy$<Uv zw_>d>@D{hb_LjS@c=8?Ir*w|nFjg12N4|6aalYVR{$F@5{@)z$@5V%TSx>Cf3BG%- z*Z<e;pWD%*%Y4k;o!3%|KS9y<3h#Z7^Q#j)3~O|jyWQ(^=?Zh>0T`*1d@)*dmLEq( z7kM=%=n5ZwpX>h(Ys(o_>)>}WT9-Mx-}tbd7cX!uy2#NZt|1*f6xDCq58w8r&v-h| zZ)1rrbKj>Nr%v!#bm%M>(QT!D@|H#8bc~O~K%L@g7_M{t62|BfpZB8olvU=&i!o0Z z`3Dqr^pf?&DxKn)sOUU@f~vQy11J9Lbw&rDk0zbrH;~e0ZdhhbbetbRRu}kN%+k@z zu5A=_ns38Wo#!u0?%#Jj7dO1-I?!=G6$5pe@5NAE;FW0BW!`qV;|=3^(ChB0cE`fw z5Z75=wZb){%Ut({YhK6s(>J}h>I(0*()f2BBmWsqI>TG9vTi!Y$D*iHd;yl}EO&d` z`|*3m@Bk!rk}t+ko#n?dQWtqOT6BfKZFe8(=w16j^u9Uperuf5(EJZf&^dk`vviqv z`^alo7{iyMq_g}Y*69-W{MdOcJ6=9yt@}bJc`~|vV4wUJ`sp&ad}@7khFdXD7x)#l z=@L)>%wt!3EYC+@UF6kB=nB8^xz{dT;_uL^qjlY*-LY6F_+%{6X+H7`b6dY(l;TUi zw1yu#7JdNDy1;9`GG14Bmx}jUo#0jsSz`>ZLW@p)?OOZAoWpkR67{fV&JiDj4Pgvl zkJv|!g<nEHUE-~O)x+O;8qX(Tq)ziAp+9!KT*eq3+oFem_t_&V>MYO2DqY}j5&nIp zU(69TA#{>2-rNN~u1k+7@rn8HL=4h7uHLFgG(*SvNX!dk_yQDkmgi%!F7k<8&3~<V z@<a^OIi8O}y2#&PsE)So5$%fMI>8gLLTC97tkrowdOP#})bsLWH0vBckFmPMJ9X<3 zP1kY06mxZ!7oklTIkCO{>)`!=-6NX)nd^|pp{TRG2&;6FcZl_H9a&rM(Y?o}&ru2f zs=7xs^>fz%?@?n-bb`-Co6hjvDCq)!j5T3A?^f%)hw(fC-PU<tej0II;`+KCQKOFY zY4yhIG*3tM7ml6V&`%e6ac{>Gn!iDtj{3NEP}0GdV2#f5N^H<&ZrsrvzBGpKMO+v7 zQ#9%duZtTWn)len{Jt`O{xkaP4Bw5UF7WpluA^Oh_+79)qR~3|DooHh-m<Up6>G}_ z(X5j^1{s~<*_fpB{MGL6k+02x`|RO)b)3)N)49+Yz6bMkfj>rD7|-YL<=lT`4F3~D zb)H{Cvo3S@y*;;%^RbwqQ+z+B>jKy8=NkUj7#@MqI?XeY)p=ftS-Q-13HL}C&u3w& z&hV2c>mskm1|99+BRU?j4$sT~K|fvOn+|ebzO#RR9Z6m09s{hij`K+vt<!uXCWP_) zI&xt=_d3{p5ytbWSRBUlO;{Gj^IDX3g?DS}5q0PUpN*>jnLj^<KDx*?hnVMj`{bb* zq*HtahU+Xpgce=k_c2zNdFMl&UmfQYFhi&K3e446eh3S6fp;6|diM491g8*Q$Aa&} zT%Y+1{2{{6ysGdvzwI0o<AV{lC;9h>nZpLp#S@X!Ilk?1*SgO0a#Vfqyd)hT!q19K z@W{=b=C;jU;(<pvM&pxw2FB|&PefMdcs{1;BCkeHS9q@@o%bKCGarw>I?Xo>GEbf7 zGG^=G_|eXt4!#sCbe4;#=-{fs?&}}jUz|ce9h}1;9sCT!zXK}qn<w`0Gau}qYloSG zj`QglsMCBqhU+}Pi!ot5_d3aW4CDE9%nsxEb}R_vc_o&G@mx3DYf%`_r(k0k&ofc| zlkxm9`s)hsd9pd{1fPdyo#BNTtBYK9iu+W@_&*5OLy^BjIL6F~9?|0n*G!2=kF@_^ z?1%3}QWyBlQ_XFLKl||E&BpjMW|D8k3}f>AB<ATNKX8WoH$0YCp*q?>Ds$DD)=<Z| z35`0*UD7?G*07xuDC!hnH_Dv--CT}mp3~VyUVpBA{%U`}f2T*Z9~yOn&%_X&=Iha{ zbNt--?h#$)Gsn1}!x+96UA8cW|M{05ezx)c{>^5O=v8EOiGRTi9sRXObP&S5mg4IX z{ybaYfq!$IZ0T6|Ld12JA4a1t^1c^ZAD!TnQPgR^3d?kkpT;U(;v>g)?mxwMZ|(w@ zu<3m9UKe$q(*&Q5a4%>1R)jHmeqr<W5+8N(=K1qB<6O60tT~^Fa4c#5H^O5JJZHS? z#Mg@oywxS0&z0e~v)0yQ%Ut&lYo+6SHfHGzA2QJ~`rMf0ZLjR?7>`BxyXh=1MtH6w zzqh%|yyaB)=2qs$gD^y=c*-=_v#$f>_(ROIy}~<O<8>#D=iR5f$Gci*9)Y+{a~Az| z@I7eK1zw3kI(BW3=<*xPGmPN{DC;731ax$x*DhqXcD}gVE#6afjQ=sqbrQDo%UG;S zJo`4E4XRvM{FmA8fxY&NGJMz_ot@+z@|_*y4ga!Fe>WY?ac`o(#};|ezuk{I#W{@D z!GD|Q^;u_m5n|gI&+E}oNB4T2M^Yzw&VAl<b%8&?8eQS!{obp#HHJqatuy>63cARv zu|&sPdqn?5^>&Vt*Q1|~9&mr7Q73o=k~+;(FjVJwhX>6;$G8#gI>{|qt26vC!Zlgp z<U=0Y%@`hqw9fFK7a9|q-$T1D^MFNOKf`!_27R_SPad||y{gl^2+g|4dp>H-b%Lj2 zw$AZhOKso5c0M0@o#FeiSQmKui{96MZ9G4UoG$XOmswjK<D(J9oI9TPviD0};CC=q zm-*MPc)!pw{=;joH=X90sPFFj;gv|}GS@A4U+6eDw0qqM&0`StFi(B~eRPRy-gV9E zIG=;zVGOq+ql>)FdyYrP_-xDzWB3&;(IxKxzWYKa`1%jbv!`R{C8(}8hI_AZTsqFj zAg5D24tbsBm$2z|j5|JZ-PX8%K6WjybuH-%@A;|ot`j_ao%aZx=Q2t<xb6$rjE?gk zF}l{A`9@68dEV<wudzD8|NhExP4t?^v9CKjIQLCw2Y=Ji`8pGQ=XD0*{jS3A|F5&l zTwcGq`I-%#o#Wqq-`OcX_y^ad=S}iO*r2m~^N&7%)R`N<fEHci3NkvlZln3@I3I(l zI>oo6OTEYP^QhM)Zur@;>o_-Ks!ntE7uToP%;3-c%f;}u+zOw(MNhwf*=s)Uxn<8y zUvEtCv@SiPF1?*oZbMubc|g~m(FC33F_@(@{K3{e{mcq;=6>7sjGBGFO@e1`*E1@< z;ys9O*}i8~)yJIqImC5|ze9f=?a(vY9ZfpHCu5LK^HoUc94|$)F7ZEl^o;6vw4EPE zqb~C27^ExQyJyd6xQ_F&XwfPDJI3lPw_%bl@?kahvy)@wzhk)0@(PU6WzN=VpGks` zsqeYzcXX!sr_jbky?REwV1rKZjR-$`w!nQGdT#nza0y<AAv>EVckk`EbeylortjV2 z?>Bd%kL|nkj9QJ!@yBQnkLAI;_Vn)#9T(q=zM*&P8Lisg_8Olp`Ivs4o#L(bb`2O4 z;|u#c{;Xr+G5c6w+cP{HYjmD7iJsBGU2Nw9T6FM#8jaUQUXOJ;I;dxKFuLq&4Y}(8 z>#Sqki0NTF?{cvH>jV$OMxEx#sM^gj^7E+HCElXRHKSwv%VFlHqr*KHiaN>Tuu5ln z5h}XK>rvI$_@wcO>m*+`*!*>t7h#<)@_KaH-S}gyH^Ti=<n}=LGZYW_o#Qel$(JLi zvwYA{=QnKUX{g%6vG8-~qf5NQaXq7ij`8cq_l%b5G7mk$n&=c?j*8Cmk;7aYd)m%d zVuH@`v&iWZe>l<_>I(09s$=YDZTZh=(i#37DP7^jX+5LSVGQ4otS)c`v%(mzYVPUh z{g@{Y!~~t?L(j3!I?3a(F>L2WsNTyO@}EY#ZoCd;__aTItna%k^WeW~pKVh7e;0P% zM@hbZoH^X;&tJUp5_8berH=3K?oIm)UV^#0#Oo(GM|(R*mpN9{>)<|@cb=~tpZgE{ zw>`smVY)8x*T{#*PV5<-fdx9vv$0g?`D--yH|9$B$0YmFMee}#u>Go@(OXkpGrG)m zS6i=r%z;luy-xE2^wUM|J-w%&0cs47z_Kug2VLhia9`(_FUBC9<-3s51zwJ3UFNRW zJ9j$9LvprT=M*oxvGet|$Un?5H)EoktvO=**+1vdPY0Kg)X^<HqlSNZtd8>ttkG$n ziH$nXD^Z;=2d<lA&N|K`Fi59)CYp7gS7K}!&vkcMw=kYZU~U-Ci_xZw{P$M(+y0K7 z7ont!ydG<H^nh#iq0Z~7z}+A2ysqLrd12>umE%hu>%6YA{OXgP*HwuJKHYg;CAsuW z&uHWUt|jjBY|m)Cj`6`uT-!RyX{^)1(es`A41NLO_cE8b<pq!R-kRYZms-yQ9U~us z;X2JPBD|iL`2Sw)>?A*r@cFjPm;Tq97@rM(&6?-}zk)EP#G~KzytZd}$va->8_k~| zZ0~%3Nxthn0%3fPUwYsC!WiD6Y#nrr$02+jAj|zeaJ;rB_*_(Uh95=PPmy>0(7E>c zC(eIG*q-6|8rR=Jj+g&{v`+IxjL{|D@1xG~32ykfv*Wx1ON}Y>)}L4t9pklYy*3T- z`onvFYX3UHXJWWc^FNW+d42|CbcuKSZ1Z#R(+G2pKKH(ivN6#*ucheF8Seds{U2=p zJPOS^!|e#iSmv#IRr^^e=Ef<k(7`#Z)4?TlX)*_nHB?7^bnx%ds8c)*Lv@bVphZ`B zuin+s1fAeXm=VVC8nlKnJg85#pS5B?JPqw(48Md9UE*zbtoE~3JTLzqeRYbbVW7_O zOBk+8y!B4i(U>rvkHMrco~K}T7|$<YK^V_l?_3=%3*&iBKv($ET^*zEb<gs@5Wb(h zz%OFcXM28RPxBe*Ugn=MNJssuqeC!KC;2jr(OG^1*)X1ez>F~dH`UQmn5R>mLz@on zKq-vb%RbTmTl?fQP|<0g61IEqF7nNLS4YXiTtEDD|LV?rVITXzaNC2w!)P7t>p8Jl z7kD+6=?V|o&$&L_eE4D{be12)rmvsyhuHL)fv-zAE@N_B#0(ugVgJtYS<W5cxcvQl z@T3FH-{;00_dlq*^Y@AH+=E?{uFnD||IhymUyI}a9OAr$ee$>Hk~IHA%@g%H#jhcJ z&9=;E4eaa;S2lNW=C_--^E!n6#}4!S2%Y0QkMQ62ndkRV&}H7~$m(dRj`Mhwb(WJU z`#r*W;c1wqbNo6M=rZqhqH~}Vd?D89EWe1VBb^r>Hmq}QY5rhyS9r?F?iXWny!*(` zPVkqfxp%JgnT=<kW!;U*^E+6h%iMcZb+l2(c?7DDa?SAavz=@I{-Vr}Uf}Vz7dg7n zesu6atkOvyhl<YfbEq0*&Kw)-{OaJ7(4^B`xX8M=cS_^z^AgAIJtB5#b@ca%#vg4z zybyzQkq?<{oX_(~E==j{;JRzPE*TT&^U$F)ycku3J(j;gA0171EnJ5x<M~8{YbniJ zUGG{qCdT`sEp*O#M7Lwihx3T*;9)m(UJq%02V-q7b97^MG*t)hgLa+ZVW{Xde}v=^ z_Yqg$<i68!P9m*?Kf;nQhIg1@opp>KLBHQQE`ARKb(w#>*)^$sgR7tWX0AHN$IP@Q zI>l4b?f16xeAMeAe}S>O!aZggr{nw_R_PLdiFIKNA9bteJ=Q)sgOm<_7ISrpD_E?9 zhu`LThdOr7BCdm9$5>tF=%1cf2k(zf=Y^j@c)w20_8Nk)J;#5%-P#(T;rXcOBKNz) zHFKOb=iwNs(|p;T?hBpeIas0#yc{K6<}34F&yTl0ybwcmkw3;rUEvXPTpK#gH)4g( z^SyU@?i1{j%NV4CV{<)L2k-N5&#MzW4DCA26R}q3`2M>+Z_0jn1=70A(LLTHbnsv2 zIWIcHIjqyc3$Q^Kxr{C+dMv+vuk#d|8}75tI?jVIOQ(1|=ILxO7V83U+3KDhX8yq# zs*~J;kvhXO!hh>L7m?Ay8y;}&>F7c452!lHv2zO5I(Yd*t_fY{?gjG++j+u&oKv0U zIj9<LKD->&x*WDWY~DJ?jhL>J+=5v;!#T{=!4E8O?VW5tyc|us%v(HSEp&`an5Tok zK~YBwtD`-zOegphtkP+oy2zTGV*gw~S_iMd7+vNA9<~4FUb}doCp>0^{qXr{)fv7A zOLT$%@|5ElX*-|tw6*Z($232M@H$!K4_@%zW=w_mT<W=Wg3rUG@L0b0zt&$DxbHIS z<NHqYeA~;NuU&aQ>ebGBD#cfntm&!NoadmAF7R^n)n)z}{dM$Ob+juQb%KXspicAU z7^Jhj5^Hpsqvfs%9XuODPjk)ilSu0d@Bg~_=p>(kCAz>>E1dT~I7d7H{dAGvdBZiJ z%N)Jw7<KU72=CVgp0>*UV0(_2AZm7g`P8@EJHGca%|E?k4z~M&$I)+*)k(e-vvig} zdC&cPx_NS+_w8TDc?LGEEuT|%ZP;gqpZvhNHm1lOn5U!F_K%`Y@(l=ox0vUq4{?U= zJOwG8<Gt6ohIN9cqb+Rb&k*Kc;qf0?H(#sCa_>*9)tTnTr=U@%`HD~74?4^9QP4#m z@>%C&Q+(SxuhnVig-htKgUeqy79AY>(y{2^*jHX>&eEJjUmd*UYip=Wyw5l0uM>P8 z+H{6r!iq44`+Vp1dXzD|9GiY06VLcxXXkk#!s~yL-`w0~p0d94T<5rPLuV)X6l{7Q z;fptSo~Qoc*gRK`-$xiz<`aJGyuVVMLHHaSoZH;NUm(06RrvQCJ3Gb4Mm5n|`%Lj9 zRGn@A{KJ+tn?AQhU23BHwyN3m_qhe$Vw;+1v@tPGVY&{UjJe^l{B5_IsJg{9vwe-9 zcMhH8OLnM<7U(RuqNEG_^RH{7{^uAUV+_#=9^c(Qb(ULE)P>MJYN9^pYHml9F7xTt zHPH;6<`3#?{G1%uJnzw~CR(Bsd>-0$hUYZYM8nUsA8toRmpQ+CO|(o0e}xWR;RE-m ziDIK23y<8}+;p1H>F-#)zGe95gKDBS+oJ(BzGhkztqJ3Km!mx9kLJJ=F+u0}hofsY zeO)>lTobKCyX|G(^;nM$<9QOQ&NrU7Ik9Hb?*WN%e3&ur!Qd$)YNDxO442TVgYQ4J zX4B6zFYxb9v%X$iGF<lu{U`Stk3v#s_z8sTq{v^MX+3SP@Sf?KXt7T4V1#Qg#piDB zEbntxO;kU|7(NS)I>WJ1t`i-+FY;jwe}XWd3Qs$`#?RX^e_o2JKbt>)gK8bMSQEr` zf=@wzo#TDZvCpubM`3}^@OpIli^rZDt`XOaPVy-9(;0pTVGd>f_j%^&>p}(YKe}^! zg3m_y^I(SeKEHEJg3tV`^XTiMX@2~I&MxxkzdL7P|NJ}(y2Lw9aBg&*|BOl)!;c~M zSFdTj{be;#LdW=Yq;#53nP|=#%`-7n=XoVsbeWI5(j0V(r(uT9@k?mcCEj+DdqKze z0<`NaKZXun<R8%OZ`SRqn&=Sp)k(e-19g@gr`Udh?R@)8+jX8N-Q%9pIerP_b&0o~ zSL5eodtTn>G3WO}=Zhz!N$2=uH0uhldb}no>oRZARugT|F>Xh=*UEhD6V_p@$MSr% z=psM&q-#}|cq3M5zvwwS6XCTn%?;03E1yr|T)V`YU*x>-GYI!oiEn()x%1wX=c}Ig zx@1g_A4ggj`RW&3Z(%#n$Fi`UFM82)U2Ls*9tP?Hw_~U-bJa_ZSI4;DfBiq5;Nwxz zDL&&B_vSd~ooAv&=XoV2=rY&6>RjtMk4CG`aHZtA##>MB_nOxko!~UGIyi?JI(P}@ z=@QRg-nkBW{s!SSA$q+g8ivqm{siIkLxt~r!(**&o~OL&+PK6%xqv2}SXmQwU1hwE zaRT|Uoez7<wWpJuM%AU}#{YWT`sf0$LPnQ4_KsuM!RKME&hRbRsPlYuyJP>mHRQh_ ztuwslU31bEKJop|PV=6ty}#I=;4{#!(|pH=*2nuro<CaC*%jXZWB0%WbLR7q(iz_O zQ|q7;+={X;aQt)k#bwSBk3dGJc_y+t&!>H1-F;7Zn&0`_8ijwC&3kn?UavC=K5xDA zYJ7(8LG|VK&!3>buJE24yyoi!UyNp*<z2tu{MyBfe(=~UT&uhujXL_#abSoJUb)eG znJ#nPPu4`oIfIH0?h@5TEm`M+Q<$!US8P%1XK#2c$G5DFnso4gwyO2BgFG)sU2CH? zI(Sl5Z8UnKYlch6>EP?Osg0_yw4E2Azb^6`4Ad2Va9jUR7kCAh=`wfOt~P4dF@6QZ zC)p==V2qBs)kb|WK_~bRzxMxhn)B#$mGi=n_we7k$WhN)Kl{UDxp!@CG<34#;xxwU z;HbVf+Mt8SqT3Yf&+`%2MIP0w*6*sahCBz8bb;URZ4JE#mATiBwVOVZ$9Xcs`&5oU z+{tkoU*Wzxo3l>vBy^i<t$5`wwVUq8GM~DKW3)ZZdCb+pWfXPrZU<P;tL=x+Lt1C} z9*oxo{scK);XMzu|1h4<KghYCW;{QLvAVz=n69G%wb5@eS0{NK+H{tu9$XtWUt`Yv z8pi7~FKn{5m-`&TTOQ(?usy~HV69H_D0Juy--u|s<Kn{)wH7+bXJD32^T5MBHf-l{ z=yt6+@FMipMXpL3r(=BW5!PAfxQLE0hAXJL&N}eI!LB7;<PJ>N(J{4ABj)NPk42l# z@``{i^9e)E^LqCSPr*E$;}=lWCEoft*MN@kF{p&`JP%bl>&zPwKA%L#I}axqZ+q}~ ztkYR8U_%(s9pS&dhR0IQGg@x2K719%>mt8$qU&6jxPo>aALe<HxY2%iHHPR4UwB%r zpAqA^xPZlB46npeUFO&y%uNR;u~r9Xut5j6q3R}c;Fm|)mo9Pb+15?R`CP2i8NLTy zW_T|C1buXc_h@krbb|93s)HAdcD>zf|NJAeI{IU6bSP%&BwvGq&T%`I>M}3*i}AO3 zEJuH}7CJbIB|7+elyxo`8+CC13+;2J`S5vIp)-6B*69L&f-bYnpBG-_+R#N_k9j(} z*!db)8`a<HeDQQN>KtD?-f@QJQ!e#f&Tp1K+T0aho2`vnjj8Y<|1bxg<Y}mc$MQ;a zyUm>Wz=^efPL44=4TE%!f4tJZbTrBOOm^<Vc<wdD-2Ukt@pe<~$G=mK@m{aF2W(Gp z5p#9$j?1lW7|#>2PUrXw#Acf(ANRUr)G2-dBXxo6R(MU*alRY*u${Mi!@1Bg9*ea) z%b%m$?e@tRyy+U&S?;#d`+|<~Sd0(bd5cx9=dhhGKrw9Ro^N^Y(Q&>BRd=|q_$Tz& z(c88o6}Iya7#p^~Qycvevvh`EMw>42KJBg*o#1QH<xcCs-=Lq4-mUd_#IE76od>?> zp3zA@{eANZ-{Z~Oeqc>}rj7AJteaz<xq7whP{;XHRNv+L;qMXNQ=$*8A4c0A{3Ism zA`e)z`C8)hKJwmbdxmFYZ5Yohu|b!)`V-@QW{&f~wYLAp_Y(7QpVn^r`9CRc_`LHy zF3x9v(b*Zk`0LIwS^mDGb9?li_lWh@=PB=fyxaHgfw|U-`$ct|jyJ&*5&m3|<G*cL z7mYP0%Zo5e7x{v%>Y@!{JHNe6ouA=j&Rn-`ov&?MAFk|RpFV2^5AWI8Y0lNv`T4ch zpP$DHUE*hZ)kSN(_LlgI-X3$eYmE2oQx}cb34XJ0U9?J<xo-EmXrqqvKlZEhb9?NQ zUqDWmxG_-|&C^NV{s8-#=Q`v@<aClRL|$k4J`{9;-$7BAd7l9ud#^e02+YuFo{qUX z$BVE)7x`x_(b2(m(P3DjlYBnb=nUV14xQ(((d9nln>-h)b%M`8U!CUb(WrBrKUClE zvHSv3y2Kli*3m%ghKx?|Uy#)qz8^VV;P;T%W#0d{j$J4D&nSlRd<RN8&o7~@OZ>m2 zbJ6O#j__RQ&<P%aE)SS9-+^kK=U32ImpFc;`Rm{j7!=0ybr`O5oI2Y02fbeLI3#tJ z??Flz_)Da9g?Ae4cy&A&Ssi>2a$!8bhrBNH?n8`w$ej5UOwwt-5;>jY=HEH4u$`x( zTfufd^7o!sr}zSl4cocySm#~Gc_i9(nkQmy7{i}n(0|OCV?&M8!B?VH=lB^Eb&2bb zGj6_p@?q$!liZH6y39Xgs*aAYi~fyOy1=hsoi1_igt}<p!}iZBF;bVgDpePa)-nDU z!s}Rpf5B4QqZ6$y+I5`YLH`9F%Uy;!79HcvNp;a|9Xtz*b)J_7bcquu*F{4fvF1Dy zEjrCpF;?fea*8$A!Sy2?`$EslLlD;~E{t>@b?_>*=`vTHS{E(TF~0RQ_ovVQd4A>( z=IQTWO8jzjT{Lu&`S6yfn}d$=O=sDU&hy(S>oPZt@>-|kd^%!_&6#JSpU(5ANa_kt zI@`I{IUbVnSe@cF^m)|l13&sVuZN-eL(I?>?s<XZ(sAB*to41&TJhQFt22BTnsk9b z#ZX=0D=xFnI?K;ttuFDFmwR2%F&>K8<L1LxqOZ>JvuM&K-tr3Lbc~NeI*jKlF*c0n zXE8O5=Pk3&dl=70p%BLNl~|(VS317Qo$o1m-epQ>C-{)5u1|k|k>vZY?mS-wUUZH9 zgzr1$;W^`fWzG4~3+w$HLF>lPkFAfAy2Qnc>Z7q?J7+GgkLKy%A>-<!cAeszCe&~G zGhm*}+4@b-8@%SO`c3<<@PL2&Z=V5@{MOy|o9>15J@wJ`^XmOBEXU6C(Wr~O8UuBO zceuAc8l+=<0EX%$kHT=B;p@<>bKL*F`e>t0@bQQh&696HTIcymjMYUx=KlI<Nf^UZ z(XMkmA8W%HZf-S)r>zxVj*&XcCCt;o-=QsRf1o}({K5LD+cW0LXQQvq@Qq05Jdc}S zAI;ENE}~5bZ~w6M)G<C69XiARMeJG6#iuWDoI1^GF+^ARgh%S57M<c-k=1$bx5&CJ zu_oM%(K^F5iyga;^I=$}lROLkp7U6K9s_my(fa6NOxHy&Bd>!8J!YOd#TisRZ~xrw zanGk?ye~33&r91Jvo3K3D|B%66ZWg)eCU(r{DS##3(`8nIgHW44?Jbgy1>g((PiGE z=o-*5ei-Sc=FA^sysmKV)Ai9L9p@{sR%dxGHtGWJ^h|w}deImjgchCRMbFmz`5N}g z-=L(UCH2v(==+l6;tgoh(Q~$8kWTP$q;#6&&s%>Td?ea+iZ8}mo#ngHp$pvpf^+v@ z$H-eOb$)e>55RPt<lSGk4m!bqL2Q|I<NMH87x)V_=?d@jignfrJ|F2Yo*%|oUF7Ih z_l6E`!R#=G2fn6#Juu0SzwTam*?8`<!ui#4zV8j!(kq^q*I|&Z@NRE99-m7S{0j26 zmpEEkA1%<qZ3tfvFLGg(WAwG$;1A#O9Ix6B_kP<L9p___&?#P6b{*>?|BN>6FWsWS zSP{nXEm)`X{2scLtS#@fx<2Zo<9r4hb(-@Ss)OG{OBl}sKCF)>=p^5Q8DR{sL94EC z;~M8WjNx%;*IE7v9Xk4`KKdKFy=FTvL0?_s?LQ7{?OgM`bsoFidh!>DUblZf=!^QO zUMKk~By^5n#t>cN?Z0$>b&QY0c%9<wkqhJbWy}lXd5^E0N1fowSQW<b3RHBN`&QiV zD~#cD5!V_10!_NYXMOFO58L?xjMfGI4B0S-_xZ;8(g|L+-h0rS=D@WZth0{u8JM8c zybv>Vk$*<3j=pz&VTn%h6twFce}oQQ;k|ya&MQ3^Uyi;y%THjSF7ggPx>t3KkHHw7 z;whM<bA0+w_PNS@coMq3WjjBMKDxv|pudiOu8;P{K%L;re$^}L&{@6*vA3-Ww<E60 zy!95nqJ)m|@kr_vUx$>=@ncBqB7cdDuJ93C_VRORjOWXc(^-BHd0pW5QPAbEt*d^= zb;~bcnJ)2qwCiZ=UeRG#r<42_Y}6SpqFcK;@Ot#oQB|*KU-Z{0E^K4G4qk=&cRepx zZQIMw!Eub7*{+wLy<?v|3rlpKmtuu3@h{zaMZ@2-|LuE4yJECX@GxX_nlHzAo#i>m z>H;svR9)tuk<-x*y`mGb>F<pAFWs&A`{ux{Na+H1?a?c0(J^kuc%A0QF<lqAwx@N} zaXtqNbcS28R2O(H+I5BZukPjdby!cn2wlqN%v;v>ipo01Cu5^d^IfR^z<zkoI%}&F zJQ)MScHX<*ny$8;hoO&7^F;L3Ii8RHy2uCh>J`n_NgjoQ&hQ@_dilDG<{YYZ@B+kj zk=LNVu5he(FW+Zl&fJPNUEo(x(j~4Syq*XDzE9_xr}&^9ZC_&!{3kT&3?H$Rwbdye zhrG`6?{>DYu$?bJ)ko&Wuf?4kUFND?Tn{?NNleheA7QPo@D96L+c1Xfck2}m{n)wV zvoKm`c!xb*-#W%Aly&elbm$zvh^kK<BVWI_<JUP}76{w9Yk!Z`F+Lg{I>lS<Ykk++ z&P{05NgjhXo#9znrt_RmnCGX?DNjL*&T$cAb@0^(IFG)*n&Wu~x@T=K@GFQuGasJa z==}Lip6B=g$7Xx*NMv-HbC{%qi<qT@JJ715gM0ZoC!Oas&Q~|Nmp?b2mtcr4ahLxy zZyn=77_U=24&gIEmggO64cD0`zlFFihiwC0V>-rvKCD-?SZDY)lysgyI^1)8;hb`9 z(lwytd=y6O6d!+tH4M$;u|{Y4fFrH@m)4v|VW`gV7K5#kj`8s*>J;CMRXWe@sOT~u z_<QU1mHqI=DCjIdfhD@g9ayEKW4)FRb&e~>^C(Qx8NLxYo#$sTTbKC7<E+Wonk#73 z!AG6oHBG1Z0_1g;cTRae9p}SP^^ND^+fQ_kb)HKYuY;pu?lm2J-pQUrXLv4R-#Rb6 z2K{t}8&7dx=_G%LRXQ5cE7}R`bb_xK>2;~Ye0UyGy1->L>)`CEUK_(0z60$#&mWxT zynpApxc(2GOUF5dp*qbsAzVLs{t@AtkD7Z$ryz8icR9VY6THnut{;z$aT;sFe)xNI z`Jee;>|CR-PVqe$qzl}Cyn8Kd=PNGpdg9-t6!~|TIvzjsB*nuo_d2=WK6xgZbe{K~ z==gPl$DpV)JO|5kf!AS`u5gbl%}vMocc|zTPsc``<7ZH{!MWpZlRU4E@d1eIB#%OW zo#6*3o2M@DH`u77Ddvc7-y6>p(MRWaG5YHwuf;%J;pS_+F6lJS!75$gkFYk3;RB}k ziZ<vZk4DuG=D_n&uZ#R0`swJ}UeS?g(kUK~Av(*g7^w@q3Zr$ItFALn$NBv0T^m2z zKeu9}F7O9v(G~8W^O~j;JPZ?bns>Uv+UhtrqiUn=JQ3Bpz}w!q`Sp!kZn7WSGkgoC z>O8-Q8M?&ZBCn$vy`tUFsuO$?7V9+MaEt5eCy(Vf(4xycV5Yh0BwvmhI?Hd|<`{l9 zhU@<69?)@4%ytj^JB8r>w{LD9e5Y&Pm=s@ulFsr&SfdO4J~rqw|8b7z{l#(dgUIUw zcfHG;b&N-$6vpr?SgT9C$6T)+(E)ysyw_*=)2QE1;Q5iz!JlD>uJ9RmTjyUL5T$tz z`sxB#Fi;1#+~Z!-8GaTmy2NAV+2<Cv^K}@cbA0%{)=DRN0$O#J=U}mp-`6YpC#ttR zz}J7=JLsoN{0$O1y5HwXH0dG_f1q<c(|pK-?qA!Jd@kB_hUZ{Oc<e*HqSKymEL|KI z&%_X&=eLp8W!~dS*R4+Q`N-)EAN`DLc&h_^ZNasNw9fG}7^_RX#j~zA9pfW0JB;U< zFL+%DUytR>mO8Gkj-3}Hsf)ZCLv@84UUZM>ICp)`vFI2dgR)NXKe0jQc_m_7n?Khr zw|^byGm+G3-fe}o(g{8f9Xi8bBYfVA-f-M2og=?rBg?bjvc6UJ&wIY>yy^t6dCz?w zzVDiMDZ8e9%{<RHed@EvHpcTBwCM^bKJ(`S9eg9!g)zJmUA8r6-tBX*X*$6dpiyVJ zh@m?8e`wLsI-lFWG-f;V=XWceo&362G~zpRwmr>{V7xAJ?0@0UD%Oxs!s0N7uUYTB zbaNj0DYWV$e}$s1@HQJd*C)nzeeZa;cQ5c~Na+gi^@G<vo#6A3)fpcAqxt*(lN66b zcppq{>=nI<_zsSpfAy33>jYnkNjk?1F-sS@`!DWg9p_Q#@@xC&S*X@|9vC%5V|9|x zz*L>)jaa3lUo}KKVV#b18wSSgpWj1DmwD0_4N*R9=L@?wL<@A5S7AjM!#%fdh}P;j zpM;G%&5IH1?y($IHTW^~o|lKANvC-+hK4b`5$P~y8*{-}o#YF*ZSZqxJTKpa>AJvg zW411H_w5>d54Sn+`0YJcPvf~2NnPNTNa-?fyMyP_F+L0#o#a0wt210v-4OMwwog74 zLv)&Fqgm(qO=NVLYiq1m7|+d^6~^;yw1)A#5k(!<Hbl?&vc1M@1$S#`h?eOX4@Oz1 z_-b_M9KVRFTI0D-Z|FEjJ2pg1^(ODs5N-N5>3n3|d9pplS*#0Vc4>$XNBFaIY}W?= zR@eI1Ss(rsExN)zc5_@h&Vw;Qr@5}La~-zxNJRCv^F(yhIer48b&*$Nf{yQQZLlni z;R4D!xO$I<sIiwZoWu|vywjf6E^Oyhu|TJJB8oc43$aWWc>`93G5s2%A2Gba@&3lO zhA}$HqcC1)`0Bk}!#c+gVy!N485JG;Re#q>Z)?K+_i-#b%`alp_w@3s`+BVHCGNmR z9qs2DL{%U6GGCK$J?k7lg6X=*pJJA-@b~*SL|u0D*aI4T&s;+k*THEt>fqG}x*v6g zcWHG0gfZNFkb7+>V|XI^=^W2Tqb~9h13J%piYFZGd2P?~929hcm!nOWxqp-Gu9F0> zL40S=8~lIvse_Ll=(R<s_&UthIbMtfy2xK)iLUU@zqRH%&SzqcPV-cB=o~+VE^&|L z4XD=9VGYp$^wmlJD;jl%@5Ufq;P)|Hm$~+E*RziE7>o_$`TV5+-bM3$n4}B50yA`( ztB!CiI>t>{pp$$dHvRdRcRJD>cC~*_VTcYMbd>AIzt>Ljx<Sr$_<m+ye6%$;rpT+& zsw>=Mu>FVq@L33Jp5eWRxW{*Me)%*s=`>%1Av(v8W27$f#NT<Wzbnk~&A)dq*q-MX zu}+uxkz?IseU0bOF;Z9f#i8b-OZ*L%=;%1xQNO$G{0$O1I^I2ZLb#u8=L%-&;8@DK z=@jpGqW|8*{5gfbI(QDo>jJ-t>AK8)PjX)TJf#FbG~7CeG5jGqbcJ_0*}2)%KKT#m zqtiSI{dA63pi!6ktr1?A`f08iX^f8ZNl5B6Pr*o?<3$*)i~I@3>k1!zs%uoI_%clT zjeCdZV3sa$!)aazbexaGMxEjd&}A><c@Dbi0xw6kuJCrvu00*&1m@}BJx{lv&^#Q~ zdz&+-&otg=v*1N7&VlVkt~tk;{^r0LH0t1oF<h7V$aAg3KIX;~Fi>Z?|9Q@ZPVkkZ z9hc7Wvk2FGi8uVw+-#4|cfL>z<2i-!xiR=Yg!h*M@A{|BuOYl>a~FAZ)^)Y7x$#pI z9kVX-XBeU@JmM<**J+-HRXWFSPxgHKITr3Z#XYWLd>}G9$qT2t4s?;%Vx6vV&DD-U z$9bn|UN;k(hhVHu@$uJqKMl>}QPx@RGu?XbZ#*A{Av(#&Uu&&&iZf`{!QHO&{&;}7 z@xG|m3EtsGa}L{iC?@F?PsS{r<0WX-CBFU^&vl^fybPmtiM!5p{&b9wMoy=A;BC%j zqq*^g7^<`UFw(ln-(swe{@D=SFx#5wJTF1)Ap7SI#C3GLb^4e6>oi}Fg3j?XSQ5r_ z*E!CSj`6Wrr&D|dq5<Z>7tM8Cp?Lw8>LP!JRl34ecRRla+Yj%H7M<Wb@AVj+=apEc z%UpM#>tDxt1ge_Mljk9>OZ?vbt|eXOsMWQh<NU}&?uGv|2mTpDwST-99gP;9;^~;6 zb3Ax~>);UEc^U@l9KVK?E_1I(JXXi~{Dq$HP}c+Bh<cspXV6!d_!}g2w5TB(x7ac2 zEdLwJbb;T%DqZHS9`(MdV|@N&u7`p4&o?8h^Zd%=j!~ER8?4h&n>9r8x5n_37_N)F z@=5osE_1J^oKqd=6jtfrOP5%m!_18rA)|}D9#eJnTtjp)@;b>`EDqy&5lUe^S3U2Z z)G=O(rH6Z7j$ZIOqvO2oQfrblCK!Ws@Rl#SN5XbapfzmgU%%w>N7&8@RO{e3OV&r1 zd8gN$OC9HPF;{1JA=-42f5r+OEq9M&olf#)=yIfE;iu3?7x^bN>ge@`=oAdqX<mqy zFow5W;rh`rJ_$3z7@mn%o#!3ju;x0>H=sRi=XcSe%iQp$*Oa4-;nUGqr@84}*U2FB z<jYafS$-Z>N4o~N_C5E4j`JC4(rLZ}DV^u{Fj|*6{=V}U#`77N6~^;I6m*em%g$XG z!!0Q53@^ZjFoxG7HrV=nU=7hvXZdR+!}iq;{tdYIU!CMjkqKk?2~5>RE`8*@4sk5J z9z(TX02lQ~vrg~`jL~Vn0~2(f-@$ZU<{duqX9^wTv(TzDd^_60czy-TbcugJyY`2J zXphfb8^7~hJOUM+<|&AN?{$D*K}?tUXT-H1@EE0#(7{uX4CDDpq;!#w`NH^Pjp3<i z(m9@wLAuDVeChtuC9YtB4o+2^>!BXY<Iz`Vc^(>dfn(nouY;RV(n%hTvd-}PVSD(u zko?<kJKy({d~JvKj^oUS7ht?D@)}Il6+ZPl<2^RbTmR2BV0(;*B6hsF@dfCkOWeBN zesqCXVY)7Jmkq8r9pfg<)k$taL1%at+H{^@!%|)5KYnkF&%hb}JHls@EI;{!>*NG; z=C3ebS9q@<&0i;YE~1qA@CsDx3O};Z8tEdhK{jmX>YuzP>NwxERd3%P>aqM2`s%1_ z@8}2&)G59J!*!m&!<aB;>)ufc)592^iPkWNU&9hz=3T0KN9{Vn<IthA{06!WGlmn} z^p5)L;BgqLv-}^l=pz4W+uqRx9pe$0q0@XnT6KZH#u6QE*E>3N``%I8aO=<KVU^DC zT&&dv{tz2<g*$fW?R!`~_Se0mIA-hMB<AVhzhZ&T@cioDQNL5njd!f+9gWm+&SQcO z-n!O*>ln|*lCYiQb><Mp^Cjpu!twH_NazX=uD9ko#rI;oF7S1|9E-18=6OVeb1~97 z@YI0L@nX!<MP7?}y2ACn{XZS&Ay}$YJRYlbvQO{me>)l<zK*(6?`Rsjoo1grAANO^ zS0kY-++%0giH`FXDCjKD#Zq11<#E?ovvbX{T^zp-PNGo<Ux-bAKIL0>^Sq~9D}ELI zb%}pLQb&DzNBd#8PV%hX%|DFi5;lbK9PMF0XBf{3#C7nYp&etAr()C3DC48{G;d>4 zJP}2m<7ZIPCElW6Z@&k?{CV_mocA+b5Bwk|=mLL%8M?yz?&bQ_3I4<0)-dgS@%0#_ zbNm!W>LPE`-*xNf*~WMgmW1uR5$!tKr+2g~*6Jjmy|4Y8We(hmW?kS9Fj`l*|9-ur zu{y!Skkx74IpMn3aUP1;D96rc?(e$NX`X>eI?pfuKYMQ<FV(pJ|6jYdnkeQd8tmO( z`=;6yRw+ips4(u1IfN-4rdvCb>4rAKNHP?L6L!Q|`+oLqa|lCW5H`X{GzcSMyB~y& z@O!?mwMv|GzTeN|_jr8&`Tf4<@pzr*t7Xkv*Sc=r*ZaEG-m^zg&-gU#J(7CHyWtGf zdn#psYmtFZ!Q#VdU%UyIAU{3^JJ2M28umNl0DgCkGQc2Oj1R%?N7B~QxIR1!O~Qv@ zEt-!{z`>)4KX?-^K`Zewn12+{KAq3PF=!z^0#6!!fLf0a!1*XE$6+1%9G`$2Q5QZ7 z^N&U|xDKpEQG5b^jx2l*?tKjPjyK=~$aMkF4!0u%ua2d?&``Vy_w;ccyc?c`EPMdY zMXmS<Y(PnT0(PQx_#8Z79CcE`z2JFh5<Uc@Xcj&OpFj)oDfksyhR?x6kEed{CJdrh zd<fo(*5YHZ1FgrWVUH8&Z+JI67JZKQ!OPHgd<3pSy=PKR_z^0==iulQd0xB^p5>>^ zygLZNuTj~B)X7N)s3Xy6ybn%6eta0-iN@nCc+|;^K{*Fjq6|I)YtUAF0^WHl*T0DK z;dV3$uTG=ip;>qzoQ)RZ!>|r5!zbYKztaC^@maVYnfNpueFo>?eQ*(q<74m{l$3Me z-e*!@cmw)T1|NX8qfWd9Uq@Z|EG!vM-?*6ihe71Qhu|_)j*r14^5Rpl6Z!Eucx8~W zIh$vPYf(8q1;0Tf@M;2OMn1d`PC=*Q!*B%(;w`utO~Ys5-V+&jcmqyC3-KYi2u1NR zct2W>Pr+X&QJzb<*WVdaXc|5Mqi8-p1~;I^_$+jt$7k_w=tXt-5WEM;KA{D-qp~p9 zJfHF)FW!L1AV1y*=Y;4>yqk-_YbPI|LUXtmylsl@E%@<N`<xu?JA>!q90N{7F?<N_ zH<NQ*yvv4nT*%xompXwd)DJJrA_Ff}7jZt`fN#&DZR9xI{bFJS-VKjJTk$@45!!|i z!xc#86g8Vziez3(z-gCISMxXrR-qW)g73_seyEcyyzo-)J)eHEfbyU^yzrCDsW*HM z9&`m|kaOVAXvC$|;g#GI$#sN}F621h&6t9otEf-TG2n1C3Gaj3(C6~mtLan7bs2R9 z_q~R?#T#%8s>BE2k4WAfs0j1*wLBNcBk=wu)H&bboPv!v(WiMwoLfq4Sk65-#|;l& zVdoVl{PI5g{2aXdpOkX};}I^arkwZ~++I)FYWUfP2A&B`l5^k|6vpRZypi^k<M1_< z!Dr!&mub67>KVR>CgIa?$Scf!coS|zb$EVQP)$J{az3nkmHW#1aKG2=XEEShr1u74 z@O8%L<<u3t2dOJ)NB9crjZecp-k{#`Za5s3;eGHQNcVp@He>q)47^F7;2hynl)%T} z{b(&d1&iL|npe^;@E9}{AA<Lwh4=(q^tRnbF__s*nORe0;ScZdT;z@F-2>FiTNt;T zpN4%tpdRsV_{m3h8|7eCC;ed|&jnvW<@hx8d_t_j8}M`#zz5)CIp!&R3hw?jeG%`5 z=OOo1loP&;One#^e#2++2D}J`@nLw|Hp(seEj;Nv#^cpoA1*{*d;}JCIqd@P^%tmR z9JgR6O5k(wh?5Fb2i^y7Kv{eY4mi0$b>R)T2Dz`H%ut<Dpvv*WyO0lW!6QyBP(i#8 zZbD&v7A`ogKt=Hp*#EBu%EBA)VU)zD;KipG@cUIf7c2-+J~;=jLHx2R-z`wUTB<;K z@L{;e83oG3yWv{omvi8`XBMasJ_P%WFHn_o4s1a&d;<RctO6C6bKuV?g;!@6s5X?5 zbKoiG6!81*)F=D}xvu4$V1c>^8F&kxHlcv;C*d6U84BQY@ZO09szT0zN1a>1xTj9w z7pO|kflDV*|M(a@`tQ`goCDuRS$r1Wd>-{L=fEN7Q~!$?kMJE-j?cm?L)1S$0{59r z{o@UI1q#b?xEV#|d^l$c^)JWahbW29!7Hay|8gAeK8^avyWwp}UB|P)A=9aUyb13| zCO!p^n?e2K18@Th;j{3f3#fm5817a<{o~#60Tjol;L$Uwf4mQVfHL?ToOU7gj}ODX z7g7I<c`kSzGVn2Y*evQF?}HDb06qn$UQGSt!!Uy)_$)kmHuaAWz${A0aaeH)^)Khc zw@_A&!|TG-KRyNv=1~9FQwCUv%JB(UKaYAQo~PmR1qC{8SkPC=^_gFU?>RmTr(Is4 z=Y=r*1<CKZt1AlBomX?6o2X~_8j9hwP+i0G${G_+L=sm+@N(yP1U4c)Z^Gm<%D`t+ zP~BXh`Yom3!c&lm55O2Y6)zlr3(t=a!Th@l)ONfZo`{TPoDXNMAZ|R*--&~<du%V9 zv=UFu48b|~;hD=KaP@=qF+Q7uCp<*i<T~&T)ca<h3(k1BfbUD8&f%n_T_+*9$0L;a z7Rmrep`rKy^gddk7UO;JQdEbJK>r%M4g;|HF`nU8+68`$%JDfk_;K0;AAqhWXcxR2 znrIzf_yzLBI3LEJ;<NY!JoP#5jSs+UknDX~u>AP~wen`(o5L<7-yO}Dw5z-q=|6nu zfE)gdPUW*|J^cqse+a;}NcP`SaKTGFBY&Gd0yiPq*UG{l#dE%Txj>!$Ds{wlLh!UV zXfG)bT)LS$!N=gi?^EY^6aKP=Hsc+u`he%#N}u3(8ea1m_r*tG>I>=|FYNuLT^=`F z_m$nBvoM(}P-Q0^$~?tbMA8q<uM5=c-&2pb(T;GhADrWGA(H2c!1f>cEaxQPh1<Co zd0iO3_Y3vO@xZS<ACfs&I6xIDKgSJt4hrH!@bvsbzGsH>;qg5R`CDyxnCB|g{ml(O zL~@-Re63fZTFyCHXzgJi7jEobs8({kPoF~7!(FJn%ZIB%c>g}!7ylA8J=_<68hoy> zP=)b*1{JCdisHY3&4UY775*`J^nrycF5WCuFODiyNqibkKc-N1;MH-3>VmO_s`Ad^ z%0I49^**IgEyf%0xl`@qov>)UeLMw!JIj79b#|e80Lgmrv`K|(*m+!^&%ShiA>W0` z_3?=r)XmI7{aqGe`0j<a?{iV1YM4X0<$U<o+(MNTe?_4>e_^3=-NiF5DO7W#h5XI= z;p%1>y^%T*e;alCk3z;hvFKj@yH%(v@O|nE)u)Y=S$w=u&1t4B<a~JTgN1y@_Hfk( z?|zbc$G>#p0Cmnq1NiQm;p$@e{OkdI_cnD1KbkW@W$=CG4p7ftI)Lxt<~aPWa)5GG zas2WDsudaH7Y<Mj$cuk`(E!zB@c<RT9|I>{Z~NJ>X~_T;;rPpNNYwUiH*%k415}dZ zU%&;+2k_nAlo{@S_W;$2Z@XuJdg8tTO0A&G@bHEKd`}Mb10QM`piKPDZ3EO(PYh6g z@y`rU_ih@Xg7`jf@+_YYP!;%>z8IiB*gim2%JE+YsK53uQc--OPm#K5&my&&eX1;6 zvsaNGBWd{6UyAhpVGdr}uZX{c!`OsNk&Lw%d>Bb=Pr<BnTsUf<B0U%Q;7v&H%fWH` z+CBiQJw>|znEMs+`#(iGRtpa)DAKXTgl`ve-4(<fxU9(bY*4Brkdz@&R-|eVl(O-+ z9^jpa6zT8hvEb;Viu8A$_~1#S@#Mw<ct6r}*3m`k4kT+U3tl{qbNHT_FswM9@-t?` zu<XPlzVDE~0pu@IpCUb$;j+`IAL=9q-wqV%zrB)$L(Z_h2}{qk&o|*LB=-%&>&DyV ziNV@)iqu+Z3;0Tqw%~6fq@gv@K40jbWP9O+zZdE6Gzh_~&$E35euCusIT#7q*A#A_ zY+qAN;lEEW(m($xycfy6Ea<toNUzNUvy0UJm)QNmfLRg0ryv}0S&{yE4<CFD$=J_A zSEb!vZg}k#MQXj&2}~f}MsW8l?f&3~)mIg%0vGKCpGR^|8vcN!FS)NSQb!^=?t>x6 z3s*#nbUx$0j&?-SZ&NU{xJYf~zFD}(^+ihE%^V7kLT<bd_FPI`$Z>cgGVY;2z&MKF z6EKaIi(kfPZ>DbXJ{UsV@xtV-MJmYOK1c~;MJlk8<M4Jg4WEK<-bQ&?UuWSPx7&Rn z3n$-AnK>s6|AjJgKFqs^ae;TkzaiJXTob-lUBq`Z@mz4<8tMmcz_U?K&Vik^MJoS3 zasxP{k$T66VFOx^Pr!qkij?=C%)jtF6u^gIb2HD6Pr#4RI(!cP^%3gFqJH2FXdFHU zUqzGfSy=pNk(!S;;T*IKAAt{}I(!QLfY##G8a}tSNNvQ2U?b8wAw23aj#pF9FoZhs z!v2plhHH3UI0lW!2jCJE!pGn%NdMgmxc3vbH{gONi<JKv=6X1I9nZ!2Cagf6_%QT7 z%Q>~&7v7E}ceUU*j#tkWsYOWt{X1wpPy2Gda6DR!55YTLpsn#1Orb8k=6ar8_Wxfh zQb)f+pOn9s0kcS+-FTI{LQ?)LR2%F*FPw;UE)6etjz?f4()9-4L6U>z;32P3rt|pD zUU>XQdwhlA=GPhTb+i}U?G4J0cf*k=jQ7FmXdylf??6$!CEQe``qfj<Fo{fj3U(qN z-km98-@`6X0N#TV9JgQ!t;45b<(u|ch`=6i5o;RwEHu$jys+tQ#vncczd&{P9E`rl zSZJgS@C`H+pM~FL>2G-Tei45+iav}t;mup9$2jN11nP%3J}6S}q6&N#@&li0Azt_d zl5v`XyMJicryGt%QqKYS^QW|#oc|f~8p>~?-ryCe03U&mq7nEM{0W_kSD$k}nkMJN zNl0Q^2oCsy`JkDyK_80Xg*PK<(-?fq@mcuzmz0xpQm_-L7U~Cjz9PQi4VagszVL47 zMRj-|tU#;rVR-J>)RmM0zVQw9*-D+jy}qT)csD#2h44Q3<d4J<d>T&ti8A0ra1q*$ zkHPOyppDP|T%<nU&S&vCxc4u#J>Gz0kvw|<E^vGT?)RJBR}FZ6zM($n{1Chwx!dVW z@GVr1&%#@K87hH~!57d*d>Rhk-OxFP3HRK?(D!n~Gmwn082q@ep})^L2aoM%=<(u% zukT~%@4{948fwV_h8nSo>qB3mp>q=9--__8A4BksVnhFYdlvpS$WY@rUkx_Y#pQ;c zL&I?TfsTiPgAAQB2z^6rZ^17PHuPNVJH#Mw;l7fGz;jJQ=U^c?bU61tn7$3SA7*=g z=vZwXY3T3K&B2bt4V^!v;agrqui3Nk$5GT3IgC0AiexPVCyus#2p)5+VaFx-C6aS; zuz8GqJORHPXXxA}2S=akoDavHY2PaVuL)9~9;_4LD--Q<rs1?HhR(;r@YET0nFFxj zg@&3$y&3Ssi+N7=^K-E06^72)+;B0HpIeT>kFPP*e9jL<3{`_9Hk#KOY7r72gZYc> z^WAU?((xRA<9KzQq1GVjhbegFV%taHQP<nv2OmN5o+1T*L(+fL68a1h?}OJkJ_4U` zd>V#spbV5#_zBYS8TO7keG*=SsyHVCE!2t^eu(rKxzSMfAinrcS@0Ru4{zRNsC&^g zISx0VO1xT1yCA(Dzu8c;Q3uDvum)|$r{Ta`oO*-LqM`rdIP7*S&xLoxdKAMaU>eoQ zIq)}>z^fQ#L;dcj3~&P~$7kWsci4SE-ARAG%g{NV1sATMoSYMZt5Fp`1%E~Iyy|X4 z4ME~fc#h*kuo>yU;|BM+hp{B_1o~InV<!Ojyw|B)__E{E@YVb5bF%Qhf7<6*a0`-l z%)#N7)248d<704x<Fl}&+CImGHzEC<Y_Ly_?S1feB=v8>A04l1xj)kJ9PU%cxMi;K z!A<qV9Da5>3;Q<EMv@P}9~&7{)Q^fA>TuNi0pc*6-ei|Q3{P&RpK&|@=b-s`)xt3( z*SFxDHbbrBcm%efEIt9RP8iC&n&a>R6vU_C{r{qE#KUc9Jw9+h{c5$L${wT)@CxL| zN8sECsT1=52%MfYRGi~sxEiJLDcJWB;yK=cQ<3W-&VkpiVT|Bo@Hv#gr{V5v>9=?{ z9E7Ca0<iiq?)5O`hg;Ajd=3^oZm>Vc_2ElsD?SaokV;Y~Pf)KYh|j{^Q=E@?!$D7S zFT4rQKv{eUc6-XMLpMAKNf}Idvf~5reI&6u2fuh4{|M!Qhpb~x!JDuF$=WIbJ<r%a z2H!*a=hL1w)CVXbpM{g3BZlL{unJ}Hp$^V}nKAV!<%j#f!u9b6oQP)OL$C=g#wXy2 zw4qkweelK&{Cf@c3|~Xz@mW~*8lT0Ruwf%@$GA(t43aYE;4!Z|eHAutqRgD1fLqZv zd=7s6HvM}o9<JYPs0w@<9{mo_#XRDJYu}}<nK#q$(D$720=J@+d={2wxi{W~8<F`K z<%E6Tr@!G1IB^TH5+8y$ptblId>F0Ar{E80GhTgQsCTwfw#T^+bbrY6;)N%FL_d6j zz6}?kGJFI!q7nE6{1}bH=U~mp)QKF2Y1DxiUiT^eFGU&P6KFI(1%E{Wy!wpiMbq#m zJReo!L$L3ceD+D63!aWf;{)&(6u`&e6KEPf1;0X-_#7Ph4WE6A_Jt8N4lm3gneVc2 z{x-@f$KgiQiO<6M-&3DYa~y6&75FTy`H}PS37G#A=i}Y*vh8-?h`<|u;j`-~8(fV- z_!QiR!g%#7bN6qQ1Mh|-P!8{d^O1Un`@$1dv8uoaU@KaPPr#@1id7n)hB>qqFFdsy z|CaM%|L(<V{Ik>>T!<?07W|+`v097I!QnlN`8jUx3$H?5_y}Cut5_xY+lw)wh`JK? zcNgn8Y`{DB=9<rOP1t>(Vx70RVPfB6-G_yyr&x~{;mZ9f2m3_{xE<-a?0{l5AIbG2 z@UX&S72%pbI3HQ~6nqis`EEe5swytlfBVLQ$rAf`3g${}FEj^nO~#b4>>&Gm6DAI} zz0f+cSg8)m4}U;qcr~h69f3yUeQ@zn)FD0r4;x*qw#jig4fTGW_ye~e%`+}yUOt9% zk1baDi&<B~q|f##SbjX8;d~Rmj27b4unSe;)d`$~;&KjDCl>Q_@f?R`s2p#?@yLr0 z!LZ-HuW;T;JP*esuoflp3AhEV!y6|TtC2|05%5LFr{S+i{@#!}h5m!g7wJE6HX4Ty z!-`XBck!?et;Q$d{L_l{{2qbtAl;^aEmr%UUab19=f2Q~%JIT^Xaqh2E#$)sCkN;= zFL8Z%JF3H5aKIVV5#E4))bC}=25XScbKrhwQZKCK4LAcy8N#sM@y7UKbs>^H)i8Vz zN&b+66DAg`SzI#&??y4a1>Zt(d=~D1u6@1%-}pP_c!lGz?|IY<-he~Sr=Ia9JQrp0 zA$U2G@<iZL$H(CJlWE5^?K`Dd9gZg9eQ?FpVznM`2~j6L4U1;b7O!$I=tq<A0k{-Z z;A3zNnvYMx2QQ#4$v0AP!c2QShTzJJs5idX+Jcp{Z6AT7!}d8o_#5ivI%*E_0jUj? z4NgP4Zs9jbawlUh?T%!uW#QC$v>jtP3@6N|UHEJWUWR7jBk+C{!KYx;rNye?HTn{K z7LCBCVYkb8PP`j-T*1BMIQ#*rjg;-mVs$if<9+aIWZ)yP5t;Y|d<*&TS-AVcV!j`b zYr=!C=CiNUUhsTm;zRI0G!AdUcTo_Zg#)gk{CERige0E{!#)v?zri)(aI_fjgT>bt zs|?<R<53PDf*&FOCSosiFQOgs!gG+WH+UD4{%OJO&T(}e^@Pe9cLsdtdg`3dW?}y& z#cCtofHTnN_%M73<!7j8Ier6ej}OB;&}zH|J5UO*qMUmpvF1(618=*P{@2PmFmfAX zoa4eeG!CDG=iW};(#LXl5^wIZ%b$Y1tC*X3Z)n1Wj*r0YNXLg2#Gkt<57)`UGgjKi zLvZwc+{@s*;$iJSc}C7jz>6%24~MESY_4If$#M7r+A8INgKCKtcoWV*z2D+_;emDb zXHEDJigG*!vuGt=IHR66lJj8<<-g6Cg8yi+$58?v-%NktcmOU!m2wWeyp=NGBk)n= z+RXLgdZeGXjrkVIdyr5&?S4O><s9KSRD}<~Js+~iksJQBrkL;Uqg~b(t5Ik)-UqKh z<M9!A(_{1#d<;I1y6|au@#CEHF3$q5LlyWKd<-qbr{MG_cy_*1Gz`B-()Uz~IQ*1d zhA{l+(;Vl$vjxXILwVk#oNzJn;$yJoS;~)3z%**bht^YXFELKD^dI;X^5E03=gW4T zxZ#P855OB7AA`?1J`H=m;+zjpbbJ8b;P@DPX9N9~_u5(b%o~hHxfjeK$<NJA%w-wM z&G9fi?M=Ji2H@*R#&Q;Rf6KWSJi_rlIOJ{S0$FRruis-H<T@%#yPzcA2ZLLwllOUc zSc3xi1l)k8;j{3l4=E4c2hTtqaz4x=8Sgn*`VrUKLLY`>&@6la&PF=+!tXz$%&REF z=fn*p^I8OMLo!Cx7sM_k=VxKbmpm`e7=l-S<HUSuZsUB(k>D}k+t28Ot=&p=ewBdL zJxla{T>{STRid_2o-iD@dx@U+18~nhO7uH=H~bChe%`x8t=O|f&p}yu_+BNto_(<3 zFC}`9&VbwZw!P|GqF(G*V!um;tM@I@`*kT;)xSjV*IBT3{}TN(atT;hP@?zl67X+@ zc6mau`vBX!;lCW8g4Yz6=)JoLoPVI>;rj=b=)5Qgw+*wesfL%R{k$dY!I;W`pN%Tv z=LCr}u;0=4XAPJh$7h0kM-v?CFJbSTwu5!2P=0&@z7#A`iy230STvzT=PD+AW+L@A zgMB=>-?@C2_A;Q)@c}s1@nLvBl6FkN{U_PaXuxBTeAWj~aeN9MeO`(3QwATLhC=u- zYz>vDq?8SQj5gzQ@RTVfYSLEv8;qcZcwxg-yB!m-|1{^mu+s4fc*}IV3^ACxz-}Yq z)|u2TeJlrq7dyw{X|wG*55ShW9Oqu<yb^W5W%l_7Jb7se-#<xt;8QD0`2I=8HT<}q z_M`vj;8)F*Q~pi|oY6{OV(lD;AGX=$$-&oF+4o8%O4Q!>m#CGrg&{<pysOPUP{Ljf zeU5ie7VPy9{hxT^hEtH#c^FPia!tw*f<Hf6qTj2kH6^NPEzicgss#M|W1P>N7=lS8 z`F0Ba`nY{f^+buf6v?~w2)r|8AGhE`NY2l}{!h|}@CKaoREa9*z7aU@X^vC=2;7MD z7>DWSN|aaX2WDO<;XMp72PR*l?eQsi<;(W@5%>g>=Sss{Ua^nI;07eejdY2cfF!nr z;B_19dXB-SP4=@VV2=!KOdjZl4V&%yPr%%}_Blf9{SqBNQ*b+yYnoe1)agjCN8oKp z@5RCO&ha$t`GI{-7_R@MME@LA4ko^|uPI#dm0f-duFl#0GX?X$;XL}D8=k(6@>351 zSoj_Bgtj)|il6N3SkU^F&$6#Bd=Kfmg(v=I`vAOEmFjgz3~uOIs=s?b3u}6nsw%FZ zfLnGi)jv0wgWY?V>e%jvSGn!u5qMd@QkCHR2pqN#*CAgDz`ge^)iK$CA3Ht=Z|H9y zkHG^ywm0D#$EV;8`<3dx7udg4eTwAoK;_^~2iQIa4=u30314x18eUjv9}mOb2iV>X zTO6N&rxe-818`Y!sp_EoF}SIuROb>|xS+Juo{!+&Wwy8A2LtVMa<FJ{sUCL*JhR+B z9)h<XXdh1;L_H0)ub+cg9%A1&25&gje#RJl9!Xzvo2BYIB;(E)R;p$Ur*0WLVc2k( z?Gx~t5v6)=iooR~OZhu!v=@8{$yzcCCmrsTAAU57=e%8FKKB~K_5Z>6g7=Lp<$DJi zQ*iScrK*+VS@_d={2QMLm8$n9m#T6;n}y@2l&TOu1UF18RpaD1oH~Ot+(t}>Z&#G6 zupEa^&Mf77Cb$<IH;3|bP5?fBDRqKR!NvvlXA|)GD@*yg3C@QrBc-Z>G6?s*u2e<w z!qI3Y-Ulzdp;T?>`eE3z)b<Iu@>Z_TaSPrYqb=|;*sZNpt>d$9IHuh$TLAX|SE(xC zxB*Xl(Ee-y&U}b6%k^RVqxSI}oVcb`l~HfLwWVqv8hYn&&1)X#Iq|{>nuZtN_(ZAd zhmXMxNRLODNiklyP8J^hWT}eXF<f&E-ogtHda6_<@g`h~`r(D|JWadch2J7SUac!t zKRinx5dU1M8v8tD#s^^0%k)LO0l$2OHp1uN$*+~FpqvA5L>bB>d|+cKacsEe<M@2e zNxxC5iZ^i%<E0GFNAfJfn=`bXj3YSUP3q?(?gh_$i@t~-4{t-u@XO&7XeB-c-$A-g z;8AbWw>chwb5H_59~zrW)oT2BcnOm8!?4NmtuX6&;dhSj624=fFC6K3FRVg2t|{zr zjte(CUO4bwyPV}vy+>c-eBla|!mkt}{Veb^$8U!xyidJ-%+FZD#i$=%m~#AjsJ7Uj z6~2nfIcFpM7|Ans!s|Z3%V*)&$i#1h)3-7n@D=cb5A8V61yA~j{=@N8VGWWxuY)fm zDQ6mv_}D%!`~{uL`Kq&2P57i#RpKYXt3IU<<0J4<B%fUi_xj9!7B?(GQqD4XxZ}Mr zfaH8(h2w=EqL|$4^HS9prSS$lK1aRdLokf8a$o5FhJGvOz>iT5-w7MPE#*70hpRYz z;5+KMbGX_Jdwg%-*9Au*DcfimaJ+De<EO#Jju$R>yzl|XuZDR)*w@U5g-EVxz|WA> z?dS05F8jC-PI3G+xYY5>;Dbo&WF7nsNq=ztSgK|tIUa@=|4g6w1P{&a#A>|o7Zk;- zUrN>FyfQTlKMmgAy^Qa<WK6-=^UG8x^^k!BdY19KKGYjLAIbG2@Il9~hkLrpbQ#?6 zr(Rr>^S8t6cDK)84Ey&kQwGO9upP;GNx&t2%G7F(N8x^Z+Q&n%5~V0l1YV2Q;bZVN z)PY|QkKU_{9B8;22j?LvTNT`bq;9vugWUG<p>V3>r@>Ks+xHy}uSN3N#qb5kuZMg0 zwU76M(~;D31$-V!d##5*qt7YBb~vhEnc9XAK?|u*c}DmHa^bt+_4|}5H$Dp6klZ%~ zEA}l@<s1*gyo1a5ZqeZ?a!8pv;pj5u!~5Y(6p(Y^r(?=g5TAn+{beeI55cof=UU=n z&oj#SPIdYQoHm|1#S2e7tBm(fTobk;X$#>eNS;xhU8WYDV;^4(*P?ZtFT5&Prt0v^ zpnpOc-_6c-;O$7BWjXxH@dXph)Z6ElsqLJz86G*wK4&z1>hJV1j<18}dG>vUho4_Y z3>dDw@N(qAFNAj@Y11lrzvEZK&mF%F9vUiB<2c`hCrmEWbFLpQLZdmJf*&B=H{dqM z3x`c{$_5uYUbqR#`JY2I)%HTS<AujN-VcM07gnMQ?z<d*i==+G!IP)i*BKALLeiJi zbm|sGIX?l7863w8$6Y|3<AtwOl&R(TG#ojTXT*EqH%P9t4IXe&nM!iJ0G>X}_SVH^ z>de_?D#P&*ydX^d<HN9K4sDH3z?JjLR2SZY{pa({pOc@!El6_9t?=SYZ6AXL3+UUN zBYYZp@ay2R%k3B<d=ZW2_<GpuiZcF|%y51;vP}IAh4ACy186aRHN5u9GQNAC@d)cs z8D6+zVVN3%UkSTkW%rqUcs!E2^}~Xz?RpSCjpX<`7`w(kE_@zIo34jnIz9)z5&Qh{ zaH-?taI52m$1Wn~PzFEz9(|7Qg8N=qrq?wdcs`Qr$Km%###9&dEVhpey^a^QAt`49 zeu3n9^RF*cS1h6azo7ra9#KAzcfr5h#F)YNgZC_D9O75P=35x&_|@>4Td6yI2mB~T zzruIIn%k+{FR4#h{14iQ`<B7gNaBF-jyvezoKpqQzKb&8gV0??|KU2qFp_5!E_1x_ z_<QJYoa2X&p#Y!V2!BL!esE=(+U;K2o#QUp>puIrdc$fYWvGK!Say6~2wy-_KkH$S zYWq4a7(jAdc&Fp5;Jc2`!eKRb{f~fmAQ>Z7aDFZG6lD;uL()dV?~ugvE_h^}ef`le zh@||};NR+r?|gPV3^myOTzC(PaC{})jO3caNsab>g;hw7TksVm<xj)>IB}NG3Qt1D zSL9vr3ba|S3465A7x5wZ6FQZ1w!_V>v<F^zWE=4UKN>!S<av{@d%JzF-f+k&yUau3 z4M@sh!CxKEFGZ-U|7F)t6h4CFoVD-^$LHX__uF;iflE*o_gxO3LQ>{+@LMGHwhbQe z0I`*IWdS_!A?A0^9}3S#ay$r^AUQt@>yg|y4$B@c<L^JwSK(MB$H&35knUG-1(N4o z340}NpMz^2p?+9*_#Z7(kFT-&SSK8?)*fqqm_u?M;dzfSXK}9(d<IE-rQwjrIVU$< z^YkYf!+7DvXc9gQ$3A7BKMrm|3pt*H$!Dogd<u?#j<Vr}?{`pd_^t5A7s<8o+u`l& zsUQ4u*n*^Nt?)y~cfu(z+4q_T`@U??cm3caNXF4x*!vaYIoA=cMy{{vV`=IExtV`c zaOA7@^}TQ%8qGPvvo;WK@j*Cl6LA|aJRw62#QWjoH*G%+ZhVWe!*SsgZ!<RVDOme1 z@fTkQ&w7vhe#13k6_R!o{($5eyWrTY9hb(ztI!C}kHGKWr)>Bx*zE)A5uXpkNMfe2 z14$ncrnk~AoRft)6vmq$GJcWVD+MQfWS>6`{u5Pljs;6Uw(GVGE<q8FN8#T;A+F*> zaF4HOBYbao9+FrZf(wycUpOjf$Klbi4Xx+=1pM3AcHNGLfBD9~mk9$%-hBu^LNcHF zzAaNXqa2@2!wtw!pUlExKT-zv^n7pu+KP|BhtYO?3XWF;)%<e~Rv~y7s=`}v6H4H- zuuqSHsyxWvARLGM_yAmtLiiZ`SMPy*Hx$=|KcMY+)n}kO0`;3f8Q@WU2dZV_;R2Mv zN8rP#1D}FlA^r1j(ARIEn#NwAa0*(855qP44dnMdI3I393-M}yK8Kd$eQ;^fK-K#( z$_Ce=q4+e+H+TlT8(uMRAV2Fx8Q^NP8J~jNM0ho5pgLv9Kz_c9=Y@;WGJFiKLv{Ex zJYd*BRlx7P8gM)sjSs=)@^8Earw<>ff7dAtha6^m6aMUYHDVy&n`9qP!=)o_AA=JP zw|xj6aD?p*_=w|EaISZt-Y1Me|B?1N0XSfkecXVbAo+c(984Z%`xLx!wC!VX9g@Al zG(7!i>V>`E0DKV1K5z=2bc}NxK8W;j_}63kyqpi`pbS0&_w)_qy8_sIgu~FOcpqGj zTJaW4iSWX6j-$^kIz)xw^=K$Q28}TTRSYj2i{khIydUY`)q*8sZEwQ!k@Teye9AeV zhQr6%=lGz7s($A8)L;s=;)TZ^@0<hckvwAp9(jUu9M&U!9NuvveSqIPv)~c_fvODe zgVWJyd>E>e1}Y0LEJaDY2_HuVz4)Ck_&zf6IXLn3fhuU3tk<Y3REf9XMij$m;mKzW zRIX}M1>j;-j*r20$cInEQRi|mybsPt8GHn;Mmc;6?lF0ws;DuQ8;(O!d;l&+7Cr_y zqez_l!u%<e3Gasf>9i3)hY)}@GwlA8fFE7pjAeL51)nE&Mc{h0mCvT(Hq?bzGkM;* zj46H>G6e5J9e4|FLRowk8rM)KFYulbo`V+RL+~!N9B;w*7c=%>qz+-(^^^^7!f9w6 zJ`A6{iMGS1Vb7&pAMb`IqAq*@_P%YP3a{rlJP|F&2jC5;6(56V-o-s$q6~038i%*w zMl=bZg?;Yj-*`71hqmDZa53urGS`7iYx%c$_#BGk)39e9{SxnnW7-%;ukcxT1Db@7 z!ROF?d>Sr$U?6`#l;iL@<W6%O_FPThz`NnZM+PbjAA)zGb$APILYwhfSpTRU6B6*E zHMS4KBiGvA2QNYTXM5mlNXB3mj(yDb0eHXTQ}8RKV>|S{KwR<+(_Db>z27hufe)iH zd<rg159IG7a2!62QgR&rfHHXXD)IA;f&3i_{3ga7nveIv1!x&Q0-xN>`DgRq8Rox3 z`{Lbj9CDw--z0+9ASqh}cA!~PI3I395xjbrIS9!!hT#UsXW^Lloacr2J3a*?S-Y-; zquzJw4gTzSwS~D1NlZ?`B_G(aItI_%Y99~5w?3qA$<On{y*{$b>4tNWlqUkWI6eoj z|CI6TVowaNLvef>=6^;V;@xl@%HRWVG0MsL@Eau8RG;&_NIx%}^#vM29tH13QM?6T zK~isNsJ`ZzC$L`uhoU&%gg<@DxILHS+c+2b@IE*n1@RHM8inyG*z-F+&+o{%;pr$o ziE_gEXe~YhpZ$UQ3G-Yqzl(d%;kn?ONdHbTyyr*TTky7@soQy!8Ai7A?2pjaaEcnF zJo9-jSc|;)1l&7skbZUpE^>SfPUtpBUq1w&LQ+3zIJ~><eee>b#|7Nr9M8i1{6YFX zwHqFb<QyNYL2{i0?7rI|`yDYn56OG&5X_;--K-a2-yVZh72befAo*+#miBb++iQ^e zCz9)1aOUoInZs~B(q)E6?BSFd{*0vFRPRA*4bpuQPUz!2FZ}zSltbQe!@c(!WWSe$ zPa<irG<*xm&)sF=?7m!oJ#`D~&_;X${)9fq^M_H?2$cU4{Q+7?)_TI-_Zeir3x=za zdSf_yp@Y;G<iY1)zkTicG2kOeml?i@B*#v})B4-b7=X_^J`KM>`saw?F`hyCJ-!b< zf~0;@@EauMQTq*2Q;{4G!`=2Dr004!yb;Oq80>X`?cMN3$H!nZlJX?rfd%$CCOjF* z@c?|>7^If*ZYu>hp#s(m!fzcfJg|6>TFi0baVU!yZa^t=e&G*DJ}bPWWRQw?4%fUM zFUN&(#|u-A7ry0q;dhP~?pbPoRyf%4!lNB8JkRmM%N;Mg)A7QD<As|YFZ|B&!oAAu zdkF_QUU;nIh37av1S5`D{~!L}k33r;BFg>W|NZ~5225fq&s|v;sf*QB)me4%x<p;F zE>)MQ%hq+)sd`VnQD0uq7Zs}n=lQIlRbj;}%Su_v>W=D6b!T;=rn9E2ro6VIHc}g{ zwQ4i9x!SH;H&+VOSJfx$GxfRpa6?r?x*^x#ZmejGG$tF<jh&4~+#3(XgYj^@G9HUp z#S`(0CZoBcIoE8ogjy<FVlDBOL`$;8(`vSQTLZ1-ZN9cZTSZ${TcR!5mTt?osrE>F zygk+4(VlI0tuj`5R|Qs8tct9npaEi0p5o_}qgKM|u(DQ{<*sH0Qys0gs*}~J>TGpa zwW{&dm^I#-%9>bBRgG1XtV!`C?pjZ+S?jM2)P{MUSZ$)Vqc+Vmx$4|?<#lGAzb;T$ zQ5UX@Qe#qE9d&7HDp%*KcT-bly}v$CUr`^fkJiWP<MoO9j{0<cCw1Uza5t1Um<|4h zKtn}CxFOmQYlt@_8ak+%PU^<h=x!`;G#mYm0ct7S7;TI-#v2oj9lEx1jjp&mULH5& zerm0PT8mO^acZq2o{o3Mb8%ObyQ#d%Z1Oh+nkt&YP0^-Ulhu@LN;PGga!p-L?&k7l zvpL)xZH_fpH7A;r&8g;0bGEs&S+%%Y+%4rTW{a;SNZnUa^Qo4OmTXH`i=yT$S|hE| zR;xAHnrh9o=32X2Rhy^Hpgn?Zp|%JuV$mA8Hdnj5y}aGm?r*Q4Wuom?dy>}4ws*Cw zRpqOEtNg3NtD>u7tCFkIt1_!{(oUg4Y8{AKaVu0Eu8z<;s>WXvtf`<?qO?k!R>{>U z+9E+aRMJQ7{u!uO)MSX7j8KynHJNJYqJMd)K`%8Jqy{@0eY%di;=ZOhwGiOR<2<#| z;?=#Yqs84?-s)@hw^p{sTI0^sdD_f2KhIU!7Hf;QrP?z3$&7Yydq6)|ReM7BxUP2h zDvM`P;X%qxUn{qKmfs3lRrEMdb&#h?FhZoCxogU6d^}T_XOdo)X2d9`mqlx<c(QbD zmN8?}qtbQd^qJ0jlP8PQCj#_>bfcH{PQ^X6u9wyg(z=zjZdFr)_D%0>Uk~l;Z4NXC zY30hDt(>NnbIo1N?iLR%>}?6q#$i3as`U6uw`5v!w6wc*$4CpdhINfpwI*ouwA1Ep zT`vLJytA!J*Fn0yvpvVi^Q{U}6A4;1D{UGXq)h5VS#HZqjRdW*m9t#cMs=XNf)=jQ z^<s}be@#e_zBnT<Lpygd$~=rRFQY7|W0FOCr>K=IBTO;EjCvpAE5!JU)mzk5x<1R; zQVj+p%hyoJn5tq-bvCF*SEHeOfsCW7MoW*SWMhh6k!|d1l(FQ~(I*<W;z>P*TumNE zkWbfdRF9o>Q)iQEmU{I!hjg7v|B?E1wMZ`tv{bZ27%z#IPDYB<pT9Nqhu-93oOCcc zy4ot*D;X0~b227!jEO3H6vPIpO6to+eR-?^@ik1;iZLP*M6R^escX+&?WIRWt0Rnw zgpO2-*c7kz5r-@ycDAmoPU4S`_#?f?ucM6BkYrqB8nTQHJMP-g?s4KsFdoveq%t1a zC7xt;Jn4$7CW$GYCPUYXzbQnoi|DvgMeW3O?@Q79vO2nWnhhOcyv;sp>-Sz5cVbOP zv-CuXH+Jnwyzvro{JKYmbWKKEEF!+d9_f`?YE^os)U2WBfFQM7p?jx9q!=+N(b}PV zXtveeCNo5^E!-B>@u;iK9<gCv=Q2lhF=8bS1&Kq_KL@D};G(vrmP5K{W~y^~UND#! zd_<xE<2FPz3Nvc6%nqJfUu}{|l&KBXNi<5=d8qLi{V+f@iV@8-#PSfmO(M2Iv<~U{ zEv`qe-M3;*9Zf#^Q?$8**lRK#qeR>cPwL?*gFIKNwX@a3(}Z}I1an=k%|l#`Fx#c+ zIpsV-l^$<8h9+3w@EjgSTaagoTNypq<!Y5Pjw*;N7BhM$eZ*I9P|hTCj*O3JV}^3d zXpkP^V>Zb#k5uZ|Vn-HfTSdD{n^x-hY0n%{dVQ8ipxPzsTSS5#F+QZ{;3yFxW%uvY zApQoj)U!m$kX5;}Z||6u{na5I7n0R!@`>LgLj^N{#SD<B>0nkar{?|4%0cFWN}{Gj zO!v+iImnD$sb}Pr9t)~IsOR8#eToRtRqr7_NK}yd!Os)>82j0HSKJ_?N~_p?Tl#fU z&zRXJ7vsK?HnNyA5;EpnUCerBo0r)k%5(1+&++yQZ6bZkv&z&ti1e>Y<~eDjq%+rb ztx{>$vebi{QEt*!0Ua5oHe|*~(g!n)^e)=YL!RO#S_T>MmDMrbFQsmzZ^~@q(OFBt znNea+L`d5a)X87GJ8LSYXP6{&OvcH~s;D79F|<-=CIMy|tHGdFqGV=S`h%j+hUp8P zx^^n4lLQ%rr`hX_)RZ2ZT`l%_lbJH2bAY6tEhW~ec2B#(jOl9+wugv&5yqgUvw@70 z4|sIGCSx%~T}7xXi@K5?lU+q!W$m%4s4IiI@=;e2YD#KIW)i8L9dil$%#6>N9-VeC zkscBy6WuYJgzLQZ5pvN4xtR0?H&2{klzMsQAh}j0PhQ1{&5)IP8L>gK1}mP?&u=zK z-w!&OLr1f3=j_>`<CAK25t}Mo4RX^&TcAD07!BwVpvPv8y$Ra9T(@@xd9!j_*H<mQ zzN=a?1HX<i64~wEE_rAN@g}36N$E_%yR-L)$h2hy*zMY(+cjI;soPf7xpro$A)TdG zGK)qT7gaj9Pm!%=i2|zL#a!yqxxHEMW!4Dl{t%;<ES<F`88;pDj|{V`)R<(hUS?RC zSAsh43OgBWN@uVc=9o_Ew9A=!%Nu>vZAfRbmE`<8X5l0=a7M=*6?c)*dWezb#2&A+ z7KrM#fTc6rBstIT*{z|oTN$l>odbo)awE(}_K5A!c~F-5T5?^**fpG7D8!l~%t(&t z%vb3wNFuIexr%rzGj@b{D|1H`Z7BWr-!nbwuL<dy{BN*I@&9g}?N!h(qqJ+B6;XM$ zkFgrp>!Pk|7o*fy6QO4&ob1M@du58KB@sDJUem$+(Me|0Mb;N!)ezBrw2S#W#+Xbp zcS{B+y)#7?C=oiK$7Wn-EIDRq53$Q4Rt3oEGtC}m(GH%<&+OR2j2IwNb+oz3$m5JV zAK7<$m2wYOG0Gn#?qrBIO839Gp5KhxknUO8T9bI1pr1(3aM9)+4FNLhIOR~ZR#@jt za(7Ed%OEwJ(_^E8e8^%Bm(h`HVQdgD1FYI&<kAVsl4j13m4c~bL%f|)VhmQ>D37V@ zvyxbtvwZ)SIY(<uqJK)qu<|+|`C({h#$)&0IBU%g`m38>Ds!>)Pm6gjORrQ!eIGR$ zVywsXQ*<&1xafTW@}DYtTauoZCEf*?3BvTNDq^0WabH2tsUrTToUG4Hz7o>8N~b)X z&Pp<@iCpA)ULs+Xr;8Em63hyn%nC00O^|p{N!?qkI*4zb(u>T&Y8-JPNUpc*3?MO~ zl87H?h1$W|p;JeERpY9WsBe&yr1aXsrDH<CS#wJyQ1qz?qdZkt$#|8%6JXT+p7*91 zby?z@WF_{f^AhJQMp#DA`6i<(M2t6CDTG_>=c?Fc-M1sl>fB}hCoLN!N2ws^s$>p` z(#kS|l1?kjJRsSD%mwANxZfF9QKF>G2XSgC>8#%+e~>X&uIEr6YsJ7WbA!yIDQYjR z=Z8*v?dTh<R_k#X);W(?ueH27V+&JDm8>NUJ<2kSu*!O`(;qr_W&w6|@{ymVi1l4@ zug-kp#1FsD%{)5R8)TeW*1Ym$LCPI>O58<>U8`i)|Gm`qY$h|mwJNS>{~e{y*|8%q zSm$bPav@XCYkr*vgvk2iR+x6rReM-1R*?0`im05?m}DOF>nuM&be2e*Cej*uZ6m$e z!+1<mez&uB36f`L^;|7uv5K{cjKwZzts5kJj_S31CG)h~S+7gH3%8rA_#@$JBXt_k z8L>$`vskTp$$lfOIXavSL)E%!-Sj|%oXo8CGBX8<8x?w1is(I)DrVm}qxC<}PCjRC z*P(M#gFO?8GF8kw8P+ZaBR4_hQ|yNX_1tVVmJ|6ZSfj|O>|nj&V_e3YJ7|~i&WIw< zB7LmF*?W+7@=3f7+jSl$vZPp<m+Kf^zH@gWKpjVG4ayWF9(yQFm^hrS_frmu9bv|i zhdC;&*V>(WZZZGsdN9Jyg2cb{&J|&>wTe<khzkL|YR>9hIjHwS^n4Pr%jaPhku0#& z$r0>W;2{UFW3tqz$tbU4#&9!pSCGHOs52icju5Nb5Tm(VM=wjS$I7W8Q%9>x%H+{& z(@x@XoGeW-D*fbUVcnZEJM-7yd$OPYo3iuwm|Z@*Y&kMiRqd*FlgC8KNwf4<v&Nto zNHogTdf6SzuovbhpK!A`(?K12h`uSk>h|h=sW>&+(Hz>Po`QOWxmm$UO~r^H9qhZf zh#cj5o(SvRB#96vks+kB>z(DZ2J@Xfzt0~rMpDYj6f20Psa<wps`OeS%R0{Q%ycrN zNX$&u`}By4vQv=MJ8nv^iTpd)Zz)!A)-E%F@rU()2eYoM{@uEzr5}dKd)>saFp)n& z?9zK9iNVTCS^fW(?@Qe8Ah$P}jeWH;GF-H=#40ztf+}U_9QK@+)Db}GwM>8vE2?)1 zvpN#^_0FJ0MCjTX5yDQElqNfJJ9$wB`B0U;uF-oL|2a}vdjF@hRq2(F|9`kER_?5^ zqdKQgGvo1x>-5@3>9vo4=PGbVI~jk-=sW(jYZm>tU9;auL`Lt-8mx2!&J37va$L9G z4GHR1phf$pi7l$ZLmulVJE+vVuPMD+cQqP%&#*$zn2G<z4v}O$_DosH8aeLlt-AhH zrya!KF815X^?quHvrdTV9mXzth~><Xiuo|rZs;{*RQC`a53++*l0H&Fy!vxAh%rOR zc#~N!!g`^TeME~HBCY2-FL_aryr@#=Z5bk|SFd>udbUNM_AujTm?=Cu%c<0*@7x*B z0?t}D#jZrQIY{>AW&W>Xhb6N!zlkzqm^#9yh#4kpTzeGia_0uCI?C;4^x3gXN}H_? zG1eliR@BbYMRr+{B#31l^%1g_|32<AIztIDJ4@`(k?k7f_WtG&vp{5*ow!PNPCTs8 zcl6T~F+^qsncckP6BLfO9kS<RF#dMrS($%ZRVUbqlo_sE&un3xwM!j$@(dpR20-dK zwllYok?M8w_o`i1ndM}nL1q!jLz4}ajZq?WM?BROWKSWfcf+KQNQ@4UQHEKQxY&&j z?wq01tV-;7ozXdSQ0GVq$$s4BYAw$ZB72niBBl2RTx5t5Jx}}oUza(q*Tn&%N=)a; z88Swn&W#m2B@yP|t|l*~@1Td9x_?_vw%^qfA+M0WViG4T<`~b;`8cQ7#L`!!^2_!5 z!*uff9r0TFOoe^}kYw!?&>2vg9xm-5<Gr)iVxLpiOD3~RiurlRC=ThYzJnPiK$c)I z2g(eSW@pl#r#tmLm}-$(M*2jKnZ-??DA#dHndLes>#Fq-LpoR=$GN(!dtK}*ds$0V zFppJ{lT@)!7G|GRqHCIQ^v7r*(N)%+J8}bQQ;Djo)y+D=q*WtCfE+6YKUs6!d9x5C zTZs_`(t54n)$d3mjH;xL2SiR@x|ORqP?k&Y5F1YJ7_*Yhzm+=A%G6fS8#Cm&(ibJx z?OO5<y#n$O<07=Gm-lRz9!Flix`~k|*keAV-wMbqW>CTk{RX7U$>%fdVRuq<J92u- zwG#S0h~do0Dp0N>6w}aoOa)`UiW-fw@8BW3%kT~`$|#7iew2*W&uXh&ujNCu)Q*}9 z>M>o(sQ!I+jgr0iciC0<F{WiiNAzegb&W+OyAGA}{d~O3w1WCApN9-u>2*@2-YHM% zwWEtQf!CQU;&t|#yGrj4N`I<iq`H|`GmTs*FhtD<U6#R4T!mhf$^N9o-%w2@{ZcZX zD&F37)t2jP+OaoD4|S16R*;)z=|de2e%76xja6~~E>G&`Nh{e^lF=U`J2&Z@WUHYe zY8Lm5Ib+Yq$~5Jy(EP0QD~N$n)}}gxqJMWX8YLPAxLTN6ixF9VU#sq@L%WYzy1(x- zCx?gVce?67&dF|_C%f5Ww8%icv}TIvx1;8&^n1@Po-@KzCW+uKB3%WuYE-{($T{!g z>`W@hT05#^xIqjF@DvFmd5Ro4%c?}ihEI=<gnq{x)I0b|^7<^j&BfX=Eg1ywm4@i{ z-KD(MUfxay=^HYuma|_jkw2{0p>e(25F!V&7+u+&eWikIEN*9Gu^~EdRE#Q9?@Wi; zVYGB+meu==vQ|jY-sMCiX>plxExnr~{VG-)&>2URHFt*n)UbZz>n6YO(U0QPfXj)Z zNu5!25=T9H2J32yG)t>jGQ(Pw-9>g)PEH`tt5`8hsbkJMGhn~bwuY$9RDsg(hO)e? zuxBr&_k#Vb&l0T8vNaWYEmK8IP|i#hW0%BaPcO-ylJxLh^B&18rEga1STFIji&aFW zerM_-idO1<kc_jVCjG2@=Nm?Q?v2vps_1b^CxUqOOqS)j{Ip92@y@Gvf3j`m<nex< ztV*x>(>wRf<EvC+h|2J2K6cWosQ+?iGdFdf;CVd6{$Q=d-<W>Gn_)H4#RxT6QG}cs zO7^SWdLL)kxNPXvu=KUC^Bk6bW7VPO1+_Cy$0&WrAM!Pshh<Jn(>KfY+u^WYF~@hl zYs%4PiU?`x817*el^`4Puy+w~cC&S^pBlpNILNxhr{8#V5=VUOTZf!?pt5i6qvhhP zs$ILRrTsg1?tfoPcM!Wei8H~SIc`$-x-79qv6pM;T-Q$zOcQeqo#V<rZCLlj6fwv} zTUWAD$PkGXd#<vVSfzh@pvze&_+{SY-J6>+Wid}F{iZ|afjIrrq)#TDH)t`P*YgVs zI#0F8QWgC%OCIIYdsG4TFJ!EEh>j8)1FTtt#0aJ5Q=jv0GSyJ7_lPalTPe!r-sPto z{yewF$yKw&y5DD4JA>LW$L922oa}m9tXO>XIf(<2o$u}|n5mTBflKmk!H%(BR<Z`` z4j()50ph!*vyKogV(Gom+|D&(+}U@OQuxT*I-4u$3!U`ssNQ|pk?H(CZZl3zsoW5q zTSTaV#Ljg|kXVtRKC<l8dH*mXWhD|K6VB>cGN{L5LT6uI_M~JdQnk2w^K8!=Ve*R( z-o<p1V+4qTl3`Ra=929FW_1gC*p)1&r-pSj^f3P7#KI2NqRt+g8mi}P4{@bR@4ULI z4d>@D63lg7)s=dmB%?>79qH^G!~3Uol~3=vO597*+w2i4JFXV}%|(B+->Zc6JGVFy zIm6mm2FFkxgMF+_c0?XGBUi>+lDD9;mzZ)g56Rg)&Q79NN0WelyCgeTm3q%7_NQG% zi85LJGYVa_zUxnWb$(}uv4RzPC2ydj`i<S6_wDSOBD)|!4dr*4_}`!MFdunrfcI0f zhbOza@;)G@BUzjpO|ly5V1#6>tbUXK`|gRs>|*NvXYb6a&`>p+%g6K_Zb#I#^Txc3 zc6ZV89@^esF$DFBp^_dDZIKTRRh?kR6=UpiS!65;{j*LT`rTpn-*%JBYfN%NA9Fx} z6=I0lDol)s?0i=fXJ0|aW(R9WyNoiEt3SQB@#&vPlJ=`0JFaAxE=FXr$XpWS$tiko znhYjOzMNxELhbT11t!^mZ<n_@cBGE#x6gL8PBP-`h@F)jk-8tMV(gpmh=;CSep;l0 zHCdE#7H5@U?<`7w;vq76SuX_jepyuSGA0>&8FmA@$XYz?r+SG<JF=G@JvhV4S!Qq# zant*!_k=Q^OC0UeZxG6zzFonyM|ZwUkac!f+{J!DIZyfDb2krjs+YBFQ0L-NMtEGW zt};ZKF4ndl+S^NxDD7S8ytPU?qrQu%=V6Z8G22!W|8|W34Do44X5rN<4$0@E?9a!Y z-L+1gU3pj^d-Yym1*0gc_qUTo%Z&5(LS{8DId;%_hf(FMO)^9fMnz(%T1>OJ$RW$w z&-OD8Di{M%`hT3h-$B3cB+k0nEi9+6`*kK=Nq$~M?@a19WfEl!Ruew5`VeDT)<YIE zs;r5!%&UrVYq0O<)3a-skt*{~g0*CtIF?(bQbW~p`h?_hhR);yjK#2iUu@|;-!x+{ z#~kG*wwcZx9A*}d>D}#=-o?!E9?Z?`C3CW5dtqj<n3L_L$wYFjCEU!?CVK(_)}vv) zr(u!(r`Q?DvJ0hn^J=g=;A6fE@%Ajj4uM6~PqAjrvNBWpr<Y9jx&!QuhRK{``X`uD zdd|)<JGz~pVhWI_g>}wj>7DSj-iKD~1RCT$KK&jmtk-fDBQ(Y6%<8xHZf9N(=y!xN z4lTxDit(3a>?wYh$6)u$xAPrWjCEjw5ti1gLDlRg!!vo?9r)8~B29jj+d1?2$niq# zRz&npcY=%|t>5)2XPxU~E>hW{$|L<k=Zrh@Lk_qP<M$z?t&IQh2ITkXnWWdas#7{^ z@e`M#dQVnjkcVgdPcfs4XNmJPJ0eDo{Wq^f#{c`j|5Xi);Xiikrp!ghecPkgK}-Bg ze(00evzxW(xUC$@cFW5fwujlP$8JOR?A~qv-IRH1kKKp#$ji@LbVRqjeCrr<wAp`` zBYT;>y5}h?zouJ6nZ>(&F2CQq8;{Rcw?6Y?=TWO4N<Ca~L+kUo-qxbtF>}#w>&->^ ztF7+c^15|%cYCAx(+6(%Pl%ki=8XG>ot8EG>?~E@9^8MHE>8Ee@_Y2{cGj80_A&eR z;2*p9?LBVh1vAG^pF7_;Y4+4%`%x+m@6p%2V8MbzrtzPq@}CZwddbDZhL{J+f9l@1 zWalT2Kie34$+YRlnKLh#J#+R2#@OSG@-zL%4L{Hv(7(^{Vdn5*!%Y3ZiTrbfIno?H z{IHQnjy!UrdF=<o`kH^~v4>M7qr2sG*Ts_i?{ctPU)Q+lvnDT?Ja_uALh}H*|6aZO z1?JAYZ1Vi+#_4k}m^^#t6_e-Bykzz;x4EbM=iU1D964;b*L(QzKR&PAjsNWGyZhM5 zvu4h?WbW*llZWkV_LGA>`}R3=@@(UTxszv4ojGsnC4Z<K{yle^)XgEoJm$V~`W}7v zI&=E0=~L$$m&`S$&z?Vh?v4+1m)iXO1LmT<l3kl2Z#UI_QQls3nY`V*Ey~MN53F3) zlKC*X%70kN9tRzJV|vd4y`H)9)2A|L{CxU~ZuvJ}b=7UX`{y3$IQ;tqzqn;}=JeMq zZke%l)W6PhpFLsaXU#L(Z(ly^t^Tv0Dm?VwyWSgCa^|8w!=E|lp)F&|_dC&l*8{I~ zpY`CFyDz@-vCNz?k5!moJ^ZDA?8y)Ad+~Q?ocL|thPkKRc<IO8Uw_KI*L{2Rf8*GL zr`2t#N`JK=JaSXtu9=m8O$?oI<k%Ijesz~Q%hmh&ub(dZpr^TF(Jez~UGv1k(ChBr z*Dro)^MdR5zTx37KU(qLmEXC>RQ>Ig#uuJ4=DglH=KjyV|Kzw{<K7(I<L6-w`GdcF z)|&p|$O{kMRQuA4rw8{dZmPc9zwzDDW1qR^u$FH0`Mlaic{yt2bF+xbEiBEamLvUc z?Yug7@$d`PZl%wK@49eQ?6-?P-Dnod347-6o8NE3B}Es#`{NDsj_F^1<FIUe%CKRR z_b?BU|NNKy!RA1#w1<nHwcBnzUEQtz=03gqo^|HI<BmV|xO0v><M@M}{-OIz;a+)p zzvbt5@76P-2Snk({NCp7J3igLyLqKtv?zbRIoCYG8fhK2WLU-g`QcHA9y)dIti%2= zKn^|rY#9vBSdd|G@CCyT;k1AM;E4a>2Tzup8~J0+<IKZ*^a?HU=PmhVR`+h^f#%>H zMeLTh?*UGU{ybt29UC~)?Ac?t3$E>**WJ8&$0zdg^5>divuww|&AcTZ=L(lhofrN? z(M<o&v$`!Az2nIzOH7#ehZ7Io5flDU31g2tSn7dFm~Zx$XXz`o-Hl)T{bO)qROG3u zj~2i2)YE6pSUvOB&42miw3{yb@~)R3&p&SO;7dIx1Qw1wc**i#A8h=l^MKnwTwQzp z>zzk<pBZ}Hlh+Q|IwpSc<m90D>OSiK_Rxpl|FwBa<FWoPqoGx?Uq)tD%zPnH8GYx| z?H@k!+SW%N`J(&&Tb3=`=dxkzedEJ7wLH0`<=tx!=)bD+wVSTHf5@ELrg>wYe<!zi z^J&Frx*w|?+~=s7`Pt{{u6-?<EjeMxxwHFxlbGJR`jq_fb!GD|js}k3bJ>BLdz`c8 zK=+A1JUS@d>!R&F`nEsYG3Xz6e*RsbtM1CX^34YtR@^dS=?z~WFyY*(lRntLNByk_ zzu4Kfc=Ka_z5Vo&1q<8vX>InzUc7LReI7aS!{vs#sK;7jdYu!`yMMj<{qsjH`nunp zl@DynoH*%ERrY@*p8IEBP+=T5Z{DR638x!`_cJcJWIkbC;`y-Q=7?cl{-6IzJU?QW zfBqjS&3~U={&#V;@ywt0y8pqxUr&2wab$aYWaO(4ZF;VDXzTt%Tfbi1I%?$Jqi(<L z(Q~%0d;Z%)<NnbPzcG9BT_unH?efX1#va<|;d@q}G^~AG@R+*lI~#8}z4Yp*XH74Q zopnt03#AL68S}}yE2bQO&sFbEo&Vx}QwMe}zWeUB<4<qDs;Hyyi<jQ>{QK|U)U`+N zs%<YElRm!riUIY(e;hvI@gau{85W$edbs<a_vX&1{;Kns*Dm|UH*xb%7ao1UDQ%Y} zmQDKd@JFxv)Qq3{?$>)96g)24u5N7U{_4JqjFQVfJ8!&q?<wzZ2$#M6MNxRev|f>e zw>)(3%SGR;DgJiW+nERUyYi;MKfn6?@ZBff{qV`JxvV2E|K*)0jvm!(pc7ZS2hBy@ z$D4ca9C<FY2LrHMp88|#%UklFW8XD920tNVo;l}#7&1=U@hP+0lB548AwzoI&Q5py z+0y049;ai*wYS>Q_u3oGYZse7>lkbFl2JP@`ET)eM+o|F*PHe4SNKyP{@-6=QQkT` zCNIic!=&{vdSKVcyeO~E9JQkYh|PyMrTw?qJa68tgQte){Xgwp2{crH-ycJ=g|UUm zAj??CzJ&&nT~zjveT(d}Wo+3+G_uPsOV-L>C_*Cpz9svbityg4l=}C)&;NPf=RD^< z=QZcdoqNCcx7|DUcR%0H=YHl4r-P}zouj3bor612)D~#Y<VS5Vuyy4$5<?w?09^;U zgP<U1kR!+x__PC=0ZS*41;`SJKta+#)B)JG1mcz;V~`QBjxJ{ml)Mg<K<{w^YNMm* z@<zZOV_@ALh!_DS(Cdd=MQ_Ofb<BbHLEGqF)Ii){ml|K&xDGM_KGCB<msbatHozz? zf%eRSZ8e}}^qA1&MgS29V81EI7I<F=qQHM~eI30qumt|A3#eraywP#=x)JaTaLcc2 z-|C~si0%vBBDybhALwIq0FD5?{C2$P66mp@%b-gD{|WiEcl5T|_xQJC<vNr~{4vuw zoQgb>cy5XLsZI{#EsB{M2fSiz!v6fXoAFotqT*8^@Z}R4DiCa$ZV|02KgD%3eR5M; z>SS`AN}BS-qoFz9kra&e>DxVXd$_yw4U77>x>kD|q@V4%vJZXkyTjLE(^Env_KvH! zB}Vo3xrp|O58i7;&DvKS-Y-}oYG`_7dpzY^&4kGt>c;Qby9N!ng!8lzz|#4a!Y6~; zgTp0H?e~mR-wX8|wB5;RE)g}e_P{7@@6Y02B*Dm!)yizt(9AJ>Hwz|7eZpvxu3Y8m z%Va`d`+8Z5Qu<z1rVw_K@;-B>vXSDVEaI_g$7A<ooH%^nun@7x7x7^a*sh~&uNpPS zRfaq<;*5E`K!_#X_hBz<_1fEbtIURmRg=57c#!<_a3udbFa`$P_tt+F5&l4bep0Vg zdpPkSsztzqPC%%Bup?Yd9)d%=vEVd^w(xlffz0J6b0dc{{;Y__1EivvU5MG`wTrc? z${qSb3rZfI=0dE8FApH;$3kL&oa!y`yWmJ2trR_W!#M2`U0119KY{IAJmhc5mG5y3 z*k;(bj(3imIP_ZyFC+~aVXa1tGKtqS`<b(p2RVftgS{2FZ!zPZw9JvB*%{g<=B=RA z>Af4d&8hxLbarFznvMME%!dIlJz91;wmbKp-d)1SjMa#|E2o8U4O;J415*^B9G6AN z1e_!l!PQBN?;j7637YG;Yf;M=f4IXC3@c;<wTlGolO>jf1k)-Ac$l1m3iDo3te|uW zf3`|6;LPIXJKEcPMqnLRP^TpudS)pC`lWHS{y}7)#4D`nY}if?*z)7DK)HuM1@Y~o zWdF9lT=$uWS&l~g3bm3emEvhgUVyDaQhuCEOiT<OBqS1uh5k6BX!;EC1VU~AALJoI zpGI`jYl?{l22LZ~0vrE3&&DMNIJ7pFCj2sRwf(sN9>@5NI<vyC(up12lY8vsG5z{? zpVsCJ>w_VnQHgjz(#^``XBvh4-mRCtD2aFhW(w!$6+x#s0&tyF<OyID*v$aFF8rR3 z;oVfYo!k;H6@_gqtQ>eR>F`&Krq{;5(oKML05}2AYr+Fe;rPZO#o!|79hjuN2Ropb z9Go4UOiiG2{7`ib1V3Cv5Q@&41q7j&ENx9SoQ!Pkzme;&teO|j$1C!cRHL&nK0Y`f z5B~wHR{EQRI0I++Hi%O{2LW{Di0%rCJ{M3<-~$Q%D|-c_*((@euRs#<ge{ISORw6X zSALZoNx8|l+@@zUHO|D<#WQ{OT;WcB<CL4ex1Qkq2c~f82fho!#-GpLwj4d%1;2QL z=lE0E>vInjFT4*%_?#%|{p`PnlEAOS^C!7slXi_6qr2m|&F(`n?_oBY+!}Z@MgL&+ zLdlxno0N9krY8ui^HPimoll0{rW_L9S8L+3SHC>k++=+%<xVH|BIdY-#f%KUx&e{e z=v!?L8K-()IV#;r6jx+ttK@#O`RlVWu`2#^E|jQv2w4+5K`P&n@|l45$h#BVn9Du^ z;FiFN9!j!Gtn(Y=!ZqnNH*cU8$!B-D7P}HaArEQ8#co;bb!wxSJI0p^eOS4kC6D7P zzQlRMTjjUScy?gFE3E3HG~?LpbDd+?yzMz=*h|EX=U*23Lan8PUwRu9Q;$&9q&Ok) zik?K^b~~kU7hiH|h*G_~7-+OV1mTXxgm=IzLy7cdN~LKT)!Og$aVPD3X@As^-ALHD za!!Iu6#SMa*D_W9v-3p4dy8o+g2;vGNAw<n=33r9bnn@x$x0}CebZV8;ZfGhcFy(1 zg3Kj2V*53<J~pJ3W6ic1?(zkpK1M;uEIz)qpOT7wpInuoSTb3G5T7l|re<v^Fe*+( zP*SNZ$t4)YE=k}U>C8*qL`7e0mu!)ly%h?Ra`@<8GU7kavb^VY)B1qDhXQ#@(61RK zz@~rYduZW=mI=-N4%2HKI20X+Vga%b90wa4%~Sz;h<|uSABN(m6a%)(0o;x-m;2n# zVOG${<d=4bpgi29GMIkvik6JOQTDtYjbP+R(FwQ?x(7Ne4fsX4YN~RoVxas#O(4Hd zNICxR)A8GEJUkh{=BGAr->8FR4aksv{m`)Y_h_}&K|LTxRyr8Ze@CnT=8&9zyDed& z=jjPfMyISdA3n`1#!F&MZxKuvQ6vqNhTTKL5~b}hIP-<e?ICskRH2gkGl8nLF`}bv zB03@}{r=jS)u&K-?`>AzT(G1P)_ol;LThh7pfbkDVAC_UrTr@H*}RfVYua!cd)(uM z%emCnUT;2taaEDMnU1#`QMbmH<zp*L+nTbM2`5%g3x}kvKw5Ydv?|7gJzs6>eVo>) zyN>7S-8YKrftdyqr6<;#ZelQ)zL>x2l%*>Wt>(FTGAqbLRYEqH!We4(YTct#U`oOM zLT<$@tziuo138mDwnMIrn57(~dwK3fs)Q=>6S&~?MxG^ZPN=s@y6IiW&UN0k4^_ei z?e#H`9$q&EMIkn&4ZY!tfch$X_+__V)ZQgqpBuRssNF_nUAa!(tmg~)q`(?RlH>TA z^K&=jdNS4ciMy<+3q#ZwQ)7`4tkxMFNiL(gj(HcXw51CT=06c(OC^nATg2_Lr8?;v zn~hp?Ja)@dwzpm7SUXPcEl~EZoFF|uvya?bfH0tUoTF`=;LKxBb^O!uo+~e3Hic<f z7Uhdiyl(R%FC?oAxiQvy?@_<pJWas(c@+{GGMHAIUANDx+6F=eJ7{9zfFrLq&Maqi z8Z~5(7nP;Yes4UqJF(5S{6wLgv9R1pT|3f2E8^>P@|7~WWjJ_2I@(w+khE-9Fewdy zWQ72d#eGMz<AOq!XD)g6%RSs>HDkM~``aZ0zxFGL{Odw7{Z}OqfH=yZ=<*%nzRC%5 z{6Bz<?<bH60l4-<9{!J@=|97_=0E{#`O*e)2l<PaUoc@duHO;Ly>~IKx6AKMvQoNj zYH^$2XPqrbnhd#=LB{P3i*2us#9(}%B)ViGJ~}m0d}hZu+fSM~V6R>2GXFuyn&YF= zW%gVCAq<pb3xnc~Cw=m%*d?Tf%_HV7im&!wc{|I>xzPQn+<BG`+cf+xtb1V5a%><f zNEYNVB!dVZ_O#NxxhmwIqW|#Kdw-KM^>r7yk4An}BL-!c@aZkC3(;4dduUKHs^Hb} zL4?G7g)r0DW;&~hwq5XqUeCKzISnRG=d$Y^nx3lAJu25ycHirZbc}h(Au^eHp?9^I zhcs6c7RSQ%At)<S#fAJbvptI0CzV<bDm^7_e9Oc6Itx=2N>mt9y0w-3PE2>vca(u_ z0Lk_ux-NBeN+R8HdzMbe=I*+BEQDRl=^SgmqjblZLK=;=a1(5!H80Ll$|9vgwlqof zK@aA5-D>*TR;gji3qEB0ue+4;R}#ec2p^lUZ9B7`K`cqt9ZNKmS6AD-xFIO79188? z&=hcI&)GO{Sj`x&^>Nr}G-gkv{&NXDQ>kwbrJyCzjd^>oG_w1uq6^8zn3gaCG2IY` zoCao`&t$|Tm|g~qRVGu$<5?3DThE+IBv0eIEavOWI!_ut(89%F1rhpRTJD(Be|Z&7 zQX`vO-tF?Fi_kirpo_1p{m}uw=>zzt{YMq$ry%`DWI7C8i+xkbt{eI$N@HB+lCw`y zg)~H}zhdT}RTvz&>j72(7-J2${F?}aIH(06jKIHuFz6X7$NyD*k^Y99XW^o7;Z(s? z{y^S?cK)IC@*SprG-C5N0RDF=7(gs9?TGrA3OiJ;3<HL@S#LkR)I>2Q7qK$wYq&;7 z9p%moHT_9N*p7Y3i9DF)7t4m%w8!Tp3}5!+&*<s)*#>R<Lz(z_%-btS;_MpLl&;Yd z;2?7-YI3i<CU*?SU|{NqwUm@|-EnXt>)X#)4dJ+%AJ8ssuw+<~r+UXMnIm~T<l)S2 zShWdrkWF+=l4qwqp65zVwX^C|osYT1CHiywte1jUdqQrwm=3nBIy_+9u4h5Y6vnfh z%0F|OxuJ5DZDA|<k$b%FgDZjgc;{Qj8pBg(Q9C<XNe)GgFB%%GZVWV&-okCHNNEoW zI#Z?kK>mrV*_}0q#5qN<dbW^vjK)JTS{!+zyX_)3NA{VF<5@VwC9Sj9%$_6KRV&UV z(9@smtRy|tK1}N-I-OiF!+#^XkJ)-!*fBo~L$yXy%&kDFV5c$GV+qfIPb3K8c2jsR zabkpVmzK5r#pm~HD1#mLe(!bJBxjD(EF8>3cH|zXsX_%G$Gm;FellLW)qYi|4h0&6 zQmC@*7@AY0nLQo3TrUa>EJmfWFU2A%MSI9mJZ0B#iSTNC2T1qoGTv-x4pd`pBS(41 zu!2`X?fTC?cQX2b@TXnC%mb^YE>c;rAY3{2cRth^0YqO=aa)%!vD4k!u3sl)pXuGn z<(45=m?b5o9TF0zPGjF%>h=7>gT!<Jq)P|1l;HXwp;lnxKM}k`<TKUx4V?N1Q3W)E z6TgsAKr}db28?@*hX|0z5A#Vl`=P>M0v;MTH5_=%g+&&Cvk`bvueAHPS4CN6z0WCy ztB6rJ_s^!Vco?vtOEq?wNwHsqBa3az)Eh^(Uv*!=RcbacDt4J}DO(-UfD0XNotuXh z&I|__9u_nyD~kNNd~-vv+xe#g$O8M9kr^<tA*<R%_AZTR_jh84k^ieq0S5U3w<of; zkoxWFyoE3$D1}UTJHA}?)Z>R<J2EQubWLHWMXQJOqwy9py0it|m_13Bxjscxha&3E zN_4tr*}L3qjk}SSF_D!J#ksXOKfpYv+M#&XdwaXYhx)T~{fr$<6L@_=u5BfGQlSbB zXPHMD1;V3|oOkCk^M}Vr=4D^L&jd@h*M<msL6n#%ca50eyp?FaupX?oeX9P_z3LwJ zro5>h)2oXd;hut*Iy}u&DyU&Pj$VQRwzQG6RZy)6^Bab31?3vAFOQe(AjJhW999il zykHUO(=a`sYA^B+X4u!xk>1u{H7oBv=2o=w=yfso^`rnc@;%o;DvY9hqJ@QJ+4OAO z(P#I1pEGB2!|MFF&lcK}P(RHcJA<MOCp&&Vd=>mLCUQMuHp#JNFdKt6la-;onf__Q zY2|4@ahC0&k_S0gka&D*O0gc7N)wx~T&wRW6>-HaM182f9}t;f4l%+jk+5aleV$ov zTU#zN&L0s~t>H(YaN#7w{n5Qj2*eONhNo`KS=55iuK&^l@53=RmAI*1BgcTvT(y{r zT}8;JuB-H*2#-X`Cm^l~F-1<FSg%sHbuN3?G0#79oZkH<6qjU6h53o#>-|ki>0rZb zj5?Mmr|_|7nxZOZ3-JzKA;#{D14D#GhF+q>8Dmf5#1fRQGP)FO2*8o_Og|(VFcu)u z(31l($d5}BEz!^e$~1Hjn4Eu=X!L$o1{4|<xY9p%Iq;w_ze6(&3yPS$@wV$kUC^FO zd*yA^>YFd*2E@bhrE;ta1IzM{%}S134@a(tBiF-`>*3h(BiF-`>*3$#Vmop@9JwA2 z*fQYwI&wXr%|C~H7&d_ZapZbX10A^@ewS(h*WQuqfpim&Bwa;I75@iZ55H2XRNu%y zSRWwRcn6Qssjzqe_c+G?+zs)&R^d^mQ&r_E_DEW_oF;(jGw=Q7wk1N3rmnJ#giD6m zU#$KjIbeV+iT#C25S^cf#yP>fBl<<elCm_Bv95kKg7hJ)R`k@IlWPsWCgXwXx@XM= z_tmVF9m&U*G+h)~MKE1OrgA-s>H2pjp`!a7iRUvhJZkBLbw$HAE^M+(_0*DtOtPcA zl6DiU>08X>J=i%&Q=1GFSda!e(i$AvrKGI5;z|_lMco_KMg8L>jp>FTw-X4MlI#s; zg7v-m#DXhJwU}^MJLaU<IHL5fQk#o%U|4z;j*ybplIn2o^gLmR*Ud;D+-kNYAcO4* z$aH8FR(`=N;V!FMaJa`p8l9R<UEiO_$(9?@z&%X(DN2!fFmj0U3FGGGD?e~~zPG3x z_{QzKX-G&3V0kF~!JNN2Ba(sG{a<J|1bEO23HqZm!u5~>1n_PPEHk(X@Vy>>j`~-+ zT`!lI$>{EK2G<O?tlfXf>{HmM`zIa8iPd!S)MVN`C&9#I)cNtP5>x}H6+X(QU*9_Z zn^A)2$S84SlsGa<92q5!j1osii6f)Lzx<23BcsHTQR2ub0a*Bsj1osii6f)L|9hhZ zkIw(jC{deII4)>6t;uz=3cm(V^<h{dA<pP4b7v=si6%$(vrPX^qXeO@p2aEZa?uD= z;P=MrdN<u>oD^;#{7SFx44uprk?Q7^k^49uQV8mmM_w#@s5jAGD$Cnw8p4cIa9>M> zjn9fg>)qp}HyQ=+1@umv4$#}>g~&ZqQn^5v2^%1Ri%ju&Pd&I`##k_qLs802(8Fi# zn<|EE<)2x#v+LwCAAO<aP}M9SQZ*GlE^kz9tacZn*{kqa)>$ZI#UvKH#8sJYv8!-) z@JU3>?!(gF@f5a|A^~o}_B_~IbsS0Z69&#=s*U2F=UU%sxe*C4(1;OFURl6{$Hy2X z7rbz#6NM0c@{&+^qYDczZLCzy+pbp6S1$K@KGPI@(ym)-Dvf!5H{o4hoX_(JUZwk+ z8&*umq3?HJ6ljJ=jfvnbSU<^3!jJci;-R#|<_>+<RWXCr-I9?VhhJjgfSm55NNmX= zRVsL;ZM)KqPdGtOC4kl9dEb58@fnQUBRd(|vCqxtCa)qT!hUaMEX#TBm>#nj<iYTW zvHB@W2~})DliOGMt`_^ACRQEH$DR4?y`>!*tgH^%^*g;G%UN@UX5efF9<e)Kax{PW z#F{$?=2I%hIG+s4T;Y*B&st#eVt$uxUtSxTHd7!}_f;@VDp+SR%^jS4secNQ(B64F tFU1>+yC7KEZL&OcC@?2CX}ey^tHOVoF+RByWc67xvM;J`eQInS^j}?(_o@H@ literal 263680 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�qY|?LOE1}oAE9} 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৊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 NJ}+gOO*QbQ=<WF8l+Z3 z+f$566?H}3%n=W>#LM{fMa!c8Xazl8&8%sNhN6wpaI`5JiAJNbXn!;w9f&5PgV7}I zo{A3B_O4EMXHlo8v!v78SxQfo(N;r!Dc#>5)_h*&`50*d`Z(Cq&=P8CYzenCwM3aa z{Vj3kPoiazz8`LJSstLI)r%L1v_)yBe&)BU-EHQ$x4qPw=l=EzYpw^|8_axfY7cie zbw|3R-LdZe?s)e=ccOc+JJ~(do$4O$Rz0pBH{;aPQ_|z@DK&Gdq9<VHRj8-Ynp+Y2 zQ_rt~o`f~WQp_^7!?nY`qlghyvct<L@-e>kNUGiuWCn(IH0}s9;v<Z#7-K8W*iY;j z#G4H5Na0cJ+3D#mVTP76E6RHL<EC=aF5;U?Y4HkLyMdN&qLuq;;Xzt=IO?KZOK8)w z&I;z7_^&4XMn8UIuyd$$xYN~D)K$_|+Evz7!N_mGhctCX@gOn-h7S9X((bbEitg&} zhVDk%C`$Vb&^AM~i;FfXp*_m18QefCG?@`S*fT`UUDUdS8kaF|s;OxswTx230ctly z&0P4L5^7Y2&#dlk=xxORMDafZmiHX)by?%S6hBnaSKZgp*Vxz87wzlE8w~ah>G9#? zIg>fziWEgkBBhbCNJXSN(hzBkG)1D3{>VUN5YIataWxk;>$z2d_iAWvY;J0fHupCV zG!HfpH4ittT8dgq@MmQ$;z=49VKTn@8C!$+W<9b>7**n3s`1l}txc^_YmKpeUlHp} zDSoG-t-7s&b*72&*Uvm1#19R(xfp>ZjJ`5PUNxhxvAwB1+TPC$9>g;Zv)&Xje@mIW zRL0M<7=0ULq=&5)B5wJ%6u#EY3g>P0vBm{jgRP;~aBHMB#;TEEtxK`ix!XLfcD^=0 zYhAD{#A+wrB96C6vf3$Tf~Vcf91yP<WbBJ)jJ3z{BT36+yYVAle2Cxp$uNE+hR;ag zFH)8__uwUb)`}D~J~U=~IedYvQC@t2c={l7Kg_(3G3OJ^_Y`y8%{-SC!1jh=R<al? zSpx5y>Qr5BRx)pwugl*R=nAsZhFNK2tY`^V+Z2A&-R<f2;yeA_0oLA7cbGXFW4<Ps zt10HGn>p%be)^f4L2FHkFeBs4#-!!N-ONHSGtiG84>I$@%(@seF2QU|G1J`mbuTl_ z-y2}<3H641Bl!7vZ=yG8yuF8Y(bwl^WeoO(SREs*PVv43>r+bBrvT66fQq=S)zTO7 zM*@*xBoqlpA`#L<8EP7kq}OGAALy`stt9gN4!F6af&5;)cM~3a5HDR~{IdAs(Y$E7 P4{czk$N66Ce|z{p1z0zY diff --git a/lib/windows/discord_game_sdk.lib b/lib/windows/discord_game_sdk.lib index 7563cc8990ca9ab29e975376f35e9211a1c564d8..562b01cdc82b16bd9c269015ade613797e1a3e2a 100644 GIT binary patch delta 372 zcmaDNut8{orLn1z0t6&*F)%Q2GB7Y*VPIfYVqjoPVqjoD2f-Xp3=Ckr4M=aBoW+tb z@spCWOJ;F$eo;zTYEf}!ejY=7d}eMzJgVU2n~eHQ`U;clnDnBI%n(+w0qwfN#K54$ z%D|8W<eXz?U~uAKVAux4KsPY3Ft9Q(GBAN@HU>5ZW(KIa&PAz-C8;nT)auEZEcTO+ zF-q~FTE6)v<2*(d0fwcSlNYk8PhP}q!?ZMW^8@C+a6x^bz~l$aQk&nfO2P$|C+o0t zKqV#zu%FU5HG>9`0w|3B|7T!GY5NZZDnN%a0-cCzE5qbKW)Vh)$u&#{lchLhSU{eb M{D4tpvLA;S0D$yj`Tzg` delta 228 zcmdlW^h98SrM7{E0t6&*F)%Q&GcYjKFfg#3Vqjnc^4VWOaT$;<o0yX@S%^_@GCz|v zn{!cWVoB;`dqyKCLxc&eKqG3H7#L2mFfeejF)+LWnpXzIK*Yexz{tP^Bw2uvnZYHq zI61#41!~Me7W>JZOj4UIn5Hwb@H1p(OipB1p8Sp3feFa$W0%?-#IhJkLWYe8CgH*+ V3761@2tJwoj6;TzaWXTfE&vnzF_!=U diff --git a/lib/windows/freetype.lib b/lib/windows/freetype.lib deleted file mode 100644 index 84b636444402b8e766137de41e9124430624a404..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1586820 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�)H)WS_ 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%0DWP zvR|lg4si9y&`17l{Du1N0q)Ub=%e|;%fC?Hr@$RLhCWJf|10s~IJ(Nevw<5Uv0ddK z_4kv0p}y(B%{zv^Oz7JH%>D7WB=va*FuUV%arK$X;~+4exd`Bhr6Y;HQ-B#6kBies z?IQ%t)OcJHeOCjsE*=-BFAMta0j4b;mqg#kz<eE#i_^#LqXzpbIO#ZAdJBLli^s+3 zqx3ESW_dg=iGOzhb8j3Dx4zEx2a5DdLlZ;6f(uT;M`3v4DVZMV{R-y_oIcIf7yq=v z3#QU{scRPC8|72!8}$)9p>)ouk>^dVojI>z>f%|WvU9ShE<G=A>Ui-x9aHP()Q?1* zc7ZmoFTLx$9WPr(9%0YH`X8>DRbSgsJ13GkeEgZ2<#myog*8`0e`X<Ds>bhwX-0Hv zR)!H>kTr19WPPGONuO*qeU=@_ecou+yZNJ`tQkS`V95O1F#luZZ}qN!27|ocyQ#`! zG;Qk^FnvqCo0ho?n?0HNMavia4YN=4T({Be&zjNn(N9LypEcZXzGRr|R>IVl;cU;J zmAM}Q&2K`v5#^}B+ULD%={JU=i<bM%Jx}&Tyx#O*m;PibBRl=xK#Sh=NlL`6cea>c zHhtvbkl%byZ~7pW!%d%Lh}fc~0q-N*jpp=~(y-CozfCt=4EMHR{toZ@AE7d^_CxQQ z0|<o8?SZwsBLlpf+(=Q%oYsA*-py^^O@*ClZ5`dco6?NVZP8wVwVlU+lz5;aT9CT- za{`vSpv=?yekv3lNozx(!;2tE-HM55N&mpww<5=rA;c++KFNHFmJB?$FGGx`t;2&& z`(56(!#X=VIj8-uIZJi3wWAwnsbNmdnroN~vg(Yc?b&*zK3$($Iept=<OtOYk5w-s zSp%s;WE$q1JN;SNh|)&<CuklHHZ7f@8Rl1wMTY5Zp5O|h$g{av4YSRN7SAwoy|$(C zOuxC!FyD|d#WQwz+!{rZ{V|3a$@0N|X63frmUzi%n7WExDaYq;ITSMA=IRLtP(wrJ z)<Cp$U}$Xl6z|#{00g5~qz0q&GlJ2EOr!ZKmy!Rqcm2JH@NODpcC>bQnm+Qn-)ZiD zqTzlcnBVSQ|0~47|6p_Bz(8(GFj{yp94+1NH(%77D?IG8IWemuWVWo`-8c=Ynu1Do zzY#4rP-J1Fxv0}S%%{znGsin@4K$G*!(}x4P>bGA4LAEd-e-4tH>IZS(xVkWHEru` zd=E*lpj<a7wLVJ!6w3d~ZRXaFPq<(@_Mwo3jP8Tkg^@~)6fHH9mB}R%G_#QnhWRPV z#Ye``La7v>_2n&@xMu%DW*cn!*0y-pM$o*B<_R7n|8?(r`Xx2gIsM6QK<XQUR8do? z-jeHc(%R<e(O@rJQ={-8zNdH7F0(k*7_ojYnR0K_ck1cXzXqdv#!56)Q%~2ajYjqK zL#-(hkKU=L2fUjuNe!5nrR(Mky7!S64fl&i{!8BVZ-N(Cv)j9-1%WlYBQ>b#dh_^B zY8ig-<`!xx{<IcQUM08e2IEd^(_8mt=xJ?+`&D>2(7TCa1*w2Y-c1EIp}-~pJ*49- z(u`!czMlb2%>|t>u}$dd4_*F&uGar%q_ykOONIn@B8Mnb*SFzcD4H6I-asMUyGc)V zt$z|h%Gi#RgXS*exTq{7$Z!Z^O%3&ZfvE3>sPE^2FKYLnVW$CC9_{g1XgIF_zdSf8 z4uvU>Fa@a~od*q2M>{+ibTR-+_jquo;!MYxfwMo(fm(mh5S*C^XW{>FoM$7PjsJN# z$7rdZaX5WA{WuMrA;>FmPQ*C{*r|}sz&RV?xe2bgkf1S&lu{U<Dh0q7QvmTHlpUWT ziO~OFNmAj>2{>IEO-TlGh$gcqaVQg?bh@-D_#~`LqdcR>7hKv>eA2H)y0i`Wq`8Jm z8;<l-uj=C8vJ7#Ee#I?|Lv;w9!J!QZ(K8b+Z6iX|`@6K;5TbkSF6}Oas1#gU8$uUx zs2!oRIJ6g`d=BkHsE|YZ5xST|2N5db&|!pv95PIo-`qG5W#o@uGB9Lr7>-~l8q9nO z5Y3;zYw=m!-&(z`xy#?IcN*^9VRwse_TN=Fwts6wug+FI|AqPwa$B}>>!Xn+s%J*^ zf!q9Mkh*!lxf|1s$T=bNvP|@~`iPcY`*n8<hAsE=Q1hamzdLeVLwA3(&(-1fn{9#o z*7`kA*V(d-CQImtBh(Ks&l>1A`x)jB=2h_ZKe=z|om*M^%OEuPRn4vMdxGxLOtUX3 z?=6+@f%1;s=H9g}5h(XZPoO~|l?H_j!-V>6{`?&c=L8UaYS1i%ujHYbj*iRcihAS0 znBa7znA>*tKwhESQZ<p|18FvwdFf<*5(adP5^oyKTlNB*yE|YWG|U70iD<TC&^|e2 z?lhW@r)$G}$(Hvtiw$(YuHr1pgBj6@SxeXM_O3k(-N&knv&R=zc-Ia>xam5N$GhIk zq4W#9tGiMBb*a62W5`*17-eeS^chs=c0#%N9jnJgaW0!4WHe8tiHWp|Ff3q1@E^3S z{SykJxq-EZyc_;bRVDw>@?KlIL*IeBaXI$sOjH)5*`yx}_M0Xd3Ya^*zilzh*Ed*G zPncUu=DceckqXnKpZYVJ|FM)wP1FF;r-NZRC(%AaM;komE9Sbppt-3u)z#S&EzB@) zp-apo2ZhXak0OXM9F=nH@|N_*?wzfukYD7#(3m=Q#nQ!tqSvGzDjM!-^nmR_$Q8*z zD6^x_7UYw5;B6Skbp~Mxk}~$0Cn4uBO08(F5iJ~Opp;NkiZFl1g;`XG|C!Nih8xjq zvb`Ba1HF9<r+7CPWz2~d&h>krEy|kXj~32DsBB1cy07*9lqavmwB@@4s8fh3UC{bN ziaz3bb8GAVVeWSCvs>pxCoIZuy|(9^z=&3&E;1J_UHiFr%?<FxFq`h8f6bw+r3R|h zaIW<)QH#hlOd}g}rwmbNP(OG!SeQ-K#Lc;S%Sv!DNe=kU=NuEK%>^E#dHnD>QOuu$ z8Q#qWd*?*;ug!wDTlaO3>fe|JdpU5}lKe!o+s3x&{NbFJy^z?mk=VM9Gt6JJcjhfr z3~1;5Fc<dZU*HX000S9Kt(}cu&xu}B=iOX7mnW^>&4r6FnFP81$=h*!cYqp8Hgd$= zimBB&H~Kfu7F>*(RkNrOc@udux?#hH?+&<k8O^BGn%4S*M`j*k7w7Kg^fz(Ap-Dy3 zP>#NiZd*`&kbP)6=2mK<H23!D(<`TKI}H(6<Me1W?akxRh4@^>p*!&@V*i2Abu3Gx zYQmwh2+{P@qg@64V!}8TRf$%^kRe1v0A}>ajLYO?e$_^Z4D)+Vs$ot+hjZ&~B-*JD z#6S9<$^TciQk&r980KV5V_uYDWRbD6n1%#R%xK0Tv=%1};Zw|L^h>F$37ZE(<}T!M zI2xullG6DCb!u42wVA7^yQiu6$<(y+TfFN@V3<+r`^meCpn1m_4lmCdgKTrRgs7s0 z%`JDqj5)5g^^*)<+qHN%r?;kkPgC=L`PU4r@0Nefki|&XiI6mYf$sRg{YZ&90rRt0 zI1SYNe+!X!(}YyWypK#s520Hd&XIoeAjNY}fO+>6bACGadEQM8spiX}=xn*#!BTiu zPqQs-7LUPf_w6U4Pt#X^;CgkRzVgEqbnt%fBQK3O7`fE@$hYQ>pt~io=B>yuUMDoQ zV98kVQ|o`RK!D%~2k_B>d3T1<)RKa^DCC`KyYlyV*W6E;>J6;<&}cSNLKp!;-axBA z|E0xK9P1B#*MWe!E9`C$Vrle$Whhb@_7-e~-X;Ga1(}%c8m=HMWs<s@hWHFbJAG}; zf|rqgSoqLdf|o#sD{WVY8&L1Fg}vNc^=Lq|N+Dz-D|K@RHw&62PYI!c45tAQ>qC@( z2%$`FDATryrIAmcw(WLghiDR;5V{tpM|&5a^yr>P8-@x)n=7b`O`k#6s)M*NXri7< z(}C58=`y++Et~$Oihmj6-$3ziIRE<<jV2pb(*;)xu$#6I-&P8KMCgyr2&|UH;}2Sv zc_XVg(LGyj=2p_3dk6v}x>*?COva;|e}XbLKuOL<tngy9@M$yY^ljM8J|TC;h!#h4 zG||pz1}8$k36u3pc@GC&Z#RfFBX>LP!%Q(uJyoX`k8Vsi_tIn_J4DwLvwWfEzf$X` zR+-ZIA_kYpnfbR-Lu@$NcW7tN#^bSyXZO%1)_f0V46J>|c(;7gr=i!AJobJ_!stU; zPm)EnqB^7zlODs(lQ?~6@r(tL##(AOa|5{_2BOuPd0DEtEZs04y^ATKEF);%KnbNr zIKyu~N@-`Ke)E+;^gg=8NRIr@#D+q!`35RPj;9JU!`x5pwG<$!1}pdML%Xpw^=9Y; zk;rV_+c%(jGlIhr2xoi^F)COn%l9=!V0IPAY}$9Esm+7hnMr-6cTUr?!2=soy<7ID zvJ6E7hCj;)M6dMW4EfEb>tPV{hYk2=`aGEVMUK<WU1l3QMlP_4Lrr%9;EHtDqs5^P zSiqMMO`Or<3j7b@|HN?gN<WsuQ_N*U%&Rhk=Csr~f&A)}YtJ;(%soO|smFXH>gI5? z5X0pask-;sK#JbE-Jid2`5xUY_em&%A@dC~!)OFTG_OJq%Xt-Y8_rEcVk$<o>e2Es zfMlCnNBFZsBe47}&eNll$C=MjqpUMbQLNNbF*6IHD&_v0^`aUs#n#cZ$}6_f3gawP z7>{-ZLhEsQupw!+5^8=X%c95!+Sl-Cdl0JS&<C+l3N#2=-&p7rgsx{?4MI0_hz5pK zxeM|i3}YgHZlzN2o9n4e^!)Y+vJS=ALu8oSEcM_DHJRg028*adkJx?67R`#5NVJ6U zXe03{oTUYd2<bZ!qz2H6k?ge27pSHT&A*Ww%K*b%N#mCJ0!`FIZP2SnQ@3#ovDOZ9 z569Y7`|C<53z}ci_9_&nnyV-g(UdUSU{7-uCnc&qON%Vb$uVy_-McwF(7cHvTHo)^ z34mm<d03ShYY#<Iq8CwdRgjA*m{?KQLMfFy5k8SzdN#8Tr$?I?3t?;doQ2i+byNIk z^&I@h?m2U6>laqxhf|BjW8TLz9@;w<8|=(Y#pe<Zfr}mh%MIGE%A~bMW+3-1^G!cw zW02CY*@ndi(wgpXp3oT>Go+X9^}o6Ht$>N{{Z$<^bsE9Fn_OpSj;mZUwR5Y1`SYvw zUr^^%hMh*5XJ*sP4a%P9^czS#E-@t@5Tf12*9|$s@9^Z)Ce0XwG6F2h0iW1@!=~eO zKyj@T1v_$~=upa#>Dwq9#MTVWuf)b9SGd>)9Fm4HiT29<=Cb}sTupi)cei2YpuBml zijBFD`IY|kN+<}Jt=K*GuGv6gq#=jau(SX@(a7J^a4IGc{fy47y15nm-QL#29?X+E zdI~iVg77MV-Fn(v`mT<q=Q<nvZx|Y!RhAlb_0i2m>A7zO&GS0av5DN+d&AJ&w~Wpm z(r#``XWLqAqWu9I=Q}$aoAgybl0T7@4MQp611Z($O66e7d%*FPl+$U}P!g{~5}!BB zvHBL&JWZG&|2~h@!N(!qVWeBbu4+RDlGICY`r3tLk?S3_zi#=zqqFh24a4B(EIrk5 zp-zs4X3Kq&ckUFrk(Hg#gAVs8(Z933A4cA%lJ}V1VSk#6HZ!T`vHKZF<{;e0z(OT# zzK@$3H10KHH$H#sk~;6E5eC-apGT%cl!6-sOQv}@<;yMn6vO>vF#pJs5^7KAA6BGl zhPfkh`kakpQzN}GNy9{KX{y%vRmX9-kzkm6Ft&GAr24UA+|oGMFyABJ@1v!8ZzGCL z(w2@?-jxVOITf-pA{7;s3fc?K6npX8&~8#!F3Z+JCUX6f;gKa+yj?yM)hy6l*g3~P zcKnPLUc>ur$qd6RSc<rb#*sk&))nU)X35;(tgS|LT$a&1t~EHT1$)-5rfY1E#{Q=6 z8C&dWOrN87zKB)b<ufq@H_UNaATIA0Q-&CiF{iU&hQ343#sq46DrYXXJmPK=VMa0B zXujOVwf%cq1!8V7BV=Y6`R{qxe}j$?+p}w0ywL*)`ptcM(}x$|pBgbl*6&<0!n^4> z%KF`rGmPfa6eItYCD?>@Q&;G2qpMyBHf`-}e7~c+yb(kO(1^TiZ-mN#xnv+lx*>(l zd8g-pwYaothr8+HpPG*Nyz7@Bn(spSu@DCdccESmn#Gx022v$O{|s3scOHIp5Ho_& z;!IY10eE_J$q>SpHm5HR<Q@v)<`Lg58p=8+VDeq+4x#oq=H0o6az78{@AR(kMB_m9 zKQY+Zg8N4LPEcH0u(Op~_@QkXk#o`Jz3cx2l;hq`5OaO+vu(kq))cH&u?tW4o-ldR zqrLQ<1=wbFX&`5!{t@}kUrH|VplfT|=f*-gGOX#atFe$>q_>86pUD*-3fDT$WX<$0 zrv$eSDsCNw%GUiUiCVj}))7gx(hf|5*8Pgs{d%+>Q>=OENTyHb(Gy8%o8$6G$KA7z zA)Kmp0xt7CTF_sl3~QKWr-x9LaErmZ!G`R1!#wV6Y{inqx;-}xS+Jx~I!YyCd1&8# z=+rxR;I=`uBqP|gb)eo^JTQ>|jdykD&z+rAi8^{w`#$RJwLS1sEYPW`U>KQ5JBgvJ z)JticoPwJ<xTS{8ufpd3sa!j$s`Gst44&vBUNY~@+6W!ytFc&mt&m|}IwsWY8NBu_ z@0uC7K9sW3yN2%YU}tDJZDe7%GRzgQhry7Uq-w9w@fJ4i05yvSj@TK!Giw9X1D5Aq z!}~SOXJ2Que&pV0m}Qwf>Gzv!vQ`2^^T(yQv3O<%I*z4-P5+twVJX(E5Xk0U(7W~l zM$<5CPR}&l?|7fB7(8OnD(nrrw8oLEuHg#ac$#7QGL2@>;kCP0Ts~)`iJi4n+)7I| zOVeG(Pe#+HuEvfIU4X_BXtepYd7SCxM7Rr6&2mq)hdDvqwR0DyM~g8-zAn{h`oh(S zUK#UPYU$bVo>FKuJvR^=cj6+SlDm2^Zj{nS0{UTtMwklpd{d@R!{mT6kLL=uNZjwS zb5V^y6&A$eR7XfGPOm}eS2#VqNg@`fZ{u1_i|MsoV&Y3L5E7wQgrdxN5h1yprHR$0 ze5d|WzE^L4hKe)8xzr0B7X9+ouAKpzfnx+Y5T+Z2sloii-u2~J6rzV36<C7})B;>! za)uR|KRWF-{m>3i<P@X1*cGIWn9~IEjDYzz?y-9r(fXOEV>ECnk%2MX&nQ4>#DI2K zYH>yS$70_Tv1cGQU<N$stB2_M2N#bsngi`y5Qn)Uy65KUJ%VN+wdsSyxcO>#&cSFP z)eP`P?VY5@gp<)}9)e;vqMI*b(4m=EbNYs0G@OAw;Wd<FNRrW9j-ABGDf*$UJsJlD z^I!3<zf^eQMPH0r24<D|p;lMq%pi5DV-e@w)Wc}n$u|$F8^)N5#eOTg<Kj--SL_(b zO6aZ^0Xw()-RR;;4S9pTf7*MAdeF0M^Z4`Ms9(p<9@>!_nE)q6cI;e|?cIc3epKJc z+1_D(B)+*EQw|>YdeC;9yN#|e?tLFO?giRu?uZ3^%YoluN6*+9*h^(gdJS{hUL!i~ zpuQuJjR_b=q4|Um`}YYqs4+o69>3B0g@@*wO-FhxxyHQyG1ldNq4WKxQPs4Lg@OE6 zy-itALy0Re(>I!dZ=!*>qv5@lwF3_W8OVRl+w?OAIWurD8rTbP27#mDw_~t%fISUG zn!e@NX;9ryUX192i*8RNJ5j8SuZ5b!d%4&u@F;;V1v5*GF_8&0cAbH-3k##bK|Si~ zn9s#UZz1wN<K^BSMX=Q!KG;zfrli+Vj9rj&Xcfb1F+I|81}g{(SWJPA=R%tDC?Rc> zVl#b%9_<My#8?-ZNPY|_KYAh~aF5&5v4His5*+zPI`Rq9{R<pv5io}%+r3Q>LdcF} zup>ba&F)Wb`q9%kgsqy0M~gc_Z@$8fI>_X$*j8x$6ivgWcW%Sjh1*ntgZ})tysIBQ z(uq4Q)Amy9xDL#wBkskMn~rn~nvKJ~>mNh`Sla?rgIwNcC(XnigTctv_WVhyOZq}E z1A>7<kiPgtUIC!9_nTX}_r)$JjZ?2tA+Nj^br6ah)AXlOAvo|1K5*MXsBCq&<(H){ z=|*du!PG3wmvOhi<<#<P;Q1~Gk&NgNOi+vJc6eN_Ih{o_I~v$PW2#WzG27CN;oPBm zKuopREnx>6&&NOom1fc05Z^F?YE116GqBIVb36FIAOADv=sP{BDJl96e`<<rPE*lL zw?7(2<9ohQrxwi(PBblQYU>{Ssk2kw<qsc@?TcWTew5PDw0#Co=cm!bHN1V<vB%2n zpcxih&FJ7dTD`-7Kl(8k(PE3G10gYuI0yCbOq?EV3O;Xv+^t=XHbrBcN4pWBMh@+X zg+`%Q7qSfq3GUqpiH((=2nlXGLW`OEHbQg<!maH?=vEGWh|p~u+K&)z#=5o7VzCEf zp>GhngJTaP^g9k=z`_9Q&#J>+(}3BIr+Ca%tn=2;OYms#&*wMmP~%ZsFNB2e0q`9P z-iAMbCpNy|op`ejRUDgvv}KQ|JU;?w)23!%&GU@|aAVl}$PVK+!@c*rcVjqOiC&~* zE)mJnn|^RbdOb-!(}5@P5j0<=J6d8<klS+Lo+L7wdId&cHMBfyE}lbiW9Z4<t(!;u z`Ok&S7oS>*Xur4kIo;gf^idD$udku*7kzfqz8?9{HTJ+Ag5!dn+wkbivXr!40r&1* z2WVw}oW7wiv>3B?z*{KF-QAIn`qmrb+})VRvSPidrL*zz+?G|}lNqe1H}s{M$y}P+ zVEo6vIZs+>FVu&6XW+hf$Gf>L&TAI`5$qdqdNjJ1M6C^*<j6;4rnNQ2t9~)NaD~n9 zk(`kECiXKzXsV(7-QM-*QLnct8@mE8qb28dqPgYnZhGJCT|=|>rUNeT8p<jJB9}CM zkB88<;wso&&^?&H&Aa|EN)@*a3S9UYj4UZ}w|<bCwpYi^0up25y|ufL;OdAUGj9Cv zq-caYu7(~D>v>e@5l{O(yO&jh>wzjFiie4w6>MVqz{Fq+4;C}?85n=2#05%9M^>;I zq5K!U>uLU_d!I?c9V>Hh%RZ0a`%GKwkLX*!_xM`ANbz|$z04_HD-$?_Qh6~_*|<37 z*#M_!n-ANbaZq};8Cx?*7fmh3#XO@KA;cFTTMC3{nK92=L>zmDA-tvaOAO)rywa;f zCixYaNA6V6$2sKFG^EZQ#$djFwO|(<f%@@3)4is4w$GuC(Uc3oEtyV2_R#yR0Hn2d zoB;ojJKL7{kTd;4W;;lD)&To#A>2!d4r~1)g%<xkd9OP<mi`%j+Hl0?V-(dCTgK6x zaCCrUaWwEKyH9xjf%bN@@oWX{1(>g3M_o4$@+d(I3>s|yiYiE3+L_i~A0FC7pTcp? zh|B+~{&?PZrB>miMnVr>;X%9R{+ld{rE6NEu7j2?JwDECx1vs`DD#zQZd9&1EPcHZ zVZIS><vUag1GfpWP|L<Wyxzh5Ht+hEA*4HOnEK%E7?lOx3dG$s1fmo0P@dtzjW@Ry z(M?9ABccZ)x?2&cGJ<Xx;`U)hPb(r#M)b$tDy9rZI`*u3>*iNYAA2IhP}a}$V7?Mf zk8e)n5x(7+7P}kWs5iKkh&f_Lq!(>ov}WSg&{o>n#uOEv_lM`$6EhH#N>99ErPYF_ zXx;F`T}yg;Hp9RwYr+s#c@oUy0oWESx+}N>Qc^pme_7NupT=g6p)3<1U!)jWh$`8( zWF%6B!5e$5&quHuRe=`XzGM)~aI<(9U8Nbcxr!VA`>>DnbSfGG?L}k5=dH%epr#wC zF|6B_o5?HOu8d9?jsW>8N&^=j_I2g*tQlH#!r76Nz(tSNwuDNf8y+cil@9Mn#Zv;A zWWp+bsx9$#kj8qkJ{*J4bvQlRe0<Ux(Zl!hh3qa|uVmTN_!Nv?2wlsvc2qNKRfwHA z8Wc0>5$?$-*6;bbPT$H;Tslv&brX+ze1(Uo_wtDQL&$u;=_7uadK=XQ+=|~u+q;x4 zd=H!kugTPMc$HGz?CGWBAt@7G)+5`3?(M<mbT=(j@_cLfxoEraIr|)ipZ{v);s!h? z-qwNY)E>ZtFptsLUt!%v!QC_wly`mM0QC%L`?$@Cxzp6jZP=PsszkgA+0CFb4yB@V zwj(lSh#HpB@q4w1IS%EV(XqxJ`s7VqJnfDfxR=bp{FHkgJo+#<_j6ns(b^f7q)uGV zwXQJ$Q+%DgzI7!^Nr<LIYbPQGe|{^Hr-y`pgkjOzrB)1$oJ@O!FwsZuqU-1*_v4=h zX%QkqMjzQg7ic`EQ0ZlhRi%loXUp?f>G=ovj!4Q>A9P868}n)MLs>3wDxZW)aVz=U zSm@$ds5};05DU@Pn_&Dk7NU(VA+tBSCeXG8ZF7apndkvmwE$yaFFty*5nV;TAk+O( zx=Gy*?{)P2qGoWau~oAY5bF8|VJ3;mnoOW0LPG?m_haZjG)+#8==#0%&zv+Sgvm_> z)ok46Sx)!6#|<``3%tBqZp7SJK1a+?{uj8?+M?xX)Nv0IN6XQ>7I<R&fd$<N*B`R( zEPJ*M!5$>TE_MMPe!w>gSk{wdLm=yA%hE`e30b-=>rJvO^k?(>V8QCu&FB2l+Tl(6 zJhV?Z2BS-M<LR`L<u%~5n7M*3hiWp7)vW-QpB-59`LYoq^OaCDvV`WgduVPew*DL$ zwhlUIA8(A&JP+;pOYiy`)*3kC-PHJV>&K~S2fdpDog%PqA2iW(8ZQ~{{S3yVQQAg) zO$1MrKj&TFifG)m<K%4Ki>IVrX?w9`^{&1j5&7?W*WbkeT|S-N4g{XA{9jso$o&=e zSv)i=pG+TVn3*@u4>gz9b(BJTCf$;m3bf2UBBrIaM<-_^Aajpoy-AjbKp&B#B=eGN zOvg|tn;SN_H&6H}zA`<5PBdt~JmP=ewWF{BXf#j5sDir}GayGvG-9aOyaA3EHm9G5 z$Jcoe$d5RqSyaepP<c?%u!Uv55kPyU?jI6tLA3-;ahJU5pIIwOgz88w*1OgVKGrvp zk@V!{4%%{V9?#VZ&)U<C0C5ArFc}^VrHE(UP=tlp!owcNcAhj~_0bYtPxTylS9Cos z(GW_Z$L~ZTkRm()A1$vyz^=E2-C!q`<UYf^p0`60FDlaJ{RnoZ?Z-B$=w0rDR{93d z2pzXu|BdJVkqRnMEB&1GSgJX99qFYW3|~QkzkYhmCt$vg2}KHzP2Rvk+*OIVn|7oG z%y0Fkk5e(f*by+_!Cqqq1@)$nXv(pJADrT^?jY&ULm@qf_;372`uV#>x002h8*B7m z@HL(f)vxhbncd+w%g>IM(6TdvEtPHbog550^z8>(UuCJpz7kZD8o<ExOTV{+eJFh6 zAX<_h#MIoowis2dBW<UsLaA`yDhSR%<s!Pi9r4zt`%doBAkb*MG(zaNE9m(Qss{9+ z6fOOx&}PFG+X^8PQ--Msi7CTMl*Gxn@@UNnt>(~1)JE#UJ=zh3#J0j0XxSokE;<k~ z$ry*wa>j`}7I@HTA|5rOFO2afG?w$rQbXpa0dpT!{?-pYVfTIXG=y&6dJxva=H|OV z51N0Z1t1MrIz7sOjgPTujd%uNb71h;LQmvmWchG>$IG9;wf<u<gKyei7u!X-V%j#` z8rT9~(4HRW$Bn$3TC-f-4!wb|>ANSWG>2L}T!+kC4S0YC?w&A^^A>xr7()IJZEpe} zMUnQ8_hg0;LSVunhYAD@g5nV%U@$5($%IT`atPs4FvKK4BtSNqaCm|NA&yx*S9jfA zQP<mD-E~({*CpW)@C3Y%T>()!UKB4tbT|L+^Hg<LS5F7n_x=6r^XZ=Ir@r6ksk^GH zd%6lC^gmsX$9!+f|0W6fNXSFbkHzVdP%IbWlLG~@B8({Ld?7r<)jb&Vr9+U$3ZX(M zZYWuCxB-jcB2w$<tth;);fQ;lc>4qox5W!6O?f3vc{`i(_B7>9ZOX$8E0m7a<Mq*w z@(m)a+Xb3(OE{+_H;4|K{#hohPCA4L1ikmr+fjJL+LRZtC6hLR$E#9i3_0l&AS=Ki zi3L}@S~)ooZZ1Ts&=~Rfx|x>1@E;a<0_4HCkT=y#`yNg^Bs<9?5|0(JlGxF;Nb1s{ zcSGaRHvh`caS@8;O<jvBej~ro`8G=mcLs-|P`CJ3Z@_gv9&iPh9V4QjSD*2Q#EPeJ z87tfqZmyq$SCTQ?q*s1(GwG4z&cx=+IyU8I#q#j-a$?i?j3Xbm9!+RH=51_AYnoWw zxU*&Zk4@u4c>0cY0+0fmb7$5^tFH<*CBD*l6ZCrUmh;6;*M{+$*SVO)ZfnYogqrT7 zJ}%UBC#`*1+14-=H{Yw%IX_V%OLrx3HpM8LFvFI(10B}&2FuFZ&1S(nOPn%CG(&2~ zq8WCAax(2Ry1^%!*KGLavuvg1yB|KmeHK2!O+*#FopJBMw}gGvaPMFry>u`1c_t+p zlPXh;?wMVU?sZ*vrqp&W0mN7Xgz3`Z@gf%Dj~`wm3BLPT=1ER4l7}bO;)35JreAV{ zaR`R+5#wQ&4eXF$bjYMyuNV|6a4D8A6+Xe}3E!1COy{PXR;Rt(Wf6)P<S53<zOo?n zlFl-MN#~~b&j`bd-N?+ux`b^6q&cqX&VfgyQurtx&$DdcX^F;Z-=o~39g*5(CYVf0 znZQ##g|82Mf=Q@naF|YnQ%Z!7Y`lyEsimC60;`=tp#n!aDSTv4Fi7tv9Hw*AO|1^P z`y?8DHYOTfP%}D|cIFtF%=Y3hn1rJ4(R6M$Xml2(Wsi}bMwJSomvquw7p8O5`<A8G zo+s_;6?sBB3r?W-T}v-nH_Nd-y`mgR=jA8R`!VbF_&kO$hcx3W0pf?x=iw}Bm+(>9 z?qZq8pJ@0iI~snpBmeNuwFIXj*K`^12&V86^GlZXJ+*_;d3VP{9kzLE6DSaFDvnef zcj6F@-mYr|ODV0wN4gHOY~bKTWAMf<s3TpCq*ChTR4hoJz*8L;KC0t_N&2Z&P3LCg zI|Q0_JcUzdGAIUuL3LdC$ev(uZ9y++IuWkN|3?Ih`e%=cj!_nbUV6)cCi|vy)7xh0 zC6t+q?dcVHK{^+oKyL@wMlaMq#poaHZ1k^8Hu{%#GWusG8U2T!dZ^FNUM*yA8=a)P z3BRHS2p{EHXQ74bPAAlzB*Q;J)SbOH`;8V;_=riP5A65oVDxy<-_oTvWoG9Lh~etR z51*IgENluNF?%y};2BBA8Q&)v{q}S+`n;2j+R}p=CY$Pr;7}bAzSAu>p%!$&Njf(> z{e&HfF!lOyEzlGf;iEbuVnsUX%d)0((|e{Z&yZiGXmhf?y<*bvy8?$ux$u#-vqg+- zqn*j1P=TYk2p`p7!64LL9Hw*AeSwx*Q!k}f*;f{XUecKYp6T55juffwm2C7X?P~PO z>|*qq(EU*A&aN$(70e_ieJR~^ln#+<;iGf5(7<&J`IV{iYne&IZ)b}se8db2W>SKY zG{IL(-~n`!t}A|pE#V_ZJ~IZUBpNA|ol&Pc89vl$awd~<Rp6<H2_Mxk!6ei>I85he zqfpq85K}MZw2FuDQCSMTr1K-mpdUBA6Q$lne2frzfVdm~RoqGc=O?f+?SBz>()ra1 z^p>$+PtPQyXJsd&C)z|$j6*$#r*f&$H|<T=4IWWy!bhc3CD>F$kZSIQhIgJxjOlce z?q>W7rtlGSu1F8Hs3`Ic&SX%iz)>j(AC<je5b7QrrW4^*hQdeeUkKe2V(Qf~%7V~K zI%y7JIyb$GL~45{8NGL;9>VN;TXIWMZO4qn5@M}1snRb}Oj0q&zFx$N+C-%oUrh$Z zS>Pze!bd3<47#S4XgU#2sS!S6H_8;FLH}2}NiTh8+jMTan^-r`Yh-^h#)RW{6%LV7 z;iK5B7P0Xq7`~{0nhXjRI7+GTQA!1aPz!LFPJ~lRg)a#{`tP0??FnV-)iDB17KC2X z*-UWh-1OeZdixGaHhO3FGJ5~TR=zVu`O?ga`kOm(h%BQox0|ksr4$e0qqsgGa_%@i zFnvqjbhp4Ga#Hw6!=pmODPH502fNKo<$7iq7nl_M#w?cb5sO~ZlCv#&w_-9VRNyFg zgpcxHFbFjdhw0pO(><xw9qq(1F&XXY77RlD9$eG8>85{Ch_bcEgz{9Nbqhi->3rw} zde>Qc$-0>r?dcVHK{}r}f!<A0FEk-93`bt;IV@5@BbU%mx?etl{@0{_G&_fGJtu^2 zRgR?hpC{10optlQN7QR1SJHjFpu9ktBwZSQMV%BrvirVZCi{$Jj1=a2!3>0$E(;#P z5<X&4d@$?eaRy_JW1P9yq~iBdi!FS_{!Fm@BpZD&TJ)*xVDu^V8GSOnMxR5yb^@Ty zvVMtcVPE)2!#-s{>cjmO(p;+2{35B4ZZ&=dTlk3mwO~)^Y)shG!6?im4VVp;V%$5_ zrA5rU@n=n-Om`bRLW}T`mLE=-idD85+3l7F;Uf({2@Q0Qc@r+-P8UCXrqv)}Q}~EM z?<%5A4NWqJ;_g2UcmKUnmpbgBFvX^NDLB-_2_I<|Z1T0@FrAy7j=~O)=Uq5fCW9;q z2DJ#`qq-^>gepR+Oy{PXUab)Qf;}eGeg#^$AoP;X*(cE3L+VY&2P&Z>+6AL0;)pyl z+nbrYdaekoX|ONyhwRWS!gOwF=qqjE$C3AX>;;$dN9ZQKH19B-n{N8!v&bJpnQ?9} ze}rDrdBX|x4r09l`a<3L)s^2)^Lg6Z$WmZdReALMjEvhn#!?}%@99KJy&lRj-P!kZ zf?{B9)d9G&?}0=^qt`?CD5UYjw0DLGACV|+<h({24m*oNyq;w^lZ{XOi=I`ibV$hg z;#f40dp$H)CR-1_@XS)h3P3`xLmVp+Qm=>R$Q0K<OzeQ6h4|#k#E+3EShhWVIwHjD zNk#N%7TBxv{-Y9#pJmcZm;^0dR7<=bb46*<(BuMT>n_Pk61Hsn>0nd>3-z1bj;D*) zD%OKi+9{4jc&{f%hM#fH<KHOOGg6uy$3m+C%N#xSUoaL~;F0K!^0zay=;D1GB{(=Y zw3JdW;q|ORmQp+hH}|VmdJaKC4n3Kp+|hQyqFkqPpL5j@*DKb4AR*T!j@1=XuZLFl zsNTGt;6w7vIGgv^UE^4OW>HxXcJ1DRnTj<~(*1F)RAya=GsSQ~!n@NH>jKG2jbn9V z7Og2!{(jQ-oUIjHB3a#-g<xYmBx~?1a+M@AAW6d!U!%Gs)a#*fn`-ZlQ7^oq;xiu% za@~zIM?Uv})ax0|p_t1I=vk;(W`EKnjz!~(*K;q<l=kWiA39sHekpDBWELr=Io%c< zDizP+YNsW!?|gL%@Lmtq8FJ&(^3WK_2DuGjkRuFQldTQ*f<&>3$221wOxBl@MHrn$ z?bYj{nnEtI^_~kAtFxpNMsK;)6AD`dS#?j^<tpve!;<S`q)|TGV%Qf_W$T)hnv0Yz zb48vox~)^0^)k!Re%9_>By8Dx$kQ0J7iV(c{&^ybpOS3H&=}(Nn6skcQzveY$Mj>& zHk`>#>G5wYtULAeM~K(c%m}<sp7A;s$(@)1jG;Rr3VC|XssD_}q%nr(kkq5~{nw^F z@tA>(p?fl_Z8Hvq&y2^M!5FHil<`Zie({TV3}}e6ITL&8)fhSnikUrs(iyWCN~mA{ zd0^4(c+4Qi1c(av%$d{X#$(Px2<iqfr03rSr+gWY8O#`3+oZG)`FZhU@t7fup*wkM z3Hv@-f~F=78^yAY8AckX+AyZYNh;zb^Wr4e#7UasBzMP2o{W>c5-0gEPI4$t@^hS| z7g8&nnXW-`65Jp-FgbCODRC0|CzWuf=B06xU&TqDl#+hPXW?y?l5|V*wv-IEB%e#k zS(fC8l$>fwI>|0)h$ZPSCH*bQC@C3eNg`4*z>-u-Ntz{DBqgG5j4drIoS5TGdrV?Z zvse#H$?2A4os<l+B=1SdnU>@$DLKQEcu}YIeD0}9=2gwBs9j>mq(_Q|XJuj>1a2S# zL{^=Pt8&y2k|Y|yWM;uP$1WK;43gEF1Zs@uGzq$MV}o5XY}iQbwT5^L&Gwz*Fo2=u zQcpu}LI2*L<JqdXFfNoH#u)Z}=*|H`j0F_)ZvTGxKE*1OEXEjiTSJ*eJp{R*ejG5j zi)HI7$zqIV>s(-!t?gsJIjUHTC5thdt@D^g>7p1uzcad6vBZ0Y;^UAQt!&@JK3}u7 z=)%7gE7l*REyifJFkMCrd0qtHCGS2GRIHaIi!qw549(W!Igx3KwL`KPquHYJ_j=4c zJZ*D9dRHqC_emCGG+V<pTib&Nrz=(>P5<E-quCk(sn^3}D15i~k8M<}GbD>Knk}l2 zs=RjGIQ|*M3P=`XG+U^kV43Ch#qEE-Rk5y=EXHWIMrpR5Pkn5xVqGU$jL~dS`%vjx z^zHknD%Ni#i!qulYKtme8K3>_4#nbEy%5eA%@)ltRo%GaSX-N7y(eukMze)UlFe4Z zBhe{}^}S><MzfWz*}C-Z(>p0v_l^jJV~l3&Vn|iG#y>r#qhe)97GpG9moUq!^H09` zxndPb7GpG9yb{K<TxyjoU;XqE#j24kv07&DH^#6nv(9fHy~*#l>ijK|#Td<2fLSz; zAX~v>1$Qde8p&demaZVPC|%?pT~>TB)w1<B$zqIVD+gGWho3HQ`$@50lPtz)wsM)( z2WJnC?;3Xgt(#?Qr(`ikvlWW7rC5h0i!qw5JZ70~`GsE^M-;2G%v#21w#I6<9=Nso zUB$xVb9Ri;Y~?e{Y|HQdZd1Nujg~CNXtu(dt>+Wh`xUE1vKXV;Dqxmb4-02qTBBIA zC5thdt#O*I2mfCAjbh;|IqVpt*&46e8ZrN|9L2g@vKXV;ifFbr74^JVv7VAF#%Q*1 zJBk`b<wdUGFPk3kXVr}jlEoO!RuQnO9-h9iU!r2|k}Sq(wu+f$*7?wBS1e1nZ2d>F z7^B%L(QN(uf+sdBR-aA?gky|m>oQ11e@Nl)->~?XgDqRbB#SYctqIIB+j9M{K0QOR z#!D7sG+Psyl}2YASLglW6UD+qVs?ztY?Tt;>ZAVp=HMj7x>2$iquH9oEVCZof8DD4 z6zeyV#Td=jWX;y#W6!;+Sbvi&#%Q*tShnCny8bl%EGrMUNfu)?TT?Y#&lGL_yJGE^ zEXHWIrZLNG%kSMDxmdBh$z&h*VL0@8)a4|x@-RL3sjn5Qzhp5+vvmct%sia_hu?Ql ztkIIi7%g4XHCqSg2G=Q8sbn!mvo(WR)c2Cx_0;SAy;dGBkSxY%wyp$LrRy~BDK{zB zJ(9&3%@(cZsXD*9Qy=`HT~5`Ee@GT%G+Q$@TcH)V->+D^C5thdt#W3`Mr-`kGzT{o zrmYU05eUZ^&DK?rs&uV9^S*}_>s-lVjApBXS>~9MlW=oTvG9nA9b+_Gm71-&$sc2> z!;IlIlEoO!Ru!|%x-oa_>!&N$gObG<&DJc<R(|E|EsFK3WHCmwHJe#xx~8rCL#kqZ zD_M-uY|YVZtvdYD^@?>WbzN|b(QH*is^*7!x^g6oF`BKbnPv8ePv+K)Rkp5{EXHWI z<}!=gGP!Ratf@}4a{dm<VvJ_123S=$-o2)Hw_^QWvKXV;n#U|EFLI~HF8ldZ%NA}i z*)c}5H6L<itLclT1jTBTEXHWI7BI`~qwdH#5>~7}U4$*hXtruKTUAeFo~~FUB#SYc ztzR(9tcO)8|9VNWiX@9Mnyos`*5{A?b&_ILOBQ1^TlLH`%j?;!H-`+d@^HCiF-Ef$ z)og9J^*_@T>jBAPjApCBvPEO%fwh<3p;#|V7GpG93pHDZ)~~)=u|Ae8#%Q({X|@Jl zbn9Nl`cbkNquE-l+1i%&rz48hyDI|W7^B%*0;#%R?)KNR8~a;%I8w40quIKKSybUD zH|Ty@u_j3tV>DaWGRv%oe_QwQJ&F~TEXHWIuG4H?b=txOigmYSF-Eg>J+sVucnR*m z6ze(3VvJ_%2F+Go#nC$y>wU>$jArXbW~Jdw_bIL2$~O+Q^6;o+F-Ehs6j;@kA3Xo( zV~W+wk3hJkI52at?Oe8uB-T?`8kYxHwnj)6V>DYgG0QBkO&e}|O|d3Q7GpG9jTQ?Y z<IgV#&q}jw)kzj(G+WCp7S)YowUg5nt68!bquE-)EVFL>`O>p)QLINLi!qw5n>AaX zeKUTbVr`Ht#%Q)yYPP!Wdf*bp`c$$QquE-e*}A=D={bt^lVmYQv(>~bvmW|SJN;h8 z>P=!e#%Q)~fmGFvzE$tOqF5s&i!qw57_&@Uy?*2QwPF=Z7GpG9w`#UNC^&thV$GE- z#%Q*hnMLzMD&^;Q6#hrCR!SCQG+V#aY+XD4wY7@%kYq7Nv$dL8X5HvF|A#jfYn@~< zMzeLBX6xCn*Q6@e$CAYu&DQPAlEKEadFNi+*{btLq?j?9tvfVZx4!YhR>kVx4S{fs z(QMrbsVHR%AN0nwLESA|=Smi1G+TFBEXw)bU!3`-Vud7&F`BKrnMHX>Ze?!8_dP9J zS4b9PG+Vy{R@KAM(^Wq!R=s2~MzeJfv#4&6yXT{;yPjs*x<#@WquII_SY_*-OGlO{ z)>D$j7|qtNnPsM{?UQ~br(3q(kSxY%wtl18TJY+qe8u`&vKXV;x{p~j?<Lpejy(qk zS+-KU3n^nXTfaqsO4qcl`&TR01(L-W&DQUjWzWMiEn9_>#Td=j?=@RvR|k75);!5# zjArY8W+mZF?)Imz{{0!2ty?9FF`BJ4z^ZgrruQ7GSdU8<V>DY2Fe{DDIIhjO^{8TP zk}Sq(wjN}bIexwKW&d@G^_gTbMzi%0v#4&6tuq!+eNnMIJs^T(jArW(kg9a`EH1xH zu?9#MV>DY2GmAP1vX#}PAW^X{ku1h&wjR-JW%XTAsaRJ?7GpG9k1{J=+Ui!mf0<$} zku1h&wjR@L^*{KR=M?K6$zqIV>v3k8dHCr5&3hE<Z<56r&DIl|t)G@Zb+2N*Em@4w zY(2>=GY?n2nR|y~eIr?n(QG}X+4|#{Z+@v*e%UcF1~@#^GP?@+6Ie1@lZ?j|K5}1H zwK!T=URE8gnpak{puDo|s_N*x^4hZM`Lh<dhSP`i%c?6~!|F*({rvLUde`8&Rdw^R zZ);g?d3BvYRFJ8Pn)3Skvbw4YCb6h`esxq`RW6ucrLHRGl-D78l~s!!viV2~i)!aA zDdT9Wv<Y*w$}6fsmAd)L(#==1tD<ExmaM71W&sjw68Op@@D*hlBj;3=S60=P&8n`d zsT9U4>#7$*!l`43Q#oCiS1v4{Um;RQ*XDKwR5H?ER$o=Ouo@9Jb4Xs-8)L?l<p#<! z3IjR8{F0n;MUen#V@6BfnDk&UpfE+_#)pIXMI`~snK7fqRtOqqMDe)X!s49bu>ow5 zAVMe_6fJ4e)Hb3xuPB^bIBpypWIObzy`d&lz0eT8vDJ&o2LbtJQOf3(mDkiPs4y?; zs<cbmESMPiHA`yeM3Ak>y9rf`P|!|k?wqQMxg`s#=SS<ELBYyOQg7y1O?7<~wR*wa zhFU`A7NWKlRV^aOY%;?|$gz;so=_8`h}pcdiB(l|?U!?_S%(ZQS-`gCRo?t)Ro&RS z@_C#BQ@FS~>Xc1DEtxcN&VstAO*IRPXU(dwa!SXl+GMNBXg_uJqRP}Pm@R6$RS&JY zA1|?LZh6DvviXQCH+Zg^R$VspfeW6p2=#YCeN|ZnD$Rn1I#G{VPWsF0tLN3$$l9x< z^nUGv1{9pq!f2|%$l&6JD7J^LD$7U3%FS6InlZYaMRn+f>dGpsDi&0tw%1e*V+C#@ z!#PBhtl48#mPgB_SaoCe_QY|J-5Y-Djk2=*iQ)43l{Hm$T&EzYuc~N3G?tWAP$fgM z7tF1$!W$Tf@38dYqemF&4fCl^rc=^XcaqMp4mgEQC>MYeDun3Ns^_O?C=GUOoLHcT zxufI6&S+4BHaj_IY_u?8X1Fq=g^DD%7b>_Tj>~N?RB%Tfm)l;b;9huKZhN7En{`}n zd!d3m`ncToLTv@a4Uq>NTgljjPN=<_P?cn;5IUjUAvm=Pp@_UFN~<d{BsNYg(4z3- z&~ajc&g6`VL&u2)dZar#PHanJeE(=ms!O1as&}F`nj^qQ(R*1N#Svi7Do2oLJ|epu zLG~<j1PPYNHb;<K^qkehqKE)tNOUibAYsTgNU%gV<H~XkvPDl7NBor2mY2tc9Y>ux zLp_cv3vwJaw#n>qG}%!iV?=v#M&6FI_ngPW34Nl991mx&O2@+qeWLOl4`;7r$HNJI zqE#LbC-j{dcbvk|Zyk<P9uA;Qr9SJisc-~{REe7J2oec#4H7I-^Ici4LAK~weWN)A zv&Aqz%pS@3P<uS%Lj~8-tvjr?7ix<z&!8RCLtC6(gYD6F1=wTm3b5z1D?n%vx$O#w zO9Iae<xDm%0a~Ct)tc_QlU1-goo2=EOb&_9GLDjsCF-L{s|t(HC>0i;M=DJ4MEN^) z3Z8qI;EB%4o#!4Vc%oBs=edUoo|p!@^W4L1g&<ZRXgPtG4s3<s46%`1=D>WLW1mzz z;O0$;%>Ze!#5TCw&CW1;^=Joh0u{qgqyhk&3YQxzTio43HFEszm&SGpZimiyY3*=D zn7!6<9fp|Jl<Z7V@8U!4H7`C?)OAt!;zI>j3~BM9g4<rG;EJ1&_PFhZ3a+>bX^-1p zsNjm5koLIkgqD>R%qyQ=l~ay&2m4L3xIIq3U}VOHX*M@3GjrIm%#6%onlvqKSVqRE zQKQn*MvNSJVFu%8CRg6P#%S&O#iU`S_<xsJs5I>VzNMv0dOFavFE3)MQ*tVBRaZ64 zPM>HB>FM3M4qU)U&9VOvjj;4jinYL{$wwUYAS7Uv1nmEaBHXDsUNs+skN_?%wPdCf zmkjxylfaD!?yHl)tpRRyKb&mN%`R=S`XO-T0|bzs8@S<Ogaf8>puo|q6>hi)<X-?Y z{0xBu%@y}P<QD_e<ILmZ{*HX^2h4|q1kTrvz9PsyXBkE@4sz|;?TxT$62m~8I32eC z8Iqjr)H-m1)Qo_$9#DQo<8XmE9O+vchl4)bKa&CB|Eetq?ly@<^4pEyA5KCaJp*{m zfpaT2`aaOa!G^JM2*pDDug(oepM36rwqaZ~RN&~94L95{FX|~U11=D_Q`*7Nv$Ai1 zxh+HBI<$iu2)pZn`E0nrb!rDk|6IFdgkjt@O5o^Gh+F*TLf?c7@x77J0!L3$+;B^w zZ^lLVR>vg*M@`QSmj!)4T#9EVL4oUN;%x7uPzXIhsh1eKCdc)PJA83XXR22#fxA;; z5e<QJ(f4OyHaT%F`aT2ZYbVa3kMf~Q4%!?Ja+X~eec8a|J8=$u)bCbF3@gN`z4TrW zT+<2kQT!e~Nqx@)x8Vf(s62K7^Me!TlHMM<sLwdaS^45fFX_7kn9H0v7kvwWxz>qu z=%e)h8konOI2V1JfqC1BbLgY;_y(9xA$Z`tINB?Z!N81g;vD)YewP7L?!>vo??zx^ zPMkv@Jz0NTV&G-hUi|(H+{-7>N9FPHN$UF=xSvi!U*9~ma~$N3mw)4dnc~Db(o6Z* z0L%&}&L#gI0_JHa&Y_Re`vx$(oH!SKZNPLMOR2D>!$sfO5+ji9*OyCxD>#8Zs(-VA zxzUMpiQn&ldEAL}#E<fCGcfNvaW49P0LGIqQel;wLm$O&05BIiaW48M0aNb8IrPzZ zaU(GINt_4Q?bYXpf%)?Z^illY0_IC6&Lw^w!uUTe4sz|Km-6odV8%FcF8XEwQ|-h# z(o6AM3C#UYoQuAff!XTBIrLHdz69oo6X&Aulmh%K83(!c(o5s&7>QvZPVJS)c;Kd- zK;IDX8-V$p6Xz1Ymw?&q#JQyRb6|dO;#~Cg7>BxwgIs&*rTAR}OqCPoqOTE{)lQsC z{Qd~c%TAn&zK?<V(us5Eqw?rLH#IibUU_r_uAjuVmtN}svVkdf;#}f4511uRoFjgu z?;c>DbmCm}Z3X6CC(cFRcffRvhy+{daM3pim|;$wi@suDDx5eMeanDpcH$iRsJ%T2 z%u7z3i@pzm`P_+f(dRA1eI5>S$4l=pU@mduT=ZQ5%v>kVC4No7-0j4<=zA8J4Njbk zzFoi^bmAQPsQ>GXo6$4rh7|62{r!2sjFvbnUmW_V{!Ia9t`p}Hzb0VrcH$iRsC=IV zW`h&wqHh;42c0+<eVvObrOLI}eoq5#u*9~P-Xy5WJ4t<oz)d@WJ}Qqzz^r!ST+;hT zU|w+I9O<R<cpsPpPMnLrP9^xx5)N|hrI+G20+{hmoQu9{U>ck_NBmNu?@nMIa^hU{ zwF2{o6X&Au05Cr}aW4A$UWPZbagb{-y{QPx1!kfX=c4Zyz+CUdIpRm<ai7GHU2^T! zzo&tF=>+;x!2j?h^?eT9Hz%RbKY^oVo!X1vX}}GZ*!J>|>Py~9>YD*v^$GM*{;dS& zJ}1tlJYE21lN0AC4=Uf!fcegebJ5ogtFHaz%4>V+rT!pWV&G-hUjF3*SM1d1Sl3I0 zhIwxK95}LDABT%y*Xsz}wQ)H2b;6tCaPj&&K;JLpaPj)O0(WN|E?%D>xCc%GN9ld$ zByiL|)}928;<xc6aGinMagw-yo&>H7^zA)K+z%&#>jr%Zr8wDKAT>Up3D@H!a8&=& z<8bliOZDKKlfWeacYzBIk47#C<&6zaij+nQaxOXpr`*EQGtzv(e}jYmnHMlT6m28- zqUrR6xf-uj&Yn&$(MFflR-HHe{87^vTy=H*^o13}GlpeMUpy*v`h=>QDm=iMURyEi ze1sVn85egmuA-eedO**&(~t-9x3IdRZbAKmS<$p16V6U6u8mgDtG)*M({kBTRUL3X ztcE6Gf|TU(;J`QFJ@_g-z9pFC>3}2A=!>u(z9bweIH+e4?qqn~!0QHHHyaNo_^Udm z9x*$k96Y|;i+BV8IeL89|Fcl!fYBWV)!j#>rQ8tZ{eR-~VOJc}PIu&2cjOm2A6B3J z$QFM>0uFrFIRW2vPQY##3CUJCeSf$M!n+{63&Oh~yo(i1<riPBOlJL^P@WX-<MOr3 zyGc2f-~TJO7>YtTJjNQFgX~+2a~k_vaHdrn4}ULvDElb(l-nMIwv$U|Ulx4SyLkAU z)>IokMi?@x@gAcDzFzDbf}9z_z6|&-U>`jl$YNgrzD)Lo;mc-U34C~TK>A|cVmGaY zs-__J1;42UzHn18ZA1$;u_q728$z*QA8b(^iA_rj#dgsC#OL}41dLh!0n4F-Ht6&v z(H6x$H-xfxM0?bC2*p|s_(IqvIxl-m-7e_DCVHU_zP1)@VaeOwW1Df>>Ap|w7f}3h zD3*+E3&T(!Y-`2N<DuAl*bDLuvVpxn6SnV*^?WUq{c1EsnzxhYAT+P9+l@$tvR|ps z92-m7FxLP4^bJ02rW|biv2EeN%`{A6|HBQm`z|)ACX3jl5s3lrHQxd35e_+rBPi75 z7op)5Tm8%F%an2#^xHW@up==xu?>e~kKYTW*oKvMvQ67d7Q(T6o&h{>L>r6O5uO7g zP3tHiGJ4$_{P>rzATV~ZD+$JqghsFXErd5rqwENXU7uq|D81p>{RA)Y{tH`7#(F@f zRF)mex;80_G)%-{3a?FVd!?Z9l|I?ele+8HTN^nC5G~SULMi>&gO{U%pnw)M1qF{3 zts|*S)08w8-6%G0#1_mM;@V2{5TPN`bYq5@4H>3r9R*4$<y!OV50G{kAO!7{nHC<s zdJRMkJtS&n8gZLel2B|Fe;#~S;P4r=$|`(!TE53D-`ke&E6azzT{5~^zJZpHzOOIz zjkA2U@LdJI50T*dSwr<Rn%;+NK`^#A9Q!C7`-WqS+Fyyi4n@qHU!tUi)sFKQcZ_BN zfr7I(p@(STik60cVQie-^em?|_Exy*r8Quh8oQes*P>w>`~C-~6$funQX0eey@yjc z7NcCu8@@Gf#15{kF-Rk^M#}R-?60}}T3ll<;ByNe`?R4B`|x_soe19?_!7=7hVRO7 z^JU&(?A1tfKOh11C1WS};6<U%Z4KB<{Kv$G|2c4BfqVEF2=CDFKiK5lxQM0;Mnfw6 z0nbGpVBKi&2LJ4#48%U>rRhWRmT!%wVo%;771i?_@Ov&c9zZ+U8fnHBmWX^ab!}!n zK{KF@u+hX&QAHK#kI-M>@bR8|)L;6Hi*cp|`V6`mzK(shI13zI3)~%+?;v~_G{ESB zICfy)Q23JAM?I|Y&4aHGus)*>zAM?sl|gPx-j}x}7sVcHECGgg$jncVHI~AE<O9AM z;$PQDb%}TUW=RJ6wZ@HUWgB`zV_Ce`NbJ>E4qEh&!58U0fk^C%3{)R<vpGp2|I;mN zNB{D(tYBkHdhp2J)?>cd`qsSzyxXv2?gVsQof_AtwH`}cu{Aoo@kdXzXYfVp^MbMU zV#9GZE28J+2xo6=h#=o(-92F<toZZx<*Y3j8=unHn%4SbV)pjvUv*23S_090YSR1g zuAQ`3t<1!8!q{1S#leQ8=IhVgw-6-|%FauzOXdw*_szm}B=+zc=%FFT8*JMWq&-8B zqC?@<FML7lr0xCNGm!Y#jZO5gD@yWiX&OHV9&Fs4ICRUbP}56G0muHOp;a&41YfNA zb)Xw}dEee09QuAVOs5fz`xB!58;|*-or2Bz3H!bUB9>dz*fOSduXoVVwzdHW&gSa@ zbp113_vLFpUH^x!JMnc#TvN}Ddiz=^RzC;Db*L$~HmGfC+f3Rgr<mJOi=A#4Lx_HS zF*cyq185hh!z(DxNez=CvGIhUU6BiTw6%s?G&xUUbAczet#RihZ_D=mjk_mx-WGec zarcPUeF=@bMzrou==^G|wPlyDb+0eopWGT;6>KXUy18MK$dOp<_PrxoAM^Q_uS71j z?(-pwf^UBrY-~$FCN;MC8tTHaT#jGkQD0qELF?XxS+gwr{^wHt&xO6Kl5kE~RpRwO zSK?U}_N*#N2sa0O1&w<>4WAsqfFV-Ycr>Bz%!2KE?fhhHnT~HeuNvpU_S*@}*uPoq z8XImNpMm0RYP=0mqk?W~yi53eR3UQ%2xLzd1+wpAi2Um&Ck)-zx;wF{TP$}Di!)<) zQ`7X`&5d<;BKNg4LI$umFzPh=8s5P<nm(19D7HDCUbcb8j&j)Z8NJ}EU>|)JzKVVK zqKeLBUtnUm@qf|^VjqZc0QEIv>Ea|K+H12HXcTV%Eg&~ZwEinLZ1#d_KxmVh8!V?? zv4JMJ;`SsQTgF3cQv!S$P*u=mVE%Mf<t&3<|36Rs1JWqT9gA(ixdYt?F0Xx!#4pX` z@%9M&aL42v&S=h+7MvWec!A~%n0aAFvxa=bw}xZi24f$GSG3(QBNBTzueshsl@5J) z!^H)$gh=d_$k3Kqx1s2B{LiHrL$^0{47atc*xGP##SZM*yEV@rdJ}UmY~NkbxV}#~ z`_t<-QvctrpkhO~IfZsL-WzWAZ8?xY^StRa7o+Y0g^@<{t|7rIHv}e5MwSkV#O??n zM&ahagy|>tAx4bYEf>STmKJQ#*@X&XJFs(gXmmofE6o=h*QbWEx7K}qU?_U0V5~Ll z#SYJ<>r=8{UDR{vcC)*~2%Lz$lfwtP@md0TX*cRa&>3znMP)#L6)?fEz1R$z!(XFt z<XTDW-^;!<u&?rw&28ue{44&*M0&>voz^QL1`coXAyb-J#I?e-L0wV6|J=by^VpuT zcX{e)8WNC(D-o1VoypYLyN;ksm$hNoG#btVBr`5F4bqU39!T}4j_v91HZ~K#>G%y% zeV;1kT*&7V%68hPd<Zrvr%6yH4xh0K=LPJ04(Cqn+ln*QC7<yo&NRmQ_%1%mKKfR= z@SS7%sMv%oFmcjk-k}@?x;Px;nL>EPM%uf2W;pg2nnRB`7!sw5p-&b$_AjULBK!iC zb11eckEY_(3lzlGH)bVKVPh<9NzKb{MPXkP%ST~<5N`d<SK$39HZdi8{i5=r+rqK8 zIPX#16GO3zB$R5#i<AyC0CB(w>tAsbVjICO<}D(ON~M;Wq1Yi{0>Rd=5}-czR<Q94 zPqaS=9XS1kiGVjn(lbJ_&rua0j<xO^4MiLZY$$e=y+<}sRcYvym;Lf%lq<<xclS}} zLN_{?0A=uw-g%e^#@?i=mlkX;@kupXC@c##kR$p!Eat6fi;hHFz^wz{B%s2ge|?L_ zhK?d;9r&loiyhp3;l{5#4Iht2${VhW{Sa=Rj&g60!Kle?uMn^CKfb#6BG}?Qi|l0< z#?~W#WG@&?TCsKUDZ%X57p2CgU^H7nqp){-Q|XYDg2omY+>~0-xX;t@9wHqGHt`U4 zpaZK4$0F%rv{;TGr7414+9}hiQr1%F%<zcUMammDE)LE>FMQ>UD>kG8(g~fW&$tmj zQBSGj%);R_Uch-S``*F1ntk6|vVX%jn`Klum$Q%d(wN7-2KYp6r>;-P9<^krz^1r8 z7y;i6%m`yTn>v~1Fmq(B9nog?Q?YNtv0Er&VN{E(*yd1kzL#t6F32#Aru=Ihofb`{ z%G;V6MCCoSZxg~|MJcMM@~?afBI>Qgj`mbT=?f=Ke@~|t@FJ~knqf`LSw@g%L^0g- z+w`R(m@3lDNK++RJbbv{Lu;an9T1tnHx%31dJqH4n~k4)qGc=$`Pbp*=FL#kQ|Xil zQ4YBFuM;(y!u;zFnR5R+G2k7T5#(+(BqM_fn}7La)OqY2kM3no*_9jqFY3dwThmt| zI<uOVZ9&PHDGwgmNbSmOPE@3MD-QZs%_L9u*Z$R0;0Z3H&5#WLYP!8c3-PZC!V}8= z&cB*w`^$b3q30456M^PiIX8ntH&Fo&p$eJR)<Uh6$I7AqYTMv{dIMT#QYf~CIuA}) zB(`(3C>lg20CW3x;e@7xX8ER9RCZfAJ&wR&>laXQfa*i+x18C4t~jVSVE?*pjmO$< z=pNhLwz;4=Wn-|}*MC;iWxgg4)-|#}z2WuXvR7z0C}=$BX;^FKONiQ4xLMQ-PC>AF zQWEztq1angA=1oPhekie>21LM%yQ1-rnPIKFw(T91wSKN4xGjc3S#dt1t6+`2Rf`x z!Virm;RsEeA~Do58cooli~2|HnT8fB`}x3%CVLBfqRFm@Pc&J25qk~}pK-wQ9kF~g ze-fcxE#D~ku4V=ms_;#=d{<dMx``8^%i$AU0Bv0*x`5&EiMW)(Cv4D7hhY2`KEc=s zpI{t;Pjm*>d@r{C$a?PF2d4WX&0=U1V}5}@Z(9WGO_)nwu@8|o=tdW-A8JAn+lFDO z$p0LA#NgVcK=_{vrH`K##Jx)pv#X}g6jZ?1O}U8_7!d*E6DVYy48g2&R?~Rjtft&# z-0P9K4Sk?&APyhz)7y`I893Ln?_!(>u`g)J_&$9SkJ5a1h7s)!nq}pUI2egN$Q@d2 zAG)>xWRcjhAdkvH8kKkWm(xm2B-R>i%<@IMw6$OiK*zQoqw@8!4`O*KG$@C?ABsV_ zk_Kh5V1?9Aj$NA+LgzGxhWeQ_EY0DSrKlQxLl~3h_*YDa;n)YuKI2K(2AXs=RGRn| zA2(e3m@hhPFXCau4jl*ud0-Bq1<wh_{*C@OdOytsG1FX(49dXVp2n3KqEiB)2iV%k z>3{wZ+co=^-B28CdY(pa46;LDu-DorpLpVlBVV@e_hx^)Fs(T^Y2V8Lt$pM5*Iy@T z0;I{@O7=Yrxg6(_PON~0VsGM3k2+-<=TkY_;n)WSO)F_26^1)<KXRZ3@rT87)Fj+W znmGq0b3#pXQyAKCzW;getkJm%*QNN^jZgBg%T4rdS&|fKnwx-o;Gu1sF_@=j|EKQn zLUFGGu|#R!YZf*=O;*uoAnQ>G)Tl8KJF|+aj%dSF+G4<b1wJugQhOCLA9U5=%4c+j zk6ONux6BnS=n2Tgr0_6&qAl@oI%%SqBBJue{s$v#AQZca>K~1)Pf+zkrL&E(P1jFF zXWexDp-^)%#@Ci;gvZvU0AhIcP%RY0YfIgs0~x4=W4RVuQ^Vd=3(c{$p%YIHuP-^! z%d9wsC85}tG;XiB32i>yJgLNlH(p<2#E$w`Tn+i-R2ls%sQYOB8h5*sFvk8hogx8r z<Ch-2P7xEcN&kw$z>AffBYU>*4`qMrUrG6gDw5a4E4R2kD#@dXAnHm%?2Ry1%hCWa zP+3yAvXH7s>}a?tZ>oRA2b4`8)8y}R|9}w1HsuOT*wPA{eX9`<dymtUS3>iIN5D96 zRydY7RR%_yeXGm_N(@hkW7kimf#zRzPX=SJH1709&v?;?cmO(d8%Kn}(Ui@3B{UP> zR|v&2vk(KVMTyiS<7lsRJRvw78oDzt`{#wkO(HHW&f*RfN#}IuH5Yq$*v0xG@}PO5 zM>LbByhEdBl=xTd1}Bg1+^vF?5vMy9dj>X7#4`m9-$D;7VFeEmE>;+heHU(8wg$#& za<F_AOJ^Ws7N<sHRfo`alEM|aN0Du-h!M=*>|aUsv7ou95Alj1zA|F@hbWB=5&v_! zKd;I^y7bzgjp*QTg?B~E;;TVhR25I@$c$4D_+s9sjy&s52{&%;6U;tbcgu*6n`U5K zHS5!)sjwz2#U>px{W0WL<HmsO(5}2<#s*|(Cq(bSrfYE)4fYB6MC1G?e4@ebv1GKI zAsQzQoHR=Kc#lpoR@?~Lxh$jqUkMpa5QOHB;S>6H!zXN<joK~r(LZ&nm^<H+t%q+q z%YLwYSP7P0L6+sC^1^x{dPtgQqd)2Zk|FOJ=iupz7)Sk6T4-M8pR%=SNy>Nr8_{6G zv3>Ah+Qyj`!2}fDLrEZOaZ+?#I2OiQRkx-43zi-`Yf*Oig&>sD5%xc{y?*HCJi3uZ z?cp(+7H#~`C56SPzI0#l(p{g1{h{?#J+mx~EECum#5M*<+R}YFhg&~wNNp@kLC+v! z4<hDeQn?}yX5zqbtOWLwu}soy>5oOxZeeuEfu%pr5Bu}jX5hc04zW?OjDkDM_ic-I znAP<hf;nx^FrFGj`-B^}v|#}!kae-A;Ya~iQJO+M!x8Tmtft^0z_GNtw+gYibDEhD zbV%WjlvC701z$)aZ>*WSX-sm`g0bzgrhb4fDh=sK!&tvKjLvZtpnT67EBzTo75y3Z zcSQ5T*)!6jiLZFmuwo?EPlN*WB8lO~Hg7{(82uaOqIiDyCh?bMr8Rh8G0sDz!*r|p zb=do_Fb#EWzPg9PXf<T$6)z2IX*7eKW8PIpaQ|Cd5W51M%3O4=pOtOs4y3rXJQF_J zIMl}vYsCs2-EO|ivS#?Gul4a~2&wA(j3*%zxNY$Li)Ej{w~Kw$$V6ywT<>Ao0Gx&F z*YJJGvR0h&<^uH5qY1L;GbX`j-fo&r0YfCUhKxw;MKL48Q>Y&~qfic0sb{AKL=Tqa zvWF=i2yyIA9#0SBE@MYD9gm1;D#y1UyhOI_;ueDh%V{WTYt4SO?#m!QeG=*d!w+hP z-a_<T3=zXc{D8ao7Kj7O4@Ub1*OF});v68BjZeA*aSDs2)Iip=<AII(8pkL3Y>Q)@ z{Ly5`Y+&-499rfDfvno3=-Jf3XcCT|RICbNNw&{uEQtA67$6=<3H;5oZ!m`Ra8rGs zSR+mLf-m4?w6$!`9YUU_+*CP{BORjlH(%!G=Nh8I(x9B1A(TD|%7_-a?Z%L1E(M00 z@{<s4Ja>mZSa8e>E%QeYON%Ox7+GN)YAl=&9DuMuTl^?QmpY>#>9bU4s5~Z?2s@ zY0@O`)+75c(~rHzPk&}LO+g34oeHyQ{#HVL-oWZ`s*%*uSo_e7P8Tg}9gO-*n!3uT zMom+EE?JfAUl&NF_451_mr$So`Px)>`JB|o8&iyiL9u)vxU+C4d#Zok8~&%a@Jxpc zn~$rSrXcumv?pQw{&lbTpU%g`^^IR2`4JDYEVCk;M1EK$8kP%cSeK55m)?j4_8dy- zCA`*tVO;q(UY9-<eH1?oMGq32;w=8g4CFhy2vnYE2VRt;iSJChk)0!M6ma*NhJvrh z;WIA8xq*F6I4@z}8k`rh?|GaTv5%HW7qjmW&H_j6{u-7Ihi^X)pK%e+qA#GkS1~M7 ztrNrNtMDDf;p4NworQXOh-E|J6S5ibeaEsYOLi@MG{g28jh5_A_<m&BeU|K7_<m;D zzb%;$okbhV{O}1Iqu>+qn`HUKEn{%9-X}HxCJWq1>|2b(Bjn15?3}*l06YNDMnJQV z+K$j=*`8Sywf+@<hCdV=?+Z2u+b+SaUPu4R-$TUnII7*U5px5y&yK~dlqmMtp@OEH zsgE<4WT>oZ6=&v%w$a!67M@MxjC)i*Lpg;TUrBA-oPDjY?)}(AAD*rk#(q!QnseGv zS#HD=hY@Wfwg!jpXgubL)>1zj!ZWyV>n=Q)++N^)E!?^rE75Pqa#BVIQx<mfr*>Kg zw&71r@OMl0ck|#Snj{2<vRnKsX@Z73egKh9_+z=g;L!EK*w(f!A-pm32x@y*L?YO> z9@azI+v=8wI8H4Ev0qZ0Vv~}Bjr%>(0ijqy65fni)GxL^IJ6b|7WLrUAgo~FetcIf zh-LAG1sJ`jCc#WW>{rA#dqZjm1)Dj`5QyFwStXvoqfN->5WEsIOyGEmxo+sT(U&DH z^fq0FC5QuWS?$M$rKut`Y5YMDRp9XP%SXN0my5HQT;2_zsQ+|#*_T79J&90y7%J`> zJ>BuTSZNodduEE!eL~kmDYczv0%mY7lLwAo1MtF*>7zv7#Ik{S^50=kGW?1`p@NZO z`BLE%4AM)(i|O2SuR@^O^4*MyZeLjtdP(O}v?<fM>HQ_^_4Mjw^on*cdSS=VUZq~6 zS7w6IYp3ARJj8U=VnwQjkJ5D)%RF5ZjjowpjII-s4<+qPEFlK<XQrcGPB4X!n7?5e z=U1i3FOxx`0!R5Je3V~;L8!mtFrAz3H3&q0QCUPWcHqinw5MAz2t~6g)4Az>1c9O~ z?0Tsz1X{PShS8++=n3>bCG|oR;%qqbM9&FfsV5jBPe^yFtq!@x`!7;Ie&Ec!ZZF<K zFX_xWf!?*yhBs~!6O6>+2^pmOemY4P#jhxN;iKI72g^LYl8jz;{zF~1b#CcYn>4dy zhNw5MOD6qLECpNmh`o_z1MxOZ(jKZ6hG8-&RNyGLgpUw{L8x?FdvMeJDln>@nR+RY zlznAE=p~&+C(yf1>P1%mS8*o2YQthP7J7W>Z7t+~H@p;_={LGf=yIs@woWY_YejA@ zMX2d$HX(9T_$a^Vo&qVxyRzN)V3Wy8$~p8Kd={T-5Ln7b;iFn7ScIY;)O2q8cOy{c z=u!!#6sR}|A6XW9N#|jSq#rlEdm$&i(1ds!|5dz6_dr{%cGLeA>+gGdN2AN`PTM-R zbg1>s^p=SFZ5T5VO8Ia-qi`}Fqmy(rR}=Xxe3Z}Mvut20UQGVJD{5{Z#+ocjyTDRD z3m@qhEJA&R!*p)?k0DUyv#FQzS;ay4$d=GcI={hTIyb!rdKQ__h_~@y#hY}WW6NhZ z{fSb)h{MUnn{?6=km=m?(s~P8MQ5+kc|F>~Oo9EKNx?78qeUqRUlOjni`b;680p_9 z83XooGERLb**IlmXCt*V#YoDe(!n31`7B-m6x=jOgfAUFp@mRAq0e+~_WEe4H}z7f zsW=HAm735?I!B&BZ-1#5ETqFgIt--4KspSh!}zb#LAK7Z^>1$JNSF3RT2C$=q?10S zV>&mz=dfN+N3YQ_$2-$(eYB2YI=TlEr6_z<iZmZbou$#gl&;0f2mR8Oz)^k*AC;+K zkX{=1Oy{P1l+qnd<`or_(VlL>Ak<z{F@D{2(=v*T_xC=IiOFbBw_p&;1Fq@Zbmu7D zdpdJWOh$XU1%psmoIrP2=!SWFOsE!%nCKRSUeY=91bT}sz4qK|Pp`-e(phx^z5KQw z#tu<0%<^kbuP8s#dG!hOUXF0p2b;CDJ-wpNk<MS7Krf}qYxM1pzp9k>F#MU_4gZeL zwN%=3a8Uid9*1a3@7Q!*!&0&@d{hpzSQpQpD!btt9fM?0sK8O%5I)i^7=()0`dl~N zH9|Ky<V?M~ePu!DC7txaD$}{?tz*3&Khhud8p)Mt*O?;HYfKt`d*Kj0f$&j!77HdG z&Ew95bF7bzak|A2K4Q>cGEjy+@kcDQ!49Q#KPq0>reDe#fu)=gJ{qS5i*#R!!*p)? zmka&WH(`cvXOMNl(5(mt>7~aYrgPJMi_o3yGm`gUqsz=Bj*ZFEwW_!a7NNG7%JJ)_ z|2Cl?q4wBN`3kh20-=|5eul$zZhC)Z>9yxadwNBFkj@3*na)k`Z!NuqGE2Tay`l_B z=c*IveUSBfdL|h?QHDKHM|vW!drnB@8b*(^OqT|asFT7+IYjGln3+&1WhNTQ!xNbm zL5S(n;Snt1Bi5f>S?`+^{0^~L!bhyX3RWM~w93v#pHlp0b~5@5?|G<ui-_%hn}(s5 z2H_(OFR}))szKLSVdS$IO9hT<mhe%l5DY@m;=JkHbhilI5@PD5@=^Ac1)-O8(uWgG z=ce}+k!sr=X^{!X?*%wS?g}5JidKKT#>7alsMILFs;2rE4OK=#w7jOe0$;f*$Pbs6 z6$K0PjGP5EmBz%p(kTU@(y$N(L!q*XrPCsL;&MXO?1q~1I%90Guplx`LMG=;2<GRN zG0P|^E-1n_Dg~G486^c%^CH4KA#Y-FWKwBCaZ%Y+!*(&v$PEW4z+~Bky!?WRr4y7O zuPC=TR8W*}49ggmIm*b&8adh+W&|qmC)D$+E5DuQ^U(WgUL!E8syuprMh05%QX#Q_ zKoki#)JBrHkk0<`P|9wv=T<Yw`n7*Bl13k|hn}j?sIvd`f4*SBc%6){7{lUIaL&>s z=irJO0$~yi`==wRK6pK+;!JLPzZrm1tjT4IA6Q5O)6SyjqFzt34Bzo|@mj?ykkSru ztVCvwm*JByOFB=nrbuaG9E%=UdOd4oxbMDq<|-Dv>^d@wyf@$w^M0^6jGq6A*?=ke zEhI}l;z~~!)mE>EdMIjj&-A_?OL4eh_ec4gWZ8NNl6zhC(75LHP+!#rzU4o^wO;9Y zL+a^d>G>FvwXS+7hrJ%^y%22NpZ(g^N{@MOnQZBy+2jYVdOEWn>d#0|?;T5^n0(~u zZiZZEBh69Dlm}i9^#@c-PCwA`m||TZSt-mS{-ux{#UbjUy|z#ucs<lh5NXSeBTJQ@ z2_%B+Vvu!mvmv3Cv3NbWLx!H-jKT*S9{Avh(sQHK)78>*2P8u*Jw&3Bh1T1oX4{7w z{H&Q$Np8|@lMhlm5$<WJnJ{QOHWu~AViP+;7LRG3p;%ibi!eHiTCf*?U>0ueJKqja zEP8H4jxc&V?GA~sMe$m7Puk@w?Hy%QyBldpn>~g-m}T19*tZkZnCUuQdI+Q2qB)n> z^CZsXRzBB%rLbi$Q|e>99-3QIUH_`N&#HI~&lEkhmOv%fe^3J!Mks-HJye=r58bJf z#@`JaP!o@#xrNtrKhD(el#I=~EgsXCF|_VP@p<Bgy}RNu)XRB2wBko;-aq9UEZREb za~fl4&P*k@__R}?&WYjKkY_3MkZ<?xuT{ol`mr9WZPb4)&z)ndtD_(lE=`t3Zk%L7 zoaD+lNll!Do*L?!SI0@zyuq~I5{LOHPO?8v@?)GNi5eC=Q*-Y)3B5F=V*+s!JS1^o zX2(gckCWUHCwVkZ@=}~+N1SADoaEn9a=MYmeFyqV*`#_}l73Rs&yt)YC4DT(Xel|> zl0>AWuO*o-CA}<3jg<7ZBsWOODVF3`DLKuOtdSA}5>Zgk#z{8CN#4^W*fy`CmKGV< zkskXd+5I8)dZ@1;_vDfr53225zmj?wqirOK&JHXdS>Rju)&q|#mXDe@9Ah+FX^;wA zR20|W{niG>>ML1{(QFN5mTBvpz&?CWU4o4a>0yj!>kMXb-wxlzL5EWnD_^o0quDxB zv(@9AG0!U2m6F96%~m?I%zLNe!u7~cGlmV)!x+uhAkEfCKMg*jSgR$AF`BKjm__L# zw`JrX&+2E{dQ7qyquCk^tSYbX?|){GV!bR`jL~cjVHS@g@HLN|)}mP3C5thdt+O>- zFPuN=E5-U!vKXV;I!CiLy5#hQiuG^FVvJ^MsAlW0IUU|ptR6H`g=36n>s&~^9<y#t z+L$m!vCft(#%Q+AW0qMDPycL>p;%)ii!qw5^O?nCAAB`yx0EQ>B*|ioW{dB-toAiz z_Ru+sHCM94oteEYXK3l_)9~dC#abp=jL~cj)6(@xmkoC-);*HN7%g4HnME^gat}TB z;rD&4diY1lVvJ^M1hA?e&Uj?aVa3`gS&Y$aWird`qjuKrSbVBw>m$ixjAm=3W^3_; zPUk7s50b?g&DJQ(7WGj>FK&E8vHUa%fMbki>q1CXy4HMlO<%<tDp`!tY-KUatcQ24 zz49)_%9kw0XtqXcwl+r2S*=(VlEoO!)<w)R+w!h|40~R&Zj>y>XtwCyQKjpTyI(qA zvF?*B#%Q)Kwrs&;+;!cg!+ovtdS0>^quIJdv-Q!6?1_r?mSizTvvn!6%=UF*=Cc<l z))$h+7|qrg&DQ4^9q=nwn`ALYvlU>LSze<S)a+NRKC&q=Mza;vY;EXu`%=XkCRvQp zY~?V^OxJnkiFYd2ILTs+W-C{-bxPKEofNA=vKXV;3Nedj!5$pL`Y)K-%POzyB#SYc ztvt=v=${{3qF8rH7GpG9W0_^9>--)2Iw{tZlEoO!R=#Fy_+x|jDb_~GVvJ@h%q+9K z-tE=aqFDcwEXHWI3N%~OwvJn&ScfHxF`BJ$TDp>E7Tu><{!R#lV~l2NJfy09z5a$L zO|gbZ7GpG95oWokD=1lv(QFlJwq{K^<2GgMa>-(hW~<0z!DCE$B;%9bR^6zVEXHWI ziY*rPqG=DT_^V<yOBQ1^TP4gILT4PmYki=zVm%^RjL~de#w>GOzUTSFPbpTbWHCmw zHGx@X9=<+)M;FEVM6wv8*_x=?`l{^JhZXCHWHCmwRmv<gU1NIf`AM<5CnFG!F`BJO zkgB@z{;|t@D%N?D#Td=jWM;XiD=b-z(QHl8Y<+S1+#bqSg=8^Cvo+OX!DC$c=*8Vm zvFgSRlEoO!)-;PnrF?N?ZG&RnC0UHoY+<1UxnYi9qa!8PDc0kX#Td=j6`HNTKll5+ ziq#@njL~dO*KFO=c*-ipdS9{_quIi;k*&NQFa76xiuILbF-Eg>rDp378^?`MtPY(K z2*()BRvDzKZd`mrC|$8mmn_C;wq`QR%)?ci2EDCVBP5G4nyqrpR%}t~_lh-6vKXV; zx{6t5J=}IzkKZX)xnwa$vsIzldgGR#jw#k+$zqIVt5UO-_m5i^DAsDpVvJ_1O0)G) zuQl&0)+3U|7|qr!%~r|ut(Pg*%aX+y&DLzq)`0pmf2COONETx>TXQs9+o}h@u2=^o zi!qw5YRy)U)>)erD}lO6IL2tUu7*@R<DfafnRh%h@HDF}_mwQhXtw4u%j|n6)TgB@ z)=0@>jApBbS!O+aJ>`tvid7<6jL~e((`<dv``3#UYo25=Mzb}aS!O-_$FCRtPO)y0 zEXHWI7HGDjU!7*N^{8YqMzd9G*@DM-Ht*bPJ6d_TQL-4L+4_ZM>((y|pHQq%C5thd ztvY5Uks-J{-z@n)$+GpMWHCmwRS&G{H-3N4l}{^{zYD99Z|K_ZE2GRZ=WL(n{rsI` zrAroLG+Patt;5%>#k949Fkxg%7Gtz@Eo7EiH&$=EY`$VmkSxY%wiao&I%F^VM6s$R zi!qw5#mq9(HQ}5~o>Q!)lEoO!))LLuPfxF~<;Fdd#Td=jHOw;W;lAzfRViD4k}Sq( zwyxD|)!cgI3dPzaS&Y$aU8mVP^|r5VG5kcb7^B&`UbFSmoab*-w!V`r#%Q)~&}`MU zbiy0UW+^9kMIanwG+Q@9s_NlYFYJ0*u?9*OV>DY!nMHMj+}3`5mvpjhWl7djgy89k z?Q`SHNMfy}WZiMrV~SNIS&Y$a-DI)gF$TRcZBVjht3t9EquFY-STwhJ@crSK2AR2W ztz<Dqv$fn}!NayXTdX@Ii!qw56&8zZb-3|^6vcW{vKXV;x|vy2=gB=8IKNYhWov_E zF-Ehs5?GaokB?66u2>&Q7GpG9tC(fB<yRg}{k38pk}Sq(wwg3sf9dzpM8!(-BM^=; znyp(PRcm^AZ|6U$SZR{Q7|m9US=3!p9xl4`$3H4omSizTvvn)8%)Xb_zPea>SRz@B z(QGwqwm#j~`(nkKCs~Zqp8frjS&2B4dwa`Ow;A$D0CGXH2%|rpTn&lWW5zJ!;b(uZ zSPx4UVRRN$gVhmda)%x${hea1mn_2QtlJ?Gb%R((e)aNuiuI{v5k_a-!7Q_F+*f-J zrX2~S04{;LNjSpjtUDp`dSulx_MY~u{)*L4vIwKI?qZgVig9%FRU;HDN3sZ`v+ib= znTOYneDE#Bnj=|+(OJJ@mK=bM%#wNUD%Q=CMHroR53|g4z1#RCIwUhU9+xb_=&XC0 z)fs1UHxJx}YGSh9lq|yNtY1Uo^_Z-btpi?AtV5DT7@hSSX31f|NT2!lfr{0=8v@}7 zqqFXV#OpCxRhK=QrC6gRi!eItx6G2k#uaznxm~d?mtw-`EL2w5GFfX{m%gu9jZ#b) zorQ)0mf5~u?L8VuGY_AVEW+rl`<Z3d-Yrf0(T$m`Es{kTowbHpChjjCXS||VpGg*B z1mY(tfdG;&-SO^E#jLXOii)b5vN=`dmH39f63nZ=$}X&|t6o@DS5{F|USH2B-j2L_ zesxq`RW6ucrLM5Gb6r{W{K~4u4jFH3PKKfjD(oi22IrQ6X!%t&Rc1K8h*>tayrQZs zWZDormB)n_m@$&!wq%fwiPhIsl}*H^0~IpfcyFt&s=mIeQf_^2SIFQARd_9}K1$!@ zEX%K1Qah(CvY@<@lT=%`pth<my2RvAnrIVse9p7X4AX(O*qC6-rh1U7h0gk_x`ow9 zCw&r>Ao9B27&E3UH&B)_A`~hviUcG10U*Yt2ZI4Kq%cr4ZhSbHUsMvHZ;6f>Ej}iy zVMY|@<c%xI8yg8AIU<CN$il4?Nkug<jTII~azo>C!vUZKd=~8yKd-F3re;BfAusBx zv`gCX!3?U8)>Sst(v_L8n(F#!nb@w~7+YGFTZo;}i>elpUzAH(VO6xQx}u&*OXf%C zRMk_Vq4q_qE6QuEE$X3jHkC(x&4Q?i5ACpyjn-LJ6p@-&mRqv`yMvQzaXqoBYOeiq zZnYgf0d2q*nm0dMRX4V-e4brH-s0-0Q<h&9oiuUIg1V@UOtQ#=`Li7&hDGumQUYp1 zib<SG7CLk)U_9Sd>)7h5no7}vdB1h4DqPWKp{eS%whoafD=p6DV5--mNm-Y&idR<& zbqb-bMS-a6s`(WQDzRyYl5p?CDyu2G(HK!xqDyM*d0t#wH9!9vt*A&8xqJ#Xe$Ss6 zE}vgnQ&pEcr>bJEwi7%F$|}Tu@aYZn7a@h|RNYm=(|K0!6pBshGn`_9jS~y>Fn4sE z*cJ^v$8Aw@1lTB6k=W2mW{<a$+M}(c_E;;az=}vKslX2B6e_8}I;8@e>56qq1$Lw> z)+x1Rf~shSEgS4o2iR6o9Rz!bh>a*-Qf3dc=b<x9@I;<D!|eI#3==$&f6g#_-a5k^ zi4%>o-aRWIc1F*ESMjz2oDs7EoUyV31Y-mjBt_Q>5Db?9M<UFA!cjby*qI0`z?s2T zfHM(RfHM(RfHM(RfHM(RfMAGPP06+b1j8l3k!;l+IudRR5Jp6EAS1RQVa7E`utr%W z63224608f`XSoImR#y8g*C0n$h;hJ?4N@o!sFtZ=<HQ23>a~WB6AQFzg&I0eEYPYx zYv?$!K&xt?q2t5?tx8iv$B6}6m7<1@6AQE|Jq;ZvwiS(YP_`9NT#zs#$|EjN)YWzZ z1yhtwJIr<hZBZ4s4|LPPHyE~<IzuE$zo(FRhtQ0fLo8A=EZrd%=;2PWK*xy%I@28; zCl=_D?&vtNK#y`q$B6~{LU(kW*qMEN%jL{IA+$m5cV0HICU(NjdoL&6lG_Njdovr{ zE)}WF;8fb>X4Ry^w95rv6tZ1zFMPXPMuujXJQ~>V0%eq3!{p7@$fDx0CFAl7N&@_k zDDA%O!o2+Ag0bWC1M+WDTHvUXlEQF7PB<qZ{ye1x76!)Vjth@3$qxr?|Eba-nW2J` zaJV2mE<pdZ(t?Tup<q$&xT2z9K>Guh1}X{UMDmJ5k>X%L|6i7dx^V2+a7oVC;_(6b zZ!Ikp(agyU=Z_no7qI<_OM?^##+MYA1jiN^1%mefc4?qUU|jCFarq_V#s<`1z8r|$ zqI{$_rzD{M38o>60!2BYaM8H2;{vw-giUo|3JY=ziwklJ?3ig9CMPFQ94-ir8=o^S z;QT*X9582Gu&|^!*8-aVGt+=0$Cd>1@{qm&|NBe}%Zwn>*pqR5fc}%F1r0-TBgNw* zxq)FqUWU8ziiWysEM3UkqYFlk%t*7jVVRl3hGk}C4jW|?!aFP@W7H_fvWAZyDMDr@ zSKd6>XzBXJq|R7SqDK+r?0<HnYkE9zuDK>g0&>Zzz*Sw<Fgtys5E#a7@Pr(=fRUPG z|7!?gVaj+1xGy9YYrRHVYROC|juzn$IrO>VUWJ11fWuQGcC?u3hT9GK&`$VUQnJ92 zem7h`R@{aHQzzGL>4$MHyW8$J*LH=<c6S>-23(?C`6Ro%Ypshu^8u<<*RDQ%Im!r} zKp&OcmB1`?;<ytuEr`Fx-381VC(b2){{ZGqC(cFR{{VB;iF4?q`1Qgn_xW<A+sYRg zeGy=$I<t^k``zFt<2yF8Uq==C4kiLm#bv?*L}E6X&AO!1II@`Aoq|heID#m2=GJ z4)Bv}Z};L+z~!7k-|67b1m-#?&Lw`o0p<}W&JjP-w-K0~PMnLr{{Vw7fL(j(rQjhr zWjS#!`X&Q&l@sTP9|bSP={6_MMc<!*dC`e;=%e(00L=GJoQpnssL@|8!MB%Qs?XQ~ z*C=)3T=dlebAuD-h#%GG-vaZD6X&AuO<+E9;%t9wgev?Q6m3#s=$f3{?#0xNda0AP zIl^JgIPNaOjlk#quXhoi6|F6gR?Uz8-?tK`uP7%U4kjhxTe5J&TQ*S2`{MA?1$`?M zJ8)oYQQrEFw~q`AZ`(^)d``0a@D}<=Vg`L~F^jfvD8qM-$7bQP?0pLGfyl;t0gH%l zRbtz<5QaQ_m^#>8aBSI+cywkgx;k9372Ckw%7aWWcGoSWx4^rjZFd;Et`=l(sh{S5 zu2W-c0&rn(>w!y5F?R3j)SOaCk9)!u+r!@V2hIpKH%*{#;EKy0IS9TJpWu|&UVLzw zqIA<Wz#Q-fp7)sFjpqblUn_i)-Acr56p!{@hyR81B>a~oHveC8Y;do1KIy2zQ6mvM zk>13<IXIt+!^{7TKaG8#;(Q7YA8*>6#<HJrrVap&8PkV;?DN5gN63&R!8d??^i`~Z z?4zx-`1`6^k=P4sAi`Hw!?7mH*AXAnHWSRjKp`h1i^MIE6}4rc`0u>Hs(d>+@o z{CWz)mrv)!HpG5HO`M6N7RTb-vR{b~rLU<jj=djgj$q#he2o>Gi1Ef;Zv@*W;}fW{ z5Af~oi|}#KnFqFG--`_FYJ=}*Tia@-;d-%oP2UWiLmwc{Kqbx!^3F}eTMq1v6WM|h zw;OQy40;MnJ%ISCc5n6t#22r_VUhY5=gqF26_MY(UXJfwe}$ZS5zo{RaqMJfM#KNy zUJCpHfd#SElv&u;I1<Yd8TBuSt&FOa8MTu$>W>Jb%uCA~aX4@EqE!FQcN3VhiyChh zZP_s-uX%o=xz#ac6}A|850-;%J=5{!**W-xHf?c0`x1yuLYB^?Z*%uxyQTC|RS^L6 zOzdg6&A;L(NAax{I~MnA?m3D2Lhcz%=7$jM`x8#Qby;BeVJ-9}B4g(ihu-Hu@UK{d zAo?_|ZLh`+yn{o!C+N?6_wa_KXotr22?x3z-Vh+4??A`pA20FZqwlc|Xv&8NQ9VU; z>7xRMKktyuZbSaz4QbKdu7;!c29_U=p5+#{tpPhLi{x`DHFOEKy^@!WtiI_P^fI)W z&=6SOM7;^V`cHX|QyT3rgx*o?Ru>MIl~MFI9r%pp0`CaZz|?5zKwoV6u7GbD%UW<2 z6^}By7t4;}+=G36kapo42A>F}PwWWU6PAoVXCgvBfKOCk{uokaM|=zlA4M82J_bd1 z4yGfN_{fRyQOT#X%#+-~NWLoZko|Lpqf8opDK&yAe8fD5Wdr;AjJ{F4*t196#+WRc z2?{JtJ%o=sGQlDg4JD>?)1QGr_2Dd2uMbic2jSycC!<N{1{|hy(@UC2FEmk{5qEN? z{^Q4+bZ=(7IJxP+7(t{Tqnsm8DA!bsg^zMa<O%704~Oa8bmt)Ozs(cUx!Y8VUpKvB z*6YDP;gfFi9ZIMb@Uv~KzKo#U7d}c$5z7V^CmO|j@OkBpiPop}OeUpH;Hm6|kL(L3 zp?Lm+Uvh3XN+Cyz=`&yNppK$;cgXB&*qQCw5KPkVMNyc}&Bo<~;UUnjS5K?pQSA_V zNoV&H=$&clg@@xzzwPN2c|tl*J%Qd?&_eM=?M1#D$akZZ%0t;`FHeLG(w}w$8#U5~ zyMD?Ckt4b#p`UcCk42bBJ>7LuKcJ4dQ%Y2BD=R`b>7~^R(}{3h_hJNkjrv*Gv6kP` zF{07)X4fp4_5b5{kZv>MWBuBfdN2dSJ6F`{Q*S)F^1-F?U*4c3cs+z9_hQ51ui`QE z{*~85T{=zoSAUR&nm`)uwon;>*-d909ScADA|BI`F_eu|kYDaT19@(a6BG|}UL%dV zFt~wyriyDyE|n5gBZ(=DlT443{31@G8o#NB-l!udzQRPlztIU!d|`=v+vo%*zMhmG zDH=WkSE(NHofWS^l1xaB;@})3Nfs{n%abHYB+0N0_^8~Jg!DYANl4F&nuLb*4>ZY0 zT)k>Z?EfR6sx02og~xbwS@A)9fsed!Uy2|8`l$Z?b|-|WcaO)HbSqS>WTcWDW3+d4 zlOa{M-b{b7GrD8OVrf&d7^A(TOZ7<EI(GSkxr$XRS&Y$aQLPdGouN8b)4zPVVwvBq zWQ=Bu23lon&Xs>0u2?kjCC3=eR#!;Xd(OR{`Qeyi@pdT)XN+cx)_0Vx2hN<|PqF?f zZ81i(mCCF>bjFc2|Di&~^2knyF`6w}Z&0@03{9J&Sc4>sF`6yv4b=bpUTEE)uUG|= z#Td;NO#_uJUr`aJ7-lKYlPtz)wt6y4#2nK`Ee~&(EXHWI=zdb!O8rZ;PTBgKWHCmw z)yrbRW4s@liO&I;G5k=n7^B(Z390p;h3l7$#$VY@)=|k4lU95C;*#>ndt77DO{1<; ztX{G!6{Ttae*_O1maX@%&i%b&(as~}#IRzwbt<G@%hoqX_wQD$$&$qwEnR$fZrQr1 zYjl@lEtD+AXnDvfvcA`my|m|G#rl<GiB#Lu#dr9Yt)j?xH!Ie2k|kCF?CIjw0L#|x zcg`<UtoI~KtQgpB@ydZ^YtG>(*DKax$r7szc3Wv$9!~h-)E5-1mmGK)qvhd1W{Lg; z|I~ZyiEWBCO0pQE<>493GTZXhxgXhLI9ak7quDxBv$g;1nRh8$3nhy&nyqwZi57$h zKVQ81q+<O_vKXV;8l>4edT3p5#d=<{7^D3^;w)xSpG>ax%JNBu9D^|~Nfu%BH?app zqW&N8py%or6zeC+B8+Hir<zTVC1>FZ@2K+o&HNT)X<b8A>5|&25?;-$w*n{PrPBFg ziL<IQj5j6lDy8jJ(&N9~deX16PEaqOmPMmw75o~duv(87y36Xy=g+P(T!X}Hkb-8> z%i0>%FkiuRWeTP8G5PTj@+rG3M3_IG5{WP$?Vni7u=L|$gr4EY#qdgd`tdPB&xn)I zb9{`@lX(()j*k&~MxKP8<6~@v<yIj?)=&n!h1xUME!>{5ZsGPsxP=S8NPt_o;E&== za0?gw_QM7L!V~b@4;TEb6Y$#)7yQvD;I|(x_`^gCXg>qm2gny&B7wr3oN+mLkt9I3 zjAKS~Bh=ndxG*;q3Fqd7@&ZwW)2*cWqC&yE^4V26<#>xf`GS$7v(jwtMDHjJ&lr87 zfYUn)o%tPwW$232(dm+Ndq?4QIdv5XoZERvVUGjX-a86W^!GQ5KA&#@-QE>=7iMk) zrb-U$1aI$Mfh7`S#;?6+zfHj1EwS|D_O1X;aGpirTTUETY}10cg*^z&k4~K9StCt< zdn11b%i)gT?Zqz-n9H0v$FoM7oG*|VGd3sl4Dlv_L;r_ohzp_%%WMAcj}Q%dhM0n< zJNF_!`zQe$=;n)V5q<plCM{ShciRgT#=a?x9Sy~HV*^mo8hSJb&!mShw7og)27G03 zIzMxqNzX-ibM;z0B#K^*U0kD8;n;7}mqKfJ#mCX9=3c3^zv}pK?5XtIIOJgTQu&-o zJ}TJ@F&Hh;0i-gckhZ6erVlBMZ4SoX;jI9%uHTk=AZ0DBWgO_RmX<xlMv7R<$Fqqj zt>^18ydID<ark(THJU;B46%QJ-|*LUKGbPv#})_;S_LqjxU-~E7CyS87x!|!Bw5+j zNdEtr`xf}9inIOQ>;el!HfT@;szGBLUDQAj!KJc??7{{DL_tMS34{btZY3Lpirhjh z+hZ*HX{)Wa)>><=RjaMyr8XhRRV9G;ON+KuFj}$t38Iq!^UTb-?pcz4e*OBNU-o3q z%=5nQ+|JB9_bC|s9!l-hqGVB%c<O}GMom;wlK->#8OBS7?CVggr7=R}42PtnWXYF2 z`LP<ti?7uGu`g^v3JTnrC`of?L5utUWMu533yyr8Ia<Y72mFi~tDa-RJ4R=YR#_ua zOnYexlr~Fkn8q5vib@AH#>KIqbCe5Zb#>_WRE4c^mCNG4orD`86uMmf7Z`_b&*EtH zoqsxIG>%?1sOBmvfpN%US+@F^i=H@wqgM^821O+>4q0-P$><;b>bD=G<}#>$p{NAL zAxn-jF|}9`E`FxZBNkP&qEe$wwhC8{G8wX#zH<0_i;8p5G-{N|R$a<bCRUg<^X}jM zu+h`-`M#2lVnj2?SA>R3ZQC>V=`Ea9hn<#Ov#K`fu}{GrR_udJzt||kcE>T?<7X)J zb`KM+v~X`fsagyv^!AmCRW@HqTXIy|EWS!18I5I@WpOMvoj56Ge5s>G7@w-tJbIix zY^Yk{D0PSqwT&S|hg#Z3uFy7qj?!MFlHW_)_!ODpFj=&XTz;1}lTF*W1GonjmaM(B zjUT{$12AJ*Dq#rs!m%(-17^O$W#d-|+%>>_;O6Jj4p>p6hH#i{+5zr?@f9d6*?MU& z{IJgNB)^HkUFPOz`+OKEhHq&GzgWzEY&vm$@H388<~z;*g;p|qDGKPnO)FtjMy<rL ztf@>t#5F0eSsICRO%qg*x_qrM)-`jnlUUN?RyF#S>s$1fanZF4pKLD>T87KH<w69C zV<ti0C3tc)8A0?^svN<eSC~g#rmt9<rRg6t8t<!Ubb(^kb}j?nl>u)Xltn8F$MqK& z+LsVoXhB`<;hTpwT~L2wa$y&zY6?ZrO3gsZOKNaA&6IAqq^7Gce~7&Hh2M%{<X{#H zoV2k4k%MVos|@(n8iplMt`(3rQpy3u6vmCHcFbOCDIQ|S{@kjos~0b@9RGdym8>^H zY5up*o$+I~=IM^6jWEKjn(ln?pEqP`ENp!{;v+Q#COP>$aqiXo{%2YZ=f%ju=liyJ z%DFS?QlVTd&1a5sk+XZ$d<H8QhDXke87|Cxr!FM*6H!&d?|Y?HpIS2l%N3uF^b?-N zZBhM1QL&I<7R**DTlxthoIA5L4Gdli(~*9%<VXF#Z&AIbsIuuNM!afkS5KF@LV`nz ziaLyQOjT$>eim|?uA5&(@sa6{GmTW!NlcD!GTu6+)fgkIW2ZXw8k@7wY@nBv@*s-2 zRpas9IG}cSw-#h$<Dmz6`l=DKYyvGU$}ZPrZYVSf?2Q>;K02w5j-|{xz^&34;4!iC ziKW~#R2s8Y4sP_>!$u6T4Ym|?r2h;nG1MiFwgiR#GY8qi45IPUe||5$tY;Se=Q#@@ zY+m{gKd;MGp)lZHdJS<iJ#dKYzjbBuysB9>bN?3_aM2RA$mf5y8fQw<<ox-?F_~2~ zD>v&H91BAV`q5ZRAUGC9BP&vNAMr($&z-q=#^Pl-7bI0)HEYb=c{m^<oBJizb7#*< z)nb(J+@b%{PNu<w2di?<a@$puTTa<>l9$G-+y-6cC)+6D02j`y+};5h4*-``H5*C1 zM*sL7S(m@y1ty#R%qwB8QvBHD3Y<&dW!1h;VaSW7GkR=2a9?MIK2G7lAn?~$WQDFO zRJ^2qSZQ~?#IPBaRJrE9VRvd)QeWMQAY)y1tgQafk<?@=e^Ep2<AUoX))8+@9iy~W zt$kOy-jvjJQUROXvJnee+snd<)@1sESn9Z>{)(x>QcM}NSAGgodliDG;FbL+41c*U z9As`AMmDbe7Nm_$G;=xNV;bRHmfHXDs1XCp;&{o3ozpUPCriT_0Spa`np2;Vm4ML% z@XW)2IdXEMpplh<bA67~?qpKn-uj=Pz0{%_rl<tQF>lK}2>6+lG&S*(ZI-sco&*gs zIlk}UiRxu620SjAyI>41225hg6LpJiK*PgR4oi3vs-|@~?kgNKz9OEC8968i6V5(& z_`f!DaqdvH?~-*=Sky^xA;yN{=v60Kmp(C~Fj?BtweD};V|OK$=6vL4nmGz%)=8=A zrK!UC3#6;OBL2UC>8>jDY`7I5I1ZSbI>40!_Y+{=bK`7kD`oRb`B-82PLr)J{2aJ0 zEG;mMj@MWMi`uCQLmW*uerE$0?F7F|JISvaxbJkpkBYN#fsY8>QNs5N@OsG2&sF#5 zf&O`gvG{eoJ8KQVUuR~8ebd2Tzv`Fc6dl+7-?rECVp~n>46~MR<>W{Iq%I~wGAi|C z`(AgY&W?UDerlMcWAWyUi@B?Zn{z~W2Ag>(en3)>^`+&1AfMAV);LFTnf|$^A27x_ zQl<8&SD=C0ohmkE@21Fs<$6T{-TQJcP`SP{u5adUAu;5kweN1rDM2fEIfgl~O#>Tt zQiT<0Rg0&$oM)y(Y;v;xg96$1riR%i%EUg^lqh1GkJ#o>bWgUQXeg&4l_7+-mO_)O z-*$s6D+I%^L6yTE(#A?a4VbtZSyo?$p&BQtq>WT^u*BUoFEL2)pC6p0k~UH?gt$RC z-~0YyR&j=57P|*%&Jb>k7S^U}s}|2)lsc15{C~K8XF9RU?sC)CkEG2$R>S%=;Ag53 z^QS}i&d$WJ4hi@fcVd3_+UDP7Vr09_oFt}U$vc>Aqm70#Xsj_7uJEI=x&~)S2h}y; zOG3GD4RelIX?%`yp)5JZGDNws%6Ga@rgSl=7z?M~BFABv>oh!%*BVi|Ogf7D8=ZO! z@z$Ia&uX@)mMSWN@fe3;6GY?Gk#3ca#%koO^F$o;v2-M4f-q_v#@2Ysc_O<kYxL$h zMI|tf`7h$Fc%5+DsH-fhHbo^cj(Ew{$ozh2c(%5+%DTHM0BSX|EnXbSwPf90|N0Xa z)i)KDz&Lb2jtyILi057Sz+_AJ8?C5_$?;u{H>hyQ8MV_ZCadFKCgO-kvB-`}A6&;k z_nuzH?^7vzhFb*=LFHtw%NfHlxVhS<JbG}q26DVStx=$iAXtQ%UfyIzD7`67UvFX+ z7l*EEL|^(D!$?{zp-n2AG<KX8v#PaGBUrB~t#`ONBqRosIvPPLDJfA}GPT}3q4hT5 zi)MpE<E8c9;?icbX}u4)a9%y}cE}is`XZ`oCI0goLAnC&Rq$+5I94%UJ$8QTe^wY+ zg~_H>z6;zxZT!5nRDMc%sH+NDU%{B#tnKrmJ3qzIz)W=GY!v}<Y&_=yv(}CC;CDAL z54v$Ke$*<T1LjRP&V%1!V7julhB4#e!LJY)OrSV%9{er@=1MotgWqysZcsSZ3)%AH zhrrzJ;@8m#;n&rUYkAo1|Auzlur0jyzY#f8J%g%<DXY_ydRa&>t^D@9RNcZ<&u`bJ z=FSW^Yy=QvB&+Z*{CJsITNLBw@+8#5eQ@;YTQ~gX{`=23xL-fq+@7OvY2J5o;Lz%8 zE6GJaSa)2qQNInaIA+UU5d>{#*T2`aAx6@J(DcIbL&6!uE|ZdtljmS&4cMgqyx}@R zFP#dluuEV|x^${udbzM~PM2QpzqZ(4JJf$|%wJpXuN?`Q402uf<|AGGkKO|QavBb+ zkf5J3ib9hd4-d9{LEmyb*;WL7|Ai-uXVCX+JlPV+nM5k_pcMr+S+a@S<%?G@6H%)> zBe}Yn5!(W#m>LVWKNlqNR(KT#A@F|?T}334dO60NN}iK1^_!9{{02EJ67-G5lg(UE z>}#azicz6nIlf*)daySkmKO0pjZ{%t4M<xEHnmWxOAhvaQZ2D4=qquQCT)zQr05Ns zF<}L(C+}~-9s3-qKBsVn#jKDBjX~w)D*3Yxl2k-}il1SmzccKo!c*@1w1>utv0@<k zlIIbFDgJx$J>BF>AbHbd<15pHJXymV#*6RS@C^7)#1`@H{Fq^wMNDVPU_IsYT_K+G z!PIbf6R1=M{=<qr<H^*xchtbUrLvu=*fSoCQSq0*-;t@1qeX+VM8gk=#!|=&r2`}w z7-Im?qME2MmdmURmuoUyevsjEm%|0qsYA|HE)2U+;|&K9W2YL=@7mgwacX?pc1ua# zp!f)kL)~SyZ>gYv7~K0|i|S=XB`^+kS9Td>iGYeZ?w21~RG%m+fpN%U*|KDfdan*c zZlX4V`>|}GU<Ae?t2<n+?SVbk9X@1H@l*pEfpN$Z-2rn;(Pd};>SK$lLQ!SwGO%7@ zitjn*lwyl&p`z-j%W&MDtA1-y-KeNozc{C)WtYK_b?F;px?5B{%Y&w)F2e`WgStg! ztmjr;2Af8}MnHBM$awv8k7KE^k@9UymcTgDP=w7)!xP>;^#zM6BtIC@(8#)?P`NPN zIbz2)dJYrn=8c)VRP-TueEnn|U!Ryi6GtyrFL1i5!yf54sV+5d?t<#+Q?O5_mIwRW z9S!QKm(q2#I0Qc%%WD=Wz`uTUI(t2tA-450JUr!My<#rb%TAls+qO(FJGEFR=;du& zDCp%aw8%oSQqap=QV%_P$g_IeI#*_@7}@ESVuqi`$&AB?|4Z}mLxvZZ$a#Bf?qDRU ztHCUUFkZc=&deR$0NT#X9V`GY55<3l`~;vPp$+gjnXwk`>wx(};rOX|;eHGEFdDO` z*`UE><F^!kn}IoBeZ(ft_RW)?HFVPW(CGk^tru`PaB~!v!OYexyS|hBehl2b9q?lf zv#FE(aA1dTZwLI?dK~E_KlaFuWzz;@#@97>z*@UlVFVD5&deLH0&euz*p;!UX7ShV z8~y9+8&jw4V<b6h-9PK<#mYP}_p2rh%+u1S2}*rm$vw(|eVtgCcn&6_xiC@d+IEJJ zi!pgI9#8opjM2AOgxd17C-|+fk0v{4o}=`ZaE@29`Li$YBynHuV)TBn^MeZ{ljcHC z5s-OitoyNVQz^EGl=Ivsblk9f^JT1wOmd4!*YM+|bJAUt4eiR>4KwGfAPwr3pND2) zX1%L^!2n&uT*GInfR;X9Fr<4<+Ruf^=*5Xyh7@~o%jGPCc4f;T_{h|AOf$?>^ZDqW zqQ7_eNL`PT-TFq^^Gi1Dt{ag#4Pnjfw<dXvSA8pmHtbGrY39s+GMw0+OefJnR&0zZ zi8x@z_@TenC*<ps>f!4%tGlnyP}nc*y%!!n)=h@->QD5AXZ9%r)_{ib>PeggPf+t@ z9@m*utYZz+2Nw5aL!of9Po%JRGz?Q!Qb-$Xh%<y6zOgfnyBq#}Ym3;DIE}q`!g?p* zXAD_`KmYdd2c*r8VN($BGyPb8a?^KJWMWw51^mn*@|m7r_Gl)C)mXsKv?1n(h6h(k z8(u_jg8zL!qnE=RrjgSQw0)Bgn9QD#)mti;5cE|Fkm_6zIz+iJgrWyCTsa7tP8X(z zvrl97Gf1`Zf{|BQ1LT(~MjiDtuJ~tiutk+pR4fNheO&f4ST<=mgl}oPH%iA2`x&)A z{L3j8)vp!R(fS#La5<`_#kVM`j`|ttM`k>0QT<s_<>J3HUZM|SUS{Z=-Z`YG1jeEJ zvl6xXYNvhw4=b(donu&lU<AfvYJy>)8DEgNMV4B=4OCR@XXN-2c%z<-NeHewReSrz zsQ;J?&0Db)q5@7HC~ek~84Ie!^;`Iu<pzBF%!HepO&8_dhfR)cI>R6`<Yf|>J~q8q z@iRh{No4vcA}rvwg;}cS4mUOPFd;Tt8(T4Y+{E%2@S{ek8q3(XGh&F^^((btbJoG( zYMo?0^qj#XEPc7JuNfzq--Lockr@Qzr7v?Kvcq_+wYdR+4_r8}S%=Gk<Gzy@S*gLW zNO<YNSb-&G6GkXqE*owUaHYUJ+6mkrfjLv@a!2ELE-=691nzgh3}od4la1fg@WY8U zzW3ZXm!8fq=3|8+KbmZM`d7epXY~ccB=^$O$?sbVLmW*uekH(->VRJ!=&$G`zxlu| z>jb|ab&}t&fP1tP{C0Jc-`l`_*a?0;*&x_Vw)E={+_w}qTYj)rNpzCmrNC9Y`MLTf zta<A*_;tLdX(i~iuhB1=KmTiYOC0N&UKd-ych~i59If_MVO9g@M`QM3_&%n+z7;bm z0~(X?jq^CwSYNDC<(is3*s+a;Mfz5~S@cJ!6i;tC9VGqmb1qxzoRt2S6fTABv=HlL z>@xjT_AEXJb(XDSh*!*t*GWoZ49jx!#IoFS9CD03V~E)<eXEEUqi1%qFco8u-v5r| z(0@$we=g4GpJ5U7zmVGY-fTh1hwMS7&v2Yy;M^#8Pz$k9U|+cSDK;jlN^5O)5!Ytd zbpeOAaV#q%RX46&$I-!A*J%Hs6>I=^uF)=nOL@9$IPsR471VL|y4ts>w(Kn<6@Hn^ zv)RZRravsQn<Q<lA5Rr-?v-O~!VNP37D**-q~a&&-H~HsZ5TQIMJ+(uNO?AX9aGAV zA}OVflyVx%tMh1=d9vV7N@*iyRJe6SSs+lPlr~ao!p(nv$ag;G?8BH&3}edDI4GG7 zzhPJ*$yAayQjZmG^XulN=AJo!MlJSw{5#jbQ$2GUdk2$^R>04Er5Y1|`AZZu+Uyv{ zJ>X}Fq0bw`cmk#yLme#OXNuFO|3~lsH50>6!NR<H(sInqx%p5JvM}C!n1&YS%^r6r zGWoE54EUK7lyLo-Gj~cGUPR|p{x>?jefbJwb!NXQ9YklAU2mwG$|dA8sAeb^tDAhC za^ZQRlIq9Gr8`_ir`R=#hi<az!n|-!^fASpE{wa=g(>fJVH!HS(xMY8CUf8=R^C}1 z)!)$xMs-weOHM>5)SLoZ|516!qIzBuiL(}*T~4Z>vhzrYbCusdMI|tfE~o6MN_Q;B ze>a_Db#IR-D%DZ7sn4>bny38Pm9{#n$N8nR>Zsb{#ZIWzy<LA(#RC@Aa786Bj;TmW zu~yzuRtN(m(iq$E1jZ3BF`aIuA!J!pYm_WG<!;}xDu%1XNs8o8S=J!NuN0LW(z2hV z$YC32yez66ib`M{@uGU_jF)wGAa5z45g13j#9*8wUKZ7HvgnHg1e|5#c<_=Zm6Gd~ z53YF!i!o@0Iag5$j6>E5@U`N#ujSI!7S+XyN?;tr5&WhDe&#;Skb<!%a_B)C9#%y| zOpfozcvFK7n6gaGojyTS%BI@{Y>O4!@vuE_`h*G7<G81L_JZl93l}cN70*~EDV9{y z6S$-Jf^_t}YFs{@g)-9<g973>vf1E0f4+HWiEG5d5oqV=gVW17W`W=^UM>RVXhE|_ z+M+xP#>ps40y#Nl136iFrlymTH^j+?!ZH)y$tMd&G0K)n=D3bm7OD{*TsxT5;^W6^ z<6}Y}z!;BI2+T2_a|g>Y8`l_5mfPwEpHr;%gmO-_yI5J;3+)OOEgG*ep5^Kzmk2yP z#(37l`4$(>YmBD^IIab_M15c+@fzbHZU!*Ms#X(ctK0z*D?)y%c=4SkTVMQM;2u#} zHl<!;BWylfJIU`=;Qr?3=jw~I!9q*rFrAqrtOv!{*;|T@r8V>aH};m+e^69{T{7EJ z1szW(an`7)Wgvo1jUV0YuS4v|*5cr3nQ$x(hLI`&RZeMRj>%><8--L0NFi;ckc|kp zmY&HqBr{U~;dN?^A<OuozkPROrm`v(>`V*@Ol8$lP1)4Z$hjEKvlL4QD40qWG+oHq zsS2{WwN{Gl8u4t{Qnb!ed<4eP1WVQ3P|tV>nMGBms07BLT1aJ{`9VWjmI7HN9Xs4y z;ymzdjiMq?s1~-bQ7ZflA<d*wjp$sckJopXaFZ*=a(tWcrkZ=P|6z<QAj)a#;K6cR zgmQMZwRQ@tk>I?6!^di4=#{}!HVs)MnuGrn$Bj>FV<%R`SdK@HkOf)oI2c@P4Caf5 z!5sU~(k=`;_gvcvp#w#`@Emm9t5nK(wF@H+%}imkwF^^RxNPmh-&{Dac7eHg0t=GO zc;WWIzW_MiWJ<%F_QEy8y&H<*Ru)AV6K5+qbT7j1O<;nmu=2Z!`EVwdYaehL?t_5& zgTk5oTsWS0whfp+vR4JesC$KP6mTB_bCxQ&tRn=@)ecet9}Y~p4VSGQycn373db73 zs~s$a`zm1WapP>=BtS$Ryb+ie+&GW$eLxJWU>H-b2fvemIm3-}@nemj1ZJum=fRIR zwytsGJow!O%)@S+2S47}`nntE;>YykjjaPz|Ke!zJr9^MZk&rB<BJnOeJMB2BYZal z^HVp@#gFCXX@!ARm~7>x6}UG$;Kz>A;ZE{97WK+W>_5Yp>Ea3>`HfT<0mLI)_@)5I zn_FqJ@nd{fbdulA!2Q(C&s85VKc3FuR}n*Hd(^XYR)eneYs|6CoVjr6*Pms<)QLYj zI&@tiJvu~N-U`_AbS)SiolD1DVa=y2wkrFRY3zW;*s)<T&&IPBPZj7nnBc(3ce(zt z7LA3j3u@_DNY8;iZw2jn`sg5Da)n2(e90F+`T7Vgx-_)BE1r2P3N<~X9~;>jc_rQ$ z?7a`k<qI5&Udymv8;V}bkY1ao=_`WKYjc-(iC&w(;xv7HP`@~sLBg0^n@a@#BN~_` z;#>(9R$*69085+1SU6^eu*7N}#Bgjo==+&zvzEwN(JV&v%Jc&XT?>^pmW6QMN}2we zrXR0GTbK9IbS*F1y7HK~9!^BJF7FbLZe7touJ=kdmgdFvZroB+luTponBG&wOCO(G z-Z(y2L*S#kmiN(1^FiG!u8$4Iqs=65T5%HJK%b8|3i@)=$MuOp!9hhztrjyP#j*Wj zL<$OyufU9ywBfbW2F;VtFM3!U=<^FLo1eH}42y733R{6>Sukcm#8N!5nhxECRN+)j z->+fb>u_BESnrD11*5O7=pB!2jYpayt&y!F5`K{}6?(7e=gWi9*RJaq*SE#>W_?#Y z@_anf5_v_7ydZ$5t64y?!3o@B%*!O__7K@o2o6W?gT6VYEjAfJS^dFnaB%Kyno|>A zD3pyP?yF5>+70hpnKen|?<e7vNMk(XSb>LibRkSX?!OofFM2_E(en3~;U)aImQ&M! zD@a%2rKWy_FMQ(?*ve5dlIh<UuBXiO(}nBsKm4byC76b}r*IWsc+uw4ax6MrguQ7u zz6zHz{bCf4kK>5U<#EJqY8+QWPC?<Uh~qH`5iNpOVKV(dVH4m$6fn%gYt|?9P&~RL zp;rX8aQSQD$G0Y;&nLo@_9vn*h9ArCod}n|lZd_om&2>x39LHouRAjyeIC&L@#qT( zMu8Td^l?1;3QxO+>)}Ln55iRl{OfUKD-MLDl=dbtE~{?}Y0(#!H}cNPWE9g$Vxgi8 z(ef$r=s#9YibvmDJ}wdcVrAl!@Is_uxOY!P8^K*#uFJS5b(tVMnVShzj(Fkd>~fsr zZR{9Zy@|P{T{*2KoEMiDwpNtkL~eOlM7VdnaH=Q^m>9c<h^gV;fwtT5F{36!HP!Yz z7SI~}f?@_}uCP6bj5$Tvo`;Q1LD2UKY#j73*MfQ!VZE8<_H`VbdAo*_Gq;v}Sh8Jj ziEO{UWMgDw&#ju?WZIgQO$1JRf^`Xsd7@$4ihg2cC+dQDcoImqX?xz?^VdD^?RmGY z7v2uOrtLYh=Zih<dyX``u`<}uzGA7?n0pfHzH>EHACbTpqZ@<W0-p!A++P1qx5lB^ zb$EO8kwE=BfyR+Jdh_krhZxzo>yZ9x+n~T-8iPHxz^j24LgU1?+^#9`fE<Rl`3s3Y z6pwyVhYIH4b;n1K)LkF_^U5{)KNwh4M%(s$#gP4@?IR6=3qQ7P&)?--Go~NSX-wOP zHxW_gWE<}0>=*R)^dIL7?#(HNgZL1s@(sj~?J`cs6;Js%760VKm$ZfO{!QUF@LN56 z-}<zd@01tAzHe;G^W~*_`$DrgoNaNSejw>M)F5pIut^S-^E`fr@sc$Np4gFxttz1@ zeMQI&3Wh{dF!a*K_FhsDH5Y})FkZa5u2JsxvxkIz28nh`kbKGWmmTmOZt|scBQ>+} zm1#kqf9!zo`HC+(8c25^(%px2_aWVV|5CbB&i)Q$#s3F!AW!=V(OzjjPVklMld&!t z>xBDY>b1|1-h1KUV}H;vtRiH|lQ!l?g>dut>*4E%{h$3XVcQQAw*A1N-;m??!qdl| zm|^4;G1Fbz$l+rAFhPA34(uBmrT`Wh25BP)PO^eSmKD~`@HLE_5Tbl(BlS%D0zRzb zUdbN<%Z6#yzi;jGdLuCAe|ujzz|i<PVny@bho_*h8VSg7({RKJV>Gs&F@3Cq%UYf} z<rRyHF{R<CmXnGtdBD#cW^eoYk8eI~QL$#C;S{Wssw-Rr{$@N$6+Q7wR4{(nX!u3a z$d$_WQ6xEHRRljH76K?9=P9eeIO4_p3HX`+l(nYx)a6o^J?`BFhNYbGN&b8^h!`F_ zhJytGKT9Hg9^1|DfHs;k`47(mAqAV>l}mTiWwrx@;iU<aM;lHC6@n&A4^S}|armxy za;)8OVH+)tLG^3HLCC_G<IthXh4FHZFv@9THp71W)`ySdj%$T(R{sUYF~Z2Y*qY=^ z-*)T07S&sdN?;r#jOc=cs*q3owAg*8SyYD<mB2V;iF(1Dyu9<g@BGf9>cc?8$hyNm zDa-Dlb<N_<{nzZZsD>yifpN%U%VNdr^|`P9%Azu^#S|Dvyu^1eCV&~Q@3ek1WKqpi zvSi(0p8yt9!e+d>T>Vh7MU_@m0^^W%oCu)|16Cg{-gvS_b+4il7)QLAzgE0@yf}Tk zMb)CH1jZptP8%EfRq&@JuUb@l6_woQVUL#>%{SvU^pS7%wy3^RRC2`Mo?j;%C0@q8 z$O7Yt7c~znUVl9Jw{4azV~Sc}9Pz^3vML*}_-+V~dC!`9pTbH3MqnJW#F8L0UhUtx zd7VXNoN6jC4p~$_<(_DAz3A~>8+(}F*GeTzU>vfjM_KWz9{1zJ7S+v)N?;tas6sns zS<4shQB(rski}ZrlJ)UVQ{@)b9~G6rIAn>o*3U9S!~GuCvW%A$m28jgWupLCOV+Q) z=00XowJ9or0S-o1dBW;Ef_or6%_SF+FHgkUIYsU}R#6d?;~Rmu(W4hGojzgV66{l6 zC|}COre*a~x^ThVD$}d9Zl-+W=nn1`#DXtQ33Czx^Yih!OK3CpJ#)T*-0g1h>Z*nF zar98NuS&35R6XNrDOIu-S1JCFwmD}=wdOQ3y=)tWGd;yXWue$6oarek&k;A7sQuk$ zJe9;Oo|1Cd(I~TcO3HJOMw!J^QVu^FWfo6KIpS!PSv=K*ktkPY=}}4Ja#T=TQBXL$ zi-VsiG_sI5SlZn)2~e^#(QwS%xjlXQ()sga!;6I(Z2UjBMjGQkPOKhWJnS4XUnL*r ztW}mBD?@P9y4>Q;)eK9-j+F~y80l4YzSpePS~hTYlVvr-9WI>LtQG6SL1_AtZ2n*< z)@v5$TX4S+m}Q;7)dO?C8|NB*riS@@g@IKVF*@$TQHy#i1DAP|%WVkwX5g-5(+b17 zH|DE|*)?CfQ@{E?8&aF$Y6iQGO0Qk`{Sdg>Y(8OFPkN=xsc^p*n4c<Kw)A5<-v`X5 z4sfjfUjXLA4sfR+KnH<2k&Pz|wNJ0`O@{k;V1BA_*}}(kz7Lp3JHWA-_@lzWDvXz0 z;+i^vI}^B;PT;7!9q0tE5;%^7S5iHI$(C;e;g<sDR)x!!F7G2EKLaMsjDcY~dByh~ zxF1v);%K~Ze+R$U3UClM6-1b9`SyMI9RTLLrwN$ot9kLe1KxK7b3TVkV6w$y3Oteu zBaz<WyB)YY@UfqBx<qB;_clC60aFl>xNPZ+MHIfFz>GRe;@FS$ipSr<?+3u7iY1Qa z#|wugHNKmH`Qc!RV}H^Mw-fG%f!Q`h;<CkK2fX(vj6{0#)4<@TB|hI@hDwwfKG&=t z<M)-q82qx$`gJ)6qaXOuke|T0_)%9p8<<iz&STbe1~Bv8I2S*DM>;S+apOGrJps(K zZk&rB<NH^IfmN7n@ofX{U<dpdzCObgBlRyEzteyltguH*ze%0sR|VX{4*0QO)CkNk z-8hf*YXN4b8|O+t#`i;DzH;L{`1L;*JMr+N$rfL>GYN$eKs>Ug-wfd9cfe1SmrnBg z32?vafFH}tvz_GkJaDgdz>o1g*hzlJ4aaCFel*$AkMaGs!U!N9+0t(UaF=$#kMX^x zll)c!r+0$iuRF=_cfkFz6a3!jB)`7`_fZG@s9zm3!bmy!KU?~p2;6B3n=L>3f<-AX z)7&_Z?_(J-4Q`yr_x1~59(Ch9`0WDbEjP}^kM;8x3S-1NTYSUkK{dgTCR==2UPdU4 z0OFC2p9b874)`&AR|B)sjq`}_oxuFsjdR7f0Q|N9^PU^$!LLgc?HhhH+2YIZ?QCF1 zxp5x+t^j7P8|Mli`F#(VAGvWJ{Qdw;vm58)$Ncz<!oVs_w)}VxxKBFZ$NcC$66GF0 z8tNt4_?-<*RN=CvAHR=Ff%%Rb=Mmo@0P_<!&J|y#-xI)WbK^Yty$8%EZk&rB!`J)U z*fxnDjTsLQeq(`|?8dqHF?`<vX0;pV!S83l{Kk!Q@ne2$1LiG-J6e9c2h1lO@MHbg z`+PiXCR_e~1Gv)_)=U>y_*nkNc9P#D;HGuJkKtR^Nq!B$-P8fU0pRx#Fgq0PXzBM7 zFmHE)Upp}UN67><)5RlyM*x#><6P;-@=^s%tsCdT?<QdGbmLt7m>*9mj0|D+@0Tlj zc6Nf_hn?j2-@y4}QmUCQ9^pG#VLA%mw}2~ASc4x%t^SRx|7zziT=>6oEH*c03@>TY z>JRyO&q+KSZ`#M`Vky<|77iCJ!7u0&r;Qb3i4@O$W)uYoD{s1Ou3v-KE?j3et%c)c z9t6Qmg05}?86%(kcP8!y^sy(r6hF)Go1p8_4UgbHI>PDuui~B5+28)J!f%A&|4JUe z+<y4^eFb>3+4B2hcybmLs{rvFEo>EdCWLJ&p8PcZzDhj%3)><*Ih5fSc|26uR^iDm zh~KvkPY#Iqee3b$5QX1&8=fZ#+g*4L6t?^D<N%Q0_b{FuTlM?4;@Ml+_TnkS2WPQ* z5o;J>li|yQO@<FgTdVLDz$U}T&An{X{63xnEV(R#t*3BX3Y+Az3O31Q9c(g|>tT~z ztm3@HSRa`x%oDdH)jwGT7*-?V)RB+tiu5&<-E&PLo++F!xP2cyeY#Fpe=?-&^zbKx z`uTc&F0A^Jpsq7A&F|(kzn6nE5w+$+A^nx+!=Y$vcv5S0*L8u$3)&MU+w_f*=JK>) zl&(j7AaVy*fW^}~0}!caI;8749t79sy`gmdRM>_1^rIZ^;`&%DmrXy#lrWddPH!nj z0I$L?=z9pytA&mGyy93gjB^9^-bsCH^E)|O^WGf64ScvMjGD}R6I`ZaVc^E3z6)SG ziaEHzhH9RmZ}kK+lUSHgNnMm|e4udslkM#r7L8FcNJjSB*LyZpBCpEzaX2<Ihif={ zh~p{u^FU;tGTCDTx$WoLr9}Ag3vy}_4ZFi@AHb^?e%#MBo;UssFJ*ceE~wg;+ErGM z1B_DJli@!#h5uBp9cgdY!hhNrZLWJ<#~SLb^>63Yor-feQnza(lELuWDl!@o3a`D4 zOzM~B`NC_j#S)$S{E*Dbc7G{65+%D4lmX@GTc@Jp)bv;|-B2lPzI4MZSlUM17fc-! z&Kn&I_iiAjt!Rt*?_1U0zNO)ExJVnR+E=2VA;@SePhV6SzNBeOA_+k_yuV>l7yL^% zRPdkqR*5%o#Pa|ObWM0=q5_05Eu80vMC|NGa^#ieg?l&lh5es+(F*<vpCY_bf?~g= zAr2N7K~Ow>YZ0vY7sEfK9E!&1zK~mtS6GL)4F?m10IygidwN5$l#$E}pWYZ#GGbWk zDhV3V2vJ@Ie3Fe=UkZ=mAQk0DUeVRajJ7Q$Wr4V&B@f)$qy$9;b{*0n=-Y(ncZ6F` zj?Y&oY<*x`CTwC+v%1yn_2d?~`+QG^@F+(hu!8(^Av4ZHhZ1NG`y|uDv7(%>whsm0 zmF?{mP*>rH<)$q4-S@*Twzka@jvM*GweUMi>K9;Hxz-mqR8+?GH8BJf2LM$j^_y8a zY3&!}sV~X^(YLI91`-xG){8*vS^-w2V{Q6~(Uqw@_vLLYn&D*Q_gS-+>8&Cv$%Z#l z$Hw(iEH(cD-Sy*yGwT5J3en+kpCbZ03D4QWR?<|K_LXs=zg7TYbvC{tf-O{VYXmfQ z(Z$+D+Qr%>SdhIJF7^*}ZDA8!aBvQmHCL4D`(x|o6&55)+EpmUc{=5VvGT^nbISAt zu6m0XCWZPE2;b7giz>uRP`(V;^aKNw3N<FW?w<s`B_3T{Sd7F=sqZZcw`BT`Le{ce zqx~v`b9r_v{`2UcZVBv2(B~pCZYg{iZXzx88-!iIqi_S9w7^cRWqumA`j%1pErq`q zZhxuYGOGUVrodNe39f&yDezJ}@;PJ(=wDI)E-xHe|4tL6lTBQIFD;29?`zFpc8$D- zW!Zz8+qy;$H-FSMj*IM?+q>!?)h{nB_91(R;#ZV9rg6Zu#?nCj-Y>bK0Di-LDXa!w zsjWt>(!MhMgY!{fwbftBm%-wt9l}<HZzz;L^5q1)tp0)(MED0m+CfbFAtsA{{Q;mp zi-r8Dfn1=@RoY3B5M^7&@QX4a^_8I`SSMb@PXjll02O{nUVc)R9+QV}q7W5m!^47S zd0|EDF+b2a(`YsM*C#{%4Q!p_=_l6Xy}W99VNpE&^IKr&D)>QLG;z^MBE2G{Z64Dv zr$$SU>8qu$#Ez2lu{6I+qTz3;V<|P3&^L+TZALZW=Xqc;o)cDCrcbD3d6`p=RqmBg zWEVjiKBJ4~z)=M4alDT}8A@F^L7#|)_%Ahlm>LWEp~<Q@;(8Olmg2HT?MO1v5=Pgc zCVcW*5P(JfK7X<?_EjlX+K1Lv<gBX*tg8st?IY!cz)r1xV|!hb%$!MO`jvT+ue9(( z?a8Wx$-pO&5S_sDgK?VI4w<NdzX%5&D4f-yEO4;?+4j0;V?#bGVX-e<g>#RgH!wl9 zgKvstIQY7e5KQ{m+RswMo!Q5vsj%{JmB<F>A>eJf8)hPEZCy5;fPY-A&rc(XGS5$i ztN2^R`wfLn{BNz<--}mmx^|^@#g$ix4uq^_S?J~0|19WbO~(^MWJNd&WlmNj{qR9v z3vAFAF>SnlO1jO5P2$$VCb_%}o2;v2m!KiO>HQ$XxB3A7l{JoRt!dc3@>tYf>D5%0 z@GlSlrne;Yym<O1DpL4IpM;(amSJl{Je|%Lu4w|xqg!e(W_6mE;N~8z|Hp=-STMTh zx{&_5B-En2S9Fi-yCpX*+HxJ<UX^mRXfyq`rdN|E*@NNYCs~!|>8mNd`3VZ|THiFP z`3VZ_+I*;MTKMRKh8}bw{qz=e!&ZN=9#&_Sxk|XaCQ6GgBBifpdk97F#`}>xdYVF_ zIvd|`<85$>>-8d*(R%LO4d2M*jO#i>5Rd9?w!@8!;Kn-fVbX5Bu4}rUTy#N!Jq&ap zUau$HXzL2RGe&wn$+=?*4iqBw)rg=@*Y_1JbT>3l-UojB!KZks6>Bk+z9O`wp)L3i zA0OZA4}EL7aG-{-3$Z2b>8FY$Nr8+Eh=-z19fT@i5Q(_==00$UZVfk1MgdDcgBzP@ z&M?1RKtW8&fvwo`Q;c`YAJo1r+MLS8TQS~-V)I3a{~>_y1yng=c!}Yq82{r*RCqB~ zEd~6f3X;+0@ER8L_52RuR?nm1lj-^x{}B<_%YyMpNL(QWJv<5bF^$3J5jmfBaGwUX z`EZWDk#|b9HU=+j-W!N)#g2>~8~OqeX^sb)aGp4M$~&ljGaS|lRZSo&4>ao=%hUD6 zkZvPSR<$MryUL>*!}U#IQ5I=U>YI}X-%o;sCww>W8<h;;Chz~EVu1t1bHX>=2Auv1 zH-exl-x)r672Xke83*ilYu|_sUj9ST|6<^mzbhl2ekukATk4r{`19$|Ul852C|LNw z(mFF<r3yTd43SV;X9+N>KV<z0$;SW6Lm4uhlJ$TdYOAV06bm=(5y2oW8Y29Q<8wrU zMYiwyJg_~wJ-qf2%H60%nxZ0Omv?QiXE~7psZaq*=E`^Z8c)Z9LWq17`O8eKAIYQ8 zQ63<O8C`(v6h#X~>V~GT+S}_z5e%(3UKXPILwPHD-p)-pX(5|RlPrU*K=~adp*x7L z)v7Sp!+BcE20VRjttCxuZ*pW&R+=ZnHW$C3?=L97DPj93Y_-DnJibpuNi8o7@m{my zr2Znln*#WoBQ%$>wm}QnhmJVO5I2+UL)|DU3xuC?8MV6e^!ft4^sHw`Gld;rvN`hT zfdVZ@Zzw7Tdgg<4IUaA{#V;s!-xLWOC#tK3Z7QC!!$|d3U(LFp9Gm;})hsQjGLls{ zu^)=<QAoMf{9MW#b5T}<;;P)^b!<G_x-y&^SKgRJ?u&bK>)tQZZ;pYeEGpFE>xPu+ zYgqh~jky;l8-rVujpO`f>F*O#vJFSt2jkFF_3p6cm8JcnNBSiE;3m7=&;1B5Gevk^ zI~s*Xt+5?A(ELSr-YWcg!yC(T4!-f(>JW-+PU@7^e{Bb=)n70=D|&9=U{$0A8?sKQ z>+=-#uC`v%Zv$V#6J8DcE)U2JRJH=Y4#67T7oM<h1J$+Yf$)R_4R3_kJ_cxc)lDHJ z#&{8>{7LAQt{5@m@d7y24UUH&Un45)KYf2RLZJn=MxU?iAAW4j7`#PW>hfyh0krcq z@w9-o&DDQE!srWiVXgjf!FAn}t2ZVAZHp%L@8!XV*DCa-h~vujAM}ModE@s8(DdEy zty{jwfY2lxe?-@`2uApEib#*nsY#!)?y_LJK*=71wNtEK9NEggiFF`pvhfKXh=w5$ zZ1ydAqxtQebU3c>Vk3)TgEaQPV&gDu@$}eGBG81*!ih+$@X6JGSOLm-V0Zcw=xR4k z;Y)f_{<2UURb*siTOffkh)Kc5e6(z@#r4*B<n=`0wPoERyR^uzwt%MZiAOia!{r+> z_!(P1J|5krqx+86@TBc%-(YQyN4Mc^8wOUQ*R$rj?zHC5L(v<VY0LZRLJP#GOHMn- zPh%@TO<ym%=L5t}UHt|91o4rz<67sB@{pD5(oD9hmbiY405XkV)W_y&jpN$WV+#Uf zL$dA|+ZW2F-pzUsX@Mr?m8Xx*Pme7OjLlUJ5Y~i^!Ind=1<p^_Z^>(Kfynd?*H_}B z$3KQ}|3Z{7l{?%AEi&dG2%H+0ky&Kyg1khVqPlCi*IL85qm4gjmLU_+Khx5|!ZQ8M zgnmI#!&pxO-8NLm^wdzRgfvw8$WslCYp$N7T#;MY0Iu(5zG~6!2>|moy@9zIF5gAE zzIYY+8J@HYnM9`n$dA@UbR)K;wxS&?Z`GK2lUgy}rA2QQnRASWmqhedX3urlZCx5H z)1O!U*RtrF;kEBE{p;J1yyNlfpNQ;;>yrm)*kF8h@OFJ`Jn~Y>b`8U2+iypr#!EJ$ z6mjQe&(g+VtocwN(A?I&F<1s0lK9)Qhg1)i`n4gwHdl*$5x@Gt8Ik|Sm5(n#!ACiI zXj?>X2GydQS7JkNX<j0N+@F>okGzF30Rh5ToD(+`1!s#E*{(&J!w<a>erQVoZU4%X zP+Un8*$sD4?7^=o(2C)y8;=v2DQoLweM{f{-%z<*!CjhDId)gcES6ficKP%cs_rtY zA4gJgusn!Q2g#1y%bRTW&g(yzs;{031THhz)65TUci-21B&0Qe6%t#s#gHI(x9SHp zY}1c?3=YMb{;Z}ykCDW9gng5dWIYt)lhOZP(FK0k!V5JGBTBQdeOPFS;l_gqLsV!9 z;Tzgu2e$4M{eeQEg}h7#MQD%``WEh07GKr=9fUoNK>3ge4gchu-u_3{yv^+)T*yiB zhZ2GII8<16C=(5zEen-2>HD<$=i2q>wZNxZ1e?n@`^CsAKmCVrS0|+SMLQ^jVCU?7 z?xRbDA3BI2rOt^rjuZ|x>*M}M3m^+@;{K=DWb#%Tk_$qH|E)M0eM*MbFm!b@`2?Pq za-;|)S;cZ~;a$L%qpO<~H@>9nMT#T+<bZ7YH~c`5kyDNC)wGsBF}f&kJ5eYw&~P6Z zpx`m4$8+2lQEFyvwS#|FzPD=!kLd3=>|WNTeXADuhlbllq4FZs>9sPEkiv23IkM+z zM1X0fzk&$j`?AF_y!IE29dsikHaRo%<N6`6@1eEt)B-Ql0U8g(rA7XM3r<-zLjX3c z2j188Elaz>S!*2Y$GC~eBXpGzo;U}DcW_tp%P1)_zf~?GD9Bz%S}OtQ`a(E(GwpwF z1YM+1<Y^HE6d(8xjq5wjlBEikRjTTs@jZax&ciS0>y6}<<J#j)TOJy9={pEE>3fIi z_L%9G1NBVejIU~n81uq>n-MrD5^*SqEadpa_+9BAY0S)hXl4@n+xljtMgdE*z8&9^ z-Yg5XS)!xw*5QPNjT}Wp8?$M+C>WPtdBrp_;uih5?)XIHQ&e8vP!KlDGPj>Q1~vH! zF47{;@eG1uG47&0#li%=nH&BKS#pG06vwF4Is~xc!({^!C2wf;+uL>IAt0=Q4!&jh z-+u5bp6#%YWlL*+KJZoC{~LZ55FY^YSuOC-1S(n%bJ#wxMBwky6wU`&yA~o6kq>}A zi-qanR}i}jZjxgzIlg2%{a$!QzT!CvOKa9^fg`AImUhLsO5+5-@jVBAFTx!UybXrP zdMVW!XQAA>O-A|~SrU)%*n`NYJglHtTfK#8!q0ILs(>T-()rEf(`U>aDc(YzTo#5C z;3sW2n>H#ueTDv5rvI)0YLk9g({Jia%SI%1vTAEG@^QoNrD089&8|=TR(!|Fz=4ML z@QptKXKJDtdzzY)M1BoVHl7JLsL79w&q=J^mYNfOyk|}Q=b^<XKpAYtAjo)(QK1cb zY?r8va4A*zPo;3$9DaOT`?mVeyIwOaS+z~SrIB2cftT9fiLVPK+nYLkw(mp()3u>} z<yv(Bfb$6P8h*oB%?0pTjuZ)sUdwX41%1@DSKt>A{gDP?`v6ZChk)+@o@`(P;!fQ) z!gdJH)x!2Ao~wk7nFJLYIHj>0b8K>q1)o_&DBAkrC^{3bg(n@NirpR&V=v+4q39Fj zP#22+E{OlBMEw(@TU2+NzMA>nb2YO&CAGQC{!ns@XfPn(mloep`cblpJ~{x;+Eb!W zv72*UKiMlL%B^{c*)^-vEWL$Jb|uiN!$h4du3w7!7rJa2)RznLbiWp8iKokor7Ebw zzX=~uZ}nP)fhWA8hM1NMg=TWTI2{7jzSJcFPM1RW40hMY54b%&eyHfTmKGTP>C(Q? zpddl86X;wVK%uyo4pQ8OuWoWpm*xXXt}+y*g%-a7j9I7!({%M8#FF(-#E>pXjQ!!Y zOka-54o{SPwq>=^!-$XgT@sy*@Qp7JhXknLXEc@CLnV(*DaO1&_+)UnlRd?f_LALY z`hb%;fw8pYGd&R9xS}s^U_-QVxpo3|DH=B8g6+VyLH%I!yBM2$As!hYN}Z@5hp+EA zpxCFC;gVNz>&GSaX?Ym!Xn3RUH(>V-y@B}&Wb=F7$$F=quhzb~tbPlQV)=sz`3;pQ zW<1)Ym~}{{I0uJ`0L`p{T`eA=GMxRbZ|b))*60unDAyZhr>lY8E4`7OHB>dRE0XPd z#s8L7NRGw$1%3CMwpUG?KgaLOS%g=Zsq&wAav(t-Gazjtyt87*;S^nPjrLG9TrdU& zeI+i}wB^AjDTsOyKf`$Oz7d}C;0vM*zUX}@zD@~}FL}O0xH4XRIU#_f5%7r_M}ppA z!1147i;ShTQOb{no7dU>JK<v(R@stL+DLhqaP#->=IcH4m;*icc5mud*|nleF`Qu- z62q{im(<cm>U)LTz+-~GV_w8YQ*~aOLB({HSf;DA<(pJQwXz&4BmJ3r(nkId;Af?< z!PkkA=v*LWXvmXWL<}SSoirRlLkchH>07d?yYD-=;_vvok3EpLw^wU!WzPzEK|5+i z=r@L8XF|qa+8DYG!p$qyxi!Wx3j~VtrHz!&2sghdl@huGE{0)uMaq&kQfv}#{sFnZ z0kiO%($hC!Xb<0jA$<=Vzc;`2*rq)3J-ls`O9#nC+Q?<Q<l=F);4b(WhD%T+rL>W< zRk+#9<f#T6{|5?R#!=cx@v?BUQw)HMVG3c9GNg?ZZwfa%#mNR7|2Z%&DWr`Q{F0E5 zyvQDhnDiLZRir`;u7=^fx1^FbQtcCN1A7I1y>RSF7aV&+6BAFl?N4I!;391-wUUac zH}Erz7yp02(<-$w1!d}3VURYKTFI9@*`^xCi|?oKL~QdzzI?<sA7Rf&*z<?Tyk}p^ zFswUetfh^yJ}lhC<&cYWDv0E~mtm;fNeXEr1yu%BcmA!L02&nZl{m&g+L&6Bf~aA9 zQ^t#TSIL`k`4o4Cq;ipiJ&_kZM5qjErn{u>YuZ?fBsEd?H1m?f`5KuQ_E0e|B-$Ah z$(KBhgD(J7NGHv)CSM|qba7&&1g4No7xL8bGmKYw+48bP=lFVD*tM9*?;CLZPvIwX zN!l3tlLW<y{R6)4{vkej7!}k;xKi>pf&vdw_V}Ns4nN69+Q_F+@EN!X>qTar;|rx^ z9<UtJke9?VpQVktBdLgLw$+wi{Lhg5fuu3`GR3SgNE>BIzU29O2YibaUvOfW5q27b z|Ix!u-fwrnf7t&Z+~mpan}+d9kCB4!iA4e53H}#C@{9EOD#y6<?G&lD2v!k1Wxh!p z^KG=?<G!0{vLPD(&oZf`jZ{fVg`#fg7^1_as79I;(ngAjo^mP`1^<o4Plis~NX1$y z;5+e@ZoWMK0AKe5-S&2A4OAMjZ32R&$SS2jz?)%~z#{oc8~Jfv8NO%ek9{}w!(nOt zeW9U+g213;`ILBamNwQNl9H(Hww&>jQ7L5rNn`M3NwvZuZ7f}qFL`nUuwlIT*2olO zn$MIt)@6oa>||`Ejn8?KqHB(?>xJ^mX4_|&p0G#?X(Pqrqf+!TDWr`QO9jP$_UJ68 z1A^h(ozfnVHoQRlmnPfMSxgI36-;dX#G>k>sDi!%q>g>FJ~|sX)Wo3r$=P3EjW6kG z&XE6nT_lz5XaQ;m0l#eje7;u?^!~_NqOB<^Vw?x45FhX}Uug6(`-fRn?DNtP<D?Qf z@4pR!qUQD2J~b@N%B)uZiE&bOhl@P)g^-`l=aDQ%rSUU5!4M<eT40-lpW<UXkgNw> z1O8nKdBwAn-?!3d4_s;FL0R@x6=lzVD*O;^-^{w2VvA}oTxfdw3S4=?FDHN+L1J%x z?@^4@ke=p4`44T5o9Y<&1pL$ri5+v#s|6O-7jU6DMo`h#9iZFrU!<y|B#6@QXU)no z5&38JL5mMtV47Znk3FVgxCZ>JSqa&<^@(>Zs)(WrXHYQ<Wl10;@41JOI|}TJDob7l zRc}EBs4!=Zj@)cfl`E>=8C1tQs2Wdx5@l6^eOD^Wv4V<hYvIy_|FR^|<p#L0J<Ti| z$H6z?H`<6_o;`ep#rfBupgGQ0;L2szz}7KBul)BLwl8jjqRP*p;ujq7SK`SM`{Dji ze{RV#Zf@$6L3O;K8i=PKzw;VTyTGFQ3!Pw&&!D2_7Vxv?W;tHB>i$8J%AW6RJpz7Y zwlK}V`Qpt?%!vZSHlHQx+vo0tx=o>WK8QT{P@iMXmi+LvUu9zY3(OsOl6vevUYwnY z;a3yz8~T3r@fXa=#C$_w*bgP26My*VluV51-TB#PWI9(Q^JZjX_^qMzB3>*L{bI9T z%fu824Ex+HuhA#3sL8|(6c{vp;%2pH-+#j+4Nno6op=J~JLm7OwPo@-RbY1DN%M{J zXYhd&ZBJ+F0|7rZZHDKn^Im#fV&*MeF#D?ci{M66pz6bal3W<Wg)1DKE<Kq*!Wfu> z3>P)L1eAd(%fMWzT>1jTuwh-la_Min7>AafV!AXcOo8cgw{khzba_;{e8Y5kR=J#N zy1cAhPBLBgDVKq!%je2vfawyH0mUX1Bh0uXMVNl33zS%4PBdM(?3m^R(`AZsk?AuX zca&dUo4Q(}j1;SOVrr{X&itBRJ-=!ZR|E+|D!2e;ci|N<=fZ*C5WgmI8{m+ku<gTd zAb#TJ!NG%JyGywU%-|t-yVv1Tf;T86f=Xh@=Mjes`x_e^E@<k-2oGgRDu!p1iLoEc zcN$!+3uv~@ylFvSQG>wQcb!TNfpHuu_f0`1+ECbP_qAMaQT<3!35?@Nxo-)od_M8( zwc-7fEh@H3Gy>z0RRmY-NV)RY9&WIxb|@-=amYGdP>Hq=wx8wPGRmTQS5XO!Ll(6# zOIE+ckP3^+uhc<-amb1YD%MXlyjZ8dnT7)tmB2V;p`y3RdgkY6FSV#j6qUd@WU&Rb zS~T88c#0{jOi>ApLzd`wnMWJ`<f7|;VNp$2R089Wb+(Yj{GzG(P5r<EQ&vh*35-J) z)Gu4SdOo@RHx|`Rib`M{viLQ~qYarkFQ4<zr!1=9Dk_0-$l@1c<=2i)kM6Xnb|@-= zameCVCDV|y-mAFtSc_`Eq7oQ~EPi>GtUI^Y9k8gnvC)MQ7>6u=ol?)Fe_PL2YECxO z@H9mwFb-M#f-PA)x~`dLQJt@-1jZqYU%9hve8ZG=v7!<fhpgcaSqtvj@I#Agk)je9 zhpZ8T$|&>4<b3t#Q%zZEMI|r}S?4)q&6xJww=Al=6_vm^WJLuPwGNv3Z+x%kNv5nP z6_vm^WQ_#YO2hGI9kbt}dQnjcj6)Xp%sbQ2I+*iAMI|r}S?4=sty%K;c8e;fD?DKY z#vyAIT&=p7^#(>D1s0m3q7oQ~teBuO>fS$8e}0Wc6;V_I<B+8ZDkHxrE7z1YN>K@n zL)K`AtXYNm5sT^~MI|r}S*01WjxlB76j5OW#vv>2koCP&fAUL<YL%iA7>BHcNkz8r zB(5Jh(3Ewnq7oQ~tT84PYk&_o-g&x3^`N2>7>BH}f~qf{_<egwXr4v2Sy2g$Lsn8y z8Ts|(TlrU8RC^Vbz&K=;2`Z!g@)vDiZ&4jqR089WHO?XHfm@CXTU7bo;0Yrz4q4;j zYTX0-z0#^r2bgJimZB0EhpcizWyEXUXZ^3Ss5C_-Fb-K01eH+^qw$Zo6`HapD=L9; z$eQSoHDvgTB^FhUq7oQ~tVw3Pm|wp+_Wj>jR7(|=z&K=8IAo=-JSA#T-Jqxh#v$th zK~=yfe%~$n)fkKFE=46U4p|opDkBZ=|KaJcSyaDQR089WHCa#@WuyA{b!#jt<7zd5 zambqDkQHyer^2G*WotA7<B)X`T&=e9&%00GX;B?eR089Wb+Mo_;?;IT-SHMxP-VWr zIAmQSsEo2PzBd1&erDO|tDFVKA#18b*0HyLvC*O$p{NALA?s2>m5-+%zjJ0kHQ_{4 z)}@L{U>ve8bI9s-)8R^sDy66d#vyB(pfc)>%F}NCn?-e_q7oQ~tjis;9$MdXxJ7lp zq7oQ~tSbbSQ8wPW_P4KDRGSr*z&K=G>5z5qnwLMdsNPXj0^^W1-4U<a*>@!^sw0X@ zU>ve49kTwh_KOQFs(#(!2~&w5#!hVqhRmRg-#cEz6qUd@WX%**MmapGZ;yv9Sr;lQ zfpN&H5>!Un=rgR}!Cq$BSfHo`#vyB#Lsm}exj`0HT2Tp%Lsqp(1&g?!J#5PQg`yG| zhpZZtinYyYpZ@v{i|Q#wB`^+IvjvsP7|~BT&Xl!VQ3;Gg)*Oed?_E<n)1un1s079# zYpzKJi-=brQ&zj85*UZ9t4u1!>#4iiS}m&nJ;=#ee_}5iSHsmB%N;tX^rRC^S;G{S zz&K>h6I4doSn{L(-?ykPQB(rsh}V2m7DIUF>fbh5RM#jffpN%M;E?sn@7~&KQQfYn z1jZq2p`bF#{Ex3IFR`eeQd9!tkhRDmD_)nz7)Tem(Y&Ro1jZrjJMgu1(ZMU%ooihw z+peet#vyC5pfb{s`k_VDw<jgabyUu8xfZULtoo{6PY2Bq7Aq=&amY#uDnr(!s~`Qu zqMD$n1jZ4sx(r#?q5g9fmB2V;Ey<8&QLR%{0s|bzY?KS_IehpYaky;48?GgnCzVWJ zj63J67iTz3=Yc$K6dk88@u@p#hm}n%E1jr~85fhR<mI!<vphDwblhmIY+RY)I|9TK zVzGtO5*32##nY?i&8V$4xKD_cB}d1{B(zC(21`s1vlq`;Ry%#MxDegPm+A9);(ltO ze3{1+_l=h-apJ!DCQdfTTTR`9D%*+sf{A2kq>9~XLG?9~wSvrAxS-nMu(+B-Z*~&A zBUH1hGZNB_tRpGhDPeieT`)IgW8%R#wRpyYT3!NdgUyEcD%>hSCkzZupD}OV!YbpX zW^uK+WWYF&-?~P?b>Bd#>%M_0lr(Qf%0Vq0g?JHv-bhfFs+Q7)OU>K`v!+*7&zmO` zh%vC<WEq@ZTQy?=^G&6pD45eT97JX+E{o>P1s~?8gC^6ZcF~Ll5;DhPSbI%%^&;sC zrc0_9r>4)Iw`|cIl!*oSBvedn9=5bqL7rU=B&1KDK6Y|)#)4V%suvsgE!0+5)h(Wz zT85F`>Z+@!S1nw4_1tQoabt95GO6SAJv`*a0mX$LUg9jaLQgMAH8?w!r<XeEUx>2u z%pNwIs~v3Ss2yuL+M(|3wo_#IIiiu_E90+XlHn_9hsY$z@RhXLd_4jzN{&ZhrMm}# zEUF$9%EL}lYb(ok3WvL$K*dLvbvuRA!%kw<kao1`W(P7xtUc{O)6EVP5pg3eM+elX zcI`~%trV1GhZ<SMkJgTMxO)~18-=S-2p`V^VWV*s2H|55n5;bPK~gSukgQhhAmt*Z ztB=)za=J;}P+4ppIH#M$o#TOXx=GwH51iA@9tq@OMuljPlBa)G298{GkopQ`=*-H< zCf1<x_LFof$6P!epSH_S(v`^6aQR6(Z$C+=a=??$+s~dTPVK^;o-Q8`BI+L=6vA1- zT?&IjyInKDmhO;2Ve`r$Q(vRe1ZL2>{f!K>!sA95*_It)WL|cJk%ie2St4R2uA9)T zn%o{jMa~v$s?SE9=0ylK`Y5FEoj$#6{*2kxqi57sdt9o6+j3wEEYs0#IYWmGFP7*^ z+?I2qxGm=s^u0M)M&or`&X?>{+D(?*a`J<Akk99JTMoN?_W<{6h2=1p*X<KAxIYRE zdQ-yipBHW;-1~#+TdFU~VFWK6-Ot1T^*L&gI-A@=;5hM6)d6l6aPxuLrEu(EWt01N zU_R`CAA4p8fyq&WmuC2EgH3>l<tDib!*`l&rz3M{y+C1^g#zcn@BB{k8w1>h9q{Au z)FNQkx^d!rWN4*fhxu+`9(3be;UmB2fZ6NDdGI>|Ob=!>Ot$!vUlA}P-8c_^mjP4b z#<{{r@3jg;xis1G;|Abv>wq7JRUYdkKMtJkcJs3>(PUVd4hKB=p$<6eDaG}mOZfb~ z$)ohV%h{2e3(ar#<?Jt}mMyA2bI4i4E?+qFs@lt!R1GN}TzvV`VM8y!uzFrKDyqwC zQnkx!Q`Pg&0>F2kZ)9(ttI~><a5yv)!`H_D33IC!FRWcylPV~>@brR7i&Asv&;2fh z6qE{a=zID0GXVS;`s0U#6LEaZ69usD!%rMoQj}~wM%cITiQR(9kl~U}_O+~e*g{v- z!Xcvp_yw`%O|D-F`ifvXMYxsVd8)99V~??E5ZlpT!-1c5-5a$cFesST!lPs+<DkXy zdFo`HWV&a1d@dXc@WYP!t=y(qEW@WC!XCf6UfAc(ZGgp!!)}1$jicq+s5oOuVAG}8 z;klD1Nh(s{H*ji35+zESN_I=1Mp4xz)7R!nrs+}~Or_jPi^R#02<NvzIz_}~G@d62 zTMeEk3L8iD`U%^0crq>ImR#xkQ@o!h+#bP`RU%TpYP-k_R>U#|jWoh3lVy1#XgqDL zG><V!2V}5&0WG;(C%<U==Vdrg0;!rGy&$wCtTk##9`iU7vEw<ZUz#`Kg4|S3#M?M{ zpj_WluJ3q~g&~Q3?AT3-&6Nh32pi|JWeh4|<IDz++O)zg%TQTWYni@H5U^7DhJe|( zSH<9Bm~X-&7n4g{2=8YIH?d`Ch+KX?(tzVX6JAnC8!3u~o7irdLM0DlP|#Q6SR+as z>i|hX)aCdY#*6nbcycQbTA+W4H~HRVFvfo`-jx48;Z439JK)V?i7h=`#II731<f$D z%T$y$rc+Y5`Om^l!r0)|V^%kFYuhY?4F6ehC8e~Ha-wisJk$4|UC+;tl*RYKUv5I! zXtS@+3^I`Z7@oA{E}HRJCWagWekLuWHRZ&2PR_)zfXQ)eO1S)ln_kMqbQ2gREiqT0 zc+bjA3?&5oOj;BzU*nArJe`T@E-*xr&!F}{|2-4KI@en1J#xyBK@w9_HIKKID#KNa zH47J2vu2V;xGb)o!4TM7YOAZSHXM8clj3lqVHB0g*C#OZ<(Q`e5d+3z7*smZg@!3l z!(9^6<yh%}B4xM?R4&{TfiS1kcq&}G!i5d4{CxRe?h61$471XO7ja8Wl&>(|OqUAj zfV?FJD>nIU3&U{96`O3MXjl@wuGD5;&~Pn{H4`yYI*QfYnDwwJJFIrB^+;TEVo@zs zR089ezhIMV&6WJ(zSlmrW+ECDmB2V;u{E${4H+|Yw?%c2q7oQ~tgxV>;>L74{ha}~ zSyWFdDuHpxVkK(H%Dwac<1DJ(ib`M{vZ(J^*LOEOvhz)g>U~8eFb-KPBbKapelhKJ ziwc|ag%KEsENVg7Wc5>20^^V+(!pFaIpW68cUrQBC@Ps&_PNMDLY7fBm|xi8D+A^m zr>F$RA&V`y6|V>8jl9mHnysh=#t|>-8rE91i`rMcZ(ZzMuc!pZAxo@7Fyo~?`12_i z)t!n;V0`uqN!i*5{PKH(j`)XX@GiewsL_gwm>eH>NMJ@|V)ZrCCsfa0xOf@g;+VU! zy-rS{R+vA15^EuRvqlxcPkce`-08K_TUJ{x$GO(frBjOP-Mbvs*aKYcGA*pbRStF( z^TJ?<yZDMR=<jwn23Xwg5<eshUfjy;!9Ua88aT;J7HcrW!_S+LNhgDrnWkzMamcuM z#n{;5nR3<-V;<*>u!cMe%rTE)Hb+<o7Z(p32Dg&ogNMjL4~}{K!q?R6-HR%)+N75% zDPCh9H?Y*$O_ni_dt5lLF^?W7dPAXYpHKZ0hK;7zSiv2@-3H81s-!U4aQt{~1m>3t z$8zq)kGO|`+1vrH47gT>fmIkUet$!aapFn1Y4KEvf$rfccLQ)Gr(sz!6=j%H@blug z74D;;40Jn_DA}ZW;r1YcBY??0TjH{%%NTgq0P}#tF?+rEQMYaa=77RwOTRw=cUWOy z6~>ES2n-$~Q=9R^ajWp-gAq^FhEq}V!m&})fcZk<vV|{(dauh+^wZCkf~nMb@hgJ6 zt}qhmjZ4Dw(N5qtAwXXM_ooq(8=Gt|xjW!K{yd2>o?f^=fZy@ZhIX*K0mEj>3->nM z`+u7V%Xs0aN_+|2UF;9SWJ|wS;CDYTt49f#XgIw1u^ikA%($4uW#jifcuxW54TZ~A z{&X<-2$=7V1_2BeWG}g2!u`*{yk1IF_H?-rg3gHJj4gfuFjO_X_$`Bb@mP$#;zz?~ z(+hV6!nXyOLRJhgCeCB*YqY{hq%Z5(*ErxVw(-k07MbcKzvaNK>wq8CyL&sy?=j#u zcEFEn@ZL`H`vAB@9q=mzzvIVYQzm{iOy_K4hf{%><;J=4gZ$P2bFUj`Q}-!{@z?}R zs~hLy$MpM$!jO(8TlkIu*JHfInDKD&qgq-7%t$xRBYc+uQ{%?D_%VEIfw{$v^WgUg zFweMgE`CgxHx)+4Bzt`K0rzPK{HU%TTaIrNKN>S#Ji?a*W{Ml<3Lp6`2Il*2oCm-A zfcd=}=i<lo+YQV+Zkz`{-vpE!{AkR0c<?&|nDg8?4}MdDndQd0__5tu1I+yj$9gwg z`TIREO`YKPXJEQcWGrO6kd0p+Fas1WTYTA0ou@E@As*TIjRtOF2mF}7^MG0F#(AXQ z-M~EP#<|ju-`jJ*>~-Tj_#FYJ$0QkxZ1EM}FEAtBI1hf80aN3~xxy#DUtn%=<2?91 z0?adRoCm)*f%(9V^WfK`0(CEbG}+?I{2i(=0*FVp{2d8gvIBn1-x^?6xN#ogy91c} z+&EW!$!{|-e|F<M_<adX=mHswZ1K&5_cwtV=EiyOn*vOw8|Mli%gYL2Zg%55_&p5F z({7xLAH(-LFz>r@9{fTV;s_o5XtKpO7k)z&MgZ~1mcQo%H?9MIEH869$!`&G%RAsV z0Q`Oo%wukxM|@udX0IFPk$y*j=`~r#)=U=<euID+?#8+JG5s!97|Ahv`ppDxK?nR8 z-y49r&yDj4-)3NTyK%1YvAi50W{M2m(c*g&FlV@NE`AJO5|~+ToJaW90CS@o=i<lk zJpjzpZkz|d*MWK0jq~6ayhz5?cxEfl`M?z@teGw@eg$B1J}_6haUS7Y4$L|?&c%=M zy%(6r+&B+@F9NgIjdSs1_>KT`(#5dAnDOx7Hxihn8|UK3@YMjb#EtXdcMC9gxp6Lj ztPh@17>17~TYhW?Zg&U#SpE)ll3(s6m;l9(#!MGi`1t(}Qy2lnBU|`J12?e)enNi% zX003Nk$!gr^Pn5&3Lo?1Ibhy&<2?8s2Bzy&8H=OEw@_g^if=J+BRk;7@LkqPepdmv zq!avZ=_J2<fP1(Dek?C90Q0^Z=aGJ)OVM89N0Tl67~dhljCSKZ_*DWk&y92CFU#Ne z6^3$YvX#Fd0(W-@{PIEH)Jc9X0=KsVehlA{PV(z<8T3i~XtJdr^J6G56>gkI`YizF zyKbB-{g@xO0dt=l=fQ6?FuUD27eA)o0fm88m~8nGoQ6ZY@T18VU#8z#3L}7cWaD=p zaAP{)$MKC>z^rrQJmPyVFps!#uJ|(jT7lW?#(D5N0!)v~Wh}DAm;8zpMk2GvcQ|nI z4)`%YW&*Rsjq?cKEx_F6#(Bi|8DL&;<2?9%0L&pb&V%3aR~Rvs|Fh-qH-Q_Xutxe} ziss+D1}(LC;nme&e+^n}@<q6^7MH9g!jBzF^7=2X2@9{?izwq7UtxcdcC`v?gcb@n zv<QbOg>&}7;^Y0Nx6lRW*jI`*O{u~;IFp`h#fo?UK9+D@Tp*yhMy07P#j8|tSp4(6 zz;vo`PwKr)OdQvlRFpSPEWq6-xaX&rMHt0;DR2U1dW__kSlgb$(z2eCNxFn<rYd>y zC?&&QfR$Rs+Vm@?wP0110D+?JHLm3fwC&!&NeUAY!AmYin}g!Ma}Es##lh?BkOh5f z@MLuv^xcSOQrLchCx@GZz9;cy<r4I5!IML0LEi_aEjIaL-ZsVceMsf~xWeMqa{V3L z4kl9fDh&M?Da`}>94S3PIN;V`5qPFF?_c138ODtPNNZjjP{0HEE6N%t$%H9sZ)nm# ziiK}|cI_Lf?hPO6TX1=>z7M%m)_6%lnf{#Mr@u;$FCn0~o*Nf|PQY!mGwZ+due>5z z^(-!_i{aj=34v{;diis)@%ohKDsXx5NZb+>ek@1(tSOl4iQFs{hx)Yzao+!la15nz z8`8%1Ex4eoePexdd);n$;0hRAGJ3eJYw70rb94M<dYGXQL4bV%0*zaA^gY6%q@AIv zE1l3dwm?g-EYM#vLYr9oAv0SRi1PILdJD4{B~4sHfD~a8Fvp9uE40h6oYqpNmLKXZ zAg$Y-OrPKOypiVyW-uZzb3Fl@%=Lw^ad<oEyA@BF|9zS4!tHd}WUiOOM)f1;tAI`B z`f}68?3OXwhE%?#S#M_0S}=d8m^%TtdH|5z=O-I>r$*E-EB0;H^0AZ<cctJ;jCER{ zx^QA`Q>ttIvO&I75H~F5JnUbGb({h)prmOF!r}9^i0HO(*&%L~#%(S9CJQby?>@uL z@)fwu0r#&y47~mR)rPx3Uh-LaI<YR9p0FzRxIeZ|l(OyRs@zUNOc1#6+VQa9((UkC z-qfdSA^q6M#`dQALpj$B(eyF78t=nwmJS282yUIgRh-wHphc3w_U8J}bFRrP({ac4 zn9zP6=>&Uu<8|wk>BRan-H(5_mFZ)!<}z_tvN3TFuOpqx;y%Z5S8+l=3-`RQLWtwM z`A5^=Dvurt*C!AsO}``$Uqzm#k4osXgIZ)|C=r>BC9UO!m6|>&6xoi8jD`Y*tIjUT z$7)T6JFjuH_#e__;SS)t!8%uZ_0~{%30pVmms8S|KoLI{Wwu1qUo?u`t8FL2wYw+) zxGS-@un2$sRbj^+K!^;&`jWa`>-Lh3k&T$yJINQm;d(?xTeTt|7hh}Xlge?|RwXZa z(r}@k#vAm?5&Svo=9BbTTrAg3IMW4~P@q}dQ=+B)8gABu3+^jXckAJ004_Gc<$89f zTt&hALZ{{dlRrWKeE(!LX5q(>>oHWbgG6}B^cQ#mwJ+5RNus`3{Xp9UR3EssTE_N3 z+xeQ_OL?kTt?K4mQB;O&0ePLt3(ReC$@P{o#fYg-(V?^;ieri!J_|Q|ftna;gEDI@ zkrh#D%<YS)kJPuS^qe?S-SCb(wwOS}mlUON_uVD9i7(6y)gqJR@?Bn61_Uoi9jP_m z$?7^$@;7`J!?nn>aopNg3Ez=rjVoffd<D06HU_c2y1X!^<c!6_Yuw@Gj~B+`dJB>d z#roorc#X@j!w=2XAT1Eq0ua7xMUfBTEJE2D6keM~In=u)_35GZtx0_V+9L5qF2xPC z1(6+*R)a-SZ`BWo7o#j(hI?YhiZ2uSg5sJN#|=))BRg<mbL1rzv`cWC<X%KK0$CBr zG`QiWoCA>^2*o1AeUKJ;9@Z3Nu}Bg|KEthMs#VnV=XlqhY$9*RZC$wTM&B$i3lw2d zshrR^kwb-g_4CpfG~yL;|GdH}C=poYy?Jb3BR|==lpyr<01B0pTn?@upwEf$X{^9a zy_RELp&m}^V?*UAD9OfrBo@*;nMR#=S*S+af@5s__1$tPfkot1lpJr?Tq#wq*R5iM zFb8X?aW@$<xQ)xIhd+seg__PL^z<x3A-pJ=9-Se%Zl)+i?VDJpR<~g;3QEM5Vp)h- zpz6Q$hi}|~n{<IIF2gmM$$GR-d7|FZ(p|+Th1zVrsH9?F@YYJyva%9v>+%e>5?o}g zH{QjNsylVd8}ATz?Uw1&aN&7vtW3W)S*HKhxc=~pmNNi8MyM|fkgzlG7W7?f+SZ!3 z^``CTu+0>>%RrYBwz;s?3fncXN#CEFZq26Ki?B@>I9}q*x%r^49kv<5HWC%bEMdFC zwA}@p^!+VtGllOfrrSSETVBw(Km8l9T`6#9n6?CLap5)vwpqgV9oXgxn{L|fg6%5d z_O9vH2hEFg`x9(SgzwQ>#sb+g?nN>=TE<pTvSplrR%*h!3Hqz75&h-*Zlh%^0(;Ri zo(zj<8IKnhsMW{7;%Fi#>RN7sH-|==WE1&qP45}mB^$}X8ZN8C9eJ9#i#6vOG@spN zn~COA3rYespSTJb&F5o?DeP!I?~?81bx)V+0a))VqgIf3Shb`ZSP&Oc6PUVQww!k% zMr=8Y&~l<m9F)-i&euW|(Ax3k_}~XYm7>;;4JlI!3q}30wyEwEZTOh{R5z6JLKJI5 z+rm{*eepf?-TxKxlpkIpE3G1YdxKV?E%Bw!bhad6e8XrMWwmvnZDPspM7qXoN=Bh6 zF??06cvlzMmh?5-5)x?H+mbsG5Y?8Tq7#Bp$2}j}sPEZzNIzsaJco->^_Sox8)yYV zt%^o9unEnBtXgl^ce0%w-8fXfYr544?EtD$@Uywf)*xOuD}{#IXqg6}W$G)Cs#Pj# z{3#nHrqv)eLy^tMi9)tf5FE!nlW3#LnJYr|37@<cd4{qyrLfXytA;DVtUJ+ip>aaJ z$F?dTs9AU&X#hgFmp#I^j6kR$nXOqdNQSyvvtnvW;k7@(_mI(=U9qZjjTvuFV6D!^ z4A;HQUz@cp8;Z89SOgf=Y_ZXnEoGf6+p^^h{8AaE|C_e#A_QJFIM|(IwIJaJ9_rp$ z5wJVfm1J*LhO=2gqn0NcwVWJnb3BxTrY&GJZD>@oNZJJ-G;QnHv@OCng^!En0;Oh7 z+a-K|5{2E_z75X|2m*kHS2V5&2%9N{C`)MSX28ElYu_ZBI#CYU-m!SfrtTUvb?k*r zMO)Vw;6b<=x-V)3v~j43;4Ug0(c0Z0Tf6lhtsSdXduzvfw-c=$?`oL~(x7h=Y;%N- zi_m0y_G8#&d-iMCWUIp^m(uN1(+$^hDc=)J+u5dV6l}7!8wZ<g?JhFiDowZl$K1Ps zM^#<#!!yhP0Rj^cAt*wSSkWkkiy92-44J@05&;20MG`JSA_yUwaPb-lkxY-HR&8so zwbc4+ZR^i^t5R(>A<D&T5HEPCMQbe>FGwxoHQ)QLz0Wyw&YVd4{lEY7eEZ3nz0X?j zT5I3;KKq>P&3(KVNDN*?Xt9JowL<+-GK$8DwZc^(v`}yfi)N3MTR~eS+?NniW8vFY z=nI6R!tD_>HIGC{jfH1hp$iaF<KAyA+FKUwR*Xn`EabWmr%o5*$utK?)o(_as}#nJ znE8)u73!!?oXm=H4aW@C=fsQ)r;q!X=d~tQ#H2+cFdbKT`{a2TMLWVxE0)HLyKWYR z7p^s@^fBWn^+KYcYRa+1{fhJ&NY!Xi+poU?5T)e)+lfxxzZsq~gIb4J@bpmBefb~6 z`K@Pwdl@eLf1DLsVTIOPp+8z7JquW_Pcvmw-Y~x9|3(geN@inNQNqNIhQfG=&nd_J zJ)WB%E?9STXrmvM$moxLL1M%eu23WYfx!6ISXQ0)2gbhf<Is)wz&BovC8vf{a5s@S z6)7l+#f+J2OO2V+O9Q*G^0LF2S{+-|K;hD4q@y%>QAcUu=k>TfKN;K_OJ;5@Eo`Zo z7#dCzADYXOmvodQ{AJ0K46H8|A#i~|_unNA`!XU;lR9FH461^iwUFHb+1lp}(Vi%( z_Ad)>E1K)u*3d*<IGnZdUiik$Z1#0V(a`l<Ws1wvEy_rV{05-Lz04G~*BOzavE+=Q zSRJg(Fd{h<BKY@43tD#xlo@>zGu5b$=VBaJT$F44CmgyR^W5k3!OXHah@QSExA73D z;m~c*80sNMID=@(`ajXB)erf_0GIsG8>4s(l#*3IT%oDP6_k^}RrNmwrJ`ta5Sk@i zuD+=TxB;P6LgTmUH4^$?gqBH&5Bn;FY7q~!#$?FRw=v@@Su=e(J|fo860To2$`|jh zVwRj*Ew|`lU)OQfm9)I|1ZZWY4EoNrLezXR=8N$Y8ou(c$%!r6N{x6B3ddUB3&sM^ zDs3f3+kVLSTJvnlhL19^gs1EAL>yj!7)x%&#+y{R3fit)PHnORlpG(%3SF$_18Drr zI3JboLaytD9jkgLsKpJg>K!AidOaW$>1ef<^>%^NmwAsl4Gp#T-!^%v{HtqrdymND zY&9_)EZQwGJZ4PHr9l)?Rv8QhiW5W7h%#Cu7jhjI8aO<RDl-n0GAlpB5v*)^8Oif| z>_^S>88gDAMr1mu$nz{?4||>*)QFekXJR!qBXX#P3z0kPM*bN^<ikSbPRz3owPeJD z#tyDSmSCE^wWDq~=sk=*#^LrLV`^Mj4MU~I_4N>n;=y|d6c$1uWLuTO6KsXZgI26; zV&S9%xzM6j?t)4jPrC!+?LD_$&(6sYNHRD?5?h?iJd49(j$~6Aas!JwJvnfXGFr+S z4>2eDMdr7LXGYlL;+WXxQsbbx0DmG<BM%Wg?9J$whjq2{f_YOjF&&(aC;3@eZ^~eY z{W+|v^<YegaQ-~(sfITzcNQP;K~(oMC#pyHebFS+e6dfc^;Zo<ukc(P&mh}%V{7k& zW6=}KR9nS50Q<8>7{QEi7PU#&7faTn4Im{?G1Fx+ZizW3jRg8d9`GZM6_^AE1JClA zp#ryy%{6#YT6eN2YuLuA=BzK?_~K1KrZ;@*$1HQ!x+fBOB}NZ+I8pt-;G=XyH`jS1 zMl)(rK?Li(=9;eD@H-(jX0ll?z!mhZ#qVMX8TeH*1D2MW1$>Oqa^bRusRONJXgbE1 ztcU%Qkr6CTv*T}k8Kg-)Qc0-81$;U}H#Fw)d!flpC{maY6=ku+mdzmZ-|J%-N@K{w zShy*+G?u8Y*dCS<GM0EiM#n^KZ7k7LPbG<1_4ayp+Z_Cwniyd!WIka27QlM49j#I@ zD{%#V(WYo_HdlD(#Eg%yuv-r*s&yOQIFvF)FV|spb6{-!(_~=zVBV#zOlDRx(!)W- zvFNeHow=KViY6{Xm+@A#>7u3EBRaP6+_fNAZ(nalFxvDp#xSC$2Gu-*9WN&EIwo=H zs3p<DV?s%udlE5r#}c!5ELmdJmJ&=Dv!kJ>PU*%_#`($d`=W*WL)Yg5U54~#8M{jO zc4%T-%m}uXB**uUgq|GOzu`ST*&-i`H)A<DwDBCkk+w)t=+WRwxq*rPI`mF0ct9^G zY4{|g{dl9eAkY$P*`E_Ao2U+PE-o<CGHIfCA{Jl@Flohc;V(uSuFLmDwoMs`hw3RA z#Z7aLuFERk_;S1_7_!v9v%TAc{z%ibQQ!|PP7E(8{4UhM0R>5lqAfgmzCYHn4Kw77 zhIa$;s~f)b$1jN`r(~2AZVPStDR7}jC;Jh@ZlOjl491L}rODzgz-J*bsMFiJ#gem| z@idK<u)`p2p@B`WAa4a))&^ReG~WFWfQU!2<m`LpA^#<;>L!ZsQ@q>A8%)aV%?YfW z8)cg%eiGduff;&ovP2Zik`mdy$k0pM8V>v8rEKzS70KXH%(9;$f)DVS7i$PyyTr0( zpal^`KEn29(jO6{lw*B>qRkxFXK!x58M4@t;3WbzrfxaouwnOi9Ubk*mL|*89I`zN zNGxqRkdur{M@8zd8|bUUDu;UDLce!P%$U6c^%Eo3?EFaRsbFp-S?0&k)UdT1Y8xw9 z;hxY9cjK{yT`DRfyWwg!985h`o#v~f3P*+CG7vFuZ~GU@gx?_reF0RdSrS@{5Wm+7 z`tGzsk07LQ+br7K2+b56npFIFyoFKCB@qcXMV2NaDb1y6JzEQ#UVIXtuM#sR;w7RV zZ7p(2;Z~l1j%$3VbZa6~Fs@lCu(WyT;e3R{04kCBnkO<la-qE2&A|!lWgJ*bvM@1- z=9Of}jDt}lGSH~Xj2aW7MpcmeR7CS4L-Q`m%Bva}&0Cid&8y0k0g!J!`bCmqdFjzT zYV2yq>yVd|MRK2+EEYcqayPsL&~Hh4MHGE?w{bg*F|ba-H5{W=V>1$sMHZ|uOJ%@A zVxniF$Nt}e+_;mkLgM;OiDs}*6eMBoYZ~#EvMnBN+!--;#?^~Jt)jh3Da0!SOjRuH z7}$rI?^jrZ1Feak?dK@@!6HEcjSyAsdib=-iJs0Fqg83s#vn{6LQ2gJqt$%ZG01n# z0Q4>DeNH{@f)DuHyNzvD{Wa=ij8$>EJTmifLM`I9K8&<3z!mg8Z-xG5g$`MvAZn<> z^|wO95n3p+d>&TZh!x^nWJQ~6g(|JkDuk5mHC9OGw^7s^Oh-^}uv9Z6%kW16t*n`< z|HNxZqq!&<?5}U}zF`M$kBJ(WWd1B_%)}A(SWDXx2{a1;VC<iQ$x$z3>d>DhrjC~m zr3mk{6hBdvjm1t_u+f>5EbT?7XzjwawI+%NLNT?fSQOz+m#J?k^E(4E#sCw;tRidn zg>x`2UdVB=;iKuCKp0<P&DLlu#z>JY+f!`3tIDz`n&NLd{Kb3z%!v~EP=E2;##W<l zI$k@Jv?PkBhc?QKd5n+s$aIc%G0wd3?kMal{OsDG@kV>k!h^;;q0%=eCr=p}HNI|q zYh57n#ovwDn9rBN;4_h39oiVGtG~EStf*B`Jdyj+N?uA%3@b=k81Khh_IA^+U82S{ zc<oZQ7nS?)lw|Nk1uEVH+CG2rUMM$;-!9JE?k|2{KX@3$ZL%)pFW!gOZ$|Me{^E~B z3b~37^-L_Xa&frKn5^Hs6z`Q4qT+qBQU&p}^`S^Zk3eMG<ZK@|yTJ^p7>W94%($jN z@(g3t9?8VKe}@`BL{HCdI2PfYMdz73xi>sLJu*KsuYCTct#}qlxf_jaRWr7qTcP_A zQmZgrq)@9NFCv6N7j5Pr_*D|fJRRaICiUot0!MX?3@tTwMh(2f4f~^oZEKE-Cj8qY zLpi_N7RmOhr;?6mV~L@;(M10eJZl&w8F;uk&j{{1FA;3PG~kL7EZ?7(9QaHI?8O3Y zrOEK&X-P~>3fpQ&rp{{6a<J&$8)H&NNy5hmaX@PR1#x8Ybga^cJ7R&|Wr0>o4#qP( z<^{c*y5XydNK-~h#}1<R6CFvO*HNFD9TZ7pXl{L`KO>@J9kHS<4OSjVOG8hchsC`w zV+NP@-i+eyKnuopV-BL7xkE}FkfLs-fuby~49>~I7<3#y>A2S)?-AMN^S5`;?G|bB zAtrpz!6zL5h=rc&gOvab8*?y92Qd!`JvOx)o&bj(>Xs4jvm}zpC~0W!wxlBfp(S`j z(cDq@&(LE%m-vei6YH7xBxKndDJ%|BIr7;NqKCK|tAf$M*6nyd3$`zcnG*h$o%0CH zyN!1^uA#TA%83*ns2#vIX0$f6X6@P+*b^z-Q*$texpyqei6@uJ`RXi^@wk)^KSILG z8A)^u(>aW^+_dWSbcrchdh;cxM3$BaB+8L&J_Vp2BQ9}#f79@EemSeHeZ$3tCAfmV zyRDEE4AYw>rGse;%KCs>HHa2mlpQ|`6|xldEP{$>beoz8?rN_x{K(uhk})i+V#6uC z2{nQ{@_MTGJ;U*~C~t~>`7?m_9h*h9>U2COiH^$0G((~W$`55d6R%c_vd&9nK3lXc znBngTgqv#d0FO7)P90Yw`nusbCl*p>MinN^Z(u>;DRz%BEGSfM<r0xG14{~rj9z(% zwe7aENv`V^HC~T=@n&)0WyS-mIMKjMQFO>TSc}4}<e6A<rdn5G=Ek-~|2@~I^O~ci zWHT2@)EHHT&=t6XzVPgs@{EIz*Nn(1vJ8XSYuz!)4YZo*kEuc;5)}DMF5M3i)F+f1 zA4>398lICevk5ic1$xw2H4%Nv#lA>Yv#fPtQkr+5WKnY|x?sFs8C25pFMLt(noibs zbhJ6<t%3c~lC$|(f#-LBSuWFuLMsWp6euq67puC*iE)b<qHIAlZ<{HOj@_ZHC<9`~ z%uGlIW>56b&TX%wFp}gI%bZSQDfMP*7-|?hqbL&*@)zTMQnMrijbMD<ceIQMm~nv& z@W2AdWB?2)%8Lvpc$iHi^Q6Xe9V16)ZY#U%mAHcPNUgeIMp=b^i_mi6G7l83%?h!T zR<r_y6po{-qAj;*Y)F{hVv!cZxLTsdl9ushM3o#m>*Oh^74c)ES2XW{#9ZbE^;ds7 z*Jm7vFK&D*UXg6#*VOC3^wmG?TXTW_oWz)BeoZ2CxA<8Tres}xdf}d{#~8zn7X$Bz zE*pfGXyc4FdDo^mQ!@BY4R6!hG2%}N3dfi;u{f~J#orc1RDg|gX(WuNFJ?6w!>58{ z-H)k$hLgkj<?~zZ>d#@X0#{I8brege0l#WsOd_OSPy7NQm4kn^LjOca<*&?%W^>(1 z&4o&ntHN9$#IkouK0o{`X?ZtT7Wj+{19*@_F=L$8jmRjP$aWNyY?s#nrFb=o)vNat z#iJs|H>xk-oG4!w_KJ;f@($oB7#|?wYp)1DNkoOd8*wpa2KA?#Mxp8{@ObfEd*;sq z-*Iw?)vLf^b1rX8EkJYD%?Tg80Pn{%n;-U-M~v-KU=4>ST({OhZJ(;%bn3RHXHC)~ zX6N{ebCB6=5XOtB=aS=WVXTG|it|H_SqK<2C+`0nV#rSpe}ENflx10tF?&?hEK0Mb z$P8%zbAaMyCQ|=`F;hLxvSOg28{1XU7iGvSuRt1?iXGoC^ASNF`yzR-U>+-2^f%{- zG@7RBNR6@rHbQ@y#Jp@GdKpAs$GmP)N;_7|%v{VMUZu2nq9dhs<B-a_(RidW)0LJe zY5ucm%rwK<TYf3tG#2oo1%n{UUluaWn$cQ-EKohb4G1m774+E?wkL3}>gsz4sTz6! zAyq^BSZ#bFLW;&OVU+}X07a`ui1k0{yB(pZgnn;vpFv2~?l&#ke=J)6Zl;z~5K=h1 zN0FhKA3uMIF>KshhWc&~V{j3xI^Ib<WBeQMqWHc-j{@jG2Q=afs%JnB-PWqVc4Nlm zv;88UtXB~dRAVd_nfUf-D59>ih}ouII-HM?dg&n1!m|qB!bOaIcvR<zhJlu`lSSOQ zs-ocY#b}^3cP<uC=LP0u8q?-Qv4$GP$Qo_jxpqp_m=@+^ec_HZ-4oNo?Rl8K#UdR$ zOO2K&?$0wapT$gIYb05MX~vZ4k@`#@<~UQPbAq{jimdZ(n}RNLN?5unRENZrd9mcQ zFsZussqqt^Y~|sdzHt-F9uqG1fgsF7kTIEwm{i*_scs*Gn5;!i5RGcY#*WDh#AH)F zl<3GvxIVL6#`aBAEfe)kO$Z@Y)mE&8hlo{gQ#^@VVof#{@qCGuxvD>9#^W&~7qY50 z{RSab4<=c)Bz33E!8D`YTKH<;MHR}xJ)?m=9`Q6DoTOl>66-7p6{5tAN}{lbuaNsY zj?b|6ctjsyInKS5Efu097xQ2Xn@|rt*!w_6bC2nSPvwtxSHV|ODnzL}gf?PwZ{Oti zGkuX)`uZlu`}u}14*4?1bFs_Tkd3gCW7Sll9E6kx+L;i*k9J<RHiO6AG<*Aeu;qg- zd?Sji4&mQ|{u^7g6F!11mK<^;)Wa9TMrxt)J$<3EeK_~_jpdJaSHo91qC(7(`-CQY zl`iffI8%aLg+uIhC<`GaK~xKBiRrv_KLjRoKsi%y5Vy8{+k(<do%|fZbY6P5fQi&* z1bi6_gL~DUtoT1QQw07sf}kZ8Vp=ddGd9>JG4we$J)G4C_qG(%sIW|<3bB-w6m|a* zm+8FpKMf}I_Y3;^#j!~rax+z`GyO`6y7?~FbYA+O1yki_s$ORrl^ks;z0}F&FVlJH zZ3ELTB{LU0)2s4>I=R1<>Adv5CVGby^!1$>Ki7BS;&Xf_jz8OXqW=tE_JKir2eu7p z&YG^|H$zhnf^{N68uuPE-L(j)TB|}V%eRH5bQeQ+6uOI`dt#dIwlv+`ugrAUi5{j^ zg{b>Ip-C^+4MDh`%9G!E{HoZf5GD2rZA7o2uUDLVbSW`Yilw2jtXV3=nx&+O`T;J} z)g$26|B2948x2ToObJ?75>6{hf~bwSOjnP9TleQell_Dj|2Mj+_a<DXt4F}C`zxW1 zz;9|QgSf93jx+Wu&eZw8xJ*}%fLkx-xu8)mote*_=~ekmoqrO%`l*NK*4sn$`mu*+ zx4jBQou*rlfRa!l#y(RdM)VH)dUH!u<RG0X#WGP?mb?nF<dqar`M6A{_@t^3^$+k% zN;8AL%sBci)T~sg&h#rO>Xv7GZNN)^w$cwos$ORtlpJj-z0~<{t&^UYUcRAc385t* zU+Aclj;XRWst|KW<q7qgTc{%FsXJHeCg0ZES)7$#>g2wCrc-vEGAD~(KgS2`H*Joe zlT8u$8*r%_ph8SbzLLV`lKsZ^t^h%{OQ%oQfJ;fJ5GB}mB5!cE_Mmu%uiq?evI={2 zL**C$X$xQBSzA<y^AROU)OK8^^RmIG2D^ordYN839xB9gReGs&hpE&;I%PO7#K_B@ z?t<<I0@Kyln>y>-2uYP<6=I5GDmKUT@E!Ah(08<qj<jpfwwPjtXNpybDOQry|94!b z^RmIw$WE~tqaZ{Sn(<H}T2^|gb003#dFh>{^`eB{hc?9BxA?z_JN18K8i4O*<Kq7p zai`ASkTac^-U`v{@6+AaXHw6$?#+P;bFMVQ6ocQ0OO==kF{hTO7!Azu4a8h2^nPDo z?>G)!*K;OQnq{SASXL^;x~8Owx*{cpUUrr%J3!KzdXdjs8{?wnnCD6_b*?>v-WshJ z@`%3=@%JJAzW*xzv~j}`>=0wux~|2aI{7`F>AdpgTG8vrH@Mx$E9i439R5;Vs>D=? zxwKJ949oNli}&#jTin|>Y*sJdFg#HW8+*)w?7f59sNm@oyH%DJ6{40ODlHt(7WeV> zzMw}nrB39Jc3cBjwpEBy{0AE30!OJ?y%A&5Y$=wU!m^dC5NnQ-qVA_~na)f9Pn3QQ zF=NA8V#h&+XiMp(&eydBJukg11@vZP0=_ZhF_NfhoA2EesbvVO)T$6ucDIt^vlgCN zQ^$(b`NeWeQiUjauaeB};mf|I|K3n@-|EbYKGVU#QikoWKv3CKAxhpak|PH6@D2Dp z!`JtfUU*(*ZrYN(Q+VdB3b9oxN$USCbePV|#v{sxhL|y8F5B@?A?C8uOP$=$)pTBZ z`Su05%sRz$9LB0Tb&n|me+4d;VijVFo0SxMAk^i7sLKOUuLfR_RZYQ7{LyYDd?l?y zl-{PK`viS`E(lf!^1Decn@^w=q#7lqLX>)5q(-o0(QEX6pEJ5X1Y1whSqLjUb6JI$ z%Sw{^8=%8<iq9NWA=-FZ+0YO(Mox@EGnbWK>f{Ifrt{LfNA&s!WcUW44GtLJ%Qs+b zzrC5&eJUuGIs&c2y-K+XF;?#=Y5b>I)-ApE_RLqSDd$pDyBhdPN`)x(zDSKYwYTq7 z%<@LP(!)3KX|#wqwsK$GOXN%q%p)bo@j-=h5K<b5D$%VELCt5L*tR}Yw#bGv^*S*M z&3sdOsgt|qnojYZG6z)3JyuR~O)>bjxK!#@h^arMV#GdLubh|?<SHEFqC#1g1W|Kv zna)f1H;&YrdV>(L?b{YqOsJD9Yo_zk+YPyawwT$&mx&sZIX0uZXN4+j?gDJOI07oQ zD#Y|;h-7#Xj%pfRwfNvgL4QXFQQ;+(3*w{m^U>?pD@yAA>Qox=v-F*A^y12eb(iJN zB$Wje@ZanN;4byBlz?D3-(kI~{YfK+L+Vb&Fn0oe_UXhlFL?a!bWC@_a8;7hm-L#v zIUU2fc))LBvX49av2;vN!Ia>auJ@%!8R;12TELG^#5Wuvf8Lbc=@`Z|;OC0O@d%B4 z<D;k3F}($|1HX*@@XO|6D08Qsy;Q)@bu(%led>VrbPVfaz|ZFy=J<oVH^6i2=_{Cg z{F0M@V9xY(Oh3VxW8L`VLrADwPe?EsB*PicWmczSvcL)WId5l<-;!K7C>_&ZFpuMx zs@_?|n&h@MKrmrc5thn=Z3oXt#~dY?QTU}h_T<yIreoNn2mCQX;0Ue05omPVI$AKC zMKKpH`Lf%m=@=vfdQd^d9as9~?dcfSu7IB-Co<2s@q^RRmfW_O)`0(A(SqIGes~84 zJvU~EVD7;$Ig?NP5ro{BV+8X$ep&9<KJb$*>6l{$!!o7xYhNuuX1MjR=MMNe@=}lS zgCqtOH|99OaI9jj&6r!XFZFdUJX_ES#V{b)LdEhgY+-_6q96W(_?9g`y%^)A8Z zJNnh1=cQvt2!?$ddyw}wWnZr_xUp6we7+n>kt$PiYzoUjITLfdNwB2Gq){SilzC|s z&PSCqHLun8>YyRs+^Q)(EL(rnl>Qcl>#=kLEy@dufMfSe&41UF0T$&8P3dV-LViW+ zV^L1flq`#Krlw?Al=C#Dmqjthk$x7%d{*mgQ8+`V3t5!^(UeS!@|dRdwkX>*C16or z*OZ`8c>YNhCy?Tpc2J5|*19OOaJsa18WV{xSTR<S%pChzYqo2`*J%{)k>ivakwzJv zMmal;V$OU9Ar-8p*g;2Qj<zVPH02nJvPo02Ey`V*a;!ypR8t09lovE*h(-CQrVO<x zhcx9li_%?13;VE`F&wNZ!!63mnv!EtqM9<oqHya2<;;9u;h<bmdBvh?YYIaQ4#gU8 z%5e0PL$NFh#|@#3G20-=3!xNX5D>@yLnz};*A$MGLK$mfI1(wT0*ztMB$P8v498Wc z6h{D|j5j01QBNpiCLlz|F;_{M*4ZyAN<IN_%mSgDt}CJROwPl;jwjB~SkdvYFZ&p% z>vbLq#&O8fNMP*)oyHbiyV{oeot6@e<3OiekxI4ILuMYd{G65&jKkImX|`;sPqma_ z9JYQSQp|t4?!OyR+TXG@AgHK<ao9Q$3_D#bpFLxWErs*U#0kb>Ym_BLz|Z5K_Z(o^ zI#){x#$oFuONxnj;+-$zwp6*65{$#v$s(1@UtGsOxM-*?b*+{XjKdZNu#|M29{Kr) zw$v}RlwcgTPI1^8{J;4R+EUG0N-z#vr#fuC|IpwJTk2gcB^ZaT(IRD**R7LkI{H|7 z*o_SoPB0Ezr-5phmv7d-?Y2~omJ*D^7Tbq?VA`yepYOD#&el?baoA!{VB5O>{i=Po z)I2RE7>6ykJavc}%j=^jpSsqTx=Kq4#$jum!`A0xF3+{4?$A<#aoA#Sp<;-DZ^Plo z3$m;{{Iix4jKdcD4?A5qKeJ_-Ewx)q3C3ZIy_b6aV!BH2{-oBH`bbL&#$oGBhplOE zpZ-T%swX>LIKen<vG25Po%L$f6kF<eEhQL-E%ualx}Ki%d^cO_Y%L`ihpn?jiuI7` z`t=zL2ia0{wUl5SwhA4#zR0eaU`y3%DZw~wO?240`m|49wxw>=Qi5^VI@@7u+E2gQ zY)k!4O9{qd>l~3{FXYFy^wV#DU>}S3w3ZT#!`8VDTN8tK&$gxhuB8OyuoV_5)7FI7 z=e^d;s)t`{DZw~wMI5&N^j_W^TZ$);(+S35YZ9pT_|^ZB^6UCpwnl3y!8mLciIhCI zA~dAeGreu88Cps(4qH)?%H}VwUylDn4_m5MO9{qdt5~E=Tk|)ppK43}R7(lQVQaET z4b-+Sd;OdiTj~idB^ZaTDGpl&|G6f|mioJv5{$!E%wg-fO&>SfQh^LG;RNHbRRXHr zzV^4ix!;yLQA-KNVe34RGTYZfOJ6%^OHI{Mf^pcI>ag{Ew_``zQY*ETU>vqe9k%}S zk6RwLrEb+yf^pa?bJ#llifL<YsmHXGU>vs27b(s5O?Y#|ts$!(zNN{6aoC#Xu=Q2H z^ETR2hqaVo9JZ#5lvxkgetq;rTWVl0FyRE_ur&izyS%zBeeQZ&YOIzLjKkIiB4yfo zbI848Y^mv5N-z#vGaa_h&v>-SmRg~u1mmzZOQg)Y@yUie&$Xp)&{BeN*qZII)pqip zdu*xSYbn7vY+Wc)X8StzH2)S`YKN8*jKkI(hpkidBd^<1A80ATIBd;zq-)Uo$DM6U z1$%=DCm4sVi$Jx@YyONA=h{-oYbn7vY+Y<gQR~(3-gOt=t}+N0)>49T*t!H<+t%gJ z9sJamx>!pI#$k(V4|d=C`qBBn!aF(|f~(b1f^pco6kOZZ;@p9Gwv?fz1mmzZU!;ce z7uT3ym7Qfv-L0hr<FHlkur>3ORqJf2C$yAc9JVS%%B+V?FBaWmOTD6{1mm!^z+vmS zE3Ql0QXgw6!8mL!w4@O5Juz}fe!$AZ9(_ntpD#NPTV4dJoripOu%(7+DZw~wEfy&= z4{y3~)Va3Q=~_xKj&xNzY@NU6`MYeX^R<*<9JZE-l$nQf#&3SXmby$!3C3aTGKZ~_ z+m5@|ma5lMf^pbd>PT13_#2<FrGBQR1mmz(<*;>B{L&9>sfV<bU>vqC|DJR`r=<kr zu(ix#YyTtpt8H8FYbn7vY%RBJA>gZfa@junNbPU6lwcgTu5j3z`|lfmW=kELNloT^ z*VKcZSAZJu=kOQTZlkTmmMYLvf^pbdNxXH~@?Y<ra-J<UM@tFDk*;cyGV8`8L*B}< zrB-Vx!8mNKa@cxo+=KVqQa{#Gf^pcY5vd&h;@Wy>?{-`25iKPchpk$XBAZg}4`TyJ zt5xpSQi5^Vii?zYx(;e7!8mNyIc)u5&aqe8w)*!46HYJ=TdP5}``*6YzI|tq6~lZj zB^ZaTH6mrEYr!SYpJ+=>(NcnO*jg)6>^JC6y}Ra-qb*yPYAL}uY^?*<t{dwn{d}%1 zb*+{XjKkKImK1F*|K^#4$5^)R(o%wP*t*J+VtGwl_VB-LslR9`!8mMPEmGP1#r30m z&i|b)^@f%bjKkJ7B4y^`)rYQIWJ?{^Qi5^Vx>lsjy7BAv@1JK&4ekdfoM0Tbt^?K1 z!<+wncW+zj3@s%Xhpl=`3ISi<!MA+bRvymQQi5^VT5m})H#$zZa+)p0e=ndDjKkIj zQ0+t7f4hF#$H!W>ZqZVLaoB1QDKigS_YAtrmU>7_3C3Y-qr=uK5C8ny!IrIET1qeu zTa6A|{XYHRX<O=mmJ*D^*7YJ~j+GA%Z@t2n>K6hNPB0Ezn?SY8t8~u8ZMM{CEhQL- zttOE&>&AQCAH2qvI$ui(#$hYru$41o{eNt!6<SI#4qHF8q!93(@WMqW46*X?MlB^6 zhb_aBV%=E1zvpOM>V7RH7>BJJM2d54x}C=jSvS<O^@5fXjKfwESUV3}Z}{#aTj~QX zB^ZaT8!ai?ip{!d_HmZ2@3fR)9JX$<q?j(QAKFq!vq0bk<FIuzr~$uOHxB-^w$PT! z(^7(Q*!q!3nRR~9h+Pe~RFRevjKkI~B1JZ1$n`^8>Jlv_7>BJ}9k%uz_$);V3w7cI z<FIv`NSWmoYki?{n3acymJ*D^){h;wy8EBL*OvMpEhQL-t)Ey@jLdzl-5wrp*?Lk- z3C3aTr<N3RV^`$kdA8IWT1qeuTepi;E`M?T?VA2i*;4=3Qi5^V`k6?X<#oq`1KVw> zP=7Gt1mm!E2dMUX@7aHN{GYZ|o|Y1f!`9D5%Ct3h*I9M86kb7y6O6;wot7;ExMrSX z<>4YNB^ZaTUx<`x>%Qd^ud$^XwUl5Sw(b%s)(z(2;W;_Aw$yL5lwcgTe(A6^_n23r zw$x57B^ZaT%_7Bup{?-s%bvESKGITxaoGBmNSWy>nDEWlwp3^Um~et|*t#23d;D6~ zp7pO0RvwPkQi5^V`n5=zwtoHbtfjWpOf4lC8uis`3d7y_<NKk5awqQaM!BqRd9-S^ z4o$9F%Mb`UG_5YaylO>d`T3P=$S`lCD_2ye-cPBFmrtvys$3CY5U*Off~+aa*HtgY z`)a%ZrA7!Sl1r>)MQzpM%1JA07FX7|STN?~&6E?7YRt%(w=*l_lr(QIs9aOEVsR>E z`huF;N*(o7`lQOss#eUbTR43|d}%7Zc*SB5YANzz*2+{|(aIH7i(I6-g>Dk^MkTLk zW!;K+ZK{Iewbd(YG&hwFk<P%WFtZd?R;%=rpL%cSY-Gh{%PUc|OO_CGVdbLu%9`@h z$`zNX#B0Ljnw3|SPhYuwL5*)oyc}<^%NHzPzH*UyQ&Z`<T~bq7N!B7JyS%n~c~#uL zt*R}ry#ny^$`vc?E?Y`Qt(0K-LMiU@%W77xNvAGazOq)7I>D@l@s;WD1vN-WI=ND^ z)~45#yMQ(2ixyO;@~fmKrczd_3Ybc&u35RLvbMH-(aM??sIXR&YRYTt7FMGkA&CoW z;=c0oDKldWRxDm#SyQyMa?vsnYAYAj)l|jTl`kRz8dff=s`Ta7tzdP{MUj||3#IR9 z6}fW2+4mwml{njvrxq8)R%13MwtHLBK}`oc+F81klf7u^f~pm{<C!c|trMV9{XGDs z;fy0`_#Qxd5>lFedID0J%6NXN@l>{oe5Y(BJ?8tRJ7uRwTlY=rQ8pPK22GZVs>7Jc zQc~kmqiM2~lqX9`ISS4x<;hY~r+044la-zoW~ZE<7Z%4uNO#*FLMA6&$lbB03#TDG ziXjc-Q66a+rDtqvW~E`2p6|za6jdjB9A%b<@hH4BjEaw=6w@$DkE6w=VU(Wl$9NW& z9#TDv$>gaBI2r>YU~;{S#^fqlN0UgC?To8r-I;7^R(3n%Dp_~NI%PZKDp_}CI%PZK zrf0I6&v*<NCL>)$<}m3+qR1+Cjw+mr_h2XqM=qyIcrffJrB0ht(%>YgM9IleWh7B@ zGE$=CWGD%Vl9Qn%q_~}olzQM~C<!TKCqqeiFuaqkXNz`uq-rynog~O)cakiV-AUq1 zb|*<R*_|ZRWOtHWldYtsK6@ohNq5TDS>~GV>b!DO-C*}**e#aEw-q?&!7^#KrM;Lc znPYOT*{Nf~tz|o9E9tS{FWo7-vuLYXeP{93+|GoTtGRz?(k8nzaW(VrOj>h0O}0bY zBi#=9ap~FSknfz|S>*MDOlPq-*=}+3dB-hh(bEO^Jd_R>YFg%~rzee0$rMdj_>{yt z@agpQ$mplB^!S*JbP@A$EnUXqsCbRH3#q2u;+Z{<)oN0BO78UUk@M!IN7D5GnI2a+ zK$*@@HSLC|n13%sX-R4GHRaw~z88|79OqMSdTN|}WG%9r&9(e8Ssq%nd_irk<Jnj} z6`wX{Z2p-!wi`2k{FpK0^T&@#C4xOBKmUv~&VWCzpkSQ9D|#=!KH_WX_rdI8BXB;t ztb5@b-o-Uo?^s=_Z}Dcz=bPBuywiT~Ea2?_<0JJ3T=@4>hYS0%CZ+zL9+@ZleZIZG z_2l9lTu)p%S<@@rxX(c^116&1*m0%N3s(w#<-q(wzbOiKg8Kpsd%J;oR<BQHbb^}? z`Y~AVTdP+9xgO|cw-@L)0P|ywLo_^b4WR!LnB$K^0Isuia9@frFim=SzcYP&(|ijs zJ&zW3zRqyl5%K=O>=~?Zou!v6$)ixn&#<83I!o`d;Ju+S0>qD3zWfIC&w;yRh(cNM zbDb&A;=e~@6cXvr$`6m0CTddD|4}>u++Q@7`6oD+K4#mSz<lDydFabL2LDxui|+gM zodFD913PgZ`j!F{cjH{~<7)XWz})S|dFX2f=6N^HL*IwMeC5V@=*vdo<+1?bI!iB$ zb`mfbyKx@+)&jH9jq`}#-M~EL#(CLkcv&ZUp_<tvS0I_Ns9FFo+;ZvZa3&eF^B z$k!MF;-@oxVc<%SppW@?c^CC<0Pe;k=wp4p513{*&LjWc0p>$D&Xs>mZ^m(`_qgb+ zeDTnC1~8M{I1hal8lyCJo`2QAU3~<7Oz$1Q-0#MD#P4}v_PB8#@jC=ek6|iy-<RH8 zVDjBKmp+#7`5JSi^ezFerVILR?xH@tu=PE11bxiEmx1}fjq}LA;Bf3Tg^SM07gu^& zUq%CSjvMEp4=;IrOWimReb;M@7{*U$?d>PP-F*aoOm8zVuefm@@jD32cW#_V{D$V> zzmjp$S^46j@4OrwcY}-0!g=V6=Lp35=`6h)fxB5_JJZMh?|zLzP+VvF9?!u(D7ff4 z)5r3CKZgk0b*At09AHK$oT(2}$kU?5lOwZBXO)&rI_r4+6qU_79$yOje4pW}$2H04 zm)Ta)S@XDiL=~p9m(Amgu=u*_%2UUVK4ad>g_qaPTfJy({+RrEYtI-z?}EzZl?!Ss z=PijZzjDoJaD8X_Cidt4z-{=iW}oliMLx?ft6EgEvUcT?c+RK`PRf~99k05g>PlG1 zDH2<F=M=`C_zfRni*|J?Ar6S^j_HUTB=-%JasPDeEsnFLF3;CzDPkw%QPE@=2Q^@; zcWg(#4=^8yN8z;Q@bJ2x@FKs6ci+NXz=pol!CHmg%CRqU4o)HCxo6XPPTS)dNH+r5 zFC0fG;H-#55%@(ojj0HybQOhTiDmhsI%XWep$b%URw<8c+-;tgrj*BXV#aIGAy@*r zr!r`acf-@8$}ee+C2C;=M4YE4<OB{CkSTL4F%{e0o54}B?L`^bGWa?zw`CMFK<OBb zAV0nc`ik&-f`snEFH1b=dknv)Na$Joj+D@s_|2D45E*)!gt${P61qG$N9{+Sn1RC@ zF2Z?+ejXt@DZj)x5KBa|cu3~@1E_tm#Co6P()z==D=~H?M(NxRHQok|(PS~s47nP+ zN24IHkF?t3TTZ{MMKR<Lue%K1m|xUY;Haf7dmw?$*;S?{9^N6hlk;PVhBgM14NdfL zz$bD!v1~4`io~*|vF#1@pofK*2V!=(X&Fjt*{H;_wcCp(a+2S!N}GFqV<T&Q>IJhu zXMSrGe3f&kp*rXI(b?&^aN?@9NxvM^$m4d@5mcqg2PFrLH*nU>xQ~mCFUyR*##e>A zY8My{%#FNf^IA_m043P2x*yJoIZ3FI#Gv+Y%;;m))llP3U>I#&`G`6y*RpWp4>yCl zy$Bm8@i?A`nal8~H<G|!=RFD!uO66pm}ioyEz-H;dp)qlIF<1#*5$A|z0DBOJdunU zw~B(oFN_x=p`tHJ0?*@c5#u|R;r=Jc415ytpApUbE<Prfyp^$!Y~hB6I6VRJ6LCS~ z@XCNed@NxwZm9e}W)%)||8Q%!e`GgL6;bCw&1<~`>QqkOgV3qCg1&#^cf5p-LM_ab zkgkQLxf$w!BkS0&s3FxYYJ3>YlNuMr$zq|Rtx><!Mjn9V7kY8tzG9qFyYUu02}O-{ zi&=@IMs4h`OiR>QG(B4QaU?Y9<8g<GngW!86F1|78}|D{8@D17+}?lV4#a5x31G$y zgO%}d1l5j%%<UdF1HFx(HGHY$4bJQcHSU9K=uwcc3%>E}`uFOo^xff!nd2k7_eRz? zbL;QKRGf)cRM7BcR%p`};BmZ~s;-SMhko45^9PE;TljF;@MW(xIMED7jOP+XQL%D% z2Q-E@)r0*cE~E<Q3mho?By@c(ZWH6ohQ!7eYPtxtv#F|XNW)d*eet7;#~s>U6o#Cy zcwEP}q8xwwi*g77AfXMLK{krQ$(tC<!W}i^LYuO|;9<Lk(%5RyU#WIV<?M%zscR#~ zcR1apI@&bR-%+%7eFx3e%nc1k7j@NKUufg2qSaf)pTUDLj(*=nn>ac+h696fuuRa` z6zmOkV9uQsdTe4?>8<?(A`>+_%=l#5@mX7qxG*AN6_M=$7F)wrYkjMaR&AnV>e`NN zh5w0{k+|kFq_nW8pf<0tXlYHVo>A%`<GD+siSdXHS}o!yI>W`r=i38Fo^St;aTL_{ z0Edzo&UUPbCTe3i;1lQCFPdKXpPGLD-?5X3=6$?>IS%jJG8;IaI>I(mZMBR`)qzp$ zu2u7R0-+z^3i?LC$QTKgSfP6n8Y{GRD^!3qDq1~4<AkfbE}WhxJMYJgi%@DfMQK%j z3@3)1rkXU4L6GXi{+$CCIv<=#!fsTbV3Sx0DWDkT0%_umcX{hcu)!-R|1YYB6r3)V zwI4M3xQio_>OXOgpLtpkj^4&L_v@R$iy41zgE#I_EP?Iw--snvq2peKj(gRp#HzL1 zBhqol3ftl+6LtI@#>r|N`7_tN=lQ_3bM?59sI5R9U@Q?;9w^FKN@QZNqT)B#3SEbg z-NC0sF!bn*9G)7oZlZ2gCD|Kat{V_7EE!sxX+)wEBH_>mMqh<%hIedFteaT4F2A;~ z@shD^_uf-k?c2K>k%A7K4;RG=TSq<B3;69tQF0PjO+;%$b;Q1$jei0ihgRSSgqaz- zkCDPC9=8)6tbZ!b-`H7LG%=c(njN~OB{4Oa%zOqSzPzauJ8(M`=Q-5jsJICcV^^%@ z!$73r-JUpt3v-o-oEC-Vv$HsFS0wK%94v{mvl_PcitOIk(2-GdG)~8g7|-tBi{q`L zeVQW;TQeHAAI8veROrzG#!I_D0JG!8kq38w5bcALeWbpoWUD$}sbL2WH!yR$^=8CN z)mhd%^C;;zRq3Flj4vf=JTmr|JAg%Nk~)RqeG}_JEV+r<ibJicV~J@P+^1C}reSd3 zR1a!cI3W<To2H?POdFM$ws!jzRYjyaa>d9lP*h>gVK7>!j2#O~$Kia7buk=4ffFL9 ztD}jF(SdEe9Bszv#Q~lNN2^hQ6D5uUjWICyzl5Um90hX0)eLhKsE~xpD8Mm-qd-L$ zM}gO1#ytvr+=Wr#F36$##uy;SFh`ntNbTilkYJ^AjRq@0bBzWa)@bm)IU4K}h#n25 zhP%sP(89ssG{|>07;qSu!GK47VKB%|84NDsQD=HIXh;5brsE|Rw}IaFzZ(tyWsU|} z_Gl1l+CW2{jR+?$xf!DYGp)ajIhb3%h(V{@q^97QlriG1E{qX4Ld+Z^m}ZO--|8{q zx|A^jRgB%~Qezv22@DmBFjOo9X<o`q3FE>1)+LCx8Vwo{QZ0+!nHmjvxQ`00K}hxd zPgo)D_NQn|5b_!g@{LtX(IguW)%ASB2TXfU<DHiFZh?1rkX+b#^xRxIX)$Ibq?zKO zCP!6pJWZjL+R$R>#*dQDKqh|H5obngDUPm7W=_I+Z#8VsBE~LbI!<0GhkfGZG_*1# z?08&3*<d+GLOg6%HSmNV4;|S}5j6bBs6=Ef9++@)76&!-Aa5XI^$?J{)KYT|4@pk0 z3&wWsiv<qH^fSYRqUyRH?0TkF$1s6FN4z@wDSENOm+JaiahJI09KgYj1``~`QzX(n ziu<6lQlfWq<^Y~Y>i!x_Ji$n)kzFT><)#wl?}@$nCk3jz<%0w_TzT?)27c9UjVhFZ z`-wu669eP{z?L9a;kcHdLRpps^)AI_IxpRmz{GC9vhQV3Vq!{krdvr6^}4ATzL)Np z(v9ELm;^1f(}L1Vop0kZotNJ8!L;{jHgm5ty(;&p^B<;C_+ENvX}!?27?&%rojI)J zxniaCQ}?l~6WV#{zZks#Hr~|9_iLu}(pv#$`kuUXrU?8q1;HFrA?7@L6i9jOe9W3^ zx&j1LeN-VzE*F}AaBtt>S$%zj$M^9K9(&XQ?19|Yx4BORn7#@8(T-uIL4~NHMrcy& z;&^cgXG)N(aLjKNVvSZ3y#G}<{Aj26OqU8#dMz$Hmr18{VicMdlwRuO+cnd9>Ae<A zonNRKA?#m_Qw1t0!Fpr5QxH(8RUyV`qtH}pdkWB$AXniS7ZqY^l>|}m<1(G%GbJiS z=^x^<Q)}vVViY<PNTruLKgVS{FTFQ|iPR41?He+_pKr+6qYoUlw|`seF4uhfYC1l= zt5mBHWA+oFi3aRpJ_Ik4hm7xKYH9}4ae@aQ50nNKqJ}$#rurt{+Y-D}IHpR4m~Tpg z^XUAPHshuHZeZ+uqXZrE&9-k_P<pA8@1{-XrT1Pi%~s_+yJ@5;2A|7oDzz%a^xQ8r zN$sp22&<<Q`s6AcQ>#Kut&*VL^KqHZOZOvS+Nm{T!qnRKZ3{{-b<Q`HT1cnN<Di?V zb?%<dci*Pt%tWPDg_xdZp{aeuds%za{{~dkamJ#gRESdBgr@qe-e`kphZm@mv3_BS z!RHJ|NvaSfpBGyA|JshnH$cDBrGEVo04v~UKhE~QA~O%`T+E<U40AT%XS*bNfHA8y z9n)Pftb;_KI{uD9=@{0XfS;|C>3$}2YhyZwu?YBCx@^Q_U$|vqI)>5#Kc7_@)675K zfkxntGr0kO1AlRS@{g5Qr(@W^V<%pSQaXI@nq}#jK7!$hMNHYA22>QcE!O>jpS?6= zmRm9JKsu(cU|1KJt|d>uRG*INCm8d!^X$uxyDS|O5)5l2V=>{2+G|t@{}FV>O6x<K z9I>Lx0x&p}(qG-CP;$~Jr=(E|(<tYqQRZoiy>IFYP3dD<zfMznSrqo>boM^3cPj$+ zv^3-Vpr&yDRhA}pZqO9&SgR;+YD#yD!e<b=o)+a>ML;Q;QvLjj#NA(&o{^dovM6V1 z3ip)__|o?d1*I1M>82gyjNL@XvOl4tR@rrv(<5=LQ9>ERK7fvORbft-dvia})Ezn4 ztE&HlCgkn>w^!MFhFqXyC>Y0oCbG2c|DN77^5_3!OD)$@f^qy8<N%Qx$X{Ha_k9E> zSFnB4HEJorIBXpSu5GJf=Z0%+sm)qSFb-Q{#c$fW@{9ww*iw8>q*L6~Z*`6a)wcET z%IlA}rMNUfCm4q<bV-m>xr8%QN51;BE%lj}5{x5VgGEZ(I70bP{bZdjW$w)@7>BKF zhplBhpC4*VoyaZ#PB0EzLqN6D_36d?XW3Gdw3J{Rw)jzwy(8jLN1u^W%9m;>!8mNO zpRsN2`r?1_p3yAjwOUFr4qHP-%FIJ&x^C4{f^pb7&S7ikq2~Rzt^2i<U>vrFSyBkd z?gaL}mpiqTU>vsi)McmZ^ItxIEp^Ovy{DxF<FJ(@QcM>ecdoGa8~jR3<$&Ydd1(YG zezR^&*zm~TY^kGEhaxXFA(isR{&<mM>C@dh=;4L-{#tojN-&OejRe-VbzyA79k$dY zEhQL-tz3~Z+gHUky}q)g=4vUyIBcEZuyy}ehu7Lt)mln04qHDEDYI@oe)p>*ZK)<L zB^ZaT6CJi59M(F|mfEbP1mmzZ%Cd!kZ>TZj8+)G|d0`H!U>vqi5-GF1CVsnomo2qR z+Y*e!*2yAe=HZMj$MvwKP?5z6#$hYZVQb%c|0=Mh0-Pkl3C3ZIW3SyuwGA#@YD*ob zr3B-!CC@fiJv{OFhw^QyGqsd@{z<Keqs5k455GF?q5JH;lxJuu!8mNmY}~SSW#*WL zw$v&urDp7@w(=dep6t0}qrFG;&00z@4qF^W?K;n$VQi`2YAL}u@=#{w)|fK*(H~u6 zOZ`<#shNA~m?ATBD_v)={^BKD>QyZz7>BL#j`BKfY~(~+>SHY>7)QD|&fDpF`Skbt z+EU$hXC)YiElwfq-3e~$mHj%-^aG9VI2{m-!<MY8Sn2vx<(F%0sR>$2t-Yj{R{?a| zyCUazO!|{8HA_ng#$iiVCoEg9zp-VeEwxHZsTGV=TW5(av){Prru$#CrEb(xf^pd5 zoYc<4V;aBvnJx7PEhQL79!|7uAt3#{y)WMmEhQL-t+O4rK6*Jc&zAb9mJ*D^);X3G zZM8kJ=T3XiMn4~h-~{8abuOrOy83)_{Bm0=M@tFDVJj?B%tN~OYV&{9*Qy)mXsIwb z&haZkid9}YziNEMmYT1n1mn8~clbAfE^R!Z{&l=^!4>5*D=U}joe_9@LFEE-0|?&E zs#)ivOslS3QF`$lTEZt;_?P{7WqH*KwRwR>Sj<f>QV}(koPeiNs$}N@NR%(B!sZGo zDioo1SyeUv<)OOHl+!><4*$Q!C|a8yP?x4z%2oU>!yX%pRxWl%2`ua-U~Z&fMZLPF za!J)%MNipbV5Tx=re6QMhMkQT!~CZc50-p6m}~xLJLB$>GXHtj!BSG5EM?35UrrAx zPnME0|DV%C%9Ev}%zvcykn&_HDf3@wJ)}HY_CL#5#Uk~?{wEn1-9tdCpof5>dkCP; zc)&?jiI9I1vh7;vbh^UJzXN&T)9H@Lq%;RdbW-Wg2&Hn&DyCXmD#sbARE}A}(q%j% zmf9>m;^$y{h`Tdc$0IG1ZMtWQEWDYSZhSi385u|4;Y^2<<;rR&(-k)-)0N>)rYp~# zOh;5*J(we|Zk~r=N-yUjn#%PMcJzfR%Bfv=D!VuS@9gxk_z2i^NBY0B@%j1c-_COQ ze`i_pe`n=bS~OR!y#DX(HvN=`AyGMx|2w-Gocmlj`M<N8#S7vKOhKRTb_6Hl$>0_J zbimb;uy1-ebybz<B3w<FB|fKTiiCUppA%=R`++%D&ovkYFWeoVp9aiMjpGn5xRj?) zkmS6W?s|OZJzZztWA_K{IE`ie1n1JnXQM)3rnzxauGFp^pS-RBW}O@7q3@@_{K1X$ z(6<wqSKT<5KHB}a#^|VYn%)lJ`k=1Rb(UW0J4s^%h@Z~#?{wfIE`6xS-}^oLdgv?q zKlq-V1KR)b2kmCU{(tJTIQ_EX&dl}mgIT%r%eorZRQ<jj{Pva**8;fm>X%Q+S$=*W zpI^8x??>BIr?TNY3xv4F?w39DsnajJv2&Hw@2kKs+p=H2Uf^n`U(Q@*{rAiJU9LL% zef9X|N}}J_gkP=>LUYR3X3{)kNiKQeQ;jcU_&zS1U#OVh4;n@Ioc)pv(ChZ8F9jR; zDI+7xg}k6FiK@_vxF0Dr`R{|qopl+>$OwF`GD^Na$%z?5_JIvE`g?VJ%#wr8KM0_P z6GZlS{4$I5cjWpzO!XyP%-F+-^h*}?WL(q-i}<qcb$%_04_kJKe&YZVag1pN-_zjp z88B1u&P1QfL?5%{=I={(fvHAP&(|YNZBV|$&Xv$4{Hl0gf{@CQg;r<{LMm_6>%5-U zvA|q-F`ZiQVGpcA83?Im5A}jq^&6%Hxe6zp0PX@(^^^orb8(r@OSf7M7~$)Nk2(Gu z-PC)BsTjVO?z2G0YtKOe-=Oh9Uy#`Y$Kk_tYN3j$RUxJ)j0;k(qmzq3H67EXUR<gW zr6vpQ|K5vB4z}rzF*hA@5RMDtrc)H=jOi4Giw>q!6mu#-s-j$K0xZgkG|F{plv~p% z_oPuCOQSrWMtLud@=Y4Wd|gF`igW4*IEoVW+hU5c&_NlUGF1rx8t`+n!cNWU_;Eg+ zU_4$2vv!d8<hxg|WB2BKWz4o7@Uz}A4%ZC(<i2za>wdt`8qHAFyDJb8Gpg6?fPEz8 zPc?-v_*A<1dAV{X<<T_CGij7pHH9w|m7b5%Fkd++e4S^uAjVW3qG#G>O4aK;wre`p zQ0K9F9H7)P3;FfKx_@FXnf6kVkk{|d#Tm9SdvV5h?a+H{spGYjU>plUy+n!w5=&=R zvG4b`)LB|eFpfnh4wAO5#-CPvYD>-1Qi5^V>f^9=_~_j!=~|(s1mm#9e$%$~+{QCE z+P0dslwcgTIQH3j_`&l}KV~nP-mRqs<FLgs!?wjOoo%Tnw3J{Rw$w{@#(|F8V%y8< zyS0>H9JV-Fux<5wW&l>GWy}Nppq3JhFAGJppf0|0NflPqRxYl?5|!F<BOWhbTvN5W z65F!K4jl0@&ih46mN*IVF^j4eJ4w|`YMg}l__0m`Hnv={!eyy?kxO%R?Si_s&e&Dg zu2^tIWv!dIv}#2hF?J*bPjWR2YC#@TUQ@XOd&pWzs-<Z+w)TpZE3rqX3koHgv3$|u z?`5uba~CdlB?r0|S1wslx7;)?8@`rco?Jc||06mJ|0BwUN^VN#AVd}~E-#ZJA{*Oo zmX}s7tXWWF@1C1-PjFOQQ9@#cQe~A_tV|Kow<&9Y&Zy|eX_$1;%_W0$j(UWa1wc<3 zS*~+&l#CZgKd`4|i5)R#R;8rGD;I1rFD{?&Clr_u_wbMSe1FD-@uv%(&-ahY^ZgPG zL*=@ec|G56<ZJ0v*U9t!oi3c$^ZlKe`kx}RcUz&?^ZhmqBs=o4|AHPr*co~~w?6>f zH^AJd#}IZ&UbxGFE8vTv6z7HG6UW_n74&Dm4ua!&=7r<bpcR-C3Irz4N?y2nuoJ-a z((|a!^!)_5qk#F{5paJ5?qOgSa=r@3V)L@Q9rV?}oXr<Ga2$TUaL<6g4w!TJ>IRNO zuotcx^d-Q&rg5FweF3-+fq9HCb>KR~v3q|Gm^O{;EMMZly$Q_ueBA@bq1h{boRlsH z=24C7%q|D;XMx$Rah=(H3K{V?VD2n}09<GKmIL<yFhgSscPu=w_{|3W<Px9nI$U&} z+2#M;B!JnXXW5(pdFlHT=-+7!_0f6ZvM~2}cq-~DBLFuNmly6v&_~Q6!ggM`SHb>c z7jSEU+c?+O#gLc2Q&17U2JXc93Y*;tZV~8%%N54__0q?0>#qdv#}x|IS-HIp_V0jc zT%d3PcwYJ*guY(`Gm8;`>#QGQzp)jVH#81np88nt{{hTCH_l_-?V!d$L|kX<WZwbT zd$Ga<;CZbxGG9jl6L#Y~)&=JSbGaMmieC=&H34(48|R^K8!#`saV~wFb{_yHScw3f zl@1Sm#{)CkjdSVabg>ked2XDCzAJ&b-i>qV%YnXofO*=D^U(JmFrT<_E`5w&<`VQ9 zxahtwy=MV4*^P7Q<CJ@`#)v}vbXH%gfxG$$`dA)!0CT?^=aJs$f!X86x#CBChk)sQ znTp-_rFRrC<J~xyKIY#Az$|p*JmOam%nfdwOCKKxf3GnrhMni%L%=<G1bw5R<ZWPr zOO>|oOYiZ(jCSK(@uR*{U~sg7xbM?<3ov)NaV~w#zrO(Uyc_3{e;)#K$c=O9%YeRt zRVr@gZ)f#yC~%`R)=GzmzR6wGcRp|zA3-1M-&$a9aN|7E`+Hy>b>m#|qrO*w+2_W2 z=<9JgmWgoDb(UV1M?NrNH_k)fd|)nj<6QBhz9wL9cjG+tJqpZLH_oMx{mWjBK~P+0 z<@*tEhmW9-<I$jHsQ0+&tbFl^Unwwi-8fhLsBbkeH@a~i`tAc}iyP<C$NYN@m=D}I z4}HPqScJnxXQjiXkL_c$#t0BUo#o#dz)d=WKBl*#i~80AxA6%2SfB6iqP|Cg+j<0j zjNe{h4!dz4`8Vha{1+`Qy3X>C<q-yEx*O-AZv`+{x^b@ZV0v%Y7}}-ltUT@mZc7*R zz1Bs29|Cu%3;G7GKtG9#&dL{$^iBrm0yoZ;UglplF!gSnhrYXj`Mn$G(w7N+J2Zyz zqw6gHUIA`z7xaDCMSZ<jqVK>(XXT44ek|Yd8Y4jbbQZrDa5(fxTxa@NpKH3P?}xzs z<Oup0zej-C;l_EC#|OY1bmLs<W%*`R<Cy~&os|v`edhpko*U=VHxxRSYK$nvPiOhJ z5xAR=ppW@?KQP-gj?YJ(>1zY#?Jns13YY<_RP4Slz4^dQbmKhIdoeJp-8hf@yA7Dl zZk$VB7NYeeFfY1s9{N54=CB**p>I$Pc8S16_kHP&0yEu>bLq>4jupV%;>LNz?*U-` z;>Nl3aeRAIV;DcW&dT>a;6CYszRX&s$NcR~-$3AUG}g)&SNz!C&gr7Q3xJz{1br;u ztGlT02H<W#f<E@Ak9JYtR^VPdf<C7ABVyvX;H-S{DBoegob1NA@{j3_0W;T)^U${% zm<?{6OW#1~+pIB+A6;kV`v`E&N6^Rkz0*Z~p8)sO5%dj&zU(^2%66T_?-bw)G}g*z zkMv&HMSYh8x4H}ZZUg3CH_oFxwgL098|R82^X~vLt5tffba?0+2F%HBoQJ-c#+W(S zS^muhZgCg%ZRn!DTY$Uk2>MvQe*vb=jq^zFC%}B=#(AVS8;hQ!xbO-0efc*Tm<!yv zl#dH2KMGg1#_*mloD~kIeuO|8`|;bmfEx+iU%G%B4&2|nfIAMj@4A2+0^G4{@sr}b z(lG-3@m;`iUNXB2xIw_J>H_X4;5Kyu$MoLO1su!cu`b|_0q(6X;CcY}pEMly-*?p) zzIXUK4VPYDSnmg|!%vFyDv!b7pWFo;`;AB!a7P0-!vlv`k^fh}=e+F7s_OqQzUO3n z4&v&Li)GRi7w0^^aP`L32UlNQAzb}&v0gC`SuSi-Y=3#U#^J*2Hu-*eCj3RXYH>B- z`ZcarT>rq;jT7Ym!V#W&@x4dt6~KM!#k8beOjqiKTlqe-ngKZKratO0^MQH5^fTQ| z^AKDkaE-wg!L<O_dR#5I{C<RS`Ju!QC4MO3e{%VeiTpPz{&TrM8&?jld|Y8%6~0a# zR9SH{<7LLpjGtLnW_g)qW|o^-c4qmp3^@<u#We9UT?K_{6vER<gpVluX2ECqT>w7I zne=MyBN>uG&G4p!PdnsSXg`NOBC(l1=;GklGXOtKAN;-WD9?0|K3Dt5F5%w{5C1MG z^@@Dy2H+QHejEH5;IoX#U#k64^r8O&eGiuKo3tOJ5B>pow9kB{{4DLWFPV+|f54}G z)^GCT+8<9J@;l(szT_wPi#0!2^Y7L7rv8okKC1cq;L|=t<!7GuITld=?eJ!S&-O&n z)!Ls(AN)P=SUzlz<S*C$DfGeLqVHMm<lmtEQu^Q@hDZCXU*un){Q>Zq{$Imq`bTQI zJlcRhmiLf<8XnWn`bGJL+CQE?`1k00)?@NFXnzuY@ZX0=`}h<7#oFf>LjG;=nEoP7 zzf${W(Fgw(cufCMnl4MTuyeBJKceYo{rsW6KTq>Nhfn)#PmJG%+UFSCjC(q!e;fn2 zm#Gr`Gk6dC&%<N-**B8EMEgIW5B`1n-mKr(>-))?{}FuJ2UO(cRWbAo)BHQ(GyRJ+ z|61*zqxo;cXZqO})4nV-!5^*pf6?@Q+P_iz=WG5q@Kf9W49#bIV)-|~Pi_CJG=B_z zM0zVc#^21}1)4uX^Y7O8>|PkZ_1cfnhx~i+C~xM^MVin4mi$}brM7<=W}#<-=D!R- zwf$F-4*p4+|B$|iDxoK|UqT<mgYalSsOht{&oO;E^l+?7ZU20Xp#Ib8L;hKKsqMd# zbns805B~4<y;;8+^?kACe+ZxUAtFDQYM*m5%HIJmwf$eC`DbhXoA6WH{}q~ls^&kg z@6G-xsqf1)|10>kAJBBOpJ97q`M1JPZU40zC+z|8+lKqp_HWkHk;H-j8;v*hH|YB! z&Hn&C?c-0<e~I>`K12Q|xKC~WS80ABeehp{m)ic9X}<K=;6JMG&Hl;I_fzSEe+VA! zo8>b{^Vy#^OQAU1{~FCdlRo5MgqPa>FVp-JHUEBnZ>DdPzMrD`pTMVmsFL*K^A7Q4 zyan+t+@`kw>oosd`ry9<FSY&4QYzwon&v-AANOYebd$cHrupB&Pi_CxH9re}SH}Mq z;23|i{a0xD9Qugguk<}V#-m>QVfx^|3y<<<`=3iXaM|?1{}H^@_P>^N@C)dJzYAV! z`(H{r_@n59|De7HN$5@5kI@JJGkCObw*Oh0KM;Ob#{ZqbrMCaYT0WOP^#4xZoBB8E z`>5vchfn)v{N`!?P|g1t{M7b;wdPOM{5RmIw*Tdte~RY+S>I=B{|4=sYW|n-Y2R$0 z7ij(f_+1(Qp8+nl{V&w=$J0mp|3}|<)BXnSPofY0KjG0n{v;DF*8VZ{!T&M5)b@X+ z=AWhcufk7l|Cek2$(sKseQ(y!AL{$_H2**FY2R%B7i#_>_{~x%&i21r^Ut7<_`Lux zwf!&A{2yrk|LS|QeqXQeCu{!4@M#~aB>nTXKa4(zzkrw8{;$>ib2R^N@Kf9W3e6v_ z`G3{-{j`6h_RrV+Z{er5{~4O!AAVQH|5o4_e=~m<X!#NJ5&vK7d%yPAYd=CC{C~is zyqP~2Y5ow+zZHIJ`(LN|6EuG}{M7berTHgm{=@nnrX+t8+ApCG;=ke1zS%x!YyQ!s zqx_FF{yzs?YWuI$@+Z)T{y*q@vwk(|`(n*+hfn)v`@dB4kJJ30!%uDh*J%FPn*SF3 z)b@Xc=AWwhPw4x;+D~e~O!L2nPy1&3pQ-sr!SBlWza6;L_P<EWkED<E|5o3d`Wy6p zk>>vkKJDXAGT{>KA4?zdKZTdt{;$&fLd}02ero$)ruliA|Cqk-qkTjBQ#Jn!__S}9 z&m7Gk4BxB$uhIN7=_7tG!Aoubmudcqn*T?AZ>DdPzMrD`pTehosFL)%$Nyh~oZ9}~ z<Nx2mPi_AzwVu=HL+MlcKBWDdv_FkL_#N=3Bk^pXbLb;56F%ENHb|1Siy83o=evma zXehJcv;AJm`>>K{`Of7%I(qH|Gy?bYc%Os#!Dsp|<~=I<h49zozM1zGN*-cjpX(^J z&-O3&F%h7B=AYO{M?w1wa4+^Nlswz7*hfTYe+=%$e!jBL`Y-k|5Ym1N?oIm$O8S`w z+F@P|$8|2Q>u@oTIuNf806GBZ0H6ba4gfj;=pZ1)aqh(Y;}}ZEwoSdv1NL+5D-i{G zW@fxOHq$oa$b4X54RaC?p6ZY_J7#<oTmMl#XeGwsSR+mmyA6Oc9{yk;AjgSqK)@)@ zPZZx9F?@;QEwLnR;2(_d%)J@@xVK`7*$>2$?AUM?Q`zQNq8OXsm+g%uE^X$2^7gj` zE(NW)4X2SbzFex5l!T(d&fX)t$VZcthIin$cnAMkHylgM&DLrYb2DSfvdx8WZ4YNL z6C+!E^@u^Jc=tY9jTvP-xD`Gzv^Y|zTbLy=L&Y*?{3Z8x-mibU9^R#`0(qRdL@BLi z_6}nY4ycIFMGWI7#f)P9D>4r%J1-lV6GuvBn^3Tf**jo)Z$}%BjTzeT^*43hlSR?? zWW(2A$NM&X{cT-wvZ&Agt8i@378cC@RXo6__%Df`|DE!2&HK-!4wV{LD%e{u!xfbE zmE{szf!}foZNP7ZgnozLOC_`ezl$XF4u07y2BmFseu%SIP}ZC&1%2FybcuxcuaGJf zp2_3SM#YSSJYRsd<wo$Nl5nF=edgS=JabMm6ej|NQI#48fr<YC=Q$!Vb&?zk7bnRz z<xuFzC&@LaBNYzwAUXV}H_qePk)ogF^Lolba$z24Hr+Z%Zaxo^yDF;`|2>Wqa$YP& zEOJDer=A>0#yZx2`Q0zkCN}*XspTnmVg6^lI+m`~I6MJ|chy~23_+ur$F-;<cOr$` z>ZX}DZu2Pz)8Pa=9DS6LsLd=*6yj8#oKpOs`rJ}P5RrDpa>8SA<j3j^Q*B8~s<yQU zaYSC&JoC;x@6L4$USeGPFRjDxknU5EqAPF(Wp$A~b5PdlSVMw7BwAKwgR<7Z@h9l} z7{8ps1${kGW^oDe<dT&V8ivqx37v#corL&5Le&zgv$z`(;(RvfW8G1>Xy~z>#m1hN z{aK~P%cwGS!Q>==YcYG8NdVpa_yg!bqJ?kb__5v5yf+)Z$_m}^Ds)7RttBn{f;epF zi#;uSgMqft@OqGaIK-!0G_V8SB!48ZQwO`*!GIkM+QII2u!kM&X$LdxU@tq^+Ya`z zgPC@)uN~}X2SW&!G;Gac>=@dIb90K&n9;k8;F&K=mf+;AjZBWDrv#@C39{isf88fr zR@L{ck9_fN%ZH(=tsx8s;0Y~-6xdPR_*SU#DV(Iz@@`h7&rYMIl}$7f`ePgGa)H!z z*?obXzbe}BOh9s2ncpy*Q30E2808R6hJ!pW$~qttZCIGxsaOt*3^lSs@UTcD)R>`y zlQKe$-$MVPXl~KoP$SpAlGA&byEB9yEzK>Wo<l9c_~}$#V6h%+L%kLQTOnkUO{4dN zCenvmGU7!}$wzmXl1)INcOK@=kH3%P=UmdN^<>4*^~TjjyR4&IJX_AZGoz~v$UdMd z$bokTuAnRz^3gvi3+Q|Z4*E9XcaDVa!mpyWAT(QO?^>Z=$XrD`!3vcjq$Fg6kCYR{ zaFid;4CC$|JjBevft(n+eh`~bTfh!7CIcAy7IVa$iEeyqxML=cRjeI_D<2ob=$XgC z%aUFTyM*xEu*90ISmI20khc!D;)9YJ7IaLO=K^J)sx~2Jd=@jN<S-h?8*?y#SH(+> zXCi;*D<Jf79c{)QjMZnV!`~(vQ!<V6jJ!STzb1b*j^BaT9z<er_D)qiYG4Zx_RF!r zV5zkJ@=OjXE3y;wkvuuwY`NngwpEB9AL`T3T1&2vOB6oCF`a93Ff?`W0G;iTe450$ zd=1y;`0DyOPUXA=ttEMWwpiu_As;axJYjPFn%z9v)N!_2t0c%xj2V+h#R{*dxme=* zdUyhhcT1P&3Irn`^zm6jjmDl?%u`5>H*g4PiLsBTkRlaXI7BWE<wzNA=mg>b((O>C z4{4NRMk~xA4#)IFlQ>t*oYWP?^wi9zOi#{1NtWf~)F8>Y#8kkiW+$%7!Qid(1liFG z2UunMjO}&inW7$L5<?u+fOH{3d?XCYi!C*U;UH6nd1_Dw4>g&&6SVn)V-}!-EyuBa z=2@dWUi7mv<FK58Tlga;ytbE=5#n>L(Le$Y1kG|D2wJze80T7*v#y3yI$+~r=2(gG zQr^Q-O2)19B87)=Bq(MIDd&NbUK;4|KTQ3BPojB;cov^|?qmE>HWKH7pXh)h<&pX7 zbiisKlURh`S_w7aS5?%z5vmcI-L82sAWtV$>EgCGbyH%=X*hKh`73EvRV_I!&ST(k zf)tuu@+MVK(?&6vga3}4lArKn?v%JmRg0Tc60OF}RY}!hjY3Gx1-<H=@gZ9ExQ@{9 zC`V?g$I(2g)zQLdaOCJSQUCR{Cr6G7J(9OCzATo!o)Kb0(@kLVsO^)by?HdY@vg?! z2WdW58e97iX-BF7>E=||{i)fAb7Ke2tHaPLxxq%|><yUds!^>+NHwbc2+8x%bolHh zP`8-zIkF#-!PfPqu`09S!{E4&&02*s33*~KG9P1@nhQ?ADUik<o@M+}sQ7OJWM?Ia z<(RXfHpr2><sc%+lVC|kohWY|2Fohn$0Ni>5%f*5Xu1UKLn7B@$-!Pcsj?$}tQi5B zf2t#daS}4}nf<G?PZ|lDn!}AoNT)aTR7y3~3(ua3Q+$*6<yJE%*MD@gpQ_a3-nggn zWQJ~|ktxLCs4?Rgdl8BnZ}Q}?f>NBdXfz%Gr8H5Ri&F%XhsgzNXsOY-2VuhUOYsvX z0%yEkog3tAyn;VV`BTlGwWWz`>TxyUx*6B)scjU;$(95=q8lq3wszEg7M(CJx1z3Z zS)yQEb2L%7|8D_Wc_g<P(f%_opE0g9abNCQ1of%EEzt>AZ>*^6+0oMQWoY$*!q1|{ z{>MW=h9-T6p5NH2_}!`gVBx{UtlW$UkD&F1rX0ipwTW?s&(;nwTB3P~!rGjUmf}Ej z;j=ZL7+YgWoN|go-PRlaXdWUH&COZYdkfAs?bv@NVigHAmm*@-P?hjUjF+N`Ywm%K z`0x^AdrJBOrNPCC((d=hFbiW8K8+Z!M~rS|$qRxQMF+_9t=Nbp2Cm0Bn*NThk;2_I zZ^ssu=4O-_yQ0QBvBY0;n_#A-;l+;9#67w72uHraGy1IDEF+rS95Mcm$YqyF95xpl zuOo~1Mho|cZd#14x5W64^HOtCTC(VwsIhn>5{C53ac{+q?}s*?1Y|L0m;Ok{4xF<& zF4FNlQ=Azs+!wmBCk#f7?;>CPy*SVjHFiciwng)H#5%S|3vrb0o`~^kG&JSKyf))m z$yl8FTiCq%>{3kTMm6m0h~zyVXo=vo=sYHES8c9Llg;=<j99P?d4pVUS=}qIMKCq{ zDV%RS8<ACn$nN*BPBAH&nYI4Q&8WJeP46H^r8tGQAd<)^OJ=s9`hB~XW59%_fw_@n zCQgBz_3fTW;3Z5l!cB1`Yxlkq9G923H8Jn6n`1491ChLDqz@D0VD5Q|;MR8Z3{s6V zqVO}B1yG;C<lod=`XFSsG!fKuJfS=jIk~k7*#$7xC^FZ_3U}4?*cQxfZl7WF261TN zj@s<?U$QSk%Ls0%K!w9|(DtTaZu<|AcSd6yD3DCT!-P2K4^9V<k(h1-{Svi?twAZ{ z2+pvUjE&?yXYA&o%EoiMKa3Q<%(K*kxh09<u1KH__cfnKl4Tvb3>sVGeNg|$?b)@j zv9<2-I26-!n$@vmWNTscubbn;m)so9dq?TU6GF#J(B1K($*%hcaxphcGK87IiqiNt z8bGAu8CI_wA3&Jg96a;I```%Cc#p_aUn937?5$O$Ej3hyEj3hIiNR-ME;Upu#w?^F zHtu=pW3iIM?kQ4!$)&B*(Axhz7`ZcFCJ^^xVP_rgf<AfJ$v4+4js`tuL^wANZOq_J z!vtSw<9BGHh715<4gfJ8zKf^xhOf{;EzX@Q(F{euD8&ddihWd0!{NT6O^>j<NuJ6w zDNUZOyc3kCiKu>n+-}^^D1pEW9q(eVJ=*3DJsm}v9XqfN!t<d6p+`}vibf@3!TNVY zv5r9fml^S+NZBsSccqwZ?dL{On6-~GB0)S7H#BDyMzU6iw)^`+dud`(&i*$5*v^$! z9Q!C{4AV?0G#TH)7);^R+l*L8b1V_q(wH?VgN>@?T|W1I@vhO5w{_RPz*eYV);zp$ zM|^NZ+gJ0$(!{cy{oJc7a;POI)R_E#sCyImsH*#Yc)|n-5S<{XK~V;c8bvXXpovkL z$wKbH1j44MK-hvrmP9g9a0L^T@fu65TdTFSwXLnTF13nFYcML{inijeV675y!KI4U zn*Z~B&$;)`y}3i^ufO;Gzwi0v-kdr2dA{FszGpvoIrMD`^re0U=$wln#<7CAij|s} z8X%f`TK4?Ac{mfKkxH(lFoKN00@=}^!ZsD(w{&5iyj2T=6!ZIdTNJfV%SsW_f}J7~ z12)M@XXpD6vPl+2b?O;CKO=A4k()Hc+%WVeSw7W_b1Vk-Q?~5|b769wG2UTtJx?>Z z5+XXfF|tw_102TJ@cJ<XJ|Q1bGNV}~(accm7fg`O-SV(D70VR8W`Kq8%G<bqHm3hw zoj=zXHpyDAj^5RlGEX`4m;fbNB`7h|FKV9TGrL57Vx&LXm2^f}(9I{Co8lPz<i|}^ zD!u;2!4bzpYE29~jbgb@N<HV$(%9^J##W-rFY?1>t7Lh61Ijr})d%NYw<<m>g)@h- ztcSpWGS_n0Om)zU=%WcSCWHEg>j?UvxOpIP2b|16J$yCdYlLsA__)G$hWIXnZ>IRT z6mThyU|>ATkqTRE`&!^zfUB8-8|<(b;H#6c*X=L>0%wUle1$PU>A?WD|B!nO!N95T zvHb}KSkJB$Uj=;B9Sj)otrcG!J{Ff?pa#BG;+qEFYVpm0?+WqFgs(+>bKq+g-vaoO z;#<DL%E#q*~qtb^(@FH&JM`tSk;Bj^Epo1Sa;I%JU%v%`=y7tjvLT1OlB^2epH{ zO#kGb1;-xIRmG#!YE-o4n;D@stVCF=#s@{CXlG|yBX5rO3$VL8ntLpJ)Q63d`hw<= zU0~|b5kw0RSlm3o4vb>VAB)Hq(&n~`wsFI{reZ3fR$68m$wgQ$K?}YpdrjBMe)N9* zPO>q(tqM(F-wWq3K;O>bPU4s_Vp5r0fnK>hzhqIi5vqJy^=oK6<z@!&le9MvlfVt% zv3R1MpeJL5opi|M!uDP7S~E~F)~>&9_*NKpdS}24>aM_2_~ziq3_OVQEb;vf=lSB} zq)6Qr;M$&=2@Zx&g+;7SwaV(h+)yzmqc?pC_lrQ3NvW8$@T=tcLzCxcW83<$S(g3v ztA}pEF6_zvSP{xM%o(|6umwHXo{S3zpxuNGCPli=EN&_718bYy^j&_#G{}bX88~X- zpCc<%C^@tM1`(mkLM+J_Zt2>ZEMJtYilf-bv<GFT)+sZXc5&=Gb^4hp+nzVZ&De}e zE}MKCH%G_K9p-r$%dIRh&pKXBUrJ*&P5sTuHPI0-c0IkTk2%?Z&&)_(pLdU>6XO#6 zZ`so?bk&=vd2x07tMDt?$@}K0c@67IAQpVOYe&n!f=x%R`8d?N4*euXgMBa{+urqD z#ehAruBTc$p!X9%mcNB*0Ze3WY}uaiVrLYCy8KY<PpG6bBT>cENZEIN4%F!q8Qu74 zFuEx-uOCqz|Hh8f;iziTCIZB(2ql2cdnfk+dsuo8j$q>IE`{!l+s0=~L5e|b7Hk`8 z-GjE&RH^0Ixh6##TiMQ+P$noHO3Y`d1HS`^fAp`Pj(Dw;d#SbjE8KJp?ZLEP4^q0c zhne<G(a?i0e7$w!&YaSXp*6oD9An`u^KHx}urRy7wD8enW?pA4WJfWO%txVWZ`s~g z0@-|0&+#ClG_H9bv8gV_@Vohx7>CI*q#<IIZcL0Y)bw<VfkAhcxmEJFZxmx!W5kO( zdnup|0xHcXtAR#W^-9cCqt0r`nNeZ3$3UpjMdj(HewciW*wVFS7Y0)t@{ib(yhaL& zib4sa0PS0`Fbe}?a=h6neZ1)aYONWuwd-lEch|ux9$T&7eRU4te!=A^CNa#WQ24V- z{~4<KXX)pdlg7{v*-KNBPx0W_R<;FS;JA7N5;9`jh)*Q4(PKf^(wlQEE3#@vli7KN zU+Hoj#Y}-^`^r%qz)Oo#i9%Bl#k$Aw$p)nIsS$lMs&G^5<P-zRXdT+nXg6}XD~b)< zYiFIq76pZ2|EA;gtsCZ3E4qnv<zas*4@dDXxVf1XA**G_u$FHQ3tjaGur}`O-LidH z%O3pv8Gg3?uouh226zK(HiBEb&MaUt&XHm~3gOBws)nMx?%&e!c@)ilHcKsOG(*<L zo&8(dGovM#&o#}pt1MR((nV9MET@0wD=qK#wd#je^C2@QIe2ZfOAu}a%YPQdEzRsf ztR59gKcwg;Lx@G1D6r*kv(y#Gu=144a-36*xp#O|FAlpoPf@osxilDB^E*Vi@GGW_ zHC>Wv=P9exMwYN_*b`=4y^*GaF@qaRw}x6);>WJuoCSVWiAdx|OJ8;B?+s}U0od}l z%605HmpgJZi+i}joVGbL^gv>BMie*mnuank$9$gc!`tT56_#x}w=tfNFfG6xkjSiT zJNt9`DlsvS$~~1096VQqD%zu^uQeUDa2?Cfi7D}^Ec_UaY1ebAIR$9>ThL>6K$X5> zYPPP12xRm#(IYn@n6)&kBG}HE`-oS~jVx0rV%vu)li(g)TPE9~tG;48is&~V-12Qk z=!y^UQ_|5k9&_33wYxGa3%9IODSH|>?~>VTqb==S%^ye6<seI;#kM{Ix+|jLueb(d zPs%8cx2aY`h~|scv>4*WJdUj1$ax)`k7BIGV66#0tjJg7&Di*1Z~n+{d3Tu6)|$5& z35{(+1~A24kMmM^Q>(N_>?hzQf^E38_^Q~PjfAoGwAEzb4qySQkklTIok9<&NELpy z*2v`#($^YTiDk=}G{W>CI!1o7fURN<E1%VatF8m3k@{2<Vm>9U2-?;WebKO@6+zpI zHpOa7Bvu$1gw_lcYhwuxO`jeSNb?&vPc|E}Dslh3Ac_uO_1J7_YnotlG^wi7Mk|Fz z9e!4}{D5xtLTfI79iz#jyv`6-A0$qQi)z^}%<3F&1)`0Uz^IJ9q`8v?7Zp_|az<w+ zz*b+3MAE(~o$wY6!O~y76IVGW9xO)F>0`yE6ql*c!uzXV0}(Ey7!?*(5xtN$RS`XB zugFbRS<s0k1dTocXunw517T~N;Zp7&#~t5DGCK!jILg$qqNnRut4olFiKDdC=f(W! zYe$4KCS}9yoo$eX-}0Zb7;ClI)j127n1+3E3jtEoG(Mzo4US;oWt^iZZ<&Ey6c5fF zGXulm<192Y!0(=)D?S65dhxvnpSo=`5^a%^w+cRWm1|2XtP#G`fei+JYx~}XZ>~t` zg=Sje&V}z}!F_Ls^+vT(VXNR%xFN9MJmKCA-y-qNg(WJ$%?w-)UzPacC`aSPw;nzf ztDW$1U=s{{1m6$Dw;Mjrc!Pm2;rpTZ_P}?Y_`ZYhN8;ntW!H-@6TTb7mj&OA;>(8b zTJgzE3v~x21H)?!^Dza~BmK$gM*6sI6~rhXV|(|A-*1?Y2|`3y7kDuj(sPAL2>mN& z5i$wDT%d*10DTL^b8q_dsJT-Xi{;i@EP^M`8rbH^))R@NDDq)dxVVDME6H+Eg!nXL z4nsAVbIq$TpA<0)0sWf^K-1_GE#OBR!6$KV9gStVVW*gPQ<D>F46H}n6Pj&mLSv}= zNQjsFW|m`O7#P;Y+&9t3j4p~M17?OZulirIHt!_awp4du&rowI$z{%@;wGk_uf@%J zwELs2snp8j<7yTaMT5MtYcpn1Q8dRGfmEZZNnm;P8_b?wL6wQ?tx4u%czZqPk(fCB zwd-9BysC4f$?BY#SsjigtFxk;D!E3E_G5ZZwDjAiBRCS+0Rf>04#J%JUCak727KG~ zoPl}OrYs<qzg=!#&*F=&{{`d77a<58^57ToEXa#k<^OcVH_*`^ivtHn&GDH~B`Vlg zb&iJEuQul3!M+_Kxu5`<j00*_pmU%ABA_CMq{rF@KOIX>&+6os^Iu_kw3R#F63;fT za|c2ZaYjpz`xyHpdx-rtD)vXdKsmq$q8ZhA80u*bVql&j(GlNj3+2;7mSv8%=3O1o z`rlc{#|RiXSE8*!qPQdVR~sXt)~_*!vHQA8SyE-sW6ejuMz&drms}gsL%dw+Mjd3j z(YZ^ykz}(vyW0FLJ_64rOo+rwKWhr1&Ka1&#e<*Y=kh(#mP_$8W9uVea#*|u|Kp_- zjAq<4;ab83nF}5qH)R^wM~Y`}v)mZ55%u?+nEAIjtEIlDA2%m($_EWKaoqpwXFhI~ z=W>>3kvmMud@*s5$Rw(~#w8YO{!B*bf&EcTqig$Nv>NL|wTPEC8O@n-vndj7sm$yO zt%;+j)HQ;3rt7>NC#GX9{_k@-X8%8uj>JeSawvaUR$7pd%48*~S#^Nb`pN<<SgDC) zMe^c;<i*EFvEG)2A=QY?yl4jIL@|uO5I@+MrsiXj$d;L$YcIiQvPB-4;QVoRCk<c; z!MK*~a$wh=(ib*7f!o#hf~=NJd%B)9x}NtjLcC-`O=1{jn$II@$lK_MY(y)LF*~E# zSu2B;O1YPy2N+`zgt^haIxd{)ejUD>a0KO*Y1Nx^2&#PBY~PWn5vSqE3~(<Cb@fa5 z>cK@A>b{cqD10hx0IHx0yAVDV#?6hn??z@|qaBus`opEVU?2;=AB!&=J}xd{HzD|L z5#M0=_`FRpkPF{W#Wxhb+r$@!Z@u_9wfwpG^5OfL`271>-k<zjdPqE8Zg$4-)Uau= zw>`0|hBJ)BL7Tu11R`q}<wn*v4l$A|!g%aEU#;W$^?F>kMIVI6%w*<^CA~B7!~z~? zG|cmBD$U)7c@~P$hjH_w9QN&{UtECU$60tfDtE-&rLTsnUac&A56_fkMO*g#t1?va zWyaY<M|331a<M!;hY=cR#umx5X4|l;ShXlw8IQ9Q-iGIbb~2_|zck{(e;L6qjMClB zvkddXh*45CqZv0}FPvdk=9;xLv?8VDd!=O-wNye&mDVz8uUfPQuJU3Uf;;p`%o5xv zNnVIbA~od_)D%@oW=CgstVYb#So8zi=gkpqs5yKhe!ZmR!-ogqKdMv>{spSd-Es4q z7@swoz%2TVi`y_L8pPgh<G$N<K4+4KP&n<Z!OWK-5j>#FtSE+sWKEr2d%j^!K*eb4 z=3hTuWp^D6+b8<8;J!yQo>xN=!rLTRXTrllyvc>8+1!Tb5^=An4Uc!k%yYsqb8&vm zY{K;N@9HtCt3Wvq2X2huoG0b|xA1X^Q$NUqA<A?o$&co3#brDyR$+dKCqBZcbym97 z(h+(SHITH@oP{)ZP6SSptyfDW;ns@}l6tfb#F(wJ&St*MM=n^`U=7~P-V85qAs5ps z7)4^5u2W3EUbw+ykfAlV0~syp6Kdr%ue|?#5B_U?xJMRi%f4F_S}}pfb|BFHihMj) z(SwTSLm|F7YxTbw;S2GED96j&)IjzuPDJheDMkJ`zw%r5e23dLDxY>8;zADOH7gGv zQF&N}JhVi!>ZtcGXbg3`;I6#&Oj*klbJQAP?d%Rd_rzvBQ<{~2;=2=PmBriP!|VcA zGZAyH1!V@fHI=$r3SWU_dknrp@tq0ZN#d)6?>O=Cru7Np>+$*MPN<M^ChG;>j_4Z< z^eqd{=~cjR{lyaH4P1=>YNImcV=9=F!N71VE#@V#Z}&8&$6;|osjxY=Z!mm{#SVrG zwwCjg|2tfS{DE14fnR0@`n?B>Ku^G<hcXpA*Y*vCPwAnKDX@s;{PeH@LJvo~9@$K# zVz^VIWK%A4z;b@FAHYS*R?g~HGx1ZQ-5Qi!%ADPU+()%s@L`+4|HwAfaeEJX9@l#Q zllW8SJw3?XEOIk)G6Ok@L4lml`>+TGqDqaNFTq)rIOU_Ic(Vi6%<2`$Dmp+=7K2w6 zjya`#EO&|_sFWD_$>yCwT?+mq*{ndRsr8fnx|WT9a8{gI3KZHMdlhHOe5!{yZ-)eI zFxaP8pwARlYeyi&a%aP%EU0|c^1g%(ACVmxfpT;7-+BjzJTV|J5cR76f_|vO#OQDJ z;Qvq@iW|0ldGIMI)b&SB)wJ`|_Ytnqs>l_VQ|JpopVVXMlMf^SVa0my`l#y|8cjPt zeVlqY_05t?l4AqqV>wajpiJ)6VmUv#dvH-(dbF}MpT)J@Iq)b;D<7@+y@W~LjPBJ) zq*eRrpNT^;l#dLy`iOh)UV+|4oSHifUR5~8TKQPI6@zl~a9GYyc7I3qg1!<Hi;+&Y zVi0w$B^dwxWalW^xSARh8dRa(8kAhhWczM8Ke>FH&dE#5dg<gUTTteoETQ=CCwHjG zRoilA*;|*6O<~Q3U*(SSF$G7c*kor0vSGpA(^L*wEar>CGGCOBJ(FS)#YZ+Q=O;g3 zrxxjh{J?)CpR&1#YdJspBei^mvEof@Dm2rmd`ydqH)V3qA<Oy6EfTpIFu%1e>cJKq z|7&q5ODZ3=oT3=H{R6oR4hZB<8yLtf$_eD&H+c5}+xeAheBYTT?dIaYlAwH)5K$61 zGMF|vFz~+pb`RLzZ)@MiK66N-Cd<u(N3oTU>~X>#epF`Qs3!*5J&DC)>J^qbseH^y z#Ukof@Ga*jKd$6!h$WYncH*FX)TQK7CU+CEoS$5dH_!$R&I$}(fCDeJ4@NsNc(k(F z%N7;?=i^YRRz9YBhQod-XZQZwv$ytd&uZ*j)2D#MDLiSn0RI(R`N-y20d<i*?*fjq z90so{98;rwQU`=Vxm=95oS*CkO16erG0DVlg?4LDF`-QEUS&Byx#y`Ad$!-@(`lBg zgGZ%Q`KYPUmzCNEF0@(7M-~@4(&r6x!E)!qqjV}C*_SBxLHz><P0Pj>!vg{bjXq#^ z&er|gvl|D@A#(yx+AYF=B|-Tp;R=x;eaCysEEa=T6^{9%e9RxkAd1T-mQ&Yhd*#c5 zk5Ab<?XV@+jZtW7P;x1gyLVa6PcGl7hRqJo4ji5s5IB56|G?oGe;;0y6*zqKA-i+8 zAJk4Z_w2G<Jv=Jq%E#F8J^o-|$Pv8*gEK}4dhZSv^r}(#Ik>`<t`HW(I(X9VJp5O( zl#jB0BC>`boEbRyZzrOp7Yo*6F?9+{smjNeL9vLMnG#n&`RkSZi~9sFexe}IkQf!n zdT*q}%3``DD;cbBib)g~zAWdb<JU?DAgM7TNuile<zsr3T*_SEgWS7pxuDsWOea^_ zgfiuU6;j~*;(MQ#+aI%-kr*MKh!J7|Mu?+O{oVGb9h8Kjwl55y(nUSom(Oy3y7-ta zN?e-0YB8v)L?|CE^%uq92wRW)<{`v#e8NyMl#h%j6eCS5y~(2D|1z7cd}KeZ*r7gw z5JmwZwC|zO0~$$M#gle?!%68?J~Fo|CR;l&`;YD;tRpN6{xd+al#eVf%eu#$7K2w6 zj^#x8a%=`sY%?vVuG9R=NA{aawuV@8-57<Y1{D*^WSHgr<i4v?n#RJsO=~&62&Yo4 ze2mpj#rCoA-4+f1m)lI`BlDBJ>U}PS-DI<skL)iMdr($j(6s)6K}G!ngGPsT@3&p$ zZcPe1VY8Kw>~DoF?K}E@I*Y+y3P&p{Uk-eVK~!qG{A6?C!)f0wxy&a=zoS9PrOYRB zSk6x_Dh=dj_*i<pMZ^DQ94e2LkLlsvHjCLW5So@{*Mbo#O!nl8seEJ}pwc39D2$@v zEC#PC9POlhw3A{GH4lg7{AA}U*&1TWrJWr8js_){GHDyj`N=(8<ThY?>Zay-P4k!6 z&#PMyUa%6ILf6j^&#O;_m((pgH?gQGoWPFCf%;|h8<sXMsY}$Q$9QBdsmG4dbC;Z` z<a86`ciAIhL48wV?y~uH-MH=xbxRu)E5oj^@P+k>MOF$B`3vSQsb3KGsGQ%hfC*FA zY`QCS-jas-i^B=-Cv5?n5)I2?DRo8LD3EAq2rr$xY^7EiZdmTbr)lNVc@0aNYypmK z!^`U$>*gi`qehMzSrlkqws={?h0DS;^zyo<ruv3u;iYwnMGXsVD)#zb&~Rb6sUF)y zGDns#ubZC;FRGi1J-Ng47uC&Q99UMzY^<N30G%6KJFo?F6LU2vLLDRP7kqwJW(FVZ z2?iny5s{Gv1?w^bt5itpuFGf!0>KRSgl;!-LEXIObMvM$6vYXcb#4HDrG6DYC>ZXy zOt<RPS$eECA0=xU8!b4&1Q@acMR-+82(t)3rA;Dke&Yg#u|pQtuc%v4n^>aS7GiYB z0)Es<NgkO1DQ_t|zW{4dFykrk2f){RXmGw-nNGzpiouL~fY~3upFj4``?_N|D-ULH z<WG0Yuntsq{z#R>b|IK?FwVRZI`f46x?|W{1T)yzV_bsoZ=D3eUOAlB1T$9Q%q!RY zt8!a+4B5d9_DRGHTo6UJc;zs~!3?&jl5>NHz1tnbHY=FH(F0R>=Ci~9(H(<i0P`fy zwB{{E55cltU9?;<qY-E7nta`5Pj|<J1jGJ}nC#at>+FtU%NfjIj!?rNe)Ysr-7y0N zqk0D1=-nP3-5rC%06FXrsOz*d&tB3U!$KO&ptY$h`|h9I+8r}kFdY9;&K)aTc67%a zC>XBv9SYw~$Nvq(ORs$n63ld*dF7}-uA0yt!;%xs;JOG)(%9F&!3&sPIjo_<j6dN_ z_m2<0|E4=;2(AP(IEy_JzPusxUhj@ML@?LlOqUfJ=2M=TnqbDug1|WHn91LFm%|Zr zFoV4h-48RyVv*Au=fiL%n88^aWB+K`pRkze#T+geR8Dah3>%AL>%|Nc4Cigkivj=G z)7%{s77W*U*cNnNwj3>&SI%(3a8-mgq~N9MaosUT2xjkfnb!3ys|c2w!vBFlSYoTc zgYODqdX%#;Bdh?MbxOC8ShtWfyM-+57J{Orou#YI3b1wEu0wj;ArI=1ObMx9ws6VZ zM4f~kh!9#>eP^5h53)n75|b+-a~CYBTV9AN3fITRyeq%?b$rUXX#U(K=!Yfj2pzJJ zgA#E^+N|B06}Cfy87gSF9Wq3R9BPLguS15|A-v~FH`ETP(IJP}Aq#ZK;dThuV(1RD zLt1snFgxTr9WvMs`Kb=+YlqyaLvrj8&L8Qr?2zYlNVXmFjt=Q(hkT|(_P0YaSux=H z+aW`B$N)QJj1CFeA$-?~Za+JO?|{=CV23p6kU@6H8XYpw4*8`HamxJtu8^g5OXoM* z1(D@2FFvv8B&8~V<^kn{A()|yV{aoNV~XG_!p{ToKS&H(SoP2?Lj*I5CG2Y)cF5>4 z_?5^=2`MZ<$Uj{nWbvT~n^j0%d>7OSVGQ{mxE(TzA$wdQjL>nY5H@Bsb@BN{Cxp7L zObsb4LCBv|Lq=2k7pWmdlyjI)yGrRvpmCjY2(E}VMin6Ba{OY5V2a85C^cl%C<I-I zwA&c5GiR-K$f!{;eJix5gdoykXio_l10BdLJLF`>c`dpuC*)*={7}bG;&XBdLf%RZ z8C3u|T+Nf-fq6QLHf+Sf5S3E0lBpr1Y56k5*~W|}=9j4<l7nNBJ2s|}@wqxRq=<38 z94WOiQpSFclsX}_As;z+LJAS`l^rrNWjC%oTnTbZ8F90JbLzm}Qlk0uS!kvcOkiZn zUSCHcRIw11z*R@y@+*hMS7qn~6G+u{G(y!_ove4hzN5uqWiSX%FfLukAk@+Iv&VjR zvBNq{vjpSPl`pI?&p5(^C%xdXN;FF_E?vh8i`F3Iz^ylSIIQWKB^Z~k<AgO>vu4aX zx7lHxuUUd|>0+Phq^tPDvv)eIHq8=@OV{zj%F((OZ+RBa>7g)+`>kdP#--~7;w6^} z310a?gTs1KvjpSPHBwk%o^kvsbMQik#fPuy1mn_mB0?QqIrraxtHb)YW(mfni)9vL zKb~>8(=`MomrgJ)U2Jh3UH7+jJ?-ckqgjG+>0*1PSd@C_E&KP$v~4(9vjpSP#X98Z zYI^+Se>g1bZn<Dwx>#R>8CKcIyyQ7N9c1O#m0FizT)NQ2r05#4``-N=)-N<mFfLte zV;o)2e}DOGhxHfD5{ye1+ZZQZf9(~z*I~V`S%PutVw>mW*U$3j;Nt*Ry4cdt3C5+1 zZJwhm-0}9^4(k9-7mQ06$C5#Q=2=|J{QVz2(AG6lvjpSPRVpm2E(b0fdb`6qU9$w^ z(sin^RLg*S$e;e~MTb?bS%PutI?bi)#QR61_tfCPZ0!+@OV{ZxUF&Xn<SB=R3Mx)8 zE?r|?x?;ar_EU$oO0xvx(iIVwRlh#Ee!^i6>xY^p7?-Z7OV<HgFTUGh{X(+@<I+_o zEGxf$dB<yC9%NhNkD4VIm#%V`u3!B7sly!BQ<^0hm#zwzuENgVSLE8dUezqYxO7#z zbg}<(SRZSaU|hN|-9kCE>hg~74nN9a$rng)T`(?PRW4n_55Fhqunz8ni*SN*=`s-N z=n6jZ%XJRx1kDnROIJ)-R+(?O@XA>Zt6Z}L<I=^|2B$7R_vHr<JFK%bOE4~76I{9; zuDbX>ht;52f^q4JyL7RgcUWsQOE4~7)oxv_uVg!{TQo~BE?pCC7CeFJcTF93uw6Fp z)hxldbWO5Z?1^5Cemv7*ZPF~kxOCMBE0<>+KOXvO%wfH$S%Putnk+0Uzh1pF^t8kJ zLbC+p(ly1U>&3&TY<F1w`{E*;U|hPepnzPqbX{`zw+}e1;hH5Fm#%5Tvf7Q)?tJ(k z4y#zR1mn^*-K8tI?Z^^`HA%As<I;78u&j3D#gZpON7(tbP_qQ%(siaw*XZKQE^t^E zXqI4Hx@HKA`9=3>@ArNhwso!1EWx;Rodv98!>RM{o9wXGYnEVKy0EmQ>oRqn@Uv^D z4YzeYtXYC_>B3@Dimvl^^tr}iy{cJ)ap{^VEUO%b$J{Z=Vf|CH1mn^*%cbkWh6mR< zEZkNUCm5Hm*}}5Q#+3smk8xOqnk5*Qu3DF_t<N<Mc34w1OE4~7bA-jVm+q?a`ClGt z+wgqNnu9Arm#(=CvCI6575|>-u&&W8!MJqI6PBfG-TE=V8Di`DwPp#%rE9)R*CSsB z4|Z68)-1uebS<!TvE8UkoO!jw`m1IM#-*#yrR(~~K0eT4?b0m4xO6QPmX%*;9zN|4 z4lCFX7vTis(seFE9UFdi)Ub~o)}fju7?-X^Hj7e^dhV>FhT1kP)GWccbk*A|S|fS$ z4Zn6+HJT+Dm#*_{7CfTs5L?$0%@T}D*J7JRT{~~Ocbvmot673^=~^Nzt8B0w9&YRU zrDh4nrE956*NopRnC-CstXYC_=~^Z%tBv~0V@nS`%+|F{vjpSP)!@?g$lG5h92Q^x zrW1@yS0h55@y5#5A0O_pGWrWiKgp1~4sgD(tUl$Jqg!rrSa_UKoM2qKmJ7=+hehk3 zb66*8mS9}zYI5mndEuUG9o9I_5{ye%LRdp3CU`mLz9)Y>%(mey%@T}DSF=mkmZN`t zmBVV%EWx;RT_7yxR|byl>mQyo*w(dHvjpSPb)iew-y+9;>9B6mEWx;Rt*~{m^v+oS zex}3vy=Do<rE8^2*IOSv(c-W+YL;MJx-JqHZAe{b*S8$#uwK?I!MJo??9z4jjDjN_ zR;OkO#--~LVOeEk)P6rY#bNzhvjpSPb*W2N#^}r|9M-@AxCkd0m#)hY>Wq7fe|K56 z!#YZ{1mn_mxv;D<f6K_G5{FfyS%PutS|zMJo^dStU17V!s@5#QxOA-+mZfXeqrXVe zHCM9)<I;77uyi*N;5Z7;XCsWRS+fM=($#{iPCL(Wl*2MLOE4~7t-`W&ajutT>sqf_ zf^q3u<I=VKu7`>o)}J*?FfLtJ3M;kk&9-&Drdfh<>AK3LYvjcFjSlMz%@T}D*IHq* z9Mb(}^`wvSHi-HW$YzGX3C5)>iBQLeudgYc>adR1EWx;RU2U@{_2jR&KDWQEYpiAo z#-+=&Su9Z_>ZU&8u+G*j!MJo?BP`mGtm=oil{&11W(mfnt4&zEOxA{78A}}2I?WP{ zOV_o+vg-1tA7u7&Sa)fbU|hO>;L^4B>YopFSerFVFfLu|gq2!0@CF{j=-$&T!MJq& z5Lcc2y5P^BqG7UFnfnP@e;6fo9s4?ArIw8WHtR^u5{ygNk6gOK|6JPSuqrf5Fs^i6 zFRavbg=}35G)pipT{pONy+7rbI~>*;%@T}D*NrY+zdrDz8T;9~ex+H0ap}6rrR%9L zj-KwY{;XMoap}6**2NNaz)yd^&SCvcvjpSP^<$T=<L^FblEeB~vjpSP^%G%P<?y&6 z=YQm|`s|O3aDs8^x&@(5**IlhUa`X(rdfh<>AF=|sb%8;+lIxOB^Z~kpSpA%_4cd{ z4r{t*3C5-CHkYo|x1Lfq(AIUnW(mfn>t`-qTo-j%H))n&T)Nf^i{+5{l@qz~A&2#- zW(mfn>*vB^^&_j`)usP(Sbx_n!MJq&LReOQajnu}^$+19oM2qKeu+>gzy7_n=_7|V zO0xvxdhY9XVdYaK+@D9iRS?k6Jz!L&S;X{mv3`Y+U`8G(aFLRd5e{peW)b6N{Td;` zj3Y^bTk>=(%-l=;2yD?TV%)6XAS9SEOyhp`^nGOxOKzCp3Ndch9l|<HvtH~qWV*vD z)y0z-H|w{;8lqYMcz)Q)4r{q)5#wh4PFTY=>-c5I9_O%rrCG$Nw7$)dK}Zu>F00<j zkc^=?(`BywTZ)`rS`IO8?ROz0m~jv(aQEDJ+546zytOq@g%Z;%Ft1@bo<_uz!oJ#n z4@@uvm&E;YWL=8(DOwIOZtZ_SNHD{)b7A(KDY<i*W)b6N-7PGu{FEN>!Z%KwAJ8mf z+^l<qbqLOMujjlOcUZeMix@ZSUW5d#<>|ovWe+tvtfLN~B(<ltn{^*TgBgd)RXpGE z(<A3Ota8mF#?AVpu&mx{=%i;KbyzDjix@ZSeqkMqGu<15%EvgYUuzaIZq}a=qDJpz z#m?XPmcx2QvxsrC9uU@nq`=L&^ioV*RJp`Yo%zJ5uoJD~V26~tLaOm=VWJifh}5bF zf%K2_UBBdspmEb`r{a0#xl3!O*3~Tzr2Jf5-<a~VrlBe2*AzTJ>-kx}Xzp@P(DZo2 zvU9y*Qx`QXPsA%zf+scBEvvdnY2*Le>GJ3_pXkNIxblot<uX3fE8Zz}O?3(DM{HSr zVsx$btCkO5H`U^CVVkIf^i$e4P@Y9@s$Euhp(n`mvlfwXwAE^w7*0p0mQO#sB}s@a zXyKCPrbU58&B%gz&GkzbFk{YTD($?GUn0}GBo8Lns;87~{KEPrb+z?KusdWy!?HSe zh>Ei%OK3PP0k^T)LzeJ{=0vv(P00OPzYFyZwz4KwZssp(XmVnp15;q<)+K72?Ht9^ z#_}+BZEe+5W9~9O%vLUsVb|6+)y;2SUY}T5tCByzp<!`-T_CS{86V=#b4sRNUh?G8 z58o^E7tO6-mN&}xnqv81Q@k;I;rU-vyp#6A^S`EeC+~&le@*d<_rmkPrg$ZL;rU;4 zGQnFzolNL<MJX$wvToN@Ciq`dywQ8%`Cn7K!oBePuj#~D&tvKo**}%oF?n`?ihD|c zLY(YHqy#8Lu@{jN;En_vJa;@K#0^qSp&O>dl)eH>p9|>?RoGF!SZ}Dpj`qcRLlw5r z7wZjmCrmf%?vz=9p6FV^R;|{#WCeR7VFfF+9SbX1p^L02Tfqw5Em%j|dfHY;*Z%2F zQ)=hrPMGV8FUjh@e0laok6}DrpXS;b>b<Pkb{={!D-)!>?1^?t|LTcz>J?v-r`YR0 zH;|{|XO~?&Tt%#VxYrs=u_fIxgB9)@8QuT;r$P0zR{x~SookHX&y%j+OLK-19#YB$ zPZZTS!w=rwS}v?(EFJ8%l?&~dN(XzQp$0gfXy`x<O&R@YTxy7=JvB__>ZrWbFoi2} zg;_PTJ8p~*&K;)Yo#caahbi32J~(%nPOLTXQsX<FUQeJ0>KgBP818ExqBAD+uu?Ag zQDo5QM^P92D7v&OgImcFHTsG&Q$e2JHLH^PT~oYKd*S(C^NXa6XVo~@FLkMx)6(^* zH!a_~?k6C1*z703b=^+@#?5{_2K(CA!FvqvFg(_C7(N#~QF4v&J@Im1^AP>V{2mEu zK;Cqwfq9Em8ko0qrGY7Fjz#=oW5?E(M`{boW0CTz>Pa;fH5C!}3%Fy)=-znj7|cS) zj*+)rBLRz78HrCaqDE!agoyKcurFs()7UWyhgcD*8Xv2uDxXl<O`(28ckC$jW-VyT zZC+VTWMXAy<@oUvqb`L$oVvQPdC{oDoEVu<7B8=eMPuDGS}*=mm6tX?QeIXL!;By2 zQn(jNd0Ava&4dXP;^QVo<h^9rL%+qW6^!Al$=a5Snj-ehdg<Jz#g=Kysw3mZjf>Zm zm6b!Wyr2w*dY{@c4LdM*GOHr-vI((?u?aN}%~9VSUlFMpUtSigsBqvifIw97%ClSc z#7Mj<8m*|B#N5_VQtv{ebnrE4J54TLd1a)kI#x9fX^G%1>9J$@nzRKSJEmcIs)6{b zw3BHQB4yRpHRH<43`e6=4q-#}`m{^kn2JfU%ChQ7vB;>gMffXnT`h}8V#b83ifCnJ zM89r5c1+6q)`*?FaP1~lMk=c(Rh7r9COPp?Z(@%f!`Z(ZZA9WR#5-1{3aPxJJ$8&* z{eUvA4!8-?NcE%%)z#xBRYdsmHtk`(z3m2$i&R&}sw$1LO2k9I{0%f->vqYlt&J_6 zdv0CXT&!cHE<>mVi2f&zDl94rJ8o1_(Wp^H1x2GycEaczRZwu!Nhjfd;g~V%(wzPa zuB;4f-2eUQ1F#gk6RUM}sqcyNcP@@M`_q@=`sV=WyerNt>u`MO!9@Z&WvTB>6USBM z)&aP$k<DLf%`lu(GslbL%6J7ZbsCp}-+nk=Zoui{9&n?8Tca`XiW7OuX>lt=y_56+ za7XJqV@y&c5Q%u>SBLPcf%#P9xb~SYenH%|3E`kimyU_JHUyY+H7=dJ(}24em<>JP z`T_SWFfVIdI=w}}y`wSkit|ec^$x=QmKuG}C7rx%TsRw;g*i$V?+p9N`xfCh19P2T zgHM-U-f#J}#wdyY^7t9=iCDp2s~6IlZ+?0gBm5&^&eY4<b~;kt@1h<SmATfEHv`}z zIR%l_C%G6#+*06HYAo;22+kvq(YgtkJH0sR+;LGm%G(0W%U+yEUKqG9fElE3;@En9 z<c$L6G%wC0k9yD17<k2{OYgbBHT58mccgv@%<sK8pZGlk%qw1;Cw{cwKY{6|Z+Yx3 zy~hAk=*4;Dv3O1fX08|K6Ti!WF}*k+dA|ilwpE7gy~Xbp;Qro&Jlc<+=s1iGFx=kc zl>$@c#d+e#%XK(i>c#n__ZDD&<HdR8(SA<?^RgG`Bkv1fy1Y1#JeI%1tedFt)1@na z#{xG-V{N<m$eX&4@@j!w+=D#ccT58FdyQkekuH7@0@Klhye#l{XbimK(#h)t?w>u# zWBnL}+nmSfTb;IDeDb3bn8{w8$9~M;24F7t;(X-&6qw(7aUOZh-%T1LiNz^hdjAUC zJ3Yu_djAc~Kz+M)Z|OY|m{Kp!6F;W+EMV%rIG^-h1<a4UIFCH$@4XrWuefySeF(TG zdyvQK^LJqW<;D5LZwML>JUTAUwu>izOm8_bQ@uDJdFKOjsTb!X?-q?wn$zd+oxnZV zgFKd(m-kWL4&Xla$itBL#EQys(dqGN7{H%$1Wx7E(~jWl?Sap5T!Et^kRc<B@>6DV z)=<Bse%ZM*xd6)P(g~wSo;0&z-g!+kFPJ~NU{t}(6(<$VoKm->4g>L-3lrxqS=qQ~ zB(4We37k5RpZ(e@x57U^OWhLZ|LXer%Nv>+7AC^^Q;rQ!YE0BGt-lC5!sVikk5yp9 zghXDB?8&kEqB%{8`gyWR)u==co@U}!3EaIGTUXR}m{+VrKr$LOuee@3*qrBz-SB-C z$;wEK3FVY63Jr|rhjPZR2n~!Ce;&%YVlA$IjzGgOuO_l(Zr1nQ_ScrlT`#aL;#t^2 z<e8lSU<-va7s(bL&+AP^ENCaMUX3G)BQtOZ&Sm1m20rn&G6?7wHKXBVSs4HFl4W_Z zw#oTI!rVeb4Fmxvp{yR|BA^1a=*I1RDw4g-=<)DGgYC((EClDN;IeFNhE2eT_KIX# zW=9QZG!*{*N6r9xNus&oKOzClsPf2=?|^csoFTI!Ok&{6$C-sFBM`xvoq9%qn%I10 z$oKVVfQ-NloWtUqgY%K%TZHq`;!`_CqXaO5M%%+TBQ!BU6#>cpiqK<yLyw)=OXV2K z4ED7=AA3jii<{5y1UO(~UySDcut$ZV_g=AgL$k85<8;7EabyN2;XGD+$P-Gj^W;<& zigJ<VluRg(hK;t1!lB0|A7SfNTfA6$UootRU>6IPDyNhk1DQ&1v7?t7q}a!>jU2X7 z!KS_ajFydRlMe&i!GtQz@=T*`QrH|M2~<+W7_@B!N2a_<&tzd66L2LJoN#cmk{Q@k zCgv<`59LI|p@CP>sG*!#L1^IBcfgAp5{;mGT(JQ^T7JRv_Z`@&J8|+<wM7m#<a>>q zwID6U*zqRIFl%xc&t6?GVN*NH&IWhZWEDN9V<bdW;>Zj{&WN7DoipO*=LYsl!JcUY z+M-7Rl^>lwyCcqRXyaxHgf-{1mGy~3MA*7$PR5RRGr4`u5^VAW<c!tdvbb}P5f-Ju zuH#mJ%VOdL48gu8_Le)?mghX94Z8xthI7q9aqK=5iJ76ok5w_j=BR7BnyceUBxxsh z56UtpWG0Oq#DL*r%yBbNhBj`;wtdefD+in7X2OrXc)F%$nR_6b;UZ{P|5$S5uHKKS zRtizYUbYYdHsbC|&<w<xy>+H+y2Qee8MpxFapJoH=L+$?jq@qugY{T6U_I>D2kT+K z^li8xyQn`$Ps>Vt%(3-xdTF3SY=(0RH*|qf&(Eq}^Hr$z2e=kB4`S+JN$d=y%xNBL zV9zaO3B+^F8_fqANi<4(;>kwrfI3l3LE~csp&DF0!7#@S#wMjOL{72_TkDO><-SMQ z4~FHvYb#5CVt8s%n4#)jgnM+UJjIqRvE*28IghAr=!1y4u1SbwK7ey^RaxVH_>?uU zUty?~kEAjks?IRGUyUUrS?0H~B<+&8Pzop_vn*~#^0~!f9m;65YinCo*KfJiO!F|a zJgeo%_LlasE%P(mTei0+%d^b#Z2qP{yRGVb?mId1i%`P=iPOT+vUd6I?!wT!o4*KM zKENn#zcjRP-NsW}`WRj9M$4YeOTI{{m5g3^y58)NIk@_xMvRgTlQlA66h2`jTl3~1 zr0|W(&;vWLgA%qEGR#iN)-8fWjpz!s{u%zbITpJ`AusX!_q@hTy`3JlwGQ@^!WQxT zT{62M)Ot01g)bRxacpwCVGq<v78hc-A68E2EdYRpA<Q4e_|Y~Mm8&%`LJ|0H=>IkP z{|x@e{=nq%dKmxBahdS37e;*&1=zw8yAFquL2LFCf+RJbEHRR7E?(Od&0*EGFl?Vt zIunOsXDjX-pBNlBjc_%xZ$P#A6yk5b5bb)=z|PfZa$e{<qk!8DHy>b_Aqm4qu&U(l zu55j;`6Nmj6*c>O{VF#~iXwL6!>*u8_<@EQ2~$fp6P_>PySA?Rsu?}LXi#0g=wOUc z&dUcwasn~e+jk{r1<a>*jbT&rwP6OO9W2LX)eiQ?sKM0~0^85**wtGVY4aM%ZKF`_ z1<$>WHq%I}pJ>ECd&~3LvpU$Ge}F@^5UQ=X7Qe?!*rzzFI?)?Eb(K36Rms&q!j~n! z=iyT|=6m>5JA7y_WR_fYDv#O)l$B<jVaAXTTN0;XTTaObjH#Ys7Od$?WE*W02BV(q zl9W==^~j8!9Gd;w4xL>4HzQFbN;9&si(Fae_Fi-F6Yg;JPtFr?Rv(^KJ|<$Sgvkeb zxzP!n#o$$i<G@(?a^O=8qS(V)&QCVRqtG|}fULj)_)z+O_<V2{J|8R_s^E&Hhvrr6 zT-(QywbDZ!T;Q{upPpJ=#AkO^%6D5SA7N4OKQ0KSPx+X(Itd$oY@fifc&#b)9zJn` zSkhTcrdHt@N9AK26_coGI4tL<V=*r3&r~DzsSL(IF|utR^(hABnm8=yC;NO{RG&Xi zmFrHUqe01~%q^Bs{P&Z4p)Hp{%BD*vSJ{FxUlg1=`N_Q$ml$7kN3b=<nkcfgf}>;a z_NILH$(Hle(SnQA0r{2=gji|FhF`JVnp7Gn`(qrI^OK*%MP+lMEV+BP4P|~yxORSW zId(t^_H6mE*rMQnwIHZT`Di%~WWXAfiO+KP;b*xU5g-#K{->LWL)CcYBkL9k8*=P` zz`;c&frB$f22!@wn4>nd3Iy0|vKAVG#z}Uq<bOJj=9OIKquifMSVsR|{D^x2e#qp7 z|LJOQD2DQp@f!(~wkN?sio@Vlg=3y6Uk-eVK_6!gmQ&Yh8|5SW_c)xKB7@G2QD|yV zaw(JJc+2_8{Ua{woJ#pzJ<GP`s9mL0`FMUv!X%~0DLRY6s|v?>C?8|17)1RPhvn3D zrb796ehi0`QcJEIqtMi#<WlBcI4tKU_eoqtO4SwujYJ-6!SSEdPL)dKql9N9Y`FfE zzqJ{Z#iDkFW%`tl?W$rC#dh3se)8D@I4QN{GNn!&l#jZUT*_qqww#~bS8x$2_4(jC zYmMa&gGZ%U`IzFjB+OfHPqQfa9~K1TsC;DoUBdof{e*VPC#!?hp26J5NF{K@?nkl4 zg32zA@uUkPws`3$g~cnujNv#Fd{RSs(iLg@GzS2wFSLe<M&WG(%m>L!OZk`%b! z-B_$4!HiLI6<hsH{s2(&>B`kV^dh1w<yLB6Tv4Bh=8d>pKl}DO4aGlB2<eEyizX@Q zl9Hdn5<+V%_$cwEqiY#L=+tLZQ(65G>ZGf=@@L08tXARRwo$iqF<!xpi8xc&y&uM} za#%mnEcI#CR9ypv#WF?K+ef{O3U68C9?eppUrlAP1~?y|UVZR)yB!v52A%r&Ybt9$ zga$K;<SIVrS-i8^VeQbN&SzZNs}<wuZq@w}8q8pv8PluQJ^qpMrRoX^hGRRHlCL*q zzR(@RmLixzJxu$d?~X<jK#8ex1`6g5oat7~{mCKSF<deTX7GkB^I+oaQD=3>3=+&@ zoT=fwA0O1AeE1O<$RKfHi3t|FbqGIm%eVysqjgA*9TL$Y{HU$MOw}R$sI3a&w1SSG z!c`$FbO=AYt3s~SAptw&hHfFh>K5`)w-8QOl(Qti-7VycZXvx?BtW!S1G|NUyM=Ho zSGTT`ZXxk*A$8qCE^vk54KBWalp+})b{%cC6f9BBhg}I``B5PjhPf;u^7&q3Sbih~ zqao#3S`@25hp;^NalQP?o=dd=g#6*tM{aRm-M&`GSun1bUvc+bv)Bp`IdW9J!?Hea zEEt!rgM_7|VLJN9Uti;}9@M%7<I*KPo&8azE$3f*n!|cdvs7=G`qDh-H^GcB&o~}9 zIdrPS`nzTc#-)orfb&xCXV=WX-eG;CS%Pt;3l%lRhR3fs=U+MYi_syfhZBrT*P#e? zbn(S#hjo-@3C5+1V_EgmDk0M@ef?60b&6&Q#--~pm#(L;cwvLXnyguZap~gB*7-=! zyyWT{hqXwv1mn^*%%!Vq&+(%i7C$9SCm5HmFhZS=qa3~HX1r_6_LS~M%?iWs{@~Vd zhS+7}^P3(`IIQ1mmS9}Eju4i#$?)-oZ-@1SW(mfXt|MK#g4aLX*I~V(S%Put$`h8# z5!@pE_|ktktj{$|FfLt3xpd|BS)8J)ABQk-f^q3O8llbykH0=|z?qJ&ux1IyrRx}B zNk0qUqwA;L>99`LEWx;R<qON-h7&bQFfLsj>pJ<>+W&_s<*-h(1mn_moXvtqKDaf= zE*qC<mS9}EM%XNx`Qt}dw>hkvG)pipT^IoA7{U`c`7cj4IIs2NOSR$z<I;5k!ku)L ze0Rr6hxLqR3C5*sq_FaEW@mNifwy%ypJCv%pH46?T_+;c(RJ(W>slOEmu3mZrHeg) z^HJNy8#)eiK65feS2V%6bg{Q_bd4DG$R!TzM9mV6OV?;&S?zqm4Nsoruqrf5FfLt% zE?v*xdC}Vr>m1Dzj7wLMu&i>p>5Y$`bXdzZOE4~7V_dq9J#81BG1TBdQhNmB(sh!} zf=51_6SP_DHA^rqT_@WtmcwZ4^phRdpEXM`E?pdtI&JSU=WKn@VZEkVf^q3$&+p{d zDZ}UN@36ksEWx;RogysDhQD9d>sp6(pql2(^02$@<%*`GYt;GIp{vs>0)?6-7?-Y7 zg~izl9Y3J!e2QtZW(mfXE{?z*U6-ybdEa4KAAc2$OV{bbQoTGLGrabVR~^<hT9;s4 zy2iS61p~MBb69t3mS9}EBEqt4_`@G9t94jUYnEVKx}q*!zgYa<Hiy-zS%PutDzkOL zBOi-$J|mRHNerA|T)N5;>e%p|tp}g#u#VO&!MJo)*epurhZUXA2$gG=U|hN?Z5GS? zUE?+%?y#&+s|tofWm5$4;M6Pd6G+ATM0mb^>D<Ozd051LJ>C^KzX7{sc#+m?^DgAP zc?~PNA?Gidiw_Zij~9RN_)48el{?fD>khSI;0{eJpS!GSVZ-vJ-Gy5baTBn~S>xR0 z@~*x6f{G$uvpxg6n>8%2on}kstJiq{zKW01@RJMTsV%2P>|bs)k-{l2gE1UXLv5K@ znn4x#=71w}lD5l4d`$rtt)B#?{$@NZnHEM=%O*G}L@RbKkk|<z6^UBDnM>jNr$x~} zMKyA)+Xpb@)l1Ogc(lK{v35$`GJJUj4+$Yi`L%&!%divQvbjs}I>3ManF7b)`h_P* zPYJW$Z*qsqGhun^eRw;=^gCbj$$=CJ3hNEkuV7KE<e}IkB?c*hDhlc)`jlWLw_C76 zt5@f{p}PeubdkJ--woX@SfN!?x}m!TE3|w`p?ey;1uL|CKcPFiTd+dQR};FUy9IlV z?bIQ!#Z#_$Np_9!a-0iZ$~3zgdO0aq98yX}b?~WyD%Dc#QiD@UV`{KM%a=1!gB7}4 zu#See<*jGc)v@uvW<|>Xsuef?t5y{KuUawnzv@J|p?g#B#Mtj*idw(RDSG`bEB0u< z0_%5KvD02o7w!3M<<mu5T}($!*d0hZzJu_8W2$5n9uKvg{l*mDj!Jdb8&hLWF4Vz% zV=5SE#~V{7<~m$<rt^Da>Kb*)Ij4DJ>UIYqKEF4n&cu}>&aF}$-)upo_WFeDYT(QN zn<rf7HZ}e)Jm4CrFdyeL78AaTW@RNRLl3TgsTamZcrK;HFn{<e{GkWi<89ejgdXfw zQQCgNK%?dH%vkA*O^2v}3qM`h^3YbmfGg|O+_z<Wu%l&jSI7U|J2uP|y2w2*EOAz* z^~4qHJ6xURINIt*VaovC)hjAYeJ!u2k~eBpVTmewEO~vT<gJD!I4Py`D|wlok`hQ$ z@`ieFekJd6=(r2G5wt!W|H(U5o@c)~5#k<PsV?2K?p44|)mRRz1($N;h%#un^SjB5 zM0zUmE#OuD7bSjS6CeEk@5_8dKS25#%YC_FCf6ZihM9p!^9uNA9v;Brx^e)I=kfV0 zJU<wb$H8)~2ea^)R(o^*(1R6u1*j;^`47_=_A}a`41S2a`YtTVN&p2io<lmP1CMsg z|2%-XvYr_@8)r6Cnbw`-0{oE8<M^LW?t<aE<zrULeWyTULsNqLNH-=<z}G_>0{?gG z8;c^1a6<={VPvHVKP2A#uj(6poF^;C8pw_2xJE<A!sfnfz*IY{N&F16Gxz689GzfX zvqG*8I5W^wTN;}k);Qs)duUi^NGaBw20I_#J7vmUQ&oCMn5$XD^pc0{b*nLM>NJ$c z+Hp(fo-5zC<H&33!exotX>;c-aeaJ@S6pb_Gx`bA@B5cUBbCufu}M|qqY)>s$Cfa& z)r-n(uZqX021w3!dsUng2(Q&s78RuSl)VCvqo+I)?T20i=+<6wfp39My!|gtd-Wq5 zpge4^pxU<wbOla|S4@mnS57@5%)I;z#}zpKn^!;N&FBBVmG~dlC>qV}QeVYp9r4?? zn`uXWjwu|Sl67`|rglmx`FYZ)lS)*Mvi~_DgYSyR+pt)}x&-If{|xoUFHL?Hd2oLH z&pFWXga_yMPVX7O4MWq`EX|v09{g}zLcLsL;1%bG<Kp5Uf%`~fnOr{{7gzgZ<#;St zkKx#*`r+89#x#aFI>Dth5DZ%f0h58-q1&vZ5Ecp4bbI&wJcLh0V*bno!7<bQ^xlZ@ z7lApK5rs>ajw)PR1I)7;mo6P4;I;wtj~;L<f%_DgMO;UQODB)*!g7rfAWnYi;H`=k z`+yq=-0k~-YXt63z#YXEYq)fFVN+iYjG=Mq(lHshDH=n0bbjf03*o;6ZWY(O;r6EY zHei0Kaq0AOvH15IBLZ>q)622mhrspW8aZ4#y<uF-(-`9D{N&w^@Cx8|YHYgrjR)>? zU{2)<I$S!v6L9TpV1A`>>Ex9GcQ-JfX<WK;&j$p0WBq*)*WlsO$y<nPhXK>l1CF<c z+km;V2iy$c{shc^%ow<I@f!?73<qXRL}2pBj-Q=b-!2B`YK==L@87`P2Fxu{c;M2d zcLXl{3Ye`l<X&)LTzg$(h@<n1-;WXgEpR_77f9Ol-j4MC2ABzKXy91y{p583cNH+> zSs>uj;b@mDfw@8B(%EG*aK8oS{5Ykl!JMDocX92<z+7A{u(bC37MIrmbNNJtOQ$yj zcK#7C*H79zj&H5p0nBJNAaJ;6;A@vX2wwqA;}oLOm#cGetreJE8V7Uw%3~AR4+GG# zIOx*h79f7JfY~@r;nJm-W4M=rDVeTtp!w?MDn>al7oM?qd24Xl1SaRqy~{fkmk-ex zh4k0^C=xgZxX;d3sC4D(E#OW#2Yq_&-f=8{<A9m2ap~;B{-Yk4Wg3^xF1>JJ1uz%Q zQF_zm$1vb-2Ij%J3YShVA5nV-n91|^j=Kbx>wwvzaiIC;8+V%D1<a>)dzbeHE(g)5 zzKw$}ot-%zI)sHa#rf6CXAz+zfcs>T0@~^ItUu)9a<BRnVeqC~e>eoVqct{Y;XLvN zBfJ8b8D5;Mbvk;o;k^KuE4(<5yd2=x19OiT=OgcVU|#p)Jo0G2JsM-hCS7_17%XOU zzzCNvy_9#H#t0Cnbn-?6cX|)<hJrs6m=#`}PkL_z<`-U^C%w$yc3@uh;(X+N1x&BS zDi!I{%lrrfQ{ct<$eRev*<PF{ew4QYn6+M<kGx+4bDtOIk;ihiRby02(&xvU!0qfo z9?Nr|C8%>a=xn?A#IG2b3NOwRKj!Z|U@r6GeB|8<%pG2wkG!XVdDn~ckr!Bs@{EJd zPKQSx^W!*RPVwS=<jnwPffwhImkoJWXbknzrK=y;0{4?1<S{=s0Q0OD=M%pVf%(dd z^Tdz&F?bouGY&f2E<W-m0&}((=Ob?gFxPu=KJxAZ<}Y5HM;`OzO<+Fq;(X-wZwLeq z!a--J!y}LRQKT^f#3@~VM1YI;AdmTR9x#`AaX#_86_`7`I8XeT-lu@s=EeEQ`;wSO z9B}E<8^*Q6HHJ94bm=`ExbZ#6qx}}`qr3!gt9p<ZhP>N=`HL6llioLh+3Cf3?8o-L z&-q9*4m#T|KJrcl#_-}i@|eF1fw{<w^O1KmFt>Yg9(g&C_c$;wd2v4Sb_4UB7w3`3 z^d7Pt^8g%ldrNN(Ff+Y4k36RLB4Dod;(X$F7cd*VIFCH0cN;M8dvQMUGMg}N$3bVO z!$;moU{3eqeB{jpW|0@?k;n3UrN)S2oYK{g>wvqh2YF%e9|h)3FU}`^-vZMop|qw; zFY`AKm{YwtA9-g3v(St4q<1jnwE}aq7w04I0bm~Y;ym)0zuSS??Zx@X+rJrQ6$jnk z(pwBnjTh%5Zy7Kbd2ycj4Ti3pfw{|z^O5&7Fx$L1k36RLOJFiDU@B75;Un(|U`Bdz zKJwzg%=F@X<Xr^Jm0p}jUKnw@U1JzOx^(6F3E;N&AdmL@1ejhIiYO=FeBu`d=6Em8 z6F=H-JTPZ_aX#`^0MqKldE_yEzX0X|FV08a-+<Zf#d+j0e%}ML|B9Z|dpt13UYtiB z+m|ymMoCPcAM=1))`Pq-gj@s6U0$3|dY=Ynn-}MaAMN)gFj-u9hqLRYkG!LS8STY+ z<k5aLz|8UDeB@mQ%++3;M;_yM2QZI%aX#{12j+b*&LfZU%e)9<UL16LOYdl4PWR$` z<jn+Ti5KS+zpH_{(TnrQ<9zyljgbiAl&=0h3f$%%<Z*oeJ}|v5R?_yC-Y_u7dvTul zN&N-pY%k6yy(@re_2NA8r2cA5Pw9OCxW{{t$NIK?ALV@n+@2ofF}(*}V#Q4TPnRD@ z12<Y@Z999?n+p*&z%26OeC&56FxPo;KJxAXX0sRPBkz4+KKJ50@|fP7OR>g*gU(Ke zkG#`?8SlmU$Xf)=3NOw_-i^Tg!i)2f*RC-thUx3aR^Z<3K_2ttTVM{jOi9~YdJBL# z)r<4QkMhn2X1N#Vliqc}-0H=7<S{=U2Igrm&PU!(V7~O?eB>Q)Io3vT(Csa~5n$q8 zoJSthd!ELKK%COmk1K$?b|2*31<Vs(oKJe+1?Cek&J#b{FMAa}fr5i>Z|OZ{71ri) z(AhX2c?(t%;kb0^O{~KF7YAKBd2Ih~TZMH!9CS9$C%s!&p*-WDvvEH0`*s!XL#!5< zgY%J>4@{94=aI+wP0<)7F@63n1a5f`@>pKh?W4RqfV;m3dCcFJ_EFxuz<tt#JjO5k z3M-}Rf4cn51Fk@0_m&?M_fg(#;Lhto-cUqoEikuxaX$I`I55w9ai098{XPQbJ1@>h z-XSfx|AB)pU3%I7R%na>aY|>u8sKK`gS?COQQnonUDty=j<4?7M|m57d!h$<Oz*q< zDDM;CzU@IC^CPzvrxcgYe)+%^X>1U9!FlqR@td-b@@4~fUJvqUzqR`)Zyj*A_8^b# z%ftI9?|I-}??E2ZyJsKeW#VRW4sRI4rL!N?J5pl=h*P@!I0?A29^^5-bM{eQ0=QK@ z$YcC&+edl72JXHd<mEx$R$#vL;(XeJ1Fpn6D-ODJ_G5WI6_~ge=OgbtU@q|DJms0` zy<TIemo8m?+zQ+sJ;-BzJO#|_UYt+-_5hQ4m8eXcUfS;nV8(fIKJpd-)9A%{(o6eY z3(Rd^oR7Rmf!XZE`N(@8n6JDzA9;h<Vjh5lE?xf8ey3}U0C7r}A5(yvy$|v(0cM>S z=M%p_0Q0aH=ab%7f!XQB`N->@28UApwLeJRiw0pgS{y{7_a^dOJ+TL{cWUYt+- zZU*LdFU}{uj|20P7w02yH!$CMaUOY$-yv69DOLZ|rFSH7r)X?C`%&HuV3v4sKJmL6 zm>az~PyARv?g!=xFV08ayTE+n#d+jqL0-10(rKO3rFSrJVU10fUdHeAeUvv5xU+kZ zNBgY+<{B@~C%wM|<^eCxlU~N}Z@|3g#reqVbq&@<anS88y~k^eLhhx00B7_dPwEFS z7kP0$@w*wA+r2oS^ga&EOJ1ChyxqWj=f!#CvAi78W~Eg9Pgh=!0B)qlTJ}r#9zrHW zeTIX>^8e<AgZXo@&)omQ3kQZ-mJ>HO8YR*E<_Tt5Zb`JDx!f!pS`sa4F0C+Q#f4i+ z#)r*~p&QyO*K7&hu(5P=^O5j1A7GZ{MN1;5HXmq~<--$c&Nj;m;4zwm_hfX8ZtqC> zymE4Kj?uO<x7yrln2%SRtN3Z{xcLIUl^rt=h<069gWs}iz(M@5wV7N6>+nUXzB}Ow zSlbrJmz66KumwjZzPKG}#K*ED{G@j*jPGg_8&5`avF}BW-uD9E_?LYz$_ixDiw@^C zthTEIP^#a$iksy*qRKEQ<cbF`P9@88apb5Ms0KmyE25S&wN2tX3g_R8k6)%o%J@-j ze5RXQT5J|6>Qmhe#0y$kW`x4>)k|6V9jpQy6uo3}PU!mfjxc`hi>uiePzvTh#ivmB z$=luos<?;i|LNtP^!=yuR-_?hA^cz*8S?t!0P%%!9w@#7oQcSgZ!GRFK3X~~zBxFn ztBc@MS69KuT+axs#rZJtt;6{=@!gDbM11RUo+Q3Ia6VFe_uzbr_}X!vBEHQyPZ!@- zoH<0z2yDlBuK0H1yg+=raXwdkdvKmDK0sx=g^WNJd@%{jfiEt;T=<mUFnr|_Rsf&U zTMVDl8-ed=xymYhg7{{@S0KJQ@D+-05qu|!uMxiE#J38*8RA<D-#OyrmJFzM*e5}6 z1k#TE0A!Dt&rqkNe#Ojhn6d!s)(8Wi(JwGxt}w^Rjt<4qmd%-lnQOfk2}saL4&!&) zv9-k#?D&8k7z|eE+Kyu&;vpQF@=1AG7aNB7X~%98h=8TqFpU|O`ZK)h-Ks~UF<D_o z=bXmx{U`Q6jT>|%`pTE#cO4|Jby|Y(`F!kBU?kD>`NTBej%gKqDyDpT<c|_(t3``q zhleeR%;;0tYo??oKXiRZ>l=x%G)9}E6oCfyr9`NuET^lvU#!hoA<9D!bg1@?Me8XM zh<3~{Uqm|RbdtqV|D3vj%^Y&Mg-JMOwj12V<TbI%!z>QOi^RCu&P;*nPvJ%!#T)om zs$rfUORmU|wXG;N&&Y}<YYNPX*)2O(;Wh7Q(kOap6%;J|;!bXdQA~C`iH!xgLkF^I zcE=I8`iw+j0~6BWB-HFB9oNBTSr$94kXe>JB3g9XDxgBwwX+j)uqBgW6x}O1``8%f z@;Tho1w9=%0e}hjlVlj1%8MZdF`t^hshq_*fFP<*wIlYTQFfHgUwk)6VlBEKN2b&r zW#T3Ht!yeLhWP?72?W_yjE!5+C#ynpj1-#YLygd5Wk(n-?O8@!b~}Gy8<BQwzmpm5 zh_yu`9q4)2w6E;-^{eLieB)*#boWN1_c};aeK3o44wIaFW>jsX5;o6=p02ng9viB3 zV&8~EvFTHdVGfGvO?%?WQlssh+?J=hnmY}1R(?hDQsm2}vWd*RmU0xMnT9#Qz!oBg zdDAK=Gm=@d$3^LD&HduZ#~8FL+bDg#xv!D@0e^K(T49)1u>c$9gB$n{y<#@lYbEFz zy!y;NbkycWhWRpLqDld(uEDBX!}7pgB5K8MCxfQU_<-$u&Gy-*{VRep@yUV7#T(jT z>Pl3Dk@2?JxLC`|{(;1hXy~ziYqr36uVD+4=)a8lFUCW6KOPIV$67Y#Mq3{5YTnin znI4_4O_yI`o>FaoR*ju<%uc6tp#-uhhSt0TZBcX6h-g7+v^dnV6+e+_D9M*RR}%=W zxevcrUGiL{E41b}@Gk7CJR*)QO0e<BOm39(9J6W8BOE2N_MoP%m{G}Xbkv>`+?XRV zY2muas_!GsRnCS(2rc2>AE^F)GVtU0(vIf+gKw0+y1aL3ZT<y8vo=3wPM;x~M4Z~N zNA~&n<HD}$BUtmoYrdk9Q5_JK=0iw8vs7bbj1S+F0n6vB{W)f#TBZJKMO@#+kr}uZ z=NH6BldG_97HaNq_F`R486?VHX9a~_o1&S0K{POmieSGK?v;|2!vHfj2ercBo+cG- zlXBY5L_tG*rJ`1#y@+s}R*5F33dOMzRTgP55P0zlBl*ZGNC@R*ga)>-Mqslij1A58 z@N%=KFouOKQX-SLNGVMIhy^ps29A6Fv^-Hz+rjSnSsd&jtnGFTb0w7EZT_yraES-B z=2)Ag$lwt*E{Oef5VbkjHUuT#+6+VrCWjTTi%d2UsuYid?+FQ$M!kUYX^X-wl5`^( z&kMs2$pIB@v7AliVyw2wS)0nWl_sbbn8pyJAoAyQltAEr7kNA49e$BU=3ob`Eg@M~ z?C1w=TO<i;NZd=!EpnSDNfRALp)JcUiRLwr#oQvFbBi4J+~OELw-}6>#PQ8TFe8Dd zpc&gN8ES;CilQ!q9n+xeY0($T>4k17-WKK1A5(zw_#ey1ph3)i2r%1JyqJY4Eh76f zY&I5SeMU;m&m}iQIep@7Rrt9Lbuu)t3IZoW;3NoSHljg7cacyXlxmFFNvV`GPD)n= zN^I`*GosU?)1hWjW#N03W@klmK^}I*gSyX9WLFL>{CHD^>?IUP-j%l=Tv)StKNO*s zCl*C#MQ36&9QNFw7|C1nZpP)9`DFcbtYF5*ooHDv$(zG%u4Z6cvDn7<5iku=+xTHH zUidk8I;t_x$czU+iwAe36Ns37%%@{VK3@TUMaA0N^H?K{(#=i%+p?##7s55{ZiQqI z-E6d-x;bukai5>Ucu7-kb2#31jS%AIQyjg(0BX0OR%~^|X3c237|e4}8s2Dr&M=qF z5R{<fdHK?&b)AtbTZWBa7#dcA(eA3QNNCMr(9EVxwMp1GsdWHCQd+QCY{6z>>o2Vr z?Pb1})cj~1MIDVB^2zEqX6EH%i>NirC{|fCYCbulTn`JbcpOnJZ10?c%N51S1c`E3 zN!!NH9597pW{NpVI}!(>+X}TFiVd`kwiQS*W_5_{hq2OOiGgT;Q1AQ3Ok_lPPAoYr zj@{E@r89Cutrvn2<2Fg9e+{*sM>cm)nt-yHVI++#OvK^E*!OJw8w7S%EIA{mGYTL# zygCs73*TV-liztb{1u@G7nB!ASAWOhRcOs>+8;v|Jp-LM17%GLG8)B2Y}^Y<8;YBz z8S}5nTQAV6h+*E%7Ow)u7!{ysvr+m<0*&Zb&FIr%O|{)q)O^|UR+!sUAx`*+#YGFp zB^N9%j+#$!8#8ocD3sjWiN%%szOmo7%JRDiE5wl*;Cw=L7n~EkAz_#IvgX8pf$v@k z+X5fUS7u;`9TvwRRedl;s&^k;=4c>OhO1k}$40633wSwXEx`V8Ik3=Yp;jtlwW&c9 zKEv$SwJ|s`Gt?@>5m*<!1_m2()KQv{H7mc;{8D!3t1!O_4T}Uq!`S1|+_TXt4LzJS zWJ+ile#3B!Q69>(;>r2=e<n%-@)Em#VMNp?o;){aS3eGiGL7V<oGvycF!M8AXM~Mo ztHRa~)T+0PH6J(M%X(Oy%<B_tc`7T`@@Yo%4`c^D8W=SJ(PJZIusMo2MPHe^V0OnR zh~TR@G6NB`KN!2PImS+SV0~uxEBv@?W8C~u68=vn1qq*_o00{2izKxe9#)t;7OpeQ z%W`5t6xLx+Rpiy6ae5<BmTCqWQ=n?bSW=Lhg4Xr~jlgPPBx#RbyRc^?n+97#^V6}G zO-R*88O`f;s-PChPRuFnqVR<a(Lh*ceoJh#6ar|h*s<eaEE#vk%rjgjjwLU%OdLy2 z%!zhQv~676H4dNC5wprTOA6@oGK`rWoi%%wl%iu$43*LLY1ASkY8i-#c`;VoEqgnD zqh>`B8rGbs`(*P~&TCK`E6^e|#@i+o$IOY?Uhtr5vnIlpEjb}SIkliGifB*CN527V zB3G3PsmP=on>aoS>`Ix`vJXNHlSyrKcE<_0tfoqQhlG>5Oe~3E+%WwNqispvL)d_i zmA+CI;!qZl(B}Q4ZP7m1f{hp0*_hRrv#(i?pYi1Fc^n<F9;~P={Hi)Ric_Ru9RJP! z6=<^J<_<J~<`fL$Z(9XqY~y>#_UbNUV<)<x9Y*reygLxQc=ND|WM$vv^a07rVaBG) z5KJA22X|B?n-5<6bl-~P^iT1tI=H<$_%4gsF^2gsy9BgN|I})P*w;)0*T7zYrT=Pv z&uE*tBHmW{fdPz|$uKYdz(`*DHJa!(tI%9@Rpr=i`?GQMu&byT)xWXQ{Jvss^E>YL z{#mR0i?<bRt~NhmTt>!A=I1sa8gHw9N4g-!#_9P2h)uk$38ho@d@se#3()f+J?yTk zKd}0}3hDR^G!#+k^`v|Ht2NnTk1`XI(2?ZGxV=xbbaws)nNf2#sx1UTDTJZd6FJR~ z#LdbNV&>nRsz2+4mZ}`g=u`?rYt9iXVMPHu|Cu*3)pl$2O=t~231)1%lEHMHOa%;@ zINm6IhsN(~n3K?U>7I$B*kTN)@oyM*zQn)3tOAR6?!4uDbVkLOzLV02KI>ys+LL`K zZEE+SFM=CyYlQ9WK6F+fF^H{4EZHY!Rzd~6v(SrJ-RME+{OoSDAAampH@Y2~D%p=d z0T27pSs!#h3$Ic7Z8OU2wM<Ue#1)2lr4)Db0qGA=1yQbVWW_)M<n;6vE5jfR({i&C zn`};iX<*~Z%Q>Beu-t`R<wsx&$d;|qFjWPJo2n+UTU-x$Y{yqPm2NYFvT$S~E3omm z_|8C{yePi)@Ts11JAA6A<n9J)+7LJ2oPI{EZSlRja;sQjk5rVY>w%KZQcZYb$#b%* zlk;<{lTF)End8X<E7qvc1spP?jvkDG^uo|(n?nODzYYzo?u#__j+)zcVQ5p?7emhQ z;;q9MSB6e2gf%L$1EkdYxVc>_{>GiC^xLgU4*=Q$FgEu!AFoJOe}F0;MN5Ex@!)n` z#5rni#F^C$`z)f$V^oO3{y`7*{T*Vg`u+~e;ivmr-(T@5n;h=?*7sLb)kAE0uJ0eH z`u@)UR((g4R{f5vzQ5zH@9+HIsPCUz_5GFqzt#75{y$aU)&8J%pUY8)s{Y^D)qkN~ z{qM1>|8Beb&rPZR-G;)vG1YA-{1*huKm}vr60|=U3jYd09Q#GgAG6t$p|4@qWBiKM z6$}7TD=Rt5slf){_&{ON+Z^rW%b0MF(RRU}u4lOZfgMp_=sL4T_CHp0xOnn(%mJ~e z3bd@-#oDfA4^x@^3-w6FMG)Iq<u|ugCr`%=usV5JmW0TtFlB^`r3{R2oORQ6pgw^^ zEjlURAMjhXh><ff<>n29g1EUdr^3WO%imzz;O1<ZRTp3#Yi6x1jn>4>TJ&a1Fnz`; zzq0V-sQEGXmR=26vJ}UWPdIKiWi6~IS$xFh(?buIhtV7$Rh!UyZnH=4G9c|f=5MeD zq^>c)B+(x6cRd+Hr<)Zs-;S1kwERc11}ED=$1%dsH=m>#Fm9hI(<mMJpCf);>csdS z+lotC!`0><EMFjFWp`-y7t-=`$ysu?@Z%WvwdSqcw&*d+wt6{rwiqMA+=Zft+J)MM z6=Cz8btyy8*7oL@VIGPhLUX6iK3wH!w?<NA?!@>O9VTOn`=~MA&wxag0z*wz9F0ix zYaDW54C9^$b9{k$Ff*o9&4X`ajCS3rDvd4STm*7ODl>2u&Z^JkY)9@Ki7~L1v@!<k zml%UqVU}WYhrujv%Wi2N2y3Wmt4QVuSj_`Dsx}|u-7%K(p)dwZK4&?ST3BPeWer1> zZ(Mb(Q6a0VwmC425px((^C_iHrf#-QF^74hs4M+z0t+Z^t9VxjjO1;^?z%n2Du_Fc zG8c!-C{s}#lwB~H-BD@osgS!jOns;=I$WkfSXGbCJO^p#3NY(GM=q-%35gH2=F<uo zvNX!3+lTO%)Eef!VIKQ1@A+9PI9PMTWTl2Z@`vOnhhSB~NY-a<z<3-#@2vs2B2=*( zV<_279R59(Yu?)s*)Pa&j0vzWcr=%H*H#$G)dt{L^<2&70zcdFuOfNxqxcuf>5X$B zG;sA+`L$n;{7P=eKdkQd4$J?6t9RqSkxXuuf4|*>f63Ksk1CQ6$v`-{nx=H5<;pKh z8q=OCO>TE3lQ{@BlE01MACoJ0?@&?gt*&Jyop!WV&SBlfP_3qCTpd3IM`nOFQa-l* z%6A-uE|RNMrhHYlkL5ELo2tvbxWYH20AR)#!S?BLTkacVtX|PzTXr`DNt3_^vgM(B zaK^M*77yyPmS?q<H+HfDnNwu-DB@%zr>qfF=_MHYqg{9g)A>1A7!3_9*UO<3@<acJ zx;KH3qDcS$dom$}a7?%a6d_<#6vS`}2Hgw^FoB>5sG!K1a41KF1OWxn01`(Ok9F5$ zT`yK#Sy2~Vyf6Xe@I<`u0#sBG54=!O$^Y{_Ro&H9Q=Q3vzrX+Q_5ar^-BYQ0f1anV zuI{esnaLc8M=bLDV0knrRyn6M(sYP?i>ESwDi#B%Sh#|033bf{efaGiaf;~i!NI2T zy`ai5TXSmoZ6Wf<6BE6c5iYE3=gxXrc*|$(rimz}XuT@L#8i)}mQA2R%WooNx%J;! z)}NM$&`>yUwFHgd7_X)Q#D{K=5BmO{nqh8h9MDC3axjZ=dd;R>PM?i8ym*<n46B?t zLdR{QGpd+tx*@g|8=gPG{xyzKA#%Jg_`Rl@#ugilt%!S0u{!5Y9c1(3O;jv#=IY?Z zx*#U5^r`IJO<qsOqp9u^!!$J0uYE(2Yw0Z)zRt%hmbh}9Se$-keiXh{JBE9F+-c#m zI@v@r4tMc`u$INkQ5VWSi!9kjHr;pl=q(rgiN&mp*w#Vm$aU0$R(cKHYWAU9pp*DC zhz{Rz@VNMSt!YL?aYeVscpZcW)eOH+TJWH8a;j^ifoH=vW_WmPrL{iiAl4sngNk;? z)dvbyIT{;I8V%`$aS%6Q$Hj27!vdU0YLLKV2^0EsK8=b2wG)=afTHyXIiS$)>3j;| z71{Xvv3Rp0c7fi&B#Z?-R6i=KUzod#*7MFwuR)2U7~u2ss0r{7o_L}r;Nrh7h7*k> zUT7K*zw%0DgnOxi!7)F5Xnb!G-i7A(l_E=MQlje;y!rJt4e?QvSK=zBtTEpQydJH2 z7fWpy@&i+Jk3T~7(66-Icv(92&Jil!kn|e5K0)#3xW(f)tN4yqEg|6k9v4Y>A6SOs z@vOg)BJnd~xj&bc(~L2UuZCjruHsHal%OycZ-P}5y#(K>5`6D30j{L{C3uZW@Q!;= z9gF`I%l)?e?|ktidWx2l=`v`%oJGfsyLb~#R-*M9c)cc{f~c6Ejsm||Hj7G|BU%l2 z=U34HMD6I=GP=6J9}Q$Q6Q(q7rW$`CYj38$m!;F{EZd~{0j0wgH675Cy@JueY)S9h zWJdlI&C0!&CYw2_lWPh)ZsOIr0*rThV~7{!s&U`Gl3V&aT$RxB+tBzM1LE80K@8ZT z#kQeKca~>HSM;Z4IzppkajG9$i6=}luyjJ}aI^x4MLTjN@5!+W_buItFGmus<1MDw z_{ZWtofqdS2Sji;UWljvs`sbzni%f?f37_LH{76Ojjjf*>+s@SITq-!_{F#FSfexV z*7x}D*3W~=Se<(pck6rh!x-Ld_yr4e@8X923*QYpR^t3?bknovVPWp|<TvWwX{p#- zoO@l|tfMgQ^;u-;QL3|LaZW7c4SiR?SuZ4eVs-8^)FQ5}&W%P&@ah~EB!<4L-K}G# z$iF)GuDDxA-TrSa&3$p;J}huyY3}v^$*uaE(Ehheb8Y-fbB*e{H1{by@zUH@M0jcL z-2<;9`oCJ5J0(6~R_A=2`(t?Tp-~J^%HWo5=oPf0X)M&y!rWpE6aRu89Wt~~$48Uz zh}(s9n)p*4b(>DV5BwIV*>2OvdbjBXVig{TeEcgM@QWcqQDS_=(^?%J=eQ6VK+|Jn z$(`=H-OY%|#W{CT9t(8tx;!n^@qvrgx+)yJd$D4-1Gc;syB*$&-7c|WSEW|$kQJuc zKwq)jCRgmRFh|n@4*bXTWxI{McDK#4YWG-@d0;i>fyaFFz-r6`>yym`_x`u@z`bG~ zKw*;41CNPCyVd{4=7GmB53JVafz|pvu=@Y{Jh0xK2k!m<+dQ!P|HwShCvhIg6Z1ff z4m)?j-d&*g&jYLZAQcPtIP=mm%V%D9_0CJ6L7k2*)uBt07dck$O$=3tiHmv%cfex# zex^4uSl-G$nGH0=eh0_+q7g>;;au?)lDIXXtHLbrp}wN{0$k&KN6*C<#$PXpcQ1_Z z$6F<%3ge^3(}VKSn)5o*yHJrOe}S!n+(VIy8_6hLpg%)}bPpMIl|CK6V@ngzm7SvT z*YGw##mAA(Z*)F_cPev#i46KBinrG)uk3@1Qv6OyeqQ`_Uclet;K_)**0G8Mq4FPM zc#Ld7kL?5SCYC%P<+VQEQ1I4L=tBKq1}@SMHWF<suJY-!Ii@ZI=_-q#{@Zj33MDSw zpG8bOX-2nV`PjVn!Sjy1kRk4q3oD1U#$=1@v8lL1oE)vpqc?0P52!5d7%xnXhYRpV z#0eXVa;xUx@v79J+}bDLN!a|%!Fc9!a6GjtRyh!@jvJ4cYletbN?df0ip2-h^H1)5 z$mO`U%!ySt0nGOyy<?Sgku*CKm)SM_JMrznm7{7#WW_>*vT!w;70VsediDjAYX;&O zyg?{1T}{SkWybmr%9`Dq-V%qyp|m&{%YC&B4>ymdmB`CGUX7j>&jg}8bU~KEa;UC& zb8^i&Fvf<)&;_dT9&rg8iOytV>EUg!$#6mH4kZ-fJ*@w#cj4o?@j0n@vSCG+vkO*~ z;}OG1<--sb#=p%yI{Qyp?ZY!}1+;L)kLWdeG8LKBc4*3STJ?E`jt<JrqC*9-{LH?% zs*f!Fh5iE=i#NiOa*JQ6DNia`F)&oLG}@XTB#5HTQ?Po3=mC0=fbOd@K$Y+2zNzeT zs3Jc-1*K>PSJZ0-mARGqsRst*`eVhQP-XZ)9%9klEs+~<K<<hGp^9J9Bg+;ej+-4U zI*X!Dl|?@X7YM4@{G_43&;@<3%AQ(2@Quq-<5#90OsT=0-H1%Q)z`Nl7U5GjmNk#G zC(Ec3ZpW)Ki~9B{{}ENgGwdzC#C=Cm<(Vk$(aPKdkI)qkhIc6jHLdAled7{d9um*$ zWuYb_M(Y3=K<)wu-A}~mru0|z>&6`1J@FDWElP`<8+r^;-QeI>HJ^@PzEc<Xf|)f# zFbr|8FP`ubQQW{`plE9zv6{VOAe5`jw7M}2j`2KSd~j;~jiK>a>v*{Egg0WjJMj2e z3qD}zU+T*hjdsN1sXO>ehUS&YD+_aZ5vW0|q8j}dLQeTtsQIvqH(|Cyfv2M(P{)|K zSE~%sjb<OZvdO_P99lUqvnD^?|J2F<`{R+uVmuY&5eph(Jm&FujG?rcsivYD`)NGl zfi66Sj{5w6WjqcM<FOh;uG%*qo8dRqFdomO@tAr5U337)RZ(SM-*}|^Zj1tXXB(p_ z1Rt<MABdi!6PFm1EA`RI@3a)+)(#Ic#%Qq7I1wwu&G>MSZ=<Wc+c}4xD8|!+F_D3b zRV**!F=O$6#g&=3N6c?Tiy8FnvHSqo!OVC*9()+m!ka+o!(wIaln@^g6VJxbAkL#> z3UBb>tbzemUwnMbOvKclNLKq2JEFL>c$ezrV!w@JL$DW*n@&WG7FJW8GVEz(HPu;y z{dSJU`kvRCK5Rg5&WI<kMq}lD2cEabBR?BEM{^3}-{HKEC&XtrcGvGa;nHFgIxUZm z_*h{)9}ip>p)R}@zoOq8(fCd*yA6YVOuH}F49lT5?T4PAdgfuxZ{9Umj;D{BM3$a} z)cBB5@eyMxs<R?b<xj2Hm{t92TJ@2%-2ADLrS*|rfaK`~x%tz@6dc)*Uz(d=8d-V} z<|7;UQR!Uq!1Pi&S0L#&yyWsevXriHA{(l6t0POF;poQPjgh6)9tFz><&nqbgQ8?} za^;|bk*C<u@<II(BP+`X<u5-sw*10E{C_R~kJ3~uM(pS|nhHiOA2cAIUn)P*aM@HI zOOds>mU%7ywiq`wiYf;U!)X9di;S3uw;T%MFRCnz+);R^qO4WqKk)y;j>&B6{m4@& z)!L1fX*kKWUHofaS*sq~CvP2;SA%C^M9Y#W1!r%JdVJ`SMgu)r#a%;>9f@m>S%`gv z(&8u7dN*)-m!&%0iW@nN`llaC+nZXIl7lRS^TiAAcViz0kMF_fSUUF9(qX4Vy%eY3 z$cBh31?38^kr$&$TqwvcmB0-)+utD*wk6`0ME9>e2)ksHetp6XHoHF~Gwg&iQk;zL zX<X0VE{<3F=!2-Gh*3TM;IvRA#fc1WxEKF8ZD}XNUc3s0h>;?UGN9~j(wsIwraGA; z8#wiPQo2%7TkORa<`2_}SZn&9m1MskHaF}=#PmT|>G07k)oE5%FO!KHFl)apW| zdlD+5uEFMpy@;6hBf>s%{H3Ax7c|vJ#K@PhOE#;qxnVCNrrnmFU82Y~g&@14J;>%Z z=EQC<UQD~kvE5KcD)sB3)V(R=i9L~aGJK3zp%O8wK?hce5!`?|S3$Xgqxy*$wWUxH zH4vK{L_XC*#7KQ|i2QZPNOLmE@DuAa0x%LNxIW09;9Gbx8U?}!*{9jt4K^RA2_N*E z6!5|J<w&cW53*0kjvH(~dPpCFaqa4L6*_7uQFgL<#5Iano87)_H`D-koZagk3Xe}2 zMuKdg>J!98kBJzy>YqeuXwKP(8Y8$0$`u@yL&T_sg@UL7*xX>VJwVvz9+Stc;e+f6 zCH0tyQI829WdCVwZm{_nB79Jfk?k^!2-#z9J!<zs_UVyuH`sj80=AkvUAw7}2wHC` zQFgK!g3b*#yBD(EP$bof6xVkm-5Zt?eY`8d>!;X6kBJz0x<r(QdaNgEjo>OMS8&v0 zB1W|r3ZlkfbA!$HB(0{dU8<?_uRI95WOIsZ)FXAxG*Qzfjh!VwW;oN)Q&Y+sIp_Cm z?nE{=+|i(_{`j<E!bFR(GPMs;QF{@i`q4QF=bPrKPV-Px$JNot2i))(B0?o%q@vqE z^x%2v&Us}motFC|PUhxgob;YF>coc+=#~Bx8XAKlMl-5VlaCD8af8jzmBLTsRHyNe zO`P<%GWmlIu8Mj^sHj&&jC=|eQAd*4zed=nMI+evmxyX9Eb3l_ZL-@5A~)E|ex0-} z+QTg~^`oG555g|loS4M!3TYRXP-f@9Y7?^E);A(-<-YZQ*d}CmVG`SS{14iMY|>)A z8*F9%yJwduck~9ewHSY7^T8x`SFzntCa#ijbkrN4%16~HZc*_1IW}>0h#2+iBce2= z=}sw*jz%~-(s6X8%A><o(?}H>Iyyv*jt-$FiXH-TgU!$5!jJFh@T+Lt3Kbn4B1S%i zifrQ|(+f8H{}J}((c!mEwG;~7i?B_0`y{dbytM5&e!J9T!mjQ?*d?2@li1xP?W&{0 zZ(lF1*(PMWi*H2O+GP9xuuaJBiX^sQ{~xpo+5Be`yKj4Tsk^B?C<L{&7=L7wei_gW zwzl|y?S}r=*!de~qJ^6?o$|7#&cvR_VB|J)n(S>fzM(t|(PEn$zCc7AF(O7i{jn$^ zorB+sFz6~MS8&vKB1Yp`D2S@>8xc0!UkKZ5)p1<ARD0!Lc@TEV=By-kzm|4^{a0ls zyQlbC)>h^p{s(0yo6jY&`zzb!v;FrC_PS^L{<3Z8Wj{92J0eEyUn5F0DczZb`K&Ga zy1DOc@2Y8T5gMA$M2zM$p(ZK^cHAKHsTV{n9Wiu2T~)|Y;8#$t;Aj+x7>xp<AiJ%g zb%V&)Z8sFQf%xs}jPfAtl1=)!q#JB@n@YQQ!6@ht)U9PY;>x0ksWOw@zP{eF*(U$u zI@xcx_A-;rSCZI0-m^<JBij^$?27&)oAgVKZm^a21hyMWOL5Y=i!~amuNyWaB1V>o zrQ`ooL`j;aIZeybokqB7uQxJ{1+J1_1yAEk#Atj8CFNd?%?&mmr)#x!?WRH^Xex(@ z(by7p$>vgQZm`+yC2HF&-Dx&5!)eyDfzzxz=DgB|<4Hxo;^~GL5fL>PG4hxz)U+Oe zyAG@gloDM`I~lg%Rj5RaR8gU7SkGzLzy6_mRpC;1Ev$np!|PU0DPp7?BwB&46^e1U z{}$C1cf-8L_x9mcu+%;xM(r(Ci2W0r8*KK63j0)_eW~ch47Tm6g6s<wQSE*0WwSp* z*at~vcI~DjE@-Nwh><U0mu#Mr#O`R%E@WPN1lbksK{k6Pu{)0KhD1;8t+&HnKTzud z<d5D_6@4sXRErYTlDMa<*Hd3bpxOzRdP>Bor-UjSv98$MAo8g;B1ZNvQ}(g?S8sD; zUZHSRLH31;C|ZMdgU$ZsUW@umqnAPG$d|B7Hrx1G)Mobz&n|f<+Z2NAiuNFzos-yI z$aX`0GMqkd)pL4arTEmI8BWG<tkPAb@KHHXxZ?fm*oz($F>28Y)uJ@^u~JRJRndQf zr5+P8>M@}ripH%QZ1yX)n!9$X=Bf-LM!tkyviXT?)FXAxO`_(F)11brapUf|A}CE8 zPojL<$*=>jqQ)XdHU6_G5l)l!<eH(Ypj^RGSwt+;QxN4ZmB^=3i5RKx61EYe;M&z0 zL6Zkj60-RV;WF6l-p6)BEz_NrSk-D-jMtv^otE93?j_M3Qb{lL(6Xqph*7B?66)3& zPHW7ctueo~#*E*(dy7NO_GXrnihfVn4R0bMEQlCc_?NH{NfWD6nDyNiDwa#>nVwR_ zNcnG{Z}>%vx5k>B-}gsSO)u19!ncT#g{OsuM)lnHP<DvbOsqDLM1~@~3Z;mV@Q zXqD!)!n-hyF}B?q$yH{85<HD+5u-D-P!jbcHaFOOyeND~#I;L3uF4@|jgThnlFhch z7Pr}bneFnLJNgPoG&l5v(ht21$0lklVpQWdd@6Nj9!$6l^lpz(i5RKg6)L*+87|Jr zLtGrMqdbL(k>Vq(pZ-48#hyyUNcE{uSw_)SKIPk<Qp8Akz~?XBYYlqK*$woSI-*`8 zMyhXx3LoN0l|`HE;&`3lDMXAEKM6&Pbf*Q5u@)oiJ1sEQTXYvk3Dw^XQxFmUM2ytG z`AVr;{{mNnS2`aGm57ll6s9!)m1kd{qN%44F;dhQip+E;vu6`0b9kde8GF-9-8-UX zzLB-dQ;Qg>@i8jb-z}oI$0F4Y?;#>eC}N~&&Wa9g@jlp(IF|NdeHvH18O2z~AK8S3 zu7%e4Pw43GNyM@c6BdX%>MNbiR~z9ABn8(l9Z#w}B1XrPuuC>m(e`ez*=;Xs-6X|n zGCX5EkyJuAypM>ewTMxzPZTAg^F&z&gRX*d1xIBNF`7w)f~fA;++efaS=er$;k3tf zOsjqMoXF;eP6lR2dN0dwfm&2ppi~jdLQGg7KVM>VgUweruSNZKsYL~?*GAYSoAhq3 z8*FyZ@az&rwkZVJ6>UQ{|6oq+Y<ACLyFur=XMJiq{zb2e7}X?Sl#0*pY0SC`$`u^- znut-a2?bFNd}CAOQ*A_y)P-7&NkKtp1Wg`<U9#!FKd{+7SJasAr*K?#7uPZLQ8G82 zhKQ)Ch*4?IS2ZoG&!DTIT)|N}M2u=G6hvKy%?&o&7i%?j?NUvZf8{~gC7bhIqaLYi z=yU0q>tgkt7|zIN;>?!b-+ezBM~$!jKZFHQV-ce|O;I(*l`aKWLAipX8jBd!SSX0P zCW-ACT8&-1RC?uKc@TEV<||3;&Ji{Cor8M8rW@$0L)22ls2=l$g3po-oXE&@?^^3j zSB6)5KTaq`jFeZa_QBO51y@12f}{2kF=`*7AnGD)Zm`*2s<n@6m)b}9S0032vU#a% z)FX9GJg~O8K4li-qP8MN^`Xx`$Q3tPTUSB3f}`4s7}ZuNh+2lt4Oxhow*R8l*0oC| z7qsp{*d?2{V{=0mBBtHHiQ4*BnFhHyUQh58B1T>wU`5`fSu;wzPAmR?bZUsc(k<-d zO)i;G)-@+*Wyo19Qo0t;E}2v|w}cGRpbUrT+@XiA#U&HVr(}<yR61dXLo0Ov|8*@Z znOBxQV<u(5Ihcznim;&JafgL%`j1+JLKtll)>M=e4$*ZFmE+Bif4p9)XpB%uO;FWC zYB<!BbMgLb#*LelDo3W)OHk1q9}e}UJ+}H=ZknZ31Enf0K}APLI7CMxmGH5RzhR(I zjKXN~;?z%2QGbL(w5M=Jw{e(+TveG!#B=^x)EcvkCzMSPNe%FVb_RGNseXL?F^S>@ z4a0#Mtqn7f9uCpbL;bY!&W|y@y1wpV4c-G2zI^>fvtl?zqmWwT*IkcJQmSXAs$qhP zj*@VQMk0CG+P-*$QoSoxjaWthU<f#!u!%BLN^{6)9I2Gkkupk48A7J9CDybtGQy#V z$adZv)9pg#eKM&K8ar9W7^CaXaEQ(~ghcbd*`ZYPrK(ASioAqFG-fEgJ9z*GorImZ zj6@PtnP9`AF08>?Pq*X$qg3}wRc3;!DXVBt;kxB#|4FHylB%YxqWqmm8HO#feVQRR z94e(fw*5=KJVn`|_lGDnV>|vMw>eV7Av&fAd34og3_b}vhh?OBf{M>Vq4S`i(5m&e zkxJ!WVYf(7wFDaueMEa~zjdoxpj0j8b$QDK)iJEHmoQtZj!96pV%1sLQ@H8-tjCqF z?o!n%K}9oRI7Ii{RKo1_FJo}x9}f9a)jC1d2KnJo7E}05m5OZ-E7kc@)h0o8EUO;G zo;*yvX~@$`HASk9O;8=js=>6!w)pkI4=5F_9#S|iLDd$i;m{E5$=B#xUb{o7u9K>^ z2`WBMhx$W7NO_Y?-|>FCR2`q7Y6mtPqT`NywMm%}Q@&P7Rl5XLdsa=Bs%HI;Vjz>A z0)OKNUfU<AvXB}Mkw;?B7&>EuQoSa9WhJOOu!`m#Lb{*y84f1WQ=l&grO<&@6r+3n zU3g7A;yNNV9HOU>=sYpx(^;d19slul0y8w9kl~-sduUi9lg-Q@*i$JMF2D7ML<WZ? ze9<~DF;fQqP?^Y_#7q|U6x2BMm*-^UghS|lF3)`*oI57b4$a!(5Ir|SGhq9iUB4$X zr!ccgGSR;dlyjZm*Qw0ZUiZ$-Y{Q<e20os(6eo77q2CV8sNv8j*i+6;kKX-jBExqX zp(Dtrb}o2mIHp6>PFLiFLm?y+vv}{-sHn-D&dl{lraryn3-_q>mnVmrU$7@T4}Q57 zlecN78#7aAk8NtVz8It?LwDujP;bfXIrOQVqx`;lFhlROk*^asJh?g14w?*him@jT z|NbgsX+ye(!BvyA^M2z?-%Yf`B?&E+c2dS}xHpkGgYD2PL}B|L`W0%kUVV@g4$=Gc zG=6@+<h!pDnZC@>yRF3Byzcr<iOiYI)INT4nMpi5_}j1_GqiS1eeui57o&h?ndwXs z4$&Prwe#4K3&tigXEQ_VX2kRwd09~+gOfMxpi$Vvy!vx2<1mjII!}_FinkxYP&3OD zW#$9yseK-P`u>j+nf}bAV^87mg459$rk#A`ghO=qNxnvonktWFQZ%6E;E=_+_$~8< zl#>%u&P+&&C8S)KkTNYHWo|;s5}9(k<Cf<(nbO@$`G-vD?4|rirkv)bye3n+dMTgD zlry}PA7x56F9mNKb2!0EX)jYcdMQ0+%Bfz;Aeqw1OSwd*oZ_X-mnmm@DRG(7$4j|a zru6kv_|xPlQE#M(!oDh*9$v~vGNq@Na!981@>1}IhzxG4woXVnF(IXQLP~x@%J77g zu`=aE&wIH{>Efj<mnk`3%Kb9sBrj#1OgY(0*(g)`c_}+&O0JjkiA?#Em-2&5iFzq` zu$)7GFXd#Ja<-S!N2cU?DMMvSwwH2=OgYO-xlE?ybIOd88Iwxq`&&M{=$vjeds3jY zOqzofnsPbNxqwr;yX!u5W)vwjS5lyJoSs5wG*0Q}s_4AKDScei9o>{}u4y{I3srXs z(b-(2xJ9HnT&7SIfl86)boKqhT>(<m>Or56KU;gcBOBaVAX|eOr>pPx^9Hc05$&<v z|Hqc&mFgC$Vn*{dkX0?D>Z(@PO;xIgrHUEN*C1B8zFxSkxS>*QlqzO4Uolo?N?+%+ zy7@t+`ar6f(R>wZzS?itT%%NYJA?x>nlHYR_tpw7Tfgb}?p_-<#(9B)xZ3x(AzjIb zLvFo}Ty%fFQk^VS%xJ!Fx`N6*Ukq|?3U~H=<w+GYTD^v9zKXM3bXKa-QpJqs>l{|K zr9HMi$9~sHsV<i)W;9>tYQE0>yz~R5ic1wUnlD^Z%W+7)vToSmE8!}sVn*|Ip609i z=o2?8UoS`%Gn%jAta8W31C36es8sJs6*HPIT1Zp<byD%np-T0GR57FZ8makO{#yPm zO4V3)BQu(>^EF?8Z0qkU;mK0PjOObCPlbqc?!k3!PV>e_RH~TKd|l|NsO7s)zx{Eg z8ZTAMXud|V$~~5&{hvNjsTN5UGn%i_ny+i8jGv`c_ed2pny-sk<&ML1(wa?Bstr=b zjOOcN%~#5vq3<izZmD8M^EF2Eb?-SJ)KjXXQpJqs>k`e^X~&FOqg3r0AQOQZ%@;0D zF{0dYxO-W3x>B7jRm^C<#<9wsH;UJ;xlpObN)<DjukoG=5$E=Ub9Z+2#>OJ4Vn*{d z!Bf%LSTnufLZ$kfR57FZn#d}5Y_xv&lIxY~S*c=1^EFBH)uhYd1xodSR57FZDrS{C zHvV$aKlUosZ&JmK=Bq^WHNElt2}*Tb1~L(t(R@utDpr<gk1g$n=AS85u2eCj`I^Ei zx4%9tec-Q3b+J@2qxqW3DtBz;ExT;9Qe7!k%xJ!*X}(@N<F(OBb(d5zqxrhjQz7Ea z{Gip`Zr<2<R;rlMd|l?Ls5OpcZ}>u~K9nkEG+)zM<&KTJf6JYsRKH6VGn%g%ny<Su z&R(fh?HVEzff>!$Or)yg>zLOLj8&>UsbWU+HH%elf1SQz+^0%4QL32He3h~)3wsJn zd!5#|qt}K@q>35M*X3Z<Ii={tHrtizKB;0x^EKO3k*~QA-Ty`>&)4%(#f;`_j;Esj zx@TnnhD!B;R57FZDq~d^?XiVsPkCFZevv9>G+*Vca@%nE56(!XYDLKi%xJ#mB2`?A zlCO`Vue4IC-crSk=IaVpxxW6=v*c5yI$x@o(R|Hgl{*ffI56jArNZN^9GKC3&DVTg z{dk|9N_DGLF{Alfz$*7xE^c$-*Glz-R57FZx>EDi>3#>lIa!a(g=fE{iW$w<Rjg`F zdu(HOv@TStLsG?z=4&CVD4SGk%YR*_RFTF=LSRPowFs$LJEc7~y$!oc6*HQzt6Amx zx_8vj+m)}OQpJqsYcZ?rZ8%-3n9+P)qxpJa<k~gL*9}s|jOOcF&DZP=EuT=THB!Zl z=Bq;U^_QB@@XndrU$00NGn%g@o(d7?Z_^KrJ;hUfB~{F5zLt6_YWaop`+lxenN7%& z_*?+qo%G%7EkkNJltp`NEf$6jDOC@tVn*|I9r50M%Gq0QdrhfENfk4iujQ<A$Khq= zqgE)@LaAa#^Hr(&dhXq$9hB;RsbWU+bv>)xahUqi7tbrzR;gk}^A*>8Mbp2Uqf}o> z6*HQz8(8Iz!=0yXx<aX%Mv#fXjOJ?vQdJw)EP9}aQuUT9W;9<nvdV44{rhfsQ>iYN zDrPiaH)+1QzT73EREwpG8O_&9R@vKdl~ggK`MO#2_059FLgnivsbWU+bqlNPZTPKJ zF{AmqRrB@Efp2FhUoFWP0yCPg+mNcR0dBr^<~XIwl`3X5Uw>wmJ4baJ|A}wRPmn5R zG+(!~DhqoG>8E{OzmIn;Unf<}XukdeR*j8MriI2S)q_&SjOOdFtaAJ7?%yw4s8m%_ z#f;|b4$W73+s_J=YPVD|qxrg%Rg_KhMw5yQK3A&WrHUEN*Ik;g(jV@9LaB~zicAD% zG+%ckRh?6E)~xTVRDGn18O_(<SmpNDs8g<dTd6LPDrPia_pr)dFML3h12dYhziYmZ zAN%qe<?9xyVn*|Iucsoj$5oZ&_w~lcV^YP8=IcIBMJ>Pb#r2md)tgeqjOOcpR%Ov1 zTj58CmMYaxQpJqs>j74|ZTOGNKdDiwHqDTUz>MbWL8Pkw+O==_M@n^;R57FZTE!~Y z*Pg0@J(X&LR57FZ`Uk7r{u+GOlLM7%sZ=qe`Fcq6_0Z|zjY{>fR57FZTCLTqY~96o zDAlV{#f;|bVa?Y~KkZtjRNqMzGn%h|)>5yQ&5?<~jOObRq^f!2@{Sdal&`*0#f;`_ z4XfNXyz2CCcPiB-QpJqs>tC9$s_UN{uT<Aa6*HQzM_HAQJ%tBWzxQKrZ_KZfDrPia zYr(2|b?)};RZ8`OR57FZdW=<VX^-vbvu%1P)h?-GM)UQ!=BsMv)cH#FgH$o2`Fes? zZX0g>;HwvvstHZW2+U}{{*6>suiQV^8>&>NNEI`huXU`F*-mWJt4n)$ZCD_anbCYb zsrmY8)jQuS)flN_M)UQQr$WRz@zv2M_Vj$skt$|1U;pt`)bi0s?;EL9H%b*Vny>Y& zqBf*3@{t7@y*yv5rHUEN*VABC8*ZEUVK1e6MXH$5d_BXe*0jgg=lOMGmFiomVn*}z ztmf;@>2204Rg0F$L|{hq^&C>wJ#6Q}58b0weWi*S&DZm+a_7UrWvAV&RAZ%z8O_%Q zR=MNwPs`51Q;zN(M}<@|qxpJ4^R;A8QH@fqmMUg6Usal~?B($rl<HNfVn*{-t@*lh z>gS&-)%Q}xjOJ^j=L-?1@RSh;PW0;4>KICM9A-3Mn~<u;2CY>pRd1<cM)S3qRqojM z%L9)et5hSUiW$w<i<+-bSHAqSQk6*+Gn%h0ny(XM?f<1zw@DQ<ny;;zuPuMfxK^pw zNfk4iuWhVy$3|qq-RCIPTT;c0=4-p=>!Xa1UstLhrHUEN*Grl&TB}s57Ojwpz>MbW zWu&V9YO`?UaHZ-gRm^C<USSpW7lny`{r4?hys<G-s+iGyy$V+Oy7cAmzg4PPQpJqs z>or!nW8<g#r~IK*l~Tow=IeFM*V$vvTB}s6q>35M*A7;>{k5#astc5=TB?}Qe7&Lh zs%XCbGo|`Ss+iGy?eu&h;<UbZ?#3Li4S$s?W;9=KYQCDh*z6&tI!<;7Gn%irSVfa8 z&Akf`p4CIC`biZtny<GtUu_4aFH@><QpJqs>m63PZTQLQ1KKIowNk~5=IdR}*YaDk zmMhgNsbWU+wTo5q<l*d`+%E5AuMM|J6*HQz_cUMcuYEm7sdh^hGn%jWStYZbA!(Dk z_49oFAd{KVe0`w#+TLjRKBa2V2AK%VXudu~s<>aK{D-bN_v>b!uXa+!jOObjR=MY| zl{XJtqg1`5iW$w<ZdSSVI``-;LtA>jhDa4Nny)>YuU99v{+m)wlqzO4Uwc_aV}rt3 zMW>gx_I%Bgs=dg;ika^@hmR@6Tl?Db&}+9S)h$xRjOObTR<&hoSZDk4p3zG6h*UA7 z`TA7zb@Kk$3re*`s+iGy?PHZY=1(1ZM`xw_SgM%Oe0`?*diKcvmz3&vsbWU+^|_}) z#M!ZK*WJf@ZP@BqN^`#z%io4yAXT;D+ynKyD%I&y#f;`_zo#OrbS-+E=WC!;F{9P% zfTyC_=EU8XtXHbBQpJqs>q}OpV^5)CQj_P}dcMk~iW$w<L9nV`&+h)YOsQ^=DrPia zUwJC>MfEz~^L4*eF{AnV+EY=zXdOVQo|Y<RG+*Da${q7`EdR;#^}19sqxt$)^R;J5 z&2LJzU#ghVd>!&sh&bg_mRuP1eBohs4$Nr2zC*fd!@-wcaj{ahmnvp7U*EIJ?XNfb zzKEYvuP0nMXGs+^ny();U;Q3la*R@4ELF^CzJ6qtJI`O2Kk3H~p09aQ#f;|bC(YNK z{hO94)ooJ6jOOdGr$U6s2EL_(q6llHiW$w<&&XA67(G&Wt5UrrRm^C<eqoi{hIDV9 z=K0zuRm^C<e${+k5WDtHrK*uCW;9<%Smn0i6>~Sec(&)O4Na2>%xJ!TL#nFRf$L7_ zp;X<aiW$w<@2qm`wdtq(PRsLr4VEfqG+%#czJC08O`cLskt$|1Uq@M$O?zw$pS^CF zQdLM5Gn%g&&DZWFAKsx<_em8qnlE}NSgm8XZur};O7((NF{AmS=j2rzw)x|WtCi{_ zsbWU+#ZOs#&zSwZ`-=nFUK{=<RpLo(|2!Yoe9<#zO4a;$RGRBeZRLMY3Lln532AIl z8xC*!_aRDks#Gzf)vKQ7YvGSaUQ?=ksbWU+mBuQ!zi!EY_gtkKBUQ|3zUphfy5F4g zrBank6*HPI`o%`oUpKe=*A+^2qf{}Y`JzvdtNwcbaH9*A>LICOM)O7A*{XceGiFLv zB~{F5z8Y%2oU|)PD%E>Z#f;{w5v$x|nXY@!^2WyZQpJqstFh+myO-{cD^+?s8X5T9 zA2FJ*CY~=E8)d^zE>x=HrHUENS48tw{&m4~O4U=Un9+P?vdX=VIzH>=?n*U8s+iGy zHPw7geD&pVN;Ofcn9+PS^HfytZqMyYY2vlve5qna^F^P$RAb}Q5mO44>Q<>@M)TEz zRqpY1<1xqFqf~38iW$vUOU>7^EscF8+$vSfXughNmD`4qr*jS|U!O=7Gn%hfny=^k z@A*=x{*WqWG+(W~dQlsW`qzj}`Cc2gZck~rvn59J)kgERZrtA|DAnmw#f;{QzJpfH zQI|fsyM<B>kSb<0U&m>_9{F_vzVXOCn_nVT%xJ#&bBo?Hfuo+>wo9qXrAmCZ(LeVd zulcH2b<5*QwL+?x(R{UIm3ywF>nMD$p=dg1l~ggK)r&q~qsC#IOHO-LskTWKGn%g~ zR?*m?aLwIk_RsKqeJNGUXudjVzMed{aSNr2WU(pvP5J(FN=H_?V}8};*ELY89#X}O z=IaE_*Ja&)Ia8@dOBFL(y|TS}(Hu2;)kXhOs;i}n8O_&;ny+?Eru;>zR!J2zny-^Q zUvR~3*wAakm!*ms&DY7Aug>Q_v`eYJl`3X5U!7Rxwqfq&r@g3D%{q{Od@`IE&DSZK zuM69Kdq}CykSb<0U#GIloj10wIy6D4#z+-2nlJhsr5cBGuV^`0sjiVKW;9=2Smlm+ zy6$b{wc$UciW$w<X_~JeUmkUWQoSlw%s4;bzsY5j#!Z|sXWFE3lPAoWHhum$`bLKd zvr9N*@`Onx<7Un(E*Up%=Craz)=O1j@vNCbs~MeAQU=52GldOBCpeovZ4Suk6XwiG z^frCggyL}%r<Ki^P#TaqW%~TmslL1^Tz2UM6`WKut=N}6ZN`KtC0@M^ry_IGgh^9N z5(+d2r3lh-o++DzGK+?sJiA1+k4l<Zas?MkrCd=mZOT;9Rw~ioRw{LN$&6WZsS;k@ zIL|D=G;Rscx%k(0EdKL3oukv@UzZmDCD8ujY3<H+n<5J24H)^qH(HEr@voOVXW9Ze z4lPN3#|rd3sifH@b4o;`a++_b4IDYH0ONMtK(wNRe@0-q=1-k4d)x>(b`yq8n^!WO zQ|3@o5sk({Jm7o^8k_ickZYiDW^u_pH^rmbnfqV<xS<nfVj#{QcMb-^z>(_z;ap&U z3JEo&Xx6OD%1dRrl~N?j(&vvmhYsQMXU;B}tci#7*dcLY0cYe7olu(3Bi=2FN)aX* zE2QH_=X^<aP?l)Ygy|)-*~p0g)5>%kD#d5QOdO#s44qwGMAL<@nPiGvdPUGdBI@pm zC}~8=bbL3>v{^HeN6qhbIQNj-`%xfsCzO?l+{tC*@L{`g6Q)m}H3?&z|CwE){maK0 z^_!?*LOZ)1K5%;ZoT=xCa>+3;ykrXMR5F{DoHK}fFJDf}WVMh}+)9qH{O8g%yU(P~ zFD{u=Hhb25J{IS26ONnCLuVWv3nJM&$m9{FO)5Mpa0IzDTb(*#&eU<`GpA3Rc^MZ~ zR5yQm$%NT#auTa16pKk$OdK?eJK5zkub4KoINLwAsXp1fo}HLHY3hV&GqbxVW(eMr zArw7=6qXE2k;KTd6iQ}TBz%Ng6e8VL55GdMh+orFtBGG@%MpHh1!`<LLeo1?W6QBL zfH-z}MzS=6KUX-+(H#2oMc)SJ3%y?bM163+t-^_Vz1seKp+6%@`GfNV8;|Fmz{V4~ z!Hwrv+ZxZWw>6GmADkcDcz(UD@%;X6jpNq`=UW<2n`SM|r{~)mP$z8TPbY+pZrTXY z31Oo)!dH=mldZ23iFrO@;@Q`yv}B5Mi#gDeEeai&E!1KP2~-DW3$+*+f$G3)p%%j; zP#u^p)P1<W0@Z=pLfyA^bzrtocN0fsp!48-sTV^jSRa^Q+i;N=RkaNo7ZJq>7#l8B z>i}{gVJTpoxR9`v1QM14#*A($2_!59j33=n5=dAI7)!dPB#^KaFs^h<Ng!b<Xo%^i zl2OuDz;H8cC82yn)4bgGUlAtei9(2zRAR0eJ3+ZZD@In3HYitU#aIf`2IUH^7(GGS zpxjy-N^fzxt~QOkgeZVGf`b_U0UX2#JND*vebv?lE+g#No7!dk(?IRzu{XPJr*@{c z4$|$|yUAsQ9dU36m08rQcE;D~>VB41GJMmuks(~mn+flR*Qc>&36&TahC%;$FtRMg zGw<YlcjelRpI0)zJGWLx<XC)&%Pe*O9;o&qqJm;FQnk?60i>NIkiDs_mdy4vAYn;f zXKM}OE4cqK3M{y=B#xs%$bTROLcZp<EMWLr+Lr5YWLv%{foNY_zQ1X0`Tn73%l9{^ zE#KdkwtRmx+VcG^Xv_CCp0Uj1YdAB<UuZMWUtlxOUsyBGUr;m8Qb>K_$x>DW5U%wb zOal=ms1*@b<k4nb0@DvjJL0R3S{w6K!I$Vm)xwz%^(9J_*3f**=aMy3eXwu!+z0zp z6JU1@JAwByL_>AYCcnazmnE9nnk7^{f>qWmU-A6w_P)Yt$%%L|EmJ4rBH4#e;`KpZ zs`t_U)CAZxE#L&p+M=h=ww~^@J|}Te)F-p$`o-qbslW1b5;Lt*EUv1PI(M@tlvzI6 zWGveI-kI|i)y%Pq%vMyQgq9Qyj1thwug{O3?(>qcGVBv2=7|y7lSgP`t~>Wpb0p>p zZLeCjLAkQPYLQ;7TFbH~Bnww!D$D0ltMQf$w{Quj{PVJAN+`s|sg@xWmJFc~m!TGg zCBxTGlf1=wUkCXT-6~Vt`;tXra=6ib$%5`?CJQ<t*<TFrt<jn44FLA3XK2OIv$P`V zSz595EUjpImalmJH!XyM4^1A7;;jtf!ax0rbU`Pk3*JBR`uW6kUtt2?Q}^{>5D{dA zT)Xe72bs|re>Z5(G|Jy2!IZyqf+>GL1yi+FP&^k<YyBird-XIs;t)tIk!DGZ{6MJo zx=Bk3Rny*Hci*K;sGXI{IK5l1Gx}z!(5+|BZryt3^z7DKrBSR~PEPOMNbA<CPoEx~ zH9n(w*&wH?$>-<)=S0V$XVxkBf8B%rr%%XqX-F|&$jAhze&K_1R$?nKxI8DbzyEub ziTf}WKLQNyG5I(aNwPABjW@Y}<EfW+P4R6*%}6D_-P^`ZLf)@n#x!S)zXjaJ72^@9 zC1Ca+Be)1&Y+NU#FKXpD|G-9po~#PuHiP*p33nIt8E8cJ(_E;&)m~PL<Gc#)YxyaM z#xCdk4jm-%uh7mqj$$h0W#;7hpU9&e`aIN?;I5M_)q^?19z9aM3QV=h@lZyl3}kN) zn1d!~vDW}bPn6GUdwwnU^1+;Ia)v#63Ty_LYfR2!@9$t9F*%F9?O@y|&}%CnJ#SuL zK3D8<hCLd__!y1T%j7KO8v$mV$r<*jofk?5Q4T@<TM6#ZN$k<_`)@EWo1CS52f+Mf zaz^>cUUNJd+gUyx>$Qu;ULlzCP0nI(4w$&fS?oOw=1G&Y*n1PqL6fuCYk+4zTgvA@ zy?Pk-sDFEa$u~KRy$N7un4HC49L!xNXR-G*m={gXV((KhKbV}wUehf6iWW8sLG`8a zmzza|3PIy<P?qD2z(yg+9v#1zXW<*cuu<?hOZgti!e@=JQSdmUzI1rMnuTBL#74p6 zEcWW-dC2DS2}zGL>}A15H!$a!oW<TOFjtzKVUNmp2bd>K&SLLPFndhSV($+yZ92j* zf>#fVy)(e%o1Deo1TYIt&SLK_Fb|oWVUOm67r}gFau$2PfvJB2S3}jqu*dT$m|iAl zu{Q$DIFmE%@q8*7;aQ#sE%qwG{W*y}dV2TYb+q>^xUEU-QGGwFqrIQNg|cgJKN^4S z!Q`5prM{!Vl$e~+esug+fccBbS?oOtrrP8TdsN>&V7@gui@nCUE^UL2LKvIv`i1PB z0cMcNS?ra7x!mM@zo15b==$#_$<Y54@|?UpTr!_tFkoQx{GyRXh5gU$h+Y2BksY&A zkx!ozt-v<G3E_$r$KaV`XfbaZo}-&GhMpZPn_pUTTKBHK$IO~|>6|fhCw0&1mNRBv z@1A3Z<9Wpib4tccE)&l|cLjhSQ|#B&nMgnPP1m&FkH#b>Ux!YcG<(*ZS(D4MIt@Q1 z>)g_^X)~rRfRn6zc84c1oxBmz3t|;t^@+vb9~wW@V`t^a>|wE`+shlS=-(k$vAIul z?8Td6OFxJ#sX)nxF0G0zS%667sr+MO@dih?#VW7Lp4u-ha@_-P8I9+qFRhxN^7F0% zai<`%wko=1;IS$3aI`Wlo}U`69GE&_>GnlU5x*n)^RG*HmZcSRekmG%BYtIS_{h?l zMeTa*tk_ob^Uu+~X>*&cPlLr+9Om6(42U;@(bos$Zku~bY(+u#uxCPqR2F1+DvS@z zq)66&q&S6@12f~uUs_eZAzHC0-C3CO^PXtsqV$95TaiqL<3rL5<BOmv%N`$#&&gc6 zeSV{OxMo{qZFTIgvCfC0@pICV);JnZ^AdldTGwo=_yyG+hw&9#(UQD@ubiGeDt^PY z{9pK`nveMhq$Z=ntqbDK2Q1wgS#m1)Nc#fZ^Pu)c@z<i&`@^yLy91V1l}(Mb&vPb6 z+Akrw6OBC8ps=PoUS0i5{p`^46pExF(mzD8dKBZdREmWuEljagiltDjUcCB^UlxBH zLVR%j<^9uQ6&ur|6;(CmtH^b<VsHJq9mq+f{bKSLua2!49)h#*c2d_c`ekfVetIl? zsBqFiy!;Za*jN);+P|izCKjifq77qlZa81>#D}D=chDhR?Re*<Uq_boN^zVb43M0H z_^)pLhQ_zX;_t-buX9i7ekxw9Dc@6sF3+jO&w30$;lyp**T}1DU$t*aEWVZ6x4>-Q zrqsSKRsWi{_~Y>Mbc&@?EEb|@%HmJL^xrTfq{J$!&|+x2?XvB{b5BOwHJv=!^A~?9 zwjwVij8%V<vOFeQaKBzN(SqY^Z^896H)*5hM<f)WVT<BhqHi3)cqz+*`}D$^s(AI{ zk0aH;q-IB!55_1#C#OU!s%y&k9?nk<l{En6RP9eiMnXrHKU!PkYCTwX#pIO*@r&Ue z1NDQl3yM~p6B-bCDw;yg+6O+)tHF+(MMF5+BWrg?)^49xHKVuVOxxb-KbVB8r@eF) zZnk^u3|Ck0&y4<jsNmG90n1YgE2>iqYc@tJHr1dwS`lds#A_=dPYZHl!e{Ag3p<cW zm-VU6*%%@;>!vzIh;>0M>@2|O?7(SN7*eNk+GfPMa%>x7r*rHT#Bw;c!^?fki|s<J z8|UVY;E9xG82s-P#&^Zy-_ul@u_DS-DbJ*s3l^XVJf&Vvk=!@S8}z86IS%<WgVK~b zKE5Em;-#9UHAR@9rt&cq-2fW1YV7;y3lv*gh4_(J#iC57yniG!EgEU+L^99G#A__` z`$*=%tnU%c%NmgTb6E!2{drfkGB3SHRS^!|sWh>U7l)egjM<#0v86SbzxTwu4voh$ zBWu4Mx^#P4jy9(k<i1$e%b0$PDvPqS3gWNwF@3O65lznVxB0({tI!;=%KXgod9nDA zOcXTIG)(1;G#w&~8EKlI6{{SQiISG%ta3qSLHtG5iirj@&Vd+?oOtJ0d~W87OKKu( z_r${QE&aOeq}ZeybtD$andN0MvxI++b>2gx=?i5BzfoHw&MTtQ^kHo=K$;;&ce1I@ zIf!-O*!5m4Zv;+}SvW;fcQz2+nMLQto%oNY*v<4`e0U~Wk-bMU>%oK*+nP_uw9}(1 zlG&JIs5`o*UKU5G{#12V)A*y&oa*$%{t(9ocrhALA}w#kg(wT!^8Hx+SKsKGH;&5_ zSwcUl6{}c~=|q+^q-f>3?0cc+fiz%6X;!rQXj=4|qiBh%BRB2AF%VsGc^1;Ztpw-h zyoj6uOAnVHi>)2TXIz@$!BerB+(nk(3ux)#$nwA9HS$z{_vA?aypyB<yeOL``ZQYB zp;3|}+a(r%6Q_hoQ>3`<gSNpaiZm_C&f_M<rN`2_Jb@A_TbV6@5besmY}JG9q7_He z7qyP^k8T{y9JHe6+=Cg|$$G}(k%IVZ1L9lY+OvNQ*{@ua{Z}d;PU@uv@ypT&Ed6>> z!)W})$l5KjN&62rjCYRy{87!T(a74bW8up(2lUukfQzQAg1*fo%gRx)!bvYiR}8I* z)od%Od@y@8wFO<G&_O(Y^2!+MvHW!;a=BtFT6F6CUBQY8IJ5o{`*{!M+sIRAiuM_h z`(5OQB_IdH-&%a-v7z$Ln0vRzR;0GVgu6YubALfbN&#m0rB#cH(D*g|S2Q|i=iX>W z)$){sxwz<<Hw3nDJiT5xsXEqqTjW3atz)=2*@o2AQ}S0d3g>RSI%`16CRp3HJcF`p zw&iXsYZ<Mnj@G<1AosOJl?T&t$<zAiHh8IdDO&SN%@%S`Rj3?^roxz@AyW`X^+lPZ zx!+wiP&?no^V88%)v-z2V(}MaovW!e+ZM%NjK<$C>RdH>CA>Fs($ncA8mss+RQ@g8 z7r^&cIxTQJhWAHnHpXxecM|QK+dOjZQy9NAdtnL_O<WL~lN#z#gv*ms8myuV4-EW6 z9`6VGxiK7VG<K=nf#DJ4h_l5y#OUHa>{MYdj=-H>>@zP$-;Y8Iv8fJyPXgUjr8?&$ zmc=ppy}FYT3p+)KoyxIch@Hf-kzQ;RVx2f`3}UBnY&>Gw9K*q0)=?fo-gFXj50^;O zLYhvZS)0;9i;~iswTMyKMC|{NmC7;M=`<1HLhwB@dDS)Z$ImI7HnDt8EPf4nI-Hjt zDxd7mgDcL%8K;3PH68d_baZFAh38`(2XRq$jyx92Pm5#%h{Y?&SR@lUm@B73P(Vlf zka>_)EJs#FEImX$J_gtE6`O~R+tk^sYF{rl#EV^w7%f4hIt6sjieZ<2Vf6gy1yQO^ ztN`cTSo}yq{8C)>yipMEJ^<&#aP;RrG`qzr@6KKfZ4K^vrf28Ty+fahU+P7!djdUe zo$vBj^z8IJGMyD;>sKEPAMC;jm@JVHu0EJ@@HkGuB?J;eZyY?>kpHJ1jPJ(1Qu&N% z?w+fsM%Mn+e?{saNOf`#%^4nx56XPrsUfD~^ZGFuj=wf^QcWzp>&>qVSM;loX}j#S zm9hBCc&(q8)j76eNGO*3`kcl%L-yEN)VZ45xG=n@FpP`UEj8tD^{6_q1IFpBKCh^< zI6EhQMT;gpYxOu>5Px|98W@$$DvZCx(xUiY9FFs7M!pR)nh7gjtY7_gxbGF|i~96E zWA4O)_}2yT!|{WWwQI7emvEsLjlVM#GeG#l%=oK?;aAvD&6e=N0pXu>&zSx3!LHDq zDs|rk@}R>9iI2rE#M!neyOa%8T%C>ydrBs5^ggH@#}_%M1>L0J#+LdjF1ijwBo-YP z9UHx5+@|%oFm(=ofSolAN2-_vXw3A&7IuEez9Y6&=M40!xN=yGSO-pf%!_SDOq|Tq z(b>2hhPDx6G$O-JCSqrBtOa6yIM&+BZR^EC^}|m6iQ(}nIY1C%;)VAoU>`;~97n{` z5$nfk9a^P1t?&g&&Gt2R>d9XRag~`K-@=R0(IAvWZNTORn~(m;45Pld3a8(ggAeDw z@<H~iT?crz`Ji&ZN4*rM-pGbrB3D7R6bf3V6EUijP!Kg9E$;@K?Q@Vx<wqm`SGLLS zLrH9pl(vO`Dia00k5uVJo0Cm?>(ULjGGBzuu*0L_lW?g!8swm0A<cPWG>90r(|Atn zfL|GHj9yAFrXCkJGW1IACs=Af5hG$ewlLrB#1V6Y$fuf!7}=kUjam|^Gz$JJ`(%59 zuhusE(}jI1|65I*^pVXSzbdHwLPfUMB(XnR*l(8VG{e^_q;GD?C300k_JxY5R$&;B z!B+lx$fNcVHFfRkZ76i)OV}lw-ICZ{<k|JNN04379%M5&iQOfhT|{^U&})$0@yH9a zO?so;4Yqc;p2<*p*h!z5y4M}Oe{v;w?al;w5-}QGD>;qlfHI6O1Xn@1f}?g5F&e`{ zLDVDI++eePJ2KHT_oU&6r5ZY;iebm_LH2}_jtLQ?c~bZw`-PZ5++g!@H!|U)ZMxHz z=1H<oe&COSTNmBBu+tX#!Vmd)Jc*zCLDMJ;_ECFX$bQ_{gSNV?{$Kha`%S2OWw7~p z6nX!fdXW7)llWLCeE@U&11WA_=%Y!Lk@`pU1=)TqiT!7!eY_yJc1a|x=_6OzC7bk! ziyLfhQ-w^-{~4)HM$bl0#w}^3MBha_8G7JV%>N=rp0;pWC@sZF>n@JENs^|Qo}5dL zMT``$a9XHkJ*VZhO%Fx(Hr~;YJ&E!olS3Bv!k37Vawn&CXp!c$D6a2BMy5OIJu{J} zl=NQ~wy;BODq?g*2_@B<z5vS&S%{cEc5xcd2%FQmMO_7zKq#mWMU4Cj1yP?SvAr8K zjXqIc*DkeA7U$?5gk7>pS9fm6Lc}cdK29UM6sVRIg6xX6Ae&i9?20dV71omP^XSc` zuG5OYADxN?Fe+u<<dO+xU2}3)hMdJB#s3%=DuypBqTbPi{}C=KU^ui=2k@W&u`HTa z!XX;nH0$M0y&aPx+4eKk7U2+G0a2{es`gJMGPINy4$<f(X81XepPR^F{sTkjBD(1v zHMyyUsn1L&+GET3t=aHIJJi$RQ0+_uX6X2%@(ekBz|)C#GMJ%$q_fw~%6>3Ob*Dfo z3iTcL2h!>NItuAtN(Yeu)@5>JN}89FFH^!^%K0*-ftNBvrquINu97J<w#6``Gqeb9 z%AIb4$NWR4WFRH%B>vbqQt0V*8ORQPY#d*oE&|n<f84tV%{JxypG-M}W-MAD;T|Ma z_dZB@-p{Zd`cf@ogdIAT`e-R+hnD$0h7Y%xKc$ab9*^nP4M|lf9*u}FdGAGw`LuLH zDeS8kS*CNbN}*cNnNy|EJszFsR0`FC&PrYi9<xLef|o+KgB)l?u`e%$#yqF=B=0mQ z@Q9)k@-L<rBb8E^=|;Y&RaFWZTINsbPIad%AHn#)f{u<(@#SQQI2-S|W_POhHDm7m zAT!$6jL}@HzS3;ed-IMc)!SqUff?;9&FE-QKTA8YVbyS@I>;Jv#OPnu)`V5U8qR$6 zn*XF!Ve}ORW;9<k6DVH=kLIJJsa+}1ml;xEMyppQQdPZ1y!vKmrRpJ7%xJ!vvZ@8` zv8_1yma$4TM5>t4d^OX2mHz2(&nwj=sbWU+)m-z{;fm<7N_C}FF{An7vUy(*f8c@> zzE!GQrAn0FKQ>yjFHv8|S=ZzAe5HCss+iGy9i!Fjp;6!TP^wK*#f(-jdNNjx!zVty zqPP0O<`1Nb8O;}+r&NC}9P#Q>r8+EC%xJ#auu7!kp6k8B2bGG}XDBeE`J!c1<!kxc zdB-YM7pY=K^K~4nTwhPb{&qyEVp7G7=8NtFl&`DDPkKbDilvGf&DZgoud$cE`nyss zmMUg6U+pwsJJP;7MXBzVDrPia?KNNfR<|oqDt-b2`OIj(vNT_ZQ}_L*RBuUN%xJzk zu*w~W{l0p3rBWS|DrPia9W`H#I)8nKQZ=Fj6@eMe*9k~fUr~JP^*x&@RVS%pM)Q@; zDtC_hu&_goQWZ!QGn%gxHD5PBeP=(V8ZTAMXueL;e7&2O>8sa5sbWU+#cx6I3;?-v z?Jv*t348P5ol+&<rtm);&euZTyzxf#YrHq%&Z6t2N?b4b=M8@IBIM48C+~h_v{Jn) zRpJc}zpqoZdaWIP=gmsBU#ghV>eZQ5;#hE;`R!kLQ>nr@15;o|Yr`%`Rmaz_yG~iH zRPCgS8O_&etjeN2wp&iT{W+!TD^<*BzPhr?9UG7RP%=-cMoJYkny=GY<<={uynDG) z&5|l+G+#NIuZvH=XSq^cFICKFzUZn)ohx-;tE7q<%@<u_sWyD=uG!O+uWG4cM)O5i zG(o;Tk}762Up+NnPj&gCx$^a^R57FZ>cuK|?rnEhy&9#$jV=dfG+%Tzr|LE2;PMtq z)lI6H(R}fmzV~&=XFc-FXG%3xs>Hg#f6VvMe4RAor3p$kO{$pDe9`rtC?QqhgnvJC zNdxbwTq;$}X!SbNQ_<*sX!Vz~m1>n#F{Am)WmP)%6zFSc>v_I5OBFMkuYO=v8;*LY zc&t)=AXUt0zRqG5&GQr<dFPI|)Rzr^CsoX7zRm`#d^sccZ&j+Mbg_@XjOL40Xw*2I z-+oj>rOJ^iW;9=Uta6X#$18KcQ>yc%iW$vUlvVD0SanrNU!|HYRm^C<`fI*^obkkX zrMgwBn9+RYv&ubJUNUKVOsUpM6*HQz0?k)JYRxlB^|n+oqxl-3`TA<Z3yYNMuv9Ul z`5LJC%6qOdN2yxTZ8`!oPFLUKwu6u=?#&s{c73FZ8O|w?DfCZ@GYtRXD?ag^qx4D7 zLi#pi^{@CQO*b=tR_T0S=71R!XH73I;cp0)^88sd=a$T73xntjU`I@!RW|P2D`rXy zK5+qk5MF*q=;hj1gkEm@%21Hvx!!U30_5`9CF3TRPo9jYbk(<}XoZv?`BN3)qGyZG zFw$4N*yzM`!P8fe*!aYB!P6Iw*!aYB!PAG4ZG2+7;OV=pY<yz6{CuRsy)H{=AeAGW z&=*g*PE;O03Z8Ax6FT}*mmr-zPw4!OWBRk_37x-@Or1SX=;)h;g34*n6FPq*oBr&1 zLdV}47UVD>Gokz3!z-cpybR%tK6LN;^0GwVS+j&nAJ5`ImY%FxLgjB{!<RKnsQgW3 zsH|B+)y+Th44FMo>ii?m)LHYS&RTDI5Lol1&Oc&Jf7U$J)z*1ab+|oS$>l`M)2mWx zsS*yHQbqj&vqcr@)B6Eave4H82n+Oi{#q^60tgHA-59l6s09!f=sPfKwGa%<ET2AI zN}X}z_-iNo;{zxTK1bfW`x#j(c%LKpCnDSZ9C`Pg9({ZEBAz}+el%Q-&yjc88FE(A zl@x;i4G8+5F4;H#onpQa@Hz4i4URuY?z?ax3-qSW^n3A{?)!v2T5`>EhUNL+jG!D^ z9N7)#H_1U}{roj?_3p>=0X7Oj+<fG90kcYSbm49LeE2I!-vs8S2M|G^I~p7J64L(z z=9&kI3g)87dl<}@l1st=HhaV!1@os>h#&-URF4s0UXff-J&5}f%%p#iHC(V^v-!Oq z>DPd1_z+RSeitIIJ(#<baCFoCm}JNv1)JXw(NQ0Pd-`F)1eI?(vfq`AAno?h6;A#? z@mrGEC<KiIx?Ma3=A=g$3*`QT>>My(NG_;9XhHNhFz@_J*bCz5_jkSoleSiHLG^8q z>}<&h(q3O$>d6OpnPh|Ndkwg9Fo%<HpOCZ19On~k6oTwkBJV3O<&QHK$c4}lSA$vn zZ^5PF#WoJ;H;`6?*|@HDdu7Oe1x((PwR45Y9t`HzB-~(de*^PH5{?!Mz5~<gsoMRL zz3yPHO2W~y^fJi^i}rST9hvunn?(Z=A!uBki}tGkvvYmz+&E-^4u;+&r4ZD=mmu$4 zFl&-<v>f)7WXK)`TmSY&`p!CVbn0mM3|UdZX74>@{}Wurvw{n%2mOlA3NY)R6I{^v zqj_zwWCUri2OXD}JdggxMj^=W-;lQq%n2J93*@dw_Gyw4q}}fVWUc{s(hIfQI|<o2 zlBvxe9yM?-0QY&7pn}@v7-To87L2>M^~V@wW`kQSS(vwugYihez7F=NUA_c2Z6hKG zLH3p-Zw{E>Bo|bV*)VXzCN|~mZ1tFc+&^#j5RTZm-k7)#gX^+Quo-x<ar8l^m0<4Q zF1VoM_XA`<1?J|L1Xn-69-YSD1+(yF!3CW^X!-gsFxw>;)PCc^y$PlVUGN|Taf^|6 zmSl*dV5=_`|M@y_{lH!KDp^s%W{=J@o4^&lCb*#b<{<l0$+#A6_D)CUops<Af!kgO zt|PcXG)en{&2JavPpbo00`AXs;7$W~qz+sjxRZBa=L@#-4MqMGaO)%+G!9-y2W$XS z`Ia!)053Ls%aHylm}zedF38?_$etq^LE7z|jm*t;;D*9c$~&$l@oFpIKaq9ryZG)Y zY!uS4**N-0Vy|8Jr~sXC5Yn;PxO{MxU|xBju|SUOwZ*}n^`YSKuhrhCNIw-!<Bw|R zmLR*8WCUrq*BhC4fqNr~y`$hh0Q25%VJ+x*yC2y<gSlgm;DYK=i0lWze3gWwM>!6I zIpt$vFKC|pJ0|$Ez<l_b;39aj^~WTn&;DF6?%u{dfy}qTUH65cg6exCGFC~ZHhWEx z+2bHSgolknP`msKdFO!nO>#kgX}q=h3Lj~~Mj^=F^*9hagL(2N!8OK<t-e<v{fxto z^C&h7Xih8l7}DR73~>}}_QL3>Wj|x=|0<ZEdQiJO1ZKVDg6i=lGB$!)^P8}j5#X1m zg3R9q<L+(cdjpxD)q#5y+*5zxsc<>~5Q5s}EacrF83wVl`E8E$?chF?Y*2lP`y9-# zNw|wqpm2@jjFrz<H4N~(5dHBAn8Gyj7(8Fmp>YS8tLqCcsC=~UQz;p;N5NL#7D&IZ z4%}bBJqfOeKA4FR<o8tMT>xfr5-t-4u9plO#LiZ}iD;KQ8-$$S8w$Tc?RO9Kmo^GH z>GYG*2tnhyJ@QVH41?I&{EkNY0C4w6HmJTC$XE^Li6+8t(D`T*?0o~~Jo*`GgdlsP zk#RAYb<{uzLFefQk=F!2GyMep)HFhny<?I0oMafp&Q{-nFz^nzw#{qzy8-&SV0zLI zNFxOKy$X3}ONK%0Y<`y@{TXm)x2)Y>CvY(^rAat?%x{5Y5anR=n+10_)PWlS3u}%M zWs~Nt_2`An@4%fzKU<AJdz)Xfmm?YCDA>5;kX~K~E(&gC9l1B^z?}hm&D<yV5vO1) zUpJ%|)`6qPRu<HOI~@(S2HXeqQ``ta?bil*pGk&6>}=(u^T5$Ma81CaU=b^m7P1h6 z{N9ATW5GO}gj)pe-;yDF6l~?AuX^ZqT*%o@Khcdq{cYut{%$+L5Jw@1n?*mt?F%+; z1@h}>CFiKVx7Cq5p+j<ebpCy!4jf%~ep?5w99$pzL2qBM)t9(`f$MmJU}<mT=sLR# zn2C}@_gJ}BNS_O4MG|||et!XTQnv6LbUvy8R{&;f5{|Ejz&u4i5spCP+g6YHNZ$?S z!jo#}?f`c+nARuP&e6P<2c}$dMBDtnij1ql6wyz8BLtQ28f2G&`H4P<fKU&c&E6L< za55GFo8;7PZ!NNWgZZqR;DXMV-I4t#>@KGp76jVc{9<X+xl%I3QLu6JG4x(NLr%1} zuou+7mq9;HGHfis9*vim>cG)*{OB`6PNP1x*8@d!j*(1le(AUz+*jDDje8E6*VTbL z3#RhVOm1%#>@Chs&iw=2iTy&(%h)K;-qs(lBK>X25J$nr{fPAYQOMirGcE{0_AWu* zy^>)NJDWYa-}<8t+|%Ix^{0?CIj?rVbHSBL22l<+zlSmYJ_q+<zOWZGUoC-!Ltx4Z zYWI5uxJ6)oO2W~7U5#Y8aM;<(N7p$G1_+<EadbU-4!A~i0g6C-o4p&6ehiogB^OlR zQ^2j445A!t_Ie=aV{k173BN)1?gQ6JGQyg@d^F^@g9{f5d$hOtrSp7a$<$_#mMl8e zfunI687zF(W^WoYr`Lg_@%MHeI68j}8Is)ZH{kYx+gVh5yVOVahhRP(T07Sg_Pz#_ zLf<cjKzmy|XCb|jWDw<G<LErqr4HP~7$7;|-Ww+T2Hodf1A8sc!~BAcLeP2PG~}(5 z41?I&%C{3{J_h&i5yD>3dG%Ige*k9Y`GN~7A5Oi_Kf%0tf#8D5w-wpnfmuJQc6;}s z+&_Z(^Ju{Z9Y=KQ@i3UGiv;KSHNK~o*3EWH#%-6N@4@~Y-1k0vw(qGWdzlvtpULdC z2A3^aDxb|>Tcr1|qrI`<E=^*O%D23Z_Ev(sJBhtUu=h+I?QH?KGl@M~A36jkb&Tq_ zp#JCxrmM*r{Y&doMPQ0ej-LZVrVLb%Yr))Ta)v!>zcrF^wL#@u2d*lKJu2UBFo#Xf zQoa_Kgq$pF6oSSJ**hD|1tw>)R|aOW$r<&{guQ#fJZf?ld#`}mWpai+YQMvhL6k#K z`yB<BF}C*llD$rnk><p4WGP<`xPD3OQGG80bE)LWdr<kxz$~tVy?eksS_gaU!ECOB zy-y^QtiIoaJDS8^7L2qVhjzh6!5deW_PYqoWRo-cm)dU$nA=RwV($qs8%)lyN5|!d zlA-cZ2<ngh;C@VEkLH(V<3(NBSS|KW0@q!#Ub`6OBYVTZ6q}r-zSn}e(c}z!)P8Hg zJZEwid+&q!+~f><RKC;+b*pb{aM_Zrt-k&1Xzv1W6O-7Z<9Bf#?JWm)TM~OTUY@9< zy$#@AN@9=NZ$FsdP0rFE$4<oh3pNV1wO;|4Q6^`xHy6ycCTHp2d%>(TIg7oWV0N3F zVUODHcgb)?unRig(kJ151{;Oi>f0U6K$EkSuNX|J$r<IN{<sm${U&FzR|V!3lQZnm z@%AN{BPM6D*SZ+T2Q~^p^(A}#!3;M!i@j1XSDBnqKI)G<B}0BG1og*1z&(+~9<|>N zF#Al-QofWDtcPKv5L92X*9A<T$yw};1#_v%8TF<1TMp*0CTFqt6qt=BXR)^z%psGr z*lRL5<Q$8QLQs9FKl(_9LF|J1qX68nB=)GjGwWz?5xDD<*rW2TuA{wm;Hr|?qxpGv z9qoM%?)xP6sC=1IL>nW@A*lV@g6kyN+WKQ)9qkPVH#Uhqs_#{Gw6_G@$|Uya_;?h| zMw7FQzrA3-GC9k5&X|gEij9KTE*5)zz!aFAVUOxNQ8H{0yP*EK6x`e-_NaevtE0Vp z!L3PRkM3t)0`rN<S?cRd!@3?e3SPSy^`+zOR4`|noW<TKFvTWk*rWPhD;e@jA*lUs z1b1f=dsN@`V0M_CrF`FjIbw1~`Dp#1^`&_K92*6%T`cy7gBfdbhCLe3SAkh+au$1! zf_cW|413fcyTI%>Ig7ot%R){wY!tkD81`s9=SYS@?1K8E54eIl*qc~KdzXTno5UWq z-)&%4o1CS-TfpozIitR0?+}>O=|;O)>~#dw)#NPpiolFFIg7nTV6Hbg!yfhTYB1|f z&SLK!FrS#5VUPOPnIY;*Q3^r*n+~ppWNRBQ-Ro%YOmG8}*rWNNxQ_Np!CjTa9`)~? zU>-F&OZ&Y7W|zqs?ML<wgUOhge7tl5)6?V(d(^+f!AvwcOZgUqxxwTNd(^-GlnkOA zg8KIfa2t}?qxyab=8(x*%GYET&a2oc1dW$Y$m;`UyvbSYEdq1B$r<&f`FS;%%_e8D z_X(J9OwO=J{n4lt&sAZg;MK!o?@TZQP0p}K{ZT9#Hi%tNe@q8AFNr-mzugYzQIoTj z?-ek+OwK4D**grT$>quG+XYM?lQZm5`&|HLvdLM>w*<^elQZnmeDJ7b5akfme$Rm0 zlEfa3zkOgD%}!q5Q^E8$Iiq}3-;rR7P0mu^Yr))Ta)vz`FKZ;jmBlWozU#nMC9y}x z$8Io3OwLli)^l)wj*Wsh?v3)%c<B%3B9pV&n+Ilz$yw~(59S$@v)J1OW}nF!_GrFJ zDHC;|dQb>zzhl64lx$Favq)b@d*i`PPhyYy_xd{8y9L}mN$gR5p98bQ<Sgy?4VWV) zXS5&nZ|m}qlY@<d*De-&=YYA$<P3Y+urUwJ-6m(T_Y9aVCTFp?4@~;p<mEdFOm~wr z?9uT%Ofpno3PIy#Jh<se>~a6r(cUfK?nz>g`s2Ae+ItJ!-X!*DK0R7Tdl^@RoMW(2 z@Wz4Bel-4iN`^t~g4!<zZe$XB)E~3!XzyBZHzu)1^<7g(d+Wh%PGXPx;}bAPOwKZ% zThGIMij6{0`%!)SgBfme7JH>&t};2JKWO~jDH-xhA*es@2lr?ad(^+LfZ1zumhv41 zlQBPeeLI2aV{#UI7l4^)az=fr{T54x>PjJ~zAM4qox~pX?=y9@w-em%B=)F$zt_=T zqXl@r6B~t~@k0I48_Zynv$Wq-Fl8oZX}?>*+;4IgdsSdwF*(B?jlVA?L-n8#)F0o2 zJDS8E)wk`HI3Ho7;I)gTeCL3<$mERjk-d3fZZJ8Ey?=sv%H#}t)W2_m*=KSVdns4p zIvX1WuO1eAUBL7+Ig7oEz)Utd!yeUliDcL@c0v8|S8xv|u}8<pMlkQ2oTYrffJt3g zdwr>V9l`WAIg7oKV8)xAQD5qhMPP0;Ig7nDVAh+Q#ojxTfoTpw?e{sj?~~Z0_RCy^ zb$M(Qym4SD-#{?KP0lDEwO=WiB_?OFcR!d%P0p}K?e_|p4^7Tu?+BQ*tBrbC>}7-L zX>t~O!@-O-Il~^!FIPzhQ4T@<u>{=8B=+e3=ut2)nVhA3`@#HZaz^>6KbkGZ``Fkh z)YiWRV1}8TVUNl;6U_A{XDQ!mFzZatut(+F3FdQ?v)D_$Cgfydqu|xUut(#iE10uQ z&SGy2n5iabv9}D&?Ivfjw+>8|$yw~}2J?-{S?o2s7Uy4Vwbhr#UvJ4Uh+WY5I~&~K zB=+d~bZQ;#m4REF#2(Er_kelI<Sg}l3(Q`Vv$Wq)Fik3qcCpy&0;Z428TP2Y7f1$C z4ngfV5!}oq_Gmoc0Onqkvy^WGn3qh>C|?%r?FW;-Bzb*L0@K~(4109^4g)jY<Sga8 z9?b0~XV|0hw@xyMatLa_=fG`CVvpMIb1+9t&QiYCOL0GgjY80TK=%5BxxnNs_R7F4 zHaVldG{4*f=24Tg*n0)cE|as^J1iNh2Zf;aOIwEb%dk<Xt-d*63QW#YzKLLFnw+J4 zH-Nd@<Sh1{0kg&A4109E?UM{w1iPU69s>7!5_{CY$6kl`!LU*A+Qm}7A~2&&&M03N zY|I67yUAJXtpihKa)v#c|8|2pY;qQREtZFzENm3KdKmU-{GAQv9Fw!yn+|54$yw~( zE*W-=T~L4g1Kbly?9qI%qmK4=f!mkF9`$cZrD&66<vRvkN67}YAC14fI@&7&H!6ue z>W{f~w6_f0ElKQAeIEm}+2kz!`w5tDOwQ<Eve)Q(j4NyuymqnJI~&YklQZm5eW!w% zXL1&Mw}ZLg<P3XMzADL3`6vX9zqi2ct%JRzb+p$k9&*}Yqu{lRrF{Ls3^O@PeP@DM zU~+~%YQMjNS#5F_dt1QlG&#c_9dCyuL-n8#)PBE!OT8g^eLI5bZE}|KjRZ5^<c#vs z{I>|q?Ivfjw+>8|$r<*j{dR--#^fya8m++fGd2oA{Y&<GgBfUY7JJ2DN=?ovAN9wL zk|Dnog8JijaQD~2UR53KZ3FjK9qfHyM|(%WrQKM2`%!(fCBv1irM_Lj^{Ios3+iZZ zEVxUP*rWM=c^&QD2JYS@_GrG^0A{DjS;osDFu$9eF<!{tu{YuR1ser#oLcM^ff;3T zhCLe3bHOY#Ig7mq!8~SihCS-v*Ca#bqYyNn-vReY5_?o%XC<EF!A7CB`gR9%w#gag zBYR`Ol$xBSzBhuo)8q_$G+x$AhRR1FsJ@%Q?MPye%J&VJl$(>+Hw#P`lQYUk{W}=U zMJ8vd?>sO|OwO=J{d>P;5ake5-+zL8Dv3R+?^|H@o1CS5X}92h1{(!$92n)J`sRSi zGdYXBv0yGWIl~^$2a;jO*ag-1HgNYQu}AMG|3AdN4}4VBng2h@3@}3E21Sh&>!{I9 z#nsffHW;*X$qd|)iA4D$RzxbAqO}xZqNw~yoJ6@jj&-fu)qcCy?{2qWx4&-x?D_?C zZB2-hfd2yc2c%WBt`bKp+I~Z{%KYBXId>-EGMMal_xsv;WhQ6N{oLoC^PJ~A=Q+=L z&Y9nUdDD+8Qog|Vi1Xkrug|ORnP4vP<BHH*0Ondh&R1XI-yI%CKbVgr)%QMd4-G?4 z#`7n@yy(XjDc?t64*GFL$~XCb<es;@3VbO-?_x0X{Wu>zk>`|$(FFN8Qhis0TR#jv z@t6Dr%w|8XNcr}HdC!mYl~3AZ?B5WV##>&WSKnGNF+a{nPvrR;52Fe4aisb#19#gn z^n`y8jF8^L;C?m?J<$i-z`W+i72)5fV8Y+`@x@nPp?3zD3;ehu^cH}*){pbi6aL-d zVMyxNk@$BHxE~BdPs+Cm%(H%6k@CF@rr(eAl~3el;@{%u;w`Vwlb7jWF7e}v(7VyY zXo7qkslKbhtsjP-)b}S~9{1yl)OQz{xBNI?`Gj8S1H^gome=Ri_dGCBKh8%___qkm zGC!_J`R)eufFD<c-UcvR{J0|Y-U74Vk1IlN{DY>hy25-MsXe|3?o1C`;ERu5g!>&Z zOZ~Va<+~HieSTaKdcOqI>&F$L_XjYa_;EgZ(jFB*7+HO*z@6t|k5pe7k1hjqgCAF< zeCxs7@5lMdC-nXW%r-x+2)%t^{^ZB`=!rZZ^FLUB<1Md3J&Mqafob&PeDw7C8<_9- zaYg7o0_IUa&PPw$V+WWw{kS6Z0zbrl;eALweDp-0p6OvUkdGtD^ZDSW4?|DJqs1en zw-j7z7<$qk_ksC|A6KNlPl4(6<9ziM{`~>WK|ihty~%&aIy-N9739E2Pxv>(!)PEM zN8;aQ;1&%-Px!Zbg!J0L-8&3D=^sA_v&D}qQs1}0?Dyk*^%Z#@{}6hOx4a5`DMHTy zGuMyv(UbOA0p<=rt_Zz{!TijRD?)D@m{<L{BJ>8pgns0!hmW4L@2MU}>MO4!weQ*B zE*OSh756Uy)8fY!Dc?h2e(J~h$|wBm0kg}GD?+ayOzFd)Utf{Gh=(DmUq`BM6}a<; zp{Mmdm>c}KBIR2T=6*k}NPYhW%w|8X2)(^v-t*&%&>Q<dvF~}yOFoZO-%2pm9<Ctw zMd)4PVKl+dp|=R!4a3kA`CC6idiR5Sco=$m{tM<!KduP>0)Nl=!CPKOs;}thGr?Ts z#}%Qs5X@3Pt_c6`1oM4At_ZzH!F2d>K6+B$*T9tigRdS%=taPs<;VHxi9BBn<{Ce) z2)!0Ccl&WZdeVP?3g&S?t_ZzdVBYfMeDtLMmj2k(m85<hNuI}oJKn<{sePrs=Z%nF z65N7e=*jqTGno54+~@VTAA)&g7<y8^Enr^r<BIU_Q!wFw^vQvbf6^XjfH~ifD?)EB zn8kjakDiooEtv27aYg7o3Z}!4^U)K1@S2Aqsb5EG-*>_F4?|DJqlrHuUX-`I3UW}S zd|w08<j48SC-mCD{LGIlLT?+Gm;E>&J<%_J0u%mU!<X+2Fz5PlK6=8xMh`<$zmCMe zh2WMBLr=<gCzv1jaYgF83CvS|oUeS+Ki&j$(2pxZZ}KD9r@ZA=Xg41{sqYLAqk()J zslJziTQm$ksqbnq_xf=~%J*|HkNa`H@=1T&1!kWgSA^c^f5QLFTV9`6-)aw|fqWdP zzSF=tBcRtbLV7E}tsRD*@b8CUe(A>*sqgb(UiIUA{1bWuV9I{#<4X~GXM#E3kMq$J zeKps^kkqdu@$W`(tA?Q`^7s7_())XGKOcsk$jh@Mr1x8J`-Y(>{2TrMVgK=#S3$0d z@UIq3%#ZW&Ps(=<m=%6p5qkH6`Jo@@qbKEi9L)26ToHQjff?}QiqJd$XUyMt%j@&% z>wuZ-$NA_<eOG|F!;dRczK6m5%#SNVZyT6b{kS6Z2Ec^=*;fxAJ+X&Q^)OOjc^yff z&jfe=F!V&8=Z=uxVsJMOLr=>0oe|Qz58Ok;(3A2#F+zGh;9eYtp0w{rBcxaQbK-n? z%c~$)zV?vvo#kOPkdGs^M=iM62<TliLVC-<-8Kw8sqX_Lr1uE8M~9&&_1!T-dar?d zcNlt7zVI&$k4fs+k@!~uuF}IEsXau$Ob0XHk1NvOQeayAIA8n9`0)^!4Srk^dM|?6 z>&N-%NqrB38UIV4Tos{r7MNN;&PPwmHy_M0KduP9yTLr*$NA_<`8I&r;>Q)C_ZFD_ zew>e<$jkU&jjVkqfjh&)eqQ^=Mo4b~xNAp1?~W1D`#!k8ABLXjzm5^o>jC%T2<Uw@ zLVBNo8~ranxhm2gl^%wo>erF_TQ#_8!_X7?`x=-Peq0fGxfje2{WxFww0!{Pc|WcQ zz4yQj_;EgZQoiH=mG~y!@+!zx5qe253;Z}AJ?S4egSpd>D?;zbV1DVx6`}V$nAiNc zBJ@556MocJk0SKW0CT<{SA^bNFpK>-A3d4Bt@SX%KY1NVUVZ@XC&SQ__IPT9^nMF& z-!Sx~zm5LiBhxSA!A<h81v&85SLCmDg!Gc&77RmA%gYGq-3ji#Vd#lI{pAShJpry~ z1oYk>A-#{l9UO+9wD05%_|bXGtH9?X@^=}SMSh&GJw*OigL%M@D?)Drn9Y8ikDj#0 zUNHOpxFYn%Z$w^r%d1ciA3ZHEV3K}Z5qdX(x!I5N(UbDs59Y^yToHPk!94HB`RIwf zyys!09`ZU;{~Z7q+BAH9PX%+nA6KM&bHOb3<9y{4{;dUbpC4C*-Y>yC;m7&tiM+fD zrr(b%LT}<@C4mTUd3|2{UIgYcKduP9<zQC(alZ0NeSZMv=YCufde4H{<;VHxiM;fK z8U47g9!2O?f~of7eDp+KF7YrV_3KFT@-=Wx!_brZwt;!Tk1JBX4PZ9=alZ12e%T9V zz>h0J@A!XXKMrqs9jSeVe^D@veq0fH%fQ^`$N9=9^d127h#yyk-WD)B{5T&y8Q=DM z7?S#Rr1ls97kc9J>nr>_70d;GT#@oE0CTM$=PRGky93M*{J0|YHi3D{k1Im&O%G#g zdt`m}3AoX}{`~q1|0+GqaP-asS33+nk>~j%q;~_jn@2$JelU;taYgvI1<VdV&c{C~ z-+nNm-}v}agx;xO&i3Pc^hBPMU>5puMd;lI=1xD(M^EJC$6%iD<BHIG70layoR6NA zFZ3kw{JiB==;uY~oeSn7Kh8%_)>jvL7)_9mBlWiyaCZ+wFT(vl9U;AK;9eevp49hG zBcvDV;JgCf@+$DfS6>+~&jxd`A6JBbOTnc4I3GPJ-+f^I-j6FnuLI1pew>e<$jiH6 zN;^$G<nu`FQ3j^M!yT!<5$-=9%zQttNcmD=TKqU)`J}!Nf%&-~SA^cPV0QU&K6+BV zelW*x_O)9Pdgp<O`f)|*EdsOF!+jqA)`Pi!7<!^#{>8(P)UPA8#};rqhM_0zyMKiA z!d>)p-tsz9`%3xF1vA5sE5g5P!7TUVeEgI4y$8%geq0fHPk`z1<9zgFJbK&1kkqdu z@$V1dJ{g9d@UP-2>^k1^D)6O9`7QzTH9yW*KH=XgFn9ZLMd<w$%mzQsM^E_oBAB=Q zxFYmQpT;lBTV92F6rpz(m}!1o5qe(()8xk$q1WbN^n>|0QhVGF?%`qRiT(VW5z^ZR z?&V?VNqhVWOn8frFGcEm2AFgGIA48*UL%-m{kS6Z?f`R-A6JCl&%ku}aYg982IgHq zt_ZzwH|GuWmRCUziqN|N%nU!yM^EJMS}-X;t_Z#Rz&zx~`RED%p71bIK6xEUUV6d( zb_Dc386my#J@_Md%d5bbBIT<Ell0??)b|E3H~Voudcwc^!Ti{dD?)EGnCJaCA3fpU zdmcvWA+ICxFR+z30N(QYy!xIA<|03?Nck3mS?b66$|v=`6U_JhxFYl(1=Hcj`RIwh zf6c>4J>+$y`o0bBqY=<6-)4AXs2!PJ1-MEN`+5AEK0<o)!Cf-~dMzWQcR#p?hoPtS z=?Lj<1NZVU^t3(&6Mn`gS4G<Q3^3>ValZByd1(Z**pDkhZ!MVb_;EgZQocvPJmJR` zq4z47xBa*x^g_>K7xR`^K@N)0J0Hw+KduP9#b8o?ToHQrfqBS}^U)LjJptxfKduP9 zcfs`gaYg7&d~Rg@qY_-Thb{2MM^D=05-`{JaYf440_JW%&PPw``%^HF`*B6+?E>?b zALpYd<tu%DWc58B+^HV+^XeM~GuMwRQoa>n*7|Y2@=1Mv2<B&gToHQPz`X3o`RIv0 z{ga0wsb5FZr=Nlgzu=R5A3d?3&j53gA6KM&3&AY)<9zhQe{d(5pZak{==Fek(U0@d zlk$B8W^Avo9!2O?fjQ5Q^U;&`xD3oSeq0fHEnx2U<BHJxDVWFoxFYm+fqBc1^U)K1 zU%Gu{@;n~gBoBKec@}!LBcvAt*XXCW;@YpLz77%Z72^N0V)T4C`Tgn@BfyOUw`v49 zdG4AK;En><dKfMmJ=<44=||rg0d5?)`$mA1-!=cc5#WU0zl;DU_4xG&a6)g(2ykP- zZ9fcGeHdS)f9yI8cR2q<-u4}aJDi@#L3RYVW59iQ81C@rjt3Xq;qM=Z<Ag60Mu3yw zJD+?Q?(llZbH8{PE*gzQBIm^7GwgZExyi)z3r^*uzG3dE5s}vqdAIVe50p&cU!eYi zg-gEut>xF>c>S_(ENohF-F2y3mtXgn=bnB3!f#)5!^(v>FFCjR%hd~4oqyiK%dWfe zy05RiZedgE8vdQl<-i4jX%hn1aJXCGSV(<zMWFD%;rb;jzP<9>O{qxLWnYTSUY@%C zTi4&lBO>+sVb`sYXaBEzCk196H9k-h852<73kGVj0nhyRK;Un=nw-iWavY&^sN|Or zl)s^I#f;=~U?p!Z2TtNGJP<jOx(VM7Z3Qxly!;rsZ|F<pXy{954}FP#82S=<8v2s* z41Gzz{*SyC0~T4q6UL|15T7TX(qKfz^C=bvb~>LY=+rOyoTO77d<tLKrOIbSr}pxB znocFmtk!AY(L8$7rDS#4kBvEgRG^P!;6&aJz>83z7%Xr&%yAc1h8;ImS?;*2D=X~z zPWruwqrRL_y^i`gnbCZ5)bkDM!+r7qN9}UjJDNvj>Z92+k}6i&=m_!!eNhd_rG)#% z>`{)|$z8em<*M6J3oEM~m8z_D)auHplYS~<FX}o4Vz)DjgaT)g`hh7ksRwmRibaW1 zl@(H~h$$9jNT~fz`kCClPOi&tnN|^K?srs4=JsP+bG+8A9kXdHB(k?S?v0hzHSf3Q z)*h!`aa2#PG3=;)Qt<Jacr<(2tz$N61(E=9baF{|%??LBXX>|PkE32rs;+#7RjyfJ zO$be~HjXNXe3KiSQtn9A6YkmFWCQ{=9ggCOQd26KqLS3q@oL%(;K#aFcar)Coyw4E z)wO@1kophSdGw)mZXTx2jrlsy9KOy<SJ~AymX0Ge4*e%<d^dE~>KcE)kc!SR(smTm z=80ND?KbT|TaDWk1u9&;vdeLUx&Q@!>s*WLZJMa`AtOZpB}DJ?5&duNCg0J8Ijc~^ z1gXJp^552bGe;~|bl&B8MRIF-GIJ9OrLUpAKeg0p&!v_KFQW<dMW=mF%8@?qB<bUg z$;^e+D`1@*MairTHvqL9HK#nOp3dtRtyEsfT~6<N&1vs%ekDmaYm^S>NY{(jbR^u- z33o==^t`LD>Z*m}ow~=(Eu;q9@^T}7Hp*eQqi%)lm(dZaiO$sZ)eJDr<DBjmNyrO5 z)6XwHjq<c$us=|e;=X6R?=!08&QWCKdQCAMH4}mb)rY)Z?d0};6;k)>0?j6MmrgnD zTT$hed`Ih)m=dHn$ruqxjdk4hEhK6>x;Baa?}}b-OR=kx>Jt>S+&V5}pF)MJ?5nTt zl2Kt?X8P#-_tx7cj%G|<d-Nvh$NAitx^$v$1<@H!&HFL+T)cfpYNeyT7PeI<+ApaV zc2^`6ea;Cdr*t+oHCZROL4o$!Fk!m2AyhJ@w|R_{>!h2$&#hzaTxYy)+ltQY+1#a^ za(n9R@^vTZR@o%lMD(L5L|w{+3=U?<NUxh1Ng@N0r25K=vA?bc+V@+*lSj+`F0tg6 zP<#K{<JHRv^}L;%56krcG(NL5nw@m(m|tr>J^{$lNwr1vc)mrrzx{oy{kxjj?ct=m zvOMY5+5KZmQ{(d}wU6?j<EU}{C85+9$NiDCwxe|8h8(vZ7R-!DgV?%Z1)e%zUoTCa z>Ztk(xprdfs@fY<&EIaOxo0h=MWCdji*t=t2!bhfd3KzdDJ<`<$jzLXL|`K#)xr{y z+dN;Mp{xUxAQU)_PcvpDNPSO>Nla~yP3g2-2e7Pi>#81;f1AG5dHjv`lpedagY#QU z4!kjC+xEWTw$8qa>pLYQ7VOYBJQ`SAWoOpsa<j}W2j19(p>S{zy;aaq4|a6fs-sIJ zOrEE<ihv<hV;JISy)M=Hpy~lpvu(<@2WvJ@**vbNrsDw5%H>kw&c5<ZGD7k_hwP5- z><gzm!u_55B^gS0g!((nBw3p7DDCeoO_k<4(gP>0vmO&`hf3^x!``_!dsN2xy}k2e zd*^_YNmfQ<ZmcpEb4ls0#<&~PC6Qs|Vbg!o@1a?CG>47gFJ-Wp%Q&2wTN!b>W0g^W z0scp%3z+VjerjpgU-C^1?+~)KurlHqJ|BrHpw8nn_G!{KdJta(#nm#XKPH_LCDwdw zW+v^g^9C_$b~u@dVFu8vYE5B9zM`3>2*k_^!B;0$%X(-uAUES2u}z+_bG?`*>9vtS z>ZtzFrK!*_OR}Xk9o7c)i0LExK}KG%E(*_^51p$t1Aa(qQC^i;Z8F`F>O`et3mo;K zqfV4EEtXm=t;sn{zFC`8-xJG&9&*n;z@-bKQdXjuw>VS7DJ$3Q&~$a5t^Tm@dVT%c z%G!9%TS+mj8q|${7!aKuiDlO0V(zuNr>*}n^y2L~YyJNqk-Em#_KCH2oc)9tWqpc| zgxc2re)B2QGZR1KTR^zgs2LSg5J{^2@%FcxugliX$b>YYK|P<D_`X2x+-1_)nn%Yn zi=)};K(oilkTNzQnqeE4%i}fuvAWOJo)Me!Stev|>U<}NN?6j<u%tT?d|p2(JKBCi zbcPHa5gwQ1$+aklsMUTu*_q2r>gLq0`HHh-b21ZpS{|+HYjZtyy^IE`KHA{k7#PSN zO;3+rtU@IhyRnji+~$PvYEJFy7jv^}ovHsSEi8jaS`zYd)M!Utf_`{FnC>XMToebR z#q%;+ye!H^20C~vx&gf*jYUh-c(fSe9$nP+D0hz0jr>I##3%<DXy@AV^@vc7h%W{M zllvOf{-k;{smBMaZ7-P!oYnS<zFLa_TWz9i)C6e(#9|>2K?0Ub^R7y&Uq~qvo<&T7 zD9bK}+mvmUk50O)%B=}pof(!o9FtHlYTZaLU99%gLSKognRGr)H&$8oco<rUe-wHS zph!I9l<1Z)gnJx!W|W33gNn|s*^?dTEP;eOxidEtL8VAe`}-;M@l_C_sE8={E{84E z_SN<xdm#h8w&xGYS<G_{ztEI{qcrDwNww)z`_@%u86-3iI9+sC*Ct6$>C|5i?9%#A zZ5QoPd*$vu0Z~L=k0vL*ucdP!td)?sXMUs!8nZK|w#8JZjw@{6dh2NWz%FJh?K^HA zWgpmmU{4&yGKMGR)@9?i+Nz(~**9TIXRNN{mSgSCz2%I)+xOM%Kn>dmKFmgJ(Y4#< z!uEIVU@!XBuIr7f&h&Pp$lCYZT6$m?CBZ_ziK1LMq$oy_S#2W2PFicOfYr89zNuDW zM9!J(rP8bB2G)kPhS#QcN_5z2naUW2r*0{CGP4;7x271<C!lLF&8B{>JoQCKU4|I! zXhy|wleSPqWNS^4<c8Cds?<@_vFAEc*k;jiHt4w8$QhM%1KCj074u7Gib<I&%B)d~ zfhH*Pssc4bUDvgf;v2J$M_6s^_^PK8No9xW@RYrp>L*l-*4JuPc|t`IqK?!hPF<(e zfnFDtKG^($JfPYuE_RDlhGIIavdG)T^w|1C47<E>A@+;5Lkl+x`&%{pwdvcKMD5bt zV~ugv$c#7VE~Vq9ACu33^<7zjke;{L@g~{yJ<|)N{Mf|TRz~e7pons2JV~lAiOQ`` zX3$%@BZ+iYaXC=4$DX=q;>}AF>Kw726KeHq=*ss~XE}<2=l@XEurp=<5DTu{+E7+K zWxE(~9hC78)S1C<jF_}vpsQ+&=NL@Ca<3(HPV*m_bJs1JxZ+2NbayzBey^nYPCLDJ zqSmD7Es868YpHeTOO$Dd#b~QbCT4ERCDg)xinYgT`zhBGnY9&8X5tG@-6vN1K{A}F zCu5gEnVc0L^~qG(NxvJm-J2(pvywL3=45W6A}=_(txjiO5aaWY&ObWc!XZSu9x1w= z_NtL)#)5yKhy{;bS31;aAKr+kjddNZyUwTE>apfIJ2wwmrAb6|FyKTLp_Ufw{v!=t zLxECya`Y^z7is5E;KzI#yI(fm7`tDqjB3x|I4WaTB8Js6)zy=lsbXi0&&;G{<h#D) z4bvM%tQq~9C+cf<X2z*z-0<$dk*U!8dS>NhHa-GY57rH8E#loT;(xr?g)c5oVf}ht z_}7(!<YAs|N^{EGj1LB+LJ@=lMH(x8TKe~BhYl=#dbBWpl;eh_=Ufs_s26PMAya?U z0@>zCG6cH6khI_!OX+{^UGlv_^f`vIF?RZHgV7V<QCfE<=^<gMO1Yk_*=j&}CR%C+ z+H1W>?}FA<;U(8EYi|CsC$c^AluCI@OugW!?+Gv_4_YXyL3~jt5+-DesT*0MX!4m| z=Yn+ypYA<)7ZWb(`xiqWK&|8fUFwxwW3{ybB0^p$ccpuBL%zv4;U_5*II%TTUm8ks zvLT5o)CSrh4a(|BF$+%^q?vblXlkbnrG|jOXOEPqPN>vsK}FGv_vAlcC}!P73&jX~ zRO=fuxT?;s1G`P~z;3>HZF-~U;S>H=C)9`1w(okqA&mLmcMs)jKtCO2XYA2^EqtrH zw0y-FJ;lhTXnmvIor<LTYttikq~g*3?qIXU427ZG3S1~&)aL3W(}xHKMx60fZ(y-= zJ5c@;k&Rd;T4GEv&A062X=9ozL}rk=hykmY^0tXoH0sUUWPVD2ySht^r72omHjp~g z6Pz0>E9U1dGh6k=)&7_?xE>Ua(US|Y@gN{3jG16)Yj3%9`*3FF=)ONfO(n{wXF{cQ z+pYBLQvc1?9b&}Qby|15!2dXvU}o0WL)uYy7U4%-wEt<%4>4`>{5XR_R<umSu;Eyl z|4ZL^B|rFPZ-War$C-sZ{_iKP9BpT!W3u0{9)F*nxUjO(R=eV8ftf>eJQjUjOr|Ji z@Q$etN_Ga%E>GbKzGRiUbYYgUXvQklxS;dRvAHhy1ay7Ku6u38Q^Hhec4SBCmK9wC zCl2AxzfnKK;y;txjdlnH4iS3Pu(l~^ob`qaB}o;n7Ng@Yos9GpW)Qui6TT?(LR7#r zxpI}PJTJX1hh-e!raGnDUa7mSPMpOp%d`?d<UupN2YvPM2c323gHAf+LDe+~+>qzw z`{3YXL=(_m-Ss?J(qTPK$StnG^^>G{Wc{V1j*|bUCzmAX#h8<8PjXZuiuZJCN$Qwf zhm+gvq&vfjy6vmqm#XNl=6TO+_DGXQlcGOA#=i}n>xMk;im6wZr{>BtYj)%sE8x_q zx|!uGrb|Dl6?gbXQ?UNjnSwkWL8xxJmnOwD)C_$-*BIfBmG8mUYU&z$Mx1J*RB6zt z%+-RnJ6b4tGgwB-BANi37cak06G#`+Gnns?pxRbjD+zmx)(ERTjd1e;J1px*xEYOs zD-w`M4;)Ng&b`fbRJI@*4x+I&b#$S{wkK7Gqg1bXj?=yQpbYm`yw`CrtxlbgP<qs| zV(NLURILwky~wLfB#rVj_JDZ)jrQllby|94;>{uk%0!PNHT@_9&vAFGrv?yO@nGs3 zg(FBOJpxk+Jy1WoPYRV+c5V#{9esCi3z-e=JFK=}l1PddVTa7VtoDcbp8l-VYWrIf zj{0s3|HN#lRhLdy<Ft-*gE5v-%q4YcM9m7B?D|mpvy#+R-W6-(r4>!-PflDp!P>YZ zmYH#)?R9SP#Os0E+UQJbN`HLf%8Ay-?e->Fdm2JZ1=Ago^xh6Ps32^T^&v4QY765q zhRTq-i>vMf-M4>INIg&L4?6FoLP|?b&7P!sRfM=nY?-esdtx$US2ScMb~My&Ug?M- zoOfB$dJXCshc?6#PEP5uHk9MSEDH}>z~aI@MkevxyQ0@ILK^N$sER^b+Jq^Ro*8O( zi85i*Dnu)2yDF~mF^W<i(B;*o)NSq*M*7?HBDz8f{Vl(oF8oi*>13uk7-b!)V~uOc zh^ELDp65e`>Dd%BFP}0FXzv%EAp|9g^MG-R$r#LyOD*WZ51P)uCw0zLyF7I!{<UiB z<Q9lf{rbEHct$k9j3FA}1so8tjr)acUISp-h}}%F&;W-h*J}qE644!Z&VPy_k<_tX z$Hm-yMjnXyBYcol*98=Qsp+Crl$oqsLAyz%nfln}QyU{<r6$D4ZT^GS!N1i`HI^Wg zYOB^p%ghZ{+jS)R?Qqy?yONZ(v9*_fb-h+P$$zyu;a(YTaF^`If#zh&@PxGPBj3qP z?y)w;dcsZg+qO3;PIBs!a;tq8sf7DYd;#wz+}k4!?l<=}sDFBx+y-~$-njacwQ-=q zy?s}MdQ9|U++9-9o?CTM$~fFu1hq3aR*ub{t9?7_mAqjsBPwn){BOY5;)K?#o;_NY zv!i}(R2kl;_V;D*U7-Etv|Ckkm6}tQcLt$HPmEa`XJOtym!#!wHLpxlK<G}C)f$oO zF`n(8beEJj#oQ%f&$ES~SsQ~*?r3XceQA?Bqm=(4{)hNKn*XD<EU|pUcSb*SpgV&n zJf&T9G#XB@yqkyQ6V%=KcZ6ZaA65cezpf3iNu;hbrWh?cUK%F_UEMHU(v6Ypu<o6O z&RM5He>HTNFc!qAg<(Ql5XWk_?a;opSbQgx*E9XADbF_xk~I&Z?jc9|Wuo=g#mm3- z?Iq38y1(uqZ)L68;dH(^$_e(WQrksxriW~|L|shvncTbjU$wfp%%p0q^6BDyqx_l? zMaR#C`q)<c3zqaK2AQlaW;AA;Jvz(s#o#b#>W4`*)Ize7SjB3K8Rg0u<;F<qb@hCs z+{IkD##EH`0_i%d(8I#oYA17rS-N*J)4H6x*H<!U9OpeptQb00UT!8i=`Lpdudn!> zeu%IVNuj+_soVqAcf1?*9m2<#MeXW=GLO`~x~l6-l;~<*qQ4^bk6Hk(A$5z+`v$3# zj8LTCla6h*Ek;hPjrKK3>&e7o>&Z(eH3c_2?zGA#*Pc|9<I3Wg+R;>EGbQL&t<v90 z>_)Lb?)hudcKYLT>yEofCDj$H;4d0f0v9q@ta6t0CNiNp$+|tajB@I_RxZZ1cRDk! zmNjE?J?WnPxsE2=TDHwryPK@9Z=JHM$y&ZOQ1H<tmUR5lw!R&zZ?Zn?B(*M7j}acW z(;ejy)|ciKF3pM6b*+9*7*d|#sdd}eOhALJYKoOiY{ViIYw!d2*2S(?7hH)rQc*`u ztHc8%7S2*K>`6}0u3|F3T&^<i*|Z_|yO*wNxpiV7Rps4eNA*q0b{zMw*Hd$ouL<c{ zn6ew4&b^4Vy})r>9~MOVsW44xN5qWPkN%H6HZh5DjmMVt@ZU+e>*cWt>q%#l&U3ZJ zKiC&4<_~d-C)HF2vzpwwTjOf4_2i6eV%C#4PYP~Ui^8$s{#e}~tvlaG1nl&dF?Rax z0lW2J4sYVkV|5@&pE#EswJd_+ycEyXdZ`UlA8WlBSE)sU&gHDNW1rM393ls(KJ2!W znGgLRzUdW?rCMx}Y3$N{OzxIs&u4wZTvpFzCjL%<_)2h&Nnp*YXqMH+eOcVB@3Z`? zUh=dl%d~ZWTziHstDIB1I`;;XOFA+keKRW@PSC`!WJf)zHMzSif|tKtOeZQ(m9Ibx zkD>yrZcimm;TbM;;j_z3$tTIEvD8*C`wBffdsb4<64lN_iu#o!7j-g4b(TCcrHisr z)|wrfq*p*GkmD|^l0wQ7XS8<h#1yVj9!^2TzgaaiQ--pd5shU+U&vg})H7BY8B(eq z$DI+C+sATy(&NO%naP^5PVkvTW}<PDGyjb89jBD@tCE;|a~Lt8t1qgsgHOfO&1Jz| zOhc_ZpMy2&u3-B2pSJ#4WWc&>;IkY)oMqKDIVr7f_qzd!Ahhv6H5*_q_tiWHS5a_4 z&66?{zo5A|q_EQN3$o`(RbXR%X5#sWaPh+8T%=rUPgPy42Ta)#?0|>$nb7$~8@n3% zqufPhS(diFb*{2DJ%=>kOcd5)8QGW99rNoZi@N>?6)~e|DQq;OXd@|;_YZ}<w@DqP zRp)VhZsl7@FH0NT2jrQ1#|8Oa42?UH)I~ZaI#D{MHZqOTQnM#`Ya<;qrfw<^;ua~f z>kb;nF$<5(n4*rlenI-3gWTz8#(z&3&)T9A#?RABi@~*H{!RK_b{!F3!uZMR72&%K zsD|}2(WJ}mX}&63gZ@UUSxOm21At(TYx>)QX!fE4`x%&U_7E>t?x-wfT6>z9NwDAU ze0vo4CYC&Jq}h|@fAc!q0^w|wCmrXmEmt!<4LAc0c;~|u(M%}BUxdwj^`fp6d4_W@ zkusbcGEwyWMiF$?ZD`_;_`hOOTvvdpqp90Ine54o$x-toj$(BNUPWcqz_}z-sXIY~ zdP-wKRDr0%$CLkF&G%|3HUvAoEN+h0etTl-jA-q$i76<~XCi=aW_C1xk7K?&-uD+U z?QWUG$GQrgBUYLtE}$EkyJ9#l(6z<6b#>R76my~$1zEE;5pYd~)UAco4+^QD7E)s7 z88M2^nQx|3$cOVJ*#UKZSiK&6-&9=3i+s3hCR)>JrRSoTM`f-an`PdAR4j9zSr8_) z4+$|<V!TAm257X3_V?FLY*?bhNAd=-ZdsYFQW=TUaMw!no}exXZ<#T%L@!;46K%d> z2MtWyUcKnbt|a9$O}mtoX<9KGysm&XQ{~k{+b>LzPV^Xx_f3|8jbS6yx{l{Q)0w1k z(SUh3I5L4CJT7zp+@%<ayF`?aB_`9eip1-pDImL>1cgkSr?_=kN-nb<{qzDZ2F8?? zF}kM1wHLeE*cr4IGG)Cii!Ei?jZR7gqg5>BEtfHv5Sb{JLK)+-v&wE+C8mNNn@2Ea z+bXJi3iK8v+?IzaM1B|_tm&o5;%<jwoS6kP1hecmr>dskaaTqT&8#L1Gju2}N>=ru zS#-*k(V<!HO39*$SB41^a#vQkD;uqHf_rHFT5Cf6Vyk>sl{I13ax(dzZlRoHIo1Sq zFUgO{Uhon55A$V6>j@hxTpLn$g*Cy3N&+egsMt_xZ2?UdRJ1(~6<erii%EMKB;<vO zc1)%MR6{;G_eBt((KL1$fjAO=Lo;J0OPq{|NW?U<d{w)28fTo5_83d}d)9s-LjVxU zJFs)Fctp6v4t5b}BUBFTu{L;lJAZF$iLUCJ3icu0b>pN=yv-$~{!ZuBbU-%7YAU4~ z$J%R5T~S7GnVtofx}{8#Q^B}fA-*>LPtZ=sFA3|>6fFC8PY**X;JBs8FOFiDFkSaj zY(;m1`Okf;v|eQJ&_NE72K6!CK}WsI`l^thrPZDUxDZW9`->xu=s~faaL&vrZ;+Ai zg&az~uw<)42VXUQC(!|eQG;4_iH_D<ODctxto_QzSSPbW*;uX@uAtu0{Gm)DL7XAg zIYnSD3u4`{g$i+9*My2tnR4?lFVZ|uJS=)O=_0us3st*y&zHIk`c<x=W51kxMbo0O z&^}pzxAh#5g>Ebb`U@e+df*XO-C1xCbjhN-F8u`pX3ATd)XRAtDHfTddaa%?ZdT`+ z4-_ipRZ;$VHOfz+S-J7nZSrAL-b|Re=6cPKt+EVYmow<9UPfYZ$7l^CN~%v-mf-FA z_2<o(m=+d=YMIBzB#cECO{}(uFenIQXc4&8cCUO>*RP_bt+q5@WR-k5QQLZzT+4og zSrI`I;emKW)`P9b-yXYibnEja$X&F5OG#>U`t3ibpC`yt*5Sp<YY=kh0zI&$lqXs3 zXOPB=6jKrzdAjWLypSa&E*#CLt>%ZV$KO2Kx+5ordi?EiD^5$OJA3&;;3RYI(A04A zgmf+N*T|Dvyv%<d9cf-@TaUjncI7;^<#cW}D^;nP-rX&$8UxK2^l!$a^pD(Nr+@Pl zPo~;3@o3`fcX&Efg}Z!n<YMz$QVVn{)xWtkbv};?H?y)9W%BxbLVdqQz}Dk^<Kr^0 zKbLD<71I&>N4Kt7yfStDH82%KLj6X{A6L&}3(=n<xO&vp72Pu{$mMDrXX>3TB$KMK zLc+2j;$B^mz5LJz9r_HbUCtZgIXY01m6D8%iMo|^8Lak)xK4pfo2{s|frzN*THf@+ z4>D^OaG^XkUd5Acd|~$(?hIthR6OdA>5eayZ*czT73bUiGr}dQa}w&I7V>NzJ+2xW z)tt%tL8@V{$#di68CB`V=Sr(tcXV(EH%iT8#C5W;X0`o{FOG`S4ZSrb8#%hSih|;K zPaUP^Ew-m#7D;`{Q7z&+jMwZSOEeiP>`wXAOSJ=0J7k;xkPRl)cDe1ugqmKF%*-N$ zfH^UfyKT8f2Oeb4Z~a6w=WM&bqlEYx!y@#SE_{D|MQMtKy84OU1$3LfU=*895`5SE zH5Ffcp)_Wy@j~%5r4sNil&Z&}V|NY^%&^yLwp!l~l=E|zqN`$7yhGQKVl&`*0W+ve zC#-2o$wu3HPAOiz<+kdU5P@p((JYldyqK}0R)Vk=5rlP`aBT4V48FGLf#N;*GfSt+ z_`E}>=J9D<`_~sz#~{A5_0=h)8g%M>Qh(z9P~bbHs&t-oSTw9}33;gFE9Gc+-t?jF zu0~dUcHqg#ySsKsW1Z+QM&cP|(#aw*d_p;?mvZIVGVS=n|8<&{18pseC8%vez49C7 z!l0v%NnESQfecGHp2fdJ&>G`hq8l8Hk%tw$=0-pmqdWm&IMKsp!bRpfaZ&y!f@+5t zQKHl;;6$k`uv;5;C2=^akDHGxR0`>4V3Ovn=t^G@NF7&j_YJ+GrZcWz9HIuN61Zml zqG!|8dwyS=?yNk}N0=~@6=DImbKl9t8)t(AsM(5mOrptQH*SDuG}`*bHhn|qCn2>N zY_K;QwAD_WX(=nt=r+n$z1cFpHjm*eg1OmQ!lWhR5N3K=#7@7_VW;2hU{RW7&uN4y z5p%SgTbzs&R<^go6eCV^f+{h~O|iP3R8`xa=1M!iGFqOf+qrtjrW2$!klmp*l(?2) zj3^e#7awGSD^YI|=VKbQnJ^s*uE#i67~V2oi_Jj*>9s^Et5a0Mtfi^T%WU;*-Ui!0 z<&S!}Yd%iM*6LB)1WXx9vqO1*%k1!hUFv0brblIVnfYq^A{WL$)$8{1R0+CrXO?N_ zCq=5JUS<L9!b0jBr1tCHb8{ipUPy@((_Ga<>?eG67#v*YzpfKDTMY;SVunubS#8`Q z0Cz#eahL9M+~s@K3har+yJG5^GNxAUQU>=g*)j$%H}efO8^L(d<Abfv3GNbWcCmUX zu5Jmdb!9McxmpnRLO+?Hi|ctn*O2rxv7ku{jTh8@lm8MA2zu#V++rv?hGo*3mj-w7 zkmWLY!{vCR1U6qQ8tX=wMQ>kNxyrqXjt2u>I}~$ol~7Jcc28VJ?F|2}E~HutsZ1dy z@oEMqgR@Efs*vg`q%=>b!u%mT^|r<|5)gtFi(7%d_i@a9w6cZUG>^r+fXA%#Y=OnQ z42xl`$Kswmi&u3Re#{Pm9OQCLtqB`8FDGApE1+HyM*pyKJr5Y<bxgJCN80KY;kn^w zKGX32(7d5-P{0joi$b1mVg`y=)Q~n=MVqwgBFOMTi|APAYiR=AB97N0QQaapNsACk zM_ljMDYO|RB*4<7#B?yJe=ejt3n}ran5$w~np6;$nv_{@jEfceD!UuJNL>>nO>C`+ zkv5^by9=Sadn9zXLxOl;mDG;ru{wyi??*hqR+}Gd`g2L3bKit1J^1HNtn0kx*tqqJ zXSiTOc{}X`AIX+PM$MXB+}hY>cV=1E>ab<iTs?zYv?Z|D`bB53r>;kJMy>n0JKrep ze5V{TyJOZbP?qI(@XxVeXK)}^hi=`LekHKI&kpw3bv-1TkHYfMPbpK|<7)GeZ3ERr z2#?K22<Ky5-l5n-BZXPv7|M#xQY&G_V<h~n&<yCfHB4l)W=ftFtzfDBgbQ=IlE5wF zDfu>h4^pcA*`<SZf7R}Mm%4YEx)&-Ada&-?yPe8Y@mHxhoUntRQ1RgISlw=^?N}k) zC4|Q^d<<9FErrUO*lb%LaLbspycKQ7fh$X?;uxx9ODNC|iP_#wJ5%(|ePQCTFFbfM z%SRI^6kBgP0xj@{Qf1Gi2E=9qDwiwLLNq5O7hvmV!BNv-Z!EYOfw?s(4>0>`meR?K zZB@zdP$_I#(Y>3FV799CBEq3Sl$bKvo1>$6bSxRWzfJ>GrGv=4kT|qzROX<^c=JQ~ znumz<%!C3p*5q_tXp;D79mKF?X%t7;@%a@8M#ll6GCqTgl&x0UBbJ>2gsoOj%T}xW z_7q4melsRxL*3$yRlBei2xrPeWEooGL9=X|nZcZXCIigcRT2|0A>m$>EtAxkME7V~ zD_~+!v5vLLwHgncSNMCmXuMRSch_l4@Lx%pxNE<A4DFj*1G7`B9$yag^k7}^mZdHc z*O<=tTw~%Ft8>#)4Ncebue(0XBLYr$eVLT2J1vph{6Xq42b!L2=s{i&ER>k>*grk5 z<6cvK+K@#Sg1Ux?LQ>sbDK(VcOW3G$F-CFvR1-@lqM@HlA_~GxoOs64F8S(-#yssI z!6;y~?xXUuF;GOK)<%!Yle~?A=DW8ep!w)cr$V9tGY$-Kk~U(_n&QYl6pWn3x*N+h z8}VCO;qBV{m1twx<)-FMGvkqVnGWEOUzVAVcW~&gy-}Iv(d^N}=^(r7u%GJ7!F|PX z&vCkE)<Q_;mkY#D9wT0xUcwdnn=2CTSDExYBE`gu<KAAbpOe)aNLe7u@3A9rQr63m zG<hWRD~5lu<|(<h0>s9xmL?L<v}QsZB#p23JyKCEPdZdo7+)dtf$$u>5%YAPTh4NY zt@hPymA=QN#u!`{A06IF{yDP5K1vT0!s`j9?bA;!XKr-WqN}d#>Mt#I+$Sof8e%Oj z#g#Pm;z(+g{b&g$^SN(n$Fy|F#rY*1nVehgbxeAa>LObmFBcoNPvB07B-D&5;nbQW z+s9Nug7?2x(^0dve{*>XU&Rb2{+H-YaLg{*c|*ib+}eO?mo&l^Wm-SDq9#vjTY`*< z{S*}@Im{Mb)Qs+%M+tQPlM$Xfn13PpY6fvvYb%}{Cnd^+SiFf5J5o1br6qn_m>-o; ztik=G31#6dqqJ6=>}aalQ}e#vKbqF+lTt6D)XQpP^n_n>QI-Q8p@@Tdu6Q^RJ*fox z%}n1lhuUNqPO#O%OzRwGUis(({d`o|%xFvQo@QHgmRS!Y&v7tFHgRhVJCme-pjeZ4 zS3WGy=CM`s#K9-AHqw&AK_UAel66F>T6dhyI)mnx`k5xscON_y4&@(2aIOTddY47B zHL_1ll%YCk(?8IO6nDSqS-teDI|q^SGw2*MP|GxgtZ_>Bcicr}q;;QUf|EK)Ch1Am zGaYxl=sNDYNk`%{C0QPBe}C0iq`qdyiV>w(rCxAy!J*k=u!<2)FHg6S?ytv<@<oDh zmJykB>zJkkyPDkkW#mShB{XLl-&XLgG&Kk7d+MC3wX+D}&j;HP!&9ALYdFJUC?NNb z*7ujhrrs1@Gme0YFy9}*t*GoWv8fL1a_us`gRZ=8PSxrTYS=5~>E?r<^`a(DceKn) zPwbA)g%gz4G@ZyluHuTmrzMkx`L=)3S52k+exbi0g1D5r(*u{L#-<0@!kr$N*Zein zwx;!2vhtc-rZ6ZCE%n+nhOfFm6=B4xau7{<+9(<}*Bftps~LwT!Xhg+H67WDwKFAp z!GING%q-lqtmr+@=?x?@uHmyD-ymydh3yZ<y|UO*o~B^tvJ`by&?0wHrK_}}`jFIj zbZR^-S)^0qtTd^AB4w`1!R96;MpkW2NX(n0Oq|rQ+_y&GEAAO{?+#L5)OmgKsZ-tb zb+eNt6yoF}op(DaZx@yfWm{A8Sg5p138k4Jf$3qfl&9m@SbHI<wYBN3Im}E+Vgp1g zYIayphV8noYfr|CT{B6CE_alINYw3E{T9(Kxw@X_;Gv;T-b|bUZa2@f+FWU1nU}VZ zur?-2o9ZquZEmtQmNrcdHZOAOUQH!g1qf55PL?vm3Bo3H>ylBAgIreIW}D%JoFEw$ ztca3lmNZ#aRrQhd8zt$z2gh}~Gb4;#^hnRST`;cl-zQ3G2CrYtSF_eBK1!2XUPy@| z4(sik^Bm&!I-S<{WF&1+dy^8orJW5EGDK6gJ|+3~ReGDF9$I9Z^P#!S?s@>#Y;~AO zih@upB1w|#NygNQ$|M6%3u(9Em8Lq&%50?l*xu+ioKT23(mRx`Cqt!fd>w<q`riZ5 z`{ZV_sd-wj+RkccW^%8iLcNX~@5U;LsfK6FmhJeI=VNZeGw~@~Vq6kc?8aYbStzEi z`aRCYZkzR_oo~jcye8a^PkEWkFAx_t!TQaZ^j@4U^Ing+SN)#8X|>(RW09RYXUV*E z95XPXGB~ZInV^RF>xuLSXu5cJwt{&^>4Q@?Zy(?r>2Y3~2+wTT$-N*uQZo(RY}100 z)&3l^o~V1>O5a6da2&FJGrPo*UCv$M^cz8|Z3FB{f6S;PW2=*?Cy2h=y6bn`V{MpO zLNQ9M_80i3f=*`M2i#V!p5M8bO$?>>lr0VFSvP(_)&FVdUcR~UKdbryFZqG0|I|zV zQHpWbH#L!DCZ6-MbHqnODbsL3-y5Xh6@3zo!a)i=g6in}F?rY+{dF9$aNkdW#nd<~ zo}F))R$wkaC#1RkGK}4+Yd%^YiMd5xt>0WO)mG1^-wf{Di$6I8HFn+8c5eI~nlGFF zq$E{OpK5;t+IFy$g1z8z*n->T4>qW$Sa;0Kv!nrzmECYO*bOw%JJPN(g@a<=&g`AQ z01>*^fZ?w(Go&zgq=}gtY@#sto*h$h7Qg46AbvWv<{M6WbE#@rm+PcBuQ=|!6Rao4 zutV0mdjZS(H62N11l!@i9t@R{{v<lHg)$%7H(+$P<}F;!-e(FW8M;u})=koBvp*Aa zImA{?CLKqK+aPc>?~ApT)2?Pu@w{sMU`&aoGq)*d0=b)&FYP<@ltKUWNJ$Fkv))^m z3g%c76>Y<mLa5V?hpc5+kX`Q2?yj$pEbsUscH)#DEf{M;kd@+55uKb>&Vq4$WJpO` z$zR22iLbnn`kO)uSFNrbdOL8bS2@u__T{32euWBpgezv-xKv1#kL1V%LT%PUpn4D! zX0o0{WT`n#Xth-zB{rCu?a`5&Phk8P%i#+h>Aj+@@?;v=Hy*FqiW8YQMwW9<KyiFP z8=u@17sb>EdmK-jvGZBf*~1h-3}?}TN%zOP$&>ESj4vtgH*@D%*2ys`!pw@~lD?$- ztuaIzh8kz9^Y#%Q;l}?MR|gT#0||97p+X%A)gPNO;B<Zvku~)x12K2aEAASOeiDI; zuanHA+sxSpYp`h75Z0AzE_*Ph_Qq=7j7@nny8x+Wk6HJStT-~YZXabtc{Hrcdw#tv zR^E?i<=xglz+&%wOFWx<?VX=y#~s)MRo30fbktP`V(xX%a413Qi+I~?kDVk@blw-H z<di2_m$klo)fgC3mt8ZCQlD_KTD=eBkLo4WJC53t=zK2{Q#q+fY|6pdl)Y31EqfjM z_^Q|0Nxx32biC|t06{f+Vl~@hQ?~U<r)Om<L9UG9$CygyuZpE8jW65MyZ<YX06E_N z^-0i<P1y%w{JW?|P69b5mRU+9g3cJ=JP`Z9?}WKAw>=G*cGCPtRp|e5JQEdmrXgqZ zyG@jn(?ryBF`Q&OKh7S_tyB`r{5kTGIqHx7@G&@6E3_97hKTd$b-aFD6K9|2;R@SN zV&$*PCfJQXbj$vLY}tQDJbA{?*DWroQ)o37CD^XdC2{KoU$N_6$?w-^$XqAuoqNO~ zM02cpeemgT$<u#(*wel90;WUsF*&24^W6zkw#Dk+kcYoD`0%IX;U}>=;63~;^Y9n# zx)<{gH-`nd@!unHA_WZ0M1Tobj7zK|wSp}K+9!6s*!|)N!zbqPWtVn}vBrZ_taH#Q z#>q3Cffl$;UA0q;t_{dI#l)+*vDY}odJb`lZS$OByOZi$FT~Z0arLzAwZi+Um3Hf= zx)?Xmq@Hh18bx#HRr|mmT&sTP+~y+AIq{ngI_Gwna%?`N960B6TkM*dnH;uT{~RbM zZtR{PVeHaWVq6gQI`3q=6~ULu$W<>eBGqTgEVrSXrNrhj%wFQJWJev?O@`Sl3cI8N zpXDo%lM1|Uvl&k+Llgf_y8@rq73dyh<Y#tkw_)T5hLMO7AX9-4gpn_q3Ve1*1wIjv zg9uap>2Jx?k!w7gu<tE-`fttC^?4NdHgQB6-{w<;Pk+O1eabxjJ@a(rsNmatZ-{U6 zjYFRPruX#U#;1HL{E&jE_&UUDYMe>+UTgv*Trn$o9T`2$p#B?#EY2#UdMeIxizj26 zNyhz~XA=Hjkulvw|Bqx$HM|n9>sc38^WH(;v!iuHr}44G)IPqcc-CXre;22e7;wEX zYY3+<)WUS5Crp}8GOZVV@L$>$d3L@x()WZ@N2_^RCK_71XO9`euIwm@JlmJVSe%|I zJ3H9$4qIRqW4=1T*oFsiCQg;B4or8;_NfL2#hKyYwqQe+p))t#P3{XNa!(_sZu}WB z6c|I-Rj4%##A_J**SsKue&0U~<Z?nDHNX)e^DNFcQw@J)l4@g&<~Sm)V7XW<Gh273 z4+!3@;wAC+tY>6NDr2q4WL~TnF<2kg|Gnv2#}LElQZ7hDL@3b6==G3JT}kR;of6la z3AuZi)PCNfz&{sK9bgQuhm^s66CHM;zIR_C)rQ4jmcf1!&Zqvhkiz_vQak4KN2dl~ zA*-kaB{ZMNY#ie@Nqkj}xBT4tlweuM*$|zS1Q)?IT}@74T4`$ZS)-<v+!B@?im3NM z7@tZ}5@UgUSDUO=r2bwPc@e3(I`z#$9xn5++45<%Nz}TY_uoeXpHeA~rsgk*O!T_A z5IP9OL)o~~L+<o4yeGuE$!fjzWQXHUu8b)l7l)Y55<R&Yr(;JPOS5k0%D>W{%Df{> zjip_aoj50A*6dDhu<N#=#<t_KAY-fC%1tX+?VMa`yM#B^hvV*?P~4qm9vPi8k0Q%j zi}uD_ZT}84nx<Y+YTdJklz7yaYA?UI)tB$1B8)jOl6RHNcG`Xf3jb*(KEt!>4p?p9 z<@<x;I$ouE#0wv-*`_!4PT3|VnK_G1lS%Iz&rZYk4vM*V%0bU?#J@2wz?G!JF~iZQ z9Z6imi-GK`=|FW`_k2kTrM`t<A2&JSj@+;&P?M|aXWv1CdVQ9fc(8#f@pomSoKW3~ zDeN}yaIp1P-;~I`&~)!C6~fuRjiXs2N!6R^d>6x$^-b)pPhy#}(phTm7I^(E)>tCl zQ7Vgk1SJcatFpvLWXd5o8LZ&!;72@p?L&B%*3hXac0*m)y0Z>>U{69QO~Lx$fgiKa zqEz2M!2LaTaCatj5o_Y<r%Ub3%#uX<-4b1UtNjElI~~u2g?_pYjFqK=s00kG(p#0q zgS=E$4wfTF4sQHgL%921)$YD5A*Ec^>7fw3L<V~ftV(Jzme`9rosta<CRKFK>1a^Y zY+;g>K4-~C?C2v}AgSJ9iNTT|{Y3Uj{E9^WbXqexw5<sx`Pm`qMEOU2+G5CC>(iiP zbz7{vZX@CCaw^xmoG2`-hq#x_e*8vpdM~JXUqo!N`kh`PjH%D?xi4+sv1)oM?rnM+ zmAPtcwl<bI>;F(AW(6<F0>)A;fXs}SCdJGpvc6v;>-B1(i3rJ#@*?YHJF2@b%x;?Y z7a_otyodDby{xjcip@!8hlk$Fx>QbjGwR3p0Pp0-Lm%L-E2jXf)$gR_Y!6A<wk|pQ zbqvuj&&*6aABsdO99nd<XXF^}S$i}m$B7r+kapZ}S3t8WJv&lT)6wMKQp)xRc0j=| znS(d#h07uA6r5g=@=D#6-I-q&%5(fIs%|FiHHFky3#or2HAYLsE2PZQ;bhv+<jESP z$-B9b_q{@%oNbu*VB|xOb>OjfEi$_&XqgZgipxr+_!W&)qmU(v-!h87ke5`g68>o7 zp45X9?Zy^}@Z-l)I*DFe;7!7v#W=_9T;o#JOYZb($2POY=DPwXd`rCE#Kp}DqZ)A< zpM0-G2Dh$?Nc7|2mg{%3j5tgWP);4q|EygcYV*(%>)~Ll?g_F-q-F>El6N%KO|Z;L zA+635^R&vmI!`FO0wa1`a>=U<1k)V8hcC`d+?C9P1`>6>E33>hRly%B0er+zyJJPs z6O@-o@53e7yW$;gEWacZs&Inc$-0h}U-TmStPNoX!*Y9lIFajEU+(03xVoYbbKxk? z6l}7^a@e?;gIn%ifn+;sTBX#9fXtgBA=*HPV_R)MrY3k}I1opcamBNJH#rp8rYL$j z{0f$QB(5oQURR>-wUtfMTOAop=(hyc2y-v6)#YLDtOt^1YM+{AqNDg03J&>p0taoF zGa-Tl?l(hjowx`gyJC~*vnpYCquKsKS<#9-n6k2aY)GioVhU(Npq3R<w-r)^*%0_D z?fhj4g~avK6st>=t~t$PTdbr4-gL%Fq72AvaJ8PixD-ZhXV2<evJ0Yi3qxW+YZabc z+a=b*_jQlRUo0thQO*mE%+c$%bWJ+pt7bh<O^-<66+(G3ML`&K{1|8Ul5^~)c@XC* z3vBlB#OhXrZ_!Gymh-hr7&2q-$})=fTwQ(GO236s#Zp&9NSzYTG%(!gtwqaaNvKy` z+3lSIK_@QHvRi(O6AY%tBP1A1B~6`ggqz0or0dH{*<0`6%xaM*OC#Ex*G4-!I-pPw z#fbICcCMRwrFD-@4~ltK<srsOW;&sipXriChm<U0KNf<rsJDn$u#naMMO`o$lpVu( z9UPZB&Dvm>aBxh>+HmWqo$rLl4Ulm#pUCM1g$+sVDR5?biGI?{v_qZ;Jc)1mNkdrh zs2~gr9D45&Szv9XqilRGPgoYDiV$8k$lEJD!mIH3e;#3&hXwa(YHDtajSY48iwrAz zn0K(zTcp4eLMg)TXkpj3fS3TH7quLSSNRcunRp4?HmfOu?T*nRhhBQjR$qzH0hhC- zc0uZ5Z)7}5@2FMX*&hh?DsO}|1LX3;5Qa&?$~|7VFEP$=qR-GV@_2otrkpit9f6Ht zESJ^b`G^6_=2OqH?zw}aH6Syr>I&a=!Ngi=;;bEkiq6ek&Qh1TBo@6{3&zny)A;Tp z-hzAHlImWLiuT|03>RA8MtucxPjfI|D3Qjbt2<|PYm1rS1X2}=B_|{^;yfq*KFnwS z;0RltT+@$$FK^$osvb_s&e@aMptp8xc2(xAzmpr_jK`xwEm#?cL6>8kO+1uAW|uS9 z>ImbRdcxYjh^hPaoU0+zz!@`yLmt(TN#Ls5hTe6<4VftB`w6S}$-?o&JWGx`AsGC9 zISLwkJCWb@sk-~#WRXE@g1%k()FA?~7|}Cpr!q-1Bk|*;%t-t(sTI6Kfr<38Yjo-y zQYoF1eHtcj9jU+7c^Ojj<6EJ?lcWs2J){i1=sb2kvL9xiquxW~q0B}Juk`FJzMn(* zA`Pl9sjlM!F>6}0RT#}?R;NX=mFenat3{*zNtOj=)g;C)DIHKETCJ{s#S{&aDXd)8 zfeMal*k73NNq3Mn$VFEYOoZaIpOobYQGdtA)eEe$^m-2@mNYv#Hl-g=ZEw8p0ER%^ znt8wp0^6b+)@Bnka}gZ4^+Yb)>4W9g^lmy++S(A`Zf%&?Yi(%Q)%j+4TrX;pyd64C zVrM?_Qt)Nlomd&OHeB~2UeIuC94_=Yn|t%gR|b>2$MwX5Z*%!osEy<7pZFe~2yV0M zp0(O7I3KHf+iH_FGCb{hp_i4z4^S51S;<^kcCZ6}t&e{YtLtBRX<j#ZHQ$>bM5N}n zuK8YS#c7eYsd>z+ISqrm;(TU^T$VWc>70<m&^QLMyMu>mKWsvEvQCpXTdWPqQG46A z+E#q~1<6spaVy?wrd{Q$-@;~-fTPqU-Wj{5yRzuk<HmdP6(LMf#qqllL&6i%ALmjW zPB0DI?-})qZVtILic7Y;CeZh(h&*B$==+G2n001q-bTty&0ip8*0NJ@%ya|^EHHUz zbFUF_@jaN1AVCENCys)_uquSw+tr6w{h{%YWd0KJNMGJ@@)5>2T5py9=?|u%%<OJB zD&cZ|Wq*qO7BeDZC3U1G8IjlVJ$fu3qXi5%(GGWhnOldVz}#x9Y=O9TLS#$bV;c}# zX44UU^w-O*788`_VG`-5P=EM4%u%OXSUP>W9NQ@LI0P^S-!HM+Z`NiUWiu9$gn7v( zm@B&~fykSK#aSI2t#?|`Wz3no(Ya>dAo-_&>B_ZAP@&}MsLsuDOW2$lTg5hx)r{M$ z6-MM(mCUVjVrsXXhFacqZ*uAwHtZ0Iq|Zw=L3}8FvCpcyay@c(s>@A)PZ7fc7H^ZY zQ{@QNL(WgdrX%L6$J@E6B|?Tn33U)k5^wT1G@!0b>SVFugyF0l>8(OYs)Kn)Ad+5K z)U%te2>0Z-=?vYW6T$7Wm=HR%dl@ga*>v_2a6O~o9NX59%}M%6_1Ai$VdfawbK^8E z9py}Ki;WZk!<)8r%41U#LpEByFVhBgx#+!Cw;&e!R6-_>azyxYTtnPBi}}b*HGi=t znoFI>ab|iZW9B9GdS23zI?1E&+s8FXzWIORchM6QF_CM<eu%;|iTlLQ7RbJ(vn6Dt za3TN07}e~^;ef)AIAFO&YOngNwn=cAV^y*8vE<o4kK+aDT&!Nx5tlLb2X7{R5I!`e z`$|&t<YT&g{3U@4&DY|ha%WFwA18q-B1P`Z$$e5U>EPx3cV|cX!u+?MjNfQIdDRWp zlg-Pg?8-(|^WrJZ3)EHDPPuAf_L%%tu7s?OS1nb4Z13lg>DTn?(H@Q>imB-#iVz`S z{g7QitayFKW)IdZ*afstb^)=LcS$+WQ-EF)9=c=b6T349wp(KdvTR^jOSDi&Dv8Qe z<{%SF&jJF6?}h_vCr?vmZJD~+>5GER)9t#atb0zR560YYMC5pfEpo}bS$3^OIH|<D zi4$76DEn&IjAZEGJ%$dN1{O;LEs%gWYJ2(Qyb*PIMB)PX=^g<+b$P_j#3P*poK!WF zWyYCaa+39A!wnh)BHi&-Iq`00C7CxCG9{;qoMm3lWV1cVop~0S#`C8=2W0C&RY+)e zf;&@!399uz2*ilT@{aJX;!5|-$>Nvqo*9vU1>9fIz{Wj%Q6Y6LDdYBCS;)JykoUhx znfcqJg_P{XHF<KMNd=HkladoaOls)qZL&2=!j0twaa7hV>Dxkq)i<SY3kOzzGkw9R zHBI?=V&znj)DCf)oM=#``+(fZ@odDYJW|s9rAJCR<ub!blHxG%ngko+47`7+GIN-l zRyp~LT3_+(yn}`04RozjDQhUOj?_!kBoq*Rc8bn3C%^}I_UYyXcu5YP0B?@ml%SB) zx~R_7)=%VoVXKY%>92{X(d}pOtt+u4TAR$2btdYzuAIPZb7~_$pkU77+`8feqZ2va zU_DqAy@YkF*Cmj?j*o)#A@#{9j`~##*H8w`Ry%(ma)MV>!wsZD3*C$gRbN*4GD$Ru z34r6E#-(^uWU#2#66VgBtOl%&^T;jpG9s#1<kSmGKupz65!4xjg34F5)15IWr#wo% zqCtaVDkDQR7j!o5pwIThUn<Rx_YgH0?Ve%eaz;etk|Ohv?ip2748;@d+&kKxahAj) z$-V9j9WAq{Yc5xf)LvIeHIp(@<`z;vD5QQ~NST3C#~(JxM#t1l+>}%6F0ERFVlNyK zO!8rFk%41;LalF+G~*ir$Ka=#qy?y|AU~u|^FUoO5)s{GTHqUp8sS9b<EIi+jFtB+ zI~Q@g$2NO*gluLU#Y#k$BO7ch*7;ZzN*v~!+|E88785!JaFqR+LpBSpte9v<;h8^6 zLeQ(ljd31{THHF#$7kwK6Qd+L#3paN65+JgOBfhWw${r;Djy@v_H0Mpk?&_%e5Ri< z=c|%moj8n;>3P%Wc}O$f0qJ=H&i637-we86B>%k#i9_(xaSwZl>7Iw@6F%gbn$p_F z)RfJJCN)6H^kf;pOiw<Jl({OFg6Y#=Ddf#Aq+~EPhllHPIQ6C(yq~bL;MUaEhoi2b zQ}0PF676*b=8~3*^uTz|#9uOlNcu9)vD>|Jyfd|q(<1Sc@omLNUVS7KYzRGq1d;D* zPXAd?$%PSv&yow9L~jhqynwH(jZR>^oG7kTEB#4m<yf^j>9%z`RK}c?IReqs?v1=8 z)%7|g&x3rxn%>K@Qp}p(p@Uf1;8kxj>N`5$9L>Q<qYGjuy6t$)qQlxxr0rp-X=#(g z2nv17FKup%Ts^Y1*`nvCB5i+lh_q?0BWm>{5j73|zm&7p6wk=d(}k4KGjb*pXXI>D zL6St`jGR>#@}?D1B19<RLkwPi%}yreg&jE@#&}9rpSe*j=FTXQw=<m9PBGIYo_~VK z-f{S#(Kyc3+sfsneH}sA{NYeRJJj0LOlV!F{pZbu-u_zpgAV6aOBYBix}nE$ooL+` z)UmmjVDJA%g3Hrea?Sg)KV?DdC*rZKFG%3c?3(W-N9<=eQ9-GiPjI>+i>0BqlNIi^ zS+Xq&WJg=&rK~z(b&i`JYM#)FBy-^UQLVS>%c(Klw$x1)2bz!OfZlTMofzjg0>;S6 ztgg*07|+bOKq{0@RFvv{>t;lhUaL<`W^%%bFNO0gQ!~)<;Z*eSZT)8)x~(5KlnAfP zpzsHo!z>$%Z0dJp)S_FN1FJaBJxX!CP5n&CnB35T4*wCDX+?hoM&>B&Ean_VT9;p_ z*sE)V+2&Oy;-qhlz{1_?Bdbk@Fp(ED$Mw~9H-&GWWE{|xhb-;vFB}WaI&24S!ehk8 z!uA1~gEd=nRN&b5{>Mf`$Z|e*+#vJZxj1O`G1V;aiqerC3QWBA*KJuj$x+9OfH8%U zEeMXp^alcZrp!T`v67W#X35j#M~pI|FS9!<ieutNY;68rC#JSal(DrYhMjY+J!Na% z^DCwhzm^OJlWsldktZ@`sJvNGJ5%;$Sq1miL4WtESg4q1L3(USoi2Sqj-E8dl!Msl z-b~DSfRxABmy%`kowF#7y(wK!hv@3Ffy^&R!XZe_sg<Dk6DSt=S%{6OWp28<YXWuu zMnU4gs*N$v4zsIdi`QythTZ%wAf@Txx5|3ii^isp!Z||vx>!J-@k5E~?C46I{H*@y z5?UKJcbzMzx7)ReOf;x3pCus^EJ1hRP2bS?Y3G~xxg_ggA(fL9df%?)6bSwAZ~~=y z0vfCdd{!W!i54SJs!MQcz63!j!QgGhpIftoqL=6!PXu4igG-xuln}`^dF5nft5DD( zH%yWTNL>qe9Q5BI8(Q^(7v@HelcyV8MD`;YfQ~j^5PcYv`F(^&(L=|`?gz}!MqzvY zw-e|rk2|!dUJSDddsQ6DqWg(C8clDlIz2B*Xlc%@=GXmrM|fB9MsSUU(S_DI?l-H| z=toM#-!UUBKiuU8-C5z7dwW^Zy`94zZjbP;%GNv*l0#GG^Y(mi>XHhH(4AG0J%N$! zq~z4K5jhP8nbAE?E#g#8ei;n<+2hSYos0lRs05Huuk-7<qLCcMAxTn8-H8fS-9{xB zYN3_NOknGj*Au9RT@_<nRTulJy7--oB>TWGEz?sZSu^v_LOyhi(%Mlkl10=Ntj+bS zk8JtzuwKI432ouP;2HC>U!_0dgz89zIgP4U?aEG)eH<^_b-VFy?skF`m|f#u(W8*= z-I=nQy5G68%P=+e%MqZu%TXm7RvaPJ%F%7NsB0kwGk!ze`*aWPrgk)>44FJu?PmS2 zTAS@vR7V!Fs!e#WEV7j}pKEO(Cs(hPjqZsY%wd<++2NHZ;M7t<`Kii7FH3o9&+X_Q zBQ9v83gqdL!VzQfbNd@;L?&VS&<juE%(l_Nqru2V%|mNJUJ$SD!XeE;S_w4GjfG#} zVFmqDapW|n2adDudXT{|nPI{yTTu#Y&CUb1x?9gI6TxS5Z&(}WuwY~S6s!>8zG;%% z)a+V&LrGthw6&qW<l@YEn4q^rt-G4Zv0DZznvdaRZV7)%1la_$UAIV5J>NH8uJgN{ zk5%y4M6R<>e7I!LGdt;-d&7^3E1yVR^6Z@6H7BW}mk;*I@<9Hw=&(x*I*cVlPn)r# zE2)~T*>4CGZPlrv1#M*))Q)X#2RbcJRrJ!OgMeI?g?m#RePsxd$HElGJX8)%3hjK8 zU?a9DmRcKTl{5sq#W_|kAERuyJbM(2V&$AUv!1gBHq^7~-W8J8k%qbRRy^QIceXxK zg-*x#6mRR7-{3IKpc~p8ZmGu{b3)v&MTD}?3P=8*yyVD>doZLzfjdckf#EtB5S!Z! zTM`mtdXH?@TdK7}l+Vc;7bA7LPDx0SNl7e{Ni~v^W#FI=voom$g{z`r3{DoiPS&_< z3n_V0MCZw7Et6VK>J*(P3tc9)iqxq(Po_2|)k5kto!3@Ki8G{9=iOaM-An2uop*mB zHK-%BPiS|{rI&nyNs_UHtVgfBHoq)0nKOezYP(hzV*j8iLd`Q|DpD=W#oJknN}X<P zxVTjMtF>Wz36mezkUGr2POb#Kq+awkPF_#BXzfvRnD#Ie%>SZtl~AtfXs+p{{(_DD zFDh55@QXRFiC++Y1rOy{kR5oUYlUB(vTi@g+TcjJ2=o_T!6e5kT_;Q;_@F~`#?z;w zVv8_I?BEKm<yn7KyWI;I>UH}`Ji*G#3guynk(o{7KBJpZhf_44cW8OAvT98z#XE#j z3`i)2wUHrH>@hveXd6#|C%=2NR`x?Kpz#^i|0|2Lss!#d5i9Y3QJlOV^;MZb@H22s z5@b4fOi@#qnq7%yD5qxXr1T48{mPIj11FnfJ5rO)nwVY=JI*t^3&wBVrQut$m@|-p zWu8Sm*ufb2IJBg^a92V2?TDNm!jh4?sVs<@){#2hJVtB-d8jbI`rm}xa=e{q9betW z^yZeg+*`^d6TpxwgQaKOCcam39Fy8z*S+$RB)?4~=e2#ovu1kvjhmACG8vi+MV`W! zUb}7pQ)ED!BJ4gjrdY}CWnw}VkcZS%{EeRBal|>^Tz;n}Svf8JZcDnarSp?;=f|u9 zK2@bHs^hrd{Osqsq>SfMnr?zS0WV;;9U?cNkzL1-Iu{+r0-8i~V%X+?O4%VUNt}E< zrCN4jaX)Ut!%ud_G{rp8qq!XPTAklpMp9?~U!LqLQHCbWd={yPbrFRxCVX6Kvu3b^ z=y?_Gy(6_qoKvU{Q}*;~tTWC!mEsfVr^_eBtvzya2>=<bp4mB&9itDNW#_Ai3BL@5 zpUNeIzpz+l7Yf)=DB%2|1+?0_`6`by4s=;h!xL+@i97Vr5|)_~T5S@3>y>hK{wG~u zHf;5d9m}(oW;qYmdMxhYH&do%X6HHwPBuGjIC_XJYU%~CXKOhpsPmJP*%-x-wA#U) zJ3rYu;MRxSW2I`^URcz{#uyJPo1xi)HjAUjzAywZgOZu{kXA6#brmVo9@iIA(lRS$ zZeL;MO)Mko9h*B+m*FeoBw6@@$T0WUMdygpGKC#JJ0Af!KNKAL^?1d8AWK7oyKMKC zkhDOp?K1U&jyME7gQsf>MKBI|aaWpDqL7l7F?ke_V0FHV8ElS;F(qZ`m%?`bd%0KM zMU<E2*`h@zU&`#AOGYI^UXFM28^@vO49jbwB4yXh5mEs&-MG5zLds;;!DbgyUoWJ@ z*fLjz!{_MVlND9kT_V2#tQo{lTIrwuH9u)(l43`SLLO8J1pe!Qo!0lni8yqvpslil z964d8n$=Ne7{qkToOV=Z`n>FI63inTUFA_Vxy-lciF!TGs8@+>Fj0yj^;tHE=9aCo z`!%&kEBEUEPgL&WKl97+60kzJ3b86HrmN57NC|_H4Ji5^V%h{N8&l+Ij=Ecytgx`q z`jix10vd>CkYU+=vPEzdXrhkxVbx<u(920W=mmEhF?NSXy^zUo7@kkGk2U=>i7)#m zuB2$~YEFh}{~lDMwNF%jhyPZ4yZ23Ybu`~j=u4&iq{_6&E#DUSy5^<UhE7tU>CKC* z4Q-Y81B<i8Q_@0+dA3+5#F1glN#@^>>6uXS_4|WgCF-l%PIoZXk8uWedT&cS*sa^R z?*(Q8CIsebQsN~tAuzuoW&Fiu%%{xgAptwz)tZyT>Ah2n7sz4M*iO+njVsi}5gF5q z{U7Ql$b_z*8zt^@Jw%;MTV)IXnIgyFp4`I;I8O@=N8~}K7bux1Cy(gyf*+@3Qe0Jn zUotXx&g@1V#ic3B-RgP9kOqlbe3<*RD?yIaY2gc}b_o_Y!L{Ca!dOZS9R7!wM7-vd zOY8hKNDk@gmfune^riX87f}By<{^cHiBgn+6eYE+X{9cOJ~`zQFTPU$eAAD0Sss){ zZaIwTz-KZcuHtBJRvaRfm~wk}Hn4m0sD%E3C0!hTi&=##-6{#!6kf@YZa88h)O3(0 zVK-NH{RLOQrkkRbl*EUI0{=oPqf=w3jLDM_+Iw`~kZ2_IliB>FOc&K%b3zX9+gzEr zm)u;gS5?@qC55oBrc=;(kC2vb*rNXv2_)58&ej`=*jUQXcZrr>Y^y&tEcsB9jxfHK zB|qz)tlUDsimOj;HSL$uu}<_1DNaH#J^eV_1TmG@-5$P~O~~`OM|XV*1#bT%vm;!+ z>~bOYSBK-u(stg2=2zBdqscL#O@+)Hi2X+QS9S;)exB!8A|9CgSR2NAfpODI^NFBN z$mFN>WBTg4TPid0(ZSBTr&oNz`Tt4#68I{L?CXBKB!sXe?2C#)!3{+=0R_ec0t5s_ z#03=%vIrs&AyJUsfRcFz_ff|copBj;+;^Qx00DPE9YsgQam9=dIx3<<zH{!as_x2b z2K|5a%X_bK`<!#Ds;jH3tE;Q)*0Fx3z8K#BhlK}@M0q^~y=~nAEBt#SMo&k=G_l)G zK$Oqxj4rC0(V(zmSJs@yg)%pG+fmqpypKwKC!=8c=(enejA=S}%xgPJq`YZS)#77n z+t0%t)H*!=$A#zQQ4%chCDldBp%(iRC0DpUYYFx&ZlX>ZQaL4~@L8CV44ClPE>2`c zsQA5k_!JZ$jpGWBI|1OYOvP4^nMw6tYKzg#D>E}2dEm}eceRcB&&kfcjF-n%LzA3B znc5~h;dodqyGuCxdVrC@m1yqr!-zqnFaYW11r}Z@;?2RH_DjvD*^R%zn8$7#sgnrz z2==+W-C}X>Wn9GvQ>HO<`bF{0CqAt2L+yNQTcPc&bUro61G*YHHU9TBF&iT(SlRGL z&dkwu%PV#@xG<xrYSiwc{^+dXIkMzO+t{HhVpm~E)k(=A{ol&H>^OKRtQwpcwxV+{ zS;pX%nlG~lt!UL9|8Vuks=*CvwzZ>S@QNlq3oCxi)Cc<T&fCKNFXUd<7<@kSzoBkD zZ-1j19kec^`;tK`n)HQbLFexHw{K9lKK6&>jQw}zUbYU&Dy-^#bpP*jFM9@Y6dMi) zEImIesk2bIGgooLZk`JY3c1*2AmjF|BgkKI?&V)%4y5F*YFGm#?V_^O`XN<=lj0f) zLNbu!7cLslnsYnolG`;XRb+VR3Y=h23Vz1<pS04;WWgR*NG$c2N#BJv|89pO>t2K> z)M(cpKVAcc<c$^%?}lK~6z2%x@hUVm?0e4TNqq_UY$DkrvBy&qX{osWlg=gn2?yO| z)V+)#g$tBZWMF9(VvEGaXU@zLf<<U!Daot!L}3LVSHb;|B0erygvaH!4e7sg0p3iG zM+Vkn9lgTwcyes`L@bnn2dz>cvZX`!ruP!*&x8$|^cS#p7W)u#fmqv|&sbd8Q2#-1 z_(F7QFqfXK=v=G;!W8i7uy63ohKv8>V39)~^F{eDU+$B;d?R8NKk}`~LmJ3RV4Od? z0!Hi!In&_DVT@SIXt$k@UTMy`@33yOvx>#o&|s=M+MdOnyHLXBa|t%4-V(29m(bwR z0L0noSmR_SZ!b5Af>`;`id`9tu$!{_%U&(dls0HN1{ZP4E7qy;a(0)^+^?9@i-aO! z;a*R@lfqpi6a&xS*v;}h9j}|i0>2lj&`ITABE}~sG6J6Ebf)e8h&2=&r-A8CAA{I9 z+3DvZcBaHGKui}0TY;FZ2)I(s$1X4Yp$79@+hPN5@-x?Llp8<QnXw9)@PnhV0I0mO z%+%cc+GJ|(zS35FNQ7R7;BZ8@Kb2LKdRv~oXL0lLtfH<UciAn7=o)Z%_8!Y`=mNW# zBAvH%C)d=y2+!L*xEk|~YQD&-oiU^r76pHji%Vb;T`V2Tg=D!Dd0}cZU>lQoW~eat zY7D|ZxUsP2<2<er!4-5j)ch-NNb=pH<U2)4ES&LDVZ|HR*@gLqSV<Sr@=S{7nYRUO zEHuLhX0Z&c^}P-qe9rgnhf^GPM?bkR;-Oc7F$F0Hc9l5aStiNqD|t_nOCH==!kqv- z%Ei5pj^P$`4$v<sI(kCCMU!}qR*c>O>m@pIxJ5kWN;KaE#i;?f!-Xs16L6vQ&<!k0 zJaWb^0v4acqL|?lmqgd0PuH2r%<ezE--5sM=*Pa3J4d|oNu2~eq=A?2xaTfwu;RU( z1$Zr|jCJ$w#Ubp_;HpKQJHwQrYH|4!(>EHk(IoAoQYE;Q!!w(sa1n<D=QBO%IR5@A zfRUz(#dCwQS;eWd=W<TN*_>>E8-ezH0;RaKRe&wkc%f|nHGJp-xxkC*QJ?-(+mo|+ zc^Q;79Ip`KJ4Z(3A!l+A9XZB{3tw{l$&Iwvu(qeTE5B-F)!*-ddzRfH=sB8)<>ZAR zFb_}l<uvj0M^+8Qe`psk%x3qp2ut}<-<Bx!vFK>K;?(F87Ls_x)z(S<_@BL1jyrhk z2lu0ly_2Um;*qZ(uyk$t9VRKm_3aeH*AL59@UYP`wUcdjN%8v2me7h2-J9rp>rIB? zZ0UK}pB8RTosAB{ledFXQ=3!qal$Pwi0pJXFgB|1m1F5sOmmi{Pm5F6vrXhHl2J0e zpdVdac^gHTr=}(gmA4TjZwkiCBZr_+@izPMoP$Z^QmN1HBUT}?#i--UwT|P+#x2xv zR@ESs!ghPVOls*%+-F1gT&DUGr%0J%Xk-|63c3+8{J_JC?<~fRZyY_C%UxYIt#~4C zu-9$CB!g;<Ne}P8VfHCk7N_!-UYyN|ndSLt8%8w2t5J3)%NtIqxVTwP*?=jWUMK%# zlpR?t4{%n`d70FG%p99kV(DDr<24W!+wkb)hB>t|Icv@E%Bxo(^O&$Xyz&wgvu^^J zSAa!1%lVc7rgM#?426RGejF{S>Ww-2yXTbfXx@KH#r!5g`EmGZmRVlJW8+xdmE?}Y zbHnvtRgd>^wuVpps`}P)%YsKh9uAa-7;Edz$!Hav^S^uc9V{-4vPVYDq}5<Lu*YT8 z=Ik|-Ag8afXM?Om-g?^?@7S>eNE2}H7j4_l!qkpYsouEgKK0kE+lwb0AucUkaq37u z8=V@`4-=G^F6<|h_<NvImEaxhIO?j=6jhyCBGr?N`pVnbN0nezhWz5nQ>WrVqk`hf z6H15Ubj#^NT;rET)J<17osZfk?}5cMj&a$wtyqdUitW0;wJ7&?STG+4iX2y+?7l6| zTRP7@RjjYs_>%8o**OYV)jCNEEu-F{F4m(24X3-GTX?3--mydLc!(5}LAZ|FQ`#mE zk~Csoh%`%)8f+>r3mhq5&^a$vGpK6c1eRGJf-^vB1D?O>AWLYic1vjW->?W*I~fJ& zZYQzMdu?O<GhF|v#x)HW=)#)kx<;2Q^?*f37B$AZq-%C23zIL_Ho~Gr!x2wzNUb3l z>pIDLUJ-1of|{Rz-9&7w;fN=ZaHO#7OFUg*nhn;I$E!K|zm$7(HJ?Vo&>U9C--LF# zC9YU2*`wf!P_l@8_8QI*L{>N*kQ3x0TX@X1#aip^2~=)lZ4OzmmA3@|t9<6Jc-7y= z)$nmnmuiYjnk`&WiVMX*xLQv0FY(~QZXVFNS6ym{TP=PaPV!hH9_RU&@G1o?84v0k zg~@NwMcBY`&YI+w{##n^kOkUh*?p`5_TZZO>&>sx_2yqvvBKn!TyOqG%yYte^Zj>R z)O1c(AyzL%FQNYyT!}x84C6|C$UZN!(x8>&ft4E2*_I75&vp25Ut+`TEKIhnTf7D@ z)q8QrYR)q+%Z3xV;eKy`XE4jMun<&5P4+$88Oy+Z@_U*v)&RHWF@vN*T@7YfJ+(g^ zcC9IVHXpx5T`^#b_2RxrZFu8fMU7X>I%jyhD&8`HN`jmf0f}{1F(kch|711p)eT9$ zI0Wyt&l=Kob;Sns=W7$?A86I)!K-b8+?7K=0|(Jg%&prFM_75HICT%}I?R|1)4n)$ zD$e2INpbzKx!8y~fKbKElV0y(hFW`G=tgGVw7}yEbE^gy)aK7?C{q|~TXI<ivtomu z*3pJlqTisczndo_O)JMV^y0<dB3mj+(_37<e<;98#b_m%>=UtI#}YX*kwkQLHeme$ z?3N1RIS1^xxfLbZyKA#FPM_hVAH<8X__44nD{cn^|FLU<pNI74Dft;Zweq;q6&07L z?MnPqrmE$i)CT?8C_feN=zm|}r}DTG=#Q>UZKVy_;^>hy4N~}c@s3WxaixC)b<smX z&6<uJj4oxNH>g9W<g)GDf|jw5<h(o1n#lR7@i|wp*-4UjETycwY-H+5Dsj>MF*qIV z2m+kh%MTls>O)hj;i-;xj72Uy^|h2n4?L#sdQD2CHpq6}DCcq6lN`51mJ82X!(M+2 z=|IHo%3~x$n6baNU5S3!TsmQfOku7s6pQ|sDja|w!?Mj~!!cX2h)+74Sd7ONDkk*9 z>lg<NsVY2{ZxSj>7Ise!?~Q@q>WZ3Uhg6QhwZV|CH5GWjQ01WReAQ6pnBuN46;_Vu zU0YCu`Fp7oyH`vos;*dlY{i6PG?g1szd$bRI-)lp`Vn3~F>Dm}paD1vE5~#%tQ^$4 zFg2(E7ctygIj8{tjdcHw^s0h1aOhim^??frJ;WMObrSaXOjL-W7$Cb4O(D)mdZcYc zmB38|yr!W&>ot~&z^e!=aek^C1Q_os3_1io#O}qFy4O-!W{;!Ks83t*<&fp*#togy z+J$QmTxZla&|A3h>JCbrDeUAe9s{|uKczOC2E-hm_9paT*{yg|^Ed6*%K4@>kTyUY z2D_8-K6378%+tjM3-7Z?C#D}qKUhe;@Ej}t*-}_}bW!R{JTQs{l?zrZ3^4JT3m51} zDO(gAU-`^yM@%))ky1PwFT<p{%Q-iNeXr7AJx<C|xt%>q=apd<36Oc1%g6{9Z9Zd- zUDx37h~M}H6LQ2eQo?aTJ1$p$qJtzIXT!O;%~P>1i@DebBM6v%Vn!KZ$d!Bd+eYA2 zg^|jOzQJnSPp+4tnZk<K>M&rrZU|Z?9aQ096HeAE`Ak?iDGd(~rM}gvHMte%V3RGe z!#Gt$-{ph8sg7})g6mIM)#Wny(rYtIuQ5lN3o**vqvo^h#@jg=%tn$DkulAmQqwU! zho!b($Y5^l6YO$Vf&)e^b?`g4|8$HO*@5usP0+WJ^$=cUiF1G13q@4Z(!$D&&KxMe zKYn9FZexvEx;wvU_~7zBg%uf{+Z1A*h>C_^7Gs!)+tvjME(wT|<&_i;1QfczYnSfs zF?!tC@{VL<F@LhZ2-$c{;;Xr<Yw?u!S93Fm^#8u>iIf(3-D*?z{c#6mVP3Dz+p2K0 zNpgmDBd&gGC7jo$bpC}`mD-_#=&;XGE@sXq_JRxz2G@-G5euy!h-n#E_)I6k_FUhv z0J7#h%emol9L?)cxIV~|4Kiaxa%r}uovK*^IJ^|7*Se~5E(G*M9X+?9LDT6zSh90F zCi3HrSLgyRY8_2hYfV-ymcf|UsBnFPNvUnm`%+k|46{dB33wU}jJxzkNwRS=5N1jT z&XyU)brbURk(vDAXxuh0%4b2KnQXE?SpX<gea0G{0k3h~Ly!*2a*QSwZ@|lY8>>BR z-SB)eUUhjUU-Y(_z1tN_AcWrR-1&Io>>@<UO5plT>G9oIxZ@}G(al;@XR+tofs2`O zN)yfjn<Y!=@)Y1LJGDi4YZJz;aO(#HH$Y*1K`j5dx$eYvOtQ4>cz)~0T1>CO-4u2Q zbVcc(YjgAs<m7Rn_%vJzdDC7_LlSi$aAfMA!z<6gQbyDBhT|Q_!!e0j&NBtWs|J68 z8+hG;42D+@-df1(95g`~x5K}9x7)XxRyhFpUYCyj-(S?B>-*?(=05lVlKuV2i5UOI zT@15I7RYm1%a9_hj8%yWh2hr)Tt<x}(-mtA&>I*4XKd^;g2{+!%_-!awsx44w+wG} zSb=5AR~OgS6xQKH`(xrFEK|2G5%g=2dmXM$Pyn5Zv81Yfn_^w{k^v2Z@*Q<pB47h1 z!1A&Km+p~&4uGMl_&d_Y*!$J`DHHc_)N^U9viTVF9+@h}@*sGrabevit`C5{FitvK z*!?(-@*t=>tzD`BPv!T<V__f6=_XH$H!kk~y1X;k@-fo&Rw#jm0r}Y22ea|o&+5o= zC<Am-i^b02I{7agWYLFU`0_?vU8S$xmAmX`<O<i>xy!zl2xefg47hB7q_}Dv-Z|O? zD@JXZGcau8(e)dJvkWeqag{!@EAE-+4a$9@Nzio@o+GNmdlt*TLP<Abs==JS5np(7 zWMc?N60a#uVHIkWS^-L}8jtCF;~4w!PX6d+d_ze^Ki+$+n42BsUb`BdwD4_{(Pn2E z-m!x!1Id4swW#N+xGq1<Qj%?+j&hCKb4cR_GQy2vp+xSJIaqb7W=;mG3}((To_l@u znga8<2VOVFSBJdDe4$F9ee1@{c8uiwO-3U)vUs;_lz#307=OrJ#@pn@M<0jR(iW%A zfWUj@-)vh*8`c?HI#)+P^6;Q=39A%3R0Sn<qYuHb5g+M7#_%i_?098Mp}exCAy0dm z#dt6Z!=ERh#dc2&G~~($;c5qQBO092TKNYZ&`9ffpM@I<xN?x^V@L4788R}J;7%H7 zmlzq9dTCVG4PmV)L^T+UYLLxpfW^#E4gL)t2BR@zTTz_{a{0?#u>zHblkMfbYK2&J zXA{QqbMTDe!W<lewV8{OMO~{ge9#eN69rG5i}~&~A2s0nLNRu~6YFJRePOH=fN_mM z7|0)yjTPn558rpwk6mG^DeQ{Q@`zTl%shI{?bZ~^;wXF_omrN;*NYf2z!<@_nl@+P zs(9LJ%+d+){!t_Vw*hLV)$sp9j15fNEC70{#<e$H)@;R!lej+LSct{3t2p_jfNLfP z1^nMGO^sBn!OP5%u`NZZMp$zi11r@q7WG<P)OEFvtTe91xXF%cxv+1<L58RDAVUkU z?Hj^^=eM)*M&Ir7PX-_R`JuXr{L=u>#o!-a<X2bxxZmQoPwxjVa{tCh$UokfA*+ct zUQ<<!31d64jOLClsTylEXITu~6k#e}YA4=+TG+pO(Gjw|Gu{hWjqxO;_E}7d2vRk* zy_Q$wF6d(c4I}HY>gT&V-l@eR^BZ<->0h(31=fVdhP&!;QN#Co)L?J}Cp#(e;wq*p zz)J^l;%++xD|sR@7(r_A#!o|%8@jG8O72tJwh;dh!Fa?^SVCU6B~eBgs$7#XB)M6} zFe-MoUGRKSCExTqw>55zW>;+8j`y7MSVnb6KBP~PEsI7Kc3p$5SX-Ohx#@hQAR8at zU_o=HgK9-7Jb8i<szP9P@?Cy!)GZubh&9qT*F80(rp@_CO5u)=_`PWxuI@0Lgx+0E z;j|hS3EnM$8$xKaQ3N>mqSP?dg*8(W<zI6Z@ZgAGQQyL<loQ+WQP-C?ZA-ockvdc@ zDJv>mDdk<w(>HEuC|`z$T(P~#HI3V%P!ezag!ROmV-@@4W*it&ZZITpo`2)Vt{Zh5 z>#r@h7qKi}YBS62IVq(|yeq*L$bDgfU{-16RjttRmfa<%>Q`6^`Q8(j*Hr-`BP*9? z<EN;yk}H9%UrIc~8n%eIlF~J%WJGxBzvp73KW(i<EQ#W(n>$y7g}0UQUS+9X>fk1Q zG4FtH1<2fM!N%?*s~+o2XHPW(gEL<W%w6QuMy4j<Y;?bDMe7DI9;q6M{sC-Ee-SK2 zd_PVJUt2c%O0(V%&Je$0y`O!##1C)c7LVdh+O=%iapu6Plx-`MSk4EFm%Wh91<bI- z51KWzv`=vb+W$m(70$?b=h#5jxgy+<DR9aCfoFz(7%s0mJyEf{(VTXvh85Mj*g<KA zhjZ{=sNChe8o>e7^M^qd&kd-?KbYC}IKKJn^!3X+FF`Z|ANDD50}Xf8(U79ohLo~z zINIIn#x3d_fRjCn<-zedO3r{2@%pn*a2Nh#kSCFhP8B*@MPL`<q%kzLOkTn#YLVN? zUvS7AxyMbl)co#xuF)H7IM3+K7~~3F?!)1RF63S<Ucvk^?l$Drtz%h9#!*-q$ad}} znHbhYiK38hmi@@CUa9PA-bs+hOmSk=hu+XF#j6#i?^E%G%xyTW{5_Vi)F0fg8}bFF zyP*b2HS48|rD6sH>meVs(RIgg9o-hip_B2BN31hG89@htG<F+e<E4woxAy3?ysPlP zPTDgKM|8ZiyF8x#BdcX<n-uea2IZJm`Z}?A9<dtL#SW0<KCz)<C*K{m^W<_AB<ki5 zi3}`*gj$+E66=v*8lp@x5E<^10+tAl3*LL<jkPtMkX%02k`eT0HY7F`F(xr1uw!DF z?t$KSy$4_`(OW>J<&%nX*~0YUNou%`9=KREl${T`m2*KJo*2eVeH^6Nom=@zsfkl@ z!}l9ZqH4`cD%?fQHrIvC_#83b?<q5}y!U(Rbr&y`e?dY=RzAvW;^N9jSuI(cF*<rX zqNw#{4VNC5&1%iP|60|lr$HVo0JDzEvzN^{fptSs)u7X)fGBw{m?J0ZD=&L(9%)tp z8(I16MyjtLR*WBBT`f8SQ~F2hTj7RR%q<Se_g#AQ?1?j{VcI!{m4;Uq6wABAYVdOJ zO$)HYWX8mhV%G9@e6imO=*ZooQOE*zEFNOSK2O~a^YF@1oG^Qky~G41d%!_u8MxF! zzjIk<VsLY*cDPZ6y1f%U1ealQuM_u=!&!@Ra~j7Q4s0A*@}HGi4=wb_(XTyI1`)7| zs;k<vRE=H)Jr9t^PDU-}vr!qrBE<CGD=y-&z<B;}JdLXN>qn=~Yk~{7{85z?w~neh z?vRlwTqwRfs&e`}NGc{7;|lI6tj#>CYH*&Ed}Q%Q4uF~2i>Re@lixE#ZR-sr<t~32 z2{O~&suATF5}NA;T$zXCNPOCMqAnUZB((zr25n`T=EAzMolyg}vj)_!V0Qf9jxl2o zoQ(lAJhd*9X|#l87HM%2<_63D(>YSbRZWouG|B5QYi5I)NX6QS0TxzvydAQ5mmHHk zMDhM>^AP2a9KJ#IN2={~Dc+GU;LY}8d8y-(9DZT}bTkFv#-3W(QJB#j%EJiMMPFA= z=d&dhYsE4U?)l(aMz9Gn-F2TKrju^amk3Uh3y}uci8|-1Ct^C)re34OCN`hbh-FN( zq&U?Bli&13;W}j=Q=CrE+QthNjtak)`nl?)VjjqHn4Miv+Xpu{P`UByc6>1WTa4k~ zVqC8l<61^a4$(u3D=`DOG`sRNOt(6%A3pi0u$cDnR_*L!3{Tw-b<XESmQeS38HCP% zYfK%Xk&hBfJz{AWb6)v9gkkJ0e^lx<yf?zW0}5j<7;71xYPNJjb{!V`#Lxw<eefvs zutQkNaHlg_^dK2obtYCi!(+r}V6<jBmgAg*wt0TP;i-@1AUSi*40uUNAwPlG4isQU z@DIc`N-Q#y_Y@s(LM!xcY78ppH>uZ=htYQA_j2Ifo{o(C7MKCd^SK?lDfrbRzx`h; zYifsl^RYVS8q!DGb^>SU(I|+K^vQQq;FN%&&WacESP1FEoPXmeR;><mYCMU$h9hn? zZp-9yG>qpIUU8>6!WA|yD06Y47sX8Bkic??=01s6>E^Dy7*Whi@RGQ}B=QcN;E?X} zfwEclGNv4i#w5FPRG&zu#9Ds1^j#_s;b}6GDp`wC$fzO6d+zdK=ql8$@4tJ&3N5E7 z+8$eyA<oa&u}xe&nZ+ZI#tu;%n?sFFcd@GxJ4dQTaSA=Wsi^LyvT8`_a6Dg8IeH@= z5M5vJ6uVm^t8n$2`lh&Q^iz^L?3L5`rm-d1#^onh@E2F{I9;7s+o$m9hHWxY{n2NX zp$InSLMukq<mm&aVy(t9J;}B8s)sq6sL)8mbX4a#sLmgsz2*q$Ywu(dVmD}_c^)_S zwZq#!=#pb0gpquF{aZY(J!r{*oS^&%&Q&g4vH+cVtdpH6|E}t^1nzYtxA4UUsW)Vl zS5CJbxIf$+5VUyqe$Cv^n4RvxH^q1z&&S$0KEnaAFneDxU-|4Bp!35g{js*|U|nN- zT@l9ji>u1<zT$NaL6Pp?33W^6(K<X){sV3@AeG)oLPnbv8O@8U#w3<imv1k|15_UR ziRk8UFiyCw0Ci<45~S_uO2l5mKF$bu!Sk}j5*djgV>SLo=%YXKeHV%}2_&w~B$kaB zSKdtqQO58H<8H^$7#W<H4n{?jpyInG!L+qagGptrgASY9Y;Co%MM?9~dEF^+8{L?2 zk5kbYRrt<k-)}Uf_d15g$S71sPDYT^yHSwSGpmI12lC5=zc`l0$QmZBPMHmY%rgET zGWeh3aPl!RUKJ{Xy2J3XAx?XgYB$RWnvHFUL(kXuRh8cga;i`5C#^Vs<MdAw{X|xS zAggBsDb-^mjQd<}HAe5_G({|<vW7wCB;F|q0?T5G6w7>Sj44tUQI+`E5T}2(>az|( zKln}h)PCEF<2O!!ve8$VO*gBOqM1jHF)x~KYW@o!8{%~NsvlF^1}Sc$h2!^rSCSf| zmkX2;Df?R^j0YS;V`N+;jP_XiG3#pGTLrLk%PK)55{$#~X~SQghQ^3o_$xGqMl>FD z8XBWUg{Hi5X3+SYhFdeMlO+vCtIvM=Bi|1>rpCyu6lSNP*}>4Vra@uvCPCBhvVzPv zn+e0RS!0yb&c*h1Y@(ipjty~su24S)Vs*Kf!?b9Ods$OO&6oG0d!6Veq=m?03sFiJ zqxfaQ!!FkvW3F#fR`2YfckiqqcT%GucPs|qdo~vKGE2qpBaW>xvR4UP+LupoL?BoO zw<?ag&=`+9We{bDm=KNCzFW1q8NupiARhV;J*X}<yGCk=ZudD4XpUQD2dyUIgSM*` za^9+Ep5%D3c+;;(U5+)zJU#k9*;^v)#~fQ@WIwI!$Z^FEmkp0QhQ`R?n(sJvxmPDO zbbIwcOTq6Gj-@fOUJ#b-7vzn>GPqT7+%FpAeo+QdbMUbtPMh^G8Fb=|px>lTT|P)* zL!9=e|D!f_|73;n8>juYXeSzH1dVY9ZQQfrRubf@hY<w6^;&xf8e>_#uPKV0K`nz@ z6~~g)7)w$aL=D2nhB)nyLv8HaC}U6B%Al@29;hFuz0H)Q=Fp~uM}ne#52{N|_NZ)# z)BTUrCCZk?o^-V=sCk<e#c!PM_o6F%r!0Q&@Zv!Cj>edSpCcv6|HBmVKgDtHXpDPD z8BF*7_}CDqoj|5g&$;J&>)x@9J!vb0s7Y2Bzj4|PRU2EQDPbup+V`Nk)SQWr4RN|n zoi0()y%VRaWkJowRusQ+x-CVw{<-Cr2#arb(Y>QF=AgZ@a(P~9807N&V$LgN5hmY_ zp-hdDxqqy`Xy2UAZz@Y;WOY$iq;>5Z@$;NxXpD@mv3^EGSkF6_#>nciSJvMgOJij9 zO-tRph@ZbZhQ`PkC=BhrYb$OU+^RU%ZjG^aD}$)*_}CDqJy^93#OlIm)O-)BOHEu{ zxe%v2JS~??9X<%ET`o07FDED?FC)nNBs<9K*+i0_A7Rxvmd40BS<`RMi<#z3WLYc~ z#j;d1#-5w9h?;?q4RQKssJ?;Zn_n1>8q=UW`chqL+LA=nZ1*`6L^qM046+AhY;RCX z94@c*N4{6P+-i)T&ehZ~w__WjJ)$jSF$IccZZ*c-DvR1{@v$LJe}?L}LO<veMByW- z=fhW44fcT52lYR<4)7c2V~+Y@dpapcQe+v-jWYb4D1)fpky;n0Jx{fPjHU!eqw9N6 zU26VwFS?6GHzDT$g)W4q4Qt$<(ipugR|dx*1}Tnv!iKeup)oS}tgSiElrhEV8Oyg` zJt>amqA~6VWe_#WAo&xgeU)mnulAd?se8s=w671-jVs|OgSm=Jw=$@^U@zLYm~?9n zZAw@=s_T1DU20yx7u`EWSH^qJQE1Bu;{~^OG)6D?{!hj_$IuuV4=STxkKOhi=x)7Z zX^gDLg%$0wTL!l(j<rBztOd#-Dq1Jww4YV&NRR#3X;b%Vd~Ar*t})t*vAQstl=`XH zG*j~qE9#K-IHD_~KUX){N^n<xnXti?pvLIsRZWQ;t1PLI!L5p;U1KakWl%TTPl(fg zL$wcX5*++pR<Qq@xMp07t7P<4b0#$lGRHQR)L9jd2dGNEi*-g!Rfyue2OHx2ZBc)m zb_-tt`~>h5O)1l_Otu3WV|%PVsQ=?$e0*qpXgX}^!f4d|Qq!`cW&&kzLtNTF6<s;T z1}RSWhQ?oXdro8YQmZN9NFrJ(doH&u{wkJv))@1wEN(p&9~<KIzcD$*4_iUgSNL`M z)Lv@E@f)YV!{{r_>cVKy%%k$SP18-y75LZ?r@KpZ6Z<5CeJ*Lcy>+Q#53>~fzT`?% zWAv2Fl=BJeD$eEmy_p%bT$>d%K@U6|BRd(rbA@kJSXY&s?_!-1Qx&3q!N-O;e~r|i zfmmJUK1`Fwn0wWwX0#_6r<*IfX8c$3-og0b&&w|78e`5|Yf5;%fuob-CAKbECTo!5 zS%WmjqehuTjl{=>I3N3%+#-MQ5x@t7)n^Ws<$F?nYEK~CggE_9{~!9){)-jIZ=C+Y zTB>^({o)!{HoW3WSYs^VBa~g<G$=>iIv;iG+_J3ToJmcB@x2=d+2^1~J6id@5>^N8 ztW(k$m3pZXuhqurcyZg15WMCX8YAOqEg81&WjTVi3~p5%%U@$Ge`OHW6CWGmw2w8~ zXnj6Gw4T1Ns(jWT)u%RF2^-?{hp2wLoS@xz88{ZvhsUuP#Q0)uR0STH8p}saebEo6 zirEn7>p1llpp4+l`GC)WJ`rrW{cm6N!^u-N#Q8c=d?jM8@RwN{eqVQcQ)5iUsmkR3 zH+Of2L>L<#Lt|u&S4R7spgqRt+oR64AKN%+-y8qWZoQS{=-AaJr=T$^OjHH-%y15{ zBjnLKzuB=gM%FZC?cs>Ih>lHo!?86+_AF(`lu(JK;rC6))EJrN%FNCPvU_Hf;yy-q z61c^Nw;W4j+%{iWojPFR+b21wW!UQomc^Q^SRNl5V@*~TQOohMAx?j(>KlmFWosX% zL1Xl#y41YOF!&Rvdzt7aavHe(qQ|(>{^4?}G5Y0<A3Hv$qa&8Vt%_qBG{*cYgQz3$ zu^~?T8ZVbtm$?l6haOayn%%6ZL;9Q>HJ359;iU-kZI@e(F+aB{vrSIWW^A*d4en00 z8Pj5W-qvQ-O-dV=klY7jp*FnZ6f{PKKdVC1te`25nWjA(ZEaYZRYC@D@Y}G(F*Qc! zeZrJ$6VrlN2Dd7XC9N@*v@(eL3LhKdv>#S&1F^a+wa|a)L3OFwBGNL&={~8s<#jl6 z#IT?K$oIQ0ml|U}p4XHBo>8Vy%ivbUF_#)+E|o#lIDBk~(_RynVDAQ!63f_=wlau% z#|q;&PWweyg3*+)1QqRjP+e+9&(LwYuRC2Pz?Q|HbhRv~IXkjv;&k5<-9*dmpyi~- zLCdi@LCc=G+na9HJB|f(X2N@JFKLW9c~4WtHhgV35>{Xs+&_xt{?QoQH)RzdwgMj; z;`Bc<xrS@#GZe_TwxP<X=S3LQU2l;5iPQevXe+Ehe`H3Aq9uQlXYn9tYQATX{E5^3 zN{|U2*<%`Qm%HAj+7BBVVgA#VrpD;)znUT$tH5<^@1}ycET%%SEKQBEG?hivXnbsl z)8DE3?6bX@8$=oOt_<IcGN>DEIpVbIR2#^sF6*bFeGjTj&74U6jML4`lJg3X4Af@W zldhHpHTT_%Ze!6+G;0tvo1Ifa&1U>E;eEGvG{)37*Oau*3R<JblQ*^r_E2NNTPF95 z;<;Zm#$KH=iRy=s4RJo&st@iV^hTo$ra&3oLmHz$Wl;Atd~Ar*-cPkbXp5d`(>F1j zVr@f7k!9{F{mLYY%dy%J=i@;2!LcpqM^m+@^s6>?YxbgjsL|F^v}tBd(3JQdRF|4~ z4%LOYG#}}7qvgFPT`g~FzPlIQqns|?+d8r*U9BV3d~Ywh{Y5uAqGQMT=;s4hb2Y|N zDO3jA74#TvPrDc4CVc2v8Y63%re9j4@Y>z7SPK=)TB9-6dSwx{0v{XV^hbH+V|7_R zVHz|>U#d&ZRaVp?ea=amTfL{VwLyu(yF^%9U2ZkT+>X=K$ap3H$NfwB)-#Rbm=29G z&&nXG&>;B}r+v0+^Bl|TO<d2)l|XOb4@*zk?Ocpko$7}^Zo$WfI6sq3iQ<RXn($-q z8`-=t-OBX6sSoP!whkPUrK=pKce?nHcC%+rcY>*8!$+=UHAcn-nkpG7Kor3;xK(j1 zS&cD;${=baJ~qT@U!>Xr++yT|;n!(XcZJ~fD^7c%(N=`jWoandPras@nw3hB?>OBG z(Uq%o9F4h{&4ByxC4?U@9R2#2D@l#fTcxHbQj(Uzt%_qwYK$eR45BvTV?&(w6<%(w zE^{0D4?U<ZHKXV6INj?sw~aD_Mq@I!CQVQ10Gky2e(Z9pG3Mo_FsHaWVz3NuRUC7w zG3HbmL>-Ke4RPA5RC}N7U>_VMEir1=WG&9+=>107+~3OP(Wo&VjmoBvTN3y(A<oa; zrbJPOJR0FAs_&;>`Shv!)IO$xRk!}RHx$WIc);i@irNf5M$z=8<wMPL_M-c!=t})8 zOJdv>eGzlRcT^<DpFl-td}xd*dRm#0QKa!qk_n$WhQ`R?Lu{B&*D8MY-(8l9-_IOd zV`RUeY@VSaBS;rUSf4wV#>jeES#s5n<8Q1Sf2AZH8ex9nm>MH<lQ5%q1ucVH700sH z7;B|6h}waV4RP9Ut2SFQ<b~naX;U}aX2)s2Z?r|$>9VFM+E2ZvnVQl2VsW}3i>~gy z9L(Kpgt?p8lVf!5=IiQCzPGv3)EGT(Q+A*1pifz2%vx^}G#it%J$q|b2`TUJ%Y-i- zTVrJZNAtwC(6kVi!L5qpzR(!=g))fh6RF2>+TVNSWp!Czq5sf>>QeKBz3Bd|Io9K& z1aiS){4$}d%caJck3>T^s#eDTLk9m-9CN8L=298d9g2?)aoP=4TY81szl*YbRpqmN zQWmwlL~<La-&FO1jOwx!747Fhb*XvSUUXYJT}ZhS+>@>;4`}i^J{#iF+g@~|{pv$3 z9KW@0?`Vvv-~WFy{_PkVBcn?iBl@JtSB{}EDWNpRosm?1?HC#(qlYqbWbC#(!AC_H z|8WeBk<nKfEpax)@r&`F5)umdWx{sH(im9-g(a<F8KMXU@~u5)#jzG?jCE5PL_LI$ z4RP9oRa^RXzeSt6>#Q(-<FtnxZG{yWH0zI|nKz9w^_pgC@_A7k;&e|C-Dv$e+QRYs zjVnQo(aXu25^2NeANQ5yTT4)JOoPT)g32K3VuR#Qoc0+emvGzrw`f!MioIx0(46LG zU?yq!bVC0K>syywjWM_9MskZNf@N^4;+R{FF}KPfYA!xD#A(kkxmAqSWxhlIp$FBa zW`z}XNS`xDa~kQ<oEu^M*X2@U%*Q-U3HPbFBC!l^RUC7vG3HVkL`Bb-aoUSj8%PGL z%M^$HLl3G;&5sE;Ax?L>=qC2f2==|Y-PSgxtw$4ljHTfBJC{?9F)t}i%|SWALEmKt z`@WeKw7_^$W7LR@-i?H771}uk_MlZEA2C%R>X=B|9OvsQFXvX5IS<pLF_x{-g(hFz zWJ8?p^_uhcSwZ_x8sQFRcF?|O>+NJj?@@p6a<4Jw{uWJ9z0ncNVk#8NJ*+XFJ(We& z3Vdvc)4$WpvDIac!!&4&zEqc*H(F7L^f~uxjw5$sE{-sMa5>c&bNZmB<bbT;fHJ&> zc2W{OF2E2hlX+A;^QbZIb7c~BRAfKI`FPyRt<`19!*pnjxm8_i4&00GvzlA(rLyok z<~eBCu*2n8W6W_)SVn^sXGf>_-;a)=F*4R``Xep5WpJzFm~xG=yp%x{3e|-;?N?3N zz^!S?f1NgUE1k0S%`y$s{YF?mm^))f20KSsJ6&!y#{6uF<TgvNmcgxxV{SFZ+$w`8 zJ~D4Zoc4z%w~Dd48TdE!A9_$-YEHJI4(W3~)tt7>O1sBpeNf;hms^c7KedtE@_${x zhQItzam=m8m|JB~w+B8p#A$yMYENnuL>YV1Rt9w^SYiCeY430)8P&~jXy1eCQghZ` zbay#j0;$cgCtWQIYAzC-e#NCXi3DLRfcGa7ErZ4z8&%_u_-NusMwmalJ)|+_qLDB= z9hw~+`dwbI-zUw37L!^8*}dBf&$8JzDTi&7#&|wbHc?X}_w3{R<f<R;clZh5CxD;e zH~FEDm3#5iTKps$<Ehy}=Kf&`l83-Piw(cHlF%4P0S2`=3q!8y8oMiF%VI56ENiL8 zSSrdQY8gH@#OZfZ{U#X2#+X*-n@uD|mbE8+WfApXD~{hd{exAX{eI|2Q^edU!}p@v z)LkDr7sP2FVYJa=K|8=~rNE3F*z)m9MK#(%S<8p|(R)5|K6)7+AR$;?cr$7DbD_G_ z{Bkd8KU#F_Kk@Z|c+sz2t~O|lo{m*k<Xk@_!r1K?8Y5$fFgkJ8MQ?>#2Dd7X<*zZ8 zmokXD4<8%iw6Wq8>!yKNU6xJgKlGrw)O^T_I;77zQFQB<%_9+3oy)1ln3q$PmD?c5 z9n*L_!TJ2M0Y|8gZsG@jWQ-R^C(et;Y)kvpPrhNWR20in(HM^{W#uE*7atd5^e3u5 z$0f@$G485&iSj|QOkY`juzo6&sOTLc-OjSo81pbqeIS;PkJa@tie`RPmzsCu<3dc@ zXE|M>@(pxPx>_dG{HsCAPmFH4=q6fa;Q92{LH2e%A6y$@B^*m*%;kJdO|K?FuTS!V zu5UIE4qV$J*r%)|=D4(S=LM_6bAWR5U97WHA!?ys&LC!y%vtDfsh4}J>thtnQq|N^ z^Y?qvy-af-Iew#edK<W$Ym7Os(v<LSOIhIh>6S(Bie*jGSS!aOYCS$S#OYt-<<#mj zr(qg2Mqip5YDULS;&g8m-S%x7;H7vtt0I)*!yK)WW0#hT_+>)U<y~V$-X<D}Q?i0n zcsC%@pMA^H@SEY78YA=1%50bn8eWndtus6QCz3NAOJii+C#+5*a)J?`Gz<p6nH>yR zn~P%?Gj}HG%pF@kJVuqrx~8#wr$E$G_}CEV>tXf9>x=L3#0#L7!IUV2C9W~<U1bpU zNCICb#A!dN+CW5gxla}Cdr)0!zP%US=Z$U-dP)s({|o=3d;*kD@SDnqem>cYuQkRO zQXQl3myG6$^<MWNwSU@+{)<Lmi_z}aJ(ZE_QZtF#YeQVwzb?AbF~imtj$c$rG{*Fz zF@S@&lyOW>a7<Zl(0)wo?Jc)9-<Vt7w4}-C#@$K&j9(^T5`<CE7!}?Vh4vjA26=Zh z+Ssr<voxb5+1)-VPz(giCOqy=G+O*=<n%N~y^ln%Q}c|V`FA-%_9y5OBUl#8Ua_o| z8l%3lh+2S;4RQLPtG<C)U6x9i2942|>QeJM!{ASx?pH<^N=SF`o6=3~g^_(5r~hBk zPc%seP42*5E!j8WQ^HJDjw?-#fe`G}RLP1~S;3;U*}*(KZ*~EC1Lu#;LysFr5<;<j zW0o6!m7DKkoe@(NqDDkg8RxG~{RJpHv@G&`8+__BZYUM_WcYRd=!;LB+Ysk36X!hk z0s*a;7kD*!;eJ#uy=z{m%csC?h|_K?+R_v3nYBH`%>6mUQt;c@mAJ;}v$>{7Mr@H| z1k2!7#W6)1V~UhPR1rQl#A&xxZT9JKcU1a}WxfyUDU(Nq#(2I^AJjiG(l*8U*iUoK z(fHosT#{%zf+}cQ0gW+V2S#$OV>p(<t%_r=HO5pbgQ#e(<FpS|Z6Fz}E_Yt&KlGrw z)U?+GWX0(osX67<Ezj^~O{L+4o6ywdRAbD`Q4v-+#&xiz;J2A$X^gD?ng`Yjv$B|F zaI4~2J{n{BD1)do@UbCIyHK@x4E!c->Xut!{Kjby)7*B*2|A$N=z!7q4r3bz9Z+5! zdbZh0@)i6tA=l+xW6ayANO^^&9QB*$SQ;biBxSLtV<amV_Yv*tBKB-am(3khV`Prg z(qKuC)tYD-+^RU1w8mJ{${@;K!5|u|eYR?IGlJD+O$_~q9#of_!w5G)xBHyQMi+bV zH>H`n^Q|y`<Fu!T<$-=vl(DDsPzH6^?M3?nR~}JaKW|}qs4g{M-HYx;PM5%6SI*ST zkF;%ZWx=Z?j0r~WzeU@K7OpmFjOA0IjCyUvQB0NzEgef^WL2j58EE17ZRHpmBjbvQ zpRiSlj&ZhjERB(MowDR8adZDl=_-0uwsB02k$F?BzbaBqXzN%SBWqPG>jq1~Z#&1* z7+H7!s#LajOpTHGz+U}za4e0H^{BF%Wd+SJqrO>BnFS=JG8$WLILI+IM&{GPj6Mrx z8QiKkwjCPFa}1(R#m9y??Z2xw$9vXdEC#Jwl;x``pJ#AoQM&^g2OHw_Ur>EOqPjd5 z747Fhb*b5JFS;)qT__>l!EZ`8wF~y5zsaSWxntTH_LOejL)5%sFS>7wZvAn*GgV%` z4|X*`V=STfmDP$f2-D}FT^eB@;@BD^`{M|^F=ntq0r#%$47Ozv_MwigF|xNQJJLEu z=Q|$e7#btvKWU7!BR;x1hQ`SFUKuSif)-adD{VTuNp}+T&W2KX9imr>8YAmxVRa%4 z*WDRw@h^g9vF<81&&61Gl||GE_}CDqpFqVzFFw0LkUc3+bS;D4mEn6)22qz-VTWYh z3De$Cwb_Dyhi6o94veyVRb?^l%A)q5$T=l0?M+o5$f&NLhA;=JOU)5`(QWB;qb0Z} zT`do4p1v1dJYvnVMtT|SKHQV8?n7!`vlrd{MK{s0Nzf4^qaAT4tK-<_LC4;CLB~fr zY{xv1YWh1gqO!=<G>vgzcTtu9(cgTUGA1l`3L2wAS5=4{MbX~I635UO89kJN+hncF z@In8!HTt)$dp6%nH{bEggr$zHF|zwATh77$I(XA94ZjtRsWCDKDzjeSBHB|}=2#jd zYp}A=Rn8mKWV=2yfw{F2U&|d!V`L2%R;Q+TQfn>l<c*~*Wbr6aEOj)-qd-}-9gdF; zar!5yehbXn!QG6exGLotF3R+kRfAWi%B234)&YLwe4MO4ur;d7nyYB$Nn^~9>QeJo zd~Ar*J;Ugt*ibeM)MxM&mCJ2fF4T?I#yIT>F3r@lx_e5q>QeI=!cB<NJy&!STt8q8 z)(<eF%sN)4v`bwr&=~VFLsOH<t58G{EQ4DW$FkEHQ>zT3I^bhNoc5eh8>JX!>`7Z0 z)IHD&<2O!wo@(Ec72Ja77@L}V#Ze~Hs!Y~fjj?tqllpTaEl-?}#p)wKvB5`Fdr#?C zZR%dV7wzSq_OCA+>elW>J7u(yMFhJ)S;I7!e(H69QnLv%YC~LkTqU{*-uvkpK55g@ zQt*43t6>_Wr|UH}tYN+RKW2Ezw;oH1V-3?7_nI<@>S~buiPOGCwdG8%?Msy9t16#$ zL0QzELtzu*^zU>f8P#P;Dw_Gx7=5WOHJ9RJL!9otPM0WK9(&T&@}TDLttfuubRQJm z=o(7<L>QHB?`Vvve_T_-62wRjSH5MiEapnF+%Fnq2`Y=I+wrj>PXAexQ{)Z$!Ee&P z9m0=Vas0;V*JzH>g=vqKt|E6UN}H549!>J*$kFn9R{|Pi39OHnS$8sy;Fk$0$IuuV zuPUQi!=TwYxRTtMRUNjs{<AWdJGREienU${THIXmvfKFLR>iU0HO6vR22osZ!G<{P zEur=&S@P75W$Z~?8AQ!NT5X8a{!q06iKc{gR?)r()ukp|5*y-lKQ+2gLYjj~ewp|s zp?uarEfZ?<2{aqx^lM$ZiLzzAr*x|>H8~s9hB)1CL^pA6UU2RwO@g!EY#N-pwplO+ z_smA&ie<>y)|gSyJZQRI@0op0hbB}(S+A!w#**8iYAc%tD{&9A5^KJULTL=e3JrL# z!S>9Jc&@QT=?_Ngz)Gj2F)Hm+CC=@-qv2M0BZAaw)E*U(?<*WrV`L`L)xmWD9-AJ8 z`&EaRVTK#}>kO93+NgN$1C8;Vs!XCTjHE8kM<ewCB!ksu;e_eX827yDQgi8EbaO?w zeLhBb68i@YHzMDr2UHCmraQdfH~|0IaHT5;jj<eBYZ?b-2ZO%bCphMleS@BpItJNg z`w7XiSpv#o322OW%al#jBly@5=Vu?UEUYfeB20_MSQe^F&5c&nA$?9Kql>&C{Q=S+ zFzv_#gZ1;j(@!6KW2g;r=|5P@9P{&AC5~iG-|Fu6nzAo}0!t?>`+HH|HeBV(USll# zBSdpgPy8*lRQz7;*cv0dm$G>_z!QJ%(W7mT(H73Q$35(7lA~jC*Ej`@QQ>GUJGRc| zipVm!RdL)K8e_du22t%I<rSxWtZD<vV0F3gLjR!$)um>1HRL$mA)4zfSzE1y+AaBI z!nH1!8e=|=)0FVq57)PuxV~kuEap$K%%8?sTa-mqcYJJ!(?2mRMO-&W8T76U--|M+ z`?eK!NS2Ut$UfDTVpP}1gdS9vnjhg~LtL82J6)n|S?ozy%YvGpTT%SR=}r{gxHa<@ zMwr*Ry`(Ybbeb}yZx-GGD2lND;8+?XYnJ9i`rA04B3K5uDvo8ZG45ey5cL;)Y>3k? zH)RC3*slz~PMf+v3SPhBwCDdHwW-@Sa^%HnFa1AiQ#bmwXq@(CMq6`c%OeB-D%vk~ zEo*8XvzIhiiEhG<K~3_<pysJN`Q|xV`x6?Y$7>?&MnP-zy<4O2ZAY+<jj(xSD_dh^ z->7+#R#5k|WpJzFScf#mI;0Gup1{Y3IPKfK^0K-tuh4(!L3OG5iWPN8pY!Kmo#VDp z&>U-wdAjd^=2&sevBsEVWib7Z;bTLb_QQM3ap*tvpt{t2$%^7PPWMU8v9|kcI=yvb zI9{Q-)EIO5{QqRIf1?bIk+DV@zoHiAJGREie(_hcIUb|FHAeR9%I3VUo=tf@CwaUF zTWsJRA7yEbtha=vckJ}8gk^B6;<zU@#yzPFqQ1t*hB)o_RNFwTF6&|FKlGrw)cnDU zI;79}$mk+Fn8m|jwf}dTsoNpaj>M(;^Z%nZb@_T!8{)LT`afz@_nEzD|M&k;*3^tX zr4g6rouZq_%L?))wZtlGErPtwO-h-|=so-!UCq)M_d}hgi1(y$4<pLpR>iSqX^aSE zQ1=RaY>3m&1Tnk^V^hLf68aB4s4g{ESy6}dIgLeE&m!sPfmspuA6<?$#ymCGR7K7M zmcgxxV~#b(94mvUb@<p2r`^`evDIbjL;s-%)um?iTpy>qpXQi*X?8{lQ_!DZCLEr$ zEr!OJj{`L&964Xx5YMIH0vf@xm_Nlbe;VWYNm)eAz{iF-{X<p1b5771<J286mYn-$ zR?rx0{AJ)7p{N3{l~e)OY$leEm@3fEPx#mn=j%xI#k=Kv1_^$m`g_WY>Qj42<fx3( zKg#H9`PiIuuPK`4sWJLeU1~1hi*A3X3z{qYJ?U!MQ}fEb=oX5u-19Hv2(-c*Mp(DG zdap6&U|1|GdUm+ou{1{3C}B;UHYq5ZS30>zaKhNJCj=9xObN<nmrtfCm_B*-%xN>v z4bDA(Ug^{$CQX}I7L?AKQ#NPf>}jQCM@*SDv+RhO6J|^f=1f7XY{EI`PY%k;j+i)O zLg}2KboQ*$$+OF*O`aq2y?Z*@BPP#0ciPO!LASGmBWKT<Jux`4TQ|x~nlfwlbhXT$ zJZDz<?1_`RO@SroX8%1BYtVHoEG<2Ma?z}EcsnvEm^f=jX}4*Uz8#m5sH@|#QZQxm zgtBhkyQ8F+sHNMa*^?)hT{xM0iUpZWu-^Ki+oZ|ol%L!ABwA5az+CAA@L#vtlO~i+ zP%{oo>OhX?zh?9Ac~<TGW-VY4Owg@t^4zk{GiK7lEy)CXD@;d|vNek|hJPaWvGc)< zvNEwXWWCV-4s?*nXXvdzL1s{&#eQ%y!G1T>asTH(UmmhfFs!UJ7O$+6iC6H=v^H4B zml<1Mw#{pp#$s(sCfNTY>$PQn9~QDwurOq&u~>4+L?OOe;uqu}dPB&%2Ns4#X)LyO zdt%w0kdwy3sSvFA(s+Z85E`ekaDeQQWsj~V!V-QW2ujG1PjnA9r6uuud^4wOJ1%%$ za~j1o6U;(`2_9@bDIJq5m?QAbu<o19r>A4s>L(L?a}?9DC3EGC=@_~0N}Nv-gezZo z3&J3HwT}1Ul8HO<%`Kn3Q~}}o7>+t56MYQk;9UpbmyY4NCz*H>-^_ded!HPgj%h6z zuJcLEjk8}dH6dC)Z3M$rY?-fnZ`k%ix{h3RU_4dB-0w@_wtkv<>?ae4;G0{DCS^gc zKBm23mKw~W0bhQQj=@0)oqrijgWA_RrDOIHOr^nGwBYu)(lI=9CKCx{oX5_@*Y7q* zcQo&EeUo4hmnnVsu6Adn>u|I*nJB|IG0$&2ZEiY-C6i1HH<<Ds-{X)bI_fK5Fe41+ zrNf>coQ~-vn7#({NMacz>+2lg>HN}rYiT;>K*6vi8Tw6l;gobtXKYC(UdK1<#)*xw zY+#zNE`s4|W5gUh=SVb*_0w~ZV9v%jx12WYLNs#qF$W7~yuloN{-daL^)akD$prTr z!@w`botBO{6kC#sqXmIpMb6Prr(+Hi%xwnq+{#sVr(?PbW(&TViY3=PP?e53TrhmA zFzZi2;Zrg7hb=}j!M26r(8oJHldjVZTat3@(AO1nN1T_AIZ`mU;G3Aze|Lc}W6}E4 zT`-IB&Cu_YtskdjdSFX3aWTHhuI;f6=iT}`Jq5$P#&AQADgQ{v^uiXLsX=Al2j22I zPI~oqc!o?S*m^K@zu}kPrDJ&gl1!Y5Z?c=bd?6B8U#E{?O7P9F-<xeFrek<SBooX# z*%y>firE+a1hWF)O!H9#vxcVYu;wHavnhg5`ql9#relu5mSkdrAaI{>_l&x9On<@f z%?mk*^}6NCm^OTXU|PTzkDb+D{sF>t9Nnh_1@j)h*+01Z<tf*vV^FL}&t3e+=aeyD zU!9IQRxqq-^zik$C5_TC1%fHTH!+>Q_|sSEm_orU!8gML^Shmujv0h4+9x5V`<)%i z(=meu!xCV)bnWv?(=kQZl1x<c8=o$<g<qs&h6si=pJDCAZAPYJu$!U7BZy)8jnkH= zW6*5^W|1Ip2jH5VnB%KhFb5b+QS-Y{ZCO&${e|WjI&2vjdN%#zU(+#c;ggBUg20^1 z+Xla%jyX;+Y&{ruSATYTItE#VP5}W3lWzPgc5?mnjKY>=g5TUyv9SGq>6qgM^D+t< zl_DrUbSrjFeVr2ob1A;L<;geKtWL*_77Pv;3F}`x6Q{)bI^3E}u*Nbx+jmXO`C<&V zAkCyQwqwYebR9HX!2AW@S@^s>xidN!^?i*M3?5mRxp)s{wnV3?KIUY>aBZ$^#QxRw z9yB)fF{d~kZh5x$tAD0rP8H0@_$KC0n=>v-$KZ5@G%v$9L&ga^pG(J#!<MjL*K6Z~ zUFjH91z>jb8=vm~z7i+l`e{Zt1(-YV%`LCBdE&!#45}|Mtg*x#|JXj*f%SF93x=~k z8Xz|3t+Vb)$Dj#-&TVK^a}jGi>*km?>TJPG#5cp>wc9qQ>y%(iGVut%@%b_Lv6%WZ zK`<)`K=|dGKgFEi&%u_YJiE`_)Q%rLKiwBol1x0nZ+v=B+!50zOcD(11$CNDJpdVH zEPA~2D8}^#4xFZl?LY9{zolcQ2nH2G&O6N)+;mks=3K!%gl~oeZtd`VI%X=iBoj&O z2&Q@NzzZHr$4nDUbA0bP@917Y=Su*1ZaQ&cm!H#hrV9q0W(lv~Kj!^(%=v=ZWH4O@ z&%mKrzkFs0292QP{k7c-;IckureFpdonuZtWmY-{CZrh$u(1C;>*SbyTIyjYKlI)+ z={gq(hEMM{Myzr>=k3)`&uqbP-aYsI;ScwmmyVeun9uM{cAv*~wMfUH`XbF}m?R8- z@~9WnF*r2>)5>7>%iHyNI_5&b;Ghy;M_+&Y@6$1?UCG2@22*v{sF-$au3++*V1z3N zt?QMpgRDY_>vFSvo*r}K73r9Z1#>IE@oDq?1-GSRuzR4hKfW1?rp~}AsD3#wz?Ni! zEgrW#@bnT?|N5APg2{oI?R@?_4QkRciv+_Xn(P+ez6;6vI*SD}4rUyx!P-fO+?|eD zBA7qno9q`poP`FmzRps?big;mS=SETnvS^yTat;Ppwd^ct4B=RQXv>L7UE&X3oQ>x z*I6bQmJ&m^f8Tp(ItJ44MI=+YKIjtD_FgI&I1o&KHpOZAx=b*r#1g(bZ~Mx0%nHHe z(-FdsQ~r8%I;Ij^l8GUL!20f=UG%$j45}|MN8y`N1!G2_$Qg^at0}=)oxAVIM5^m! zE*H!`_-6R-<?h4NF;&>2V^+jGu<H4n(lN+t1d~7I(wO~)!vL7R6hU}%$oDu+)lbir z*pf{25CpD?PG$>IA9IypdK%1&$KQ?9Mt#iHg5k6F+%j|K+T+qO*9fM)(HXyJ&Ryx4 zYXy^GFfZr4^JzNfI>9u<H+^0H(K#{4&L0HB5+G*6sdc;4b=W$E{paI;z8$9pqNDrt z2Ep)78~51-w>KD^j=51W_+}_L{^I|nWB!OO$pqCHz8#Q2q1N|>-3$!(K0_*J|F6<9 zH)BgO!F(~aJnFu->6lxvCB!^5zotn#=2pSj^VieuZ~c2Z<~G5gf=W1L<!h_bF}Gt| zGQl$fL%UBN9G{K>&0v`0pYCq{UOMIu!QccSeYX7;-WsEGr(lp_DY?Twe>JAA;;=M% zPa@W_Tcd92zWyv2Y0VI;ocBRqItEn}I;arR2S~J@gX&g)f1x=BW}d-}xnWvN`+SdJ zSVLH+|FG{5#pyct3dXiA=N|OC5$Tw}2!?YOsZ&0GAd0+xdhQbp=aOb3R`=2+>(ep! z3x@M`B|XQlY@d#KKroz%+X%6tJ-Z?k^?m(SFg;=Bmb1TmWK25dLBXIyBjM!5Kh~yW zaQZ|UHo>0c{_3~kUt7~L4+~~Gz8Sg>DBhfoc?4U+I=?Bw6@Tid`BA~}n_HfnGkSJ9 z2HjKW*g1)V`}BT49rL(g?6LFK%KI-$$2=jJ=kU!ib^c8;ZNih-l1$h&c&}`H>+|V4 zPYH%Kmf?-(C*h=5KVMH{i;ksmOWBn-yqJ#RUPvZh#W%y;s`VeGW1hv9Wa2w~Qz!Aj zO&_FVn4@F@2d9Lr*~Lg;{q!Ikz;Mqp9P;nK#q9ULVM{W>l#_k<@dKBp>!3*j=0bck zG`QuKPU)CxY)K}5K>fjAu<PZ^x29ui1hWj^^p!nv6S}U9Mcet+g29fIE$bKl7*jXa z2qp*L4BfWx7jwQ?i!EVa;>PiJ#_abO1j7<wDw>>pGn$9`=~*Y3mH1}9{<!48OVTko zyy5Fmd^6miKNp>p`Z^o1C7D2{S#;i>@$HUu45|w-tMJY6{2|MCrDI;gmSo}>$kW5} zgMWHE9rLnac%EeV*WDX#Nyof`Ey={^g21XLEtm92$FP=$b?mt_4o9b{e!gB4%rv8O zZ?^{MIMm0yE*M*XKDzF0G!peO8wG<MAmOMb9dV+rkKtJ$nfMyt+>$@@pL5eOn+3x= z@5H?PX5W}&@D0JV#y2rn6h87ry3U(|$;UUtsyp{XWg$9RSKq?_$pqVPhLay^|4lmP zAJ~#ia6Wn#V$I*bzbYMrT?oule&ciEd7pMm$Gjt$Bk;}e@IPCflaASfEy)C*L}Hr$ zblSm3rDNU|%r(F;J(JG+<ivCgx&_eT6Vpsj*Ylfyn~wRXU^okkIuHJ`{P1+l`+`}8 zZyr0TUxpl=jzQA~Uz}}2Uv2N>qAU0(m@#?Aj9Gf~AOGb;VNTiX*%POtIgns1GbfhL zi&!q0Gi!F4`CnP*&zgDec{55Q7)B4E3xsi^%vd*LIn!ARjpZz7Io?=WI?H%tY2_?4 zjit<4mKaM1XQ?ulMb2`wv0Usd_Z!P%XL;UOE^(HP#&W!~d|)i2oP|$ZGAwhJUyS7< zXW?0&;c#c!$5{G0OLt@G>MVndrH8YOGnNI;GTm5~ILpPxa;UTLIUI&VoQ2PEFdXJA zj~YvNXIX13M>@+tjHQpW@C`Q%9i4@}5r+Mpg)49{baIx##&UqOj5n5iXSv8&PH~o{ z#&Vjoq>QD#vs`B^^POdtv9xuT`;Fy5XL-t4?sk?}jAe+kd}u6r&hnM99N{cK8_R{x zg5|FzlsXGuogrbCvm9<L<<3%QEN3{&Xk*#eSxSs$sk6*BmVVB%(pbhi%PM0z$ypvT zmY&YC+E^-_WwWu2ca{%~Wj|-BHI`gw`NddjoTX8w=6$WRv^AD>&T^2kyx=T-jAf0p z3^JAt&NA9qRy)fX#<Jd7&NG$*XIW@0zjKxwjOAEox!+g@IZKVP40e{cjitY{d}}NN zoCVWVB@{Z#!Nzj5vm9eA1D$28vApUme5)oy8)xC0Eg4!n%Q9o><}5cG%ZtwPh_RgR zENhHqA7^>XSQa`9?;|tJbC#csWsI|AH&o1P&T_D^Jm)M0#`3hYoNg?Ccb3`4GTK@A z_8Eq`&T^}<bas{pjHQdSJZ~(2g(Vpb9eegk(`Ks9rGkNF@T@s%X=g2CCm75f)>2qD zVP;RFT8M?Qw~TUgXZhGz?sb-LjpZ(9NoJFa-h;EWGL}C(3s<*ixYJn%7|W^7a)Pm( z>?~Zfo8ca3S!OIxI?Er8<q5GM@1sr{q^uLIrFdTHEIGv&IoAD#^%N}H$USW=$2iMB zjHTGIJ~o!2&hj5)8SX5*jpaCJY1&BBGtybw8OsP~ImB3oIm^+;GQnAnH<oG6GTvCu zbCz;rImcO+8_Pszxz$+Cc9sW?<y>c3V=ObB<sD-wah5NPWrnltGL}is(%f8fO?H-p zjpcl2!GgXLrZ~%JW0~$O=NQXWXIW@0Z#v5r#`2c4+-@vyILo8PGRIlg8p~{F`M_8% zaF(6M5;#kCV@>nb&eFzMQqI!FSgvuFV~pi8XBlBEw>ir=W4YZ~rW(t&&T^r#T<0vy zjpYx{@&{vC<t+CY%L-@VQ#TBi&a%l^e(x+_7|X5B!a4p7mpcpRz%yLwEM1J{3THXS zSgM?bvyvIEa+Zn4veH@R8q4+0k}{T?o#l38xyf0cFqRvg<t1ae#aTWwmOnbn4r95& zS(-G}6dvU)9gXD#XX#-q%blgjSPpiUGmYgSXPIRz@4}+(PnEH}=PY*`%io;kabtPL zSvDBUv(ECau{`fAKN`!!&XU<o^Yys1>|-nsI?Lh4@{qF}Z7fZlrPx>=ahCDM@~E@S zH<m5VvfNnSah4m6rP^5@H<tUI<rQOjz*#;vmiwIL8)Ny4v+OdKe>h9~T+RF2&T_D^ zJmxHYjpY?*8DT8VoMoJ`yyPrXjpb!$xx`rh=`6Pz%lpo<!B{?UmJf}kH!ONN@`JJT za+Zd9nv2&RtG%&obe2PnWwWy!Yb=|b<y2z{Tehj51=rN!<uX_ec$Gb8vb$h5*VGf; z<+5Npk31gZ2pY!WCo70r&a{>uJvq3Aa27s3rlqy?z#x-^R@TxBLjn>ySc^5tdzM6} zM|Xp{*kY`!V6n4U<x8xkueBU+Ej{`m#xM#WRqieS^UBv+q!Wez`dUj*Yw7ANmPHS$ z(+@F*CHRP?mre6w*3!eWxJ58Mt>s8(u?5}HS*&*qizv&w3OZR!56e0r&5~~|y=-Zm zVl6#w3fo%?vn=6md`k*@TW5LJ(!+v|uohQ79N$wGA`(jR?OSG9OHZ5TGpwbr^|i0H z^tAhnTSUh?55`)HB?Tv0OD|hu70zOPjdvDH+s|5D8P-^ftA}f?#d%+6Ev_EEU@dMh zuXYxjivnwLb>nx|(!-|tSZnEJS%a+QXuH4qTT3rne+F1fPn$$0-Y>C%*5Z!AHrCR| z>a=ziL?m>>x9GT1ebHHLsh(~vu0C_*Sy?t03$3M(t%vih#nsF)*5XRzIcssX<!Nhi z_3-c3a+J-*Tx)ST?QAVQ?SAiKEw;ddOVcdv(kypai}T*XT5Lvxd#%NJzbno1Cugzy z^v~Af>c*+o;!=2Wn&lpA>1Ffvq_wy<^9g4$&9khfAbZEPha)V;wF$$l<!I}Eg0=Ls zSv}8M+}@dJEj{ePbFQ=4oR(ON^EJa+Y&Ir4i`}Q^TZ_$TFvVJ2&7AHm7Btma5Rvu! z->?=d95{<B`8gKT*XDG#we+-A^8#z>ZR_*Z*5c|$D$R16wYa?BZY{3;`Gd9CA`Dhp zOE0@GR#=N;Ra%Qpa`1a=>0$T#t<GYP-0Pjime|eCVtw6|X1UQ>EbA6$v8+E@i=?@r z0iFbaCCQ$H92ZyMKU%aNGKCL&7G~pP&qC$zJPW<INJMp5WIdu5Dd#gi3-{M$o~0)& ztD+WZdmEZGOA6gy4%2MQkiVJ>>M)#uk8fG-EOuWUoMt)5THHC8*sP%2-0<ne4`E3r z%#cKI;sM*g9w##lU=Eh#@jD0v6Lc#LSzBSnoqc}e^V8{f3=Ub>8kS%@Umpo8>g!DB z>u$pmjOXiL!m_^BZQ0x>WUV$V!Fay7r^9D+DnI@3r?Z@|e;SrxJYS!9zK*}-KMg|G zH-;q`&)27E`D*EWWj4n~1i^T|K7-XS!;rPFVF||b^|@nF_1alaz1Yh6>S<Vl@qB&Z zSlnNaPu_V^$U4rj1mpSICahNc#;4o0`~DEJCK{GtJYQc5%kHmVR__=YvKAVaU_4*7 z!fI!Ht(<c5@Q`)AVF||b^>5Et&C(4wgsg`ROE8|VuY_gm;hpzv`L2U2!<P+9FrKfk zJztv&zdAEyZ8a>xc)tE4ESs;droCAgvc5Ac!Fay5d%l+Seetl6mD2(n5d`D;`UX~= z-^=}#v+T)ZLsq_F3C8pFt+4F=Dm(0nZ$efd!xD_=>%YR{AwgdQ?|bIckTue<1mpQ) zYa7=2#k)6c3t8tFmS8+z-wVs`uT4k4kh{q3uepXL7|+)ap0CsHo^)2oy27vo<N4a* z`C{F;*!lXiVF||b^`qx&&0RUigskTcOE8|Vox)-n;#3i=EG?Y9*!g<Xumt1z`pNS( z?&FUC4q0CrmS8+zKd1S+#QDl>iH!(?@qGOPYq-BYs9ruiWaS%{U_4*DgvER@j6SA$ z_VLcwF@_}=&)05XLth(;4>=`djW#U7c)sd{mCtW{*50&YY{;5ySc36<vA{!Lf4K6* zdqUO%!xD_=D<Ldf=R4oA_&*`*8p9Hd=c|F|tL?kb{61v;#jph9`ARw#vK4fBbzGNG zt_*7oOE8|V498+=40!v7M?%&=3`;PcuS{XFooD#!9}kru?tFb|Sc36<WqH2xQy07) zvg`u{g7JJcbiSCvr&oQN6SCTxBnZaymF@ZZsbtu|kaeVC3C8o)NLY4%y)xmTnIUVK zVF||bmE-x^vEb)dLe|-aB^b|FW0x<M;bns-e%IHPAx^du1mpQ?;`tg-QCc3dt~D&d zc)psZ`ReL?J!Dvd@q9J&eD$3%rhUkI$*=_D`N|cRZF|`s_He#FHY~w-zVbX@r&V1! zFl04ot)(Ft&sTHDBBJk(jjt|ozVZ!AFrF{=*TZ9(eVdTg*RTZR`D!UFW`OnZjb|3@ z2w9^HOE8|VR-Ui<x0Q|xS(6P*FrKg0p0CAUKKN+JT4-2;@qD%Me9d0_`j(J&onZ;a z^VRl$_<F#w1mpQ?=lS}){n!DauNMqUFrKgWj>Y};+T@BAhq?XrzF`T*^VPwzSn``% zXWkUDb{LjmJYV~G`5N)b)(#;nuMPcU7C$kbuYEmVi`KUNK4f(@EWvob_Vaw5*)d~E z$Qo)`g7JKH^n9Ig$Dxfw)&#>6jOS~AVc9n7>TU%iL)HSr5{&07-}80Rn$j*I>w3cy zjOVM9=WAfym;*xABZegy&({H-uRA-OvN&YDYFL8td>!am+%r$+t$3xos~cY!mS8+z zogK^8jgXaSOQj$XjOVM1u<Ws%IscNgLRNdj5{&2TAkWvd1A6xlS-lKPFrKf2Jzw+o z{o6qyYm{LL#`ATE=j)Y!9&uR6I@hoS<M}#NShj8~-!So#khRpX1mpQS%=5MT)1$r) zSvMJ$U_4)4JzuOFA?tC&5{&2TaL?Ca16n>7vR*eV!Faxoa4ham_HB-Ibz_@h3C8o) z&9PWF@>eZ?EMz5lfrTI#&)1PIU)+B8(i6Vw=zQ&KSc36<b@zOocUy-;LRNuc3C8oq zaUwkv(HHZzzw<TGumt1z>gia_7soe3R?4sh<N4|(tmt{Ulk@e6VF||b)!Xwm>GbR? zLe@VFOE8|Vqa4fT>j39#r(p@k^VP?(n6EA$jDIR*?bDu0cutiV&sSf^;&zr{zVkJ} zumt1z>gQP2SI9ccumt1zI$BuKGCalkT5MQ?@q8WQ`Fi&E`#&18t}-mac)t1z%eGOs zcbl*?WZhv{g7JI}@O&Nl;EJIk>v6*pjOS~huxz_=YDsZU$l737g7JL)&hvG8?L$*S z)_aB}7|++S!itt*dsl{E8<t=^Uj?48qUBfJ7P9Qic?9G6Ds(K?jjvW04!qm>YTki1 ztRqW|=WCE-v2L7l&V@Te))9s!7|+*WVX<<PHRif&*N3cP!xD_=tH|?p^~?`X3R#m4 zOE8|VA;Plz>zNgu3PRQ;h9wx!*HF*b_|N~98M1COEWvobhB+3p6`c9r!q4+u89rxN zg7JJ6I~Gghv@LUg3R#;COE8|V;li?IcwFZ%4-8qK8<t=^Un4wUYgSZj2wA%gOE8|V z<Ak*@QpXg&d13R1Lso0vJVX$T=WC?rtL^Jgz8kU*H!Q(;zD5bl9?LT)pS3$=4K^&n zc)pJJe2sl>*G(bobi)#i=j#Mv*}Cy_m#q^+)&+(o7|+*e&)1pHOzIS}Rv4CGJYOdY z%O1;38|?bv2v;|5Gc3V)zQ%aI3YVSSH)K6-Sc36<o#grAnBIlX*Gq;a7|+*O&)247 zzxgp_eQa2Q@qC>uEW5wXJ^Q1RLe|fQB^b}wDW0#tCoX+HWVL2RLlBJT>r~Iz%eg(< zhO8qEOE8|V(>z}*$1S-lWDPeg!FayLdA{B~=jMAt)<nY+jOXig&)54Gw|OFDEi^2_ zc)rdMmaT{9Jo@(jA?td>5{&2TOwZRX7i4CHtcMLtFrKgR!m{<S$Kn-zOI_V~*{}rT z`8vz<wV_Y%Z$s9{h9wx!*V$>lW;tI!8J1u?UnOb2LRO3Yv~CE-^EJV-h~W6f8P3<C zh9wx!*Ex>GmhG|wZ~Ak{Dlja;c)lhI%hvgie(BgHWSwGIg7JJ!@_fDW!<OM8Yo=id z#`87V^EK-JS0{w5OASjfp06pMuRruEcspd>YFL8te4Q&STMwtd_{zQ^>j}dWjOS~r z=WF&amro5@uNjtLJYUm<W$R(vgJ<8juiIar8J1u?U*~zgf<^oODP-+7EWvobrVGpN zuU+&1`a{TS-BD|lU_4*vd%mvja^GhmtD9j7#`85pScgEAH7dxv<kpZi%&-LG`I_nZ zYW3;DXF^tqVF||bHA`4Lkmzgb$$$AeWX&@y!Faw(Jzp2~nKdkAU2Rx`@qAq%EL%7J zeeH4kg{=DwOE8|V*`BXkPC4eCkhRvZ1mpRdBP?4tc>e0=>c;zqB^b|Fndj?-)(@T< zvh3nCg7JKn3(NMSwjJN^gOJsEf9^u88bFNa>q5`hSx;^|J!B0xEWvobF7kY>-S*|^ zkTuh=1mpRd>-k#WXZG76>l(unjOS~fu<ZW2v+l>QL)KG<B^b}w#h$ON&p$UmWW8@# zg7JLKcPy6Hy4PR1YpmN}4f1IV0>OB`7C07b@2!iTm>RP7%O@uY1mpQyC@gz?ow=&f zDIu$GzK{aJc)k{SzHaWh`t*=>l3@wP^R-x5whU)q`_ZP5HOsIB<M~?R`FiiJXC{WM zlwk?R^R-l1w$At3mU+oZt_<%sEWvobF7bSQe8l{(LRPh53C8nPAuQW&EdHU_i6QG9 z!xD_=YnkWk*v<Rh5VF2CEWvobmJ7=sUsL;CIwE8>=@dv1jOXi8&)3+~4>>es9b{O7 z@qAtOKYSG!mS8+zD?DEZzIXA8(AVjPB^b|FrLcHTVc<Qf3b((?3`;PcuityVu3Nic zO~|_3umt1zN(n1pJmL7-{Moee&exrWB^b}w<({v@&OYjakoBZt3C8nPB`jMHD<(F3 zZa?SiCBqVo=WC_st7pGO7ly144NEYduPcOQ&&wH2zi$(={%cr*@qAtB`I<9&>fb|F zqXV>%1mpR-N?5iY=4`!cSjgJnumt1zy4v$qH0GPTL)KA-B^b}wHNxtQq_AaM_OJ5Z zA?rB95{&2TTF+O(^zZ)>vL+aoU_4*fdA@32U$ru1U1V5-@qGQk^L1x-VI*HG4NEYd zuj_@y_K<<&y)~|G{MoPs<N3P5^Tm7FA?q2#5{&2TMq$}{$a|w}ov+snOE8|VKYG3@ zUs*UIWPM^-g7JLaBrMhqhN1U8w`-mAwbQT!<N3PT^Yz8`4-XAlc?YVNU_4*9I2I8c zgMGpII>@jD<N3PPu~?(nZiKAg8J1u?U$+S>+D5H*zD_nQ!FaxI_k2~}aNS)YYpP)h z#`CpGSkbys;Cx+dSc36<-QoFq_V(J1A?rHB5{&2TPRC*y-reW)FMj8IJ!n{h@qGQs zv65gtzR#y`gsjbmB^b}wpM_=HjSCOH^Ma7|onZ;a^L3Z!t6<mL`-QA_Y#0y(<N3N< zShl}0?wd!>3t0mUOE8|Vdpuu1|1k90kX2$>g7JLaD=d3_{k(Jk>BqV<TxM8;@qGQo z^R;2$>Z?N5?S>^7&)0pzvhDm|*9>VMvYs_8!Fayz_k4YJThWS;^^Rc)#`E=nuxuH2 z{^9yVLe}?&B^b}wUp-&5|8mZGA*)3f-Cu(7d_CxV5yAFwkSoI@4NEYduZKKeb!SYe z4Ot@%OE8|VhlOR^sOv|qsp#)~O*JgRc)lL-e4Se`Vs^+%8J1u?UypkEYIpmEs|Pq= z4;YqUJYSD_zJ4k_B|l`nVOWCkd_68KTQ}<dA9e2mA4T>3{okb*C4iz}BS=(=(mN>W zY#<P%s-Phx8;FD?q)@CNpvD!!-YZ{wLBs~AfT)0o*g>%)Dk5J+RIuiM&bepi&bd3Y z$@6=j*Yo;6qY1P3yg%o2+uWJm?9Q&6-Px!Pvx*qu^}O&JSXowXRPFJt*{~5Kyk2nI zg)6`@cZ6;?s!Uc9BfMS|Uf&FTf0R+pWEC;OYc;8y<Ez!Pxt9-g`|u`K5hJ|T2(Ler zUir?bR<Mc~;kA}jP9NU$$<?PD)fQF}BfMS`UNsFq-)U5PSVfHRdRcf~G44=`QHAhr z@~{yjyj~GreU9u>X;de&iWuRwj#SREeAIud^NeaBtB4U^>xI{V6BZvbs`0EMMtE%y zUdOz>_X4Au#VTTi*Q>&7=0k&jFsdc2B1U*^B$abs9yIsiXU=rz#-pqvMtHp@y!O9( zcW0y8$|_=n*XyKm&R_rebn-l-`jJ({2(LGU*S(!ze%h!KI_Xg+MtE&<+l9y18}BbV zXjHveMU3#;EWCP5eB>CT8qX?Xgx3~QIddb_>CI(EHJ4Sy2(LGV*N2lvTy9i%vWght zwbk{)mVe&(o_CLN$LkeV5hJ|b5?&W>{pBa4dXH7a2(N9Va>lEqeb+*x+QTYhgxA}` z>!YvcUSm{$vWghtwVhPXy75S5>qm?#p|c)kVuaT_!t13ApGq>SBvuh4yxt|1GhTz5 zckgXf16f6k@On>pUDRgDS4K68Rm2Fd_l4J$9Uh!uRQaqTMtFT7yk@oi<RPP)%PL}o z*N3EPqB~0+d)s60wsGgi5>^o-ygm|My;@(>#;6`(6*0nV2dSLbZ3Z{qc&t%9&njYs z*G}Q}(Vgwq8P!{?B1U+9Oe$w?d|kDBp;3L!Dq@7!C&H`xk#BD@s>7@zMtJQK?OH$N zf~Zlo=%Txp7~%D)@ans#|2(5gVihsM>od`=<8Np>*{BAwiWuSbx$sJz-uoh>8qF$V zgx43Oa^`#_b>$gG1#f$#jTqterSMwYqGwB^x`b842(Pb%*PvOW8X46MtRhBueJ#93 zZ+tn&s2*VzF~V!N@cR7lXHOW_E36_$czq+hR^>Om#;87I6*0nV52>8v3;!0-%{{(; zWEC;O>s#T4f7dgrBf9FICq{UE=c<r+`pZ2xZE?N2vWght^}VaYv)(=9Qkxr97ORL6 zUVBO9tn+s)zYo4JprNjqDr6Ng!s`d&b>~GzyNzlwtB4U^`$*-?!}3?!JY!V<VHGjL z>qp^r#J{I2quR(SVuaUzSA~sv>Zi4Lp69mfYgQ2>y#DK|un&6`-?GxE{$dp|!s{ne zIcwAh-(LNvQ5|)<?o48Y*U!T1&XNZsMs)_Oh!I`~NR<dlv4)XF&onWrVXPuXc>N;0 z)}5Eu-l+0eMU3z|NGfNY|9$(8lZ@(ORuLn-eidHVEWW<2QQgccVuaUkq;ih0j_H%& z4I<7wT)`@0gxBxF3*ReZR9jd@jPN={DrdajymRR@M)ftTh!I|gg;$5r>G0MZr-uKq ziWuSbhwv)gI{9~_YKu3+fQ=a8^{4PUso({8la1rmn^nXJufIs;9A9UC_)v;bjbars z!s~D0_0v`Bx)@avtB4U^|F~Y*f<t3o|N2t5hKpE5jPUwbczyBCu|tgN9##<}ylP10 zjMr<GMYE0S1y&Iwyx=x9p3jW@(mLl0qk4~3#0W3^X2$v<rw@A%N?vSK`&mVd@Tw=g zmYv*uhEX-an_<94jPRmw)uB&VV|>AljZT^8_F+d>>2KcgelEL#@ah^FyVj`AVihsM z3%(>9+U4}&l&&3H8Pz$gB1W{Uk?`u&ZFOU#s$>;0!V5nGUq6%xZNfEbPuA(njA|LH zh!I}!mDrx~+I`!k%Z%y?RuLn-nv%*nf0f<Q_Xnfe%qn7pS2N-DRK4P-jp`d#5hJ{s zlggPJo0c}HXH=>?G!-^tgcsc#-~Al@h<7_KH>wj@rSG5b{mlN6t`}xqm2vvTW8Aqh zfK|i@uNI<RSAY7`(MC0jRm6yPC6LNld+~1^FS%a%tRhBuwG>{*e%tYFqguo&VuV*K zQsF$r4gX%b+V%PmtB4U^t%X<f|DIfIRBy0~7~yr4t3ogQ8^=1=>pNBvBfO4wRXBT( zy=~})M%B0nW>Sh6;njvzI5%*+FypDob6qd^_y}#p2(M#=*QN6Yerr_2SVfHRI+j$< zv3&ePFBKZqG*%HKyxIz{L4WrvGpcG<5hJ|X39lD^FFo0)9%mIX!s|HUwLA3dCq}i6 zRm2D{ynD1+d#}H-B-f~ZVihsM>jdF-bK|l(M%AjP?s;N_*NJYskl1o!yLn0OcsaKg zB1U+fB)sk%f8}zc8qQwC2(R|SYfMU`b*H#qQ&>fe@JbY3kIp>&p;66c6*0oAgX@K} z_v?;VUv5-OSw)QSI$3y4ZXNN|@DWxKBfL72swMcKSH@K<ijCI>RuLn-l7!d0w~qFx zK4BFx!s`@LIcwC!Kc2bwDYp*~vWghtb*k{f_x2doQN5tjun{A?P9v3bd^KD;cCS%6 zw=E+^cy$t92M_;xqEU@yFJgpOXHq%muf3`79Ai|KtRhBubrD{-RIS@=R5!DV7~$2G zRL*#{Z@v6KM)f?ah!I|=3$J>OK3i&3J6J`G@H#_y;d_>h>M*N_5nkPd*Zx(<jxnls zz4dqzBfPqk%9$JZ-26&+ZVX}-F~SS)Om99@ynEh_U5qM=Rm2Fdo-tl+U9X9(B1U-i zit#e4LRJwYyn4rYJ>Ys(vWght)kk>YeS3^*A*+ZHUVUS{TDxA?vx*qu)lYbpe)(#W zQ9ZyaVuV+J;WgvMjVC_pdOgD`VuaTK;nnW^GqxGk7FH1>yau`|oIM@4&kaB1dVRqv zVuaTqSA{DZ{*A+^4zr3F;We04&bl%GsvrL~s+N89>?KBc4G~@w^KSmusJgI<7~yrM z@H&0R&^1Pt&MIPr*IB}A+_9%^HmVC)MU3zoN-AgFz`t=A)m&B)BfOG@S9$YpRYr9K ztB4U^DWviq%l~o5>j_p7BfL_D*M#sDcNo>{tRhBurIG4r7#JMoyT=y&WmKQBiWuRQ zF1)raX!)#B9by$R!Ye~~^{l^Uol&*wtLFwW!YfmF?f$ng-Ke^<iWuQF%vE9DwM8jc zJ?Qpf2CIk>USU^-z0o!2;hjb`g;m4|uPo87!L!bI-KZ{N6*0nVxbW)Uw#9KqbqlMA z5ndxm<;=rP5B{8IRL`)A7~z#Iyn0vtQe#wavx*quHIh`$JjCZj6Wu=ifmOr^uTjG5 zfk(T2VpI+L=}{&|c;%4FnTM;79KFn_+Ovun;Wb)#o$yX}jZqC|6*0o=Y*IOWI4W&k zzEMqN6*0nVjPTkWDeZ1l6|5pgc#U;c*z#wJ_J1+n?Zc(4B1U+Pb5%GGpUXM&Xro%m zDq@7!cv9gTYf$yW{R1vCs`pq$jPRNuybA6p$Tq6qSVfHRnn)_A56^w@yeEySZGW(b zjTqr|j__)~{kOA>YA~ya5nkuIUYK>osRJ_~ar^KBRuLn-&J$j0-1nP|Y5}W=5nhu> z<y?z4Sl;Xpqgu`?VuaUZ;q`03x8@qvCRPz6yv}#qh2!<(E9)*Zs(q{?MtEHyyk2|0 z!33j%4`<LujPS}Om2)iPdthF0`_Q>}C^5ooitxhw+Zff^>_v?5$|IHYnt64*y#tM^ zgjK`{uc^Xoz|hkkG^!=6B1U-SlggQg&raL4$f%xR6*0oAKzP0N{@UM+YAdUV5nd5j zg`GTpR?+I`-9G$*Rm2FdLRW>O{Qbsr7Z_E8fizr-7~wUIRL*$e^?bVPbt0>X5nj`U z7ykXrsJgL=7~xe!DrfB-pY!O2Ms*geh!I{FO0SEb9AQ+WSw)QSnjyUYXn#>RqngSp zVuV+*@VY2zzzm~;w=dB~jPRQ2st~}>Ar5!@@Jdz@BfLsn6^_>v#X~MNs(V;PjPNQI z?Rs<7>VJ&tIaU!Pyvl^vDJLFiWK?gniWuQFi&V~>Prh=-YeofcQlpI+;Z-iYHZFXB zh*7CQT1AZTs&KuK*!bTE2M=@mupO(25nh$T3;WQhda;Ta;Z;Q{XC4m!_T+v>HJnw% z2(Q_~t6<gWF-BFuDq@7!9O3oGke$tp>M~XlBfRDcuTh_DyV0m_V-+#NYaXeb@w)ol z#`}!w8CDS^ye<-6Wj732V^nXkiWuQ_vGBsVVN~C;iWuQ_iSXK0cEWC>QiJu}AVzpy z>Utru^6@`=<hgU>I93rOye<=75A5i5nNjs;6*0o=a#AIN4<41re00QkqZ-R9VuaUx z;q~>TrHzeh7ORL6UJHa*VW;Is8r4!(5hJ{=5MEat*t6cKo@5m<!fPR^aBkps^QJ~` zUg-AWR#p)sycP+sQ?7aLa--VEDq@7!Vp6pQAMC@nJMT_4s%AsbAHEe88R2!M@al3& z|KE(NE31eRURMdPi~3G$Z&cZ=B1U*!Exh^-JEgTz&14lZ!mFB8&bkqOsbZW_UB@b7 zgx58~>#})`_ZZa*RuLn-qNF+jdJ6k+^%>cRjp`j%5hJ{=6<$M^w*A1U4zP+C;kATR z&bqN>%GYlgRqHcxw3H%7cwHyFM)#Py(WrW}iWuRw)Ky_t{5w&;I}gXPiWuRw%vE7; zoc~L>r%_e0iWuQ_J*k{)8@v{s=6c=CDq@7!4Z;gQPh?apSw)QSx{*}Q+*p?N^c16d zi&ex3ubYI|puyke8r5D_5hJ{ACY3W@kyE?uG^$2tVZXu=j*RfSMR=`z<AyJcsw1n2 z5ni{tD$I)GHO1}2WL6O)yl!(<I9{K;`~FQvbq=eD5ni{G${DYYEeD)5)AcH46*0o= z4&jCOBQmOMSw)QSx|3AS8r5ZK=Uztj2&;$@UUvzvyA}+*)u`TJ6*0o=Zc;hN@-;`U z?q^iru!<Prb&v3R{IWhD7*)NYI2!QIGh~F<y`*yHM%j##Zbp^JDq@7!eZp(n%)?`h z>MT|fBfRbxUU;7+qngYrVuaTN!mINmkFGMRi&#aB@LKMwu-%i-e)+A4J2!4)6*0o= zKduVrVe>U_K5kUcvx*qu^&qJ_fdW;Ry?*#iqk5lJ#0am4gx7(&M{hH#Usy$q@Oqe3 z&Uk${`tH_7)hZe6VIxL(JtDj=n7Z{Aqw0}NB1MewdX!Yo@rCPQvD=3^tRhBuJtn;H zeU(OaA*+ZHUXPQ?Ile+C{r0F)En*ch!s`j)wS34=EsW|uRuLn-o+Opihj<SYqk4%| z#0amagx86~qW?9jovb28c&%`~;Ehsh{KlUiD|GwtS5^@tyq*?b`1wksYMla!U?WC& zt#rLGUU||{p&71McUBQ2yq*zWbLaju%BZqfMU3!T<*LwY?0j{}bk}PttB4U^&$=o+ zQgCh<)nZl=BfOp?mGk=H=zmx4HmZkNMU3!zUU=QR?%s=yYAdUV5neBl$~i9&-B)<I zQT@a!VuaU=!mIMP%w(fFDiwQ3DPn}zYEn7#uwwk?SB<JatB4U^YlK&`;$IIM)g)FC zBfQp<%IU*D&q%K{s>@kLjPQC%cwO6ZSlFnRvx*qu^)jiPV|nuHf6g+hO{^kDc)cRL z^1j)SYE=7JMU3!TM=GZe@mMyhgf!jr#0anT!t3(wNwbZr537g~UK>c|tcUp8*Zc0A zKbKX+2(MR#SI*E$eT=G-Rm2Fdjikap#O>eaYZg_wUe~dT7~%Dr@cQ=jbs0wWFsq0W zUayl1uQx*Qvpx0PH_BbFb*v&rc)cOK&N+DP?MC$#tB4U^o7{HQ2e0H%=G#V9FCB_t zBSv^_7G5vi&|$Jsox&<&gx3~QIdkLLcDoXdD$FWkgx8zG>&w}RnMMUK@6kq#@Y*Wc z_3PB%9x$rwSVfHRdP{f}OnH8sQLSVZF~Vz`tHR2hKk}vlv)u9efK|i@ueV(l_B`H0 z(x?uxiWuRwom9@X&28s=yvwNCWl(1*VuaT_!mD13C)*j-nXDp4c)csU`h0iJXGWFB zDq@7!d%|n+@ed{&)nZl=BfQ=xm9x&jRPVMGM)fGGh!I{N2(Kx9TYhC!+gL@6@cPhI zVSnZ9d$!#T?sy$w6*0o=BUgpvh3|nes>YeR=ZO(sJ4Cxa%x*i}s7_!NF~V!7@M@L! z!z!cd%_?Gq*T<xCo~OK$`TgrgHJnw%2(M3s*M>vs&ly!7tB4U^yId8v{N<CY!cn&m z=dy|z;q|Gj!al^c*Ql1ViWuSb8L6DPG49S&E;FhJSw)QS`doPZHKBN*QN7G6VuaTh zq;l4%<sTlg#Hc=G6*0o=OX1Zhx$PLE+RrLtgx6QD3i}YBo8Rm9VZ&iqrW7&4>uXnq zeTetRHmVa?MU3#;?W!>A{F55~_deIF7psU7Uf;MX8m}3v4jNS!tB4U^dr0Ms*YTrQ z{9{zPtRhBueJi}a`)p5vQO#i$F~aLR;q`*LWVKN(Wfd{P>wDq#d)~Q^8r8$BB1U-a zC6#jxF#d&iU%kcc!*#48MtJ=oyk_5e{53|klU2kBuYIlx#|!7i{jS%~tRhBu{phN2 zynem+>2HjxSr{|H-;a?IUi(Rfa~`*Xcdp%Xwd>W9Rm2Fd{|YaB?qF2OtRhBu{X{Bf zZq!?yIL)Xgvx*qu^|SEW+iB4Oqq>My#0akgZo9BI@LJTUZetZO!s{2|b@|bI(~RnQ zRuLn-4vKa?wfA60qxyhV#0alnh1cr$H#}!lzp#oJ;q{yFO8jH|bfapSMT4k_5njIw zui-OV?KP@ytRhBu9U_&p9*!S)%MnJE%_?Gq*J0sxO!q+-7}bTWB1U-qA-v>xUCk<D zgx8<K>x8G9U2nV|VihsM>n~C@(VeC6JxkT@oPUi~#0amyg%`fIY*b&eiWuSbkE=pE zJeIF<z5ZeqF~aL#SB0||-@|EC#|_sNCq{VH#I)-k*J}W)h!I}+LYaAg?-QAuPco{B ztRhBug<KWZ2G1$Cx?WYRB1U-Cb5+=`2Nr&^+NhSXiWuQlpH$8owX|v59e252kFkmv z;nhHR;o56dn^;AR@M`F)oOa#mdhKQvF~X~ntAZWXeA!u>jVd$(Gr@O_A|t#SyDE%h zAKvbIoy00)gjW++g<k0^B7YmzAXX70yqc2A+lP0%UgKFsjPPnEys!_As*+X22(RX@ z%4ydfuGbB$B1U)};i_PV+GSKvvx*qubtI{rc0JH}#+|phUfWnjjPPn9yxur?>Ug92 zfmOr^uLM##=dX=J8cjB;M%ma_rHBz;Err+n_uZCnR7tENMtHR%mGipI?9&e~GOAQo z5hJ`>3$LuDje8l@6jl)<ypAH3v(674zWo!Ux{OuC2(P1s*UNi;z1*noVihsMtBq*a zq-d9BMzw}j#0alrgjY?M5x*MMPF4{kyp9#^>e6o3k4E)7tB4U^ZH3q5r+=$&R7a20 zqfCtOYUiquz;(W_I}dxYiWuQ_oU4KzRsC&sJ)_EI6*0o=cv9g!#0@`_mE(FvSVfHR zIzf1yf9<%NjcPuth!I{V3a@rIUHaN$*Xs^e5hJ`#5?*)@Nuzp>Rm2Fd_N4NjmrrxO zwzG;D;gu-7@bi^M^%JXz5ndf)yiRq!T8z>?ON{V3S$JLeRikT-sxzyI5ndf#73S@> z`SRaBalO)5MU3!Da#gUSRF_}#jjD)M#0albNad^>D<<V^Hmd7bMU3z|Rd}7=_=r5C zdX81Z2(Qyf<*bLV-5%O*RG+en7~$1Pc%Ay#-mykiKL?wt6fwf9vuIc0KgUlnsxGV| zMtF4*UXzCQPBE&pSw)QS>PjkSJ$y6yl^=|1E~|(UUZ)GMvpW7=->B|o6*0o=4B@qY z|D>Hp^#-em5nkPd*S>-g^NeagtB4U^-G$eW>z99GR7a22Jx`4A>LI+Ef4HWlQ4MAl zF~X}SsqpnE+#WflanUY!&QE0(F~X~t@Y+&7D%q&!vx*qu)tgk_=jN}tUU##K7~$1N zcwM_~^%kRgfmOr^ufC-6u2E}TuXk8QjPU9wyuKZ?{41l{$0}lkSASAD>-@6x)3>j6 zy&9gadzKjCH9&YheO!l&jjBDXh!I``N!3y(rF&zpbiD?!iWuQFNO<jkX~7bs8p$eR zgx6qKg?4zZe9raCV-+#NYly3Y9fi+RjOub$5hJ|LbXDlp;^2&iD_pO;SVfHRI?Gj| zSJ$3vFEOg;SVfHR8cHf>?HxLF=HEuOja9@5uVmr1=Z*~z7}a;IB1U+nkji<zcTUde z-;F9X2HOhX|Amb3N)=vLpS-r0Q60}JVuV*3sc>$<j%r$V%kf6lmsP|FuXN${Mbd{8 zj4Fp!#0akpQaR_8C%<`Xm{Aq6iWuRQDZH+`Yht!hEo2oj!fP0*oOW&6_2cVCbvLVs z5nf^8b=;$~o-(QzSVfHR%5qgWGVk4c)v%}CdH61?h!I}HT@~!83H|Ol%c#C(6*0nV z1gV@p?0(mr<BaN0RuLn-vW3_D3(h&xs9KK2S}R42@ER$+9^3VIxlx_UDq@7!DB;y< z%1755)eu$@BfN4*<;?jh$DKIGsK&607~wTqcx}I_@jj!P&MIPr*V&?7Pk&ys*QhRI z6*0nVjPUxq&(-G|)lIA-MtF@CUTwdeRb^C<v5FYsHBNY~Kk)ECqgu}@VuaUtQaN*e z&8J(gGOCYQMU3#8AiR<<Sv|n0eq<Ff!fT?d!nsrM#nVq6>CX9j<FE`q|Amb3I>%MP zj%wGjXOU60V-+#N>s(SfbH3)$?k5{ncUBQ2yv`F|UnloXF{)v#B1U*kB9*hw-?;VU z&x|UURm2Fd$--;#-b+Rp)f`q4BfQQhl`~!~9-DgDsFt#d7~yq+@JjwD<1M3lm{r6G zuUz5v+m^z2jA|XLh!I{>gxB3`ZXak=J6J`G@X8~Va~*}>pR&rG8$Yp%7~wTlcwKtN zyB&<G&3KwniWuRQPbz1;rrn!XX;gz)MU3z&5MGx(wP}Y@<*|ww;S~{H^UD*THL9yw zMU3z&6kd}fOB0Q11*?b=UejDJZ293&KM#HE_TfjYB1U*k7hWG;l=HPwea|XlgjW%% zobkff%y+t8f3S)e;dP<#x@u0vRHJG$L5~+P!fOVpj@Dr{zu^zRuXnwAu!<PrRV=*b zHu~xZqZ-F5VuaUB*9&%3@vDyyH>x?TB1U+X2(QGc)yk;uVihsMt5kSxf3$V7QEgxq zF~X}%c$K^~?^vVymQ}<EuUVvW){VEW{(QAjHJ_-vmKfnxF1%LGsc33cJy=DI@Twq{ zb9|js^ka%qjb{}x!mCnvU6?#!q)}bODq@6Jm1x&ZKR!R!sP1JIF~V!M@H(^L?=434 z8movAUUNv5#Pcxwo@YOL!kveESw)QSnk&3!G&%25qiS-FPDYIInn$Wc_Ih*u*}pvL zdY#HDVuaU4!t17gkNeQ5GFU~7@Vb~(I5%kftn{nLU9Wsr5hJ`V5nlMYQKOp2Dq@7! zrKEDM*)q?(pp8*o$0}lk*JZ+M;+&clM)e@8h!I|wyX}G<h4)Q0s+U+rjPRN-yppQg z_cp5cSw)QST0p9{;Dhhe+r8+{mmhQc@CQ~ABfPE<UcEA>zGqbbvWghtwUAVa-~&6V zee2BYjH=bSPy`z>!fTQ6%6;tT#YS~1tB4U^i%I3I8=pVXcZN|7W)(5Q>q_A@ZRO^B zjA}Hih!I{_ktz{t4?F7XdENdrstBuy5nfjduUCqvA8%9_v5FYsRqcA=cx_p?^M#Mx z@mk6%VuaT<!t1*Icb{xjt5`*h@QRYkIe+2n^E+Ixk61;F@VZub;rD<W)sL(qMtChD z70yH4N*^i>KkIsh&eNsD2(Rme*B5{8&NZrbtRhBuEp^)kJL;3Z8z&f54^|N)yp{>C zM{jsD#i+7aMU3#eo>a~}?A`L&Z;fgytB4U^Hwdo-tuHJ#s*71gjPSaVRL->x-ZSkj zw-0Y(6*0o=CgFwOv1?Q-SVfHRx|visUa+GYy>?ojQEg!rF~aK>;Wevx#J@(hhgHM~ zuUkol^ANp`UG?^5MirU_MX(VgylxX-p{xUKjp{^J5hJ{ACzUf^cVBtJFrymCDq@7! z9m4CbKQ5SNRO4AijPSZscqM(BKf<VHv5FYsb(ip}$v@>hqgui$VuaV-t{3(eerHe% zcWyk&Dq@7!J;DpW2i&OEvx*qub+4;JFT5AQo37VKtRhBu-RG)cM;-gtjwg+3KdXol zUiXvAnH#f?8gqtG)t`+1N)aQx9uQtz=X~G9sE%h9F~V!P@cJxmL6K4QW)(5Q>p#Nl z%CR}G7}W??5hJ`FjN_HhDq@7!L&B^0@vCnzUKg{97~%DB9IqQ$MU3!zM0nl))b=^X z>v2{QBfK6Zm2-Ukb?W@1jcOySh!I|o39oY=`DKAo?P3)%!s~IjT{sJ_P00MNkvk6$ zvWght^@Q+RdrkXQMs@u8m<e9BM@D!(DZJh*JSn-c>y^qXVuaUI!t33X{gaKVkX6J8 zuNAHr?5J_OCfs9G)vO{$cs(t=#?MZgZB$ROiWuRwl2p!ko%#5hJx29DtB4U^&j_ze zp8Di@qdLqgVuaT!QaRTf*oRHrK0NUP>Uc$r@OoBwVILY*DyxVQUeCE+utR-lRE4Y} zMtD6hygJPa^)aezSw)QSdVy5lJ~XOlSVfHRdQo^447~0xquR+TVuaUfQaRTE`1(du zw-5hi6*0nVjqs{?wf`QYYL}~fo*3b^HpZ)&>(!f8#0amKV!VuMEUSnSUN4i%nHzX4 zH+Q|tSw)QSdPR8Qv20W~vx*quwJyf%2-oWcRuLn-*2j1m)u*f?MtE&-RoKgCov`-j zPhBrHMfW^0!s}I61v_fs-;c~Qsw7qsBfK_}$~jjKfA6aOMm3C8#0am~gx7Pw-S@pw z6|;&M;q^MHoH_sDF*WOr>UvfYBfQ=aUW2#Ycbic?&njYs*Cx@fZ?72ls8Q`=6*0nV zv+!Cz^QAA1O64iqh!I{};&`3HDq@7!o5Jgol+?w>YdEWj5nfy4c$Kn>7~%Dn@VaP7 zy$s`Z6RU_3UfW3JKVGX@MU3!zTX=oZHLcosea<Rkgx7Z03p=^%eP8_cnLFp}Pt`q7 zjPQC#c;S1AjjAuJh!I}zlFFI$8&6xk->3>%MU3!zPk2rJ==w%Rbvvtw5nk`R?SdWk z+Y1*}8r55@B1U+9AiNeH`>aP*!zyBg*N3EX)<Zm3e(v^RuYBEy#0amCgx9gpY;9^( zXS0eJ;kCo{f*o~3r?Ra^Rmv)2gx5||9RUhdZFxE2TccXaDq@7!$E0%R;a}(6^|Vo~ zU==aK>l0ErUb9CnD>bU^tRhBu?IM+PuDtw<8=CfZ`|u}L5hJ`l6<&DXRHJHApnIMe z;q@7*oaf8WtZMUzQ6;j97~%D~@S1Yk_-;luh*iW0uP;cI#64efebd%PHI7xp2(K@N zS3zWgr(GqiB1U+9CEB(7`4`t2ud7)_jPUwec!f7SU1U@bu!<PrwVPDV+_-jIy<3gy zB~}q5yuJ}$UGDw*1EczgRm2FdJ;Dp`J!@1yvx*qu^{w!#ntS5YM%65$=LRvt>pNG4 z1m0`$J$D`^v5FYs^}VZt9ra|rXPz*sR8|oqy!N^($Ln3!E0<No2(KSp6?%>Bf8H%d zbvdhuQQgW5@+x`d-$$wjXaw6=jT)4~x8mpr>K;}hQ%|UVBvm8kuFX%l%BWss6*5w_ zpHvN5we^bIt}v<(ScQyK{g+fu4KL_e0)K~cYWNeYkddmNNY#|R{v15=piwm~)Wyh1 z)z74IR-0?u4LQ!JI<X2FsX9Qa=Ir%K|FbVNs!UcPBUQhUstv2Y`ncX_MpeWrWTfh# z@Y-+z{&m>tjoVm-j8y$fDyKKT$y#)*QLSYaGE()M@Jf5L-b+UH39FEis^3Y~nA`Qs zgkA|o^*5`Kk*Y(a!gT|;wGY=M8CAP!x)d4R)>J6@8495Qe!TPfFy+B=+-7z8+2fwW zd61Fre~_w?7O8@zn_yU+UY*V=WTfg(QnhB)rN`bo&!`r&3K^;Ti&QOG^~tAKUTRdU zScQyK{Y@%oj?Mmf|Eosz39FEis((o3wB);Y4t{S`|FQ}hsrr{xP7Tj|c$#-Crt69$ zqw@~s5-isxBSgvh@Tjmdx3auwT5eu>eq~-sZe`xo;)p8G%g>KgROC*p!rysiWyO)) zg3_v>P(@M6v=~)EUiqA&lH97oirmQDveNQOD=WuKB6DUJR`|!J7gm%NSJ}bYg?V<a z;-ZqOxw-jyWmX<t?pt#mDv4CWdRsgLyFoTucSPp6+)<G^xtV$S5ykr>BQs0O=eb2W zWsws1K}uz1UjFpl%p&Lw!1>|W%JN9wOe`1^DU6gyO7bJFBE7W4JQy1(j^tP7jxD-~ z<YOYUp#RO|v60H$wCQ=}E`SB2i{?g(siXoOvP<&{a)%YqE1T{<LJ2-VdR%#4Nkw64 zIoGD7AX0AVVE~MXl$XG0B99M&&!1rzQu^Fcc{8b&h>b3-sI15@FDk2ai@7amJ`=`; z{XGv+#}9L}pdxb}Pb`!rnMLK$4Os3lqat&y0;r7?jjfuhE1FeOSc*CvL~Io1nUGgr zlvh&e`ufEx(j$d=RmGKFE$ejSO3SIs9WBQyatfWAIuU#f#SCD+kyXX%MYDM?vxwRb z1-v(=w5p_l_tPRp#k`wYTv}Sr`x9WIl$Oi!%r2T*o(EHNLZrN+sI&yLrxX<Ajw~&x z((@6!+&mfs6M1&TQ!u)`v@B9yIS*$FirvSc!^dX!vJ)2K;o*5m^V#zlCtZ4EYSpyd zaB1lb6ksLBl~+Z^%`1!KW|T}Tf&&2eF*Y&})}p!CJC#Lc#q&HxStYZfYL0$P1ZQr< zoz~vRSRv;KqS`nQQu5)e5c4V{ItmB;%*f2#yyD{0d_4N`!7T9z4q6ek9v7BJB95@4 zvb><G%z5P5g+PAUJQ@m`jCgp$AqRD&rr>ePMQM<}GLkX3vOLcYVJqyiF_8*ADBiSV zBCz5X*l61HNdAn`r9~x`G+n&{3ONT#OmuX4q%5yI#v0~Sj74eLJa&MttcaA)E`npN zxCo9~n6opWYhZBGM&^|{EvJ3AUGB7mBe*hBUWltL4hc=%+-VTzl$Zv`m)bD4xRfRY z4YDZVwP$1mW>Y>j%UMc2MKIT3siw(+b)HvJIXzMVD{n4Nw4(gHVwe(I58-JzQWapB zi^HBfwWtyoH4&i6;v0dHa>}9p+0-F$FqtW=_jRju7nI}`Qy+serC@d*oH4A26)G3p zv8Qq?pstbJJdIInQ}A@0n_g5{h$>zx#+MXPck#n9rEun>tXz;CDVYX$ATxr|rNyvH z>QfOjndPN3VX=pD<n$tzJE}C77Az`~2XO9KtQ$=i&fuPaoDj4kzqGsr4vNz9qDTo; z3YRWZT2zr+SPUn8C@CnK-LKEodA)m~lXn`Y6kJ#ZQ_alrY@B(Sd@Rrdp0u=|RRYtA z`hp(nbr5sX!|^m(H3*ZDJBc1c#=K(gk({bZxP*XSj^vllEGw;`u5=3d`1U*$!|Ief z2Y~mnFG$BJ*3cnw5lu@irSpbUMqLYCC2EoeN2XWk_P@6<W9HP-;(`b*Q%*Lg?3{DG z<d_H?9kQ)hl~jE^cq*u;v{#B;jvV6I(3|jl7tUivI5}a6O-Xqb%>q*pDK9UjX*Y&1 zPKV*eDLS|X;1G`B0_&Xey^(ad(90<-goBYp`l2isFW)c+KjeYqN13?9n;^3K>d#Y{ zR?K71nz4}xo#vc}Gm7-Z4_yP|g_1`*1}bYkOrd$n;&J8kEF=Th$INoR^kOVyZc$}y z8JtM+V~WSX6=q&V#HL|voNE@&2_@slPRFZu(|#<|J!lnXm+C7<TbrHX1Byayp5=^1 zG1gQV<4vWOxsk^hjYl-5G_xpDTtK6OGjwcW30$7glOSj~T}{g(^9YVqePM|@I-zCf zl}xM3n+6x6>DX|$JQFUsVF`n)s}j9rj~)x>5m-tq(5*s0Jup!UO|2?~=L+%^;~XXC zY?KefX+Z^ewE%~bfu@xg733Bc;Wdsvp%uWhit^HVxp=xmG#^f8@ca%|Gq^~ACjfBr zagcntbcJYzTR<o0bWV_7UIgobDuk6bx2mKlzqBBd%L-jMTVH3x`5T|vz=7^W-PS6& z@WSU)x)*Zu>2QKN>Fb7E=qY#->FuYHdHHbigl9RUbH?H|X+>#OIh-EdVq)FmtO^Lo zN2#!im(Nqh_)LjTpkNT0IW<yH5GlwlhbKofbZjOVIhP`Na2;LloUx&H<@(y$Epj@9 zudab8b1tR}O0kRKV5Dc%6>vy_x-fU@yxgJ!>*=a~qCG7FXTzd=E9QMFt0zw(Jj={2 z!KJ`SJ~MAd1P0nE<|#-s7N4!<ror<HI-uQ|PEX>XdN41h!3>yFLKhQQVJazu2I7-N z_i;s}s-QHtTwgm_rDe|bLT>J`vEjUug5pTIK5^y3_~%!Z7r|4De7qQiGk)oeqKHbW zD!~iZB&aA})n(#!Us4&q0xF9nrk7wpT11Qp*KHg3lo`<b^xf1$l*Yh%&GS@SKIu<_ z313u_)B_u2MRY^`B3jcsP~#Ud6{G86t1mreI(bh_?kUxku}eJ_iD9V{o>I;B@y%<O zn#%H}I$egFE*GT+cCO+rS{54|pL?dk`lT=Oz1c;%6nI}xkrELxB05LV)u?9@cndw9 z=q=VgPQB<Y_H?7SSku&x-eRj7*jl?5y3Bxh>^raWm<EbcT?d*BqTDk{M7idB;n0h6 z&BvC@%D^S5=QSo-B`YR{)am*KC#muVq{M!qO6p>wM(oTbeA;J3qEz<+9nYd%_d;yB zr`LRV>NQcWd71*E+%q*qxv4x3isv;nQ-3?)X@VW{w89Q)l{;NxoqR){=GzIadE-r} zRdm$&t9(PUE6j_BvL`&{R!4XuRzG+mRyTMeTI2SDCt`JiCt~%1Ct`JhC!#fO4|pP0 z2bdR2tsd|Mj0DdmzAu~_aWE1;jr$sF{8R>uO&9Z$Y;3AnBruKh>TO^W7l=)fCST@_ zO<@Bj1-~9_Bu;@IY+5{=BF_wTiZn$N%qjBBIj6|j@k`Cd&M7d6{d$dO)r$>z{9}Wj zn#2aRk`}wzpjHM1O;tTFa+?-;3q95I7JDk@E!H%xv)*D&#}sS2FI}sd7u&fWF~yqh z=TFBJn<nB~$ImTH6TO87l`rcX+A7yIp^0ThbVL0jT0`UEtMQ9y4XsJO8o!9vP*?kE z{350U+&^2u+0Zj<Ww8$q-RXx@vBB|)iu3mk)48J5)3u`9)3Ku5)2*Uh^VF%L+|#9^ zT=UeSqTE!TF4tpgFN;0ZmjO@xWk4%v`pSS-_yn|~zx!mts*_JZD+UB9d;+G~c%b<H z$;k|0Frtm!lXtv4wLm(PdwPzSsTN3QqQfA#;=1!|flMdae|s~16BE()w7A8@w5xwi z>u5Rz==@_bmE^w$##GTM*G6>Yu#pqd)$@yJ4RyS)#xD}v5z@!o4Nk-~2Cvrj>*Vkn znrVwHHaH&B)-zvIWH34cEzVP>t4yoAr&M=~UFzwQ7?!%jQ>s~W7<y}9muj}BZKo>{ zQ_M|+SDWCaLjHp-_m(V^ApbE}l1`yS%lR+8l66ZZJj*TD_2oL4Vu|A)gJoVSVF;fw zd;SOv<LSVD5r2{QFURa;i3P!(j|-{SS};5kaT%S5j-*=h#Ao~)g)=LlD|ATP(-iXB zdvyW9fDZ5~^+N6$7#;Mls{T{Ff6sHwUq~;G@*gez<${Ql#QX_AP96^w(0OF%!91&i zw~uWsphImeXj0)T!X8uqX2O+tz;vKUK!ZH0n91PL#SFJc=O5F4F%#RP^N(qrKD&FS zmq+Ix^Y0Y=<8J)<;{k$3$%6!qkOv89cx+8#+V4dIy1|R+y2SK`7crgUzO}?me^caX zxGD5B)f9RfX9_h*%`t_Z2AD!ml}({0=_<?=YSJpSn&VxMV67&xF0-rYB~3lOEOnzN zgI!ZEOP63VtX-<>K-cLptX-;Ex(JA2?NZGS#4}F}YnN(PUoXVKF~z2P@se3TnbvQ% zD3pJ9@(;5d&-SrzOX6u45afC$1%&lr^b87Xb+4eXRtJVntMOWqR&jdYlsQnWa&1Se zr4`Xmei5yqi(OxhUqowYTKQ`HBBn7oVSQU;2RzNOL!S27A+4fg$qqUF4HMK3X%!u7 zc1WvyL#9#I+t$nw*#S?Z?2xBXc1Ww}d}fEV$~R=H=lq$?c@LebUrfYP!I+q*hA}a% zqjfPRrgi=?t)pocp!1Ju9Zj_Woqx=93OrSG-bHBo!&}HG9Q)IJ-$Tf%;J9A`@m@o} z3=;55Q2~n}zm3r^fj4YgtDmjv1JArs%``k9E~bNd&v{G+T3h1gphGf%&=Vvcq3c0M zVcZ<?2-6vOo^alrX}Um^`ob073t5u`igo?;6{iSzj!#d1S3zx-0Z(Vh09PsK-J{%) zz_2rvfq*vdkrW8%484K@r|Pw2=v`ZeIDoE0pV~6S0nEsbEh_O0C_OU4G<d(CnH%)T z1jprhmGsC2Q{dA$y*yfeYykdq3B9e?ScuXXnBVjpgFEHU=)%d36FCuQSYsp3c*aJY zfsBo44IO5_K7Nsy#_$`KV;bX>$2P`^#5Tr>#5Tr>#5Tr>#8k|E<8(~bOeD5)CKg*g z6Vp0cBDm*FOzZq(rjq)vf#zM?rjjucPbFhwo=V2VJe7=zc`6wb^HkFRedM0H1_0Wc zt`hiFTyUWelQ?fU=NxenorSI$;%AAAnC9?Mxo^I<>S7L%Si;knwPf)Qd{7=bQ`C|t zKEsWI>lL53?Q`D-1a(vBsY<XmFs#+R@p(|NIxrklZRc|ZF;#X0X86MM%HX3WX7cf4 zT_d_^5rntIX)_G5V5pP1#2ATB9T-1Z?6H*r&mk!TT0!$e20RC&3|LiiKlotP$&}lb zG7-C0CSq61MC^K*h}KZ=QH@PRYy2WwL+2D<jbFrcfb)R}^Fa^O2|h88nNL(#k_>&K zT1#t+PgHAzqOldmr`7a%Dtte8Y@KCTThkPAtR>(X5`Vy_;eHuJ+a;hg(8BC*q3aL_ z&>84CTf7W$0G)we!HSn54iGyK^kP7qk+9;i3GfP@KJ61biYBCMPHT@-a}(4(7ZB7+ zG4{4HAQ)R!e0|nuvgzVj+&xeEXgo2W8hWBWQ_~aGS}|!nQJ*R0iE6Dl<UCQW4T@^5 zm})WFplEDIc|ML6I|;l&pDKI9K6UnneJbq@YqhAgHym4S=ksE*b#^1#QcN&6rv3b5 zT1V@>Gv6(pe=N3=INA9VY_aw924kiAWdxte>jYvYn9%z<IDbn)=%$J(9FQeGqw|Of z8;~bHqw|Pq5RfN6qw~<80GuHV$P=H@dFamrwd9G<=sfx_2el-s1>#|cYgPLLj6B?a z5i?iDh>tj$8Df?D2w-w~J_6~Zv;b~0{=LObZXuq7FbL6E=y(f4be6b?&O#Rm@w3E5 z{5!?_=}-S&5rnP^9R=R12u8OkKBM!{)j}<K;xjrA9R;=IiO-nM(VttQ&*Pi^@D^%I zx@7Pc>sH4UYnqmySURRSrW*7~+n9Rj(%6c4X>U!uJe@SSDqcReJf<@A5#E@}=+ami zKj0e+Q)z6?$9iaQ&2_ov=@{Xfd->S%n9AViBH<InG1YO(V+778jAImTAV%W(2y%?d z8;fncHyS&Qyiu+74wW~mwL#I?PK?!hyV4ugT3TLs0K8G{8x+-A?^KV~21T`&mXbi< zplIv>xgQ6Q9Ul|&kyVzvpBVR1dZRI7@wxICv5fkN`9t77LMP%Y;*W{@%AA<LkUvW9 zuXKX`Qu@5Pzfgz#W%OZs`0%;E(vA9y`Gf2JS|{i$<xjW!DxH{~ect5=*9#{ad!%}! zTI)TYyiu(UifXO*c#72qMYYy@JjH5*qFU=co?^8@QPatIrAi;I)^`gqJ!}Vzgg&|H ztBHvik>TOh9Jt|tF^Y*85!Qj;663ukfl>O0edK)S0w1LlVUhcJe*DCK%)Jd*Ukjwi zrDswtn6v!Xg6V9%>Xxlm%$aYsnCiOqsm;`xfpyB(w{F?`)rRT1)r#r5^{-pDTCtev z;k~&<%(M_emclb7^Uevn0|v`{0)7&Giwr*vNBl$up0^(hA01$cbCZk;ypIMu$TE}L z=N=oTPJThl1BON4h{N(R<$B<HCOI`Q5$A}Bjc84uK#gBSYx)Li{32S@FHqwb(VG5& z8o!9uY2J7CIgQt4I(ZK_xtFv{HETN7%i5)yHQnZA?NZH}?((vBsb)<#d0D$uv!;8z ztX;|-mM(AT!gI_n)ror~+2wkE#g=QnR{$SduKC^pd~CVq`vmZ@<<8NFx2p-fGmUdp z#)q^uylFE&<{WvoU{1qp!E`qG8)tk|Zl-&3ah4`e0V96*-r@H9hMW$Jb9)}A`{E(G zxjpbtxq-L&;XJiK?l9DziQZrvY^O8PU!Q{^Jpi>pI#Zvzw5}FNXX;y*OtnBfaPCc# z<h_%)uY;ntxB~B5<=#`t7F$sk%lj~~#wv7%z$$h+-73~}?<A|(IYz8vZ#DP^P~J*7 zMIxzFC{j9wn(U+PokC4og_`W^M_Pqk$>KP7rs7J+MZ9U;n^<{;rjSuM5c9luxMDb_ zST}`^Nk85vpcQoN`6+w?rb^}3O}0#}Vj>=!n3x_Ea*By*9UagyF|G5DX&t@WBtYjM z(>glr19bi|?iA<5D{lp0mzo~*-h|Bbo+#BdqLCBjy7jT;o*whzskcPAr^TY&IaFYd ziE_>N!!=KoYd*GI^Zf((*mCY1c&W>Chx6Ebm2+>^ip5J;qHk>;FO`GnR`f{n^>ZL+ zNa8{|Q_s3&ss)PIH0RFj@!IAxaU17Saa-q7ahvB-I#)pZT*|kBba#2*X6cBpNZ*_f z??3OW^n~Nc`8M@&GB`w>B<>CE<D@Z+Zz6dYLf<?V;y=I^<UhU^<UhO?<UhI=q%-xh zjspwQnQDP_rapDaR12gt^{Y#!S|FXNe_b-w0{KpXcsHB$oe*&ay0Z4-7FXgwS>j5x zi+#+;mH1DjxDu<otUGR6ePc)Mj<Dl)tL?bmL_2P`$BuL5;cxx!Yt(cDP_A}txnmd` zajaq^T0?LA@OANvXbt@d+*jil(Hi=5x39)8qBZm;5MPa7ggXtcNAxXG#Vt^|=K_NM z(lX~hss3U&JalMoT5@iW-r1?yqtk|^q$TGU6%0*ENl8{5={s_GdRqFZQ7Orl@cjur zMXXPDc1C8_h_vC!IpfCVh*0mWtWlXM>Di-_^9u__WI)b{?Cen~BeIh#;R_ltsR;Ma zO36u0AD%igd4~R$5E0Ez9-WgmJUo2FsAPJ*cId!@qWnsMq-G`$OCLQvCw+KkGTbtq zzcOU#z{1j!%Ao`CR<;7qP9B+>Iy^OHR9Z4VsT?|xzLP~D19HM?Bhs=nlPe*NucB6n zaCUN9R(M2KMrKMfUrZK7B++l!s1d2*Vc~S@!#=%)JT)abJ)E7Lnx2|!dSoEnCm(M7 zuECP3;^N#=eJglpSbB}l$VnMFd}Q*_KDi=Y-^}dMBSxjBXC)8qSzb||FM_FQ$vLUv z?6mO6(GVWmXJ{Ynj{>|Mu@9Y-oS8l{EptRpT5>tx0eNVjLPSN<?BvX0!!w76hh;)# zTu?GSGlz}JOdpjKP9B<+mMP>p$s^Lz(^6AVoq}Hiluq9P<e22<X3d1VU8lkg#g+FK zzxw9B&ARvO*S~k7*?RWr)3axv9({WDH)Xijvqz79{rbVbz54g>+XG9cG%L7rS7<|v zZ^s`sCZrDY*OGNBD2IDU&*twHQz{3()hK&7ez%clYt~YAE5Pp?NgC^vUJE;ST3oVf znd<#+Dr8%>QtGr3@Qv&I-PV1eELn|C?p6t3Hj^~71R31A!p~6tE?_EvUx_V8PqDe) zP<|nBcQYFb;GTlO!@!K60sw459De&@?i3`<=I4vwB{pY@VQ|lnI|j<<Pr<0!{J6PL zp<AXX)ncmV8pA(++*wdQju}n*bGJh92H-m9YpNdn<CpI?@I4cl4+}Jh-vQ>wErs${ zFe~oknGw`~B@lQFn6~`wS`7p8;WwQPX9jj@^Yg`FJrB4SnGI@3aTBH90%ky&&UFU- z<CpI%DF1VoQoG7E7nBcue*$J?MSLz9!g<VS(%%=prcT`t-0#c=^<RBVQt4#U|N6B9 zkB|Dmbz?RtANKQrI^>%I9T5iZk=fcaC?9+=oO*^CP5QSNxlMK8usc2lE@zI;hTn5Y z?e%;|BStXa9A@w_Zpkf^W7dsoD8ClCHggG4?tHfL;qiMmGn(|z_X-5h1FkK6w;gUl z^Q8;KPG^Qd_~kclc>GSN1J@k};3nWUUZk_R?XcF#k04wF%!e0SoYh|Z-q}`{XvX<X z{bzC5|0l+9J(6SAao{?{a4;TLKK#bMo^{~RcSsBu>x=o4W4PFPfXmqk;8rjjG_SCH zM@&BOwfcEKaJzup4Bu9WTVwd~8{Y_wTZ_w-s<@mmh5hcw-3R6SfQinB9oXFZS-x8# zwrajomn}d_nfYvSUqEaPFt=Ypm<n2VcR+Y6Fb^!$98}l0eo+WK!Hg#Txn^M0f3Z?2 z*J!F)Kt5cLA7mz8z6-(kJ>Z7m1qE!l9{Tm)T~K}=Fu&KrodDd?OO)yXKez?8_Xs$! z2LY3bCpy@0p85G+2i&v3q~1W7!ga)tyA>*a7cjkV(OghFMnk@{fw})S&A~(8e8muW z4ww#iYA$I0q0cmCH0hsjHgv>=z<r4w30qJ;{Fc#E?^f!Vdk70$|M0Zi1(-W(;dX=X zQ@~t*pUxNLdoyr5fGK`Jb3w;PW9XNgfVuNOnhTou>ma-hm}?)@T##=)$oC#FA3Pl2 z_a>;{-@q(;G(Oi9xEF!h@R;Txz3=!w0_7h9bLr#p^UZ_=4+7KrDb2xUk8i$7FcGE# z^YY60`5uQ8%N}5sy{Nf_fP7y-J5F7#RKvBJ3!2aGK)53?2W#Oj1FqFeI+yd??>M>y zf=lbbUC|DX*_V}Cf+s}SaH;XjR{-S)b|GOlKW-|7$A4-V-1FncK=})G;Q9jB^fSz2 zHotsuX{ycwZUwW@?Y_RS<f_%cob|cR7sR~+;V?6r^v{RWsS%t+p2ZUhY(e=7An*z> zCx4~6p!xg{1o{Ef`y0(21^@W97pryvnC*Mw=W7POyMfvNt>)mNZ@w-KlsW`Vhkcqm zGJsnH<;$7Tq<_9oVWOY^qf!HLA%v|h{P?w_x*<H*Isn(kzZ0g858&2A#n&H#=Y)S~ z4rIRhmO=S5z@+}EIcSzIw+8ZE2u#x7@wuT8&SplF{`o2(Ulh21|It*?`mz(aQUAi4 zpkN2Kpmw|h;d6jFrk>{Tw_pEl#d2WwF&DHx&j7Ax{gAo~esBv~haQ618fFNDUw*zL zA;FXeA@yWqoiE6DGH?fh$!V^+)&co&J*a<#X5#rSh6{)Bz<tt2v-teRuYNa!?-R#_ zRLXIh3tFEygMJ4y@qFKe;JwHD)Nd|+Bb1|r`2@Q~Cxp}z_`wZ-C%1&_VtP%Qis;u7 z@cUL^mNSRrL7bHjxed&a(BXXYZ3FJ(TJjwY`a{4pKT+4u_4Ucu8JNB{XVnk$jRj_! z&H3b849xX5XXR@N`Bnh4&gOjbeFn^4oAb%n_@t0J7JhJx*WSLsq}ZI5562^y8A=Gh zg2s0SaC2(O*9r7D1M{-Y`LuTzFyGmnRX^;%hV4VD4gBC1uf4s28ESJ@KCIvQz$~^o zpZYBaW`)gJ`A&d*+kn|?b3XYRCx+Bf@PnJ%4l5tdzn;Kk*ql$kd|*m#&dP`Vw*;8G zZO$j(T3|NWoRtsf%N}N6m$sn!asar0YRQNFcYKGC>JLA-x&7i(zwyB2*_>5B%y&63 zciNm!zSY3IZgW;X?7!W>9JD!~e63CnsT1J`H@6*DKCIthU?$p}PrfQ(7TBDX59iCh zz^t-4pM38E^O?<A`LMlz0n@yr)efJ0oq_3Vb5=f_FJqa3UD|@?OD=FTYRQM!UDb8W zcRz4X){+meYqr)g-}}IQQA<7?kAHw^l~jBGbq8j!%~}12<8dx9MK<R%9#;W#qs{r` zTgeQhrY&eZHUPJ+mVDTM`|6nQAaFIc<iq|u@syD22|u{G$B|EabAXv-b3W~z2TZli z`Q&>Tm{m4s<-_^+E;Cd?_!ZQDdx86{mV7wAN1dwMT3f!3z;$QV?H8+liI8L@Ff*CM z%t7^=1I)r&@?rh%X9jj@3(B_=xR-0mhwI-iU=G=w&v>*sEu=cY4{ky2#rh2eCdcM{ z^34Qhp3PbPhxNM^m{m6ClkZ(%KC?M1AJ*?LV48Qb+ToM0GcbK^&dNvYDKn6owxIFI z1#U(y`S5tF2Ig*?^QqrjU^dyDRX=R+9$<d6IiGw-bq=Za@Pk{>_+op{WQIWa71Z7= z;KtXI53m0!fVtD=eCoFvnAdI2r@gy@IcRe}`C4^>>jU_~Ena&EGeaQ!3Tp2#;KtUH z565>FFpF)@r+&+USz&WldokZOV7{_BpL{jIH18U}y_l~vFlXAFPrgaOOtU$wemMUY z19P*@`Q%##%sQL%$@dvB`)$rAU-Q%9c^UlR7Bs$izU<2kf$%G6e9r_ftCoD&f75`u z*yeodcRMf-+MLy1%(oGk9X98a?>AsVXT)zWjz@c7y4##jzLCJ3YjalpFy9<zV3)R_ z{<{je8*9mz2pLua^RCVL)bA%?{<1lr`nBs8Qk~%kH+LTR<QoReSevu*B|?r_z+7*0 zKKWJvv)1OUeAs^<1GCrWeDXDhKRzFYe}IO~ZHJW)=W|bH2!vlj<1rApj9T*H{L8On zzB#}xtV6#0fqBm6eA@dyFkjf5)n2UMKftu=VfBkozV5&bwmB;wj>oyc6xp0lzN>(_ z(dK;etpsL+&H3c}0+@X^XXV55Z_}Q-t*}d5(D=3it^>0{^99>Gw2t|5fSXiHKD-{E z2h8<0=hNO5z^t`7tG$@-V_**0oKL=lULkcn{NNU^y#tvc5Pk*qUlwrVYsrW6uL78> zY|f{C4+68&=B)POcx(se3!C%F_YW{ld&h4t&X?1efnC~y+S?nrp>@c2ejW1_0asN^ zKJ336>zMCh;8xWk-@A3pw+FZbwdBL`Na$0y<E=e#U6~D<e>fglb<8&&xV&2O;qh^K z9rN7^-11uT;rU}j9rJAg?!!9dJ6Okje*xFHZ~Xa;^W_v^2HKp@@i7sYe4De5H_W#H zn44|RC*LYy*4dnu59iBg!0fj<pM1^x!SyNp;1+Mb^ks%X_!V^grT{mxmV7v0W&pF$ z=6vdRKQK?)oYh{;w-uP(Hs_Ns)IX$-gdg03+Kc_y6_~*`=acVTU?MhW)en!ih0LHY zZbALG6u3KU$%pf0H89(3&ZmC+fH`DyR{gNOZ3cwYDe!}v+b=%((tydaIV&HwcP2BG z5Pk)<cOGzy>yU4G9rLXKZf!03u>U@;W4`^s{ZUIkZ11rHb>G$2-j2X^XV&d!tN(C5 zj|3)Sb3Ws-5SXPlXXV53eG-_LZO$j(E?~a1IiGwD2i2{;ZGh{*Y*2e~Jca@@*5-Wb zHw&0cZO*D6_TQbrtg<<ueD4DDnax@Gu>bx7rupF7kB`p4^tCykd}D#hw>h8sEdXYT z&H3beoEfMpZ9&J|THrR-k`L$eo;v0`0Ng*d<iqhjehAEa_`%Jc2R`i`3Cy`R=hNOf zz+7c>KKUL5W~I$p`SA7K?aWXG;a5=q?E~&mE%|W%wK=nH$Hy7K4P@5s7ps2Qe-nY3 zVRJt1tp?_1o3rxad|n02Mw|1=_Z2YvZO+Pv{nz}gy0!N-;CeF~)Lxu_XV)>``M?#` zk`LQ^RUPx)3f%Hq@?rfp)G^;S;6AP;ANJoNV2&E9`w)Kz&A$_Y>C9YE|KauXFlJzv zwxE1Dz)h+pAI`sdb<DQ}xZ7*VhxL1*j``LBx3v!W_SP}q0pR|rL%!pa>o%V|0@t0{ zpz*-@H?ofT&IhijmV7uKSJg4!oxnX@hkUOC^RdnOtOtjHsh^_zCSH3x0MpaveDdW0 zGs)(x^#zZ&dCb5rZ9(&SF>u${k`Ir!6~Jt@IiLFN1?D%Kv+9TWj!K1j06)07{o<2v zBrxaNoRtsf%N$^?vN@l84+68&=B#{pKH3h<cg)3GUk(8CPaX0dpH{cyqc?CvnRWZc zsvoxZ{5s~F3EaFo<h!+w`5p#tRW13j|K0^=ug&?4N8@x@$KeOJc<t>8Op49<<jVzS zhRs?1hwDK#Gh__Ef{u^7fqS%;e7HVus$;(G!0oCfA0EGd)G=Sf40s(KesBxwKRn*L z12e+reEP2lm@1pI`VYtVMqnPdIiGx6fcenotb9114+2v^(`tuLz7D{gVRJtDMgTL( z=6v$a17@+!S^2R4mIJenIjm*SeAxobhqdIx@jb{4?9vvLuLij0!>oR>>emS}bOz>Z zoAYUJDKHn?oRts9<91*kwK<=Bn}B)W=6v!UU`Dq#xc@?7c)baJaEmvey8<)J=6vcG z0cMuX`P6SIF!$P=PrjFd*<y26K3osJV}=?6zk<g1C*c07B_AGd?Xq;A)RwO&aAz_b z)PI<7QXTVE0C#yU`LMlr*D>FNz^$w$AFj{af!S?yKI0J@4)X<ma0_ZL&gZVc47NF+ zeCGlau{oddUC0a>!>^$6jRJRTE%~s$&jGW==6ve+9WV!N&Z-}-2dzfH^JMtJ&FvST zd=r7mw>c{x_TK_vuD3a#d@F!iYjZyNJ_cs5&H3bOoDJ6p@FUt`<vSgMJ%Ksj=6v#9 z49rzFXXV53c#s(~hF?MByBfIH>yU3ZFo$f;r+#fl!s~zVgPS{UR{d~1h60mgb3XZI z0yEF%tbDj0+{z64;uh526~L{nL%xsenC}2^|J0HX$K&`>@O%M&aKqn0^&1FG26I9E zho8sE2j(i9^Xb0_fmvyDR{zm@1<Y=n^T`*=f%OW0a0{v*=IaW~Q0C&bHw&2Yb;wu2 z3>m|(p#HlGxEt$`Z)F|xy$;;Fb;$P<F!e`U{o>Pq9e_E*=6uFu1TeWa=acVJV5)7- z%7@3>!@#^?b3XY#1m-K7^T}5OOv2f<xAzQS2HKpJFA?fD5tup5#hWh+fLUVav+gs| z3i3V94D8b8cYh1~oZ?F{T<m=&@bh>ZVz}7*Tj1yMKB@zUpBLOy2M+HiaHtL(Ucaa@ zdMt1kx1jbmiQ!_~3m*elNBVJ7EBKBzWI^|-(0k_h{FXh|CnhF#PlsE8jn5vJos~N1 zWcZafa@@&@-Sdho;XY=0l@Ywt)}Y+nqKdrSyxDn0#d%YUBWGHVa|<GcdGJ-@iTH6> z_%yA$41SVT2uD|?4Vs)^I<u?@ZXGyna$$Ld?wxi<uWtP&mrlK~V)E?#UOjsDm^`;% zpUM1HNR#2#YuzBG2B{&f6nvul9fco5{^eYFDTn_ZS(IO1T2We9nb>Je=fs?{%A%P? z7eW5SG;)fRqcJSr^<d#^03UK~1UE`(0ylkV1~-T}LLI4Es07tgwNkAi<I!-Fnq$<l z@Dbs5>NxlS@CoWfb&_hY5>*Fvvg!yQsXPTfE_<5lq&llEaD%JU)fuXr>aKdIo~oDX zt@^0Gs-Nnw2B?8h<H2f(I#ZpchC=&ORH{l-=_*5Is$nXuvea-jLS?IwY82d{YqUCB zjZtIOI5l2PP!r+fw&$wz)Fd@oov$uXxoV2agU08p0u@n(YMPp^iqwT_hALJwRf#H9 zWonixR~2yAp(-_7%~5mJJav(}SY4tnh5o->%~uQ56>6bcq!z0y)m7?hRSh4nkE(0c z5_O$gs+Oti)eY)Kb(6YT-J)()x2fCJ9qLYXm%3ZsqwZDrsr%IfYPtH4dQd&29#)U2 zN7ZBMarK0HQaz<ssHfFR^^97jo>kAO=hX}9MYUS3QESyp>SgtcTBp{l4eC|3QN5;K zS8u3IYO~s+-c(!FTWXtnTWyC?eOJAw-d7)}57kF%huWz=R-dR{>QnWZ`dodXzEoeS zuhnk#4UMH9&pql}^_}`&?NvXhed<TGU;URyGhh9reulaCi#n)&Rllj<)gg75M)ME# zr}|6%t^QH}sv4LSp-{b0{ZNBY!%(A8<4}`O(@?Vz_Gt6a5uqbPEkX&QmZ4Um)}f<9 zM~B*kjtLzbY8z@7Ixcj4=!DRTp_4-GLy4gdp_4-$LrI}iLZ^mK3v~*04s{824V@0} zuI(1;9_kV58R`}49qJS68|nw|Y8Vh27#b8B92ycjGjvwy9_ZucYG^1qloCn}rG?T% z8KKP3Ezr-8s$uY)Gz*?*j0k0iMutYg8GLl;?9iCd*wDDp_|SyV#LzjRb3^BaCWR)4 z&JSG>$_-5k<%On(@<RooNT@J0Ei^q;6uK}pBUBuk87c{thRQ;-Lgk@~P-UnpG&?jW zG&eLabP=yV@UkQH<^Nhg*0mQ~a&Ppcmg_eE@3h#R1pnim|F>6z|8cWD!uTtSa@Q1i z%c8ZaC|Fli%*vu@ZBg#(;<57G#hZIX-H5XexdpHy>Fs*@$61?9{C{sRq;U0smrMSK z>j%7%*j+(%P3qBc<g6uFrq>gtyekUaSnB`4nxY;5_kQbj33HgW32rk-t<b-5mBP4Q zsc=uhxgd7E!t(#yYgQtf{vX`%rHlWUHu&&H2!7~4tT#MzH}^3{fpQ-cK@b0b_Y1ET z;UbJS+Sj}8Z!8Nz9RCf9!zCPC*9FJxfgWE157O6%I94Gj-T;F56xlD1Pf73!7hlrQ zJq|mb4eq3)>OmY|()ZJ2ygtMe<HQ?4JSiZKo(&<6^Vlyx#v4H#U$XLx<1JGfLp*3h z{gKfA(eQ7Oz9DvAz=rxJkiP)__0wZK0rb=3#9KnVI8MA3#LEKW*uK^f58BZGXsF*M z@ULI}u&fQl=Lf_w|4Fs<Uweoz3(%u~BE)Zs6Yl`=+v3DehWK4^;vFG=Uz~Un#Qzf~ zehS1N35a9=oC@(L0^<18v{9n&TV$QB1@B<IaUz^+;9qaN89c_m!FZFz*!hEcJa#bN z6ykRKQI9Wo;ZM^J3Z8$+{P2)A^k@e0&G4_+Uq^KvnnV1pIPqqQ`0O-}9^xMa#IgQI zK>kmyINthdC;VXiNQk!#$^01q7=Cd5X#sKk>n;2rvtb`4Kpg+#6V$$z5XV=FgW|0q zj;}EJ#W8<th>r`1L$Nvv;^)MRCn_~LPW)(yPl*$61Mz}@IM~PC8bGU>gxbPSJNP*c ze(>gBW(z?FPcaW+4~%H$iNcr%qoK3HP}&6X{|g)1;G8djpYLJPw>%Aw`71*zIW<Ae zzXev0uYPN&-n?V*PFS$?x#~;U!?uRh_po;o?fndUNwn9giGo)wFxmt5M$z5?*qcau z$*^}G?Ulja8MHSS_V6eUsrj%sj`o(p-r2PG2<%-zdr!k&g!W#9JzUpAYCY_g(%xp+ z!`E#>swKRdHk<a^!rrB{mk4`T&|W9lTTFXBVDD<$8vuKgXfGM|@@Ov%dsAs|H0<H? zj*vPB_D0a&6xf?id(&aBi1x~0?>gF>3w!wb8MFxYuBW}LVGm!|f_`ZZH_W8HGT6JD z_F5jHSK5#&gT3Wc7KXFWt+Y1<_EKqYI_!mMuMGBZ?GLG|VQ(PqErUJ0<y%PI274W7 z?>^W&jrJaay?(U!H0<@Jy%%8*U!;Vdggty&Go;>uJ$xZFq;|qy7ux$0_Il7>^4Rdg z9}~mT1?%Am&We7V(R)jFb@TAz^_5L(mOTPUb^YG!!wX+aoU}2#cuQ4-B`K%C&U;l2 zQWkEhpYr>LP-WxZ@9hOnL22dh;b=;e@W6VN`(Nw`MH_Km;p>qNRJeL_QsVdt6H~^g zOa#Z|aCF|>-n)KJY0@Mmx;G<wI6eA9IC>zuF=5eq&?Nu<ddtd50~Ra;ZNj3bpd@4Q z`h-RIz)m>&QqnT|_e!jCcu96rS-3hoDKT?NgRbG|+u2ai<C##+vM&Kjcp*KhtY%|% z<M5Kp8>9^WqI^s5^?RE`(!zlY&Vzp{CqUlH;ZDxN!or01i$I4qankpGFHZU=(09%L zCfU``Ce4Ta^yopV{I#&3U0skgH#_<tYC%H#WaaU@MZ?>|i)$*+m0jF09DRRZ3+&*g z;pi~z;Hn<OmNe)Vj&A=RvZ}@Ft4^mbYZ%QLx37LQXLL&S5lJaEZ)7cetwF}%L*@7H zJAwveU&9wq!D>XQ8oGYr=v_%yLm>=ua!PK>`MDRIzwun?8y>f4C>&ijA662W1`A$& z3A?=d?6w=jn^JK3P#YKg2{TJoG>4II8+|X~g$AQH_Flgchr4CCx;UwAxVkbaabn5@ z81@A};@K-4ZHU5f@7KcBi;_^hDLpBXik9F!1>it93JqO=uHk649_`zbVa|r5Sxu<L zFhLU*?Lc_(u7pKzlj<nwpoB%Q(*EX}_rlTdiCReoEwYz@%bF%lu=T4sGc1Sj^dGkD z=+99IL(;`d;9=I1rJJFW;U(jedT6_73wkgz`UX@8Wi{jBom{A>%1w!`YYS;%*wWnL ztl3U{R`lAMM2I;_MlQ*0GIB|S!xW6k)Mjx_)f?H>vj^;JfVJ6_nOp-~IC?GhQn>e9 zlqP%0T}jxFS<y+IvZ6D3WJN0mWJPzw&|Q$b5tr{nQ1u4z0yNmt-elP834#Xja;;Lm zXm2a*71181(t8tO?=~un*2|8*xe10EZr=eflEOVVYSy1g!<?86!@Mjd;f14<VG%fj zi_8BTeRX3>bqIdb*u$_-(8~%;o>>FJ(MPDm7yn*a8jfB~<H<t})1*f@dbd5cm8meU zm1l;dIHr|-!_m#*>PwOa;GiDHwdtgAv_;M6meISZ<9AiIsM#8hW`EwKW@5|5yQ+Q( zM*$8;DR*&FGA>^iY{XSlcL<)HbcZC5#l<Kbj(!}D{t1%~)}wlr9e6dw88fA3**iev zY^x7lvnh>-1g85A9@OSxXWGgM`=Z^bgheMn3OKwI79E8<(PL@CHm3c}v^3PbmmU3* zX6=vQ8jd!H<v1Ko8;~ANON@>^AsY^;<m~99diuf&a|!ewOv5P|(U*^aD@5l&N~sx_ z1ncU{dRitdx*3y!b~+x6W!dm+0L;{Mn8n+(qKp2)85%81PaphmWuNGX6Vjt^q;Tt^ zBNFwa^ytsj+<nJI$0bb(N4M(6FMKVWJ85HjwBiJ)V0v`DQ-Ltd-ziY{l;}q=E{B^? zg<y6s&5nY17=D$7qfno0_yrAuX3&yEXBy0S7F0MH`UTD#u%}0@5cc$_VK<&m(KFmV ze5I-f5c*8h1cw#o>h;)DDbbI!qK8LD@4z$gNSGf9DNE8|0C9T2%*frC6}@6}1L%S` z6J9tXyx@--nDUi_7yJQNO=|WD3pULAx27g#@HJ1v!Bmk1?2EWGL>p}0*C3^4Y$u$K zEz+YK!_jw~<rtb_lH)}Jeyp#7GLx<P>|~g1x(lQK3-hNv<e~X<4DRs!X-50@{K4e^ z$L0@SwpjBgp?&P+=}_C`X<YZ2@&L^g?8$(+0z-#0rT6-M-_qQ1AM*}87ll8oV87!< zh@L`tS*52C9$tD1;Vp9Y9vt>R!-Mdq<WBI9qH~y@NVGm=HE~Z#`p||2{|x8!<SYT^ z^i<gjRxMbM!qF&YtxoAA=0!KK(6#Chd%9M5)@+gv2XtG!QW^)>N_g6g{s@zKbU1p& zG61uqu)6*6Mn*Wq%g!4aU#g7gSK(+G)bDMcQ#)Z+RyA7#*Q09hA8;+76}=9{EYXlt z<+rn=-&0BN_rlc~-#e4II^&z@J9t7|4f^cprLe}ll^)F)orQ<=c3gTAYsNMK3Yl9V zdCG!Uu%Y-RT9r+fjIOtLJ_r|HI$B-Y7%sZ1-~lWMP}@*;bkmxGyvX#d=-VkZw=9Fx z3}vZ04%34RI9#0pYqDd~avxj_>;SrEY_eOcjyfOaO3chm6S;J~LqP0178=DDNxF0& zER&FAWb`3Ci)Sy%_$Dj*R(5sd=QVR%!hk@TijMy#9Nh`m5{q8}I6Zpl=<Mj$tm-Rq zEy;*(N_ZYCw*xx+YB))g!mZU35QL-9iPZ~n_0O(;9M_zT>dP8L(~eH5&TP40Z8jjd z!c;XKxp;rVqH|zznZLFP6soFY=3g3CFXFSds)lfi&75An5Lfl++6M4@am~DXhrU<< zN_hXqqQzLxC`I*oh|wL<D1Hf)ZbuYfHHhx0Ug#<M8=_c*A*L`p7GX#?XQ3{NMq3){ zXr|nv>V;U8ux?>%_@{aymcxT%=mAF3qmSeHCj(pA0}jNLm*AHY7riMp+lEJ<-G}F& z`IjZD%BkEFm2;!i@|3}^&2F6@y(~Rr@ZYnWrVQSco{)NYU;T{e-{B<_dcatOmzd^; zmy8Ni(T%3LH)0P#VRTeFwQS!B2`#BN5?W>U2uG>X;p$A-L$Ep%yoPu?x^faI`CN$6 z9nn$xf-pL20CZWV^Pmqt7(f=$QA6-SA9_%o2@j&9!W_xQh<;F=nVqmMb2vPNe@4M0 z?5D;1U^eIp7x_6o;rWr_j73`#7JUVWNHncwN_8VMeJYzp7w&|UR?Yf-jiL*Gggu;I zFaRe(LtytD*gaYAPL3{2!fr@dH)?W2oO&A$L$1sz(S@C$*i%xF@B;M%keLOAfJ`sU zsLs4_$q~u$@2KJpU)6hY8azchv^OQXdBdOeQo3%5zPjQ2_VwRMSobR66G{eexU^|u zM%N7}D}iJ`z>I=R2~1T9*9=hdUns$cv#Ce2sx#X{IbHDJWqS0+51cue6`c*C!_JZx zy>TZ*;94-jz4lnVKAe#8Go23cP!2EtJz>#O*qJ{Rj*ly0r*K)q^NkapZ!u^?)sf+v zH^McWAXK$)-^?M2mA?!*qw>G=|46KCIRB3`sv1Ig-`DfcQdMUIQkf0Q0<43u<mfBz ztmr7H%R5jVsx>}A>zq}6S>nDy(HkqF3%PWC<xyJrjw^)rVG%s`F1^s~#QB$gsa|Z= z1nv*e4t^zMY?#0HOK730tiNz`gOsM3O|qB#f6ToNe4JI4_&>=^+q4aRrcfY2rBR|r z!%LvJCQQ*h%}n!5nb4HBG)il$V66*EZD(kazDznvlgG=@BC>$%OI_XFy1EOl+7}R- zNgzq7&;TL@Tq(Y+4FghjZPS9x|9kFz=1Ka3yY9>9_vb@8=ecjsz2}~L?m6e4d!8$K zWRd@jWGDLpd5BGa&8(tm{dayvvaSAPTd_Bd$YQl8DdLGO=NYjjqO{cVF$jDo<r5;c zoX&%AB@tX=g_i1s>TU+SBCejbt?lJur_f_xkvO}MDswW&#(=MP#MKi<TqHkK<`i;Q zL?;ze<DJaWv8h)x`$`)Q_m`$F2TPTh2$D7SPN<PB$1o<EK1;G}=>W{}ry5&qPeE#G z8n@l`<@xbuV2p5t##2-5wyVnmQ2$6;@-&u2vP@?%2wSbMv(*#K$OoF$tOm_pMwED! zi>oQ!){dFw%QC~k)VO7t&rd2zRxP7X(+auBzLh_h#?BetI?R8lpN{gI|EM;Gqz*BK zhx%i02I0KZpYD$hU;pXPrkt!;UOg7dKA9|=@l8*8%skR1S+;uCUGS^anRaA-UDArv zJ4cld$K5+5H}lX=DRaw`o$ONV6RAVX+}N8c^8=p1&7@^f_cL$ts+n`5cK(9QaEVU( zq$I^=k`#UrtOR&!<Y}3^;4SGY-DJBvu4Af4)cY-zMJ#F&9noHFFA^2Mmb4d{k`PWw zsCimax*kZ@Sx6hh<T7kXo8yd}@_E0Uj6klQg#uzIFwjOIqg(y}=vtloK{|P{hGzTF zVjo)JLm40X8z1_%57o0FF4L_ffIg+6#Xv@CyAQ~`;~#wJ`##j|Lr?h73qJH49})(- zK({=O@z2xHSwMfSp=v+vE+7eB5(@ks(2W`r!ZtO2?C1U*D9>Lg@Jm0<f>j9r3k9YE z{Z2!JKsCCRfA^t(fh1;w;ZWfFKr?i1QyD8trzL<)+9>miXgf~PtbrlT*i4LscaUnV zJ2+)`DlA$TbeODipa)bRkvMCozo=Eh`Xy6txygP+)E=!II;vCDB6R)MWp?DJw@kBk z^jy?QZlqIlm3p*t)hVOb+R#{Q$K!=-wLUb>QBOEEkFmN-tnE`uqBT9Kaj*?62Cs^} z?SevYWXY73U-#r;PbWOSW2!g*iwo$uA;)SULyp2>T1VR~MK;%Zu-av|f$n6m&;q|! zBCkpDX&wgd(g~h4==5jgQT`Kafz|}C>lH35W{?nmdW3q^P`|CcA*Oft*)szDcEf*= z+HXg<=pRR<wSGGx3Vpxbl3^12?fF{0@3&jufsweExv6t}E1HveP>>2M{-QA9)P$Yi zlrCf*twW8TIVE9MucMw4y}lZ2i5^r@ueJ-<z?CU0t2e2;*Mp|);R7QElCm~WIci>| z9yU038!O$$3YqWgdMo^49kDfM)ojT6y0O?{th)(gouQ`t1V7UY2Dh(hJKK9$lVU=s zbLt;zq4!qDv-H7xrI<@<vkQ$B1ifJbs1@DdXB1It05UQA6uYhJ&wucg8`ZD9jY<>L zl#z|f)L~w$9e1o!vd;c@8k<$7l*k<aORa^K5`z6-YOTU-{-(9$2TqAGmYUw$9W~?l zt$nN@3jqo_MP)=-aA#Fp+cP3$bj`XDQB0WnGI!R+fUg=5ThjMsTJ?HR89l?{fHgVB z$-EP`CO3zza6=`}mA@yUR`vg$v|8aN5cneDD>wOkMV^t*M^c2Nnf-yqkWgu%uDD8T zNu;n8#&mKb<cL0O$T71^to_g$M6S)Z$wt)iEs|7JWF5~mTznod>mG&!H_+k^Z^2Gj zwEH-P1Msh{jC~}nS2&H?7B2-dYIz;d$N9sA!@q_PjeL~(BKaosMdBFE+VJ};3;w91 zUSOos$+&XL9Ai=S``Z+DB0b5b;xlk$w3Jv(S0m#%&l|@XoCl!Rj&z%$9A{jRQJC#Q z`ffH8;b>-Ll4C~J0<@gJ5dOx+ktLHC>CZ!((a3VgkiWL7!uCwMnlHrF(YQJ!#t7`R zYt>x|7+>2lt=Ep*2^`3Ox*2ot1y1InRwycv8j;)GjHE!e@)LK*BDg2tN4cfC+?ndG z7V7&_zMGMBxVipuCoxQfy>g}IQ_8jSrNwa@DqL%<z4pg?ui>p`S5Es-!kj7em0|{j zD(tqM(r@YYE|^rn+Fptv-bIsG^IW}Kuzg(8wyRhwHCB(UH!^q1>OW4`Vlz|WYU3eC zA5-SqZn${*Q6{_;%q6QTJci1?3`IQQ&1+okpMF?VXwiV8reo&CP*4_CSCy-)!cjGE zikepuRo6}JIJ{;>NB5eWI`*tt-tqLB8`wqHEQ#^-(HM^lVjVB8X^9-#kci|qIFZLU zMD4a=*`_u`?6#vCxXf-lrh)g_ZEt9x(rt34ce|?_qHa?(>dr~Hb6TSA!ujsP)~LH= zQGS7$#;biYe8TH&>YPlZBsu;O5nNSY{-XXSy*~oJ>*TT%tnI<BrWsi2#_TMof+1PB z0vsc0=4wfAB^e?xh4ks<-_r3A9^o8S>ohs#F==lA2`38$#1?PT^pev=>S0;TV`z;d zST1(kR!t3VP&Gwekle(sSf-j1ZezJ>YH=IGs%gI4I7KzJvQ?_4MQ-EN;|R+LOGVCN z%xuV0XRD?<eL$+2iYCFgDOq7{Z<^5+JVm2Y)x(W2Qe9t6mIfmi_@loW$Y5l(pLQRR z!N@oKG|i6q82V>Eo(we3niUwusXqPLWj6=(C+9DcFU|)V<I%v#*WQm~U$EI@qg4r! z9_wVWU+So<%0#TH_E4<xE6U{A3An5n#t;jOJT_ifT3Z~m9+}+P*uY;%dmo6^KE%C= zB4-*gg>vgd_s5q;>ew%wtli>dZ>@Cd+p2lAHtwLNtg|}rKy9B;Lc{de`WhQbbibIA z+9N-A8*4LfjbHs4Oqba?W|vSubsMQQCv1xGbU9BI{?iPej06Qx?XuYz#no+0cxZ91 z?^B^Rw=t?ISv@9uo!$qFqIG{`tr+Xv8|(TTIdUqYr#CwNjpCsb$UnYQW=s&}75^}g zi#0lg6))1zG9MDv-lT2xp)Ecn?gzit3qzJe*kjb+^HA0xn`RMXVu|AvwGsglSqi~- zH%E*c()H)3PD6!^P4Cti$iGwnTv=eMuwC}&Ctq2TE)>>{+e!6wKA1ZY_O>N=)_e#8 zNn>8^|D=&t8bOknSNA_@WD$)p1M?cB5o^?N)NtM?0eV0i&hQ4aTMuT88qWPDTvQ80 z_Q5u0XjZSrkM;Uf<vllo?(6gf$<8W%1R-wW5b8ohU4E`uqfG9<`ngZ|xj*r9kNCN# z(}HRFJRnn7ls(h(Xz^l~H@P6KIJql1Ts0Fb;}4G-KL)@27(JsM-M5B!vUD`%dB<OF z)0)v!_;wZ7^t(;T<JPi|7q21Fo=oqBm`(3L>!+>p(@r%G=B+pmYoi<|{O4nFJKJ@+ z5$Zd2*WFH;lF<bA&f{_8c8YJtaYNI{Iz{@4LzWXIGh`tOGvtr^X*c?5uAlZTKkfLf zt5yznp10LgaW%kkrRhM__#}LTI>O;twZ`E?;qTJ1$LiQbMpw|is-nF+xoAc(HT9%Y z){bu6c0LaGKGUD~hN1zWc1dqG#M8b^cWENahB(MhsNXD%X>>7nRah60v!7EIP`MMU zh%16I4GCAj3Mvk9mkrHVL-zt1U&LKLq?wm5F+tg%LtsDVSoi-Pvs<*Pfr5dZ!mfl? zj*uA{UcEM|>{<uavq3A&QFeZ1*FDHP0-_D0L>n%iK{A8^H`b+QJML|07OQHV`rE2+ zc|XVNY-iociJ7`UYHWW%_$wu<FY7kUnH{8sO&L@@fJiUwdL-q<x()iRl#$AQJ>ln< z>p=^{t+cO=s?UX>Ky~YsgeVA4#l&>|aY}dyD0<CoxhflSt?i52Ryf%yZS5~6-(w#R zj!8~cGnd-x#&Au4<gpEwlu^mH8?vDfMGmf?)&64Yo%Z3tgyea;RI8Ng-7ra)iniSl z?2qhUzuqq7Vv#3TZk2Az%NQ1z#!p8~A=L=a>08SJ$<wdOmb<o^|Am|Ent4-(?qL`; ze~f%CytdlrG|SH%6G$Wb_lO+*ZuuwDV<iTqMt-@C1WS(O|3b2K>NV21)J~4mjpwga zy>?CX3rp?D%<$SuTQyA4>AGFrqBKqrjUH>xU_NZCmJ`}+p?r`ToM4yCo01veY$IqZ ztf-REViE!mlnhOVa%8|}gpNC3r1L~o**xQwCMT`hFYUo?4AfD-k4-;3{b_q=3-c1i zl}mP8Tm2T&)AX-qUH%~E-=G^rhdcyFRb5F+>O6!>KXDC-xtGK4RUp_ax3-wX^xq>@ z6YiI)WIfoK2gTT360^2HC_4tfUwFX$ep!x3c>bsF^Q#YEt&X1pHY13AG@dycvO4;C zwADtjAhSJlc+gd_veFERJC95Js!9BjpSU7uX{$6PyGJFiU#-sARVZ{8`Wsv1#|-?8 zk%@8VwO%B%i(8Cn%WmU*wMhzP%L%Hq0={I<$8?4M#!8X%^n~^`j>n&tib!25D1ul< z`<`K(#x#9hulT~$;cLa{toEm=)vS)88a1jfb?V{$BJ5<#)9!q=v{BvODT5=|$#jna z(@r*&cFQyBsu0rR7<r1SDH#?Je<7E88C&(#*h|+eiach`IVg%?o$0lmEuZO5kd|oN zBn7)mqH3v^6zxi?6~%0l^JnzgD@yc>Sc1{a4b*eps9IiV48`H7&5@k7F$UF%gG*&X znMroPt4T?Z4%am?s>`Vb?J~TL;+K#+Zg?9Hz3uR1IA&NXk-4E}_R=-eB2V<qTv1}p z8TxbG>RoxK*9+!XmX@B_X7%s5Vb)(CvNlyhp^o~lCdx#1-g2Bh?DXf$0`^0~eQkAF z@@5X)IloTUC$d>tAzNaq1h*jw&#vjdZ+cHnj~(e<H!0G;ZbHm0jdGmcojlFS<Vxe2 zTv<Hw#L9i~Org};_$3)!w!*B4n%}9uVqGhHD_PV}+3tk=3VSCDBhVb_U-ij^`ax9} z4|1>}tHwK;G7~ma-JY3ZT8n1OZMsyGD>hl|&IHq)@n(+tS3W8&rD=&3UmP{l5idL% z&-6@5L=IRR-{M>rd<YM4yw{7<NnOWlSl6B%!C`%4`Fd+~g6NlLpw^e$k->FUyT5#2 zAkf!XR^n}<HN$L0ZJ-n>dt85Gg#hVC;42t+Ls55CMdr3p;FdW~_O|8e4P^m!hO(09 z=*ik8tEc9wieOGJD7Pt;HyIcV495))8lLMe#H7Gr`kYKZgE_SFhbJsH@rL^{C^I%7 zbCe>MZ}F|-AjpR%!KqB{HK8JOy$`hknFE=JfK1(=_>ee<IuSd(>NIOR2aMg0i?e7C zR+f^{TkisT;`xq_vYvRGrZGx?1UV5$z2Bv8YYn6t)L(}%6h+l#eT}W2zBhoRGbO4X z)1GI>OHGlM#F#v*mMz}ukR|4p4gH!QWWow-_uNldyX|u`J;C5$WNz6lRVYDrwk4?X zY-(Ozo2jR!FjKc=NW3W1w|xW$hlS+{bf4sV;&?sBt=;j`xSETc6dJ%uH#a=N&K-mL zTSB%Q=nG9KU1k^TQm-Pc|7|LU|9r)%Z(FhAq>3f_jk3EVOZg@jn2}aF+2-pQ$tpd~ z381SrBuh)eihGW9BUY@F=0PkidLHWkf_XR%2WFXv)VtiW{P|Hei>-36y4EP=U>m=@ zIfCs}sjJ1Uzo6%$YM3z;4@87o3=Kdaa>&97$RtV;@`drq=6|hh`mNUXcFjt#YR1%n z`h8Tj>$R?)>K7}QIG?A=+VKH>l8S9dH^Ymp+k1c|?E!urDr}{o2yklzWi7IWIjT%8 z53y5(c~vzQVE1;-xs+2b4(rO9q8&Pcs~WTACHfF9s#f6Ui4q!BYdmYjK-6>4QctS= znks|)GjCkH77x#TY<T%{^;3?(b%vrW$40j5h7(5y)=kL$I;@@;5@Q<Mk4&w4A@|F0 zWbeB7smG~SGoX8BEX-cjCu#=dknUqRdREpvo4?XlkLt$O&a+j&Y4)~Q&70KD{R(N! zxJX264#u#{egZP9!rvxZ^GCYG8q~d#PW)6o;dkDhmXCYgvDK?;Z_O)MW4^1qr^{2d zW`ND*KDtmvi*!R~M7p2<7d!Xwy!FYVIc6MXRwyg@w60m4IM1aNdz$BA%4EnAXpzOR z#zpY#zOSa|so|1w5Jl^fkM(|&whhzzXCPsEA;MS`A;F)?Ehon?K~Y`|^hqGY`eZGc zw7Y$%+lTh~(1@Imo1a)~R*ZIv$8{EdNfHKQtZhe&hkr57aMiub!;l$H?;Us2DbE!3 zU;`BCxLqsA(|+znw;2}G3de1eI`xaHD)Gx}Y#4fley|F8fo=@F*PV`L1l?u?#r$m5 zO`{jN8QEc->=^zfqjC8Nh)&|AX3{$I`+9eDAKIp$9@;8D@WF)QoP!n7Apg{Ipee<s zcO%Po4FmDJ<){>u<IcF;X#l8`K1G=_{%MhaTE$P}a$BX}q-dtQ^1jS3J{;`H4Ubia zq#PMYF~?^dBx8QwdW4A#U=(!JZ~1qAe`7f<1Za*uS!;<_tcOiH*8X&ILi*MjfmA4S zRe7nh8{CY@$I6bnnQje$j7K$)a5DoMXmK+?*1&u>GpK=9HzQ^pWiN6w`vC+2){d6t z?z~0vhUp!L*H<GmRB=?oR=?p)L_LIu!Eu^+G2n+#;U?|;7B%xtJFDcULGH8A`@J%+ zj;Qz5x-ctroL1=b=d<Fgv^1SNhyxhLS3Q4jmzYS!sF8r4{JR5-s#c6#9QY+y20qq% zChswK24ok=fXI-(m}O4uWYcTcX%7Q+Xh?=HZUUje=@6cw_zwfE*J&xBdo|Rcb*rKu zYul@un3N$KbNwStOR6-62LfW1%we-SATyd!ub{)BZ1IqYsb>=KsfOKwN~TWjjn!Q} z-nPEfk2_NT;r-5euQ{2=COG)d-64h}K~zgoC|ogYyR}VqQ!h(?7QAfX1x^ho@(06C zZa5f?46HoI*Wsh}6-E8u#{1x}Y_&(t-#aDqN=b5(itY_(j+La|3IEGaB{|&j^sN(B ze+@J^>B#>4`0PgM8xO%gc6;>ec%dhr=?*0#&sw*qkeXxdh2+GT3ROiJQ8GV9m~Apz z_m!$L`ee07_%|x74CTaD&4HTStz+z($MdCXz^0O|25SZ-rJIzVh|IB!rNR1o-wES6 zt2iD<#?xr*8TrVl!Emm$$c*OQHhV#SnhXxRV0q1Ot}yAyOHuVwequCxuMEh}y)mhw z9qYswKx||7!gE=}YixCSl`z-_C%d+4DXVI&{RmTzzny9d#nry3n!|OjrvFe2WpUQ3 zar|4Yn%?Bc*kZVhRT0npwj{+RnMRm{9*gaM2EWD2A@$p<(zI42S*Pt$A)8UIOV{<< z>NE7_@(StA(B}lZbsw8xwcjq)PC3i(Dq>~gs99z|0Ns0oLrhnG;V2B9tr7-7)1?So ztSNH2ho~u%s`k|k<c>}{^1R8b$aV?7NRdpF7LsmC7wO$ZtNk%_h*S6O9mU=)mfp3R zIg{}X-A$d*9rLGdx=fuevQktNGlOT0%%GjUyl!YAS)(RW7jGo(Z17|j{29!fm?JpZ z_7|;ePWYc|_j7F$NvH>f*l^7&-ds!69P_lpc;@wRJXZ*E7z`)p><4>R&QAZLB)KY9 zcVSiPGe`v~*4RvAV~f^TkF2q0^V8MrDVd>?<Z0@faOP-9>H_#7{A{L><D>@#p*4fK zW0Q`&zyjN%@q26%J_FnIJa=iUOWPDW&Z-RdaR125i`H$s6y9fbh_9H4tt()@_)0cd zclX<of|Zeb0U~X!iDp+LWuC|vBE!eAg;8C8EMKSgox~NYgey$*xWc5Jy5A==hJzz7 zf+(s+n9!lOe_Q=bHUAHq1z9sy^beW`y<6T^DH+0q-tKh{KC8ilyr??bbraSHpbMS) ztE*ESSYKP|1fMF32w0BKPpDbgO_2AnJ!5XYy4nd|U8lDhr!cEJ(_d<5`bq_J8}~sz z;;*$v>}ZGpBg?lhR0S%HBJF9IcpBnpm<QP@{z8HAOx1lFVq+LhU%O;Rp)d96rLoJp zqw3=~!1<%@r_18TX2$8&1C&TkK$a1}et@aw9;E6@^JML?&jly-jjhSCZeuH%*7mE) zt?jw0lCI273OK6Ni8O{&6Eq!08Y_~QS>aMCH@PvKaBr;S39uTkmf2x^TCU>2j;)Xb zyZ*)o`HgaLhrEzEP+EtHj*d)Bzg*g-1k8_*i4yPyh9#Ek7217Yty<J^SO{;86+JX^ z4|G*4y}`9Cf^T=?5b(j^eMjC>!`>)Wm+Z4*EL1<E<&HfYPFK$%9$e*F6*H2GOpO2$ zK?qjn6gqNn19py|dQaSW%zpn@l#99-BSAN{6+~HC`(gE%mUrE;`OBk9H{@isfFsgX ztyc&4AQ@6Z$<2mp7&$~^ICimz>9q9l0PAzT73|i1tJke<7{kM7xkjL=#?2g%cCt#I zc%M9tejoky-lg`*tD-1N=0(wZF13P25eL#z3o=`iIvsy!X(}~7+Vve?6v&V3%g8U6 zVD#-8l3&%OpV99hp+Ag?wRG8tC`~@Jz=ysI)W%;Z@S>k~CMYv$*8$z4b9)3YKjTu4 z=!@8>IcoY<+`TRgp*Fj#4&Vu6<2evlgJQpKc5mC?j4tV3Uq<Rw-6t$-Wf*eGtd8H) z(`eT>O^4N1>9?o-2nDrR+rKYEi@M+Jk}MTBYM`8PAiDijCaf-zHJhX$u9kzD<pNYA zB}ThOF!|opdiL(*$D{SSrFE@+8F^<(!)2Jc^n3q%?`Y`aq`(`~dy`+ubAIr*TXk2B zt}Rv-GYxDKW(*7qF_c*q$5T<kY}Ya(1WMx>(faqMCPm%%qG^gchJSLe(u$ctSJ1Nf z7KaFDXu?y42s{`F2qlIH4OmQ@#Is4O0x}xD=xkT$a@rz*CjwqKaTl+nhBE%b{8c2> zT-eM;k>8!n8Yhry1?BX#O}u)<I$V#iPUh-My_?Qqe5#EjNR<16Gr5k!QBHiy^rtb! zpSCPkU*3|OT<D2Bwek-;PuGn;T6<kDUOK-kzC}5X_)oAamUzlqysQ8rB`^sf-sdqV zeL<X$MDlNN+Hwczh!kwqNTo=Flx@W(@lCoC%sDO&864b+(sWe?8039(d9&R93I+Q3 zcm60Gq<8(yk#4EyldVzJHUnocb!Q#__O<;R8ODs3eyBm5#FEnzN>u_SvY85gob0@C zA5t8Q-ZQIYUXnV?`ZK!GKwn1JGkth3E!?KxJO}7@4T*43Hu`cKj?1=c4WaDTe3XBG zXRESiHC!_x(~FirIg<;=lpShTzZ20TO*6TpV{&hdvDFOB3^!GUYL3+`2*hd*Mr&fB zOiws>Y>b`h4s*7%+|E1}wsXT{GX4Dgi5k!53S&h0USZJqoZGG&^hWYN^JKNZhkk<I z<y0^Qp<C|o>^Bcz(sgR~d$nwJwi=)ZMbkzspl~q!k*0dFGAs<$EC}hE!B_|*Et0(* zu~KJItp^c5q;fSqkxf%T?YdIeQVWPturQQ52RWK%A1D9unt{k2l5Zt?sBf!DcBH)O z?HaJvwX`t5>d!YZ&JK=cH&ACkH7xDl8mj3*tH?#wrZ6wEBi$R`ZL3)!JJ=MGVhcmZ zmy-ga2TJm#=7e-9lU+GVI`8dZmW;9FZXfy=A9~1#_5vBc{DPnMM<3FJA|?a$gAo_H z=c6@`GdbK6d<xrDlw)8OOz#w~7D$e@kGx<Xc~N$ZrPE)NU8L2$#J#wo?mItsM8$eP z6Dxvt?kHpeO&k^S2wV3*9<%Nr;4V{%Q;9R3)g^Wnaj5%nV>WbNG%~nhCcx=Y&P~ry znKCfsa^b3+-yu1GQ+G+yuIZf1>3QDuM1q|A$w7%cvOm~O3+u<b7rU1XeVasSicU&v zXPVZI?DyN-G}7LaiGn$9)9vLyfm(QEzx3+;SPIXJ<kpwF7n@!LyYq7yc`W#JEb@Z2 z`6FmUx;Odr(QQyq_TUrvj6sblv!QdBv~D_X`aJ#nxG9ZQcgd)93IQ`tuo^STOM2z- z%}i|wWEx0pWd{1Z53y5vn!h<!T^i3eRuJbS?l#_Qt3y16)iEBnM6p8NS<PD$>US}> zu?vQDVX+TUR{Q`jbh7PLTLm*;sp{rOUqk&-mGJ8*x2{EeQO`;lk@Pr~k`x3APTcfJ zxD`}}h4D%CY|V3K=2f4b_Cbu9GX1PGY?0fjY(oJkpIX3Fo1|C49vW+~)h6jw5WVIR zVRsVvA({<cK{a_NPfj*;DK)p6r-YCoN$)48B^!dz<4XZNe`YrHF1U^q1FQ%97GM(P z^cgy?yKDDt(y!oGIBH4UeMI;#Z#E41{CM_S&4R($KG_r+iZ%6H<lcQtv%2FDb-A(H zO4Xuin#ZNmQr{+Nsl@Kz6y=w#g@Rvm0C`o56iDAXK9FQD-ZU(YWUmf4bF?O)`kMp% z!2hdd%m%$N_YuKO%>4(!7p!2ZW(9J?2sNF??<kR%bo!87p2_O875r;9g?|THqtm=q zUvxPZ9j#KI%U5#j1C8KoOBZmGVUIXSn*nyi7Iny0cl?-iKLsb1;354KSCiDB8dh<~ zfBdQ1ui_2*F}PnnX9vIb6Nfh4X>m1HIf>)TMfIaFle*x3iteYVOmBl0Wo&l|dzKup zXdc*m5j`?%;ln=E3?!FkLWFWI=89jCDc9~pclpqXtWRG8XP-oNLCh4Ngyk|%YAB(O z>h3kWAB<;rbkViAyQD0h-MzF{rfaNR=pJkDtgeuGoQ41StZ<mOaN!lzX&>T3|E$Uh zCIN?-S=Id2@>i!D#kjUfFRAR;>u7)-zpLq-=})^iPc<zj+z&eL1_Y1Q#$#xt{G9Og zr@I=@F~!^)InKbmd>bWK9beM!YI>jT-h5#*O~hSHLhkBHHlAwR?KHDIs}@iumek7u z2LXkgyQI&GF<>c=yPZOn0xt&^LKS!guq*;VWX(<?WvQ8_COHA{7k4-7d1sg+Zrfd* zvQ0qtzv2lo-t8>YSia++<hq-MH)573J@P_S<vRA<8nln>=TLWjsH2;3Es|1tWWQd7 z!EQNfK+Z+#r5U}c_IJuA{^fIMs;|??Om=^#5t>NRi@UgyF41)KWlb|1dAWha4r?G$ z0}a%GnZ|Hf-qt4L<%}R|4oC@Fm7J8`B{Ch?$s2xHk`Fdq_L||gcH}wHsWh)mjc;h@ zhV~V_POBJ>>*?^UajsZnq63AZ%QkqNm8CzLO|u=ZU=^<MIi{JPBF`+c%=W6==?HA^ z3NaFN0n`2po-gH>%fVO^l9l>egJFaoAN1IuW7uGk3&LGTbHO4-n3~1*9mCdqn}lI+ zdhvQZ(6B&MyZ|UjUSv2P*T};O!$A{<@j0hrd{Ori;doJZyYN4z&Jo6kxg$+;hUq;A zWLVu~kZV}oYM>KYofz3_ZJ5*x$iG5uT!x3meocgO_iOSN_Yo1(4XZVX!DdE;Dw*-L zO!QyYcNyY?um~o6ldNq^LcuuMbebe9j85%pXmUf^3dgrtlbtPA*xqVQZrIB613W*# zb2rc3JP-0b$nyc75Ab}5=R*!w^VB~}TeA1bN^q>n0dm9SqUzwL>N=HR4YxWv5Ll;) zeKpVsa`d%{6(<~wrEjffA%m#4T0uLm{*X_dICIr<Ox8*>0VsR4TB8vP8^FDLA*S!W zl&{nq=ZGgGmL!Z{bvUkz8m3(dJ9YE!*R|FIiTfugLQY$F3w>X)r1vzSk)xB(>rpHx zP0T?d;^-F-LJ)`+TpQ2c_-$ff-7B?69fHKpj=Q%V;5LbS{eH}-SQ7>l>KB+01{hxK zvO>ab{!M0=Y}TcY8+(a6oY^}ao)X#b$$m{-u<V_((etb~c#ch2!qP{(er#$2_K1*O zKP!~H*vZCTYR13^2C5~HRW|k;fz3wFUCm)kf!rTl{8HRKKhM6l_$6G{1P|n;Ht_D( zRi|_#GhAx5r)fVkjN92W08zDBy21tIBW{eV&OcF|^LYlte*3C(ktsoZgU!-iN*$kn zgUKgG%w`$K3Hfr8=42PVE|Vm;J7eSW3(Q;OtzHMb2A%9ZLe~8;OV)O*{csBV^iK>S z#E#U*UQd;&*c<h+KZp)Ks#$iF*b&FoW0v!pNmNaK&TB0{S)RrhpQJ^UB=hn~$B#sC zRv$Z(ny5N2*Weq;8V{9v2w+mbR}FYwEVPV%wYIPFeld_>i1=1jno$(B%4E=SiGJk~ zp=v(+gmV%&&>0jrMENx!rAhHEAVZYr^K2lw$Yvlp)icmRA6f$L?&T?jr1>*@0fd{T z4GyN^jtKI%?Vnz7yhu4X+OZ{wmxR?Wm%6cw9b%s1?u`fI*~N8n>|^olXQo2ngYj&t z8VVn1&VI6@Ih&f{;90qqb|Lp}2Z2~G4#;;KX~j@{YHT9Ap=4XRb$3tKmo#CwKb;CD zR3UdTw5`PI5PMHdo!_kX#d9yC==Z)`d`+8!_#f<*bHhr}6rZxy+!?4rsz>M645}B7 zyeI(;xtcW2=J*aXFX1J|W|70h*VN8B1^if}k!Ngc&I^giQ7iLqhGr{!hCXZMyrJG+ zWM#u7%8j(svzb7e!<t}keT*v;(_hS=Ci-7w(E3U@>k0+Vc65JJ3*#ykuHi%zM^xck zVyXX6E%Vi<w9F^qOqJr0CMdK^&QJeHqla0#U1KsCvP(WPL#RdYDcyXhIz!GABZJAa zu_e?D)-)Tbxmd$3DYlWkDxUkzm_{}KlDb9}y`+LF=QpavB{OOU8*37m7^7yfTB94i zq>=y|PNom8-dh<*9*%4HF`jdkF%{$2<Q1n}(uGs$u2B`|7@7UiRpXIiYvZ5(WIQN2 z6GosCw>vC!$*ScdWU)P9OpL1-d>getp<1e&nZ;ytc6NayV3Dqclf=StwI>mAs#kJ6 z%0*19ZxhAGXl#E86CWUS0tVfLb$>1qY^aMXY)-9ZPVN_D;=yO5!H>?cWo}v0GZ(F$ ze0XMcdDQ*r3~^p=C@YycHD1^g&#>Fw$3Z290`_9!V-}KU9!C%3)C)t4<e*MS0{`e| zcuw#vF2m+*<cmP&Y~%otv5TAyZ5gOx!8|;bvNu&d#X3C5TaMd6rlr?yV3gR%CX0>$ zQL&dDW8e5k$6fGs$8GLR+3dMx>02uTsSk3IoeiJ_eh#mT75E#+pT*zVaj{4?zYh4i zimmo}cLMpYF1@}ikUCdi8$!trE;Mckl4`Xd8Y4Yg+zEH1odugYH>sqPZ1`hw|ERXY zh*WOu9&Qf5ZiQ!YgSfc>Y$YN@tm*tdmF@I{N2Nk?HYVEa7sX@`XT6_}+>heH&kp`} z^Vctfha<_RpIvZ&ysbM-*`hg8cT_r&P_cWaAO2pti&&u8aIJO+ROTo7B%uqob7U+> zQe3x`%YO2%Q7>}XAtS3b#jr()XPS7ec^3pIt_baA-9HE>>eTEqF`vy0aXx<~?<u6l z$<?Aj{#>43<w-T~o?gh8?+%g3%}w0X;Yj`Ny8G?SfeE;&tBo=&{8giB!D>7BxZAut z>Nc|^Qad1}%Jdb1<ay$gHIbvy%)T%c^JlA><sQiK&r=#LQrl6@UzY*7F)pGqo_+j1 z$KOl*{YH=Jb9zjKX+6c5=6YkAOT@vMWq3)c*`b=8Hzw8m5^SwFriZ{>AYcAa+2}F# zx{LSeF|i{uMJnx$i!m{v-?+_mBlR4&2u~Q(-Y^yOXULcg$h*y$a<7Nn*e{7NQ<8dj zE+0DFTax0qJRwIQjIAwqh}R1xXavA$-y?LW^Prnzy0slTaMXg$910#DtSrsrhU%s0 z;!umD)_uLf+TK?+ZpOIOL}K84FD;auFC82rIFQg$JaWj|*b6g~)t3CEYODl-c<9yz zHk{68;js5))}DihX?78)ncl5CAw)$lKz{!yLRO8;PyfmD(;vHE{OI*qhR%{!UUag} z7Atsj!}hc$<ToL#Wm_8BFSXjA(3BtRjH(txzbDLfuM=7FU!vbr%(cD`oj=deZyABv zUYfoqUoNzZ_Pa~yII8xz%}n;o6C@^+KiRQts3EEruZ{(KqflMcUGN*nUHlvzw>ahS zULoT>VX6~Ok|{T!Wh)Npi>`=^S2OL%V<V#zB>HT?!SwfE9No#QQ^vEK@f1mUmm%fi z=!By6=vbbo7@Z#3f__E^Lt4D!)FZn;e^zm1_va^$8X4<T$Wy3dA8S-kHE9IKgg<WY z)#O)BtQ6*3rX8hy@V8E(Hy+t<Z5+#vq1mi=`XGdux)FEfXnkYlEuY|YrrMg8ruVp1 z<qnS7R+9R#Iq`1#Gh{GFmiz#rN1WiCy2GUtl4D#uoDaHod0$BhL>|XmJJVB{h;*;~ zHuLe1eT@|*eZ<wK)6+)Do-&XnAG>aG?-T$dead;AQRn0!U<1?|;<H-lu^PI-hu#JH zjWz7B4_(0dm*~o&Km^Ftc-@C2T92vG$L3+67l2GTiAUF^>;5f}kzvKA#z_K~or)Hd z%IPm+MAYFFfA>I1{kbX5oep6kAre(Rm$eUC(L8D@vwIe&Dq+YicVJBY{Mx#8V~Jk# z{L0@(o?mqtEQVFDqL<d$vX$vOTw+R?U`HCl)*aW-2{Nm52ZJJ~Hu8wDr?=tc^|l&o z<iU?fjV4T7VLR9mzE7K4#5Yw9YT{7CTwD*^HM7EU7<27ZGRzuLcpwG)ZTD(i+p*5r zZqt<fY0_6+jTmcF;In6DuhN`}Zp=UnoMPSnFmr(iNaTf8)6Ae$w04GcVXR$G3!*Dd zu{O(PuP8!PG&{3|%oNMMr{)>EZMd6^Rcn#4t~frDpW0&=_6RoEH0;8FV9N?Kc58C9 z76Bk}X`MAWQCpYkDWs67!(+|6buN!rV;3N|Fso8}@(xnQWgAO$BT}E|IerNd`5fcS zi<GIYF1_NaYmBV>fDA#r=BG7?g{3mebTSH2s^wbIKa!ok^&F&^uL3EXaM^q8NN&|R z+-Fgb%SfV;Xnoz<@r7;zqD68mUxD49hx$y28_C6mCK@SSM-;SIDl^@M)bHJ<Dvo5Q zsX28~;^3XF7EX=U<cbU}*fc}TdtSgLTHz{;+OONm{c?<&QXj2}M(X_1(FjtzXIJJh zeC||obp0Xvs_)O6G5#}82KuoN5xSW>h4IYr(p#VmeZk_>BD&nruS3K4#<LCM60C95 z5p+qrVp+dkR#L*|lAMXbn4bvO87ks(TVs;7op5j6ak;IL%b$sOI9g~}z$>{b(G@)% z(Z44ixu#;}W4+@3r8f`t_>t!`FORdId07Y}bBx}^F-_3^Lg~#lUT>W2>~V3oh29JW z<E~S&%<f05<~>g*FJXgZ{Y^cd(E6f*%7Sz%(onIIGxdfF`|wk-%0ytA4rUeRaM{Uz zx2pE5g~HCk>%Gm?sX5?`GP!hge?pexrTCpX>b`A^BdX?J?x>DxDyWAm`IpUR8xC9M zdR_v8L#oE#X)b2$`Bkkd?YW(~v8}R=cMQ`8Kd6rKQ)Yg&XzF%U$WzwDmPMv+aIzgD zwV?lDxWdSaA*MkaWynbDb{6b++`GFB$eZuhLXLV0i5^YrarT8RPBvSqUxNJx(V7FV zMQB9s;%+wFAN0q56u9V8B>dE%(;qufNka*D@j>82V(teX=1+bZ%@5NgIsF}CFcRLK zaKEaR@cxdiJel%e6%>*2fce?U4~;j_V2i1;xD|M**Z6W8UcuiQ&4`Lf%*J*;D7+Zu zqXpB9w85Q8tv;*RHt~8YE4rj**6n0=_G>SP)aj1Pp#(}B=lY(jDDLm6GVx^pH{STj zWa&+|dC<ENz`lebOP>Ka=q;@TiG0#g1T%D-v0VI|ZwwJq+fAi049vGCkF|7UqpQR9 z6ReI~&Z0{{tYG%-2LqM-yK^FK#}$4(xR0%z)Un6jCD%t{R%`$l+2Z18tjJt}Avl4z zSI10xl!^U_5Z_-0Gq^<N?9A{qtMfcuK|E)DuBf%q2#@So`~(LIFQ*?C0>Wc4#15D+ zWROtJ+r;?Z!ictD8OOd^tt<F?naOCA$w}`Nk4GBFjW70o=zg&6H~bwQkUJXkLe*P% z809xic)?p1r`IwsscT_jSl3Rz5{;SUQgxN*t=Xu(H9cqOtHPXppo8GhP;`cF3smB% zF^m$>ye$~p>S6|tZIOuw(B7MVcTcCgMeQv}SbR;@q8sT&=uN4ajiHwqpx1e19{L{z z6E_t7C}jl^BgbmbQOvl1pFGkiQq0>8?}NBh_WHh-z1r9E0`avxUoynkQV;SZ$4>5w zF|57bf#c{wc-<FQ?;AXd;##QgHG50d3Txv>IjuKCbv4~3)Z(<JS~Q&b&WLyA(C5%Q zP9Bb(J~|dgbuZ5F-5kx$uew1H&;$)SSuPwyk}HIH77ZaMHxL<oTXbBa=7z9q5NfGJ zJl`t?6X&VPZ;J-pAd?e<hs-$gWx-)HE|N!P6}P`Hab~Ca0&CMlimdY$g&x)ud2Ebj zG7#PQ$bx&VjkCbf(9N1oG~vG8+-HWzS{vUDW!qYwmj!v#$s_*1p@6we&faKtYONj` zx~qPiGR};2t#o8>EL$GTE;RmC*@dM#B~+?QWEXOad@nxRCf8QacsR4OGi0Br<s2Lq z53i4@9$g~}&TcX^WymX&8*68}#~Sn-)N4Ysvo<$LDXa-@lL;^ktAcbYtd7&mK$k?e zHSS!&Lmn}kX7rmz6SQg9BkQ4O$3bV;<JXYEk7DybSv;XDL}FpFvc)6>`3W`?sQUn~ z!qB!q5nRmY3l?kp0Gn?&W*=_tr;ok^t_RqNdtM`l!no?z#)56#@U~c_P42r`8Jicy zanIvnHql+<?mSM8=i$Srlkyi+{!vr@N4orEQ-1K|@{*)i8^&Iia5)z1tHQGK3OO(~ zf9Op<1t5>Ordzi^4(BiIQ99>88|3H_4sEBExQAeC`#|RCyRFWOH?e6N{?EC2JF_73 zaC=&Q<FX-mn}c??;EMIgUZ3sI(uo*1?v|ZO&ylbVLkvFiFj9=!&4#Aag}<ytQ{A-b zHL~=LzqFD6tXp3hKCVS<kN?ww&XyKWxxby}?}XnVOx<yNt89z@=E~Chv-|7E*`V1f z*PM}hA1eED)~N_*GSWn_W1CE$GCs%#cS9HRHVMj`-7=dg*1i~e${aRzX~3(6aVl+X zZxgAgtK-`gRk0tq9p42Ip%9}GQsuqoX<J;LbbDGtB4;Z(B8FzWsn5IgkJ~XIPj1Jc z`PpxN4wxV5gzgAP?*`VC22G`bK}ID%(vtLA@S}@*Ls}@*bP6Pw{=X6;o{+v4S(vx) z_|JzJg)ASgnCdMS;bQb)zVNmb^Z!O7YHwt_Ltt2L=2iq(bf9tmjp(}%$n>kMrh@*C zZl2^n1o*)baK8uYfkIkqIIC054UYS;uI;XCb=-BR3+q;RCGHl&qt&$hxa-zX@?H%- zyv_WG<nNVjX1l-({b8wMlCU#O<Xa=is9uq*)~~!fhjRQh45#9JMD#I<J?&A?pWDed zJt!|eiOT+Ow(tLj0B2_##u^!JArq$64YNCXR2J#BbTDr=Wi9dDBr!CyEpHX+5|~;d zGmO<pGrMp!>&Xn>J}feW&c?!HWQb5HvV%_g?+6W1goaZ{2{$pCx6Ei-8I4)z!qbcf zCGMIckGfj^8v6C`g@GzjA`&%w<C!6DfF0#bBbPbwr)bRp@~E7;uHbg1mAU+ng^`0e zyC#PntX)&qDQ0$HW!0%Q5ANrg77?)WOOeLSt<3Yd5@qh`MG#JpD-@AJBC_LkN-Pqs zmmF8%Tuyu|wT?ov2yXfXdCXitH`1G#l<Zs)?MKbZT#?%l)Xc2d*|{RPVe>XqBGIP| zw?Tw^TiH!cZC7|(E3$hg7aA?K`MBHo1m@nMSN<T#)`(Bk^v1cl8t3LJMmCM?ZjEeI z3D$*`>8C75P=5}`-EWWM?u2Mi;G$0B*r-B+W1|Wg9FHm_IM!;>aX21TU^I@qrCt33 z!SPF@WKNIL!Lhdx_;ifMX}Q5E`9?UNVQ?<uu!rOrfulGxKx`KIn2bt2YjQd`8o%8q z;MYUf#-{|oU(m#S5`NQ1r-5VZONOSq!ORT?J%Z;Y)QM$VL#&#h7+!9QWt~zt))hk& z)OG-jFt@Yb<=Y+kznG25oxc<HQ2)-KM)=#^`9u3!_W&4iQ}=>FL%~H=#2{BK=pu*6 zIG$#bKnJTCfKp2`N5`bNU{6?KQ?U@c-Ny1M?vsVyLaYlcmud`fKTn3twXLN?TNvDB z-M0F@e%i<r6Fchdn5Wg#wCKhjc$?ltISCCmKTv$DyhUrvHQjusB~^3E4oPnc#E6nv zrsujld6vXcWSFJIYl=Nk-0~OPJEA<{DS_>5gg`hfy&Yaicn;BqGCcqcOIBkh*2UK? zdqZ+Yxb*m?DWt>PdXr3f(c^EhHl7YCdD2n+p%HO^S?)kt)Y{#x-)ij^J<FarsGod6 zedupqqi*`>;nml1nN66g-PSEP#>I9U$))fdYAiFBD9waL!~Zl@Frr!=O99Mv;h_b9 zQI{>Vq`yI|NC78PQYJNqK0r=U0pUf*R$oAzCX8+Hu`M@^FBF0&_9#RJ3cj_vN(w&s zrDOD|Mmk?}V#ya?mG9MbOEEnvrZYBiz|Or~eC&=*%=x*+@lEV@)MPUxC-PLvgy0if zoj<@X+SLQx0N@QU3FyKa;K&qZkc@F;kk^vStu|xX+Uu|>Ic!Q<yYOw)mO|<VW8PYf z$B%FSnNVL=JkO6!e>(pG&%9+3cUjxF7`?uZ+^BEIM{5R&=Q9ZxBDo#EMRpH)My}eX zVq0yl3ed6GmJ<zJmmcQ8_~AE2AWJTbs*Xikh&K}H-K{+Ib^M7;@7mSFOGybN-;+?; z1}%Aa)amkf*FqPNH#e`${-Uwn*HMtF%lbQX`!uDipDZ<D;IlUUBU^F$;V>c?7ism? zw4r-RDlR>yPB-ete&7-4-s1OeP|2}Lc2kkP(fbe}WZ3Z$s-sC&V!*x^U8WlKK?;ci zRj1jsS_eM%33Jwc_u5S{{Z~VOZK9aqdE?001LyYH0jZo_5LQ}cso`Q<bJ&e>sS>5i zDZ@!FkAPs}a%XmxiS<-&GrI?%1YRw*^&8ZJA9&p@8kD88-~Erb?<}1p6gH-K{*LSF zwRF>54fHPUz0XnlMP3(s@DZqXV{AwZsx@VDldq+0Xa?_c%q2d@>#5c8UY&SSZ-*?> zC3@!LL#G2Vi2r~7H%9P1M*kZC1ds&t;c=Z&QW^|lKo8slsfJ{Ec*nqZ@_egKdz62t zYp4VUW&EE04(Ru^#HCK4Z;%@de9upN73fR4#zR5AysV+002xo)G!rj=Q=!0JK<299 zw`t2j?HvAkxjys{KJ-H$den!017xBhT#0GR)Sc@?e+^_>{sE9Mno!_tWqhw%L*D~3 z<9HD0pGgY_dVu~#Lr(&UcXKH4N1(fPjmq&HkL$E1Ad~h<pj&m??S9%0AUR6sva6q# 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 QDJx4G=uU%_iGExE4^+!2+W-In diff --git a/lib/windows/glew32.dll b/lib/windows/glew32.dll deleted file mode 100644 index a6cc6fd17ff2caff244f40537a9ef061e209ce99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433152 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ℜQKr#k8m^msY`Rg*--r%u+Nw+~$kaqPJ!I2X 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�Pze1h7GieE*sl%!^zVr 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 diff --git a/lib/windows/glew32.lib b/lib/windows/glew32.lib deleted file mode 100644 index 9d1aadb1682dea21ffa12a31bf5bb977bf6d9418..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597238 zcmbS!3!GI|_5aE_FOZ1HjEv04%*ae;CNd)8F+2tboQ463$jhCXJIsYUbEkXnj6nR1 z%*@D$$V`chjLe9Lh=_>Hh{)84%*c$4$jFGy%!r8S|J{3^$9|nV^ykBT&beowz1DZF zz4qE`KhLYjXG`r}69&KO67}Dh`r6vMy4o>Uy;XgFRrqtvn7T1z#<Cxa1``c=A=TVA zj%wB{qMDE2L0<7B`6n)*n!m20LC)>uZNG?Wo*hp9UxrigRD}k;cpUj3z8KHe<JoEQ zZzb~oTB1Q0E}@#g4JWUBH3h%F8TV_*e|90&Jm-=Bw`q8OF9pZ%!0%NQ{0%(*zM7nG z<NAC+gMvNe|LzRZPE+uodnmYcANfansOIne6ufyKuE!}jQ%l}Ar%^C=0(sxwLN(8K z(xAaxDL6rRwhO-xlYd)4{>L7n;O~&-AI%iJrIy^m^|*hO2GxwF;OZ+Vc<Vh>bF!7( zeQh*oXb%k<wvU1-m*Ck$<o<9r)%<fjx%=_#j}!2GJ$`Q|x2-_l1&=`=BglK{JaUfg zp_)@y(ja#juJ_@38~LvsN6zo=!*v%8df7p$`PWtCJk>+~#bbf}K63uhf@hn^?STF+ z-a&&dI7Kz5N8k^7x@0xEi!Y+!zrEzY`WU%OhT{Gys`<AAS;6O}%W%Jv{L2pE?|R%H z$FmdUUcZxS&RkEy^E1iseHOHV^)q)+@Q-?O-;8oQa|qY9<UR@A{s;Ov^)v<lT14)D zZ^G|K$UV4<yyu>vnzP7X8HKdRDLCCs&fYu8`N<kQ-%o?6jhvqoxhsJGzmW0RSUiKS zKMCFZcLzCiCHc4COb%>j&<p0{?@>J4M((uL<bSF_{vGqko%Ik6@*gAT1(%Wk=?OIG zg$}tJZpH6A$-nb*a?T4VIC>kocbCY&>omEaYop-L7vOn?+>I^duYU^nM<{p>_V=QL z<kZY3|1-e<h0)}1*h%hvXHe##UxPB-+C+{sgZ$5KgkJ6k--YDg4O?^elDi#tFa);z zxqfng^9(ue)#P0<4)!{P{Edt7dkb`jvhqfe|M@2J{%;HJ*HdtIB>DG@CGVDt$njy% zn{Fllh6d0=xi71Q4OYnc=6Oh4iN90$jWT@OdE|b6G6k1+Q1F-e<la+DPOt=+H{p5| z&mJM?z%g<L%_D#OO!BtPr{Edb+%r4Kd)d`^{vc?=?*EE>gJCmo=pz4DNdN1-<iG6@ zo^8c%==moXlXE`w`ouce>`n@vWxqF)fAA{uChel&=_|-<Y$A8lCFBgb0Cf-8PaeiS z%I7=Jlf!=ha|Q(`kq_nK{OvTZ75rXD{@D%W{}*NR&!OavMY+E41O?tg^4{_Q1%H5D z425j}JWKwg&*3@n4uxDpN0RfR0u5rAehzyYdMkb(gYO`6b{`?<7vsqp2AdsmH|qUN zymvRb&CuPjLlnIH6l?>w^kUS{ZSXf2;r$oG28SLY?^e|HS3F3;D@W0wmw?CcvE+|_ z7JlL=?zh2yMo@6^VDc`TNzO|~;U1VyEhF#spz{>?Ujn;$3GDiUAr!p29=KPM^Mh6R zjlUnQCpS1og9cp<`vPyK`wLEz^B~fGe3+b<_P~#9g74dg`y=GO4|Vzvs9WdXL4!Ql z(#1Q;xe$7paxuBD+C=_8AkT#dk#?M%@60FXWw4duSCV_lI&%HhxW5<A_K^GPn^A|S zkvnP`IU`W7fW>_cY@}xa4LWZIp27ZJekFO85ugQox)f#b@_XT5VAI|Ka$mcL{6{XP zK_e!Ud)Y>EE*eSh>wsy*9tyTXFBd`HR}3fj2hY)<m%|RO8&AQcJMawtW*_RyXMke^ zY<eW><Nlcxd=&O}+d<gW20UMj=PU5{3<Ya%BKN>;<a{<D=an6}-bleGy2$<MEfm~7 z8o$qw`#Z?_O7OgR5e1(bM()w8$w7T~E<Q@`@2{lb)4+cBv*f&L5jmeLQE=xja-T)r z{o7g!HWcve1k#=$7wv<yub-Ta;B(1rT%W}C5psTdki0jIAm{TfXroY{4?;h$o{Zmn z$@v-T@z=NG_il0?L)&r7R&r2Zol&*q9J(0o)jIq}*^Pp{zj}zAFTggxc$S>kz@L9> z53aZ1*;aB}7Ld2+3j97v?z@JQvk5ddp^m-xPI4DPPnV)>R$h)P>UZZza=v&K1^pM0 zdn06eZ6|&M!@c#mNBZ$g$^F_r<o;<3IhP^r-uvKxU?ct4<2OrRPtKPv#UJb+zRv4M zdA#m=@@|04uX~)F`!2+D_{0+>@|FSf<umbYEq+6XUv}{O0rHkNko%VcepkqO{W$#I zh5M(;n>`M{(H4B*d2%){!EfLiT~FR;P>-(#{?X9I<|oOWu#LQXcH<dr=M9&U^OgDJ z^%1Uz$ooPqp50B}N6*9kz2sa0`L{HXw+YuP){=i8biZW>IbQ|6Hx9*b+&=`}Zyrj{ z!_eDTLGz8b;O{ib4)(fvB{^G1;CdX_)hMTV<Xj2dhhS@4&*1(!@^{`t!JC@M`C1Rk z3F&Ww-rjT=&mO?DV`%?(le29BIakdlZ#U}rRafHo0bD`jst3tm4Gdq0o^~E2XAEq8 z%wYU2Bj;ax@ce!}+kxMp^S#03Y#&EXE$p&(9)3fo+d;eb9&+j~BIg^ZD-XbT)$YeV zWUpIG-uLgP;CGwJ`@tFt?gyUwA>{19yY)9y@IBbyKFG3T4S7FYh~JyZdGmSrTSi_9 zI^B=@dDkxTel!}-PLTKDFmlGWk^jx@xIcya$H@J|VEnBn@5iwBw>0B#KY6_!<UPC< z*CXUy4IYmm9{b5k^4<#@x_T#h2ikD|1UYYoum9;x^1h2Qd+R3hnD75CFpRs1yq}GL z&w+l&K}T;xz3e%FXJ>JLE4d%OguI_0AZI+vxB}jf?I7Quh~F#7`vrXe7a_y=Q{)}G ziM(Gffv;Id&f8a!_c-vq{R{<PYbEbj!1cM2<V@(oA7pz1_3c|jDY$GDIq!fy|N0sD z))MZIl6Uwqawc|?_Z#>vANZeyz9&9G{!dU&Uweq0@1y)Cf%c?*<UFtlaRb`TvCon- zc^tXROXSYH3in&c{pw+Imt9KU>rl6*fX|c-<Q^J9-spaE8iteihKI;=PU9Z>`VjQ@ zBFH;+B>9(INZw1j@CSWPMf>*ZUc_|^$(c5cyq7~)uS6M6yMz2++(SO2_sVC;nI4dL z@e*8bB<I(_eDMi#-+^+Rev+IS$p0!}nRq+mFQm^nPVOYcFGqS1TY+ce0`l5W=e<R^ zhu+%`k~4D}c>&~{xr@B^Ch~_s=P!f|*Pwp3!``mBm%NUv$$#B0^51&|_prYv;LhWn zrnThdF2MB+t|*fw4*rhe{yB1H_2Ta+`F$w6&Q5Y>qii~18^@c-TRfZGDTnY3c9y-3 zoNHk#i}#b)H39c~$v>|L@!##_G>^lxZQzA+ZU+BbLGzs`-zA6#ehj~|6m{~Qh$$XM zJks|xIW34s9$Aem^zwDox1Ss)XAWZQpI(8O@o5SU-bn6j_@p`TtzSc%`!m>DD{StK zXg_~`3GUb7ek(b1(MCVkOTjPp;{I0huDl$78!7nZaQsG};BnN0TcFQ*D2I87L4F0D zt=Ue&uRZcV4*zo<;*i6LqdtB&?w_RKH}{dh7J28x@2tHA*GDOM5_R=m(Dz!<d-68? zf!;S!-tT&doJUtv@LR~bU<R&7aovOXZ3Q{+9#8Hy7gBJf75CtGWIwrIxsSY&H<7dO zQuu?b$+`bV{06OscanE=8@c^6$$8H({6UUyp&Z{af}HD7zrJ%X?h$jn<1BeQx8d0` z{GB0xBFgVOu+2#a$$jchax%-vd+SDA;SZ-EPs3Vr7NHH8G#*#fulEP!Pg_FXNA4tl zI?5y4f$M|heG0adJx2bF@#Nj{06A@o$Ztd)K|AZT9VYLto#eF7Cx0e<^`bSne}w#N zo+3Ys_^%1&($Rpw-Q>@{kAjz>e6NK)<gP}Xb~*XY9`3i3a~Qh*1MH<4y6L<UvZEd9 zgs$HSx%(a^zom(s#VFUss1L29;LnkF?htai;M*>Tj?mX|x>k`t?-;J9$elBp{OcYi zCy%<_3VG%OL;fVLyU1O79=ZPqJuiXZc^Bf@1*_549mnsZ<S$%A&eDbCKGTUm{C*E~ zzVu0Q3h)_!T|j>3Qu5n8+#kfV$I$NGNKQA(zHJq*d&zI_C+}{QP5X1WZYHN^0=fSJ z|Be&5-$71sH2RXu$j`y274Ig$vkgAsN^++HM<;B&_X6@419val=T#fXMO*E>7kcfQ zO@4j`?h(g5b`Saw6LEhE&(JP@X+AlnF7lV$kL%;)FTI-l-OzIZdMwW%cMa^d4E+~2 zlXns7#Vdx9-@S>P%9Z5zK&O?><X=4)e~7tW_Z&HWmr-!#0$ky*-g+MXP}jbBDLMVn zcmK`kTU5wjel_l&CGTtKSM~<vzX^EuY$4}{PW&Aqci1L8+fB~0ndH9Z5cyY)#ou=P zzMtH2tH~d;ncNxhkIU=Hue}Uc#4z(($*+f<uDFEUU8p}RZYTfEh=C9{xkrxUejPdQ z8;n21w#R^XEaZ3#Fue~x%Wr`1gUoMPP0q?5^2W50H*-DikCXF%sN>hbzNbHhd)Vtt z*v{n1<lNYdD}3cOD{v2=wRQseQyu)RB<KCW^_Bg&ZXy5FC9rMS*36UStit`N)8x;Z zO#W%u{i^l2hi?Cky7U2HYC#!%;1=|4j!-~&KBpeP(Vm^xPtHxy)m+e-dy0aZX8cB< z#@`70J44O~=aK*J60V31f)%hk!~}!Kl5_J+@~?+aJAWAN_mK0UTJryOh=La_0{?0F zjXE_9{md7iB>zl-oLerYVE94YAIANi==Z?RKRk?r7u-R?NR-cqR{@JhfpZ1!pP}GY zpyg~J=T`W+*R8}A{_Ks%C_vxQ`A8G4`^n#ex_bTz{N6|IPUv@a0|i4+N518N?}hli z2lqGQ{uXjR3ZH&S3$ADz>n^9@CE$4*t{05N?+xV5coe_yCg&_Lj~a>Vz2toCBK#p{ zpdsXfo=eNfoeq6{><qadb<o~I_BAL|2j%`z=xEK;<n4uCKaLn+73}^6XL0`|p22@U z)Jo2u7Lc>H1@{l4{|I|oyN{etj3@v1Xty4PU43FJIsYDw`=`lSH;UYA??7yEJ2~rT zBc=$*z3~w4_rk_bknc<+uO9e51N(KhpszR$;|h0Eun+a|uHodr7=PbIy?^n|<llc4 z`M*Zp{=o+He{Vs*2-khEiG3)~J*emVo+ke{+sOaXJaS(OAM#R^*^i*p3!(42vE;t& z30&_Xcf>&o>Jd-9d_S%$$$fY;uE*g=F2k4=?BrwDQ_%P<1v5eOz(W+Yz&9V<NWq-> zh%Hv*5BBx$!xSt8#$O&G|M*S{3K!z<R`UN0pYs=#)fZ+^@Wl~G@1)>f;CdYIo>)i0 zeY+@l0CCnc%Wz#w{&QEMpK&F5uU$yq<)g^?9{lNy1LT*0`-XAk{Bkh**!|>gZYFQg z<?yX&PX=v79~&{m>I=yG0O-Eqaq?f$LH-rMek<zW-b-<Rh}^<c<X(aJVfhhq>n4zQ z>C?EvKi7{29mw0=hWmTTZJa^gy7RyTZP7aT)o-AU8a#r$9f*MjuR$LhWqH1X{xqJS zk2dan<lS|gydl?<`|VC#(f)n=2zf7@M(*x;xPr$Y;k%~|A#W&T8@dViXUKaIbo5fx zn_sf~)#SdjK;En1JNiKH>lO4@K>GuG$(sipHz5{bzi)ys-h{aQHk8TQVdQ<0@OK>d zCn@;kF7oa}+;iU+^kwfR@5`v0pI!u8LE4?uDEJJ@e|RT3k3WU$A@W~>di55(J7E>> z;X5t>k9XWk!9>{51?$njhONDHI0choS1(05zZ8C@vK9Tr+sMZlY4DNtxS}jywg9vP z3N~Me`vbTleZ)lkp^x&z%gIN-KlmZueL4C>`|;lXe)2CGhCkTFeqgx>_<q!azX!;F zRV@V%UP=B0*xrNS`!(o!Kd^lb7`N{v=jr3*e*<;#&-dWEncN1X?SRdEX)LZ=$o<~q z<bHoL`XlhC|2RwTUX<1QhNAvJH|t?19|Yc!^Dr(8-#_XA`rDv!%^LDwvxB@v8_0e4 z^W;|0re;xA*%jn&xtP3{ZN@$7=H>7wEQWYJ?Cj-e*Div7MxO`&1D`b-^=8N^@<v@u z?h9cT?^;jZyHV#}c$nOw@C^%L7w_4R`-jN;;4S37Xd=1q2hKMF#~Tlj`(Q2kSI)$B zJFc+xAJ^g!_qChI{RMPYcL}by<BIwO|KPr87j$$lxeq~KQ;A%RV|dRWqF~y5avy*$ zr*9+o>D{Qe(Dyad$o)5T-2|I>-%7+?&rmSyBzd<(57)v6-H!U-d@p&QM%??(v$!H( z>v-~u7f~?xb_x)u`o*>IpSVX{6THTu;9VOiSnxdj5A^xd$rQW?IIf3{ppWMN7Ct}o z6a|YOA^(U+L3RhOr^x@^jTE%O_kRoTx5Ib;0QS_;OU{ERpB#MXgRp~6w381tQ?MB2 z-*qF#ry$4fM<~c2!kE<E6fA`;b@!0hJc5Fr7L2_QMLC0C5kBj^%TSkYf`5RoDxrT+ zfQ^>-Q1JO)_=nTv{17x&uSS~!JAK7r@;`$5`d!35?h_c>#NX>@kn2HL-geyIPr+!! z0Y2)`Xz1;?tMPZ1f;S8&?+AR-m1}UnmfZY$3a%K6XYh$X-G}>|$@|>`jA4$#{b}68 z#&#|u_e0S0QONc$)Wf$A#{EumFMz*upT}4h^n-qtHy`Es(pB)!z2swDC-@kA{}<N7 zPcOp#9`YYV`UsTS8p!(bJIVhsVwIOSVf^Yz+}{kp4IBC~{M9FJqhMVt{vIO#p*Hxi zmAD?n{Kxa~5fd?{bqo0qPlR7X-FtW|dH3ImXYfJayAk78$0)d?gukcBd!Uno&(0_B z``~dG^!{0t!`%~b5C8Rpk+|PZ-oEoFSPwh-+@-j##qZ<r1+c{*!lpil*y`zky#4U; z8wXRcrIp;8%gFoD-Q;#Zjo%ND_uwrUCn!+xRm7wpdJs0-K;FaS@f-E01i$wP^td&E zo^Hk!J`w$EcMkae<XQ6X0rmr^@2&9f57v|W^Vt;KKo~!`pS*+6)h{a)tcH*L8T`>F zP&dAUwqSP`#t9aZzYe-xw-e(8D3eD~pPC@YUew=TjHciRU5MA8!C1jC+&_WqDfodk zh-2~h%O}x)L|cWn-Wv(o9^a3C<3;4XdOXGt&|d!<^=s5x^dI2^CSO6pfjt;2Kp8B! z5PeAal;6z6Six23KVA?2fO286&7+WG;bHQwhun`5`X(rkUo^u{JWtMVAoC{>w;WwZ z!6Ep(x1J{VmT~A$K8L<z1I9gI2jgHb<DgH(6z;7h^51qn`jf}V{RrB+)t93W3E%j3 z_6I&Y9>W~aVT>!*lDBI&x$XPV=Au0Em%#UK!nnd&a*L=lQ=z+QsK28YA|APgf*F^R z_hy2hgwOgUXf^`-o<|Xj%!Ge|559dE{!qtuA#K)h3T7|CoXJuAM(p+N3ov&A+qrfx z=1g{=uXP%J1~$`z*y<;!i+9}$ySM{$BfaoD+u(0d-k(`Ot}}#!>ri)`n=m&r8NO#1 zxftK@KZ|<VkGi%1_jg}N?tQS0cXwef1ZDW1dvS%o8nzMs=q&jkT~GeT$I1UZcz+3b z7O#h2c@Fa)u#3;)_Y&a$F>Ld-TTrH`w=aV1OYcE`*!#nH*2Bv84EfuZP|%Aw<?E2+ z0PL)H9mc~S!uY`5@H@|-Y@a1}(+2pOr^)>e>e!?ByJr!`2G-&CPTW6+7znf<J4&7l z-5#o^VAEB&KTaNE`(V>1lquwR9CrG}+wkmu#7TrQMSWTI1o`J3L7Bqt?nT}&EyS1< zY~=8RxIakF1ITmbV`wL5lQ-u$Vk*?3)&d1zM$G;6jc6-tala95cP%-mQBN9XVq6+J z3ZTcP3OP?q#QjEcm!ZBs@c_B^!fy<^fZUa654W6!U2ey3l+pKK#~HNEgU;Z(nf$@< zs}CH&^(nNuXkQmyM#1;bBmaE(jLV?!^B*Da^{er$gg>+uLne|p`UL7(KVk&XSOJ;8 z(u=VM#J_*vMa~(>whiyBhi+bT4EH<8or`zBemS{cTuIJ%FUI))F#JXv^20WAo;*mw zcG$pB=zLf`><qlNLx<Z>p?_XLKd=*hzmXJtqd?B{pmE+Fa%bL)-$xLG<M&+f*wISv zZKx;n_TwJ<{N{MX04wkeyuUacV@zl93^uv*Qv5znZut!Qrtp6s+lgm)BJP9DeGBz^ z4bu1E`I>e3y$XNNqiq?1-)I9q-a)}G_?;2py$khxE$ZQ`LG#<F<5xN4p?&hMdKSO; z;U4MRZ=qoK)#Qyqd-dB9xZi@lWG@BZK^=ABYZ_7ChJwd;Zbx4dyx(;R1$$6uUet=~ zO8A;}<iGYN+&_!4w;Av=XcOMkLcw=C(B{FGK8iZ}-N)fyPzUdCBJabftDoor&Vv}g zya}=CO}L&w-)SNGr1L4bu!a1`W+MiB9{$K7|70)f!%@_Q`Q-c-V+3cw`=2|=`MrmG z*uvh8c<(9nTi2kx&>o|2=l^R7=6I%IY!lf24PBk^$opi0{QsiNUxPnF89X};{l?Mc zzUm72nic3bg4QLF7vsZ$UynJa!Q@|hIsVq;{tWu9L&+Tly#>c1?-0y40n=lsH-k69 ze-Fd_5#$?+a=0A#kD)%l=m6$^hNJ(w88SbHIiCQ1*ACz~Ozy$+$h&Ya`me*td(&;` zyN)CGx_a{Oh3z6HcOPv-e--`0Ur$D#@Cf>>74pAzlHA9kSBz`9SD;L8dxqRMg3r`r z7}J}8`+LZ%Z9puB`n6>TVg{7uj62AE6KrPYA;e0M<LwV3hH?;_p)O7s58sLQ@Xb%d zf5Jx}n1}J!gXG=zIO4Oh81De4DQGwPps#n{hWK$8`e5+UmqRC|X2fcvP<LBVudX7u z<x%)i_~_R@L(W0Sg|VsNUEp!^B69wM*y}Xv^pmiI1vjDJwwK(G0oRKm$HyIVhYyAC z9DytJkU^~T@l%N97LdCZ_WzQ>_ycdm96=VkxB&0Aq0H7jLhdIa<3*DZ+o9fE^Z>4? zE9i#=9cYUXbGWa7PN3HycaU7f815^tM!dI^+)uZWduKD|9>>Br55fGxL~>sbz2`gO zpZAda1oZTJ@E(o#evLX_0NukY5eFW{GvFv*jX7}8djl}8hwN`!2A}NV3fm~PA>Mxw zao|ky`{$E;)e-VB&l7AsP41XSaep_twfitX3xD~FR`R!Ah;qLVSIGWK=w$w7<SrPD zIoKOf-l%hzJb>S~l6(G0#QTu_)%TIx3!X#ptamGX)NSPaARxE2mfXwWe;-Er522g# z5OSUYrVn<J`y=R$^+nL%asK)s=C)Rm^DJce3~YVrL%2tt4MWNK8_M7th*1i7-$nf_ z>?U`|X2ks4$z50?ue+AqM>gV$XO-t*qo~t8qcDEC5Lf8z=g{2>;JtqZ>K*)eaX7iZ zf=%}U$1kC~-!6lF?je80G;;qAA2jxQ-0vm-eegYRnTcn|$bBBPCT}GF{m+xvv<SbU zvzuXaA8J4w1AG6+4E)`X-@D11`viF_(Z9s{4EH4b@qhMVJY*H_VHf|z@Ba?RJbEYY zw_&XeZ1BHp$i><dm*6YT5bigV|DXHGeZc~ZR{{464x-=UQQ+PP-wljsV9z!1ap!~P zf8c}I8i}*03oo2N@Fu{$4dXwkYb(d%7s~H~v$)?w-V25!F6<}&{}6kzaj9hsDOe8t z=Us$n(AjynlYis&6s&;XsX@N?U5MYu$a^W`hWEoR*m&QC&E&6ILcz+X$QySH`5!<X z{y*s91MA6qTR#OiqMXLVX5YVo{F_Eou<B;=-o6C)(C-J~13pk7Z^9znA0Y1?km06z z6nt<3blF7S#A)Qc^Ja|aY^31kOUeJ<#T0yK2zf2=Ni8?xH|o%bo+tl-OYs|i@0KUY z+W@<MU<(Bw-j6t@iTv+hLBXxt$h&6-V%}Tvdke+|O5|onlfU;0{NeY#(0%T5Tu}#p z06u7&y)P{w|A+H2esmG~kg$<2J%ry+!e$Vce0e?j`#Z_od;zX_c5DUuZaXOG1CGsW z@P~1*BMlhST1(znddOjO2<!0d_owmuNpj%dou{D3Els#TOy0JKaKDF~+ffdP_nq5! z!3Iy_9`?0s2|1s-jNEsi?f4YhwXLw#NjH&m2XwIYW?Xy8os2rL6}0ca6u*JzXNVu4 zoJY>5p~K&g#&tK^qrJG_M9$HX<UMsEId?+dr*6gd4&XuzaTk2;#vAbrbauif??OHL z190AT1Xt*F_uUu^JVD;EW~y2H4Ap$1jodFE#c$Ak|4rom5o@qM@hGl{GqDb=W?c(; zPmjPj)p6WEf_wPJMy%ob<TU)DzTSW``4epWE68^{?D9_)T=8re>fWC~|5KyLJC4|3 z81(RBq<sqZbR1azJfCXrxDd~t#})eh^Fi{4_mX!4?fG!z`?QDqy|~_lxy@DN{bd~P z&yfG+(NuFM-unyu`{QU^o;gL{GaK;iIL1#VllN>d)!fyF>(jWRonrCG^R486yOnCz zqwXHNkGy{z!u?UK2ii{FNj(1y+P@6^%*jV_e}rl_%p>ogsN*?2`{yJ0{Wxr5J?1<o zQ_W|a$vgEBu1}EnuO`HoPhq_6JgT`H?b5#v;Cg`EuP!0)H1zwq*|<WNuZ3){t0(W@ z;PpB1*a#UfzZ1WKW8+@Lkg&@$3#jJv!2gE%xPKD&doUk5k-Yz)9+YcwJw`S6j3;mE zZRDNB`n`L0;QB1pd|@p5IKa`h3HQ6m`|nYz*))!PI);7@%4idO(F^*~7n(pdUqqdl z2;J@3M()%r@Ec`3X#u&bpwoLV!5r3AxZVkWJp^-Es4rha`F{!H4^vS$r@?ks0{fTX zquBW7jIFqT4tj+y?(4z)75Zt{^xz(8yYHi#FJDi76XK^oAr85zK>qAnJcE8VLni-z z%vp`Z+|&vD-bMZk*CE~uFgFE#eC0~~0oR-@h>NZ!|4*p9t#?q(mQmz94nFfxzFT0! z??fHH4m$hlCHPy1@kEsMyCBEb!5CKrh6NYk9zN&Y#}N|%_g2`>!pA5We<A+B?|R_> zS_OZ2Hv^g9O;odO5&3PW(U#qWdz9~O3o*|Go;mo$&#k4JucPcY2Dm<eIVHq=U66hI zI6Pa0zf<HdnTX$@`wd|I`%Lne!bZDM=jS5NH(;YXhGBka17hKR+~0{g;|{dhkHDrk zl7ASqzBv?sYcU4|*`5TZMeC?$=WvWS4I#G^I@oy|#+k5QbLUxd7jGc{sRqnLqD=n) z-F^$@`d0YDW6;O9upV(2>}Voz{t^0^kFwtNDDF>E&9@uKyKxQqPah%gBO~#97jz5^ ze}y0W6zpX;Z0(K)@}E73`z_@EZ8y~*F8A&nOWs|GXI?uNzt>aE9>ktk-$(wUVYmmq zEMkbaUP?9Jh5xw_@doRcylfkOBaRt|_rD9j{x;}-O)bWDF2OyX-M<olXE9!cKHMXB zQqA{PBHlzSH{m>Tj^p|c2hX0Tng>ec{q<%FCZauk8)BZx7vUM^8lHize;;jD1IqgQ zsE5ue#2c+tvv(oln!CyQ2V#<wDA&EP!S|vZ?ngcS!EAC)b>ND&^^Xg2{}|QmL%n+6 zvzWtJPi_{p_H76464m^0H0l-p79J*d3H;uB;0u0u53aMRX8$m9Z`p$DYK%!ZSnqW` z;&8lkE9&l#&coQmZgM9A=Z|j0A8cy%?eO=5spi27{5<OB$40`xAII-!F`tNhAIEz? z?jq+Gp!s98Eq{bfuSNUzi4MfGupf*WI?p3sTL-`S5Mro*+(I=Ek4H>85iuy*hLh0c z!>HGv8jgFE^COTKV_r3nKo9@y#ouwnq~Q0HixH1Lfmn49?xFJokmF9oXd`#y{$|9Y zqY$^E-TF1!r#Bp;nx8^vKV5;ivI{XO<QlU8zn{nbDXKZRjNIBL^c82|9`wgT-+u)C zu`4m3xtD6tez{je-v>|zKZ6dg-cQcYq1Q)&=LBSaD{Sde=;E!A`RCBzw6o-nUxNFi z<j#g%<AL+D;Q!bna_@c`*C)}RXeIY^kCXc@)W=`UCwC*TmoCKpA+%#XRC8!H{0*?| zK%F@B2)SGDM~pd{YJQ2j^2nv+K3T#2ZgNi#!QX1Cc^vkB#ZJUt4(i27{6_u#RV{v> zBJY;f<llgI{{y}KYBSY5fmrVI`2An#fsM`8492tjsOHzGgX13{?=?jJm@9EzfoGe@ zAG?NX4kMO$&2zBti*dgRb24b-$HB&a1N}0Zzqu8^Pb2n3ef!NB#F%Ki-gc6_dCgSw zB<z0tbGRNS@9pq!|Cvqx*(<2#w`iXx9LDt^dG9!Y_;DzC4T!1S6I62qb@&MC&X5Cm zww`K!Hvw(N1&AS`<KF>e^BTmBYY>kC`_b{3pF#Y019Xe=T5k^e70ZzChW%9Ydz8)Z zcOs75iS^>}70b|fU9pk8&pb!Lv6)o!)RkDTdJp2XLx>-5#c#xFE1~~CjH2LAm!M4^ zjXFCFYh2eMj+}?*8xTXnKOP%_=kNum_mTIv4#bm}<JnpY{ymOr{s`Z37Wb<l&)<&V z_X^yf#QJI?@44%-<`Zq+-(i1$gwOZ@F#R38|Fnr}o?eM~6Mdk+4Z}U&|KK*X@e8Tu zPyJ}Cn-Ftio#jj5SO43EIP*rV-GuCadJb*mBCK;CiFmV%YL3H?d>AqCVbDK*6l>do z>(7W||GkI&-;77>i8l53(Dg?y#aedg=FbP<fA=63Jxetwpc}0J3!XaxUkp8;*hB8` z_LG0?4yyUf1gsB5eLA`w_dDQ&Z^F9SGvxmMK63vy3Vs;tZ->pMnrFc8nf2si4SsM8 zd5^;f{~2ZdSFF{p*?{LKY0xX0!oO{};_ssV@DJ<qFJga3#otJ*TjhTvaUGe-G|p<i zwxu=GFm=w9md57RYg;ml3%MKWYAKVMJ-4aJOsDsY7esRFjJdO~$uvxAorDbe?%qs> z=bw=;SBi^E+3u<HTa|>?+_FkvDL1E5EM*txY8z(t6)O31w!62Gi{G2xH1)d7q?XB< zN-5h@?ktwNGo86yM_aaiX(r!Ou4H@Ka~<*9H!wKUbCu@&vRq*rUd~n~RVt-?TfQGO z;@8+)v+_ON*<~`MYOIR=xl(7LcthsBeYw(dg^(&mT|=D6!A#Egbl{D~Zb&FY;E64{ zLM~g*+0q%rmRvbkv1(6++FLB=G7z<tUlucG`E_JA{l<JueaIyG+PDN`H0kC*)op#9 zow<@wvn*kZv9Bl3%T2tPDYh-iwO16NjXfQ?Wz+h4+U4Si)z^?O_ZG6trxXjtQfs!Y zkdxnvxuAe5xn-GbsgzxwX@j{b93oYOa$qnjvQRq#3rLNGRM1ROT!dNKO0Ja87G!{2 zj47oYlKwYAxZP&P*0<#oWpQE+xpJjcTwawLFT1G5ObaW_WL{E}VR5na?7d07y@lnW zbTaZPG+MGfixVOoRZ}tBF)$=i<D2q}yDBm(qY#AfZKyo?p2aa*&Ir|e>at3%r<^bL zl;^<cdlt*280xvG+P$;0-MJ1Sa!i1WBrw>@N{0bk>q(po%RG-;*(7FU!s1!|mLVD> zxXyK>j|7?0S1RRtDlIwaZi+4iudWTH><ye<Sx+{g2!E%@8k3k>$aRB}LPUq!TjE|i zCcr_?$}Y`KDfXahRYI^b4*rTT?$8g&saAzGYA|&a<*sZ;t`vh{H0JOoVOF-hRHrUd znzI$uyB;}_0}CsP1)0vYvb;B!8FN)<X3QAzSIYG(5DaBEX<{&(=jNd}uUc>m|I4f* zy9gnhHX-2%Ew3TppD!0xg-LIP1+UeEME-p4hTdYSBK)QzGU}OKAP(}KtR1vymM4bo z+PO#}pr*mQ0ksQ_E*iLWXw6xK7C9I|XTNL#Ld4d_`N*B`sbtE%rF<oKE_Ct=9WKz6 zt|Ho4DXNe;X=W}<l(0+Su&RWpCzI>x&$Ji2;p1|3igc{X3x$;B_LQ-SLYvmewWkOl z+mRjzsXD4oQq=={cQW&bQ{UT{t-$xr$@N0>m0Vs1X&19p?5k+aMI?!+Mp2L^t2H6j zFPe7Y88V>N+gFK7HNV0nJm-dNZzEh*sb6i1nFzcLE$Wjw8=@*AR-<BCP8ya-x=aU3 zJJZHniNsoB1S}}BD!K}ayevy(2@Uzh`AW7hFW-?X#zs?a)S?((z>KFNaf}t=Dr-e7 z&Vt!&)W)y?LsSCAtWz|vS{a9nsB&Pq38<cawDwS8cQ39n%Q(FgoePfI(y}x&*AT0t zQ&t>Puq;($)Y-6z7b$sqw!1saLsVU{8Y9I{B2GN0s-i@bON?A8$XIfw77@sX1{N!a zu{2_XG{I0DcEJ)xx$b;VXHg;FTr4bKT<p2FvlE>dU9n2ylmgm!`Hh%vZx6bCdBmCp z$#F*}l3=o{AyTV|o)DksOLD&>W>OCQSf-4ivOQmjrQnPZ(y}hc^juG&*uK;#)>5&* zxD@f9uy<LAh<#L`1_1WLG}d&9${!1nR{>1zsltB>>zATuIjh*wSKwZG_PjWIA|Vf{ zGEu`*D5^27NraoQM2SI#!?vPL;-r`#W0Xm&cA*t>b&Bw<1&xTTSmljkU#UIUkVF4Z zekBCNLwq|bxhNE1tm#Fw+gr+&Sq~yp*U=tpEF^nw3Q1>Pm3L~h-;#v^mV`=_INj98 z)Q-giXiQhu<lN$X&z$yLkJ5Q&^0F{eQemtMLunZP$Z9=N*hE+{>?Ik|Z$a3QD+xP~ z8L-5uJsk!pgK>AhR4SG-MU3<)nI{+WvPs5ip}t~h=_WKM*Iw-D$d<&|LS37+;KJxb z3@m8l0x{O;CDCuSzRTp*85-@tl&)O+QmHuRRI-)6BrdRumSPR6{IWsls4<+7%XTMR z7*bR@#MBZJHCYp+L)M%{&<;aTL0>kEgaMbbu`E1ahsE`B0l+eYQ&BR#EXGYTTevIj zIw#J1FCpPs*=2LmO+?aw3^q2l7|N8z8B2hn=}8U0<GfjnSH%=Lz)9tDu|3ZmBO5pr zy@9FytOqX_B$HJF*eZG!(jc8h8A^0$Cm@ZEaWJBTFCmdJ#6lQjZYDA<+SHVzMuG`l zI4ITxX2NkqRZ(FdKLs3zANEG2S4>SN+*lU}4Ftv-V@4J&Dh}GN#is0XeH=q|H)W$z zz#=83B{t2)2qO{xLX#GYXz+7k7cCRTHi{_VBAar;Mx)Y+et?~VR&afa<K$pP-L+!n z>2dA0zG6{$Uz?&W4QipdINzQrCec5m067sHRdTcPO2>fn=MEs|jiDtpy|Pu?5EwN_ z4T;c)&9-;3o<<VNX~7Y5S+Han7~*BjK4`^)aloXVv=QOZc~j1zqZ`}Kg3kegS5sZN zuMJZx(tvzeej+Hav50lwUdZ=m`iq6W?p&q|9VtZ|-A0TW(^%$0Xi-5zynFf5WDK8! ziu66V44*iV&}QvwEX(?h!6qD8rOz;ZFn1HDo2I}!bGee<=E>B<Ijxw8W^^{SGCmd( zwn-aKtzrI@0tTfTa{c-CoEEH4YOmz`bIoEvSH>v`+ufTl<T^4@<iduuW4O|5J*<G) zcu$-da%Vp1T0WOk*0_uIVh-<hSTHa_rJ@g8EqN4)y)n0(OQjGZ5ZouVw<DC-Aei*0 zW!serI7!4}2}AgB6s*tEtromVhr4wdtVF1HdDO|$m33`zuE$zZEd1szQ>X@eVf7UX zVL`=&nT|r`Cayxp#a@_|>n@g-PeweNSM4>_U<<kh%=HOPN;(YF(e=k9B#(|z7^U2d zY)?l)H#Stu5D0`pFdajTHPeAU?&3@#+m=gu*9@L8(>bEw%?e1CK7=rr_Y_S-(};Ix zOG~xp)((pCg|6qsGn!VOr8LD@)ozoxx6+kqEB5ttlwlKP)i+A~Ya3+#j5^dgCG4N( z*witfA`j7881YdJj9oDM&GM=czody;r?BGcol@*w&aDsXXvkKwh6S*W_vBn>5wr9d zRF#qw^-JTIwK{7~Tjd*ym?oHj#ivUrb#~@^@|EQcQzX7&_PJtCxg%*{Swc!}l{Kv5 zPFX=9IwuC-km;CY_(Y|KLHWfP*AJ)KbX|l&ytW2n3RVD=_&iIa5nsgo5-GWQruOu8 zPw(v${zUeCF`UlgV#KiUYYGU7SD(Tx$rp{47T64}Jg+G;M#Ej~PA#1fb*;)ferlIR zmLjo`*s(RH^bNSf77+vjD`}#f(Fj@AsX$P@V0#JWK9w|=lR0HRQf|0xSyR!-U8dWz zZY9<i4?!hjx}*vi6^kN7qPKxCa7|>&?O8PMO8JKhsZX9-Nfp%v8e9?{FNYJr;dHQ8 zDHS<1rAmU-OI6m&z1%WAS*R122J=2)Gp6yKRATFAn3F_!SH|>4k1^WJiZgu2>IxR; zikLtwEe|{J^){tpxd4{e)Jo_%wwahfVA!T(ic5BniPE@Fnu3O)q5&69Cc<t9*4vlq z6+v94H=5>5`fHL}LwL*Tbb!3z*bqkqQntUi02YIh7`;%1M;FQl(8AbSu3gc}uUMmr zUSdF+S{loiqB0oDa+--|Il(l-@oT*(VjaLp;`Kvl@Vc`VRnyI-d=XQ~m~c!}N%(v= z%dD&c(s;0rwW^Ux1<Wq6t}2h$G>wGSRupmFGFj71bT~9#$Rb3_kFB@&_Jnwlimy<L z*&E7}$@9{hR?69Nsf_z{&OCGMNvC9cSsgVTs>xp|JWX>IQPX4eaWZeOjNscsTs9nz zkTs@>k5*vHRfUn_J#Tc~#5%-iRh6~ocIV6O87xb|(nERbn^Qqah**G4xXHO$Dh~w^ zjqxd%SWb?Vb+~v#qJWf)g}=pZq3UZf8<j__OWvG`d1*e7tyTk8q5{5sYA;C_^O;h- zqjDq4g-ar@kvw0m5<a4@f`fH9w5jE|s;+mU0zIQlut^d4h~`G>0I$yvrW%%fRJ z-zkvu8f4THsr@(d#~tix`2s4ZG<vJcq0YcC?kt$m?QtHuV2IpI!_pW@qr8k%8XaZa zMn|NLy>oR%;x=MNSQB;<8)OJ4L}h#uS<E_AP-J>VH_G1XND!GsqZNq(#g!;7F3b3h zL0>QH1R|Sm2<OxFWqpE!1w&#H>=m}GfU82$ZCd7JK3Kz0iAp|}kV`QKgNWhEtJWen zJgpRLT9Ry*;b2or(+b(eX_`VA&nmaGiQ8*uHO1`H@QLB{j5@5Ayv&zprGz()tWmCl zV$SlO_IcStU#=_z5vuGJ(|U$8l{oVy3Yj8bqY#TBw8#QZu__0W>cmA8Z^5N-R{bkW zLWD4db;~R{W3GIFDV;UzvP&gc#c7BI7@>5TcDBkQmNCH@TdSZXc?FK>x-2GHizSN= z=J8co7D*)imMfw2Z4VbJ!~l|)O5qX;+W;5rELnpX=aqrYX)_9kIUuo2m$$!7=Hz3T z%)F8ErrDy!FiU)jz}nSgx>SHBz9*^o*Kta94b$dZX++6QteGn1il{O@Smd1ymnA@Q zyl0o`;ZbI+lXMVT)m8)^V@%v?$x194^U!Q21|g)FG^-)QIuzM(4pSaGj>RamwFua> zpp4ojsnJZCWhPERSZfHtOCkoCUKAKAjl4J;?32c~B^1mnVO&jgjY4mqghQdYAjC=w zp=qYG&{ys<%8uzxLp^|AW7yRSuTGI&0>ekoB201NgryhnCy5g*^7iK1v7V@;X+L>U zEGWvex#<j+g>+;@hY2lrOw|w?k+<CD>u_R`rHC(0Ce|tL#Oy`PtO_#hJt`$HrgE*O z==yU~bf#2n>nm4!Fd31K3udx7SHkpPGWVAV2@49hHNXq7eGM@kLz(EMS(GXE@F=-Z z9mG?cehsn~Z=S%D2iufU8b$k9uFd+li4H=QYbZ2*^RAVsBVyJ^mM($Njok>DcCl$9 z12a#|O~z140!R#-@Q5<jiA2jXYL`$!&BvyyFbq}4wON0F?_h~lDuWHh6^nK;k0_c| z3;*6W9$v&LETdUD*;B?4y?@?uxAIJ2i#`q-dyFb0;7Tkgk(<ZtVTDzgGd5Q841;D` z2FJ<`#S9yLGbkeD!6;HHT|O{lifxAr|0=IRGeF!>k`@3*ngakf@_<p4WMW<~FpfeK zF@aFx)AErq#1ba#F=ea`Ohn8FHtED`WU|<ZmB%m;Tb77D9b!Re%#M-NtV#;jVlXx& z@ls#W>p)P=XN~w!m^@{u6Oq>INZN?q9BUV`nsPB4`%D2W207ETzzvI4Lv^9`Iij;I zLl>)c(FMk;;mVXk9;3l*37s;`5{lB=D3*?eRY9|@<R!KA;dR=v=@iJ7f)VRos`F*i zCSAXHJ$bbPh$0kiNS;x`&_$YB^<qRbo~(E6SXLRMKv#8-iA1)eRt6<hfhv<}S0al{ zu8h@pT1(8J30z`NN4PynrpM7QL+`bnPjnW0v?2Sd@KGs}vC}HZ3}DH-VmK(pm4wwt zQCVrR#FL>%qssS}^kfSn@X=Z`IJ`N_yW5Hdql0he#CUC7991PR*GVWOX~gbW5vpl@ zY=N~$wi5$UV-I%8<U3GDM4yvQ16Kjm*T$lDwIj)e>KAoxa<PcEr$>oS60qqJPV!D_ zm=S9}WHpU71_~qghAvMyvz;zd4r3jb-f=>Q&){f{wNX-7)*Z7*WJ!-#bYYl1Au=?? zfo?JGn=PQr&#Gp{re9TT2z;)HGue(Lf|5{MBBKzmg2gO=goYm7*c8SpSsS*$#fnn} zLBq{Q;gn=uA2z*7DEMHVsG~6%E0m66r7nKMzyY1AQ0y!aZSnzU)whJI3mXSp0UC(V zxk0#>$@U-&z%W2>KJj^s+BDY9oP}^9+ThHG+GF?$xH3kupk;L^LB(ShVj7xmbIl?! z2(O_6P&wF&$l#F|_CJ6Oh{3Yzy4-M1x><zzVvbC2Y{XMUJ@HVY{sycnES|6jq|`$L zEOyXj+Va_?k0UgWC5f31vCl5k&o<gwRgZ=rqf=~&kJ0iaWEQiXWU(@sJ|!Wr7FHI( zfER9<Fh~3v%b}Fv(t14%mU*ZrW*9uQh(tmzc1opUFIUIj3*GdU+HAvHSd7M;G7s%! z<Oy#vAfdVHB$?L+-n?MYqJ3!$(Gboa<AJ~8{$vcSgjoMc)P^#f*^9}uG|{QOws%aG zOllpn!tP@$Ut_`sZhNmh3Tap>hGW}{mR=h7Zg9AK9YxGQMqVo;7vN^k%QVc#DJ*bR z+S2Pt+`0iWnH_7fk*JhZEmKI=>FCJhmWleKfMrEsND+f=$Iv;>rKzq$Hm<7BoO45d z#R~P%5vCW_Us&brV5{dcZG8D$h8dqimthr=S!gtIswuL7V0j^rxogXrG$A;3&3vo} z-aJ*^5~}tSW4<v3KD-+)&x=zN*wMsPd{j^T4%1xR8?CxEG891_=ZXPHORnH#`}rnF zg-Mt_Wy1|JpjKEqkiz_;4S=$jjajpugXpmc53leP%UMJFlk>)!k@=d3)P$JLMPOlq zxujk6a8voln8QA-==nf$R?TDR20F2cO+9%=GI?z)MqH#2oKJ3zvGg9{DhBLF>o_pF zpq~U1D#Eh7j2l&gKxt%RHSh+24_BlLe?v}R`541mHfBtwjQK`=);A`vlrHLk<f=_2 zb;<@JYgaAhgt!PO#4;Kc{`8iqv!*t@ODtbUh*UzPmc_7l{Fa5gq9B%j9XlSwcE*aT zS><2=4x3k{>$uu1!^d2E5kN7jt<U;sB8u}JV(gs2jAj-}MRWUDS6zZ-WV+FkB@KlR zM%ndeYCw%|1O`m=iW0Vk%&H!YqdDeDda!sMNFbsUbJjkRu-M*?xSkFE84Jc65iFJ} zY_eN!XiTBh;EJX5u3&3y5@AWi+BHbjDwQ{a7P^d#u`Jk<U$HDspmFjn4BFebFo*-3 zX7PEzfx#)2CZ^3B17-}Vi<a031#9=?MK1ApbZ7sJW<?w6ujchv6^p3tv<ogKj&Xtw z#u)NR1Q3H~EBCQ?4FfQ0yq|_wgR5dNYG)c1S(F$`RLY|NfEcTk>&3Zcih4ADip-`l z7_}q?PhOHLhNHOC0+y1hbzMbbT7DWUQ}o%>Ti{;U<}b6$q;RQIDn~3XPG87L1G|%F z#TpZ`F#0@7E?|p`I&Brxh?*|UlIjfuhY<0IV<wYJ>(nOw)P)Rpl=@7fDw9&D7#_aj zB6Q_VP&=xxE)ZkIP8SI+#+KZRsq;bsOQo`GnT1+(+VUcuiK!G@-I~onpu5ONcQ9sc z34^B<7t70S2IiyGpRn*4o2X`#+w)k|pf;@XxWYMbFp5`MOQaLv7_OPo5^fufH}+;b z`qh&!O`REaPu-DOt$?dAL`CVs0u^nur)p7VT~yNRjan2L|3H{nvy9-i$}$U$k)rHa zmwY=~Y_m*rqVY~)Z>YB3s4^G_gA6RHu5D;!h8a_jnTmP7XhKKq)I#5|E8CA{<!P@g ziwP_^6!};>3lTyjDh`&&k3}2^CsQ!wKshIKMp*mQp6TjHV46^rn!}Q1FVe4KiFK07 zt5BVnBDSE`IzLjawwlL;YE%rR25ML>*-h@Vrp}o(KXDS+2c8TrF#^!J?1wBY6a%!R z^YsyYX}8=uaM2laKJbh-hBcY0E%8+JSg~y(RFLY5IpJn_QBGVfCk9<i;IhPg&QM%< z@}oU>0xsngKg?hn5+y8CFeOx%x3{%pjf2*iWdtz&mI4?oQ|O9(%1#QioM+FQ&-x)9 z*acF=++WzGRTa+OVZ$Tcd@BdaL^~G?@#VC9sa#2LbeLMlOI$T#PY1fYMyaDijj0oC z#x0k{f<h7d;t`+Pk1@$|sbs>G*-&6A7Ow39SV1G$+@vsUEL#f}QZY_^*#VAQfM!(5 z4Q{r=<xV;Y-(|&w62;Q6sZ5oF{zhZR<mK!fC-tou2S2KzdYh}kQ3}f7mM*cKlfAKJ zY80Eo*vv|)6G5dh{~W!6g)MydHV;zbGExOB<FpWIIEbN!!<r*P9d;O?svR}mOiSQJ z%-N{9a)Lm_pS3aA9uw_xdvgph(wq=er(+kUO2uU4CNmX>TL=-~48V#Rh4M-R+rmBz zwGF+<DF|%Y0p#%ui9Bp>rys)hBhKe5hAr=45IP))V-rOBK{KZMw8B-8Sf=)18}gZS zb^v*06rAZtCM%|>;+$b=Ovmb~u6#S&W|`xwYWj=@0pMjiO~qsZTBM_nTrTc6Nb8G2 z9z8s4;0xz1HCwpDCgmJ~gf8E4FOFNbPQZe;2x<7Xdfq*hd8mZUo*-ls{F^JKY7qFq z9}X+x6to4gpaB%|K$ch=D1%^Xut}LbPv_1y;@dnXV;ZlplbJ;l=dc0<XSx=pS(m6d z5ZIa>(&l0>FJ->zRk4z0%uA;vF%+O?>B*se!DJ3rzU3>{web;_a37?!J~$Gf6Fa-q z>KbxWTfF%7JjSBzb9_7>pXZhpr6JHNB+C<GLrbmbgC+5EPg5ng&c(z)v5mh2J#g05 zQ|Pu}>8l{DMsqU1l&AsopW-;wXxb!GNpV9l@;<Xe7tZ?gh4bNLvI39;5gSnERPtEY zsGPmR^eF;MnNCa~7C(ZDMP}^#5%CK=Kg|7q%3Z5uX8^U;l(rH_LzwC)Voiqd)UDIA z(d2Mv#Lifeb{8=0toW>nX_Dh;E2RO|4AQKkOuV?h$buOh#4JlVJ|)kJ3!tpyAfT36 zS0dJ-L?<~10jq5~GGbq+X_p}!wMsH3*CA*v-q2hu*LEl@G$GUNIRTI?Ttdr=&X7FS ztFh`gcuAGYrm^^x0Bdn4LUbyGBR$2rg}zl=!OCMX@yO=QF<K|HS7CRmuv4g`J6JAP zy09*HaaUYoDxtiBlBKcv=y3KuEsx5aWfHYG%$AgSj4L_7K$V!SkmUP+wKgYFqutzC z&nncv5iN!U<Guk74M`ECtO{a5`)1aEL$ieS^c`j!Zg7(QzJ*$*vv;g2e=KL6Y4cKA zI!<9m1L{C(ELm~EE$G<OlvLNLSV$yQ7nZzgOQjj%1hZzLEU~d1GL4HPqQ*zX<5jew z>(B;rqj$v?f1H|UU;2?CFil&RIn^@i@~XxedLy%~u)ELM^VF$^ZR5~s=t(9Yt_?H} z+)EUonYWciQZ*v|Cex4aHNJ7A>p<I+j0kSPt@bgzde!11_H4d@f5ssi$1AGG(AcC% zvt8_tQjC}7P55^jY2i6!@_}_m5v1T#qYCCjn?<nFobSyQ^u?_b2o+(X1)NkMR!Zoz zHc4L9!0lPZ-V7|0!s_N&7N!Tw;e4hoh&@7VP7>W%eI0}F`I?xC?^l(rRj3%O^i2*0 zULvJgPuM;pRk<oxcsDJbjWO9eq3LUQB>rj%F|qhyDf(~G0ALGi9ZDGSQ$#RfNOl@4 zpp@^%Fd`c#!0B*VY1o!AYAkDlC=4))SrtUYBRa$mu@GNpEw#1juc!vi=ToG)&2V^; z**P0})J_%%L5Go^eoh*^M47kwZ1p7{5K@aT<`vIz{%_n8GiEB(up~Z}CC04Og>I2p z)-!?<_}%ytQHF(=C9KIY1I<XcVPuVtbvGvX`6y{lDgqlwRfHI2nnHA(7LtjlW{EIO z-kmYdakOK$4x^w;#3qQ&l|=8DvDn$)t}jQ@ibtv;79si)DeOQIM`!^SBn^RvZP!3} z+r-Eb+s&+0w#KrgF${g7$c>}CG-2cbfk_h|X(ce66A|h7JWXV_p&9*}D$S${M?SNR zp<!S2l0=$a#A(omR2on8CD3IRJN*>xXsonargA!GHsvmqg|@*?XQb5>a8m8Es#I8C zRn8T}{z`jyf+<NMSOt6~w`_5)CzHd5FKO$yX~wmQ6`P5|G}s|pl246FA>>fXK`S`f zR~t>xR8zGoC2aa7J|>)6OO*o(J~P~g6&*NEHnsx^r7?5dFYQ^ga#71MY&jB?RY6K8 zJL(vuuWYCtFM~sMJ;=v}89bKt;y7H}P6c_cL6d+d#a-0AmZ}zIT~eKN-rY%mBQ6J~ z-?RuNen}@}9|qNNsHJ3&KVlYUIoBnYuk#m;WSrNYti~i7IL+R%Rf|Wj&5$h5R#Q&K zMxE+vu43x~UR{ij$yVjiT%OGK-Z!u#$2ugov0&BL#%r?4ElD~BRXv>bWX#ESlw|;B zsp#i`BEacWKh?^9<}suv=CTzfa4s#ZZ!i#(#C9SH`a62FePYB>+c%<$U!T}NL(js{ z&?ifZWhqlJfq@ZrxtL>K(n^0zUq)w`fVJo=v0|2p2m?IDF6X#HcgpT09fMk88VJdt zbqZo-J{vV*r-+y<^sSikGNuGMx)AJyAwGdEYtACLrGl`PCfGp{MolS(qQURA4C4#L zcKunAR4XB|e@zc~G!}|F><GtX)GhKT=QM5E2~;cJ5TrCRmqNof=&zbeNJ=^Nl_?E) z&sC!_2?>u*;v6)ldPt`6q=8cEgjuE$0{P%kyGD|hJWjW6ieNlM)X(-aG_rl419+(z zgQSIohy01uflF2n85k0{EHO?X>Wb#N#9+!aHi22a5(<cQI>2kE&dIbb#~O-ucCH-% zjDgy#wpmP_dB!TE6D|3J#}ALqF%M#75>3Og?By<wS(64MG=?Z#kBmI;LTG!j)64+~ zB}voYGK_{XDr4vj-wVPZkB9)2h6}dIAu2}A7~p#(tP~`P1aj;N;ltEy@wP(AuGxAG zH+GGt(k<o0fXIMkO)=R{mA<xf&8}f;#gLN@Dow}rrmZwjZ^Q{!IN+9zL95n=?IwJ7 zIod(TmviVUW%<MQ!=zx-DlljgpcKOw`DgfIZ`WaI>#Q%HlT)f!JS#VcmZ{SxHD#vG z8I!q+*B6XqwdHa0eDc+cbVVAKHz77=U}CDE^(kSO{+6x}d{!mY#~d6FC2gOQq|5P7 zPAW!;GdB4dAz@x)a9hsJzt(3tz|2|>^_`M+NUGE1Fp3KXAV%#c@!_>_O`({n)&nS^ zW<Ht6w^yn28xnMUMoN*IjR*3fk}&L45@n|ze(pzV^r8wNNhdMtEfsM*bVmmqfLedV z0pQ^>HHBTMy?H$DYGQ-O5@|_sQ+xX3+R#|9cQD0As>BK-d6qfEHoF1e4ZwNdJ=W%g zzci;Vqnt#;ShIyyIF4@)pFokxrsI<BQqY~=$XXz_3&)&t2p1ZQ_|Zh4%BD}3Kh&bC zB=oW*T_$Kca+PepU|mxs&!U_&o-)cq=EPu&_TMCtpkUwfU?=LOjr+*5fJ2%v7^33G zoWpY~pF<NM*r&@(5RzW`$p<Nhm0(R9mWXR>IQ$~pNRnI3I-y&^hLLQ>Z-CIX$@uWk zu;n_0G`1CrVsuG{P(@C~f+VPX{))}-G4p_KW4OsX7&|E8vrkt00nl)6>YQ=tvWBLt z>O?oO1Wl;c`i2-OlNvaLqT-@e7wFmFG1u^<fl0H*5KXj`*SgwLxD)YhPF+jD9hwsR z?0~iQMl3AnI~iKZh)MONgAvLd^5EY#keH~ctOQu)lrfqd^sg=_5||nfwHb0BV;K~l z!@OlAA;z-hFIzKoCIwkZDt@&zBjodOelIo?Db~`I?^zmBmW8!2)CRIs-jFeAd=Xn> zqQhAAmu3@sZthAH?2$5!y<4iPYE@;Mz}X9S+&JtL!@=1?Z&%j#ea9Gpu}45dV9{Na zSJ`Ei$jo*YcWcLsScuB7nP4$h1(8HHS*grEE!Kw<`>KVxb*kzTI^k+}i(d~B)Eb2n zCn(U&(qKGgu@a`@C}wRDz9e;RiY{4ms~re$VQVQPRpE6upAkuwR^u4&uu|J>x6V+L z%CkPL0OFOZ<>+8%>qdT)T8e7fN}UzOqPieA6b_x7>b?OHiZaP1l}TMnnVd`io0FCC zDs&Z0iIL<>=-Z>Kf=|HoNXKF(FBIT~Fp$8%{G-}_D6Zz5C8p*sQ7MZIG~t#W0EJmG zxS%UHN>NlN!5E{dJB1r|lWAS~m~a|PPT4L9W-8exVQk9oEo8L={zAIpkeez{0?s-# z5@xmdXoaX|f(cPXWLRlzt6I8OmlTMpP{m$#a+xd^*XSFf6+G#s#%bGCSccVA)F?RV zyPKhUf(qUGXq}B1aa82hI`S#jl<LZ(kOO_!4CYuB(xJ?{OJ=GJn{BajVR8Y>%vsl3 zU*Q%JNL6^mJsIn?oY;WCDqPRk*M=3)_=;hU4JO1;B~67B+QxByQt4a$xP?WCUEw5= zNp;PUNWAA1PN&3B8G&?O(lCd{$!<{*E3<nI9-;5&gF+HvQ(5Bc6Uym_AxzA?hWh41 z?urzldUW5PkPpWL*_f?-Oo}WRGYeTVgKfwpipLcI5HU<nU>dWlh^psDBa<N#^TXDB zNVBd>>kb&i%QAHaHOwbVkchv$z0}?o1CE}D<00Mr+k<gxOsrl9p^U>cVh37Zhq3R5 z!>I3)VK9PX9D<L!i6ePr&!FK^Kjg!5M+a@_fS~n(NJdsEhJH-aDhV}mQdr9p3BYq_ z^X=Mf{}jGMqaU!t2kTm+Gs|S;QEsR|-l`Y%RLwJ|8p|mnGIS|PF^9#4VjDJ+^G<_O zz#2MPI7U}Vu9d;FR51+N%(ki)yD?J8q8qb3=g!8&K0a5%4`@keUTfG2ly(lZ`E-vs z29?J($v|f;eHokn_*aYj)KC%(*btD)r0U66N_~v!<0BgUsCJxNrG0@}9Gu5KZp2Q^ zNEg0N5k4j?yp@toRG{kAlnTp<UDr4})7w?-L6a@E{wOq+Qa0->pTbc%#x&zVA6*KC zB&t)RSUvz}s-%chFcd{HTS5lLLT?io@G?7H*w}{<(a}v7yFheRt0&SJtgXeP=h4|T z<AC@sX*5fb(OTV^lxi+@p+}NQ=M~ziZMZ(lWYkS0i0YYCNCsf)vR)jq!76Gt`REf% zNC;WD^HW6(y~Ql}`W&kQRJ#uOusSEO@r-(fi;yT*%(Aj(hs|Up`>Mw@B+_Lv_IGNH zcM=A=s3wOxBe$3tG4!ouMcdEkb4+|u?y8)l>?U-P-6#nw^EBvYnV{||6gYNWvx2oz zD9Fp*hnOPPrca|hy0pov3AGA{_r+SLF?wsGCh8<ns2p}}g9JyhNjbk!d{OqgbIfjG zA5P9mAJz=*Jxq|kqQVknI7Wf0iRsL=lMNsRt6VV>y=uv1jgnLoEj%UCwGBFHm35tw zE>ka$QJOnl8)a)K5Nq*V%C~G9IRJ(v(#u#CLNO&>UPT_W%@oPvxKiDaRW1q|JC~45 zN|DUV=hU%=u<b3y8y-b<Gv);Go^<*T>-8x0MNQ_tA|;)#0lqdmOq5g7IxFF%qx=d^ zchX+s8N+#Xg+7-5R;A9m_VGcR(N~fc3WC4!P7)z9%fnhCg^h_2icsEIZfKG(8AX4$ z%$6Nlp%^sO8LJS;08p{PqbifevWipFblCTfqV{kfWEs0u^%t{!<>U-gt2}A6OtD&W zWej^(2hL528v^grYdfJ+co}OotfhcnW==cOfi0{?Af{JK*jp+DzRUv0s1#Vf_>)SS z+M)^*${>ZZtaud?T27t@q{XG^jHENL3K*kNO`k1d){RBz!k$5cpaB#$iDA>LZxc2$ zaYi_L7Uw#nE40iwcM(<W9J3lT56syQOdelct90=Z2e2~i!a~E~gR+xp7*&Ef8&PqL zZ!W}H@hOd-4qZP<Mjq@cg%sz+l1e>anAVUjck#`GT7e*0j6Q|~LVU23jRM#hH0630 z8|H4MpxJB)Vpa~tiq9}(75)G)(hvv=78w;G%69frFUw>f_A>Jsqw$h8!>goCH8E|Y z#6#KVV8=NIkWI!Rc~HjSg5IQXV?sM`Ge;ShZFrhJ3!@8mq^%9Lplm=EwN%P$!V*iH z;FI}rZAMjL+AQ_5PXcmBWENQXkuR~IRe^?&zVJ0;JV{GoRm;?1_<r>DWIYdC`qJ1F zIbAKgl2_UR%sef2HH*B7N7Zr*KgC=ZTL7#jYNS=WQWB-jlZ>xSwN9s+B*yNnZkh3x zM!pJfX;WIln|V5mM1r?Stj<zjRG#EKXVlVm9|lbJs?`)NFFj`Y6ix8*l(qsUgj0R4 z$S+*BVp#%^#p8;E{+!rU#SSF2<7JgHsiT5}J#Ob!K^7#e?)uw|bDE=PX&Cl~BS}Xi zvzW%d*Im&$gm36yB5$<6&3H~PEbm36gFOwl<|l<-)49;IwIc?-P*dS&9d&VHfHqoj zqVBz9HHGvQ%aGHBAWAZ$E7r}PlWw?M3l(h8iJKkWO)w@&q8^yb2t!>fq(!=_JLLt1 zyuN5P%*~b;>4QINJ{=ZIog+R8%=hbw@7rtks(iY`Mn9xrsdyr*`Zco11;EFf&9lg0 z9#<xwt7`#bLVax*1ha*3Ts)R)aT<c6IbFo^h*sLF2J@slK}h@L8pp=kvPlJu-7}h2 zYUp$s3Jni1L6&H*L}L#QK{fqI$k;>_mB#?R9%gOA3F;U$0vhx%HEE;ceu?&?AkGfi zO<|Cbu;#>QYL(2bT{#?;*`F&#fkqk(5nKr{#&X|K7=xGw2--hK0*Op%co3foTCuw@ ztsr@a84-?*P0?VCJ7KFK=gog7+7^ou##~Y~-B=btb>_nI7(v}rV`HH`3;!ZzGyB>m zD^jcXua?M9rngg84_MY+BQx@F7($mK>>7*uW*CM>R`;Ax-8{Cp(6Z#9A^gU)2&#E& z!dqgUfA~r0fnJL_r9rSSdx%a#G6Vy?P$BZh0Mq40e9eKOX3XVa9t!TMJJ-;cEwBox zS)HAU#eYkruE{Moc3~!T)Me~exS?3;n>L=|$x7%<v4fR(tdxo$6${OjUUtpV=}aLF zEj!wyHY_VDanG%#B_f&CKFW7(Uj;7T%qWKuVQ6i523Bs8O_`dCn8fZ!4`s|3Y^Epi zFm<efNS8DQp;z4agezV320EiRjqRuGd&ucUV6lJmn<LhjY}!^h#qt<EbQ?X}XqKIv zA*7XDHF(0N(($3lBG%fgX}r~nW@-==&7w#L5K5#|waHY4>^XupG;il_T6Ux(z7TFe zVeH;RQuP32<eIF0Hjzb`+yl4qbE(8k5z`&pX;L<<kFPWOAKq6P+sZ(+#<2!$t&l>* z&^WZfMy+sA#lU$D019ba8^;CyUoo1obQA)?&)W|63fFcCJ}K|WP-~428aqfzWVau* z#mZTwVCW(taV`jqa$wmdZJi?wvu0>?&IOB6aA7SBM_QR(XpNwv3bVN6Wb<QeCUw1G zJ2%FbZ?H)jb(#t$L;Gr~QMTcfbGU*?Qw9>vr4zhQgq3~Ty9yse?`o<I1!ts8d8aT6 z5&wSytDkL-70A%)XPc2kD!(cUsGn_`j!fr&l~Z}YD&M{~J)RL0Dfn>ha&tIDmEAJN zz~^7%E?zX@TOEO^!ek_X&5>2lZ7MFwZ5=*RWH5_2$!+TtDwz%6siqoMi+SOJRD(9? zob_*1U1T=spF=sCo>P&-EFSO)$wuvawIVX=wt-PB)6%={#%m!@{XGS&X$?xU&0^6Z zH&|)%h@QFeR#haHp)~8PyT(d|TV0&6$E8<bj13J4m07t^dsKuv70VJ44Qgzwf{;$2 z*}C>aqk%@*wx&aSi*XW@dzPKcEFj@C_RZM(qKr|`YiOP{m!18ik>k%nb539QEh;TN zrl!uCiO1LxVlrv$F;2JOOt6Gl@UU_KDU}1ygCVOhlWt#Z-Yt)2fsY?IV>g=u#7MQ! zW}o&bWB5*VsO;EOI@s`~aA8Yc03ljfsx2Gj0z^#sc$A$7s|nn_Mh68eJUEpw<D_=X ziC0$yAgZDQUl<*jWck3|Iq6rorU9g$+Y_B$Z5LTpD~PL@h1UlUwl-3M%||Ljx4@>| zY|WBNTsKj%cOad^|4Lj%jt;1?m|77a{92{1Pu7Y^V>V5ek;^2f%2Lm2>#v!xv}LpA z3z{*j3-?X$B7?W=sx`B#LMZ&B`lPM-RTRW{=&?Ku#_kQQ)HMyL)CcI?G#R^Rnd6oD zpM!Xsh7|yoO|mg{-3!406ajg4SBy^1ssgjEGgGn}sC1>PFIe;zGuLh2!dpEuRL-fw zW>uUw>(cVLDzI%;Lcy)=m{kf>cOVwtDX@(uP4P_H@)`q=u4pZ@st`H1(HP2!O(=z` z{dVy}b>^zPGI_>ZMW({G?qmqV8Eu!XKDN@V+r7fqX!qpQCPuotNNU3_XEuDDDv>6x zoU;iAP*vBAw5lyLdv)0AQZyyESZkrhS}OK(I`d}T?8PwHBysB5fX%M9hD!#<DBJiN z<;z3Nfu+z7jEz1|Z_O!yFjguAMK86geQRlI#*m=y+oCPCRuFL5(%352SXL_}?cDi< zpNfOelUcc`@HM$Za(ZElSi?##$)N&J*{F7z95>D9TB~MM6V<rE3P@qBt=~%+bNy&5 z;G_1%N*0CGQ0&90K>8Y3p#b5ttT{D6sz7R@YG`0Ntx&`qfwt;a<`^!0s%A0rL6yvj zhTj6Vs9q4Z3NZ;Ac*Du}l(Aw}64if(ENx0xld364Gga104<TvNt7`?cM7EEow^*uJ z#8)LyO*YCFil7$M)MdGLeEHapMx&}qsFPJwm8{x|PYh&41)@m^vk6n;`5xmSRgJRB zHvVdoIRPRi86$WWzQ)X!%2(B5LfbZY7m6h2=roBns;V?<qH323WMd{$LSvH@(PsNn zv2M3YR^u2S4UCEuXymFLtr^gSO@Nt$k1Bc9g0(c2bwbn_k<?HbrX(gaqxl6T>XxY5 zbSMjJSc=9rUCHLm5&tR&j~47`EHgs!0tQXloYYi&Qr$SOll4~Y6`to|>np_<X|-d2 zVx6R({}tC-<5b`%iU=(uMLKiHI^k&;WJFT^Op@+DuxwmYjPZuPE=A&Llzq%pHA0i7 z&NU%wm}x{)^(paFm6Jrr0H>oU4=j8cXF_TE;kAv8<neY!t%>Zh2%pQ7S{s#8Y{|X1 z4-1{5CN{)k9pYnDtRsX{0%xxCkX)Arn&p&79<ABA@x?Z(s#{A_l^%i(jaNq{JA*O$ zaoB32u4|R6;o%Y1P44TKzoAf-w{FOAL^=gHUaj0T2&&*}&{~(A45W8y#~5a$b4K0P zIO}hi*c9dIrle!5id=OPli1mq(X!`jd&lU=RK9wl$*Hw^d26UTR8$({TAi_$UZ<yP z)KwE!ap|b_tST@*!5e8roRX&VR><q7rY7pVS-@MJxQ0%x38MQPp6G8WE<Lj<ngUHX zA~jLRtr1pzp@zyROPO??ZYEmhfeO0H@CHHx-525*-b(I&(s!R)voWJxJ-Z^CZVQ^$ zFgdF<6bS!S;zm=VQrE@P$*Z=a<kd^t$f_c1#@EW>l=#SdHS4b{8<_a_L@~vuXVW>V zCS;_lc-SX9LaP^55+DEJhluH1WTB1FOHDM8=Ww`K2Udk}iws*hrMw`OIOZ`NH`Bbh zLS8q8I9kz0(fD*-HL6lZRVU4}Tf@V&%AHl!U^GZl&b*#8VVCYw>ve0AGN~A&eJxTT ztus`#W}1`OD|Kye6o>2C6V~b0U*FfJIR+jSg-3R3r6>_pWl?~lDr+Q@e5z$n!^az{ zm9I=TG&+qkf)@#|89hjx(-D`)7~V0?rwy>F{Hn(yWi#B71uBm*N>t*iq6J%7PgUfU zzQU+SUuBFOo9dJ4n(}}#R^H%Ty6S3H<igi)G&YG`+I&cokZz&nT0>7(R3>-@mDvJH z%vEjU02KZ;ce^W_ox7o0aza(Lbrp=EA~o5Ncy2FFgsfUuB)+ON3T3memmHd+_;a(= zb?=g_l~XdZvXLgotJY5WMN1zuozwtjU2o`56eZj3rGOQW!wqLjiVDqiX>z(Gqpl=* z^@YfS0Y020qrazY3sivc^5Ls#reu5B`Vg&diKz=gwXV%hmmNrh1Bq0+h_+?2f`U*; zRTf4MEjsb$9LOVXvWSrEXH-Zil6B~kfvXH(gA9^3p_xUojdGzXh0KOmR2ducf{0L4 zJV>C8+*`RAHD2LjL@8Dp#vq|eqYBb+<7T>kjbJC1(pEb(bOtV2$y&)Mkj;7w%KZ2w z;bJw#DtV0#ftppH@suHna*vD8Fn}uWRxd^@+0;U&2$UvC6%M8{xjPjjwLSfYr9_)T zl(H4RCdy+JZey7%S;;ab{t|E}K1--2<$Igi(fCG+?9;F%NE1HZfU8iGw$CchRa%B7 zlex|6C=3NnEA^EteceVbOljgfQlihK0703-Z=Z|AW*}y+tyM@X<Ly!0uDqdW!6>+E zOO>voAqiU!6@Sr8p(cik(8XA$JXV<)s#cPXdd3ZfcLY_U%4g3McJlYflmwNLfg>?V zjT8IuTD|&AnG{WBf*C)}Mnyi06(shiGLkVPqSonQL|%Qr0pDe_nwdh#uv#_MV3W45 zTalb$QG>y#E-0@_<MqmO1%hFUYN`P+<fQ5%WtX|a6}3;SRuxMQl(eS&;;zc9Vn?o^ z(p9h+1{+fh_eCir)vSgX5=T{&jA;1rHeoz!c*XOjgT$nsW`{BkHi4%l3wEV^TeM_f z5khcN0pjylx$E*Bm98o%466g1a84%t;G4om!D#wEHf1QLj8&EiQN0!9En6778U}`J zLbEm~;DeYptJy)EMSO=X9lRNM!~|6>vUx6>Oo}RO7AK%<0;_Y>s+LrWHUkLF*J=TB zZft(mtVaY+bt*$BE2OCP%0(lSsyy@|b@~Y@O<*JlWTG;MgE*>+73hXVaxf}zHG>U| z%u}0O;SlEJSLCYDG)%F%SXjQe*dw--sTnm1HC1Y<nsyXHOp|OWR$%2SJ9RaJnx>F5 zY%*Q~kY2E6_=-I&{4=Rao;mH=f(A?a)}HbzI(#_TLxq_bOW6HJVdzJ5h51xNNivFp z&@&0BmZ~3`xnQT~0;{+upaQjw&?>_5V2%eu2F(&q@ny#!S_!i6yjx?xkYO^SYqE>h zYDD>U&Pm{^<P9}2Mjg230>~>lQmLtOpdeECDDkaMEe2r}YfMe$!*z@PXKS{tV3<fm zO&vL8Ta>D11NLb++(+{YF);(0wQ0pCq4=OrIYmTmMeW?4!oWEU&M7TY2vu7ri%FmU zVgcWeDzdXK(Ke1T&Q6Eq)@l_KR1p{y&C}Wi#iaJA1VXynh_pmD&e*A|kvr))Sv3kR zP338&-mjC7kqw+VpO#lOySP>1H`rsR_n?#FiN(qrxD;2UVv8VaEyz^%`EmqM*saaK z8?ID(Q5OcZi;#4^>Km+?ttK#a8789Gr^-zPF=<s8=06gJ2zyP@bG@o(wx_a}EpN?r znA}vdv7S2(Jx8!KWi}NT&%%B~_93Edq0oi}kmt<9EK7hvB;6iuAecIRQj=0RAqEj! zV#-8GL}uaO;rFVlM`YJmK(j7qz5r|Dz8xRmRfubp%`#P>Vd<BW8_=qgPrm!7<io%S zJ5#g}RuH|o(N(pA)xH3zkZff~N%vGzC<16IQE7rg+m;k=apil;OcyGmFW!FZT9q@J zDwP9L%r+`w2%<Q^4qm&5eJWW=4e2I(1a-|ZTM^&xPAhPQxmwEy$f+?OKrYQvw9M5% z<}pU?K0_2<1oaK3Li*VG`Qc{=I*huFoRO|9nH5!N>t&|MgiWU*XVn%epa_`mdAn=3 zV#(n2{X5ljg0vV4Z_2ji3VPY|haz21QsAnEKB<gPTg}RrmgY+A8-j|tiQzEmjk56y zj*^5pQ~Oc%1d-~jRbyv6@^KbDLtqeAAglJ!T<o2W&o%bi88-KoyQ(CsbX7c<D5@@O zSxPn#^D)B7#XcO^Urh<xA_DX#3w8~#(c@^0fK8NDC#p&!OR2?Nd>463mTmqwM3~Z* zYhP*{$c2t)pCJ;Wbd<U1$v5OWvltrD0m7IWZa7|pk&3ShcD3ZAwM{&zk3wRDc(Nfl zQeTP(kH{tCdY$J=th)EZaxbMKr68*A1=*293Ka|7egm(p*?JsGGysLXLBPZsxlpqS zOn=wZkBL4%5c&bN7$F--k=kNK1&UeZYO)D3kvg>S6!TJxLSNKqr()_&qf)Iz&BD|& zYYJ5awUmY(qN!}-y{KGFi%|fj*mqR1&5}uFG=SRFwcL@|F(0#t^;b;Irb02*qsXkq zdj=yD3k#hFaAXPxwS8BURCmCl;&8PncY&Sfz}(cdj4!?5bzT;8Q=n>gE@iJ$YzhUn z>9C<RWl;&FYAb?Z5yHmDGzqA^JGY=%?6$aHeyk2_IM2ncm|jKAK7fe&!U%p2HoO`l zAp@DBn?B8zwB$N-rCd*YjxP-`@-nT2&NAIZ=J4;v$KkwL{bdAUM^9<qEL=?abuM<B z*T9-3sPv0#@!1vCShQrl<E()&-Ag#7E21nM#ahXQn{o9ZOQ&Rtqd;Mwa#4|*oQz>E zb$*#0JtX2j9gD_E7rHgOSafg0p?<x)p=7U50~#6uL!tBMVIdzMPK=1@Lo*Vr7f@f~ z)mV8+gQAzNn7SUga1uZ|3WI{7biURPBV!$THjbMuwB+#Rl#+syzha#5ro5s|vZt3E zt2yalSx<yD6l}?)b;1$eImul`_XZlH1Pj;}!AU7n@IDI`5cT31b~w)P;}Bx^-uzbO zRXY^3gt-T9<0lj+OCEGM3NgJ1`GOQ-%AM-Kr0Ca1E(G6lR}jki)T(I3Wc0kI^AE3! z#XQ;eO0m>7XYTAY4q7uRacIe9Lp|zJO91uu;s23#EpR$i@Bf*ZbDJ4Sk|arzB#9*< z$^8}*k|Zx{7t7k+cGtQjNs=T<NJx?-Ns=T<LXspQ2}zP9Ns=V-|IYiq`|jL!`F;L; z=5x-Ocji3LdCqe`XU@Vdq-H}I<@+P;(y|8j%JO#*z%V6%p|fenNu7BK7kIIc|HXU+ z;>0ZkzQd0BXOZQj8nvc=OyipEJXoX!v2X#1qY~PGU_d$ku3{qLLm>b7jkwMa<h26b z4hrx9w!{{#Jc50M4Kr~Jh@W!kzi7<^*=drQiG73_{v$o`OZ2FZ3m;v8YEBnLDI|xv zquVN@4o&Fm@xw;^<BIh>Fg2zc61prjrypBu@y=bx)U5Pgy;Ge(hu#!>lj3fQf7Ssd zpD(c_9?UP|cd%6gI{u!jN5FkRg0mlZATI<14}_qkyD<zMe*Op`lfl%hGXiJfyN~P7 z*T&CnEpjMfOc=MuMW6^2f<*Ka0Y<>5DE&`_F^b#i^v{E98i7HPL<&_80r&w70l|ZS zp9ZaSVhSY1%Y{)BTB}d&)mkB1G%>ktQ}a>_Qs_Y<`g#f==wTuso4Uy31ydxY++6RM z&L}pu`^2{}6*@i-Qht)TuqptBhy1V#V_$z<>1;m@U=*NJ7}P?jjnD966PFa2xVR+v zPkasQJUF0&m%Z8~M$`hJ0o>y+`p=;Az8A`6E^jSC>p~F=98Bg15I_v$c0-7N*x;YY z^Knajc>ZI|yqzO#b==?c^<5~6F3$_W6E*=m7UKLg2^^A_k5znUrsIwmh%fY$A3?v0 zNsAJ-aMchehW}8s^L10`xWn-b5w`-sUhWKs9F#b}ZZDEhL3`!VvNgTh^g>bi--r;D zejg5AI(UB^<i*f8*qCE-VXTnQHiZjtd=4*^xm-O4DB>T5cZ~VNh{d|+b-_HH`Sw5s z=Inf00I=iET48?adAlrnv`Inh7zYRk`Mh%llNLQ?AgNDGD+Vl%pZ~qY3Gxd%Oe7iq z|Ip7fbiWM_kg{NS7cft8)V)5%dBmw!Kwv_93G%pyj<tMq_&<!JXbOcGpE!OA8*w4Z zy?~4{w1YBT1jhNVoEOu8&<0Qq(eDAk`QZGF3qkbvcb>Ve?ORClOqp-fSfOYHMje7j zkUQ{D9Ga6{i=S*7BF_aAa~}Ka!`(~jLVF1y@9oBytPe#xpn|+l6|Sm$NS)s@dvWux zV4SzRz*s{O4GhNz)vFGWTXZ>+es$<aDc@BNN|zsqclx|gLerOpg9;4W2g^6dSfa{K z8xsHU%0D2_tMQrjMCAo&oKGFc;5c9Vv`&FXo0c2M$~)=R*aqpu-<`ccSb-rIpcNZI zZ~_X@iH2{^5$P%Z(K`s`A0`)$Qb;d>ZOK7g0_ghx7H8D4@Ql3xPyoyP{%eOD{Mv!o z5HG~C(H;n{xC0M37T@!80Rn{%uuud7<Aor`Fi6-e=jibecuwZ1@cAhid2E)0LyckW z>7@wt^Lq)yH?Fbk)b=MSu~)a#;9gm+(lT;8ruNRgx3xFL?v|kVUz9IooPmigKt6!8 z=ZlH_uR01eRm--`?~Qb6-mz2byV^%;MrwvYjD8{IXLwJyg?5+Z=`Q+?`*V<j_nfn2 zVuQd=JU1*Ken~zI6J3UOg>8F9^i|7)T)VW4*h-@Fl@GSNdw+~-zS#Ft9^(7Zt6k_@ zo_X=Tb&KaMaD2<`URnLpdgtI6OKiT4?v?XA5~Eb~Gbs-?4i!7cLL6ryq*k*Q1<OPp zm`RZuo(`KKH{I8_H@$JYW{GEfFNbkS6dTVd9c<hk$Fhorc3aDbQ*4k?k#@dx@(k32 zPc0u$xM9ZjlDc6Qa9X140M_|g=$Pgyl!a<Vy!?%sbHm1Ve?MT4)Wl;#_cOk6`8X6B zuHY{;#S&A6;#S*7O%LRJH4uV9lss`j&N6}<fb&~I;4a`@kH6#@T5aEy<r5qbJ&V@9 zm%QXopi;zed>wcR>Q=Y~=EXf9K57Jg^(f+QZzLrx8>-#ihYtmxiinfiS?_R@+V_%I zL*!E{bde;1QGq)W#K{>~Y$vwkqUN~Kbr0ED0tsN{XqCu72k)Hdd4pah5&bncrh^i{ zIDMk8^TP5ljPp|LFU}T$UXWX22*liyNbmTPEp|IZT6FE~(_00!4^FJ>keCE(3`%oj z5}hL4h$N?D@*)G%G6wb<66q6NKKG0~f4U0UdllVr(IGXvPrFR~p|{NJP#C>&=3;7g z9*)t@OO2$YX65!P97J$`Qf#VSFg!D!7)Xj^1tOWzKgXWv-t{Y>MtVEDDIz(kS@=T2 zcQQAYZ(ShV!*KIdlnTMUPhbz%%Z1<vCp!{jt(+Lu6Ii+-B<9PP-AIh2Z|{sqPVlp1 zsBaevO|k19``MiYePKf>0OZR}6hO)v6o(Xn(^n^4_7mNBWGyB$As9KQ75Fg<MLm|W zbw8TG3&^BqV;wy&H6?;`TAg(R?-Eo#&lcbokj=m&L0JUsn5KxNI8&E~jYp1l^vqf) z>f!UB0bLd8o0<UuaL$(XbQ8oTfUp-*^m~pViQJ6jP8qw^U~p=porNQv*}Hf8Am{7F z$b&c~ZD<5*qZwWb<f9(Gi!m{0Sx^zq7jD=P85tN;6&?z70#SO0@QVj6_we%JdG$pB zytIrAu*bmEftlGueUM^Hy)pfdb2|K<qBHNY(Z-}Tk{Lbk(9?;3)IpVin5`4^AwHMv zl+`OcC)Ewc8Am+!Eb<vw2FAbCmKbPk7!kzv(QR>FK}dWuj}HY01yFExAF`NN00AfR zrQ^%bNbf<(so2~U!CXdiLqg|hf6m6anCDq!pHT%C>6M!~Fs(NXT~u2|GPAtscLvnd zbokF;z!p){<fmd3q${E?is{|GIj7{f`zjc03^9BRl+imaJ(4=a`JC1>^-a>#oUJzb z8)6!_$Ge^f{5ZvD+Pn3?Fo1c^M1_HMk1WnKQ6`Md{{>@Fh`7WIO2qk88s`|t-2u<2 z+-{<CfO7BDlnVyxm5zd;M+GCmN(H~iCm|CI7v%xa1-DXsf4Hd-di!-=Xp-xKhXD5T zd~cROGA;=DqwpF@w~roAiUc7>U8tzX=KZYzME<s+NT1Zy6z9w9T9I^|UzFp_7ryd^ zaC)Yy5Q4PrH8eHbO_d@5c!v?~Fm&Czw#V;x^jgeYbB2R6HN69JeukS>)KK%HpMvIl z9qA6n!J!p`iN|Cn#^&uYH(#S<di#X~S18IwjNaq(6aq3Y{wJp#2f}yaNl`s}M&nQp z4nUN0@v|S1M+{Qe_e{tWg@bHeJH!QYlv~VW&u8$&bi{@meV|W)I)rDN=GB*8oT7hx zGl+PRXn9Cc2-txkAzhGa@O1w-*n<kANm}$2c__h1FK3<0D}eb!{@<Y$Hq<N#eIy&+ z7d(kbcIMznX10Itd;HYO|7Cp6slslB;1DdzWAX6ef9ebT<LS&bQCYFS9T!QCT9*U| z#pfrH$x3mOm-q-bb5M5g)c+B7Xbcl&&U^*!j;2$F<a(oNH~$6qinxYSNN=?~gL0Xg z=sHj14jp_xg7ZXdxhodGggkbBpx(SnbO<3{f_s8P`W)n(=;6V>u#Q~rM*iRXa`)}b zW;|;XUqJH?+YLKyAY8}?orvOph3tnIMXG3ey8%0vG@6giH!(R;X7gYXH!tz+S2aC4 z-Wg;9<as90c{XMZTR7i=<%E&LVT?$xK||s?Htu#7iH=9e92l{WE21z81<^bDae5>t z7LgRye~7}1A{h^~W9rV+K@5J(EO`-du=7#Vt0SBTV0zC(pFR%xJRp6YdbM;2RG)Tm zo@kv@G{yQj+u<WwI1DS@tK6NxDB>V=zM&?07$?SrQA+kfMBOi*35tLred32OB@BS8 zgIGKo$r_a1H`O`&s|eEI+cv+%cxjhZ*nCGv9>>xHz`-wUvRw#f_f3w}PV(lv{a^!l z#e&8}$|fyHU)M)Zv4^7q7<|qL%F7*YG+{@Rhr%UHjL-FBP8R;EXL_&fNFMSM0dFx* zfdXvvE&z?dkiCf3DvV+BZBCF^V)M`;pAmvM#2&aOBf%@dNBl^5uyhe57vQ5GFGTtw z0T)KHxT_s?h{BR4K1d$Ui)jMSHy&{-5<=O|vE;)AO+PlMxh23gAP>4h+B)C(b%~u! z6a7puV8eaGDU{9PaI)e~P^uH+Bk_@4z;@2yW0t}N&}T1#TFu!BUC7Xe_D=4d?GeG) zxH~q9H1CuYU06Usoty?=-D`oNjQ<xDYKO3F6b4o`i-6KP#|7kk9O?5>T?46A1PJfs zctab9lu=#c!Xkv15|CmZek8L`n6K{#<e3r&k_$+Ix(E*1^;ifl!P&=t^x))!_Q|~v zA>>CVJ}Gs623JRud2ywZcp?-+U@+bfpL3CaNcIjTLA2PqQXd?y9-g)F(k-@J9%8Lx z%kFXF6bUc-<!Y#hlVG>#`|;0%yl4kUAIHe~j@?b?!XNbUsq-MVx4ALLp8)VEkp!)J zBheU4tovT>Q|Qa7uu_Gms>29<frE;E8}A;y3u6ap7!Uczj3ebeV-6upl5b>%k+{|n zABkPqq-8-DWaMUNrY9J>;8*9<+I#{<-MYjx4yb}-^u6bVgwf51Kw+3hKh<~B&3Ulk z#QXv{E*uAD1vRqg=WHi+m6A{Mm}eTw?xBc>@iEdAv530^*0s`{Ri4-%e@~Fd1AkC% zYS_A?bGq0C9DUUh@dGqd44(5XGX5fiHw72_304;g=mZ81;o{al=JL6z8bB}4`D0vA zJdwW6X=srg9G#r#$@OsJ1Oa4JoFfFFF7q5i?>!W!U3BTF36y_YYIc*M9aH;)K#A^L zh!wIj?gXXLus$cTrLqYqkl#r3<VLKhRq{9)qR_lq{3v$;T0Hu`aClim!yWvB?;yf5 z_pl<pvB(oi8|cp*xZ-dx5-}|pI(!!)6Xwyk^zA$XUX6~tRWHYWHSX9XLBG%rLR}*V zahzfpNlA+>V0gL!fH;LO3`Dr+Q^Y0&K#y*HC|na2pwKD0HzoT5F$owbbmX=>ZDUDS z7tInp7sDvJEy6>MI4Ke{67Fln-p&nK3T&O@nyvi5XMMg|^SZOnyta1!mZ-BuH%5uD zj$A{@PK$3b@tXn{i?|bHZe8MfB!6YuyI|)$(5}~j*cn7IblT%k-_#uZ#Vj2A7fRgd zegWuc>@|t>>WvhT*X8$h7uHt@T3*>N7{0SdA?5{mp~NYeKdM3`I>q&R*zOdJ+%px0 zj6I)9o@WaiSoBXFMYD}X==LaL@#GWs%{bm|R9P1sd+jAb=r)bGG&pfw^lOvw6Y{-= zGd9PL=!8$ML$G{5+iN)r>nHHX=3QttPwAW5BE47NAZCf-rDpVtF1tpsEQW1P-dT=k zE5ng?X2k^y=TAnzoD0Ho9t`y4LAwB(AzA5Zz0-2BhVMiH5uD*3U8D7=5f{+b&gxeX zVz9qK8EMW=k@I#KO~ZoEiWo{9d=$a9_(a@0l`g8dp74y;^@zheu}?pW7z7r=`a0W@ zU?8zT<G7@bTMxgXV6qYePCOf3<&5Mn6Bb54@83BN;^3g_q%5#C!E-E8l<qFqCI~+( zmYDDWh6Ty*DB6MNN7t+tP5+o!$9F3f)`feL;%nq?#at-9QD-!BaH8AbgE_%naxQHX zN6QV%H{EW`T8C3S{<phuUT=%+%z;gv4=}yPpolJmJ-UaGzrQ4sk?Dw7{QLL<K5{yC zolE5G4+<qkqMumSIPpv<Vi$-~PREvB|0}9golX03Zu1k>g=l<NPy&y{nER$?4ouC( z=9Ad8d3PYh^A1II@0wcwW~l_NT+bA`I|+VT-&AD&3tzL0We^I%1(Fj#<tP4t$2)V4 zHa8K<<qS#=ai*g*gM39DsSt7{HfMU50Rg`?_DA+j%?^W~paeS3_XvvWJJKi1x9>A? zzDgnEM=Xf*%Dkbt12rTZa&t+7F#UR^_ldX`UlQ2GP={k2Wwub8?0PpZnz{A792%Xt zafqUsmV-dNcRwdYMZ_EEAex)Y546tnGAQKTF`5{p6FT|7(gBORA;)%jB7zMaX<EGN zNLKz??_SN2Z{p)QbT^^}NEEe&A-{vb{+_`8J`ahUU!x4`7juWUi9W+cBD$>?=lVtW ziROkZ59hz{3B96|7WM&9m`5H4qF|ZIMH%Gi(^4F_9kPkCK()HZ5zGv_KcI;VLFn{3 zyC`G6dIW&_W;i~BhmP)!kTC!=yZebE5qCA>suw$=@%P@`^XxnXW#I0~`KBj~EG~3{ z>mZIF;Na&v6Wk9b<dN_x9vJ-+4NQw2&_3aEd>1GsC)k4rT0o7&qzrU+_(b#99!fde zF{5f7NaWi(&jUf^Ji)A+mIXr$hN4BB1fKxs!!;VZ<V$MeAqQYox4Vpy$9e}a^6<MC zMr`+Ik$w9m(c3|8Nbv5VSdhs*KL==8Ff`YMxQ>HNfcI@J_l&^{!oy2m^0{FYd{<i- zi~>=2(-@ilsPKf7IV&wI)!A$r4danG!iS9^sws5TzN0ZhpFyH3bmR%7JcCaR%)L4v zw$z$W!2E84)08+4GA?xa-at*?cau;U*jx_98D?q<@QFT=6FslE$nk^-R$-VVg<%r+ z%A$%KUn`}C%mtKQ{_x|6c>DF0W8AZ&>2%-VYZZWWIK<ym81h*|U2<HgtihYi%Nzic zUug0ox*ICrD1`Xxj%D>>>zXPbw)xW@6yA_-!swixnT$URosUi|cNIxa?bj<WEw~pV zpW69Qy<|%8NUTq6TlTstAsG3lAv%kpA6GieS<r0+=iwqJ5!))BmXjI#aKOWkv3M;O zmwM6gZR-!POm-^NgiGCc-*%@JgS+$HorRFYiFmT}7cGjyJDynT5LZcF6ym{uz6}h8 z8UI+siLm_cXN)q=?oaI7_R!4f*gd`?dd`mPB5wy#)9E5z?3-|RH&LY?rLY@NK`#lS z<+#5^iNJ61U>c9cW6AULz3n(Xg?-5q-?mraQ3TE$j)95`WGE=dGfym;h0-Mk#WUh? zqC|JdI&N```2PO_fN?{XKkM$!+<g@gF!p_m_rse)yNi#{n+f;#m5d}HHpFEX!cwkm z(fQzbQ`^qay!#EJ`*5PUy2P~mk%{_Tg#|?g^BEtQHyQ2#^z1jd0C=&L#=K0QH|uO_ zEP&?W9zVuTESQRHXRnm#YOXirbZvQanVD!1njnFLHsCqm$mHkfW2ZnTo(Ko&Sssmd z;^rR@)@~rdGp79jV)n~B-7uyByX(zu#9(+nu1X}n3Ra@R9imv$2w9u>N_JxG@lIXT zE9lC977I`eeXhVo^AEI$@5IoVo0<hsJp%|qFMepJX9U=-TEI?433hykZ@%UBIT8W% z2PI>rJQwb*2bz}-ey7GkxiwDraF)(vL981g=U4Y{g``>YLAZt$dJ1R)FF)$JvA`vk zIE%y#TLHrr_H=rtcd5n&KCTk{V+ldjHI)hUoM8t$^M5two^3ag!g}-!!SNi^u~m4G zqbq9GC^-M5@TY1g)o{KV@nD$mK;$Ql0$~A08~p$z<{{k`{qQw#WKp~qcw`B@!@eX5 z?W+(`@{BJn10Nlycv&(I(|fwBA8O&ma46yTc*5|Du9SO77PhA1<`EA}*K$OBssq&Y z2YkRH&Us#C=<7GqYhbeT_vJje;a%{YXSpXFwJhfg<hV}o_YjBfKReR@SbSNqu#FYS zT{<A*Qt5x$vy$Qs58`wR#ljaGW4NA<3dJS<-DnJ%kZF$tOK>mtn<OwUpgR_I5_i2= z7QE=6%{Y~?*65xH=k0=DJo-NYF7ag|Rtv-SSrza}0=nz(*0{QfrqHlZ9^JQez5%!f z?m`mhPW#b!z#}*4IlUf=AyPm%@B4)fGLBvJ^R?J<90?SIV~B0(^w}^M9PEI;AUs`I z77ZkVFBfWgvqYf-4;^**er!ajaiPe!$-xwB0b@HJXKQDrJT(O;u!Vy0ZTxk}5&FLC z?ZBXW#}gp_9c^(Y1qjdlIWRnuSJOlHqPmYHXXOUO$Q2T}und6`z@l|Ver7)EsJSez zCxu!hM%jH`7zLliAqRoL(mQxB*9~^?#z#RoYau%|v-!X@=PwmIA#Q4|X5K$)T{!Y# zE|wo=fEMjMM|38{D2k7h&2SbV;3T<d6g=_3#huRS4$i=RUwB2ki$%MQb8<3!r(s~u zA5w9;cK7E{!HZEaO7RRS?8_q;I;k0XkzOfYZ_W3<ha!QAbUFZ^C%c{7A_o%<ECc6_ zxB>zXi#g+U{T6p~y|WMt@Xt#&@36ew6+W!&%$yu(_yn|o=s15lz^xiXyGhB+t>x*$ zJ)YR<{)wNXl!Km$&wR@c_q1;2pZ<VIVvAJFkxX<GK(toTn#8+ZJAuTY>}+SBMN#}1 z7;)cTx&2&Qj`RD9jwCSao+<HtLX?<!mt;9>%l@ol0E2;P+1c2M9y^38H#3roJzqso z#>)t9d_&Gq^3y)yBorJi8STN@a~Pmo(>Og{C*gz*()k-gzWFR<jM%51otlM=X_3S8 zaA-Kdf*3Q=Q*;<Hg%m?3wlh0)VKd+IM%NBQ*2+B7j6<{CA`^uZli&-6lL6l?D|0Zm zl;dNe+`*X%qyu~({36LegPnaVa{*GvRt(ay<;eGiY9T#E&;KY2qu}tda}yt`r4}~+ z#GJWfS-&O>4m~Fbs1pwJDhx_t1NVjU(NTvW65S{0n|l`z<(sm&_IE9h2NB1~+-?pD zAm$to7Cn!p2r7G}+JO<D=-BWRZw5OrIMg+YK9q5D=QteayN#UqQD83YL*7rWStHWR z{Woj!`-#iHBj3%Mx&<kK-g#_#nBy29UP2+cgRKw}hcJhuv*Oc~uc?X}XgnuZH$h6* zC<?IfM{XWfP}H`We4XM*hWi5u7f*Fajz%tSN=AQe264*H92)X-7>XgE3He}$9%Sis z1>R_dwd%~iNE*61HWW-jlo8;WoWW_shPgg4&u5tU2!hPw2ArU^cNH=K#M${;<Xrho zSTv<l2n|EwdtIS8eQ;tjPP{xHaa`d^bnNlZm_o;2FtCv0Eed|jkD?QYIR)a)7;1%( zFUDs5GI5T3^iTQ4KG|}!nro8dy4bf+9GA%Wk73Kd1>brnPMk{2P=W`XqY>iJqskLU z>AA$xL*~R-+*9E^(c0PSlc+?H&CQBLn>n2ZWjRN$Vdt{HUGS7!1x6q9-0(i<xLz?W znRwE5%k!-Fv3M)?M0D`2UC0G)xSsQ1lTWsU&Ze6yc>mSJkqNbGCDp7^&wIZ{yjinm zy`(xxPNSzKiV@WxZ&1$(22Fj&pp%(`N*$3j;dg^3Gn2|L5mfS+K_!2alzTu?{Yy+L z|AeIJxOW=&Xso2{-zD`gZBofU462(WX!MVYCZOK^m?UxBpca2fnuq&S4=Wmp_Q^jK zjr&v5$@dwl6OvXclg|7g=`?<u^Pi%1l@w*{mz4LXLF;Z&bQopQ8AUDL71XefqJ{4Z z>T|-NMV3i)MA35G+k>_mFKN@$l6wBBsKZ})=T=3vElyieuWFc7t*)Xu^%QkJX;AVy zP8r2bT35oP3QZMl#J%>PaBA>3V6NxX@MlHSaeoQg>B*e7ml9M4^yqS#pq2X=RX=4= z32xGSl;cs>ze>{l9~do1x#e<`YW!nR#sNlk%Huw8@Awm=xwuz9h0{{pJ5|c0GN%oi zfNNX@NoD(T$~vd$;5Cwp_vdr~b@s18)iKr~mzgvi^&OQZ^}ux)^&_~qtOutaXAEj{ zLea4-NlVc8)ES&=|D~wxEu41Xw}~jv?B&$qKZ6dPQq=PwMWfDf+JyGVEu3~87u4pg zK^1c)?Zj^#PAi(WhS7vC7_G<sWCD%1G3q#sQ~h%W)j7y$5AIEWPSR4es}rNqlO=eD zQCH2Rt+*EB-nbT=(x*u3GF8&XcA%d$sj|kX;q#K%MJA1%$!QweRi;T&I-~LX6=l!j zbovEJ$uDs#^{b*>-0wIWw3sewAL_Zs6>YiLq^<^|O*14_eTCDqnUc=TNB@}fjkw=- z5vNv+(d-u`tpZ)T1Maw4lGfnf)+L-u7BeaDB}qrW<5ZV3s$We|G4N~8*^(BbJs-5I zDA3Q#Xg@4yI_l-lDylOFb2LVfkc`I8mDFsor19u0X$a&3JgC3RXgGd5h3lZxzKv6p zmpP?WQPlM}MM-lw^;h5l;JhE@Cfqx?nNb&$QJV&mx-JH9A62vzSKZ46ZNUA*=riee z$ehKf-;I(QehWE5d&g}Oyw7Mc+U39CRM}=UX_usB;MwxW6wOAv#uiD-8w;v-NKxC? zf-1}fO^X3{$ljillE$Ha;sc2`qgH>TpOfIXix{0oI~V07v}c~h+?)eH{;g<h9YIHM zzq?Sh`c^^7KPgHn&gd+DJHA!Y2Hf9|cDdq;(l2Jf$)ugz&_CJ-(I)7QeJdC>_?l6V z5{zb*QPc)<KMT+49l)!&cj^j7qrn@UFJV-2F{gcH6|F~oALMk=SkUB3%*|Db%3W$w zosx`>Rh6_KdSWr^WxzjHdGuLXP{m6b9Y=i#_`T!}f(`<9+X~=o+%Hy&QSECK4F}#M z*D@N3_ViCNXA1ma0yg+-gURV6?vLC6UjK|y#$}i{=#j<Hefv<a^APaG_@~;O@&x3t zJg4rZ8I^A;XztaV^uM43&_0acx_-c@+2zm|B~6-Cfzvq2X&&k;ac}fBoLWGJhg9TL zr;LM(N&T<o)GY%%tednD_o`okvE>TV(bv{Wco*&N&@Y<>^yYP(%5Rd?q>M?kD|0GW zmeJJfIjux{|00YR?UGl57Hc_GyTYUf_d*9ZhVI3^?d#Cj3`S*VGGgVxgV1@0pMrdi z$Gn55CgT1u+&_wI)I>$&H*-=iGD^9M(Fm0No>esFOHNfMD>{RA*B`*w_^oGoMkS_z zhxc>HGo$@zSN{<@_<86kw0mC7DElSo$!Us~9Rr*{peJT3I)Zz<@Y~4apy@imna!wu z1x9;OZbG@`OVHtFK^<R)Zh?(zwS`fWYZ$FTyY5$vmb@)!1={PjGg>r8LS7*|6)`6} zz{{{#i_xBk_Qr3)o3DUxUzJqmT1G416Ep_pBHZiN5p-H9=p@=D@57wTg^b~v_8_OS zJt4o9ps$8=I*77dA5Jx1WmGB;x?=>VKGy*Uv}?};FQH!PFsC_haa#Bbeya?<g8SW} ze|qGBAJLwU-z&WaIlxuwSLiR??{PiGJXp|9l%?lGC*pqg5l$P2Ku1?$G!gfXq0L@r zv>NSZLj|S(#wi!=`Zs{4XdiOw?FB7C`^2Nbc>(Z3yLMGZ#b*era+jdRsPD!7#SJ;F zm?LO5?p3}KbNB}2bdaDOD3e|hGz<6irv%MIy=*nWTL^xcD`+C>P3A-Yqg~}q^m`Md zrD(6)i24H1{&VPG+#iGcr*U=1+zrS5GK(M+D954ff_ciV&S)m)=M37%QJ=F+Qrnwh z``^Ovn5RBBL;i5B#=V2Mw*vOR+hWkD2BV5A1XZu0XfxU~QEtG!rQ;;Ec^ka440@&} zBdaEK0Irq)Fj|HCOL6ZY+SW&c>MsFbCIL<o_!8|EXwN~rY%NCB-eI(JwV?I*Z64|q zac|Yff)@M$zh<qV)vFX0tBq%uLWWV+{Rp;douCP5cmD*>p{?J-Xb7&Z*@Bv^7qt8Z z$jYbCp}1FK1N3Jd%*(s*15n?Ny7d!u1FpTF3F>ewY%i{qEJ2Gt7qky$-MWk>ZxS^8 z3-HN<f|jA3yjjpL)N9m({C+7Y=|kur)N5=34yc!{51IK&&>85QnW&ezjnQW4mb17w z7WE2GaN4{Lx}^bR3OZ)#c0rA#q+w{!{2KQmBd1UwwL?(<Zv;((t{HhdqYgXKC(6!m zLC(JwRPH4~{Teblf~)*4LB-#bRI#$69(O>0>=u*_-MSz3?R((2HG<522mAqN&R*b; zw)F*k1oXA^WAxn^GK{O|YS0dT!?8N>JDNae428V4fjptU=S|4Y5Y(@Su5Sulah2Ht zy-^juYBR|Aje<@yL6cEm^thn27X!!UkSX|C{VoMPaZN%y3%*u&_;n>(U@or^lzSEQ zBkFU$2CwdbkASvn$*6yMK_gHu+l?`zUiA*x2eh+V0hg-*rxB+S@V^eDeY!FH%6*_Q ze5-D)!4JuTdI~|CQQv}ki#Fgx1%5!;wl`>A479pPQtdl2=V;GESvLj0UoUCjgRu9g zmu?GwPlMc{ER_n{qa1~j^@lFObsY7qcF?uBh7FR`r;nh{?V(Rmwml4a=?j@|3LS%c z<9l&xa~ELYUc-KZ)}WrDOPUP-uYL#U1l*ehSj$n*f^T2<ZpbNM9QsUAmjSqscKy#4 z9Ri$&9l<x7pvO@*cw5k(FBDbl1o`<Azi)$`*aF|YJ*P#uR~x!;^H+*0bcX%B3I517 zMUzlpgnG$)0BgIVHD4<li+Yvn&`G#Texv9#+9^8~ogD)n>;n4ZTKX;g@(GA7b}Op# zjHHx%A;)_Z%|d-I>hr&Y-JgiL?Ft=)ax2QRd*K7zhxtK!JnCn0<-QAE!M$-?0snhN zt-67RC|9B!2LG+W{ot89Id$F#c&M*OIsXk#qsj@Y)E)B#eK2AbYzf-a&`ur=J)Os? z!~^iNaMguvDRYM;y$5X12ZF|-eiql_W$@{7?+mVkjU<)BZ(ABmnsxxbKm@w89_AF~ zyrz;SHbZ>X6ZC~IcLb$+1axSDXP*?*r6tDRi_r#@>!*MhP;bym((0+;xn$U&*6;zR zVO~&Q_JW|Uy`i7mAhzp?I0^LwcfvpGC24b8__Ha{uej#72OnInX!2c{`&7&Y{4~)4 zv4vCL1AF@uXoGh3KJXhb_W3B2?*@$racbL9QiZ<IQ@AR2mQ)4$yx2XGtbU+T6(`nU zG!pfLU7%M`Ht7Vv;9iU`4K}tjr)FId6QaHxr9J?3ei-(vKj?8EY(_W87i`^rw0m~P z+zx<!IEpr|HV<Il(e9ZJ8~!_VLj=5$3?B^j?YK7rcCYO~z{b5bDD!$_Y_mXPlnYQc z%mDm<I2}oWO+&qECUp0B=!#THvrtd&gYiNq%x=zU59+0|5KHt0AEBH%lEYSWD*hnk zte>P-X_7{wK4&|pMh^=*h59<&>-rk{%Z454k2niu-2tHU3iO+fcXHrwOn@y$xd81+ zWucR<gf1V5-*cg-Gk_;btFELmxQ<`1sPZ6;wK{xIlzKf$BXCuEms7Dk*d$!Jn*n2} zq+_UOy#+m%C8^QPh-p@WZiC@d<C<FnFmbQV5Jo$0g}+k+^Ned1+T-eTT2K>oZiRSq zD14?Q#IYzlcR}1%8}mF2FqU(gjIz`%5`Gi>N9ests9O&K2VB-c$U+_Pz^#bU&~7GS zccJ^np`9@tbghZ_s*Rw-sHZ#(*}hZIftKJ`)T`irlO~cni~v8N9ERW4quy{L^j>pG z!*SJq1Ty&s#)PuMDbO9feG*rNk&tt=o3ukrbQ-w|v{#@$@n7KfDCPisItJywbCOmN zas-`#AKH1kqO4Ki6Y%UQTpbL=G-%J3@NvO^T^@rSx*zk0a+p%I3Vc_`Ld-E5I<1GK z5;k-P>Pe4-p8p^ZaWQfhfIlDY`Xv;dyach)8N^y+U<*nj4nut!>Z1_%lz0NZyN29G zIYlE;7r><&Q*;#d9aqCAM?GaM{3y)*R+I;Cf<88()1CwkP}W^2=?LJjLwnpZ$kI62 zo??jU-UELE?n<;rqdo@px=$glt^nTxWtCcj7G4THIvzf4DZoK{Yb*GEXxBfBdllgW zp)C6}bQ-Q=<n#wUg)*-tatpY}p29rC-eyby43ybuA40wM8u%*DAXXR&8>~S_QJ;@{ zoj1ad`vo{mgziG!Lj1T6^#;#^zkWnKy%o5jUiDu_hfuFL3ADKjyawN*{dDNS-LPly zx!0h61U%M=AvUiqsLl*V3sG+|7Whw-)P5c8zzdQ}UIMxQP||3WHC9O)vRl&3wcr87 zzcUdRS?j=GxRO^&I)rlZcbMx>p+hc%oyWBf^@F7$AGH+ix*UEz$}MFu=Gur)ui!Ks z<$}+_|0pX%k94^OzR%N;z1E77+aNEo8Si&gG<ys5Kqtgs@GVZ^+H=36_T3fj`v!b^ zSW@Y9*gsseeg&?-K`*?bsLZR1`r!9N^YH9W=!PTE>GKiiuZC}X6g-Wx#&PHg#2MYM z1Ffon{vW~5gWRsmhK?D`$@&Jo-2pkE1)Qpw_#L`+Hp)?pkrNmPnm&q{<3`w$D>3eB zk`BP`S6TzUbL#1w+E?SW5B^ufTA0^L@BvU(t&Q=bpX7mvBT;YF8gcI=#OQ!=9A*D^ zVEZi0^HTW5D64)7KCyBCGw4>7hn)-hqen6Lgzt0Of^r|q78k*;t>CmA<@TSU&sxCG zFAiOZ>kR6p;mhs04DyIEjYB>CZsb_tgB?cPlKVFJ@+tT<7|(_-$bF20okdJL2jzsh z;KlKfvx$o6RXmUDB<jnbLw;pGWB}K!$)M}&u$_oiPl8ukAVxho1N1KmI_v~JP&T_1 z`sP;1XhTISP_I@BHuMg}6pfHCM7<>9>ynp&ubN<<QJ%rIC>QZF;>7-?p^Kh`Z-lbj z<;bm|@6rnp!=OGMWur2%Ke(!Vq7e7vS(I~7s`ZNUaFr+vzQA<=^^+(&eyV6SuB59m z{~N%24FMM=dkcDPJ@gpLWlLZ;4?z~+fxrDL><h{j&EQKfh3<L{J~YamA0b!uG4%Yq z@K63iUTqER*+ZCT$j|KQ@ckYGPnVO_xe{=#2wU_O@`HCGk9jTN^%QjCe&~W+%vCQz z!*G>f2-|Tv{1wz^R>646Ag6o-co#l)N!T{MD*P4bpW!G^6+;fABKYDWPSfv0e(iqD zFX|nOBW~^vo&SKKji`@#46(_@!1EFKV>iKP!IiWDw!b=T7Rq%flRo3L1lQao=;E(A zRj38O7Ue9IWotuj@cul|C}|@nY7XD+MdWc#z%Ocn{OoGvcUodj4<XM1xovSLa#8={ z-L}XTffh&Mcb#kpojV!wau?(u<-87x8axl(b~oNb*`PD>u9<*&5AqpZ6isyM(4Wn^ zVot7wZoN;@iEfyG=$|HE0*?p4BRwGFUr8GIJ?1r{Xj4!4Tl>HVy%e27IpPP<I9XAX z_u$L+2H&rRJx@_od;{!%D)<0plRn7XZiJ2Qi!t?6v>5rRO^~4-Y0xE2AwL5UQx623 z4#=Nm;N3p~5A(br6FTHU<bxqg$Dkj!XM;x}?<;d)2VaKo4gIj=6UZ5KL}}QRJ<tz5 zo&>Lc2w#rlssf++2GB}??zmQ=Uacx*NP=!C$9)gl;3|0|a=ZH=gVmAmL4A4}_^TRX zdfZzFI*dlW+YiuPyRZg;`exL7E`vYyIOcmlVy1uKOWck)1NDieIGy02&%I7uh4`qe zppnqgS<ugwUxCa%js8*ggq~iB`n(O$Y0%XRCLka7jG|JXA;)k9;_PQJzo;icZy!fF z{#n?iNzm1}k~hM?fDYS&^28GG9dyK)DUi?4F-OpAi%?Em1$~5jBR+!Pjr>*iRLm=` zKC8h`FTyT=47$I7`9!_pEJbrsFSizX8PxT4h|Q-fs`L_g1m$70M?e>B`2=wU?kULY z^7XKbv$0mO5OQsRo}WSvp=(#8J!S*+-e>6lP2@d5qh{dQ2A{*1a@yITBk}|a`M=Si zQ!YyD3&4f1eGKKIIgt0wh+jHG-a(u8+aL>r;mdppen#FP_Z!%?anM)D5$t#t<9$O> zzZLK$wqYJ7L7(7ivK{zuh2Pnh)2TIzsv=j=Z!LTk`0FK*E7*nlDU=hS2PRx8Xzw@B z!=C}SjTjqZrS-@kl-&f`xdwXoTj+t^m{&&!d;$Jxg7uZnn1emwxo*hKZ-IaH9daCd zp})U^EJ8mt8wZ`b75)?SLxUcIXglT>u}O!oAz#oFx!=KW!F*2I4?lbd__!YI;26yF zH;~0|@$3`em-?`&xF+wy+>M1Dx(zmZH*D;au#w|n>%T+J|8~H^wSB1*LvczP1KqhC zJlh-daU6ao_;@aK@7W5-#bzQ82c5DBx}-aF<e1u^aVyxGTj0k+PgZ#jJk=V$8+?p5 z@I_YK34J~p{En;2a`^x4AbaiMZ%#qXfp)3)k@uVmzXiHx>GODQ6?`!0ne2|R8DGE` zgI_Zhe33OB{tEPtg1+fC1HLxn)bn1*G|DD3q4S`7O0+;;^F{brd6*yQpVG4+bMra% zyC1yx5@hHBC;uvGb_t9H`e^!7;E~yY{W9J`+%g?{<v8?8iMeRMh#0p&cnb5m@H)W6 zoUXhWwq*cp7T#a@IeelF=qb!^|Hbfivp|!#!DpD$NvLo906EVu!7I=^$1t}u=fbCe zu4(iE{5Z^M&pCK*8)O~r?WnJO1vJ6@=5pjPF_$&wLS9gB(hfcW>Z38IJ9dI!Uj+~2 z9?gTiU`}_9gg>D>z8>Diz3#7J-YbI#ktf)K`i|AeM^(ps!%iOV1fH4?-@G$?hSwp} zkiR6@%GszV<sv>fjr>|O#E0vU+fa}x@O`6Q_#O3WLm-o=Z=45T%7m^)e)uf-ehK(; zEZWJit<@vY6{s&jnPtIt!PXo=xg0jPa!=U9kFiE%gWi<|Z9+Nj2KZ>WcLG<VV({y$ z3d)0=oml`qG7Nn{CU=a6ef|?M*cnER76V7v>4VpTS5VKp2R!^XWaU-Z)(?^QTZ{Z3 z+R4!6TlS*81iGp?;-?bGIfBndqkRfj`f<dDw_+Uuv0wT-hzU+0SEs{fwt@fWwBdsv zMBkm4f^OqEt?$BV1L_UlRW$5=_yf3C5-`sq$FvytDlNlYp?xL?a`G<L>Yj#v!#y2- zU$OV_`vlA(;>JlRN1}ZKR~gur(`ctW1D&!Q`WwE(9+Zm^_brCL=<q&lX${ceWkJVK zu0wkd>SLg%>#hJ@5L1?c%~^<g7GlW?AHXI<53Xnp7#Q<pw2R$|`|vf?O6XVc?r@Zo zple252cI4FR@WoOhMwsN-y`Ki@Y0izQAZ|FFAM$Bb`^O03B)_lk6VD}s4paqf^T{R zW%pLl|8KxID-9ZLhy8d9>z&X?Stqep1$pQSS!ne=Vi?TZ(!UX7{D?dZ>a*c<9l&!F zPN6T%R~HkxkAGm#t^<8`AgA#!o;`wjc@FyR9C#3O-JW23kHHt$pf|7PGz_}tfDRlh zfYx;(FA{Qk4S1mvWEj^O)Qc;~T}AlrD2rjd`>%!F2A*>*$T#$N+3R6ni=$oze7hYv zyNlt^Zif9Vp=dkCtiFW5T@o}09{Lu<V5O0(xB~KbGh+L4;KO^dW-$-3#MR)pt<X2u z!*|)uXx~%Nk2k?zc@MPN2|u72e5Pugj*f@#dK35xy0hT~=n>SLCBf#l1TQZ{9u_{s z)K=h`o8gPJfo}Q=YmK*K4P-Zb@3!DQtYM6S?mUFC?`aSJY%}IWAf6eIc(4O}`;}O4 zYzo+e1dWIOTn_(nQz!6p6~y=1$i3bJ9)RrDfLv|G`p@t#&`qGrnk~rj+zYzi2c0w; zFn&Y69(th4Ud#`4=$h`xy*!O^AQooNfUYGum4WUYk1`v6+$r4a24C**M8sd0avG0o z@3YX!z2JYrhpCzjy*LRn^BnG#h1~RpFOTvJ%2|^^5BPXvrXc3J68Z0Ph>ubo9|LQY zS7C1ZfVR&go|^_cRUWd`4|?JSz`X%Ja~gDJf6!?c<{0hds*v&B=r<kuU=Q+T0~PJX zy}Fs`?>pdlBgQ@*aTDk(9G#3ZIU9Ns{(hSr=%qYK`)YuP-h>T;KeDwZY#-|DlE8~) zLAxtqPZlA^fq5T~a_Uvkzg;orZpew3SCDH-t1BR`MZ260Iu+wI{~GA=EKXxlUxacz zbd-W$J24w}sxp569JcQhj0<{097X=%G0^B!j#vb`7UhQD5!*b9F&u+UoPqVR0fOeE zUVJ9z;1A?F-@)_gkWY^M7Rm)np^rC$KHXu%2MU_K3H*%mcrK@%TRBzC5Y&AT;t!N7 zw*kg5$kHn4G00uXOvur<z+(_(<r~oHd-#>$&lbZZW&H`ip$_6r)ayP3dff^gjC<Wr z09W`iCmw+x+7^6;_NLK@9UsS<0&GmHzaVqCR-nD>9>l-Hq1XOHjCK-n49byP;oqWO z`)|NM2c5hPHXijcCy={EyZR~U3glm~utN(_U-cj2Ney@#ux%*Czo0#bZh-C{eg^v5 zfWL1;AN~hgp`Lpde034x4E$dVyc=B#UuQUcV6@Mc0{@_1QiIJI4BzWv%qi;Khro9l z3f-bZws3DU${r&igTuh{27I-L;LoGI^D_9R821^pJ3u$|9|<3FIC!}}^u?pdJ3kEG zM45LR)__KU2OA(pd;~t^DEK5Jp;vFm9H8FpF-hr<LiQSB?F9ACcOWk?3OeF3_|~9h zi$>UIbT{U56>=4$5p#S5-{*1YiH`84am_;e1lpBW0~fUSj)Ba~gk3;;{S)W|eoVEG zLD#X+_j6#Y$HAXLJNs4SDk9*+HSlF{^_hn?(^O9TP*z&&*k;iBHR$+H5L12tf9XZg z6z#oe9|q4%NB*GCdgO=~;2z3h2O;B#-6{>j+9B?p#no&dcpW*dj5lDjen4&<_0zBe zd(lpR4!OMpSQ}aheTMqR#h?f3Z6;&h--OLac@jK08}<InB~_jR+i?eSV<<~5f-P!{ zJj_(sbkws@W;B64MZMB0;DdJdSFkPc0op!~{MwIL_e8k{_Gm8Z<=`)uK7jE~gMW!~ zD$3!&i@ksxI%NMe?$urf-vsUSpWt7i+>3J73fR7u&_@RmCr`wlp=S-+|2k{~+M^!9 zJ3m7PaBm*Uc{$MklME_z2sxOKAm^x$M}2u~<bIwrXa%mtgTdRs;Jr7X-zFQBi~3@e zLrS23)GJOgsNZ44<7nqzg186meQ0<66?{0=pcA+^5#<)Nvr0nVj^I6%;(3GCpgs!a z$X5{){06@a^{TH!mZurC1nmtwk&`$IKkg{-!@VX;@Y^x0*S>)LQz#Fj+ylCIK7n}g zeelP0gXSMZZs;#T`%zyq1izhx-!Q|V+2EtCsP99)%S?kh{0)8uFKt4(6Yc5Xi6$Q- zZh6t5ji(Sdp=|pPY<OGD;ZVr!EQ2<qy%}ZyH$mUi$UVGd&{mXNt^<9p2M+&&wz$`7 zwn5XXAZ9~*4eDoaK<@1f{N$Gn>UtyQ9`%)|H+mdn`44Nwn1_QX8_WUyn}e6mVl5K& zV<_vq0z7)dXX}SN9P0be!M4ve=paGvGU3~yo~L2`53x|CR}IQ)1UXs>d1?+{5$$e` zkwY4Z{L4IpYBYt9jItQ?b=hW!HC}@acnx#Z9QoiDST`Du_z&$v^AKybg5QPuM$k25 zKE~4;<(-JrP@lg7xrf&=mbQq;kULHv1zp}AzBKMNT42yB3I4qczH$fn)o4$;2zj&O zl6Kq;|Kbhs9<GI*pr_#%b^Qf8tut)@LhRAo3E!*>VlLG8-3@zqFXFm4@jkADZ^KUC zhc$ym!0##Ku)0A<p?>&&;0>SP4C>pvBX8RP{v)nMJ)m3P!n3%hMX)#We#Bynu}?A? zK0^-jC8&2F54)5CotTQ;?Mu-6Z)4x$Y(cA0cIk_C@P6RSCE!ooJB6!Jf6xW(itk{b zAN>6#10eGQF}8c))8k%=r3TH+fIh7O-x~Fl2cctOvuA^+H}1jSt#`2p5ZAu9@cUlm z;CjNQEW><!4;u7=?L~d`KIk!&GyB5#Iskoo0JQxHeE%L~qaJ+agTNQ{uFDNt4ZUmq z487kKe24Z))SJDJeT*Xn?K_0E%qJnsXm0|I5B?5*nF3y0VNkQF;Mrr)si?2`12p~s zdkLpO|GfZyyAC!1?XoK|&voH@_Jo~7-RcEg>cQXt5PLG=PnWBY+}7prW6++C`Wcj^ zZ$peW0qe@opbylCuLAGm8gV<~y-m<xA3^4KLY^AJXFCjCb_e1N+{<2#asQ4SMI-n; zw}CgCz=y=W{qQ&Xe{4`G_@@U@o??(g_#55V7&HrhO|ieQN9H7AN3<(Hh<>5-+ph)P zPeE6s?EW+2R@57;gDgD+-GnuaQoZ1Rpq-7rt9}BSLaz3}7a89ly5Iq<C*WRtlqJ@K zN5{ZlL&?U%x2S|?;D_%;UH=qxdlGmyf^A3rG_J|x;AcVK=WYP6LeH0jKYAGY{TSNg zC*V2wp#45WpI<{yqnz|J^gsO3lxLCSgg@J1Bli3v#_I|{bR+6xFt!GtL!O=k-%p0` zfN?HHyW|wCgP>k{lYyKU{6Cage<N;oF8HM7zc6Um^YDwV#M&V0B{mzhVH*6Ka-2q^ zUU3)n$W`FG-SFYzZ|YwfGz?ci_?7w|$Xrdt9B7|HeaIH*9{856o`(KKy;vRe54?w? zTr(8*`76+>F6_f**i6*dqn^DDGQ1UIK7w_)dhnf5Ux>2DHt<3V#8D04_oCjYJ!BAd z9X7k?cF5^0&=zIq+u;Yk1YiC>PF=qS?z6GR1z&Ur>KU+O?RP-t9euMD^M(4VMer}* zfvkLEP$l@1xqC5I)Qg?Q+~G>vY0$E2Sf@OLIe}a(LObbOj1TQ`V_<U!!&mqZJ}B;0 z--UU7891GTFFXhH314bH?p4|iS!)0taxL<FHQ`5~oQr!C>Ody;7<3%%^5E~esAp7y zZi0VR@;d{4!mmbo8tpA@Vc$?shL3p?{#J)Bu-$v{ZUfL3<w5vb?cqCCJBu9Y_poaX z@eaz(@U@D=e=Oe&b{%DleUKqsn~OolaIfJHkPq05h43L)qduVn<OqJF1%Ir;e(aaN z46+2@aT)4EkXzXd-*Nq5$oY?;i*vz`+=u<*Ertl14gc}@4EQ$(kv}?s{ojWW!_S02 z2LEv(+8OX2EB<6qg<s$!!X}r1%uYInI1hg0Ox$k-AF|9r@FniAJB>BcKj6Q>pPYz$ z_5X$L_!;`|EMhMBmizGAFtksiPUo;jcN{hkdp^7U3BL^Y_rc%Xf%;s)8h!|T0DrT@ zABb5|UktyqJ8XR3FW}Ep@QvVePQ*Ucez1)r;AdLcyLlYH^@NQqcNjTS_?!I?!{)=+ z>;^r&AN4B#Azu2`pq0R@!FSN}@I5#Gi1~aH{x|lrZ+3oz{yhs{w8atd^RLLu9S0qt zi&vt({s+Xu(8UdZGiW*Xhc4L<-xBpv(7|W0Z+8BVh-LmjTn0Vd9{bv>9EG05C5|Ik z1Nt^QjJf_5zUlAK_1F)868GC)iT&ER^2(Z|aP7x6uAE8ba9xCN12ocUvN^?^ZoX*F zHeWI4n)A&C=9}i*=2CN+`GNVNx!PP~erj$sH<??^ZRQU1TXUDW*Zjf!(frx`#XMsE zVIDXCGEbTRVxiTrxTP%1y2vVFm9j3kuCT7MuCXdvm8~1B8?72vP3sn`o>kwv!)jtR zw^~@Ot+v)(R%h!TtE+Xt)zeD0Qmr(rzm;iaSvl4aYpC_GHPRYoJz<Trp0b{?p0%b} zFIY3JS=Jou6>FaLy7i{@mbKJ+*II6UXsxo=TAx^-S{tp+)>qaxYlpSV+GG7-{b>DU z9kzb6j#__Me_5xj)7Cjlx0$VM+rG%Y#4crDW|y(Avdh~Q?Mn9bb~XEEJITJqzSXX8 zH?$ks&Fq$TYrCy|m)+66$G*?*W=HIvcB<XS9$*i&v+NvukUhj6ZjZ1>*`w_z?Q!<g z_C$NK{k%QHo@u{gzh=K~zh%E|FSD21EA2J*diyhblfBLU#@=P`v46A=+K27m>|^%d z_9^>6TVVHnak`XBQyD5p*V6TL19ssjQ5~vBw^I{pMy-$;>OfuSeu{t}`%-@zNLe(P zhS3Oml%Alc=oy+wQ)mXgL@(28w1D2Ecj#U0h4_fp(kHZmHqkcPPP^$l+6S-i7dlFR z&|mZ~oh3u#nyp=|U8-HCU7=m2Rn)H2s%X`<n%XVeZCV4Zk=8<Mt+mxUYF)JZv>sZr z)>rGNrE59bU~P!@u=c3-gf><iuRW(t)~0DQwO6#)wAZz_w0E@kv=6k8w2!q<w9mCK zw5{6L+PB(w+K<{#+F|Xec3eBDo!0)-bY1F}evy8Oez{&ozgn-TU$0luZ_<<WI{Iz; z9ePu}nciA&uXoV9==bW~^&WaJJyq|c_t!J@2lZTius%$GNFSj;sz0ue)yL}-^hx@2 z`t$m9eWpHJpR2#BzpgLT7wd29OZE5k75XauV||^zLEorv*1y!Z>EGzP^ga4seZPJ{ z|3&{*|4l!x|EZtU|JDD~$uJCID5IEhv2lq}%DBQPXIyPuV^lJ#7&jW#jG9Jm<5r`d zahuV|XlgV!S{iMP_C`nJ9;1tKpV7mJ7%4^{Bh46KWEnX|o-x#T$QWUaG9ELYFvb}Z zjETl%V~X*DG1Hi3yll)h<{Jx*MaB~29b>t%!dPj1Y^*arF*X=q7+)G&jjxTJ#%|*~ z;|JqM<B)OKIBFa-P8fd~r;PuMvxdevGnvhbvl8qwR+^P%<=Hi?BD;=NVK=gySxt5e ztH&C!hO7x|##*sESvz(&>&)(9_pt|9PnOJ5SwA*_4P;p?m*ufx>|yo@8^y-3aqKBJ zkv+$zvT1Avdx_0qudsR8vfRV$Wu};Y&HiS(nPq01gUrF^L*@u`r1`k{g!!cTwE2v= zkiEs;VUK7dwK3XL+SA&z+Vk2B?L}>lHcy+cEz}lk%d{2RhuRwLQ*DFxrM6AmuI<vk z*Y;@#wO_U0v_G^H+9~a<X6RhE^^5fqdTISi{VM$${W`s>UQMr|*VgOn4fQ5^bG?;* zm)=R=N_QAPQ)O|Bewg29{vdu52gOKvH9aY=)VgZrWL<T}7$RR*&lnwy!{RUYk~vRr zDEFDK=z>2^bJQK$5&o)nr+i2%(Maa;vb?c&l(*E5@p8PCcAQ_TU#7pRGVS-Q-^3WI zZl5&1rz`XY+9IumdRu#%PY{ibC#j}g+9<Ct)yirASj)8v`aet))p;YU4X>=P)Y{9t z<rV64{V8LK_*T9vev}WJ!{vAKQS$+_9rZLj(PQR&STr7MCY$$Cs@V-0nep_Md4v70 zl`5Lcp?ns*$vUNfV6~7B@kvz6K5Mm6^VM!^o%NaZrg}>)QAp!!OnXeuFa}te@(D@y zCd;tDu%vC-#qEpjt=8Ap4WgdjTHdK%V>_+AGE4p-_p1Zy3HBsAq>iZZYyvx~j;j;u zZ#7n?iQmNuaZ+rs-c!ZJC8DIbOmx?V>M!U`w1cv_R+rjnGt^z$O!bnQ&FAn}`8@tQ ze}jL(ACc#br&$NpQFT`Lscz~4RZV=#YKjdkNo-_w#3oixY-YEMEv%R7t@^1;?KE|{ zovzB-S?X@>xa_R`CGXcx$%yu^?4|uDQ#4XPTLZL1GE<wYvNfi1HK7h!(~TT8SPfAR ztC6alZSt$tHL8-TqOKHG)hIPuU2Q+9uCd3f>+A{2<`?ne{1TpreNR>Fs`h++wA9&6 zb`86>UB`Z03bun<7#~~p>;`sY`zBRGozuS1A2g3xU+KrJTywiV#5``*Q>XPd@?n0d z^||qnm`Zi+XV@fDv6HMMpJTqEKPg)o6ZkWto&3psO@D!Iv&$Gy$p!2h?KIOx4c^pR zt2I?G8N<W~F~`WT2FdZV7<)#RQj^pa^|`fPYidtb)78D!B>61=K<%~mTl=h@S|&9& zzcDvz!>w<vGx`+Snl=i7Md9w0L#@p{=4R~?E14d%zO$tDrMOC@()ZRp<3DyWXF~B3 ze1J&RhU>+wtzwp%t-iEA(^}ZCsMl0C>jgQ9f27u^Nk(VmUvY}PYA(_{$b;qr-Qwfu z6V*=pi*M38OGCY8JSV==7O{oAfhuinG0Iwt)ZbcltBw7-dXl$R?XBxYmRKPUSdZu* zii6h2;umY3_|^JE{BAwVrm(VVf_zT?Y2Bsv8z-&1)!$YZb;jzd{<H2^njKNx?x}>G zs!Y4DDrOH*CF~4U(#}++?QGRee^kAp7OPx(N6n(!?T>f|^A)<oewCWo^QpQ04fV2j zQE&S#eA#xID#*!lu$(3vtB&#!Ue5Z;I4j<!R`yi$Usj60X0|n^@aM%n^04`)zLeV8 zWsPsN%Gx<5MJ?Xa+O2&+?d^Bfo%Z|cPh+~Y#2_|=J;Yv=7qhGRHT+tB9Y4t{%F41N zn=R+ci^LXdz3OCkm5=f@`~f+NN95ytzZ@!ml0&tIG(u}i^VBG<IW15N)m!{+{tjQt zKjbS^Be9irus>AC=yA<d<FsPx8SP^A2<^~^n<uQx)oL|TtW#3$FqZM<e2M;x{8Wt= zpR23X`&hiqwXd-A)Rp#7Rl$BpU28w0R?*$|P}-yhnqTXevPs&n_Ehb6`vvV!`*Ewc zk*xRDFK1oN#caEEJ%3QF<Hy-fZHKm3`$79z`&Ay&j%dfUH;lK8#l}+OJ>!^sNjqWB z*8Z{QYUk`P)pqr@`c{3X_NpJ%LG`mbtbS9+)ONPU=wx@c|5Bgwd+k%|e*0h5!~Rbt z+YiG*H%wugW-+t4nPOjJPGXbUGHe~XNq(!}qON2~Ryp>aeukZ8m-8$5mHaARo>$-% zc_m(%-@vQ#YW!yYzW#>!mbut`*IaI{Fjwjy>Z|oO)D|nXmzyQjPc)Ukz~{>~`V2mk z|709Ariq!NopHCZR{vE0Oy8u}<XiL+Y!-h>ydhuab3{M8znx(}XcyyuvZH2gt+)K$ zd`myU{xs`qsq&=xj-Dp}G2hi!Qy2Rxqk?grQQ3GyE2-X;+16X~YPM8fr@l}l*=V+e z?GQV~pE5~pQI@t%U8FUzPRg-Xs*!D%HS_H9<}ka0`LJEde8jF|K4w=nAGfQU<E{S2 z-!xb3P@S|>{0V!!J;BzjDtxQFk-sM^vF-A4_7AO)m01P$p{&ZTWjobiySl6;|I+@^ z&S;wcFMrm4&c4~KZQf$mGpE^&WmCCF4Yl{FhwM81A+5TYVAT+-<SYC&u}0423&nc* z8h=ZCD(CaXqKmvw-Y<K~iTpV}nLp2W>bv#t^&j=0^h5d){iyzj{+Ir@{*QiEKc_R} zu+EL&b<;Se+s4~!nOcqo*H!9cwN`CVZ)%MC>S_8wJxlMZ=ZaEPmeRCQI@9Z`B)&)6 zuN}~)+b`L_XuoTJYE4wS9K%23-&jAW3f4Eqr&uqaWThL^%#Hj7R!3_57Je(Q$2Z9Z ze5vSUWXLn-a{Y7aZdWxnOIy9ms%n$141>5SlwO;+vASDzRAqaHd`Z46UzPLZ7Fmrg zkjq39aVc+sjh{zkakYtW=F_ZfW4blS*uuB+m#iViY-^a2EywbIwfBve?c2;(?S^JC zxyo2=JgY~nUREEgueC_NEgR#rMxmQ}F}*&&oi{TZ@>XUWvz>Xj*_b!s&3I?Ci+R7< z-He#M%|2$DIl#;?bId$*sQHgE%-T==%#y|u4c{HeR-!a-E6VWC#Eo>LKHhx5xYt;% zU2JU<{pcpDu0Lz`GP)V-w31eio~I8p+l$-v4x+K%S+vl*h&KB3Y$m&3wACLF9ra$K zv))_Wr}q)}>;1(8`ascB&k!m4i)=Q_7X9==Vt_tWr0WlfO#NYzt&b9e^vA>yeT;Zm zf0fN=<HSh)Y4Mo;tQezD7EkI^#W?*1@wEP;n5fSdll3>)o9tyVO`j)b=&y?x^#$T3 z{atyvC?m>>t3^d|ov0#i6pxsr%+cl;^C@$JInjL1eBOM)oMFx~UpD8NubT_aMdlLo z9rHc&eRHMxk-64<!(MMLv_G<z*q@o7n@jBv?2qh`^s&9p-fXVspW9o_ug#t2Zu2|y z3wytLz&vFBYW`*(Gf$X*o2SkH%yXu0F>8x$TH9^gDsD|@nsKZAN1ah`v!(2PIau5z zZWbBZXnmI6R^BB$$$Mot*<JRK$udRull$}^^g7n9)(3KgTrDq=mr6sv&pu!+cx!$q zZ_DrE9e5{x55Jdp<@fUkcn{u-_vR_Q5AVkZ@N}NR4Q`8Ze2nTyovAB5Ko9aQ;sd=G zeI-89Q|N0ko_{Nz;s40f@|;{No2zshK%dBiNLo(g(|KF-Mg9`MSvyQRXI%0(`69lU zFX8_pO=vL2(rn2r_AY;qzt30ji`XTs6f48h?JL+->{sK6@rQBTcwej%ABi>MH~NA4 z+MkLIB8RW!U5)#V?#3lnPvbHx*|?tFz{*&CjVrBw#!aj`D{l=nuC_9b2aR0gT5GUz zy*1pZ#cH!E)+0tW>rvxYR-fH$jW%joV~i(_r;XayvqoL(IpcQLnB8VgH5yvejOMHb zYizw}G_z(KuNbcyt*qCLJFNvq8`hS!v)(j1SZ^D5v5u^h^{&yydewT^c+DDVEHgeZ z?z28LJ~AG#)*7E0J*>}+O-65Pv$4%cv9=rE8vU$2#$F@c+GiXv23kKGzZef%+xa*A zw6Rssrd;c1{SNgvJ8RA~N0Dx9R44S}##lAT+Ds4FTWGuaw{fGrS$(CpDl&DGo65Y% zyx6?dyv+PYl`*e0uQDr|*O`^g8_b)`U23=bUVSd!)h?p<wGt!^&Wnl9<eQ?FzEN^n zi`E+z)DBjgu2t2I8b&Rnj#1ZWV0<Z`5KoEmVwade--~BypLm`Qh-vh*n2F`B*|dx; zXGg_cIwoGHKgA;YTP&v2Vj2A>-Y1eDk}lWad-L@q<whDVYKdEfEx({A^i}36?J`x- z+GQwNTra7AZ01>|^s;(6{cBl+WwYzmIQ6u8Rz0T%@xgqjyj<><d*l^zgE@o`<HPv~ zK9WDiBl`2kwfYo&nkuI<%`eO^&Fif1jjGmN=11%ttz~<}cVY!w$!eHMW*xJx*}%NR zY-+YJTbg&8tJueE4O_?Bn;p%2%zMrC>@)U=s4E(XJ49pAT(lH-igqGPdrE&<|4MF? zwbi$5FRvg@(r)$xuclsRKdDQ!U)1H=H&Rm@jZgIT`gd$E`-T0$er4;-U+H%wK95s% z^&$I?e`^o6_S&DYw(22kgtedl#2>YO=7)Gis!TPsxon?3+B#s5v3{|iw2s(MTYuOS zt-tK&tlO=r*1z_CcE<h*S^Oi+qJ!*W`kj4ZUP8}Xm(vXE3VPA{gKZZ7@$yuGepUBq zXZdKpOa4ci_PtDE2V@=gv+TmUvbyZByp8>?y0ZuyY5$=fwSl<yo4kYlE*r5wWN+4o zHDxDcOZKPg%lfl1_DMC?E~b^#{+6xT8QGqlm6_~8)`97&6FaSP*kJaQeO5hVm(t2; zT;0o*>c%WJlnrP1vx`&@rkRhj$JivBnN#eW_zt<idfZrOjWx<^m#ALsTJ0Hiy*5$Z zs9ma3ST$|3s--=z>S(1^8mq6ppl;V*RAbprzKb7~Ir1rf9ldN_ET`(X$ucUP{buZ> zi$w`>sVF5%iz`GqQC?glDv2vq2K(K(Lsrsn&~Mgj>bL53^#*z)y`}y+`+|MRzGB<h z*Q^RvqndOpwd1$ZTx-77fZnhcS&OZAth=p_R#magT4A;4E3LbEN50zX%!g}htS-DU zwWRg<M1K|ECMv3r`F2rRt>xc{8`LL!xA=zbWH+kye6P4!ZQ%PwP4zkdQPfgj@I&HO zY&!Z?+@`+bN5n3+huyBW@jpZ(^)){(nyDT9FVRwc%TI|`YBxV4+NnMKocNyYW9`-V zT$7#DKF;Jl>PLRBI>5WDgS?0Og(s_Dd5Zdt_ffy|{^}1tQ2ohG`Jg(%Et#wS<`>C9 z>K|TG{>TonVd^v=uFmkw<Op?+myuUWB!fkH`M5H~6N-yg@;=_p{NCK6b>oi;X->5* z^99>BU$je@v+a`RJiD|x-@d|JWS27++gF?K+SiyX>}$;r?d#38_KoJJb~SUOUDMob z*D}AdZ#8$=_0663?dJD(Bl8ElJAYg>F@Lh_^2fB>_-L)RxK+Gu)fY>w+e8EYq;?0N zpfwatMKjS_G~yGrrhJOlM%*PjicX?ApRTp!v$T6fH_=1%6cL^*TJe{)yTv`CtGG{e z7ZH&n`igPpQ%Z<yWF>jM{Fzme)#T0c5KEG^Wj%SA)t9%+Ch|AdOtzFgc`_d$2g<Rc zpGX&(B1hzjAtFzEMxUcUD05|=93~%@kIGSUj2tJQmJ{W(a;kh@&Xlv{9QlfTO};J{ z%Ej^>xlAsXE9FP>W4TUlke|yhWIO$C{T}@&JH~p+KC-XuFDHsgVv2Z=J;76XU!KPM z^MO2*XYp*F%ZtnD!ZJ$88R8<Nl$<3>7^USa;!>lmd{ta#TqWm=%Z;n$8{$giTDeG+ zH?EU!i;Bh#@*Q!laid%=t~YAP55x^dO}SFsWZWWGi<^zQa;-=*8p!qH7Nfp#yV1~S zVl*>a8+RIa8F%VQ+8p|rE~B!VP4%?mT6=AdecEn8f6^(MYcH@rvA?#jq<QqSU4y=& zujyOb`+vl}1)N;TaX-E~Lt@`0aU726oY*nMa0}Ae4xOZ3={C2L*1OW3?7(<-=I!oS zvoqs?mG;8qFf%hVbK)>FGcz;(l7Cghd)-yl^``S?{rAVVq^WxSZK$rUuCA_L`lF>k zUi$N;zh3(1rLVpF$M62{rKc@@_0pf;eRk=amR_^;?Mt(zA6~la%;V2I;mo_9dD5Bt z&%Dpl`!0RR(uXd6^WEQm_wU^O{H0ec{np*jTKb8l@4Wl_?(Qt@FMY()$1Z*H(x)u# zpZVLnU$*o=cRvKD4cC@lzVzxd+h-m*^Bqf{we*ZL&s@5A=5=@f;oUD@ddoBSp81}o zpIiFerDvV_$GhKc>3L_?&wS0&zux@-+~RuZ%q!2l*O?cd`MJA)@$Sx<_g?BP4VIn^ z**K2Q+*o?enc0~~&%ExjkGbcrdmekw(miMHdHg+(yNCP>(l~8i*}k@Oy|uovdvRxT z`}(yVlX1zUJ-&KlYm3v%)K4af)$01Cn_}XziaNFV&xG%M0<$0iaqH5}>&r1KBo?)A zP`8dumaZ1O^aR<~I8z5w-xXu`>UXyoO%FLw7as>~!7B&wo})yCk6cR5Nii~Swg_DK z*t2aEyg}WErw=&KL5Jn-Ha&ukIVd0NgeRk?!Hb$Dhk4MdUqBkfZp*)R%`xm7c=Ee) zWl;lo2M?Yw9l&$*@XTJ7VYFl*FR!&AgJh6czGQ>Pam-VU19)ZYXb6eAq!AeP1_P+_ zQE@aJpYRIX9F?}`=sRU4kb9MAG@SILx00d%qGx|FN3ry9PgS1u#!YKDqR&HM!Im}g zj0Y{zvq28(S<x!)V1hE<W>+S>ialt<bGBB51vU^iA!B}p>9W`lp{@2wD@X{6k8TLE z=ckqXbB&`38Qog=tlgvq^)xvvh2G&G2_+w!msWjGn#Zg;e9Tnlx|bv>X7$fv!@TJh z^v(CH&{-hmID=iw39@0>uU<}pxyzoGWIR%`SUW0)wS4p4Cd#JWW_a+q3CMs8O@R>} z4{x_jzI&;1Bl(%(0MCzYs4}~Erc`Ab+yrlx<+;Ax>NR13cQy$#UWN?Gl!vxnnDh{y zV*^d$XWVc$?oi#dy$$2pp51X{>ZTj%HpA5E<6{`+!6aTI!{L-D$!2b=Y#8?8%_^}1 z!Q;bpaP5cv+2l}8<{uPqUoB{jX5)jR4NHd9itrUji4Lz3v>+*<NCKhSJAsKL5htUf zGwZj<@YtZRZkk4TNr8bm5bIXW{X<xrBosGM;h~B4iLBcVQpA>ob6kEp6sTh1k+QMa zzLU;gXDsv#q>ta&UBRsH@RD+GuLqNzu1SVvwY5ACQ%yOh;S<dCZ2w032$1&LF#Wy0 z5Xhj@`tTfLLU~~UXlk_fXM+x`Hlp%JCi_eV%|~lx5$K)1xWXGs0Yaj!&LxwqUk$l8 zg3gQ|{I0NveaLw35aML+0gpOdUhjeK@Iq_nO}fD_{_u7;eMKb#MEY?XmOkj>mVLx6 zdJipNhNrgCENS;aqhmgD7*QjwbREXdsIx~6&*;SU2p5SCyz)ujg0E^a>-Sq-NbB3? ziVMnB>|8^|RZ<@ayONsp^t@);GHc2o_naM`6bAbmx_L;qXxTSK1)RXt)~TW)j#a@D zybW#Vpw%vk;$Rjgo@sZ6w(W6YxQoFdjzt%q<~o552Gvzi7qAiGMN)Vmv29Z1!ZUyN zc~V}Ll5;lbq1mmlf<a?m<OXpAy8?v{4R}lg&WkO1jbYaE=9I$dRB%0qnP0(+SEZnq zn0BofOY#p^wgyA&n|9|A-x!x0Q1X(OfI`5MXR>qo0!KV3hDXH|tZ`c<YR1Ay9Tf1w zv1W`p9<PHYv%S<rt#*6Vn8Grut>FHM?F510u-)Hp1vUt8Ou&&6Y<yHQeE6#DDlhEn zYtDYj>Lyn<vt0$1Xf}vb@(6PP22bG-E^5s{i$R~Z`@Jrhhb`z;__NL1jGI2Ey@2;% zfYPFJNtOm+9my}ymsPeqY<M(AnC|tvZv?<+>dA8hap}pWl<doS^9X~`mG!Tcmvsq^ zPuYBf*8Cq|{;oi3-s=t-8$6I*7Bk<w)r38Il3JkEyelnz0cu8h(YgG>c|K4niL=$x z`K!uR0m=7}Wft9c0t4=SV1A!wRj#0yts({8Jv{1lU=5nVi%`s3#{#W~MSLW<s-tBx z>n-}=Kv!#p36Jj5qLQ!b%8at@=jvY92mH}l3gR6{qRXi2BxlijMVDIcT(v+~(#KmV zu3xNdZ&+zckEQ1hA4!c$1Q~7m3Te7L`s!zzlRoAdaY_aWb{OoJ=@XjOch(hW*B7pK z6K`8qpF2;T?LT=UhmT2?AC`VFu-)85;pl!;=!=d)Da{{M<b~Nyr4>Q)EMkf|vE=#& z_>CMiHr>jADSkSTfrgx!Px|q)<hSn_AAOWgWPplAkIu<V^a(eSD|(@gaU}NBzP}IR z2hZ5&>T_fXZrJOPhrKwXW&ruRB_GOS#fh(6rMQNI)#f4j<4mlSarMNKKx5A*F&?Mp ztCxoaj`-1_6oYO?`X<rmd01)D(>fJ3>8ypNsPg;yr(Xm!lQXRfQyTPvc`vqn>8A9B zNyEgshp@W=8NZ#{UYJ_IsS!R~38xtJbO0LT_tI|XkXlgfF3N6pT6^$l5^qezQdf@M z>z`W#qbFUGWx}0?xMDa!>97$R=Bc5UPC_Mj^sW?ZPb5E|o{aF#@%`5Fvi%<%Z0O7@ z!0!Gl^TLZycy=Z_=b?4Cp;KVkVQ2}?_05}ZOEMXad))htbU!(Q_dls{QZ_WBs1qD{ zqW*D5$R5A<DF4E`o~*F(s(YW5*y`(>EvT^F<sOaTPuB95?pA>U@N2hVi>3^+6mT55 zU%g9cbpjAZgXBRVP^(>mHFbF9oK5OGpPP_S3KHvE;fn~@_tkFohHzPB&!`S`DGt(N z>FP9tt(sd5hupOaOim7zla7GN&g;2&;WaqezY$4+C&}<=qh<Ez0`1~~Xe#1oZO~ou z(BQ9Jp_yM{jv42-(~-h==J26|9{d!scnuuV7~@q8oiI4n5r&tdRB8R;0c<6QMD(jd zq?7cD3fm!A5IRKTA{`D3N3G*we+F?8{4mRK9G%=EO5gl!PA{-veu8J|N26XJY@$#= zc<azX3+UKU5)pj35Ger8FPPv*M5$O5I1_NfE_{!t0v4YW?U_Koy;t;8#H053R`4vY znO%r#{r!8eukYdk)kNsmT7SMNC-CPJOQIx~{zjpa__^6wc=ahviT&Y$^@a2AOQi`; z!^0_CX|W2X+nt5L;{zy1(!ZxLny`b`q|*jj5vy2wuO-WZ7R)`|$f0|<4F`Chy@xyH zWbu4fov-oA9{Oh`ISCX>amN`^)-Nm!m1V*c%~Szk%N1}gCkU+lHaQc_2&X5?QE$?5 z$1rTQ$7ToKUFkfxWRZNkNJOs$r~*50#L$I+OIVEpYD)EwK!D(N`SKu?cVVql*P!6b zjg_IFDy1^=%^J{3C_&vtZ19HtlLPQ@4EOgZg`h`95#0vk36&a7rmlB8xHDjJ9|meX zRNTnOF>b@yjMMuo!&8{K3TIQ}BS{b^onnBS4q0<f3Q+i64E;*1oqiqkzEL~rg~?Je z`hbp9iPnD_I6dtI#OE{ZgOsgSso9;W7BHjVQCN69BY1WXu*>KU3%d$=z*NTxEj0k$ z;H9|26fyEER4Iyu6P5|@K<z+?<QOE8Y}8Fnych2Fur=v*rS>?E+hb~8o9|(n2Llz1 zL0-Q)!s>eR8_C*7I9H_R>kZjLYnVrWr8ptvO3<?&IxLfW&{AbiR@E|{CoSC{`09OX zj{BN{Nv{+zIBvDOf?x+<!_*U;aAA{h*TCItA;*5NkD8)A=uL+3Z1bq6bfx1>S*X5d zcx(z&Dcv^MH?{V9ZDA_;B0{fSx}209;Y)#-Qjqk$q=xf+38z`uO|m)S3qUGp?aok| zkR_8<6L>l@VCT9K7HZ^lt3`j9`99_GGDPNi;t0BdA5s(BEzgp44Pi|jlhwP)O584z zrtF>N<<<m_8pQM5%R3uaHr8KZ?Oo76V~|!1v5SE`7wk>(xJO##9^8iMRc>iodnULQ zLd3f?8W9-nDpQ&gF&5CPBW=FN0J4`5*?Ql+aHR!-j`IEoiN>bGidoN$WY-~^wF$u8 zWVVWN9gz+JKvUS6^2h`v`YPIq39FstAV)?o0w!Lv4|X(}<(pS8?^u&TQjdmeZwa&^ zARinDL<4SKy}q$U-77Zmm~DG3FZzpI?Ma(WQMgCw_rX#WyUnr$R|JfsUMk0T(4^Cw zOsKd$^x%$*ax8rb?e4LOs*1}}7@^Y+3y94lrX_v>a*FT}PlGYL_^<Jh>@1MY?2|cO zMl=DIV%d2#0n&UYgljHXqMg=ZmrOvFyU)0<-}ENLxHw=QhASJp=PQ>e$Z_XZ+)QLJ zTNfAAC{V`*o{l>dBD3c6l)KgtZLF>+W>+7+i9<rdE8`j<4~9(H3noxW>b$)AFf5oZ zjyBlB!B0X^Ukx+V2ErI<1*-BBt(Z@M5!?8}n4kl!B){bc6Y#Q8s}zVRN*KoK_Vgsy z%rMmTEp~r(fy$~u)_fC_>cT&V@CEY+8Ynq#6-eEpDAf$LlMPu9Of6Z2xYUwn9YnAP z>9>zYbkBoa=tWA6UMkiczAJ+=lU^TS5-t+puRU0o66O<<`@{Cs%_-L7=+BY^eeugG z`V&?Z*af$ysZl9e#S@^gEXP20UIGVk2?-qFz~!FKkT2L)jv*eFC?v~SI>cbp2}`ON zxk5Rsb7v4z+cm6bOD~ygFmF!DVXIlo0LpVRnI6Is(gC@A2=znFl}4(FeC`Hco<-%C zi2si<T0ElEG1$g%m@1T%brlKmv_l{r#R7zNy&bjh;EWM$cwh-;P<nVmCby;H4tpr9 zvKj@e1L*a>IK$)u&HMr?ZJN@2e6GNylS7#Dct?O)T&A3mjGhzpjo@~e^}TiDp}lE+ z-<)9x!_%^dpqvORHdsRt?A<NMQ6E-g+&h8`4aaChf<ZuUFaie}62?j9HqkV!Ph{cU z;Uva~yc5d-3ULfa?a8ecPS`QjH!T}ZZKwf<Sg3V{IX1!1%6Uf1=fF7UH>DUS^f`^# zu6W!D0_b&Om{%-w#P?Oqpi{ucw|7(65W7}7p2;D^0njUEP*N0M=JXKP0kAIOZQ<f* zZ#dzD<f!8U06L;#ck3$Lw15$$&J9xw8=n@MzQ@#u6z~P-xm^2tFwiq?xEdvSXoI2x zeZsoXmy}+kJ%{b=WC51U<v;#>m49F3cffWq77jyVT=1Vg&@0l7Y$)-#J8I9sjE3z$ zJ!nO$y~}Ghd<o6NS$LH^k9Bq+82XQec$f;(&7Qj2+xj_CW<Ba~9eKG$?#NbXjw4xf zPfyu0F%Tcxn9ilxXy#U@J>u?WtYj1(Ln?V~W7k~#1V!l&j>)7&4nNmG5cESMWHx%n z9vH-3io^*lWpG6<5#xOA%9a(TJ~$=F$3TJ=1`KklneZbxRF_EGmmx+459)B)C+$L- z>sW!hvvK+S7F_>aZrx{EpSS>8v8h);En6|*=l+f|9>cvx>m!Ss?dW)0bApi(f`MXL zAlgCt5=0M<DZ5?hI@11~jjNEbpffH&Stkd7ceTYG^t+cgQ6%sxrr9aQxQ5y-rtKaa z3Q8v+h5`2^c*?_<07Hfq1k)5?APtXRG8{==Y^c`aNyFPyM$A}%bp$k_4WNj}Bj}uT zDUPy6j%!Q}9L>8kh3#g<mO93Wn5+#;=6}S&0;MAA1g<gCh!$YD*=nPgmvw>r9VQQ0 z8W6@vT;<i5Hn>Rm-g+q7{n23?Msffay}*R=G%P~R6b|kLAL)V@JZBJ(LoQ$&Hsvm< zp<8dA<c_dp5Jl-Mxg@3p;AXXXF0aVTo@HAU?hhUv4yA51D=1fb=DQwV5eD4=@kRrh zr@=6w^B3*#A;d6B{i9C?2!XT*_;#*>dx~mG0|FKsIz_=(JnFXxL^(SSNd+4c+BEbg zML>|RQdkBPm?=mN9NKz|Uy4pNANx57`VYe)rBYm@D+MSy%cH{NGqs4t=qAw{6S2w4 zGw`osgpY83X9_88f&%A{(6pFAh*UGhoOH&WJ@&QJ?ou2yeC4P@00$C%r`rWWV!CnF zIBM}8G=yNV`<c5pt^z_e^V0`H$a&Bo?!jGpqhm-rfO=GbpWfJ?oM!A4YdV=3K-Nbr zd;+(v&E4`DowPvonQp*cLBrYbTigFJ?86&7yPMapLcR!MOI8G8p9O^UH>)WWvQ$)s zk!_nNthDZvi-HhrnXsDr0+M2+zDP82wUubcS_)$=g|XI3V63Gv5`DGSB7OD9=GE5d za0rK)sMVNf2Fc}W09H=i35I$b4$2}w)FURCCYcG%lfle|eO7_)+4$heGWg73;6NO9 zdM1#z1a}+|4DWVE<aDQ^W7+8=u7D4w57=jpT>t{hGGIWzC73VOx{)eLI`*n~p=Q<) zo=|JK;t2yVqiBMP<*0oNsy-XzDWBP|2=$i?%&LSDS#$!5Sxw3QM<!dhy?|}KeqNPI z48y(IWQu2lHMfZ?;OaQh`U+i|5{O2Du%7Uw&wT<h=+-c>O_A#gOmSV|pB>Qau*V~{ z#()GO62%0<(nYZlnH64Z0mj}r+YBrT&OX3qaq)8`?y%yj6D=&MMzoNnPP7b9b+#b% zk}O*IT{s@nhk@jIpLMEFCa8pDJ%UIf8N{$XCUBdp>(H$Sy(uic&if$hB;-42A01WE z@V3Lv@5LZGuc;_D%0rxC_@Sws84Ap5QXTkI1q2*%jxoyuPLcJS%xfjks#T;U3Mq9; z8e~WWG21I(#z5`~=wZ@pfGZx<l?C82O?!X82iXxTL%yU28VQCD?29mFwd4ZVir}s< z$!@yJdnU@|ZMoE>h6b6gHaF;bW1R^q`Tt5J*>^?AB;BT^8ov)lCs8p5<#YQycovR} zZJRFwB)Y6zMcg&6ea9lvZG7h?a7D=lT(_GC;ZsLBzf<Losc;{LSY9w2u09-p*zN9u z#5@Q)!5vVcU?{|7+(Tb-XSLTx%jd6eYV?&F`l?I^hfK9YH#HuO`X{b6tP{q*e<wQ- z)6s>sl(uPHxNl1iUI?Un+vpd#w-ssE_FfI$!K#Z6iz_B#8n-cVSD5@i?mIdHhGs`T z`se~2QVlLv(IY$N+-(jP(qy?D2s`0L`O&nsp)E88UF&op(g+skm(Pmvi3GI`AyZdu zHdV0yI0(|s$0kOL(+w^0^Lb3Rn4*!6HPy91cyA*Jnm{o!)Ljg7r(<j=*ZsM~rK0HW zg+WE-$BbpZf}}2c*m(VIuZyKTj0c?;tv8((0D(Z~%{jytO}%BR%E(j&TmX&>=9+EX zvE|R{4=zCZzr;sKVofQFM5@pZTa9bx7Df7FOHY2j6D54~ePD|=v~<aaoGf^vG<PDS z;)GfUcS3S#D1%ft%CjknGjwgu?6n*|?t~2+eC=scB{m`7mRFtZ+mKlIaplwSL$ig^ zzS}-2j`aN%cVkLtLK8NzFrbX9AG<YI5_Lxs#KKXwd!qvV_N-g1#wJFiZ*@qN+PrJd zl`1ROf9HPZ-3U#;TnyA!D!t=KH^9zg?FeY|6fab5>=Gr&+7t$dDN~`lt(H8G(Z#Ha z0qr~{Wlb<7^ql?L5_#=a?F@AfmGiE-@N7$xnh@x5%j)`;^O~Dk+ZY8?jG263nB@g9 zVj&s<qG{vC1~ghKk}gK!jYg`<pGBMvcLkcGc#8Vjrqx!=6hKg4z%IR9T~>>7s8GI` z9LQd}S-!X)(+XkTl>+1sFM&y`)ez|(npZBQik%TM%nKv5AuJ}{j>L!Z2c_=lF}dtb zgXM=bI-&^%Aml&}KIVPWn_h*L4Od6MzQq8>^f_<OqeTP2FyJaKe1|_X@h~53!+Lpf zcm$DXxRFTlV5MM!_XMS7O4%_X?;GZrzKXgs)5Fkr;d)EB=ME^dy+oaNErnL;;$hLb z74*_B+zFY*+E8YpU2eE&pQlQb`B;${_RKZc#qwv?7`#Sl)iCRYixtgvMKrJhc|Vr# zkWwApVV4J#UXn7CNTyMnJ>FobzopF-V!SmrwOGg30=i^|Rg`_+R`bO^gu*090*Dzk zt$PWB*t~!zIS!mBT~r{u(!iObLLOnDD33H^lt&y^Sk{eE%)1mQ&{~Oz3IDB=$QcFX zV@BsfU$Ho&#h4>>BY)AnEnqi|>&1Q>3}@b}Skxo!-gGyN!?3d6gQ*xF_xRtp@gSax zSZ`#1<`U*8M8MEMS>3k{Slx$%%eWt6^07=mq!Yk=b$BfOytaSU7+W=%oK41F6S3D4 z*t0#`&=t9%YZX0#<{1(_RTi+ipC~}+{Y%&%)OBXG5zHTxnOpGp5jykt5jykt8Tu6n zm3CGO6G<FGq!Xo#KX0$j62Fp3ZkX3ZX82WNmMw5oS!bPZ!C^aGf8<i?=*QgAWj+Tr za6JmYGqVV5=qX|sB)%~}r#~o-uYIAB=G%Y+9GJW{F_Y9+lp|dXr<lv^<IMqF_+oR^ z(yo~Yt`fwm^0f?H2iWq<BB*%^RvcWwE5;Q=st7Q04vLa(Utq&*N`kK!ASwz|>mhLy zu7J(Dg~Wpal|}c8bAy-_W_g`U#1S6HP{x&c8CU0E^y}L^=$?0;3V2?v4u0WXjy=!V z!M52IL%I(=&q`e(E9>=z1Xlv>1gAAw)eG^h)>>5YsP*w|TDvNqxr)+S=ZmUoAclz7 zN~<%844)<|AzzK0Ag-^X*10iXdO|s9U!>N_VUcsR#uuq|c37m;@G^SslF9nP8qDat zp@fAskkOSQDlJJ?nzE3JW3FQ8vL=*sJWoN?j^O3+{a6(mSXP>?k3u;@eMTpCR|O-^ z_pR`Bj%GLzDsQY~Fv~RQ^^n9DXQY<(PsoqRBiDfx#pFmRN}4326Qd1MT@@0UQ7}5G zT_*{PTmxT<pP|x{R~6*B<||8@#iJ9xBW6Rn4c9b<7W-9AuA`^QbpxueeDZV8P+J01 zV<SA!_n*tn1_sn{$#udMQF0`!5Nb)L0?RUdRgz5&ixI@vRn`|XS8e1@34x@JIWER9 zANx4sn-Gz2(u%O5511qx97GInf!SJ9M8zf*0*3FEVHe)y!@#{-2BU%~mx<1_>W{b` z4JB~hNMt3f;G+3n3ag1Ia(qU_;*a{I3Sg)~FGvt%j6H)K9`#9Iibr}DSK2F>GA%)? zvgL5CW{Nl{#IcYC)G~nc=hAq1baBf(q01~n!{nr0Y8gA$lbEan#GLC9GGsm~7t}6a zEkp9YKsLd&+cqU193evjb=rV+d^-6GY=_WU54nI?q=&>nkFrD_5{we@2+lKsuGQ5Z z2xt`nZ2&<f(b5oNSaN*<yb}20^7$&(X#&>5O#*`~b{^Z~izGQ7?sd2e=0BXsz?bm4 z&x9YA*iS8$s1-+Yek(gEs6({m@h3!5#X|i<r;{zfEX|-MA(T$8J~B*rr(?6_nQY6A zVy-~Nh%H3@ouE_!SqX4OciI|Ax-+84iZNnI45=$xuDYaCZK00B&jVvJn}*oeX?<)z zj_C4Giz?fGEvRfqpq_O5vsa%oP>lw4MbP*Pxi^!F)|L{IQ&Y_H*e3D{!^zVHlTTYA z(W5DI`ee>s%?c2&LKV?Dg^4NwK=Wz3(D*Q-DvzCaRixM<z7F?>JBO+1i8OJ*@v<?D ztT{%9%gJ%Q;rTqchiZ>u@L;q^xV+aHBinmA7QFz7?}aDOrvV@vAd3`;fIS|P>dlzy z3)4AF^r9efQJpLk3;uEKcXg_mm;$zi#k+g>cmxS#579dqrp!jujnFPb{-e<@q=^#> z4$FXnh|{u}vLHK`wQpEQl$4qeOY1%!k>GP@{R<jVV4`}FvtY2J2d%@DT9q~c086s+ z*Q?)I9|t57WsYCDU~SXGf*4VbbO|QH(~1&nvIChU$Ejj)BcT+bjuk6N>JG-Fj+e+? z+fY|aEZOqrVMtP8w6&{^GG3fb7_^Xy7;G@)5w&Up8<dDos<K<3snG=xY;9(RGY&ta z;#eLOV#YcTpp7A{hqZh%_y*+Xy3}tUh=;zOm<U89Wa%W-4Yn(QPftQ8<7_uN!NQeT z=olYcC@qKjdHphJ3vr7Lu0_Hsnc$(K#n@Da#1a`5QZ0UwKqPpmQn76D`nZANqGgIr zYZjBTIRlYfsSJAg1bBR4fxJNjhG-K+FP;Ehxpv~H_AUsf^`&hv6!AyCnnGcQo%f&p z-ANcNO}uIXWwB{bKV%GCPIw`F46Mw`hC5UvjA5o9V<sTGt2KFj;tImU)>qmiy5HEi zQ*^+fa(g>k;GHQxV}wSR$)rddWVZ1v?C28Y^6tYo<|tl@699(Z<j}Y#m`}peOu<|O z1w>L)OL4Y83oEx&w>&@?QtSq~gbA6UYam;zGlkf_6q!Y+U{zG${Wl9&G#Ej7l#lf> z7P*bLbMctT6h+&P96RPM5#F6h3$&p5K2dMVMq!2r7ctM5xcXdjM7Mavjg4unfiYQH znSAN-T3r5`DzO`HQA>X2fb^7j3tIk~DxU=Cl>Eu^=~<8ef<>GGLEMkR@9~}&e;}=N z{xcV(g(1uBK5K!*#D%BiIyU!(O_5Y89FMsg1m_Axe?J8luq2@Z9^Q)_>UfTVn0?_F zunMa;Pcd`Ur&m)Sy=(UMT5!L4)DQ?7r2gHAu6ILC5A^iLEA93d!jerd8Isj6Ig*vA zIBE+?c7rb?-4i88Z9U}vID%Vw{-F!^v_-5Z@ruDKA;*{02=DK%_TIuY<4hBUt30rY zO-Ya%U(OC>eYH!XQcUQB<?Y#Xmm}bA(b)c7Da!h4{T0j!3(E_t<`(l5pd*umWBxrq zH|9L#*jQpv+T?0N4vl#s{LGm1P)n9`)K>&k64aL?B`)A-TkVq|$u9cO5<K;QrYK(f z!X39*DWs=Cm&TCDW_CoDZTBM$Vt35(`U&?i)gv;XTj<zrQT<F?29(s%S4kpEDE{u2 zHf!}yXge*3pOvgCL8r6%4xfr=S@3(bPveJGz#*Mf;m^u36_Rb@4Edm`qO((`fW&*q zogzi^9X@bB^UYsCBOX+sger^mW<;bC2_K6GO8EN;WUcN?1K?DENE(y-wyZjAS4nqp z03BHF?E8?$4gd0ECwW49!StIJSK>6AIMw0PfRy~u1v%RSQe3Ww6qJaA7vrwuoSzPl zdYy~-bV}ham67ni%SFiw$G=tfLffK<#;3L;L$nY+(+!d4IJJmKG9I|74LN;|GFVep zb|uMxj+m^pqhG+RN9nqRTs76GEo71^Ku%(VBZH1QyNTaF=1MT6_e8qM&{A}55rTr5 zf)^0Z0gJ8^ch;50Gv^HuohtP7h2aoxEDoGwiJ6JeLdVf-#hW&yxVxzSp6R)@T9$eS zsg5zutOr0$-TK<tD>W$`M@@pjJYk`+WlJ4V_!xZ1?j9N)fQmvFcPO?b(iI;3S8!8@ z$I{|AB}Gsv6|uCG$&NoNAz+%fFfjC46U!Qv<?(4G)Qs=Y<jR??Ng7nFQQ*ldE5&Sc z11E9z1o86TL3>kZu0jc`R_d;PxyRO2x?3ZT8@&X=JCAZmG9BJ(DT80tqDrp1T7{9P zyhIYhUCSV%m4yUDrIZwK%~_lz;~X?0<kmY?1+_{st1#$cRNYpPT-7c8giM3KcmcvN zV+cw*ngoj&&LEydSs*Nfus)Oop+`4-W>fC=2TZdck>(4y#fhUn7&yKrDC~0S<H@v& zSL^b-l~^}$Y!f#v{)#V>DV=2KLLd3xg)T~YR1pm}U${;gKq}Rqn6e2dU4jn%mfVZy zYJj;Xj7L&%<WUxJ9$-z%LIe*~P>A<rsg<dim_JG=O0AMFDp@PPwYBCMwxX0ot{I@A zD!)7g{*(C%4!DHkF2k$chrJFaCM>3~+R*G9&_4o;pf4VThlBde9Rr^~$evAbTB;-n z)hcOa?YX@o@yt~e9|vBPC<NvrNV1^;m1`VBEH}VGs~+5@^EAQQI~G{s;ZD&1!f<Tb z=Yh_x3A&}EF>BaS6n*75(xsvm4pgBBY>g6DI+i;I9gh3U_S8BiBvl;qp~cU-FDi+T z_2%H%MkcxqjI_5Yd5juXIb4TGJVpnSGcA}9sDI&5+1#A*yD0JVkS|%0s5GTAa4Kx$ zMgrO6gT%R{K>#k7jKds~ayQNtIO=dpx{P2?`*`nNiQi9gy2Sn}%zjHKvA7mt4E2R@ znIeUV%ERB<+ZY^+i&a2ZzXxX(zm@`G<-Z5IT0YR#@{RhDI>EWW@K#QBLq>&)Syj|> zgf{17gTxt1CClQ}`juSivL+@Yq98Wd8=lDL5qgx|c~b=<C@YbVsWh2OXuialP`Dv$ z!Z#wY=$HvFNl=dCNEK6O4^drjO0N584zOyB<h~Ce0@hT)?$p3&=8|2OYtsOkUl#E6 z2cl9)vx^fWWVg{*HEk3pjwvNPdnh}BYfg<fg>7pl7(J#iO9iJYJ1m)Ah5Nj9+c@iR zwJuE2a~m><u3O8n)!r-mR9*v;&^SviI}6Zx69^AffQ5*`TEMxIB~8b2O{0|C(h?n= zxt)NtaxI95ZpOi9)+C*t{vMu97<2_2!<G(VTnXBG8zS@24KD+46@vqIWgYqsi@j37 ziAqO`P>UE6z`+R0&?Q5v(Yx@}GS7|gu;Khj=}$`)3x=~!cb>Ef`v%d85uArQR&*x_ z4kXTqWzNOurY}j;j*Y7hV;wlVIv8`=`!V+JqgtF{OciD#YmL{0h3Pst!?D@DVDca& z`^|DCdlus!r468<2uzG5=M|N$3sY3KY>opqWfBxTjOp``;#;3oW4W~na#_Q34GAJx zw53FMC8gyG3He0j=J-&O1g~aEg{{FpgnsbF#Bsz6uU4a&Q>&9*8GXL+uB7a2tU$~t zoh`Up23;m-2^V<a0kv{mCUCvid<a9b)4%~VoQ*ryp_>?J&x73-y_Mv4VXkGAP4q?* zUhK9SRHY9*VzPDS97Ul@*Qasv+hMR8D>+KZaz!J=l__axqd~0cVOMa;zrmT9&B|EJ z9)NbQz$KUDbPI2$DWRsO6<LaGnUW#|4Ha_8^>Yx%wE&WC3W`tnl0`7|IuOI8H-qMU z1VM{xQQHtGKrjtW8HquH57;Xv9#$-DPV+s%CbZwh8kJfP_Cr)48H><Sl!x!kDTjb# zGQY#&mCY)}su7c=wwNcA5(?MGV{F4)Q9XRJ#@;bt7^Z|>qj5EwFwC}mp;h*sX0ZRn zczYOaw=-gRWekw0sA0?QLWEpIO-lRY?HOJzsLzGjQRod6qG2c#h$Oj_2h|5Aupqcc z5L;~0%ca^444T*xvM}Behai-cUQ>iK$mFeCSeDpUJR?t@LBQ7)oiA99Y+QU)3__aR z04zCn>G9d;N}+7?7AVRO#}zGM2VFDNSXjuCu35z;4|!Y?@XS$EvcpO+(Jw=rmh7go z7_Bx=L)HmV#FmsLP!F;=!F9V^a9RopkR(&5+}-%sSzII?lS&#@>iDF-POu79r<`DC z@h~=4Md8qk^RQLTut173AE{@RzPKERA&a6e_6+tJ21pDcbc5r8@8QvA8bdp+(cy$F zEI*DzelH8Ow4+z6hA?>?5092`1U^ejLb^t1EAydtAMy!P64E6aQ!ZI#x?Qp=0Kvt4 zD0P9MoK0K|9h-87={S-HhmNis89ENXTnVxU9QcN#w+MJ&1tHsR7XhckY>IHM8lGu! z0G9zphelME;gj@oz@@rJIA2X^$%<DO<?Uud^esC$$}3BNdB4w|=?cblSd@JB5OE07 zOzG122X)xu(>W{w$aMwCGdL>5Zo#-Sn=>V4(R8ktX}a8m<#--JK}c*mpx!y6k17O_ z98MvfYs{Eh(+0`45*DCKwYY(dKNmWOy-Fswk#UJtWn7ZU5vChR(i1X>0LgC>>x99B zdBxifFRc17Zed`6I!72TzS4R;?8Ds+*khXQk5p6{*d!4lNJA970T4uAC=$fM9@qc~ z3B>ralLdMzbd&b+Y$B6~{gZ>?V0YSs_j#q*vw?lntla8L7+_l)16HCrBSG$^(k7uw zWKdF+GWnG9pUGX}$`tgp|4!<|{&26|KW`pQhU^!^@g9A-<}&5z)^e~%V^|rz+A=1! z9JBhW&gyYy45*wD(WsTb(lyG6Mrq}j+pB#Ni<e@fF?$KV-h9Qe5Wr2yW->OfC9!(r z3y5NV3uA|&t3>?7$G3_^w<2mZDdz>GfC4)qnR>;NH;y4x);?v;%ZC%6(Gd4g(lt&D z*6a7WK((%OJj#m(mom5@lmt%@>yh9vM?3+W0!UePXrKngCeXdUN|T`&BWE$kB)A>S z!k{-Nw(rO%_D8D4JTsiSz`DquJKvnxv`$@T@w4Id^!T#=<|L6S#}UXf3cpst)1=w~ zg@c=}vAz%A0Ny}>iQ(he(gW|!i5YR*Z@zf(%dR^HC${Y7#BL8<&l4{wP@}jERx-{H z{v*bBZK9Q6a<-@FP$8F+opac8Fw)KLB#ZZ+BczJ)XOW~hbABQH#(gE56T{4r!}ADI zR7m1d;hbIM8|!PQKh8#|b&D>)qOv(*DWo<h&Uwc%9idJZMK;#A<r?K3YNXbT&Ps6G zeK&b|b)7}evY~EH0tydDD#>Q!<x1ylCJM>QK7}@M)ZqGO2~VoDH}OTu;P=?qU?Z}l zp0Phswn6bouRA@Y#SU&c(I!Qdzf+0a8n(OE2}+8B-{o0?Uzo8P4JU>DG|m+zF-Wka zkT|o1P{=+nq;t!7tJrOS2+kn+>-ki;(!S-^<Eul+QXsAr6_3IYsN$d`T3IYg<|J}X z7(H-Jd7e!uEKvAC{d7j9xM;Qq1xgi6@e1G(tB0>G(=)OHM}oNkn>^WGC<!K@E}A+( z(ryv}Ip|*cWk8}TBmPjt4Zb#Xp$Kg$283!iK==3|kvRZ>=tg5@od=TvHFTXUce$#h zEc>-AEA^$Uh^4q&7^LULyBStjxzsegGw~qE7=&&U!DX-HnC-FMzAfB*FKlx|D)$sv zDr&sdJ1hH4lo8evSJT8zv~zpY6S-ZHHeJ1=lv66@?i?ktL}OJ;l+P1i;q{PY`z<k1 zZzPuWPPQ)MN>nf6QR=CDp7`q8czQULyL5XvN)RBQq)gcvVt)KYEi5rnk6pOhmHN=o z65pBrHHU<9jY>NIzBn3=PcF2_@D9*8o~I$@!in%K%9W6V0ry;fAT)yEkS8vi5ZP?z zx3sK_kfDHZS+R}{q)1dOLu>{~46GKR<k~`FGe{_enL)_Y!(4UN7K*zerb&$pJ_Yr~ z)AW<#JrCVjCfFb@7jE57CMI5*s<yatzGVN&eB7pBsb5XI^rY%#ogG_z7|p1OeCdoY z*~=crw^SY~%9ZSC%IG^z?d#M>sotjidVgC(rC;E+awCqy%8#Rt*-I;trSC+W9`!6` z1;}I4h6(HxYto5*4pfsycbU)3UPTjyry|EYFOTZV<#qtJuKbu!=76T-k^{3Cmmhw_ zbn0RuRAvoEm5#k$@uxk#(&Ws5d|T65!t5(MlI53*i=JqMBp6&_dsh_U0JD_1zarcf za%f74`p1fJfUT?IYQnKnBOEKLaICQW$Z?|-;aJgyV?`4VAnGkvgkwb)julNffT-fG zD#Ed<3&*M^96;1@72#Obg=19{4j}5ds&K68!m+9d$Eq$ItD0~CQLnTj9ILu;tZKpm zL=|^U5so!oIMy`b0HTho2*;W(9BZ0z08z(Pg=0+@jx|L%)^y>Z0a=ko0-|1NML5=U z;aJmz1Bf~<-!7DE|Mv1s=?$bR>)G~-`Y}+ok5|=?fvSDHrhW`m?PGg~KV_$Z_nhw> z-7<|d7MtaTKytf>wB(0yMU`)$9U{`S50h0j_g+(N1R^^j@Kr@x64CgLdHQVsts(R0 zlp``vdF{!ilTZl4<2*3NspgdhC3~mhs4pbhQ)MCPnrJ6!zDfQJI^C_FBi*x}gLiJ= zyJd&(ghsnFAn!sz47|Y`Z4)_JD?rE!8Wv#5VgVP2qZ7Nef>vT1M6Tc<yULc&>npOw zirG{v;H!pNEv{m#t6!C1Uo9|{ow*t7u<hZkk3#0j_G#l`--DMoRD8$7<u_3n7vltD zLYjlIanN<Gc5G69`vf#ka<4Ip`0mgW`?^X3w8k{ODL28(l#{~Dbe+bVQSjy(Q-JA` zfjO(_SytJC%1>8i0!HNg<1)#sIk4AM#>T9O6$mGGQn3n5^A=_nmWj#6#OJM0Zoq$W zcx)d1`9DC3pU9CrR}1&TsNiS^ns%0W6_eieSNH9~-zp2Rr1WDNJ?R+e2EzYL9a8T1 z*o3w}iXnrRv`vlM>gU)nb-&9NX+)Hw1tW%Ien4vJFa|~YXmyX?6OF0t8firCsvpBH z@%m;gYG#-m^1e>hKklg?!<I`!W^Zalje>m>`PfPx&+=n`-<A>pInr!=P~fA{+{<hk zZVW~W3m(bETWNDj#~#5pzs9n-ef2tCmV&er6V}fGjdkO8dxGIs#(PY=0Yc+ChowD3 zHtI1k-aTSWozG%K-1wFxCMdEbAv=*JfJQQpe`6r7P-rT55q=E$e_=Z#d~~^gGCG9A zkK&Fw8&EmSNkWQ4CDNovSS5RqSdU+IzW`kkslGyplG@WgWx*Es>F%_Eo9TVi-}c_3 zP=sSjjE7bE(r2?h2yB)zR2gKXCS(BQR2s(Fq%eoQm<Ux2<=bvcEVOFcD~mS0kb!4` zz=_mD%nnQOG3zA3$V{XZA1@HsmGk}K-~fA=wi}71sKnaG1fEnh>Ruvby7Cipyy8(} zP1$mr%Bm6d6E%rRe@xY?#pg!!Ez!U+O(+-Nr8n&^#`Fmb^E1+Enf<=}RO+_9$YUqx z#XeYhy!*{nANksG^f|>GnQZtb16Z`0LtKdYQND8k`8y_X$ZB?F>$7$rgQuyi1uPF0 zCq<Xhdq=%#@3?>{x@miCv%tqy7z-RVrEv0a3@DGni+pBN%YrrCE=<Va<tgzqDid&2 zF_7T_1lwDGMJc9}P1r5W$H^}3IcV@Mmc?<GzR1Mf!V(wr(u+*<6a_mdxrt%baho*{ z*KDq`lD!&2N*h6;k!A;2Up2e)llkaYpXoMxH-NIGI+yUJMvAh{S6p(m;^NZdMfp-A z#`zKg5Hl*HMi}R<qBe5Yjo?$rt#SQiW;NwXG=#9xP)R3ylq*qKFzIEX3m9sPNK~aN zBBgyw4zl2q+<WZw%(b=poGn(Qgb5ru*0d8PBgFzHzk3kFJV7p4jTTS#OSsy)`=caQ zhZ4y;Z_D+c5_5_W6P-|gtQXBqqPTc*h<w>_X<P2QfFaSlB}Yy5$=Ms}H|`%K4CG{w zQR^BYT`^~c)HDIs6=Hpu`R{u`aQ(#yB$9^`wZd04(OKb}i)id2;zp@AQ1y1NXri-H zCpyTWi_Qw)%EZ-IyB#8PYO1e_4jf0<h>qc?X#sawlfl(R2hYUyMvyq4xO5uHL#UeQ ztk#GQ4c4JW*Hv2+oz=RYM+Uv)S8GIvhV78**Y>(9I^fN%5go%((}FtDVIdEs4Yi^} zqJZMhX`BzCYNE4NBRVvchZbEUIwT&4d|lV`Yqg@o&#x$irZj~EE%Lc4I&e%>BRYmd z7ad^Hl?EP0DT*J-dI9!gE!H)$XK_nk#iv>k6<caE!phToz}`rpQLgboI39HgEP3?q zaBO#UeOq$P0|{51YR149r_a=qYc5dX3{>j0dD^Kj5Vl%#wh=B@k*GtlQg8)LlWGTv zT=R_P>YaHy7P#gDowH--ft&|$UbwkBc5SYXHC*#_?Alz@1i0qtSi_}*)+$tFNN5v# zYP^N6M6SP%hqvJFmSv&JG^DZW!R0u3h8XXen0x!{#eN&2_awHIe-%nl9IPgRgSqWO zuC0Xxp83I0-SMRNY|MJ}4$n?|0(VqxSP*lFR*_1=Nj(xx;x2O@!LkP-d0<IVZw9~9 zwPvT-FUD{HRc!a$gMuBn>=f|M_N1_xCNM`%uTMHe2yP(QaO5}MvpGR+NE;m{p@<+p zqOP=nl@Ewsv=6-?f~kMRYd`A4dk=W&=^|Wga)%By24bg(xOo03#=ycTC`Zp6`=;YE z>iFjbSlhQJ__;v*yLka;d#O+pxk+o)2lWuyjiDdZL)49Z84A7vFWx|^J>FBzOQ^4< zk3@h==QRO7tk=_@=D^N9$Q7Lbq#nj|*7l@ltS_>bL(s?Zq@M^yyk-XHZ$6WSv&m=> z1CUcM)y5>Qo8UuxwV9~V@^|4AIIgpYX_G4(yXWbLv!j|20H~70LzS$##U3Ar+9lCz z<p?+?(N!#_N`*pJ3L0`_Kf2PM+@gI@QB1rFJ3FoDuwd>A^~6GB?~MHfVgg|0AINx) zm?&~wI`nBeU0ZZOr#n;15IY_iHQoSFvec{!o9u~AQUNj?@bJWBI5sgr1j$ldm&d&t zk;rF7XE^9Ws%N_#?!_MxBI|iV*NbMGp56HK_(~Wh)?kzE8U4Brn+$4PG3HGorIT#} zqt;ZN#<`I1+1)TgCn6PBow;G?$Lf%ACk**KzK1}GHSH!>#OT*`LpD=ob+%W74vA<q zSqE}m0cyu{2N-D|Q#0|v2@Wt?fZF*pwl!j(>+PS^v|kJ+jxktJF(+$vaC-q|lpKdX zP>x9oN8W|~S!bT72}!Eqm33075o}k>M8y2I$Zj!B<iGS3vb^KZ?pWAw9_^FjY!xmb z^yt{WKES&nevVwA2fIJGz)GH3w8%niktJLkEwd8M%SYEnD=EUNOc35mvKa0?4RWF1 z(d>5kLVwt~h3PwJ8XMpmkBR}9zvA0LyCVp#s$PrPXPbA*a9qdHt7Q<1u;HsdeJ7;L zowmW9K*KqF0IQtk(^Dbb*b3@2zWyZ8nH<@Apyj0%acwjoHBtPv(ZlWjj3rie^@9)x zm!q_%8!ARRZEP#99~O{7{kRy<*{zJfrq~L<rlMuR)fcR2e4WsSDPG>$xU#YSidePG z_C^@)TRu5<q1UGSo88;JM<4C8=VCBhDF{DahT|74uD1`YY3lANUf#SJ;a-OTeQ?Pn z6zp~DkV0u$UB5)Wgp5T+AJSc6?s}7#oa&Y90S9KP5$Gv(37=XL=|=qBIu7}D2IvFZ z$hd+2SGpN0*{P~32_}M`7pA_0W<Cx$_%#sVu!(V~Iam>>kJwY3BP8u&N;0w?HQ}uH zt<-){3sJeBsJDTZU2!Uf*12P<LMf+GsCRRuYv?)Bg`~!nr;YJdTupt#lZp6G)?}a9 z8oPE@`$4iHYwjwWR;KL@I0H&`*jlP-JQaqosc3L|B1;Pq5@I8>q(Ep3oyBGbVwQ-+ zC-jzFSr!Y0C@FB1Eu*j_@bVK3&o9P;{;}1wWXYZ-B?uSnfCD0pW1oWijWrooPpF1y zJi#X}b3$N2(q?iF@0()U+m^N(o7EnKU#hMsb?~d}0Y?q|+B$O{0nj#N5x`qOy{Spe zModw|fVt|Sr>JL%(1h`<oKk|sMMUjmHk##^<c&$FP<S}QM`71Gig3sUlcBid=rYZk z<I8Le-GyPYXM(zvgkXrM3^^Vy86~0q<6YRDO$00Bj?Y2C^8jG&+(Qd|Hy03vdb!U; zq4j0Tl7^O=l<O1l0umoJLo_FZwD&5CAU_pRG-wDpQ2^XmWV;?$-$dq>kSg{q0_Ug> znP2WEQ?58PWhrxN44Gd>HEHM*9SAWY@Y-FwpCDTsB|(f;Q<5pIp0E+6vJi6ExUs5O z1T__xA-Jt*A+f8KQR|vPoUQD8=C-07Y&nivz#OLRbGA;#->2}+BolWh_<g9C6FuNG z9#^pVeM!_m=1MsDI5`_#;Va=<DybTYPp=QxpFw?+^VH!)GgYZi#HZIMxm1{HIn|yR zfs&enC>Ip5t|hhR^F)`q&y#)jaId%><5q9@Qmr*^4<_LiWg8_#-45&~v)yH5re6va z7ial|MTg?L7f542H-q(Dtlv__rJ5^TIW}OJx;wV9{I!bs#H#!?))4;ZSnrj;QvX9q zNR-0jQ~d|AUMqiP!Mp*5IuuG$s#0WMRPrY)MK(YF10f_XB&F)b4^^tK<n9vIBlpRQ zICwP7(=&^M$5YLg>|$*o?laM`<Q|JJhDTxtltd@-RI=qaa;10@NdJL6c;?axnM2hV zJd&}Z(HUA%<eH@ikK8$N1<{~j|FbxFJQZxoF4hKuK@)>Va<}?ol7lDR9VtIbV#t+B z4j%PXc!2cGgD;YU2eicCF~>&*#4I64BDX%uU&R)#iG#;ewfa(sd073N=vZ=>!}BKx zPrAKPew4(Jo0c3r>ND~H>A{09l7k1d#NaU(R0Wh8yyS74`_wM(3B2l-MWUxF23f&W z^weYwIOHPSbp#SG;%e`RvJjQTMCBcw1((NVv#4@HrUCertko@{0Byx+G<#HVTD!TA zS)6|SISbGyWVKcN3Pbd@`YpYS5PzA}*|t@1V?dJwe(fMGT_0(Ff53eWUZC+1-gX{9 zq@Qe1rRTXk&G87_zF@*9-jRQ~D>BM&49efRGy}=p^%suK%y$7%#Iq-H_G@|)YzlCD zYUzor8>23m+iD4u!UcN9Eh>L@2Z6*>d!wZ9PQj%cZz_Ojg9=>9v{?_YZ=b($sW+fG zKFsfzi|Oucybn?AEK`V~Zw}by4g34VeMS_OAwtBZqtbnsA>-|a33!gK&8DN7hnLFn zjON~hg6Bx*I~_Qkl?pNgr&a03VC*WDfN>A`N`nVs0p^ikN24N1$l@ELunmN)a`xpE zCjr+tBMEUFi8F0S<zZirz>``#0>8}V2t0bu5qM~oBM3ofo{}sKo=<1e3NJDjci3YU z_E3%=H@c%sdLrk4ruz(cwkNam<2%c4AG9&Ijigu|#$*rs;^8x`3JThshiOY^!pc~1 z*>DLe=IXuPJMKXQZmMb~j8@KM6_mBnJt!{q+XwZG_B|j$69=V%6W*K*)|O_1gKN3W zi3+Ib`O35&>e@m}A99cTK!c_juTVV)RZx{^#36>Y)tbARu8yGu%hS#XXvpmZW=?J^ zu5&WG889z*ZEu9tb`xjLvbVCzo|8GAakVwkCy8yF<%t)6*J^zG*#1?mo{<2OX(#MA zc+`_v9x+uGT~}(nPmDigJ03#T3XV6?(T6NaS4>q)RjSJ^@3>rfRk5DtWqED!MD<f~ zXl?JZ7fYfVF{8)o6!)ppQvR4pT&`AK;)D!8Tv6p{g+_?RpQft|8y-zQfvk);N%a$9 zs&d4hW{p2ps;kQpcvQ9OYI2magRGRTq~(aenH4oglOy_`R{WtpFcYn%#2*@#%b(hc zsY?G*cS8K3T3z^5D>$u>xLY<trTO4uVp@&_{|5O~tF9(TJQgo1I4wu~d9C<EtwQAL zO#GofFsdA_T_v|-!jh4w>5jFl#G4U+%)Om4U1`(WRb9!hT_u-+;*w{3dbR0QAo_Jp ztEm%*d|uaX*uY7f3A6A(!)jWtjaSWZ#Rp(ft<|-MC7X;tRa&F3J>ch4WS$%ZM40N@ z12N1Gr#qOqQ{!Uwfmhca7T_9{%<l9>RBam7NK;zftf}VDnzn4w$K0aI*2t%>Zf1Mh z*r@Xoi0Z5cx>~l@$uOh!vb8B&Gh@yEFyWvIOism1Vl;!|h6w3Ar$;z=t`M!QY4?eN zv1FyAH<#nMgb*HRiA|j;8^~#0f<*mea(W#D^CK}z*Pw-i>F9HEoKI+Kwdqr@<XgSX zG@?EJxTei4>YaYAW0O<x=wqG>k&u<nhCGRChrt1KQoC;o=hiW@wszy!I`*2f`fdVI ztvES(j_SoT01~p&VM6}D_+v$RZGx)TE3N5dcw(xq&DvlI=hSh<)xpBE?3${p4Nv;f z?S@csHd|#?uL<43Lt0u>ClkT4u%&pOfTnc-kke9wMEzqP5fKi~*0K<P5HsM>rMA*+ z!P~7YSdAB<uFSR!ZQ<WiTrNOU`+y!6N0kGj{&7v?q-4Y~KwbBkz$~@xiko0-Rd2iI z3xIF+whQTWqozp_Q87bZ+d)<H_?M^%5_Lpq>d?^u1oExkb_^I&?4vCypeP2YYddJZ znzq*%an9AR)v``^ZOx&(*d4vFnf&GEh^kpO{JviFsb(NxhKjUO+=iY_YHK7apZffT zEPY{AH+z*YjbZ7U)^z=@jNJrOyGmB~v6E$WuR2*)H+U1>pFGk1w-en*I{|m9)-c@% zIRTfT`nBF}c;H_9TK8oL4?=`uF-e}H8&hKfMw*J9+WN-lX@b;U=)>dPva}fzTpeXk z_SuSiGJCbpk`?0!XRlC|)TCxPWh_8yA}6MBYVxXD%n_xFx2_U)x(e5BEgiBzz`K@k zKzMyqXtAfVHy)#p6aDW#hSL(Q?8NA}kHP7oeaxPwjOqn$Amw8?%u=cP$7-7~s9q~u zZ8Pk))sNLSgZj}vhJzQSUZ9**vf5@m&CtqL+YB3O^<%Zop!T$n;his~UZ50Jvf5?{ z^i)4q+YEbR^<%Zopl;=lA1QhVhp8MXc6L}6mOw5dChSN1seJV0Xlxnib&KJ}_6TpQ z(G?;f+4){Z<Z$yK&CA!!G%t^agga=X;n>FL5!=a;T>3(CK1hi1r;oIIQ_OV}sZ=*K z@Q5UJY&(i<Sy>|YEZg7t@rC^zB$I@E*xy0u#NR=l#NT1vP7qQh3BKk>Afjz}dwU3` zSKK4j?+m0Ov6Q7jairU;k9e&Eno?ps$`ukj&Iw3baj6Ol<5N~}|5zz8HcYBouvfzZ zl2%-*g2M2Y73^shjE{S&TClU8fTUEAILLyJlp&rd6(kOavOpe`5RlRpq)v$7qjUw~ zBc;TI4Dv993Tt00E-}PH{6SElR>6b}uBK&hwWm~&>{+WyC^85ZgHmEb26=cxg~c-? z2eecV3R=@o60l0r6<q6TH0?uWpurkZN>v5`ED_~HrDMPf;U8iOLz;s5HoUBU`+Ohn zguq1#`*?R?3s@@T5bpGVZ1Q2a$me6o_cqyFT`yM+!+HT?`UmEvT(}F}!S^OO3k<`0 zZvx4>Z4%+@m<ls=sM&&mYxg!>Mrn`7y<$wOgnLs6#x)fR*QfGZbAiFxHtWT4uM=80 zF;@-QU@-iC4;~<Zyi0fNyTE%Up-PyV&R|?T91h_k38v(;ds<dk#=&~x;&60g>Hrsk z*4xuIt;$8%B~FX;`}=U;WO}lGF+ulZ*mc$Bb+zR%KI=qCuv=lUk7w|<nG!voD<?2z zY!?}(dV#Rb3?z^VmgU%XLm}fhD(mF+n-}{qQnDzl--H)gZ`nim&^|QvU%%;2=jl}# zPlcqSsbc+Y8(RV$xb>Tm*A?=+4`<^J-ZvT-_O>GDyD`8kUC9boS8WnN1<b_@#r_Zy zgTRzy<wM$A5HKbfLH<|UR>P-C#JXYOGP({48OOtudMR*>nix2ilpMrlE(pDeNzIE{ zaB$R_ltCSl0bX9kK4;{Of&RIrr@!v%%5!5dJGwlYS%G4*=%|xR<Ka<SA$Tr2&iH#V z23^8+r-)SXCaQC3TqIT$*M6H*bO%=!x{!DdBm5vX?Gv2^ugK^e0@bVV%iA|L*O`Wc zi+UGl<1xN_R4e-x?+!c*w0@E4Ldw7d4;a>a2fb;#Z{Hm9Cjxwp1<s8-kh*pPDN`q~ zIfq47f}=bVq7k+m6S&|g^^WP5iPSGh8SD>5Qv2wrZPs+L$dX$66T}Ak;cp*}`b9!O zrk+Wak(etXCNYy#@hg)KR^!^0t=Qm!!El;J9`uqZb$@6WnB_6vdK#^Y0D=AB*ybuN zw$YQN#eoo>4OfCqOe}dEXB#W&;6s6nmhhm8)F(!U<z){VWT+@WR0VBLtbVjwP}ILA ziyM75Snm$L8mzo|aEt<M4PkcH8lMQvl^`waO8XXH6}`rwiz6~SOUScO3x%_=QMM1F zS*7GkqqQ<DW?q{Y)zV~aBy0vS6D3u?RT)Vu-mthKxYE93Gq1~f+OQ&z9~8El7>?9} z9TMdZDGL@GTR)KQ-L=4|*pPQOj<KB6OzlzzR$s@E+`2gW+;ujL@;nQRGEJksV_q{# zOA3%7N2hz7C}H96wvTHV;Dpe1*Y%;PEUg9DxO1+1z<Ie`KA6l#RAq4iJ}+rTm$ESg z2FNf!E`}SB#1;Mm_y4EG>N?T;D09}-oxsw-R3MU*+7pRe?UQ1x6o77O*fL6GJJRl6 z0E?UWjXNXA4T))I+kLl4;m>F;jK@Q02U-e*;O&U`XU2*-2?CZ)NJTJ0*L>lf#(q^O zjSk0ceh=A&8u_2fy0{-)E%09k-~1&&=9moa1Mr*GmDbf8TU)K`58k-?P;34C_47;i z=NEPR{TJVh|5;vJSy^3OS-$V3=AY&N-RJ(c_EP`1S3R-&+Q%&Y%#(iX`V-GAExqBA z{m+ZK#op}TS-b9^OAo+bKF0sU{rSMslP<gn(-yR!wc<%{4uAP+_}}llA07jLKCpD( z>m1)X_w&*{@R$FA|NXxI0seeo>E74f1%JNj(i6<DPplgCoTWE=(i^~!KW_+2=JWSE zdGeKBXFQw?_ow$hcjtNcZf#zD$kC%e5DV*p|65vmtohrM;Qt?I{#JoN4La~fB~<nO zPJU<UfB!f90$7)@Zg(yD7C*4GWNLfpe=%*dIF4rxdEld^lILvo3;zBL{6F^}EPZL| zCGKDN$6ZU?@c*sW=9TShJJ(z58@m^GHn*=|+iBT41IdU1qc1H=N><jq_@I>BWu)Xg zOwF)<OG}cJbS<g;|3FGs{f{UmU*iAa{zNG`jnSWHOrHjINOoo*hV#v>m6xo!Sys)h z-v$Ib!g8-EbL*_{D4d%(x5EECu=IeRTWkJz<ojj+5BDeXExLE->Di|O{-UJu>{+kI zUiHK!Ge5hpMZNX*rj3t-5xl&$@kk3_<Y*nid%ob;z|B^m8<(=j^6avVi8J>MXpj(d zY8`cr@XozN#=8&j?xJ|$tA&H^7AmbVWUYbSbL-O0>&syUD(yC(?4DbZ@t+U)kE!rs zpWFhU(V*Kp>Om%@J1xlm1GZHo<U~(D50D=lBX__}fZMof@3?4ni_!Ej1kN90MXnwf zBb!yR1<9)*=};rgbE|SczazBv@e~sp*y{8_m|K%#1a1^~-l!Vae3?F{^z<7L>~Z^c z%Zl~H4tOKvvx!ze6I%U-G4erY(3+U%w3;FM1?=8fXFLZGpFj{tGl$rM_b1M+HNw@# z_lYsCdF%q-$v!T+E$}9zxjSiwt<2%OV{D@)TU{JwIDhJm;WfArx{|W_w8z<m_Id~C z?R#S60l1@E2gLy9FFNC!pq}%~Eg9n%0O}jXsKZXDKQoH*HM3%T(kgIU+z4Cg>o<<E zVJ`y*5=Z#FS?g#B`;TV&^6WWTgFFjb{U!vtHyD6$9Ti8z@yThm_DM0O?O&@pTEo3p zH<c`99=~afY*+o(XgKNN8(hui()|ftiKgt62`<F8_F)-rb!K}7q!4VufVc2G71rpm z)3etn%_ev=QU{|kTkYxasMi6*V21wA)^HScLhh{A=GU8x_~3&Zbb9?(aR>L*VdHbL z@AunOGPiNV`4%cRczI{V0&1YO{w>8Cpj!eS6n3Ujlh&WTU!LR7hSt9o!3M)%QY=Q^ z5_4@CP~V!Mx`7^oteY3_pu^#(F1S&uk<PbJ&L(PrtM=Q(HE<KmH@w-ZeSc#8dKuup zEy4BK^;`Qz(cOd4kkwWnQ<}D5_~G$D&;(%@RJ}3ZN~+o6PpPX()Cr43erk+-Y%XSc zqX|wli)K53MDOF?=V==96tu2+a<SQps_FWtYxu`5J{N5$cqyUk@&AM5C;9*_sAmLq zxC&ccyY=ysAHr5Om{Zyks~qmV?xm>v7)jt3_C1Ii3V|28wmnlrPHgZO+48re_&xtR zZ3|+!+9%Nj&u@7`x4#(r{Ou|72=q&94Av^@`0?;|YdG%4lPw!x)3MKD_~YRL40~(O ztZdCjJfYihb$K?$_1ZmjadhuYBNs<@%g-q_c!xP_uzG5J@SHhoaJEqmw4K^>Q#F`j zTtx_*JKMB9%kvm2ocxSiW*^Z6QycB)GfZ67@x7a_U)5}|T3CU6c~ka??-<lzdmD6m zdv?d^b!S9}(AoW+kaV=8UO<sM{T^(FTX;rFhB>>%nsmL8;yRy))v1kIo7gKn9a{S$ zin<RwlxDJ=(BEjAznG!*hwW+0yky;Q)kt{I&~JDjN1aU$o%^l@k{wUp>`~SHhRYP& zZuwiI+4!Kq0K#x!vyruZ&<aI1z3f`u3^g%t?}ffzrKsbBy%wCghJe|#HQ~p4JHT6G zcwhwVoq*-r1o2#A#yl4g&r-z6sOZf4?Q!cEd^yc5ZB0L%qqyD%U;>=ozlt`zpP`of zyF+l$hMk-(y_yH%B^1}~sf>ZS0Kb{$hkmJw&AL0g-J0*_WeMz&Gc*fy-+&uy+(^F9 zDl_VxXbny}d!2F9Ijqg7cMcGDF0?jwSIp5J_)YeDu#Y-5&+NNU+|}0d0+AIR@~#{i zE%}ACSlhq6Ta0UWYpvn_BKB>X4f{Zhy9ZA}f=^&FMW27DLKdmH&J#@VK^QOeLOjoj z6%bE@FA!XF8oUoLXNxYt>=rB5)kT7AZYnLtZcX?>@U(wDM(u!in;srzYe>z@w?Xj= zSb7(Co}!!{U6POmampT3<(&O8#q5nhMGfE%O+TDC`8}K%QS@v*NHB-}VcEm`Xs|az z*7U?CMP86jyg$*y_d{#nonvCq2<&vdfn^Qnh3x;7+4~T$$81_G;;dh@H@0NdV|+9T zb|<X^c##akD|(MM($iWEuFx95c{`p@w)^1N1HbVYRtjVMMMo#Ob4=T#U1c>`XcUcN zYh9zrqZ46+mfKb>nq*r*>>V}sYbaXt<pgoo@3*?}Mp@&vKQX5<>TM^+TwHXLqBVCZ zCPpW@b!h=wQ<0+U60(Vl3Key>6e(kRLqc4@N~q1!hbiW`=OWz}vK}fH-6I6qgad(H z1@6#R+gt{2)X$0>-z3OE)L96*(AEDHY0L#gx@j>RuN07d;8)A+8LSf^Z2BUl`aJ~v zg+zZTtNwe6m{vPR3tsjZYx}_WicyQfA!_4p3y!KGhBI<4WaFMov=-0r-kadw8TEUe z-W1|;AUI&J1^28?utYe(`S^*GVmvKxCGcm19)_Ta708t^?Of$mF+Q9aA7EG`SoCmi ziFQ5ioEpbwol9u$7eNoS6E!eF3N3$N9}Yln`!%`SOQ1XNRtTFv?n<jWI<7IYhqpuc z>{chF4&xKL33MLDn~SQ+TES4u=!C%#XI#5;xPX{i#Uk2I*MJ8;W{<ZfX9sEI$<E~q z;Xp4G_b|piD27MH6e8a2NJrsE*|?f*)T6j?rnbPygoN#ham26Y$bQ>AneDaM)*@HJ zHBa>|f?dX`M<D>&h{{avrx08Fqc|`=8&x@jIf_va+x`8P*-_Yo(?-&)`Q-;m+y&TS z3GX<bNe^ROlp(y&T6Jmg*E!?36zhIO&|J8G3on$w?1jjp0516Je8`%XdJRQ(X5S*b z@!I*;nBqbs!QEnl@TWYmBwtf0`eIU#-RP`X(~?t)4QFZQb@3LcD!i^6jBb8}qSoWH z7#V}$oo4`Qa4^7SxDmD{WyeYE<|mn2{K0LC3nu;@m{oAACBD{@Enk{{>kdK1>y8+m z*K9APokyHVh>N>9l$c8x`|zlM%&&G<YI9DFrT8P>M?e(ZKKUc6thw(SW0IRn;k3za zsj}w2pNbl(sO;8iK9Kj1aYwyTfzk8E+XPP2UT4A;bZ)yfY5o9;4+#yuuHr^}F0!Vl zK9C?|BId**oZaKv4e1Y(a3>?opcx8RHm0@<|6qdYY;|+v5pE0@&Bs{l=?`J($3slu z2?0!y=%ZPjz9w5A8sjebCfxlA8xODle^`t>9`4O1Q!m!mh1=RI4%^4QhVfg8C`7!+ z`&y|Ea4#k@FSDggJK6m36k@AALdToEnADpLA+Q&mPK~5ptH(zq>jC>>xTkN=7#C9y z%_8~8xE}64B<{`0_9A-}w79*Gl2GC9p}G1Q4SudR)%I>5O;E!-m@TkB!@<tQ)$Rj* zjDow+yPt};?_+5lY;FJ_xxR>=PuNH=gn9mP1YNp$8V!54v}ro_<3;p6@UcT&_mB#D z?#Q20+WiS4vN43^t#p376Fvis%KbzU-D;NOVZ4-Qw_1_4PZDvB+Y3$;+HhS0Vl^W} zA{$+4^(QOnO=C7RP5LP!t}wB($5^vlK2=186fd0~rY;CoS~jj0i~MOK?gH;}Cw%C5 zm;Tce*yb*Zw_vzop5J~&%05G`!)y;?gQl=K2|GSly0x|BGeunQUbb`0F5(UKX`=rz z7VfjuI`oGP{R#<t5pS)0Hb+Jqy${z_W)QE_TE6eTu;cSbTsf!xoEq%4mHY7K<*DI+ zZVi5K0O?A)k>D+~{hwEZkBx6?GnOgjNCpSYx%T-SKR%w!Zmp)xzd%B3wU74j-dm$F z)?z)skf7Q;4c09hg63)zt)*WiVlKjirP<<NOi*2J2n$QZD7Uq1iCO#<kfJXkxcC-U zRsR3M!=2b+W7PYX##m+M0a%xX5Z0;|bNVC||KOKVWSjhL&psy-HaHhm^XPwh0@d6< zw@JxD=<NBb*&|<(z_#)J+!)Ahw-&AYm2+UX;LhJ_<RZ<jf!6b1rPiSNnTEEz`f3?F zxP>1MdUmT5a~UJ2zNQwrwKtkJoZkxm*Vf~Y4;tcYw*S{9@FArXb!X(yHDy=(^*S!U zoSluX`HsFpMlS}(t#&suJ+oy^(dFNmMg>WS!?eio%0^af-fvQnA))aElzKS9^7~pj z@%iR7c6T^kZHAlhAYe|qZ;^3X$aro)Yj)7L%9sc6EM~*(DcXMS+ho+E9wse!i9Dyn zRsj#ZH0o{b<mKD7IzR;MxER4BTOoXIziaEqcO=l|q`cY4ivIpi8F>Ka*=TqhbK&i` zrniS-!?S0XwrYQujBn3?`fy{g-*6AF_%FU&#g4b|*?q3yevgcc$wW;ew6L>takUtT z?@i!FAyoOJt9VJiFNL_bd|#`L54l(E%iniscER_{$j&+Ul4iKduH$tnT$UuJYWaM7 z9nJdw0Tnfs+&i}hnnm)1i5lGQJ^E;z%p@B%VTIv+t{;+7F<iab2rJPwKTI$elyyn5 zyMBZqmYFtuCdFoZDh2sR>yRV!CwF8uo8ZUlkjp#)k-3|#z3xv~VEC@YkJr{=2$2zB zkljArxQw3=>H*n$af5@gbB!cj^C$ddjO#DMEbLCb<{SH|7~4jm*j-g?4^r!ejn0)j z%@X@*1-H2eMMM4>8QI=|I=2Q#wT;@G&}bN||Far0#z;2wMQTx2KPO_FrxL>EX3uNQ z=KOgXGvy}B#@2RNzaU~S;+~V{Q~yN~wfQ|G%_jLJ5p#Mn!Xv8v*7CCbA0+7v2ReH$ zCwA_b9rKsdHCTZ<xc`z0EOfMgh19_3y)_AT!e-~ACcGsWQTD4b>TQ_8utdR%(F`%M zi^TkWzZM`~-@FM}7^G=~C7YpY>(j3jRDS}DZZPMNYGj{icLsh#!N%k7W}XTyYVJ1) zvRfMMWOh%j_yHj4Ir61UvAusQs)v0O!<q)oMqJZlza3*PE)%9A+rL9F2gmlB#?gp` z%jNg3vXA`T7`40+++1gCR@d*vsMt_z^tgzUP=VxX>az)t2;S`aeS%xSD@ps2(<vKG zk=#Fs(MAI~1%3W_Ce|X%9{Yzerhk_R!obYS4`Ih<<7#^9j|i@fI`o?IG~-nMI7UXu zmLkUatxoLR@HYFOaBTYU*J?L96w8$_&A$9o89lWuWw%_@kbfp)H$FAcb}oM|V><u+ zaL|bs!|a|`{1bl>BS*W$1?<)m^BHZ+zm$>fZY`CJG=HR(b?L9f8ce2R2<dLP0xP!V zUstH`v@vG?Ttt@Uvxzaj7kc_{V#JFF3y2%hqGSFx#%qJOp^<jhu>LN_qK=Jxc}Ykt zu0VfJuwYkUGPyaoPNOzzxAFgh;F`Rb9n2jVLS}0PMf?Awgjl==(&L(_BjHKFZ1jY@ zV#L!wN$4ier(g7&v|IBn{Ii7IA0EKVR>SCGN4{Js*3`d9sP>i1u%Y>withVY2@@`B zPsi}AW;0Y}2K`%%3i<y>t>a;T1`qQ!&Uw9-*bCr$u>VeQk4|ni@_%YF^dAJv<oLv% zZJd){+sXeYMLinz`f%zVF6iN~=FV45Km8ZQ9^jbLi*MP8iX8nnMTFo$cqaz3#+j#r z!iMJ08fB*bKZ*-kCEZS-8D_$_jCaxhhhSosM?0z^WOnZ=i2oZS+8mGl_FfSs#?3}l z`gQ3{`K~eAL>BR=J-*d2W=7kopP`s0t0cT%*o6nxib<pdbK9!f`galB1?N0Wtm+sK z^%#O2<UDM2{;6rh#|oG}KY6orN3D+^C!m`6Rq?so+|ku+?Z?N+`@;j9g09J2)ui|h z2%gV-2gy$k;RaC@n3CO2MFYPf!!2{5HGiQkA;ajGctRR?LGQC^FET!HE_6ud3AaKg z9Z1L$iFj`RYhJ0l(>3AS_WU(a8TotC$fueC?u}yH#b$s@tW9|9_>BoJ<U;cq;1+cI zR<o_%gri#r_F5B-qG_-v#fXQH8^yfD*91?~)o&W(!KS*n<H8hd-mJ(KlRJmBXuc;) z$hgl8o0>m&lwH@GNr(`GQb11l$hgW!P3TNq_upJX70lM`zEv>aBE~e!kz^`oV=BG- zmNDj0Z_;u3Z=0SbYAf(t5mb{G%UsU4kHCb&l-*jzN`Gqsw|R~#%`5*lF(O{ogdJwL zK*M<vr!ZQS%iD_B%qhRndGizzlRv4KJ*vv;`c#T(lDd^IW`x3&-BwKtKaJq_7Mq<a z;hVu6zE78s!3{N-p!yFRoZHV@Y|S%NRIu6cWftbL$*qAFUwtpB!9ufgDO&QG6t{nJ z0CyFJ`}>n3+VtkjSK`zI@7%wghPsGbor*vC?I|{7sIpqCgW;#-iH=2%@v{i>c(}lP zV9Kq5XUDkXHmK)uDu_LMoVES_I}qf;Y=c?@n95BpoP>>zQS8r&Q74@O68kN{f276h zKbK$@kYv8whLqH&dNT7oin{m=ObM$Fci+!Xq5FqA8@FB4+3!fuZ6rpJ5y<Wr;3?%M ztA=*R?FDr;Xr7Zunbj|p(FfDw0B3i@ICjnYdJ#v4cu3qTMVqs1O`>JJdNIQsgSF}7 zZWfa5R<TO%Bj`4VhC^@UE!FlC%LLWsv*`5kCBA9<)Vz5sGA>+Oga^tRW`oh>YE{O) zJ&x1pWy_Ve>t7?7a54vhRS?`1Dvf+ZB{uJDj3~fm+Z+jN=U&j!=R~yC^{{!_c!@Ou zy$kn?c>MZ)E~a+c`4Sm(arbHx_A};-c&UsXWU6R&?@X7&?#`Ab?WLcW)#F3f(Plm@ z4ga0$@f+u>(D2{69)Gghu>IP;?OhW13(1$Etp4vR<KmtE1?-<RAN0E=kOz(KooKf8 z14+cw%+7H>jk<vB9GXmBNFz7SkfFU~bWz6L@AYxN*d9RUV0aIA)N80s5?)NaIk&FX zfCoY4t|FS0ZOGV|D;x~!P=RNoDjvQ|GAaa;!)prdhW51Lfw?T>hB-pQCTFi%npfaK z8G8XImD&zsQ$`&@F80}YZxKET&6a<68GSK1DimMHLo#mTvsul1yp_fTPa9-Mj*RQv z*`)2ruOyH${dpJOg&z$EB-LUrx^`FKY62bIUEyTP##DBu*Akcu$P<y!(-?)eO;8t< zvq7<UUQQ7Gi9pNeYzR9zUt1|NXeUNag-~W=YT9Bqjd`lK^{>mg3%WC}&7B(}a`W4H znw|Bqh<UpZf~B%YSF<!8iE-~NFSjO;Gt^xT3<Wt?Q)uV4H!IZ3I~!Lv)?Z=6W5J0w z2Ft1q`O`z_>=tYC{0fc@7i%COO>oO+w>jaBKo9jRE8GXS!4+SIBDeNz0?{K_j3Of| z7hSV+-XlV{o@wzYGrO;~ne?6!YW0j$(<oL=qTegR^j_J8L>(%t(0f;?n-{LMI*W;g z);vwE7}3NSq6pdB+6##ANO+nsC%~&>Y<r3aNeE!O-)ndqMd{;qjEax3!}S;Xh+pok z(QLTA7|{!p-I;(Dw}8xnik;Dk(Zkig)ra7>NLl31TgA@k2FO=0@3^3YPQQKBaC8;x zu^^b{VXQtrj0LwIo1L2__Plu4b3a7AzOhBGF}I9vCgIBYeVter&`W(lYk)WN7vPE4 z*1$uGiD$L_K0N!@TyJQ*u^z*P99wt*5BG?h=h@O){A!Bq=kf#|5}Cy2#v(PytqS*{ z2X`R;x){Lb&)-*UcaO2@jig)4C(@q_9i}&=fF+yJY#G<qs-w6bVEkbB!-K}N$sw9T z;L3}FOmjy-yJ0tovCR#h(74RS(%zgK##sNqyg4_L>d^enxx_k!@725}M)Wf)Ja>XH zpHAzr+svxhate;;tV6$H9W-lq64c@PP5)5OxHupW73E5tX6;TZ%qtta=WqIz10N5K zA8W}*RqTUVj0#V7c5Xq^Mzm1Esg<omw3Z$d%yEIQUAbP4Orh+SDmLeBf+{E6%0^Ud z>pKMTq_fw75Q_yw0%*5(PAb%^58p(c-0k5#*>)eyFSz*7Z02g?`e=-N0Jm6<ilZTf zt2NCNq(yAKPl#$Bi|)g-oHh{A?w~L?BD%ywfzBOgEd%NM&Rqi-jamFCPi{T5{(nEY z9)iH-qG~4~?;oSqn?>2W<o?90J_jq-2h4*mnnk&Npq*ZSpiqkmn1*q{Pd1{m$NHcM z5f^B<f8sBVooyoNn(h6;1XWWlxvkZ7+J{iwNijYKpTRL~DNWpQ*x+pW(vUxtAj4&R z8`cd^9k4*uY-H_@+=p>w<LnEYn%l>k&GXs_uUi!5-nCg=mnKgiPB6{&c$?vsUAxI{ zYvP<5b8mixfZN<BqWQ@`Qb4q~#Ua2Iy)p6DF<+7rIug&-J}Sn>EBOmp6ExZV=m@bm zZucRr&v4wxw$r>39~0x<!S}J@dh~*BYiqfoJ~l$$hctoFF?9YoD*mO9i?Mo;q+>BB z{fg{-e2fW?;`*1@8|fhh@e^W1NN&&t4=FlVnjoG_tflwC{P@He(Wf`?7k65cs?XL& z34FYr_DM3nkZw8~HQ_JCOk<y{qOOFUoiD`-?x(1@(UtRTT+L4XR23I;Z_#8z`RIwg zAV&0lnvCx90b39GFy7`b6#vsHewj)G?sUNU$0A<h)$H`oNaI(}CxJzEx_9M1Gpa?I z-oeeZX0oU4%sxxTT|kxvE%NfSHB|8QOeWJq$bx-v*leyVy8LtE8dPa5qOQ)?Y6{}# zrVyL$iIkcBc}Ya{en5B_T(IdjweFPF<MUJat^LutX8o*K&|kn%tuRO3oUOq$oAL`I z#KU%fA5I;>90`RtSCX{Z^F<M!(a_*Sv)BKey5t94*)7&~M_(M(z^1o2YTsE%#Gz(Q ze@TQJ7|{#S&)OROrAcHLF5WnUqZV27Wf6K6<6@q<3&kvdloNNUFcayQN2qlPFR~>( z;rqv|LtjCV$L*s6WAc+%obub9*v()R)mP4g9+{!JZP&aVUq#R%y@>UWlK_ESOl_a> z)e0u2OE%HO<oV28e9a2^ni$`t-@up~@SzRjM?14ol@<AGW7Ocyk#I_7BPQe;Z|Z+t zj0nd|a3bD1hD)Z=V+GmLtVMl(J;Cf9!J!MfCn3vYyWv@ywnltIgo`JXCJlqTOVrTg zk~k@T9`x}y*5F1HH@~M9d*_=XWV>%^^@kmkH@cCBNjsJPW(oDEJ-OAwEz1~WOI#eY zTdu`kd`nyho0<UpYDW+|XAYK%(;M$^Rj`>Emfvc{zWz21d9-{E64iDZM;R-U{_P4r zScS2Po!|1ro$lwt9QzIl*)7gs`8JC+O5m;l?srPKm~{fO*rbhvTn(<Bx_p;Z1K6xW z_+aY*wye!!7d1cqcPq$~LpYj<pGnOh@5G)8^A~+jgbk6^lcEpTtT7$F^H4P0T`6nk z_Y&+o2gRUO9PPog?cp+=-Ck|Y{5}bDTtF9h8vEijJOBGBE@ozE!Rz$nUc=}JZEy2B z5j700I&OHQT-($AfQTMEcGJjHpv|Zsl#%a@+7LgvfSgU59{C{=JJ`{lnr#2Dh%6r0 z<j<+Zt_ow2e?-K!zL~JGx!PKrPd}<)Hnam1b^+d8_%Q`_HEe2j|7!O3kH@I$g~8lD z)+G5SYH*wNvu64JWQ0tf7sh|~;P}ACc{S>FEr-ufMRhptj@mPbDFa_c!xvMuk^boz z69OX3oWYIv%i2i)Obu?ck=8t(KPw{JYns^Gm;sDEahyH7v{=5MlWO2B-n6LY&NIy~ z^z%{;PWdGE7Zl9pR<kTWn%@3J1-GG;CHz5{jpLUzRN)vldvujG<ChieW^0Dl&%dIe zMrK#`T+(#rug0k8{c3gEqvl!2l>YrSf?3=i4aZY^6{(p-Y5Ry@uTZaT?6&q!AQG}O z^w0G)+rMbq>NjFsZ_2}R=rRYEsRYA?F<YJ!a|t86elxCt*&o{zsz!)P^u}++h!b#^ z_c89YfXi3pazwr~Cr(N3g_izyfO}=jF8+9>uu(e`UY}<G-tWYC;Kqd*y@q>#?R4{Z zV?21vivwm$PQurK5s<%E;cZ{ugv6eZ#~u&Yn#~qXAN_ue=<dKa$J9Kge^6oWY+OFS z)!NuyZrumU;b;VYmAxLkp>onhf;8+ul(3f<hkaI&-an$)#h~%aaM}v@#|&>ghTP^h z8$;N^**Zb9(Eo&?Vyp$KA$~BQJ9o5uh<{3P;q}I_k-1n}&;A+30$UVboalBzBQ=|= znz!iBL)5G5@XpY<0DoX&QO#}dTEc(vwxE~(qC(zXZP6r)xk#Em`pW?6^5!ly4%6|o ztzEXnYA3LNMKHU?wB743BpN%>r|1*<Yl4aohGAZ1>SWFCUByoL8-fY$WXOUKhS^bX z1lQuj>5|{WiXZ!L3GTvteTvolcLdYC-XRTYc1txs!QWF<bF$v=K~{S3R6u_>>tkhX z|A8Q5=)wrpgK()JyTw{o<$ol&4sR_=JDiQEt>OP9Bl<i)?8->)4AOM)KPRx|WURT! z+J5R^638|N>-2W4|C+#sw3W?dS&1h2w*)2}y*0csx|WzhPXmqo?-A<FRvR;QHEUx6 z4I};kLqY><UwCvad-iB6?0<^5MmsiYt2S%?i(uL`9qs<;unkMk0Kz9j=<Hde*xdh3 zkTHQ$)0IxsP5+PL1$oHYoz4s%*>1GA(X7({A=vIp<N|KCYrfh4C8##(2)_WDJ*tX_ zW$CW+)!^OBn>Sl%JMm|XvJn*v=8S;2h?Q0IWZgwE{T--@e{^LbS=SVQ#AA33j*3Tz z!zjgRzIIX&A4?F;c@lLg<s&L<&EqKI82nhUM~0{A2XQk0Y<W_w)5jB3%r^!OyWVh2 zoFDmZRZ!o6pf1oRPIw71mii4fRLBhxySK7?Sy^MBK#(Df1rsqrGOSU*J&4?t`Td+| z@x9RECo<dx_ze@WVNVCVy9pjf77TAUT2qx7bB~DDY9H<ONRq4Uu~gdlMidoh%QPCo zTr_PT_r?Sbp5XD<OYF&K*tz+#qsZ)=P-MG)qj#wVkwJ}cwK(`EC2%YE5`SzWyT=pb zi*c22n!uOR<7eY0YzaL1d~yQU_$XXpW!UMt*qX)mW(n-({w~cLfAa*YeXx%{MUdTI zMRU9bL3YOtcu++Wo93cwv2JgvqM8GiaDcOCv$m&vD}sH}8F%&?p=o=&w~o-9^Auj0 z9yfg<E-`=bwDWBw%*OAhYV!NGF`_fWU27X7YxDIf0rHKjCXE*+L4Zd^;lfU%QPti( zdTN9U?W|92oh`$fR6Q-mKj;tlAZ?l1y*FyJ=2d)pjCoW*B1@AywGpCrZuN{9(VW_w z+exhjy!))opL=862_#7=TIec>Hd(p)P}{LTGe!jM05{DbUI6zXVfW@@YI^YPVoa;} zL$G{_P1q7>55Ikd_VC8e?&h_tEfTVo+qSa`+Os6ID6l3QP1##KTSSWk(z5ZC*1dy- z7lmal674w>TIAebB-(Q&wCFm=BGI15(N<dbg_B^BXwR3>qOiq9qP-(WTRpwDy+A@c zwYI%bLTfg^mHGA}3GLM8+lx8c+UbqkeG=NKjoY$>c536cBB7nyxUEWPr=};@B(!FF zQi+T>TcJI&d9^h<9Kz!<=+bJK1wgZL&&8OfhaFB9LIs^~r6?=;{RHziJWN1SX=LkY zrC(oS@E*Cmwed)6b^X%KMP=gCVryO+VQxY288~1uNoV7n^x9eZ%L3H%SJqpY^cWH= z4Ldz^akJToD*p9%3UPNX_-na5MR~RyX?GaknV@3lg3~aa{y!UC8{v1M=&*A#q28tv zVOQtMvi5S!yQ-*oGZ*3_nt6v4K3aU$<lS_1`z}G_Hvu&N^aG>@CZQDuSx!znzVkdm z-p2$r?lus8YBGDo6DRqY+u{PjJ!;>A3k9<=KCA%=J>rY^`4X<2{a&QVRc^dcyz?;= zt;I<9b%Hrs#HoX_Hf&HllZU4Htp&}GcS*r)o<&U4S(gd2O)?~f%H>M1mXZEJiaOkz zO{S<OTI~@g$F*4n;OS+XUmz5&Mb=|8T@MTzENn7|)<Wu`jsLrc^|-!i{cI4+0q+&z z;?*>ZT;d!8bIU$NkmK=RO#WUivSTa2-?(|b1%cebn%OEQE2q7JU8$>qRDpaAr)bry zqy{!xi4A);rgjo^jbipD5D0LRIy%V5PH1#ozqSeX>u<$=IYEAXt=KyR_w~18?^5K~ z!-{>KV4n7heS_jHYQ<LU-iH-T^GFfgvTQzswX=&yNDU^qX<oo?QnR&hDwtq1w8!B> zov$+zIudh1z9K;0TwRBp>j%9loW0p|DWTcf=-QdhD+&5R`{=0IDW`Tj?mZ}4F@XGW zw;J`WCQ0u}@a&tt+|16kyfnYWdl5_{y+$2luDoV#)y_8GJB>S=K>o0>le62aM02(R z+^Y|_)^9E(KZy3`&#O|1&HTPf8{08rX9$ncuqR=%=cP89dog0SKoe%K0K>Uxp+q$r z&4f0>44$1B*C=`+Kq|YfnqRgXV;V=^{(f)JG)h*p5{no!xU2>%4V+w)36tMmWgosD zV?$(=oF+AQmTK)ih%wz}XmPg(wAhwI5!;9KEGRRVGJAV5zEQ{v$YrSP16~~?x)3-M z+p>szu8M5kBFL%aBe}Ar&ELL+Ih;-5VYE<9Ep!eY1(??$Ed^fVT7-?LtvdsQi9L57 zZtxx#+vDK@I7VS}A2u_)XO**tAwk?VnP(kt2%6uw3C{_>iZi09aJRqH>tBMTA5Ghu zm^0`NeGNgqZeyaGwNi=68q0X+cP@mG*`ulGp$S2JxII3B<IbxOhk*Gbsc3^~h1l)x zg4ysO+_l+(>y>ck8iHoGQjytNg^73nF1ZU$*G9|duWyE+`7KpYk5i~Cr-^zyg}T}l zRm*~LhoC}2fo69r6`4J$u)uwN;wB|g1NkGF@IT<4*+(nHu~)H^9eAj?3x_}r=Za== zzfXwk+F9a~24~L~rH9`)z#X?wHu?o#N+W>zJ*>neykCrXZSU2f5s1JpvW4$o;o&lU zr9Hk?jPXuqGi{*s=?7GZQ+UJs&^0ku?fHGGM09;1L9{D%*udN#)nxU9O0)~`?!e$; z_0seXduTcvHz7HA%kP70aO3Hjjhq-!%+UQIwaCq+N$c$ojj{cTW{0@xyiqjahsC(p zI-ULukN;mjE5;{rSLe&JvX;I!#@#N)`&Wjr8y}7#&L$M;g`$2qM>P%Iyn20Os}ZWU zmVQKxY7j%PTp8BxJA9;ob^a=ZYK4ILeX7{hA0;6+)q;xm=%WR^O?ZP1-Z?zAHhxTu zx!Zw!M@?5xO&fe{jCb89qP|oV-Mx0~;LVjD&4crCHMou2tmyrZufdL$QEscXD2`8v zksmh6psnU54bDbYG~g!^RP>@;v>9CErsmI9Ww-W86>4wLJ#W%KZ@K4n!s(OUQe}<# zWCfFKg|pkL>D^C>a4(pb#~Za#(Sn~UU^Q)<mQnQ61iTCFNwX6eMeBZg0*_3P?D5ll zVV{w}jHgGoq$+drGX=zJ`}>ok`Cdtxlb@ADZP?O;t&16AKU=`up%2C7kEYVf&q*N? z5y~D<MQT4cg&B8jemj+({X7A4LZ@avqT*%zd<l^aW_G_S-rFyT5OK4z4i}dfv5si* z6JMyJ5;4l|VJ$NLi&W%=Sf9%J`Na$!y*J|4FuT>-UgAqAu8+?S7twq~MMr#T3Xu$M zwk#{N=gT6@%_BIK6^;e65tUWu%ae$tnfZOI=)$i^qBhGkti`E(WrVraJ2;$fx7|au zP1~wP1b<b8dj(=*;cj|A1-;0z{puJQ;{_Mx&sJpkYa-NzwKK6>yBF+-uZ<DyDJ3y@ zv-?%CufI;hYr2XnbM)&ayzSnoz!bdA^q(@0-w>f%KkEV_$&_|}V-m6H{L~@>zbQi9 zHIFYei+<GdDtxnq7Ad`4N!5He-x8t0<iA`DULP~^TPZHS1w#fgx1E}G@NE*_4RGN$ znjM-I_U$ReRQKkupUUaWcSz`sq)1yizcWVD9Dv!a)NJhU(s7$=TxH+%-4U{N!kr(( zX=NjM()@nklR`Ydy&XHuv*(SX<G)uxU4U;&vHZR-i5Q7*wj600uD)Nu6kV#>s9Ns9 z*TtxTOLcb&SEG(>KgU9xJGR;zdp}Tv?@YnC0@*#FMWg><SOdHP*WbpM1B&q}t^_|+ zVfNu@_=0_E_n`-On$29r`ut%LG49sfan(G@KN90z#K%O!#^qvZ_ZNOtz#@Z}FENT` z{bMoS#%pE^$ZeqLzaN+JNE35=R9n-2LPm6Mo5ttOis$AhW#rvr1iRok>1_6xYWv@x z(s7&ib)v<X(cq_b<OTJ)W`F;TUV~nfd8?hB{%j2{*&Jt&w{{xzb24_LwrbJXKcB#B z+(u=m`U^4UC5T8|kThv6{Y8$tklCx*rN5NMY&vrjRwCXJ{N*(2qWW3!{QgQBy_pmz zbQMN{{;Go6RFXAo;@3ECvo<QL`>zXFP1~l;m*0r-%AI*HHqP?3pR#lO%>c7Eh100T zoKq<0U%!<?WT95Mc8q4*|8@$sp;pjz(eFf<SD|aWi4M+gsnWl{TcMh$jq~<JM02JY z3sNqsHZOmVpyHWk6Kg@U@_%2zYC1198~6_h-ZmU_T^t@A^`>~1*c4gwWc?vSb_YN` z=4Q#)3W~k(M+A2VqL_z+4f9m$=|u|uF+tshh}OpUJQe-^ClqhCN5wY3SC!q{pUQYd zfO2Q0X3zgwiFom_=-djl&+fE6okcFJY}~}Eg3;iAUV}@NZgwwgp6<Vhv8meS4bMkU zXkW}~^q2FXlji64yrzf$s>1KX(a@=STmD+WBEp>Ax7w-6-voG&@xwYKo6lIqvi@5M zahI!!+!54Px4)Ax_ah@WzgHD4`1c}Svo~(E_Wgr|*K3HU_&fhm!kfi_+2fbceHb11 zPcfdEftx)t<?}~SSy%p9LYz^^+%{@w(ElPJMpqp3+owqAzs6|m#b|oijZN8XJgs&A zCgAOd#%wm4=70Kk3GLd(ZV0%@vHK4Jui@Aw)<e9j{+}_LS&e1Io!dsuV*f7{wdq{c zkpDZ0EG!$@a-_a`T8B)Uy~zIl9|1csHXE*9T7Um<4RW(}MMGYC48DJgy?C(?)(EvT z;{_&vq!TL|-ts)7BR5^!6is|rj0{JzCgw9#RoN}oZZSND;lV6okhzkqoxMLcK*X06 zZ6*<S_S~qQ+CJ@Z8Y(fVb6czJl^!qRx=UQ<)Sq0R%^qE?)o(!2&5f${V!sWcpAEH@ zw&K1a!F{CNo9>cl#&dgFvnQSq;=z`TrQOf&Rc#0O#0YI0-&l=|m)w?Vw*1`!7BO8G z+O~T*USzstw@ummy-|gQAq%Vfc3Q0N@7_4I+$?XL!aOFR`MsL(_B{pGlQ$u#hfQtk zggy9Fz<LtJI*!3|M^Lkf-ZaKq+rMgpdKNa4nr3}+9rme?=$jGr(;U$^r&tX~R9l_j zf?&<|?4(?wlQMgLXy-U@nM9?7m@B<nTi+^y$`sH-+xpf?)TV7+OPrs-4QPe8A*hj3 z&u^b%!M<&bbjc*Tk5y1UUP8A%8(Q`hg7^B#w)NB$>ZxYidRhv#akedOo;*E9z0#iC zaxoXggv=gS&B}TPM~z&xxtd@tAw#%6-y36Xug)T<g|_RN94p#FFS1>4N3hmTv0ZP^ zu^P2YJEwRS!4iXrvqw#v1J4!_x8N<=%?no=?OL^%igyrEk6A*XT$#~!9M6d{!5whD zy%#?+mEW_9Z~eJ49#Jj1Ez~s2^I}BSyj(1;H=i$Hk*4MMrV=&wjsjj8=CmJ8$ZT9K zruPLpF66okCrNe>D=mJZhJ1=X!WZedO<Sy3ST7ck30(HrYTEX`0PkoIZkUcY2awsg zsZFQogk^?!%_LKfA+x0@v1`Utlof_p&6<X&itMf`sAQ9uKcY%&*V4Eo6f(PymDZkB zP@A?^^HQ8+xDcXpP*ej<z_Z(|%+>ot>=8WHXs?-t$}oRqm6`Jr8Lz2_JJCXX@#&>9 z;^qKyHFgUEoZVLKb<CGV$nb{1r08C8IStGa#_~E@YI8?cLw~0_^p(>@f9E>%)yC+F znT+>n-bF$8=SQsb^T%GP!Mn~;12zB)t--s^Q3Eyz*)`C-W)BE8@CSy=QJT_hxmV`< zc@?$keAn80K|x+Qwf0_AQBSkI>k9JfskL`QMQz$%?Y#ezj9e*{MysY~AzZFQCe2>t ze0osFjs-hge`u}VtV2G<R=>NB9gFuuTm4WSa?@5PyzqF7ZA-?+Tqv@^lHYO#{Ynk` z0@h0f{b~(*^R-etExeXSUzC1H?6)vxeS04Crnaim_b;!<Z>ndM*6+-Neu}N%t;cVw zZ<N+wp9j5R>ow2yjR1deJnYY=aM9>euMb%_Vk0qM*Cg^0Jr^YYVGZ>ZTl+{Fx2c3H zt-YzCHf?QU7le0&Um@XEevM}Kk`f>JN*%Xhi?xWh_t23e2Y0rWmbi0(_pRQu2A4EB zdoF2r6yHn5Zgx_s`Sjmg$0be9?rmj0wRGfD8|7Ek;F2cik8)y-#&<{C0ru#`M(~4a z(){+7g1HxAnu|05$qvNw+nHDo(bL{ZW0LO8l_)JDwaZaiGqdrOo-Go1P0wkx{qsJ- zT<~h2@H)Q$#`K^Lx#7ratv=MT|G(bOJFwEC`um_L2=+>6rAU#sn`{<Plx)fpOm@R& zcfpEJ?tPLx?9IL5mXKh<iUp)7pi%^EVDF+}7sQ63U;!K0d+&{R=H8p!XU;R{dvo6N z%rAfCulspUnKNh3%$(8A`atTW8(AqeI=6qi!)`7fJ;6fk(crZ1c9y8yA49W!$zkSP z+XwT{EYHm>lBGIEU7E^XZfAi?97-IQ5xWA}8L@L^&p~z$l>uPuGaPp6`dkj<37tZz zI^6N7PL2>u{R;KHsX4699)Z@M5VP)O>ir1q5Hu*09Xev|f{bRKqh^E^Q$dDtCP!7) zGLU{3cqVZrv7}&?yGW@y)=Sa4>nxU=F|0TmBJT5i+>R#)Th%`wa|2rV1&FN8;6NSY zg_s*q;<FK1IfBue{zaIplo*j;oFdQ1Ra1d9PhQk#M#{B%R4&A%-GDfLFtr=oFXAPB zvYWPwM=;u1d#Ot_?VT&z&3U8zqy_WB%Q&`DUNkSf++~`>Rb!Q6qttBG>tdyLMH%Zk zfZAN#yJ)e6(YfANbl9eKcRg;^Yn*mZavoTHy^`=!cmExzRKLiouOdwQ46gq{S}~P5 zU$UPWt*@rk*6S_0Sr6p@=lXfx2eYMeqP6XLe(usME;_3M{l129twodA!O1<Bxm#oJ zXPr-Y>33t4RAy#hWvCYrYWo!z2Pm~Bdd1~J%A1Lbv91d{$cQiU(!4G!wk7h}*Lu0* ztr4os9Z)2C9pdVC0~jB&T|h3TRMWv=xLTPV7>(z%Z7Idx#E`A`UP8$2?iecXMY-9f zlt*85QIXLNr`Hp5>$Y+8WtCveH*}Z{n}oJIeirAo9t`I1H~N`VS|+NDUzTE4tHxu; zqf%V2$L7VkYO+9%If>&08n2fxlLzC;#`Ksunr%C}Mx~PaeQ;)GvnSE7fK=^E3P{se zVzTzVc`&=a$xqIq0}7f4u0mAeSmL+{=Dn-E+*a3It$k6Hy2i^jOIPz4dpa@AQ`R>F zrdn2@<F_EL(vy)-y*0%(VJhygndx>cs&0>~HM47as!GowGQW**TPwL%KV}t^iBxut z^L8)OnegQCnAxe^-|(*W^Ry!sR3WY-#NpV~cxpNH)CO78JG@M{2p}DyDC)nH^4hH@ za(eq1`0Tr~<fT^y94C@Wi>lJ^227GT$$b~>uDpkEn>%!-qL!4Wwf+ly>AfCmjf7pX zc0rBueT0|OT8@#>u5R8>i3M|EuV&7MwhIEfaf51SA0T8~7_GTDxd(w6?SqtO>R4kH z^A>2ON=+)~0?+-Bha0|r_F+m5TtEAWpO;S^3(PPd^>b?^D99}e=F#gJrt7@oxBxPR zj}c-n)jBY<eB95|zZ?U!dIQ6BlTEQ!!K&#-Ld>rwi89<zAS#(c#nLj7ewB&zpCsJS zwa`ydp1Kx_&e43D(v*Eh(V3Rd5Y|#%ju=lIb5L#Wvy_=@Z4T{Xey%H78TUXO`aEIh zRTo70{7rzF!^#C@C^vh_`MgMsPDOtq#WgMe*H;?lVvRU+o{{JlA5XjU4`!Axy1eEK zUCr9EYR>>gh%b4F?PhuDVuCnApnUqv9wt$$n1{M8f5pRd8X${l$Vb2GqmdTKQXfUq z-Rj{fyJdoP-`7&KdQ_OnXWfT(DsLmiY(pBUHqm&v-JvBVGh^DfQB6T_LNy*xXO^#b zm`Tm{t{W)XM)USvs@UJSQYtaZ^1cD++81MxrthF!zo_D|i8OsDWp0bANmQ<<6t0|2 zP-gVa4BeFD<Ar8`?{9XxPrI1d#?0E&-sAsPS27V>taVh0`!=9!xk%sNVYp3IXA&f_ zzL^z_tySFx$<=DK7|POjcO`4<4ZTbjyr+@-yOi!+_LOQE_4xZ<nlu;H3p3{ZP1EEr zPAgXI#i%30_c`K*YNatZk({OP9mdpE>|XH?IJ$|NNi{Aw+j?TTQMUHO4!Ihg**fW< z9kpoh@*WS*C#2Y$Kz-$2FSC8nSLab6O8f{>)fFr>=l>Xzb#<&hX5DD}u>Aya*GDyz z?zEJy(>XXj`BU@-#I40123B@IbGUi!*`js9&pkwEvrQf)7++pxEc*)|jZ8ISeFEMu zy}T{Ky7vCc;SH7I=0neRCeI`ia=n7c^lP5$3M;0f`0yJawPpustFDzEo?@$l9jM=W zxw%AtCMwykB)?;*xx{}aCfHl(zsFqt48V*Zo1y-p3tKk_tYb2n9z*^kCg(Q`Fc!D- z(4V@0L)Ov7BkUMP3&)!;`14A?AU}NoZ}<!T8s)r*YW9D1$jyQ$46f2>gVu+C>%w*e ztdxvuAAe`bx)~a+U;e=}{efNV@92c>KY6;+yU^O@Uk<gs`{ix|$)#lCik(UR?egf( zS9;nMbNiTi)AsB859Tgq)y4D&Nc|b@MEw`@l^RE0{Xa}L=dR*tHZ8VT@9UTuywB+U zzLn5((LU;}vcpbG@6HYtr{m#LH0^uDN@{PkM&B_*9QQtHBW0qT^nM)E^QeuKi~14X zzr$^1{cTZm$orX!t?jP06GwF?C9yZ7vGjlrv%I2h2r(U1i66+*={AI%%Zy=r)_7;a z^>0H+Jqqc07eeg12_cpj#p(x9I@*MglNn9h_0F!{$l6SRnIUZ#x7~QQl8SWwU_aHr z0U_5lv%awP;)ftI-GGpjft4THjjXH+p;sdxM%d2wgIG$G&ptdwDw+qJi-~Ph8<koo z^U?{2IC6mM<s%@~O|!&Y;7yP0!gVgY<f`XKrOBp=z_hKqc`qzT<wbM;qtnz)>4WBr zu9D@lf;s;&X{v2r&_47{j`8Qpd@N=94}6Q6XqWJDX=anB882x4w|j<^DXPgOW7dEB zn5er)mgg4I#5A-Ax@U&g&Rx>#6cf>&!d_|OL?JH6Wbzc#P>kI>P1}MN)6%hz=InhS zRVy!A;p_{^Zs3thj8=2|rMa!Tr}rqQm<eLtDu<aA<H|rZXZxhNV#@uA$xLjf|M(8G zTCG%Dcd|AQZRj6O4;ZPG=&bkt9pZdc8jI%0wIL}BRRIp@uomKiISJ8jbKxpfOayyV z2d0SiYE-D(BN&yknV_|!1igKH&@#1oM{|N4pO<?KST#JM!%9qYXXN9alN9R}oUuGO zO-*Vu&6~yaO0ir{FftAy#HMC51rD){Oh##M6d&p%x~?jh5X76q2(Nu^b$onuC_VUd zWj>KG+x6#(ts8auGMYmU?=a2n$QcuI=Hg=exIt8&c8*6$?TKm{M|9z4oJp){L_g9; zPqoHv?klP6jH>TPt%OcOqEz>&a(1-KA5RwIl5NA^lv+EcK%83bayLgc^G1t0PNChx zH7+rA$)+i5#>u2wMtNZmW^45fqH}MDT$vuIRI0^X>ifX5Ycs@l(OWf!P!8J15tZWx z#maRYGlv}ol))U6;W`_0;>d_@PaK<NDK(1n-Q%(}-OVMCK|IOBBBF^kiLCbI3{QE7 zh^h1KYqF!`vn(Q-G_oP9Jta#EX0@k!SVT0r)j&n&gba_gtryeKXzS0?ly7yTYRvjH zEtgwLz04V*#~Pm;NYk7PW@2AtW}e3x%AiAW+)!*OboOVc!)X_lo39C(R&%DiXjCFD zDU}d)0UpL=eg4G6OuH+z!NZ=9jRNAP^vWCt&9x_H$fL>hOx?6yj!RQoZ3Br%5I3l< zPeNqcMlo04ei|fGp~b$<%v<&q#Zf?}oA_cbu<{t<Qi0{V2IP&19MsC2Aejm+)iyf4 zIPNFYVJy}&S|6OuFx7H0x7iLf-n^M%QnQM63u>wp9Fqzv*Dk1zZShm-kd-rmcDFK2 zDyUeyfVqufhP3D@9Fqzv*Dk1BpPHdAr8ab!iuKE6+s*e~d8%Goz<mbKrKS~Y8D%xk z1Y9bxSkJ(^&tkcB$cm{z%g^SiR9LZ=QGN3{JU6IyPXk;kuvE{;tDc+Y&c<8f>a5v) zGTr|+Y#tgL8hm=X2q)#D(-M)(eMY4+OT`r16|KQ0UEXA4YAUV{noGv5{R-`>fLUeQ z*O3dDOj`<xrAFRd^s$$ly6aA?A#KM#?&dgZ?+$6T4RYiuKe=okoM_oR?a*Rfqy2*E zZe*?0OpLa7GG=`2Rx7*FN}>7GP;E+C9YPs%;^VisAkzvLM-WD4d&>57z+643p`x9c z?T|`LEcP#SLa7AE?lW*wEhBknAvL7DWk7Zxfy-0g3Z$y#1sTsAAd_Rva=!xHGXPgB zFRD#e0e3hm=sTQ%Il0z_t(F_iP<6l_jTYU9k;IlpGgPA+nYfvFTrvB~_CCgZH#SkZ zl#NbUpP6FEaqBcrEA8u7-f%)Ej~7zZMy=kMb++)N@}a$%#SDqG02F%>lItu=Q|-?n zyFG82v>`5|CokmkF?q$_##5i4rncO~xhO5Q99jjvz{4VgP%Inj7x}_8k9l@NDj)L9 zv$H(qz7JaMyvU(B_cv<Vk&e#BznE~n&rQhf2x^Nj;fTs8ifsAPG}E4U)4vY@vXYmj zY0j+}^B$wphtT<im#4X&#}}ld1Ff3Qaaf%@I8?D>CaC$p!eO?aKkz<BAoo{hKYx{p zsju`<>0<<9DVZG0p7?#0j~CEuUY+K7o*@v+#^kQ{#pZK8Ed5O*G)tZ5BWmv&F}b3> zJMo${k9~eXtWz*5&S!}vpo&KYil`T)slJB?#582Z3mw|x>|~{+uRVe>e^Hv(t_4w` z*oI)nc&)>uH@KV>POMi{A$c9<Dx(g{J1$O>Q|FU)vZ5N)B^*(G8XBzwF3nO~cgCnY ziS3GV<=3aF=G>Bb8#I}ljpj6!MRd~P4Gd2kflv+Rjag=+R8P!kZON)-qip@M47(j9 zvT7FF741!2j=4l+X@o*|H?ByL>-~j#G9UNXE3-*qz`QMC&H}a;n~8G}QOZa0;z}Ri zJQg>Zc4@J$QHJ{_jz|`{QYle9zADR{XiS>E$@Qch+jWadT4dj=5qWDlnW|K0=?91< zXI6zrn!M?n74Vhb1+um`XX$O3(+Zc$i{^#5utefsVxLAa^Q|m(eW_B|P7N$)GwT|A zruJ=^?HX51Ml=80SuzzkPYYkmQfpdSnQ>&#;$4@enzl)c=21;InafkscQ{PjG^bUk zo|;!zuE4tIoeVY6Q$eQwE{9sTPrJm$mbkPiAopQl*LVB4?MzY?qrhp$_YkI;ZI^cB z(@43TOa<HSjK7y>lE5hTU|`kvrK#&Hl~Np)+dV?mC#TT5_Wd4ia+;GwiM5MPOnt!N zHO~=sPSo`EI$*JWfmJ_<xGE~jralCz#GT}NX6jt_+|-8wxsez}yTMq@Mr*N;c-XC` zla8Y0Okm%S@=T&;u~&ht?fNX$WXtwOcRD<YiD1t87)vB#%C*a6PPQWa@if&u!8A8s zipsIGB`fCvz24yGk&RigUV(%+dWp{FtXx9C`-H=*lq%INwvlJrZR9+l(NFq$+Vwh9 z!L)trKjkMbNBb!!7)Wi2dQ5z}E18Hb)-<AjrYqeX)m7OU)n`82h3+Q)d20Q0UCAM} z{`szSt=3UTr<?qAf)s0;nFo$Cqw8junCf<v8eqyfz7O!f(4C)Xa|~21y2Z!e)To<> z#aIQ1_0QxR_RR1XSHPzV5c7flzvSaj)T8N`6<;3Z0RPK`KUa-wwYWIeE`X2BnlI6g zcU1rWil1+a;7xR}`1)1MB}tgr;vl2Hl_lF|d^t$Xto?0m^lRPO#MolV0sS^eHwkw} zcqtv#?rwMK<@rj<6vHd!;iP1C9ny{_rJ|MN*CCZCTRyUZpM8TNr{YRlXgM2L`i|~w zBDz@TK=M1g(cR=JSINKGovoD|=>1zRz13*KbbM%(nzvt?OA|Mlkm?=nbA3BaAB-m( z(_>~bF%!sWWjgI@VkW4!eFrerU7P{;F2vQI3S#mVTh+YV<<=wi!ECXX0rk5MwbC#v zT&AcgrZT-PY)_`|WvQg3DW)+|!=5PnzL!P@t2kDm`q~fD#G!?HT&|h<DAOKS&ICIB zVVc=I`>f4w*D<w&UZc}{99pKKYicUeMJ4nN_pb08w0c0R`5(F8P_5N%v-wuz_u|OL zEkn9~$V`5}m$AT)UGhR)bjmey-(pw?8P-o6R;d!znIIviqVt14%}_~@5Yy0ksGs?0 zBuI#(5;KBU8J+&z;Z>%6O~=GMP+$Co!!x%BY!SR^M%4@syyllaVlKObX#eV0h^n<G z$Qyo5x%PF9W@D}?_5L7|_cwq`TMmf*3CR0fmYW2X_jiD+l@~?&-}|`BjbNzAQca^1 zIe)-pDzrE%BB}p~*cn6TDfOQ)SuOQCCSzP{V)LH~d+EkgfAcVh9oWkWj&jAhj#={^ zW4_`qlCMxkHspVQWxgXX9rQ6euyw7!b!TfOXL4%WgYWNY`i5#WH<J`<o8wwsH-+4K z!#Rkar|<ux3zrlz#Umc|UHxa8ePUEDmgrS=sicVZFNc=Y>XqrL`^c!6#*Ayb68yK9 zMjS}2O;jcPkC(VSa@;LeIho1#?2YvQb|Vw9rFuqE{|~d3F%$IwxUU;oDK%R4@9==7 zw_`WN^=8G}JAA}eM*EsOGECj78|~}eFGE~@PAcWrCyr}Y6^MWT74VaJ9Uq;?+sWaV zrz)lfs*cAXW<9{=)#K^7+SjXI34@a_5A+h1)djGU*xAF&tG<9Nxr>LZ)+<;KKgh$g zC;bf59j@{S0Z!=d%22gTbi!sg%B-3fpX~LJsNT8<N=tHbiGe>on5WxwmFd7F=K}ja z1aNg!G}k`VrOrpD=X$x`KA=pOrE+<Jo*(8V58Lvfnu{cUxR*O(u9%t7s3xQC36DsV zo3)(<$FSlYiW#>@nEdUL4$E}8Gf$?KYxNv$i`IOPV(B^A7fAkSmYtW4k>rm_)6JV- zX3cLdHKbA-WvoW*$6|KSsQEa;Hr`gRR!YssinJX`&@H#!2{%7YBkCR;Rj*@^S?%dk zTkm7IAw(RZ(K|bPIlQDi8!69AGqn=Cr@MESrCn=*ed~R)w3Oqdr+9HpX6$G0C+-WW zL|m~Y(HW=x0NGtm=PB<hNL9-Va;e8V<o21xq4K<bF9k(~{TXVe&@Hzuko5o`)wF~w zs&g46>wye4tcDL_s9`ny1Ru3oq0#y<s#F~8qmIV&aVZt5$Oni=FB2o}3Ft$*^D}A} z^FamjP#=F;^btK9<dBD9b|V89k7$&~JrUCNBMh+*hitvvs2X`hhFyzh=Ss0#=9c;x zI+=JROLWt8DHByUj!H9adw_P^_hr{sR~e9fkM2r$mZWmO2D@>qyR!qvvo+o5o@=vW zyE7TC-3{#F_@1k?VlGnwwl{@)yKsrh#TG}mIMy<3&m~$h7o9uk!(1Y=RNL#AS@Srf z?R6RQu-TC`XP)hg8eI<nNWbJ5X0>s=`I2MAUqaL(w+N#bn@t>xzNQoUoZutX#yUnD zJ%)eW3i(<cpmQNl%6!9ktHr22)z-=CvZ;;O66=_}s?TWR$t(PdY?33k2XlVWo&Y|6 zWnYn5#N_!6Pg&VFWD+jvH=s!MRPGxlOx>_NP25pRMm2#GIC3V*lT!Pbs{d+Z_x=nu z-NKX!1akiep0|FbU!c`Jv%WaMXkj4p4J~u4cY;BkV31*&Zbr&`DQLH4$f3py@PND6 z&d9%q)8zEC2AQT&QvXKO4IDMoG)hcme0r7frxUZ((P%O*X)2lMtjY+(BSS`PPvl7_ zWtq$2!kAR+!ytox8Xz09j*pKHr4^m4)T5ZKlp5K1%tNkMGj1i87OfXHI?O_$)UY?7 zn)hMUJ1giE{3f1j(jZ+e098@P(_Gt6zxnvLDc;iO$mCiEGr`Fmm5M5-f;n$<mO49Y z4v4CE2bqy;Pi#(PnU$)Z$kaG&cf>7}I2hGt`fbNTr56Dyw^HV4T%NAaxInornbn-V zZMuyT$6}MN7B)xa>Da}JXE|o&VmsfT;-?Y^5)*-(r&3~S#!<=%s8469bbyLw1=@WE zrB2L61$|df5D}h9iKe?pF0l_VpXFy##fnD@%3Pl9FwF(ec1P<GbNn-N$x}{dqLID- z@El4WtCSP-d~N#!>>WOG8D8p9==Q~Fm~O?_(wR|YD^AbF^!9>lO!pQh6P0b<HNt%Q zj7_d~pJdn@Or!6)d?aUTZT6f)0nycRqx`W*$<5TUc~zBOrk3j)*gE!dM~dqg?FNs2 zj3b$+{Oo*U3#jBwJKSU;F8NOKt5<~J3uadE1({-&*zQR8iSq@mjhx)ho`bpibPv~@ z11HLs#&Wb$+3pall|p~9Xj_8i(3JwnSt3+>yKB8^7g1eIFSw<0qTSh9578VPTF(25 z`bq<no!C>m<t}u6odd1-D;~O?q)D5eTu0EHmuZeRPMJq;-J@w@F6wW1hKK8J!{lIT zW({upJ65~$^|nU2S<S<59!5xcx^9Jo==H92S^yD`agd)hJakrUxz_>mJR(z(<z$ed zoarMcb8*Q$`;yBTXEJeHEm#0-cZla{<wXzGT)wU}s)bgQs`L~h*EKV1*}Jo60kW@w ziCAio6FqMQ>`dDhx%A+i%k#k(XkSA?HQW~fE*)A@jiVi(7Xq%%yU|>Iwujnm59=bu zmPI+>i@Z#`O|9L1L1*+{%u;pp6Y4AQ5)ac=tk{E?*lerRFZI&YItBZMFY^+0`b4K3 zUY_PP*W|6&+*;eR^uVK3w<s!{gUPD%M(CX7D<HRd)KEA7fGp#cUD%G$@(97KU+lSt zS7pfU)v!Bw<V>c<X?I*+onhwWRY1e%0%i`c4Kwrm!A9Ei0GTZR<yvNPn&zv+9M^Fs z>BvR3mGfC*4jN`wX0}`51w2=~+YYD~GSnO*1v3xWH#{yv)Qp;?)<tpowTMg{S;|Fu z)9YBS<H+K%gJiv!XR39KGSf={*L7v7hS4qeOEXkA_)A&n&DPg@SQ(XyZHc;myun9w zl_}<-jzn)v^Hy+FQmS24BfD$`Y%)~kvV)c6<!OHV1^DGUjX5QqPN2kcgW3HG$TbIo z(qOT~XwJJ5k=<)hxpLoxxLSEZ?sk>Kjpw4OeI!f&@&eNF)qtt>W^}vl8izX*72~R> z@Fw<SFuT7wOB}Dpg~Xnz8*aAKNjtKXjN<ZJvgC<o;Vli6dob{%w{k?XjFw7?I!wPU z%hZk)komuz(5iEB*&LYhHGURr7R~3^I^5>1gd}Z7sYX$)=Q@YA{4RN>U@2vyy@+@C zneErP^QhON9vkm;=!@lo(t}VH=3Qx)ah>&z*}3KURDCKQk>8ET>XY$kjJ}7E&0emu zV+zW+-%Dt%nanptr5=n%&HD&-*`~@I3C*JK2Tb)W3f9RVV7c1746Wckh^Rzdsbx`Y z`Vhx$_Ej?N$}*P^q;#}a{xC<^jv!#)j}WGP`z)tEs33dzC`;AV#8HlPy@#23=uAA5 zqd4&~j;Qrurfz8WLO<?d(k3RFYyz!cZ&(4Fh%VMQTD#xamG4gW(y@zV|HKN|YT3cs z{gWPkUh@*#cllHou3BbLH~2JUtLG;$%0APLOvILY8p;Gdi`dGV1<ENuhq(bI{yZYP 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 diff --git a/lib/windows/include/GL/glew.h b/lib/windows/include/GL/glew.h deleted file mode 100644 index 9afa5c6..0000000 --- a/lib/windows/include/GL/glew.h +++ /dev/null @@ -1,19367 +0,0 @@ -/* -** The OpenGL Extension Wrangler Library -** Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net> -** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org> -** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org> -** Copyright (C) 2002, Lev Povalahev -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are met: -** -** * Redistributions of source code must retain the above copyright notice, -** this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright notice, -** this list of conditions and the following disclaimer in the documentation -** and/or other materials provided with the distribution. -** * The name of the author may be used to endorse or promote products -** derived from this software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -** THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * Mesa 3-D graphics library - * Version: 7.0 - * - * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* -** Copyright (c) 2007 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -#ifndef __glew_h__ -#define __glew_h__ -#define __GLEW_H__ - -#if defined(__gl_h_) || defined(__GL_H__) || defined(_GL_H) || defined(__X_GL_H) -#error gl.h included before glew.h -#endif -#if defined(__gl2_h_) -#error gl2.h included before glew.h -#endif -#if defined(__gltypes_h_) -#error gltypes.h included before glew.h -#endif -#if defined(__REGAL_H__) -#error Regal.h included before glew.h -#endif -#if defined(__glext_h_) || defined(__GLEXT_H_) -#error glext.h included before glew.h -#endif -#if defined(__gl_ATI_h_) -#error glATI.h included before glew.h -#endif - -#define __gl_h_ -#define __gl2_h_ -#define __GL_H__ -#define _GL_H -#define __gltypes_h_ -#define __REGAL_H__ -#define __X_GL_H -#define __glext_h_ -#define __GLEXT_H_ -#define __gl_ATI_h_ - -#if defined(_WIN32) - -/* - * GLEW does not include <windows.h> to avoid name space pollution. - * GL needs GLAPI and GLAPIENTRY, GLU needs APIENTRY, CALLBACK, and wchar_t - * defined properly. - */ -/* <windef.h> and <gl.h>*/ -#ifdef APIENTRY -# ifndef GLAPIENTRY -# define GLAPIENTRY APIENTRY -# endif -# ifndef GLEWAPIENTRY -# define GLEWAPIENTRY APIENTRY -# endif -#else -#define GLEW_APIENTRY_DEFINED -# if defined(__MINGW32__) || defined(__CYGWIN__) || (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) -# define APIENTRY __stdcall -# ifndef GLAPIENTRY -# define GLAPIENTRY __stdcall -# endif -# ifndef GLEWAPIENTRY -# define GLEWAPIENTRY __stdcall -# endif -# else -# define APIENTRY -# endif -#endif -#ifndef GLAPI -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define GLAPI extern -# endif -#endif -/* <winnt.h> */ -#ifndef CALLBACK -#define GLEW_CALLBACK_DEFINED -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define CALLBACK __attribute__ ((__stdcall__)) -# elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) -# define CALLBACK __stdcall -# else -# define CALLBACK -# endif -#endif -/* <wingdi.h> and <winnt.h> */ -#ifndef WINGDIAPI -#define GLEW_WINGDIAPI_DEFINED -#define WINGDIAPI __declspec(dllimport) -#endif -/* <ctype.h> */ -#if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(_WCHAR_T_DEFINED) -typedef unsigned short wchar_t; -# define _WCHAR_T_DEFINED -#endif -/* <stddef.h> */ -#if !defined(_W64) -# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300 -# define _W64 __w64 -# else -# define _W64 -# endif -#endif -#if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__) -# ifdef _WIN64 -typedef __int64 ptrdiff_t; -# else -typedef _W64 int ptrdiff_t; -# endif -# define _PTRDIFF_T_DEFINED -# define _PTRDIFF_T_ -#endif - -#ifndef GLAPI -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define GLAPI extern -# else -# define GLAPI WINGDIAPI -# endif -#endif - -/* - * GLEW_STATIC is defined for static library. - * GLEW_BUILD is defined for building the DLL library. - */ - -#ifdef GLEW_STATIC -# define GLEWAPI extern -#else -# ifdef GLEW_BUILD -# define GLEWAPI extern __declspec(dllexport) -# else -# define GLEWAPI extern __declspec(dllimport) -# endif -#endif - -#else /* _UNIX */ - -/* - * Needed for ptrdiff_t in turn needed by VBO. This is defined by ISO - * C. On my system, this amounts to _3 lines_ of included code, all of - * them pretty much harmless. If you know of a way of detecting 32 vs - * 64 _targets_ at compile time you are free to replace this with - * something that's portable. For now, _this_ is the portable solution. - * (mem, 2004-01-04) - */ - -#include <stddef.h> - -/* SGI MIPSPro doesn't like stdint.h in C++ mode */ -/* ID: 3376260 Solaris 9 has inttypes.h, but not stdint.h */ - -#if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__) -#include <inttypes.h> -#else -#include <stdint.h> -#endif - -#define GLEW_APIENTRY_DEFINED -#define APIENTRY - -/* - * GLEW_STATIC is defined for static library. - */ - -#ifdef GLEW_STATIC -# define GLEWAPI extern -#else -# if defined(__GNUC__) && __GNUC__>=4 -# define GLEWAPI extern __attribute__ ((visibility("default"))) -# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) -# define GLEWAPI extern __global -# else -# define GLEWAPI extern -# endif -#endif - -/* <glu.h> */ -#ifndef GLAPI -#define GLAPI extern -#endif - -#endif /* _WIN32 */ - -#ifndef GLAPIENTRY -#define GLAPIENTRY -#endif - -#ifndef GLEWAPIENTRY -#define GLEWAPIENTRY -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* ----------------------------- GL_VERSION_1_1 ---------------------------- */ - -#ifndef GL_VERSION_1_1 -#define GL_VERSION_1_1 1 - -typedef unsigned int GLenum; -typedef unsigned int GLbitfield; -typedef unsigned int GLuint; -typedef int GLint; -typedef int GLsizei; -typedef unsigned char GLboolean; -typedef signed char GLbyte; -typedef short GLshort; -typedef unsigned char GLubyte; -typedef unsigned short GLushort; -typedef unsigned long GLulong; -typedef float GLfloat; -typedef float GLclampf; -typedef double GLdouble; -typedef double GLclampd; -typedef void GLvoid; -#if defined(_MSC_VER) && _MSC_VER < 1400 -typedef __int64 GLint64EXT; -typedef unsigned __int64 GLuint64EXT; -#elif defined(_MSC_VER) || defined(__BORLANDC__) -typedef signed long long GLint64EXT; -typedef unsigned long long GLuint64EXT; -#else -# if defined(__MINGW32__) || defined(__CYGWIN__) -#include <inttypes.h> -# endif -typedef int64_t GLint64EXT; -typedef uint64_t GLuint64EXT; -#endif -typedef GLint64EXT GLint64; -typedef GLuint64EXT GLuint64; -typedef struct __GLsync *GLsync; - -typedef char GLchar; - -#define GL_ZERO 0 -#define GL_FALSE 0 -#define GL_LOGIC_OP 0x0BF1 -#define GL_NONE 0 -#define GL_TEXTURE_COMPONENTS 0x1003 -#define GL_NO_ERROR 0 -#define GL_POINTS 0x0000 -#define GL_CURRENT_BIT 0x00000001 -#define GL_TRUE 1 -#define GL_ONE 1 -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_POINT_BIT 0x00000002 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_LINE_STRIP 0x0003 -#define GL_LINE_BIT 0x00000004 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_QUADS 0x0007 -#define GL_QUAD_STRIP 0x0008 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON 0x0009 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_FOG_BIT 0x00000080 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_ACCUM 0x0100 -#define GL_LOAD 0x0101 -#define GL_RETURN 0x0102 -#define GL_MULT 0x0103 -#define GL_ADD 0x0104 -#define GL_NEVER 0x0200 -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_LEFT 0x0406 -#define GL_RIGHT 0x0407 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_AUX0 0x0409 -#define GL_AUX1 0x040A -#define GL_AUX2 0x040B -#define GL_AUX3 0x040C -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_2D 0x0600 -#define GL_3D 0x0601 -#define GL_3D_COLOR 0x0602 -#define GL_3D_COLOR_TEXTURE 0x0603 -#define GL_4D_COLOR_TEXTURE 0x0604 -#define GL_PASS_THROUGH_TOKEN 0x0700 -#define GL_POINT_TOKEN 0x0701 -#define GL_LINE_TOKEN 0x0702 -#define GL_POLYGON_TOKEN 0x0703 -#define GL_BITMAP_TOKEN 0x0704 -#define GL_DRAW_PIXEL_TOKEN 0x0705 -#define GL_COPY_PIXEL_TOKEN 0x0706 -#define GL_LINE_RESET_TOKEN 0x0707 -#define GL_EXP 0x0800 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_EXP2 0x0801 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_COEFF 0x0A00 -#define GL_ORDER 0x0A01 -#define GL_DOMAIN 0x0A02 -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_INDEX 0x0B01 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_CURRENT_RASTER_COLOR 0x0B04 -#define GL_CURRENT_RASTER_INDEX 0x0B05 -#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define GL_CURRENT_RASTER_POSITION 0x0B07 -#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define GL_POINT_SMOOTH 0x0B10 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_RANGE 0x0B12 -#define GL_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_WIDTH 0x0B21 -#define GL_LINE_WIDTH_RANGE 0x0B22 -#define GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_LINE_STIPPLE 0x0B24 -#define GL_LINE_STIPPLE_PATTERN 0x0B25 -#define GL_LINE_STIPPLE_REPEAT 0x0B26 -#define GL_LIST_MODE 0x0B30 -#define GL_MAX_LIST_NESTING 0x0B31 -#define GL_LIST_BASE 0x0B32 -#define GL_LIST_INDEX 0x0B33 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_POLYGON_STIPPLE 0x0B42 -#define GL_EDGE_FLAG 0x0B43 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_LIGHTING 0x0B50 -#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_SHADE_MODEL 0x0B54 -#define GL_COLOR_MATERIAL_FACE 0x0B55 -#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_FOG 0x0B60 -#define GL_FOG_INDEX 0x0B61 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_START 0x0B63 -#define GL_FOG_END 0x0B64 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_COLOR 0x0B66 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_ACCUM_CLEAR_VALUE 0x0B80 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_MATRIX_MODE 0x0BA0 -#define GL_NORMALIZE 0x0BA1 -#define GL_VIEWPORT 0x0BA2 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define GL_ALPHA_TEST 0x0BC0 -#define GL_ALPHA_TEST_FUNC 0x0BC1 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_DITHER 0x0BD0 -#define GL_BLEND_DST 0x0BE0 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND 0x0BE2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_AUX_BUFFERS 0x0C00 -#define GL_DRAW_BUFFER 0x0C01 -#define GL_READ_BUFFER 0x0C02 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_INDEX_CLEAR_VALUE 0x0C20 -#define GL_INDEX_WRITEMASK 0x0C21 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_INDEX_MODE 0x0C30 -#define GL_RGBA_MODE 0x0C31 -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_STEREO 0x0C33 -#define GL_RENDER_MODE 0x0C40 -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_FOG_HINT 0x0C54 -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GEN_R 0x0C62 -#define GL_TEXTURE_GEN_Q 0x0C63 -#define GL_PIXEL_MAP_I_TO_I 0x0C70 -#define GL_PIXEL_MAP_S_TO_S 0x0C71 -#define GL_PIXEL_MAP_I_TO_R 0x0C72 -#define GL_PIXEL_MAP_I_TO_G 0x0C73 -#define GL_PIXEL_MAP_I_TO_B 0x0C74 -#define GL_PIXEL_MAP_I_TO_A 0x0C75 -#define GL_PIXEL_MAP_R_TO_R 0x0C76 -#define GL_PIXEL_MAP_G_TO_G 0x0C77 -#define GL_PIXEL_MAP_B_TO_B 0x0C78 -#define GL_PIXEL_MAP_A_TO_A 0x0C79 -#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAP_COLOR 0x0D10 -#define GL_MAP_STENCIL 0x0D11 -#define GL_INDEX_SHIFT 0x0D12 -#define GL_INDEX_OFFSET 0x0D13 -#define GL_RED_SCALE 0x0D14 -#define GL_RED_BIAS 0x0D15 -#define GL_ZOOM_X 0x0D16 -#define GL_ZOOM_Y 0x0D17 -#define GL_GREEN_SCALE 0x0D18 -#define GL_GREEN_BIAS 0x0D19 -#define GL_BLUE_SCALE 0x0D1A -#define GL_BLUE_BIAS 0x0D1B -#define GL_ALPHA_SCALE 0x0D1C -#define GL_ALPHA_BIAS 0x0D1D -#define GL_DEPTH_SCALE 0x0D1E -#define GL_DEPTH_BIAS 0x0D1F -#define GL_MAX_EVAL_ORDER 0x0D30 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_INDEX_BITS 0x0D51 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_ACCUM_RED_BITS 0x0D58 -#define GL_ACCUM_GREEN_BITS 0x0D59 -#define GL_ACCUM_BLUE_BITS 0x0D5A -#define GL_ACCUM_ALPHA_BITS 0x0D5B -#define GL_NAME_STACK_DEPTH 0x0D70 -#define GL_AUTO_NORMAL 0x0D80 -#define GL_MAP1_COLOR_4 0x0D90 -#define GL_MAP1_INDEX 0x0D91 -#define GL_MAP1_NORMAL 0x0D92 -#define GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define GL_MAP1_VERTEX_3 0x0D97 -#define GL_MAP1_VERTEX_4 0x0D98 -#define GL_MAP2_COLOR_4 0x0DB0 -#define GL_MAP2_INDEX 0x0DB1 -#define GL_MAP2_NORMAL 0x0DB2 -#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define GL_MAP2_VERTEX_3 0x0DB7 -#define GL_MAP2_VERTEX_4 0x0DB8 -#define GL_MAP1_GRID_DOMAIN 0x0DD0 -#define GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define GL_MAP2_GRID_DOMAIN 0x0DD2 -#define GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 -#define GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define GL_SELECTION_BUFFER_SIZE 0x0DF4 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_BORDER 0x1005 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_AMBIENT 0x1200 -#define GL_DIFFUSE 0x1201 -#define GL_SPECULAR 0x1202 -#define GL_POSITION 0x1203 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_QUADRATIC_ATTENUATION 0x1209 -#define GL_COMPILE 0x1300 -#define GL_COMPILE_AND_EXECUTE 0x1301 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_2_BYTES 0x1407 -#define GL_3_BYTES 0x1408 -#define GL_4_BYTES 0x1409 -#define GL_DOUBLE 0x140A -#define GL_CLEAR 0x1500 -#define GL_AND 0x1501 -#define GL_AND_REVERSE 0x1502 -#define GL_COPY 0x1503 -#define GL_AND_INVERTED 0x1504 -#define GL_NOOP 0x1505 -#define GL_XOR 0x1506 -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_EQUIV 0x1509 -#define GL_INVERT 0x150A -#define GL_OR_REVERSE 0x150B -#define GL_COPY_INVERTED 0x150C -#define GL_OR_INVERTED 0x150D -#define GL_NAND 0x150E -#define GL_SET 0x150F -#define GL_EMISSION 0x1600 -#define GL_SHININESS 0x1601 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_COLOR_INDEXES 0x1603 -#define GL_MODELVIEW 0x1700 -#define GL_PROJECTION 0x1701 -#define GL_TEXTURE 0x1702 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_COLOR_INDEX 0x1900 -#define GL_STENCIL_INDEX 0x1901 -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_BITMAP 0x1A00 -#define GL_POINT 0x1B00 -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 -#define GL_RENDER 0x1C00 -#define GL_FEEDBACK 0x1C01 -#define GL_SELECT 0x1C02 -#define GL_FLAT 0x1D00 -#define GL_SMOOTH 0x1D01 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_S 0x2000 -#define GL_ENABLE_BIT 0x00002000 -#define GL_T 0x2001 -#define GL_R 0x2002 -#define GL_Q 0x2003 -#define GL_MODULATE 0x2100 -#define GL_DECAL 0x2101 -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_ENV_COLOR 0x2201 -#define GL_TEXTURE_ENV 0x2300 -#define GL_EYE_LINEAR 0x2400 -#define GL_OBJECT_LINEAR 0x2401 -#define GL_SPHERE_MAP 0x2402 -#define GL_TEXTURE_GEN_MODE 0x2500 -#define GL_OBJECT_PLANE 0x2501 -#define GL_EYE_PLANE 0x2502 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_CLAMP 0x2900 -#define GL_REPEAT 0x2901 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_R3_G3_B2 0x2A10 -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_C3F_V3F 0x2A24 -#define GL_N3F_V3F 0x2A25 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_V4F 0x2A28 -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T4F_C4F_N3F_V4F 0x2A2D -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 -#define GL_LIGHT0 0x4000 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 -#define GL_HINT_BIT 0x00008000 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_ALPHA4 0x803B -#define GL_ALPHA8 0x803C -#define GL_ALPHA12 0x803D -#define GL_ALPHA16 0x803E -#define GL_LUMINANCE4 0x803F -#define GL_LUMINANCE8 0x8040 -#define GL_LUMINANCE12 0x8041 -#define GL_LUMINANCE16 0x8042 -#define GL_LUMINANCE4_ALPHA4 0x8043 -#define GL_LUMINANCE6_ALPHA2 0x8044 -#define GL_LUMINANCE8_ALPHA8 0x8045 -#define GL_LUMINANCE12_ALPHA4 0x8046 -#define GL_LUMINANCE12_ALPHA12 0x8047 -#define GL_LUMINANCE16_ALPHA16 0x8048 -#define GL_INTENSITY 0x8049 -#define GL_INTENSITY4 0x804A -#define GL_INTENSITY8 0x804B -#define GL_INTENSITY12 0x804C -#define GL_INTENSITY16 0x804D -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB8 0x8051 -#define GL_RGB10 0x8052 -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGBA2 0x8055 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_TEXTURE_PRIORITY 0x8066 -#define GL_TEXTURE_RESIDENT 0x8067 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_VERTEX_ARRAY 0x8074 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_COLOR_ARRAY 0x8076 -#define GL_INDEX_ARRAY 0x8077 -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_EDGE_FLAG_ARRAY 0x8079 -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_INDEX_ARRAY_TYPE 0x8085 -#define GL_INDEX_ARRAY_STRIDE 0x8086 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_INDEX_ARRAY_POINTER 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_EVAL_BIT 0x00010000 -#define GL_LIST_BIT 0x00020000 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_ALL_ATTRIB_BITS 0x000fffff -#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff - -GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value); -GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref); -GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); -GLAPI void GLAPIENTRY glArrayElement (GLint i); -GLAPI void GLAPIENTRY glBegin (GLenum mode); -GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture); -GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); -GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GLAPI void GLAPIENTRY glCallList (GLuint list); -GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const void *lists); -GLAPI void GLAPIENTRY glClear (GLbitfield mask); -GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -GLAPI void GLAPIENTRY glClearDepth (GLclampd depth); -GLAPI void GLAPIENTRY glClearIndex (GLfloat c); -GLAPI void GLAPIENTRY glClearStencil (GLint s); -GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation); -GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue); -GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v); -GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue); -GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue); -GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue); -GLAPI void GLAPIENTRY glColor3iv (const GLint *v); -GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue); -GLAPI void GLAPIENTRY glColor3sv (const GLshort *v); -GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue); -GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v); -GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue); -GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v); -GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue); -GLAPI void GLAPIENTRY glColor3usv (const GLushort *v); -GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); -GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v); -GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); -GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha); -GLAPI void GLAPIENTRY glColor4iv (const GLint *v); -GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); -GLAPI void GLAPIENTRY glColor4sv (const GLshort *v); -GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v); -GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); -GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v); -GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); -GLAPI void GLAPIENTRY glColor4usv (const GLushort *v); -GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode); -GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); -GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void GLAPIENTRY glCullFace (GLenum mode); -GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range); -GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GLAPI void GLAPIENTRY glDepthFunc (GLenum func); -GLAPI void GLAPIENTRY glDepthMask (GLboolean flag); -GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar); -GLAPI void GLAPIENTRY glDisable (GLenum cap); -GLAPI void GLAPIENTRY glDisableClientState (GLenum array); -GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode); -GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag); -GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const void *pointer); -GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag); -GLAPI void GLAPIENTRY glEnable (GLenum cap); -GLAPI void GLAPIENTRY glEnableClientState (GLenum array); -GLAPI void GLAPIENTRY glEnd (void); -GLAPI void GLAPIENTRY glEndList (void); -GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u); -GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u); -GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u); -GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u); -GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v); -GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u); -GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v); -GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u); -GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2); -GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); -GLAPI void GLAPIENTRY glEvalPoint1 (GLint i); -GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j); -GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); -GLAPI void GLAPIENTRY glFinish (void); -GLAPI void GLAPIENTRY glFlush (void); -GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glFrontFace (GLenum mode); -GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range); -GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures); -GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params); -GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation); -GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params); -GLAPI GLenum GLAPIENTRY glGetError (void); -GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v); -GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v); -GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v); -GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values); -GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values); -GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values); -GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, void* *params); -GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask); -GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name); -GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); -GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode); -GLAPI void GLAPIENTRY glIndexMask (GLuint mask); -GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const void *pointer); -GLAPI void GLAPIENTRY glIndexd (GLdouble c); -GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c); -GLAPI void GLAPIENTRY glIndexf (GLfloat c); -GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c); -GLAPI void GLAPIENTRY glIndexi (GLint c); -GLAPI void GLAPIENTRY glIndexiv (const GLint *c); -GLAPI void GLAPIENTRY glIndexs (GLshort c); -GLAPI void GLAPIENTRY glIndexsv (const GLshort *c); -GLAPI void GLAPIENTRY glIndexub (GLubyte c); -GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c); -GLAPI void GLAPIENTRY glInitNames (void); -GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const void *pointer); -GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap); -GLAPI GLboolean GLAPIENTRY glIsList (GLuint list); -GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture); -GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern); -GLAPI void GLAPIENTRY glLineWidth (GLfloat width); -GLAPI void GLAPIENTRY glListBase (GLuint base); -GLAPI void GLAPIENTRY glLoadIdentity (void); -GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m); -GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m); -GLAPI void GLAPIENTRY glLoadName (GLuint name); -GLAPI void GLAPIENTRY glLogicOp (GLenum opcode); -GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); -GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); -GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); -GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); -GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glMatrixMode (GLenum mode); -GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m); -GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m); -GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode); -GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); -GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v); -GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); -GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); -GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz); -GLAPI void GLAPIENTRY glNormal3iv (const GLint *v); -GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz); -GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v); -GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const void *pointer); -GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void GLAPIENTRY glPassThrough (GLfloat token); -GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values); -GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values); -GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values); -GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor); -GLAPI void GLAPIENTRY glPointSize (GLfloat size); -GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode); -GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask); -GLAPI void GLAPIENTRY glPopAttrib (void); -GLAPI void GLAPIENTRY glPopClientAttrib (void); -GLAPI void GLAPIENTRY glPopMatrix (void); -GLAPI void GLAPIENTRY glPopName (void); -GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); -GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask); -GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask); -GLAPI void GLAPIENTRY glPushMatrix (void); -GLAPI void GLAPIENTRY glPushName (GLuint name); -GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y); -GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v); -GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y); -GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v); -GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y); -GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v); -GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y); -GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v); -GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z); -GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v); -GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z); -GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v); -GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w); -GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v); -GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v); -GLAPI void GLAPIENTRY glReadBuffer (GLenum mode); -GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2); -GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); -GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2); -GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2); -GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2); -GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); -GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2); -GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode); -GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer); -GLAPI void GLAPIENTRY glShadeModel (GLenum mode); -GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GLAPI void GLAPIENTRY glStencilMask (GLuint mask); -GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s); -GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s); -GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord1i (GLint s); -GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord1s (GLshort s); -GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t); -GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t); -GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t); -GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t); -GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); -GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); -GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r); -GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r); -GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q); -GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param); -GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); -GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y); -GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v); -GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y); -GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v); -GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y); -GLAPI void GLAPIENTRY glVertex2iv (const GLint *v); -GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y); -GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v); -GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z); -GLAPI void GLAPIENTRY glVertex3iv (const GLint *v); -GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z); -GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v); -GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w); -GLAPI void GLAPIENTRY glVertex4iv (const GLint *v); -GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v); -GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); - -#define GLEW_VERSION_1_1 GLEW_GET_VAR(__GLEW_VERSION_1_1) - -#endif /* GL_VERSION_1_1 */ - -/* ---------------------------------- GLU ---------------------------------- */ - -#ifndef GLEW_NO_GLU -# ifdef __APPLE__ -# include <Availability.h> -# if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -# define GLEW_NO_GLU -# endif -# endif -#endif - -#ifndef GLEW_NO_GLU -/* this is where we can safely include GLU */ -# if defined(__APPLE__) && defined(__MACH__) -# include <OpenGL/glu.h> -# else -# include <GL/glu.h> -# endif -#endif - -/* ----------------------------- GL_VERSION_1_2 ---------------------------- */ - -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 - -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_RESCALE_NORMAL 0x803A -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E - -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); - -#define glCopyTexSubImage3D GLEW_GET_FUN(__glewCopyTexSubImage3D) -#define glDrawRangeElements GLEW_GET_FUN(__glewDrawRangeElements) -#define glTexImage3D GLEW_GET_FUN(__glewTexImage3D) -#define glTexSubImage3D GLEW_GET_FUN(__glewTexSubImage3D) - -#define GLEW_VERSION_1_2 GLEW_GET_VAR(__GLEW_VERSION_1_2) - -#endif /* GL_VERSION_1_2 */ - -/* ---------------------------- GL_VERSION_1_2_1 --------------------------- */ - -#ifndef GL_VERSION_1_2_1 -#define GL_VERSION_1_2_1 1 - -#define GLEW_VERSION_1_2_1 GLEW_GET_VAR(__GLEW_VERSION_1_2_1) - -#endif /* GL_VERSION_1_2_1 */ - -/* ----------------------------- GL_VERSION_1_3 ---------------------------- */ - -#ifndef GL_VERSION_1_3 -#define GL_VERSION_1_3 1 - -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_SUBTRACT 0x84E7 -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -#define GL_MULTISAMPLE_BIT 0x20000000 - -typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, void *img); -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); - -#define glActiveTexture GLEW_GET_FUN(__glewActiveTexture) -#define glClientActiveTexture GLEW_GET_FUN(__glewClientActiveTexture) -#define glCompressedTexImage1D GLEW_GET_FUN(__glewCompressedTexImage1D) -#define glCompressedTexImage2D GLEW_GET_FUN(__glewCompressedTexImage2D) -#define glCompressedTexImage3D GLEW_GET_FUN(__glewCompressedTexImage3D) -#define glCompressedTexSubImage1D GLEW_GET_FUN(__glewCompressedTexSubImage1D) -#define glCompressedTexSubImage2D GLEW_GET_FUN(__glewCompressedTexSubImage2D) -#define glCompressedTexSubImage3D GLEW_GET_FUN(__glewCompressedTexSubImage3D) -#define glGetCompressedTexImage GLEW_GET_FUN(__glewGetCompressedTexImage) -#define glLoadTransposeMatrixd GLEW_GET_FUN(__glewLoadTransposeMatrixd) -#define glLoadTransposeMatrixf GLEW_GET_FUN(__glewLoadTransposeMatrixf) -#define glMultTransposeMatrixd GLEW_GET_FUN(__glewMultTransposeMatrixd) -#define glMultTransposeMatrixf GLEW_GET_FUN(__glewMultTransposeMatrixf) -#define glMultiTexCoord1d GLEW_GET_FUN(__glewMultiTexCoord1d) -#define glMultiTexCoord1dv GLEW_GET_FUN(__glewMultiTexCoord1dv) -#define glMultiTexCoord1f GLEW_GET_FUN(__glewMultiTexCoord1f) -#define glMultiTexCoord1fv GLEW_GET_FUN(__glewMultiTexCoord1fv) -#define glMultiTexCoord1i GLEW_GET_FUN(__glewMultiTexCoord1i) -#define glMultiTexCoord1iv GLEW_GET_FUN(__glewMultiTexCoord1iv) -#define glMultiTexCoord1s GLEW_GET_FUN(__glewMultiTexCoord1s) -#define glMultiTexCoord1sv GLEW_GET_FUN(__glewMultiTexCoord1sv) -#define glMultiTexCoord2d GLEW_GET_FUN(__glewMultiTexCoord2d) -#define glMultiTexCoord2dv GLEW_GET_FUN(__glewMultiTexCoord2dv) -#define glMultiTexCoord2f GLEW_GET_FUN(__glewMultiTexCoord2f) -#define glMultiTexCoord2fv GLEW_GET_FUN(__glewMultiTexCoord2fv) -#define glMultiTexCoord2i GLEW_GET_FUN(__glewMultiTexCoord2i) -#define glMultiTexCoord2iv GLEW_GET_FUN(__glewMultiTexCoord2iv) -#define glMultiTexCoord2s GLEW_GET_FUN(__glewMultiTexCoord2s) -#define glMultiTexCoord2sv GLEW_GET_FUN(__glewMultiTexCoord2sv) -#define glMultiTexCoord3d GLEW_GET_FUN(__glewMultiTexCoord3d) -#define glMultiTexCoord3dv GLEW_GET_FUN(__glewMultiTexCoord3dv) -#define glMultiTexCoord3f GLEW_GET_FUN(__glewMultiTexCoord3f) -#define glMultiTexCoord3fv GLEW_GET_FUN(__glewMultiTexCoord3fv) -#define glMultiTexCoord3i GLEW_GET_FUN(__glewMultiTexCoord3i) -#define glMultiTexCoord3iv GLEW_GET_FUN(__glewMultiTexCoord3iv) -#define glMultiTexCoord3s GLEW_GET_FUN(__glewMultiTexCoord3s) -#define glMultiTexCoord3sv GLEW_GET_FUN(__glewMultiTexCoord3sv) -#define glMultiTexCoord4d GLEW_GET_FUN(__glewMultiTexCoord4d) -#define glMultiTexCoord4dv GLEW_GET_FUN(__glewMultiTexCoord4dv) -#define glMultiTexCoord4f GLEW_GET_FUN(__glewMultiTexCoord4f) -#define glMultiTexCoord4fv GLEW_GET_FUN(__glewMultiTexCoord4fv) -#define glMultiTexCoord4i GLEW_GET_FUN(__glewMultiTexCoord4i) -#define glMultiTexCoord4iv GLEW_GET_FUN(__glewMultiTexCoord4iv) -#define glMultiTexCoord4s GLEW_GET_FUN(__glewMultiTexCoord4s) -#define glMultiTexCoord4sv GLEW_GET_FUN(__glewMultiTexCoord4sv) -#define glSampleCoverage GLEW_GET_FUN(__glewSampleCoverage) - -#define GLEW_VERSION_1_3 GLEW_GET_VAR(__GLEW_VERSION_1_3) - -#endif /* GL_VERSION_1_3 */ - -/* ----------------------------- GL_VERSION_1_4 ---------------------------- */ - -#ifndef GL_VERSION_1_4 -#define GL_VERSION_1_4 1 - -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_COMPARE_R_TO_TEXTURE 0x884E - -typedef void (GLAPIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDPROC) (GLdouble coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDVPROC) (const GLdouble *coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFPROC) (GLfloat coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *coord); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const* indices, GLsizei drawcount); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVPROC) (const GLfloat *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVPROC) (const GLint *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVPROC) (const GLshort *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVPROC) (const GLdouble *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVPROC) (const GLfloat *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVPROC) (const GLint *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p); - -#define glBlendColor GLEW_GET_FUN(__glewBlendColor) -#define glBlendEquation GLEW_GET_FUN(__glewBlendEquation) -#define glBlendFuncSeparate GLEW_GET_FUN(__glewBlendFuncSeparate) -#define glFogCoordPointer GLEW_GET_FUN(__glewFogCoordPointer) -#define glFogCoordd GLEW_GET_FUN(__glewFogCoordd) -#define glFogCoorddv GLEW_GET_FUN(__glewFogCoorddv) -#define glFogCoordf GLEW_GET_FUN(__glewFogCoordf) -#define glFogCoordfv GLEW_GET_FUN(__glewFogCoordfv) -#define glMultiDrawArrays GLEW_GET_FUN(__glewMultiDrawArrays) -#define glMultiDrawElements GLEW_GET_FUN(__glewMultiDrawElements) -#define glPointParameterf GLEW_GET_FUN(__glewPointParameterf) -#define glPointParameterfv GLEW_GET_FUN(__glewPointParameterfv) -#define glPointParameteri GLEW_GET_FUN(__glewPointParameteri) -#define glPointParameteriv GLEW_GET_FUN(__glewPointParameteriv) -#define glSecondaryColor3b GLEW_GET_FUN(__glewSecondaryColor3b) -#define glSecondaryColor3bv GLEW_GET_FUN(__glewSecondaryColor3bv) -#define glSecondaryColor3d GLEW_GET_FUN(__glewSecondaryColor3d) -#define glSecondaryColor3dv GLEW_GET_FUN(__glewSecondaryColor3dv) -#define glSecondaryColor3f GLEW_GET_FUN(__glewSecondaryColor3f) -#define glSecondaryColor3fv GLEW_GET_FUN(__glewSecondaryColor3fv) -#define glSecondaryColor3i GLEW_GET_FUN(__glewSecondaryColor3i) -#define glSecondaryColor3iv GLEW_GET_FUN(__glewSecondaryColor3iv) -#define glSecondaryColor3s GLEW_GET_FUN(__glewSecondaryColor3s) -#define glSecondaryColor3sv GLEW_GET_FUN(__glewSecondaryColor3sv) -#define glSecondaryColor3ub GLEW_GET_FUN(__glewSecondaryColor3ub) -#define glSecondaryColor3ubv GLEW_GET_FUN(__glewSecondaryColor3ubv) -#define glSecondaryColor3ui GLEW_GET_FUN(__glewSecondaryColor3ui) -#define glSecondaryColor3uiv GLEW_GET_FUN(__glewSecondaryColor3uiv) -#define glSecondaryColor3us GLEW_GET_FUN(__glewSecondaryColor3us) -#define glSecondaryColor3usv GLEW_GET_FUN(__glewSecondaryColor3usv) -#define glSecondaryColorPointer GLEW_GET_FUN(__glewSecondaryColorPointer) -#define glWindowPos2d GLEW_GET_FUN(__glewWindowPos2d) -#define glWindowPos2dv GLEW_GET_FUN(__glewWindowPos2dv) -#define glWindowPos2f GLEW_GET_FUN(__glewWindowPos2f) -#define glWindowPos2fv GLEW_GET_FUN(__glewWindowPos2fv) -#define glWindowPos2i GLEW_GET_FUN(__glewWindowPos2i) -#define glWindowPos2iv GLEW_GET_FUN(__glewWindowPos2iv) -#define glWindowPos2s GLEW_GET_FUN(__glewWindowPos2s) -#define glWindowPos2sv GLEW_GET_FUN(__glewWindowPos2sv) -#define glWindowPos3d GLEW_GET_FUN(__glewWindowPos3d) -#define glWindowPos3dv GLEW_GET_FUN(__glewWindowPos3dv) -#define glWindowPos3f GLEW_GET_FUN(__glewWindowPos3f) -#define glWindowPos3fv GLEW_GET_FUN(__glewWindowPos3fv) -#define glWindowPos3i GLEW_GET_FUN(__glewWindowPos3i) -#define glWindowPos3iv GLEW_GET_FUN(__glewWindowPos3iv) -#define glWindowPos3s GLEW_GET_FUN(__glewWindowPos3s) -#define glWindowPos3sv GLEW_GET_FUN(__glewWindowPos3sv) - -#define GLEW_VERSION_1_4 GLEW_GET_VAR(__GLEW_VERSION_1_4) - -#endif /* GL_VERSION_1_4 */ - -/* ----------------------------- GL_VERSION_1_5 ---------------------------- */ - -#ifndef GL_VERSION_1_5 -#define GL_VERSION_1_5 1 - -#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE -#define GL_FOG_COORD GL_FOG_COORDINATE -#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING -#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER -#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE -#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE -#define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE -#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA -#define GL_SRC0_RGB GL_SOURCE0_RGB -#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA -#define GL_SRC1_RGB GL_SOURCE1_RGB -#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA -#define GL_SRC2_RGB GL_SOURCE2_RGB -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_SAMPLES_PASSED 0x8914 - -typedef ptrdiff_t GLintptr; -typedef ptrdiff_t GLsizeiptr; - -typedef void (GLAPIENTRY * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void* data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void* data); -typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDQUERYPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLGENQUERIESPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void** params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void* data); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GLAPIENTRY * PFNGLISQUERYPROC) (GLuint id); -typedef void* (GLAPIENTRY * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERPROC) (GLenum target); - -#define glBeginQuery GLEW_GET_FUN(__glewBeginQuery) -#define glBindBuffer GLEW_GET_FUN(__glewBindBuffer) -#define glBufferData GLEW_GET_FUN(__glewBufferData) -#define glBufferSubData GLEW_GET_FUN(__glewBufferSubData) -#define glDeleteBuffers GLEW_GET_FUN(__glewDeleteBuffers) -#define glDeleteQueries GLEW_GET_FUN(__glewDeleteQueries) -#define glEndQuery GLEW_GET_FUN(__glewEndQuery) -#define glGenBuffers GLEW_GET_FUN(__glewGenBuffers) -#define glGenQueries GLEW_GET_FUN(__glewGenQueries) -#define glGetBufferParameteriv GLEW_GET_FUN(__glewGetBufferParameteriv) -#define glGetBufferPointerv GLEW_GET_FUN(__glewGetBufferPointerv) -#define glGetBufferSubData GLEW_GET_FUN(__glewGetBufferSubData) -#define glGetQueryObjectiv GLEW_GET_FUN(__glewGetQueryObjectiv) -#define glGetQueryObjectuiv GLEW_GET_FUN(__glewGetQueryObjectuiv) -#define glGetQueryiv GLEW_GET_FUN(__glewGetQueryiv) -#define glIsBuffer GLEW_GET_FUN(__glewIsBuffer) -#define glIsQuery GLEW_GET_FUN(__glewIsQuery) -#define glMapBuffer GLEW_GET_FUN(__glewMapBuffer) -#define glUnmapBuffer GLEW_GET_FUN(__glewUnmapBuffer) - -#define GLEW_VERSION_1_5 GLEW_GET_VAR(__GLEW_VERSION_1_5) - -#endif /* GL_VERSION_1_5 */ - -/* ----------------------------- GL_VERSION_2_0 ---------------------------- */ - -#ifndef GL_VERSION_2_0 -#define GL_VERSION_2_0 1 - -#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_POINT_SPRITE 0x8861 -#define GL_COORD_REPLACE 0x8862 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_MAX_TEXTURE_COORDS 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_SHADER_TYPE 0x8B4F -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_DELETE_STATUS 0x8B80 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 - -typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GLAPIENTRY * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum* bufs); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders); -typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog); -typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source); -typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param); -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void** pointer); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader); -typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const* string, const GLint* length); -typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer); - -#define glAttachShader GLEW_GET_FUN(__glewAttachShader) -#define glBindAttribLocation GLEW_GET_FUN(__glewBindAttribLocation) -#define glBlendEquationSeparate GLEW_GET_FUN(__glewBlendEquationSeparate) -#define glCompileShader GLEW_GET_FUN(__glewCompileShader) -#define glCreateProgram GLEW_GET_FUN(__glewCreateProgram) -#define glCreateShader GLEW_GET_FUN(__glewCreateShader) -#define glDeleteProgram GLEW_GET_FUN(__glewDeleteProgram) -#define glDeleteShader GLEW_GET_FUN(__glewDeleteShader) -#define glDetachShader GLEW_GET_FUN(__glewDetachShader) -#define glDisableVertexAttribArray GLEW_GET_FUN(__glewDisableVertexAttribArray) -#define glDrawBuffers GLEW_GET_FUN(__glewDrawBuffers) -#define glEnableVertexAttribArray GLEW_GET_FUN(__glewEnableVertexAttribArray) -#define glGetActiveAttrib GLEW_GET_FUN(__glewGetActiveAttrib) -#define glGetActiveUniform GLEW_GET_FUN(__glewGetActiveUniform) -#define glGetAttachedShaders GLEW_GET_FUN(__glewGetAttachedShaders) -#define glGetAttribLocation GLEW_GET_FUN(__glewGetAttribLocation) -#define glGetProgramInfoLog GLEW_GET_FUN(__glewGetProgramInfoLog) -#define glGetProgramiv GLEW_GET_FUN(__glewGetProgramiv) -#define glGetShaderInfoLog GLEW_GET_FUN(__glewGetShaderInfoLog) -#define glGetShaderSource GLEW_GET_FUN(__glewGetShaderSource) -#define glGetShaderiv GLEW_GET_FUN(__glewGetShaderiv) -#define glGetUniformLocation GLEW_GET_FUN(__glewGetUniformLocation) -#define glGetUniformfv GLEW_GET_FUN(__glewGetUniformfv) -#define glGetUniformiv GLEW_GET_FUN(__glewGetUniformiv) -#define glGetVertexAttribPointerv GLEW_GET_FUN(__glewGetVertexAttribPointerv) -#define glGetVertexAttribdv GLEW_GET_FUN(__glewGetVertexAttribdv) -#define glGetVertexAttribfv GLEW_GET_FUN(__glewGetVertexAttribfv) -#define glGetVertexAttribiv GLEW_GET_FUN(__glewGetVertexAttribiv) -#define glIsProgram GLEW_GET_FUN(__glewIsProgram) -#define glIsShader GLEW_GET_FUN(__glewIsShader) -#define glLinkProgram GLEW_GET_FUN(__glewLinkProgram) -#define glShaderSource GLEW_GET_FUN(__glewShaderSource) -#define glStencilFuncSeparate GLEW_GET_FUN(__glewStencilFuncSeparate) -#define glStencilMaskSeparate GLEW_GET_FUN(__glewStencilMaskSeparate) -#define glStencilOpSeparate GLEW_GET_FUN(__glewStencilOpSeparate) -#define glUniform1f GLEW_GET_FUN(__glewUniform1f) -#define glUniform1fv GLEW_GET_FUN(__glewUniform1fv) -#define glUniform1i GLEW_GET_FUN(__glewUniform1i) -#define glUniform1iv GLEW_GET_FUN(__glewUniform1iv) -#define glUniform2f GLEW_GET_FUN(__glewUniform2f) -#define glUniform2fv GLEW_GET_FUN(__glewUniform2fv) -#define glUniform2i GLEW_GET_FUN(__glewUniform2i) -#define glUniform2iv GLEW_GET_FUN(__glewUniform2iv) -#define glUniform3f GLEW_GET_FUN(__glewUniform3f) -#define glUniform3fv GLEW_GET_FUN(__glewUniform3fv) -#define glUniform3i GLEW_GET_FUN(__glewUniform3i) -#define glUniform3iv GLEW_GET_FUN(__glewUniform3iv) -#define glUniform4f GLEW_GET_FUN(__glewUniform4f) -#define glUniform4fv GLEW_GET_FUN(__glewUniform4fv) -#define glUniform4i GLEW_GET_FUN(__glewUniform4i) -#define glUniform4iv GLEW_GET_FUN(__glewUniform4iv) -#define glUniformMatrix2fv GLEW_GET_FUN(__glewUniformMatrix2fv) -#define glUniformMatrix3fv GLEW_GET_FUN(__glewUniformMatrix3fv) -#define glUniformMatrix4fv GLEW_GET_FUN(__glewUniformMatrix4fv) -#define glUseProgram GLEW_GET_FUN(__glewUseProgram) -#define glValidateProgram GLEW_GET_FUN(__glewValidateProgram) -#define glVertexAttrib1d GLEW_GET_FUN(__glewVertexAttrib1d) -#define glVertexAttrib1dv GLEW_GET_FUN(__glewVertexAttrib1dv) -#define glVertexAttrib1f GLEW_GET_FUN(__glewVertexAttrib1f) -#define glVertexAttrib1fv GLEW_GET_FUN(__glewVertexAttrib1fv) -#define glVertexAttrib1s GLEW_GET_FUN(__glewVertexAttrib1s) -#define glVertexAttrib1sv GLEW_GET_FUN(__glewVertexAttrib1sv) -#define glVertexAttrib2d GLEW_GET_FUN(__glewVertexAttrib2d) -#define glVertexAttrib2dv GLEW_GET_FUN(__glewVertexAttrib2dv) -#define glVertexAttrib2f GLEW_GET_FUN(__glewVertexAttrib2f) -#define glVertexAttrib2fv GLEW_GET_FUN(__glewVertexAttrib2fv) -#define glVertexAttrib2s GLEW_GET_FUN(__glewVertexAttrib2s) -#define glVertexAttrib2sv GLEW_GET_FUN(__glewVertexAttrib2sv) -#define glVertexAttrib3d GLEW_GET_FUN(__glewVertexAttrib3d) -#define glVertexAttrib3dv GLEW_GET_FUN(__glewVertexAttrib3dv) -#define glVertexAttrib3f GLEW_GET_FUN(__glewVertexAttrib3f) -#define glVertexAttrib3fv GLEW_GET_FUN(__glewVertexAttrib3fv) -#define glVertexAttrib3s GLEW_GET_FUN(__glewVertexAttrib3s) -#define glVertexAttrib3sv GLEW_GET_FUN(__glewVertexAttrib3sv) -#define glVertexAttrib4Nbv GLEW_GET_FUN(__glewVertexAttrib4Nbv) -#define glVertexAttrib4Niv GLEW_GET_FUN(__glewVertexAttrib4Niv) -#define glVertexAttrib4Nsv GLEW_GET_FUN(__glewVertexAttrib4Nsv) -#define glVertexAttrib4Nub GLEW_GET_FUN(__glewVertexAttrib4Nub) -#define glVertexAttrib4Nubv GLEW_GET_FUN(__glewVertexAttrib4Nubv) -#define glVertexAttrib4Nuiv GLEW_GET_FUN(__glewVertexAttrib4Nuiv) -#define glVertexAttrib4Nusv GLEW_GET_FUN(__glewVertexAttrib4Nusv) -#define glVertexAttrib4bv GLEW_GET_FUN(__glewVertexAttrib4bv) -#define glVertexAttrib4d GLEW_GET_FUN(__glewVertexAttrib4d) -#define glVertexAttrib4dv GLEW_GET_FUN(__glewVertexAttrib4dv) -#define glVertexAttrib4f GLEW_GET_FUN(__glewVertexAttrib4f) -#define glVertexAttrib4fv GLEW_GET_FUN(__glewVertexAttrib4fv) -#define glVertexAttrib4iv GLEW_GET_FUN(__glewVertexAttrib4iv) -#define glVertexAttrib4s GLEW_GET_FUN(__glewVertexAttrib4s) -#define glVertexAttrib4sv GLEW_GET_FUN(__glewVertexAttrib4sv) -#define glVertexAttrib4ubv GLEW_GET_FUN(__glewVertexAttrib4ubv) -#define glVertexAttrib4uiv GLEW_GET_FUN(__glewVertexAttrib4uiv) -#define glVertexAttrib4usv GLEW_GET_FUN(__glewVertexAttrib4usv) -#define glVertexAttribPointer GLEW_GET_FUN(__glewVertexAttribPointer) - -#define GLEW_VERSION_2_0 GLEW_GET_VAR(__GLEW_VERSION_2_0) - -#endif /* GL_VERSION_2_0 */ - -/* ----------------------------- GL_VERSION_2_1 ---------------------------- */ - -#ifndef GL_VERSION_2_1 -#define GL_VERSION_2_1 1 - -#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_SLUMINANCE_ALPHA 0x8C44 -#define GL_SLUMINANCE8_ALPHA8 0x8C45 -#define GL_SLUMINANCE 0x8C46 -#define GL_SLUMINANCE8 0x8C47 -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#define GL_COMPRESSED_SLUMINANCE 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B - -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - -#define glUniformMatrix2x3fv GLEW_GET_FUN(__glewUniformMatrix2x3fv) -#define glUniformMatrix2x4fv GLEW_GET_FUN(__glewUniformMatrix2x4fv) -#define glUniformMatrix3x2fv GLEW_GET_FUN(__glewUniformMatrix3x2fv) -#define glUniformMatrix3x4fv GLEW_GET_FUN(__glewUniformMatrix3x4fv) -#define glUniformMatrix4x2fv GLEW_GET_FUN(__glewUniformMatrix4x2fv) -#define glUniformMatrix4x3fv GLEW_GET_FUN(__glewUniformMatrix4x3fv) - -#define GLEW_VERSION_2_1 GLEW_GET_VAR(__GLEW_VERSION_2_1) - -#endif /* GL_VERSION_2_1 */ - -/* ----------------------------- GL_VERSION_3_0 ---------------------------- */ - -#ifndef GL_VERSION_3_0 -#define GL_VERSION_3_0 1 - -#define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 -#define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 -#define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 -#define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 -#define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 -#define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 -#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB -#define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES -#define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS -#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_CONTEXT_FLAGS 0x821E -#define GL_DEPTH_BUFFER 0x8223 -#define GL_STENCIL_BUFFER 0x8224 -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_CLAMP_VERTEX_COLOR 0x891A -#define GL_CLAMP_FRAGMENT_COLOR 0x891B -#define GL_CLAMP_READ_COLOR 0x891C -#define GL_FIXED_ONLY 0x891D -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_TEXTURE_1D_ARRAY 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_GREEN_INTEGER 0x8D95 -#define GL_BLUE_INTEGER 0x8D96 -#define GL_ALPHA_INTEGER 0x8D97 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_BGR_INTEGER 0x8D9A -#define GL_BGRA_INTEGER 0x8D9B -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_QUERY_WAIT 0x8E13 -#define GL_QUERY_NO_WAIT 0x8E14 -#define GL_QUERY_BY_REGION_WAIT 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 - -typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint colorNumber, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawBuffer, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawBuffer, const GLint* value); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawBuffer, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLCOLORMASKIPROC) (GLuint buf, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GLAPIENTRY * PFNGLDISABLEIPROC) (GLenum cap, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEIPROC) (GLenum cap, GLuint index); -typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERPROC) (void); -typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETBOOLEANI_VPROC) (GLenum pname, GLuint index, GLboolean* data); -typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar* name); -typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIPROC) (GLenum cap, GLuint index); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint* v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint* v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint* v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint v0, GLuint v1); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint* v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint* v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint v0, GLuint v1, GLuint v2); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint* v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte* v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint* v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort* v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte* v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint* v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort* v0); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void*pointer); - -#define glBeginConditionalRender GLEW_GET_FUN(__glewBeginConditionalRender) -#define glBeginTransformFeedback GLEW_GET_FUN(__glewBeginTransformFeedback) -#define glBindFragDataLocation GLEW_GET_FUN(__glewBindFragDataLocation) -#define glClampColor GLEW_GET_FUN(__glewClampColor) -#define glClearBufferfi GLEW_GET_FUN(__glewClearBufferfi) -#define glClearBufferfv GLEW_GET_FUN(__glewClearBufferfv) -#define glClearBufferiv GLEW_GET_FUN(__glewClearBufferiv) -#define glClearBufferuiv GLEW_GET_FUN(__glewClearBufferuiv) -#define glColorMaski GLEW_GET_FUN(__glewColorMaski) -#define glDisablei GLEW_GET_FUN(__glewDisablei) -#define glEnablei GLEW_GET_FUN(__glewEnablei) -#define glEndConditionalRender GLEW_GET_FUN(__glewEndConditionalRender) -#define glEndTransformFeedback GLEW_GET_FUN(__glewEndTransformFeedback) -#define glGetBooleani_v GLEW_GET_FUN(__glewGetBooleani_v) -#define glGetFragDataLocation GLEW_GET_FUN(__glewGetFragDataLocation) -#define glGetStringi GLEW_GET_FUN(__glewGetStringi) -#define glGetTexParameterIiv GLEW_GET_FUN(__glewGetTexParameterIiv) -#define glGetTexParameterIuiv GLEW_GET_FUN(__glewGetTexParameterIuiv) -#define glGetTransformFeedbackVarying GLEW_GET_FUN(__glewGetTransformFeedbackVarying) -#define glGetUniformuiv GLEW_GET_FUN(__glewGetUniformuiv) -#define glGetVertexAttribIiv GLEW_GET_FUN(__glewGetVertexAttribIiv) -#define glGetVertexAttribIuiv GLEW_GET_FUN(__glewGetVertexAttribIuiv) -#define glIsEnabledi GLEW_GET_FUN(__glewIsEnabledi) -#define glTexParameterIiv GLEW_GET_FUN(__glewTexParameterIiv) -#define glTexParameterIuiv GLEW_GET_FUN(__glewTexParameterIuiv) -#define glTransformFeedbackVaryings GLEW_GET_FUN(__glewTransformFeedbackVaryings) -#define glUniform1ui GLEW_GET_FUN(__glewUniform1ui) -#define glUniform1uiv GLEW_GET_FUN(__glewUniform1uiv) -#define glUniform2ui GLEW_GET_FUN(__glewUniform2ui) -#define glUniform2uiv GLEW_GET_FUN(__glewUniform2uiv) -#define glUniform3ui GLEW_GET_FUN(__glewUniform3ui) -#define glUniform3uiv GLEW_GET_FUN(__glewUniform3uiv) -#define glUniform4ui GLEW_GET_FUN(__glewUniform4ui) -#define glUniform4uiv GLEW_GET_FUN(__glewUniform4uiv) -#define glVertexAttribI1i GLEW_GET_FUN(__glewVertexAttribI1i) -#define glVertexAttribI1iv GLEW_GET_FUN(__glewVertexAttribI1iv) -#define glVertexAttribI1ui GLEW_GET_FUN(__glewVertexAttribI1ui) -#define glVertexAttribI1uiv GLEW_GET_FUN(__glewVertexAttribI1uiv) -#define glVertexAttribI2i GLEW_GET_FUN(__glewVertexAttribI2i) -#define glVertexAttribI2iv GLEW_GET_FUN(__glewVertexAttribI2iv) -#define glVertexAttribI2ui GLEW_GET_FUN(__glewVertexAttribI2ui) -#define glVertexAttribI2uiv GLEW_GET_FUN(__glewVertexAttribI2uiv) -#define glVertexAttribI3i GLEW_GET_FUN(__glewVertexAttribI3i) -#define glVertexAttribI3iv GLEW_GET_FUN(__glewVertexAttribI3iv) -#define glVertexAttribI3ui GLEW_GET_FUN(__glewVertexAttribI3ui) -#define glVertexAttribI3uiv GLEW_GET_FUN(__glewVertexAttribI3uiv) -#define glVertexAttribI4bv GLEW_GET_FUN(__glewVertexAttribI4bv) -#define glVertexAttribI4i GLEW_GET_FUN(__glewVertexAttribI4i) -#define glVertexAttribI4iv GLEW_GET_FUN(__glewVertexAttribI4iv) -#define glVertexAttribI4sv GLEW_GET_FUN(__glewVertexAttribI4sv) -#define glVertexAttribI4ubv GLEW_GET_FUN(__glewVertexAttribI4ubv) -#define glVertexAttribI4ui GLEW_GET_FUN(__glewVertexAttribI4ui) -#define glVertexAttribI4uiv GLEW_GET_FUN(__glewVertexAttribI4uiv) -#define glVertexAttribI4usv GLEW_GET_FUN(__glewVertexAttribI4usv) -#define glVertexAttribIPointer GLEW_GET_FUN(__glewVertexAttribIPointer) - -#define GLEW_VERSION_3_0 GLEW_GET_VAR(__GLEW_VERSION_3_0) - -#endif /* GL_VERSION_3_0 */ - -/* ----------------------------- GL_VERSION_3_1 ---------------------------- */ - -#ifndef GL_VERSION_3_1 -#define GL_VERSION_3_1 1 - -#define GL_TEXTURE_RECTANGLE 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 -#define GL_SAMPLER_2D_RECT 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT 0x8C2E -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_2D_RECT 0x8DCD -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_RED_SNORM 0x8F90 -#define GL_RG_SNORM 0x8F91 -#define GL_RGB_SNORM 0x8F92 -#define GL_RGBA_SNORM 0x8F93 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM 0x8F98 -#define GL_RG16_SNORM 0x8F99 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGBA16_SNORM 0x8F9B -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART 0x8F9D -#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalFormat, GLuint buffer); - -#define glDrawArraysInstanced GLEW_GET_FUN(__glewDrawArraysInstanced) -#define glDrawElementsInstanced GLEW_GET_FUN(__glewDrawElementsInstanced) -#define glPrimitiveRestartIndex GLEW_GET_FUN(__glewPrimitiveRestartIndex) -#define glTexBuffer GLEW_GET_FUN(__glewTexBuffer) - -#define GLEW_VERSION_3_1 GLEW_GET_VAR(__GLEW_VERSION_3_1) - -#endif /* GL_VERSION_3_1 */ - -/* ----------------------------- GL_VERSION_3_2 ---------------------------- */ - -#ifndef GL_VERSION_3_2 -#define GL_VERSION_3_2 1 - -#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 -#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_PROGRAM_POINT_SIZE 0x8642 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_CONTEXT_PROFILE_MASK 0x9126 - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum value, GLint64 * data); -typedef void (GLAPIENTRY * PFNGLGETINTEGER64I_VPROC) (GLenum pname, GLuint index, GLint64 * data); - -#define glFramebufferTexture GLEW_GET_FUN(__glewFramebufferTexture) -#define glGetBufferParameteri64v GLEW_GET_FUN(__glewGetBufferParameteri64v) -#define glGetInteger64i_v GLEW_GET_FUN(__glewGetInteger64i_v) - -#define GLEW_VERSION_3_2 GLEW_GET_VAR(__GLEW_VERSION_3_2) - -#endif /* GL_VERSION_3_2 */ - -/* ----------------------------- GL_VERSION_3_3 ---------------------------- */ - -#ifndef GL_VERSION_3_3 -#define GL_VERSION_3_3 1 - -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_RGB10_A2UI 0x906F - -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); - -#define glVertexAttribDivisor GLEW_GET_FUN(__glewVertexAttribDivisor) - -#define GLEW_VERSION_3_3 GLEW_GET_VAR(__GLEW_VERSION_3_3) - -#endif /* GL_VERSION_3_3 */ - -/* ----------------------------- GL_VERSION_4_0 ---------------------------- */ - -#ifndef GL_VERSION_4_0 -#define GL_VERSION_4_0 1 - -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGPROC) (GLclampf value); - -#define glBlendEquationSeparatei GLEW_GET_FUN(__glewBlendEquationSeparatei) -#define glBlendEquationi GLEW_GET_FUN(__glewBlendEquationi) -#define glBlendFuncSeparatei GLEW_GET_FUN(__glewBlendFuncSeparatei) -#define glBlendFunci GLEW_GET_FUN(__glewBlendFunci) -#define glMinSampleShading GLEW_GET_FUN(__glewMinSampleShading) - -#define GLEW_VERSION_4_0 GLEW_GET_VAR(__GLEW_VERSION_4_0) - -#endif /* GL_VERSION_4_0 */ - -/* ----------------------------- GL_VERSION_4_1 ---------------------------- */ - -#ifndef GL_VERSION_4_1 -#define GL_VERSION_4_1 1 - -#define GLEW_VERSION_4_1 GLEW_GET_VAR(__GLEW_VERSION_4_1) - -#endif /* GL_VERSION_4_1 */ - -/* ----------------------------- GL_VERSION_4_2 ---------------------------- */ - -#ifndef GL_VERSION_4_2 -#define GL_VERSION_4_2 1 - -#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 - -#define GLEW_VERSION_4_2 GLEW_GET_VAR(__GLEW_VERSION_4_2) - -#endif /* GL_VERSION_4_2 */ - -/* ----------------------------- GL_VERSION_4_3 ---------------------------- */ - -#ifndef GL_VERSION_4_3 -#define GL_VERSION_4_3 1 - -#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9 -#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E - -#define GLEW_VERSION_4_3 GLEW_GET_VAR(__GLEW_VERSION_4_3) - -#endif /* GL_VERSION_4_3 */ - -/* ----------------------------- GL_VERSION_4_4 ---------------------------- */ - -#ifndef GL_VERSION_4_4 -#define GL_VERSION_4_4 1 - -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 -#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 -#define GL_TEXTURE_BUFFER_BINDING 0x8C2A - -#define GLEW_VERSION_4_4 GLEW_GET_VAR(__GLEW_VERSION_4_4) - -#endif /* GL_VERSION_4_4 */ - -/* ----------------------------- GL_VERSION_4_5 ---------------------------- */ - -#ifndef GL_VERSION_4_5 -#define GL_VERSION_4_5 1 - -typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSPROC) (void); - -#define glGetGraphicsResetStatus GLEW_GET_FUN(__glewGetGraphicsResetStatus) - -#define GLEW_VERSION_4_5 GLEW_GET_VAR(__GLEW_VERSION_4_5) - -#endif /* GL_VERSION_4_5 */ - -/* -------------------------- GL_3DFX_multisample -------------------------- */ - -#ifndef GL_3DFX_multisample -#define GL_3DFX_multisample 1 - -#define GL_MULTISAMPLE_3DFX 0x86B2 -#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define GL_SAMPLES_3DFX 0x86B4 -#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 - -#define GLEW_3DFX_multisample GLEW_GET_VAR(__GLEW_3DFX_multisample) - -#endif /* GL_3DFX_multisample */ - -/* ---------------------------- GL_3DFX_tbuffer ---------------------------- */ - -#ifndef GL_3DFX_tbuffer -#define GL_3DFX_tbuffer 1 - -typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); - -#define glTbufferMask3DFX GLEW_GET_FUN(__glewTbufferMask3DFX) - -#define GLEW_3DFX_tbuffer GLEW_GET_VAR(__GLEW_3DFX_tbuffer) - -#endif /* GL_3DFX_tbuffer */ - -/* -------------------- GL_3DFX_texture_compression_FXT1 ------------------- */ - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_3DFX_texture_compression_FXT1 1 - -#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 - -#define GLEW_3DFX_texture_compression_FXT1 GLEW_GET_VAR(__GLEW_3DFX_texture_compression_FXT1) - -#endif /* GL_3DFX_texture_compression_FXT1 */ - -/* ----------------------- GL_AMD_blend_minmax_factor ---------------------- */ - -#ifndef GL_AMD_blend_minmax_factor -#define GL_AMD_blend_minmax_factor 1 - -#define GL_FACTOR_MIN_AMD 0x901C -#define GL_FACTOR_MAX_AMD 0x901D - -#define GLEW_AMD_blend_minmax_factor GLEW_GET_VAR(__GLEW_AMD_blend_minmax_factor) - -#endif /* GL_AMD_blend_minmax_factor */ - -/* ----------------------- GL_AMD_conservative_depth ----------------------- */ - -#ifndef GL_AMD_conservative_depth -#define GL_AMD_conservative_depth 1 - -#define GLEW_AMD_conservative_depth GLEW_GET_VAR(__GLEW_AMD_conservative_depth) - -#endif /* GL_AMD_conservative_depth */ - -/* -------------------------- GL_AMD_debug_output -------------------------- */ - -#ifndef GL_AMD_debug_output -#define GL_AMD_debug_output 1 - -#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 -#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 -#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 -#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A -#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B -#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C -#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D -#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E -#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F -#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 - -typedef void (GLAPIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, void* userParam); - -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar* buf); -typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, GLchar* message); - -#define glDebugMessageCallbackAMD GLEW_GET_FUN(__glewDebugMessageCallbackAMD) -#define glDebugMessageEnableAMD GLEW_GET_FUN(__glewDebugMessageEnableAMD) -#define glDebugMessageInsertAMD GLEW_GET_FUN(__glewDebugMessageInsertAMD) -#define glGetDebugMessageLogAMD GLEW_GET_FUN(__glewGetDebugMessageLogAMD) - -#define GLEW_AMD_debug_output GLEW_GET_VAR(__GLEW_AMD_debug_output) - -#endif /* GL_AMD_debug_output */ - -/* ---------------------- GL_AMD_depth_clamp_separate ---------------------- */ - -#ifndef GL_AMD_depth_clamp_separate -#define GL_AMD_depth_clamp_separate 1 - -#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E -#define GL_DEPTH_CLAMP_FAR_AMD 0x901F - -#define GLEW_AMD_depth_clamp_separate GLEW_GET_VAR(__GLEW_AMD_depth_clamp_separate) - -#endif /* GL_AMD_depth_clamp_separate */ - -/* ----------------------- GL_AMD_draw_buffers_blend ----------------------- */ - -#ifndef GL_AMD_draw_buffers_blend -#define GL_AMD_draw_buffers_blend 1 - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); - -#define glBlendEquationIndexedAMD GLEW_GET_FUN(__glewBlendEquationIndexedAMD) -#define glBlendEquationSeparateIndexedAMD GLEW_GET_FUN(__glewBlendEquationSeparateIndexedAMD) -#define glBlendFuncIndexedAMD GLEW_GET_FUN(__glewBlendFuncIndexedAMD) -#define glBlendFuncSeparateIndexedAMD GLEW_GET_FUN(__glewBlendFuncSeparateIndexedAMD) - -#define GLEW_AMD_draw_buffers_blend GLEW_GET_VAR(__GLEW_AMD_draw_buffers_blend) - -#endif /* GL_AMD_draw_buffers_blend */ - -/* --------------------------- GL_AMD_gcn_shader --------------------------- */ - -#ifndef GL_AMD_gcn_shader -#define GL_AMD_gcn_shader 1 - -#define GLEW_AMD_gcn_shader GLEW_GET_VAR(__GLEW_AMD_gcn_shader) - -#endif /* GL_AMD_gcn_shader */ - -/* ------------------------ GL_AMD_gpu_shader_int64 ------------------------ */ - -#ifndef GL_AMD_gpu_shader_int64 -#define GL_AMD_gpu_shader_int64 1 - -#define GLEW_AMD_gpu_shader_int64 GLEW_GET_VAR(__GLEW_AMD_gpu_shader_int64) - -#endif /* GL_AMD_gpu_shader_int64 */ - -/* ---------------------- GL_AMD_interleaved_elements ---------------------- */ - -#ifndef GL_AMD_interleaved_elements -#define GL_AMD_interleaved_elements 1 - -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_RG8UI 0x8238 -#define GL_RG16UI 0x823A -#define GL_RGBA8UI 0x8D7C -#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4 -#define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5 - -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPARAMETERIAMDPROC) (GLuint index, GLenum pname, GLint param); - -#define glVertexAttribParameteriAMD GLEW_GET_FUN(__glewVertexAttribParameteriAMD) - -#define GLEW_AMD_interleaved_elements GLEW_GET_VAR(__GLEW_AMD_interleaved_elements) - -#endif /* GL_AMD_interleaved_elements */ - -/* ----------------------- GL_AMD_multi_draw_indirect ---------------------- */ - -#ifndef GL_AMD_multi_draw_indirect -#define GL_AMD_multi_draw_indirect 1 - -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); - -#define glMultiDrawArraysIndirectAMD GLEW_GET_FUN(__glewMultiDrawArraysIndirectAMD) -#define glMultiDrawElementsIndirectAMD GLEW_GET_FUN(__glewMultiDrawElementsIndirectAMD) - -#define GLEW_AMD_multi_draw_indirect GLEW_GET_VAR(__GLEW_AMD_multi_draw_indirect) - -#endif /* GL_AMD_multi_draw_indirect */ - -/* ------------------------- GL_AMD_name_gen_delete ------------------------ */ - -#ifndef GL_AMD_name_gen_delete -#define GL_AMD_name_gen_delete 1 - -#define GL_DATA_BUFFER_AMD 0x9151 -#define GL_PERFORMANCE_MONITOR_AMD 0x9152 -#define GL_QUERY_OBJECT_AMD 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 -#define GL_SAMPLER_OBJECT_AMD 0x9155 - -typedef void (GLAPIENTRY * PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint* names); -typedef void (GLAPIENTRY * PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint* names); -typedef GLboolean (GLAPIENTRY * PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); - -#define glDeleteNamesAMD GLEW_GET_FUN(__glewDeleteNamesAMD) -#define glGenNamesAMD GLEW_GET_FUN(__glewGenNamesAMD) -#define glIsNameAMD GLEW_GET_FUN(__glewIsNameAMD) - -#define GLEW_AMD_name_gen_delete GLEW_GET_VAR(__GLEW_AMD_name_gen_delete) - -#endif /* GL_AMD_name_gen_delete */ - -/* ---------------------- GL_AMD_occlusion_query_event --------------------- */ - -#ifndef GL_AMD_occlusion_query_event -#define GL_AMD_occlusion_query_event 1 - -#define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001 -#define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002 -#define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004 -#define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008 -#define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F -#define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLQUERYOBJECTPARAMETERUIAMDPROC) (GLenum target, GLuint id, GLenum pname, GLuint param); - -#define glQueryObjectParameteruiAMD GLEW_GET_FUN(__glewQueryObjectParameteruiAMD) - -#define GLEW_AMD_occlusion_query_event GLEW_GET_VAR(__GLEW_AMD_occlusion_query_event) - -#endif /* GL_AMD_occlusion_query_event */ - -/* ----------------------- GL_AMD_performance_monitor ---------------------- */ - -#ifndef GL_AMD_performance_monitor -#define GL_AMD_performance_monitor 1 - -#define GL_COUNTER_TYPE_AMD 0x8BC0 -#define GL_COUNTER_RANGE_AMD 0x8BC1 -#define GL_UNSIGNED_INT64_AMD 0x8BC2 -#define GL_PERCENTAGE_AMD 0x8BC3 -#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 -#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 -#define GL_PERFMON_RESULT_AMD 0x8BC6 - -typedef void (GLAPIENTRY * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GLAPIENTRY * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); -typedef void (GLAPIENTRY * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GLAPIENTRY * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar *counterString); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei* length, GLchar *groupString); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint* numGroups, GLsizei groupsSize, GLuint *groups); -typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList); - -#define glBeginPerfMonitorAMD GLEW_GET_FUN(__glewBeginPerfMonitorAMD) -#define glDeletePerfMonitorsAMD GLEW_GET_FUN(__glewDeletePerfMonitorsAMD) -#define glEndPerfMonitorAMD GLEW_GET_FUN(__glewEndPerfMonitorAMD) -#define glGenPerfMonitorsAMD GLEW_GET_FUN(__glewGenPerfMonitorsAMD) -#define glGetPerfMonitorCounterDataAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterDataAMD) -#define glGetPerfMonitorCounterInfoAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterInfoAMD) -#define glGetPerfMonitorCounterStringAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterStringAMD) -#define glGetPerfMonitorCountersAMD GLEW_GET_FUN(__glewGetPerfMonitorCountersAMD) -#define glGetPerfMonitorGroupStringAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupStringAMD) -#define glGetPerfMonitorGroupsAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupsAMD) -#define glSelectPerfMonitorCountersAMD GLEW_GET_FUN(__glewSelectPerfMonitorCountersAMD) - -#define GLEW_AMD_performance_monitor GLEW_GET_VAR(__GLEW_AMD_performance_monitor) - -#endif /* GL_AMD_performance_monitor */ - -/* -------------------------- GL_AMD_pinned_memory ------------------------- */ - -#ifndef GL_AMD_pinned_memory -#define GL_AMD_pinned_memory 1 - -#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160 - -#define GLEW_AMD_pinned_memory GLEW_GET_VAR(__GLEW_AMD_pinned_memory) - -#endif /* GL_AMD_pinned_memory */ - -/* ----------------------- GL_AMD_query_buffer_object ---------------------- */ - -#ifndef GL_AMD_query_buffer_object -#define GL_AMD_query_buffer_object 1 - -#define GL_QUERY_BUFFER_AMD 0x9192 -#define GL_QUERY_BUFFER_BINDING_AMD 0x9193 -#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194 - -#define GLEW_AMD_query_buffer_object GLEW_GET_VAR(__GLEW_AMD_query_buffer_object) - -#endif /* GL_AMD_query_buffer_object */ - -/* ------------------------ GL_AMD_sample_positions ------------------------ */ - -#ifndef GL_AMD_sample_positions -#define GL_AMD_sample_positions 1 - -#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F - -typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat* val); - -#define glSetMultisamplefvAMD GLEW_GET_FUN(__glewSetMultisamplefvAMD) - -#define GLEW_AMD_sample_positions GLEW_GET_VAR(__GLEW_AMD_sample_positions) - -#endif /* GL_AMD_sample_positions */ - -/* ------------------ GL_AMD_seamless_cubemap_per_texture ------------------ */ - -#ifndef GL_AMD_seamless_cubemap_per_texture -#define GL_AMD_seamless_cubemap_per_texture 1 - -#define GL_TEXTURE_CUBE_MAP_SEAMLESS_ARB 0x884F - -#define GLEW_AMD_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_AMD_seamless_cubemap_per_texture) - -#endif /* GL_AMD_seamless_cubemap_per_texture */ - -/* -------------------- GL_AMD_shader_atomic_counter_ops ------------------- */ - -#ifndef GL_AMD_shader_atomic_counter_ops -#define GL_AMD_shader_atomic_counter_ops 1 - -#define GLEW_AMD_shader_atomic_counter_ops GLEW_GET_VAR(__GLEW_AMD_shader_atomic_counter_ops) - -#endif /* GL_AMD_shader_atomic_counter_ops */ - -/* ---------------------- GL_AMD_shader_stencil_export --------------------- */ - -#ifndef GL_AMD_shader_stencil_export -#define GL_AMD_shader_stencil_export 1 - -#define GLEW_AMD_shader_stencil_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_export) - -#endif /* GL_AMD_shader_stencil_export */ - -/* ------------------- GL_AMD_shader_stencil_value_export ------------------ */ - -#ifndef GL_AMD_shader_stencil_value_export -#define GL_AMD_shader_stencil_value_export 1 - -#define GLEW_AMD_shader_stencil_value_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_value_export) - -#endif /* GL_AMD_shader_stencil_value_export */ - -/* ---------------------- GL_AMD_shader_trinary_minmax --------------------- */ - -#ifndef GL_AMD_shader_trinary_minmax -#define GL_AMD_shader_trinary_minmax 1 - -#define GLEW_AMD_shader_trinary_minmax GLEW_GET_VAR(__GLEW_AMD_shader_trinary_minmax) - -#endif /* GL_AMD_shader_trinary_minmax */ - -/* ------------------------- GL_AMD_sparse_texture ------------------------- */ - -#ifndef GL_AMD_sparse_texture -#define GL_AMD_sparse_texture 1 - -#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001 -#define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195 -#define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196 -#define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197 -#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198 -#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199 -#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A -#define GL_MIN_SPARSE_LEVEL_AMD 0x919B -#define GL_MIN_LOD_WARNING_AMD 0x919C - -typedef void (GLAPIENTRY * PFNGLTEXSTORAGESPARSEAMDPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGESPARSEAMDPROC) (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); - -#define glTexStorageSparseAMD GLEW_GET_FUN(__glewTexStorageSparseAMD) -#define glTextureStorageSparseAMD GLEW_GET_FUN(__glewTextureStorageSparseAMD) - -#define GLEW_AMD_sparse_texture GLEW_GET_VAR(__GLEW_AMD_sparse_texture) - -#endif /* GL_AMD_sparse_texture */ - -/* ------------------- GL_AMD_stencil_operation_extended ------------------- */ - -#ifndef GL_AMD_stencil_operation_extended -#define GL_AMD_stencil_operation_extended 1 - -#define GL_SET_AMD 0x874A -#define GL_REPLACE_VALUE_AMD 0x874B -#define GL_STENCIL_OP_VALUE_AMD 0x874C -#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D - -typedef void (GLAPIENTRY * PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint value); - -#define glStencilOpValueAMD GLEW_GET_FUN(__glewStencilOpValueAMD) - -#define GLEW_AMD_stencil_operation_extended GLEW_GET_VAR(__GLEW_AMD_stencil_operation_extended) - -#endif /* GL_AMD_stencil_operation_extended */ - -/* ------------------------ GL_AMD_texture_texture4 ------------------------ */ - -#ifndef GL_AMD_texture_texture4 -#define GL_AMD_texture_texture4 1 - -#define GLEW_AMD_texture_texture4 GLEW_GET_VAR(__GLEW_AMD_texture_texture4) - -#endif /* GL_AMD_texture_texture4 */ - -/* --------------- GL_AMD_transform_feedback3_lines_triangles -------------- */ - -#ifndef GL_AMD_transform_feedback3_lines_triangles -#define GL_AMD_transform_feedback3_lines_triangles 1 - -#define GLEW_AMD_transform_feedback3_lines_triangles GLEW_GET_VAR(__GLEW_AMD_transform_feedback3_lines_triangles) - -#endif /* GL_AMD_transform_feedback3_lines_triangles */ - -/* ----------------------- GL_AMD_transform_feedback4 ---------------------- */ - -#ifndef GL_AMD_transform_feedback4 -#define GL_AMD_transform_feedback4 1 - -#define GL_STREAM_RASTERIZATION_AMD 0x91A0 - -#define GLEW_AMD_transform_feedback4 GLEW_GET_VAR(__GLEW_AMD_transform_feedback4) - -#endif /* GL_AMD_transform_feedback4 */ - -/* ----------------------- GL_AMD_vertex_shader_layer ---------------------- */ - -#ifndef GL_AMD_vertex_shader_layer -#define GL_AMD_vertex_shader_layer 1 - -#define GLEW_AMD_vertex_shader_layer GLEW_GET_VAR(__GLEW_AMD_vertex_shader_layer) - -#endif /* GL_AMD_vertex_shader_layer */ - -/* -------------------- GL_AMD_vertex_shader_tessellator ------------------- */ - -#ifndef GL_AMD_vertex_shader_tessellator -#define GL_AMD_vertex_shader_tessellator 1 - -#define GL_SAMPLER_BUFFER_AMD 0x9001 -#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 -#define GL_TESSELLATION_MODE_AMD 0x9004 -#define GL_TESSELLATION_FACTOR_AMD 0x9005 -#define GL_DISCRETE_AMD 0x9006 -#define GL_CONTINUOUS_AMD 0x9007 - -typedef void (GLAPIENTRY * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); -typedef void (GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); - -#define glTessellationFactorAMD GLEW_GET_FUN(__glewTessellationFactorAMD) -#define glTessellationModeAMD GLEW_GET_FUN(__glewTessellationModeAMD) - -#define GLEW_AMD_vertex_shader_tessellator GLEW_GET_VAR(__GLEW_AMD_vertex_shader_tessellator) - -#endif /* GL_AMD_vertex_shader_tessellator */ - -/* ------------------ GL_AMD_vertex_shader_viewport_index ------------------ */ - -#ifndef GL_AMD_vertex_shader_viewport_index -#define GL_AMD_vertex_shader_viewport_index 1 - -#define GLEW_AMD_vertex_shader_viewport_index GLEW_GET_VAR(__GLEW_AMD_vertex_shader_viewport_index) - -#endif /* GL_AMD_vertex_shader_viewport_index */ - -/* ------------------------- GL_ANGLE_depth_texture ------------------------ */ - -#ifndef GL_ANGLE_depth_texture -#define GL_ANGLE_depth_texture 1 - -#define GLEW_ANGLE_depth_texture GLEW_GET_VAR(__GLEW_ANGLE_depth_texture) - -#endif /* GL_ANGLE_depth_texture */ - -/* ----------------------- GL_ANGLE_framebuffer_blit ----------------------- */ - -#ifndef GL_ANGLE_framebuffer_blit -#define GL_ANGLE_framebuffer_blit 1 - -#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 -#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA - -typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); - -#define glBlitFramebufferANGLE GLEW_GET_FUN(__glewBlitFramebufferANGLE) - -#define GLEW_ANGLE_framebuffer_blit GLEW_GET_VAR(__GLEW_ANGLE_framebuffer_blit) - -#endif /* GL_ANGLE_framebuffer_blit */ - -/* -------------------- GL_ANGLE_framebuffer_multisample ------------------- */ - -#ifndef GL_ANGLE_framebuffer_multisample -#define GL_ANGLE_framebuffer_multisample 1 - -#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 -#define GL_MAX_SAMPLES_ANGLE 0x8D57 - -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); - -#define glRenderbufferStorageMultisampleANGLE GLEW_GET_FUN(__glewRenderbufferStorageMultisampleANGLE) - -#define GLEW_ANGLE_framebuffer_multisample GLEW_GET_VAR(__GLEW_ANGLE_framebuffer_multisample) - -#endif /* GL_ANGLE_framebuffer_multisample */ - -/* ----------------------- GL_ANGLE_instanced_arrays ----------------------- */ - -#ifndef GL_ANGLE_instanced_arrays -#define GL_ANGLE_instanced_arrays 1 - -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); - -#define glDrawArraysInstancedANGLE GLEW_GET_FUN(__glewDrawArraysInstancedANGLE) -#define glDrawElementsInstancedANGLE GLEW_GET_FUN(__glewDrawElementsInstancedANGLE) -#define glVertexAttribDivisorANGLE GLEW_GET_FUN(__glewVertexAttribDivisorANGLE) - -#define GLEW_ANGLE_instanced_arrays GLEW_GET_VAR(__GLEW_ANGLE_instanced_arrays) - -#endif /* GL_ANGLE_instanced_arrays */ - -/* -------------------- GL_ANGLE_pack_reverse_row_order -------------------- */ - -#ifndef GL_ANGLE_pack_reverse_row_order -#define GL_ANGLE_pack_reverse_row_order 1 - -#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 - -#define GLEW_ANGLE_pack_reverse_row_order GLEW_GET_VAR(__GLEW_ANGLE_pack_reverse_row_order) - -#endif /* GL_ANGLE_pack_reverse_row_order */ - -/* ------------------------ GL_ANGLE_program_binary ------------------------ */ - -#ifndef GL_ANGLE_program_binary -#define GL_ANGLE_program_binary 1 - -#define GL_PROGRAM_BINARY_ANGLE 0x93A6 - -#define GLEW_ANGLE_program_binary GLEW_GET_VAR(__GLEW_ANGLE_program_binary) - -#endif /* GL_ANGLE_program_binary */ - -/* ------------------- GL_ANGLE_texture_compression_dxt1 ------------------- */ - -#ifndef GL_ANGLE_texture_compression_dxt1 -#define GL_ANGLE_texture_compression_dxt1 1 - -#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 - -#define GLEW_ANGLE_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt1) - -#endif /* GL_ANGLE_texture_compression_dxt1 */ - -/* ------------------- GL_ANGLE_texture_compression_dxt3 ------------------- */ - -#ifndef GL_ANGLE_texture_compression_dxt3 -#define GL_ANGLE_texture_compression_dxt3 1 - -#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 - -#define GLEW_ANGLE_texture_compression_dxt3 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt3) - -#endif /* GL_ANGLE_texture_compression_dxt3 */ - -/* ------------------- GL_ANGLE_texture_compression_dxt5 ------------------- */ - -#ifndef GL_ANGLE_texture_compression_dxt5 -#define GL_ANGLE_texture_compression_dxt5 1 - -#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 - -#define GLEW_ANGLE_texture_compression_dxt5 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt5) - -#endif /* GL_ANGLE_texture_compression_dxt5 */ - -/* ------------------------- GL_ANGLE_texture_usage ------------------------ */ - -#ifndef GL_ANGLE_texture_usage -#define GL_ANGLE_texture_usage 1 - -#define GL_TEXTURE_USAGE_ANGLE 0x93A2 -#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 - -#define GLEW_ANGLE_texture_usage GLEW_GET_VAR(__GLEW_ANGLE_texture_usage) - -#endif /* GL_ANGLE_texture_usage */ - -/* -------------------------- GL_ANGLE_timer_query ------------------------- */ - -#ifndef GL_ANGLE_timer_query -#define GL_ANGLE_timer_query 1 - -#define GL_QUERY_COUNTER_BITS_ANGLE 0x8864 -#define GL_CURRENT_QUERY_ANGLE 0x8865 -#define GL_QUERY_RESULT_ANGLE 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ANGLE 0x8867 -#define GL_TIME_ELAPSED_ANGLE 0x88BF -#define GL_TIMESTAMP_ANGLE 0x8E28 - -typedef void (GLAPIENTRY * PFNGLBEGINQUERYANGLEPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEQUERIESANGLEPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDQUERYANGLEPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGENQUERIESANGLEPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VANGLEPROC) (GLuint id, GLenum pname, GLint64* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVANGLEPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VANGLEPROC) (GLuint id, GLenum pname, GLuint64* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVANGLEPROC) (GLuint id, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYIVANGLEPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISQUERYANGLEPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERANGLEPROC) (GLuint id, GLenum target); - -#define glBeginQueryANGLE GLEW_GET_FUN(__glewBeginQueryANGLE) -#define glDeleteQueriesANGLE GLEW_GET_FUN(__glewDeleteQueriesANGLE) -#define glEndQueryANGLE GLEW_GET_FUN(__glewEndQueryANGLE) -#define glGenQueriesANGLE GLEW_GET_FUN(__glewGenQueriesANGLE) -#define glGetQueryObjecti64vANGLE GLEW_GET_FUN(__glewGetQueryObjecti64vANGLE) -#define glGetQueryObjectivANGLE GLEW_GET_FUN(__glewGetQueryObjectivANGLE) -#define glGetQueryObjectui64vANGLE GLEW_GET_FUN(__glewGetQueryObjectui64vANGLE) -#define glGetQueryObjectuivANGLE GLEW_GET_FUN(__glewGetQueryObjectuivANGLE) -#define glGetQueryivANGLE GLEW_GET_FUN(__glewGetQueryivANGLE) -#define glIsQueryANGLE GLEW_GET_FUN(__glewIsQueryANGLE) -#define glQueryCounterANGLE GLEW_GET_FUN(__glewQueryCounterANGLE) - -#define GLEW_ANGLE_timer_query GLEW_GET_VAR(__GLEW_ANGLE_timer_query) - -#endif /* GL_ANGLE_timer_query */ - -/* ------------------- GL_ANGLE_translated_shader_source ------------------- */ - -#ifndef GL_ANGLE_translated_shader_source -#define GL_ANGLE_translated_shader_source 1 - -#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 - -typedef void (GLAPIENTRY * PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); - -#define glGetTranslatedShaderSourceANGLE GLEW_GET_FUN(__glewGetTranslatedShaderSourceANGLE) - -#define GLEW_ANGLE_translated_shader_source GLEW_GET_VAR(__GLEW_ANGLE_translated_shader_source) - -#endif /* GL_ANGLE_translated_shader_source */ - -/* ----------------------- GL_APPLE_aux_depth_stencil ---------------------- */ - -#ifndef GL_APPLE_aux_depth_stencil -#define GL_APPLE_aux_depth_stencil 1 - -#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 - -#define GLEW_APPLE_aux_depth_stencil GLEW_GET_VAR(__GLEW_APPLE_aux_depth_stencil) - -#endif /* GL_APPLE_aux_depth_stencil */ - -/* ------------------------ GL_APPLE_client_storage ------------------------ */ - -#ifndef GL_APPLE_client_storage -#define GL_APPLE_client_storage 1 - -#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 - -#define GLEW_APPLE_client_storage GLEW_GET_VAR(__GLEW_APPLE_client_storage) - -#endif /* GL_APPLE_client_storage */ - -/* ------------------------- GL_APPLE_element_array ------------------------ */ - -#ifndef GL_APPLE_element_array -#define GL_APPLE_element_array 1 - -#define GL_ELEMENT_ARRAY_APPLE 0x8A0C -#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D -#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E - -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void *pointer); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint* first, const GLsizei *count, GLsizei primcount); - -#define glDrawElementArrayAPPLE GLEW_GET_FUN(__glewDrawElementArrayAPPLE) -#define glDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewDrawRangeElementArrayAPPLE) -#define glElementPointerAPPLE GLEW_GET_FUN(__glewElementPointerAPPLE) -#define glMultiDrawElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawElementArrayAPPLE) -#define glMultiDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawRangeElementArrayAPPLE) - -#define GLEW_APPLE_element_array GLEW_GET_VAR(__GLEW_APPLE_element_array) - -#endif /* GL_APPLE_element_array */ - -/* ----------------------------- GL_APPLE_fence ---------------------------- */ - -#ifndef GL_APPLE_fence -#define GL_APPLE_fence 1 - -#define GL_DRAW_PIXELS_APPLE 0x8A0A -#define GL_FENCE_APPLE 0x8A0B - -typedef void (GLAPIENTRY * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint* fences); -typedef void (GLAPIENTRY * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); -typedef void (GLAPIENTRY * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint* fences); -typedef GLboolean (GLAPIENTRY * PFNGLISFENCEAPPLEPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLSETFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); - -#define glDeleteFencesAPPLE GLEW_GET_FUN(__glewDeleteFencesAPPLE) -#define glFinishFenceAPPLE GLEW_GET_FUN(__glewFinishFenceAPPLE) -#define glFinishObjectAPPLE GLEW_GET_FUN(__glewFinishObjectAPPLE) -#define glGenFencesAPPLE GLEW_GET_FUN(__glewGenFencesAPPLE) -#define glIsFenceAPPLE GLEW_GET_FUN(__glewIsFenceAPPLE) -#define glSetFenceAPPLE GLEW_GET_FUN(__glewSetFenceAPPLE) -#define glTestFenceAPPLE GLEW_GET_FUN(__glewTestFenceAPPLE) -#define glTestObjectAPPLE GLEW_GET_FUN(__glewTestObjectAPPLE) - -#define GLEW_APPLE_fence GLEW_GET_VAR(__GLEW_APPLE_fence) - -#endif /* GL_APPLE_fence */ - -/* ------------------------- GL_APPLE_float_pixels ------------------------- */ - -#ifndef GL_APPLE_float_pixels -#define GL_APPLE_float_pixels 1 - -#define GL_HALF_APPLE 0x140B -#define GL_RGBA_FLOAT32_APPLE 0x8814 -#define GL_RGB_FLOAT32_APPLE 0x8815 -#define GL_ALPHA_FLOAT32_APPLE 0x8816 -#define GL_INTENSITY_FLOAT32_APPLE 0x8817 -#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 -#define GL_RGBA_FLOAT16_APPLE 0x881A -#define GL_RGB_FLOAT16_APPLE 0x881B -#define GL_ALPHA_FLOAT16_APPLE 0x881C -#define GL_INTENSITY_FLOAT16_APPLE 0x881D -#define GL_LUMINANCE_FLOAT16_APPLE 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F -#define GL_COLOR_FLOAT_APPLE 0x8A0F - -#define GLEW_APPLE_float_pixels GLEW_GET_VAR(__GLEW_APPLE_float_pixels) - -#endif /* GL_APPLE_float_pixels */ - -/* ---------------------- GL_APPLE_flush_buffer_range ---------------------- */ - -#ifndef GL_APPLE_flush_buffer_range -#define GL_APPLE_flush_buffer_range 1 - -#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 -#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 - -typedef void (GLAPIENTRY * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); - -#define glBufferParameteriAPPLE GLEW_GET_FUN(__glewBufferParameteriAPPLE) -#define glFlushMappedBufferRangeAPPLE GLEW_GET_FUN(__glewFlushMappedBufferRangeAPPLE) - -#define GLEW_APPLE_flush_buffer_range GLEW_GET_VAR(__GLEW_APPLE_flush_buffer_range) - -#endif /* GL_APPLE_flush_buffer_range */ - -/* ----------------------- GL_APPLE_object_purgeable ----------------------- */ - -#ifndef GL_APPLE_object_purgeable -#define GL_APPLE_object_purgeable 1 - -#define GL_BUFFER_OBJECT_APPLE 0x85B3 -#define GL_RELEASED_APPLE 0x8A19 -#define GL_VOLATILE_APPLE 0x8A1A -#define GL_RETAINED_APPLE 0x8A1B -#define GL_UNDEFINED_APPLE 0x8A1C -#define GL_PURGEABLE_APPLE 0x8A1D - -typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint* params); -typedef GLenum (GLAPIENTRY * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); -typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); - -#define glGetObjectParameterivAPPLE GLEW_GET_FUN(__glewGetObjectParameterivAPPLE) -#define glObjectPurgeableAPPLE GLEW_GET_FUN(__glewObjectPurgeableAPPLE) -#define glObjectUnpurgeableAPPLE GLEW_GET_FUN(__glewObjectUnpurgeableAPPLE) - -#define GLEW_APPLE_object_purgeable GLEW_GET_VAR(__GLEW_APPLE_object_purgeable) - -#endif /* GL_APPLE_object_purgeable */ - -/* ------------------------- GL_APPLE_pixel_buffer ------------------------- */ - -#ifndef GL_APPLE_pixel_buffer -#define GL_APPLE_pixel_buffer 1 - -#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10 - -#define GLEW_APPLE_pixel_buffer GLEW_GET_VAR(__GLEW_APPLE_pixel_buffer) - -#endif /* GL_APPLE_pixel_buffer */ - -/* ---------------------------- GL_APPLE_rgb_422 --------------------------- */ - -#ifndef GL_APPLE_rgb_422 -#define GL_APPLE_rgb_422 1 - -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#define GL_RGB_422_APPLE 0x8A1F -#define GL_RGB_RAW_422_APPLE 0x8A51 - -#define GLEW_APPLE_rgb_422 GLEW_GET_VAR(__GLEW_APPLE_rgb_422) - -#endif /* GL_APPLE_rgb_422 */ - -/* --------------------------- GL_APPLE_row_bytes -------------------------- */ - -#ifndef GL_APPLE_row_bytes -#define GL_APPLE_row_bytes 1 - -#define GL_PACK_ROW_BYTES_APPLE 0x8A15 -#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 - -#define GLEW_APPLE_row_bytes GLEW_GET_VAR(__GLEW_APPLE_row_bytes) - -#endif /* GL_APPLE_row_bytes */ - -/* ------------------------ GL_APPLE_specular_vector ----------------------- */ - -#ifndef GL_APPLE_specular_vector -#define GL_APPLE_specular_vector 1 - -#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 - -#define GLEW_APPLE_specular_vector GLEW_GET_VAR(__GLEW_APPLE_specular_vector) - -#endif /* GL_APPLE_specular_vector */ - -/* ------------------------- GL_APPLE_texture_range ------------------------ */ - -#ifndef GL_APPLE_texture_range -#define GL_APPLE_texture_range 1 - -#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 -#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 -#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC -#define GL_STORAGE_PRIVATE_APPLE 0x85BD -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF - -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, void **params); -typedef void (GLAPIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, void *pointer); - -#define glGetTexParameterPointervAPPLE GLEW_GET_FUN(__glewGetTexParameterPointervAPPLE) -#define glTextureRangeAPPLE GLEW_GET_FUN(__glewTextureRangeAPPLE) - -#define GLEW_APPLE_texture_range GLEW_GET_VAR(__GLEW_APPLE_texture_range) - -#endif /* GL_APPLE_texture_range */ - -/* ------------------------ GL_APPLE_transform_hint ------------------------ */ - -#ifndef GL_APPLE_transform_hint -#define GL_APPLE_transform_hint 1 - -#define GL_TRANSFORM_HINT_APPLE 0x85B1 - -#define GLEW_APPLE_transform_hint GLEW_GET_VAR(__GLEW_APPLE_transform_hint) - -#endif /* GL_APPLE_transform_hint */ - -/* ---------------------- GL_APPLE_vertex_array_object --------------------- */ - -#ifndef GL_APPLE_vertex_array_object -#define GL_APPLE_vertex_array_object 1 - -#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 - -typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); -typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); -typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); -typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); - -#define glBindVertexArrayAPPLE GLEW_GET_FUN(__glewBindVertexArrayAPPLE) -#define glDeleteVertexArraysAPPLE GLEW_GET_FUN(__glewDeleteVertexArraysAPPLE) -#define glGenVertexArraysAPPLE GLEW_GET_FUN(__glewGenVertexArraysAPPLE) -#define glIsVertexArrayAPPLE GLEW_GET_FUN(__glewIsVertexArrayAPPLE) - -#define GLEW_APPLE_vertex_array_object GLEW_GET_VAR(__GLEW_APPLE_vertex_array_object) - -#endif /* GL_APPLE_vertex_array_object */ - -/* ---------------------- GL_APPLE_vertex_array_range ---------------------- */ - -#ifndef GL_APPLE_vertex_array_range -#define GL_APPLE_vertex_array_range 1 - -#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E -#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 -#define GL_STORAGE_CLIENT_APPLE 0x85B4 -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF - -typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); - -#define glFlushVertexArrayRangeAPPLE GLEW_GET_FUN(__glewFlushVertexArrayRangeAPPLE) -#define glVertexArrayParameteriAPPLE GLEW_GET_FUN(__glewVertexArrayParameteriAPPLE) -#define glVertexArrayRangeAPPLE GLEW_GET_FUN(__glewVertexArrayRangeAPPLE) - -#define GLEW_APPLE_vertex_array_range GLEW_GET_VAR(__GLEW_APPLE_vertex_array_range) - -#endif /* GL_APPLE_vertex_array_range */ - -/* ------------------- GL_APPLE_vertex_program_evaluators ------------------ */ - -#ifndef GL_APPLE_vertex_program_evaluators -#define GL_APPLE_vertex_program_evaluators 1 - -#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 -#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 -#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 -#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 -#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 -#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 -#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 -#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 -#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 -#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 - -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points); - -#define glDisableVertexAttribAPPLE GLEW_GET_FUN(__glewDisableVertexAttribAPPLE) -#define glEnableVertexAttribAPPLE GLEW_GET_FUN(__glewEnableVertexAttribAPPLE) -#define glIsVertexAttribEnabledAPPLE GLEW_GET_FUN(__glewIsVertexAttribEnabledAPPLE) -#define glMapVertexAttrib1dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1dAPPLE) -#define glMapVertexAttrib1fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1fAPPLE) -#define glMapVertexAttrib2dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2dAPPLE) -#define glMapVertexAttrib2fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2fAPPLE) - -#define GLEW_APPLE_vertex_program_evaluators GLEW_GET_VAR(__GLEW_APPLE_vertex_program_evaluators) - -#endif /* GL_APPLE_vertex_program_evaluators */ - -/* --------------------------- GL_APPLE_ycbcr_422 -------------------------- */ - -#ifndef GL_APPLE_ycbcr_422 -#define GL_APPLE_ycbcr_422 1 - -#define GL_YCBCR_422_APPLE 0x85B9 - -#define GLEW_APPLE_ycbcr_422 GLEW_GET_VAR(__GLEW_APPLE_ycbcr_422) - -#endif /* GL_APPLE_ycbcr_422 */ - -/* ------------------------ GL_ARB_ES2_compatibility ----------------------- */ - -#ifndef GL_ARB_ES2_compatibility -#define GL_ARB_ES2_compatibility 1 - -#define GL_FIXED 0x140C -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_RGB565 0x8D62 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD - -typedef int GLfixed; - -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf d); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); -typedef void (GLAPIENTRY * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision); -typedef void (GLAPIENTRY * PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GLAPIENTRY * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint* shaders, GLenum binaryformat, const void*binary, GLsizei length); - -#define glClearDepthf GLEW_GET_FUN(__glewClearDepthf) -#define glDepthRangef GLEW_GET_FUN(__glewDepthRangef) -#define glGetShaderPrecisionFormat GLEW_GET_FUN(__glewGetShaderPrecisionFormat) -#define glReleaseShaderCompiler GLEW_GET_FUN(__glewReleaseShaderCompiler) -#define glShaderBinary GLEW_GET_FUN(__glewShaderBinary) - -#define GLEW_ARB_ES2_compatibility GLEW_GET_VAR(__GLEW_ARB_ES2_compatibility) - -#endif /* GL_ARB_ES2_compatibility */ - -/* ----------------------- GL_ARB_ES3_1_compatibility ---------------------- */ - -#ifndef GL_ARB_ES3_1_compatibility -#define GL_ARB_ES3_1_compatibility 1 - -typedef void (GLAPIENTRY * PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); - -#define glMemoryBarrierByRegion GLEW_GET_FUN(__glewMemoryBarrierByRegion) - -#define GLEW_ARB_ES3_1_compatibility GLEW_GET_VAR(__GLEW_ARB_ES3_1_compatibility) - -#endif /* GL_ARB_ES3_1_compatibility */ - -/* ------------------------ GL_ARB_ES3_compatibility ----------------------- */ - -#ifndef GL_ARB_ES3_compatibility -#define GL_ARB_ES3_compatibility 1 - -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 - -#define GLEW_ARB_ES3_compatibility GLEW_GET_VAR(__GLEW_ARB_ES3_compatibility) - -#endif /* GL_ARB_ES3_compatibility */ - -/* ------------------------ GL_ARB_arrays_of_arrays ------------------------ */ - -#ifndef GL_ARB_arrays_of_arrays -#define GL_ARB_arrays_of_arrays 1 - -#define GLEW_ARB_arrays_of_arrays GLEW_GET_VAR(__GLEW_ARB_arrays_of_arrays) - -#endif /* GL_ARB_arrays_of_arrays */ - -/* -------------------------- GL_ARB_base_instance ------------------------- */ - -#ifndef GL_ARB_base_instance -#define GL_ARB_base_instance 1 - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); - -#define glDrawArraysInstancedBaseInstance GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstance) -#define glDrawElementsInstancedBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstance) -#define glDrawElementsInstancedBaseVertexBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexBaseInstance) - -#define GLEW_ARB_base_instance GLEW_GET_VAR(__GLEW_ARB_base_instance) - -#endif /* GL_ARB_base_instance */ - -/* ------------------------ GL_ARB_bindless_texture ------------------------ */ - -#ifndef GL_ARB_bindless_texture -#define GL_ARB_bindless_texture 1 - -#define GL_UNSIGNED_INT64_ARB 0x140F - -typedef GLuint64 (GLAPIENTRY * PFNGLGETIMAGEHANDLEARBPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLEARBPROC) (GLuint texture); -typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLEARBPROC) (GLuint texture, GLuint sampler); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VARBPROC) (GLuint index, GLenum pname, GLuint64EXT* params); -typedef GLboolean (GLAPIENTRY * PFNGLISIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle); -typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); -typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC) (GLuint64 handle); -typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle, GLenum access); -typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC) (GLuint64 handle); -typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC) (GLuint program, GLint location, GLuint64 value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values); -typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64ARBPROC) (GLint location, GLuint64 value); -typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64ARBPROC) (GLuint index, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VARBPROC) (GLuint index, const GLuint64EXT* v); - -#define glGetImageHandleARB GLEW_GET_FUN(__glewGetImageHandleARB) -#define glGetTextureHandleARB GLEW_GET_FUN(__glewGetTextureHandleARB) -#define glGetTextureSamplerHandleARB GLEW_GET_FUN(__glewGetTextureSamplerHandleARB) -#define glGetVertexAttribLui64vARB GLEW_GET_FUN(__glewGetVertexAttribLui64vARB) -#define glIsImageHandleResidentARB GLEW_GET_FUN(__glewIsImageHandleResidentARB) -#define glIsTextureHandleResidentARB GLEW_GET_FUN(__glewIsTextureHandleResidentARB) -#define glMakeImageHandleNonResidentARB GLEW_GET_FUN(__glewMakeImageHandleNonResidentARB) -#define glMakeImageHandleResidentARB GLEW_GET_FUN(__glewMakeImageHandleResidentARB) -#define glMakeTextureHandleNonResidentARB GLEW_GET_FUN(__glewMakeTextureHandleNonResidentARB) -#define glMakeTextureHandleResidentARB GLEW_GET_FUN(__glewMakeTextureHandleResidentARB) -#define glProgramUniformHandleui64ARB GLEW_GET_FUN(__glewProgramUniformHandleui64ARB) -#define glProgramUniformHandleui64vARB GLEW_GET_FUN(__glewProgramUniformHandleui64vARB) -#define glUniformHandleui64ARB GLEW_GET_FUN(__glewUniformHandleui64ARB) -#define glUniformHandleui64vARB GLEW_GET_FUN(__glewUniformHandleui64vARB) -#define glVertexAttribL1ui64ARB GLEW_GET_FUN(__glewVertexAttribL1ui64ARB) -#define glVertexAttribL1ui64vARB GLEW_GET_FUN(__glewVertexAttribL1ui64vARB) - -#define GLEW_ARB_bindless_texture GLEW_GET_VAR(__GLEW_ARB_bindless_texture) - -#endif /* GL_ARB_bindless_texture */ - -/* ----------------------- GL_ARB_blend_func_extended ---------------------- */ - -#ifndef GL_ARB_blend_func_extended -#define GL_ARB_blend_func_extended 1 - -#define GL_SRC1_COLOR 0x88F9 -#define GL_ONE_MINUS_SRC1_COLOR 0x88FA -#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC - -typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name); -typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar * name); - -#define glBindFragDataLocationIndexed GLEW_GET_FUN(__glewBindFragDataLocationIndexed) -#define glGetFragDataIndex GLEW_GET_FUN(__glewGetFragDataIndex) - -#define GLEW_ARB_blend_func_extended GLEW_GET_VAR(__GLEW_ARB_blend_func_extended) - -#endif /* GL_ARB_blend_func_extended */ - -/* ------------------------- GL_ARB_buffer_storage ------------------------- */ - -#ifndef GL_ARB_buffer_storage -#define GL_ARB_buffer_storage 1 - -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_PERSISTENT_BIT 0x00000040 -#define GL_MAP_COHERENT_BIT 0x00000080 -#define GL_DYNAMIC_STORAGE_BIT 0x0100 -#define GL_CLIENT_STORAGE_BIT 0x0200 -#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000 -#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F -#define GL_BUFFER_STORAGE_FLAGS 0x8220 - -typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); - -#define glBufferStorage GLEW_GET_FUN(__glewBufferStorage) -#define glNamedBufferStorageEXT GLEW_GET_FUN(__glewNamedBufferStorageEXT) - -#define GLEW_ARB_buffer_storage GLEW_GET_VAR(__GLEW_ARB_buffer_storage) - -#endif /* GL_ARB_buffer_storage */ - -/* ---------------------------- GL_ARB_cl_event ---------------------------- */ - -#ifndef GL_ARB_cl_event -#define GL_ARB_cl_event 1 - -#define GL_SYNC_CL_EVENT_ARB 0x8240 -#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 - -typedef struct _cl_context *cl_context; -typedef struct _cl_event *cl_event; - -typedef GLsync (GLAPIENTRY * PFNGLCREATESYNCFROMCLEVENTARBPROC) (cl_context context, cl_event event, GLbitfield flags); - -#define glCreateSyncFromCLeventARB GLEW_GET_FUN(__glewCreateSyncFromCLeventARB) - -#define GLEW_ARB_cl_event GLEW_GET_VAR(__GLEW_ARB_cl_event) - -#endif /* GL_ARB_cl_event */ - -/* ----------------------- GL_ARB_clear_buffer_object ---------------------- */ - -#ifndef GL_ARB_clear_buffer_object -#define GL_ARB_clear_buffer_object 1 - -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); -typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); - -#define glClearBufferData GLEW_GET_FUN(__glewClearBufferData) -#define glClearBufferSubData GLEW_GET_FUN(__glewClearBufferSubData) -#define glClearNamedBufferDataEXT GLEW_GET_FUN(__glewClearNamedBufferDataEXT) -#define glClearNamedBufferSubDataEXT GLEW_GET_FUN(__glewClearNamedBufferSubDataEXT) - -#define GLEW_ARB_clear_buffer_object GLEW_GET_VAR(__GLEW_ARB_clear_buffer_object) - -#endif /* GL_ARB_clear_buffer_object */ - -/* -------------------------- GL_ARB_clear_texture ------------------------- */ - -#ifndef GL_ARB_clear_texture -#define GL_ARB_clear_texture 1 - -#define GL_CLEAR_TEXTURE 0x9365 - -typedef void (GLAPIENTRY * PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); -typedef void (GLAPIENTRY * PFNGLCLEARTEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); - -#define glClearTexImage GLEW_GET_FUN(__glewClearTexImage) -#define glClearTexSubImage GLEW_GET_FUN(__glewClearTexSubImage) - -#define GLEW_ARB_clear_texture GLEW_GET_VAR(__GLEW_ARB_clear_texture) - -#endif /* GL_ARB_clear_texture */ - -/* -------------------------- GL_ARB_clip_control -------------------------- */ - -#ifndef GL_ARB_clip_control -#define GL_ARB_clip_control 1 - -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_CLIP_ORIGIN 0x935C -#define GL_CLIP_DEPTH_MODE 0x935D -#define GL_NEGATIVE_ONE_TO_ONE 0x935E -#define GL_ZERO_TO_ONE 0x935F - -typedef void (GLAPIENTRY * PFNGLCLIPCONTROLPROC) (GLenum origin, GLenum depth); - -#define glClipControl GLEW_GET_FUN(__glewClipControl) - -#define GLEW_ARB_clip_control GLEW_GET_VAR(__GLEW_ARB_clip_control) - -#endif /* GL_ARB_clip_control */ - -/* ----------------------- GL_ARB_color_buffer_float ----------------------- */ - -#ifndef GL_ARB_color_buffer_float -#define GL_ARB_color_buffer_float 1 - -#define GL_RGBA_FLOAT_MODE_ARB 0x8820 -#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A -#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B -#define GL_CLAMP_READ_COLOR_ARB 0x891C -#define GL_FIXED_ONLY_ARB 0x891D - -typedef void (GLAPIENTRY * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); - -#define glClampColorARB GLEW_GET_FUN(__glewClampColorARB) - -#define GLEW_ARB_color_buffer_float GLEW_GET_VAR(__GLEW_ARB_color_buffer_float) - -#endif /* GL_ARB_color_buffer_float */ - -/* -------------------------- GL_ARB_compatibility ------------------------- */ - -#ifndef GL_ARB_compatibility -#define GL_ARB_compatibility 1 - -#define GLEW_ARB_compatibility GLEW_GET_VAR(__GLEW_ARB_compatibility) - -#endif /* GL_ARB_compatibility */ - -/* ---------------- GL_ARB_compressed_texture_pixel_storage ---------------- */ - -#ifndef GL_ARB_compressed_texture_pixel_storage -#define GL_ARB_compressed_texture_pixel_storage 1 - -#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 -#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 -#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 -#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A -#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B -#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C -#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D -#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E - -#define GLEW_ARB_compressed_texture_pixel_storage GLEW_GET_VAR(__GLEW_ARB_compressed_texture_pixel_storage) - -#endif /* GL_ARB_compressed_texture_pixel_storage */ - -/* ------------------------- GL_ARB_compute_shader ------------------------- */ - -#ifndef GL_ARB_compute_shader -#define GL_ARB_compute_shader 1 - -#define GL_COMPUTE_SHADER_BIT 0x00000020 -#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 -#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 -#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 -#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 -#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 -#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 -#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB -#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED -#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE -#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF -#define GL_COMPUTE_SHADER 0x91B9 -#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB -#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC -#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD -#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE -#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF - -typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); - -#define glDispatchCompute GLEW_GET_FUN(__glewDispatchCompute) -#define glDispatchComputeIndirect GLEW_GET_FUN(__glewDispatchComputeIndirect) - -#define GLEW_ARB_compute_shader GLEW_GET_VAR(__GLEW_ARB_compute_shader) - -#endif /* GL_ARB_compute_shader */ - -/* ------------------- GL_ARB_compute_variable_group_size ------------------ */ - -#ifndef GL_ARB_compute_variable_group_size -#define GL_ARB_compute_variable_group_size 1 - -#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB -#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF -#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344 -#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345 - -typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); - -#define glDispatchComputeGroupSizeARB GLEW_GET_FUN(__glewDispatchComputeGroupSizeARB) - -#define GLEW_ARB_compute_variable_group_size GLEW_GET_VAR(__GLEW_ARB_compute_variable_group_size) - -#endif /* GL_ARB_compute_variable_group_size */ - -/* ------------------- GL_ARB_conditional_render_inverted ------------------ */ - -#ifndef GL_ARB_conditional_render_inverted -#define GL_ARB_conditional_render_inverted 1 - -#define GL_QUERY_WAIT_INVERTED 0x8E17 -#define GL_QUERY_NO_WAIT_INVERTED 0x8E18 -#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19 -#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A - -#define GLEW_ARB_conditional_render_inverted GLEW_GET_VAR(__GLEW_ARB_conditional_render_inverted) - -#endif /* GL_ARB_conditional_render_inverted */ - -/* ----------------------- GL_ARB_conservative_depth ----------------------- */ - -#ifndef GL_ARB_conservative_depth -#define GL_ARB_conservative_depth 1 - -#define GLEW_ARB_conservative_depth GLEW_GET_VAR(__GLEW_ARB_conservative_depth) - -#endif /* GL_ARB_conservative_depth */ - -/* --------------------------- GL_ARB_copy_buffer -------------------------- */ - -#ifndef GL_ARB_copy_buffer -#define GL_ARB_copy_buffer 1 - -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 - -typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); - -#define glCopyBufferSubData GLEW_GET_FUN(__glewCopyBufferSubData) - -#define GLEW_ARB_copy_buffer GLEW_GET_VAR(__GLEW_ARB_copy_buffer) - -#endif /* GL_ARB_copy_buffer */ - -/* --------------------------- GL_ARB_copy_image --------------------------- */ - -#ifndef GL_ARB_copy_image -#define GL_ARB_copy_image 1 - -typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); - -#define glCopyImageSubData GLEW_GET_FUN(__glewCopyImageSubData) - -#define GLEW_ARB_copy_image GLEW_GET_VAR(__GLEW_ARB_copy_image) - -#endif /* GL_ARB_copy_image */ - -/* -------------------------- GL_ARB_cull_distance ------------------------- */ - -#ifndef GL_ARB_cull_distance -#define GL_ARB_cull_distance 1 - -#define GL_MAX_CULL_DISTANCES 0x82F9 -#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA - -#define GLEW_ARB_cull_distance GLEW_GET_VAR(__GLEW_ARB_cull_distance) - -#endif /* GL_ARB_cull_distance */ - -/* -------------------------- GL_ARB_debug_output -------------------------- */ - -#ifndef GL_ARB_debug_output -#define GL_ARB_debug_output 1 - -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 -#define GL_DEBUG_SOURCE_API_ARB 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A -#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B -#define GL_DEBUG_TYPE_ERROR_ARB 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 -#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 -#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 - -typedef void (GLAPIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam); - -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf); -typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog); - -#define glDebugMessageCallbackARB GLEW_GET_FUN(__glewDebugMessageCallbackARB) -#define glDebugMessageControlARB GLEW_GET_FUN(__glewDebugMessageControlARB) -#define glDebugMessageInsertARB GLEW_GET_FUN(__glewDebugMessageInsertARB) -#define glGetDebugMessageLogARB GLEW_GET_FUN(__glewGetDebugMessageLogARB) - -#define GLEW_ARB_debug_output GLEW_GET_VAR(__GLEW_ARB_debug_output) - -#endif /* GL_ARB_debug_output */ - -/* ----------------------- GL_ARB_depth_buffer_float ----------------------- */ - -#ifndef GL_ARB_depth_buffer_float -#define GL_ARB_depth_buffer_float 1 - -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD - -#define GLEW_ARB_depth_buffer_float GLEW_GET_VAR(__GLEW_ARB_depth_buffer_float) - -#endif /* GL_ARB_depth_buffer_float */ - -/* --------------------------- GL_ARB_depth_clamp -------------------------- */ - -#ifndef GL_ARB_depth_clamp -#define GL_ARB_depth_clamp 1 - -#define GL_DEPTH_CLAMP 0x864F - -#define GLEW_ARB_depth_clamp GLEW_GET_VAR(__GLEW_ARB_depth_clamp) - -#endif /* GL_ARB_depth_clamp */ - -/* -------------------------- GL_ARB_depth_texture ------------------------- */ - -#ifndef GL_ARB_depth_texture -#define GL_ARB_depth_texture 1 - -#define GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B - -#define GLEW_ARB_depth_texture GLEW_GET_VAR(__GLEW_ARB_depth_texture) - -#endif /* GL_ARB_depth_texture */ - -/* ----------------------- GL_ARB_derivative_control ----------------------- */ - -#ifndef GL_ARB_derivative_control -#define GL_ARB_derivative_control 1 - -#define GLEW_ARB_derivative_control GLEW_GET_VAR(__GLEW_ARB_derivative_control) - -#endif /* GL_ARB_derivative_control */ - -/* ----------------------- GL_ARB_direct_state_access ---------------------- */ - -#ifndef GL_ARB_direct_state_access -#define GL_ARB_direct_state_access 1 - -#define GL_TEXTURE_TARGET 0x1006 -#define GL_QUERY_TARGET 0x82EA -#define GL_TEXTURE_BINDING 0x82EB - -typedef void (GLAPIENTRY * PFNGLBINDTEXTUREUNITPROC) (GLuint unit, GLuint texture); -typedef void (GLAPIENTRY * PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target); -typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); -typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLfloat depth, GLint stencil); -typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint* value); -typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCREATEBUFFERSPROC) (GLsizei n, GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLCREATEFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLCREATEPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines); -typedef void (GLAPIENTRY * PFNGLCREATEQUERIESPROC) (GLenum target, GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLCREATERENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLCREATESAMPLERSPROC) (GLsizei n, GLuint* samplers); -typedef void (GLAPIENTRY * PFNGLCREATETEXTURESPROC) (GLenum target, GLsizei n, GLuint* textures); -typedef void (GLAPIENTRY * PFNGLCREATETRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLCREATEVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index); -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPPROC) (GLuint texture); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLsizei bufSize, void *pixels); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) (GLuint buffer, GLenum pname, GLint64* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVPROC) (GLuint buffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVPROC) (GLuint buffer, GLenum pname, void** params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); -typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id,GLuint buffer,GLenum pname,GLintptr offset); -typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id,GLuint buffer,GLenum pname,GLintptr offset); -typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id,GLuint buffer,GLenum pname,GLintptr offset); -typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id,GLuint buffer,GLenum pname,GLintptr offset); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); -typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64* param); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKIVPROC) (GLuint xfb, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint64* param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINDEXEDIVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYIVPROC) (GLuint vaobj, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments); -typedef void (GLAPIENTRY * PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERPROC) (GLuint buffer, GLenum access); -typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) (GLuint framebuffer, GLenum mode); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) (GLuint framebuffer, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) (GLuint framebuffer, GLenum mode); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERPROC) (GLuint texture, GLenum internalformat, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFPROC) (GLuint texture, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, const GLfloat* param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIPROC) (GLuint texture, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, const GLint* param); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) (GLuint xfb, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFERPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBBINDINGPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBIFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBLFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYBINDINGDIVISORPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYELEMENTBUFFERPROC) (GLuint vaobj, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBUFFERPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBUFFERSPROC) (GLuint vaobj, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides); - -#define glBindTextureUnit GLEW_GET_FUN(__glewBindTextureUnit) -#define glBlitNamedFramebuffer GLEW_GET_FUN(__glewBlitNamedFramebuffer) -#define glCheckNamedFramebufferStatus GLEW_GET_FUN(__glewCheckNamedFramebufferStatus) -#define glClearNamedBufferData GLEW_GET_FUN(__glewClearNamedBufferData) -#define glClearNamedBufferSubData GLEW_GET_FUN(__glewClearNamedBufferSubData) -#define glClearNamedFramebufferfi GLEW_GET_FUN(__glewClearNamedFramebufferfi) -#define glClearNamedFramebufferfv GLEW_GET_FUN(__glewClearNamedFramebufferfv) -#define glClearNamedFramebufferiv GLEW_GET_FUN(__glewClearNamedFramebufferiv) -#define glClearNamedFramebufferuiv GLEW_GET_FUN(__glewClearNamedFramebufferuiv) -#define glCompressedTextureSubImage1D GLEW_GET_FUN(__glewCompressedTextureSubImage1D) -#define glCompressedTextureSubImage2D GLEW_GET_FUN(__glewCompressedTextureSubImage2D) -#define glCompressedTextureSubImage3D GLEW_GET_FUN(__glewCompressedTextureSubImage3D) -#define glCopyNamedBufferSubData GLEW_GET_FUN(__glewCopyNamedBufferSubData) -#define glCopyTextureSubImage1D GLEW_GET_FUN(__glewCopyTextureSubImage1D) -#define glCopyTextureSubImage2D GLEW_GET_FUN(__glewCopyTextureSubImage2D) -#define glCopyTextureSubImage3D GLEW_GET_FUN(__glewCopyTextureSubImage3D) -#define glCreateBuffers GLEW_GET_FUN(__glewCreateBuffers) -#define glCreateFramebuffers GLEW_GET_FUN(__glewCreateFramebuffers) -#define glCreateProgramPipelines GLEW_GET_FUN(__glewCreateProgramPipelines) -#define glCreateQueries GLEW_GET_FUN(__glewCreateQueries) -#define glCreateRenderbuffers GLEW_GET_FUN(__glewCreateRenderbuffers) -#define glCreateSamplers GLEW_GET_FUN(__glewCreateSamplers) -#define glCreateTextures GLEW_GET_FUN(__glewCreateTextures) -#define glCreateTransformFeedbacks GLEW_GET_FUN(__glewCreateTransformFeedbacks) -#define glCreateVertexArrays GLEW_GET_FUN(__glewCreateVertexArrays) -#define glDisableVertexArrayAttrib GLEW_GET_FUN(__glewDisableVertexArrayAttrib) -#define glEnableVertexArrayAttrib GLEW_GET_FUN(__glewEnableVertexArrayAttrib) -#define glFlushMappedNamedBufferRange GLEW_GET_FUN(__glewFlushMappedNamedBufferRange) -#define glGenerateTextureMipmap GLEW_GET_FUN(__glewGenerateTextureMipmap) -#define glGetCompressedTextureImage GLEW_GET_FUN(__glewGetCompressedTextureImage) -#define glGetNamedBufferParameteri64v GLEW_GET_FUN(__glewGetNamedBufferParameteri64v) -#define glGetNamedBufferParameteriv GLEW_GET_FUN(__glewGetNamedBufferParameteriv) -#define glGetNamedBufferPointerv GLEW_GET_FUN(__glewGetNamedBufferPointerv) -#define glGetNamedBufferSubData GLEW_GET_FUN(__glewGetNamedBufferSubData) -#define glGetNamedFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameteriv) -#define glGetNamedFramebufferParameteriv GLEW_GET_FUN(__glewGetNamedFramebufferParameteriv) -#define glGetNamedRenderbufferParameteriv GLEW_GET_FUN(__glewGetNamedRenderbufferParameteriv) -#define glGetQueryBufferObjecti64v GLEW_GET_FUN(__glewGetQueryBufferObjecti64v) -#define glGetQueryBufferObjectiv GLEW_GET_FUN(__glewGetQueryBufferObjectiv) -#define glGetQueryBufferObjectui64v GLEW_GET_FUN(__glewGetQueryBufferObjectui64v) -#define glGetQueryBufferObjectuiv GLEW_GET_FUN(__glewGetQueryBufferObjectuiv) -#define glGetTextureImage GLEW_GET_FUN(__glewGetTextureImage) -#define glGetTextureLevelParameterfv GLEW_GET_FUN(__glewGetTextureLevelParameterfv) -#define glGetTextureLevelParameteriv GLEW_GET_FUN(__glewGetTextureLevelParameteriv) -#define glGetTextureParameterIiv GLEW_GET_FUN(__glewGetTextureParameterIiv) -#define glGetTextureParameterIuiv GLEW_GET_FUN(__glewGetTextureParameterIuiv) -#define glGetTextureParameterfv GLEW_GET_FUN(__glewGetTextureParameterfv) -#define glGetTextureParameteriv GLEW_GET_FUN(__glewGetTextureParameteriv) -#define glGetTransformFeedbacki64_v GLEW_GET_FUN(__glewGetTransformFeedbacki64_v) -#define glGetTransformFeedbacki_v GLEW_GET_FUN(__glewGetTransformFeedbacki_v) -#define glGetTransformFeedbackiv GLEW_GET_FUN(__glewGetTransformFeedbackiv) -#define glGetVertexArrayIndexed64iv GLEW_GET_FUN(__glewGetVertexArrayIndexed64iv) -#define glGetVertexArrayIndexediv GLEW_GET_FUN(__glewGetVertexArrayIndexediv) -#define glGetVertexArrayiv GLEW_GET_FUN(__glewGetVertexArrayiv) -#define glInvalidateNamedFramebufferData GLEW_GET_FUN(__glewInvalidateNamedFramebufferData) -#define glInvalidateNamedFramebufferSubData GLEW_GET_FUN(__glewInvalidateNamedFramebufferSubData) -#define glMapNamedBuffer GLEW_GET_FUN(__glewMapNamedBuffer) -#define glMapNamedBufferRange GLEW_GET_FUN(__glewMapNamedBufferRange) -#define glNamedBufferData GLEW_GET_FUN(__glewNamedBufferData) -#define glNamedBufferStorage GLEW_GET_FUN(__glewNamedBufferStorage) -#define glNamedBufferSubData GLEW_GET_FUN(__glewNamedBufferSubData) -#define glNamedFramebufferDrawBuffer GLEW_GET_FUN(__glewNamedFramebufferDrawBuffer) -#define glNamedFramebufferDrawBuffers GLEW_GET_FUN(__glewNamedFramebufferDrawBuffers) -#define glNamedFramebufferParameteri GLEW_GET_FUN(__glewNamedFramebufferParameteri) -#define glNamedFramebufferReadBuffer GLEW_GET_FUN(__glewNamedFramebufferReadBuffer) -#define glNamedFramebufferRenderbuffer GLEW_GET_FUN(__glewNamedFramebufferRenderbuffer) -#define glNamedFramebufferTexture GLEW_GET_FUN(__glewNamedFramebufferTexture) -#define glNamedFramebufferTextureLayer GLEW_GET_FUN(__glewNamedFramebufferTextureLayer) -#define glNamedRenderbufferStorage GLEW_GET_FUN(__glewNamedRenderbufferStorage) -#define glNamedRenderbufferStorageMultisample GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisample) -#define glTextureBuffer GLEW_GET_FUN(__glewTextureBuffer) -#define glTextureBufferRange GLEW_GET_FUN(__glewTextureBufferRange) -#define glTextureParameterIiv GLEW_GET_FUN(__glewTextureParameterIiv) -#define glTextureParameterIuiv GLEW_GET_FUN(__glewTextureParameterIuiv) -#define glTextureParameterf GLEW_GET_FUN(__glewTextureParameterf) -#define glTextureParameterfv GLEW_GET_FUN(__glewTextureParameterfv) -#define glTextureParameteri GLEW_GET_FUN(__glewTextureParameteri) -#define glTextureParameteriv GLEW_GET_FUN(__glewTextureParameteriv) -#define glTextureStorage1D GLEW_GET_FUN(__glewTextureStorage1D) -#define glTextureStorage2D GLEW_GET_FUN(__glewTextureStorage2D) -#define glTextureStorage2DMultisample GLEW_GET_FUN(__glewTextureStorage2DMultisample) -#define glTextureStorage3D GLEW_GET_FUN(__glewTextureStorage3D) -#define glTextureStorage3DMultisample GLEW_GET_FUN(__glewTextureStorage3DMultisample) -#define glTextureSubImage1D GLEW_GET_FUN(__glewTextureSubImage1D) -#define glTextureSubImage2D GLEW_GET_FUN(__glewTextureSubImage2D) -#define glTextureSubImage3D GLEW_GET_FUN(__glewTextureSubImage3D) -#define glTransformFeedbackBufferBase GLEW_GET_FUN(__glewTransformFeedbackBufferBase) -#define glTransformFeedbackBufferRange GLEW_GET_FUN(__glewTransformFeedbackBufferRange) -#define glUnmapNamedBuffer GLEW_GET_FUN(__glewUnmapNamedBuffer) -#define glVertexArrayAttribBinding GLEW_GET_FUN(__glewVertexArrayAttribBinding) -#define glVertexArrayAttribFormat GLEW_GET_FUN(__glewVertexArrayAttribFormat) -#define glVertexArrayAttribIFormat GLEW_GET_FUN(__glewVertexArrayAttribIFormat) -#define glVertexArrayAttribLFormat GLEW_GET_FUN(__glewVertexArrayAttribLFormat) -#define glVertexArrayBindingDivisor GLEW_GET_FUN(__glewVertexArrayBindingDivisor) -#define glVertexArrayElementBuffer GLEW_GET_FUN(__glewVertexArrayElementBuffer) -#define glVertexArrayVertexBuffer GLEW_GET_FUN(__glewVertexArrayVertexBuffer) -#define glVertexArrayVertexBuffers GLEW_GET_FUN(__glewVertexArrayVertexBuffers) - -#define GLEW_ARB_direct_state_access GLEW_GET_VAR(__GLEW_ARB_direct_state_access) - -#endif /* GL_ARB_direct_state_access */ - -/* -------------------------- GL_ARB_draw_buffers -------------------------- */ - -#ifndef GL_ARB_draw_buffers -#define GL_ARB_draw_buffers 1 - -#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define GL_DRAW_BUFFER0_ARB 0x8825 -#define GL_DRAW_BUFFER1_ARB 0x8826 -#define GL_DRAW_BUFFER2_ARB 0x8827 -#define GL_DRAW_BUFFER3_ARB 0x8828 -#define GL_DRAW_BUFFER4_ARB 0x8829 -#define GL_DRAW_BUFFER5_ARB 0x882A -#define GL_DRAW_BUFFER6_ARB 0x882B -#define GL_DRAW_BUFFER7_ARB 0x882C -#define GL_DRAW_BUFFER8_ARB 0x882D -#define GL_DRAW_BUFFER9_ARB 0x882E -#define GL_DRAW_BUFFER10_ARB 0x882F -#define GL_DRAW_BUFFER11_ARB 0x8830 -#define GL_DRAW_BUFFER12_ARB 0x8831 -#define GL_DRAW_BUFFER13_ARB 0x8832 -#define GL_DRAW_BUFFER14_ARB 0x8833 -#define GL_DRAW_BUFFER15_ARB 0x8834 - -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bufs); - -#define glDrawBuffersARB GLEW_GET_FUN(__glewDrawBuffersARB) - -#define GLEW_ARB_draw_buffers GLEW_GET_VAR(__GLEW_ARB_draw_buffers) - -#endif /* GL_ARB_draw_buffers */ - -/* ----------------------- GL_ARB_draw_buffers_blend ----------------------- */ - -#ifndef GL_ARB_draw_buffers_blend -#define GL_ARB_draw_buffers_blend 1 - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); - -#define glBlendEquationSeparateiARB GLEW_GET_FUN(__glewBlendEquationSeparateiARB) -#define glBlendEquationiARB GLEW_GET_FUN(__glewBlendEquationiARB) -#define glBlendFuncSeparateiARB GLEW_GET_FUN(__glewBlendFuncSeparateiARB) -#define glBlendFunciARB GLEW_GET_FUN(__glewBlendFunciARB) - -#define GLEW_ARB_draw_buffers_blend GLEW_GET_VAR(__GLEW_ARB_draw_buffers_blend) - -#endif /* GL_ARB_draw_buffers_blend */ - -/* -------------------- GL_ARB_draw_elements_base_vertex ------------------- */ - -#ifndef GL_ARB_draw_elements_base_vertex -#define GL_ARB_draw_elements_base_vertex 1 - -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei* count, GLenum type, const void *const *indices, GLsizei primcount, const GLint *basevertex); - -#define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex) -#define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex) -#define glDrawRangeElementsBaseVertex GLEW_GET_FUN(__glewDrawRangeElementsBaseVertex) -#define glMultiDrawElementsBaseVertex GLEW_GET_FUN(__glewMultiDrawElementsBaseVertex) - -#define GLEW_ARB_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_ARB_draw_elements_base_vertex) - -#endif /* GL_ARB_draw_elements_base_vertex */ - -/* -------------------------- GL_ARB_draw_indirect ------------------------- */ - -#ifndef GL_ARB_draw_indirect -#define GL_ARB_draw_indirect 1 - -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); - -#define glDrawArraysIndirect GLEW_GET_FUN(__glewDrawArraysIndirect) -#define glDrawElementsIndirect GLEW_GET_FUN(__glewDrawElementsIndirect) - -#define GLEW_ARB_draw_indirect GLEW_GET_VAR(__GLEW_ARB_draw_indirect) - -#endif /* GL_ARB_draw_indirect */ - -/* ------------------------- GL_ARB_draw_instanced ------------------------- */ - -#ifndef GL_ARB_draw_instanced -#define GL_ARB_draw_instanced 1 - -#define GLEW_ARB_draw_instanced GLEW_GET_VAR(__GLEW_ARB_draw_instanced) - -#endif /* GL_ARB_draw_instanced */ - -/* ------------------------ GL_ARB_enhanced_layouts ------------------------ */ - -#ifndef GL_ARB_enhanced_layouts -#define GL_ARB_enhanced_layouts 1 - -#define GL_LOCATION_COMPONENT 0x934A -#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B -#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C - -#define GLEW_ARB_enhanced_layouts GLEW_GET_VAR(__GLEW_ARB_enhanced_layouts) - -#endif /* GL_ARB_enhanced_layouts */ - -/* -------------------- GL_ARB_explicit_attrib_location -------------------- */ - -#ifndef GL_ARB_explicit_attrib_location -#define GL_ARB_explicit_attrib_location 1 - -#define GLEW_ARB_explicit_attrib_location GLEW_GET_VAR(__GLEW_ARB_explicit_attrib_location) - -#endif /* GL_ARB_explicit_attrib_location */ - -/* -------------------- GL_ARB_explicit_uniform_location ------------------- */ - -#ifndef GL_ARB_explicit_uniform_location -#define GL_ARB_explicit_uniform_location 1 - -#define GL_MAX_UNIFORM_LOCATIONS 0x826E - -#define GLEW_ARB_explicit_uniform_location GLEW_GET_VAR(__GLEW_ARB_explicit_uniform_location) - -#endif /* GL_ARB_explicit_uniform_location */ - -/* ------------------- GL_ARB_fragment_coord_conventions ------------------- */ - -#ifndef GL_ARB_fragment_coord_conventions -#define GL_ARB_fragment_coord_conventions 1 - -#define GLEW_ARB_fragment_coord_conventions GLEW_GET_VAR(__GLEW_ARB_fragment_coord_conventions) - -#endif /* GL_ARB_fragment_coord_conventions */ - -/* --------------------- GL_ARB_fragment_layer_viewport -------------------- */ - -#ifndef GL_ARB_fragment_layer_viewport -#define GL_ARB_fragment_layer_viewport 1 - -#define GLEW_ARB_fragment_layer_viewport GLEW_GET_VAR(__GLEW_ARB_fragment_layer_viewport) - -#endif /* GL_ARB_fragment_layer_viewport */ - -/* ------------------------ GL_ARB_fragment_program ------------------------ */ - -#ifndef GL_ARB_fragment_program -#define GL_ARB_fragment_program 1 - -#define GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 - -#define GLEW_ARB_fragment_program GLEW_GET_VAR(__GLEW_ARB_fragment_program) - -#endif /* GL_ARB_fragment_program */ - -/* --------------------- GL_ARB_fragment_program_shadow -------------------- */ - -#ifndef GL_ARB_fragment_program_shadow -#define GL_ARB_fragment_program_shadow 1 - -#define GLEW_ARB_fragment_program_shadow GLEW_GET_VAR(__GLEW_ARB_fragment_program_shadow) - -#endif /* GL_ARB_fragment_program_shadow */ - -/* ------------------------- GL_ARB_fragment_shader ------------------------ */ - -#ifndef GL_ARB_fragment_shader -#define GL_ARB_fragment_shader 1 - -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B - -#define GLEW_ARB_fragment_shader GLEW_GET_VAR(__GLEW_ARB_fragment_shader) - -#endif /* GL_ARB_fragment_shader */ - -/* ------------------- GL_ARB_framebuffer_no_attachments ------------------- */ - -#ifndef GL_ARB_framebuffer_no_attachments -#define GL_ARB_framebuffer_no_attachments 1 - -#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 -#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 -#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 -#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 -#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 -#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 -#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 -#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param); - -#define glFramebufferParameteri GLEW_GET_FUN(__glewFramebufferParameteri) -#define glGetFramebufferParameteriv GLEW_GET_FUN(__glewGetFramebufferParameteriv) -#define glGetNamedFramebufferParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferParameterivEXT) -#define glNamedFramebufferParameteriEXT GLEW_GET_FUN(__glewNamedFramebufferParameteriEXT) - -#define GLEW_ARB_framebuffer_no_attachments GLEW_GET_VAR(__GLEW_ARB_framebuffer_no_attachments) - -#endif /* GL_ARB_framebuffer_no_attachments */ - -/* ----------------------- GL_ARB_framebuffer_object ----------------------- */ - -#ifndef GL_ARB_framebuffer_object -#define GL_ARB_framebuffer_object 1 - -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_INDEX 0x8222 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_SRGB 0x8C40 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_STENCIL_INDEX1 0x8D46 -#define GL_STENCIL_INDEX4 0x8D47 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_STENCIL_INDEX16 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 - -typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer); -typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); - -#define glBindFramebuffer GLEW_GET_FUN(__glewBindFramebuffer) -#define glBindRenderbuffer GLEW_GET_FUN(__glewBindRenderbuffer) -#define glBlitFramebuffer GLEW_GET_FUN(__glewBlitFramebuffer) -#define glCheckFramebufferStatus GLEW_GET_FUN(__glewCheckFramebufferStatus) -#define glDeleteFramebuffers GLEW_GET_FUN(__glewDeleteFramebuffers) -#define glDeleteRenderbuffers GLEW_GET_FUN(__glewDeleteRenderbuffers) -#define glFramebufferRenderbuffer GLEW_GET_FUN(__glewFramebufferRenderbuffer) -#define glFramebufferTexture1D GLEW_GET_FUN(__glewFramebufferTexture1D) -#define glFramebufferTexture2D GLEW_GET_FUN(__glewFramebufferTexture2D) -#define glFramebufferTexture3D GLEW_GET_FUN(__glewFramebufferTexture3D) -#define glFramebufferTextureLayer GLEW_GET_FUN(__glewFramebufferTextureLayer) -#define glGenFramebuffers GLEW_GET_FUN(__glewGenFramebuffers) -#define glGenRenderbuffers GLEW_GET_FUN(__glewGenRenderbuffers) -#define glGenerateMipmap GLEW_GET_FUN(__glewGenerateMipmap) -#define glGetFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetFramebufferAttachmentParameteriv) -#define glGetRenderbufferParameteriv GLEW_GET_FUN(__glewGetRenderbufferParameteriv) -#define glIsFramebuffer GLEW_GET_FUN(__glewIsFramebuffer) -#define glIsRenderbuffer GLEW_GET_FUN(__glewIsRenderbuffer) -#define glRenderbufferStorage GLEW_GET_FUN(__glewRenderbufferStorage) -#define glRenderbufferStorageMultisample GLEW_GET_FUN(__glewRenderbufferStorageMultisample) - -#define GLEW_ARB_framebuffer_object GLEW_GET_VAR(__GLEW_ARB_framebuffer_object) - -#endif /* GL_ARB_framebuffer_object */ - -/* ------------------------ GL_ARB_framebuffer_sRGB ------------------------ */ - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_ARB_framebuffer_sRGB 1 - -#define GL_FRAMEBUFFER_SRGB 0x8DB9 - -#define GLEW_ARB_framebuffer_sRGB GLEW_GET_VAR(__GLEW_ARB_framebuffer_sRGB) - -#endif /* GL_ARB_framebuffer_sRGB */ - -/* ------------------------ GL_ARB_geometry_shader4 ------------------------ */ - -#ifndef GL_ARB_geometry_shader4 -#define GL_ARB_geometry_shader4 1 - -#define GL_LINES_ADJACENCY_ARB 0xA -#define GL_LINE_STRIP_ADJACENCY_ARB 0xB -#define GL_TRIANGLES_ADJACENCY_ARB 0xC -#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0xD -#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 -#define GL_GEOMETRY_SHADER_ARB 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); - -#define glFramebufferTextureARB GLEW_GET_FUN(__glewFramebufferTextureARB) -#define glFramebufferTextureFaceARB GLEW_GET_FUN(__glewFramebufferTextureFaceARB) -#define glFramebufferTextureLayerARB GLEW_GET_FUN(__glewFramebufferTextureLayerARB) -#define glProgramParameteriARB GLEW_GET_FUN(__glewProgramParameteriARB) - -#define GLEW_ARB_geometry_shader4 GLEW_GET_VAR(__GLEW_ARB_geometry_shader4) - -#endif /* GL_ARB_geometry_shader4 */ - -/* ----------------------- GL_ARB_get_program_binary ----------------------- */ - -#ifndef GL_ARB_get_program_binary -#define GL_ARB_get_program_binary 1 - -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF - -typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, void*binary); -typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); - -#define glGetProgramBinary GLEW_GET_FUN(__glewGetProgramBinary) -#define glProgramBinary GLEW_GET_FUN(__glewProgramBinary) -#define glProgramParameteri GLEW_GET_FUN(__glewProgramParameteri) - -#define GLEW_ARB_get_program_binary GLEW_GET_VAR(__GLEW_ARB_get_program_binary) - -#endif /* GL_ARB_get_program_binary */ - -/* ---------------------- GL_ARB_get_texture_sub_image --------------------- */ - -#ifndef GL_ARB_get_texture_sub_image -#define GL_ARB_get_texture_sub_image 1 - -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels); -typedef void (GLAPIENTRY * PFNGLGETTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels); - -#define glGetCompressedTextureSubImage GLEW_GET_FUN(__glewGetCompressedTextureSubImage) -#define glGetTextureSubImage GLEW_GET_FUN(__glewGetTextureSubImage) - -#define GLEW_ARB_get_texture_sub_image GLEW_GET_VAR(__GLEW_ARB_get_texture_sub_image) - -#endif /* GL_ARB_get_texture_sub_image */ - -/* --------------------------- GL_ARB_gpu_shader5 -------------------------- */ - -#ifndef GL_ARB_gpu_shader5 -#define GL_ARB_gpu_shader5 1 - -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -#define GL_MAX_VERTEX_STREAMS 0x8E71 - -#define GLEW_ARB_gpu_shader5 GLEW_GET_VAR(__GLEW_ARB_gpu_shader5) - -#endif /* GL_ARB_gpu_shader5 */ - -/* ------------------------- GL_ARB_gpu_shader_fp64 ------------------------ */ - -#ifndef GL_ARB_gpu_shader_fp64 -#define GL_ARB_gpu_shader_fp64 1 - -#define GL_DOUBLE_MAT2 0x8F46 -#define GL_DOUBLE_MAT3 0x8F47 -#define GL_DOUBLE_MAT4 0x8F48 -#define GL_DOUBLE_MAT2x3 0x8F49 -#define GL_DOUBLE_MAT2x4 0x8F4A -#define GL_DOUBLE_MAT3x2 0x8F4B -#define GL_DOUBLE_MAT3x4 0x8F4C -#define GL_DOUBLE_MAT4x2 0x8F4D -#define GL_DOUBLE_MAT4x3 0x8F4E -#define GL_DOUBLE_VEC2 0x8FFC -#define GL_DOUBLE_VEC3 0x8FFD -#define GL_DOUBLE_VEC4 0x8FFE - -typedef void (GLAPIENTRY * PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); -typedef void (GLAPIENTRY * PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); - -#define glGetUniformdv GLEW_GET_FUN(__glewGetUniformdv) -#define glUniform1d GLEW_GET_FUN(__glewUniform1d) -#define glUniform1dv GLEW_GET_FUN(__glewUniform1dv) -#define glUniform2d GLEW_GET_FUN(__glewUniform2d) -#define glUniform2dv GLEW_GET_FUN(__glewUniform2dv) -#define glUniform3d GLEW_GET_FUN(__glewUniform3d) -#define glUniform3dv GLEW_GET_FUN(__glewUniform3dv) -#define glUniform4d GLEW_GET_FUN(__glewUniform4d) -#define glUniform4dv GLEW_GET_FUN(__glewUniform4dv) -#define glUniformMatrix2dv GLEW_GET_FUN(__glewUniformMatrix2dv) -#define glUniformMatrix2x3dv GLEW_GET_FUN(__glewUniformMatrix2x3dv) -#define glUniformMatrix2x4dv GLEW_GET_FUN(__glewUniformMatrix2x4dv) -#define glUniformMatrix3dv GLEW_GET_FUN(__glewUniformMatrix3dv) -#define glUniformMatrix3x2dv GLEW_GET_FUN(__glewUniformMatrix3x2dv) -#define glUniformMatrix3x4dv GLEW_GET_FUN(__glewUniformMatrix3x4dv) -#define glUniformMatrix4dv GLEW_GET_FUN(__glewUniformMatrix4dv) -#define glUniformMatrix4x2dv GLEW_GET_FUN(__glewUniformMatrix4x2dv) -#define glUniformMatrix4x3dv GLEW_GET_FUN(__glewUniformMatrix4x3dv) - -#define GLEW_ARB_gpu_shader_fp64 GLEW_GET_VAR(__GLEW_ARB_gpu_shader_fp64) - -#endif /* GL_ARB_gpu_shader_fp64 */ - -/* ------------------------ GL_ARB_half_float_pixel ------------------------ */ - -#ifndef GL_ARB_half_float_pixel -#define GL_ARB_half_float_pixel 1 - -#define GL_HALF_FLOAT_ARB 0x140B - -#define GLEW_ARB_half_float_pixel GLEW_GET_VAR(__GLEW_ARB_half_float_pixel) - -#endif /* GL_ARB_half_float_pixel */ - -/* ------------------------ GL_ARB_half_float_vertex ----------------------- */ - -#ifndef GL_ARB_half_float_vertex -#define GL_ARB_half_float_vertex 1 - -#define GL_HALF_FLOAT 0x140B - -#define GLEW_ARB_half_float_vertex GLEW_GET_VAR(__GLEW_ARB_half_float_vertex) - -#endif /* GL_ARB_half_float_vertex */ - -/* ----------------------------- GL_ARB_imaging ---------------------------- */ - -#ifndef GL_ARB_imaging -#define GL_ARB_imaging 1 - -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_FUNC_ADD 0x8006 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_BLEND_EQUATION 0x8009 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_IGNORE_BORDER 0x8150 -#define GL_CONSTANT_BORDER 0x8151 -#define GL_WRAP_BORDER 0x8152 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 - -typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, void *table); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, void *image); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, void *values); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); -typedef void (GLAPIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLRESETMINMAXPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); - -#define glColorSubTable GLEW_GET_FUN(__glewColorSubTable) -#define glColorTable GLEW_GET_FUN(__glewColorTable) -#define glColorTableParameterfv GLEW_GET_FUN(__glewColorTableParameterfv) -#define glColorTableParameteriv GLEW_GET_FUN(__glewColorTableParameteriv) -#define glConvolutionFilter1D GLEW_GET_FUN(__glewConvolutionFilter1D) -#define glConvolutionFilter2D GLEW_GET_FUN(__glewConvolutionFilter2D) -#define glConvolutionParameterf GLEW_GET_FUN(__glewConvolutionParameterf) -#define glConvolutionParameterfv GLEW_GET_FUN(__glewConvolutionParameterfv) -#define glConvolutionParameteri GLEW_GET_FUN(__glewConvolutionParameteri) -#define glConvolutionParameteriv GLEW_GET_FUN(__glewConvolutionParameteriv) -#define glCopyColorSubTable GLEW_GET_FUN(__glewCopyColorSubTable) -#define glCopyColorTable GLEW_GET_FUN(__glewCopyColorTable) -#define glCopyConvolutionFilter1D GLEW_GET_FUN(__glewCopyConvolutionFilter1D) -#define glCopyConvolutionFilter2D GLEW_GET_FUN(__glewCopyConvolutionFilter2D) -#define glGetColorTable GLEW_GET_FUN(__glewGetColorTable) -#define glGetColorTableParameterfv GLEW_GET_FUN(__glewGetColorTableParameterfv) -#define glGetColorTableParameteriv GLEW_GET_FUN(__glewGetColorTableParameteriv) -#define glGetConvolutionFilter GLEW_GET_FUN(__glewGetConvolutionFilter) -#define glGetConvolutionParameterfv GLEW_GET_FUN(__glewGetConvolutionParameterfv) -#define glGetConvolutionParameteriv GLEW_GET_FUN(__glewGetConvolutionParameteriv) -#define glGetHistogram GLEW_GET_FUN(__glewGetHistogram) -#define glGetHistogramParameterfv GLEW_GET_FUN(__glewGetHistogramParameterfv) -#define glGetHistogramParameteriv GLEW_GET_FUN(__glewGetHistogramParameteriv) -#define glGetMinmax GLEW_GET_FUN(__glewGetMinmax) -#define glGetMinmaxParameterfv GLEW_GET_FUN(__glewGetMinmaxParameterfv) -#define glGetMinmaxParameteriv GLEW_GET_FUN(__glewGetMinmaxParameteriv) -#define glGetSeparableFilter GLEW_GET_FUN(__glewGetSeparableFilter) -#define glHistogram GLEW_GET_FUN(__glewHistogram) -#define glMinmax GLEW_GET_FUN(__glewMinmax) -#define glResetHistogram GLEW_GET_FUN(__glewResetHistogram) -#define glResetMinmax GLEW_GET_FUN(__glewResetMinmax) -#define glSeparableFilter2D GLEW_GET_FUN(__glewSeparableFilter2D) - -#define GLEW_ARB_imaging GLEW_GET_VAR(__GLEW_ARB_imaging) - -#endif /* GL_ARB_imaging */ - -/* ----------------------- GL_ARB_indirect_parameters ---------------------- */ - -#ifndef GL_ARB_indirect_parameters -#define GL_ARB_indirect_parameters 1 - -#define GL_PARAMETER_BUFFER_ARB 0x80EE -#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF - -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); - -#define glMultiDrawArraysIndirectCountARB GLEW_GET_FUN(__glewMultiDrawArraysIndirectCountARB) -#define glMultiDrawElementsIndirectCountARB GLEW_GET_FUN(__glewMultiDrawElementsIndirectCountARB) - -#define GLEW_ARB_indirect_parameters GLEW_GET_VAR(__GLEW_ARB_indirect_parameters) - -#endif /* GL_ARB_indirect_parameters */ - -/* ------------------------ GL_ARB_instanced_arrays ------------------------ */ - -#ifndef GL_ARB_instanced_arrays -#define GL_ARB_instanced_arrays 1 - -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); - -#define glDrawArraysInstancedARB GLEW_GET_FUN(__glewDrawArraysInstancedARB) -#define glDrawElementsInstancedARB GLEW_GET_FUN(__glewDrawElementsInstancedARB) -#define glVertexAttribDivisorARB GLEW_GET_FUN(__glewVertexAttribDivisorARB) - -#define GLEW_ARB_instanced_arrays GLEW_GET_VAR(__GLEW_ARB_instanced_arrays) - -#endif /* GL_ARB_instanced_arrays */ - -/* ---------------------- GL_ARB_internalformat_query ---------------------- */ - -#ifndef GL_ARB_internalformat_query -#define GL_ARB_internalformat_query 1 - -#define GL_NUM_SAMPLE_COUNTS 0x9380 - -typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params); - -#define glGetInternalformativ GLEW_GET_FUN(__glewGetInternalformativ) - -#define GLEW_ARB_internalformat_query GLEW_GET_VAR(__GLEW_ARB_internalformat_query) - -#endif /* GL_ARB_internalformat_query */ - -/* ---------------------- GL_ARB_internalformat_query2 --------------------- */ - -#ifndef GL_ARB_internalformat_query2 -#define GL_ARB_internalformat_query2 1 - -#define GL_INTERNALFORMAT_SUPPORTED 0x826F -#define GL_INTERNALFORMAT_PREFERRED 0x8270 -#define GL_INTERNALFORMAT_RED_SIZE 0x8271 -#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272 -#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273 -#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274 -#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275 -#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276 -#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277 -#define GL_INTERNALFORMAT_RED_TYPE 0x8278 -#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279 -#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A -#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B -#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C -#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D -#define GL_MAX_WIDTH 0x827E -#define GL_MAX_HEIGHT 0x827F -#define GL_MAX_DEPTH 0x8280 -#define GL_MAX_LAYERS 0x8281 -#define GL_MAX_COMBINED_DIMENSIONS 0x8282 -#define GL_COLOR_COMPONENTS 0x8283 -#define GL_DEPTH_COMPONENTS 0x8284 -#define GL_STENCIL_COMPONENTS 0x8285 -#define GL_COLOR_RENDERABLE 0x8286 -#define GL_DEPTH_RENDERABLE 0x8287 -#define GL_STENCIL_RENDERABLE 0x8288 -#define GL_FRAMEBUFFER_RENDERABLE 0x8289 -#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A -#define GL_FRAMEBUFFER_BLEND 0x828B -#define GL_READ_PIXELS 0x828C -#define GL_READ_PIXELS_FORMAT 0x828D -#define GL_READ_PIXELS_TYPE 0x828E -#define GL_TEXTURE_IMAGE_FORMAT 0x828F -#define GL_TEXTURE_IMAGE_TYPE 0x8290 -#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291 -#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292 -#define GL_MIPMAP 0x8293 -#define GL_MANUAL_GENERATE_MIPMAP 0x8294 -#define GL_AUTO_GENERATE_MIPMAP 0x8295 -#define GL_COLOR_ENCODING 0x8296 -#define GL_SRGB_READ 0x8297 -#define GL_SRGB_WRITE 0x8298 -#define GL_SRGB_DECODE_ARB 0x8299 -#define GL_FILTER 0x829A -#define GL_VERTEX_TEXTURE 0x829B -#define GL_TESS_CONTROL_TEXTURE 0x829C -#define GL_TESS_EVALUATION_TEXTURE 0x829D -#define GL_GEOMETRY_TEXTURE 0x829E -#define GL_FRAGMENT_TEXTURE 0x829F -#define GL_COMPUTE_TEXTURE 0x82A0 -#define GL_TEXTURE_SHADOW 0x82A1 -#define GL_TEXTURE_GATHER 0x82A2 -#define GL_TEXTURE_GATHER_SHADOW 0x82A3 -#define GL_SHADER_IMAGE_LOAD 0x82A4 -#define GL_SHADER_IMAGE_STORE 0x82A5 -#define GL_SHADER_IMAGE_ATOMIC 0x82A6 -#define GL_IMAGE_TEXEL_SIZE 0x82A7 -#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8 -#define GL_IMAGE_PIXEL_FORMAT 0x82A9 -#define GL_IMAGE_PIXEL_TYPE 0x82AA -#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC -#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD -#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE -#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF -#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1 -#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2 -#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3 -#define GL_CLEAR_BUFFER 0x82B4 -#define GL_TEXTURE_VIEW 0x82B5 -#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6 -#define GL_FULL_SUPPORT 0x82B7 -#define GL_CAVEAT_SUPPORT 0x82B8 -#define GL_IMAGE_CLASS_4_X_32 0x82B9 -#define GL_IMAGE_CLASS_2_X_32 0x82BA -#define GL_IMAGE_CLASS_1_X_32 0x82BB -#define GL_IMAGE_CLASS_4_X_16 0x82BC -#define GL_IMAGE_CLASS_2_X_16 0x82BD -#define GL_IMAGE_CLASS_1_X_16 0x82BE -#define GL_IMAGE_CLASS_4_X_8 0x82BF -#define GL_IMAGE_CLASS_2_X_8 0x82C0 -#define GL_IMAGE_CLASS_1_X_8 0x82C1 -#define GL_IMAGE_CLASS_11_11_10 0x82C2 -#define GL_IMAGE_CLASS_10_10_10_2 0x82C3 -#define GL_VIEW_CLASS_128_BITS 0x82C4 -#define GL_VIEW_CLASS_96_BITS 0x82C5 -#define GL_VIEW_CLASS_64_BITS 0x82C6 -#define GL_VIEW_CLASS_48_BITS 0x82C7 -#define GL_VIEW_CLASS_32_BITS 0x82C8 -#define GL_VIEW_CLASS_24_BITS 0x82C9 -#define GL_VIEW_CLASS_16_BITS 0x82CA -#define GL_VIEW_CLASS_8_BITS 0x82CB -#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC -#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD -#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE -#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF -#define GL_VIEW_CLASS_RGTC1_RED 0x82D0 -#define GL_VIEW_CLASS_RGTC2_RG 0x82D1 -#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2 -#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 - -typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params); - -#define glGetInternalformati64v GLEW_GET_FUN(__glewGetInternalformati64v) - -#define GLEW_ARB_internalformat_query2 GLEW_GET_VAR(__GLEW_ARB_internalformat_query2) - -#endif /* GL_ARB_internalformat_query2 */ - -/* ----------------------- GL_ARB_invalidate_subdata ----------------------- */ - -#ifndef GL_ARB_invalidate_subdata -#define GL_ARB_invalidate_subdata 1 - -typedef void (GLAPIENTRY * PFNGLINVALIDATEBUFFERDATAPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLINVALIDATEBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (GLAPIENTRY * PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments); -typedef void (GLAPIENTRY * PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLINVALIDATETEXIMAGEPROC) (GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLINVALIDATETEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); - -#define glInvalidateBufferData GLEW_GET_FUN(__glewInvalidateBufferData) -#define glInvalidateBufferSubData GLEW_GET_FUN(__glewInvalidateBufferSubData) -#define glInvalidateFramebuffer GLEW_GET_FUN(__glewInvalidateFramebuffer) -#define glInvalidateSubFramebuffer GLEW_GET_FUN(__glewInvalidateSubFramebuffer) -#define glInvalidateTexImage GLEW_GET_FUN(__glewInvalidateTexImage) -#define glInvalidateTexSubImage GLEW_GET_FUN(__glewInvalidateTexSubImage) - -#define GLEW_ARB_invalidate_subdata GLEW_GET_VAR(__GLEW_ARB_invalidate_subdata) - -#endif /* GL_ARB_invalidate_subdata */ - -/* ---------------------- GL_ARB_map_buffer_alignment ---------------------- */ - -#ifndef GL_ARB_map_buffer_alignment -#define GL_ARB_map_buffer_alignment 1 - -#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC - -#define GLEW_ARB_map_buffer_alignment GLEW_GET_VAR(__GLEW_ARB_map_buffer_alignment) - -#endif /* GL_ARB_map_buffer_alignment */ - -/* ------------------------ GL_ARB_map_buffer_range ------------------------ */ - -#ifndef GL_ARB_map_buffer_range -#define GL_ARB_map_buffer_range 1 - -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 - -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void * (GLAPIENTRY * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); - -#define glFlushMappedBufferRange GLEW_GET_FUN(__glewFlushMappedBufferRange) -#define glMapBufferRange GLEW_GET_FUN(__glewMapBufferRange) - -#define GLEW_ARB_map_buffer_range GLEW_GET_VAR(__GLEW_ARB_map_buffer_range) - -#endif /* GL_ARB_map_buffer_range */ - -/* ------------------------- GL_ARB_matrix_palette ------------------------- */ - -#ifndef GL_ARB_matrix_palette -#define GL_ARB_matrix_palette 1 - -#define GL_MATRIX_PALETTE_ARB 0x8840 -#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 -#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 -#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 -#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 -#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 -#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 -#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 -#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 -#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 - -typedef void (GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, void *pointer); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, GLubyte *indices); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, GLuint *indices); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, GLushort *indices); - -#define glCurrentPaletteMatrixARB GLEW_GET_FUN(__glewCurrentPaletteMatrixARB) -#define glMatrixIndexPointerARB GLEW_GET_FUN(__glewMatrixIndexPointerARB) -#define glMatrixIndexubvARB GLEW_GET_FUN(__glewMatrixIndexubvARB) -#define glMatrixIndexuivARB GLEW_GET_FUN(__glewMatrixIndexuivARB) -#define glMatrixIndexusvARB GLEW_GET_FUN(__glewMatrixIndexusvARB) - -#define GLEW_ARB_matrix_palette GLEW_GET_VAR(__GLEW_ARB_matrix_palette) - -#endif /* GL_ARB_matrix_palette */ - -/* --------------------------- GL_ARB_multi_bind --------------------------- */ - -#ifndef GL_ARB_multi_bind -#define GL_ARB_multi_bind 1 - -typedef void (GLAPIENTRY * PFNGLBINDBUFFERSBASEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERSRANGEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizeiptr *sizes); -typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint* textures); -typedef void (GLAPIENTRY * PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint* samplers); -typedef void (GLAPIENTRY * PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint* textures); -typedef void (GLAPIENTRY * PFNGLBINDVERTEXBUFFERSPROC) (GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides); - -#define glBindBuffersBase GLEW_GET_FUN(__glewBindBuffersBase) -#define glBindBuffersRange GLEW_GET_FUN(__glewBindBuffersRange) -#define glBindImageTextures GLEW_GET_FUN(__glewBindImageTextures) -#define glBindSamplers GLEW_GET_FUN(__glewBindSamplers) -#define glBindTextures GLEW_GET_FUN(__glewBindTextures) -#define glBindVertexBuffers GLEW_GET_FUN(__glewBindVertexBuffers) - -#define GLEW_ARB_multi_bind GLEW_GET_VAR(__GLEW_ARB_multi_bind) - -#endif /* GL_ARB_multi_bind */ - -/* ----------------------- GL_ARB_multi_draw_indirect ---------------------- */ - -#ifndef GL_ARB_multi_draw_indirect -#define GL_ARB_multi_draw_indirect 1 - -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); - -#define glMultiDrawArraysIndirect GLEW_GET_FUN(__glewMultiDrawArraysIndirect) -#define glMultiDrawElementsIndirect GLEW_GET_FUN(__glewMultiDrawElementsIndirect) - -#define GLEW_ARB_multi_draw_indirect GLEW_GET_VAR(__GLEW_ARB_multi_draw_indirect) - -#endif /* GL_ARB_multi_draw_indirect */ - -/* --------------------------- GL_ARB_multisample -------------------------- */ - -#ifndef GL_ARB_multisample -#define GL_ARB_multisample 1 - -#define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define GL_MULTISAMPLE_BIT_ARB 0x20000000 - -typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); - -#define glSampleCoverageARB GLEW_GET_FUN(__glewSampleCoverageARB) - -#define GLEW_ARB_multisample GLEW_GET_VAR(__GLEW_ARB_multisample) - -#endif /* GL_ARB_multisample */ - -/* -------------------------- GL_ARB_multitexture -------------------------- */ - -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 - -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 - -typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); - -#define glActiveTextureARB GLEW_GET_FUN(__glewActiveTextureARB) -#define glClientActiveTextureARB GLEW_GET_FUN(__glewClientActiveTextureARB) -#define glMultiTexCoord1dARB GLEW_GET_FUN(__glewMultiTexCoord1dARB) -#define glMultiTexCoord1dvARB GLEW_GET_FUN(__glewMultiTexCoord1dvARB) -#define glMultiTexCoord1fARB GLEW_GET_FUN(__glewMultiTexCoord1fARB) -#define glMultiTexCoord1fvARB GLEW_GET_FUN(__glewMultiTexCoord1fvARB) -#define glMultiTexCoord1iARB GLEW_GET_FUN(__glewMultiTexCoord1iARB) -#define glMultiTexCoord1ivARB GLEW_GET_FUN(__glewMultiTexCoord1ivARB) -#define glMultiTexCoord1sARB GLEW_GET_FUN(__glewMultiTexCoord1sARB) -#define glMultiTexCoord1svARB GLEW_GET_FUN(__glewMultiTexCoord1svARB) -#define glMultiTexCoord2dARB GLEW_GET_FUN(__glewMultiTexCoord2dARB) -#define glMultiTexCoord2dvARB GLEW_GET_FUN(__glewMultiTexCoord2dvARB) -#define glMultiTexCoord2fARB GLEW_GET_FUN(__glewMultiTexCoord2fARB) -#define glMultiTexCoord2fvARB GLEW_GET_FUN(__glewMultiTexCoord2fvARB) -#define glMultiTexCoord2iARB GLEW_GET_FUN(__glewMultiTexCoord2iARB) -#define glMultiTexCoord2ivARB GLEW_GET_FUN(__glewMultiTexCoord2ivARB) -#define glMultiTexCoord2sARB GLEW_GET_FUN(__glewMultiTexCoord2sARB) -#define glMultiTexCoord2svARB GLEW_GET_FUN(__glewMultiTexCoord2svARB) -#define glMultiTexCoord3dARB GLEW_GET_FUN(__glewMultiTexCoord3dARB) -#define glMultiTexCoord3dvARB GLEW_GET_FUN(__glewMultiTexCoord3dvARB) -#define glMultiTexCoord3fARB GLEW_GET_FUN(__glewMultiTexCoord3fARB) -#define glMultiTexCoord3fvARB GLEW_GET_FUN(__glewMultiTexCoord3fvARB) -#define glMultiTexCoord3iARB GLEW_GET_FUN(__glewMultiTexCoord3iARB) -#define glMultiTexCoord3ivARB GLEW_GET_FUN(__glewMultiTexCoord3ivARB) -#define glMultiTexCoord3sARB GLEW_GET_FUN(__glewMultiTexCoord3sARB) -#define glMultiTexCoord3svARB GLEW_GET_FUN(__glewMultiTexCoord3svARB) -#define glMultiTexCoord4dARB GLEW_GET_FUN(__glewMultiTexCoord4dARB) -#define glMultiTexCoord4dvARB GLEW_GET_FUN(__glewMultiTexCoord4dvARB) -#define glMultiTexCoord4fARB GLEW_GET_FUN(__glewMultiTexCoord4fARB) -#define glMultiTexCoord4fvARB GLEW_GET_FUN(__glewMultiTexCoord4fvARB) -#define glMultiTexCoord4iARB GLEW_GET_FUN(__glewMultiTexCoord4iARB) -#define glMultiTexCoord4ivARB GLEW_GET_FUN(__glewMultiTexCoord4ivARB) -#define glMultiTexCoord4sARB GLEW_GET_FUN(__glewMultiTexCoord4sARB) -#define glMultiTexCoord4svARB GLEW_GET_FUN(__glewMultiTexCoord4svARB) - -#define GLEW_ARB_multitexture GLEW_GET_VAR(__GLEW_ARB_multitexture) - -#endif /* GL_ARB_multitexture */ - -/* ------------------------- GL_ARB_occlusion_query ------------------------ */ - -#ifndef GL_ARB_occlusion_query -#define GL_ARB_occlusion_query 1 - -#define GL_QUERY_COUNTER_BITS_ARB 0x8864 -#define GL_CURRENT_QUERY_ARB 0x8865 -#define GL_QUERY_RESULT_ARB 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define GL_SAMPLES_PASSED_ARB 0x8914 - -typedef void (GLAPIENTRY * PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDQUERYARBPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISQUERYARBPROC) (GLuint id); - -#define glBeginQueryARB GLEW_GET_FUN(__glewBeginQueryARB) -#define glDeleteQueriesARB GLEW_GET_FUN(__glewDeleteQueriesARB) -#define glEndQueryARB GLEW_GET_FUN(__glewEndQueryARB) -#define glGenQueriesARB GLEW_GET_FUN(__glewGenQueriesARB) -#define glGetQueryObjectivARB GLEW_GET_FUN(__glewGetQueryObjectivARB) -#define glGetQueryObjectuivARB GLEW_GET_FUN(__glewGetQueryObjectuivARB) -#define glGetQueryivARB GLEW_GET_FUN(__glewGetQueryivARB) -#define glIsQueryARB GLEW_GET_FUN(__glewIsQueryARB) - -#define GLEW_ARB_occlusion_query GLEW_GET_VAR(__GLEW_ARB_occlusion_query) - -#endif /* GL_ARB_occlusion_query */ - -/* ------------------------ GL_ARB_occlusion_query2 ------------------------ */ - -#ifndef GL_ARB_occlusion_query2 -#define GL_ARB_occlusion_query2 1 - -#define GL_ANY_SAMPLES_PASSED 0x8C2F - -#define GLEW_ARB_occlusion_query2 GLEW_GET_VAR(__GLEW_ARB_occlusion_query2) - -#endif /* GL_ARB_occlusion_query2 */ - -/* -------------------- GL_ARB_pipeline_statistics_query ------------------- */ - -#ifndef GL_ARB_pipeline_statistics_query -#define GL_ARB_pipeline_statistics_query 1 - -#define GL_VERTICES_SUBMITTED_ARB 0x82EE -#define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF -#define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0 -#define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1 -#define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2 -#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3 -#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4 -#define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5 -#define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6 -#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7 -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F - -#define GLEW_ARB_pipeline_statistics_query GLEW_GET_VAR(__GLEW_ARB_pipeline_statistics_query) - -#endif /* GL_ARB_pipeline_statistics_query */ - -/* ----------------------- GL_ARB_pixel_buffer_object ---------------------- */ - -#ifndef GL_ARB_pixel_buffer_object -#define GL_ARB_pixel_buffer_object 1 - -#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF - -#define GLEW_ARB_pixel_buffer_object GLEW_GET_VAR(__GLEW_ARB_pixel_buffer_object) - -#endif /* GL_ARB_pixel_buffer_object */ - -/* ------------------------ GL_ARB_point_parameters ------------------------ */ - -#ifndef GL_ARB_point_parameters -#define GL_ARB_point_parameters 1 - -#define GL_POINT_SIZE_MIN_ARB 0x8126 -#define GL_POINT_SIZE_MAX_ARB 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 - -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat* params); - -#define glPointParameterfARB GLEW_GET_FUN(__glewPointParameterfARB) -#define glPointParameterfvARB GLEW_GET_FUN(__glewPointParameterfvARB) - -#define GLEW_ARB_point_parameters GLEW_GET_VAR(__GLEW_ARB_point_parameters) - -#endif /* GL_ARB_point_parameters */ - -/* -------------------------- GL_ARB_point_sprite -------------------------- */ - -#ifndef GL_ARB_point_sprite -#define GL_ARB_point_sprite 1 - -#define GL_POINT_SPRITE_ARB 0x8861 -#define GL_COORD_REPLACE_ARB 0x8862 - -#define GLEW_ARB_point_sprite GLEW_GET_VAR(__GLEW_ARB_point_sprite) - -#endif /* GL_ARB_point_sprite */ - -/* --------------------- GL_ARB_program_interface_query -------------------- */ - -#ifndef GL_ARB_program_interface_query -#define GL_ARB_program_interface_query 1 - -#define GL_UNIFORM 0x92E1 -#define GL_UNIFORM_BLOCK 0x92E2 -#define GL_PROGRAM_INPUT 0x92E3 -#define GL_PROGRAM_OUTPUT 0x92E4 -#define GL_BUFFER_VARIABLE 0x92E5 -#define GL_SHADER_STORAGE_BLOCK 0x92E6 -#define GL_IS_PER_PATCH 0x92E7 -#define GL_VERTEX_SUBROUTINE 0x92E8 -#define GL_TESS_CONTROL_SUBROUTINE 0x92E9 -#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA -#define GL_GEOMETRY_SUBROUTINE 0x92EB -#define GL_FRAGMENT_SUBROUTINE 0x92EC -#define GL_COMPUTE_SUBROUTINE 0x92ED -#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE -#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF -#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0 -#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1 -#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2 -#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3 -#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 -#define GL_ACTIVE_RESOURCES 0x92F5 -#define GL_MAX_NAME_LENGTH 0x92F6 -#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 -#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8 -#define GL_NAME_LENGTH 0x92F9 -#define GL_TYPE 0x92FA -#define GL_ARRAY_SIZE 0x92FB -#define GL_OFFSET 0x92FC -#define GL_BLOCK_INDEX 0x92FD -#define GL_ARRAY_STRIDE 0x92FE -#define GL_MATRIX_STRIDE 0x92FF -#define GL_IS_ROW_MAJOR 0x9300 -#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 -#define GL_BUFFER_BINDING 0x9302 -#define GL_BUFFER_DATA_SIZE 0x9303 -#define GL_NUM_ACTIVE_VARIABLES 0x9304 -#define GL_ACTIVE_VARIABLES 0x9305 -#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 -#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 -#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A -#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B -#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C -#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D -#define GL_LOCATION 0x930E -#define GL_LOCATION_INDEX 0x930F - -typedef void (GLAPIENTRY * PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint* params); -typedef GLuint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar* name); -typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar* name); -typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) (GLuint program, GLenum programInterface, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLint *params); - -#define glGetProgramInterfaceiv GLEW_GET_FUN(__glewGetProgramInterfaceiv) -#define glGetProgramResourceIndex GLEW_GET_FUN(__glewGetProgramResourceIndex) -#define glGetProgramResourceLocation GLEW_GET_FUN(__glewGetProgramResourceLocation) -#define glGetProgramResourceLocationIndex GLEW_GET_FUN(__glewGetProgramResourceLocationIndex) -#define glGetProgramResourceName GLEW_GET_FUN(__glewGetProgramResourceName) -#define glGetProgramResourceiv GLEW_GET_FUN(__glewGetProgramResourceiv) - -#define GLEW_ARB_program_interface_query GLEW_GET_VAR(__GLEW_ARB_program_interface_query) - -#endif /* GL_ARB_program_interface_query */ - -/* ------------------------ GL_ARB_provoking_vertex ------------------------ */ - -#ifndef GL_ARB_provoking_vertex -#define GL_ARB_provoking_vertex 1 - -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F - -typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXPROC) (GLenum mode); - -#define glProvokingVertex GLEW_GET_FUN(__glewProvokingVertex) - -#define GLEW_ARB_provoking_vertex GLEW_GET_VAR(__GLEW_ARB_provoking_vertex) - -#endif /* GL_ARB_provoking_vertex */ - -/* ----------------------- GL_ARB_query_buffer_object ---------------------- */ - -#ifndef GL_ARB_query_buffer_object -#define GL_ARB_query_buffer_object 1 - -#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000 -#define GL_QUERY_BUFFER 0x9192 -#define GL_QUERY_BUFFER_BINDING 0x9193 -#define GL_QUERY_RESULT_NO_WAIT 0x9194 - -#define GLEW_ARB_query_buffer_object GLEW_GET_VAR(__GLEW_ARB_query_buffer_object) - -#endif /* GL_ARB_query_buffer_object */ - -/* ------------------ GL_ARB_robust_buffer_access_behavior ----------------- */ - -#ifndef GL_ARB_robust_buffer_access_behavior -#define GL_ARB_robust_buffer_access_behavior 1 - -#define GLEW_ARB_robust_buffer_access_behavior GLEW_GET_VAR(__GLEW_ARB_robust_buffer_access_behavior) - -#endif /* GL_ARB_robust_buffer_access_behavior */ - -/* --------------------------- GL_ARB_robustness --------------------------- */ - -#ifndef GL_ARB_robustness -#define GL_ARB_robustness 1 - -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 - -typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table); -typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void* img); -typedef void (GLAPIENTRY * PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image); -typedef void (GLAPIENTRY * PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); -typedef void (GLAPIENTRY * PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v); -typedef void (GLAPIENTRY * PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v); -typedef void (GLAPIENTRY * PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint* v); -typedef void (GLAPIENTRY * PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); -typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat* values); -typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint* values); -typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort* values); -typedef void (GLAPIENTRY * PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte* pattern); -typedef void (GLAPIENTRY * PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, void*column, void*span); -typedef void (GLAPIENTRY * PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params); -typedef void (GLAPIENTRY * PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data); - -#define glGetGraphicsResetStatusARB GLEW_GET_FUN(__glewGetGraphicsResetStatusARB) -#define glGetnColorTableARB GLEW_GET_FUN(__glewGetnColorTableARB) -#define glGetnCompressedTexImageARB GLEW_GET_FUN(__glewGetnCompressedTexImageARB) -#define glGetnConvolutionFilterARB GLEW_GET_FUN(__glewGetnConvolutionFilterARB) -#define glGetnHistogramARB GLEW_GET_FUN(__glewGetnHistogramARB) -#define glGetnMapdvARB GLEW_GET_FUN(__glewGetnMapdvARB) -#define glGetnMapfvARB GLEW_GET_FUN(__glewGetnMapfvARB) -#define glGetnMapivARB GLEW_GET_FUN(__glewGetnMapivARB) -#define glGetnMinmaxARB GLEW_GET_FUN(__glewGetnMinmaxARB) -#define glGetnPixelMapfvARB GLEW_GET_FUN(__glewGetnPixelMapfvARB) -#define glGetnPixelMapuivARB GLEW_GET_FUN(__glewGetnPixelMapuivARB) -#define glGetnPixelMapusvARB GLEW_GET_FUN(__glewGetnPixelMapusvARB) -#define glGetnPolygonStippleARB GLEW_GET_FUN(__glewGetnPolygonStippleARB) -#define glGetnSeparableFilterARB GLEW_GET_FUN(__glewGetnSeparableFilterARB) -#define glGetnTexImageARB GLEW_GET_FUN(__glewGetnTexImageARB) -#define glGetnUniformdvARB GLEW_GET_FUN(__glewGetnUniformdvARB) -#define glGetnUniformfvARB GLEW_GET_FUN(__glewGetnUniformfvARB) -#define glGetnUniformivARB GLEW_GET_FUN(__glewGetnUniformivARB) -#define glGetnUniformuivARB GLEW_GET_FUN(__glewGetnUniformuivARB) -#define glReadnPixelsARB GLEW_GET_FUN(__glewReadnPixelsARB) - -#define GLEW_ARB_robustness GLEW_GET_VAR(__GLEW_ARB_robustness) - -#endif /* GL_ARB_robustness */ - -/* ---------------- GL_ARB_robustness_application_isolation ---------------- */ - -#ifndef GL_ARB_robustness_application_isolation -#define GL_ARB_robustness_application_isolation 1 - -#define GLEW_ARB_robustness_application_isolation GLEW_GET_VAR(__GLEW_ARB_robustness_application_isolation) - -#endif /* GL_ARB_robustness_application_isolation */ - -/* ---------------- GL_ARB_robustness_share_group_isolation ---------------- */ - -#ifndef GL_ARB_robustness_share_group_isolation -#define GL_ARB_robustness_share_group_isolation 1 - -#define GLEW_ARB_robustness_share_group_isolation GLEW_GET_VAR(__GLEW_ARB_robustness_share_group_isolation) - -#endif /* GL_ARB_robustness_share_group_isolation */ - -/* ------------------------- GL_ARB_sample_shading ------------------------- */ - -#ifndef GL_ARB_sample_shading -#define GL_ARB_sample_shading 1 - -#define GL_SAMPLE_SHADING_ARB 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 - -typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); - -#define glMinSampleShadingARB GLEW_GET_FUN(__glewMinSampleShadingARB) - -#define GLEW_ARB_sample_shading GLEW_GET_VAR(__GLEW_ARB_sample_shading) - -#endif /* GL_ARB_sample_shading */ - -/* ------------------------- GL_ARB_sampler_objects ------------------------ */ - -#ifndef GL_ARB_sampler_objects -#define GL_ARB_sampler_objects 1 - -#define GL_SAMPLER_BINDING 0x8919 - -typedef void (GLAPIENTRY * PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GLAPIENTRY * PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint * samplers); -typedef void (GLAPIENTRY * PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint* samplers); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint* params); - -#define glBindSampler GLEW_GET_FUN(__glewBindSampler) -#define glDeleteSamplers GLEW_GET_FUN(__glewDeleteSamplers) -#define glGenSamplers GLEW_GET_FUN(__glewGenSamplers) -#define glGetSamplerParameterIiv GLEW_GET_FUN(__glewGetSamplerParameterIiv) -#define glGetSamplerParameterIuiv GLEW_GET_FUN(__glewGetSamplerParameterIuiv) -#define glGetSamplerParameterfv GLEW_GET_FUN(__glewGetSamplerParameterfv) -#define glGetSamplerParameteriv GLEW_GET_FUN(__glewGetSamplerParameteriv) -#define glIsSampler GLEW_GET_FUN(__glewIsSampler) -#define glSamplerParameterIiv GLEW_GET_FUN(__glewSamplerParameterIiv) -#define glSamplerParameterIuiv GLEW_GET_FUN(__glewSamplerParameterIuiv) -#define glSamplerParameterf GLEW_GET_FUN(__glewSamplerParameterf) -#define glSamplerParameterfv GLEW_GET_FUN(__glewSamplerParameterfv) -#define glSamplerParameteri GLEW_GET_FUN(__glewSamplerParameteri) -#define glSamplerParameteriv GLEW_GET_FUN(__glewSamplerParameteriv) - -#define GLEW_ARB_sampler_objects GLEW_GET_VAR(__GLEW_ARB_sampler_objects) - -#endif /* GL_ARB_sampler_objects */ - -/* ------------------------ GL_ARB_seamless_cube_map ----------------------- */ - -#ifndef GL_ARB_seamless_cube_map -#define GL_ARB_seamless_cube_map 1 - -#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F - -#define GLEW_ARB_seamless_cube_map GLEW_GET_VAR(__GLEW_ARB_seamless_cube_map) - -#endif /* GL_ARB_seamless_cube_map */ - -/* ------------------ GL_ARB_seamless_cubemap_per_texture ------------------ */ - -#ifndef GL_ARB_seamless_cubemap_per_texture -#define GL_ARB_seamless_cubemap_per_texture 1 - -#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F - -#define GLEW_ARB_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_ARB_seamless_cubemap_per_texture) - -#endif /* GL_ARB_seamless_cubemap_per_texture */ - -/* --------------------- GL_ARB_separate_shader_objects -------------------- */ - -#ifndef GL_ARB_separate_shader_objects -#define GL_ARB_separate_shader_objects 1 - -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_ALL_SHADER_BITS 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef void (GLAPIENTRY * PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar * const * strings); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint* pipelines); -typedef void (GLAPIENTRY * PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar *infoLog); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint x, GLuint y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); - -#define glActiveShaderProgram GLEW_GET_FUN(__glewActiveShaderProgram) -#define glBindProgramPipeline GLEW_GET_FUN(__glewBindProgramPipeline) -#define glCreateShaderProgramv GLEW_GET_FUN(__glewCreateShaderProgramv) -#define glDeleteProgramPipelines GLEW_GET_FUN(__glewDeleteProgramPipelines) -#define glGenProgramPipelines GLEW_GET_FUN(__glewGenProgramPipelines) -#define glGetProgramPipelineInfoLog GLEW_GET_FUN(__glewGetProgramPipelineInfoLog) -#define glGetProgramPipelineiv GLEW_GET_FUN(__glewGetProgramPipelineiv) -#define glIsProgramPipeline GLEW_GET_FUN(__glewIsProgramPipeline) -#define glProgramUniform1d GLEW_GET_FUN(__glewProgramUniform1d) -#define glProgramUniform1dv GLEW_GET_FUN(__glewProgramUniform1dv) -#define glProgramUniform1f GLEW_GET_FUN(__glewProgramUniform1f) -#define glProgramUniform1fv GLEW_GET_FUN(__glewProgramUniform1fv) -#define glProgramUniform1i GLEW_GET_FUN(__glewProgramUniform1i) -#define glProgramUniform1iv GLEW_GET_FUN(__glewProgramUniform1iv) -#define glProgramUniform1ui GLEW_GET_FUN(__glewProgramUniform1ui) -#define glProgramUniform1uiv GLEW_GET_FUN(__glewProgramUniform1uiv) -#define glProgramUniform2d GLEW_GET_FUN(__glewProgramUniform2d) -#define glProgramUniform2dv GLEW_GET_FUN(__glewProgramUniform2dv) -#define glProgramUniform2f GLEW_GET_FUN(__glewProgramUniform2f) -#define glProgramUniform2fv GLEW_GET_FUN(__glewProgramUniform2fv) -#define glProgramUniform2i GLEW_GET_FUN(__glewProgramUniform2i) -#define glProgramUniform2iv GLEW_GET_FUN(__glewProgramUniform2iv) -#define glProgramUniform2ui GLEW_GET_FUN(__glewProgramUniform2ui) -#define glProgramUniform2uiv GLEW_GET_FUN(__glewProgramUniform2uiv) -#define glProgramUniform3d GLEW_GET_FUN(__glewProgramUniform3d) -#define glProgramUniform3dv GLEW_GET_FUN(__glewProgramUniform3dv) -#define glProgramUniform3f GLEW_GET_FUN(__glewProgramUniform3f) -#define glProgramUniform3fv GLEW_GET_FUN(__glewProgramUniform3fv) -#define glProgramUniform3i GLEW_GET_FUN(__glewProgramUniform3i) -#define glProgramUniform3iv GLEW_GET_FUN(__glewProgramUniform3iv) -#define glProgramUniform3ui GLEW_GET_FUN(__glewProgramUniform3ui) -#define glProgramUniform3uiv GLEW_GET_FUN(__glewProgramUniform3uiv) -#define glProgramUniform4d GLEW_GET_FUN(__glewProgramUniform4d) -#define glProgramUniform4dv GLEW_GET_FUN(__glewProgramUniform4dv) -#define glProgramUniform4f GLEW_GET_FUN(__glewProgramUniform4f) -#define glProgramUniform4fv GLEW_GET_FUN(__glewProgramUniform4fv) -#define glProgramUniform4i GLEW_GET_FUN(__glewProgramUniform4i) -#define glProgramUniform4iv GLEW_GET_FUN(__glewProgramUniform4iv) -#define glProgramUniform4ui GLEW_GET_FUN(__glewProgramUniform4ui) -#define glProgramUniform4uiv GLEW_GET_FUN(__glewProgramUniform4uiv) -#define glProgramUniformMatrix2dv GLEW_GET_FUN(__glewProgramUniformMatrix2dv) -#define glProgramUniformMatrix2fv GLEW_GET_FUN(__glewProgramUniformMatrix2fv) -#define glProgramUniformMatrix2x3dv GLEW_GET_FUN(__glewProgramUniformMatrix2x3dv) -#define glProgramUniformMatrix2x3fv GLEW_GET_FUN(__glewProgramUniformMatrix2x3fv) -#define glProgramUniformMatrix2x4dv GLEW_GET_FUN(__glewProgramUniformMatrix2x4dv) -#define glProgramUniformMatrix2x4fv GLEW_GET_FUN(__glewProgramUniformMatrix2x4fv) -#define glProgramUniformMatrix3dv GLEW_GET_FUN(__glewProgramUniformMatrix3dv) -#define glProgramUniformMatrix3fv GLEW_GET_FUN(__glewProgramUniformMatrix3fv) -#define glProgramUniformMatrix3x2dv GLEW_GET_FUN(__glewProgramUniformMatrix3x2dv) -#define glProgramUniformMatrix3x2fv GLEW_GET_FUN(__glewProgramUniformMatrix3x2fv) -#define glProgramUniformMatrix3x4dv GLEW_GET_FUN(__glewProgramUniformMatrix3x4dv) -#define glProgramUniformMatrix3x4fv GLEW_GET_FUN(__glewProgramUniformMatrix3x4fv) -#define glProgramUniformMatrix4dv GLEW_GET_FUN(__glewProgramUniformMatrix4dv) -#define glProgramUniformMatrix4fv GLEW_GET_FUN(__glewProgramUniformMatrix4fv) -#define glProgramUniformMatrix4x2dv GLEW_GET_FUN(__glewProgramUniformMatrix4x2dv) -#define glProgramUniformMatrix4x2fv GLEW_GET_FUN(__glewProgramUniformMatrix4x2fv) -#define glProgramUniformMatrix4x3dv GLEW_GET_FUN(__glewProgramUniformMatrix4x3dv) -#define glProgramUniformMatrix4x3fv GLEW_GET_FUN(__glewProgramUniformMatrix4x3fv) -#define glUseProgramStages GLEW_GET_FUN(__glewUseProgramStages) -#define glValidateProgramPipeline GLEW_GET_FUN(__glewValidateProgramPipeline) - -#define GLEW_ARB_separate_shader_objects GLEW_GET_VAR(__GLEW_ARB_separate_shader_objects) - -#endif /* GL_ARB_separate_shader_objects */ - -/* --------------------- GL_ARB_shader_atomic_counters --------------------- */ - -#ifndef GL_ARB_shader_atomic_counters -#define GL_ARB_shader_atomic_counters 1 - -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC - -typedef void (GLAPIENTRY * PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint* params); - -#define glGetActiveAtomicCounterBufferiv GLEW_GET_FUN(__glewGetActiveAtomicCounterBufferiv) - -#define GLEW_ARB_shader_atomic_counters GLEW_GET_VAR(__GLEW_ARB_shader_atomic_counters) - -#endif /* GL_ARB_shader_atomic_counters */ - -/* ----------------------- GL_ARB_shader_bit_encoding ---------------------- */ - -#ifndef GL_ARB_shader_bit_encoding -#define GL_ARB_shader_bit_encoding 1 - -#define GLEW_ARB_shader_bit_encoding GLEW_GET_VAR(__GLEW_ARB_shader_bit_encoding) - -#endif /* GL_ARB_shader_bit_encoding */ - -/* --------------------- GL_ARB_shader_draw_parameters --------------------- */ - -#ifndef GL_ARB_shader_draw_parameters -#define GL_ARB_shader_draw_parameters 1 - -#define GLEW_ARB_shader_draw_parameters GLEW_GET_VAR(__GLEW_ARB_shader_draw_parameters) - -#endif /* GL_ARB_shader_draw_parameters */ - -/* ------------------------ GL_ARB_shader_group_vote ----------------------- */ - -#ifndef GL_ARB_shader_group_vote -#define GL_ARB_shader_group_vote 1 - -#define GLEW_ARB_shader_group_vote GLEW_GET_VAR(__GLEW_ARB_shader_group_vote) - -#endif /* GL_ARB_shader_group_vote */ - -/* --------------------- GL_ARB_shader_image_load_store -------------------- */ - -#ifndef GL_ARB_shader_image_load_store -#define GL_ARB_shader_image_load_store 1 - -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_1D 0x904C -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_2D_RECT 0x904F -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_IMAGE_1D_ARRAY 0x9052 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 -#define GL_INT_IMAGE_1D 0x9057 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_2D_RECT 0x905A -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_INT_IMAGE_1D_ARRAY 0x905D -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C -#define GL_MAX_IMAGE_SAMPLES 0x906D -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GLAPIENTRY * PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); - -#define glBindImageTexture GLEW_GET_FUN(__glewBindImageTexture) -#define glMemoryBarrier GLEW_GET_FUN(__glewMemoryBarrier) - -#define GLEW_ARB_shader_image_load_store GLEW_GET_VAR(__GLEW_ARB_shader_image_load_store) - -#endif /* GL_ARB_shader_image_load_store */ - -/* ------------------------ GL_ARB_shader_image_size ----------------------- */ - -#ifndef GL_ARB_shader_image_size -#define GL_ARB_shader_image_size 1 - -#define GLEW_ARB_shader_image_size GLEW_GET_VAR(__GLEW_ARB_shader_image_size) - -#endif /* GL_ARB_shader_image_size */ - -/* ------------------------- GL_ARB_shader_objects ------------------------- */ - -#ifndef GL_ARB_shader_objects -#define GL_ARB_shader_objects 1 - -#define GL_PROGRAM_OBJECT_ARB 0x8B40 -#define GL_SHADER_OBJECT_ARB 0x8B48 -#define GL_OBJECT_TYPE_ARB 0x8B4E -#define GL_OBJECT_SUBTYPE_ARB 0x8B4F -#define GL_FLOAT_VEC2_ARB 0x8B50 -#define GL_FLOAT_VEC3_ARB 0x8B51 -#define GL_FLOAT_VEC4_ARB 0x8B52 -#define GL_INT_VEC2_ARB 0x8B53 -#define GL_INT_VEC3_ARB 0x8B54 -#define GL_INT_VEC4_ARB 0x8B55 -#define GL_BOOL_ARB 0x8B56 -#define GL_BOOL_VEC2_ARB 0x8B57 -#define GL_BOOL_VEC3_ARB 0x8B58 -#define GL_BOOL_VEC4_ARB 0x8B59 -#define GL_FLOAT_MAT2_ARB 0x8B5A -#define GL_FLOAT_MAT3_ARB 0x8B5B -#define GL_FLOAT_MAT4_ARB 0x8B5C -#define GL_SAMPLER_1D_ARB 0x8B5D -#define GL_SAMPLER_2D_ARB 0x8B5E -#define GL_SAMPLER_3D_ARB 0x8B5F -#define GL_SAMPLER_CUBE_ARB 0x8B60 -#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 -#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 -#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 -#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 -#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 - -typedef char GLcharARB; -typedef unsigned int GLhandleARB; - -typedef void (GLAPIENTRY * PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); -typedef void (GLAPIENTRY * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); -typedef GLhandleARB (GLAPIENTRY * PFNGLCREATEPROGRAMOBJECTARBPROC) (void); -typedef GLhandleARB (GLAPIENTRY * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); -typedef void (GLAPIENTRY * PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); -typedef void (GLAPIENTRY * PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); -typedef void (GLAPIENTRY * PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei* count, GLhandleARB *obj); -typedef GLhandleARB (GLAPIENTRY * PFNGLGETHANDLEARBPROC) (GLenum pname); -typedef void (GLAPIENTRY * PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *infoLog); -typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *source); -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint* params); -typedef void (GLAPIENTRY * PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (GLAPIENTRY * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint *length); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); -typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); - -#define glAttachObjectARB GLEW_GET_FUN(__glewAttachObjectARB) -#define glCompileShaderARB GLEW_GET_FUN(__glewCompileShaderARB) -#define glCreateProgramObjectARB GLEW_GET_FUN(__glewCreateProgramObjectARB) -#define glCreateShaderObjectARB GLEW_GET_FUN(__glewCreateShaderObjectARB) -#define glDeleteObjectARB GLEW_GET_FUN(__glewDeleteObjectARB) -#define glDetachObjectARB GLEW_GET_FUN(__glewDetachObjectARB) -#define glGetActiveUniformARB GLEW_GET_FUN(__glewGetActiveUniformARB) -#define glGetAttachedObjectsARB GLEW_GET_FUN(__glewGetAttachedObjectsARB) -#define glGetHandleARB GLEW_GET_FUN(__glewGetHandleARB) -#define glGetInfoLogARB GLEW_GET_FUN(__glewGetInfoLogARB) -#define glGetObjectParameterfvARB GLEW_GET_FUN(__glewGetObjectParameterfvARB) -#define glGetObjectParameterivARB GLEW_GET_FUN(__glewGetObjectParameterivARB) -#define glGetShaderSourceARB GLEW_GET_FUN(__glewGetShaderSourceARB) -#define glGetUniformLocationARB GLEW_GET_FUN(__glewGetUniformLocationARB) -#define glGetUniformfvARB GLEW_GET_FUN(__glewGetUniformfvARB) -#define glGetUniformivARB GLEW_GET_FUN(__glewGetUniformivARB) -#define glLinkProgramARB GLEW_GET_FUN(__glewLinkProgramARB) -#define glShaderSourceARB GLEW_GET_FUN(__glewShaderSourceARB) -#define glUniform1fARB GLEW_GET_FUN(__glewUniform1fARB) -#define glUniform1fvARB GLEW_GET_FUN(__glewUniform1fvARB) -#define glUniform1iARB GLEW_GET_FUN(__glewUniform1iARB) -#define glUniform1ivARB GLEW_GET_FUN(__glewUniform1ivARB) -#define glUniform2fARB GLEW_GET_FUN(__glewUniform2fARB) -#define glUniform2fvARB GLEW_GET_FUN(__glewUniform2fvARB) -#define glUniform2iARB GLEW_GET_FUN(__glewUniform2iARB) -#define glUniform2ivARB GLEW_GET_FUN(__glewUniform2ivARB) -#define glUniform3fARB GLEW_GET_FUN(__glewUniform3fARB) -#define glUniform3fvARB GLEW_GET_FUN(__glewUniform3fvARB) -#define glUniform3iARB GLEW_GET_FUN(__glewUniform3iARB) -#define glUniform3ivARB GLEW_GET_FUN(__glewUniform3ivARB) -#define glUniform4fARB GLEW_GET_FUN(__glewUniform4fARB) -#define glUniform4fvARB GLEW_GET_FUN(__glewUniform4fvARB) -#define glUniform4iARB GLEW_GET_FUN(__glewUniform4iARB) -#define glUniform4ivARB GLEW_GET_FUN(__glewUniform4ivARB) -#define glUniformMatrix2fvARB GLEW_GET_FUN(__glewUniformMatrix2fvARB) -#define glUniformMatrix3fvARB GLEW_GET_FUN(__glewUniformMatrix3fvARB) -#define glUniformMatrix4fvARB GLEW_GET_FUN(__glewUniformMatrix4fvARB) -#define glUseProgramObjectARB GLEW_GET_FUN(__glewUseProgramObjectARB) -#define glValidateProgramARB GLEW_GET_FUN(__glewValidateProgramARB) - -#define GLEW_ARB_shader_objects GLEW_GET_VAR(__GLEW_ARB_shader_objects) - -#endif /* GL_ARB_shader_objects */ - -/* ------------------------ GL_ARB_shader_precision ------------------------ */ - -#ifndef GL_ARB_shader_precision -#define GL_ARB_shader_precision 1 - -#define GLEW_ARB_shader_precision GLEW_GET_VAR(__GLEW_ARB_shader_precision) - -#endif /* GL_ARB_shader_precision */ - -/* ---------------------- GL_ARB_shader_stencil_export --------------------- */ - -#ifndef GL_ARB_shader_stencil_export -#define GL_ARB_shader_stencil_export 1 - -#define GLEW_ARB_shader_stencil_export GLEW_GET_VAR(__GLEW_ARB_shader_stencil_export) - -#endif /* GL_ARB_shader_stencil_export */ - -/* ------------------ GL_ARB_shader_storage_buffer_object ------------------ */ - -#ifndef GL_ARB_shader_storage_buffer_object -#define GL_ARB_shader_storage_buffer_object 1 - -#define GL_SHADER_STORAGE_BARRIER_BIT 0x2000 -#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 -#define GL_SHADER_STORAGE_BUFFER 0x90D2 -#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 -#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 -#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 -#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 -#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA -#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB -#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC -#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD -#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE -#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF - -typedef void (GLAPIENTRY * PFNGLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); - -#define glShaderStorageBlockBinding GLEW_GET_FUN(__glewShaderStorageBlockBinding) - -#define GLEW_ARB_shader_storage_buffer_object GLEW_GET_VAR(__GLEW_ARB_shader_storage_buffer_object) - -#endif /* GL_ARB_shader_storage_buffer_object */ - -/* ------------------------ GL_ARB_shader_subroutine ----------------------- */ - -#ifndef GL_ARB_shader_subroutine -#define GL_ARB_shader_subroutine 1 - -#define GL_ACTIVE_SUBROUTINES 0x8DE5 -#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 -#define GL_MAX_SUBROUTINES 0x8DE7 -#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 -#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 -#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A -#define GL_COMPATIBLE_SUBROUTINES 0x8E4B - -typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint* values); -typedef GLuint (GLAPIENTRY * PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar* name); -typedef GLint (GLAPIENTRY * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint* params); -typedef void (GLAPIENTRY * PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint* indices); - -#define glGetActiveSubroutineName GLEW_GET_FUN(__glewGetActiveSubroutineName) -#define glGetActiveSubroutineUniformName GLEW_GET_FUN(__glewGetActiveSubroutineUniformName) -#define glGetActiveSubroutineUniformiv GLEW_GET_FUN(__glewGetActiveSubroutineUniformiv) -#define glGetProgramStageiv GLEW_GET_FUN(__glewGetProgramStageiv) -#define glGetSubroutineIndex GLEW_GET_FUN(__glewGetSubroutineIndex) -#define glGetSubroutineUniformLocation GLEW_GET_FUN(__glewGetSubroutineUniformLocation) -#define glGetUniformSubroutineuiv GLEW_GET_FUN(__glewGetUniformSubroutineuiv) -#define glUniformSubroutinesuiv GLEW_GET_FUN(__glewUniformSubroutinesuiv) - -#define GLEW_ARB_shader_subroutine GLEW_GET_VAR(__GLEW_ARB_shader_subroutine) - -#endif /* GL_ARB_shader_subroutine */ - -/* ------------------ GL_ARB_shader_texture_image_samples ------------------ */ - -#ifndef GL_ARB_shader_texture_image_samples -#define GL_ARB_shader_texture_image_samples 1 - -#define GLEW_ARB_shader_texture_image_samples GLEW_GET_VAR(__GLEW_ARB_shader_texture_image_samples) - -#endif /* GL_ARB_shader_texture_image_samples */ - -/* ----------------------- GL_ARB_shader_texture_lod ----------------------- */ - -#ifndef GL_ARB_shader_texture_lod -#define GL_ARB_shader_texture_lod 1 - -#define GLEW_ARB_shader_texture_lod GLEW_GET_VAR(__GLEW_ARB_shader_texture_lod) - -#endif /* GL_ARB_shader_texture_lod */ - -/* ---------------------- GL_ARB_shading_language_100 ---------------------- */ - -#ifndef GL_ARB_shading_language_100 -#define GL_ARB_shading_language_100 1 - -#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C - -#define GLEW_ARB_shading_language_100 GLEW_GET_VAR(__GLEW_ARB_shading_language_100) - -#endif /* GL_ARB_shading_language_100 */ - -/* -------------------- GL_ARB_shading_language_420pack -------------------- */ - -#ifndef GL_ARB_shading_language_420pack -#define GL_ARB_shading_language_420pack 1 - -#define GLEW_ARB_shading_language_420pack GLEW_GET_VAR(__GLEW_ARB_shading_language_420pack) - -#endif /* GL_ARB_shading_language_420pack */ - -/* -------------------- GL_ARB_shading_language_include -------------------- */ - -#ifndef GL_ARB_shading_language_include -#define GL_ARB_shading_language_include 1 - -#define GL_SHADER_INCLUDE_ARB 0x8DAE -#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 -#define GL_NAMED_STRING_TYPE_ARB 0x8DEA - -typedef void (GLAPIENTRY * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length); -typedef void (GLAPIENTRY * PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name, GLsizei bufSize, GLint *stringlen, GLchar *string); -typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar* name, GLenum pname, GLint *params); -typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar* name, GLint stringlen, const GLchar *string); - -#define glCompileShaderIncludeARB GLEW_GET_FUN(__glewCompileShaderIncludeARB) -#define glDeleteNamedStringARB GLEW_GET_FUN(__glewDeleteNamedStringARB) -#define glGetNamedStringARB GLEW_GET_FUN(__glewGetNamedStringARB) -#define glGetNamedStringivARB GLEW_GET_FUN(__glewGetNamedStringivARB) -#define glIsNamedStringARB GLEW_GET_FUN(__glewIsNamedStringARB) -#define glNamedStringARB GLEW_GET_FUN(__glewNamedStringARB) - -#define GLEW_ARB_shading_language_include GLEW_GET_VAR(__GLEW_ARB_shading_language_include) - -#endif /* GL_ARB_shading_language_include */ - -/* -------------------- GL_ARB_shading_language_packing -------------------- */ - -#ifndef GL_ARB_shading_language_packing -#define GL_ARB_shading_language_packing 1 - -#define GLEW_ARB_shading_language_packing GLEW_GET_VAR(__GLEW_ARB_shading_language_packing) - -#endif /* GL_ARB_shading_language_packing */ - -/* ----------------------------- GL_ARB_shadow ----------------------------- */ - -#ifndef GL_ARB_shadow -#define GL_ARB_shadow 1 - -#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C -#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D -#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E - -#define GLEW_ARB_shadow GLEW_GET_VAR(__GLEW_ARB_shadow) - -#endif /* GL_ARB_shadow */ - -/* ------------------------- GL_ARB_shadow_ambient ------------------------- */ - -#ifndef GL_ARB_shadow_ambient -#define GL_ARB_shadow_ambient 1 - -#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF - -#define GLEW_ARB_shadow_ambient GLEW_GET_VAR(__GLEW_ARB_shadow_ambient) - -#endif /* GL_ARB_shadow_ambient */ - -/* -------------------------- GL_ARB_sparse_buffer ------------------------- */ - -#ifndef GL_ARB_sparse_buffer -#define GL_ARB_sparse_buffer 1 - -#define GL_SPARSE_STORAGE_BIT_ARB 0x0400 -#define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8 - -typedef void (GLAPIENTRY * PFNGLBUFFERPAGECOMMITMENTARBPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit); - -#define glBufferPageCommitmentARB GLEW_GET_FUN(__glewBufferPageCommitmentARB) - -#define GLEW_ARB_sparse_buffer GLEW_GET_VAR(__GLEW_ARB_sparse_buffer) - -#endif /* GL_ARB_sparse_buffer */ - -/* ------------------------- GL_ARB_sparse_texture ------------------------- */ - -#ifndef GL_ARB_sparse_texture -#define GL_ARB_sparse_texture 1 - -#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195 -#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196 -#define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197 -#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198 -#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199 -#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A -#define GL_TEXTURE_SPARSE_ARB 0x91A6 -#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7 -#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8 -#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9 -#define GL_NUM_SPARSE_LEVELS_ARB 0x91AA - -typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); - -#define glTexPageCommitmentARB GLEW_GET_FUN(__glewTexPageCommitmentARB) -#define glTexturePageCommitmentEXT GLEW_GET_FUN(__glewTexturePageCommitmentEXT) - -#define GLEW_ARB_sparse_texture GLEW_GET_VAR(__GLEW_ARB_sparse_texture) - -#endif /* GL_ARB_sparse_texture */ - -/* ------------------------ GL_ARB_stencil_texturing ----------------------- */ - -#ifndef GL_ARB_stencil_texturing -#define GL_ARB_stencil_texturing 1 - -#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA - -#define GLEW_ARB_stencil_texturing GLEW_GET_VAR(__GLEW_ARB_stencil_texturing) - -#endif /* GL_ARB_stencil_texturing */ - -/* ------------------------------ GL_ARB_sync ------------------------------ */ - -#ifndef GL_ARB_sync -#define GL_ARB_sync 1 - -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF - -typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); -typedef void (GLAPIENTRY * PFNGLDELETESYNCPROC) (GLsync GLsync); -typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCPROC) (GLenum condition,GLbitfield flags); -typedef void (GLAPIENTRY * PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64* params); -typedef void (GLAPIENTRY * PFNGLGETSYNCIVPROC) (GLsync GLsync,GLenum pname,GLsizei bufSize,GLsizei* length, GLint *values); -typedef GLboolean (GLAPIENTRY * PFNGLISSYNCPROC) (GLsync GLsync); -typedef void (GLAPIENTRY * PFNGLWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); - -#define glClientWaitSync GLEW_GET_FUN(__glewClientWaitSync) -#define glDeleteSync GLEW_GET_FUN(__glewDeleteSync) -#define glFenceSync GLEW_GET_FUN(__glewFenceSync) -#define glGetInteger64v GLEW_GET_FUN(__glewGetInteger64v) -#define glGetSynciv GLEW_GET_FUN(__glewGetSynciv) -#define glIsSync GLEW_GET_FUN(__glewIsSync) -#define glWaitSync GLEW_GET_FUN(__glewWaitSync) - -#define GLEW_ARB_sync GLEW_GET_VAR(__GLEW_ARB_sync) - -#endif /* GL_ARB_sync */ - -/* ----------------------- GL_ARB_tessellation_shader ---------------------- */ - -#ifndef GL_ARB_tessellation_shader -#define GL_ARB_tessellation_shader 1 - -#define GL_PATCHES 0xE -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_PATCH_VERTICES 0x8E72 -#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 -#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -#define GL_ISOLINES 0x8E7A -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRACTIONAL_EVEN 0x8E7C -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A - -typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat* values); -typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); - -#define glPatchParameterfv GLEW_GET_FUN(__glewPatchParameterfv) -#define glPatchParameteri GLEW_GET_FUN(__glewPatchParameteri) - -#define GLEW_ARB_tessellation_shader GLEW_GET_VAR(__GLEW_ARB_tessellation_shader) - -#endif /* GL_ARB_tessellation_shader */ - -/* ------------------------- GL_ARB_texture_barrier ------------------------ */ - -#ifndef GL_ARB_texture_barrier -#define GL_ARB_texture_barrier 1 - -typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERPROC) (void); - -#define glTextureBarrier GLEW_GET_FUN(__glewTextureBarrier) - -#define GLEW_ARB_texture_barrier GLEW_GET_VAR(__GLEW_ARB_texture_barrier) - -#endif /* GL_ARB_texture_barrier */ - -/* ---------------------- GL_ARB_texture_border_clamp ---------------------- */ - -#ifndef GL_ARB_texture_border_clamp -#define GL_ARB_texture_border_clamp 1 - -#define GL_CLAMP_TO_BORDER_ARB 0x812D - -#define GLEW_ARB_texture_border_clamp GLEW_GET_VAR(__GLEW_ARB_texture_border_clamp) - -#endif /* GL_ARB_texture_border_clamp */ - -/* ---------------------- GL_ARB_texture_buffer_object --------------------- */ - -#ifndef GL_ARB_texture_buffer_object -#define GL_ARB_texture_buffer_object 1 - -#define GL_TEXTURE_BUFFER_ARB 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E - -typedef void (GLAPIENTRY * PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); - -#define glTexBufferARB GLEW_GET_FUN(__glewTexBufferARB) - -#define GLEW_ARB_texture_buffer_object GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object) - -#endif /* GL_ARB_texture_buffer_object */ - -/* ------------------- GL_ARB_texture_buffer_object_rgb32 ------------------ */ - -#ifndef GL_ARB_texture_buffer_object_rgb32 -#define GL_ARB_texture_buffer_object_rgb32 1 - -#define GLEW_ARB_texture_buffer_object_rgb32 GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object_rgb32) - -#endif /* GL_ARB_texture_buffer_object_rgb32 */ - -/* ---------------------- GL_ARB_texture_buffer_range ---------------------- */ - -#ifndef GL_ARB_texture_buffer_range -#define GL_ARB_texture_buffer_range 1 - -#define GL_TEXTURE_BUFFER_OFFSET 0x919D -#define GL_TEXTURE_BUFFER_SIZE 0x919E -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F - -typedef void (GLAPIENTRY * PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERRANGEEXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); - -#define glTexBufferRange GLEW_GET_FUN(__glewTexBufferRange) -#define glTextureBufferRangeEXT GLEW_GET_FUN(__glewTextureBufferRangeEXT) - -#define GLEW_ARB_texture_buffer_range GLEW_GET_VAR(__GLEW_ARB_texture_buffer_range) - -#endif /* GL_ARB_texture_buffer_range */ - -/* ----------------------- GL_ARB_texture_compression ---------------------- */ - -#ifndef GL_ARB_texture_compression -#define GL_ARB_texture_compression 1 - -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 - -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, void *img); - -#define glCompressedTexImage1DARB GLEW_GET_FUN(__glewCompressedTexImage1DARB) -#define glCompressedTexImage2DARB GLEW_GET_FUN(__glewCompressedTexImage2DARB) -#define glCompressedTexImage3DARB GLEW_GET_FUN(__glewCompressedTexImage3DARB) -#define glCompressedTexSubImage1DARB GLEW_GET_FUN(__glewCompressedTexSubImage1DARB) -#define glCompressedTexSubImage2DARB GLEW_GET_FUN(__glewCompressedTexSubImage2DARB) -#define glCompressedTexSubImage3DARB GLEW_GET_FUN(__glewCompressedTexSubImage3DARB) -#define glGetCompressedTexImageARB GLEW_GET_FUN(__glewGetCompressedTexImageARB) - -#define GLEW_ARB_texture_compression GLEW_GET_VAR(__GLEW_ARB_texture_compression) - -#endif /* GL_ARB_texture_compression */ - -/* -------------------- GL_ARB_texture_compression_bptc -------------------- */ - -#ifndef GL_ARB_texture_compression_bptc -#define GL_ARB_texture_compression_bptc 1 - -#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F - -#define GLEW_ARB_texture_compression_bptc GLEW_GET_VAR(__GLEW_ARB_texture_compression_bptc) - -#endif /* GL_ARB_texture_compression_bptc */ - -/* -------------------- GL_ARB_texture_compression_rgtc -------------------- */ - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_ARB_texture_compression_rgtc 1 - -#define GL_COMPRESSED_RED_RGTC1 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC -#define GL_COMPRESSED_RG_RGTC2 0x8DBD -#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE - -#define GLEW_ARB_texture_compression_rgtc GLEW_GET_VAR(__GLEW_ARB_texture_compression_rgtc) - -#endif /* GL_ARB_texture_compression_rgtc */ - -/* ------------------------ GL_ARB_texture_cube_map ------------------------ */ - -#ifndef GL_ARB_texture_cube_map -#define GL_ARB_texture_cube_map 1 - -#define GL_NORMAL_MAP_ARB 0x8511 -#define GL_REFLECTION_MAP_ARB 0x8512 -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C - -#define GLEW_ARB_texture_cube_map GLEW_GET_VAR(__GLEW_ARB_texture_cube_map) - -#endif /* GL_ARB_texture_cube_map */ - -/* --------------------- GL_ARB_texture_cube_map_array --------------------- */ - -#ifndef GL_ARB_texture_cube_map_array -#define GL_ARB_texture_cube_map_array 1 - -#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F - -#define GLEW_ARB_texture_cube_map_array GLEW_GET_VAR(__GLEW_ARB_texture_cube_map_array) - -#endif /* GL_ARB_texture_cube_map_array */ - -/* ------------------------- GL_ARB_texture_env_add ------------------------ */ - -#ifndef GL_ARB_texture_env_add -#define GL_ARB_texture_env_add 1 - -#define GLEW_ARB_texture_env_add GLEW_GET_VAR(__GLEW_ARB_texture_env_add) - -#endif /* GL_ARB_texture_env_add */ - -/* ----------------------- GL_ARB_texture_env_combine ---------------------- */ - -#ifndef GL_ARB_texture_env_combine -#define GL_ARB_texture_env_combine 1 - -#define GL_SUBTRACT_ARB 0x84E7 -#define GL_COMBINE_ARB 0x8570 -#define GL_COMBINE_RGB_ARB 0x8571 -#define GL_COMBINE_ALPHA_ARB 0x8572 -#define GL_RGB_SCALE_ARB 0x8573 -#define GL_ADD_SIGNED_ARB 0x8574 -#define GL_INTERPOLATE_ARB 0x8575 -#define GL_CONSTANT_ARB 0x8576 -#define GL_PRIMARY_COLOR_ARB 0x8577 -#define GL_PREVIOUS_ARB 0x8578 -#define GL_SOURCE0_RGB_ARB 0x8580 -#define GL_SOURCE1_RGB_ARB 0x8581 -#define GL_SOURCE2_RGB_ARB 0x8582 -#define GL_SOURCE0_ALPHA_ARB 0x8588 -#define GL_SOURCE1_ALPHA_ARB 0x8589 -#define GL_SOURCE2_ALPHA_ARB 0x858A -#define GL_OPERAND0_RGB_ARB 0x8590 -#define GL_OPERAND1_RGB_ARB 0x8591 -#define GL_OPERAND2_RGB_ARB 0x8592 -#define GL_OPERAND0_ALPHA_ARB 0x8598 -#define GL_OPERAND1_ALPHA_ARB 0x8599 -#define GL_OPERAND2_ALPHA_ARB 0x859A - -#define GLEW_ARB_texture_env_combine GLEW_GET_VAR(__GLEW_ARB_texture_env_combine) - -#endif /* GL_ARB_texture_env_combine */ - -/* ---------------------- GL_ARB_texture_env_crossbar ---------------------- */ - -#ifndef GL_ARB_texture_env_crossbar -#define GL_ARB_texture_env_crossbar 1 - -#define GLEW_ARB_texture_env_crossbar GLEW_GET_VAR(__GLEW_ARB_texture_env_crossbar) - -#endif /* GL_ARB_texture_env_crossbar */ - -/* ------------------------ GL_ARB_texture_env_dot3 ------------------------ */ - -#ifndef GL_ARB_texture_env_dot3 -#define GL_ARB_texture_env_dot3 1 - -#define GL_DOT3_RGB_ARB 0x86AE -#define GL_DOT3_RGBA_ARB 0x86AF - -#define GLEW_ARB_texture_env_dot3 GLEW_GET_VAR(__GLEW_ARB_texture_env_dot3) - -#endif /* GL_ARB_texture_env_dot3 */ - -/* -------------------------- GL_ARB_texture_float ------------------------- */ - -#ifndef GL_ARB_texture_float -#define GL_ARB_texture_float 1 - -#define GL_RGBA32F_ARB 0x8814 -#define GL_RGB32F_ARB 0x8815 -#define GL_ALPHA32F_ARB 0x8816 -#define GL_INTENSITY32F_ARB 0x8817 -#define GL_LUMINANCE32F_ARB 0x8818 -#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 -#define GL_RGBA16F_ARB 0x881A -#define GL_RGB16F_ARB 0x881B -#define GL_ALPHA16F_ARB 0x881C -#define GL_INTENSITY16F_ARB 0x881D -#define GL_LUMINANCE16F_ARB 0x881E -#define GL_LUMINANCE_ALPHA16F_ARB 0x881F -#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 -#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 -#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 -#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 - -#define GLEW_ARB_texture_float GLEW_GET_VAR(__GLEW_ARB_texture_float) - -#endif /* GL_ARB_texture_float */ - -/* ------------------------- GL_ARB_texture_gather ------------------------- */ - -#ifndef GL_ARB_texture_gather -#define GL_ARB_texture_gather 1 - -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F -#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F - -#define GLEW_ARB_texture_gather GLEW_GET_VAR(__GLEW_ARB_texture_gather) - -#endif /* GL_ARB_texture_gather */ - -/* ------------------ GL_ARB_texture_mirror_clamp_to_edge ------------------ */ - -#ifndef GL_ARB_texture_mirror_clamp_to_edge -#define GL_ARB_texture_mirror_clamp_to_edge 1 - -#define GL_MIRROR_CLAMP_TO_EDGE 0x8743 - -#define GLEW_ARB_texture_mirror_clamp_to_edge GLEW_GET_VAR(__GLEW_ARB_texture_mirror_clamp_to_edge) - -#endif /* GL_ARB_texture_mirror_clamp_to_edge */ - -/* --------------------- GL_ARB_texture_mirrored_repeat -------------------- */ - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_ARB_texture_mirrored_repeat 1 - -#define GL_MIRRORED_REPEAT_ARB 0x8370 - -#define GLEW_ARB_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_ARB_texture_mirrored_repeat) - -#endif /* GL_ARB_texture_mirrored_repeat */ - -/* ----------------------- GL_ARB_texture_multisample ---------------------- */ - -#ifndef GL_ARB_texture_multisample -#define GL_ARB_texture_multisample 1 - -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 - -typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val); -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); - -#define glGetMultisamplefv GLEW_GET_FUN(__glewGetMultisamplefv) -#define glSampleMaski GLEW_GET_FUN(__glewSampleMaski) -#define glTexImage2DMultisample GLEW_GET_FUN(__glewTexImage2DMultisample) -#define glTexImage3DMultisample GLEW_GET_FUN(__glewTexImage3DMultisample) - -#define GLEW_ARB_texture_multisample GLEW_GET_VAR(__GLEW_ARB_texture_multisample) - -#endif /* GL_ARB_texture_multisample */ - -/* -------------------- GL_ARB_texture_non_power_of_two -------------------- */ - -#ifndef GL_ARB_texture_non_power_of_two -#define GL_ARB_texture_non_power_of_two 1 - -#define GLEW_ARB_texture_non_power_of_two GLEW_GET_VAR(__GLEW_ARB_texture_non_power_of_two) - -#endif /* GL_ARB_texture_non_power_of_two */ - -/* ---------------------- GL_ARB_texture_query_levels ---------------------- */ - -#ifndef GL_ARB_texture_query_levels -#define GL_ARB_texture_query_levels 1 - -#define GLEW_ARB_texture_query_levels GLEW_GET_VAR(__GLEW_ARB_texture_query_levels) - -#endif /* GL_ARB_texture_query_levels */ - -/* ------------------------ GL_ARB_texture_query_lod ----------------------- */ - -#ifndef GL_ARB_texture_query_lod -#define GL_ARB_texture_query_lod 1 - -#define GLEW_ARB_texture_query_lod GLEW_GET_VAR(__GLEW_ARB_texture_query_lod) - -#endif /* GL_ARB_texture_query_lod */ - -/* ------------------------ GL_ARB_texture_rectangle ----------------------- */ - -#ifndef GL_ARB_texture_rectangle -#define GL_ARB_texture_rectangle 1 - -#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 - -#define GLEW_ARB_texture_rectangle GLEW_GET_VAR(__GLEW_ARB_texture_rectangle) - -#endif /* GL_ARB_texture_rectangle */ - -/* --------------------------- GL_ARB_texture_rg --------------------------- */ - -#ifndef GL_ARB_texture_rg -#define GL_ARB_texture_rg 1 - -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_R16 0x822A -#define GL_RG8 0x822B -#define GL_RG16 0x822C -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C - -#define GLEW_ARB_texture_rg GLEW_GET_VAR(__GLEW_ARB_texture_rg) - -#endif /* GL_ARB_texture_rg */ - -/* ----------------------- GL_ARB_texture_rgb10_a2ui ----------------------- */ - -#ifndef GL_ARB_texture_rgb10_a2ui -#define GL_ARB_texture_rgb10_a2ui 1 - -#define GL_RGB10_A2UI 0x906F - -#define GLEW_ARB_texture_rgb10_a2ui GLEW_GET_VAR(__GLEW_ARB_texture_rgb10_a2ui) - -#endif /* GL_ARB_texture_rgb10_a2ui */ - -/* ------------------------ GL_ARB_texture_stencil8 ------------------------ */ - -#ifndef GL_ARB_texture_stencil8 -#define GL_ARB_texture_stencil8 1 - -#define GL_STENCIL_INDEX 0x1901 -#define GL_STENCIL_INDEX8 0x8D48 - -#define GLEW_ARB_texture_stencil8 GLEW_GET_VAR(__GLEW_ARB_texture_stencil8) - -#endif /* GL_ARB_texture_stencil8 */ - -/* ------------------------- GL_ARB_texture_storage ------------------------ */ - -#ifndef GL_ARB_texture_storage -#define GL_ARB_texture_storage 1 - -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F - -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); - -#define glTexStorage1D GLEW_GET_FUN(__glewTexStorage1D) -#define glTexStorage2D GLEW_GET_FUN(__glewTexStorage2D) -#define glTexStorage3D GLEW_GET_FUN(__glewTexStorage3D) -#define glTextureStorage1DEXT GLEW_GET_FUN(__glewTextureStorage1DEXT) -#define glTextureStorage2DEXT GLEW_GET_FUN(__glewTextureStorage2DEXT) -#define glTextureStorage3DEXT GLEW_GET_FUN(__glewTextureStorage3DEXT) - -#define GLEW_ARB_texture_storage GLEW_GET_VAR(__GLEW_ARB_texture_storage) - -#endif /* GL_ARB_texture_storage */ - -/* ------------------- GL_ARB_texture_storage_multisample ------------------ */ - -#ifndef GL_ARB_texture_storage_multisample -#define GL_ARB_texture_storage_multisample 1 - -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); - -#define glTexStorage2DMultisample GLEW_GET_FUN(__glewTexStorage2DMultisample) -#define glTexStorage3DMultisample GLEW_GET_FUN(__glewTexStorage3DMultisample) -#define glTextureStorage2DMultisampleEXT GLEW_GET_FUN(__glewTextureStorage2DMultisampleEXT) -#define glTextureStorage3DMultisampleEXT GLEW_GET_FUN(__glewTextureStorage3DMultisampleEXT) - -#define GLEW_ARB_texture_storage_multisample GLEW_GET_VAR(__GLEW_ARB_texture_storage_multisample) - -#endif /* GL_ARB_texture_storage_multisample */ - -/* ------------------------- GL_ARB_texture_swizzle ------------------------ */ - -#ifndef GL_ARB_texture_swizzle -#define GL_ARB_texture_swizzle 1 - -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 - -#define GLEW_ARB_texture_swizzle GLEW_GET_VAR(__GLEW_ARB_texture_swizzle) - -#endif /* GL_ARB_texture_swizzle */ - -/* -------------------------- GL_ARB_texture_view -------------------------- */ - -#ifndef GL_ARB_texture_view -#define GL_ARB_texture_view 1 - -#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB -#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC -#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD -#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF - -typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); - -#define glTextureView GLEW_GET_FUN(__glewTextureView) - -#define GLEW_ARB_texture_view GLEW_GET_VAR(__GLEW_ARB_texture_view) - -#endif /* GL_ARB_texture_view */ - -/* --------------------------- GL_ARB_timer_query -------------------------- */ - -#ifndef GL_ARB_timer_query -#define GL_ARB_timer_query 1 - -#define GL_TIME_ELAPSED 0x88BF -#define GL_TIMESTAMP 0x8E28 - -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64* params); -typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); - -#define glGetQueryObjecti64v GLEW_GET_FUN(__glewGetQueryObjecti64v) -#define glGetQueryObjectui64v GLEW_GET_FUN(__glewGetQueryObjectui64v) -#define glQueryCounter GLEW_GET_FUN(__glewQueryCounter) - -#define GLEW_ARB_timer_query GLEW_GET_VAR(__GLEW_ARB_timer_query) - -#endif /* GL_ARB_timer_query */ - -/* ----------------------- GL_ARB_transform_feedback2 ---------------------- */ - -#ifndef GL_ARB_transform_feedback2 -#define GL_ARB_transform_feedback2 1 - -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 - -typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); -typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids); -typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); - -#define glBindTransformFeedback GLEW_GET_FUN(__glewBindTransformFeedback) -#define glDeleteTransformFeedbacks GLEW_GET_FUN(__glewDeleteTransformFeedbacks) -#define glDrawTransformFeedback GLEW_GET_FUN(__glewDrawTransformFeedback) -#define glGenTransformFeedbacks GLEW_GET_FUN(__glewGenTransformFeedbacks) -#define glIsTransformFeedback GLEW_GET_FUN(__glewIsTransformFeedback) -#define glPauseTransformFeedback GLEW_GET_FUN(__glewPauseTransformFeedback) -#define glResumeTransformFeedback GLEW_GET_FUN(__glewResumeTransformFeedback) - -#define GLEW_ARB_transform_feedback2 GLEW_GET_VAR(__GLEW_ARB_transform_feedback2) - -#endif /* GL_ARB_transform_feedback2 */ - -/* ----------------------- GL_ARB_transform_feedback3 ---------------------- */ - -#ifndef GL_ARB_transform_feedback3 -#define GL_ARB_transform_feedback3 1 - -#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 -#define GL_MAX_VERTEX_STREAMS 0x8E71 - -typedef void (GLAPIENTRY * PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); -typedef void (GLAPIENTRY * PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); - -#define glBeginQueryIndexed GLEW_GET_FUN(__glewBeginQueryIndexed) -#define glDrawTransformFeedbackStream GLEW_GET_FUN(__glewDrawTransformFeedbackStream) -#define glEndQueryIndexed GLEW_GET_FUN(__glewEndQueryIndexed) -#define glGetQueryIndexediv GLEW_GET_FUN(__glewGetQueryIndexediv) - -#define GLEW_ARB_transform_feedback3 GLEW_GET_VAR(__GLEW_ARB_transform_feedback3) - -#endif /* GL_ARB_transform_feedback3 */ - -/* ------------------ GL_ARB_transform_feedback_instanced ------------------ */ - -#ifndef GL_ARB_transform_feedback_instanced -#define GL_ARB_transform_feedback_instanced 1 - -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei primcount); - -#define glDrawTransformFeedbackInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackInstanced) -#define glDrawTransformFeedbackStreamInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackStreamInstanced) - -#define GLEW_ARB_transform_feedback_instanced GLEW_GET_VAR(__GLEW_ARB_transform_feedback_instanced) - -#endif /* GL_ARB_transform_feedback_instanced */ - -/* ---------------- GL_ARB_transform_feedback_overflow_query --------------- */ - -#ifndef GL_ARB_transform_feedback_overflow_query -#define GL_ARB_transform_feedback_overflow_query 1 - -#define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC -#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED - -#define GLEW_ARB_transform_feedback_overflow_query GLEW_GET_VAR(__GLEW_ARB_transform_feedback_overflow_query) - -#endif /* GL_ARB_transform_feedback_overflow_query */ - -/* ------------------------ GL_ARB_transpose_matrix ------------------------ */ - -#ifndef GL_ARB_transpose_matrix -#define GL_ARB_transpose_matrix 1 - -#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 - -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); - -#define glLoadTransposeMatrixdARB GLEW_GET_FUN(__glewLoadTransposeMatrixdARB) -#define glLoadTransposeMatrixfARB GLEW_GET_FUN(__glewLoadTransposeMatrixfARB) -#define glMultTransposeMatrixdARB GLEW_GET_FUN(__glewMultTransposeMatrixdARB) -#define glMultTransposeMatrixfARB GLEW_GET_FUN(__glewMultTransposeMatrixfARB) - -#define GLEW_ARB_transpose_matrix GLEW_GET_VAR(__GLEW_ARB_transpose_matrix) - -#endif /* GL_ARB_transpose_matrix */ - -/* ---------------------- GL_ARB_uniform_buffer_object --------------------- */ - -#ifndef GL_ARB_uniform_buffer_object -#define GL_ARB_uniform_buffer_object 1 - -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data); -typedef GLuint (GLAPIENTRY * PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar* uniformBlockName); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* const * uniformNames, GLuint* uniformIndices); -typedef void (GLAPIENTRY * PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); - -#define glBindBufferBase GLEW_GET_FUN(__glewBindBufferBase) -#define glBindBufferRange GLEW_GET_FUN(__glewBindBufferRange) -#define glGetActiveUniformBlockName GLEW_GET_FUN(__glewGetActiveUniformBlockName) -#define glGetActiveUniformBlockiv GLEW_GET_FUN(__glewGetActiveUniformBlockiv) -#define glGetActiveUniformName GLEW_GET_FUN(__glewGetActiveUniformName) -#define glGetActiveUniformsiv GLEW_GET_FUN(__glewGetActiveUniformsiv) -#define glGetIntegeri_v GLEW_GET_FUN(__glewGetIntegeri_v) -#define glGetUniformBlockIndex GLEW_GET_FUN(__glewGetUniformBlockIndex) -#define glGetUniformIndices GLEW_GET_FUN(__glewGetUniformIndices) -#define glUniformBlockBinding GLEW_GET_FUN(__glewUniformBlockBinding) - -#define GLEW_ARB_uniform_buffer_object GLEW_GET_VAR(__GLEW_ARB_uniform_buffer_object) - -#endif /* GL_ARB_uniform_buffer_object */ - -/* ------------------------ GL_ARB_vertex_array_bgra ----------------------- */ - -#ifndef GL_ARB_vertex_array_bgra -#define GL_ARB_vertex_array_bgra 1 - -#define GL_BGRA 0x80E1 - -#define GLEW_ARB_vertex_array_bgra GLEW_GET_VAR(__GLEW_ARB_vertex_array_bgra) - -#endif /* GL_ARB_vertex_array_bgra */ - -/* ----------------------- GL_ARB_vertex_array_object ---------------------- */ - -#ifndef GL_ARB_vertex_array_object -#define GL_ARB_vertex_array_object 1 - -#define GL_VERTEX_ARRAY_BINDING 0x85B5 - -typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays); -typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays); -typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYPROC) (GLuint array); - -#define glBindVertexArray GLEW_GET_FUN(__glewBindVertexArray) -#define glDeleteVertexArrays GLEW_GET_FUN(__glewDeleteVertexArrays) -#define glGenVertexArrays GLEW_GET_FUN(__glewGenVertexArrays) -#define glIsVertexArray GLEW_GET_FUN(__glewIsVertexArray) - -#define GLEW_ARB_vertex_array_object GLEW_GET_VAR(__GLEW_ARB_vertex_array_object) - -#endif /* GL_ARB_vertex_array_object */ - -/* ----------------------- GL_ARB_vertex_attrib_64bit ---------------------- */ - -#ifndef GL_ARB_vertex_attrib_64bit -#define GL_ARB_vertex_attrib_64bit 1 - -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); - -#define glGetVertexAttribLdv GLEW_GET_FUN(__glewGetVertexAttribLdv) -#define glVertexAttribL1d GLEW_GET_FUN(__glewVertexAttribL1d) -#define glVertexAttribL1dv GLEW_GET_FUN(__glewVertexAttribL1dv) -#define glVertexAttribL2d GLEW_GET_FUN(__glewVertexAttribL2d) -#define glVertexAttribL2dv GLEW_GET_FUN(__glewVertexAttribL2dv) -#define glVertexAttribL3d GLEW_GET_FUN(__glewVertexAttribL3d) -#define glVertexAttribL3dv GLEW_GET_FUN(__glewVertexAttribL3dv) -#define glVertexAttribL4d GLEW_GET_FUN(__glewVertexAttribL4d) -#define glVertexAttribL4dv GLEW_GET_FUN(__glewVertexAttribL4dv) -#define glVertexAttribLPointer GLEW_GET_FUN(__glewVertexAttribLPointer) - -#define GLEW_ARB_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_64bit) - -#endif /* GL_ARB_vertex_attrib_64bit */ - -/* ---------------------- GL_ARB_vertex_attrib_binding --------------------- */ - -#ifndef GL_ARB_vertex_attrib_binding -#define GL_ARB_vertex_attrib_binding 1 - -#define GL_VERTEX_ATTRIB_BINDING 0x82D4 -#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 -#define GL_VERTEX_BINDING_DIVISOR 0x82D6 -#define GL_VERTEX_BINDING_OFFSET 0x82D7 -#define GL_VERTEX_BINDING_STRIDE 0x82D8 -#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_VERTEX_BINDING_BUFFER 0x8F4F - -typedef void (GLAPIENTRY * PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GLAPIENTRY * PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); - -#define glBindVertexBuffer GLEW_GET_FUN(__glewBindVertexBuffer) -#define glVertexArrayBindVertexBufferEXT GLEW_GET_FUN(__glewVertexArrayBindVertexBufferEXT) -#define glVertexArrayVertexAttribBindingEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribBindingEXT) -#define glVertexArrayVertexAttribFormatEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribFormatEXT) -#define glVertexArrayVertexAttribIFormatEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIFormatEXT) -#define glVertexArrayVertexAttribLFormatEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLFormatEXT) -#define glVertexArrayVertexBindingDivisorEXT GLEW_GET_FUN(__glewVertexArrayVertexBindingDivisorEXT) -#define glVertexAttribBinding GLEW_GET_FUN(__glewVertexAttribBinding) -#define glVertexAttribFormat GLEW_GET_FUN(__glewVertexAttribFormat) -#define glVertexAttribIFormat GLEW_GET_FUN(__glewVertexAttribIFormat) -#define glVertexAttribLFormat GLEW_GET_FUN(__glewVertexAttribLFormat) -#define glVertexBindingDivisor GLEW_GET_FUN(__glewVertexBindingDivisor) - -#define GLEW_ARB_vertex_attrib_binding GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_binding) - -#endif /* GL_ARB_vertex_attrib_binding */ - -/* -------------------------- GL_ARB_vertex_blend -------------------------- */ - -#ifndef GL_ARB_vertex_blend -#define GL_ARB_vertex_blend 1 - -#define GL_MODELVIEW0_ARB 0x1700 -#define GL_MODELVIEW1_ARB 0x850A -#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 -#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 -#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 -#define GL_VERTEX_BLEND_ARB 0x86A7 -#define GL_CURRENT_WEIGHT_ARB 0x86A8 -#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 -#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA -#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB -#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC -#define GL_WEIGHT_ARRAY_ARB 0x86AD -#define GL_MODELVIEW2_ARB 0x8722 -#define GL_MODELVIEW3_ARB 0x8723 -#define GL_MODELVIEW4_ARB 0x8724 -#define GL_MODELVIEW5_ARB 0x8725 -#define GL_MODELVIEW6_ARB 0x8726 -#define GL_MODELVIEW7_ARB 0x8727 -#define GL_MODELVIEW8_ARB 0x8728 -#define GL_MODELVIEW9_ARB 0x8729 -#define GL_MODELVIEW10_ARB 0x872A -#define GL_MODELVIEW11_ARB 0x872B -#define GL_MODELVIEW12_ARB 0x872C -#define GL_MODELVIEW13_ARB 0x872D -#define GL_MODELVIEW14_ARB 0x872E -#define GL_MODELVIEW15_ARB 0x872F -#define GL_MODELVIEW16_ARB 0x8730 -#define GL_MODELVIEW17_ARB 0x8731 -#define GL_MODELVIEW18_ARB 0x8732 -#define GL_MODELVIEW19_ARB 0x8733 -#define GL_MODELVIEW20_ARB 0x8734 -#define GL_MODELVIEW21_ARB 0x8735 -#define GL_MODELVIEW22_ARB 0x8736 -#define GL_MODELVIEW23_ARB 0x8737 -#define GL_MODELVIEW24_ARB 0x8738 -#define GL_MODELVIEW25_ARB 0x8739 -#define GL_MODELVIEW26_ARB 0x873A -#define GL_MODELVIEW27_ARB 0x873B -#define GL_MODELVIEW28_ARB 0x873C -#define GL_MODELVIEW29_ARB 0x873D -#define GL_MODELVIEW30_ARB 0x873E -#define GL_MODELVIEW31_ARB 0x873F - -typedef void (GLAPIENTRY * PFNGLVERTEXBLENDARBPROC) (GLint count); -typedef void (GLAPIENTRY * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, void *pointer); -typedef void (GLAPIENTRY * PFNGLWEIGHTBVARBPROC) (GLint size, GLbyte *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTDVARBPROC) (GLint size, GLdouble *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTFVARBPROC) (GLint size, GLfloat *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTIVARBPROC) (GLint size, GLint *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTSVARBPROC) (GLint size, GLshort *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTUBVARBPROC) (GLint size, GLubyte *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTUIVARBPROC) (GLint size, GLuint *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTUSVARBPROC) (GLint size, GLushort *weights); - -#define glVertexBlendARB GLEW_GET_FUN(__glewVertexBlendARB) -#define glWeightPointerARB GLEW_GET_FUN(__glewWeightPointerARB) -#define glWeightbvARB GLEW_GET_FUN(__glewWeightbvARB) -#define glWeightdvARB GLEW_GET_FUN(__glewWeightdvARB) -#define glWeightfvARB GLEW_GET_FUN(__glewWeightfvARB) -#define glWeightivARB GLEW_GET_FUN(__glewWeightivARB) -#define glWeightsvARB GLEW_GET_FUN(__glewWeightsvARB) -#define glWeightubvARB GLEW_GET_FUN(__glewWeightubvARB) -#define glWeightuivARB GLEW_GET_FUN(__glewWeightuivARB) -#define glWeightusvARB GLEW_GET_FUN(__glewWeightusvARB) - -#define GLEW_ARB_vertex_blend GLEW_GET_VAR(__GLEW_ARB_vertex_blend) - -#endif /* GL_ARB_vertex_blend */ - -/* ---------------------- GL_ARB_vertex_buffer_object ---------------------- */ - -#ifndef GL_ARB_vertex_buffer_object -#define GL_ARB_vertex_buffer_object 1 - -#define GL_BUFFER_SIZE_ARB 0x8764 -#define GL_BUFFER_USAGE_ARB 0x8765 -#define GL_ARRAY_BUFFER_ARB 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define GL_READ_ONLY_ARB 0x88B8 -#define GL_WRITE_ONLY_ARB 0x88B9 -#define GL_READ_WRITE_ARB 0x88BA -#define GL_BUFFER_ACCESS_ARB 0x88BB -#define GL_BUFFER_MAPPED_ARB 0x88BC -#define GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define GL_STREAM_DRAW_ARB 0x88E0 -#define GL_STREAM_READ_ARB 0x88E1 -#define GL_STREAM_COPY_ARB 0x88E2 -#define GL_STATIC_DRAW_ARB 0x88E4 -#define GL_STATIC_READ_ARB 0x88E5 -#define GL_STATIC_COPY_ARB 0x88E6 -#define GL_DYNAMIC_DRAW_ARB 0x88E8 -#define GL_DYNAMIC_READ_ARB 0x88E9 -#define GL_DYNAMIC_COPY_ARB 0x88EA - -typedef ptrdiff_t GLintptrARB; -typedef ptrdiff_t GLsizeiptrARB; - -typedef void (GLAPIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); -typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, void** params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); -typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERARBPROC) (GLuint buffer); -typedef void * (GLAPIENTRY * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERARBPROC) (GLenum target); - -#define glBindBufferARB GLEW_GET_FUN(__glewBindBufferARB) -#define glBufferDataARB GLEW_GET_FUN(__glewBufferDataARB) -#define glBufferSubDataARB GLEW_GET_FUN(__glewBufferSubDataARB) -#define glDeleteBuffersARB GLEW_GET_FUN(__glewDeleteBuffersARB) -#define glGenBuffersARB GLEW_GET_FUN(__glewGenBuffersARB) -#define glGetBufferParameterivARB GLEW_GET_FUN(__glewGetBufferParameterivARB) -#define glGetBufferPointervARB GLEW_GET_FUN(__glewGetBufferPointervARB) -#define glGetBufferSubDataARB GLEW_GET_FUN(__glewGetBufferSubDataARB) -#define glIsBufferARB GLEW_GET_FUN(__glewIsBufferARB) -#define glMapBufferARB GLEW_GET_FUN(__glewMapBufferARB) -#define glUnmapBufferARB GLEW_GET_FUN(__glewUnmapBufferARB) - -#define GLEW_ARB_vertex_buffer_object GLEW_GET_VAR(__GLEW_ARB_vertex_buffer_object) - -#endif /* GL_ARB_vertex_buffer_object */ - -/* ------------------------- GL_ARB_vertex_program ------------------------- */ - -#ifndef GL_ARB_vertex_program -#define GL_ARB_vertex_program 1 - -#define GL_COLOR_SUM_ARB 0x8458 -#define GL_VERTEX_PROGRAM_ARB 0x8620 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 -#define GL_PROGRAM_LENGTH_ARB 0x8627 -#define GL_PROGRAM_STRING_ARB 0x8628 -#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define GL_CURRENT_MATRIX_ARB 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B -#define GL_PROGRAM_BINDING_ARB 0x8677 -#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 -#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define GL_PROGRAM_FORMAT_ARB 0x8876 -#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 -#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 -#define GL_MATRIX0_ARB 0x88C0 -#define GL_MATRIX1_ARB 0x88C1 -#define GL_MATRIX2_ARB 0x88C2 -#define GL_MATRIX3_ARB 0x88C3 -#define GL_MATRIX4_ARB 0x88C4 -#define GL_MATRIX5_ARB 0x88C5 -#define GL_MATRIX6_ARB 0x88C6 -#define GL_MATRIX7_ARB 0x88C7 -#define GL_MATRIX8_ARB 0x88C8 -#define GL_MATRIX9_ARB 0x88C9 -#define GL_MATRIX10_ARB 0x88CA -#define GL_MATRIX11_ARB 0x88CB -#define GL_MATRIX12_ARB 0x88CC -#define GL_MATRIX13_ARB 0x88CD -#define GL_MATRIX14_ARB 0x88CE -#define GL_MATRIX15_ARB 0x88CF -#define GL_MATRIX16_ARB 0x88D0 -#define GL_MATRIX17_ARB 0x88D1 -#define GL_MATRIX18_ARB 0x88D2 -#define GL_MATRIX19_ARB 0x88D3 -#define GL_MATRIX20_ARB 0x88D4 -#define GL_MATRIX21_ARB 0x88D5 -#define GL_MATRIX22_ARB 0x88D6 -#define GL_MATRIX23_ARB 0x88D7 -#define GL_MATRIX24_ARB 0x88D8 -#define GL_MATRIX25_ARB 0x88D9 -#define GL_MATRIX26_ARB 0x88DA -#define GL_MATRIX27_ARB 0x88DB -#define GL_MATRIX28_ARB 0x88DC -#define GL_MATRIX29_ARB 0x88DD -#define GL_MATRIX30_ARB 0x88DE -#define GL_MATRIX31_ARB 0x88DF - -typedef void (GLAPIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint* programs); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint* programs); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void *string); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void** pointer); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMARBPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void *string); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); - -#define glBindProgramARB GLEW_GET_FUN(__glewBindProgramARB) -#define glDeleteProgramsARB GLEW_GET_FUN(__glewDeleteProgramsARB) -#define glDisableVertexAttribArrayARB GLEW_GET_FUN(__glewDisableVertexAttribArrayARB) -#define glEnableVertexAttribArrayARB GLEW_GET_FUN(__glewEnableVertexAttribArrayARB) -#define glGenProgramsARB GLEW_GET_FUN(__glewGenProgramsARB) -#define glGetProgramEnvParameterdvARB GLEW_GET_FUN(__glewGetProgramEnvParameterdvARB) -#define glGetProgramEnvParameterfvARB GLEW_GET_FUN(__glewGetProgramEnvParameterfvARB) -#define glGetProgramLocalParameterdvARB GLEW_GET_FUN(__glewGetProgramLocalParameterdvARB) -#define glGetProgramLocalParameterfvARB GLEW_GET_FUN(__glewGetProgramLocalParameterfvARB) -#define glGetProgramStringARB GLEW_GET_FUN(__glewGetProgramStringARB) -#define glGetProgramivARB GLEW_GET_FUN(__glewGetProgramivARB) -#define glGetVertexAttribPointervARB GLEW_GET_FUN(__glewGetVertexAttribPointervARB) -#define glGetVertexAttribdvARB GLEW_GET_FUN(__glewGetVertexAttribdvARB) -#define glGetVertexAttribfvARB GLEW_GET_FUN(__glewGetVertexAttribfvARB) -#define glGetVertexAttribivARB GLEW_GET_FUN(__glewGetVertexAttribivARB) -#define glIsProgramARB GLEW_GET_FUN(__glewIsProgramARB) -#define glProgramEnvParameter4dARB GLEW_GET_FUN(__glewProgramEnvParameter4dARB) -#define glProgramEnvParameter4dvARB GLEW_GET_FUN(__glewProgramEnvParameter4dvARB) -#define glProgramEnvParameter4fARB GLEW_GET_FUN(__glewProgramEnvParameter4fARB) -#define glProgramEnvParameter4fvARB GLEW_GET_FUN(__glewProgramEnvParameter4fvARB) -#define glProgramLocalParameter4dARB GLEW_GET_FUN(__glewProgramLocalParameter4dARB) -#define glProgramLocalParameter4dvARB GLEW_GET_FUN(__glewProgramLocalParameter4dvARB) -#define glProgramLocalParameter4fARB GLEW_GET_FUN(__glewProgramLocalParameter4fARB) -#define glProgramLocalParameter4fvARB GLEW_GET_FUN(__glewProgramLocalParameter4fvARB) -#define glProgramStringARB GLEW_GET_FUN(__glewProgramStringARB) -#define glVertexAttrib1dARB GLEW_GET_FUN(__glewVertexAttrib1dARB) -#define glVertexAttrib1dvARB GLEW_GET_FUN(__glewVertexAttrib1dvARB) -#define glVertexAttrib1fARB GLEW_GET_FUN(__glewVertexAttrib1fARB) -#define glVertexAttrib1fvARB GLEW_GET_FUN(__glewVertexAttrib1fvARB) -#define glVertexAttrib1sARB GLEW_GET_FUN(__glewVertexAttrib1sARB) -#define glVertexAttrib1svARB GLEW_GET_FUN(__glewVertexAttrib1svARB) -#define glVertexAttrib2dARB GLEW_GET_FUN(__glewVertexAttrib2dARB) -#define glVertexAttrib2dvARB GLEW_GET_FUN(__glewVertexAttrib2dvARB) -#define glVertexAttrib2fARB GLEW_GET_FUN(__glewVertexAttrib2fARB) -#define glVertexAttrib2fvARB GLEW_GET_FUN(__glewVertexAttrib2fvARB) -#define glVertexAttrib2sARB GLEW_GET_FUN(__glewVertexAttrib2sARB) -#define glVertexAttrib2svARB GLEW_GET_FUN(__glewVertexAttrib2svARB) -#define glVertexAttrib3dARB GLEW_GET_FUN(__glewVertexAttrib3dARB) -#define glVertexAttrib3dvARB GLEW_GET_FUN(__glewVertexAttrib3dvARB) -#define glVertexAttrib3fARB GLEW_GET_FUN(__glewVertexAttrib3fARB) -#define glVertexAttrib3fvARB GLEW_GET_FUN(__glewVertexAttrib3fvARB) -#define glVertexAttrib3sARB GLEW_GET_FUN(__glewVertexAttrib3sARB) -#define glVertexAttrib3svARB GLEW_GET_FUN(__glewVertexAttrib3svARB) -#define glVertexAttrib4NbvARB GLEW_GET_FUN(__glewVertexAttrib4NbvARB) -#define glVertexAttrib4NivARB GLEW_GET_FUN(__glewVertexAttrib4NivARB) -#define glVertexAttrib4NsvARB GLEW_GET_FUN(__glewVertexAttrib4NsvARB) -#define glVertexAttrib4NubARB GLEW_GET_FUN(__glewVertexAttrib4NubARB) -#define glVertexAttrib4NubvARB GLEW_GET_FUN(__glewVertexAttrib4NubvARB) -#define glVertexAttrib4NuivARB GLEW_GET_FUN(__glewVertexAttrib4NuivARB) -#define glVertexAttrib4NusvARB GLEW_GET_FUN(__glewVertexAttrib4NusvARB) -#define glVertexAttrib4bvARB GLEW_GET_FUN(__glewVertexAttrib4bvARB) -#define glVertexAttrib4dARB GLEW_GET_FUN(__glewVertexAttrib4dARB) -#define glVertexAttrib4dvARB GLEW_GET_FUN(__glewVertexAttrib4dvARB) -#define glVertexAttrib4fARB GLEW_GET_FUN(__glewVertexAttrib4fARB) -#define glVertexAttrib4fvARB GLEW_GET_FUN(__glewVertexAttrib4fvARB) -#define glVertexAttrib4ivARB GLEW_GET_FUN(__glewVertexAttrib4ivARB) -#define glVertexAttrib4sARB GLEW_GET_FUN(__glewVertexAttrib4sARB) -#define glVertexAttrib4svARB GLEW_GET_FUN(__glewVertexAttrib4svARB) -#define glVertexAttrib4ubvARB GLEW_GET_FUN(__glewVertexAttrib4ubvARB) -#define glVertexAttrib4uivARB GLEW_GET_FUN(__glewVertexAttrib4uivARB) -#define glVertexAttrib4usvARB GLEW_GET_FUN(__glewVertexAttrib4usvARB) -#define glVertexAttribPointerARB GLEW_GET_FUN(__glewVertexAttribPointerARB) - -#define GLEW_ARB_vertex_program GLEW_GET_VAR(__GLEW_ARB_vertex_program) - -#endif /* GL_ARB_vertex_program */ - -/* -------------------------- GL_ARB_vertex_shader ------------------------- */ - -#ifndef GL_ARB_vertex_shader -#define GL_ARB_vertex_shader 1 - -#define GL_VERTEX_SHADER_ARB 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A - -typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB* name); -typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); -typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); - -#define glBindAttribLocationARB GLEW_GET_FUN(__glewBindAttribLocationARB) -#define glGetActiveAttribARB GLEW_GET_FUN(__glewGetActiveAttribARB) -#define glGetAttribLocationARB GLEW_GET_FUN(__glewGetAttribLocationARB) - -#define GLEW_ARB_vertex_shader GLEW_GET_VAR(__GLEW_ARB_vertex_shader) - -#endif /* GL_ARB_vertex_shader */ - -/* ------------------- GL_ARB_vertex_type_10f_11f_11f_rev ------------------ */ - -#ifndef GL_ARB_vertex_type_10f_11f_11f_rev -#define GL_ARB_vertex_type_10f_11f_11f_rev 1 - -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B - -#define GLEW_ARB_vertex_type_10f_11f_11f_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_10f_11f_11f_rev) - -#endif /* GL_ARB_vertex_type_10f_11f_11f_rev */ - -/* ------------------- GL_ARB_vertex_type_2_10_10_10_rev ------------------- */ - -#ifndef GL_ARB_vertex_type_2_10_10_10_rev -#define GL_ARB_vertex_type_2_10_10_10_rev 1 - -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_INT_2_10_10_10_REV 0x8D9F - -typedef void (GLAPIENTRY * PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (GLAPIENTRY * PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint* color); -typedef void (GLAPIENTRY * PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); -typedef void (GLAPIENTRY * PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint* color); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint* color); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint* value); - -#define glColorP3ui GLEW_GET_FUN(__glewColorP3ui) -#define glColorP3uiv GLEW_GET_FUN(__glewColorP3uiv) -#define glColorP4ui GLEW_GET_FUN(__glewColorP4ui) -#define glColorP4uiv GLEW_GET_FUN(__glewColorP4uiv) -#define glMultiTexCoordP1ui GLEW_GET_FUN(__glewMultiTexCoordP1ui) -#define glMultiTexCoordP1uiv GLEW_GET_FUN(__glewMultiTexCoordP1uiv) -#define glMultiTexCoordP2ui GLEW_GET_FUN(__glewMultiTexCoordP2ui) -#define glMultiTexCoordP2uiv GLEW_GET_FUN(__glewMultiTexCoordP2uiv) -#define glMultiTexCoordP3ui GLEW_GET_FUN(__glewMultiTexCoordP3ui) -#define glMultiTexCoordP3uiv GLEW_GET_FUN(__glewMultiTexCoordP3uiv) -#define glMultiTexCoordP4ui GLEW_GET_FUN(__glewMultiTexCoordP4ui) -#define glMultiTexCoordP4uiv GLEW_GET_FUN(__glewMultiTexCoordP4uiv) -#define glNormalP3ui GLEW_GET_FUN(__glewNormalP3ui) -#define glNormalP3uiv GLEW_GET_FUN(__glewNormalP3uiv) -#define glSecondaryColorP3ui GLEW_GET_FUN(__glewSecondaryColorP3ui) -#define glSecondaryColorP3uiv GLEW_GET_FUN(__glewSecondaryColorP3uiv) -#define glTexCoordP1ui GLEW_GET_FUN(__glewTexCoordP1ui) -#define glTexCoordP1uiv GLEW_GET_FUN(__glewTexCoordP1uiv) -#define glTexCoordP2ui GLEW_GET_FUN(__glewTexCoordP2ui) -#define glTexCoordP2uiv GLEW_GET_FUN(__glewTexCoordP2uiv) -#define glTexCoordP3ui GLEW_GET_FUN(__glewTexCoordP3ui) -#define glTexCoordP3uiv GLEW_GET_FUN(__glewTexCoordP3uiv) -#define glTexCoordP4ui GLEW_GET_FUN(__glewTexCoordP4ui) -#define glTexCoordP4uiv GLEW_GET_FUN(__glewTexCoordP4uiv) -#define glVertexAttribP1ui GLEW_GET_FUN(__glewVertexAttribP1ui) -#define glVertexAttribP1uiv GLEW_GET_FUN(__glewVertexAttribP1uiv) -#define glVertexAttribP2ui GLEW_GET_FUN(__glewVertexAttribP2ui) -#define glVertexAttribP2uiv GLEW_GET_FUN(__glewVertexAttribP2uiv) -#define glVertexAttribP3ui GLEW_GET_FUN(__glewVertexAttribP3ui) -#define glVertexAttribP3uiv GLEW_GET_FUN(__glewVertexAttribP3uiv) -#define glVertexAttribP4ui GLEW_GET_FUN(__glewVertexAttribP4ui) -#define glVertexAttribP4uiv GLEW_GET_FUN(__glewVertexAttribP4uiv) -#define glVertexP2ui GLEW_GET_FUN(__glewVertexP2ui) -#define glVertexP2uiv GLEW_GET_FUN(__glewVertexP2uiv) -#define glVertexP3ui GLEW_GET_FUN(__glewVertexP3ui) -#define glVertexP3uiv GLEW_GET_FUN(__glewVertexP3uiv) -#define glVertexP4ui GLEW_GET_FUN(__glewVertexP4ui) -#define glVertexP4uiv GLEW_GET_FUN(__glewVertexP4uiv) - -#define GLEW_ARB_vertex_type_2_10_10_10_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_2_10_10_10_rev) - -#endif /* GL_ARB_vertex_type_2_10_10_10_rev */ - -/* ------------------------- GL_ARB_viewport_array ------------------------- */ - -#ifndef GL_ARB_viewport_array -#define GL_ARB_viewport_array 1 - -#define GL_DEPTH_RANGE 0x0B70 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_MAX_VIEWPORTS 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE 0x825D -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F -#define GL_UNDEFINED_VERTEX 0x8260 -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F - -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd * v); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); -typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble* data); -typedef void (GLAPIENTRY * PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat* data); -typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint * v); -typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint * v); -typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat * v); -typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat * v); - -#define glDepthRangeArrayv GLEW_GET_FUN(__glewDepthRangeArrayv) -#define glDepthRangeIndexed GLEW_GET_FUN(__glewDepthRangeIndexed) -#define glGetDoublei_v GLEW_GET_FUN(__glewGetDoublei_v) -#define glGetFloati_v GLEW_GET_FUN(__glewGetFloati_v) -#define glScissorArrayv GLEW_GET_FUN(__glewScissorArrayv) -#define glScissorIndexed GLEW_GET_FUN(__glewScissorIndexed) -#define glScissorIndexedv GLEW_GET_FUN(__glewScissorIndexedv) -#define glViewportArrayv GLEW_GET_FUN(__glewViewportArrayv) -#define glViewportIndexedf GLEW_GET_FUN(__glewViewportIndexedf) -#define glViewportIndexedfv GLEW_GET_FUN(__glewViewportIndexedfv) - -#define GLEW_ARB_viewport_array GLEW_GET_VAR(__GLEW_ARB_viewport_array) - -#endif /* GL_ARB_viewport_array */ - -/* --------------------------- GL_ARB_window_pos --------------------------- */ - -#ifndef GL_ARB_window_pos -#define GL_ARB_window_pos 1 - -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVARBPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVARBPROC) (const GLshort* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVARBPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort* p); - -#define glWindowPos2dARB GLEW_GET_FUN(__glewWindowPos2dARB) -#define glWindowPos2dvARB GLEW_GET_FUN(__glewWindowPos2dvARB) -#define glWindowPos2fARB GLEW_GET_FUN(__glewWindowPos2fARB) -#define glWindowPos2fvARB GLEW_GET_FUN(__glewWindowPos2fvARB) -#define glWindowPos2iARB GLEW_GET_FUN(__glewWindowPos2iARB) -#define glWindowPos2ivARB GLEW_GET_FUN(__glewWindowPos2ivARB) -#define glWindowPos2sARB GLEW_GET_FUN(__glewWindowPos2sARB) -#define glWindowPos2svARB GLEW_GET_FUN(__glewWindowPos2svARB) -#define glWindowPos3dARB GLEW_GET_FUN(__glewWindowPos3dARB) -#define glWindowPos3dvARB GLEW_GET_FUN(__glewWindowPos3dvARB) -#define glWindowPos3fARB GLEW_GET_FUN(__glewWindowPos3fARB) -#define glWindowPos3fvARB GLEW_GET_FUN(__glewWindowPos3fvARB) -#define glWindowPos3iARB GLEW_GET_FUN(__glewWindowPos3iARB) -#define glWindowPos3ivARB GLEW_GET_FUN(__glewWindowPos3ivARB) -#define glWindowPos3sARB GLEW_GET_FUN(__glewWindowPos3sARB) -#define glWindowPos3svARB GLEW_GET_FUN(__glewWindowPos3svARB) - -#define GLEW_ARB_window_pos GLEW_GET_VAR(__GLEW_ARB_window_pos) - -#endif /* GL_ARB_window_pos */ - -/* ------------------------- GL_ATIX_point_sprites ------------------------- */ - -#ifndef GL_ATIX_point_sprites -#define GL_ATIX_point_sprites 1 - -#define GL_TEXTURE_POINT_MODE_ATIX 0x60B0 -#define GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1 -#define GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2 -#define GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3 -#define GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4 -#define GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5 - -#define GLEW_ATIX_point_sprites GLEW_GET_VAR(__GLEW_ATIX_point_sprites) - -#endif /* GL_ATIX_point_sprites */ - -/* ---------------------- GL_ATIX_texture_env_combine3 --------------------- */ - -#ifndef GL_ATIX_texture_env_combine3 -#define GL_ATIX_texture_env_combine3 1 - -#define GL_MODULATE_ADD_ATIX 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATIX 0x8745 -#define GL_MODULATE_SUBTRACT_ATIX 0x8746 - -#define GLEW_ATIX_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATIX_texture_env_combine3) - -#endif /* GL_ATIX_texture_env_combine3 */ - -/* ----------------------- GL_ATIX_texture_env_route ----------------------- */ - -#ifndef GL_ATIX_texture_env_route -#define GL_ATIX_texture_env_route 1 - -#define GL_SECONDARY_COLOR_ATIX 0x8747 -#define GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748 -#define GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749 - -#define GLEW_ATIX_texture_env_route GLEW_GET_VAR(__GLEW_ATIX_texture_env_route) - -#endif /* GL_ATIX_texture_env_route */ - -/* ---------------- GL_ATIX_vertex_shader_output_point_size ---------------- */ - -#ifndef GL_ATIX_vertex_shader_output_point_size -#define GL_ATIX_vertex_shader_output_point_size 1 - -#define GL_OUTPUT_POINT_SIZE_ATIX 0x610E - -#define GLEW_ATIX_vertex_shader_output_point_size GLEW_GET_VAR(__GLEW_ATIX_vertex_shader_output_point_size) - -#endif /* GL_ATIX_vertex_shader_output_point_size */ - -/* -------------------------- GL_ATI_draw_buffers -------------------------- */ - -#ifndef GL_ATI_draw_buffers -#define GL_ATI_draw_buffers 1 - -#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 -#define GL_DRAW_BUFFER0_ATI 0x8825 -#define GL_DRAW_BUFFER1_ATI 0x8826 -#define GL_DRAW_BUFFER2_ATI 0x8827 -#define GL_DRAW_BUFFER3_ATI 0x8828 -#define GL_DRAW_BUFFER4_ATI 0x8829 -#define GL_DRAW_BUFFER5_ATI 0x882A -#define GL_DRAW_BUFFER6_ATI 0x882B -#define GL_DRAW_BUFFER7_ATI 0x882C -#define GL_DRAW_BUFFER8_ATI 0x882D -#define GL_DRAW_BUFFER9_ATI 0x882E -#define GL_DRAW_BUFFER10_ATI 0x882F -#define GL_DRAW_BUFFER11_ATI 0x8830 -#define GL_DRAW_BUFFER12_ATI 0x8831 -#define GL_DRAW_BUFFER13_ATI 0x8832 -#define GL_DRAW_BUFFER14_ATI 0x8833 -#define GL_DRAW_BUFFER15_ATI 0x8834 - -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum* bufs); - -#define glDrawBuffersATI GLEW_GET_FUN(__glewDrawBuffersATI) - -#define GLEW_ATI_draw_buffers GLEW_GET_VAR(__GLEW_ATI_draw_buffers) - -#endif /* GL_ATI_draw_buffers */ - -/* -------------------------- GL_ATI_element_array ------------------------- */ - -#ifndef GL_ATI_element_array -#define GL_ATI_element_array 1 - -#define GL_ELEMENT_ARRAY_ATI 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A - -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); -typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void *pointer); - -#define glDrawElementArrayATI GLEW_GET_FUN(__glewDrawElementArrayATI) -#define glDrawRangeElementArrayATI GLEW_GET_FUN(__glewDrawRangeElementArrayATI) -#define glElementPointerATI GLEW_GET_FUN(__glewElementPointerATI) - -#define GLEW_ATI_element_array GLEW_GET_VAR(__GLEW_ATI_element_array) - -#endif /* GL_ATI_element_array */ - -/* ------------------------- GL_ATI_envmap_bumpmap ------------------------- */ - -#ifndef GL_ATI_envmap_bumpmap -#define GL_ATI_envmap_bumpmap 1 - -#define GL_BUMP_ROT_MATRIX_ATI 0x8775 -#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 -#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 -#define GL_BUMP_TEX_UNITS_ATI 0x8778 -#define GL_DUDV_ATI 0x8779 -#define GL_DU8DV8_ATI 0x877A -#define GL_BUMP_ENVMAP_ATI 0x877B -#define GL_BUMP_TARGET_ATI 0x877C - -typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); -typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); - -#define glGetTexBumpParameterfvATI GLEW_GET_FUN(__glewGetTexBumpParameterfvATI) -#define glGetTexBumpParameterivATI GLEW_GET_FUN(__glewGetTexBumpParameterivATI) -#define glTexBumpParameterfvATI GLEW_GET_FUN(__glewTexBumpParameterfvATI) -#define glTexBumpParameterivATI GLEW_GET_FUN(__glewTexBumpParameterivATI) - -#define GLEW_ATI_envmap_bumpmap GLEW_GET_VAR(__GLEW_ATI_envmap_bumpmap) - -#endif /* GL_ATI_envmap_bumpmap */ - -/* ------------------------- GL_ATI_fragment_shader ------------------------ */ - -#ifndef GL_ATI_fragment_shader -#define GL_ATI_fragment_shader 1 - -#define GL_2X_BIT_ATI 0x00000001 -#define GL_RED_BIT_ATI 0x00000001 -#define GL_4X_BIT_ATI 0x00000002 -#define GL_COMP_BIT_ATI 0x00000002 -#define GL_GREEN_BIT_ATI 0x00000002 -#define GL_8X_BIT_ATI 0x00000004 -#define GL_BLUE_BIT_ATI 0x00000004 -#define GL_NEGATE_BIT_ATI 0x00000004 -#define GL_BIAS_BIT_ATI 0x00000008 -#define GL_HALF_BIT_ATI 0x00000008 -#define GL_QUARTER_BIT_ATI 0x00000010 -#define GL_EIGHTH_BIT_ATI 0x00000020 -#define GL_SATURATE_BIT_ATI 0x00000040 -#define GL_FRAGMENT_SHADER_ATI 0x8920 -#define GL_REG_0_ATI 0x8921 -#define GL_REG_1_ATI 0x8922 -#define GL_REG_2_ATI 0x8923 -#define GL_REG_3_ATI 0x8924 -#define GL_REG_4_ATI 0x8925 -#define GL_REG_5_ATI 0x8926 -#define GL_CON_0_ATI 0x8941 -#define GL_CON_1_ATI 0x8942 -#define GL_CON_2_ATI 0x8943 -#define GL_CON_3_ATI 0x8944 -#define GL_CON_4_ATI 0x8945 -#define GL_CON_5_ATI 0x8946 -#define GL_CON_6_ATI 0x8947 -#define GL_CON_7_ATI 0x8948 -#define GL_MOV_ATI 0x8961 -#define GL_ADD_ATI 0x8963 -#define GL_MUL_ATI 0x8964 -#define GL_SUB_ATI 0x8965 -#define GL_DOT3_ATI 0x8966 -#define GL_DOT4_ATI 0x8967 -#define GL_MAD_ATI 0x8968 -#define GL_LERP_ATI 0x8969 -#define GL_CND_ATI 0x896A -#define GL_CND0_ATI 0x896B -#define GL_DOT2_ADD_ATI 0x896C -#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define GL_NUM_PASSES_ATI 0x8970 -#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define GL_SWIZZLE_STR_ATI 0x8976 -#define GL_SWIZZLE_STQ_ATI 0x8977 -#define GL_SWIZZLE_STR_DR_ATI 0x8978 -#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define GL_SWIZZLE_STRQ_ATI 0x897A -#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B - -typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (GLAPIENTRY * PFNGLBEGINFRAGMENTSHADERATIPROC) (void); -typedef void (GLAPIENTRY * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (GLAPIENTRY * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENDFRAGMENTSHADERATIPROC) (void); -typedef GLuint (GLAPIENTRY * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); -typedef void (GLAPIENTRY * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); -typedef void (GLAPIENTRY * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); -typedef void (GLAPIENTRY * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat* value); - -#define glAlphaFragmentOp1ATI GLEW_GET_FUN(__glewAlphaFragmentOp1ATI) -#define glAlphaFragmentOp2ATI GLEW_GET_FUN(__glewAlphaFragmentOp2ATI) -#define glAlphaFragmentOp3ATI GLEW_GET_FUN(__glewAlphaFragmentOp3ATI) -#define glBeginFragmentShaderATI GLEW_GET_FUN(__glewBeginFragmentShaderATI) -#define glBindFragmentShaderATI GLEW_GET_FUN(__glewBindFragmentShaderATI) -#define glColorFragmentOp1ATI GLEW_GET_FUN(__glewColorFragmentOp1ATI) -#define glColorFragmentOp2ATI GLEW_GET_FUN(__glewColorFragmentOp2ATI) -#define glColorFragmentOp3ATI GLEW_GET_FUN(__glewColorFragmentOp3ATI) -#define glDeleteFragmentShaderATI GLEW_GET_FUN(__glewDeleteFragmentShaderATI) -#define glEndFragmentShaderATI GLEW_GET_FUN(__glewEndFragmentShaderATI) -#define glGenFragmentShadersATI GLEW_GET_FUN(__glewGenFragmentShadersATI) -#define glPassTexCoordATI GLEW_GET_FUN(__glewPassTexCoordATI) -#define glSampleMapATI GLEW_GET_FUN(__glewSampleMapATI) -#define glSetFragmentShaderConstantATI GLEW_GET_FUN(__glewSetFragmentShaderConstantATI) - -#define GLEW_ATI_fragment_shader GLEW_GET_VAR(__GLEW_ATI_fragment_shader) - -#endif /* GL_ATI_fragment_shader */ - -/* ------------------------ GL_ATI_map_object_buffer ----------------------- */ - -#ifndef GL_ATI_map_object_buffer -#define GL_ATI_map_object_buffer 1 - -typedef void * (GLAPIENTRY * PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); - -#define glMapObjectBufferATI GLEW_GET_FUN(__glewMapObjectBufferATI) -#define glUnmapObjectBufferATI GLEW_GET_FUN(__glewUnmapObjectBufferATI) - -#define GLEW_ATI_map_object_buffer GLEW_GET_VAR(__GLEW_ATI_map_object_buffer) - -#endif /* GL_ATI_map_object_buffer */ - -/* ----------------------------- GL_ATI_meminfo ---------------------------- */ - -#ifndef GL_ATI_meminfo -#define GL_ATI_meminfo 1 - -#define GL_VBO_FREE_MEMORY_ATI 0x87FB -#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC -#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD - -#define GLEW_ATI_meminfo GLEW_GET_VAR(__GLEW_ATI_meminfo) - -#endif /* GL_ATI_meminfo */ - -/* -------------------------- GL_ATI_pn_triangles -------------------------- */ - -#ifndef GL_ATI_pn_triangles -#define GL_ATI_pn_triangles 1 - -#define GL_PN_TRIANGLES_ATI 0x87F0 -#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 -#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 -#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 -#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 -#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 -#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 -#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 -#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 - -typedef void (GLAPIENTRY * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); - -#define glPNTrianglesfATI GLEW_GET_FUN(__glewPNTrianglesfATI) -#define glPNTrianglesiATI GLEW_GET_FUN(__glewPNTrianglesiATI) - -#define GLEW_ATI_pn_triangles GLEW_GET_VAR(__GLEW_ATI_pn_triangles) - -#endif /* GL_ATI_pn_triangles */ - -/* ------------------------ GL_ATI_separate_stencil ------------------------ */ - -#ifndef GL_ATI_separate_stencil -#define GL_ATI_separate_stencil 1 - -#define GL_STENCIL_BACK_FUNC_ATI 0x8800 -#define GL_STENCIL_BACK_FAIL_ATI 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 - -typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); - -#define glStencilFuncSeparateATI GLEW_GET_FUN(__glewStencilFuncSeparateATI) -#define glStencilOpSeparateATI GLEW_GET_FUN(__glewStencilOpSeparateATI) - -#define GLEW_ATI_separate_stencil GLEW_GET_VAR(__GLEW_ATI_separate_stencil) - -#endif /* GL_ATI_separate_stencil */ - -/* ----------------------- GL_ATI_shader_texture_lod ----------------------- */ - -#ifndef GL_ATI_shader_texture_lod -#define GL_ATI_shader_texture_lod 1 - -#define GLEW_ATI_shader_texture_lod GLEW_GET_VAR(__GLEW_ATI_shader_texture_lod) - -#endif /* GL_ATI_shader_texture_lod */ - -/* ---------------------- GL_ATI_text_fragment_shader ---------------------- */ - -#ifndef GL_ATI_text_fragment_shader -#define GL_ATI_text_fragment_shader 1 - -#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 - -#define GLEW_ATI_text_fragment_shader GLEW_GET_VAR(__GLEW_ATI_text_fragment_shader) - -#endif /* GL_ATI_text_fragment_shader */ - -/* --------------------- GL_ATI_texture_compression_3dc -------------------- */ - -#ifndef GL_ATI_texture_compression_3dc -#define GL_ATI_texture_compression_3dc 1 - -#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 - -#define GLEW_ATI_texture_compression_3dc GLEW_GET_VAR(__GLEW_ATI_texture_compression_3dc) - -#endif /* GL_ATI_texture_compression_3dc */ - -/* ---------------------- GL_ATI_texture_env_combine3 ---------------------- */ - -#ifndef GL_ATI_texture_env_combine3 -#define GL_ATI_texture_env_combine3 1 - -#define GL_MODULATE_ADD_ATI 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 -#define GL_MODULATE_SUBTRACT_ATI 0x8746 - -#define GLEW_ATI_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATI_texture_env_combine3) - -#endif /* GL_ATI_texture_env_combine3 */ - -/* -------------------------- GL_ATI_texture_float ------------------------- */ - -#ifndef GL_ATI_texture_float -#define GL_ATI_texture_float 1 - -#define GL_RGBA_FLOAT32_ATI 0x8814 -#define GL_RGB_FLOAT32_ATI 0x8815 -#define GL_ALPHA_FLOAT32_ATI 0x8816 -#define GL_INTENSITY_FLOAT32_ATI 0x8817 -#define GL_LUMINANCE_FLOAT32_ATI 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 -#define GL_RGBA_FLOAT16_ATI 0x881A -#define GL_RGB_FLOAT16_ATI 0x881B -#define GL_ALPHA_FLOAT16_ATI 0x881C -#define GL_INTENSITY_FLOAT16_ATI 0x881D -#define GL_LUMINANCE_FLOAT16_ATI 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F - -#define GLEW_ATI_texture_float GLEW_GET_VAR(__GLEW_ATI_texture_float) - -#endif /* GL_ATI_texture_float */ - -/* ----------------------- GL_ATI_texture_mirror_once ---------------------- */ - -#ifndef GL_ATI_texture_mirror_once -#define GL_ATI_texture_mirror_once 1 - -#define GL_MIRROR_CLAMP_ATI 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 - -#define GLEW_ATI_texture_mirror_once GLEW_GET_VAR(__GLEW_ATI_texture_mirror_once) - -#endif /* GL_ATI_texture_mirror_once */ - -/* ----------------------- GL_ATI_vertex_array_object ---------------------- */ - -#ifndef GL_ATI_vertex_array_object -#define GL_ATI_vertex_array_object 1 - -#define GL_STATIC_ATI 0x8760 -#define GL_DYNAMIC_ATI 0x8761 -#define GL_PRESERVE_ATI 0x8762 -#define GL_DISCARD_ATI 0x8763 -#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 - -typedef void (GLAPIENTRY * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (GLAPIENTRY * PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); -typedef GLuint (GLAPIENTRY * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void *pointer, GLenum usage); -typedef void (GLAPIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); -typedef void (GLAPIENTRY * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); - -#define glArrayObjectATI GLEW_GET_FUN(__glewArrayObjectATI) -#define glFreeObjectBufferATI GLEW_GET_FUN(__glewFreeObjectBufferATI) -#define glGetArrayObjectfvATI GLEW_GET_FUN(__glewGetArrayObjectfvATI) -#define glGetArrayObjectivATI GLEW_GET_FUN(__glewGetArrayObjectivATI) -#define glGetObjectBufferfvATI GLEW_GET_FUN(__glewGetObjectBufferfvATI) -#define glGetObjectBufferivATI GLEW_GET_FUN(__glewGetObjectBufferivATI) -#define glGetVariantArrayObjectfvATI GLEW_GET_FUN(__glewGetVariantArrayObjectfvATI) -#define glGetVariantArrayObjectivATI GLEW_GET_FUN(__glewGetVariantArrayObjectivATI) -#define glIsObjectBufferATI GLEW_GET_FUN(__glewIsObjectBufferATI) -#define glNewObjectBufferATI GLEW_GET_FUN(__glewNewObjectBufferATI) -#define glUpdateObjectBufferATI GLEW_GET_FUN(__glewUpdateObjectBufferATI) -#define glVariantArrayObjectATI GLEW_GET_FUN(__glewVariantArrayObjectATI) - -#define GLEW_ATI_vertex_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_array_object) - -#endif /* GL_ATI_vertex_array_object */ - -/* ------------------- GL_ATI_vertex_attrib_array_object ------------------- */ - -#ifndef GL_ATI_vertex_attrib_array_object -#define GL_ATI_vertex_attrib_array_object 1 - -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); - -#define glGetVertexAttribArrayObjectfvATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectfvATI) -#define glGetVertexAttribArrayObjectivATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectivATI) -#define glVertexAttribArrayObjectATI GLEW_GET_FUN(__glewVertexAttribArrayObjectATI) - -#define GLEW_ATI_vertex_attrib_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_attrib_array_object) - -#endif /* GL_ATI_vertex_attrib_array_object */ - -/* ------------------------- GL_ATI_vertex_streams ------------------------- */ - -#ifndef GL_ATI_vertex_streams -#define GL_ATI_vertex_streams 1 - -#define GL_MAX_VERTEX_STREAMS_ATI 0x876B -#define GL_VERTEX_SOURCE_ATI 0x876C -#define GL_VERTEX_STREAM0_ATI 0x876D -#define GL_VERTEX_STREAM1_ATI 0x876E -#define GL_VERTEX_STREAM2_ATI 0x876F -#define GL_VERTEX_STREAM3_ATI 0x8770 -#define GL_VERTEX_STREAM4_ATI 0x8771 -#define GL_VERTEX_STREAM5_ATI 0x8772 -#define GL_VERTEX_STREAM6_ATI 0x8773 -#define GL_VERTEX_STREAM7_ATI 0x8774 - -typedef void (GLAPIENTRY * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); - -#define glClientActiveVertexStreamATI GLEW_GET_FUN(__glewClientActiveVertexStreamATI) -#define glNormalStream3bATI GLEW_GET_FUN(__glewNormalStream3bATI) -#define glNormalStream3bvATI GLEW_GET_FUN(__glewNormalStream3bvATI) -#define glNormalStream3dATI GLEW_GET_FUN(__glewNormalStream3dATI) -#define glNormalStream3dvATI GLEW_GET_FUN(__glewNormalStream3dvATI) -#define glNormalStream3fATI GLEW_GET_FUN(__glewNormalStream3fATI) -#define glNormalStream3fvATI GLEW_GET_FUN(__glewNormalStream3fvATI) -#define glNormalStream3iATI GLEW_GET_FUN(__glewNormalStream3iATI) -#define glNormalStream3ivATI GLEW_GET_FUN(__glewNormalStream3ivATI) -#define glNormalStream3sATI GLEW_GET_FUN(__glewNormalStream3sATI) -#define glNormalStream3svATI GLEW_GET_FUN(__glewNormalStream3svATI) -#define glVertexBlendEnvfATI GLEW_GET_FUN(__glewVertexBlendEnvfATI) -#define glVertexBlendEnviATI GLEW_GET_FUN(__glewVertexBlendEnviATI) -#define glVertexStream1dATI GLEW_GET_FUN(__glewVertexStream1dATI) -#define glVertexStream1dvATI GLEW_GET_FUN(__glewVertexStream1dvATI) -#define glVertexStream1fATI GLEW_GET_FUN(__glewVertexStream1fATI) -#define glVertexStream1fvATI GLEW_GET_FUN(__glewVertexStream1fvATI) -#define glVertexStream1iATI GLEW_GET_FUN(__glewVertexStream1iATI) -#define glVertexStream1ivATI GLEW_GET_FUN(__glewVertexStream1ivATI) -#define glVertexStream1sATI GLEW_GET_FUN(__glewVertexStream1sATI) -#define glVertexStream1svATI GLEW_GET_FUN(__glewVertexStream1svATI) -#define glVertexStream2dATI GLEW_GET_FUN(__glewVertexStream2dATI) -#define glVertexStream2dvATI GLEW_GET_FUN(__glewVertexStream2dvATI) -#define glVertexStream2fATI GLEW_GET_FUN(__glewVertexStream2fATI) -#define glVertexStream2fvATI GLEW_GET_FUN(__glewVertexStream2fvATI) -#define glVertexStream2iATI GLEW_GET_FUN(__glewVertexStream2iATI) -#define glVertexStream2ivATI GLEW_GET_FUN(__glewVertexStream2ivATI) -#define glVertexStream2sATI GLEW_GET_FUN(__glewVertexStream2sATI) -#define glVertexStream2svATI GLEW_GET_FUN(__glewVertexStream2svATI) -#define glVertexStream3dATI GLEW_GET_FUN(__glewVertexStream3dATI) -#define glVertexStream3dvATI GLEW_GET_FUN(__glewVertexStream3dvATI) -#define glVertexStream3fATI GLEW_GET_FUN(__glewVertexStream3fATI) -#define glVertexStream3fvATI GLEW_GET_FUN(__glewVertexStream3fvATI) -#define glVertexStream3iATI GLEW_GET_FUN(__glewVertexStream3iATI) -#define glVertexStream3ivATI GLEW_GET_FUN(__glewVertexStream3ivATI) -#define glVertexStream3sATI GLEW_GET_FUN(__glewVertexStream3sATI) -#define glVertexStream3svATI GLEW_GET_FUN(__glewVertexStream3svATI) -#define glVertexStream4dATI GLEW_GET_FUN(__glewVertexStream4dATI) -#define glVertexStream4dvATI GLEW_GET_FUN(__glewVertexStream4dvATI) -#define glVertexStream4fATI GLEW_GET_FUN(__glewVertexStream4fATI) -#define glVertexStream4fvATI GLEW_GET_FUN(__glewVertexStream4fvATI) -#define glVertexStream4iATI GLEW_GET_FUN(__glewVertexStream4iATI) -#define glVertexStream4ivATI GLEW_GET_FUN(__glewVertexStream4ivATI) -#define glVertexStream4sATI GLEW_GET_FUN(__glewVertexStream4sATI) -#define glVertexStream4svATI GLEW_GET_FUN(__glewVertexStream4svATI) - -#define GLEW_ATI_vertex_streams GLEW_GET_VAR(__GLEW_ATI_vertex_streams) - -#endif /* GL_ATI_vertex_streams */ - -/* --------------------------- GL_EXT_422_pixels --------------------------- */ - -#ifndef GL_EXT_422_pixels -#define GL_EXT_422_pixels 1 - -#define GL_422_EXT 0x80CC -#define GL_422_REV_EXT 0x80CD -#define GL_422_AVERAGE_EXT 0x80CE -#define GL_422_REV_AVERAGE_EXT 0x80CF - -#define GLEW_EXT_422_pixels GLEW_GET_VAR(__GLEW_EXT_422_pixels) - -#endif /* GL_EXT_422_pixels */ - -/* ---------------------------- GL_EXT_Cg_shader --------------------------- */ - -#ifndef GL_EXT_Cg_shader -#define GL_EXT_Cg_shader 1 - -#define GL_CG_VERTEX_SHADER_EXT 0x890E -#define GL_CG_FRAGMENT_SHADER_EXT 0x890F - -#define GLEW_EXT_Cg_shader GLEW_GET_VAR(__GLEW_EXT_Cg_shader) - -#endif /* GL_EXT_Cg_shader */ - -/* ------------------------------ GL_EXT_abgr ------------------------------ */ - -#ifndef GL_EXT_abgr -#define GL_EXT_abgr 1 - -#define GL_ABGR_EXT 0x8000 - -#define GLEW_EXT_abgr GLEW_GET_VAR(__GLEW_EXT_abgr) - -#endif /* GL_EXT_abgr */ - -/* ------------------------------ GL_EXT_bgra ------------------------------ */ - -#ifndef GL_EXT_bgra -#define GL_EXT_bgra 1 - -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 - -#define GLEW_EXT_bgra GLEW_GET_VAR(__GLEW_EXT_bgra) - -#endif /* GL_EXT_bgra */ - -/* ------------------------ GL_EXT_bindable_uniform ------------------------ */ - -#ifndef GL_EXT_bindable_uniform -#define GL_EXT_bindable_uniform 1 - -#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 -#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 -#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 -#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED -#define GL_UNIFORM_BUFFER_EXT 0x8DEE -#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF - -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); -typedef GLintptr (GLAPIENTRY * PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); -typedef void (GLAPIENTRY * PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); - -#define glGetUniformBufferSizeEXT GLEW_GET_FUN(__glewGetUniformBufferSizeEXT) -#define glGetUniformOffsetEXT GLEW_GET_FUN(__glewGetUniformOffsetEXT) -#define glUniformBufferEXT GLEW_GET_FUN(__glewUniformBufferEXT) - -#define GLEW_EXT_bindable_uniform GLEW_GET_VAR(__GLEW_EXT_bindable_uniform) - -#endif /* GL_EXT_bindable_uniform */ - -/* --------------------------- GL_EXT_blend_color -------------------------- */ - -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 - -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 - -typedef void (GLAPIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); - -#define glBlendColorEXT GLEW_GET_FUN(__glewBlendColorEXT) - -#define GLEW_EXT_blend_color GLEW_GET_VAR(__GLEW_EXT_blend_color) - -#endif /* GL_EXT_blend_color */ - -/* --------------------- GL_EXT_blend_equation_separate -------------------- */ - -#ifndef GL_EXT_blend_equation_separate -#define GL_EXT_blend_equation_separate 1 - -#define GL_BLEND_EQUATION_RGB_EXT 0x8009 -#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); - -#define glBlendEquationSeparateEXT GLEW_GET_FUN(__glewBlendEquationSeparateEXT) - -#define GLEW_EXT_blend_equation_separate GLEW_GET_VAR(__GLEW_EXT_blend_equation_separate) - -#endif /* GL_EXT_blend_equation_separate */ - -/* ----------------------- GL_EXT_blend_func_separate ---------------------- */ - -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 - -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB - -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); - -#define glBlendFuncSeparateEXT GLEW_GET_FUN(__glewBlendFuncSeparateEXT) - -#define GLEW_EXT_blend_func_separate GLEW_GET_VAR(__GLEW_EXT_blend_func_separate) - -#endif /* GL_EXT_blend_func_separate */ - -/* ------------------------- GL_EXT_blend_logic_op ------------------------- */ - -#ifndef GL_EXT_blend_logic_op -#define GL_EXT_blend_logic_op 1 - -#define GLEW_EXT_blend_logic_op GLEW_GET_VAR(__GLEW_EXT_blend_logic_op) - -#endif /* GL_EXT_blend_logic_op */ - -/* -------------------------- GL_EXT_blend_minmax -------------------------- */ - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 - -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_BLEND_EQUATION_EXT 0x8009 - -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); - -#define glBlendEquationEXT GLEW_GET_FUN(__glewBlendEquationEXT) - -#define GLEW_EXT_blend_minmax GLEW_GET_VAR(__GLEW_EXT_blend_minmax) - -#endif /* GL_EXT_blend_minmax */ - -/* ------------------------- GL_EXT_blend_subtract ------------------------- */ - -#ifndef GL_EXT_blend_subtract -#define GL_EXT_blend_subtract 1 - -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B - -#define GLEW_EXT_blend_subtract GLEW_GET_VAR(__GLEW_EXT_blend_subtract) - -#endif /* GL_EXT_blend_subtract */ - -/* ------------------------ GL_EXT_clip_volume_hint ------------------------ */ - -#ifndef GL_EXT_clip_volume_hint -#define GL_EXT_clip_volume_hint 1 - -#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 - -#define GLEW_EXT_clip_volume_hint GLEW_GET_VAR(__GLEW_EXT_clip_volume_hint) - -#endif /* GL_EXT_clip_volume_hint */ - -/* ------------------------------ GL_EXT_cmyka ----------------------------- */ - -#ifndef GL_EXT_cmyka -#define GL_EXT_cmyka 1 - -#define GL_CMYK_EXT 0x800C -#define GL_CMYKA_EXT 0x800D -#define GL_PACK_CMYK_HINT_EXT 0x800E -#define GL_UNPACK_CMYK_HINT_EXT 0x800F - -#define GLEW_EXT_cmyka GLEW_GET_VAR(__GLEW_EXT_cmyka) - -#endif /* GL_EXT_cmyka */ - -/* ------------------------- GL_EXT_color_subtable ------------------------- */ - -#ifndef GL_EXT_color_subtable -#define GL_EXT_color_subtable 1 - -typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); - -#define glColorSubTableEXT GLEW_GET_FUN(__glewColorSubTableEXT) -#define glCopyColorSubTableEXT GLEW_GET_FUN(__glewCopyColorSubTableEXT) - -#define GLEW_EXT_color_subtable GLEW_GET_VAR(__GLEW_EXT_color_subtable) - -#endif /* GL_EXT_color_subtable */ - -/* ---------------------- GL_EXT_compiled_vertex_array --------------------- */ - -#ifndef GL_EXT_compiled_vertex_array -#define GL_EXT_compiled_vertex_array 1 - -#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 -#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 - -typedef void (GLAPIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); - -#define glLockArraysEXT GLEW_GET_FUN(__glewLockArraysEXT) -#define glUnlockArraysEXT GLEW_GET_FUN(__glewUnlockArraysEXT) - -#define GLEW_EXT_compiled_vertex_array GLEW_GET_VAR(__GLEW_EXT_compiled_vertex_array) - -#endif /* GL_EXT_compiled_vertex_array */ - -/* --------------------------- GL_EXT_convolution -------------------------- */ - -#ifndef GL_EXT_convolution -#define GL_EXT_convolution 1 - -#define GL_CONVOLUTION_1D_EXT 0x8010 -#define GL_CONVOLUTION_2D_EXT 0x8011 -#define GL_SEPARABLE_2D_EXT 0x8012 -#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define GL_REDUCE_EXT 0x8016 -#define GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 - -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *image); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); -typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); - -#define glConvolutionFilter1DEXT GLEW_GET_FUN(__glewConvolutionFilter1DEXT) -#define glConvolutionFilter2DEXT GLEW_GET_FUN(__glewConvolutionFilter2DEXT) -#define glConvolutionParameterfEXT GLEW_GET_FUN(__glewConvolutionParameterfEXT) -#define glConvolutionParameterfvEXT GLEW_GET_FUN(__glewConvolutionParameterfvEXT) -#define glConvolutionParameteriEXT GLEW_GET_FUN(__glewConvolutionParameteriEXT) -#define glConvolutionParameterivEXT GLEW_GET_FUN(__glewConvolutionParameterivEXT) -#define glCopyConvolutionFilter1DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter1DEXT) -#define glCopyConvolutionFilter2DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter2DEXT) -#define glGetConvolutionFilterEXT GLEW_GET_FUN(__glewGetConvolutionFilterEXT) -#define glGetConvolutionParameterfvEXT GLEW_GET_FUN(__glewGetConvolutionParameterfvEXT) -#define glGetConvolutionParameterivEXT GLEW_GET_FUN(__glewGetConvolutionParameterivEXT) -#define glGetSeparableFilterEXT GLEW_GET_FUN(__glewGetSeparableFilterEXT) -#define glSeparableFilter2DEXT GLEW_GET_FUN(__glewSeparableFilter2DEXT) - -#define GLEW_EXT_convolution GLEW_GET_VAR(__GLEW_EXT_convolution) - -#endif /* GL_EXT_convolution */ - -/* ------------------------ GL_EXT_coordinate_frame ------------------------ */ - -#ifndef GL_EXT_coordinate_frame -#define GL_EXT_coordinate_frame 1 - -#define GL_TANGENT_ARRAY_EXT 0x8439 -#define GL_BINORMAL_ARRAY_EXT 0x843A -#define GL_CURRENT_TANGENT_EXT 0x843B -#define GL_CURRENT_BINORMAL_EXT 0x843C -#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define GL_MAP1_TANGENT_EXT 0x8444 -#define GL_MAP2_TANGENT_EXT 0x8445 -#define GL_MAP1_BINORMAL_EXT 0x8446 -#define GL_MAP2_BINORMAL_EXT 0x8447 - -typedef void (GLAPIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, void *pointer); -typedef void (GLAPIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, void *pointer); - -#define glBinormalPointerEXT GLEW_GET_FUN(__glewBinormalPointerEXT) -#define glTangentPointerEXT GLEW_GET_FUN(__glewTangentPointerEXT) - -#define GLEW_EXT_coordinate_frame GLEW_GET_VAR(__GLEW_EXT_coordinate_frame) - -#endif /* GL_EXT_coordinate_frame */ - -/* -------------------------- GL_EXT_copy_texture -------------------------- */ - -#ifndef GL_EXT_copy_texture -#define GL_EXT_copy_texture 1 - -typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); - -#define glCopyTexImage1DEXT GLEW_GET_FUN(__glewCopyTexImage1DEXT) -#define glCopyTexImage2DEXT GLEW_GET_FUN(__glewCopyTexImage2DEXT) -#define glCopyTexSubImage1DEXT GLEW_GET_FUN(__glewCopyTexSubImage1DEXT) -#define glCopyTexSubImage2DEXT GLEW_GET_FUN(__glewCopyTexSubImage2DEXT) -#define glCopyTexSubImage3DEXT GLEW_GET_FUN(__glewCopyTexSubImage3DEXT) - -#define GLEW_EXT_copy_texture GLEW_GET_VAR(__GLEW_EXT_copy_texture) - -#endif /* GL_EXT_copy_texture */ - -/* --------------------------- GL_EXT_cull_vertex -------------------------- */ - -#ifndef GL_EXT_cull_vertex -#define GL_EXT_cull_vertex 1 - -#define GL_CULL_VERTEX_EXT 0x81AA -#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB -#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC - -typedef void (GLAPIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params); - -#define glCullParameterdvEXT GLEW_GET_FUN(__glewCullParameterdvEXT) -#define glCullParameterfvEXT GLEW_GET_FUN(__glewCullParameterfvEXT) - -#define GLEW_EXT_cull_vertex GLEW_GET_VAR(__GLEW_EXT_cull_vertex) - -#endif /* GL_EXT_cull_vertex */ - -/* --------------------------- GL_EXT_debug_label -------------------------- */ - -#ifndef GL_EXT_debug_label -#define GL_EXT_debug_label 1 - -#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F -#define GL_PROGRAM_OBJECT_EXT 0x8B40 -#define GL_SHADER_OBJECT_EXT 0x8B48 -#define GL_BUFFER_OBJECT_EXT 0x9151 -#define GL_QUERY_OBJECT_EXT 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 - -typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei* length, GLchar *label); -typedef void (GLAPIENTRY * PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar* label); - -#define glGetObjectLabelEXT GLEW_GET_FUN(__glewGetObjectLabelEXT) -#define glLabelObjectEXT GLEW_GET_FUN(__glewLabelObjectEXT) - -#define GLEW_EXT_debug_label GLEW_GET_VAR(__GLEW_EXT_debug_label) - -#endif /* GL_EXT_debug_label */ - -/* -------------------------- GL_EXT_debug_marker -------------------------- */ - -#ifndef GL_EXT_debug_marker -#define GL_EXT_debug_marker 1 - -typedef void (GLAPIENTRY * PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar* marker); -typedef void (GLAPIENTRY * PFNGLPOPGROUPMARKEREXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar* marker); - -#define glInsertEventMarkerEXT GLEW_GET_FUN(__glewInsertEventMarkerEXT) -#define glPopGroupMarkerEXT GLEW_GET_FUN(__glewPopGroupMarkerEXT) -#define glPushGroupMarkerEXT GLEW_GET_FUN(__glewPushGroupMarkerEXT) - -#define GLEW_EXT_debug_marker GLEW_GET_VAR(__GLEW_EXT_debug_marker) - -#endif /* GL_EXT_debug_marker */ - -/* ------------------------ GL_EXT_depth_bounds_test ----------------------- */ - -#ifndef GL_EXT_depth_bounds_test -#define GL_EXT_depth_bounds_test 1 - -#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 -#define GL_DEPTH_BOUNDS_EXT 0x8891 - -typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); - -#define glDepthBoundsEXT GLEW_GET_FUN(__glewDepthBoundsEXT) - -#define GLEW_EXT_depth_bounds_test GLEW_GET_VAR(__GLEW_EXT_depth_bounds_test) - -#endif /* GL_EXT_depth_bounds_test */ - -/* ----------------------- GL_EXT_direct_state_access ---------------------- */ - -#ifndef GL_EXT_direct_state_access -#define GL_EXT_direct_state_access 1 - -#define GL_PROGRAM_MATRIX_EXT 0x8E2D -#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E -#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F - -typedef void (GLAPIENTRY * PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); -typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); -typedef void (GLAPIENTRY * PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); -typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (GLAPIENTRY * PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); -typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, void *img); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, void *img); -typedef void (GLAPIENTRY * PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void** params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); -typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void *string); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, void** params); -typedef void (GLAPIENTRY * PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, void** params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, void** param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, void** param); -typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); -typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GLAPIENTRY * PFNGLMATRIXFRUSTUMEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum matrixMode); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXORTHOEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); -typedef void (GLAPIENTRY * PFNGLMATRIXPOPEXTPROC) (GLenum matrixMode); -typedef void (GLAPIENTRY * PFNGLMATRIXPUSHEXTPROC) (GLenum matrixMode); -typedef void (GLAPIENTRY * PFNGLMATRIXROTATEDEXTPROC) (GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLMATRIXROTATEFEXTPROC) (GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLMATRIXSCALEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLMATRIXSCALEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* param); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* param); -typedef void (GLAPIENTRY * PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -typedef void (GLAPIENTRY * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat* param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* param); -typedef void (GLAPIENTRY * PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC) (GLuint vaobj, GLuint index, GLuint divisor); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); - -#define glBindMultiTextureEXT GLEW_GET_FUN(__glewBindMultiTextureEXT) -#define glCheckNamedFramebufferStatusEXT GLEW_GET_FUN(__glewCheckNamedFramebufferStatusEXT) -#define glClientAttribDefaultEXT GLEW_GET_FUN(__glewClientAttribDefaultEXT) -#define glCompressedMultiTexImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage1DEXT) -#define glCompressedMultiTexImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage2DEXT) -#define glCompressedMultiTexImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage3DEXT) -#define glCompressedMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage1DEXT) -#define glCompressedMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage2DEXT) -#define glCompressedMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage3DEXT) -#define glCompressedTextureImage1DEXT GLEW_GET_FUN(__glewCompressedTextureImage1DEXT) -#define glCompressedTextureImage2DEXT GLEW_GET_FUN(__glewCompressedTextureImage2DEXT) -#define glCompressedTextureImage3DEXT GLEW_GET_FUN(__glewCompressedTextureImage3DEXT) -#define glCompressedTextureSubImage1DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage1DEXT) -#define glCompressedTextureSubImage2DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage2DEXT) -#define glCompressedTextureSubImage3DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage3DEXT) -#define glCopyMultiTexImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexImage1DEXT) -#define glCopyMultiTexImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexImage2DEXT) -#define glCopyMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage1DEXT) -#define glCopyMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage2DEXT) -#define glCopyMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage3DEXT) -#define glCopyTextureImage1DEXT GLEW_GET_FUN(__glewCopyTextureImage1DEXT) -#define glCopyTextureImage2DEXT GLEW_GET_FUN(__glewCopyTextureImage2DEXT) -#define glCopyTextureSubImage1DEXT GLEW_GET_FUN(__glewCopyTextureSubImage1DEXT) -#define glCopyTextureSubImage2DEXT GLEW_GET_FUN(__glewCopyTextureSubImage2DEXT) -#define glCopyTextureSubImage3DEXT GLEW_GET_FUN(__glewCopyTextureSubImage3DEXT) -#define glDisableClientStateIndexedEXT GLEW_GET_FUN(__glewDisableClientStateIndexedEXT) -#define glDisableClientStateiEXT GLEW_GET_FUN(__glewDisableClientStateiEXT) -#define glDisableVertexArrayAttribEXT GLEW_GET_FUN(__glewDisableVertexArrayAttribEXT) -#define glDisableVertexArrayEXT GLEW_GET_FUN(__glewDisableVertexArrayEXT) -#define glEnableClientStateIndexedEXT GLEW_GET_FUN(__glewEnableClientStateIndexedEXT) -#define glEnableClientStateiEXT GLEW_GET_FUN(__glewEnableClientStateiEXT) -#define glEnableVertexArrayAttribEXT GLEW_GET_FUN(__glewEnableVertexArrayAttribEXT) -#define glEnableVertexArrayEXT GLEW_GET_FUN(__glewEnableVertexArrayEXT) -#define glFlushMappedNamedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedNamedBufferRangeEXT) -#define glFramebufferDrawBufferEXT GLEW_GET_FUN(__glewFramebufferDrawBufferEXT) -#define glFramebufferDrawBuffersEXT GLEW_GET_FUN(__glewFramebufferDrawBuffersEXT) -#define glFramebufferReadBufferEXT GLEW_GET_FUN(__glewFramebufferReadBufferEXT) -#define glGenerateMultiTexMipmapEXT GLEW_GET_FUN(__glewGenerateMultiTexMipmapEXT) -#define glGenerateTextureMipmapEXT GLEW_GET_FUN(__glewGenerateTextureMipmapEXT) -#define glGetCompressedMultiTexImageEXT GLEW_GET_FUN(__glewGetCompressedMultiTexImageEXT) -#define glGetCompressedTextureImageEXT GLEW_GET_FUN(__glewGetCompressedTextureImageEXT) -#define glGetDoubleIndexedvEXT GLEW_GET_FUN(__glewGetDoubleIndexedvEXT) -#define glGetDoublei_vEXT GLEW_GET_FUN(__glewGetDoublei_vEXT) -#define glGetFloatIndexedvEXT GLEW_GET_FUN(__glewGetFloatIndexedvEXT) -#define glGetFloati_vEXT GLEW_GET_FUN(__glewGetFloati_vEXT) -#define glGetFramebufferParameterivEXT GLEW_GET_FUN(__glewGetFramebufferParameterivEXT) -#define glGetMultiTexEnvfvEXT GLEW_GET_FUN(__glewGetMultiTexEnvfvEXT) -#define glGetMultiTexEnvivEXT GLEW_GET_FUN(__glewGetMultiTexEnvivEXT) -#define glGetMultiTexGendvEXT GLEW_GET_FUN(__glewGetMultiTexGendvEXT) -#define glGetMultiTexGenfvEXT GLEW_GET_FUN(__glewGetMultiTexGenfvEXT) -#define glGetMultiTexGenivEXT GLEW_GET_FUN(__glewGetMultiTexGenivEXT) -#define glGetMultiTexImageEXT GLEW_GET_FUN(__glewGetMultiTexImageEXT) -#define glGetMultiTexLevelParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterfvEXT) -#define glGetMultiTexLevelParameterivEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterivEXT) -#define glGetMultiTexParameterIivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIivEXT) -#define glGetMultiTexParameterIuivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIuivEXT) -#define glGetMultiTexParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexParameterfvEXT) -#define glGetMultiTexParameterivEXT GLEW_GET_FUN(__glewGetMultiTexParameterivEXT) -#define glGetNamedBufferParameterivEXT GLEW_GET_FUN(__glewGetNamedBufferParameterivEXT) -#define glGetNamedBufferPointervEXT GLEW_GET_FUN(__glewGetNamedBufferPointervEXT) -#define glGetNamedBufferSubDataEXT GLEW_GET_FUN(__glewGetNamedBufferSubDataEXT) -#define glGetNamedFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameterivEXT) -#define glGetNamedProgramLocalParameterIivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIivEXT) -#define glGetNamedProgramLocalParameterIuivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIuivEXT) -#define glGetNamedProgramLocalParameterdvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterdvEXT) -#define glGetNamedProgramLocalParameterfvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterfvEXT) -#define glGetNamedProgramStringEXT GLEW_GET_FUN(__glewGetNamedProgramStringEXT) -#define glGetNamedProgramivEXT GLEW_GET_FUN(__glewGetNamedProgramivEXT) -#define glGetNamedRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetNamedRenderbufferParameterivEXT) -#define glGetPointerIndexedvEXT GLEW_GET_FUN(__glewGetPointerIndexedvEXT) -#define glGetPointeri_vEXT GLEW_GET_FUN(__glewGetPointeri_vEXT) -#define glGetTextureImageEXT GLEW_GET_FUN(__glewGetTextureImageEXT) -#define glGetTextureLevelParameterfvEXT GLEW_GET_FUN(__glewGetTextureLevelParameterfvEXT) -#define glGetTextureLevelParameterivEXT GLEW_GET_FUN(__glewGetTextureLevelParameterivEXT) -#define glGetTextureParameterIivEXT GLEW_GET_FUN(__glewGetTextureParameterIivEXT) -#define glGetTextureParameterIuivEXT GLEW_GET_FUN(__glewGetTextureParameterIuivEXT) -#define glGetTextureParameterfvEXT GLEW_GET_FUN(__glewGetTextureParameterfvEXT) -#define glGetTextureParameterivEXT GLEW_GET_FUN(__glewGetTextureParameterivEXT) -#define glGetVertexArrayIntegeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayIntegeri_vEXT) -#define glGetVertexArrayIntegervEXT GLEW_GET_FUN(__glewGetVertexArrayIntegervEXT) -#define glGetVertexArrayPointeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayPointeri_vEXT) -#define glGetVertexArrayPointervEXT GLEW_GET_FUN(__glewGetVertexArrayPointervEXT) -#define glMapNamedBufferEXT GLEW_GET_FUN(__glewMapNamedBufferEXT) -#define glMapNamedBufferRangeEXT GLEW_GET_FUN(__glewMapNamedBufferRangeEXT) -#define glMatrixFrustumEXT GLEW_GET_FUN(__glewMatrixFrustumEXT) -#define glMatrixLoadIdentityEXT GLEW_GET_FUN(__glewMatrixLoadIdentityEXT) -#define glMatrixLoadTransposedEXT GLEW_GET_FUN(__glewMatrixLoadTransposedEXT) -#define glMatrixLoadTransposefEXT GLEW_GET_FUN(__glewMatrixLoadTransposefEXT) -#define glMatrixLoaddEXT GLEW_GET_FUN(__glewMatrixLoaddEXT) -#define glMatrixLoadfEXT GLEW_GET_FUN(__glewMatrixLoadfEXT) -#define glMatrixMultTransposedEXT GLEW_GET_FUN(__glewMatrixMultTransposedEXT) -#define glMatrixMultTransposefEXT GLEW_GET_FUN(__glewMatrixMultTransposefEXT) -#define glMatrixMultdEXT GLEW_GET_FUN(__glewMatrixMultdEXT) -#define glMatrixMultfEXT GLEW_GET_FUN(__glewMatrixMultfEXT) -#define glMatrixOrthoEXT GLEW_GET_FUN(__glewMatrixOrthoEXT) -#define glMatrixPopEXT GLEW_GET_FUN(__glewMatrixPopEXT) -#define glMatrixPushEXT GLEW_GET_FUN(__glewMatrixPushEXT) -#define glMatrixRotatedEXT GLEW_GET_FUN(__glewMatrixRotatedEXT) -#define glMatrixRotatefEXT GLEW_GET_FUN(__glewMatrixRotatefEXT) -#define glMatrixScaledEXT GLEW_GET_FUN(__glewMatrixScaledEXT) -#define glMatrixScalefEXT GLEW_GET_FUN(__glewMatrixScalefEXT) -#define glMatrixTranslatedEXT GLEW_GET_FUN(__glewMatrixTranslatedEXT) -#define glMatrixTranslatefEXT GLEW_GET_FUN(__glewMatrixTranslatefEXT) -#define glMultiTexBufferEXT GLEW_GET_FUN(__glewMultiTexBufferEXT) -#define glMultiTexCoordPointerEXT GLEW_GET_FUN(__glewMultiTexCoordPointerEXT) -#define glMultiTexEnvfEXT GLEW_GET_FUN(__glewMultiTexEnvfEXT) -#define glMultiTexEnvfvEXT GLEW_GET_FUN(__glewMultiTexEnvfvEXT) -#define glMultiTexEnviEXT GLEW_GET_FUN(__glewMultiTexEnviEXT) -#define glMultiTexEnvivEXT GLEW_GET_FUN(__glewMultiTexEnvivEXT) -#define glMultiTexGendEXT GLEW_GET_FUN(__glewMultiTexGendEXT) -#define glMultiTexGendvEXT GLEW_GET_FUN(__glewMultiTexGendvEXT) -#define glMultiTexGenfEXT GLEW_GET_FUN(__glewMultiTexGenfEXT) -#define glMultiTexGenfvEXT GLEW_GET_FUN(__glewMultiTexGenfvEXT) -#define glMultiTexGeniEXT GLEW_GET_FUN(__glewMultiTexGeniEXT) -#define glMultiTexGenivEXT GLEW_GET_FUN(__glewMultiTexGenivEXT) -#define glMultiTexImage1DEXT GLEW_GET_FUN(__glewMultiTexImage1DEXT) -#define glMultiTexImage2DEXT GLEW_GET_FUN(__glewMultiTexImage2DEXT) -#define glMultiTexImage3DEXT GLEW_GET_FUN(__glewMultiTexImage3DEXT) -#define glMultiTexParameterIivEXT GLEW_GET_FUN(__glewMultiTexParameterIivEXT) -#define glMultiTexParameterIuivEXT GLEW_GET_FUN(__glewMultiTexParameterIuivEXT) -#define glMultiTexParameterfEXT GLEW_GET_FUN(__glewMultiTexParameterfEXT) -#define glMultiTexParameterfvEXT GLEW_GET_FUN(__glewMultiTexParameterfvEXT) -#define glMultiTexParameteriEXT GLEW_GET_FUN(__glewMultiTexParameteriEXT) -#define glMultiTexParameterivEXT GLEW_GET_FUN(__glewMultiTexParameterivEXT) -#define glMultiTexRenderbufferEXT GLEW_GET_FUN(__glewMultiTexRenderbufferEXT) -#define glMultiTexSubImage1DEXT GLEW_GET_FUN(__glewMultiTexSubImage1DEXT) -#define glMultiTexSubImage2DEXT GLEW_GET_FUN(__glewMultiTexSubImage2DEXT) -#define glMultiTexSubImage3DEXT GLEW_GET_FUN(__glewMultiTexSubImage3DEXT) -#define glNamedBufferDataEXT GLEW_GET_FUN(__glewNamedBufferDataEXT) -#define glNamedBufferSubDataEXT GLEW_GET_FUN(__glewNamedBufferSubDataEXT) -#define glNamedCopyBufferSubDataEXT GLEW_GET_FUN(__glewNamedCopyBufferSubDataEXT) -#define glNamedFramebufferRenderbufferEXT GLEW_GET_FUN(__glewNamedFramebufferRenderbufferEXT) -#define glNamedFramebufferTexture1DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture1DEXT) -#define glNamedFramebufferTexture2DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture2DEXT) -#define glNamedFramebufferTexture3DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture3DEXT) -#define glNamedFramebufferTextureEXT GLEW_GET_FUN(__glewNamedFramebufferTextureEXT) -#define glNamedFramebufferTextureFaceEXT GLEW_GET_FUN(__glewNamedFramebufferTextureFaceEXT) -#define glNamedFramebufferTextureLayerEXT GLEW_GET_FUN(__glewNamedFramebufferTextureLayerEXT) -#define glNamedProgramLocalParameter4dEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dEXT) -#define glNamedProgramLocalParameter4dvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dvEXT) -#define glNamedProgramLocalParameter4fEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fEXT) -#define glNamedProgramLocalParameter4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fvEXT) -#define glNamedProgramLocalParameterI4iEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4iEXT) -#define glNamedProgramLocalParameterI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4ivEXT) -#define glNamedProgramLocalParameterI4uiEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uiEXT) -#define glNamedProgramLocalParameterI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uivEXT) -#define glNamedProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameters4fvEXT) -#define glNamedProgramLocalParametersI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4ivEXT) -#define glNamedProgramLocalParametersI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4uivEXT) -#define glNamedProgramStringEXT GLEW_GET_FUN(__glewNamedProgramStringEXT) -#define glNamedRenderbufferStorageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageEXT) -#define glNamedRenderbufferStorageMultisampleCoverageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleCoverageEXT) -#define glNamedRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleEXT) -#define glProgramUniform1fEXT GLEW_GET_FUN(__glewProgramUniform1fEXT) -#define glProgramUniform1fvEXT GLEW_GET_FUN(__glewProgramUniform1fvEXT) -#define glProgramUniform1iEXT GLEW_GET_FUN(__glewProgramUniform1iEXT) -#define glProgramUniform1ivEXT GLEW_GET_FUN(__glewProgramUniform1ivEXT) -#define glProgramUniform1uiEXT GLEW_GET_FUN(__glewProgramUniform1uiEXT) -#define glProgramUniform1uivEXT GLEW_GET_FUN(__glewProgramUniform1uivEXT) -#define glProgramUniform2fEXT GLEW_GET_FUN(__glewProgramUniform2fEXT) -#define glProgramUniform2fvEXT GLEW_GET_FUN(__glewProgramUniform2fvEXT) -#define glProgramUniform2iEXT GLEW_GET_FUN(__glewProgramUniform2iEXT) -#define glProgramUniform2ivEXT GLEW_GET_FUN(__glewProgramUniform2ivEXT) -#define glProgramUniform2uiEXT GLEW_GET_FUN(__glewProgramUniform2uiEXT) -#define glProgramUniform2uivEXT GLEW_GET_FUN(__glewProgramUniform2uivEXT) -#define glProgramUniform3fEXT GLEW_GET_FUN(__glewProgramUniform3fEXT) -#define glProgramUniform3fvEXT GLEW_GET_FUN(__glewProgramUniform3fvEXT) -#define glProgramUniform3iEXT GLEW_GET_FUN(__glewProgramUniform3iEXT) -#define glProgramUniform3ivEXT GLEW_GET_FUN(__glewProgramUniform3ivEXT) -#define glProgramUniform3uiEXT GLEW_GET_FUN(__glewProgramUniform3uiEXT) -#define glProgramUniform3uivEXT GLEW_GET_FUN(__glewProgramUniform3uivEXT) -#define glProgramUniform4fEXT GLEW_GET_FUN(__glewProgramUniform4fEXT) -#define glProgramUniform4fvEXT GLEW_GET_FUN(__glewProgramUniform4fvEXT) -#define glProgramUniform4iEXT GLEW_GET_FUN(__glewProgramUniform4iEXT) -#define glProgramUniform4ivEXT GLEW_GET_FUN(__glewProgramUniform4ivEXT) -#define glProgramUniform4uiEXT GLEW_GET_FUN(__glewProgramUniform4uiEXT) -#define glProgramUniform4uivEXT GLEW_GET_FUN(__glewProgramUniform4uivEXT) -#define glProgramUniformMatrix2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2fvEXT) -#define glProgramUniformMatrix2x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3fvEXT) -#define glProgramUniformMatrix2x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4fvEXT) -#define glProgramUniformMatrix3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3fvEXT) -#define glProgramUniformMatrix3x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2fvEXT) -#define glProgramUniformMatrix3x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4fvEXT) -#define glProgramUniformMatrix4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4fvEXT) -#define glProgramUniformMatrix4x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2fvEXT) -#define glProgramUniformMatrix4x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3fvEXT) -#define glPushClientAttribDefaultEXT GLEW_GET_FUN(__glewPushClientAttribDefaultEXT) -#define glTextureBufferEXT GLEW_GET_FUN(__glewTextureBufferEXT) -#define glTextureImage1DEXT GLEW_GET_FUN(__glewTextureImage1DEXT) -#define glTextureImage2DEXT GLEW_GET_FUN(__glewTextureImage2DEXT) -#define glTextureImage3DEXT GLEW_GET_FUN(__glewTextureImage3DEXT) -#define glTextureParameterIivEXT GLEW_GET_FUN(__glewTextureParameterIivEXT) -#define glTextureParameterIuivEXT GLEW_GET_FUN(__glewTextureParameterIuivEXT) -#define glTextureParameterfEXT GLEW_GET_FUN(__glewTextureParameterfEXT) -#define glTextureParameterfvEXT GLEW_GET_FUN(__glewTextureParameterfvEXT) -#define glTextureParameteriEXT GLEW_GET_FUN(__glewTextureParameteriEXT) -#define glTextureParameterivEXT GLEW_GET_FUN(__glewTextureParameterivEXT) -#define glTextureRenderbufferEXT GLEW_GET_FUN(__glewTextureRenderbufferEXT) -#define glTextureSubImage1DEXT GLEW_GET_FUN(__glewTextureSubImage1DEXT) -#define glTextureSubImage2DEXT GLEW_GET_FUN(__glewTextureSubImage2DEXT) -#define glTextureSubImage3DEXT GLEW_GET_FUN(__glewTextureSubImage3DEXT) -#define glUnmapNamedBufferEXT GLEW_GET_FUN(__glewUnmapNamedBufferEXT) -#define glVertexArrayColorOffsetEXT GLEW_GET_FUN(__glewVertexArrayColorOffsetEXT) -#define glVertexArrayEdgeFlagOffsetEXT GLEW_GET_FUN(__glewVertexArrayEdgeFlagOffsetEXT) -#define glVertexArrayFogCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayFogCoordOffsetEXT) -#define glVertexArrayIndexOffsetEXT GLEW_GET_FUN(__glewVertexArrayIndexOffsetEXT) -#define glVertexArrayMultiTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayMultiTexCoordOffsetEXT) -#define glVertexArrayNormalOffsetEXT GLEW_GET_FUN(__glewVertexArrayNormalOffsetEXT) -#define glVertexArraySecondaryColorOffsetEXT GLEW_GET_FUN(__glewVertexArraySecondaryColorOffsetEXT) -#define glVertexArrayTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayTexCoordOffsetEXT) -#define glVertexArrayVertexAttribDivisorEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribDivisorEXT) -#define glVertexArrayVertexAttribIOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIOffsetEXT) -#define glVertexArrayVertexAttribOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribOffsetEXT) -#define glVertexArrayVertexOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexOffsetEXT) - -#define GLEW_EXT_direct_state_access GLEW_GET_VAR(__GLEW_EXT_direct_state_access) - -#endif /* GL_EXT_direct_state_access */ - -/* -------------------------- GL_EXT_draw_buffers2 ------------------------- */ - -#ifndef GL_EXT_draw_buffers2 -#define GL_EXT_draw_buffers2 1 - -typedef void (GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (GLAPIENTRY * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum value, GLuint index, GLboolean* data); -typedef void (GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum value, GLuint index, GLint* data); -typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); - -#define glColorMaskIndexedEXT GLEW_GET_FUN(__glewColorMaskIndexedEXT) -#define glDisableIndexedEXT GLEW_GET_FUN(__glewDisableIndexedEXT) -#define glEnableIndexedEXT GLEW_GET_FUN(__glewEnableIndexedEXT) -#define glGetBooleanIndexedvEXT GLEW_GET_FUN(__glewGetBooleanIndexedvEXT) -#define glGetIntegerIndexedvEXT GLEW_GET_FUN(__glewGetIntegerIndexedvEXT) -#define glIsEnabledIndexedEXT GLEW_GET_FUN(__glewIsEnabledIndexedEXT) - -#define GLEW_EXT_draw_buffers2 GLEW_GET_VAR(__GLEW_EXT_draw_buffers2) - -#endif /* GL_EXT_draw_buffers2 */ - -/* ------------------------- GL_EXT_draw_instanced ------------------------- */ - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 - -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); - -#define glDrawArraysInstancedEXT GLEW_GET_FUN(__glewDrawArraysInstancedEXT) -#define glDrawElementsInstancedEXT GLEW_GET_FUN(__glewDrawElementsInstancedEXT) - -#define GLEW_EXT_draw_instanced GLEW_GET_VAR(__GLEW_EXT_draw_instanced) - -#endif /* GL_EXT_draw_instanced */ - -/* ----------------------- GL_EXT_draw_range_elements ---------------------- */ - -#ifndef GL_EXT_draw_range_elements -#define GL_EXT_draw_range_elements 1 - -#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 - -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); - -#define glDrawRangeElementsEXT GLEW_GET_FUN(__glewDrawRangeElementsEXT) - -#define GLEW_EXT_draw_range_elements GLEW_GET_VAR(__GLEW_EXT_draw_range_elements) - -#endif /* GL_EXT_draw_range_elements */ - -/* ---------------------------- GL_EXT_fog_coord --------------------------- */ - -#ifndef GL_EXT_fog_coord -#define GL_EXT_fog_coord 1 - -#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define GL_FOG_COORDINATE_EXT 0x8451 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 -#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 - -typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); - -#define glFogCoordPointerEXT GLEW_GET_FUN(__glewFogCoordPointerEXT) -#define glFogCoorddEXT GLEW_GET_FUN(__glewFogCoorddEXT) -#define glFogCoorddvEXT GLEW_GET_FUN(__glewFogCoorddvEXT) -#define glFogCoordfEXT GLEW_GET_FUN(__glewFogCoordfEXT) -#define glFogCoordfvEXT GLEW_GET_FUN(__glewFogCoordfvEXT) - -#define GLEW_EXT_fog_coord GLEW_GET_VAR(__GLEW_EXT_fog_coord) - -#endif /* GL_EXT_fog_coord */ - -/* ------------------------ GL_EXT_fragment_lighting ----------------------- */ - -#ifndef GL_EXT_fragment_lighting -#define GL_EXT_fragment_lighting 1 - -#define GL_FRAGMENT_LIGHTING_EXT 0x8400 -#define GL_FRAGMENT_COLOR_MATERIAL_EXT 0x8401 -#define GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT 0x8402 -#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT 0x8403 -#define GL_MAX_FRAGMENT_LIGHTS_EXT 0x8404 -#define GL_MAX_ACTIVE_LIGHTS_EXT 0x8405 -#define GL_CURRENT_RASTER_NORMAL_EXT 0x8406 -#define GL_LIGHT_ENV_MODE_EXT 0x8407 -#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT 0x8408 -#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT 0x8409 -#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT 0x840A -#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT 0x840B -#define GL_FRAGMENT_LIGHT0_EXT 0x840C -#define GL_FRAGMENT_LIGHT7_EXT 0x8413 - -typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALEXTPROC) (GLenum face, GLenum mode); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFEXTPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVEXTPROC) (GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIEXTPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVEXTPROC) (GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFEXTPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIEXTPROC) (GLenum light, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFEXTPROC) (GLenum face, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIEXTPROC) (GLenum face, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLLIGHTENVIEXTPROC) (GLenum pname, GLint param); - -#define glFragmentColorMaterialEXT GLEW_GET_FUN(__glewFragmentColorMaterialEXT) -#define glFragmentLightModelfEXT GLEW_GET_FUN(__glewFragmentLightModelfEXT) -#define glFragmentLightModelfvEXT GLEW_GET_FUN(__glewFragmentLightModelfvEXT) -#define glFragmentLightModeliEXT GLEW_GET_FUN(__glewFragmentLightModeliEXT) -#define glFragmentLightModelivEXT GLEW_GET_FUN(__glewFragmentLightModelivEXT) -#define glFragmentLightfEXT GLEW_GET_FUN(__glewFragmentLightfEXT) -#define glFragmentLightfvEXT GLEW_GET_FUN(__glewFragmentLightfvEXT) -#define glFragmentLightiEXT GLEW_GET_FUN(__glewFragmentLightiEXT) -#define glFragmentLightivEXT GLEW_GET_FUN(__glewFragmentLightivEXT) -#define glFragmentMaterialfEXT GLEW_GET_FUN(__glewFragmentMaterialfEXT) -#define glFragmentMaterialfvEXT GLEW_GET_FUN(__glewFragmentMaterialfvEXT) -#define glFragmentMaterialiEXT GLEW_GET_FUN(__glewFragmentMaterialiEXT) -#define glFragmentMaterialivEXT GLEW_GET_FUN(__glewFragmentMaterialivEXT) -#define glGetFragmentLightfvEXT GLEW_GET_FUN(__glewGetFragmentLightfvEXT) -#define glGetFragmentLightivEXT GLEW_GET_FUN(__glewGetFragmentLightivEXT) -#define glGetFragmentMaterialfvEXT GLEW_GET_FUN(__glewGetFragmentMaterialfvEXT) -#define glGetFragmentMaterialivEXT GLEW_GET_FUN(__glewGetFragmentMaterialivEXT) -#define glLightEnviEXT GLEW_GET_FUN(__glewLightEnviEXT) - -#define GLEW_EXT_fragment_lighting GLEW_GET_VAR(__GLEW_EXT_fragment_lighting) - -#endif /* GL_EXT_fragment_lighting */ - -/* ------------------------ GL_EXT_framebuffer_blit ------------------------ */ - -#ifndef GL_EXT_framebuffer_blit -#define GL_EXT_framebuffer_blit 1 - -#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA - -typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); - -#define glBlitFramebufferEXT GLEW_GET_FUN(__glewBlitFramebufferEXT) - -#define GLEW_EXT_framebuffer_blit GLEW_GET_VAR(__GLEW_EXT_framebuffer_blit) - -#endif /* GL_EXT_framebuffer_blit */ - -/* --------------------- GL_EXT_framebuffer_multisample -------------------- */ - -#ifndef GL_EXT_framebuffer_multisample -#define GL_EXT_framebuffer_multisample 1 - -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 - -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); - -#define glRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewRenderbufferStorageMultisampleEXT) - -#define GLEW_EXT_framebuffer_multisample GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample) - -#endif /* GL_EXT_framebuffer_multisample */ - -/* --------------- GL_EXT_framebuffer_multisample_blit_scaled -------------- */ - -#ifndef GL_EXT_framebuffer_multisample_blit_scaled -#define GL_EXT_framebuffer_multisample_blit_scaled 1 - -#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA -#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB - -#define GLEW_EXT_framebuffer_multisample_blit_scaled GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample_blit_scaled) - -#endif /* GL_EXT_framebuffer_multisample_blit_scaled */ - -/* ----------------------- GL_EXT_framebuffer_object ----------------------- */ - -#ifndef GL_EXT_framebuffer_object -#define GL_EXT_framebuffer_object 1 - -#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 -#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 -#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 -#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 -#define GL_FRAMEBUFFER_EXT 0x8D40 -#define GL_RENDERBUFFER_EXT 0x8D41 -#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 -#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 -#define GL_STENCIL_INDEX1_EXT 0x8D46 -#define GL_STENCIL_INDEX4_EXT 0x8D47 -#define GL_STENCIL_INDEX8_EXT 0x8D48 -#define GL_STENCIL_INDEX16_EXT 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 - -typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); -typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); -typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); -typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); - -#define glBindFramebufferEXT GLEW_GET_FUN(__glewBindFramebufferEXT) -#define glBindRenderbufferEXT GLEW_GET_FUN(__glewBindRenderbufferEXT) -#define glCheckFramebufferStatusEXT GLEW_GET_FUN(__glewCheckFramebufferStatusEXT) -#define glDeleteFramebuffersEXT GLEW_GET_FUN(__glewDeleteFramebuffersEXT) -#define glDeleteRenderbuffersEXT GLEW_GET_FUN(__glewDeleteRenderbuffersEXT) -#define glFramebufferRenderbufferEXT GLEW_GET_FUN(__glewFramebufferRenderbufferEXT) -#define glFramebufferTexture1DEXT GLEW_GET_FUN(__glewFramebufferTexture1DEXT) -#define glFramebufferTexture2DEXT GLEW_GET_FUN(__glewFramebufferTexture2DEXT) -#define glFramebufferTexture3DEXT GLEW_GET_FUN(__glewFramebufferTexture3DEXT) -#define glGenFramebuffersEXT GLEW_GET_FUN(__glewGenFramebuffersEXT) -#define glGenRenderbuffersEXT GLEW_GET_FUN(__glewGenRenderbuffersEXT) -#define glGenerateMipmapEXT GLEW_GET_FUN(__glewGenerateMipmapEXT) -#define glGetFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetFramebufferAttachmentParameterivEXT) -#define glGetRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetRenderbufferParameterivEXT) -#define glIsFramebufferEXT GLEW_GET_FUN(__glewIsFramebufferEXT) -#define glIsRenderbufferEXT GLEW_GET_FUN(__glewIsRenderbufferEXT) -#define glRenderbufferStorageEXT GLEW_GET_FUN(__glewRenderbufferStorageEXT) - -#define GLEW_EXT_framebuffer_object GLEW_GET_VAR(__GLEW_EXT_framebuffer_object) - -#endif /* GL_EXT_framebuffer_object */ - -/* ------------------------ GL_EXT_framebuffer_sRGB ------------------------ */ - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_EXT_framebuffer_sRGB 1 - -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA - -#define GLEW_EXT_framebuffer_sRGB GLEW_GET_VAR(__GLEW_EXT_framebuffer_sRGB) - -#endif /* GL_EXT_framebuffer_sRGB */ - -/* ------------------------ GL_EXT_geometry_shader4 ------------------------ */ - -#ifndef GL_EXT_geometry_shader4 -#define GL_EXT_geometry_shader4 1 - -#define GL_LINES_ADJACENCY_EXT 0xA -#define GL_LINE_STRIP_ADJACENCY_EXT 0xB -#define GL_TRIANGLES_ADJACENCY_EXT 0xC -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD -#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 -#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); - -#define glFramebufferTextureEXT GLEW_GET_FUN(__glewFramebufferTextureEXT) -#define glFramebufferTextureFaceEXT GLEW_GET_FUN(__glewFramebufferTextureFaceEXT) -#define glProgramParameteriEXT GLEW_GET_FUN(__glewProgramParameteriEXT) - -#define GLEW_EXT_geometry_shader4 GLEW_GET_VAR(__GLEW_EXT_geometry_shader4) - -#endif /* GL_EXT_geometry_shader4 */ - -/* --------------------- GL_EXT_gpu_program_parameters --------------------- */ - -#ifndef GL_EXT_gpu_program_parameters -#define GL_EXT_gpu_program_parameters 1 - -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); - -#define glProgramEnvParameters4fvEXT GLEW_GET_FUN(__glewProgramEnvParameters4fvEXT) -#define glProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewProgramLocalParameters4fvEXT) - -#define GLEW_EXT_gpu_program_parameters GLEW_GET_VAR(__GLEW_EXT_gpu_program_parameters) - -#endif /* GL_EXT_gpu_program_parameters */ - -/* --------------------------- GL_EXT_gpu_shader4 -------------------------- */ - -#ifndef GL_EXT_gpu_shader4 -#define GL_EXT_gpu_shader4 1 - -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD -#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 -#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 -#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 -#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 -#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 -#define GL_INT_SAMPLER_1D_EXT 0x8DC9 -#define GL_INT_SAMPLER_2D_EXT 0x8DCA -#define GL_INT_SAMPLER_3D_EXT 0x8DCB -#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC -#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD -#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 - -typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); - -#define glBindFragDataLocationEXT GLEW_GET_FUN(__glewBindFragDataLocationEXT) -#define glGetFragDataLocationEXT GLEW_GET_FUN(__glewGetFragDataLocationEXT) -#define glGetUniformuivEXT GLEW_GET_FUN(__glewGetUniformuivEXT) -#define glGetVertexAttribIivEXT GLEW_GET_FUN(__glewGetVertexAttribIivEXT) -#define glGetVertexAttribIuivEXT GLEW_GET_FUN(__glewGetVertexAttribIuivEXT) -#define glUniform1uiEXT GLEW_GET_FUN(__glewUniform1uiEXT) -#define glUniform1uivEXT GLEW_GET_FUN(__glewUniform1uivEXT) -#define glUniform2uiEXT GLEW_GET_FUN(__glewUniform2uiEXT) -#define glUniform2uivEXT GLEW_GET_FUN(__glewUniform2uivEXT) -#define glUniform3uiEXT GLEW_GET_FUN(__glewUniform3uiEXT) -#define glUniform3uivEXT GLEW_GET_FUN(__glewUniform3uivEXT) -#define glUniform4uiEXT GLEW_GET_FUN(__glewUniform4uiEXT) -#define glUniform4uivEXT GLEW_GET_FUN(__glewUniform4uivEXT) -#define glVertexAttribI1iEXT GLEW_GET_FUN(__glewVertexAttribI1iEXT) -#define glVertexAttribI1ivEXT GLEW_GET_FUN(__glewVertexAttribI1ivEXT) -#define glVertexAttribI1uiEXT GLEW_GET_FUN(__glewVertexAttribI1uiEXT) -#define glVertexAttribI1uivEXT GLEW_GET_FUN(__glewVertexAttribI1uivEXT) -#define glVertexAttribI2iEXT GLEW_GET_FUN(__glewVertexAttribI2iEXT) -#define glVertexAttribI2ivEXT GLEW_GET_FUN(__glewVertexAttribI2ivEXT) -#define glVertexAttribI2uiEXT GLEW_GET_FUN(__glewVertexAttribI2uiEXT) -#define glVertexAttribI2uivEXT GLEW_GET_FUN(__glewVertexAttribI2uivEXT) -#define glVertexAttribI3iEXT GLEW_GET_FUN(__glewVertexAttribI3iEXT) -#define glVertexAttribI3ivEXT GLEW_GET_FUN(__glewVertexAttribI3ivEXT) -#define glVertexAttribI3uiEXT GLEW_GET_FUN(__glewVertexAttribI3uiEXT) -#define glVertexAttribI3uivEXT GLEW_GET_FUN(__glewVertexAttribI3uivEXT) -#define glVertexAttribI4bvEXT GLEW_GET_FUN(__glewVertexAttribI4bvEXT) -#define glVertexAttribI4iEXT GLEW_GET_FUN(__glewVertexAttribI4iEXT) -#define glVertexAttribI4ivEXT GLEW_GET_FUN(__glewVertexAttribI4ivEXT) -#define glVertexAttribI4svEXT GLEW_GET_FUN(__glewVertexAttribI4svEXT) -#define glVertexAttribI4ubvEXT GLEW_GET_FUN(__glewVertexAttribI4ubvEXT) -#define glVertexAttribI4uiEXT GLEW_GET_FUN(__glewVertexAttribI4uiEXT) -#define glVertexAttribI4uivEXT GLEW_GET_FUN(__glewVertexAttribI4uivEXT) -#define glVertexAttribI4usvEXT GLEW_GET_FUN(__glewVertexAttribI4usvEXT) -#define glVertexAttribIPointerEXT GLEW_GET_FUN(__glewVertexAttribIPointerEXT) - -#define GLEW_EXT_gpu_shader4 GLEW_GET_VAR(__GLEW_EXT_gpu_shader4) - -#endif /* GL_EXT_gpu_shader4 */ - -/* ---------------------------- GL_EXT_histogram --------------------------- */ - -#ifndef GL_EXT_histogram -#define GL_EXT_histogram 1 - -#define GL_HISTOGRAM_EXT 0x8024 -#define GL_PROXY_HISTOGRAM_EXT 0x8025 -#define GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define GL_HISTOGRAM_SINK_EXT 0x802D -#define GL_MINMAX_EXT 0x802E -#define GL_MINMAX_FORMAT_EXT 0x802F -#define GL_MINMAX_SINK_EXT 0x8030 - -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target); - -#define glGetHistogramEXT GLEW_GET_FUN(__glewGetHistogramEXT) -#define glGetHistogramParameterfvEXT GLEW_GET_FUN(__glewGetHistogramParameterfvEXT) -#define glGetHistogramParameterivEXT GLEW_GET_FUN(__glewGetHistogramParameterivEXT) -#define glGetMinmaxEXT GLEW_GET_FUN(__glewGetMinmaxEXT) -#define glGetMinmaxParameterfvEXT GLEW_GET_FUN(__glewGetMinmaxParameterfvEXT) -#define glGetMinmaxParameterivEXT GLEW_GET_FUN(__glewGetMinmaxParameterivEXT) -#define glHistogramEXT GLEW_GET_FUN(__glewHistogramEXT) -#define glMinmaxEXT GLEW_GET_FUN(__glewMinmaxEXT) -#define glResetHistogramEXT GLEW_GET_FUN(__glewResetHistogramEXT) -#define glResetMinmaxEXT GLEW_GET_FUN(__glewResetMinmaxEXT) - -#define GLEW_EXT_histogram GLEW_GET_VAR(__GLEW_EXT_histogram) - -#endif /* GL_EXT_histogram */ - -/* ----------------------- GL_EXT_index_array_formats ---------------------- */ - -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 - -#define GLEW_EXT_index_array_formats GLEW_GET_VAR(__GLEW_EXT_index_array_formats) - -#endif /* GL_EXT_index_array_formats */ - -/* --------------------------- GL_EXT_index_func --------------------------- */ - -#ifndef GL_EXT_index_func -#define GL_EXT_index_func 1 - -typedef void (GLAPIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLfloat ref); - -#define glIndexFuncEXT GLEW_GET_FUN(__glewIndexFuncEXT) - -#define GLEW_EXT_index_func GLEW_GET_VAR(__GLEW_EXT_index_func) - -#endif /* GL_EXT_index_func */ - -/* ------------------------- GL_EXT_index_material ------------------------- */ - -#ifndef GL_EXT_index_material -#define GL_EXT_index_material 1 - -typedef void (GLAPIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); - -#define glIndexMaterialEXT GLEW_GET_FUN(__glewIndexMaterialEXT) - -#define GLEW_EXT_index_material GLEW_GET_VAR(__GLEW_EXT_index_material) - -#endif /* GL_EXT_index_material */ - -/* -------------------------- GL_EXT_index_texture ------------------------- */ - -#ifndef GL_EXT_index_texture -#define GL_EXT_index_texture 1 - -#define GLEW_EXT_index_texture GLEW_GET_VAR(__GLEW_EXT_index_texture) - -#endif /* GL_EXT_index_texture */ - -/* -------------------------- GL_EXT_light_texture ------------------------- */ - -#ifndef GL_EXT_light_texture -#define GL_EXT_light_texture 1 - -#define GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define GL_FRAGMENT_NORMAL_EXT 0x834A -#define GL_FRAGMENT_COLOR_EXT 0x834C -#define GL_ATTENUATION_EXT 0x834D -#define GL_SHADOW_ATTENUATION_EXT 0x834E -#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define GL_TEXTURE_LIGHT_EXT 0x8350 -#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 - -typedef void (GLAPIENTRY * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); -typedef void (GLAPIENTRY * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); -typedef void (GLAPIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); - -#define glApplyTextureEXT GLEW_GET_FUN(__glewApplyTextureEXT) -#define glTextureLightEXT GLEW_GET_FUN(__glewTextureLightEXT) -#define glTextureMaterialEXT GLEW_GET_FUN(__glewTextureMaterialEXT) - -#define GLEW_EXT_light_texture GLEW_GET_VAR(__GLEW_EXT_light_texture) - -#endif /* GL_EXT_light_texture */ - -/* ------------------------- GL_EXT_misc_attribute ------------------------- */ - -#ifndef GL_EXT_misc_attribute -#define GL_EXT_misc_attribute 1 - -#define GLEW_EXT_misc_attribute GLEW_GET_VAR(__GLEW_EXT_misc_attribute) - -#endif /* GL_EXT_misc_attribute */ - -/* ------------------------ GL_EXT_multi_draw_arrays ----------------------- */ - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 - -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei* count, GLenum type, const void *const *indices, GLsizei primcount); - -#define glMultiDrawArraysEXT GLEW_GET_FUN(__glewMultiDrawArraysEXT) -#define glMultiDrawElementsEXT GLEW_GET_FUN(__glewMultiDrawElementsEXT) - -#define GLEW_EXT_multi_draw_arrays GLEW_GET_VAR(__GLEW_EXT_multi_draw_arrays) - -#endif /* GL_EXT_multi_draw_arrays */ - -/* --------------------------- GL_EXT_multisample -------------------------- */ - -#ifndef GL_EXT_multisample -#define GL_EXT_multisample 1 - -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define GL_SAMPLE_MASK_EXT 0x80A0 -#define GL_1PASS_EXT 0x80A1 -#define GL_2PASS_0_EXT 0x80A2 -#define GL_2PASS_1_EXT 0x80A3 -#define GL_4PASS_0_EXT 0x80A4 -#define GL_4PASS_1_EXT 0x80A5 -#define GL_4PASS_2_EXT 0x80A6 -#define GL_4PASS_3_EXT 0x80A7 -#define GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define GL_SAMPLES_EXT 0x80A9 -#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define GL_SAMPLE_PATTERN_EXT 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 - -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); -typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); - -#define glSampleMaskEXT GLEW_GET_FUN(__glewSampleMaskEXT) -#define glSamplePatternEXT GLEW_GET_FUN(__glewSamplePatternEXT) - -#define GLEW_EXT_multisample GLEW_GET_VAR(__GLEW_EXT_multisample) - -#endif /* GL_EXT_multisample */ - -/* ---------------------- GL_EXT_packed_depth_stencil ---------------------- */ - -#ifndef GL_EXT_packed_depth_stencil -#define GL_EXT_packed_depth_stencil 1 - -#define GL_DEPTH_STENCIL_EXT 0x84F9 -#define GL_UNSIGNED_INT_24_8_EXT 0x84FA -#define GL_DEPTH24_STENCIL8_EXT 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 - -#define GLEW_EXT_packed_depth_stencil GLEW_GET_VAR(__GLEW_EXT_packed_depth_stencil) - -#endif /* GL_EXT_packed_depth_stencil */ - -/* -------------------------- GL_EXT_packed_float -------------------------- */ - -#ifndef GL_EXT_packed_float -#define GL_EXT_packed_float 1 - -#define GL_R11F_G11F_B10F_EXT 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B -#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C - -#define GLEW_EXT_packed_float GLEW_GET_VAR(__GLEW_EXT_packed_float) - -#endif /* GL_EXT_packed_float */ - -/* -------------------------- GL_EXT_packed_pixels ------------------------- */ - -#ifndef GL_EXT_packed_pixels -#define GL_EXT_packed_pixels 1 - -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 - -#define GLEW_EXT_packed_pixels GLEW_GET_VAR(__GLEW_EXT_packed_pixels) - -#endif /* GL_EXT_packed_pixels */ - -/* ------------------------ GL_EXT_paletted_texture ------------------------ */ - -#ifndef GL_EXT_paletted_texture -#define GL_EXT_paletted_texture 1 - -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_COLOR_TABLE_FORMAT_EXT 0x80D8 -#define GL_COLOR_TABLE_WIDTH_EXT 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B - -typedef void (GLAPIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *data); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void *data); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); - -#define glColorTableEXT GLEW_GET_FUN(__glewColorTableEXT) -#define glGetColorTableEXT GLEW_GET_FUN(__glewGetColorTableEXT) -#define glGetColorTableParameterfvEXT GLEW_GET_FUN(__glewGetColorTableParameterfvEXT) -#define glGetColorTableParameterivEXT GLEW_GET_FUN(__glewGetColorTableParameterivEXT) - -#define GLEW_EXT_paletted_texture GLEW_GET_VAR(__GLEW_EXT_paletted_texture) - -#endif /* GL_EXT_paletted_texture */ - -/* ----------------------- GL_EXT_pixel_buffer_object ---------------------- */ - -#ifndef GL_EXT_pixel_buffer_object -#define GL_EXT_pixel_buffer_object 1 - -#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF - -#define GLEW_EXT_pixel_buffer_object GLEW_GET_VAR(__GLEW_EXT_pixel_buffer_object) - -#endif /* GL_EXT_pixel_buffer_object */ - -/* ------------------------- GL_EXT_pixel_transform ------------------------ */ - -#ifndef GL_EXT_pixel_transform -#define GL_EXT_pixel_transform 1 - -#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define GL_CUBIC_EXT 0x8334 -#define GL_AVERAGE_EXT 0x8335 -#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 - -typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); - -#define glGetPixelTransformParameterfvEXT GLEW_GET_FUN(__glewGetPixelTransformParameterfvEXT) -#define glGetPixelTransformParameterivEXT GLEW_GET_FUN(__glewGetPixelTransformParameterivEXT) -#define glPixelTransformParameterfEXT GLEW_GET_FUN(__glewPixelTransformParameterfEXT) -#define glPixelTransformParameterfvEXT GLEW_GET_FUN(__glewPixelTransformParameterfvEXT) -#define glPixelTransformParameteriEXT GLEW_GET_FUN(__glewPixelTransformParameteriEXT) -#define glPixelTransformParameterivEXT GLEW_GET_FUN(__glewPixelTransformParameterivEXT) - -#define GLEW_EXT_pixel_transform GLEW_GET_VAR(__GLEW_EXT_pixel_transform) - -#endif /* GL_EXT_pixel_transform */ - -/* ------------------- GL_EXT_pixel_transform_color_table ------------------ */ - -#ifndef GL_EXT_pixel_transform_color_table -#define GL_EXT_pixel_transform_color_table 1 - -#define GLEW_EXT_pixel_transform_color_table GLEW_GET_VAR(__GLEW_EXT_pixel_transform_color_table) - -#endif /* GL_EXT_pixel_transform_color_table */ - -/* ------------------------ GL_EXT_point_parameters ------------------------ */ - -#ifndef GL_EXT_point_parameters -#define GL_EXT_point_parameters 1 - -#define GL_POINT_SIZE_MIN_EXT 0x8126 -#define GL_POINT_SIZE_MAX_EXT 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define GL_DISTANCE_ATTENUATION_EXT 0x8129 - -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat* params); - -#define glPointParameterfEXT GLEW_GET_FUN(__glewPointParameterfEXT) -#define glPointParameterfvEXT GLEW_GET_FUN(__glewPointParameterfvEXT) - -#define GLEW_EXT_point_parameters GLEW_GET_VAR(__GLEW_EXT_point_parameters) - -#endif /* GL_EXT_point_parameters */ - -/* ------------------------- GL_EXT_polygon_offset ------------------------- */ - -#ifndef GL_EXT_polygon_offset -#define GL_EXT_polygon_offset 1 - -#define GL_POLYGON_OFFSET_EXT 0x8037 -#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 - -typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); - -#define glPolygonOffsetEXT GLEW_GET_FUN(__glewPolygonOffsetEXT) - -#define GLEW_EXT_polygon_offset GLEW_GET_VAR(__GLEW_EXT_polygon_offset) - -#endif /* GL_EXT_polygon_offset */ - -/* ---------------------- GL_EXT_polygon_offset_clamp ---------------------- */ - -#ifndef GL_EXT_polygon_offset_clamp -#define GL_EXT_polygon_offset_clamp 1 - -#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B - -typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp); - -#define glPolygonOffsetClampEXT GLEW_GET_FUN(__glewPolygonOffsetClampEXT) - -#define GLEW_EXT_polygon_offset_clamp GLEW_GET_VAR(__GLEW_EXT_polygon_offset_clamp) - -#endif /* GL_EXT_polygon_offset_clamp */ - -/* ----------------------- GL_EXT_post_depth_coverage ---------------------- */ - -#ifndef GL_EXT_post_depth_coverage -#define GL_EXT_post_depth_coverage 1 - -#define GLEW_EXT_post_depth_coverage GLEW_GET_VAR(__GLEW_EXT_post_depth_coverage) - -#endif /* GL_EXT_post_depth_coverage */ - -/* ------------------------ GL_EXT_provoking_vertex ------------------------ */ - -#ifndef GL_EXT_provoking_vertex -#define GL_EXT_provoking_vertex 1 - -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E -#define GL_PROVOKING_VERTEX_EXT 0x8E4F - -typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); - -#define glProvokingVertexEXT GLEW_GET_FUN(__glewProvokingVertexEXT) - -#define GLEW_EXT_provoking_vertex GLEW_GET_VAR(__GLEW_EXT_provoking_vertex) - -#endif /* GL_EXT_provoking_vertex */ - -/* ----------------------- GL_EXT_raster_multisample ----------------------- */ - -#ifndef GL_EXT_raster_multisample -#define GL_EXT_raster_multisample 1 - -#define GL_COLOR_SAMPLES_NV 0x8E20 -#define GL_RASTER_MULTISAMPLE_EXT 0x9327 -#define GL_RASTER_SAMPLES_EXT 0x9328 -#define GL_MAX_RASTER_SAMPLES_EXT 0x9329 -#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A -#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B -#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C -#define GL_DEPTH_SAMPLES_NV 0x932D -#define GL_STENCIL_SAMPLES_NV 0x932E -#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F -#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 -#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 -#define GL_COVERAGE_MODULATION_NV 0x9332 -#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 - -typedef void (GLAPIENTRY * PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components); -typedef void (GLAPIENTRY * PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufsize, GLfloat* v); -typedef void (GLAPIENTRY * PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations); - -#define glCoverageModulationNV GLEW_GET_FUN(__glewCoverageModulationNV) -#define glCoverageModulationTableNV GLEW_GET_FUN(__glewCoverageModulationTableNV) -#define glGetCoverageModulationTableNV GLEW_GET_FUN(__glewGetCoverageModulationTableNV) -#define glRasterSamplesEXT GLEW_GET_FUN(__glewRasterSamplesEXT) - -#define GLEW_EXT_raster_multisample GLEW_GET_VAR(__GLEW_EXT_raster_multisample) - -#endif /* GL_EXT_raster_multisample */ - -/* ------------------------- GL_EXT_rescale_normal ------------------------- */ - -#ifndef GL_EXT_rescale_normal -#define GL_EXT_rescale_normal 1 - -#define GL_RESCALE_NORMAL_EXT 0x803A - -#define GLEW_EXT_rescale_normal GLEW_GET_VAR(__GLEW_EXT_rescale_normal) - -#endif /* GL_EXT_rescale_normal */ - -/* -------------------------- GL_EXT_scene_marker -------------------------- */ - -#ifndef GL_EXT_scene_marker -#define GL_EXT_scene_marker 1 - -typedef void (GLAPIENTRY * PFNGLBEGINSCENEEXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLENDSCENEEXTPROC) (void); - -#define glBeginSceneEXT GLEW_GET_FUN(__glewBeginSceneEXT) -#define glEndSceneEXT GLEW_GET_FUN(__glewEndSceneEXT) - -#define GLEW_EXT_scene_marker GLEW_GET_VAR(__GLEW_EXT_scene_marker) - -#endif /* GL_EXT_scene_marker */ - -/* ------------------------- GL_EXT_secondary_color ------------------------ */ - -#ifndef GL_EXT_secondary_color -#define GL_EXT_secondary_color 1 - -#define GL_COLOR_SUM_EXT 0x8458 -#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E - -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); - -#define glSecondaryColor3bEXT GLEW_GET_FUN(__glewSecondaryColor3bEXT) -#define glSecondaryColor3bvEXT GLEW_GET_FUN(__glewSecondaryColor3bvEXT) -#define glSecondaryColor3dEXT GLEW_GET_FUN(__glewSecondaryColor3dEXT) -#define glSecondaryColor3dvEXT GLEW_GET_FUN(__glewSecondaryColor3dvEXT) -#define glSecondaryColor3fEXT GLEW_GET_FUN(__glewSecondaryColor3fEXT) -#define glSecondaryColor3fvEXT GLEW_GET_FUN(__glewSecondaryColor3fvEXT) -#define glSecondaryColor3iEXT GLEW_GET_FUN(__glewSecondaryColor3iEXT) -#define glSecondaryColor3ivEXT GLEW_GET_FUN(__glewSecondaryColor3ivEXT) -#define glSecondaryColor3sEXT GLEW_GET_FUN(__glewSecondaryColor3sEXT) -#define glSecondaryColor3svEXT GLEW_GET_FUN(__glewSecondaryColor3svEXT) -#define glSecondaryColor3ubEXT GLEW_GET_FUN(__glewSecondaryColor3ubEXT) -#define glSecondaryColor3ubvEXT GLEW_GET_FUN(__glewSecondaryColor3ubvEXT) -#define glSecondaryColor3uiEXT GLEW_GET_FUN(__glewSecondaryColor3uiEXT) -#define glSecondaryColor3uivEXT GLEW_GET_FUN(__glewSecondaryColor3uivEXT) -#define glSecondaryColor3usEXT GLEW_GET_FUN(__glewSecondaryColor3usEXT) -#define glSecondaryColor3usvEXT GLEW_GET_FUN(__glewSecondaryColor3usvEXT) -#define glSecondaryColorPointerEXT GLEW_GET_FUN(__glewSecondaryColorPointerEXT) - -#define GLEW_EXT_secondary_color GLEW_GET_VAR(__GLEW_EXT_secondary_color) - -#endif /* GL_EXT_secondary_color */ - -/* --------------------- GL_EXT_separate_shader_objects -------------------- */ - -#ifndef GL_EXT_separate_shader_objects -#define GL_EXT_separate_shader_objects 1 - -#define GL_ACTIVE_PROGRAM_EXT 0x8B8D - -typedef void (GLAPIENTRY * PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); -typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar* string); -typedef void (GLAPIENTRY * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); - -#define glActiveProgramEXT GLEW_GET_FUN(__glewActiveProgramEXT) -#define glCreateShaderProgramEXT GLEW_GET_FUN(__glewCreateShaderProgramEXT) -#define glUseShaderProgramEXT GLEW_GET_FUN(__glewUseShaderProgramEXT) - -#define GLEW_EXT_separate_shader_objects GLEW_GET_VAR(__GLEW_EXT_separate_shader_objects) - -#endif /* GL_EXT_separate_shader_objects */ - -/* --------------------- GL_EXT_separate_specular_color -------------------- */ - -#ifndef GL_EXT_separate_specular_color -#define GL_EXT_separate_specular_color 1 - -#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define GL_SINGLE_COLOR_EXT 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA - -#define GLEW_EXT_separate_specular_color GLEW_GET_VAR(__GLEW_EXT_separate_specular_color) - -#endif /* GL_EXT_separate_specular_color */ - -/* ------------------- GL_EXT_shader_image_load_formatted ------------------ */ - -#ifndef GL_EXT_shader_image_load_formatted -#define GL_EXT_shader_image_load_formatted 1 - -#define GLEW_EXT_shader_image_load_formatted GLEW_GET_VAR(__GLEW_EXT_shader_image_load_formatted) - -#endif /* GL_EXT_shader_image_load_formatted */ - -/* --------------------- GL_EXT_shader_image_load_store -------------------- */ - -#ifndef GL_EXT_shader_image_load_store -#define GL_EXT_shader_image_load_store 1 - -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 -#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 -#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 -#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A -#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B -#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C -#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D -#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E -#define GL_IMAGE_1D_EXT 0x904C -#define GL_IMAGE_2D_EXT 0x904D -#define GL_IMAGE_3D_EXT 0x904E -#define GL_IMAGE_2D_RECT_EXT 0x904F -#define GL_IMAGE_CUBE_EXT 0x9050 -#define GL_IMAGE_BUFFER_EXT 0x9051 -#define GL_IMAGE_1D_ARRAY_EXT 0x9052 -#define GL_IMAGE_2D_ARRAY_EXT 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 -#define GL_INT_IMAGE_1D_EXT 0x9057 -#define GL_INT_IMAGE_2D_EXT 0x9058 -#define GL_INT_IMAGE_3D_EXT 0x9059 -#define GL_INT_IMAGE_2D_RECT_EXT 0x905A -#define GL_INT_IMAGE_CUBE_EXT 0x905B -#define GL_INT_IMAGE_BUFFER_EXT 0x905C -#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D -#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C -#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D -#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E -#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF - -typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); - -#define glBindImageTextureEXT GLEW_GET_FUN(__glewBindImageTextureEXT) -#define glMemoryBarrierEXT GLEW_GET_FUN(__glewMemoryBarrierEXT) - -#define GLEW_EXT_shader_image_load_store GLEW_GET_VAR(__GLEW_EXT_shader_image_load_store) - -#endif /* GL_EXT_shader_image_load_store */ - -/* ----------------------- GL_EXT_shader_integer_mix ----------------------- */ - -#ifndef GL_EXT_shader_integer_mix -#define GL_EXT_shader_integer_mix 1 - -#define GLEW_EXT_shader_integer_mix GLEW_GET_VAR(__GLEW_EXT_shader_integer_mix) - -#endif /* GL_EXT_shader_integer_mix */ - -/* -------------------------- GL_EXT_shadow_funcs -------------------------- */ - -#ifndef GL_EXT_shadow_funcs -#define GL_EXT_shadow_funcs 1 - -#define GLEW_EXT_shadow_funcs GLEW_GET_VAR(__GLEW_EXT_shadow_funcs) - -#endif /* GL_EXT_shadow_funcs */ - -/* --------------------- GL_EXT_shared_texture_palette --------------------- */ - -#ifndef GL_EXT_shared_texture_palette -#define GL_EXT_shared_texture_palette 1 - -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB - -#define GLEW_EXT_shared_texture_palette GLEW_GET_VAR(__GLEW_EXT_shared_texture_palette) - -#endif /* GL_EXT_shared_texture_palette */ - -/* ------------------------- GL_EXT_sparse_texture2 ------------------------ */ - -#ifndef GL_EXT_sparse_texture2 -#define GL_EXT_sparse_texture2 1 - -#define GLEW_EXT_sparse_texture2 GLEW_GET_VAR(__GLEW_EXT_sparse_texture2) - -#endif /* GL_EXT_sparse_texture2 */ - -/* ------------------------ GL_EXT_stencil_clear_tag ----------------------- */ - -#ifndef GL_EXT_stencil_clear_tag -#define GL_EXT_stencil_clear_tag 1 - -#define GL_STENCIL_TAG_BITS_EXT 0x88F2 -#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 - -#define GLEW_EXT_stencil_clear_tag GLEW_GET_VAR(__GLEW_EXT_stencil_clear_tag) - -#endif /* GL_EXT_stencil_clear_tag */ - -/* ------------------------ GL_EXT_stencil_two_side ------------------------ */ - -#ifndef GL_EXT_stencil_two_side -#define GL_EXT_stencil_two_side 1 - -#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 -#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 - -typedef void (GLAPIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); - -#define glActiveStencilFaceEXT GLEW_GET_FUN(__glewActiveStencilFaceEXT) - -#define GLEW_EXT_stencil_two_side GLEW_GET_VAR(__GLEW_EXT_stencil_two_side) - -#endif /* GL_EXT_stencil_two_side */ - -/* -------------------------- GL_EXT_stencil_wrap -------------------------- */ - -#ifndef GL_EXT_stencil_wrap -#define GL_EXT_stencil_wrap 1 - -#define GL_INCR_WRAP_EXT 0x8507 -#define GL_DECR_WRAP_EXT 0x8508 - -#define GLEW_EXT_stencil_wrap GLEW_GET_VAR(__GLEW_EXT_stencil_wrap) - -#endif /* GL_EXT_stencil_wrap */ - -/* --------------------------- GL_EXT_subtexture --------------------------- */ - -#ifndef GL_EXT_subtexture -#define GL_EXT_subtexture 1 - -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); - -#define glTexSubImage1DEXT GLEW_GET_FUN(__glewTexSubImage1DEXT) -#define glTexSubImage2DEXT GLEW_GET_FUN(__glewTexSubImage2DEXT) -#define glTexSubImage3DEXT GLEW_GET_FUN(__glewTexSubImage3DEXT) - -#define GLEW_EXT_subtexture GLEW_GET_VAR(__GLEW_EXT_subtexture) - -#endif /* GL_EXT_subtexture */ - -/* ----------------------------- GL_EXT_texture ---------------------------- */ - -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 - -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 - -#define GLEW_EXT_texture GLEW_GET_VAR(__GLEW_EXT_texture) - -#endif /* GL_EXT_texture */ - -/* ---------------------------- GL_EXT_texture3D --------------------------- */ - -#ifndef GL_EXT_texture3D -#define GL_EXT_texture3D 1 - -#define GL_PACK_SKIP_IMAGES_EXT 0x806B -#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_TEXTURE_DEPTH_EXT 0x8071 -#define GL_TEXTURE_WRAP_R_EXT 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 - -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); - -#define glTexImage3DEXT GLEW_GET_FUN(__glewTexImage3DEXT) - -#define GLEW_EXT_texture3D GLEW_GET_VAR(__GLEW_EXT_texture3D) - -#endif /* GL_EXT_texture3D */ - -/* -------------------------- GL_EXT_texture_array ------------------------- */ - -#ifndef GL_EXT_texture_array -#define GL_EXT_texture_array 1 - -#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E -#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF -#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 -#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); - -#define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT) - -#define GLEW_EXT_texture_array GLEW_GET_VAR(__GLEW_EXT_texture_array) - -#endif /* GL_EXT_texture_array */ - -/* ---------------------- GL_EXT_texture_buffer_object --------------------- */ - -#ifndef GL_EXT_texture_buffer_object -#define GL_EXT_texture_buffer_object 1 - -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E - -typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); - -#define glTexBufferEXT GLEW_GET_FUN(__glewTexBufferEXT) - -#define GLEW_EXT_texture_buffer_object GLEW_GET_VAR(__GLEW_EXT_texture_buffer_object) - -#endif /* GL_EXT_texture_buffer_object */ - -/* -------------------- GL_EXT_texture_compression_dxt1 -------------------- */ - -#ifndef GL_EXT_texture_compression_dxt1 -#define GL_EXT_texture_compression_dxt1 1 - -#define GLEW_EXT_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_EXT_texture_compression_dxt1) - -#endif /* GL_EXT_texture_compression_dxt1 */ - -/* -------------------- GL_EXT_texture_compression_latc -------------------- */ - -#ifndef GL_EXT_texture_compression_latc -#define GL_EXT_texture_compression_latc 1 - -#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 -#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 -#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 -#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 - -#define GLEW_EXT_texture_compression_latc GLEW_GET_VAR(__GLEW_EXT_texture_compression_latc) - -#endif /* GL_EXT_texture_compression_latc */ - -/* -------------------- GL_EXT_texture_compression_rgtc -------------------- */ - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_EXT_texture_compression_rgtc 1 - -#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC -#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD -#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE - -#define GLEW_EXT_texture_compression_rgtc GLEW_GET_VAR(__GLEW_EXT_texture_compression_rgtc) - -#endif /* GL_EXT_texture_compression_rgtc */ - -/* -------------------- GL_EXT_texture_compression_s3tc -------------------- */ - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_EXT_texture_compression_s3tc 1 - -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 - -#define GLEW_EXT_texture_compression_s3tc GLEW_GET_VAR(__GLEW_EXT_texture_compression_s3tc) - -#endif /* GL_EXT_texture_compression_s3tc */ - -/* ------------------------ GL_EXT_texture_cube_map ------------------------ */ - -#ifndef GL_EXT_texture_cube_map -#define GL_EXT_texture_cube_map 1 - -#define GL_NORMAL_MAP_EXT 0x8511 -#define GL_REFLECTION_MAP_EXT 0x8512 -#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C - -#define GLEW_EXT_texture_cube_map GLEW_GET_VAR(__GLEW_EXT_texture_cube_map) - -#endif /* GL_EXT_texture_cube_map */ - -/* ----------------------- GL_EXT_texture_edge_clamp ----------------------- */ - -#ifndef GL_EXT_texture_edge_clamp -#define GL_EXT_texture_edge_clamp 1 - -#define GL_CLAMP_TO_EDGE_EXT 0x812F - -#define GLEW_EXT_texture_edge_clamp GLEW_GET_VAR(__GLEW_EXT_texture_edge_clamp) - -#endif /* GL_EXT_texture_edge_clamp */ - -/* --------------------------- GL_EXT_texture_env -------------------------- */ - -#ifndef GL_EXT_texture_env -#define GL_EXT_texture_env 1 - -#define GLEW_EXT_texture_env GLEW_GET_VAR(__GLEW_EXT_texture_env) - -#endif /* GL_EXT_texture_env */ - -/* ------------------------- GL_EXT_texture_env_add ------------------------ */ - -#ifndef GL_EXT_texture_env_add -#define GL_EXT_texture_env_add 1 - -#define GLEW_EXT_texture_env_add GLEW_GET_VAR(__GLEW_EXT_texture_env_add) - -#endif /* GL_EXT_texture_env_add */ - -/* ----------------------- GL_EXT_texture_env_combine ---------------------- */ - -#ifndef GL_EXT_texture_env_combine -#define GL_EXT_texture_env_combine 1 - -#define GL_COMBINE_EXT 0x8570 -#define GL_COMBINE_RGB_EXT 0x8571 -#define GL_COMBINE_ALPHA_EXT 0x8572 -#define GL_RGB_SCALE_EXT 0x8573 -#define GL_ADD_SIGNED_EXT 0x8574 -#define GL_INTERPOLATE_EXT 0x8575 -#define GL_CONSTANT_EXT 0x8576 -#define GL_PRIMARY_COLOR_EXT 0x8577 -#define GL_PREVIOUS_EXT 0x8578 -#define GL_SOURCE0_RGB_EXT 0x8580 -#define GL_SOURCE1_RGB_EXT 0x8581 -#define GL_SOURCE2_RGB_EXT 0x8582 -#define GL_SOURCE0_ALPHA_EXT 0x8588 -#define GL_SOURCE1_ALPHA_EXT 0x8589 -#define GL_SOURCE2_ALPHA_EXT 0x858A -#define GL_OPERAND0_RGB_EXT 0x8590 -#define GL_OPERAND1_RGB_EXT 0x8591 -#define GL_OPERAND2_RGB_EXT 0x8592 -#define GL_OPERAND0_ALPHA_EXT 0x8598 -#define GL_OPERAND1_ALPHA_EXT 0x8599 -#define GL_OPERAND2_ALPHA_EXT 0x859A - -#define GLEW_EXT_texture_env_combine GLEW_GET_VAR(__GLEW_EXT_texture_env_combine) - -#endif /* GL_EXT_texture_env_combine */ - -/* ------------------------ GL_EXT_texture_env_dot3 ------------------------ */ - -#ifndef GL_EXT_texture_env_dot3 -#define GL_EXT_texture_env_dot3 1 - -#define GL_DOT3_RGB_EXT 0x8740 -#define GL_DOT3_RGBA_EXT 0x8741 - -#define GLEW_EXT_texture_env_dot3 GLEW_GET_VAR(__GLEW_EXT_texture_env_dot3) - -#endif /* GL_EXT_texture_env_dot3 */ - -/* ------------------- GL_EXT_texture_filter_anisotropic ------------------- */ - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 - -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF - -#define GLEW_EXT_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_EXT_texture_filter_anisotropic) - -#endif /* GL_EXT_texture_filter_anisotropic */ - -/* ---------------------- GL_EXT_texture_filter_minmax --------------------- */ - -#ifndef GL_EXT_texture_filter_minmax -#define GL_EXT_texture_filter_minmax 1 - -#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366 -#define GL_WEIGHTED_AVERAGE_EXT 0x9367 - -#define GLEW_EXT_texture_filter_minmax GLEW_GET_VAR(__GLEW_EXT_texture_filter_minmax) - -#endif /* GL_EXT_texture_filter_minmax */ - -/* ------------------------- GL_EXT_texture_integer ------------------------ */ - -#ifndef GL_EXT_texture_integer -#define GL_EXT_texture_integer 1 - -#define GL_RGBA32UI_EXT 0x8D70 -#define GL_RGB32UI_EXT 0x8D71 -#define GL_ALPHA32UI_EXT 0x8D72 -#define GL_INTENSITY32UI_EXT 0x8D73 -#define GL_LUMINANCE32UI_EXT 0x8D74 -#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 -#define GL_RGBA16UI_EXT 0x8D76 -#define GL_RGB16UI_EXT 0x8D77 -#define GL_ALPHA16UI_EXT 0x8D78 -#define GL_INTENSITY16UI_EXT 0x8D79 -#define GL_LUMINANCE16UI_EXT 0x8D7A -#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B -#define GL_RGBA8UI_EXT 0x8D7C -#define GL_RGB8UI_EXT 0x8D7D -#define GL_ALPHA8UI_EXT 0x8D7E -#define GL_INTENSITY8UI_EXT 0x8D7F -#define GL_LUMINANCE8UI_EXT 0x8D80 -#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 -#define GL_RGBA32I_EXT 0x8D82 -#define GL_RGB32I_EXT 0x8D83 -#define GL_ALPHA32I_EXT 0x8D84 -#define GL_INTENSITY32I_EXT 0x8D85 -#define GL_LUMINANCE32I_EXT 0x8D86 -#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 -#define GL_RGBA16I_EXT 0x8D88 -#define GL_RGB16I_EXT 0x8D89 -#define GL_ALPHA16I_EXT 0x8D8A -#define GL_INTENSITY16I_EXT 0x8D8B -#define GL_LUMINANCE16I_EXT 0x8D8C -#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D -#define GL_RGBA8I_EXT 0x8D8E -#define GL_RGB8I_EXT 0x8D8F -#define GL_ALPHA8I_EXT 0x8D90 -#define GL_INTENSITY8I_EXT 0x8D91 -#define GL_LUMINANCE8I_EXT 0x8D92 -#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 -#define GL_RED_INTEGER_EXT 0x8D94 -#define GL_GREEN_INTEGER_EXT 0x8D95 -#define GL_BLUE_INTEGER_EXT 0x8D96 -#define GL_ALPHA_INTEGER_EXT 0x8D97 -#define GL_RGB_INTEGER_EXT 0x8D98 -#define GL_RGBA_INTEGER_EXT 0x8D99 -#define GL_BGR_INTEGER_EXT 0x8D9A -#define GL_BGRA_INTEGER_EXT 0x8D9B -#define GL_LUMINANCE_INTEGER_EXT 0x8D9C -#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D -#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E - -typedef void (GLAPIENTRY * PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); -typedef void (GLAPIENTRY * PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); - -#define glClearColorIiEXT GLEW_GET_FUN(__glewClearColorIiEXT) -#define glClearColorIuiEXT GLEW_GET_FUN(__glewClearColorIuiEXT) -#define glGetTexParameterIivEXT GLEW_GET_FUN(__glewGetTexParameterIivEXT) -#define glGetTexParameterIuivEXT GLEW_GET_FUN(__glewGetTexParameterIuivEXT) -#define glTexParameterIivEXT GLEW_GET_FUN(__glewTexParameterIivEXT) -#define glTexParameterIuivEXT GLEW_GET_FUN(__glewTexParameterIuivEXT) - -#define GLEW_EXT_texture_integer GLEW_GET_VAR(__GLEW_EXT_texture_integer) - -#endif /* GL_EXT_texture_integer */ - -/* ------------------------ GL_EXT_texture_lod_bias ------------------------ */ - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 - -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 - -#define GLEW_EXT_texture_lod_bias GLEW_GET_VAR(__GLEW_EXT_texture_lod_bias) - -#endif /* GL_EXT_texture_lod_bias */ - -/* ---------------------- GL_EXT_texture_mirror_clamp ---------------------- */ - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_EXT_texture_mirror_clamp 1 - -#define GL_MIRROR_CLAMP_EXT 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 - -#define GLEW_EXT_texture_mirror_clamp GLEW_GET_VAR(__GLEW_EXT_texture_mirror_clamp) - -#endif /* GL_EXT_texture_mirror_clamp */ - -/* ------------------------- GL_EXT_texture_object ------------------------- */ - -#ifndef GL_EXT_texture_object -#define GL_EXT_texture_object 1 - -#define GL_TEXTURE_PRIORITY_EXT 0x8066 -#define GL_TEXTURE_RESIDENT_EXT 0x8067 -#define GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define GL_TEXTURE_3D_BINDING_EXT 0x806A - -typedef GLboolean (GLAPIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint* textures, GLboolean* residences); -typedef void (GLAPIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); -typedef void (GLAPIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint* textures); -typedef void (GLAPIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint* textures); -typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture); -typedef void (GLAPIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint* textures, const GLclampf* priorities); - -#define glAreTexturesResidentEXT GLEW_GET_FUN(__glewAreTexturesResidentEXT) -#define glBindTextureEXT GLEW_GET_FUN(__glewBindTextureEXT) -#define glDeleteTexturesEXT GLEW_GET_FUN(__glewDeleteTexturesEXT) -#define glGenTexturesEXT GLEW_GET_FUN(__glewGenTexturesEXT) -#define glIsTextureEXT GLEW_GET_FUN(__glewIsTextureEXT) -#define glPrioritizeTexturesEXT GLEW_GET_FUN(__glewPrioritizeTexturesEXT) - -#define GLEW_EXT_texture_object GLEW_GET_VAR(__GLEW_EXT_texture_object) - -#endif /* GL_EXT_texture_object */ - -/* --------------------- GL_EXT_texture_perturb_normal --------------------- */ - -#ifndef GL_EXT_texture_perturb_normal -#define GL_EXT_texture_perturb_normal 1 - -#define GL_PERTURB_EXT 0x85AE -#define GL_TEXTURE_NORMAL_EXT 0x85AF - -typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); - -#define glTextureNormalEXT GLEW_GET_FUN(__glewTextureNormalEXT) - -#define GLEW_EXT_texture_perturb_normal GLEW_GET_VAR(__GLEW_EXT_texture_perturb_normal) - -#endif /* GL_EXT_texture_perturb_normal */ - -/* ------------------------ GL_EXT_texture_rectangle ----------------------- */ - -#ifndef GL_EXT_texture_rectangle -#define GL_EXT_texture_rectangle 1 - -#define GL_TEXTURE_RECTANGLE_EXT 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8 - -#define GLEW_EXT_texture_rectangle GLEW_GET_VAR(__GLEW_EXT_texture_rectangle) - -#endif /* GL_EXT_texture_rectangle */ - -/* -------------------------- GL_EXT_texture_sRGB -------------------------- */ - -#ifndef GL_EXT_texture_sRGB -#define GL_EXT_texture_sRGB 1 - -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB8_EXT 0x8C41 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 -#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 -#define GL_SLUMINANCE_EXT 0x8C46 -#define GL_SLUMINANCE8_EXT 0x8C47 -#define GL_COMPRESSED_SRGB_EXT 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 -#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F - -#define GLEW_EXT_texture_sRGB GLEW_GET_VAR(__GLEW_EXT_texture_sRGB) - -#endif /* GL_EXT_texture_sRGB */ - -/* ----------------------- GL_EXT_texture_sRGB_decode ---------------------- */ - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_EXT_texture_sRGB_decode 1 - -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A - -#define GLEW_EXT_texture_sRGB_decode GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_decode) - -#endif /* GL_EXT_texture_sRGB_decode */ - -/* --------------------- GL_EXT_texture_shared_exponent -------------------- */ - -#ifndef GL_EXT_texture_shared_exponent -#define GL_EXT_texture_shared_exponent 1 - -#define GL_RGB9_E5_EXT 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E -#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F - -#define GLEW_EXT_texture_shared_exponent GLEW_GET_VAR(__GLEW_EXT_texture_shared_exponent) - -#endif /* GL_EXT_texture_shared_exponent */ - -/* -------------------------- GL_EXT_texture_snorm ------------------------- */ - -#ifndef GL_EXT_texture_snorm -#define GL_EXT_texture_snorm 1 - -#define GL_RED_SNORM 0x8F90 -#define GL_RG_SNORM 0x8F91 -#define GL_RGB_SNORM 0x8F92 -#define GL_RGBA_SNORM 0x8F93 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM 0x8F98 -#define GL_RG16_SNORM 0x8F99 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGBA16_SNORM 0x8F9B -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_ALPHA_SNORM 0x9010 -#define GL_LUMINANCE_SNORM 0x9011 -#define GL_LUMINANCE_ALPHA_SNORM 0x9012 -#define GL_INTENSITY_SNORM 0x9013 -#define GL_ALPHA8_SNORM 0x9014 -#define GL_LUMINANCE8_SNORM 0x9015 -#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 -#define GL_INTENSITY8_SNORM 0x9017 -#define GL_ALPHA16_SNORM 0x9018 -#define GL_LUMINANCE16_SNORM 0x9019 -#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A -#define GL_INTENSITY16_SNORM 0x901B - -#define GLEW_EXT_texture_snorm GLEW_GET_VAR(__GLEW_EXT_texture_snorm) - -#endif /* GL_EXT_texture_snorm */ - -/* ------------------------- GL_EXT_texture_swizzle ------------------------ */ - -#ifndef GL_EXT_texture_swizzle -#define GL_EXT_texture_swizzle 1 - -#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 -#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 -#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 -#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 - -#define GLEW_EXT_texture_swizzle GLEW_GET_VAR(__GLEW_EXT_texture_swizzle) - -#endif /* GL_EXT_texture_swizzle */ - -/* --------------------------- GL_EXT_timer_query -------------------------- */ - -#ifndef GL_EXT_timer_query -#define GL_EXT_timer_query 1 - -#define GL_TIME_ELAPSED_EXT 0x88BF - -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); - -#define glGetQueryObjecti64vEXT GLEW_GET_FUN(__glewGetQueryObjecti64vEXT) -#define glGetQueryObjectui64vEXT GLEW_GET_FUN(__glewGetQueryObjectui64vEXT) - -#define GLEW_EXT_timer_query GLEW_GET_VAR(__GLEW_EXT_timer_query) - -#endif /* GL_EXT_timer_query */ - -/* ----------------------- GL_EXT_transform_feedback ----------------------- */ - -#ifndef GL_EXT_transform_feedback -#define GL_EXT_transform_feedback 1 - -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 -#define GL_RASTERIZER_DISCARD_EXT 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C -#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F - -typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar * const* varyings, GLenum bufferMode); - -#define glBeginTransformFeedbackEXT GLEW_GET_FUN(__glewBeginTransformFeedbackEXT) -#define glBindBufferBaseEXT GLEW_GET_FUN(__glewBindBufferBaseEXT) -#define glBindBufferOffsetEXT GLEW_GET_FUN(__glewBindBufferOffsetEXT) -#define glBindBufferRangeEXT GLEW_GET_FUN(__glewBindBufferRangeEXT) -#define glEndTransformFeedbackEXT GLEW_GET_FUN(__glewEndTransformFeedbackEXT) -#define glGetTransformFeedbackVaryingEXT GLEW_GET_FUN(__glewGetTransformFeedbackVaryingEXT) -#define glTransformFeedbackVaryingsEXT GLEW_GET_FUN(__glewTransformFeedbackVaryingsEXT) - -#define GLEW_EXT_transform_feedback GLEW_GET_VAR(__GLEW_EXT_transform_feedback) - -#endif /* GL_EXT_transform_feedback */ - -/* -------------------------- GL_EXT_vertex_array -------------------------- */ - -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 - -#define GL_DOUBLE_EXT 0x140A -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 - -typedef void (GLAPIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (GLAPIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean* pointer); -typedef void (GLAPIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); -typedef void (GLAPIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); -typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); - -#define glArrayElementEXT GLEW_GET_FUN(__glewArrayElementEXT) -#define glColorPointerEXT GLEW_GET_FUN(__glewColorPointerEXT) -#define glDrawArraysEXT GLEW_GET_FUN(__glewDrawArraysEXT) -#define glEdgeFlagPointerEXT GLEW_GET_FUN(__glewEdgeFlagPointerEXT) -#define glIndexPointerEXT GLEW_GET_FUN(__glewIndexPointerEXT) -#define glNormalPointerEXT GLEW_GET_FUN(__glewNormalPointerEXT) -#define glTexCoordPointerEXT GLEW_GET_FUN(__glewTexCoordPointerEXT) -#define glVertexPointerEXT GLEW_GET_FUN(__glewVertexPointerEXT) - -#define GLEW_EXT_vertex_array GLEW_GET_VAR(__GLEW_EXT_vertex_array) - -#endif /* GL_EXT_vertex_array */ - -/* ------------------------ GL_EXT_vertex_array_bgra ----------------------- */ - -#ifndef GL_EXT_vertex_array_bgra -#define GL_EXT_vertex_array_bgra 1 - -#define GL_BGRA 0x80E1 - -#define GLEW_EXT_vertex_array_bgra GLEW_GET_VAR(__GLEW_EXT_vertex_array_bgra) - -#endif /* GL_EXT_vertex_array_bgra */ - -/* ----------------------- GL_EXT_vertex_attrib_64bit ---------------------- */ - -#ifndef GL_EXT_vertex_attrib_64bit -#define GL_EXT_vertex_attrib_64bit 1 - -#define GL_DOUBLE_MAT2_EXT 0x8F46 -#define GL_DOUBLE_MAT3_EXT 0x8F47 -#define GL_DOUBLE_MAT4_EXT 0x8F48 -#define GL_DOUBLE_MAT2x3_EXT 0x8F49 -#define GL_DOUBLE_MAT2x4_EXT 0x8F4A -#define GL_DOUBLE_MAT3x2_EXT 0x8F4B -#define GL_DOUBLE_MAT3x4_EXT 0x8F4C -#define GL_DOUBLE_MAT4x2_EXT 0x8F4D -#define GL_DOUBLE_MAT4x3_EXT 0x8F4E -#define GL_DOUBLE_VEC2_EXT 0x8FFC -#define GL_DOUBLE_VEC3_EXT 0x8FFD -#define GL_DOUBLE_VEC4_EXT 0x8FFE - -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); - -#define glGetVertexAttribLdvEXT GLEW_GET_FUN(__glewGetVertexAttribLdvEXT) -#define glVertexArrayVertexAttribLOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLOffsetEXT) -#define glVertexAttribL1dEXT GLEW_GET_FUN(__glewVertexAttribL1dEXT) -#define glVertexAttribL1dvEXT GLEW_GET_FUN(__glewVertexAttribL1dvEXT) -#define glVertexAttribL2dEXT GLEW_GET_FUN(__glewVertexAttribL2dEXT) -#define glVertexAttribL2dvEXT GLEW_GET_FUN(__glewVertexAttribL2dvEXT) -#define glVertexAttribL3dEXT GLEW_GET_FUN(__glewVertexAttribL3dEXT) -#define glVertexAttribL3dvEXT GLEW_GET_FUN(__glewVertexAttribL3dvEXT) -#define glVertexAttribL4dEXT GLEW_GET_FUN(__glewVertexAttribL4dEXT) -#define glVertexAttribL4dvEXT GLEW_GET_FUN(__glewVertexAttribL4dvEXT) -#define glVertexAttribLPointerEXT GLEW_GET_FUN(__glewVertexAttribLPointerEXT) - -#define GLEW_EXT_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_EXT_vertex_attrib_64bit) - -#endif /* GL_EXT_vertex_attrib_64bit */ - -/* -------------------------- GL_EXT_vertex_shader ------------------------- */ - -#ifndef GL_EXT_vertex_shader -#define GL_EXT_vertex_shader 1 - -#define GL_VERTEX_SHADER_EXT 0x8780 -#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define GL_OP_INDEX_EXT 0x8782 -#define GL_OP_NEGATE_EXT 0x8783 -#define GL_OP_DOT3_EXT 0x8784 -#define GL_OP_DOT4_EXT 0x8785 -#define GL_OP_MUL_EXT 0x8786 -#define GL_OP_ADD_EXT 0x8787 -#define GL_OP_MADD_EXT 0x8788 -#define GL_OP_FRAC_EXT 0x8789 -#define GL_OP_MAX_EXT 0x878A -#define GL_OP_MIN_EXT 0x878B -#define GL_OP_SET_GE_EXT 0x878C -#define GL_OP_SET_LT_EXT 0x878D -#define GL_OP_CLAMP_EXT 0x878E -#define GL_OP_FLOOR_EXT 0x878F -#define GL_OP_ROUND_EXT 0x8790 -#define GL_OP_EXP_BASE_2_EXT 0x8791 -#define GL_OP_LOG_BASE_2_EXT 0x8792 -#define GL_OP_POWER_EXT 0x8793 -#define GL_OP_RECIP_EXT 0x8794 -#define GL_OP_RECIP_SQRT_EXT 0x8795 -#define GL_OP_SUB_EXT 0x8796 -#define GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define GL_OP_MOV_EXT 0x8799 -#define GL_OUTPUT_VERTEX_EXT 0x879A -#define GL_OUTPUT_COLOR0_EXT 0x879B -#define GL_OUTPUT_COLOR1_EXT 0x879C -#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define GL_OUTPUT_FOG_EXT 0x87BD -#define GL_SCALAR_EXT 0x87BE -#define GL_VECTOR_EXT 0x87BF -#define GL_MATRIX_EXT 0x87C0 -#define GL_VARIANT_EXT 0x87C1 -#define GL_INVARIANT_EXT 0x87C2 -#define GL_LOCAL_CONSTANT_EXT 0x87C3 -#define GL_LOCAL_EXT 0x87C4 -#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define GL_X_EXT 0x87D5 -#define GL_Y_EXT 0x87D6 -#define GL_Z_EXT 0x87D7 -#define GL_W_EXT 0x87D8 -#define GL_NEGATIVE_X_EXT 0x87D9 -#define GL_NEGATIVE_Y_EXT 0x87DA -#define GL_NEGATIVE_Z_EXT 0x87DB -#define GL_NEGATIVE_W_EXT 0x87DC -#define GL_ZERO_EXT 0x87DD -#define GL_ONE_EXT 0x87DE -#define GL_NEGATIVE_ONE_EXT 0x87DF -#define GL_NORMALIZED_RANGE_EXT 0x87E0 -#define GL_FULL_RANGE_EXT 0x87E1 -#define GL_CURRENT_VERTEX_EXT 0x87E2 -#define GL_MVP_MATRIX_EXT 0x87E3 -#define GL_VARIANT_VALUE_EXT 0x87E4 -#define GL_VARIANT_DATATYPE_EXT 0x87E5 -#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define GL_VARIANT_ARRAY_EXT 0x87E8 -#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define GL_INVARIANT_VALUE_EXT 0x87EA -#define GL_INVARIANT_DATATYPE_EXT 0x87EB -#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED - -typedef void (GLAPIENTRY * PFNGLBEGINVERTEXSHADEREXTPROC) (void); -typedef GLuint (GLAPIENTRY * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDPARAMETEREXTPROC) (GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); -typedef void (GLAPIENTRY * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENDVERTEXSHADEREXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLuint (GLAPIENTRY * PFNGLGENSYMBOLSEXTPROC) (GLenum dataType, GLenum storageType, GLenum range, GLuint components); -typedef GLuint (GLAPIENTRY * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); -typedef void (GLAPIENTRY * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (GLAPIENTRY * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, void **data); -typedef void (GLAPIENTRY * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLboolean (GLAPIENTRY * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); -typedef void (GLAPIENTRY * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, void *addr); -typedef void (GLAPIENTRY * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, void *addr); -typedef void (GLAPIENTRY * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); -typedef void (GLAPIENTRY * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -typedef void (GLAPIENTRY * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -typedef void (GLAPIENTRY * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (GLAPIENTRY * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, void *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTBVEXTPROC) (GLuint id, GLbyte *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTDVEXTPROC) (GLuint id, GLdouble *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTFVEXTPROC) (GLuint id, GLfloat *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTIVEXTPROC) (GLuint id, GLint *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTSVEXTPROC) (GLuint id, GLshort *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTUBVEXTPROC) (GLuint id, GLubyte *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTUIVEXTPROC) (GLuint id, GLuint *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTUSVEXTPROC) (GLuint id, GLushort *addr); -typedef void (GLAPIENTRY * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); - -#define glBeginVertexShaderEXT GLEW_GET_FUN(__glewBeginVertexShaderEXT) -#define glBindLightParameterEXT GLEW_GET_FUN(__glewBindLightParameterEXT) -#define glBindMaterialParameterEXT GLEW_GET_FUN(__glewBindMaterialParameterEXT) -#define glBindParameterEXT GLEW_GET_FUN(__glewBindParameterEXT) -#define glBindTexGenParameterEXT GLEW_GET_FUN(__glewBindTexGenParameterEXT) -#define glBindTextureUnitParameterEXT GLEW_GET_FUN(__glewBindTextureUnitParameterEXT) -#define glBindVertexShaderEXT GLEW_GET_FUN(__glewBindVertexShaderEXT) -#define glDeleteVertexShaderEXT GLEW_GET_FUN(__glewDeleteVertexShaderEXT) -#define glDisableVariantClientStateEXT GLEW_GET_FUN(__glewDisableVariantClientStateEXT) -#define glEnableVariantClientStateEXT GLEW_GET_FUN(__glewEnableVariantClientStateEXT) -#define glEndVertexShaderEXT GLEW_GET_FUN(__glewEndVertexShaderEXT) -#define glExtractComponentEXT GLEW_GET_FUN(__glewExtractComponentEXT) -#define glGenSymbolsEXT GLEW_GET_FUN(__glewGenSymbolsEXT) -#define glGenVertexShadersEXT GLEW_GET_FUN(__glewGenVertexShadersEXT) -#define glGetInvariantBooleanvEXT GLEW_GET_FUN(__glewGetInvariantBooleanvEXT) -#define glGetInvariantFloatvEXT GLEW_GET_FUN(__glewGetInvariantFloatvEXT) -#define glGetInvariantIntegervEXT GLEW_GET_FUN(__glewGetInvariantIntegervEXT) -#define glGetLocalConstantBooleanvEXT GLEW_GET_FUN(__glewGetLocalConstantBooleanvEXT) -#define glGetLocalConstantFloatvEXT GLEW_GET_FUN(__glewGetLocalConstantFloatvEXT) -#define glGetLocalConstantIntegervEXT GLEW_GET_FUN(__glewGetLocalConstantIntegervEXT) -#define glGetVariantBooleanvEXT GLEW_GET_FUN(__glewGetVariantBooleanvEXT) -#define glGetVariantFloatvEXT GLEW_GET_FUN(__glewGetVariantFloatvEXT) -#define glGetVariantIntegervEXT GLEW_GET_FUN(__glewGetVariantIntegervEXT) -#define glGetVariantPointervEXT GLEW_GET_FUN(__glewGetVariantPointervEXT) -#define glInsertComponentEXT GLEW_GET_FUN(__glewInsertComponentEXT) -#define glIsVariantEnabledEXT GLEW_GET_FUN(__glewIsVariantEnabledEXT) -#define glSetInvariantEXT GLEW_GET_FUN(__glewSetInvariantEXT) -#define glSetLocalConstantEXT GLEW_GET_FUN(__glewSetLocalConstantEXT) -#define glShaderOp1EXT GLEW_GET_FUN(__glewShaderOp1EXT) -#define glShaderOp2EXT GLEW_GET_FUN(__glewShaderOp2EXT) -#define glShaderOp3EXT GLEW_GET_FUN(__glewShaderOp3EXT) -#define glSwizzleEXT GLEW_GET_FUN(__glewSwizzleEXT) -#define glVariantPointerEXT GLEW_GET_FUN(__glewVariantPointerEXT) -#define glVariantbvEXT GLEW_GET_FUN(__glewVariantbvEXT) -#define glVariantdvEXT GLEW_GET_FUN(__glewVariantdvEXT) -#define glVariantfvEXT GLEW_GET_FUN(__glewVariantfvEXT) -#define glVariantivEXT GLEW_GET_FUN(__glewVariantivEXT) -#define glVariantsvEXT GLEW_GET_FUN(__glewVariantsvEXT) -#define glVariantubvEXT GLEW_GET_FUN(__glewVariantubvEXT) -#define glVariantuivEXT GLEW_GET_FUN(__glewVariantuivEXT) -#define glVariantusvEXT GLEW_GET_FUN(__glewVariantusvEXT) -#define glWriteMaskEXT GLEW_GET_FUN(__glewWriteMaskEXT) - -#define GLEW_EXT_vertex_shader GLEW_GET_VAR(__GLEW_EXT_vertex_shader) - -#endif /* GL_EXT_vertex_shader */ - -/* ------------------------ GL_EXT_vertex_weighting ------------------------ */ - -#ifndef GL_EXT_vertex_weighting -#define GL_EXT_vertex_weighting 1 - -#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 -#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6 -#define GL_MODELVIEW0_EXT 0x1700 -#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define GL_MODELVIEW1_MATRIX_EXT 0x8506 -#define GL_VERTEX_WEIGHTING_EXT 0x8509 -#define GL_MODELVIEW1_EXT 0x850A -#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 - -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, void *pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight); - -#define glVertexWeightPointerEXT GLEW_GET_FUN(__glewVertexWeightPointerEXT) -#define glVertexWeightfEXT GLEW_GET_FUN(__glewVertexWeightfEXT) -#define glVertexWeightfvEXT GLEW_GET_FUN(__glewVertexWeightfvEXT) - -#define GLEW_EXT_vertex_weighting GLEW_GET_VAR(__GLEW_EXT_vertex_weighting) - -#endif /* GL_EXT_vertex_weighting */ - -/* ------------------------- GL_EXT_x11_sync_object ------------------------ */ - -#ifndef GL_EXT_x11_sync_object -#define GL_EXT_x11_sync_object 1 - -#define GL_SYNC_X11_FENCE_EXT 0x90E1 - -typedef GLsync (GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); - -#define glImportSyncEXT GLEW_GET_FUN(__glewImportSyncEXT) - -#define GLEW_EXT_x11_sync_object GLEW_GET_VAR(__GLEW_EXT_x11_sync_object) - -#endif /* GL_EXT_x11_sync_object */ - -/* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */ - -#ifndef GL_GREMEDY_frame_terminator -#define GL_GREMEDY_frame_terminator 1 - -typedef void (GLAPIENTRY * PFNGLFRAMETERMINATORGREMEDYPROC) (void); - -#define glFrameTerminatorGREMEDY GLEW_GET_FUN(__glewFrameTerminatorGREMEDY) - -#define GLEW_GREMEDY_frame_terminator GLEW_GET_VAR(__GLEW_GREMEDY_frame_terminator) - -#endif /* GL_GREMEDY_frame_terminator */ - -/* ------------------------ GL_GREMEDY_string_marker ----------------------- */ - -#ifndef GL_GREMEDY_string_marker -#define GL_GREMEDY_string_marker 1 - -typedef void (GLAPIENTRY * PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void *string); - -#define glStringMarkerGREMEDY GLEW_GET_FUN(__glewStringMarkerGREMEDY) - -#define GLEW_GREMEDY_string_marker GLEW_GET_VAR(__GLEW_GREMEDY_string_marker) - -#endif /* GL_GREMEDY_string_marker */ - -/* --------------------- GL_HP_convolution_border_modes -------------------- */ - -#ifndef GL_HP_convolution_border_modes -#define GL_HP_convolution_border_modes 1 - -#define GLEW_HP_convolution_border_modes GLEW_GET_VAR(__GLEW_HP_convolution_border_modes) - -#endif /* GL_HP_convolution_border_modes */ - -/* ------------------------- GL_HP_image_transform ------------------------- */ - -#ifndef GL_HP_image_transform -#define GL_HP_image_transform 1 - -typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); - -#define glGetImageTransformParameterfvHP GLEW_GET_FUN(__glewGetImageTransformParameterfvHP) -#define glGetImageTransformParameterivHP GLEW_GET_FUN(__glewGetImageTransformParameterivHP) -#define glImageTransformParameterfHP GLEW_GET_FUN(__glewImageTransformParameterfHP) -#define glImageTransformParameterfvHP GLEW_GET_FUN(__glewImageTransformParameterfvHP) -#define glImageTransformParameteriHP GLEW_GET_FUN(__glewImageTransformParameteriHP) -#define glImageTransformParameterivHP GLEW_GET_FUN(__glewImageTransformParameterivHP) - -#define GLEW_HP_image_transform GLEW_GET_VAR(__GLEW_HP_image_transform) - -#endif /* GL_HP_image_transform */ - -/* -------------------------- GL_HP_occlusion_test ------------------------- */ - -#ifndef GL_HP_occlusion_test -#define GL_HP_occlusion_test 1 - -#define GLEW_HP_occlusion_test GLEW_GET_VAR(__GLEW_HP_occlusion_test) - -#endif /* GL_HP_occlusion_test */ - -/* ------------------------- GL_HP_texture_lighting ------------------------ */ - -#ifndef GL_HP_texture_lighting -#define GL_HP_texture_lighting 1 - -#define GLEW_HP_texture_lighting GLEW_GET_VAR(__GLEW_HP_texture_lighting) - -#endif /* GL_HP_texture_lighting */ - -/* --------------------------- GL_IBM_cull_vertex -------------------------- */ - -#ifndef GL_IBM_cull_vertex -#define GL_IBM_cull_vertex 1 - -#define GL_CULL_VERTEX_IBM 103050 - -#define GLEW_IBM_cull_vertex GLEW_GET_VAR(__GLEW_IBM_cull_vertex) - -#endif /* GL_IBM_cull_vertex */ - -/* ---------------------- GL_IBM_multimode_draw_arrays --------------------- */ - -#ifndef GL_IBM_multimode_draw_arrays -#define GL_IBM_multimode_draw_arrays 1 - -typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum* mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum* mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei primcount, GLint modestride); - -#define glMultiModeDrawArraysIBM GLEW_GET_FUN(__glewMultiModeDrawArraysIBM) -#define glMultiModeDrawElementsIBM GLEW_GET_FUN(__glewMultiModeDrawElementsIBM) - -#define GLEW_IBM_multimode_draw_arrays GLEW_GET_VAR(__GLEW_IBM_multimode_draw_arrays) - -#endif /* GL_IBM_multimode_draw_arrays */ - -/* ------------------------- GL_IBM_rasterpos_clip ------------------------- */ - -#ifndef GL_IBM_rasterpos_clip -#define GL_IBM_rasterpos_clip 1 - -#define GL_RASTER_POSITION_UNCLIPPED_IBM 103010 - -#define GLEW_IBM_rasterpos_clip GLEW_GET_VAR(__GLEW_IBM_rasterpos_clip) - -#endif /* GL_IBM_rasterpos_clip */ - -/* --------------------------- GL_IBM_static_data -------------------------- */ - -#ifndef GL_IBM_static_data -#define GL_IBM_static_data 1 - -#define GL_ALL_STATIC_DATA_IBM 103060 -#define GL_STATIC_VERTEX_ARRAY_IBM 103061 - -#define GLEW_IBM_static_data GLEW_GET_VAR(__GLEW_IBM_static_data) - -#endif /* GL_IBM_static_data */ - -/* --------------------- GL_IBM_texture_mirrored_repeat -------------------- */ - -#ifndef GL_IBM_texture_mirrored_repeat -#define GL_IBM_texture_mirrored_repeat 1 - -#define GL_MIRRORED_REPEAT_IBM 0x8370 - -#define GLEW_IBM_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_IBM_texture_mirrored_repeat) - -#endif /* GL_IBM_texture_mirrored_repeat */ - -/* ----------------------- GL_IBM_vertex_array_lists ----------------------- */ - -#ifndef GL_IBM_vertex_array_lists -#define GL_IBM_vertex_array_lists 1 - -#define GL_VERTEX_ARRAY_LIST_IBM 103070 -#define GL_NORMAL_ARRAY_LIST_IBM 103071 -#define GL_COLOR_ARRAY_LIST_IBM 103072 -#define GL_INDEX_ARRAY_LIST_IBM 103073 -#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 - -typedef void (GLAPIENTRY * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride); - -#define glColorPointerListIBM GLEW_GET_FUN(__glewColorPointerListIBM) -#define glEdgeFlagPointerListIBM GLEW_GET_FUN(__glewEdgeFlagPointerListIBM) -#define glFogCoordPointerListIBM GLEW_GET_FUN(__glewFogCoordPointerListIBM) -#define glIndexPointerListIBM GLEW_GET_FUN(__glewIndexPointerListIBM) -#define glNormalPointerListIBM GLEW_GET_FUN(__glewNormalPointerListIBM) -#define glSecondaryColorPointerListIBM GLEW_GET_FUN(__glewSecondaryColorPointerListIBM) -#define glTexCoordPointerListIBM GLEW_GET_FUN(__glewTexCoordPointerListIBM) -#define glVertexPointerListIBM GLEW_GET_FUN(__glewVertexPointerListIBM) - -#define GLEW_IBM_vertex_array_lists GLEW_GET_VAR(__GLEW_IBM_vertex_array_lists) - -#endif /* GL_IBM_vertex_array_lists */ - -/* -------------------------- GL_INGR_color_clamp -------------------------- */ - -#ifndef GL_INGR_color_clamp -#define GL_INGR_color_clamp 1 - -#define GL_RED_MIN_CLAMP_INGR 0x8560 -#define GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define GL_RED_MAX_CLAMP_INGR 0x8564 -#define GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 - -#define GLEW_INGR_color_clamp GLEW_GET_VAR(__GLEW_INGR_color_clamp) - -#endif /* GL_INGR_color_clamp */ - -/* ------------------------- GL_INGR_interlace_read ------------------------ */ - -#ifndef GL_INGR_interlace_read -#define GL_INGR_interlace_read 1 - -#define GL_INTERLACE_READ_INGR 0x8568 - -#define GLEW_INGR_interlace_read GLEW_GET_VAR(__GLEW_INGR_interlace_read) - -#endif /* GL_INGR_interlace_read */ - -/* ------------------- GL_INTEL_fragment_shader_ordering ------------------- */ - -#ifndef GL_INTEL_fragment_shader_ordering -#define GL_INTEL_fragment_shader_ordering 1 - -#define GLEW_INTEL_fragment_shader_ordering GLEW_GET_VAR(__GLEW_INTEL_fragment_shader_ordering) - -#endif /* GL_INTEL_fragment_shader_ordering */ - -/* -------------------------- GL_INTEL_map_texture ------------------------- */ - -#ifndef GL_INTEL_map_texture -#define GL_INTEL_map_texture 1 - -#define GL_LAYOUT_DEFAULT_INTEL 0 -#define GL_LAYOUT_LINEAR_INTEL 1 -#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2 -#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF - -typedef void * (GLAPIENTRY * PFNGLMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level, GLbitfield access, GLint* stride, GLenum *layout); -typedef void (GLAPIENTRY * PFNGLSYNCTEXTUREINTELPROC) (GLuint texture); -typedef void (GLAPIENTRY * PFNGLUNMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level); - -#define glMapTexture2DINTEL GLEW_GET_FUN(__glewMapTexture2DINTEL) -#define glSyncTextureINTEL GLEW_GET_FUN(__glewSyncTextureINTEL) -#define glUnmapTexture2DINTEL GLEW_GET_FUN(__glewUnmapTexture2DINTEL) - -#define GLEW_INTEL_map_texture GLEW_GET_VAR(__GLEW_INTEL_map_texture) - -#endif /* GL_INTEL_map_texture */ - -/* ------------------------ GL_INTEL_parallel_arrays ----------------------- */ - -#ifndef GL_INTEL_parallel_arrays -#define GL_INTEL_parallel_arrays 1 - -#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 - -typedef void (GLAPIENTRY * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); -typedef void (GLAPIENTRY * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void** pointer); -typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); - -#define glColorPointervINTEL GLEW_GET_FUN(__glewColorPointervINTEL) -#define glNormalPointervINTEL GLEW_GET_FUN(__glewNormalPointervINTEL) -#define glTexCoordPointervINTEL GLEW_GET_FUN(__glewTexCoordPointervINTEL) -#define glVertexPointervINTEL GLEW_GET_FUN(__glewVertexPointervINTEL) - -#define GLEW_INTEL_parallel_arrays GLEW_GET_VAR(__GLEW_INTEL_parallel_arrays) - -#endif /* GL_INTEL_parallel_arrays */ - -/* ----------------------- GL_INTEL_performance_query ---------------------- */ - -#ifndef GL_INTEL_performance_query -#define GL_INTEL_performance_query 1 - -#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x0000 -#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x0001 -#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 -#define GL_PERFQUERY_FLUSH_INTEL 0x83FA -#define GL_PERFQUERY_WAIT_INTEL 0x83FB -#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 -#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 -#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 -#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 -#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 -#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 -#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 -#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 -#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA -#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB -#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC -#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD -#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE -#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF -#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 - -typedef void (GLAPIENTRY * PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (GLAPIENTRY * PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint* queryHandle); -typedef void (GLAPIENTRY * PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (GLAPIENTRY * PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (GLAPIENTRY * PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint* queryId); -typedef void (GLAPIENTRY * PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint* nextQueryId); -typedef void (GLAPIENTRY * PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar* counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); -typedef void (GLAPIENTRY * PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); -typedef void (GLAPIENTRY * PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar* queryName, GLuint *queryId); -typedef void (GLAPIENTRY * PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar* queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); - -#define glBeginPerfQueryINTEL GLEW_GET_FUN(__glewBeginPerfQueryINTEL) -#define glCreatePerfQueryINTEL GLEW_GET_FUN(__glewCreatePerfQueryINTEL) -#define glDeletePerfQueryINTEL GLEW_GET_FUN(__glewDeletePerfQueryINTEL) -#define glEndPerfQueryINTEL GLEW_GET_FUN(__glewEndPerfQueryINTEL) -#define glGetFirstPerfQueryIdINTEL GLEW_GET_FUN(__glewGetFirstPerfQueryIdINTEL) -#define glGetNextPerfQueryIdINTEL GLEW_GET_FUN(__glewGetNextPerfQueryIdINTEL) -#define glGetPerfCounterInfoINTEL GLEW_GET_FUN(__glewGetPerfCounterInfoINTEL) -#define glGetPerfQueryDataINTEL GLEW_GET_FUN(__glewGetPerfQueryDataINTEL) -#define glGetPerfQueryIdByNameINTEL GLEW_GET_FUN(__glewGetPerfQueryIdByNameINTEL) -#define glGetPerfQueryInfoINTEL GLEW_GET_FUN(__glewGetPerfQueryInfoINTEL) - -#define GLEW_INTEL_performance_query GLEW_GET_VAR(__GLEW_INTEL_performance_query) - -#endif /* GL_INTEL_performance_query */ - -/* ------------------------ GL_INTEL_texture_scissor ----------------------- */ - -#ifndef GL_INTEL_texture_scissor -#define GL_INTEL_texture_scissor 1 - -typedef void (GLAPIENTRY * PFNGLTEXSCISSORFUNCINTELPROC) (GLenum target, GLenum lfunc, GLenum hfunc); -typedef void (GLAPIENTRY * PFNGLTEXSCISSORINTELPROC) (GLenum target, GLclampf tlow, GLclampf thigh); - -#define glTexScissorFuncINTEL GLEW_GET_FUN(__glewTexScissorFuncINTEL) -#define glTexScissorINTEL GLEW_GET_FUN(__glewTexScissorINTEL) - -#define GLEW_INTEL_texture_scissor GLEW_GET_VAR(__GLEW_INTEL_texture_scissor) - -#endif /* GL_INTEL_texture_scissor */ - -/* --------------------- GL_KHR_blend_equation_advanced -------------------- */ - -#ifndef GL_KHR_blend_equation_advanced -#define GL_KHR_blend_equation_advanced 1 - -#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 -#define GL_MULTIPLY_KHR 0x9294 -#define GL_SCREEN_KHR 0x9295 -#define GL_OVERLAY_KHR 0x9296 -#define GL_DARKEN_KHR 0x9297 -#define GL_LIGHTEN_KHR 0x9298 -#define GL_COLORDODGE_KHR 0x9299 -#define GL_COLORBURN_KHR 0x929A -#define GL_HARDLIGHT_KHR 0x929B -#define GL_SOFTLIGHT_KHR 0x929C -#define GL_DIFFERENCE_KHR 0x929E -#define GL_EXCLUSION_KHR 0x92A0 -#define GL_HSL_HUE_KHR 0x92AD -#define GL_HSL_SATURATION_KHR 0x92AE -#define GL_HSL_COLOR_KHR 0x92AF -#define GL_HSL_LUMINOSITY_KHR 0x92B0 - -typedef void (GLAPIENTRY * PFNGLBLENDBARRIERKHRPROC) (void); - -#define glBlendBarrierKHR GLEW_GET_FUN(__glewBlendBarrierKHR) - -#define GLEW_KHR_blend_equation_advanced GLEW_GET_VAR(__GLEW_KHR_blend_equation_advanced) - -#endif /* GL_KHR_blend_equation_advanced */ - -/* ---------------- GL_KHR_blend_equation_advanced_coherent ---------------- */ - -#ifndef GL_KHR_blend_equation_advanced_coherent -#define GL_KHR_blend_equation_advanced_coherent 1 - -#define GLEW_KHR_blend_equation_advanced_coherent GLEW_GET_VAR(__GLEW_KHR_blend_equation_advanced_coherent) - -#endif /* GL_KHR_blend_equation_advanced_coherent */ - -/* ---------------------- GL_KHR_context_flush_control --------------------- */ - -#ifndef GL_KHR_context_flush_control -#define GL_KHR_context_flush_control 1 - -#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB -#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC - -#define GLEW_KHR_context_flush_control GLEW_GET_VAR(__GLEW_KHR_context_flush_control) - -#endif /* GL_KHR_context_flush_control */ - -/* ------------------------------ GL_KHR_debug ----------------------------- */ - -#ifndef GL_KHR_debug -#define GL_KHR_debug 1 - -#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 -#define GL_DEBUG_SOURCE_API 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION 0x824A -#define GL_DEBUG_SOURCE_OTHER 0x824B -#define GL_DEBUG_TYPE_ERROR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 -#define GL_DEBUG_TYPE_OTHER 0x8251 -#define GL_DEBUG_TYPE_MARKER 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D -#define GL_BUFFER 0x82E0 -#define GL_SHADER 0x82E1 -#define GL_PROGRAM 0x82E2 -#define GL_QUERY 0x82E3 -#define GL_PROGRAM_PIPELINE 0x82E4 -#define GL_SAMPLER 0x82E6 -#define GL_DISPLAY_LIST 0x82E7 -#define GL_MAX_LABEL_LENGTH 0x82E8 -#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES 0x9145 -#define GL_DEBUG_SEVERITY_HIGH 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 -#define GL_DEBUG_SEVERITY_LOW 0x9148 -#define GL_DEBUG_OUTPUT 0x92E0 - -typedef void (GLAPIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam); - -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf); -typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog); -typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar *label); -typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei* length, GLchar *label); -typedef void (GLAPIENTRY * PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label); -typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar* label); -typedef void (GLAPIENTRY * PFNGLPOPDEBUGGROUPPROC) (void); -typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar * message); - -#define glDebugMessageCallback GLEW_GET_FUN(__glewDebugMessageCallback) -#define glDebugMessageControl GLEW_GET_FUN(__glewDebugMessageControl) -#define glDebugMessageInsert GLEW_GET_FUN(__glewDebugMessageInsert) -#define glGetDebugMessageLog GLEW_GET_FUN(__glewGetDebugMessageLog) -#define glGetObjectLabel GLEW_GET_FUN(__glewGetObjectLabel) -#define glGetObjectPtrLabel GLEW_GET_FUN(__glewGetObjectPtrLabel) -#define glObjectLabel GLEW_GET_FUN(__glewObjectLabel) -#define glObjectPtrLabel GLEW_GET_FUN(__glewObjectPtrLabel) -#define glPopDebugGroup GLEW_GET_FUN(__glewPopDebugGroup) -#define glPushDebugGroup GLEW_GET_FUN(__glewPushDebugGroup) - -#define GLEW_KHR_debug GLEW_GET_VAR(__GLEW_KHR_debug) - -#endif /* GL_KHR_debug */ - -/* ------------------ GL_KHR_robust_buffer_access_behavior ----------------- */ - -#ifndef GL_KHR_robust_buffer_access_behavior -#define GL_KHR_robust_buffer_access_behavior 1 - -#define GLEW_KHR_robust_buffer_access_behavior GLEW_GET_VAR(__GLEW_KHR_robust_buffer_access_behavior) - -#endif /* GL_KHR_robust_buffer_access_behavior */ - -/* --------------------------- GL_KHR_robustness --------------------------- */ - -#ifndef GL_KHR_robustness -#define GL_KHR_robustness 1 - -#define GL_CONTEXT_LOST 0x0507 -#define GL_LOSE_CONTEXT_ON_RESET 0x8252 -#define GL_GUILTY_CONTEXT_RESET 0x8253 -#define GL_INNOCENT_CONTEXT_RESET 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY 0x8256 -#define GL_NO_RESET_NOTIFICATION 0x8261 -#define GL_CONTEXT_ROBUST_ACCESS 0x90F3 - -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params); -typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); - -#define glGetnUniformfv GLEW_GET_FUN(__glewGetnUniformfv) -#define glGetnUniformiv GLEW_GET_FUN(__glewGetnUniformiv) -#define glGetnUniformuiv GLEW_GET_FUN(__glewGetnUniformuiv) -#define glReadnPixels GLEW_GET_FUN(__glewReadnPixels) - -#define GLEW_KHR_robustness GLEW_GET_VAR(__GLEW_KHR_robustness) - -#endif /* GL_KHR_robustness */ - -/* ------------------ GL_KHR_texture_compression_astc_hdr ------------------ */ - -#ifndef GL_KHR_texture_compression_astc_hdr -#define GL_KHR_texture_compression_astc_hdr 1 - -#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 -#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 -#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 -#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 -#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 -#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 -#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 -#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 -#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 -#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 -#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA -#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB -#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC -#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD - -#define GLEW_KHR_texture_compression_astc_hdr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_hdr) - -#endif /* GL_KHR_texture_compression_astc_hdr */ - -/* ------------------ GL_KHR_texture_compression_astc_ldr ------------------ */ - -#ifndef GL_KHR_texture_compression_astc_ldr -#define GL_KHR_texture_compression_astc_ldr 1 - -#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 -#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 -#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 -#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 -#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 -#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 -#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 -#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 -#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 -#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 -#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA -#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB -#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC -#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD - -#define GLEW_KHR_texture_compression_astc_ldr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_ldr) - -#endif /* GL_KHR_texture_compression_astc_ldr */ - -/* -------------------------- GL_KTX_buffer_region ------------------------- */ - -#ifndef GL_KTX_buffer_region -#define GL_KTX_buffer_region 1 - -#define GL_KTX_FRONT_REGION 0x0 -#define GL_KTX_BACK_REGION 0x1 -#define GL_KTX_Z_REGION 0x2 -#define GL_KTX_STENCIL_REGION 0x3 - -typedef GLuint (GLAPIENTRY * PFNGLBUFFERREGIONENABLEDPROC) (void); -typedef void (GLAPIENTRY * PFNGLDELETEBUFFERREGIONPROC) (GLenum region); -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest); -typedef GLuint (GLAPIENTRY * PFNGLNEWBUFFERREGIONPROC) (GLenum region); -typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height); - -#define glBufferRegionEnabled GLEW_GET_FUN(__glewBufferRegionEnabled) -#define glDeleteBufferRegion GLEW_GET_FUN(__glewDeleteBufferRegion) -#define glDrawBufferRegion GLEW_GET_FUN(__glewDrawBufferRegion) -#define glNewBufferRegion GLEW_GET_FUN(__glewNewBufferRegion) -#define glReadBufferRegion GLEW_GET_FUN(__glewReadBufferRegion) - -#define GLEW_KTX_buffer_region GLEW_GET_VAR(__GLEW_KTX_buffer_region) - -#endif /* GL_KTX_buffer_region */ - -/* ------------------------- GL_MESAX_texture_stack ------------------------ */ - -#ifndef GL_MESAX_texture_stack -#define GL_MESAX_texture_stack 1 - -#define GL_TEXTURE_1D_STACK_MESAX 0x8759 -#define GL_TEXTURE_2D_STACK_MESAX 0x875A -#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B -#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C -#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D -#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E - -#define GLEW_MESAX_texture_stack GLEW_GET_VAR(__GLEW_MESAX_texture_stack) - -#endif /* GL_MESAX_texture_stack */ - -/* -------------------------- GL_MESA_pack_invert -------------------------- */ - -#ifndef GL_MESA_pack_invert -#define GL_MESA_pack_invert 1 - -#define GL_PACK_INVERT_MESA 0x8758 - -#define GLEW_MESA_pack_invert GLEW_GET_VAR(__GLEW_MESA_pack_invert) - -#endif /* GL_MESA_pack_invert */ - -/* ------------------------- GL_MESA_resize_buffers ------------------------ */ - -#ifndef GL_MESA_resize_buffers -#define GL_MESA_resize_buffers 1 - -typedef void (GLAPIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void); - -#define glResizeBuffersMESA GLEW_GET_FUN(__glewResizeBuffersMESA) - -#define GLEW_MESA_resize_buffers GLEW_GET_VAR(__GLEW_MESA_resize_buffers) - -#endif /* GL_MESA_resize_buffers */ - -/* --------------------------- GL_MESA_window_pos -------------------------- */ - -#ifndef GL_MESA_window_pos -#define GL_MESA_window_pos 1 - -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p); - -#define glWindowPos2dMESA GLEW_GET_FUN(__glewWindowPos2dMESA) -#define glWindowPos2dvMESA GLEW_GET_FUN(__glewWindowPos2dvMESA) -#define glWindowPos2fMESA GLEW_GET_FUN(__glewWindowPos2fMESA) -#define glWindowPos2fvMESA GLEW_GET_FUN(__glewWindowPos2fvMESA) -#define glWindowPos2iMESA GLEW_GET_FUN(__glewWindowPos2iMESA) -#define glWindowPos2ivMESA GLEW_GET_FUN(__glewWindowPos2ivMESA) -#define glWindowPos2sMESA GLEW_GET_FUN(__glewWindowPos2sMESA) -#define glWindowPos2svMESA GLEW_GET_FUN(__glewWindowPos2svMESA) -#define glWindowPos3dMESA GLEW_GET_FUN(__glewWindowPos3dMESA) -#define glWindowPos3dvMESA GLEW_GET_FUN(__glewWindowPos3dvMESA) -#define glWindowPos3fMESA GLEW_GET_FUN(__glewWindowPos3fMESA) -#define glWindowPos3fvMESA GLEW_GET_FUN(__glewWindowPos3fvMESA) -#define glWindowPos3iMESA GLEW_GET_FUN(__glewWindowPos3iMESA) -#define glWindowPos3ivMESA GLEW_GET_FUN(__glewWindowPos3ivMESA) -#define glWindowPos3sMESA GLEW_GET_FUN(__glewWindowPos3sMESA) -#define glWindowPos3svMESA GLEW_GET_FUN(__glewWindowPos3svMESA) -#define glWindowPos4dMESA GLEW_GET_FUN(__glewWindowPos4dMESA) -#define glWindowPos4dvMESA GLEW_GET_FUN(__glewWindowPos4dvMESA) -#define glWindowPos4fMESA GLEW_GET_FUN(__glewWindowPos4fMESA) -#define glWindowPos4fvMESA GLEW_GET_FUN(__glewWindowPos4fvMESA) -#define glWindowPos4iMESA GLEW_GET_FUN(__glewWindowPos4iMESA) -#define glWindowPos4ivMESA GLEW_GET_FUN(__glewWindowPos4ivMESA) -#define glWindowPos4sMESA GLEW_GET_FUN(__glewWindowPos4sMESA) -#define glWindowPos4svMESA GLEW_GET_FUN(__glewWindowPos4svMESA) - -#define GLEW_MESA_window_pos GLEW_GET_VAR(__GLEW_MESA_window_pos) - -#endif /* GL_MESA_window_pos */ - -/* ------------------------- GL_MESA_ycbcr_texture ------------------------- */ - -#ifndef GL_MESA_ycbcr_texture -#define GL_MESA_ycbcr_texture 1 - -#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB -#define GL_YCBCR_MESA 0x8757 - -#define GLEW_MESA_ycbcr_texture GLEW_GET_VAR(__GLEW_MESA_ycbcr_texture) - -#endif /* GL_MESA_ycbcr_texture */ - -/* ----------------------- GL_NVX_conditional_render ----------------------- */ - -#ifndef GL_NVX_conditional_render -#define GL_NVX_conditional_render 1 - -typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVXPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVXPROC) (void); - -#define glBeginConditionalRenderNVX GLEW_GET_FUN(__glewBeginConditionalRenderNVX) -#define glEndConditionalRenderNVX GLEW_GET_FUN(__glewEndConditionalRenderNVX) - -#define GLEW_NVX_conditional_render GLEW_GET_VAR(__GLEW_NVX_conditional_render) - -#endif /* GL_NVX_conditional_render */ - -/* ------------------------- GL_NVX_gpu_memory_info ------------------------ */ - -#ifndef GL_NVX_gpu_memory_info -#define GL_NVX_gpu_memory_info 1 - -#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 -#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 -#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 -#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A -#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B - -#define GLEW_NVX_gpu_memory_info GLEW_GET_VAR(__GLEW_NVX_gpu_memory_info) - -#endif /* GL_NVX_gpu_memory_info */ - -/* ------------------- GL_NV_bindless_multi_draw_indirect ------------------ */ - -#ifndef GL_NV_bindless_multi_draw_indirect -#define GL_NV_bindless_multi_draw_indirect 1 - -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); - -#define glMultiDrawArraysIndirectBindlessNV GLEW_GET_FUN(__glewMultiDrawArraysIndirectBindlessNV) -#define glMultiDrawElementsIndirectBindlessNV GLEW_GET_FUN(__glewMultiDrawElementsIndirectBindlessNV) - -#define GLEW_NV_bindless_multi_draw_indirect GLEW_GET_VAR(__GLEW_NV_bindless_multi_draw_indirect) - -#endif /* GL_NV_bindless_multi_draw_indirect */ - -/* ---------------- GL_NV_bindless_multi_draw_indirect_count --------------- */ - -#ifndef GL_NV_bindless_multi_draw_indirect_count -#define GL_NV_bindless_multi_draw_indirect_count 1 - -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, const void *indirect, GLintptr drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); - -#define glMultiDrawArraysIndirectBindlessCountNV GLEW_GET_FUN(__glewMultiDrawArraysIndirectBindlessCountNV) -#define glMultiDrawElementsIndirectBindlessCountNV GLEW_GET_FUN(__glewMultiDrawElementsIndirectBindlessCountNV) - -#define GLEW_NV_bindless_multi_draw_indirect_count GLEW_GET_VAR(__GLEW_NV_bindless_multi_draw_indirect_count) - -#endif /* GL_NV_bindless_multi_draw_indirect_count */ - -/* ------------------------- GL_NV_bindless_texture ------------------------ */ - -#ifndef GL_NV_bindless_texture -#define GL_NV_bindless_texture 1 - -typedef GLuint64 (GLAPIENTRY * PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); -typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); -typedef GLboolean (GLAPIENTRY * PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); -typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values); -typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); -typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64* value); - -#define glGetImageHandleNV GLEW_GET_FUN(__glewGetImageHandleNV) -#define glGetTextureHandleNV GLEW_GET_FUN(__glewGetTextureHandleNV) -#define glGetTextureSamplerHandleNV GLEW_GET_FUN(__glewGetTextureSamplerHandleNV) -#define glIsImageHandleResidentNV GLEW_GET_FUN(__glewIsImageHandleResidentNV) -#define glIsTextureHandleResidentNV GLEW_GET_FUN(__glewIsTextureHandleResidentNV) -#define glMakeImageHandleNonResidentNV GLEW_GET_FUN(__glewMakeImageHandleNonResidentNV) -#define glMakeImageHandleResidentNV GLEW_GET_FUN(__glewMakeImageHandleResidentNV) -#define glMakeTextureHandleNonResidentNV GLEW_GET_FUN(__glewMakeTextureHandleNonResidentNV) -#define glMakeTextureHandleResidentNV GLEW_GET_FUN(__glewMakeTextureHandleResidentNV) -#define glProgramUniformHandleui64NV GLEW_GET_FUN(__glewProgramUniformHandleui64NV) -#define glProgramUniformHandleui64vNV GLEW_GET_FUN(__glewProgramUniformHandleui64vNV) -#define glUniformHandleui64NV GLEW_GET_FUN(__glewUniformHandleui64NV) -#define glUniformHandleui64vNV GLEW_GET_FUN(__glewUniformHandleui64vNV) - -#define GLEW_NV_bindless_texture GLEW_GET_VAR(__GLEW_NV_bindless_texture) - -#endif /* GL_NV_bindless_texture */ - -/* --------------------- GL_NV_blend_equation_advanced --------------------- */ - -#ifndef GL_NV_blend_equation_advanced -#define GL_NV_blend_equation_advanced 1 - -#define GL_XOR_NV 0x1506 -#define GL_RED_NV 0x1903 -#define GL_GREEN_NV 0x1904 -#define GL_BLUE_NV 0x1905 -#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 -#define GL_BLEND_OVERLAP_NV 0x9281 -#define GL_UNCORRELATED_NV 0x9282 -#define GL_DISJOINT_NV 0x9283 -#define GL_CONJOINT_NV 0x9284 -#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 -#define GL_SRC_NV 0x9286 -#define GL_DST_NV 0x9287 -#define GL_SRC_OVER_NV 0x9288 -#define GL_DST_OVER_NV 0x9289 -#define GL_SRC_IN_NV 0x928A -#define GL_DST_IN_NV 0x928B -#define GL_SRC_OUT_NV 0x928C -#define GL_DST_OUT_NV 0x928D -#define GL_SRC_ATOP_NV 0x928E -#define GL_DST_ATOP_NV 0x928F -#define GL_PLUS_NV 0x9291 -#define GL_PLUS_DARKER_NV 0x9292 -#define GL_MULTIPLY_NV 0x9294 -#define GL_SCREEN_NV 0x9295 -#define GL_OVERLAY_NV 0x9296 -#define GL_DARKEN_NV 0x9297 -#define GL_LIGHTEN_NV 0x9298 -#define GL_COLORDODGE_NV 0x9299 -#define GL_COLORBURN_NV 0x929A -#define GL_HARDLIGHT_NV 0x929B -#define GL_SOFTLIGHT_NV 0x929C -#define GL_DIFFERENCE_NV 0x929E -#define GL_MINUS_NV 0x929F -#define GL_EXCLUSION_NV 0x92A0 -#define GL_CONTRAST_NV 0x92A1 -#define GL_INVERT_RGB_NV 0x92A3 -#define GL_LINEARDODGE_NV 0x92A4 -#define GL_LINEARBURN_NV 0x92A5 -#define GL_VIVIDLIGHT_NV 0x92A6 -#define GL_LINEARLIGHT_NV 0x92A7 -#define GL_PINLIGHT_NV 0x92A8 -#define GL_HARDMIX_NV 0x92A9 -#define GL_HSL_HUE_NV 0x92AD -#define GL_HSL_SATURATION_NV 0x92AE -#define GL_HSL_COLOR_NV 0x92AF -#define GL_HSL_LUMINOSITY_NV 0x92B0 -#define GL_PLUS_CLAMPED_NV 0x92B1 -#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 -#define GL_MINUS_CLAMPED_NV 0x92B3 -#define GL_INVERT_OVG_NV 0x92B4 - -typedef void (GLAPIENTRY * PFNGLBLENDBARRIERNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); - -#define glBlendBarrierNV GLEW_GET_FUN(__glewBlendBarrierNV) -#define glBlendParameteriNV GLEW_GET_FUN(__glewBlendParameteriNV) - -#define GLEW_NV_blend_equation_advanced GLEW_GET_VAR(__GLEW_NV_blend_equation_advanced) - -#endif /* GL_NV_blend_equation_advanced */ - -/* ----------------- GL_NV_blend_equation_advanced_coherent ---------------- */ - -#ifndef GL_NV_blend_equation_advanced_coherent -#define GL_NV_blend_equation_advanced_coherent 1 - -#define GLEW_NV_blend_equation_advanced_coherent GLEW_GET_VAR(__GLEW_NV_blend_equation_advanced_coherent) - -#endif /* GL_NV_blend_equation_advanced_coherent */ - -/* --------------------------- GL_NV_blend_square -------------------------- */ - -#ifndef GL_NV_blend_square -#define GL_NV_blend_square 1 - -#define GLEW_NV_blend_square GLEW_GET_VAR(__GLEW_NV_blend_square) - -#endif /* GL_NV_blend_square */ - -/* ------------------------- GL_NV_compute_program5 ------------------------ */ - -#ifndef GL_NV_compute_program5 -#define GL_NV_compute_program5 1 - -#define GL_COMPUTE_PROGRAM_NV 0x90FB -#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC - -#define GLEW_NV_compute_program5 GLEW_GET_VAR(__GLEW_NV_compute_program5) - -#endif /* GL_NV_compute_program5 */ - -/* ------------------------ GL_NV_conditional_render ----------------------- */ - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 - -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 - -typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); -typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVPROC) (void); - -#define glBeginConditionalRenderNV GLEW_GET_FUN(__glewBeginConditionalRenderNV) -#define glEndConditionalRenderNV GLEW_GET_FUN(__glewEndConditionalRenderNV) - -#define GLEW_NV_conditional_render GLEW_GET_VAR(__GLEW_NV_conditional_render) - -#endif /* GL_NV_conditional_render */ - -/* ----------------------- GL_NV_conservative_raster ----------------------- */ - -#ifndef GL_NV_conservative_raster -#define GL_NV_conservative_raster 1 - -#define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346 -#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347 -#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348 -#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349 - -typedef void (GLAPIENTRY * PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits); - -#define glSubpixelPrecisionBiasNV GLEW_GET_FUN(__glewSubpixelPrecisionBiasNV) - -#define GLEW_NV_conservative_raster GLEW_GET_VAR(__GLEW_NV_conservative_raster) - -#endif /* GL_NV_conservative_raster */ - -/* ----------------------- GL_NV_copy_depth_to_color ----------------------- */ - -#ifndef GL_NV_copy_depth_to_color -#define GL_NV_copy_depth_to_color 1 - -#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E -#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F - -#define GLEW_NV_copy_depth_to_color GLEW_GET_VAR(__GLEW_NV_copy_depth_to_color) - -#endif /* GL_NV_copy_depth_to_color */ - -/* ---------------------------- GL_NV_copy_image --------------------------- */ - -#ifndef GL_NV_copy_image -#define GL_NV_copy_image 1 - -typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); - -#define glCopyImageSubDataNV GLEW_GET_FUN(__glewCopyImageSubDataNV) - -#define GLEW_NV_copy_image GLEW_GET_VAR(__GLEW_NV_copy_image) - -#endif /* GL_NV_copy_image */ - -/* -------------------------- GL_NV_deep_texture3D ------------------------- */ - -#ifndef GL_NV_deep_texture3D -#define GL_NV_deep_texture3D 1 - -#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0 -#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1 - -#define GLEW_NV_deep_texture3D GLEW_GET_VAR(__GLEW_NV_deep_texture3D) - -#endif /* GL_NV_deep_texture3D */ - -/* ------------------------ GL_NV_depth_buffer_float ----------------------- */ - -#ifndef GL_NV_depth_buffer_float -#define GL_NV_depth_buffer_float 1 - -#define GL_DEPTH_COMPONENT32F_NV 0x8DAB -#define GL_DEPTH32F_STENCIL8_NV 0x8DAC -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD -#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF - -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); -typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); - -#define glClearDepthdNV GLEW_GET_FUN(__glewClearDepthdNV) -#define glDepthBoundsdNV GLEW_GET_FUN(__glewDepthBoundsdNV) -#define glDepthRangedNV GLEW_GET_FUN(__glewDepthRangedNV) - -#define GLEW_NV_depth_buffer_float GLEW_GET_VAR(__GLEW_NV_depth_buffer_float) - -#endif /* GL_NV_depth_buffer_float */ - -/* --------------------------- GL_NV_depth_clamp --------------------------- */ - -#ifndef GL_NV_depth_clamp -#define GL_NV_depth_clamp 1 - -#define GL_DEPTH_CLAMP_NV 0x864F - -#define GLEW_NV_depth_clamp GLEW_GET_VAR(__GLEW_NV_depth_clamp) - -#endif /* GL_NV_depth_clamp */ - -/* ---------------------- GL_NV_depth_range_unclamped ---------------------- */ - -#ifndef GL_NV_depth_range_unclamped -#define GL_NV_depth_range_unclamped 1 - -#define GL_SAMPLE_COUNT_BITS_NV 0x8864 -#define GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865 -#define GL_QUERY_RESULT_NV 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_NV 0x8867 -#define GL_SAMPLE_COUNT_NV 0x8914 - -#define GLEW_NV_depth_range_unclamped GLEW_GET_VAR(__GLEW_NV_depth_range_unclamped) - -#endif /* GL_NV_depth_range_unclamped */ - -/* --------------------------- GL_NV_draw_texture -------------------------- */ - -#ifndef GL_NV_draw_texture -#define GL_NV_draw_texture 1 - -typedef void (GLAPIENTRY * PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); - -#define glDrawTextureNV GLEW_GET_FUN(__glewDrawTextureNV) - -#define GLEW_NV_draw_texture GLEW_GET_VAR(__GLEW_NV_draw_texture) - -#endif /* GL_NV_draw_texture */ - -/* ---------------------------- GL_NV_evaluators --------------------------- */ - -#ifndef GL_NV_evaluators -#define GL_NV_evaluators 1 - -#define GL_EVAL_2D_NV 0x86C0 -#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define GL_MAP_TESSELLATION_NV 0x86C2 -#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 - -typedef void (GLAPIENTRY * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); -typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); -typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); -typedef void (GLAPIENTRY * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint* params); - -#define glEvalMapsNV GLEW_GET_FUN(__glewEvalMapsNV) -#define glGetMapAttribParameterfvNV GLEW_GET_FUN(__glewGetMapAttribParameterfvNV) -#define glGetMapAttribParameterivNV GLEW_GET_FUN(__glewGetMapAttribParameterivNV) -#define glGetMapControlPointsNV GLEW_GET_FUN(__glewGetMapControlPointsNV) -#define glGetMapParameterfvNV GLEW_GET_FUN(__glewGetMapParameterfvNV) -#define glGetMapParameterivNV GLEW_GET_FUN(__glewGetMapParameterivNV) -#define glMapControlPointsNV GLEW_GET_FUN(__glewMapControlPointsNV) -#define glMapParameterfvNV GLEW_GET_FUN(__glewMapParameterfvNV) -#define glMapParameterivNV GLEW_GET_FUN(__glewMapParameterivNV) - -#define GLEW_NV_evaluators GLEW_GET_VAR(__GLEW_NV_evaluators) - -#endif /* GL_NV_evaluators */ - -/* ----------------------- GL_NV_explicit_multisample ---------------------- */ - -#ifndef GL_NV_explicit_multisample -#define GL_NV_explicit_multisample 1 - -#define GL_SAMPLE_POSITION_NV 0x8E50 -#define GL_SAMPLE_MASK_NV 0x8E51 -#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 -#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 -#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 -#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 -#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 -#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 -#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 -#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 - -typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat* val); -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); - -#define glGetMultisamplefvNV GLEW_GET_FUN(__glewGetMultisamplefvNV) -#define glSampleMaskIndexedNV GLEW_GET_FUN(__glewSampleMaskIndexedNV) -#define glTexRenderbufferNV GLEW_GET_FUN(__glewTexRenderbufferNV) - -#define GLEW_NV_explicit_multisample GLEW_GET_VAR(__GLEW_NV_explicit_multisample) - -#endif /* GL_NV_explicit_multisample */ - -/* ------------------------------ GL_NV_fence ------------------------------ */ - -#ifndef GL_NV_fence -#define GL_NV_fence 1 - -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 - -typedef void (GLAPIENTRY * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint* fences); -typedef void (GLAPIENTRY * PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint* fences); -typedef void (GLAPIENTRY * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISFENCENVPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCENVPROC) (GLuint fence); - -#define glDeleteFencesNV GLEW_GET_FUN(__glewDeleteFencesNV) -#define glFinishFenceNV GLEW_GET_FUN(__glewFinishFenceNV) -#define glGenFencesNV GLEW_GET_FUN(__glewGenFencesNV) -#define glGetFenceivNV GLEW_GET_FUN(__glewGetFenceivNV) -#define glIsFenceNV GLEW_GET_FUN(__glewIsFenceNV) -#define glSetFenceNV GLEW_GET_FUN(__glewSetFenceNV) -#define glTestFenceNV GLEW_GET_FUN(__glewTestFenceNV) - -#define GLEW_NV_fence GLEW_GET_VAR(__GLEW_NV_fence) - -#endif /* GL_NV_fence */ - -/* -------------------------- GL_NV_fill_rectangle ------------------------- */ - -#ifndef GL_NV_fill_rectangle -#define GL_NV_fill_rectangle 1 - -#define GL_FILL_RECTANGLE_NV 0x933C - -#define GLEW_NV_fill_rectangle GLEW_GET_VAR(__GLEW_NV_fill_rectangle) - -#endif /* GL_NV_fill_rectangle */ - -/* --------------------------- GL_NV_float_buffer -------------------------- */ - -#ifndef GL_NV_float_buffer -#define GL_NV_float_buffer 1 - -#define GL_FLOAT_R_NV 0x8880 -#define GL_FLOAT_RG_NV 0x8881 -#define GL_FLOAT_RGB_NV 0x8882 -#define GL_FLOAT_RGBA_NV 0x8883 -#define GL_FLOAT_R16_NV 0x8884 -#define GL_FLOAT_R32_NV 0x8885 -#define GL_FLOAT_RG16_NV 0x8886 -#define GL_FLOAT_RG32_NV 0x8887 -#define GL_FLOAT_RGB16_NV 0x8888 -#define GL_FLOAT_RGB32_NV 0x8889 -#define GL_FLOAT_RGBA16_NV 0x888A -#define GL_FLOAT_RGBA32_NV 0x888B -#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define GL_FLOAT_RGBA_MODE_NV 0x888E - -#define GLEW_NV_float_buffer GLEW_GET_VAR(__GLEW_NV_float_buffer) - -#endif /* GL_NV_float_buffer */ - -/* --------------------------- GL_NV_fog_distance -------------------------- */ - -#ifndef GL_NV_fog_distance -#define GL_NV_fog_distance 1 - -#define GL_FOG_DISTANCE_MODE_NV 0x855A -#define GL_EYE_RADIAL_NV 0x855B -#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C - -#define GLEW_NV_fog_distance GLEW_GET_VAR(__GLEW_NV_fog_distance) - -#endif /* GL_NV_fog_distance */ - -/* -------------------- GL_NV_fragment_coverage_to_color ------------------- */ - -#ifndef GL_NV_fragment_coverage_to_color -#define GL_NV_fragment_coverage_to_color 1 - -#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD -#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE - -typedef void (GLAPIENTRY * PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color); - -#define glFragmentCoverageColorNV GLEW_GET_FUN(__glewFragmentCoverageColorNV) - -#define GLEW_NV_fragment_coverage_to_color GLEW_GET_VAR(__GLEW_NV_fragment_coverage_to_color) - -#endif /* GL_NV_fragment_coverage_to_color */ - -/* ------------------------- GL_NV_fragment_program ------------------------ */ - -#ifndef GL_NV_fragment_program -#define GL_NV_fragment_program 1 - -#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 -#define GL_FRAGMENT_PROGRAM_NV 0x8870 -#define GL_MAX_TEXTURE_COORDS_NV 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 -#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 -#define GL_PROGRAM_ERROR_STRING_NV 0x8874 - -typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble *params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLdouble v[]); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLfloat v[]); - -#define glGetProgramNamedParameterdvNV GLEW_GET_FUN(__glewGetProgramNamedParameterdvNV) -#define glGetProgramNamedParameterfvNV GLEW_GET_FUN(__glewGetProgramNamedParameterfvNV) -#define glProgramNamedParameter4dNV GLEW_GET_FUN(__glewProgramNamedParameter4dNV) -#define glProgramNamedParameter4dvNV GLEW_GET_FUN(__glewProgramNamedParameter4dvNV) -#define glProgramNamedParameter4fNV GLEW_GET_FUN(__glewProgramNamedParameter4fNV) -#define glProgramNamedParameter4fvNV GLEW_GET_FUN(__glewProgramNamedParameter4fvNV) - -#define GLEW_NV_fragment_program GLEW_GET_VAR(__GLEW_NV_fragment_program) - -#endif /* GL_NV_fragment_program */ - -/* ------------------------ GL_NV_fragment_program2 ------------------------ */ - -#ifndef GL_NV_fragment_program2 -#define GL_NV_fragment_program2 1 - -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 -#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 -#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 - -#define GLEW_NV_fragment_program2 GLEW_GET_VAR(__GLEW_NV_fragment_program2) - -#endif /* GL_NV_fragment_program2 */ - -/* ------------------------ GL_NV_fragment_program4 ------------------------ */ - -#ifndef GL_NV_fragment_program4 -#define GL_NV_fragment_program4 1 - -#define GLEW_NV_fragment_program4 GLEW_GET_VAR(__GLEW_NV_fragment_program4) - -#endif /* GL_NV_fragment_program4 */ - -/* --------------------- GL_NV_fragment_program_option --------------------- */ - -#ifndef GL_NV_fragment_program_option -#define GL_NV_fragment_program_option 1 - -#define GLEW_NV_fragment_program_option GLEW_GET_VAR(__GLEW_NV_fragment_program_option) - -#endif /* GL_NV_fragment_program_option */ - -/* -------------------- GL_NV_fragment_shader_interlock -------------------- */ - -#ifndef GL_NV_fragment_shader_interlock -#define GL_NV_fragment_shader_interlock 1 - -#define GLEW_NV_fragment_shader_interlock GLEW_GET_VAR(__GLEW_NV_fragment_shader_interlock) - -#endif /* GL_NV_fragment_shader_interlock */ - -/* -------------------- GL_NV_framebuffer_mixed_samples -------------------- */ - -#ifndef GL_NV_framebuffer_mixed_samples -#define GL_NV_framebuffer_mixed_samples 1 - -#define GL_COLOR_SAMPLES_NV 0x8E20 -#define GL_RASTER_MULTISAMPLE_EXT 0x9327 -#define GL_RASTER_SAMPLES_EXT 0x9328 -#define GL_MAX_RASTER_SAMPLES_EXT 0x9329 -#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A -#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B -#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C -#define GL_DEPTH_SAMPLES_NV 0x932D -#define GL_STENCIL_SAMPLES_NV 0x932E -#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F -#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 -#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 -#define GL_COVERAGE_MODULATION_NV 0x9332 -#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 - -#define GLEW_NV_framebuffer_mixed_samples GLEW_GET_VAR(__GLEW_NV_framebuffer_mixed_samples) - -#endif /* GL_NV_framebuffer_mixed_samples */ - -/* ----------------- GL_NV_framebuffer_multisample_coverage ---------------- */ - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_NV_framebuffer_multisample_coverage 1 - -#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB -#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 -#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 -#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 - -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); - -#define glRenderbufferStorageMultisampleCoverageNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleCoverageNV) - -#define GLEW_NV_framebuffer_multisample_coverage GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample_coverage) - -#endif /* GL_NV_framebuffer_multisample_coverage */ - -/* ------------------------ GL_NV_geometry_program4 ------------------------ */ - -#ifndef GL_NV_geometry_program4 -#define GL_NV_geometry_program4 1 - -#define GL_GEOMETRY_PROGRAM_NV 0x8C26 -#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 -#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 - -typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); - -#define glProgramVertexLimitNV GLEW_GET_FUN(__glewProgramVertexLimitNV) - -#define GLEW_NV_geometry_program4 GLEW_GET_VAR(__GLEW_NV_geometry_program4) - -#endif /* GL_NV_geometry_program4 */ - -/* ------------------------- GL_NV_geometry_shader4 ------------------------ */ - -#ifndef GL_NV_geometry_shader4 -#define GL_NV_geometry_shader4 1 - -#define GLEW_NV_geometry_shader4 GLEW_GET_VAR(__GLEW_NV_geometry_shader4) - -#endif /* GL_NV_geometry_shader4 */ - -/* ------------------- GL_NV_geometry_shader_passthrough ------------------- */ - -#ifndef GL_NV_geometry_shader_passthrough -#define GL_NV_geometry_shader_passthrough 1 - -#define GLEW_NV_geometry_shader_passthrough GLEW_GET_VAR(__GLEW_NV_geometry_shader_passthrough) - -#endif /* GL_NV_geometry_shader_passthrough */ - -/* --------------------------- GL_NV_gpu_program4 -------------------------- */ - -#ifndef GL_NV_gpu_program4 -#define GL_NV_gpu_program4 1 - -#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 -#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 -#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 -#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 -#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 -#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 -#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 - -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); - -#define glProgramEnvParameterI4iNV GLEW_GET_FUN(__glewProgramEnvParameterI4iNV) -#define glProgramEnvParameterI4ivNV GLEW_GET_FUN(__glewProgramEnvParameterI4ivNV) -#define glProgramEnvParameterI4uiNV GLEW_GET_FUN(__glewProgramEnvParameterI4uiNV) -#define glProgramEnvParameterI4uivNV GLEW_GET_FUN(__glewProgramEnvParameterI4uivNV) -#define glProgramEnvParametersI4ivNV GLEW_GET_FUN(__glewProgramEnvParametersI4ivNV) -#define glProgramEnvParametersI4uivNV GLEW_GET_FUN(__glewProgramEnvParametersI4uivNV) -#define glProgramLocalParameterI4iNV GLEW_GET_FUN(__glewProgramLocalParameterI4iNV) -#define glProgramLocalParameterI4ivNV GLEW_GET_FUN(__glewProgramLocalParameterI4ivNV) -#define glProgramLocalParameterI4uiNV GLEW_GET_FUN(__glewProgramLocalParameterI4uiNV) -#define glProgramLocalParameterI4uivNV GLEW_GET_FUN(__glewProgramLocalParameterI4uivNV) -#define glProgramLocalParametersI4ivNV GLEW_GET_FUN(__glewProgramLocalParametersI4ivNV) -#define glProgramLocalParametersI4uivNV GLEW_GET_FUN(__glewProgramLocalParametersI4uivNV) - -#define GLEW_NV_gpu_program4 GLEW_GET_VAR(__GLEW_NV_gpu_program4) - -#endif /* GL_NV_gpu_program4 */ - -/* --------------------------- GL_NV_gpu_program5 -------------------------- */ - -#ifndef GL_NV_gpu_program5 -#define GL_NV_gpu_program5 1 - -#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C -#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F - -#define GLEW_NV_gpu_program5 GLEW_GET_VAR(__GLEW_NV_gpu_program5) - -#endif /* GL_NV_gpu_program5 */ - -/* -------------------- GL_NV_gpu_program5_mem_extended -------------------- */ - -#ifndef GL_NV_gpu_program5_mem_extended -#define GL_NV_gpu_program5_mem_extended 1 - -#define GLEW_NV_gpu_program5_mem_extended GLEW_GET_VAR(__GLEW_NV_gpu_program5_mem_extended) - -#endif /* GL_NV_gpu_program5_mem_extended */ - -/* ------------------------- GL_NV_gpu_program_fp64 ------------------------ */ - -#ifndef GL_NV_gpu_program_fp64 -#define GL_NV_gpu_program_fp64 1 - -#define GLEW_NV_gpu_program_fp64 GLEW_GET_VAR(__GLEW_NV_gpu_program_fp64) - -#endif /* GL_NV_gpu_program_fp64 */ - -/* --------------------------- GL_NV_gpu_shader5 --------------------------- */ - -#ifndef GL_NV_gpu_shader5 -#define GL_NV_gpu_shader5 1 - -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F -#define GL_INT8_NV 0x8FE0 -#define GL_INT8_VEC2_NV 0x8FE1 -#define GL_INT8_VEC3_NV 0x8FE2 -#define GL_INT8_VEC4_NV 0x8FE3 -#define GL_INT16_NV 0x8FE4 -#define GL_INT16_VEC2_NV 0x8FE5 -#define GL_INT16_VEC3_NV 0x8FE6 -#define GL_INT16_VEC4_NV 0x8FE7 -#define GL_INT64_VEC2_NV 0x8FE9 -#define GL_INT64_VEC3_NV 0x8FEA -#define GL_INT64_VEC4_NV 0x8FEB -#define GL_UNSIGNED_INT8_NV 0x8FEC -#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED -#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE -#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF -#define GL_UNSIGNED_INT16_NV 0x8FF0 -#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 -#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 -#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 -#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 -#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 -#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 -#define GL_FLOAT16_NV 0x8FF8 -#define GL_FLOAT16_VEC2_NV 0x8FF9 -#define GL_FLOAT16_VEC3_NV 0x8FFA -#define GL_FLOAT16_VEC4_NV 0x8FFB - -typedef void (GLAPIENTRY * PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); -typedef void (GLAPIENTRY * PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); -typedef void (GLAPIENTRY * PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GLAPIENTRY * PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GLAPIENTRY * PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); - -#define glGetUniformi64vNV GLEW_GET_FUN(__glewGetUniformi64vNV) -#define glGetUniformui64vNV GLEW_GET_FUN(__glewGetUniformui64vNV) -#define glProgramUniform1i64NV GLEW_GET_FUN(__glewProgramUniform1i64NV) -#define glProgramUniform1i64vNV GLEW_GET_FUN(__glewProgramUniform1i64vNV) -#define glProgramUniform1ui64NV GLEW_GET_FUN(__glewProgramUniform1ui64NV) -#define glProgramUniform1ui64vNV GLEW_GET_FUN(__glewProgramUniform1ui64vNV) -#define glProgramUniform2i64NV GLEW_GET_FUN(__glewProgramUniform2i64NV) -#define glProgramUniform2i64vNV GLEW_GET_FUN(__glewProgramUniform2i64vNV) -#define glProgramUniform2ui64NV GLEW_GET_FUN(__glewProgramUniform2ui64NV) -#define glProgramUniform2ui64vNV GLEW_GET_FUN(__glewProgramUniform2ui64vNV) -#define glProgramUniform3i64NV GLEW_GET_FUN(__glewProgramUniform3i64NV) -#define glProgramUniform3i64vNV GLEW_GET_FUN(__glewProgramUniform3i64vNV) -#define glProgramUniform3ui64NV GLEW_GET_FUN(__glewProgramUniform3ui64NV) -#define glProgramUniform3ui64vNV GLEW_GET_FUN(__glewProgramUniform3ui64vNV) -#define glProgramUniform4i64NV GLEW_GET_FUN(__glewProgramUniform4i64NV) -#define glProgramUniform4i64vNV GLEW_GET_FUN(__glewProgramUniform4i64vNV) -#define glProgramUniform4ui64NV GLEW_GET_FUN(__glewProgramUniform4ui64NV) -#define glProgramUniform4ui64vNV GLEW_GET_FUN(__glewProgramUniform4ui64vNV) -#define glUniform1i64NV GLEW_GET_FUN(__glewUniform1i64NV) -#define glUniform1i64vNV GLEW_GET_FUN(__glewUniform1i64vNV) -#define glUniform1ui64NV GLEW_GET_FUN(__glewUniform1ui64NV) -#define glUniform1ui64vNV GLEW_GET_FUN(__glewUniform1ui64vNV) -#define glUniform2i64NV GLEW_GET_FUN(__glewUniform2i64NV) -#define glUniform2i64vNV GLEW_GET_FUN(__glewUniform2i64vNV) -#define glUniform2ui64NV GLEW_GET_FUN(__glewUniform2ui64NV) -#define glUniform2ui64vNV GLEW_GET_FUN(__glewUniform2ui64vNV) -#define glUniform3i64NV GLEW_GET_FUN(__glewUniform3i64NV) -#define glUniform3i64vNV GLEW_GET_FUN(__glewUniform3i64vNV) -#define glUniform3ui64NV GLEW_GET_FUN(__glewUniform3ui64NV) -#define glUniform3ui64vNV GLEW_GET_FUN(__glewUniform3ui64vNV) -#define glUniform4i64NV GLEW_GET_FUN(__glewUniform4i64NV) -#define glUniform4i64vNV GLEW_GET_FUN(__glewUniform4i64vNV) -#define glUniform4ui64NV GLEW_GET_FUN(__glewUniform4ui64NV) -#define glUniform4ui64vNV GLEW_GET_FUN(__glewUniform4ui64vNV) - -#define GLEW_NV_gpu_shader5 GLEW_GET_VAR(__GLEW_NV_gpu_shader5) - -#endif /* GL_NV_gpu_shader5 */ - -/* ---------------------------- GL_NV_half_float --------------------------- */ - -#ifndef GL_NV_half_float -#define GL_NV_half_float 1 - -#define GL_HALF_FLOAT_NV 0x140B - -typedef unsigned short GLhalf; - -typedef void (GLAPIENTRY * PFNGLCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); -typedef void (GLAPIENTRY * PFNGLCOLOR3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLCOLOR4HNVPROC) (GLhalf red, GLhalf green, GLhalf blue, GLhalf alpha); -typedef void (GLAPIENTRY * PFNGLCOLOR4HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLFOGCOORDHNVPROC) (GLhalf fog); -typedef void (GLAPIENTRY * PFNGLFOGCOORDHVNVPROC) (const GLhalf* fog); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalf s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalf s, GLhalf t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r, GLhalf q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLNORMAL3HNVPROC) (GLhalf nx, GLhalf ny, GLhalf nz); -typedef void (GLAPIENTRY * PFNGLNORMAL3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD1HNVPROC) (GLhalf s); -typedef void (GLAPIENTRY * PFNGLTEXCOORD1HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2HNVPROC) (GLhalf s, GLhalf t); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD3HNVPROC) (GLhalf s, GLhalf t, GLhalf r); -typedef void (GLAPIENTRY * PFNGLTEXCOORD3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4HNVPROC) (GLhalf s, GLhalf t, GLhalf r, GLhalf q); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEX2HNVPROC) (GLhalf x, GLhalf y); -typedef void (GLAPIENTRY * PFNGLVERTEX2HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEX3HNVPROC) (GLhalf x, GLhalf y, GLhalf z); -typedef void (GLAPIENTRY * PFNGLVERTEX3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEX4HNVPROC) (GLhalf x, GLhalf y, GLhalf z, GLhalf w); -typedef void (GLAPIENTRY * PFNGLVERTEX4HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalf x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalf x, GLhalf y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z, GLhalf w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHNVPROC) (GLhalf weight); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalf* weight); - -#define glColor3hNV GLEW_GET_FUN(__glewColor3hNV) -#define glColor3hvNV GLEW_GET_FUN(__glewColor3hvNV) -#define glColor4hNV GLEW_GET_FUN(__glewColor4hNV) -#define glColor4hvNV GLEW_GET_FUN(__glewColor4hvNV) -#define glFogCoordhNV GLEW_GET_FUN(__glewFogCoordhNV) -#define glFogCoordhvNV GLEW_GET_FUN(__glewFogCoordhvNV) -#define glMultiTexCoord1hNV GLEW_GET_FUN(__glewMultiTexCoord1hNV) -#define glMultiTexCoord1hvNV GLEW_GET_FUN(__glewMultiTexCoord1hvNV) -#define glMultiTexCoord2hNV GLEW_GET_FUN(__glewMultiTexCoord2hNV) -#define glMultiTexCoord2hvNV GLEW_GET_FUN(__glewMultiTexCoord2hvNV) -#define glMultiTexCoord3hNV GLEW_GET_FUN(__glewMultiTexCoord3hNV) -#define glMultiTexCoord3hvNV GLEW_GET_FUN(__glewMultiTexCoord3hvNV) -#define glMultiTexCoord4hNV GLEW_GET_FUN(__glewMultiTexCoord4hNV) -#define glMultiTexCoord4hvNV GLEW_GET_FUN(__glewMultiTexCoord4hvNV) -#define glNormal3hNV GLEW_GET_FUN(__glewNormal3hNV) -#define glNormal3hvNV GLEW_GET_FUN(__glewNormal3hvNV) -#define glSecondaryColor3hNV GLEW_GET_FUN(__glewSecondaryColor3hNV) -#define glSecondaryColor3hvNV GLEW_GET_FUN(__glewSecondaryColor3hvNV) -#define glTexCoord1hNV GLEW_GET_FUN(__glewTexCoord1hNV) -#define glTexCoord1hvNV GLEW_GET_FUN(__glewTexCoord1hvNV) -#define glTexCoord2hNV GLEW_GET_FUN(__glewTexCoord2hNV) -#define glTexCoord2hvNV GLEW_GET_FUN(__glewTexCoord2hvNV) -#define glTexCoord3hNV GLEW_GET_FUN(__glewTexCoord3hNV) -#define glTexCoord3hvNV GLEW_GET_FUN(__glewTexCoord3hvNV) -#define glTexCoord4hNV GLEW_GET_FUN(__glewTexCoord4hNV) -#define glTexCoord4hvNV GLEW_GET_FUN(__glewTexCoord4hvNV) -#define glVertex2hNV GLEW_GET_FUN(__glewVertex2hNV) -#define glVertex2hvNV GLEW_GET_FUN(__glewVertex2hvNV) -#define glVertex3hNV GLEW_GET_FUN(__glewVertex3hNV) -#define glVertex3hvNV GLEW_GET_FUN(__glewVertex3hvNV) -#define glVertex4hNV GLEW_GET_FUN(__glewVertex4hNV) -#define glVertex4hvNV GLEW_GET_FUN(__glewVertex4hvNV) -#define glVertexAttrib1hNV GLEW_GET_FUN(__glewVertexAttrib1hNV) -#define glVertexAttrib1hvNV GLEW_GET_FUN(__glewVertexAttrib1hvNV) -#define glVertexAttrib2hNV GLEW_GET_FUN(__glewVertexAttrib2hNV) -#define glVertexAttrib2hvNV GLEW_GET_FUN(__glewVertexAttrib2hvNV) -#define glVertexAttrib3hNV GLEW_GET_FUN(__glewVertexAttrib3hNV) -#define glVertexAttrib3hvNV GLEW_GET_FUN(__glewVertexAttrib3hvNV) -#define glVertexAttrib4hNV GLEW_GET_FUN(__glewVertexAttrib4hNV) -#define glVertexAttrib4hvNV GLEW_GET_FUN(__glewVertexAttrib4hvNV) -#define glVertexAttribs1hvNV GLEW_GET_FUN(__glewVertexAttribs1hvNV) -#define glVertexAttribs2hvNV GLEW_GET_FUN(__glewVertexAttribs2hvNV) -#define glVertexAttribs3hvNV GLEW_GET_FUN(__glewVertexAttribs3hvNV) -#define glVertexAttribs4hvNV GLEW_GET_FUN(__glewVertexAttribs4hvNV) -#define glVertexWeighthNV GLEW_GET_FUN(__glewVertexWeighthNV) -#define glVertexWeighthvNV GLEW_GET_FUN(__glewVertexWeighthvNV) - -#define GLEW_NV_half_float GLEW_GET_VAR(__GLEW_NV_half_float) - -#endif /* GL_NV_half_float */ - -/* ------------------- GL_NV_internalformat_sample_query ------------------- */ - -#ifndef GL_NV_internalformat_sample_query -#define GL_NV_internalformat_sample_query 1 - -#define GL_MULTISAMPLES_NV 0x9371 -#define GL_SUPERSAMPLE_SCALE_X_NV 0x9372 -#define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373 -#define GL_CONFORMANT_NV 0x9374 - -typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint* params); - -#define glGetInternalformatSampleivNV GLEW_GET_FUN(__glewGetInternalformatSampleivNV) - -#define GLEW_NV_internalformat_sample_query GLEW_GET_VAR(__GLEW_NV_internalformat_sample_query) - -#endif /* GL_NV_internalformat_sample_query */ - -/* ------------------------ GL_NV_light_max_exponent ----------------------- */ - -#ifndef GL_NV_light_max_exponent -#define GL_NV_light_max_exponent 1 - -#define GL_MAX_SHININESS_NV 0x8504 -#define GL_MAX_SPOT_EXPONENT_NV 0x8505 - -#define GLEW_NV_light_max_exponent GLEW_GET_VAR(__GLEW_NV_light_max_exponent) - -#endif /* GL_NV_light_max_exponent */ - -/* ----------------------- GL_NV_multisample_coverage ---------------------- */ - -#ifndef GL_NV_multisample_coverage -#define GL_NV_multisample_coverage 1 - -#define GL_COLOR_SAMPLES_NV 0x8E20 - -#define GLEW_NV_multisample_coverage GLEW_GET_VAR(__GLEW_NV_multisample_coverage) - -#endif /* GL_NV_multisample_coverage */ - -/* --------------------- GL_NV_multisample_filter_hint --------------------- */ - -#ifndef GL_NV_multisample_filter_hint -#define GL_NV_multisample_filter_hint 1 - -#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 - -#define GLEW_NV_multisample_filter_hint GLEW_GET_VAR(__GLEW_NV_multisample_filter_hint) - -#endif /* GL_NV_multisample_filter_hint */ - -/* ------------------------- GL_NV_occlusion_query ------------------------- */ - -#ifndef GL_NV_occlusion_query -#define GL_NV_occlusion_query 1 - -#define GL_PIXEL_COUNTER_BITS_NV 0x8864 -#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 -#define GL_PIXEL_COUNT_NV 0x8866 -#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 - -typedef void (GLAPIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); - -#define glBeginOcclusionQueryNV GLEW_GET_FUN(__glewBeginOcclusionQueryNV) -#define glDeleteOcclusionQueriesNV GLEW_GET_FUN(__glewDeleteOcclusionQueriesNV) -#define glEndOcclusionQueryNV GLEW_GET_FUN(__glewEndOcclusionQueryNV) -#define glGenOcclusionQueriesNV GLEW_GET_FUN(__glewGenOcclusionQueriesNV) -#define glGetOcclusionQueryivNV GLEW_GET_FUN(__glewGetOcclusionQueryivNV) -#define glGetOcclusionQueryuivNV GLEW_GET_FUN(__glewGetOcclusionQueryuivNV) -#define glIsOcclusionQueryNV GLEW_GET_FUN(__glewIsOcclusionQueryNV) - -#define GLEW_NV_occlusion_query GLEW_GET_VAR(__GLEW_NV_occlusion_query) - -#endif /* GL_NV_occlusion_query */ - -/* ----------------------- GL_NV_packed_depth_stencil ---------------------- */ - -#ifndef GL_NV_packed_depth_stencil -#define GL_NV_packed_depth_stencil 1 - -#define GL_DEPTH_STENCIL_NV 0x84F9 -#define GL_UNSIGNED_INT_24_8_NV 0x84FA - -#define GLEW_NV_packed_depth_stencil GLEW_GET_VAR(__GLEW_NV_packed_depth_stencil) - -#endif /* GL_NV_packed_depth_stencil */ - -/* --------------------- GL_NV_parameter_buffer_object --------------------- */ - -#ifndef GL_NV_parameter_buffer_object -#define GL_NV_parameter_buffer_object 1 - -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 -#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 -#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 -#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 - -typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); - -#define glProgramBufferParametersIivNV GLEW_GET_FUN(__glewProgramBufferParametersIivNV) -#define glProgramBufferParametersIuivNV GLEW_GET_FUN(__glewProgramBufferParametersIuivNV) -#define glProgramBufferParametersfvNV GLEW_GET_FUN(__glewProgramBufferParametersfvNV) - -#define GLEW_NV_parameter_buffer_object GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object) - -#endif /* GL_NV_parameter_buffer_object */ - -/* --------------------- GL_NV_parameter_buffer_object2 -------------------- */ - -#ifndef GL_NV_parameter_buffer_object2 -#define GL_NV_parameter_buffer_object2 1 - -#define GLEW_NV_parameter_buffer_object2 GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object2) - -#endif /* GL_NV_parameter_buffer_object2 */ - -/* -------------------------- GL_NV_path_rendering ------------------------- */ - -#ifndef GL_NV_path_rendering -#define GL_NV_path_rendering 1 - -#define GL_CLOSE_PATH_NV 0x00 -#define GL_BOLD_BIT_NV 0x01 -#define GL_GLYPH_WIDTH_BIT_NV 0x01 -#define GL_GLYPH_HEIGHT_BIT_NV 0x02 -#define GL_ITALIC_BIT_NV 0x02 -#define GL_MOVE_TO_NV 0x02 -#define GL_RELATIVE_MOVE_TO_NV 0x03 -#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 -#define GL_LINE_TO_NV 0x04 -#define GL_RELATIVE_LINE_TO_NV 0x05 -#define GL_HORIZONTAL_LINE_TO_NV 0x06 -#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 -#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 -#define GL_VERTICAL_LINE_TO_NV 0x08 -#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 -#define GL_QUADRATIC_CURVE_TO_NV 0x0A -#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B -#define GL_CUBIC_CURVE_TO_NV 0x0C -#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D -#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E -#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F -#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 -#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 -#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 -#define GL_SMALL_CCW_ARC_TO_NV 0x12 -#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 -#define GL_SMALL_CW_ARC_TO_NV 0x14 -#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 -#define GL_LARGE_CCW_ARC_TO_NV 0x16 -#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 -#define GL_LARGE_CW_ARC_TO_NV 0x18 -#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 -#define GL_CONIC_CURVE_TO_NV 0x1A -#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B -#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 -#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 -#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 -#define GL_ROUNDED_RECT_NV 0xE8 -#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9 -#define GL_ROUNDED_RECT2_NV 0xEA -#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB -#define GL_ROUNDED_RECT4_NV 0xEC -#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED -#define GL_ROUNDED_RECT8_NV 0xEE -#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF -#define GL_RESTART_PATH_NV 0xF0 -#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 -#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 -#define GL_RECT_NV 0xF6 -#define GL_RELATIVE_RECT_NV 0xF7 -#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 -#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA -#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC -#define GL_ARC_TO_NV 0xFE -#define GL_RELATIVE_ARC_TO_NV 0xFF -#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PATH_FORMAT_SVG_NV 0x9070 -#define GL_PATH_FORMAT_PS_NV 0x9071 -#define GL_STANDARD_FONT_NAME_NV 0x9072 -#define GL_SYSTEM_FONT_NAME_NV 0x9073 -#define GL_FILE_NAME_NV 0x9074 -#define GL_PATH_STROKE_WIDTH_NV 0x9075 -#define GL_PATH_END_CAPS_NV 0x9076 -#define GL_PATH_INITIAL_END_CAP_NV 0x9077 -#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 -#define GL_PATH_JOIN_STYLE_NV 0x9079 -#define GL_PATH_MITER_LIMIT_NV 0x907A -#define GL_PATH_DASH_CAPS_NV 0x907B -#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C -#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D -#define GL_PATH_DASH_OFFSET_NV 0x907E -#define GL_PATH_CLIENT_LENGTH_NV 0x907F -#define GL_PATH_FILL_MODE_NV 0x9080 -#define GL_PATH_FILL_MASK_NV 0x9081 -#define GL_PATH_FILL_COVER_MODE_NV 0x9082 -#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 -#define GL_PATH_STROKE_MASK_NV 0x9084 -#define GL_PATH_STROKE_BOUND_NV 0x9086 -#define GL_COUNT_UP_NV 0x9088 -#define GL_COUNT_DOWN_NV 0x9089 -#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A -#define GL_CONVEX_HULL_NV 0x908B -#define GL_BOUNDING_BOX_NV 0x908D -#define GL_TRANSLATE_X_NV 0x908E -#define GL_TRANSLATE_Y_NV 0x908F -#define GL_TRANSLATE_2D_NV 0x9090 -#define GL_TRANSLATE_3D_NV 0x9091 -#define GL_AFFINE_2D_NV 0x9092 -#define GL_AFFINE_3D_NV 0x9094 -#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 -#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 -#define GL_UTF8_NV 0x909A -#define GL_UTF16_NV 0x909B -#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C -#define GL_PATH_COMMAND_COUNT_NV 0x909D -#define GL_PATH_COORD_COUNT_NV 0x909E -#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F -#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 -#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 -#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 -#define GL_SQUARE_NV 0x90A3 -#define GL_ROUND_NV 0x90A4 -#define GL_TRIANGULAR_NV 0x90A5 -#define GL_BEVEL_NV 0x90A6 -#define GL_MITER_REVERT_NV 0x90A7 -#define GL_MITER_TRUNCATE_NV 0x90A8 -#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 -#define GL_USE_MISSING_GLYPH_NV 0x90AA -#define GL_PATH_ERROR_POSITION_NV 0x90AB -#define GL_PATH_FOG_GEN_MODE_NV 0x90AC -#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD -#define GL_ADJACENT_PAIRS_NV 0x90AE -#define GL_FIRST_TO_REST_NV 0x90AF -#define GL_PATH_GEN_MODE_NV 0x90B0 -#define GL_PATH_GEN_COEFF_NV 0x90B1 -#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2 -#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 -#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 -#define GL_MOVE_TO_RESETS_NV 0x90B5 -#define GL_MOVE_TO_CONTINUES_NV 0x90B6 -#define GL_PATH_STENCIL_FUNC_NV 0x90B7 -#define GL_PATH_STENCIL_REF_NV 0x90B8 -#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 -#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD -#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE -#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF -#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368 -#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369 -#define GL_FONT_UNAVAILABLE_NV 0x936A -#define GL_FONT_UNINTELLIGIBLE_NV 0x936B -#define GL_STANDARD_FONT_FORMAT_NV 0x936C -#define GL_FRAGMENT_INPUT_NV 0x936D -#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 -#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 -#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 -#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 -#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 -#define GL_FONT_ASCENDER_BIT_NV 0x00200000 -#define GL_FONT_DESCENDER_BIT_NV 0x00400000 -#define GL_FONT_HEIGHT_BIT_NV 0x00800000 -#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 -#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 -#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 -#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 -#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 -#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000 - -typedef void (GLAPIENTRY * PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); -typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (GLAPIENTRY * PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); -typedef GLuint (GLAPIENTRY * PFNGLGENPATHSNVPROC) (GLsizei range); -typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat* value); -typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint* value); -typedef void (GLAPIENTRY * PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte* commands); -typedef void (GLAPIENTRY * PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat* coords); -typedef void (GLAPIENTRY * PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat* dashArray); -typedef GLfloat (GLAPIENTRY * PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); -typedef void (GLAPIENTRY * PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics); -typedef void (GLAPIENTRY * PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat* value); -typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint* value); -typedef void (GLAPIENTRY * PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat* value); -typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint* value); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -typedef GLboolean (GLAPIENTRY * PFNGLISPATHNVPROC) (GLuint path); -typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); -typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat* coeffs); -typedef void (GLAPIENTRY * PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const void*coords); -typedef void (GLAPIENTRY * PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GLAPIENTRY * PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum zfunc); -typedef void (GLAPIENTRY * PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat* dashArray); -typedef void (GLAPIENTRY * PFNGLPATHFOGGENNVPROC) (GLenum genMode); -typedef GLenum (GLAPIENTRY * PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef GLenum (GLAPIENTRY * PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2]); -typedef void (GLAPIENTRY * PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GLAPIENTRY * PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void*charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef GLenum (GLAPIENTRY * PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); -typedef void (GLAPIENTRY * PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GLAPIENTRY * PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); -typedef void (GLAPIENTRY * PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const void*coords); -typedef void (GLAPIENTRY * PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GLAPIENTRY * PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat* coeffs); -typedef GLboolean (GLAPIENTRY * PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat* x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -typedef void (GLAPIENTRY * PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat* coeffs); -typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); -typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); -typedef void (GLAPIENTRY * PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat* transformValues); -typedef void (GLAPIENTRY * PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint paths[], const GLfloat weights[]); - -#define glCopyPathNV GLEW_GET_FUN(__glewCopyPathNV) -#define glCoverFillPathInstancedNV GLEW_GET_FUN(__glewCoverFillPathInstancedNV) -#define glCoverFillPathNV GLEW_GET_FUN(__glewCoverFillPathNV) -#define glCoverStrokePathInstancedNV GLEW_GET_FUN(__glewCoverStrokePathInstancedNV) -#define glCoverStrokePathNV GLEW_GET_FUN(__glewCoverStrokePathNV) -#define glDeletePathsNV GLEW_GET_FUN(__glewDeletePathsNV) -#define glGenPathsNV GLEW_GET_FUN(__glewGenPathsNV) -#define glGetPathColorGenfvNV GLEW_GET_FUN(__glewGetPathColorGenfvNV) -#define glGetPathColorGenivNV GLEW_GET_FUN(__glewGetPathColorGenivNV) -#define glGetPathCommandsNV GLEW_GET_FUN(__glewGetPathCommandsNV) -#define glGetPathCoordsNV GLEW_GET_FUN(__glewGetPathCoordsNV) -#define glGetPathDashArrayNV GLEW_GET_FUN(__glewGetPathDashArrayNV) -#define glGetPathLengthNV GLEW_GET_FUN(__glewGetPathLengthNV) -#define glGetPathMetricRangeNV GLEW_GET_FUN(__glewGetPathMetricRangeNV) -#define glGetPathMetricsNV GLEW_GET_FUN(__glewGetPathMetricsNV) -#define glGetPathParameterfvNV GLEW_GET_FUN(__glewGetPathParameterfvNV) -#define glGetPathParameterivNV GLEW_GET_FUN(__glewGetPathParameterivNV) -#define glGetPathSpacingNV GLEW_GET_FUN(__glewGetPathSpacingNV) -#define glGetPathTexGenfvNV GLEW_GET_FUN(__glewGetPathTexGenfvNV) -#define glGetPathTexGenivNV GLEW_GET_FUN(__glewGetPathTexGenivNV) -#define glGetProgramResourcefvNV GLEW_GET_FUN(__glewGetProgramResourcefvNV) -#define glInterpolatePathsNV GLEW_GET_FUN(__glewInterpolatePathsNV) -#define glIsPathNV GLEW_GET_FUN(__glewIsPathNV) -#define glIsPointInFillPathNV GLEW_GET_FUN(__glewIsPointInFillPathNV) -#define glIsPointInStrokePathNV GLEW_GET_FUN(__glewIsPointInStrokePathNV) -#define glMatrixLoad3x2fNV GLEW_GET_FUN(__glewMatrixLoad3x2fNV) -#define glMatrixLoad3x3fNV GLEW_GET_FUN(__glewMatrixLoad3x3fNV) -#define glMatrixLoadTranspose3x3fNV GLEW_GET_FUN(__glewMatrixLoadTranspose3x3fNV) -#define glMatrixMult3x2fNV GLEW_GET_FUN(__glewMatrixMult3x2fNV) -#define glMatrixMult3x3fNV GLEW_GET_FUN(__glewMatrixMult3x3fNV) -#define glMatrixMultTranspose3x3fNV GLEW_GET_FUN(__glewMatrixMultTranspose3x3fNV) -#define glPathColorGenNV GLEW_GET_FUN(__glewPathColorGenNV) -#define glPathCommandsNV GLEW_GET_FUN(__glewPathCommandsNV) -#define glPathCoordsNV GLEW_GET_FUN(__glewPathCoordsNV) -#define glPathCoverDepthFuncNV GLEW_GET_FUN(__glewPathCoverDepthFuncNV) -#define glPathDashArrayNV GLEW_GET_FUN(__glewPathDashArrayNV) -#define glPathFogGenNV GLEW_GET_FUN(__glewPathFogGenNV) -#define glPathGlyphIndexArrayNV GLEW_GET_FUN(__glewPathGlyphIndexArrayNV) -#define glPathGlyphIndexRangeNV GLEW_GET_FUN(__glewPathGlyphIndexRangeNV) -#define glPathGlyphRangeNV GLEW_GET_FUN(__glewPathGlyphRangeNV) -#define glPathGlyphsNV GLEW_GET_FUN(__glewPathGlyphsNV) -#define glPathMemoryGlyphIndexArrayNV GLEW_GET_FUN(__glewPathMemoryGlyphIndexArrayNV) -#define glPathParameterfNV GLEW_GET_FUN(__glewPathParameterfNV) -#define glPathParameterfvNV GLEW_GET_FUN(__glewPathParameterfvNV) -#define glPathParameteriNV GLEW_GET_FUN(__glewPathParameteriNV) -#define glPathParameterivNV GLEW_GET_FUN(__glewPathParameterivNV) -#define glPathStencilDepthOffsetNV GLEW_GET_FUN(__glewPathStencilDepthOffsetNV) -#define glPathStencilFuncNV GLEW_GET_FUN(__glewPathStencilFuncNV) -#define glPathStringNV GLEW_GET_FUN(__glewPathStringNV) -#define glPathSubCommandsNV GLEW_GET_FUN(__glewPathSubCommandsNV) -#define glPathSubCoordsNV GLEW_GET_FUN(__glewPathSubCoordsNV) -#define glPathTexGenNV GLEW_GET_FUN(__glewPathTexGenNV) -#define glPointAlongPathNV GLEW_GET_FUN(__glewPointAlongPathNV) -#define glProgramPathFragmentInputGenNV GLEW_GET_FUN(__glewProgramPathFragmentInputGenNV) -#define glStencilFillPathInstancedNV GLEW_GET_FUN(__glewStencilFillPathInstancedNV) -#define glStencilFillPathNV GLEW_GET_FUN(__glewStencilFillPathNV) -#define glStencilStrokePathInstancedNV GLEW_GET_FUN(__glewStencilStrokePathInstancedNV) -#define glStencilStrokePathNV GLEW_GET_FUN(__glewStencilStrokePathNV) -#define glStencilThenCoverFillPathInstancedNV GLEW_GET_FUN(__glewStencilThenCoverFillPathInstancedNV) -#define glStencilThenCoverFillPathNV GLEW_GET_FUN(__glewStencilThenCoverFillPathNV) -#define glStencilThenCoverStrokePathInstancedNV GLEW_GET_FUN(__glewStencilThenCoverStrokePathInstancedNV) -#define glStencilThenCoverStrokePathNV GLEW_GET_FUN(__glewStencilThenCoverStrokePathNV) -#define glTransformPathNV GLEW_GET_FUN(__glewTransformPathNV) -#define glWeightPathsNV GLEW_GET_FUN(__glewWeightPathsNV) - -#define GLEW_NV_path_rendering GLEW_GET_VAR(__GLEW_NV_path_rendering) - -#endif /* GL_NV_path_rendering */ - -/* -------------------- GL_NV_path_rendering_shared_edge ------------------- */ - -#ifndef GL_NV_path_rendering_shared_edge -#define GL_NV_path_rendering_shared_edge 1 - -#define GL_SHARED_EDGE_NV 0xC0 - -#define GLEW_NV_path_rendering_shared_edge GLEW_GET_VAR(__GLEW_NV_path_rendering_shared_edge) - -#endif /* GL_NV_path_rendering_shared_edge */ - -/* ------------------------- GL_NV_pixel_data_range ------------------------ */ - -#ifndef GL_NV_pixel_data_range -#define GL_NV_pixel_data_range 1 - -#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 -#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 -#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A -#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B -#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C -#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D - -typedef void (GLAPIENTRY * PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, void *pointer); - -#define glFlushPixelDataRangeNV GLEW_GET_FUN(__glewFlushPixelDataRangeNV) -#define glPixelDataRangeNV GLEW_GET_FUN(__glewPixelDataRangeNV) - -#define GLEW_NV_pixel_data_range GLEW_GET_VAR(__GLEW_NV_pixel_data_range) - -#endif /* GL_NV_pixel_data_range */ - -/* --------------------------- GL_NV_point_sprite -------------------------- */ - -#ifndef GL_NV_point_sprite -#define GL_NV_point_sprite 1 - -#define GL_POINT_SPRITE_NV 0x8861 -#define GL_COORD_REPLACE_NV 0x8862 -#define GL_POINT_SPRITE_R_MODE_NV 0x8863 - -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint* params); - -#define glPointParameteriNV GLEW_GET_FUN(__glewPointParameteriNV) -#define glPointParameterivNV GLEW_GET_FUN(__glewPointParameterivNV) - -#define GLEW_NV_point_sprite GLEW_GET_VAR(__GLEW_NV_point_sprite) - -#endif /* GL_NV_point_sprite */ - -/* -------------------------- GL_NV_present_video -------------------------- */ - -#ifndef GL_NV_present_video -#define GL_NV_present_video 1 - -#define GL_FRAME_NV 0x8E26 -#define GL_FIELDS_NV 0x8E27 -#define GL_CURRENT_TIME_NV 0x8E28 -#define GL_NUM_FILL_STREAMS_NV 0x8E29 -#define GL_PRESENT_TIME_NV 0x8E2A -#define GL_PRESENT_DURATION_NV 0x8E2B - -typedef void (GLAPIENTRY * PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); - -#define glGetVideoi64vNV GLEW_GET_FUN(__glewGetVideoi64vNV) -#define glGetVideoivNV GLEW_GET_FUN(__glewGetVideoivNV) -#define glGetVideoui64vNV GLEW_GET_FUN(__glewGetVideoui64vNV) -#define glGetVideouivNV GLEW_GET_FUN(__glewGetVideouivNV) -#define glPresentFrameDualFillNV GLEW_GET_FUN(__glewPresentFrameDualFillNV) -#define glPresentFrameKeyedNV GLEW_GET_FUN(__glewPresentFrameKeyedNV) - -#define GLEW_NV_present_video GLEW_GET_VAR(__GLEW_NV_present_video) - -#endif /* GL_NV_present_video */ - -/* ------------------------ GL_NV_primitive_restart ------------------------ */ - -#ifndef GL_NV_primitive_restart -#define GL_NV_primitive_restart 1 - -#define GL_PRIMITIVE_RESTART_NV 0x8558 -#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 - -typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void); - -#define glPrimitiveRestartIndexNV GLEW_GET_FUN(__glewPrimitiveRestartIndexNV) -#define glPrimitiveRestartNV GLEW_GET_FUN(__glewPrimitiveRestartNV) - -#define GLEW_NV_primitive_restart GLEW_GET_VAR(__GLEW_NV_primitive_restart) - -#endif /* GL_NV_primitive_restart */ - -/* ------------------------ GL_NV_register_combiners ----------------------- */ - -#ifndef GL_NV_register_combiners -#define GL_NV_register_combiners 1 - -#define GL_REGISTER_COMBINERS_NV 0x8522 -#define GL_VARIABLE_A_NV 0x8523 -#define GL_VARIABLE_B_NV 0x8524 -#define GL_VARIABLE_C_NV 0x8525 -#define GL_VARIABLE_D_NV 0x8526 -#define GL_VARIABLE_E_NV 0x8527 -#define GL_VARIABLE_F_NV 0x8528 -#define GL_VARIABLE_G_NV 0x8529 -#define GL_CONSTANT_COLOR0_NV 0x852A -#define GL_CONSTANT_COLOR1_NV 0x852B -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_SPARE0_NV 0x852E -#define GL_SPARE1_NV 0x852F -#define GL_DISCARD_NV 0x8530 -#define GL_E_TIMES_F_NV 0x8531 -#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define GL_UNSIGNED_IDENTITY_NV 0x8536 -#define GL_UNSIGNED_INVERT_NV 0x8537 -#define GL_EXPAND_NORMAL_NV 0x8538 -#define GL_EXPAND_NEGATE_NV 0x8539 -#define GL_HALF_BIAS_NORMAL_NV 0x853A -#define GL_HALF_BIAS_NEGATE_NV 0x853B -#define GL_SIGNED_IDENTITY_NV 0x853C -#define GL_SIGNED_NEGATE_NV 0x853D -#define GL_SCALE_BY_TWO_NV 0x853E -#define GL_SCALE_BY_FOUR_NV 0x853F -#define GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define GL_COMBINER_INPUT_NV 0x8542 -#define GL_COMBINER_MAPPING_NV 0x8543 -#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define GL_COMBINER_MUX_SUM_NV 0x8547 -#define GL_COMBINER_SCALE_NV 0x8548 -#define GL_COMBINER_BIAS_NV 0x8549 -#define GL_COMBINER_AB_OUTPUT_NV 0x854A -#define GL_COMBINER_CD_OUTPUT_NV 0x854B -#define GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define GL_COLOR_SUM_CLAMP_NV 0x854F -#define GL_COMBINER0_NV 0x8550 -#define GL_COMBINER1_NV 0x8551 -#define GL_COMBINER2_NV 0x8552 -#define GL_COMBINER3_NV 0x8553 -#define GL_COMBINER4_NV 0x8554 -#define GL_COMBINER5_NV 0x8555 -#define GL_COMBINER6_NV 0x8556 -#define GL_COMBINER7_NV 0x8557 - -typedef void (GLAPIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (GLAPIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint* params); - -#define glCombinerInputNV GLEW_GET_FUN(__glewCombinerInputNV) -#define glCombinerOutputNV GLEW_GET_FUN(__glewCombinerOutputNV) -#define glCombinerParameterfNV GLEW_GET_FUN(__glewCombinerParameterfNV) -#define glCombinerParameterfvNV GLEW_GET_FUN(__glewCombinerParameterfvNV) -#define glCombinerParameteriNV GLEW_GET_FUN(__glewCombinerParameteriNV) -#define glCombinerParameterivNV GLEW_GET_FUN(__glewCombinerParameterivNV) -#define glFinalCombinerInputNV GLEW_GET_FUN(__glewFinalCombinerInputNV) -#define glGetCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetCombinerInputParameterfvNV) -#define glGetCombinerInputParameterivNV GLEW_GET_FUN(__glewGetCombinerInputParameterivNV) -#define glGetCombinerOutputParameterfvNV GLEW_GET_FUN(__glewGetCombinerOutputParameterfvNV) -#define glGetCombinerOutputParameterivNV GLEW_GET_FUN(__glewGetCombinerOutputParameterivNV) -#define glGetFinalCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterfvNV) -#define glGetFinalCombinerInputParameterivNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterivNV) - -#define GLEW_NV_register_combiners GLEW_GET_VAR(__GLEW_NV_register_combiners) - -#endif /* GL_NV_register_combiners */ - -/* ----------------------- GL_NV_register_combiners2 ----------------------- */ - -#ifndef GL_NV_register_combiners2 -#define GL_NV_register_combiners2 1 - -#define GL_PER_STAGE_CONSTANTS_NV 0x8535 - -typedef void (GLAPIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat* params); - -#define glCombinerStageParameterfvNV GLEW_GET_FUN(__glewCombinerStageParameterfvNV) -#define glGetCombinerStageParameterfvNV GLEW_GET_FUN(__glewGetCombinerStageParameterfvNV) - -#define GLEW_NV_register_combiners2 GLEW_GET_VAR(__GLEW_NV_register_combiners2) - -#endif /* GL_NV_register_combiners2 */ - -/* ------------------------- GL_NV_sample_locations ------------------------ */ - -#ifndef GL_NV_sample_locations -#define GL_NV_sample_locations 1 - -#define GL_SAMPLE_LOCATION_NV 0x8E50 -#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D -#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E -#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340 -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341 -#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342 -#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343 - -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v); - -#define glFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewFramebufferSampleLocationsfvNV) -#define glNamedFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewNamedFramebufferSampleLocationsfvNV) - -#define GLEW_NV_sample_locations GLEW_GET_VAR(__GLEW_NV_sample_locations) - -#endif /* GL_NV_sample_locations */ - -/* ------------------ GL_NV_sample_mask_override_coverage ------------------ */ - -#ifndef GL_NV_sample_mask_override_coverage -#define GL_NV_sample_mask_override_coverage 1 - -#define GLEW_NV_sample_mask_override_coverage GLEW_GET_VAR(__GLEW_NV_sample_mask_override_coverage) - -#endif /* GL_NV_sample_mask_override_coverage */ - -/* ---------------------- GL_NV_shader_atomic_counters --------------------- */ - -#ifndef GL_NV_shader_atomic_counters -#define GL_NV_shader_atomic_counters 1 - -#define GLEW_NV_shader_atomic_counters GLEW_GET_VAR(__GLEW_NV_shader_atomic_counters) - -#endif /* GL_NV_shader_atomic_counters */ - -/* ----------------------- GL_NV_shader_atomic_float ----------------------- */ - -#ifndef GL_NV_shader_atomic_float -#define GL_NV_shader_atomic_float 1 - -#define GLEW_NV_shader_atomic_float GLEW_GET_VAR(__GLEW_NV_shader_atomic_float) - -#endif /* GL_NV_shader_atomic_float */ - -/* -------------------- GL_NV_shader_atomic_fp16_vector -------------------- */ - -#ifndef GL_NV_shader_atomic_fp16_vector -#define GL_NV_shader_atomic_fp16_vector 1 - -#define GLEW_NV_shader_atomic_fp16_vector GLEW_GET_VAR(__GLEW_NV_shader_atomic_fp16_vector) - -#endif /* GL_NV_shader_atomic_fp16_vector */ - -/* ----------------------- GL_NV_shader_atomic_int64 ----------------------- */ - -#ifndef GL_NV_shader_atomic_int64 -#define GL_NV_shader_atomic_int64 1 - -#define GLEW_NV_shader_atomic_int64 GLEW_GET_VAR(__GLEW_NV_shader_atomic_int64) - -#endif /* GL_NV_shader_atomic_int64 */ - -/* ------------------------ GL_NV_shader_buffer_load ----------------------- */ - -#ifndef GL_NV_shader_buffer_load -#define GL_NV_shader_buffer_load 1 - -#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D -#define GL_GPU_ADDRESS_NV 0x8F34 -#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 - -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT* result); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT* params); -typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); -typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); -typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); -typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); - -#define glGetBufferParameterui64vNV GLEW_GET_FUN(__glewGetBufferParameterui64vNV) -#define glGetIntegerui64vNV GLEW_GET_FUN(__glewGetIntegerui64vNV) -#define glGetNamedBufferParameterui64vNV GLEW_GET_FUN(__glewGetNamedBufferParameterui64vNV) -#define glIsBufferResidentNV GLEW_GET_FUN(__glewIsBufferResidentNV) -#define glIsNamedBufferResidentNV GLEW_GET_FUN(__glewIsNamedBufferResidentNV) -#define glMakeBufferNonResidentNV GLEW_GET_FUN(__glewMakeBufferNonResidentNV) -#define glMakeBufferResidentNV GLEW_GET_FUN(__glewMakeBufferResidentNV) -#define glMakeNamedBufferNonResidentNV GLEW_GET_FUN(__glewMakeNamedBufferNonResidentNV) -#define glMakeNamedBufferResidentNV GLEW_GET_FUN(__glewMakeNamedBufferResidentNV) -#define glProgramUniformui64NV GLEW_GET_FUN(__glewProgramUniformui64NV) -#define glProgramUniformui64vNV GLEW_GET_FUN(__glewProgramUniformui64vNV) -#define glUniformui64NV GLEW_GET_FUN(__glewUniformui64NV) -#define glUniformui64vNV GLEW_GET_FUN(__glewUniformui64vNV) - -#define GLEW_NV_shader_buffer_load GLEW_GET_VAR(__GLEW_NV_shader_buffer_load) - -#endif /* GL_NV_shader_buffer_load */ - -/* ------------------- GL_NV_shader_storage_buffer_object ------------------ */ - -#ifndef GL_NV_shader_storage_buffer_object -#define GL_NV_shader_storage_buffer_object 1 - -#define GLEW_NV_shader_storage_buffer_object GLEW_GET_VAR(__GLEW_NV_shader_storage_buffer_object) - -#endif /* GL_NV_shader_storage_buffer_object */ - -/* ----------------------- GL_NV_shader_thread_group ----------------------- */ - -#ifndef GL_NV_shader_thread_group -#define GL_NV_shader_thread_group 1 - -#define GL_WARP_SIZE_NV 0x9339 -#define GL_WARPS_PER_SM_NV 0x933A -#define GL_SM_COUNT_NV 0x933B - -#define GLEW_NV_shader_thread_group GLEW_GET_VAR(__GLEW_NV_shader_thread_group) - -#endif /* GL_NV_shader_thread_group */ - -/* ---------------------- GL_NV_shader_thread_shuffle ---------------------- */ - -#ifndef GL_NV_shader_thread_shuffle -#define GL_NV_shader_thread_shuffle 1 - -#define GLEW_NV_shader_thread_shuffle GLEW_GET_VAR(__GLEW_NV_shader_thread_shuffle) - -#endif /* GL_NV_shader_thread_shuffle */ - -/* ---------------------- GL_NV_tessellation_program5 ---------------------- */ - -#ifndef GL_NV_tessellation_program5 -#define GL_NV_tessellation_program5 1 - -#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 -#define GL_TESS_CONTROL_PROGRAM_NV 0x891E -#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F -#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 -#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 - -#define GLEW_NV_tessellation_program5 GLEW_GET_VAR(__GLEW_NV_tessellation_program5) - -#endif /* GL_NV_tessellation_program5 */ - -/* -------------------------- GL_NV_texgen_emboss -------------------------- */ - -#ifndef GL_NV_texgen_emboss -#define GL_NV_texgen_emboss 1 - -#define GL_EMBOSS_LIGHT_NV 0x855D -#define GL_EMBOSS_CONSTANT_NV 0x855E -#define GL_EMBOSS_MAP_NV 0x855F - -#define GLEW_NV_texgen_emboss GLEW_GET_VAR(__GLEW_NV_texgen_emboss) - -#endif /* GL_NV_texgen_emboss */ - -/* ------------------------ GL_NV_texgen_reflection ------------------------ */ - -#ifndef GL_NV_texgen_reflection -#define GL_NV_texgen_reflection 1 - -#define GL_NORMAL_MAP_NV 0x8511 -#define GL_REFLECTION_MAP_NV 0x8512 - -#define GLEW_NV_texgen_reflection GLEW_GET_VAR(__GLEW_NV_texgen_reflection) - -#endif /* GL_NV_texgen_reflection */ - -/* ------------------------- GL_NV_texture_barrier ------------------------- */ - -#ifndef GL_NV_texture_barrier -#define GL_NV_texture_barrier 1 - -typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void); - -#define glTextureBarrierNV GLEW_GET_FUN(__glewTextureBarrierNV) - -#define GLEW_NV_texture_barrier GLEW_GET_VAR(__GLEW_NV_texture_barrier) - -#endif /* GL_NV_texture_barrier */ - -/* --------------------- GL_NV_texture_compression_vtc --------------------- */ - -#ifndef GL_NV_texture_compression_vtc -#define GL_NV_texture_compression_vtc 1 - -#define GLEW_NV_texture_compression_vtc GLEW_GET_VAR(__GLEW_NV_texture_compression_vtc) - -#endif /* GL_NV_texture_compression_vtc */ - -/* ----------------------- GL_NV_texture_env_combine4 ---------------------- */ - -#ifndef GL_NV_texture_env_combine4 -#define GL_NV_texture_env_combine4 1 - -#define GL_COMBINE4_NV 0x8503 -#define GL_SOURCE3_RGB_NV 0x8583 -#define GL_SOURCE3_ALPHA_NV 0x858B -#define GL_OPERAND3_RGB_NV 0x8593 -#define GL_OPERAND3_ALPHA_NV 0x859B - -#define GLEW_NV_texture_env_combine4 GLEW_GET_VAR(__GLEW_NV_texture_env_combine4) - -#endif /* GL_NV_texture_env_combine4 */ - -/* ---------------------- GL_NV_texture_expand_normal ---------------------- */ - -#ifndef GL_NV_texture_expand_normal -#define GL_NV_texture_expand_normal 1 - -#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F - -#define GLEW_NV_texture_expand_normal GLEW_GET_VAR(__GLEW_NV_texture_expand_normal) - -#endif /* GL_NV_texture_expand_normal */ - -/* ----------------------- GL_NV_texture_multisample ----------------------- */ - -#ifndef GL_NV_texture_multisample -#define GL_NV_texture_multisample 1 - -#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 -#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 - -typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); - -#define glTexImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage2DMultisampleCoverageNV) -#define glTexImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage3DMultisampleCoverageNV) -#define glTextureImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage2DMultisampleCoverageNV) -#define glTextureImage2DMultisampleNV GLEW_GET_FUN(__glewTextureImage2DMultisampleNV) -#define glTextureImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage3DMultisampleCoverageNV) -#define glTextureImage3DMultisampleNV GLEW_GET_FUN(__glewTextureImage3DMultisampleNV) - -#define GLEW_NV_texture_multisample GLEW_GET_VAR(__GLEW_NV_texture_multisample) - -#endif /* GL_NV_texture_multisample */ - -/* ------------------------ GL_NV_texture_rectangle ------------------------ */ - -#ifndef GL_NV_texture_rectangle -#define GL_NV_texture_rectangle 1 - -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 - -#define GLEW_NV_texture_rectangle GLEW_GET_VAR(__GLEW_NV_texture_rectangle) - -#endif /* GL_NV_texture_rectangle */ - -/* -------------------------- GL_NV_texture_shader ------------------------- */ - -#ifndef GL_NV_texture_shader -#define GL_NV_texture_shader 1 - -#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_SHADER_CONSISTENT_NV 0x86DD -#define GL_TEXTURE_SHADER_NV 0x86DE -#define GL_SHADER_OPERATION_NV 0x86DF -#define GL_CULL_MODES_NV 0x86E0 -#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3 -#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define GL_CONST_EYE_NV 0x86E5 -#define GL_PASS_THROUGH_NV 0x86E6 -#define GL_CULL_FRAGMENT_NV 0x86E7 -#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define GL_DOT_PRODUCT_NV 0x86EC -#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define GL_HI_SCALE_NV 0x870E -#define GL_LO_SCALE_NV 0x870F -#define GL_DS_SCALE_NV 0x8710 -#define GL_DT_SCALE_NV 0x8711 -#define GL_MAGNITUDE_SCALE_NV 0x8712 -#define GL_VIBRANCE_SCALE_NV 0x8713 -#define GL_HI_BIAS_NV 0x8714 -#define GL_LO_BIAS_NV 0x8715 -#define GL_DS_BIAS_NV 0x8716 -#define GL_DT_BIAS_NV 0x8717 -#define GL_MAGNITUDE_BIAS_NV 0x8718 -#define GL_VIBRANCE_BIAS_NV 0x8719 -#define GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define GL_TEXTURE_HI_SIZE_NV 0x871B -#define GL_TEXTURE_LO_SIZE_NV 0x871C -#define GL_TEXTURE_DS_SIZE_NV 0x871D -#define GL_TEXTURE_DT_SIZE_NV 0x871E -#define GL_TEXTURE_MAG_SIZE_NV 0x871F - -#define GLEW_NV_texture_shader GLEW_GET_VAR(__GLEW_NV_texture_shader) - -#endif /* GL_NV_texture_shader */ - -/* ------------------------- GL_NV_texture_shader2 ------------------------- */ - -#ifndef GL_NV_texture_shader2 -#define GL_NV_texture_shader2 1 - -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D - -#define GLEW_NV_texture_shader2 GLEW_GET_VAR(__GLEW_NV_texture_shader2) - -#endif /* GL_NV_texture_shader2 */ - -/* ------------------------- GL_NV_texture_shader3 ------------------------- */ - -#ifndef GL_NV_texture_shader3 -#define GL_NV_texture_shader3 1 - -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 -#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 -#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 -#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 -#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 -#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A -#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B -#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C -#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D -#define GL_HILO8_NV 0x885E -#define GL_SIGNED_HILO8_NV 0x885F -#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 - -#define GLEW_NV_texture_shader3 GLEW_GET_VAR(__GLEW_NV_texture_shader3) - -#endif /* GL_NV_texture_shader3 */ - -/* ------------------------ GL_NV_transform_feedback ----------------------- */ - -#ifndef GL_NV_transform_feedback -#define GL_NV_transform_feedback 1 - -#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 -#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 -#define GL_TEXTURE_COORD_NV 0x8C79 -#define GL_CLIP_DISTANCE_NV 0x8C7A -#define GL_VERTEX_ID_NV 0x8C7B -#define GL_PRIMITIVE_ID_NV 0x8C7C -#define GL_GENERIC_ATTRIB_NV 0x8C7D -#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 -#define GL_ACTIVE_VARYINGS_NV 0x8C81 -#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 -#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 -#define GL_PRIMITIVES_GENERATED_NV 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 -#define GL_RASTERIZER_DISCARD_NV 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C -#define GL_SEPARATE_ATTRIBS_NV 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F - -typedef void (GLAPIENTRY * PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); -typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); -typedef GLint (GLAPIENTRY * PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); - -#define glActiveVaryingNV GLEW_GET_FUN(__glewActiveVaryingNV) -#define glBeginTransformFeedbackNV GLEW_GET_FUN(__glewBeginTransformFeedbackNV) -#define glBindBufferBaseNV GLEW_GET_FUN(__glewBindBufferBaseNV) -#define glBindBufferOffsetNV GLEW_GET_FUN(__glewBindBufferOffsetNV) -#define glBindBufferRangeNV GLEW_GET_FUN(__glewBindBufferRangeNV) -#define glEndTransformFeedbackNV GLEW_GET_FUN(__glewEndTransformFeedbackNV) -#define glGetActiveVaryingNV GLEW_GET_FUN(__glewGetActiveVaryingNV) -#define glGetTransformFeedbackVaryingNV GLEW_GET_FUN(__glewGetTransformFeedbackVaryingNV) -#define glGetVaryingLocationNV GLEW_GET_FUN(__glewGetVaryingLocationNV) -#define glTransformFeedbackAttribsNV GLEW_GET_FUN(__glewTransformFeedbackAttribsNV) -#define glTransformFeedbackVaryingsNV GLEW_GET_FUN(__glewTransformFeedbackVaryingsNV) - -#define GLEW_NV_transform_feedback GLEW_GET_VAR(__GLEW_NV_transform_feedback) - -#endif /* GL_NV_transform_feedback */ - -/* ----------------------- GL_NV_transform_feedback2 ----------------------- */ - -#ifndef GL_NV_transform_feedback2 -#define GL_NV_transform_feedback2 1 - -#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 - -typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); -typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint* ids); -typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); - -#define glBindTransformFeedbackNV GLEW_GET_FUN(__glewBindTransformFeedbackNV) -#define glDeleteTransformFeedbacksNV GLEW_GET_FUN(__glewDeleteTransformFeedbacksNV) -#define glDrawTransformFeedbackNV GLEW_GET_FUN(__glewDrawTransformFeedbackNV) -#define glGenTransformFeedbacksNV GLEW_GET_FUN(__glewGenTransformFeedbacksNV) -#define glIsTransformFeedbackNV GLEW_GET_FUN(__glewIsTransformFeedbackNV) -#define glPauseTransformFeedbackNV GLEW_GET_FUN(__glewPauseTransformFeedbackNV) -#define glResumeTransformFeedbackNV GLEW_GET_FUN(__glewResumeTransformFeedbackNV) - -#define GLEW_NV_transform_feedback2 GLEW_GET_VAR(__GLEW_NV_transform_feedback2) - -#endif /* GL_NV_transform_feedback2 */ - -/* ------------------ GL_NV_uniform_buffer_unified_memory ------------------ */ - -#ifndef GL_NV_uniform_buffer_unified_memory -#define GL_NV_uniform_buffer_unified_memory 1 - -#define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E -#define GL_UNIFORM_BUFFER_ADDRESS_NV 0x936F -#define GL_UNIFORM_BUFFER_LENGTH_NV 0x9370 - -#define GLEW_NV_uniform_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_uniform_buffer_unified_memory) - -#endif /* GL_NV_uniform_buffer_unified_memory */ - -/* -------------------------- GL_NV_vdpau_interop -------------------------- */ - -#ifndef GL_NV_vdpau_interop -#define GL_NV_vdpau_interop 1 - -#define GL_SURFACE_STATE_NV 0x86EB -#define GL_SURFACE_REGISTERED_NV 0x86FD -#define GL_SURFACE_MAPPED_NV 0x8700 -#define GL_WRITE_DISCARD_NV 0x88BE - -typedef GLintptr GLvdpauSurfaceNV; - -typedef void (GLAPIENTRY * PFNGLVDPAUFININVPROC) (void); -typedef void (GLAPIENTRY * PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values); -typedef void (GLAPIENTRY * PFNGLVDPAUINITNVPROC) (const void* vdpDevice, const void*getProcAddress); -typedef void (GLAPIENTRY * PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); -typedef void (GLAPIENTRY * PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces); -typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef void (GLAPIENTRY * PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); -typedef void (GLAPIENTRY * PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces); -typedef void (GLAPIENTRY * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); - -#define glVDPAUFiniNV GLEW_GET_FUN(__glewVDPAUFiniNV) -#define glVDPAUGetSurfaceivNV GLEW_GET_FUN(__glewVDPAUGetSurfaceivNV) -#define glVDPAUInitNV GLEW_GET_FUN(__glewVDPAUInitNV) -#define glVDPAUIsSurfaceNV GLEW_GET_FUN(__glewVDPAUIsSurfaceNV) -#define glVDPAUMapSurfacesNV GLEW_GET_FUN(__glewVDPAUMapSurfacesNV) -#define glVDPAURegisterOutputSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterOutputSurfaceNV) -#define glVDPAURegisterVideoSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceNV) -#define glVDPAUSurfaceAccessNV GLEW_GET_FUN(__glewVDPAUSurfaceAccessNV) -#define glVDPAUUnmapSurfacesNV GLEW_GET_FUN(__glewVDPAUUnmapSurfacesNV) -#define glVDPAUUnregisterSurfaceNV GLEW_GET_FUN(__glewVDPAUUnregisterSurfaceNV) - -#define GLEW_NV_vdpau_interop GLEW_GET_VAR(__GLEW_NV_vdpau_interop) - -#endif /* GL_NV_vdpau_interop */ - -/* ------------------------ GL_NV_vertex_array_range ----------------------- */ - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range 1 - -#define GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 - -typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, void *pointer); - -#define glFlushVertexArrayRangeNV GLEW_GET_FUN(__glewFlushVertexArrayRangeNV) -#define glVertexArrayRangeNV GLEW_GET_FUN(__glewVertexArrayRangeNV) - -#define GLEW_NV_vertex_array_range GLEW_GET_VAR(__GLEW_NV_vertex_array_range) - -#endif /* GL_NV_vertex_array_range */ - -/* ----------------------- GL_NV_vertex_array_range2 ----------------------- */ - -#ifndef GL_NV_vertex_array_range2 -#define GL_NV_vertex_array_range2 1 - -#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 - -#define GLEW_NV_vertex_array_range2 GLEW_GET_VAR(__GLEW_NV_vertex_array_range2) - -#endif /* GL_NV_vertex_array_range2 */ - -/* ------------------- GL_NV_vertex_attrib_integer_64bit ------------------- */ - -#ifndef GL_NV_vertex_attrib_integer_64bit -#define GL_NV_vertex_attrib_integer_64bit 1 - -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F - -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); - -#define glGetVertexAttribLi64vNV GLEW_GET_FUN(__glewGetVertexAttribLi64vNV) -#define glGetVertexAttribLui64vNV GLEW_GET_FUN(__glewGetVertexAttribLui64vNV) -#define glVertexAttribL1i64NV GLEW_GET_FUN(__glewVertexAttribL1i64NV) -#define glVertexAttribL1i64vNV GLEW_GET_FUN(__glewVertexAttribL1i64vNV) -#define glVertexAttribL1ui64NV GLEW_GET_FUN(__glewVertexAttribL1ui64NV) -#define glVertexAttribL1ui64vNV GLEW_GET_FUN(__glewVertexAttribL1ui64vNV) -#define glVertexAttribL2i64NV GLEW_GET_FUN(__glewVertexAttribL2i64NV) -#define glVertexAttribL2i64vNV GLEW_GET_FUN(__glewVertexAttribL2i64vNV) -#define glVertexAttribL2ui64NV GLEW_GET_FUN(__glewVertexAttribL2ui64NV) -#define glVertexAttribL2ui64vNV GLEW_GET_FUN(__glewVertexAttribL2ui64vNV) -#define glVertexAttribL3i64NV GLEW_GET_FUN(__glewVertexAttribL3i64NV) -#define glVertexAttribL3i64vNV GLEW_GET_FUN(__glewVertexAttribL3i64vNV) -#define glVertexAttribL3ui64NV GLEW_GET_FUN(__glewVertexAttribL3ui64NV) -#define glVertexAttribL3ui64vNV GLEW_GET_FUN(__glewVertexAttribL3ui64vNV) -#define glVertexAttribL4i64NV GLEW_GET_FUN(__glewVertexAttribL4i64NV) -#define glVertexAttribL4i64vNV GLEW_GET_FUN(__glewVertexAttribL4i64vNV) -#define glVertexAttribL4ui64NV GLEW_GET_FUN(__glewVertexAttribL4ui64NV) -#define glVertexAttribL4ui64vNV GLEW_GET_FUN(__glewVertexAttribL4ui64vNV) -#define glVertexAttribLFormatNV GLEW_GET_FUN(__glewVertexAttribLFormatNV) - -#define GLEW_NV_vertex_attrib_integer_64bit GLEW_GET_VAR(__GLEW_NV_vertex_attrib_integer_64bit) - -#endif /* GL_NV_vertex_attrib_integer_64bit */ - -/* ------------------- GL_NV_vertex_buffer_unified_memory ------------------ */ - -#ifndef GL_NV_vertex_buffer_unified_memory -#define GL_NV_vertex_buffer_unified_memory 1 - -#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E -#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F -#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 -#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 -#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 -#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 -#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 -#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 -#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 -#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 -#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 -#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 -#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A -#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B -#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C -#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D -#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E -#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F -#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 -#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 -#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 -#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 -#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 -#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 -#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 - -typedef void (GLAPIENTRY * PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -typedef void (GLAPIENTRY * PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT result[]); -typedef void (GLAPIENTRY * PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); - -#define glBufferAddressRangeNV GLEW_GET_FUN(__glewBufferAddressRangeNV) -#define glColorFormatNV GLEW_GET_FUN(__glewColorFormatNV) -#define glEdgeFlagFormatNV GLEW_GET_FUN(__glewEdgeFlagFormatNV) -#define glFogCoordFormatNV GLEW_GET_FUN(__glewFogCoordFormatNV) -#define glGetIntegerui64i_vNV GLEW_GET_FUN(__glewGetIntegerui64i_vNV) -#define glIndexFormatNV GLEW_GET_FUN(__glewIndexFormatNV) -#define glNormalFormatNV GLEW_GET_FUN(__glewNormalFormatNV) -#define glSecondaryColorFormatNV GLEW_GET_FUN(__glewSecondaryColorFormatNV) -#define glTexCoordFormatNV GLEW_GET_FUN(__glewTexCoordFormatNV) -#define glVertexAttribFormatNV GLEW_GET_FUN(__glewVertexAttribFormatNV) -#define glVertexAttribIFormatNV GLEW_GET_FUN(__glewVertexAttribIFormatNV) -#define glVertexFormatNV GLEW_GET_FUN(__glewVertexFormatNV) - -#define GLEW_NV_vertex_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_vertex_buffer_unified_memory) - -#endif /* GL_NV_vertex_buffer_unified_memory */ - -/* -------------------------- GL_NV_vertex_program ------------------------- */ - -#ifndef GL_NV_vertex_program -#define GL_NV_vertex_program 1 - -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define GL_CURRENT_ATTRIB_NV 0x8626 -#define GL_PROGRAM_LENGTH_NV 0x8627 -#define GL_PROGRAM_STRING_NV 0x8628 -#define GL_MODELVIEW_PROJECTION_NV 0x8629 -#define GL_IDENTITY_NV 0x862A -#define GL_INVERSE_NV 0x862B -#define GL_TRANSPOSE_NV 0x862C -#define GL_INVERSE_TRANSPOSE_NV 0x862D -#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define GL_MAX_TRACK_MATRICES_NV 0x862F -#define GL_MATRIX0_NV 0x8630 -#define GL_MATRIX1_NV 0x8631 -#define GL_MATRIX2_NV 0x8632 -#define GL_MATRIX3_NV 0x8633 -#define GL_MATRIX4_NV 0x8634 -#define GL_MATRIX5_NV 0x8635 -#define GL_MATRIX6_NV 0x8636 -#define GL_MATRIX7_NV 0x8637 -#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define GL_CURRENT_MATRIX_NV 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define GL_PROGRAM_PARAMETER_NV 0x8644 -#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define GL_PROGRAM_TARGET_NV 0x8646 -#define GL_PROGRAM_RESIDENT_NV 0x8647 -#define GL_TRACK_MATRIX_NV 0x8648 -#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F - -typedef GLboolean (GLAPIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint* ids, GLboolean *residences); -typedef void (GLAPIENTRY * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte* program); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, void** pointer); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMNVPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte* program); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei n, const GLubyte* v); - -#define glAreProgramsResidentNV GLEW_GET_FUN(__glewAreProgramsResidentNV) -#define glBindProgramNV GLEW_GET_FUN(__glewBindProgramNV) -#define glDeleteProgramsNV GLEW_GET_FUN(__glewDeleteProgramsNV) -#define glExecuteProgramNV GLEW_GET_FUN(__glewExecuteProgramNV) -#define glGenProgramsNV GLEW_GET_FUN(__glewGenProgramsNV) -#define glGetProgramParameterdvNV GLEW_GET_FUN(__glewGetProgramParameterdvNV) -#define glGetProgramParameterfvNV GLEW_GET_FUN(__glewGetProgramParameterfvNV) -#define glGetProgramStringNV GLEW_GET_FUN(__glewGetProgramStringNV) -#define glGetProgramivNV GLEW_GET_FUN(__glewGetProgramivNV) -#define glGetTrackMatrixivNV GLEW_GET_FUN(__glewGetTrackMatrixivNV) -#define glGetVertexAttribPointervNV GLEW_GET_FUN(__glewGetVertexAttribPointervNV) -#define glGetVertexAttribdvNV GLEW_GET_FUN(__glewGetVertexAttribdvNV) -#define glGetVertexAttribfvNV GLEW_GET_FUN(__glewGetVertexAttribfvNV) -#define glGetVertexAttribivNV GLEW_GET_FUN(__glewGetVertexAttribivNV) -#define glIsProgramNV GLEW_GET_FUN(__glewIsProgramNV) -#define glLoadProgramNV GLEW_GET_FUN(__glewLoadProgramNV) -#define glProgramParameter4dNV GLEW_GET_FUN(__glewProgramParameter4dNV) -#define glProgramParameter4dvNV GLEW_GET_FUN(__glewProgramParameter4dvNV) -#define glProgramParameter4fNV GLEW_GET_FUN(__glewProgramParameter4fNV) -#define glProgramParameter4fvNV GLEW_GET_FUN(__glewProgramParameter4fvNV) -#define glProgramParameters4dvNV GLEW_GET_FUN(__glewProgramParameters4dvNV) -#define glProgramParameters4fvNV GLEW_GET_FUN(__glewProgramParameters4fvNV) -#define glRequestResidentProgramsNV GLEW_GET_FUN(__glewRequestResidentProgramsNV) -#define glTrackMatrixNV GLEW_GET_FUN(__glewTrackMatrixNV) -#define glVertexAttrib1dNV GLEW_GET_FUN(__glewVertexAttrib1dNV) -#define glVertexAttrib1dvNV GLEW_GET_FUN(__glewVertexAttrib1dvNV) -#define glVertexAttrib1fNV GLEW_GET_FUN(__glewVertexAttrib1fNV) -#define glVertexAttrib1fvNV GLEW_GET_FUN(__glewVertexAttrib1fvNV) -#define glVertexAttrib1sNV GLEW_GET_FUN(__glewVertexAttrib1sNV) -#define glVertexAttrib1svNV GLEW_GET_FUN(__glewVertexAttrib1svNV) -#define glVertexAttrib2dNV GLEW_GET_FUN(__glewVertexAttrib2dNV) -#define glVertexAttrib2dvNV GLEW_GET_FUN(__glewVertexAttrib2dvNV) -#define glVertexAttrib2fNV GLEW_GET_FUN(__glewVertexAttrib2fNV) -#define glVertexAttrib2fvNV GLEW_GET_FUN(__glewVertexAttrib2fvNV) -#define glVertexAttrib2sNV GLEW_GET_FUN(__glewVertexAttrib2sNV) -#define glVertexAttrib2svNV GLEW_GET_FUN(__glewVertexAttrib2svNV) -#define glVertexAttrib3dNV GLEW_GET_FUN(__glewVertexAttrib3dNV) -#define glVertexAttrib3dvNV GLEW_GET_FUN(__glewVertexAttrib3dvNV) -#define glVertexAttrib3fNV GLEW_GET_FUN(__glewVertexAttrib3fNV) -#define glVertexAttrib3fvNV GLEW_GET_FUN(__glewVertexAttrib3fvNV) -#define glVertexAttrib3sNV GLEW_GET_FUN(__glewVertexAttrib3sNV) -#define glVertexAttrib3svNV GLEW_GET_FUN(__glewVertexAttrib3svNV) -#define glVertexAttrib4dNV GLEW_GET_FUN(__glewVertexAttrib4dNV) -#define glVertexAttrib4dvNV GLEW_GET_FUN(__glewVertexAttrib4dvNV) -#define glVertexAttrib4fNV GLEW_GET_FUN(__glewVertexAttrib4fNV) -#define glVertexAttrib4fvNV GLEW_GET_FUN(__glewVertexAttrib4fvNV) -#define glVertexAttrib4sNV GLEW_GET_FUN(__glewVertexAttrib4sNV) -#define glVertexAttrib4svNV GLEW_GET_FUN(__glewVertexAttrib4svNV) -#define glVertexAttrib4ubNV GLEW_GET_FUN(__glewVertexAttrib4ubNV) -#define glVertexAttrib4ubvNV GLEW_GET_FUN(__glewVertexAttrib4ubvNV) -#define glVertexAttribPointerNV GLEW_GET_FUN(__glewVertexAttribPointerNV) -#define glVertexAttribs1dvNV GLEW_GET_FUN(__glewVertexAttribs1dvNV) -#define glVertexAttribs1fvNV GLEW_GET_FUN(__glewVertexAttribs1fvNV) -#define glVertexAttribs1svNV GLEW_GET_FUN(__glewVertexAttribs1svNV) -#define glVertexAttribs2dvNV GLEW_GET_FUN(__glewVertexAttribs2dvNV) -#define glVertexAttribs2fvNV GLEW_GET_FUN(__glewVertexAttribs2fvNV) -#define glVertexAttribs2svNV GLEW_GET_FUN(__glewVertexAttribs2svNV) -#define glVertexAttribs3dvNV GLEW_GET_FUN(__glewVertexAttribs3dvNV) -#define glVertexAttribs3fvNV GLEW_GET_FUN(__glewVertexAttribs3fvNV) -#define glVertexAttribs3svNV GLEW_GET_FUN(__glewVertexAttribs3svNV) -#define glVertexAttribs4dvNV GLEW_GET_FUN(__glewVertexAttribs4dvNV) -#define glVertexAttribs4fvNV GLEW_GET_FUN(__glewVertexAttribs4fvNV) -#define glVertexAttribs4svNV GLEW_GET_FUN(__glewVertexAttribs4svNV) -#define glVertexAttribs4ubvNV GLEW_GET_FUN(__glewVertexAttribs4ubvNV) - -#define GLEW_NV_vertex_program GLEW_GET_VAR(__GLEW_NV_vertex_program) - -#endif /* GL_NV_vertex_program */ - -/* ------------------------ GL_NV_vertex_program1_1 ------------------------ */ - -#ifndef GL_NV_vertex_program1_1 -#define GL_NV_vertex_program1_1 1 - -#define GLEW_NV_vertex_program1_1 GLEW_GET_VAR(__GLEW_NV_vertex_program1_1) - -#endif /* GL_NV_vertex_program1_1 */ - -/* ------------------------- GL_NV_vertex_program2 ------------------------- */ - -#ifndef GL_NV_vertex_program2 -#define GL_NV_vertex_program2 1 - -#define GLEW_NV_vertex_program2 GLEW_GET_VAR(__GLEW_NV_vertex_program2) - -#endif /* GL_NV_vertex_program2 */ - -/* ---------------------- GL_NV_vertex_program2_option --------------------- */ - -#ifndef GL_NV_vertex_program2_option -#define GL_NV_vertex_program2_option 1 - -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 - -#define GLEW_NV_vertex_program2_option GLEW_GET_VAR(__GLEW_NV_vertex_program2_option) - -#endif /* GL_NV_vertex_program2_option */ - -/* ------------------------- GL_NV_vertex_program3 ------------------------- */ - -#ifndef GL_NV_vertex_program3 -#define GL_NV_vertex_program3 1 - -#define MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C - -#define GLEW_NV_vertex_program3 GLEW_GET_VAR(__GLEW_NV_vertex_program3) - -#endif /* GL_NV_vertex_program3 */ - -/* ------------------------- GL_NV_vertex_program4 ------------------------- */ - -#ifndef GL_NV_vertex_program4 -#define GL_NV_vertex_program4 1 - -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD - -#define GLEW_NV_vertex_program4 GLEW_GET_VAR(__GLEW_NV_vertex_program4) - -#endif /* GL_NV_vertex_program4 */ - -/* -------------------------- GL_NV_video_capture -------------------------- */ - -#ifndef GL_NV_video_capture -#define GL_NV_video_capture 1 - -#define GL_VIDEO_BUFFER_NV 0x9020 -#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 -#define GL_FIELD_UPPER_NV 0x9022 -#define GL_FIELD_LOWER_NV 0x9023 -#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 -#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 -#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 -#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 -#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 -#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 -#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A -#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B -#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C -#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D -#define GL_PARTIAL_SUCCESS_NV 0x902E -#define GL_SUCCESS_NV 0x902F -#define GL_FAILURE_NV 0x9030 -#define GL_YCBYCR8_422_NV 0x9031 -#define GL_YCBAYCR8A_4224_NV 0x9032 -#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 -#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 -#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 -#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 -#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 -#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 -#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 -#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A -#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B -#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C - -typedef void (GLAPIENTRY * PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -typedef void (GLAPIENTRY * PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint* params); -typedef GLenum (GLAPIENTRY * PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint* sequence_num, GLuint64EXT *capture_time); -typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params); - -#define glBeginVideoCaptureNV GLEW_GET_FUN(__glewBeginVideoCaptureNV) -#define glBindVideoCaptureStreamBufferNV GLEW_GET_FUN(__glewBindVideoCaptureStreamBufferNV) -#define glBindVideoCaptureStreamTextureNV GLEW_GET_FUN(__glewBindVideoCaptureStreamTextureNV) -#define glEndVideoCaptureNV GLEW_GET_FUN(__glewEndVideoCaptureNV) -#define glGetVideoCaptureStreamdvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamdvNV) -#define glGetVideoCaptureStreamfvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamfvNV) -#define glGetVideoCaptureStreamivNV GLEW_GET_FUN(__glewGetVideoCaptureStreamivNV) -#define glGetVideoCaptureivNV GLEW_GET_FUN(__glewGetVideoCaptureivNV) -#define glVideoCaptureNV GLEW_GET_FUN(__glewVideoCaptureNV) -#define glVideoCaptureStreamParameterdvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterdvNV) -#define glVideoCaptureStreamParameterfvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterfvNV) -#define glVideoCaptureStreamParameterivNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterivNV) - -#define GLEW_NV_video_capture GLEW_GET_VAR(__GLEW_NV_video_capture) - -#endif /* GL_NV_video_capture */ - -/* ------------------------- GL_NV_viewport_array2 ------------------------- */ - -#ifndef GL_NV_viewport_array2 -#define GL_NV_viewport_array2 1 - -#define GLEW_NV_viewport_array2 GLEW_GET_VAR(__GLEW_NV_viewport_array2) - -#endif /* GL_NV_viewport_array2 */ - -/* ------------------------ GL_OES_byte_coordinates ------------------------ */ - -#ifndef GL_OES_byte_coordinates -#define GL_OES_byte_coordinates 1 - -#define GLEW_OES_byte_coordinates GLEW_GET_VAR(__GLEW_OES_byte_coordinates) - -#endif /* GL_OES_byte_coordinates */ - -/* ------------------- GL_OES_compressed_paletted_texture ------------------ */ - -#ifndef GL_OES_compressed_paletted_texture -#define GL_OES_compressed_paletted_texture 1 - -#define GL_PALETTE4_RGB8_OES 0x8B90 -#define GL_PALETTE4_RGBA8_OES 0x8B91 -#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 -#define GL_PALETTE4_RGBA4_OES 0x8B93 -#define GL_PALETTE4_RGB5_A1_OES 0x8B94 -#define GL_PALETTE8_RGB8_OES 0x8B95 -#define GL_PALETTE8_RGBA8_OES 0x8B96 -#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 -#define GL_PALETTE8_RGBA4_OES 0x8B98 -#define GL_PALETTE8_RGB5_A1_OES 0x8B99 - -#define GLEW_OES_compressed_paletted_texture GLEW_GET_VAR(__GLEW_OES_compressed_paletted_texture) - -#endif /* GL_OES_compressed_paletted_texture */ - -/* --------------------------- GL_OES_read_format -------------------------- */ - -#ifndef GL_OES_read_format -#define GL_OES_read_format 1 - -#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B - -#define GLEW_OES_read_format GLEW_GET_VAR(__GLEW_OES_read_format) - -#endif /* GL_OES_read_format */ - -/* ------------------------ GL_OES_single_precision ------------------------ */ - -#ifndef GL_OES_single_precision -#define GL_OES_single_precision 1 - -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFOESPROC) (GLclampf depth); -typedef void (GLAPIENTRY * PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat* equation); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); -typedef void (GLAPIENTRY * PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat* equation); -typedef void (GLAPIENTRY * PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); - -#define glClearDepthfOES GLEW_GET_FUN(__glewClearDepthfOES) -#define glClipPlanefOES GLEW_GET_FUN(__glewClipPlanefOES) -#define glDepthRangefOES GLEW_GET_FUN(__glewDepthRangefOES) -#define glFrustumfOES GLEW_GET_FUN(__glewFrustumfOES) -#define glGetClipPlanefOES GLEW_GET_FUN(__glewGetClipPlanefOES) -#define glOrthofOES GLEW_GET_FUN(__glewOrthofOES) - -#define GLEW_OES_single_precision GLEW_GET_VAR(__GLEW_OES_single_precision) - -#endif /* GL_OES_single_precision */ - -/* ---------------------------- GL_OML_interlace --------------------------- */ - -#ifndef GL_OML_interlace -#define GL_OML_interlace 1 - -#define GL_INTERLACE_OML 0x8980 -#define GL_INTERLACE_READ_OML 0x8981 - -#define GLEW_OML_interlace GLEW_GET_VAR(__GLEW_OML_interlace) - -#endif /* GL_OML_interlace */ - -/* ---------------------------- GL_OML_resample ---------------------------- */ - -#ifndef GL_OML_resample -#define GL_OML_resample 1 - -#define GL_PACK_RESAMPLE_OML 0x8984 -#define GL_UNPACK_RESAMPLE_OML 0x8985 -#define GL_RESAMPLE_REPLICATE_OML 0x8986 -#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 -#define GL_RESAMPLE_AVERAGE_OML 0x8988 -#define GL_RESAMPLE_DECIMATE_OML 0x8989 - -#define GLEW_OML_resample GLEW_GET_VAR(__GLEW_OML_resample) - -#endif /* GL_OML_resample */ - -/* ---------------------------- GL_OML_subsample --------------------------- */ - -#ifndef GL_OML_subsample -#define GL_OML_subsample 1 - -#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 -#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 - -#define GLEW_OML_subsample GLEW_GET_VAR(__GLEW_OML_subsample) - -#endif /* GL_OML_subsample */ - -/* --------------------------- GL_PGI_misc_hints --------------------------- */ - -#ifndef GL_PGI_misc_hints -#define GL_PGI_misc_hints 1 - -#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 107000 -#define GL_CONSERVE_MEMORY_HINT_PGI 107005 -#define GL_RECLAIM_MEMORY_HINT_PGI 107006 -#define GL_NATIVE_GRAPHICS_HANDLE_PGI 107010 -#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011 -#define GL_NATIVE_GRAPHICS_END_HINT_PGI 107012 -#define GL_ALWAYS_FAST_HINT_PGI 107020 -#define GL_ALWAYS_SOFT_HINT_PGI 107021 -#define GL_ALLOW_DRAW_OBJ_HINT_PGI 107022 -#define GL_ALLOW_DRAW_WIN_HINT_PGI 107023 -#define GL_ALLOW_DRAW_FRG_HINT_PGI 107024 -#define GL_ALLOW_DRAW_MEM_HINT_PGI 107025 -#define GL_STRICT_DEPTHFUNC_HINT_PGI 107030 -#define GL_STRICT_LIGHTING_HINT_PGI 107031 -#define GL_STRICT_SCISSOR_HINT_PGI 107032 -#define GL_FULL_STIPPLE_HINT_PGI 107033 -#define GL_CLIP_NEAR_HINT_PGI 107040 -#define GL_CLIP_FAR_HINT_PGI 107041 -#define GL_WIDE_LINE_HINT_PGI 107042 -#define GL_BACK_NORMALS_HINT_PGI 107043 - -#define GLEW_PGI_misc_hints GLEW_GET_VAR(__GLEW_PGI_misc_hints) - -#endif /* GL_PGI_misc_hints */ - -/* -------------------------- GL_PGI_vertex_hints -------------------------- */ - -#ifndef GL_PGI_vertex_hints -#define GL_PGI_vertex_hints 1 - -#define GL_VERTEX23_BIT_PGI 0x00000004 -#define GL_VERTEX4_BIT_PGI 0x00000008 -#define GL_COLOR3_BIT_PGI 0x00010000 -#define GL_COLOR4_BIT_PGI 0x00020000 -#define GL_EDGEFLAG_BIT_PGI 0x00040000 -#define GL_INDEX_BIT_PGI 0x00080000 -#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define GL_VERTEX_DATA_HINT_PGI 107050 -#define GL_VERTEX_CONSISTENT_HINT_PGI 107051 -#define GL_MATERIAL_SIDE_HINT_PGI 107052 -#define GL_MAX_VERTEX_HINT_PGI 107053 -#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define GL_NORMAL_BIT_PGI 0x08000000 -#define GL_TEXCOORD1_BIT_PGI 0x10000000 -#define GL_TEXCOORD2_BIT_PGI 0x20000000 -#define GL_TEXCOORD3_BIT_PGI 0x40000000 -#define GL_TEXCOORD4_BIT_PGI 0x80000000 - -#define GLEW_PGI_vertex_hints GLEW_GET_VAR(__GLEW_PGI_vertex_hints) - -#endif /* GL_PGI_vertex_hints */ - -/* ---------------------- GL_REGAL_ES1_0_compatibility --------------------- */ - -#ifndef GL_REGAL_ES1_0_compatibility -#define GL_REGAL_ES1_0_compatibility 1 - -typedef int GLclampx; - -typedef void (GLAPIENTRY * PFNGLALPHAFUNCXPROC) (GLenum func, GLclampx ref); -typedef void (GLAPIENTRY * PFNGLCLEARCOLORXPROC) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHXPROC) (GLclampx depth); -typedef void (GLAPIENTRY * PFNGLCOLOR4XPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEXPROC) (GLclampx zNear, GLclampx zFar); -typedef void (GLAPIENTRY * PFNGLFOGXPROC) (GLenum pname, GLfixed param); -typedef void (GLAPIENTRY * PFNGLFOGXVPROC) (GLenum pname, const GLfixed* params); -typedef void (GLAPIENTRY * PFNGLFRUSTUMFPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); -typedef void (GLAPIENTRY * PFNGLFRUSTUMXPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); -typedef void (GLAPIENTRY * PFNGLLIGHTMODELXPROC) (GLenum pname, GLfixed param); -typedef void (GLAPIENTRY * PFNGLLIGHTMODELXVPROC) (GLenum pname, const GLfixed* params); -typedef void (GLAPIENTRY * PFNGLLIGHTXPROC) (GLenum light, GLenum pname, GLfixed param); -typedef void (GLAPIENTRY * PFNGLLIGHTXVPROC) (GLenum light, GLenum pname, const GLfixed* params); -typedef void (GLAPIENTRY * PFNGLLINEWIDTHXPROC) (GLfixed width); -typedef void (GLAPIENTRY * PFNGLLOADMATRIXXPROC) (const GLfixed* m); -typedef void (GLAPIENTRY * PFNGLMATERIALXPROC) (GLenum face, GLenum pname, GLfixed param); -typedef void (GLAPIENTRY * PFNGLMATERIALXVPROC) (GLenum face, GLenum pname, const GLfixed* params); -typedef void (GLAPIENTRY * PFNGLMULTMATRIXXPROC) (const GLfixed* m); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4XPROC) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -typedef void (GLAPIENTRY * PFNGLNORMAL3XPROC) (GLfixed nx, GLfixed ny, GLfixed nz); -typedef void (GLAPIENTRY * PFNGLORTHOFPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); -typedef void (GLAPIENTRY * PFNGLORTHOXPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); -typedef void (GLAPIENTRY * PFNGLPOINTSIZEXPROC) (GLfixed size); -typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETXPROC) (GLfixed factor, GLfixed units); -typedef void (GLAPIENTRY * PFNGLROTATEXPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEXPROC) (GLclampx value, GLboolean invert); -typedef void (GLAPIENTRY * PFNGLSCALEXPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (GLAPIENTRY * PFNGLTEXENVXPROC) (GLenum target, GLenum pname, GLfixed param); -typedef void (GLAPIENTRY * PFNGLTEXENVXVPROC) (GLenum target, GLenum pname, const GLfixed* params); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERXPROC) (GLenum target, GLenum pname, GLfixed param); -typedef void (GLAPIENTRY * PFNGLTRANSLATEXPROC) (GLfixed x, GLfixed y, GLfixed z); - -#define glAlphaFuncx GLEW_GET_FUN(__glewAlphaFuncx) -#define glClearColorx GLEW_GET_FUN(__glewClearColorx) -#define glClearDepthx GLEW_GET_FUN(__glewClearDepthx) -#define glColor4x GLEW_GET_FUN(__glewColor4x) -#define glDepthRangex GLEW_GET_FUN(__glewDepthRangex) -#define glFogx GLEW_GET_FUN(__glewFogx) -#define glFogxv GLEW_GET_FUN(__glewFogxv) -#define glFrustumf GLEW_GET_FUN(__glewFrustumf) -#define glFrustumx GLEW_GET_FUN(__glewFrustumx) -#define glLightModelx GLEW_GET_FUN(__glewLightModelx) -#define glLightModelxv GLEW_GET_FUN(__glewLightModelxv) -#define glLightx GLEW_GET_FUN(__glewLightx) -#define glLightxv GLEW_GET_FUN(__glewLightxv) -#define glLineWidthx GLEW_GET_FUN(__glewLineWidthx) -#define glLoadMatrixx GLEW_GET_FUN(__glewLoadMatrixx) -#define glMaterialx GLEW_GET_FUN(__glewMaterialx) -#define glMaterialxv GLEW_GET_FUN(__glewMaterialxv) -#define glMultMatrixx GLEW_GET_FUN(__glewMultMatrixx) -#define glMultiTexCoord4x GLEW_GET_FUN(__glewMultiTexCoord4x) -#define glNormal3x GLEW_GET_FUN(__glewNormal3x) -#define glOrthof GLEW_GET_FUN(__glewOrthof) -#define glOrthox GLEW_GET_FUN(__glewOrthox) -#define glPointSizex GLEW_GET_FUN(__glewPointSizex) -#define glPolygonOffsetx GLEW_GET_FUN(__glewPolygonOffsetx) -#define glRotatex GLEW_GET_FUN(__glewRotatex) -#define glSampleCoveragex GLEW_GET_FUN(__glewSampleCoveragex) -#define glScalex GLEW_GET_FUN(__glewScalex) -#define glTexEnvx GLEW_GET_FUN(__glewTexEnvx) -#define glTexEnvxv GLEW_GET_FUN(__glewTexEnvxv) -#define glTexParameterx GLEW_GET_FUN(__glewTexParameterx) -#define glTranslatex GLEW_GET_FUN(__glewTranslatex) - -#define GLEW_REGAL_ES1_0_compatibility GLEW_GET_VAR(__GLEW_REGAL_ES1_0_compatibility) - -#endif /* GL_REGAL_ES1_0_compatibility */ - -/* ---------------------- GL_REGAL_ES1_1_compatibility --------------------- */ - -#ifndef GL_REGAL_ES1_1_compatibility -#define GL_REGAL_ES1_1_compatibility 1 - -typedef void (GLAPIENTRY * PFNGLCLIPPLANEFPROC) (GLenum plane, const GLfloat* equation); -typedef void (GLAPIENTRY * PFNGLCLIPPLANEXPROC) (GLenum plane, const GLfixed* equation); -typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEFPROC) (GLenum pname, GLfloat eqn[4]); -typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEXPROC) (GLenum pname, GLfixed eqn[4]); -typedef void (GLAPIENTRY * PFNGLGETFIXEDVPROC) (GLenum pname, GLfixed* params); -typedef void (GLAPIENTRY * PFNGLGETLIGHTXVPROC) (GLenum light, GLenum pname, GLfixed* params); -typedef void (GLAPIENTRY * PFNGLGETMATERIALXVPROC) (GLenum face, GLenum pname, GLfixed* params); -typedef void (GLAPIENTRY * PFNGLGETTEXENVXVPROC) (GLenum env, GLenum pname, GLfixed* params); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERXVPROC) (GLenum target, GLenum pname, GLfixed* params); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERXPROC) (GLenum pname, GLfixed param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERXVPROC) (GLenum pname, const GLfixed* params); -typedef void (GLAPIENTRY * PFNGLPOINTSIZEPOINTEROESPROC) (GLenum type, GLsizei stride, const void *pointer); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERXVPROC) (GLenum target, GLenum pname, const GLfixed* params); - -#define glClipPlanef GLEW_GET_FUN(__glewClipPlanef) -#define glClipPlanex GLEW_GET_FUN(__glewClipPlanex) -#define glGetClipPlanef GLEW_GET_FUN(__glewGetClipPlanef) -#define glGetClipPlanex GLEW_GET_FUN(__glewGetClipPlanex) -#define glGetFixedv GLEW_GET_FUN(__glewGetFixedv) -#define glGetLightxv GLEW_GET_FUN(__glewGetLightxv) -#define glGetMaterialxv GLEW_GET_FUN(__glewGetMaterialxv) -#define glGetTexEnvxv GLEW_GET_FUN(__glewGetTexEnvxv) -#define glGetTexParameterxv GLEW_GET_FUN(__glewGetTexParameterxv) -#define glPointParameterx GLEW_GET_FUN(__glewPointParameterx) -#define glPointParameterxv GLEW_GET_FUN(__glewPointParameterxv) -#define glPointSizePointerOES GLEW_GET_FUN(__glewPointSizePointerOES) -#define glTexParameterxv GLEW_GET_FUN(__glewTexParameterxv) - -#define GLEW_REGAL_ES1_1_compatibility GLEW_GET_VAR(__GLEW_REGAL_ES1_1_compatibility) - -#endif /* GL_REGAL_ES1_1_compatibility */ - -/* ---------------------------- GL_REGAL_enable ---------------------------- */ - -#ifndef GL_REGAL_enable -#define GL_REGAL_enable 1 - -#define GL_ERROR_REGAL 0x9322 -#define GL_DEBUG_REGAL 0x9323 -#define GL_LOG_REGAL 0x9324 -#define GL_EMULATION_REGAL 0x9325 -#define GL_DRIVER_REGAL 0x9326 -#define GL_MISSING_REGAL 0x9360 -#define GL_TRACE_REGAL 0x9361 -#define GL_CACHE_REGAL 0x9362 -#define GL_CODE_REGAL 0x9363 -#define GL_STATISTICS_REGAL 0x9364 - -#define GLEW_REGAL_enable GLEW_GET_VAR(__GLEW_REGAL_enable) - -#endif /* GL_REGAL_enable */ - -/* ------------------------- GL_REGAL_error_string ------------------------- */ - -#ifndef GL_REGAL_error_string -#define GL_REGAL_error_string 1 - -typedef const GLchar* (GLAPIENTRY * PFNGLERRORSTRINGREGALPROC) (GLenum error); - -#define glErrorStringREGAL GLEW_GET_FUN(__glewErrorStringREGAL) - -#define GLEW_REGAL_error_string GLEW_GET_VAR(__GLEW_REGAL_error_string) - -#endif /* GL_REGAL_error_string */ - -/* ------------------------ GL_REGAL_extension_query ----------------------- */ - -#ifndef GL_REGAL_extension_query -#define GL_REGAL_extension_query 1 - -typedef GLboolean (GLAPIENTRY * PFNGLGETEXTENSIONREGALPROC) (const GLchar* ext); -typedef GLboolean (GLAPIENTRY * PFNGLISSUPPORTEDREGALPROC) (const GLchar* ext); - -#define glGetExtensionREGAL GLEW_GET_FUN(__glewGetExtensionREGAL) -#define glIsSupportedREGAL GLEW_GET_FUN(__glewIsSupportedREGAL) - -#define GLEW_REGAL_extension_query GLEW_GET_VAR(__GLEW_REGAL_extension_query) - -#endif /* GL_REGAL_extension_query */ - -/* ------------------------------ GL_REGAL_log ----------------------------- */ - -#ifndef GL_REGAL_log -#define GL_REGAL_log 1 - -#define GL_LOG_ERROR_REGAL 0x9319 -#define GL_LOG_WARNING_REGAL 0x931A -#define GL_LOG_INFO_REGAL 0x931B -#define GL_LOG_APP_REGAL 0x931C -#define GL_LOG_DRIVER_REGAL 0x931D -#define GL_LOG_INTERNAL_REGAL 0x931E -#define GL_LOG_DEBUG_REGAL 0x931F -#define GL_LOG_STATUS_REGAL 0x9320 -#define GL_LOG_HTTP_REGAL 0x9321 - -typedef void (APIENTRY *GLLOGPROCREGAL)(GLenum stream, GLsizei length, const GLchar *message, void *context); - -typedef void (GLAPIENTRY * PFNGLLOGMESSAGECALLBACKREGALPROC) (GLLOGPROCREGAL callback); - -#define glLogMessageCallbackREGAL GLEW_GET_FUN(__glewLogMessageCallbackREGAL) - -#define GLEW_REGAL_log GLEW_GET_VAR(__GLEW_REGAL_log) - -#endif /* GL_REGAL_log */ - -/* ------------------------- GL_REGAL_proc_address ------------------------- */ - -#ifndef GL_REGAL_proc_address -#define GL_REGAL_proc_address 1 - -typedef void * (GLAPIENTRY * PFNGLGETPROCADDRESSREGALPROC) (const GLchar *name); - -#define glGetProcAddressREGAL GLEW_GET_FUN(__glewGetProcAddressREGAL) - -#define GLEW_REGAL_proc_address GLEW_GET_VAR(__GLEW_REGAL_proc_address) - -#endif /* GL_REGAL_proc_address */ - -/* ----------------------- GL_REND_screen_coordinates ---------------------- */ - -#ifndef GL_REND_screen_coordinates -#define GL_REND_screen_coordinates 1 - -#define GL_SCREEN_COORDINATES_REND 0x8490 -#define GL_INVERTED_SCREEN_W_REND 0x8491 - -#define GLEW_REND_screen_coordinates GLEW_GET_VAR(__GLEW_REND_screen_coordinates) - -#endif /* GL_REND_screen_coordinates */ - -/* ------------------------------- GL_S3_s3tc ------------------------------ */ - -#ifndef GL_S3_s3tc -#define GL_S3_s3tc 1 - -#define GL_RGB_S3TC 0x83A0 -#define GL_RGB4_S3TC 0x83A1 -#define GL_RGBA_S3TC 0x83A2 -#define GL_RGBA4_S3TC 0x83A3 -#define GL_RGBA_DXT5_S3TC 0x83A4 -#define GL_RGBA4_DXT5_S3TC 0x83A5 - -#define GLEW_S3_s3tc GLEW_GET_VAR(__GLEW_S3_s3tc) - -#endif /* GL_S3_s3tc */ - -/* -------------------------- GL_SGIS_color_range -------------------------- */ - -#ifndef GL_SGIS_color_range -#define GL_SGIS_color_range 1 - -#define GL_EXTENDED_RANGE_SGIS 0x85A5 -#define GL_MIN_RED_SGIS 0x85A6 -#define GL_MAX_RED_SGIS 0x85A7 -#define GL_MIN_GREEN_SGIS 0x85A8 -#define GL_MAX_GREEN_SGIS 0x85A9 -#define GL_MIN_BLUE_SGIS 0x85AA -#define GL_MAX_BLUE_SGIS 0x85AB -#define GL_MIN_ALPHA_SGIS 0x85AC -#define GL_MAX_ALPHA_SGIS 0x85AD - -#define GLEW_SGIS_color_range GLEW_GET_VAR(__GLEW_SGIS_color_range) - -#endif /* GL_SGIS_color_range */ - -/* ------------------------- GL_SGIS_detail_texture ------------------------ */ - -#ifndef GL_SGIS_detail_texture -#define GL_SGIS_detail_texture 1 - -typedef void (GLAPIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); -typedef void (GLAPIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat* points); - -#define glDetailTexFuncSGIS GLEW_GET_FUN(__glewDetailTexFuncSGIS) -#define glGetDetailTexFuncSGIS GLEW_GET_FUN(__glewGetDetailTexFuncSGIS) - -#define GLEW_SGIS_detail_texture GLEW_GET_VAR(__GLEW_SGIS_detail_texture) - -#endif /* GL_SGIS_detail_texture */ - -/* -------------------------- GL_SGIS_fog_function ------------------------- */ - -#ifndef GL_SGIS_fog_function -#define GL_SGIS_fog_function 1 - -typedef void (GLAPIENTRY * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat* points); -typedef void (GLAPIENTRY * PFNGLGETFOGFUNCSGISPROC) (GLfloat* points); - -#define glFogFuncSGIS GLEW_GET_FUN(__glewFogFuncSGIS) -#define glGetFogFuncSGIS GLEW_GET_FUN(__glewGetFogFuncSGIS) - -#define GLEW_SGIS_fog_function GLEW_GET_VAR(__GLEW_SGIS_fog_function) - -#endif /* GL_SGIS_fog_function */ - -/* ------------------------ GL_SGIS_generate_mipmap ------------------------ */ - -#ifndef GL_SGIS_generate_mipmap -#define GL_SGIS_generate_mipmap 1 - -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 - -#define GLEW_SGIS_generate_mipmap GLEW_GET_VAR(__GLEW_SGIS_generate_mipmap) - -#endif /* GL_SGIS_generate_mipmap */ - -/* -------------------------- GL_SGIS_multisample -------------------------- */ - -#ifndef GL_SGIS_multisample -#define GL_SGIS_multisample 1 - -#define GL_MULTISAMPLE_SGIS 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define GL_SAMPLE_MASK_SGIS 0x80A0 -#define GL_1PASS_SGIS 0x80A1 -#define GL_2PASS_0_SGIS 0x80A2 -#define GL_2PASS_1_SGIS 0x80A3 -#define GL_4PASS_0_SGIS 0x80A4 -#define GL_4PASS_1_SGIS 0x80A5 -#define GL_4PASS_2_SGIS 0x80A6 -#define GL_4PASS_3_SGIS 0x80A7 -#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define GL_SAMPLES_SGIS 0x80A9 -#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define GL_SAMPLE_PATTERN_SGIS 0x80AC - -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); -typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); - -#define glSampleMaskSGIS GLEW_GET_FUN(__glewSampleMaskSGIS) -#define glSamplePatternSGIS GLEW_GET_FUN(__glewSamplePatternSGIS) - -#define GLEW_SGIS_multisample GLEW_GET_VAR(__GLEW_SGIS_multisample) - -#endif /* GL_SGIS_multisample */ - -/* ------------------------- GL_SGIS_pixel_texture ------------------------- */ - -#ifndef GL_SGIS_pixel_texture -#define GL_SGIS_pixel_texture 1 - -#define GLEW_SGIS_pixel_texture GLEW_GET_VAR(__GLEW_SGIS_pixel_texture) - -#endif /* GL_SGIS_pixel_texture */ - -/* ----------------------- GL_SGIS_point_line_texgen ----------------------- */ - -#ifndef GL_SGIS_point_line_texgen -#define GL_SGIS_point_line_texgen 1 - -#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 -#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 -#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 -#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 -#define GL_EYE_POINT_SGIS 0x81F4 -#define GL_OBJECT_POINT_SGIS 0x81F5 -#define GL_EYE_LINE_SGIS 0x81F6 -#define GL_OBJECT_LINE_SGIS 0x81F7 - -#define GLEW_SGIS_point_line_texgen GLEW_GET_VAR(__GLEW_SGIS_point_line_texgen) - -#endif /* GL_SGIS_point_line_texgen */ - -/* ------------------------ GL_SGIS_sharpen_texture ------------------------ */ - -#ifndef GL_SGIS_sharpen_texture -#define GL_SGIS_sharpen_texture 1 - -typedef void (GLAPIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat* points); -typedef void (GLAPIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); - -#define glGetSharpenTexFuncSGIS GLEW_GET_FUN(__glewGetSharpenTexFuncSGIS) -#define glSharpenTexFuncSGIS GLEW_GET_FUN(__glewSharpenTexFuncSGIS) - -#define GLEW_SGIS_sharpen_texture GLEW_GET_VAR(__GLEW_SGIS_sharpen_texture) - -#endif /* GL_SGIS_sharpen_texture */ - -/* --------------------------- GL_SGIS_texture4D --------------------------- */ - -#ifndef GL_SGIS_texture4D -#define GL_SGIS_texture4D 1 - -typedef void (GLAPIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void *pixels); - -#define glTexImage4DSGIS GLEW_GET_FUN(__glewTexImage4DSGIS) -#define glTexSubImage4DSGIS GLEW_GET_FUN(__glewTexSubImage4DSGIS) - -#define GLEW_SGIS_texture4D GLEW_GET_VAR(__GLEW_SGIS_texture4D) - -#endif /* GL_SGIS_texture4D */ - -/* ---------------------- GL_SGIS_texture_border_clamp --------------------- */ - -#ifndef GL_SGIS_texture_border_clamp -#define GL_SGIS_texture_border_clamp 1 - -#define GL_CLAMP_TO_BORDER_SGIS 0x812D - -#define GLEW_SGIS_texture_border_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_border_clamp) - -#endif /* GL_SGIS_texture_border_clamp */ - -/* ----------------------- GL_SGIS_texture_edge_clamp ---------------------- */ - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_SGIS_texture_edge_clamp 1 - -#define GL_CLAMP_TO_EDGE_SGIS 0x812F - -#define GLEW_SGIS_texture_edge_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_edge_clamp) - -#endif /* GL_SGIS_texture_edge_clamp */ - -/* ------------------------ GL_SGIS_texture_filter4 ------------------------ */ - -#ifndef GL_SGIS_texture_filter4 -#define GL_SGIS_texture_filter4 1 - -typedef void (GLAPIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat* weights); -typedef void (GLAPIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat* weights); - -#define glGetTexFilterFuncSGIS GLEW_GET_FUN(__glewGetTexFilterFuncSGIS) -#define glTexFilterFuncSGIS GLEW_GET_FUN(__glewTexFilterFuncSGIS) - -#define GLEW_SGIS_texture_filter4 GLEW_GET_VAR(__GLEW_SGIS_texture_filter4) - -#endif /* GL_SGIS_texture_filter4 */ - -/* -------------------------- GL_SGIS_texture_lod -------------------------- */ - -#ifndef GL_SGIS_texture_lod -#define GL_SGIS_texture_lod 1 - -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D - -#define GLEW_SGIS_texture_lod GLEW_GET_VAR(__GLEW_SGIS_texture_lod) - -#endif /* GL_SGIS_texture_lod */ - -/* ------------------------- GL_SGIS_texture_select ------------------------ */ - -#ifndef GL_SGIS_texture_select -#define GL_SGIS_texture_select 1 - -#define GLEW_SGIS_texture_select GLEW_GET_VAR(__GLEW_SGIS_texture_select) - -#endif /* GL_SGIS_texture_select */ - -/* ----------------------------- GL_SGIX_async ----------------------------- */ - -#ifndef GL_SGIX_async -#define GL_SGIX_async 1 - -#define GL_ASYNC_MARKER_SGIX 0x8329 - -typedef void (GLAPIENTRY * PFNGLASYNCMARKERSGIXPROC) (GLuint marker); -typedef void (GLAPIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); -typedef GLint (GLAPIENTRY * PFNGLFINISHASYNCSGIXPROC) (GLuint* markerp); -typedef GLuint (GLAPIENTRY * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); -typedef GLboolean (GLAPIENTRY * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); -typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); - -#define glAsyncMarkerSGIX GLEW_GET_FUN(__glewAsyncMarkerSGIX) -#define glDeleteAsyncMarkersSGIX GLEW_GET_FUN(__glewDeleteAsyncMarkersSGIX) -#define glFinishAsyncSGIX GLEW_GET_FUN(__glewFinishAsyncSGIX) -#define glGenAsyncMarkersSGIX GLEW_GET_FUN(__glewGenAsyncMarkersSGIX) -#define glIsAsyncMarkerSGIX GLEW_GET_FUN(__glewIsAsyncMarkerSGIX) -#define glPollAsyncSGIX GLEW_GET_FUN(__glewPollAsyncSGIX) - -#define GLEW_SGIX_async GLEW_GET_VAR(__GLEW_SGIX_async) - -#endif /* GL_SGIX_async */ - -/* ------------------------ GL_SGIX_async_histogram ------------------------ */ - -#ifndef GL_SGIX_async_histogram -#define GL_SGIX_async_histogram 1 - -#define GL_ASYNC_HISTOGRAM_SGIX 0x832C -#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D - -#define GLEW_SGIX_async_histogram GLEW_GET_VAR(__GLEW_SGIX_async_histogram) - -#endif /* GL_SGIX_async_histogram */ - -/* -------------------------- GL_SGIX_async_pixel -------------------------- */ - -#ifndef GL_SGIX_async_pixel -#define GL_SGIX_async_pixel 1 - -#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C -#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D -#define GL_ASYNC_READ_PIXELS_SGIX 0x835E -#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F -#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 -#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 - -#define GLEW_SGIX_async_pixel GLEW_GET_VAR(__GLEW_SGIX_async_pixel) - -#endif /* GL_SGIX_async_pixel */ - -/* ----------------------- GL_SGIX_blend_alpha_minmax ---------------------- */ - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_SGIX_blend_alpha_minmax 1 - -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 - -#define GLEW_SGIX_blend_alpha_minmax GLEW_GET_VAR(__GLEW_SGIX_blend_alpha_minmax) - -#endif /* GL_SGIX_blend_alpha_minmax */ - -/* ---------------------------- GL_SGIX_clipmap ---------------------------- */ - -#ifndef GL_SGIX_clipmap -#define GL_SGIX_clipmap 1 - -#define GLEW_SGIX_clipmap GLEW_GET_VAR(__GLEW_SGIX_clipmap) - -#endif /* GL_SGIX_clipmap */ - -/* ---------------------- GL_SGIX_convolution_accuracy --------------------- */ - -#ifndef GL_SGIX_convolution_accuracy -#define GL_SGIX_convolution_accuracy 1 - -#define GL_CONVOLUTION_HINT_SGIX 0x8316 - -#define GLEW_SGIX_convolution_accuracy GLEW_GET_VAR(__GLEW_SGIX_convolution_accuracy) - -#endif /* GL_SGIX_convolution_accuracy */ - -/* ------------------------- GL_SGIX_depth_texture ------------------------- */ - -#ifndef GL_SGIX_depth_texture -#define GL_SGIX_depth_texture 1 - -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 - -#define GLEW_SGIX_depth_texture GLEW_GET_VAR(__GLEW_SGIX_depth_texture) - -#endif /* GL_SGIX_depth_texture */ - -/* -------------------------- GL_SGIX_flush_raster ------------------------- */ - -#ifndef GL_SGIX_flush_raster -#define GL_SGIX_flush_raster 1 - -typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); - -#define glFlushRasterSGIX GLEW_GET_FUN(__glewFlushRasterSGIX) - -#define GLEW_SGIX_flush_raster GLEW_GET_VAR(__GLEW_SGIX_flush_raster) - -#endif /* GL_SGIX_flush_raster */ - -/* --------------------------- GL_SGIX_fog_offset -------------------------- */ - -#ifndef GL_SGIX_fog_offset -#define GL_SGIX_fog_offset 1 - -#define GL_FOG_OFFSET_SGIX 0x8198 -#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 - -#define GLEW_SGIX_fog_offset GLEW_GET_VAR(__GLEW_SGIX_fog_offset) - -#endif /* GL_SGIX_fog_offset */ - -/* -------------------------- GL_SGIX_fog_texture -------------------------- */ - -#ifndef GL_SGIX_fog_texture -#define GL_SGIX_fog_texture 1 - -#define GL_FOG_PATCHY_FACTOR_SGIX 0 -#define GL_FRAGMENT_FOG_SGIX 0 -#define GL_TEXTURE_FOG_SGIX 0 - -typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname); - -#define glTextureFogSGIX GLEW_GET_FUN(__glewTextureFogSGIX) - -#define GLEW_SGIX_fog_texture GLEW_GET_VAR(__GLEW_SGIX_fog_texture) - -#endif /* GL_SGIX_fog_texture */ - -/* ------------------- GL_SGIX_fragment_specular_lighting ------------------ */ - -#ifndef GL_SGIX_fragment_specular_lighting -#define GL_SGIX_fragment_specular_lighting 1 - -typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum value, GLfloat* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum value, GLint* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* data); - -#define glFragmentColorMaterialSGIX GLEW_GET_FUN(__glewFragmentColorMaterialSGIX) -#define glFragmentLightModelfSGIX GLEW_GET_FUN(__glewFragmentLightModelfSGIX) -#define glFragmentLightModelfvSGIX GLEW_GET_FUN(__glewFragmentLightModelfvSGIX) -#define glFragmentLightModeliSGIX GLEW_GET_FUN(__glewFragmentLightModeliSGIX) -#define glFragmentLightModelivSGIX GLEW_GET_FUN(__glewFragmentLightModelivSGIX) -#define glFragmentLightfSGIX GLEW_GET_FUN(__glewFragmentLightfSGIX) -#define glFragmentLightfvSGIX GLEW_GET_FUN(__glewFragmentLightfvSGIX) -#define glFragmentLightiSGIX GLEW_GET_FUN(__glewFragmentLightiSGIX) -#define glFragmentLightivSGIX GLEW_GET_FUN(__glewFragmentLightivSGIX) -#define glFragmentMaterialfSGIX GLEW_GET_FUN(__glewFragmentMaterialfSGIX) -#define glFragmentMaterialfvSGIX GLEW_GET_FUN(__glewFragmentMaterialfvSGIX) -#define glFragmentMaterialiSGIX GLEW_GET_FUN(__glewFragmentMaterialiSGIX) -#define glFragmentMaterialivSGIX GLEW_GET_FUN(__glewFragmentMaterialivSGIX) -#define glGetFragmentLightfvSGIX GLEW_GET_FUN(__glewGetFragmentLightfvSGIX) -#define glGetFragmentLightivSGIX GLEW_GET_FUN(__glewGetFragmentLightivSGIX) -#define glGetFragmentMaterialfvSGIX GLEW_GET_FUN(__glewGetFragmentMaterialfvSGIX) -#define glGetFragmentMaterialivSGIX GLEW_GET_FUN(__glewGetFragmentMaterialivSGIX) - -#define GLEW_SGIX_fragment_specular_lighting GLEW_GET_VAR(__GLEW_SGIX_fragment_specular_lighting) - -#endif /* GL_SGIX_fragment_specular_lighting */ - -/* --------------------------- GL_SGIX_framezoom --------------------------- */ - -#ifndef GL_SGIX_framezoom -#define GL_SGIX_framezoom 1 - -typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); - -#define glFrameZoomSGIX GLEW_GET_FUN(__glewFrameZoomSGIX) - -#define GLEW_SGIX_framezoom GLEW_GET_VAR(__GLEW_SGIX_framezoom) - -#endif /* GL_SGIX_framezoom */ - -/* --------------------------- GL_SGIX_interlace --------------------------- */ - -#ifndef GL_SGIX_interlace -#define GL_SGIX_interlace 1 - -#define GL_INTERLACE_SGIX 0x8094 - -#define GLEW_SGIX_interlace GLEW_GET_VAR(__GLEW_SGIX_interlace) - -#endif /* GL_SGIX_interlace */ - -/* ------------------------- GL_SGIX_ir_instrument1 ------------------------ */ - -#ifndef GL_SGIX_ir_instrument1 -#define GL_SGIX_ir_instrument1 1 - -#define GLEW_SGIX_ir_instrument1 GLEW_GET_VAR(__GLEW_SGIX_ir_instrument1) - -#endif /* GL_SGIX_ir_instrument1 */ - -/* ------------------------- GL_SGIX_list_priority ------------------------- */ - -#ifndef GL_SGIX_list_priority -#define GL_SGIX_list_priority 1 - -#define GLEW_SGIX_list_priority GLEW_GET_VAR(__GLEW_SGIX_list_priority) - -#endif /* GL_SGIX_list_priority */ - -/* ------------------------- GL_SGIX_pixel_texture ------------------------- */ - -#ifndef GL_SGIX_pixel_texture -#define GL_SGIX_pixel_texture 1 - -typedef void (GLAPIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); - -#define glPixelTexGenSGIX GLEW_GET_FUN(__glewPixelTexGenSGIX) - -#define GLEW_SGIX_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_pixel_texture) - -#endif /* GL_SGIX_pixel_texture */ - -/* ----------------------- GL_SGIX_pixel_texture_bits ---------------------- */ - -#ifndef GL_SGIX_pixel_texture_bits -#define GL_SGIX_pixel_texture_bits 1 - -#define GLEW_SGIX_pixel_texture_bits GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_bits) - -#endif /* GL_SGIX_pixel_texture_bits */ - -/* ------------------------ GL_SGIX_reference_plane ------------------------ */ - -#ifndef GL_SGIX_reference_plane -#define GL_SGIX_reference_plane 1 - -typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equation); - -#define glReferencePlaneSGIX GLEW_GET_FUN(__glewReferencePlaneSGIX) - -#define GLEW_SGIX_reference_plane GLEW_GET_VAR(__GLEW_SGIX_reference_plane) - -#endif /* GL_SGIX_reference_plane */ - -/* ---------------------------- GL_SGIX_resample --------------------------- */ - -#ifndef GL_SGIX_resample -#define GL_SGIX_resample 1 - -#define GL_PACK_RESAMPLE_SGIX 0x842E -#define GL_UNPACK_RESAMPLE_SGIX 0x842F -#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#define GL_RESAMPLE_REPLICATE_SGIX 0x8433 -#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434 - -#define GLEW_SGIX_resample GLEW_GET_VAR(__GLEW_SGIX_resample) - -#endif /* GL_SGIX_resample */ - -/* ----------------------------- GL_SGIX_shadow ---------------------------- */ - -#ifndef GL_SGIX_shadow -#define GL_SGIX_shadow 1 - -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D - -#define GLEW_SGIX_shadow GLEW_GET_VAR(__GLEW_SGIX_shadow) - -#endif /* GL_SGIX_shadow */ - -/* ------------------------- GL_SGIX_shadow_ambient ------------------------ */ - -#ifndef GL_SGIX_shadow_ambient -#define GL_SGIX_shadow_ambient 1 - -#define GL_SHADOW_AMBIENT_SGIX 0x80BF - -#define GLEW_SGIX_shadow_ambient GLEW_GET_VAR(__GLEW_SGIX_shadow_ambient) - -#endif /* GL_SGIX_shadow_ambient */ - -/* ----------------------------- GL_SGIX_sprite ---------------------------- */ - -#ifndef GL_SGIX_sprite -#define GL_SGIX_sprite 1 - -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, GLint* params); - -#define glSpriteParameterfSGIX GLEW_GET_FUN(__glewSpriteParameterfSGIX) -#define glSpriteParameterfvSGIX GLEW_GET_FUN(__glewSpriteParameterfvSGIX) -#define glSpriteParameteriSGIX GLEW_GET_FUN(__glewSpriteParameteriSGIX) -#define glSpriteParameterivSGIX GLEW_GET_FUN(__glewSpriteParameterivSGIX) - -#define GLEW_SGIX_sprite GLEW_GET_VAR(__GLEW_SGIX_sprite) - -#endif /* GL_SGIX_sprite */ - -/* ----------------------- GL_SGIX_tag_sample_buffer ----------------------- */ - -#ifndef GL_SGIX_tag_sample_buffer -#define GL_SGIX_tag_sample_buffer 1 - -typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); - -#define glTagSampleBufferSGIX GLEW_GET_FUN(__glewTagSampleBufferSGIX) - -#define GLEW_SGIX_tag_sample_buffer GLEW_GET_VAR(__GLEW_SGIX_tag_sample_buffer) - -#endif /* GL_SGIX_tag_sample_buffer */ - -/* ------------------------ GL_SGIX_texture_add_env ------------------------ */ - -#ifndef GL_SGIX_texture_add_env -#define GL_SGIX_texture_add_env 1 - -#define GLEW_SGIX_texture_add_env GLEW_GET_VAR(__GLEW_SGIX_texture_add_env) - -#endif /* GL_SGIX_texture_add_env */ - -/* -------------------- GL_SGIX_texture_coordinate_clamp ------------------- */ - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_SGIX_texture_coordinate_clamp 1 - -#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 -#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A -#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B - -#define GLEW_SGIX_texture_coordinate_clamp GLEW_GET_VAR(__GLEW_SGIX_texture_coordinate_clamp) - -#endif /* GL_SGIX_texture_coordinate_clamp */ - -/* ------------------------ GL_SGIX_texture_lod_bias ----------------------- */ - -#ifndef GL_SGIX_texture_lod_bias -#define GL_SGIX_texture_lod_bias 1 - -#define GLEW_SGIX_texture_lod_bias GLEW_GET_VAR(__GLEW_SGIX_texture_lod_bias) - -#endif /* GL_SGIX_texture_lod_bias */ - -/* ---------------------- GL_SGIX_texture_multi_buffer --------------------- */ - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_SGIX_texture_multi_buffer 1 - -#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E - -#define GLEW_SGIX_texture_multi_buffer GLEW_GET_VAR(__GLEW_SGIX_texture_multi_buffer) - -#endif /* GL_SGIX_texture_multi_buffer */ - -/* ------------------------- GL_SGIX_texture_range ------------------------- */ - -#ifndef GL_SGIX_texture_range -#define GL_SGIX_texture_range 1 - -#define GL_RGB_SIGNED_SGIX 0x85E0 -#define GL_RGBA_SIGNED_SGIX 0x85E1 -#define GL_ALPHA_SIGNED_SGIX 0x85E2 -#define GL_LUMINANCE_SIGNED_SGIX 0x85E3 -#define GL_INTENSITY_SIGNED_SGIX 0x85E4 -#define GL_LUMINANCE_ALPHA_SIGNED_SGIX 0x85E5 -#define GL_RGB16_SIGNED_SGIX 0x85E6 -#define GL_RGBA16_SIGNED_SGIX 0x85E7 -#define GL_ALPHA16_SIGNED_SGIX 0x85E8 -#define GL_LUMINANCE16_SIGNED_SGIX 0x85E9 -#define GL_INTENSITY16_SIGNED_SGIX 0x85EA -#define GL_LUMINANCE16_ALPHA16_SIGNED_SGIX 0x85EB -#define GL_RGB_EXTENDED_RANGE_SGIX 0x85EC -#define GL_RGBA_EXTENDED_RANGE_SGIX 0x85ED -#define GL_ALPHA_EXTENDED_RANGE_SGIX 0x85EE -#define GL_LUMINANCE_EXTENDED_RANGE_SGIX 0x85EF -#define GL_INTENSITY_EXTENDED_RANGE_SGIX 0x85F0 -#define GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX 0x85F1 -#define GL_RGB16_EXTENDED_RANGE_SGIX 0x85F2 -#define GL_RGBA16_EXTENDED_RANGE_SGIX 0x85F3 -#define GL_ALPHA16_EXTENDED_RANGE_SGIX 0x85F4 -#define GL_LUMINANCE16_EXTENDED_RANGE_SGIX 0x85F5 -#define GL_INTENSITY16_EXTENDED_RANGE_SGIX 0x85F6 -#define GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85F7 -#define GL_MIN_LUMINANCE_SGIS 0x85F8 -#define GL_MAX_LUMINANCE_SGIS 0x85F9 -#define GL_MIN_INTENSITY_SGIS 0x85FA -#define GL_MAX_INTENSITY_SGIS 0x85FB - -#define GLEW_SGIX_texture_range GLEW_GET_VAR(__GLEW_SGIX_texture_range) - -#endif /* GL_SGIX_texture_range */ - -/* ----------------------- GL_SGIX_texture_scale_bias ---------------------- */ - -#ifndef GL_SGIX_texture_scale_bias -#define GL_SGIX_texture_scale_bias 1 - -#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C - -#define GLEW_SGIX_texture_scale_bias GLEW_GET_VAR(__GLEW_SGIX_texture_scale_bias) - -#endif /* GL_SGIX_texture_scale_bias */ - -/* ------------------------- GL_SGIX_vertex_preclip ------------------------ */ - -#ifndef GL_SGIX_vertex_preclip -#define GL_SGIX_vertex_preclip 1 - -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF - -#define GLEW_SGIX_vertex_preclip GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip) - -#endif /* GL_SGIX_vertex_preclip */ - -/* ---------------------- GL_SGIX_vertex_preclip_hint ---------------------- */ - -#ifndef GL_SGIX_vertex_preclip_hint -#define GL_SGIX_vertex_preclip_hint 1 - -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF - -#define GLEW_SGIX_vertex_preclip_hint GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip_hint) - -#endif /* GL_SGIX_vertex_preclip_hint */ - -/* ----------------------------- GL_SGIX_ycrcb ----------------------------- */ - -#ifndef GL_SGIX_ycrcb -#define GL_SGIX_ycrcb 1 - -#define GLEW_SGIX_ycrcb GLEW_GET_VAR(__GLEW_SGIX_ycrcb) - -#endif /* GL_SGIX_ycrcb */ - -/* -------------------------- GL_SGI_color_matrix -------------------------- */ - -#ifndef GL_SGI_color_matrix -#define GL_SGI_color_matrix 1 - -#define GL_COLOR_MATRIX_SGI 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB - -#define GLEW_SGI_color_matrix GLEW_GET_VAR(__GLEW_SGI_color_matrix) - -#endif /* GL_SGI_color_matrix */ - -/* --------------------------- GL_SGI_color_table -------------------------- */ - -#ifndef GL_SGI_color_table -#define GL_SGI_color_table 1 - -#define GL_COLOR_TABLE_SGI 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF - -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void *table); - -#define glColorTableParameterfvSGI GLEW_GET_FUN(__glewColorTableParameterfvSGI) -#define glColorTableParameterivSGI GLEW_GET_FUN(__glewColorTableParameterivSGI) -#define glColorTableSGI GLEW_GET_FUN(__glewColorTableSGI) -#define glCopyColorTableSGI GLEW_GET_FUN(__glewCopyColorTableSGI) -#define glGetColorTableParameterfvSGI GLEW_GET_FUN(__glewGetColorTableParameterfvSGI) -#define glGetColorTableParameterivSGI GLEW_GET_FUN(__glewGetColorTableParameterivSGI) -#define glGetColorTableSGI GLEW_GET_FUN(__glewGetColorTableSGI) - -#define GLEW_SGI_color_table GLEW_GET_VAR(__GLEW_SGI_color_table) - -#endif /* GL_SGI_color_table */ - -/* ----------------------- GL_SGI_texture_color_table ---------------------- */ - -#ifndef GL_SGI_texture_color_table -#define GL_SGI_texture_color_table 1 - -#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD - -#define GLEW_SGI_texture_color_table GLEW_GET_VAR(__GLEW_SGI_texture_color_table) - -#endif /* GL_SGI_texture_color_table */ - -/* ------------------------- GL_SUNX_constant_data ------------------------- */ - -#ifndef GL_SUNX_constant_data -#define GL_SUNX_constant_data 1 - -#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 - -typedef void (GLAPIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void); - -#define glFinishTextureSUNX GLEW_GET_FUN(__glewFinishTextureSUNX) - -#define GLEW_SUNX_constant_data GLEW_GET_VAR(__GLEW_SUNX_constant_data) - -#endif /* GL_SUNX_constant_data */ - -/* -------------------- GL_SUN_convolution_border_modes -------------------- */ - -#ifndef GL_SUN_convolution_border_modes -#define GL_SUN_convolution_border_modes 1 - -#define GL_WRAP_BORDER_SUN 0x81D4 - -#define GLEW_SUN_convolution_border_modes GLEW_GET_VAR(__GLEW_SUN_convolution_border_modes) - -#endif /* GL_SUN_convolution_border_modes */ - -/* -------------------------- GL_SUN_global_alpha -------------------------- */ - -#ifndef GL_SUN_global_alpha -#define GL_SUN_global_alpha 1 - -#define GL_GLOBAL_ALPHA_SUN 0x81D9 -#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA - -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); - -#define glGlobalAlphaFactorbSUN GLEW_GET_FUN(__glewGlobalAlphaFactorbSUN) -#define glGlobalAlphaFactordSUN GLEW_GET_FUN(__glewGlobalAlphaFactordSUN) -#define glGlobalAlphaFactorfSUN GLEW_GET_FUN(__glewGlobalAlphaFactorfSUN) -#define glGlobalAlphaFactoriSUN GLEW_GET_FUN(__glewGlobalAlphaFactoriSUN) -#define glGlobalAlphaFactorsSUN GLEW_GET_FUN(__glewGlobalAlphaFactorsSUN) -#define glGlobalAlphaFactorubSUN GLEW_GET_FUN(__glewGlobalAlphaFactorubSUN) -#define glGlobalAlphaFactoruiSUN GLEW_GET_FUN(__glewGlobalAlphaFactoruiSUN) -#define glGlobalAlphaFactorusSUN GLEW_GET_FUN(__glewGlobalAlphaFactorusSUN) - -#define GLEW_SUN_global_alpha GLEW_GET_VAR(__GLEW_SUN_global_alpha) - -#endif /* GL_SUN_global_alpha */ - -/* --------------------------- GL_SUN_mesh_array --------------------------- */ - -#ifndef GL_SUN_mesh_array -#define GL_SUN_mesh_array 1 - -#define GL_QUAD_MESH_SUN 0x8614 -#define GL_TRIANGLE_MESH_SUN 0x8615 - -#define GLEW_SUN_mesh_array GLEW_GET_VAR(__GLEW_SUN_mesh_array) - -#endif /* GL_SUN_mesh_array */ - -/* ------------------------ GL_SUN_read_video_pixels ----------------------- */ - -#ifndef GL_SUN_read_video_pixels -#define GL_SUN_read_video_pixels 1 - -typedef void (GLAPIENTRY * PFNGLREADVIDEOPIXELSSUNPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels); - -#define glReadVideoPixelsSUN GLEW_GET_FUN(__glewReadVideoPixelsSUN) - -#define GLEW_SUN_read_video_pixels GLEW_GET_VAR(__GLEW_SUN_read_video_pixels) - -#endif /* GL_SUN_read_video_pixels */ - -/* --------------------------- GL_SUN_slice_accum -------------------------- */ - -#ifndef GL_SUN_slice_accum -#define GL_SUN_slice_accum 1 - -#define GL_SLICE_ACCUM_SUN 0x85CC - -#define GLEW_SUN_slice_accum GLEW_GET_VAR(__GLEW_SUN_slice_accum) - -#endif /* GL_SUN_slice_accum */ - -/* -------------------------- GL_SUN_triangle_list ------------------------- */ - -#ifndef GL_SUN_triangle_list -#define GL_SUN_triangle_list 1 - -#define GL_RESTART_SUN 0x01 -#define GL_REPLACE_MIDDLE_SUN 0x02 -#define GL_REPLACE_OLDEST_SUN 0x03 -#define GL_TRIANGLE_LIST_SUN 0x81D7 -#define GL_REPLACEMENT_CODE_SUN 0x81D8 -#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define GL_R1UI_V3F_SUN 0x85C4 -#define GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define GL_R1UI_C3F_V3F_SUN 0x85C6 -#define GL_R1UI_N3F_V3F_SUN 0x85C7 -#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define GL_R1UI_T2F_V3F_SUN 0x85C9 -#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB - -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void *pointer); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte* code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint* code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort* code); - -#define glReplacementCodePointerSUN GLEW_GET_FUN(__glewReplacementCodePointerSUN) -#define glReplacementCodeubSUN GLEW_GET_FUN(__glewReplacementCodeubSUN) -#define glReplacementCodeubvSUN GLEW_GET_FUN(__glewReplacementCodeubvSUN) -#define glReplacementCodeuiSUN GLEW_GET_FUN(__glewReplacementCodeuiSUN) -#define glReplacementCodeuivSUN GLEW_GET_FUN(__glewReplacementCodeuivSUN) -#define glReplacementCodeusSUN GLEW_GET_FUN(__glewReplacementCodeusSUN) -#define glReplacementCodeusvSUN GLEW_GET_FUN(__glewReplacementCodeusvSUN) - -#define GLEW_SUN_triangle_list GLEW_GET_VAR(__GLEW_SUN_triangle_list) - -#endif /* GL_SUN_triangle_list */ - -/* ----------------------------- GL_SUN_vertex ----------------------------- */ - -#ifndef GL_SUN_vertex -#define GL_SUN_vertex 1 - -typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte* c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte* c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint* rc, const GLubyte *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat* tc, const GLubyte *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *v); - -#define glColor3fVertex3fSUN GLEW_GET_FUN(__glewColor3fVertex3fSUN) -#define glColor3fVertex3fvSUN GLEW_GET_FUN(__glewColor3fVertex3fvSUN) -#define glColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fSUN) -#define glColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fvSUN) -#define glColor4ubVertex2fSUN GLEW_GET_FUN(__glewColor4ubVertex2fSUN) -#define glColor4ubVertex2fvSUN GLEW_GET_FUN(__glewColor4ubVertex2fvSUN) -#define glColor4ubVertex3fSUN GLEW_GET_FUN(__glewColor4ubVertex3fSUN) -#define glColor4ubVertex3fvSUN GLEW_GET_FUN(__glewColor4ubVertex3fvSUN) -#define glNormal3fVertex3fSUN GLEW_GET_FUN(__glewNormal3fVertex3fSUN) -#define glNormal3fVertex3fvSUN GLEW_GET_FUN(__glewNormal3fVertex3fvSUN) -#define glReplacementCodeuiColor3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fSUN) -#define glReplacementCodeuiColor3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fvSUN) -#define glReplacementCodeuiColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fSUN) -#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fvSUN) -#define glReplacementCodeuiColor4ubVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fSUN) -#define glReplacementCodeuiColor4ubVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fvSUN) -#define glReplacementCodeuiNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fSUN) -#define glReplacementCodeuiNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fvSUN) -#define glReplacementCodeuiVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fSUN) -#define glReplacementCodeuiVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fvSUN) -#define glTexCoord2fColor3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fSUN) -#define glTexCoord2fColor3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fvSUN) -#define glTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fSUN) -#define glTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fvSUN) -#define glTexCoord2fColor4ubVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fSUN) -#define glTexCoord2fColor4ubVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fvSUN) -#define glTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fSUN) -#define glTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fvSUN) -#define glTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fSUN) -#define glTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fvSUN) -#define glTexCoord4fColor4fNormal3fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fSUN) -#define glTexCoord4fColor4fNormal3fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fvSUN) -#define glTexCoord4fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fSUN) -#define glTexCoord4fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fvSUN) - -#define GLEW_SUN_vertex GLEW_GET_VAR(__GLEW_SUN_vertex) - -#endif /* GL_SUN_vertex */ - -/* -------------------------- GL_WIN_phong_shading ------------------------- */ - -#ifndef GL_WIN_phong_shading -#define GL_WIN_phong_shading 1 - -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB - -#define GLEW_WIN_phong_shading GLEW_GET_VAR(__GLEW_WIN_phong_shading) - -#endif /* GL_WIN_phong_shading */ - -/* -------------------------- GL_WIN_specular_fog -------------------------- */ - -#ifndef GL_WIN_specular_fog -#define GL_WIN_specular_fog 1 - -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC - -#define GLEW_WIN_specular_fog GLEW_GET_VAR(__GLEW_WIN_specular_fog) - -#endif /* GL_WIN_specular_fog */ - -/* ---------------------------- GL_WIN_swap_hint --------------------------- */ - -#ifndef GL_WIN_swap_hint -#define GL_WIN_swap_hint 1 - -typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height); - -#define glAddSwapHintRectWIN GLEW_GET_FUN(__glewAddSwapHintRectWIN) - -#define GLEW_WIN_swap_hint GLEW_GET_VAR(__GLEW_WIN_swap_hint) - -#endif /* GL_WIN_swap_hint */ - -/* ------------------------------------------------------------------------- */ - -#if defined(GLEW_MX) && defined(_WIN32) -#define GLEW_FUN_EXPORT -#else -#define GLEW_FUN_EXPORT GLEWAPI -#endif /* GLEW_MX */ - -#if defined(GLEW_MX) -#define GLEW_VAR_EXPORT -#else -#define GLEW_VAR_EXPORT GLEWAPI -#endif /* GLEW_MX */ - -#if defined(GLEW_MX) && defined(_WIN32) -struct GLEWContextStruct -{ -#endif /* GLEW_MX */ - -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements; -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DPROC __glewTexImage3D; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D; - -GLEW_FUN_EXPORT PFNGLACTIVETEXTUREPROC __glewActiveTexture; -GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage; -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd; -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv; -GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage; - -GLEW_FUN_EXPORT PFNGLBLENDCOLORPROC __glewBlendColor; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONPROC __glewBlendEquation; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate; -GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer; -GLEW_FUN_EXPORT PFNGLFOGCOORDDPROC __glewFogCoordd; -GLEW_FUN_EXPORT PFNGLFOGCOORDDVPROC __glewFogCoorddv; -GLEW_FUN_EXPORT PFNGLFOGCOORDFPROC __glewFogCoordf; -GLEW_FUN_EXPORT PFNGLFOGCOORDFVPROC __glewFogCoordfv; -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFPROC __glewPointParameterf; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIPROC __glewPointParameteri; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DPROC __glewWindowPos2d; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FPROC __glewWindowPos2f; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IPROC __glewWindowPos2i; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SPROC __glewWindowPos2s; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DPROC __glewWindowPos3d; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FPROC __glewWindowPos3f; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IPROC __glewWindowPos3i; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SPROC __glewWindowPos3s; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYPROC __glewBeginQuery; -GLEW_FUN_EXPORT PFNGLBINDBUFFERPROC __glewBindBuffer; -GLEW_FUN_EXPORT PFNGLBUFFERDATAPROC __glewBufferData; -GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAPROC __glewBufferSubData; -GLEW_FUN_EXPORT PFNGLDELETEBUFFERSPROC __glewDeleteBuffers; -GLEW_FUN_EXPORT PFNGLDELETEQUERIESPROC __glewDeleteQueries; -GLEW_FUN_EXPORT PFNGLENDQUERYPROC __glewEndQuery; -GLEW_FUN_EXPORT PFNGLGENBUFFERSPROC __glewGenBuffers; -GLEW_FUN_EXPORT PFNGLGENQUERIESPROC __glewGenQueries; -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv; -GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv; -GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv; -GLEW_FUN_EXPORT PFNGLGETQUERYIVPROC __glewGetQueryiv; -GLEW_FUN_EXPORT PFNGLISBUFFERPROC __glewIsBuffer; -GLEW_FUN_EXPORT PFNGLISQUERYPROC __glewIsQuery; -GLEW_FUN_EXPORT PFNGLMAPBUFFERPROC __glewMapBuffer; -GLEW_FUN_EXPORT PFNGLUNMAPBUFFERPROC __glewUnmapBuffer; - -GLEW_FUN_EXPORT PFNGLATTACHSHADERPROC __glewAttachShader; -GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEPROC __glewBlendEquationSeparate; -GLEW_FUN_EXPORT PFNGLCOMPILESHADERPROC __glewCompileShader; -GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPROC __glewCreateProgram; -GLEW_FUN_EXPORT PFNGLCREATESHADERPROC __glewCreateShader; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPROC __glewDeleteProgram; -GLEW_FUN_EXPORT PFNGLDELETESHADERPROC __glewDeleteShader; -GLEW_FUN_EXPORT PFNGLDETACHSHADERPROC __glewDetachShader; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYPROC __glewDisableVertexAttribArray; -GLEW_FUN_EXPORT PFNGLDRAWBUFFERSPROC __glewDrawBuffers; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray; -GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBPROC __glewGetActiveAttrib; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMPROC __glewGetActiveUniform; -GLEW_FUN_EXPORT PFNGLGETATTACHEDSHADERSPROC __glewGetAttachedShaders; -GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONPROC __glewGetAttribLocation; -GLEW_FUN_EXPORT PFNGLGETPROGRAMINFOLOGPROC __glewGetProgramInfoLog; -GLEW_FUN_EXPORT PFNGLGETPROGRAMIVPROC __glewGetProgramiv; -GLEW_FUN_EXPORT PFNGLGETSHADERINFOLOGPROC __glewGetShaderInfoLog; -GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEPROC __glewGetShaderSource; -GLEW_FUN_EXPORT PFNGLGETSHADERIVPROC __glewGetShaderiv; -GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONPROC __glewGetUniformLocation; -GLEW_FUN_EXPORT PFNGLGETUNIFORMFVPROC __glewGetUniformfv; -GLEW_FUN_EXPORT PFNGLGETUNIFORMIVPROC __glewGetUniformiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVPROC __glewGetVertexAttribPointerv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVPROC __glewGetVertexAttribdv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVPROC __glewGetVertexAttribfv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVPROC __glewGetVertexAttribiv; -GLEW_FUN_EXPORT PFNGLISPROGRAMPROC __glewIsProgram; -GLEW_FUN_EXPORT PFNGLISSHADERPROC __glewIsShader; -GLEW_FUN_EXPORT PFNGLLINKPROGRAMPROC __glewLinkProgram; -GLEW_FUN_EXPORT PFNGLSHADERSOURCEPROC __glewShaderSource; -GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEPROC __glewStencilFuncSeparate; -GLEW_FUN_EXPORT PFNGLSTENCILMASKSEPARATEPROC __glewStencilMaskSeparate; -GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEPROC __glewStencilOpSeparate; -GLEW_FUN_EXPORT PFNGLUNIFORM1FPROC __glewUniform1f; -GLEW_FUN_EXPORT PFNGLUNIFORM1FVPROC __glewUniform1fv; -GLEW_FUN_EXPORT PFNGLUNIFORM1IPROC __glewUniform1i; -GLEW_FUN_EXPORT PFNGLUNIFORM1IVPROC __glewUniform1iv; -GLEW_FUN_EXPORT PFNGLUNIFORM2FPROC __glewUniform2f; -GLEW_FUN_EXPORT PFNGLUNIFORM2FVPROC __glewUniform2fv; -GLEW_FUN_EXPORT PFNGLUNIFORM2IPROC __glewUniform2i; -GLEW_FUN_EXPORT PFNGLUNIFORM2IVPROC __glewUniform2iv; -GLEW_FUN_EXPORT PFNGLUNIFORM3FPROC __glewUniform3f; -GLEW_FUN_EXPORT PFNGLUNIFORM3FVPROC __glewUniform3fv; -GLEW_FUN_EXPORT PFNGLUNIFORM3IPROC __glewUniform3i; -GLEW_FUN_EXPORT PFNGLUNIFORM3IVPROC __glewUniform3iv; -GLEW_FUN_EXPORT PFNGLUNIFORM4FPROC __glewUniform4f; -GLEW_FUN_EXPORT PFNGLUNIFORM4FVPROC __glewUniform4fv; -GLEW_FUN_EXPORT PFNGLUNIFORM4IPROC __glewUniform4i; -GLEW_FUN_EXPORT PFNGLUNIFORM4IVPROC __glewUniform4iv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVPROC __glewUniformMatrix2fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVPROC __glewUniformMatrix3fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVPROC __glewUniformMatrix4fv; -GLEW_FUN_EXPORT PFNGLUSEPROGRAMPROC __glewUseProgram; -GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPROC __glewValidateProgram; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DPROC __glewVertexAttrib1d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVPROC __glewVertexAttrib1dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FPROC __glewVertexAttrib1f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVPROC __glewVertexAttrib1fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SPROC __glewVertexAttrib1s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVPROC __glewVertexAttrib1sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DPROC __glewVertexAttrib2d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVPROC __glewVertexAttrib2dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FPROC __glewVertexAttrib2f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVPROC __glewVertexAttrib2fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SPROC __glewVertexAttrib2s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVPROC __glewVertexAttrib2sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DPROC __glewVertexAttrib3d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVPROC __glewVertexAttrib3dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FPROC __glewVertexAttrib3f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVPROC __glewVertexAttrib3fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SPROC __glewVertexAttrib3s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVPROC __glewVertexAttrib3sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVPROC __glewVertexAttrib4Nbv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVPROC __glewVertexAttrib4Niv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVPROC __glewVertexAttrib4Nsv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBPROC __glewVertexAttrib4Nub; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVPROC __glewVertexAttrib4Nubv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVPROC __glewVertexAttrib4Nuiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVPROC __glewVertexAttrib4Nusv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVPROC __glewVertexAttrib4bv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DPROC __glewVertexAttrib4d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVPROC __glewVertexAttrib4dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FPROC __glewVertexAttrib4f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVPROC __glewVertexAttrib4fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVPROC __glewVertexAttrib4iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SPROC __glewVertexAttrib4s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVPROC __glewVertexAttrib4sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVPROC __glewVertexAttrib4ubv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVPROC __glewVertexAttrib4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVPROC __glewVertexAttrib4usv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERPROC __glewVertexAttribPointer; - -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVPROC __glewUniformMatrix2x3fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVPROC __glewUniformMatrix2x4fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVPROC __glewUniformMatrix3x2fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv; - -GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender; -GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback; -GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation; -GLEW_FUN_EXPORT PFNGLCLAMPCOLORPROC __glewClampColor; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERFIPROC __glewClearBufferfi; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERFVPROC __glewClearBufferfv; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERIVPROC __glewClearBufferiv; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv; -GLEW_FUN_EXPORT PFNGLCOLORMASKIPROC __glewColorMaski; -GLEW_FUN_EXPORT PFNGLDISABLEIPROC __glewDisablei; -GLEW_FUN_EXPORT PFNGLENABLEIPROC __glewEnablei; -GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender; -GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback; -GLEW_FUN_EXPORT PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v; -GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation; -GLEW_FUN_EXPORT PFNGLGETSTRINGIPROC __glewGetStringi; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying; -GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv; -GLEW_FUN_EXPORT PFNGLISENABLEDIPROC __glewIsEnabledi; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIPROC __glewUniform1ui; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIVPROC __glewUniform1uiv; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIPROC __glewUniform2ui; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIVPROC __glewUniform2uiv; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIPROC __glewUniform3ui; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIVPROC __glewUniform3uiv; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIPROC __glewUniform4ui; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIVPROC __glewUniform4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced; -GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex; -GLEW_FUN_EXPORT PFNGLTEXBUFFERPROC __glewTexBuffer; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture; -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v; -GLEW_FUN_EXPORT PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v; - -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIPROC __glewBlendEquationi; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei; -GLEW_FUN_EXPORT PFNGLBLENDFUNCIPROC __glewBlendFunci; -GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading; - -GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSPROC __glewGetGraphicsResetStatus; - -GLEW_FUN_EXPORT PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX; - -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD; -GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD; -GLEW_FUN_EXPORT PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD; - -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPARAMETERIAMDPROC __glewVertexAttribParameteriAMD; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC __glewMultiDrawElementsIndirectAMD; - -GLEW_FUN_EXPORT PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD; -GLEW_FUN_EXPORT PFNGLGENNAMESAMDPROC __glewGenNamesAMD; -GLEW_FUN_EXPORT PFNGLISNAMEAMDPROC __glewIsNameAMD; - -GLEW_FUN_EXPORT PFNGLQUERYOBJECTPARAMETERUIAMDPROC __glewQueryObjectParameteruiAMD; - -GLEW_FUN_EXPORT PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD; -GLEW_FUN_EXPORT PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD; -GLEW_FUN_EXPORT PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD; -GLEW_FUN_EXPORT PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD; -GLEW_FUN_EXPORT PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD; - -GLEW_FUN_EXPORT PFNGLSETMULTISAMPLEFVAMDPROC __glewSetMultisamplefvAMD; - -GLEW_FUN_EXPORT PFNGLTEXSTORAGESPARSEAMDPROC __glewTexStorageSparseAMD; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGESPARSEAMDPROC __glewTextureStorageSparseAMD; - -GLEW_FUN_EXPORT PFNGLSTENCILOPVALUEAMDPROC __glewStencilOpValueAMD; - -GLEW_FUN_EXPORT PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD; -GLEW_FUN_EXPORT PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD; - -GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERANGLEPROC __glewBlitFramebufferANGLE; - -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC __glewRenderbufferStorageMultisampleANGLE; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDANGLEPROC __glewDrawArraysInstancedANGLE; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDANGLEPROC __glewDrawElementsInstancedANGLE; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORANGLEPROC __glewVertexAttribDivisorANGLE; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYANGLEPROC __glewBeginQueryANGLE; -GLEW_FUN_EXPORT PFNGLDELETEQUERIESANGLEPROC __glewDeleteQueriesANGLE; -GLEW_FUN_EXPORT PFNGLENDQUERYANGLEPROC __glewEndQueryANGLE; -GLEW_FUN_EXPORT PFNGLGENQUERIESANGLEPROC __glewGenQueriesANGLE; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VANGLEPROC __glewGetQueryObjecti64vANGLE; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVANGLEPROC __glewGetQueryObjectivANGLE; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VANGLEPROC __glewGetQueryObjectui64vANGLE; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVANGLEPROC __glewGetQueryObjectuivANGLE; -GLEW_FUN_EXPORT PFNGLGETQUERYIVANGLEPROC __glewGetQueryivANGLE; -GLEW_FUN_EXPORT PFNGLISQUERYANGLEPROC __glewIsQueryANGLE; -GLEW_FUN_EXPORT PFNGLQUERYCOUNTERANGLEPROC __glewQueryCounterANGLE; - -GLEW_FUN_EXPORT PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC __glewGetTranslatedShaderSourceANGLE; - -GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE; -GLEW_FUN_EXPORT PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC __glewMultiDrawElementArrayAPPLE; -GLEW_FUN_EXPORT PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC __glewMultiDrawRangeElementArrayAPPLE; - -GLEW_FUN_EXPORT PFNGLDELETEFENCESAPPLEPROC __glewDeleteFencesAPPLE; -GLEW_FUN_EXPORT PFNGLFINISHFENCEAPPLEPROC __glewFinishFenceAPPLE; -GLEW_FUN_EXPORT PFNGLFINISHOBJECTAPPLEPROC __glewFinishObjectAPPLE; -GLEW_FUN_EXPORT PFNGLGENFENCESAPPLEPROC __glewGenFencesAPPLE; -GLEW_FUN_EXPORT PFNGLISFENCEAPPLEPROC __glewIsFenceAPPLE; -GLEW_FUN_EXPORT PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE; -GLEW_FUN_EXPORT PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE; -GLEW_FUN_EXPORT PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE; - -GLEW_FUN_EXPORT PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE; -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE; - -GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE; -GLEW_FUN_EXPORT PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE; -GLEW_FUN_EXPORT PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE; - -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE; -GLEW_FUN_EXPORT PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE; - -GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYAPPLEPROC __glewBindVertexArrayAPPLE; -GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSAPPLEPROC __glewDeleteVertexArraysAPPLE; -GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSAPPLEPROC __glewGenVertexArraysAPPLE; -GLEW_FUN_EXPORT PFNGLISVERTEXARRAYAPPLEPROC __glewIsVertexArrayAPPLE; - -GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeAPPLE; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE; - -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE; -GLEW_FUN_EXPORT PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE; - -GLEW_FUN_EXPORT PFNGLCLEARDEPTHFPROC __glewClearDepthf; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEFPROC __glewDepthRangef; -GLEW_FUN_EXPORT PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat; -GLEW_FUN_EXPORT PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler; -GLEW_FUN_EXPORT PFNGLSHADERBINARYPROC __glewShaderBinary; - -GLEW_FUN_EXPORT PFNGLMEMORYBARRIERBYREGIONPROC __glewMemoryBarrierByRegion; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC __glewDrawArraysInstancedBaseInstance; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC __glewDrawElementsInstancedBaseInstance; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC __glewDrawElementsInstancedBaseVertexBaseInstance; - -GLEW_FUN_EXPORT PFNGLGETIMAGEHANDLEARBPROC __glewGetImageHandleARB; -GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLEARBPROC __glewGetTextureHandleARB; -GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLEARBPROC __glewGetTextureSamplerHandleARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VARBPROC __glewGetVertexAttribLui64vARB; -GLEW_FUN_EXPORT PFNGLISIMAGEHANDLERESIDENTARBPROC __glewIsImageHandleResidentARB; -GLEW_FUN_EXPORT PFNGLISTEXTUREHANDLERESIDENTARBPROC __glewIsTextureHandleResidentARB; -GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC __glewMakeImageHandleNonResidentARB; -GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLERESIDENTARBPROC __glewMakeImageHandleResidentARB; -GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC __glewMakeTextureHandleNonResidentARB; -GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLERESIDENTARBPROC __glewMakeTextureHandleResidentARB; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC __glewProgramUniformHandleui64ARB; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC __glewProgramUniformHandleui64vARB; -GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64ARBPROC __glewUniformHandleui64ARB; -GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VARBPROC __glewUniformHandleui64vARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64ARBPROC __glewVertexAttribL1ui64ARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VARBPROC __glewVertexAttribL1ui64vARB; - -GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed; -GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex; - -GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEPROC __glewBufferStorage; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT; - -GLEW_FUN_EXPORT PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB; - -GLEW_FUN_EXPORT PFNGLCLEARBUFFERDATAPROC __glewClearBufferData; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERSUBDATAPROC __glewClearBufferSubData; -GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERDATAEXTPROC __glewClearNamedBufferDataEXT; -GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC __glewClearNamedBufferSubDataEXT; - -GLEW_FUN_EXPORT PFNGLCLEARTEXIMAGEPROC __glewClearTexImage; -GLEW_FUN_EXPORT PFNGLCLEARTEXSUBIMAGEPROC __glewClearTexSubImage; - -GLEW_FUN_EXPORT PFNGLCLIPCONTROLPROC __glewClipControl; - -GLEW_FUN_EXPORT PFNGLCLAMPCOLORARBPROC __glewClampColorARB; - -GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEPROC __glewDispatchCompute; -GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEINDIRECTPROC __glewDispatchComputeIndirect; - -GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC __glewDispatchComputeGroupSizeARB; - -GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData; - -GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAPROC __glewCopyImageSubData; - -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB; -GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB; - -GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPROC __glewBindTextureUnit; -GLEW_FUN_EXPORT PFNGLBLITNAMEDFRAMEBUFFERPROC __glewBlitNamedFramebuffer; -GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC __glewCheckNamedFramebufferStatus; -GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERDATAPROC __glewClearNamedBufferData; -GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERSUBDATAPROC __glewClearNamedBufferSubData; -GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERFIPROC __glewClearNamedFramebufferfi; -GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERFVPROC __glewClearNamedFramebufferfv; -GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERIVPROC __glewClearNamedFramebufferiv; -GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC __glewClearNamedFramebufferuiv; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC __glewCompressedTextureSubImage1D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC __glewCompressedTextureSubImage2D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC __glewCompressedTextureSubImage3D; -GLEW_FUN_EXPORT PFNGLCOPYNAMEDBUFFERSUBDATAPROC __glewCopyNamedBufferSubData; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DPROC __glewCopyTextureSubImage1D; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DPROC __glewCopyTextureSubImage2D; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DPROC __glewCopyTextureSubImage3D; -GLEW_FUN_EXPORT PFNGLCREATEBUFFERSPROC __glewCreateBuffers; -GLEW_FUN_EXPORT PFNGLCREATEFRAMEBUFFERSPROC __glewCreateFramebuffers; -GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPIPELINESPROC __glewCreateProgramPipelines; -GLEW_FUN_EXPORT PFNGLCREATEQUERIESPROC __glewCreateQueries; -GLEW_FUN_EXPORT PFNGLCREATERENDERBUFFERSPROC __glewCreateRenderbuffers; -GLEW_FUN_EXPORT PFNGLCREATESAMPLERSPROC __glewCreateSamplers; -GLEW_FUN_EXPORT PFNGLCREATETEXTURESPROC __glewCreateTextures; -GLEW_FUN_EXPORT PFNGLCREATETRANSFORMFEEDBACKSPROC __glewCreateTransformFeedbacks; -GLEW_FUN_EXPORT PFNGLCREATEVERTEXARRAYSPROC __glewCreateVertexArrays; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBPROC __glewDisableVertexArrayAttrib; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBPROC __glewEnableVertexArrayAttrib; -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC __glewFlushMappedNamedBufferRange; -GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPPROC __glewGenerateTextureMipmap; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC __glewGetCompressedTextureImage; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERI64VPROC __glewGetNamedBufferParameteri64v; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVPROC __glewGetNamedBufferParameteriv; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVPROC __glewGetNamedBufferPointerv; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAPROC __glewGetNamedBufferSubData; -GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetNamedFramebufferAttachmentParameteriv; -GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC __glewGetNamedFramebufferParameteriv; -GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC __glewGetNamedRenderbufferParameteriv; -GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTI64VPROC __glewGetQueryBufferObjecti64v; -GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTIVPROC __glewGetQueryBufferObjectiv; -GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTUI64VPROC __glewGetQueryBufferObjectui64v; -GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTUIVPROC __glewGetQueryBufferObjectuiv; -GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEPROC __glewGetTextureImage; -GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVPROC __glewGetTextureLevelParameterfv; -GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVPROC __glewGetTextureLevelParameteriv; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVPROC __glewGetTextureParameterIiv; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVPROC __glewGetTextureParameterIuiv; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVPROC __glewGetTextureParameterfv; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVPROC __glewGetTextureParameteriv; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKI64_VPROC __glewGetTransformFeedbacki64_v; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKI_VPROC __glewGetTransformFeedbacki_v; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKIVPROC __glewGetTransformFeedbackiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINDEXED64IVPROC __glewGetVertexArrayIndexed64iv; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINDEXEDIVPROC __glewGetVertexArrayIndexediv; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYIVPROC __glewGetVertexArrayiv; -GLEW_FUN_EXPORT PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC __glewInvalidateNamedFramebufferData; -GLEW_FUN_EXPORT PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC __glewInvalidateNamedFramebufferSubData; -GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERPROC __glewMapNamedBuffer; -GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEPROC __glewMapNamedBufferRange; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAPROC __glewNamedBufferData; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEPROC __glewNamedBufferStorage; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAPROC __glewNamedBufferSubData; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC __glewNamedFramebufferDrawBuffer; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC __glewNamedFramebufferDrawBuffers; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC __glewNamedFramebufferParameteri; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC __glewNamedFramebufferReadBuffer; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC __glewNamedFramebufferRenderbuffer; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREPROC __glewNamedFramebufferTexture; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC __glewNamedFramebufferTextureLayer; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEPROC __glewNamedRenderbufferStorage; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewNamedRenderbufferStorageMultisample; -GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERPROC __glewTextureBuffer; -GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERRANGEPROC __glewTextureBufferRange; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVPROC __glewTextureParameterIiv; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVPROC __glewTextureParameterIuiv; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFPROC __glewTextureParameterf; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVPROC __glewTextureParameterfv; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIPROC __glewTextureParameteri; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVPROC __glewTextureParameteriv; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DPROC __glewTextureStorage1D; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DPROC __glewTextureStorage2D; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC __glewTextureStorage2DMultisample; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DPROC __glewTextureStorage3D; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC __glewTextureStorage3DMultisample; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DPROC __glewTextureSubImage1D; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DPROC __glewTextureSubImage2D; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DPROC __glewTextureSubImage3D; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC __glewTransformFeedbackBufferBase; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC __glewTransformFeedbackBufferRange; -GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFERPROC __glewUnmapNamedBuffer; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBBINDINGPROC __glewVertexArrayAttribBinding; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBFORMATPROC __glewVertexArrayAttribFormat; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBIFORMATPROC __glewVertexArrayAttribIFormat; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBLFORMATPROC __glewVertexArrayAttribLFormat; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYBINDINGDIVISORPROC __glewVertexArrayBindingDivisor; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYELEMENTBUFFERPROC __glewVertexArrayElementBuffer; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXBUFFERPROC __glewVertexArrayVertexBuffer; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXBUFFERSPROC __glewVertexArrayVertexBuffers; - -GLEW_FUN_EXPORT PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB; -GLEW_FUN_EXPORT PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB; - -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPARAMETERIPROC __glewFramebufferParameteri; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVPROC __glewGetFramebufferParameteriv; -GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC __glewGetNamedFramebufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC __glewNamedFramebufferParameteriEXT; - -GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer; -GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer; -GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer; -GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus; -GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers; -GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer; -GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers; -GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers; -GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv; -GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv; -GLEW_FUN_EXPORT PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer; -GLEW_FUN_EXPORT PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer; -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage; -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB; - -GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary; -GLEW_FUN_EXPORT PFNGLPROGRAMBINARYPROC __glewProgramBinary; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri; - -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC __glewGetCompressedTextureSubImage; -GLEW_FUN_EXPORT PFNGLGETTEXTURESUBIMAGEPROC __glewGetTextureSubImage; - -GLEW_FUN_EXPORT PFNGLGETUNIFORMDVPROC __glewGetUniformdv; -GLEW_FUN_EXPORT PFNGLUNIFORM1DPROC __glewUniform1d; -GLEW_FUN_EXPORT PFNGLUNIFORM1DVPROC __glewUniform1dv; -GLEW_FUN_EXPORT PFNGLUNIFORM2DPROC __glewUniform2d; -GLEW_FUN_EXPORT PFNGLUNIFORM2DVPROC __glewUniform2dv; -GLEW_FUN_EXPORT PFNGLUNIFORM3DPROC __glewUniform3d; -GLEW_FUN_EXPORT PFNGLUNIFORM3DVPROC __glewUniform3dv; -GLEW_FUN_EXPORT PFNGLUNIFORM4DPROC __glewUniform4d; -GLEW_FUN_EXPORT PFNGLUNIFORM4DVPROC __glewUniform4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv; - -GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEPROC __glewColorSubTable; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPROC __glewColorTable; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv; -GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable; -GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPROC __glewGetColorTable; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPROC __glewGetHistogram; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv; -GLEW_FUN_EXPORT PFNGLGETMINMAXPROC __glewGetMinmax; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv; -GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter; -GLEW_FUN_EXPORT PFNGLHISTOGRAMPROC __glewHistogram; -GLEW_FUN_EXPORT PFNGLMINMAXPROC __glewMinmax; -GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMPROC __glewResetHistogram; -GLEW_FUN_EXPORT PFNGLRESETMINMAXPROC __glewResetMinmax; -GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC __glewMultiDrawArraysIndirectCountARB; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC __glewMultiDrawElementsIndirectCountARB; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB; - -GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATIVPROC __glewGetInternalformativ; - -GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATI64VPROC __glewGetInternalformati64v; - -GLEW_FUN_EXPORT PFNGLINVALIDATEBUFFERDATAPROC __glewInvalidateBufferData; -GLEW_FUN_EXPORT PFNGLINVALIDATEBUFFERSUBDATAPROC __glewInvalidateBufferSubData; -GLEW_FUN_EXPORT PFNGLINVALIDATEFRAMEBUFFERPROC __glewInvalidateFramebuffer; -GLEW_FUN_EXPORT PFNGLINVALIDATESUBFRAMEBUFFERPROC __glewInvalidateSubFramebuffer; -GLEW_FUN_EXPORT PFNGLINVALIDATETEXIMAGEPROC __glewInvalidateTexImage; -GLEW_FUN_EXPORT PFNGLINVALIDATETEXSUBIMAGEPROC __glewInvalidateTexSubImage; - -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange; -GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange; - -GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXUIVARBPROC __glewMatrixIndexuivARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXUSVARBPROC __glewMatrixIndexusvARB; - -GLEW_FUN_EXPORT PFNGLBINDBUFFERSBASEPROC __glewBindBuffersBase; -GLEW_FUN_EXPORT PFNGLBINDBUFFERSRANGEPROC __glewBindBuffersRange; -GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTURESPROC __glewBindImageTextures; -GLEW_FUN_EXPORT PFNGLBINDSAMPLERSPROC __glewBindSamplers; -GLEW_FUN_EXPORT PFNGLBINDTEXTURESPROC __glewBindTextures; -GLEW_FUN_EXPORT PFNGLBINDVERTEXBUFFERSPROC __glewBindVertexBuffers; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTPROC __glewMultiDrawArraysIndirect; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTPROC __glewMultiDrawElementsIndirect; - -GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEARBPROC __glewSampleCoverageARB; - -GLEW_FUN_EXPORT PFNGLACTIVETEXTUREARBPROC __glewActiveTextureARB; -GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREARBPROC __glewClientActiveTextureARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DARBPROC __glewMultiTexCoord1dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVARBPROC __glewMultiTexCoord1dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FARBPROC __glewMultiTexCoord1fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVARBPROC __glewMultiTexCoord1fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IARBPROC __glewMultiTexCoord1iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVARBPROC __glewMultiTexCoord1ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SARBPROC __glewMultiTexCoord1sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVARBPROC __glewMultiTexCoord1svARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DARBPROC __glewMultiTexCoord2dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVARBPROC __glewMultiTexCoord2dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FARBPROC __glewMultiTexCoord2fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVARBPROC __glewMultiTexCoord2fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IARBPROC __glewMultiTexCoord2iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVARBPROC __glewMultiTexCoord2ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SARBPROC __glewMultiTexCoord2sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVARBPROC __glewMultiTexCoord2svARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DARBPROC __glewMultiTexCoord3dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVARBPROC __glewMultiTexCoord3dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FARBPROC __glewMultiTexCoord3fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVARBPROC __glewMultiTexCoord3fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IARBPROC __glewMultiTexCoord3iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVARBPROC __glewMultiTexCoord3ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SARBPROC __glewMultiTexCoord3sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVARBPROC __glewMultiTexCoord3svARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DARBPROC __glewMultiTexCoord4dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVARBPROC __glewMultiTexCoord4dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FARBPROC __glewMultiTexCoord4fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVARBPROC __glewMultiTexCoord4fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IARBPROC __glewMultiTexCoord4iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVARBPROC __glewMultiTexCoord4ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SARBPROC __glewMultiTexCoord4sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVARBPROC __glewMultiTexCoord4svARB; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYARBPROC __glewBeginQueryARB; -GLEW_FUN_EXPORT PFNGLDELETEQUERIESARBPROC __glewDeleteQueriesARB; -GLEW_FUN_EXPORT PFNGLENDQUERYARBPROC __glewEndQueryARB; -GLEW_FUN_EXPORT PFNGLGENQUERIESARBPROC __glewGenQueriesARB; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVARBPROC __glewGetQueryObjectivARB; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVARBPROC __glewGetQueryObjectuivARB; -GLEW_FUN_EXPORT PFNGLGETQUERYIVARBPROC __glewGetQueryivARB; -GLEW_FUN_EXPORT PFNGLISQUERYARBPROC __glewIsQueryARB; - -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB; - -GLEW_FUN_EXPORT PFNGLGETPROGRAMINTERFACEIVPROC __glewGetProgramInterfaceiv; -GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEINDEXPROC __glewGetProgramResourceIndex; -GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONPROC __glewGetProgramResourceLocation; -GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC __glewGetProgramResourceLocationIndex; -GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCENAMEPROC __glewGetProgramResourceName; -GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEIVPROC __glewGetProgramResourceiv; - -GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex; - -GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSARBPROC __glewGetGraphicsResetStatusARB; -GLEW_FUN_EXPORT PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB; -GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB; -GLEW_FUN_EXPORT PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB; -GLEW_FUN_EXPORT PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB; -GLEW_FUN_EXPORT PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB; -GLEW_FUN_EXPORT PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB; -GLEW_FUN_EXPORT PFNGLGETNMAPIVARBPROC __glewGetnMapivARB; -GLEW_FUN_EXPORT PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB; -GLEW_FUN_EXPORT PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB; -GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB; -GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB; -GLEW_FUN_EXPORT PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB; -GLEW_FUN_EXPORT PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB; -GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB; -GLEW_FUN_EXPORT PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB; - -GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB; - -GLEW_FUN_EXPORT PFNGLBINDSAMPLERPROC __glewBindSampler; -GLEW_FUN_EXPORT PFNGLDELETESAMPLERSPROC __glewDeleteSamplers; -GLEW_FUN_EXPORT PFNGLGENSAMPLERSPROC __glewGenSamplers; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv; -GLEW_FUN_EXPORT PFNGLISSAMPLERPROC __glewIsSampler; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv; - -GLEW_FUN_EXPORT PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram; -GLEW_FUN_EXPORT PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline; -GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines; -GLEW_FUN_EXPORT PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv; -GLEW_FUN_EXPORT PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv; -GLEW_FUN_EXPORT PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages; -GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline; - -GLEW_FUN_EXPORT PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC __glewGetActiveAtomicCounterBufferiv; - -GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREPROC __glewBindImageTexture; -GLEW_FUN_EXPORT PFNGLMEMORYBARRIERPROC __glewMemoryBarrier; - -GLEW_FUN_EXPORT PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB; -GLEW_FUN_EXPORT PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB; -GLEW_FUN_EXPORT PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB; -GLEW_FUN_EXPORT PFNGLCREATESHADEROBJECTARBPROC __glewCreateShaderObjectARB; -GLEW_FUN_EXPORT PFNGLDELETEOBJECTARBPROC __glewDeleteObjectARB; -GLEW_FUN_EXPORT PFNGLDETACHOBJECTARBPROC __glewDetachObjectARB; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMARBPROC __glewGetActiveUniformARB; -GLEW_FUN_EXPORT PFNGLGETATTACHEDOBJECTSARBPROC __glewGetAttachedObjectsARB; -GLEW_FUN_EXPORT PFNGLGETHANDLEARBPROC __glewGetHandleARB; -GLEW_FUN_EXPORT PFNGLGETINFOLOGARBPROC __glewGetInfoLogARB; -GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERFVARBPROC __glewGetObjectParameterfvARB; -GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVARBPROC __glewGetObjectParameterivARB; -GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEARBPROC __glewGetShaderSourceARB; -GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONARBPROC __glewGetUniformLocationARB; -GLEW_FUN_EXPORT PFNGLGETUNIFORMFVARBPROC __glewGetUniformfvARB; -GLEW_FUN_EXPORT PFNGLGETUNIFORMIVARBPROC __glewGetUniformivARB; -GLEW_FUN_EXPORT PFNGLLINKPROGRAMARBPROC __glewLinkProgramARB; -GLEW_FUN_EXPORT PFNGLSHADERSOURCEARBPROC __glewShaderSourceARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1FARBPROC __glewUniform1fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1FVARBPROC __glewUniform1fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1IARBPROC __glewUniform1iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1IVARBPROC __glewUniform1ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2FARBPROC __glewUniform2fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2FVARBPROC __glewUniform2fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2IARBPROC __glewUniform2iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2IVARBPROC __glewUniform2ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3FARBPROC __glewUniform3fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3FVARBPROC __glewUniform3fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3IARBPROC __glewUniform3iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3IVARBPROC __glewUniform3ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4FARBPROC __glewUniform4fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4FVARBPROC __glewUniform4fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4IARBPROC __glewUniform4iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4IVARBPROC __glewUniform4ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVARBPROC __glewUniformMatrix2fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVARBPROC __glewUniformMatrix3fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB; -GLEW_FUN_EXPORT PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB; -GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB; - -GLEW_FUN_EXPORT PFNGLSHADERSTORAGEBLOCKBINDINGPROC __glewShaderStorageBlockBinding; - -GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName; -GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName; -GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv; -GLEW_FUN_EXPORT PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv; -GLEW_FUN_EXPORT PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex; -GLEW_FUN_EXPORT PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation; -GLEW_FUN_EXPORT PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv; -GLEW_FUN_EXPORT PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv; - -GLEW_FUN_EXPORT PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB; -GLEW_FUN_EXPORT PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB; -GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB; -GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB; -GLEW_FUN_EXPORT PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB; -GLEW_FUN_EXPORT PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB; - -GLEW_FUN_EXPORT PFNGLBUFFERPAGECOMMITMENTARBPROC __glewBufferPageCommitmentARB; - -GLEW_FUN_EXPORT PFNGLTEXPAGECOMMITMENTARBPROC __glewTexPageCommitmentARB; -GLEW_FUN_EXPORT PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT; - -GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync; -GLEW_FUN_EXPORT PFNGLDELETESYNCPROC __glewDeleteSync; -GLEW_FUN_EXPORT PFNGLFENCESYNCPROC __glewFenceSync; -GLEW_FUN_EXPORT PFNGLGETINTEGER64VPROC __glewGetInteger64v; -GLEW_FUN_EXPORT PFNGLGETSYNCIVPROC __glewGetSynciv; -GLEW_FUN_EXPORT PFNGLISSYNCPROC __glewIsSync; -GLEW_FUN_EXPORT PFNGLWAITSYNCPROC __glewWaitSync; - -GLEW_FUN_EXPORT PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv; -GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIPROC __glewPatchParameteri; - -GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERPROC __glewTextureBarrier; - -GLEW_FUN_EXPORT PFNGLTEXBUFFERARBPROC __glewTexBufferARB; - -GLEW_FUN_EXPORT PFNGLTEXBUFFERRANGEPROC __glewTexBufferRange; -GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERRANGEEXTPROC __glewTextureBufferRangeEXT; - -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC __glewCompressedTexSubImage1DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB; - -GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv; -GLEW_FUN_EXPORT PFNGLSAMPLEMASKIPROC __glewSampleMaski; -GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample; -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample; - -GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DPROC __glewTexStorage1D; -GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DPROC __glewTexStorage2D; -GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DPROC __glewTexStorage3D; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT; - -GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DMULTISAMPLEPROC __glewTexStorage2DMultisample; -GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC __glewTextureStorage2DMultisampleEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC __glewTextureStorage3DMultisampleEXT; - -GLEW_FUN_EXPORT PFNGLTEXTUREVIEWPROC __glewTextureView; - -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v; -GLEW_FUN_EXPORT PFNGLQUERYCOUNTERPROC __glewQueryCounter; - -GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback; -GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback; -GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks; -GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback; -GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback; -GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream; -GLEW_FUN_EXPORT PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed; -GLEW_FUN_EXPORT PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv; - -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC __glewDrawTransformFeedbackInstanced; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC __glewDrawTransformFeedbackStreamInstanced; - -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB; -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB; - -GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEPROC __glewBindBufferBase; -GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv; -GLEW_FUN_EXPORT PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v; -GLEW_FUN_EXPORT PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex; -GLEW_FUN_EXPORT PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices; -GLEW_FUN_EXPORT PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding; - -GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray; -GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays; -GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays; -GLEW_FUN_EXPORT PFNGLISVERTEXARRAYPROC __glewIsVertexArray; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer; - -GLEW_FUN_EXPORT PFNGLBINDVERTEXBUFFERPROC __glewBindVertexBuffer; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC __glewVertexArrayBindVertexBufferEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC __glewVertexArrayVertexAttribBindingEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC __glewVertexArrayVertexAttribFormatEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC __glewVertexArrayVertexAttribIFormatEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC __glewVertexArrayVertexAttribLFormatEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC __glewVertexArrayVertexBindingDivisorEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBBINDINGPROC __glewVertexAttribBinding; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATPROC __glewVertexAttribFormat; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATPROC __glewVertexAttribIFormat; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATPROC __glewVertexAttribLFormat; -GLEW_FUN_EXPORT PFNGLVERTEXBINDINGDIVISORPROC __glewVertexBindingDivisor; - -GLEW_FUN_EXPORT PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB; -GLEW_FUN_EXPORT PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB; -GLEW_FUN_EXPORT PFNGLWEIGHTBVARBPROC __glewWeightbvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTDVARBPROC __glewWeightdvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTFVARBPROC __glewWeightfvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTIVARBPROC __glewWeightivARB; -GLEW_FUN_EXPORT PFNGLWEIGHTSVARBPROC __glewWeightsvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTUBVARBPROC __glewWeightubvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTUIVARBPROC __glewWeightuivARB; -GLEW_FUN_EXPORT PFNGLWEIGHTUSVARBPROC __glewWeightusvARB; - -GLEW_FUN_EXPORT PFNGLBINDBUFFERARBPROC __glewBindBufferARB; -GLEW_FUN_EXPORT PFNGLBUFFERDATAARBPROC __glewBufferDataARB; -GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAARBPROC __glewBufferSubDataARB; -GLEW_FUN_EXPORT PFNGLDELETEBUFFERSARBPROC __glewDeleteBuffersARB; -GLEW_FUN_EXPORT PFNGLGENBUFFERSARBPROC __glewGenBuffersARB; -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVARBPROC __glewGetBufferParameterivARB; -GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVARBPROC __glewGetBufferPointervARB; -GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAARBPROC __glewGetBufferSubDataARB; -GLEW_FUN_EXPORT PFNGLISBUFFERARBPROC __glewIsBufferARB; -GLEW_FUN_EXPORT PFNGLMAPBUFFERARBPROC __glewMapBufferARB; -GLEW_FUN_EXPORT PFNGLUNMAPBUFFERARBPROC __glewUnmapBufferARB; - -GLEW_FUN_EXPORT PFNGLBINDPROGRAMARBPROC __glewBindProgramARB; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSARBPROC __glewDeleteProgramsARB; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYARBPROC __glewDisableVertexAttribArrayARB; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYARBPROC __glewEnableVertexAttribArrayARB; -GLEW_FUN_EXPORT PFNGLGENPROGRAMSARBPROC __glewGenProgramsARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERDVARBPROC __glewGetProgramEnvParameterdvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERFVARBPROC __glewGetProgramEnvParameterfvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC __glewGetProgramLocalParameterdvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC __glewGetProgramLocalParameterfvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGARBPROC __glewGetProgramStringARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMIVARBPROC __glewGetProgramivARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVARBPROC __glewGetVertexAttribPointervARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVARBPROC __glewGetVertexAttribdvARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVARBPROC __glewGetVertexAttribfvARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVARBPROC __glewGetVertexAttribivARB; -GLEW_FUN_EXPORT PFNGLISPROGRAMARBPROC __glewIsProgramARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DARBPROC __glewProgramEnvParameter4dARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DVARBPROC __glewProgramEnvParameter4dvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FARBPROC __glewProgramEnvParameter4fARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FVARBPROC __glewProgramEnvParameter4fvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DARBPROC __glewProgramLocalParameter4dARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DVARBPROC __glewProgramLocalParameter4dvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FARBPROC __glewProgramLocalParameter4fARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FVARBPROC __glewProgramLocalParameter4fvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMSTRINGARBPROC __glewProgramStringARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DARBPROC __glewVertexAttrib1dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVARBPROC __glewVertexAttrib1dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FARBPROC __glewVertexAttrib1fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVARBPROC __glewVertexAttrib1fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SARBPROC __glewVertexAttrib1sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVARBPROC __glewVertexAttrib1svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DARBPROC __glewVertexAttrib2dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVARBPROC __glewVertexAttrib2dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FARBPROC __glewVertexAttrib2fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVARBPROC __glewVertexAttrib2fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SARBPROC __glewVertexAttrib2sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVARBPROC __glewVertexAttrib2svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DARBPROC __glewVertexAttrib3dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVARBPROC __glewVertexAttrib3dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FARBPROC __glewVertexAttrib3fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVARBPROC __glewVertexAttrib3fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SARBPROC __glewVertexAttrib3sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVARBPROC __glewVertexAttrib3svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVARBPROC __glewVertexAttrib4NbvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVARBPROC __glewVertexAttrib4NivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVARBPROC __glewVertexAttrib4NsvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBARBPROC __glewVertexAttrib4NubARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVARBPROC __glewVertexAttrib4NubvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVARBPROC __glewVertexAttrib4NuivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVARBPROC __glewVertexAttrib4NusvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVARBPROC __glewVertexAttrib4bvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DARBPROC __glewVertexAttrib4dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVARBPROC __glewVertexAttrib4dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FARBPROC __glewVertexAttrib4fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVARBPROC __glewVertexAttrib4fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVARBPROC __glewVertexAttrib4ivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SARBPROC __glewVertexAttrib4sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVARBPROC __glewVertexAttrib4svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVARBPROC __glewVertexAttrib4ubvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVARBPROC __glewVertexAttrib4uivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVARBPROC __glewVertexAttrib4usvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERARBPROC __glewVertexAttribPointerARB; - -GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB; -GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB; -GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB; - -GLEW_FUN_EXPORT PFNGLCOLORP3UIPROC __glewColorP3ui; -GLEW_FUN_EXPORT PFNGLCOLORP3UIVPROC __glewColorP3uiv; -GLEW_FUN_EXPORT PFNGLCOLORP4UIPROC __glewColorP4ui; -GLEW_FUN_EXPORT PFNGLCOLORP4UIVPROC __glewColorP4uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv; -GLEW_FUN_EXPORT PFNGLNORMALP3UIPROC __glewNormalP3ui; -GLEW_FUN_EXPORT PFNGLNORMALP3UIVPROC __glewNormalP3uiv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXP2UIPROC __glewVertexP2ui; -GLEW_FUN_EXPORT PFNGLVERTEXP2UIVPROC __glewVertexP2uiv; -GLEW_FUN_EXPORT PFNGLVERTEXP3UIPROC __glewVertexP3ui; -GLEW_FUN_EXPORT PFNGLVERTEXP3UIVPROC __glewVertexP3uiv; -GLEW_FUN_EXPORT PFNGLVERTEXP4UIPROC __glewVertexP4ui; -GLEW_FUN_EXPORT PFNGLVERTEXP4UIVPROC __glewVertexP4uiv; - -GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed; -GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v; -GLEW_FUN_EXPORT PFNGLGETFLOATI_VPROC __glewGetFloati_v; -GLEW_FUN_EXPORT PFNGLSCISSORARRAYVPROC __glewScissorArrayv; -GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDPROC __glewScissorIndexed; -GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv; -GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv; -GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf; -GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv; - -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVARBPROC __glewWindowPos2fvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IARBPROC __glewWindowPos2iARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVARBPROC __glewWindowPos2ivARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SARBPROC __glewWindowPos2sARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVARBPROC __glewWindowPos2svARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DARBPROC __glewWindowPos3dARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVARBPROC __glewWindowPos3dvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FARBPROC __glewWindowPos3fARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVARBPROC __glewWindowPos3fvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IARBPROC __glewWindowPos3iARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVARBPROC __glewWindowPos3ivARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SARBPROC __glewWindowPos3sARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVARBPROC __glewWindowPos3svARB; - -GLEW_FUN_EXPORT PFNGLDRAWBUFFERSATIPROC __glewDrawBuffersATI; - -GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYATIPROC __glewDrawElementArrayATI; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYATIPROC __glewDrawRangeElementArrayATI; -GLEW_FUN_EXPORT PFNGLELEMENTPOINTERATIPROC __glewElementPointerATI; - -GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERFVATIPROC __glewGetTexBumpParameterfvATI; -GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERIVATIPROC __glewGetTexBumpParameterivATI; -GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERFVATIPROC __glewTexBumpParameterfvATI; -GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERIVATIPROC __glewTexBumpParameterivATI; - -GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP1ATIPROC __glewAlphaFragmentOp1ATI; -GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP2ATIPROC __glewAlphaFragmentOp2ATI; -GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP3ATIPROC __glewAlphaFragmentOp3ATI; -GLEW_FUN_EXPORT PFNGLBEGINFRAGMENTSHADERATIPROC __glewBeginFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLBINDFRAGMENTSHADERATIPROC __glewBindFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP1ATIPROC __glewColorFragmentOp1ATI; -GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP2ATIPROC __glewColorFragmentOp2ATI; -GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP3ATIPROC __glewColorFragmentOp3ATI; -GLEW_FUN_EXPORT PFNGLDELETEFRAGMENTSHADERATIPROC __glewDeleteFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLENDFRAGMENTSHADERATIPROC __glewEndFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLGENFRAGMENTSHADERSATIPROC __glewGenFragmentShadersATI; -GLEW_FUN_EXPORT PFNGLPASSTEXCOORDATIPROC __glewPassTexCoordATI; -GLEW_FUN_EXPORT PFNGLSAMPLEMAPATIPROC __glewSampleMapATI; -GLEW_FUN_EXPORT PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderConstantATI; - -GLEW_FUN_EXPORT PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI; -GLEW_FUN_EXPORT PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI; - -GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glewPNTrianglesfATI; -GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glewPNTrianglesiATI; - -GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI; -GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI; - -GLEW_FUN_EXPORT PFNGLARRAYOBJECTATIPROC __glewArrayObjectATI; -GLEW_FUN_EXPORT PFNGLFREEOBJECTBUFFERATIPROC __glewFreeObjectBufferATI; -GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTFVATIPROC __glewGetArrayObjectfvATI; -GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTIVATIPROC __glewGetArrayObjectivATI; -GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERFVATIPROC __glewGetObjectBufferfvATI; -GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERIVATIPROC __glewGetObjectBufferivATI; -GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTFVATIPROC __glewGetVariantArrayObjectfvATI; -GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTIVATIPROC __glewGetVariantArrayObjectivATI; -GLEW_FUN_EXPORT PFNGLISOBJECTBUFFERATIPROC __glewIsObjectBufferATI; -GLEW_FUN_EXPORT PFNGLNEWOBJECTBUFFERATIPROC __glewNewObjectBufferATI; -GLEW_FUN_EXPORT PFNGLUPDATEOBJECTBUFFERATIPROC __glewUpdateObjectBufferATI; -GLEW_FUN_EXPORT PFNGLVARIANTARRAYOBJECTATIPROC __glewVariantArrayObjectATI; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC __glewGetVertexAttribArrayObjectfvATI; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC __glewGetVertexAttribArrayObjectivATI; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBARRAYOBJECTATIPROC __glewVertexAttribArrayObjectATI; - -GLEW_FUN_EXPORT PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC __glewClientActiveVertexStreamATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BATIPROC __glewNormalStream3bATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BVATIPROC __glewNormalStream3bvATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DATIPROC __glewNormalStream3dATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DVATIPROC __glewNormalStream3dvATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FATIPROC __glewNormalStream3fATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FVATIPROC __glewNormalStream3fvATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IATIPROC __glewNormalStream3iATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IVATIPROC __glewNormalStream3ivATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SATIPROC __glewNormalStream3sATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SVATIPROC __glewNormalStream3svATI; -GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVFATIPROC __glewVertexBlendEnvfATI; -GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVIATIPROC __glewVertexBlendEnviATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1DATIPROC __glewVertexStream1dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1DVATIPROC __glewVertexStream1dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1FATIPROC __glewVertexStream1fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1FVATIPROC __glewVertexStream1fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1IATIPROC __glewVertexStream1iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1IVATIPROC __glewVertexStream1ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1SATIPROC __glewVertexStream1sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1SVATIPROC __glewVertexStream1svATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DATIPROC __glewVertexStream2dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DVATIPROC __glewVertexStream2dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FATIPROC __glewVertexStream2fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FVATIPROC __glewVertexStream2fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IATIPROC __glewVertexStream2iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IVATIPROC __glewVertexStream2ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SATIPROC __glewVertexStream2sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SVATIPROC __glewVertexStream2svATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DATIPROC __glewVertexStream3dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DVATIPROC __glewVertexStream3dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FATIPROC __glewVertexStream3fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FVATIPROC __glewVertexStream3fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IATIPROC __glewVertexStream3iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IVATIPROC __glewVertexStream3ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SATIPROC __glewVertexStream3sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SVATIPROC __glewVertexStream3svATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DATIPROC __glewVertexStream4dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DVATIPROC __glewVertexStream4dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FATIPROC __glewVertexStream4fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FVATIPROC __glewVertexStream4fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IATIPROC __glewVertexStream4iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI; - -GLEW_FUN_EXPORT PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT; -GLEW_FUN_EXPORT PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT; -GLEW_FUN_EXPORT PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT; - -GLEW_FUN_EXPORT PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT; - -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT; - -GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT; -GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT; - -GLEW_FUN_EXPORT PFNGLLOCKARRAYSEXTPROC __glewLockArraysEXT; -GLEW_FUN_EXPORT PFNGLUNLOCKARRAYSEXTPROC __glewUnlockArraysEXT; - -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DEXTPROC __glewConvolutionFilter1DEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DEXTPROC __glewConvolutionFilter2DEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFEXTPROC __glewConvolutionParameterfEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVEXTPROC __glewConvolutionParameterfvEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIEXTPROC __glewConvolutionParameteriEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVEXTPROC __glewConvolutionParameterivEXT; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC __glewCopyConvolutionFilter1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC __glewCopyConvolutionFilter2DEXT; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTEREXTPROC __glewGetConvolutionFilterEXT; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC __glewGetConvolutionParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC __glewGetConvolutionParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTEREXTPROC __glewGetSeparableFilterEXT; -GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT; - -GLEW_FUN_EXPORT PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT; -GLEW_FUN_EXPORT PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT; - -GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE2DEXTPROC __glewCopyTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DEXTPROC __glewCopyTexSubImage3DEXT; - -GLEW_FUN_EXPORT PFNGLCULLPARAMETERDVEXTPROC __glewCullParameterdvEXT; -GLEW_FUN_EXPORT PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT; - -GLEW_FUN_EXPORT PFNGLGETOBJECTLABELEXTPROC __glewGetObjectLabelEXT; -GLEW_FUN_EXPORT PFNGLLABELOBJECTEXTPROC __glewLabelObjectEXT; - -GLEW_FUN_EXPORT PFNGLINSERTEVENTMARKEREXTPROC __glewInsertEventMarkerEXT; -GLEW_FUN_EXPORT PFNGLPOPGROUPMARKEREXTPROC __glewPopGroupMarkerEXT; -GLEW_FUN_EXPORT PFNGLPUSHGROUPMARKEREXTPROC __glewPushGroupMarkerEXT; - -GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT; - -GLEW_FUN_EXPORT PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT; -GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT; -GLEW_FUN_EXPORT PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT; -GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT; -GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT; -GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT; -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT; -GLEW_FUN_EXPORT PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT; -GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT; -GLEW_FUN_EXPORT PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT; -GLEW_FUN_EXPORT PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT; -GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT; -GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT; -GLEW_FUN_EXPORT PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT; -GLEW_FUN_EXPORT PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT; -GLEW_FUN_EXPORT PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT; -GLEW_FUN_EXPORT PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT; -GLEW_FUN_EXPORT PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT; -GLEW_FUN_EXPORT PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT; -GLEW_FUN_EXPORT PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT; -GLEW_FUN_EXPORT PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT; -GLEW_FUN_EXPORT PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC __glewVertexArrayVertexAttribDivisorEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT; - -GLEW_FUN_EXPORT PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT; -GLEW_FUN_EXPORT PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT; -GLEW_FUN_EXPORT PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT; -GLEW_FUN_EXPORT PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT; -GLEW_FUN_EXPORT PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT; - -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT; - -GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDFEXTPROC __glewFogCoordfEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDFVEXTPROC __glewFogCoordfvEXT; - -GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALEXTPROC __glewFragmentColorMaterialEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFEXTPROC __glewFragmentLightModelfEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVEXTPROC __glewFragmentLightModelfvEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIEXTPROC __glewFragmentLightModeliEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVEXTPROC __glewFragmentLightModelivEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFEXTPROC __glewFragmentLightfEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVEXTPROC __glewFragmentLightfvEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIEXTPROC __glewFragmentLightiEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVEXTPROC __glewFragmentLightivEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFEXTPROC __glewFragmentMaterialfEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVEXTPROC __glewFragmentMaterialfvEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIEXTPROC __glewFragmentMaterialiEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVEXTPROC __glewFragmentMaterialivEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVEXTPROC __glewGetFragmentLightfvEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVEXTPROC __glewGetFragmentLightivEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVEXTPROC __glewGetFragmentMaterialfvEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVEXTPROC __glewGetFragmentMaterialivEXT; -GLEW_FUN_EXPORT PFNGLLIGHTENVIEXTPROC __glewLightEnviEXT; - -GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFEREXTPROC __glewBlitFramebufferEXT; - -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewRenderbufferStorageMultisampleEXT; - -GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEREXTPROC __glewBindFramebufferEXT; -GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEREXTPROC __glewBindRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC __glewCheckFramebufferStatusEXT; -GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSEXTPROC __glewDeleteFramebuffersEXT; -GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSEXTPROC __glewDeleteRenderbuffersEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC __glewFramebufferRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DEXTPROC __glewFramebufferTexture1DEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DEXTPROC __glewFramebufferTexture2DEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DEXTPROC __glewFramebufferTexture3DEXT; -GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSEXTPROC __glewGenFramebuffersEXT; -GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSEXTPROC __glewGenRenderbuffersEXT; -GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPEXTPROC __glewGenerateMipmapEXT; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetFramebufferAttachmentParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC __glewGetRenderbufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEREXTPROC __glewIsFramebufferEXT; -GLEW_FUN_EXPORT PFNGLISRENDERBUFFEREXTPROC __glewIsRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT; - -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC __glewProgramLocalParameters4fvEXT; - -GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONEXTPROC __glewBindFragDataLocationEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONEXTPROC __glewGetFragDataLocationEXT; -GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVEXTPROC __glewGetUniformuivEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVEXTPROC __glewGetVertexAttribIivEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVEXTPROC __glewGetVertexAttribIuivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIEXTPROC __glewUniform1uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIVEXTPROC __glewUniform1uivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIEXTPROC __glewUniform2uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIVEXTPROC __glewUniform2uivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIEXTPROC __glewUniform3uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIVEXTPROC __glewUniform3uivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIEXTPROC __glewUniform4uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIVEXTPROC __glewUniform4uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IEXTPROC __glewVertexAttribI1iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVEXTPROC __glewVertexAttribI1ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIEXTPROC __glewVertexAttribI1uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVEXTPROC __glewVertexAttribI1uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IEXTPROC __glewVertexAttribI2iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVEXTPROC __glewVertexAttribI2ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIEXTPROC __glewVertexAttribI2uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVEXTPROC __glewVertexAttribI2uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IEXTPROC __glewVertexAttribI3iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVEXTPROC __glewVertexAttribI3ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIEXTPROC __glewVertexAttribI3uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVEXTPROC __glewVertexAttribI3uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVEXTPROC __glewVertexAttribI4bvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IEXTPROC __glewVertexAttribI4iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVEXTPROC __glewVertexAttribI4ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVEXTPROC __glewVertexAttribI4svEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVEXTPROC __glewVertexAttribI4ubvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIEXTPROC __glewVertexAttribI4uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVEXTPROC __glewVertexAttribI4uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVEXTPROC __glewVertexAttribI4usvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTEREXTPROC __glewVertexAttribIPointerEXT; - -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMEXTPROC __glewGetHistogramEXT; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVEXTPROC __glewGetHistogramParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVEXTPROC __glewGetHistogramParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETMINMAXEXTPROC __glewGetMinmaxEXT; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVEXTPROC __glewGetMinmaxParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVEXTPROC __glewGetMinmaxParameterivEXT; -GLEW_FUN_EXPORT PFNGLHISTOGRAMEXTPROC __glewHistogramEXT; -GLEW_FUN_EXPORT PFNGLMINMAXEXTPROC __glewMinmaxEXT; -GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMEXTPROC __glewResetHistogramEXT; -GLEW_FUN_EXPORT PFNGLRESETMINMAXEXTPROC __glewResetMinmaxEXT; - -GLEW_FUN_EXPORT PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT; - -GLEW_FUN_EXPORT PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT; - -GLEW_FUN_EXPORT PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT; -GLEW_FUN_EXPORT PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT; - -GLEW_FUN_EXPORT PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT; -GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT; - -GLEW_FUN_EXPORT PFNGLCOLORTABLEEXTPROC __glewColorTableEXT; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVEXTPROC __glewGetColorTableParameterivEXT; - -GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC __glewGetPixelTransformParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC __glewGetPixelTransformParameterivEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFEXTPROC __glewPixelTransformParameterfEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC __glewPixelTransformParameterfvEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIEXTPROC __glewPixelTransformParameteriEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC __glewPixelTransformParameterivEXT; - -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFEXTPROC __glewPointParameterfEXT; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT; - -GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT; - -GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETCLAMPEXTPROC __glewPolygonOffsetClampEXT; - -GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT; - -GLEW_FUN_EXPORT PFNGLCOVERAGEMODULATIONNVPROC __glewCoverageModulationNV; -GLEW_FUN_EXPORT PFNGLCOVERAGEMODULATIONTABLENVPROC __glewCoverageModulationTableNV; -GLEW_FUN_EXPORT PFNGLGETCOVERAGEMODULATIONTABLENVPROC __glewGetCoverageModulationTableNV; -GLEW_FUN_EXPORT PFNGLRASTERSAMPLESEXTPROC __glewRasterSamplesEXT; - -GLEW_FUN_EXPORT PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT; -GLEW_FUN_EXPORT PFNGLENDSCENEEXTPROC __glewEndSceneEXT; - -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BEXTPROC __glewSecondaryColor3bEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVEXTPROC __glewSecondaryColor3bvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DEXTPROC __glewSecondaryColor3dEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVEXTPROC __glewSecondaryColor3dvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FEXTPROC __glewSecondaryColor3fEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVEXTPROC __glewSecondaryColor3fvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IEXTPROC __glewSecondaryColor3iEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVEXTPROC __glewSecondaryColor3ivEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SEXTPROC __glewSecondaryColor3sEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVEXTPROC __glewSecondaryColor3svEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBEXTPROC __glewSecondaryColor3ubEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVEXTPROC __glewSecondaryColor3ubvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIEXTPROC __glewSecondaryColor3uiEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVEXTPROC __glewSecondaryColor3uivEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT; - -GLEW_FUN_EXPORT PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT; -GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT; -GLEW_FUN_EXPORT PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT; - -GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT; -GLEW_FUN_EXPORT PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT; - -GLEW_FUN_EXPORT PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT; - -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT; - -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT; - -GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT; - -GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT; -GLEW_FUN_EXPORT PFNGLCLEARCOLORIUIEXTPROC __glewClearColorIuiEXT; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVEXTPROC __glewGetTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVEXTPROC __glewGetTexParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVEXTPROC __glewTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVEXTPROC __glewTexParameterIuivEXT; - -GLEW_FUN_EXPORT PFNGLARETEXTURESRESIDENTEXTPROC __glewAreTexturesResidentEXT; -GLEW_FUN_EXPORT PFNGLBINDTEXTUREEXTPROC __glewBindTextureEXT; -GLEW_FUN_EXPORT PFNGLDELETETEXTURESEXTPROC __glewDeleteTexturesEXT; -GLEW_FUN_EXPORT PFNGLGENTEXTURESEXTPROC __glewGenTexturesEXT; -GLEW_FUN_EXPORT PFNGLISTEXTUREEXTPROC __glewIsTextureEXT; -GLEW_FUN_EXPORT PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT; - -GLEW_FUN_EXPORT PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT; - -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT; - -GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT; -GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT; -GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT; -GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT; -GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT; - -GLEW_FUN_EXPORT PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT; -GLEW_FUN_EXPORT PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT; -GLEW_FUN_EXPORT PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT; -GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT; -GLEW_FUN_EXPORT PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT; -GLEW_FUN_EXPORT PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT; -GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT; -GLEW_FUN_EXPORT PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT; - -GLEW_FUN_EXPORT PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDPARAMETEREXTPROC __glewBindParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDTEXGENPARAMETEREXTPROC __glewBindTexGenParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPARAMETEREXTPROC __glewBindTextureUnitParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDVERTEXSHADEREXTPROC __glewBindVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLDELETEVERTEXSHADEREXTPROC __glewDeleteVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC __glewDisableVariantClientStateEXT; -GLEW_FUN_EXPORT PFNGLENABLEVARIANTCLIENTSTATEEXTPROC __glewEnableVariantClientStateEXT; -GLEW_FUN_EXPORT PFNGLENDVERTEXSHADEREXTPROC __glewEndVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLEXTRACTCOMPONENTEXTPROC __glewExtractComponentEXT; -GLEW_FUN_EXPORT PFNGLGENSYMBOLSEXTPROC __glewGenSymbolsEXT; -GLEW_FUN_EXPORT PFNGLGENVERTEXSHADERSEXTPROC __glewGenVertexShadersEXT; -GLEW_FUN_EXPORT PFNGLGETINVARIANTBOOLEANVEXTPROC __glewGetInvariantBooleanvEXT; -GLEW_FUN_EXPORT PFNGLGETINVARIANTFLOATVEXTPROC __glewGetInvariantFloatvEXT; -GLEW_FUN_EXPORT PFNGLGETINVARIANTINTEGERVEXTPROC __glewGetInvariantIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC __glewGetLocalConstantBooleanvEXT; -GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTFLOATVEXTPROC __glewGetLocalConstantFloatvEXT; -GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTINTEGERVEXTPROC __glewGetLocalConstantIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTBOOLEANVEXTPROC __glewGetVariantBooleanvEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTFLOATVEXTPROC __glewGetVariantFloatvEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTINTEGERVEXTPROC __glewGetVariantIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTPOINTERVEXTPROC __glewGetVariantPointervEXT; -GLEW_FUN_EXPORT PFNGLINSERTCOMPONENTEXTPROC __glewInsertComponentEXT; -GLEW_FUN_EXPORT PFNGLISVARIANTENABLEDEXTPROC __glewIsVariantEnabledEXT; -GLEW_FUN_EXPORT PFNGLSETINVARIANTEXTPROC __glewSetInvariantEXT; -GLEW_FUN_EXPORT PFNGLSETLOCALCONSTANTEXTPROC __glewSetLocalConstantEXT; -GLEW_FUN_EXPORT PFNGLSHADEROP1EXTPROC __glewShaderOp1EXT; -GLEW_FUN_EXPORT PFNGLSHADEROP2EXTPROC __glewShaderOp2EXT; -GLEW_FUN_EXPORT PFNGLSHADEROP3EXTPROC __glewShaderOp3EXT; -GLEW_FUN_EXPORT PFNGLSWIZZLEEXTPROC __glewSwizzleEXT; -GLEW_FUN_EXPORT PFNGLVARIANTPOINTEREXTPROC __glewVariantPointerEXT; -GLEW_FUN_EXPORT PFNGLVARIANTBVEXTPROC __glewVariantbvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTDVEXTPROC __glewVariantdvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTFVEXTPROC __glewVariantfvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTIVEXTPROC __glewVariantivEXT; -GLEW_FUN_EXPORT PFNGLVARIANTSVEXTPROC __glewVariantsvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTUBVEXTPROC __glewVariantubvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTUIVEXTPROC __glewVariantuivEXT; -GLEW_FUN_EXPORT PFNGLVARIANTUSVEXTPROC __glewVariantusvEXT; -GLEW_FUN_EXPORT PFNGLWRITEMASKEXTPROC __glewWriteMaskEXT; - -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT; - -GLEW_FUN_EXPORT PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT; - -GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY; - -GLEW_FUN_EXPORT PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY; - -GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP; -GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC __glewGetImageTransformParameterivHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFHPPROC __glewImageTransformParameterfHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFVHPPROC __glewImageTransformParameterfvHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIHPPROC __glewImageTransformParameteriHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIVHPPROC __glewImageTransformParameterivHP; - -GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWARRAYSIBMPROC __glewMultiModeDrawArraysIBM; -GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWELEMENTSIBMPROC __glewMultiModeDrawElementsIBM; - -GLEW_FUN_EXPORT PFNGLCOLORPOINTERLISTIBMPROC __glewColorPointerListIBM; -GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTERLISTIBMPROC __glewEdgeFlagPointerListIBM; -GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERLISTIBMPROC __glewFogCoordPointerListIBM; -GLEW_FUN_EXPORT PFNGLINDEXPOINTERLISTIBMPROC __glewIndexPointerListIBM; -GLEW_FUN_EXPORT PFNGLNORMALPOINTERLISTIBMPROC __glewNormalPointerListIBM; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM; -GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM; -GLEW_FUN_EXPORT PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM; - -GLEW_FUN_EXPORT PFNGLMAPTEXTURE2DINTELPROC __glewMapTexture2DINTEL; -GLEW_FUN_EXPORT PFNGLSYNCTEXTUREINTELPROC __glewSyncTextureINTEL; -GLEW_FUN_EXPORT PFNGLUNMAPTEXTURE2DINTELPROC __glewUnmapTexture2DINTEL; - -GLEW_FUN_EXPORT PFNGLCOLORPOINTERVINTELPROC __glewColorPointervINTEL; -GLEW_FUN_EXPORT PFNGLNORMALPOINTERVINTELPROC __glewNormalPointervINTEL; -GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERVINTELPROC __glewTexCoordPointervINTEL; -GLEW_FUN_EXPORT PFNGLVERTEXPOINTERVINTELPROC __glewVertexPointervINTEL; - -GLEW_FUN_EXPORT PFNGLBEGINPERFQUERYINTELPROC __glewBeginPerfQueryINTEL; -GLEW_FUN_EXPORT PFNGLCREATEPERFQUERYINTELPROC __glewCreatePerfQueryINTEL; -GLEW_FUN_EXPORT PFNGLDELETEPERFQUERYINTELPROC __glewDeletePerfQueryINTEL; -GLEW_FUN_EXPORT PFNGLENDPERFQUERYINTELPROC __glewEndPerfQueryINTEL; -GLEW_FUN_EXPORT PFNGLGETFIRSTPERFQUERYIDINTELPROC __glewGetFirstPerfQueryIdINTEL; -GLEW_FUN_EXPORT PFNGLGETNEXTPERFQUERYIDINTELPROC __glewGetNextPerfQueryIdINTEL; -GLEW_FUN_EXPORT PFNGLGETPERFCOUNTERINFOINTELPROC __glewGetPerfCounterInfoINTEL; -GLEW_FUN_EXPORT PFNGLGETPERFQUERYDATAINTELPROC __glewGetPerfQueryDataINTEL; -GLEW_FUN_EXPORT PFNGLGETPERFQUERYIDBYNAMEINTELPROC __glewGetPerfQueryIdByNameINTEL; -GLEW_FUN_EXPORT PFNGLGETPERFQUERYINFOINTELPROC __glewGetPerfQueryInfoINTEL; - -GLEW_FUN_EXPORT PFNGLTEXSCISSORFUNCINTELPROC __glewTexScissorFuncINTEL; -GLEW_FUN_EXPORT PFNGLTEXSCISSORINTELPROC __glewTexScissorINTEL; - -GLEW_FUN_EXPORT PFNGLBLENDBARRIERKHRPROC __glewBlendBarrierKHR; - -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKPROC __glewDebugMessageCallback; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLPROC __glewDebugMessageControl; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTPROC __glewDebugMessageInsert; -GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGPROC __glewGetDebugMessageLog; -GLEW_FUN_EXPORT PFNGLGETOBJECTLABELPROC __glewGetObjectLabel; -GLEW_FUN_EXPORT PFNGLGETOBJECTPTRLABELPROC __glewGetObjectPtrLabel; -GLEW_FUN_EXPORT PFNGLOBJECTLABELPROC __glewObjectLabel; -GLEW_FUN_EXPORT PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel; -GLEW_FUN_EXPORT PFNGLPOPDEBUGGROUPPROC __glewPopDebugGroup; -GLEW_FUN_EXPORT PFNGLPUSHDEBUGGROUPPROC __glewPushDebugGroup; - -GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVPROC __glewGetnUniformfv; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVPROC __glewGetnUniformiv; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVPROC __glewGetnUniformuiv; -GLEW_FUN_EXPORT PFNGLREADNPIXELSPROC __glewReadnPixels; - -GLEW_FUN_EXPORT PFNGLBUFFERREGIONENABLEDPROC __glewBufferRegionEnabled; -GLEW_FUN_EXPORT PFNGLDELETEBUFFERREGIONPROC __glewDeleteBufferRegion; -GLEW_FUN_EXPORT PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion; -GLEW_FUN_EXPORT PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion; -GLEW_FUN_EXPORT PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion; - -GLEW_FUN_EXPORT PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA; - -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVMESAPROC __glewWindowPos2dvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FMESAPROC __glewWindowPos2fMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVMESAPROC __glewWindowPos2fvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IMESAPROC __glewWindowPos2iMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVMESAPROC __glewWindowPos2ivMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SMESAPROC __glewWindowPos2sMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVMESAPROC __glewWindowPos2svMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DMESAPROC __glewWindowPos3dMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVMESAPROC __glewWindowPos3dvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FMESAPROC __glewWindowPos3fMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVMESAPROC __glewWindowPos3fvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IMESAPROC __glewWindowPos3iMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVMESAPROC __glewWindowPos3ivMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SMESAPROC __glewWindowPos3sMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVMESAPROC __glewWindowPos3svMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4DMESAPROC __glewWindowPos4dMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4DVMESAPROC __glewWindowPos4dvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4FMESAPROC __glewWindowPos4fMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4FVMESAPROC __glewWindowPos4fvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4IMESAPROC __glewWindowPos4iMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA; - -GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVXPROC __glewBeginConditionalRenderNVX; -GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVXPROC __glewEndConditionalRenderNVX; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC __glewMultiDrawArraysIndirectBindlessNV; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC __glewMultiDrawElementsIndirectBindlessNV; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC __glewMultiDrawArraysIndirectBindlessCountNV; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC __glewMultiDrawElementsIndirectBindlessCountNV; - -GLEW_FUN_EXPORT PFNGLGETIMAGEHANDLENVPROC __glewGetImageHandleNV; -GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLENVPROC __glewGetTextureHandleNV; -GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLENVPROC __glewGetTextureSamplerHandleNV; -GLEW_FUN_EXPORT PFNGLISIMAGEHANDLERESIDENTNVPROC __glewIsImageHandleResidentNV; -GLEW_FUN_EXPORT PFNGLISTEXTUREHANDLERESIDENTNVPROC __glewIsTextureHandleResidentNV; -GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC __glewMakeImageHandleNonResidentNV; -GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLERESIDENTNVPROC __glewMakeImageHandleResidentNV; -GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC __glewMakeTextureHandleNonResidentNV; -GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLERESIDENTNVPROC __glewMakeTextureHandleResidentNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC __glewProgramUniformHandleui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC __glewProgramUniformHandleui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64NVPROC __glewUniformHandleui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VNVPROC __glewUniformHandleui64vNV; - -GLEW_FUN_EXPORT PFNGLBLENDBARRIERNVPROC __glewBlendBarrierNV; -GLEW_FUN_EXPORT PFNGLBLENDPARAMETERINVPROC __glewBlendParameteriNV; - -GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV; -GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV; - -GLEW_FUN_EXPORT PFNGLSUBPIXELPRECISIONBIASNVPROC __glewSubpixelPrecisionBiasNV; - -GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV; - -GLEW_FUN_EXPORT PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV; -GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV; - -GLEW_FUN_EXPORT PFNGLDRAWTEXTURENVPROC __glewDrawTextureNV; - -GLEW_FUN_EXPORT PFNGLEVALMAPSNVPROC __glewEvalMapsNV; -GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV; -GLEW_FUN_EXPORT PFNGLGETMAPCONTROLPOINTSNVPROC __glewGetMapControlPointsNV; -GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERFVNVPROC __glewGetMapParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERIVNVPROC __glewGetMapParameterivNV; -GLEW_FUN_EXPORT PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV; -GLEW_FUN_EXPORT PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV; -GLEW_FUN_EXPORT PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV; - -GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV; -GLEW_FUN_EXPORT PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV; -GLEW_FUN_EXPORT PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV; - -GLEW_FUN_EXPORT PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV; -GLEW_FUN_EXPORT PFNGLFINISHFENCENVPROC __glewFinishFenceNV; -GLEW_FUN_EXPORT PFNGLGENFENCESNVPROC __glewGenFencesNV; -GLEW_FUN_EXPORT PFNGLGETFENCEIVNVPROC __glewGetFenceivNV; -GLEW_FUN_EXPORT PFNGLISFENCENVPROC __glewIsFenceNV; -GLEW_FUN_EXPORT PFNGLSETFENCENVPROC __glewSetFenceNV; -GLEW_FUN_EXPORT PFNGLTESTFENCENVPROC __glewTestFenceNV; - -GLEW_FUN_EXPORT PFNGLFRAGMENTCOVERAGECOLORNVPROC __glewFragmentCoverageColorNV; - -GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC __glewGetProgramNamedParameterdvNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC __glewGetProgramNamedParameterfvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DNVPROC __glewProgramNamedParameter4dNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV; - -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV; - -GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV; - -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UIVNVPROC __glewProgramEnvParameterI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4IVNVPROC __glewProgramEnvParametersI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC __glewProgramEnvParametersI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4INVPROC __glewProgramLocalParameterI4iNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC __glewProgramLocalParameterI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameterI4uiNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV; - -GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV; -GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV; - -GLEW_FUN_EXPORT PFNGLCOLOR3HNVPROC __glewColor3hNV; -GLEW_FUN_EXPORT PFNGLCOLOR3HVNVPROC __glewColor3hvNV; -GLEW_FUN_EXPORT PFNGLCOLOR4HNVPROC __glewColor4hNV; -GLEW_FUN_EXPORT PFNGLCOLOR4HVNVPROC __glewColor4hvNV; -GLEW_FUN_EXPORT PFNGLFOGCOORDHNVPROC __glewFogCoordhNV; -GLEW_FUN_EXPORT PFNGLFOGCOORDHVNVPROC __glewFogCoordhvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HNVPROC __glewMultiTexCoord1hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HVNVPROC __glewMultiTexCoord1hvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HNVPROC __glewMultiTexCoord2hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HVNVPROC __glewMultiTexCoord2hvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HNVPROC __glewMultiTexCoord3hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HVNVPROC __glewMultiTexCoord3hvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HNVPROC __glewMultiTexCoord4hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HVNVPROC __glewMultiTexCoord4hvNV; -GLEW_FUN_EXPORT PFNGLNORMAL3HNVPROC __glewNormal3hNV; -GLEW_FUN_EXPORT PFNGLNORMAL3HVNVPROC __glewNormal3hvNV; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HNVPROC __glewSecondaryColor3hNV; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HVNVPROC __glewSecondaryColor3hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD1HNVPROC __glewTexCoord1hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD1HVNVPROC __glewTexCoord1hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD2HNVPROC __glewTexCoord2hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD2HVNVPROC __glewTexCoord2hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD3HNVPROC __glewTexCoord3hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD3HVNVPROC __glewTexCoord3hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD4HNVPROC __glewTexCoord4hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD4HVNVPROC __glewTexCoord4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEX2HNVPROC __glewVertex2hNV; -GLEW_FUN_EXPORT PFNGLVERTEX2HVNVPROC __glewVertex2hvNV; -GLEW_FUN_EXPORT PFNGLVERTEX3HNVPROC __glewVertex3hNV; -GLEW_FUN_EXPORT PFNGLVERTEX3HVNVPROC __glewVertex3hvNV; -GLEW_FUN_EXPORT PFNGLVERTEX4HNVPROC __glewVertex4hNV; -GLEW_FUN_EXPORT PFNGLVERTEX4HVNVPROC __glewVertex4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HNVPROC __glewVertexAttrib1hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HVNVPROC __glewVertexAttrib1hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HNVPROC __glewVertexAttrib2hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HVNVPROC __glewVertexAttrib2hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HNVPROC __glewVertexAttrib3hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HVNVPROC __glewVertexAttrib3hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HNVPROC __glewVertexAttrib4hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HVNVPROC __glewVertexAttrib4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1HVNVPROC __glewVertexAttribs1hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2HVNVPROC __glewVertexAttribs2hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3HVNVPROC __glewVertexAttribs3hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV; - -GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATSAMPLEIVNVPROC __glewGetInternalformatSampleivNV; - -GLEW_FUN_EXPORT PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV; -GLEW_FUN_EXPORT PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV; -GLEW_FUN_EXPORT PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV; -GLEW_FUN_EXPORT PFNGLGENOCCLUSIONQUERIESNVPROC __glewGenOcclusionQueriesNV; -GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYIVNVPROC __glewGetOcclusionQueryivNV; -GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYUIVNVPROC __glewGetOcclusionQueryuivNV; -GLEW_FUN_EXPORT PFNGLISOCCLUSIONQUERYNVPROC __glewIsOcclusionQueryNV; - -GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC __glewProgramBufferParametersIivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC __glewProgramBufferParametersIuivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC __glewProgramBufferParametersfvNV; - -GLEW_FUN_EXPORT PFNGLCOPYPATHNVPROC __glewCopyPathNV; -GLEW_FUN_EXPORT PFNGLCOVERFILLPATHINSTANCEDNVPROC __glewCoverFillPathInstancedNV; -GLEW_FUN_EXPORT PFNGLCOVERFILLPATHNVPROC __glewCoverFillPathNV; -GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHINSTANCEDNVPROC __glewCoverStrokePathInstancedNV; -GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHNVPROC __glewCoverStrokePathNV; -GLEW_FUN_EXPORT PFNGLDELETEPATHSNVPROC __glewDeletePathsNV; -GLEW_FUN_EXPORT PFNGLGENPATHSNVPROC __glewGenPathsNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENFVNVPROC __glewGetPathColorGenfvNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENIVNVPROC __glewGetPathColorGenivNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOMMANDSNVPROC __glewGetPathCommandsNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOORDSNVPROC __glewGetPathCoordsNV; -GLEW_FUN_EXPORT PFNGLGETPATHDASHARRAYNVPROC __glewGetPathDashArrayNV; -GLEW_FUN_EXPORT PFNGLGETPATHLENGTHNVPROC __glewGetPathLengthNV; -GLEW_FUN_EXPORT PFNGLGETPATHMETRICRANGENVPROC __glewGetPathMetricRangeNV; -GLEW_FUN_EXPORT PFNGLGETPATHMETRICSNVPROC __glewGetPathMetricsNV; -GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERFVNVPROC __glewGetPathParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERIVNVPROC __glewGetPathParameterivNV; -GLEW_FUN_EXPORT PFNGLGETPATHSPACINGNVPROC __glewGetPathSpacingNV; -GLEW_FUN_EXPORT PFNGLGETPATHTEXGENFVNVPROC __glewGetPathTexGenfvNV; -GLEW_FUN_EXPORT PFNGLGETPATHTEXGENIVNVPROC __glewGetPathTexGenivNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEFVNVPROC __glewGetProgramResourcefvNV; -GLEW_FUN_EXPORT PFNGLINTERPOLATEPATHSNVPROC __glewInterpolatePathsNV; -GLEW_FUN_EXPORT PFNGLISPATHNVPROC __glewIsPathNV; -GLEW_FUN_EXPORT PFNGLISPOINTINFILLPATHNVPROC __glewIsPointInFillPathNV; -GLEW_FUN_EXPORT PFNGLISPOINTINSTROKEPATHNVPROC __glewIsPointInStrokePathNV; -GLEW_FUN_EXPORT PFNGLMATRIXLOAD3X2FNVPROC __glewMatrixLoad3x2fNV; -GLEW_FUN_EXPORT PFNGLMATRIXLOAD3X3FNVPROC __glewMatrixLoad3x3fNV; -GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC __glewMatrixLoadTranspose3x3fNV; -GLEW_FUN_EXPORT PFNGLMATRIXMULT3X2FNVPROC __glewMatrixMult3x2fNV; -GLEW_FUN_EXPORT PFNGLMATRIXMULT3X3FNVPROC __glewMatrixMult3x3fNV; -GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC __glewMatrixMultTranspose3x3fNV; -GLEW_FUN_EXPORT PFNGLPATHCOLORGENNVPROC __glewPathColorGenNV; -GLEW_FUN_EXPORT PFNGLPATHCOMMANDSNVPROC __glewPathCommandsNV; -GLEW_FUN_EXPORT PFNGLPATHCOORDSNVPROC __glewPathCoordsNV; -GLEW_FUN_EXPORT PFNGLPATHCOVERDEPTHFUNCNVPROC __glewPathCoverDepthFuncNV; -GLEW_FUN_EXPORT PFNGLPATHDASHARRAYNVPROC __glewPathDashArrayNV; -GLEW_FUN_EXPORT PFNGLPATHFOGGENNVPROC __glewPathFogGenNV; -GLEW_FUN_EXPORT PFNGLPATHGLYPHINDEXARRAYNVPROC __glewPathGlyphIndexArrayNV; -GLEW_FUN_EXPORT PFNGLPATHGLYPHINDEXRANGENVPROC __glewPathGlyphIndexRangeNV; -GLEW_FUN_EXPORT PFNGLPATHGLYPHRANGENVPROC __glewPathGlyphRangeNV; -GLEW_FUN_EXPORT PFNGLPATHGLYPHSNVPROC __glewPathGlyphsNV; -GLEW_FUN_EXPORT PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC __glewPathMemoryGlyphIndexArrayNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERFNVPROC __glewPathParameterfNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERFVNVPROC __glewPathParameterfvNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERINVPROC __glewPathParameteriNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERIVNVPROC __glewPathParameterivNV; -GLEW_FUN_EXPORT PFNGLPATHSTENCILDEPTHOFFSETNVPROC __glewPathStencilDepthOffsetNV; -GLEW_FUN_EXPORT PFNGLPATHSTENCILFUNCNVPROC __glewPathStencilFuncNV; -GLEW_FUN_EXPORT PFNGLPATHSTRINGNVPROC __glewPathStringNV; -GLEW_FUN_EXPORT PFNGLPATHSUBCOMMANDSNVPROC __glewPathSubCommandsNV; -GLEW_FUN_EXPORT PFNGLPATHSUBCOORDSNVPROC __glewPathSubCoordsNV; -GLEW_FUN_EXPORT PFNGLPATHTEXGENNVPROC __glewPathTexGenNV; -GLEW_FUN_EXPORT PFNGLPOINTALONGPATHNVPROC __glewPointAlongPathNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC __glewProgramPathFragmentInputGenNV; -GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHINSTANCEDNVPROC __glewStencilFillPathInstancedNV; -GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHNVPROC __glewStencilFillPathNV; -GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC __glewStencilStrokePathInstancedNV; -GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHNVPROC __glewStencilStrokePathNV; -GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC __glewStencilThenCoverFillPathInstancedNV; -GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERFILLPATHNVPROC __glewStencilThenCoverFillPathNV; -GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC __glewStencilThenCoverStrokePathInstancedNV; -GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC __glewStencilThenCoverStrokePathNV; -GLEW_FUN_EXPORT PFNGLTRANSFORMPATHNVPROC __glewTransformPathNV; -GLEW_FUN_EXPORT PFNGLWEIGHTPATHSNVPROC __glewWeightPathsNV; - -GLEW_FUN_EXPORT PFNGLFLUSHPIXELDATARANGENVPROC __glewFlushPixelDataRangeNV; -GLEW_FUN_EXPORT PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV; - -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV; - -GLEW_FUN_EXPORT PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV; -GLEW_FUN_EXPORT PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV; -GLEW_FUN_EXPORT PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV; - -GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV; -GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV; - -GLEW_FUN_EXPORT PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV; -GLEW_FUN_EXPORT PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFVNVPROC __glewCombinerParameterfvNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERINVPROC __glewCombinerParameteriNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERIVNVPROC __glewCombinerParameterivNV; -GLEW_FUN_EXPORT PFNGLFINALCOMBINERINPUTNVPROC __glewFinalCombinerInputNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC __glewGetCombinerInputParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC __glewGetCombinerInputParameterivNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC __glewGetCombinerOutputParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC __glewGetCombinerOutputParameterivNV; -GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC __glewGetFinalCombinerInputParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombinerInputParameterivNV; - -GLEW_FUN_EXPORT PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewFramebufferSampleLocationsfvNV; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewNamedFramebufferSampleLocationsfvNV; - -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV; -GLEW_FUN_EXPORT PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV; -GLEW_FUN_EXPORT PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV; -GLEW_FUN_EXPORT PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV; -GLEW_FUN_EXPORT PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV; -GLEW_FUN_EXPORT PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV; -GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV; -GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORMUI64NVPROC __glewUniformui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV; - -GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV; - -GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTexImage3DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTextureImage2DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC __glewTextureImage2DMultisampleNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTextureImage3DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC __glewTextureImage3DMultisampleNV; - -GLEW_FUN_EXPORT PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV; -GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV; -GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETNVPROC __glewBindBufferOffsetNV; -GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGENVPROC __glewBindBufferRangeNV; -GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKNVPROC __glewEndTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLGETACTIVEVARYINGNVPROC __glewGetActiveVaryingNV; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC __glewGetTransformFeedbackVaryingNV; -GLEW_FUN_EXPORT PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV; - -GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV; -GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV; - -GLEW_FUN_EXPORT PFNGLVDPAUFININVPROC __glewVDPAUFiniNV; -GLEW_FUN_EXPORT PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV; -GLEW_FUN_EXPORT PFNGLVDPAUINITNVPROC __glewVDPAUInitNV; -GLEW_FUN_EXPORT PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV; -GLEW_FUN_EXPORT PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV; -GLEW_FUN_EXPORT PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV; -GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV; -GLEW_FUN_EXPORT PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV; -GLEW_FUN_EXPORT PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV; -GLEW_FUN_EXPORT PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV; - -GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV; - -GLEW_FUN_EXPORT PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV; -GLEW_FUN_EXPORT PFNGLCOLORFORMATNVPROC __glewColorFormatNV; -GLEW_FUN_EXPORT PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV; -GLEW_FUN_EXPORT PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV; -GLEW_FUN_EXPORT PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV; -GLEW_FUN_EXPORT PFNGLINDEXFORMATNVPROC __glewIndexFormatNV; -GLEW_FUN_EXPORT PFNGLNORMALFORMATNVPROC __glewNormalFormatNV; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV; -GLEW_FUN_EXPORT PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV; -GLEW_FUN_EXPORT PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV; - -GLEW_FUN_EXPORT PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV; -GLEW_FUN_EXPORT PFNGLBINDPROGRAMNVPROC __glewBindProgramNV; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV; -GLEW_FUN_EXPORT PFNGLEXECUTEPROGRAMNVPROC __glewExecuteProgramNV; -GLEW_FUN_EXPORT PFNGLGENPROGRAMSNVPROC __glewGenProgramsNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERDVNVPROC __glewGetProgramParameterdvNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERFVNVPROC __glewGetProgramParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGNVPROC __glewGetProgramStringNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMIVNVPROC __glewGetProgramivNV; -GLEW_FUN_EXPORT PFNGLGETTRACKMATRIXIVNVPROC __glewGetTrackMatrixivNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVNVPROC __glewGetVertexAttribPointervNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVNVPROC __glewGetVertexAttribdvNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVNVPROC __glewGetVertexAttribfvNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVNVPROC __glewGetVertexAttribivNV; -GLEW_FUN_EXPORT PFNGLISPROGRAMNVPROC __glewIsProgramNV; -GLEW_FUN_EXPORT PFNGLLOADPROGRAMNVPROC __glewLoadProgramNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DNVPROC __glewProgramParameter4dNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DVNVPROC __glewProgramParameter4dvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FNVPROC __glewProgramParameter4fNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FVNVPROC __glewProgramParameter4fvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4DVNVPROC __glewProgramParameters4dvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4FVNVPROC __glewProgramParameters4fvNV; -GLEW_FUN_EXPORT PFNGLREQUESTRESIDENTPROGRAMSNVPROC __glewRequestResidentProgramsNV; -GLEW_FUN_EXPORT PFNGLTRACKMATRIXNVPROC __glewTrackMatrixNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DNVPROC __glewVertexAttrib1dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVNVPROC __glewVertexAttrib1dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FNVPROC __glewVertexAttrib1fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVNVPROC __glewVertexAttrib1fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SNVPROC __glewVertexAttrib1sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVNVPROC __glewVertexAttrib1svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DNVPROC __glewVertexAttrib2dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVNVPROC __glewVertexAttrib2dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FNVPROC __glewVertexAttrib2fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVNVPROC __glewVertexAttrib2fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SNVPROC __glewVertexAttrib2sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVNVPROC __glewVertexAttrib2svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DNVPROC __glewVertexAttrib3dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVNVPROC __glewVertexAttrib3dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVNVPROC __glewVertexAttrib3fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SNVPROC __glewVertexAttrib3sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVNVPROC __glewVertexAttrib3svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DNVPROC __glewVertexAttrib4dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVNVPROC __glewVertexAttrib4dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FNVPROC __glewVertexAttrib4fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVNVPROC __glewVertexAttrib4fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SNVPROC __glewVertexAttrib4sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVNVPROC __glewVertexAttrib4svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBNVPROC __glewVertexAttrib4ubNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVNVPROC __glewVertexAttrib4ubvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERNVPROC __glewVertexAttribPointerNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1DVNVPROC __glewVertexAttribs1dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1FVNVPROC __glewVertexAttribs1fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1SVNVPROC __glewVertexAttribs1svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2DVNVPROC __glewVertexAttribs2dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2FVNVPROC __glewVertexAttribs2fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2SVNVPROC __glewVertexAttribs2svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3DVNVPROC __glewVertexAttribs3dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3FVNVPROC __glewVertexAttribs3fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3SVNVPROC __glewVertexAttribs3svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4DVNVPROC __glewVertexAttribs4dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV; - -GLEW_FUN_EXPORT PFNGLBEGINVIDEOCAPTURENVPROC __glewBeginVideoCaptureNV; -GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC __glewBindVideoCaptureStreamBufferNV; -GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC __glewBindVideoCaptureStreamTextureNV; -GLEW_FUN_EXPORT PFNGLENDVIDEOCAPTURENVPROC __glewEndVideoCaptureNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMDVNVPROC __glewGetVideoCaptureStreamdvNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMFVNVPROC __glewGetVideoCaptureStreamfvNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMIVNVPROC __glewGetVideoCaptureStreamivNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTUREIVNVPROC __glewGetVideoCaptureivNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURENVPROC __glewVideoCaptureNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV; - -GLEW_FUN_EXPORT PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES; -GLEW_FUN_EXPORT PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES; -GLEW_FUN_EXPORT PFNGLFRUSTUMFOESPROC __glewFrustumfOES; -GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES; -GLEW_FUN_EXPORT PFNGLORTHOFOESPROC __glewOrthofOES; - -GLEW_FUN_EXPORT PFNGLALPHAFUNCXPROC __glewAlphaFuncx; -GLEW_FUN_EXPORT PFNGLCLEARCOLORXPROC __glewClearColorx; -GLEW_FUN_EXPORT PFNGLCLEARDEPTHXPROC __glewClearDepthx; -GLEW_FUN_EXPORT PFNGLCOLOR4XPROC __glewColor4x; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEXPROC __glewDepthRangex; -GLEW_FUN_EXPORT PFNGLFOGXPROC __glewFogx; -GLEW_FUN_EXPORT PFNGLFOGXVPROC __glewFogxv; -GLEW_FUN_EXPORT PFNGLFRUSTUMFPROC __glewFrustumf; -GLEW_FUN_EXPORT PFNGLFRUSTUMXPROC __glewFrustumx; -GLEW_FUN_EXPORT PFNGLLIGHTMODELXPROC __glewLightModelx; -GLEW_FUN_EXPORT PFNGLLIGHTMODELXVPROC __glewLightModelxv; -GLEW_FUN_EXPORT PFNGLLIGHTXPROC __glewLightx; -GLEW_FUN_EXPORT PFNGLLIGHTXVPROC __glewLightxv; -GLEW_FUN_EXPORT PFNGLLINEWIDTHXPROC __glewLineWidthx; -GLEW_FUN_EXPORT PFNGLLOADMATRIXXPROC __glewLoadMatrixx; -GLEW_FUN_EXPORT PFNGLMATERIALXPROC __glewMaterialx; -GLEW_FUN_EXPORT PFNGLMATERIALXVPROC __glewMaterialxv; -GLEW_FUN_EXPORT PFNGLMULTMATRIXXPROC __glewMultMatrixx; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4XPROC __glewMultiTexCoord4x; -GLEW_FUN_EXPORT PFNGLNORMAL3XPROC __glewNormal3x; -GLEW_FUN_EXPORT PFNGLORTHOFPROC __glewOrthof; -GLEW_FUN_EXPORT PFNGLORTHOXPROC __glewOrthox; -GLEW_FUN_EXPORT PFNGLPOINTSIZEXPROC __glewPointSizex; -GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETXPROC __glewPolygonOffsetx; -GLEW_FUN_EXPORT PFNGLROTATEXPROC __glewRotatex; -GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEXPROC __glewSampleCoveragex; -GLEW_FUN_EXPORT PFNGLSCALEXPROC __glewScalex; -GLEW_FUN_EXPORT PFNGLTEXENVXPROC __glewTexEnvx; -GLEW_FUN_EXPORT PFNGLTEXENVXVPROC __glewTexEnvxv; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERXPROC __glewTexParameterx; -GLEW_FUN_EXPORT PFNGLTRANSLATEXPROC __glewTranslatex; - -GLEW_FUN_EXPORT PFNGLCLIPPLANEFPROC __glewClipPlanef; -GLEW_FUN_EXPORT PFNGLCLIPPLANEXPROC __glewClipPlanex; -GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFPROC __glewGetClipPlanef; -GLEW_FUN_EXPORT PFNGLGETCLIPPLANEXPROC __glewGetClipPlanex; -GLEW_FUN_EXPORT PFNGLGETFIXEDVPROC __glewGetFixedv; -GLEW_FUN_EXPORT PFNGLGETLIGHTXVPROC __glewGetLightxv; -GLEW_FUN_EXPORT PFNGLGETMATERIALXVPROC __glewGetMaterialxv; -GLEW_FUN_EXPORT PFNGLGETTEXENVXVPROC __glewGetTexEnvxv; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERXVPROC __glewGetTexParameterxv; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERXPROC __glewPointParameterx; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERXVPROC __glewPointParameterxv; -GLEW_FUN_EXPORT PFNGLPOINTSIZEPOINTEROESPROC __glewPointSizePointerOES; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERXVPROC __glewTexParameterxv; - -GLEW_FUN_EXPORT PFNGLERRORSTRINGREGALPROC __glewErrorStringREGAL; - -GLEW_FUN_EXPORT PFNGLGETEXTENSIONREGALPROC __glewGetExtensionREGAL; -GLEW_FUN_EXPORT PFNGLISSUPPORTEDREGALPROC __glewIsSupportedREGAL; - -GLEW_FUN_EXPORT PFNGLLOGMESSAGECALLBACKREGALPROC __glewLogMessageCallbackREGAL; - -GLEW_FUN_EXPORT PFNGLGETPROCADDRESSREGALPROC __glewGetProcAddressREGAL; - -GLEW_FUN_EXPORT PFNGLDETAILTEXFUNCSGISPROC __glewDetailTexFuncSGIS; -GLEW_FUN_EXPORT PFNGLGETDETAILTEXFUNCSGISPROC __glewGetDetailTexFuncSGIS; - -GLEW_FUN_EXPORT PFNGLFOGFUNCSGISPROC __glewFogFuncSGIS; -GLEW_FUN_EXPORT PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS; - -GLEW_FUN_EXPORT PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS; -GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS; - -GLEW_FUN_EXPORT PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS; -GLEW_FUN_EXPORT PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS; - -GLEW_FUN_EXPORT PFNGLTEXIMAGE4DSGISPROC __glewTexImage4DSGIS; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE4DSGISPROC __glewTexSubImage4DSGIS; - -GLEW_FUN_EXPORT PFNGLGETTEXFILTERFUNCSGISPROC __glewGetTexFilterFuncSGIS; -GLEW_FUN_EXPORT PFNGLTEXFILTERFUNCSGISPROC __glewTexFilterFuncSGIS; - -GLEW_FUN_EXPORT PFNGLASYNCMARKERSGIXPROC __glewAsyncMarkerSGIX; -GLEW_FUN_EXPORT PFNGLDELETEASYNCMARKERSSGIXPROC __glewDeleteAsyncMarkersSGIX; -GLEW_FUN_EXPORT PFNGLFINISHASYNCSGIXPROC __glewFinishAsyncSGIX; -GLEW_FUN_EXPORT PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX; -GLEW_FUN_EXPORT PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX; -GLEW_FUN_EXPORT PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX; - -GLEW_FUN_EXPORT PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX; - -GLEW_FUN_EXPORT PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX; - -GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX; - -GLEW_FUN_EXPORT PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX; - -GLEW_FUN_EXPORT PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX; - -GLEW_FUN_EXPORT PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX; - -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX; -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFVSGIXPROC __glewSpriteParameterfvSGIX; -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERISGIXPROC __glewSpriteParameteriSGIX; -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX; - -GLEW_FUN_EXPORT PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX; - -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI; -GLEW_FUN_EXPORT PFNGLCOLORTABLESGIPROC __glewColorTableSGI; -GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLESGIPROC __glewCopyColorTableSGI; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI; - -GLEW_FUN_EXPORT PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX; - -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORDSUNPROC __glewGlobalAlphaFactordSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORFSUNPROC __glewGlobalAlphaFactorfSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORISUNPROC __glewGlobalAlphaFactoriSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORSSUNPROC __glewGlobalAlphaFactorsSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUBSUNPROC __glewGlobalAlphaFactorubSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUISUNPROC __glewGlobalAlphaFactoruiSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUSSUNPROC __glewGlobalAlphaFactorusSUN; - -GLEW_FUN_EXPORT PFNGLREADVIDEOPIXELSSUNPROC __glewReadVideoPixelsSUN; - -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEPOINTERSUNPROC __glewReplacementCodePointerSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBSUNPROC __glewReplacementCodeubSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBVSUNPROC __glewReplacementCodeubvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUISUNPROC __glewReplacementCodeuiSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVSUNPROC __glewReplacementCodeuivSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSSUNPROC __glewReplacementCodeusSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSVSUNPROC __glewReplacementCodeusvSUN; - -GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FSUNPROC __glewColor3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FVSUNPROC __glewColor3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FSUNPROC __glewColor4ubVertex2fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FVSUNPROC __glewColor4ubVertex2fvSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FSUNPROC __glewColor4ubVertex3fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FVSUNPROC __glewColor4ubVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FSUNPROC __glewNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FVSUNPROC __glewNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC __glewReplacementCodeuiColor3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC __glewReplacementCodeuiColor4ubVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC __glewReplacementCodeuiColor4ubVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC __glewReplacementCodeuiVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC __glewReplacementCodeuiVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC __glewTexCoord2fColor3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC __glewTexCoord2fColor3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC __glewTexCoord2fColor4ubVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC __glewTexCoord2fColor4ubVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FSUNPROC __glewTexCoord2fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FVSUNPROC __glewTexCoord2fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN; - -GLEW_FUN_EXPORT PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN; - -#if defined(GLEW_MX) && !defined(_WIN32) -struct GLEWContextStruct -{ -#endif /* GLEW_MX */ - -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_3; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_4; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_5; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_0; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_0; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_2; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_3; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_0; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_2; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_3; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_4; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_5; -GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer; -GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_blend_minmax_factor; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_depth_clamp_separate; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gcn_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_int64; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_interleaved_elements; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_multi_draw_indirect; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_occlusion_query_event; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_pinned_memory; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_query_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sample_positions; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_atomic_counter_ops; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_value_export; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_trinary_minmax; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sparse_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_stencil_operation_extended; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback3_lines_triangles; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback4; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_layer; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_tessellator; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_viewport_index; -GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_depth_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_blit; -GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_instanced_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_pack_reverse_row_order; -GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_program_binary; -GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt1; -GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt3; -GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt5; -GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_usage; -GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_timer_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_translated_shader_source; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_aux_depth_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_client_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_element_array; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_fence; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_float_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_flush_buffer_range; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_object_purgeable; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_pixel_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_rgb_422; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_row_bytes; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_specular_vector; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_range; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_transform_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_range; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_program_evaluators; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_ycbcr_422; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES2_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_1_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_arrays_of_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_base_instance; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_bindless_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_blend_func_extended; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_buffer_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cl_event; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clear_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clear_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clip_control; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_color_buffer_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compressed_texture_pixel_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compute_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compute_variable_group_size; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_conditional_render_inverted; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_conservative_depth; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_image; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cull_distance; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_debug_output; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_buffer_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_derivative_control; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_direct_state_access; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers_blend; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_elements_base_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_indirect; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_instanced; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_enhanced_layouts; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_attrib_location; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_uniform_location; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_coord_conventions; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_layer_viewport; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program_shadow; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_no_attachments; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_sRGB; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_geometry_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_program_binary; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_texture_sub_image; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader5; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_fp64; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_pixel; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_imaging; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_indirect_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_instanced_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query2; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_invalidate_subdata; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_alignment; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_range; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_matrix_palette; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multi_bind; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multi_draw_indirect; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multitexture; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query2; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pipeline_statistics_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pixel_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_sprite; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_program_interface_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_provoking_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_query_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robust_buffer_access_behavior; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness_application_isolation; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness_share_group_isolation; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_shading; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sampler_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cube_map; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cubemap_per_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_separate_shader_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_atomic_counters; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_bit_encoding; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_draw_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_group_vote; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_load_store; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_size; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_precision; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_stencil_export; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_storage_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_subroutine; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_image_samples; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_100; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_420pack; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_include; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_packing; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow_ambient; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_stencil_texturing; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sync; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_tessellation_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_barrier; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_border_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object_rgb32; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_range; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_bptc; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_rgtc; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map_array; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_add; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_combine; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_crossbar; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_dot3; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_gather; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirror_clamp_to_edge; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirrored_repeat; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_non_power_of_two; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_levels; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rg; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rgb10_a2ui; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_stencil8; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_swizzle; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_view; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_timer_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback2; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback3; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback_instanced; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback_overflow_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transpose_matrix; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_uniform_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_bgra; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_64bit; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_binding; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_blend; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_program; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_10f_11f_11f_rev; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_viewport_array; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_window_pos; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_point_sprites; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_combine3; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_route; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_vertex_shader_output_point_size; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_draw_buffers; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_element_array; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_envmap_bumpmap; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_fragment_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_map_object_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_meminfo; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_pn_triangles; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_separate_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_shader_texture_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_text_fragment_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_compression_3dc; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_env_combine3; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_mirror_once; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_attrib_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_streams; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_422_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_Cg_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_abgr; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bgra; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bindable_uniform; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_color; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_equation_separate; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_separate; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_logic_op; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_minmax; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_subtract; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_volume_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cmyka; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_subtable; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compiled_vertex_array; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_convolution; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_coordinate_frame; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cull_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_label; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_marker; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_bounds_test; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_direct_state_access; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers2; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_instanced; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_range_elements; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fog_coord; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_lighting; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_blit; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_sRGB; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_program_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_histogram; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_array_formats; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_func; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_material; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_light_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_misc_attribute; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_depth_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_float; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_paletted_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform_color_table; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_point_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_post_depth_coverage; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_provoking_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_raster_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_rescale_normal; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_scene_marker; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_secondary_color; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_shader_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_specular_color; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_formatted; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_store; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_integer_mix; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_funcs; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shared_texture_palette; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sparse_texture2; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_clear_tag; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_two_side; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_wrap; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_subtexture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture3D; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_array; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_dxt1; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_latc; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_rgtc; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_edge_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_add; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_combine; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_dot3; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_anisotropic; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_minmax; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_integer; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_lod_bias; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_perturb_normal; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_decode; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shared_exponent; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_snorm; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_swizzle; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_timer_query; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_transform_feedback; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_x11_sync_object; -GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator; -GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_image_transform; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_occlusion_test; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_texture_lighting; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_cull_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_multimode_draw_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_rasterpos_clip; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_static_data; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_texture_mirrored_repeat; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_vertex_array_lists; -GLEW_VAR_EXPORT GLboolean __GLEW_INGR_color_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_INGR_interlace_read; -GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_fragment_shader_ordering; -GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_map_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_parallel_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_performance_query; -GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_texture_scissor; -GLEW_VAR_EXPORT GLboolean __GLEW_KHR_blend_equation_advanced; -GLEW_VAR_EXPORT GLboolean __GLEW_KHR_blend_equation_advanced_coherent; -GLEW_VAR_EXPORT GLboolean __GLEW_KHR_context_flush_control; -GLEW_VAR_EXPORT GLboolean __GLEW_KHR_debug; -GLEW_VAR_EXPORT GLboolean __GLEW_KHR_robust_buffer_access_behavior; -GLEW_VAR_EXPORT GLboolean __GLEW_KHR_robustness; -GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_hdr; -GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_ldr; -GLEW_VAR_EXPORT GLboolean __GLEW_KTX_buffer_region; -GLEW_VAR_EXPORT GLboolean __GLEW_MESAX_texture_stack; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_pack_invert; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_resize_buffers; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_window_pos; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_ycbcr_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_NVX_conditional_render; -GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect_count; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced_coherent; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_compute_program5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_conditional_render; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_depth_to_color; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_image; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_deep_texture3D; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_buffer_float; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_range_unclamped; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_evaluators; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fence; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fill_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_float_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fog_distance; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_coverage_to_color; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program_option; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_shader_interlock; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_mixed_samples; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample_coverage; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader_passthrough; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5_mem_extended; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program_fp64; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_shader5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_half_float; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_internalformat_sample_query; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_light_max_exponent; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_coverage; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_filter_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_occlusion_query; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_depth_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering_shared_edge; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_data_range; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_point_sprite; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_present_video; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_restart; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_sample_locations; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_sample_mask_override_coverage; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_counters; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_fp16_vector; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_int64; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_storage_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_thread_group; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_thread_shuffle; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_tessellation_program5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_emboss; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_reflection; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader3; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_uniform_buffer_unified_memory; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_attrib_integer_64bit; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_buffer_unified_memory; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program1_1; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_video_capture; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_array2; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_paletted_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_read_format; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_single_precision; -GLEW_VAR_EXPORT GLboolean __GLEW_OML_interlace; -GLEW_VAR_EXPORT GLboolean __GLEW_OML_resample; -GLEW_VAR_EXPORT GLboolean __GLEW_OML_subsample; -GLEW_VAR_EXPORT GLboolean __GLEW_PGI_misc_hints; -GLEW_VAR_EXPORT GLboolean __GLEW_PGI_vertex_hints; -GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_0_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_1_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_enable; -GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_error_string; -GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_extension_query; -GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_log; -GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_proc_address; -GLEW_VAR_EXPORT GLboolean __GLEW_REND_screen_coordinates; -GLEW_VAR_EXPORT GLboolean __GLEW_S3_s3tc; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_color_range; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_detail_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_fog_function; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_generate_mipmap; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_pixel_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_point_line_texgen; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_sharpen_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture4D; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_border_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_edge_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_filter4; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_select; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_histogram; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_pixel; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_alpha_minmax; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_clipmap; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_convolution_accuracy; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_flush_raster; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_offset; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_specular_lighting; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_framezoom; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_interlace; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ir_instrument1; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_list_priority; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_bits; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_reference_plane; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_resample; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow_ambient; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_sprite; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_tag_sample_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_add_env; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_coordinate_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_lod_bias; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_multi_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_range; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_scale_bias; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb; -GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_matrix; -GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_table; -GLEW_VAR_EXPORT GLboolean __GLEW_SGI_texture_color_table; -GLEW_VAR_EXPORT GLboolean __GLEW_SUNX_constant_data; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_convolution_border_modes; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_global_alpha; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_mesh_array; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_read_video_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_slice_accum; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_triangle_list; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_WIN_phong_shading; -GLEW_VAR_EXPORT GLboolean __GLEW_WIN_specular_fog; -GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; - -#ifdef GLEW_MX -}; /* GLEWContextStruct */ -#endif /* GLEW_MX */ - -/* ------------------------------------------------------------------------- */ - -/* error codes */ -#define GLEW_OK 0 -#define GLEW_NO_ERROR 0 -#define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */ -#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */ -#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */ - -/* string codes */ -#define GLEW_VERSION 1 -#define GLEW_VERSION_MAJOR 2 -#define GLEW_VERSION_MINOR 3 -#define GLEW_VERSION_MICRO 4 - -/* API */ -#ifdef GLEW_MX - -typedef struct GLEWContextStruct GLEWContext; -GLEWAPI GLenum GLEWAPIENTRY glewContextInit (GLEWContext *ctx); -GLEWAPI GLboolean GLEWAPIENTRY glewContextIsSupported (const GLEWContext *ctx, const char *name); - -#define glewInit() glewContextInit(glewGetContext()) -#define glewIsSupported(x) glewContextIsSupported(glewGetContext(), x) -#define glewIsExtensionSupported(x) glewIsSupported(x) - -#define GLEW_GET_VAR(x) (*(const GLboolean*)&(glewGetContext()->x)) -#ifdef _WIN32 -# define GLEW_GET_FUN(x) glewGetContext()->x -#else -# define GLEW_GET_FUN(x) x -#endif - -#else /* GLEW_MX */ - -GLEWAPI GLenum GLEWAPIENTRY glewInit (void); -GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name); -#define glewIsExtensionSupported(x) glewIsSupported(x) - -#define GLEW_GET_VAR(x) (*(const GLboolean*)&x) -#define GLEW_GET_FUN(x) x - -#endif /* GLEW_MX */ - -GLEWAPI GLboolean glewExperimental; -GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension (const char *name); -GLEWAPI const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error); -GLEWAPI const GLubyte * GLEWAPIENTRY glewGetString (GLenum name); - -#ifdef __cplusplus -} -#endif - -#ifdef GLEW_APIENTRY_DEFINED -#undef GLEW_APIENTRY_DEFINED -#undef APIENTRY -#endif - -#ifdef GLEW_CALLBACK_DEFINED -#undef GLEW_CALLBACK_DEFINED -#undef CALLBACK -#endif - -#ifdef GLEW_WINGDIAPI_DEFINED -#undef GLEW_WINGDIAPI_DEFINED -#undef WINGDIAPI -#endif - -#undef GLAPI -/* #undef GLEWAPI */ - -#endif /* __glew_h__ */ diff --git a/lib/windows/include/GL/glxew.h b/lib/windows/include/GL/glxew.h deleted file mode 100644 index ca6cf8f..0000000 --- a/lib/windows/include/GL/glxew.h +++ /dev/null @@ -1,1771 +0,0 @@ -/* -** The OpenGL Extension Wrangler Library -** Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net> -** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org> -** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org> -** Copyright (C) 2002, Lev Povalahev -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are met: -** -** * Redistributions of source code must retain the above copyright notice, -** this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright notice, -** this list of conditions and the following disclaimer in the documentation -** and/or other materials provided with the distribution. -** * The name of the author may be used to endorse or promote products -** derived from this software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -** THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * Mesa 3-D graphics library - * Version: 7.0 - * - * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* -** Copyright (c) 2007 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -#ifndef __glxew_h__ -#define __glxew_h__ -#define __GLXEW_H__ - -#ifdef __glxext_h_ -#error glxext.h included before glxew.h -#endif - -#if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__) -#error glx.h included before glxew.h -#endif - -#define __glxext_h_ - -#define GLX_H -#define __GLX_glx_h__ -#define __glx_h__ - -#include <X11/Xlib.h> -#include <X11/Xutil.h> -#include <X11/Xmd.h> -#include <GL/glew.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* ---------------------------- GLX_VERSION_1_0 --------------------------- */ - -#ifndef GLX_VERSION_1_0 -#define GLX_VERSION_1_0 1 - -#define GLX_USE_GL 1 -#define GLX_BUFFER_SIZE 2 -#define GLX_LEVEL 3 -#define GLX_RGBA 4 -#define GLX_DOUBLEBUFFER 5 -#define GLX_STEREO 6 -#define GLX_AUX_BUFFERS 7 -#define GLX_RED_SIZE 8 -#define GLX_GREEN_SIZE 9 -#define GLX_BLUE_SIZE 10 -#define GLX_ALPHA_SIZE 11 -#define GLX_DEPTH_SIZE 12 -#define GLX_STENCIL_SIZE 13 -#define GLX_ACCUM_RED_SIZE 14 -#define GLX_ACCUM_GREEN_SIZE 15 -#define GLX_ACCUM_BLUE_SIZE 16 -#define GLX_ACCUM_ALPHA_SIZE 17 -#define GLX_BAD_SCREEN 1 -#define GLX_BAD_ATTRIBUTE 2 -#define GLX_NO_EXTENSION 3 -#define GLX_BAD_VISUAL 4 -#define GLX_BAD_CONTEXT 5 -#define GLX_BAD_VALUE 6 -#define GLX_BAD_ENUM 7 - -typedef XID GLXDrawable; -typedef XID GLXPixmap; -#ifdef __sun -typedef struct __glXContextRec *GLXContext; -#else -typedef struct __GLXcontextRec *GLXContext; -#endif - -typedef unsigned int GLXVideoDeviceNV; - -extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase); -extern Bool glXQueryVersion (Display *dpy, int *major, int *minor); -extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value); -extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList); -extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap); -extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix); -extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct); -extern void glXDestroyContext (Display *dpy, GLXContext ctx); -extern Bool glXIsDirect (Display *dpy, GLXContext ctx); -extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask); -extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx); -extern GLXContext glXGetCurrentContext (void); -extern GLXDrawable glXGetCurrentDrawable (void); -extern void glXWaitGL (void); -extern void glXWaitX (void); -extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable); -extern void glXUseXFont (Font font, int first, int count, int listBase); - -#define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0) - -#endif /* GLX_VERSION_1_0 */ - -/* ---------------------------- GLX_VERSION_1_1 --------------------------- */ - -#ifndef GLX_VERSION_1_1 -#define GLX_VERSION_1_1 - -#define GLX_VENDOR 0x1 -#define GLX_VERSION 0x2 -#define GLX_EXTENSIONS 0x3 - -extern const char* glXQueryExtensionsString (Display *dpy, int screen); -extern const char* glXGetClientString (Display *dpy, int name); -extern const char* glXQueryServerString (Display *dpy, int screen, int name); - -#define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1) - -#endif /* GLX_VERSION_1_1 */ - -/* ---------------------------- GLX_VERSION_1_2 ---------------------------- */ - -#ifndef GLX_VERSION_1_2 -#define GLX_VERSION_1_2 1 - -typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void); - -#define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay) - -#define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2) - -#endif /* GLX_VERSION_1_2 */ - -/* ---------------------------- GLX_VERSION_1_3 ---------------------------- */ - -#ifndef GLX_VERSION_1_3 -#define GLX_VERSION_1_3 1 - -#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 -#define GLX_RGBA_BIT 0x00000001 -#define GLX_WINDOW_BIT 0x00000001 -#define GLX_COLOR_INDEX_BIT 0x00000002 -#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 -#define GLX_PIXMAP_BIT 0x00000002 -#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 -#define GLX_PBUFFER_BIT 0x00000004 -#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 -#define GLX_AUX_BUFFERS_BIT 0x00000010 -#define GLX_CONFIG_CAVEAT 0x20 -#define GLX_DEPTH_BUFFER_BIT 0x00000020 -#define GLX_X_VISUAL_TYPE 0x22 -#define GLX_TRANSPARENT_TYPE 0x23 -#define GLX_TRANSPARENT_INDEX_VALUE 0x24 -#define GLX_TRANSPARENT_RED_VALUE 0x25 -#define GLX_TRANSPARENT_GREEN_VALUE 0x26 -#define GLX_TRANSPARENT_BLUE_VALUE 0x27 -#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 -#define GLX_STENCIL_BUFFER_BIT 0x00000040 -#define GLX_ACCUM_BUFFER_BIT 0x00000080 -#define GLX_NONE 0x8000 -#define GLX_SLOW_CONFIG 0x8001 -#define GLX_TRUE_COLOR 0x8002 -#define GLX_DIRECT_COLOR 0x8003 -#define GLX_PSEUDO_COLOR 0x8004 -#define GLX_STATIC_COLOR 0x8005 -#define GLX_GRAY_SCALE 0x8006 -#define GLX_STATIC_GRAY 0x8007 -#define GLX_TRANSPARENT_RGB 0x8008 -#define GLX_TRANSPARENT_INDEX 0x8009 -#define GLX_VISUAL_ID 0x800B -#define GLX_SCREEN 0x800C -#define GLX_NON_CONFORMANT_CONFIG 0x800D -#define GLX_DRAWABLE_TYPE 0x8010 -#define GLX_RENDER_TYPE 0x8011 -#define GLX_X_RENDERABLE 0x8012 -#define GLX_FBCONFIG_ID 0x8013 -#define GLX_RGBA_TYPE 0x8014 -#define GLX_COLOR_INDEX_TYPE 0x8015 -#define GLX_MAX_PBUFFER_WIDTH 0x8016 -#define GLX_MAX_PBUFFER_HEIGHT 0x8017 -#define GLX_MAX_PBUFFER_PIXELS 0x8018 -#define GLX_PRESERVED_CONTENTS 0x801B -#define GLX_LARGEST_PBUFFER 0x801C -#define GLX_WIDTH 0x801D -#define GLX_HEIGHT 0x801E -#define GLX_EVENT_MASK 0x801F -#define GLX_DAMAGED 0x8020 -#define GLX_SAVED 0x8021 -#define GLX_WINDOW 0x8022 -#define GLX_PBUFFER 0x8023 -#define GLX_PBUFFER_HEIGHT 0x8040 -#define GLX_PBUFFER_WIDTH 0x8041 -#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 -#define GLX_DONT_CARE 0xFFFFFFFF - -typedef XID GLXFBConfigID; -typedef XID GLXPbuffer; -typedef XID GLXWindow; -typedef struct __GLXFBConfigRec *GLXFBConfig; - -typedef struct { - int event_type; - int draw_type; - unsigned long serial; - Bool send_event; - Display *display; - GLXDrawable drawable; - unsigned int buffer_mask; - unsigned int aux_buffer; - int x, y; - int width, height; - int count; -} GLXPbufferClobberEvent; -typedef union __GLXEvent { - GLXPbufferClobberEvent glxpbufferclobber; - long pad[24]; -} GLXEvent; - -typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); -typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); -typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); -typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); -typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); -typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); -typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); -typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); -typedef GLXFBConfig* ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); -typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); -typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); -typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx); -typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); -typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); -typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); - -#define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig) -#define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext) -#define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer) -#define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap) -#define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow) -#define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer) -#define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap) -#define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow) -#define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable) -#define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib) -#define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs) -#define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent) -#define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig) -#define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent) -#define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext) -#define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable) -#define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent) - -#define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3) - -#endif /* GLX_VERSION_1_3 */ - -/* ---------------------------- GLX_VERSION_1_4 ---------------------------- */ - -#ifndef GLX_VERSION_1_4 -#define GLX_VERSION_1_4 1 - -#define GLX_SAMPLE_BUFFERS 100000 -#define GLX_SAMPLES 100001 - -extern void ( * glXGetProcAddress (const GLubyte *procName)) (void); - -#define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4) - -#endif /* GLX_VERSION_1_4 */ - -/* -------------------------- GLX_3DFX_multisample ------------------------- */ - -#ifndef GLX_3DFX_multisample -#define GLX_3DFX_multisample 1 - -#define GLX_SAMPLE_BUFFERS_3DFX 0x8050 -#define GLX_SAMPLES_3DFX 0x8051 - -#define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample) - -#endif /* GLX_3DFX_multisample */ - -/* ------------------------ GLX_AMD_gpu_association ------------------------ */ - -#ifndef GLX_AMD_gpu_association -#define GLX_AMD_gpu_association 1 - -#define GLX_GPU_VENDOR_AMD 0x1F00 -#define GLX_GPU_RENDERER_STRING_AMD 0x1F01 -#define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 -#define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 -#define GLX_GPU_RAM_AMD 0x21A3 -#define GLX_GPU_CLOCK_AMD 0x21A4 -#define GLX_GPU_NUM_PIPES_AMD 0x21A5 -#define GLX_GPU_NUM_SIMD_AMD 0x21A6 -#define GLX_GPU_NUM_RB_AMD 0x21A7 -#define GLX_GPU_NUM_SPI_AMD 0x21A8 - -typedef void ( * PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC) (GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef GLXContext ( * PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC) (unsigned int id, GLXContext share_list); -typedef GLXContext ( * PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (unsigned int id, GLXContext share_context, const int* attribList); -typedef Bool ( * PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC) (GLXContext ctx); -typedef unsigned int ( * PFNGLXGETCONTEXTGPUIDAMDPROC) (GLXContext ctx); -typedef GLXContext ( * PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); -typedef unsigned int ( * PFNGLXGETGPUIDSAMDPROC) (unsigned int maxCount, unsigned int* ids); -typedef int ( * PFNGLXGETGPUINFOAMDPROC) (unsigned int id, int property, GLenum dataType, unsigned int size, void* data); -typedef Bool ( * PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (GLXContext ctx); - -#define glXBlitContextFramebufferAMD GLXEW_GET_FUN(__glewXBlitContextFramebufferAMD) -#define glXCreateAssociatedContextAMD GLXEW_GET_FUN(__glewXCreateAssociatedContextAMD) -#define glXCreateAssociatedContextAttribsAMD GLXEW_GET_FUN(__glewXCreateAssociatedContextAttribsAMD) -#define glXDeleteAssociatedContextAMD GLXEW_GET_FUN(__glewXDeleteAssociatedContextAMD) -#define glXGetContextGPUIDAMD GLXEW_GET_FUN(__glewXGetContextGPUIDAMD) -#define glXGetCurrentAssociatedContextAMD GLXEW_GET_FUN(__glewXGetCurrentAssociatedContextAMD) -#define glXGetGPUIDsAMD GLXEW_GET_FUN(__glewXGetGPUIDsAMD) -#define glXGetGPUInfoAMD GLXEW_GET_FUN(__glewXGetGPUInfoAMD) -#define glXMakeAssociatedContextCurrentAMD GLXEW_GET_FUN(__glewXMakeAssociatedContextCurrentAMD) - -#define GLXEW_AMD_gpu_association GLXEW_GET_VAR(__GLXEW_AMD_gpu_association) - -#endif /* GLX_AMD_gpu_association */ - -/* --------------------- GLX_ARB_context_flush_control --------------------- */ - -#ifndef GLX_ARB_context_flush_control -#define GLX_ARB_context_flush_control 1 - -#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0x0000 -#define GLX_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097 -#define GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098 - -#define GLXEW_ARB_context_flush_control GLXEW_GET_VAR(__GLXEW_ARB_context_flush_control) - -#endif /* GLX_ARB_context_flush_control */ - -/* ------------------------- GLX_ARB_create_context ------------------------ */ - -#ifndef GLX_ARB_create_context -#define GLX_ARB_create_context 1 - -#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001 -#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 -#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 -#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 -#define GLX_CONTEXT_FLAGS_ARB 0x2094 - -typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); - -#define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB) - -#define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context) - -#endif /* GLX_ARB_create_context */ - -/* --------------------- GLX_ARB_create_context_profile -------------------- */ - -#ifndef GLX_ARB_create_context_profile -#define GLX_ARB_create_context_profile 1 - -#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 -#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 -#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 - -#define GLXEW_ARB_create_context_profile GLXEW_GET_VAR(__GLXEW_ARB_create_context_profile) - -#endif /* GLX_ARB_create_context_profile */ - -/* ------------------- GLX_ARB_create_context_robustness ------------------- */ - -#ifndef GLX_ARB_create_context_robustness -#define GLX_ARB_create_context_robustness 1 - -#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261 - -#define GLXEW_ARB_create_context_robustness GLXEW_GET_VAR(__GLXEW_ARB_create_context_robustness) - -#endif /* GLX_ARB_create_context_robustness */ - -/* ------------------------- GLX_ARB_fbconfig_float ------------------------ */ - -#ifndef GLX_ARB_fbconfig_float -#define GLX_ARB_fbconfig_float 1 - -#define GLX_RGBA_FLOAT_BIT 0x00000004 -#define GLX_RGBA_FLOAT_TYPE 0x20B9 - -#define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float) - -#endif /* GLX_ARB_fbconfig_float */ - -/* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */ - -#ifndef GLX_ARB_framebuffer_sRGB -#define GLX_ARB_framebuffer_sRGB 1 - -#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2 - -#define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB) - -#endif /* GLX_ARB_framebuffer_sRGB */ - -/* ------------------------ GLX_ARB_get_proc_address ----------------------- */ - -#ifndef GLX_ARB_get_proc_address -#define GLX_ARB_get_proc_address 1 - -extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void); - -#define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address) - -#endif /* GLX_ARB_get_proc_address */ - -/* -------------------------- GLX_ARB_multisample -------------------------- */ - -#ifndef GLX_ARB_multisample -#define GLX_ARB_multisample 1 - -#define GLX_SAMPLE_BUFFERS_ARB 100000 -#define GLX_SAMPLES_ARB 100001 - -#define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample) - -#endif /* GLX_ARB_multisample */ - -/* ---------------- GLX_ARB_robustness_application_isolation --------------- */ - -#ifndef GLX_ARB_robustness_application_isolation -#define GLX_ARB_robustness_application_isolation 1 - -#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 - -#define GLXEW_ARB_robustness_application_isolation GLXEW_GET_VAR(__GLXEW_ARB_robustness_application_isolation) - -#endif /* GLX_ARB_robustness_application_isolation */ - -/* ---------------- GLX_ARB_robustness_share_group_isolation --------------- */ - -#ifndef GLX_ARB_robustness_share_group_isolation -#define GLX_ARB_robustness_share_group_isolation 1 - -#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 - -#define GLXEW_ARB_robustness_share_group_isolation GLXEW_GET_VAR(__GLXEW_ARB_robustness_share_group_isolation) - -#endif /* GLX_ARB_robustness_share_group_isolation */ - -/* ---------------------- GLX_ARB_vertex_buffer_object --------------------- */ - -#ifndef GLX_ARB_vertex_buffer_object -#define GLX_ARB_vertex_buffer_object 1 - -#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095 - -#define GLXEW_ARB_vertex_buffer_object GLXEW_GET_VAR(__GLXEW_ARB_vertex_buffer_object) - -#endif /* GLX_ARB_vertex_buffer_object */ - -/* ----------------------- GLX_ATI_pixel_format_float ---------------------- */ - -#ifndef GLX_ATI_pixel_format_float -#define GLX_ATI_pixel_format_float 1 - -#define GLX_RGBA_FLOAT_ATI_BIT 0x00000100 - -#define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float) - -#endif /* GLX_ATI_pixel_format_float */ - -/* ------------------------- GLX_ATI_render_texture ------------------------ */ - -#ifndef GLX_ATI_render_texture -#define GLX_ATI_render_texture 1 - -#define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800 -#define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801 -#define GLX_TEXTURE_FORMAT_ATI 0x9802 -#define GLX_TEXTURE_TARGET_ATI 0x9803 -#define GLX_MIPMAP_TEXTURE_ATI 0x9804 -#define GLX_TEXTURE_RGB_ATI 0x9805 -#define GLX_TEXTURE_RGBA_ATI 0x9806 -#define GLX_NO_TEXTURE_ATI 0x9807 -#define GLX_TEXTURE_CUBE_MAP_ATI 0x9808 -#define GLX_TEXTURE_1D_ATI 0x9809 -#define GLX_TEXTURE_2D_ATI 0x980A -#define GLX_MIPMAP_LEVEL_ATI 0x980B -#define GLX_CUBE_MAP_FACE_ATI 0x980C -#define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D -#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E -#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F -#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810 -#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811 -#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812 -#define GLX_FRONT_LEFT_ATI 0x9813 -#define GLX_FRONT_RIGHT_ATI 0x9814 -#define GLX_BACK_LEFT_ATI 0x9815 -#define GLX_BACK_RIGHT_ATI 0x9816 -#define GLX_AUX0_ATI 0x9817 -#define GLX_AUX1_ATI 0x9818 -#define GLX_AUX2_ATI 0x9819 -#define GLX_AUX3_ATI 0x981A -#define GLX_AUX4_ATI 0x981B -#define GLX_AUX5_ATI 0x981C -#define GLX_AUX6_ATI 0x981D -#define GLX_AUX7_ATI 0x981E -#define GLX_AUX8_ATI 0x981F -#define GLX_AUX9_ATI 0x9820 -#define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821 -#define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822 - -typedef void ( * PFNGLXBINDTEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); -typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC) (Display *dpy, GLXDrawable draw, const int *attrib_list); -typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); - -#define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI) -#define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI) -#define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI) - -#define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture) - -#endif /* GLX_ATI_render_texture */ - -/* --------------------------- GLX_EXT_buffer_age -------------------------- */ - -#ifndef GLX_EXT_buffer_age -#define GLX_EXT_buffer_age 1 - -#define GLX_BACK_BUFFER_AGE_EXT 0x20F4 - -#define GLXEW_EXT_buffer_age GLXEW_GET_VAR(__GLXEW_EXT_buffer_age) - -#endif /* GLX_EXT_buffer_age */ - -/* ------------------- GLX_EXT_create_context_es2_profile ------------------ */ - -#ifndef GLX_EXT_create_context_es2_profile -#define GLX_EXT_create_context_es2_profile 1 - -#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 - -#define GLXEW_EXT_create_context_es2_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es2_profile) - -#endif /* GLX_EXT_create_context_es2_profile */ - -/* ------------------- GLX_EXT_create_context_es_profile ------------------- */ - -#ifndef GLX_EXT_create_context_es_profile -#define GLX_EXT_create_context_es_profile 1 - -#define GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004 - -#define GLXEW_EXT_create_context_es_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es_profile) - -#endif /* GLX_EXT_create_context_es_profile */ - -/* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */ - -#ifndef GLX_EXT_fbconfig_packed_float -#define GLX_EXT_fbconfig_packed_float 1 - -#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 -#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 - -#define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float) - -#endif /* GLX_EXT_fbconfig_packed_float */ - -/* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */ - -#ifndef GLX_EXT_framebuffer_sRGB -#define GLX_EXT_framebuffer_sRGB 1 - -#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 - -#define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB) - -#endif /* GLX_EXT_framebuffer_sRGB */ - -/* ------------------------- GLX_EXT_import_context ------------------------ */ - -#ifndef GLX_EXT_import_context -#define GLX_EXT_import_context 1 - -#define GLX_SHARE_CONTEXT_EXT 0x800A -#define GLX_VISUAL_ID_EXT 0x800B -#define GLX_SCREEN_EXT 0x800C - -typedef XID GLXContextID; - -typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context); -typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); -typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID); -typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute,int *value); - -#define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT) -#define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT) -#define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT) -#define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT) - -#define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context) - -#endif /* GLX_EXT_import_context */ - -/* -------------------------- GLX_EXT_scene_marker ------------------------- */ - -#ifndef GLX_EXT_scene_marker -#define GLX_EXT_scene_marker 1 - -#define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker) - -#endif /* GLX_EXT_scene_marker */ - -/* -------------------------- GLX_EXT_stereo_tree -------------------------- */ - -#ifndef GLX_EXT_stereo_tree -#define GLX_EXT_stereo_tree 1 - -#define GLX_STEREO_NOTIFY_EXT 0x00000000 -#define GLX_STEREO_NOTIFY_MASK_EXT 0x00000001 -#define GLX_STEREO_TREE_EXT 0x20F5 - -#define GLXEW_EXT_stereo_tree GLXEW_GET_VAR(__GLXEW_EXT_stereo_tree) - -#endif /* GLX_EXT_stereo_tree */ - -/* -------------------------- GLX_EXT_swap_control ------------------------- */ - -#ifndef GLX_EXT_swap_control -#define GLX_EXT_swap_control 1 - -#define GLX_SWAP_INTERVAL_EXT 0x20F1 -#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 - -typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval); - -#define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT) - -#define GLXEW_EXT_swap_control GLXEW_GET_VAR(__GLXEW_EXT_swap_control) - -#endif /* GLX_EXT_swap_control */ - -/* ----------------------- GLX_EXT_swap_control_tear ----------------------- */ - -#ifndef GLX_EXT_swap_control_tear -#define GLX_EXT_swap_control_tear 1 - -#define GLX_LATE_SWAPS_TEAR_EXT 0x20F3 - -#define GLXEW_EXT_swap_control_tear GLXEW_GET_VAR(__GLXEW_EXT_swap_control_tear) - -#endif /* GLX_EXT_swap_control_tear */ - -/* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */ - -#ifndef GLX_EXT_texture_from_pixmap -#define GLX_EXT_texture_from_pixmap 1 - -#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 -#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 -#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 -#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 -#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 -#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 -#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 -#define GLX_Y_INVERTED_EXT 0x20D4 -#define GLX_TEXTURE_FORMAT_EXT 0x20D5 -#define GLX_TEXTURE_TARGET_EXT 0x20D6 -#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 -#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 -#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 -#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA -#define GLX_TEXTURE_1D_EXT 0x20DB -#define GLX_TEXTURE_2D_EXT 0x20DC -#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD -#define GLX_FRONT_LEFT_EXT 0x20DE -#define GLX_FRONT_RIGHT_EXT 0x20DF -#define GLX_BACK_LEFT_EXT 0x20E0 -#define GLX_BACK_RIGHT_EXT 0x20E1 -#define GLX_AUX0_EXT 0x20E2 -#define GLX_AUX1_EXT 0x20E3 -#define GLX_AUX2_EXT 0x20E4 -#define GLX_AUX3_EXT 0x20E5 -#define GLX_AUX4_EXT 0x20E6 -#define GLX_AUX5_EXT 0x20E7 -#define GLX_AUX6_EXT 0x20E8 -#define GLX_AUX7_EXT 0x20E9 -#define GLX_AUX8_EXT 0x20EA -#define GLX_AUX9_EXT 0x20EB - -typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list); -typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer); - -#define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT) -#define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT) - -#define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap) - -#endif /* GLX_EXT_texture_from_pixmap */ - -/* -------------------------- GLX_EXT_visual_info -------------------------- */ - -#ifndef GLX_EXT_visual_info -#define GLX_EXT_visual_info 1 - -#define GLX_X_VISUAL_TYPE_EXT 0x22 -#define GLX_TRANSPARENT_TYPE_EXT 0x23 -#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 -#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 -#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 -#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 -#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 -#define GLX_NONE_EXT 0x8000 -#define GLX_TRUE_COLOR_EXT 0x8002 -#define GLX_DIRECT_COLOR_EXT 0x8003 -#define GLX_PSEUDO_COLOR_EXT 0x8004 -#define GLX_STATIC_COLOR_EXT 0x8005 -#define GLX_GRAY_SCALE_EXT 0x8006 -#define GLX_STATIC_GRAY_EXT 0x8007 -#define GLX_TRANSPARENT_RGB_EXT 0x8008 -#define GLX_TRANSPARENT_INDEX_EXT 0x8009 - -#define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info) - -#endif /* GLX_EXT_visual_info */ - -/* ------------------------- GLX_EXT_visual_rating ------------------------- */ - -#ifndef GLX_EXT_visual_rating -#define GLX_EXT_visual_rating 1 - -#define GLX_VISUAL_CAVEAT_EXT 0x20 -#define GLX_SLOW_VISUAL_EXT 0x8001 -#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D - -#define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating) - -#endif /* GLX_EXT_visual_rating */ - -/* -------------------------- GLX_INTEL_swap_event ------------------------- */ - -#ifndef GLX_INTEL_swap_event -#define GLX_INTEL_swap_event 1 - -#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180 -#define GLX_COPY_COMPLETE_INTEL 0x8181 -#define GLX_FLIP_COMPLETE_INTEL 0x8182 -#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000 - -#define GLXEW_INTEL_swap_event GLXEW_GET_VAR(__GLXEW_INTEL_swap_event) - -#endif /* GLX_INTEL_swap_event */ - -/* -------------------------- GLX_MESA_agp_offset -------------------------- */ - -#ifndef GLX_MESA_agp_offset -#define GLX_MESA_agp_offset 1 - -typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer); - -#define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA) - -#define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset) - -#endif /* GLX_MESA_agp_offset */ - -/* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */ - -#ifndef GLX_MESA_copy_sub_buffer -#define GLX_MESA_copy_sub_buffer 1 - -typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height); - -#define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA) - -#define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer) - -#endif /* GLX_MESA_copy_sub_buffer */ - -/* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */ - -#ifndef GLX_MESA_pixmap_colormap -#define GLX_MESA_pixmap_colormap 1 - -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); - -#define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA) - -#define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap) - -#endif /* GLX_MESA_pixmap_colormap */ - -/* ------------------------ GLX_MESA_query_renderer ------------------------ */ - -#ifndef GLX_MESA_query_renderer -#define GLX_MESA_query_renderer 1 - -#define GLX_RENDERER_VENDOR_ID_MESA 0x8183 -#define GLX_RENDERER_DEVICE_ID_MESA 0x8184 -#define GLX_RENDERER_VERSION_MESA 0x8185 -#define GLX_RENDERER_ACCELERATED_MESA 0x8186 -#define GLX_RENDERER_VIDEO_MEMORY_MESA 0x8187 -#define GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA 0x8188 -#define GLX_RENDERER_PREFERRED_PROFILE_MESA 0x8189 -#define GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA 0x818A -#define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B -#define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C -#define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D -#define GLX_RENDERER_ID_MESA 0x818E - -typedef Bool ( * PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC) (int attribute, unsigned int* value); -typedef const char* ( * PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC) (int attribute); -typedef Bool ( * PFNGLXQUERYRENDERERINTEGERMESAPROC) (Display* dpy, int screen, int renderer, int attribute, unsigned int *value); -typedef const char* ( * PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display *dpy, int screen, int renderer, int attribute); - -#define glXQueryCurrentRendererIntegerMESA GLXEW_GET_FUN(__glewXQueryCurrentRendererIntegerMESA) -#define glXQueryCurrentRendererStringMESA GLXEW_GET_FUN(__glewXQueryCurrentRendererStringMESA) -#define glXQueryRendererIntegerMESA GLXEW_GET_FUN(__glewXQueryRendererIntegerMESA) -#define glXQueryRendererStringMESA GLXEW_GET_FUN(__glewXQueryRendererStringMESA) - -#define GLXEW_MESA_query_renderer GLXEW_GET_VAR(__GLXEW_MESA_query_renderer) - -#endif /* GLX_MESA_query_renderer */ - -/* ------------------------ GLX_MESA_release_buffers ----------------------- */ - -#ifndef GLX_MESA_release_buffers -#define GLX_MESA_release_buffers 1 - -typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d); - -#define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA) - -#define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers) - -#endif /* GLX_MESA_release_buffers */ - -/* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */ - -#ifndef GLX_MESA_set_3dfx_mode -#define GLX_MESA_set_3dfx_mode 1 - -#define GLX_3DFX_WINDOW_MODE_MESA 0x1 -#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 - -typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode); - -#define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA) - -#define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode) - -#endif /* GLX_MESA_set_3dfx_mode */ - -/* ------------------------- GLX_MESA_swap_control ------------------------- */ - -#ifndef GLX_MESA_swap_control -#define GLX_MESA_swap_control 1 - -typedef int ( * PFNGLXGETSWAPINTERVALMESAPROC) (void); -typedef int ( * PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval); - -#define glXGetSwapIntervalMESA GLXEW_GET_FUN(__glewXGetSwapIntervalMESA) -#define glXSwapIntervalMESA GLXEW_GET_FUN(__glewXSwapIntervalMESA) - -#define GLXEW_MESA_swap_control GLXEW_GET_VAR(__GLXEW_MESA_swap_control) - -#endif /* GLX_MESA_swap_control */ - -/* --------------------------- GLX_NV_copy_buffer -------------------------- */ - -#ifndef GLX_NV_copy_buffer -#define GLX_NV_copy_buffer 1 - -typedef void ( * PFNGLXCOPYBUFFERSUBDATANVPROC) (Display* dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void ( * PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC) (Display* dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); - -#define glXCopyBufferSubDataNV GLXEW_GET_FUN(__glewXCopyBufferSubDataNV) -#define glXNamedCopyBufferSubDataNV GLXEW_GET_FUN(__glewXNamedCopyBufferSubDataNV) - -#define GLXEW_NV_copy_buffer GLXEW_GET_VAR(__GLXEW_NV_copy_buffer) - -#endif /* GLX_NV_copy_buffer */ - -/* --------------------------- GLX_NV_copy_image --------------------------- */ - -#ifndef GLX_NV_copy_image -#define GLX_NV_copy_image 1 - -typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); - -#define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV) - -#define GLXEW_NV_copy_image GLXEW_GET_VAR(__GLXEW_NV_copy_image) - -#endif /* GLX_NV_copy_image */ - -/* ------------------------ GLX_NV_delay_before_swap ----------------------- */ - -#ifndef GLX_NV_delay_before_swap -#define GLX_NV_delay_before_swap 1 - -typedef Bool ( * PFNGLXDELAYBEFORESWAPNVPROC) (Display* dpy, GLXDrawable drawable, GLfloat seconds); - -#define glXDelayBeforeSwapNV GLXEW_GET_FUN(__glewXDelayBeforeSwapNV) - -#define GLXEW_NV_delay_before_swap GLXEW_GET_VAR(__GLXEW_NV_delay_before_swap) - -#endif /* GLX_NV_delay_before_swap */ - -/* -------------------------- GLX_NV_float_buffer -------------------------- */ - -#ifndef GLX_NV_float_buffer -#define GLX_NV_float_buffer 1 - -#define GLX_FLOAT_COMPONENTS_NV 0x20B0 - -#define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer) - -#endif /* GLX_NV_float_buffer */ - -/* ---------------------- GLX_NV_multisample_coverage ---------------------- */ - -#ifndef GLX_NV_multisample_coverage -#define GLX_NV_multisample_coverage 1 - -#define GLX_COLOR_SAMPLES_NV 0x20B3 -#define GLX_COVERAGE_SAMPLES_NV 100001 - -#define GLXEW_NV_multisample_coverage GLXEW_GET_VAR(__GLXEW_NV_multisample_coverage) - -#endif /* GLX_NV_multisample_coverage */ - -/* -------------------------- GLX_NV_present_video ------------------------- */ - -#ifndef GLX_NV_present_video -#define GLX_NV_present_video 1 - -#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 - -typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); -typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); - -#define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV) -#define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV) - -#define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video) - -#endif /* GLX_NV_present_video */ - -/* --------------------------- GLX_NV_swap_group --------------------------- */ - -#ifndef GLX_NV_swap_group -#define GLX_NV_swap_group 1 - -typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier); -typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group); -typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count); -typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); -typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); -typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen); - -#define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV) -#define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV) -#define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV) -#define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV) -#define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV) -#define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV) - -#define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group) - -#endif /* GLX_NV_swap_group */ - -/* ----------------------- GLX_NV_vertex_array_range ----------------------- */ - -#ifndef GLX_NV_vertex_array_range -#define GLX_NV_vertex_array_range 1 - -typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); -typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer); - -#define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV) -#define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV) - -#define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range) - -#endif /* GLX_NV_vertex_array_range */ - -/* -------------------------- GLX_NV_video_capture ------------------------- */ - -#ifndef GLX_NV_video_capture -#define GLX_NV_video_capture 1 - -#define GLX_DEVICE_ID_NV 0x20CD -#define GLX_UNIQUE_ID_NV 0x20CE -#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF - -typedef XID GLXVideoCaptureDeviceNV; - -typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); -typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int *nelements); -typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); -typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); -typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); - -#define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV) -#define glXEnumerateVideoCaptureDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoCaptureDevicesNV) -#define glXLockVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXLockVideoCaptureDeviceNV) -#define glXQueryVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXQueryVideoCaptureDeviceNV) -#define glXReleaseVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoCaptureDeviceNV) - -#define GLXEW_NV_video_capture GLXEW_GET_VAR(__GLXEW_NV_video_capture) - -#endif /* GLX_NV_video_capture */ - -/* ---------------------------- GLX_NV_video_out --------------------------- */ - -#ifndef GLX_NV_video_out -#define GLX_NV_video_out 1 - -#define GLX_VIDEO_OUT_COLOR_NV 0x20C3 -#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 -#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 -#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 -#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 -#define GLX_VIDEO_OUT_FRAME_NV 0x20C8 -#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 -#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA -#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB -#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC - -typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); -typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); -typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice); -typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf); -typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); - -#define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV) -#define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV) -#define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV) -#define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV) -#define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV) -#define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV) - -#define GLXEW_NV_video_out GLXEW_GET_VAR(__GLXEW_NV_video_out) - -#endif /* GLX_NV_video_out */ - -/* -------------------------- GLX_OML_swap_method -------------------------- */ - -#ifndef GLX_OML_swap_method -#define GLX_OML_swap_method 1 - -#define GLX_SWAP_METHOD_OML 0x8060 -#define GLX_SWAP_EXCHANGE_OML 0x8061 -#define GLX_SWAP_COPY_OML 0x8062 -#define GLX_SWAP_UNDEFINED_OML 0x8063 - -#define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method) - -#endif /* GLX_OML_swap_method */ - -/* -------------------------- GLX_OML_sync_control ------------------------- */ - -#ifndef GLX_OML_sync_control -#define GLX_OML_sync_control 1 - -typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator); -typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc); -typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); -typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc); -typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc); - -#define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML) -#define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML) -#define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML) -#define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML) -#define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML) - -#define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control) - -#endif /* GLX_OML_sync_control */ - -/* ------------------------ GLX_SGIS_blended_overlay ----------------------- */ - -#ifndef GLX_SGIS_blended_overlay -#define GLX_SGIS_blended_overlay 1 - -#define GLX_BLENDED_RGBA_SGIS 0x8025 - -#define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay) - -#endif /* GLX_SGIS_blended_overlay */ - -/* -------------------------- GLX_SGIS_color_range ------------------------- */ - -#ifndef GLX_SGIS_color_range -#define GLX_SGIS_color_range 1 - -#define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range) - -#endif /* GLX_SGIS_color_range */ - -/* -------------------------- GLX_SGIS_multisample ------------------------- */ - -#ifndef GLX_SGIS_multisample -#define GLX_SGIS_multisample 1 - -#define GLX_SAMPLE_BUFFERS_SGIS 100000 -#define GLX_SAMPLES_SGIS 100001 - -#define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample) - -#endif /* GLX_SGIS_multisample */ - -/* ---------------------- GLX_SGIS_shared_multisample ---------------------- */ - -#ifndef GLX_SGIS_shared_multisample -#define GLX_SGIS_shared_multisample 1 - -#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 -#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 - -#define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample) - -#endif /* GLX_SGIS_shared_multisample */ - -/* --------------------------- GLX_SGIX_fbconfig --------------------------- */ - -#ifndef GLX_SGIX_fbconfig -#define GLX_SGIX_fbconfig 1 - -#define GLX_RGBA_BIT_SGIX 0x00000001 -#define GLX_WINDOW_BIT_SGIX 0x00000001 -#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 -#define GLX_PIXMAP_BIT_SGIX 0x00000002 -#define GLX_SCREEN_EXT 0x800C -#define GLX_DRAWABLE_TYPE_SGIX 0x8010 -#define GLX_RENDER_TYPE_SGIX 0x8011 -#define GLX_X_RENDERABLE_SGIX 0x8012 -#define GLX_FBCONFIG_ID_SGIX 0x8013 -#define GLX_RGBA_TYPE_SGIX 0x8014 -#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 - -typedef XID GLXFBConfigIDSGIX; -typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; - -typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, Pixmap pixmap); -typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int *value); -typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo *vis); -typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfig config); - -#define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX) -#define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX) -#define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX) -#define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX) -#define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX) -#define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX) - -#define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig) - -#endif /* GLX_SGIX_fbconfig */ - -/* --------------------------- GLX_SGIX_hyperpipe -------------------------- */ - -#ifndef GLX_SGIX_hyperpipe -#define GLX_SGIX_hyperpipe 1 - -#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 -#define GLX_PIPE_RECT_SGIX 0x00000001 -#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 -#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 -#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 -#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 -#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 -#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 -#define GLX_BAD_HYPERPIPE_SGIX 92 -#define GLX_HYPERPIPE_ID_SGIX 0x8030 - -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int networkId; -} GLXHyperpipeNetworkSGIX; -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int XOrigin; - int YOrigin; - int maxHeight; - int maxWidth; -} GLXPipeRectLimits; -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int channel; - unsigned int participationType; - int timeSlice; -} GLXHyperpipeConfigSGIX; -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int srcXOrigin; - int srcYOrigin; - int srcWidth; - int srcHeight; - int destXOrigin; - int destYOrigin; - int destWidth; - int destHeight; -} GLXPipeRect; - -typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); -typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); -typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); -typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); -typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); -typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); -typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); -typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); - -#define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX) -#define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX) -#define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX) -#define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX) -#define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX) -#define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX) -#define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX) -#define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX) - -#define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe) - -#endif /* GLX_SGIX_hyperpipe */ - -/* ---------------------------- GLX_SGIX_pbuffer --------------------------- */ - -#ifndef GLX_SGIX_pbuffer -#define GLX_SGIX_pbuffer 1 - -#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 -#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 -#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 -#define GLX_PBUFFER_BIT_SGIX 0x00000004 -#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 -#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 -#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 -#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 -#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 -#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 -#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 -#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 -#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 -#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 -#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A -#define GLX_PRESERVED_CONTENTS_SGIX 0x801B -#define GLX_LARGEST_PBUFFER_SGIX 0x801C -#define GLX_WIDTH_SGIX 0x801D -#define GLX_HEIGHT_SGIX 0x801E -#define GLX_EVENT_MASK_SGIX 0x801F -#define GLX_DAMAGED_SGIX 0x8020 -#define GLX_SAVED_SGIX 0x8021 -#define GLX_WINDOW_SGIX 0x8022 -#define GLX_PBUFFER_SGIX 0x8023 -#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 - -typedef XID GLXPbufferSGIX; -typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX; - -typedef GLXPbuffer ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list); -typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf); -typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long *mask); -typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf, int attribute, unsigned int *value); -typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask); - -#define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX) -#define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX) -#define glXGetSelectedEventSGIX GLXEW_GET_FUN(__glewXGetSelectedEventSGIX) -#define glXQueryGLXPbufferSGIX GLXEW_GET_FUN(__glewXQueryGLXPbufferSGIX) -#define glXSelectEventSGIX GLXEW_GET_FUN(__glewXSelectEventSGIX) - -#define GLXEW_SGIX_pbuffer GLXEW_GET_VAR(__GLXEW_SGIX_pbuffer) - -#endif /* GLX_SGIX_pbuffer */ - -/* ------------------------- GLX_SGIX_swap_barrier ------------------------- */ - -#ifndef GLX_SGIX_swap_barrier -#define GLX_SGIX_swap_barrier 1 - -typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); -typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); - -#define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX) -#define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX) - -#define GLXEW_SGIX_swap_barrier GLXEW_GET_VAR(__GLXEW_SGIX_swap_barrier) - -#endif /* GLX_SGIX_swap_barrier */ - -/* -------------------------- GLX_SGIX_swap_group -------------------------- */ - -#ifndef GLX_SGIX_swap_group -#define GLX_SGIX_swap_group 1 - -typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); - -#define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX) - -#define GLXEW_SGIX_swap_group GLXEW_GET_VAR(__GLXEW_SGIX_swap_group) - -#endif /* GLX_SGIX_swap_group */ - -/* ------------------------- GLX_SGIX_video_resize ------------------------- */ - -#ifndef GLX_SGIX_video_resize -#define GLX_SGIX_video_resize 1 - -#define GLX_SYNC_FRAME_SGIX 0x00000000 -#define GLX_SYNC_SWAP_SGIX 0x00000001 - -typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window); -typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h); -typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype); -typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int *x, int *y, int *w, int *h); -typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); - -#define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX) -#define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX) -#define glXChannelRectSyncSGIX GLXEW_GET_FUN(__glewXChannelRectSyncSGIX) -#define glXQueryChannelDeltasSGIX GLXEW_GET_FUN(__glewXQueryChannelDeltasSGIX) -#define glXQueryChannelRectSGIX GLXEW_GET_FUN(__glewXQueryChannelRectSGIX) - -#define GLXEW_SGIX_video_resize GLXEW_GET_VAR(__GLXEW_SGIX_video_resize) - -#endif /* GLX_SGIX_video_resize */ - -/* ---------------------- GLX_SGIX_visual_select_group --------------------- */ - -#ifndef GLX_SGIX_visual_select_group -#define GLX_SGIX_visual_select_group 1 - -#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 - -#define GLXEW_SGIX_visual_select_group GLXEW_GET_VAR(__GLXEW_SGIX_visual_select_group) - -#endif /* GLX_SGIX_visual_select_group */ - -/* ---------------------------- GLX_SGI_cushion ---------------------------- */ - -#ifndef GLX_SGI_cushion -#define GLX_SGI_cushion 1 - -typedef void ( * PFNGLXCUSHIONSGIPROC) (Display* dpy, Window window, float cushion); - -#define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI) - -#define GLXEW_SGI_cushion GLXEW_GET_VAR(__GLXEW_SGI_cushion) - -#endif /* GLX_SGI_cushion */ - -/* ----------------------- GLX_SGI_make_current_read ----------------------- */ - -#ifndef GLX_SGI_make_current_read -#define GLX_SGI_make_current_read 1 - -typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); -typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); - -#define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI) -#define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI) - -#define GLXEW_SGI_make_current_read GLXEW_GET_VAR(__GLXEW_SGI_make_current_read) - -#endif /* GLX_SGI_make_current_read */ - -/* -------------------------- GLX_SGI_swap_control ------------------------- */ - -#ifndef GLX_SGI_swap_control -#define GLX_SGI_swap_control 1 - -typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); - -#define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI) - -#define GLXEW_SGI_swap_control GLXEW_GET_VAR(__GLXEW_SGI_swap_control) - -#endif /* GLX_SGI_swap_control */ - -/* --------------------------- GLX_SGI_video_sync -------------------------- */ - -#ifndef GLX_SGI_video_sync -#define GLX_SGI_video_sync 1 - -typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int* count); -typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int* count); - -#define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI) -#define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI) - -#define GLXEW_SGI_video_sync GLXEW_GET_VAR(__GLXEW_SGI_video_sync) - -#endif /* GLX_SGI_video_sync */ - -/* --------------------- GLX_SUN_get_transparent_index --------------------- */ - -#ifndef GLX_SUN_get_transparent_index -#define GLX_SUN_get_transparent_index 1 - -typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex); - -#define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN) - -#define GLXEW_SUN_get_transparent_index GLXEW_GET_VAR(__GLXEW_SUN_get_transparent_index) - -#endif /* GLX_SUN_get_transparent_index */ - -/* -------------------------- GLX_SUN_video_resize ------------------------- */ - -#ifndef GLX_SUN_video_resize -#define GLX_SUN_video_resize 1 - -#define GLX_VIDEO_RESIZE_SUN 0x8171 -#define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD - -typedef int ( * PFNGLXGETVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float* factor); -typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float factor); - -#define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN) -#define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN) - -#define GLXEW_SUN_video_resize GLXEW_GET_VAR(__GLXEW_SUN_video_resize) - -#endif /* GLX_SUN_video_resize */ - -/* ------------------------------------------------------------------------- */ - -#ifdef GLEW_MX -#define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT -#define GLXEW_VAR_EXPORT -#else -#define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT -#define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT -#endif /* GLEW_MX */ - -GLXEW_FUN_EXPORT PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay; - -GLXEW_FUN_EXPORT PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig; -GLXEW_FUN_EXPORT PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext; -GLXEW_FUN_EXPORT PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer; -GLXEW_FUN_EXPORT PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap; -GLXEW_FUN_EXPORT PFNGLXCREATEWINDOWPROC __glewXCreateWindow; -GLXEW_FUN_EXPORT PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer; -GLXEW_FUN_EXPORT PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap; -GLXEW_FUN_EXPORT PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow; -GLXEW_FUN_EXPORT PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable; -GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib; -GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs; -GLXEW_FUN_EXPORT PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent; -GLXEW_FUN_EXPORT PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig; -GLXEW_FUN_EXPORT PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent; -GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTPROC __glewXQueryContext; -GLXEW_FUN_EXPORT PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable; -GLXEW_FUN_EXPORT PFNGLXSELECTEVENTPROC __glewXSelectEvent; - -GLXEW_FUN_EXPORT PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC __glewXBlitContextFramebufferAMD; -GLXEW_FUN_EXPORT PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC __glewXCreateAssociatedContextAMD; -GLXEW_FUN_EXPORT PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __glewXCreateAssociatedContextAttribsAMD; -GLXEW_FUN_EXPORT PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC __glewXDeleteAssociatedContextAMD; -GLXEW_FUN_EXPORT PFNGLXGETCONTEXTGPUIDAMDPROC __glewXGetContextGPUIDAMD; -GLXEW_FUN_EXPORT PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC __glewXGetCurrentAssociatedContextAMD; -GLXEW_FUN_EXPORT PFNGLXGETGPUIDSAMDPROC __glewXGetGPUIDsAMD; -GLXEW_FUN_EXPORT PFNGLXGETGPUINFOAMDPROC __glewXGetGPUInfoAMD; -GLXEW_FUN_EXPORT PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __glewXMakeAssociatedContextCurrentAMD; - -GLXEW_FUN_EXPORT PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB; - -GLXEW_FUN_EXPORT PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI; -GLXEW_FUN_EXPORT PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI; -GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI; - -GLXEW_FUN_EXPORT PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT; -GLXEW_FUN_EXPORT PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT; -GLXEW_FUN_EXPORT PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT; -GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT; - -GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT; - -GLXEW_FUN_EXPORT PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT; -GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT; - -GLXEW_FUN_EXPORT PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA; - -GLXEW_FUN_EXPORT PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA; - -GLXEW_FUN_EXPORT PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA; - -GLXEW_FUN_EXPORT PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC __glewXQueryCurrentRendererIntegerMESA; -GLXEW_FUN_EXPORT PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC __glewXQueryCurrentRendererStringMESA; -GLXEW_FUN_EXPORT PFNGLXQUERYRENDERERINTEGERMESAPROC __glewXQueryRendererIntegerMESA; -GLXEW_FUN_EXPORT PFNGLXQUERYRENDERERSTRINGMESAPROC __glewXQueryRendererStringMESA; - -GLXEW_FUN_EXPORT PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA; - -GLXEW_FUN_EXPORT PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA; - -GLXEW_FUN_EXPORT PFNGLXGETSWAPINTERVALMESAPROC __glewXGetSwapIntervalMESA; -GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALMESAPROC __glewXSwapIntervalMESA; - -GLXEW_FUN_EXPORT PFNGLXCOPYBUFFERSUBDATANVPROC __glewXCopyBufferSubDataNV; -GLXEW_FUN_EXPORT PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC __glewXNamedCopyBufferSubDataNV; - -GLXEW_FUN_EXPORT PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV; - -GLXEW_FUN_EXPORT PFNGLXDELAYBEFORESWAPNVPROC __glewXDelayBeforeSwapNV; - -GLXEW_FUN_EXPORT PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV; -GLXEW_FUN_EXPORT PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV; - -GLXEW_FUN_EXPORT PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV; -GLXEW_FUN_EXPORT PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV; -GLXEW_FUN_EXPORT PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV; -GLXEW_FUN_EXPORT PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV; -GLXEW_FUN_EXPORT PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV; -GLXEW_FUN_EXPORT PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV; - -GLXEW_FUN_EXPORT PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV; -GLXEW_FUN_EXPORT PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV; - -GLXEW_FUN_EXPORT PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV; -GLXEW_FUN_EXPORT PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV; -GLXEW_FUN_EXPORT PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV; -GLXEW_FUN_EXPORT PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV; -GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV; - -GLXEW_FUN_EXPORT PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV; -GLXEW_FUN_EXPORT PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV; -GLXEW_FUN_EXPORT PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV; -GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV; -GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV; -GLXEW_FUN_EXPORT PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV; - -GLXEW_FUN_EXPORT PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML; -GLXEW_FUN_EXPORT PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML; -GLXEW_FUN_EXPORT PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML; -GLXEW_FUN_EXPORT PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML; -GLXEW_FUN_EXPORT PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML; - -GLXEW_FUN_EXPORT PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX; -GLXEW_FUN_EXPORT PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX; -GLXEW_FUN_EXPORT PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX; -GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX; -GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX; -GLXEW_FUN_EXPORT PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX; - -GLXEW_FUN_EXPORT PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX; -GLXEW_FUN_EXPORT PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX; -GLXEW_FUN_EXPORT PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX; -GLXEW_FUN_EXPORT PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX; -GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX; -GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX; -GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX; -GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX; - -GLXEW_FUN_EXPORT PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX; -GLXEW_FUN_EXPORT PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX; -GLXEW_FUN_EXPORT PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX; -GLXEW_FUN_EXPORT PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX; -GLXEW_FUN_EXPORT PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX; - -GLXEW_FUN_EXPORT PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX; -GLXEW_FUN_EXPORT PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX; - -GLXEW_FUN_EXPORT PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX; - -GLXEW_FUN_EXPORT PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX; -GLXEW_FUN_EXPORT PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX; -GLXEW_FUN_EXPORT PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX; -GLXEW_FUN_EXPORT PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX; -GLXEW_FUN_EXPORT PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX; - -GLXEW_FUN_EXPORT PFNGLXCUSHIONSGIPROC __glewXCushionSGI; - -GLXEW_FUN_EXPORT PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI; -GLXEW_FUN_EXPORT PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI; - -GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI; - -GLXEW_FUN_EXPORT PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI; -GLXEW_FUN_EXPORT PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI; - -GLXEW_FUN_EXPORT PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN; - -GLXEW_FUN_EXPORT PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN; -GLXEW_FUN_EXPORT PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN; - -#if defined(GLEW_MX) -struct GLXEWContextStruct -{ -#endif /* GLEW_MX */ - -GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0; -GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1; -GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2; -GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_3; -GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_4; -GLXEW_VAR_EXPORT GLboolean __GLXEW_3DFX_multisample; -GLXEW_VAR_EXPORT GLboolean __GLXEW_AMD_gpu_association; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_context_flush_control; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_profile; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_robustness; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_fbconfig_float; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_get_proc_address; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_multisample; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_application_isolation; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_share_group_isolation; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_pixel_format_float; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_render_texture; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_buffer_age; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es_profile; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_import_context; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_scene_marker; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_stereo_tree; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control_tear; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_info; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_rating; -GLXEW_VAR_EXPORT GLboolean __GLXEW_INTEL_swap_event; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_agp_offset; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_query_renderer; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_release_buffers; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_swap_control; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_buffer; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_image; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_delay_before_swap; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_float_buffer; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multisample_coverage; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_present_video; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_swap_group; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_vertex_array_range; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_capture; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_out; -GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_swap_method; -GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_sync_control; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_blended_overlay; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_color_range; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_multisample; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_shared_multisample; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_fbconfig; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_hyperpipe; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_pbuffer; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_barrier; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_group; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_video_resize; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_visual_select_group; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_cushion; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_make_current_read; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_swap_control; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_video_sync; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_get_transparent_index; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_video_resize; - -#ifdef GLEW_MX -}; /* GLXEWContextStruct */ -#endif /* GLEW_MX */ - -/* ------------------------------------------------------------------------ */ - -#ifdef GLEW_MX - -typedef struct GLXEWContextStruct GLXEWContext; -GLEWAPI GLenum GLEWAPIENTRY glxewContextInit (GLXEWContext *ctx); -GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const GLXEWContext *ctx, const char *name); - -#define glxewInit() glxewContextInit(glxewGetContext()) -#define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x) - -#define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x)) -#define GLXEW_GET_FUN(x) x - -#else /* GLEW_MX */ - -#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) -#define GLXEW_GET_FUN(x) x - -GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name); - -#endif /* GLEW_MX */ - -GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name); - -#ifdef __cplusplus -} -#endif - -#endif /* __glxew_h__ */ diff --git a/lib/windows/include/GL/wglew.h b/lib/windows/include/GL/wglew.h deleted file mode 100644 index 650b34c..0000000 --- a/lib/windows/include/GL/wglew.h +++ /dev/null @@ -1,1452 +0,0 @@ -/* -** The OpenGL Extension Wrangler Library -** Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net> -** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org> -** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org> -** Copyright (C) 2002, Lev Povalahev -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are met: -** -** * Redistributions of source code must retain the above copyright notice, -** this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright notice, -** this list of conditions and the following disclaimer in the documentation -** and/or other materials provided with the distribution. -** * The name of the author may be used to endorse or promote products -** derived from this software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -** THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -** Copyright (c) 2007 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -#ifndef __wglew_h__ -#define __wglew_h__ -#define __WGLEW_H__ - -#ifdef __wglext_h_ -#error wglext.h included before wglew.h -#endif - -#define __wglext_h_ - -#if !defined(WINAPI) -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN 1 -# endif -#include <windows.h> -# undef WIN32_LEAN_AND_MEAN -#endif - -/* - * GLEW_STATIC needs to be set when using the static version. - * GLEW_BUILD is set when building the DLL version. - */ -#ifdef GLEW_STATIC -# define GLEWAPI extern -#else -# ifdef GLEW_BUILD -# define GLEWAPI extern __declspec(dllexport) -# else -# define GLEWAPI extern __declspec(dllimport) -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* -------------------------- WGL_3DFX_multisample ------------------------- */ - -#ifndef WGL_3DFX_multisample -#define WGL_3DFX_multisample 1 - -#define WGL_SAMPLE_BUFFERS_3DFX 0x2060 -#define WGL_SAMPLES_3DFX 0x2061 - -#define WGLEW_3DFX_multisample WGLEW_GET_VAR(__WGLEW_3DFX_multisample) - -#endif /* WGL_3DFX_multisample */ - -/* ------------------------- WGL_3DL_stereo_control ------------------------ */ - -#ifndef WGL_3DL_stereo_control -#define WGL_3DL_stereo_control 1 - -#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055 -#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056 -#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 -#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 - -typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState); - -#define wglSetStereoEmitterState3DL WGLEW_GET_FUN(__wglewSetStereoEmitterState3DL) - -#define WGLEW_3DL_stereo_control WGLEW_GET_VAR(__WGLEW_3DL_stereo_control) - -#endif /* WGL_3DL_stereo_control */ - -/* ------------------------ WGL_AMD_gpu_association ------------------------ */ - -#ifndef WGL_AMD_gpu_association -#define WGL_AMD_gpu_association 1 - -#define WGL_GPU_VENDOR_AMD 0x1F00 -#define WGL_GPU_RENDERER_STRING_AMD 0x1F01 -#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 -#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 -#define WGL_GPU_RAM_AMD 0x21A3 -#define WGL_GPU_CLOCK_AMD 0x21A4 -#define WGL_GPU_NUM_PIPES_AMD 0x21A5 -#define WGL_GPU_NUM_SIMD_AMD 0x21A6 -#define WGL_GPU_NUM_RB_AMD 0x21A7 -#define WGL_GPU_NUM_SPI_AMD 0x21A8 - -typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id); -typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int* attribList); -typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc); -typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc); -typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); -typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT* ids); -typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void* data); -typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc); - -#define wglBlitContextFramebufferAMD WGLEW_GET_FUN(__wglewBlitContextFramebufferAMD) -#define wglCreateAssociatedContextAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAMD) -#define wglCreateAssociatedContextAttribsAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAttribsAMD) -#define wglDeleteAssociatedContextAMD WGLEW_GET_FUN(__wglewDeleteAssociatedContextAMD) -#define wglGetContextGPUIDAMD WGLEW_GET_FUN(__wglewGetContextGPUIDAMD) -#define wglGetCurrentAssociatedContextAMD WGLEW_GET_FUN(__wglewGetCurrentAssociatedContextAMD) -#define wglGetGPUIDsAMD WGLEW_GET_FUN(__wglewGetGPUIDsAMD) -#define wglGetGPUInfoAMD WGLEW_GET_FUN(__wglewGetGPUInfoAMD) -#define wglMakeAssociatedContextCurrentAMD WGLEW_GET_FUN(__wglewMakeAssociatedContextCurrentAMD) - -#define WGLEW_AMD_gpu_association WGLEW_GET_VAR(__WGLEW_AMD_gpu_association) - -#endif /* WGL_AMD_gpu_association */ - -/* ------------------------- WGL_ARB_buffer_region ------------------------- */ - -#ifndef WGL_ARB_buffer_region -#define WGL_ARB_buffer_region 1 - -#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 -#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 -#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 -#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 - -typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); -typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); -typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); -typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); - -#define wglCreateBufferRegionARB WGLEW_GET_FUN(__wglewCreateBufferRegionARB) -#define wglDeleteBufferRegionARB WGLEW_GET_FUN(__wglewDeleteBufferRegionARB) -#define wglRestoreBufferRegionARB WGLEW_GET_FUN(__wglewRestoreBufferRegionARB) -#define wglSaveBufferRegionARB WGLEW_GET_FUN(__wglewSaveBufferRegionARB) - -#define WGLEW_ARB_buffer_region WGLEW_GET_VAR(__WGLEW_ARB_buffer_region) - -#endif /* WGL_ARB_buffer_region */ - -/* --------------------- WGL_ARB_context_flush_control --------------------- */ - -#ifndef WGL_ARB_context_flush_control -#define WGL_ARB_context_flush_control 1 - -#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0x0000 -#define WGL_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097 -#define WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098 - -#define WGLEW_ARB_context_flush_control WGLEW_GET_VAR(__WGLEW_ARB_context_flush_control) - -#endif /* WGL_ARB_context_flush_control */ - -/* ------------------------- WGL_ARB_create_context ------------------------ */ - -#ifndef WGL_ARB_create_context -#define WGL_ARB_create_context 1 - -#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 -#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 -#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 -#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 -#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 -#define WGL_CONTEXT_FLAGS_ARB 0x2094 -#define ERROR_INVALID_VERSION_ARB 0x2095 -#define ERROR_INVALID_PROFILE_ARB 0x2096 - -typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList); - -#define wglCreateContextAttribsARB WGLEW_GET_FUN(__wglewCreateContextAttribsARB) - -#define WGLEW_ARB_create_context WGLEW_GET_VAR(__WGLEW_ARB_create_context) - -#endif /* WGL_ARB_create_context */ - -/* --------------------- WGL_ARB_create_context_profile -------------------- */ - -#ifndef WGL_ARB_create_context_profile -#define WGL_ARB_create_context_profile 1 - -#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 -#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 -#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 - -#define WGLEW_ARB_create_context_profile WGLEW_GET_VAR(__WGLEW_ARB_create_context_profile) - -#endif /* WGL_ARB_create_context_profile */ - -/* ------------------- WGL_ARB_create_context_robustness ------------------- */ - -#ifndef WGL_ARB_create_context_robustness -#define WGL_ARB_create_context_robustness 1 - -#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 - -#define WGLEW_ARB_create_context_robustness WGLEW_GET_VAR(__WGLEW_ARB_create_context_robustness) - -#endif /* WGL_ARB_create_context_robustness */ - -/* ----------------------- WGL_ARB_extensions_string ----------------------- */ - -#ifndef WGL_ARB_extensions_string -#define WGL_ARB_extensions_string 1 - -typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); - -#define wglGetExtensionsStringARB WGLEW_GET_FUN(__wglewGetExtensionsStringARB) - -#define WGLEW_ARB_extensions_string WGLEW_GET_VAR(__WGLEW_ARB_extensions_string) - -#endif /* WGL_ARB_extensions_string */ - -/* ------------------------ WGL_ARB_framebuffer_sRGB ----------------------- */ - -#ifndef WGL_ARB_framebuffer_sRGB -#define WGL_ARB_framebuffer_sRGB 1 - -#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9 - -#define WGLEW_ARB_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_ARB_framebuffer_sRGB) - -#endif /* WGL_ARB_framebuffer_sRGB */ - -/* ----------------------- WGL_ARB_make_current_read ----------------------- */ - -#ifndef WGL_ARB_make_current_read -#define WGL_ARB_make_current_read 1 - -#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 -#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 - -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); - -#define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB) -#define wglMakeContextCurrentARB WGLEW_GET_FUN(__wglewMakeContextCurrentARB) - -#define WGLEW_ARB_make_current_read WGLEW_GET_VAR(__WGLEW_ARB_make_current_read) - -#endif /* WGL_ARB_make_current_read */ - -/* -------------------------- WGL_ARB_multisample -------------------------- */ - -#ifndef WGL_ARB_multisample -#define WGL_ARB_multisample 1 - -#define WGL_SAMPLE_BUFFERS_ARB 0x2041 -#define WGL_SAMPLES_ARB 0x2042 - -#define WGLEW_ARB_multisample WGLEW_GET_VAR(__WGLEW_ARB_multisample) - -#endif /* WGL_ARB_multisample */ - -/* ---------------------------- WGL_ARB_pbuffer ---------------------------- */ - -#ifndef WGL_ARB_pbuffer -#define WGL_ARB_pbuffer 1 - -#define WGL_DRAW_TO_PBUFFER_ARB 0x202D -#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E -#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 -#define WGL_PBUFFER_LARGEST_ARB 0x2033 -#define WGL_PBUFFER_WIDTH_ARB 0x2034 -#define WGL_PBUFFER_HEIGHT_ARB 0x2035 -#define WGL_PBUFFER_LOST_ARB 0x2036 - -DECLARE_HANDLE(HPBUFFERARB); - -typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); -typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); -typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); -typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int* piValue); -typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); - -#define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB) -#define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB) -#define wglGetPbufferDCARB WGLEW_GET_FUN(__wglewGetPbufferDCARB) -#define wglQueryPbufferARB WGLEW_GET_FUN(__wglewQueryPbufferARB) -#define wglReleasePbufferDCARB WGLEW_GET_FUN(__wglewReleasePbufferDCARB) - -#define WGLEW_ARB_pbuffer WGLEW_GET_VAR(__WGLEW_ARB_pbuffer) - -#endif /* WGL_ARB_pbuffer */ - -/* -------------------------- WGL_ARB_pixel_format ------------------------- */ - -#ifndef WGL_ARB_pixel_format -#define WGL_ARB_pixel_format 1 - -#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 -#define WGL_DRAW_TO_WINDOW_ARB 0x2001 -#define WGL_DRAW_TO_BITMAP_ARB 0x2002 -#define WGL_ACCELERATION_ARB 0x2003 -#define WGL_NEED_PALETTE_ARB 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 -#define WGL_SWAP_METHOD_ARB 0x2007 -#define WGL_NUMBER_OVERLAYS_ARB 0x2008 -#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 -#define WGL_TRANSPARENT_ARB 0x200A -#define WGL_SHARE_DEPTH_ARB 0x200C -#define WGL_SHARE_STENCIL_ARB 0x200D -#define WGL_SHARE_ACCUM_ARB 0x200E -#define WGL_SUPPORT_GDI_ARB 0x200F -#define WGL_SUPPORT_OPENGL_ARB 0x2010 -#define WGL_DOUBLE_BUFFER_ARB 0x2011 -#define WGL_STEREO_ARB 0x2012 -#define WGL_PIXEL_TYPE_ARB 0x2013 -#define WGL_COLOR_BITS_ARB 0x2014 -#define WGL_RED_BITS_ARB 0x2015 -#define WGL_RED_SHIFT_ARB 0x2016 -#define WGL_GREEN_BITS_ARB 0x2017 -#define WGL_GREEN_SHIFT_ARB 0x2018 -#define WGL_BLUE_BITS_ARB 0x2019 -#define WGL_BLUE_SHIFT_ARB 0x201A -#define WGL_ALPHA_BITS_ARB 0x201B -#define WGL_ALPHA_SHIFT_ARB 0x201C -#define WGL_ACCUM_BITS_ARB 0x201D -#define WGL_ACCUM_RED_BITS_ARB 0x201E -#define WGL_ACCUM_GREEN_BITS_ARB 0x201F -#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 -#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 -#define WGL_DEPTH_BITS_ARB 0x2022 -#define WGL_STENCIL_BITS_ARB 0x2023 -#define WGL_AUX_BUFFERS_ARB 0x2024 -#define WGL_NO_ACCELERATION_ARB 0x2025 -#define WGL_GENERIC_ACCELERATION_ARB 0x2026 -#define WGL_FULL_ACCELERATION_ARB 0x2027 -#define WGL_SWAP_EXCHANGE_ARB 0x2028 -#define WGL_SWAP_COPY_ARB 0x2029 -#define WGL_SWAP_UNDEFINED_ARB 0x202A -#define WGL_TYPE_RGBA_ARB 0x202B -#define WGL_TYPE_COLORINDEX_ARB 0x202C -#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 -#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 -#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 -#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A -#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B - -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int *piValues); - -#define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB) -#define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB) -#define wglGetPixelFormatAttribivARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribivARB) - -#define WGLEW_ARB_pixel_format WGLEW_GET_VAR(__WGLEW_ARB_pixel_format) - -#endif /* WGL_ARB_pixel_format */ - -/* ----------------------- WGL_ARB_pixel_format_float ---------------------- */ - -#ifndef WGL_ARB_pixel_format_float -#define WGL_ARB_pixel_format_float 1 - -#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 - -#define WGLEW_ARB_pixel_format_float WGLEW_GET_VAR(__WGLEW_ARB_pixel_format_float) - -#endif /* WGL_ARB_pixel_format_float */ - -/* ------------------------- WGL_ARB_render_texture ------------------------ */ - -#ifndef WGL_ARB_render_texture -#define WGL_ARB_render_texture 1 - -#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 -#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 -#define WGL_TEXTURE_FORMAT_ARB 0x2072 -#define WGL_TEXTURE_TARGET_ARB 0x2073 -#define WGL_MIPMAP_TEXTURE_ARB 0x2074 -#define WGL_TEXTURE_RGB_ARB 0x2075 -#define WGL_TEXTURE_RGBA_ARB 0x2076 -#define WGL_NO_TEXTURE_ARB 0x2077 -#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 -#define WGL_TEXTURE_1D_ARB 0x2079 -#define WGL_TEXTURE_2D_ARB 0x207A -#define WGL_MIPMAP_LEVEL_ARB 0x207B -#define WGL_CUBE_MAP_FACE_ARB 0x207C -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 -#define WGL_FRONT_LEFT_ARB 0x2083 -#define WGL_FRONT_RIGHT_ARB 0x2084 -#define WGL_BACK_LEFT_ARB 0x2085 -#define WGL_BACK_RIGHT_ARB 0x2086 -#define WGL_AUX0_ARB 0x2087 -#define WGL_AUX1_ARB 0x2088 -#define WGL_AUX2_ARB 0x2089 -#define WGL_AUX3_ARB 0x208A -#define WGL_AUX4_ARB 0x208B -#define WGL_AUX5_ARB 0x208C -#define WGL_AUX6_ARB 0x208D -#define WGL_AUX7_ARB 0x208E -#define WGL_AUX8_ARB 0x208F -#define WGL_AUX9_ARB 0x2090 - -typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int* piAttribList); - -#define wglBindTexImageARB WGLEW_GET_FUN(__wglewBindTexImageARB) -#define wglReleaseTexImageARB WGLEW_GET_FUN(__wglewReleaseTexImageARB) -#define wglSetPbufferAttribARB WGLEW_GET_FUN(__wglewSetPbufferAttribARB) - -#define WGLEW_ARB_render_texture WGLEW_GET_VAR(__WGLEW_ARB_render_texture) - -#endif /* WGL_ARB_render_texture */ - -/* ---------------- WGL_ARB_robustness_application_isolation --------------- */ - -#ifndef WGL_ARB_robustness_application_isolation -#define WGL_ARB_robustness_application_isolation 1 - -#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 - -#define WGLEW_ARB_robustness_application_isolation WGLEW_GET_VAR(__WGLEW_ARB_robustness_application_isolation) - -#endif /* WGL_ARB_robustness_application_isolation */ - -/* ---------------- WGL_ARB_robustness_share_group_isolation --------------- */ - -#ifndef WGL_ARB_robustness_share_group_isolation -#define WGL_ARB_robustness_share_group_isolation 1 - -#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 - -#define WGLEW_ARB_robustness_share_group_isolation WGLEW_GET_VAR(__WGLEW_ARB_robustness_share_group_isolation) - -#endif /* WGL_ARB_robustness_share_group_isolation */ - -/* ----------------------- WGL_ATI_pixel_format_float ---------------------- */ - -#ifndef WGL_ATI_pixel_format_float -#define WGL_ATI_pixel_format_float 1 - -#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 -#define GL_RGBA_FLOAT_MODE_ATI 0x8820 -#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 - -#define WGLEW_ATI_pixel_format_float WGLEW_GET_VAR(__WGLEW_ATI_pixel_format_float) - -#endif /* WGL_ATI_pixel_format_float */ - -/* -------------------- WGL_ATI_render_texture_rectangle ------------------- */ - -#ifndef WGL_ATI_render_texture_rectangle -#define WGL_ATI_render_texture_rectangle 1 - -#define WGL_TEXTURE_RECTANGLE_ATI 0x21A5 - -#define WGLEW_ATI_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_ATI_render_texture_rectangle) - -#endif /* WGL_ATI_render_texture_rectangle */ - -/* ------------------- WGL_EXT_create_context_es2_profile ------------------ */ - -#ifndef WGL_EXT_create_context_es2_profile -#define WGL_EXT_create_context_es2_profile 1 - -#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 - -#define WGLEW_EXT_create_context_es2_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es2_profile) - -#endif /* WGL_EXT_create_context_es2_profile */ - -/* ------------------- WGL_EXT_create_context_es_profile ------------------- */ - -#ifndef WGL_EXT_create_context_es_profile -#define WGL_EXT_create_context_es_profile 1 - -#define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004 - -#define WGLEW_EXT_create_context_es_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es_profile) - -#endif /* WGL_EXT_create_context_es_profile */ - -/* -------------------------- WGL_EXT_depth_float -------------------------- */ - -#ifndef WGL_EXT_depth_float -#define WGL_EXT_depth_float 1 - -#define WGL_DEPTH_FLOAT_EXT 0x2040 - -#define WGLEW_EXT_depth_float WGLEW_GET_VAR(__WGLEW_EXT_depth_float) - -#endif /* WGL_EXT_depth_float */ - -/* ---------------------- WGL_EXT_display_color_table ---------------------- */ - -#ifndef WGL_EXT_display_color_table -#define WGL_EXT_display_color_table 1 - -typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef void (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (GLushort* table, GLuint length); - -#define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT) -#define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT) -#define wglDestroyDisplayColorTableEXT WGLEW_GET_FUN(__wglewDestroyDisplayColorTableEXT) -#define wglLoadDisplayColorTableEXT WGLEW_GET_FUN(__wglewLoadDisplayColorTableEXT) - -#define WGLEW_EXT_display_color_table WGLEW_GET_VAR(__WGLEW_EXT_display_color_table) - -#endif /* WGL_EXT_display_color_table */ - -/* ----------------------- WGL_EXT_extensions_string ----------------------- */ - -#ifndef WGL_EXT_extensions_string -#define WGL_EXT_extensions_string 1 - -typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); - -#define wglGetExtensionsStringEXT WGLEW_GET_FUN(__wglewGetExtensionsStringEXT) - -#define WGLEW_EXT_extensions_string WGLEW_GET_VAR(__WGLEW_EXT_extensions_string) - -#endif /* WGL_EXT_extensions_string */ - -/* ------------------------ WGL_EXT_framebuffer_sRGB ----------------------- */ - -#ifndef WGL_EXT_framebuffer_sRGB -#define WGL_EXT_framebuffer_sRGB 1 - -#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 - -#define WGLEW_EXT_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_EXT_framebuffer_sRGB) - -#endif /* WGL_EXT_framebuffer_sRGB */ - -/* ----------------------- WGL_EXT_make_current_read ----------------------- */ - -#ifndef WGL_EXT_make_current_read -#define WGL_EXT_make_current_read 1 - -#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 - -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); - -#define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT) -#define wglMakeContextCurrentEXT WGLEW_GET_FUN(__wglewMakeContextCurrentEXT) - -#define WGLEW_EXT_make_current_read WGLEW_GET_VAR(__WGLEW_EXT_make_current_read) - -#endif /* WGL_EXT_make_current_read */ - -/* -------------------------- WGL_EXT_multisample -------------------------- */ - -#ifndef WGL_EXT_multisample -#define WGL_EXT_multisample 1 - -#define WGL_SAMPLE_BUFFERS_EXT 0x2041 -#define WGL_SAMPLES_EXT 0x2042 - -#define WGLEW_EXT_multisample WGLEW_GET_VAR(__WGLEW_EXT_multisample) - -#endif /* WGL_EXT_multisample */ - -/* ---------------------------- WGL_EXT_pbuffer ---------------------------- */ - -#ifndef WGL_EXT_pbuffer -#define WGL_EXT_pbuffer 1 - -#define WGL_DRAW_TO_PBUFFER_EXT 0x202D -#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E -#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 -#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 -#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 -#define WGL_PBUFFER_LARGEST_EXT 0x2033 -#define WGL_PBUFFER_WIDTH_EXT 0x2034 -#define WGL_PBUFFER_HEIGHT_EXT 0x2035 - -DECLARE_HANDLE(HPBUFFEREXT); - -typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); -typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); -typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); -typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int* piValue); -typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); - -#define wglCreatePbufferEXT WGLEW_GET_FUN(__wglewCreatePbufferEXT) -#define wglDestroyPbufferEXT WGLEW_GET_FUN(__wglewDestroyPbufferEXT) -#define wglGetPbufferDCEXT WGLEW_GET_FUN(__wglewGetPbufferDCEXT) -#define wglQueryPbufferEXT WGLEW_GET_FUN(__wglewQueryPbufferEXT) -#define wglReleasePbufferDCEXT WGLEW_GET_FUN(__wglewReleasePbufferDCEXT) - -#define WGLEW_EXT_pbuffer WGLEW_GET_VAR(__WGLEW_EXT_pbuffer) - -#endif /* WGL_EXT_pbuffer */ - -/* -------------------------- WGL_EXT_pixel_format ------------------------- */ - -#ifndef WGL_EXT_pixel_format -#define WGL_EXT_pixel_format 1 - -#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 -#define WGL_DRAW_TO_WINDOW_EXT 0x2001 -#define WGL_DRAW_TO_BITMAP_EXT 0x2002 -#define WGL_ACCELERATION_EXT 0x2003 -#define WGL_NEED_PALETTE_EXT 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 -#define WGL_SWAP_METHOD_EXT 0x2007 -#define WGL_NUMBER_OVERLAYS_EXT 0x2008 -#define WGL_NUMBER_UNDERLAYS_EXT 0x2009 -#define WGL_TRANSPARENT_EXT 0x200A -#define WGL_TRANSPARENT_VALUE_EXT 0x200B -#define WGL_SHARE_DEPTH_EXT 0x200C -#define WGL_SHARE_STENCIL_EXT 0x200D -#define WGL_SHARE_ACCUM_EXT 0x200E -#define WGL_SUPPORT_GDI_EXT 0x200F -#define WGL_SUPPORT_OPENGL_EXT 0x2010 -#define WGL_DOUBLE_BUFFER_EXT 0x2011 -#define WGL_STEREO_EXT 0x2012 -#define WGL_PIXEL_TYPE_EXT 0x2013 -#define WGL_COLOR_BITS_EXT 0x2014 -#define WGL_RED_BITS_EXT 0x2015 -#define WGL_RED_SHIFT_EXT 0x2016 -#define WGL_GREEN_BITS_EXT 0x2017 -#define WGL_GREEN_SHIFT_EXT 0x2018 -#define WGL_BLUE_BITS_EXT 0x2019 -#define WGL_BLUE_SHIFT_EXT 0x201A -#define WGL_ALPHA_BITS_EXT 0x201B -#define WGL_ALPHA_SHIFT_EXT 0x201C -#define WGL_ACCUM_BITS_EXT 0x201D -#define WGL_ACCUM_RED_BITS_EXT 0x201E -#define WGL_ACCUM_GREEN_BITS_EXT 0x201F -#define WGL_ACCUM_BLUE_BITS_EXT 0x2020 -#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 -#define WGL_DEPTH_BITS_EXT 0x2022 -#define WGL_STENCIL_BITS_EXT 0x2023 -#define WGL_AUX_BUFFERS_EXT 0x2024 -#define WGL_NO_ACCELERATION_EXT 0x2025 -#define WGL_GENERIC_ACCELERATION_EXT 0x2026 -#define WGL_FULL_ACCELERATION_EXT 0x2027 -#define WGL_SWAP_EXCHANGE_EXT 0x2028 -#define WGL_SWAP_COPY_EXT 0x2029 -#define WGL_SWAP_UNDEFINED_EXT 0x202A -#define WGL_TYPE_RGBA_EXT 0x202B -#define WGL_TYPE_COLORINDEX_EXT 0x202C - -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int *piValues); - -#define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT) -#define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT) -#define wglGetPixelFormatAttribivEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribivEXT) - -#define WGLEW_EXT_pixel_format WGLEW_GET_VAR(__WGLEW_EXT_pixel_format) - -#endif /* WGL_EXT_pixel_format */ - -/* ------------------- WGL_EXT_pixel_format_packed_float ------------------- */ - -#ifndef WGL_EXT_pixel_format_packed_float -#define WGL_EXT_pixel_format_packed_float 1 - -#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 - -#define WGLEW_EXT_pixel_format_packed_float WGLEW_GET_VAR(__WGLEW_EXT_pixel_format_packed_float) - -#endif /* WGL_EXT_pixel_format_packed_float */ - -/* -------------------------- WGL_EXT_swap_control ------------------------- */ - -#ifndef WGL_EXT_swap_control -#define WGL_EXT_swap_control 1 - -typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); -typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); - -#define wglGetSwapIntervalEXT WGLEW_GET_FUN(__wglewGetSwapIntervalEXT) -#define wglSwapIntervalEXT WGLEW_GET_FUN(__wglewSwapIntervalEXT) - -#define WGLEW_EXT_swap_control WGLEW_GET_VAR(__WGLEW_EXT_swap_control) - -#endif /* WGL_EXT_swap_control */ - -/* ----------------------- WGL_EXT_swap_control_tear ----------------------- */ - -#ifndef WGL_EXT_swap_control_tear -#define WGL_EXT_swap_control_tear 1 - -#define WGLEW_EXT_swap_control_tear WGLEW_GET_VAR(__WGLEW_EXT_swap_control_tear) - -#endif /* WGL_EXT_swap_control_tear */ - -/* --------------------- WGL_I3D_digital_video_control --------------------- */ - -#ifndef WGL_I3D_digital_video_control -#define WGL_I3D_digital_video_control 1 - -#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 -#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 -#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 -#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 - -typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); - -#define wglGetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewGetDigitalVideoParametersI3D) -#define wglSetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewSetDigitalVideoParametersI3D) - -#define WGLEW_I3D_digital_video_control WGLEW_GET_VAR(__WGLEW_I3D_digital_video_control) - -#endif /* WGL_I3D_digital_video_control */ - -/* ----------------------------- WGL_I3D_gamma ----------------------------- */ - -#ifndef WGL_I3D_gamma -#define WGL_I3D_gamma 1 - -#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E -#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F - -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT *puGreen, USHORT *puBlue); -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT *puGreen, const USHORT *puBlue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); - -#define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D) -#define wglGetGammaTableParametersI3D WGLEW_GET_FUN(__wglewGetGammaTableParametersI3D) -#define wglSetGammaTableI3D WGLEW_GET_FUN(__wglewSetGammaTableI3D) -#define wglSetGammaTableParametersI3D WGLEW_GET_FUN(__wglewSetGammaTableParametersI3D) - -#define WGLEW_I3D_gamma WGLEW_GET_VAR(__WGLEW_I3D_gamma) - -#endif /* WGL_I3D_gamma */ - -/* ---------------------------- WGL_I3D_genlock ---------------------------- */ - -#ifndef WGL_I3D_genlock -#define WGL_I3D_genlock 1 - -#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 -#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045 -#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046 -#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047 -#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 -#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 -#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A -#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B -#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C - -typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC); -typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC); -typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT* uRate); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDelay); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource); -typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag); -typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT *uMaxPixelDelay); - -#define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D) -#define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D) -#define wglGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGenlockSampleRateI3D) -#define wglGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGenlockSourceDelayI3D) -#define wglGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGenlockSourceEdgeI3D) -#define wglGenlockSourceI3D WGLEW_GET_FUN(__wglewGenlockSourceI3D) -#define wglGetGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGetGenlockSampleRateI3D) -#define wglGetGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGetGenlockSourceDelayI3D) -#define wglGetGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGetGenlockSourceEdgeI3D) -#define wglGetGenlockSourceI3D WGLEW_GET_FUN(__wglewGetGenlockSourceI3D) -#define wglIsEnabledGenlockI3D WGLEW_GET_FUN(__wglewIsEnabledGenlockI3D) -#define wglQueryGenlockMaxSourceDelayI3D WGLEW_GET_FUN(__wglewQueryGenlockMaxSourceDelayI3D) - -#define WGLEW_I3D_genlock WGLEW_GET_VAR(__WGLEW_I3D_genlock) - -#endif /* WGL_I3D_genlock */ - -/* -------------------------- WGL_I3D_image_buffer ------------------------- */ - -#ifndef WGL_I3D_image_buffer -#define WGL_I3D_image_buffer 1 - -#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 -#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 - -typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, HANDLE* pEvent, LPVOID *pAddress, DWORD *pSize, UINT count); -typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); -typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); -typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* pAddress, UINT count); - -#define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D) -#define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D) -#define wglDestroyImageBufferI3D WGLEW_GET_FUN(__wglewDestroyImageBufferI3D) -#define wglReleaseImageBufferEventsI3D WGLEW_GET_FUN(__wglewReleaseImageBufferEventsI3D) - -#define WGLEW_I3D_image_buffer WGLEW_GET_VAR(__WGLEW_I3D_image_buffer) - -#endif /* WGL_I3D_image_buffer */ - -/* ------------------------ WGL_I3D_swap_frame_lock ------------------------ */ - -#ifndef WGL_I3D_swap_frame_lock -#define WGL_I3D_swap_frame_lock 1 - -typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag); - -#define wglDisableFrameLockI3D WGLEW_GET_FUN(__wglewDisableFrameLockI3D) -#define wglEnableFrameLockI3D WGLEW_GET_FUN(__wglewEnableFrameLockI3D) -#define wglIsEnabledFrameLockI3D WGLEW_GET_FUN(__wglewIsEnabledFrameLockI3D) -#define wglQueryFrameLockMasterI3D WGLEW_GET_FUN(__wglewQueryFrameLockMasterI3D) - -#define WGLEW_I3D_swap_frame_lock WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_lock) - -#endif /* WGL_I3D_swap_frame_lock */ - -/* ------------------------ WGL_I3D_swap_frame_usage ----------------------- */ - -#ifndef WGL_I3D_swap_frame_usage -#define WGL_I3D_swap_frame_usage 1 - -typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); - -#define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D) -#define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D) -#define wglGetFrameUsageI3D WGLEW_GET_FUN(__wglewGetFrameUsageI3D) -#define wglQueryFrameTrackingI3D WGLEW_GET_FUN(__wglewQueryFrameTrackingI3D) - -#define WGLEW_I3D_swap_frame_usage WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_usage) - -#endif /* WGL_I3D_swap_frame_usage */ - -/* --------------------------- WGL_NV_DX_interop --------------------------- */ - -#ifndef WGL_NV_DX_interop -#define WGL_NV_DX_interop 1 - -#define WGL_ACCESS_READ_ONLY_NV 0x0000 -#define WGL_ACCESS_READ_WRITE_NV 0x0001 -#define WGL_ACCESS_WRITE_DISCARD_NV 0x0002 - -typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice); -typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); -typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access); -typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void* dxDevice); -typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access); -typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void* dxObject, HANDLE shareHandle); -typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); -typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject); - -#define wglDXCloseDeviceNV WGLEW_GET_FUN(__wglewDXCloseDeviceNV) -#define wglDXLockObjectsNV WGLEW_GET_FUN(__wglewDXLockObjectsNV) -#define wglDXObjectAccessNV WGLEW_GET_FUN(__wglewDXObjectAccessNV) -#define wglDXOpenDeviceNV WGLEW_GET_FUN(__wglewDXOpenDeviceNV) -#define wglDXRegisterObjectNV WGLEW_GET_FUN(__wglewDXRegisterObjectNV) -#define wglDXSetResourceShareHandleNV WGLEW_GET_FUN(__wglewDXSetResourceShareHandleNV) -#define wglDXUnlockObjectsNV WGLEW_GET_FUN(__wglewDXUnlockObjectsNV) -#define wglDXUnregisterObjectNV WGLEW_GET_FUN(__wglewDXUnregisterObjectNV) - -#define WGLEW_NV_DX_interop WGLEW_GET_VAR(__WGLEW_NV_DX_interop) - -#endif /* WGL_NV_DX_interop */ - -/* --------------------------- WGL_NV_DX_interop2 -------------------------- */ - -#ifndef WGL_NV_DX_interop2 -#define WGL_NV_DX_interop2 1 - -#define WGLEW_NV_DX_interop2 WGLEW_GET_VAR(__WGLEW_NV_DX_interop2) - -#endif /* WGL_NV_DX_interop2 */ - -/* --------------------------- WGL_NV_copy_image --------------------------- */ - -#ifndef WGL_NV_copy_image -#define WGL_NV_copy_image 1 - -typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); - -#define wglCopyImageSubDataNV WGLEW_GET_FUN(__wglewCopyImageSubDataNV) - -#define WGLEW_NV_copy_image WGLEW_GET_VAR(__WGLEW_NV_copy_image) - -#endif /* WGL_NV_copy_image */ - -/* ------------------------ WGL_NV_delay_before_swap ----------------------- */ - -#ifndef WGL_NV_delay_before_swap -#define WGL_NV_delay_before_swap 1 - -typedef BOOL (WINAPI * PFNWGLDELAYBEFORESWAPNVPROC) (HDC hDC, GLfloat seconds); - -#define wglDelayBeforeSwapNV WGLEW_GET_FUN(__wglewDelayBeforeSwapNV) - -#define WGLEW_NV_delay_before_swap WGLEW_GET_VAR(__WGLEW_NV_delay_before_swap) - -#endif /* WGL_NV_delay_before_swap */ - -/* -------------------------- WGL_NV_float_buffer -------------------------- */ - -#ifndef WGL_NV_float_buffer -#define WGL_NV_float_buffer 1 - -#define WGL_FLOAT_COMPONENTS_NV 0x20B0 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 -#define WGL_TEXTURE_FLOAT_R_NV 0x20B5 -#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 -#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 -#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 - -#define WGLEW_NV_float_buffer WGLEW_GET_VAR(__WGLEW_NV_float_buffer) - -#endif /* WGL_NV_float_buffer */ - -/* -------------------------- WGL_NV_gpu_affinity -------------------------- */ - -#ifndef WGL_NV_gpu_affinity -#define WGL_NV_gpu_affinity 1 - -#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 -#define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 - -DECLARE_HANDLE(HGPUNV); -typedef struct _GPU_DEVICE { - DWORD cb; - CHAR DeviceName[32]; - CHAR DeviceString[128]; - DWORD Flags; - RECT rcVirtualScreen; -} GPU_DEVICE, *PGPU_DEVICE; - -typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList); -typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc); -typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); -typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); -typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); - -#define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV) -#define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV) -#define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV) -#define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV) -#define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV) - -#define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity) - -#endif /* WGL_NV_gpu_affinity */ - -/* ---------------------- WGL_NV_multisample_coverage ---------------------- */ - -#ifndef WGL_NV_multisample_coverage -#define WGL_NV_multisample_coverage 1 - -#define WGL_COVERAGE_SAMPLES_NV 0x2042 -#define WGL_COLOR_SAMPLES_NV 0x20B9 - -#define WGLEW_NV_multisample_coverage WGLEW_GET_VAR(__WGLEW_NV_multisample_coverage) - -#endif /* WGL_NV_multisample_coverage */ - -/* -------------------------- WGL_NV_present_video ------------------------- */ - -#ifndef WGL_NV_present_video -#define WGL_NV_present_video 1 - -#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 - -DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); - -typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int* piAttribList); -typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDc, HVIDEOOUTPUTDEVICENV* phDeviceList); -typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* piValue); - -#define wglBindVideoDeviceNV WGLEW_GET_FUN(__wglewBindVideoDeviceNV) -#define wglEnumerateVideoDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoDevicesNV) -#define wglQueryCurrentContextNV WGLEW_GET_FUN(__wglewQueryCurrentContextNV) - -#define WGLEW_NV_present_video WGLEW_GET_VAR(__WGLEW_NV_present_video) - -#endif /* WGL_NV_present_video */ - -/* ---------------------- WGL_NV_render_depth_texture ---------------------- */ - -#ifndef WGL_NV_render_depth_texture -#define WGL_NV_render_depth_texture 1 - -#define WGL_NO_TEXTURE_ARB 0x2077 -#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 -#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 -#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 -#define WGL_DEPTH_COMPONENT_NV 0x20A7 - -#define WGLEW_NV_render_depth_texture WGLEW_GET_VAR(__WGLEW_NV_render_depth_texture) - -#endif /* WGL_NV_render_depth_texture */ - -/* -------------------- WGL_NV_render_texture_rectangle -------------------- */ - -#ifndef WGL_NV_render_texture_rectangle -#define WGL_NV_render_texture_rectangle 1 - -#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 -#define WGL_TEXTURE_RECTANGLE_NV 0x20A2 - -#define WGLEW_NV_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_NV_render_texture_rectangle) - -#endif /* WGL_NV_render_texture_rectangle */ - -/* --------------------------- WGL_NV_swap_group --------------------------- */ - -#ifndef WGL_NV_swap_group -#define WGL_NV_swap_group 1 - -typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); -typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count); -typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint *maxBarriers); -typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint *barrier); -typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); - -#define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV) -#define wglJoinSwapGroupNV WGLEW_GET_FUN(__wglewJoinSwapGroupNV) -#define wglQueryFrameCountNV WGLEW_GET_FUN(__wglewQueryFrameCountNV) -#define wglQueryMaxSwapGroupsNV WGLEW_GET_FUN(__wglewQueryMaxSwapGroupsNV) -#define wglQuerySwapGroupNV WGLEW_GET_FUN(__wglewQuerySwapGroupNV) -#define wglResetFrameCountNV WGLEW_GET_FUN(__wglewResetFrameCountNV) - -#define WGLEW_NV_swap_group WGLEW_GET_VAR(__WGLEW_NV_swap_group) - -#endif /* WGL_NV_swap_group */ - -/* ----------------------- WGL_NV_vertex_array_range ----------------------- */ - -#ifndef WGL_NV_vertex_array_range -#define WGL_NV_vertex_array_range 1 - -typedef void * (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); -typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); - -#define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV) -#define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV) - -#define WGLEW_NV_vertex_array_range WGLEW_GET_VAR(__WGLEW_NV_vertex_array_range) - -#endif /* WGL_NV_vertex_array_range */ - -/* -------------------------- WGL_NV_video_capture ------------------------- */ - -#ifndef WGL_NV_video_capture -#define WGL_NV_video_capture 1 - -#define WGL_UNIQUE_ID_NV 0x20CE -#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF - -DECLARE_HANDLE(HVIDEOINPUTDEVICENV); - -typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); -typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV* phDeviceList); -typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); -typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); - -#define wglBindVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewBindVideoCaptureDeviceNV) -#define wglEnumerateVideoCaptureDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoCaptureDevicesNV) -#define wglLockVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewLockVideoCaptureDeviceNV) -#define wglQueryVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewQueryVideoCaptureDeviceNV) -#define wglReleaseVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoCaptureDeviceNV) - -#define WGLEW_NV_video_capture WGLEW_GET_VAR(__WGLEW_NV_video_capture) - -#endif /* WGL_NV_video_capture */ - -/* -------------------------- WGL_NV_video_output -------------------------- */ - -#ifndef WGL_NV_video_output -#define WGL_NV_video_output 1 - -#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0 -#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1 -#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2 -#define WGL_VIDEO_OUT_COLOR_NV 0x20C3 -#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4 -#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5 -#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 -#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 -#define WGL_VIDEO_OUT_FRAME 0x20C8 -#define WGL_VIDEO_OUT_FIELD_1 0x20C9 -#define WGL_VIDEO_OUT_FIELD_2 0x20CA -#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB -#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC - -DECLARE_HANDLE(HPVIDEODEV); - -typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); -typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice); -typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); -typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock); - -#define wglBindVideoImageNV WGLEW_GET_FUN(__wglewBindVideoImageNV) -#define wglGetVideoDeviceNV WGLEW_GET_FUN(__wglewGetVideoDeviceNV) -#define wglGetVideoInfoNV WGLEW_GET_FUN(__wglewGetVideoInfoNV) -#define wglReleaseVideoDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoDeviceNV) -#define wglReleaseVideoImageNV WGLEW_GET_FUN(__wglewReleaseVideoImageNV) -#define wglSendPbufferToVideoNV WGLEW_GET_FUN(__wglewSendPbufferToVideoNV) - -#define WGLEW_NV_video_output WGLEW_GET_VAR(__WGLEW_NV_video_output) - -#endif /* WGL_NV_video_output */ - -/* -------------------------- WGL_OML_sync_control ------------------------- */ - -#ifndef WGL_OML_sync_control -#define WGL_OML_sync_control 1 - -typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32 *denominator); -typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64 *msc, INT64 *sbc); -typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64 *msc, INT64 *sbc); -typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64 *msc, INT64 *sbc); - -#define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML) -#define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML) -#define wglSwapBuffersMscOML WGLEW_GET_FUN(__wglewSwapBuffersMscOML) -#define wglSwapLayerBuffersMscOML WGLEW_GET_FUN(__wglewSwapLayerBuffersMscOML) -#define wglWaitForMscOML WGLEW_GET_FUN(__wglewWaitForMscOML) -#define wglWaitForSbcOML WGLEW_GET_FUN(__wglewWaitForSbcOML) - -#define WGLEW_OML_sync_control WGLEW_GET_VAR(__WGLEW_OML_sync_control) - -#endif /* WGL_OML_sync_control */ - -/* ------------------------------------------------------------------------- */ - -#ifdef GLEW_MX -#define WGLEW_FUN_EXPORT -#define WGLEW_VAR_EXPORT -#else -#define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT -#define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT -#endif /* GLEW_MX */ - -#ifdef GLEW_MX -struct WGLEWContextStruct -{ -#endif /* GLEW_MX */ - -WGLEW_FUN_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL; - -WGLEW_FUN_EXPORT PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD; -WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD; -WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD; -WGLEW_FUN_EXPORT PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD; -WGLEW_FUN_EXPORT PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD; -WGLEW_FUN_EXPORT PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD; -WGLEW_FUN_EXPORT PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD; -WGLEW_FUN_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD; -WGLEW_FUN_EXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD; - -WGLEW_FUN_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB; -WGLEW_FUN_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB; -WGLEW_FUN_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB; -WGLEW_FUN_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB; - -WGLEW_FUN_EXPORT PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB; - -WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB; - -WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB; -WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB; - -WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB; -WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB; -WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB; -WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB; -WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB; - -WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB; -WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB; -WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB; - -WGLEW_FUN_EXPORT PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB; -WGLEW_FUN_EXPORT PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB; -WGLEW_FUN_EXPORT PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB; - -WGLEW_FUN_EXPORT PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT; -WGLEW_FUN_EXPORT PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT; -WGLEW_FUN_EXPORT PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT; -WGLEW_FUN_EXPORT PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT; - -WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT; - -WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT; -WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT; - -WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT; -WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT; -WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT; -WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT; -WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT; - -WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT; -WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT; -WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT; - -WGLEW_FUN_EXPORT PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT; -WGLEW_FUN_EXPORT PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT; - -WGLEW_FUN_EXPORT PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D; -WGLEW_FUN_EXPORT PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D; - -WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D; -WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D; -WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D; -WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D; - -WGLEW_FUN_EXPORT PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D; -WGLEW_FUN_EXPORT PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D; -WGLEW_FUN_EXPORT PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D; -WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D; -WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D; -WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D; -WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D; -WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D; -WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D; -WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D; -WGLEW_FUN_EXPORT PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D; -WGLEW_FUN_EXPORT PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D; - -WGLEW_FUN_EXPORT PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D; -WGLEW_FUN_EXPORT PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D; -WGLEW_FUN_EXPORT PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D; -WGLEW_FUN_EXPORT PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D; - -WGLEW_FUN_EXPORT PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D; -WGLEW_FUN_EXPORT PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D; -WGLEW_FUN_EXPORT PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D; -WGLEW_FUN_EXPORT PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D; - -WGLEW_FUN_EXPORT PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D; -WGLEW_FUN_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D; -WGLEW_FUN_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D; -WGLEW_FUN_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D; - -WGLEW_FUN_EXPORT PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV; -WGLEW_FUN_EXPORT PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV; -WGLEW_FUN_EXPORT PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV; -WGLEW_FUN_EXPORT PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV; -WGLEW_FUN_EXPORT PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV; -WGLEW_FUN_EXPORT PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV; -WGLEW_FUN_EXPORT PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV; -WGLEW_FUN_EXPORT PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV; - -WGLEW_FUN_EXPORT PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV; - -WGLEW_FUN_EXPORT PFNWGLDELAYBEFORESWAPNVPROC __wglewDelayBeforeSwapNV; - -WGLEW_FUN_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV; -WGLEW_FUN_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV; -WGLEW_FUN_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV; -WGLEW_FUN_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV; -WGLEW_FUN_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV; - -WGLEW_FUN_EXPORT PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV; -WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV; -WGLEW_FUN_EXPORT PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV; - -WGLEW_FUN_EXPORT PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV; -WGLEW_FUN_EXPORT PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV; -WGLEW_FUN_EXPORT PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV; -WGLEW_FUN_EXPORT PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV; -WGLEW_FUN_EXPORT PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV; -WGLEW_FUN_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV; - -WGLEW_FUN_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV; -WGLEW_FUN_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV; - -WGLEW_FUN_EXPORT PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV; -WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV; -WGLEW_FUN_EXPORT PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV; -WGLEW_FUN_EXPORT PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV; -WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV; - -WGLEW_FUN_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV; -WGLEW_FUN_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV; -WGLEW_FUN_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV; -WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV; -WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV; -WGLEW_FUN_EXPORT PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV; - -WGLEW_FUN_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML; -WGLEW_FUN_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML; -WGLEW_FUN_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML; -WGLEW_FUN_EXPORT PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML; -WGLEW_FUN_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML; -WGLEW_FUN_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML; -WGLEW_VAR_EXPORT GLboolean __WGLEW_3DFX_multisample; -WGLEW_VAR_EXPORT GLboolean __WGLEW_3DL_stereo_control; -WGLEW_VAR_EXPORT GLboolean __WGLEW_AMD_gpu_association; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_buffer_region; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_context_flush_control; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_profile; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_robustness; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_extensions_string; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_framebuffer_sRGB; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_make_current_read; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_multisample; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pbuffer; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format_float; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_render_texture; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_application_isolation; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_share_group_isolation; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_pixel_format_float; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es_profile; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_depth_float; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_display_color_table; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_extensions_string; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_make_current_read; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_multisample; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pbuffer; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control_tear; -WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_digital_video_control; -WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_gamma; -WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_genlock; -WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_image_buffer; -WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock; -WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop2; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_copy_image; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_delay_before_swap; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_float_buffer; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_gpu_affinity; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multisample_coverage; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_present_video; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_depth_texture; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_swap_group; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_vertex_array_range; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_capture; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_output; -WGLEW_VAR_EXPORT GLboolean __WGLEW_OML_sync_control; - -#ifdef GLEW_MX -}; /* WGLEWContextStruct */ -#endif /* GLEW_MX */ - -/* ------------------------------------------------------------------------- */ - -#ifdef GLEW_MX - -typedef struct WGLEWContextStruct WGLEWContext; -GLEWAPI GLenum GLEWAPIENTRY wglewContextInit (WGLEWContext *ctx); -GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext *ctx, const char *name); - -#define wglewInit() wglewContextInit(wglewGetContext()) -#define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x) - -#define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x)) -#define WGLEW_GET_FUN(x) wglewGetContext()->x - -#else /* GLEW_MX */ - -#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) -#define WGLEW_GET_FUN(x) x - -GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name); - -#endif /* GLEW_MX */ - -GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name); - -#ifdef __cplusplus -} -#endif - -#undef GLEWAPI - -#endif /* __wglew_h__ */ diff --git a/lib/windows/include/SDL.h b/lib/windows/include/SDL.h deleted file mode 100644 index 9ba8f68..0000000 --- a/lib/windows/include/SDL.h +++ /dev/null @@ -1,233 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL.h - * - * Main include header for the SDL library - */ - - -#ifndef SDL_h_ -#define SDL_h_ - -#include "SDL_main.h" -#include "SDL_stdinc.h" -#include "SDL_assert.h" -#include "SDL_atomic.h" -#include "SDL_audio.h" -#include "SDL_clipboard.h" -#include "SDL_cpuinfo.h" -#include "SDL_endian.h" -#include "SDL_error.h" -#include "SDL_events.h" -#include "SDL_filesystem.h" -#include "SDL_gamecontroller.h" -#include "SDL_guid.h" -#include "SDL_haptic.h" -#include "SDL_hidapi.h" -#include "SDL_hints.h" -#include "SDL_joystick.h" -#include "SDL_loadso.h" -#include "SDL_log.h" -#include "SDL_messagebox.h" -#include "SDL_metal.h" -#include "SDL_mutex.h" -#include "SDL_power.h" -#include "SDL_render.h" -#include "SDL_rwops.h" -#include "SDL_sensor.h" -#include "SDL_shape.h" -#include "SDL_system.h" -#include "SDL_thread.h" -#include "SDL_timer.h" -#include "SDL_version.h" -#include "SDL_video.h" -#include "SDL_locale.h" -#include "SDL_misc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* As of version 0.5, SDL is loaded dynamically into the application */ - -/** - * \name SDL_INIT_* - * - * These are the flags which may be passed to SDL_Init(). You should - * specify the subsystems which you will be using in your application. - */ -/* @{ */ -#define SDL_INIT_TIMER 0x00000001u -#define SDL_INIT_AUDIO 0x00000010u -#define SDL_INIT_VIDEO 0x00000020u /**< SDL_INIT_VIDEO implies SDL_INIT_EVENTS */ -#define SDL_INIT_JOYSTICK 0x00000200u /**< SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS */ -#define SDL_INIT_HAPTIC 0x00001000u -#define SDL_INIT_GAMECONTROLLER 0x00002000u /**< SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK */ -#define SDL_INIT_EVENTS 0x00004000u -#define SDL_INIT_SENSOR 0x00008000u -#define SDL_INIT_NOPARACHUTE 0x00100000u /**< compatibility; this flag is ignored. */ -#define SDL_INIT_EVERYTHING ( \ - SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | \ - SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER | SDL_INIT_SENSOR \ - ) -/* @} */ - -/** - * Initialize the SDL library. - * - * SDL_Init() simply forwards to calling SDL_InitSubSystem(). Therefore, the - * two may be used interchangeably. Though for readability of your code - * SDL_InitSubSystem() might be preferred. - * - * The file I/O (for example: SDL_RWFromFile) and threading (SDL_CreateThread) - * subsystems are initialized by default. Message boxes - * (SDL_ShowSimpleMessageBox) also attempt to work without initializing the - * video subsystem, in hopes of being useful in showing an error dialog when - * SDL_Init fails. You must specifically initialize other subsystems if you - * use them in your application. - * - * Logging (such as SDL_Log) works without initialization, too. - * - * `flags` may be any of the following OR'd together: - * - * - `SDL_INIT_TIMER`: timer subsystem - * - `SDL_INIT_AUDIO`: audio subsystem - * - `SDL_INIT_VIDEO`: video subsystem; automatically initializes the events - * subsystem - * - `SDL_INIT_JOYSTICK`: joystick subsystem; automatically initializes the - * events subsystem - * - `SDL_INIT_HAPTIC`: haptic (force feedback) subsystem - * - `SDL_INIT_GAMECONTROLLER`: controller subsystem; automatically - * initializes the joystick subsystem - * - `SDL_INIT_EVENTS`: events subsystem - * - `SDL_INIT_EVERYTHING`: all of the above subsystems - * - `SDL_INIT_NOPARACHUTE`: compatibility; this flag is ignored - * - * Subsystem initialization is ref-counted, you must call SDL_QuitSubSystem() - * for each SDL_InitSubSystem() to correctly shutdown a subsystem manually (or - * call SDL_Quit() to force shutdown). If a subsystem is already loaded then - * this call will increase the ref-count and return. - * - * \param flags subsystem initialization flags - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_InitSubSystem - * \sa SDL_Quit - * \sa SDL_SetMainReady - * \sa SDL_WasInit - */ -extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags); - -/** - * Compatibility function to initialize the SDL library. - * - * In SDL2, this function and SDL_Init() are interchangeable. - * - * \param flags any of the flags used by SDL_Init(); see SDL_Init for details. - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Init - * \sa SDL_Quit - * \sa SDL_QuitSubSystem - */ -extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags); - -/** - * Shut down specific SDL subsystems. - * - * If you start a subsystem using a call to that subsystem's init function - * (for example SDL_VideoInit()) instead of SDL_Init() or SDL_InitSubSystem(), - * SDL_QuitSubSystem() and SDL_WasInit() will not work. You will need to use - * that subsystem's quit function (SDL_VideoQuit()) directly instead. But - * generally, you should not be using those functions directly anyhow; use - * SDL_Init() instead. - * - * You still need to call SDL_Quit() even if you close all open subsystems - * with SDL_QuitSubSystem(). - * - * \param flags any of the flags used by SDL_Init(); see SDL_Init for details. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_InitSubSystem - * \sa SDL_Quit - */ -extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags); - -/** - * Get a mask of the specified subsystems which are currently initialized. - * - * \param flags any of the flags used by SDL_Init(); see SDL_Init for details. - * \returns a mask of all initialized subsystems if `flags` is 0, otherwise it - * returns the initialization status of the specified subsystems. - * - * The return value does not include SDL_INIT_NOPARACHUTE. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Init - * \sa SDL_InitSubSystem - */ -extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags); - -/** - * Clean up all initialized subsystems. - * - * You should call this function even if you have already shutdown each - * initialized subsystem with SDL_QuitSubSystem(). It is safe to call this - * function even in the case of errors in initialization. - * - * If you start a subsystem using a call to that subsystem's init function - * (for example SDL_VideoInit()) instead of SDL_Init() or SDL_InitSubSystem(), - * then you must use that subsystem's quit function (SDL_VideoQuit()) to shut - * it down before calling SDL_Quit(). But generally, you should not be using - * those functions directly anyhow; use SDL_Init() instead. - * - * You can use this function with atexit() to ensure that it is run when your - * application is shutdown, but it is not wise to do this from a library or - * other dynamically loaded code. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Init - * \sa SDL_QuitSubSystem - */ -extern DECLSPEC void SDLCALL SDL_Quit(void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_assert.h b/lib/windows/include/SDL_assert.h deleted file mode 100644 index 87d5c1b..0000000 --- a/lib/windows/include/SDL_assert.h +++ /dev/null @@ -1,320 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_assert_h_ -#define SDL_assert_h_ - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef SDL_ASSERT_LEVEL -#ifdef SDL_DEFAULT_ASSERT_LEVEL -#define SDL_ASSERT_LEVEL SDL_DEFAULT_ASSERT_LEVEL -#elif defined(_DEBUG) || defined(DEBUG) || \ - (defined(__GNUC__) && !defined(__OPTIMIZE__)) -#define SDL_ASSERT_LEVEL 2 -#else -#define SDL_ASSERT_LEVEL 1 -#endif -#endif /* SDL_ASSERT_LEVEL */ - -/* -These are macros and not first class functions so that the debugger breaks -on the assertion line and not in some random guts of SDL, and so each -assert can have unique static variables associated with it. -*/ - -#if defined(_MSC_VER) -/* Don't include intrin.h here because it contains C++ code */ - extern void __cdecl __debugbreak(void); - #define SDL_TriggerBreakpoint() __debugbreak() -#elif _SDL_HAS_BUILTIN(__builtin_debugtrap) - #define SDL_TriggerBreakpoint() __builtin_debugtrap() -#elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) ) - #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" ) -#elif ( defined(__APPLE__) && (defined(__arm64__) || defined(__aarch64__)) ) /* this might work on other ARM targets, but this is a known quantity... */ - #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "brk #22\n\t" ) -#elif defined(__APPLE__) && defined(__arm__) - #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "bkpt #22\n\t" ) -#elif defined(__386__) && defined(__WATCOMC__) - #define SDL_TriggerBreakpoint() { _asm { int 0x03 } } -#elif defined(HAVE_SIGNAL_H) && !defined(__WATCOMC__) - #include <signal.h> - #define SDL_TriggerBreakpoint() raise(SIGTRAP) -#else - /* How do we trigger breakpoints on this platform? */ - #define SDL_TriggerBreakpoint() -#endif - -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */ -# define SDL_FUNCTION __func__ -#elif ((defined(__GNUC__) && (__GNUC__ >= 2)) || defined(_MSC_VER) || defined (__WATCOMC__)) -# define SDL_FUNCTION __FUNCTION__ -#else -# define SDL_FUNCTION "???" -#endif -#define SDL_FILE __FILE__ -#define SDL_LINE __LINE__ - -/* -sizeof (x) makes the compiler still parse the expression even without -assertions enabled, so the code is always checked at compile time, but -doesn't actually generate code for it, so there are no side effects or -expensive checks at run time, just the constant size of what x WOULD be, -which presumably gets optimized out as unused. -This also solves the problem of... - - int somevalue = blah(); - SDL_assert(somevalue == 1); - -...which would cause compiles to complain that somevalue is unused if we -disable assertions. -*/ - -/* "while (0,0)" fools Microsoft's compiler's /W4 warning level into thinking - this condition isn't constant. And looks like an owl's face! */ -#ifdef _MSC_VER /* stupid /W4 warnings. */ -#define SDL_NULL_WHILE_LOOP_CONDITION (0,0) -#else -#define SDL_NULL_WHILE_LOOP_CONDITION (0) -#endif - -#define SDL_disabled_assert(condition) \ - do { (void) sizeof ((condition)); } while (SDL_NULL_WHILE_LOOP_CONDITION) - -typedef enum -{ - SDL_ASSERTION_RETRY, /**< Retry the assert immediately. */ - SDL_ASSERTION_BREAK, /**< Make the debugger trigger a breakpoint. */ - SDL_ASSERTION_ABORT, /**< Terminate the program. */ - SDL_ASSERTION_IGNORE, /**< Ignore the assert. */ - SDL_ASSERTION_ALWAYS_IGNORE /**< Ignore the assert from now on. */ -} SDL_AssertState; - -typedef struct SDL_AssertData -{ - int always_ignore; - unsigned int trigger_count; - const char *condition; - const char *filename; - int linenum; - const char *function; - const struct SDL_AssertData *next; -} SDL_AssertData; - -/* Never call this directly. Use the SDL_assert* macros. */ -extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *, - const char *, - const char *, int) -#if defined(__clang__) -#if __has_feature(attribute_analyzer_noreturn) -/* this tells Clang's static analysis that we're a custom assert function, - and that the analyzer should assume the condition was always true past this - SDL_assert test. */ - __attribute__((analyzer_noreturn)) -#endif -#endif -; - -/* the do {} while(0) avoids dangling else problems: - if (x) SDL_assert(y); else blah(); - ... without the do/while, the "else" could attach to this macro's "if". - We try to handle just the minimum we need here in a macro...the loop, - the static vars, and break points. The heavy lifting is handled in - SDL_ReportAssertion(), in SDL_assert.c. -*/ -#define SDL_enabled_assert(condition) \ - do { \ - while ( !(condition) ) { \ - static struct SDL_AssertData sdl_assert_data = { 0, 0, #condition, 0, 0, 0, 0 }; \ - const SDL_AssertState sdl_assert_state = SDL_ReportAssertion(&sdl_assert_data, SDL_FUNCTION, SDL_FILE, SDL_LINE); \ - if (sdl_assert_state == SDL_ASSERTION_RETRY) { \ - continue; /* go again. */ \ - } else if (sdl_assert_state == SDL_ASSERTION_BREAK) { \ - SDL_TriggerBreakpoint(); \ - } \ - break; /* not retrying. */ \ - } \ - } while (SDL_NULL_WHILE_LOOP_CONDITION) - -/* Enable various levels of assertions. */ -#if SDL_ASSERT_LEVEL == 0 /* assertions disabled */ -# define SDL_assert(condition) SDL_disabled_assert(condition) -# define SDL_assert_release(condition) SDL_disabled_assert(condition) -# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) -#elif SDL_ASSERT_LEVEL == 1 /* release settings. */ -# define SDL_assert(condition) SDL_disabled_assert(condition) -# define SDL_assert_release(condition) SDL_enabled_assert(condition) -# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) -#elif SDL_ASSERT_LEVEL == 2 /* normal settings. */ -# define SDL_assert(condition) SDL_enabled_assert(condition) -# define SDL_assert_release(condition) SDL_enabled_assert(condition) -# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) -#elif SDL_ASSERT_LEVEL == 3 /* paranoid settings. */ -# define SDL_assert(condition) SDL_enabled_assert(condition) -# define SDL_assert_release(condition) SDL_enabled_assert(condition) -# define SDL_assert_paranoid(condition) SDL_enabled_assert(condition) -#else -# error Unknown assertion level. -#endif - -/* this assertion is never disabled at any level. */ -#define SDL_assert_always(condition) SDL_enabled_assert(condition) - - -/** - * A callback that fires when an SDL assertion fails. - * - * \param data a pointer to the SDL_AssertData structure corresponding to the - * current assertion - * \param userdata what was passed as `userdata` to SDL_SetAssertionHandler() - * \returns an SDL_AssertState value indicating how to handle the failure. - */ -typedef SDL_AssertState (SDLCALL *SDL_AssertionHandler)( - const SDL_AssertData* data, void* userdata); - -/** - * Set an application-defined assertion handler. - * - * This function allows an application to show its own assertion UI and/or - * force the response to an assertion failure. If the application doesn't - * provide this, SDL will try to do the right thing, popping up a - * system-specific GUI dialog, and probably minimizing any fullscreen windows. - * - * This callback may fire from any thread, but it runs wrapped in a mutex, so - * it will only fire from one thread at a time. - * - * This callback is NOT reset to SDL's internal handler upon SDL_Quit()! - * - * \param handler the SDL_AssertionHandler function to call when an assertion - * fails or NULL for the default handler - * \param userdata a pointer that is passed to `handler` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetAssertionHandler - */ -extern DECLSPEC void SDLCALL SDL_SetAssertionHandler( - SDL_AssertionHandler handler, - void *userdata); - -/** - * Get the default assertion handler. - * - * This returns the function pointer that is called by default when an - * assertion is triggered. This is an internal function provided by SDL, that - * is used for assertions when SDL_SetAssertionHandler() hasn't been used to - * provide a different function. - * - * \returns the default SDL_AssertionHandler that is called when an assert - * triggers. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_GetAssertionHandler - */ -extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetDefaultAssertionHandler(void); - -/** - * Get the current assertion handler. - * - * This returns the function pointer that is called when an assertion is - * triggered. This is either the value last passed to - * SDL_SetAssertionHandler(), or if no application-specified function is set, - * is equivalent to calling SDL_GetDefaultAssertionHandler(). - * - * The parameter `puserdata` is a pointer to a void*, which will store the - * "userdata" pointer that was passed to SDL_SetAssertionHandler(). This value - * will always be NULL for the default handler. If you don't care about this - * data, it is safe to pass a NULL pointer to this function to ignore it. - * - * \param puserdata pointer which is filled with the "userdata" pointer that - * was passed to SDL_SetAssertionHandler() - * \returns the SDL_AssertionHandler that is called when an assert triggers. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_SetAssertionHandler - */ -extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetAssertionHandler(void **puserdata); - -/** - * Get a list of all assertion failures. - * - * This function gets all assertions triggered since the last call to - * SDL_ResetAssertionReport(), or the start of the program. - * - * The proper way to examine this data looks something like this: - * - * ```c - * const SDL_AssertData *item = SDL_GetAssertionReport(); - * while (item) { - * printf("'%s', %s (%s:%d), triggered %u times, always ignore: %s.\\n", - * item->condition, item->function, item->filename, - * item->linenum, item->trigger_count, - * item->always_ignore ? "yes" : "no"); - * item = item->next; - * } - * ``` - * - * \returns a list of all failed assertions or NULL if the list is empty. This - * memory should not be modified or freed by the application. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ResetAssertionReport - */ -extern DECLSPEC const SDL_AssertData * SDLCALL SDL_GetAssertionReport(void); - -/** - * Clear the list of all assertion failures. - * - * This function will clear the list of all assertions triggered up to that - * point. Immediately following this call, SDL_GetAssertionReport will return - * no items. In addition, any previously-triggered assertions will be reset to - * a trigger_count of zero, and their always_ignore state will be false. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetAssertionReport - */ -extern DECLSPEC void SDLCALL SDL_ResetAssertionReport(void); - - -/* these had wrong naming conventions until 2.0.4. Please update your app! */ -#define SDL_assert_state SDL_AssertState -#define SDL_assert_data SDL_AssertData - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_assert_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_atomic.h b/lib/windows/include/SDL_atomic.h deleted file mode 100644 index 8273287..0000000 --- a/lib/windows/include/SDL_atomic.h +++ /dev/null @@ -1,414 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_atomic.h - * - * Atomic operations. - * - * IMPORTANT: - * If you are not an expert in concurrent lockless programming, you should - * only be using the atomic lock and reference counting functions in this - * file. In all other cases you should be protecting your data structures - * with full mutexes. - * - * The list of "safe" functions to use are: - * SDL_AtomicLock() - * SDL_AtomicUnlock() - * SDL_AtomicIncRef() - * SDL_AtomicDecRef() - * - * Seriously, here be dragons! - * ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - * - * You can find out a little more about lockless programming and the - * subtle issues that can arise here: - * http://msdn.microsoft.com/en-us/library/ee418650%28v=vs.85%29.aspx - * - * There's also lots of good information here: - * http://www.1024cores.net/home/lock-free-algorithms - * http://preshing.com/ - * - * These operations may or may not actually be implemented using - * processor specific atomic operations. When possible they are - * implemented as true processor specific atomic operations. When that - * is not possible the are implemented using locks that *do* use the - * available atomic operations. - * - * All of the atomic operations that modify memory are full memory barriers. - */ - -#ifndef SDL_atomic_h_ -#define SDL_atomic_h_ - -#include "SDL_stdinc.h" -#include "SDL_platform.h" - -#include "begin_code.h" - -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \name SDL AtomicLock - * - * The atomic locks are efficient spinlocks using CPU instructions, - * but are vulnerable to starvation and can spin forever if a thread - * holding a lock has been terminated. For this reason you should - * minimize the code executed inside an atomic lock and never do - * expensive things like API or system calls while holding them. - * - * The atomic locks are not safe to lock recursively. - * - * Porting Note: - * The spin lock functions and type are required and can not be - * emulated because they are used in the atomic emulation code. - */ -/* @{ */ - -typedef int SDL_SpinLock; - -/** - * Try to lock a spin lock by setting it to a non-zero value. - * - * ***Please note that spinlocks are dangerous if you don't know what you're - * doing. Please be careful using any sort of spinlock!*** - * - * \param lock a pointer to a lock variable - * \returns SDL_TRUE if the lock succeeded, SDL_FALSE if the lock is already - * held. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AtomicLock - * \sa SDL_AtomicUnlock - */ -extern DECLSPEC SDL_bool SDLCALL SDL_AtomicTryLock(SDL_SpinLock *lock); - -/** - * Lock a spin lock by setting it to a non-zero value. - * - * ***Please note that spinlocks are dangerous if you don't know what you're - * doing. Please be careful using any sort of spinlock!*** - * - * \param lock a pointer to a lock variable - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AtomicTryLock - * \sa SDL_AtomicUnlock - */ -extern DECLSPEC void SDLCALL SDL_AtomicLock(SDL_SpinLock *lock); - -/** - * Unlock a spin lock by setting it to 0. - * - * Always returns immediately. - * - * ***Please note that spinlocks are dangerous if you don't know what you're - * doing. Please be careful using any sort of spinlock!*** - * - * \param lock a pointer to a lock variable - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AtomicLock - * \sa SDL_AtomicTryLock - */ -extern DECLSPEC void SDLCALL SDL_AtomicUnlock(SDL_SpinLock *lock); - -/* @} *//* SDL AtomicLock */ - - -/** - * The compiler barrier prevents the compiler from reordering - * reads and writes to globally visible variables across the call. - */ -#if defined(_MSC_VER) && (_MSC_VER > 1200) && !defined(__clang__) -void _ReadWriteBarrier(void); -#pragma intrinsic(_ReadWriteBarrier) -#define SDL_CompilerBarrier() _ReadWriteBarrier() -#elif (defined(__GNUC__) && !defined(__EMSCRIPTEN__)) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5120)) -/* This is correct for all CPUs when using GCC or Solaris Studio 12.1+. */ -#define SDL_CompilerBarrier() __asm__ __volatile__ ("" : : : "memory") -#elif defined(__WATCOMC__) -extern __inline void SDL_CompilerBarrier(void); -#pragma aux SDL_CompilerBarrier = "" parm [] modify exact []; -#else -#define SDL_CompilerBarrier() \ -{ SDL_SpinLock _tmp = 0; SDL_AtomicLock(&_tmp); SDL_AtomicUnlock(&_tmp); } -#endif - -/** - * Memory barriers are designed to prevent reads and writes from being - * reordered by the compiler and being seen out of order on multi-core CPUs. - * - * A typical pattern would be for thread A to write some data and a flag, and - * for thread B to read the flag and get the data. In this case you would - * insert a release barrier between writing the data and the flag, - * guaranteeing that the data write completes no later than the flag is - * written, and you would insert an acquire barrier between reading the flag - * and reading the data, to ensure that all the reads associated with the flag - * have completed. - * - * In this pattern you should always see a release barrier paired with an - * acquire barrier and you should gate the data reads/writes with a single - * flag variable. - * - * For more information on these semantics, take a look at the blog post: - * http://preshing.com/20120913/acquire-and-release-semantics - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC void SDLCALL SDL_MemoryBarrierReleaseFunction(void); -extern DECLSPEC void SDLCALL SDL_MemoryBarrierAcquireFunction(void); - -#if defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("lwsync" : : : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("lwsync" : : : "memory") -#elif defined(__GNUC__) && defined(__aarch64__) -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ish" : : : "memory") -#elif defined(__GNUC__) && defined(__arm__) -#if 0 /* defined(__LINUX__) || defined(__ANDROID__) */ -/* Information from: - https://chromium.googlesource.com/chromium/chromium/+/trunk/base/atomicops_internals_arm_gcc.h#19 - - The Linux kernel provides a helper function which provides the right code for a memory barrier, - hard-coded at address 0xffff0fa0 -*/ -typedef void (*SDL_KernelMemoryBarrierFunc)(); -#define SDL_MemoryBarrierRelease() ((SDL_KernelMemoryBarrierFunc)0xffff0fa0)() -#define SDL_MemoryBarrierAcquire() ((SDL_KernelMemoryBarrierFunc)0xffff0fa0)() -#elif 0 /* defined(__QNXNTO__) */ -#include <sys/cpuinline.h> - -#define SDL_MemoryBarrierRelease() __cpu_membarrier() -#define SDL_MemoryBarrierAcquire() __cpu_membarrier() -#else -#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) || defined(__ARM_ARCH_8A__) -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ish" : : : "memory") -#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_5TE__) -#ifdef __thumb__ -/* The mcr instruction isn't available in thumb mode, use real functions */ -#define SDL_MEMORY_BARRIER_USES_FUNCTION -#define SDL_MemoryBarrierRelease() SDL_MemoryBarrierReleaseFunction() -#define SDL_MemoryBarrierAcquire() SDL_MemoryBarrierAcquireFunction() -#else -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") -#endif /* __thumb__ */ -#else -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("" : : : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("" : : : "memory") -#endif /* __LINUX__ || __ANDROID__ */ -#endif /* __GNUC__ && __arm__ */ -#else -#if (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5120)) -/* This is correct for all CPUs on Solaris when using Solaris Studio 12.1+. */ -#include <mbarrier.h> -#define SDL_MemoryBarrierRelease() __machine_rel_barrier() -#define SDL_MemoryBarrierAcquire() __machine_acq_barrier() -#else -/* This is correct for the x86 and x64 CPUs, and we'll expand this over time. */ -#define SDL_MemoryBarrierRelease() SDL_CompilerBarrier() -#define SDL_MemoryBarrierAcquire() SDL_CompilerBarrier() -#endif -#endif - -/* "REP NOP" is PAUSE, coded for tools that don't know it by that name. */ -#if (defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__)) - #define SDL_CPUPauseInstruction() __asm__ __volatile__("pause\n") /* Some assemblers can't do REP NOP, so go with PAUSE. */ -#elif (defined(__arm__) && __ARM_ARCH >= 7) || defined(__aarch64__) - #define SDL_CPUPauseInstruction() __asm__ __volatile__("yield" ::: "memory") -#elif (defined(__powerpc__) || defined(__powerpc64__)) - #define SDL_CPUPauseInstruction() __asm__ __volatile__("or 27,27,27"); -#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) - #define SDL_CPUPauseInstruction() _mm_pause() /* this is actually "rep nop" and not a SIMD instruction. No inline asm in MSVC x86-64! */ -#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64)) - #define SDL_CPUPauseInstruction() __yield() -#elif defined(__WATCOMC__) && defined(__386__) - extern __inline void SDL_CPUPauseInstruction(void); - #pragma aux SDL_CPUPauseInstruction = ".686p" ".xmm2" "pause" -#else - #define SDL_CPUPauseInstruction() -#endif - - -/** - * \brief A type representing an atomic integer value. It is a struct - * so people don't accidentally use numeric operations on it. - */ -typedef struct { int value; } SDL_atomic_t; - -/** - * Set an atomic variable to a new value if it is currently an old value. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to an SDL_atomic_t variable to be modified - * \param oldval the old value - * \param newval the new value - * \returns SDL_TRUE if the atomic variable was set, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AtomicCASPtr - * \sa SDL_AtomicGet - * \sa SDL_AtomicSet - */ -extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCAS(SDL_atomic_t *a, int oldval, int newval); - -/** - * Set an atomic variable to a value. - * - * This function also acts as a full memory barrier. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to an SDL_atomic_t variable to be modified - * \param v the desired value - * \returns the previous value of the atomic variable. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_AtomicGet - */ -extern DECLSPEC int SDLCALL SDL_AtomicSet(SDL_atomic_t *a, int v); - -/** - * Get the value of an atomic variable. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to an SDL_atomic_t variable - * \returns the current value of an atomic variable. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_AtomicSet - */ -extern DECLSPEC int SDLCALL SDL_AtomicGet(SDL_atomic_t *a); - -/** - * Add to an atomic variable. - * - * This function also acts as a full memory barrier. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to an SDL_atomic_t variable to be modified - * \param v the desired value to add - * \returns the previous value of the atomic variable. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_AtomicDecRef - * \sa SDL_AtomicIncRef - */ -extern DECLSPEC int SDLCALL SDL_AtomicAdd(SDL_atomic_t *a, int v); - -/** - * \brief Increment an atomic variable used as a reference count. - */ -#ifndef SDL_AtomicIncRef -#define SDL_AtomicIncRef(a) SDL_AtomicAdd(a, 1) -#endif - -/** - * \brief Decrement an atomic variable used as a reference count. - * - * \return SDL_TRUE if the variable reached zero after decrementing, - * SDL_FALSE otherwise - */ -#ifndef SDL_AtomicDecRef -#define SDL_AtomicDecRef(a) (SDL_AtomicAdd(a, -1) == 1) -#endif - -/** - * Set a pointer to a new value if it is currently an old value. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to a pointer - * \param oldval the old pointer value - * \param newval the new pointer value - * \returns SDL_TRUE if the pointer was set, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AtomicCAS - * \sa SDL_AtomicGetPtr - * \sa SDL_AtomicSetPtr - */ -extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCASPtr(void **a, void *oldval, void *newval); - -/** - * Set a pointer to a value atomically. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to a pointer - * \param v the desired pointer value - * \returns the previous value of the pointer. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_AtomicCASPtr - * \sa SDL_AtomicGetPtr - */ -extern DECLSPEC void* SDLCALL SDL_AtomicSetPtr(void **a, void* v); - -/** - * Get the value of a pointer atomically. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to a pointer - * \returns the current value of a pointer. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_AtomicCASPtr - * \sa SDL_AtomicSetPtr - */ -extern DECLSPEC void* SDLCALL SDL_AtomicGetPtr(void **a); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif - -#include "close_code.h" - -#endif /* SDL_atomic_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_audio.h b/lib/windows/include/SDL_audio.h deleted file mode 100644 index ccd3598..0000000 --- a/lib/windows/include/SDL_audio.h +++ /dev/null @@ -1,1500 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* !!! FIXME: several functions in here need Doxygen comments. */ - -/** - * \file SDL_audio.h - * - * Access to the raw audio mixing buffer for the SDL library. - */ - -#ifndef SDL_audio_h_ -#define SDL_audio_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_endian.h" -#include "SDL_mutex.h" -#include "SDL_thread.h" -#include "SDL_rwops.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief Audio format flags. - * - * These are what the 16 bits in SDL_AudioFormat currently mean... - * (Unspecified bits are always zero). - * - * \verbatim - ++-----------------------sample is signed if set - || - || ++-----------sample is bigendian if set - || || - || || ++---sample is float if set - || || || - || || || +---sample bit size---+ - || || || | | - 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 - \endverbatim - * - * There are macros in SDL 2.0 and later to query these bits. - */ -typedef Uint16 SDL_AudioFormat; - -/** - * \name Audio flags - */ -/* @{ */ - -#define SDL_AUDIO_MASK_BITSIZE (0xFF) -#define SDL_AUDIO_MASK_DATATYPE (1<<8) -#define SDL_AUDIO_MASK_ENDIAN (1<<12) -#define SDL_AUDIO_MASK_SIGNED (1<<15) -#define SDL_AUDIO_BITSIZE(x) (x & SDL_AUDIO_MASK_BITSIZE) -#define SDL_AUDIO_ISFLOAT(x) (x & SDL_AUDIO_MASK_DATATYPE) -#define SDL_AUDIO_ISBIGENDIAN(x) (x & SDL_AUDIO_MASK_ENDIAN) -#define SDL_AUDIO_ISSIGNED(x) (x & SDL_AUDIO_MASK_SIGNED) -#define SDL_AUDIO_ISINT(x) (!SDL_AUDIO_ISFLOAT(x)) -#define SDL_AUDIO_ISLITTLEENDIAN(x) (!SDL_AUDIO_ISBIGENDIAN(x)) -#define SDL_AUDIO_ISUNSIGNED(x) (!SDL_AUDIO_ISSIGNED(x)) - -/** - * \name Audio format flags - * - * Defaults to LSB byte order. - */ -/* @{ */ -#define AUDIO_U8 0x0008 /**< Unsigned 8-bit samples */ -#define AUDIO_S8 0x8008 /**< Signed 8-bit samples */ -#define AUDIO_U16LSB 0x0010 /**< Unsigned 16-bit samples */ -#define AUDIO_S16LSB 0x8010 /**< Signed 16-bit samples */ -#define AUDIO_U16MSB 0x1010 /**< As above, but big-endian byte order */ -#define AUDIO_S16MSB 0x9010 /**< As above, but big-endian byte order */ -#define AUDIO_U16 AUDIO_U16LSB -#define AUDIO_S16 AUDIO_S16LSB -/* @} */ - -/** - * \name int32 support - */ -/* @{ */ -#define AUDIO_S32LSB 0x8020 /**< 32-bit integer samples */ -#define AUDIO_S32MSB 0x9020 /**< As above, but big-endian byte order */ -#define AUDIO_S32 AUDIO_S32LSB -/* @} */ - -/** - * \name float32 support - */ -/* @{ */ -#define AUDIO_F32LSB 0x8120 /**< 32-bit floating point samples */ -#define AUDIO_F32MSB 0x9120 /**< As above, but big-endian byte order */ -#define AUDIO_F32 AUDIO_F32LSB -/* @} */ - -/** - * \name Native audio byte ordering - */ -/* @{ */ -#if SDL_BYTEORDER == SDL_LIL_ENDIAN -#define AUDIO_U16SYS AUDIO_U16LSB -#define AUDIO_S16SYS AUDIO_S16LSB -#define AUDIO_S32SYS AUDIO_S32LSB -#define AUDIO_F32SYS AUDIO_F32LSB -#else -#define AUDIO_U16SYS AUDIO_U16MSB -#define AUDIO_S16SYS AUDIO_S16MSB -#define AUDIO_S32SYS AUDIO_S32MSB -#define AUDIO_F32SYS AUDIO_F32MSB -#endif -/* @} */ - -/** - * \name Allow change flags - * - * Which audio format changes are allowed when opening a device. - */ -/* @{ */ -#define SDL_AUDIO_ALLOW_FREQUENCY_CHANGE 0x00000001 -#define SDL_AUDIO_ALLOW_FORMAT_CHANGE 0x00000002 -#define SDL_AUDIO_ALLOW_CHANNELS_CHANGE 0x00000004 -#define SDL_AUDIO_ALLOW_SAMPLES_CHANGE 0x00000008 -#define SDL_AUDIO_ALLOW_ANY_CHANGE (SDL_AUDIO_ALLOW_FREQUENCY_CHANGE|SDL_AUDIO_ALLOW_FORMAT_CHANGE|SDL_AUDIO_ALLOW_CHANNELS_CHANGE|SDL_AUDIO_ALLOW_SAMPLES_CHANGE) -/* @} */ - -/* @} *//* Audio flags */ - -/** - * This function is called when the audio device needs more data. - * - * \param userdata An application-specific parameter saved in - * the SDL_AudioSpec structure - * \param stream A pointer to the audio data buffer. - * \param len The length of that buffer in bytes. - * - * Once the callback returns, the buffer will no longer be valid. - * Stereo samples are stored in a LRLRLR ordering. - * - * You can choose to avoid callbacks and use SDL_QueueAudio() instead, if - * you like. Just open your audio device with a NULL callback. - */ -typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream, - int len); - -/** - * The calculated values in this structure are calculated by SDL_OpenAudio(). - * - * For multi-channel audio, the default SDL channel mapping is: - * 2: FL FR (stereo) - * 3: FL FR LFE (2.1 surround) - * 4: FL FR BL BR (quad) - * 5: FL FR LFE BL BR (4.1 surround) - * 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR) - * 7: FL FR FC LFE BC SL SR (6.1 surround) - * 8: FL FR FC LFE BL BR SL SR (7.1 surround) - */ -typedef struct SDL_AudioSpec -{ - int freq; /**< DSP frequency -- samples per second */ - SDL_AudioFormat format; /**< Audio data format */ - Uint8 channels; /**< Number of channels: 1 mono, 2 stereo */ - Uint8 silence; /**< Audio buffer silence value (calculated) */ - Uint16 samples; /**< Audio buffer size in sample FRAMES (total samples divided by channel count) */ - Uint16 padding; /**< Necessary for some compile environments */ - Uint32 size; /**< Audio buffer size in bytes (calculated) */ - SDL_AudioCallback callback; /**< Callback that feeds the audio device (NULL to use SDL_QueueAudio()). */ - void *userdata; /**< Userdata passed to callback (ignored for NULL callbacks). */ -} SDL_AudioSpec; - - -struct SDL_AudioCVT; -typedef void (SDLCALL * SDL_AudioFilter) (struct SDL_AudioCVT * cvt, - SDL_AudioFormat format); - -/** - * \brief Upper limit of filters in SDL_AudioCVT - * - * The maximum number of SDL_AudioFilter functions in SDL_AudioCVT is - * currently limited to 9. The SDL_AudioCVT.filters array has 10 pointers, - * one of which is the terminating NULL pointer. - */ -#define SDL_AUDIOCVT_MAX_FILTERS 9 - -/** - * \struct SDL_AudioCVT - * \brief A structure to hold a set of audio conversion filters and buffers. - * - * Note that various parts of the conversion pipeline can take advantage - * of SIMD operations (like SSE2, for example). SDL_AudioCVT doesn't require - * you to pass it aligned data, but can possibly run much faster if you - * set both its (buf) field to a pointer that is aligned to 16 bytes, and its - * (len) field to something that's a multiple of 16, if possible. - */ -#if defined(__GNUC__) && !defined(__CHERI_PURE_CAPABILITY__) -/* This structure is 84 bytes on 32-bit architectures, make sure GCC doesn't - pad it out to 88 bytes to guarantee ABI compatibility between compilers. - This is not a concern on CHERI architectures, where pointers must be stored - at aligned locations otherwise they will become invalid, and thus structs - containing pointers cannot be packed without giving a warning or error. - vvv - The next time we rev the ABI, make sure to size the ints and add padding. -*/ -#define SDL_AUDIOCVT_PACKED __attribute__((packed)) -#else -#define SDL_AUDIOCVT_PACKED -#endif -/* */ -typedef struct SDL_AudioCVT -{ - int needed; /**< Set to 1 if conversion possible */ - SDL_AudioFormat src_format; /**< Source audio format */ - SDL_AudioFormat dst_format; /**< Target audio format */ - double rate_incr; /**< Rate conversion increment */ - Uint8 *buf; /**< Buffer to hold entire audio data */ - int len; /**< Length of original audio buffer */ - int len_cvt; /**< Length of converted audio buffer */ - int len_mult; /**< buffer must be len*len_mult big */ - double len_ratio; /**< Given len, final size is len*len_ratio */ - SDL_AudioFilter filters[SDL_AUDIOCVT_MAX_FILTERS + 1]; /**< NULL-terminated list of filter functions */ - int filter_index; /**< Current audio conversion function */ -} SDL_AUDIOCVT_PACKED SDL_AudioCVT; - - -/* Function prototypes */ - -/** - * \name Driver discovery functions - * - * These functions return the list of built in audio drivers, in the - * order that they are normally initialized by default. - */ -/* @{ */ - -/** - * Use this function to get the number of built-in audio drivers. - * - * This function returns a hardcoded number. This never returns a negative - * value; if there are no drivers compiled into this build of SDL, this - * function returns zero. The presence of a driver in this list does not mean - * it will function, it just means SDL is capable of interacting with that - * interface. For example, a build of SDL might have esound support, but if - * there's no esound server available, SDL's esound driver would fail if used. - * - * By default, SDL tries all drivers, in its preferred order, until one is - * found to be usable. - * - * \returns the number of built-in audio drivers. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetAudioDriver - */ -extern DECLSPEC int SDLCALL SDL_GetNumAudioDrivers(void); - -/** - * Use this function to get the name of a built in audio driver. - * - * The list of audio drivers is given in the order that they are normally - * initialized by default; the drivers that seem more reasonable to choose - * first (as far as the SDL developers believe) are earlier in the list. - * - * The names of drivers are all simple, low-ASCII identifiers, like "alsa", - * "coreaudio" or "xaudio2". These never have Unicode characters, and are not - * meant to be proper names. - * - * \param index the index of the audio driver; the value ranges from 0 to - * SDL_GetNumAudioDrivers() - 1 - * \returns the name of the audio driver at the requested index, or NULL if an - * invalid index was specified. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumAudioDrivers - */ -extern DECLSPEC const char *SDLCALL SDL_GetAudioDriver(int index); -/* @} */ - -/** - * \name Initialization and cleanup - * - * \internal These functions are used internally, and should not be used unless - * you have a specific need to specify the audio driver you want to - * use. You should normally use SDL_Init() or SDL_InitSubSystem(). - */ -/* @{ */ - -/** - * Use this function to initialize a particular audio driver. - * - * This function is used internally, and should not be used unless you have a - * specific need to designate the audio driver you want to use. You should - * normally use SDL_Init() or SDL_InitSubSystem(). - * - * \param driver_name the name of the desired audio driver - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AudioQuit - */ -extern DECLSPEC int SDLCALL SDL_AudioInit(const char *driver_name); - -/** - * Use this function to shut down audio if you initialized it with - * SDL_AudioInit(). - * - * This function is used internally, and should not be used unless you have a - * specific need to specify the audio driver you want to use. You should - * normally use SDL_Quit() or SDL_QuitSubSystem(). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AudioInit - */ -extern DECLSPEC void SDLCALL SDL_AudioQuit(void); -/* @} */ - -/** - * Get the name of the current audio driver. - * - * The returned string points to internal static memory and thus never becomes - * invalid, even if you quit the audio subsystem and initialize a new driver - * (although such a case would return a different static string from another - * call to this function, of course). As such, you should not modify or free - * the returned string. - * - * \returns the name of the current audio driver or NULL if no driver has been - * initialized. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AudioInit - */ -extern DECLSPEC const char *SDLCALL SDL_GetCurrentAudioDriver(void); - -/** - * This function is a legacy means of opening the audio device. - * - * This function remains for compatibility with SDL 1.2, but also because it's - * slightly easier to use than the new functions in SDL 2.0. The new, more - * powerful, and preferred way to do this is SDL_OpenAudioDevice(). - * - * This function is roughly equivalent to: - * - * ```c - * SDL_OpenAudioDevice(NULL, 0, desired, obtained, SDL_AUDIO_ALLOW_ANY_CHANGE); - * ``` - * - * With two notable exceptions: - * - * - If `obtained` is NULL, we use `desired` (and allow no changes), which - * means desired will be modified to have the correct values for silence, - * etc, and SDL will convert any differences between your app's specific - * request and the hardware behind the scenes. - * - The return value is always success or failure, and not a device ID, which - * means you can only have one device open at a time with this function. - * - * \param desired an SDL_AudioSpec structure representing the desired output - * format. Please refer to the SDL_OpenAudioDevice - * documentation for details on how to prepare this structure. - * \param obtained an SDL_AudioSpec structure filled in with the actual - * parameters, or NULL. - * \returns 0 if successful, placing the actual hardware parameters in the - * structure pointed to by `obtained`. - * - * If `obtained` is NULL, the audio data passed to the callback - * function will be guaranteed to be in the requested format, and - * will be automatically converted to the actual hardware audio - * format if necessary. If `obtained` is NULL, `desired` will have - * fields modified. - * - * This function returns a negative error code on failure to open the - * audio device or failure to set up the audio thread; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CloseAudio - * \sa SDL_LockAudio - * \sa SDL_PauseAudio - * \sa SDL_UnlockAudio - */ -extern DECLSPEC int SDLCALL SDL_OpenAudio(SDL_AudioSpec * desired, - SDL_AudioSpec * obtained); - -/** - * SDL Audio Device IDs. - * - * A successful call to SDL_OpenAudio() is always device id 1, and legacy - * SDL audio APIs assume you want this device ID. SDL_OpenAudioDevice() calls - * always returns devices >= 2 on success. The legacy calls are good both - * for backwards compatibility and when you don't care about multiple, - * specific, or capture devices. - */ -typedef Uint32 SDL_AudioDeviceID; - -/** - * Get the number of built-in audio devices. - * - * This function is only valid after successfully initializing the audio - * subsystem. - * - * Note that audio capture support is not implemented as of SDL 2.0.4, so the - * `iscapture` parameter is for future expansion and should always be zero for - * now. - * - * This function will return -1 if an explicit list of devices can't be - * determined. Returning -1 is not an error. For example, if SDL is set up to - * talk to a remote audio server, it can't list every one available on the - * Internet, but it will still allow a specific host to be specified in - * SDL_OpenAudioDevice(). - * - * In many common cases, when this function returns a value <= 0, it can still - * successfully open the default device (NULL for first argument of - * SDL_OpenAudioDevice()). - * - * This function may trigger a complete redetect of available hardware. It - * should not be called for each iteration of a loop, but rather once at the - * start of a loop: - * - * ```c - * // Don't do this: - * for (int i = 0; i < SDL_GetNumAudioDevices(0); i++) - * - * // do this instead: - * const int count = SDL_GetNumAudioDevices(0); - * for (int i = 0; i < count; ++i) { do_something_here(); } - * ``` - * - * \param iscapture zero to request playback devices, non-zero to request - * recording devices - * \returns the number of available devices exposed by the current driver or - * -1 if an explicit list of devices can't be determined. A return - * value of -1 does not necessarily mean an error condition. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetAudioDeviceName - * \sa SDL_OpenAudioDevice - */ -extern DECLSPEC int SDLCALL SDL_GetNumAudioDevices(int iscapture); - -/** - * Get the human-readable name of a specific audio device. - * - * This function is only valid after successfully initializing the audio - * subsystem. The values returned by this function reflect the latest call to - * SDL_GetNumAudioDevices(); re-call that function to redetect available - * hardware. - * - * The string returned by this function is UTF-8 encoded, read-only, and - * managed internally. You are not to free it. If you need to keep the string - * for any length of time, you should make your own copy of it, as it will be - * invalid next time any of several other SDL functions are called. - * - * \param index the index of the audio device; valid values range from 0 to - * SDL_GetNumAudioDevices() - 1 - * \param iscapture non-zero to query the list of recording devices, zero to - * query the list of output devices. - * \returns the name of the audio device at the requested index, or NULL on - * error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumAudioDevices - * \sa SDL_GetDefaultAudioInfo - */ -extern DECLSPEC const char *SDLCALL SDL_GetAudioDeviceName(int index, - int iscapture); - -/** - * Get the preferred audio format of a specific audio device. - * - * This function is only valid after a successfully initializing the audio - * subsystem. The values returned by this function reflect the latest call to - * SDL_GetNumAudioDevices(); re-call that function to redetect available - * hardware. - * - * `spec` will be filled with the sample rate, sample format, and channel - * count. - * - * \param index the index of the audio device; valid values range from 0 to - * SDL_GetNumAudioDevices() - 1 - * \param iscapture non-zero to query the list of recording devices, zero to - * query the list of output devices. - * \param spec The SDL_AudioSpec to be initialized by this function. - * \returns 0 on success, nonzero on error - * - * \since This function is available since SDL 2.0.16. - * - * \sa SDL_GetNumAudioDevices - * \sa SDL_GetDefaultAudioInfo - */ -extern DECLSPEC int SDLCALL SDL_GetAudioDeviceSpec(int index, - int iscapture, - SDL_AudioSpec *spec); - - -/** - * Get the name and preferred format of the default audio device. - * - * Some (but not all!) platforms have an isolated mechanism to get information - * about the "default" device. This can actually be a completely different - * device that's not in the list you get from SDL_GetAudioDeviceSpec(). It can - * even be a network address! (This is discussed in SDL_OpenAudioDevice().) - * - * As a result, this call is not guaranteed to be performant, as it can query - * the sound server directly every time, unlike the other query functions. You - * should call this function sparingly! - * - * `spec` will be filled with the sample rate, sample format, and channel - * count, if a default device exists on the system. If `name` is provided, - * will be filled with either a dynamically-allocated UTF-8 string or NULL. - * - * \param name A pointer to be filled with the name of the default device (can - * be NULL). Please call SDL_free() when you are done with this - * pointer! - * \param spec The SDL_AudioSpec to be initialized by this function. - * \param iscapture non-zero to query the default recording device, zero to - * query the default output device. - * \returns 0 on success, nonzero on error - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GetAudioDeviceName - * \sa SDL_GetAudioDeviceSpec - * \sa SDL_OpenAudioDevice - */ -extern DECLSPEC int SDLCALL SDL_GetDefaultAudioInfo(char **name, - SDL_AudioSpec *spec, - int iscapture); - - -/** - * Open a specific audio device. - * - * SDL_OpenAudio(), unlike this function, always acts on device ID 1. As such, - * this function will never return a 1 so as not to conflict with the legacy - * function. - * - * Please note that SDL 2.0 before 2.0.5 did not support recording; as such, - * this function would fail if `iscapture` was not zero. Starting with SDL - * 2.0.5, recording is implemented and this value can be non-zero. - * - * Passing in a `device` name of NULL requests the most reasonable default - * (and is equivalent to what SDL_OpenAudio() does to choose a device). The - * `device` name is a UTF-8 string reported by SDL_GetAudioDeviceName(), but - * some drivers allow arbitrary and driver-specific strings, such as a - * hostname/IP address for a remote audio server, or a filename in the - * diskaudio driver. - * - * An opened audio device starts out paused, and should be enabled for playing - * by calling SDL_PauseAudioDevice(devid, 0) when you are ready for your audio - * callback function to be called. Since the audio driver may modify the - * requested size of the audio buffer, you should allocate any local mixing - * buffers after you open the audio device. - * - * The audio callback runs in a separate thread in most cases; you can prevent - * race conditions between your callback and other threads without fully - * pausing playback with SDL_LockAudioDevice(). For more information about the - * callback, see SDL_AudioSpec. - * - * Managing the audio spec via 'desired' and 'obtained': - * - * When filling in the desired audio spec structure: - * - * - `desired->freq` should be the frequency in sample-frames-per-second (Hz). - * - `desired->format` should be the audio format (`AUDIO_S16SYS`, etc). - * - `desired->samples` is the desired size of the audio buffer, in _sample - * frames_ (with stereo output, two samples--left and right--would make a - * single sample frame). This number should be a power of two, and may be - * adjusted by the audio driver to a value more suitable for the hardware. - * Good values seem to range between 512 and 8096 inclusive, depending on - * the application and CPU speed. Smaller values reduce latency, but can - * lead to underflow if the application is doing heavy processing and cannot - * fill the audio buffer in time. Note that the number of sample frames is - * directly related to time by the following formula: `ms = - * (sampleframes*1000)/freq` - * - `desired->size` is the size in _bytes_ of the audio buffer, and is - * calculated by SDL_OpenAudioDevice(). You don't initialize this. - * - `desired->silence` is the value used to set the buffer to silence, and is - * calculated by SDL_OpenAudioDevice(). You don't initialize this. - * - `desired->callback` should be set to a function that will be called when - * the audio device is ready for more data. It is passed a pointer to the - * audio buffer, and the length in bytes of the audio buffer. This function - * usually runs in a separate thread, and so you should protect data - * structures that it accesses by calling SDL_LockAudioDevice() and - * SDL_UnlockAudioDevice() in your code. Alternately, you may pass a NULL - * pointer here, and call SDL_QueueAudio() with some frequency, to queue - * more audio samples to be played (or for capture devices, call - * SDL_DequeueAudio() with some frequency, to obtain audio samples). - * - `desired->userdata` is passed as the first parameter to your callback - * function. If you passed a NULL callback, this value is ignored. - * - * `allowed_changes` can have the following flags OR'd together: - * - * - `SDL_AUDIO_ALLOW_FREQUENCY_CHANGE` - * - `SDL_AUDIO_ALLOW_FORMAT_CHANGE` - * - `SDL_AUDIO_ALLOW_CHANNELS_CHANGE` - * - `SDL_AUDIO_ALLOW_SAMPLES_CHANGE` - * - `SDL_AUDIO_ALLOW_ANY_CHANGE` - * - * These flags specify how SDL should behave when a device cannot offer a - * specific feature. If the application requests a feature that the hardware - * doesn't offer, SDL will always try to get the closest equivalent. - * - * For example, if you ask for float32 audio format, but the sound card only - * supports int16, SDL will set the hardware to int16. If you had set - * SDL_AUDIO_ALLOW_FORMAT_CHANGE, SDL will change the format in the `obtained` - * structure. If that flag was *not* set, SDL will prepare to convert your - * callback's float32 audio to int16 before feeding it to the hardware and - * will keep the originally requested format in the `obtained` structure. - * - * The resulting audio specs, varying depending on hardware and on what - * changes were allowed, will then be written back to `obtained`. - * - * If your application can only handle one specific data format, pass a zero - * for `allowed_changes` and let SDL transparently handle any differences. - * - * \param device a UTF-8 string reported by SDL_GetAudioDeviceName() or a - * driver-specific name as appropriate. NULL requests the most - * reasonable default device. - * \param iscapture non-zero to specify a device should be opened for - * recording, not playback - * \param desired an SDL_AudioSpec structure representing the desired output - * format; see SDL_OpenAudio() for more information - * \param obtained an SDL_AudioSpec structure filled in with the actual output - * format; see SDL_OpenAudio() for more information - * \param allowed_changes 0, or one or more flags OR'd together - * \returns a valid device ID that is > 0 on success or 0 on failure; call - * SDL_GetError() for more information. - * - * For compatibility with SDL 1.2, this will never return 1, since - * SDL reserves that ID for the legacy SDL_OpenAudio() function. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CloseAudioDevice - * \sa SDL_GetAudioDeviceName - * \sa SDL_LockAudioDevice - * \sa SDL_OpenAudio - * \sa SDL_PauseAudioDevice - * \sa SDL_UnlockAudioDevice - */ -extern DECLSPEC SDL_AudioDeviceID SDLCALL SDL_OpenAudioDevice( - const char *device, - int iscapture, - const SDL_AudioSpec *desired, - SDL_AudioSpec *obtained, - int allowed_changes); - - - -/** - * \name Audio state - * - * Get the current audio state. - */ -/* @{ */ -typedef enum -{ - SDL_AUDIO_STOPPED = 0, - SDL_AUDIO_PLAYING, - SDL_AUDIO_PAUSED -} SDL_AudioStatus; - -/** - * This function is a legacy means of querying the audio device. - * - * New programs might want to use SDL_GetAudioDeviceStatus() instead. This - * function is equivalent to calling... - * - * ```c - * SDL_GetAudioDeviceStatus(1); - * ``` - * - * ...and is only useful if you used the legacy SDL_OpenAudio() function. - * - * \returns the SDL_AudioStatus of the audio device opened by SDL_OpenAudio(). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetAudioDeviceStatus - */ -extern DECLSPEC SDL_AudioStatus SDLCALL SDL_GetAudioStatus(void); - -/** - * Use this function to get the current audio state of an audio device. - * - * \param dev the ID of an audio device previously opened with - * SDL_OpenAudioDevice() - * \returns the SDL_AudioStatus of the specified audio device. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PauseAudioDevice - */ -extern DECLSPEC SDL_AudioStatus SDLCALL SDL_GetAudioDeviceStatus(SDL_AudioDeviceID dev); -/* @} *//* Audio State */ - -/** - * \name Pause audio functions - * - * These functions pause and unpause the audio callback processing. - * They should be called with a parameter of 0 after opening the audio - * device to start playing sound. This is so you can safely initialize - * data for your callback function after opening the audio device. - * Silence will be written to the audio device during the pause. - */ -/* @{ */ - -/** - * This function is a legacy means of pausing the audio device. - * - * New programs might want to use SDL_PauseAudioDevice() instead. This - * function is equivalent to calling... - * - * ```c - * SDL_PauseAudioDevice(1, pause_on); - * ``` - * - * ...and is only useful if you used the legacy SDL_OpenAudio() function. - * - * \param pause_on non-zero to pause, 0 to unpause - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetAudioStatus - * \sa SDL_PauseAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_PauseAudio(int pause_on); - -/** - * Use this function to pause and unpause audio playback on a specified - * device. - * - * This function pauses and unpauses the audio callback processing for a given - * device. Newly-opened audio devices start in the paused state, so you must - * call this function with **pause_on**=0 after opening the specified audio - * device to start playing sound. This allows you to safely initialize data - * for your callback function after opening the audio device. Silence will be - * written to the audio device while paused, and the audio callback is - * guaranteed to not be called. Pausing one device does not prevent other - * unpaused devices from running their callbacks. - * - * Pausing state does not stack; even if you pause a device several times, a - * single unpause will start the device playing again, and vice versa. This is - * different from how SDL_LockAudioDevice() works. - * - * If you just need to protect a few variables from race conditions vs your - * callback, you shouldn't pause the audio device, as it will lead to dropouts - * in the audio playback. Instead, you should use SDL_LockAudioDevice(). - * - * \param dev a device opened by SDL_OpenAudioDevice() - * \param pause_on non-zero to pause, 0 to unpause - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LockAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_PauseAudioDevice(SDL_AudioDeviceID dev, - int pause_on); -/* @} *//* Pause audio functions */ - -/** - * Load the audio data of a WAVE file into memory. - * - * Loading a WAVE file requires `src`, `spec`, `audio_buf` and `audio_len` to - * be valid pointers. The entire data portion of the file is then loaded into - * memory and decoded if necessary. - * - * If `freesrc` is non-zero, the data source gets automatically closed and - * freed before the function returns. - * - * Supported formats are RIFF WAVE files with the formats PCM (8, 16, 24, and - * 32 bits), IEEE Float (32 bits), Microsoft ADPCM and IMA ADPCM (4 bits), and - * A-law and mu-law (8 bits). Other formats are currently unsupported and - * cause an error. - * - * If this function succeeds, the pointer returned by it is equal to `spec` - * and the pointer to the audio data allocated by the function is written to - * `audio_buf` and its length in bytes to `audio_len`. The SDL_AudioSpec - * members `freq`, `channels`, and `format` are set to the values of the audio - * data in the buffer. The `samples` member is set to a sane default and all - * others are set to zero. - * - * It's necessary to use SDL_FreeWAV() to free the audio data returned in - * `audio_buf` when it is no longer used. - * - * Because of the underspecification of the .WAV format, there are many - * problematic files in the wild that cause issues with strict decoders. To - * provide compatibility with these files, this decoder is lenient in regards - * to the truncation of the file, the fact chunk, and the size of the RIFF - * chunk. The hints `SDL_HINT_WAVE_RIFF_CHUNK_SIZE`, - * `SDL_HINT_WAVE_TRUNCATION`, and `SDL_HINT_WAVE_FACT_CHUNK` can be used to - * tune the behavior of the loading process. - * - * Any file that is invalid (due to truncation, corruption, or wrong values in - * the headers), too big, or unsupported causes an error. Additionally, any - * critical I/O error from the data source will terminate the loading process - * with an error. The function returns NULL on error and in all cases (with - * the exception of `src` being NULL), an appropriate error message will be - * set. - * - * It is required that the data source supports seeking. - * - * Example: - * - * ```c - * SDL_LoadWAV_RW(SDL_RWFromFile("sample.wav", "rb"), 1, &spec, &buf, &len); - * ``` - * - * Note that the SDL_LoadWAV macro does this same thing for you, but in a less - * messy way: - * - * ```c - * SDL_LoadWAV("sample.wav", &spec, &buf, &len); - * ``` - * - * \param src The data source for the WAVE data - * \param freesrc If non-zero, SDL will _always_ free the data source - * \param spec An SDL_AudioSpec that will be filled in with the wave file's - * format details - * \param audio_buf A pointer filled with the audio data, allocated by the - * function. - * \param audio_len A pointer filled with the length of the audio data buffer - * in bytes - * \returns This function, if successfully called, returns `spec`, which will - * be filled with the audio data format of the wave source data. - * `audio_buf` will be filled with a pointer to an allocated buffer - * containing the audio data, and `audio_len` is filled with the - * length of that audio buffer in bytes. - * - * This function returns NULL if the .WAV file cannot be opened, uses - * an unknown data format, or is corrupt; call SDL_GetError() for - * more information. - * - * When the application is done with the data returned in - * `audio_buf`, it should call SDL_FreeWAV() to dispose of it. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreeWAV - * \sa SDL_LoadWAV - */ -extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src, - int freesrc, - SDL_AudioSpec * spec, - Uint8 ** audio_buf, - Uint32 * audio_len); - -/** - * Loads a WAV from a file. - * Compatibility convenience function. - */ -#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \ - SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"),1, spec,audio_buf,audio_len) - -/** - * Free data previously allocated with SDL_LoadWAV() or SDL_LoadWAV_RW(). - * - * After a WAVE file has been opened with SDL_LoadWAV() or SDL_LoadWAV_RW() - * its data can eventually be freed with SDL_FreeWAV(). It is safe to call - * this function with a NULL pointer. - * - * \param audio_buf a pointer to the buffer created by SDL_LoadWAV() or - * SDL_LoadWAV_RW() - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadWAV - * \sa SDL_LoadWAV_RW - */ -extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 * audio_buf); - -/** - * Initialize an SDL_AudioCVT structure for conversion. - * - * Before an SDL_AudioCVT structure can be used to convert audio data it must - * be initialized with source and destination information. - * - * This function will zero out every field of the SDL_AudioCVT, so it must be - * called before the application fills in the final buffer information. - * - * Once this function has returned successfully, and reported that a - * conversion is necessary, the application fills in the rest of the fields in - * SDL_AudioCVT, now that it knows how large a buffer it needs to allocate, - * and then can call SDL_ConvertAudio() to complete the conversion. - * - * \param cvt an SDL_AudioCVT structure filled in with audio conversion - * information - * \param src_format the source format of the audio data; for more info see - * SDL_AudioFormat - * \param src_channels the number of channels in the source - * \param src_rate the frequency (sample-frames-per-second) of the source - * \param dst_format the destination format of the audio data; for more info - * see SDL_AudioFormat - * \param dst_channels the number of channels in the destination - * \param dst_rate the frequency (sample-frames-per-second) of the destination - * \returns 1 if the audio filter is prepared, 0 if no conversion is needed, - * or a negative error code on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ConvertAudio - */ -extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT * cvt, - SDL_AudioFormat src_format, - Uint8 src_channels, - int src_rate, - SDL_AudioFormat dst_format, - Uint8 dst_channels, - int dst_rate); - -/** - * Convert audio data to a desired audio format. - * - * This function does the actual audio data conversion, after the application - * has called SDL_BuildAudioCVT() to prepare the conversion information and - * then filled in the buffer details. - * - * Once the application has initialized the `cvt` structure using - * SDL_BuildAudioCVT(), allocated an audio buffer and filled it with audio - * data in the source format, this function will convert the buffer, in-place, - * to the desired format. - * - * The data conversion may go through several passes; any given pass may - * possibly temporarily increase the size of the data. For example, SDL might - * expand 16-bit data to 32 bits before resampling to a lower frequency, - * shrinking the data size after having grown it briefly. Since the supplied - * buffer will be both the source and destination, converting as necessary - * in-place, the application must allocate a buffer that will fully contain - * the data during its largest conversion pass. After SDL_BuildAudioCVT() - * returns, the application should set the `cvt->len` field to the size, in - * bytes, of the source data, and allocate a buffer that is `cvt->len * - * cvt->len_mult` bytes long for the `buf` field. - * - * The source data should be copied into this buffer before the call to - * SDL_ConvertAudio(). Upon successful return, this buffer will contain the - * converted audio, and `cvt->len_cvt` will be the size of the converted data, - * in bytes. Any bytes in the buffer past `cvt->len_cvt` are undefined once - * this function returns. - * - * \param cvt an SDL_AudioCVT structure that was previously set up by - * SDL_BuildAudioCVT(). - * \returns 0 if the conversion was completed successfully or a negative error - * code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BuildAudioCVT - */ -extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT * cvt); - -/* SDL_AudioStream is a new audio conversion interface. - The benefits vs SDL_AudioCVT: - - it can handle resampling data in chunks without generating - artifacts, when it doesn't have the complete buffer available. - - it can handle incoming data in any variable size. - - You push data as you have it, and pull it when you need it - */ -/* this is opaque to the outside world. */ -struct _SDL_AudioStream; -typedef struct _SDL_AudioStream SDL_AudioStream; - -/** - * Create a new audio stream. - * - * \param src_format The format of the source audio - * \param src_channels The number of channels of the source audio - * \param src_rate The sampling rate of the source audio - * \param dst_format The format of the desired audio output - * \param dst_channels The number of channels of the desired audio output - * \param dst_rate The sampling rate of the desired audio output - * \returns 0 on success, or -1 on error. - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_AudioStreamPut - * \sa SDL_AudioStreamGet - * \sa SDL_AudioStreamAvailable - * \sa SDL_AudioStreamFlush - * \sa SDL_AudioStreamClear - * \sa SDL_FreeAudioStream - */ -extern DECLSPEC SDL_AudioStream * SDLCALL SDL_NewAudioStream(const SDL_AudioFormat src_format, - const Uint8 src_channels, - const int src_rate, - const SDL_AudioFormat dst_format, - const Uint8 dst_channels, - const int dst_rate); - -/** - * Add data to be converted/resampled to the stream. - * - * \param stream The stream the audio data is being added to - * \param buf A pointer to the audio data to add - * \param len The number of bytes to write to the stream - * \returns 0 on success, or -1 on error. - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_NewAudioStream - * \sa SDL_AudioStreamGet - * \sa SDL_AudioStreamAvailable - * \sa SDL_AudioStreamFlush - * \sa SDL_AudioStreamClear - * \sa SDL_FreeAudioStream - */ -extern DECLSPEC int SDLCALL SDL_AudioStreamPut(SDL_AudioStream *stream, const void *buf, int len); - -/** - * Get converted/resampled data from the stream - * - * \param stream The stream the audio is being requested from - * \param buf A buffer to fill with audio data - * \param len The maximum number of bytes to fill - * \returns the number of bytes read from the stream, or -1 on error - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_NewAudioStream - * \sa SDL_AudioStreamPut - * \sa SDL_AudioStreamAvailable - * \sa SDL_AudioStreamFlush - * \sa SDL_AudioStreamClear - * \sa SDL_FreeAudioStream - */ -extern DECLSPEC int SDLCALL SDL_AudioStreamGet(SDL_AudioStream *stream, void *buf, int len); - -/** - * Get the number of converted/resampled bytes available. - * - * The stream may be buffering data behind the scenes until it has enough to - * resample correctly, so this number might be lower than what you expect, or - * even be zero. Add more data or flush the stream if you need the data now. - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_NewAudioStream - * \sa SDL_AudioStreamPut - * \sa SDL_AudioStreamGet - * \sa SDL_AudioStreamFlush - * \sa SDL_AudioStreamClear - * \sa SDL_FreeAudioStream - */ -extern DECLSPEC int SDLCALL SDL_AudioStreamAvailable(SDL_AudioStream *stream); - -/** - * Tell the stream that you're done sending data, and anything being buffered - * should be converted/resampled and made available immediately. - * - * It is legal to add more data to a stream after flushing, but there will be - * audio gaps in the output. Generally this is intended to signal the end of - * input, so the complete output becomes available. - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_NewAudioStream - * \sa SDL_AudioStreamPut - * \sa SDL_AudioStreamGet - * \sa SDL_AudioStreamAvailable - * \sa SDL_AudioStreamClear - * \sa SDL_FreeAudioStream - */ -extern DECLSPEC int SDLCALL SDL_AudioStreamFlush(SDL_AudioStream *stream); - -/** - * Clear any pending data in the stream without converting it - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_NewAudioStream - * \sa SDL_AudioStreamPut - * \sa SDL_AudioStreamGet - * \sa SDL_AudioStreamAvailable - * \sa SDL_AudioStreamFlush - * \sa SDL_FreeAudioStream - */ -extern DECLSPEC void SDLCALL SDL_AudioStreamClear(SDL_AudioStream *stream); - -/** - * Free an audio stream - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_NewAudioStream - * \sa SDL_AudioStreamPut - * \sa SDL_AudioStreamGet - * \sa SDL_AudioStreamAvailable - * \sa SDL_AudioStreamFlush - * \sa SDL_AudioStreamClear - */ -extern DECLSPEC void SDLCALL SDL_FreeAudioStream(SDL_AudioStream *stream); - -#define SDL_MIX_MAXVOLUME 128 - -/** - * This function is a legacy means of mixing audio. - * - * This function is equivalent to calling... - * - * ```c - * SDL_MixAudioFormat(dst, src, format, len, volume); - * ``` - * - * ...where `format` is the obtained format of the audio device from the - * legacy SDL_OpenAudio() function. - * - * \param dst the destination for the mixed audio - * \param src the source audio buffer to be mixed - * \param len the length of the audio buffer in bytes - * \param volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME - * for full audio volume - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_MixAudioFormat - */ -extern DECLSPEC void SDLCALL SDL_MixAudio(Uint8 * dst, const Uint8 * src, - Uint32 len, int volume); - -/** - * Mix audio data in a specified format. - * - * This takes an audio buffer `src` of `len` bytes of `format` data and mixes - * it into `dst`, performing addition, volume adjustment, and overflow - * clipping. The buffer pointed to by `dst` must also be `len` bytes of - * `format` data. - * - * This is provided for convenience -- you can mix your own audio data. - * - * Do not use this function for mixing together more than two streams of - * sample data. The output from repeated application of this function may be - * distorted by clipping, because there is no accumulator with greater range - * than the input (not to mention this being an inefficient way of doing it). - * - * It is a common misconception that this function is required to write audio - * data to an output stream in an audio callback. While you can do that, - * SDL_MixAudioFormat() is really only needed when you're mixing a single - * audio stream with a volume adjustment. - * - * \param dst the destination for the mixed audio - * \param src the source audio buffer to be mixed - * \param format the SDL_AudioFormat structure representing the desired audio - * format - * \param len the length of the audio buffer in bytes - * \param volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME - * for full audio volume - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_MixAudioFormat(Uint8 * dst, - const Uint8 * src, - SDL_AudioFormat format, - Uint32 len, int volume); - -/** - * Queue more audio on non-callback devices. - * - * If you are looking to retrieve queued audio from a non-callback capture - * device, you want SDL_DequeueAudio() instead. SDL_QueueAudio() will return - * -1 to signify an error if you use it with capture devices. - * - * SDL offers two ways to feed audio to the device: you can either supply a - * callback that SDL triggers with some frequency to obtain more audio (pull - * method), or you can supply no callback, and then SDL will expect you to - * supply data at regular intervals (push method) with this function. - * - * There are no limits on the amount of data you can queue, short of - * exhaustion of address space. Queued data will drain to the device as - * necessary without further intervention from you. If the device needs audio - * but there is not enough queued, it will play silence to make up the - * difference. This means you will have skips in your audio playback if you - * aren't routinely queueing sufficient data. - * - * This function copies the supplied data, so you are safe to free it when the - * function returns. This function is thread-safe, but queueing to the same - * device from two threads at once does not promise which buffer will be - * queued first. - * - * You may not queue audio on a device that is using an application-supplied - * callback; doing so returns an error. You have to use the audio callback or - * queue audio with this function, but not both. - * - * You should not call SDL_LockAudio() on the device before queueing; SDL - * handles locking internally for this function. - * - * Note that SDL2 does not support planar audio. You will need to resample - * from planar audio formats into a non-planar one (see SDL_AudioFormat) - * before queuing audio. - * - * \param dev the device ID to which we will queue audio - * \param data the data to queue to the device for later playback - * \param len the number of bytes (not samples!) to which `data` points - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_ClearQueuedAudio - * \sa SDL_GetQueuedAudioSize - */ -extern DECLSPEC int SDLCALL SDL_QueueAudio(SDL_AudioDeviceID dev, const void *data, Uint32 len); - -/** - * Dequeue more audio on non-callback devices. - * - * If you are looking to queue audio for output on a non-callback playback - * device, you want SDL_QueueAudio() instead. SDL_DequeueAudio() will always - * return 0 if you use it with playback devices. - * - * SDL offers two ways to retrieve audio from a capture device: you can either - * supply a callback that SDL triggers with some frequency as the device - * records more audio data, (push method), or you can supply no callback, and - * then SDL will expect you to retrieve data at regular intervals (pull - * method) with this function. - * - * There are no limits on the amount of data you can queue, short of - * exhaustion of address space. Data from the device will keep queuing as - * necessary without further intervention from you. This means you will - * eventually run out of memory if you aren't routinely dequeueing data. - * - * Capture devices will not queue data when paused; if you are expecting to - * not need captured audio for some length of time, use SDL_PauseAudioDevice() - * to stop the capture device from queueing more data. This can be useful - * during, say, level loading times. When unpaused, capture devices will start - * queueing data from that point, having flushed any capturable data available - * while paused. - * - * This function is thread-safe, but dequeueing from the same device from two - * threads at once does not promise which thread will dequeue data first. - * - * You may not dequeue audio from a device that is using an - * application-supplied callback; doing so returns an error. You have to use - * the audio callback, or dequeue audio with this function, but not both. - * - * You should not call SDL_LockAudio() on the device before dequeueing; SDL - * handles locking internally for this function. - * - * \param dev the device ID from which we will dequeue audio - * \param data a pointer into where audio data should be copied - * \param len the number of bytes (not samples!) to which (data) points - * \returns the number of bytes dequeued, which could be less than requested; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_ClearQueuedAudio - * \sa SDL_GetQueuedAudioSize - */ -extern DECLSPEC Uint32 SDLCALL SDL_DequeueAudio(SDL_AudioDeviceID dev, void *data, Uint32 len); - -/** - * Get the number of bytes of still-queued audio. - * - * For playback devices: this is the number of bytes that have been queued for - * playback with SDL_QueueAudio(), but have not yet been sent to the hardware. - * - * Once we've sent it to the hardware, this function can not decide the exact - * byte boundary of what has been played. It's possible that we just gave the - * hardware several kilobytes right before you called this function, but it - * hasn't played any of it yet, or maybe half of it, etc. - * - * For capture devices, this is the number of bytes that have been captured by - * the device and are waiting for you to dequeue. This number may grow at any - * time, so this only informs of the lower-bound of available data. - * - * You may not queue or dequeue audio on a device that is using an - * application-supplied callback; calling this function on such a device - * always returns 0. You have to use the audio callback or queue audio, but - * not both. - * - * You should not call SDL_LockAudio() on the device before querying; SDL - * handles locking internally for this function. - * - * \param dev the device ID of which we will query queued audio size - * \returns the number of bytes (not samples!) of queued audio. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_ClearQueuedAudio - * \sa SDL_QueueAudio - * \sa SDL_DequeueAudio - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetQueuedAudioSize(SDL_AudioDeviceID dev); - -/** - * Drop any queued audio data waiting to be sent to the hardware. - * - * Immediately after this call, SDL_GetQueuedAudioSize() will return 0. For - * output devices, the hardware will start playing silence if more audio isn't - * queued. For capture devices, the hardware will start filling the empty - * queue with new data if the capture device isn't paused. - * - * This will not prevent playback of queued audio that's already been sent to - * the hardware, as we can not undo that, so expect there to be some fraction - * of a second of audio that might still be heard. This can be useful if you - * want to, say, drop any pending music or any unprocessed microphone input - * during a level change in your game. - * - * You may not queue or dequeue audio on a device that is using an - * application-supplied callback; calling this function on such a device - * always returns 0. You have to use the audio callback or queue audio, but - * not both. - * - * You should not call SDL_LockAudio() on the device before clearing the - * queue; SDL handles locking internally for this function. - * - * This function always succeeds and thus returns void. - * - * \param dev the device ID of which to clear the audio queue - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_GetQueuedAudioSize - * \sa SDL_QueueAudio - * \sa SDL_DequeueAudio - */ -extern DECLSPEC void SDLCALL SDL_ClearQueuedAudio(SDL_AudioDeviceID dev); - - -/** - * \name Audio lock functions - * - * The lock manipulated by these functions protects the callback function. - * During a SDL_LockAudio()/SDL_UnlockAudio() pair, you can be guaranteed that - * the callback function is not running. Do not call these from the callback - * function or you will cause deadlock. - */ -/* @{ */ - -/** - * This function is a legacy means of locking the audio device. - * - * New programs might want to use SDL_LockAudioDevice() instead. This function - * is equivalent to calling... - * - * ```c - * SDL_LockAudioDevice(1); - * ``` - * - * ...and is only useful if you used the legacy SDL_OpenAudio() function. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LockAudioDevice - * \sa SDL_UnlockAudio - * \sa SDL_UnlockAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_LockAudio(void); - -/** - * Use this function to lock out the audio callback function for a specified - * device. - * - * The lock manipulated by these functions protects the audio callback - * function specified in SDL_OpenAudioDevice(). During a - * SDL_LockAudioDevice()/SDL_UnlockAudioDevice() pair, you can be guaranteed - * that the callback function for that device is not running, even if the - * device is not paused. While a device is locked, any other unpaused, - * unlocked devices may still run their callbacks. - * - * Calling this function from inside your audio callback is unnecessary. SDL - * obtains this lock before calling your function, and releases it when the - * function returns. - * - * You should not hold the lock longer than absolutely necessary. If you hold - * it too long, you'll experience dropouts in your audio playback. Ideally, - * your application locks the device, sets a few variables and unlocks again. - * Do not do heavy work while holding the lock for a device. - * - * It is safe to lock the audio device multiple times, as long as you unlock - * it an equivalent number of times. The callback will not run until the - * device has been unlocked completely in this way. If your application fails - * to unlock the device appropriately, your callback will never run, you might - * hear repeating bursts of audio, and SDL_CloseAudioDevice() will probably - * deadlock. - * - * Internally, the audio device lock is a mutex; if you lock from two threads - * at once, not only will you block the audio callback, you'll block the other - * thread. - * - * \param dev the ID of the device to be locked - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_UnlockAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_LockAudioDevice(SDL_AudioDeviceID dev); - -/** - * This function is a legacy means of unlocking the audio device. - * - * New programs might want to use SDL_UnlockAudioDevice() instead. This - * function is equivalent to calling... - * - * ```c - * SDL_UnlockAudioDevice(1); - * ``` - * - * ...and is only useful if you used the legacy SDL_OpenAudio() function. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LockAudio - * \sa SDL_UnlockAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_UnlockAudio(void); - -/** - * Use this function to unlock the audio callback function for a specified - * device. - * - * This function should be paired with a previous SDL_LockAudioDevice() call. - * - * \param dev the ID of the device to be unlocked - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LockAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_UnlockAudioDevice(SDL_AudioDeviceID dev); -/* @} *//* Audio lock functions */ - -/** - * This function is a legacy means of closing the audio device. - * - * This function is equivalent to calling... - * - * ```c - * SDL_CloseAudioDevice(1); - * ``` - * - * ...and is only useful if you used the legacy SDL_OpenAudio() function. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_OpenAudio - */ -extern DECLSPEC void SDLCALL SDL_CloseAudio(void); - -/** - * Use this function to shut down audio processing and close the audio device. - * - * The application should close open audio devices once they are no longer - * needed. Calling this function will wait until the device's audio callback - * is not running, release the audio hardware and then clean up internal - * state. No further audio will play from this device once this function - * returns. - * - * This function may block briefly while pending audio data is played by the - * hardware, so that applications don't drop the last buffer of data they - * supplied. - * - * The device ID is invalid as soon as the device is closed, and is eligible - * for reuse in a new SDL_OpenAudioDevice() call immediately. - * - * \param dev an audio device previously opened with SDL_OpenAudioDevice() - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_OpenAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_CloseAudioDevice(SDL_AudioDeviceID dev); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_audio_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_bits.h b/lib/windows/include/SDL_bits.h deleted file mode 100644 index 81161ae..0000000 --- a/lib/windows/include/SDL_bits.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_bits.h - * - * Functions for fiddling with bits and bitmasks. - */ - -#ifndef SDL_bits_h_ -#define SDL_bits_h_ - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file SDL_bits.h - */ - -/** - * Get the index of the most significant bit. Result is undefined when called - * with 0. This operation can also be stated as "count leading zeroes" and - * "log base 2". - * - * \return the index of the most significant bit, or -1 if the value is 0. - */ -#if defined(__WATCOMC__) && defined(__386__) -extern __inline int _SDL_bsr_watcom(Uint32); -#pragma aux _SDL_bsr_watcom = \ - "bsr eax, eax" \ - parm [eax] nomemory \ - value [eax] \ - modify exact [eax] nomemory; -#endif - -SDL_FORCE_INLINE int -SDL_MostSignificantBitIndex32(Uint32 x) -{ -#if defined(__GNUC__) && (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) - /* Count Leading Zeroes builtin in GCC. - * http://gcc.gnu.org/onlinedocs/gcc-4.3.4/gcc/Other-Builtins.html - */ - if (x == 0) { - return -1; - } - return 31 - __builtin_clz(x); -#elif defined(__WATCOMC__) && defined(__386__) - if (x == 0) { - return -1; - } - return _SDL_bsr_watcom(x); -#elif defined(_MSC_VER) - unsigned long index; - if (_BitScanReverse(&index, x)) { - return index; - } - return -1; -#else - /* Based off of Bit Twiddling Hacks by Sean Eron Anderson - * <seander@cs.stanford.edu>, released in the public domain. - * http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog - */ - const Uint32 b[] = {0x2, 0xC, 0xF0, 0xFF00, 0xFFFF0000}; - const int S[] = {1, 2, 4, 8, 16}; - - int msbIndex = 0; - int i; - - if (x == 0) { - return -1; - } - - for (i = 4; i >= 0; i--) - { - if (x & b[i]) - { - x >>= S[i]; - msbIndex |= S[i]; - } - } - - return msbIndex; -#endif -} - -SDL_FORCE_INLINE SDL_bool -SDL_HasExactlyOneBitSet32(Uint32 x) -{ - if (x && !(x & (x - 1))) { - return SDL_TRUE; - } - return SDL_FALSE; -} - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_bits_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_blendmode.h b/lib/windows/include/SDL_blendmode.h deleted file mode 100644 index 4ecbe50..0000000 --- a/lib/windows/include/SDL_blendmode.h +++ /dev/null @@ -1,198 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_blendmode.h - * - * Header file declaring the SDL_BlendMode enumeration - */ - -#ifndef SDL_blendmode_h_ -#define SDL_blendmode_h_ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief The blend mode used in SDL_RenderCopy() and drawing operations. - */ -typedef enum -{ - SDL_BLENDMODE_NONE = 0x00000000, /**< no blending - dstRGBA = srcRGBA */ - SDL_BLENDMODE_BLEND = 0x00000001, /**< alpha blending - dstRGB = (srcRGB * srcA) + (dstRGB * (1-srcA)) - dstA = srcA + (dstA * (1-srcA)) */ - SDL_BLENDMODE_ADD = 0x00000002, /**< additive blending - dstRGB = (srcRGB * srcA) + dstRGB - dstA = dstA */ - SDL_BLENDMODE_MOD = 0x00000004, /**< color modulate - dstRGB = srcRGB * dstRGB - dstA = dstA */ - SDL_BLENDMODE_MUL = 0x00000008, /**< color multiply - dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA)) - dstA = dstA */ - SDL_BLENDMODE_INVALID = 0x7FFFFFFF - - /* Additional custom blend modes can be returned by SDL_ComposeCustomBlendMode() */ - -} SDL_BlendMode; - -/** - * \brief The blend operation used when combining source and destination pixel components - */ -typedef enum -{ - SDL_BLENDOPERATION_ADD = 0x1, /**< dst + src: supported by all renderers */ - SDL_BLENDOPERATION_SUBTRACT = 0x2, /**< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES */ - SDL_BLENDOPERATION_REV_SUBTRACT = 0x3, /**< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES */ - SDL_BLENDOPERATION_MINIMUM = 0x4, /**< min(dst, src) : supported by D3D9, D3D11 */ - SDL_BLENDOPERATION_MAXIMUM = 0x5 /**< max(dst, src) : supported by D3D9, D3D11 */ -} SDL_BlendOperation; - -/** - * \brief The normalized factor used to multiply pixel components - */ -typedef enum -{ - SDL_BLENDFACTOR_ZERO = 0x1, /**< 0, 0, 0, 0 */ - SDL_BLENDFACTOR_ONE = 0x2, /**< 1, 1, 1, 1 */ - SDL_BLENDFACTOR_SRC_COLOR = 0x3, /**< srcR, srcG, srcB, srcA */ - SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 0x4, /**< 1-srcR, 1-srcG, 1-srcB, 1-srcA */ - SDL_BLENDFACTOR_SRC_ALPHA = 0x5, /**< srcA, srcA, srcA, srcA */ - SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 0x6, /**< 1-srcA, 1-srcA, 1-srcA, 1-srcA */ - SDL_BLENDFACTOR_DST_COLOR = 0x7, /**< dstR, dstG, dstB, dstA */ - SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 0x8, /**< 1-dstR, 1-dstG, 1-dstB, 1-dstA */ - SDL_BLENDFACTOR_DST_ALPHA = 0x9, /**< dstA, dstA, dstA, dstA */ - SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 0xA /**< 1-dstA, 1-dstA, 1-dstA, 1-dstA */ -} SDL_BlendFactor; - -/** - * Compose a custom blend mode for renderers. - * - * The functions SDL_SetRenderDrawBlendMode and SDL_SetTextureBlendMode accept - * the SDL_BlendMode returned by this function if the renderer supports it. - * - * A blend mode controls how the pixels from a drawing operation (source) get - * combined with the pixels from the render target (destination). First, the - * components of the source and destination pixels get multiplied with their - * blend factors. Then, the blend operation takes the two products and - * calculates the result that will get stored in the render target. - * - * Expressed in pseudocode, it would look like this: - * - * ```c - * dstRGB = colorOperation(srcRGB * srcColorFactor, dstRGB * dstColorFactor); - * dstA = alphaOperation(srcA * srcAlphaFactor, dstA * dstAlphaFactor); - * ``` - * - * Where the functions `colorOperation(src, dst)` and `alphaOperation(src, - * dst)` can return one of the following: - * - * - `src + dst` - * - `src - dst` - * - `dst - src` - * - `min(src, dst)` - * - `max(src, dst)` - * - * The red, green, and blue components are always multiplied with the first, - * second, and third components of the SDL_BlendFactor, respectively. The - * fourth component is not used. - * - * The alpha component is always multiplied with the fourth component of the - * SDL_BlendFactor. The other components are not used in the alpha - * calculation. - * - * Support for these blend modes varies for each renderer. To check if a - * specific SDL_BlendMode is supported, create a renderer and pass it to - * either SDL_SetRenderDrawBlendMode or SDL_SetTextureBlendMode. They will - * return with an error if the blend mode is not supported. - * - * This list describes the support of custom blend modes for each renderer in - * SDL 2.0.6. All renderers support the four blend modes listed in the - * SDL_BlendMode enumeration. - * - * - **direct3d**: Supports all operations with all factors. However, some - * factors produce unexpected results with `SDL_BLENDOPERATION_MINIMUM` and - * `SDL_BLENDOPERATION_MAXIMUM`. - * - **direct3d11**: Same as Direct3D 9. - * - **opengl**: Supports the `SDL_BLENDOPERATION_ADD` operation with all - * factors. OpenGL versions 1.1, 1.2, and 1.3 do not work correctly with SDL - * 2.0.6. - * - **opengles**: Supports the `SDL_BLENDOPERATION_ADD` operation with all - * factors. Color and alpha factors need to be the same. OpenGL ES 1 - * implementation specific: May also support `SDL_BLENDOPERATION_SUBTRACT` - * and `SDL_BLENDOPERATION_REV_SUBTRACT`. May support color and alpha - * operations being different from each other. May support color and alpha - * factors being different from each other. - * - **opengles2**: Supports the `SDL_BLENDOPERATION_ADD`, - * `SDL_BLENDOPERATION_SUBTRACT`, `SDL_BLENDOPERATION_REV_SUBTRACT` - * operations with all factors. - * - **psp**: No custom blend mode support. - * - **software**: No custom blend mode support. - * - * Some renderers do not provide an alpha component for the default render - * target. The `SDL_BLENDFACTOR_DST_ALPHA` and - * `SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA` factors do not have an effect in this - * case. - * - * \param srcColorFactor the SDL_BlendFactor applied to the red, green, and - * blue components of the source pixels - * \param dstColorFactor the SDL_BlendFactor applied to the red, green, and - * blue components of the destination pixels - * \param colorOperation the SDL_BlendOperation used to combine the red, - * green, and blue components of the source and - * destination pixels - * \param srcAlphaFactor the SDL_BlendFactor applied to the alpha component of - * the source pixels - * \param dstAlphaFactor the SDL_BlendFactor applied to the alpha component of - * the destination pixels - * \param alphaOperation the SDL_BlendOperation used to combine the alpha - * component of the source and destination pixels - * \returns an SDL_BlendMode that represents the chosen factors and - * operations. - * - * \since This function is available since SDL 2.0.6. - * - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_GetRenderDrawBlendMode - * \sa SDL_SetTextureBlendMode - * \sa SDL_GetTextureBlendMode - */ -extern DECLSPEC SDL_BlendMode SDLCALL SDL_ComposeCustomBlendMode(SDL_BlendFactor srcColorFactor, - SDL_BlendFactor dstColorFactor, - SDL_BlendOperation colorOperation, - SDL_BlendFactor srcAlphaFactor, - SDL_BlendFactor dstAlphaFactor, - SDL_BlendOperation alphaOperation); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_blendmode_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_clipboard.h b/lib/windows/include/SDL_clipboard.h deleted file mode 100644 index 7c351fb..0000000 --- a/lib/windows/include/SDL_clipboard.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_clipboard.h - * - * Include file for SDL clipboard handling - */ - -#ifndef SDL_clipboard_h_ -#define SDL_clipboard_h_ - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Function prototypes */ - -/** - * Put UTF-8 text into the clipboard. - * - * \param text the text to store in the clipboard - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetClipboardText - * \sa SDL_HasClipboardText - */ -extern DECLSPEC int SDLCALL SDL_SetClipboardText(const char *text); - -/** - * Get UTF-8 text from the clipboard, which must be freed with SDL_free(). - * - * This functions returns empty string if there was not enough memory left for - * a copy of the clipboard's content. - * - * \returns the clipboard text on success or an empty string on failure; call - * SDL_GetError() for more information. Caller must call SDL_free() - * on the returned pointer when done with it (even if there was an - * error). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HasClipboardText - * \sa SDL_SetClipboardText - */ -extern DECLSPEC char * SDLCALL SDL_GetClipboardText(void); - -/** - * Query whether the clipboard exists and contains a non-empty text string. - * - * \returns SDL_TRUE if the clipboard has text, or SDL_FALSE if it does not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetClipboardText - * \sa SDL_SetClipboardText - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void); - -/** - * Put UTF-8 text into the primary selection. - * - * \param text the text to store in the primary selection - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.26.0. - * - * \sa SDL_GetPrimarySelectionText - * \sa SDL_HasPrimarySelectionText - */ -extern DECLSPEC int SDLCALL SDL_SetPrimarySelectionText(const char *text); - -/** - * Get UTF-8 text from the primary selection, which must be freed with - * SDL_free(). - * - * This functions returns empty string if there was not enough memory left for - * a copy of the primary selection's content. - * - * \returns the primary selection text on success or an empty string on - * failure; call SDL_GetError() for more information. Caller must - * call SDL_free() on the returned pointer when done with it (even if - * there was an error). - * - * \since This function is available since SDL 2.26.0. - * - * \sa SDL_HasPrimarySelectionText - * \sa SDL_SetPrimarySelectionText - */ -extern DECLSPEC char * SDLCALL SDL_GetPrimarySelectionText(void); - -/** - * Query whether the primary selection exists and contains a non-empty text - * string. - * - * \returns SDL_TRUE if the primary selection has text, or SDL_FALSE if it - * does not. - * - * \since This function is available since SDL 2.26.0. - * - * \sa SDL_GetPrimarySelectionText - * \sa SDL_SetPrimarySelectionText - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasPrimarySelectionText(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_clipboard_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_config.h b/lib/windows/include/SDL_config.h deleted file mode 100644 index 01322c1..0000000 --- a/lib/windows/include/SDL_config.h +++ /dev/null @@ -1,331 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_config_windows_h_ -#define SDL_config_windows_h_ -#define SDL_config_h_ - -#include "SDL_platform.h" - -/* winsdkver.h defines _WIN32_MAXVER for SDK version detection. It is present since at least the Windows 7 SDK, - * but out of caution we'll only use it if the compiler supports __has_include() to confirm its presence. - * If your compiler doesn't support __has_include() but you have winsdkver.h, define HAVE_WINSDKVER_H. */ -#if !defined(HAVE_WINSDKVER_H) && defined(__has_include) -#if __has_include(<winsdkver.h>) -#define HAVE_WINSDKVER_H 1 -#endif -#endif - -#ifdef HAVE_WINSDKVER_H -#include <winsdkver.h> -#endif - -/* sdkddkver.h defines more specific SDK version numbers. This is needed because older versions of the - * Windows 10 SDK have broken declarations for the C API for DirectX 12. */ -#if !defined(HAVE_SDKDDKVER_H) && defined(__has_include) -#if __has_include(<sdkddkver.h>) -#define HAVE_SDKDDKVER_H 1 -#endif -#endif - -#ifdef HAVE_SDKDDKVER_H -#include <sdkddkver.h> -#endif - -/* This is a set of defines to configure the SDL features */ - -#if !defined(HAVE_STDINT_H) && !defined(_STDINT_H_) -/* Most everything except Visual Studio 2008 and earlier has stdint.h now */ -#if defined(_MSC_VER) && (_MSC_VER < 1600) -typedef signed __int8 int8_t; -typedef unsigned __int8 uint8_t; -typedef signed __int16 int16_t; -typedef unsigned __int16 uint16_t; -typedef signed __int32 int32_t; -typedef unsigned __int32 uint32_t; -typedef signed __int64 int64_t; -typedef unsigned __int64 uint64_t; -#ifndef _UINTPTR_T_DEFINED -#ifdef _WIN64 -typedef unsigned __int64 uintptr_t; -#else -typedef unsigned int uintptr_t; -#endif -#define _UINTPTR_T_DEFINED -#endif -#else -#define HAVE_STDINT_H 1 -#endif /* Visual Studio 2008 */ -#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ - -#ifdef _WIN64 -# define SIZEOF_VOIDP 8 -#else -# define SIZEOF_VOIDP 4 -#endif - -#ifdef __clang__ -# define HAVE_GCC_ATOMICS 1 -#endif - -#define HAVE_DDRAW_H 1 -#define HAVE_DINPUT_H 1 -#define HAVE_DSOUND_H 1 -#ifndef __WATCOMC__ -#define HAVE_DXGI_H 1 -#define HAVE_XINPUT_H 1 -#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0A00 /* Windows 10 SDK */ -#define HAVE_WINDOWS_GAMING_INPUT_H 1 -#endif -#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0602 /* Windows 8 SDK */ -#define HAVE_D3D11_H 1 -#define HAVE_ROAPI_H 1 -#endif -#if defined(WDK_NTDDI_VERSION) && WDK_NTDDI_VERSION > 0x0A000008 /* 10.0.19041.0 */ -#define HAVE_D3D12_H 1 -#endif -#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0603 /* Windows 8.1 SDK */ -#define HAVE_SHELLSCALINGAPI_H 1 -#endif -#define HAVE_MMDEVICEAPI_H 1 -#define HAVE_AUDIOCLIENT_H 1 -#define HAVE_TPCSHRD_H 1 -#define HAVE_SENSORSAPI_H 1 -#endif -#if (defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)) && (defined(_MSC_VER) && _MSC_VER >= 1600) -#define HAVE_IMMINTRIN_H 1 -#elif defined(__has_include) && (defined(__i386__) || defined(__x86_64)) -# if __has_include(<immintrin.h>) -# define HAVE_IMMINTRIN_H 1 -# endif -#endif - -/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ -#ifdef HAVE_LIBC -/* Useful headers */ -#define STDC_HEADERS 1 -#define HAVE_CTYPE_H 1 -#define HAVE_FLOAT_H 1 -#define HAVE_LIMITS_H 1 -#define HAVE_MATH_H 1 -#define HAVE_SIGNAL_H 1 -#define HAVE_STDIO_H 1 -#define HAVE_STRING_H 1 - -/* C library functions */ -#define HAVE_MALLOC 1 -#define HAVE_CALLOC 1 -#define HAVE_REALLOC 1 -#define HAVE_FREE 1 -#define HAVE_ALLOCA 1 -/* OpenWatcom requires specific calling conventions for qsort and bsearch */ -#ifndef __WATCOMC__ -#define HAVE_QSORT 1 -#define HAVE_BSEARCH 1 -#endif -#define HAVE_ABS 1 -#define HAVE_MEMSET 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_MEMCMP 1 -#define HAVE_STRLEN 1 -#define HAVE__STRREV 1 -/* These functions have security warnings, so we won't use them */ -/* #undef HAVE__STRUPR */ -/* #undef HAVE__STRLWR */ -#define HAVE_STRCHR 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -/* #undef HAVE_STRTOK_R */ -/* These functions have security warnings, so we won't use them */ -/* #undef HAVE__LTOA */ -/* #undef HAVE__ULTOA */ -#define HAVE_STRTOL 1 -#define HAVE_STRTOUL 1 -#define HAVE_STRTOD 1 -#define HAVE_ATOI 1 -#define HAVE_ATOF 1 -#define HAVE_STRCMP 1 -#define HAVE_STRNCMP 1 -#define HAVE__STRICMP 1 -#define HAVE__STRNICMP 1 -#define HAVE__WCSICMP 1 -#define HAVE__WCSNICMP 1 -#define HAVE__WCSDUP 1 -#define HAVE_ACOS 1 -#define HAVE_ASIN 1 -#define HAVE_ATAN 1 -#define HAVE_ATAN2 1 -#define HAVE_CEIL 1 -#define HAVE_COS 1 -#define HAVE_EXP 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_FMOD 1 -#define HAVE_LOG 1 -#define HAVE_LOG10 1 -#define HAVE_POW 1 -#define HAVE_SIN 1 -#define HAVE_SQRT 1 -#define HAVE_TAN 1 -#ifndef __WATCOMC__ -#define HAVE_ACOSF 1 -#define HAVE_ASINF 1 -#define HAVE_ATANF 1 -#define HAVE_ATAN2F 1 -#define HAVE_CEILF 1 -#define HAVE__COPYSIGN 1 -#define HAVE_COSF 1 -#define HAVE_EXPF 1 -#define HAVE_FABSF 1 -#define HAVE_FLOORF 1 -#define HAVE_FMODF 1 -#define HAVE_LOGF 1 -#define HAVE_LOG10F 1 -#define HAVE_POWF 1 -#define HAVE_SINF 1 -#define HAVE_SQRTF 1 -#define HAVE_TANF 1 -#endif -#if defined(_MSC_VER) -/* These functions were added with the VC++ 2013 C runtime library */ -#if _MSC_VER >= 1800 -#define HAVE_STRTOLL 1 -#define HAVE_STRTOULL 1 -#define HAVE_VSSCANF 1 -#define HAVE_LROUND 1 -#define HAVE_LROUNDF 1 -#define HAVE_ROUND 1 -#define HAVE_ROUNDF 1 -#define HAVE_SCALBN 1 -#define HAVE_SCALBNF 1 -#define HAVE_TRUNC 1 -#define HAVE_TRUNCF 1 -#endif -/* This function is available with at least the VC++ 2008 C runtime library */ -#if _MSC_VER >= 1400 -#define HAVE__FSEEKI64 1 -#endif -#ifdef _USE_MATH_DEFINES -#define HAVE_M_PI 1 -#endif -#elif defined(__WATCOMC__) -#define HAVE__FSEEKI64 1 -#define HAVE_STRTOLL 1 -#define HAVE_STRTOULL 1 -#define HAVE_VSSCANF 1 -#define HAVE_ROUND 1 -#define HAVE_SCALBN 1 -#define HAVE_TRUNC 1 -#else -#define HAVE_M_PI 1 -#endif -#else -#define HAVE_STDARG_H 1 -#define HAVE_STDDEF_H 1 -#endif - -/* Enable various audio drivers */ -#if defined(HAVE_MMDEVICEAPI_H) && defined(HAVE_AUDIOCLIENT_H) -#define SDL_AUDIO_DRIVER_WASAPI 1 -#endif -#define SDL_AUDIO_DRIVER_DSOUND 1 -#define SDL_AUDIO_DRIVER_WINMM 1 -#define SDL_AUDIO_DRIVER_DISK 1 -#define SDL_AUDIO_DRIVER_DUMMY 1 - -/* Enable various input drivers */ -#define SDL_JOYSTICK_DINPUT 1 -#define SDL_JOYSTICK_HIDAPI 1 -#ifndef __WINRT__ -#define SDL_JOYSTICK_RAWINPUT 1 -#endif -#define SDL_JOYSTICK_VIRTUAL 1 -#ifdef HAVE_WINDOWS_GAMING_INPUT_H -#define SDL_JOYSTICK_WGI 1 -#endif -#define SDL_JOYSTICK_XINPUT 1 -#define SDL_HAPTIC_DINPUT 1 -#define SDL_HAPTIC_XINPUT 1 - -/* Enable the sensor driver */ -#ifdef HAVE_SENSORSAPI_H -#define SDL_SENSOR_WINDOWS 1 -#else -#define SDL_SENSOR_DUMMY 1 -#endif - -/* Enable various shared object loading systems */ -#define SDL_LOADSO_WINDOWS 1 - -/* Enable various threading systems */ -#define SDL_THREAD_GENERIC_COND_SUFFIX 1 -#define SDL_THREAD_WINDOWS 1 - -/* Enable various timer systems */ -#define SDL_TIMER_WINDOWS 1 - -/* Enable various video drivers */ -#define SDL_VIDEO_DRIVER_DUMMY 1 -#define SDL_VIDEO_DRIVER_WINDOWS 1 - -#ifndef SDL_VIDEO_RENDER_D3D -#define SDL_VIDEO_RENDER_D3D 1 -#endif -#if !defined(SDL_VIDEO_RENDER_D3D11) && defined(HAVE_D3D11_H) -#define SDL_VIDEO_RENDER_D3D11 1 -#endif -#if !defined(SDL_VIDEO_RENDER_D3D12) && defined(HAVE_D3D12_H) -#define SDL_VIDEO_RENDER_D3D12 1 -#endif - -/* Enable OpenGL support */ -#ifndef SDL_VIDEO_OPENGL -#define SDL_VIDEO_OPENGL 1 -#endif -#ifndef SDL_VIDEO_OPENGL_WGL -#define SDL_VIDEO_OPENGL_WGL 1 -#endif -#ifndef SDL_VIDEO_RENDER_OGL -#define SDL_VIDEO_RENDER_OGL 1 -#endif -#ifndef SDL_VIDEO_RENDER_OGL_ES2 -#define SDL_VIDEO_RENDER_OGL_ES2 1 -#endif -#ifndef SDL_VIDEO_OPENGL_ES2 -#define SDL_VIDEO_OPENGL_ES2 1 -#endif -#ifndef SDL_VIDEO_OPENGL_EGL -#define SDL_VIDEO_OPENGL_EGL 1 -#endif - -/* Enable Vulkan support */ -#define SDL_VIDEO_VULKAN 1 - -/* Enable system power support */ -#define SDL_POWER_WINDOWS 1 - -/* Enable filesystem support */ -#define SDL_FILESYSTEM_WINDOWS 1 - -#endif /* SDL_config_windows_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_cpuinfo.h b/lib/windows/include/SDL_cpuinfo.h deleted file mode 100644 index ed5e979..0000000 --- a/lib/windows/include/SDL_cpuinfo.h +++ /dev/null @@ -1,594 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_cpuinfo.h - * - * CPU feature detection for SDL. - */ - -#ifndef SDL_cpuinfo_h_ -#define SDL_cpuinfo_h_ - -#include "SDL_stdinc.h" - -/* Need to do this here because intrin.h has C++ code in it */ -/* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */ -#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (defined(_M_IX86) || defined(_M_X64)) -#ifdef __clang__ -/* As of Clang 11, '_m_prefetchw' is conflicting with the winnt.h's version, - so we define the needed '_m_prefetch' here as a pseudo-header, until the issue is fixed. */ - -#ifndef __PRFCHWINTRIN_H -#define __PRFCHWINTRIN_H - -static __inline__ void __attribute__((__always_inline__, __nodebug__)) -_m_prefetch(void *__P) -{ - __builtin_prefetch (__P, 0, 3 /* _MM_HINT_T0 */); -} - -#endif /* __PRFCHWINTRIN_H */ -#endif /* __clang__ */ -#include <intrin.h> -#ifndef _WIN64 -#ifndef __MMX__ -#define __MMX__ -#endif -#ifndef __3dNOW__ -#define __3dNOW__ -#endif -#endif -#ifndef __SSE__ -#define __SSE__ -#endif -#ifndef __SSE2__ -#define __SSE2__ -#endif -#ifndef __SSE3__ -#define __SSE3__ -#endif -#elif defined(__MINGW64_VERSION_MAJOR) -#include <intrin.h> -#if !defined(SDL_DISABLE_ARM_NEON_H) && defined(__ARM_NEON) -# include <arm_neon.h> -#endif -#else -/* altivec.h redefining bool causes a number of problems, see bugs 3993 and 4392, so you need to explicitly define SDL_ENABLE_ALTIVEC_H to have it included. */ -#if defined(HAVE_ALTIVEC_H) && defined(__ALTIVEC__) && !defined(__APPLE_ALTIVEC__) && defined(SDL_ENABLE_ALTIVEC_H) -#include <altivec.h> -#endif -#if !defined(SDL_DISABLE_ARM_NEON_H) -# if defined(__ARM_NEON) -# include <arm_neon.h> -# elif defined(__WINDOWS__) || defined(__WINRT__) || defined(__GDK__) -/* Visual Studio doesn't define __ARM_ARCH, but _M_ARM (if set, always 7), and _M_ARM64 (if set, always 1). */ -# if defined(_M_ARM) -# include <armintr.h> -# include <arm_neon.h> -# define __ARM_NEON 1 /* Set __ARM_NEON so that it can be used elsewhere, at compile time */ -# endif -# if defined (_M_ARM64) -# include <arm64intr.h> -# include <arm64_neon.h> -# define __ARM_NEON 1 /* Set __ARM_NEON so that it can be used elsewhere, at compile time */ -# define __ARM_ARCH 8 -# endif -# endif -#endif -#endif /* compiler version */ - -#if defined(__3dNOW__) && !defined(SDL_DISABLE_MM3DNOW_H) -#include <mm3dnow.h> -#endif -#if defined(__loongarch_sx) && !defined(SDL_DISABLE_LSX_H) -#include <lsxintrin.h> -#define __LSX__ -#endif -#if defined(__loongarch_asx) && !defined(SDL_DISABLE_LASX_H) -#include <lasxintrin.h> -#define __LASX__ -#endif -#if defined(HAVE_IMMINTRIN_H) && !defined(SDL_DISABLE_IMMINTRIN_H) -#include <immintrin.h> -#else -#if defined(__MMX__) && !defined(SDL_DISABLE_MMINTRIN_H) -#include <mmintrin.h> -#endif -#if defined(__SSE__) && !defined(SDL_DISABLE_XMMINTRIN_H) -#include <xmmintrin.h> -#endif -#if defined(__SSE2__) && !defined(SDL_DISABLE_EMMINTRIN_H) -#include <emmintrin.h> -#endif -#if defined(__SSE3__) && !defined(SDL_DISABLE_PMMINTRIN_H) -#include <pmmintrin.h> -#endif -#endif /* HAVE_IMMINTRIN_H */ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* This is a guess for the cacheline size used for padding. - * Most x86 processors have a 64 byte cache line. - * The 64-bit PowerPC processors have a 128 byte cache line. - * We'll use the larger value to be generally safe. - */ -#define SDL_CACHELINE_SIZE 128 - -/** - * Get the number of CPU cores available. - * - * \returns the total number of logical CPU cores. On CPUs that include - * technologies such as hyperthreading, the number of logical cores - * may be more than the number of physical cores. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_GetCPUCount(void); - -/** - * Determine the L1 cache line size of the CPU. - * - * This is useful for determining multi-threaded structure padding or SIMD - * prefetch sizes. - * - * \returns the L1 cache line size of the CPU, in bytes. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_GetCPUCacheLineSize(void); - -/** - * Determine whether the CPU has the RDTSC instruction. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has the RDTSC instruction or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasRDTSC(void); - -/** - * Determine whether the CPU has AltiVec features. - * - * This always returns false on CPUs that aren't using PowerPC instruction - * sets. - * - * \returns SDL_TRUE if the CPU has AltiVec features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void); - -/** - * Determine whether the CPU has MMX features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has MMX features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasMMX(void); - -/** - * Determine whether the CPU has 3DNow! features. - * - * This always returns false on CPUs that aren't using AMD instruction sets. - * - * \returns SDL_TRUE if the CPU has 3DNow! features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_Has3DNow(void); - -/** - * Determine whether the CPU has SSE features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has SSE features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE(void); - -/** - * Determine whether the CPU has SSE2 features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has SSE2 features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE2(void); - -/** - * Determine whether the CPU has SSE3 features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has SSE3 features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE3(void); - -/** - * Determine whether the CPU has SSE4.1 features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has SSE4.1 features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE41(void); - -/** - * Determine whether the CPU has SSE4.2 features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has SSE4.2 features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE42(void); - -/** - * Determine whether the CPU has AVX features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has AVX features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX(void); - -/** - * Determine whether the CPU has AVX2 features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has AVX2 features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void); - -/** - * Determine whether the CPU has AVX-512F (foundation) features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has AVX-512F features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.9. - * - * \sa SDL_HasAVX - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX512F(void); - -/** - * Determine whether the CPU has ARM SIMD (ARMv6) features. - * - * This is different from ARM NEON, which is a different instruction set. - * - * This always returns false on CPUs that aren't using ARM instruction sets. - * - * \returns SDL_TRUE if the CPU has ARM SIMD features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.12. - * - * \sa SDL_HasNEON - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasARMSIMD(void); - -/** - * Determine whether the CPU has NEON (ARM SIMD) features. - * - * This always returns false on CPUs that aren't using ARM instruction sets. - * - * \returns SDL_TRUE if the CPU has ARM NEON features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasNEON(void); - -/** - * Determine whether the CPU has LSX (LOONGARCH SIMD) features. - * - * This always returns false on CPUs that aren't using LOONGARCH instruction - * sets. - * - * \returns SDL_TRUE if the CPU has LOONGARCH LSX features or SDL_FALSE if - * not. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasLSX(void); - -/** - * Determine whether the CPU has LASX (LOONGARCH SIMD) features. - * - * This always returns false on CPUs that aren't using LOONGARCH instruction - * sets. - * - * \returns SDL_TRUE if the CPU has LOONGARCH LASX features or SDL_FALSE if - * not. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasLASX(void); - -/** - * Get the amount of RAM configured in the system. - * - * \returns the amount of RAM configured in the system in MiB. - * - * \since This function is available since SDL 2.0.1. - */ -extern DECLSPEC int SDLCALL SDL_GetSystemRAM(void); - -/** - * Report the alignment this system needs for SIMD allocations. - * - * This will return the minimum number of bytes to which a pointer must be - * aligned to be compatible with SIMD instructions on the current machine. For - * example, if the machine supports SSE only, it will return 16, but if it - * supports AVX-512F, it'll return 64 (etc). This only reports values for - * instruction sets SDL knows about, so if your SDL build doesn't have - * SDL_HasAVX512F(), then it might return 16 for the SSE support it sees and - * not 64 for the AVX-512 instructions that exist but SDL doesn't know about. - * Plan accordingly. - * - * \returns the alignment in bytes needed for available, known SIMD - * instructions. - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC size_t SDLCALL SDL_SIMDGetAlignment(void); - -/** - * Allocate memory in a SIMD-friendly way. - * - * This will allocate a block of memory that is suitable for use with SIMD - * instructions. Specifically, it will be properly aligned and padded for the - * system's supported vector instructions. - * - * The memory returned will be padded such that it is safe to read or write an - * incomplete vector at the end of the memory block. This can be useful so you - * don't have to drop back to a scalar fallback at the end of your SIMD - * processing loop to deal with the final elements without overflowing the - * allocated buffer. - * - * You must free this memory with SDL_FreeSIMD(), not free() or SDL_free() or - * delete[], etc. - * - * Note that SDL will only deal with SIMD instruction sets it is aware of; for - * example, SDL 2.0.8 knows that SSE wants 16-byte vectors (SDL_HasSSE()), and - * AVX2 wants 32 bytes (SDL_HasAVX2()), but doesn't know that AVX-512 wants - * 64. To be clear: if you can't decide to use an instruction set with an - * SDL_Has*() function, don't use that instruction set with memory allocated - * through here. - * - * SDL_AllocSIMD(0) will return a non-NULL pointer, assuming the system isn't - * out of memory, but you are not allowed to dereference it (because you only - * own zero bytes of that buffer). - * - * \param len The length, in bytes, of the block to allocate. The actual - * allocated block might be larger due to padding, etc. - * \returns a pointer to the newly-allocated block, NULL if out of memory. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_SIMDGetAlignment - * \sa SDL_SIMDRealloc - * \sa SDL_SIMDFree - */ -extern DECLSPEC void * SDLCALL SDL_SIMDAlloc(const size_t len); - -/** - * Reallocate memory obtained from SDL_SIMDAlloc - * - * It is not valid to use this function on a pointer from anything but - * SDL_SIMDAlloc(). It can't be used on pointers from malloc, realloc, - * SDL_malloc, memalign, new[], etc. - * - * \param mem The pointer obtained from SDL_SIMDAlloc. This function also - * accepts NULL, at which point this function is the same as - * calling SDL_SIMDAlloc with a NULL pointer. - * \param len The length, in bytes, of the block to allocated. The actual - * allocated block might be larger due to padding, etc. Passing 0 - * will return a non-NULL pointer, assuming the system isn't out of - * memory. - * \returns a pointer to the newly-reallocated block, NULL if out of memory. - * - * \since This function is available since SDL 2.0.14. - * - * \sa SDL_SIMDGetAlignment - * \sa SDL_SIMDAlloc - * \sa SDL_SIMDFree - */ -extern DECLSPEC void * SDLCALL SDL_SIMDRealloc(void *mem, const size_t len); - -/** - * Deallocate memory obtained from SDL_SIMDAlloc - * - * It is not valid to use this function on a pointer from anything but - * SDL_SIMDAlloc() or SDL_SIMDRealloc(). It can't be used on pointers from - * malloc, realloc, SDL_malloc, memalign, new[], etc. - * - * However, SDL_SIMDFree(NULL) is a legal no-op. - * - * The memory pointed to by `ptr` is no longer valid for access upon return, - * and may be returned to the system or reused by a future allocation. The - * pointer passed to this function is no longer safe to dereference once this - * function returns, and should be discarded. - * - * \param ptr The pointer, returned from SDL_SIMDAlloc or SDL_SIMDRealloc, to - * deallocate. NULL is a legal no-op. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_SIMDAlloc - * \sa SDL_SIMDRealloc - */ -extern DECLSPEC void SDLCALL SDL_SIMDFree(void *ptr); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_cpuinfo_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_egl.h b/lib/windows/include/SDL_egl.h deleted file mode 100644 index 6f51c08..0000000 --- a/lib/windows/include/SDL_egl.h +++ /dev/null @@ -1,2352 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_egl.h - * - * This is a simple file to encapsulate the EGL API headers. - */ -#if !defined(_MSC_VER) && !defined(__ANDROID__) && !defined(SDL_USE_BUILTIN_OPENGL_DEFINITIONS) - -#if defined(__vita__) || defined(__psp2__) -#include <psp2/types.h> -#endif - -#include <EGL/egl.h> -#include <EGL/eglext.h> - -#else /* _MSC_VER */ - -/* EGL headers for Visual Studio */ - -#ifndef __khrplatform_h_ -#define __khrplatform_h_ - -/* -** Copyright (c) 2008-2018 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Khronos platform-specific types and definitions. - * - * The master copy of khrplatform.h is maintained in the Khronos EGL - * Registry repository at https://github.com/KhronosGroup/EGL-Registry - * The last semantic modification to khrplatform.h was at commit ID: - * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 - * - * Adopters may modify this file to suit their platform. Adopters are - * encouraged to submit platform specific modifications to the Khronos - * group so that they can be included in future versions of this file. - * Please submit changes by filing pull requests or issues on - * the EGL Registry repository linked above. - * - * - * See the Implementer's Guidelines for information about where this file - * should be located on your system and for more details of its use: - * http://www.khronos.org/registry/implementers_guide.pdf - * - * This file should be included as - * #include <KHR/khrplatform.h> - * by Khronos client API header files that use its types and defines. - * - * The types in khrplatform.h should only be used to define API-specific types. - * - * Types defined in khrplatform.h: - * khronos_int8_t signed 8 bit - * khronos_uint8_t unsigned 8 bit - * khronos_int16_t signed 16 bit - * khronos_uint16_t unsigned 16 bit - * khronos_int32_t signed 32 bit - * khronos_uint32_t unsigned 32 bit - * khronos_int64_t signed 64 bit - * khronos_uint64_t unsigned 64 bit - * khronos_intptr_t signed same number of bits as a pointer - * khronos_uintptr_t unsigned same number of bits as a pointer - * khronos_ssize_t signed size - * khronos_usize_t unsigned size - * khronos_float_t signed 32 bit floating point - * khronos_time_ns_t unsigned 64 bit time in nanoseconds - * khronos_utime_nanoseconds_t unsigned time interval or absolute time in - * nanoseconds - * khronos_stime_nanoseconds_t signed time interval in nanoseconds - * khronos_boolean_enum_t enumerated boolean type. This should - * only be used as a base type when a client API's boolean type is - * an enum. Client APIs which use an integer or other type for - * booleans cannot use this as the base type for their boolean. - * - * Tokens defined in khrplatform.h: - * - * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. - * - * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. - * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. - * - * Calling convention macros defined in this file: - * KHRONOS_APICALL - * KHRONOS_APIENTRY - * KHRONOS_APIATTRIBUTES - * - * These may be used in function prototypes as: - * - * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( - * int arg1, - * int arg2) KHRONOS_APIATTRIBUTES; - */ - -#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) -# define KHRONOS_STATIC 1 -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APICALL - *------------------------------------------------------------------------- - * This precedes the return type of the function in the function prototype. - */ -#if defined(KHRONOS_STATIC) - /* If the preprocessor constant KHRONOS_STATIC is defined, make the - * header compatible with static linking. */ -# define KHRONOS_APICALL -#elif defined(_WIN32) -# define KHRONOS_APICALL __declspec(dllimport) -#elif defined (__SYMBIAN32__) -# define KHRONOS_APICALL IMPORT_C -#elif defined(__ANDROID__) -# define KHRONOS_APICALL __attribute__((visibility("default"))) -#else -# define KHRONOS_APICALL -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIENTRY - *------------------------------------------------------------------------- - * This follows the return type of the function and precedes the function - * name in the function prototype. - */ -#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) - /* Win32 but not WinCE */ -# define KHRONOS_APIENTRY __stdcall -#else -# define KHRONOS_APIENTRY -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIATTRIBUTES - *------------------------------------------------------------------------- - * This follows the closing parenthesis of the function prototype arguments. - */ -#if defined (__ARMCC_2__) -#define KHRONOS_APIATTRIBUTES __softfp -#else -#define KHRONOS_APIATTRIBUTES -#endif - -/*------------------------------------------------------------------------- - * basic type definitions - *-----------------------------------------------------------------------*/ -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) - - -/* - * Using <stdint.h> - */ -#include <stdint.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 -/* - * To support platform where unsigned long cannot be used interchangeably with - * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t. - * Ideally, we could just use (u)intptr_t everywhere, but this could result in - * ABI breakage if khronos_uintptr_t is changed from unsigned long to - * unsigned long long or similar (this results in different C++ name mangling). - * To avoid changes for existing platforms, we restrict usage of intptr_t to - * platforms where the size of a pointer is larger than the size of long. - */ -#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__) -#if __SIZEOF_POINTER__ > __SIZEOF_LONG__ -#define KHRONOS_USE_INTPTR_T -#endif -#endif - -#elif defined(__VMS ) || defined(__sgi) - -/* - * Using <inttypes.h> - */ -#include <inttypes.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) - -/* - * Win32 - */ -typedef __int32 khronos_int32_t; -typedef unsigned __int32 khronos_uint32_t; -typedef __int64 khronos_int64_t; -typedef unsigned __int64 khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__sun__) || defined(__digital__) - -/* - * Sun or Digital - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#if defined(__arch64__) || defined(_LP64) -typedef long int khronos_int64_t; -typedef unsigned long int khronos_uint64_t; -#else -typedef long long int khronos_int64_t; -typedef unsigned long long int khronos_uint64_t; -#endif /* __arch64__ */ -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif 0 - -/* - * Hypothetical platform with no float or int64 support - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#define KHRONOS_SUPPORT_INT64 0 -#define KHRONOS_SUPPORT_FLOAT 0 - -#else - -/* - * Generic fallback - */ -#include <stdint.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#endif - - -/* - * Types that are (so far) the same on all platforms - */ -typedef signed char khronos_int8_t; -typedef unsigned char khronos_uint8_t; -typedef signed short int khronos_int16_t; -typedef unsigned short int khronos_uint16_t; - -/* - * Types that differ between LLP64 and LP64 architectures - in LLP64, - * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears - * to be the only LLP64 architecture in current use. - */ -#ifdef KHRONOS_USE_INTPTR_T -typedef intptr_t khronos_intptr_t; -typedef uintptr_t khronos_uintptr_t; -#elif defined(_WIN64) -typedef signed long long int khronos_intptr_t; -typedef unsigned long long int khronos_uintptr_t; -#else -typedef signed long int khronos_intptr_t; -typedef unsigned long int khronos_uintptr_t; -#endif - -#if defined(_WIN64) -typedef signed long long int khronos_ssize_t; -typedef unsigned long long int khronos_usize_t; -#else -typedef signed long int khronos_ssize_t; -typedef unsigned long int khronos_usize_t; -#endif - -#if KHRONOS_SUPPORT_FLOAT -/* - * Float type - */ -typedef float khronos_float_t; -#endif - -#if KHRONOS_SUPPORT_INT64 -/* Time types - * - * These types can be used to represent a time interval in nanoseconds or - * an absolute Unadjusted System Time. Unadjusted System Time is the number - * of nanoseconds since some arbitrary system event (e.g. since the last - * time the system booted). The Unadjusted System Time is an unsigned - * 64 bit value that wraps back to 0 every 584 years. Time intervals - * may be either signed or unsigned. - */ -typedef khronos_uint64_t khronos_utime_nanoseconds_t; -typedef khronos_int64_t khronos_stime_nanoseconds_t; -#endif - -/* - * Dummy value used to pad enum types to 32 bits. - */ -#ifndef KHRONOS_MAX_ENUM -#define KHRONOS_MAX_ENUM 0x7FFFFFFF -#endif - -/* - * Enumerated boolean type - * - * Values other than zero should be considered to be true. Therefore - * comparisons should not be made against KHRONOS_TRUE. - */ -typedef enum { - KHRONOS_FALSE = 0, - KHRONOS_TRUE = 1, - KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM -} khronos_boolean_enum_t; - -#endif /* __khrplatform_h_ */ - - -#ifndef __eglplatform_h_ -#define __eglplatform_h_ - -/* -** Copyright 2007-2020 The Khronos Group Inc. -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* Platform-specific types and definitions for egl.h - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * You are encouraged to submit all modifications to the Khronos group so that - * they can be included in future versions of this file. Please submit changes - * by filing an issue or pull request on the public Khronos EGL Registry, at - * https://www.github.com/KhronosGroup/EGL-Registry/ - */ - -/*#include <KHR/khrplatform.h>*/ - -/* Macros used in EGL function prototype declarations. - * - * EGL functions should be prototyped as: - * - * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); - * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); - * - * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h - */ - -#ifndef EGLAPI -#define EGLAPI KHRONOS_APICALL -#endif - -#ifndef EGLAPIENTRY -#define EGLAPIENTRY KHRONOS_APIENTRY -#endif -#define EGLAPIENTRYP EGLAPIENTRY* - -/* The types NativeDisplayType, NativeWindowType, and NativePixmapType - * are aliases of window-system-dependent types, such as X Display * or - * Windows Device Context. They must be defined in platform-specific - * code below. The EGL-prefixed versions of Native*Type are the same - * types, renamed in EGL 1.3 so all types in the API start with "EGL". - * - * Khronos STRONGLY RECOMMENDS that you use the default definitions - * provided below, since these changes affect both binary and source - * portability of applications using EGL running on different EGL - * implementations. - */ - -#if defined(EGL_NO_PLATFORM_SPECIFIC_TYPES) - -typedef void *EGLNativeDisplayType; -typedef void *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN 1 -#endif -#include <windows.h> - -typedef HDC EGLNativeDisplayType; -typedef HBITMAP EGLNativePixmapType; -typedef HWND EGLNativeWindowType; - -#elif defined(__EMSCRIPTEN__) - -typedef int EGLNativeDisplayType; -typedef int EGLNativePixmapType; -typedef int EGLNativeWindowType; - -#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ - -typedef int EGLNativeDisplayType; -typedef void *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(WL_EGL_PLATFORM) - -typedef struct wl_display *EGLNativeDisplayType; -typedef struct wl_egl_pixmap *EGLNativePixmapType; -typedef struct wl_egl_window *EGLNativeWindowType; - -#elif defined(__GBM__) - -typedef struct gbm_device *EGLNativeDisplayType; -typedef struct gbm_bo *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(__ANDROID__) || defined(ANDROID) - -struct ANativeWindow; -struct egl_native_pixmap_t; - -typedef void* EGLNativeDisplayType; -typedef struct egl_native_pixmap_t* EGLNativePixmapType; -typedef struct ANativeWindow* EGLNativeWindowType; - -#elif defined(USE_OZONE) - -typedef intptr_t EGLNativeDisplayType; -typedef intptr_t EGLNativePixmapType; -typedef intptr_t EGLNativeWindowType; - -#elif defined(USE_X11) - -/* X11 (tentative) */ -#include <X11/Xlib.h> -#include <X11/Xutil.h> - -typedef Display *EGLNativeDisplayType; -typedef Pixmap EGLNativePixmapType; -typedef Window EGLNativeWindowType; - -#elif defined(__unix__) - -typedef void *EGLNativeDisplayType; -typedef khronos_uintptr_t EGLNativePixmapType; -typedef khronos_uintptr_t EGLNativeWindowType; - -#elif defined(__APPLE__) - -typedef int EGLNativeDisplayType; -typedef void *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(__HAIKU__) - -#include <kernel/image.h> - -typedef void *EGLNativeDisplayType; -typedef khronos_uintptr_t EGLNativePixmapType; -typedef khronos_uintptr_t EGLNativeWindowType; - -#elif defined(__Fuchsia__) - -typedef void *EGLNativeDisplayType; -typedef khronos_uintptr_t EGLNativePixmapType; -typedef khronos_uintptr_t EGLNativeWindowType; - -#else -#error "Platform not recognized" -#endif - -/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ -typedef EGLNativeDisplayType NativeDisplayType; -typedef EGLNativePixmapType NativePixmapType; -typedef EGLNativeWindowType NativeWindowType; - - -/* Define EGLint. This must be a signed integral type large enough to contain - * all legal attribute names and values passed into and out of EGL, whether - * their type is boolean, bitmask, enumerant (symbolic constant), integer, - * handle, or other. While in general a 32-bit integer will suffice, if - * handles are 64 bit types, then EGLint should be defined as a signed 64-bit - * integer type. - */ -typedef khronos_int32_t EGLint; - - -/* C++ / C typecast macros for special EGL handle values */ -#if defined(__cplusplus) -#define EGL_CAST(type, value) (static_cast<type>(value)) -#else -#define EGL_CAST(type, value) ((type) (value)) -#endif - -#endif /* __eglplatform_h */ - - -#ifndef __egl_h_ -#define __egl_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: Apache-2.0 -** -** This header is generated from the Khronos EGL XML API Registry. -** The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.khronos.org/registry/egl -** -** Khronos $Git commit SHA1: 6fb1daea15 $ on $Git commit date: 2022-05-25 09:41:13 -0600 $ -*/ - -/*#include <EGL/eglplatform.h>*/ - -#ifndef EGL_EGL_PROTOTYPES -#define EGL_EGL_PROTOTYPES 1 -#endif - -/* Generated on date 20220525 */ - -/* Generated C header for: - * API: egl - * Versions considered: .* - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef EGL_VERSION_1_0 -#define EGL_VERSION_1_0 1 -typedef unsigned int EGLBoolean; -typedef void *EGLDisplay; -/*#include <KHR/khrplatform.h>*/ -/*#include <EGL/eglplatform.h>*/ -typedef void *EGLConfig; -typedef void *EGLSurface; -typedef void *EGLContext; -typedef void (*__eglMustCastToProperFunctionPointerType)(void); -#define EGL_ALPHA_SIZE 0x3021 -#define EGL_BAD_ACCESS 0x3002 -#define EGL_BAD_ALLOC 0x3003 -#define EGL_BAD_ATTRIBUTE 0x3004 -#define EGL_BAD_CONFIG 0x3005 -#define EGL_BAD_CONTEXT 0x3006 -#define EGL_BAD_CURRENT_SURFACE 0x3007 -#define EGL_BAD_DISPLAY 0x3008 -#define EGL_BAD_MATCH 0x3009 -#define EGL_BAD_NATIVE_PIXMAP 0x300A -#define EGL_BAD_NATIVE_WINDOW 0x300B -#define EGL_BAD_PARAMETER 0x300C -#define EGL_BAD_SURFACE 0x300D -#define EGL_BLUE_SIZE 0x3022 -#define EGL_BUFFER_SIZE 0x3020 -#define EGL_CONFIG_CAVEAT 0x3027 -#define EGL_CONFIG_ID 0x3028 -#define EGL_CORE_NATIVE_ENGINE 0x305B -#define EGL_DEPTH_SIZE 0x3025 -#define EGL_DONT_CARE EGL_CAST(EGLint,-1) -#define EGL_DRAW 0x3059 -#define EGL_EXTENSIONS 0x3055 -#define EGL_FALSE 0 -#define EGL_GREEN_SIZE 0x3023 -#define EGL_HEIGHT 0x3056 -#define EGL_LARGEST_PBUFFER 0x3058 -#define EGL_LEVEL 0x3029 -#define EGL_MAX_PBUFFER_HEIGHT 0x302A -#define EGL_MAX_PBUFFER_PIXELS 0x302B -#define EGL_MAX_PBUFFER_WIDTH 0x302C -#define EGL_NATIVE_RENDERABLE 0x302D -#define EGL_NATIVE_VISUAL_ID 0x302E -#define EGL_NATIVE_VISUAL_TYPE 0x302F -#define EGL_NONE 0x3038 -#define EGL_NON_CONFORMANT_CONFIG 0x3051 -#define EGL_NOT_INITIALIZED 0x3001 -#define EGL_NO_CONTEXT EGL_CAST(EGLContext,0) -#define EGL_NO_DISPLAY EGL_CAST(EGLDisplay,0) -#define EGL_NO_SURFACE EGL_CAST(EGLSurface,0) -#define EGL_PBUFFER_BIT 0x0001 -#define EGL_PIXMAP_BIT 0x0002 -#define EGL_READ 0x305A -#define EGL_RED_SIZE 0x3024 -#define EGL_SAMPLES 0x3031 -#define EGL_SAMPLE_BUFFERS 0x3032 -#define EGL_SLOW_CONFIG 0x3050 -#define EGL_STENCIL_SIZE 0x3026 -#define EGL_SUCCESS 0x3000 -#define EGL_SURFACE_TYPE 0x3033 -#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 -#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 -#define EGL_TRANSPARENT_RED_VALUE 0x3037 -#define EGL_TRANSPARENT_RGB 0x3052 -#define EGL_TRANSPARENT_TYPE 0x3034 -#define EGL_TRUE 1 -#define EGL_VENDOR 0x3053 -#define EGL_VERSION 0x3054 -#define EGL_WIDTH 0x3057 -#define EGL_WINDOW_BIT 0x0004 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCHOOSECONFIGPROC) (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOPYBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); -typedef EGLContext (EGLAPIENTRYP PFNEGLCREATECONTEXTPROC) (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPBUFFERSURFACEPROC) (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCONFIGATTRIBPROC) (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCONFIGSPROC) (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); -typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETCURRENTDISPLAYPROC) (void); -typedef EGLSurface (EGLAPIENTRYP PFNEGLGETCURRENTSURFACEPROC) (EGLint readdraw); -typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETDISPLAYPROC) (EGLNativeDisplayType display_id); -typedef EGLint (EGLAPIENTRYP PFNEGLGETERRORPROC) (void); -typedef __eglMustCastToProperFunctionPointerType (EGLAPIENTRYP PFNEGLGETPROCADDRESSPROC) (const char *procname); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLINITIALIZEPROC) (EGLDisplay dpy, EGLint *major, EGLint *minor); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLMAKECURRENTPROC) (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYSTRINGPROC) (EGLDisplay dpy, EGLint name); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLTERMINATEPROC) (EGLDisplay dpy); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITGLPROC) (void); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITNATIVEPROC) (EGLint engine); -#if EGL_EGL_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); -EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); -EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface); -EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); -EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void); -EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw); -EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id); -EGLAPI EGLint EGLAPIENTRY eglGetError (void); -EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname); -EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor); -EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); -EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface); -EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine); -#endif -#endif /* EGL_VERSION_1_0 */ - -#ifndef EGL_VERSION_1_1 -#define EGL_VERSION_1_1 1 -#define EGL_BACK_BUFFER 0x3084 -#define EGL_BIND_TO_TEXTURE_RGB 0x3039 -#define EGL_BIND_TO_TEXTURE_RGBA 0x303A -#define EGL_CONTEXT_LOST 0x300E -#define EGL_MIN_SWAP_INTERVAL 0x303B -#define EGL_MAX_SWAP_INTERVAL 0x303C -#define EGL_MIPMAP_TEXTURE 0x3082 -#define EGL_MIPMAP_LEVEL 0x3083 -#define EGL_NO_TEXTURE 0x305C -#define EGL_TEXTURE_2D 0x305F -#define EGL_TEXTURE_FORMAT 0x3080 -#define EGL_TEXTURE_RGB 0x305D -#define EGL_TEXTURE_RGBA 0x305E -#define EGL_TEXTURE_TARGET 0x3081 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDTEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLRELEASETEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSURFACEATTRIBPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPINTERVALPROC) (EGLDisplay dpy, EGLint interval); -#if EGL_EGL_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); -EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); -EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); -EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval); -#endif -#endif /* EGL_VERSION_1_1 */ - -#ifndef EGL_VERSION_1_2 -#define EGL_VERSION_1_2 1 -typedef unsigned int EGLenum; -typedef void *EGLClientBuffer; -#define EGL_ALPHA_FORMAT 0x3088 -#define EGL_ALPHA_FORMAT_NONPRE 0x308B -#define EGL_ALPHA_FORMAT_PRE 0x308C -#define EGL_ALPHA_MASK_SIZE 0x303E -#define EGL_BUFFER_PRESERVED 0x3094 -#define EGL_BUFFER_DESTROYED 0x3095 -#define EGL_CLIENT_APIS 0x308D -#define EGL_COLORSPACE 0x3087 -#define EGL_COLORSPACE_sRGB 0x3089 -#define EGL_COLORSPACE_LINEAR 0x308A -#define EGL_COLOR_BUFFER_TYPE 0x303F -#define EGL_CONTEXT_CLIENT_TYPE 0x3097 -#define EGL_DISPLAY_SCALING 10000 -#define EGL_HORIZONTAL_RESOLUTION 0x3090 -#define EGL_LUMINANCE_BUFFER 0x308F -#define EGL_LUMINANCE_SIZE 0x303D -#define EGL_OPENGL_ES_BIT 0x0001 -#define EGL_OPENVG_BIT 0x0002 -#define EGL_OPENGL_ES_API 0x30A0 -#define EGL_OPENVG_API 0x30A1 -#define EGL_OPENVG_IMAGE 0x3096 -#define EGL_PIXEL_ASPECT_RATIO 0x3092 -#define EGL_RENDERABLE_TYPE 0x3040 -#define EGL_RENDER_BUFFER 0x3086 -#define EGL_RGB_BUFFER 0x308E -#define EGL_SINGLE_BUFFER 0x3085 -#define EGL_SWAP_BEHAVIOR 0x3093 -#define EGL_UNKNOWN EGL_CAST(EGLint,-1) -#define EGL_VERTICAL_RESOLUTION 0x3091 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDAPIPROC) (EGLenum api); -typedef EGLenum (EGLAPIENTRYP PFNEGLQUERYAPIPROC) (void); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLRELEASETHREADPROC) (void); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITCLIENTPROC) (void); -#if EGL_EGL_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api); -EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void); -#endif -#endif /* EGL_VERSION_1_2 */ - -#ifndef EGL_VERSION_1_3 -#define EGL_VERSION_1_3 1 -#define EGL_CONFORMANT 0x3042 -#define EGL_CONTEXT_CLIENT_VERSION 0x3098 -#define EGL_MATCH_NATIVE_PIXMAP 0x3041 -#define EGL_OPENGL_ES2_BIT 0x0004 -#define EGL_VG_ALPHA_FORMAT 0x3088 -#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B -#define EGL_VG_ALPHA_FORMAT_PRE 0x308C -#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 -#define EGL_VG_COLORSPACE 0x3087 -#define EGL_VG_COLORSPACE_sRGB 0x3089 -#define EGL_VG_COLORSPACE_LINEAR 0x308A -#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 -#endif /* EGL_VERSION_1_3 */ - -#ifndef EGL_VERSION_1_4 -#define EGL_VERSION_1_4 1 -#define EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType,0) -#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 -#define EGL_MULTISAMPLE_RESOLVE 0x3099 -#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A -#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B -#define EGL_OPENGL_API 0x30A2 -#define EGL_OPENGL_BIT 0x0008 -#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 -typedef EGLContext (EGLAPIENTRYP PFNEGLGETCURRENTCONTEXTPROC) (void); -#if EGL_EGL_PROTOTYPES -EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void); -#endif -#endif /* EGL_VERSION_1_4 */ - -#ifndef EGL_VERSION_1_5 -#define EGL_VERSION_1_5 1 -typedef void *EGLSync; -typedef intptr_t EGLAttrib; -typedef khronos_utime_nanoseconds_t EGLTime; -typedef void *EGLImage; -#define EGL_CONTEXT_MAJOR_VERSION 0x3098 -#define EGL_CONTEXT_MINOR_VERSION 0x30FB -#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD -#define EGL_NO_RESET_NOTIFICATION 0x31BE -#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF -#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001 -#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0 -#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1 -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 -#define EGL_OPENGL_ES3_BIT 0x00000040 -#define EGL_CL_EVENT_HANDLE 0x309C -#define EGL_SYNC_CL_EVENT 0x30FE -#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 -#define EGL_SYNC_TYPE 0x30F7 -#define EGL_SYNC_STATUS 0x30F1 -#define EGL_SYNC_CONDITION 0x30F8 -#define EGL_SIGNALED 0x30F2 -#define EGL_UNSIGNALED 0x30F3 -#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001 -#define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull -#define EGL_TIMEOUT_EXPIRED 0x30F5 -#define EGL_CONDITION_SATISFIED 0x30F6 -#define EGL_NO_SYNC EGL_CAST(EGLSync,0) -#define EGL_SYNC_FENCE 0x30F9 -#define EGL_GL_COLORSPACE 0x309D -#define EGL_GL_COLORSPACE_SRGB 0x3089 -#define EGL_GL_COLORSPACE_LINEAR 0x308A -#define EGL_GL_RENDERBUFFER 0x30B9 -#define EGL_GL_TEXTURE_2D 0x30B1 -#define EGL_GL_TEXTURE_LEVEL 0x30BC -#define EGL_GL_TEXTURE_3D 0x30B2 -#define EGL_GL_TEXTURE_ZOFFSET 0x30BD -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 -#define EGL_IMAGE_PRESERVED 0x30D2 -#define EGL_NO_IMAGE EGL_CAST(EGLImage,0) -typedef EGLSync (EGLAPIENTRYP PFNEGLCREATESYNCPROC) (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCPROC) (EGLDisplay dpy, EGLSync sync); -typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBPROC) (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value); -typedef EGLImage (EGLAPIENTRYP PFNEGLCREATEIMAGEPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEPROC) (EGLDisplay dpy, EGLImage image); -typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYPROC) (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags); -#if EGL_EGL_PROTOTYPES -EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync); -EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value); -EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image); -EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags); -#endif -#endif /* EGL_VERSION_1_5 */ - -#ifdef __cplusplus -} -#endif - -#endif /* __egl_h_ */ - - -#ifndef __eglext_h_ -#define __eglext_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: Apache-2.0 -** -** This header is generated from the Khronos EGL XML API Registry. -** The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.khronos.org/registry/egl -** -** Khronos $Git commit SHA1: 6fb1daea15 $ on $Git commit date: 2022-05-25 09:41:13 -0600 $ -*/ - -/*#include <EGL/eglplatform.h>*/ - -#define EGL_EGLEXT_VERSION 20220525 - -/* Generated C header for: - * API: egl - * Versions considered: .* - * Versions emitted: _nomatch_^ - * Default extensions included: egl - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef EGL_KHR_cl_event -#define EGL_KHR_cl_event 1 -#define EGL_CL_EVENT_HANDLE_KHR 0x309C -#define EGL_SYNC_CL_EVENT_KHR 0x30FE -#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF -#endif /* EGL_KHR_cl_event */ - -#ifndef EGL_KHR_cl_event2 -#define EGL_KHR_cl_event2 1 -typedef void *EGLSyncKHR; -typedef intptr_t EGLAttribKHR; -typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); -#endif -#endif /* EGL_KHR_cl_event2 */ - -#ifndef EGL_KHR_client_get_all_proc_addresses -#define EGL_KHR_client_get_all_proc_addresses 1 -#endif /* EGL_KHR_client_get_all_proc_addresses */ - -#ifndef EGL_KHR_config_attribs -#define EGL_KHR_config_attribs 1 -#define EGL_CONFORMANT_KHR 0x3042 -#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 -#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 -#endif /* EGL_KHR_config_attribs */ - -#ifndef EGL_KHR_context_flush_control -#define EGL_KHR_context_flush_control 1 -#define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0 -#define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097 -#define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098 -#endif /* EGL_KHR_context_flush_control */ - -#ifndef EGL_KHR_create_context -#define EGL_KHR_create_context 1 -#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 -#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB -#define EGL_CONTEXT_FLAGS_KHR 0x30FC -#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD -#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE -#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF -#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 -#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 -#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 -#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 -#define EGL_OPENGL_ES3_BIT_KHR 0x00000040 -#endif /* EGL_KHR_create_context */ - -#ifndef EGL_KHR_create_context_no_error -#define EGL_KHR_create_context_no_error 1 -#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3 -#endif /* EGL_KHR_create_context_no_error */ - -#ifndef EGL_KHR_debug -#define EGL_KHR_debug 1 -typedef void *EGLLabelKHR; -typedef void *EGLObjectKHR; -typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); -#define EGL_OBJECT_THREAD_KHR 0x33B0 -#define EGL_OBJECT_DISPLAY_KHR 0x33B1 -#define EGL_OBJECT_CONTEXT_KHR 0x33B2 -#define EGL_OBJECT_SURFACE_KHR 0x33B3 -#define EGL_OBJECT_IMAGE_KHR 0x33B4 -#define EGL_OBJECT_SYNC_KHR 0x33B5 -#define EGL_OBJECT_STREAM_KHR 0x33B6 -#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9 -#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA -#define EGL_DEBUG_MSG_WARN_KHR 0x33BB -#define EGL_DEBUG_MSG_INFO_KHR 0x33BC -#define EGL_DEBUG_CALLBACK_KHR 0x33B8 -typedef EGLint (EGLAPIENTRYP PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib *value); -typedef EGLint (EGLAPIENTRYP PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLint EGLAPIENTRY eglDebugMessageControlKHR (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDebugKHR (EGLint attribute, EGLAttrib *value); -EGLAPI EGLint EGLAPIENTRY eglLabelObjectKHR (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); -#endif -#endif /* EGL_KHR_debug */ - -#ifndef EGL_KHR_display_reference -#define EGL_KHR_display_reference 1 -#define EGL_TRACK_REFERENCES_KHR 0x3352 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBKHRPROC) (EGLDisplay dpy, EGLint name, EGLAttrib *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribKHR (EGLDisplay dpy, EGLint name, EGLAttrib *value); -#endif -#endif /* EGL_KHR_display_reference */ - -#ifndef EGL_KHR_fence_sync -#define EGL_KHR_fence_sync 1 -typedef khronos_utime_nanoseconds_t EGLTimeKHR; -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 -#define EGL_SYNC_CONDITION_KHR 0x30F8 -#define EGL_SYNC_FENCE_KHR 0x30F9 -typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); -typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync); -EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_fence_sync */ - -#ifndef EGL_KHR_get_all_proc_addresses -#define EGL_KHR_get_all_proc_addresses 1 -#endif /* EGL_KHR_get_all_proc_addresses */ - -#ifndef EGL_KHR_gl_colorspace -#define EGL_KHR_gl_colorspace 1 -#define EGL_GL_COLORSPACE_KHR 0x309D -#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089 -#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A -#endif /* EGL_KHR_gl_colorspace */ - -#ifndef EGL_KHR_gl_renderbuffer_image -#define EGL_KHR_gl_renderbuffer_image 1 -#define EGL_GL_RENDERBUFFER_KHR 0x30B9 -#endif /* EGL_KHR_gl_renderbuffer_image */ - -#ifndef EGL_KHR_gl_texture_2D_image -#define EGL_KHR_gl_texture_2D_image 1 -#define EGL_GL_TEXTURE_2D_KHR 0x30B1 -#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC -#endif /* EGL_KHR_gl_texture_2D_image */ - -#ifndef EGL_KHR_gl_texture_3D_image -#define EGL_KHR_gl_texture_3D_image 1 -#define EGL_GL_TEXTURE_3D_KHR 0x30B2 -#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD -#endif /* EGL_KHR_gl_texture_3D_image */ - -#ifndef EGL_KHR_gl_texture_cubemap_image -#define EGL_KHR_gl_texture_cubemap_image 1 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 -#endif /* EGL_KHR_gl_texture_cubemap_image */ - -#ifndef EGL_KHR_image -#define EGL_KHR_image 1 -typedef void *EGLImageKHR; -#define EGL_NATIVE_PIXMAP_KHR 0x30B0 -#define EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0) -typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image); -#endif -#endif /* EGL_KHR_image */ - -#ifndef EGL_KHR_image_base -#define EGL_KHR_image_base 1 -#define EGL_IMAGE_PRESERVED_KHR 0x30D2 -#endif /* EGL_KHR_image_base */ - -#ifndef EGL_KHR_image_pixmap -#define EGL_KHR_image_pixmap 1 -#endif /* EGL_KHR_image_pixmap */ - -#ifndef EGL_KHR_lock_surface -#define EGL_KHR_lock_surface 1 -#define EGL_READ_SURFACE_BIT_KHR 0x0001 -#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 -#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 -#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 -#define EGL_MATCH_FORMAT_KHR 0x3043 -#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 -#define EGL_FORMAT_RGB_565_KHR 0x30C1 -#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 -#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 -#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 -#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 -#define EGL_BITMAP_POINTER_KHR 0x30C6 -#define EGL_BITMAP_PITCH_KHR 0x30C7 -#define EGL_BITMAP_ORIGIN_KHR 0x30C8 -#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 -#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA -#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB -#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC -#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD -#define EGL_LOWER_LEFT_KHR 0x30CE -#define EGL_UPPER_LEFT_KHR 0x30CF -typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface); -#endif -#endif /* EGL_KHR_lock_surface */ - -#ifndef EGL_KHR_lock_surface2 -#define EGL_KHR_lock_surface2 1 -#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 -#endif /* EGL_KHR_lock_surface2 */ - -#ifndef EGL_KHR_lock_surface3 -#define EGL_KHR_lock_surface3 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); -#endif -#endif /* EGL_KHR_lock_surface3 */ - -#ifndef EGL_KHR_mutable_render_buffer -#define EGL_KHR_mutable_render_buffer 1 -#define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000 -#endif /* EGL_KHR_mutable_render_buffer */ - -#ifndef EGL_KHR_no_config_context -#define EGL_KHR_no_config_context 1 -#define EGL_NO_CONFIG_KHR EGL_CAST(EGLConfig,0) -#endif /* EGL_KHR_no_config_context */ - -#ifndef EGL_KHR_partial_update -#define EGL_KHR_partial_update 1 -#define EGL_BUFFER_AGE_KHR 0x313D -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#endif -#endif /* EGL_KHR_partial_update */ - -#ifndef EGL_KHR_platform_android -#define EGL_KHR_platform_android 1 -#define EGL_PLATFORM_ANDROID_KHR 0x3141 -#endif /* EGL_KHR_platform_android */ - -#ifndef EGL_KHR_platform_gbm -#define EGL_KHR_platform_gbm 1 -#define EGL_PLATFORM_GBM_KHR 0x31D7 -#endif /* EGL_KHR_platform_gbm */ - -#ifndef EGL_KHR_platform_wayland -#define EGL_KHR_platform_wayland 1 -#define EGL_PLATFORM_WAYLAND_KHR 0x31D8 -#endif /* EGL_KHR_platform_wayland */ - -#ifndef EGL_KHR_platform_x11 -#define EGL_KHR_platform_x11 1 -#define EGL_PLATFORM_X11_KHR 0x31D5 -#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6 -#endif /* EGL_KHR_platform_x11 */ - -#ifndef EGL_KHR_reusable_sync -#define EGL_KHR_reusable_sync 1 -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_SYNC_STATUS_KHR 0x30F1 -#define EGL_SIGNALED_KHR 0x30F2 -#define EGL_UNSIGNALED_KHR 0x30F3 -#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 -#define EGL_CONDITION_SATISFIED_KHR 0x30F6 -#define EGL_SYNC_TYPE_KHR 0x30F7 -#define EGL_SYNC_REUSABLE_KHR 0x30FA -#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 -#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull -#define EGL_NO_SYNC_KHR EGL_CAST(EGLSyncKHR,0) -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_reusable_sync */ - -#ifndef EGL_KHR_stream -#define EGL_KHR_stream 1 -typedef void *EGLStreamKHR; -typedef khronos_uint64_t EGLuint64KHR; -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_NO_STREAM_KHR EGL_CAST(EGLStreamKHR,0) -#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 -#define EGL_PRODUCER_FRAME_KHR 0x3212 -#define EGL_CONSUMER_FRAME_KHR 0x3213 -#define EGL_STREAM_STATE_KHR 0x3214 -#define EGL_STREAM_STATE_CREATED_KHR 0x3215 -#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 -#define EGL_STREAM_STATE_EMPTY_KHR 0x3217 -#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 -#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 -#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A -#define EGL_BAD_STREAM_KHR 0x321B -#define EGL_BAD_STATE_KHR 0x321C -typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_stream */ - -#ifndef EGL_KHR_stream_attrib -#define EGL_KHR_stream_attrib 1 -#ifdef KHRONOS_SUPPORT_INT64 -typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMATTRIBKHRPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamAttribKHR (EGLDisplay dpy, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_stream_attrib */ - -#ifndef EGL_KHR_stream_consumer_gltexture -#define EGL_KHR_stream_consumer_gltexture 1 -#ifdef EGL_KHR_stream -#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_consumer_gltexture */ - -#ifndef EGL_KHR_stream_cross_process_fd -#define EGL_KHR_stream_cross_process_fd 1 -typedef int EGLNativeFileDescriptorKHR; -#ifdef EGL_KHR_stream -#define EGL_NO_FILE_DESCRIPTOR_KHR EGL_CAST(EGLNativeFileDescriptorKHR,-1) -typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_cross_process_fd */ - -#ifndef EGL_KHR_stream_fifo -#define EGL_KHR_stream_fifo 1 -#ifdef EGL_KHR_stream -#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC -#define EGL_STREAM_TIME_NOW_KHR 0x31FD -#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE -#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_fifo */ - -#ifndef EGL_KHR_stream_producer_aldatalocator -#define EGL_KHR_stream_producer_aldatalocator 1 -#ifdef EGL_KHR_stream -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_producer_aldatalocator */ - -#ifndef EGL_KHR_stream_producer_eglsurface -#define EGL_KHR_stream_producer_eglsurface 1 -#ifdef EGL_KHR_stream -#define EGL_STREAM_BIT_KHR 0x0800 -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_producer_eglsurface */ - -#ifndef EGL_KHR_surfaceless_context -#define EGL_KHR_surfaceless_context 1 -#endif /* EGL_KHR_surfaceless_context */ - -#ifndef EGL_KHR_swap_buffers_with_damage -#define EGL_KHR_swap_buffers_with_damage 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); -#endif -#endif /* EGL_KHR_swap_buffers_with_damage */ - -#ifndef EGL_KHR_vg_parent_image -#define EGL_KHR_vg_parent_image 1 -#define EGL_VG_PARENT_IMAGE_KHR 0x30BA -#endif /* EGL_KHR_vg_parent_image */ - -#ifndef EGL_KHR_wait_sync -#define EGL_KHR_wait_sync 1 -typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); -#endif -#endif /* EGL_KHR_wait_sync */ - -#ifndef EGL_ANDROID_GLES_layers -#define EGL_ANDROID_GLES_layers 1 -#endif /* EGL_ANDROID_GLES_layers */ - -#ifndef EGL_ANDROID_blob_cache -#define EGL_ANDROID_blob_cache 1 -typedef khronos_ssize_t EGLsizeiANDROID; -typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); -typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); -typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); -#endif -#endif /* EGL_ANDROID_blob_cache */ - -#ifndef EGL_ANDROID_create_native_client_buffer -#define EGL_ANDROID_create_native_client_buffer 1 -#define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143 -#define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001 -#define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002 -#define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004 -typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLClientBuffer EGLAPIENTRY eglCreateNativeClientBufferANDROID (const EGLint *attrib_list); -#endif -#endif /* EGL_ANDROID_create_native_client_buffer */ - -#ifndef EGL_ANDROID_framebuffer_target -#define EGL_ANDROID_framebuffer_target 1 -#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 -#endif /* EGL_ANDROID_framebuffer_target */ - -#ifndef EGL_ANDROID_front_buffer_auto_refresh -#define EGL_ANDROID_front_buffer_auto_refresh 1 -#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C -#endif /* EGL_ANDROID_front_buffer_auto_refresh */ - -#ifndef EGL_ANDROID_get_frame_timestamps -#define EGL_ANDROID_get_frame_timestamps 1 -typedef khronos_stime_nanoseconds_t EGLnsecsANDROID; -#define EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID,-2) -#define EGL_TIMESTAMP_INVALID_ANDROID EGL_CAST(EGLnsecsANDROID,-1) -#define EGL_TIMESTAMPS_ANDROID 0x3430 -#define EGL_COMPOSITE_DEADLINE_ANDROID 0x3431 -#define EGL_COMPOSITE_INTERVAL_ANDROID 0x3432 -#define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433 -#define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434 -#define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435 -#define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436 -#define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437 -#define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438 -#define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439 -#define EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A -#define EGL_DEQUEUE_READY_TIME_ANDROID 0x343B -#define EGL_READS_DONE_TIME_ANDROID 0x343C -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint name); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETNEXTFRAMEIDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingANDROID (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values); -EGLAPI EGLBoolean EGLAPIENTRY eglGetNextFrameIdANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId); -EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint timestamp); -EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampsANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values); -#endif -#endif /* EGL_ANDROID_get_frame_timestamps */ - -#ifndef EGL_ANDROID_get_native_client_buffer -#define EGL_ANDROID_get_native_client_buffer 1 -struct AHardwareBuffer; -typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) (const struct AHardwareBuffer *buffer); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLClientBuffer EGLAPIENTRY eglGetNativeClientBufferANDROID (const struct AHardwareBuffer *buffer); -#endif -#endif /* EGL_ANDROID_get_native_client_buffer */ - -#ifndef EGL_ANDROID_image_native_buffer -#define EGL_ANDROID_image_native_buffer 1 -#define EGL_NATIVE_BUFFER_ANDROID 0x3140 -#endif /* EGL_ANDROID_image_native_buffer */ - -#ifndef EGL_ANDROID_native_fence_sync -#define EGL_ANDROID_native_fence_sync 1 -#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144 -#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145 -#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146 -#define EGL_NO_NATIVE_FENCE_FD_ANDROID -1 -typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync); -#endif -#endif /* EGL_ANDROID_native_fence_sync */ - -#ifndef EGL_ANDROID_presentation_time -#define EGL_ANDROID_presentation_time 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); -#endif -#endif /* EGL_ANDROID_presentation_time */ - -#ifndef EGL_ANDROID_recordable -#define EGL_ANDROID_recordable 1 -#define EGL_RECORDABLE_ANDROID 0x3142 -#endif /* EGL_ANDROID_recordable */ - -#ifndef EGL_ANGLE_d3d_share_handle_client_buffer -#define EGL_ANGLE_d3d_share_handle_client_buffer 1 -#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 -#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ - -#ifndef EGL_ANGLE_device_d3d -#define EGL_ANGLE_device_d3d 1 -#define EGL_D3D9_DEVICE_ANGLE 0x33A0 -#define EGL_D3D11_DEVICE_ANGLE 0x33A1 -#endif /* EGL_ANGLE_device_d3d */ - -#ifndef EGL_ANGLE_query_surface_pointer -#define EGL_ANGLE_query_surface_pointer 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); -#endif -#endif /* EGL_ANGLE_query_surface_pointer */ - -#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle -#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 -#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ - -#ifndef EGL_ANGLE_sync_control_rate -#define EGL_ANGLE_sync_control_rate 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMSCRATEANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglGetMscRateANGLE (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator); -#endif -#endif /* EGL_ANGLE_sync_control_rate */ - -#ifndef EGL_ANGLE_window_fixed_size -#define EGL_ANGLE_window_fixed_size 1 -#define EGL_FIXED_SIZE_ANGLE 0x3201 -#endif /* EGL_ANGLE_window_fixed_size */ - -#ifndef EGL_ARM_image_format -#define EGL_ARM_image_format 1 -#define EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM 0x3287 -#define EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM 0x3288 -#endif /* EGL_ARM_image_format */ - -#ifndef EGL_ARM_implicit_external_sync -#define EGL_ARM_implicit_external_sync 1 -#define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A -#endif /* EGL_ARM_implicit_external_sync */ - -#ifndef EGL_ARM_pixmap_multisample_discard -#define EGL_ARM_pixmap_multisample_discard 1 -#define EGL_DISCARD_SAMPLES_ARM 0x3286 -#endif /* EGL_ARM_pixmap_multisample_discard */ - -#ifndef EGL_EXT_bind_to_front -#define EGL_EXT_bind_to_front 1 -#define EGL_FRONT_BUFFER_EXT 0x3464 -#endif /* EGL_EXT_bind_to_front */ - -#ifndef EGL_EXT_buffer_age -#define EGL_EXT_buffer_age 1 -#define EGL_BUFFER_AGE_EXT 0x313D -#endif /* EGL_EXT_buffer_age */ - -#ifndef EGL_EXT_client_extensions -#define EGL_EXT_client_extensions 1 -#endif /* EGL_EXT_client_extensions */ - -#ifndef EGL_EXT_client_sync -#define EGL_EXT_client_sync 1 -#define EGL_SYNC_CLIENT_EXT 0x3364 -#define EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCLIENTSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglClientSignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); -#endif -#endif /* EGL_EXT_client_sync */ - -#ifndef EGL_EXT_compositor -#define EGL_EXT_compositor 1 -#define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460 -#define EGL_EXTERNAL_REF_ID_EXT 0x3461 -#define EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT 0x3462 -#define EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT 0x3463 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC) (const EGLint *external_ref_ids, EGLint num_entries); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC) (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC) (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC) (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC) (EGLint external_win_id); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETSIZEEXTPROC) (EGLint external_win_id, EGLint width, EGLint height); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSWAPPOLICYEXTPROC) (EGLint external_win_id, EGLint policy); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextListEXT (const EGLint *external_ref_ids, EGLint num_entries); -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextAttributesEXT (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries); -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowListEXT (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries); -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowAttributesEXT (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries); -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorBindTexWindowEXT (EGLint external_win_id); -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetSizeEXT (EGLint external_win_id, EGLint width, EGLint height); -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSwapPolicyEXT (EGLint external_win_id, EGLint policy); -#endif -#endif /* EGL_EXT_compositor */ - -#ifndef EGL_EXT_config_select_group -#define EGL_EXT_config_select_group 1 -#define EGL_CONFIG_SELECT_GROUP_EXT 0x34C0 -#endif /* EGL_EXT_config_select_group */ - -#ifndef EGL_EXT_create_context_robustness -#define EGL_EXT_create_context_robustness 1 -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 -#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE -#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF -#endif /* EGL_EXT_create_context_robustness */ - -#ifndef EGL_EXT_device_base -#define EGL_EXT_device_base 1 -typedef void *EGLDeviceEXT; -#define EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0) -#define EGL_BAD_DEVICE_EXT 0x322B -#define EGL_DEVICE_EXT 0x322C -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); -EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -#endif -#endif /* EGL_EXT_device_base */ - -#ifndef EGL_EXT_device_drm -#define EGL_EXT_device_drm 1 -#define EGL_DRM_DEVICE_FILE_EXT 0x3233 -#define EGL_DRM_MASTER_FD_EXT 0x333C -#endif /* EGL_EXT_device_drm */ - -#ifndef EGL_EXT_device_drm_render_node -#define EGL_EXT_device_drm_render_node 1 -#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377 -#endif /* EGL_EXT_device_drm_render_node */ - -#ifndef EGL_EXT_device_enumeration -#define EGL_EXT_device_enumeration 1 -#endif /* EGL_EXT_device_enumeration */ - -#ifndef EGL_EXT_device_openwf -#define EGL_EXT_device_openwf 1 -#define EGL_OPENWF_DEVICE_ID_EXT 0x3237 -#define EGL_OPENWF_DEVICE_EXT 0x333D -#endif /* EGL_EXT_device_openwf */ - -#ifndef EGL_EXT_device_persistent_id -#define EGL_EXT_device_persistent_id 1 -#define EGL_DEVICE_UUID_EXT 0x335C -#define EGL_DRIVER_UUID_EXT 0x335D -#define EGL_DRIVER_NAME_EXT 0x335E -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEBINARYEXTPROC) (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceBinaryEXT (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size); -#endif -#endif /* EGL_EXT_device_persistent_id */ - -#ifndef EGL_EXT_device_query -#define EGL_EXT_device_query 1 -#endif /* EGL_EXT_device_query */ - -#ifndef EGL_EXT_device_query_name -#define EGL_EXT_device_query_name 1 -#define EGL_RENDERER_EXT 0x335F -#endif /* EGL_EXT_device_query_name */ - -#ifndef EGL_EXT_explicit_device -#define EGL_EXT_explicit_device 1 -#endif /* EGL_EXT_explicit_device */ - -#ifndef EGL_EXT_gl_colorspace_bt2020_linear -#define EGL_EXT_gl_colorspace_bt2020_linear 1 -#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F -#endif /* EGL_EXT_gl_colorspace_bt2020_linear */ - -#ifndef EGL_EXT_gl_colorspace_bt2020_pq -#define EGL_EXT_gl_colorspace_bt2020_pq 1 -#define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340 -#endif /* EGL_EXT_gl_colorspace_bt2020_pq */ - -#ifndef EGL_EXT_gl_colorspace_display_p3 -#define EGL_EXT_gl_colorspace_display_p3 1 -#define EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363 -#endif /* EGL_EXT_gl_colorspace_display_p3 */ - -#ifndef EGL_EXT_gl_colorspace_display_p3_linear -#define EGL_EXT_gl_colorspace_display_p3_linear 1 -#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362 -#endif /* EGL_EXT_gl_colorspace_display_p3_linear */ - -#ifndef EGL_EXT_gl_colorspace_display_p3_passthrough -#define EGL_EXT_gl_colorspace_display_p3_passthrough 1 -#define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490 -#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */ - -#ifndef EGL_EXT_gl_colorspace_scrgb -#define EGL_EXT_gl_colorspace_scrgb 1 -#define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351 -#endif /* EGL_EXT_gl_colorspace_scrgb */ - -#ifndef EGL_EXT_gl_colorspace_scrgb_linear -#define EGL_EXT_gl_colorspace_scrgb_linear 1 -#define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350 -#endif /* EGL_EXT_gl_colorspace_scrgb_linear */ - -#ifndef EGL_EXT_image_dma_buf_import -#define EGL_EXT_image_dma_buf_import 1 -#define EGL_LINUX_DMA_BUF_EXT 0x3270 -#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 -#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 -#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 -#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 -#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 -#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 -#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 -#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 -#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 -#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A -#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B -#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C -#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D -#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E -#define EGL_ITU_REC601_EXT 0x327F -#define EGL_ITU_REC709_EXT 0x3280 -#define EGL_ITU_REC2020_EXT 0x3281 -#define EGL_YUV_FULL_RANGE_EXT 0x3282 -#define EGL_YUV_NARROW_RANGE_EXT 0x3283 -#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 -#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 -#endif /* EGL_EXT_image_dma_buf_import */ - -#ifndef EGL_EXT_image_dma_buf_import_modifiers -#define EGL_EXT_image_dma_buf_import_modifiers 1 -#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440 -#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441 -#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442 -#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443 -#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444 -#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445 -#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446 -#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447 -#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448 -#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449 -#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFFORMATSEXTPROC) (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFMODIFIERSEXTPROC) (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufFormatsEXT (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufModifiersEXT (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers); -#endif -#endif /* EGL_EXT_image_dma_buf_import_modifiers */ - -#ifndef EGL_EXT_image_gl_colorspace -#define EGL_EXT_image_gl_colorspace 1 -#define EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D -#endif /* EGL_EXT_image_gl_colorspace */ - -#ifndef EGL_EXT_image_implicit_sync_control -#define EGL_EXT_image_implicit_sync_control 1 -#define EGL_IMPORT_SYNC_TYPE_EXT 0x3470 -#define EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471 -#define EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472 -#endif /* EGL_EXT_image_implicit_sync_control */ - -#ifndef EGL_EXT_multiview_window -#define EGL_EXT_multiview_window 1 -#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 -#endif /* EGL_EXT_multiview_window */ - -#ifndef EGL_EXT_output_base -#define EGL_EXT_output_base 1 -typedef void *EGLOutputLayerEXT; -typedef void *EGLOutputPortEXT; -#define EGL_NO_OUTPUT_LAYER_EXT EGL_CAST(EGLOutputLayerEXT,0) -#define EGL_NO_OUTPUT_PORT_EXT EGL_CAST(EGLOutputPortEXT,0) -#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D -#define EGL_BAD_OUTPUT_PORT_EXT 0x322E -#define EGL_SWAP_INTERVAL_EXT 0x322F -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); -EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); -EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); -EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); -EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); -#endif -#endif /* EGL_EXT_output_base */ - -#ifndef EGL_EXT_output_drm -#define EGL_EXT_output_drm 1 -#define EGL_DRM_CRTC_EXT 0x3234 -#define EGL_DRM_PLANE_EXT 0x3235 -#define EGL_DRM_CONNECTOR_EXT 0x3236 -#endif /* EGL_EXT_output_drm */ - -#ifndef EGL_EXT_output_openwf -#define EGL_EXT_output_openwf 1 -#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238 -#define EGL_OPENWF_PORT_ID_EXT 0x3239 -#endif /* EGL_EXT_output_openwf */ - -#ifndef EGL_EXT_pixel_format_float -#define EGL_EXT_pixel_format_float 1 -#define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339 -#define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A -#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B -#endif /* EGL_EXT_pixel_format_float */ - -#ifndef EGL_EXT_platform_base -#define EGL_EXT_platform_base 1 -typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); -#endif -#endif /* EGL_EXT_platform_base */ - -#ifndef EGL_EXT_platform_device -#define EGL_EXT_platform_device 1 -#define EGL_PLATFORM_DEVICE_EXT 0x313F -#endif /* EGL_EXT_platform_device */ - -#ifndef EGL_EXT_platform_wayland -#define EGL_EXT_platform_wayland 1 -#define EGL_PLATFORM_WAYLAND_EXT 0x31D8 -#endif /* EGL_EXT_platform_wayland */ - -#ifndef EGL_EXT_platform_x11 -#define EGL_EXT_platform_x11 1 -#define EGL_PLATFORM_X11_EXT 0x31D5 -#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6 -#endif /* EGL_EXT_platform_x11 */ - -#ifndef EGL_EXT_platform_xcb -#define EGL_EXT_platform_xcb 1 -#define EGL_PLATFORM_XCB_EXT 0x31DC -#define EGL_PLATFORM_XCB_SCREEN_EXT 0x31DE -#endif /* EGL_EXT_platform_xcb */ - -#ifndef EGL_EXT_present_opaque -#define EGL_EXT_present_opaque 1 -#define EGL_PRESENT_OPAQUE_EXT 0x31DF -#endif /* EGL_EXT_present_opaque */ - -#ifndef EGL_EXT_protected_content -#define EGL_EXT_protected_content 1 -#define EGL_PROTECTED_CONTENT_EXT 0x32C0 -#endif /* EGL_EXT_protected_content */ - -#ifndef EGL_EXT_protected_surface -#define EGL_EXT_protected_surface 1 -#endif /* EGL_EXT_protected_surface */ - -#ifndef EGL_EXT_stream_consumer_egloutput -#define EGL_EXT_stream_consumer_egloutput 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); -#endif -#endif /* EGL_EXT_stream_consumer_egloutput */ - -#ifndef EGL_EXT_surface_CTA861_3_metadata -#define EGL_EXT_surface_CTA861_3_metadata 1 -#define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360 -#define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361 -#endif /* EGL_EXT_surface_CTA861_3_metadata */ - -#ifndef EGL_EXT_surface_SMPTE2086_metadata -#define EGL_EXT_surface_SMPTE2086_metadata 1 -#define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341 -#define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342 -#define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343 -#define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344 -#define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345 -#define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346 -#define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347 -#define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348 -#define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349 -#define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A -#define EGL_METADATA_SCALING_EXT 50000 -#endif /* EGL_EXT_surface_SMPTE2086_metadata */ - -#ifndef EGL_EXT_surface_compression -#define EGL_EXT_surface_compression 1 -#define EGL_SURFACE_COMPRESSION_EXT 0x34B0 -#define EGL_SURFACE_COMPRESSION_PLANE1_EXT 0x328E -#define EGL_SURFACE_COMPRESSION_PLANE2_EXT 0x328F -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x34B1 -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x34B2 -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x34B4 -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x34B5 -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x34B6 -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x34B7 -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x34B8 -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x34B9 -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x34BA -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x34BB -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x34BC -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x34BD -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x34BE -#define EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x34BF -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC) (EGLDisplay dpy, EGLConfig config, const EGLAttrib *attrib_list, EGLint *rates, EGLint rate_size, EGLint *num_rates); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySupportedCompressionRatesEXT (EGLDisplay dpy, EGLConfig config, const EGLAttrib *attrib_list, EGLint *rates, EGLint rate_size, EGLint *num_rates); -#endif -#endif /* EGL_EXT_surface_compression */ - -#ifndef EGL_EXT_swap_buffers_with_damage -#define EGL_EXT_swap_buffers_with_damage 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); -#endif -#endif /* EGL_EXT_swap_buffers_with_damage */ - -#ifndef EGL_EXT_sync_reuse -#define EGL_EXT_sync_reuse 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglUnsignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); -#endif -#endif /* EGL_EXT_sync_reuse */ - -#ifndef EGL_EXT_yuv_surface -#define EGL_EXT_yuv_surface 1 -#define EGL_YUV_ORDER_EXT 0x3301 -#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 -#define EGL_YUV_SUBSAMPLE_EXT 0x3312 -#define EGL_YUV_DEPTH_RANGE_EXT 0x3317 -#define EGL_YUV_CSC_STANDARD_EXT 0x330A -#define EGL_YUV_PLANE_BPP_EXT 0x331A -#define EGL_YUV_BUFFER_EXT 0x3300 -#define EGL_YUV_ORDER_YUV_EXT 0x3302 -#define EGL_YUV_ORDER_YVU_EXT 0x3303 -#define EGL_YUV_ORDER_YUYV_EXT 0x3304 -#define EGL_YUV_ORDER_UYVY_EXT 0x3305 -#define EGL_YUV_ORDER_YVYU_EXT 0x3306 -#define EGL_YUV_ORDER_VYUY_EXT 0x3307 -#define EGL_YUV_ORDER_AYUV_EXT 0x3308 -#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313 -#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314 -#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315 -#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318 -#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319 -#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B -#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C -#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D -#define EGL_YUV_PLANE_BPP_0_EXT 0x331B -#define EGL_YUV_PLANE_BPP_8_EXT 0x331C -#define EGL_YUV_PLANE_BPP_10_EXT 0x331D -#endif /* EGL_EXT_yuv_surface */ - -#ifndef EGL_HI_clientpixmap -#define EGL_HI_clientpixmap 1 -struct EGLClientPixmapHI { - void *pData; - EGLint iWidth; - EGLint iHeight; - EGLint iStride; -}; -#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); -#endif -#endif /* EGL_HI_clientpixmap */ - -#ifndef EGL_HI_colorformats -#define EGL_HI_colorformats 1 -#define EGL_COLOR_FORMAT_HI 0x8F70 -#define EGL_COLOR_RGB_HI 0x8F71 -#define EGL_COLOR_RGBA_HI 0x8F72 -#define EGL_COLOR_ARGB_HI 0x8F73 -#endif /* EGL_HI_colorformats */ - -#ifndef EGL_IMG_context_priority -#define EGL_IMG_context_priority 1 -#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 -#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 -#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 -#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 -#endif /* EGL_IMG_context_priority */ - -#ifndef EGL_IMG_image_plane_attribs -#define EGL_IMG_image_plane_attribs 1 -#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105 -#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106 -#endif /* EGL_IMG_image_plane_attribs */ - -#ifndef EGL_MESA_drm_image -#define EGL_MESA_drm_image 1 -#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 -#define EGL_DRM_BUFFER_USE_MESA 0x31D1 -#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 -#define EGL_DRM_BUFFER_MESA 0x31D3 -#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 -#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 -#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 -#define EGL_DRM_BUFFER_USE_CURSOR_MESA 0x00000004 -typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); -#endif -#endif /* EGL_MESA_drm_image */ - -#ifndef EGL_MESA_image_dma_buf_export -#define EGL_MESA_image_dma_buf_export 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); -EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); -#endif -#endif /* EGL_MESA_image_dma_buf_export */ - -#ifndef EGL_MESA_platform_gbm -#define EGL_MESA_platform_gbm 1 -#define EGL_PLATFORM_GBM_MESA 0x31D7 -#endif /* EGL_MESA_platform_gbm */ - -#ifndef EGL_MESA_platform_surfaceless -#define EGL_MESA_platform_surfaceless 1 -#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD -#endif /* EGL_MESA_platform_surfaceless */ - -#ifndef EGL_MESA_query_driver -#define EGL_MESA_query_driver 1 -typedef char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERCONFIGPROC) (EGLDisplay dpy); -typedef const char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERNAMEPROC) (EGLDisplay dpy); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI char *EGLAPIENTRY eglGetDisplayDriverConfig (EGLDisplay dpy); -EGLAPI const char *EGLAPIENTRY eglGetDisplayDriverName (EGLDisplay dpy); -#endif -#endif /* EGL_MESA_query_driver */ - -#ifndef EGL_NOK_swap_region -#define EGL_NOK_swap_region 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#endif -#endif /* EGL_NOK_swap_region */ - -#ifndef EGL_NOK_swap_region2 -#define EGL_NOK_swap_region2 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#endif -#endif /* EGL_NOK_swap_region2 */ - -#ifndef EGL_NOK_texture_from_pixmap -#define EGL_NOK_texture_from_pixmap 1 -#define EGL_Y_INVERTED_NOK 0x307F -#endif /* EGL_NOK_texture_from_pixmap */ - -#ifndef EGL_NV_3dvision_surface -#define EGL_NV_3dvision_surface 1 -#define EGL_AUTO_STEREO_NV 0x3136 -#endif /* EGL_NV_3dvision_surface */ - -#ifndef EGL_NV_context_priority_realtime -#define EGL_NV_context_priority_realtime 1 -#define EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357 -#endif /* EGL_NV_context_priority_realtime */ - -#ifndef EGL_NV_coverage_sample -#define EGL_NV_coverage_sample 1 -#define EGL_COVERAGE_BUFFERS_NV 0x30E0 -#define EGL_COVERAGE_SAMPLES_NV 0x30E1 -#endif /* EGL_NV_coverage_sample */ - -#ifndef EGL_NV_coverage_sample_resolve -#define EGL_NV_coverage_sample_resolve 1 -#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 -#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 -#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 -#endif /* EGL_NV_coverage_sample_resolve */ - -#ifndef EGL_NV_cuda_event -#define EGL_NV_cuda_event 1 -#define EGL_CUDA_EVENT_HANDLE_NV 0x323B -#define EGL_SYNC_CUDA_EVENT_NV 0x323C -#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D -#endif /* EGL_NV_cuda_event */ - -#ifndef EGL_NV_depth_nonlinear -#define EGL_NV_depth_nonlinear 1 -#define EGL_DEPTH_ENCODING_NV 0x30E2 -#define EGL_DEPTH_ENCODING_NONE_NV 0 -#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 -#endif /* EGL_NV_depth_nonlinear */ - -#ifndef EGL_NV_device_cuda -#define EGL_NV_device_cuda 1 -#define EGL_CUDA_DEVICE_NV 0x323A -#endif /* EGL_NV_device_cuda */ - -#ifndef EGL_NV_native_query -#define EGL_NV_native_query 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); -#endif -#endif /* EGL_NV_native_query */ - -#ifndef EGL_NV_post_convert_rounding -#define EGL_NV_post_convert_rounding 1 -#endif /* EGL_NV_post_convert_rounding */ - -#ifndef EGL_NV_post_sub_buffer -#define EGL_NV_post_sub_buffer 1 -#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE -typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); -#endif -#endif /* EGL_NV_post_sub_buffer */ - -#ifndef EGL_NV_quadruple_buffer -#define EGL_NV_quadruple_buffer 1 -#define EGL_QUADRUPLE_BUFFER_NV 0x3231 -#endif /* EGL_NV_quadruple_buffer */ - -#ifndef EGL_NV_robustness_video_memory_purge -#define EGL_NV_robustness_video_memory_purge 1 -#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C -#endif /* EGL_NV_robustness_video_memory_purge */ - -#ifndef EGL_NV_stream_consumer_eglimage -#define EGL_NV_stream_consumer_eglimage 1 -#define EGL_STREAM_CONSUMER_IMAGE_NV 0x3373 -#define EGL_STREAM_IMAGE_ADD_NV 0x3374 -#define EGL_STREAM_IMAGE_REMOVE_NV 0x3375 -#define EGL_STREAM_IMAGE_AVAILABLE_NV 0x3376 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR *modifiers, const EGLAttrib *attrib_list); -typedef EGLint (EGLAPIENTRYP PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMACQUIREIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMRELEASEIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamImageConsumerConnectNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR *modifiers, const EGLAttrib *attrib_list); -EGLAPI EGLint EGLAPIENTRY eglQueryStreamConsumerEventNV (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamAcquireImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamReleaseImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync); -#endif -#endif /* EGL_NV_stream_consumer_eglimage */ - -#ifndef EGL_NV_stream_consumer_gltexture_yuv -#define EGL_NV_stream_consumer_gltexture_yuv 1 -#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C -#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D -#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -#endif -#endif /* EGL_NV_stream_consumer_gltexture_yuv */ - -#ifndef EGL_NV_stream_cross_display -#define EGL_NV_stream_cross_display 1 -#define EGL_STREAM_CROSS_DISPLAY_NV 0x334E -#endif /* EGL_NV_stream_cross_display */ - -#ifndef EGL_NV_stream_cross_object -#define EGL_NV_stream_cross_object 1 -#define EGL_STREAM_CROSS_OBJECT_NV 0x334D -#endif /* EGL_NV_stream_cross_object */ - -#ifndef EGL_NV_stream_cross_partition -#define EGL_NV_stream_cross_partition 1 -#define EGL_STREAM_CROSS_PARTITION_NV 0x323F -#endif /* EGL_NV_stream_cross_partition */ - -#ifndef EGL_NV_stream_cross_process -#define EGL_NV_stream_cross_process 1 -#define EGL_STREAM_CROSS_PROCESS_NV 0x3245 -#endif /* EGL_NV_stream_cross_process */ - -#ifndef EGL_NV_stream_cross_system -#define EGL_NV_stream_cross_system 1 -#define EGL_STREAM_CROSS_SYSTEM_NV 0x334F -#endif /* EGL_NV_stream_cross_system */ - -#ifndef EGL_NV_stream_dma -#define EGL_NV_stream_dma 1 -#define EGL_STREAM_DMA_NV 0x3371 -#define EGL_STREAM_DMA_SERVER_NV 0x3372 -#endif /* EGL_NV_stream_dma */ - -#ifndef EGL_NV_stream_fifo_next -#define EGL_NV_stream_fifo_next 1 -#define EGL_PENDING_FRAME_NV 0x3329 -#define EGL_STREAM_TIME_PENDING_NV 0x332A -#endif /* EGL_NV_stream_fifo_next */ - -#ifndef EGL_NV_stream_fifo_synchronous -#define EGL_NV_stream_fifo_synchronous 1 -#define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336 -#endif /* EGL_NV_stream_fifo_synchronous */ - -#ifndef EGL_NV_stream_flush -#define EGL_NV_stream_flush 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMFLUSHNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamFlushNV (EGLDisplay dpy, EGLStreamKHR stream); -#endif -#endif /* EGL_NV_stream_flush */ - -#ifndef EGL_NV_stream_frame_limits -#define EGL_NV_stream_frame_limits 1 -#define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337 -#define EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338 -#endif /* EGL_NV_stream_frame_limits */ - -#ifndef EGL_NV_stream_metadata -#define EGL_NV_stream_metadata 1 -#define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250 -#define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251 -#define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252 -#define EGL_PRODUCER_METADATA_NV 0x3253 -#define EGL_CONSUMER_METADATA_NV 0x3254 -#define EGL_PENDING_METADATA_NV 0x3328 -#define EGL_METADATA0_SIZE_NV 0x3255 -#define EGL_METADATA1_SIZE_NV 0x3256 -#define EGL_METADATA2_SIZE_NV 0x3257 -#define EGL_METADATA3_SIZE_NV 0x3258 -#define EGL_METADATA0_TYPE_NV 0x3259 -#define EGL_METADATA1_TYPE_NV 0x325A -#define EGL_METADATA2_TYPE_NV 0x325B -#define EGL_METADATA3_TYPE_NV 0x325C -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribNV (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); -#endif -#endif /* EGL_NV_stream_metadata */ - -#ifndef EGL_NV_stream_origin -#define EGL_NV_stream_origin 1 -#define EGL_STREAM_FRAME_ORIGIN_X_NV 0x3366 -#define EGL_STREAM_FRAME_ORIGIN_Y_NV 0x3367 -#define EGL_STREAM_FRAME_MAJOR_AXIS_NV 0x3368 -#define EGL_CONSUMER_AUTO_ORIENTATION_NV 0x3369 -#define EGL_PRODUCER_AUTO_ORIENTATION_NV 0x336A -#define EGL_LEFT_NV 0x336B -#define EGL_RIGHT_NV 0x336C -#define EGL_TOP_NV 0x336D -#define EGL_BOTTOM_NV 0x336E -#define EGL_X_AXIS_NV 0x336F -#define EGL_Y_AXIS_NV 0x3370 -#endif /* EGL_NV_stream_origin */ - -#ifndef EGL_NV_stream_remote -#define EGL_NV_stream_remote 1 -#define EGL_STREAM_STATE_INITIALIZING_NV 0x3240 -#define EGL_STREAM_TYPE_NV 0x3241 -#define EGL_STREAM_PROTOCOL_NV 0x3242 -#define EGL_STREAM_ENDPOINT_NV 0x3243 -#define EGL_STREAM_LOCAL_NV 0x3244 -#define EGL_STREAM_PRODUCER_NV 0x3247 -#define EGL_STREAM_CONSUMER_NV 0x3248 -#define EGL_STREAM_PROTOCOL_FD_NV 0x3246 -#endif /* EGL_NV_stream_remote */ - -#ifndef EGL_NV_stream_reset -#define EGL_NV_stream_reset 1 -#define EGL_SUPPORT_RESET_NV 0x3334 -#define EGL_SUPPORT_REUSE_NV 0x3335 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLRESETSTREAMNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglResetStreamNV (EGLDisplay dpy, EGLStreamKHR stream); -#endif -#endif /* EGL_NV_stream_reset */ - -#ifndef EGL_NV_stream_socket -#define EGL_NV_stream_socket 1 -#define EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B -#define EGL_SOCKET_HANDLE_NV 0x324C -#define EGL_SOCKET_TYPE_NV 0x324D -#endif /* EGL_NV_stream_socket */ - -#ifndef EGL_NV_stream_socket_inet -#define EGL_NV_stream_socket_inet 1 -#define EGL_SOCKET_TYPE_INET_NV 0x324F -#endif /* EGL_NV_stream_socket_inet */ - -#ifndef EGL_NV_stream_socket_unix -#define EGL_NV_stream_socket_unix 1 -#define EGL_SOCKET_TYPE_UNIX_NV 0x324E -#endif /* EGL_NV_stream_socket_unix */ - -#ifndef EGL_NV_stream_sync -#define EGL_NV_stream_sync 1 -#define EGL_SYNC_NEW_FRAME_NV 0x321F -typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); -#endif -#endif /* EGL_NV_stream_sync */ - -#ifndef EGL_NV_sync -#define EGL_NV_sync 1 -typedef void *EGLSyncNV; -typedef khronos_utime_nanoseconds_t EGLTimeNV; -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 -#define EGL_SYNC_STATUS_NV 0x30E7 -#define EGL_SIGNALED_NV 0x30E8 -#define EGL_UNSIGNALED_NV 0x30E9 -#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 -#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull -#define EGL_ALREADY_SIGNALED_NV 0x30EA -#define EGL_TIMEOUT_EXPIRED_NV 0x30EB -#define EGL_CONDITION_SATISFIED_NV 0x30EC -#define EGL_SYNC_TYPE_NV 0x30ED -#define EGL_SYNC_CONDITION_NV 0x30EE -#define EGL_SYNC_FENCE_NV 0x30EF -#define EGL_NO_SYNC_NV EGL_CAST(EGLSyncNV,0) -typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync); -typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync); -EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync); -EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); -EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode); -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_NV_sync */ - -#ifndef EGL_NV_system_time -#define EGL_NV_system_time 1 -typedef khronos_utime_nanoseconds_t EGLuint64NV; -#ifdef KHRONOS_SUPPORT_INT64 -typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void); -typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void); -EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_NV_system_time */ - -#ifndef EGL_NV_triple_buffer -#define EGL_NV_triple_buffer 1 -#define EGL_TRIPLE_BUFFER_NV 0x3230 -#endif /* EGL_NV_triple_buffer */ - -#ifndef EGL_TIZEN_image_native_buffer -#define EGL_TIZEN_image_native_buffer 1 -#define EGL_NATIVE_BUFFER_TIZEN 0x32A0 -#endif /* EGL_TIZEN_image_native_buffer */ - -#ifndef EGL_TIZEN_image_native_surface -#define EGL_TIZEN_image_native_surface 1 -#define EGL_NATIVE_SURFACE_TIZEN 0x32A1 -#endif /* EGL_TIZEN_image_native_surface */ - -#ifndef EGL_WL_bind_wayland_display -#define EGL_WL_bind_wayland_display 1 -#define PFNEGLBINDWAYLANDDISPLAYWL PFNEGLBINDWAYLANDDISPLAYWLPROC -#define PFNEGLUNBINDWAYLANDDISPLAYWL PFNEGLUNBINDWAYLANDDISPLAYWLPROC -#define PFNEGLQUERYWAYLANDBUFFERWL PFNEGLQUERYWAYLANDBUFFERWLPROC -struct wl_display; -struct wl_resource; -#define EGL_WAYLAND_BUFFER_WL 0x31D5 -#define EGL_WAYLAND_PLANE_WL 0x31D6 -#define EGL_TEXTURE_Y_U_V_WL 0x31D7 -#define EGL_TEXTURE_Y_UV_WL 0x31D8 -#define EGL_TEXTURE_Y_XUXV_WL 0x31D9 -#define EGL_TEXTURE_EXTERNAL_WL 0x31DA -#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB -typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display *display); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display *display); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWLPROC) (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL (EGLDisplay dpy, struct wl_display *display); -EGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL (EGLDisplay dpy, struct wl_display *display); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryWaylandBufferWL (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value); -#endif -#endif /* EGL_WL_bind_wayland_display */ - -#ifndef EGL_WL_create_wayland_buffer_from_image -#define EGL_WL_create_wayland_buffer_from_image 1 -#define PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC -struct wl_buffer; -typedef struct wl_buffer *(EGLAPIENTRYP PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC) (EGLDisplay dpy, EGLImageKHR image); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI struct wl_buffer *EGLAPIENTRY eglCreateWaylandBufferFromImageWL (EGLDisplay dpy, EGLImageKHR image); -#endif -#endif /* EGL_WL_create_wayland_buffer_from_image */ - -#ifdef __cplusplus -} -#endif - -#endif /* __eglext_h_ */ - -#endif /* _MSC_VER */ diff --git a/lib/windows/include/SDL_endian.h b/lib/windows/include/SDL_endian.h deleted file mode 100644 index 71bc067..0000000 --- a/lib/windows/include/SDL_endian.h +++ /dev/null @@ -1,348 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_endian.h - * - * Functions for reading and writing endian-specific values - */ - -#ifndef SDL_endian_h_ -#define SDL_endian_h_ - -#include "SDL_stdinc.h" - -#if defined(_MSC_VER) && (_MSC_VER >= 1400) -/* As of Clang 11, '_m_prefetchw' is conflicting with the winnt.h's version, - so we define the needed '_m_prefetch' here as a pseudo-header, until the issue is fixed. */ -#ifdef __clang__ -#ifndef __PRFCHWINTRIN_H -#define __PRFCHWINTRIN_H -static __inline__ void __attribute__((__always_inline__, __nodebug__)) -_m_prefetch(void *__P) -{ - __builtin_prefetch(__P, 0, 3 /* _MM_HINT_T0 */); -} -#endif /* __PRFCHWINTRIN_H */ -#endif /* __clang__ */ - -#include <intrin.h> -#endif - -/** - * \name The two types of endianness - */ -/* @{ */ -#define SDL_LIL_ENDIAN 1234 -#define SDL_BIG_ENDIAN 4321 -/* @} */ - -#ifndef SDL_BYTEORDER /* Not defined in SDL_config.h? */ -#ifdef __linux__ -#include <endian.h> -#define SDL_BYTEORDER __BYTE_ORDER -#elif defined(__OpenBSD__) || defined(__DragonFly__) -#include <endian.h> -#define SDL_BYTEORDER BYTE_ORDER -#elif defined(__FreeBSD__) || defined(__NetBSD__) -#include <sys/endian.h> -#define SDL_BYTEORDER BYTE_ORDER -/* predefs from newer gcc and clang versions: */ -#elif defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__) && defined(__BYTE_ORDER__) -#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) -#define SDL_BYTEORDER SDL_LIL_ENDIAN -#elif (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) -#define SDL_BYTEORDER SDL_BIG_ENDIAN -#else -#error Unsupported endianness -#endif /**/ -#else -#if defined(__hppa__) || \ - defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \ - (defined(__MIPS__) && defined(__MIPSEB__)) || \ - defined(__ppc__) || defined(__POWERPC__) || defined(__powerpc__) || defined(__PPC__) || \ - defined(__sparc__) -#define SDL_BYTEORDER SDL_BIG_ENDIAN -#else -#define SDL_BYTEORDER SDL_LIL_ENDIAN -#endif -#endif /* __linux__ */ -#endif /* !SDL_BYTEORDER */ - -#ifndef SDL_FLOATWORDORDER /* Not defined in SDL_config.h? */ -/* predefs from newer gcc versions: */ -#if defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__) && defined(__FLOAT_WORD_ORDER__) -#if (__FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__) -#define SDL_FLOATWORDORDER SDL_LIL_ENDIAN -#elif (__FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__) -#define SDL_FLOATWORDORDER SDL_BIG_ENDIAN -#else -#error Unsupported endianness -#endif /**/ -#elif defined(__MAVERICK__) -/* For Maverick, float words are always little-endian. */ -#define SDL_FLOATWORDORDER SDL_LIL_ENDIAN -#elif (defined(__arm__) || defined(__thumb__)) && !defined(__VFP_FP__) && !defined(__ARM_EABI__) -/* For FPA, float words are always big-endian. */ -#define SDL_FLOATWORDORDER SDL_BIG_ENDIAN -#else -/* By default, assume that floats words follow the memory system mode. */ -#define SDL_FLOATWORDORDER SDL_BYTEORDER -#endif /* __FLOAT_WORD_ORDER__ */ -#endif /* !SDL_FLOATWORDORDER */ - - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file SDL_endian.h - */ - -/* various modern compilers may have builtin swap */ -#if defined(__GNUC__) || defined(__clang__) -# define HAS_BUILTIN_BSWAP16 (_SDL_HAS_BUILTIN(__builtin_bswap16)) || \ - (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) -# define HAS_BUILTIN_BSWAP32 (_SDL_HAS_BUILTIN(__builtin_bswap32)) || \ - (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) -# define HAS_BUILTIN_BSWAP64 (_SDL_HAS_BUILTIN(__builtin_bswap64)) || \ - (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - - /* this one is broken */ -# define HAS_BROKEN_BSWAP (__GNUC__ == 2 && __GNUC_MINOR__ <= 95) -#else -# define HAS_BUILTIN_BSWAP16 0 -# define HAS_BUILTIN_BSWAP32 0 -# define HAS_BUILTIN_BSWAP64 0 -# define HAS_BROKEN_BSWAP 0 -#endif - -#if HAS_BUILTIN_BSWAP16 -#define SDL_Swap16(x) __builtin_bswap16(x) -#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL) -#pragma intrinsic(_byteswap_ushort) -#define SDL_Swap16(x) _byteswap_ushort(x) -#elif defined(__i386__) && !HAS_BROKEN_BSWAP -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - __asm__("xchgb %b0,%h0": "=q"(x):"0"(x)); - return x; -} -#elif defined(__x86_64__) -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - __asm__("xchgb %b0,%h0": "=Q"(x):"0"(x)); - return x; -} -#elif (defined(__powerpc__) || defined(__ppc__)) -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - int result; - - __asm__("rlwimi %0,%2,8,16,23": "=&r"(result):"0"(x >> 8), "r"(x)); - return (Uint16)result; -} -#elif (defined(__m68k__) && !defined(__mcoldfire__)) -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - __asm__("rorw #8,%0": "=d"(x): "0"(x):"cc"); - return x; -} -#elif defined(__WATCOMC__) && defined(__386__) -extern __inline Uint16 SDL_Swap16(Uint16); -#pragma aux SDL_Swap16 = \ - "xchg al, ah" \ - parm [ax] \ - modify [ax]; -#else -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - return SDL_static_cast(Uint16, ((x << 8) | (x >> 8))); -} -#endif - -#if HAS_BUILTIN_BSWAP32 -#define SDL_Swap32(x) __builtin_bswap32(x) -#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL) -#pragma intrinsic(_byteswap_ulong) -#define SDL_Swap32(x) _byteswap_ulong(x) -#elif defined(__i386__) && !HAS_BROKEN_BSWAP -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - __asm__("bswap %0": "=r"(x):"0"(x)); - return x; -} -#elif defined(__x86_64__) -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - __asm__("bswapl %0": "=r"(x):"0"(x)); - return x; -} -#elif (defined(__powerpc__) || defined(__ppc__)) -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - Uint32 result; - - __asm__("rlwimi %0,%2,24,16,23": "=&r"(result): "0" (x>>24), "r"(x)); - __asm__("rlwimi %0,%2,8,8,15" : "=&r"(result): "0" (result), "r"(x)); - __asm__("rlwimi %0,%2,24,0,7" : "=&r"(result): "0" (result), "r"(x)); - return result; -} -#elif (defined(__m68k__) && !defined(__mcoldfire__)) -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - __asm__("rorw #8,%0\n\tswap %0\n\trorw #8,%0": "=d"(x): "0"(x):"cc"); - return x; -} -#elif defined(__WATCOMC__) && defined(__386__) -extern __inline Uint32 SDL_Swap32(Uint32); -#pragma aux SDL_Swap32 = \ - "bswap eax" \ - parm [eax] \ - modify [eax]; -#else -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - return SDL_static_cast(Uint32, ((x << 24) | ((x << 8) & 0x00FF0000) | - ((x >> 8) & 0x0000FF00) | (x >> 24))); -} -#endif - -#if HAS_BUILTIN_BSWAP64 -#define SDL_Swap64(x) __builtin_bswap64(x) -#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL) -#pragma intrinsic(_byteswap_uint64) -#define SDL_Swap64(x) _byteswap_uint64(x) -#elif defined(__i386__) && !HAS_BROKEN_BSWAP -SDL_FORCE_INLINE Uint64 -SDL_Swap64(Uint64 x) -{ - union { - struct { - Uint32 a, b; - } s; - Uint64 u; - } v; - v.u = x; - __asm__("bswapl %0 ; bswapl %1 ; xchgl %0,%1" - : "=r"(v.s.a), "=r"(v.s.b) - : "0" (v.s.a), "1"(v.s.b)); - return v.u; -} -#elif defined(__x86_64__) -SDL_FORCE_INLINE Uint64 -SDL_Swap64(Uint64 x) -{ - __asm__("bswapq %0": "=r"(x):"0"(x)); - return x; -} -#elif defined(__WATCOMC__) && defined(__386__) -extern __inline Uint64 SDL_Swap64(Uint64); -#pragma aux SDL_Swap64 = \ - "bswap eax" \ - "bswap edx" \ - "xchg eax,edx" \ - parm [eax edx] \ - modify [eax edx]; -#else -SDL_FORCE_INLINE Uint64 -SDL_Swap64(Uint64 x) -{ - Uint32 hi, lo; - - /* Separate into high and low 32-bit values and swap them */ - lo = SDL_static_cast(Uint32, x & 0xFFFFFFFF); - x >>= 32; - hi = SDL_static_cast(Uint32, x & 0xFFFFFFFF); - x = SDL_Swap32(lo); - x <<= 32; - x |= SDL_Swap32(hi); - return (x); -} -#endif - - -SDL_FORCE_INLINE float -SDL_SwapFloat(float x) -{ - union { - float f; - Uint32 ui32; - } swapper; - swapper.f = x; - swapper.ui32 = SDL_Swap32(swapper.ui32); - return swapper.f; -} - -/* remove extra macros */ -#undef HAS_BROKEN_BSWAP -#undef HAS_BUILTIN_BSWAP16 -#undef HAS_BUILTIN_BSWAP32 -#undef HAS_BUILTIN_BSWAP64 - -/** - * \name Swap to native - * Byteswap item from the specified endianness to the native endianness. - */ -/* @{ */ -#if SDL_BYTEORDER == SDL_LIL_ENDIAN -#define SDL_SwapLE16(X) (X) -#define SDL_SwapLE32(X) (X) -#define SDL_SwapLE64(X) (X) -#define SDL_SwapFloatLE(X) (X) -#define SDL_SwapBE16(X) SDL_Swap16(X) -#define SDL_SwapBE32(X) SDL_Swap32(X) -#define SDL_SwapBE64(X) SDL_Swap64(X) -#define SDL_SwapFloatBE(X) SDL_SwapFloat(X) -#else -#define SDL_SwapLE16(X) SDL_Swap16(X) -#define SDL_SwapLE32(X) SDL_Swap32(X) -#define SDL_SwapLE64(X) SDL_Swap64(X) -#define SDL_SwapFloatLE(X) SDL_SwapFloat(X) -#define SDL_SwapBE16(X) (X) -#define SDL_SwapBE32(X) (X) -#define SDL_SwapBE64(X) (X) -#define SDL_SwapFloatBE(X) (X) -#endif -/* @} *//* Swap to native */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_endian_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_error.h b/lib/windows/include/SDL_error.h deleted file mode 100644 index 31c2261..0000000 --- a/lib/windows/include/SDL_error.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_error.h - * - * Simple error message routines for SDL. - */ - -#ifndef SDL_error_h_ -#define SDL_error_h_ - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Public functions */ - - -/** - * Set the SDL error message for the current thread. - * - * Calling this function will replace any previous error message that was set. - * - * This function always returns -1, since SDL frequently uses -1 to signify an - * failing result, leading to this idiom: - * - * ```c - * if (error_code) { - * return SDL_SetError("This operation has failed: %d", error_code); - * } - * ``` - * - * \param fmt a printf()-style message format string - * \param ... additional parameters matching % tokens in the `fmt` string, if - * any - * \returns always -1. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ClearError - * \sa SDL_GetError - */ -extern DECLSPEC int SDLCALL SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); - -/** - * Retrieve a message about the last error that occurred on the current - * thread. - * - * It is possible for multiple errors to occur before calling SDL_GetError(). - * Only the last error is returned. - * - * The message is only applicable when an SDL function has signaled an error. - * You must check the return values of SDL function calls to determine when to - * appropriately call SDL_GetError(). You should *not* use the results of - * SDL_GetError() to decide if an error has occurred! Sometimes SDL will set - * an error string even when reporting success. - * - * SDL will *not* clear the error string for successful API calls. You *must* - * check return values for failure cases before you can assume the error - * string applies. - * - * Error strings are set per-thread, so an error set in a different thread - * will not interfere with the current thread's operation. - * - * The returned string is internally allocated and must not be freed by the - * application. - * - * \returns a message with information about the specific error that occurred, - * or an empty string if there hasn't been an error message set since - * the last call to SDL_ClearError(). The message is only applicable - * when an SDL function has signaled an error. You must check the - * return values of SDL function calls to determine when to - * appropriately call SDL_GetError(). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ClearError - * \sa SDL_SetError - */ -extern DECLSPEC const char *SDLCALL SDL_GetError(void); - -/** - * Get the last error message that was set for the current thread. - * - * This allows the caller to copy the error string into a provided buffer, but - * otherwise operates exactly the same as SDL_GetError(). - * - * \param errstr A buffer to fill with the last error message that was set for - * the current thread - * \param maxlen The size of the buffer pointed to by the errstr parameter - * \returns the pointer passed in as the `errstr` parameter. - * - * \since This function is available since SDL 2.0.14. - * - * \sa SDL_GetError - */ -extern DECLSPEC char * SDLCALL SDL_GetErrorMsg(char *errstr, int maxlen); - -/** - * Clear any previous error message for this thread. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetError - * \sa SDL_SetError - */ -extern DECLSPEC void SDLCALL SDL_ClearError(void); - -/** - * \name Internal error functions - * - * \internal - * Private error reporting function - used internally. - */ -/* @{ */ -#define SDL_OutOfMemory() SDL_Error(SDL_ENOMEM) -#define SDL_Unsupported() SDL_Error(SDL_UNSUPPORTED) -#define SDL_InvalidParamError(param) SDL_SetError("Parameter '%s' is invalid", (param)) -typedef enum -{ - SDL_ENOMEM, - SDL_EFREAD, - SDL_EFWRITE, - SDL_EFSEEK, - SDL_UNSUPPORTED, - SDL_LASTERROR -} SDL_errorcode; -/* SDL_Error() unconditionally returns -1. */ -extern DECLSPEC int SDLCALL SDL_Error(SDL_errorcode code); -/* @} *//* Internal error functions */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_error_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_events.h b/lib/windows/include/SDL_events.h deleted file mode 100644 index 9d09703..0000000 --- a/lib/windows/include/SDL_events.h +++ /dev/null @@ -1,1166 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_events.h - * - * Include file for SDL event handling. - */ - -#ifndef SDL_events_h_ -#define SDL_events_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_video.h" -#include "SDL_keyboard.h" -#include "SDL_mouse.h" -#include "SDL_joystick.h" -#include "SDL_gamecontroller.h" -#include "SDL_quit.h" -#include "SDL_gesture.h" -#include "SDL_touch.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* General keyboard/mouse state definitions */ -#define SDL_RELEASED 0 -#define SDL_PRESSED 1 - -/** - * The types of events that can be delivered. - */ -typedef enum -{ - SDL_FIRSTEVENT = 0, /**< Unused (do not remove) */ - - /* Application events */ - SDL_QUIT = 0x100, /**< User-requested quit */ - - /* These application events have special meaning on iOS, see README-ios.md for details */ - SDL_APP_TERMINATING, /**< The application is being terminated by the OS - Called on iOS in applicationWillTerminate() - Called on Android in onDestroy() - */ - SDL_APP_LOWMEMORY, /**< The application is low on memory, free memory if possible. - Called on iOS in applicationDidReceiveMemoryWarning() - Called on Android in onLowMemory() - */ - SDL_APP_WILLENTERBACKGROUND, /**< The application is about to enter the background - Called on iOS in applicationWillResignActive() - Called on Android in onPause() - */ - SDL_APP_DIDENTERBACKGROUND, /**< The application did enter the background and may not get CPU for some time - Called on iOS in applicationDidEnterBackground() - Called on Android in onPause() - */ - SDL_APP_WILLENTERFOREGROUND, /**< The application is about to enter the foreground - Called on iOS in applicationWillEnterForeground() - Called on Android in onResume() - */ - SDL_APP_DIDENTERFOREGROUND, /**< The application is now interactive - Called on iOS in applicationDidBecomeActive() - Called on Android in onResume() - */ - - SDL_LOCALECHANGED, /**< The user's locale preferences have changed. */ - - /* Display events */ - SDL_DISPLAYEVENT = 0x150, /**< Display state change */ - - /* Window events */ - SDL_WINDOWEVENT = 0x200, /**< Window state change */ - SDL_SYSWMEVENT, /**< System specific event */ - - /* Keyboard events */ - SDL_KEYDOWN = 0x300, /**< Key pressed */ - SDL_KEYUP, /**< Key released */ - SDL_TEXTEDITING, /**< Keyboard text editing (composition) */ - SDL_TEXTINPUT, /**< Keyboard text input */ - SDL_KEYMAPCHANGED, /**< Keymap changed due to a system event such as an - input language or keyboard layout change. - */ - SDL_TEXTEDITING_EXT, /**< Extended keyboard text editing (composition) */ - - /* Mouse events */ - SDL_MOUSEMOTION = 0x400, /**< Mouse moved */ - SDL_MOUSEBUTTONDOWN, /**< Mouse button pressed */ - SDL_MOUSEBUTTONUP, /**< Mouse button released */ - SDL_MOUSEWHEEL, /**< Mouse wheel motion */ - - /* Joystick events */ - SDL_JOYAXISMOTION = 0x600, /**< Joystick axis motion */ - SDL_JOYBALLMOTION, /**< Joystick trackball motion */ - SDL_JOYHATMOTION, /**< Joystick hat position change */ - SDL_JOYBUTTONDOWN, /**< Joystick button pressed */ - SDL_JOYBUTTONUP, /**< Joystick button released */ - SDL_JOYDEVICEADDED, /**< A new joystick has been inserted into the system */ - SDL_JOYDEVICEREMOVED, /**< An opened joystick has been removed */ - SDL_JOYBATTERYUPDATED, /**< Joystick battery level change */ - - /* Game controller events */ - SDL_CONTROLLERAXISMOTION = 0x650, /**< Game controller axis motion */ - SDL_CONTROLLERBUTTONDOWN, /**< Game controller button pressed */ - SDL_CONTROLLERBUTTONUP, /**< Game controller button released */ - SDL_CONTROLLERDEVICEADDED, /**< A new Game controller has been inserted into the system */ - SDL_CONTROLLERDEVICEREMOVED, /**< An opened Game controller has been removed */ - SDL_CONTROLLERDEVICEREMAPPED, /**< The controller mapping was updated */ - SDL_CONTROLLERTOUCHPADDOWN, /**< Game controller touchpad was touched */ - SDL_CONTROLLERTOUCHPADMOTION, /**< Game controller touchpad finger was moved */ - SDL_CONTROLLERTOUCHPADUP, /**< Game controller touchpad finger was lifted */ - SDL_CONTROLLERSENSORUPDATE, /**< Game controller sensor was updated */ - - /* Touch events */ - SDL_FINGERDOWN = 0x700, - SDL_FINGERUP, - SDL_FINGERMOTION, - - /* Gesture events */ - SDL_DOLLARGESTURE = 0x800, - SDL_DOLLARRECORD, - SDL_MULTIGESTURE, - - /* Clipboard events */ - SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard or primary selection changed */ - - /* Drag and drop events */ - SDL_DROPFILE = 0x1000, /**< The system requests a file open */ - SDL_DROPTEXT, /**< text/plain drag-and-drop event */ - SDL_DROPBEGIN, /**< A new set of drops is beginning (NULL filename) */ - SDL_DROPCOMPLETE, /**< Current set of drops is now complete (NULL filename) */ - - /* Audio hotplug events */ - SDL_AUDIODEVICEADDED = 0x1100, /**< A new audio device is available */ - SDL_AUDIODEVICEREMOVED, /**< An audio device has been removed. */ - - /* Sensor events */ - SDL_SENSORUPDATE = 0x1200, /**< A sensor was updated */ - - /* Render events */ - SDL_RENDER_TARGETS_RESET = 0x2000, /**< The render targets have been reset and their contents need to be updated */ - SDL_RENDER_DEVICE_RESET, /**< The device has been reset and all textures need to be recreated */ - - /* Internal events */ - SDL_POLLSENTINEL = 0x7F00, /**< Signals the end of an event poll cycle */ - - /** Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use, - * and should be allocated with SDL_RegisterEvents() - */ - SDL_USEREVENT = 0x8000, - - /** - * This last event is only for bounding internal arrays - */ - SDL_LASTEVENT = 0xFFFF -} SDL_EventType; - -/** - * \brief Fields shared by every event - */ -typedef struct SDL_CommonEvent -{ - Uint32 type; - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ -} SDL_CommonEvent; - -/** - * \brief Display state change event data (event.display.*) - */ -typedef struct SDL_DisplayEvent -{ - Uint32 type; /**< ::SDL_DISPLAYEVENT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 display; /**< The associated display index */ - Uint8 event; /**< ::SDL_DisplayEventID */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint32 data1; /**< event dependent data */ -} SDL_DisplayEvent; - -/** - * \brief Window state change event data (event.window.*) - */ -typedef struct SDL_WindowEvent -{ - Uint32 type; /**< ::SDL_WINDOWEVENT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The associated window */ - Uint8 event; /**< ::SDL_WindowEventID */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint32 data1; /**< event dependent data */ - Sint32 data2; /**< event dependent data */ -} SDL_WindowEvent; - -/** - * \brief Keyboard button event structure (event.key.*) - */ -typedef struct SDL_KeyboardEvent -{ - Uint32 type; /**< ::SDL_KEYDOWN or ::SDL_KEYUP */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with keyboard focus, if any */ - Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ - Uint8 repeat; /**< Non-zero if this is a key repeat */ - Uint8 padding2; - Uint8 padding3; - SDL_Keysym keysym; /**< The key that was pressed or released */ -} SDL_KeyboardEvent; - -#define SDL_TEXTEDITINGEVENT_TEXT_SIZE (32) -/** - * \brief Keyboard text editing event structure (event.edit.*) - */ -typedef struct SDL_TextEditingEvent -{ - Uint32 type; /**< ::SDL_TEXTEDITING */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with keyboard focus, if any */ - char text[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; /**< The editing text */ - Sint32 start; /**< The start cursor of selected editing text */ - Sint32 length; /**< The length of selected editing text */ -} SDL_TextEditingEvent; - -/** - * \brief Extended keyboard text editing event structure (event.editExt.*) when text would be - * truncated if stored in the text buffer SDL_TextEditingEvent - */ -typedef struct SDL_TextEditingExtEvent -{ - Uint32 type; /**< ::SDL_TEXTEDITING_EXT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with keyboard focus, if any */ - char* text; /**< The editing text, which should be freed with SDL_free(), and will not be NULL */ - Sint32 start; /**< The start cursor of selected editing text */ - Sint32 length; /**< The length of selected editing text */ -} SDL_TextEditingExtEvent; - -#define SDL_TEXTINPUTEVENT_TEXT_SIZE (32) -/** - * \brief Keyboard text input event structure (event.text.*) - */ -typedef struct SDL_TextInputEvent -{ - Uint32 type; /**< ::SDL_TEXTINPUT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with keyboard focus, if any */ - char text[SDL_TEXTINPUTEVENT_TEXT_SIZE]; /**< The input text */ -} SDL_TextInputEvent; - -/** - * \brief Mouse motion event structure (event.motion.*) - */ -typedef struct SDL_MouseMotionEvent -{ - Uint32 type; /**< ::SDL_MOUSEMOTION */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with mouse focus, if any */ - Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ - Uint32 state; /**< The current button state */ - Sint32 x; /**< X coordinate, relative to window */ - Sint32 y; /**< Y coordinate, relative to window */ - Sint32 xrel; /**< The relative motion in the X direction */ - Sint32 yrel; /**< The relative motion in the Y direction */ -} SDL_MouseMotionEvent; - -/** - * \brief Mouse button event structure (event.button.*) - */ -typedef struct SDL_MouseButtonEvent -{ - Uint32 type; /**< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with mouse focus, if any */ - Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ - Uint8 button; /**< The mouse button index */ - Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ - Uint8 clicks; /**< 1 for single-click, 2 for double-click, etc. */ - Uint8 padding1; - Sint32 x; /**< X coordinate, relative to window */ - Sint32 y; /**< Y coordinate, relative to window */ -} SDL_MouseButtonEvent; - -/** - * \brief Mouse wheel event structure (event.wheel.*) - */ -typedef struct SDL_MouseWheelEvent -{ - Uint32 type; /**< ::SDL_MOUSEWHEEL */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with mouse focus, if any */ - Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ - Sint32 x; /**< The amount scrolled horizontally, positive to the right and negative to the left */ - Sint32 y; /**< The amount scrolled vertically, positive away from the user and negative toward the user */ - Uint32 direction; /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */ - float preciseX; /**< The amount scrolled horizontally, positive to the right and negative to the left, with float precision (added in 2.0.18) */ - float preciseY; /**< The amount scrolled vertically, positive away from the user and negative toward the user, with float precision (added in 2.0.18) */ - Sint32 mouseX; /**< X coordinate, relative to window (added in 2.26.0) */ - Sint32 mouseY; /**< Y coordinate, relative to window (added in 2.26.0) */ -} SDL_MouseWheelEvent; - -/** - * \brief Joystick axis motion event structure (event.jaxis.*) - */ -typedef struct SDL_JoyAxisEvent -{ - Uint32 type; /**< ::SDL_JOYAXISMOTION */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 axis; /**< The joystick axis index */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint16 value; /**< The axis value (range: -32768 to 32767) */ - Uint16 padding4; -} SDL_JoyAxisEvent; - -/** - * \brief Joystick trackball motion event structure (event.jball.*) - */ -typedef struct SDL_JoyBallEvent -{ - Uint32 type; /**< ::SDL_JOYBALLMOTION */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 ball; /**< The joystick trackball index */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint16 xrel; /**< The relative motion in the X direction */ - Sint16 yrel; /**< The relative motion in the Y direction */ -} SDL_JoyBallEvent; - -/** - * \brief Joystick hat position change event structure (event.jhat.*) - */ -typedef struct SDL_JoyHatEvent -{ - Uint32 type; /**< ::SDL_JOYHATMOTION */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 hat; /**< The joystick hat index */ - Uint8 value; /**< The hat position value. - * \sa ::SDL_HAT_LEFTUP ::SDL_HAT_UP ::SDL_HAT_RIGHTUP - * \sa ::SDL_HAT_LEFT ::SDL_HAT_CENTERED ::SDL_HAT_RIGHT - * \sa ::SDL_HAT_LEFTDOWN ::SDL_HAT_DOWN ::SDL_HAT_RIGHTDOWN - * - * Note that zero means the POV is centered. - */ - Uint8 padding1; - Uint8 padding2; -} SDL_JoyHatEvent; - -/** - * \brief Joystick button event structure (event.jbutton.*) - */ -typedef struct SDL_JoyButtonEvent -{ - Uint32 type; /**< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 button; /**< The joystick button index */ - Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ - Uint8 padding1; - Uint8 padding2; -} SDL_JoyButtonEvent; - -/** - * \brief Joystick device event structure (event.jdevice.*) - */ -typedef struct SDL_JoyDeviceEvent -{ - Uint32 type; /**< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED event */ -} SDL_JoyDeviceEvent; - -/** - * \brief Joysick battery level change event structure (event.jbattery.*) - */ -typedef struct SDL_JoyBatteryEvent -{ - Uint32 type; /**< ::SDL_JOYBATTERYUPDATED */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - SDL_JoystickPowerLevel level; /**< The joystick battery level */ -} SDL_JoyBatteryEvent; - -/** - * \brief Game controller axis motion event structure (event.caxis.*) - */ -typedef struct SDL_ControllerAxisEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERAXISMOTION */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 axis; /**< The controller axis (SDL_GameControllerAxis) */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint16 value; /**< The axis value (range: -32768 to 32767) */ - Uint16 padding4; -} SDL_ControllerAxisEvent; - - -/** - * \brief Game controller button event structure (event.cbutton.*) - */ -typedef struct SDL_ControllerButtonEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 button; /**< The controller button (SDL_GameControllerButton) */ - Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ - Uint8 padding1; - Uint8 padding2; -} SDL_ControllerButtonEvent; - - -/** - * \brief Controller device event structure (event.cdevice.*) - */ -typedef struct SDL_ControllerDeviceEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */ -} SDL_ControllerDeviceEvent; - -/** - * \brief Game controller touchpad event structure (event.ctouchpad.*) - */ -typedef struct SDL_ControllerTouchpadEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERTOUCHPADDOWN or ::SDL_CONTROLLERTOUCHPADMOTION or ::SDL_CONTROLLERTOUCHPADUP */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Sint32 touchpad; /**< The index of the touchpad */ - Sint32 finger; /**< The index of the finger on the touchpad */ - float x; /**< Normalized in the range 0...1 with 0 being on the left */ - float y; /**< Normalized in the range 0...1 with 0 being at the top */ - float pressure; /**< Normalized in the range 0...1 */ -} SDL_ControllerTouchpadEvent; - -/** - * \brief Game controller sensor event structure (event.csensor.*) - */ -typedef struct SDL_ControllerSensorEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERSENSORUPDATE */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Sint32 sensor; /**< The type of the sensor, one of the values of ::SDL_SensorType */ - float data[3]; /**< Up to 3 values from the sensor, as defined in SDL_sensor.h */ - Uint64 timestamp_us; /**< The timestamp of the sensor reading in microseconds, if the hardware provides this information. */ -} SDL_ControllerSensorEvent; - -/** - * \brief Audio device event structure (event.adevice.*) - */ -typedef struct SDL_AudioDeviceEvent -{ - Uint32 type; /**< ::SDL_AUDIODEVICEADDED, or ::SDL_AUDIODEVICEREMOVED */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 which; /**< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event */ - Uint8 iscapture; /**< zero if an output device, non-zero if a capture device. */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; -} SDL_AudioDeviceEvent; - - -/** - * \brief Touch finger event structure (event.tfinger.*) - */ -typedef struct SDL_TouchFingerEvent -{ - Uint32 type; /**< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_TouchID touchId; /**< The touch device id */ - SDL_FingerID fingerId; - float x; /**< Normalized in the range 0...1 */ - float y; /**< Normalized in the range 0...1 */ - float dx; /**< Normalized in the range -1...1 */ - float dy; /**< Normalized in the range -1...1 */ - float pressure; /**< Normalized in the range 0...1 */ - Uint32 windowID; /**< The window underneath the finger, if any */ -} SDL_TouchFingerEvent; - - -/** - * \brief Multiple Finger Gesture Event (event.mgesture.*) - */ -typedef struct SDL_MultiGestureEvent -{ - Uint32 type; /**< ::SDL_MULTIGESTURE */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_TouchID touchId; /**< The touch device id */ - float dTheta; - float dDist; - float x; - float y; - Uint16 numFingers; - Uint16 padding; -} SDL_MultiGestureEvent; - - -/** - * \brief Dollar Gesture Event (event.dgesture.*) - */ -typedef struct SDL_DollarGestureEvent -{ - Uint32 type; /**< ::SDL_DOLLARGESTURE or ::SDL_DOLLARRECORD */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_TouchID touchId; /**< The touch device id */ - SDL_GestureID gestureId; - Uint32 numFingers; - float error; - float x; /**< Normalized center of gesture */ - float y; /**< Normalized center of gesture */ -} SDL_DollarGestureEvent; - - -/** - * \brief An event used to request a file open by the system (event.drop.*) - * This event is enabled by default, you can disable it with SDL_EventState(). - * \note If this event is enabled, you must free the filename in the event. - */ -typedef struct SDL_DropEvent -{ - Uint32 type; /**< ::SDL_DROPBEGIN or ::SDL_DROPFILE or ::SDL_DROPTEXT or ::SDL_DROPCOMPLETE */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - char *file; /**< The file name, which should be freed with SDL_free(), is NULL on begin/complete */ - Uint32 windowID; /**< The window that was dropped on, if any */ -} SDL_DropEvent; - - -/** - * \brief Sensor event structure (event.sensor.*) - */ -typedef struct SDL_SensorEvent -{ - Uint32 type; /**< ::SDL_SENSORUPDATE */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Sint32 which; /**< The instance ID of the sensor */ - float data[6]; /**< Up to 6 values from the sensor - additional values can be queried using SDL_SensorGetData() */ - Uint64 timestamp_us; /**< The timestamp of the sensor reading in microseconds, if the hardware provides this information. */ -} SDL_SensorEvent; - -/** - * \brief The "quit requested" event - */ -typedef struct SDL_QuitEvent -{ - Uint32 type; /**< ::SDL_QUIT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ -} SDL_QuitEvent; - -/** - * \brief OS Specific event - */ -typedef struct SDL_OSEvent -{ - Uint32 type; /**< ::SDL_QUIT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ -} SDL_OSEvent; - -/** - * \brief A user-defined event type (event.user.*) - */ -typedef struct SDL_UserEvent -{ - Uint32 type; /**< ::SDL_USEREVENT through ::SDL_LASTEVENT-1 */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The associated window if any */ - Sint32 code; /**< User defined event code */ - void *data1; /**< User defined data pointer */ - void *data2; /**< User defined data pointer */ -} SDL_UserEvent; - - -struct SDL_SysWMmsg; -typedef struct SDL_SysWMmsg SDL_SysWMmsg; - -/** - * \brief A video driver dependent system event (event.syswm.*) - * This event is disabled by default, you can enable it with SDL_EventState() - * - * \note If you want to use this event, you should include SDL_syswm.h. - */ -typedef struct SDL_SysWMEvent -{ - Uint32 type; /**< ::SDL_SYSWMEVENT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_SysWMmsg *msg; /**< driver dependent data, defined in SDL_syswm.h */ -} SDL_SysWMEvent; - -/** - * \brief General event structure - */ -typedef union SDL_Event -{ - Uint32 type; /**< Event type, shared with all events */ - SDL_CommonEvent common; /**< Common event data */ - SDL_DisplayEvent display; /**< Display event data */ - SDL_WindowEvent window; /**< Window event data */ - SDL_KeyboardEvent key; /**< Keyboard event data */ - SDL_TextEditingEvent edit; /**< Text editing event data */ - SDL_TextEditingExtEvent editExt; /**< Extended text editing event data */ - SDL_TextInputEvent text; /**< Text input event data */ - SDL_MouseMotionEvent motion; /**< Mouse motion event data */ - SDL_MouseButtonEvent button; /**< Mouse button event data */ - SDL_MouseWheelEvent wheel; /**< Mouse wheel event data */ - SDL_JoyAxisEvent jaxis; /**< Joystick axis event data */ - SDL_JoyBallEvent jball; /**< Joystick ball event data */ - SDL_JoyHatEvent jhat; /**< Joystick hat event data */ - SDL_JoyButtonEvent jbutton; /**< Joystick button event data */ - SDL_JoyDeviceEvent jdevice; /**< Joystick device change event data */ - SDL_JoyBatteryEvent jbattery; /**< Joystick battery event data */ - SDL_ControllerAxisEvent caxis; /**< Game Controller axis event data */ - SDL_ControllerButtonEvent cbutton; /**< Game Controller button event data */ - SDL_ControllerDeviceEvent cdevice; /**< Game Controller device event data */ - SDL_ControllerTouchpadEvent ctouchpad; /**< Game Controller touchpad event data */ - SDL_ControllerSensorEvent csensor; /**< Game Controller sensor event data */ - SDL_AudioDeviceEvent adevice; /**< Audio device event data */ - SDL_SensorEvent sensor; /**< Sensor event data */ - SDL_QuitEvent quit; /**< Quit request event data */ - SDL_UserEvent user; /**< Custom event data */ - SDL_SysWMEvent syswm; /**< System dependent window event data */ - SDL_TouchFingerEvent tfinger; /**< Touch finger event data */ - SDL_MultiGestureEvent mgesture; /**< Gesture event data */ - SDL_DollarGestureEvent dgesture; /**< Gesture event data */ - SDL_DropEvent drop; /**< Drag and drop event data */ - - /* This is necessary for ABI compatibility between Visual C++ and GCC. - Visual C++ will respect the push pack pragma and use 52 bytes (size of - SDL_TextEditingEvent, the largest structure for 32-bit and 64-bit - architectures) for this union, and GCC will use the alignment of the - largest datatype within the union, which is 8 bytes on 64-bit - architectures. - - So... we'll add padding to force the size to be 56 bytes for both. - - On architectures where pointers are 16 bytes, this needs rounding up to - the next multiple of 16, 64, and on architectures where pointers are - even larger the size of SDL_UserEvent will dominate as being 3 pointers. - */ - Uint8 padding[sizeof(void *) <= 8 ? 56 : sizeof(void *) == 16 ? 64 : 3 * sizeof(void *)]; -} SDL_Event; - -/* Make sure we haven't broken binary compatibility */ -SDL_COMPILE_TIME_ASSERT(SDL_Event, sizeof(SDL_Event) == sizeof(((SDL_Event *)NULL)->padding)); - - -/* Function prototypes */ - -/** - * Pump the event loop, gathering events from the input devices. - * - * This function updates the event queue and internal input device state. - * - * **WARNING**: This should only be run in the thread that initialized the - * video subsystem, and for extra safety, you should consider only doing those - * things on the main thread in any case. - * - * SDL_PumpEvents() gathers all the pending input information from devices and - * places it in the event queue. Without calls to SDL_PumpEvents() no events - * would ever be placed on the queue. Often the need for calls to - * SDL_PumpEvents() is hidden from the user since SDL_PollEvent() and - * SDL_WaitEvent() implicitly call SDL_PumpEvents(). However, if you are not - * polling or waiting for events (e.g. you are filtering them), then you must - * call SDL_PumpEvents() to force an event queue update. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PollEvent - * \sa SDL_WaitEvent - */ -extern DECLSPEC void SDLCALL SDL_PumpEvents(void); - -/* @{ */ -typedef enum -{ - SDL_ADDEVENT, - SDL_PEEKEVENT, - SDL_GETEVENT -} SDL_eventaction; - -/** - * Check the event queue for messages and optionally return them. - * - * `action` may be any of the following: - * - * - `SDL_ADDEVENT`: up to `numevents` events will be added to the back of the - * event queue. - * - `SDL_PEEKEVENT`: `numevents` events at the front of the event queue, - * within the specified minimum and maximum type, will be returned to the - * caller and will _not_ be removed from the queue. - * - `SDL_GETEVENT`: up to `numevents` events at the front of the event queue, - * within the specified minimum and maximum type, will be returned to the - * caller and will be removed from the queue. - * - * You may have to call SDL_PumpEvents() before calling this function. - * Otherwise, the events may not be ready to be filtered when you call - * SDL_PeepEvents(). - * - * This function is thread-safe. - * - * \param events destination buffer for the retrieved events - * \param numevents if action is SDL_ADDEVENT, the number of events to add - * back to the event queue; if action is SDL_PEEKEVENT or - * SDL_GETEVENT, the maximum number of events to retrieve - * \param action action to take; see [[#action|Remarks]] for details - * \param minType minimum value of the event type to be considered; - * SDL_FIRSTEVENT is a safe choice - * \param maxType maximum value of the event type to be considered; - * SDL_LASTEVENT is a safe choice - * \returns the number of events actually stored or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PollEvent - * \sa SDL_PumpEvents - * \sa SDL_PushEvent - */ -extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event * events, int numevents, - SDL_eventaction action, - Uint32 minType, Uint32 maxType); -/* @} */ - -/** - * Check for the existence of a certain event type in the event queue. - * - * If you need to check for a range of event types, use SDL_HasEvents() - * instead. - * - * \param type the type of event to be queried; see SDL_EventType for details - * \returns SDL_TRUE if events matching `type` are present, or SDL_FALSE if - * events matching `type` are not present. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HasEvents - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasEvent(Uint32 type); - - -/** - * Check for the existence of certain event types in the event queue. - * - * If you need to check for a single event type, use SDL_HasEvent() instead. - * - * \param minType the low end of event type to be queried, inclusive; see - * SDL_EventType for details - * \param maxType the high end of event type to be queried, inclusive; see - * SDL_EventType for details - * \returns SDL_TRUE if events with type >= `minType` and <= `maxType` are - * present, or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HasEvents - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasEvents(Uint32 minType, Uint32 maxType); - -/** - * Clear events of a specific type from the event queue. - * - * This will unconditionally remove any events from the queue that match - * `type`. If you need to remove a range of event types, use SDL_FlushEvents() - * instead. - * - * It's also normal to just ignore events you don't care about in your event - * loop without calling this function. - * - * This function only affects currently queued events. If you want to make - * sure that all pending OS events are flushed, you can call SDL_PumpEvents() - * on the main thread immediately before the flush call. - * - * \param type the type of event to be cleared; see SDL_EventType for details - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FlushEvents - */ -extern DECLSPEC void SDLCALL SDL_FlushEvent(Uint32 type); - -/** - * Clear events of a range of types from the event queue. - * - * This will unconditionally remove any events from the queue that are in the - * range of `minType` to `maxType`, inclusive. If you need to remove a single - * event type, use SDL_FlushEvent() instead. - * - * It's also normal to just ignore events you don't care about in your event - * loop without calling this function. - * - * This function only affects currently queued events. If you want to make - * sure that all pending OS events are flushed, you can call SDL_PumpEvents() - * on the main thread immediately before the flush call. - * - * \param minType the low end of event type to be cleared, inclusive; see - * SDL_EventType for details - * \param maxType the high end of event type to be cleared, inclusive; see - * SDL_EventType for details - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FlushEvent - */ -extern DECLSPEC void SDLCALL SDL_FlushEvents(Uint32 minType, Uint32 maxType); - -/** - * Poll for currently pending events. - * - * If `event` is not NULL, the next event is removed from the queue and stored - * in the SDL_Event structure pointed to by `event`. The 1 returned refers to - * this event, immediately stored in the SDL Event structure -- not an event - * to follow. - * - * If `event` is NULL, it simply returns 1 if there is an event in the queue, - * but will not remove it from the queue. - * - * As this function may implicitly call SDL_PumpEvents(), you can only call - * this function in the thread that set the video mode. - * - * SDL_PollEvent() is the favored way of receiving system events since it can - * be done from the main loop and does not suspend the main loop while waiting - * on an event to be posted. - * - * The common practice is to fully process the event queue once every frame, - * usually as a first step before updating the game's state: - * - * ```c - * while (game_is_still_running) { - * SDL_Event event; - * while (SDL_PollEvent(&event)) { // poll until all events are handled! - * // decide what to do with this event. - * } - * - * // update game state, draw the current frame - * } - * ``` - * - * \param event the SDL_Event structure to be filled with the next event from - * the queue, or NULL - * \returns 1 if there is a pending event or 0 if there are none available. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetEventFilter - * \sa SDL_PeepEvents - * \sa SDL_PushEvent - * \sa SDL_SetEventFilter - * \sa SDL_WaitEvent - * \sa SDL_WaitEventTimeout - */ -extern DECLSPEC int SDLCALL SDL_PollEvent(SDL_Event * event); - -/** - * Wait indefinitely for the next available event. - * - * If `event` is not NULL, the next event is removed from the queue and stored - * in the SDL_Event structure pointed to by `event`. - * - * As this function may implicitly call SDL_PumpEvents(), you can only call - * this function in the thread that initialized the video subsystem. - * - * \param event the SDL_Event structure to be filled in with the next event - * from the queue, or NULL - * \returns 1 on success or 0 if there was an error while waiting for events; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PollEvent - * \sa SDL_PumpEvents - * \sa SDL_WaitEventTimeout - */ -extern DECLSPEC int SDLCALL SDL_WaitEvent(SDL_Event * event); - -/** - * Wait until the specified timeout (in milliseconds) for the next available - * event. - * - * If `event` is not NULL, the next event is removed from the queue and stored - * in the SDL_Event structure pointed to by `event`. - * - * As this function may implicitly call SDL_PumpEvents(), you can only call - * this function in the thread that initialized the video subsystem. - * - * \param event the SDL_Event structure to be filled in with the next event - * from the queue, or NULL - * \param timeout the maximum number of milliseconds to wait for the next - * available event - * \returns 1 on success or 0 if there was an error while waiting for events; - * call SDL_GetError() for more information. This also returns 0 if - * the timeout elapsed without an event arriving. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PollEvent - * \sa SDL_PumpEvents - * \sa SDL_WaitEvent - */ -extern DECLSPEC int SDLCALL SDL_WaitEventTimeout(SDL_Event * event, - int timeout); - -/** - * Add an event to the event queue. - * - * The event queue can actually be used as a two way communication channel. - * Not only can events be read from the queue, but the user can also push - * their own events onto it. `event` is a pointer to the event structure you - * wish to push onto the queue. The event is copied into the queue, and the - * caller may dispose of the memory pointed to after SDL_PushEvent() returns. - * - * Note: Pushing device input events onto the queue doesn't modify the state - * of the device within SDL. - * - * This function is thread-safe, and can be called from other threads safely. - * - * Note: Events pushed onto the queue with SDL_PushEvent() get passed through - * the event filter but events added with SDL_PeepEvents() do not. - * - * For pushing application-specific events, please use SDL_RegisterEvents() to - * get an event type that does not conflict with other code that also wants - * its own custom event types. - * - * \param event the SDL_Event to be added to the queue - * \returns 1 on success, 0 if the event was filtered, or a negative error - * code on failure; call SDL_GetError() for more information. A - * common reason for error is the event queue being full. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PeepEvents - * \sa SDL_PollEvent - * \sa SDL_RegisterEvents - */ -extern DECLSPEC int SDLCALL SDL_PushEvent(SDL_Event * event); - -/** - * A function pointer used for callbacks that watch the event queue. - * - * \param userdata what was passed as `userdata` to SDL_SetEventFilter() - * or SDL_AddEventWatch, etc - * \param event the event that triggered the callback - * \returns 1 to permit event to be added to the queue, and 0 to disallow - * it. When used with SDL_AddEventWatch, the return value is ignored. - * - * \sa SDL_SetEventFilter - * \sa SDL_AddEventWatch - */ -typedef int (SDLCALL * SDL_EventFilter) (void *userdata, SDL_Event * event); - -/** - * Set up a filter to process all events before they change internal state and - * are posted to the internal event queue. - * - * If the filter function returns 1 when called, then the event will be added - * to the internal queue. If it returns 0, then the event will be dropped from - * the queue, but the internal state will still be updated. This allows - * selective filtering of dynamically arriving events. - * - * **WARNING**: Be very careful of what you do in the event filter function, - * as it may run in a different thread! - * - * On platforms that support it, if the quit event is generated by an - * interrupt signal (e.g. pressing Ctrl-C), it will be delivered to the - * application at the next event poll. - * - * There is one caveat when dealing with the ::SDL_QuitEvent event type. The - * event filter is only called when the window manager desires to close the - * application window. If the event filter returns 1, then the window will be - * closed, otherwise the window will remain open if possible. - * - * Note: Disabled events never make it to the event filter function; see - * SDL_EventState(). - * - * Note: If you just want to inspect events without filtering, you should use - * SDL_AddEventWatch() instead. - * - * Note: Events pushed onto the queue with SDL_PushEvent() get passed through - * the event filter, but events pushed onto the queue with SDL_PeepEvents() do - * not. - * - * \param filter An SDL_EventFilter function to call when an event happens - * \param userdata a pointer that is passed to `filter` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AddEventWatch - * \sa SDL_EventState - * \sa SDL_GetEventFilter - * \sa SDL_PeepEvents - * \sa SDL_PushEvent - */ -extern DECLSPEC void SDLCALL SDL_SetEventFilter(SDL_EventFilter filter, - void *userdata); - -/** - * Query the current event filter. - * - * This function can be used to "chain" filters, by saving the existing filter - * before replacing it with a function that will call that saved filter. - * - * \param filter the current callback function will be stored here - * \param userdata the pointer that is passed to the current event filter will - * be stored here - * \returns SDL_TRUE on success or SDL_FALSE if there is no event filter set. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetEventFilter - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetEventFilter(SDL_EventFilter * filter, - void **userdata); - -/** - * Add a callback to be triggered when an event is added to the event queue. - * - * `filter` will be called when an event happens, and its return value is - * ignored. - * - * **WARNING**: Be very careful of what you do in the event filter function, - * as it may run in a different thread! - * - * If the quit event is generated by a signal (e.g. SIGINT), it will bypass - * the internal queue and be delivered to the watch callback immediately, and - * arrive at the next event poll. - * - * Note: the callback is called for events posted by the user through - * SDL_PushEvent(), but not for disabled events, nor for events by a filter - * callback set with SDL_SetEventFilter(), nor for events posted by the user - * through SDL_PeepEvents(). - * - * \param filter an SDL_EventFilter function to call when an event happens. - * \param userdata a pointer that is passed to `filter` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DelEventWatch - * \sa SDL_SetEventFilter - */ -extern DECLSPEC void SDLCALL SDL_AddEventWatch(SDL_EventFilter filter, - void *userdata); - -/** - * Remove an event watch callback added with SDL_AddEventWatch(). - * - * This function takes the same input as SDL_AddEventWatch() to identify and - * delete the corresponding callback. - * - * \param filter the function originally passed to SDL_AddEventWatch() - * \param userdata the pointer originally passed to SDL_AddEventWatch() - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AddEventWatch - */ -extern DECLSPEC void SDLCALL SDL_DelEventWatch(SDL_EventFilter filter, - void *userdata); - -/** - * Run a specific filter function on the current event queue, removing any - * events for which the filter returns 0. - * - * See SDL_SetEventFilter() for more information. Unlike SDL_SetEventFilter(), - * this function does not change the filter permanently, it only uses the - * supplied filter until this function returns. - * - * \param filter the SDL_EventFilter function to call when an event happens - * \param userdata a pointer that is passed to `filter` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetEventFilter - * \sa SDL_SetEventFilter - */ -extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter, - void *userdata); - -/* @{ */ -#define SDL_QUERY -1 -#define SDL_IGNORE 0 -#define SDL_DISABLE 0 -#define SDL_ENABLE 1 - -/** - * Set the state of processing events by type. - * - * `state` may be any of the following: - * - * - `SDL_QUERY`: returns the current processing state of the specified event - * - `SDL_IGNORE` (aka `SDL_DISABLE`): the event will automatically be dropped - * from the event queue and will not be filtered - * - `SDL_ENABLE`: the event will be processed normally - * - * \param type the type of event; see SDL_EventType for details - * \param state how to process the event - * \returns `SDL_DISABLE` or `SDL_ENABLE`, representing the processing state - * of the event before this function makes any changes to it. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetEventState - */ -extern DECLSPEC Uint8 SDLCALL SDL_EventState(Uint32 type, int state); -/* @} */ -#define SDL_GetEventState(type) SDL_EventState(type, SDL_QUERY) - -/** - * Allocate a set of user-defined events, and return the beginning event - * number for that set of events. - * - * Calling this function with `numevents` <= 0 is an error and will return - * (Uint32)-1. - * - * Note, (Uint32)-1 means the maximum unsigned 32-bit integer value (or - * 0xFFFFFFFF), but is clearer to write. - * - * \param numevents the number of events to be allocated - * \returns the beginning event number, or (Uint32)-1 if there are not enough - * user-defined events left. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PushEvent - */ -extern DECLSPEC Uint32 SDLCALL SDL_RegisterEvents(int numevents); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_events_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_filesystem.h b/lib/windows/include/SDL_filesystem.h deleted file mode 100644 index 4cad657..0000000 --- a/lib/windows/include/SDL_filesystem.h +++ /dev/null @@ -1,149 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_filesystem.h - * - * \brief Include file for filesystem SDL API functions - */ - -#ifndef SDL_filesystem_h_ -#define SDL_filesystem_h_ - -#include "SDL_stdinc.h" - -#include "begin_code.h" - -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Get the directory where the application was run from. - * - * This is not necessarily a fast call, so you should call this once near - * startup and save the string if you need it. - * - * **Mac OS X and iOS Specific Functionality**: If the application is in a - * ".app" bundle, this function returns the Resource directory (e.g. - * MyApp.app/Contents/Resources/). This behaviour can be overridden by adding - * a property to the Info.plist file. Adding a string key with the name - * SDL_FILESYSTEM_BASE_DIR_TYPE with a supported value will change the - * behaviour. - * - * Supported values for the SDL_FILESYSTEM_BASE_DIR_TYPE property (Given an - * application in /Applications/SDLApp/MyApp.app): - * - * - `resource`: bundle resource directory (the default). For example: - * `/Applications/SDLApp/MyApp.app/Contents/Resources` - * - `bundle`: the Bundle directory. For example: - * `/Applications/SDLApp/MyApp.app/` - * - `parent`: the containing directory of the bundle. For example: - * `/Applications/SDLApp/` - * - * **Nintendo 3DS Specific Functionality**: This function returns "romfs" - * directory of the application as it is uncommon to store resources outside - * the executable. As such it is not a writable directory. - * - * The returned path is guaranteed to end with a path separator ('\' on - * Windows, '/' on most other platforms). - * - * The pointer returned is owned by the caller. Please call SDL_free() on the - * pointer when done with it. - * - * \returns an absolute path in UTF-8 encoding to the application data - * directory. NULL will be returned on error or when the platform - * doesn't implement this functionality, call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.1. - * - * \sa SDL_GetPrefPath - */ -extern DECLSPEC char *SDLCALL SDL_GetBasePath(void); - -/** - * Get the user-and-app-specific path where files can be written. - * - * Get the "pref dir". This is meant to be where users can write personal - * files (preferences and save games, etc) that are specific to your - * application. This directory is unique per user, per application. - * - * This function will decide the appropriate location in the native - * filesystem, create the directory if necessary, and return a string of the - * absolute path to the directory in UTF-8 encoding. - * - * On Windows, the string might look like: - * - * `C:\\Users\\bob\\AppData\\Roaming\\My Company\\My Program Name\\` - * - * On Linux, the string might look like: - * - * `/home/bob/.local/share/My Program Name/` - * - * On Mac OS X, the string might look like: - * - * `/Users/bob/Library/Application Support/My Program Name/` - * - * You should assume the path returned by this function is the only safe place - * to write files (and that SDL_GetBasePath(), while it might be writable, or - * even the parent of the returned path, isn't where you should be writing - * things). - * - * Both the org and app strings may become part of a directory name, so please - * follow these rules: - * - * - Try to use the same org string (_including case-sensitivity_) for all - * your applications that use this function. - * - Always use a unique app string for each one, and make sure it never - * changes for an app once you've decided on it. - * - Unicode characters are legal, as long as it's UTF-8 encoded, but... - * - ...only use letters, numbers, and spaces. Avoid punctuation like "Game - * Name 2: Bad Guy's Revenge!" ... "Game Name 2" is sufficient. - * - * The returned path is guaranteed to end with a path separator ('\' on - * Windows, '/' on most other platforms). - * - * The pointer returned is owned by the caller. Please call SDL_free() on the - * pointer when done with it. - * - * \param org the name of your organization - * \param app the name of your application - * \returns a UTF-8 string of the user directory in platform-dependent - * notation. NULL if there's a problem (creating directory failed, - * etc.). - * - * \since This function is available since SDL 2.0.1. - * - * \sa SDL_GetBasePath - */ -extern DECLSPEC char *SDLCALL SDL_GetPrefPath(const char *org, const char *app); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_filesystem_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_gamecontroller.h b/lib/windows/include/SDL_gamecontroller.h deleted file mode 100644 index 140054d..0000000 --- a/lib/windows/include/SDL_gamecontroller.h +++ /dev/null @@ -1,1074 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_gamecontroller.h - * - * Include file for SDL game controller event handling - */ - -#ifndef SDL_gamecontroller_h_ -#define SDL_gamecontroller_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_rwops.h" -#include "SDL_sensor.h" -#include "SDL_joystick.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file SDL_gamecontroller.h - * - * In order to use these functions, SDL_Init() must have been called - * with the ::SDL_INIT_GAMECONTROLLER flag. This causes SDL to scan the system - * for game controllers, and load appropriate drivers. - * - * If you would like to receive controller updates while the application - * is in the background, you should set the following hint before calling - * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS - */ - -/** - * The gamecontroller structure used to identify an SDL game controller - */ -struct _SDL_GameController; -typedef struct _SDL_GameController SDL_GameController; - -typedef enum -{ - SDL_CONTROLLER_TYPE_UNKNOWN = 0, - SDL_CONTROLLER_TYPE_XBOX360, - SDL_CONTROLLER_TYPE_XBOXONE, - SDL_CONTROLLER_TYPE_PS3, - SDL_CONTROLLER_TYPE_PS4, - SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO, - SDL_CONTROLLER_TYPE_VIRTUAL, - SDL_CONTROLLER_TYPE_PS5, - SDL_CONTROLLER_TYPE_AMAZON_LUNA, - SDL_CONTROLLER_TYPE_GOOGLE_STADIA, - SDL_CONTROLLER_TYPE_NVIDIA_SHIELD, - SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT, - SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT, - SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_PAIR -} SDL_GameControllerType; - -typedef enum -{ - SDL_CONTROLLER_BINDTYPE_NONE = 0, - SDL_CONTROLLER_BINDTYPE_BUTTON, - SDL_CONTROLLER_BINDTYPE_AXIS, - SDL_CONTROLLER_BINDTYPE_HAT -} SDL_GameControllerBindType; - -/** - * Get the SDL joystick layer binding for this controller button/axis mapping - */ -typedef struct SDL_GameControllerButtonBind -{ - SDL_GameControllerBindType bindType; - union - { - int button; - int axis; - struct { - int hat; - int hat_mask; - } hat; - } value; - -} SDL_GameControllerButtonBind; - - -/** - * To count the number of game controllers in the system for the following: - * - * ```c - * int nJoysticks = SDL_NumJoysticks(); - * int nGameControllers = 0; - * for (int i = 0; i < nJoysticks; i++) { - * if (SDL_IsGameController(i)) { - * nGameControllers++; - * } - * } - * ``` - * - * Using the SDL_HINT_GAMECONTROLLERCONFIG hint or the SDL_GameControllerAddMapping() you can add support for controllers SDL is unaware of or cause an existing controller to have a different binding. The format is: - * guid,name,mappings - * - * Where GUID is the string value from SDL_JoystickGetGUIDString(), name is the human readable string for the device and mappings are controller mappings to joystick ones. - * Under Windows there is a reserved GUID of "xinput" that covers any XInput devices. - * The mapping format for joystick is: - * bX - a joystick button, index X - * hX.Y - hat X with value Y - * aX - axis X of the joystick - * Buttons can be used as a controller axis and vice versa. - * - * This string shows an example of a valid mapping for a controller - * - * ```c - * "03000000341a00003608000000000000,PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7", - * ``` - */ - -/** - * Load a set of Game Controller mappings from a seekable SDL data stream. - * - * You can call this function several times, if needed, to load different - * database files. - * - * If a new mapping is loaded for an already known controller GUID, the later - * version will overwrite the one currently loaded. - * - * Mappings not belonging to the current platform or with no platform field - * specified will be ignored (i.e. mappings for Linux will be ignored in - * Windows, etc). - * - * This function will load the text database entirely in memory before - * processing it, so take this into consideration if you are in a memory - * constrained environment. - * - * \param rw the data stream for the mappings to be added - * \param freerw non-zero to close the stream after being read - * \returns the number of mappings added or -1 on error; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_GameControllerAddMapping - * \sa SDL_GameControllerAddMappingsFromFile - * \sa SDL_GameControllerMappingForGUID - */ -extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW(SDL_RWops * rw, int freerw); - -/** - * Load a set of mappings from a file, filtered by the current SDL_GetPlatform() - * - * Convenience macro. - */ -#define SDL_GameControllerAddMappingsFromFile(file) SDL_GameControllerAddMappingsFromRW(SDL_RWFromFile(file, "rb"), 1) - -/** - * Add support for controllers that SDL is unaware of or to cause an existing - * controller to have a different binding. - * - * The mapping string has the format "GUID,name,mapping", where GUID is the - * string value from SDL_JoystickGetGUIDString(), name is the human readable - * string for the device and mappings are controller mappings to joystick - * ones. Under Windows there is a reserved GUID of "xinput" that covers all - * XInput devices. The mapping format for joystick is: {| |bX |a joystick - * button, index X |- |hX.Y |hat X with value Y |- |aX |axis X of the joystick - * |} Buttons can be used as a controller axes and vice versa. - * - * This string shows an example of a valid mapping for a controller: - * - * ```c - * "341a3608000000000000504944564944,Afterglow PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7" - * ``` - * - * \param mappingString the mapping string - * \returns 1 if a new mapping is added, 0 if an existing mapping is updated, - * -1 on error; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerMapping - * \sa SDL_GameControllerMappingForGUID - */ -extern DECLSPEC int SDLCALL SDL_GameControllerAddMapping(const char* mappingString); - -/** - * Get the number of mappings installed. - * - * \returns the number of mappings. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerNumMappings(void); - -/** - * Get the mapping at a particular index. - * - * \returns the mapping string. Must be freed with SDL_free(). Returns NULL if - * the index is out of range. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForIndex(int mapping_index); - -/** - * Get the game controller mapping string for a given GUID. - * - * The returned string must be freed with SDL_free(). - * - * \param guid a structure containing the GUID for which a mapping is desired - * \returns a mapping string or NULL on error; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetDeviceGUID - * \sa SDL_JoystickGetGUID - */ -extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForGUID(SDL_JoystickGUID guid); - -/** - * Get the current mapping of a Game Controller. - * - * The returned string must be freed with SDL_free(). - * - * Details about mappings are discussed with SDL_GameControllerAddMapping(). - * - * \param gamecontroller the game controller you want to get the current - * mapping for - * \returns a string that has the controller's mapping or NULL if no mapping - * is available; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerAddMapping - * \sa SDL_GameControllerMappingForGUID - */ -extern DECLSPEC char * SDLCALL SDL_GameControllerMapping(SDL_GameController *gamecontroller); - -/** - * Check if the given joystick is supported by the game controller interface. - * - * `joystick_index` is the same as the `device_index` passed to - * SDL_JoystickOpen(). - * - * \param joystick_index the device_index of a device, up to - * SDL_NumJoysticks() - * \returns SDL_TRUE if the given joystick is supported by the game controller - * interface, SDL_FALSE if it isn't or it's an invalid index. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerNameForIndex - * \sa SDL_GameControllerOpen - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index); - -/** - * Get the implementation dependent name for the game controller. - * - * This function can be called before any controllers are opened. - * - * `joystick_index` is the same as the `device_index` passed to - * SDL_JoystickOpen(). - * - * \param joystick_index the device_index of a device, from zero to - * SDL_NumJoysticks()-1 - * \returns the implementation-dependent name for the game controller, or NULL - * if there is no name or the index is invalid. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerName - * \sa SDL_GameControllerOpen - * \sa SDL_IsGameController - */ -extern DECLSPEC const char *SDLCALL SDL_GameControllerNameForIndex(int joystick_index); - -/** - * Get the implementation dependent path for the game controller. - * - * This function can be called before any controllers are opened. - * - * `joystick_index` is the same as the `device_index` passed to - * SDL_JoystickOpen(). - * - * \param joystick_index the device_index of a device, from zero to - * SDL_NumJoysticks()-1 - * \returns the implementation-dependent path for the game controller, or NULL - * if there is no path or the index is invalid. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GameControllerPath - */ -extern DECLSPEC const char *SDLCALL SDL_GameControllerPathForIndex(int joystick_index); - -/** - * Get the type of a game controller. - * - * This can be called before any controllers are opened. - * - * \param joystick_index the device_index of a device, from zero to - * SDL_NumJoysticks()-1 - * \returns the controller type. - * - * \since This function is available since SDL 2.0.12. - */ -extern DECLSPEC SDL_GameControllerType SDLCALL SDL_GameControllerTypeForIndex(int joystick_index); - -/** - * Get the mapping of a game controller. - * - * This can be called before any controllers are opened. - * - * \param joystick_index the device_index of a device, from zero to - * SDL_NumJoysticks()-1 - * \returns the mapping string. Must be freed with SDL_free(). Returns NULL if - * no mapping is available. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC char *SDLCALL SDL_GameControllerMappingForDeviceIndex(int joystick_index); - -/** - * Open a game controller for use. - * - * `joystick_index` is the same as the `device_index` passed to - * SDL_JoystickOpen(). - * - * The index passed as an argument refers to the N'th game controller on the - * system. This index is not the value which will identify this controller in - * future controller events. The joystick's instance id (SDL_JoystickID) will - * be used there instead. - * - * \param joystick_index the device_index of a device, up to - * SDL_NumJoysticks() - * \returns a gamecontroller identifier or NULL if an error occurred; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerClose - * \sa SDL_GameControllerNameForIndex - * \sa SDL_IsGameController - */ -extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerOpen(int joystick_index); - -/** - * Get the SDL_GameController associated with an instance id. - * - * \param joyid the instance id to get the SDL_GameController for - * \returns an SDL_GameController on success or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.4. - */ -extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromInstanceID(SDL_JoystickID joyid); - -/** - * Get the SDL_GameController associated with a player index. - * - * Please note that the player index is _not_ the device index, nor is it the - * instance id! - * - * \param player_index the player index, which is not the device index or the - * instance id! - * \returns the SDL_GameController associated with a player index. - * - * \since This function is available since SDL 2.0.12. - * - * \sa SDL_GameControllerGetPlayerIndex - * \sa SDL_GameControllerSetPlayerIndex - */ -extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromPlayerIndex(int player_index); - -/** - * Get the implementation-dependent name for an opened game controller. - * - * This is the same name as returned by SDL_GameControllerNameForIndex(), but - * it takes a controller identifier instead of the (unstable) device index. - * - * \param gamecontroller a game controller identifier previously returned by - * SDL_GameControllerOpen() - * \returns the implementation dependent name for the game controller, or NULL - * if there is no name or the identifier passed is invalid. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerNameForIndex - * \sa SDL_GameControllerOpen - */ -extern DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller); - -/** - * Get the implementation-dependent path for an opened game controller. - * - * This is the same path as returned by SDL_GameControllerNameForIndex(), but - * it takes a controller identifier instead of the (unstable) device index. - * - * \param gamecontroller a game controller identifier previously returned by - * SDL_GameControllerOpen() - * \returns the implementation dependent path for the game controller, or NULL - * if there is no path or the identifier passed is invalid. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GameControllerPathForIndex - */ -extern DECLSPEC const char *SDLCALL SDL_GameControllerPath(SDL_GameController *gamecontroller); - -/** - * Get the type of this currently opened controller - * - * This is the same name as returned by SDL_GameControllerTypeForIndex(), but - * it takes a controller identifier instead of the (unstable) device index. - * - * \param gamecontroller the game controller object to query. - * \returns the controller type. - * - * \since This function is available since SDL 2.0.12. - */ -extern DECLSPEC SDL_GameControllerType SDLCALL SDL_GameControllerGetType(SDL_GameController *gamecontroller); - -/** - * Get the player index of an opened game controller. - * - * For XInput controllers this returns the XInput user index. - * - * \param gamecontroller the game controller object to query. - * \returns the player index for controller, or -1 if it's not available. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerGetPlayerIndex(SDL_GameController *gamecontroller); - -/** - * Set the player index of an opened game controller. - * - * \param gamecontroller the game controller object to adjust. - * \param player_index Player index to assign to this controller, or -1 to - * clear the player index and turn off player LEDs. - * - * \since This function is available since SDL 2.0.12. - */ -extern DECLSPEC void SDLCALL SDL_GameControllerSetPlayerIndex(SDL_GameController *gamecontroller, int player_index); - -/** - * Get the USB vendor ID of an opened controller, if available. - * - * If the vendor ID isn't available this function returns 0. - * - * \param gamecontroller the game controller object to query. - * \return the USB vendor ID, or zero if unavailable. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetVendor(SDL_GameController *gamecontroller); - -/** - * Get the USB product ID of an opened controller, if available. - * - * If the product ID isn't available this function returns 0. - * - * \param gamecontroller the game controller object to query. - * \return the USB product ID, or zero if unavailable. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProduct(SDL_GameController *gamecontroller); - -/** - * Get the product version of an opened controller, if available. - * - * If the product version isn't available this function returns 0. - * - * \param gamecontroller the game controller object to query. - * \return the USB product version, or zero if unavailable. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProductVersion(SDL_GameController *gamecontroller); - -/** - * Get the firmware version of an opened controller, if available. - * - * If the firmware version isn't available this function returns 0. - * - * \param gamecontroller the game controller object to query. - * \return the controller firmware version, or zero if unavailable. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetFirmwareVersion(SDL_GameController *gamecontroller); - -/** - * Get the serial number of an opened controller, if available. - * - * Returns the serial number of the controller, or NULL if it is not - * available. - * - * \param gamecontroller the game controller object to query. - * \return the serial number, or NULL if unavailable. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC const char * SDLCALL SDL_GameControllerGetSerial(SDL_GameController *gamecontroller); - -/** - * Check if a controller has been opened and is currently connected. - * - * \param gamecontroller a game controller identifier previously returned by - * SDL_GameControllerOpen() - * \returns SDL_TRUE if the controller has been opened and is currently - * connected, or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerClose - * \sa SDL_GameControllerOpen - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerGetAttached(SDL_GameController *gamecontroller); - -/** - * Get the Joystick ID from a Game Controller. - * - * This function will give you a SDL_Joystick object, which allows you to use - * the SDL_Joystick functions with a SDL_GameController object. This would be - * useful for getting a joystick's position at any given time, even if it - * hasn't moved (moving it would produce an event, which would have the axis' - * value). - * - * The pointer returned is owned by the SDL_GameController. You should not - * call SDL_JoystickClose() on it, for example, since doing so will likely - * cause SDL to crash. - * - * \param gamecontroller the game controller object that you want to get a - * joystick from - * \returns a SDL_Joystick object; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_Joystick *SDLCALL SDL_GameControllerGetJoystick(SDL_GameController *gamecontroller); - -/** - * Query or change current state of Game Controller events. - * - * If controller events are disabled, you must call SDL_GameControllerUpdate() - * yourself and check the state of the controller when you want controller - * information. - * - * Any number can be passed to SDL_GameControllerEventState(), but only -1, 0, - * and 1 will have any effect. Other numbers will just be returned. - * - * \param state can be one of `SDL_QUERY`, `SDL_IGNORE`, or `SDL_ENABLE` - * \returns the same value passed to the function, with exception to -1 - * (SDL_QUERY), which will return the current state. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickEventState - */ -extern DECLSPEC int SDLCALL SDL_GameControllerEventState(int state); - -/** - * Manually pump game controller updates if not using the loop. - * - * This function is called automatically by the event loop if events are - * enabled. Under such circumstances, it will not be necessary to call this - * function. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_GameControllerUpdate(void); - - -/** - * The list of axes available from a controller - * - * Thumbstick axis values range from SDL_JOYSTICK_AXIS_MIN to SDL_JOYSTICK_AXIS_MAX, - * and are centered within ~8000 of zero, though advanced UI will allow users to set - * or autodetect the dead zone, which varies between controllers. - * - * Trigger axis values range from 0 to SDL_JOYSTICK_AXIS_MAX. - */ -typedef enum -{ - SDL_CONTROLLER_AXIS_INVALID = -1, - SDL_CONTROLLER_AXIS_LEFTX, - SDL_CONTROLLER_AXIS_LEFTY, - SDL_CONTROLLER_AXIS_RIGHTX, - SDL_CONTROLLER_AXIS_RIGHTY, - SDL_CONTROLLER_AXIS_TRIGGERLEFT, - SDL_CONTROLLER_AXIS_TRIGGERRIGHT, - SDL_CONTROLLER_AXIS_MAX -} SDL_GameControllerAxis; - -/** - * Convert a string into SDL_GameControllerAxis enum. - * - * This function is called internally to translate SDL_GameController mapping - * strings for the underlying joystick device into the consistent - * SDL_GameController mapping. You do not normally need to call this function - * unless you are parsing SDL_GameController mappings in your own code. - * - * Note specially that "righttrigger" and "lefttrigger" map to - * `SDL_CONTROLLER_AXIS_TRIGGERRIGHT` and `SDL_CONTROLLER_AXIS_TRIGGERLEFT`, - * respectively. - * - * \param str string representing a SDL_GameController axis - * \returns the SDL_GameControllerAxis enum corresponding to the input string, - * or `SDL_CONTROLLER_AXIS_INVALID` if no match was found. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetStringForAxis - */ -extern DECLSPEC SDL_GameControllerAxis SDLCALL SDL_GameControllerGetAxisFromString(const char *str); - -/** - * Convert from an SDL_GameControllerAxis enum to a string. - * - * The caller should not SDL_free() the returned string. - * - * \param axis an enum value for a given SDL_GameControllerAxis - * \returns a string for the given axis, or NULL if an invalid axis is - * specified. The string returned is of the format used by - * SDL_GameController mapping strings. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetAxisFromString - */ -extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis axis); - -/** - * Get the SDL joystick layer binding for a controller axis mapping. - * - * \param gamecontroller a game controller - * \param axis an axis enum value (one of the SDL_GameControllerAxis values) - * \returns a SDL_GameControllerButtonBind describing the bind. On failure - * (like the given Controller axis doesn't exist on the device), its - * `.bindType` will be `SDL_CONTROLLER_BINDTYPE_NONE`. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetBindForButton - */ -extern DECLSPEC SDL_GameControllerButtonBind SDLCALL -SDL_GameControllerGetBindForAxis(SDL_GameController *gamecontroller, - SDL_GameControllerAxis axis); - -/** - * Query whether a game controller has a given axis. - * - * This merely reports whether the controller's mapping defined this axis, as - * that is all the information SDL has about the physical device. - * - * \param gamecontroller a game controller - * \param axis an axis enum value (an SDL_GameControllerAxis value) - * \returns SDL_TRUE if the controller has this axis, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL -SDL_GameControllerHasAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis); - -/** - * Get the current state of an axis control on a game controller. - * - * The axis indices start at index 0. - * - * The state is a value ranging from -32768 to 32767. Triggers, however, range - * from 0 to 32767 (they never return a negative value). - * - * \param gamecontroller a game controller - * \param axis an axis index (one of the SDL_GameControllerAxis values) - * \returns axis state (including 0) on success or 0 (also) on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetButton - */ -extern DECLSPEC Sint16 SDLCALL -SDL_GameControllerGetAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis); - -/** - * The list of buttons available from a controller - */ -typedef enum -{ - SDL_CONTROLLER_BUTTON_INVALID = -1, - SDL_CONTROLLER_BUTTON_A, - SDL_CONTROLLER_BUTTON_B, - SDL_CONTROLLER_BUTTON_X, - SDL_CONTROLLER_BUTTON_Y, - SDL_CONTROLLER_BUTTON_BACK, - SDL_CONTROLLER_BUTTON_GUIDE, - SDL_CONTROLLER_BUTTON_START, - SDL_CONTROLLER_BUTTON_LEFTSTICK, - SDL_CONTROLLER_BUTTON_RIGHTSTICK, - SDL_CONTROLLER_BUTTON_LEFTSHOULDER, - SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, - SDL_CONTROLLER_BUTTON_DPAD_UP, - SDL_CONTROLLER_BUTTON_DPAD_DOWN, - SDL_CONTROLLER_BUTTON_DPAD_LEFT, - SDL_CONTROLLER_BUTTON_DPAD_RIGHT, - SDL_CONTROLLER_BUTTON_MISC1, /* Xbox Series X share button, PS5 microphone button, Nintendo Switch Pro capture button, Amazon Luna microphone button */ - SDL_CONTROLLER_BUTTON_PADDLE1, /* Xbox Elite paddle P1 (upper left, facing the back) */ - SDL_CONTROLLER_BUTTON_PADDLE2, /* Xbox Elite paddle P3 (upper right, facing the back) */ - SDL_CONTROLLER_BUTTON_PADDLE3, /* Xbox Elite paddle P2 (lower left, facing the back) */ - SDL_CONTROLLER_BUTTON_PADDLE4, /* Xbox Elite paddle P4 (lower right, facing the back) */ - SDL_CONTROLLER_BUTTON_TOUCHPAD, /* PS4/PS5 touchpad button */ - SDL_CONTROLLER_BUTTON_MAX -} SDL_GameControllerButton; - -/** - * Convert a string into an SDL_GameControllerButton enum. - * - * This function is called internally to translate SDL_GameController mapping - * strings for the underlying joystick device into the consistent - * SDL_GameController mapping. You do not normally need to call this function - * unless you are parsing SDL_GameController mappings in your own code. - * - * \param str string representing a SDL_GameController axis - * \returns the SDL_GameControllerButton enum corresponding to the input - * string, or `SDL_CONTROLLER_AXIS_INVALID` if no match was found. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_GameControllerButton SDLCALL SDL_GameControllerGetButtonFromString(const char *str); - -/** - * Convert from an SDL_GameControllerButton enum to a string. - * - * The caller should not SDL_free() the returned string. - * - * \param button an enum value for a given SDL_GameControllerButton - * \returns a string for the given button, or NULL if an invalid button is - * specified. The string returned is of the format used by - * SDL_GameController mapping strings. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetButtonFromString - */ -extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForButton(SDL_GameControllerButton button); - -/** - * Get the SDL joystick layer binding for a controller button mapping. - * - * \param gamecontroller a game controller - * \param button an button enum value (an SDL_GameControllerButton value) - * \returns a SDL_GameControllerButtonBind describing the bind. On failure - * (like the given Controller button doesn't exist on the device), - * its `.bindType` will be `SDL_CONTROLLER_BINDTYPE_NONE`. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetBindForAxis - */ -extern DECLSPEC SDL_GameControllerButtonBind SDLCALL -SDL_GameControllerGetBindForButton(SDL_GameController *gamecontroller, - SDL_GameControllerButton button); - -/** - * Query whether a game controller has a given button. - * - * This merely reports whether the controller's mapping defined this button, - * as that is all the information SDL has about the physical device. - * - * \param gamecontroller a game controller - * \param button a button enum value (an SDL_GameControllerButton value) - * \returns SDL_TRUE if the controller has this button, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasButton(SDL_GameController *gamecontroller, - SDL_GameControllerButton button); - -/** - * Get the current state of a button on a game controller. - * - * \param gamecontroller a game controller - * \param button a button index (one of the SDL_GameControllerButton values) - * \returns 1 for pressed state or 0 for not pressed state or error; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetAxis - */ -extern DECLSPEC Uint8 SDLCALL SDL_GameControllerGetButton(SDL_GameController *gamecontroller, - SDL_GameControllerButton button); - -/** - * Get the number of touchpads on a game controller. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerGetNumTouchpads(SDL_GameController *gamecontroller); - -/** - * Get the number of supported simultaneous fingers on a touchpad on a game - * controller. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerGetNumTouchpadFingers(SDL_GameController *gamecontroller, int touchpad); - -/** - * Get the current state of a finger on a touchpad on a game controller. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerGetTouchpadFinger(SDL_GameController *gamecontroller, int touchpad, int finger, Uint8 *state, float *x, float *y, float *pressure); - -/** - * Return whether a game controller has a particular sensor. - * - * \param gamecontroller The controller to query - * \param type The type of sensor to query - * \returns SDL_TRUE if the sensor exists, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasSensor(SDL_GameController *gamecontroller, SDL_SensorType type); - -/** - * Set whether data reporting for a game controller sensor is enabled. - * - * \param gamecontroller The controller to update - * \param type The type of sensor to enable/disable - * \param enabled Whether data reporting should be enabled - * \returns 0 or -1 if an error occurred. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerSetSensorEnabled(SDL_GameController *gamecontroller, SDL_SensorType type, SDL_bool enabled); - -/** - * Query whether sensor data reporting is enabled for a game controller. - * - * \param gamecontroller The controller to query - * \param type The type of sensor to query - * \returns SDL_TRUE if the sensor is enabled, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerIsSensorEnabled(SDL_GameController *gamecontroller, SDL_SensorType type); - -/** - * Get the data rate (number of events per second) of a game controller - * sensor. - * - * \param gamecontroller The controller to query - * \param type The type of sensor to query - * \return the data rate, or 0.0f if the data rate is not available. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC float SDLCALL SDL_GameControllerGetSensorDataRate(SDL_GameController *gamecontroller, SDL_SensorType type); - -/** - * Get the current state of a game controller sensor. - * - * The number of values and interpretation of the data is sensor dependent. - * See SDL_sensor.h for the details for each type of sensor. - * - * \param gamecontroller The controller to query - * \param type The type of sensor to query - * \param data A pointer filled with the current sensor state - * \param num_values The number of values to write to data - * \return 0 or -1 if an error occurred. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerGetSensorData(SDL_GameController *gamecontroller, SDL_SensorType type, float *data, int num_values); - -/** - * Get the current state of a game controller sensor with the timestamp of the - * last update. - * - * The number of values and interpretation of the data is sensor dependent. - * See SDL_sensor.h for the details for each type of sensor. - * - * \param gamecontroller The controller to query - * \param type The type of sensor to query - * \param timestamp A pointer filled with the timestamp in microseconds of the - * current sensor reading if available, or 0 if not - * \param data A pointer filled with the current sensor state - * \param num_values The number of values to write to data - * \return 0 or -1 if an error occurred. - * - * \since This function is available since SDL 2.26.0. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerGetSensorDataWithTimestamp(SDL_GameController *gamecontroller, SDL_SensorType type, Uint64 *timestamp, float *data, int num_values); - -/** - * Start a rumble effect on a game controller. - * - * Each call to this function cancels any previous rumble effect, and calling - * it with 0 intensity stops any rumbling. - * - * \param gamecontroller The controller to vibrate - * \param low_frequency_rumble The intensity of the low frequency (left) - * rumble motor, from 0 to 0xFFFF - * \param high_frequency_rumble The intensity of the high frequency (right) - * rumble motor, from 0 to 0xFFFF - * \param duration_ms The duration of the rumble effect, in milliseconds - * \returns 0, or -1 if rumble isn't supported on this controller - * - * \since This function is available since SDL 2.0.9. - * - * \sa SDL_GameControllerHasRumble - */ -extern DECLSPEC int SDLCALL SDL_GameControllerRumble(SDL_GameController *gamecontroller, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble, Uint32 duration_ms); - -/** - * Start a rumble effect in the game controller's triggers. - * - * Each call to this function cancels any previous trigger rumble effect, and - * calling it with 0 intensity stops any rumbling. - * - * Note that this is rumbling of the _triggers_ and not the game controller as - * a whole. This is currently only supported on Xbox One controllers. If you - * want the (more common) whole-controller rumble, use - * SDL_GameControllerRumble() instead. - * - * \param gamecontroller The controller to vibrate - * \param left_rumble The intensity of the left trigger rumble motor, from 0 - * to 0xFFFF - * \param right_rumble The intensity of the right trigger rumble motor, from 0 - * to 0xFFFF - * \param duration_ms The duration of the rumble effect, in milliseconds - * \returns 0, or -1 if trigger rumble isn't supported on this controller - * - * \since This function is available since SDL 2.0.14. - * - * \sa SDL_GameControllerHasRumbleTriggers - */ -extern DECLSPEC int SDLCALL SDL_GameControllerRumbleTriggers(SDL_GameController *gamecontroller, Uint16 left_rumble, Uint16 right_rumble, Uint32 duration_ms); - -/** - * Query whether a game controller has an LED. - * - * \param gamecontroller The controller to query - * \returns SDL_TRUE, or SDL_FALSE if this controller does not have a - * modifiable LED - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasLED(SDL_GameController *gamecontroller); - -/** - * Query whether a game controller has rumble support. - * - * \param gamecontroller The controller to query - * \returns SDL_TRUE, or SDL_FALSE if this controller does not have rumble - * support - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_GameControllerRumble - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasRumble(SDL_GameController *gamecontroller); - -/** - * Query whether a game controller has rumble support on triggers. - * - * \param gamecontroller The controller to query - * \returns SDL_TRUE, or SDL_FALSE if this controller does not have trigger - * rumble support - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_GameControllerRumbleTriggers - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasRumbleTriggers(SDL_GameController *gamecontroller); - -/** - * Update a game controller's LED color. - * - * \param gamecontroller The controller to update - * \param red The intensity of the red LED - * \param green The intensity of the green LED - * \param blue The intensity of the blue LED - * \returns 0, or -1 if this controller does not have a modifiable LED - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerSetLED(SDL_GameController *gamecontroller, Uint8 red, Uint8 green, Uint8 blue); - -/** - * Send a controller specific effect packet - * - * \param gamecontroller The controller to affect - * \param data The data to send to the controller - * \param size The size of the data to send to the controller - * \returns 0, or -1 if this controller or driver doesn't support effect - * packets - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerSendEffect(SDL_GameController *gamecontroller, const void *data, int size); - -/** - * Close a game controller previously opened with SDL_GameControllerOpen(). - * - * \param gamecontroller a game controller identifier previously returned by - * SDL_GameControllerOpen() - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerOpen - */ -extern DECLSPEC void SDLCALL SDL_GameControllerClose(SDL_GameController *gamecontroller); - -/** - * Return the sfSymbolsName for a given button on a game controller on Apple - * platforms. - * - * \param gamecontroller the controller to query - * \param button a button on the game controller - * \returns the sfSymbolsName or NULL if the name can't be found - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_GameControllerGetAppleSFSymbolsNameForAxis - */ -extern DECLSPEC const char* SDLCALL SDL_GameControllerGetAppleSFSymbolsNameForButton(SDL_GameController *gamecontroller, SDL_GameControllerButton button); - -/** - * Return the sfSymbolsName for a given axis on a game controller on Apple - * platforms. - * - * \param gamecontroller the controller to query - * \param axis an axis on the game controller - * \returns the sfSymbolsName or NULL if the name can't be found - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_GameControllerGetAppleSFSymbolsNameForButton - */ -extern DECLSPEC const char* SDLCALL SDL_GameControllerGetAppleSFSymbolsNameForAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_gamecontroller_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_gesture.h b/lib/windows/include/SDL_gesture.h deleted file mode 100644 index db70b4d..0000000 --- a/lib/windows/include/SDL_gesture.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_gesture.h - * - * Include file for SDL gesture event handling. - */ - -#ifndef SDL_gesture_h_ -#define SDL_gesture_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_video.h" - -#include "SDL_touch.h" - - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -typedef Sint64 SDL_GestureID; - -/* Function prototypes */ - -/** - * Begin recording a gesture on a specified touch device or all touch devices. - * - * If the parameter `touchId` is -1 (i.e., all devices), this function will - * always return 1, regardless of whether there actually are any devices. - * - * \param touchId the touch device id, or -1 for all touch devices - * \returns 1 on success or 0 if the specified device could not be found. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTouchDevice - */ -extern DECLSPEC int SDLCALL SDL_RecordGesture(SDL_TouchID touchId); - - -/** - * Save all currently loaded Dollar Gesture templates. - * - * \param dst a SDL_RWops to save to - * \returns the number of saved templates on success or 0 on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadDollarTemplates - * \sa SDL_SaveDollarTemplate - */ -extern DECLSPEC int SDLCALL SDL_SaveAllDollarTemplates(SDL_RWops *dst); - -/** - * Save a currently loaded Dollar Gesture template. - * - * \param gestureId a gesture id - * \param dst a SDL_RWops to save to - * \returns 1 on success or 0 on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadDollarTemplates - * \sa SDL_SaveAllDollarTemplates - */ -extern DECLSPEC int SDLCALL SDL_SaveDollarTemplate(SDL_GestureID gestureId,SDL_RWops *dst); - - -/** - * Load Dollar Gesture templates from a file. - * - * \param touchId a touch id - * \param src a SDL_RWops to load from - * \returns the number of loaded templates on success or a negative error code - * (or 0) on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SaveAllDollarTemplates - * \sa SDL_SaveDollarTemplate - */ -extern DECLSPEC int SDLCALL SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWops *src); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_gesture_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_guid.h b/lib/windows/include/SDL_guid.h deleted file mode 100644 index d964223..0000000 --- a/lib/windows/include/SDL_guid.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_guid.h - * - * Include file for handling ::SDL_GUID values. - */ - -#ifndef SDL_guid_h_ -#define SDL_guid_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * An SDL_GUID is a 128-bit identifier for an input device that - * identifies that device across runs of SDL programs on the same - * platform. If the device is detached and then re-attached to a - * different port, or if the base system is rebooted, the device - * should still report the same GUID. - * - * GUIDs are as precise as possible but are not guaranteed to - * distinguish physically distinct but equivalent devices. For - * example, two game controllers from the same vendor with the same - * product ID and revision may have the same GUID. - * - * GUIDs may be platform-dependent (i.e., the same device may report - * different GUIDs on different operating systems). - */ -typedef struct { - Uint8 data[16]; -} SDL_GUID; - -/* Function prototypes */ - -/** - * Get an ASCII string representation for a given ::SDL_GUID. - * - * You should supply at least 33 bytes for pszGUID. - * - * \param guid the ::SDL_GUID you wish to convert to string - * \param pszGUID buffer in which to write the ASCII string - * \param cbGUID the size of pszGUID - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GUIDFromString - */ -extern DECLSPEC void SDLCALL SDL_GUIDToString(SDL_GUID guid, char *pszGUID, int cbGUID); - -/** - * Convert a GUID string into a ::SDL_GUID structure. - * - * Performs no error checking. If this function is given a string containing - * an invalid GUID, the function will silently succeed, but the GUID generated - * will not be useful. - * - * \param pchGUID string containing an ASCII representation of a GUID - * \returns a ::SDL_GUID structure. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GUIDToString - */ -extern DECLSPEC SDL_GUID SDLCALL SDL_GUIDFromString(const char *pchGUID); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_guid_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_haptic.h b/lib/windows/include/SDL_haptic.h deleted file mode 100644 index 2462a1e..0000000 --- a/lib/windows/include/SDL_haptic.h +++ /dev/null @@ -1,1341 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_haptic.h - * - * \brief The SDL haptic subsystem allows you to control haptic (force feedback) - * devices. - * - * The basic usage is as follows: - * - Initialize the subsystem (::SDL_INIT_HAPTIC). - * - Open a haptic device. - * - SDL_HapticOpen() to open from index. - * - SDL_HapticOpenFromJoystick() to open from an existing joystick. - * - Create an effect (::SDL_HapticEffect). - * - Upload the effect with SDL_HapticNewEffect(). - * - Run the effect with SDL_HapticRunEffect(). - * - (optional) Free the effect with SDL_HapticDestroyEffect(). - * - Close the haptic device with SDL_HapticClose(). - * - * \par Simple rumble example: - * \code - * SDL_Haptic *haptic; - * - * // Open the device - * haptic = SDL_HapticOpen( 0 ); - * if (haptic == NULL) - * return -1; - * - * // Initialize simple rumble - * if (SDL_HapticRumbleInit( haptic ) != 0) - * return -1; - * - * // Play effect at 50% strength for 2 seconds - * if (SDL_HapticRumblePlay( haptic, 0.5, 2000 ) != 0) - * return -1; - * SDL_Delay( 2000 ); - * - * // Clean up - * SDL_HapticClose( haptic ); - * \endcode - * - * \par Complete example: - * \code - * int test_haptic( SDL_Joystick * joystick ) { - * SDL_Haptic *haptic; - * SDL_HapticEffect effect; - * int effect_id; - * - * // Open the device - * haptic = SDL_HapticOpenFromJoystick( joystick ); - * if (haptic == NULL) return -1; // Most likely joystick isn't haptic - * - * // See if it can do sine waves - * if ((SDL_HapticQuery(haptic) & SDL_HAPTIC_SINE)==0) { - * SDL_HapticClose(haptic); // No sine effect - * return -1; - * } - * - * // Create the effect - * SDL_memset( &effect, 0, sizeof(SDL_HapticEffect) ); // 0 is safe default - * effect.type = SDL_HAPTIC_SINE; - * effect.periodic.direction.type = SDL_HAPTIC_POLAR; // Polar coordinates - * effect.periodic.direction.dir[0] = 18000; // Force comes from south - * effect.periodic.period = 1000; // 1000 ms - * effect.periodic.magnitude = 20000; // 20000/32767 strength - * effect.periodic.length = 5000; // 5 seconds long - * effect.periodic.attack_length = 1000; // Takes 1 second to get max strength - * effect.periodic.fade_length = 1000; // Takes 1 second to fade away - * - * // Upload the effect - * effect_id = SDL_HapticNewEffect( haptic, &effect ); - * - * // Test the effect - * SDL_HapticRunEffect( haptic, effect_id, 1 ); - * SDL_Delay( 5000); // Wait for the effect to finish - * - * // We destroy the effect, although closing the device also does this - * SDL_HapticDestroyEffect( haptic, effect_id ); - * - * // Close the device - * SDL_HapticClose(haptic); - * - * return 0; // Success - * } - * \endcode - */ - -#ifndef SDL_haptic_h_ -#define SDL_haptic_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_joystick.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* FIXME: For SDL 2.1, adjust all the magnitude variables to be Uint16 (0xFFFF). - * - * At the moment the magnitude variables are mixed between signed/unsigned, and - * it is also not made clear that ALL of those variables expect a max of 0x7FFF. - * - * Some platforms may have higher precision than that (Linux FF, Windows XInput) - * so we should fix the inconsistency in favor of higher possible precision, - * adjusting for platforms that use different scales. - * -flibit - */ - -/** - * \typedef SDL_Haptic - * - * \brief The haptic structure used to identify an SDL haptic. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticOpenFromJoystick - * \sa SDL_HapticClose - */ -struct _SDL_Haptic; -typedef struct _SDL_Haptic SDL_Haptic; - - -/** - * \name Haptic features - * - * Different haptic features a device can have. - */ -/* @{ */ - -/** - * \name Haptic effects - */ -/* @{ */ - -/** - * \brief Constant effect supported. - * - * Constant haptic effect. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_CONSTANT (1u<<0) - -/** - * \brief Sine wave effect supported. - * - * Periodic haptic effect that simulates sine waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SINE (1u<<1) - -/** - * \brief Left/Right effect supported. - * - * Haptic effect for direct control over high/low frequency motors. - * - * \sa SDL_HapticLeftRight - * \warning this value was SDL_HAPTIC_SQUARE right before 2.0.0 shipped. Sorry, - * we ran out of bits, and this is important for XInput devices. - */ -#define SDL_HAPTIC_LEFTRIGHT (1u<<2) - -/* !!! FIXME: put this back when we have more bits in 2.1 */ -/* #define SDL_HAPTIC_SQUARE (1<<2) */ - -/** - * \brief Triangle wave effect supported. - * - * Periodic haptic effect that simulates triangular waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_TRIANGLE (1u<<3) - -/** - * \brief Sawtoothup wave effect supported. - * - * Periodic haptic effect that simulates saw tooth up waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SAWTOOTHUP (1u<<4) - -/** - * \brief Sawtoothdown wave effect supported. - * - * Periodic haptic effect that simulates saw tooth down waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SAWTOOTHDOWN (1u<<5) - -/** - * \brief Ramp effect supported. - * - * Ramp haptic effect. - * - * \sa SDL_HapticRamp - */ -#define SDL_HAPTIC_RAMP (1u<<6) - -/** - * \brief Spring effect supported - uses axes position. - * - * Condition haptic effect that simulates a spring. Effect is based on the - * axes position. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_SPRING (1u<<7) - -/** - * \brief Damper effect supported - uses axes velocity. - * - * Condition haptic effect that simulates dampening. Effect is based on the - * axes velocity. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_DAMPER (1u<<8) - -/** - * \brief Inertia effect supported - uses axes acceleration. - * - * Condition haptic effect that simulates inertia. Effect is based on the axes - * acceleration. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_INERTIA (1u<<9) - -/** - * \brief Friction effect supported - uses axes movement. - * - * Condition haptic effect that simulates friction. Effect is based on the - * axes movement. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_FRICTION (1u<<10) - -/** - * \brief Custom effect is supported. - * - * User defined custom haptic effect. - */ -#define SDL_HAPTIC_CUSTOM (1u<<11) - -/* @} *//* Haptic effects */ - -/* These last few are features the device has, not effects */ - -/** - * \brief Device can set global gain. - * - * Device supports setting the global gain. - * - * \sa SDL_HapticSetGain - */ -#define SDL_HAPTIC_GAIN (1u<<12) - -/** - * \brief Device can set autocenter. - * - * Device supports setting autocenter. - * - * \sa SDL_HapticSetAutocenter - */ -#define SDL_HAPTIC_AUTOCENTER (1u<<13) - -/** - * \brief Device can be queried for effect status. - * - * Device supports querying effect status. - * - * \sa SDL_HapticGetEffectStatus - */ -#define SDL_HAPTIC_STATUS (1u<<14) - -/** - * \brief Device can be paused. - * - * Devices supports being paused. - * - * \sa SDL_HapticPause - * \sa SDL_HapticUnpause - */ -#define SDL_HAPTIC_PAUSE (1u<<15) - - -/** - * \name Direction encodings - */ -/* @{ */ - -/** - * \brief Uses polar coordinates for the direction. - * - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_POLAR 0 - -/** - * \brief Uses cartesian coordinates for the direction. - * - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_CARTESIAN 1 - -/** - * \brief Uses spherical coordinates for the direction. - * - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_SPHERICAL 2 - -/** - * \brief Use this value to play an effect on the steering wheel axis. This - * provides better compatibility across platforms and devices as SDL will guess - * the correct axis. - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_STEERING_AXIS 3 - -/* @} *//* Direction encodings */ - -/* @} *//* Haptic features */ - -/* - * Misc defines. - */ - -/** - * \brief Used to play a device an infinite number of times. - * - * \sa SDL_HapticRunEffect - */ -#define SDL_HAPTIC_INFINITY 4294967295U - - -/** - * \brief Structure that represents a haptic direction. - * - * This is the direction where the force comes from, - * instead of the direction in which the force is exerted. - * - * Directions can be specified by: - * - ::SDL_HAPTIC_POLAR : Specified by polar coordinates. - * - ::SDL_HAPTIC_CARTESIAN : Specified by cartesian coordinates. - * - ::SDL_HAPTIC_SPHERICAL : Specified by spherical coordinates. - * - * Cardinal directions of the haptic device are relative to the positioning - * of the device. North is considered to be away from the user. - * - * The following diagram represents the cardinal directions: - * \verbatim - .--. - |__| .-------. - |=.| |.-----.| - |--| || || - | | |'-----'| - |__|~')_____(' - [ COMPUTER ] - - - North (0,-1) - ^ - | - | - (-1,0) West <----[ HAPTIC ]----> East (1,0) - | - | - v - South (0,1) - - - [ USER ] - \|||/ - (o o) - ---ooO-(_)-Ooo--- - \endverbatim - * - * If type is ::SDL_HAPTIC_POLAR, direction is encoded by hundredths of a - * degree starting north and turning clockwise. ::SDL_HAPTIC_POLAR only uses - * the first \c dir parameter. The cardinal directions would be: - * - North: 0 (0 degrees) - * - East: 9000 (90 degrees) - * - South: 18000 (180 degrees) - * - West: 27000 (270 degrees) - * - * If type is ::SDL_HAPTIC_CARTESIAN, direction is encoded by three positions - * (X axis, Y axis and Z axis (with 3 axes)). ::SDL_HAPTIC_CARTESIAN uses - * the first three \c dir parameters. The cardinal directions would be: - * - North: 0,-1, 0 - * - East: 1, 0, 0 - * - South: 0, 1, 0 - * - West: -1, 0, 0 - * - * The Z axis represents the height of the effect if supported, otherwise - * it's unused. In cartesian encoding (1, 2) would be the same as (2, 4), you - * can use any multiple you want, only the direction matters. - * - * If type is ::SDL_HAPTIC_SPHERICAL, direction is encoded by two rotations. - * The first two \c dir parameters are used. The \c dir parameters are as - * follows (all values are in hundredths of degrees): - * - Degrees from (1, 0) rotated towards (0, 1). - * - Degrees towards (0, 0, 1) (device needs at least 3 axes). - * - * - * Example of force coming from the south with all encodings (force coming - * from the south means the user will have to pull the stick to counteract): - * \code - * SDL_HapticDirection direction; - * - * // Cartesian directions - * direction.type = SDL_HAPTIC_CARTESIAN; // Using cartesian direction encoding. - * direction.dir[0] = 0; // X position - * direction.dir[1] = 1; // Y position - * // Assuming the device has 2 axes, we don't need to specify third parameter. - * - * // Polar directions - * direction.type = SDL_HAPTIC_POLAR; // We'll be using polar direction encoding. - * direction.dir[0] = 18000; // Polar only uses first parameter - * - * // Spherical coordinates - * direction.type = SDL_HAPTIC_SPHERICAL; // Spherical encoding - * direction.dir[0] = 9000; // Since we only have two axes we don't need more parameters. - * \endcode - * - * \sa SDL_HAPTIC_POLAR - * \sa SDL_HAPTIC_CARTESIAN - * \sa SDL_HAPTIC_SPHERICAL - * \sa SDL_HAPTIC_STEERING_AXIS - * \sa SDL_HapticEffect - * \sa SDL_HapticNumAxes - */ -typedef struct SDL_HapticDirection -{ - Uint8 type; /**< The type of encoding. */ - Sint32 dir[3]; /**< The encoded direction. */ -} SDL_HapticDirection; - - -/** - * \brief A structure containing a template for a Constant effect. - * - * This struct is exclusively for the ::SDL_HAPTIC_CONSTANT effect. - * - * A constant effect applies a constant force in the specified direction - * to the joystick. - * - * \sa SDL_HAPTIC_CONSTANT - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticConstant -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_CONSTANT */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Constant */ - Sint16 level; /**< Strength of the constant effect. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticConstant; - -/** - * \brief A structure containing a template for a Periodic effect. - * - * The struct handles the following effects: - * - ::SDL_HAPTIC_SINE - * - ::SDL_HAPTIC_LEFTRIGHT - * - ::SDL_HAPTIC_TRIANGLE - * - ::SDL_HAPTIC_SAWTOOTHUP - * - ::SDL_HAPTIC_SAWTOOTHDOWN - * - * A periodic effect consists in a wave-shaped effect that repeats itself - * over time. The type determines the shape of the wave and the parameters - * determine the dimensions of the wave. - * - * Phase is given by hundredth of a degree meaning that giving the phase a value - * of 9000 will displace it 25% of its period. Here are sample values: - * - 0: No phase displacement. - * - 9000: Displaced 25% of its period. - * - 18000: Displaced 50% of its period. - * - 27000: Displaced 75% of its period. - * - 36000: Displaced 100% of its period, same as 0, but 0 is preferred. - * - * Examples: - * \verbatim - SDL_HAPTIC_SINE - __ __ __ __ - / \ / \ / \ / - / \__/ \__/ \__/ - - SDL_HAPTIC_SQUARE - __ __ __ __ __ - | | | | | | | | | | - | |__| |__| |__| |__| | - - SDL_HAPTIC_TRIANGLE - /\ /\ /\ /\ /\ - / \ / \ / \ / \ / - / \/ \/ \/ \/ - - SDL_HAPTIC_SAWTOOTHUP - /| /| /| /| /| /| /| - / | / | / | / | / | / | / | - / |/ |/ |/ |/ |/ |/ | - - SDL_HAPTIC_SAWTOOTHDOWN - \ |\ |\ |\ |\ |\ |\ | - \ | \ | \ | \ | \ | \ | \ | - \| \| \| \| \| \| \| - \endverbatim - * - * \sa SDL_HAPTIC_SINE - * \sa SDL_HAPTIC_LEFTRIGHT - * \sa SDL_HAPTIC_TRIANGLE - * \sa SDL_HAPTIC_SAWTOOTHUP - * \sa SDL_HAPTIC_SAWTOOTHDOWN - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticPeriodic -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_SINE, ::SDL_HAPTIC_LEFTRIGHT, - ::SDL_HAPTIC_TRIANGLE, ::SDL_HAPTIC_SAWTOOTHUP or - ::SDL_HAPTIC_SAWTOOTHDOWN */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Periodic */ - Uint16 period; /**< Period of the wave. */ - Sint16 magnitude; /**< Peak value; if negative, equivalent to 180 degrees extra phase shift. */ - Sint16 offset; /**< Mean value of the wave. */ - Uint16 phase; /**< Positive phase shift given by hundredth of a degree. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticPeriodic; - -/** - * \brief A structure containing a template for a Condition effect. - * - * The struct handles the following effects: - * - ::SDL_HAPTIC_SPRING: Effect based on axes position. - * - ::SDL_HAPTIC_DAMPER: Effect based on axes velocity. - * - ::SDL_HAPTIC_INERTIA: Effect based on axes acceleration. - * - ::SDL_HAPTIC_FRICTION: Effect based on axes movement. - * - * Direction is handled by condition internals instead of a direction member. - * The condition effect specific members have three parameters. The first - * refers to the X axis, the second refers to the Y axis and the third - * refers to the Z axis. The right terms refer to the positive side of the - * axis and the left terms refer to the negative side of the axis. Please - * refer to the ::SDL_HapticDirection diagram for which side is positive and - * which is negative. - * - * \sa SDL_HapticDirection - * \sa SDL_HAPTIC_SPRING - * \sa SDL_HAPTIC_DAMPER - * \sa SDL_HAPTIC_INERTIA - * \sa SDL_HAPTIC_FRICTION - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticCondition -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_SPRING, ::SDL_HAPTIC_DAMPER, - ::SDL_HAPTIC_INERTIA or ::SDL_HAPTIC_FRICTION */ - SDL_HapticDirection direction; /**< Direction of the effect - Not used ATM. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Condition */ - Uint16 right_sat[3]; /**< Level when joystick is to the positive side; max 0xFFFF. */ - Uint16 left_sat[3]; /**< Level when joystick is to the negative side; max 0xFFFF. */ - Sint16 right_coeff[3]; /**< How fast to increase the force towards the positive side. */ - Sint16 left_coeff[3]; /**< How fast to increase the force towards the negative side. */ - Uint16 deadband[3]; /**< Size of the dead zone; max 0xFFFF: whole axis-range when 0-centered. */ - Sint16 center[3]; /**< Position of the dead zone. */ -} SDL_HapticCondition; - -/** - * \brief A structure containing a template for a Ramp effect. - * - * This struct is exclusively for the ::SDL_HAPTIC_RAMP effect. - * - * The ramp effect starts at start strength and ends at end strength. - * It augments in linear fashion. If you use attack and fade with a ramp - * the effects get added to the ramp effect making the effect become - * quadratic instead of linear. - * - * \sa SDL_HAPTIC_RAMP - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticRamp -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_RAMP */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Ramp */ - Sint16 start; /**< Beginning strength level. */ - Sint16 end; /**< Ending strength level. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticRamp; - -/** - * \brief A structure containing a template for a Left/Right effect. - * - * This struct is exclusively for the ::SDL_HAPTIC_LEFTRIGHT effect. - * - * The Left/Right effect is used to explicitly control the large and small - * motors, commonly found in modern game controllers. The small (right) motor - * is high frequency, and the large (left) motor is low frequency. - * - * \sa SDL_HAPTIC_LEFTRIGHT - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticLeftRight -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_LEFTRIGHT */ - - /* Replay */ - Uint32 length; /**< Duration of the effect in milliseconds. */ - - /* Rumble */ - Uint16 large_magnitude; /**< Control of the large controller motor. */ - Uint16 small_magnitude; /**< Control of the small controller motor. */ -} SDL_HapticLeftRight; - -/** - * \brief A structure containing a template for the ::SDL_HAPTIC_CUSTOM effect. - * - * This struct is exclusively for the ::SDL_HAPTIC_CUSTOM effect. - * - * A custom force feedback effect is much like a periodic effect, where the - * application can define its exact shape. You will have to allocate the - * data yourself. Data should consist of channels * samples Uint16 samples. - * - * If channels is one, the effect is rotated using the defined direction. - * Otherwise it uses the samples in data for the different axes. - * - * \sa SDL_HAPTIC_CUSTOM - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticCustom -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_CUSTOM */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Custom */ - Uint8 channels; /**< Axes to use, minimum of one. */ - Uint16 period; /**< Sample periods. */ - Uint16 samples; /**< Amount of samples. */ - Uint16 *data; /**< Should contain channels*samples items. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticCustom; - -/** - * \brief The generic template for any haptic effect. - * - * All values max at 32767 (0x7FFF). Signed values also can be negative. - * Time values unless specified otherwise are in milliseconds. - * - * You can also pass ::SDL_HAPTIC_INFINITY to length instead of a 0-32767 - * value. Neither delay, interval, attack_length nor fade_length support - * ::SDL_HAPTIC_INFINITY. Fade will also not be used since effect never ends. - * - * Additionally, the ::SDL_HAPTIC_RAMP effect does not support a duration of - * ::SDL_HAPTIC_INFINITY. - * - * Button triggers may not be supported on all devices, it is advised to not - * use them if possible. Buttons start at index 1 instead of index 0 like - * the joystick. - * - * If both attack_length and fade_level are 0, the envelope is not used, - * otherwise both values are used. - * - * Common parts: - * \code - * // Replay - All effects have this - * Uint32 length; // Duration of effect (ms). - * Uint16 delay; // Delay before starting effect. - * - * // Trigger - All effects have this - * Uint16 button; // Button that triggers effect. - * Uint16 interval; // How soon before effect can be triggered again. - * - * // Envelope - All effects except condition effects have this - * Uint16 attack_length; // Duration of the attack (ms). - * Uint16 attack_level; // Level at the start of the attack. - * Uint16 fade_length; // Duration of the fade out (ms). - * Uint16 fade_level; // Level at the end of the fade. - * \endcode - * - * - * Here we have an example of a constant effect evolution in time: - * \verbatim - Strength - ^ - | - | effect level --> _________________ - | / \ - | / \ - | / \ - | / \ - | attack_level --> | \ - | | | <--- fade_level - | - +--------------------------------------------------> Time - [--] [---] - attack_length fade_length - - [------------------][-----------------------] - delay length - \endverbatim - * - * Note either the attack_level or the fade_level may be above the actual - * effect level. - * - * \sa SDL_HapticConstant - * \sa SDL_HapticPeriodic - * \sa SDL_HapticCondition - * \sa SDL_HapticRamp - * \sa SDL_HapticLeftRight - * \sa SDL_HapticCustom - */ -typedef union SDL_HapticEffect -{ - /* Common for all force feedback effects */ - Uint16 type; /**< Effect type. */ - SDL_HapticConstant constant; /**< Constant effect. */ - SDL_HapticPeriodic periodic; /**< Periodic effect. */ - SDL_HapticCondition condition; /**< Condition effect. */ - SDL_HapticRamp ramp; /**< Ramp effect. */ - SDL_HapticLeftRight leftright; /**< Left/Right effect. */ - SDL_HapticCustom custom; /**< Custom effect. */ -} SDL_HapticEffect; - - -/* Function prototypes */ - -/** - * Count the number of haptic devices attached to the system. - * - * \returns the number of haptic devices detected on the system or a negative - * error code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticName - */ -extern DECLSPEC int SDLCALL SDL_NumHaptics(void); - -/** - * Get the implementation dependent name of a haptic device. - * - * This can be called before any joysticks are opened. If no name can be - * found, this function returns NULL. - * - * \param device_index index of the device to query. - * \returns the name of the device or NULL on failure; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_NumHaptics - */ -extern DECLSPEC const char *SDLCALL SDL_HapticName(int device_index); - -/** - * Open a haptic device for use. - * - * The index passed as an argument refers to the N'th haptic device on this - * system. - * - * When opening a haptic device, its gain will be set to maximum and - * autocenter will be disabled. To modify these values use SDL_HapticSetGain() - * and SDL_HapticSetAutocenter(). - * - * \param device_index index of the device to open - * \returns the device identifier or NULL on failure; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticClose - * \sa SDL_HapticIndex - * \sa SDL_HapticOpenFromJoystick - * \sa SDL_HapticOpenFromMouse - * \sa SDL_HapticPause - * \sa SDL_HapticSetAutocenter - * \sa SDL_HapticSetGain - * \sa SDL_HapticStopAll - */ -extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpen(int device_index); - -/** - * Check if the haptic device at the designated index has been opened. - * - * \param device_index the index of the device to query - * \returns 1 if it has been opened, 0 if it hasn't or on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticIndex - * \sa SDL_HapticOpen - */ -extern DECLSPEC int SDLCALL SDL_HapticOpened(int device_index); - -/** - * Get the index of a haptic device. - * - * \param haptic the SDL_Haptic device to query - * \returns the index of the specified haptic device or a negative error code - * on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticOpened - */ -extern DECLSPEC int SDLCALL SDL_HapticIndex(SDL_Haptic * haptic); - -/** - * Query whether or not the current mouse has haptic capabilities. - * - * \returns SDL_TRUE if the mouse is haptic or SDL_FALSE if it isn't. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticOpenFromMouse - */ -extern DECLSPEC int SDLCALL SDL_MouseIsHaptic(void); - -/** - * Try to open a haptic device from the current mouse. - * - * \returns the haptic device identifier or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticOpen - * \sa SDL_MouseIsHaptic - */ -extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromMouse(void); - -/** - * Query if a joystick has haptic features. - * - * \param joystick the SDL_Joystick to test for haptic capabilities - * \returns SDL_TRUE if the joystick is haptic, SDL_FALSE if it isn't, or a - * negative error code on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticOpenFromJoystick - */ -extern DECLSPEC int SDLCALL SDL_JoystickIsHaptic(SDL_Joystick * joystick); - -/** - * Open a haptic device for use from a joystick device. - * - * You must still close the haptic device separately. It will not be closed - * with the joystick. - * - * When opened from a joystick you should first close the haptic device before - * closing the joystick device. If not, on some implementations the haptic - * device will also get unallocated and you'll be unable to use force feedback - * on that device. - * - * \param joystick the SDL_Joystick to create a haptic device from - * \returns a valid haptic device identifier on success or NULL on failure; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticClose - * \sa SDL_HapticOpen - * \sa SDL_JoystickIsHaptic - */ -extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromJoystick(SDL_Joystick * - joystick); - -/** - * Close a haptic device previously opened with SDL_HapticOpen(). - * - * \param haptic the SDL_Haptic device to close - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticOpen - */ -extern DECLSPEC void SDLCALL SDL_HapticClose(SDL_Haptic * haptic); - -/** - * Get the number of effects a haptic device can store. - * - * On some platforms this isn't fully supported, and therefore is an - * approximation. Always check to see if your created effect was actually - * created and do not rely solely on SDL_HapticNumEffects(). - * - * \param haptic the SDL_Haptic device to query - * \returns the number of effects the haptic device can store or a negative - * error code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticNumEffectsPlaying - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticNumEffects(SDL_Haptic * haptic); - -/** - * Get the number of effects a haptic device can play at the same time. - * - * This is not supported on all platforms, but will always return a value. - * - * \param haptic the SDL_Haptic device to query maximum playing effects - * \returns the number of effects the haptic device can play at the same time - * or a negative error code on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticNumEffects - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticNumEffectsPlaying(SDL_Haptic * haptic); - -/** - * Get the haptic device's supported features in bitwise manner. - * - * \param haptic the SDL_Haptic device to query - * \returns a list of supported haptic features in bitwise manner (OR'd), or 0 - * on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticEffectSupported - * \sa SDL_HapticNumEffects - */ -extern DECLSPEC unsigned int SDLCALL SDL_HapticQuery(SDL_Haptic * haptic); - - -/** - * Get the number of haptic axes the device has. - * - * The number of haptic axes might be useful if working with the - * SDL_HapticDirection effect. - * - * \param haptic the SDL_Haptic device to query - * \returns the number of axes on success or a negative error code on failure; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_HapticNumAxes(SDL_Haptic * haptic); - -/** - * Check to see if an effect is supported by a haptic device. - * - * \param haptic the SDL_Haptic device to query - * \param effect the desired effect to query - * \returns SDL_TRUE if effect is supported, SDL_FALSE if it isn't, or a - * negative error code on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticNewEffect - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticEffectSupported(SDL_Haptic * haptic, - SDL_HapticEffect * - effect); - -/** - * Create a new haptic effect on a specified device. - * - * \param haptic an SDL_Haptic device to create the effect on - * \param effect an SDL_HapticEffect structure containing the properties of - * the effect to create - * \returns the ID of the effect on success or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticDestroyEffect - * \sa SDL_HapticRunEffect - * \sa SDL_HapticUpdateEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticNewEffect(SDL_Haptic * haptic, - SDL_HapticEffect * effect); - -/** - * Update the properties of an effect. - * - * Can be used dynamically, although behavior when dynamically changing - * direction may be strange. Specifically the effect may re-upload itself and - * start playing from the start. You also cannot change the type either when - * running SDL_HapticUpdateEffect(). - * - * \param haptic the SDL_Haptic device that has the effect - * \param effect the identifier of the effect to update - * \param data an SDL_HapticEffect structure containing the new effect - * properties to use - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticDestroyEffect - * \sa SDL_HapticNewEffect - * \sa SDL_HapticRunEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticUpdateEffect(SDL_Haptic * haptic, - int effect, - SDL_HapticEffect * data); - -/** - * Run the haptic effect on its associated haptic device. - * - * To repeat the effect over and over indefinitely, set `iterations` to - * `SDL_HAPTIC_INFINITY`. (Repeats the envelope - attack and fade.) To make - * one instance of the effect last indefinitely (so the effect does not fade), - * set the effect's `length` in its structure/union to `SDL_HAPTIC_INFINITY` - * instead. - * - * \param haptic the SDL_Haptic device to run the effect on - * \param effect the ID of the haptic effect to run - * \param iterations the number of iterations to run the effect; use - * `SDL_HAPTIC_INFINITY` to repeat forever - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticDestroyEffect - * \sa SDL_HapticGetEffectStatus - * \sa SDL_HapticStopEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticRunEffect(SDL_Haptic * haptic, - int effect, - Uint32 iterations); - -/** - * Stop the haptic effect on its associated haptic device. - * - * * - * - * \param haptic the SDL_Haptic device to stop the effect on - * \param effect the ID of the haptic effect to stop - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticDestroyEffect - * \sa SDL_HapticRunEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticStopEffect(SDL_Haptic * haptic, - int effect); - -/** - * Destroy a haptic effect on the device. - * - * This will stop the effect if it's running. Effects are automatically - * destroyed when the device is closed. - * - * \param haptic the SDL_Haptic device to destroy the effect on - * \param effect the ID of the haptic effect to destroy - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticNewEffect - */ -extern DECLSPEC void SDLCALL SDL_HapticDestroyEffect(SDL_Haptic * haptic, - int effect); - -/** - * Get the status of the current effect on the specified haptic device. - * - * Device must support the SDL_HAPTIC_STATUS feature. - * - * \param haptic the SDL_Haptic device to query for the effect status on - * \param effect the ID of the haptic effect to query its status - * \returns 0 if it isn't playing, 1 if it is playing, or a negative error - * code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticRunEffect - * \sa SDL_HapticStopEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticGetEffectStatus(SDL_Haptic * haptic, - int effect); - -/** - * Set the global gain of the specified haptic device. - * - * Device must support the SDL_HAPTIC_GAIN feature. - * - * The user may specify the maximum gain by setting the environment variable - * `SDL_HAPTIC_GAIN_MAX` which should be between 0 and 100. All calls to - * SDL_HapticSetGain() will scale linearly using `SDL_HAPTIC_GAIN_MAX` as the - * maximum. - * - * \param haptic the SDL_Haptic device to set the gain on - * \param gain value to set the gain to, should be between 0 and 100 (0 - 100) - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticSetGain(SDL_Haptic * haptic, int gain); - -/** - * Set the global autocenter of the device. - * - * Autocenter should be between 0 and 100. Setting it to 0 will disable - * autocentering. - * - * Device must support the SDL_HAPTIC_AUTOCENTER feature. - * - * \param haptic the SDL_Haptic device to set autocentering on - * \param autocenter value to set autocenter to (0-100) - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticSetAutocenter(SDL_Haptic * haptic, - int autocenter); - -/** - * Pause a haptic device. - * - * Device must support the `SDL_HAPTIC_PAUSE` feature. Call - * SDL_HapticUnpause() to resume playback. - * - * Do not modify the effects nor add new ones while the device is paused. That - * can cause all sorts of weird errors. - * - * \param haptic the SDL_Haptic device to pause - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticUnpause - */ -extern DECLSPEC int SDLCALL SDL_HapticPause(SDL_Haptic * haptic); - -/** - * Unpause a haptic device. - * - * Call to unpause after SDL_HapticPause(). - * - * \param haptic the SDL_Haptic device to unpause - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticPause - */ -extern DECLSPEC int SDLCALL SDL_HapticUnpause(SDL_Haptic * haptic); - -/** - * Stop all the currently playing effects on a haptic device. - * - * \param haptic the SDL_Haptic device to stop - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_HapticStopAll(SDL_Haptic * haptic); - -/** - * Check whether rumble is supported on a haptic device. - * - * \param haptic haptic device to check for rumble support - * \returns SDL_TRUE if effect is supported, SDL_FALSE if it isn't, or a - * negative error code on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticRumbleInit - * \sa SDL_HapticRumblePlay - * \sa SDL_HapticRumbleStop - */ -extern DECLSPEC int SDLCALL SDL_HapticRumbleSupported(SDL_Haptic * haptic); - -/** - * Initialize a haptic device for simple rumble playback. - * - * \param haptic the haptic device to initialize for simple rumble playback - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticRumblePlay - * \sa SDL_HapticRumbleStop - * \sa SDL_HapticRumbleSupported - */ -extern DECLSPEC int SDLCALL SDL_HapticRumbleInit(SDL_Haptic * haptic); - -/** - * Run a simple rumble effect on a haptic device. - * - * \param haptic the haptic device to play the rumble effect on - * \param strength strength of the rumble to play as a 0-1 float value - * \param length length of the rumble to play in milliseconds - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticRumbleInit - * \sa SDL_HapticRumbleStop - * \sa SDL_HapticRumbleSupported - */ -extern DECLSPEC int SDLCALL SDL_HapticRumblePlay(SDL_Haptic * haptic, float strength, Uint32 length ); - -/** - * Stop the simple rumble on a haptic device. - * - * \param haptic the haptic device to stop the rumble effect on - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticRumbleInit - * \sa SDL_HapticRumblePlay - * \sa SDL_HapticRumbleSupported - */ -extern DECLSPEC int SDLCALL SDL_HapticRumbleStop(SDL_Haptic * haptic); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_haptic_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_hidapi.h b/lib/windows/include/SDL_hidapi.h deleted file mode 100644 index 0575100..0000000 --- a/lib/windows/include/SDL_hidapi.h +++ /dev/null @@ -1,451 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_hidapi.h - * - * Header file for SDL HIDAPI functions. - * - * This is an adaptation of the original HIDAPI interface by Alan Ott, - * and includes source code licensed under the following BSD license: - * - Copyright (c) 2010, Alan Ott, Signal 11 Software - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Signal 11 Software nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - * - * If you would like a version of SDL without this code, you can build SDL - * with SDL_HIDAPI_DISABLED defined to 1. You might want to do this for example - * on iOS or tvOS to avoid a dependency on the CoreBluetooth framework. - */ - -#ifndef SDL_hidapi_h_ -#define SDL_hidapi_h_ - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief A handle representing an open HID device - */ -struct SDL_hid_device_; -typedef struct SDL_hid_device_ SDL_hid_device; /**< opaque hidapi structure */ - -/** hidapi info structure */ -/** - * \brief Information about a connected HID device - */ -typedef struct SDL_hid_device_info -{ - /** Platform-specific device path */ - char *path; - /** Device Vendor ID */ - unsigned short vendor_id; - /** Device Product ID */ - unsigned short product_id; - /** Serial Number */ - wchar_t *serial_number; - /** Device Release Number in binary-coded decimal, - also known as Device Version Number */ - unsigned short release_number; - /** Manufacturer String */ - wchar_t *manufacturer_string; - /** Product string */ - wchar_t *product_string; - /** Usage Page for this Device/Interface - (Windows/Mac only). */ - unsigned short usage_page; - /** Usage for this Device/Interface - (Windows/Mac only).*/ - unsigned short usage; - /** The USB interface which this logical device - represents. - - * Valid on both Linux implementations in all cases. - * Valid on the Windows implementation only if the device - contains more than one interface. */ - int interface_number; - - /** Additional information about the USB interface. - Valid on libusb and Android implementations. */ - int interface_class; - int interface_subclass; - int interface_protocol; - - /** Pointer to the next device */ - struct SDL_hid_device_info *next; -} SDL_hid_device_info; - - -/** - * Initialize the HIDAPI library. - * - * This function initializes the HIDAPI library. Calling it is not strictly - * necessary, as it will be called automatically by SDL_hid_enumerate() and - * any of the SDL_hid_open_*() functions if it is needed. This function should - * be called at the beginning of execution however, if there is a chance of - * HIDAPI handles being opened by different threads simultaneously. - * - * Each call to this function should have a matching call to SDL_hid_exit() - * - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_hid_exit - */ -extern DECLSPEC int SDLCALL SDL_hid_init(void); - -/** - * Finalize the HIDAPI library. - * - * This function frees all of the static data associated with HIDAPI. It - * should be called at the end of execution to avoid memory leaks. - * - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_hid_init - */ -extern DECLSPEC int SDLCALL SDL_hid_exit(void); - -/** - * Check to see if devices may have been added or removed. - * - * Enumerating the HID devices is an expensive operation, so you can call this - * to see if there have been any system device changes since the last call to - * this function. A change in the counter returned doesn't necessarily mean - * that anything has changed, but you can call SDL_hid_enumerate() to get an - * updated device list. - * - * Calling this function for the first time may cause a thread or other system - * resource to be allocated to track device change notifications. - * - * \returns a change counter that is incremented with each potential device - * change, or 0 if device change detection isn't available. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_hid_enumerate - */ -extern DECLSPEC Uint32 SDLCALL SDL_hid_device_change_count(void); - -/** - * Enumerate the HID Devices. - * - * This function returns a linked list of all the HID devices attached to the - * system which match vendor_id and product_id. If `vendor_id` is set to 0 - * then any vendor matches. If `product_id` is set to 0 then any product - * matches. If `vendor_id` and `product_id` are both set to 0, then all HID - * devices will be returned. - * - * \param vendor_id The Vendor ID (VID) of the types of device to open. - * \param product_id The Product ID (PID) of the types of device to open. - * \returns a pointer to a linked list of type SDL_hid_device_info, containing - * information about the HID devices attached to the system, or NULL - * in the case of failure. Free this linked list by calling - * SDL_hid_free_enumeration(). - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_hid_device_change_count - */ -extern DECLSPEC SDL_hid_device_info * SDLCALL SDL_hid_enumerate(unsigned short vendor_id, unsigned short product_id); - -/** - * Free an enumeration Linked List - * - * This function frees a linked list created by SDL_hid_enumerate(). - * - * \param devs Pointer to a list of struct_device returned from - * SDL_hid_enumerate(). - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC void SDLCALL SDL_hid_free_enumeration(SDL_hid_device_info *devs); - -/** - * Open a HID device using a Vendor ID (VID), Product ID (PID) and optionally - * a serial number. - * - * If `serial_number` is NULL, the first device with the specified VID and PID - * is opened. - * - * \param vendor_id The Vendor ID (VID) of the device to open. - * \param product_id The Product ID (PID) of the device to open. - * \param serial_number The Serial Number of the device to open (Optionally - * NULL). - * \returns a pointer to a SDL_hid_device object on success or NULL on - * failure. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC SDL_hid_device * SDLCALL SDL_hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number); - -/** - * Open a HID device by its path name. - * - * The path name be determined by calling SDL_hid_enumerate(), or a - * platform-specific path name can be used (eg: /dev/hidraw0 on Linux). - * - * \param path The path name of the device to open - * \returns a pointer to a SDL_hid_device object on success or NULL on - * failure. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC SDL_hid_device * SDLCALL SDL_hid_open_path(const char *path, int bExclusive /* = false */); - -/** - * Write an Output report to a HID device. - * - * The first byte of `data` must contain the Report ID. For devices which only - * support a single report, this must be set to 0x0. The remaining bytes - * contain the report data. Since the Report ID is mandatory, calls to - * SDL_hid_write() will always contain one more byte than the report contains. - * For example, if a hid report is 16 bytes long, 17 bytes must be passed to - * SDL_hid_write(), the Report ID (or 0x0, for devices with a single report), - * followed by the report data (16 bytes). In this example, the length passed - * in would be 17. - * - * SDL_hid_write() will send the data on the first OUT endpoint, if one - * exists. If it does not, it will send the data through the Control Endpoint - * (Endpoint 0). - * - * \param dev A device handle returned from SDL_hid_open(). - * \param data The data to send, including the report number as the first - * byte. - * \param length The length in bytes of the data to send. - * \returns the actual number of bytes written and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_write(SDL_hid_device *dev, const unsigned char *data, size_t length); - -/** - * Read an Input report from a HID device with timeout. - * - * Input reports are returned to the host through the INTERRUPT IN endpoint. - * The first byte will contain the Report number if the device uses numbered - * reports. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param data A buffer to put the read data into. - * \param length The number of bytes to read. For devices with multiple - * reports, make sure to read an extra byte for the report - * number. - * \param milliseconds timeout in milliseconds or -1 for blocking wait. - * \returns the actual number of bytes read and -1 on error. If no packet was - * available to be read within the timeout period, this function - * returns 0. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_read_timeout(SDL_hid_device *dev, unsigned char *data, size_t length, int milliseconds); - -/** - * Read an Input report from a HID device. - * - * Input reports are returned to the host through the INTERRUPT IN endpoint. - * The first byte will contain the Report number if the device uses numbered - * reports. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param data A buffer to put the read data into. - * \param length The number of bytes to read. For devices with multiple - * reports, make sure to read an extra byte for the report - * number. - * \returns the actual number of bytes read and -1 on error. If no packet was - * available to be read and the handle is in non-blocking mode, this - * function returns 0. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_read(SDL_hid_device *dev, unsigned char *data, size_t length); - -/** - * Set the device handle to be non-blocking. - * - * In non-blocking mode calls to SDL_hid_read() will return immediately with a - * value of 0 if there is no data to be read. In blocking mode, SDL_hid_read() - * will wait (block) until there is data to read before returning. - * - * Nonblocking can be turned on and off at any time. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param nonblock enable or not the nonblocking reads - 1 to enable - * nonblocking - 0 to disable nonblocking. - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_set_nonblocking(SDL_hid_device *dev, int nonblock); - -/** - * Send a Feature report to the device. - * - * Feature reports are sent over the Control endpoint as a Set_Report - * transfer. The first byte of `data` must contain the Report ID. For devices - * which only support a single report, this must be set to 0x0. The remaining - * bytes contain the report data. Since the Report ID is mandatory, calls to - * SDL_hid_send_feature_report() will always contain one more byte than the - * report contains. For example, if a hid report is 16 bytes long, 17 bytes - * must be passed to SDL_hid_send_feature_report(): the Report ID (or 0x0, for - * devices which do not use numbered reports), followed by the report data (16 - * bytes). In this example, the length passed in would be 17. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param data The data to send, including the report number as the first - * byte. - * \param length The length in bytes of the data to send, including the report - * number. - * \returns the actual number of bytes written and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_send_feature_report(SDL_hid_device *dev, const unsigned char *data, size_t length); - -/** - * Get a feature report from a HID device. - * - * Set the first byte of `data` to the Report ID of the report to be read. - * Make sure to allow space for this extra byte in `data`. Upon return, the - * first byte will still contain the Report ID, and the report data will start - * in data[1]. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param data A buffer to put the read data into, including the Report ID. - * Set the first byte of `data` to the Report ID of the report to - * be read, or set it to zero if your device does not use numbered - * reports. - * \param length The number of bytes to read, including an extra byte for the - * report ID. The buffer can be longer than the actual report. - * \returns the number of bytes read plus one for the report ID (which is - * still in the first byte), or -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_get_feature_report(SDL_hid_device *dev, unsigned char *data, size_t length); - -/** - * Close a HID device. - * - * \param dev A device handle returned from SDL_hid_open(). - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC void SDLCALL SDL_hid_close(SDL_hid_device *dev); - -/** - * Get The Manufacturer String from a HID device. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param string A wide string buffer to put the data into. - * \param maxlen The length of the buffer in multiples of wchar_t. - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_get_manufacturer_string(SDL_hid_device *dev, wchar_t *string, size_t maxlen); - -/** - * Get The Product String from a HID device. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param string A wide string buffer to put the data into. - * \param maxlen The length of the buffer in multiples of wchar_t. - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_get_product_string(SDL_hid_device *dev, wchar_t *string, size_t maxlen); - -/** - * Get The Serial Number String from a HID device. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param string A wide string buffer to put the data into. - * \param maxlen The length of the buffer in multiples of wchar_t. - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_get_serial_number_string(SDL_hid_device *dev, wchar_t *string, size_t maxlen); - -/** - * Get a string from a HID device, based on its string index. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param string_index The index of the string to get. - * \param string A wide string buffer to put the data into. - * \param maxlen The length of the buffer in multiples of wchar_t. - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_get_indexed_string(SDL_hid_device *dev, int string_index, wchar_t *string, size_t maxlen); - -/** - * Start or stop a BLE scan on iOS and tvOS to pair Steam Controllers - * - * \param active SDL_TRUE to start the scan, SDL_FALSE to stop the scan - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC void SDLCALL SDL_hid_ble_scan(SDL_bool active); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_hidapi_h_ */ - -/* vi: set sts=4 ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_hints.h b/lib/windows/include/SDL_hints.h deleted file mode 100644 index ad3b403..0000000 --- a/lib/windows/include/SDL_hints.h +++ /dev/null @@ -1,2604 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_hints.h - * - * Official documentation for SDL configuration variables - * - * This file contains functions to set and get configuration hints, - * as well as listing each of them alphabetically. - * - * The convention for naming hints is SDL_HINT_X, where "SDL_X" is - * the environment variable that can be used to override the default. - * - * In general these hints are just that - they may or may not be - * supported or applicable on any given platform, but they provide - * a way for an application or user to give the library a hint as - * to how they would like the library to work. - */ - -#ifndef SDL_hints_h_ -#define SDL_hints_h_ - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief A variable controlling whether the Android / iOS built-in - * accelerometer should be listed as a joystick device. - * - * This variable can be set to the following values: - * "0" - The accelerometer is not listed as a joystick - * "1" - The accelerometer is available as a 3 axis joystick (the default). - */ -#define SDL_HINT_ACCELEROMETER_AS_JOYSTICK "SDL_ACCELEROMETER_AS_JOYSTICK" - -/** - * \brief Specify the behavior of Alt+Tab while the keyboard is grabbed. - * - * By default, SDL emulates Alt+Tab functionality while the keyboard is grabbed - * and your window is full-screen. This prevents the user from getting stuck in - * your application if you've enabled keyboard grab. - * - * The variable can be set to the following values: - * "0" - SDL will not handle Alt+Tab. Your application is responsible - for handling Alt+Tab while the keyboard is grabbed. - * "1" - SDL will minimize your window when Alt+Tab is pressed (default) -*/ -#define SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED "SDL_ALLOW_ALT_TAB_WHILE_GRABBED" - -/** - * \brief If set to "0" then never set the top most bit on a SDL Window, even if the video mode expects it. - * This is a debugging aid for developers and not expected to be used by end users. The default is "1" - * - * This variable can be set to the following values: - * "0" - don't allow topmost - * "1" - allow topmost - */ -#define SDL_HINT_ALLOW_TOPMOST "SDL_ALLOW_TOPMOST" - -/** - * \brief Android APK expansion main file version. Should be a string number like "1", "2" etc. - * - * Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION. - * - * If both hints were set then SDL_RWFromFile() will look into expansion files - * after a given relative path was not found in the internal storage and assets. - * - * By default this hint is not set and the APK expansion files are not searched. - */ -#define SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION" - -/** - * \brief Android APK expansion patch file version. Should be a string number like "1", "2" etc. - * - * Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION. - * - * If both hints were set then SDL_RWFromFile() will look into expansion files - * after a given relative path was not found in the internal storage and assets. - * - * By default this hint is not set and the APK expansion files are not searched. - */ -#define SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION" - -/** - * \brief A variable to control whether the event loop will block itself when the app is paused. - * - * The variable can be set to the following values: - * "0" - Non blocking. - * "1" - Blocking. (default) - * - * The value should be set before SDL is initialized. - */ -#define SDL_HINT_ANDROID_BLOCK_ON_PAUSE "SDL_ANDROID_BLOCK_ON_PAUSE" - -/** - * \brief A variable to control whether SDL will pause audio in background - * (Requires SDL_ANDROID_BLOCK_ON_PAUSE as "Non blocking") - * - * The variable can be set to the following values: - * "0" - Non paused. - * "1" - Paused. (default) - * - * The value should be set before SDL is initialized. - */ -#define SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO "SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO" - -/** - * \brief A variable to control whether we trap the Android back button to handle it manually. - * This is necessary for the right mouse button to work on some Android devices, or - * to be able to trap the back button for use in your code reliably. If set to true, - * the back button will show up as an SDL_KEYDOWN / SDL_KEYUP pair with a keycode of - * SDL_SCANCODE_AC_BACK. - * - * The variable can be set to the following values: - * "0" - Back button will be handled as usual for system. (default) - * "1" - Back button will be trapped, allowing you to handle the key press - * manually. (This will also let right mouse click work on systems - * where the right mouse button functions as back.) - * - * The value of this hint is used at runtime, so it can be changed at any time. - */ -#define SDL_HINT_ANDROID_TRAP_BACK_BUTTON "SDL_ANDROID_TRAP_BACK_BUTTON" - -/** - * \brief Specify an application name. - * - * This hint lets you specify the application name sent to the OS when - * required. For example, this will often appear in volume control applets for - * audio streams, and in lists of applications which are inhibiting the - * screensaver. You should use a string that describes your program ("My Game - * 2: The Revenge") - * - * Setting this to "" or leaving it unset will have SDL use a reasonable - * default: probably the application's name or "SDL Application" if SDL - * doesn't have any better information. - * - * Note that, for audio streams, this can be overridden with - * SDL_HINT_AUDIO_DEVICE_APP_NAME. - * - * On targets where this is not supported, this hint does nothing. - */ -#define SDL_HINT_APP_NAME "SDL_APP_NAME" - -/** - * \brief A variable controlling whether controllers used with the Apple TV - * generate UI events. - * - * When UI events are generated by controller input, the app will be - * backgrounded when the Apple TV remote's menu button is pressed, and when the - * pause or B buttons on gamepads are pressed. - * - * More information about properly making use of controllers for the Apple TV - * can be found here: - * https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/ - * - * This variable can be set to the following values: - * "0" - Controller input does not generate UI events (the default). - * "1" - Controller input generates UI events. - */ -#define SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS "SDL_APPLE_TV_CONTROLLER_UI_EVENTS" - -/** - * \brief A variable controlling whether the Apple TV remote's joystick axes - * will automatically match the rotation of the remote. - * - * This variable can be set to the following values: - * "0" - Remote orientation does not affect joystick axes (the default). - * "1" - Joystick axes are based on the orientation of the remote. - */ -#define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION" - -/** - * \brief A variable controlling the audio category on iOS and Mac OS X - * - * This variable can be set to the following values: - * - * "ambient" - Use the AVAudioSessionCategoryAmbient audio category, will be muted by the phone mute switch (default) - * "playback" - Use the AVAudioSessionCategoryPlayback category - * - * For more information, see Apple's documentation: - * https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html - */ -#define SDL_HINT_AUDIO_CATEGORY "SDL_AUDIO_CATEGORY" - -/** - * \brief Specify an application name for an audio device. - * - * Some audio backends (such as PulseAudio) allow you to describe your audio - * stream. Among other things, this description might show up in a system - * control panel that lets the user adjust the volume on specific audio - * streams instead of using one giant master volume slider. - * - * This hints lets you transmit that information to the OS. The contents of - * this hint are used while opening an audio device. You should use a string - * that describes your program ("My Game 2: The Revenge") - * - * Setting this to "" or leaving it unset will have SDL use a reasonable - * default: this will be the name set with SDL_HINT_APP_NAME, if that hint is - * set. Otherwise, it'll probably the application's name or "SDL Application" - * if SDL doesn't have any better information. - * - * On targets where this is not supported, this hint does nothing. - */ -#define SDL_HINT_AUDIO_DEVICE_APP_NAME "SDL_AUDIO_DEVICE_APP_NAME" - -/** - * \brief Specify an application name for an audio device. - * - * Some audio backends (such as PulseAudio) allow you to describe your audio - * stream. Among other things, this description might show up in a system - * control panel that lets the user adjust the volume on specific audio - * streams instead of using one giant master volume slider. - * - * This hints lets you transmit that information to the OS. The contents of - * this hint are used while opening an audio device. You should use a string - * that describes your what your program is playing ("audio stream" is - * probably sufficient in many cases, but this could be useful for something - * like "team chat" if you have a headset playing VoIP audio separately). - * - * Setting this to "" or leaving it unset will have SDL use a reasonable - * default: "audio stream" or something similar. - * - * On targets where this is not supported, this hint does nothing. - */ -#define SDL_HINT_AUDIO_DEVICE_STREAM_NAME "SDL_AUDIO_DEVICE_STREAM_NAME" - -/** - * \brief Specify an application role for an audio device. - * - * Some audio backends (such as Pipewire) allow you to describe the role of - * your audio stream. Among other things, this description might show up in - * a system control panel or software for displaying and manipulating media - * playback/capture graphs. - * - * This hints lets you transmit that information to the OS. The contents of - * this hint are used while opening an audio device. You should use a string - * that describes your what your program is playing (Game, Music, Movie, - * etc...). - * - * Setting this to "" or leaving it unset will have SDL use a reasonable - * default: "Game" or something similar. - * - * On targets where this is not supported, this hint does nothing. - */ -#define SDL_HINT_AUDIO_DEVICE_STREAM_ROLE "SDL_AUDIO_DEVICE_STREAM_ROLE" - -/** - * \brief A variable controlling speed/quality tradeoff of audio resampling. - * - * If available, SDL can use libsamplerate ( http://www.mega-nerd.com/SRC/ ) - * to handle audio resampling. There are different resampling modes available - * that produce different levels of quality, using more CPU. - * - * If this hint isn't specified to a valid setting, or libsamplerate isn't - * available, SDL will use the default, internal resampling algorithm. - * - * As of SDL 2.26, SDL_ConvertAudio() respects this hint when libsamplerate is available. - * - * This hint is currently only checked at audio subsystem initialization. - * - * This variable can be set to the following values: - * - * "0" or "default" - Use SDL's internal resampling (Default when not set - low quality, fast) - * "1" or "fast" - Use fast, slightly higher quality resampling, if available - * "2" or "medium" - Use medium quality resampling, if available - * "3" or "best" - Use high quality resampling, if available - */ -#define SDL_HINT_AUDIO_RESAMPLING_MODE "SDL_AUDIO_RESAMPLING_MODE" - -/** - * \brief A variable controlling whether SDL updates joystick state when getting input events - * - * This variable can be set to the following values: - * - * "0" - You'll call SDL_JoystickUpdate() manually - * "1" - SDL will automatically call SDL_JoystickUpdate() (default) - * - * This hint can be toggled on and off at runtime. - */ -#define SDL_HINT_AUTO_UPDATE_JOYSTICKS "SDL_AUTO_UPDATE_JOYSTICKS" - -/** - * \brief A variable controlling whether SDL updates sensor state when getting input events - * - * This variable can be set to the following values: - * - * "0" - You'll call SDL_SensorUpdate() manually - * "1" - SDL will automatically call SDL_SensorUpdate() (default) - * - * This hint can be toggled on and off at runtime. - */ -#define SDL_HINT_AUTO_UPDATE_SENSORS "SDL_AUTO_UPDATE_SENSORS" - -/** - * \brief Prevent SDL from using version 4 of the bitmap header when saving BMPs. - * - * The bitmap header version 4 is required for proper alpha channel support and - * SDL will use it when required. Should this not be desired, this hint can - * force the use of the 40 byte header version which is supported everywhere. - * - * The variable can be set to the following values: - * "0" - Surfaces with a colorkey or an alpha channel are saved to a - * 32-bit BMP file with an alpha mask. SDL will use the bitmap - * header version 4 and set the alpha mask accordingly. - * "1" - Surfaces with a colorkey or an alpha channel are saved to a - * 32-bit BMP file without an alpha mask. The alpha channel data - * will be in the file, but applications are going to ignore it. - * - * The default value is "0". - */ -#define SDL_HINT_BMP_SAVE_LEGACY_FORMAT "SDL_BMP_SAVE_LEGACY_FORMAT" - -/** - * \brief Override for SDL_GetDisplayUsableBounds() - * - * If set, this hint will override the expected results for - * SDL_GetDisplayUsableBounds() for display index 0. Generally you don't want - * to do this, but this allows an embedded system to request that some of the - * screen be reserved for other uses when paired with a well-behaved - * application. - * - * The contents of this hint must be 4 comma-separated integers, the first - * is the bounds x, then y, width and height, in that order. - */ -#define SDL_HINT_DISPLAY_USABLE_BOUNDS "SDL_DISPLAY_USABLE_BOUNDS" - -/** - * \brief Disable giving back control to the browser automatically - * when running with asyncify - * - * With -s ASYNCIFY, SDL2 calls emscripten_sleep during operations - * such as refreshing the screen or polling events. - * - * This hint only applies to the emscripten platform - * - * The variable can be set to the following values: - * "0" - Disable emscripten_sleep calls (if you give back browser control manually or use asyncify for other purposes) - * "1" - Enable emscripten_sleep calls (the default) - */ -#define SDL_HINT_EMSCRIPTEN_ASYNCIFY "SDL_EMSCRIPTEN_ASYNCIFY" - -/** - * \brief override the binding element for keyboard inputs for Emscripten builds - * - * This hint only applies to the emscripten platform - * - * The variable can be one of - * "#window" - The javascript window object (this is the default) - * "#document" - The javascript document object - * "#screen" - the javascript window.screen object - * "#canvas" - the WebGL canvas element - * any other string without a leading # sign applies to the element on the page with that ID. - */ -#define SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT" - -/** - * \brief A variable that controls whether the on-screen keyboard should be shown when text input is active - * - * The variable can be set to the following values: - * "0" - Do not show the on-screen keyboard - * "1" - Show the on-screen keyboard - * - * The default value is "1". This hint must be set before text input is activated. - */ -#define SDL_HINT_ENABLE_SCREEN_KEYBOARD "SDL_ENABLE_SCREEN_KEYBOARD" - -/** - * \brief A variable that controls whether Steam Controllers should be exposed using the SDL joystick and game controller APIs - * - * The variable can be set to the following values: - * "0" - Do not scan for Steam Controllers - * "1" - Scan for Steam Controllers (the default) - * - * The default value is "1". This hint must be set before initializing the joystick subsystem. - */ -#define SDL_HINT_ENABLE_STEAM_CONTROLLERS "SDL_ENABLE_STEAM_CONTROLLERS" - -/** - * \brief A variable controlling verbosity of the logging of SDL events pushed onto the internal queue. - * - * This variable can be set to the following values, from least to most verbose: - * - * "0" - Don't log any events (default) - * "1" - Log most events (other than the really spammy ones). - * "2" - Include mouse and finger motion events. - * "3" - Include SDL_SysWMEvent events. - * - * This is generally meant to be used to debug SDL itself, but can be useful - * for application developers that need better visibility into what is going - * on in the event queue. Logged events are sent through SDL_Log(), which - * means by default they appear on stdout on most platforms or maybe - * OutputDebugString() on Windows, and can be funneled by the app with - * SDL_LogSetOutputFunction(), etc. - * - * This hint can be toggled on and off at runtime, if you only need to log - * events for a small subset of program execution. - */ -#define SDL_HINT_EVENT_LOGGING "SDL_EVENT_LOGGING" - -/** - * \brief A variable controlling whether raising the window should be done more forcefully - * - * This variable can be set to the following values: - * "0" - No forcing (the default) - * "1" - Extra level of forcing - * - * At present, this is only an issue under MS Windows, which makes it nearly impossible to - * programmatically move a window to the foreground, for "security" reasons. See - * http://stackoverflow.com/a/34414846 for a discussion. - */ -#define SDL_HINT_FORCE_RAISEWINDOW "SDL_HINT_FORCE_RAISEWINDOW" - -/** - * \brief A variable controlling how 3D acceleration is used to accelerate the SDL screen surface. - * - * SDL can try to accelerate the SDL screen surface by using streaming - * textures with a 3D rendering engine. This variable controls whether and - * how this is done. - * - * This variable can be set to the following values: - * "0" - Disable 3D acceleration - * "1" - Enable 3D acceleration, using the default renderer. - * "X" - Enable 3D acceleration, using X where X is one of the valid rendering drivers. (e.g. "direct3d", "opengl", etc.) - * - * By default SDL tries to make a best guess for each platform whether - * to use acceleration or not. - */ -#define SDL_HINT_FRAMEBUFFER_ACCELERATION "SDL_FRAMEBUFFER_ACCELERATION" - -/** - * \brief A variable that lets you manually hint extra gamecontroller db entries. - * - * The variable should be newline delimited rows of gamecontroller config data, see SDL_gamecontroller.h - * - * This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) - * You can update mappings after the system is initialized with SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping() - */ -#define SDL_HINT_GAMECONTROLLERCONFIG "SDL_GAMECONTROLLERCONFIG" - -/** - * \brief A variable that lets you provide a file with extra gamecontroller db entries. - * - * The file should contain lines of gamecontroller config data, see SDL_gamecontroller.h - * - * This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) - * You can update mappings after the system is initialized with SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping() - */ -#define SDL_HINT_GAMECONTROLLERCONFIG_FILE "SDL_GAMECONTROLLERCONFIG_FILE" - -/** - * \brief A variable that overrides the automatic controller type detection - * - * The variable should be comma separated entries, in the form: VID/PID=type - * - * The VID and PID should be hexadecimal with exactly 4 digits, e.g. 0x00fd - * - * The type should be one of: - * Xbox360 - * XboxOne - * PS3 - * PS4 - * PS5 - * SwitchPro - * - * This hint affects what driver is used, and must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) - */ -#define SDL_HINT_GAMECONTROLLERTYPE "SDL_GAMECONTROLLERTYPE" - -/** - * \brief A variable containing a list of devices to skip when scanning for game controllers. - * - * The format of the string is a comma separated list of USB VID/PID pairs - * in hexadecimal form, e.g. - * - * 0xAAAA/0xBBBB,0xCCCC/0xDDDD - * - * The variable can also take the form of @file, in which case the named - * file will be loaded and interpreted as the value of the variable. - */ -#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES "SDL_GAMECONTROLLER_IGNORE_DEVICES" - -/** - * \brief If set, all devices will be skipped when scanning for game controllers except for the ones listed in this variable. - * - * The format of the string is a comma separated list of USB VID/PID pairs - * in hexadecimal form, e.g. - * - * 0xAAAA/0xBBBB,0xCCCC/0xDDDD - * - * The variable can also take the form of @file, in which case the named - * file will be loaded and interpreted as the value of the variable. - */ -#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT" - -/** - * \brief If set, game controller face buttons report their values according to their labels instead of their positional layout. - * - * For example, on Nintendo Switch controllers, normally you'd get: - * - * (Y) - * (X) (B) - * (A) - * - * but if this hint is set, you'll get: - * - * (X) - * (Y) (A) - * (B) - * - * The variable can be set to the following values: - * "0" - Report the face buttons by position, as though they were on an Xbox controller. - * "1" - Report the face buttons by label instead of position - * - * The default value is "1". This hint may be set at any time. - */ -#define SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS "SDL_GAMECONTROLLER_USE_BUTTON_LABELS" - -/** - * \brief A variable controlling whether grabbing input grabs the keyboard - * - * This variable can be set to the following values: - * "0" - Grab will affect only the mouse - * "1" - Grab will affect mouse and keyboard - * - * By default SDL will not grab the keyboard so system shortcuts still work. - */ -#define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD" - -/** - * \brief A variable containing a list of devices to ignore in SDL_hid_enumerate() - * - * For example, to ignore the Shanwan DS3 controller and any Valve controller, you might - * have the string "0x2563/0x0523,0x28de/0x0000" - */ -#define SDL_HINT_HIDAPI_IGNORE_DEVICES "SDL_HIDAPI_IGNORE_DEVICES" - -/** - * \brief A variable controlling whether the idle timer is disabled on iOS. - * - * When an iOS app does not receive touches for some time, the screen is - * dimmed automatically. For games where the accelerometer is the only input - * this is problematic. This functionality can be disabled by setting this - * hint. - * - * As of SDL 2.0.4, SDL_EnableScreenSaver() and SDL_DisableScreenSaver() - * accomplish the same thing on iOS. They should be preferred over this hint. - * - * This variable can be set to the following values: - * "0" - Enable idle timer - * "1" - Disable idle timer - */ -#define SDL_HINT_IDLE_TIMER_DISABLED "SDL_IOS_IDLE_TIMER_DISABLED" - -/** - * \brief A variable to control whether certain IMEs should handle text editing internally instead of sending SDL_TEXTEDITING events. - * - * The variable can be set to the following values: - * "0" - SDL_TEXTEDITING events are sent, and it is the application's - * responsibility to render the text from these events and - * differentiate it somehow from committed text. (default) - * "1" - If supported by the IME then SDL_TEXTEDITING events are not sent, - * and text that is being composed will be rendered in its own UI. - */ -#define SDL_HINT_IME_INTERNAL_EDITING "SDL_IME_INTERNAL_EDITING" - -/** - * \brief A variable to control whether certain IMEs should show native UI components (such as the Candidate List) instead of suppressing them. - * - * The variable can be set to the following values: - * "0" - Native UI components are not display. (default) - * "1" - Native UI components are displayed. - */ -#define SDL_HINT_IME_SHOW_UI "SDL_IME_SHOW_UI" - -/** - * \brief A variable to control if extended IME text support is enabled. - * If enabled then SDL_TextEditingExtEvent will be issued if the text would be truncated otherwise. - * Additionally SDL_TextInputEvent will be dispatched multiple times so that it is not truncated. - * - * The variable can be set to the following values: - * "0" - Legacy behavior. Text can be truncated, no heap allocations. (default) - * "1" - Modern behavior. - */ -#define SDL_HINT_IME_SUPPORT_EXTENDED_TEXT "SDL_IME_SUPPORT_EXTENDED_TEXT" - -/** - * \brief A variable controlling whether the home indicator bar on iPhone X - * should be hidden. - * - * This variable can be set to the following values: - * "0" - The indicator bar is not hidden (default for windowed applications) - * "1" - The indicator bar is hidden and is shown when the screen is touched (useful for movie playback applications) - * "2" - The indicator bar is dim and the first swipe makes it visible and the second swipe performs the "home" action (default for fullscreen applications) - */ -#define SDL_HINT_IOS_HIDE_HOME_INDICATOR "SDL_IOS_HIDE_HOME_INDICATOR" - -/** - * \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background. - * - * The variable can be set to the following values: - * "0" - Disable joystick & gamecontroller input events when the - * application is in the background. - * "1" - Enable joystick & gamecontroller input events when the - * application is in the background. - * - * The default value is "0". This hint may be set at any time. - */ -#define SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS" - -/** - * \brief A variable controlling whether the HIDAPI joystick drivers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI drivers are not used - * "1" - HIDAPI drivers are used (the default) - * - * This variable is the default for all drivers, but can be overridden by the hints for specific drivers below. - */ -#define SDL_HINT_JOYSTICK_HIDAPI "SDL_JOYSTICK_HIDAPI" - -/** - * \brief A variable controlling whether the HIDAPI driver for Nintendo GameCube controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE "SDL_JOYSTICK_HIDAPI_GAMECUBE" - -/** - * \brief A variable controlling whether "low_frequency_rumble" and "high_frequency_rumble" is used to implement - * the GameCube controller's 3 rumble modes, Stop(0), Rumble(1), and StopHard(2) - * this is useful for applications that need full compatibility for things like ADSR envelopes. - * Stop is implemented by setting "low_frequency_rumble" to "0" and "high_frequency_rumble" ">0" - * Rumble is both at any arbitrary value, - * StopHard is implemented by setting both "low_frequency_rumble" and "high_frequency_rumble" to "0" - * - * This variable can be set to the following values: - * "0" - Normal rumble behavior is behavior is used (default) - * "1" - Proper GameCube controller rumble behavior is used - * - */ -#define SDL_HINT_JOYSTICK_GAMECUBE_RUMBLE_BRAKE "SDL_JOYSTICK_GAMECUBE_RUMBLE_BRAKE" - -/** - * \brief A variable controlling whether the HIDAPI driver for Nintendo Switch Joy-Cons should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS "SDL_JOYSTICK_HIDAPI_JOY_CONS" - -/** - * \brief A variable controlling whether Nintendo Switch Joy-Con controllers will be combined into a single Pro-like controller when using the HIDAPI driver - * - * This variable can be set to the following values: - * "0" - Left and right Joy-Con controllers will not be combined and each will be a mini-gamepad - * "1" - Left and right Joy-Con controllers will be combined into a single controller (the default) - */ -#define SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS "SDL_JOYSTICK_HIDAPI_COMBINE_JOY_CONS" - -/** - * \brief A variable controlling whether Nintendo Switch Joy-Con controllers will be in vertical mode when using the HIDAPI driver - * - * This variable can be set to the following values: - * "0" - Left and right Joy-Con controllers will not be in vertical mode (the default) - * "1" - Left and right Joy-Con controllers will be in vertical mode - * - * This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) - */ -#define SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS "SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS" - -/** - * \brief A variable controlling whether the HIDAPI driver for Amazon Luna controllers connected via Bluetooth should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_LUNA "SDL_JOYSTICK_HIDAPI_LUNA" - -/** - * \brief A variable controlling whether the HIDAPI driver for Nintendo Online classic controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC "SDL_JOYSTICK_HIDAPI_NINTENDO_CLASSIC" - -/** - * \brief A variable controlling whether the HIDAPI driver for NVIDIA SHIELD controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_SHIELD "SDL_JOYSTICK_HIDAPI_SHIELD" - -/** - * \brief A variable controlling whether the HIDAPI driver for PS3 controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI on macOS, and "0" on other platforms. - * - * It is not possible to use this driver on Windows, due to limitations in the default drivers - * installed. See https://github.com/ViGEm/DsHidMini for an alternative driver on Windows. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_PS3 "SDL_JOYSTICK_HIDAPI_PS3" - -/** - * \brief A variable controlling whether the HIDAPI driver for PS4 controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_PS4 "SDL_JOYSTICK_HIDAPI_PS4" - -/** - * \brief A variable controlling whether extended input reports should be used for PS4 controllers when using the HIDAPI driver. - * - * This variable can be set to the following values: - * "0" - extended reports are not enabled (the default) - * "1" - extended reports - * - * Extended input reports allow rumble on Bluetooth PS4 controllers, but - * break DirectInput handling for applications that don't use SDL. - * - * Once extended reports are enabled, they can not be disabled without - * power cycling the controller. - * - * For compatibility with applications written for versions of SDL prior - * to the introduction of PS5 controller support, this value will also - * control the state of extended reports on PS5 controllers when the - * SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE hint is not explicitly set. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE" - -/** - * \brief A variable controlling whether the HIDAPI driver for PS5 controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_PS5 "SDL_JOYSTICK_HIDAPI_PS5" - -/** - * \brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a PS5 controller. - * - * This variable can be set to the following values: - * "0" - player LEDs are not enabled - * "1" - player LEDs are enabled (the default) - */ -#define SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED" - -/** - * \brief A variable controlling whether extended input reports should be used for PS5 controllers when using the HIDAPI driver. - * - * This variable can be set to the following values: - * "0" - extended reports are not enabled (the default) - * "1" - extended reports - * - * Extended input reports allow rumble on Bluetooth PS5 controllers, but - * break DirectInput handling for applications that don't use SDL. - * - * Once extended reports are enabled, they can not be disabled without - * power cycling the controller. - * - * For compatibility with applications written for versions of SDL prior - * to the introduction of PS5 controller support, this value defaults to - * the value of SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE "SDL_JOYSTICK_HIDAPI_PS5_RUMBLE" - -/** - * \brief A variable controlling whether the HIDAPI driver for Google Stadia controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_STADIA "SDL_JOYSTICK_HIDAPI_STADIA" - -/** - * \brief A variable controlling whether the HIDAPI driver for Bluetooth Steam Controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used for Steam Controllers, which requires Bluetooth access - * and may prompt the user for permission on iOS and Android. - * - * The default is "0" - */ -#define SDL_HINT_JOYSTICK_HIDAPI_STEAM "SDL_JOYSTICK_HIDAPI_STEAM" - -/** - * \brief A variable controlling whether the HIDAPI driver for Nintendo Switch controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH "SDL_JOYSTICK_HIDAPI_SWITCH" - -/** - * \brief A variable controlling whether the Home button LED should be turned on when a Nintendo Switch Pro controller is opened - * - * This variable can be set to the following values: - * "0" - home button LED is turned off - * "1" - home button LED is turned on - * - * By default the Home button LED state is not changed. This hint can also be set to a floating point value between 0.0 and 1.0 which controls the brightness of the Home button LED. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED" - -/** - * \brief A variable controlling whether the Home button LED should be turned on when a Nintendo Switch Joy-Con controller is opened - * - * This variable can be set to the following values: - * "0" - home button LED is turned off - * "1" - home button LED is turned on - * - * By default the Home button LED state is not changed. This hint can also be set to a floating point value between 0.0 and 1.0 which controls the brightness of the Home button LED. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED "SDL_JOYSTICK_HIDAPI_JOYCON_HOME_LED" - -/** - * \brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a Nintendo Switch controller. - * - * This variable can be set to the following values: - * "0" - player LEDs are not enabled - * "1" - player LEDs are enabled (the default) - */ -#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED "SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED" - -/** - * \brief A variable controlling whether the HIDAPI driver for Nintendo Wii and Wii U controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * This driver doesn't work with the dolphinbar, so the default is SDL_FALSE for now. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_WII "SDL_JOYSTICK_HIDAPI_WII" - -/** - * \brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a Wii controller. - * - * This variable can be set to the following values: - * "0" - player LEDs are not enabled - * "1" - player LEDs are enabled (the default) - */ -#define SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED "SDL_JOYSTICK_HIDAPI_WII_PLAYER_LED" - -/** - * \brief A variable controlling whether the HIDAPI driver for XBox controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is "0" on Windows, otherwise the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_XBOX "SDL_JOYSTICK_HIDAPI_XBOX" - -/** - * \brief A variable controlling whether the HIDAPI driver for XBox 360 controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX - */ -#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 "SDL_JOYSTICK_HIDAPI_XBOX_360" - -/** - * \brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with an Xbox 360 controller. - * - * This variable can be set to the following values: - * "0" - player LEDs are not enabled - * "1" - player LEDs are enabled (the default) - */ -#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED "SDL_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED" - -/** - * \brief A variable controlling whether the HIDAPI driver for XBox 360 wireless controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 - */ -#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS "SDL_JOYSTICK_HIDAPI_XBOX_360_WIRELESS" - -/** - * \brief A variable controlling whether the HIDAPI driver for XBox One controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX - */ -#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE "SDL_JOYSTICK_HIDAPI_XBOX_ONE" - -/** - * \brief A variable controlling whether the Home button LED should be turned on when an Xbox One controller is opened - * - * This variable can be set to the following values: - * "0" - home button LED is turned off - * "1" - home button LED is turned on - * - * By default the Home button LED state is not changed. This hint can also be set to a floating point value between 0.0 and 1.0 which controls the brightness of the Home button LED. The default brightness is 0.4. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED "SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED" - -/** - * \brief A variable controlling whether the RAWINPUT joystick drivers should be used for better handling XInput-capable devices. - * - * This variable can be set to the following values: - * "0" - RAWINPUT drivers are not used - * "1" - RAWINPUT drivers are used (the default) - */ -#define SDL_HINT_JOYSTICK_RAWINPUT "SDL_JOYSTICK_RAWINPUT" - -/** - * \brief A variable controlling whether the RAWINPUT driver should pull correlated data from XInput. - * - * This variable can be set to the following values: - * "0" - RAWINPUT driver will only use data from raw input APIs - * "1" - RAWINPUT driver will also pull data from XInput, providing - * better trigger axes, guide button presses, and rumble support - * for Xbox controllers - * - * The default is "1". This hint applies to any joysticks opened after setting the hint. - */ -#define SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT" - -/** - * \brief A variable controlling whether the ROG Chakram mice should show up as joysticks - * - * This variable can be set to the following values: - * "0" - ROG Chakram mice do not show up as joysticks (the default) - * "1" - ROG Chakram mice show up as joysticks - */ -#define SDL_HINT_JOYSTICK_ROG_CHAKRAM "SDL_JOYSTICK_ROG_CHAKRAM" - -/** - * \brief A variable controlling whether a separate thread should be used - * for handling joystick detection and raw input messages on Windows - * - * This variable can be set to the following values: - * "0" - A separate thread is not used (the default) - * "1" - A separate thread is used for handling raw input messages - * - */ -#define SDL_HINT_JOYSTICK_THREAD "SDL_JOYSTICK_THREAD" - -/** - * \brief Determines whether SDL enforces that DRM master is required in order - * to initialize the KMSDRM video backend. - * - * The DRM subsystem has a concept of a "DRM master" which is a DRM client that - * has the ability to set planes, set cursor, etc. When SDL is DRM master, it - * can draw to the screen using the SDL rendering APIs. Without DRM master, SDL - * is still able to process input and query attributes of attached displays, - * but it cannot change display state or draw to the screen directly. - * - * In some cases, it can be useful to have the KMSDRM backend even if it cannot - * be used for rendering. An app may want to use SDL for input processing while - * using another rendering API (such as an MMAL overlay on Raspberry Pi) or - * using its own code to render to DRM overlays that SDL doesn't support. - * - * This hint must be set before initializing the video subsystem. - * - * This variable can be set to the following values: - * "0" - SDL will allow usage of the KMSDRM backend without DRM master - * "1" - SDL Will require DRM master to use the KMSDRM backend (default) - */ -#define SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER "SDL_KMSDRM_REQUIRE_DRM_MASTER" - -/** - * \brief A comma separated list of devices to open as joysticks - * - * This variable is currently only used by the Linux joystick driver. - */ -#define SDL_HINT_JOYSTICK_DEVICE "SDL_JOYSTICK_DEVICE" - -/** - * \brief A variable controlling whether joysticks on Linux will always treat 'hat' axis inputs (ABS_HAT0X - ABS_HAT3Y) as 8-way digital hats without checking whether they may be analog. - * - * This variable can be set to the following values: - * "0" - Only map hat axis inputs to digital hat outputs if the input axes appear to actually be digital (the default) - * "1" - Always handle the input axes numbered ABS_HAT0X to ABS_HAT3Y as digital hats - */ -#define SDL_HINT_LINUX_DIGITAL_HATS "SDL_LINUX_DIGITAL_HATS" - -/** - * \brief A variable controlling whether digital hats on Linux will apply deadzones to their underlying input axes or use unfiltered values. - * - * This variable can be set to the following values: - * "0" - Return digital hat values based on unfiltered input axis values - * "1" - Return digital hat values with deadzones on the input axes taken into account (the default) - */ -#define SDL_HINT_LINUX_HAT_DEADZONES "SDL_LINUX_HAT_DEADZONES" - -/** - * \brief A variable controlling whether to use the classic /dev/input/js* joystick interface or the newer /dev/input/event* joystick interface on Linux - * - * This variable can be set to the following values: - * "0" - Use /dev/input/event* - * "1" - Use /dev/input/js* - * - * By default the /dev/input/event* interfaces are used - */ -#define SDL_HINT_LINUX_JOYSTICK_CLASSIC "SDL_LINUX_JOYSTICK_CLASSIC" - -/** - * \brief A variable controlling whether joysticks on Linux adhere to their HID-defined deadzones or return unfiltered values. - * - * This variable can be set to the following values: - * "0" - Return unfiltered joystick axis values (the default) - * "1" - Return axis values with deadzones taken into account - */ -#define SDL_HINT_LINUX_JOYSTICK_DEADZONES "SDL_LINUX_JOYSTICK_DEADZONES" - -/** -* \brief When set don't force the SDL app to become a foreground process -* -* This hint only applies to Mac OS X. -* -*/ -#define SDL_HINT_MAC_BACKGROUND_APP "SDL_MAC_BACKGROUND_APP" - -/** - * \brief A variable that determines whether ctrl+click should generate a right-click event on Mac - * - * If present, holding ctrl while left clicking will generate a right click - * event when on Mac. - */ -#define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK" - -/** - * \brief A variable controlling whether dispatching OpenGL context updates should block the dispatching thread until the main thread finishes processing - * - * This variable can be set to the following values: - * "0" - Dispatching OpenGL context updates will block the dispatching thread until the main thread finishes processing (default). - * "1" - Dispatching OpenGL context updates will allow the dispatching thread to continue execution. - * - * Generally you want the default, but if you have OpenGL code in a background thread on a Mac, and the main thread - * hangs because it's waiting for that background thread, but that background thread is also hanging because it's - * waiting for the main thread to do an update, this might fix your issue. - * - * This hint only applies to macOS. - * - * This hint is available since SDL 2.24.0. - * - */ -#define SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH "SDL_MAC_OPENGL_ASYNC_DISPATCH" - -/** - * \brief A variable setting the double click radius, in pixels. - */ -#define SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS "SDL_MOUSE_DOUBLE_CLICK_RADIUS" - -/** - * \brief A variable setting the double click time, in milliseconds. - */ -#define SDL_HINT_MOUSE_DOUBLE_CLICK_TIME "SDL_MOUSE_DOUBLE_CLICK_TIME" - -/** - * \brief Allow mouse click events when clicking to focus an SDL window - * - * This variable can be set to the following values: - * "0" - Ignore mouse clicks that activate a window - * "1" - Generate events for mouse clicks that activate a window - * - * By default SDL will ignore mouse clicks that activate a window - */ -#define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH "SDL_MOUSE_FOCUS_CLICKTHROUGH" - -/** - * \brief A variable setting the speed scale for mouse motion, in floating point, when the mouse is not in relative mode - */ -#define SDL_HINT_MOUSE_NORMAL_SPEED_SCALE "SDL_MOUSE_NORMAL_SPEED_SCALE" - -/** - * \brief A variable controlling whether relative mouse mode constrains the mouse to the center of the window - * - * This variable can be set to the following values: - * "0" - Relative mouse mode constrains the mouse to the window - * "1" - Relative mouse mode constrains the mouse to the center of the window - * - * Constraining to the center of the window works better for FPS games and when the - * application is running over RDP. Constraining to the whole window works better - * for 2D games and increases the chance that the mouse will be in the correct - * position when using high DPI mice. - * - * By default SDL will constrain the mouse to the center of the window - */ -#define SDL_HINT_MOUSE_RELATIVE_MODE_CENTER "SDL_MOUSE_RELATIVE_MODE_CENTER" - -/** - * \brief A variable controlling whether relative mouse mode is implemented using mouse warping - * - * This variable can be set to the following values: - * "0" - Relative mouse mode uses raw input - * "1" - Relative mouse mode uses mouse warping - * - * By default SDL will use raw input for relative mouse mode - */ -#define SDL_HINT_MOUSE_RELATIVE_MODE_WARP "SDL_MOUSE_RELATIVE_MODE_WARP" - -/** - * \brief A variable controlling whether relative mouse motion is affected by renderer scaling - * - * This variable can be set to the following values: - * "0" - Relative motion is unaffected by DPI or renderer's logical size - * "1" - Relative motion is scaled according to DPI scaling and logical size - * - * By default relative mouse deltas are affected by DPI and renderer scaling - */ -#define SDL_HINT_MOUSE_RELATIVE_SCALING "SDL_MOUSE_RELATIVE_SCALING" - -/** - * \brief A variable setting the scale for mouse motion, in floating point, when the mouse is in relative mode - */ -#define SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE "SDL_MOUSE_RELATIVE_SPEED_SCALE" - -/** - * \brief A variable controlling whether the system mouse acceleration curve is used for relative mouse motion. - * - * This variable can be set to the following values: - * "0" - Relative mouse motion will be unscaled (the default) - * "1" - Relative mouse motion will be scaled using the system mouse acceleration curve. - * - * If SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE is set, that will override the system speed scale. - */ -#define SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE "SDL_MOUSE_RELATIVE_SYSTEM_SCALE" - -/** - * \brief A variable controlling whether a motion event should be generated for mouse warping in relative mode. - * - * This variable can be set to the following values: - * "0" - Warping the mouse will not generate a motion event in relative mode - * "1" - Warping the mouse will generate a motion event in relative mode - * - * By default warping the mouse will not generate motion events in relative mode. This avoids the application having to filter out large relative motion due to warping. - */ -#define SDL_HINT_MOUSE_RELATIVE_WARP_MOTION "SDL_MOUSE_RELATIVE_WARP_MOTION" - -/** - * \brief A variable controlling whether mouse events should generate synthetic touch events - * - * This variable can be set to the following values: - * "0" - Mouse events will not generate touch events (default for desktop platforms) - * "1" - Mouse events will generate touch events (default for mobile platforms, such as Android and iOS) - */ -#define SDL_HINT_MOUSE_TOUCH_EVENTS "SDL_MOUSE_TOUCH_EVENTS" - -/** - * \brief A variable controlling whether the mouse is captured while mouse buttons are pressed - * - * This variable can be set to the following values: - * "0" - The mouse is not captured while mouse buttons are pressed - * "1" - The mouse is captured while mouse buttons are pressed - * - * By default the mouse is captured while mouse buttons are pressed so if the mouse is dragged - * outside the window, the application continues to receive mouse events until the button is - * released. - */ -#define SDL_HINT_MOUSE_AUTO_CAPTURE "SDL_MOUSE_AUTO_CAPTURE" - -/** - * \brief Tell SDL not to catch the SIGINT or SIGTERM signals. - * - * This hint only applies to Unix-like platforms, and should set before - * any calls to SDL_Init() - * - * The variable can be set to the following values: - * "0" - SDL will install a SIGINT and SIGTERM handler, and when it - * catches a signal, convert it into an SDL_QUIT event. - * "1" - SDL will not install a signal handler at all. - */ -#define SDL_HINT_NO_SIGNAL_HANDLERS "SDL_NO_SIGNAL_HANDLERS" - -/** - * \brief A variable controlling what driver to use for OpenGL ES contexts. - * - * On some platforms, currently Windows and X11, OpenGL drivers may support - * creating contexts with an OpenGL ES profile. By default SDL uses these - * profiles, when available, otherwise it attempts to load an OpenGL ES - * library, e.g. that provided by the ANGLE project. This variable controls - * whether SDL follows this default behaviour or will always load an - * OpenGL ES library. - * - * Circumstances where this is useful include - * - Testing an app with a particular OpenGL ES implementation, e.g ANGLE, - * or emulator, e.g. those from ARM, Imagination or Qualcomm. - * - Resolving OpenGL ES function addresses at link time by linking with - * the OpenGL ES library instead of querying them at run time with - * SDL_GL_GetProcAddress(). - * - * Caution: for an application to work with the default behaviour across - * different OpenGL drivers it must query the OpenGL ES function - * addresses at run time using SDL_GL_GetProcAddress(). - * - * This variable is ignored on most platforms because OpenGL ES is native - * or not supported. - * - * This variable can be set to the following values: - * "0" - Use ES profile of OpenGL, if available. (Default when not set.) - * "1" - Load OpenGL ES library using the default library names. - * - */ -#define SDL_HINT_OPENGL_ES_DRIVER "SDL_OPENGL_ES_DRIVER" - -/** - * \brief A variable controlling which orientations are allowed on iOS/Android. - * - * In some circumstances it is necessary to be able to explicitly control - * which UI orientations are allowed. - * - * This variable is a space delimited list of the following values: - * "LandscapeLeft", "LandscapeRight", "Portrait" "PortraitUpsideDown" - */ -#define SDL_HINT_ORIENTATIONS "SDL_IOS_ORIENTATIONS" - -/** - * \brief A variable controlling the use of a sentinel event when polling the event queue - * - * This variable can be set to the following values: - * "0" - Disable poll sentinels - * "1" - Enable poll sentinels - * - * When polling for events, SDL_PumpEvents is used to gather new events from devices. - * If a device keeps producing new events between calls to SDL_PumpEvents, a poll loop will - * become stuck until the new events stop. - * This is most noticeable when moving a high frequency mouse. - * - * By default, poll sentinels are enabled. - */ -#define SDL_HINT_POLL_SENTINEL "SDL_POLL_SENTINEL" - -/** - * \brief Override for SDL_GetPreferredLocales() - * - * If set, this will be favored over anything the OS might report for the - * user's preferred locales. Changing this hint at runtime will not generate - * a SDL_LOCALECHANGED event (but if you can change the hint, you can push - * your own event, if you want). - * - * The format of this hint is a comma-separated list of language and locale, - * combined with an underscore, as is a common format: "en_GB". Locale is - * optional: "en". So you might have a list like this: "en_GB,jp,es_PT" - */ -#define SDL_HINT_PREFERRED_LOCALES "SDL_PREFERRED_LOCALES" - -/** - * \brief A variable describing the content orientation on QtWayland-based platforms. - * - * On QtWayland platforms, windows are rotated client-side to allow for custom - * transitions. In order to correctly position overlays (e.g. volume bar) and - * gestures (e.g. events view, close/minimize gestures), the system needs to - * know in which orientation the application is currently drawing its contents. - * - * This does not cause the window to be rotated or resized, the application - * needs to take care of drawing the content in the right orientation (the - * framebuffer is always in portrait mode). - * - * This variable can be one of the following values: - * "primary" (default), "portrait", "landscape", "inverted-portrait", "inverted-landscape" - * - * Since SDL 2.0.22 this variable accepts a comma-separated list of values above. - */ -#define SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION "SDL_QTWAYLAND_CONTENT_ORIENTATION" - -/** - * \brief Flags to set on QtWayland windows to integrate with the native window manager. - * - * On QtWayland platforms, this hint controls the flags to set on the windows. - * For example, on Sailfish OS "OverridesSystemGestures" disables swipe gestures. - * - * This variable is a space-separated list of the following values (empty = no flags): - * "OverridesSystemGestures", "StaysOnTop", "BypassWindowManager" - */ -#define SDL_HINT_QTWAYLAND_WINDOW_FLAGS "SDL_QTWAYLAND_WINDOW_FLAGS" - -/** - * \brief A variable controlling whether the 2D render API is compatible or efficient. - * - * This variable can be set to the following values: - * - * "0" - Don't use batching to make rendering more efficient. - * "1" - Use batching, but might cause problems if app makes its own direct OpenGL calls. - * - * Up to SDL 2.0.9, the render API would draw immediately when requested. Now - * it batches up draw requests and sends them all to the GPU only when forced - * to (during SDL_RenderPresent, when changing render targets, by updating a - * texture that the batch needs, etc). This is significantly more efficient, - * but it can cause problems for apps that expect to render on top of the - * render API's output. As such, SDL will disable batching if a specific - * render backend is requested (since this might indicate that the app is - * planning to use the underlying graphics API directly). This hint can - * be used to explicitly request batching in this instance. It is a contract - * that you will either never use the underlying graphics API directly, or - * if you do, you will call SDL_RenderFlush() before you do so any current - * batch goes to the GPU before your work begins. Not following this contract - * will result in undefined behavior. - */ -#define SDL_HINT_RENDER_BATCHING "SDL_RENDER_BATCHING" - -/** - * \brief A variable controlling how the 2D render API renders lines - * - * This variable can be set to the following values: - * "0" - Use the default line drawing method (Bresenham's line algorithm as of SDL 2.0.20) - * "1" - Use the driver point API using Bresenham's line algorithm (correct, draws many points) - * "2" - Use the driver line API (occasionally misses line endpoints based on hardware driver quirks, was the default before 2.0.20) - * "3" - Use the driver geometry API (correct, draws thicker diagonal lines) - * - * This variable should be set when the renderer is created. - */ -#define SDL_HINT_RENDER_LINE_METHOD "SDL_RENDER_LINE_METHOD" - -/** - * \brief A variable controlling whether to enable Direct3D 11+'s Debug Layer. - * - * This variable does not have any effect on the Direct3D 9 based renderer. - * - * This variable can be set to the following values: - * "0" - Disable Debug Layer use - * "1" - Enable Debug Layer use - * - * By default, SDL does not use Direct3D Debug Layer. - */ -#define SDL_HINT_RENDER_DIRECT3D11_DEBUG "SDL_RENDER_DIRECT3D11_DEBUG" - -/** - * \brief A variable controlling whether the Direct3D device is initialized for thread-safe operations. - * - * This variable can be set to the following values: - * "0" - Thread-safety is not enabled (faster) - * "1" - Thread-safety is enabled - * - * By default the Direct3D device is created with thread-safety disabled. - */ -#define SDL_HINT_RENDER_DIRECT3D_THREADSAFE "SDL_RENDER_DIRECT3D_THREADSAFE" - -/** - * \brief A variable specifying which render driver to use. - * - * If the application doesn't pick a specific renderer to use, this variable - * specifies the name of the preferred renderer. If the preferred renderer - * can't be initialized, the normal default renderer is used. - * - * This variable is case insensitive and can be set to the following values: - * "direct3d" - * "direct3d11" - * "direct3d12" - * "opengl" - * "opengles2" - * "opengles" - * "metal" - * "software" - * - * The default varies by platform, but it's the first one in the list that - * is available on the current platform. - */ -#define SDL_HINT_RENDER_DRIVER "SDL_RENDER_DRIVER" - -/** - * \brief A variable controlling the scaling policy for SDL_RenderSetLogicalSize. - * - * This variable can be set to the following values: - * "0" or "letterbox" - Uses letterbox/sidebars to fit the entire rendering on screen - * "1" or "overscan" - Will zoom the rendering so it fills the entire screen, allowing edges to be drawn offscreen - * - * By default letterbox is used - */ -#define SDL_HINT_RENDER_LOGICAL_SIZE_MODE "SDL_RENDER_LOGICAL_SIZE_MODE" - -/** - * \brief A variable controlling whether the OpenGL render driver uses shaders if they are available. - * - * This variable can be set to the following values: - * "0" - Disable shaders - * "1" - Enable shaders - * - * By default shaders are used if OpenGL supports them. - */ -#define SDL_HINT_RENDER_OPENGL_SHADERS "SDL_RENDER_OPENGL_SHADERS" - -/** - * \brief A variable controlling the scaling quality - * - * This variable can be set to the following values: - * "0" or "nearest" - Nearest pixel sampling - * "1" or "linear" - Linear filtering (supported by OpenGL and Direct3D) - * "2" or "best" - Currently this is the same as "linear" - * - * By default nearest pixel sampling is used - */ -#define SDL_HINT_RENDER_SCALE_QUALITY "SDL_RENDER_SCALE_QUALITY" - -/** - * \brief A variable controlling whether updates to the SDL screen surface should be synchronized with the vertical refresh, to avoid tearing. - * - * This variable can be set to the following values: - * "0" - Disable vsync - * "1" - Enable vsync - * - * By default SDL does not sync screen surface updates with vertical refresh. - */ -#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC" - -/** - * \brief A variable controlling if VSYNC is automatically disable if doesn't reach the enough FPS - * - * This variable can be set to the following values: - * "0" - It will be using VSYNC as defined in the main flag. Default - * "1" - If VSYNC was previously enabled, then it will disable VSYNC if doesn't reach enough speed - * - * By default SDL does not enable the automatic VSYNC - */ -#define SDL_HINT_PS2_DYNAMIC_VSYNC "SDL_PS2_DYNAMIC_VSYNC" - -/** - * \brief A variable to control whether the return key on the soft keyboard - * should hide the soft keyboard on Android and iOS. - * - * The variable can be set to the following values: - * "0" - The return key will be handled as a key event. This is the behaviour of SDL <= 2.0.3. (default) - * "1" - The return key will hide the keyboard. - * - * The value of this hint is used at runtime, so it can be changed at any time. - */ -#define SDL_HINT_RETURN_KEY_HIDES_IME "SDL_RETURN_KEY_HIDES_IME" - -/** - * \brief Tell SDL which Dispmanx layer to use on a Raspberry PI - * - * Also known as Z-order. The variable can take a negative or positive value. - * The default is 10000. - */ -#define SDL_HINT_RPI_VIDEO_LAYER "SDL_RPI_VIDEO_LAYER" - -/** - * \brief Specify an "activity name" for screensaver inhibition. - * - * Some platforms, notably Linux desktops, list the applications which are - * inhibiting the screensaver or other power-saving features. - * - * This hint lets you specify the "activity name" sent to the OS when - * SDL_DisableScreenSaver() is used (or the screensaver is automatically - * disabled). The contents of this hint are used when the screensaver is - * disabled. You should use a string that describes what your program is doing - * (and, therefore, why the screensaver is disabled). For example, "Playing a - * game" or "Watching a video". - * - * Setting this to "" or leaving it unset will have SDL use a reasonable - * default: "Playing a game" or something similar. - * - * On targets where this is not supported, this hint does nothing. - */ -#define SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME "SDL_SCREENSAVER_INHIBIT_ACTIVITY_NAME" - -/** - * \brief Specifies whether SDL_THREAD_PRIORITY_TIME_CRITICAL should be treated as realtime. - * - * On some platforms, like Linux, a realtime priority thread may be subject to restrictions - * that require special handling by the application. This hint exists to let SDL know that - * the app is prepared to handle said restrictions. - * - * On Linux, SDL will apply the following configuration to any thread that becomes realtime: - * * The SCHED_RESET_ON_FORK bit will be set on the scheduling policy, - * * An RLIMIT_RTTIME budget will be configured to the rtkit specified limit. - * * Exceeding this limit will result in the kernel sending SIGKILL to the app, - * * Refer to the man pages for more information. - * - * This variable can be set to the following values: - * "0" - default platform specific behaviour - * "1" - Force SDL_THREAD_PRIORITY_TIME_CRITICAL to a realtime scheduling policy - */ -#define SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL" - -/** -* \brief A string specifying additional information to use with SDL_SetThreadPriority. -* -* By default SDL_SetThreadPriority will make appropriate system changes in order to -* apply a thread priority. For example on systems using pthreads the scheduler policy -* is changed automatically to a policy that works well with a given priority. -* Code which has specific requirements can override SDL's default behavior with this hint. -* -* pthread hint values are "current", "other", "fifo" and "rr". -* Currently no other platform hint values are defined but may be in the future. -* -* \note On Linux, the kernel may send SIGKILL to realtime tasks which exceed the distro -* configured execution budget for rtkit. This budget can be queried through RLIMIT_RTTIME -* after calling SDL_SetThreadPriority(). -*/ -#define SDL_HINT_THREAD_PRIORITY_POLICY "SDL_THREAD_PRIORITY_POLICY" - -/** -* \brief A string specifying SDL's threads stack size in bytes or "0" for the backend's default size -* -* Use this hint in case you need to set SDL's threads stack size to other than the default. -* This is specially useful if you build SDL against a non glibc libc library (such as musl) which -* provides a relatively small default thread stack size (a few kilobytes versus the default 8MB glibc uses). -* Support for this hint is currently available only in the pthread, Windows, and PSP backend. -* -* Instead of this hint, in 2.0.9 and later, you can use -* SDL_CreateThreadWithStackSize(). This hint only works with the classic -* SDL_CreateThread(). -*/ -#define SDL_HINT_THREAD_STACK_SIZE "SDL_THREAD_STACK_SIZE" - -/** - * \brief A variable that controls the timer resolution, in milliseconds. - * - * The higher resolution the timer, the more frequently the CPU services - * timer interrupts, and the more precise delays are, but this takes up - * power and CPU time. This hint is only used on Windows. - * - * See this blog post for more information: - * http://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/ - * - * If this variable is set to "0", the system timer resolution is not set. - * - * The default value is "1". This hint may be set at any time. - */ -#define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION" - -/** - * \brief A variable controlling whether touch events should generate synthetic mouse events - * - * This variable can be set to the following values: - * "0" - Touch events will not generate mouse events - * "1" - Touch events will generate mouse events - * - * By default SDL will generate mouse events for touch events - */ -#define SDL_HINT_TOUCH_MOUSE_EVENTS "SDL_TOUCH_MOUSE_EVENTS" - -/** - * \brief A variable controlling which touchpad should generate synthetic mouse events - * - * This variable can be set to the following values: - * "0" - Only front touchpad should generate mouse events. Default - * "1" - Only back touchpad should generate mouse events. - * "2" - Both touchpads should generate mouse events. - * - * By default SDL will generate mouse events for all touch devices - */ -#define SDL_HINT_VITA_TOUCH_MOUSE_DEVICE "SDL_HINT_VITA_TOUCH_MOUSE_DEVICE" - -/** - * \brief A variable controlling whether the Android / tvOS remotes - * should be listed as joystick devices, instead of sending keyboard events. - * - * This variable can be set to the following values: - * "0" - Remotes send enter/escape/arrow key events - * "1" - Remotes are available as 2 axis, 2 button joysticks (the default). - */ -#define SDL_HINT_TV_REMOTE_AS_JOYSTICK "SDL_TV_REMOTE_AS_JOYSTICK" - -/** - * \brief A variable controlling whether the screensaver is enabled. - * - * This variable can be set to the following values: - * "0" - Disable screensaver - * "1" - Enable screensaver - * - * By default SDL will disable the screensaver. - */ -#define SDL_HINT_VIDEO_ALLOW_SCREENSAVER "SDL_VIDEO_ALLOW_SCREENSAVER" - -/** - * \brief Tell the video driver that we only want a double buffer. - * - * By default, most lowlevel 2D APIs will use a triple buffer scheme that - * wastes no CPU time on waiting for vsync after issuing a flip, but - * introduces a frame of latency. On the other hand, using a double buffer - * scheme instead is recommended for cases where low latency is an important - * factor because we save a whole frame of latency. - * We do so by waiting for vsync immediately after issuing a flip, usually just - * after eglSwapBuffers call in the backend's *_SwapWindow function. - * - * Since it's driver-specific, it's only supported where possible and - * implemented. Currently supported the following drivers: - * - * - KMSDRM (kmsdrm) - * - Raspberry Pi (raspberrypi) - */ -#define SDL_HINT_VIDEO_DOUBLE_BUFFER "SDL_VIDEO_DOUBLE_BUFFER" - -/** - * \brief A variable controlling whether the EGL window is allowed to be - * composited as transparent, rather than opaque. - * - * Most window systems will always render windows opaque, even if the surface - * format has an alpha channel. This is not always true, however, so by default - * SDL will try to enforce opaque composition. To override this behavior, you - * can set this hint to "1". - */ -#define SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY "SDL_VIDEO_EGL_ALLOW_TRANSPARENCY" - -/** - * \brief A variable controlling whether the graphics context is externally managed. - * - * This variable can be set to the following values: - * "0" - SDL will manage graphics contexts that are attached to windows. - * "1" - Disable graphics context management on windows. - * - * By default SDL will manage OpenGL contexts in certain situations. For example, on Android the - * context will be automatically saved and restored when pausing the application. Additionally, some - * platforms will assume usage of OpenGL if Vulkan isn't used. Setting this to "1" will prevent this - * behavior, which is desireable when the application manages the graphics context, such as - * an externally managed OpenGL context or attaching a Vulkan surface to the window. - */ -#define SDL_HINT_VIDEO_EXTERNAL_CONTEXT "SDL_VIDEO_EXTERNAL_CONTEXT" - -/** - * \brief If set to 1, then do not allow high-DPI windows. ("Retina" on Mac and iOS) - */ -#define SDL_HINT_VIDEO_HIGHDPI_DISABLED "SDL_VIDEO_HIGHDPI_DISABLED" - -/** - * \brief A variable that dictates policy for fullscreen Spaces on Mac OS X. - * - * This hint only applies to Mac OS X. - * - * The variable can be set to the following values: - * "0" - Disable Spaces support (FULLSCREEN_DESKTOP won't use them and - * SDL_WINDOW_RESIZABLE windows won't offer the "fullscreen" - * button on their titlebars). - * "1" - Enable Spaces support (FULLSCREEN_DESKTOP will use them and - * SDL_WINDOW_RESIZABLE windows will offer the "fullscreen" - * button on their titlebars). - * - * The default value is "1". This hint must be set before any windows are created. - */ -#define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES "SDL_VIDEO_MAC_FULLSCREEN_SPACES" - -/** - * \brief Minimize your SDL_Window if it loses key focus when in fullscreen mode. Defaults to false. - * \warning Before SDL 2.0.14, this defaulted to true! In 2.0.14, we're - * seeing if "true" causes more problems than it solves in modern times. - * - */ -#define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS" - -/** - * \brief A variable controlling whether the libdecor Wayland backend is allowed to be used. - * - * This variable can be set to the following values: - * "0" - libdecor use is disabled. - * "1" - libdecor use is enabled (default). - * - * libdecor is used over xdg-shell when xdg-decoration protocol is unavailable. - */ -#define SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR" - -/** - * \brief A variable controlling whether the libdecor Wayland backend is preferred over native decrations. - * - * When this hint is set, libdecor will be used to provide window decorations, even if xdg-decoration is - * available. (Note that, by default, libdecor will use xdg-decoration itself if available). - * - * This variable can be set to the following values: - * "0" - libdecor is enabled only if server-side decorations are unavailable. - * "1" - libdecor is always enabled if available. - * - * libdecor is used over xdg-shell when xdg-decoration protocol is unavailable. - */ -#define SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR "SDL_VIDEO_WAYLAND_PREFER_LIBDECOR" - -/** - * \brief A variable controlling whether video mode emulation is enabled under Wayland. - * - * When this hint is set, a standard set of emulated CVT video modes will be exposed for use by the application. - * If it is disabled, the only modes exposed will be the logical desktop size and, in the case of a scaled - * desktop, the native display resolution. - * - * This variable can be set to the following values: - * "0" - Video mode emulation is disabled. - * "1" - Video mode emulation is enabled. - * - * By default video mode emulation is enabled. - */ -#define SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION "SDL_VIDEO_WAYLAND_MODE_EMULATION" - -/** - * \brief Enable or disable mouse pointer warp emulation, needed by some older games. - * - * When this hint is set, any SDL will emulate mouse warps using relative mouse mode. - * This is required for some older games (such as Source engine games), which warp the - * mouse to the centre of the screen rather than using relative mouse motion. Note that - * relative mouse mode may have different mouse acceleration behaviour than pointer warps. - * - * This variable can be set to the following values: - * "0" - All mouse warps fail, as mouse warping is not available under wayland. - * "1" - Some mouse warps will be emulated by forcing relative mouse mode. - * - * If not set, this is automatically enabled unless an application uses relative mouse - * mode directly. - */ -#define SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP "SDL_VIDEO_WAYLAND_EMULATE_MOUSE_WARP" - -/** -* \brief A variable that is the address of another SDL_Window* (as a hex string formatted with "%p"). -* -* If this hint is set before SDL_CreateWindowFrom() and the SDL_Window* it is set to has -* SDL_WINDOW_OPENGL set (and running on WGL only, currently), then two things will occur on the newly -* created SDL_Window: -* -* 1. Its pixel format will be set to the same pixel format as this SDL_Window. This is -* needed for example when sharing an OpenGL context across multiple windows. -* -* 2. The flag SDL_WINDOW_OPENGL will be set on the new window so it can be used for -* OpenGL rendering. -* -* This variable can be set to the following values: -* The address (as a string "%p") of the SDL_Window* that new windows created with SDL_CreateWindowFrom() should -* share a pixel format with. -*/ -#define SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT" - -/** - * \brief When calling SDL_CreateWindowFrom(), make the window compatible with OpenGL. - * - * This variable can be set to the following values: - * "0" - Don't add any graphics flags to the SDL_WindowFlags - * "1" - Add SDL_WINDOW_OPENGL to the SDL_WindowFlags - * - * By default SDL will not make the foreign window compatible with OpenGL. - */ -#define SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL "SDL_VIDEO_FOREIGN_WINDOW_OPENGL" - -/** - * \brief When calling SDL_CreateWindowFrom(), make the window compatible with Vulkan. - * - * This variable can be set to the following values: - * "0" - Don't add any graphics flags to the SDL_WindowFlags - * "1" - Add SDL_WINDOW_VULKAN to the SDL_WindowFlags - * - * By default SDL will not make the foreign window compatible with Vulkan. - */ -#define SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN "SDL_VIDEO_FOREIGN_WINDOW_VULKAN" - -/** -* \brief A variable specifying which shader compiler to preload when using the Chrome ANGLE binaries -* -* SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It -* can use two different sets of binaries, those compiled by the user from source -* or those provided by the Chrome browser. In the later case, these binaries require -* that SDL loads a DLL providing the shader compiler. -* -* This variable can be set to the following values: -* "d3dcompiler_46.dll" - default, best for Vista or later. -* "d3dcompiler_43.dll" - for XP support. -* "none" - do not load any library, useful if you compiled ANGLE from source and included the compiler in your binaries. -* -*/ -#define SDL_HINT_VIDEO_WIN_D3DCOMPILER "SDL_VIDEO_WIN_D3DCOMPILER" - -/** - * \brief A variable controlling whether X11 should use GLX or EGL by default - * - * This variable can be set to the following values: - * "0" - Use GLX - * "1" - Use EGL - * - * By default SDL will use GLX when both are present. - */ -#define SDL_HINT_VIDEO_X11_FORCE_EGL "SDL_VIDEO_X11_FORCE_EGL" - -/** - * \brief A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint should be used. - * - * This variable can be set to the following values: - * "0" - Disable _NET_WM_BYPASS_COMPOSITOR - * "1" - Enable _NET_WM_BYPASS_COMPOSITOR - * - * By default SDL will use _NET_WM_BYPASS_COMPOSITOR - * - */ -#define SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR" - -/** - * \brief A variable controlling whether the X11 _NET_WM_PING protocol should be supported. - * - * This variable can be set to the following values: - * "0" - Disable _NET_WM_PING - * "1" - Enable _NET_WM_PING - * - * By default SDL will use _NET_WM_PING, but for applications that know they - * will not always be able to respond to ping requests in a timely manner they can - * turn it off to avoid the window manager thinking the app is hung. - * The hint is checked in CreateWindow. - */ -#define SDL_HINT_VIDEO_X11_NET_WM_PING "SDL_VIDEO_X11_NET_WM_PING" - -/** - * \brief A variable forcing the visual ID chosen for new X11 windows - * - */ -#define SDL_HINT_VIDEO_X11_WINDOW_VISUALID "SDL_VIDEO_X11_WINDOW_VISUALID" - -/** - * \brief A no-longer-used variable controlling whether the X11 Xinerama extension should be used. - * - * Before SDL 2.0.24, this would let apps and users disable Xinerama support on X11. - * Now SDL never uses Xinerama, and does not check for this hint at all. - * The preprocessor define is left here for source compatibility. - */ -#define SDL_HINT_VIDEO_X11_XINERAMA "SDL_VIDEO_X11_XINERAMA" - -/** - * \brief A variable controlling whether the X11 XRandR extension should be used. - * - * This variable can be set to the following values: - * "0" - Disable XRandR - * "1" - Enable XRandR - * - * By default SDL will use XRandR. - */ -#define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR" - -/** - * \brief A no-longer-used variable controlling whether the X11 VidMode extension should be used. - * - * Before SDL 2.0.24, this would let apps and users disable XVidMode support on X11. - * Now SDL never uses XVidMode, and does not check for this hint at all. - * The preprocessor define is left here for source compatibility. - */ -#define SDL_HINT_VIDEO_X11_XVIDMODE "SDL_VIDEO_X11_XVIDMODE" - -/** - * \brief Controls how the fact chunk affects the loading of a WAVE file. - * - * The fact chunk stores information about the number of samples of a WAVE - * file. The Standards Update from Microsoft notes that this value can be used - * to 'determine the length of the data in seconds'. This is especially useful - * for compressed formats (for which this is a mandatory chunk) if they produce - * multiple sample frames per block and truncating the block is not allowed. - * The fact chunk can exactly specify how many sample frames there should be - * in this case. - * - * Unfortunately, most application seem to ignore the fact chunk and so SDL - * ignores it by default as well. - * - * This variable can be set to the following values: - * - * "truncate" - Use the number of samples to truncate the wave data if - * the fact chunk is present and valid - * "strict" - Like "truncate", but raise an error if the fact chunk - * is invalid, not present for non-PCM formats, or if the - * data chunk doesn't have that many samples - * "ignorezero" - Like "truncate", but ignore fact chunk if the number of - * samples is zero - * "ignore" - Ignore fact chunk entirely (default) - */ -#define SDL_HINT_WAVE_FACT_CHUNK "SDL_WAVE_FACT_CHUNK" - -/** - * \brief Controls how the size of the RIFF chunk affects the loading of a WAVE file. - * - * The size of the RIFF chunk (which includes all the sub-chunks of the WAVE - * file) is not always reliable. In case the size is wrong, it's possible to - * just ignore it and step through the chunks until a fixed limit is reached. - * - * Note that files that have trailing data unrelated to the WAVE file or - * corrupt files may slow down the loading process without a reliable boundary. - * By default, SDL stops after 10000 chunks to prevent wasting time. Use the - * environment variable SDL_WAVE_CHUNK_LIMIT to adjust this value. - * - * This variable can be set to the following values: - * - * "force" - Always use the RIFF chunk size as a boundary for the chunk search - * "ignorezero" - Like "force", but a zero size searches up to 4 GiB (default) - * "ignore" - Ignore the RIFF chunk size and always search up to 4 GiB - * "maximum" - Search for chunks until the end of file (not recommended) - */ -#define SDL_HINT_WAVE_RIFF_CHUNK_SIZE "SDL_WAVE_RIFF_CHUNK_SIZE" - -/** - * \brief Controls how a truncated WAVE file is handled. - * - * A WAVE file is considered truncated if any of the chunks are incomplete or - * the data chunk size is not a multiple of the block size. By default, SDL - * decodes until the first incomplete block, as most applications seem to do. - * - * This variable can be set to the following values: - * - * "verystrict" - Raise an error if the file is truncated - * "strict" - Like "verystrict", but the size of the RIFF chunk is ignored - * "dropframe" - Decode until the first incomplete sample frame - * "dropblock" - Decode until the first incomplete block (default) - */ -#define SDL_HINT_WAVE_TRUNCATION "SDL_WAVE_TRUNCATION" - -/** - * \brief Tell SDL not to name threads on Windows with the 0x406D1388 Exception. - * The 0x406D1388 Exception is a trick used to inform Visual Studio of a - * thread's name, but it tends to cause problems with other debuggers, - * and the .NET runtime. Note that SDL 2.0.6 and later will still use - * the (safer) SetThreadDescription API, introduced in the Windows 10 - * Creators Update, if available. - * - * The variable can be set to the following values: - * "0" - SDL will raise the 0x406D1388 Exception to name threads. - * This is the default behavior of SDL <= 2.0.4. - * "1" - SDL will not raise this exception, and threads will be unnamed. (default) - * This is necessary with .NET languages or debuggers that aren't Visual Studio. - */ -#define SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING "SDL_WINDOWS_DISABLE_THREAD_NAMING" - -/** - * \brief Controls whether menus can be opened with their keyboard shortcut (Alt+mnemonic). - * - * If the mnemonics are enabled, then menus can be opened by pressing the Alt - * key and the corresponding mnemonic (for example, Alt+F opens the File menu). - * However, in case an invalid mnemonic is pressed, Windows makes an audible - * beep to convey that nothing happened. This is true even if the window has - * no menu at all! - * - * Because most SDL applications don't have menus, and some want to use the Alt - * key for other purposes, SDL disables mnemonics (and the beeping) by default. - * - * Note: This also affects keyboard events: with mnemonics enabled, when a - * menu is opened from the keyboard, you will not receive a KEYUP event for - * the mnemonic key, and *might* not receive one for Alt. - * - * This variable can be set to the following values: - * "0" - Alt+mnemonic does nothing, no beeping. (default) - * "1" - Alt+mnemonic opens menus, invalid mnemonics produce a beep. - */ -#define SDL_HINT_WINDOWS_ENABLE_MENU_MNEMONICS "SDL_WINDOWS_ENABLE_MENU_MNEMONICS" - -/** - * \brief A variable controlling whether the windows message loop is processed by SDL - * - * This variable can be set to the following values: - * "0" - The window message loop is not run - * "1" - The window message loop is processed in SDL_PumpEvents() - * - * By default SDL will process the windows message loop - */ -#define SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP "SDL_WINDOWS_ENABLE_MESSAGELOOP" - -/** - * \brief Force SDL to use Critical Sections for mutexes on Windows. - * On Windows 7 and newer, Slim Reader/Writer Locks are available. - * They offer better performance, allocate no kernel ressources and - * use less memory. SDL will fall back to Critical Sections on older - * OS versions or if forced to by this hint. - * - * This variable can be set to the following values: - * "0" - Use SRW Locks when available. If not, fall back to Critical Sections. (default) - * "1" - Force the use of Critical Sections in all cases. - * - */ -#define SDL_HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS "SDL_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS" - -/** - * \brief Force SDL to use Kernel Semaphores on Windows. - * Kernel Semaphores are inter-process and require a context - * switch on every interaction. On Windows 8 and newer, the - * WaitOnAddress API is available. Using that and atomics to - * implement semaphores increases performance. - * SDL will fall back to Kernel Objects on older OS versions - * or if forced to by this hint. - * - * This variable can be set to the following values: - * "0" - Use Atomics and WaitOnAddress API when available. If not, fall back to Kernel Objects. (default) - * "1" - Force the use of Kernel Objects in all cases. - * - */ -#define SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL" - -/** - * \brief A variable to specify custom icon resource id from RC file on Windows platform - */ -#define SDL_HINT_WINDOWS_INTRESOURCE_ICON "SDL_WINDOWS_INTRESOURCE_ICON" -#define SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL "SDL_WINDOWS_INTRESOURCE_ICON_SMALL" - -/** - * \brief Tell SDL not to generate window-close events for Alt+F4 on Windows. - * - * The variable can be set to the following values: - * "0" - SDL will generate a window-close event when it sees Alt+F4. - * "1" - SDL will only do normal key handling for Alt+F4. - */ -#define SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4" - -/** - * \brief Use the D3D9Ex API introduced in Windows Vista, instead of normal D3D9. - * Direct3D 9Ex contains changes to state management that can eliminate device - * loss errors during scenarios like Alt+Tab or UAC prompts. D3D9Ex may require - * some changes to your application to cope with the new behavior, so this - * is disabled by default. - * - * This hint must be set before initializing the video subsystem. - * - * For more information on Direct3D 9Ex, see: - * - https://docs.microsoft.com/en-us/windows/win32/direct3darticles/graphics-apis-in-windows-vista#direct3d-9ex - * - https://docs.microsoft.com/en-us/windows/win32/direct3darticles/direct3d-9ex-improvements - * - * This variable can be set to the following values: - * "0" - Use the original Direct3D 9 API (default) - * "1" - Use the Direct3D 9Ex API on Vista and later (and fall back if D3D9Ex is unavailable) - * - */ -#define SDL_HINT_WINDOWS_USE_D3D9EX "SDL_WINDOWS_USE_D3D9EX" - -/** - * \brief Controls whether SDL will declare the process to be DPI aware. - * - * This hint must be set before initializing the video subsystem. - * - * The main purpose of declaring DPI awareness is to disable OS bitmap scaling of SDL windows on monitors with - * a DPI scale factor. - * - * This hint is equivalent to requesting DPI awareness via external means (e.g. calling SetProcessDpiAwarenessContext) - * and does not cause SDL to use a virtualized coordinate system, so it will generally give you 1 SDL coordinate = 1 pixel - * even on high-DPI displays. - * - * For more information, see: - * https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows - * - * This variable can be set to the following values: - * "" - Do not change the DPI awareness (default). - * "unaware" - Declare the process as DPI unaware. (Windows 8.1 and later). - * "system" - Request system DPI awareness. (Vista and later). - * "permonitor" - Request per-monitor DPI awareness. (Windows 8.1 and later). - * "permonitorv2" - Request per-monitor V2 DPI awareness. (Windows 10, version 1607 and later). - * The most visible difference from "permonitor" is that window title bar will be scaled - * to the visually correct size when dragging between monitors with different scale factors. - * This is the preferred DPI awareness level. - * - * If the requested DPI awareness is not available on the currently running OS, SDL will try to request the best - * available match. - */ -#define SDL_HINT_WINDOWS_DPI_AWARENESS "SDL_WINDOWS_DPI_AWARENESS" - -/** - * \brief Uses DPI-scaled points as the SDL coordinate system on Windows. - * - * This changes the SDL coordinate system units to be DPI-scaled points, rather than pixels everywhere. - * This means windows will be appropriately sized, even when created on high-DPI displays with scaling. - * - * e.g. requesting a 640x480 window from SDL, on a display with 125% scaling in Windows display settings, - * will create a window with an 800x600 client area (in pixels). - * - * Setting this to "1" implicitly requests process DPI awareness (setting SDL_WINDOWS_DPI_AWARENESS is unnecessary), - * and forces SDL_WINDOW_ALLOW_HIGHDPI on all windows. - * - * This variable can be set to the following values: - * "0" - SDL coordinates equal Windows coordinates. No automatic window resizing when dragging - * between monitors with different scale factors (unless this is performed by - * Windows itself, which is the case when the process is DPI unaware). - * "1" - SDL coordinates are in DPI-scaled points. Automatically resize windows as needed on - * displays with non-100% scale factors. - */ -#define SDL_HINT_WINDOWS_DPI_SCALING "SDL_WINDOWS_DPI_SCALING" - -/** - * \brief A variable controlling whether the window frame and title bar are interactive when the cursor is hidden - * - * This variable can be set to the following values: - * "0" - The window frame is not interactive when the cursor is hidden (no move, resize, etc) - * "1" - The window frame is interactive when the cursor is hidden - * - * By default SDL will allow interaction with the window frame when the cursor is hidden - */ -#define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN" - -/** -* \brief A variable controlling whether the window is activated when the SDL_ShowWindow function is called -* -* This variable can be set to the following values: -* "0" - The window is activated when the SDL_ShowWindow function is called -* "1" - The window is not activated when the SDL_ShowWindow function is called -* -* By default SDL will activate the window when the SDL_ShowWindow function is called -*/ -#define SDL_HINT_WINDOW_NO_ACTIVATION_WHEN_SHOWN "SDL_WINDOW_NO_ACTIVATION_WHEN_SHOWN" - -/** \brief Allows back-button-press events on Windows Phone to be marked as handled - * - * Windows Phone devices typically feature a Back button. When pressed, - * the OS will emit back-button-press events, which apps are expected to - * handle in an appropriate manner. If apps do not explicitly mark these - * events as 'Handled', then the OS will invoke its default behavior for - * unhandled back-button-press events, which on Windows Phone 8 and 8.1 is to - * terminate the app (and attempt to switch to the previous app, or to the - * device's home screen). - * - * Setting the SDL_HINT_WINRT_HANDLE_BACK_BUTTON hint to "1" will cause SDL - * to mark back-button-press events as Handled, if and when one is sent to - * the app. - * - * Internally, Windows Phone sends back button events as parameters to - * special back-button-press callback functions. Apps that need to respond - * to back-button-press events are expected to register one or more - * callback functions for such, shortly after being launched (during the - * app's initialization phase). After the back button is pressed, the OS - * will invoke these callbacks. If the app's callback(s) do not explicitly - * mark the event as handled by the time they return, or if the app never - * registers one of these callback, the OS will consider the event - * un-handled, and it will apply its default back button behavior (terminate - * the app). - * - * SDL registers its own back-button-press callback with the Windows Phone - * OS. This callback will emit a pair of SDL key-press events (SDL_KEYDOWN - * and SDL_KEYUP), each with a scancode of SDL_SCANCODE_AC_BACK, after which - * it will check the contents of the hint, SDL_HINT_WINRT_HANDLE_BACK_BUTTON. - * If the hint's value is set to "1", the back button event's Handled - * property will get set to 'true'. If the hint's value is set to something - * else, or if it is unset, SDL will leave the event's Handled property - * alone. (By default, the OS sets this property to 'false', to note.) - * - * SDL apps can either set SDL_HINT_WINRT_HANDLE_BACK_BUTTON well before a - * back button is pressed, or can set it in direct-response to a back button - * being pressed. - * - * In order to get notified when a back button is pressed, SDL apps should - * register a callback function with SDL_AddEventWatch(), and have it listen - * for SDL_KEYDOWN events that have a scancode of SDL_SCANCODE_AC_BACK. - * (Alternatively, SDL_KEYUP events can be listened-for. Listening for - * either event type is suitable.) Any value of SDL_HINT_WINRT_HANDLE_BACK_BUTTON - * set by such a callback, will be applied to the OS' current - * back-button-press event. - * - * More details on back button behavior in Windows Phone apps can be found - * at the following page, on Microsoft's developer site: - * http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj247550(v=vs.105).aspx - */ -#define SDL_HINT_WINRT_HANDLE_BACK_BUTTON "SDL_WINRT_HANDLE_BACK_BUTTON" - -/** \brief Label text for a WinRT app's privacy policy link - * - * Network-enabled WinRT apps must include a privacy policy. On Windows 8, 8.1, and RT, - * Microsoft mandates that this policy be available via the Windows Settings charm. - * SDL provides code to add a link there, with its label text being set via the - * optional hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. - * - * Please note that a privacy policy's contents are not set via this hint. A separate - * hint, SDL_HINT_WINRT_PRIVACY_POLICY_URL, is used to link to the actual text of the - * policy. - * - * The contents of this hint should be encoded as a UTF8 string. - * - * The default value is "Privacy Policy". This hint should only be set during app - * initialization, preferably before any calls to SDL_Init(). - * - * For additional information on linking to a privacy policy, see the documentation for - * SDL_HINT_WINRT_PRIVACY_POLICY_URL. - */ -#define SDL_HINT_WINRT_PRIVACY_POLICY_LABEL "SDL_WINRT_PRIVACY_POLICY_LABEL" - -/** - * \brief A URL to a WinRT app's privacy policy - * - * All network-enabled WinRT apps must make a privacy policy available to its - * users. On Windows 8, 8.1, and RT, Microsoft mandates that this policy be - * be available in the Windows Settings charm, as accessed from within the app. - * SDL provides code to add a URL-based link there, which can point to the app's - * privacy policy. - * - * To setup a URL to an app's privacy policy, set SDL_HINT_WINRT_PRIVACY_POLICY_URL - * before calling any SDL_Init() functions. The contents of the hint should - * be a valid URL. For example, "http://www.example.com". - * - * The default value is "", which will prevent SDL from adding a privacy policy - * link to the Settings charm. This hint should only be set during app init. - * - * The label text of an app's "Privacy Policy" link may be customized via another - * hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. - * - * Please note that on Windows Phone, Microsoft does not provide standard UI - * for displaying a privacy policy link, and as such, SDL_HINT_WINRT_PRIVACY_POLICY_URL - * will not get used on that platform. Network-enabled phone apps should display - * their privacy policy through some other, in-app means. - */ -#define SDL_HINT_WINRT_PRIVACY_POLICY_URL "SDL_WINRT_PRIVACY_POLICY_URL" - -/** - * \brief Mark X11 windows as override-redirect. - * - * If set, this _might_ increase framerate at the expense of the desktop - * not working as expected. Override-redirect windows aren't noticed by the - * window manager at all. - * - * You should probably only use this for fullscreen windows, and you probably - * shouldn't even use it for that. But it's here if you want to try! - */ -#define SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT "SDL_X11_FORCE_OVERRIDE_REDIRECT" - -/** - * \brief A variable that lets you disable the detection and use of Xinput gamepad devices - * - * The variable can be set to the following values: - * "0" - Disable XInput detection (only uses direct input) - * "1" - Enable XInput detection (the default) - */ -#define SDL_HINT_XINPUT_ENABLED "SDL_XINPUT_ENABLED" - - /** - * \brief A variable that lets you disable the detection and use of DirectInput gamepad devices - * - * The variable can be set to the following values: - * "0" - Disable DirectInput detection (only uses XInput) - * "1" - Enable DirectInput detection (the default) - */ -#define SDL_HINT_DIRECTINPUT_ENABLED "SDL_DIRECTINPUT_ENABLED" - -/** - * \brief A variable that causes SDL to use the old axis and button mapping for XInput devices. - * - * This hint is for backwards compatibility only and will be removed in SDL 2.1 - * - * The default value is "0". This hint must be set before SDL_Init() - */ -#define SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING" - -/** - * \brief A variable that causes SDL to not ignore audio "monitors" - * - * This is currently only used for PulseAudio and ignored elsewhere. - * - * By default, SDL ignores audio devices that aren't associated with physical - * hardware. Changing this hint to "1" will expose anything SDL sees that - * appears to be an audio source or sink. This will add "devices" to the list - * that the user probably doesn't want or need, but it can be useful in - * scenarios where you want to hook up SDL to some sort of virtual device, - * etc. - * - * The default value is "0". This hint must be set before SDL_Init(). - * - * This hint is available since SDL 2.0.16. Before then, virtual devices are - * always ignored. - */ -#define SDL_HINT_AUDIO_INCLUDE_MONITORS "SDL_AUDIO_INCLUDE_MONITORS" - -/** - * \brief A variable that forces X11 windows to create as a custom type. - * - * This is currently only used for X11 and ignored elsewhere. - * - * During SDL_CreateWindow, SDL uses the _NET_WM_WINDOW_TYPE X11 property - * to report to the window manager the type of window it wants to create. - * This might be set to various things if SDL_WINDOW_TOOLTIP or - * SDL_WINDOW_POPUP_MENU, etc, were specified. For "normal" windows that - * haven't set a specific type, this hint can be used to specify a custom - * type. For example, a dock window might set this to - * "_NET_WM_WINDOW_TYPE_DOCK". - * - * If not set or set to "", this hint is ignored. This hint must be set - * before the SDL_CreateWindow() call that it is intended to affect. - * - * This hint is available since SDL 2.0.22. - */ -#define SDL_HINT_X11_WINDOW_TYPE "SDL_X11_WINDOW_TYPE" - -/** - * \brief A variable that decides whether to send SDL_QUIT when closing the final window. - * - * By default, SDL sends an SDL_QUIT event when there is only one window - * and it receives an SDL_WINDOWEVENT_CLOSE event, under the assumption most - * apps would also take the loss of this window as a signal to terminate the - * program. - * - * However, it's not unreasonable in some cases to have the program continue - * to live on, perhaps to create new windows later. - * - * Changing this hint to "0" will cause SDL to not send an SDL_QUIT event - * when the final window is requesting to close. Note that in this case, - * there are still other legitimate reasons one might get an SDL_QUIT - * event: choosing "Quit" from the macOS menu bar, sending a SIGINT (ctrl-c) - * on Unix, etc. - * - * The default value is "1". This hint can be changed at any time. - * - * This hint is available since SDL 2.0.22. Before then, you always get - * an SDL_QUIT event when closing the final window. - */ -#define SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE "SDL_QUIT_ON_LAST_WINDOW_CLOSE" - - -/** - * \brief A variable that decides what video backend to use. - * - * By default, SDL will try all available video backends in a reasonable - * order until it finds one that can work, but this hint allows the app - * or user to force a specific target, such as "x11" if, say, you are - * on Wayland but want to try talking to the X server instead. - * - * This functionality has existed since SDL 2.0.0 (indeed, before that) - * but before 2.0.22 this was an environment variable only. In 2.0.22, - * it was upgraded to a full SDL hint, so you can set the environment - * variable as usual or programatically set the hint with SDL_SetHint, - * which won't propagate to child processes. - * - * The default value is unset, in which case SDL will try to figure out - * the best video backend on your behalf. This hint needs to be set - * before SDL_Init() is called to be useful. - * - * This hint is available since SDL 2.0.22. Before then, you could set - * the environment variable to get the same effect. - */ -#define SDL_HINT_VIDEODRIVER "SDL_VIDEODRIVER" - -/** - * \brief A variable that decides what audio backend to use. - * - * By default, SDL will try all available audio backends in a reasonable - * order until it finds one that can work, but this hint allows the app - * or user to force a specific target, such as "alsa" if, say, you are - * on PulseAudio but want to try talking to the lower level instead. - * - * This functionality has existed since SDL 2.0.0 (indeed, before that) - * but before 2.0.22 this was an environment variable only. In 2.0.22, - * it was upgraded to a full SDL hint, so you can set the environment - * variable as usual or programatically set the hint with SDL_SetHint, - * which won't propagate to child processes. - * - * The default value is unset, in which case SDL will try to figure out - * the best audio backend on your behalf. This hint needs to be set - * before SDL_Init() is called to be useful. - * - * This hint is available since SDL 2.0.22. Before then, you could set - * the environment variable to get the same effect. - */ -#define SDL_HINT_AUDIODRIVER "SDL_AUDIODRIVER" - -/** - * \brief A variable that decides what KMSDRM device to use. - * - * Internally, SDL might open something like "/dev/dri/cardNN" to - * access KMSDRM functionality, where "NN" is a device index number. - * - * SDL makes a guess at the best index to use (usually zero), but the - * app or user can set this hint to a number between 0 and 99 to - * force selection. - * - * This hint is available since SDL 2.24.0. - */ -#define SDL_HINT_KMSDRM_DEVICE_INDEX "SDL_KMSDRM_DEVICE_INDEX" - - -/** - * \brief A variable that treats trackpads as touch devices. - * - * On macOS (and possibly other platforms in the future), SDL will report - * touches on a trackpad as mouse input, which is generally what users - * expect from this device; however, these are often actually full - * multitouch-capable touch devices, so it might be preferable to some apps - * to treat them as such. - * - * Setting this hint to true will make the trackpad input report as a - * multitouch device instead of a mouse. The default is false. - * - * Note that most platforms don't support this hint. As of 2.24.0, it - * only supports MacBooks' trackpads on macOS. Others may follow later. - * - * This hint is checked during SDL_Init and can not be changed after. - * - * This hint is available since SDL 2.24.0. - */ -#define SDL_HINT_TRACKPAD_IS_TOUCH_ONLY "SDL_TRACKPAD_IS_TOUCH_ONLY" - - -/** - * \brief An enumeration of hint priorities - */ -typedef enum -{ - SDL_HINT_DEFAULT, - SDL_HINT_NORMAL, - SDL_HINT_OVERRIDE -} SDL_HintPriority; - - -/** - * Set a hint with a specific priority. - * - * The priority controls the behavior when setting a hint that already has a - * value. Hints will replace existing hints of their priority and lower. - * Environment variables are considered to have override priority. - * - * \param name the hint to set - * \param value the value of the hint variable - * \param priority the SDL_HintPriority level for the hint - * \returns SDL_TRUE if the hint was set, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetHint - * \sa SDL_SetHint - */ -extern DECLSPEC SDL_bool SDLCALL SDL_SetHintWithPriority(const char *name, - const char *value, - SDL_HintPriority priority); - -/** - * Set a hint with normal priority. - * - * Hints will not be set if there is an existing override hint or environment - * variable that takes precedence. You can use SDL_SetHintWithPriority() to - * set the hint with override priority instead. - * - * \param name the hint to set - * \param value the value of the hint variable - * \returns SDL_TRUE if the hint was set, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetHint - * \sa SDL_SetHintWithPriority - */ -extern DECLSPEC SDL_bool SDLCALL SDL_SetHint(const char *name, - const char *value); - -/** - * Reset a hint to the default value. - * - * This will reset a hint to the value of the environment variable, or NULL if - * the environment isn't set. Callbacks will be called normally with this - * change. - * - * \param name the hint to set - * \returns SDL_TRUE if the hint was set, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GetHint - * \sa SDL_SetHint - */ -extern DECLSPEC SDL_bool SDLCALL SDL_ResetHint(const char *name); - -/** - * Reset all hints to the default values. - * - * This will reset all hints to the value of the associated environment - * variable, or NULL if the environment isn't set. Callbacks will be called - * normally with this change. - * - * \since This function is available since SDL 2.26.0. - * - * \sa SDL_GetHint - * \sa SDL_SetHint - * \sa SDL_ResetHint - */ -extern DECLSPEC void SDLCALL SDL_ResetHints(void); - -/** - * Get the value of a hint. - * - * \param name the hint to query - * \returns the string value of a hint or NULL if the hint isn't set. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetHint - * \sa SDL_SetHintWithPriority - */ -extern DECLSPEC const char * SDLCALL SDL_GetHint(const char *name); - -/** - * Get the boolean value of a hint variable. - * - * \param name the name of the hint to get the boolean value from - * \param default_value the value to return if the hint does not exist - * \returns the boolean value of a hint or the provided default value if the - * hint does not exist. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_GetHint - * \sa SDL_SetHint - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetHintBoolean(const char *name, SDL_bool default_value); - -/** - * Type definition of the hint callback function. - * - * \param userdata what was passed as `userdata` to SDL_AddHintCallback() - * \param name what was passed as `name` to SDL_AddHintCallback() - * \param oldValue the previous hint value - * \param newValue the new value hint is to be set to - */ -typedef void (SDLCALL *SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue); - -/** - * Add a function to watch a particular hint. - * - * \param name the hint to watch - * \param callback An SDL_HintCallback function that will be called when the - * hint value changes - * \param userdata a pointer to pass to the callback function - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DelHintCallback - */ -extern DECLSPEC void SDLCALL SDL_AddHintCallback(const char *name, - SDL_HintCallback callback, - void *userdata); - -/** - * Remove a function watching a particular hint. - * - * \param name the hint being watched - * \param callback An SDL_HintCallback function that will be called when the - * hint value changes - * \param userdata a pointer being passed to the callback function - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AddHintCallback - */ -extern DECLSPEC void SDLCALL SDL_DelHintCallback(const char *name, - SDL_HintCallback callback, - void *userdata); - -/** - * Clear all hints. - * - * This function is automatically called during SDL_Quit(), and deletes all - * callbacks without calling them and frees all memory associated with hints. - * If you're calling this from application code you probably want to call - * SDL_ResetHints() instead. - * - * This function will be removed from the API the next time we rev the ABI. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ResetHints - */ -extern DECLSPEC void SDLCALL SDL_ClearHints(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_hints_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_joystick.h b/lib/windows/include/SDL_joystick.h deleted file mode 100644 index b9b4f62..0000000 --- a/lib/windows/include/SDL_joystick.h +++ /dev/null @@ -1,1069 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_joystick.h - * - * Include file for SDL joystick event handling - * - * The term "device_index" identifies currently plugged in joystick devices between 0 and SDL_NumJoysticks(), with the exact joystick - * behind a device_index changing as joysticks are plugged and unplugged. - * - * The term "instance_id" is the current instantiation of a joystick device in the system, if the joystick is removed and then re-inserted - * then it will get a new instance_id, instance_id's are monotonically increasing identifiers of a joystick plugged in. - * - * The term "player_index" is the number assigned to a player on a specific - * controller. For XInput controllers this returns the XInput user index. - * Many joysticks will not be able to supply this information. - * - * The term JoystickGUID is a stable 128-bit identifier for a joystick device that does not change over time, it identifies class of - * the device (a X360 wired controller for example). This identifier is platform dependent. - */ - -#ifndef SDL_joystick_h_ -#define SDL_joystick_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_guid.h" -#include "SDL_mutex.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file SDL_joystick.h - * - * In order to use these functions, SDL_Init() must have been called - * with the ::SDL_INIT_JOYSTICK flag. This causes SDL to scan the system - * for joysticks, and load appropriate drivers. - * - * If you would like to receive joystick updates while the application - * is in the background, you should set the following hint before calling - * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS - */ - -/** - * The joystick structure used to identify an SDL joystick - */ -#ifdef SDL_THREAD_SAFETY_ANALYSIS -extern SDL_mutex *SDL_joystick_lock; -#endif -struct _SDL_Joystick; -typedef struct _SDL_Joystick SDL_Joystick; - -/* A structure that encodes the stable unique id for a joystick device */ -typedef SDL_GUID SDL_JoystickGUID; - -/** - * This is a unique ID for a joystick for the time it is connected to the system, - * and is never reused for the lifetime of the application. If the joystick is - * disconnected and reconnected, it will get a new ID. - * - * The ID value starts at 0 and increments from there. The value -1 is an invalid ID. - */ -typedef Sint32 SDL_JoystickID; - -typedef enum -{ - SDL_JOYSTICK_TYPE_UNKNOWN, - SDL_JOYSTICK_TYPE_GAMECONTROLLER, - SDL_JOYSTICK_TYPE_WHEEL, - SDL_JOYSTICK_TYPE_ARCADE_STICK, - SDL_JOYSTICK_TYPE_FLIGHT_STICK, - SDL_JOYSTICK_TYPE_DANCE_PAD, - SDL_JOYSTICK_TYPE_GUITAR, - SDL_JOYSTICK_TYPE_DRUM_KIT, - SDL_JOYSTICK_TYPE_ARCADE_PAD, - SDL_JOYSTICK_TYPE_THROTTLE -} SDL_JoystickType; - -typedef enum -{ - SDL_JOYSTICK_POWER_UNKNOWN = -1, - SDL_JOYSTICK_POWER_EMPTY, /* <= 5% */ - SDL_JOYSTICK_POWER_LOW, /* <= 20% */ - SDL_JOYSTICK_POWER_MEDIUM, /* <= 70% */ - SDL_JOYSTICK_POWER_FULL, /* <= 100% */ - SDL_JOYSTICK_POWER_WIRED, - SDL_JOYSTICK_POWER_MAX -} SDL_JoystickPowerLevel; - -/* Set max recognized G-force from accelerometer - See src/joystick/uikit/SDL_sysjoystick.m for notes on why this is needed - */ -#define SDL_IPHONE_MAX_GFORCE 5.0 - - -/* Function prototypes */ - -/** - * Locking for multi-threaded access to the joystick API - * - * If you are using the joystick API or handling events from multiple threads - * you should use these locking functions to protect access to the joysticks. - * - * In particular, you are guaranteed that the joystick list won't change, so - * the API functions that take a joystick index will be valid, and joystick - * and game controller events will not be delivered. - * - * As of SDL 2.26.0, you can take the joystick lock around reinitializing the - * joystick subsystem, to prevent other threads from seeing joysticks in an - * uninitialized state. However, all open joysticks will be closed and SDL - * functions called with them will fail. - * - * \since This function is available since SDL 2.0.7. - */ -extern DECLSPEC void SDLCALL SDL_LockJoysticks(void) SDL_ACQUIRE(SDL_joystick_lock); - - -/** - * Unlocking for multi-threaded access to the joystick API - * - * If you are using the joystick API or handling events from multiple threads - * you should use these locking functions to protect access to the joysticks. - * - * In particular, you are guaranteed that the joystick list won't change, so - * the API functions that take a joystick index will be valid, and joystick - * and game controller events will not be delivered. - * - * \since This function is available since SDL 2.0.7. - */ -extern DECLSPEC void SDLCALL SDL_UnlockJoysticks(void) SDL_RELEASE(SDL_joystick_lock); - -/** - * Count the number of joysticks attached to the system. - * - * \returns the number of attached joysticks on success or a negative error - * code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickName - * \sa SDL_JoystickPath - * \sa SDL_JoystickOpen - */ -extern DECLSPEC int SDLCALL SDL_NumJoysticks(void); - -/** - * Get the implementation dependent name of a joystick. - * - * This can be called before any joysticks are opened. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system) - * \returns the name of the selected joystick. If no name can be found, this - * function returns NULL; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickName - * \sa SDL_JoystickOpen - */ -extern DECLSPEC const char *SDLCALL SDL_JoystickNameForIndex(int device_index); - -/** - * Get the implementation dependent path of a joystick. - * - * This can be called before any joysticks are opened. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system) - * \returns the path of the selected joystick. If no path can be found, this - * function returns NULL; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_JoystickPath - * \sa SDL_JoystickOpen - */ -extern DECLSPEC const char *SDLCALL SDL_JoystickPathForIndex(int device_index); - -/** - * Get the player index of a joystick, or -1 if it's not available This can be - * called before any joysticks are opened. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_JoystickGetDevicePlayerIndex(int device_index); - -/** - * Get the implementation-dependent GUID for the joystick at a given device - * index. - * - * This function can be called before any joysticks are opened. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system - * \returns the GUID of the selected joystick. If called on an invalid index, - * this function returns a zero GUID - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetGUID - * \sa SDL_JoystickGetGUIDString - */ -extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetDeviceGUID(int device_index); - -/** - * Get the USB vendor ID of a joystick, if available. - * - * This can be called before any joysticks are opened. If the vendor ID isn't - * available this function returns 0. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system - * \returns the USB vendor ID of the selected joystick. If called on an - * invalid index, this function returns zero - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceVendor(int device_index); - -/** - * Get the USB product ID of a joystick, if available. - * - * This can be called before any joysticks are opened. If the product ID isn't - * available this function returns 0. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system - * \returns the USB product ID of the selected joystick. If called on an - * invalid index, this function returns zero - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceProduct(int device_index); - -/** - * Get the product version of a joystick, if available. - * - * This can be called before any joysticks are opened. If the product version - * isn't available this function returns 0. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system - * \returns the product version of the selected joystick. If called on an - * invalid index, this function returns zero - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceProductVersion(int device_index); - -/** - * Get the type of a joystick, if available. - * - * This can be called before any joysticks are opened. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system - * \returns the SDL_JoystickType of the selected joystick. If called on an - * invalid index, this function returns `SDL_JOYSTICK_TYPE_UNKNOWN` - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC SDL_JoystickType SDLCALL SDL_JoystickGetDeviceType(int device_index); - -/** - * Get the instance ID of a joystick. - * - * This can be called before any joysticks are opened. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system - * \returns the instance id of the selected joystick. If called on an invalid - * index, this function returns -1. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC SDL_JoystickID SDLCALL SDL_JoystickGetDeviceInstanceID(int device_index); - -/** - * Open a joystick for use. - * - * The `device_index` argument refers to the N'th joystick presently - * recognized by SDL on the system. It is **NOT** the same as the instance ID - * used to identify the joystick in future events. See - * SDL_JoystickInstanceID() for more details about instance IDs. - * - * The joystick subsystem must be initialized before a joystick can be opened - * for use. - * - * \param device_index the index of the joystick to query - * \returns a joystick identifier or NULL if an error occurred; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickClose - * \sa SDL_JoystickInstanceID - */ -extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickOpen(int device_index); - -/** - * Get the SDL_Joystick associated with an instance id. - * - * \param instance_id the instance id to get the SDL_Joystick for - * \returns an SDL_Joystick on success or NULL on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.4. - */ -extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickFromInstanceID(SDL_JoystickID instance_id); - -/** - * Get the SDL_Joystick associated with a player index. - * - * \param player_index the player index to get the SDL_Joystick for - * \returns an SDL_Joystick on success or NULL on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.12. - */ -extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickFromPlayerIndex(int player_index); - -/** - * Attach a new virtual joystick. - * - * \returns the joystick's device index, or -1 if an error occurred. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_JoystickAttachVirtual(SDL_JoystickType type, - int naxes, - int nbuttons, - int nhats); - -/** - * The structure that defines an extended virtual joystick description - * - * The caller must zero the structure and then initialize the version with `SDL_VIRTUAL_JOYSTICK_DESC_VERSION` before passing it to SDL_JoystickAttachVirtualEx() - * All other elements of this structure are optional and can be left 0. - * - * \sa SDL_JoystickAttachVirtualEx - */ -typedef struct SDL_VirtualJoystickDesc -{ - Uint16 version; /**< `SDL_VIRTUAL_JOYSTICK_DESC_VERSION` */ - Uint16 type; /**< `SDL_JoystickType` */ - Uint16 naxes; /**< the number of axes on this joystick */ - Uint16 nbuttons; /**< the number of buttons on this joystick */ - Uint16 nhats; /**< the number of hats on this joystick */ - Uint16 vendor_id; /**< the USB vendor ID of this joystick */ - Uint16 product_id; /**< the USB product ID of this joystick */ - Uint16 padding; /**< unused */ - Uint32 button_mask; /**< A mask of which buttons are valid for this controller - e.g. (1 << SDL_CONTROLLER_BUTTON_A) */ - Uint32 axis_mask; /**< A mask of which axes are valid for this controller - e.g. (1 << SDL_CONTROLLER_AXIS_LEFTX) */ - const char *name; /**< the name of the joystick */ - - void *userdata; /**< User data pointer passed to callbacks */ - void (SDLCALL *Update)(void *userdata); /**< Called when the joystick state should be updated */ - void (SDLCALL *SetPlayerIndex)(void *userdata, int player_index); /**< Called when the player index is set */ - int (SDLCALL *Rumble)(void *userdata, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble); /**< Implements SDL_JoystickRumble() */ - int (SDLCALL *RumbleTriggers)(void *userdata, Uint16 left_rumble, Uint16 right_rumble); /**< Implements SDL_JoystickRumbleTriggers() */ - int (SDLCALL *SetLED)(void *userdata, Uint8 red, Uint8 green, Uint8 blue); /**< Implements SDL_JoystickSetLED() */ - int (SDLCALL *SendEffect)(void *userdata, const void *data, int size); /**< Implements SDL_JoystickSendEffect() */ - -} SDL_VirtualJoystickDesc; - -/** - * \brief The current version of the SDL_VirtualJoystickDesc structure - */ -#define SDL_VIRTUAL_JOYSTICK_DESC_VERSION 1 - -/** - * Attach a new virtual joystick with extended properties. - * - * \returns the joystick's device index, or -1 if an error occurred. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC int SDLCALL SDL_JoystickAttachVirtualEx(const SDL_VirtualJoystickDesc *desc); - -/** - * Detach a virtual joystick. - * - * \param device_index a value previously returned from - * SDL_JoystickAttachVirtual() - * \returns 0 on success, or -1 if an error occurred. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_JoystickDetachVirtual(int device_index); - -/** - * Query whether or not the joystick at a given device index is virtual. - * - * \param device_index a joystick device index. - * \returns SDL_TRUE if the joystick is virtual, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickIsVirtual(int device_index); - -/** - * Set values on an opened, virtual-joystick's axis. - * - * Please note that values set here will not be applied until the next call to - * SDL_JoystickUpdate, which can either be called directly, or can be called - * indirectly through various other SDL APIs, including, but not limited to - * the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, - * SDL_WaitEvent. - * - * Note that when sending trigger axes, you should scale the value to the full - * range of Sint16. For example, a trigger at rest would have the value of - * `SDL_JOYSTICK_AXIS_MIN`. - * - * \param joystick the virtual joystick on which to set state. - * \param axis the specific axis on the virtual joystick to set. - * \param value the new value for the specified axis. - * \returns 0 on success, -1 on error. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualAxis(SDL_Joystick *joystick, int axis, Sint16 value); - -/** - * Set values on an opened, virtual-joystick's button. - * - * Please note that values set here will not be applied until the next call to - * SDL_JoystickUpdate, which can either be called directly, or can be called - * indirectly through various other SDL APIs, including, but not limited to - * the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, - * SDL_WaitEvent. - * - * \param joystick the virtual joystick on which to set state. - * \param button the specific button on the virtual joystick to set. - * \param value the new value for the specified button. - * \returns 0 on success, -1 on error. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualButton(SDL_Joystick *joystick, int button, Uint8 value); - -/** - * Set values on an opened, virtual-joystick's hat. - * - * Please note that values set here will not be applied until the next call to - * SDL_JoystickUpdate, which can either be called directly, or can be called - * indirectly through various other SDL APIs, including, but not limited to - * the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, - * SDL_WaitEvent. - * - * \param joystick the virtual joystick on which to set state. - * \param hat the specific hat on the virtual joystick to set. - * \param value the new value for the specified hat. - * \returns 0 on success, -1 on error. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualHat(SDL_Joystick *joystick, int hat, Uint8 value); - -/** - * Get the implementation dependent name of a joystick. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the name of the selected joystick. If no name can be found, this - * function returns NULL; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickNameForIndex - * \sa SDL_JoystickOpen - */ -extern DECLSPEC const char *SDLCALL SDL_JoystickName(SDL_Joystick *joystick); - -/** - * Get the implementation dependent path of a joystick. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the path of the selected joystick. If no path can be found, this - * function returns NULL; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_JoystickPathForIndex - */ -extern DECLSPEC const char *SDLCALL SDL_JoystickPath(SDL_Joystick *joystick); - -/** - * Get the player index of an opened joystick. - * - * For XInput controllers this returns the XInput user index. Many joysticks - * will not be able to supply this information. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the player index, or -1 if it's not available. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_JoystickGetPlayerIndex(SDL_Joystick *joystick); - -/** - * Set the player index of an opened joystick. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \param player_index Player index to assign to this joystick, or -1 to clear - * the player index and turn off player LEDs. - * - * \since This function is available since SDL 2.0.12. - */ -extern DECLSPEC void SDLCALL SDL_JoystickSetPlayerIndex(SDL_Joystick *joystick, int player_index); - -/** - * Get the implementation-dependent GUID for the joystick. - * - * This function requires an open joystick. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the GUID of the given joystick. If called on an invalid index, - * this function returns a zero GUID; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetDeviceGUID - * \sa SDL_JoystickGetGUIDString - */ -extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUID(SDL_Joystick *joystick); - -/** - * Get the USB vendor ID of an opened joystick, if available. - * - * If the vendor ID isn't available this function returns 0. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the USB vendor ID of the selected joystick, or 0 if unavailable. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetVendor(SDL_Joystick *joystick); - -/** - * Get the USB product ID of an opened joystick, if available. - * - * If the product ID isn't available this function returns 0. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the USB product ID of the selected joystick, or 0 if unavailable. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProduct(SDL_Joystick *joystick); - -/** - * Get the product version of an opened joystick, if available. - * - * If the product version isn't available this function returns 0. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the product version of the selected joystick, or 0 if unavailable. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProductVersion(SDL_Joystick *joystick); - -/** - * Get the firmware version of an opened joystick, if available. - * - * If the firmware version isn't available this function returns 0. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the firmware version of the selected joystick, or 0 if - * unavailable. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetFirmwareVersion(SDL_Joystick *joystick); - -/** - * Get the serial number of an opened joystick, if available. - * - * Returns the serial number of the joystick, or NULL if it is not available. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the serial number of the selected joystick, or NULL if - * unavailable. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC const char * SDLCALL SDL_JoystickGetSerial(SDL_Joystick *joystick); - -/** - * Get the type of an opened joystick. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the SDL_JoystickType of the selected joystick. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC SDL_JoystickType SDLCALL SDL_JoystickGetType(SDL_Joystick *joystick); - -/** - * Get an ASCII string representation for a given SDL_JoystickGUID. - * - * You should supply at least 33 bytes for pszGUID. - * - * \param guid the SDL_JoystickGUID you wish to convert to string - * \param pszGUID buffer in which to write the ASCII string - * \param cbGUID the size of pszGUID - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetDeviceGUID - * \sa SDL_JoystickGetGUID - * \sa SDL_JoystickGetGUIDFromString - */ -extern DECLSPEC void SDLCALL SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, char *pszGUID, int cbGUID); - -/** - * Convert a GUID string into a SDL_JoystickGUID structure. - * - * Performs no error checking. If this function is given a string containing - * an invalid GUID, the function will silently succeed, but the GUID generated - * will not be useful. - * - * \param pchGUID string containing an ASCII representation of a GUID - * \returns a SDL_JoystickGUID structure. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetGUIDString - */ -extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUIDFromString(const char *pchGUID); - -/** - * Get the device information encoded in a SDL_JoystickGUID structure - * - * \param guid the SDL_JoystickGUID you wish to get info about - * \param vendor A pointer filled in with the device VID, or 0 if not - * available - * \param product A pointer filled in with the device PID, or 0 if not - * available - * \param version A pointer filled in with the device version, or 0 if not - * available - * \param crc16 A pointer filled in with a CRC used to distinguish different - * products with the same VID/PID, or 0 if not available - * - * \since This function is available since SDL 2.26.0. - * - * \sa SDL_JoystickGetDeviceGUID - */ -extern DECLSPEC void SDLCALL SDL_GetJoystickGUIDInfo(SDL_JoystickGUID guid, Uint16 *vendor, Uint16 *product, Uint16 *version, Uint16 *crc16); - -/** - * Get the status of a specified joystick. - * - * \param joystick the joystick to query - * \returns SDL_TRUE if the joystick has been opened, SDL_FALSE if it has not; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickClose - * \sa SDL_JoystickOpen - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickGetAttached(SDL_Joystick *joystick); - -/** - * Get the instance ID of an opened joystick. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \returns the instance ID of the specified joystick on success or a negative - * error code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickOpen - */ -extern DECLSPEC SDL_JoystickID SDLCALL SDL_JoystickInstanceID(SDL_Joystick *joystick); - -/** - * Get the number of general axis controls on a joystick. - * - * Often, the directional pad on a game controller will either look like 4 - * separate buttons or a POV hat, and not axes, but all of this is up to the - * device and platform. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \returns the number of axis controls/number of axes on success or a - * negative error code on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetAxis - * \sa SDL_JoystickOpen - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumAxes(SDL_Joystick *joystick); - -/** - * Get the number of trackballs on a joystick. - * - * Joystick trackballs have only relative motion events associated with them - * and their state cannot be polled. - * - * Most joysticks do not have trackballs. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \returns the number of trackballs on success or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetBall - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumBalls(SDL_Joystick *joystick); - -/** - * Get the number of POV hats on a joystick. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \returns the number of POV hats on success or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetHat - * \sa SDL_JoystickOpen - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumHats(SDL_Joystick *joystick); - -/** - * Get the number of buttons on a joystick. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \returns the number of buttons on success or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetButton - * \sa SDL_JoystickOpen - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumButtons(SDL_Joystick *joystick); - -/** - * Update the current state of the open joysticks. - * - * This is called automatically by the event loop if any joystick events are - * enabled. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickEventState - */ -extern DECLSPEC void SDLCALL SDL_JoystickUpdate(void); - -/** - * Enable/disable joystick event polling. - * - * If joystick events are disabled, you must call SDL_JoystickUpdate() - * yourself and manually check the state of the joystick when you want - * joystick information. - * - * It is recommended that you leave joystick event handling enabled. - * - * **WARNING**: Calling this function may delete all events currently in SDL's - * event queue. - * - * \param state can be one of `SDL_QUERY`, `SDL_IGNORE`, or `SDL_ENABLE` - * \returns 1 if enabled, 0 if disabled, or a negative error code on failure; - * call SDL_GetError() for more information. - * - * If `state` is `SDL_QUERY` then the current state is returned, - * otherwise the new processing state is returned. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerEventState - */ -extern DECLSPEC int SDLCALL SDL_JoystickEventState(int state); - -#define SDL_JOYSTICK_AXIS_MAX 32767 -#define SDL_JOYSTICK_AXIS_MIN -32768 - -/** - * Get the current state of an axis control on a joystick. - * - * SDL makes no promises about what part of the joystick any given axis refers - * to. Your game should have some sort of configuration UI to let users - * specify what each axis should be bound to. Alternately, SDL's higher-level - * Game Controller API makes a great effort to apply order to this lower-level - * interface, so you know that a specific axis is the "left thumb stick," etc. - * - * The value returned by SDL_JoystickGetAxis() is a signed integer (-32768 to - * 32767) representing the current position of the axis. It may be necessary - * to impose certain tolerances on these values to account for jitter. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \param axis the axis to query; the axis indices start at index 0 - * \returns a 16-bit signed integer representing the current position of the - * axis or 0 on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickNumAxes - */ -extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick *joystick, - int axis); - -/** - * Get the initial state of an axis control on a joystick. - * - * The state is a value ranging from -32768 to 32767. - * - * The axis indices start at index 0. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \param axis the axis to query; the axis indices start at index 0 - * \param state Upon return, the initial value is supplied here. - * \return SDL_TRUE if this axis has any initial value, or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickGetAxisInitialState(SDL_Joystick *joystick, - int axis, Sint16 *state); - -/** - * \name Hat positions - */ -/* @{ */ -#define SDL_HAT_CENTERED 0x00 -#define SDL_HAT_UP 0x01 -#define SDL_HAT_RIGHT 0x02 -#define SDL_HAT_DOWN 0x04 -#define SDL_HAT_LEFT 0x08 -#define SDL_HAT_RIGHTUP (SDL_HAT_RIGHT|SDL_HAT_UP) -#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN) -#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP) -#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN) -/* @} */ - -/** - * Get the current state of a POV hat on a joystick. - * - * The returned value will be one of the following positions: - * - * - `SDL_HAT_CENTERED` - * - `SDL_HAT_UP` - * - `SDL_HAT_RIGHT` - * - `SDL_HAT_DOWN` - * - `SDL_HAT_LEFT` - * - `SDL_HAT_RIGHTUP` - * - `SDL_HAT_RIGHTDOWN` - * - `SDL_HAT_LEFTUP` - * - `SDL_HAT_LEFTDOWN` - * - * \param joystick an SDL_Joystick structure containing joystick information - * \param hat the hat index to get the state from; indices start at index 0 - * \returns the current hat position. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickNumHats - */ -extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetHat(SDL_Joystick *joystick, - int hat); - -/** - * Get the ball axis change since the last poll. - * - * Trackballs can only return relative motion since the last call to - * SDL_JoystickGetBall(), these motion deltas are placed into `dx` and `dy`. - * - * Most joysticks do not have trackballs. - * - * \param joystick the SDL_Joystick to query - * \param ball the ball index to query; ball indices start at index 0 - * \param dx stores the difference in the x axis position since the last poll - * \param dy stores the difference in the y axis position since the last poll - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickNumBalls - */ -extern DECLSPEC int SDLCALL SDL_JoystickGetBall(SDL_Joystick *joystick, - int ball, int *dx, int *dy); - -/** - * Get the current state of a button on a joystick. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \param button the button index to get the state from; indices start at - * index 0 - * \returns 1 if the specified button is pressed, 0 otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickNumButtons - */ -extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetButton(SDL_Joystick *joystick, - int button); - -/** - * Start a rumble effect. - * - * Each call to this function cancels any previous rumble effect, and calling - * it with 0 intensity stops any rumbling. - * - * \param joystick The joystick to vibrate - * \param low_frequency_rumble The intensity of the low frequency (left) - * rumble motor, from 0 to 0xFFFF - * \param high_frequency_rumble The intensity of the high frequency (right) - * rumble motor, from 0 to 0xFFFF - * \param duration_ms The duration of the rumble effect, in milliseconds - * \returns 0, or -1 if rumble isn't supported on this joystick - * - * \since This function is available since SDL 2.0.9. - * - * \sa SDL_JoystickHasRumble - */ -extern DECLSPEC int SDLCALL SDL_JoystickRumble(SDL_Joystick *joystick, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble, Uint32 duration_ms); - -/** - * Start a rumble effect in the joystick's triggers - * - * Each call to this function cancels any previous trigger rumble effect, and - * calling it with 0 intensity stops any rumbling. - * - * Note that this is rumbling of the _triggers_ and not the game controller as - * a whole. This is currently only supported on Xbox One controllers. If you - * want the (more common) whole-controller rumble, use SDL_JoystickRumble() - * instead. - * - * \param joystick The joystick to vibrate - * \param left_rumble The intensity of the left trigger rumble motor, from 0 - * to 0xFFFF - * \param right_rumble The intensity of the right trigger rumble motor, from 0 - * to 0xFFFF - * \param duration_ms The duration of the rumble effect, in milliseconds - * \returns 0, or -1 if trigger rumble isn't supported on this joystick - * - * \since This function is available since SDL 2.0.14. - * - * \sa SDL_JoystickHasRumbleTriggers - */ -extern DECLSPEC int SDLCALL SDL_JoystickRumbleTriggers(SDL_Joystick *joystick, Uint16 left_rumble, Uint16 right_rumble, Uint32 duration_ms); - -/** - * Query whether a joystick has an LED. - * - * An example of a joystick LED is the light on the back of a PlayStation 4's - * DualShock 4 controller. - * - * \param joystick The joystick to query - * \return SDL_TRUE if the joystick has a modifiable LED, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickHasLED(SDL_Joystick *joystick); - -/** - * Query whether a joystick has rumble support. - * - * \param joystick The joystick to query - * \return SDL_TRUE if the joystick has rumble, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_JoystickRumble - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickHasRumble(SDL_Joystick *joystick); - -/** - * Query whether a joystick has rumble support on triggers. - * - * \param joystick The joystick to query - * \return SDL_TRUE if the joystick has trigger rumble, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_JoystickRumbleTriggers - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickHasRumbleTriggers(SDL_Joystick *joystick); - -/** - * Update a joystick's LED color. - * - * An example of a joystick LED is the light on the back of a PlayStation 4's - * DualShock 4 controller. - * - * \param joystick The joystick to update - * \param red The intensity of the red LED - * \param green The intensity of the green LED - * \param blue The intensity of the blue LED - * \returns 0 on success, -1 if this joystick does not have a modifiable LED - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_JoystickSetLED(SDL_Joystick *joystick, Uint8 red, Uint8 green, Uint8 blue); - -/** - * Send a joystick specific effect packet - * - * \param joystick The joystick to affect - * \param data The data to send to the joystick - * \param size The size of the data to send to the joystick - * \returns 0, or -1 if this joystick or driver doesn't support effect packets - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC int SDLCALL SDL_JoystickSendEffect(SDL_Joystick *joystick, const void *data, int size); - -/** - * Close a joystick previously opened with SDL_JoystickOpen(). - * - * \param joystick The joystick device to close - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickOpen - */ -extern DECLSPEC void SDLCALL SDL_JoystickClose(SDL_Joystick *joystick); - -/** - * Get the battery level of a joystick as SDL_JoystickPowerLevel. - * - * \param joystick the SDL_Joystick to query - * \returns the current battery level as SDL_JoystickPowerLevel on success or - * `SDL_JOYSTICK_POWER_UNKNOWN` if it is unknown - * - * \since This function is available since SDL 2.0.4. - */ -extern DECLSPEC SDL_JoystickPowerLevel SDLCALL SDL_JoystickCurrentPowerLevel(SDL_Joystick *joystick); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_joystick_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_keyboard.h b/lib/windows/include/SDL_keyboard.h deleted file mode 100644 index 86a37ad..0000000 --- a/lib/windows/include/SDL_keyboard.h +++ /dev/null @@ -1,353 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_keyboard.h - * - * Include file for SDL keyboard event handling - */ - -#ifndef SDL_keyboard_h_ -#define SDL_keyboard_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_keycode.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief The SDL keysym structure, used in key events. - * - * \note If you are looking for translated character input, see the ::SDL_TEXTINPUT event. - */ -typedef struct SDL_Keysym -{ - SDL_Scancode scancode; /**< SDL physical key code - see ::SDL_Scancode for details */ - SDL_Keycode sym; /**< SDL virtual key code - see ::SDL_Keycode for details */ - Uint16 mod; /**< current key modifiers */ - Uint32 unused; -} SDL_Keysym; - -/* Function prototypes */ - -/** - * Query the window which currently has keyboard focus. - * - * \returns the window with keyboard focus. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_GetKeyboardFocus(void); - -/** - * Get a snapshot of the current state of the keyboard. - * - * The pointer returned is a pointer to an internal SDL array. It will be - * valid for the whole lifetime of the application and should not be freed by - * the caller. - * - * A array element with a value of 1 means that the key is pressed and a value - * of 0 means that it is not. Indexes into this array are obtained by using - * SDL_Scancode values. - * - * Use SDL_PumpEvents() to update the state array. - * - * This function gives you the current state after all events have been - * processed, so if a key or button has been pressed and released before you - * process events, then the pressed state will never show up in the - * SDL_GetKeyboardState() calls. - * - * Note: This function doesn't take into account whether shift has been - * pressed or not. - * - * \param numkeys if non-NULL, receives the length of the returned array - * \returns a pointer to an array of key states. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PumpEvents - * \sa SDL_ResetKeyboard - */ -extern DECLSPEC const Uint8 *SDLCALL SDL_GetKeyboardState(int *numkeys); - -/** - * Clear the state of the keyboard - * - * This function will generate key up events for all pressed keys. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GetKeyboardState - */ -extern DECLSPEC void SDLCALL SDL_ResetKeyboard(void); - -/** - * Get the current key modifier state for the keyboard. - * - * \returns an OR'd combination of the modifier keys for the keyboard. See - * SDL_Keymod for details. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetKeyboardState - * \sa SDL_SetModState - */ -extern DECLSPEC SDL_Keymod SDLCALL SDL_GetModState(void); - -/** - * Set the current key modifier state for the keyboard. - * - * The inverse of SDL_GetModState(), SDL_SetModState() allows you to impose - * modifier key states on your application. Simply pass your desired modifier - * states into `modstate`. This value may be a bitwise, OR'd combination of - * SDL_Keymod values. - * - * This does not change the keyboard state, only the key modifier flags that - * SDL reports. - * - * \param modstate the desired SDL_Keymod for the keyboard - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetModState - */ -extern DECLSPEC void SDLCALL SDL_SetModState(SDL_Keymod modstate); - -/** - * Get the key code corresponding to the given scancode according to the - * current keyboard layout. - * - * See SDL_Keycode for details. - * - * \param scancode the desired SDL_Scancode to query - * \returns the SDL_Keycode that corresponds to the given SDL_Scancode. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetKeyName - * \sa SDL_GetScancodeFromKey - */ -extern DECLSPEC SDL_Keycode SDLCALL SDL_GetKeyFromScancode(SDL_Scancode scancode); - -/** - * Get the scancode corresponding to the given key code according to the - * current keyboard layout. - * - * See SDL_Scancode for details. - * - * \param key the desired SDL_Keycode to query - * \returns the SDL_Scancode that corresponds to the given SDL_Keycode. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetKeyFromScancode - * \sa SDL_GetScancodeName - */ -extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromKey(SDL_Keycode key); - -/** - * Get a human-readable name for a scancode. - * - * See SDL_Scancode for details. - * - * **Warning**: The returned name is by design not stable across platforms, - * e.g. the name for `SDL_SCANCODE_LGUI` is "Left GUI" under Linux but "Left - * Windows" under Microsoft Windows, and some scancodes like - * `SDL_SCANCODE_NONUSBACKSLASH` don't have any name at all. There are even - * scancodes that share names, e.g. `SDL_SCANCODE_RETURN` and - * `SDL_SCANCODE_RETURN2` (both called "Return"). This function is therefore - * unsuitable for creating a stable cross-platform two-way mapping between - * strings and scancodes. - * - * \param scancode the desired SDL_Scancode to query - * \returns a pointer to the name for the scancode. If the scancode doesn't - * have a name this function returns an empty string (""). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetScancodeFromKey - * \sa SDL_GetScancodeFromName - */ -extern DECLSPEC const char *SDLCALL SDL_GetScancodeName(SDL_Scancode scancode); - -/** - * Get a scancode from a human-readable name. - * - * \param name the human-readable scancode name - * \returns the SDL_Scancode, or `SDL_SCANCODE_UNKNOWN` if the name wasn't - * recognized; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetKeyFromName - * \sa SDL_GetScancodeFromKey - * \sa SDL_GetScancodeName - */ -extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromName(const char *name); - -/** - * Get a human-readable name for a key. - * - * See SDL_Scancode and SDL_Keycode for details. - * - * \param key the desired SDL_Keycode to query - * \returns a pointer to a UTF-8 string that stays valid at least until the - * next call to this function. If you need it around any longer, you - * must copy it. If the key doesn't have a name, this function - * returns an empty string (""). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetKeyFromName - * \sa SDL_GetKeyFromScancode - * \sa SDL_GetScancodeFromKey - */ -extern DECLSPEC const char *SDLCALL SDL_GetKeyName(SDL_Keycode key); - -/** - * Get a key code from a human-readable name. - * - * \param name the human-readable key name - * \returns key code, or `SDLK_UNKNOWN` if the name wasn't recognized; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetKeyFromScancode - * \sa SDL_GetKeyName - * \sa SDL_GetScancodeFromName - */ -extern DECLSPEC SDL_Keycode SDLCALL SDL_GetKeyFromName(const char *name); - -/** - * Start accepting Unicode text input events. - * - * This function will start accepting Unicode text input events in the focused - * SDL window, and start emitting SDL_TextInputEvent (SDL_TEXTINPUT) and - * SDL_TextEditingEvent (SDL_TEXTEDITING) events. Please use this function in - * pair with SDL_StopTextInput(). - * - * On some platforms using this function activates the screen keyboard. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetTextInputRect - * \sa SDL_StopTextInput - */ -extern DECLSPEC void SDLCALL SDL_StartTextInput(void); - -/** - * Check whether or not Unicode text input events are enabled. - * - * \returns SDL_TRUE if text input events are enabled else SDL_FALSE. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_StartTextInput - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsTextInputActive(void); - -/** - * Stop receiving any text input events. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_StartTextInput - */ -extern DECLSPEC void SDLCALL SDL_StopTextInput(void); - -/** - * Dismiss the composition window/IME without disabling the subsystem. - * - * \since This function is available since SDL 2.0.22. - * - * \sa SDL_StartTextInput - * \sa SDL_StopTextInput - */ -extern DECLSPEC void SDLCALL SDL_ClearComposition(void); - -/** - * Returns if an IME Composite or Candidate window is currently shown. - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsTextInputShown(void); - -/** - * Set the rectangle used to type Unicode text inputs. - * - * To start text input in a given location, this function is intended to be - * called before SDL_StartTextInput, although some platforms support moving - * the rectangle even while text input (and a composition) is active. - * - * Note: If you want to use the system native IME window, try setting hint - * **SDL_HINT_IME_SHOW_UI** to **1**, otherwise this function won't give you - * any feedback. - * - * \param rect the SDL_Rect structure representing the rectangle to receive - * text (ignored if NULL) - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_StartTextInput - */ -extern DECLSPEC void SDLCALL SDL_SetTextInputRect(const SDL_Rect *rect); - -/** - * Check whether the platform has screen keyboard support. - * - * \returns SDL_TRUE if the platform has some screen keyboard support or - * SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_StartTextInput - * \sa SDL_IsScreenKeyboardShown - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasScreenKeyboardSupport(void); - -/** - * Check whether the screen keyboard is shown for given window. - * - * \param window the window for which screen keyboard should be queried - * \returns SDL_TRUE if screen keyboard is shown or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HasScreenKeyboardSupport - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenKeyboardShown(SDL_Window *window); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_keyboard_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_keycode.h b/lib/windows/include/SDL_keycode.h deleted file mode 100644 index 7106223..0000000 --- a/lib/windows/include/SDL_keycode.h +++ /dev/null @@ -1,358 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_keycode.h - * - * Defines constants which identify keyboard keys and modifiers. - */ - -#ifndef SDL_keycode_h_ -#define SDL_keycode_h_ - -#include "SDL_stdinc.h" -#include "SDL_scancode.h" - -/** - * \brief The SDL virtual key representation. - * - * Values of this type are used to represent keyboard keys using the current - * layout of the keyboard. These values include Unicode values representing - * the unmodified character that would be generated by pressing the key, or - * an SDLK_* constant for those keys that do not generate characters. - * - * A special exception is the number keys at the top of the keyboard which - * map to SDLK_0...SDLK_9 on AZERTY layouts. - */ -typedef Sint32 SDL_Keycode; - -#define SDLK_SCANCODE_MASK (1<<30) -#define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK) - -typedef enum -{ - SDLK_UNKNOWN = 0, - - SDLK_RETURN = '\r', - SDLK_ESCAPE = '\x1B', - SDLK_BACKSPACE = '\b', - SDLK_TAB = '\t', - SDLK_SPACE = ' ', - SDLK_EXCLAIM = '!', - SDLK_QUOTEDBL = '"', - SDLK_HASH = '#', - SDLK_PERCENT = '%', - SDLK_DOLLAR = '$', - SDLK_AMPERSAND = '&', - SDLK_QUOTE = '\'', - SDLK_LEFTPAREN = '(', - SDLK_RIGHTPAREN = ')', - SDLK_ASTERISK = '*', - SDLK_PLUS = '+', - SDLK_COMMA = ',', - SDLK_MINUS = '-', - SDLK_PERIOD = '.', - SDLK_SLASH = '/', - SDLK_0 = '0', - SDLK_1 = '1', - SDLK_2 = '2', - SDLK_3 = '3', - SDLK_4 = '4', - SDLK_5 = '5', - SDLK_6 = '6', - SDLK_7 = '7', - SDLK_8 = '8', - SDLK_9 = '9', - SDLK_COLON = ':', - SDLK_SEMICOLON = ';', - SDLK_LESS = '<', - SDLK_EQUALS = '=', - SDLK_GREATER = '>', - SDLK_QUESTION = '?', - SDLK_AT = '@', - - /* - Skip uppercase letters - */ - - SDLK_LEFTBRACKET = '[', - SDLK_BACKSLASH = '\\', - SDLK_RIGHTBRACKET = ']', - SDLK_CARET = '^', - SDLK_UNDERSCORE = '_', - SDLK_BACKQUOTE = '`', - SDLK_a = 'a', - SDLK_b = 'b', - SDLK_c = 'c', - SDLK_d = 'd', - SDLK_e = 'e', - SDLK_f = 'f', - SDLK_g = 'g', - SDLK_h = 'h', - SDLK_i = 'i', - SDLK_j = 'j', - SDLK_k = 'k', - SDLK_l = 'l', - SDLK_m = 'm', - SDLK_n = 'n', - SDLK_o = 'o', - SDLK_p = 'p', - SDLK_q = 'q', - SDLK_r = 'r', - SDLK_s = 's', - SDLK_t = 't', - SDLK_u = 'u', - SDLK_v = 'v', - SDLK_w = 'w', - SDLK_x = 'x', - SDLK_y = 'y', - SDLK_z = 'z', - - SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK), - - SDLK_F1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F1), - SDLK_F2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F2), - SDLK_F3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F3), - SDLK_F4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F4), - SDLK_F5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F5), - SDLK_F6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F6), - SDLK_F7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F7), - SDLK_F8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F8), - SDLK_F9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F9), - SDLK_F10 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F10), - SDLK_F11 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F11), - SDLK_F12 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F12), - - SDLK_PRINTSCREEN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRINTSCREEN), - SDLK_SCROLLLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SCROLLLOCK), - SDLK_PAUSE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAUSE), - SDLK_INSERT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_INSERT), - SDLK_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HOME), - SDLK_PAGEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEUP), - SDLK_DELETE = '\x7F', - SDLK_END = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_END), - SDLK_PAGEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEDOWN), - SDLK_RIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RIGHT), - SDLK_LEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LEFT), - SDLK_DOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DOWN), - SDLK_UP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UP), - - SDLK_NUMLOCKCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_NUMLOCKCLEAR), - SDLK_KP_DIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DIVIDE), - SDLK_KP_MULTIPLY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MULTIPLY), - SDLK_KP_MINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MINUS), - SDLK_KP_PLUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUS), - SDLK_KP_ENTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_ENTER), - SDLK_KP_1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_1), - SDLK_KP_2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_2), - SDLK_KP_3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_3), - SDLK_KP_4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_4), - SDLK_KP_5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_5), - SDLK_KP_6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_6), - SDLK_KP_7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_7), - SDLK_KP_8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_8), - SDLK_KP_9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_9), - SDLK_KP_0 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_0), - SDLK_KP_PERIOD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERIOD), - - SDLK_APPLICATION = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APPLICATION), - SDLK_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_POWER), - SDLK_KP_EQUALS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALS), - SDLK_F13 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F13), - SDLK_F14 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F14), - SDLK_F15 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F15), - SDLK_F16 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F16), - SDLK_F17 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F17), - SDLK_F18 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F18), - SDLK_F19 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F19), - SDLK_F20 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F20), - SDLK_F21 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F21), - SDLK_F22 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F22), - SDLK_F23 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F23), - SDLK_F24 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F24), - SDLK_EXECUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXECUTE), - SDLK_HELP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HELP), - SDLK_MENU = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MENU), - SDLK_SELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SELECT), - SDLK_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_STOP), - SDLK_AGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AGAIN), - SDLK_UNDO = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UNDO), - SDLK_CUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CUT), - SDLK_COPY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COPY), - SDLK_PASTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PASTE), - SDLK_FIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_FIND), - SDLK_MUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MUTE), - SDLK_VOLUMEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEUP), - SDLK_VOLUMEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEDOWN), - SDLK_KP_COMMA = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COMMA), - SDLK_KP_EQUALSAS400 = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALSAS400), - - SDLK_ALTERASE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ALTERASE), - SDLK_SYSREQ = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SYSREQ), - SDLK_CANCEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CANCEL), - SDLK_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEAR), - SDLK_PRIOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRIOR), - SDLK_RETURN2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RETURN2), - SDLK_SEPARATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SEPARATOR), - SDLK_OUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OUT), - SDLK_OPER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OPER), - SDLK_CLEARAGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEARAGAIN), - SDLK_CRSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CRSEL), - SDLK_EXSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXSEL), - - SDLK_KP_00 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_00), - SDLK_KP_000 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_000), - SDLK_THOUSANDSSEPARATOR = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_THOUSANDSSEPARATOR), - SDLK_DECIMALSEPARATOR = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DECIMALSEPARATOR), - SDLK_CURRENCYUNIT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYUNIT), - SDLK_CURRENCYSUBUNIT = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYSUBUNIT), - SDLK_KP_LEFTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTPAREN), - SDLK_KP_RIGHTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTPAREN), - SDLK_KP_LEFTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTBRACE), - SDLK_KP_RIGHTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTBRACE), - SDLK_KP_TAB = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_TAB), - SDLK_KP_BACKSPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BACKSPACE), - SDLK_KP_A = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_A), - SDLK_KP_B = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_B), - SDLK_KP_C = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_C), - SDLK_KP_D = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_D), - SDLK_KP_E = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_E), - SDLK_KP_F = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_F), - SDLK_KP_XOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_XOR), - SDLK_KP_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_POWER), - SDLK_KP_PERCENT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERCENT), - SDLK_KP_LESS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LESS), - SDLK_KP_GREATER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_GREATER), - SDLK_KP_AMPERSAND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AMPERSAND), - SDLK_KP_DBLAMPERSAND = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLAMPERSAND), - SDLK_KP_VERTICALBAR = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_VERTICALBAR), - SDLK_KP_DBLVERTICALBAR = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLVERTICALBAR), - SDLK_KP_COLON = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COLON), - SDLK_KP_HASH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HASH), - SDLK_KP_SPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_SPACE), - SDLK_KP_AT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AT), - SDLK_KP_EXCLAM = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EXCLAM), - SDLK_KP_MEMSTORE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSTORE), - SDLK_KP_MEMRECALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMRECALL), - SDLK_KP_MEMCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMCLEAR), - SDLK_KP_MEMADD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMADD), - SDLK_KP_MEMSUBTRACT = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSUBTRACT), - SDLK_KP_MEMMULTIPLY = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMMULTIPLY), - SDLK_KP_MEMDIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMDIVIDE), - SDLK_KP_PLUSMINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUSMINUS), - SDLK_KP_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEAR), - SDLK_KP_CLEARENTRY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEARENTRY), - SDLK_KP_BINARY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BINARY), - SDLK_KP_OCTAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_OCTAL), - SDLK_KP_DECIMAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DECIMAL), - SDLK_KP_HEXADECIMAL = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HEXADECIMAL), - - SDLK_LCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LCTRL), - SDLK_LSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LSHIFT), - SDLK_LALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LALT), - SDLK_LGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LGUI), - SDLK_RCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RCTRL), - SDLK_RSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RSHIFT), - SDLK_RALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RALT), - SDLK_RGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RGUI), - - SDLK_MODE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MODE), - - SDLK_AUDIONEXT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIONEXT), - SDLK_AUDIOPREV = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPREV), - SDLK_AUDIOSTOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOSTOP), - SDLK_AUDIOPLAY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPLAY), - SDLK_AUDIOMUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOMUTE), - SDLK_MEDIASELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIASELECT), - SDLK_WWW = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_WWW), - SDLK_MAIL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MAIL), - SDLK_CALCULATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALCULATOR), - SDLK_COMPUTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COMPUTER), - SDLK_AC_SEARCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_SEARCH), - SDLK_AC_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_HOME), - SDLK_AC_BACK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BACK), - SDLK_AC_FORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_FORWARD), - SDLK_AC_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_STOP), - SDLK_AC_REFRESH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_REFRESH), - SDLK_AC_BOOKMARKS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BOOKMARKS), - - SDLK_BRIGHTNESSDOWN = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSDOWN), - SDLK_BRIGHTNESSUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSUP), - SDLK_DISPLAYSWITCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DISPLAYSWITCH), - SDLK_KBDILLUMTOGGLE = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMTOGGLE), - SDLK_KBDILLUMDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMDOWN), - SDLK_KBDILLUMUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMUP), - SDLK_EJECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EJECT), - SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP), - SDLK_APP1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP1), - SDLK_APP2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP2), - - SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND), - SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD), - - SDLK_SOFTLEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTLEFT), - SDLK_SOFTRIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTRIGHT), - SDLK_CALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALL), - SDLK_ENDCALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ENDCALL) -} SDL_KeyCode; - -/** - * \brief Enumeration of valid key mods (possibly OR'd together). - */ -typedef enum -{ - KMOD_NONE = 0x0000, - KMOD_LSHIFT = 0x0001, - KMOD_RSHIFT = 0x0002, - KMOD_LCTRL = 0x0040, - KMOD_RCTRL = 0x0080, - KMOD_LALT = 0x0100, - KMOD_RALT = 0x0200, - KMOD_LGUI = 0x0400, - KMOD_RGUI = 0x0800, - KMOD_NUM = 0x1000, - KMOD_CAPS = 0x2000, - KMOD_MODE = 0x4000, - KMOD_SCROLL = 0x8000, - - KMOD_CTRL = KMOD_LCTRL | KMOD_RCTRL, - KMOD_SHIFT = KMOD_LSHIFT | KMOD_RSHIFT, - KMOD_ALT = KMOD_LALT | KMOD_RALT, - KMOD_GUI = KMOD_LGUI | KMOD_RGUI, - - KMOD_RESERVED = KMOD_SCROLL /* This is for source-level compatibility with SDL 2.0.0. */ -} SDL_Keymod; - -#endif /* SDL_keycode_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_loadso.h b/lib/windows/include/SDL_loadso.h deleted file mode 100644 index ca59b68..0000000 --- a/lib/windows/include/SDL_loadso.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_loadso.h - * - * System dependent library loading routines - * - * Some things to keep in mind: - * \li These functions only work on C function names. Other languages may - * have name mangling and intrinsic language support that varies from - * compiler to compiler. - * \li Make sure you declare your function pointers with the same calling - * convention as the actual library function. Your code will crash - * mysteriously if you do not do this. - * \li Avoid namespace collisions. If you load a symbol from the library, - * it is not defined whether or not it goes into the global symbol - * namespace for the application. If it does and it conflicts with - * symbols in your code or other shared libraries, you will not get - * the results you expect. :) - */ - -#ifndef SDL_loadso_h_ -#define SDL_loadso_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Dynamically load a shared object. - * - * \param sofile a system-dependent name of the object file - * \returns an opaque pointer to the object handle or NULL if there was an - * error; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadFunction - * \sa SDL_UnloadObject - */ -extern DECLSPEC void *SDLCALL SDL_LoadObject(const char *sofile); - -/** - * Look up the address of the named function in a shared object. - * - * This function pointer is no longer valid after calling SDL_UnloadObject(). - * - * This function can only look up C function names. Other languages may have - * name mangling and intrinsic language support that varies from compiler to - * compiler. - * - * Make sure you declare your function pointers with the same calling - * convention as the actual library function. Your code will crash - * mysteriously if you do not do this. - * - * If the requested function doesn't exist, NULL is returned. - * - * \param handle a valid shared object handle returned by SDL_LoadObject() - * \param name the name of the function to look up - * \returns a pointer to the function or NULL if there was an error; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadObject - * \sa SDL_UnloadObject - */ -extern DECLSPEC void *SDLCALL SDL_LoadFunction(void *handle, - const char *name); - -/** - * Unload a shared object from memory. - * - * \param handle a valid shared object handle returned by SDL_LoadObject() - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadFunction - * \sa SDL_LoadObject - */ -extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_loadso_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_locale.h b/lib/windows/include/SDL_locale.h deleted file mode 100644 index 482dbef..0000000 --- a/lib/windows/include/SDL_locale.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_locale.h - * - * Include file for SDL locale services - */ - -#ifndef _SDL_locale_h -#define _SDL_locale_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -extern "C" { -/* *INDENT-ON* */ -#endif - - -typedef struct SDL_Locale -{ - const char *language; /**< A language name, like "en" for English. */ - const char *country; /**< A country, like "US" for America. Can be NULL. */ -} SDL_Locale; - -/** - * Report the user's preferred locale. - * - * This returns an array of SDL_Locale structs, the final item zeroed out. - * When the caller is done with this array, it should call SDL_free() on the - * returned value; all the memory involved is allocated in a single block, so - * a single SDL_free() will suffice. - * - * Returned language strings are in the format xx, where 'xx' is an ISO-639 - * language specifier (such as "en" for English, "de" for German, etc). - * Country strings are in the format YY, where "YY" is an ISO-3166 country - * code (such as "US" for the United States, "CA" for Canada, etc). Country - * might be NULL if there's no specific guidance on them (so you might get { - * "en", "US" } for American English, but { "en", NULL } means "English - * language, generically"). Language strings are never NULL, except to - * terminate the array. - * - * Please note that not all of these strings are 2 characters; some are three - * or more. - * - * The returned list of locales are in the order of the user's preference. For - * example, a German citizen that is fluent in US English and knows enough - * Japanese to navigate around Tokyo might have a list like: { "de", "en_US", - * "jp", NULL }. Someone from England might prefer British English (where - * "color" is spelled "colour", etc), but will settle for anything like it: { - * "en_GB", "en", NULL }. - * - * This function returns NULL on error, including when the platform does not - * supply this information at all. - * - * This might be a "slow" call that has to query the operating system. It's - * best to ask for this once and save the results. However, this list can - * change, usually because the user has changed a system preference outside of - * your program; SDL will send an SDL_LOCALECHANGED event in this case, if - * possible, and you can call this function again to get an updated copy of - * preferred locales. - * - * \return array of locales, terminated with a locale with a NULL language - * field. Will return NULL on error. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_Locale * SDLCALL SDL_GetPreferredLocales(void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -} -/* *INDENT-ON* */ -#endif -#include "close_code.h" - -#endif /* _SDL_locale_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_log.h b/lib/windows/include/SDL_log.h deleted file mode 100644 index da733c4..0000000 --- a/lib/windows/include/SDL_log.h +++ /dev/null @@ -1,404 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_log.h - * - * Simple log messages with categories and priorities. - * - * By default logs are quiet, but if you're debugging SDL you might want: - * - * SDL_LogSetAllPriority(SDL_LOG_PRIORITY_WARN); - * - * Here's where the messages go on different platforms: - * Windows: debug output stream - * Android: log output - * Others: standard error output (stderr) - */ - -#ifndef SDL_log_h_ -#define SDL_log_h_ - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - - -/** - * \brief The maximum size of a log message prior to SDL 2.0.24 - * - * As of 2.0.24 there is no limit to the length of SDL log messages. - */ -#define SDL_MAX_LOG_MESSAGE 4096 - -/** - * \brief The predefined log categories - * - * By default the application category is enabled at the INFO level, - * the assert category is enabled at the WARN level, test is enabled - * at the VERBOSE level and all other categories are enabled at the - * CRITICAL level. - */ -typedef enum -{ - SDL_LOG_CATEGORY_APPLICATION, - SDL_LOG_CATEGORY_ERROR, - SDL_LOG_CATEGORY_ASSERT, - SDL_LOG_CATEGORY_SYSTEM, - SDL_LOG_CATEGORY_AUDIO, - SDL_LOG_CATEGORY_VIDEO, - SDL_LOG_CATEGORY_RENDER, - SDL_LOG_CATEGORY_INPUT, - SDL_LOG_CATEGORY_TEST, - - /* Reserved for future SDL library use */ - SDL_LOG_CATEGORY_RESERVED1, - SDL_LOG_CATEGORY_RESERVED2, - SDL_LOG_CATEGORY_RESERVED3, - SDL_LOG_CATEGORY_RESERVED4, - SDL_LOG_CATEGORY_RESERVED5, - SDL_LOG_CATEGORY_RESERVED6, - SDL_LOG_CATEGORY_RESERVED7, - SDL_LOG_CATEGORY_RESERVED8, - SDL_LOG_CATEGORY_RESERVED9, - SDL_LOG_CATEGORY_RESERVED10, - - /* Beyond this point is reserved for application use, e.g. - enum { - MYAPP_CATEGORY_AWESOME1 = SDL_LOG_CATEGORY_CUSTOM, - MYAPP_CATEGORY_AWESOME2, - MYAPP_CATEGORY_AWESOME3, - ... - }; - */ - SDL_LOG_CATEGORY_CUSTOM -} SDL_LogCategory; - -/** - * \brief The predefined log priorities - */ -typedef enum -{ - SDL_LOG_PRIORITY_VERBOSE = 1, - SDL_LOG_PRIORITY_DEBUG, - SDL_LOG_PRIORITY_INFO, - SDL_LOG_PRIORITY_WARN, - SDL_LOG_PRIORITY_ERROR, - SDL_LOG_PRIORITY_CRITICAL, - SDL_NUM_LOG_PRIORITIES -} SDL_LogPriority; - - -/** - * Set the priority of all log categories. - * - * \param priority the SDL_LogPriority to assign - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogSetPriority - */ -extern DECLSPEC void SDLCALL SDL_LogSetAllPriority(SDL_LogPriority priority); - -/** - * Set the priority of a particular log category. - * - * \param category the category to assign a priority to - * \param priority the SDL_LogPriority to assign - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogGetPriority - * \sa SDL_LogSetAllPriority - */ -extern DECLSPEC void SDLCALL SDL_LogSetPriority(int category, - SDL_LogPriority priority); - -/** - * Get the priority of a particular log category. - * - * \param category the category to query - * \returns the SDL_LogPriority for the requested category - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogSetPriority - */ -extern DECLSPEC SDL_LogPriority SDLCALL SDL_LogGetPriority(int category); - -/** - * Reset all priorities to default. - * - * This is called by SDL_Quit(). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogSetAllPriority - * \sa SDL_LogSetPriority - */ -extern DECLSPEC void SDLCALL SDL_LogResetPriorities(void); - -/** - * Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO. - * - * = * \param fmt a printf() style message format string - * - * \param ... additional parameters matching % tokens in the `fmt` string, if - * any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); - -/** - * Log a message with SDL_LOG_PRIORITY_VERBOSE. - * - * \param category the category of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogVerbose(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * Log a message with SDL_LOG_PRIORITY_DEBUG. - * - * \param category the category of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogDebug(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * Log a message with SDL_LOG_PRIORITY_INFO. - * - * \param category the category of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogInfo(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * Log a message with SDL_LOG_PRIORITY_WARN. - * - * \param category the category of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - */ -extern DECLSPEC void SDLCALL SDL_LogWarn(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * Log a message with SDL_LOG_PRIORITY_ERROR. - * - * \param category the category of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogError(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * Log a message with SDL_LOG_PRIORITY_CRITICAL. - * - * \param category the category of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogCritical(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * Log a message with the specified category and priority. - * - * \param category the category of the message - * \param priority the priority of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogMessage(int category, - SDL_LogPriority priority, - SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(3); - -/** - * Log a message with the specified category and priority. - * - * \param category the category of the message - * \param priority the priority of the message - * \param fmt a printf() style message format string - * \param ap a variable argument list - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogMessageV(int category, - SDL_LogPriority priority, - const char *fmt, va_list ap); - -/** - * The prototype for the log output callback function. - * - * This function is called by SDL when there is new text to be logged. - * - * \param userdata what was passed as `userdata` to SDL_LogSetOutputFunction() - * \param category the category of the message - * \param priority the priority of the message - * \param message the message being output - */ -typedef void (SDLCALL *SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); - -/** - * Get the current log output function. - * - * \param callback an SDL_LogOutputFunction filled in with the current log - * callback - * \param userdata a pointer filled in with the pointer that is passed to - * `callback` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogSetOutputFunction - */ -extern DECLSPEC void SDLCALL SDL_LogGetOutputFunction(SDL_LogOutputFunction *callback, void **userdata); - -/** - * Replace the default log output function with one of your own. - * - * \param callback an SDL_LogOutputFunction to call instead of the default - * \param userdata a pointer that is passed to `callback` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogGetOutputFunction - */ -extern DECLSPEC void SDLCALL SDL_LogSetOutputFunction(SDL_LogOutputFunction callback, void *userdata); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_log_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_main.h b/lib/windows/include/SDL_main.h deleted file mode 100644 index 5cc8e59..0000000 --- a/lib/windows/include/SDL_main.h +++ /dev/null @@ -1,282 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_main_h_ -#define SDL_main_h_ - -#include "SDL_stdinc.h" - -/** - * \file SDL_main.h - * - * Redefine main() on some platforms so that it is called by SDL. - */ - -#ifndef SDL_MAIN_HANDLED -#if defined(__WIN32__) -/* On Windows SDL provides WinMain(), which parses the command line and passes - the arguments to your main function. - - If you provide your own WinMain(), you may define SDL_MAIN_HANDLED - */ -#define SDL_MAIN_AVAILABLE - -#elif defined(__WINRT__) -/* On WinRT, SDL provides a main function that initializes CoreApplication, - creating an instance of IFrameworkView in the process. - - Please note that #include'ing SDL_main.h is not enough to get a main() - function working. In non-XAML apps, the file, - src/main/winrt/SDL_WinRT_main_NonXAML.cpp, or a copy of it, must be compiled - into the app itself. In XAML apps, the function, SDL_WinRTRunApp must be - called, with a pointer to the Direct3D-hosted XAML control passed in. -*/ -#define SDL_MAIN_NEEDED - -#elif defined(__GDK__) -/* On GDK, SDL provides a main function that initializes the game runtime. - - Please note that #include'ing SDL_main.h is not enough to get a main() - function working. You must either link against SDL2main or, if not possible, - call the SDL_GDKRunApp function from your entry point. -*/ -#define SDL_MAIN_NEEDED - -#elif defined(__IPHONEOS__) -/* On iOS SDL provides a main function that creates an application delegate - and starts the iOS application run loop. - - If you link with SDL dynamically on iOS, the main function can't be in a - shared library, so you need to link with libSDLmain.a, which includes a - stub main function that calls into the shared library to start execution. - - See src/video/uikit/SDL_uikitappdelegate.m for more details. - */ -#define SDL_MAIN_NEEDED - -#elif defined(__ANDROID__) -/* On Android SDL provides a Java class in SDLActivity.java that is the - main activity entry point. - - See docs/README-android.md for more details on extending that class. - */ -#define SDL_MAIN_NEEDED - -/* We need to export SDL_main so it can be launched from Java */ -#define SDLMAIN_DECLSPEC DECLSPEC - -#elif defined(__NACL__) -/* On NACL we use ppapi_simple to set up the application helper code, - then wait for the first PSE_INSTANCE_DIDCHANGEVIEW event before - starting the user main function. - All user code is run in a separate thread by ppapi_simple, thus - allowing for blocking io to take place via nacl_io -*/ -#define SDL_MAIN_NEEDED - -#elif defined(__PSP__) -/* On PSP SDL provides a main function that sets the module info, - activates the GPU and starts the thread required to be able to exit - the software. - - If you provide this yourself, you may define SDL_MAIN_HANDLED - */ -#define SDL_MAIN_AVAILABLE - -#elif defined(__PS2__) -#define SDL_MAIN_AVAILABLE - -#define SDL_PS2_SKIP_IOP_RESET() \ - void reset_IOP(); \ - void reset_IOP() {} - -#elif defined(__3DS__) -/* - On N3DS, SDL provides a main function that sets up the screens - and storage. - - If you provide this yourself, you may define SDL_MAIN_HANDLED -*/ -#define SDL_MAIN_AVAILABLE - -#endif -#endif /* SDL_MAIN_HANDLED */ - -#ifndef SDLMAIN_DECLSPEC -#define SDLMAIN_DECLSPEC -#endif - -/** - * \file SDL_main.h - * - * The application's main() function must be called with C linkage, - * and should be declared like this: - * \code - * #ifdef __cplusplus - * extern "C" - * #endif - * int main(int argc, char *argv[]) - * { - * } - * \endcode - */ - -#if defined(SDL_MAIN_NEEDED) || defined(SDL_MAIN_AVAILABLE) -#define main SDL_main -#endif - -#include "begin_code.h" -#ifdef __cplusplus -extern "C" { -#endif - -/** - * The prototype for the application's main() function - */ -typedef int (*SDL_main_func)(int argc, char *argv[]); -extern SDLMAIN_DECLSPEC int SDL_main(int argc, char *argv[]); - - -/** - * Circumvent failure of SDL_Init() when not using SDL_main() as an entry - * point. - * - * This function is defined in SDL_main.h, along with the preprocessor rule to - * redefine main() as SDL_main(). Thus to ensure that your main() function - * will not be changed it is necessary to define SDL_MAIN_HANDLED before - * including SDL.h. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Init - */ -extern DECLSPEC void SDLCALL SDL_SetMainReady(void); - -#if defined(__WIN32__) || defined(__GDK__) - -/** - * Register a win32 window class for SDL's use. - * - * This can be called to set the application window class at startup. It is - * safe to call this multiple times, as long as every call is eventually - * paired with a call to SDL_UnregisterApp, but a second registration attempt - * while a previous registration is still active will be ignored, other than - * to increment a counter. - * - * Most applications do not need to, and should not, call this directly; SDL - * will call it when initializing the video subsystem. - * - * \param name the window class name, in UTF-8 encoding. If NULL, SDL - * currently uses "SDL_app" but this isn't guaranteed. - * \param style the value to use in WNDCLASSEX::style. If `name` is NULL, SDL - * currently uses `(CS_BYTEALIGNCLIENT | CS_OWNDC)` regardless of - * what is specified here. - * \param hInst the HINSTANCE to use in WNDCLASSEX::hInstance. If zero, SDL - * will use `GetModuleHandle(NULL)` instead. - * \returns 0 on success, -1 on error. SDL_GetError() may have details. - * - * \since This function is available since SDL 2.0.2. - */ -extern DECLSPEC int SDLCALL SDL_RegisterApp(const char *name, Uint32 style, void *hInst); - -/** - * Deregister the win32 window class from an SDL_RegisterApp call. - * - * This can be called to undo the effects of SDL_RegisterApp. - * - * Most applications do not need to, and should not, call this directly; SDL - * will call it when deinitializing the video subsystem. - * - * It is safe to call this multiple times, as long as every call is eventually - * paired with a prior call to SDL_RegisterApp. The window class will only be - * deregistered when the registration counter in SDL_RegisterApp decrements to - * zero through calls to this function. - * - * \since This function is available since SDL 2.0.2. - */ -extern DECLSPEC void SDLCALL SDL_UnregisterApp(void); - -#endif /* defined(__WIN32__) || defined(__GDK__) */ - - -#ifdef __WINRT__ - -/** - * Initialize and launch an SDL/WinRT application. - * - * \param mainFunction the SDL app's C-style main(), an SDL_main_func - * \param reserved reserved for future use; should be NULL - * \returns 0 on success or -1 on failure; call SDL_GetError() to retrieve - * more information on the failure. - * - * \since This function is available since SDL 2.0.3. - */ -extern DECLSPEC int SDLCALL SDL_WinRTRunApp(SDL_main_func mainFunction, void * reserved); - -#endif /* __WINRT__ */ - -#if defined(__IPHONEOS__) - -/** - * Initializes and launches an SDL application. - * - * \param argc The argc parameter from the application's main() function - * \param argv The argv parameter from the application's main() function - * \param mainFunction The SDL app's C-style main(), an SDL_main_func - * \return the return value from mainFunction - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_UIKitRunApp(int argc, char *argv[], SDL_main_func mainFunction); - -#endif /* __IPHONEOS__ */ - -#ifdef __GDK__ - -/** - * Initialize and launch an SDL GDK application. - * - * \param mainFunction the SDL app's C-style main(), an SDL_main_func - * \param reserved reserved for future use; should be NULL - * \returns 0 on success or -1 on failure; call SDL_GetError() to retrieve - * more information on the failure. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC int SDLCALL SDL_GDKRunApp(SDL_main_func mainFunction, void *reserved); - -/** - * Callback from the application to let the suspend continue. - * - * \since This function is available since SDL 2.28.0. - */ -extern DECLSPEC void SDLCALL SDL_GDKSuspendComplete(void); - -#endif /* __GDK__ */ - -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_main_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_messagebox.h b/lib/windows/include/SDL_messagebox.h deleted file mode 100644 index 7896fd1..0000000 --- a/lib/windows/include/SDL_messagebox.h +++ /dev/null @@ -1,193 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_messagebox_h_ -#define SDL_messagebox_h_ - -#include "SDL_stdinc.h" -#include "SDL_video.h" /* For SDL_Window */ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * SDL_MessageBox flags. If supported will display warning icon, etc. - */ -typedef enum -{ - SDL_MESSAGEBOX_ERROR = 0x00000010, /**< error dialog */ - SDL_MESSAGEBOX_WARNING = 0x00000020, /**< warning dialog */ - SDL_MESSAGEBOX_INFORMATION = 0x00000040, /**< informational dialog */ - SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 0x00000080, /**< buttons placed left to right */ - SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 0x00000100 /**< buttons placed right to left */ -} SDL_MessageBoxFlags; - -/** - * Flags for SDL_MessageBoxButtonData. - */ -typedef enum -{ - SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001, /**< Marks the default button when return is hit */ - SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002 /**< Marks the default button when escape is hit */ -} SDL_MessageBoxButtonFlags; - -/** - * Individual button data. - */ -typedef struct -{ - Uint32 flags; /**< ::SDL_MessageBoxButtonFlags */ - int buttonid; /**< User defined button id (value returned via SDL_ShowMessageBox) */ - const char * text; /**< The UTF-8 button text */ -} SDL_MessageBoxButtonData; - -/** - * RGB value used in a message box color scheme - */ -typedef struct -{ - Uint8 r, g, b; -} SDL_MessageBoxColor; - -typedef enum -{ - SDL_MESSAGEBOX_COLOR_BACKGROUND, - SDL_MESSAGEBOX_COLOR_TEXT, - SDL_MESSAGEBOX_COLOR_BUTTON_BORDER, - SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND, - SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED, - SDL_MESSAGEBOX_COLOR_MAX -} SDL_MessageBoxColorType; - -/** - * A set of colors to use for message box dialogs - */ -typedef struct -{ - SDL_MessageBoxColor colors[SDL_MESSAGEBOX_COLOR_MAX]; -} SDL_MessageBoxColorScheme; - -/** - * MessageBox structure containing title, text, window, etc. - */ -typedef struct -{ - Uint32 flags; /**< ::SDL_MessageBoxFlags */ - SDL_Window *window; /**< Parent window, can be NULL */ - const char *title; /**< UTF-8 title */ - const char *message; /**< UTF-8 message text */ - - int numbuttons; - const SDL_MessageBoxButtonData *buttons; - - const SDL_MessageBoxColorScheme *colorScheme; /**< ::SDL_MessageBoxColorScheme, can be NULL to use system settings */ -} SDL_MessageBoxData; - -/** - * Create a modal message box. - * - * If your needs aren't complex, it might be easier to use - * SDL_ShowSimpleMessageBox. - * - * This function should be called on the thread that created the parent - * window, or on the main thread if the messagebox has no parent. It will - * block execution of that thread until the user clicks a button or closes the - * messagebox. - * - * This function may be called at any time, even before SDL_Init(). This makes - * it useful for reporting errors like a failure to create a renderer or - * OpenGL context. - * - * On X11, SDL rolls its own dialog box with X11 primitives instead of a - * formal toolkit like GTK+ or Qt. - * - * Note that if SDL_Init() would fail because there isn't any available video - * target, this function is likely to fail for the same reasons. If this is a - * concern, check the return value from this function and fall back to writing - * to stderr if you can. - * - * \param messageboxdata the SDL_MessageBoxData structure with title, text and - * other options - * \param buttonid the pointer to which user id of hit button should be copied - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ShowSimpleMessageBox - */ -extern DECLSPEC int SDLCALL SDL_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid); - -/** - * Display a simple modal message box. - * - * If your needs aren't complex, this function is preferred over - * SDL_ShowMessageBox. - * - * `flags` may be any of the following: - * - * - `SDL_MESSAGEBOX_ERROR`: error dialog - * - `SDL_MESSAGEBOX_WARNING`: warning dialog - * - `SDL_MESSAGEBOX_INFORMATION`: informational dialog - * - * This function should be called on the thread that created the parent - * window, or on the main thread if the messagebox has no parent. It will - * block execution of that thread until the user clicks a button or closes the - * messagebox. - * - * This function may be called at any time, even before SDL_Init(). This makes - * it useful for reporting errors like a failure to create a renderer or - * OpenGL context. - * - * On X11, SDL rolls its own dialog box with X11 primitives instead of a - * formal toolkit like GTK+ or Qt. - * - * Note that if SDL_Init() would fail because there isn't any available video - * target, this function is likely to fail for the same reasons. If this is a - * concern, check the return value from this function and fall back to writing - * to stderr if you can. - * - * \param flags an SDL_MessageBoxFlags value - * \param title UTF-8 title text - * \param message UTF-8 message text - * \param window the parent window, or NULL for no parent - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ShowMessageBox - */ -extern DECLSPEC int SDLCALL SDL_ShowSimpleMessageBox(Uint32 flags, const char *title, const char *message, SDL_Window *window); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_messagebox_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_metal.h b/lib/windows/include/SDL_metal.h deleted file mode 100644 index f36e348..0000000 --- a/lib/windows/include/SDL_metal.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_metal.h - * - * Header file for functions to creating Metal layers and views on SDL windows. - */ - -#ifndef SDL_metal_h_ -#define SDL_metal_h_ - -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief A handle to a CAMetalLayer-backed NSView (macOS) or UIView (iOS/tvOS). - * - * \note This can be cast directly to an NSView or UIView. - */ -typedef void *SDL_MetalView; - -/** - * \name Metal support functions - */ -/* @{ */ - -/** - * Create a CAMetalLayer-backed NSView/UIView and attach it to the specified - * window. - * - * On macOS, this does *not* associate a MTLDevice with the CAMetalLayer on - * its own. It is up to user code to do that. - * - * The returned handle can be casted directly to a NSView or UIView. To access - * the backing CAMetalLayer, call SDL_Metal_GetLayer(). - * - * \since This function is available since SDL 2.0.12. - * - * \sa SDL_Metal_DestroyView - * \sa SDL_Metal_GetLayer - */ -extern DECLSPEC SDL_MetalView SDLCALL SDL_Metal_CreateView(SDL_Window * window); - -/** - * Destroy an existing SDL_MetalView object. - * - * This should be called before SDL_DestroyWindow, if SDL_Metal_CreateView was - * called after SDL_CreateWindow. - * - * \since This function is available since SDL 2.0.12. - * - * \sa SDL_Metal_CreateView - */ -extern DECLSPEC void SDLCALL SDL_Metal_DestroyView(SDL_MetalView view); - -/** - * Get a pointer to the backing CAMetalLayer for the given view. - * - * \since This function is available since SDL 2.0.14. - * - * \sa SDL_Metal_CreateView - */ -extern DECLSPEC void *SDLCALL SDL_Metal_GetLayer(SDL_MetalView view); - -/** - * Get the size of a window's underlying drawable in pixels (for use with - * setting viewport, scissor & etc). - * - * \param window SDL_Window from which the drawable size should be queried - * \param w Pointer to variable for storing the width in pixels, may be NULL - * \param h Pointer to variable for storing the height in pixels, may be NULL - * - * \since This function is available since SDL 2.0.14. - * - * \sa SDL_GetWindowSize - * \sa SDL_CreateWindow - */ -extern DECLSPEC void SDLCALL SDL_Metal_GetDrawableSize(SDL_Window* window, int *w, - int *h); - -/* @} *//* Metal support functions */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_metal_h_ */ diff --git a/lib/windows/include/SDL_misc.h b/lib/windows/include/SDL_misc.h deleted file mode 100644 index 13ed9c7..0000000 --- a/lib/windows/include/SDL_misc.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_misc.h - * - * \brief Include file for SDL API functions that don't fit elsewhere. - */ - -#ifndef SDL_misc_h_ -#define SDL_misc_h_ - -#include "SDL_stdinc.h" - -#include "begin_code.h" - -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Open a URL/URI in the browser or other appropriate external application. - * - * Open a URL in a separate, system-provided application. How this works will - * vary wildly depending on the platform. This will likely launch what makes - * sense to handle a specific URL's protocol (a web browser for `http://`, - * etc), but it might also be able to launch file managers for directories and - * other things. - * - * What happens when you open a URL varies wildly as well: your game window - * may lose focus (and may or may not lose focus if your game was fullscreen - * or grabbing input at the time). On mobile devices, your app will likely - * move to the background or your process might be paused. Any given platform - * may or may not handle a given URL. - * - * If this is unimplemented (or simply unavailable) for a platform, this will - * fail with an error. A successful result does not mean the URL loaded, just - * that we launched _something_ to handle it (or at least believe we did). - * - * All this to say: this function can be useful, but you should definitely - * test it on every platform you target. - * - * \param url A valid URL/URI to open. Use `file:///full/path/to/file` for - * local files, if supported. - * \returns 0 on success, or -1 on error; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_OpenURL(const char *url); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_misc_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_mouse.h b/lib/windows/include/SDL_mouse.h deleted file mode 100644 index aa07575..0000000 --- a/lib/windows/include/SDL_mouse.h +++ /dev/null @@ -1,464 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_mouse.h - * - * Include file for SDL mouse event handling. - */ - -#ifndef SDL_mouse_h_ -#define SDL_mouse_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct SDL_Cursor SDL_Cursor; /**< Implementation dependent */ - -/** - * \brief Cursor types for SDL_CreateSystemCursor(). - */ -typedef enum -{ - SDL_SYSTEM_CURSOR_ARROW, /**< Arrow */ - SDL_SYSTEM_CURSOR_IBEAM, /**< I-beam */ - SDL_SYSTEM_CURSOR_WAIT, /**< Wait */ - SDL_SYSTEM_CURSOR_CROSSHAIR, /**< Crosshair */ - SDL_SYSTEM_CURSOR_WAITARROW, /**< Small wait cursor (or Wait if not available) */ - SDL_SYSTEM_CURSOR_SIZENWSE, /**< Double arrow pointing northwest and southeast */ - SDL_SYSTEM_CURSOR_SIZENESW, /**< Double arrow pointing northeast and southwest */ - SDL_SYSTEM_CURSOR_SIZEWE, /**< Double arrow pointing west and east */ - SDL_SYSTEM_CURSOR_SIZENS, /**< Double arrow pointing north and south */ - SDL_SYSTEM_CURSOR_SIZEALL, /**< Four pointed arrow pointing north, south, east, and west */ - SDL_SYSTEM_CURSOR_NO, /**< Slashed circle or crossbones */ - SDL_SYSTEM_CURSOR_HAND, /**< Hand */ - SDL_NUM_SYSTEM_CURSORS -} SDL_SystemCursor; - -/** - * \brief Scroll direction types for the Scroll event - */ -typedef enum -{ - SDL_MOUSEWHEEL_NORMAL, /**< The scroll direction is normal */ - SDL_MOUSEWHEEL_FLIPPED /**< The scroll direction is flipped / natural */ -} SDL_MouseWheelDirection; - -/* Function prototypes */ - -/** - * Get the window which currently has mouse focus. - * - * \returns the window with mouse focus. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_GetMouseFocus(void); - -/** - * Retrieve the current state of the mouse. - * - * The current button state is returned as a button bitmask, which can be - * tested using the `SDL_BUTTON(X)` macros (where `X` is generally 1 for the - * left, 2 for middle, 3 for the right button), and `x` and `y` are set to the - * mouse cursor position relative to the focus window. You can pass NULL for - * either `x` or `y`. - * - * \param x the x coordinate of the mouse cursor position relative to the - * focus window - * \param y the y coordinate of the mouse cursor position relative to the - * focus window - * \returns a 32-bit button bitmask of the current button state. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetGlobalMouseState - * \sa SDL_GetRelativeMouseState - * \sa SDL_PumpEvents - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetMouseState(int *x, int *y); - -/** - * Get the current state of the mouse in relation to the desktop. - * - * This works similarly to SDL_GetMouseState(), but the coordinates will be - * reported relative to the top-left of the desktop. This can be useful if you - * need to track the mouse outside of a specific window and SDL_CaptureMouse() - * doesn't fit your needs. For example, it could be useful if you need to - * track the mouse while dragging a window, where coordinates relative to a - * window might not be in sync at all times. - * - * Note: SDL_GetMouseState() returns the mouse position as SDL understands it - * from the last pump of the event queue. This function, however, queries the - * OS for the current mouse position, and as such, might be a slightly less - * efficient function. Unless you know what you're doing and have a good - * reason to use this function, you probably want SDL_GetMouseState() instead. - * - * \param x filled in with the current X coord relative to the desktop; can be - * NULL - * \param y filled in with the current Y coord relative to the desktop; can be - * NULL - * \returns the current button state as a bitmask which can be tested using - * the SDL_BUTTON(X) macros. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_CaptureMouse - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetGlobalMouseState(int *x, int *y); - -/** - * Retrieve the relative state of the mouse. - * - * The current button state is returned as a button bitmask, which can be - * tested using the `SDL_BUTTON(X)` macros (where `X` is generally 1 for the - * left, 2 for middle, 3 for the right button), and `x` and `y` are set to the - * mouse deltas since the last call to SDL_GetRelativeMouseState() or since - * event initialization. You can pass NULL for either `x` or `y`. - * - * \param x a pointer filled with the last recorded x coordinate of the mouse - * \param y a pointer filled with the last recorded y coordinate of the mouse - * \returns a 32-bit button bitmask of the relative button state. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetMouseState - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetRelativeMouseState(int *x, int *y); - -/** - * Move the mouse cursor to the given position within the window. - * - * This function generates a mouse motion event if relative mode is not - * enabled. If relative mode is enabled, you can force mouse events for the - * warp by setting the SDL_HINT_MOUSE_RELATIVE_WARP_MOTION hint. - * - * Note that this function will appear to succeed, but not actually move the - * mouse when used over Microsoft Remote Desktop. - * - * \param window the window to move the mouse into, or NULL for the current - * mouse focus - * \param x the x coordinate within the window - * \param y the y coordinate within the window - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WarpMouseGlobal - */ -extern DECLSPEC void SDLCALL SDL_WarpMouseInWindow(SDL_Window * window, - int x, int y); - -/** - * Move the mouse to the given position in global screen space. - * - * This function generates a mouse motion event. - * - * A failure of this function usually means that it is unsupported by a - * platform. - * - * Note that this function will appear to succeed, but not actually move the - * mouse when used over Microsoft Remote Desktop. - * - * \param x the x coordinate - * \param y the y coordinate - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_WarpMouseInWindow - */ -extern DECLSPEC int SDLCALL SDL_WarpMouseGlobal(int x, int y); - -/** - * Set relative mouse mode. - * - * While the mouse is in relative mode, the cursor is hidden, the mouse - * position is constrained to the window, and SDL will report continuous - * relative mouse motion even if the mouse is at the edge of the window. - * - * This function will flush any pending mouse motion. - * - * \param enabled SDL_TRUE to enable relative mode, SDL_FALSE to disable. - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * If relative mode is not supported, this returns -1. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRelativeMouseMode - */ -extern DECLSPEC int SDLCALL SDL_SetRelativeMouseMode(SDL_bool enabled); - -/** - * Capture the mouse and to track input outside an SDL window. - * - * Capturing enables your app to obtain mouse events globally, instead of just - * within your window. Not all video targets support this function. When - * capturing is enabled, the current window will get all mouse events, but - * unlike relative mode, no change is made to the cursor and it is not - * restrained to your window. - * - * This function may also deny mouse input to other windows--both those in - * your application and others on the system--so you should use this function - * sparingly, and in small bursts. For example, you might want to track the - * mouse while the user is dragging something, until the user releases a mouse - * button. It is not recommended that you capture the mouse for long periods - * of time, such as the entire time your app is running. For that, you should - * probably use SDL_SetRelativeMouseMode() or SDL_SetWindowGrab(), depending - * on your goals. - * - * While captured, mouse events still report coordinates relative to the - * current (foreground) window, but those coordinates may be outside the - * bounds of the window (including negative values). Capturing is only allowed - * for the foreground window. If the window loses focus while capturing, the - * capture will be disabled automatically. - * - * While capturing is enabled, the current window will have the - * `SDL_WINDOW_MOUSE_CAPTURE` flag set. - * - * Please note that as of SDL 2.0.22, SDL will attempt to "auto capture" the - * mouse while the user is pressing a button; this is to try and make mouse - * behavior more consistent between platforms, and deal with the common case - * of a user dragging the mouse outside of the window. This means that if you - * are calling SDL_CaptureMouse() only to deal with this situation, you no - * longer have to (although it is safe to do so). If this causes problems for - * your app, you can disable auto capture by setting the - * `SDL_HINT_MOUSE_AUTO_CAPTURE` hint to zero. - * - * \param enabled SDL_TRUE to enable capturing, SDL_FALSE to disable. - * \returns 0 on success or -1 if not supported; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_GetGlobalMouseState - */ -extern DECLSPEC int SDLCALL SDL_CaptureMouse(SDL_bool enabled); - -/** - * Query whether relative mouse mode is enabled. - * - * \returns SDL_TRUE if relative mode is enabled or SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetRelativeMouseMode - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetRelativeMouseMode(void); - -/** - * Create a cursor using the specified bitmap data and mask (in MSB format). - * - * `mask` has to be in MSB (Most Significant Bit) format. - * - * The cursor width (`w`) must be a multiple of 8 bits. - * - * The cursor is created in black and white according to the following: - * - * - data=0, mask=1: white - * - data=1, mask=1: black - * - data=0, mask=0: transparent - * - data=1, mask=0: inverted color if possible, black if not. - * - * Cursors created with this function must be freed with SDL_FreeCursor(). - * - * If you want to have a color cursor, or create your cursor from an - * SDL_Surface, you should use SDL_CreateColorCursor(). Alternately, you can - * hide the cursor and draw your own as part of your game's rendering, but it - * will be bound to the framerate. - * - * Also, since SDL 2.0.0, SDL_CreateSystemCursor() is available, which - * provides twelve readily available system cursors to pick from. - * - * \param data the color value for each pixel of the cursor - * \param mask the mask value for each pixel of the cursor - * \param w the width of the cursor - * \param h the height of the cursor - * \param hot_x the X-axis location of the upper left corner of the cursor - * relative to the actual mouse position - * \param hot_y the Y-axis location of the upper left corner of the cursor - * relative to the actual mouse position - * \returns a new cursor with the specified parameters on success or NULL on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreeCursor - * \sa SDL_SetCursor - * \sa SDL_ShowCursor - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateCursor(const Uint8 * data, - const Uint8 * mask, - int w, int h, int hot_x, - int hot_y); - -/** - * Create a color cursor. - * - * \param surface an SDL_Surface structure representing the cursor image - * \param hot_x the x position of the cursor hot spot - * \param hot_y the y position of the cursor hot spot - * \returns the new cursor on success or NULL on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateCursor - * \sa SDL_FreeCursor - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateColorCursor(SDL_Surface *surface, - int hot_x, - int hot_y); - -/** - * Create a system cursor. - * - * \param id an SDL_SystemCursor enum value - * \returns a cursor on success or NULL on failure; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreeCursor - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateSystemCursor(SDL_SystemCursor id); - -/** - * Set the active cursor. - * - * This function sets the currently active cursor to the specified one. If the - * cursor is currently visible, the change will be immediately represented on - * the display. SDL_SetCursor(NULL) can be used to force cursor redraw, if - * this is desired for any reason. - * - * \param cursor a cursor to make active - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateCursor - * \sa SDL_GetCursor - * \sa SDL_ShowCursor - */ -extern DECLSPEC void SDLCALL SDL_SetCursor(SDL_Cursor * cursor); - -/** - * Get the active cursor. - * - * This function returns a pointer to the current cursor which is owned by the - * library. It is not necessary to free the cursor with SDL_FreeCursor(). - * - * \returns the active cursor or NULL if there is no mouse. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetCursor - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetCursor(void); - -/** - * Get the default cursor. - * - * You do not have to call SDL_FreeCursor() on the return value, but it is - * safe to do so. - * - * \returns the default cursor on success or NULL on failure. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSystemCursor - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetDefaultCursor(void); - -/** - * Free a previously-created cursor. - * - * Use this function to free cursor resources created with SDL_CreateCursor(), - * SDL_CreateColorCursor() or SDL_CreateSystemCursor(). - * - * \param cursor the cursor to free - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateColorCursor - * \sa SDL_CreateCursor - * \sa SDL_CreateSystemCursor - */ -extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor * cursor); - -/** - * Toggle whether or not the cursor is shown. - * - * The cursor starts off displayed but can be turned off. Passing `SDL_ENABLE` - * displays the cursor and passing `SDL_DISABLE` hides it. - * - * The current state of the mouse cursor can be queried by passing - * `SDL_QUERY`; either `SDL_DISABLE` or `SDL_ENABLE` will be returned. - * - * \param toggle `SDL_ENABLE` to show the cursor, `SDL_DISABLE` to hide it, - * `SDL_QUERY` to query the current state without changing it. - * \returns `SDL_ENABLE` if the cursor is shown, or `SDL_DISABLE` if the - * cursor is hidden, or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateCursor - * \sa SDL_SetCursor - */ -extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle); - -/** - * Used as a mask when testing buttons in buttonstate. - * - * - Button 1: Left mouse button - * - Button 2: Middle mouse button - * - Button 3: Right mouse button - */ -#define SDL_BUTTON(X) (1 << ((X)-1)) -#define SDL_BUTTON_LEFT 1 -#define SDL_BUTTON_MIDDLE 2 -#define SDL_BUTTON_RIGHT 3 -#define SDL_BUTTON_X1 4 -#define SDL_BUTTON_X2 5 -#define SDL_BUTTON_LMASK SDL_BUTTON(SDL_BUTTON_LEFT) -#define SDL_BUTTON_MMASK SDL_BUTTON(SDL_BUTTON_MIDDLE) -#define SDL_BUTTON_RMASK SDL_BUTTON(SDL_BUTTON_RIGHT) -#define SDL_BUTTON_X1MASK SDL_BUTTON(SDL_BUTTON_X1) -#define SDL_BUTTON_X2MASK SDL_BUTTON(SDL_BUTTON_X2) - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_mouse_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_mutex.h b/lib/windows/include/SDL_mutex.h deleted file mode 100644 index e679d38..0000000 --- a/lib/windows/include/SDL_mutex.h +++ /dev/null @@ -1,545 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_mutex_h_ -#define SDL_mutex_h_ - -/** - * \file SDL_mutex.h - * - * Functions to provide thread synchronization primitives. - */ - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -/******************************************************************************/ -/* Enable thread safety attributes only with clang. - * The attributes can be safely erased when compiling with other compilers. - */ -#if defined(SDL_THREAD_SAFETY_ANALYSIS) && \ - defined(__clang__) && (!defined(SWIG)) -#define SDL_THREAD_ANNOTATION_ATTRIBUTE__(x) __attribute__((x)) -#else -#define SDL_THREAD_ANNOTATION_ATTRIBUTE__(x) /* no-op */ -#endif - -#define SDL_CAPABILITY(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(capability(x)) - -#define SDL_SCOPED_CAPABILITY \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable) - -#define SDL_GUARDED_BY(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(guarded_by(x)) - -#define SDL_PT_GUARDED_BY(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(pt_guarded_by(x)) - -#define SDL_ACQUIRED_BEFORE(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquired_before(x)) - -#define SDL_ACQUIRED_AFTER(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquired_after(x)) - -#define SDL_REQUIRES(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(requires_capability(x)) - -#define SDL_REQUIRES_SHARED(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(requires_shared_capability(x)) - -#define SDL_ACQUIRE(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquire_capability(x)) - -#define SDL_ACQUIRE_SHARED(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquire_shared_capability(x)) - -#define SDL_RELEASE(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_capability(x)) - -#define SDL_RELEASE_SHARED(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_shared_capability(x)) - -#define SDL_RELEASE_GENERIC(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_generic_capability(x)) - -#define SDL_TRY_ACQUIRE(x, y) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_capability(x, y)) - -#define SDL_TRY_ACQUIRE_SHARED(x, y) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_shared_capability(x, y)) - -#define SDL_EXCLUDES(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(locks_excluded(x)) - -#define SDL_ASSERT_CAPABILITY(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(assert_capability(x)) - -#define SDL_ASSERT_SHARED_CAPABILITY(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(assert_shared_capability(x)) - -#define SDL_RETURN_CAPABILITY(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(lock_returned(x)) - -#define SDL_NO_THREAD_SAFETY_ANALYSIS \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(no_thread_safety_analysis) - -/******************************************************************************/ - - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Synchronization functions which can time out return this value - * if they time out. - */ -#define SDL_MUTEX_TIMEDOUT 1 - -/** - * This is the timeout value which corresponds to never time out. - */ -#define SDL_MUTEX_MAXWAIT (~(Uint32)0) - - -/** - * \name Mutex functions - */ -/* @{ */ - -/* The SDL mutex structure, defined in SDL_sysmutex.c */ -struct SDL_mutex; -typedef struct SDL_mutex SDL_mutex; - -/** - * Create a new mutex. - * - * All newly-created mutexes begin in the _unlocked_ state. - * - * Calls to SDL_LockMutex() will not return while the mutex is locked by - * another thread. See SDL_TryLockMutex() to attempt to lock without blocking. - * - * SDL mutexes are reentrant. - * - * \returns the initialized and unlocked mutex or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DestroyMutex - * \sa SDL_LockMutex - * \sa SDL_TryLockMutex - * \sa SDL_UnlockMutex - */ -extern DECLSPEC SDL_mutex *SDLCALL SDL_CreateMutex(void); - -/** - * Lock the mutex. - * - * This will block until the mutex is available, which is to say it is in the - * unlocked state and the OS has chosen the caller as the next thread to lock - * it. Of all threads waiting to lock the mutex, only one may do so at a time. - * - * It is legal for the owning thread to lock an already-locked mutex. It must - * unlock it the same number of times before it is actually made available for - * other threads in the system (this is known as a "recursive mutex"). - * - * \param mutex the mutex to lock - * \return 0, or -1 on error. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex * mutex) SDL_ACQUIRE(mutex); -#define SDL_mutexP(m) SDL_LockMutex(m) - -/** - * Try to lock a mutex without blocking. - * - * This works just like SDL_LockMutex(), but if the mutex is not available, - * this function returns `SDL_MUTEX_TIMEOUT` immediately. - * - * This technique is useful if you need exclusive access to a resource but - * don't want to wait for it, and will return to it to try again later. - * - * \param mutex the mutex to try to lock - * \returns 0, `SDL_MUTEX_TIMEDOUT`, or -1 on error; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateMutex - * \sa SDL_DestroyMutex - * \sa SDL_LockMutex - * \sa SDL_UnlockMutex - */ -extern DECLSPEC int SDLCALL SDL_TryLockMutex(SDL_mutex * mutex) SDL_TRY_ACQUIRE(0, mutex); - -/** - * Unlock the mutex. - * - * It is legal for the owning thread to lock an already-locked mutex. It must - * unlock it the same number of times before it is actually made available for - * other threads in the system (this is known as a "recursive mutex"). - * - * It is an error to unlock a mutex that has not been locked by the current - * thread, and doing so results in undefined behavior. - * - * It is also an error to unlock a mutex that isn't locked at all. - * - * \param mutex the mutex to unlock. - * \returns 0, or -1 on error. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_UnlockMutex(SDL_mutex * mutex) SDL_RELEASE(mutex); -#define SDL_mutexV(m) SDL_UnlockMutex(m) - -/** - * Destroy a mutex created with SDL_CreateMutex(). - * - * This function must be called on any mutex that is no longer needed. Failure - * to destroy a mutex will result in a system memory or resource leak. While - * it is safe to destroy a mutex that is _unlocked_, it is not safe to attempt - * to destroy a locked mutex, and may result in undefined behavior depending - * on the platform. - * - * \param mutex the mutex to destroy - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateMutex - * \sa SDL_LockMutex - * \sa SDL_TryLockMutex - * \sa SDL_UnlockMutex - */ -extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_mutex * mutex); - -/* @} *//* Mutex functions */ - - -/** - * \name Semaphore functions - */ -/* @{ */ - -/* The SDL semaphore structure, defined in SDL_syssem.c */ -struct SDL_semaphore; -typedef struct SDL_semaphore SDL_sem; - -/** - * Create a semaphore. - * - * This function creates a new semaphore and initializes it with the value - * `initial_value`. Each wait operation on the semaphore will atomically - * decrement the semaphore value and potentially block if the semaphore value - * is 0. Each post operation will atomically increment the semaphore value and - * wake waiting threads and allow them to retry the wait operation. - * - * \param initial_value the starting value of the semaphore - * \returns a new semaphore or NULL on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DestroySemaphore - * \sa SDL_SemPost - * \sa SDL_SemTryWait - * \sa SDL_SemValue - * \sa SDL_SemWait - * \sa SDL_SemWaitTimeout - */ -extern DECLSPEC SDL_sem *SDLCALL SDL_CreateSemaphore(Uint32 initial_value); - -/** - * Destroy a semaphore. - * - * It is not safe to destroy a semaphore if there are threads currently - * waiting on it. - * - * \param sem the semaphore to destroy - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSemaphore - * \sa SDL_SemPost - * \sa SDL_SemTryWait - * \sa SDL_SemValue - * \sa SDL_SemWait - * \sa SDL_SemWaitTimeout - */ -extern DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_sem * sem); - -/** - * Wait until a semaphore has a positive value and then decrements it. - * - * This function suspends the calling thread until either the semaphore - * pointed to by `sem` has a positive value or the call is interrupted by a - * signal or error. If the call is successful it will atomically decrement the - * semaphore value. - * - * This function is the equivalent of calling SDL_SemWaitTimeout() with a time - * length of `SDL_MUTEX_MAXWAIT`. - * - * \param sem the semaphore wait on - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSemaphore - * \sa SDL_DestroySemaphore - * \sa SDL_SemPost - * \sa SDL_SemTryWait - * \sa SDL_SemValue - * \sa SDL_SemWait - * \sa SDL_SemWaitTimeout - */ -extern DECLSPEC int SDLCALL SDL_SemWait(SDL_sem * sem); - -/** - * See if a semaphore has a positive value and decrement it if it does. - * - * This function checks to see if the semaphore pointed to by `sem` has a - * positive value and atomically decrements the semaphore value if it does. If - * the semaphore doesn't have a positive value, the function immediately - * returns SDL_MUTEX_TIMEDOUT. - * - * \param sem the semaphore to wait on - * \returns 0 if the wait succeeds, `SDL_MUTEX_TIMEDOUT` if the wait would - * block, or a negative error code on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSemaphore - * \sa SDL_DestroySemaphore - * \sa SDL_SemPost - * \sa SDL_SemValue - * \sa SDL_SemWait - * \sa SDL_SemWaitTimeout - */ -extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem * sem); - -/** - * Wait until a semaphore has a positive value and then decrements it. - * - * This function suspends the calling thread until either the semaphore - * pointed to by `sem` has a positive value, the call is interrupted by a - * signal or error, or the specified time has elapsed. If the call is - * successful it will atomically decrement the semaphore value. - * - * \param sem the semaphore to wait on - * \param timeout the length of the timeout, in milliseconds - * \returns 0 if the wait succeeds, `SDL_MUTEX_TIMEDOUT` if the wait does not - * succeed in the allotted time, or a negative error code on failure; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSemaphore - * \sa SDL_DestroySemaphore - * \sa SDL_SemPost - * \sa SDL_SemTryWait - * \sa SDL_SemValue - * \sa SDL_SemWait - */ -extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem *sem, Uint32 timeout); - -/** - * Atomically increment a semaphore's value and wake waiting threads. - * - * \param sem the semaphore to increment - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSemaphore - * \sa SDL_DestroySemaphore - * \sa SDL_SemTryWait - * \sa SDL_SemValue - * \sa SDL_SemWait - * \sa SDL_SemWaitTimeout - */ -extern DECLSPEC int SDLCALL SDL_SemPost(SDL_sem * sem); - -/** - * Get the current value of a semaphore. - * - * \param sem the semaphore to query - * \returns the current value of the semaphore. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSemaphore - */ -extern DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem * sem); - -/* @} *//* Semaphore functions */ - - -/** - * \name Condition variable functions - */ -/* @{ */ - -/* The SDL condition variable structure, defined in SDL_syscond.c */ -struct SDL_cond; -typedef struct SDL_cond SDL_cond; - -/** - * Create a condition variable. - * - * \returns a new condition variable or NULL on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CondBroadcast - * \sa SDL_CondSignal - * \sa SDL_CondWait - * \sa SDL_CondWaitTimeout - * \sa SDL_DestroyCond - */ -extern DECLSPEC SDL_cond *SDLCALL SDL_CreateCond(void); - -/** - * Destroy a condition variable. - * - * \param cond the condition variable to destroy - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CondBroadcast - * \sa SDL_CondSignal - * \sa SDL_CondWait - * \sa SDL_CondWaitTimeout - * \sa SDL_CreateCond - */ -extern DECLSPEC void SDLCALL SDL_DestroyCond(SDL_cond * cond); - -/** - * Restart one of the threads that are waiting on the condition variable. - * - * \param cond the condition variable to signal - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CondBroadcast - * \sa SDL_CondWait - * \sa SDL_CondWaitTimeout - * \sa SDL_CreateCond - * \sa SDL_DestroyCond - */ -extern DECLSPEC int SDLCALL SDL_CondSignal(SDL_cond * cond); - -/** - * Restart all threads that are waiting on the condition variable. - * - * \param cond the condition variable to signal - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CondSignal - * \sa SDL_CondWait - * \sa SDL_CondWaitTimeout - * \sa SDL_CreateCond - * \sa SDL_DestroyCond - */ -extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond * cond); - -/** - * Wait until a condition variable is signaled. - * - * This function unlocks the specified `mutex` and waits for another thread to - * call SDL_CondSignal() or SDL_CondBroadcast() on the condition variable - * `cond`. Once the condition variable is signaled, the mutex is re-locked and - * the function returns. - * - * The mutex must be locked before calling this function. - * - * This function is the equivalent of calling SDL_CondWaitTimeout() with a - * time length of `SDL_MUTEX_MAXWAIT`. - * - * \param cond the condition variable to wait on - * \param mutex the mutex used to coordinate thread access - * \returns 0 when it is signaled or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CondBroadcast - * \sa SDL_CondSignal - * \sa SDL_CondWaitTimeout - * \sa SDL_CreateCond - * \sa SDL_DestroyCond - */ -extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond * cond, SDL_mutex * mutex); - -/** - * Wait until a condition variable is signaled or a certain time has passed. - * - * This function unlocks the specified `mutex` and waits for another thread to - * call SDL_CondSignal() or SDL_CondBroadcast() on the condition variable - * `cond`, or for the specified time to elapse. Once the condition variable is - * signaled or the time elapsed, the mutex is re-locked and the function - * returns. - * - * The mutex must be locked before calling this function. - * - * \param cond the condition variable to wait on - * \param mutex the mutex used to coordinate thread access - * \param ms the maximum time to wait, in milliseconds, or `SDL_MUTEX_MAXWAIT` - * to wait indefinitely - * \returns 0 if the condition variable is signaled, `SDL_MUTEX_TIMEDOUT` if - * the condition is not signaled in the allotted time, or a negative - * error code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CondBroadcast - * \sa SDL_CondSignal - * \sa SDL_CondWait - * \sa SDL_CreateCond - * \sa SDL_DestroyCond - */ -extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond * cond, - SDL_mutex * mutex, Uint32 ms); - -/* @} *//* Condition variable functions */ - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_mutex_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_name.h b/lib/windows/include/SDL_name.h deleted file mode 100644 index 5c3e07a..0000000 --- a/lib/windows/include/SDL_name.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDLname_h_ -#define SDLname_h_ - -#if defined(__STDC__) || defined(__cplusplus) -#define NeedFunctionPrototypes 1 -#endif - -#define SDL_NAME(X) SDL_##X - -#endif /* SDLname_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_opengl.h b/lib/windows/include/SDL_opengl.h deleted file mode 100644 index 0ba8912..0000000 --- a/lib/windows/include/SDL_opengl.h +++ /dev/null @@ -1,2132 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_opengl.h - * - * This is a simple file to encapsulate the OpenGL API headers. - */ - -/** - * \def NO_SDL_GLEXT - * - * Define this if you have your own version of glext.h and want to disable the - * version included in SDL_opengl.h. - */ - -#ifndef SDL_opengl_h_ -#define SDL_opengl_h_ - -#include "SDL_config.h" - -#ifndef __IPHONEOS__ /* No OpenGL on iOS. */ - -/* - * Mesa 3-D graphics library - * - * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. - * Copyright (C) 2009 VMware, Inc. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - - -#ifndef __gl_h_ -#define __gl_h_ - -#if defined(USE_MGL_NAMESPACE) -#include "gl_mangle.h" -#endif - - -/********************************************************************** - * Begin system-specific stuff. - */ - -#if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) -#define __WIN32__ -#endif - -#if defined(__WIN32__) && !defined(__CYGWIN__) -# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ -# define GLAPI __declspec(dllexport) -# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ -# define GLAPI __declspec(dllimport) -# else /* for use with static link lib build of Win32 edition only */ -# define GLAPI extern -# endif /* _STATIC_MESA support */ -# if defined(__MINGW32__) && defined(GL_NO_STDCALL) || defined(UNDER_CE) /* The generated DLLs by MingW with STDCALL are not compatible with the ones done by Microsoft's compilers */ -# define GLAPIENTRY -# else -# define GLAPIENTRY __stdcall -# endif -#elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */ -# define GLAPI extern -# define GLAPIENTRY __stdcall -#elif defined(__OS2__) || defined(__EMX__) /* native os/2 opengl */ -# define GLAPI extern -# define GLAPIENTRY _System -# define APIENTRY _System -# if defined(__GNUC__) && !defined(_System) -# define _System -# endif -#elif (defined(__GNUC__) && __GNUC__ >= 4) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) -# define GLAPI __attribute__((visibility("default"))) -# define GLAPIENTRY -#endif /* WIN32 && !CYGWIN */ - -/* - * WINDOWS: Include windows.h here to define APIENTRY. - * It is also useful when applications include this file by - * including only glut.h, since glut.h depends on windows.h. - * Applications needing to include windows.h with parms other - * than "WIN32_LEAN_AND_MEAN" may include windows.h before - * glut.h or gl.h. - */ -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN 1 -#endif -#ifndef NOMINMAX /* don't define min() and max(). */ -#define NOMINMAX -#endif -#include <windows.h> -#endif - -#ifndef GLAPI -#define GLAPI extern -#endif - -#ifndef GLAPIENTRY -#define GLAPIENTRY -#endif - -#ifndef APIENTRY -#define APIENTRY GLAPIENTRY -#endif - -/* "P" suffix to be used for a pointer to a function */ -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif - -#ifndef GLAPIENTRYP -#define GLAPIENTRYP GLAPIENTRY * -#endif - -#if defined(PRAGMA_EXPORT_SUPPORTED) -#pragma export on -#endif - -/* - * End system-specific stuff. - **********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define GL_VERSION_1_1 1 -#define GL_VERSION_1_2 1 -#define GL_VERSION_1_3 1 -#define GL_ARB_imaging 1 - - -/* - * Datatypes - */ -typedef unsigned int GLenum; -typedef unsigned char GLboolean; -typedef unsigned int GLbitfield; -typedef void GLvoid; -typedef signed char GLbyte; /* 1-byte signed */ -typedef short GLshort; /* 2-byte signed */ -typedef int GLint; /* 4-byte signed */ -typedef unsigned char GLubyte; /* 1-byte unsigned */ -typedef unsigned short GLushort; /* 2-byte unsigned */ -typedef unsigned int GLuint; /* 4-byte unsigned */ -typedef int GLsizei; /* 4-byte signed */ -typedef float GLfloat; /* single precision float */ -typedef float GLclampf; /* single precision float in [0,1] */ -typedef double GLdouble; /* double precision float */ -typedef double GLclampd; /* double precision float in [0,1] */ - - - -/* - * Constants - */ - -/* Boolean values */ -#define GL_FALSE 0 -#define GL_TRUE 1 - -/* Data types */ -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_2_BYTES 0x1407 -#define GL_3_BYTES 0x1408 -#define GL_4_BYTES 0x1409 -#define GL_DOUBLE 0x140A - -/* Primitives */ -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_QUADS 0x0007 -#define GL_QUAD_STRIP 0x0008 -#define GL_POLYGON 0x0009 - -/* Vertex Arrays */ -#define GL_VERTEX_ARRAY 0x8074 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_COLOR_ARRAY 0x8076 -#define GL_INDEX_ARRAY 0x8077 -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_EDGE_FLAG_ARRAY 0x8079 -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_INDEX_ARRAY_TYPE 0x8085 -#define GL_INDEX_ARRAY_STRIDE 0x8086 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_INDEX_ARRAY_POINTER 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_C3F_V3F 0x2A24 -#define GL_N3F_V3F 0x2A25 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_V4F 0x2A28 -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T4F_C4F_N3F_V4F 0x2A2D - -/* Matrix Mode */ -#define GL_MATRIX_MODE 0x0BA0 -#define GL_MODELVIEW 0x1700 -#define GL_PROJECTION 0x1701 -#define GL_TEXTURE 0x1702 - -/* Points */ -#define GL_POINT_SMOOTH 0x0B10 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_POINT_SIZE_RANGE 0x0B12 - -/* Lines */ -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_STIPPLE 0x0B24 -#define GL_LINE_STIPPLE_PATTERN 0x0B25 -#define GL_LINE_STIPPLE_REPEAT 0x0B26 -#define GL_LINE_WIDTH 0x0B21 -#define GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_LINE_WIDTH_RANGE 0x0B22 - -/* Polygons */ -#define GL_POINT 0x1B00 -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_POLYGON_STIPPLE 0x0B42 -#define GL_EDGE_FLAG 0x0B43 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_POLYGON_OFFSET_FILL 0x8037 - -/* Display Lists */ -#define GL_COMPILE 0x1300 -#define GL_COMPILE_AND_EXECUTE 0x1301 -#define GL_LIST_BASE 0x0B32 -#define GL_LIST_INDEX 0x0B33 -#define GL_LIST_MODE 0x0B30 - -/* Depth buffer */ -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_BITS 0x0D56 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_COMPONENT 0x1902 - -/* Lighting */ -#define GL_LIGHTING 0x0B50 -#define GL_LIGHT0 0x4000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_QUADRATIC_ATTENUATION 0x1209 -#define GL_AMBIENT 0x1200 -#define GL_DIFFUSE 0x1201 -#define GL_SPECULAR 0x1202 -#define GL_SHININESS 0x1601 -#define GL_EMISSION 0x1600 -#define GL_POSITION 0x1203 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_COLOR_INDEXES 0x1603 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_SHADE_MODEL 0x0B54 -#define GL_FLAT 0x1D00 -#define GL_SMOOTH 0x1D01 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_COLOR_MATERIAL_FACE 0x0B55 -#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define GL_NORMALIZE 0x0BA1 - -/* User clipping planes */ -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 - -/* Accumulation buffer */ -#define GL_ACCUM_RED_BITS 0x0D58 -#define GL_ACCUM_GREEN_BITS 0x0D59 -#define GL_ACCUM_BLUE_BITS 0x0D5A -#define GL_ACCUM_ALPHA_BITS 0x0D5B -#define GL_ACCUM_CLEAR_VALUE 0x0B80 -#define GL_ACCUM 0x0100 -#define GL_ADD 0x0104 -#define GL_LOAD 0x0101 -#define GL_MULT 0x0103 -#define GL_RETURN 0x0102 - -/* Alpha testing */ -#define GL_ALPHA_TEST 0x0BC0 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_ALPHA_TEST_FUNC 0x0BC1 - -/* Blending */ -#define GL_BLEND 0x0BE2 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND_DST 0x0BE0 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 - -/* Render Mode */ -#define GL_FEEDBACK 0x1C01 -#define GL_RENDER 0x1C00 -#define GL_SELECT 0x1C02 - -/* Feedback */ -#define GL_2D 0x0600 -#define GL_3D 0x0601 -#define GL_3D_COLOR 0x0602 -#define GL_3D_COLOR_TEXTURE 0x0603 -#define GL_4D_COLOR_TEXTURE 0x0604 -#define GL_POINT_TOKEN 0x0701 -#define GL_LINE_TOKEN 0x0702 -#define GL_LINE_RESET_TOKEN 0x0707 -#define GL_POLYGON_TOKEN 0x0703 -#define GL_BITMAP_TOKEN 0x0704 -#define GL_DRAW_PIXEL_TOKEN 0x0705 -#define GL_COPY_PIXEL_TOKEN 0x0706 -#define GL_PASS_THROUGH_TOKEN 0x0700 -#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 - -/* Selection */ -#define GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define GL_SELECTION_BUFFER_SIZE 0x0DF4 - -/* Fog */ -#define GL_FOG 0x0B60 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_COLOR 0x0B66 -#define GL_FOG_INDEX 0x0B61 -#define GL_FOG_START 0x0B63 -#define GL_FOG_END 0x0B64 -#define GL_LINEAR 0x2601 -#define GL_EXP 0x0800 -#define GL_EXP2 0x0801 - -/* Logic Ops */ -#define GL_LOGIC_OP 0x0BF1 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_CLEAR 0x1500 -#define GL_SET 0x150F -#define GL_COPY 0x1503 -#define GL_COPY_INVERTED 0x150C -#define GL_NOOP 0x1505 -#define GL_INVERT 0x150A -#define GL_AND 0x1501 -#define GL_NAND 0x150E -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_XOR 0x1506 -#define GL_EQUIV 0x1509 -#define GL_AND_REVERSE 0x1502 -#define GL_AND_INVERTED 0x1504 -#define GL_OR_REVERSE 0x150B -#define GL_OR_INVERTED 0x150D - -/* Stencil */ -#define GL_STENCIL_BITS 0x0D57 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_INDEX 0x1901 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 - -/* Buffers, Pixel Drawing/Reading */ -#define GL_NONE 0 -#define GL_LEFT 0x0406 -#define GL_RIGHT 0x0407 -/*GL_FRONT 0x0404 */ -/*GL_BACK 0x0405 */ -/*GL_FRONT_AND_BACK 0x0408 */ -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_AUX0 0x0409 -#define GL_AUX1 0x040A -#define GL_AUX2 0x040B -#define GL_AUX3 0x040C -#define GL_COLOR_INDEX 0x1900 -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_ALPHA_BITS 0x0D55 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_INDEX_BITS 0x0D51 -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_AUX_BUFFERS 0x0C00 -#define GL_READ_BUFFER 0x0C02 -#define GL_DRAW_BUFFER 0x0C01 -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_STEREO 0x0C33 -#define GL_BITMAP 0x1A00 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_DITHER 0x0BD0 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 - -/* Implementation limits */ -#define GL_MAX_LIST_NESTING 0x0B31 -#define GL_MAX_EVAL_ORDER 0x0D30 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B - -/* Gets */ -#define GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_CURRENT_INDEX 0x0B01 -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_RASTER_COLOR 0x0B04 -#define GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define GL_CURRENT_RASTER_INDEX 0x0B05 -#define GL_CURRENT_RASTER_POSITION 0x0B07 -#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_INDEX_CLEAR_VALUE 0x0C20 -#define GL_INDEX_MODE 0x0C30 -#define GL_INDEX_WRITEMASK 0x0C21 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_NAME_STACK_DEPTH 0x0D70 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_RENDER_MODE 0x0C40 -#define GL_RGBA_MODE 0x0C31 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_VIEWPORT 0x0BA2 - -/* Evaluators */ -#define GL_AUTO_NORMAL 0x0D80 -#define GL_MAP1_COLOR_4 0x0D90 -#define GL_MAP1_INDEX 0x0D91 -#define GL_MAP1_NORMAL 0x0D92 -#define GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define GL_MAP1_VERTEX_3 0x0D97 -#define GL_MAP1_VERTEX_4 0x0D98 -#define GL_MAP2_COLOR_4 0x0DB0 -#define GL_MAP2_INDEX 0x0DB1 -#define GL_MAP2_NORMAL 0x0DB2 -#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define GL_MAP2_VERTEX_3 0x0DB7 -#define GL_MAP2_VERTEX_4 0x0DB8 -#define GL_MAP1_GRID_DOMAIN 0x0DD0 -#define GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define GL_MAP2_GRID_DOMAIN 0x0DD2 -#define GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define GL_COEFF 0x0A00 -#define GL_ORDER 0x0A01 -#define GL_DOMAIN 0x0A02 - -/* Hints */ -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_FOG_HINT 0x0C54 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 - -/* Scissor box */ -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 - -/* Pixel Mode / Transfer */ -#define GL_MAP_COLOR 0x0D10 -#define GL_MAP_STENCIL 0x0D11 -#define GL_INDEX_SHIFT 0x0D12 -#define GL_INDEX_OFFSET 0x0D13 -#define GL_RED_SCALE 0x0D14 -#define GL_RED_BIAS 0x0D15 -#define GL_GREEN_SCALE 0x0D18 -#define GL_GREEN_BIAS 0x0D19 -#define GL_BLUE_SCALE 0x0D1A -#define GL_BLUE_BIAS 0x0D1B -#define GL_ALPHA_SCALE 0x0D1C -#define GL_ALPHA_BIAS 0x0D1D -#define GL_DEPTH_SCALE 0x0D1E -#define GL_DEPTH_BIAS 0x0D1F -#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define GL_PIXEL_MAP_S_TO_S 0x0C71 -#define GL_PIXEL_MAP_I_TO_I 0x0C70 -#define GL_PIXEL_MAP_I_TO_R 0x0C72 -#define GL_PIXEL_MAP_I_TO_G 0x0C73 -#define GL_PIXEL_MAP_I_TO_B 0x0C74 -#define GL_PIXEL_MAP_I_TO_A 0x0C75 -#define GL_PIXEL_MAP_R_TO_R 0x0C76 -#define GL_PIXEL_MAP_G_TO_G 0x0C77 -#define GL_PIXEL_MAP_B_TO_B 0x0C78 -#define GL_PIXEL_MAP_A_TO_A 0x0C79 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_ZOOM_X 0x0D16 -#define GL_ZOOM_Y 0x0D17 - -/* Texture mapping */ -#define GL_TEXTURE_ENV 0x2300 -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_ENV_COLOR 0x2201 -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GEN_R 0x0C62 -#define GL_TEXTURE_GEN_Q 0x0C63 -#define GL_TEXTURE_GEN_MODE 0x2500 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_BORDER 0x1005 -#define GL_TEXTURE_COMPONENTS 0x1003 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_OBJECT_LINEAR 0x2401 -#define GL_OBJECT_PLANE 0x2501 -#define GL_EYE_LINEAR 0x2400 -#define GL_EYE_PLANE 0x2502 -#define GL_SPHERE_MAP 0x2402 -#define GL_DECAL 0x2101 -#define GL_MODULATE 0x2100 -#define GL_NEAREST 0x2600 -#define GL_REPEAT 0x2901 -#define GL_CLAMP 0x2900 -#define GL_S 0x2000 -#define GL_T 0x2001 -#define GL_R 0x2002 -#define GL_Q 0x2003 - -/* Utility */ -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 - -/* Errors */ -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_OUT_OF_MEMORY 0x0505 - -/* glPush/PopAttrib bits */ -#define GL_CURRENT_BIT 0x00000001 -#define GL_POINT_BIT 0x00000002 -#define GL_LINE_BIT 0x00000004 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_FOG_BIT 0x00000080 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_ENABLE_BIT 0x00002000 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_HINT_BIT 0x00008000 -#define GL_EVAL_BIT 0x00010000 -#define GL_LIST_BIT 0x00020000 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_ALL_ATTRIB_BITS 0x000FFFFF - - -/* OpenGL 1.1 */ -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_TEXTURE_PRIORITY 0x8066 -#define GL_TEXTURE_RESIDENT 0x8067 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_ALPHA4 0x803B -#define GL_ALPHA8 0x803C -#define GL_ALPHA12 0x803D -#define GL_ALPHA16 0x803E -#define GL_LUMINANCE4 0x803F -#define GL_LUMINANCE8 0x8040 -#define GL_LUMINANCE12 0x8041 -#define GL_LUMINANCE16 0x8042 -#define GL_LUMINANCE4_ALPHA4 0x8043 -#define GL_LUMINANCE6_ALPHA2 0x8044 -#define GL_LUMINANCE8_ALPHA8 0x8045 -#define GL_LUMINANCE12_ALPHA4 0x8046 -#define GL_LUMINANCE12_ALPHA12 0x8047 -#define GL_LUMINANCE16_ALPHA16 0x8048 -#define GL_INTENSITY 0x8049 -#define GL_INTENSITY4 0x804A -#define GL_INTENSITY8 0x804B -#define GL_INTENSITY12 0x804C -#define GL_INTENSITY16 0x804D -#define GL_R3_G3_B2 0x2A10 -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB8 0x8051 -#define GL_RGB10 0x8052 -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGBA2 0x8055 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_ALL_CLIENT_ATTRIB_BITS 0xFFFFFFFF -#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF - - - -/* - * Miscellaneous - */ - -GLAPI void GLAPIENTRY glClearIndex( GLfloat c ); - -GLAPI void GLAPIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); - -GLAPI void GLAPIENTRY glClear( GLbitfield mask ); - -GLAPI void GLAPIENTRY glIndexMask( GLuint mask ); - -GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ); - -GLAPI void GLAPIENTRY glAlphaFunc( GLenum func, GLclampf ref ); - -GLAPI void GLAPIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor ); - -GLAPI void GLAPIENTRY glLogicOp( GLenum opcode ); - -GLAPI void GLAPIENTRY glCullFace( GLenum mode ); - -GLAPI void GLAPIENTRY glFrontFace( GLenum mode ); - -GLAPI void GLAPIENTRY glPointSize( GLfloat size ); - -GLAPI void GLAPIENTRY glLineWidth( GLfloat width ); - -GLAPI void GLAPIENTRY glLineStipple( GLint factor, GLushort pattern ); - -GLAPI void GLAPIENTRY glPolygonMode( GLenum face, GLenum mode ); - -GLAPI void GLAPIENTRY glPolygonOffset( GLfloat factor, GLfloat units ); - -GLAPI void GLAPIENTRY glPolygonStipple( const GLubyte *mask ); - -GLAPI void GLAPIENTRY glGetPolygonStipple( GLubyte *mask ); - -GLAPI void GLAPIENTRY glEdgeFlag( GLboolean flag ); - -GLAPI void GLAPIENTRY glEdgeFlagv( const GLboolean *flag ); - -GLAPI void GLAPIENTRY glScissor( GLint x, GLint y, GLsizei width, GLsizei height); - -GLAPI void GLAPIENTRY glClipPlane( GLenum plane, const GLdouble *equation ); - -GLAPI void GLAPIENTRY glGetClipPlane( GLenum plane, GLdouble *equation ); - -GLAPI void GLAPIENTRY glDrawBuffer( GLenum mode ); - -GLAPI void GLAPIENTRY glReadBuffer( GLenum mode ); - -GLAPI void GLAPIENTRY glEnable( GLenum cap ); - -GLAPI void GLAPIENTRY glDisable( GLenum cap ); - -GLAPI GLboolean GLAPIENTRY glIsEnabled( GLenum cap ); - - -GLAPI void GLAPIENTRY glEnableClientState( GLenum cap ); /* 1.1 */ - -GLAPI void GLAPIENTRY glDisableClientState( GLenum cap ); /* 1.1 */ - - -GLAPI void GLAPIENTRY glGetBooleanv( GLenum pname, GLboolean *params ); - -GLAPI void GLAPIENTRY glGetDoublev( GLenum pname, GLdouble *params ); - -GLAPI void GLAPIENTRY glGetFloatv( GLenum pname, GLfloat *params ); - -GLAPI void GLAPIENTRY glGetIntegerv( GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glPushAttrib( GLbitfield mask ); - -GLAPI void GLAPIENTRY glPopAttrib( void ); - - -GLAPI void GLAPIENTRY glPushClientAttrib( GLbitfield mask ); /* 1.1 */ - -GLAPI void GLAPIENTRY glPopClientAttrib( void ); /* 1.1 */ - - -GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode ); - -GLAPI GLenum GLAPIENTRY glGetError( void ); - -GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name ); - -GLAPI void GLAPIENTRY glFinish( void ); - -GLAPI void GLAPIENTRY glFlush( void ); - -GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode ); - - -/* - * Depth Buffer - */ - -GLAPI void GLAPIENTRY glClearDepth( GLclampd depth ); - -GLAPI void GLAPIENTRY glDepthFunc( GLenum func ); - -GLAPI void GLAPIENTRY glDepthMask( GLboolean flag ); - -GLAPI void GLAPIENTRY glDepthRange( GLclampd near_val, GLclampd far_val ); - - -/* - * Accumulation Buffer - */ - -GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); - -GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value ); - - -/* - * Transformation - */ - -GLAPI void GLAPIENTRY glMatrixMode( GLenum mode ); - -GLAPI void GLAPIENTRY glOrtho( GLdouble left, GLdouble right, - GLdouble bottom, GLdouble top, - GLdouble near_val, GLdouble far_val ); - -GLAPI void GLAPIENTRY glFrustum( GLdouble left, GLdouble right, - GLdouble bottom, GLdouble top, - GLdouble near_val, GLdouble far_val ); - -GLAPI void GLAPIENTRY glViewport( GLint x, GLint y, - GLsizei width, GLsizei height ); - -GLAPI void GLAPIENTRY glPushMatrix( void ); - -GLAPI void GLAPIENTRY glPopMatrix( void ); - -GLAPI void GLAPIENTRY glLoadIdentity( void ); - -GLAPI void GLAPIENTRY glLoadMatrixd( const GLdouble *m ); -GLAPI void GLAPIENTRY glLoadMatrixf( const GLfloat *m ); - -GLAPI void GLAPIENTRY glMultMatrixd( const GLdouble *m ); -GLAPI void GLAPIENTRY glMultMatrixf( const GLfloat *m ); - -GLAPI void GLAPIENTRY glRotated( GLdouble angle, - GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glRotatef( GLfloat angle, - GLfloat x, GLfloat y, GLfloat z ); - -GLAPI void GLAPIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z ); - -GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z ); - - -/* - * Display Lists - */ - -GLAPI GLboolean GLAPIENTRY glIsList( GLuint list ); - -GLAPI void GLAPIENTRY glDeleteLists( GLuint list, GLsizei range ); - -GLAPI GLuint GLAPIENTRY glGenLists( GLsizei range ); - -GLAPI void GLAPIENTRY glNewList( GLuint list, GLenum mode ); - -GLAPI void GLAPIENTRY glEndList( void ); - -GLAPI void GLAPIENTRY glCallList( GLuint list ); - -GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type, - const GLvoid *lists ); - -GLAPI void GLAPIENTRY glListBase( GLuint base ); - - -/* - * Drawing Functions - */ - -GLAPI void GLAPIENTRY glBegin( GLenum mode ); - -GLAPI void GLAPIENTRY glEnd( void ); - - -GLAPI void GLAPIENTRY glVertex2d( GLdouble x, GLdouble y ); -GLAPI void GLAPIENTRY glVertex2f( GLfloat x, GLfloat y ); -GLAPI void GLAPIENTRY glVertex2i( GLint x, GLint y ); -GLAPI void GLAPIENTRY glVertex2s( GLshort x, GLshort y ); - -GLAPI void GLAPIENTRY glVertex3d( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glVertex3f( GLfloat x, GLfloat y, GLfloat z ); -GLAPI void GLAPIENTRY glVertex3i( GLint x, GLint y, GLint z ); -GLAPI void GLAPIENTRY glVertex3s( GLshort x, GLshort y, GLshort z ); - -GLAPI void GLAPIENTRY glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); -GLAPI void GLAPIENTRY glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); -GLAPI void GLAPIENTRY glVertex4i( GLint x, GLint y, GLint z, GLint w ); -GLAPI void GLAPIENTRY glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); - -GLAPI void GLAPIENTRY glVertex2dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glVertex2fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glVertex2iv( const GLint *v ); -GLAPI void GLAPIENTRY glVertex2sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glVertex3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glVertex3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glVertex3iv( const GLint *v ); -GLAPI void GLAPIENTRY glVertex3sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glVertex4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glVertex4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glVertex4iv( const GLint *v ); -GLAPI void GLAPIENTRY glVertex4sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz ); -GLAPI void GLAPIENTRY glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz ); -GLAPI void GLAPIENTRY glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz ); -GLAPI void GLAPIENTRY glNormal3i( GLint nx, GLint ny, GLint nz ); -GLAPI void GLAPIENTRY glNormal3s( GLshort nx, GLshort ny, GLshort nz ); - -GLAPI void GLAPIENTRY glNormal3bv( const GLbyte *v ); -GLAPI void GLAPIENTRY glNormal3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glNormal3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glNormal3iv( const GLint *v ); -GLAPI void GLAPIENTRY glNormal3sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glIndexd( GLdouble c ); -GLAPI void GLAPIENTRY glIndexf( GLfloat c ); -GLAPI void GLAPIENTRY glIndexi( GLint c ); -GLAPI void GLAPIENTRY glIndexs( GLshort c ); -GLAPI void GLAPIENTRY glIndexub( GLubyte c ); /* 1.1 */ - -GLAPI void GLAPIENTRY glIndexdv( const GLdouble *c ); -GLAPI void GLAPIENTRY glIndexfv( const GLfloat *c ); -GLAPI void GLAPIENTRY glIndexiv( const GLint *c ); -GLAPI void GLAPIENTRY glIndexsv( const GLshort *c ); -GLAPI void GLAPIENTRY glIndexubv( const GLubyte *c ); /* 1.1 */ - -GLAPI void GLAPIENTRY glColor3b( GLbyte red, GLbyte green, GLbyte blue ); -GLAPI void GLAPIENTRY glColor3d( GLdouble red, GLdouble green, GLdouble blue ); -GLAPI void GLAPIENTRY glColor3f( GLfloat red, GLfloat green, GLfloat blue ); -GLAPI void GLAPIENTRY glColor3i( GLint red, GLint green, GLint blue ); -GLAPI void GLAPIENTRY glColor3s( GLshort red, GLshort green, GLshort blue ); -GLAPI void GLAPIENTRY glColor3ub( GLubyte red, GLubyte green, GLubyte blue ); -GLAPI void GLAPIENTRY glColor3ui( GLuint red, GLuint green, GLuint blue ); -GLAPI void GLAPIENTRY glColor3us( GLushort red, GLushort green, GLushort blue ); - -GLAPI void GLAPIENTRY glColor4b( GLbyte red, GLbyte green, - GLbyte blue, GLbyte alpha ); -GLAPI void GLAPIENTRY glColor4d( GLdouble red, GLdouble green, - GLdouble blue, GLdouble alpha ); -GLAPI void GLAPIENTRY glColor4f( GLfloat red, GLfloat green, - GLfloat blue, GLfloat alpha ); -GLAPI void GLAPIENTRY glColor4i( GLint red, GLint green, - GLint blue, GLint alpha ); -GLAPI void GLAPIENTRY glColor4s( GLshort red, GLshort green, - GLshort blue, GLshort alpha ); -GLAPI void GLAPIENTRY glColor4ub( GLubyte red, GLubyte green, - GLubyte blue, GLubyte alpha ); -GLAPI void GLAPIENTRY glColor4ui( GLuint red, GLuint green, - GLuint blue, GLuint alpha ); -GLAPI void GLAPIENTRY glColor4us( GLushort red, GLushort green, - GLushort blue, GLushort alpha ); - - -GLAPI void GLAPIENTRY glColor3bv( const GLbyte *v ); -GLAPI void GLAPIENTRY glColor3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glColor3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glColor3iv( const GLint *v ); -GLAPI void GLAPIENTRY glColor3sv( const GLshort *v ); -GLAPI void GLAPIENTRY glColor3ubv( const GLubyte *v ); -GLAPI void GLAPIENTRY glColor3uiv( const GLuint *v ); -GLAPI void GLAPIENTRY glColor3usv( const GLushort *v ); - -GLAPI void GLAPIENTRY glColor4bv( const GLbyte *v ); -GLAPI void GLAPIENTRY glColor4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glColor4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glColor4iv( const GLint *v ); -GLAPI void GLAPIENTRY glColor4sv( const GLshort *v ); -GLAPI void GLAPIENTRY glColor4ubv( const GLubyte *v ); -GLAPI void GLAPIENTRY glColor4uiv( const GLuint *v ); -GLAPI void GLAPIENTRY glColor4usv( const GLushort *v ); - - -GLAPI void GLAPIENTRY glTexCoord1d( GLdouble s ); -GLAPI void GLAPIENTRY glTexCoord1f( GLfloat s ); -GLAPI void GLAPIENTRY glTexCoord1i( GLint s ); -GLAPI void GLAPIENTRY glTexCoord1s( GLshort s ); - -GLAPI void GLAPIENTRY glTexCoord2d( GLdouble s, GLdouble t ); -GLAPI void GLAPIENTRY glTexCoord2f( GLfloat s, GLfloat t ); -GLAPI void GLAPIENTRY glTexCoord2i( GLint s, GLint t ); -GLAPI void GLAPIENTRY glTexCoord2s( GLshort s, GLshort t ); - -GLAPI void GLAPIENTRY glTexCoord3d( GLdouble s, GLdouble t, GLdouble r ); -GLAPI void GLAPIENTRY glTexCoord3f( GLfloat s, GLfloat t, GLfloat r ); -GLAPI void GLAPIENTRY glTexCoord3i( GLint s, GLint t, GLint r ); -GLAPI void GLAPIENTRY glTexCoord3s( GLshort s, GLshort t, GLshort r ); - -GLAPI void GLAPIENTRY glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); -GLAPI void GLAPIENTRY glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q ); -GLAPI void GLAPIENTRY glTexCoord4i( GLint s, GLint t, GLint r, GLint q ); -GLAPI void GLAPIENTRY glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); - -GLAPI void GLAPIENTRY glTexCoord1dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord1fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord1iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord1sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glTexCoord2dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord2fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord2iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord2sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glTexCoord3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord3iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord3sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glTexCoord4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord4iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord4sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glRasterPos2d( GLdouble x, GLdouble y ); -GLAPI void GLAPIENTRY glRasterPos2f( GLfloat x, GLfloat y ); -GLAPI void GLAPIENTRY glRasterPos2i( GLint x, GLint y ); -GLAPI void GLAPIENTRY glRasterPos2s( GLshort x, GLshort y ); - -GLAPI void GLAPIENTRY glRasterPos3d( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glRasterPos3f( GLfloat x, GLfloat y, GLfloat z ); -GLAPI void GLAPIENTRY glRasterPos3i( GLint x, GLint y, GLint z ); -GLAPI void GLAPIENTRY glRasterPos3s( GLshort x, GLshort y, GLshort z ); - -GLAPI void GLAPIENTRY glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); -GLAPI void GLAPIENTRY glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); -GLAPI void GLAPIENTRY glRasterPos4i( GLint x, GLint y, GLint z, GLint w ); -GLAPI void GLAPIENTRY glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w ); - -GLAPI void GLAPIENTRY glRasterPos2dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glRasterPos2fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glRasterPos2iv( const GLint *v ); -GLAPI void GLAPIENTRY glRasterPos2sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glRasterPos3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glRasterPos3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glRasterPos3iv( const GLint *v ); -GLAPI void GLAPIENTRY glRasterPos3sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glRasterPos4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glRasterPos4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glRasterPos4iv( const GLint *v ); -GLAPI void GLAPIENTRY glRasterPos4sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 ); -GLAPI void GLAPIENTRY glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); -GLAPI void GLAPIENTRY glRecti( GLint x1, GLint y1, GLint x2, GLint y2 ); -GLAPI void GLAPIENTRY glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 ); - - -GLAPI void GLAPIENTRY glRectdv( const GLdouble *v1, const GLdouble *v2 ); -GLAPI void GLAPIENTRY glRectfv( const GLfloat *v1, const GLfloat *v2 ); -GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 ); -GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 ); - - -/* - * Vertex Arrays (1.1) - */ - -GLAPI void GLAPIENTRY glVertexPointer( GLint size, GLenum type, - GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glNormalPointer( GLenum type, GLsizei stride, - const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glColorPointer( GLint size, GLenum type, - GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glIndexPointer( GLenum type, GLsizei stride, - const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glTexCoordPointer( GLint size, GLenum type, - GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, GLvoid **params ); - -GLAPI void GLAPIENTRY glArrayElement( GLint i ); - -GLAPI void GLAPIENTRY glDrawArrays( GLenum mode, GLint first, GLsizei count ); - -GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count, - GLenum type, const GLvoid *indices ); - -GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride, - const GLvoid *pointer ); - -/* - * Lighting - */ - -GLAPI void GLAPIENTRY glShadeModel( GLenum mode ); - -GLAPI void GLAPIENTRY glLightf( GLenum light, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glLighti( GLenum light, GLenum pname, GLint param ); -GLAPI void GLAPIENTRY glLightfv( GLenum light, GLenum pname, - const GLfloat *params ); -GLAPI void GLAPIENTRY glLightiv( GLenum light, GLenum pname, - const GLint *params ); - -GLAPI void GLAPIENTRY glGetLightfv( GLenum light, GLenum pname, - GLfloat *params ); -GLAPI void GLAPIENTRY glGetLightiv( GLenum light, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glLightModelf( GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glLightModeli( GLenum pname, GLint param ); -GLAPI void GLAPIENTRY glLightModelfv( GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glLightModeliv( GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glMaterialf( GLenum face, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glMateriali( GLenum face, GLenum pname, GLint param ); -GLAPI void GLAPIENTRY glMaterialfv( GLenum face, GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glMaterialiv( GLenum face, GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params ); - -GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode ); - - -/* - * Raster functions - */ - -GLAPI void GLAPIENTRY glPixelZoom( GLfloat xfactor, GLfloat yfactor ); - -GLAPI void GLAPIENTRY glPixelStoref( GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glPixelStorei( GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glPixelTransferf( GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glPixelTransferi( GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLsizei mapsize, - const GLfloat *values ); -GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLsizei mapsize, - const GLuint *values ); -GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLsizei mapsize, - const GLushort *values ); - -GLAPI void GLAPIENTRY glGetPixelMapfv( GLenum map, GLfloat *values ); -GLAPI void GLAPIENTRY glGetPixelMapuiv( GLenum map, GLuint *values ); -GLAPI void GLAPIENTRY glGetPixelMapusv( GLenum map, GLushort *values ); - -GLAPI void GLAPIENTRY glBitmap( GLsizei width, GLsizei height, - GLfloat xorig, GLfloat yorig, - GLfloat xmove, GLfloat ymove, - const GLubyte *bitmap ); - -GLAPI void GLAPIENTRY glReadPixels( GLint x, GLint y, - GLsizei width, GLsizei height, - GLenum format, GLenum type, - GLvoid *pixels ); - -GLAPI void GLAPIENTRY glDrawPixels( GLsizei width, GLsizei height, - GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y, - GLsizei width, GLsizei height, - GLenum type ); - -/* - * Stenciling - */ - -GLAPI void GLAPIENTRY glStencilFunc( GLenum func, GLint ref, GLuint mask ); - -GLAPI void GLAPIENTRY glStencilMask( GLuint mask ); - -GLAPI void GLAPIENTRY glStencilOp( GLenum fail, GLenum zfail, GLenum zpass ); - -GLAPI void GLAPIENTRY glClearStencil( GLint s ); - - - -/* - * Texture mapping - */ - -GLAPI void GLAPIENTRY glTexGend( GLenum coord, GLenum pname, GLdouble param ); -GLAPI void GLAPIENTRY glTexGenf( GLenum coord, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glTexGeni( GLenum coord, GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glTexGendv( GLenum coord, GLenum pname, const GLdouble *params ); -GLAPI void GLAPIENTRY glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glTexGeniv( GLenum coord, GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params ); -GLAPI void GLAPIENTRY glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetTexGeniv( GLenum coord, GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glTexEnvf( GLenum target, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glTexEnvi( GLenum target, GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glTexEnviv( GLenum target, GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetTexEnviv( GLenum target, GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glTexParameterf( GLenum target, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glTexParameteri( GLenum target, GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glTexParameterfv( GLenum target, GLenum pname, - const GLfloat *params ); -GLAPI void GLAPIENTRY glTexParameteriv( GLenum target, GLenum pname, - const GLint *params ); - -GLAPI void GLAPIENTRY glGetTexParameterfv( GLenum target, - GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexParameteriv( GLenum target, - GLenum pname, GLint *params ); - -GLAPI void GLAPIENTRY glGetTexLevelParameterfv( GLenum target, GLint level, - GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetTexLevelParameteriv( GLenum target, GLint level, - GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glTexImage1D( GLenum target, GLint level, - GLint internalFormat, - GLsizei width, GLint border, - GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glTexImage2D( GLenum target, GLint level, - GLint internalFormat, - GLsizei width, GLsizei height, - GLint border, GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level, - GLenum format, GLenum type, - GLvoid *pixels ); - - -/* 1.1 functions */ - -GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures ); - -GLAPI void GLAPIENTRY glDeleteTextures( GLsizei n, const GLuint *textures); - -GLAPI void GLAPIENTRY glBindTexture( GLenum target, GLuint texture ); - -GLAPI void GLAPIENTRY glPrioritizeTextures( GLsizei n, - const GLuint *textures, - const GLclampf *priorities ); - -GLAPI GLboolean GLAPIENTRY glAreTexturesResident( GLsizei n, - const GLuint *textures, - GLboolean *residences ); - -GLAPI GLboolean GLAPIENTRY glIsTexture( GLuint texture ); - - -GLAPI void GLAPIENTRY glTexSubImage1D( GLenum target, GLint level, - GLint xoffset, - GLsizei width, GLenum format, - GLenum type, const GLvoid *pixels ); - - -GLAPI void GLAPIENTRY glTexSubImage2D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLsizei width, GLsizei height, - GLenum format, GLenum type, - const GLvoid *pixels ); - - -GLAPI void GLAPIENTRY glCopyTexImage1D( GLenum target, GLint level, - GLenum internalformat, - GLint x, GLint y, - GLsizei width, GLint border ); - - -GLAPI void GLAPIENTRY glCopyTexImage2D( GLenum target, GLint level, - GLenum internalformat, - GLint x, GLint y, - GLsizei width, GLsizei height, - GLint border ); - - -GLAPI void GLAPIENTRY glCopyTexSubImage1D( GLenum target, GLint level, - GLint xoffset, GLint x, GLint y, - GLsizei width ); - - -GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint x, GLint y, - GLsizei width, GLsizei height ); - - -/* - * Evaluators - */ - -GLAPI void GLAPIENTRY glMap1d( GLenum target, GLdouble u1, GLdouble u2, - GLint stride, - GLint order, const GLdouble *points ); -GLAPI void GLAPIENTRY glMap1f( GLenum target, GLfloat u1, GLfloat u2, - GLint stride, - GLint order, const GLfloat *points ); - -GLAPI void GLAPIENTRY glMap2d( GLenum target, - GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, - GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, - const GLdouble *points ); -GLAPI void GLAPIENTRY glMap2f( GLenum target, - GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, - GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, - const GLfloat *points ); - -GLAPI void GLAPIENTRY glGetMapdv( GLenum target, GLenum query, GLdouble *v ); -GLAPI void GLAPIENTRY glGetMapfv( GLenum target, GLenum query, GLfloat *v ); -GLAPI void GLAPIENTRY glGetMapiv( GLenum target, GLenum query, GLint *v ); - -GLAPI void GLAPIENTRY glEvalCoord1d( GLdouble u ); -GLAPI void GLAPIENTRY glEvalCoord1f( GLfloat u ); - -GLAPI void GLAPIENTRY glEvalCoord1dv( const GLdouble *u ); -GLAPI void GLAPIENTRY glEvalCoord1fv( const GLfloat *u ); - -GLAPI void GLAPIENTRY glEvalCoord2d( GLdouble u, GLdouble v ); -GLAPI void GLAPIENTRY glEvalCoord2f( GLfloat u, GLfloat v ); - -GLAPI void GLAPIENTRY glEvalCoord2dv( const GLdouble *u ); -GLAPI void GLAPIENTRY glEvalCoord2fv( const GLfloat *u ); - -GLAPI void GLAPIENTRY glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 ); -GLAPI void GLAPIENTRY glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 ); - -GLAPI void GLAPIENTRY glMapGrid2d( GLint un, GLdouble u1, GLdouble u2, - GLint vn, GLdouble v1, GLdouble v2 ); -GLAPI void GLAPIENTRY glMapGrid2f( GLint un, GLfloat u1, GLfloat u2, - GLint vn, GLfloat v1, GLfloat v2 ); - -GLAPI void GLAPIENTRY glEvalPoint1( GLint i ); - -GLAPI void GLAPIENTRY glEvalPoint2( GLint i, GLint j ); - -GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 ); - -GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ); - - -/* - * Fog - */ - -GLAPI void GLAPIENTRY glFogf( GLenum pname, GLfloat param ); - -GLAPI void GLAPIENTRY glFogi( GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params ); - -GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params ); - - -/* - * Selection and Feedback - */ - -GLAPI void GLAPIENTRY glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ); - -GLAPI void GLAPIENTRY glPassThrough( GLfloat token ); - -GLAPI void GLAPIENTRY glSelectBuffer( GLsizei size, GLuint *buffer ); - -GLAPI void GLAPIENTRY glInitNames( void ); - -GLAPI void GLAPIENTRY glLoadName( GLuint name ); - -GLAPI void GLAPIENTRY glPushName( GLuint name ); - -GLAPI void GLAPIENTRY glPopName( void ); - - - -/* - * OpenGL 1.2 - */ - -#define GL_RESCALE_NORMAL 0x803A -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_TEXTURE_BINDING_3D 0x806A - -GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start, - GLuint end, GLsizei count, GLenum type, const GLvoid *indices ); - -GLAPI void GLAPIENTRY glTexImage3D( GLenum target, GLint level, - GLint internalFormat, - GLsizei width, GLsizei height, - GLsizei depth, GLint border, - GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glTexSubImage3D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint zoffset, GLsizei width, - GLsizei height, GLsizei depth, - GLenum format, - GLenum type, const GLvoid *pixels); - -GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint zoffset, GLint x, - GLint y, GLsizei width, - GLsizei height ); - -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); - - -/* - * GL_ARB_imaging - */ - -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_BLEND_EQUATION 0x8009 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_FUNC_ADD 0x8006 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_COLOR 0x8005 - - -GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat, - GLsizei width, GLenum format, - GLenum type, const GLvoid *table ); - -GLAPI void GLAPIENTRY glColorSubTable( GLenum target, - GLsizei start, GLsizei count, - GLenum format, GLenum type, - const GLvoid *data ); - -GLAPI void GLAPIENTRY glColorTableParameteriv(GLenum target, GLenum pname, - const GLint *params); - -GLAPI void GLAPIENTRY glColorTableParameterfv(GLenum target, GLenum pname, - const GLfloat *params); - -GLAPI void GLAPIENTRY glCopyColorSubTable( GLenum target, GLsizei start, - GLint x, GLint y, GLsizei width ); - -GLAPI void GLAPIENTRY glCopyColorTable( GLenum target, GLenum internalformat, - GLint x, GLint y, GLsizei width ); - -GLAPI void GLAPIENTRY glGetColorTable( GLenum target, GLenum format, - GLenum type, GLvoid *table ); - -GLAPI void GLAPIENTRY glGetColorTableParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetColorTableParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glBlendEquation( GLenum mode ); - -GLAPI void GLAPIENTRY glBlendColor( GLclampf red, GLclampf green, - GLclampf blue, GLclampf alpha ); - -GLAPI void GLAPIENTRY glHistogram( GLenum target, GLsizei width, - GLenum internalformat, GLboolean sink ); - -GLAPI void GLAPIENTRY glResetHistogram( GLenum target ); - -GLAPI void GLAPIENTRY glGetHistogram( GLenum target, GLboolean reset, - GLenum format, GLenum type, - GLvoid *values ); - -GLAPI void GLAPIENTRY glGetHistogramParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetHistogramParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glMinmax( GLenum target, GLenum internalformat, - GLboolean sink ); - -GLAPI void GLAPIENTRY glResetMinmax( GLenum target ); - -GLAPI void GLAPIENTRY glGetMinmax( GLenum target, GLboolean reset, - GLenum format, GLenum types, - GLvoid *values ); - -GLAPI void GLAPIENTRY glGetMinmaxParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetMinmaxParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glConvolutionFilter1D( GLenum target, - GLenum internalformat, GLsizei width, GLenum format, GLenum type, - const GLvoid *image ); - -GLAPI void GLAPIENTRY glConvolutionFilter2D( GLenum target, - GLenum internalformat, GLsizei width, GLsizei height, GLenum format, - GLenum type, const GLvoid *image ); - -GLAPI void GLAPIENTRY glConvolutionParameterf( GLenum target, GLenum pname, - GLfloat params ); - -GLAPI void GLAPIENTRY glConvolutionParameterfv( GLenum target, GLenum pname, - const GLfloat *params ); - -GLAPI void GLAPIENTRY glConvolutionParameteri( GLenum target, GLenum pname, - GLint params ); - -GLAPI void GLAPIENTRY glConvolutionParameteriv( GLenum target, GLenum pname, - const GLint *params ); - -GLAPI void GLAPIENTRY glCopyConvolutionFilter1D( GLenum target, - GLenum internalformat, GLint x, GLint y, GLsizei width ); - -GLAPI void GLAPIENTRY glCopyConvolutionFilter2D( GLenum target, - GLenum internalformat, GLint x, GLint y, GLsizei width, - GLsizei height); - -GLAPI void GLAPIENTRY glGetConvolutionFilter( GLenum target, GLenum format, - GLenum type, GLvoid *image ); - -GLAPI void GLAPIENTRY glGetConvolutionParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetConvolutionParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target, - GLenum internalformat, GLsizei width, GLsizei height, GLenum format, - GLenum type, const GLvoid *row, const GLvoid *column ); - -GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format, - GLenum type, GLvoid *row, GLvoid *column, GLvoid *span ); - - - - -/* - * OpenGL 1.3 - */ - -/* multitexture */ -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -/* texture_cube_map */ -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -/* texture_compression */ -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -/* multisample */ -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_MULTISAMPLE_BIT 0x20000000 -/* transpose_matrix */ -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -/* texture_env_combine */ -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_SUBTRACT 0x84E7 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -/* texture_env_dot3 */ -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -/* texture_border_clamp */ -#define GL_CLAMP_TO_BORDER 0x812D - -GLAPI void GLAPIENTRY glActiveTexture( GLenum texture ); - -GLAPI void GLAPIENTRY glClientActiveTexture( GLenum texture ); - -GLAPI void GLAPIENTRY glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img ); - -GLAPI void GLAPIENTRY glMultiTexCoord1d( GLenum target, GLdouble s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord1f( GLenum target, GLfloat s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord1i( GLenum target, GLint s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord1s( GLenum target, GLshort s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1sv( GLenum target, const GLshort *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2i( GLenum target, GLint s, GLint t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2s( GLenum target, GLshort s, GLshort t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2sv( GLenum target, const GLshort *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3sv( GLenum target, const GLshort *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4sv( GLenum target, const GLshort *v ); - - -GLAPI void GLAPIENTRY glLoadTransposeMatrixd( const GLdouble m[16] ); - -GLAPI void GLAPIENTRY glLoadTransposeMatrixf( const GLfloat m[16] ); - -GLAPI void GLAPIENTRY glMultTransposeMatrixd( const GLdouble m[16] ); - -GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] ); - -GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert ); - - -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); - - - -/* - * GL_ARB_multitexture (ARB extension 1 and OpenGL 1.2.1) - */ -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 - -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 - -GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture); -GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture); -GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s); -GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s); -GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s); -GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s); -GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v); -GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); -GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); -GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); -GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); -GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v); -GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); -GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v); -GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); - -typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); - -#endif /* GL_ARB_multitexture */ - - - -/* - * Define this token if you want "old-style" header file behaviour (extensions - * defined in gl.h). Otherwise, extensions will be included from glext.h. - */ -#if !defined(NO_SDL_GLEXT) && !defined(GL_GLEXT_LEGACY) -#include "SDL_opengl_glext.h" -#endif /* GL_GLEXT_LEGACY */ - - - -/********************************************************************** - * Begin system-specific stuff - */ -#if defined(PRAGMA_EXPORT_SUPPORTED) -#pragma export off -#endif - -/* - * End system-specific stuff - **********************************************************************/ - - -#ifdef __cplusplus -} -#endif - -#endif /* __gl_h_ */ - -#endif /* !__IPHONEOS__ */ - -#endif /* SDL_opengl_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_opengl_glext.h b/lib/windows/include/SDL_opengl_glext.h deleted file mode 100644 index ff6ad12..0000000 --- a/lib/windows/include/SDL_opengl_glext.h +++ /dev/null @@ -1,13213 +0,0 @@ -/* SDL modified the include guard to be compatible with Mesa and Apple include guards: - * - Mesa uses: __gl_glext_h_ - * - Apple uses: __glext_h_ */ -#if !defined(__glext_h_) && !defined(__gl_glext_h_) -#define __glext_h_ 1 -#define __gl_glext_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN 1 -#endif -#include <windows.h> -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - -#define GL_GLEXT_VERSION 20220530 - -/*#include <KHR/khrplatform.h>*/ -#ifndef __khrplatform_h_ -#define __khrplatform_h_ - -/* -** Copyright (c) 2008-2018 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Khronos platform-specific types and definitions. - * - * The master copy of khrplatform.h is maintained in the Khronos EGL - * Registry repository at https://github.com/KhronosGroup/EGL-Registry - * The last semantic modification to khrplatform.h was at commit ID: - * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 - * - * Adopters may modify this file to suit their platform. Adopters are - * encouraged to submit platform specific modifications to the Khronos - * group so that they can be included in future versions of this file. - * Please submit changes by filing pull requests or issues on - * the EGL Registry repository linked above. - * - * - * See the Implementer's Guidelines for information about where this file - * should be located on your system and for more details of its use: - * http://www.khronos.org/registry/implementers_guide.pdf - * - * This file should be included as - * #include <KHR/khrplatform.h> - * by Khronos client API header files that use its types and defines. - * - * The types in khrplatform.h should only be used to define API-specific types. - * - * Types defined in khrplatform.h: - * khronos_int8_t signed 8 bit - * khronos_uint8_t unsigned 8 bit - * khronos_int16_t signed 16 bit - * khronos_uint16_t unsigned 16 bit - * khronos_int32_t signed 32 bit - * khronos_uint32_t unsigned 32 bit - * khronos_int64_t signed 64 bit - * khronos_uint64_t unsigned 64 bit - * khronos_intptr_t signed same number of bits as a pointer - * khronos_uintptr_t unsigned same number of bits as a pointer - * khronos_ssize_t signed size - * khronos_usize_t unsigned size - * khronos_float_t signed 32 bit floating point - * khronos_time_ns_t unsigned 64 bit time in nanoseconds - * khronos_utime_nanoseconds_t unsigned time interval or absolute time in - * nanoseconds - * khronos_stime_nanoseconds_t signed time interval in nanoseconds - * khronos_boolean_enum_t enumerated boolean type. This should - * only be used as a base type when a client API's boolean type is - * an enum. Client APIs which use an integer or other type for - * booleans cannot use this as the base type for their boolean. - * - * Tokens defined in khrplatform.h: - * - * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. - * - * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. - * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. - * - * Calling convention macros defined in this file: - * KHRONOS_APICALL - * KHRONOS_APIENTRY - * KHRONOS_APIATTRIBUTES - * - * These may be used in function prototypes as: - * - * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( - * int arg1, - * int arg2) KHRONOS_APIATTRIBUTES; - */ - -#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) -# define KHRONOS_STATIC 1 -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APICALL - *------------------------------------------------------------------------- - * This precedes the return type of the function in the function prototype. - */ -#if defined(KHRONOS_STATIC) - /* If the preprocessor constant KHRONOS_STATIC is defined, make the - * header compatible with static linking. */ -# define KHRONOS_APICALL -#elif defined(_WIN32) -# define KHRONOS_APICALL __declspec(dllimport) -#elif defined (__SYMBIAN32__) -# define KHRONOS_APICALL IMPORT_C -#elif defined(__ANDROID__) -# define KHRONOS_APICALL __attribute__((visibility("default"))) -#else -# define KHRONOS_APICALL -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIENTRY - *------------------------------------------------------------------------- - * This follows the return type of the function and precedes the function - * name in the function prototype. - */ -#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) - /* Win32 but not WinCE */ -# define KHRONOS_APIENTRY __stdcall -#else -# define KHRONOS_APIENTRY -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIATTRIBUTES - *------------------------------------------------------------------------- - * This follows the closing parenthesis of the function prototype arguments. - */ -#if defined (__ARMCC_2__) -#define KHRONOS_APIATTRIBUTES __softfp -#else -#define KHRONOS_APIATTRIBUTES -#endif - -/*------------------------------------------------------------------------- - * basic type definitions - *-----------------------------------------------------------------------*/ -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) - - -/* - * Using <stdint.h> - */ -#include <stdint.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 -/* - * To support platform where unsigned long cannot be used interchangeably with - * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t. - * Ideally, we could just use (u)intptr_t everywhere, but this could result in - * ABI breakage if khronos_uintptr_t is changed from unsigned long to - * unsigned long long or similar (this results in different C++ name mangling). - * To avoid changes for existing platforms, we restrict usage of intptr_t to - * platforms where the size of a pointer is larger than the size of long. - */ -#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__) -#if __SIZEOF_POINTER__ > __SIZEOF_LONG__ -#define KHRONOS_USE_INTPTR_T -#endif -#endif - -#elif defined(__VMS ) || defined(__sgi) - -/* - * Using <inttypes.h> - */ -#include <inttypes.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) - -/* - * Win32 - */ -typedef __int32 khronos_int32_t; -typedef unsigned __int32 khronos_uint32_t; -typedef __int64 khronos_int64_t; -typedef unsigned __int64 khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__sun__) || defined(__digital__) - -/* - * Sun or Digital - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#if defined(__arch64__) || defined(_LP64) -typedef long int khronos_int64_t; -typedef unsigned long int khronos_uint64_t; -#else -typedef long long int khronos_int64_t; -typedef unsigned long long int khronos_uint64_t; -#endif /* __arch64__ */ -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif 0 - -/* - * Hypothetical platform with no float or int64 support - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#define KHRONOS_SUPPORT_INT64 0 -#define KHRONOS_SUPPORT_FLOAT 0 - -#else - -/* - * Generic fallback - */ -#include <stdint.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#endif - - -/* - * Types that are (so far) the same on all platforms - */ -typedef signed char khronos_int8_t; -typedef unsigned char khronos_uint8_t; -typedef signed short int khronos_int16_t; -typedef unsigned short int khronos_uint16_t; - -/* - * Types that differ between LLP64 and LP64 architectures - in LLP64, - * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears - * to be the only LLP64 architecture in current use. - */ -#ifdef KHRONOS_USE_INTPTR_T -typedef intptr_t khronos_intptr_t; -typedef uintptr_t khronos_uintptr_t; -#elif defined(_WIN64) -typedef signed long long int khronos_intptr_t; -typedef unsigned long long int khronos_uintptr_t; -#else -typedef signed long int khronos_intptr_t; -typedef unsigned long int khronos_uintptr_t; -#endif - -#if defined(_WIN64) -typedef signed long long int khronos_ssize_t; -typedef unsigned long long int khronos_usize_t; -#else -typedef signed long int khronos_ssize_t; -typedef unsigned long int khronos_usize_t; -#endif - -#if KHRONOS_SUPPORT_FLOAT -/* - * Float type - */ -typedef float khronos_float_t; -#endif - -#if KHRONOS_SUPPORT_INT64 -/* Time types - * - * These types can be used to represent a time interval in nanoseconds or - * an absolute Unadjusted System Time. Unadjusted System Time is the number - * of nanoseconds since some arbitrary system event (e.g. since the last - * time the system booted). The Unadjusted System Time is an unsigned - * 64 bit value that wraps back to 0 every 584 years. Time intervals - * may be either signed or unsigned. - */ -typedef khronos_uint64_t khronos_utime_nanoseconds_t; -typedef khronos_int64_t khronos_stime_nanoseconds_t; -#endif - -/* - * Dummy value used to pad enum types to 32 bits. - */ -#ifndef KHRONOS_MAX_ENUM -#define KHRONOS_MAX_ENUM 0x7FFFFFFF -#endif - -/* - * Enumerated boolean type - * - * Values other than zero should be considered to be true. Therefore - * comparisons should not be made against KHRONOS_TRUE. - */ -typedef enum { - KHRONOS_FALSE = 0, - KHRONOS_TRUE = 1, - KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM -} khronos_boolean_enum_t; - -#endif /* __khrplatform_h_ */ - -/* Generated C header for: - * API: gl - * Profile: compatibility - * Versions considered: .* - * Versions emitted: 1\.[2-9]|[234]\.[0-9] - * Default extensions included: gl - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_RESCALE_NORMAL 0x803A -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GLAPI void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_VERSION_1_2 */ - -#ifndef GL_VERSION_1_3 -#define GL_VERSION_1_3 1 -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_MULTISAMPLE_BIT 0x20000000 -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_SUBTRACT 0x84E7 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTexture (GLenum texture); -GLAPI void APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GLAPI void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, void *img); -GLAPI void APIENTRY glClientActiveTexture (GLenum texture); -GLAPI void APIENTRY glMultiTexCoord1d (GLenum target, GLdouble s); -GLAPI void APIENTRY glMultiTexCoord1dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord1f (GLenum target, GLfloat s); -GLAPI void APIENTRY glMultiTexCoord1fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord1i (GLenum target, GLint s); -GLAPI void APIENTRY glMultiTexCoord1iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord1s (GLenum target, GLshort s); -GLAPI void APIENTRY glMultiTexCoord1sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t); -GLAPI void APIENTRY glMultiTexCoord2dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t); -GLAPI void APIENTRY glMultiTexCoord2fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord2i (GLenum target, GLint s, GLint t); -GLAPI void APIENTRY glMultiTexCoord2iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord2s (GLenum target, GLshort s, GLshort t); -GLAPI void APIENTRY glMultiTexCoord2sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void APIENTRY glMultiTexCoord3dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void APIENTRY glMultiTexCoord3fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r); -GLAPI void APIENTRY glMultiTexCoord3iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void APIENTRY glMultiTexCoord3sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void APIENTRY glMultiTexCoord4dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void APIENTRY glMultiTexCoord4fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void APIENTRY glMultiTexCoord4iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void APIENTRY glMultiTexCoord4sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *m); -GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *m); -GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *m); -GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *m); -#endif -#endif /* GL_VERSION_1_3 */ - -#ifndef GL_VERSION_1_4 -#define GL_VERSION_1_4 1 -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_COMPARE_R_TO_TEXTURE 0x884E -#define GL_BLEND_COLOR 0x8005 -#define GL_BLEND_EQUATION 0x8009 -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_FUNC_ADD 0x8006 -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_FUNC_SUBTRACT 0x800A -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GLAPI void APIENTRY glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); -GLAPI void APIENTRY glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); -GLAPI void APIENTRY glPointParameterf (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glPointParameteri (GLenum pname, GLint param); -GLAPI void APIENTRY glPointParameteriv (GLenum pname, const GLint *params); -GLAPI void APIENTRY glFogCoordf (GLfloat coord); -GLAPI void APIENTRY glFogCoordfv (const GLfloat *coord); -GLAPI void APIENTRY glFogCoordd (GLdouble coord); -GLAPI void APIENTRY glFogCoorddv (const GLdouble *coord); -GLAPI void APIENTRY glFogCoordPointer (GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue); -GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *v); -GLAPI void APIENTRY glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue); -GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *v); -GLAPI void APIENTRY glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue); -GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *v); -GLAPI void APIENTRY glSecondaryColor3i (GLint red, GLint green, GLint blue); -GLAPI void APIENTRY glSecondaryColor3iv (const GLint *v); -GLAPI void APIENTRY glSecondaryColor3s (GLshort red, GLshort green, GLshort blue); -GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *v); -GLAPI void APIENTRY glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue); -GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *v); -GLAPI void APIENTRY glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue); -GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *v); -GLAPI void APIENTRY glSecondaryColor3us (GLushort red, GLushort green, GLushort blue); -GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *v); -GLAPI void APIENTRY glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glWindowPos2d (GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dv (const GLdouble *v); -GLAPI void APIENTRY glWindowPos2f (GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fv (const GLfloat *v); -GLAPI void APIENTRY glWindowPos2i (GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2iv (const GLint *v); -GLAPI void APIENTRY glWindowPos2s (GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2sv (const GLshort *v); -GLAPI void APIENTRY glWindowPos3d (GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dv (const GLdouble *v); -GLAPI void APIENTRY glWindowPos3f (GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fv (const GLfloat *v); -GLAPI void APIENTRY glWindowPos3i (GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3iv (const GLint *v); -GLAPI void APIENTRY glWindowPos3s (GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3sv (const GLshort *v); -GLAPI void APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI void APIENTRY glBlendEquation (GLenum mode); -#endif -#endif /* GL_VERSION_1_4 */ - -#ifndef GL_VERSION_1_5 -#define GL_VERSION_1_5 1 -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_SAMPLES_PASSED 0x8914 -#define GL_SRC1_ALPHA 0x8589 -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_FOG_COORD_SRC 0x8450 -#define GL_FOG_COORD 0x8451 -#define GL_CURRENT_FOG_COORD 0x8453 -#define GL_FOG_COORD_ARRAY_TYPE 0x8454 -#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORD_ARRAY_POINTER 0x8456 -#define GL_FOG_COORD_ARRAY 0x8457 -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D -#define GL_SRC0_RGB 0x8580 -#define GL_SRC1_RGB 0x8581 -#define GL_SRC2_RGB 0x8582 -#define GL_SRC0_ALPHA 0x8588 -#define GL_SRC2_ALPHA 0x858A -typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void *data); -typedef void *(APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsQuery (GLuint id); -GLAPI void APIENTRY glBeginQuery (GLenum target, GLuint id); -GLAPI void APIENTRY glEndQuery (GLenum target); -GLAPI void APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GLAPI GLboolean APIENTRY glIsBuffer (GLuint buffer); -GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GLAPI void APIENTRY glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, void *data); -GLAPI void *APIENTRY glMapBuffer (GLenum target, GLenum access); -GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum target); -GLAPI void APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -#endif -#endif /* GL_VERSION_1_5 */ - -#ifndef GL_VERSION_2_0 -#define GL_VERSION_2_0 1 -typedef char GLchar; -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_SHADER_TYPE 0x8B4F -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_DELETE_STATUS 0x8B80 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define GL_POINT_SPRITE 0x8861 -#define GL_COORD_REPLACE 0x8862 -#define GL_MAX_TEXTURE_COORDS 0x8871 -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GLAPI void APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GLAPI void APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GLAPI void APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader); -GLAPI void APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GLAPI void APIENTRY glCompileShader (GLuint shader); -GLAPI GLuint APIENTRY glCreateProgram (void); -GLAPI GLuint APIENTRY glCreateShader (GLenum type); -GLAPI void APIENTRY glDeleteProgram (GLuint program); -GLAPI void APIENTRY glDeleteShader (GLuint shader); -GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader); -GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index); -GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index); -GLAPI void APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GLAPI void APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GLAPI void APIENTRY glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GLAPI GLboolean APIENTRY glIsProgram (GLuint program); -GLAPI GLboolean APIENTRY glIsShader (GLuint shader); -GLAPI void APIENTRY glLinkProgram (GLuint program); -GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GLAPI void APIENTRY glUseProgram (GLuint program); -GLAPI void APIENTRY glUniform1f (GLint location, GLfloat v0); -GLAPI void APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glUniform1i (GLint location, GLint v0); -GLAPI void APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glValidateProgram (GLuint program); -GLAPI void APIENTRY glVertexAttrib1d (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1s (GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2s (GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4Niv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttrib4bv (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubv (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4usv (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -#endif -#endif /* GL_VERSION_2_0 */ - -#ifndef GL_VERSION_2_1 -#define GL_VERSION_2_1 1 -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F -#define GL_SLUMINANCE_ALPHA 0x8C44 -#define GL_SLUMINANCE8_ALPHA8 0x8C45 -#define GL_SLUMINANCE 0x8C46 -#define GL_SLUMINANCE8 0x8C47 -#define GL_COMPRESSED_SLUMINANCE 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif -#endif /* GL_VERSION_2_1 */ - -#ifndef GL_VERSION_3_0 -#define GL_VERSION_3_0 1 -typedef khronos_uint16_t GLhalf; -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_CLIP_DISTANCE0 0x3000 -#define GL_CLIP_DISTANCE1 0x3001 -#define GL_CLIP_DISTANCE2 0x3002 -#define GL_CLIP_DISTANCE3 0x3003 -#define GL_CLIP_DISTANCE4 0x3004 -#define GL_CLIP_DISTANCE5 0x3005 -#define GL_CLIP_DISTANCE6 0x3006 -#define GL_CLIP_DISTANCE7 0x3007 -#define GL_MAX_CLIP_DISTANCES 0x0D32 -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_CONTEXT_FLAGS 0x821E -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001 -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_CLAMP_READ_COLOR 0x891C -#define GL_FIXED_ONLY 0x891D -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_1D_ARRAY 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_GREEN_INTEGER 0x8D95 -#define GL_BLUE_INTEGER 0x8D96 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_BGR_INTEGER 0x8D9A -#define GL_BGRA_INTEGER 0x8D9B -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_QUERY_WAIT 0x8E13 -#define GL_QUERY_NO_WAIT 0x8E14 -#define GL_QUERY_BY_REGION_WAIT 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_STENCIL_INDEX1 0x8D46 -#define GL_STENCIL_INDEX4 0x8D47 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_STENCIL_INDEX16 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_INDEX 0x8222 -#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 -#define GL_FRAMEBUFFER_SRGB 0x8DB9 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_COMPRESSED_RED_RGTC1 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC -#define GL_COMPRESSED_RG_RGTC2 0x8DBD -#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_R16 0x822A -#define GL_RG8 0x822B -#define GL_RG16 0x822C -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_CLAMP_VERTEX_COLOR 0x891A -#define GL_CLAMP_FRAGMENT_COLOR 0x891B -#define GL_ALPHA_INTEGER 0x8D97 -typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GLAPI void APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); -GLAPI void APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GLAPI void APIENTRY glEnablei (GLenum target, GLuint index); -GLAPI void APIENTRY glDisablei (GLenum target, GLuint index); -GLAPI GLboolean APIENTRY glIsEnabledi (GLenum target, GLuint index); -GLAPI void APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedback (void); -GLAPI void APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glClampColor (GLenum target, GLenum clamp); -GLAPI void APIENTRY glBeginConditionalRender (GLuint id, GLenum mode); -GLAPI void APIENTRY glEndConditionalRender (void); -GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GLAPI void APIENTRY glVertexAttribI1i (GLuint index, GLint x); -GLAPI void APIENTRY glVertexAttribI2i (GLuint index, GLint x, GLint y); -GLAPI void APIENTRY glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexAttribI1ui (GLuint index, GLuint x); -GLAPI void APIENTRY glVertexAttribI2ui (GLuint index, GLuint x, GLuint y); -GLAPI void APIENTRY glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z); -GLAPI void APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glVertexAttribI1iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI2iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI3iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI1uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI2uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI3uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4bv (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttribI4sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttribI4ubv (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribI4usv (GLuint index, const GLushort *v); -GLAPI void APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GLAPI void APIENTRY glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glUniform1ui (GLint location, GLuint v0); -GLAPI void APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GLAPI void APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GLAPI void APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GLAPI void APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GLAPI const GLubyte *APIENTRY glGetStringi (GLenum name, GLuint index); -GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GLAPI void APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GLAPI void APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GLAPI void APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint framebuffer); -GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum target); -GLAPI void APIENTRY glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateMipmap (GLenum target); -GLAPI void APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void *APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GLAPI void APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GLAPI void APIENTRY glBindVertexArray (GLuint array); -GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array); -#endif -#endif /* GL_VERSION_3_0 */ - -#ifndef GL_VERSION_3_1 -#define GL_VERSION_3_1 1 -#define GL_SAMPLER_2D_RECT 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_2D_RECT 0x8DCD -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_RECTANGLE 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM 0x8F98 -#define GL_RG16_SNORM 0x8F99 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGBA16_SNORM 0x8F9B -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART 0x8F9D -#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index); -typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); -typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint index); -GLAPI void APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GLAPI void APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GLAPI void APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); -GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GLAPI void APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -#endif -#endif /* GL_VERSION_3_1 */ - -#ifndef GL_VERSION_3_2 -#define GL_VERSION_3_2 1 -typedef struct __GLsync *GLsync; -typedef khronos_uint64_t GLuint64; -typedef khronos_int64_t GLint64; -#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 -#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_PROGRAM_POINT_SIZE 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_CONTEXT_PROFILE_MASK 0x9126 -#define GL_DEPTH_CLAMP 0x864F -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F -#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); -typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode); -typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); -GLAPI void APIENTRY glProvokingVertex (GLenum mode); -GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GLAPI GLboolean APIENTRY glIsSync (GLsync sync); -GLAPI void APIENTRY glDeleteSync (GLsync sync); -GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); -GLAPI void APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); -#endif -#endif /* GL_VERSION_3_2 */ - -#ifndef GL_VERSION_3_3 -#define GL_VERSION_3_3 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_SRC1_COLOR 0x88F9 -#define GL_ONE_MINUS_SRC1_COLOR 0x88FA -#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 -#define GL_TIME_ELAPSED 0x88BF -#define GL_TIMESTAMP 0x8E28 -#define GL_INT_2_10_10_10_REV 0x8D9F -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params); -typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint *value); -typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (APIENTRYP PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint *color); -typedef void (APIENTRYP PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); -typedef void (APIENTRYP PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint *color); -typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint *color); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataIndex (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GLAPI GLboolean APIENTRY glIsSampler (GLuint sampler); -GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GLAPI void APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GLAPI void APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GLAPI void APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GLAPI void APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); -GLAPI void APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); -GLAPI void APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); -GLAPI void APIENTRY glQueryCounter (GLuint id, GLenum target); -GLAPI void APIENTRY glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params); -GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GLAPI void APIENTRY glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexP2ui (GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP2uiv (GLenum type, const GLuint *value); -GLAPI void APIENTRY glVertexP3ui (GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP3uiv (GLenum type, const GLuint *value); -GLAPI void APIENTRY glVertexP4ui (GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP4uiv (GLenum type, const GLuint *value); -GLAPI void APIENTRY glTexCoordP1ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP1uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP2ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP2uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP3ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP3uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP4ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP4uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP1ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP1uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP2ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP2uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP3ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP3uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP4ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP4uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glNormalP3ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glNormalP3uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glColorP3ui (GLenum type, GLuint color); -GLAPI void APIENTRY glColorP3uiv (GLenum type, const GLuint *color); -GLAPI void APIENTRY glColorP4ui (GLenum type, GLuint color); -GLAPI void APIENTRY glColorP4uiv (GLenum type, const GLuint *color); -GLAPI void APIENTRY glSecondaryColorP3ui (GLenum type, GLuint color); -GLAPI void APIENTRY glSecondaryColorP3uiv (GLenum type, const GLuint *color); -#endif -#endif /* GL_VERSION_3_3 */ - -#ifndef GL_VERSION_4_0 -#define GL_VERSION_4_0 1 -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -#define GL_MAX_VERTEX_STREAMS 0x8E71 -#define GL_DOUBLE_VEC2 0x8FFC -#define GL_DOUBLE_VEC3 0x8FFD -#define GL_DOUBLE_VEC4 0x8FFE -#define GL_DOUBLE_MAT2 0x8F46 -#define GL_DOUBLE_MAT3 0x8F47 -#define GL_DOUBLE_MAT4 0x8F48 -#define GL_DOUBLE_MAT2x3 0x8F49 -#define GL_DOUBLE_MAT2x4 0x8F4A -#define GL_DOUBLE_MAT3x2 0x8F4B -#define GL_DOUBLE_MAT3x4 0x8F4C -#define GL_DOUBLE_MAT4x2 0x8F4D -#define GL_DOUBLE_MAT4x3 0x8F4E -#define GL_ACTIVE_SUBROUTINES 0x8DE5 -#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 -#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 -#define GL_MAX_SUBROUTINES 0x8DE7 -#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 -#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A -#define GL_COMPATIBLE_SUBROUTINES 0x8E4B -#define GL_PATCHES 0x000E -#define GL_PATCH_VERTICES 0x8E72 -#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 -#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -#define GL_ISOLINES 0x8E7A -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRACTIONAL_EVEN 0x8E7C -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 -typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); -typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); -typedef void (APIENTRYP PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); -typedef void (APIENTRYP PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params); -typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name); -typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); -typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices); -typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values); -typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values); -typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); -typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMinSampleShading (GLfloat value); -GLAPI void APIENTRY glBlendEquationi (GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GLAPI void APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); -GLAPI void APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); -GLAPI void APIENTRY glUniform1d (GLint location, GLdouble x); -GLAPI void APIENTRY glUniform2d (GLint location, GLdouble x, GLdouble y); -GLAPI void APIENTRY glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glUniform1dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform2dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform3dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform4dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glGetUniformdv (GLuint program, GLint location, GLdouble *params); -GLAPI GLint APIENTRY glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name); -GLAPI GLuint APIENTRY glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name); -GLAPI void APIENTRY glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); -GLAPI void APIENTRY glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GLAPI void APIENTRY glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GLAPI void APIENTRY glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices); -GLAPI void APIENTRY glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params); -GLAPI void APIENTRY glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values); -GLAPI void APIENTRY glPatchParameteri (GLenum pname, GLint value); -GLAPI void APIENTRY glPatchParameterfv (GLenum pname, const GLfloat *values); -GLAPI void APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GLAPI void APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GLAPI GLboolean APIENTRY glIsTransformFeedback (GLuint id); -GLAPI void APIENTRY glPauseTransformFeedback (void); -GLAPI void APIENTRY glResumeTransformFeedback (void); -GLAPI void APIENTRY glDrawTransformFeedback (GLenum mode, GLuint id); -GLAPI void APIENTRY glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream); -GLAPI void APIENTRY glBeginQueryIndexed (GLenum target, GLuint index, GLuint id); -GLAPI void APIENTRY glEndQueryIndexed (GLenum target, GLuint index); -GLAPI void APIENTRY glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params); -#endif -#endif /* GL_VERSION_4_0 */ - -#ifndef GL_VERSION_4_1 -#define GL_VERSION_4_1 1 -#define GL_FIXED 0x140C -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_RGB565 0x8D62 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_MAX_VIEWPORTS 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE 0x825D -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F -#define GL_UNDEFINED_VERTEX 0x8260 -typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); -typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); -typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v); -typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLdouble n, GLdouble f); -typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReleaseShaderCompiler (void); -GLAPI void APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -GLAPI void APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GLAPI void APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GLAPI void APIENTRY glClearDepthf (GLfloat d); -GLAPI void APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GLAPI void APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GLAPI void APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GLAPI void APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); -GLAPI void APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); -GLAPI GLuint APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); -GLAPI void APIENTRY glBindProgramPipeline (GLuint pipeline); -GLAPI void APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); -GLAPI void APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); -GLAPI GLboolean APIENTRY glIsProgramPipeline (GLuint pipeline); -GLAPI void APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); -GLAPI void APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); -GLAPI void APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); -GLAPI void APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1d (GLuint program, GLint location, GLdouble v0); -GLAPI void APIENTRY glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); -GLAPI void APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1); -GLAPI void APIENTRY glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); -GLAPI void APIENTRY glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); -GLAPI void APIENTRY glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glValidateProgramPipeline (GLuint pipeline); -GLAPI void APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glVertexAttribL1d (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttribL1dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL2dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL3dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL4dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -GLAPI void APIENTRY glViewportIndexedfv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glScissorArrayv (GLuint first, GLsizei count, const GLint *v); -GLAPI void APIENTRY glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -GLAPI void APIENTRY glScissorIndexedv (GLuint index, const GLint *v); -GLAPI void APIENTRY glDepthRangeArrayv (GLuint first, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glDepthRangeIndexed (GLuint index, GLdouble n, GLdouble f); -GLAPI void APIENTRY glGetFloati_v (GLenum target, GLuint index, GLfloat *data); -GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data); -#endif -#endif /* GL_VERSION_4_1 */ - -#ifndef GL_VERSION_4_2 -#define GL_VERSION_4_2 1 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 -#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 -#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 -#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A -#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B -#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C -#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D -#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_1D 0x904C -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_2D_RECT 0x904F -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_IMAGE_1D_ARRAY 0x9052 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 -#define GL_INT_IMAGE_1D 0x9057 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_2D_RECT 0x905A -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_INT_IMAGE_1D_ARRAY 0x905D -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C -#define GL_MAX_IMAGE_SAMPLES 0x906D -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); -typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); -typedef void (APIENTRYP PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); -typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei instancecount); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); -GLAPI void APIENTRY glDrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); -GLAPI void APIENTRY glDrawElementsInstancedBaseVertexBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); -GLAPI void APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); -GLAPI void APIENTRY glGetActiveAtomicCounterBufferiv (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); -GLAPI void APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GLAPI void APIENTRY glMemoryBarrier (GLbitfield barriers); -GLAPI void APIENTRY glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GLAPI void APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GLAPI void APIENTRY glDrawTransformFeedbackInstanced (GLenum mode, GLuint id, GLsizei instancecount); -GLAPI void APIENTRY glDrawTransformFeedbackStreamInstanced (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); -#endif -#endif /* GL_VERSION_4_2 */ - -#ifndef GL_VERSION_4_3 -#define GL_VERSION_4_3 1 -typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9 -#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_COMPUTE_SHADER 0x91B9 -#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB -#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC -#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD -#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 -#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 -#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 -#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 -#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 -#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB -#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE -#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF -#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED -#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE -#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF -#define GL_COMPUTE_SHADER_BIT 0x00000020 -#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 -#define GL_DEBUG_SOURCE_API 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION 0x824A -#define GL_DEBUG_SOURCE_OTHER 0x824B -#define GL_DEBUG_TYPE_ERROR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 -#define GL_DEBUG_TYPE_OTHER 0x8251 -#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES 0x9145 -#define GL_DEBUG_SEVERITY_HIGH 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 -#define GL_DEBUG_SEVERITY_LOW 0x9148 -#define GL_DEBUG_TYPE_MARKER 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D -#define GL_BUFFER 0x82E0 -#define GL_SHADER 0x82E1 -#define GL_PROGRAM 0x82E2 -#define GL_QUERY 0x82E3 -#define GL_PROGRAM_PIPELINE 0x82E4 -#define GL_SAMPLER 0x82E6 -#define GL_MAX_LABEL_LENGTH 0x82E8 -#define GL_DEBUG_OUTPUT 0x92E0 -#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 -#define GL_MAX_UNIFORM_LOCATIONS 0x826E -#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 -#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 -#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 -#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 -#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 -#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 -#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 -#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 -#define GL_INTERNALFORMAT_SUPPORTED 0x826F -#define GL_INTERNALFORMAT_PREFERRED 0x8270 -#define GL_INTERNALFORMAT_RED_SIZE 0x8271 -#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272 -#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273 -#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274 -#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275 -#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276 -#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277 -#define GL_INTERNALFORMAT_RED_TYPE 0x8278 -#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279 -#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A -#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B -#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C -#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D -#define GL_MAX_WIDTH 0x827E -#define GL_MAX_HEIGHT 0x827F -#define GL_MAX_DEPTH 0x8280 -#define GL_MAX_LAYERS 0x8281 -#define GL_MAX_COMBINED_DIMENSIONS 0x8282 -#define GL_COLOR_COMPONENTS 0x8283 -#define GL_DEPTH_COMPONENTS 0x8284 -#define GL_STENCIL_COMPONENTS 0x8285 -#define GL_COLOR_RENDERABLE 0x8286 -#define GL_DEPTH_RENDERABLE 0x8287 -#define GL_STENCIL_RENDERABLE 0x8288 -#define GL_FRAMEBUFFER_RENDERABLE 0x8289 -#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A -#define GL_FRAMEBUFFER_BLEND 0x828B -#define GL_READ_PIXELS 0x828C -#define GL_READ_PIXELS_FORMAT 0x828D -#define GL_READ_PIXELS_TYPE 0x828E -#define GL_TEXTURE_IMAGE_FORMAT 0x828F -#define GL_TEXTURE_IMAGE_TYPE 0x8290 -#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291 -#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292 -#define GL_MIPMAP 0x8293 -#define GL_MANUAL_GENERATE_MIPMAP 0x8294 -#define GL_AUTO_GENERATE_MIPMAP 0x8295 -#define GL_COLOR_ENCODING 0x8296 -#define GL_SRGB_READ 0x8297 -#define GL_SRGB_WRITE 0x8298 -#define GL_FILTER 0x829A -#define GL_VERTEX_TEXTURE 0x829B -#define GL_TESS_CONTROL_TEXTURE 0x829C -#define GL_TESS_EVALUATION_TEXTURE 0x829D -#define GL_GEOMETRY_TEXTURE 0x829E -#define GL_FRAGMENT_TEXTURE 0x829F -#define GL_COMPUTE_TEXTURE 0x82A0 -#define GL_TEXTURE_SHADOW 0x82A1 -#define GL_TEXTURE_GATHER 0x82A2 -#define GL_TEXTURE_GATHER_SHADOW 0x82A3 -#define GL_SHADER_IMAGE_LOAD 0x82A4 -#define GL_SHADER_IMAGE_STORE 0x82A5 -#define GL_SHADER_IMAGE_ATOMIC 0x82A6 -#define GL_IMAGE_TEXEL_SIZE 0x82A7 -#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8 -#define GL_IMAGE_PIXEL_FORMAT 0x82A9 -#define GL_IMAGE_PIXEL_TYPE 0x82AA -#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC -#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD -#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE -#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF -#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1 -#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2 -#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3 -#define GL_CLEAR_BUFFER 0x82B4 -#define GL_TEXTURE_VIEW 0x82B5 -#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6 -#define GL_FULL_SUPPORT 0x82B7 -#define GL_CAVEAT_SUPPORT 0x82B8 -#define GL_IMAGE_CLASS_4_X_32 0x82B9 -#define GL_IMAGE_CLASS_2_X_32 0x82BA -#define GL_IMAGE_CLASS_1_X_32 0x82BB -#define GL_IMAGE_CLASS_4_X_16 0x82BC -#define GL_IMAGE_CLASS_2_X_16 0x82BD -#define GL_IMAGE_CLASS_1_X_16 0x82BE -#define GL_IMAGE_CLASS_4_X_8 0x82BF -#define GL_IMAGE_CLASS_2_X_8 0x82C0 -#define GL_IMAGE_CLASS_1_X_8 0x82C1 -#define GL_IMAGE_CLASS_11_11_10 0x82C2 -#define GL_IMAGE_CLASS_10_10_10_2 0x82C3 -#define GL_VIEW_CLASS_128_BITS 0x82C4 -#define GL_VIEW_CLASS_96_BITS 0x82C5 -#define GL_VIEW_CLASS_64_BITS 0x82C6 -#define GL_VIEW_CLASS_48_BITS 0x82C7 -#define GL_VIEW_CLASS_32_BITS 0x82C8 -#define GL_VIEW_CLASS_24_BITS 0x82C9 -#define GL_VIEW_CLASS_16_BITS 0x82CA -#define GL_VIEW_CLASS_8_BITS 0x82CB -#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC -#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD -#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE -#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF -#define GL_VIEW_CLASS_RGTC1_RED 0x82D0 -#define GL_VIEW_CLASS_RGTC2_RG 0x82D1 -#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2 -#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 -#define GL_UNIFORM 0x92E1 -#define GL_UNIFORM_BLOCK 0x92E2 -#define GL_PROGRAM_INPUT 0x92E3 -#define GL_PROGRAM_OUTPUT 0x92E4 -#define GL_BUFFER_VARIABLE 0x92E5 -#define GL_SHADER_STORAGE_BLOCK 0x92E6 -#define GL_VERTEX_SUBROUTINE 0x92E8 -#define GL_TESS_CONTROL_SUBROUTINE 0x92E9 -#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA -#define GL_GEOMETRY_SUBROUTINE 0x92EB -#define GL_FRAGMENT_SUBROUTINE 0x92EC -#define GL_COMPUTE_SUBROUTINE 0x92ED -#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE -#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF -#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0 -#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1 -#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2 -#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3 -#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 -#define GL_ACTIVE_RESOURCES 0x92F5 -#define GL_MAX_NAME_LENGTH 0x92F6 -#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 -#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8 -#define GL_NAME_LENGTH 0x92F9 -#define GL_TYPE 0x92FA -#define GL_ARRAY_SIZE 0x92FB -#define GL_OFFSET 0x92FC -#define GL_BLOCK_INDEX 0x92FD -#define GL_ARRAY_STRIDE 0x92FE -#define GL_MATRIX_STRIDE 0x92FF -#define GL_IS_ROW_MAJOR 0x9300 -#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 -#define GL_BUFFER_BINDING 0x9302 -#define GL_BUFFER_DATA_SIZE 0x9303 -#define GL_NUM_ACTIVE_VARIABLES 0x9304 -#define GL_ACTIVE_VARIABLES 0x9305 -#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 -#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 -#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A -#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B -#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C -#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D -#define GL_LOCATION 0x930E -#define GL_LOCATION_INDEX 0x930F -#define GL_IS_PER_PATCH 0x92E7 -#define GL_SHADER_STORAGE_BUFFER 0x90D2 -#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 -#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 -#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 -#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 -#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA -#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB -#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC -#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD -#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE -#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF -#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 -#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 -#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA -#define GL_TEXTURE_BUFFER_OFFSET 0x919D -#define GL_TEXTURE_BUFFER_SIZE 0x919E -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F -#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB -#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC -#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD -#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -#define GL_VERTEX_ATTRIB_BINDING 0x82D4 -#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 -#define GL_VERTEX_BINDING_DIVISOR 0x82D6 -#define GL_VERTEX_BINDING_OFFSET 0x82D7 -#define GL_VERTEX_BINDING_STRIDE 0x82D8 -#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_VERTEX_BINDING_BUFFER 0x8F4F -#define GL_DISPLAY_LIST 0x82E7 -typedef void (APIENTRYP PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); -typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -typedef void (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 *params); -typedef void (APIENTRYP PFNGLINVALIDATETEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); -typedef void (APIENTRYP PFNGLINVALIDATETEXIMAGEPROC) (GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLINVALIDATEBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (APIENTRYP PFNGLINVALIDATEBUFFERDATAPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); -typedef void (APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -typedef GLuint (APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params); -typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (APIENTRYP PFNGLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); -typedef void (APIENTRYP PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); -typedef void (APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); -typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); -typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef void (APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void (APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void); -typedef void (APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void (APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); -typedef void (APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClearBufferData (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glClearBufferSubData (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -GLAPI void APIENTRY glDispatchComputeIndirect (GLintptr indirect); -GLAPI void APIENTRY glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -GLAPI void APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 *params); -GLAPI void APIENTRY glInvalidateTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); -GLAPI void APIENTRY glInvalidateTexImage (GLuint texture, GLint level); -GLAPI void APIENTRY glInvalidateBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr length); -GLAPI void APIENTRY glInvalidateBufferData (GLuint buffer); -GLAPI void APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GLAPI void APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glMultiDrawArraysIndirect (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); -GLAPI void APIENTRY glMultiDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); -GLAPI void APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -GLAPI GLuint APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); -GLAPI void APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GLAPI void APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params); -GLAPI GLint APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); -GLAPI GLint APIENTRY glGetProgramResourceLocationIndex (GLuint program, GLenum programInterface, const GLchar *name); -GLAPI void APIENTRY glShaderStorageBlockBinding (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); -GLAPI void APIENTRY glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTextureView (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -GLAPI void APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GLAPI void APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GLAPI void APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GLAPI void APIENTRY glVertexAttribLFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GLAPI void APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); -GLAPI void APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); -GLAPI void APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GLAPI void APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GLAPI void APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam); -GLAPI GLuint APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -GLAPI void APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message); -GLAPI void APIENTRY glPopDebugGroup (void); -GLAPI void APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -GLAPI void APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -GLAPI void APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label); -GLAPI void APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -#endif -#endif /* GL_VERSION_4_3 */ - -#ifndef GL_VERSION_4_4 -#define GL_VERSION_4_4 1 -#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 -#define GL_TEXTURE_BUFFER_BINDING 0x8C2A -#define GL_MAP_PERSISTENT_BIT 0x0040 -#define GL_MAP_COHERENT_BIT 0x0080 -#define GL_DYNAMIC_STORAGE_BIT 0x0100 -#define GL_CLIENT_STORAGE_BIT 0x0200 -#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000 -#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F -#define GL_BUFFER_STORAGE_FLAGS 0x8220 -#define GL_CLEAR_TEXTURE 0x9365 -#define GL_LOCATION_COMPONENT 0x934A -#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B -#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C -#define GL_QUERY_BUFFER 0x9192 -#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000 -#define GL_QUERY_BUFFER_BINDING 0x9193 -#define GL_QUERY_RESULT_NO_WAIT 0x9194 -#define GL_MIRROR_CLAMP_TO_EDGE 0x8743 -typedef void (APIENTRYP PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -typedef void (APIENTRYP PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLCLEARTEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLBINDBUFFERSBASEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers); -typedef void (APIENTRYP PFNGLBINDBUFFERSRANGEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); -typedef void (APIENTRYP PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures); -typedef void (APIENTRYP PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint *samplers); -typedef void (APIENTRYP PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures); -typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERSPROC) (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferStorage (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -GLAPI void APIENTRY glClearTexImage (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glClearTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glBindBuffersBase (GLenum target, GLuint first, GLsizei count, const GLuint *buffers); -GLAPI void APIENTRY glBindBuffersRange (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); -GLAPI void APIENTRY glBindTextures (GLuint first, GLsizei count, const GLuint *textures); -GLAPI void APIENTRY glBindSamplers (GLuint first, GLsizei count, const GLuint *samplers); -GLAPI void APIENTRY glBindImageTextures (GLuint first, GLsizei count, const GLuint *textures); -GLAPI void APIENTRY glBindVertexBuffers (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); -#endif -#endif /* GL_VERSION_4_4 */ - -#ifndef GL_VERSION_4_5 -#define GL_VERSION_4_5 1 -#define GL_CONTEXT_LOST 0x0507 -#define GL_NEGATIVE_ONE_TO_ONE 0x935E -#define GL_ZERO_TO_ONE 0x935F -#define GL_CLIP_ORIGIN 0x935C -#define GL_CLIP_DEPTH_MODE 0x935D -#define GL_QUERY_WAIT_INVERTED 0x8E17 -#define GL_QUERY_NO_WAIT_INVERTED 0x8E18 -#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19 -#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A -#define GL_MAX_CULL_DISTANCES 0x82F9 -#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA -#define GL_TEXTURE_TARGET 0x1006 -#define GL_QUERY_TARGET 0x82EA -#define GL_GUILTY_CONTEXT_RESET 0x8253 -#define GL_INNOCENT_CONTEXT_RESET 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY 0x8256 -#define GL_LOSE_CONTEXT_ON_RESET 0x8252 -#define GL_NO_RESET_NOTIFICATION 0x8261 -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_MINMAX 0x802E -#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB -#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC -typedef void (APIENTRYP PFNGLCLIPCONTROLPROC) (GLenum origin, GLenum depth); -typedef void (APIENTRYP PFNGLCREATETRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) (GLuint xfb, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKIVPROC) (GLuint xfb, GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint *param); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64 *param); -typedef void (APIENTRYP PFNGLCREATEBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); -typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); -typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -typedef void (APIENTRYP PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERPROC) (GLuint buffer, GLenum access); -typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFERPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) (GLuint buffer, GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVPROC) (GLuint buffer, GLenum pname, void **params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); -typedef void (APIENTRYP PFNGLCREATEFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) (GLuint framebuffer, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) (GLuint framebuffer, GLenum buf); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) (GLuint framebuffer, GLenum src); -typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments); -typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef void (APIENTRYP PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target); -typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLCREATERENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLCREATETEXTURESPROC) (GLenum target, GLsizei n, GLuint *textures); -typedef void (APIENTRYP PFNGLTEXTUREBUFFERPROC) (GLuint texture, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFPROC) (GLuint texture, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, const GLfloat *param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIPROC) (GLuint texture, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPPROC) (GLuint texture); -typedef void (APIENTRYP PFNGLBINDTEXTUREUNITPROC) (GLuint unit, GLuint texture); -typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLsizei bufSize, void *pixels); -typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLCREATEVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index); -typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index); -typedef void (APIENTRYP PFNGLVERTEXARRAYELEMENTBUFFERPROC) (GLuint vaobj, GLuint buffer); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERSPROC) (GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); -typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBBINDINGPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); -typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBIFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBLFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXARRAYBINDINGDIVISORPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYIVPROC) (GLuint vaobj, GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXEDIVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint64 *param); -typedef void (APIENTRYP PFNGLCREATESAMPLERSPROC) (GLsizei n, GLuint *samplers); -typedef void (APIENTRYP PFNGLCREATEPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef void (APIENTRYP PFNGLCREATEQUERIESPROC) (GLenum target, GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); -typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); -typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); -typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); -typedef void (APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); -typedef void (APIENTRYP PFNGLGETTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels); -typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSPROC) (void); -typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLsizei bufSize, void *pixels); -typedef void (APIENTRYP PFNGLGETNTEXIMAGEPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); -typedef void (APIENTRYP PFNGLGETNUNIFORMDVPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -typedef void (APIENTRYP PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (APIENTRYP PFNGLGETNMAPDVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -typedef void (APIENTRYP PFNGLGETNMAPFVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -typedef void (APIENTRYP PFNGLGETNMAPIVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v); -typedef void (APIENTRYP PFNGLGETNPIXELMAPFVPROC) (GLenum map, GLsizei bufSize, GLfloat *values); -typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVPROC) (GLenum map, GLsizei bufSize, GLuint *values); -typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVPROC) (GLenum map, GLsizei bufSize, GLushort *values); -typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEPROC) (GLsizei bufSize, GLubyte *pattern); -typedef void (APIENTRYP PFNGLGETNCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); -typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); -typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); -typedef void (APIENTRYP PFNGLGETNHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -typedef void (APIENTRYP PFNGLGETNMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -typedef void (APIENTRYP PFNGLTEXTUREBARRIERPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClipControl (GLenum origin, GLenum depth); -GLAPI void APIENTRY glCreateTransformFeedbacks (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glTransformFeedbackBufferBase (GLuint xfb, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackBufferRange (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glGetTransformFeedbackiv (GLuint xfb, GLenum pname, GLint *param); -GLAPI void APIENTRY glGetTransformFeedbacki_v (GLuint xfb, GLenum pname, GLuint index, GLint *param); -GLAPI void APIENTRY glGetTransformFeedbacki64_v (GLuint xfb, GLenum pname, GLuint index, GLint64 *param); -GLAPI void APIENTRY glCreateBuffers (GLsizei n, GLuint *buffers); -GLAPI void APIENTRY glNamedBufferStorage (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); -GLAPI void APIENTRY glNamedBufferData (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); -GLAPI void APIENTRY glNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -GLAPI void APIENTRY glCopyNamedBufferSubData (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GLAPI void APIENTRY glClearNamedBufferData (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glClearNamedBufferSubData (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -GLAPI void *APIENTRY glMapNamedBuffer (GLuint buffer, GLenum access); -GLAPI void *APIENTRY glMapNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -GLAPI GLboolean APIENTRY glUnmapNamedBuffer (GLuint buffer); -GLAPI void APIENTRY glFlushMappedNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length); -GLAPI void APIENTRY glGetNamedBufferParameteriv (GLuint buffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetNamedBufferParameteri64v (GLuint buffer, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glGetNamedBufferPointerv (GLuint buffer, GLenum pname, void **params); -GLAPI void APIENTRY glGetNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); -GLAPI void APIENTRY glCreateFramebuffers (GLsizei n, GLuint *framebuffers); -GLAPI void APIENTRY glNamedFramebufferRenderbuffer (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glNamedFramebufferParameteri (GLuint framebuffer, GLenum pname, GLint param); -GLAPI void APIENTRY glNamedFramebufferTexture (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTextureLayer (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glNamedFramebufferDrawBuffer (GLuint framebuffer, GLenum buf); -GLAPI void APIENTRY glNamedFramebufferDrawBuffers (GLuint framebuffer, GLsizei n, const GLenum *bufs); -GLAPI void APIENTRY glNamedFramebufferReadBuffer (GLuint framebuffer, GLenum src); -GLAPI void APIENTRY glInvalidateNamedFramebufferData (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments); -GLAPI void APIENTRY glInvalidateNamedFramebufferSubData (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glClearNamedFramebufferiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value); -GLAPI void APIENTRY glClearNamedFramebufferuiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value); -GLAPI void APIENTRY glClearNamedFramebufferfv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value); -GLAPI void APIENTRY glClearNamedFramebufferfi (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GLAPI void APIENTRY glBlitNamedFramebuffer (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GLAPI GLenum APIENTRY glCheckNamedFramebufferStatus (GLuint framebuffer, GLenum target); -GLAPI void APIENTRY glGetNamedFramebufferParameteriv (GLuint framebuffer, GLenum pname, GLint *param); -GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameteriv (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glCreateRenderbuffers (GLsizei n, GLuint *renderbuffers); -GLAPI void APIENTRY glNamedRenderbufferStorage (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisample (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetNamedRenderbufferParameteriv (GLuint renderbuffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glCreateTextures (GLenum target, GLsizei n, GLuint *textures); -GLAPI void APIENTRY glTextureBuffer (GLuint texture, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glTextureBufferRange (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glTextureStorage1D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); -GLAPI void APIENTRY glTextureStorage2D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTextureStorage3D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GLAPI void APIENTRY glTextureStorage2DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTextureStorage3DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glCompressedTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCopyTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glCopyTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTextureParameterf (GLuint texture, GLenum pname, GLfloat param); -GLAPI void APIENTRY glTextureParameterfv (GLuint texture, GLenum pname, const GLfloat *param); -GLAPI void APIENTRY glTextureParameteri (GLuint texture, GLenum pname, GLint param); -GLAPI void APIENTRY glTextureParameterIiv (GLuint texture, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTextureParameterIuiv (GLuint texture, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glTextureParameteriv (GLuint texture, GLenum pname, const GLint *param); -GLAPI void APIENTRY glGenerateTextureMipmap (GLuint texture); -GLAPI void APIENTRY glBindTextureUnit (GLuint unit, GLuint texture); -GLAPI void APIENTRY glGetTextureImage (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); -GLAPI void APIENTRY glGetCompressedTextureImage (GLuint texture, GLint level, GLsizei bufSize, void *pixels); -GLAPI void APIENTRY glGetTextureLevelParameterfv (GLuint texture, GLint level, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetTextureLevelParameteriv (GLuint texture, GLint level, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTextureParameterfv (GLuint texture, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetTextureParameterIiv (GLuint texture, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTextureParameterIuiv (GLuint texture, GLenum pname, GLuint *params); -GLAPI void APIENTRY glGetTextureParameteriv (GLuint texture, GLenum pname, GLint *params); -GLAPI void APIENTRY glCreateVertexArrays (GLsizei n, GLuint *arrays); -GLAPI void APIENTRY glDisableVertexArrayAttrib (GLuint vaobj, GLuint index); -GLAPI void APIENTRY glEnableVertexArrayAttrib (GLuint vaobj, GLuint index); -GLAPI void APIENTRY glVertexArrayElementBuffer (GLuint vaobj, GLuint buffer); -GLAPI void APIENTRY glVertexArrayVertexBuffer (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GLAPI void APIENTRY glVertexArrayVertexBuffers (GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); -GLAPI void APIENTRY glVertexArrayAttribBinding (GLuint vaobj, GLuint attribindex, GLuint bindingindex); -GLAPI void APIENTRY glVertexArrayAttribFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GLAPI void APIENTRY glVertexArrayAttribIFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GLAPI void APIENTRY glVertexArrayAttribLFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GLAPI void APIENTRY glVertexArrayBindingDivisor (GLuint vaobj, GLuint bindingindex, GLuint divisor); -GLAPI void APIENTRY glGetVertexArrayiv (GLuint vaobj, GLenum pname, GLint *param); -GLAPI void APIENTRY glGetVertexArrayIndexediv (GLuint vaobj, GLuint index, GLenum pname, GLint *param); -GLAPI void APIENTRY glGetVertexArrayIndexed64iv (GLuint vaobj, GLuint index, GLenum pname, GLint64 *param); -GLAPI void APIENTRY glCreateSamplers (GLsizei n, GLuint *samplers); -GLAPI void APIENTRY glCreateProgramPipelines (GLsizei n, GLuint *pipelines); -GLAPI void APIENTRY glCreateQueries (GLenum target, GLsizei n, GLuint *ids); -GLAPI void APIENTRY glGetQueryBufferObjecti64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); -GLAPI void APIENTRY glGetQueryBufferObjectiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); -GLAPI void APIENTRY glGetQueryBufferObjectui64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); -GLAPI void APIENTRY glGetQueryBufferObjectuiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); -GLAPI void APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); -GLAPI void APIENTRY glGetTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels); -GLAPI void APIENTRY glGetCompressedTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels); -GLAPI GLenum APIENTRY glGetGraphicsResetStatus (void); -GLAPI void APIENTRY glGetnCompressedTexImage (GLenum target, GLint lod, GLsizei bufSize, void *pixels); -GLAPI void APIENTRY glGetnTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); -GLAPI void APIENTRY glGetnUniformdv (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -GLAPI void APIENTRY glGetnUniformfv (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GLAPI void APIENTRY glGetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint *params); -GLAPI void APIENTRY glGetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -GLAPI void APIENTRY glReadnPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GLAPI void APIENTRY glGetnMapdv (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -GLAPI void APIENTRY glGetnMapfv (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -GLAPI void APIENTRY glGetnMapiv (GLenum target, GLenum query, GLsizei bufSize, GLint *v); -GLAPI void APIENTRY glGetnPixelMapfv (GLenum map, GLsizei bufSize, GLfloat *values); -GLAPI void APIENTRY glGetnPixelMapuiv (GLenum map, GLsizei bufSize, GLuint *values); -GLAPI void APIENTRY glGetnPixelMapusv (GLenum map, GLsizei bufSize, GLushort *values); -GLAPI void APIENTRY glGetnPolygonStipple (GLsizei bufSize, GLubyte *pattern); -GLAPI void APIENTRY glGetnColorTable (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); -GLAPI void APIENTRY glGetnConvolutionFilter (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); -GLAPI void APIENTRY glGetnSeparableFilter (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); -GLAPI void APIENTRY glGetnHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -GLAPI void APIENTRY glGetnMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -GLAPI void APIENTRY glTextureBarrier (void); -#endif -#endif /* GL_VERSION_4_5 */ - -#ifndef GL_VERSION_4_6 -#define GL_VERSION_4_6 1 -#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551 -#define GL_SPIR_V_BINARY 0x9552 -#define GL_PARAMETER_BUFFER 0x80EE -#define GL_PARAMETER_BUFFER_BINDING 0x80EF -#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008 -#define GL_VERTICES_SUBMITTED 0x82EE -#define GL_PRIMITIVES_SUBMITTED 0x82EF -#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0 -#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1 -#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2 -#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3 -#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4 -#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5 -#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6 -#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7 -#define GL_POLYGON_OFFSET_CLAMP 0x8E1B -#define GL_SPIR_V_EXTENSIONS 0x9553 -#define GL_NUM_SPIR_V_EXTENSIONS 0x9554 -#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF -#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC -#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED -typedef void (APIENTRYP PFNGLSPECIALIZESHADERPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -typedef void (APIENTRYP PFNGLPOLYGONOFFSETCLAMPPROC) (GLfloat factor, GLfloat units, GLfloat clamp); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSpecializeShader (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); -GLAPI void APIENTRY glMultiDrawArraysIndirectCount (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -GLAPI void APIENTRY glMultiDrawElementsIndirectCount (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -GLAPI void APIENTRY glPolygonOffsetClamp (GLfloat factor, GLfloat units, GLfloat clamp); -#endif -#endif /* GL_VERSION_4_6 */ - -#ifndef GL_ARB_ES2_compatibility -#define GL_ARB_ES2_compatibility 1 -#endif /* GL_ARB_ES2_compatibility */ - -#ifndef GL_ARB_ES3_1_compatibility -#define GL_ARB_ES3_1_compatibility 1 -#endif /* GL_ARB_ES3_1_compatibility */ - -#ifndef GL_ARB_ES3_2_compatibility -#define GL_ARB_ES3_2_compatibility 1 -#define GL_PRIMITIVE_BOUNDING_BOX_ARB 0x92BE -#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381 -#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382 -typedef void (APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXARBPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPrimitiveBoundingBoxARB (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#endif -#endif /* GL_ARB_ES3_2_compatibility */ - -#ifndef GL_ARB_ES3_compatibility -#define GL_ARB_ES3_compatibility 1 -#endif /* GL_ARB_ES3_compatibility */ - -#ifndef GL_ARB_arrays_of_arrays -#define GL_ARB_arrays_of_arrays 1 -#endif /* GL_ARB_arrays_of_arrays */ - -#ifndef GL_ARB_base_instance -#define GL_ARB_base_instance 1 -#endif /* GL_ARB_base_instance */ - -#ifndef GL_ARB_bindless_texture -#define GL_ARB_bindless_texture 1 -typedef khronos_uint64_t GLuint64EXT; -#define GL_UNSIGNED_INT64_ARB 0x140F -typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLEARBPROC) (GLuint texture); -typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLEARBPROC) (GLuint texture, GLuint sampler); -typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); -typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC) (GLuint64 handle); -typedef GLuint64 (APIENTRYP PFNGLGETIMAGEHANDLEARBPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle, GLenum access); -typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC) (GLuint64 handle); -typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64ARBPROC) (GLint location, GLuint64 value); -typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC) (GLuint program, GLint location, GLuint64 value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -typedef GLboolean (APIENTRYP PFNGLISTEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); -typedef GLboolean (APIENTRYP PFNGLISIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64ARBPROC) (GLuint index, GLuint64EXT x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VARBPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VARBPROC) (GLuint index, GLenum pname, GLuint64EXT *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint64 APIENTRY glGetTextureHandleARB (GLuint texture); -GLAPI GLuint64 APIENTRY glGetTextureSamplerHandleARB (GLuint texture, GLuint sampler); -GLAPI void APIENTRY glMakeTextureHandleResidentARB (GLuint64 handle); -GLAPI void APIENTRY glMakeTextureHandleNonResidentARB (GLuint64 handle); -GLAPI GLuint64 APIENTRY glGetImageHandleARB (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -GLAPI void APIENTRY glMakeImageHandleResidentARB (GLuint64 handle, GLenum access); -GLAPI void APIENTRY glMakeImageHandleNonResidentARB (GLuint64 handle); -GLAPI void APIENTRY glUniformHandleui64ARB (GLint location, GLuint64 value); -GLAPI void APIENTRY glUniformHandleui64vARB (GLint location, GLsizei count, const GLuint64 *value); -GLAPI void APIENTRY glProgramUniformHandleui64ARB (GLuint program, GLint location, GLuint64 value); -GLAPI void APIENTRY glProgramUniformHandleui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -GLAPI GLboolean APIENTRY glIsTextureHandleResidentARB (GLuint64 handle); -GLAPI GLboolean APIENTRY glIsImageHandleResidentARB (GLuint64 handle); -GLAPI void APIENTRY glVertexAttribL1ui64ARB (GLuint index, GLuint64EXT x); -GLAPI void APIENTRY glVertexAttribL1ui64vARB (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glGetVertexAttribLui64vARB (GLuint index, GLenum pname, GLuint64EXT *params); -#endif -#endif /* GL_ARB_bindless_texture */ - -#ifndef GL_ARB_blend_func_extended -#define GL_ARB_blend_func_extended 1 -#endif /* GL_ARB_blend_func_extended */ - -#ifndef GL_ARB_buffer_storage -#define GL_ARB_buffer_storage 1 -#endif /* GL_ARB_buffer_storage */ - -#ifndef GL_ARB_cl_event -#define GL_ARB_cl_event 1 -struct _cl_context; -struct _cl_event; -#define GL_SYNC_CL_EVENT_ARB 0x8240 -#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 -typedef GLsync (APIENTRYP PFNGLCREATESYNCFROMCLEVENTARBPROC) (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); -#endif -#endif /* GL_ARB_cl_event */ - -#ifndef GL_ARB_clear_buffer_object -#define GL_ARB_clear_buffer_object 1 -#endif /* GL_ARB_clear_buffer_object */ - -#ifndef GL_ARB_clear_texture -#define GL_ARB_clear_texture 1 -#endif /* GL_ARB_clear_texture */ - -#ifndef GL_ARB_clip_control -#define GL_ARB_clip_control 1 -#endif /* GL_ARB_clip_control */ - -#ifndef GL_ARB_color_buffer_float -#define GL_ARB_color_buffer_float 1 -#define GL_RGBA_FLOAT_MODE_ARB 0x8820 -#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A -#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B -#define GL_CLAMP_READ_COLOR_ARB 0x891C -#define GL_FIXED_ONLY_ARB 0x891D -typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClampColorARB (GLenum target, GLenum clamp); -#endif -#endif /* GL_ARB_color_buffer_float */ - -#ifndef GL_ARB_compatibility -#define GL_ARB_compatibility 1 -#endif /* GL_ARB_compatibility */ - -#ifndef GL_ARB_compressed_texture_pixel_storage -#define GL_ARB_compressed_texture_pixel_storage 1 -#endif /* GL_ARB_compressed_texture_pixel_storage */ - -#ifndef GL_ARB_compute_shader -#define GL_ARB_compute_shader 1 -#endif /* GL_ARB_compute_shader */ - -#ifndef GL_ARB_compute_variable_group_size -#define GL_ARB_compute_variable_group_size 1 -#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344 -#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB -#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345 -#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF -typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDispatchComputeGroupSizeARB (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); -#endif -#endif /* GL_ARB_compute_variable_group_size */ - -#ifndef GL_ARB_conditional_render_inverted -#define GL_ARB_conditional_render_inverted 1 -#endif /* GL_ARB_conditional_render_inverted */ - -#ifndef GL_ARB_conservative_depth -#define GL_ARB_conservative_depth 1 -#endif /* GL_ARB_conservative_depth */ - -#ifndef GL_ARB_copy_buffer -#define GL_ARB_copy_buffer 1 -#endif /* GL_ARB_copy_buffer */ - -#ifndef GL_ARB_copy_image -#define GL_ARB_copy_image 1 -#endif /* GL_ARB_copy_image */ - -#ifndef GL_ARB_cull_distance -#define GL_ARB_cull_distance 1 -#endif /* GL_ARB_cull_distance */ - -#ifndef GL_ARB_debug_output -#define GL_ARB_debug_output 1 -typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 -#define GL_DEBUG_SOURCE_API_ARB 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A -#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B -#define GL_DEBUG_TYPE_ERROR_ARB 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 -#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 -#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 -typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam); -typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDebugMessageControlARB (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GLAPI void APIENTRY glDebugMessageInsertARB (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GLAPI void APIENTRY glDebugMessageCallbackARB (GLDEBUGPROCARB callback, const void *userParam); -GLAPI GLuint APIENTRY glGetDebugMessageLogARB (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -#endif -#endif /* GL_ARB_debug_output */ - -#ifndef GL_ARB_depth_buffer_float -#define GL_ARB_depth_buffer_float 1 -#endif /* GL_ARB_depth_buffer_float */ - -#ifndef GL_ARB_depth_clamp -#define GL_ARB_depth_clamp 1 -#endif /* GL_ARB_depth_clamp */ - -#ifndef GL_ARB_depth_texture -#define GL_ARB_depth_texture 1 -#define GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B -#endif /* GL_ARB_depth_texture */ - -#ifndef GL_ARB_derivative_control -#define GL_ARB_derivative_control 1 -#endif /* GL_ARB_derivative_control */ - -#ifndef GL_ARB_direct_state_access -#define GL_ARB_direct_state_access 1 -#endif /* GL_ARB_direct_state_access */ - -#ifndef GL_ARB_draw_buffers -#define GL_ARB_draw_buffers 1 -#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define GL_DRAW_BUFFER0_ARB 0x8825 -#define GL_DRAW_BUFFER1_ARB 0x8826 -#define GL_DRAW_BUFFER2_ARB 0x8827 -#define GL_DRAW_BUFFER3_ARB 0x8828 -#define GL_DRAW_BUFFER4_ARB 0x8829 -#define GL_DRAW_BUFFER5_ARB 0x882A -#define GL_DRAW_BUFFER6_ARB 0x882B -#define GL_DRAW_BUFFER7_ARB 0x882C -#define GL_DRAW_BUFFER8_ARB 0x882D -#define GL_DRAW_BUFFER9_ARB 0x882E -#define GL_DRAW_BUFFER10_ARB 0x882F -#define GL_DRAW_BUFFER11_ARB 0x8830 -#define GL_DRAW_BUFFER12_ARB 0x8831 -#define GL_DRAW_BUFFER13_ARB 0x8832 -#define GL_DRAW_BUFFER14_ARB 0x8833 -#define GL_DRAW_BUFFER15_ARB 0x8834 -typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersARB (GLsizei n, const GLenum *bufs); -#endif -#endif /* GL_ARB_draw_buffers */ - -#ifndef GL_ARB_draw_buffers_blend -#define GL_ARB_draw_buffers_blend 1 -typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationiARB (GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glBlendFunciARB (GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif -#endif /* GL_ARB_draw_buffers_blend */ - -#ifndef GL_ARB_draw_elements_base_vertex -#define GL_ARB_draw_elements_base_vertex 1 -#endif /* GL_ARB_draw_elements_base_vertex */ - -#ifndef GL_ARB_draw_indirect -#define GL_ARB_draw_indirect 1 -#endif /* GL_ARB_draw_indirect */ - -#ifndef GL_ARB_draw_instanced -#define GL_ARB_draw_instanced 1 -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#endif -#endif /* GL_ARB_draw_instanced */ - -#ifndef GL_ARB_enhanced_layouts -#define GL_ARB_enhanced_layouts 1 -#endif /* GL_ARB_enhanced_layouts */ - -#ifndef GL_ARB_explicit_attrib_location -#define GL_ARB_explicit_attrib_location 1 -#endif /* GL_ARB_explicit_attrib_location */ - -#ifndef GL_ARB_explicit_uniform_location -#define GL_ARB_explicit_uniform_location 1 -#endif /* GL_ARB_explicit_uniform_location */ - -#ifndef GL_ARB_fragment_coord_conventions -#define GL_ARB_fragment_coord_conventions 1 -#endif /* GL_ARB_fragment_coord_conventions */ - -#ifndef GL_ARB_fragment_layer_viewport -#define GL_ARB_fragment_layer_viewport 1 -#endif /* GL_ARB_fragment_layer_viewport */ - -#ifndef GL_ARB_fragment_program -#define GL_ARB_fragment_program 1 -#define GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define GL_PROGRAM_LENGTH_ARB 0x8627 -#define GL_PROGRAM_FORMAT_ARB 0x8876 -#define GL_PROGRAM_BINDING_ARB 0x8677 -#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define GL_PROGRAM_STRING_ARB 0x8628 -#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B -#define GL_CURRENT_MATRIX_ARB 0x8641 -#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 -#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 -#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 -#define GL_MATRIX0_ARB 0x88C0 -#define GL_MATRIX1_ARB 0x88C1 -#define GL_MATRIX2_ARB 0x88C2 -#define GL_MATRIX3_ARB 0x88C3 -#define GL_MATRIX4_ARB 0x88C4 -#define GL_MATRIX5_ARB 0x88C5 -#define GL_MATRIX6_ARB 0x88C6 -#define GL_MATRIX7_ARB 0x88C7 -#define GL_MATRIX8_ARB 0x88C8 -#define GL_MATRIX9_ARB 0x88C9 -#define GL_MATRIX10_ARB 0x88CA -#define GL_MATRIX11_ARB 0x88CB -#define GL_MATRIX12_ARB 0x88CC -#define GL_MATRIX13_ARB 0x88CD -#define GL_MATRIX14_ARB 0x88CE -#define GL_MATRIX15_ARB 0x88CF -#define GL_MATRIX16_ARB 0x88D0 -#define GL_MATRIX17_ARB 0x88D1 -#define GL_MATRIX18_ARB 0x88D2 -#define GL_MATRIX19_ARB 0x88D3 -#define GL_MATRIX20_ARB 0x88D4 -#define GL_MATRIX21_ARB 0x88D5 -#define GL_MATRIX22_ARB 0x88D6 -#define GL_MATRIX23_ARB 0x88D7 -#define GL_MATRIX24_ARB 0x88D8 -#define GL_MATRIX25_ARB 0x88D9 -#define GL_MATRIX26_ARB 0x88DA -#define GL_MATRIX27_ARB 0x88DB -#define GL_MATRIX28_ARB 0x88DC -#define GL_MATRIX29_ARB 0x88DD -#define GL_MATRIX30_ARB 0x88DE -#define GL_MATRIX31_ARB 0x88DF -typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void *string); -typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void *string); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramStringARB (GLenum target, GLenum format, GLsizei len, const void *string); -GLAPI void APIENTRY glBindProgramARB (GLenum target, GLuint program); -GLAPI void APIENTRY glDeleteProgramsARB (GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glGenProgramsARB (GLsizei n, GLuint *programs); -GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetProgramivARB (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramStringARB (GLenum target, GLenum pname, void *string); -GLAPI GLboolean APIENTRY glIsProgramARB (GLuint program); -#endif -#endif /* GL_ARB_fragment_program */ - -#ifndef GL_ARB_fragment_program_shadow -#define GL_ARB_fragment_program_shadow 1 -#endif /* GL_ARB_fragment_program_shadow */ - -#ifndef GL_ARB_fragment_shader -#define GL_ARB_fragment_shader 1 -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B -#endif /* GL_ARB_fragment_shader */ - -#ifndef GL_ARB_fragment_shader_interlock -#define GL_ARB_fragment_shader_interlock 1 -#endif /* GL_ARB_fragment_shader_interlock */ - -#ifndef GL_ARB_framebuffer_no_attachments -#define GL_ARB_framebuffer_no_attachments 1 -#endif /* GL_ARB_framebuffer_no_attachments */ - -#ifndef GL_ARB_framebuffer_object -#define GL_ARB_framebuffer_object 1 -#endif /* GL_ARB_framebuffer_object */ - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_ARB_framebuffer_sRGB 1 -#endif /* GL_ARB_framebuffer_sRGB */ - -#ifndef GL_ARB_geometry_shader4 -#define GL_ARB_geometry_shader4 1 -#define GL_LINES_ADJACENCY_ARB 0x000A -#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B -#define GL_TRIANGLES_ADJACENCY_ARB 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D -#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 -#define GL_GEOMETRY_SHADER_ARB 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriARB (GLuint program, GLenum pname, GLint value); -GLAPI void APIENTRY glFramebufferTextureARB (GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif -#endif /* GL_ARB_geometry_shader4 */ - -#ifndef GL_ARB_get_program_binary -#define GL_ARB_get_program_binary 1 -#endif /* GL_ARB_get_program_binary */ - -#ifndef GL_ARB_get_texture_sub_image -#define GL_ARB_get_texture_sub_image 1 -#endif /* GL_ARB_get_texture_sub_image */ - -#ifndef GL_ARB_gl_spirv -#define GL_ARB_gl_spirv 1 -#define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551 -#define GL_SPIR_V_BINARY_ARB 0x9552 -typedef void (APIENTRYP PFNGLSPECIALIZESHADERARBPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSpecializeShaderARB (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); -#endif -#endif /* GL_ARB_gl_spirv */ - -#ifndef GL_ARB_gpu_shader5 -#define GL_ARB_gpu_shader5 1 -#endif /* GL_ARB_gpu_shader5 */ - -#ifndef GL_ARB_gpu_shader_fp64 -#define GL_ARB_gpu_shader_fp64 1 -#endif /* GL_ARB_gpu_shader_fp64 */ - -#ifndef GL_ARB_gpu_shader_int64 -#define GL_ARB_gpu_shader_int64 1 -#define GL_INT64_ARB 0x140E -#define GL_INT64_VEC2_ARB 0x8FE9 -#define GL_INT64_VEC3_ARB 0x8FEA -#define GL_INT64_VEC4_ARB 0x8FEB -#define GL_UNSIGNED_INT64_VEC2_ARB 0x8FF5 -#define GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6 -#define GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7 -typedef void (APIENTRYP PFNGLUNIFORM1I64ARBPROC) (GLint location, GLint64 x); -typedef void (APIENTRYP PFNGLUNIFORM2I64ARBPROC) (GLint location, GLint64 x, GLint64 y); -typedef void (APIENTRYP PFNGLUNIFORM3I64ARBPROC) (GLint location, GLint64 x, GLint64 y, GLint64 z); -typedef void (APIENTRYP PFNGLUNIFORM4I64ARBPROC) (GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); -typedef void (APIENTRYP PFNGLUNIFORM1I64VARBPROC) (GLint location, GLsizei count, const GLint64 *value); -typedef void (APIENTRYP PFNGLUNIFORM2I64VARBPROC) (GLint location, GLsizei count, const GLint64 *value); -typedef void (APIENTRYP PFNGLUNIFORM3I64VARBPROC) (GLint location, GLsizei count, const GLint64 *value); -typedef void (APIENTRYP PFNGLUNIFORM4I64VARBPROC) (GLint location, GLsizei count, const GLint64 *value); -typedef void (APIENTRYP PFNGLUNIFORM1UI64ARBPROC) (GLint location, GLuint64 x); -typedef void (APIENTRYP PFNGLUNIFORM2UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y); -typedef void (APIENTRYP PFNGLUNIFORM3UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z); -typedef void (APIENTRYP PFNGLUNIFORM4UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); -typedef void (APIENTRYP PFNGLUNIFORM1UI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (APIENTRYP PFNGLUNIFORM2UI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (APIENTRYP PFNGLUNIFORM3UI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (APIENTRYP PFNGLUNIFORM4UI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (APIENTRYP PFNGLGETUNIFORMI64VARBPROC) (GLuint program, GLint location, GLint64 *params); -typedef void (APIENTRYP PFNGLGETUNIFORMUI64VARBPROC) (GLuint program, GLint location, GLuint64 *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMI64VARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint64 *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMUI64VARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint64 *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64ARBPROC) (GLuint program, GLint location, GLint64 x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64 *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64 *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64 *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64 *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64ARBPROC) (GLuint program, GLint location, GLuint64 x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniform1i64ARB (GLint location, GLint64 x); -GLAPI void APIENTRY glUniform2i64ARB (GLint location, GLint64 x, GLint64 y); -GLAPI void APIENTRY glUniform3i64ARB (GLint location, GLint64 x, GLint64 y, GLint64 z); -GLAPI void APIENTRY glUniform4i64ARB (GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); -GLAPI void APIENTRY glUniform1i64vARB (GLint location, GLsizei count, const GLint64 *value); -GLAPI void APIENTRY glUniform2i64vARB (GLint location, GLsizei count, const GLint64 *value); -GLAPI void APIENTRY glUniform3i64vARB (GLint location, GLsizei count, const GLint64 *value); -GLAPI void APIENTRY glUniform4i64vARB (GLint location, GLsizei count, const GLint64 *value); -GLAPI void APIENTRY glUniform1ui64ARB (GLint location, GLuint64 x); -GLAPI void APIENTRY glUniform2ui64ARB (GLint location, GLuint64 x, GLuint64 y); -GLAPI void APIENTRY glUniform3ui64ARB (GLint location, GLuint64 x, GLuint64 y, GLuint64 z); -GLAPI void APIENTRY glUniform4ui64ARB (GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); -GLAPI void APIENTRY glUniform1ui64vARB (GLint location, GLsizei count, const GLuint64 *value); -GLAPI void APIENTRY glUniform2ui64vARB (GLint location, GLsizei count, const GLuint64 *value); -GLAPI void APIENTRY glUniform3ui64vARB (GLint location, GLsizei count, const GLuint64 *value); -GLAPI void APIENTRY glUniform4ui64vARB (GLint location, GLsizei count, const GLuint64 *value); -GLAPI void APIENTRY glGetUniformi64vARB (GLuint program, GLint location, GLint64 *params); -GLAPI void APIENTRY glGetUniformui64vARB (GLuint program, GLint location, GLuint64 *params); -GLAPI void APIENTRY glGetnUniformi64vARB (GLuint program, GLint location, GLsizei bufSize, GLint64 *params); -GLAPI void APIENTRY glGetnUniformui64vARB (GLuint program, GLint location, GLsizei bufSize, GLuint64 *params); -GLAPI void APIENTRY glProgramUniform1i64ARB (GLuint program, GLint location, GLint64 x); -GLAPI void APIENTRY glProgramUniform2i64ARB (GLuint program, GLint location, GLint64 x, GLint64 y); -GLAPI void APIENTRY glProgramUniform3i64ARB (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z); -GLAPI void APIENTRY glProgramUniform4i64ARB (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); -GLAPI void APIENTRY glProgramUniform1i64vARB (GLuint program, GLint location, GLsizei count, const GLint64 *value); -GLAPI void APIENTRY glProgramUniform2i64vARB (GLuint program, GLint location, GLsizei count, const GLint64 *value); -GLAPI void APIENTRY glProgramUniform3i64vARB (GLuint program, GLint location, GLsizei count, const GLint64 *value); -GLAPI void APIENTRY glProgramUniform4i64vARB (GLuint program, GLint location, GLsizei count, const GLint64 *value); -GLAPI void APIENTRY glProgramUniform1ui64ARB (GLuint program, GLint location, GLuint64 x); -GLAPI void APIENTRY glProgramUniform2ui64ARB (GLuint program, GLint location, GLuint64 x, GLuint64 y); -GLAPI void APIENTRY glProgramUniform3ui64ARB (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z); -GLAPI void APIENTRY glProgramUniform4ui64ARB (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); -GLAPI void APIENTRY glProgramUniform1ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *value); -GLAPI void APIENTRY glProgramUniform2ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *value); -GLAPI void APIENTRY glProgramUniform3ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *value); -GLAPI void APIENTRY glProgramUniform4ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *value); -#endif -#endif /* GL_ARB_gpu_shader_int64 */ - -#ifndef GL_ARB_half_float_pixel -#define GL_ARB_half_float_pixel 1 -typedef khronos_uint16_t GLhalfARB; -#define GL_HALF_FLOAT_ARB 0x140B -#endif /* GL_ARB_half_float_pixel */ - -#ifndef GL_ARB_half_float_vertex -#define GL_ARB_half_float_vertex 1 -#endif /* GL_ARB_half_float_vertex */ - -#ifndef GL_ARB_imaging -#define GL_ARB_imaging 1 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 -typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, void *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, void *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); -GLAPI void APIENTRY glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glGetColorTable (GLenum target, GLenum format, GLenum type, void *table); -GLAPI void APIENTRY glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); -GLAPI void APIENTRY glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); -GLAPI void APIENTRY glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params); -GLAPI void APIENTRY glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glConvolutionParameteri (GLenum target, GLenum pname, GLint params); -GLAPI void APIENTRY glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, void *image); -GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSeparableFilter (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); -GLAPI void APIENTRY glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); -GLAPI void APIENTRY glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -GLAPI void APIENTRY glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glMinmax (GLenum target, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glResetHistogram (GLenum target); -GLAPI void APIENTRY glResetMinmax (GLenum target); -#endif -#endif /* GL_ARB_imaging */ - -#ifndef GL_ARB_indirect_parameters -#define GL_ARB_indirect_parameters 1 -#define GL_PARAMETER_BUFFER_ARB 0x80EE -#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysIndirectCountARB (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -GLAPI void APIENTRY glMultiDrawElementsIndirectCountARB (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -#endif -#endif /* GL_ARB_indirect_parameters */ - -#ifndef GL_ARB_instanced_arrays -#define GL_ARB_instanced_arrays 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE -typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor); -#endif -#endif /* GL_ARB_instanced_arrays */ - -#ifndef GL_ARB_internalformat_query -#define GL_ARB_internalformat_query 1 -#endif /* GL_ARB_internalformat_query */ - -#ifndef GL_ARB_internalformat_query2 -#define GL_ARB_internalformat_query2 1 -#define GL_SRGB_DECODE_ARB 0x8299 -#define GL_VIEW_CLASS_EAC_R11 0x9383 -#define GL_VIEW_CLASS_EAC_RG11 0x9384 -#define GL_VIEW_CLASS_ETC2_RGB 0x9385 -#define GL_VIEW_CLASS_ETC2_RGBA 0x9386 -#define GL_VIEW_CLASS_ETC2_EAC_RGBA 0x9387 -#define GL_VIEW_CLASS_ASTC_4x4_RGBA 0x9388 -#define GL_VIEW_CLASS_ASTC_5x4_RGBA 0x9389 -#define GL_VIEW_CLASS_ASTC_5x5_RGBA 0x938A -#define GL_VIEW_CLASS_ASTC_6x5_RGBA 0x938B -#define GL_VIEW_CLASS_ASTC_6x6_RGBA 0x938C -#define GL_VIEW_CLASS_ASTC_8x5_RGBA 0x938D -#define GL_VIEW_CLASS_ASTC_8x6_RGBA 0x938E -#define GL_VIEW_CLASS_ASTC_8x8_RGBA 0x938F -#define GL_VIEW_CLASS_ASTC_10x5_RGBA 0x9390 -#define GL_VIEW_CLASS_ASTC_10x6_RGBA 0x9391 -#define GL_VIEW_CLASS_ASTC_10x8_RGBA 0x9392 -#define GL_VIEW_CLASS_ASTC_10x10_RGBA 0x9393 -#define GL_VIEW_CLASS_ASTC_12x10_RGBA 0x9394 -#define GL_VIEW_CLASS_ASTC_12x12_RGBA 0x9395 -#endif /* GL_ARB_internalformat_query2 */ - -#ifndef GL_ARB_invalidate_subdata -#define GL_ARB_invalidate_subdata 1 -#endif /* GL_ARB_invalidate_subdata */ - -#ifndef GL_ARB_map_buffer_alignment -#define GL_ARB_map_buffer_alignment 1 -#endif /* GL_ARB_map_buffer_alignment */ - -#ifndef GL_ARB_map_buffer_range -#define GL_ARB_map_buffer_range 1 -#endif /* GL_ARB_map_buffer_range */ - -#ifndef GL_ARB_matrix_palette -#define GL_ARB_matrix_palette 1 -#define GL_MATRIX_PALETTE_ARB 0x8840 -#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 -#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 -#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 -#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 -#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 -#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 -#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 -#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 -#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 -typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); -typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint index); -GLAPI void APIENTRY glMatrixIndexubvARB (GLint size, const GLubyte *indices); -GLAPI void APIENTRY glMatrixIndexusvARB (GLint size, const GLushort *indices); -GLAPI void APIENTRY glMatrixIndexuivARB (GLint size, const GLuint *indices); -GLAPI void APIENTRY glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, const void *pointer); -#endif -#endif /* GL_ARB_matrix_palette */ - -#ifndef GL_ARB_multi_bind -#define GL_ARB_multi_bind 1 -#endif /* GL_ARB_multi_bind */ - -#ifndef GL_ARB_multi_draw_indirect -#define GL_ARB_multi_draw_indirect 1 -#endif /* GL_ARB_multi_draw_indirect */ - -#ifndef GL_ARB_multisample -#define GL_ARB_multisample 1 -#define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define GL_MULTISAMPLE_BIT_ARB 0x20000000 -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLfloat value, GLboolean invert); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleCoverageARB (GLfloat value, GLboolean invert); -#endif -#endif /* GL_ARB_multisample */ - -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 -typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTextureARB (GLenum texture); -GLAPI void APIENTRY glClientActiveTextureARB (GLenum texture); -GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum target, GLdouble s); -GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum target, GLfloat s); -GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum target, GLint s); -GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum target, GLshort s); -GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t); -GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t); -GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum target, GLint s, GLint t); -GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t); -GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r); -GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum target, const GLshort *v); -#endif -#endif /* GL_ARB_multitexture */ - -#ifndef GL_ARB_occlusion_query -#define GL_ARB_occlusion_query 1 -#define GL_QUERY_COUNTER_BITS_ARB 0x8864 -#define GL_CURRENT_QUERY_ARB 0x8865 -#define GL_QUERY_RESULT_ARB 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define GL_SAMPLES_PASSED_ARB 0x8914 -typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueriesARB (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteQueriesARB (GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsQueryARB (GLuint id); -GLAPI void APIENTRY glBeginQueryARB (GLenum target, GLuint id); -GLAPI void APIENTRY glEndQueryARB (GLenum target); -GLAPI void APIENTRY glGetQueryivARB (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectivARB (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint id, GLenum pname, GLuint *params); -#endif -#endif /* GL_ARB_occlusion_query */ - -#ifndef GL_ARB_occlusion_query2 -#define GL_ARB_occlusion_query2 1 -#endif /* GL_ARB_occlusion_query2 */ - -#ifndef GL_ARB_parallel_shader_compile -#define GL_ARB_parallel_shader_compile 1 -#define GL_MAX_SHADER_COMPILER_THREADS_ARB 0x91B0 -#define GL_COMPLETION_STATUS_ARB 0x91B1 -typedef void (APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSARBPROC) (GLuint count); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMaxShaderCompilerThreadsARB (GLuint count); -#endif -#endif /* GL_ARB_parallel_shader_compile */ - -#ifndef GL_ARB_pipeline_statistics_query -#define GL_ARB_pipeline_statistics_query 1 -#define GL_VERTICES_SUBMITTED_ARB 0x82EE -#define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF -#define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0 -#define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1 -#define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2 -#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3 -#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4 -#define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5 -#define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6 -#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7 -#endif /* GL_ARB_pipeline_statistics_query */ - -#ifndef GL_ARB_pixel_buffer_object -#define GL_ARB_pixel_buffer_object 1 -#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF -#endif /* GL_ARB_pixel_buffer_object */ - -#ifndef GL_ARB_point_parameters -#define GL_ARB_point_parameters 1 -#define GL_POINT_SIZE_MIN_ARB 0x8126 -#define GL_POINT_SIZE_MAX_ARB 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 -typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfARB (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvARB (GLenum pname, const GLfloat *params); -#endif -#endif /* GL_ARB_point_parameters */ - -#ifndef GL_ARB_point_sprite -#define GL_ARB_point_sprite 1 -#define GL_POINT_SPRITE_ARB 0x8861 -#define GL_COORD_REPLACE_ARB 0x8862 -#endif /* GL_ARB_point_sprite */ - -#ifndef GL_ARB_polygon_offset_clamp -#define GL_ARB_polygon_offset_clamp 1 -#endif /* GL_ARB_polygon_offset_clamp */ - -#ifndef GL_ARB_post_depth_coverage -#define GL_ARB_post_depth_coverage 1 -#endif /* GL_ARB_post_depth_coverage */ - -#ifndef GL_ARB_program_interface_query -#define GL_ARB_program_interface_query 1 -#endif /* GL_ARB_program_interface_query */ - -#ifndef GL_ARB_provoking_vertex -#define GL_ARB_provoking_vertex 1 -#endif /* GL_ARB_provoking_vertex */ - -#ifndef GL_ARB_query_buffer_object -#define GL_ARB_query_buffer_object 1 -#endif /* GL_ARB_query_buffer_object */ - -#ifndef GL_ARB_robust_buffer_access_behavior -#define GL_ARB_robust_buffer_access_behavior 1 -#endif /* GL_ARB_robust_buffer_access_behavior */ - -#ifndef GL_ARB_robustness -#define GL_ARB_robustness 1 -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 -typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void); -typedef void (APIENTRYP PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img); -typedef void (APIENTRYP PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void *img); -typedef void (APIENTRYP PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -typedef void (APIENTRYP PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -typedef void (APIENTRYP PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -typedef void (APIENTRYP PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v); -typedef void (APIENTRYP PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat *values); -typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint *values); -typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort *values); -typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte *pattern); -typedef void (APIENTRYP PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); -typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); -typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); -typedef void (APIENTRYP PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -typedef void (APIENTRYP PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLenum APIENTRY glGetGraphicsResetStatusARB (void); -GLAPI void APIENTRY glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img); -GLAPI void APIENTRY glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GLAPI void APIENTRY glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, void *img); -GLAPI void APIENTRY glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GLAPI void APIENTRY glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint *params); -GLAPI void APIENTRY glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -GLAPI void APIENTRY glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -GLAPI void APIENTRY glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -GLAPI void APIENTRY glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -GLAPI void APIENTRY glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint *v); -GLAPI void APIENTRY glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat *values); -GLAPI void APIENTRY glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint *values); -GLAPI void APIENTRY glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort *values); -GLAPI void APIENTRY glGetnPolygonStippleARB (GLsizei bufSize, GLubyte *pattern); -GLAPI void APIENTRY glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); -GLAPI void APIENTRY glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); -GLAPI void APIENTRY glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); -GLAPI void APIENTRY glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -GLAPI void APIENTRY glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -#endif -#endif /* GL_ARB_robustness */ - -#ifndef GL_ARB_robustness_isolation -#define GL_ARB_robustness_isolation 1 -#endif /* GL_ARB_robustness_isolation */ - -#ifndef GL_ARB_sample_locations -#define GL_ARB_sample_locations 1 -#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB 0x933D -#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB 0x933E -#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB 0x933F -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB 0x9340 -#define GL_SAMPLE_LOCATION_ARB 0x8E50 -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB 0x9341 -#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB 0x9342 -#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB 0x9343 -typedef void (APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLEVALUATEDEPTHVALUESARBPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFramebufferSampleLocationsfvARB (GLenum target, GLuint start, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glNamedFramebufferSampleLocationsfvARB (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glEvaluateDepthValuesARB (void); -#endif -#endif /* GL_ARB_sample_locations */ - -#ifndef GL_ARB_sample_shading -#define GL_ARB_sample_shading 1 -#define GL_SAMPLE_SHADING_ARB 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 -typedef void (APIENTRYP PFNGLMINSAMPLESHADINGARBPROC) (GLfloat value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMinSampleShadingARB (GLfloat value); -#endif -#endif /* GL_ARB_sample_shading */ - -#ifndef GL_ARB_sampler_objects -#define GL_ARB_sampler_objects 1 -#endif /* GL_ARB_sampler_objects */ - -#ifndef GL_ARB_seamless_cube_map -#define GL_ARB_seamless_cube_map 1 -#endif /* GL_ARB_seamless_cube_map */ - -#ifndef GL_ARB_seamless_cubemap_per_texture -#define GL_ARB_seamless_cubemap_per_texture 1 -#endif /* GL_ARB_seamless_cubemap_per_texture */ - -#ifndef GL_ARB_separate_shader_objects -#define GL_ARB_separate_shader_objects 1 -#endif /* GL_ARB_separate_shader_objects */ - -#ifndef GL_ARB_shader_atomic_counter_ops -#define GL_ARB_shader_atomic_counter_ops 1 -#endif /* GL_ARB_shader_atomic_counter_ops */ - -#ifndef GL_ARB_shader_atomic_counters -#define GL_ARB_shader_atomic_counters 1 -#endif /* GL_ARB_shader_atomic_counters */ - -#ifndef GL_ARB_shader_ballot -#define GL_ARB_shader_ballot 1 -#endif /* GL_ARB_shader_ballot */ - -#ifndef GL_ARB_shader_bit_encoding -#define GL_ARB_shader_bit_encoding 1 -#endif /* GL_ARB_shader_bit_encoding */ - -#ifndef GL_ARB_shader_clock -#define GL_ARB_shader_clock 1 -#endif /* GL_ARB_shader_clock */ - -#ifndef GL_ARB_shader_draw_parameters -#define GL_ARB_shader_draw_parameters 1 -#endif /* GL_ARB_shader_draw_parameters */ - -#ifndef GL_ARB_shader_group_vote -#define GL_ARB_shader_group_vote 1 -#endif /* GL_ARB_shader_group_vote */ - -#ifndef GL_ARB_shader_image_load_store -#define GL_ARB_shader_image_load_store 1 -#endif /* GL_ARB_shader_image_load_store */ - -#ifndef GL_ARB_shader_image_size -#define GL_ARB_shader_image_size 1 -#endif /* GL_ARB_shader_image_size */ - -#ifndef GL_ARB_shader_objects -#define GL_ARB_shader_objects 1 -#ifdef __APPLE__ -typedef void *GLhandleARB; -#else -typedef unsigned int GLhandleARB; -#endif -typedef char GLcharARB; -#define GL_PROGRAM_OBJECT_ARB 0x8B40 -#define GL_SHADER_OBJECT_ARB 0x8B48 -#define GL_OBJECT_TYPE_ARB 0x8B4E -#define GL_OBJECT_SUBTYPE_ARB 0x8B4F -#define GL_FLOAT_VEC2_ARB 0x8B50 -#define GL_FLOAT_VEC3_ARB 0x8B51 -#define GL_FLOAT_VEC4_ARB 0x8B52 -#define GL_INT_VEC2_ARB 0x8B53 -#define GL_INT_VEC3_ARB 0x8B54 -#define GL_INT_VEC4_ARB 0x8B55 -#define GL_BOOL_ARB 0x8B56 -#define GL_BOOL_VEC2_ARB 0x8B57 -#define GL_BOOL_VEC3_ARB 0x8B58 -#define GL_BOOL_VEC4_ARB 0x8B59 -#define GL_FLOAT_MAT2_ARB 0x8B5A -#define GL_FLOAT_MAT3_ARB 0x8B5B -#define GL_FLOAT_MAT4_ARB 0x8B5C -#define GL_SAMPLER_1D_ARB 0x8B5D -#define GL_SAMPLER_2D_ARB 0x8B5E -#define GL_SAMPLER_3D_ARB 0x8B5F -#define GL_SAMPLER_CUBE_ARB 0x8B60 -#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 -#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 -#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 -#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 -#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 -typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); -typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); -typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); -typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); -typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); -typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB obj); -GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum pname); -GLAPI void APIENTRY glDetachObjectARB (GLhandleARB containerObj, GLhandleARB attachedObj); -GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum shaderType); -GLAPI void APIENTRY glShaderSourceARB (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); -GLAPI void APIENTRY glCompileShaderARB (GLhandleARB shaderObj); -GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); -GLAPI void APIENTRY glAttachObjectARB (GLhandleARB containerObj, GLhandleARB obj); -GLAPI void APIENTRY glLinkProgramARB (GLhandleARB programObj); -GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB programObj); -GLAPI void APIENTRY glValidateProgramARB (GLhandleARB programObj); -GLAPI void APIENTRY glUniform1fARB (GLint location, GLfloat v0); -GLAPI void APIENTRY glUniform2fARB (GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glUniform3fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glUniform4fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glUniform1iARB (GLint location, GLint v0); -GLAPI void APIENTRY glUniform2iARB (GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glUniform3iARB (GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glUniform4iARB (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glUniform1fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform2fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform3fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform4fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform1ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform2ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform3ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform4ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniformMatrix2fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB obj, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB obj, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB programObj, const GLcharARB *name); -GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB programObj, GLint location, GLfloat *params); -GLAPI void APIENTRY glGetUniformivARB (GLhandleARB programObj, GLint location, GLint *params); -GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#endif -#endif /* GL_ARB_shader_objects */ - -#ifndef GL_ARB_shader_precision -#define GL_ARB_shader_precision 1 -#endif /* GL_ARB_shader_precision */ - -#ifndef GL_ARB_shader_stencil_export -#define GL_ARB_shader_stencil_export 1 -#endif /* GL_ARB_shader_stencil_export */ - -#ifndef GL_ARB_shader_storage_buffer_object -#define GL_ARB_shader_storage_buffer_object 1 -#endif /* GL_ARB_shader_storage_buffer_object */ - -#ifndef GL_ARB_shader_subroutine -#define GL_ARB_shader_subroutine 1 -#endif /* GL_ARB_shader_subroutine */ - -#ifndef GL_ARB_shader_texture_image_samples -#define GL_ARB_shader_texture_image_samples 1 -#endif /* GL_ARB_shader_texture_image_samples */ - -#ifndef GL_ARB_shader_texture_lod -#define GL_ARB_shader_texture_lod 1 -#endif /* GL_ARB_shader_texture_lod */ - -#ifndef GL_ARB_shader_viewport_layer_array -#define GL_ARB_shader_viewport_layer_array 1 -#endif /* GL_ARB_shader_viewport_layer_array */ - -#ifndef GL_ARB_shading_language_100 -#define GL_ARB_shading_language_100 1 -#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C -#endif /* GL_ARB_shading_language_100 */ - -#ifndef GL_ARB_shading_language_420pack -#define GL_ARB_shading_language_420pack 1 -#endif /* GL_ARB_shading_language_420pack */ - -#ifndef GL_ARB_shading_language_include -#define GL_ARB_shading_language_include 1 -#define GL_SHADER_INCLUDE_ARB 0x8DAE -#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 -#define GL_NAMED_STRING_TYPE_ARB 0x8DEA -typedef void (APIENTRYP PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); -typedef void (APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); -typedef void (APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length); -typedef GLboolean (APIENTRYP PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); -typedef void (APIENTRYP PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); -typedef void (APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); -GLAPI void APIENTRY glDeleteNamedStringARB (GLint namelen, const GLchar *name); -GLAPI void APIENTRY glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length); -GLAPI GLboolean APIENTRY glIsNamedStringARB (GLint namelen, const GLchar *name); -GLAPI void APIENTRY glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); -GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params); -#endif -#endif /* GL_ARB_shading_language_include */ - -#ifndef GL_ARB_shading_language_packing -#define GL_ARB_shading_language_packing 1 -#endif /* GL_ARB_shading_language_packing */ - -#ifndef GL_ARB_shadow -#define GL_ARB_shadow 1 -#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C -#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D -#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E -#endif /* GL_ARB_shadow */ - -#ifndef GL_ARB_shadow_ambient -#define GL_ARB_shadow_ambient 1 -#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF -#endif /* GL_ARB_shadow_ambient */ - -#ifndef GL_ARB_sparse_buffer -#define GL_ARB_sparse_buffer 1 -#define GL_SPARSE_STORAGE_BIT_ARB 0x0400 -#define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8 -typedef void (APIENTRYP PFNGLBUFFERPAGECOMMITMENTARBPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit); -typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); -typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferPageCommitmentARB (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit); -GLAPI void APIENTRY glNamedBufferPageCommitmentEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); -GLAPI void APIENTRY glNamedBufferPageCommitmentARB (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); -#endif -#endif /* GL_ARB_sparse_buffer */ - -#ifndef GL_ARB_sparse_texture -#define GL_ARB_sparse_texture 1 -#define GL_TEXTURE_SPARSE_ARB 0x91A6 -#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7 -#define GL_NUM_SPARSE_LEVELS_ARB 0x91AA -#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8 -#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195 -#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196 -#define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197 -#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198 -#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199 -#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A -#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9 -typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -#endif -#endif /* GL_ARB_sparse_texture */ - -#ifndef GL_ARB_sparse_texture2 -#define GL_ARB_sparse_texture2 1 -#endif /* GL_ARB_sparse_texture2 */ - -#ifndef GL_ARB_sparse_texture_clamp -#define GL_ARB_sparse_texture_clamp 1 -#endif /* GL_ARB_sparse_texture_clamp */ - -#ifndef GL_ARB_spirv_extensions -#define GL_ARB_spirv_extensions 1 -#endif /* GL_ARB_spirv_extensions */ - -#ifndef GL_ARB_stencil_texturing -#define GL_ARB_stencil_texturing 1 -#endif /* GL_ARB_stencil_texturing */ - -#ifndef GL_ARB_sync -#define GL_ARB_sync 1 -#endif /* GL_ARB_sync */ - -#ifndef GL_ARB_tessellation_shader -#define GL_ARB_tessellation_shader 1 -#endif /* GL_ARB_tessellation_shader */ - -#ifndef GL_ARB_texture_barrier -#define GL_ARB_texture_barrier 1 -#endif /* GL_ARB_texture_barrier */ - -#ifndef GL_ARB_texture_border_clamp -#define GL_ARB_texture_border_clamp 1 -#define GL_CLAMP_TO_BORDER_ARB 0x812D -#endif /* GL_ARB_texture_border_clamp */ - -#ifndef GL_ARB_texture_buffer_object -#define GL_ARB_texture_buffer_object 1 -#define GL_TEXTURE_BUFFER_ARB 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E -typedef void (APIENTRYP PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferARB (GLenum target, GLenum internalformat, GLuint buffer); -#endif -#endif /* GL_ARB_texture_buffer_object */ - -#ifndef GL_ARB_texture_buffer_object_rgb32 -#define GL_ARB_texture_buffer_object_rgb32 1 -#endif /* GL_ARB_texture_buffer_object_rgb32 */ - -#ifndef GL_ARB_texture_buffer_range -#define GL_ARB_texture_buffer_range 1 -#endif /* GL_ARB_texture_buffer_range */ - -#ifndef GL_ARB_texture_compression -#define GL_ARB_texture_compression 1 -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, void *img); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum target, GLint level, void *img); -#endif -#endif /* GL_ARB_texture_compression */ - -#ifndef GL_ARB_texture_compression_bptc -#define GL_ARB_texture_compression_bptc 1 -#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F -#endif /* GL_ARB_texture_compression_bptc */ - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_ARB_texture_compression_rgtc 1 -#endif /* GL_ARB_texture_compression_rgtc */ - -#ifndef GL_ARB_texture_cube_map -#define GL_ARB_texture_cube_map 1 -#define GL_NORMAL_MAP_ARB 0x8511 -#define GL_REFLECTION_MAP_ARB 0x8512 -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C -#endif /* GL_ARB_texture_cube_map */ - -#ifndef GL_ARB_texture_cube_map_array -#define GL_ARB_texture_cube_map_array 1 -#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F -#endif /* GL_ARB_texture_cube_map_array */ - -#ifndef GL_ARB_texture_env_add -#define GL_ARB_texture_env_add 1 -#endif /* GL_ARB_texture_env_add */ - -#ifndef GL_ARB_texture_env_combine -#define GL_ARB_texture_env_combine 1 -#define GL_COMBINE_ARB 0x8570 -#define GL_COMBINE_RGB_ARB 0x8571 -#define GL_COMBINE_ALPHA_ARB 0x8572 -#define GL_SOURCE0_RGB_ARB 0x8580 -#define GL_SOURCE1_RGB_ARB 0x8581 -#define GL_SOURCE2_RGB_ARB 0x8582 -#define GL_SOURCE0_ALPHA_ARB 0x8588 -#define GL_SOURCE1_ALPHA_ARB 0x8589 -#define GL_SOURCE2_ALPHA_ARB 0x858A -#define GL_OPERAND0_RGB_ARB 0x8590 -#define GL_OPERAND1_RGB_ARB 0x8591 -#define GL_OPERAND2_RGB_ARB 0x8592 -#define GL_OPERAND0_ALPHA_ARB 0x8598 -#define GL_OPERAND1_ALPHA_ARB 0x8599 -#define GL_OPERAND2_ALPHA_ARB 0x859A -#define GL_RGB_SCALE_ARB 0x8573 -#define GL_ADD_SIGNED_ARB 0x8574 -#define GL_INTERPOLATE_ARB 0x8575 -#define GL_SUBTRACT_ARB 0x84E7 -#define GL_CONSTANT_ARB 0x8576 -#define GL_PRIMARY_COLOR_ARB 0x8577 -#define GL_PREVIOUS_ARB 0x8578 -#endif /* GL_ARB_texture_env_combine */ - -#ifndef GL_ARB_texture_env_crossbar -#define GL_ARB_texture_env_crossbar 1 -#endif /* GL_ARB_texture_env_crossbar */ - -#ifndef GL_ARB_texture_env_dot3 -#define GL_ARB_texture_env_dot3 1 -#define GL_DOT3_RGB_ARB 0x86AE -#define GL_DOT3_RGBA_ARB 0x86AF -#endif /* GL_ARB_texture_env_dot3 */ - -#ifndef GL_ARB_texture_filter_anisotropic -#define GL_ARB_texture_filter_anisotropic 1 -#endif /* GL_ARB_texture_filter_anisotropic */ - -#ifndef GL_ARB_texture_filter_minmax -#define GL_ARB_texture_filter_minmax 1 -#define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366 -#define GL_WEIGHTED_AVERAGE_ARB 0x9367 -#endif /* GL_ARB_texture_filter_minmax */ - -#ifndef GL_ARB_texture_float -#define GL_ARB_texture_float 1 -#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 -#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 -#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 -#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 -#define GL_RGBA32F_ARB 0x8814 -#define GL_RGB32F_ARB 0x8815 -#define GL_ALPHA32F_ARB 0x8816 -#define GL_INTENSITY32F_ARB 0x8817 -#define GL_LUMINANCE32F_ARB 0x8818 -#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 -#define GL_RGBA16F_ARB 0x881A -#define GL_RGB16F_ARB 0x881B -#define GL_ALPHA16F_ARB 0x881C -#define GL_INTENSITY16F_ARB 0x881D -#define GL_LUMINANCE16F_ARB 0x881E -#define GL_LUMINANCE_ALPHA16F_ARB 0x881F -#endif /* GL_ARB_texture_float */ - -#ifndef GL_ARB_texture_gather -#define GL_ARB_texture_gather 1 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F -#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F -#endif /* GL_ARB_texture_gather */ - -#ifndef GL_ARB_texture_mirror_clamp_to_edge -#define GL_ARB_texture_mirror_clamp_to_edge 1 -#endif /* GL_ARB_texture_mirror_clamp_to_edge */ - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_ARB_texture_mirrored_repeat 1 -#define GL_MIRRORED_REPEAT_ARB 0x8370 -#endif /* GL_ARB_texture_mirrored_repeat */ - -#ifndef GL_ARB_texture_multisample -#define GL_ARB_texture_multisample 1 -#endif /* GL_ARB_texture_multisample */ - -#ifndef GL_ARB_texture_non_power_of_two -#define GL_ARB_texture_non_power_of_two 1 -#endif /* GL_ARB_texture_non_power_of_two */ - -#ifndef GL_ARB_texture_query_levels -#define GL_ARB_texture_query_levels 1 -#endif /* GL_ARB_texture_query_levels */ - -#ifndef GL_ARB_texture_query_lod -#define GL_ARB_texture_query_lod 1 -#endif /* GL_ARB_texture_query_lod */ - -#ifndef GL_ARB_texture_rectangle -#define GL_ARB_texture_rectangle 1 -#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 -#endif /* GL_ARB_texture_rectangle */ - -#ifndef GL_ARB_texture_rg -#define GL_ARB_texture_rg 1 -#endif /* GL_ARB_texture_rg */ - -#ifndef GL_ARB_texture_rgb10_a2ui -#define GL_ARB_texture_rgb10_a2ui 1 -#endif /* GL_ARB_texture_rgb10_a2ui */ - -#ifndef GL_ARB_texture_stencil8 -#define GL_ARB_texture_stencil8 1 -#endif /* GL_ARB_texture_stencil8 */ - -#ifndef GL_ARB_texture_storage -#define GL_ARB_texture_storage 1 -#endif /* GL_ARB_texture_storage */ - -#ifndef GL_ARB_texture_storage_multisample -#define GL_ARB_texture_storage_multisample 1 -#endif /* GL_ARB_texture_storage_multisample */ - -#ifndef GL_ARB_texture_swizzle -#define GL_ARB_texture_swizzle 1 -#endif /* GL_ARB_texture_swizzle */ - -#ifndef GL_ARB_texture_view -#define GL_ARB_texture_view 1 -#endif /* GL_ARB_texture_view */ - -#ifndef GL_ARB_timer_query -#define GL_ARB_timer_query 1 -#endif /* GL_ARB_timer_query */ - -#ifndef GL_ARB_transform_feedback2 -#define GL_ARB_transform_feedback2 1 -#endif /* GL_ARB_transform_feedback2 */ - -#ifndef GL_ARB_transform_feedback3 -#define GL_ARB_transform_feedback3 1 -#endif /* GL_ARB_transform_feedback3 */ - -#ifndef GL_ARB_transform_feedback_instanced -#define GL_ARB_transform_feedback_instanced 1 -#endif /* GL_ARB_transform_feedback_instanced */ - -#ifndef GL_ARB_transform_feedback_overflow_query -#define GL_ARB_transform_feedback_overflow_query 1 -#define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC -#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED -#endif /* GL_ARB_transform_feedback_overflow_query */ - -#ifndef GL_ARB_transpose_matrix -#define GL_ARB_transpose_matrix 1 -#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *m); -GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *m); -GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *m); -GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *m); -#endif -#endif /* GL_ARB_transpose_matrix */ - -#ifndef GL_ARB_uniform_buffer_object -#define GL_ARB_uniform_buffer_object 1 -#endif /* GL_ARB_uniform_buffer_object */ - -#ifndef GL_ARB_vertex_array_bgra -#define GL_ARB_vertex_array_bgra 1 -#endif /* GL_ARB_vertex_array_bgra */ - -#ifndef GL_ARB_vertex_array_object -#define GL_ARB_vertex_array_object 1 -#endif /* GL_ARB_vertex_array_object */ - -#ifndef GL_ARB_vertex_attrib_64bit -#define GL_ARB_vertex_attrib_64bit 1 -#endif /* GL_ARB_vertex_attrib_64bit */ - -#ifndef GL_ARB_vertex_attrib_binding -#define GL_ARB_vertex_attrib_binding 1 -#endif /* GL_ARB_vertex_attrib_binding */ - -#ifndef GL_ARB_vertex_blend -#define GL_ARB_vertex_blend 1 -#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 -#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 -#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 -#define GL_VERTEX_BLEND_ARB 0x86A7 -#define GL_CURRENT_WEIGHT_ARB 0x86A8 -#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 -#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA -#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB -#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC -#define GL_WEIGHT_ARRAY_ARB 0x86AD -#define GL_MODELVIEW0_ARB 0x1700 -#define GL_MODELVIEW1_ARB 0x850A -#define GL_MODELVIEW2_ARB 0x8722 -#define GL_MODELVIEW3_ARB 0x8723 -#define GL_MODELVIEW4_ARB 0x8724 -#define GL_MODELVIEW5_ARB 0x8725 -#define GL_MODELVIEW6_ARB 0x8726 -#define GL_MODELVIEW7_ARB 0x8727 -#define GL_MODELVIEW8_ARB 0x8728 -#define GL_MODELVIEW9_ARB 0x8729 -#define GL_MODELVIEW10_ARB 0x872A -#define GL_MODELVIEW11_ARB 0x872B -#define GL_MODELVIEW12_ARB 0x872C -#define GL_MODELVIEW13_ARB 0x872D -#define GL_MODELVIEW14_ARB 0x872E -#define GL_MODELVIEW15_ARB 0x872F -#define GL_MODELVIEW16_ARB 0x8730 -#define GL_MODELVIEW17_ARB 0x8731 -#define GL_MODELVIEW18_ARB 0x8732 -#define GL_MODELVIEW19_ARB 0x8733 -#define GL_MODELVIEW20_ARB 0x8734 -#define GL_MODELVIEW21_ARB 0x8735 -#define GL_MODELVIEW22_ARB 0x8736 -#define GL_MODELVIEW23_ARB 0x8737 -#define GL_MODELVIEW24_ARB 0x8738 -#define GL_MODELVIEW25_ARB 0x8739 -#define GL_MODELVIEW26_ARB 0x873A -#define GL_MODELVIEW27_ARB 0x873B -#define GL_MODELVIEW28_ARB 0x873C -#define GL_MODELVIEW29_ARB 0x873D -#define GL_MODELVIEW30_ARB 0x873E -#define GL_MODELVIEW31_ARB 0x873F -typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); -typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); -typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); -typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); -typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); -typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); -typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWeightbvARB (GLint size, const GLbyte *weights); -GLAPI void APIENTRY glWeightsvARB (GLint size, const GLshort *weights); -GLAPI void APIENTRY glWeightivARB (GLint size, const GLint *weights); -GLAPI void APIENTRY glWeightfvARB (GLint size, const GLfloat *weights); -GLAPI void APIENTRY glWeightdvARB (GLint size, const GLdouble *weights); -GLAPI void APIENTRY glWeightubvARB (GLint size, const GLubyte *weights); -GLAPI void APIENTRY glWeightusvARB (GLint size, const GLushort *weights); -GLAPI void APIENTRY glWeightuivARB (GLint size, const GLuint *weights); -GLAPI void APIENTRY glWeightPointerARB (GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glVertexBlendARB (GLint count); -#endif -#endif /* GL_ARB_vertex_blend */ - -#ifndef GL_ARB_vertex_buffer_object -#define GL_ARB_vertex_buffer_object 1 -typedef khronos_ssize_t GLsizeiptrARB; -typedef khronos_intptr_t GLintptrARB; -#define GL_BUFFER_SIZE_ARB 0x8764 -#define GL_BUFFER_USAGE_ARB 0x8765 -#define GL_ARRAY_BUFFER_ARB 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define GL_READ_ONLY_ARB 0x88B8 -#define GL_WRITE_ONLY_ARB 0x88B9 -#define GL_READ_WRITE_ARB 0x88BA -#define GL_BUFFER_ACCESS_ARB 0x88BB -#define GL_BUFFER_MAPPED_ARB 0x88BC -#define GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define GL_STREAM_DRAW_ARB 0x88E0 -#define GL_STREAM_READ_ARB 0x88E1 -#define GL_STREAM_COPY_ARB 0x88E2 -#define GL_STATIC_DRAW_ARB 0x88E4 -#define GL_STATIC_READ_ARB 0x88E5 -#define GL_STATIC_COPY_ARB 0x88E6 -#define GL_DYNAMIC_DRAW_ARB 0x88E8 -#define GL_DYNAMIC_READ_ARB 0x88E9 -#define GL_DYNAMIC_COPY_ARB 0x88EA -typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); -typedef void *(APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindBufferARB (GLenum target, GLuint buffer); -GLAPI void APIENTRY glDeleteBuffersARB (GLsizei n, const GLuint *buffers); -GLAPI void APIENTRY glGenBuffersARB (GLsizei n, GLuint *buffers); -GLAPI GLboolean APIENTRY glIsBufferARB (GLuint buffer); -GLAPI void APIENTRY glBufferDataARB (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); -GLAPI void APIENTRY glBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); -GLAPI void APIENTRY glGetBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); -GLAPI void *APIENTRY glMapBufferARB (GLenum target, GLenum access); -GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum target); -GLAPI void APIENTRY glGetBufferParameterivARB (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetBufferPointervARB (GLenum target, GLenum pname, void **params); -#endif -#endif /* GL_ARB_vertex_buffer_object */ - -#ifndef GL_ARB_vertex_program -#define GL_ARB_vertex_program 1 -#define GL_COLOR_SUM_ARB 0x8458 -#define GL_VERTEX_PROGRAM_ARB 0x8620 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void **pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttrib1dARB (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1fARB (GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1sARB (GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2dARB (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2fARB (GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2sARB (GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3sARB (GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4sARB (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribPointerARB (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint index); -GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint index); -GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribivARB (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint index, GLenum pname, void **pointer); -#endif -#endif /* GL_ARB_vertex_program */ - -#ifndef GL_ARB_vertex_shader -#define GL_ARB_vertex_shader 1 -#define GL_VERTEX_SHADER_ARB 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB programObj, GLuint index, const GLcharARB *name); -GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB programObj, const GLcharARB *name); -#endif -#endif /* GL_ARB_vertex_shader */ - -#ifndef GL_ARB_vertex_type_10f_11f_11f_rev -#define GL_ARB_vertex_type_10f_11f_11f_rev 1 -#endif /* GL_ARB_vertex_type_10f_11f_11f_rev */ - -#ifndef GL_ARB_vertex_type_2_10_10_10_rev -#define GL_ARB_vertex_type_2_10_10_10_rev 1 -#endif /* GL_ARB_vertex_type_2_10_10_10_rev */ - -#ifndef GL_ARB_viewport_array -#define GL_ARB_viewport_array 1 -typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYDVNVPROC) (GLuint first, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDDNVPROC) (GLuint index, GLdouble n, GLdouble f); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthRangeArraydvNV (GLuint first, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glDepthRangeIndexeddNV (GLuint index, GLdouble n, GLdouble f); -#endif -#endif /* GL_ARB_viewport_array */ - -#ifndef GL_ARB_window_pos -#define GL_ARB_window_pos 1 -typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dARB (GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *v); -GLAPI void APIENTRY glWindowPos2fARB (GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *v); -GLAPI void APIENTRY glWindowPos2iARB (GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2ivARB (const GLint *v); -GLAPI void APIENTRY glWindowPos2sARB (GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2svARB (const GLshort *v); -GLAPI void APIENTRY glWindowPos3dARB (GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *v); -GLAPI void APIENTRY glWindowPos3fARB (GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *v); -GLAPI void APIENTRY glWindowPos3iARB (GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3ivARB (const GLint *v); -GLAPI void APIENTRY glWindowPos3sARB (GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3svARB (const GLshort *v); -#endif -#endif /* GL_ARB_window_pos */ - -#ifndef GL_KHR_blend_equation_advanced -#define GL_KHR_blend_equation_advanced 1 -#define GL_MULTIPLY_KHR 0x9294 -#define GL_SCREEN_KHR 0x9295 -#define GL_OVERLAY_KHR 0x9296 -#define GL_DARKEN_KHR 0x9297 -#define GL_LIGHTEN_KHR 0x9298 -#define GL_COLORDODGE_KHR 0x9299 -#define GL_COLORBURN_KHR 0x929A -#define GL_HARDLIGHT_KHR 0x929B -#define GL_SOFTLIGHT_KHR 0x929C -#define GL_DIFFERENCE_KHR 0x929E -#define GL_EXCLUSION_KHR 0x92A0 -#define GL_HSL_HUE_KHR 0x92AD -#define GL_HSL_SATURATION_KHR 0x92AE -#define GL_HSL_COLOR_KHR 0x92AF -#define GL_HSL_LUMINOSITY_KHR 0x92B0 -typedef void (APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendBarrierKHR (void); -#endif -#endif /* GL_KHR_blend_equation_advanced */ - -#ifndef GL_KHR_blend_equation_advanced_coherent -#define GL_KHR_blend_equation_advanced_coherent 1 -#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 -#endif /* GL_KHR_blend_equation_advanced_coherent */ - -#ifndef GL_KHR_context_flush_control -#define GL_KHR_context_flush_control 1 -#endif /* GL_KHR_context_flush_control */ - -#ifndef GL_KHR_debug -#define GL_KHR_debug 1 -#endif /* GL_KHR_debug */ - -#ifndef GL_KHR_no_error -#define GL_KHR_no_error 1 -#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008 -#endif /* GL_KHR_no_error */ - -#ifndef GL_KHR_parallel_shader_compile -#define GL_KHR_parallel_shader_compile 1 -#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0 -#define GL_COMPLETION_STATUS_KHR 0x91B1 -typedef void (APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMaxShaderCompilerThreadsKHR (GLuint count); -#endif -#endif /* GL_KHR_parallel_shader_compile */ - -#ifndef GL_KHR_robust_buffer_access_behavior -#define GL_KHR_robust_buffer_access_behavior 1 -#endif /* GL_KHR_robust_buffer_access_behavior */ - -#ifndef GL_KHR_robustness -#define GL_KHR_robustness 1 -#define GL_CONTEXT_ROBUST_ACCESS 0x90F3 -#endif /* GL_KHR_robustness */ - -#ifndef GL_KHR_shader_subgroup -#define GL_KHR_shader_subgroup 1 -#define GL_SUBGROUP_SIZE_KHR 0x9532 -#define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533 -#define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534 -#define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535 -#define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001 -#define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002 -#define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004 -#define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008 -#define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010 -#define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020 -#define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040 -#define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080 -#endif /* GL_KHR_shader_subgroup */ - -#ifndef GL_KHR_texture_compression_astc_hdr -#define GL_KHR_texture_compression_astc_hdr 1 -#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 -#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 -#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 -#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 -#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 -#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 -#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 -#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 -#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 -#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 -#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA -#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB -#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC -#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD -#endif /* GL_KHR_texture_compression_astc_hdr */ - -#ifndef GL_KHR_texture_compression_astc_ldr -#define GL_KHR_texture_compression_astc_ldr 1 -#endif /* GL_KHR_texture_compression_astc_ldr */ - -#ifndef GL_KHR_texture_compression_astc_sliced_3d -#define GL_KHR_texture_compression_astc_sliced_3d 1 -#endif /* GL_KHR_texture_compression_astc_sliced_3d */ - -#ifndef GL_OES_byte_coordinates -#define GL_OES_byte_coordinates 1 -typedef void (APIENTRYP PFNGLMULTITEXCOORD1BOESPROC) (GLenum texture, GLbyte s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1BVOESPROC) (GLenum texture, const GLbyte *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2BOESPROC) (GLenum texture, GLbyte s, GLbyte t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2BVOESPROC) (GLenum texture, const GLbyte *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3BOESPROC) (GLenum texture, GLbyte s, GLbyte t, GLbyte r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3BVOESPROC) (GLenum texture, const GLbyte *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4BOESPROC) (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4BVOESPROC) (GLenum texture, const GLbyte *coords); -typedef void (APIENTRYP PFNGLTEXCOORD1BOESPROC) (GLbyte s); -typedef void (APIENTRYP PFNGLTEXCOORD1BVOESPROC) (const GLbyte *coords); -typedef void (APIENTRYP PFNGLTEXCOORD2BOESPROC) (GLbyte s, GLbyte t); -typedef void (APIENTRYP PFNGLTEXCOORD2BVOESPROC) (const GLbyte *coords); -typedef void (APIENTRYP PFNGLTEXCOORD3BOESPROC) (GLbyte s, GLbyte t, GLbyte r); -typedef void (APIENTRYP PFNGLTEXCOORD3BVOESPROC) (const GLbyte *coords); -typedef void (APIENTRYP PFNGLTEXCOORD4BOESPROC) (GLbyte s, GLbyte t, GLbyte r, GLbyte q); -typedef void (APIENTRYP PFNGLTEXCOORD4BVOESPROC) (const GLbyte *coords); -typedef void (APIENTRYP PFNGLVERTEX2BOESPROC) (GLbyte x, GLbyte y); -typedef void (APIENTRYP PFNGLVERTEX2BVOESPROC) (const GLbyte *coords); -typedef void (APIENTRYP PFNGLVERTEX3BOESPROC) (GLbyte x, GLbyte y, GLbyte z); -typedef void (APIENTRYP PFNGLVERTEX3BVOESPROC) (const GLbyte *coords); -typedef void (APIENTRYP PFNGLVERTEX4BOESPROC) (GLbyte x, GLbyte y, GLbyte z, GLbyte w); -typedef void (APIENTRYP PFNGLVERTEX4BVOESPROC) (const GLbyte *coords); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiTexCoord1bOES (GLenum texture, GLbyte s); -GLAPI void APIENTRY glMultiTexCoord1bvOES (GLenum texture, const GLbyte *coords); -GLAPI void APIENTRY glMultiTexCoord2bOES (GLenum texture, GLbyte s, GLbyte t); -GLAPI void APIENTRY glMultiTexCoord2bvOES (GLenum texture, const GLbyte *coords); -GLAPI void APIENTRY glMultiTexCoord3bOES (GLenum texture, GLbyte s, GLbyte t, GLbyte r); -GLAPI void APIENTRY glMultiTexCoord3bvOES (GLenum texture, const GLbyte *coords); -GLAPI void APIENTRY glMultiTexCoord4bOES (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q); -GLAPI void APIENTRY glMultiTexCoord4bvOES (GLenum texture, const GLbyte *coords); -GLAPI void APIENTRY glTexCoord1bOES (GLbyte s); -GLAPI void APIENTRY glTexCoord1bvOES (const GLbyte *coords); -GLAPI void APIENTRY glTexCoord2bOES (GLbyte s, GLbyte t); -GLAPI void APIENTRY glTexCoord2bvOES (const GLbyte *coords); -GLAPI void APIENTRY glTexCoord3bOES (GLbyte s, GLbyte t, GLbyte r); -GLAPI void APIENTRY glTexCoord3bvOES (const GLbyte *coords); -GLAPI void APIENTRY glTexCoord4bOES (GLbyte s, GLbyte t, GLbyte r, GLbyte q); -GLAPI void APIENTRY glTexCoord4bvOES (const GLbyte *coords); -GLAPI void APIENTRY glVertex2bOES (GLbyte x, GLbyte y); -GLAPI void APIENTRY glVertex2bvOES (const GLbyte *coords); -GLAPI void APIENTRY glVertex3bOES (GLbyte x, GLbyte y, GLbyte z); -GLAPI void APIENTRY glVertex3bvOES (const GLbyte *coords); -GLAPI void APIENTRY glVertex4bOES (GLbyte x, GLbyte y, GLbyte z, GLbyte w); -GLAPI void APIENTRY glVertex4bvOES (const GLbyte *coords); -#endif -#endif /* GL_OES_byte_coordinates */ - -#ifndef GL_OES_compressed_paletted_texture -#define GL_OES_compressed_paletted_texture 1 -#define GL_PALETTE4_RGB8_OES 0x8B90 -#define GL_PALETTE4_RGBA8_OES 0x8B91 -#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 -#define GL_PALETTE4_RGBA4_OES 0x8B93 -#define GL_PALETTE4_RGB5_A1_OES 0x8B94 -#define GL_PALETTE8_RGB8_OES 0x8B95 -#define GL_PALETTE8_RGBA8_OES 0x8B96 -#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 -#define GL_PALETTE8_RGBA4_OES 0x8B98 -#define GL_PALETTE8_RGB5_A1_OES 0x8B99 -#endif /* GL_OES_compressed_paletted_texture */ - -#ifndef GL_OES_fixed_point -#define GL_OES_fixed_point 1 -typedef khronos_int32_t GLfixed; -#define GL_FIXED_OES 0x140C -typedef void (APIENTRYP PFNGLALPHAFUNCXOESPROC) (GLenum func, GLfixed ref); -typedef void (APIENTRYP PFNGLCLEARCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (APIENTRYP PFNGLCLEARDEPTHXOESPROC) (GLfixed depth); -typedef void (APIENTRYP PFNGLCLIPPLANEXOESPROC) (GLenum plane, const GLfixed *equation); -typedef void (APIENTRYP PFNGLCOLOR4XOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (APIENTRYP PFNGLDEPTHRANGEXOESPROC) (GLfixed n, GLfixed f); -typedef void (APIENTRYP PFNGLFOGXOESPROC) (GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLFOGXVOESPROC) (GLenum pname, const GLfixed *param); -typedef void (APIENTRYP PFNGLFRUSTUMXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -typedef void (APIENTRYP PFNGLGETCLIPPLANEXOESPROC) (GLenum plane, GLfixed *equation); -typedef void (APIENTRYP PFNGLGETFIXEDVOESPROC) (GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLGETTEXENVXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLLIGHTMODELXOESPROC) (GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLLIGHTMODELXVOESPROC) (GLenum pname, const GLfixed *param); -typedef void (APIENTRYP PFNGLLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLLIGHTXVOESPROC) (GLenum light, GLenum pname, const GLfixed *params); -typedef void (APIENTRYP PFNGLLINEWIDTHXOESPROC) (GLfixed width); -typedef void (APIENTRYP PFNGLLOADMATRIXXOESPROC) (const GLfixed *m); -typedef void (APIENTRYP PFNGLMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLMATERIALXVOESPROC) (GLenum face, GLenum pname, const GLfixed *param); -typedef void (APIENTRYP PFNGLMULTMATRIXXOESPROC) (const GLfixed *m); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -typedef void (APIENTRYP PFNGLNORMAL3XOESPROC) (GLfixed nx, GLfixed ny, GLfixed nz); -typedef void (APIENTRYP PFNGLORTHOXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -typedef void (APIENTRYP PFNGLPOINTPARAMETERXVOESPROC) (GLenum pname, const GLfixed *params); -typedef void (APIENTRYP PFNGLPOINTSIZEXOESPROC) (GLfixed size); -typedef void (APIENTRYP PFNGLPOLYGONOFFSETXOESPROC) (GLfixed factor, GLfixed units); -typedef void (APIENTRYP PFNGLROTATEXOESPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -typedef void (APIENTRYP PFNGLSCALEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (APIENTRYP PFNGLTEXENVXOESPROC) (GLenum target, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLTEXENVXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); -typedef void (APIENTRYP PFNGLTRANSLATEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (APIENTRYP PFNGLACCUMXOESPROC) (GLenum op, GLfixed value); -typedef void (APIENTRYP PFNGLBITMAPXOESPROC) (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap); -typedef void (APIENTRYP PFNGLBLENDCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (APIENTRYP PFNGLCLEARACCUMXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (APIENTRYP PFNGLCOLOR3XOESPROC) (GLfixed red, GLfixed green, GLfixed blue); -typedef void (APIENTRYP PFNGLCOLOR3XVOESPROC) (const GLfixed *components); -typedef void (APIENTRYP PFNGLCOLOR4XVOESPROC) (const GLfixed *components); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); -typedef void (APIENTRYP PFNGLEVALCOORD1XOESPROC) (GLfixed u); -typedef void (APIENTRYP PFNGLEVALCOORD1XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLEVALCOORD2XOESPROC) (GLfixed u, GLfixed v); -typedef void (APIENTRYP PFNGLEVALCOORD2XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLFEEDBACKBUFFERXOESPROC) (GLsizei n, GLenum type, const GLfixed *buffer); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLGETLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLGETMAPXVOESPROC) (GLenum target, GLenum query, GLfixed *v); -typedef void (APIENTRYP PFNGLGETMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLGETPIXELMAPXVPROC) (GLenum map, GLint size, GLfixed *values); -typedef void (APIENTRYP PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERXVOESPROC) (GLenum target, GLint level, GLenum pname, GLfixed *params); -typedef void (APIENTRYP PFNGLINDEXXOESPROC) (GLfixed component); -typedef void (APIENTRYP PFNGLINDEXXVOESPROC) (const GLfixed *component); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXXOESPROC) (const GLfixed *m); -typedef void (APIENTRYP PFNGLMAP1XOESPROC) (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points); -typedef void (APIENTRYP PFNGLMAP2XOESPROC) (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points); -typedef void (APIENTRYP PFNGLMAPGRID1XOESPROC) (GLint n, GLfixed u1, GLfixed u2); -typedef void (APIENTRYP PFNGLMAPGRID2XOESPROC) (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXXOESPROC) (const GLfixed *m); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1XOESPROC) (GLenum texture, GLfixed s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1XVOESPROC) (GLenum texture, const GLfixed *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2XOESPROC) (GLenum texture, GLfixed s, GLfixed t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2XVOESPROC) (GLenum texture, const GLfixed *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3XVOESPROC) (GLenum texture, const GLfixed *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4XVOESPROC) (GLenum texture, const GLfixed *coords); -typedef void (APIENTRYP PFNGLNORMAL3XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLPASSTHROUGHXOESPROC) (GLfixed token); -typedef void (APIENTRYP PFNGLPIXELMAPXPROC) (GLenum map, GLint size, const GLfixed *values); -typedef void (APIENTRYP PFNGLPIXELSTOREXPROC) (GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLPIXELTRANSFERXOESPROC) (GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLPIXELZOOMXOESPROC) (GLfixed xfactor, GLfixed yfactor); -typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESXOESPROC) (GLsizei n, const GLuint *textures, const GLfixed *priorities); -typedef void (APIENTRYP PFNGLRASTERPOS2XOESPROC) (GLfixed x, GLfixed y); -typedef void (APIENTRYP PFNGLRASTERPOS2XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLRASTERPOS3XOESPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (APIENTRYP PFNGLRASTERPOS3XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLRASTERPOS4XOESPROC) (GLfixed x, GLfixed y, GLfixed z, GLfixed w); -typedef void (APIENTRYP PFNGLRASTERPOS4XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLRECTXOESPROC) (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2); -typedef void (APIENTRYP PFNGLRECTXVOESPROC) (const GLfixed *v1, const GLfixed *v2); -typedef void (APIENTRYP PFNGLTEXCOORD1XOESPROC) (GLfixed s); -typedef void (APIENTRYP PFNGLTEXCOORD1XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLTEXCOORD2XOESPROC) (GLfixed s, GLfixed t); -typedef void (APIENTRYP PFNGLTEXCOORD2XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLTEXCOORD3XOESPROC) (GLfixed s, GLfixed t, GLfixed r); -typedef void (APIENTRYP PFNGLTEXCOORD3XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLTEXCOORD4XOESPROC) (GLfixed s, GLfixed t, GLfixed r, GLfixed q); -typedef void (APIENTRYP PFNGLTEXCOORD4XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param); -typedef void (APIENTRYP PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params); -typedef void (APIENTRYP PFNGLVERTEX2XOESPROC) (GLfixed x); -typedef void (APIENTRYP PFNGLVERTEX2XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLVERTEX3XOESPROC) (GLfixed x, GLfixed y); -typedef void (APIENTRYP PFNGLVERTEX3XVOESPROC) (const GLfixed *coords); -typedef void (APIENTRYP PFNGLVERTEX4XOESPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (APIENTRYP PFNGLVERTEX4XVOESPROC) (const GLfixed *coords); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glAlphaFuncxOES (GLenum func, GLfixed ref); -GLAPI void APIENTRY glClearColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GLAPI void APIENTRY glClearDepthxOES (GLfixed depth); -GLAPI void APIENTRY glClipPlanexOES (GLenum plane, const GLfixed *equation); -GLAPI void APIENTRY glColor4xOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GLAPI void APIENTRY glDepthRangexOES (GLfixed n, GLfixed f); -GLAPI void APIENTRY glFogxOES (GLenum pname, GLfixed param); -GLAPI void APIENTRY glFogxvOES (GLenum pname, const GLfixed *param); -GLAPI void APIENTRY glFrustumxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -GLAPI void APIENTRY glGetClipPlanexOES (GLenum plane, GLfixed *equation); -GLAPI void APIENTRY glGetFixedvOES (GLenum pname, GLfixed *params); -GLAPI void APIENTRY glGetTexEnvxvOES (GLenum target, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glGetTexParameterxvOES (GLenum target, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glLightModelxOES (GLenum pname, GLfixed param); -GLAPI void APIENTRY glLightModelxvOES (GLenum pname, const GLfixed *param); -GLAPI void APIENTRY glLightxOES (GLenum light, GLenum pname, GLfixed param); -GLAPI void APIENTRY glLightxvOES (GLenum light, GLenum pname, const GLfixed *params); -GLAPI void APIENTRY glLineWidthxOES (GLfixed width); -GLAPI void APIENTRY glLoadMatrixxOES (const GLfixed *m); -GLAPI void APIENTRY glMaterialxOES (GLenum face, GLenum pname, GLfixed param); -GLAPI void APIENTRY glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *param); -GLAPI void APIENTRY glMultMatrixxOES (const GLfixed *m); -GLAPI void APIENTRY glMultiTexCoord4xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -GLAPI void APIENTRY glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz); -GLAPI void APIENTRY glOrthoxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -GLAPI void APIENTRY glPointParameterxvOES (GLenum pname, const GLfixed *params); -GLAPI void APIENTRY glPointSizexOES (GLfixed size); -GLAPI void APIENTRY glPolygonOffsetxOES (GLfixed factor, GLfixed units); -GLAPI void APIENTRY glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -GLAPI void APIENTRY glScalexOES (GLfixed x, GLfixed y, GLfixed z); -GLAPI void APIENTRY glTexEnvxOES (GLenum target, GLenum pname, GLfixed param); -GLAPI void APIENTRY glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params); -GLAPI void APIENTRY glTexParameterxOES (GLenum target, GLenum pname, GLfixed param); -GLAPI void APIENTRY glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); -GLAPI void APIENTRY glTranslatexOES (GLfixed x, GLfixed y, GLfixed z); -GLAPI void APIENTRY glAccumxOES (GLenum op, GLfixed value); -GLAPI void APIENTRY glBitmapxOES (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap); -GLAPI void APIENTRY glBlendColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GLAPI void APIENTRY glClearAccumxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GLAPI void APIENTRY glColor3xOES (GLfixed red, GLfixed green, GLfixed blue); -GLAPI void APIENTRY glColor3xvOES (const GLfixed *components); -GLAPI void APIENTRY glColor4xvOES (const GLfixed *components); -GLAPI void APIENTRY glConvolutionParameterxOES (GLenum target, GLenum pname, GLfixed param); -GLAPI void APIENTRY glConvolutionParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); -GLAPI void APIENTRY glEvalCoord1xOES (GLfixed u); -GLAPI void APIENTRY glEvalCoord1xvOES (const GLfixed *coords); -GLAPI void APIENTRY glEvalCoord2xOES (GLfixed u, GLfixed v); -GLAPI void APIENTRY glEvalCoord2xvOES (const GLfixed *coords); -GLAPI void APIENTRY glFeedbackBufferxOES (GLsizei n, GLenum type, const GLfixed *buffer); -GLAPI void APIENTRY glGetConvolutionParameterxvOES (GLenum target, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glGetHistogramParameterxvOES (GLenum target, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glGetLightxOES (GLenum light, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glGetMapxvOES (GLenum target, GLenum query, GLfixed *v); -GLAPI void APIENTRY glGetMaterialxOES (GLenum face, GLenum pname, GLfixed param); -GLAPI void APIENTRY glGetPixelMapxv (GLenum map, GLint size, GLfixed *values); -GLAPI void APIENTRY glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glGetTexLevelParameterxvOES (GLenum target, GLint level, GLenum pname, GLfixed *params); -GLAPI void APIENTRY glIndexxOES (GLfixed component); -GLAPI void APIENTRY glIndexxvOES (const GLfixed *component); -GLAPI void APIENTRY glLoadTransposeMatrixxOES (const GLfixed *m); -GLAPI void APIENTRY glMap1xOES (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points); -GLAPI void APIENTRY glMap2xOES (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points); -GLAPI void APIENTRY glMapGrid1xOES (GLint n, GLfixed u1, GLfixed u2); -GLAPI void APIENTRY glMapGrid2xOES (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2); -GLAPI void APIENTRY glMultTransposeMatrixxOES (const GLfixed *m); -GLAPI void APIENTRY glMultiTexCoord1xOES (GLenum texture, GLfixed s); -GLAPI void APIENTRY glMultiTexCoord1xvOES (GLenum texture, const GLfixed *coords); -GLAPI void APIENTRY glMultiTexCoord2xOES (GLenum texture, GLfixed s, GLfixed t); -GLAPI void APIENTRY glMultiTexCoord2xvOES (GLenum texture, const GLfixed *coords); -GLAPI void APIENTRY glMultiTexCoord3xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r); -GLAPI void APIENTRY glMultiTexCoord3xvOES (GLenum texture, const GLfixed *coords); -GLAPI void APIENTRY glMultiTexCoord4xvOES (GLenum texture, const GLfixed *coords); -GLAPI void APIENTRY glNormal3xvOES (const GLfixed *coords); -GLAPI void APIENTRY glPassThroughxOES (GLfixed token); -GLAPI void APIENTRY glPixelMapx (GLenum map, GLint size, const GLfixed *values); -GLAPI void APIENTRY glPixelStorex (GLenum pname, GLfixed param); -GLAPI void APIENTRY glPixelTransferxOES (GLenum pname, GLfixed param); -GLAPI void APIENTRY glPixelZoomxOES (GLfixed xfactor, GLfixed yfactor); -GLAPI void APIENTRY glPrioritizeTexturesxOES (GLsizei n, const GLuint *textures, const GLfixed *priorities); -GLAPI void APIENTRY glRasterPos2xOES (GLfixed x, GLfixed y); -GLAPI void APIENTRY glRasterPos2xvOES (const GLfixed *coords); -GLAPI void APIENTRY glRasterPos3xOES (GLfixed x, GLfixed y, GLfixed z); -GLAPI void APIENTRY glRasterPos3xvOES (const GLfixed *coords); -GLAPI void APIENTRY glRasterPos4xOES (GLfixed x, GLfixed y, GLfixed z, GLfixed w); -GLAPI void APIENTRY glRasterPos4xvOES (const GLfixed *coords); -GLAPI void APIENTRY glRectxOES (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2); -GLAPI void APIENTRY glRectxvOES (const GLfixed *v1, const GLfixed *v2); -GLAPI void APIENTRY glTexCoord1xOES (GLfixed s); -GLAPI void APIENTRY glTexCoord1xvOES (const GLfixed *coords); -GLAPI void APIENTRY glTexCoord2xOES (GLfixed s, GLfixed t); -GLAPI void APIENTRY glTexCoord2xvOES (const GLfixed *coords); -GLAPI void APIENTRY glTexCoord3xOES (GLfixed s, GLfixed t, GLfixed r); -GLAPI void APIENTRY glTexCoord3xvOES (const GLfixed *coords); -GLAPI void APIENTRY glTexCoord4xOES (GLfixed s, GLfixed t, GLfixed r, GLfixed q); -GLAPI void APIENTRY glTexCoord4xvOES (const GLfixed *coords); -GLAPI void APIENTRY glTexGenxOES (GLenum coord, GLenum pname, GLfixed param); -GLAPI void APIENTRY glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed *params); -GLAPI void APIENTRY glVertex2xOES (GLfixed x); -GLAPI void APIENTRY glVertex2xvOES (const GLfixed *coords); -GLAPI void APIENTRY glVertex3xOES (GLfixed x, GLfixed y); -GLAPI void APIENTRY glVertex3xvOES (const GLfixed *coords); -GLAPI void APIENTRY glVertex4xOES (GLfixed x, GLfixed y, GLfixed z); -GLAPI void APIENTRY glVertex4xvOES (const GLfixed *coords); -#endif -#endif /* GL_OES_fixed_point */ - -#ifndef GL_OES_query_matrix -#define GL_OES_query_matrix 1 -typedef GLbitfield (APIENTRYP PFNGLQUERYMATRIXXOESPROC) (GLfixed *mantissa, GLint *exponent); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLbitfield APIENTRY glQueryMatrixxOES (GLfixed *mantissa, GLint *exponent); -#endif -#endif /* GL_OES_query_matrix */ - -#ifndef GL_OES_read_format -#define GL_OES_read_format 1 -#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B -#endif /* GL_OES_read_format */ - -#ifndef GL_OES_single_precision -#define GL_OES_single_precision 1 -typedef void (APIENTRYP PFNGLCLEARDEPTHFOESPROC) (GLclampf depth); -typedef void (APIENTRYP PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat *equation); -typedef void (APIENTRYP PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); -typedef void (APIENTRYP PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -typedef void (APIENTRYP PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat *equation); -typedef void (APIENTRYP PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClearDepthfOES (GLclampf depth); -GLAPI void APIENTRY glClipPlanefOES (GLenum plane, const GLfloat *equation); -GLAPI void APIENTRY glDepthRangefOES (GLclampf n, GLclampf f); -GLAPI void APIENTRY glFrustumfOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -GLAPI void APIENTRY glGetClipPlanefOES (GLenum plane, GLfloat *equation); -GLAPI void APIENTRY glOrthofOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -#endif -#endif /* GL_OES_single_precision */ - -#ifndef GL_3DFX_multisample -#define GL_3DFX_multisample 1 -#define GL_MULTISAMPLE_3DFX 0x86B2 -#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define GL_SAMPLES_3DFX 0x86B4 -#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 -#endif /* GL_3DFX_multisample */ - -#ifndef GL_3DFX_tbuffer -#define GL_3DFX_tbuffer 1 -typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTbufferMask3DFX (GLuint mask); -#endif -#endif /* GL_3DFX_tbuffer */ - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_3DFX_texture_compression_FXT1 1 -#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 -#endif /* GL_3DFX_texture_compression_FXT1 */ - -#ifndef GL_AMD_blend_minmax_factor -#define GL_AMD_blend_minmax_factor 1 -#define GL_FACTOR_MIN_AMD 0x901C -#define GL_FACTOR_MAX_AMD 0x901D -#endif /* GL_AMD_blend_minmax_factor */ - -#ifndef GL_AMD_conservative_depth -#define GL_AMD_conservative_depth 1 -#endif /* GL_AMD_conservative_depth */ - -#ifndef GL_AMD_debug_output -#define GL_AMD_debug_output 1 -typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); -#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 -#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 -#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 -#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A -#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B -#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C -#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D -#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E -#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F -#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 -typedef void (APIENTRYP PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); -typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam); -typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufSize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDebugMessageEnableAMD (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GLAPI void APIENTRY glDebugMessageInsertAMD (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); -GLAPI void APIENTRY glDebugMessageCallbackAMD (GLDEBUGPROCAMD callback, void *userParam); -GLAPI GLuint APIENTRY glGetDebugMessageLogAMD (GLuint count, GLsizei bufSize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); -#endif -#endif /* GL_AMD_debug_output */ - -#ifndef GL_AMD_depth_clamp_separate -#define GL_AMD_depth_clamp_separate 1 -#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E -#define GL_DEPTH_CLAMP_FAR_AMD 0x901F -#endif /* GL_AMD_depth_clamp_separate */ - -#ifndef GL_AMD_draw_buffers_blend -#define GL_AMD_draw_buffers_blend 1 -typedef void (APIENTRYP PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncIndexedAMD (GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparateIndexedAMD (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GLAPI void APIENTRY glBlendEquationIndexedAMD (GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -#endif -#endif /* GL_AMD_draw_buffers_blend */ - -#ifndef GL_AMD_framebuffer_multisample_advanced -#define GL_AMD_framebuffer_multisample_advanced 1 -#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2 -#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3 -#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4 -#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5 -#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6 -#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7 -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleAdvancedAMD (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleAdvancedAMD (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_AMD_framebuffer_multisample_advanced */ - -#ifndef GL_AMD_framebuffer_sample_positions -#define GL_AMD_framebuffer_sample_positions 1 -#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F -#define GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD 0x91AE -#define GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD 0x91AF -#define GL_ALL_PIXELS_AMD 0xFFFFFFFF -typedef void (APIENTRYP PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat *values); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat *values); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC) (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); -typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC) (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFramebufferSamplePositionsfvAMD (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat *values); -GLAPI void APIENTRY glNamedFramebufferSamplePositionsfvAMD (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat *values); -GLAPI void APIENTRY glGetFramebufferParameterfvAMD (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); -GLAPI void APIENTRY glGetNamedFramebufferParameterfvAMD (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); -#endif -#endif /* GL_AMD_framebuffer_sample_positions */ - -#ifndef GL_AMD_gcn_shader -#define GL_AMD_gcn_shader 1 -#endif /* GL_AMD_gcn_shader */ - -#ifndef GL_AMD_gpu_shader_half_float -#define GL_AMD_gpu_shader_half_float 1 -#define GL_FLOAT16_NV 0x8FF8 -#define GL_FLOAT16_VEC2_NV 0x8FF9 -#define GL_FLOAT16_VEC3_NV 0x8FFA -#define GL_FLOAT16_VEC4_NV 0x8FFB -#define GL_FLOAT16_MAT2_AMD 0x91C5 -#define GL_FLOAT16_MAT3_AMD 0x91C6 -#define GL_FLOAT16_MAT4_AMD 0x91C7 -#define GL_FLOAT16_MAT2x3_AMD 0x91C8 -#define GL_FLOAT16_MAT2x4_AMD 0x91C9 -#define GL_FLOAT16_MAT3x2_AMD 0x91CA -#define GL_FLOAT16_MAT3x4_AMD 0x91CB -#define GL_FLOAT16_MAT4x2_AMD 0x91CC -#define GL_FLOAT16_MAT4x3_AMD 0x91CD -#endif /* GL_AMD_gpu_shader_half_float */ - -#ifndef GL_AMD_gpu_shader_int16 -#define GL_AMD_gpu_shader_int16 1 -#endif /* GL_AMD_gpu_shader_int16 */ - -#ifndef GL_AMD_gpu_shader_int64 -#define GL_AMD_gpu_shader_int64 1 -typedef khronos_int64_t GLint64EXT; -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F -#define GL_INT8_NV 0x8FE0 -#define GL_INT8_VEC2_NV 0x8FE1 -#define GL_INT8_VEC3_NV 0x8FE2 -#define GL_INT8_VEC4_NV 0x8FE3 -#define GL_INT16_NV 0x8FE4 -#define GL_INT16_VEC2_NV 0x8FE5 -#define GL_INT16_VEC3_NV 0x8FE6 -#define GL_INT16_VEC4_NV 0x8FE7 -#define GL_INT64_VEC2_NV 0x8FE9 -#define GL_INT64_VEC3_NV 0x8FEA -#define GL_INT64_VEC4_NV 0x8FEB -#define GL_UNSIGNED_INT8_NV 0x8FEC -#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED -#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE -#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF -#define GL_UNSIGNED_INT16_NV 0x8FF0 -#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 -#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 -#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 -#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 -#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 -#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 -typedef void (APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); -typedef void (APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); -typedef void (APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); -typedef void (APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniform1i64NV (GLint location, GLint64EXT x); -GLAPI void APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x); -GLAPI void APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params); -GLAPI void APIENTRY glGetUniformui64vNV (GLuint program, GLint location, GLuint64EXT *params); -GLAPI void APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x); -GLAPI void APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x); -GLAPI void APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif -#endif /* GL_AMD_gpu_shader_int64 */ - -#ifndef GL_AMD_interleaved_elements -#define GL_AMD_interleaved_elements 1 -#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4 -#define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5 -typedef void (APIENTRYP PFNGLVERTEXATTRIBPARAMETERIAMDPROC) (GLuint index, GLenum pname, GLint param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribParameteriAMD (GLuint index, GLenum pname, GLint param); -#endif -#endif /* GL_AMD_interleaved_elements */ - -#ifndef GL_AMD_multi_draw_indirect -#define GL_AMD_multi_draw_indirect 1 -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysIndirectAMD (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); -GLAPI void APIENTRY glMultiDrawElementsIndirectAMD (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); -#endif -#endif /* GL_AMD_multi_draw_indirect */ - -#ifndef GL_AMD_name_gen_delete -#define GL_AMD_name_gen_delete 1 -#define GL_DATA_BUFFER_AMD 0x9151 -#define GL_PERFORMANCE_MONITOR_AMD 0x9152 -#define GL_QUERY_OBJECT_AMD 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 -#define GL_SAMPLER_OBJECT_AMD 0x9155 -typedef void (APIENTRYP PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint *names); -typedef void (APIENTRYP PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint *names); -typedef GLboolean (APIENTRYP PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenNamesAMD (GLenum identifier, GLuint num, GLuint *names); -GLAPI void APIENTRY glDeleteNamesAMD (GLenum identifier, GLuint num, const GLuint *names); -GLAPI GLboolean APIENTRY glIsNameAMD (GLenum identifier, GLuint name); -#endif -#endif /* GL_AMD_name_gen_delete */ - -#ifndef GL_AMD_occlusion_query_event -#define GL_AMD_occlusion_query_event 1 -#define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F -#define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001 -#define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002 -#define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004 -#define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008 -#define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF -typedef void (APIENTRYP PFNGLQUERYOBJECTPARAMETERUIAMDPROC) (GLenum target, GLuint id, GLenum pname, GLuint param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glQueryObjectParameteruiAMD (GLenum target, GLuint id, GLenum pname, GLuint param); -#endif -#endif /* GL_AMD_occlusion_query_event */ - -#ifndef GL_AMD_performance_monitor -#define GL_AMD_performance_monitor 1 -#define GL_COUNTER_TYPE_AMD 0x8BC0 -#define GL_COUNTER_RANGE_AMD 0x8BC1 -#define GL_UNSIGNED_INT64_AMD 0x8BC2 -#define GL_PERCENTAGE_AMD 0x8BC3 -#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 -#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 -#define GL_PERFMON_RESULT_AMD 0x8BC6 -typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); -typedef void (APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -typedef void (APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); -typedef void (APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -GLAPI void APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -GLAPI void APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -GLAPI void APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -GLAPI void APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data); -GLAPI void APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); -GLAPI void APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); -GLAPI void APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -GLAPI void APIENTRY glBeginPerfMonitorAMD (GLuint monitor); -GLAPI void APIENTRY glEndPerfMonitorAMD (GLuint monitor); -GLAPI void APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif -#endif /* GL_AMD_performance_monitor */ - -#ifndef GL_AMD_pinned_memory -#define GL_AMD_pinned_memory 1 -#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160 -#endif /* GL_AMD_pinned_memory */ - -#ifndef GL_AMD_query_buffer_object -#define GL_AMD_query_buffer_object 1 -#define GL_QUERY_BUFFER_AMD 0x9192 -#define GL_QUERY_BUFFER_BINDING_AMD 0x9193 -#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194 -#endif /* GL_AMD_query_buffer_object */ - -#ifndef GL_AMD_sample_positions -#define GL_AMD_sample_positions 1 -typedef void (APIENTRYP PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat *val); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLfloat *val); -#endif -#endif /* GL_AMD_sample_positions */ - -#ifndef GL_AMD_seamless_cubemap_per_texture -#define GL_AMD_seamless_cubemap_per_texture 1 -#endif /* GL_AMD_seamless_cubemap_per_texture */ - -#ifndef GL_AMD_shader_atomic_counter_ops -#define GL_AMD_shader_atomic_counter_ops 1 -#endif /* GL_AMD_shader_atomic_counter_ops */ - -#ifndef GL_AMD_shader_ballot -#define GL_AMD_shader_ballot 1 -#endif /* GL_AMD_shader_ballot */ - -#ifndef GL_AMD_shader_explicit_vertex_parameter -#define GL_AMD_shader_explicit_vertex_parameter 1 -#endif /* GL_AMD_shader_explicit_vertex_parameter */ - -#ifndef GL_AMD_shader_gpu_shader_half_float_fetch -#define GL_AMD_shader_gpu_shader_half_float_fetch 1 -#endif /* GL_AMD_shader_gpu_shader_half_float_fetch */ - -#ifndef GL_AMD_shader_image_load_store_lod -#define GL_AMD_shader_image_load_store_lod 1 -#endif /* GL_AMD_shader_image_load_store_lod */ - -#ifndef GL_AMD_shader_stencil_export -#define GL_AMD_shader_stencil_export 1 -#endif /* GL_AMD_shader_stencil_export */ - -#ifndef GL_AMD_shader_trinary_minmax -#define GL_AMD_shader_trinary_minmax 1 -#endif /* GL_AMD_shader_trinary_minmax */ - -#ifndef GL_AMD_sparse_texture -#define GL_AMD_sparse_texture 1 -#define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195 -#define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196 -#define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197 -#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198 -#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199 -#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A -#define GL_MIN_SPARSE_LEVEL_AMD 0x919B -#define GL_MIN_LOD_WARNING_AMD 0x919C -#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001 -typedef void (APIENTRYP PFNGLTEXSTORAGESPARSEAMDPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); -typedef void (APIENTRYP PFNGLTEXTURESTORAGESPARSEAMDPROC) (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexStorageSparseAMD (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); -GLAPI void APIENTRY glTextureStorageSparseAMD (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); -#endif -#endif /* GL_AMD_sparse_texture */ - -#ifndef GL_AMD_stencil_operation_extended -#define GL_AMD_stencil_operation_extended 1 -#define GL_SET_AMD 0x874A -#define GL_REPLACE_VALUE_AMD 0x874B -#define GL_STENCIL_OP_VALUE_AMD 0x874C -#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D -typedef void (APIENTRYP PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilOpValueAMD (GLenum face, GLuint value); -#endif -#endif /* GL_AMD_stencil_operation_extended */ - -#ifndef GL_AMD_texture_gather_bias_lod -#define GL_AMD_texture_gather_bias_lod 1 -#endif /* GL_AMD_texture_gather_bias_lod */ - -#ifndef GL_AMD_texture_texture4 -#define GL_AMD_texture_texture4 1 -#endif /* GL_AMD_texture_texture4 */ - -#ifndef GL_AMD_transform_feedback3_lines_triangles -#define GL_AMD_transform_feedback3_lines_triangles 1 -#endif /* GL_AMD_transform_feedback3_lines_triangles */ - -#ifndef GL_AMD_transform_feedback4 -#define GL_AMD_transform_feedback4 1 -#define GL_STREAM_RASTERIZATION_AMD 0x91A0 -#endif /* GL_AMD_transform_feedback4 */ - -#ifndef GL_AMD_vertex_shader_layer -#define GL_AMD_vertex_shader_layer 1 -#endif /* GL_AMD_vertex_shader_layer */ - -#ifndef GL_AMD_vertex_shader_tessellator -#define GL_AMD_vertex_shader_tessellator 1 -#define GL_SAMPLER_BUFFER_AMD 0x9001 -#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 -#define GL_TESSELLATION_MODE_AMD 0x9004 -#define GL_TESSELLATION_FACTOR_AMD 0x9005 -#define GL_DISCRETE_AMD 0x9006 -#define GL_CONTINUOUS_AMD 0x9007 -typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); -typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTessellationFactorAMD (GLfloat factor); -GLAPI void APIENTRY glTessellationModeAMD (GLenum mode); -#endif -#endif /* GL_AMD_vertex_shader_tessellator */ - -#ifndef GL_AMD_vertex_shader_viewport_index -#define GL_AMD_vertex_shader_viewport_index 1 -#endif /* GL_AMD_vertex_shader_viewport_index */ - -#ifndef GL_APPLE_aux_depth_stencil -#define GL_APPLE_aux_depth_stencil 1 -#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 -#endif /* GL_APPLE_aux_depth_stencil */ - -#ifndef GL_APPLE_client_storage -#define GL_APPLE_client_storage 1 -#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 -#endif /* GL_APPLE_client_storage */ - -#ifndef GL_APPLE_element_array -#define GL_APPLE_element_array 1 -#define GL_ELEMENT_ARRAY_APPLE 0x8A0C -#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D -#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E -typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerAPPLE (GLenum type, const void *pointer); -GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum mode, GLint first, GLsizei count); -GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#endif -#endif /* GL_APPLE_element_array */ - -#ifndef GL_APPLE_fence -#define GL_APPLE_fence 1 -#define GL_DRAW_PIXELS_APPLE 0x8A0A -#define GL_FENCE_APPLE 0x8A0B -typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); -typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); -typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenFencesAPPLE (GLsizei n, GLuint *fences); -GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei n, const GLuint *fences); -GLAPI void APIENTRY glSetFenceAPPLE (GLuint fence); -GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint fence); -GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint fence); -GLAPI void APIENTRY glFinishFenceAPPLE (GLuint fence); -GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum object, GLuint name); -GLAPI void APIENTRY glFinishObjectAPPLE (GLenum object, GLint name); -#endif -#endif /* GL_APPLE_fence */ - -#ifndef GL_APPLE_float_pixels -#define GL_APPLE_float_pixels 1 -#define GL_HALF_APPLE 0x140B -#define GL_RGBA_FLOAT32_APPLE 0x8814 -#define GL_RGB_FLOAT32_APPLE 0x8815 -#define GL_ALPHA_FLOAT32_APPLE 0x8816 -#define GL_INTENSITY_FLOAT32_APPLE 0x8817 -#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 -#define GL_RGBA_FLOAT16_APPLE 0x881A -#define GL_RGB_FLOAT16_APPLE 0x881B -#define GL_ALPHA_FLOAT16_APPLE 0x881C -#define GL_INTENSITY_FLOAT16_APPLE 0x881D -#define GL_LUMINANCE_FLOAT16_APPLE 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F -#define GL_COLOR_FLOAT_APPLE 0x8A0F -#endif /* GL_APPLE_float_pixels */ - -#ifndef GL_APPLE_flush_buffer_range -#define GL_APPLE_flush_buffer_range 1 -#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 -#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 -typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum target, GLintptr offset, GLsizeiptr size); -#endif -#endif /* GL_APPLE_flush_buffer_range */ - -#ifndef GL_APPLE_object_purgeable -#define GL_APPLE_object_purgeable 1 -#define GL_BUFFER_OBJECT_APPLE 0x85B3 -#define GL_RELEASED_APPLE 0x8A19 -#define GL_VOLATILE_APPLE 0x8A1A -#define GL_RETAINED_APPLE 0x8A1B -#define GL_UNDEFINED_APPLE 0x8A1C -#define GL_PURGEABLE_APPLE 0x8A1D -typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); -typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); -GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); -GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params); -#endif -#endif /* GL_APPLE_object_purgeable */ - -#ifndef GL_APPLE_rgb_422 -#define GL_APPLE_rgb_422 1 -#define GL_RGB_422_APPLE 0x8A1F -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#define GL_RGB_RAW_422_APPLE 0x8A51 -#endif /* GL_APPLE_rgb_422 */ - -#ifndef GL_APPLE_row_bytes -#define GL_APPLE_row_bytes 1 -#define GL_PACK_ROW_BYTES_APPLE 0x8A15 -#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 -#endif /* GL_APPLE_row_bytes */ - -#ifndef GL_APPLE_specular_vector -#define GL_APPLE_specular_vector 1 -#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 -#endif /* GL_APPLE_specular_vector */ - -#ifndef GL_APPLE_texture_range -#define GL_APPLE_texture_range 1 -#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 -#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 -#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC -#define GL_STORAGE_PRIVATE_APPLE 0x85BD -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF -typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const void *pointer); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureRangeAPPLE (GLenum target, GLsizei length, const void *pointer); -GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, void **params); -#endif -#endif /* GL_APPLE_texture_range */ - -#ifndef GL_APPLE_transform_hint -#define GL_APPLE_transform_hint 1 -#define GL_TRANSFORM_HINT_APPLE 0x85B1 -#endif /* GL_APPLE_transform_hint */ - -#ifndef GL_APPLE_vertex_array_object -#define GL_APPLE_vertex_array_object 1 -#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint array); -GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei n, const GLuint *arrays); -GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei n, GLuint *arrays); -GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint array); -#endif -#endif /* GL_APPLE_vertex_array_object */ - -#ifndef GL_APPLE_vertex_array_range -#define GL_APPLE_vertex_array_range 1 -#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E -#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F -#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 -#define GL_STORAGE_CLIENT_APPLE 0x85B4 -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); -typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei length, void *pointer); -GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei length, void *pointer); -GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum pname, GLint param); -#endif -#endif /* GL_APPLE_vertex_array_range */ - -#ifndef GL_APPLE_vertex_program_evaluators -#define GL_APPLE_vertex_program_evaluators 1 -#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 -#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 -#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 -#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 -#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 -#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 -#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 -#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 -#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 -#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef GLboolean (APIENTRYP PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glEnableVertexAttribAPPLE (GLuint index, GLenum pname); -GLAPI void APIENTRY glDisableVertexAttribAPPLE (GLuint index, GLenum pname); -GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE (GLuint index, GLenum pname); -GLAPI void APIENTRY glMapVertexAttrib1dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -GLAPI void APIENTRY glMapVertexAttrib1fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -GLAPI void APIENTRY glMapVertexAttrib2dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -GLAPI void APIENTRY glMapVertexAttrib2fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -#endif -#endif /* GL_APPLE_vertex_program_evaluators */ - -#ifndef GL_APPLE_ycbcr_422 -#define GL_APPLE_ycbcr_422 1 -#define GL_YCBCR_422_APPLE 0x85B9 -#endif /* GL_APPLE_ycbcr_422 */ - -#ifndef GL_ATI_draw_buffers -#define GL_ATI_draw_buffers 1 -#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 -#define GL_DRAW_BUFFER0_ATI 0x8825 -#define GL_DRAW_BUFFER1_ATI 0x8826 -#define GL_DRAW_BUFFER2_ATI 0x8827 -#define GL_DRAW_BUFFER3_ATI 0x8828 -#define GL_DRAW_BUFFER4_ATI 0x8829 -#define GL_DRAW_BUFFER5_ATI 0x882A -#define GL_DRAW_BUFFER6_ATI 0x882B -#define GL_DRAW_BUFFER7_ATI 0x882C -#define GL_DRAW_BUFFER8_ATI 0x882D -#define GL_DRAW_BUFFER9_ATI 0x882E -#define GL_DRAW_BUFFER10_ATI 0x882F -#define GL_DRAW_BUFFER11_ATI 0x8830 -#define GL_DRAW_BUFFER12_ATI 0x8831 -#define GL_DRAW_BUFFER13_ATI 0x8832 -#define GL_DRAW_BUFFER14_ATI 0x8833 -#define GL_DRAW_BUFFER15_ATI 0x8834 -typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersATI (GLsizei n, const GLenum *bufs); -#endif -#endif /* GL_ATI_draw_buffers */ - -#ifndef GL_ATI_element_array -#define GL_ATI_element_array 1 -#define GL_ELEMENT_ARRAY_ATI 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A -typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerATI (GLenum type, const void *pointer); -GLAPI void APIENTRY glDrawElementArrayATI (GLenum mode, GLsizei count); -GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum mode, GLuint start, GLuint end, GLsizei count); -#endif -#endif /* GL_ATI_element_array */ - -#ifndef GL_ATI_envmap_bumpmap -#define GL_ATI_envmap_bumpmap 1 -#define GL_BUMP_ROT_MATRIX_ATI 0x8775 -#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 -#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 -#define GL_BUMP_TEX_UNITS_ATI 0x8778 -#define GL_DUDV_ATI 0x8779 -#define GL_DU8DV8_ATI 0x877A -#define GL_BUMP_ENVMAP_ATI 0x877B -#define GL_BUMP_TARGET_ATI 0x877C -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBumpParameterivATI (GLenum pname, const GLint *param); -GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum pname, const GLfloat *param); -GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum pname, GLint *param); -GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param); -#endif -#endif /* GL_ATI_envmap_bumpmap */ - -#ifndef GL_ATI_fragment_shader -#define GL_ATI_fragment_shader 1 -#define GL_FRAGMENT_SHADER_ATI 0x8920 -#define GL_REG_0_ATI 0x8921 -#define GL_REG_1_ATI 0x8922 -#define GL_REG_2_ATI 0x8923 -#define GL_REG_3_ATI 0x8924 -#define GL_REG_4_ATI 0x8925 -#define GL_REG_5_ATI 0x8926 -#define GL_REG_6_ATI 0x8927 -#define GL_REG_7_ATI 0x8928 -#define GL_REG_8_ATI 0x8929 -#define GL_REG_9_ATI 0x892A -#define GL_REG_10_ATI 0x892B -#define GL_REG_11_ATI 0x892C -#define GL_REG_12_ATI 0x892D -#define GL_REG_13_ATI 0x892E -#define GL_REG_14_ATI 0x892F -#define GL_REG_15_ATI 0x8930 -#define GL_REG_16_ATI 0x8931 -#define GL_REG_17_ATI 0x8932 -#define GL_REG_18_ATI 0x8933 -#define GL_REG_19_ATI 0x8934 -#define GL_REG_20_ATI 0x8935 -#define GL_REG_21_ATI 0x8936 -#define GL_REG_22_ATI 0x8937 -#define GL_REG_23_ATI 0x8938 -#define GL_REG_24_ATI 0x8939 -#define GL_REG_25_ATI 0x893A -#define GL_REG_26_ATI 0x893B -#define GL_REG_27_ATI 0x893C -#define GL_REG_28_ATI 0x893D -#define GL_REG_29_ATI 0x893E -#define GL_REG_30_ATI 0x893F -#define GL_REG_31_ATI 0x8940 -#define GL_CON_0_ATI 0x8941 -#define GL_CON_1_ATI 0x8942 -#define GL_CON_2_ATI 0x8943 -#define GL_CON_3_ATI 0x8944 -#define GL_CON_4_ATI 0x8945 -#define GL_CON_5_ATI 0x8946 -#define GL_CON_6_ATI 0x8947 -#define GL_CON_7_ATI 0x8948 -#define GL_CON_8_ATI 0x8949 -#define GL_CON_9_ATI 0x894A -#define GL_CON_10_ATI 0x894B -#define GL_CON_11_ATI 0x894C -#define GL_CON_12_ATI 0x894D -#define GL_CON_13_ATI 0x894E -#define GL_CON_14_ATI 0x894F -#define GL_CON_15_ATI 0x8950 -#define GL_CON_16_ATI 0x8951 -#define GL_CON_17_ATI 0x8952 -#define GL_CON_18_ATI 0x8953 -#define GL_CON_19_ATI 0x8954 -#define GL_CON_20_ATI 0x8955 -#define GL_CON_21_ATI 0x8956 -#define GL_CON_22_ATI 0x8957 -#define GL_CON_23_ATI 0x8958 -#define GL_CON_24_ATI 0x8959 -#define GL_CON_25_ATI 0x895A -#define GL_CON_26_ATI 0x895B -#define GL_CON_27_ATI 0x895C -#define GL_CON_28_ATI 0x895D -#define GL_CON_29_ATI 0x895E -#define GL_CON_30_ATI 0x895F -#define GL_CON_31_ATI 0x8960 -#define GL_MOV_ATI 0x8961 -#define GL_ADD_ATI 0x8963 -#define GL_MUL_ATI 0x8964 -#define GL_SUB_ATI 0x8965 -#define GL_DOT3_ATI 0x8966 -#define GL_DOT4_ATI 0x8967 -#define GL_MAD_ATI 0x8968 -#define GL_LERP_ATI 0x8969 -#define GL_CND_ATI 0x896A -#define GL_CND0_ATI 0x896B -#define GL_DOT2_ADD_ATI 0x896C -#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define GL_NUM_PASSES_ATI 0x8970 -#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define GL_SWIZZLE_STR_ATI 0x8976 -#define GL_SWIZZLE_STQ_ATI 0x8977 -#define GL_SWIZZLE_STR_DR_ATI 0x8978 -#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define GL_SWIZZLE_STRQ_ATI 0x897A -#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B -#define GL_RED_BIT_ATI 0x00000001 -#define GL_GREEN_BIT_ATI 0x00000002 -#define GL_BLUE_BIT_ATI 0x00000004 -#define GL_2X_BIT_ATI 0x00000001 -#define GL_4X_BIT_ATI 0x00000002 -#define GL_8X_BIT_ATI 0x00000004 -#define GL_HALF_BIT_ATI 0x00000008 -#define GL_QUARTER_BIT_ATI 0x00000010 -#define GL_EIGHTH_BIT_ATI 0x00000020 -#define GL_SATURATE_BIT_ATI 0x00000040 -#define GL_COMP_BIT_ATI 0x00000002 -#define GL_NEGATE_BIT_ATI 0x00000004 -#define GL_BIAS_BIT_ATI 0x00000008 -typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); -typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); -typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint range); -GLAPI void APIENTRY glBindFragmentShaderATI (GLuint id); -GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint id); -GLAPI void APIENTRY glBeginFragmentShaderATI (void); -GLAPI void APIENTRY glEndFragmentShaderATI (void); -GLAPI void APIENTRY glPassTexCoordATI (GLuint dst, GLuint coord, GLenum swizzle); -GLAPI void APIENTRY glSampleMapATI (GLuint dst, GLuint interp, GLenum swizzle); -GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint dst, const GLfloat *value); -#endif -#endif /* GL_ATI_fragment_shader */ - -#ifndef GL_ATI_map_object_buffer -#define GL_ATI_map_object_buffer 1 -typedef void *(APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void *APIENTRY glMapObjectBufferATI (GLuint buffer); -GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint buffer); -#endif -#endif /* GL_ATI_map_object_buffer */ - -#ifndef GL_ATI_meminfo -#define GL_ATI_meminfo 1 -#define GL_VBO_FREE_MEMORY_ATI 0x87FB -#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC -#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD -#endif /* GL_ATI_meminfo */ - -#ifndef GL_ATI_pixel_format_float -#define GL_ATI_pixel_format_float 1 -#define GL_RGBA_FLOAT_MODE_ATI 0x8820 -#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 -#endif /* GL_ATI_pixel_format_float */ - -#ifndef GL_ATI_pn_triangles -#define GL_ATI_pn_triangles 1 -#define GL_PN_TRIANGLES_ATI 0x87F0 -#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 -#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 -#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 -#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 -#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 -#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 -#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 -#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 -typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPNTrianglesiATI (GLenum pname, GLint param); -GLAPI void APIENTRY glPNTrianglesfATI (GLenum pname, GLfloat param); -#endif -#endif /* GL_ATI_pn_triangles */ - -#ifndef GL_ATI_separate_stencil -#define GL_ATI_separate_stencil 1 -#define GL_STENCIL_BACK_FUNC_ATI 0x8800 -#define GL_STENCIL_BACK_FAIL_ATI 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#endif -#endif /* GL_ATI_separate_stencil */ - -#ifndef GL_ATI_text_fragment_shader -#define GL_ATI_text_fragment_shader 1 -#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 -#endif /* GL_ATI_text_fragment_shader */ - -#ifndef GL_ATI_texture_env_combine3 -#define GL_ATI_texture_env_combine3 1 -#define GL_MODULATE_ADD_ATI 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 -#define GL_MODULATE_SUBTRACT_ATI 0x8746 -#endif /* GL_ATI_texture_env_combine3 */ - -#ifndef GL_ATI_texture_float -#define GL_ATI_texture_float 1 -#define GL_RGBA_FLOAT32_ATI 0x8814 -#define GL_RGB_FLOAT32_ATI 0x8815 -#define GL_ALPHA_FLOAT32_ATI 0x8816 -#define GL_INTENSITY_FLOAT32_ATI 0x8817 -#define GL_LUMINANCE_FLOAT32_ATI 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 -#define GL_RGBA_FLOAT16_ATI 0x881A -#define GL_RGB_FLOAT16_ATI 0x881B -#define GL_ALPHA_FLOAT16_ATI 0x881C -#define GL_INTENSITY_FLOAT16_ATI 0x881D -#define GL_LUMINANCE_FLOAT16_ATI 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F -#endif /* GL_ATI_texture_float */ - -#ifndef GL_ATI_texture_mirror_once -#define GL_ATI_texture_mirror_once 1 -#define GL_MIRROR_CLAMP_ATI 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 -#endif /* GL_ATI_texture_mirror_once */ - -#ifndef GL_ATI_vertex_array_object -#define GL_ATI_vertex_array_object 1 -#define GL_STATIC_ATI 0x8760 -#define GL_DYNAMIC_ATI 0x8761 -#define GL_PRESERVE_ATI 0x8762 -#define GL_DISCARD_ATI 0x8763 -#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 -typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void *pointer, GLenum usage); -typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei size, const void *pointer, GLenum usage); -GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint buffer); -GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); -GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint buffer, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetObjectBufferivATI (GLuint buffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glFreeObjectBufferATI (GLuint buffer); -GLAPI void APIENTRY glArrayObjectATI (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum array, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetArrayObjectivATI (GLenum array, GLenum pname, GLint *params); -GLAPI void APIENTRY glVariantArrayObjectATI (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint id, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint id, GLenum pname, GLint *params); -#endif -#endif /* GL_ATI_vertex_array_object */ - -#ifndef GL_ATI_vertex_attrib_array_object -#define GL_ATI_vertex_attrib_array_object 1 -typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint index, GLenum pname, GLint *params); -#endif -#endif /* GL_ATI_vertex_attrib_array_object */ - -#ifndef GL_ATI_vertex_streams -#define GL_ATI_vertex_streams 1 -#define GL_MAX_VERTEX_STREAMS_ATI 0x876B -#define GL_VERTEX_STREAM0_ATI 0x876C -#define GL_VERTEX_STREAM1_ATI 0x876D -#define GL_VERTEX_STREAM2_ATI 0x876E -#define GL_VERTEX_STREAM3_ATI 0x876F -#define GL_VERTEX_STREAM4_ATI 0x8770 -#define GL_VERTEX_STREAM5_ATI 0x8771 -#define GL_VERTEX_STREAM6_ATI 0x8772 -#define GL_VERTEX_STREAM7_ATI 0x8773 -#define GL_VERTEX_SOURCE_ATI 0x8774 -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexStream1sATI (GLenum stream, GLshort x); -GLAPI void APIENTRY glVertexStream1svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream1iATI (GLenum stream, GLint x); -GLAPI void APIENTRY glVertexStream1ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream1fATI (GLenum stream, GLfloat x); -GLAPI void APIENTRY glVertexStream1fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream1dATI (GLenum stream, GLdouble x); -GLAPI void APIENTRY glVertexStream1dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream2sATI (GLenum stream, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexStream2svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream2iATI (GLenum stream, GLint x, GLint y); -GLAPI void APIENTRY glVertexStream2ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexStream2fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexStream2dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexStream3svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexStream3ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexStream3fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexStream3dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexStream4svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexStream4ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexStream4fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexStream4dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glNormalStream3bATI (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -GLAPI void APIENTRY glNormalStream3bvATI (GLenum stream, const GLbyte *coords); -GLAPI void APIENTRY glNormalStream3sATI (GLenum stream, GLshort nx, GLshort ny, GLshort nz); -GLAPI void APIENTRY glNormalStream3svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glNormalStream3iATI (GLenum stream, GLint nx, GLint ny, GLint nz); -GLAPI void APIENTRY glNormalStream3ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glNormalStream3fATI (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -GLAPI void APIENTRY glNormalStream3fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glNormalStream3dATI (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -GLAPI void APIENTRY glNormalStream3dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum stream); -GLAPI void APIENTRY glVertexBlendEnviATI (GLenum pname, GLint param); -GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum pname, GLfloat param); -#endif -#endif /* GL_ATI_vertex_streams */ - -#ifndef GL_EXT_422_pixels -#define GL_EXT_422_pixels 1 -#define GL_422_EXT 0x80CC -#define GL_422_REV_EXT 0x80CD -#define GL_422_AVERAGE_EXT 0x80CE -#define GL_422_REV_AVERAGE_EXT 0x80CF -#endif /* GL_EXT_422_pixels */ - -#ifndef GL_EXT_EGL_image_storage -#define GL_EXT_EGL_image_storage 1 -typedef void *GLeglImageOES; -typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list); -typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list); -GLAPI void APIENTRY glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list); -#endif -#endif /* GL_EXT_EGL_image_storage */ - -#ifndef GL_EXT_EGL_sync -#define GL_EXT_EGL_sync 1 -#endif /* GL_EXT_EGL_sync */ - -#ifndef GL_EXT_abgr -#define GL_EXT_abgr 1 -#define GL_ABGR_EXT 0x8000 -#endif /* GL_EXT_abgr */ - -#ifndef GL_EXT_bgra -#define GL_EXT_bgra 1 -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 -#endif /* GL_EXT_bgra */ - -#ifndef GL_EXT_bindable_uniform -#define GL_EXT_bindable_uniform 1 -#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 -#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 -#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 -#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED -#define GL_UNIFORM_BUFFER_EXT 0x8DEE -#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF -typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); -typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); -typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformBufferEXT (GLuint program, GLint location, GLuint buffer); -GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint program, GLint location); -GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint program, GLint location); -#endif -#endif /* GL_EXT_bindable_uniform */ - -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 -typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColorEXT (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -#endif -#endif /* GL_EXT_blend_color */ - -#ifndef GL_EXT_blend_equation_separate -#define GL_EXT_blend_equation_separate 1 -#define GL_BLEND_EQUATION_RGB_EXT 0x8009 -#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum modeRGB, GLenum modeAlpha); -#endif -#endif /* GL_EXT_blend_equation_separate */ - -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif -#endif /* GL_EXT_blend_func_separate */ - -#ifndef GL_EXT_blend_logic_op -#define GL_EXT_blend_logic_op 1 -#endif /* GL_EXT_blend_logic_op */ - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_BLEND_EQUATION_EXT 0x8009 -typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationEXT (GLenum mode); -#endif -#endif /* GL_EXT_blend_minmax */ - -#ifndef GL_EXT_blend_subtract -#define GL_EXT_blend_subtract 1 -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B -#endif /* GL_EXT_blend_subtract */ - -#ifndef GL_EXT_clip_volume_hint -#define GL_EXT_clip_volume_hint 1 -#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 -#endif /* GL_EXT_clip_volume_hint */ - -#ifndef GL_EXT_cmyka -#define GL_EXT_cmyka 1 -#define GL_CMYK_EXT 0x800C -#define GL_CMYKA_EXT 0x800D -#define GL_PACK_CMYK_HINT_EXT 0x800E -#define GL_UNPACK_CMYK_HINT_EXT 0x800F -#endif /* GL_EXT_cmyka */ - -#ifndef GL_EXT_color_subtable -#define GL_EXT_color_subtable 1 -typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorSubTableEXT (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#endif -#endif /* GL_EXT_color_subtable */ - -#ifndef GL_EXT_compiled_vertex_array -#define GL_EXT_compiled_vertex_array 1 -#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 -#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 -typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLockArraysEXT (GLint first, GLsizei count); -GLAPI void APIENTRY glUnlockArraysEXT (void); -#endif -#endif /* GL_EXT_compiled_vertex_array */ - -#ifndef GL_EXT_convolution -#define GL_EXT_convolution 1 -#define GL_CONVOLUTION_1D_EXT 0x8010 -#define GL_CONVOLUTION_2D_EXT 0x8011 -#define GL_SEPARABLE_2D_EXT 0x8012 -#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define GL_REDUCE_EXT 0x8016 -#define GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); -GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); -GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum target, GLenum pname, GLfloat params); -GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum target, GLenum pname, GLint params); -GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum target, GLenum format, GLenum type, void *image); -GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); -GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); -#endif -#endif /* GL_EXT_convolution */ - -#ifndef GL_EXT_coordinate_frame -#define GL_EXT_coordinate_frame 1 -#define GL_TANGENT_ARRAY_EXT 0x8439 -#define GL_BINORMAL_ARRAY_EXT 0x843A -#define GL_CURRENT_TANGENT_EXT 0x843B -#define GL_CURRENT_BINORMAL_EXT 0x843C -#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define GL_MAP1_TANGENT_EXT 0x8444 -#define GL_MAP2_TANGENT_EXT 0x8445 -#define GL_MAP1_BINORMAL_EXT 0x8446 -#define GL_MAP2_BINORMAL_EXT 0x8447 -typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); -typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); -typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); -typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); -typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); -typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); -typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); -typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); -typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); -typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); -typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTangent3bEXT (GLbyte tx, GLbyte ty, GLbyte tz); -GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *v); -GLAPI void APIENTRY glTangent3dEXT (GLdouble tx, GLdouble ty, GLdouble tz); -GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *v); -GLAPI void APIENTRY glTangent3fEXT (GLfloat tx, GLfloat ty, GLfloat tz); -GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *v); -GLAPI void APIENTRY glTangent3iEXT (GLint tx, GLint ty, GLint tz); -GLAPI void APIENTRY glTangent3ivEXT (const GLint *v); -GLAPI void APIENTRY glTangent3sEXT (GLshort tx, GLshort ty, GLshort tz); -GLAPI void APIENTRY glTangent3svEXT (const GLshort *v); -GLAPI void APIENTRY glBinormal3bEXT (GLbyte bx, GLbyte by, GLbyte bz); -GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *v); -GLAPI void APIENTRY glBinormal3dEXT (GLdouble bx, GLdouble by, GLdouble bz); -GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *v); -GLAPI void APIENTRY glBinormal3fEXT (GLfloat bx, GLfloat by, GLfloat bz); -GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *v); -GLAPI void APIENTRY glBinormal3iEXT (GLint bx, GLint by, GLint bz); -GLAPI void APIENTRY glBinormal3ivEXT (const GLint *v); -GLAPI void APIENTRY glBinormal3sEXT (GLshort bx, GLshort by, GLshort bz); -GLAPI void APIENTRY glBinormal3svEXT (const GLshort *v); -GLAPI void APIENTRY glTangentPointerEXT (GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glBinormalPointerEXT (GLenum type, GLsizei stride, const void *pointer); -#endif -#endif /* GL_EXT_coordinate_frame */ - -#ifndef GL_EXT_copy_texture -#define GL_EXT_copy_texture 1 -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_EXT_copy_texture */ - -#ifndef GL_EXT_cull_vertex -#define GL_EXT_cull_vertex 1 -#define GL_CULL_VERTEX_EXT 0x81AA -#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB -#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC -typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCullParameterdvEXT (GLenum pname, GLdouble *params); -GLAPI void APIENTRY glCullParameterfvEXT (GLenum pname, GLfloat *params); -#endif -#endif /* GL_EXT_cull_vertex */ - -#ifndef GL_EXT_debug_label -#define GL_EXT_debug_label 1 -#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F -#define GL_PROGRAM_OBJECT_EXT 0x8B40 -#define GL_SHADER_OBJECT_EXT 0x8B48 -#define GL_BUFFER_OBJECT_EXT 0x9151 -#define GL_QUERY_OBJECT_EXT 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 -typedef void (APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); -typedef void (APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); -GLAPI void APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -#endif -#endif /* GL_EXT_debug_label */ - -#ifndef GL_EXT_debug_marker -#define GL_EXT_debug_marker 1 -typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); -GLAPI void APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); -GLAPI void APIENTRY glPopGroupMarkerEXT (void); -#endif -#endif /* GL_EXT_debug_marker */ - -#ifndef GL_EXT_depth_bounds_test -#define GL_EXT_depth_bounds_test 1 -#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 -#define GL_DEPTH_BOUNDS_EXT 0x8891 -typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthBoundsEXT (GLclampd zmin, GLclampd zmax); -#endif -#endif /* GL_EXT_depth_bounds_test */ - -#ifndef GL_EXT_direct_state_access -#define GL_EXT_direct_state_access 1 -#define GL_PROGRAM_MATRIX_EXT 0x8E2D -#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E -#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F -typedef void (APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -typedef void (APIENTRYP PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); -typedef void (APIENTRYP PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data); -typedef void (APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, void **data); -typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); -typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, void *img); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, void *img); -typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); -typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void **params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params); -typedef void (APIENTRYP PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, void **params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void *string); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); -typedef void (APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); -typedef void (APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); -typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); -typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, void **param); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, void **param); -typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); -typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEEXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (APIENTRYP PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC) (GLuint vaobj, GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixLoadIdentityEXT (GLenum mode); -GLAPI void APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glMatrixPopEXT (GLenum mode); -GLAPI void APIENTRY glMatrixPushEXT (GLenum mode); -GLAPI void APIENTRY glClientAttribDefaultEXT (GLbitfield mask); -GLAPI void APIENTRY glPushClientAttribDefaultEXT (GLbitfield mask); -GLAPI void APIENTRY glTextureParameterfEXT (GLuint texture, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glTextureParameteriEXT (GLuint texture, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetTextureImageEXT (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -GLAPI void APIENTRY glGetTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTextureLevelParameterfvEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetTextureLevelParameterivEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void APIENTRY glTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glCopyTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glBindMultiTextureEXT (GLenum texunit, GLenum target, GLuint texture); -GLAPI void APIENTRY glMultiTexCoordPointerEXT (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glMultiTexEnvfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexEnviEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexGendEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -GLAPI void APIENTRY glMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); -GLAPI void APIENTRY glMultiTexGenfEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexGeniEXT (GLenum texunit, GLenum coord, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); -GLAPI void APIENTRY glGetMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, GLint *params); -GLAPI void APIENTRY glMultiTexParameteriEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexParameterfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glCopyMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -GLAPI void APIENTRY glGetMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void APIENTRY glMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glEnableClientStateIndexedEXT (GLenum array, GLuint index); -GLAPI void APIENTRY glDisableClientStateIndexedEXT (GLenum array, GLuint index); -GLAPI void APIENTRY glGetFloatIndexedvEXT (GLenum target, GLuint index, GLfloat *data); -GLAPI void APIENTRY glGetDoubleIndexedvEXT (GLenum target, GLuint index, GLdouble *data); -GLAPI void APIENTRY glGetPointerIndexedvEXT (GLenum target, GLuint index, void **data); -GLAPI void APIENTRY glEnableIndexedEXT (GLenum target, GLuint index); -GLAPI void APIENTRY glDisableIndexedEXT (GLenum target, GLuint index); -GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum target, GLuint index); -GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum target, GLuint index, GLint *data); -GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum target, GLuint index, GLboolean *data); -GLAPI void APIENTRY glCompressedTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glGetCompressedTextureImageEXT (GLuint texture, GLenum target, GLint lod, void *img); -GLAPI void APIENTRY glCompressedMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); -GLAPI void APIENTRY glGetCompressedMultiTexImageEXT (GLenum texunit, GLenum target, GLint lod, void *img); -GLAPI void APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glNamedBufferDataEXT (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); -GLAPI void APIENTRY glNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -GLAPI void *APIENTRY glMapNamedBufferEXT (GLuint buffer, GLenum access); -GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT (GLuint buffer); -GLAPI void APIENTRY glGetNamedBufferParameterivEXT (GLuint buffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetNamedBufferPointervEXT (GLuint buffer, GLenum pname, void **params); -GLAPI void APIENTRY glGetNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); -GLAPI void APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0); -GLAPI void APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0); -GLAPI void APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glTextureBufferEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glMultiTexBufferEXT (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0); -GLAPI void APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT (GLuint program, GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT (GLuint program, GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT (GLuint program, GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT (GLuint program, GLenum target, GLuint index, GLuint *params); -GLAPI void APIENTRY glEnableClientStateiEXT (GLenum array, GLuint index); -GLAPI void APIENTRY glDisableClientStateiEXT (GLenum array, GLuint index); -GLAPI void APIENTRY glGetFloati_vEXT (GLenum pname, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetDoublei_vEXT (GLenum pname, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetPointeri_vEXT (GLenum pname, GLuint index, void **params); -GLAPI void APIENTRY glNamedProgramStringEXT (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); -GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT (GLuint program, GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT (GLuint program, GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT (GLuint program, GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT (GLuint program, GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetNamedProgramivEXT (GLuint program, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetNamedProgramStringEXT (GLuint program, GLenum target, GLenum pname, void *string); -GLAPI void APIENTRY glNamedRenderbufferStorageEXT (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT (GLuint renderbuffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT (GLuint framebuffer, GLenum target); -GLAPI void APIENTRY glNamedFramebufferTexture1DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTexture2DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTexture3DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateTextureMipmapEXT (GLuint texture, GLenum target); -GLAPI void APIENTRY glGenerateMultiTexMipmapEXT (GLenum texunit, GLenum target); -GLAPI void APIENTRY glFramebufferDrawBufferEXT (GLuint framebuffer, GLenum mode); -GLAPI void APIENTRY glFramebufferDrawBuffersEXT (GLuint framebuffer, GLsizei n, const GLenum *bufs); -GLAPI void APIENTRY glFramebufferReadBufferEXT (GLuint framebuffer, GLenum mode); -GLAPI void APIENTRY glGetFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glNamedCopyBufferSubDataEXT (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GLAPI void APIENTRY glNamedFramebufferTextureEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -GLAPI void APIENTRY glTextureRenderbufferEXT (GLuint texture, GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glMultiTexRenderbufferEXT (GLenum texunit, GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glVertexArrayVertexOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayEdgeFlagOffsetEXT (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayIndexOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayNormalOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayMultiTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayFogCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArraySecondaryColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayVertexAttribOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glVertexArrayVertexAttribIOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glEnableVertexArrayEXT (GLuint vaobj, GLenum array); -GLAPI void APIENTRY glDisableVertexArrayEXT (GLuint vaobj, GLenum array); -GLAPI void APIENTRY glEnableVertexArrayAttribEXT (GLuint vaobj, GLuint index); -GLAPI void APIENTRY glDisableVertexArrayAttribEXT (GLuint vaobj, GLuint index); -GLAPI void APIENTRY glGetVertexArrayIntegervEXT (GLuint vaobj, GLenum pname, GLint *param); -GLAPI void APIENTRY glGetVertexArrayPointervEXT (GLuint vaobj, GLenum pname, void **param); -GLAPI void APIENTRY glGetVertexArrayIntegeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, GLint *param); -GLAPI void APIENTRY glGetVertexArrayPointeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, void **param); -GLAPI void *APIENTRY glMapNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -GLAPI void APIENTRY glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length); -GLAPI void APIENTRY glNamedBufferStorageEXT (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); -GLAPI void APIENTRY glClearNamedBufferDataEXT (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glClearNamedBufferSubDataEXT (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -GLAPI void APIENTRY glNamedFramebufferParameteriEXT (GLuint framebuffer, GLenum pname, GLint param); -GLAPI void APIENTRY glGetNamedFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x); -GLAPI void APIENTRY glProgramUniform2dEXT (GLuint program, GLint location, GLdouble x, GLdouble y); -GLAPI void APIENTRY glProgramUniform3dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glProgramUniform4dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramUniform1dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform2dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform3dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform4dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glTextureBufferRangeEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GLAPI void APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GLAPI void APIENTRY glTextureStorage2DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTextureStorage3DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glVertexArrayBindVertexBufferEXT (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GLAPI void APIENTRY glVertexArrayVertexAttribFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GLAPI void APIENTRY glVertexArrayVertexAttribIFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GLAPI void APIENTRY glVertexArrayVertexAttribLFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GLAPI void APIENTRY glVertexArrayVertexAttribBindingEXT (GLuint vaobj, GLuint attribindex, GLuint bindingindex); -GLAPI void APIENTRY glVertexArrayVertexBindingDivisorEXT (GLuint vaobj, GLuint bindingindex, GLuint divisor); -GLAPI void APIENTRY glVertexArrayVertexAttribLOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -GLAPI void APIENTRY glTexturePageCommitmentEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -GLAPI void APIENTRY glVertexArrayVertexAttribDivisorEXT (GLuint vaobj, GLuint index, GLuint divisor); -#endif -#endif /* GL_EXT_direct_state_access */ - -#ifndef GL_EXT_draw_buffers2 -#define GL_EXT_draw_buffers2 1 -typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -#endif -#endif /* GL_EXT_draw_buffers2 */ - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#endif -#endif /* GL_EXT_draw_instanced */ - -#ifndef GL_EXT_draw_range_elements -#define GL_EXT_draw_range_elements 1 -#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -#endif -#endif /* GL_EXT_draw_range_elements */ - -#ifndef GL_EXT_external_buffer -#define GL_EXT_external_buffer 1 -typedef void *GLeglClientBufferEXT; -typedef void (APIENTRYP PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferStorageExternalEXT (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -GLAPI void APIENTRY glNamedBufferStorageExternalEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -#endif -#endif /* GL_EXT_external_buffer */ - -#ifndef GL_EXT_fog_coord -#define GL_EXT_fog_coord 1 -#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define GL_FOG_COORDINATE_EXT 0x8451 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 -#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 -typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogCoordfEXT (GLfloat coord); -GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *coord); -GLAPI void APIENTRY glFogCoorddEXT (GLdouble coord); -GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *coord); -GLAPI void APIENTRY glFogCoordPointerEXT (GLenum type, GLsizei stride, const void *pointer); -#endif -#endif /* GL_EXT_fog_coord */ - -#ifndef GL_EXT_framebuffer_blit -#define GL_EXT_framebuffer_blit 1 -#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif -#endif /* GL_EXT_framebuffer_blit */ - -#ifndef GL_EXT_framebuffer_multisample -#define GL_EXT_framebuffer_multisample 1 -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_EXT_framebuffer_multisample */ - -#ifndef GL_EXT_framebuffer_multisample_blit_scaled -#define GL_EXT_framebuffer_multisample_blit_scaled 1 -#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA -#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB -#endif /* GL_EXT_framebuffer_multisample_blit_scaled */ - -#ifndef GL_EXT_framebuffer_object -#define GL_EXT_framebuffer_object 1 -#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 -#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 -#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 -#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 -#define GL_FRAMEBUFFER_EXT 0x8D40 -#define GL_RENDERBUFFER_EXT 0x8D41 -#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 -#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 -#define GL_STENCIL_INDEX1_EXT 0x8D46 -#define GL_STENCIL_INDEX4_EXT 0x8D47 -#define GL_STENCIL_INDEX8_EXT 0x8D48 -#define GL_STENCIL_INDEX16_EXT 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); -typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint renderbuffer); -GLAPI void APIENTRY glBindRenderbufferEXT (GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei n, const GLuint *renderbuffers); -GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei n, GLuint *renderbuffers); -GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint framebuffer); -GLAPI void APIENTRY glBindFramebufferEXT (GLenum target, GLuint framebuffer); -GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei n, const GLuint *framebuffers); -GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei n, GLuint *framebuffers); -GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum target); -GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateMipmapEXT (GLenum target); -#endif -#endif /* GL_EXT_framebuffer_object */ - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_EXT_framebuffer_sRGB 1 -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA -#endif /* GL_EXT_framebuffer_sRGB */ - -#ifndef GL_EXT_geometry_shader4 -#define GL_EXT_geometry_shader4 1 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE -#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 -#define GL_LINES_ADJACENCY_EXT 0x000A -#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B -#define GL_TRIANGLES_ADJACENCY_EXT 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); -#endif -#endif /* GL_EXT_geometry_shader4 */ - -#ifndef GL_EXT_gpu_program_parameters -#define GL_EXT_gpu_program_parameters 1 -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -#endif -#endif /* GL_EXT_gpu_program_parameters */ - -#ifndef GL_EXT_gpu_shader4 -#define GL_EXT_gpu_shader4 1 -#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 -#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 -#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 -#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 -#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 -#define GL_INT_SAMPLER_1D_EXT 0x8DC9 -#define GL_INT_SAMPLER_2D_EXT 0x8DCA -#define GL_INT_SAMPLER_3D_EXT 0x8DCB -#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC -#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD -#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 -#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905 -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD -typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetUniformuivEXT (GLuint program, GLint location, GLuint *params); -GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint program, const GLchar *name); -GLAPI void APIENTRY glUniform1uiEXT (GLint location, GLuint v0); -GLAPI void APIENTRY glUniform2uiEXT (GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint index, GLint x); -GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint index, GLint x, GLint y); -GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint index, GLuint x); -GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y); -GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z); -GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params); -#endif -#endif /* GL_EXT_gpu_shader4 */ - -#ifndef GL_EXT_histogram -#define GL_EXT_histogram 1 -#define GL_HISTOGRAM_EXT 0x8024 -#define GL_PROXY_HISTOGRAM_EXT 0x8025 -#define GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define GL_HISTOGRAM_SINK_EXT 0x802D -#define GL_MINMAX_EXT 0x802E -#define GL_MINMAX_FORMAT_EXT 0x802F -#define GL_MINMAX_SINK_EXT 0x8030 -#define GL_TABLE_TOO_LARGE_EXT 0x8031 -typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetHistogramEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMinmaxEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); -GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glHistogramEXT (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glMinmaxEXT (GLenum target, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glResetHistogramEXT (GLenum target); -GLAPI void APIENTRY glResetMinmaxEXT (GLenum target); -#endif -#endif /* GL_EXT_histogram */ - -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 -#define GL_IUI_V2F_EXT 0x81AD -#define GL_IUI_V3F_EXT 0x81AE -#define GL_IUI_N3F_V2F_EXT 0x81AF -#define GL_IUI_N3F_V3F_EXT 0x81B0 -#define GL_T2F_IUI_V2F_EXT 0x81B1 -#define GL_T2F_IUI_V3F_EXT 0x81B2 -#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 -#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 -#endif /* GL_EXT_index_array_formats */ - -#ifndef GL_EXT_index_func -#define GL_EXT_index_func 1 -#define GL_INDEX_TEST_EXT 0x81B5 -#define GL_INDEX_TEST_FUNC_EXT 0x81B6 -#define GL_INDEX_TEST_REF_EXT 0x81B7 -typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexFuncEXT (GLenum func, GLclampf ref); -#endif -#endif /* GL_EXT_index_func */ - -#ifndef GL_EXT_index_material -#define GL_EXT_index_material 1 -#define GL_INDEX_MATERIAL_EXT 0x81B8 -#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 -#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA -typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexMaterialEXT (GLenum face, GLenum mode); -#endif -#endif /* GL_EXT_index_material */ - -#ifndef GL_EXT_index_texture -#define GL_EXT_index_texture 1 -#endif /* GL_EXT_index_texture */ - -#ifndef GL_EXT_light_texture -#define GL_EXT_light_texture 1 -#define GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define GL_FRAGMENT_NORMAL_EXT 0x834A -#define GL_FRAGMENT_COLOR_EXT 0x834C -#define GL_ATTENUATION_EXT 0x834D -#define GL_SHADOW_ATTENUATION_EXT 0x834E -#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define GL_TEXTURE_LIGHT_EXT 0x8350 -#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glApplyTextureEXT (GLenum mode); -GLAPI void APIENTRY glTextureLightEXT (GLenum pname); -GLAPI void APIENTRY glTextureMaterialEXT (GLenum face, GLenum mode); -#endif -#endif /* GL_EXT_light_texture */ - -#ifndef GL_EXT_memory_object -#define GL_EXT_memory_object 1 -#define GL_TEXTURE_TILING_EXT 0x9580 -#define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581 -#define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B -#define GL_NUM_TILING_TYPES_EXT 0x9582 -#define GL_TILING_TYPES_EXT 0x9583 -#define GL_OPTIMAL_TILING_EXT 0x9584 -#define GL_LINEAR_TILING_EXT 0x9585 -#define GL_NUM_DEVICE_UUIDS_EXT 0x9596 -#define GL_DEVICE_UUID_EXT 0x9597 -#define GL_DRIVER_UUID_EXT 0x9598 -#define GL_UUID_SIZE_EXT 16 -typedef void (APIENTRYP PFNGLGETUNSIGNEDBYTEVEXTPROC) (GLenum pname, GLubyte *data); -typedef void (APIENTRYP PFNGLGETUNSIGNEDBYTEI_VEXTPROC) (GLenum target, GLuint index, GLubyte *data); -typedef void (APIENTRYP PFNGLDELETEMEMORYOBJECTSEXTPROC) (GLsizei n, const GLuint *memoryObjects); -typedef GLboolean (APIENTRYP PFNGLISMEMORYOBJECTEXTPROC) (GLuint memoryObject); -typedef void (APIENTRYP PFNGLCREATEMEMORYOBJECTSEXTPROC) (GLsizei n, GLuint *memoryObjects); -typedef void (APIENTRYP PFNGLMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLTEXSTORAGEMEM2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLTEXSTORAGEMEM3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLBUFFERSTORAGEMEMEXTPROC) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM2DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM3DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLTEXSTORAGEMEM1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM1DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetUnsignedBytevEXT (GLenum pname, GLubyte *data); -GLAPI void APIENTRY glGetUnsignedBytei_vEXT (GLenum target, GLuint index, GLubyte *data); -GLAPI void APIENTRY glDeleteMemoryObjectsEXT (GLsizei n, const GLuint *memoryObjects); -GLAPI GLboolean APIENTRY glIsMemoryObjectEXT (GLuint memoryObject); -GLAPI void APIENTRY glCreateMemoryObjectsEXT (GLsizei n, GLuint *memoryObjects); -GLAPI void APIENTRY glMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, const GLint *params); -GLAPI void APIENTRY glGetMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, GLint *params); -GLAPI void APIENTRY glTexStorageMem2DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glTexStorageMem2DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glTexStorageMem3DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glTexStorageMem3DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glBufferStorageMemEXT (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glTextureStorageMem2DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glTextureStorageMem2DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glTextureStorageMem3DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glTextureStorageMem3DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glNamedBufferStorageMemEXT (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glTexStorageMem1DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glTextureStorageMem1DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); -#endif -#endif /* GL_EXT_memory_object */ - -#ifndef GL_EXT_memory_object_fd -#define GL_EXT_memory_object_fd 1 -#define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586 -typedef void (APIENTRYP PFNGLIMPORTMEMORYFDEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glImportMemoryFdEXT (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); -#endif -#endif /* GL_EXT_memory_object_fd */ - -#ifndef GL_EXT_memory_object_win32 -#define GL_EXT_memory_object_win32 1 -#define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587 -#define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588 -#define GL_DEVICE_LUID_EXT 0x9599 -#define GL_DEVICE_NODE_MASK_EXT 0x959A -#define GL_LUID_SIZE_EXT 8 -#define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589 -#define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A -#define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B -#define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C -typedef void (APIENTRYP PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, void *handle); -typedef void (APIENTRYP PFNGLIMPORTMEMORYWIN32NAMEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, const void *name); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glImportMemoryWin32HandleEXT (GLuint memory, GLuint64 size, GLenum handleType, void *handle); -GLAPI void APIENTRY glImportMemoryWin32NameEXT (GLuint memory, GLuint64 size, GLenum handleType, const void *name); -#endif -#endif /* GL_EXT_memory_object_win32 */ - -#ifndef GL_EXT_misc_attribute -#define GL_EXT_misc_attribute 1 -#endif /* GL_EXT_misc_attribute */ - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); -#endif -#endif /* GL_EXT_multi_draw_arrays */ - -#ifndef GL_EXT_multisample -#define GL_EXT_multisample 1 -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define GL_SAMPLE_MASK_EXT 0x80A0 -#define GL_1PASS_EXT 0x80A1 -#define GL_2PASS_0_EXT 0x80A2 -#define GL_2PASS_1_EXT 0x80A3 -#define GL_4PASS_0_EXT 0x80A4 -#define GL_4PASS_1_EXT 0x80A5 -#define GL_4PASS_2_EXT 0x80A6 -#define GL_4PASS_3_EXT 0x80A7 -#define GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define GL_SAMPLES_EXT 0x80A9 -#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define GL_SAMPLE_PATTERN_EXT 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 -typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskEXT (GLclampf value, GLboolean invert); -GLAPI void APIENTRY glSamplePatternEXT (GLenum pattern); -#endif -#endif /* GL_EXT_multisample */ - -#ifndef GL_EXT_multiview_tessellation_geometry_shader -#define GL_EXT_multiview_tessellation_geometry_shader 1 -#endif /* GL_EXT_multiview_tessellation_geometry_shader */ - -#ifndef GL_EXT_multiview_texture_multisample -#define GL_EXT_multiview_texture_multisample 1 -#endif /* GL_EXT_multiview_texture_multisample */ - -#ifndef GL_EXT_multiview_timer_query -#define GL_EXT_multiview_timer_query 1 -#endif /* GL_EXT_multiview_timer_query */ - -#ifndef GL_EXT_packed_depth_stencil -#define GL_EXT_packed_depth_stencil 1 -#define GL_DEPTH_STENCIL_EXT 0x84F9 -#define GL_UNSIGNED_INT_24_8_EXT 0x84FA -#define GL_DEPTH24_STENCIL8_EXT 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 -#endif /* GL_EXT_packed_depth_stencil */ - -#ifndef GL_EXT_packed_float -#define GL_EXT_packed_float 1 -#define GL_R11F_G11F_B10F_EXT 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B -#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C -#endif /* GL_EXT_packed_float */ - -#ifndef GL_EXT_packed_pixels -#define GL_EXT_packed_pixels 1 -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 -#endif /* GL_EXT_packed_pixels */ - -#ifndef GL_EXT_paletted_texture -#define GL_EXT_paletted_texture 1 -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void *data); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableEXT (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table); -GLAPI void APIENTRY glGetColorTableEXT (GLenum target, GLenum format, GLenum type, void *data); -GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -#endif -#endif /* GL_EXT_paletted_texture */ - -#ifndef GL_EXT_pixel_buffer_object -#define GL_EXT_pixel_buffer_object 1 -#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF -#endif /* GL_EXT_pixel_buffer_object */ - -#ifndef GL_EXT_pixel_transform -#define GL_EXT_pixel_transform 1 -#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define GL_CUBIC_EXT 0x8334 -#define GL_AVERAGE_EXT 0x8335 -#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetPixelTransformParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetPixelTransformParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -#endif -#endif /* GL_EXT_pixel_transform */ - -#ifndef GL_EXT_pixel_transform_color_table -#define GL_EXT_pixel_transform_color_table 1 -#endif /* GL_EXT_pixel_transform_color_table */ - -#ifndef GL_EXT_point_parameters -#define GL_EXT_point_parameters 1 -#define GL_POINT_SIZE_MIN_EXT 0x8126 -#define GL_POINT_SIZE_MAX_EXT 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define GL_DISTANCE_ATTENUATION_EXT 0x8129 -typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfEXT (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvEXT (GLenum pname, const GLfloat *params); -#endif -#endif /* GL_EXT_point_parameters */ - -#ifndef GL_EXT_polygon_offset -#define GL_EXT_polygon_offset 1 -#define GL_POLYGON_OFFSET_EXT 0x8037 -#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 -typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat factor, GLfloat bias); -#endif -#endif /* GL_EXT_polygon_offset */ - -#ifndef GL_EXT_polygon_offset_clamp -#define GL_EXT_polygon_offset_clamp 1 -#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B -typedef void (APIENTRYP PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPolygonOffsetClampEXT (GLfloat factor, GLfloat units, GLfloat clamp); -#endif -#endif /* GL_EXT_polygon_offset_clamp */ - -#ifndef GL_EXT_post_depth_coverage -#define GL_EXT_post_depth_coverage 1 -#endif /* GL_EXT_post_depth_coverage */ - -#ifndef GL_EXT_provoking_vertex -#define GL_EXT_provoking_vertex 1 -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E -#define GL_PROVOKING_VERTEX_EXT 0x8E4F -typedef void (APIENTRYP PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProvokingVertexEXT (GLenum mode); -#endif -#endif /* GL_EXT_provoking_vertex */ - -#ifndef GL_EXT_raster_multisample -#define GL_EXT_raster_multisample 1 -#define GL_RASTER_MULTISAMPLE_EXT 0x9327 -#define GL_RASTER_SAMPLES_EXT 0x9328 -#define GL_MAX_RASTER_SAMPLES_EXT 0x9329 -#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A -#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B -#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C -typedef void (APIENTRYP PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRasterSamplesEXT (GLuint samples, GLboolean fixedsamplelocations); -#endif -#endif /* GL_EXT_raster_multisample */ - -#ifndef GL_EXT_rescale_normal -#define GL_EXT_rescale_normal 1 -#define GL_RESCALE_NORMAL_EXT 0x803A -#endif /* GL_EXT_rescale_normal */ - -#ifndef GL_EXT_secondary_color -#define GL_EXT_secondary_color 1 -#define GL_COLOR_SUM_EXT 0x8458 -#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue); -GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *v); -GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue); -GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *v); -GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue); -GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *v); -GLAPI void APIENTRY glSecondaryColor3iEXT (GLint red, GLint green, GLint blue); -GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *v); -GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue); -GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *v); -GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue); -GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *v); -GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue); -GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *v); -GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue); -GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *v); -GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer); -#endif -#endif /* GL_EXT_secondary_color */ - -#ifndef GL_EXT_semaphore -#define GL_EXT_semaphore 1 -#define GL_LAYOUT_GENERAL_EXT 0x958D -#define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E -#define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F -#define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590 -#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591 -#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592 -#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593 -#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530 -#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531 -typedef void (APIENTRYP PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint *semaphores); -typedef void (APIENTRYP PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint *semaphores); -typedef GLboolean (APIENTRYP PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore); -typedef void (APIENTRYP PFNGLSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, const GLuint64 *params); -typedef void (APIENTRYP PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, GLuint64 *params); -typedef void (APIENTRYP PFNGLWAITSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); -typedef void (APIENTRYP PFNGLSIGNALSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenSemaphoresEXT (GLsizei n, GLuint *semaphores); -GLAPI void APIENTRY glDeleteSemaphoresEXT (GLsizei n, const GLuint *semaphores); -GLAPI GLboolean APIENTRY glIsSemaphoreEXT (GLuint semaphore); -GLAPI void APIENTRY glSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, const GLuint64 *params); -GLAPI void APIENTRY glGetSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, GLuint64 *params); -GLAPI void APIENTRY glWaitSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); -GLAPI void APIENTRY glSignalSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); -#endif -#endif /* GL_EXT_semaphore */ - -#ifndef GL_EXT_semaphore_fd -#define GL_EXT_semaphore_fd 1 -typedef void (APIENTRYP PFNGLIMPORTSEMAPHOREFDEXTPROC) (GLuint semaphore, GLenum handleType, GLint fd); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glImportSemaphoreFdEXT (GLuint semaphore, GLenum handleType, GLint fd); -#endif -#endif /* GL_EXT_semaphore_fd */ - -#ifndef GL_EXT_semaphore_win32 -#define GL_EXT_semaphore_win32 1 -#define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594 -#define GL_D3D12_FENCE_VALUE_EXT 0x9595 -typedef void (APIENTRYP PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC) (GLuint semaphore, GLenum handleType, void *handle); -typedef void (APIENTRYP PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC) (GLuint semaphore, GLenum handleType, const void *name); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glImportSemaphoreWin32HandleEXT (GLuint semaphore, GLenum handleType, void *handle); -GLAPI void APIENTRY glImportSemaphoreWin32NameEXT (GLuint semaphore, GLenum handleType, const void *name); -#endif -#endif /* GL_EXT_semaphore_win32 */ - -#ifndef GL_EXT_separate_shader_objects -#define GL_EXT_separate_shader_objects 1 -#define GL_ACTIVE_PROGRAM_EXT 0x8B8D -typedef void (APIENTRYP PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); -typedef void (APIENTRYP PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar *string); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUseShaderProgramEXT (GLenum type, GLuint program); -GLAPI void APIENTRY glActiveProgramEXT (GLuint program); -GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *string); -#endif -#endif /* GL_EXT_separate_shader_objects */ - -#ifndef GL_EXT_separate_specular_color -#define GL_EXT_separate_specular_color 1 -#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define GL_SINGLE_COLOR_EXT 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA -#endif /* GL_EXT_separate_specular_color */ - -#ifndef GL_EXT_shader_framebuffer_fetch -#define GL_EXT_shader_framebuffer_fetch 1 -#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 -#endif /* GL_EXT_shader_framebuffer_fetch */ - -#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent -#define GL_EXT_shader_framebuffer_fetch_non_coherent 1 -typedef void (APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFramebufferFetchBarrierEXT (void); -#endif -#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */ - -#ifndef GL_EXT_shader_image_load_formatted -#define GL_EXT_shader_image_load_formatted 1 -#endif /* GL_EXT_shader_image_load_formatted */ - -#ifndef GL_EXT_shader_image_load_store -#define GL_EXT_shader_image_load_store 1 -#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 -#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A -#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B -#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C -#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D -#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E -#define GL_IMAGE_1D_EXT 0x904C -#define GL_IMAGE_2D_EXT 0x904D -#define GL_IMAGE_3D_EXT 0x904E -#define GL_IMAGE_2D_RECT_EXT 0x904F -#define GL_IMAGE_CUBE_EXT 0x9050 -#define GL_IMAGE_BUFFER_EXT 0x9051 -#define GL_IMAGE_1D_ARRAY_EXT 0x9052 -#define GL_IMAGE_2D_ARRAY_EXT 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 -#define GL_INT_IMAGE_1D_EXT 0x9057 -#define GL_INT_IMAGE_2D_EXT 0x9058 -#define GL_INT_IMAGE_3D_EXT 0x9059 -#define GL_INT_IMAGE_2D_RECT_EXT 0x905A -#define GL_INT_IMAGE_CUBE_EXT 0x905B -#define GL_INT_IMAGE_BUFFER_EXT 0x905C -#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D -#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C -#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D -#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 -#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 -#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF -typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -typedef void (APIENTRYP PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindImageTextureEXT (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -GLAPI void APIENTRY glMemoryBarrierEXT (GLbitfield barriers); -#endif -#endif /* GL_EXT_shader_image_load_store */ - -#ifndef GL_EXT_shader_integer_mix -#define GL_EXT_shader_integer_mix 1 -#endif /* GL_EXT_shader_integer_mix */ - -#ifndef GL_EXT_shader_samples_identical -#define GL_EXT_shader_samples_identical 1 -#endif /* GL_EXT_shader_samples_identical */ - -#ifndef GL_EXT_shadow_funcs -#define GL_EXT_shadow_funcs 1 -#endif /* GL_EXT_shadow_funcs */ - -#ifndef GL_EXT_shared_texture_palette -#define GL_EXT_shared_texture_palette 1 -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB -#endif /* GL_EXT_shared_texture_palette */ - -#ifndef GL_EXT_sparse_texture2 -#define GL_EXT_sparse_texture2 1 -#endif /* GL_EXT_sparse_texture2 */ - -#ifndef GL_EXT_stencil_clear_tag -#define GL_EXT_stencil_clear_tag 1 -#define GL_STENCIL_TAG_BITS_EXT 0x88F2 -#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 -typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilClearTagEXT (GLsizei stencilTagBits, GLuint stencilClearTag); -#endif -#endif /* GL_EXT_stencil_clear_tag */ - -#ifndef GL_EXT_stencil_two_side -#define GL_EXT_stencil_two_side 1 -#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 -#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 -typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum face); -#endif -#endif /* GL_EXT_stencil_two_side */ - -#ifndef GL_EXT_stencil_wrap -#define GL_EXT_stencil_wrap 1 -#define GL_INCR_WRAP_EXT 0x8507 -#define GL_DECR_WRAP_EXT 0x8508 -#endif /* GL_EXT_stencil_wrap */ - -#ifndef GL_EXT_subtexture -#define GL_EXT_subtexture 1 -typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -#endif -#endif /* GL_EXT_subtexture */ - -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 -#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 -#endif /* GL_EXT_texture */ - -#ifndef GL_EXT_texture3D -#define GL_EXT_texture3D 1 -#define GL_PACK_SKIP_IMAGES_EXT 0x806B -#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_TEXTURE_DEPTH_EXT 0x8071 -#define GL_TEXTURE_WRAP_R_EXT 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 -typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage3DEXT (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -#endif -#endif /* GL_EXT_texture3D */ - -#ifndef GL_EXT_texture_array -#define GL_EXT_texture_array 1 -#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 -#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D -#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF -#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -#endif -#endif /* GL_EXT_texture_array */ - -#ifndef GL_EXT_texture_buffer_object -#define GL_EXT_texture_buffer_object 1 -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E -typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer); -#endif -#endif /* GL_EXT_texture_buffer_object */ - -#ifndef GL_EXT_texture_compression_latc -#define GL_EXT_texture_compression_latc 1 -#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 -#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 -#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 -#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 -#endif /* GL_EXT_texture_compression_latc */ - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_EXT_texture_compression_rgtc 1 -#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC -#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD -#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE -#endif /* GL_EXT_texture_compression_rgtc */ - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_EXT_texture_compression_s3tc 1 -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif /* GL_EXT_texture_compression_s3tc */ - -#ifndef GL_EXT_texture_cube_map -#define GL_EXT_texture_cube_map 1 -#define GL_NORMAL_MAP_EXT 0x8511 -#define GL_REFLECTION_MAP_EXT 0x8512 -#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C -#endif /* GL_EXT_texture_cube_map */ - -#ifndef GL_EXT_texture_env_add -#define GL_EXT_texture_env_add 1 -#endif /* GL_EXT_texture_env_add */ - -#ifndef GL_EXT_texture_env_combine -#define GL_EXT_texture_env_combine 1 -#define GL_COMBINE_EXT 0x8570 -#define GL_COMBINE_RGB_EXT 0x8571 -#define GL_COMBINE_ALPHA_EXT 0x8572 -#define GL_RGB_SCALE_EXT 0x8573 -#define GL_ADD_SIGNED_EXT 0x8574 -#define GL_INTERPOLATE_EXT 0x8575 -#define GL_CONSTANT_EXT 0x8576 -#define GL_PRIMARY_COLOR_EXT 0x8577 -#define GL_PREVIOUS_EXT 0x8578 -#define GL_SOURCE0_RGB_EXT 0x8580 -#define GL_SOURCE1_RGB_EXT 0x8581 -#define GL_SOURCE2_RGB_EXT 0x8582 -#define GL_SOURCE0_ALPHA_EXT 0x8588 -#define GL_SOURCE1_ALPHA_EXT 0x8589 -#define GL_SOURCE2_ALPHA_EXT 0x858A -#define GL_OPERAND0_RGB_EXT 0x8590 -#define GL_OPERAND1_RGB_EXT 0x8591 -#define GL_OPERAND2_RGB_EXT 0x8592 -#define GL_OPERAND0_ALPHA_EXT 0x8598 -#define GL_OPERAND1_ALPHA_EXT 0x8599 -#define GL_OPERAND2_ALPHA_EXT 0x859A -#endif /* GL_EXT_texture_env_combine */ - -#ifndef GL_EXT_texture_env_dot3 -#define GL_EXT_texture_env_dot3 1 -#define GL_DOT3_RGB_EXT 0x8740 -#define GL_DOT3_RGBA_EXT 0x8741 -#endif /* GL_EXT_texture_env_dot3 */ - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif /* GL_EXT_texture_filter_anisotropic */ - -#ifndef GL_EXT_texture_filter_minmax -#define GL_EXT_texture_filter_minmax 1 -#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366 -#define GL_WEIGHTED_AVERAGE_EXT 0x9367 -#endif /* GL_EXT_texture_filter_minmax */ - -#ifndef GL_EXT_texture_integer -#define GL_EXT_texture_integer 1 -#define GL_RGBA32UI_EXT 0x8D70 -#define GL_RGB32UI_EXT 0x8D71 -#define GL_ALPHA32UI_EXT 0x8D72 -#define GL_INTENSITY32UI_EXT 0x8D73 -#define GL_LUMINANCE32UI_EXT 0x8D74 -#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 -#define GL_RGBA16UI_EXT 0x8D76 -#define GL_RGB16UI_EXT 0x8D77 -#define GL_ALPHA16UI_EXT 0x8D78 -#define GL_INTENSITY16UI_EXT 0x8D79 -#define GL_LUMINANCE16UI_EXT 0x8D7A -#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B -#define GL_RGBA8UI_EXT 0x8D7C -#define GL_RGB8UI_EXT 0x8D7D -#define GL_ALPHA8UI_EXT 0x8D7E -#define GL_INTENSITY8UI_EXT 0x8D7F -#define GL_LUMINANCE8UI_EXT 0x8D80 -#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 -#define GL_RGBA32I_EXT 0x8D82 -#define GL_RGB32I_EXT 0x8D83 -#define GL_ALPHA32I_EXT 0x8D84 -#define GL_INTENSITY32I_EXT 0x8D85 -#define GL_LUMINANCE32I_EXT 0x8D86 -#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 -#define GL_RGBA16I_EXT 0x8D88 -#define GL_RGB16I_EXT 0x8D89 -#define GL_ALPHA16I_EXT 0x8D8A -#define GL_INTENSITY16I_EXT 0x8D8B -#define GL_LUMINANCE16I_EXT 0x8D8C -#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D -#define GL_RGBA8I_EXT 0x8D8E -#define GL_RGB8I_EXT 0x8D8F -#define GL_ALPHA8I_EXT 0x8D90 -#define GL_INTENSITY8I_EXT 0x8D91 -#define GL_LUMINANCE8I_EXT 0x8D92 -#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 -#define GL_RED_INTEGER_EXT 0x8D94 -#define GL_GREEN_INTEGER_EXT 0x8D95 -#define GL_BLUE_INTEGER_EXT 0x8D96 -#define GL_ALPHA_INTEGER_EXT 0x8D97 -#define GL_RGB_INTEGER_EXT 0x8D98 -#define GL_RGBA_INTEGER_EXT 0x8D99 -#define GL_BGR_INTEGER_EXT 0x8D9A -#define GL_BGRA_INTEGER_EXT 0x8D9B -#define GL_LUMINANCE_INTEGER_EXT 0x8D9C -#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D -#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E -typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); -typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha); -GLAPI void APIENTRY glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha); -#endif -#endif /* GL_EXT_texture_integer */ - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 -#endif /* GL_EXT_texture_lod_bias */ - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_EXT_texture_mirror_clamp 1 -#define GL_MIRROR_CLAMP_EXT 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 -#endif /* GL_EXT_texture_mirror_clamp */ - -#ifndef GL_EXT_texture_object -#define GL_EXT_texture_object 1 -#define GL_TEXTURE_PRIORITY_EXT 0x8066 -#define GL_TEXTURE_RESIDENT_EXT 0x8067 -#define GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define GL_TEXTURE_3D_BINDING_EXT 0x806A -typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); -typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); -typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); -typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei n, const GLuint *textures, GLboolean *residences); -GLAPI void APIENTRY glBindTextureEXT (GLenum target, GLuint texture); -GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei n, const GLuint *textures); -GLAPI void APIENTRY glGenTexturesEXT (GLsizei n, GLuint *textures); -GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint texture); -GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei n, const GLuint *textures, const GLclampf *priorities); -#endif -#endif /* GL_EXT_texture_object */ - -#ifndef GL_EXT_texture_perturb_normal -#define GL_EXT_texture_perturb_normal 1 -#define GL_PERTURB_EXT 0x85AE -#define GL_TEXTURE_NORMAL_EXT 0x85AF -typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureNormalEXT (GLenum mode); -#endif -#endif /* GL_EXT_texture_perturb_normal */ - -#ifndef GL_EXT_texture_sRGB -#define GL_EXT_texture_sRGB 1 -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB8_EXT 0x8C41 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 -#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 -#define GL_SLUMINANCE_EXT 0x8C46 -#define GL_SLUMINANCE8_EXT 0x8C47 -#define GL_COMPRESSED_SRGB_EXT 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 -#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#endif /* GL_EXT_texture_sRGB */ - -#ifndef GL_EXT_texture_sRGB_R8 -#define GL_EXT_texture_sRGB_R8 1 -#define GL_SR8_EXT 0x8FBD -#endif /* GL_EXT_texture_sRGB_R8 */ - -#ifndef GL_EXT_texture_sRGB_RG8 -#define GL_EXT_texture_sRGB_RG8 1 -#define GL_SRG8_EXT 0x8FBE -#endif /* GL_EXT_texture_sRGB_RG8 */ - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_EXT_texture_sRGB_decode 1 -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A -#endif /* GL_EXT_texture_sRGB_decode */ - -#ifndef GL_EXT_texture_shadow_lod -#define GL_EXT_texture_shadow_lod 1 -#endif /* GL_EXT_texture_shadow_lod */ - -#ifndef GL_EXT_texture_shared_exponent -#define GL_EXT_texture_shared_exponent 1 -#define GL_RGB9_E5_EXT 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E -#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F -#endif /* GL_EXT_texture_shared_exponent */ - -#ifndef GL_EXT_texture_snorm -#define GL_EXT_texture_snorm 1 -#define GL_ALPHA_SNORM 0x9010 -#define GL_LUMINANCE_SNORM 0x9011 -#define GL_LUMINANCE_ALPHA_SNORM 0x9012 -#define GL_INTENSITY_SNORM 0x9013 -#define GL_ALPHA8_SNORM 0x9014 -#define GL_LUMINANCE8_SNORM 0x9015 -#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 -#define GL_INTENSITY8_SNORM 0x9017 -#define GL_ALPHA16_SNORM 0x9018 -#define GL_LUMINANCE16_SNORM 0x9019 -#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A -#define GL_INTENSITY16_SNORM 0x901B -#define GL_RED_SNORM 0x8F90 -#define GL_RG_SNORM 0x8F91 -#define GL_RGB_SNORM 0x8F92 -#define GL_RGBA_SNORM 0x8F93 -#endif /* GL_EXT_texture_snorm */ - -#ifndef GL_EXT_texture_storage -#define GL_EXT_texture_storage 1 -#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F -#define GL_RGBA32F_EXT 0x8814 -#define GL_RGB32F_EXT 0x8815 -#define GL_ALPHA32F_EXT 0x8816 -#define GL_LUMINANCE32F_EXT 0x8818 -#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 -#define GL_RGBA16F_EXT 0x881A -#define GL_RGB16F_EXT 0x881B -#define GL_ALPHA16F_EXT 0x881C -#define GL_LUMINANCE16F_EXT 0x881E -#define GL_LUMINANCE_ALPHA16F_EXT 0x881F -#define GL_BGRA8_EXT 0x93A1 -#define GL_R8_EXT 0x8229 -#define GL_RG8_EXT 0x822B -#define GL_R32F_EXT 0x822E -#define GL_RG32F_EXT 0x8230 -#define GL_R16F_EXT 0x822D -#define GL_RG16F_EXT 0x822F -typedef void (APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GLAPI void APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif -#endif /* GL_EXT_texture_storage */ - -#ifndef GL_EXT_texture_swizzle -#define GL_EXT_texture_swizzle 1 -#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 -#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 -#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 -#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 -#endif /* GL_EXT_texture_swizzle */ - -#ifndef GL_EXT_timer_query -#define GL_EXT_timer_query 1 -#define GL_TIME_ELAPSED_EXT 0x88BF -typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params); -#endif -#endif /* GL_EXT_timer_query */ - -#ifndef GL_EXT_transform_feedback -#define GL_EXT_transform_feedback 1 -#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F -#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C -#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 -#define GL_RASTERIZER_DISCARD_EXT 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackEXT (GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedbackEXT (void); -GLAPI void APIENTRY glBindBufferRangeEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -GLAPI void APIENTRY glBindBufferBaseEXT (GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -#endif -#endif /* GL_EXT_transform_feedback */ - -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); -typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, void **params); -typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glArrayElementEXT (GLint i); -GLAPI void APIENTRY glColorPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -GLAPI void APIENTRY glDrawArraysEXT (GLenum mode, GLint first, GLsizei count); -GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei stride, GLsizei count, const GLboolean *pointer); -GLAPI void APIENTRY glGetPointervEXT (GLenum pname, void **params); -GLAPI void APIENTRY glIndexPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer); -GLAPI void APIENTRY glNormalPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer); -GLAPI void APIENTRY glTexCoordPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -GLAPI void APIENTRY glVertexPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); -#endif -#endif /* GL_EXT_vertex_array */ - -#ifndef GL_EXT_vertex_array_bgra -#define GL_EXT_vertex_array_bgra 1 -#endif /* GL_EXT_vertex_array_bgra */ - -#ifndef GL_EXT_vertex_attrib_64bit -#define GL_EXT_vertex_attrib_64bit 1 -#define GL_DOUBLE_VEC2_EXT 0x8FFC -#define GL_DOUBLE_VEC3_EXT 0x8FFD -#define GL_DOUBLE_VEC4_EXT 0x8FFE -#define GL_DOUBLE_MAT2_EXT 0x8F46 -#define GL_DOUBLE_MAT3_EXT 0x8F47 -#define GL_DOUBLE_MAT4_EXT 0x8F48 -#define GL_DOUBLE_MAT2x3_EXT 0x8F49 -#define GL_DOUBLE_MAT2x4_EXT 0x8F4A -#define GL_DOUBLE_MAT3x2_EXT 0x8F4B -#define GL_DOUBLE_MAT3x4_EXT 0x8F4C -#define GL_DOUBLE_MAT4x2_EXT 0x8F4D -#define GL_DOUBLE_MAT4x3_EXT 0x8F4E -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1dEXT (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttribL2dEXT (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttribL3dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttribL4dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttribL1dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL2dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL3dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL4dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribLPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glGetVertexAttribLdvEXT (GLuint index, GLenum pname, GLdouble *params); -#endif -#endif /* GL_EXT_vertex_attrib_64bit */ - -#ifndef GL_EXT_vertex_shader -#define GL_EXT_vertex_shader 1 -#define GL_VERTEX_SHADER_EXT 0x8780 -#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define GL_OP_INDEX_EXT 0x8782 -#define GL_OP_NEGATE_EXT 0x8783 -#define GL_OP_DOT3_EXT 0x8784 -#define GL_OP_DOT4_EXT 0x8785 -#define GL_OP_MUL_EXT 0x8786 -#define GL_OP_ADD_EXT 0x8787 -#define GL_OP_MADD_EXT 0x8788 -#define GL_OP_FRAC_EXT 0x8789 -#define GL_OP_MAX_EXT 0x878A -#define GL_OP_MIN_EXT 0x878B -#define GL_OP_SET_GE_EXT 0x878C -#define GL_OP_SET_LT_EXT 0x878D -#define GL_OP_CLAMP_EXT 0x878E -#define GL_OP_FLOOR_EXT 0x878F -#define GL_OP_ROUND_EXT 0x8790 -#define GL_OP_EXP_BASE_2_EXT 0x8791 -#define GL_OP_LOG_BASE_2_EXT 0x8792 -#define GL_OP_POWER_EXT 0x8793 -#define GL_OP_RECIP_EXT 0x8794 -#define GL_OP_RECIP_SQRT_EXT 0x8795 -#define GL_OP_SUB_EXT 0x8796 -#define GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define GL_OP_MOV_EXT 0x8799 -#define GL_OUTPUT_VERTEX_EXT 0x879A -#define GL_OUTPUT_COLOR0_EXT 0x879B -#define GL_OUTPUT_COLOR1_EXT 0x879C -#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define GL_OUTPUT_FOG_EXT 0x87BD -#define GL_SCALAR_EXT 0x87BE -#define GL_VECTOR_EXT 0x87BF -#define GL_MATRIX_EXT 0x87C0 -#define GL_VARIANT_EXT 0x87C1 -#define GL_INVARIANT_EXT 0x87C2 -#define GL_LOCAL_CONSTANT_EXT 0x87C3 -#define GL_LOCAL_EXT 0x87C4 -#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define GL_X_EXT 0x87D5 -#define GL_Y_EXT 0x87D6 -#define GL_Z_EXT 0x87D7 -#define GL_W_EXT 0x87D8 -#define GL_NEGATIVE_X_EXT 0x87D9 -#define GL_NEGATIVE_Y_EXT 0x87DA -#define GL_NEGATIVE_Z_EXT 0x87DB -#define GL_NEGATIVE_W_EXT 0x87DC -#define GL_ZERO_EXT 0x87DD -#define GL_ONE_EXT 0x87DE -#define GL_NEGATIVE_ONE_EXT 0x87DF -#define GL_NORMALIZED_RANGE_EXT 0x87E0 -#define GL_FULL_RANGE_EXT 0x87E1 -#define GL_CURRENT_VERTEX_EXT 0x87E2 -#define GL_MVP_MATRIX_EXT 0x87E3 -#define GL_VARIANT_VALUE_EXT 0x87E4 -#define GL_VARIANT_DATATYPE_EXT 0x87E5 -#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define GL_VARIANT_ARRAY_EXT 0x87E8 -#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define GL_INVARIANT_VALUE_EXT 0x87EA -#define GL_INVARIANT_DATATYPE_EXT 0x87EB -#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED -typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); -typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); -typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const void *addr); -typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const void *addr); -typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); -typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); -typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); -typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); -typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); -typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); -typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); -typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); -typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const void *addr); -typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); -typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); -typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, void **data); -typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVertexShaderEXT (void); -GLAPI void APIENTRY glEndVertexShaderEXT (void); -GLAPI void APIENTRY glBindVertexShaderEXT (GLuint id); -GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint range); -GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint id); -GLAPI void APIENTRY glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1); -GLAPI void APIENTRY glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -GLAPI void APIENTRY glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -GLAPI void APIENTRY glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -GLAPI void APIENTRY glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -GLAPI void APIENTRY glInsertComponentEXT (GLuint res, GLuint src, GLuint num); -GLAPI void APIENTRY glExtractComponentEXT (GLuint res, GLuint src, GLuint num); -GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -GLAPI void APIENTRY glSetInvariantEXT (GLuint id, GLenum type, const void *addr); -GLAPI void APIENTRY glSetLocalConstantEXT (GLuint id, GLenum type, const void *addr); -GLAPI void APIENTRY glVariantbvEXT (GLuint id, const GLbyte *addr); -GLAPI void APIENTRY glVariantsvEXT (GLuint id, const GLshort *addr); -GLAPI void APIENTRY glVariantivEXT (GLuint id, const GLint *addr); -GLAPI void APIENTRY glVariantfvEXT (GLuint id, const GLfloat *addr); -GLAPI void APIENTRY glVariantdvEXT (GLuint id, const GLdouble *addr); -GLAPI void APIENTRY glVariantubvEXT (GLuint id, const GLubyte *addr); -GLAPI void APIENTRY glVariantusvEXT (GLuint id, const GLushort *addr); -GLAPI void APIENTRY glVariantuivEXT (GLuint id, const GLuint *addr); -GLAPI void APIENTRY glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, const void *addr); -GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint id); -GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint id); -GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum light, GLenum value); -GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum face, GLenum value); -GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value); -GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum unit, GLenum value); -GLAPI GLuint APIENTRY glBindParameterEXT (GLenum value); -GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint id, GLenum cap); -GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); -GLAPI void APIENTRY glGetVariantPointervEXT (GLuint id, GLenum value, void **data); -GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); -GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data); -#endif -#endif /* GL_EXT_vertex_shader */ - -#ifndef GL_EXT_vertex_weighting -#define GL_EXT_vertex_weighting 1 -#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 -#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6 -#define GL_MODELVIEW1_MATRIX_EXT 0x8506 -#define GL_VERTEX_WEIGHTING_EXT 0x8509 -#define GL_MODELVIEW0_EXT 0x1700 -#define GL_MODELVIEW1_EXT 0x850A -#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexWeightfEXT (GLfloat weight); -GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *weight); -GLAPI void APIENTRY glVertexWeightPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer); -#endif -#endif /* GL_EXT_vertex_weighting */ - -#ifndef GL_EXT_win32_keyed_mutex -#define GL_EXT_win32_keyed_mutex 1 -typedef GLboolean (APIENTRYP PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key, GLuint timeout); -typedef GLboolean (APIENTRYP PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAcquireKeyedMutexWin32EXT (GLuint memory, GLuint64 key, GLuint timeout); -GLAPI GLboolean APIENTRY glReleaseKeyedMutexWin32EXT (GLuint memory, GLuint64 key); -#endif -#endif /* GL_EXT_win32_keyed_mutex */ - -#ifndef GL_EXT_window_rectangles -#define GL_EXT_window_rectangles 1 -#define GL_INCLUSIVE_EXT 0x8F10 -#define GL_EXCLUSIVE_EXT 0x8F11 -#define GL_WINDOW_RECTANGLE_EXT 0x8F12 -#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13 -#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14 -#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15 -typedef void (APIENTRYP PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint *box); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLint *box); -#endif -#endif /* GL_EXT_window_rectangles */ - -#ifndef GL_EXT_x11_sync_object -#define GL_EXT_x11_sync_object 1 -#define GL_SYNC_X11_FENCE_EXT 0x90E1 -typedef GLsync (APIENTRYP PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); -#endif -#endif /* GL_EXT_x11_sync_object */ - -#ifndef GL_GREMEDY_frame_terminator -#define GL_GREMEDY_frame_terminator 1 -typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameTerminatorGREMEDY (void); -#endif -#endif /* GL_GREMEDY_frame_terminator */ - -#ifndef GL_GREMEDY_string_marker -#define GL_GREMEDY_string_marker 1 -typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void *string); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei len, const void *string); -#endif -#endif /* GL_GREMEDY_string_marker */ - -#ifndef GL_HP_convolution_border_modes -#define GL_HP_convolution_border_modes 1 -#define GL_IGNORE_BORDER_HP 0x8150 -#define GL_CONSTANT_BORDER_HP 0x8151 -#define GL_REPLICATE_BORDER_HP 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 -#endif /* GL_HP_convolution_border_modes */ - -#ifndef GL_HP_image_transform -#define GL_HP_image_transform 1 -#define GL_IMAGE_SCALE_X_HP 0x8155 -#define GL_IMAGE_SCALE_Y_HP 0x8156 -#define GL_IMAGE_TRANSLATE_X_HP 0x8157 -#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 -#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 -#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A -#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B -#define GL_IMAGE_MAG_FILTER_HP 0x815C -#define GL_IMAGE_MIN_FILTER_HP 0x815D -#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E -#define GL_CUBIC_HP 0x815F -#define GL_AVERAGE_HP 0x8160 -#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 -#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 -#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glImageTransformParameteriHP (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glImageTransformParameterfHP (GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glImageTransformParameterivHP (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum target, GLenum pname, GLfloat *params); -#endif -#endif /* GL_HP_image_transform */ - -#ifndef GL_HP_occlusion_test -#define GL_HP_occlusion_test 1 -#define GL_OCCLUSION_TEST_HP 0x8165 -#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 -#endif /* GL_HP_occlusion_test */ - -#ifndef GL_HP_texture_lighting -#define GL_HP_texture_lighting 1 -#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 -#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 -#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 -#endif /* GL_HP_texture_lighting */ - -#ifndef GL_IBM_cull_vertex -#define GL_IBM_cull_vertex 1 -#define GL_CULL_VERTEX_IBM 103050 -#endif /* GL_IBM_cull_vertex */ - -#ifndef GL_IBM_multimode_draw_arrays -#define GL_IBM_multimode_draw_arrays 1 -typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride); -#endif -#endif /* GL_IBM_multimode_draw_arrays */ - -#ifndef GL_IBM_rasterpos_clip -#define GL_IBM_rasterpos_clip 1 -#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 -#endif /* GL_IBM_rasterpos_clip */ - -#ifndef GL_IBM_static_data -#define GL_IBM_static_data 1 -#define GL_ALL_STATIC_DATA_IBM 103060 -#define GL_STATIC_VERTEX_ARRAY_IBM 103061 -typedef void (APIENTRYP PFNGLFLUSHSTATICDATAIBMPROC) (GLenum target); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushStaticDataIBM (GLenum target); -#endif -#endif /* GL_IBM_static_data */ - -#ifndef GL_IBM_texture_mirrored_repeat -#define GL_IBM_texture_mirrored_repeat 1 -#define GL_MIRRORED_REPEAT_IBM 0x8370 -#endif /* GL_IBM_texture_mirrored_repeat */ - -#ifndef GL_IBM_vertex_array_lists -#define GL_IBM_vertex_array_lists 1 -#define GL_VERTEX_ARRAY_LIST_IBM 103070 -#define GL_NORMAL_ARRAY_LIST_IBM 103071 -#define GL_COLOR_ARRAY_LIST_IBM 103072 -#define GL_INDEX_ARRAY_LIST_IBM 103073 -#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 -typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint stride, const GLboolean **pointer, GLint ptrstride); -GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); -GLAPI void APIENTRY glIndexPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); -GLAPI void APIENTRY glNormalPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); -GLAPI void APIENTRY glTexCoordPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -GLAPI void APIENTRY glVertexPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); -#endif -#endif /* GL_IBM_vertex_array_lists */ - -#ifndef GL_INGR_blend_func_separate -#define GL_INGR_blend_func_separate 1 -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif -#endif /* GL_INGR_blend_func_separate */ - -#ifndef GL_INGR_color_clamp -#define GL_INGR_color_clamp 1 -#define GL_RED_MIN_CLAMP_INGR 0x8560 -#define GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define GL_RED_MAX_CLAMP_INGR 0x8564 -#define GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 -#endif /* GL_INGR_color_clamp */ - -#ifndef GL_INGR_interlace_read -#define GL_INGR_interlace_read 1 -#define GL_INTERLACE_READ_INGR 0x8568 -#endif /* GL_INGR_interlace_read */ - -#ifndef GL_INTEL_blackhole_render -#define GL_INTEL_blackhole_render 1 -#define GL_BLACKHOLE_RENDER_INTEL 0x83FC -#endif /* GL_INTEL_blackhole_render */ - -#ifndef GL_INTEL_conservative_rasterization -#define GL_INTEL_conservative_rasterization 1 -#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE -#endif /* GL_INTEL_conservative_rasterization */ - -#ifndef GL_INTEL_fragment_shader_ordering -#define GL_INTEL_fragment_shader_ordering 1 -#endif /* GL_INTEL_fragment_shader_ordering */ - -#ifndef GL_INTEL_framebuffer_CMAA -#define GL_INTEL_framebuffer_CMAA 1 -typedef void (APIENTRYP PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glApplyFramebufferAttachmentCMAAINTEL (void); -#endif -#endif /* GL_INTEL_framebuffer_CMAA */ - -#ifndef GL_INTEL_map_texture -#define GL_INTEL_map_texture 1 -#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF -#define GL_LAYOUT_DEFAULT_INTEL 0 -#define GL_LAYOUT_LINEAR_INTEL 1 -#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2 -typedef void (APIENTRYP PFNGLSYNCTEXTUREINTELPROC) (GLuint texture); -typedef void (APIENTRYP PFNGLUNMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level); -typedef void *(APIENTRYP PFNGLMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSyncTextureINTEL (GLuint texture); -GLAPI void APIENTRY glUnmapTexture2DINTEL (GLuint texture, GLint level); -GLAPI void *APIENTRY glMapTexture2DINTEL (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout); -#endif -#endif /* GL_INTEL_map_texture */ - -#ifndef GL_INTEL_parallel_arrays -#define GL_INTEL_parallel_arrays 1 -#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 -typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void **pointer); -typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexPointervINTEL (GLint size, GLenum type, const void **pointer); -GLAPI void APIENTRY glNormalPointervINTEL (GLenum type, const void **pointer); -GLAPI void APIENTRY glColorPointervINTEL (GLint size, GLenum type, const void **pointer); -GLAPI void APIENTRY glTexCoordPointervINTEL (GLint size, GLenum type, const void **pointer); -#endif -#endif /* GL_INTEL_parallel_arrays */ - -#ifndef GL_INTEL_performance_query -#define GL_INTEL_performance_query 1 -#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000 -#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001 -#define GL_PERFQUERY_WAIT_INTEL 0x83FB -#define GL_PERFQUERY_FLUSH_INTEL 0x83FA -#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 -#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 -#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 -#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 -#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 -#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 -#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 -#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 -#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 -#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA -#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB -#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC -#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD -#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE -#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF -#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 -typedef void (APIENTRYP PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (APIENTRYP PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint *queryHandle); -typedef void (APIENTRYP PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId); -typedef void (APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId); -typedef void (APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); -typedef void (APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); -typedef void (APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId); -typedef void (APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginPerfQueryINTEL (GLuint queryHandle); -GLAPI void APIENTRY glCreatePerfQueryINTEL (GLuint queryId, GLuint *queryHandle); -GLAPI void APIENTRY glDeletePerfQueryINTEL (GLuint queryHandle); -GLAPI void APIENTRY glEndPerfQueryINTEL (GLuint queryHandle); -GLAPI void APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId); -GLAPI void APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId); -GLAPI void APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); -GLAPI void APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); -GLAPI void APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId); -GLAPI void APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); -#endif -#endif /* GL_INTEL_performance_query */ - -#ifndef GL_MESAX_texture_stack -#define GL_MESAX_texture_stack 1 -#define GL_TEXTURE_1D_STACK_MESAX 0x8759 -#define GL_TEXTURE_2D_STACK_MESAX 0x875A -#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B -#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C -#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D -#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E -#endif /* GL_MESAX_texture_stack */ - -#ifndef GL_MESA_framebuffer_flip_x -#define GL_MESA_framebuffer_flip_x 1 -#define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC -#endif /* GL_MESA_framebuffer_flip_x */ - -#ifndef GL_MESA_framebuffer_flip_y -#define GL_MESA_framebuffer_flip_y 1 -#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB -typedef void (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFramebufferParameteriMESA (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glGetFramebufferParameterivMESA (GLenum target, GLenum pname, GLint *params); -#endif -#endif /* GL_MESA_framebuffer_flip_y */ - -#ifndef GL_MESA_framebuffer_swap_xy -#define GL_MESA_framebuffer_swap_xy 1 -#define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD -#endif /* GL_MESA_framebuffer_swap_xy */ - -#ifndef GL_MESA_pack_invert -#define GL_MESA_pack_invert 1 -#define GL_PACK_INVERT_MESA 0x8758 -#endif /* GL_MESA_pack_invert */ - -#ifndef GL_MESA_program_binary_formats -#define GL_MESA_program_binary_formats 1 -#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F -#endif /* GL_MESA_program_binary_formats */ - -#ifndef GL_MESA_resize_buffers -#define GL_MESA_resize_buffers 1 -typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glResizeBuffersMESA (void); -#endif -#endif /* GL_MESA_resize_buffers */ - -#ifndef GL_MESA_shader_integer_functions -#define GL_MESA_shader_integer_functions 1 -#endif /* GL_MESA_shader_integer_functions */ - -#ifndef GL_MESA_tile_raster_order -#define GL_MESA_tile_raster_order 1 -#define GL_TILE_RASTER_ORDER_FIXED_MESA 0x8BB8 -#define GL_TILE_RASTER_ORDER_INCREASING_X_MESA 0x8BB9 -#define GL_TILE_RASTER_ORDER_INCREASING_Y_MESA 0x8BBA -#endif /* GL_MESA_tile_raster_order */ - -#ifndef GL_MESA_window_pos -#define GL_MESA_window_pos 1 -typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dMESA (GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *v); -GLAPI void APIENTRY glWindowPos2fMESA (GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *v); -GLAPI void APIENTRY glWindowPos2iMESA (GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *v); -GLAPI void APIENTRY glWindowPos2sMESA (GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *v); -GLAPI void APIENTRY glWindowPos3dMESA (GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *v); -GLAPI void APIENTRY glWindowPos3fMESA (GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *v); -GLAPI void APIENTRY glWindowPos3iMESA (GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *v); -GLAPI void APIENTRY glWindowPos3sMESA (GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *v); -GLAPI void APIENTRY glWindowPos4dMESA (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *v); -GLAPI void APIENTRY glWindowPos4fMESA (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *v); -GLAPI void APIENTRY glWindowPos4iMESA (GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *v); -GLAPI void APIENTRY glWindowPos4sMESA (GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *v); -#endif -#endif /* GL_MESA_window_pos */ - -#ifndef GL_MESA_ycbcr_texture -#define GL_MESA_ycbcr_texture 1 -#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB -#define GL_YCBCR_MESA 0x8757 -#endif /* GL_MESA_ycbcr_texture */ - -#ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers -#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1 -#endif /* GL_NVX_blend_equation_advanced_multi_draw_buffers */ - -#ifndef GL_NVX_conditional_render -#define GL_NVX_conditional_render 1 -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVXPROC) (GLuint id); -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVXPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginConditionalRenderNVX (GLuint id); -GLAPI void APIENTRY glEndConditionalRenderNVX (void); -#endif -#endif /* GL_NVX_conditional_render */ - -#ifndef GL_NVX_gpu_memory_info -#define GL_NVX_gpu_memory_info 1 -#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 -#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 -#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 -#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A -#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B -#endif /* GL_NVX_gpu_memory_info */ - -#ifndef GL_NVX_gpu_multicast2 -#define GL_NVX_gpu_multicast2 1 -#define GL_UPLOAD_GPU_MASK_NVX 0x954A -typedef void (APIENTRYP PFNGLUPLOADGPUMASKNVXPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLMULTICASTVIEWPORTARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC) (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff); -typedef void (APIENTRYP PFNGLMULTICASTSCISSORARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLint *v); -typedef GLuint (APIENTRYP PFNGLASYNCCOPYBUFFERSUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); -typedef GLuint (APIENTRYP PFNGLASYNCCOPYIMAGESUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUploadGpuMaskNVX (GLbitfield mask); -GLAPI void APIENTRY glMulticastViewportArrayvNVX (GLuint gpu, GLuint first, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glMulticastViewportPositionWScaleNVX (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff); -GLAPI void APIENTRY glMulticastScissorArrayvNVX (GLuint gpu, GLuint first, GLsizei count, const GLint *v); -GLAPI GLuint APIENTRY glAsyncCopyBufferSubDataNVX (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); -GLAPI GLuint APIENTRY glAsyncCopyImageSubDataNVX (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); -#endif -#endif /* GL_NVX_gpu_multicast2 */ - -#ifndef GL_NVX_linked_gpu_multicast -#define GL_NVX_linked_gpu_multicast 1 -#define GL_LGPU_SEPARATE_STORAGE_BIT_NVX 0x0800 -#define GL_MAX_LGPU_GPUS_NVX 0x92BA -typedef void (APIENTRYP PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -typedef void (APIENTRYP PFNGLLGPUCOPYIMAGESUBDATANVXPROC) (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -typedef void (APIENTRYP PFNGLLGPUINTERLOCKNVXPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLGPUNamedBufferSubDataNVX (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -GLAPI void APIENTRY glLGPUCopyImageSubDataNVX (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -GLAPI void APIENTRY glLGPUInterlockNVX (void); -#endif -#endif /* GL_NVX_linked_gpu_multicast */ - -#ifndef GL_NVX_progress_fence -#define GL_NVX_progress_fence 1 -typedef GLuint (APIENTRYP PFNGLCREATEPROGRESSFENCENVXPROC) (void); -typedef void (APIENTRYP PFNGLSIGNALSEMAPHOREUI64NVXPROC) (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); -typedef void (APIENTRYP PFNGLWAITSEMAPHOREUI64NVXPROC) (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); -typedef void (APIENTRYP PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC) (GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glCreateProgressFenceNVX (void); -GLAPI void APIENTRY glSignalSemaphoreui64NVX (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); -GLAPI void APIENTRY glWaitSemaphoreui64NVX (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); -GLAPI void APIENTRY glClientWaitSemaphoreui64NVX (GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); -#endif -#endif /* GL_NVX_progress_fence */ - -#ifndef GL_NV_alpha_to_coverage_dither_control -#define GL_NV_alpha_to_coverage_dither_control 1 -#define GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV 0x934D -#define GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV 0x934E -#define GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV 0x934F -#define GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV 0x92BF -typedef void (APIENTRYP PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glAlphaToCoverageDitherControlNV (GLenum mode); -#endif -#endif /* GL_NV_alpha_to_coverage_dither_control */ - -#ifndef GL_NV_bindless_multi_draw_indirect -#define GL_NV_bindless_multi_draw_indirect 1 -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysIndirectBindlessNV (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); -GLAPI void APIENTRY glMultiDrawElementsIndirectBindlessNV (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); -#endif -#endif /* GL_NV_bindless_multi_draw_indirect */ - -#ifndef GL_NV_bindless_multi_draw_indirect_count -#define GL_NV_bindless_multi_draw_indirect_count 1 -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysIndirectBindlessCountNV (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); -GLAPI void APIENTRY glMultiDrawElementsIndirectBindlessCountNV (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); -#endif -#endif /* GL_NV_bindless_multi_draw_indirect_count */ - -#ifndef GL_NV_bindless_texture -#define GL_NV_bindless_texture 1 -typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); -typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); -typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef GLuint64 (APIENTRYP PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); -typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); -typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -typedef GLboolean (APIENTRYP PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef GLboolean (APIENTRYP PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint64 APIENTRY glGetTextureHandleNV (GLuint texture); -GLAPI GLuint64 APIENTRY glGetTextureSamplerHandleNV (GLuint texture, GLuint sampler); -GLAPI void APIENTRY glMakeTextureHandleResidentNV (GLuint64 handle); -GLAPI void APIENTRY glMakeTextureHandleNonResidentNV (GLuint64 handle); -GLAPI GLuint64 APIENTRY glGetImageHandleNV (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -GLAPI void APIENTRY glMakeImageHandleResidentNV (GLuint64 handle, GLenum access); -GLAPI void APIENTRY glMakeImageHandleNonResidentNV (GLuint64 handle); -GLAPI void APIENTRY glUniformHandleui64NV (GLint location, GLuint64 value); -GLAPI void APIENTRY glUniformHandleui64vNV (GLint location, GLsizei count, const GLuint64 *value); -GLAPI void APIENTRY glProgramUniformHandleui64NV (GLuint program, GLint location, GLuint64 value); -GLAPI void APIENTRY glProgramUniformHandleui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -GLAPI GLboolean APIENTRY glIsTextureHandleResidentNV (GLuint64 handle); -GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle); -#endif -#endif /* GL_NV_bindless_texture */ - -#ifndef GL_NV_blend_equation_advanced -#define GL_NV_blend_equation_advanced 1 -#define GL_BLEND_OVERLAP_NV 0x9281 -#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 -#define GL_BLUE_NV 0x1905 -#define GL_COLORBURN_NV 0x929A -#define GL_COLORDODGE_NV 0x9299 -#define GL_CONJOINT_NV 0x9284 -#define GL_CONTRAST_NV 0x92A1 -#define GL_DARKEN_NV 0x9297 -#define GL_DIFFERENCE_NV 0x929E -#define GL_DISJOINT_NV 0x9283 -#define GL_DST_ATOP_NV 0x928F -#define GL_DST_IN_NV 0x928B -#define GL_DST_NV 0x9287 -#define GL_DST_OUT_NV 0x928D -#define GL_DST_OVER_NV 0x9289 -#define GL_EXCLUSION_NV 0x92A0 -#define GL_GREEN_NV 0x1904 -#define GL_HARDLIGHT_NV 0x929B -#define GL_HARDMIX_NV 0x92A9 -#define GL_HSL_COLOR_NV 0x92AF -#define GL_HSL_HUE_NV 0x92AD -#define GL_HSL_LUMINOSITY_NV 0x92B0 -#define GL_HSL_SATURATION_NV 0x92AE -#define GL_INVERT_OVG_NV 0x92B4 -#define GL_INVERT_RGB_NV 0x92A3 -#define GL_LIGHTEN_NV 0x9298 -#define GL_LINEARBURN_NV 0x92A5 -#define GL_LINEARDODGE_NV 0x92A4 -#define GL_LINEARLIGHT_NV 0x92A7 -#define GL_MINUS_CLAMPED_NV 0x92B3 -#define GL_MINUS_NV 0x929F -#define GL_MULTIPLY_NV 0x9294 -#define GL_OVERLAY_NV 0x9296 -#define GL_PINLIGHT_NV 0x92A8 -#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 -#define GL_PLUS_CLAMPED_NV 0x92B1 -#define GL_PLUS_DARKER_NV 0x9292 -#define GL_PLUS_NV 0x9291 -#define GL_RED_NV 0x1903 -#define GL_SCREEN_NV 0x9295 -#define GL_SOFTLIGHT_NV 0x929C -#define GL_SRC_ATOP_NV 0x928E -#define GL_SRC_IN_NV 0x928A -#define GL_SRC_NV 0x9286 -#define GL_SRC_OUT_NV 0x928C -#define GL_SRC_OVER_NV 0x9288 -#define GL_UNCORRELATED_NV 0x9282 -#define GL_VIVIDLIGHT_NV 0x92A6 -#define GL_XOR_NV 0x1506 -typedef void (APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLBLENDBARRIERNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendParameteriNV (GLenum pname, GLint value); -GLAPI void APIENTRY glBlendBarrierNV (void); -#endif -#endif /* GL_NV_blend_equation_advanced */ - -#ifndef GL_NV_blend_equation_advanced_coherent -#define GL_NV_blend_equation_advanced_coherent 1 -#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 -#endif /* GL_NV_blend_equation_advanced_coherent */ - -#ifndef GL_NV_blend_minmax_factor -#define GL_NV_blend_minmax_factor 1 -#endif /* GL_NV_blend_minmax_factor */ - -#ifndef GL_NV_blend_square -#define GL_NV_blend_square 1 -#endif /* GL_NV_blend_square */ - -#ifndef GL_NV_clip_space_w_scaling -#define GL_NV_clip_space_w_scaling 1 -#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C -#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D -#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E -typedef void (APIENTRYP PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glViewportPositionWScaleNV (GLuint index, GLfloat xcoeff, GLfloat ycoeff); -#endif -#endif /* GL_NV_clip_space_w_scaling */ - -#ifndef GL_NV_command_list -#define GL_NV_command_list 1 -#define GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000 -#define GL_NOP_COMMAND_NV 0x0001 -#define GL_DRAW_ELEMENTS_COMMAND_NV 0x0002 -#define GL_DRAW_ARRAYS_COMMAND_NV 0x0003 -#define GL_DRAW_ELEMENTS_STRIP_COMMAND_NV 0x0004 -#define GL_DRAW_ARRAYS_STRIP_COMMAND_NV 0x0005 -#define GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV 0x0006 -#define GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV 0x0007 -#define GL_ELEMENT_ADDRESS_COMMAND_NV 0x0008 -#define GL_ATTRIBUTE_ADDRESS_COMMAND_NV 0x0009 -#define GL_UNIFORM_ADDRESS_COMMAND_NV 0x000A -#define GL_BLEND_COLOR_COMMAND_NV 0x000B -#define GL_STENCIL_REF_COMMAND_NV 0x000C -#define GL_LINE_WIDTH_COMMAND_NV 0x000D -#define GL_POLYGON_OFFSET_COMMAND_NV 0x000E -#define GL_ALPHA_REF_COMMAND_NV 0x000F -#define GL_VIEWPORT_COMMAND_NV 0x0010 -#define GL_SCISSOR_COMMAND_NV 0x0011 -#define GL_FRONT_FACE_COMMAND_NV 0x0012 -typedef void (APIENTRYP PFNGLCREATESTATESNVPROC) (GLsizei n, GLuint *states); -typedef void (APIENTRYP PFNGLDELETESTATESNVPROC) (GLsizei n, const GLuint *states); -typedef GLboolean (APIENTRYP PFNGLISSTATENVPROC) (GLuint state); -typedef void (APIENTRYP PFNGLSTATECAPTURENVPROC) (GLuint state, GLenum mode); -typedef GLuint (APIENTRYP PFNGLGETCOMMANDHEADERNVPROC) (GLenum tokenID, GLuint size); -typedef GLushort (APIENTRYP PFNGLGETSTAGEINDEXNVPROC) (GLenum shadertype); -typedef void (APIENTRYP PFNGLDRAWCOMMANDSNVPROC) (GLenum primitiveMode, GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, GLuint count); -typedef void (APIENTRYP PFNGLDRAWCOMMANDSADDRESSNVPROC) (GLenum primitiveMode, const GLuint64 *indirects, const GLsizei *sizes, GLuint count); -typedef void (APIENTRYP PFNGLDRAWCOMMANDSSTATESNVPROC) (GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); -typedef void (APIENTRYP PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC) (const GLuint64 *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); -typedef void (APIENTRYP PFNGLCREATECOMMANDLISTSNVPROC) (GLsizei n, GLuint *lists); -typedef void (APIENTRYP PFNGLDELETECOMMANDLISTSNVPROC) (GLsizei n, const GLuint *lists); -typedef GLboolean (APIENTRYP PFNGLISCOMMANDLISTNVPROC) (GLuint list); -typedef void (APIENTRYP PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC) (GLuint list, GLuint segment, const void **indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); -typedef void (APIENTRYP PFNGLCOMMANDLISTSEGMENTSNVPROC) (GLuint list, GLuint segments); -typedef void (APIENTRYP PFNGLCOMPILECOMMANDLISTNVPROC) (GLuint list); -typedef void (APIENTRYP PFNGLCALLCOMMANDLISTNVPROC) (GLuint list); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCreateStatesNV (GLsizei n, GLuint *states); -GLAPI void APIENTRY glDeleteStatesNV (GLsizei n, const GLuint *states); -GLAPI GLboolean APIENTRY glIsStateNV (GLuint state); -GLAPI void APIENTRY glStateCaptureNV (GLuint state, GLenum mode); -GLAPI GLuint APIENTRY glGetCommandHeaderNV (GLenum tokenID, GLuint size); -GLAPI GLushort APIENTRY glGetStageIndexNV (GLenum shadertype); -GLAPI void APIENTRY glDrawCommandsNV (GLenum primitiveMode, GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, GLuint count); -GLAPI void APIENTRY glDrawCommandsAddressNV (GLenum primitiveMode, const GLuint64 *indirects, const GLsizei *sizes, GLuint count); -GLAPI void APIENTRY glDrawCommandsStatesNV (GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); -GLAPI void APIENTRY glDrawCommandsStatesAddressNV (const GLuint64 *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); -GLAPI void APIENTRY glCreateCommandListsNV (GLsizei n, GLuint *lists); -GLAPI void APIENTRY glDeleteCommandListsNV (GLsizei n, const GLuint *lists); -GLAPI GLboolean APIENTRY glIsCommandListNV (GLuint list); -GLAPI void APIENTRY glListDrawCommandsStatesClientNV (GLuint list, GLuint segment, const void **indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); -GLAPI void APIENTRY glCommandListSegmentsNV (GLuint list, GLuint segments); -GLAPI void APIENTRY glCompileCommandListNV (GLuint list); -GLAPI void APIENTRY glCallCommandListNV (GLuint list); -#endif -#endif /* GL_NV_command_list */ - -#ifndef GL_NV_compute_program5 -#define GL_NV_compute_program5 1 -#define GL_COMPUTE_PROGRAM_NV 0x90FB -#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC -#endif /* GL_NV_compute_program5 */ - -#ifndef GL_NV_compute_shader_derivatives -#define GL_NV_compute_shader_derivatives 1 -#endif /* GL_NV_compute_shader_derivatives */ - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode); -GLAPI void APIENTRY glEndConditionalRenderNV (void); -#endif -#endif /* GL_NV_conditional_render */ - -#ifndef GL_NV_conservative_raster -#define GL_NV_conservative_raster 1 -#define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346 -#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347 -#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348 -#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349 -typedef void (APIENTRYP PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSubpixelPrecisionBiasNV (GLuint xbits, GLuint ybits); -#endif -#endif /* GL_NV_conservative_raster */ - -#ifndef GL_NV_conservative_raster_dilate -#define GL_NV_conservative_raster_dilate 1 -#define GL_CONSERVATIVE_RASTER_DILATE_NV 0x9379 -#define GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV 0x937A -#define GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV 0x937B -typedef void (APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERFNVPROC) (GLenum pname, GLfloat value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glConservativeRasterParameterfNV (GLenum pname, GLfloat value); -#endif -#endif /* GL_NV_conservative_raster_dilate */ - -#ifndef GL_NV_conservative_raster_pre_snap -#define GL_NV_conservative_raster_pre_snap 1 -#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550 -#endif /* GL_NV_conservative_raster_pre_snap */ - -#ifndef GL_NV_conservative_raster_pre_snap_triangles -#define GL_NV_conservative_raster_pre_snap_triangles 1 -#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D -#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E -#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F -typedef void (APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glConservativeRasterParameteriNV (GLenum pname, GLint param); -#endif -#endif /* GL_NV_conservative_raster_pre_snap_triangles */ - -#ifndef GL_NV_conservative_raster_underestimation -#define GL_NV_conservative_raster_underestimation 1 -#endif /* GL_NV_conservative_raster_underestimation */ - -#ifndef GL_NV_copy_depth_to_color -#define GL_NV_copy_depth_to_color 1 -#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E -#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F -#endif /* GL_NV_copy_depth_to_color */ - -#ifndef GL_NV_copy_image -#define GL_NV_copy_image 1 -typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyImageSubDataNV (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif -#endif /* GL_NV_copy_image */ - -#ifndef GL_NV_deep_texture3D -#define GL_NV_deep_texture3D 1 -#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0 -#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1 -#endif /* GL_NV_deep_texture3D */ - -#ifndef GL_NV_depth_buffer_float -#define GL_NV_depth_buffer_float 1 -#define GL_DEPTH_COMPONENT32F_NV 0x8DAB -#define GL_DEPTH32F_STENCIL8_NV 0x8DAC -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD -#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF -typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); -typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthRangedNV (GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glClearDepthdNV (GLdouble depth); -GLAPI void APIENTRY glDepthBoundsdNV (GLdouble zmin, GLdouble zmax); -#endif -#endif /* GL_NV_depth_buffer_float */ - -#ifndef GL_NV_depth_clamp -#define GL_NV_depth_clamp 1 -#define GL_DEPTH_CLAMP_NV 0x864F -#endif /* GL_NV_depth_clamp */ - -#ifndef GL_NV_draw_texture -#define GL_NV_draw_texture 1 -typedef void (APIENTRYP PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawTextureNV (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); -#endif -#endif /* GL_NV_draw_texture */ - -#ifndef GL_NV_draw_vulkan_image -#define GL_NV_draw_vulkan_image 1 -typedef void (APIENTRY *GLVULKANPROCNV)(void); -typedef void (APIENTRYP PFNGLDRAWVKIMAGENVPROC) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); -typedef GLVULKANPROCNV (APIENTRYP PFNGLGETVKPROCADDRNVPROC) (const GLchar *name); -typedef void (APIENTRYP PFNGLWAITVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); -typedef void (APIENTRYP PFNGLSIGNALVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); -typedef void (APIENTRYP PFNGLSIGNALVKFENCENVPROC) (GLuint64 vkFence); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawVkImageNV (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); -GLAPI GLVULKANPROCNV APIENTRY glGetVkProcAddrNV (const GLchar *name); -GLAPI void APIENTRY glWaitVkSemaphoreNV (GLuint64 vkSemaphore); -GLAPI void APIENTRY glSignalVkSemaphoreNV (GLuint64 vkSemaphore); -GLAPI void APIENTRY glSignalVkFenceNV (GLuint64 vkFence); -#endif -#endif /* GL_NV_draw_vulkan_image */ - -#ifndef GL_NV_evaluators -#define GL_NV_evaluators 1 -#define GL_EVAL_2D_NV 0x86C0 -#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define GL_MAP_TESSELLATION_NV 0x86C2 -#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 -typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); -typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); -GLAPI void APIENTRY glMapParameterivNV (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMapParameterfvNV (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); -GLAPI void APIENTRY glGetMapParameterivNV (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMapParameterfvNV (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum target, GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glEvalMapsNV (GLenum target, GLenum mode); -#endif -#endif /* GL_NV_evaluators */ - -#ifndef GL_NV_explicit_multisample -#define GL_NV_explicit_multisample 1 -#define GL_SAMPLE_POSITION_NV 0x8E50 -#define GL_SAMPLE_MASK_NV 0x8E51 -#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 -#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 -#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 -#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 -#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 -#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 -#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 -#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 -typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (APIENTRYP PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); -typedef void (APIENTRYP PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetMultisamplefvNV (GLenum pname, GLuint index, GLfloat *val); -GLAPI void APIENTRY glSampleMaskIndexedNV (GLuint index, GLbitfield mask); -GLAPI void APIENTRY glTexRenderbufferNV (GLenum target, GLuint renderbuffer); -#endif -#endif /* GL_NV_explicit_multisample */ - -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); -GLAPI void APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); -GLAPI GLboolean APIENTRY glIsFenceNV (GLuint fence); -GLAPI GLboolean APIENTRY glTestFenceNV (GLuint fence); -GLAPI void APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); -GLAPI void APIENTRY glFinishFenceNV (GLuint fence); -GLAPI void APIENTRY glSetFenceNV (GLuint fence, GLenum condition); -#endif -#endif /* GL_NV_fence */ - -#ifndef GL_NV_fill_rectangle -#define GL_NV_fill_rectangle 1 -#define GL_FILL_RECTANGLE_NV 0x933C -#endif /* GL_NV_fill_rectangle */ - -#ifndef GL_NV_float_buffer -#define GL_NV_float_buffer 1 -#define GL_FLOAT_R_NV 0x8880 -#define GL_FLOAT_RG_NV 0x8881 -#define GL_FLOAT_RGB_NV 0x8882 -#define GL_FLOAT_RGBA_NV 0x8883 -#define GL_FLOAT_R16_NV 0x8884 -#define GL_FLOAT_R32_NV 0x8885 -#define GL_FLOAT_RG16_NV 0x8886 -#define GL_FLOAT_RG32_NV 0x8887 -#define GL_FLOAT_RGB16_NV 0x8888 -#define GL_FLOAT_RGB32_NV 0x8889 -#define GL_FLOAT_RGBA16_NV 0x888A -#define GL_FLOAT_RGBA32_NV 0x888B -#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define GL_FLOAT_RGBA_MODE_NV 0x888E -#endif /* GL_NV_float_buffer */ - -#ifndef GL_NV_fog_distance -#define GL_NV_fog_distance 1 -#define GL_FOG_DISTANCE_MODE_NV 0x855A -#define GL_EYE_RADIAL_NV 0x855B -#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C -#endif /* GL_NV_fog_distance */ - -#ifndef GL_NV_fragment_coverage_to_color -#define GL_NV_fragment_coverage_to_color 1 -#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD -#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE -typedef void (APIENTRYP PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFragmentCoverageColorNV (GLuint color); -#endif -#endif /* GL_NV_fragment_coverage_to_color */ - -#ifndef GL_NV_fragment_program -#define GL_NV_fragment_program 1 -#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 -#define GL_FRAGMENT_PROGRAM_NV 0x8870 -#define GL_MAX_TEXTURE_COORDS_NV 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 -#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 -#define GL_PROGRAM_ERROR_STRING_NV 0x8874 -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#endif -#endif /* GL_NV_fragment_program */ - -#ifndef GL_NV_fragment_program2 -#define GL_NV_fragment_program2 1 -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 -#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 -#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 -#endif /* GL_NV_fragment_program2 */ - -#ifndef GL_NV_fragment_program4 -#define GL_NV_fragment_program4 1 -#endif /* GL_NV_fragment_program4 */ - -#ifndef GL_NV_fragment_program_option -#define GL_NV_fragment_program_option 1 -#endif /* GL_NV_fragment_program_option */ - -#ifndef GL_NV_fragment_shader_barycentric -#define GL_NV_fragment_shader_barycentric 1 -#endif /* GL_NV_fragment_shader_barycentric */ - -#ifndef GL_NV_fragment_shader_interlock -#define GL_NV_fragment_shader_interlock 1 -#endif /* GL_NV_fragment_shader_interlock */ - -#ifndef GL_NV_framebuffer_mixed_samples -#define GL_NV_framebuffer_mixed_samples 1 -#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 -#define GL_COLOR_SAMPLES_NV 0x8E20 -#define GL_DEPTH_SAMPLES_NV 0x932D -#define GL_STENCIL_SAMPLES_NV 0x932E -#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F -#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 -#define GL_COVERAGE_MODULATION_NV 0x9332 -#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 -typedef void (APIENTRYP PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat *v); -typedef void (APIENTRYP PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufSize, GLfloat *v); -typedef void (APIENTRYP PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCoverageModulationTableNV (GLsizei n, const GLfloat *v); -GLAPI void APIENTRY glGetCoverageModulationTableNV (GLsizei bufSize, GLfloat *v); -GLAPI void APIENTRY glCoverageModulationNV (GLenum components); -#endif -#endif /* GL_NV_framebuffer_mixed_samples */ - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_NV_framebuffer_multisample_coverage 1 -#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB -#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 -#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 -#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_NV_framebuffer_multisample_coverage */ - -#ifndef GL_NV_geometry_program4 -#define GL_NV_geometry_program4 1 -#define GL_GEOMETRY_PROGRAM_NV 0x8C26 -#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 -#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 -typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramVertexLimitNV (GLenum target, GLint limit); -GLAPI void APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif -#endif /* GL_NV_geometry_program4 */ - -#ifndef GL_NV_geometry_shader4 -#define GL_NV_geometry_shader4 1 -#endif /* GL_NV_geometry_shader4 */ - -#ifndef GL_NV_geometry_shader_passthrough -#define GL_NV_geometry_shader_passthrough 1 -#endif /* GL_NV_geometry_shader_passthrough */ - -#ifndef GL_NV_gpu_multicast -#define GL_NV_gpu_multicast 1 -#define GL_PER_GPU_STORAGE_BIT_NV 0x0800 -#define GL_MULTICAST_GPUS_NV 0x92BA -#define GL_RENDER_GPU_MASK_NV 0x9558 -#define GL_PER_GPU_STORAGE_NV 0x9548 -#define GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9549 -typedef void (APIENTRYP PFNGLRENDERGPUMASKNVPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLMULTICASTBUFFERSUBDATANVPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -typedef void (APIENTRYP PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC) (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLMULTICASTCOPYIMAGESUBDATANVPROC) (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -typedef void (APIENTRYP PFNGLMULTICASTBLITFRAMEBUFFERNVPROC) (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (APIENTRYP PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTICASTBARRIERNVPROC) (void); -typedef void (APIENTRYP PFNGLMULTICASTWAITSYNCNVPROC) (GLuint signalGpu, GLbitfield waitGpuMask); -typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint64 *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderGpuMaskNV (GLbitfield mask); -GLAPI void APIENTRY glMulticastBufferSubDataNV (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -GLAPI void APIENTRY glMulticastCopyBufferSubDataNV (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GLAPI void APIENTRY glMulticastCopyImageSubDataNV (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -GLAPI void APIENTRY glMulticastBlitFramebufferNV (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GLAPI void APIENTRY glMulticastFramebufferSampleLocationsfvNV (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glMulticastBarrierNV (void); -GLAPI void APIENTRY glMulticastWaitSyncNV (GLuint signalGpu, GLbitfield waitGpuMask); -GLAPI void APIENTRY glMulticastGetQueryObjectivNV (GLuint gpu, GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glMulticastGetQueryObjectuivNV (GLuint gpu, GLuint id, GLenum pname, GLuint *params); -GLAPI void APIENTRY glMulticastGetQueryObjecti64vNV (GLuint gpu, GLuint id, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glMulticastGetQueryObjectui64vNV (GLuint gpu, GLuint id, GLenum pname, GLuint64 *params); -#endif -#endif /* GL_NV_gpu_multicast */ - -#ifndef GL_NV_gpu_program4 -#define GL_NV_gpu_program4 1 -#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 -#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 -#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 -#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 -#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 -#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 -#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum target, GLuint index, GLuint *params); -GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum target, GLuint index, GLuint *params); -#endif -#endif /* GL_NV_gpu_program4 */ - -#ifndef GL_NV_gpu_program5 -#define GL_NV_gpu_program5 1 -#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C -#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F -#define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV 0x8F44 -#define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV 0x8F45 -typedef void (APIENTRYP PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC) (GLenum target, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC) (GLenum target, GLuint index, GLuint *param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramSubroutineParametersuivNV (GLenum target, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetProgramSubroutineParameteruivNV (GLenum target, GLuint index, GLuint *param); -#endif -#endif /* GL_NV_gpu_program5 */ - -#ifndef GL_NV_gpu_program5_mem_extended -#define GL_NV_gpu_program5_mem_extended 1 -#endif /* GL_NV_gpu_program5_mem_extended */ - -#ifndef GL_NV_gpu_shader5 -#define GL_NV_gpu_shader5 1 -#endif /* GL_NV_gpu_shader5 */ - -#ifndef GL_NV_half_float -#define GL_NV_half_float 1 -typedef unsigned short GLhalfNV; -#define GL_HALF_FLOAT_NV 0x140B -typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); -typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); -typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertex2hNV (GLhalfNV x, GLhalfNV y); -GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glVertex3hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z); -GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glVertex4hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glNormal3hNV (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glColor4hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV s); -GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV s, GLhalfNV t); -GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r); -GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum target, GLhalfNV s); -GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum target, GLhalfNV s, GLhalfNV t); -GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glFogCoordhNV (GLhalfNV fog); -GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *fog); -GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV weight); -GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *weight); -GLAPI void APIENTRY glVertexAttrib1hNV (GLuint index, GLhalfNV x); -GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib2hNV (GLuint index, GLhalfNV x, GLhalfNV y); -GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib3hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib4hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -#endif -#endif /* GL_NV_half_float */ - -#ifndef GL_NV_internalformat_sample_query -#define GL_NV_internalformat_sample_query 1 -#define GL_MULTISAMPLES_NV 0x9371 -#define GL_SUPERSAMPLE_SCALE_X_NV 0x9372 -#define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373 -#define GL_CONFORMANT_NV 0x9374 -typedef void (APIENTRYP PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetInternalformatSampleivNV (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); -#endif -#endif /* GL_NV_internalformat_sample_query */ - -#ifndef GL_NV_light_max_exponent -#define GL_NV_light_max_exponent 1 -#define GL_MAX_SHININESS_NV 0x8504 -#define GL_MAX_SPOT_EXPONENT_NV 0x8505 -#endif /* GL_NV_light_max_exponent */ - -#ifndef GL_NV_memory_attachment -#define GL_NV_memory_attachment 1 -#define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4 -#define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5 -#define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6 -#define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7 -#define GL_MEMORY_ATTACHABLE_NV 0x95A8 -#define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9 -#define GL_DETACHED_TEXTURES_NV 0x95AA -#define GL_DETACHED_BUFFERS_NV 0x95AB -#define GL_MAX_DETACHED_TEXTURES_NV 0x95AC -#define GL_MAX_DETACHED_BUFFERS_NV 0x95AD -typedef void (APIENTRYP PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); -typedef void (APIENTRYP PFNGLRESETMEMORYOBJECTPARAMETERNVPROC) (GLuint memory, GLenum pname); -typedef void (APIENTRYP PFNGLTEXATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLBUFFERATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLTEXTUREATTACHMEMORYNVPROC) (GLuint texture, GLuint memory, GLuint64 offset); -typedef void (APIENTRYP PFNGLNAMEDBUFFERATTACHMEMORYNVPROC) (GLuint buffer, GLuint memory, GLuint64 offset); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetMemoryObjectDetachedResourcesuivNV (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); -GLAPI void APIENTRY glResetMemoryObjectParameterNV (GLuint memory, GLenum pname); -GLAPI void APIENTRY glTexAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glBufferAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glTextureAttachMemoryNV (GLuint texture, GLuint memory, GLuint64 offset); -GLAPI void APIENTRY glNamedBufferAttachMemoryNV (GLuint buffer, GLuint memory, GLuint64 offset); -#endif -#endif /* GL_NV_memory_attachment */ - -#ifndef GL_NV_memory_object_sparse -#define GL_NV_memory_object_sparse 1 -typedef void (APIENTRYP PFNGLBUFFERPAGECOMMITMENTMEMNVPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); -typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTMEMNVPROC) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); -typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); -typedef void (APIENTRYP PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferPageCommitmentMemNV (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); -GLAPI void APIENTRY glTexPageCommitmentMemNV (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); -GLAPI void APIENTRY glNamedBufferPageCommitmentMemNV (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); -GLAPI void APIENTRY glTexturePageCommitmentMemNV (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); -#endif -#endif /* GL_NV_memory_object_sparse */ - -#ifndef GL_NV_mesh_shader -#define GL_NV_mesh_shader 1 -#define GL_MESH_SHADER_NV 0x9559 -#define GL_TASK_SHADER_NV 0x955A -#define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60 -#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61 -#define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62 -#define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63 -#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64 -#define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65 -#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66 -#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67 -#define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68 -#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69 -#define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A -#define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B -#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C -#define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D -#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E -#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F -#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2 -#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3 -#define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536 -#define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537 -#define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538 -#define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539 -#define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A -#define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D -#define GL_MAX_MESH_VIEWS_NV 0x9557 -#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF -#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543 -#define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B -#define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C -#define GL_MESH_WORK_GROUP_SIZE_NV 0x953E -#define GL_TASK_WORK_GROUP_SIZE_NV 0x953F -#define GL_MESH_VERTICES_OUT_NV 0x9579 -#define GL_MESH_PRIMITIVES_OUT_NV 0x957A -#define GL_MESH_OUTPUT_TYPE_NV 0x957B -#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D -#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0 -#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1 -#define GL_MESH_SHADER_BIT_NV 0x00000040 -#define GL_TASK_SHADER_BIT_NV 0x00000080 -#define GL_MESH_SUBROUTINE_NV 0x957C -#define GL_TASK_SUBROUTINE_NV 0x957D -#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E -#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F -typedef void (APIENTRYP PFNGLDRAWMESHTASKSNVPROC) (GLuint first, GLuint count); -typedef void (APIENTRYP PFNGLDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect); -typedef void (APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect, GLsizei drawcount, GLsizei stride); -typedef void (APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawMeshTasksNV (GLuint first, GLuint count); -GLAPI void APIENTRY glDrawMeshTasksIndirectNV (GLintptr indirect); -GLAPI void APIENTRY glMultiDrawMeshTasksIndirectNV (GLintptr indirect, GLsizei drawcount, GLsizei stride); -GLAPI void APIENTRY glMultiDrawMeshTasksIndirectCountNV (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -#endif -#endif /* GL_NV_mesh_shader */ - -#ifndef GL_NV_multisample_coverage -#define GL_NV_multisample_coverage 1 -#endif /* GL_NV_multisample_coverage */ - -#ifndef GL_NV_multisample_filter_hint -#define GL_NV_multisample_filter_hint 1 -#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 -#endif /* GL_NV_multisample_filter_hint */ - -#ifndef GL_NV_occlusion_query -#define GL_NV_occlusion_query 1 -#define GL_PIXEL_COUNTER_BITS_NV 0x8864 -#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 -#define GL_PIXEL_COUNT_NV 0x8866 -#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 -typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint id); -GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint id); -GLAPI void APIENTRY glEndOcclusionQueryNV (void); -GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint id, GLenum pname, GLuint *params); -#endif -#endif /* GL_NV_occlusion_query */ - -#ifndef GL_NV_packed_depth_stencil -#define GL_NV_packed_depth_stencil 1 -#define GL_DEPTH_STENCIL_NV 0x84F9 -#define GL_UNSIGNED_INT_24_8_NV 0x84FA -#endif /* GL_NV_packed_depth_stencil */ - -#ifndef GL_NV_parameter_buffer_object -#define GL_NV_parameter_buffer_object 1 -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 -#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 -#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 -#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params); -#endif -#endif /* GL_NV_parameter_buffer_object */ - -#ifndef GL_NV_parameter_buffer_object2 -#define GL_NV_parameter_buffer_object2 1 -#endif /* GL_NV_parameter_buffer_object2 */ - -#ifndef GL_NV_path_rendering -#define GL_NV_path_rendering 1 -#define GL_PATH_FORMAT_SVG_NV 0x9070 -#define GL_PATH_FORMAT_PS_NV 0x9071 -#define GL_STANDARD_FONT_NAME_NV 0x9072 -#define GL_SYSTEM_FONT_NAME_NV 0x9073 -#define GL_FILE_NAME_NV 0x9074 -#define GL_PATH_STROKE_WIDTH_NV 0x9075 -#define GL_PATH_END_CAPS_NV 0x9076 -#define GL_PATH_INITIAL_END_CAP_NV 0x9077 -#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 -#define GL_PATH_JOIN_STYLE_NV 0x9079 -#define GL_PATH_MITER_LIMIT_NV 0x907A -#define GL_PATH_DASH_CAPS_NV 0x907B -#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C -#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D -#define GL_PATH_DASH_OFFSET_NV 0x907E -#define GL_PATH_CLIENT_LENGTH_NV 0x907F -#define GL_PATH_FILL_MODE_NV 0x9080 -#define GL_PATH_FILL_MASK_NV 0x9081 -#define GL_PATH_FILL_COVER_MODE_NV 0x9082 -#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 -#define GL_PATH_STROKE_MASK_NV 0x9084 -#define GL_COUNT_UP_NV 0x9088 -#define GL_COUNT_DOWN_NV 0x9089 -#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A -#define GL_CONVEX_HULL_NV 0x908B -#define GL_BOUNDING_BOX_NV 0x908D -#define GL_TRANSLATE_X_NV 0x908E -#define GL_TRANSLATE_Y_NV 0x908F -#define GL_TRANSLATE_2D_NV 0x9090 -#define GL_TRANSLATE_3D_NV 0x9091 -#define GL_AFFINE_2D_NV 0x9092 -#define GL_AFFINE_3D_NV 0x9094 -#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 -#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 -#define GL_UTF8_NV 0x909A -#define GL_UTF16_NV 0x909B -#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C -#define GL_PATH_COMMAND_COUNT_NV 0x909D -#define GL_PATH_COORD_COUNT_NV 0x909E -#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F -#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 -#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 -#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 -#define GL_SQUARE_NV 0x90A3 -#define GL_ROUND_NV 0x90A4 -#define GL_TRIANGULAR_NV 0x90A5 -#define GL_BEVEL_NV 0x90A6 -#define GL_MITER_REVERT_NV 0x90A7 -#define GL_MITER_TRUNCATE_NV 0x90A8 -#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 -#define GL_USE_MISSING_GLYPH_NV 0x90AA -#define GL_PATH_ERROR_POSITION_NV 0x90AB -#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD -#define GL_ADJACENT_PAIRS_NV 0x90AE -#define GL_FIRST_TO_REST_NV 0x90AF -#define GL_PATH_GEN_MODE_NV 0x90B0 -#define GL_PATH_GEN_COEFF_NV 0x90B1 -#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 -#define GL_PATH_STENCIL_FUNC_NV 0x90B7 -#define GL_PATH_STENCIL_REF_NV 0x90B8 -#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 -#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD -#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE -#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF -#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 -#define GL_MOVE_TO_RESETS_NV 0x90B5 -#define GL_MOVE_TO_CONTINUES_NV 0x90B6 -#define GL_CLOSE_PATH_NV 0x00 -#define GL_MOVE_TO_NV 0x02 -#define GL_RELATIVE_MOVE_TO_NV 0x03 -#define GL_LINE_TO_NV 0x04 -#define GL_RELATIVE_LINE_TO_NV 0x05 -#define GL_HORIZONTAL_LINE_TO_NV 0x06 -#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 -#define GL_VERTICAL_LINE_TO_NV 0x08 -#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 -#define GL_QUADRATIC_CURVE_TO_NV 0x0A -#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B -#define GL_CUBIC_CURVE_TO_NV 0x0C -#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D -#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E -#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F -#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 -#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 -#define GL_SMALL_CCW_ARC_TO_NV 0x12 -#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 -#define GL_SMALL_CW_ARC_TO_NV 0x14 -#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 -#define GL_LARGE_CCW_ARC_TO_NV 0x16 -#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 -#define GL_LARGE_CW_ARC_TO_NV 0x18 -#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 -#define GL_RESTART_PATH_NV 0xF0 -#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 -#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 -#define GL_RECT_NV 0xF6 -#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 -#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA -#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC -#define GL_ARC_TO_NV 0xFE -#define GL_RELATIVE_ARC_TO_NV 0xFF -#define GL_BOLD_BIT_NV 0x01 -#define GL_ITALIC_BIT_NV 0x02 -#define GL_GLYPH_WIDTH_BIT_NV 0x01 -#define GL_GLYPH_HEIGHT_BIT_NV 0x02 -#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 -#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 -#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 -#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 -#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 -#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 -#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 -#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 -#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 -#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 -#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 -#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 -#define GL_FONT_ASCENDER_BIT_NV 0x00200000 -#define GL_FONT_DESCENDER_BIT_NV 0x00400000 -#define GL_FONT_HEIGHT_BIT_NV 0x00800000 -#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 -#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 -#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 -#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 -#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 -#define GL_ROUNDED_RECT_NV 0xE8 -#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9 -#define GL_ROUNDED_RECT2_NV 0xEA -#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB -#define GL_ROUNDED_RECT4_NV 0xEC -#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED -#define GL_ROUNDED_RECT8_NV 0xEE -#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF -#define GL_RELATIVE_RECT_NV 0xF7 -#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368 -#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369 -#define GL_FONT_UNAVAILABLE_NV 0x936A -#define GL_FONT_UNINTELLIGIBLE_NV 0x936B -#define GL_CONIC_CURVE_TO_NV 0x1A -#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B -#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000 -#define GL_STANDARD_FONT_FORMAT_NV 0x936C -#define GL_2_BYTES_NV 0x1407 -#define GL_3_BYTES_NV 0x1408 -#define GL_4_BYTES_NV 0x1409 -#define GL_EYE_LINEAR_NV 0x2400 -#define GL_OBJECT_LINEAR_NV 0x2401 -#define GL_CONSTANT_NV 0x8576 -#define GL_PATH_FOG_GEN_MODE_NV 0x90AC -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2 -#define GL_PATH_PROJECTION_NV 0x1701 -#define GL_PATH_MODELVIEW_NV 0x1700 -#define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3 -#define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6 -#define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36 -#define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3 -#define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4 -#define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7 -#define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38 -#define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4 -#define GL_FRAGMENT_INPUT_NV 0x936D -typedef GLuint (APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range); -typedef void (APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); -typedef GLboolean (APIENTRYP PFNGLISPATHNVPROC) (GLuint path); -typedef void (APIENTRYP PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (APIENTRYP PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (APIENTRYP PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (APIENTRYP PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (APIENTRYP PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); -typedef void (APIENTRYP PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (APIENTRYP PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (APIENTRYP PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); -typedef void (APIENTRYP PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); -typedef void (APIENTRYP PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -typedef void (APIENTRYP PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); -typedef void (APIENTRYP PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint *value); -typedef void (APIENTRYP PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat *value); -typedef void (APIENTRYP PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); -typedef void (APIENTRYP PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); -typedef void (APIENTRYP PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (APIENTRYP PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); -typedef void (APIENTRYP PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); -typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); -typedef void (APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func); -typedef void (APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (APIENTRYP PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint *value); -typedef void (APIENTRYP PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat *value); -typedef void (APIENTRYP PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte *commands); -typedef void (APIENTRYP PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat *coords); -typedef void (APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dashArray); -typedef void (APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -typedef void (APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); -typedef void (APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -typedef GLboolean (APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); -typedef GLboolean (APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); -typedef GLfloat (APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); -typedef GLboolean (APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -typedef void (APIENTRYP PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); -typedef void (APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); -typedef void (APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef GLenum (APIENTRYP PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); -typedef GLenum (APIENTRYP PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef GLenum (APIENTRYP PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); -typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); -typedef void (APIENTRYP PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs); -typedef void (APIENTRYP PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs); -typedef void (APIENTRYP PFNGLPATHFOGGENNVPROC) (GLenum genMode); -typedef void (APIENTRYP PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint *value); -typedef void (APIENTRYP PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat *value); -typedef void (APIENTRYP PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint *value); -typedef void (APIENTRYP PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat *value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glGenPathsNV (GLsizei range); -GLAPI void APIENTRY glDeletePathsNV (GLuint path, GLsizei range); -GLAPI GLboolean APIENTRY glIsPathNV (GLuint path); -GLAPI void APIENTRY glPathCommandsNV (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -GLAPI void APIENTRY glPathCoordsNV (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); -GLAPI void APIENTRY glPathSubCommandsNV (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -GLAPI void APIENTRY glPathSubCoordsNV (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); -GLAPI void APIENTRY glPathStringNV (GLuint path, GLenum format, GLsizei length, const void *pathString); -GLAPI void APIENTRY glPathGlyphsNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GLAPI void APIENTRY glPathGlyphRangeNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GLAPI void APIENTRY glWeightPathsNV (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); -GLAPI void APIENTRY glCopyPathNV (GLuint resultPath, GLuint srcPath); -GLAPI void APIENTRY glInterpolatePathsNV (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -GLAPI void APIENTRY glTransformPathNV (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); -GLAPI void APIENTRY glPathParameterivNV (GLuint path, GLenum pname, const GLint *value); -GLAPI void APIENTRY glPathParameteriNV (GLuint path, GLenum pname, GLint value); -GLAPI void APIENTRY glPathParameterfvNV (GLuint path, GLenum pname, const GLfloat *value); -GLAPI void APIENTRY glPathParameterfNV (GLuint path, GLenum pname, GLfloat value); -GLAPI void APIENTRY glPathDashArrayNV (GLuint path, GLsizei dashCount, const GLfloat *dashArray); -GLAPI void APIENTRY glPathStencilFuncNV (GLenum func, GLint ref, GLuint mask); -GLAPI void APIENTRY glPathStencilDepthOffsetNV (GLfloat factor, GLfloat units); -GLAPI void APIENTRY glStencilFillPathNV (GLuint path, GLenum fillMode, GLuint mask); -GLAPI void APIENTRY glStencilStrokePathNV (GLuint path, GLint reference, GLuint mask); -GLAPI void APIENTRY glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -GLAPI void APIENTRY glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -GLAPI void APIENTRY glPathCoverDepthFuncNV (GLenum func); -GLAPI void APIENTRY glCoverFillPathNV (GLuint path, GLenum coverMode); -GLAPI void APIENTRY glCoverStrokePathNV (GLuint path, GLenum coverMode); -GLAPI void APIENTRY glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GLAPI void APIENTRY glCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GLAPI void APIENTRY glGetPathParameterivNV (GLuint path, GLenum pname, GLint *value); -GLAPI void APIENTRY glGetPathParameterfvNV (GLuint path, GLenum pname, GLfloat *value); -GLAPI void APIENTRY glGetPathCommandsNV (GLuint path, GLubyte *commands); -GLAPI void APIENTRY glGetPathCoordsNV (GLuint path, GLfloat *coords); -GLAPI void APIENTRY glGetPathDashArrayNV (GLuint path, GLfloat *dashArray); -GLAPI void APIENTRY glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -GLAPI void APIENTRY glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); -GLAPI void APIENTRY glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -GLAPI GLboolean APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y); -GLAPI GLboolean APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y); -GLAPI GLfloat APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments); -GLAPI GLboolean APIENTRY glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -GLAPI void APIENTRY glMatrixLoad3x2fNV (GLenum matrixMode, const GLfloat *m); -GLAPI void APIENTRY glMatrixLoad3x3fNV (GLenum matrixMode, const GLfloat *m); -GLAPI void APIENTRY glMatrixLoadTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMult3x2fNV (GLenum matrixMode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMult3x3fNV (GLenum matrixMode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMultTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); -GLAPI void APIENTRY glStencilThenCoverFillPathNV (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); -GLAPI void APIENTRY glStencilThenCoverStrokePathNV (GLuint path, GLint reference, GLuint mask, GLenum coverMode); -GLAPI void APIENTRY glStencilThenCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GLAPI void APIENTRY glStencilThenCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GLAPI GLenum APIENTRY glPathGlyphIndexRangeNV (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); -GLAPI GLenum APIENTRY glPathGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GLAPI GLenum APIENTRY glPathMemoryGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GLAPI void APIENTRY glProgramPathFragmentInputGenNV (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); -GLAPI void APIENTRY glGetProgramResourcefvNV (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); -GLAPI void APIENTRY glPathColorGenNV (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs); -GLAPI void APIENTRY glPathTexGenNV (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs); -GLAPI void APIENTRY glPathFogGenNV (GLenum genMode); -GLAPI void APIENTRY glGetPathColorGenivNV (GLenum color, GLenum pname, GLint *value); -GLAPI void APIENTRY glGetPathColorGenfvNV (GLenum color, GLenum pname, GLfloat *value); -GLAPI void APIENTRY glGetPathTexGenivNV (GLenum texCoordSet, GLenum pname, GLint *value); -GLAPI void APIENTRY glGetPathTexGenfvNV (GLenum texCoordSet, GLenum pname, GLfloat *value); -#endif -#endif /* GL_NV_path_rendering */ - -#ifndef GL_NV_path_rendering_shared_edge -#define GL_NV_path_rendering_shared_edge 1 -#define GL_SHARED_EDGE_NV 0xC0 -#endif /* GL_NV_path_rendering_shared_edge */ - -#ifndef GL_NV_pixel_data_range -#define GL_NV_pixel_data_range 1 -#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 -#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 -#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A -#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B -#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C -#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D -typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, const void *pointer); -typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelDataRangeNV (GLenum target, GLsizei length, const void *pointer); -GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum target); -#endif -#endif /* GL_NV_pixel_data_range */ - -#ifndef GL_NV_point_sprite -#define GL_NV_point_sprite 1 -#define GL_POINT_SPRITE_NV 0x8861 -#define GL_COORD_REPLACE_NV 0x8862 -#define GL_POINT_SPRITE_R_MODE_NV 0x8863 -typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameteriNV (GLenum pname, GLint param); -GLAPI void APIENTRY glPointParameterivNV (GLenum pname, const GLint *params); -#endif -#endif /* GL_NV_point_sprite */ - -#ifndef GL_NV_present_video -#define GL_NV_present_video 1 -#define GL_FRAME_NV 0x8E26 -#define GL_FIELDS_NV 0x8E27 -#define GL_CURRENT_TIME_NV 0x8E28 -#define GL_NUM_FILL_STREAMS_NV 0x8E29 -#define GL_PRESENT_TIME_NV 0x8E2A -#define GL_PRESENT_DURATION_NV 0x8E2B -typedef void (APIENTRYP PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); -typedef void (APIENTRYP PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -typedef void (APIENTRYP PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPresentFrameKeyedNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); -GLAPI void APIENTRY glPresentFrameDualFillNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -GLAPI void APIENTRY glGetVideoivNV (GLuint video_slot, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint *params); -GLAPI void APIENTRY glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT *params); -#endif -#endif /* GL_NV_present_video */ - -#ifndef GL_NV_primitive_restart -#define GL_NV_primitive_restart 1 -#define GL_PRIMITIVE_RESTART_NV 0x8558 -#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPrimitiveRestartNV (void); -GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint index); -#endif -#endif /* GL_NV_primitive_restart */ - -#ifndef GL_NV_primitive_shading_rate -#define GL_NV_primitive_shading_rate 1 -#define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1 -#define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2 -#endif /* GL_NV_primitive_shading_rate */ - -#ifndef GL_NV_query_resource -#define GL_NV_query_resource 1 -#define GL_QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV 0x9540 -#define GL_QUERY_RESOURCE_MEMTYPE_VIDMEM_NV 0x9542 -#define GL_QUERY_RESOURCE_SYS_RESERVED_NV 0x9544 -#define GL_QUERY_RESOURCE_TEXTURE_NV 0x9545 -#define GL_QUERY_RESOURCE_RENDERBUFFER_NV 0x9546 -#define GL_QUERY_RESOURCE_BUFFEROBJECT_NV 0x9547 -typedef GLint (APIENTRYP PFNGLQUERYRESOURCENVPROC) (GLenum queryType, GLint tagId, GLuint count, GLint *buffer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLint APIENTRY glQueryResourceNV (GLenum queryType, GLint tagId, GLuint count, GLint *buffer); -#endif -#endif /* GL_NV_query_resource */ - -#ifndef GL_NV_query_resource_tag -#define GL_NV_query_resource_tag 1 -typedef void (APIENTRYP PFNGLGENQUERYRESOURCETAGNVPROC) (GLsizei n, GLint *tagIds); -typedef void (APIENTRYP PFNGLDELETEQUERYRESOURCETAGNVPROC) (GLsizei n, const GLint *tagIds); -typedef void (APIENTRYP PFNGLQUERYRESOURCETAGNVPROC) (GLint tagId, const GLchar *tagString); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueryResourceTagNV (GLsizei n, GLint *tagIds); -GLAPI void APIENTRY glDeleteQueryResourceTagNV (GLsizei n, const GLint *tagIds); -GLAPI void APIENTRY glQueryResourceTagNV (GLint tagId, const GLchar *tagString); -#endif -#endif /* GL_NV_query_resource_tag */ - -#ifndef GL_NV_register_combiners -#define GL_NV_register_combiners 1 -#define GL_REGISTER_COMBINERS_NV 0x8522 -#define GL_VARIABLE_A_NV 0x8523 -#define GL_VARIABLE_B_NV 0x8524 -#define GL_VARIABLE_C_NV 0x8525 -#define GL_VARIABLE_D_NV 0x8526 -#define GL_VARIABLE_E_NV 0x8527 -#define GL_VARIABLE_F_NV 0x8528 -#define GL_VARIABLE_G_NV 0x8529 -#define GL_CONSTANT_COLOR0_NV 0x852A -#define GL_CONSTANT_COLOR1_NV 0x852B -#define GL_SPARE0_NV 0x852E -#define GL_SPARE1_NV 0x852F -#define GL_DISCARD_NV 0x8530 -#define GL_E_TIMES_F_NV 0x8531 -#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define GL_UNSIGNED_IDENTITY_NV 0x8536 -#define GL_UNSIGNED_INVERT_NV 0x8537 -#define GL_EXPAND_NORMAL_NV 0x8538 -#define GL_EXPAND_NEGATE_NV 0x8539 -#define GL_HALF_BIAS_NORMAL_NV 0x853A -#define GL_HALF_BIAS_NEGATE_NV 0x853B -#define GL_SIGNED_IDENTITY_NV 0x853C -#define GL_SIGNED_NEGATE_NV 0x853D -#define GL_SCALE_BY_TWO_NV 0x853E -#define GL_SCALE_BY_FOUR_NV 0x853F -#define GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define GL_COMBINER_INPUT_NV 0x8542 -#define GL_COMBINER_MAPPING_NV 0x8543 -#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define GL_COMBINER_MUX_SUM_NV 0x8547 -#define GL_COMBINER_SCALE_NV 0x8548 -#define GL_COMBINER_BIAS_NV 0x8549 -#define GL_COMBINER_AB_OUTPUT_NV 0x854A -#define GL_COMBINER_CD_OUTPUT_NV 0x854B -#define GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define GL_COLOR_SUM_CLAMP_NV 0x854F -#define GL_COMBINER0_NV 0x8550 -#define GL_COMBINER1_NV 0x8551 -#define GL_COMBINER2_NV 0x8552 -#define GL_COMBINER3_NV 0x8553 -#define GL_COMBINER4_NV 0x8554 -#define GL_COMBINER5_NV 0x8555 -#define GL_COMBINER6_NV 0x8556 -#define GL_COMBINER7_NV 0x8557 -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerParameterfvNV (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glCombinerParameterfNV (GLenum pname, GLfloat param); -GLAPI void APIENTRY glCombinerParameterivNV (GLenum pname, const GLint *params); -GLAPI void APIENTRY glCombinerParameteriNV (GLenum pname, GLint param); -GLAPI void APIENTRY glCombinerInputNV (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -GLAPI void APIENTRY glCombinerOutputNV (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -GLAPI void APIENTRY glFinalCombinerInputNV (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum stage, GLenum portion, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum variable, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum variable, GLenum pname, GLint *params); -#endif -#endif /* GL_NV_register_combiners */ - -#ifndef GL_NV_register_combiners2 -#define GL_NV_register_combiners2 1 -#define GL_PER_STAGE_CONSTANTS_NV 0x8535 -typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum stage, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname, GLfloat *params); -#endif -#endif /* GL_NV_register_combiners2 */ - -#ifndef GL_NV_representative_fragment_test -#define GL_NV_representative_fragment_test 1 -#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F -#endif /* GL_NV_representative_fragment_test */ - -#ifndef GL_NV_robustness_video_memory_purge -#define GL_NV_robustness_video_memory_purge 1 -#define GL_PURGED_CONTEXT_RESET_NV 0x92BB -#endif /* GL_NV_robustness_video_memory_purge */ - -#ifndef GL_NV_sample_locations -#define GL_NV_sample_locations 1 -#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D -#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E -#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340 -#define GL_SAMPLE_LOCATION_NV 0x8E50 -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341 -#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342 -#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343 -typedef void (APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLRESOLVEDEPTHVALUESNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFramebufferSampleLocationsfvNV (GLenum target, GLuint start, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glNamedFramebufferSampleLocationsfvNV (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glResolveDepthValuesNV (void); -#endif -#endif /* GL_NV_sample_locations */ - -#ifndef GL_NV_sample_mask_override_coverage -#define GL_NV_sample_mask_override_coverage 1 -#endif /* GL_NV_sample_mask_override_coverage */ - -#ifndef GL_NV_scissor_exclusive -#define GL_NV_scissor_exclusive 1 -#define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555 -#define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556 -typedef void (APIENTRYP PFNGLSCISSOREXCLUSIVENVPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLSCISSOREXCLUSIVEARRAYVNVPROC) (GLuint first, GLsizei count, const GLint *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glScissorExclusiveNV (GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glScissorExclusiveArrayvNV (GLuint first, GLsizei count, const GLint *v); -#endif -#endif /* GL_NV_scissor_exclusive */ - -#ifndef GL_NV_shader_atomic_counters -#define GL_NV_shader_atomic_counters 1 -#endif /* GL_NV_shader_atomic_counters */ - -#ifndef GL_NV_shader_atomic_float -#define GL_NV_shader_atomic_float 1 -#endif /* GL_NV_shader_atomic_float */ - -#ifndef GL_NV_shader_atomic_float64 -#define GL_NV_shader_atomic_float64 1 -#endif /* GL_NV_shader_atomic_float64 */ - -#ifndef GL_NV_shader_atomic_fp16_vector -#define GL_NV_shader_atomic_fp16_vector 1 -#endif /* GL_NV_shader_atomic_fp16_vector */ - -#ifndef GL_NV_shader_atomic_int64 -#define GL_NV_shader_atomic_int64 1 -#endif /* GL_NV_shader_atomic_int64 */ - -#ifndef GL_NV_shader_buffer_load -#define GL_NV_shader_buffer_load 1 -#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D -#define GL_GPU_ADDRESS_NV 0x8F34 -#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 -typedef void (APIENTRYP PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); -typedef void (APIENTRYP PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); -typedef GLboolean (APIENTRYP PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); -typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); -typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); -typedef GLboolean (APIENTRYP PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT *result); -typedef void (APIENTRYP PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); -typedef void (APIENTRYP PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMakeBufferResidentNV (GLenum target, GLenum access); -GLAPI void APIENTRY glMakeBufferNonResidentNV (GLenum target); -GLAPI GLboolean APIENTRY glIsBufferResidentNV (GLenum target); -GLAPI void APIENTRY glMakeNamedBufferResidentNV (GLuint buffer, GLenum access); -GLAPI void APIENTRY glMakeNamedBufferNonResidentNV (GLuint buffer); -GLAPI GLboolean APIENTRY glIsNamedBufferResidentNV (GLuint buffer); -GLAPI void APIENTRY glGetBufferParameterui64vNV (GLenum target, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glGetNamedBufferParameterui64vNV (GLuint buffer, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glGetIntegerui64vNV (GLenum value, GLuint64EXT *result); -GLAPI void APIENTRY glUniformui64NV (GLint location, GLuint64EXT value); -GLAPI void APIENTRY glUniformui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniformui64NV (GLuint program, GLint location, GLuint64EXT value); -GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif -#endif /* GL_NV_shader_buffer_load */ - -#ifndef GL_NV_shader_buffer_store -#define GL_NV_shader_buffer_store 1 -#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010 -#endif /* GL_NV_shader_buffer_store */ - -#ifndef GL_NV_shader_storage_buffer_object -#define GL_NV_shader_storage_buffer_object 1 -#endif /* GL_NV_shader_storage_buffer_object */ - -#ifndef GL_NV_shader_subgroup_partitioned -#define GL_NV_shader_subgroup_partitioned 1 -#define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100 -#endif /* GL_NV_shader_subgroup_partitioned */ - -#ifndef GL_NV_shader_texture_footprint -#define GL_NV_shader_texture_footprint 1 -#endif /* GL_NV_shader_texture_footprint */ - -#ifndef GL_NV_shader_thread_group -#define GL_NV_shader_thread_group 1 -#define GL_WARP_SIZE_NV 0x9339 -#define GL_WARPS_PER_SM_NV 0x933A -#define GL_SM_COUNT_NV 0x933B -#endif /* GL_NV_shader_thread_group */ - -#ifndef GL_NV_shader_thread_shuffle -#define GL_NV_shader_thread_shuffle 1 -#endif /* GL_NV_shader_thread_shuffle */ - -#ifndef GL_NV_shading_rate_image -#define GL_NV_shading_rate_image 1 -#define GL_SHADING_RATE_IMAGE_NV 0x9563 -#define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564 -#define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565 -#define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566 -#define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567 -#define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568 -#define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569 -#define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A -#define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B -#define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C -#define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D -#define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E -#define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F -#define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B -#define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C -#define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D -#define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E -#define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F -#define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE -#define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF -#define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0 -typedef void (APIENTRYP PFNGLBINDSHADINGRATEIMAGENVPROC) (GLuint texture); -typedef void (APIENTRYP PFNGLGETSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint entry, GLenum *rate); -typedef void (APIENTRYP PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC) (GLenum rate, GLuint samples, GLuint index, GLint *location); -typedef void (APIENTRYP PFNGLSHADINGRATEIMAGEBARRIERNVPROC) (GLboolean synchronize); -typedef void (APIENTRYP PFNGLSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); -typedef void (APIENTRYP PFNGLSHADINGRATESAMPLEORDERNVPROC) (GLenum order); -typedef void (APIENTRYP PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC) (GLenum rate, GLuint samples, const GLint *locations); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindShadingRateImageNV (GLuint texture); -GLAPI void APIENTRY glGetShadingRateImagePaletteNV (GLuint viewport, GLuint entry, GLenum *rate); -GLAPI void APIENTRY glGetShadingRateSampleLocationivNV (GLenum rate, GLuint samples, GLuint index, GLint *location); -GLAPI void APIENTRY glShadingRateImageBarrierNV (GLboolean synchronize); -GLAPI void APIENTRY glShadingRateImagePaletteNV (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); -GLAPI void APIENTRY glShadingRateSampleOrderNV (GLenum order); -GLAPI void APIENTRY glShadingRateSampleOrderCustomNV (GLenum rate, GLuint samples, const GLint *locations); -#endif -#endif /* GL_NV_shading_rate_image */ - -#ifndef GL_NV_stereo_view_rendering -#define GL_NV_stereo_view_rendering 1 -#endif /* GL_NV_stereo_view_rendering */ - -#ifndef GL_NV_tessellation_program5 -#define GL_NV_tessellation_program5 1 -#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 -#define GL_TESS_CONTROL_PROGRAM_NV 0x891E -#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F -#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 -#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 -#endif /* GL_NV_tessellation_program5 */ - -#ifndef GL_NV_texgen_emboss -#define GL_NV_texgen_emboss 1 -#define GL_EMBOSS_LIGHT_NV 0x855D -#define GL_EMBOSS_CONSTANT_NV 0x855E -#define GL_EMBOSS_MAP_NV 0x855F -#endif /* GL_NV_texgen_emboss */ - -#ifndef GL_NV_texgen_reflection -#define GL_NV_texgen_reflection 1 -#define GL_NORMAL_MAP_NV 0x8511 -#define GL_REFLECTION_MAP_NV 0x8512 -#endif /* GL_NV_texgen_reflection */ - -#ifndef GL_NV_texture_barrier -#define GL_NV_texture_barrier 1 -typedef void (APIENTRYP PFNGLTEXTUREBARRIERNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureBarrierNV (void); -#endif -#endif /* GL_NV_texture_barrier */ - -#ifndef GL_NV_texture_compression_vtc -#define GL_NV_texture_compression_vtc 1 -#endif /* GL_NV_texture_compression_vtc */ - -#ifndef GL_NV_texture_env_combine4 -#define GL_NV_texture_env_combine4 1 -#define GL_COMBINE4_NV 0x8503 -#define GL_SOURCE3_RGB_NV 0x8583 -#define GL_SOURCE3_ALPHA_NV 0x858B -#define GL_OPERAND3_RGB_NV 0x8593 -#define GL_OPERAND3_ALPHA_NV 0x859B -#endif /* GL_NV_texture_env_combine4 */ - -#ifndef GL_NV_texture_expand_normal -#define GL_NV_texture_expand_normal 1 -#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F -#endif /* GL_NV_texture_expand_normal */ - -#ifndef GL_NV_texture_multisample -#define GL_NV_texture_multisample 1 -#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 -#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 -typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage2DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTexImage3DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage2DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage3DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage2DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -#endif -#endif /* GL_NV_texture_multisample */ - -#ifndef GL_NV_texture_rectangle -#define GL_NV_texture_rectangle 1 -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 -#endif /* GL_NV_texture_rectangle */ - -#ifndef GL_NV_texture_rectangle_compressed -#define GL_NV_texture_rectangle_compressed 1 -#endif /* GL_NV_texture_rectangle_compressed */ - -#ifndef GL_NV_texture_shader -#define GL_NV_texture_shader 1 -#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_SHADER_CONSISTENT_NV 0x86DD -#define GL_TEXTURE_SHADER_NV 0x86DE -#define GL_SHADER_OPERATION_NV 0x86DF -#define GL_CULL_MODES_NV 0x86E0 -#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3 -#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define GL_CONST_EYE_NV 0x86E5 -#define GL_PASS_THROUGH_NV 0x86E6 -#define GL_CULL_FRAGMENT_NV 0x86E7 -#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define GL_DOT_PRODUCT_NV 0x86EC -#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define GL_HI_SCALE_NV 0x870E -#define GL_LO_SCALE_NV 0x870F -#define GL_DS_SCALE_NV 0x8710 -#define GL_DT_SCALE_NV 0x8711 -#define GL_MAGNITUDE_SCALE_NV 0x8712 -#define GL_VIBRANCE_SCALE_NV 0x8713 -#define GL_HI_BIAS_NV 0x8714 -#define GL_LO_BIAS_NV 0x8715 -#define GL_DS_BIAS_NV 0x8716 -#define GL_DT_BIAS_NV 0x8717 -#define GL_MAGNITUDE_BIAS_NV 0x8718 -#define GL_VIBRANCE_BIAS_NV 0x8719 -#define GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define GL_TEXTURE_HI_SIZE_NV 0x871B -#define GL_TEXTURE_LO_SIZE_NV 0x871C -#define GL_TEXTURE_DS_SIZE_NV 0x871D -#define GL_TEXTURE_DT_SIZE_NV 0x871E -#define GL_TEXTURE_MAG_SIZE_NV 0x871F -#endif /* GL_NV_texture_shader */ - -#ifndef GL_NV_texture_shader2 -#define GL_NV_texture_shader2 1 -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#endif /* GL_NV_texture_shader2 */ - -#ifndef GL_NV_texture_shader3 -#define GL_NV_texture_shader3 1 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 -#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 -#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 -#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 -#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 -#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A -#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B -#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C -#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D -#define GL_HILO8_NV 0x885E -#define GL_SIGNED_HILO8_NV 0x885F -#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 -#endif /* GL_NV_texture_shader3 */ - -#ifndef GL_NV_timeline_semaphore -#define GL_NV_timeline_semaphore 1 -#define GL_TIMELINE_SEMAPHORE_VALUE_NV 0x9595 -#define GL_SEMAPHORE_TYPE_NV 0x95B3 -#define GL_SEMAPHORE_TYPE_BINARY_NV 0x95B4 -#define GL_SEMAPHORE_TYPE_TIMELINE_NV 0x95B5 -#define GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6 -typedef void (APIENTRYP PFNGLCREATESEMAPHORESNVPROC) (GLsizei n, GLuint *semaphores); -typedef void (APIENTRYP PFNGLSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCreateSemaphoresNV (GLsizei n, GLuint *semaphores); -GLAPI void APIENTRY glSemaphoreParameterivNV (GLuint semaphore, GLenum pname, const GLint *params); -GLAPI void APIENTRY glGetSemaphoreParameterivNV (GLuint semaphore, GLenum pname, GLint *params); -#endif -#endif /* GL_NV_timeline_semaphore */ - -#ifndef GL_NV_transform_feedback -#define GL_NV_transform_feedback 1 -#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 -#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 -#define GL_TEXTURE_COORD_NV 0x8C79 -#define GL_CLIP_DISTANCE_NV 0x8C7A -#define GL_VERTEX_ID_NV 0x8C7B -#define GL_PRIMITIVE_ID_NV 0x8C7C -#define GL_GENERIC_ATTRIB_NV 0x8C7D -#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 -#define GL_ACTIVE_VARYINGS_NV 0x8C81 -#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 -#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 -#define GL_PRIMITIVES_GENERATED_NV 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 -#define GL_RASTERIZER_DISCARD_NV 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C -#define GL_SEPARATE_ATTRIBS_NV 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F -#define GL_LAYER_NV 0x8DAA -#define GL_NEXT_BUFFER_NV -2 -#define GL_SKIP_COMPONENTS4_NV -3 -#define GL_SKIP_COMPONENTS3_NV -4 -#define GL_SKIP_COMPONENTS2_NV -5 -#define GL_SKIP_COMPONENTS1_NV -6 -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLenum bufferMode); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedbackNV (void); -GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLsizei count, const GLint *attribs, GLenum bufferMode); -GLAPI void APIENTRY glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -GLAPI void APIENTRY glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -GLAPI void APIENTRY glActiveVaryingNV (GLuint program, const GLchar *name); -GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetActiveVaryingNV (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint program, GLuint index, GLint *location); -GLAPI void APIENTRY glTransformFeedbackStreamAttribsNV (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); -#endif -#endif /* GL_NV_transform_feedback */ - -#ifndef GL_NV_transform_feedback2 -#define GL_NV_transform_feedback2 1 -#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 -typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids); -typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindTransformFeedbackNV (GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteTransformFeedbacksNV (GLsizei n, const GLuint *ids); -GLAPI void APIENTRY glGenTransformFeedbacksNV (GLsizei n, GLuint *ids); -GLAPI GLboolean APIENTRY glIsTransformFeedbackNV (GLuint id); -GLAPI void APIENTRY glPauseTransformFeedbackNV (void); -GLAPI void APIENTRY glResumeTransformFeedbackNV (void); -GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum mode, GLuint id); -#endif -#endif /* GL_NV_transform_feedback2 */ - -#ifndef GL_NV_uniform_buffer_unified_memory -#define GL_NV_uniform_buffer_unified_memory 1 -#define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E -#define GL_UNIFORM_BUFFER_ADDRESS_NV 0x936F -#define GL_UNIFORM_BUFFER_LENGTH_NV 0x9370 -#endif /* GL_NV_uniform_buffer_unified_memory */ - -#ifndef GL_NV_vdpau_interop -#define GL_NV_vdpau_interop 1 -typedef GLintptr GLvdpauSurfaceNV; -#define GL_SURFACE_STATE_NV 0x86EB -#define GL_SURFACE_REGISTERED_NV 0x86FD -#define GL_SURFACE_MAPPED_NV 0x8700 -#define GL_WRITE_DISCARD_NV 0x88BE -typedef void (APIENTRYP PFNGLVDPAUINITNVPROC) (const void *vdpDevice, const void *getProcAddress); -typedef void (APIENTRYP PFNGLVDPAUFININVPROC) (void); -typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef GLboolean (APIENTRYP PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); -typedef void (APIENTRYP PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); -typedef void (APIENTRYP PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -typedef void (APIENTRYP PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); -typedef void (APIENTRYP PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); -typedef void (APIENTRYP PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVDPAUInitNV (const void *vdpDevice, const void *getProcAddress); -GLAPI void APIENTRY glVDPAUFiniNV (void); -GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -GLAPI GLboolean APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface); -GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface); -GLAPI void APIENTRY glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -GLAPI void APIENTRY glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access); -GLAPI void APIENTRY glVDPAUMapSurfacesNV (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); -GLAPI void APIENTRY glVDPAUUnmapSurfacesNV (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); -#endif -#endif /* GL_NV_vdpau_interop */ - -#ifndef GL_NV_vdpau_interop2 -#define GL_NV_vdpau_interop2 1 -typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceWithPictureStructureNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure); -#endif -#endif /* GL_NV_vdpau_interop2 */ - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range 1 -#define GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); -GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei length, const void *pointer); -#endif -#endif /* GL_NV_vertex_array_range */ - -#ifndef GL_NV_vertex_array_range2 -#define GL_NV_vertex_array_range2 1 -#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 -#endif /* GL_NV_vertex_array_range2 */ - -#ifndef GL_NV_vertex_attrib_integer_64bit -#define GL_NV_vertex_attrib_integer_64bit 1 -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1i64NV (GLuint index, GLint64EXT x); -GLAPI void APIENTRY glVertexAttribL2i64NV (GLuint index, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glVertexAttribL3i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glVertexAttribL4i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glVertexAttribL1i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL2i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL3i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL4i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL1ui64NV (GLuint index, GLuint64EXT x); -GLAPI void APIENTRY glVertexAttribL2ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glVertexAttribL3ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glVertexAttribL4ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glVertexAttribL1ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL2ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL3ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL4ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glGetVertexAttribLi64vNV (GLuint index, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetVertexAttribLui64vNV (GLuint index, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glVertexAttribLFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); -#endif -#endif /* GL_NV_vertex_attrib_integer_64bit */ - -#ifndef GL_NV_vertex_buffer_unified_memory -#define GL_NV_vertex_buffer_unified_memory 1 -#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E -#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F -#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 -#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 -#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 -#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 -#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 -#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 -#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 -#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 -#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 -#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 -#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A -#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B -#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C -#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D -#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E -#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F -#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 -#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 -#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 -#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 -#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 -#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 -#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 -typedef void (APIENTRYP PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -typedef void (APIENTRYP PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); -typedef void (APIENTRYP PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT *result); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferAddressRangeNV (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -GLAPI void APIENTRY glVertexFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glNormalFormatNV (GLenum type, GLsizei stride); -GLAPI void APIENTRY glColorFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glIndexFormatNV (GLenum type, GLsizei stride); -GLAPI void APIENTRY glTexCoordFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glEdgeFlagFormatNV (GLsizei stride); -GLAPI void APIENTRY glSecondaryColorFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glFogCoordFormatNV (GLenum type, GLsizei stride); -GLAPI void APIENTRY glVertexAttribFormatNV (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -GLAPI void APIENTRY glVertexAttribIFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glGetIntegerui64i_vNV (GLenum value, GLuint index, GLuint64EXT *result); -#endif -#endif /* GL_NV_vertex_buffer_unified_memory */ - -#ifndef GL_NV_vertex_program -#define GL_NV_vertex_program 1 -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define GL_CURRENT_ATTRIB_NV 0x8626 -#define GL_PROGRAM_LENGTH_NV 0x8627 -#define GL_PROGRAM_STRING_NV 0x8628 -#define GL_MODELVIEW_PROJECTION_NV 0x8629 -#define GL_IDENTITY_NV 0x862A -#define GL_INVERSE_NV 0x862B -#define GL_TRANSPOSE_NV 0x862C -#define GL_INVERSE_TRANSPOSE_NV 0x862D -#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define GL_MAX_TRACK_MATRICES_NV 0x862F -#define GL_MATRIX0_NV 0x8630 -#define GL_MATRIX1_NV 0x8631 -#define GL_MATRIX2_NV 0x8632 -#define GL_MATRIX3_NV 0x8633 -#define GL_MATRIX4_NV 0x8634 -#define GL_MATRIX5_NV 0x8635 -#define GL_MATRIX6_NV 0x8636 -#define GL_MATRIX7_NV 0x8637 -#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define GL_CURRENT_MATRIX_NV 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define GL_PROGRAM_PARAMETER_NV 0x8644 -#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define GL_PROGRAM_TARGET_NV 0x8646 -#define GL_PROGRAM_RESIDENT_NV 0x8647 -#define GL_TRACK_MATRIX_NV 0x8648 -#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F -typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); -typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); -typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, void **pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei n, const GLuint *programs, GLboolean *residences); -GLAPI void APIENTRY glBindProgramNV (GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteProgramsNV (GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glExecuteProgramNV (GLenum target, GLuint id, const GLfloat *params); -GLAPI void APIENTRY glGenProgramsNV (GLsizei n, GLuint *programs); -GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum target, GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetProgramivNV (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramStringNV (GLuint id, GLenum pname, GLubyte *program); -GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum target, GLuint address, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribivNV (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint index, GLenum pname, void **pointer); -GLAPI GLboolean APIENTRY glIsProgramNV (GLuint id); -GLAPI void APIENTRY glLoadProgramNV (GLenum target, GLuint id, GLsizei len, const GLubyte *program); -GLAPI void APIENTRY glProgramParameter4dNV (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramParameter4dvNV (GLenum target, GLuint index, const GLdouble *v); -GLAPI void APIENTRY glProgramParameter4fNV (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramParameter4fvNV (GLenum target, GLuint index, const GLfloat *v); -GLAPI void APIENTRY glProgramParameters4dvNV (GLenum target, GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glProgramParameters4fvNV (GLenum target, GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glTrackMatrixNV (GLenum target, GLuint address, GLenum matrix, GLenum transform); -GLAPI void APIENTRY glVertexAttribPointerNV (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer); -GLAPI void APIENTRY glVertexAttrib1dNV (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1fNV (GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1sNV (GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2dNV (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2fNV (GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2sNV (GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3sNV (GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4sNV (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs1svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs2svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs3svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs4svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint index, GLsizei count, const GLubyte *v); -#endif -#endif /* GL_NV_vertex_program */ - -#ifndef GL_NV_vertex_program1_1 -#define GL_NV_vertex_program1_1 1 -#endif /* GL_NV_vertex_program1_1 */ - -#ifndef GL_NV_vertex_program2 -#define GL_NV_vertex_program2 1 -#endif /* GL_NV_vertex_program2 */ - -#ifndef GL_NV_vertex_program2_option -#define GL_NV_vertex_program2_option 1 -#endif /* GL_NV_vertex_program2_option */ - -#ifndef GL_NV_vertex_program3 -#define GL_NV_vertex_program3 1 -#endif /* GL_NV_vertex_program3 */ - -#ifndef GL_NV_vertex_program4 -#define GL_NV_vertex_program4 1 -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD -#endif /* GL_NV_vertex_program4 */ - -#ifndef GL_NV_video_capture -#define GL_NV_video_capture 1 -#define GL_VIDEO_BUFFER_NV 0x9020 -#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 -#define GL_FIELD_UPPER_NV 0x9022 -#define GL_FIELD_LOWER_NV 0x9023 -#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 -#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 -#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 -#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 -#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 -#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 -#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A -#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B -#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C -#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D -#define GL_PARTIAL_SUCCESS_NV 0x902E -#define GL_SUCCESS_NV 0x902F -#define GL_FAILURE_NV 0x9030 -#define GL_YCBYCR8_422_NV 0x9031 -#define GL_YCBAYCR8A_4224_NV 0x9032 -#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 -#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 -#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 -#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 -#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 -#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 -#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 -#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A -#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B -#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C -typedef void (APIENTRYP PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); -typedef GLenum (APIENTRYP PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); -typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVideoCaptureNV (GLuint video_capture_slot); -GLAPI void APIENTRY glBindVideoCaptureStreamBufferNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -GLAPI void APIENTRY glBindVideoCaptureStreamTextureNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -GLAPI void APIENTRY glEndVideoCaptureNV (GLuint video_capture_slot); -GLAPI void APIENTRY glGetVideoCaptureivNV (GLuint video_capture_slot, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); -GLAPI GLenum APIENTRY glVideoCaptureNV (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); -GLAPI void APIENTRY glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); -GLAPI void APIENTRY glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); -#endif -#endif /* GL_NV_video_capture */ - -#ifndef GL_NV_viewport_array2 -#define GL_NV_viewport_array2 1 -#endif /* GL_NV_viewport_array2 */ - -#ifndef GL_NV_viewport_swizzle -#define GL_NV_viewport_swizzle 1 -#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350 -#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351 -#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352 -#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353 -#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354 -#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355 -#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356 -#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357 -#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358 -#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359 -#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A -#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B -typedef void (APIENTRYP PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glViewportSwizzleNV (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); -#endif -#endif /* GL_NV_viewport_swizzle */ - -#ifndef GL_OML_interlace -#define GL_OML_interlace 1 -#define GL_INTERLACE_OML 0x8980 -#define GL_INTERLACE_READ_OML 0x8981 -#endif /* GL_OML_interlace */ - -#ifndef GL_OML_resample -#define GL_OML_resample 1 -#define GL_PACK_RESAMPLE_OML 0x8984 -#define GL_UNPACK_RESAMPLE_OML 0x8985 -#define GL_RESAMPLE_REPLICATE_OML 0x8986 -#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 -#define GL_RESAMPLE_AVERAGE_OML 0x8988 -#define GL_RESAMPLE_DECIMATE_OML 0x8989 -#endif /* GL_OML_resample */ - -#ifndef GL_OML_subsample -#define GL_OML_subsample 1 -#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 -#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 -#endif /* GL_OML_subsample */ - -#ifndef GL_OVR_multiview -#define GL_OVR_multiview 1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632 -#define GL_MAX_VIEWS_OVR 0x9631 -#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633 -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); -#endif -#endif /* GL_OVR_multiview */ - -#ifndef GL_OVR_multiview2 -#define GL_OVR_multiview2 1 -#endif /* GL_OVR_multiview2 */ - -#ifndef GL_PGI_misc_hints -#define GL_PGI_misc_hints 1 -#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 -#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD -#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE -#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 -#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 -#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 -#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C -#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D -#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E -#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F -#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 -#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 -#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 -#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 -#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 -#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 -#define GL_CLIP_NEAR_HINT_PGI 0x1A220 -#define GL_CLIP_FAR_HINT_PGI 0x1A221 -#define GL_WIDE_LINE_HINT_PGI 0x1A222 -#define GL_BACK_NORMALS_HINT_PGI 0x1A223 -typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glHintPGI (GLenum target, GLint mode); -#endif -#endif /* GL_PGI_misc_hints */ - -#ifndef GL_PGI_vertex_hints -#define GL_PGI_vertex_hints 1 -#define GL_VERTEX_DATA_HINT_PGI 0x1A22A -#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B -#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C -#define GL_MAX_VERTEX_HINT_PGI 0x1A22D -#define GL_COLOR3_BIT_PGI 0x00010000 -#define GL_COLOR4_BIT_PGI 0x00020000 -#define GL_EDGEFLAG_BIT_PGI 0x00040000 -#define GL_INDEX_BIT_PGI 0x00080000 -#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define GL_NORMAL_BIT_PGI 0x08000000 -#define GL_TEXCOORD1_BIT_PGI 0x10000000 -#define GL_TEXCOORD2_BIT_PGI 0x20000000 -#define GL_TEXCOORD3_BIT_PGI 0x40000000 -#define GL_TEXCOORD4_BIT_PGI 0x80000000 -#define GL_VERTEX23_BIT_PGI 0x00000004 -#define GL_VERTEX4_BIT_PGI 0x00000008 -#endif /* GL_PGI_vertex_hints */ - -#ifndef GL_REND_screen_coordinates -#define GL_REND_screen_coordinates 1 -#define GL_SCREEN_COORDINATES_REND 0x8490 -#define GL_INVERTED_SCREEN_W_REND 0x8491 -#endif /* GL_REND_screen_coordinates */ - -#ifndef GL_S3_s3tc -#define GL_S3_s3tc 1 -#define GL_RGB_S3TC 0x83A0 -#define GL_RGB4_S3TC 0x83A1 -#define GL_RGBA_S3TC 0x83A2 -#define GL_RGBA4_S3TC 0x83A3 -#define GL_RGBA_DXT5_S3TC 0x83A4 -#define GL_RGBA4_DXT5_S3TC 0x83A5 -#endif /* GL_S3_s3tc */ - -#ifndef GL_SGIS_detail_texture -#define GL_SGIS_detail_texture 1 -#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 -#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 -#define GL_LINEAR_DETAIL_SGIS 0x8097 -#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 -#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 -#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A -#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B -#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C -typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum target, GLfloat *points); -#endif -#endif /* GL_SGIS_detail_texture */ - -#ifndef GL_SGIS_fog_function -#define GL_SGIS_fog_function 1 -#define GL_FOG_FUNC_SGIS 0x812A -#define GL_FOG_FUNC_POINTS_SGIS 0x812B -#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C -typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogFuncSGIS (GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *points); -#endif -#endif /* GL_SGIS_fog_function */ - -#ifndef GL_SGIS_generate_mipmap -#define GL_SGIS_generate_mipmap 1 -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 -#endif /* GL_SGIS_generate_mipmap */ - -#ifndef GL_SGIS_multisample -#define GL_SGIS_multisample 1 -#define GL_MULTISAMPLE_SGIS 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define GL_SAMPLE_MASK_SGIS 0x80A0 -#define GL_1PASS_SGIS 0x80A1 -#define GL_2PASS_0_SGIS 0x80A2 -#define GL_2PASS_1_SGIS 0x80A3 -#define GL_4PASS_0_SGIS 0x80A4 -#define GL_4PASS_1_SGIS 0x80A5 -#define GL_4PASS_2_SGIS 0x80A6 -#define GL_4PASS_3_SGIS 0x80A7 -#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define GL_SAMPLES_SGIS 0x80A9 -#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define GL_SAMPLE_PATTERN_SGIS 0x80AC -typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskSGIS (GLclampf value, GLboolean invert); -GLAPI void APIENTRY glSamplePatternSGIS (GLenum pattern); -#endif -#endif /* GL_SGIS_multisample */ - -#ifndef GL_SGIS_pixel_texture -#define GL_SGIS_pixel_texture 1 -#define GL_PIXEL_TEXTURE_SGIS 0x8353 -#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 -#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 -#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum pname, GLint param); -GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum pname, const GLint *params); -GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum pname, GLint *params); -GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum pname, GLfloat *params); -#endif -#endif /* GL_SGIS_pixel_texture */ - -#ifndef GL_SGIS_point_line_texgen -#define GL_SGIS_point_line_texgen 1 -#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 -#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 -#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 -#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 -#define GL_EYE_POINT_SGIS 0x81F4 -#define GL_OBJECT_POINT_SGIS 0x81F5 -#define GL_EYE_LINE_SGIS 0x81F6 -#define GL_OBJECT_LINE_SGIS 0x81F7 -#endif /* GL_SGIS_point_line_texgen */ - -#ifndef GL_SGIS_point_parameters -#define GL_SGIS_point_parameters 1 -#define GL_POINT_SIZE_MIN_SGIS 0x8126 -#define GL_POINT_SIZE_MAX_SGIS 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 -#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 -typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfSGIS (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvSGIS (GLenum pname, const GLfloat *params); -#endif -#endif /* GL_SGIS_point_parameters */ - -#ifndef GL_SGIS_sharpen_texture -#define GL_SGIS_sharpen_texture 1 -#define GL_LINEAR_SHARPEN_SGIS 0x80AD -#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE -#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF -#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 -typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum target, GLfloat *points); -#endif -#endif /* GL_SGIS_sharpen_texture */ - -#ifndef GL_SGIS_texture4D -#define GL_SGIS_texture4D 1 -#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 -#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 -#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 -#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 -#define GL_TEXTURE_4D_SGIS 0x8134 -#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 -#define GL_TEXTURE_4DSIZE_SGIS 0x8136 -#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 -#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 -#define GL_TEXTURE_4D_BINDING_SGIS 0x814F -typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage4DSGIS (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels); -#endif -#endif /* GL_SGIS_texture4D */ - -#ifndef GL_SGIS_texture_border_clamp -#define GL_SGIS_texture_border_clamp 1 -#define GL_CLAMP_TO_BORDER_SGIS 0x812D -#endif /* GL_SGIS_texture_border_clamp */ - -#ifndef GL_SGIS_texture_color_mask -#define GL_SGIS_texture_color_mask 1 -#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF -typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#endif -#endif /* GL_SGIS_texture_color_mask */ - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_SGIS_texture_edge_clamp 1 -#define GL_CLAMP_TO_EDGE_SGIS 0x812F -#endif /* GL_SGIS_texture_edge_clamp */ - -#ifndef GL_SGIS_texture_filter4 -#define GL_SGIS_texture_filter4 1 -#define GL_FILTER4_SGIS 0x8146 -#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 -typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); -typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum target, GLenum filter, GLfloat *weights); -GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#endif -#endif /* GL_SGIS_texture_filter4 */ - -#ifndef GL_SGIS_texture_lod -#define GL_SGIS_texture_lod 1 -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D -#endif /* GL_SGIS_texture_lod */ - -#ifndef GL_SGIS_texture_select -#define GL_SGIS_texture_select 1 -#define GL_DUAL_ALPHA4_SGIS 0x8110 -#define GL_DUAL_ALPHA8_SGIS 0x8111 -#define GL_DUAL_ALPHA12_SGIS 0x8112 -#define GL_DUAL_ALPHA16_SGIS 0x8113 -#define GL_DUAL_LUMINANCE4_SGIS 0x8114 -#define GL_DUAL_LUMINANCE8_SGIS 0x8115 -#define GL_DUAL_LUMINANCE12_SGIS 0x8116 -#define GL_DUAL_LUMINANCE16_SGIS 0x8117 -#define GL_DUAL_INTENSITY4_SGIS 0x8118 -#define GL_DUAL_INTENSITY8_SGIS 0x8119 -#define GL_DUAL_INTENSITY12_SGIS 0x811A -#define GL_DUAL_INTENSITY16_SGIS 0x811B -#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C -#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D -#define GL_QUAD_ALPHA4_SGIS 0x811E -#define GL_QUAD_ALPHA8_SGIS 0x811F -#define GL_QUAD_LUMINANCE4_SGIS 0x8120 -#define GL_QUAD_LUMINANCE8_SGIS 0x8121 -#define GL_QUAD_INTENSITY4_SGIS 0x8122 -#define GL_QUAD_INTENSITY8_SGIS 0x8123 -#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 -#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 -#endif /* GL_SGIS_texture_select */ - -#ifndef GL_SGIX_async -#define GL_SGIX_async 1 -#define GL_ASYNC_MARKER_SGIX 0x8329 -typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); -typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); -typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); -typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); -typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); -typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint marker); -GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *markerp); -GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *markerp); -GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei range); -GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint marker, GLsizei range); -GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint marker); -#endif -#endif /* GL_SGIX_async */ - -#ifndef GL_SGIX_async_histogram -#define GL_SGIX_async_histogram 1 -#define GL_ASYNC_HISTOGRAM_SGIX 0x832C -#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D -#endif /* GL_SGIX_async_histogram */ - -#ifndef GL_SGIX_async_pixel -#define GL_SGIX_async_pixel 1 -#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C -#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D -#define GL_ASYNC_READ_PIXELS_SGIX 0x835E -#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F -#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 -#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 -#endif /* GL_SGIX_async_pixel */ - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_SGIX_blend_alpha_minmax 1 -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 -#endif /* GL_SGIX_blend_alpha_minmax */ - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_SGIX_calligraphic_fragment 1 -#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 -#endif /* GL_SGIX_calligraphic_fragment */ - -#ifndef GL_SGIX_clipmap -#define GL_SGIX_clipmap 1 -#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 -#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 -#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 -#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 -#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 -#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 -#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 -#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 -#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 -#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D -#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E -#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F -#endif /* GL_SGIX_clipmap */ - -#ifndef GL_SGIX_convolution_accuracy -#define GL_SGIX_convolution_accuracy 1 -#define GL_CONVOLUTION_HINT_SGIX 0x8316 -#endif /* GL_SGIX_convolution_accuracy */ - -#ifndef GL_SGIX_depth_pass_instrument -#define GL_SGIX_depth_pass_instrument 1 -#endif /* GL_SGIX_depth_pass_instrument */ - -#ifndef GL_SGIX_depth_texture -#define GL_SGIX_depth_texture 1 -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 -#endif /* GL_SGIX_depth_texture */ - -#ifndef GL_SGIX_flush_raster -#define GL_SGIX_flush_raster 1 -typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushRasterSGIX (void); -#endif -#endif /* GL_SGIX_flush_raster */ - -#ifndef GL_SGIX_fog_offset -#define GL_SGIX_fog_offset 1 -#define GL_FOG_OFFSET_SGIX 0x8198 -#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 -#endif /* GL_SGIX_fog_offset */ - -#ifndef GL_SGIX_fragment_lighting -#define GL_SGIX_fragment_lighting 1 -#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 -#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 -#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 -#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 -#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 -#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 -#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 -#define GL_LIGHT_ENV_MODE_SGIX 0x8407 -#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 -#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 -#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A -#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B -#define GL_FRAGMENT_LIGHT0_SGIX 0x840C -#define GL_FRAGMENT_LIGHT1_SGIX 0x840D -#define GL_FRAGMENT_LIGHT2_SGIX 0x840E -#define GL_FRAGMENT_LIGHT3_SGIX 0x840F -#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 -#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 -#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 -#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 -typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum face, GLenum mode); -GLAPI void APIENTRY glFragmentLightfSGIX (GLenum light, GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum light, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentLightiSGIX (GLenum light, GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentLightivSGIX (GLenum light, GLenum pname, const GLint *params); -GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum pname, const GLint *params); -GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum face, GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum face, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum face, GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum face, GLenum pname, const GLint *params); -GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum light, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum light, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum face, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum face, GLenum pname, GLint *params); -GLAPI void APIENTRY glLightEnviSGIX (GLenum pname, GLint param); -#endif -#endif /* GL_SGIX_fragment_lighting */ - -#ifndef GL_SGIX_framezoom -#define GL_SGIX_framezoom 1 -#define GL_FRAMEZOOM_SGIX 0x818B -#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C -#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D -typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameZoomSGIX (GLint factor); -#endif -#endif /* GL_SGIX_framezoom */ - -#ifndef GL_SGIX_igloo_interface -#define GL_SGIX_igloo_interface 1 -typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const void *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum pname, const void *params); -#endif -#endif /* GL_SGIX_igloo_interface */ - -#ifndef GL_SGIX_instruments -#define GL_SGIX_instruments 1 -#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 -#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 -typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); -typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); -typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); -typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); -GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei size, GLint *buffer); -GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *marker_p); -GLAPI void APIENTRY glReadInstrumentsSGIX (GLint marker); -GLAPI void APIENTRY glStartInstrumentsSGIX (void); -GLAPI void APIENTRY glStopInstrumentsSGIX (GLint marker); -#endif -#endif /* GL_SGIX_instruments */ - -#ifndef GL_SGIX_interlace -#define GL_SGIX_interlace 1 -#define GL_INTERLACE_SGIX 0x8094 -#endif /* GL_SGIX_interlace */ - -#ifndef GL_SGIX_ir_instrument1 -#define GL_SGIX_ir_instrument1 1 -#define GL_IR_INSTRUMENT1_SGIX 0x817F -#endif /* GL_SGIX_ir_instrument1 */ - -#ifndef GL_SGIX_list_priority -#define GL_SGIX_list_priority 1 -#define GL_LIST_PRIORITY_SGIX 0x8182 -typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint list, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetListParameterivSGIX (GLuint list, GLenum pname, GLint *params); -GLAPI void APIENTRY glListParameterfSGIX (GLuint list, GLenum pname, GLfloat param); -GLAPI void APIENTRY glListParameterfvSGIX (GLuint list, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glListParameteriSGIX (GLuint list, GLenum pname, GLint param); -GLAPI void APIENTRY glListParameterivSGIX (GLuint list, GLenum pname, const GLint *params); -#endif -#endif /* GL_SGIX_list_priority */ - -#ifndef GL_SGIX_pixel_texture -#define GL_SGIX_pixel_texture 1 -#define GL_PIXEL_TEX_GEN_SGIX 0x8139 -#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B -typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenSGIX (GLenum mode); -#endif -#endif /* GL_SGIX_pixel_texture */ - -#ifndef GL_SGIX_pixel_tiles -#define GL_SGIX_pixel_tiles 1 -#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E -#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F -#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 -#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 -#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 -#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 -#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 -#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 -#endif /* GL_SGIX_pixel_tiles */ - -#ifndef GL_SGIX_polynomial_ffd -#define GL_SGIX_polynomial_ffd 1 -#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 -#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 -#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 -#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 -#define GL_DEFORMATIONS_MASK_SGIX 0x8196 -#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -GLAPI void APIENTRY glDeformSGIX (GLbitfield mask); -GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield mask); -#endif -#endif /* GL_SGIX_polynomial_ffd */ - -#ifndef GL_SGIX_reference_plane -#define GL_SGIX_reference_plane 1 -#define GL_REFERENCE_PLANE_SGIX 0x817D -#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E -typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *equation); -#endif -#endif /* GL_SGIX_reference_plane */ - -#ifndef GL_SGIX_resample -#define GL_SGIX_resample 1 -#define GL_PACK_RESAMPLE_SGIX 0x842E -#define GL_UNPACK_RESAMPLE_SGIX 0x842F -#define GL_RESAMPLE_REPLICATE_SGIX 0x8433 -#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434 -#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#endif /* GL_SGIX_resample */ - -#ifndef GL_SGIX_scalebias_hint -#define GL_SGIX_scalebias_hint 1 -#define GL_SCALEBIAS_HINT_SGIX 0x8322 -#endif /* GL_SGIX_scalebias_hint */ - -#ifndef GL_SGIX_shadow -#define GL_SGIX_shadow 1 -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D -#endif /* GL_SGIX_shadow */ - -#ifndef GL_SGIX_shadow_ambient -#define GL_SGIX_shadow_ambient 1 -#define GL_SHADOW_AMBIENT_SGIX 0x80BF -#endif /* GL_SGIX_shadow_ambient */ - -#ifndef GL_SGIX_sprite -#define GL_SGIX_sprite 1 -#define GL_SPRITE_SGIX 0x8148 -#define GL_SPRITE_MODE_SGIX 0x8149 -#define GL_SPRITE_AXIS_SGIX 0x814A -#define GL_SPRITE_TRANSLATION_SGIX 0x814B -#define GL_SPRITE_AXIAL_SGIX 0x814C -#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D -#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum pname, GLfloat param); -GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum pname, GLint param); -GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum pname, const GLint *params); -#endif -#endif /* GL_SGIX_sprite */ - -#ifndef GL_SGIX_subsample -#define GL_SGIX_subsample 1 -#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 -#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 -#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 -#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 -#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 -#endif /* GL_SGIX_subsample */ - -#ifndef GL_SGIX_tag_sample_buffer -#define GL_SGIX_tag_sample_buffer 1 -typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTagSampleBufferSGIX (void); -#endif -#endif /* GL_SGIX_tag_sample_buffer */ - -#ifndef GL_SGIX_texture_add_env -#define GL_SGIX_texture_add_env 1 -#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE -#endif /* GL_SGIX_texture_add_env */ - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_SGIX_texture_coordinate_clamp 1 -#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 -#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A -#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B -#endif /* GL_SGIX_texture_coordinate_clamp */ - -#ifndef GL_SGIX_texture_lod_bias -#define GL_SGIX_texture_lod_bias 1 -#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E -#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F -#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 -#endif /* GL_SGIX_texture_lod_bias */ - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_SGIX_texture_multi_buffer 1 -#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E -#endif /* GL_SGIX_texture_multi_buffer */ - -#ifndef GL_SGIX_texture_scale_bias -#define GL_SGIX_texture_scale_bias 1 -#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C -#endif /* GL_SGIX_texture_scale_bias */ - -#ifndef GL_SGIX_vertex_preclip -#define GL_SGIX_vertex_preclip 1 -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF -#endif /* GL_SGIX_vertex_preclip */ - -#ifndef GL_SGIX_ycrcb -#define GL_SGIX_ycrcb 1 -#define GL_YCRCB_422_SGIX 0x81BB -#define GL_YCRCB_444_SGIX 0x81BC -#endif /* GL_SGIX_ycrcb */ - -#ifndef GL_SGIX_ycrcb_subsample -#define GL_SGIX_ycrcb_subsample 1 -#endif /* GL_SGIX_ycrcb_subsample */ - -#ifndef GL_SGIX_ycrcba -#define GL_SGIX_ycrcba 1 -#define GL_YCRCB_SGIX 0x8318 -#define GL_YCRCBA_SGIX 0x8319 -#endif /* GL_SGIX_ycrcba */ - -#ifndef GL_SGI_color_matrix -#define GL_SGI_color_matrix 1 -#define GL_COLOR_MATRIX_SGI 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB -#endif /* GL_SGI_color_matrix */ - -#ifndef GL_SGI_color_table -#define GL_SGI_color_table 1 -#define GL_COLOR_TABLE_SGI 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF -typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableSGI (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); -GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glColorTableParameterivSGI (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyColorTableSGI (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glGetColorTableSGI (GLenum target, GLenum format, GLenum type, void *table); -GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum target, GLenum pname, GLint *params); -#endif -#endif /* GL_SGI_color_table */ - -#ifndef GL_SGI_texture_color_table -#define GL_SGI_texture_color_table 1 -#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD -#endif /* GL_SGI_texture_color_table */ - -#ifndef GL_SUNX_constant_data -#define GL_SUNX_constant_data 1 -#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 -typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFinishTextureSUNX (void); -#endif -#endif /* GL_SUNX_constant_data */ - -#ifndef GL_SUN_convolution_border_modes -#define GL_SUN_convolution_border_modes 1 -#define GL_WRAP_BORDER_SUN 0x81D4 -#endif /* GL_SUN_convolution_border_modes */ - -#ifndef GL_SUN_global_alpha -#define GL_SUN_global_alpha 1 -#define GL_GLOBAL_ALPHA_SUN 0x81D9 -#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte factor); -GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort factor); -GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint factor); -GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat factor); -GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble factor); -GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte factor); -GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort factor); -GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint factor); -#endif -#endif /* GL_SUN_global_alpha */ - -#ifndef GL_SUN_mesh_array -#define GL_SUN_mesh_array 1 -#define GL_QUAD_MESH_SUN 0x8614 -#define GL_TRIANGLE_MESH_SUN 0x8615 -typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum mode, GLint first, GLsizei count, GLsizei width); -#endif -#endif /* GL_SUN_mesh_array */ - -#ifndef GL_SUN_slice_accum -#define GL_SUN_slice_accum 1 -#define GL_SLICE_ACCUM_SUN 0x85CC -#endif /* GL_SUN_slice_accum */ - -#ifndef GL_SUN_triangle_list -#define GL_SUN_triangle_list 1 -#define GL_RESTART_SUN 0x0001 -#define GL_REPLACE_MIDDLE_SUN 0x0002 -#define GL_REPLACE_OLDEST_SUN 0x0003 -#define GL_TRIANGLE_LIST_SUN 0x81D7 -#define GL_REPLACEMENT_CODE_SUN 0x81D8 -#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define GL_R1UI_V3F_SUN 0x85C4 -#define GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define GL_R1UI_C3F_V3F_SUN 0x85C6 -#define GL_R1UI_N3F_V3F_SUN 0x85C7 -#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define GL_R1UI_T2F_V3F_SUN 0x85C9 -#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void **pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint code); -GLAPI void APIENTRY glReplacementCodeusSUN (GLushort code); -GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte code); -GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *code); -GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *code); -GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *code); -GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum type, GLsizei stride, const void **pointer); -#endif -#endif /* GL_SUN_triangle_list */ - -#ifndef GL_SUN_vertex -#define GL_SUN_vertex 1 -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *tc, const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *rc, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *rc, const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#endif -#endif /* GL_SUN_vertex */ - -#ifndef GL_WIN_phong_shading -#define GL_WIN_phong_shading 1 -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB -#endif /* GL_WIN_phong_shading */ - -#ifndef GL_WIN_specular_fog -#define GL_WIN_specular_fog 1 -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC -#endif /* GL_WIN_specular_fog */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/windows/include/SDL_opengles.h b/lib/windows/include/SDL_opengles.h deleted file mode 100644 index f4465ea..0000000 --- a/lib/windows/include/SDL_opengles.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_opengles.h - * - * This is a simple file to encapsulate the OpenGL ES 1.X API headers. - */ -#include "SDL_config.h" - -#ifdef __IPHONEOS__ -#include <OpenGLES/ES1/gl.h> -#include <OpenGLES/ES1/glext.h> -#else -#include <GLES/gl.h> -#include <GLES/glext.h> -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif diff --git a/lib/windows/include/SDL_opengles2.h b/lib/windows/include/SDL_opengles2.h deleted file mode 100644 index 5e3b717..0000000 --- a/lib/windows/include/SDL_opengles2.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_opengles2.h - * - * This is a simple file to encapsulate the OpenGL ES 2.0 API headers. - */ -#include "SDL_config.h" - -#if !defined(_MSC_VER) && !defined(SDL_USE_BUILTIN_OPENGL_DEFINITIONS) - -#ifdef __IPHONEOS__ -#include <OpenGLES/ES2/gl.h> -#include <OpenGLES/ES2/glext.h> -#else -#include <GLES2/gl2platform.h> -#include <GLES2/gl2.h> -#include <GLES2/gl2ext.h> -#endif - -#else /* _MSC_VER */ - -/* OpenGL ES2 headers for Visual Studio */ -#include "SDL_opengles2_khrplatform.h" -#include "SDL_opengles2_gl2platform.h" -#include "SDL_opengles2_gl2.h" -#include "SDL_opengles2_gl2ext.h" - -#endif /* _MSC_VER */ - -#ifndef APIENTRY -#define APIENTRY GL_APIENTRY -#endif diff --git a/lib/windows/include/SDL_opengles2_gl2.h b/lib/windows/include/SDL_opengles2_gl2.h deleted file mode 100644 index d13622a..0000000 --- a/lib/windows/include/SDL_opengles2_gl2.h +++ /dev/null @@ -1,656 +0,0 @@ -#ifndef __gles2_gl2_h_ -#define __gles2_gl2_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -/*#include <GLES2/gl2platform.h>*/ - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -#ifndef GL_GLES_PROTOTYPES -#define GL_GLES_PROTOTYPES 1 -#endif - -/* Generated on date 20220530 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9] - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -/*#include <KHR/khrplatform.h>*/ -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef khronos_int16_t GLshort; -typedef khronos_uint16_t GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/windows/include/SDL_opengles2_gl2ext.h b/lib/windows/include/SDL_opengles2_gl2ext.h deleted file mode 100644 index 9448ce0..0000000 --- a/lib/windows/include/SDL_opengles2_gl2ext.h +++ /dev/null @@ -1,4033 +0,0 @@ -#ifndef __gles2_gl2ext_h_ -#define __gles2_gl2ext_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -/* Generated on date 20220530 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9] - * Versions emitted: _nomatch_^ - * Default extensions included: gles2 - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_KHR_blend_equation_advanced -#define GL_KHR_blend_equation_advanced 1 -#define GL_MULTIPLY_KHR 0x9294 -#define GL_SCREEN_KHR 0x9295 -#define GL_OVERLAY_KHR 0x9296 -#define GL_DARKEN_KHR 0x9297 -#define GL_LIGHTEN_KHR 0x9298 -#define GL_COLORDODGE_KHR 0x9299 -#define GL_COLORBURN_KHR 0x929A -#define GL_HARDLIGHT_KHR 0x929B -#define GL_SOFTLIGHT_KHR 0x929C -#define GL_DIFFERENCE_KHR 0x929E -#define GL_EXCLUSION_KHR 0x92A0 -#define GL_HSL_HUE_KHR 0x92AD -#define GL_HSL_SATURATION_KHR 0x92AE -#define GL_HSL_COLOR_KHR 0x92AF -#define GL_HSL_LUMINOSITY_KHR 0x92B0 -typedef void (GL_APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlendBarrierKHR (void); -#endif -#endif /* GL_KHR_blend_equation_advanced */ - -#ifndef GL_KHR_blend_equation_advanced_coherent -#define GL_KHR_blend_equation_advanced_coherent 1 -#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 -#endif /* GL_KHR_blend_equation_advanced_coherent */ - -#ifndef GL_KHR_context_flush_control -#define GL_KHR_context_flush_control 1 -#define GL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x82FB -#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x82FC -#endif /* GL_KHR_context_flush_control */ - -#ifndef GL_KHR_debug -#define GL_KHR_debug 1 -typedef void (GL_APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#define GL_SAMPLER 0x82E6 -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245 -#define GL_DEBUG_SOURCE_API_KHR 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A -#define GL_DEBUG_SOURCE_OTHER_KHR 0x824B -#define GL_DEBUG_TYPE_ERROR_KHR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250 -#define GL_DEBUG_TYPE_OTHER_KHR 0x8251 -#define GL_DEBUG_TYPE_MARKER_KHR 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D -#define GL_BUFFER_KHR 0x82E0 -#define GL_SHADER_KHR 0x82E1 -#define GL_PROGRAM_KHR 0x82E2 -#define GL_VERTEX_ARRAY_KHR 0x8074 -#define GL_QUERY_KHR 0x82E3 -#define GL_PROGRAM_PIPELINE_KHR 0x82E4 -#define GL_SAMPLER_KHR 0x82E6 -#define GL_MAX_LABEL_LENGTH_KHR 0x82E8 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147 -#define GL_DEBUG_SEVERITY_LOW_KHR 0x9148 -#define GL_DEBUG_OUTPUT_KHR 0x92E0 -#define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002 -#define GL_STACK_OVERFLOW_KHR 0x0503 -#define GL_STACK_UNDERFLOW_KHR 0x0504 -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLKHRPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTKHRPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKKHRPROC) (GLDEBUGPROCKHR callback, const void *userParam); -typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPKHRPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPKHRPROC) (void); -typedef void (GL_APIENTRYP PFNGLOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVKHRPROC) (GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDebugMessageControlKHR (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GL_APICALL void GL_APIENTRY glDebugMessageInsertKHR (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GL_APICALL void GL_APIENTRY glDebugMessageCallbackKHR (GLDEBUGPROCKHR callback, const void *userParam); -GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLogKHR (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -GL_APICALL void GL_APIENTRY glPushDebugGroupKHR (GLenum source, GLuint id, GLsizei length, const GLchar *message); -GL_APICALL void GL_APIENTRY glPopDebugGroupKHR (void); -GL_APICALL void GL_APIENTRY glObjectLabelKHR (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabelKHR (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glObjectPtrLabelKHR (const void *ptr, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectPtrLabelKHR (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetPointervKHR (GLenum pname, void **params); -#endif -#endif /* GL_KHR_debug */ - -#ifndef GL_KHR_no_error -#define GL_KHR_no_error 1 -#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008 -#endif /* GL_KHR_no_error */ - -#ifndef GL_KHR_parallel_shader_compile -#define GL_KHR_parallel_shader_compile 1 -#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0 -#define GL_COMPLETION_STATUS_KHR 0x91B1 -typedef void (GL_APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMaxShaderCompilerThreadsKHR (GLuint count); -#endif -#endif /* GL_KHR_parallel_shader_compile */ - -#ifndef GL_KHR_robust_buffer_access_behavior -#define GL_KHR_robust_buffer_access_behavior 1 -#endif /* GL_KHR_robust_buffer_access_behavior */ - -#ifndef GL_KHR_robustness -#define GL_KHR_robustness 1 -#define GL_CONTEXT_ROBUST_ACCESS_KHR 0x90F3 -#define GL_LOSE_CONTEXT_ON_RESET_KHR 0x8252 -#define GL_GUILTY_CONTEXT_RESET_KHR 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_KHR 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_KHR 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY_KHR 0x8256 -#define GL_NO_RESET_NOTIFICATION_KHR 0x8261 -#define GL_CONTEXT_LOST_KHR 0x0507 -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSKHRPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSKHRPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusKHR (void); -GL_APICALL void GL_APIENTRY glReadnPixelsKHR (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_APICALL void GL_APIENTRY glGetnUniformfvKHR (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformivKHR (GLuint program, GLint location, GLsizei bufSize, GLint *params); -GL_APICALL void GL_APIENTRY glGetnUniformuivKHR (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -#endif -#endif /* GL_KHR_robustness */ - -#ifndef GL_KHR_shader_subgroup -#define GL_KHR_shader_subgroup 1 -#define GL_SUBGROUP_SIZE_KHR 0x9532 -#define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533 -#define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534 -#define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535 -#define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001 -#define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002 -#define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004 -#define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008 -#define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010 -#define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020 -#define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040 -#define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080 -#endif /* GL_KHR_shader_subgroup */ - -#ifndef GL_KHR_texture_compression_astc_hdr -#define GL_KHR_texture_compression_astc_hdr 1 -#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 -#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 -#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 -#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 -#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 -#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 -#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 -#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 -#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 -#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 -#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA -#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB -#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC -#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD -#endif /* GL_KHR_texture_compression_astc_hdr */ - -#ifndef GL_KHR_texture_compression_astc_ldr -#define GL_KHR_texture_compression_astc_ldr 1 -#endif /* GL_KHR_texture_compression_astc_ldr */ - -#ifndef GL_KHR_texture_compression_astc_sliced_3d -#define GL_KHR_texture_compression_astc_sliced_3d 1 -#endif /* GL_KHR_texture_compression_astc_sliced_3d */ - -#ifndef GL_OES_EGL_image -#define GL_OES_EGL_image 1 -typedef void *GLeglImageOES; -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); -GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); -#endif -#endif /* GL_OES_EGL_image */ - -#ifndef GL_OES_EGL_image_external -#define GL_OES_EGL_image_external 1 -#define GL_TEXTURE_EXTERNAL_OES 0x8D65 -#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 -#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 -#define GL_SAMPLER_EXTERNAL_OES 0x8D66 -#endif /* GL_OES_EGL_image_external */ - -#ifndef GL_OES_EGL_image_external_essl3 -#define GL_OES_EGL_image_external_essl3 1 -#endif /* GL_OES_EGL_image_external_essl3 */ - -#ifndef GL_OES_compressed_ETC1_RGB8_sub_texture -#define GL_OES_compressed_ETC1_RGB8_sub_texture 1 -#endif /* GL_OES_compressed_ETC1_RGB8_sub_texture */ - -#ifndef GL_OES_compressed_ETC1_RGB8_texture -#define GL_OES_compressed_ETC1_RGB8_texture 1 -#define GL_ETC1_RGB8_OES 0x8D64 -#endif /* GL_OES_compressed_ETC1_RGB8_texture */ - -#ifndef GL_OES_compressed_paletted_texture -#define GL_OES_compressed_paletted_texture 1 -#define GL_PALETTE4_RGB8_OES 0x8B90 -#define GL_PALETTE4_RGBA8_OES 0x8B91 -#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 -#define GL_PALETTE4_RGBA4_OES 0x8B93 -#define GL_PALETTE4_RGB5_A1_OES 0x8B94 -#define GL_PALETTE8_RGB8_OES 0x8B95 -#define GL_PALETTE8_RGBA8_OES 0x8B96 -#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 -#define GL_PALETTE8_RGBA4_OES 0x8B98 -#define GL_PALETTE8_RGB5_A1_OES 0x8B99 -#endif /* GL_OES_compressed_paletted_texture */ - -#ifndef GL_OES_copy_image -#define GL_OES_copy_image 1 -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAOESPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyImageSubDataOES (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -#endif -#endif /* GL_OES_copy_image */ - -#ifndef GL_OES_depth24 -#define GL_OES_depth24 1 -#define GL_DEPTH_COMPONENT24_OES 0x81A6 -#endif /* GL_OES_depth24 */ - -#ifndef GL_OES_depth32 -#define GL_OES_depth32 1 -#define GL_DEPTH_COMPONENT32_OES 0x81A7 -#endif /* GL_OES_depth32 */ - -#ifndef GL_OES_depth_texture -#define GL_OES_depth_texture 1 -#endif /* GL_OES_depth_texture */ - -#ifndef GL_OES_draw_buffers_indexed -#define GL_OES_draw_buffers_indexed 1 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -typedef void (GL_APIENTRYP PFNGLENABLEIOESPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEIOESPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIOESPROC) (GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIOESPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCIOESPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIOESPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLCOLORMASKIOESPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIOESPROC) (GLenum target, GLuint index); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glEnableiOES (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisableiOES (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glBlendEquationiOES (GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparateiOES (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunciOES (GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glBlendFuncSeparateiOES (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glColorMaskiOES (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL GLboolean GL_APIENTRY glIsEnablediOES (GLenum target, GLuint index); -#endif -#endif /* GL_OES_draw_buffers_indexed */ - -#ifndef GL_OES_draw_elements_base_vertex -#define GL_OES_draw_elements_base_vertex 1 -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexOES (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GL_APICALL void GL_APIENTRY glMultiDrawElementsBaseVertexEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); -#endif -#endif /* GL_OES_draw_elements_base_vertex */ - -#ifndef GL_OES_element_index_uint -#define GL_OES_element_index_uint 1 -#endif /* GL_OES_element_index_uint */ - -#ifndef GL_OES_fbo_render_mipmap -#define GL_OES_fbo_render_mipmap 1 -#endif /* GL_OES_fbo_render_mipmap */ - -#ifndef GL_OES_fragment_precision_high -#define GL_OES_fragment_precision_high 1 -#endif /* GL_OES_fragment_precision_high */ - -#ifndef GL_OES_geometry_point_size -#define GL_OES_geometry_point_size 1 -#endif /* GL_OES_geometry_point_size */ - -#ifndef GL_OES_geometry_shader -#define GL_OES_geometry_shader 1 -#define GL_GEOMETRY_SHADER_OES 0x8DD9 -#define GL_GEOMETRY_SHADER_BIT_OES 0x00000004 -#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916 -#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917 -#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918 -#define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F -#define GL_LAYER_PROVOKING_VERTEX_OES 0x825E -#define GL_LINES_ADJACENCY_OES 0x000A -#define GL_LINE_STRIP_ADJACENCY_OES 0x000B -#define GL_TRIANGLES_ADJACENCY_OES 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_OES 0x000D -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124 -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5 -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7 -#define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E -#define GL_UNDEFINED_VERTEX_OES 0x8260 -#define GL_PRIMITIVES_GENERATED_OES 0x8C87 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312 -#define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7 -#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREOESPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTextureOES (GLenum target, GLenum attachment, GLuint texture, GLint level); -#endif -#endif /* GL_OES_geometry_shader */ - -#ifndef GL_OES_get_program_binary -#define GL_OES_get_program_binary 1 -#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE -#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLint length); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const void *binary, GLint length); -#endif -#endif /* GL_OES_get_program_binary */ - -#ifndef GL_OES_gpu_shader5 -#define GL_OES_gpu_shader5 1 -#endif /* GL_OES_gpu_shader5 */ - -#ifndef GL_OES_mapbuffer -#define GL_OES_mapbuffer 1 -#define GL_WRITE_ONLY_OES 0x88B9 -#define GL_BUFFER_ACCESS_OES 0x88BB -#define GL_BUFFER_MAPPED_OES 0x88BC -#define GL_BUFFER_MAP_POINTER_OES 0x88BD -typedef void *(GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void *GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); -GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, void **params); -#endif -#endif /* GL_OES_mapbuffer */ - -#ifndef GL_OES_packed_depth_stencil -#define GL_OES_packed_depth_stencil 1 -#define GL_DEPTH_STENCIL_OES 0x84F9 -#define GL_UNSIGNED_INT_24_8_OES 0x84FA -#define GL_DEPTH24_STENCIL8_OES 0x88F0 -#endif /* GL_OES_packed_depth_stencil */ - -#ifndef GL_OES_primitive_bounding_box -#define GL_OES_primitive_bounding_box 1 -#define GL_PRIMITIVE_BOUNDING_BOX_OES 0x92BE -typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXOESPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxOES (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#endif -#endif /* GL_OES_primitive_bounding_box */ - -#ifndef GL_OES_required_internalformat -#define GL_OES_required_internalformat 1 -#define GL_ALPHA8_OES 0x803C -#define GL_DEPTH_COMPONENT16_OES 0x81A5 -#define GL_LUMINANCE4_ALPHA4_OES 0x8043 -#define GL_LUMINANCE8_ALPHA8_OES 0x8045 -#define GL_LUMINANCE8_OES 0x8040 -#define GL_RGBA4_OES 0x8056 -#define GL_RGB5_A1_OES 0x8057 -#define GL_RGB565_OES 0x8D62 -#define GL_RGB8_OES 0x8051 -#define GL_RGBA8_OES 0x8058 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB10_A2_EXT 0x8059 -#endif /* GL_OES_required_internalformat */ - -#ifndef GL_OES_rgb8_rgba8 -#define GL_OES_rgb8_rgba8 1 -#endif /* GL_OES_rgb8_rgba8 */ - -#ifndef GL_OES_sample_shading -#define GL_OES_sample_shading 1 -#define GL_SAMPLE_SHADING_OES 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37 -typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGOESPROC) (GLfloat value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMinSampleShadingOES (GLfloat value); -#endif -#endif /* GL_OES_sample_shading */ - -#ifndef GL_OES_sample_variables -#define GL_OES_sample_variables 1 -#endif /* GL_OES_sample_variables */ - -#ifndef GL_OES_shader_image_atomic -#define GL_OES_shader_image_atomic 1 -#endif /* GL_OES_shader_image_atomic */ - -#ifndef GL_OES_shader_io_blocks -#define GL_OES_shader_io_blocks 1 -#endif /* GL_OES_shader_io_blocks */ - -#ifndef GL_OES_shader_multisample_interpolation -#define GL_OES_shader_multisample_interpolation 1 -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D -#endif /* GL_OES_shader_multisample_interpolation */ - -#ifndef GL_OES_standard_derivatives -#define GL_OES_standard_derivatives 1 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B -#endif /* GL_OES_standard_derivatives */ - -#ifndef GL_OES_stencil1 -#define GL_OES_stencil1 1 -#define GL_STENCIL_INDEX1_OES 0x8D46 -#endif /* GL_OES_stencil1 */ - -#ifndef GL_OES_stencil4 -#define GL_OES_stencil4 1 -#define GL_STENCIL_INDEX4_OES 0x8D47 -#endif /* GL_OES_stencil4 */ - -#ifndef GL_OES_surfaceless_context -#define GL_OES_surfaceless_context 1 -#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 -#endif /* GL_OES_surfaceless_context */ - -#ifndef GL_OES_tessellation_point_size -#define GL_OES_tessellation_point_size 1 -#endif /* GL_OES_tessellation_point_size */ - -#ifndef GL_OES_tessellation_shader -#define GL_OES_tessellation_shader 1 -#define GL_PATCHES_OES 0x000E -#define GL_PATCH_VERTICES_OES 0x8E72 -#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75 -#define GL_TESS_GEN_MODE_OES 0x8E76 -#define GL_TESS_GEN_SPACING_OES 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78 -#define GL_TESS_GEN_POINT_MODE_OES 0x8E79 -#define GL_ISOLINES_OES 0x8E7A -#define GL_QUADS_OES 0x0007 -#define GL_FRACTIONAL_ODD_OES 0x8E7B -#define GL_FRACTIONAL_EVEN_OES 0x8E7C -#define GL_MAX_PATCH_VERTICES_OES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4 -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221 -#define GL_IS_PER_PATCH_OES 0x92E7 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308 -#define GL_TESS_CONTROL_SHADER_OES 0x8E88 -#define GL_TESS_EVALUATION_SHADER_OES 0x8E87 -#define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010 -typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIOESPROC) (GLenum pname, GLint value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPatchParameteriOES (GLenum pname, GLint value); -#endif -#endif /* GL_OES_tessellation_shader */ - -#ifndef GL_OES_texture_3D -#define GL_OES_texture_3D 1 -#define GL_TEXTURE_WRAP_R_OES 0x8072 -#define GL_TEXTURE_3D_OES 0x806F -#define GL_TEXTURE_BINDING_3D_OES 0x806A -#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 -#define GL_SAMPLER_3D_OES 0x8B5F -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -#endif -#endif /* GL_OES_texture_3D */ - -#ifndef GL_OES_texture_border_clamp -#define GL_OES_texture_border_clamp 1 -#define GL_TEXTURE_BORDER_COLOR_OES 0x1004 -#define GL_CLAMP_TO_BORDER_OES 0x812D -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexParameterIivOES (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuivOES (GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIivOES (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuivOES (GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glSamplerParameterIivOES (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuivOES (GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIivOES (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivOES (GLuint sampler, GLenum pname, GLuint *params); -#endif -#endif /* GL_OES_texture_border_clamp */ - -#ifndef GL_OES_texture_buffer -#define GL_OES_texture_buffer 1 -#define GL_TEXTURE_BUFFER_OES 0x8C2A -#define GL_TEXTURE_BUFFER_BINDING_OES 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_OES 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES 0x8C2D -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F -#define GL_SAMPLER_BUFFER_OES 0x8DC2 -#define GL_INT_SAMPLER_BUFFER_OES 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_OES 0x8DD8 -#define GL_IMAGE_BUFFER_OES 0x9051 -#define GL_INT_IMAGE_BUFFER_OES 0x905C -#define GL_UNSIGNED_INT_IMAGE_BUFFER_OES 0x9067 -#define GL_TEXTURE_BUFFER_OFFSET_OES 0x919D -#define GL_TEXTURE_BUFFER_SIZE_OES 0x919E -typedef void (GL_APIENTRYP PFNGLTEXBUFFEROESPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEOESPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexBufferOES (GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferRangeOES (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -#endif -#endif /* GL_OES_texture_buffer */ - -#ifndef GL_OES_texture_compression_astc -#define GL_OES_texture_compression_astc 1 -#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 -#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 -#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 -#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 -#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 -#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 -#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 -#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 -#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 -#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 -#endif /* GL_OES_texture_compression_astc */ - -#ifndef GL_OES_texture_cube_map_array -#define GL_OES_texture_cube_map_array 1 -#define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES 0x900A -#define GL_SAMPLER_CUBE_MAP_ARRAY_OES 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900F -#define GL_IMAGE_CUBE_MAP_ARRAY_OES 0x9054 -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x905F -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x906A -#endif /* GL_OES_texture_cube_map_array */ - -#ifndef GL_OES_texture_float -#define GL_OES_texture_float 1 -#endif /* GL_OES_texture_float */ - -#ifndef GL_OES_texture_float_linear -#define GL_OES_texture_float_linear 1 -#endif /* GL_OES_texture_float_linear */ - -#ifndef GL_OES_texture_half_float -#define GL_OES_texture_half_float 1 -#define GL_HALF_FLOAT_OES 0x8D61 -#endif /* GL_OES_texture_half_float */ - -#ifndef GL_OES_texture_half_float_linear -#define GL_OES_texture_half_float_linear 1 -#endif /* GL_OES_texture_half_float_linear */ - -#ifndef GL_OES_texture_npot -#define GL_OES_texture_npot 1 -#endif /* GL_OES_texture_npot */ - -#ifndef GL_OES_texture_stencil8 -#define GL_OES_texture_stencil8 1 -#define GL_STENCIL_INDEX_OES 0x1901 -#define GL_STENCIL_INDEX8_OES 0x8D48 -#endif /* GL_OES_texture_stencil8 */ - -#ifndef GL_OES_texture_storage_multisample_2d_array -#define GL_OES_texture_storage_multisample_2d_array 1 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105 -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexStorage3DMultisampleOES (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#endif -#endif /* GL_OES_texture_storage_multisample_2d_array */ - -#ifndef GL_OES_texture_view -#define GL_OES_texture_view 1 -#define GL_TEXTURE_VIEW_MIN_LEVEL_OES 0x82DB -#define GL_TEXTURE_VIEW_NUM_LEVELS_OES 0x82DC -#define GL_TEXTURE_VIEW_MIN_LAYER_OES 0x82DD -#define GL_TEXTURE_VIEW_NUM_LAYERS_OES 0x82DE -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLTEXTUREVIEWOESPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTextureViewOES (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -#endif -#endif /* GL_OES_texture_view */ - -#ifndef GL_OES_vertex_array_object -#define GL_OES_vertex_array_object 1 -#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); -#endif -#endif /* GL_OES_vertex_array_object */ - -#ifndef GL_OES_vertex_half_float -#define GL_OES_vertex_half_float 1 -#endif /* GL_OES_vertex_half_float */ - -#ifndef GL_OES_vertex_type_10_10_10_2 -#define GL_OES_vertex_type_10_10_10_2 1 -#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 -#define GL_INT_10_10_10_2_OES 0x8DF7 -#endif /* GL_OES_vertex_type_10_10_10_2 */ - -#ifndef GL_OES_viewport_array -#define GL_OES_viewport_array 1 -#define GL_MAX_VIEWPORTS_OES 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS_OES 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE_OES 0x825D -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES 0x825F -typedef void (GL_APIENTRYP PFNGLVIEWPORTARRAYVOESPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFOESPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFVOESPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLSCISSORARRAYVOESPROC) (GLuint first, GLsizei count, const GLint *v); -typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDOESPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDVOESPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEARRAYFVOESPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEINDEXEDFOESPROC) (GLuint index, GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLGETFLOATI_VOESPROC) (GLenum target, GLuint index, GLfloat *data); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glViewportArrayvOES (GLuint first, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glViewportIndexedfOES (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -GL_APICALL void GL_APIENTRY glViewportIndexedfvOES (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glScissorArrayvOES (GLuint first, GLsizei count, const GLint *v); -GL_APICALL void GL_APIENTRY glScissorIndexedOES (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glScissorIndexedvOES (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glDepthRangeArrayfvOES (GLuint first, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glDepthRangeIndexedfOES (GLuint index, GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glGetFloati_vOES (GLenum target, GLuint index, GLfloat *data); -#endif -#endif /* GL_OES_viewport_array */ - -#ifndef GL_AMD_compressed_3DC_texture -#define GL_AMD_compressed_3DC_texture 1 -#define GL_3DC_X_AMD 0x87F9 -#define GL_3DC_XY_AMD 0x87FA -#endif /* GL_AMD_compressed_3DC_texture */ - -#ifndef GL_AMD_compressed_ATC_texture -#define GL_AMD_compressed_ATC_texture 1 -#define GL_ATC_RGB_AMD 0x8C92 -#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 -#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE -#endif /* GL_AMD_compressed_ATC_texture */ - -#ifndef GL_AMD_framebuffer_multisample_advanced -#define GL_AMD_framebuffer_multisample_advanced 1 -#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2 -#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3 -#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4 -#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5 -#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6 -#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAdvancedAMD (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glNamedRenderbufferStorageMultisampleAdvancedAMD (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_AMD_framebuffer_multisample_advanced */ - -#ifndef GL_AMD_performance_monitor -#define GL_AMD_performance_monitor 1 -#define GL_COUNTER_TYPE_AMD 0x8BC0 -#define GL_COUNTER_RANGE_AMD 0x8BC1 -#define GL_UNSIGNED_INT64_AMD 0x8BC2 -#define GL_PERCENTAGE_AMD 0x8BC3 -#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 -#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 -#define GL_PERFMON_RESULT_AMD 0x8BC6 -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); -typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data); -GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); -GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); -GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor); -GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif -#endif /* GL_AMD_performance_monitor */ - -#ifndef GL_AMD_program_binary_Z400 -#define GL_AMD_program_binary_Z400 1 -#define GL_Z400_BINARY_AMD 0x8740 -#endif /* GL_AMD_program_binary_Z400 */ - -#ifndef GL_ANDROID_extension_pack_es31a -#define GL_ANDROID_extension_pack_es31a 1 -#endif /* GL_ANDROID_extension_pack_es31a */ - -#ifndef GL_ANGLE_depth_texture -#define GL_ANGLE_depth_texture 1 -#endif /* GL_ANGLE_depth_texture */ - -#ifndef GL_ANGLE_framebuffer_blit -#define GL_ANGLE_framebuffer_blit 1 -#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif -#endif /* GL_ANGLE_framebuffer_blit */ - -#ifndef GL_ANGLE_framebuffer_multisample -#define GL_ANGLE_framebuffer_multisample 1 -#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 -#define GL_MAX_SAMPLES_ANGLE 0x8D57 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_ANGLE_framebuffer_multisample */ - -#ifndef GL_ANGLE_instanced_arrays -#define GL_ANGLE_instanced_arrays 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor); -#endif -#endif /* GL_ANGLE_instanced_arrays */ - -#ifndef GL_ANGLE_pack_reverse_row_order -#define GL_ANGLE_pack_reverse_row_order 1 -#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 -#endif /* GL_ANGLE_pack_reverse_row_order */ - -#ifndef GL_ANGLE_program_binary -#define GL_ANGLE_program_binary 1 -#define GL_PROGRAM_BINARY_ANGLE 0x93A6 -#endif /* GL_ANGLE_program_binary */ - -#ifndef GL_ANGLE_texture_compression_dxt3 -#define GL_ANGLE_texture_compression_dxt3 1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 -#endif /* GL_ANGLE_texture_compression_dxt3 */ - -#ifndef GL_ANGLE_texture_compression_dxt5 -#define GL_ANGLE_texture_compression_dxt5 1 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 -#endif /* GL_ANGLE_texture_compression_dxt5 */ - -#ifndef GL_ANGLE_texture_usage -#define GL_ANGLE_texture_usage 1 -#define GL_TEXTURE_USAGE_ANGLE 0x93A2 -#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 -#endif /* GL_ANGLE_texture_usage */ - -#ifndef GL_ANGLE_translated_shader_source -#define GL_ANGLE_translated_shader_source 1 -#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 -typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -#endif -#endif /* GL_ANGLE_translated_shader_source */ - -#ifndef GL_APPLE_clip_distance -#define GL_APPLE_clip_distance 1 -#define GL_MAX_CLIP_DISTANCES_APPLE 0x0D32 -#define GL_CLIP_DISTANCE0_APPLE 0x3000 -#define GL_CLIP_DISTANCE1_APPLE 0x3001 -#define GL_CLIP_DISTANCE2_APPLE 0x3002 -#define GL_CLIP_DISTANCE3_APPLE 0x3003 -#define GL_CLIP_DISTANCE4_APPLE 0x3004 -#define GL_CLIP_DISTANCE5_APPLE 0x3005 -#define GL_CLIP_DISTANCE6_APPLE 0x3006 -#define GL_CLIP_DISTANCE7_APPLE 0x3007 -#endif /* GL_APPLE_clip_distance */ - -#ifndef GL_APPLE_color_buffer_packed_float -#define GL_APPLE_color_buffer_packed_float 1 -#endif /* GL_APPLE_color_buffer_packed_float */ - -#ifndef GL_APPLE_copy_texture_levels -#define GL_APPLE_copy_texture_levels 1 -typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); -#endif -#endif /* GL_APPLE_copy_texture_levels */ - -#ifndef GL_APPLE_framebuffer_multisample -#define GL_APPLE_framebuffer_multisample 1 -#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 -#define GL_MAX_SAMPLES_APPLE 0x8D57 -#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void); -#endif -#endif /* GL_APPLE_framebuffer_multisample */ - -#ifndef GL_APPLE_rgb_422 -#define GL_APPLE_rgb_422 1 -#define GL_RGB_422_APPLE 0x8A1F -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#define GL_RGB_RAW_422_APPLE 0x8A51 -#endif /* GL_APPLE_rgb_422 */ - -#ifndef GL_APPLE_sync -#define GL_APPLE_sync 1 -#define GL_SYNC_OBJECT_APPLE 0x8A53 -#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 -#define GL_OBJECT_TYPE_APPLE 0x9112 -#define GL_SYNC_CONDITION_APPLE 0x9113 -#define GL_SYNC_STATUS_APPLE 0x9114 -#define GL_SYNC_FLAGS_APPLE 0x9115 -#define GL_SYNC_FENCE_APPLE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 -#define GL_UNSIGNALED_APPLE 0x9118 -#define GL_SIGNALED_APPLE 0x9119 -#define GL_ALREADY_SIGNALED_APPLE 0x911A -#define GL_TIMEOUT_EXPIRED_APPLE 0x911B -#define GL_CONDITION_SATISFIED_APPLE 0x911C -#define GL_WAIT_FAILED_APPLE 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 -#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -#endif -#endif /* GL_APPLE_sync */ - -#ifndef GL_APPLE_texture_format_BGRA8888 -#define GL_APPLE_texture_format_BGRA8888 1 -#define GL_BGRA_EXT 0x80E1 -#define GL_BGRA8_EXT 0x93A1 -#endif /* GL_APPLE_texture_format_BGRA8888 */ - -#ifndef GL_APPLE_texture_max_level -#define GL_APPLE_texture_max_level 1 -#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D -#endif /* GL_APPLE_texture_max_level */ - -#ifndef GL_APPLE_texture_packed_float -#define GL_APPLE_texture_packed_float 1 -#define GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE 0x8C3B -#define GL_UNSIGNED_INT_5_9_9_9_REV_APPLE 0x8C3E -#define GL_R11F_G11F_B10F_APPLE 0x8C3A -#define GL_RGB9_E5_APPLE 0x8C3D -#endif /* GL_APPLE_texture_packed_float */ - -#ifndef GL_ARM_mali_program_binary -#define GL_ARM_mali_program_binary 1 -#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 -#endif /* GL_ARM_mali_program_binary */ - -#ifndef GL_ARM_mali_shader_binary -#define GL_ARM_mali_shader_binary 1 -#define GL_MALI_SHADER_BINARY_ARM 0x8F60 -#endif /* GL_ARM_mali_shader_binary */ - -#ifndef GL_ARM_rgba8 -#define GL_ARM_rgba8 1 -#endif /* GL_ARM_rgba8 */ - -#ifndef GL_ARM_shader_framebuffer_fetch -#define GL_ARM_shader_framebuffer_fetch 1 -#define GL_FETCH_PER_SAMPLE_ARM 0x8F65 -#define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66 -#endif /* GL_ARM_shader_framebuffer_fetch */ - -#ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil -#define GL_ARM_shader_framebuffer_fetch_depth_stencil 1 -#endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */ - -#ifndef GL_ARM_texture_unnormalized_coordinates -#define GL_ARM_texture_unnormalized_coordinates 1 -#define GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM 0x8F6A -#endif /* GL_ARM_texture_unnormalized_coordinates */ - -#ifndef GL_DMP_program_binary -#define GL_DMP_program_binary 1 -#define GL_SMAPHS30_PROGRAM_BINARY_DMP 0x9251 -#define GL_SMAPHS_PROGRAM_BINARY_DMP 0x9252 -#define GL_DMP_PROGRAM_BINARY_DMP 0x9253 -#endif /* GL_DMP_program_binary */ - -#ifndef GL_DMP_shader_binary -#define GL_DMP_shader_binary 1 -#define GL_SHADER_BINARY_DMP 0x9250 -#endif /* GL_DMP_shader_binary */ - -#ifndef GL_EXT_EGL_image_array -#define GL_EXT_EGL_image_array 1 -#endif /* GL_EXT_EGL_image_array */ - -#ifndef GL_EXT_EGL_image_storage -#define GL_EXT_EGL_image_storage 1 -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list); -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list); -GL_APICALL void GL_APIENTRY glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list); -#endif -#endif /* GL_EXT_EGL_image_storage */ - -#ifndef GL_EXT_EGL_image_storage_compression -#define GL_EXT_EGL_image_storage_compression 1 -#define GL_SURFACE_COMPRESSION_EXT 0x96C0 -#define GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x96C1 -#define GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x96C2 -#endif /* GL_EXT_EGL_image_storage_compression */ - -#ifndef GL_EXT_YUV_target -#define GL_EXT_YUV_target 1 -#define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7 -#endif /* GL_EXT_YUV_target */ - -#ifndef GL_EXT_base_instance -#define GL_EXT_base_instance 1 -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedBaseInstanceEXT (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); -#endif -#endif /* GL_EXT_base_instance */ - -#ifndef GL_EXT_blend_func_extended -#define GL_EXT_blend_func_extended 1 -#define GL_SRC1_COLOR_EXT 0x88F9 -#define GL_SRC1_ALPHA_EXT 0x8589 -#define GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA -#define GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB -#define GL_SRC_ALPHA_SATURATE_EXT 0x0308 -#define GL_LOCATION_INDEX_EXT 0x930F -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC -typedef void (GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATAINDEXEXTPROC) (GLuint program, const GLchar *name); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBindFragDataLocationIndexedEXT (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocationIndexEXT (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL GLint GL_APIENTRY glGetFragDataIndexEXT (GLuint program, const GLchar *name); -#endif -#endif /* GL_EXT_blend_func_extended */ - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#endif /* GL_EXT_blend_minmax */ - -#ifndef GL_EXT_buffer_storage -#define GL_EXT_buffer_storage 1 -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_PERSISTENT_BIT_EXT 0x0040 -#define GL_MAP_COHERENT_BIT_EXT 0x0080 -#define GL_DYNAMIC_STORAGE_BIT_EXT 0x0100 -#define GL_CLIENT_STORAGE_BIT_EXT 0x0200 -#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT 0x00004000 -#define GL_BUFFER_IMMUTABLE_STORAGE_EXT 0x821F -#define GL_BUFFER_STORAGE_FLAGS_EXT 0x8220 -typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBufferStorageEXT (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -#endif -#endif /* GL_EXT_buffer_storage */ - -#ifndef GL_EXT_clear_texture -#define GL_EXT_clear_texture 1 -typedef void (GL_APIENTRYP PFNGLCLEARTEXIMAGEEXTPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); -typedef void (GL_APIENTRYP PFNGLCLEARTEXSUBIMAGEEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glClearTexImageEXT (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); -GL_APICALL void GL_APIENTRY glClearTexSubImageEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); -#endif -#endif /* GL_EXT_clear_texture */ - -#ifndef GL_EXT_clip_control -#define GL_EXT_clip_control 1 -#define GL_LOWER_LEFT_EXT 0x8CA1 -#define GL_UPPER_LEFT_EXT 0x8CA2 -#define GL_NEGATIVE_ONE_TO_ONE_EXT 0x935E -#define GL_ZERO_TO_ONE_EXT 0x935F -#define GL_CLIP_ORIGIN_EXT 0x935C -#define GL_CLIP_DEPTH_MODE_EXT 0x935D -typedef void (GL_APIENTRYP PFNGLCLIPCONTROLEXTPROC) (GLenum origin, GLenum depth); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glClipControlEXT (GLenum origin, GLenum depth); -#endif -#endif /* GL_EXT_clip_control */ - -#ifndef GL_EXT_clip_cull_distance -#define GL_EXT_clip_cull_distance 1 -#define GL_MAX_CLIP_DISTANCES_EXT 0x0D32 -#define GL_MAX_CULL_DISTANCES_EXT 0x82F9 -#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT 0x82FA -#define GL_CLIP_DISTANCE0_EXT 0x3000 -#define GL_CLIP_DISTANCE1_EXT 0x3001 -#define GL_CLIP_DISTANCE2_EXT 0x3002 -#define GL_CLIP_DISTANCE3_EXT 0x3003 -#define GL_CLIP_DISTANCE4_EXT 0x3004 -#define GL_CLIP_DISTANCE5_EXT 0x3005 -#define GL_CLIP_DISTANCE6_EXT 0x3006 -#define GL_CLIP_DISTANCE7_EXT 0x3007 -#endif /* GL_EXT_clip_cull_distance */ - -#ifndef GL_EXT_color_buffer_float -#define GL_EXT_color_buffer_float 1 -#endif /* GL_EXT_color_buffer_float */ - -#ifndef GL_EXT_color_buffer_half_float -#define GL_EXT_color_buffer_half_float 1 -#define GL_RGBA16F_EXT 0x881A -#define GL_RGB16F_EXT 0x881B -#define GL_RG16F_EXT 0x822F -#define GL_R16F_EXT 0x822D -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 -#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 -#endif /* GL_EXT_color_buffer_half_float */ - -#ifndef GL_EXT_conservative_depth -#define GL_EXT_conservative_depth 1 -#endif /* GL_EXT_conservative_depth */ - -#ifndef GL_EXT_copy_image -#define GL_EXT_copy_image 1 -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAEXTPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyImageSubDataEXT (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -#endif -#endif /* GL_EXT_copy_image */ - -#ifndef GL_EXT_debug_label -#define GL_EXT_debug_label 1 -#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F -#define GL_PROGRAM_OBJECT_EXT 0x8B40 -#define GL_SHADER_OBJECT_EXT 0x8B48 -#define GL_BUFFER_OBJECT_EXT 0x9151 -#define GL_QUERY_OBJECT_EXT 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 -#define GL_TRANSFORM_FEEDBACK 0x8E22 -typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -#endif -#endif /* GL_EXT_debug_label */ - -#ifndef GL_EXT_debug_marker -#define GL_EXT_debug_marker 1 -typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); -GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); -GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void); -#endif -#endif /* GL_EXT_debug_marker */ - -#ifndef GL_EXT_depth_clamp -#define GL_EXT_depth_clamp 1 -#define GL_DEPTH_CLAMP_EXT 0x864F -#endif /* GL_EXT_depth_clamp */ - -#ifndef GL_EXT_discard_framebuffer -#define GL_EXT_discard_framebuffer 1 -#define GL_COLOR_EXT 0x1800 -#define GL_DEPTH_EXT 0x1801 -#define GL_STENCIL_EXT 0x1802 -typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); -#endif -#endif /* GL_EXT_discard_framebuffer */ - -#ifndef GL_EXT_disjoint_timer_query -#define GL_EXT_disjoint_timer_query 1 -#define GL_QUERY_COUNTER_BITS_EXT 0x8864 -#define GL_CURRENT_QUERY_EXT 0x8865 -#define GL_QUERY_RESULT_EXT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 -#define GL_TIME_ELAPSED_EXT 0x88BF -#define GL_TIMESTAMP_EXT 0x8E28 -#define GL_GPU_DISJOINT_EXT 0x8FBB -typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VEXTPROC) (GLenum pname, GLint64 *data); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target); -GL_APICALL void GL_APIENTRY glQueryCounterEXT (GLuint id, GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectivEXT (GLuint id, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params); -GL_APICALL void GL_APIENTRY glGetInteger64vEXT (GLenum pname, GLint64 *data); -#endif -#endif /* GL_EXT_disjoint_timer_query */ - -#ifndef GL_EXT_draw_buffers -#define GL_EXT_draw_buffers 1 -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_MAX_DRAW_BUFFERS_EXT 0x8824 -#define GL_DRAW_BUFFER0_EXT 0x8825 -#define GL_DRAW_BUFFER1_EXT 0x8826 -#define GL_DRAW_BUFFER2_EXT 0x8827 -#define GL_DRAW_BUFFER3_EXT 0x8828 -#define GL_DRAW_BUFFER4_EXT 0x8829 -#define GL_DRAW_BUFFER5_EXT 0x882A -#define GL_DRAW_BUFFER6_EXT 0x882B -#define GL_DRAW_BUFFER7_EXT 0x882C -#define GL_DRAW_BUFFER8_EXT 0x882D -#define GL_DRAW_BUFFER9_EXT 0x882E -#define GL_DRAW_BUFFER10_EXT 0x882F -#define GL_DRAW_BUFFER11_EXT 0x8830 -#define GL_DRAW_BUFFER12_EXT 0x8831 -#define GL_DRAW_BUFFER13_EXT 0x8832 -#define GL_DRAW_BUFFER14_EXT 0x8833 -#define GL_DRAW_BUFFER15_EXT 0x8834 -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum *bufs); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawBuffersEXT (GLsizei n, const GLenum *bufs); -#endif -#endif /* GL_EXT_draw_buffers */ - -#ifndef GL_EXT_draw_buffers_indexed -#define GL_EXT_draw_buffers_indexed 1 -typedef void (GL_APIENTRYP PFNGLENABLEIEXTPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEIEXTPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIEXTPROC) (GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIEXTPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCIEXTPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIEXTPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLCOLORMASKIEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIEXTPROC) (GLenum target, GLuint index); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glEnableiEXT (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisableiEXT (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glBlendEquationiEXT (GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparateiEXT (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunciEXT (GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glBlendFuncSeparateiEXT (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glColorMaskiEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL GLboolean GL_APIENTRY glIsEnablediEXT (GLenum target, GLuint index); -#endif -#endif /* GL_EXT_draw_buffers_indexed */ - -#ifndef GL_EXT_draw_elements_base_vertex -#define GL_EXT_draw_elements_base_vertex 1 -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -#endif -#endif /* GL_EXT_draw_elements_base_vertex */ - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#endif -#endif /* GL_EXT_draw_instanced */ - -#ifndef GL_EXT_draw_transform_feedback -#define GL_EXT_draw_transform_feedback 1 -typedef void (GL_APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKEXTPROC) (GLenum mode, GLuint id); -typedef void (GL_APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC) (GLenum mode, GLuint id, GLsizei instancecount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawTransformFeedbackEXT (GLenum mode, GLuint id); -GL_APICALL void GL_APIENTRY glDrawTransformFeedbackInstancedEXT (GLenum mode, GLuint id, GLsizei instancecount); -#endif -#endif /* GL_EXT_draw_transform_feedback */ - -#ifndef GL_EXT_external_buffer -#define GL_EXT_external_buffer 1 -typedef void *GLeglClientBufferEXT; -typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBufferStorageExternalEXT (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -GL_APICALL void GL_APIENTRY glNamedBufferStorageExternalEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -#endif -#endif /* GL_EXT_external_buffer */ - -#ifndef GL_EXT_float_blend -#define GL_EXT_float_blend 1 -#endif /* GL_EXT_float_blend */ - -#ifndef GL_EXT_fragment_shading_rate -#define GL_EXT_fragment_shading_rate 1 -#define GL_SHADING_RATE_1X1_PIXELS_EXT 0x96A6 -#define GL_SHADING_RATE_1X2_PIXELS_EXT 0x96A7 -#define GL_SHADING_RATE_2X1_PIXELS_EXT 0x96A8 -#define GL_SHADING_RATE_2X2_PIXELS_EXT 0x96A9 -#define GL_SHADING_RATE_1X4_PIXELS_EXT 0x96AA -#define GL_SHADING_RATE_4X1_PIXELS_EXT 0x96AB -#define GL_SHADING_RATE_4X2_PIXELS_EXT 0x96AC -#define GL_SHADING_RATE_2X4_PIXELS_EXT 0x96AD -#define GL_SHADING_RATE_4X4_PIXELS_EXT 0x96AE -#define GL_SHADING_RATE_EXT 0x96D0 -#define GL_SHADING_RATE_ATTACHMENT_EXT 0x96D1 -#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_EXT 0x96D2 -#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_EXT 0x96D3 -#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_EXT 0x96D4 -#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_EXT 0x96D5 -#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_EXT 0x96D6 -#define GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT 0x96D7 -#define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT 0x96D8 -#define GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT 0x96D9 -#define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT 0x96DA -#define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_ASPECT_RATIO_EXT 0x96DB -#define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_LAYERS_EXT 0x96DC -#define GL_FRAGMENT_SHADING_RATE_WITH_SHADER_DEPTH_STENCIL_WRITES_SUPPORTED_EXT 0x96DD -#define GL_FRAGMENT_SHADING_RATE_WITH_SAMPLE_MASK_SUPPORTED_EXT 0x96DE -#define GL_FRAGMENT_SHADING_RATE_ATTACHMENT_WITH_DEFAULT_FRAMEBUFFER_SUPPORTED_EXT 0x96DF -#define GL_FRAGMENT_SHADING_RATE_NON_TRIVIAL_COMBINERS_SUPPORTED_EXT 0x8F6F -typedef void (GL_APIENTRYP PFNGLGETFRAGMENTSHADINGRATESEXTPROC) (GLsizei samples, GLsizei maxCount, GLsizei *count, GLenum *shadingRates); -typedef void (GL_APIENTRYP PFNGLSHADINGRATEEXTPROC) (GLenum rate); -typedef void (GL_APIENTRYP PFNGLSHADINGRATECOMBINEROPSEXTPROC) (GLenum combinerOp0, GLenum combinerOp1); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERSHADINGRATEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint baseLayer, GLsizei numLayers, GLsizei texelWidth, GLsizei texelHeight); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetFragmentShadingRatesEXT (GLsizei samples, GLsizei maxCount, GLsizei *count, GLenum *shadingRates); -GL_APICALL void GL_APIENTRY glShadingRateEXT (GLenum rate); -GL_APICALL void GL_APIENTRY glShadingRateCombinerOpsEXT (GLenum combinerOp0, GLenum combinerOp1); -GL_APICALL void GL_APIENTRY glFramebufferShadingRateEXT (GLenum target, GLenum attachment, GLuint texture, GLint baseLayer, GLsizei numLayers, GLsizei texelWidth, GLsizei texelHeight); -#endif -#endif /* GL_EXT_fragment_shading_rate */ - -#ifndef GL_EXT_geometry_point_size -#define GL_EXT_geometry_point_size 1 -#endif /* GL_EXT_geometry_point_size */ - -#ifndef GL_EXT_geometry_shader -#define GL_EXT_geometry_shader 1 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -#define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004 -#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916 -#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917 -#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918 -#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F -#define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E -#define GL_LINES_ADJACENCY_EXT 0x000A -#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B -#define GL_TRIANGLES_ADJACENCY_EXT 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124 -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5 -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7 -#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E -#define GL_UNDEFINED_VERTEX_EXT 0x8260 -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312 -#define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level); -#endif -#endif /* GL_EXT_geometry_shader */ - -#ifndef GL_EXT_gpu_shader5 -#define GL_EXT_gpu_shader5 1 -#endif /* GL_EXT_gpu_shader5 */ - -#ifndef GL_EXT_instanced_arrays -#define GL_EXT_instanced_arrays 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glVertexAttribDivisorEXT (GLuint index, GLuint divisor); -#endif -#endif /* GL_EXT_instanced_arrays */ - -#ifndef GL_EXT_map_buffer_range -#define GL_EXT_map_buffer_range 1 -#define GL_MAP_READ_BIT_EXT 0x0001 -#define GL_MAP_WRITE_BIT_EXT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void *GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length); -#endif -#endif /* GL_EXT_map_buffer_range */ - -#ifndef GL_EXT_memory_object -#define GL_EXT_memory_object 1 -#define GL_TEXTURE_TILING_EXT 0x9580 -#define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581 -#define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B -#define GL_NUM_TILING_TYPES_EXT 0x9582 -#define GL_TILING_TYPES_EXT 0x9583 -#define GL_OPTIMAL_TILING_EXT 0x9584 -#define GL_LINEAR_TILING_EXT 0x9585 -#define GL_NUM_DEVICE_UUIDS_EXT 0x9596 -#define GL_DEVICE_UUID_EXT 0x9597 -#define GL_DRIVER_UUID_EXT 0x9598 -#define GL_UUID_SIZE_EXT 16 -typedef void (GL_APIENTRYP PFNGLGETUNSIGNEDBYTEVEXTPROC) (GLenum pname, GLubyte *data); -typedef void (GL_APIENTRYP PFNGLGETUNSIGNEDBYTEI_VEXTPROC) (GLenum target, GLuint index, GLubyte *data); -typedef void (GL_APIENTRYP PFNGLDELETEMEMORYOBJECTSEXTPROC) (GLsizei n, const GLuint *memoryObjects); -typedef GLboolean (GL_APIENTRYP PFNGLISMEMORYOBJECTEXTPROC) (GLuint memoryObject); -typedef void (GL_APIENTRYP PFNGLCREATEMEMORYOBJECTSEXTPROC) (GLsizei n, GLuint *memoryObjects); -typedef void (GL_APIENTRYP PFNGLMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEMEMEXTPROC) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM2DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM3DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetUnsignedBytevEXT (GLenum pname, GLubyte *data); -GL_APICALL void GL_APIENTRY glGetUnsignedBytei_vEXT (GLenum target, GLuint index, GLubyte *data); -GL_APICALL void GL_APIENTRY glDeleteMemoryObjectsEXT (GLsizei n, const GLuint *memoryObjects); -GL_APICALL GLboolean GL_APIENTRY glIsMemoryObjectEXT (GLuint memoryObject); -GL_APICALL void GL_APIENTRY glCreateMemoryObjectsEXT (GLsizei n, GLuint *memoryObjects); -GL_APICALL void GL_APIENTRY glMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glGetMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glTexStorageMem2DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTexStorageMem2DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTexStorageMem3DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTexStorageMem3DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glBufferStorageMemEXT (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTextureStorageMem2DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTextureStorageMem2DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTextureStorageMem3DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTextureStorageMem3DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glNamedBufferStorageMemEXT (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); -#endif -#endif /* GL_EXT_memory_object */ - -#ifndef GL_EXT_memory_object_fd -#define GL_EXT_memory_object_fd 1 -#define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586 -typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYFDEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glImportMemoryFdEXT (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); -#endif -#endif /* GL_EXT_memory_object_fd */ - -#ifndef GL_EXT_memory_object_win32 -#define GL_EXT_memory_object_win32 1 -#define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587 -#define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588 -#define GL_DEVICE_LUID_EXT 0x9599 -#define GL_DEVICE_NODE_MASK_EXT 0x959A -#define GL_LUID_SIZE_EXT 8 -#define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589 -#define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A -#define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B -#define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C -typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, void *handle); -typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYWIN32NAMEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, const void *name); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glImportMemoryWin32HandleEXT (GLuint memory, GLuint64 size, GLenum handleType, void *handle); -GL_APICALL void GL_APIENTRY glImportMemoryWin32NameEXT (GLuint memory, GLuint64 size, GLenum handleType, const void *name); -#endif -#endif /* GL_EXT_memory_object_win32 */ - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); -#endif -#endif /* GL_EXT_multi_draw_arrays */ - -#ifndef GL_EXT_multi_draw_indirect -#define GL_EXT_multi_draw_indirect 1 -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMultiDrawArraysIndirectEXT (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); -GL_APICALL void GL_APIENTRY glMultiDrawElementsIndirectEXT (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); -#endif -#endif /* GL_EXT_multi_draw_indirect */ - -#ifndef GL_EXT_multisampled_compatibility -#define GL_EXT_multisampled_compatibility 1 -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#endif /* GL_EXT_multisampled_compatibility */ - -#ifndef GL_EXT_multisampled_render_to_texture -#define GL_EXT_multisampled_render_to_texture 1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#endif -#endif /* GL_EXT_multisampled_render_to_texture */ - -#ifndef GL_EXT_multisampled_render_to_texture2 -#define GL_EXT_multisampled_render_to_texture2 1 -#endif /* GL_EXT_multisampled_render_to_texture2 */ - -#ifndef GL_EXT_multiview_draw_buffers -#define GL_EXT_multiview_draw_buffers 1 -#define GL_COLOR_ATTACHMENT_EXT 0x90F0 -#define GL_MULTIVIEW_EXT 0x90F1 -#define GL_DRAW_BUFFER_EXT 0x0C01 -#define GL_READ_BUFFER_EXT 0x0C02 -#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 -typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index); -GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices); -GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data); -#endif -#endif /* GL_EXT_multiview_draw_buffers */ - -#ifndef GL_EXT_multiview_tessellation_geometry_shader -#define GL_EXT_multiview_tessellation_geometry_shader 1 -#endif /* GL_EXT_multiview_tessellation_geometry_shader */ - -#ifndef GL_EXT_multiview_texture_multisample -#define GL_EXT_multiview_texture_multisample 1 -#endif /* GL_EXT_multiview_texture_multisample */ - -#ifndef GL_EXT_multiview_timer_query -#define GL_EXT_multiview_timer_query 1 -#endif /* GL_EXT_multiview_timer_query */ - -#ifndef GL_EXT_occlusion_query_boolean -#define GL_EXT_occlusion_query_boolean 1 -#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A -#endif /* GL_EXT_occlusion_query_boolean */ - -#ifndef GL_EXT_polygon_offset_clamp -#define GL_EXT_polygon_offset_clamp 1 -#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPolygonOffsetClampEXT (GLfloat factor, GLfloat units, GLfloat clamp); -#endif -#endif /* GL_EXT_polygon_offset_clamp */ - -#ifndef GL_EXT_post_depth_coverage -#define GL_EXT_post_depth_coverage 1 -#endif /* GL_EXT_post_depth_coverage */ - -#ifndef GL_EXT_primitive_bounding_box -#define GL_EXT_primitive_bounding_box 1 -#define GL_PRIMITIVE_BOUNDING_BOX_EXT 0x92BE -typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXEXTPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxEXT (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#endif -#endif /* GL_EXT_primitive_bounding_box */ - -#ifndef GL_EXT_protected_textures -#define GL_EXT_protected_textures 1 -#define GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT 0x00000010 -#define GL_TEXTURE_PROTECTED_EXT 0x8BFA -#endif /* GL_EXT_protected_textures */ - -#ifndef GL_EXT_pvrtc_sRGB -#define GL_EXT_pvrtc_sRGB 1 -#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54 -#define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55 -#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56 -#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57 -#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG 0x93F0 -#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG 0x93F1 -#endif /* GL_EXT_pvrtc_sRGB */ - -#ifndef GL_EXT_raster_multisample -#define GL_EXT_raster_multisample 1 -#define GL_RASTER_MULTISAMPLE_EXT 0x9327 -#define GL_RASTER_SAMPLES_EXT 0x9328 -#define GL_MAX_RASTER_SAMPLES_EXT 0x9329 -#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A -#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B -#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C -typedef void (GL_APIENTRYP PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRasterSamplesEXT (GLuint samples, GLboolean fixedsamplelocations); -#endif -#endif /* GL_EXT_raster_multisample */ - -#ifndef GL_EXT_read_format_bgra -#define GL_EXT_read_format_bgra 1 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 -#endif /* GL_EXT_read_format_bgra */ - -#ifndef GL_EXT_render_snorm -#define GL_EXT_render_snorm 1 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM_EXT 0x8F98 -#define GL_RG16_SNORM_EXT 0x8F99 -#define GL_RGBA16_SNORM_EXT 0x8F9B -#endif /* GL_EXT_render_snorm */ - -#ifndef GL_EXT_robustness -#define GL_EXT_robustness 1 -#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 -#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 -#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 -#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 -#define GL_NO_RESET_NOTIFICATION_EXT 0x8261 -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void); -GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_EXT_robustness */ - -#ifndef GL_EXT_sRGB -#define GL_EXT_sRGB 1 -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 -#endif /* GL_EXT_sRGB */ - -#ifndef GL_EXT_sRGB_write_control -#define GL_EXT_sRGB_write_control 1 -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#endif /* GL_EXT_sRGB_write_control */ - -#ifndef GL_EXT_semaphore -#define GL_EXT_semaphore 1 -#define GL_LAYOUT_GENERAL_EXT 0x958D -#define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E -#define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F -#define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590 -#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591 -#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592 -#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593 -#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530 -#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531 -typedef void (GL_APIENTRYP PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint *semaphores); -typedef void (GL_APIENTRYP PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint *semaphores); -typedef GLboolean (GL_APIENTRYP PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore); -typedef void (GL_APIENTRYP PFNGLSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, const GLuint64 *params); -typedef void (GL_APIENTRYP PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, GLuint64 *params); -typedef void (GL_APIENTRYP PFNGLWAITSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); -typedef void (GL_APIENTRYP PFNGLSIGNALSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGenSemaphoresEXT (GLsizei n, GLuint *semaphores); -GL_APICALL void GL_APIENTRY glDeleteSemaphoresEXT (GLsizei n, const GLuint *semaphores); -GL_APICALL GLboolean GL_APIENTRY glIsSemaphoreEXT (GLuint semaphore); -GL_APICALL void GL_APIENTRY glSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, const GLuint64 *params); -GL_APICALL void GL_APIENTRY glGetSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, GLuint64 *params); -GL_APICALL void GL_APIENTRY glWaitSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); -GL_APICALL void GL_APIENTRY glSignalSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); -#endif -#endif /* GL_EXT_semaphore */ - -#ifndef GL_EXT_semaphore_fd -#define GL_EXT_semaphore_fd 1 -typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREFDEXTPROC) (GLuint semaphore, GLenum handleType, GLint fd); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glImportSemaphoreFdEXT (GLuint semaphore, GLenum handleType, GLint fd); -#endif -#endif /* GL_EXT_semaphore_fd */ - -#ifndef GL_EXT_semaphore_win32 -#define GL_EXT_semaphore_win32 1 -#define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594 -#define GL_D3D12_FENCE_VALUE_EXT 0x9595 -typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC) (GLuint semaphore, GLenum handleType, void *handle); -typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC) (GLuint semaphore, GLenum handleType, const void *name); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glImportSemaphoreWin32HandleEXT (GLuint semaphore, GLenum handleType, void *handle); -GL_APICALL void GL_APIENTRY glImportSemaphoreWin32NameEXT (GLuint semaphore, GLenum handleType, const void *name); -#endif -#endif /* GL_EXT_semaphore_win32 */ - -#ifndef GL_EXT_separate_depth_stencil -#define GL_EXT_separate_depth_stencil 1 -#endif /* GL_EXT_separate_depth_stencil */ - -#ifndef GL_EXT_separate_shader_objects -#define GL_EXT_separate_shader_objects 1 -#define GL_ACTIVE_PROGRAM_EXT 0x8259 -#define GL_VERTEX_SHADER_BIT_EXT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002 -#define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE_EXT 0x8258 -#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program); -GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline); -GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline); -GL_APICALL void GL_APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif -#endif /* GL_EXT_separate_shader_objects */ - -#ifndef GL_EXT_shader_framebuffer_fetch -#define GL_EXT_shader_framebuffer_fetch 1 -#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 -#endif /* GL_EXT_shader_framebuffer_fetch */ - -#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent -#define GL_EXT_shader_framebuffer_fetch_non_coherent 1 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferFetchBarrierEXT (void); -#endif -#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */ - -#ifndef GL_EXT_shader_group_vote -#define GL_EXT_shader_group_vote 1 -#endif /* GL_EXT_shader_group_vote */ - -#ifndef GL_EXT_shader_implicit_conversions -#define GL_EXT_shader_implicit_conversions 1 -#endif /* GL_EXT_shader_implicit_conversions */ - -#ifndef GL_EXT_shader_integer_mix -#define GL_EXT_shader_integer_mix 1 -#endif /* GL_EXT_shader_integer_mix */ - -#ifndef GL_EXT_shader_io_blocks -#define GL_EXT_shader_io_blocks 1 -#endif /* GL_EXT_shader_io_blocks */ - -#ifndef GL_EXT_shader_non_constant_global_initializers -#define GL_EXT_shader_non_constant_global_initializers 1 -#endif /* GL_EXT_shader_non_constant_global_initializers */ - -#ifndef GL_EXT_shader_pixel_local_storage -#define GL_EXT_shader_pixel_local_storage 1 -#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63 -#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67 -#define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64 -#endif /* GL_EXT_shader_pixel_local_storage */ - -#ifndef GL_EXT_shader_pixel_local_storage2 -#define GL_EXT_shader_pixel_local_storage2 1 -#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT 0x9650 -#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT 0x9651 -#define GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT 0x9652 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target, GLsizei size); -typedef GLsizei (GL_APIENTRYP PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target); -typedef void (GL_APIENTRYP PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC) (GLsizei offset, GLsizei n, const GLuint *values); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferPixelLocalStorageSizeEXT (GLuint target, GLsizei size); -GL_APICALL GLsizei GL_APIENTRY glGetFramebufferPixelLocalStorageSizeEXT (GLuint target); -GL_APICALL void GL_APIENTRY glClearPixelLocalStorageuiEXT (GLsizei offset, GLsizei n, const GLuint *values); -#endif -#endif /* GL_EXT_shader_pixel_local_storage2 */ - -#ifndef GL_EXT_shader_samples_identical -#define GL_EXT_shader_samples_identical 1 -#endif /* GL_EXT_shader_samples_identical */ - -#ifndef GL_EXT_shader_texture_lod -#define GL_EXT_shader_texture_lod 1 -#endif /* GL_EXT_shader_texture_lod */ - -#ifndef GL_EXT_shadow_samplers -#define GL_EXT_shadow_samplers 1 -#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C -#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D -#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E -#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 -#endif /* GL_EXT_shadow_samplers */ - -#ifndef GL_EXT_sparse_texture -#define GL_EXT_sparse_texture 1 -#define GL_TEXTURE_SPARSE_EXT 0x91A6 -#define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT 0x91A7 -#define GL_NUM_SPARSE_LEVELS_EXT 0x91AA -#define GL_NUM_VIRTUAL_PAGE_SIZES_EXT 0x91A8 -#define GL_VIRTUAL_PAGE_SIZE_X_EXT 0x9195 -#define GL_VIRTUAL_PAGE_SIZE_Y_EXT 0x9196 -#define GL_VIRTUAL_PAGE_SIZE_Z_EXT 0x9197 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_3D 0x806F -#define GL_MAX_SPARSE_TEXTURE_SIZE_EXT 0x9198 -#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT 0x9199 -#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT 0x919A -#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT 0x91A9 -typedef void (GL_APIENTRYP PFNGLTEXPAGECOMMITMENTEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexPageCommitmentEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -#endif -#endif /* GL_EXT_sparse_texture */ - -#ifndef GL_EXT_sparse_texture2 -#define GL_EXT_sparse_texture2 1 -#endif /* GL_EXT_sparse_texture2 */ - -#ifndef GL_EXT_tessellation_point_size -#define GL_EXT_tessellation_point_size 1 -#endif /* GL_EXT_tessellation_point_size */ - -#ifndef GL_EXT_tessellation_shader -#define GL_EXT_tessellation_shader 1 -#define GL_PATCHES_EXT 0x000E -#define GL_PATCH_VERTICES_EXT 0x8E72 -#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75 -#define GL_TESS_GEN_MODE_EXT 0x8E76 -#define GL_TESS_GEN_SPACING_EXT 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78 -#define GL_TESS_GEN_POINT_MODE_EXT 0x8E79 -#define GL_ISOLINES_EXT 0x8E7A -#define GL_QUADS_EXT 0x0007 -#define GL_FRACTIONAL_ODD_EXT 0x8E7B -#define GL_FRACTIONAL_EVEN_EXT 0x8E7C -#define GL_MAX_PATCH_VERTICES_EXT 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4 -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 -#define GL_IS_PER_PATCH_EXT 0x92E7 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308 -#define GL_TESS_CONTROL_SHADER_EXT 0x8E88 -#define GL_TESS_EVALUATION_SHADER_EXT 0x8E87 -#define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010 -typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIEXTPROC) (GLenum pname, GLint value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPatchParameteriEXT (GLenum pname, GLint value); -#endif -#endif /* GL_EXT_tessellation_shader */ - -#ifndef GL_EXT_texture_border_clamp -#define GL_EXT_texture_border_clamp 1 -#define GL_TEXTURE_BORDER_COLOR_EXT 0x1004 -#define GL_CLAMP_TO_BORDER_EXT 0x812D -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glSamplerParameterIivEXT (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuivEXT (GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIivEXT (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivEXT (GLuint sampler, GLenum pname, GLuint *params); -#endif -#endif /* GL_EXT_texture_border_clamp */ - -#ifndef GL_EXT_texture_buffer -#define GL_EXT_texture_buffer 1 -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_TEXTURE_BUFFER_BINDING_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT 0x919F -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 -#define GL_IMAGE_BUFFER_EXT 0x9051 -#define GL_INT_IMAGE_BUFFER_EXT 0x905C -#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 -#define GL_TEXTURE_BUFFER_OFFSET_EXT 0x919D -#define GL_TEXTURE_BUFFER_SIZE_EXT 0x919E -typedef void (GL_APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEEXTPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferRangeEXT (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -#endif -#endif /* GL_EXT_texture_buffer */ - -#ifndef GL_EXT_texture_compression_astc_decode_mode -#define GL_EXT_texture_compression_astc_decode_mode 1 -#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69 -#endif /* GL_EXT_texture_compression_astc_decode_mode */ - -#ifndef GL_EXT_texture_compression_bptc -#define GL_EXT_texture_compression_bptc 1 -#define GL_COMPRESSED_RGBA_BPTC_UNORM_EXT 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT 0x8E8F -#endif /* GL_EXT_texture_compression_bptc */ - -#ifndef GL_EXT_texture_compression_dxt1 -#define GL_EXT_texture_compression_dxt1 1 -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#endif /* GL_EXT_texture_compression_dxt1 */ - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_EXT_texture_compression_rgtc 1 -#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC -#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD -#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE -#endif /* GL_EXT_texture_compression_rgtc */ - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_EXT_texture_compression_s3tc 1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif /* GL_EXT_texture_compression_s3tc */ - -#ifndef GL_EXT_texture_compression_s3tc_srgb -#define GL_EXT_texture_compression_s3tc_srgb 1 -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#endif /* GL_EXT_texture_compression_s3tc_srgb */ - -#ifndef GL_EXT_texture_cube_map_array -#define GL_EXT_texture_cube_map_array 1 -#define GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT 0x900A -#define GL_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900F -#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A -#endif /* GL_EXT_texture_cube_map_array */ - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif /* GL_EXT_texture_filter_anisotropic */ - -#ifndef GL_EXT_texture_filter_minmax -#define GL_EXT_texture_filter_minmax 1 -#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366 -#define GL_WEIGHTED_AVERAGE_EXT 0x9367 -#endif /* GL_EXT_texture_filter_minmax */ - -#ifndef GL_EXT_texture_format_BGRA8888 -#define GL_EXT_texture_format_BGRA8888 1 -#endif /* GL_EXT_texture_format_BGRA8888 */ - -#ifndef GL_EXT_texture_format_sRGB_override -#define GL_EXT_texture_format_sRGB_override 1 -#define GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT 0x8FBF -#endif /* GL_EXT_texture_format_sRGB_override */ - -#ifndef GL_EXT_texture_mirror_clamp_to_edge -#define GL_EXT_texture_mirror_clamp_to_edge 1 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#endif /* GL_EXT_texture_mirror_clamp_to_edge */ - -#ifndef GL_EXT_texture_norm16 -#define GL_EXT_texture_norm16 1 -#define GL_R16_EXT 0x822A -#define GL_RG16_EXT 0x822C -#define GL_RGBA16_EXT 0x805B -#define GL_RGB16_EXT 0x8054 -#define GL_RGB16_SNORM_EXT 0x8F9A -#endif /* GL_EXT_texture_norm16 */ - -#ifndef GL_EXT_texture_query_lod -#define GL_EXT_texture_query_lod 1 -#endif /* GL_EXT_texture_query_lod */ - -#ifndef GL_EXT_texture_rg -#define GL_EXT_texture_rg 1 -#define GL_RED_EXT 0x1903 -#define GL_RG_EXT 0x8227 -#define GL_R8_EXT 0x8229 -#define GL_RG8_EXT 0x822B -#endif /* GL_EXT_texture_rg */ - -#ifndef GL_EXT_texture_sRGB_R8 -#define GL_EXT_texture_sRGB_R8 1 -#define GL_SR8_EXT 0x8FBD -#endif /* GL_EXT_texture_sRGB_R8 */ - -#ifndef GL_EXT_texture_sRGB_RG8 -#define GL_EXT_texture_sRGB_RG8 1 -#define GL_SRG8_EXT 0x8FBE -#endif /* GL_EXT_texture_sRGB_RG8 */ - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_EXT_texture_sRGB_decode 1 -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A -#endif /* GL_EXT_texture_sRGB_decode */ - -#ifndef GL_EXT_texture_shadow_lod -#define GL_EXT_texture_shadow_lod 1 -#endif /* GL_EXT_texture_shadow_lod */ - -#ifndef GL_EXT_texture_storage -#define GL_EXT_texture_storage 1 -#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F -#define GL_ALPHA8_EXT 0x803C -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_RGBA32F_EXT 0x8814 -#define GL_RGB32F_EXT 0x8815 -#define GL_ALPHA32F_EXT 0x8816 -#define GL_LUMINANCE32F_EXT 0x8818 -#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 -#define GL_ALPHA16F_EXT 0x881C -#define GL_LUMINANCE16F_EXT 0x881E -#define GL_LUMINANCE_ALPHA16F_EXT 0x881F -#define GL_R32F_EXT 0x822E -#define GL_RG32F_EXT 0x8230 -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif -#endif /* GL_EXT_texture_storage */ - -#ifndef GL_EXT_texture_storage_compression -#define GL_EXT_texture_storage_compression 1 -#define GL_NUM_SURFACE_COMPRESSION_FIXED_RATES_EXT 0x8F6E -#define GL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x96C4 -#define GL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x96C5 -#define GL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x96C6 -#define GL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x96C7 -#define GL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x96C8 -#define GL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x96C9 -#define GL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x96CA -#define GL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x96CB -#define GL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x96CC -#define GL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x96CD -#define GL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x96CE -#define GL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x96CF -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEATTRIBS2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, const GLint* attrib_list); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEATTRIBS3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, const GLint* attrib_list); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexStorageAttribs2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, const GLint* attrib_list); -GL_APICALL void GL_APIENTRY glTexStorageAttribs3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, const GLint* attrib_list); -#endif -#endif /* GL_EXT_texture_storage_compression */ - -#ifndef GL_EXT_texture_type_2_10_10_10_REV -#define GL_EXT_texture_type_2_10_10_10_REV 1 -#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 -#endif /* GL_EXT_texture_type_2_10_10_10_REV */ - -#ifndef GL_EXT_texture_view -#define GL_EXT_texture_view 1 -#define GL_TEXTURE_VIEW_MIN_LEVEL_EXT 0x82DB -#define GL_TEXTURE_VIEW_NUM_LEVELS_EXT 0x82DC -#define GL_TEXTURE_VIEW_MIN_LAYER_EXT 0x82DD -#define GL_TEXTURE_VIEW_NUM_LAYERS_EXT 0x82DE -typedef void (GL_APIENTRYP PFNGLTEXTUREVIEWEXTPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTextureViewEXT (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -#endif -#endif /* GL_EXT_texture_view */ - -#ifndef GL_EXT_unpack_subimage -#define GL_EXT_unpack_subimage 1 -#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2 -#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4 -#endif /* GL_EXT_unpack_subimage */ - -#ifndef GL_EXT_win32_keyed_mutex -#define GL_EXT_win32_keyed_mutex 1 -typedef GLboolean (GL_APIENTRYP PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key, GLuint timeout); -typedef GLboolean (GL_APIENTRYP PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLboolean GL_APIENTRY glAcquireKeyedMutexWin32EXT (GLuint memory, GLuint64 key, GLuint timeout); -GL_APICALL GLboolean GL_APIENTRY glReleaseKeyedMutexWin32EXT (GLuint memory, GLuint64 key); -#endif -#endif /* GL_EXT_win32_keyed_mutex */ - -#ifndef GL_EXT_window_rectangles -#define GL_EXT_window_rectangles 1 -#define GL_INCLUSIVE_EXT 0x8F10 -#define GL_EXCLUSIVE_EXT 0x8F11 -#define GL_WINDOW_RECTANGLE_EXT 0x8F12 -#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13 -#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14 -#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15 -typedef void (GL_APIENTRYP PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint *box); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLint *box); -#endif -#endif /* GL_EXT_window_rectangles */ - -#ifndef GL_FJ_shader_binary_GCCSO -#define GL_FJ_shader_binary_GCCSO 1 -#define GL_GCCSO_SHADER_BINARY_FJ 0x9260 -#endif /* GL_FJ_shader_binary_GCCSO */ - -#ifndef GL_IMG_bindless_texture -#define GL_IMG_bindless_texture 1 -typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTUREHANDLEIMGPROC) (GLuint texture); -typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTURESAMPLERHANDLEIMGPROC) (GLuint texture, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64IMGPROC) (GLint location, GLuint64 value); -typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64VIMGPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC) (GLuint program, GLint location, GLuint64 value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLuint64 GL_APIENTRY glGetTextureHandleIMG (GLuint texture); -GL_APICALL GLuint64 GL_APIENTRY glGetTextureSamplerHandleIMG (GLuint texture, GLuint sampler); -GL_APICALL void GL_APIENTRY glUniformHandleui64IMG (GLint location, GLuint64 value); -GL_APICALL void GL_APIENTRY glUniformHandleui64vIMG (GLint location, GLsizei count, const GLuint64 *value); -GL_APICALL void GL_APIENTRY glProgramUniformHandleui64IMG (GLuint program, GLint location, GLuint64 value); -GL_APICALL void GL_APIENTRY glProgramUniformHandleui64vIMG (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -#endif -#endif /* GL_IMG_bindless_texture */ - -#ifndef GL_IMG_framebuffer_downsample -#define GL_IMG_framebuffer_downsample 1 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG 0x913C -#define GL_NUM_DOWNSAMPLE_SCALES_IMG 0x913D -#define GL_DOWNSAMPLE_SCALES_IMG 0x913E -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG 0x913F -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTexture2DDownsampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayerDownsampleIMG (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale); -#endif -#endif /* GL_IMG_framebuffer_downsample */ - -#ifndef GL_IMG_multisampled_render_to_texture -#define GL_IMG_multisampled_render_to_texture 1 -#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 -#define GL_MAX_SAMPLES_IMG 0x9135 -#define GL_TEXTURE_SAMPLES_IMG 0x9136 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#endif -#endif /* GL_IMG_multisampled_render_to_texture */ - -#ifndef GL_IMG_program_binary -#define GL_IMG_program_binary 1 -#define GL_SGX_PROGRAM_BINARY_IMG 0x9130 -#endif /* GL_IMG_program_binary */ - -#ifndef GL_IMG_read_format -#define GL_IMG_read_format 1 -#define GL_BGRA_IMG 0x80E1 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 -#endif /* GL_IMG_read_format */ - -#ifndef GL_IMG_shader_binary -#define GL_IMG_shader_binary 1 -#define GL_SGX_BINARY_IMG 0x8C0A -#endif /* GL_IMG_shader_binary */ - -#ifndef GL_IMG_texture_compression_pvrtc -#define GL_IMG_texture_compression_pvrtc 1 -#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 -#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 -#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 -#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 -#endif /* GL_IMG_texture_compression_pvrtc */ - -#ifndef GL_IMG_texture_compression_pvrtc2 -#define GL_IMG_texture_compression_pvrtc2 1 -#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137 -#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138 -#endif /* GL_IMG_texture_compression_pvrtc2 */ - -#ifndef GL_IMG_texture_filter_cubic -#define GL_IMG_texture_filter_cubic 1 -#define GL_CUBIC_IMG 0x9139 -#define GL_CUBIC_MIPMAP_NEAREST_IMG 0x913A -#define GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B -#endif /* GL_IMG_texture_filter_cubic */ - -#ifndef GL_INTEL_blackhole_render -#define GL_INTEL_blackhole_render 1 -#define GL_BLACKHOLE_RENDER_INTEL 0x83FC -#endif /* GL_INTEL_blackhole_render */ - -#ifndef GL_INTEL_conservative_rasterization -#define GL_INTEL_conservative_rasterization 1 -#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE -#endif /* GL_INTEL_conservative_rasterization */ - -#ifndef GL_INTEL_framebuffer_CMAA -#define GL_INTEL_framebuffer_CMAA 1 -typedef void (GL_APIENTRYP PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glApplyFramebufferAttachmentCMAAINTEL (void); -#endif -#endif /* GL_INTEL_framebuffer_CMAA */ - -#ifndef GL_INTEL_performance_query -#define GL_INTEL_performance_query 1 -#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000 -#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001 -#define GL_PERFQUERY_WAIT_INTEL 0x83FB -#define GL_PERFQUERY_FLUSH_INTEL 0x83FA -#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 -#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 -#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 -#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 -#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 -#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 -#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 -#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 -#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 -#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA -#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB -#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC -#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD -#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE -#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF -#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 -typedef void (GL_APIENTRYP PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (GL_APIENTRYP PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint *queryHandle); -typedef void (GL_APIENTRYP PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (GL_APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (GL_APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId); -typedef void (GL_APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId); -typedef void (GL_APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); -typedef void (GL_APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); -typedef void (GL_APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId); -typedef void (GL_APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBeginPerfQueryINTEL (GLuint queryHandle); -GL_APICALL void GL_APIENTRY glCreatePerfQueryINTEL (GLuint queryId, GLuint *queryHandle); -GL_APICALL void GL_APIENTRY glDeletePerfQueryINTEL (GLuint queryHandle); -GL_APICALL void GL_APIENTRY glEndPerfQueryINTEL (GLuint queryHandle); -GL_APICALL void GL_APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId); -GL_APICALL void GL_APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId); -GL_APICALL void GL_APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); -GL_APICALL void GL_APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); -GL_APICALL void GL_APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId); -GL_APICALL void GL_APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); -#endif -#endif /* GL_INTEL_performance_query */ - -#ifndef GL_MESA_bgra -#define GL_MESA_bgra 1 -#define GL_BGR_EXT 0x80E0 -#endif /* GL_MESA_bgra */ - -#ifndef GL_MESA_framebuffer_flip_x -#define GL_MESA_framebuffer_flip_x 1 -#define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC -#endif /* GL_MESA_framebuffer_flip_x */ - -#ifndef GL_MESA_framebuffer_flip_y -#define GL_MESA_framebuffer_flip_y 1 -#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferParameteriMESA (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glGetFramebufferParameterivMESA (GLenum target, GLenum pname, GLint *params); -#endif -#endif /* GL_MESA_framebuffer_flip_y */ - -#ifndef GL_MESA_framebuffer_swap_xy -#define GL_MESA_framebuffer_swap_xy 1 -#define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD -#endif /* GL_MESA_framebuffer_swap_xy */ - -#ifndef GL_MESA_program_binary_formats -#define GL_MESA_program_binary_formats 1 -#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F -#endif /* GL_MESA_program_binary_formats */ - -#ifndef GL_MESA_shader_integer_functions -#define GL_MESA_shader_integer_functions 1 -#endif /* GL_MESA_shader_integer_functions */ - -#ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers -#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1 -#endif /* GL_NVX_blend_equation_advanced_multi_draw_buffers */ - -#ifndef GL_NV_bindless_texture -#define GL_NV_bindless_texture 1 -typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); -typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef void (GL_APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef GLuint64 (GL_APIENTRYP PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -typedef void (GL_APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); -typedef void (GL_APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); -typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef GLboolean (GL_APIENTRYP PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLuint64 GL_APIENTRY glGetTextureHandleNV (GLuint texture); -GL_APICALL GLuint64 GL_APIENTRY glGetTextureSamplerHandleNV (GLuint texture, GLuint sampler); -GL_APICALL void GL_APIENTRY glMakeTextureHandleResidentNV (GLuint64 handle); -GL_APICALL void GL_APIENTRY glMakeTextureHandleNonResidentNV (GLuint64 handle); -GL_APICALL GLuint64 GL_APIENTRY glGetImageHandleNV (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -GL_APICALL void GL_APIENTRY glMakeImageHandleResidentNV (GLuint64 handle, GLenum access); -GL_APICALL void GL_APIENTRY glMakeImageHandleNonResidentNV (GLuint64 handle); -GL_APICALL void GL_APIENTRY glUniformHandleui64NV (GLint location, GLuint64 value); -GL_APICALL void GL_APIENTRY glUniformHandleui64vNV (GLint location, GLsizei count, const GLuint64 *value); -GL_APICALL void GL_APIENTRY glProgramUniformHandleui64NV (GLuint program, GLint location, GLuint64 value); -GL_APICALL void GL_APIENTRY glProgramUniformHandleui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -GL_APICALL GLboolean GL_APIENTRY glIsTextureHandleResidentNV (GLuint64 handle); -GL_APICALL GLboolean GL_APIENTRY glIsImageHandleResidentNV (GLuint64 handle); -#endif -#endif /* GL_NV_bindless_texture */ - -#ifndef GL_NV_blend_equation_advanced -#define GL_NV_blend_equation_advanced 1 -#define GL_BLEND_OVERLAP_NV 0x9281 -#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 -#define GL_BLUE_NV 0x1905 -#define GL_COLORBURN_NV 0x929A -#define GL_COLORDODGE_NV 0x9299 -#define GL_CONJOINT_NV 0x9284 -#define GL_CONTRAST_NV 0x92A1 -#define GL_DARKEN_NV 0x9297 -#define GL_DIFFERENCE_NV 0x929E -#define GL_DISJOINT_NV 0x9283 -#define GL_DST_ATOP_NV 0x928F -#define GL_DST_IN_NV 0x928B -#define GL_DST_NV 0x9287 -#define GL_DST_OUT_NV 0x928D -#define GL_DST_OVER_NV 0x9289 -#define GL_EXCLUSION_NV 0x92A0 -#define GL_GREEN_NV 0x1904 -#define GL_HARDLIGHT_NV 0x929B -#define GL_HARDMIX_NV 0x92A9 -#define GL_HSL_COLOR_NV 0x92AF -#define GL_HSL_HUE_NV 0x92AD -#define GL_HSL_LUMINOSITY_NV 0x92B0 -#define GL_HSL_SATURATION_NV 0x92AE -#define GL_INVERT_OVG_NV 0x92B4 -#define GL_INVERT_RGB_NV 0x92A3 -#define GL_LIGHTEN_NV 0x9298 -#define GL_LINEARBURN_NV 0x92A5 -#define GL_LINEARDODGE_NV 0x92A4 -#define GL_LINEARLIGHT_NV 0x92A7 -#define GL_MINUS_CLAMPED_NV 0x92B3 -#define GL_MINUS_NV 0x929F -#define GL_MULTIPLY_NV 0x9294 -#define GL_OVERLAY_NV 0x9296 -#define GL_PINLIGHT_NV 0x92A8 -#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 -#define GL_PLUS_CLAMPED_NV 0x92B1 -#define GL_PLUS_DARKER_NV 0x9292 -#define GL_PLUS_NV 0x9291 -#define GL_RED_NV 0x1903 -#define GL_SCREEN_NV 0x9295 -#define GL_SOFTLIGHT_NV 0x929C -#define GL_SRC_ATOP_NV 0x928E -#define GL_SRC_IN_NV 0x928A -#define GL_SRC_NV 0x9286 -#define GL_SRC_OUT_NV 0x928C -#define GL_SRC_OVER_NV 0x9288 -#define GL_UNCORRELATED_NV 0x9282 -#define GL_VIVIDLIGHT_NV 0x92A6 -#define GL_XOR_NV 0x1506 -typedef void (GL_APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLBLENDBARRIERNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlendParameteriNV (GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glBlendBarrierNV (void); -#endif -#endif /* GL_NV_blend_equation_advanced */ - -#ifndef GL_NV_blend_equation_advanced_coherent -#define GL_NV_blend_equation_advanced_coherent 1 -#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 -#endif /* GL_NV_blend_equation_advanced_coherent */ - -#ifndef GL_NV_blend_minmax_factor -#define GL_NV_blend_minmax_factor 1 -#define GL_FACTOR_MIN_AMD 0x901C -#define GL_FACTOR_MAX_AMD 0x901D -#endif /* GL_NV_blend_minmax_factor */ - -#ifndef GL_NV_clip_space_w_scaling -#define GL_NV_clip_space_w_scaling 1 -#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C -#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D -#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E -typedef void (GL_APIENTRYP PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glViewportPositionWScaleNV (GLuint index, GLfloat xcoeff, GLfloat ycoeff); -#endif -#endif /* GL_NV_clip_space_w_scaling */ - -#ifndef GL_NV_compute_shader_derivatives -#define GL_NV_compute_shader_derivatives 1 -#endif /* GL_NV_compute_shader_derivatives */ - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 -typedef void (GL_APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); -typedef void (GL_APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode); -GL_APICALL void GL_APIENTRY glEndConditionalRenderNV (void); -#endif -#endif /* GL_NV_conditional_render */ - -#ifndef GL_NV_conservative_raster -#define GL_NV_conservative_raster 1 -#define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346 -#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347 -#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348 -#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349 -typedef void (GL_APIENTRYP PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glSubpixelPrecisionBiasNV (GLuint xbits, GLuint ybits); -#endif -#endif /* GL_NV_conservative_raster */ - -#ifndef GL_NV_conservative_raster_pre_snap -#define GL_NV_conservative_raster_pre_snap 1 -#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550 -#endif /* GL_NV_conservative_raster_pre_snap */ - -#ifndef GL_NV_conservative_raster_pre_snap_triangles -#define GL_NV_conservative_raster_pre_snap_triangles 1 -#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D -#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E -#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F -typedef void (GL_APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glConservativeRasterParameteriNV (GLenum pname, GLint param); -#endif -#endif /* GL_NV_conservative_raster_pre_snap_triangles */ - -#ifndef GL_NV_copy_buffer -#define GL_NV_copy_buffer 1 -#define GL_COPY_READ_BUFFER_NV 0x8F36 -#define GL_COPY_WRITE_BUFFER_NV 0x8F37 -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATANVPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyBufferSubDataNV (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -#endif -#endif /* GL_NV_copy_buffer */ - -#ifndef GL_NV_coverage_sample -#define GL_NV_coverage_sample 1 -#define GL_COVERAGE_COMPONENT_NV 0x8ED0 -#define GL_COVERAGE_COMPONENT4_NV 0x8ED1 -#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2 -#define GL_COVERAGE_BUFFERS_NV 0x8ED3 -#define GL_COVERAGE_SAMPLES_NV 0x8ED4 -#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5 -#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6 -#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7 -#define GL_COVERAGE_BUFFER_BIT_NV 0x00008000 -typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask); -typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask); -GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation); -#endif -#endif /* GL_NV_coverage_sample */ - -#ifndef GL_NV_depth_nonlinear -#define GL_NV_depth_nonlinear 1 -#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C -#endif /* GL_NV_depth_nonlinear */ - -#ifndef GL_NV_draw_buffers -#define GL_NV_draw_buffers 1 -#define GL_MAX_DRAW_BUFFERS_NV 0x8824 -#define GL_DRAW_BUFFER0_NV 0x8825 -#define GL_DRAW_BUFFER1_NV 0x8826 -#define GL_DRAW_BUFFER2_NV 0x8827 -#define GL_DRAW_BUFFER3_NV 0x8828 -#define GL_DRAW_BUFFER4_NV 0x8829 -#define GL_DRAW_BUFFER5_NV 0x882A -#define GL_DRAW_BUFFER6_NV 0x882B -#define GL_DRAW_BUFFER7_NV 0x882C -#define GL_DRAW_BUFFER8_NV 0x882D -#define GL_DRAW_BUFFER9_NV 0x882E -#define GL_DRAW_BUFFER10_NV 0x882F -#define GL_DRAW_BUFFER11_NV 0x8830 -#define GL_DRAW_BUFFER12_NV 0x8831 -#define GL_DRAW_BUFFER13_NV 0x8832 -#define GL_DRAW_BUFFER14_NV 0x8833 -#define GL_DRAW_BUFFER15_NV 0x8834 -#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 -#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 -#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 -#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 -#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 -#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 -#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 -#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 -#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 -#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 -#define GL_COLOR_ATTACHMENT10_NV 0x8CEA -#define GL_COLOR_ATTACHMENT11_NV 0x8CEB -#define GL_COLOR_ATTACHMENT12_NV 0x8CEC -#define GL_COLOR_ATTACHMENT13_NV 0x8CED -#define GL_COLOR_ATTACHMENT14_NV 0x8CEE -#define GL_COLOR_ATTACHMENT15_NV 0x8CEF -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs); -#endif -#endif /* GL_NV_draw_buffers */ - -#ifndef GL_NV_draw_instanced -#define GL_NV_draw_instanced 1 -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedNV (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedNV (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#endif -#endif /* GL_NV_draw_instanced */ - -#ifndef GL_NV_draw_vulkan_image -#define GL_NV_draw_vulkan_image 1 -typedef void (GL_APIENTRY *GLVULKANPROCNV)(void); -typedef void (GL_APIENTRYP PFNGLDRAWVKIMAGENVPROC) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); -typedef GLVULKANPROCNV (GL_APIENTRYP PFNGLGETVKPROCADDRNVPROC) (const GLchar *name); -typedef void (GL_APIENTRYP PFNGLWAITVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); -typedef void (GL_APIENTRYP PFNGLSIGNALVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); -typedef void (GL_APIENTRYP PFNGLSIGNALVKFENCENVPROC) (GLuint64 vkFence); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawVkImageNV (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); -GL_APICALL GLVULKANPROCNV GL_APIENTRY glGetVkProcAddrNV (const GLchar *name); -GL_APICALL void GL_APIENTRY glWaitVkSemaphoreNV (GLuint64 vkSemaphore); -GL_APICALL void GL_APIENTRY glSignalVkSemaphoreNV (GLuint64 vkSemaphore); -GL_APICALL void GL_APIENTRY glSignalVkFenceNV (GLuint64 vkFence); -#endif -#endif /* GL_NV_draw_vulkan_image */ - -#ifndef GL_NV_explicit_attrib_location -#define GL_NV_explicit_attrib_location 1 -#endif /* GL_NV_explicit_attrib_location */ - -#ifndef GL_NV_fbo_color_attachments -#define GL_NV_fbo_color_attachments 1 -#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF -#endif /* GL_NV_fbo_color_attachments */ - -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); -GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); -GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint fence); -GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint fence); -GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint fence); -GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint fence, GLenum condition); -#endif -#endif /* GL_NV_fence */ - -#ifndef GL_NV_fill_rectangle -#define GL_NV_fill_rectangle 1 -#define GL_FILL_RECTANGLE_NV 0x933C -#endif /* GL_NV_fill_rectangle */ - -#ifndef GL_NV_fragment_coverage_to_color -#define GL_NV_fragment_coverage_to_color 1 -#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD -#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE -typedef void (GL_APIENTRYP PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFragmentCoverageColorNV (GLuint color); -#endif -#endif /* GL_NV_fragment_coverage_to_color */ - -#ifndef GL_NV_fragment_shader_barycentric -#define GL_NV_fragment_shader_barycentric 1 -#endif /* GL_NV_fragment_shader_barycentric */ - -#ifndef GL_NV_fragment_shader_interlock -#define GL_NV_fragment_shader_interlock 1 -#endif /* GL_NV_fragment_shader_interlock */ - -#ifndef GL_NV_framebuffer_blit -#define GL_NV_framebuffer_blit 1 -#define GL_READ_FRAMEBUFFER_NV 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlitFramebufferNV (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif -#endif /* GL_NV_framebuffer_blit */ - -#ifndef GL_NV_framebuffer_mixed_samples -#define GL_NV_framebuffer_mixed_samples 1 -#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 -#define GL_COLOR_SAMPLES_NV 0x8E20 -#define GL_DEPTH_SAMPLES_NV 0x932D -#define GL_STENCIL_SAMPLES_NV 0x932E -#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F -#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 -#define GL_COVERAGE_MODULATION_NV 0x9332 -#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 -typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufSize, GLfloat *v); -typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCoverageModulationTableNV (GLsizei n, const GLfloat *v); -GL_APICALL void GL_APIENTRY glGetCoverageModulationTableNV (GLsizei bufSize, GLfloat *v); -GL_APICALL void GL_APIENTRY glCoverageModulationNV (GLenum components); -#endif -#endif /* GL_NV_framebuffer_mixed_samples */ - -#ifndef GL_NV_framebuffer_multisample -#define GL_NV_framebuffer_multisample 1 -#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56 -#define GL_MAX_SAMPLES_NV 0x8D57 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleNV (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_NV_framebuffer_multisample */ - -#ifndef GL_NV_generate_mipmap_sRGB -#define GL_NV_generate_mipmap_sRGB 1 -#endif /* GL_NV_generate_mipmap_sRGB */ - -#ifndef GL_NV_geometry_shader_passthrough -#define GL_NV_geometry_shader_passthrough 1 -#endif /* GL_NV_geometry_shader_passthrough */ - -#ifndef GL_NV_gpu_shader5 -#define GL_NV_gpu_shader5 1 -typedef khronos_int64_t GLint64EXT; -typedef khronos_uint64_t GLuint64EXT; -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F -#define GL_INT8_NV 0x8FE0 -#define GL_INT8_VEC2_NV 0x8FE1 -#define GL_INT8_VEC3_NV 0x8FE2 -#define GL_INT8_VEC4_NV 0x8FE3 -#define GL_INT16_NV 0x8FE4 -#define GL_INT16_VEC2_NV 0x8FE5 -#define GL_INT16_VEC3_NV 0x8FE6 -#define GL_INT16_VEC4_NV 0x8FE7 -#define GL_INT64_VEC2_NV 0x8FE9 -#define GL_INT64_VEC3_NV 0x8FEA -#define GL_INT64_VEC4_NV 0x8FEB -#define GL_UNSIGNED_INT8_NV 0x8FEC -#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED -#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE -#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF -#define GL_UNSIGNED_INT16_NV 0x8FF0 -#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 -#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 -#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 -#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 -#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 -#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 -#define GL_FLOAT16_NV 0x8FF8 -#define GL_FLOAT16_VEC2_NV 0x8FF9 -#define GL_FLOAT16_VEC3_NV 0x8FFA -#define GL_FLOAT16_VEC4_NV 0x8FFB -#define GL_PATCHES 0x000E -typedef void (GL_APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); -typedef void (GL_APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); -typedef void (GL_APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GL_APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GL_APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glUniform1i64NV (GLint location, GLint64EXT x); -GL_APICALL void GL_APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y); -GL_APICALL void GL_APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GL_APICALL void GL_APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GL_APICALL void GL_APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x); -GL_APICALL void GL_APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y); -GL_APICALL void GL_APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GL_APICALL void GL_APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GL_APICALL void GL_APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params); -GL_APICALL void GL_APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x); -GL_APICALL void GL_APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -GL_APICALL void GL_APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GL_APICALL void GL_APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GL_APICALL void GL_APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x); -GL_APICALL void GL_APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -GL_APICALL void GL_APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GL_APICALL void GL_APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GL_APICALL void GL_APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif -#endif /* GL_NV_gpu_shader5 */ - -#ifndef GL_NV_image_formats -#define GL_NV_image_formats 1 -#endif /* GL_NV_image_formats */ - -#ifndef GL_NV_instanced_arrays -#define GL_NV_instanced_arrays 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glVertexAttribDivisorNV (GLuint index, GLuint divisor); -#endif -#endif /* GL_NV_instanced_arrays */ - -#ifndef GL_NV_internalformat_sample_query -#define GL_NV_internalformat_sample_query 1 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_MULTISAMPLES_NV 0x9371 -#define GL_SUPERSAMPLE_SCALE_X_NV 0x9372 -#define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373 -#define GL_CONFORMANT_NV 0x9374 -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetInternalformatSampleivNV (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); -#endif -#endif /* GL_NV_internalformat_sample_query */ - -#ifndef GL_NV_memory_attachment -#define GL_NV_memory_attachment 1 -#define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4 -#define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5 -#define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6 -#define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7 -#define GL_MEMORY_ATTACHABLE_NV 0x95A8 -#define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9 -#define GL_DETACHED_TEXTURES_NV 0x95AA -#define GL_DETACHED_BUFFERS_NV 0x95AB -#define GL_MAX_DETACHED_TEXTURES_NV 0x95AC -#define GL_MAX_DETACHED_BUFFERS_NV 0x95AD -typedef void (GL_APIENTRYP PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); -typedef void (GL_APIENTRYP PFNGLRESETMEMORYOBJECTPARAMETERNVPROC) (GLuint memory, GLenum pname); -typedef void (GL_APIENTRYP PFNGLTEXATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLBUFFERATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXTUREATTACHMEMORYNVPROC) (GLuint texture, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERATTACHMEMORYNVPROC) (GLuint buffer, GLuint memory, GLuint64 offset); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetMemoryObjectDetachedResourcesuivNV (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); -GL_APICALL void GL_APIENTRY glResetMemoryObjectParameterNV (GLuint memory, GLenum pname); -GL_APICALL void GL_APIENTRY glTexAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glBufferAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTextureAttachMemoryNV (GLuint texture, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glNamedBufferAttachMemoryNV (GLuint buffer, GLuint memory, GLuint64 offset); -#endif -#endif /* GL_NV_memory_attachment */ - -#ifndef GL_NV_memory_object_sparse -#define GL_NV_memory_object_sparse 1 -typedef void (GL_APIENTRYP PFNGLBUFFERPAGECOMMITMENTMEMNVPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); -typedef void (GL_APIENTRYP PFNGLTEXPAGECOMMITMENTMEMNVPROC) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); -typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); -typedef void (GL_APIENTRYP PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBufferPageCommitmentMemNV (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); -GL_APICALL void GL_APIENTRY glTexPageCommitmentMemNV (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); -GL_APICALL void GL_APIENTRY glNamedBufferPageCommitmentMemNV (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); -GL_APICALL void GL_APIENTRY glTexturePageCommitmentMemNV (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); -#endif -#endif /* GL_NV_memory_object_sparse */ - -#ifndef GL_NV_mesh_shader -#define GL_NV_mesh_shader 1 -#define GL_MESH_SHADER_NV 0x9559 -#define GL_TASK_SHADER_NV 0x955A -#define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60 -#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61 -#define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62 -#define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63 -#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64 -#define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65 -#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66 -#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67 -#define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68 -#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69 -#define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A -#define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B -#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C -#define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D -#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E -#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F -#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2 -#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3 -#define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536 -#define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537 -#define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538 -#define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539 -#define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A -#define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D -#define GL_MAX_MESH_VIEWS_NV 0x9557 -#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF -#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543 -#define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B -#define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C -#define GL_MESH_WORK_GROUP_SIZE_NV 0x953E -#define GL_TASK_WORK_GROUP_SIZE_NV 0x953F -#define GL_MESH_VERTICES_OUT_NV 0x9579 -#define GL_MESH_PRIMITIVES_OUT_NV 0x957A -#define GL_MESH_OUTPUT_TYPE_NV 0x957B -#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D -#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0 -#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1 -#define GL_MESH_SHADER_BIT_NV 0x00000040 -#define GL_TASK_SHADER_BIT_NV 0x00000080 -#define GL_MESH_SUBROUTINE_NV 0x957C -#define GL_TASK_SUBROUTINE_NV 0x957D -#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E -#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F -typedef void (GL_APIENTRYP PFNGLDRAWMESHTASKSNVPROC) (GLuint first, GLuint count); -typedef void (GL_APIENTRYP PFNGLDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect, GLsizei drawcount, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawMeshTasksNV (GLuint first, GLuint count); -GL_APICALL void GL_APIENTRY glDrawMeshTasksIndirectNV (GLintptr indirect); -GL_APICALL void GL_APIENTRY glMultiDrawMeshTasksIndirectNV (GLintptr indirect, GLsizei drawcount, GLsizei stride); -GL_APICALL void GL_APIENTRY glMultiDrawMeshTasksIndirectCountNV (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -#endif -#endif /* GL_NV_mesh_shader */ - -#ifndef GL_NV_non_square_matrices -#define GL_NV_non_square_matrices 1 -#define GL_FLOAT_MAT2x3_NV 0x8B65 -#define GL_FLOAT_MAT2x4_NV 0x8B66 -#define GL_FLOAT_MAT3x2_NV 0x8B67 -#define GL_FLOAT_MAT3x4_NV 0x8B68 -#define GL_FLOAT_MAT4x2_NV 0x8B69 -#define GL_FLOAT_MAT4x3_NV 0x8B6A -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif -#endif /* GL_NV_non_square_matrices */ - -#ifndef GL_NV_path_rendering -#define GL_NV_path_rendering 1 -typedef double GLdouble; -#define GL_PATH_FORMAT_SVG_NV 0x9070 -#define GL_PATH_FORMAT_PS_NV 0x9071 -#define GL_STANDARD_FONT_NAME_NV 0x9072 -#define GL_SYSTEM_FONT_NAME_NV 0x9073 -#define GL_FILE_NAME_NV 0x9074 -#define GL_PATH_STROKE_WIDTH_NV 0x9075 -#define GL_PATH_END_CAPS_NV 0x9076 -#define GL_PATH_INITIAL_END_CAP_NV 0x9077 -#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 -#define GL_PATH_JOIN_STYLE_NV 0x9079 -#define GL_PATH_MITER_LIMIT_NV 0x907A -#define GL_PATH_DASH_CAPS_NV 0x907B -#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C -#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D -#define GL_PATH_DASH_OFFSET_NV 0x907E -#define GL_PATH_CLIENT_LENGTH_NV 0x907F -#define GL_PATH_FILL_MODE_NV 0x9080 -#define GL_PATH_FILL_MASK_NV 0x9081 -#define GL_PATH_FILL_COVER_MODE_NV 0x9082 -#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 -#define GL_PATH_STROKE_MASK_NV 0x9084 -#define GL_COUNT_UP_NV 0x9088 -#define GL_COUNT_DOWN_NV 0x9089 -#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A -#define GL_CONVEX_HULL_NV 0x908B -#define GL_BOUNDING_BOX_NV 0x908D -#define GL_TRANSLATE_X_NV 0x908E -#define GL_TRANSLATE_Y_NV 0x908F -#define GL_TRANSLATE_2D_NV 0x9090 -#define GL_TRANSLATE_3D_NV 0x9091 -#define GL_AFFINE_2D_NV 0x9092 -#define GL_AFFINE_3D_NV 0x9094 -#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 -#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 -#define GL_UTF8_NV 0x909A -#define GL_UTF16_NV 0x909B -#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C -#define GL_PATH_COMMAND_COUNT_NV 0x909D -#define GL_PATH_COORD_COUNT_NV 0x909E -#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F -#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 -#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 -#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 -#define GL_SQUARE_NV 0x90A3 -#define GL_ROUND_NV 0x90A4 -#define GL_TRIANGULAR_NV 0x90A5 -#define GL_BEVEL_NV 0x90A6 -#define GL_MITER_REVERT_NV 0x90A7 -#define GL_MITER_TRUNCATE_NV 0x90A8 -#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 -#define GL_USE_MISSING_GLYPH_NV 0x90AA -#define GL_PATH_ERROR_POSITION_NV 0x90AB -#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD -#define GL_ADJACENT_PAIRS_NV 0x90AE -#define GL_FIRST_TO_REST_NV 0x90AF -#define GL_PATH_GEN_MODE_NV 0x90B0 -#define GL_PATH_GEN_COEFF_NV 0x90B1 -#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 -#define GL_PATH_STENCIL_FUNC_NV 0x90B7 -#define GL_PATH_STENCIL_REF_NV 0x90B8 -#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 -#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD -#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE -#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF -#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 -#define GL_MOVE_TO_RESETS_NV 0x90B5 -#define GL_MOVE_TO_CONTINUES_NV 0x90B6 -#define GL_CLOSE_PATH_NV 0x00 -#define GL_MOVE_TO_NV 0x02 -#define GL_RELATIVE_MOVE_TO_NV 0x03 -#define GL_LINE_TO_NV 0x04 -#define GL_RELATIVE_LINE_TO_NV 0x05 -#define GL_HORIZONTAL_LINE_TO_NV 0x06 -#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 -#define GL_VERTICAL_LINE_TO_NV 0x08 -#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 -#define GL_QUADRATIC_CURVE_TO_NV 0x0A -#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B -#define GL_CUBIC_CURVE_TO_NV 0x0C -#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D -#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E -#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F -#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 -#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 -#define GL_SMALL_CCW_ARC_TO_NV 0x12 -#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 -#define GL_SMALL_CW_ARC_TO_NV 0x14 -#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 -#define GL_LARGE_CCW_ARC_TO_NV 0x16 -#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 -#define GL_LARGE_CW_ARC_TO_NV 0x18 -#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 -#define GL_RESTART_PATH_NV 0xF0 -#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 -#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 -#define GL_RECT_NV 0xF6 -#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 -#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA -#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC -#define GL_ARC_TO_NV 0xFE -#define GL_RELATIVE_ARC_TO_NV 0xFF -#define GL_BOLD_BIT_NV 0x01 -#define GL_ITALIC_BIT_NV 0x02 -#define GL_GLYPH_WIDTH_BIT_NV 0x01 -#define GL_GLYPH_HEIGHT_BIT_NV 0x02 -#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 -#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 -#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 -#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 -#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 -#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 -#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 -#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 -#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 -#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 -#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 -#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 -#define GL_FONT_ASCENDER_BIT_NV 0x00200000 -#define GL_FONT_DESCENDER_BIT_NV 0x00400000 -#define GL_FONT_HEIGHT_BIT_NV 0x00800000 -#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 -#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 -#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 -#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 -#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 -#define GL_ROUNDED_RECT_NV 0xE8 -#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9 -#define GL_ROUNDED_RECT2_NV 0xEA -#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB -#define GL_ROUNDED_RECT4_NV 0xEC -#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED -#define GL_ROUNDED_RECT8_NV 0xEE -#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF -#define GL_RELATIVE_RECT_NV 0xF7 -#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368 -#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369 -#define GL_FONT_UNAVAILABLE_NV 0x936A -#define GL_FONT_UNINTELLIGIBLE_NV 0x936B -#define GL_CONIC_CURVE_TO_NV 0x1A -#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B -#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000 -#define GL_STANDARD_FONT_FORMAT_NV 0x936C -#define GL_PATH_PROJECTION_NV 0x1701 -#define GL_PATH_MODELVIEW_NV 0x1700 -#define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3 -#define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6 -#define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36 -#define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3 -#define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4 -#define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7 -#define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38 -#define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4 -#define GL_FRAGMENT_INPUT_NV 0x936D -typedef GLuint (GL_APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range); -typedef void (GL_APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); -typedef GLboolean (GL_APIENTRYP PFNGLISPATHNVPROC) (GLuint path); -typedef void (GL_APIENTRYP PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GL_APIENTRYP PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GL_APIENTRYP PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GL_APIENTRYP PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GL_APIENTRYP PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); -typedef void (GL_APIENTRYP PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GL_APIENTRYP PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GL_APIENTRYP PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); -typedef void (GL_APIENTRYP PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); -typedef void (GL_APIENTRYP PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -typedef void (GL_APIENTRYP PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); -typedef void (GL_APIENTRYP PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); -typedef void (GL_APIENTRYP PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (GL_APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (GL_APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint *value); -typedef void (GL_APIENTRYP PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat *value); -typedef void (GL_APIENTRYP PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte *commands); -typedef void (GL_APIENTRYP PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat *coords); -typedef void (GL_APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dashArray); -typedef void (GL_APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -typedef void (GL_APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); -typedef void (GL_APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -typedef GLboolean (GL_APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); -typedef GLboolean (GL_APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); -typedef GLfloat (GL_APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); -typedef GLboolean (GL_APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -typedef void (GL_APIENTRYP PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); -typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); -typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef GLenum (GL_APIENTRYP PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); -typedef GLenum (GL_APIENTRYP PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef GLenum (GL_APIENTRYP PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GL_APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (GL_APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (GL_APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void (GL_APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void (GL_APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLuint GL_APIENTRY glGenPathsNV (GLsizei range); -GL_APICALL void GL_APIENTRY glDeletePathsNV (GLuint path, GLsizei range); -GL_APICALL GLboolean GL_APIENTRY glIsPathNV (GLuint path); -GL_APICALL void GL_APIENTRY glPathCommandsNV (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -GL_APICALL void GL_APIENTRY glPathCoordsNV (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); -GL_APICALL void GL_APIENTRY glPathSubCommandsNV (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -GL_APICALL void GL_APIENTRY glPathSubCoordsNV (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); -GL_APICALL void GL_APIENTRY glPathStringNV (GLuint path, GLenum format, GLsizei length, const void *pathString); -GL_APICALL void GL_APIENTRY glPathGlyphsNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GL_APICALL void GL_APIENTRY glPathGlyphRangeNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GL_APICALL void GL_APIENTRY glWeightPathsNV (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); -GL_APICALL void GL_APIENTRY glCopyPathNV (GLuint resultPath, GLuint srcPath); -GL_APICALL void GL_APIENTRY glInterpolatePathsNV (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -GL_APICALL void GL_APIENTRY glTransformPathNV (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glPathParameterivNV (GLuint path, GLenum pname, const GLint *value); -GL_APICALL void GL_APIENTRY glPathParameteriNV (GLuint path, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glPathParameterfvNV (GLuint path, GLenum pname, const GLfloat *value); -GL_APICALL void GL_APIENTRY glPathParameterfNV (GLuint path, GLenum pname, GLfloat value); -GL_APICALL void GL_APIENTRY glPathDashArrayNV (GLuint path, GLsizei dashCount, const GLfloat *dashArray); -GL_APICALL void GL_APIENTRY glPathStencilFuncNV (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glPathStencilDepthOffsetNV (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glStencilFillPathNV (GLuint path, GLenum fillMode, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilStrokePathNV (GLuint path, GLint reference, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glPathCoverDepthFuncNV (GLenum func); -GL_APICALL void GL_APIENTRY glCoverFillPathNV (GLuint path, GLenum coverMode); -GL_APICALL void GL_APIENTRY glCoverStrokePathNV (GLuint path, GLenum coverMode); -GL_APICALL void GL_APIENTRY glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glGetPathParameterivNV (GLuint path, GLenum pname, GLint *value); -GL_APICALL void GL_APIENTRY glGetPathParameterfvNV (GLuint path, GLenum pname, GLfloat *value); -GL_APICALL void GL_APIENTRY glGetPathCommandsNV (GLuint path, GLubyte *commands); -GL_APICALL void GL_APIENTRY glGetPathCoordsNV (GLuint path, GLfloat *coords); -GL_APICALL void GL_APIENTRY glGetPathDashArrayNV (GLuint path, GLfloat *dashArray); -GL_APICALL void GL_APIENTRY glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -GL_APICALL void GL_APIENTRY glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); -GL_APICALL void GL_APIENTRY glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -GL_APICALL GLboolean GL_APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y); -GL_APICALL GLboolean GL_APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y); -GL_APICALL GLfloat GL_APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments); -GL_APICALL GLboolean GL_APIENTRY glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -GL_APICALL void GL_APIENTRY glMatrixLoad3x2fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoad3x3fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoadTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMult3x2fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMult3x3fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMultTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glStencilThenCoverFillPathNV (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); -GL_APICALL void GL_APIENTRY glStencilThenCoverStrokePathNV (GLuint path, GLint reference, GLuint mask, GLenum coverMode); -GL_APICALL void GL_APIENTRY glStencilThenCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glStencilThenCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GL_APICALL GLenum GL_APIENTRY glPathGlyphIndexRangeNV (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); -GL_APICALL GLenum GL_APIENTRY glPathGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GL_APICALL GLenum GL_APIENTRY glPathMemoryGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GL_APICALL void GL_APIENTRY glProgramPathFragmentInputGenNV (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); -GL_APICALL void GL_APIENTRY glGetProgramResourcefvNV (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GL_APICALL void GL_APIENTRY glMatrixLoadIdentityEXT (GLenum mode); -GL_APICALL void GL_APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m); -GL_APICALL void GL_APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m); -GL_APICALL void GL_APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m); -GL_APICALL void GL_APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m); -GL_APICALL void GL_APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GL_APICALL void GL_APIENTRY glMatrixPopEXT (GLenum mode); -GL_APICALL void GL_APIENTRY glMatrixPushEXT (GLenum mode); -GL_APICALL void GL_APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -GL_APICALL void GL_APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -GL_APICALL void GL_APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -#endif -#endif /* GL_NV_path_rendering */ - -#ifndef GL_NV_path_rendering_shared_edge -#define GL_NV_path_rendering_shared_edge 1 -#define GL_SHARED_EDGE_NV 0xC0 -#endif /* GL_NV_path_rendering_shared_edge */ - -#ifndef GL_NV_pixel_buffer_object -#define GL_NV_pixel_buffer_object 1 -#define GL_PIXEL_PACK_BUFFER_NV 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_NV 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_NV 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_NV 0x88EF -#endif /* GL_NV_pixel_buffer_object */ - -#ifndef GL_NV_polygon_mode -#define GL_NV_polygon_mode 1 -#define GL_POLYGON_MODE_NV 0x0B40 -#define GL_POLYGON_OFFSET_POINT_NV 0x2A01 -#define GL_POLYGON_OFFSET_LINE_NV 0x2A02 -#define GL_POINT_NV 0x1B00 -#define GL_LINE_NV 0x1B01 -#define GL_FILL_NV 0x1B02 -typedef void (GL_APIENTRYP PFNGLPOLYGONMODENVPROC) (GLenum face, GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPolygonModeNV (GLenum face, GLenum mode); -#endif -#endif /* GL_NV_polygon_mode */ - -#ifndef GL_NV_primitive_shading_rate -#define GL_NV_primitive_shading_rate 1 -#define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1 -#define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2 -#endif /* GL_NV_primitive_shading_rate */ - -#ifndef GL_NV_read_buffer -#define GL_NV_read_buffer 1 -#define GL_READ_BUFFER_NV 0x0C02 -typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode); -#endif -#endif /* GL_NV_read_buffer */ - -#ifndef GL_NV_read_buffer_front -#define GL_NV_read_buffer_front 1 -#endif /* GL_NV_read_buffer_front */ - -#ifndef GL_NV_read_depth -#define GL_NV_read_depth 1 -#endif /* GL_NV_read_depth */ - -#ifndef GL_NV_read_depth_stencil -#define GL_NV_read_depth_stencil 1 -#endif /* GL_NV_read_depth_stencil */ - -#ifndef GL_NV_read_stencil -#define GL_NV_read_stencil 1 -#endif /* GL_NV_read_stencil */ - -#ifndef GL_NV_representative_fragment_test -#define GL_NV_representative_fragment_test 1 -#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F -#endif /* GL_NV_representative_fragment_test */ - -#ifndef GL_NV_sRGB_formats -#define GL_NV_sRGB_formats 1 -#define GL_SLUMINANCE_NV 0x8C46 -#define GL_SLUMINANCE_ALPHA_NV 0x8C44 -#define GL_SRGB8_NV 0x8C41 -#define GL_SLUMINANCE8_NV 0x8C47 -#define GL_SLUMINANCE8_ALPHA8_NV 0x8C45 -#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F -#define GL_ETC1_SRGB8_NV 0x88EE -#endif /* GL_NV_sRGB_formats */ - -#ifndef GL_NV_sample_locations -#define GL_NV_sample_locations 1 -#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D -#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E -#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340 -#define GL_SAMPLE_LOCATION_NV 0x8E50 -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341 -#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342 -#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLRESOLVEDEPTHVALUESNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferSampleLocationsfvNV (GLenum target, GLuint start, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glNamedFramebufferSampleLocationsfvNV (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glResolveDepthValuesNV (void); -#endif -#endif /* GL_NV_sample_locations */ - -#ifndef GL_NV_sample_mask_override_coverage -#define GL_NV_sample_mask_override_coverage 1 -#endif /* GL_NV_sample_mask_override_coverage */ - -#ifndef GL_NV_scissor_exclusive -#define GL_NV_scissor_exclusive 1 -#define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555 -#define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556 -typedef void (GL_APIENTRYP PFNGLSCISSOREXCLUSIVENVPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSCISSOREXCLUSIVEARRAYVNVPROC) (GLuint first, GLsizei count, const GLint *v); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glScissorExclusiveNV (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glScissorExclusiveArrayvNV (GLuint first, GLsizei count, const GLint *v); -#endif -#endif /* GL_NV_scissor_exclusive */ - -#ifndef GL_NV_shader_atomic_fp16_vector -#define GL_NV_shader_atomic_fp16_vector 1 -#endif /* GL_NV_shader_atomic_fp16_vector */ - -#ifndef GL_NV_shader_noperspective_interpolation -#define GL_NV_shader_noperspective_interpolation 1 -#endif /* GL_NV_shader_noperspective_interpolation */ - -#ifndef GL_NV_shader_subgroup_partitioned -#define GL_NV_shader_subgroup_partitioned 1 -#define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100 -#endif /* GL_NV_shader_subgroup_partitioned */ - -#ifndef GL_NV_shader_texture_footprint -#define GL_NV_shader_texture_footprint 1 -#endif /* GL_NV_shader_texture_footprint */ - -#ifndef GL_NV_shading_rate_image -#define GL_NV_shading_rate_image 1 -#define GL_SHADING_RATE_IMAGE_NV 0x9563 -#define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564 -#define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565 -#define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566 -#define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567 -#define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568 -#define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569 -#define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A -#define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B -#define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C -#define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D -#define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E -#define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F -#define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B -#define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C -#define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D -#define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E -#define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F -#define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE -#define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF -#define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0 -typedef void (GL_APIENTRYP PFNGLBINDSHADINGRATEIMAGENVPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLGETSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint entry, GLenum *rate); -typedef void (GL_APIENTRYP PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC) (GLenum rate, GLuint samples, GLuint index, GLint *location); -typedef void (GL_APIENTRYP PFNGLSHADINGRATEIMAGEBARRIERNVPROC) (GLboolean synchronize); -typedef void (GL_APIENTRYP PFNGLSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); -typedef void (GL_APIENTRYP PFNGLSHADINGRATESAMPLEORDERNVPROC) (GLenum order); -typedef void (GL_APIENTRYP PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC) (GLenum rate, GLuint samples, const GLint *locations); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBindShadingRateImageNV (GLuint texture); -GL_APICALL void GL_APIENTRY glGetShadingRateImagePaletteNV (GLuint viewport, GLuint entry, GLenum *rate); -GL_APICALL void GL_APIENTRY glGetShadingRateSampleLocationivNV (GLenum rate, GLuint samples, GLuint index, GLint *location); -GL_APICALL void GL_APIENTRY glShadingRateImageBarrierNV (GLboolean synchronize); -GL_APICALL void GL_APIENTRY glShadingRateImagePaletteNV (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); -GL_APICALL void GL_APIENTRY glShadingRateSampleOrderNV (GLenum order); -GL_APICALL void GL_APIENTRY glShadingRateSampleOrderCustomNV (GLenum rate, GLuint samples, const GLint *locations); -#endif -#endif /* GL_NV_shading_rate_image */ - -#ifndef GL_NV_shadow_samplers_array -#define GL_NV_shadow_samplers_array 1 -#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 -#endif /* GL_NV_shadow_samplers_array */ - -#ifndef GL_NV_shadow_samplers_cube -#define GL_NV_shadow_samplers_cube 1 -#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 -#endif /* GL_NV_shadow_samplers_cube */ - -#ifndef GL_NV_stereo_view_rendering -#define GL_NV_stereo_view_rendering 1 -#endif /* GL_NV_stereo_view_rendering */ - -#ifndef GL_NV_texture_border_clamp -#define GL_NV_texture_border_clamp 1 -#define GL_TEXTURE_BORDER_COLOR_NV 0x1004 -#define GL_CLAMP_TO_BORDER_NV 0x812D -#endif /* GL_NV_texture_border_clamp */ - -#ifndef GL_NV_texture_compression_s3tc_update -#define GL_NV_texture_compression_s3tc_update 1 -#endif /* GL_NV_texture_compression_s3tc_update */ - -#ifndef GL_NV_texture_npot_2D_mipmap -#define GL_NV_texture_npot_2D_mipmap 1 -#endif /* GL_NV_texture_npot_2D_mipmap */ - -#ifndef GL_NV_timeline_semaphore -#define GL_NV_timeline_semaphore 1 -#define GL_TIMELINE_SEMAPHORE_VALUE_NV 0x9595 -#define GL_SEMAPHORE_TYPE_NV 0x95B3 -#define GL_SEMAPHORE_TYPE_BINARY_NV 0x95B4 -#define GL_SEMAPHORE_TYPE_TIMELINE_NV 0x95B5 -#define GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6 -typedef void (GL_APIENTRYP PFNGLCREATESEMAPHORESNVPROC) (GLsizei n, GLuint *semaphores); -typedef void (GL_APIENTRYP PFNGLSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCreateSemaphoresNV (GLsizei n, GLuint *semaphores); -GL_APICALL void GL_APIENTRY glSemaphoreParameterivNV (GLuint semaphore, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glGetSemaphoreParameterivNV (GLuint semaphore, GLenum pname, GLint *params); -#endif -#endif /* GL_NV_timeline_semaphore */ - -#ifndef GL_NV_viewport_array -#define GL_NV_viewport_array 1 -#define GL_MAX_VIEWPORTS_NV 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS_NV 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE_NV 0x825D -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV 0x825F -typedef void (GL_APIENTRYP PFNGLVIEWPORTARRAYVNVPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFVNVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLSCISSORARRAYVNVPROC) (GLuint first, GLsizei count, const GLint *v); -typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDNVPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDVNVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEARRAYFVNVPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEINDEXEDFNVPROC) (GLuint index, GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLGETFLOATI_VNVPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLENABLEINVPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEINVPROC) (GLenum target, GLuint index); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDINVPROC) (GLenum target, GLuint index); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glViewportArrayvNV (GLuint first, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glViewportIndexedfNV (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -GL_APICALL void GL_APIENTRY glViewportIndexedfvNV (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glScissorArrayvNV (GLuint first, GLsizei count, const GLint *v); -GL_APICALL void GL_APIENTRY glScissorIndexedNV (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glScissorIndexedvNV (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glDepthRangeArrayfvNV (GLuint first, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glDepthRangeIndexedfNV (GLuint index, GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glGetFloati_vNV (GLenum target, GLuint index, GLfloat *data); -GL_APICALL void GL_APIENTRY glEnableiNV (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisableiNV (GLenum target, GLuint index); -GL_APICALL GLboolean GL_APIENTRY glIsEnablediNV (GLenum target, GLuint index); -#endif -#endif /* GL_NV_viewport_array */ - -#ifndef GL_NV_viewport_array2 -#define GL_NV_viewport_array2 1 -#endif /* GL_NV_viewport_array2 */ - -#ifndef GL_NV_viewport_swizzle -#define GL_NV_viewport_swizzle 1 -#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350 -#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351 -#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352 -#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353 -#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354 -#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355 -#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356 -#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357 -#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358 -#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359 -#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A -#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B -typedef void (GL_APIENTRYP PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glViewportSwizzleNV (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); -#endif -#endif /* GL_NV_viewport_swizzle */ - -#ifndef GL_OVR_multiview -#define GL_OVR_multiview 1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632 -#define GL_MAX_VIEWS_OVR 0x9631 -#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); -#endif -#endif /* GL_OVR_multiview */ - -#ifndef GL_OVR_multiview2 -#define GL_OVR_multiview2 1 -#endif /* GL_OVR_multiview2 */ - -#ifndef GL_OVR_multiview_multisampled_render_to_texture -#define GL_OVR_multiview_multisampled_render_to_texture 1 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTextureMultisampleMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews); -#endif -#endif /* GL_OVR_multiview_multisampled_render_to_texture */ - -#ifndef GL_QCOM_YUV_texture_gather -#define GL_QCOM_YUV_texture_gather 1 -#endif /* GL_QCOM_YUV_texture_gather */ - -#ifndef GL_QCOM_alpha_test -#define GL_QCOM_alpha_test 1 -#define GL_ALPHA_TEST_QCOM 0x0BC0 -#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 -#define GL_ALPHA_TEST_REF_QCOM 0x0BC2 -typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref); -#endif -#endif /* GL_QCOM_alpha_test */ - -#ifndef GL_QCOM_binning_control -#define GL_QCOM_binning_control 1 -#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 -#define GL_CPU_OPTIMIZED_QCOM 0x8FB1 -#define GL_GPU_OPTIMIZED_QCOM 0x8FB2 -#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 -#endif /* GL_QCOM_binning_control */ - -#ifndef GL_QCOM_driver_control -#define GL_QCOM_driver_control 1 -typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); -typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); -typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); -typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); -GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); -GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); -GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); -#endif -#endif /* GL_QCOM_driver_control */ - -#ifndef GL_QCOM_extended_get -#define GL_QCOM_extended_get 1 -#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 -#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 -#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 -#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 -#define GL_TEXTURE_FORMAT_QCOM 0x8BD6 -#define GL_TEXTURE_TYPE_QCOM 0x8BD7 -#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 -#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 -#define GL_TEXTURE_TARGET_QCOM 0x8BDA -#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB -#define GL_STATE_RESTORE 0x8BDC -typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); -typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); -typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); -GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); -GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); -GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); -GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); -GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, void **params); -#endif -#endif /* GL_QCOM_extended_get */ - -#ifndef GL_QCOM_extended_get2 -#define GL_QCOM_extended_get2 1 -typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); -typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); -typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); -GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); -GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); -GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); -#endif -#endif /* GL_QCOM_extended_get2 */ - -#ifndef GL_QCOM_frame_extrapolation -#define GL_QCOM_frame_extrapolation 1 -typedef void (GL_APIENTRYP PFNGLEXTRAPOLATETEX2DQCOMPROC) (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glExtrapolateTex2DQCOM (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor); -#endif -#endif /* GL_QCOM_frame_extrapolation */ - -#ifndef GL_QCOM_framebuffer_foveated -#define GL_QCOM_framebuffer_foveated 1 -#define GL_FOVEATION_ENABLE_BIT_QCOM 0x00000001 -#define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x00000002 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC) (GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint *providedFeatures); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC) (GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferFoveationConfigQCOM (GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint *providedFeatures); -GL_APICALL void GL_APIENTRY glFramebufferFoveationParametersQCOM (GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); -#endif -#endif /* GL_QCOM_framebuffer_foveated */ - -#ifndef GL_QCOM_motion_estimation -#define GL_QCOM_motion_estimation 1 -#define GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM 0x8C90 -#define GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM 0x8C91 -typedef void (GL_APIENTRYP PFNGLTEXESTIMATEMOTIONQCOMPROC) (GLuint ref, GLuint target, GLuint output); -typedef void (GL_APIENTRYP PFNGLTEXESTIMATEMOTIONREGIONSQCOMPROC) (GLuint ref, GLuint target, GLuint output, GLuint mask); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexEstimateMotionQCOM (GLuint ref, GLuint target, GLuint output); -GL_APICALL void GL_APIENTRY glTexEstimateMotionRegionsQCOM (GLuint ref, GLuint target, GLuint output, GLuint mask); -#endif -#endif /* GL_QCOM_motion_estimation */ - -#ifndef GL_QCOM_perfmon_global_mode -#define GL_QCOM_perfmon_global_mode 1 -#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 -#endif /* GL_QCOM_perfmon_global_mode */ - -#ifndef GL_QCOM_render_shared_exponent -#define GL_QCOM_render_shared_exponent 1 -#endif /* GL_QCOM_render_shared_exponent */ - -#ifndef GL_QCOM_shader_framebuffer_fetch_noncoherent -#define GL_QCOM_shader_framebuffer_fetch_noncoherent 1 -#define GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM 0x96A2 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferFetchBarrierQCOM (void); -#endif -#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ - -#ifndef GL_QCOM_shader_framebuffer_fetch_rate -#define GL_QCOM_shader_framebuffer_fetch_rate 1 -#endif /* GL_QCOM_shader_framebuffer_fetch_rate */ - -#ifndef GL_QCOM_shading_rate -#define GL_QCOM_shading_rate 1 -#define GL_SHADING_RATE_QCOM 0x96A4 -#define GL_SHADING_RATE_PRESERVE_ASPECT_RATIO_QCOM 0x96A5 -#define GL_SHADING_RATE_1X1_PIXELS_QCOM 0x96A6 -#define GL_SHADING_RATE_1X2_PIXELS_QCOM 0x96A7 -#define GL_SHADING_RATE_2X1_PIXELS_QCOM 0x96A8 -#define GL_SHADING_RATE_2X2_PIXELS_QCOM 0x96A9 -#define GL_SHADING_RATE_4X2_PIXELS_QCOM 0x96AC -#define GL_SHADING_RATE_4X4_PIXELS_QCOM 0x96AE -typedef void (GL_APIENTRYP PFNGLSHADINGRATEQCOMPROC) (GLenum rate); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glShadingRateQCOM (GLenum rate); -#endif -#endif /* GL_QCOM_shading_rate */ - -#ifndef GL_QCOM_texture_foveated -#define GL_QCOM_texture_foveated 1 -#define GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM 0x8BFB -#define GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM 0x8BFC -#define GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM 0x8BFD -#define GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM 0x8BFE -#define GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM 0x8BFF -typedef void (GL_APIENTRYP PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC) (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTextureFoveationParametersQCOM (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); -#endif -#endif /* GL_QCOM_texture_foveated */ - -#ifndef GL_QCOM_texture_foveated2 -#define GL_QCOM_texture_foveated2 1 -#define GL_TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM 0x96A0 -#endif /* GL_QCOM_texture_foveated2 */ - -#ifndef GL_QCOM_texture_foveated_subsampled_layout -#define GL_QCOM_texture_foveated_subsampled_layout 1 -#define GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM 0x00000004 -#define GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM 0x8FA1 -#endif /* GL_QCOM_texture_foveated_subsampled_layout */ - -#ifndef GL_QCOM_tiled_rendering -#define GL_QCOM_tiled_rendering 1 -#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 -#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 -#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 -#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 -#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 -#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 -#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 -#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 -#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 -#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 -#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 -#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 -#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 -#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 -#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 -#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 -#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 -#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 -#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 -#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 -#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 -#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 -#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 -#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 -#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 -#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 -#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 -#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 -#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 -#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 -#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 -#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 -typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); -typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); -GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); -#endif -#endif /* GL_QCOM_tiled_rendering */ - -#ifndef GL_QCOM_writeonly_rendering -#define GL_QCOM_writeonly_rendering 1 -#define GL_WRITEONLY_RENDERING_QCOM 0x8823 -#endif /* GL_QCOM_writeonly_rendering */ - -#ifndef GL_VIV_shader_binary -#define GL_VIV_shader_binary 1 -#define GL_SHADER_BINARY_VIV 0x8FC4 -#endif /* GL_VIV_shader_binary */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/windows/include/SDL_opengles2_gl2platform.h b/lib/windows/include/SDL_opengles2_gl2platform.h deleted file mode 100644 index 426796e..0000000 --- a/lib/windows/include/SDL_opengles2_gl2platform.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __gl2platform_h_ -#define __gl2platform_h_ - -/* -** Copyright 2017-2020 The Khronos Group Inc. -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* Platform-specific types and definitions for OpenGL ES 2.X gl2.h - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * Please contribute modifications back to Khronos as pull requests on the - * public github repository: - * https://github.com/KhronosGroup/OpenGL-Registry - */ - -/*#include <KHR/khrplatform.h>*/ - -#ifndef GL_APICALL -#define GL_APICALL KHRONOS_APICALL -#endif - -#ifndef GL_APIENTRY -#define GL_APIENTRY KHRONOS_APIENTRY -#endif - -#endif /* __gl2platform_h_ */ diff --git a/lib/windows/include/SDL_opengles2_khrplatform.h b/lib/windows/include/SDL_opengles2_khrplatform.h deleted file mode 100644 index 0164644..0000000 --- a/lib/windows/include/SDL_opengles2_khrplatform.h +++ /dev/null @@ -1,311 +0,0 @@ -#ifndef __khrplatform_h_ -#define __khrplatform_h_ - -/* -** Copyright (c) 2008-2018 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Khronos platform-specific types and definitions. - * - * The master copy of khrplatform.h is maintained in the Khronos EGL - * Registry repository at https://github.com/KhronosGroup/EGL-Registry - * The last semantic modification to khrplatform.h was at commit ID: - * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 - * - * Adopters may modify this file to suit their platform. Adopters are - * encouraged to submit platform specific modifications to the Khronos - * group so that they can be included in future versions of this file. - * Please submit changes by filing pull requests or issues on - * the EGL Registry repository linked above. - * - * - * See the Implementer's Guidelines for information about where this file - * should be located on your system and for more details of its use: - * http://www.khronos.org/registry/implementers_guide.pdf - * - * This file should be included as - * #include <KHR/khrplatform.h> - * by Khronos client API header files that use its types and defines. - * - * The types in khrplatform.h should only be used to define API-specific types. - * - * Types defined in khrplatform.h: - * khronos_int8_t signed 8 bit - * khronos_uint8_t unsigned 8 bit - * khronos_int16_t signed 16 bit - * khronos_uint16_t unsigned 16 bit - * khronos_int32_t signed 32 bit - * khronos_uint32_t unsigned 32 bit - * khronos_int64_t signed 64 bit - * khronos_uint64_t unsigned 64 bit - * khronos_intptr_t signed same number of bits as a pointer - * khronos_uintptr_t unsigned same number of bits as a pointer - * khronos_ssize_t signed size - * khronos_usize_t unsigned size - * khronos_float_t signed 32 bit floating point - * khronos_time_ns_t unsigned 64 bit time in nanoseconds - * khronos_utime_nanoseconds_t unsigned time interval or absolute time in - * nanoseconds - * khronos_stime_nanoseconds_t signed time interval in nanoseconds - * khronos_boolean_enum_t enumerated boolean type. This should - * only be used as a base type when a client API's boolean type is - * an enum. Client APIs which use an integer or other type for - * booleans cannot use this as the base type for their boolean. - * - * Tokens defined in khrplatform.h: - * - * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. - * - * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. - * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. - * - * Calling convention macros defined in this file: - * KHRONOS_APICALL - * KHRONOS_APIENTRY - * KHRONOS_APIATTRIBUTES - * - * These may be used in function prototypes as: - * - * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( - * int arg1, - * int arg2) KHRONOS_APIATTRIBUTES; - */ - -#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) -# define KHRONOS_STATIC 1 -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APICALL - *------------------------------------------------------------------------- - * This precedes the return type of the function in the function prototype. - */ -#if defined(KHRONOS_STATIC) - /* If the preprocessor constant KHRONOS_STATIC is defined, make the - * header compatible with static linking. */ -# define KHRONOS_APICALL -#elif defined(_WIN32) -# define KHRONOS_APICALL __declspec(dllimport) -#elif defined (__SYMBIAN32__) -# define KHRONOS_APICALL IMPORT_C -#elif defined(__ANDROID__) -# define KHRONOS_APICALL __attribute__((visibility("default"))) -#else -# define KHRONOS_APICALL -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIENTRY - *------------------------------------------------------------------------- - * This follows the return type of the function and precedes the function - * name in the function prototype. - */ -#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) - /* Win32 but not WinCE */ -# define KHRONOS_APIENTRY __stdcall -#else -# define KHRONOS_APIENTRY -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIATTRIBUTES - *------------------------------------------------------------------------- - * This follows the closing parenthesis of the function prototype arguments. - */ -#if defined (__ARMCC_2__) -#define KHRONOS_APIATTRIBUTES __softfp -#else -#define KHRONOS_APIATTRIBUTES -#endif - -/*------------------------------------------------------------------------- - * basic type definitions - *-----------------------------------------------------------------------*/ -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) - - -/* - * Using <stdint.h> - */ -#include <stdint.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 -/* - * To support platform where unsigned long cannot be used interchangeably with - * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t. - * Ideally, we could just use (u)intptr_t everywhere, but this could result in - * ABI breakage if khronos_uintptr_t is changed from unsigned long to - * unsigned long long or similar (this results in different C++ name mangling). - * To avoid changes for existing platforms, we restrict usage of intptr_t to - * platforms where the size of a pointer is larger than the size of long. - */ -#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__) -#if __SIZEOF_POINTER__ > __SIZEOF_LONG__ -#define KHRONOS_USE_INTPTR_T -#endif -#endif - -#elif defined(__VMS ) || defined(__sgi) - -/* - * Using <inttypes.h> - */ -#include <inttypes.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) - -/* - * Win32 - */ -typedef __int32 khronos_int32_t; -typedef unsigned __int32 khronos_uint32_t; -typedef __int64 khronos_int64_t; -typedef unsigned __int64 khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__sun__) || defined(__digital__) - -/* - * Sun or Digital - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#if defined(__arch64__) || defined(_LP64) -typedef long int khronos_int64_t; -typedef unsigned long int khronos_uint64_t; -#else -typedef long long int khronos_int64_t; -typedef unsigned long long int khronos_uint64_t; -#endif /* __arch64__ */ -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif 0 - -/* - * Hypothetical platform with no float or int64 support - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#define KHRONOS_SUPPORT_INT64 0 -#define KHRONOS_SUPPORT_FLOAT 0 - -#else - -/* - * Generic fallback - */ -#include <stdint.h> -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#endif - - -/* - * Types that are (so far) the same on all platforms - */ -typedef signed char khronos_int8_t; -typedef unsigned char khronos_uint8_t; -typedef signed short int khronos_int16_t; -typedef unsigned short int khronos_uint16_t; - -/* - * Types that differ between LLP64 and LP64 architectures - in LLP64, - * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears - * to be the only LLP64 architecture in current use. - */ -#ifdef KHRONOS_USE_INTPTR_T -typedef intptr_t khronos_intptr_t; -typedef uintptr_t khronos_uintptr_t; -#elif defined(_WIN64) -typedef signed long long int khronos_intptr_t; -typedef unsigned long long int khronos_uintptr_t; -#else -typedef signed long int khronos_intptr_t; -typedef unsigned long int khronos_uintptr_t; -#endif - -#if defined(_WIN64) -typedef signed long long int khronos_ssize_t; -typedef unsigned long long int khronos_usize_t; -#else -typedef signed long int khronos_ssize_t; -typedef unsigned long int khronos_usize_t; -#endif - -#if KHRONOS_SUPPORT_FLOAT -/* - * Float type - */ -typedef float khronos_float_t; -#endif - -#if KHRONOS_SUPPORT_INT64 -/* Time types - * - * These types can be used to represent a time interval in nanoseconds or - * an absolute Unadjusted System Time. Unadjusted System Time is the number - * of nanoseconds since some arbitrary system event (e.g. since the last - * time the system booted). The Unadjusted System Time is an unsigned - * 64 bit value that wraps back to 0 every 584 years. Time intervals - * may be either signed or unsigned. - */ -typedef khronos_uint64_t khronos_utime_nanoseconds_t; -typedef khronos_int64_t khronos_stime_nanoseconds_t; -#endif - -/* - * Dummy value used to pad enum types to 32 bits. - */ -#ifndef KHRONOS_MAX_ENUM -#define KHRONOS_MAX_ENUM 0x7FFFFFFF -#endif - -/* - * Enumerated boolean type - * - * Values other than zero should be considered to be true. Therefore - * comparisons should not be made against KHRONOS_TRUE. - */ -typedef enum { - KHRONOS_FALSE = 0, - KHRONOS_TRUE = 1, - KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM -} khronos_boolean_enum_t; - -#endif /* __khrplatform_h_ */ diff --git a/lib/windows/include/SDL_pixels.h b/lib/windows/include/SDL_pixels.h deleted file mode 100644 index 9abd57b..0000000 --- a/lib/windows/include/SDL_pixels.h +++ /dev/null @@ -1,644 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_pixels.h - * - * Header for the enumerated pixel format definitions. - */ - -#ifndef SDL_pixels_h_ -#define SDL_pixels_h_ - -#include "SDL_stdinc.h" -#include "SDL_endian.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \name Transparency definitions - * - * These define alpha as the opacity of a surface. - */ -/* @{ */ -#define SDL_ALPHA_OPAQUE 255 -#define SDL_ALPHA_TRANSPARENT 0 -/* @} */ - -/** Pixel type. */ -typedef enum -{ - SDL_PIXELTYPE_UNKNOWN, - SDL_PIXELTYPE_INDEX1, - SDL_PIXELTYPE_INDEX4, - SDL_PIXELTYPE_INDEX8, - SDL_PIXELTYPE_PACKED8, - SDL_PIXELTYPE_PACKED16, - SDL_PIXELTYPE_PACKED32, - SDL_PIXELTYPE_ARRAYU8, - SDL_PIXELTYPE_ARRAYU16, - SDL_PIXELTYPE_ARRAYU32, - SDL_PIXELTYPE_ARRAYF16, - SDL_PIXELTYPE_ARRAYF32 -} SDL_PixelType; - -/** Bitmap pixel order, high bit -> low bit. */ -typedef enum -{ - SDL_BITMAPORDER_NONE, - SDL_BITMAPORDER_4321, - SDL_BITMAPORDER_1234 -} SDL_BitmapOrder; - -/** Packed component order, high bit -> low bit. */ -typedef enum -{ - SDL_PACKEDORDER_NONE, - SDL_PACKEDORDER_XRGB, - SDL_PACKEDORDER_RGBX, - SDL_PACKEDORDER_ARGB, - SDL_PACKEDORDER_RGBA, - SDL_PACKEDORDER_XBGR, - SDL_PACKEDORDER_BGRX, - SDL_PACKEDORDER_ABGR, - SDL_PACKEDORDER_BGRA -} SDL_PackedOrder; - -/** Array component order, low byte -> high byte. */ -/* !!! FIXME: in 2.1, make these not overlap differently with - !!! FIXME: SDL_PACKEDORDER_*, so we can simplify SDL_ISPIXELFORMAT_ALPHA */ -typedef enum -{ - SDL_ARRAYORDER_NONE, - SDL_ARRAYORDER_RGB, - SDL_ARRAYORDER_RGBA, - SDL_ARRAYORDER_ARGB, - SDL_ARRAYORDER_BGR, - SDL_ARRAYORDER_BGRA, - SDL_ARRAYORDER_ABGR -} SDL_ArrayOrder; - -/** Packed component layout. */ -typedef enum -{ - SDL_PACKEDLAYOUT_NONE, - SDL_PACKEDLAYOUT_332, - SDL_PACKEDLAYOUT_4444, - SDL_PACKEDLAYOUT_1555, - SDL_PACKEDLAYOUT_5551, - SDL_PACKEDLAYOUT_565, - SDL_PACKEDLAYOUT_8888, - SDL_PACKEDLAYOUT_2101010, - SDL_PACKEDLAYOUT_1010102 -} SDL_PackedLayout; - -#define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D) - -#define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \ - ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \ - ((bits) << 8) | ((bytes) << 0)) - -#define SDL_PIXELFLAG(X) (((X) >> 28) & 0x0F) -#define SDL_PIXELTYPE(X) (((X) >> 24) & 0x0F) -#define SDL_PIXELORDER(X) (((X) >> 20) & 0x0F) -#define SDL_PIXELLAYOUT(X) (((X) >> 16) & 0x0F) -#define SDL_BITSPERPIXEL(X) (((X) >> 8) & 0xFF) -#define SDL_BYTESPERPIXEL(X) \ - (SDL_ISPIXELFORMAT_FOURCC(X) ? \ - ((((X) == SDL_PIXELFORMAT_YUY2) || \ - ((X) == SDL_PIXELFORMAT_UYVY) || \ - ((X) == SDL_PIXELFORMAT_YVYU)) ? 2 : 1) : (((X) >> 0) & 0xFF)) - -#define SDL_ISPIXELFORMAT_INDEXED(format) \ - (!SDL_ISPIXELFORMAT_FOURCC(format) && \ - ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX1) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX4) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX8))) - -#define SDL_ISPIXELFORMAT_PACKED(format) \ - (!SDL_ISPIXELFORMAT_FOURCC(format) && \ - ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED8) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED16) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED32))) - -#define SDL_ISPIXELFORMAT_ARRAY(format) \ - (!SDL_ISPIXELFORMAT_FOURCC(format) && \ - ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU8) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU16) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU32) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF16) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF32))) - -#define SDL_ISPIXELFORMAT_ALPHA(format) \ - ((SDL_ISPIXELFORMAT_PACKED(format) && \ - ((SDL_PIXELORDER(format) == SDL_PACKEDORDER_ARGB) || \ - (SDL_PIXELORDER(format) == SDL_PACKEDORDER_RGBA) || \ - (SDL_PIXELORDER(format) == SDL_PACKEDORDER_ABGR) || \ - (SDL_PIXELORDER(format) == SDL_PACKEDORDER_BGRA))) || \ - (SDL_ISPIXELFORMAT_ARRAY(format) && \ - ((SDL_PIXELORDER(format) == SDL_ARRAYORDER_ARGB) || \ - (SDL_PIXELORDER(format) == SDL_ARRAYORDER_RGBA) || \ - (SDL_PIXELORDER(format) == SDL_ARRAYORDER_ABGR) || \ - (SDL_PIXELORDER(format) == SDL_ARRAYORDER_BGRA)))) - -/* The flag is set to 1 because 0x1? is not in the printable ASCII range */ -#define SDL_ISPIXELFORMAT_FOURCC(format) \ - ((format) && (SDL_PIXELFLAG(format) != 1)) - -/* Note: If you modify this list, update SDL_GetPixelFormatName() */ -typedef enum -{ - SDL_PIXELFORMAT_UNKNOWN, - SDL_PIXELFORMAT_INDEX1LSB = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_4321, 0, - 1, 0), - SDL_PIXELFORMAT_INDEX1MSB = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_1234, 0, - 1, 0), - SDL_PIXELFORMAT_INDEX4LSB = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_4321, 0, - 4, 0), - SDL_PIXELFORMAT_INDEX4MSB = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_1234, 0, - 4, 0), - SDL_PIXELFORMAT_INDEX8 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX8, 0, 0, 8, 1), - SDL_PIXELFORMAT_RGB332 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED8, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_332, 8, 1), - SDL_PIXELFORMAT_XRGB4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_4444, 12, 2), - SDL_PIXELFORMAT_RGB444 = SDL_PIXELFORMAT_XRGB4444, - SDL_PIXELFORMAT_XBGR4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_4444, 12, 2), - SDL_PIXELFORMAT_BGR444 = SDL_PIXELFORMAT_XBGR4444, - SDL_PIXELFORMAT_XRGB1555 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_1555, 15, 2), - SDL_PIXELFORMAT_RGB555 = SDL_PIXELFORMAT_XRGB1555, - SDL_PIXELFORMAT_XBGR1555 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_1555, 15, 2), - SDL_PIXELFORMAT_BGR555 = SDL_PIXELFORMAT_XBGR1555, - SDL_PIXELFORMAT_ARGB4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_RGBA4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, - SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_ABGR4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, - SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_BGRA4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, - SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_ARGB1555 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_1555, 16, 2), - SDL_PIXELFORMAT_RGBA5551 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, - SDL_PACKEDLAYOUT_5551, 16, 2), - SDL_PIXELFORMAT_ABGR1555 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, - SDL_PACKEDLAYOUT_1555, 16, 2), - SDL_PIXELFORMAT_BGRA5551 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, - SDL_PACKEDLAYOUT_5551, 16, 2), - SDL_PIXELFORMAT_RGB565 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_565, 16, 2), - SDL_PIXELFORMAT_BGR565 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_565, 16, 2), - SDL_PIXELFORMAT_RGB24 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_RGB, 0, - 24, 3), - SDL_PIXELFORMAT_BGR24 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_BGR, 0, - 24, 3), - SDL_PIXELFORMAT_XRGB8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_8888, 24, 4), - SDL_PIXELFORMAT_RGB888 = SDL_PIXELFORMAT_XRGB8888, - SDL_PIXELFORMAT_RGBX8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBX, - SDL_PACKEDLAYOUT_8888, 24, 4), - SDL_PIXELFORMAT_XBGR8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_8888, 24, 4), - SDL_PIXELFORMAT_BGR888 = SDL_PIXELFORMAT_XBGR8888, - SDL_PIXELFORMAT_BGRX8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRX, - SDL_PACKEDLAYOUT_8888, 24, 4), - SDL_PIXELFORMAT_ARGB8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_8888, 32, 4), - SDL_PIXELFORMAT_RGBA8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBA, - SDL_PACKEDLAYOUT_8888, 32, 4), - SDL_PIXELFORMAT_ABGR8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ABGR, - SDL_PACKEDLAYOUT_8888, 32, 4), - SDL_PIXELFORMAT_BGRA8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRA, - SDL_PACKEDLAYOUT_8888, 32, 4), - SDL_PIXELFORMAT_ARGB2101010 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_2101010, 32, 4), - - /* Aliases for RGBA byte arrays of color data, for the current platform */ -#if SDL_BYTEORDER == SDL_BIG_ENDIAN - SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_RGBA8888, - SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_ARGB8888, - SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_BGRA8888, - SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_ABGR8888, -#else - SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_ABGR8888, - SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_BGRA8888, - SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_ARGB8888, - SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_RGBA8888, -#endif - - SDL_PIXELFORMAT_YV12 = /**< Planar mode: Y + V + U (3 planes) */ - SDL_DEFINE_PIXELFOURCC('Y', 'V', '1', '2'), - SDL_PIXELFORMAT_IYUV = /**< Planar mode: Y + U + V (3 planes) */ - SDL_DEFINE_PIXELFOURCC('I', 'Y', 'U', 'V'), - SDL_PIXELFORMAT_YUY2 = /**< Packed mode: Y0+U0+Y1+V0 (1 plane) */ - SDL_DEFINE_PIXELFOURCC('Y', 'U', 'Y', '2'), - SDL_PIXELFORMAT_UYVY = /**< Packed mode: U0+Y0+V0+Y1 (1 plane) */ - SDL_DEFINE_PIXELFOURCC('U', 'Y', 'V', 'Y'), - SDL_PIXELFORMAT_YVYU = /**< Packed mode: Y0+V0+Y1+U0 (1 plane) */ - SDL_DEFINE_PIXELFOURCC('Y', 'V', 'Y', 'U'), - SDL_PIXELFORMAT_NV12 = /**< Planar mode: Y + U/V interleaved (2 planes) */ - SDL_DEFINE_PIXELFOURCC('N', 'V', '1', '2'), - SDL_PIXELFORMAT_NV21 = /**< Planar mode: Y + V/U interleaved (2 planes) */ - SDL_DEFINE_PIXELFOURCC('N', 'V', '2', '1'), - SDL_PIXELFORMAT_EXTERNAL_OES = /**< Android video texture format */ - SDL_DEFINE_PIXELFOURCC('O', 'E', 'S', ' ') -} SDL_PixelFormatEnum; - -/** - * The bits of this structure can be directly reinterpreted as an integer-packed - * color which uses the SDL_PIXELFORMAT_RGBA32 format (SDL_PIXELFORMAT_ABGR8888 - * on little-endian systems and SDL_PIXELFORMAT_RGBA8888 on big-endian systems). - */ -typedef struct SDL_Color -{ - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -} SDL_Color; -#define SDL_Colour SDL_Color - -typedef struct SDL_Palette -{ - int ncolors; - SDL_Color *colors; - Uint32 version; - int refcount; -} SDL_Palette; - -/** - * \note Everything in the pixel format structure is read-only. - */ -typedef struct SDL_PixelFormat -{ - Uint32 format; - SDL_Palette *palette; - Uint8 BitsPerPixel; - Uint8 BytesPerPixel; - Uint8 padding[2]; - Uint32 Rmask; - Uint32 Gmask; - Uint32 Bmask; - Uint32 Amask; - Uint8 Rloss; - Uint8 Gloss; - Uint8 Bloss; - Uint8 Aloss; - Uint8 Rshift; - Uint8 Gshift; - Uint8 Bshift; - Uint8 Ashift; - int refcount; - struct SDL_PixelFormat *next; -} SDL_PixelFormat; - -/** - * Get the human readable name of a pixel format. - * - * \param format the pixel format to query - * \returns the human readable name of the specified pixel format or - * `SDL_PIXELFORMAT_UNKNOWN` if the format isn't recognized. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC const char* SDLCALL SDL_GetPixelFormatName(Uint32 format); - -/** - * Convert one of the enumerated pixel formats to a bpp value and RGBA masks. - * - * \param format one of the SDL_PixelFormatEnum values - * \param bpp a bits per pixel value; usually 15, 16, or 32 - * \param Rmask a pointer filled in with the red mask for the format - * \param Gmask a pointer filled in with the green mask for the format - * \param Bmask a pointer filled in with the blue mask for the format - * \param Amask a pointer filled in with the alpha mask for the format - * \returns SDL_TRUE on success or SDL_FALSE if the conversion wasn't - * possible; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_MasksToPixelFormatEnum - */ -extern DECLSPEC SDL_bool SDLCALL SDL_PixelFormatEnumToMasks(Uint32 format, - int *bpp, - Uint32 * Rmask, - Uint32 * Gmask, - Uint32 * Bmask, - Uint32 * Amask); - -/** - * Convert a bpp value and RGBA masks to an enumerated pixel format. - * - * This will return `SDL_PIXELFORMAT_UNKNOWN` if the conversion wasn't - * possible. - * - * \param bpp a bits per pixel value; usually 15, 16, or 32 - * \param Rmask the red mask for the format - * \param Gmask the green mask for the format - * \param Bmask the blue mask for the format - * \param Amask the alpha mask for the format - * \returns one of the SDL_PixelFormatEnum values - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PixelFormatEnumToMasks - */ -extern DECLSPEC Uint32 SDLCALL SDL_MasksToPixelFormatEnum(int bpp, - Uint32 Rmask, - Uint32 Gmask, - Uint32 Bmask, - Uint32 Amask); - -/** - * Create an SDL_PixelFormat structure corresponding to a pixel format. - * - * Returned structure may come from a shared global cache (i.e. not newly - * allocated), and hence should not be modified, especially the palette. Weird - * errors such as `Blit combination not supported` may occur. - * - * \param pixel_format one of the SDL_PixelFormatEnum values - * \returns the new SDL_PixelFormat structure or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreeFormat - */ -extern DECLSPEC SDL_PixelFormat * SDLCALL SDL_AllocFormat(Uint32 pixel_format); - -/** - * Free an SDL_PixelFormat structure allocated by SDL_AllocFormat(). - * - * \param format the SDL_PixelFormat structure to free - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocFormat - */ -extern DECLSPEC void SDLCALL SDL_FreeFormat(SDL_PixelFormat *format); - -/** - * Create a palette structure with the specified number of color entries. - * - * The palette entries are initialized to white. - * - * \param ncolors represents the number of color entries in the color palette - * \returns a new SDL_Palette structure on success or NULL on failure (e.g. if - * there wasn't enough memory); call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreePalette - */ -extern DECLSPEC SDL_Palette *SDLCALL SDL_AllocPalette(int ncolors); - -/** - * Set the palette for a pixel format structure. - * - * \param format the SDL_PixelFormat structure that will use the palette - * \param palette the SDL_Palette structure that will be used - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocPalette - * \sa SDL_FreePalette - */ -extern DECLSPEC int SDLCALL SDL_SetPixelFormatPalette(SDL_PixelFormat * format, - SDL_Palette *palette); - -/** - * Set a range of colors in a palette. - * - * \param palette the SDL_Palette structure to modify - * \param colors an array of SDL_Color structures to copy into the palette - * \param firstcolor the index of the first palette entry to modify - * \param ncolors the number of entries to modify - * \returns 0 on success or a negative error code if not all of the colors - * could be set; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocPalette - * \sa SDL_CreateRGBSurface - */ -extern DECLSPEC int SDLCALL SDL_SetPaletteColors(SDL_Palette * palette, - const SDL_Color * colors, - int firstcolor, int ncolors); - -/** - * Free a palette created with SDL_AllocPalette(). - * - * \param palette the SDL_Palette structure to be freed - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocPalette - */ -extern DECLSPEC void SDLCALL SDL_FreePalette(SDL_Palette * palette); - -/** - * Map an RGB triple to an opaque pixel value for a given pixel format. - * - * This function maps the RGB color value to the specified pixel format and - * returns the pixel value best approximating the given RGB color value for - * the given pixel format. - * - * If the format has a palette (8-bit) the index of the closest matching color - * in the palette will be returned. - * - * If the specified pixel format has an alpha component it will be returned as - * all 1 bits (fully opaque). - * - * If the pixel format bpp (color depth) is less than 32-bpp then the unused - * upper bits of the return value can safely be ignored (e.g., with a 16-bpp - * format the return value can be assigned to a Uint16, and similarly a Uint8 - * for an 8-bpp format). - * - * \param format an SDL_PixelFormat structure describing the pixel format - * \param r the red component of the pixel in the range 0-255 - * \param g the green component of the pixel in the range 0-255 - * \param b the blue component of the pixel in the range 0-255 - * \returns a pixel value - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRGB - * \sa SDL_GetRGBA - * \sa SDL_MapRGBA - */ -extern DECLSPEC Uint32 SDLCALL SDL_MapRGB(const SDL_PixelFormat * format, - Uint8 r, Uint8 g, Uint8 b); - -/** - * Map an RGBA quadruple to a pixel value for a given pixel format. - * - * This function maps the RGBA color value to the specified pixel format and - * returns the pixel value best approximating the given RGBA color value for - * the given pixel format. - * - * If the specified pixel format has no alpha component the alpha value will - * be ignored (as it will be in formats with a palette). - * - * If the format has a palette (8-bit) the index of the closest matching color - * in the palette will be returned. - * - * If the pixel format bpp (color depth) is less than 32-bpp then the unused - * upper bits of the return value can safely be ignored (e.g., with a 16-bpp - * format the return value can be assigned to a Uint16, and similarly a Uint8 - * for an 8-bpp format). - * - * \param format an SDL_PixelFormat structure describing the format of the - * pixel - * \param r the red component of the pixel in the range 0-255 - * \param g the green component of the pixel in the range 0-255 - * \param b the blue component of the pixel in the range 0-255 - * \param a the alpha component of the pixel in the range 0-255 - * \returns a pixel value - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRGB - * \sa SDL_GetRGBA - * \sa SDL_MapRGB - */ -extern DECLSPEC Uint32 SDLCALL SDL_MapRGBA(const SDL_PixelFormat * format, - Uint8 r, Uint8 g, Uint8 b, - Uint8 a); - -/** - * Get RGB values from a pixel in the specified format. - * - * This function uses the entire 8-bit [0..255] range when converting color - * components from pixel formats with less than 8-bits per RGB component - * (e.g., a completely white pixel in 16-bit RGB565 format would return [0xff, - * 0xff, 0xff] not [0xf8, 0xfc, 0xf8]). - * - * \param pixel a pixel value - * \param format an SDL_PixelFormat structure describing the format of the - * pixel - * \param r a pointer filled in with the red component - * \param g a pointer filled in with the green component - * \param b a pointer filled in with the blue component - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRGBA - * \sa SDL_MapRGB - * \sa SDL_MapRGBA - */ -extern DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixel, - const SDL_PixelFormat * format, - Uint8 * r, Uint8 * g, Uint8 * b); - -/** - * Get RGBA values from a pixel in the specified format. - * - * This function uses the entire 8-bit [0..255] range when converting color - * components from pixel formats with less than 8-bits per RGB component - * (e.g., a completely white pixel in 16-bit RGB565 format would return [0xff, - * 0xff, 0xff] not [0xf8, 0xfc, 0xf8]). - * - * If the surface has no alpha component, the alpha will be returned as 0xff - * (100% opaque). - * - * \param pixel a pixel value - * \param format an SDL_PixelFormat structure describing the format of the - * pixel - * \param r a pointer filled in with the red component - * \param g a pointer filled in with the green component - * \param b a pointer filled in with the blue component - * \param a a pointer filled in with the alpha component - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRGB - * \sa SDL_MapRGB - * \sa SDL_MapRGBA - */ -extern DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixel, - const SDL_PixelFormat * format, - Uint8 * r, Uint8 * g, Uint8 * b, - Uint8 * a); - -/** - * Calculate a 256 entry gamma ramp for a gamma value. - * - * \param gamma a gamma value where 0.0 is black and 1.0 is identity - * \param ramp an array of 256 values filled in with the gamma ramp - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowGammaRamp - */ -extern DECLSPEC void SDLCALL SDL_CalculateGammaRamp(float gamma, Uint16 * ramp); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_pixels_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_platform.h b/lib/windows/include/SDL_platform.h deleted file mode 100644 index d2a7e05..0000000 --- a/lib/windows/include/SDL_platform.h +++ /dev/null @@ -1,261 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_platform.h - * - * Try to get a standard set of platform defines. - */ - -#ifndef SDL_platform_h_ -#define SDL_platform_h_ - -#if defined(_AIX) -#undef __AIX__ -#define __AIX__ 1 -#endif -#if defined(__HAIKU__) -#undef __HAIKU__ -#define __HAIKU__ 1 -#endif -#if defined(bsdi) || defined(__bsdi) || defined(__bsdi__) -#undef __BSDI__ -#define __BSDI__ 1 -#endif -#if defined(_arch_dreamcast) -#undef __DREAMCAST__ -#define __DREAMCAST__ 1 -#endif -#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) -#undef __FREEBSD__ -#define __FREEBSD__ 1 -#endif -#if defined(hpux) || defined(__hpux) || defined(__hpux__) -#undef __HPUX__ -#define __HPUX__ 1 -#endif -#if defined(sgi) || defined(__sgi) || defined(__sgi__) || defined(_SGI_SOURCE) -#undef __IRIX__ -#define __IRIX__ 1 -#endif -#if (defined(linux) || defined(__linux) || defined(__linux__)) -#undef __LINUX__ -#define __LINUX__ 1 -#endif -#if defined(ANDROID) || defined(__ANDROID__) -#undef __ANDROID__ -#undef __LINUX__ /* do we need to do this? */ -#define __ANDROID__ 1 -#endif -#if defined(__NGAGE__) -#undef __NGAGE__ -#define __NGAGE__ 1 -#endif - -#if defined(__APPLE__) -/* lets us know what version of Mac OS X we're compiling on */ -#include <AvailabilityMacros.h> -#include <TargetConditionals.h> - -/* Fix building with older SDKs that don't define these - See this for more information: - https://stackoverflow.com/questions/12132933/preprocessor-macro-for-os-x-targets -*/ -#ifndef TARGET_OS_MACCATALYST -#define TARGET_OS_MACCATALYST 0 -#endif -#ifndef TARGET_OS_IOS -#define TARGET_OS_IOS 0 -#endif -#ifndef TARGET_OS_IPHONE -#define TARGET_OS_IPHONE 0 -#endif -#ifndef TARGET_OS_TV -#define TARGET_OS_TV 0 -#endif -#ifndef TARGET_OS_SIMULATOR -#define TARGET_OS_SIMULATOR 0 -#endif - -#if TARGET_OS_TV -#undef __TVOS__ -#define __TVOS__ 1 -#endif -#if TARGET_OS_IPHONE -/* if compiling for iOS */ -#undef __IPHONEOS__ -#define __IPHONEOS__ 1 -#undef __MACOSX__ -#else -/* if not compiling for iOS */ -#undef __MACOSX__ -#define __MACOSX__ 1 -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 -# error SDL for Mac OS X only supports deploying on 10.7 and above. -#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1070 */ -#endif /* TARGET_OS_IPHONE */ -#endif /* defined(__APPLE__) */ - -#if defined(__NetBSD__) -#undef __NETBSD__ -#define __NETBSD__ 1 -#endif -#if defined(__OpenBSD__) -#undef __OPENBSD__ -#define __OPENBSD__ 1 -#endif -#if defined(__OS2__) || defined(__EMX__) -#undef __OS2__ -#define __OS2__ 1 -#endif -#if defined(osf) || defined(__osf) || defined(__osf__) || defined(_OSF_SOURCE) -#undef __OSF__ -#define __OSF__ 1 -#endif -#if defined(__QNXNTO__) -#undef __QNXNTO__ -#define __QNXNTO__ 1 -#endif -#if defined(riscos) || defined(__riscos) || defined(__riscos__) -#undef __RISCOS__ -#define __RISCOS__ 1 -#endif -#if defined(__sun) && defined(__SVR4) -#undef __SOLARIS__ -#define __SOLARIS__ 1 -#endif - -#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) -/* Try to find out if we're compiling for WinRT, GDK or non-WinRT/GDK */ -#if defined(_MSC_VER) && defined(__has_include) -#if __has_include(<winapifamily.h>) -#define HAVE_WINAPIFAMILY_H 1 -#else -#define HAVE_WINAPIFAMILY_H 0 -#endif - -/* If _USING_V110_SDK71_ is defined it means we are using the Windows XP toolset. */ -#elif defined(_MSC_VER) && (_MSC_VER >= 1700 && !_USING_V110_SDK71_) /* _MSC_VER == 1700 for Visual Studio 2012 */ -#define HAVE_WINAPIFAMILY_H 1 -#else -#define HAVE_WINAPIFAMILY_H 0 -#endif - -#if HAVE_WINAPIFAMILY_H -#include <winapifamily.h> -#define WINAPI_FAMILY_WINRT (!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)) -#else -#define WINAPI_FAMILY_WINRT 0 -#endif /* HAVE_WINAPIFAMILY_H */ - -#if WINAPI_FAMILY_WINRT -#undef __WINRT__ -#define __WINRT__ 1 -#elif defined(_GAMING_DESKTOP) /* GDK project configuration always defines _GAMING_XXX */ -#undef __WINGDK__ -#define __WINGDK__ 1 -#elif defined(_GAMING_XBOX_XBOXONE) -#undef __XBOXONE__ -#define __XBOXONE__ 1 -#elif defined(_GAMING_XBOX_SCARLETT) -#undef __XBOXSERIES__ -#define __XBOXSERIES__ 1 -#else -#undef __WINDOWS__ -#define __WINDOWS__ 1 -#endif -#endif /* defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) */ - -#if defined(__WINDOWS__) -#undef __WIN32__ -#define __WIN32__ 1 -#endif -/* This is to support generic "any GDK" separate from a platform-specific GDK */ -#if defined(__WINGDK__) || defined(__XBOXONE__) || defined(__XBOXSERIES__) -#undef __GDK__ -#define __GDK__ 1 -#endif -#if defined(__PSP__) -#undef __PSP__ -#define __PSP__ 1 -#endif -#if defined(PS2) -#define __PS2__ 1 -#endif - -/* The NACL compiler defines __native_client__ and __pnacl__ - * Ref: http://www.chromium.org/nativeclient/pnacl/stability-of-the-pnacl-bitcode-abi - */ -#if defined(__native_client__) -#undef __LINUX__ -#undef __NACL__ -#define __NACL__ 1 -#endif -#if defined(__pnacl__) -#undef __LINUX__ -#undef __PNACL__ -#define __PNACL__ 1 -/* PNACL with newlib supports static linking only */ -#define __SDL_NOGETPROCADDR__ -#endif - -#if defined(__vita__) -#define __VITA__ 1 -#endif - -#if defined(__3DS__) -#undef __3DS__ -#define __3DS__ 1 -#endif - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Get the name of the platform. - * - * Here are the names returned for some (but not all) supported platforms: - * - * - "Windows" - * - "Mac OS X" - * - "Linux" - * - "iOS" - * - "Android" - * - * \returns the name of the platform. If the correct platform name is not - * available, returns a string beginning with the text "Unknown". - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC const char * SDLCALL SDL_GetPlatform (void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_platform_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_power.h b/lib/windows/include/SDL_power.h deleted file mode 100644 index 1d75704..0000000 --- a/lib/windows/include/SDL_power.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_power_h_ -#define SDL_power_h_ - -/** - * \file SDL_power.h - * - * Header for the SDL power management routines. - */ - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * The basic state for the system's power supply. - */ -typedef enum -{ - SDL_POWERSTATE_UNKNOWN, /**< cannot determine power status */ - SDL_POWERSTATE_ON_BATTERY, /**< Not plugged in, running on the battery */ - SDL_POWERSTATE_NO_BATTERY, /**< Plugged in, no battery available */ - SDL_POWERSTATE_CHARGING, /**< Plugged in, charging battery */ - SDL_POWERSTATE_CHARGED /**< Plugged in, battery charged */ -} SDL_PowerState; - -/** - * Get the current power supply details. - * - * You should never take a battery status as absolute truth. Batteries - * (especially failing batteries) are delicate hardware, and the values - * reported here are best estimates based on what that hardware reports. It's - * not uncommon for older batteries to lose stored power much faster than it - * reports, or completely drain when reporting it has 20 percent left, etc. - * - * Battery status can change at any time; if you are concerned with power - * state, you should call this function frequently, and perhaps ignore changes - * until they seem to be stable for a few seconds. - * - * It's possible a platform can only report battery percentage or time left - * but not both. - * - * \param seconds seconds of battery life left, you can pass a NULL here if - * you don't care, will return -1 if we can't determine a - * value, or we're not running on a battery - * \param percent percentage of battery life left, between 0 and 100, you can - * pass a NULL here if you don't care, will return -1 if we - * can't determine a value, or we're not running on a battery - * \returns an SDL_PowerState enum representing the current battery state. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_PowerState SDLCALL SDL_GetPowerInfo(int *seconds, int *percent); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_power_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_quit.h b/lib/windows/include/SDL_quit.h deleted file mode 100644 index d8ceb89..0000000 --- a/lib/windows/include/SDL_quit.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_quit.h - * - * Include file for SDL quit event handling. - */ - -#ifndef SDL_quit_h_ -#define SDL_quit_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -/** - * \file SDL_quit.h - * - * An ::SDL_QUIT event is generated when the user tries to close the application - * window. If it is ignored or filtered out, the window will remain open. - * If it is not ignored or filtered, it is queued normally and the window - * is allowed to close. When the window is closed, screen updates will - * complete, but have no effect. - * - * SDL_Init() installs signal handlers for SIGINT (keyboard interrupt) - * and SIGTERM (system termination request), if handlers do not already - * exist, that generate ::SDL_QUIT events as well. There is no way - * to determine the cause of an ::SDL_QUIT event, but setting a signal - * handler in your application will override the default generation of - * quit events for that signal. - * - * \sa SDL_Quit() - */ - -/* There are no functions directly affecting the quit event */ - -#define SDL_QuitRequested() \ - (SDL_PumpEvents(), (SDL_PeepEvents(NULL,0,SDL_PEEKEVENT,SDL_QUIT,SDL_QUIT) > 0)) - -#endif /* SDL_quit_h_ */ diff --git a/lib/windows/include/SDL_rect.h b/lib/windows/include/SDL_rect.h deleted file mode 100644 index 9611a31..0000000 --- a/lib/windows/include/SDL_rect.h +++ /dev/null @@ -1,376 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_rect.h - * - * Header file for SDL_rect definition and management functions. - */ - -#ifndef SDL_rect_h_ -#define SDL_rect_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_pixels.h" -#include "SDL_rwops.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * The structure that defines a point (integer) - * - * \sa SDL_EnclosePoints - * \sa SDL_PointInRect - */ -typedef struct SDL_Point -{ - int x; - int y; -} SDL_Point; - -/** - * The structure that defines a point (floating point) - * - * \sa SDL_EncloseFPoints - * \sa SDL_PointInFRect - */ -typedef struct SDL_FPoint -{ - float x; - float y; -} SDL_FPoint; - - -/** - * A rectangle, with the origin at the upper left (integer). - * - * \sa SDL_RectEmpty - * \sa SDL_RectEquals - * \sa SDL_HasIntersection - * \sa SDL_IntersectRect - * \sa SDL_IntersectRectAndLine - * \sa SDL_UnionRect - * \sa SDL_EnclosePoints - */ -typedef struct SDL_Rect -{ - int x, y; - int w, h; -} SDL_Rect; - - -/** - * A rectangle, with the origin at the upper left (floating point). - * - * \sa SDL_FRectEmpty - * \sa SDL_FRectEquals - * \sa SDL_FRectEqualsEpsilon - * \sa SDL_HasIntersectionF - * \sa SDL_IntersectFRect - * \sa SDL_IntersectFRectAndLine - * \sa SDL_UnionFRect - * \sa SDL_EncloseFPoints - * \sa SDL_PointInFRect - */ -typedef struct SDL_FRect -{ - float x; - float y; - float w; - float h; -} SDL_FRect; - - -/** - * Returns true if point resides inside a rectangle. - */ -SDL_FORCE_INLINE SDL_bool SDL_PointInRect(const SDL_Point *p, const SDL_Rect *r) -{ - return ( (p->x >= r->x) && (p->x < (r->x + r->w)) && - (p->y >= r->y) && (p->y < (r->y + r->h)) ) ? SDL_TRUE : SDL_FALSE; -} - -/** - * Returns true if the rectangle has no area. - */ -SDL_FORCE_INLINE SDL_bool SDL_RectEmpty(const SDL_Rect *r) -{ - return ((!r) || (r->w <= 0) || (r->h <= 0)) ? SDL_TRUE : SDL_FALSE; -} - -/** - * Returns true if the two rectangles are equal. - */ -SDL_FORCE_INLINE SDL_bool SDL_RectEquals(const SDL_Rect *a, const SDL_Rect *b) -{ - return (a && b && (a->x == b->x) && (a->y == b->y) && - (a->w == b->w) && (a->h == b->h)) ? SDL_TRUE : SDL_FALSE; -} - -/** - * Determine whether two rectangles intersect. - * - * If either pointer is NULL the function will return SDL_FALSE. - * - * \param A an SDL_Rect structure representing the first rectangle - * \param B an SDL_Rect structure representing the second rectangle - * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_IntersectRect - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasIntersection(const SDL_Rect * A, - const SDL_Rect * B); - -/** - * Calculate the intersection of two rectangles. - * - * If `result` is NULL then this function will return SDL_FALSE. - * - * \param A an SDL_Rect structure representing the first rectangle - * \param B an SDL_Rect structure representing the second rectangle - * \param result an SDL_Rect structure filled in with the intersection of - * rectangles `A` and `B` - * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HasIntersection - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRect(const SDL_Rect * A, - const SDL_Rect * B, - SDL_Rect * result); - -/** - * Calculate the union of two rectangles. - * - * \param A an SDL_Rect structure representing the first rectangle - * \param B an SDL_Rect structure representing the second rectangle - * \param result an SDL_Rect structure filled in with the union of rectangles - * `A` and `B` - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_UnionRect(const SDL_Rect * A, - const SDL_Rect * B, - SDL_Rect * result); - -/** - * Calculate a minimal rectangle enclosing a set of points. - * - * If `clip` is not NULL then only points inside of the clipping rectangle are - * considered. - * - * \param points an array of SDL_Point structures representing points to be - * enclosed - * \param count the number of structures in the `points` array - * \param clip an SDL_Rect used for clipping or NULL to enclose all points - * \param result an SDL_Rect structure filled in with the minimal enclosing - * rectangle - * \returns SDL_TRUE if any points were enclosed or SDL_FALSE if all the - * points were outside of the clipping rectangle. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_EnclosePoints(const SDL_Point * points, - int count, - const SDL_Rect * clip, - SDL_Rect * result); - -/** - * Calculate the intersection of a rectangle and line segment. - * - * This function is used to clip a line segment to a rectangle. A line segment - * contained entirely within the rectangle or that does not intersect will - * remain unchanged. A line segment that crosses the rectangle at either or - * both ends will be clipped to the boundary of the rectangle and the new - * coordinates saved in `X1`, `Y1`, `X2`, and/or `Y2` as necessary. - * - * \param rect an SDL_Rect structure representing the rectangle to intersect - * \param X1 a pointer to the starting X-coordinate of the line - * \param Y1 a pointer to the starting Y-coordinate of the line - * \param X2 a pointer to the ending X-coordinate of the line - * \param Y2 a pointer to the ending Y-coordinate of the line - * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRectAndLine(const SDL_Rect * - rect, int *X1, - int *Y1, int *X2, - int *Y2); - - -/* SDL_FRect versions... */ - -/** - * Returns true if point resides inside a rectangle. - */ -SDL_FORCE_INLINE SDL_bool SDL_PointInFRect(const SDL_FPoint *p, const SDL_FRect *r) -{ - return ( (p->x >= r->x) && (p->x < (r->x + r->w)) && - (p->y >= r->y) && (p->y < (r->y + r->h)) ) ? SDL_TRUE : SDL_FALSE; -} - -/** - * Returns true if the rectangle has no area. - */ -SDL_FORCE_INLINE SDL_bool SDL_FRectEmpty(const SDL_FRect *r) -{ - return ((!r) || (r->w <= 0.0f) || (r->h <= 0.0f)) ? SDL_TRUE : SDL_FALSE; -} - -/** - * Returns true if the two rectangles are equal, within some given epsilon. - * - * \since This function is available since SDL 2.0.22. - */ -SDL_FORCE_INLINE SDL_bool SDL_FRectEqualsEpsilon(const SDL_FRect *a, const SDL_FRect *b, const float epsilon) -{ - return (a && b && ((a == b) || - ((SDL_fabsf(a->x - b->x) <= epsilon) && - (SDL_fabsf(a->y - b->y) <= epsilon) && - (SDL_fabsf(a->w - b->w) <= epsilon) && - (SDL_fabsf(a->h - b->h) <= epsilon)))) - ? SDL_TRUE : SDL_FALSE; -} - -/** - * Returns true if the two rectangles are equal, using a default epsilon. - * - * \since This function is available since SDL 2.0.22. - */ -SDL_FORCE_INLINE SDL_bool SDL_FRectEquals(const SDL_FRect *a, const SDL_FRect *b) -{ - return SDL_FRectEqualsEpsilon(a, b, SDL_FLT_EPSILON); -} - -/** - * Determine whether two rectangles intersect with float precision. - * - * If either pointer is NULL the function will return SDL_FALSE. - * - * \param A an SDL_FRect structure representing the first rectangle - * \param B an SDL_FRect structure representing the second rectangle - * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.22. - * - * \sa SDL_IntersectRect - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasIntersectionF(const SDL_FRect * A, - const SDL_FRect * B); - -/** - * Calculate the intersection of two rectangles with float precision. - * - * If `result` is NULL then this function will return SDL_FALSE. - * - * \param A an SDL_FRect structure representing the first rectangle - * \param B an SDL_FRect structure representing the second rectangle - * \param result an SDL_FRect structure filled in with the intersection of - * rectangles `A` and `B` - * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.22. - * - * \sa SDL_HasIntersectionF - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IntersectFRect(const SDL_FRect * A, - const SDL_FRect * B, - SDL_FRect * result); - -/** - * Calculate the union of two rectangles with float precision. - * - * \param A an SDL_FRect structure representing the first rectangle - * \param B an SDL_FRect structure representing the second rectangle - * \param result an SDL_FRect structure filled in with the union of rectangles - * `A` and `B` - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC void SDLCALL SDL_UnionFRect(const SDL_FRect * A, - const SDL_FRect * B, - SDL_FRect * result); - -/** - * Calculate a minimal rectangle enclosing a set of points with float - * precision. - * - * If `clip` is not NULL then only points inside of the clipping rectangle are - * considered. - * - * \param points an array of SDL_FPoint structures representing points to be - * enclosed - * \param count the number of structures in the `points` array - * \param clip an SDL_FRect used for clipping or NULL to enclose all points - * \param result an SDL_FRect structure filled in with the minimal enclosing - * rectangle - * \returns SDL_TRUE if any points were enclosed or SDL_FALSE if all the - * points were outside of the clipping rectangle. - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_EncloseFPoints(const SDL_FPoint * points, - int count, - const SDL_FRect * clip, - SDL_FRect * result); - -/** - * Calculate the intersection of a rectangle and line segment with float - * precision. - * - * This function is used to clip a line segment to a rectangle. A line segment - * contained entirely within the rectangle or that does not intersect will - * remain unchanged. A line segment that crosses the rectangle at either or - * both ends will be clipped to the boundary of the rectangle and the new - * coordinates saved in `X1`, `Y1`, `X2`, and/or `Y2` as necessary. - * - * \param rect an SDL_FRect structure representing the rectangle to intersect - * \param X1 a pointer to the starting X-coordinate of the line - * \param Y1 a pointer to the starting Y-coordinate of the line - * \param X2 a pointer to the ending X-coordinate of the line - * \param Y2 a pointer to the ending Y-coordinate of the line - * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IntersectFRectAndLine(const SDL_FRect * - rect, float *X1, - float *Y1, float *X2, - float *Y2); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_rect_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_render.h b/lib/windows/include/SDL_render.h deleted file mode 100644 index d62715a..0000000 --- a/lib/windows/include/SDL_render.h +++ /dev/null @@ -1,1924 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_render.h - * - * Header file for SDL 2D rendering functions. - * - * This API supports the following features: - * * single pixel points - * * single pixel lines - * * filled rectangles - * * texture images - * - * The primitives may be drawn in opaque, blended, or additive modes. - * - * The texture images may be drawn in opaque, blended, or additive modes. - * They can have an additional color tint or alpha modulation applied to - * them, and may also be stretched with linear interpolation. - * - * This API is designed to accelerate simple 2D operations. You may - * want more functionality such as polygons and particle effects and - * in that case you should use SDL's OpenGL/Direct3D support or one - * of the many good 3D engines. - * - * These functions must be called from the main thread. - * See this bug for details: http://bugzilla.libsdl.org/show_bug.cgi?id=1995 - */ - -#ifndef SDL_render_h_ -#define SDL_render_h_ - -#include "SDL_stdinc.h" -#include "SDL_rect.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Flags used when creating a rendering context - */ -typedef enum -{ - SDL_RENDERER_SOFTWARE = 0x00000001, /**< The renderer is a software fallback */ - SDL_RENDERER_ACCELERATED = 0x00000002, /**< The renderer uses hardware - acceleration */ - SDL_RENDERER_PRESENTVSYNC = 0x00000004, /**< Present is synchronized - with the refresh rate */ - SDL_RENDERER_TARGETTEXTURE = 0x00000008 /**< The renderer supports - rendering to texture */ -} SDL_RendererFlags; - -/** - * Information on the capabilities of a render driver or context. - */ -typedef struct SDL_RendererInfo -{ - const char *name; /**< The name of the renderer */ - Uint32 flags; /**< Supported ::SDL_RendererFlags */ - Uint32 num_texture_formats; /**< The number of available texture formats */ - Uint32 texture_formats[16]; /**< The available texture formats */ - int max_texture_width; /**< The maximum texture width */ - int max_texture_height; /**< The maximum texture height */ -} SDL_RendererInfo; - -/** - * Vertex structure - */ -typedef struct SDL_Vertex -{ - SDL_FPoint position; /**< Vertex position, in SDL_Renderer coordinates */ - SDL_Color color; /**< Vertex color */ - SDL_FPoint tex_coord; /**< Normalized texture coordinates, if needed */ -} SDL_Vertex; - -/** - * The scaling mode for a texture. - */ -typedef enum -{ - SDL_ScaleModeNearest, /**< nearest pixel sampling */ - SDL_ScaleModeLinear, /**< linear filtering */ - SDL_ScaleModeBest /**< anisotropic filtering */ -} SDL_ScaleMode; - -/** - * The access pattern allowed for a texture. - */ -typedef enum -{ - SDL_TEXTUREACCESS_STATIC, /**< Changes rarely, not lockable */ - SDL_TEXTUREACCESS_STREAMING, /**< Changes frequently, lockable */ - SDL_TEXTUREACCESS_TARGET /**< Texture can be used as a render target */ -} SDL_TextureAccess; - -/** - * The texture channel modulation used in SDL_RenderCopy(). - */ -typedef enum -{ - SDL_TEXTUREMODULATE_NONE = 0x00000000, /**< No modulation */ - SDL_TEXTUREMODULATE_COLOR = 0x00000001, /**< srcC = srcC * color */ - SDL_TEXTUREMODULATE_ALPHA = 0x00000002 /**< srcA = srcA * alpha */ -} SDL_TextureModulate; - -/** - * Flip constants for SDL_RenderCopyEx - */ -typedef enum -{ - SDL_FLIP_NONE = 0x00000000, /**< Do not flip */ - SDL_FLIP_HORIZONTAL = 0x00000001, /**< flip horizontally */ - SDL_FLIP_VERTICAL = 0x00000002 /**< flip vertically */ -} SDL_RendererFlip; - -/** - * A structure representing rendering state - */ -struct SDL_Renderer; -typedef struct SDL_Renderer SDL_Renderer; - -/** - * An efficient driver-specific representation of pixel data - */ -struct SDL_Texture; -typedef struct SDL_Texture SDL_Texture; - -/* Function prototypes */ - -/** - * Get the number of 2D rendering drivers available for the current display. - * - * A render driver is a set of code that handles rendering and texture - * management on a particular display. Normally there is only one, but some - * drivers may have several available with different capabilities. - * - * There may be none if SDL was compiled without render support. - * - * \returns a number >= 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - * \sa SDL_GetRenderDriverInfo - */ -extern DECLSPEC int SDLCALL SDL_GetNumRenderDrivers(void); - -/** - * Get info about a specific 2D rendering driver for the current display. - * - * \param index the index of the driver to query information about - * \param info an SDL_RendererInfo structure to be filled with information on - * the rendering driver - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - * \sa SDL_GetNumRenderDrivers - */ -extern DECLSPEC int SDLCALL SDL_GetRenderDriverInfo(int index, - SDL_RendererInfo * info); - -/** - * Create a window and default renderer. - * - * \param width the width of the window - * \param height the height of the window - * \param window_flags the flags used to create the window (see - * SDL_CreateWindow()) - * \param window a pointer filled with the window, or NULL on error - * \param renderer a pointer filled with the renderer, or NULL on error - * \returns 0 on success, or -1 on error; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - * \sa SDL_CreateWindow - */ -extern DECLSPEC int SDLCALL SDL_CreateWindowAndRenderer( - int width, int height, Uint32 window_flags, - SDL_Window **window, SDL_Renderer **renderer); - - -/** - * Create a 2D rendering context for a window. - * - * \param window the window where rendering is displayed - * \param index the index of the rendering driver to initialize, or -1 to - * initialize the first one supporting the requested flags - * \param flags 0, or one or more SDL_RendererFlags OR'd together - * \returns a valid rendering context or NULL if there was an error; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSoftwareRenderer - * \sa SDL_DestroyRenderer - * \sa SDL_GetNumRenderDrivers - * \sa SDL_GetRendererInfo - */ -extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window * window, - int index, Uint32 flags); - -/** - * Create a 2D software rendering context for a surface. - * - * Two other API which can be used to create SDL_Renderer: - * SDL_CreateRenderer() and SDL_CreateWindowAndRenderer(). These can _also_ - * create a software renderer, but they are intended to be used with an - * SDL_Window as the final destination and not an SDL_Surface. - * - * \param surface the SDL_Surface structure representing the surface where - * rendering is done - * \returns a valid rendering context or NULL if there was an error; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - * \sa SDL_CreateWindowRenderer - * \sa SDL_DestroyRenderer - */ -extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateSoftwareRenderer(SDL_Surface * surface); - -/** - * Get the renderer associated with a window. - * - * \param window the window to query - * \returns the rendering context on success or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - */ -extern DECLSPEC SDL_Renderer * SDLCALL SDL_GetRenderer(SDL_Window * window); - -/** - * Get the window associated with a renderer. - * - * \param renderer the renderer to query - * \returns the window on success or NULL on failure; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_RenderGetWindow(SDL_Renderer *renderer); - -/** - * Get information about a rendering context. - * - * \param renderer the rendering context - * \param info an SDL_RendererInfo structure filled with information about the - * current renderer - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - */ -extern DECLSPEC int SDLCALL SDL_GetRendererInfo(SDL_Renderer * renderer, - SDL_RendererInfo * info); - -/** - * Get the output size in pixels of a rendering context. - * - * Due to high-dpi displays, you might end up with a rendering context that - * has more pixels than the window that contains it, so use this instead of - * SDL_GetWindowSize() to decide how much drawing area you have. - * - * \param renderer the rendering context - * \param w an int filled with the width - * \param h an int filled with the height - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRenderer - */ -extern DECLSPEC int SDLCALL SDL_GetRendererOutputSize(SDL_Renderer * renderer, - int *w, int *h); - -/** - * Create a texture for a rendering context. - * - * You can set the texture scaling method by setting - * `SDL_HINT_RENDER_SCALE_QUALITY` before creating the texture. - * - * \param renderer the rendering context - * \param format one of the enumerated values in SDL_PixelFormatEnum - * \param access one of the enumerated values in SDL_TextureAccess - * \param w the width of the texture in pixels - * \param h the height of the texture in pixels - * \returns a pointer to the created texture or NULL if no rendering context - * was active, the format was unsupported, or the width or height - * were out of range; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateTextureFromSurface - * \sa SDL_DestroyTexture - * \sa SDL_QueryTexture - * \sa SDL_UpdateTexture - */ -extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTexture(SDL_Renderer * renderer, - Uint32 format, - int access, int w, - int h); - -/** - * Create a texture from an existing surface. - * - * The surface is not modified or freed by this function. - * - * The SDL_TextureAccess hint for the created texture is - * `SDL_TEXTUREACCESS_STATIC`. - * - * The pixel format of the created texture may be different from the pixel - * format of the surface. Use SDL_QueryTexture() to query the pixel format of - * the texture. - * - * \param renderer the rendering context - * \param surface the SDL_Surface structure containing pixel data used to fill - * the texture - * \returns the created texture or NULL on failure; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateTexture - * \sa SDL_DestroyTexture - * \sa SDL_QueryTexture - */ -extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureFromSurface(SDL_Renderer * renderer, SDL_Surface * surface); - -/** - * Query the attributes of a texture. - * - * \param texture the texture to query - * \param format a pointer filled in with the raw format of the texture; the - * actual format may differ, but pixel transfers will use this - * format (one of the SDL_PixelFormatEnum values). This argument - * can be NULL if you don't need this information. - * \param access a pointer filled in with the actual access to the texture - * (one of the SDL_TextureAccess values). This argument can be - * NULL if you don't need this information. - * \param w a pointer filled in with the width of the texture in pixels. This - * argument can be NULL if you don't need this information. - * \param h a pointer filled in with the height of the texture in pixels. This - * argument can be NULL if you don't need this information. - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateTexture - */ -extern DECLSPEC int SDLCALL SDL_QueryTexture(SDL_Texture * texture, - Uint32 * format, int *access, - int *w, int *h); - -/** - * Set an additional color value multiplied into render copy operations. - * - * When this texture is rendered, during the copy operation each source color - * channel is modulated by the appropriate color value according to the - * following formula: - * - * `srcC = srcC * (color / 255)` - * - * Color modulation is not always supported by the renderer; it will return -1 - * if color modulation is not supported. - * - * \param texture the texture to update - * \param r the red color value multiplied into copy operations - * \param g the green color value multiplied into copy operations - * \param b the blue color value multiplied into copy operations - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTextureColorMod - * \sa SDL_SetTextureAlphaMod - */ -extern DECLSPEC int SDLCALL SDL_SetTextureColorMod(SDL_Texture * texture, - Uint8 r, Uint8 g, Uint8 b); - - -/** - * Get the additional color value multiplied into render copy operations. - * - * \param texture the texture to query - * \param r a pointer filled in with the current red color value - * \param g a pointer filled in with the current green color value - * \param b a pointer filled in with the current blue color value - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTextureAlphaMod - * \sa SDL_SetTextureColorMod - */ -extern DECLSPEC int SDLCALL SDL_GetTextureColorMod(SDL_Texture * texture, - Uint8 * r, Uint8 * g, - Uint8 * b); - -/** - * Set an additional alpha value multiplied into render copy operations. - * - * When this texture is rendered, during the copy operation the source alpha - * value is modulated by this alpha value according to the following formula: - * - * `srcA = srcA * (alpha / 255)` - * - * Alpha modulation is not always supported by the renderer; it will return -1 - * if alpha modulation is not supported. - * - * \param texture the texture to update - * \param alpha the source alpha value multiplied into copy operations - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTextureAlphaMod - * \sa SDL_SetTextureColorMod - */ -extern DECLSPEC int SDLCALL SDL_SetTextureAlphaMod(SDL_Texture * texture, - Uint8 alpha); - -/** - * Get the additional alpha value multiplied into render copy operations. - * - * \param texture the texture to query - * \param alpha a pointer filled in with the current alpha value - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTextureColorMod - * \sa SDL_SetTextureAlphaMod - */ -extern DECLSPEC int SDLCALL SDL_GetTextureAlphaMod(SDL_Texture * texture, - Uint8 * alpha); - -/** - * Set the blend mode for a texture, used by SDL_RenderCopy(). - * - * If the blend mode is not supported, the closest supported mode is chosen - * and this function returns -1. - * - * \param texture the texture to update - * \param blendMode the SDL_BlendMode to use for texture blending - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTextureBlendMode - * \sa SDL_RenderCopy - */ -extern DECLSPEC int SDLCALL SDL_SetTextureBlendMode(SDL_Texture * texture, - SDL_BlendMode blendMode); - -/** - * Get the blend mode used for texture copy operations. - * - * \param texture the texture to query - * \param blendMode a pointer filled in with the current SDL_BlendMode - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetTextureBlendMode - */ -extern DECLSPEC int SDLCALL SDL_GetTextureBlendMode(SDL_Texture * texture, - SDL_BlendMode *blendMode); - -/** - * Set the scale mode used for texture scale operations. - * - * If the scale mode is not supported, the closest supported mode is chosen. - * - * \param texture The texture to update. - * \param scaleMode the SDL_ScaleMode to use for texture scaling. - * \returns 0 on success, or -1 if the texture is not valid. - * - * \since This function is available since SDL 2.0.12. - * - * \sa SDL_GetTextureScaleMode - */ -extern DECLSPEC int SDLCALL SDL_SetTextureScaleMode(SDL_Texture * texture, - SDL_ScaleMode scaleMode); - -/** - * Get the scale mode used for texture scale operations. - * - * \param texture the texture to query. - * \param scaleMode a pointer filled in with the current scale mode. - * \return 0 on success, or -1 if the texture is not valid. - * - * \since This function is available since SDL 2.0.12. - * - * \sa SDL_SetTextureScaleMode - */ -extern DECLSPEC int SDLCALL SDL_GetTextureScaleMode(SDL_Texture * texture, - SDL_ScaleMode *scaleMode); - -/** - * Associate a user-specified pointer with a texture. - * - * \param texture the texture to update. - * \param userdata the pointer to associate with the texture. - * \returns 0 on success, or -1 if the texture is not valid. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_GetTextureUserData - */ -extern DECLSPEC int SDLCALL SDL_SetTextureUserData(SDL_Texture * texture, - void *userdata); - -/** - * Get the user-specified pointer associated with a texture - * - * \param texture the texture to query. - * \return the pointer associated with the texture, or NULL if the texture is - * not valid. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_SetTextureUserData - */ -extern DECLSPEC void * SDLCALL SDL_GetTextureUserData(SDL_Texture * texture); - -/** - * Update the given texture rectangle with new pixel data. - * - * The pixel data must be in the pixel format of the texture. Use - * SDL_QueryTexture() to query the pixel format of the texture. - * - * This is a fairly slow function, intended for use with static textures that - * do not change often. - * - * If the texture is intended to be updated often, it is preferred to create - * the texture as streaming and use the locking functions referenced below. - * While this function will work with streaming textures, for optimization - * reasons you may not get the pixels back if you lock the texture afterward. - * - * \param texture the texture to update - * \param rect an SDL_Rect structure representing the area to update, or NULL - * to update the entire texture - * \param pixels the raw pixel data in the format of the texture - * \param pitch the number of bytes in a row of pixel data, including padding - * between lines - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateTexture - * \sa SDL_LockTexture - * \sa SDL_UnlockTexture - */ -extern DECLSPEC int SDLCALL SDL_UpdateTexture(SDL_Texture * texture, - const SDL_Rect * rect, - const void *pixels, int pitch); - -/** - * Update a rectangle within a planar YV12 or IYUV texture with new pixel - * data. - * - * You can use SDL_UpdateTexture() as long as your pixel data is a contiguous - * block of Y and U/V planes in the proper order, but this function is - * available if your pixel data is not contiguous. - * - * \param texture the texture to update - * \param rect a pointer to the rectangle of pixels to update, or NULL to - * update the entire texture - * \param Yplane the raw pixel data for the Y plane - * \param Ypitch the number of bytes between rows of pixel data for the Y - * plane - * \param Uplane the raw pixel data for the U plane - * \param Upitch the number of bytes between rows of pixel data for the U - * plane - * \param Vplane the raw pixel data for the V plane - * \param Vpitch the number of bytes between rows of pixel data for the V - * plane - * \returns 0 on success or -1 if the texture is not valid; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.1. - * - * \sa SDL_UpdateTexture - */ -extern DECLSPEC int SDLCALL SDL_UpdateYUVTexture(SDL_Texture * texture, - const SDL_Rect * rect, - const Uint8 *Yplane, int Ypitch, - const Uint8 *Uplane, int Upitch, - const Uint8 *Vplane, int Vpitch); - -/** - * Update a rectangle within a planar NV12 or NV21 texture with new pixels. - * - * You can use SDL_UpdateTexture() as long as your pixel data is a contiguous - * block of NV12/21 planes in the proper order, but this function is available - * if your pixel data is not contiguous. - * - * \param texture the texture to update - * \param rect a pointer to the rectangle of pixels to update, or NULL to - * update the entire texture. - * \param Yplane the raw pixel data for the Y plane. - * \param Ypitch the number of bytes between rows of pixel data for the Y - * plane. - * \param UVplane the raw pixel data for the UV plane. - * \param UVpitch the number of bytes between rows of pixel data for the UV - * plane. - * \return 0 on success, or -1 if the texture is not valid. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC int SDLCALL SDL_UpdateNVTexture(SDL_Texture * texture, - const SDL_Rect * rect, - const Uint8 *Yplane, int Ypitch, - const Uint8 *UVplane, int UVpitch); - -/** - * Lock a portion of the texture for **write-only** pixel access. - * - * As an optimization, the pixels made available for editing don't necessarily - * contain the old texture data. This is a write-only operation, and if you - * need to keep a copy of the texture data you should do that at the - * application level. - * - * You must use SDL_UnlockTexture() to unlock the pixels and apply any - * changes. - * - * \param texture the texture to lock for access, which was created with - * `SDL_TEXTUREACCESS_STREAMING` - * \param rect an SDL_Rect structure representing the area to lock for access; - * NULL to lock the entire texture - * \param pixels this is filled in with a pointer to the locked pixels, - * appropriately offset by the locked area - * \param pitch this is filled in with the pitch of the locked pixels; the - * pitch is the length of one row in bytes - * \returns 0 on success or a negative error code if the texture is not valid - * or was not created with `SDL_TEXTUREACCESS_STREAMING`; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_UnlockTexture - */ -extern DECLSPEC int SDLCALL SDL_LockTexture(SDL_Texture * texture, - const SDL_Rect * rect, - void **pixels, int *pitch); - -/** - * Lock a portion of the texture for **write-only** pixel access, and expose - * it as a SDL surface. - * - * Besides providing an SDL_Surface instead of raw pixel data, this function - * operates like SDL_LockTexture. - * - * As an optimization, the pixels made available for editing don't necessarily - * contain the old texture data. This is a write-only operation, and if you - * need to keep a copy of the texture data you should do that at the - * application level. - * - * You must use SDL_UnlockTexture() to unlock the pixels and apply any - * changes. - * - * The returned surface is freed internally after calling SDL_UnlockTexture() - * or SDL_DestroyTexture(). The caller should not free it. - * - * \param texture the texture to lock for access, which was created with - * `SDL_TEXTUREACCESS_STREAMING` - * \param rect a pointer to the rectangle to lock for access. If the rect is - * NULL, the entire texture will be locked - * \param surface this is filled in with an SDL surface representing the - * locked area - * \returns 0 on success, or -1 if the texture is not valid or was not created - * with `SDL_TEXTUREACCESS_STREAMING` - * - * \since This function is available since SDL 2.0.12. - * - * \sa SDL_LockTexture - * \sa SDL_UnlockTexture - */ -extern DECLSPEC int SDLCALL SDL_LockTextureToSurface(SDL_Texture *texture, - const SDL_Rect *rect, - SDL_Surface **surface); - -/** - * Unlock a texture, uploading the changes to video memory, if needed. - * - * **Warning**: Please note that SDL_LockTexture() is intended to be - * write-only; it will not guarantee the previous contents of the texture will - * be provided. You must fully initialize any area of a texture that you lock - * before unlocking it, as the pixels might otherwise be uninitialized memory. - * - * Which is to say: locking and immediately unlocking a texture can result in - * corrupted textures, depending on the renderer in use. - * - * \param texture a texture locked by SDL_LockTexture() - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LockTexture - */ -extern DECLSPEC void SDLCALL SDL_UnlockTexture(SDL_Texture * texture); - -/** - * Determine whether a renderer supports the use of render targets. - * - * \param renderer the renderer that will be checked - * \returns SDL_TRUE if supported or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetRenderTarget - */ -extern DECLSPEC SDL_bool SDLCALL SDL_RenderTargetSupported(SDL_Renderer *renderer); - -/** - * Set a texture as the current rendering target. - * - * Before using this function, you should check the - * `SDL_RENDERER_TARGETTEXTURE` bit in the flags of SDL_RendererInfo to see if - * render targets are supported. - * - * The default render target is the window for which the renderer was created. - * To stop rendering to a texture and render to the window again, call this - * function with a NULL `texture`. - * - * \param renderer the rendering context - * \param texture the targeted texture, which must be created with the - * `SDL_TEXTUREACCESS_TARGET` flag, or NULL to render to the - * window instead of a texture. - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRenderTarget - */ -extern DECLSPEC int SDLCALL SDL_SetRenderTarget(SDL_Renderer *renderer, - SDL_Texture *texture); - -/** - * Get the current render target. - * - * The default render target is the window for which the renderer was created, - * and is reported a NULL here. - * - * \param renderer the rendering context - * \returns the current render target or NULL for the default render target. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetRenderTarget - */ -extern DECLSPEC SDL_Texture * SDLCALL SDL_GetRenderTarget(SDL_Renderer *renderer); - -/** - * Set a device independent resolution for rendering. - * - * This function uses the viewport and scaling functionality to allow a fixed - * logical resolution for rendering, regardless of the actual output - * resolution. If the actual output resolution doesn't have the same aspect - * ratio the output rendering will be centered within the output display. - * - * If the output display is a window, mouse and touch events in the window - * will be filtered and scaled so they seem to arrive within the logical - * resolution. The SDL_HINT_MOUSE_RELATIVE_SCALING hint controls whether - * relative motion events are also scaled. - * - * If this function results in scaling or subpixel drawing by the rendering - * backend, it will be handled using the appropriate quality hints. - * - * \param renderer the renderer for which resolution should be set - * \param w the width of the logical resolution - * \param h the height of the logical resolution - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderGetLogicalSize - */ -extern DECLSPEC int SDLCALL SDL_RenderSetLogicalSize(SDL_Renderer * renderer, int w, int h); - -/** - * Get device independent resolution for rendering. - * - * When using the main rendering target (eg no target texture is set): this - * may return 0 for `w` and `h` if the SDL_Renderer has never had its logical - * size set by SDL_RenderSetLogicalSize(). Otherwise it returns the logical - * width and height. - * - * When using a target texture: Never return 0 for `w` and `h` at first. Then - * it returns the logical width and height that are set. - * - * \param renderer a rendering context - * \param w an int to be filled with the width - * \param h an int to be filled with the height - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderSetLogicalSize - */ -extern DECLSPEC void SDLCALL SDL_RenderGetLogicalSize(SDL_Renderer * renderer, int *w, int *h); - -/** - * Set whether to force integer scales for resolution-independent rendering. - * - * This function restricts the logical viewport to integer values - that is, - * when a resolution is between two multiples of a logical size, the viewport - * size is rounded down to the lower multiple. - * - * \param renderer the renderer for which integer scaling should be set - * \param enable enable or disable the integer scaling for rendering - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_RenderGetIntegerScale - * \sa SDL_RenderSetLogicalSize - */ -extern DECLSPEC int SDLCALL SDL_RenderSetIntegerScale(SDL_Renderer * renderer, - SDL_bool enable); - -/** - * Get whether integer scales are forced for resolution-independent rendering. - * - * \param renderer the renderer from which integer scaling should be queried - * \returns SDL_TRUE if integer scales are forced or SDL_FALSE if not and on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_RenderSetIntegerScale - */ -extern DECLSPEC SDL_bool SDLCALL SDL_RenderGetIntegerScale(SDL_Renderer * renderer); - -/** - * Set the drawing area for rendering on the current target. - * - * When the window is resized, the viewport is reset to fill the entire new - * window size. - * - * \param renderer the rendering context - * \param rect the SDL_Rect structure representing the drawing area, or NULL - * to set the viewport to the entire target - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderGetViewport - */ -extern DECLSPEC int SDLCALL SDL_RenderSetViewport(SDL_Renderer * renderer, - const SDL_Rect * rect); - -/** - * Get the drawing area for the current target. - * - * \param renderer the rendering context - * \param rect an SDL_Rect structure filled in with the current drawing area - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderSetViewport - */ -extern DECLSPEC void SDLCALL SDL_RenderGetViewport(SDL_Renderer * renderer, - SDL_Rect * rect); - -/** - * Set the clip rectangle for rendering on the specified target. - * - * \param renderer the rendering context for which clip rectangle should be - * set - * \param rect an SDL_Rect structure representing the clip area, relative to - * the viewport, or NULL to disable clipping - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderGetClipRect - * \sa SDL_RenderIsClipEnabled - */ -extern DECLSPEC int SDLCALL SDL_RenderSetClipRect(SDL_Renderer * renderer, - const SDL_Rect * rect); - -/** - * Get the clip rectangle for the current target. - * - * \param renderer the rendering context from which clip rectangle should be - * queried - * \param rect an SDL_Rect structure filled in with the current clipping area - * or an empty rectangle if clipping is disabled - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderIsClipEnabled - * \sa SDL_RenderSetClipRect - */ -extern DECLSPEC void SDLCALL SDL_RenderGetClipRect(SDL_Renderer * renderer, - SDL_Rect * rect); - -/** - * Get whether clipping is enabled on the given renderer. - * - * \param renderer the renderer from which clip state should be queried - * \returns SDL_TRUE if clipping is enabled or SDL_FALSE if not; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_RenderGetClipRect - * \sa SDL_RenderSetClipRect - */ -extern DECLSPEC SDL_bool SDLCALL SDL_RenderIsClipEnabled(SDL_Renderer * renderer); - - -/** - * Set the drawing scale for rendering on the current target. - * - * The drawing coordinates are scaled by the x/y scaling factors before they - * are used by the renderer. This allows resolution independent drawing with a - * single coordinate system. - * - * If this results in scaling or subpixel drawing by the rendering backend, it - * will be handled using the appropriate quality hints. For best results use - * integer scaling factors. - * - * \param renderer a rendering context - * \param scaleX the horizontal scaling factor - * \param scaleY the vertical scaling factor - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderGetScale - * \sa SDL_RenderSetLogicalSize - */ -extern DECLSPEC int SDLCALL SDL_RenderSetScale(SDL_Renderer * renderer, - float scaleX, float scaleY); - -/** - * Get the drawing scale for the current target. - * - * \param renderer the renderer from which drawing scale should be queried - * \param scaleX a pointer filled in with the horizontal scaling factor - * \param scaleY a pointer filled in with the vertical scaling factor - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderSetScale - */ -extern DECLSPEC void SDLCALL SDL_RenderGetScale(SDL_Renderer * renderer, - float *scaleX, float *scaleY); - -/** - * Get logical coordinates of point in renderer when given real coordinates of - * point in window. - * - * Logical coordinates will differ from real coordinates when render is scaled - * and logical renderer size set - * - * \param renderer the renderer from which the logical coordinates should be - * calculated - * \param windowX the real X coordinate in the window - * \param windowY the real Y coordinate in the window - * \param logicalX the pointer filled with the logical x coordinate - * \param logicalY the pointer filled with the logical y coordinate - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_RenderGetScale - * \sa SDL_RenderSetScale - * \sa SDL_RenderGetLogicalSize - * \sa SDL_RenderSetLogicalSize - */ -extern DECLSPEC void SDLCALL SDL_RenderWindowToLogical(SDL_Renderer * renderer, - int windowX, int windowY, - float *logicalX, float *logicalY); - - -/** - * Get real coordinates of point in window when given logical coordinates of - * point in renderer. - * - * Logical coordinates will differ from real coordinates when render is scaled - * and logical renderer size set - * - * \param renderer the renderer from which the window coordinates should be - * calculated - * \param logicalX the logical x coordinate - * \param logicalY the logical y coordinate - * \param windowX the pointer filled with the real X coordinate in the window - * \param windowY the pointer filled with the real Y coordinate in the window - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_RenderGetScale - * \sa SDL_RenderSetScale - * \sa SDL_RenderGetLogicalSize - * \sa SDL_RenderSetLogicalSize - */ -extern DECLSPEC void SDLCALL SDL_RenderLogicalToWindow(SDL_Renderer * renderer, - float logicalX, float logicalY, - int *windowX, int *windowY); - -/** - * Set the color used for drawing operations (Rect, Line and Clear). - * - * Set the color for drawing or filling rectangles, lines, and points, and for - * SDL_RenderClear(). - * - * \param renderer the rendering context - * \param r the red value used to draw on the rendering target - * \param g the green value used to draw on the rendering target - * \param b the blue value used to draw on the rendering target - * \param a the alpha value used to draw on the rendering target; usually - * `SDL_ALPHA_OPAQUE` (255). Use SDL_SetRenderDrawBlendMode to - * specify how the alpha channel is used - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRenderDrawColor - * \sa SDL_RenderClear - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - */ -extern DECLSPEC int SDLCALL SDL_SetRenderDrawColor(SDL_Renderer * renderer, - Uint8 r, Uint8 g, Uint8 b, - Uint8 a); - -/** - * Get the color used for drawing operations (Rect, Line and Clear). - * - * \param renderer the rendering context - * \param r a pointer filled in with the red value used to draw on the - * rendering target - * \param g a pointer filled in with the green value used to draw on the - * rendering target - * \param b a pointer filled in with the blue value used to draw on the - * rendering target - * \param a a pointer filled in with the alpha value used to draw on the - * rendering target; usually `SDL_ALPHA_OPAQUE` (255) - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_GetRenderDrawColor(SDL_Renderer * renderer, - Uint8 * r, Uint8 * g, Uint8 * b, - Uint8 * a); - -/** - * Set the blend mode used for drawing operations (Fill and Line). - * - * If the blend mode is not supported, the closest supported mode is chosen. - * - * \param renderer the rendering context - * \param blendMode the SDL_BlendMode to use for blending - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRenderDrawBlendMode - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - */ -extern DECLSPEC int SDLCALL SDL_SetRenderDrawBlendMode(SDL_Renderer * renderer, - SDL_BlendMode blendMode); - -/** - * Get the blend mode used for drawing operations. - * - * \param renderer the rendering context - * \param blendMode a pointer filled in with the current SDL_BlendMode - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetRenderDrawBlendMode - */ -extern DECLSPEC int SDLCALL SDL_GetRenderDrawBlendMode(SDL_Renderer * renderer, - SDL_BlendMode *blendMode); - -/** - * Clear the current rendering target with the drawing color. - * - * This function clears the entire rendering target, ignoring the viewport and - * the clip rectangle. - * - * \param renderer the rendering context - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderClear(SDL_Renderer * renderer); - -/** - * Draw a point on the current rendering target. - * - * SDL_RenderDrawPoint() draws a single point. If you want to draw multiple, - * use SDL_RenderDrawPoints() instead. - * - * \param renderer the rendering context - * \param x the x coordinate of the point - * \param y the y coordinate of the point - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawPoint(SDL_Renderer * renderer, - int x, int y); - -/** - * Draw multiple points on the current rendering target. - * - * \param renderer the rendering context - * \param points an array of SDL_Point structures that represent the points to - * draw - * \param count the number of points to draw - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawPoints(SDL_Renderer * renderer, - const SDL_Point * points, - int count); - -/** - * Draw a line on the current rendering target. - * - * SDL_RenderDrawLine() draws the line to include both end points. If you want - * to draw multiple, connecting lines use SDL_RenderDrawLines() instead. - * - * \param renderer the rendering context - * \param x1 the x coordinate of the start point - * \param y1 the y coordinate of the start point - * \param x2 the x coordinate of the end point - * \param y2 the y coordinate of the end point - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawLine(SDL_Renderer * renderer, - int x1, int y1, int x2, int y2); - -/** - * Draw a series of connected lines on the current rendering target. - * - * \param renderer the rendering context - * \param points an array of SDL_Point structures representing points along - * the lines - * \param count the number of points, drawing count-1 lines - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawLines(SDL_Renderer * renderer, - const SDL_Point * points, - int count); - -/** - * Draw a rectangle on the current rendering target. - * - * \param renderer the rendering context - * \param rect an SDL_Rect structure representing the rectangle to draw, or - * NULL to outline the entire rendering target - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawRect(SDL_Renderer * renderer, - const SDL_Rect * rect); - -/** - * Draw some number of rectangles on the current rendering target. - * - * \param renderer the rendering context - * \param rects an array of SDL_Rect structures representing the rectangles to - * be drawn - * \param count the number of rectangles - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawRects(SDL_Renderer * renderer, - const SDL_Rect * rects, - int count); - -/** - * Fill a rectangle on the current rendering target with the drawing color. - * - * The current drawing color is set by SDL_SetRenderDrawColor(), and the - * color's alpha value is ignored unless blending is enabled with the - * appropriate call to SDL_SetRenderDrawBlendMode(). - * - * \param renderer the rendering context - * \param rect the SDL_Rect structure representing the rectangle to fill, or - * NULL for the entire rendering target - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderFillRect(SDL_Renderer * renderer, - const SDL_Rect * rect); - -/** - * Fill some number of rectangles on the current rendering target with the - * drawing color. - * - * \param renderer the rendering context - * \param rects an array of SDL_Rect structures representing the rectangles to - * be filled - * \param count the number of rectangles - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderPresent - */ -extern DECLSPEC int SDLCALL SDL_RenderFillRects(SDL_Renderer * renderer, - const SDL_Rect * rects, - int count); - -/** - * Copy a portion of the texture to the current rendering target. - * - * The texture is blended with the destination based on its blend mode set - * with SDL_SetTextureBlendMode(). - * - * The texture color is affected based on its color modulation set by - * SDL_SetTextureColorMod(). - * - * The texture alpha is affected based on its alpha modulation set by - * SDL_SetTextureAlphaMod(). - * - * \param renderer the rendering context - * \param texture the source texture - * \param srcrect the source SDL_Rect structure or NULL for the entire texture - * \param dstrect the destination SDL_Rect structure or NULL for the entire - * rendering target; the texture will be stretched to fill the - * given rectangle - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderCopyEx - * \sa SDL_SetTextureAlphaMod - * \sa SDL_SetTextureBlendMode - * \sa SDL_SetTextureColorMod - */ -extern DECLSPEC int SDLCALL SDL_RenderCopy(SDL_Renderer * renderer, - SDL_Texture * texture, - const SDL_Rect * srcrect, - const SDL_Rect * dstrect); - -/** - * Copy a portion of the texture to the current rendering, with optional - * rotation and flipping. - * - * Copy a portion of the texture to the current rendering target, optionally - * rotating it by angle around the given center and also flipping it - * top-bottom and/or left-right. - * - * The texture is blended with the destination based on its blend mode set - * with SDL_SetTextureBlendMode(). - * - * The texture color is affected based on its color modulation set by - * SDL_SetTextureColorMod(). - * - * The texture alpha is affected based on its alpha modulation set by - * SDL_SetTextureAlphaMod(). - * - * \param renderer the rendering context - * \param texture the source texture - * \param srcrect the source SDL_Rect structure or NULL for the entire texture - * \param dstrect the destination SDL_Rect structure or NULL for the entire - * rendering target - * \param angle an angle in degrees that indicates the rotation that will be - * applied to dstrect, rotating it in a clockwise direction - * \param center a pointer to a point indicating the point around which - * dstrect will be rotated (if NULL, rotation will be done - * around `dstrect.w / 2`, `dstrect.h / 2`) - * \param flip a SDL_RendererFlip value stating which flipping actions should - * be performed on the texture - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderCopy - * \sa SDL_SetTextureAlphaMod - * \sa SDL_SetTextureBlendMode - * \sa SDL_SetTextureColorMod - */ -extern DECLSPEC int SDLCALL SDL_RenderCopyEx(SDL_Renderer * renderer, - SDL_Texture * texture, - const SDL_Rect * srcrect, - const SDL_Rect * dstrect, - const double angle, - const SDL_Point *center, - const SDL_RendererFlip flip); - - -/** - * Draw a point on the current rendering target at subpixel precision. - * - * \param renderer The renderer which should draw a point. - * \param x The x coordinate of the point. - * \param y The y coordinate of the point. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawPointF(SDL_Renderer * renderer, - float x, float y); - -/** - * Draw multiple points on the current rendering target at subpixel precision. - * - * \param renderer The renderer which should draw multiple points. - * \param points The points to draw - * \param count The number of points to draw - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawPointsF(SDL_Renderer * renderer, - const SDL_FPoint * points, - int count); - -/** - * Draw a line on the current rendering target at subpixel precision. - * - * \param renderer The renderer which should draw a line. - * \param x1 The x coordinate of the start point. - * \param y1 The y coordinate of the start point. - * \param x2 The x coordinate of the end point. - * \param y2 The y coordinate of the end point. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawLineF(SDL_Renderer * renderer, - float x1, float y1, float x2, float y2); - -/** - * Draw a series of connected lines on the current rendering target at - * subpixel precision. - * - * \param renderer The renderer which should draw multiple lines. - * \param points The points along the lines - * \param count The number of points, drawing count-1 lines - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawLinesF(SDL_Renderer * renderer, - const SDL_FPoint * points, - int count); - -/** - * Draw a rectangle on the current rendering target at subpixel precision. - * - * \param renderer The renderer which should draw a rectangle. - * \param rect A pointer to the destination rectangle, or NULL to outline the - * entire rendering target. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawRectF(SDL_Renderer * renderer, - const SDL_FRect * rect); - -/** - * Draw some number of rectangles on the current rendering target at subpixel - * precision. - * - * \param renderer The renderer which should draw multiple rectangles. - * \param rects A pointer to an array of destination rectangles. - * \param count The number of rectangles. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawRectsF(SDL_Renderer * renderer, - const SDL_FRect * rects, - int count); - -/** - * Fill a rectangle on the current rendering target with the drawing color at - * subpixel precision. - * - * \param renderer The renderer which should fill a rectangle. - * \param rect A pointer to the destination rectangle, or NULL for the entire - * rendering target. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderFillRectF(SDL_Renderer * renderer, - const SDL_FRect * rect); - -/** - * Fill some number of rectangles on the current rendering target with the - * drawing color at subpixel precision. - * - * \param renderer The renderer which should fill multiple rectangles. - * \param rects A pointer to an array of destination rectangles. - * \param count The number of rectangles. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderFillRectsF(SDL_Renderer * renderer, - const SDL_FRect * rects, - int count); - -/** - * Copy a portion of the texture to the current rendering target at subpixel - * precision. - * - * \param renderer The renderer which should copy parts of a texture. - * \param texture The source texture. - * \param srcrect A pointer to the source rectangle, or NULL for the entire - * texture. - * \param dstrect A pointer to the destination rectangle, or NULL for the - * entire rendering target. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderCopyF(SDL_Renderer * renderer, - SDL_Texture * texture, - const SDL_Rect * srcrect, - const SDL_FRect * dstrect); - -/** - * Copy a portion of the source texture to the current rendering target, with - * rotation and flipping, at subpixel precision. - * - * \param renderer The renderer which should copy parts of a texture. - * \param texture The source texture. - * \param srcrect A pointer to the source rectangle, or NULL for the entire - * texture. - * \param dstrect A pointer to the destination rectangle, or NULL for the - * entire rendering target. - * \param angle An angle in degrees that indicates the rotation that will be - * applied to dstrect, rotating it in a clockwise direction - * \param center A pointer to a point indicating the point around which - * dstrect will be rotated (if NULL, rotation will be done - * around dstrect.w/2, dstrect.h/2). - * \param flip An SDL_RendererFlip value stating which flipping actions should - * be performed on the texture - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderCopyExF(SDL_Renderer * renderer, - SDL_Texture * texture, - const SDL_Rect * srcrect, - const SDL_FRect * dstrect, - const double angle, - const SDL_FPoint *center, - const SDL_RendererFlip flip); - -/** - * Render a list of triangles, optionally using a texture and indices into the - * vertex array Color and alpha modulation is done per vertex - * (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored). - * - * \param renderer The rendering context. - * \param texture (optional) The SDL texture to use. - * \param vertices Vertices. - * \param num_vertices Number of vertices. - * \param indices (optional) An array of integer indices into the 'vertices' - * array, if NULL all vertices will be rendered in sequential - * order. - * \param num_indices Number of indices. - * \return 0 on success, or -1 if the operation is not supported - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_RenderGeometryRaw - * \sa SDL_Vertex - */ -extern DECLSPEC int SDLCALL SDL_RenderGeometry(SDL_Renderer *renderer, - SDL_Texture *texture, - const SDL_Vertex *vertices, int num_vertices, - const int *indices, int num_indices); - -/** - * Render a list of triangles, optionally using a texture and indices into the - * vertex arrays Color and alpha modulation is done per vertex - * (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored). - * - * \param renderer The rendering context. - * \param texture (optional) The SDL texture to use. - * \param xy Vertex positions - * \param xy_stride Byte size to move from one element to the next element - * \param color Vertex colors (as SDL_Color) - * \param color_stride Byte size to move from one element to the next element - * \param uv Vertex normalized texture coordinates - * \param uv_stride Byte size to move from one element to the next element - * \param num_vertices Number of vertices. - * \param indices (optional) An array of indices into the 'vertices' arrays, - * if NULL all vertices will be rendered in sequential order. - * \param num_indices Number of indices. - * \param size_indices Index size: 1 (byte), 2 (short), 4 (int) - * \return 0 on success, or -1 if the operation is not supported - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_RenderGeometry - * \sa SDL_Vertex - */ -extern DECLSPEC int SDLCALL SDL_RenderGeometryRaw(SDL_Renderer *renderer, - SDL_Texture *texture, - const float *xy, int xy_stride, - const SDL_Color *color, int color_stride, - const float *uv, int uv_stride, - int num_vertices, - const void *indices, int num_indices, int size_indices); - -/** - * Read pixels from the current rendering target to an array of pixels. - * - * **WARNING**: This is a very slow operation, and should not be used - * frequently. If you're using this on the main rendering target, it should be - * called after rendering and before SDL_RenderPresent(). - * - * `pitch` specifies the number of bytes between rows in the destination - * `pixels` data. This allows you to write to a subrectangle or have padded - * rows in the destination. Generally, `pitch` should equal the number of - * pixels per row in the `pixels` data times the number of bytes per pixel, - * but it might contain additional padding (for example, 24bit RGB Windows - * Bitmap data pads all rows to multiples of 4 bytes). - * - * \param renderer the rendering context - * \param rect an SDL_Rect structure representing the area to read, or NULL - * for the entire render target - * \param format an SDL_PixelFormatEnum value of the desired format of the - * pixel data, or 0 to use the format of the rendering target - * \param pixels a pointer to the pixel data to copy into - * \param pitch the pitch of the `pixels` parameter - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_RenderReadPixels(SDL_Renderer * renderer, - const SDL_Rect * rect, - Uint32 format, - void *pixels, int pitch); - -/** - * Update the screen with any rendering performed since the previous call. - * - * SDL's rendering functions operate on a backbuffer; that is, calling a - * rendering function such as SDL_RenderDrawLine() does not directly put a - * line on the screen, but rather updates the backbuffer. As such, you compose - * your entire scene and *present* the composed backbuffer to the screen as a - * complete picture. - * - * Therefore, when using SDL's rendering API, one does all drawing intended - * for the frame, and then calls this function once per frame to present the - * final drawing to the user. - * - * The backbuffer should be considered invalidated after each present; do not - * assume that previous contents will exist between frames. You are strongly - * encouraged to call SDL_RenderClear() to initialize the backbuffer before - * starting each new frame's drawing, even if you plan to overwrite every - * pixel. - * - * \param renderer the rendering context - * - * \threadsafety You may only call this function on the main thread. If this - * happens to work on a background thread on any given platform - * or backend, it's purely by luck and you should not rely on it - * to work next time. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderClear - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC void SDLCALL SDL_RenderPresent(SDL_Renderer * renderer); - -/** - * Destroy the specified texture. - * - * Passing NULL or an otherwise invalid texture will set the SDL error message - * to "Invalid texture". - * - * \param texture the texture to destroy - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateTexture - * \sa SDL_CreateTextureFromSurface - */ -extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_Texture * texture); - -/** - * Destroy the rendering context for a window and free associated textures. - * - * If `renderer` is NULL, this function will return immediately after setting - * the SDL error message to "Invalid renderer". See SDL_GetError(). - * - * \param renderer the rendering context - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - */ -extern DECLSPEC void SDLCALL SDL_DestroyRenderer(SDL_Renderer * renderer); - -/** - * Force the rendering context to flush any pending commands to the underlying - * rendering API. - * - * You do not need to (and in fact, shouldn't) call this function unless you - * are planning to call into OpenGL/Direct3D/Metal/whatever directly in - * addition to using an SDL_Renderer. - * - * This is for a very-specific case: if you are using SDL's render API, you - * asked for a specific renderer backend (OpenGL, Direct3D, etc), you set - * SDL_HINT_RENDER_BATCHING to "1", and you plan to make OpenGL/D3D/whatever - * calls in addition to SDL render API calls. If all of this applies, you - * should call SDL_RenderFlush() between calls to SDL's render API and the - * low-level API you're using in cooperation. - * - * In all other cases, you can ignore this function. This is only here to get - * maximum performance out of a specific situation. In all other cases, SDL - * will do the right thing, perhaps at a performance loss. - * - * This function is first available in SDL 2.0.10, and is not needed in 2.0.9 - * and earlier, as earlier versions did not queue rendering commands at all, - * instead flushing them to the OS immediately. - * - * \param renderer the rendering context - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderFlush(SDL_Renderer * renderer); - - -/** - * Bind an OpenGL/ES/ES2 texture to the current context. - * - * This is for use with OpenGL instructions when rendering OpenGL primitives - * directly. - * - * If not NULL, `texw` and `texh` will be filled with the width and height - * values suitable for the provided texture. In most cases, both will be 1.0, - * however, on systems that support the GL_ARB_texture_rectangle extension, - * these values will actually be the pixel width and height used to create the - * texture, so this factor needs to be taken into account when providing - * texture coordinates to OpenGL. - * - * You need a renderer to create an SDL_Texture, therefore you can only use - * this function with an implicit OpenGL context from SDL_CreateRenderer(), - * not with your own OpenGL context. If you need control over your OpenGL - * context, you need to write your own texture-loading methods. - * - * Also note that SDL may upload RGB textures as BGR (or vice-versa), and - * re-order the color channels in the shaders phase, so the uploaded texture - * may have swapped color channels. - * - * \param texture the texture to bind to the current OpenGL/ES/ES2 context - * \param texw a pointer to a float value which will be filled with the - * texture width or NULL if you don't need that value - * \param texh a pointer to a float value which will be filled with the - * texture height or NULL if you don't need that value - * \returns 0 on success, or -1 if the operation is not supported; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_MakeCurrent - * \sa SDL_GL_UnbindTexture - */ -extern DECLSPEC int SDLCALL SDL_GL_BindTexture(SDL_Texture *texture, float *texw, float *texh); - -/** - * Unbind an OpenGL/ES/ES2 texture from the current context. - * - * See SDL_GL_BindTexture() for examples on how to use these functions - * - * \param texture the texture to unbind from the current OpenGL/ES/ES2 context - * \returns 0 on success, or -1 if the operation is not supported - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_BindTexture - * \sa SDL_GL_MakeCurrent - */ -extern DECLSPEC int SDLCALL SDL_GL_UnbindTexture(SDL_Texture *texture); - -/** - * Get the CAMetalLayer associated with the given Metal renderer. - * - * This function returns `void *`, so SDL doesn't have to include Metal's - * headers, but it can be safely cast to a `CAMetalLayer *`. - * - * \param renderer The renderer to query - * \returns a `CAMetalLayer *` on success, or NULL if the renderer isn't a - * Metal renderer - * - * \since This function is available since SDL 2.0.8. - * - * \sa SDL_RenderGetMetalCommandEncoder - */ -extern DECLSPEC void *SDLCALL SDL_RenderGetMetalLayer(SDL_Renderer * renderer); - -/** - * Get the Metal command encoder for the current frame - * - * This function returns `void *`, so SDL doesn't have to include Metal's - * headers, but it can be safely cast to an `id<MTLRenderCommandEncoder>`. - * - * Note that as of SDL 2.0.18, this will return NULL if Metal refuses to give - * SDL a drawable to render to, which might happen if the window is - * hidden/minimized/offscreen. This doesn't apply to command encoders for - * render targets, just the window's backbacker. Check your return values! - * - * \param renderer The renderer to query - * \returns an `id<MTLRenderCommandEncoder>` on success, or NULL if the - * renderer isn't a Metal renderer or there was an error. - * - * \since This function is available since SDL 2.0.8. - * - * \sa SDL_RenderGetMetalLayer - */ -extern DECLSPEC void *SDLCALL SDL_RenderGetMetalCommandEncoder(SDL_Renderer * renderer); - -/** - * Toggle VSync of the given renderer. - * - * \param renderer The renderer to toggle - * \param vsync 1 for on, 0 for off. All other values are reserved - * \returns a 0 int on success, or non-zero on failure - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_RenderSetVSync(SDL_Renderer* renderer, int vsync); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_render_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_revision.h b/lib/windows/include/SDL_revision.h deleted file mode 100644 index dd26edf..0000000 --- a/lib/windows/include/SDL_revision.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Generated by updaterev.sh, do not edit */ -#ifdef SDL_VENDOR_INFO -#define SDL_REVISION "SDL-release-2.28.0-0-gffa78e6be (" SDL_VENDOR_INFO ")" -#else -#define SDL_REVISION "SDL-release-2.28.0-0-gffa78e6be" -#endif -#define SDL_REVISION_NUMBER 0 diff --git a/lib/windows/include/SDL_rwops.h b/lib/windows/include/SDL_rwops.h deleted file mode 100644 index 8615cb5..0000000 --- a/lib/windows/include/SDL_rwops.h +++ /dev/null @@ -1,841 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_rwops.h - * - * This file provides a general interface for SDL to read and write - * data streams. It can easily be extended to files, memory, etc. - */ - -#ifndef SDL_rwops_h_ -#define SDL_rwops_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* RWops Types */ -#define SDL_RWOPS_UNKNOWN 0U /**< Unknown stream type */ -#define SDL_RWOPS_WINFILE 1U /**< Win32 file */ -#define SDL_RWOPS_STDFILE 2U /**< Stdio file */ -#define SDL_RWOPS_JNIFILE 3U /**< Android asset */ -#define SDL_RWOPS_MEMORY 4U /**< Memory stream */ -#define SDL_RWOPS_MEMORY_RO 5U /**< Read-Only memory stream */ - -/** - * This is the read/write operation structure -- very basic. - */ -typedef struct SDL_RWops -{ - /** - * Return the size of the file in this rwops, or -1 if unknown - */ - Sint64 (SDLCALL * size) (struct SDL_RWops * context); - - /** - * Seek to \c offset relative to \c whence, one of stdio's whence values: - * RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END - * - * \return the final offset in the data stream, or -1 on error. - */ - Sint64 (SDLCALL * seek) (struct SDL_RWops * context, Sint64 offset, - int whence); - - /** - * Read up to \c maxnum objects each of size \c size from the data - * stream to the area pointed at by \c ptr. - * - * \return the number of objects read, or 0 at error or end of file. - */ - size_t (SDLCALL * read) (struct SDL_RWops * context, void *ptr, - size_t size, size_t maxnum); - - /** - * Write exactly \c num objects each of size \c size from the area - * pointed at by \c ptr to data stream. - * - * \return the number of objects written, or 0 at error or end of file. - */ - size_t (SDLCALL * write) (struct SDL_RWops * context, const void *ptr, - size_t size, size_t num); - - /** - * Close and free an allocated SDL_RWops structure. - * - * \return 0 if successful or -1 on write error when flushing data. - */ - int (SDLCALL * close) (struct SDL_RWops * context); - - Uint32 type; - union - { -#if defined(__ANDROID__) - struct - { - void *asset; - } androidio; -#elif defined(__WIN32__) || defined(__GDK__) - struct - { - SDL_bool append; - void *h; - struct - { - void *data; - size_t size; - size_t left; - } buffer; - } windowsio; -#endif - -#ifdef HAVE_STDIO_H - struct - { - SDL_bool autoclose; - FILE *fp; - } stdio; -#endif - struct - { - Uint8 *base; - Uint8 *here; - Uint8 *stop; - } mem; - struct - { - void *data1; - void *data2; - } unknown; - } hidden; - -} SDL_RWops; - - -/** - * \name RWFrom functions - * - * Functions to create SDL_RWops structures from various data streams. - */ -/* @{ */ - -/** - * Use this function to create a new SDL_RWops structure for reading from - * and/or writing to a named file. - * - * The `mode` string is treated roughly the same as in a call to the C - * library's fopen(), even if SDL doesn't happen to use fopen() behind the - * scenes. - * - * Available `mode` strings: - * - * - "r": Open a file for reading. The file must exist. - * - "w": Create an empty file for writing. If a file with the same name - * already exists its content is erased and the file is treated as a new - * empty file. - * - "a": Append to a file. Writing operations append data at the end of the - * file. The file is created if it does not exist. - * - "r+": Open a file for update both reading and writing. The file must - * exist. - * - "w+": Create an empty file for both reading and writing. If a file with - * the same name already exists its content is erased and the file is - * treated as a new empty file. - * - "a+": Open a file for reading and appending. All writing operations are - * performed at the end of the file, protecting the previous content to be - * overwritten. You can reposition (fseek, rewind) the internal pointer to - * anywhere in the file for reading, but writing operations will move it - * back to the end of file. The file is created if it does not exist. - * - * **NOTE**: In order to open a file as a binary file, a "b" character has to - * be included in the `mode` string. This additional "b" character can either - * be appended at the end of the string (thus making the following compound - * modes: "rb", "wb", "ab", "r+b", "w+b", "a+b") or be inserted between the - * letter and the "+" sign for the mixed modes ("rb+", "wb+", "ab+"). - * Additional characters may follow the sequence, although they should have no - * effect. For example, "t" is sometimes appended to make explicit the file is - * a text file. - * - * This function supports Unicode filenames, but they must be encoded in UTF-8 - * format, regardless of the underlying operating system. - * - * As a fallback, SDL_RWFromFile() will transparently open a matching filename - * in an Android app's `assets`. - * - * Closing the SDL_RWops will close the file handle SDL is holding internally. - * - * \param file a UTF-8 string representing the filename to open - * \param mode an ASCII string representing the mode to be used for opening - * the file. - * \returns a pointer to the SDL_RWops structure that is created, or NULL on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - * \sa SDL_RWtell - * \sa SDL_RWwrite - */ -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFile(const char *file, - const char *mode); - -#ifdef HAVE_STDIO_H - -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFP(FILE * fp, SDL_bool autoclose); - -#else - -/** - * Use this function to create an SDL_RWops structure from a standard I/O file - * pointer (stdio.h's `FILE*`). - * - * This function is not available on Windows, since files opened in an - * application on that platform cannot be used by a dynamically linked - * library. - * - * On some platforms, the first parameter is a `void*`, on others, it's a - * `FILE*`, depending on what system headers are available to SDL. It is - * always intended to be the `FILE*` type from the C runtime's stdio.h. - * - * \param fp the `FILE*` that feeds the SDL_RWops stream - * \param autoclose SDL_TRUE to close the `FILE*` when closing the SDL_RWops, - * SDL_FALSE to leave the `FILE*` open when the RWops is - * closed - * \returns a pointer to the SDL_RWops structure that is created, or NULL on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - * \sa SDL_RWtell - * \sa SDL_RWwrite - */ -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFP(void * fp, - SDL_bool autoclose); -#endif - -/** - * Use this function to prepare a read-write memory buffer for use with - * SDL_RWops. - * - * This function sets up an SDL_RWops struct based on a memory area of a - * certain size, for both read and write access. - * - * This memory buffer is not copied by the RWops; the pointer you provide must - * remain valid until you close the stream. Closing the stream will not free - * the original buffer. - * - * If you need to make sure the RWops never writes to the memory buffer, you - * should use SDL_RWFromConstMem() with a read-only buffer of memory instead. - * - * \param mem a pointer to a buffer to feed an SDL_RWops stream - * \param size the buffer size, in bytes - * \returns a pointer to a new SDL_RWops structure, or NULL if it fails; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - * \sa SDL_RWtell - * \sa SDL_RWwrite - */ -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromMem(void *mem, int size); - -/** - * Use this function to prepare a read-only memory buffer for use with RWops. - * - * This function sets up an SDL_RWops struct based on a memory area of a - * certain size. It assumes the memory area is not writable. - * - * Attempting to write to this RWops stream will report an error without - * writing to the memory buffer. - * - * This memory buffer is not copied by the RWops; the pointer you provide must - * remain valid until you close the stream. Closing the stream will not free - * the original buffer. - * - * If you need to write to a memory buffer, you should use SDL_RWFromMem() - * with a writable buffer of memory instead. - * - * \param mem a pointer to a read-only buffer to feed an SDL_RWops stream - * \param size the buffer size, in bytes - * \returns a pointer to a new SDL_RWops structure, or NULL if it fails; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - * \sa SDL_RWtell - */ -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromConstMem(const void *mem, - int size); - -/* @} *//* RWFrom functions */ - - -/** - * Use this function to allocate an empty, unpopulated SDL_RWops structure. - * - * Applications do not need to use this function unless they are providing - * their own SDL_RWops implementation. If you just need a SDL_RWops to - * read/write a common data source, you should use the built-in - * implementations in SDL, like SDL_RWFromFile() or SDL_RWFromMem(), etc. - * - * You must free the returned pointer with SDL_FreeRW(). Depending on your - * operating system and compiler, there may be a difference between the - * malloc() and free() your program uses and the versions SDL calls - * internally. Trying to mix the two can cause crashing such as segmentation - * faults. Since all SDL_RWops must free themselves when their **close** - * method is called, all SDL_RWops must be allocated through this function, so - * they can all be freed correctly with SDL_FreeRW(). - * - * \returns a pointer to the allocated memory on success, or NULL on failure; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreeRW - */ -extern DECLSPEC SDL_RWops *SDLCALL SDL_AllocRW(void); - -/** - * Use this function to free an SDL_RWops structure allocated by - * SDL_AllocRW(). - * - * Applications do not need to use this function unless they are providing - * their own SDL_RWops implementation. If you just need a SDL_RWops to - * read/write a common data source, you should use the built-in - * implementations in SDL, like SDL_RWFromFile() or SDL_RWFromMem(), etc, and - * call the **close** method on those SDL_RWops pointers when you are done - * with them. - * - * Only use SDL_FreeRW() on pointers returned by SDL_AllocRW(). The pointer is - * invalid as soon as this function returns. Any extra memory allocated during - * creation of the SDL_RWops is not freed by SDL_FreeRW(); the programmer must - * be responsible for managing that memory in their **close** method. - * - * \param area the SDL_RWops structure to be freed - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocRW - */ -extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops * area); - -#define RW_SEEK_SET 0 /**< Seek from the beginning of data */ -#define RW_SEEK_CUR 1 /**< Seek relative to current read point */ -#define RW_SEEK_END 2 /**< Seek relative to the end of data */ - -/** - * Use this function to get the size of the data stream in an SDL_RWops. - * - * Prior to SDL 2.0.10, this function was a macro. - * - * \param context the SDL_RWops to get the size of the data stream from - * \returns the size of the data stream in the SDL_RWops on success, -1 if - * unknown or a negative error code on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC Sint64 SDLCALL SDL_RWsize(SDL_RWops *context); - -/** - * Seek within an SDL_RWops data stream. - * - * This function seeks to byte `offset`, relative to `whence`. - * - * `whence` may be any of the following values: - * - * - `RW_SEEK_SET`: seek from the beginning of data - * - `RW_SEEK_CUR`: seek relative to current read point - * - `RW_SEEK_END`: seek relative to the end of data - * - * If this stream can not seek, it will return -1. - * - * SDL_RWseek() is actually a wrapper function that calls the SDL_RWops's - * `seek` method appropriately, to simplify application development. - * - * Prior to SDL 2.0.10, this function was a macro. - * - * \param context a pointer to an SDL_RWops structure - * \param offset an offset in bytes, relative to **whence** location; can be - * negative - * \param whence any of `RW_SEEK_SET`, `RW_SEEK_CUR`, `RW_SEEK_END` - * \returns the final offset in the data stream after the seek or -1 on error. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWtell - * \sa SDL_RWwrite - */ -extern DECLSPEC Sint64 SDLCALL SDL_RWseek(SDL_RWops *context, - Sint64 offset, int whence); - -/** - * Determine the current read/write offset in an SDL_RWops data stream. - * - * SDL_RWtell is actually a wrapper function that calls the SDL_RWops's `seek` - * method, with an offset of 0 bytes from `RW_SEEK_CUR`, to simplify - * application development. - * - * Prior to SDL 2.0.10, this function was a macro. - * - * \param context a SDL_RWops data stream object from which to get the current - * offset - * \returns the current offset in the stream, or -1 if the information can not - * be determined. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - * \sa SDL_RWwrite - */ -extern DECLSPEC Sint64 SDLCALL SDL_RWtell(SDL_RWops *context); - -/** - * Read from a data source. - * - * This function reads up to `maxnum` objects each of size `size` from the - * data source to the area pointed at by `ptr`. This function may read less - * objects than requested. It will return zero when there has been an error or - * the data stream is completely read. - * - * SDL_RWread() is actually a function wrapper that calls the SDL_RWops's - * `read` method appropriately, to simplify application development. - * - * Prior to SDL 2.0.10, this function was a macro. - * - * \param context a pointer to an SDL_RWops structure - * \param ptr a pointer to a buffer to read data into - * \param size the size of each object to read, in bytes - * \param maxnum the maximum number of objects to be read - * \returns the number of objects read, or 0 at error or end of file; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWseek - * \sa SDL_RWwrite - */ -extern DECLSPEC size_t SDLCALL SDL_RWread(SDL_RWops *context, - void *ptr, size_t size, - size_t maxnum); - -/** - * Write to an SDL_RWops data stream. - * - * This function writes exactly `num` objects each of size `size` from the - * area pointed at by `ptr` to the stream. If this fails for any reason, it'll - * return less than `num` to demonstrate how far the write progressed. On - * success, it returns `num`. - * - * SDL_RWwrite is actually a function wrapper that calls the SDL_RWops's - * `write` method appropriately, to simplify application development. - * - * Prior to SDL 2.0.10, this function was a macro. - * - * \param context a pointer to an SDL_RWops structure - * \param ptr a pointer to a buffer containing data to write - * \param size the size of an object to write, in bytes - * \param num the number of objects to write - * \returns the number of objects written, which will be less than **num** on - * error; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - */ -extern DECLSPEC size_t SDLCALL SDL_RWwrite(SDL_RWops *context, - const void *ptr, size_t size, - size_t num); - -/** - * Close and free an allocated SDL_RWops structure. - * - * SDL_RWclose() closes and cleans up the SDL_RWops stream. It releases any - * resources used by the stream and frees the SDL_RWops itself with - * SDL_FreeRW(). This returns 0 on success, or -1 if the stream failed to - * flush to its output (e.g. to disk). - * - * Note that if this fails to flush the stream to disk, this function reports - * an error, but the SDL_RWops is still invalid once this function returns. - * - * Prior to SDL 2.0.10, this function was a macro. - * - * \param context SDL_RWops structure to close - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - * \sa SDL_RWwrite - */ -extern DECLSPEC int SDLCALL SDL_RWclose(SDL_RWops *context); - -/** - * Load all the data from an SDL data stream. - * - * The data is allocated with a zero byte at the end (null terminated) for - * convenience. This extra byte is not included in the value reported via - * `datasize`. - * - * The data should be freed with SDL_free(). - * - * \param src the SDL_RWops to read all available data from - * \param datasize if not NULL, will store the number of bytes read - * \param freesrc if non-zero, calls SDL_RWclose() on `src` before returning - * \returns the data, or NULL if there was an error. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC void *SDLCALL SDL_LoadFile_RW(SDL_RWops *src, - size_t *datasize, - int freesrc); - -/** - * Load all the data from a file path. - * - * The data is allocated with a zero byte at the end (null terminated) for - * convenience. This extra byte is not included in the value reported via - * `datasize`. - * - * The data should be freed with SDL_free(). - * - * Prior to SDL 2.0.10, this function was a macro wrapping around - * SDL_LoadFile_RW. - * - * \param file the path to read all available data from - * \param datasize if not NULL, will store the number of bytes read - * \returns the data, or NULL if there was an error. - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC void *SDLCALL SDL_LoadFile(const char *file, size_t *datasize); - -/** - * \name Read endian functions - * - * Read an item of the specified endianness and return in native format. - */ -/* @{ */ - -/** - * Use this function to read a byte from an SDL_RWops. - * - * \param src the SDL_RWops to read from - * \returns the read byte on success or 0 on failure; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteU8 - */ -extern DECLSPEC Uint8 SDLCALL SDL_ReadU8(SDL_RWops * src); - -/** - * Use this function to read 16 bits of little-endian data from an SDL_RWops - * and return in native format. - * - * SDL byteswaps the data only if necessary, so the data returned will be in - * the native byte order. - * - * \param src the stream from which to read data - * \returns 16 bits of data in the native byte order of the platform. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadBE16 - */ -extern DECLSPEC Uint16 SDLCALL SDL_ReadLE16(SDL_RWops * src); - -/** - * Use this function to read 16 bits of big-endian data from an SDL_RWops and - * return in native format. - * - * SDL byteswaps the data only if necessary, so the data returned will be in - * the native byte order. - * - * \param src the stream from which to read data - * \returns 16 bits of data in the native byte order of the platform. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadLE16 - */ -extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops * src); - -/** - * Use this function to read 32 bits of little-endian data from an SDL_RWops - * and return in native format. - * - * SDL byteswaps the data only if necessary, so the data returned will be in - * the native byte order. - * - * \param src the stream from which to read data - * \returns 32 bits of data in the native byte order of the platform. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadBE32 - */ -extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops * src); - -/** - * Use this function to read 32 bits of big-endian data from an SDL_RWops and - * return in native format. - * - * SDL byteswaps the data only if necessary, so the data returned will be in - * the native byte order. - * - * \param src the stream from which to read data - * \returns 32 bits of data in the native byte order of the platform. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadLE32 - */ -extern DECLSPEC Uint32 SDLCALL SDL_ReadBE32(SDL_RWops * src); - -/** - * Use this function to read 64 bits of little-endian data from an SDL_RWops - * and return in native format. - * - * SDL byteswaps the data only if necessary, so the data returned will be in - * the native byte order. - * - * \param src the stream from which to read data - * \returns 64 bits of data in the native byte order of the platform. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadBE64 - */ -extern DECLSPEC Uint64 SDLCALL SDL_ReadLE64(SDL_RWops * src); - -/** - * Use this function to read 64 bits of big-endian data from an SDL_RWops and - * return in native format. - * - * SDL byteswaps the data only if necessary, so the data returned will be in - * the native byte order. - * - * \param src the stream from which to read data - * \returns 64 bits of data in the native byte order of the platform. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadLE64 - */ -extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops * src); -/* @} *//* Read endian functions */ - -/** - * \name Write endian functions - * - * Write an item of native format to the specified endianness. - */ -/* @{ */ - -/** - * Use this function to write a byte to an SDL_RWops. - * - * \param dst the SDL_RWops to write to - * \param value the byte value to write - * \returns 1 on success or 0 on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadU8 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteU8(SDL_RWops * dst, Uint8 value); - -/** - * Use this function to write 16 bits in native format to a SDL_RWops as - * little-endian data. - * - * SDL byteswaps the data only if necessary, so the application always - * specifies native format, and the data written will be in little-endian - * format. - * - * \param dst the stream to which data will be written - * \param value the data to be written, in native format - * \returns 1 on successful write, 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteBE16 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteLE16(SDL_RWops * dst, Uint16 value); - -/** - * Use this function to write 16 bits in native format to a SDL_RWops as - * big-endian data. - * - * SDL byteswaps the data only if necessary, so the application always - * specifies native format, and the data written will be in big-endian format. - * - * \param dst the stream to which data will be written - * \param value the data to be written, in native format - * \returns 1 on successful write, 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteLE16 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteBE16(SDL_RWops * dst, Uint16 value); - -/** - * Use this function to write 32 bits in native format to a SDL_RWops as - * little-endian data. - * - * SDL byteswaps the data only if necessary, so the application always - * specifies native format, and the data written will be in little-endian - * format. - * - * \param dst the stream to which data will be written - * \param value the data to be written, in native format - * \returns 1 on successful write, 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteBE32 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteLE32(SDL_RWops * dst, Uint32 value); - -/** - * Use this function to write 32 bits in native format to a SDL_RWops as - * big-endian data. - * - * SDL byteswaps the data only if necessary, so the application always - * specifies native format, and the data written will be in big-endian format. - * - * \param dst the stream to which data will be written - * \param value the data to be written, in native format - * \returns 1 on successful write, 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteLE32 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteBE32(SDL_RWops * dst, Uint32 value); - -/** - * Use this function to write 64 bits in native format to a SDL_RWops as - * little-endian data. - * - * SDL byteswaps the data only if necessary, so the application always - * specifies native format, and the data written will be in little-endian - * format. - * - * \param dst the stream to which data will be written - * \param value the data to be written, in native format - * \returns 1 on successful write, 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteBE64 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteLE64(SDL_RWops * dst, Uint64 value); - -/** - * Use this function to write 64 bits in native format to a SDL_RWops as - * big-endian data. - * - * SDL byteswaps the data only if necessary, so the application always - * specifies native format, and the data written will be in big-endian format. - * - * \param dst the stream to which data will be written - * \param value the data to be written, in native format - * \returns 1 on successful write, 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteLE64 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteBE64(SDL_RWops * dst, Uint64 value); -/* @} *//* Write endian functions */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_rwops_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_scancode.h b/lib/windows/include/SDL_scancode.h deleted file mode 100644 index a960a79..0000000 --- a/lib/windows/include/SDL_scancode.h +++ /dev/null @@ -1,438 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_scancode.h - * - * Defines keyboard scancodes. - */ - -#ifndef SDL_scancode_h_ -#define SDL_scancode_h_ - -#include "SDL_stdinc.h" - -/** - * \brief The SDL keyboard scancode representation. - * - * Values of this type are used to represent keyboard keys, among other places - * in the \link SDL_Keysym::scancode key.keysym.scancode \endlink field of the - * SDL_Event structure. - * - * The values in this enumeration are based on the USB usage page standard: - * https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf - */ -typedef enum -{ - SDL_SCANCODE_UNKNOWN = 0, - - /** - * \name Usage page 0x07 - * - * These values are from usage page 0x07 (USB keyboard page). - */ - /* @{ */ - - SDL_SCANCODE_A = 4, - SDL_SCANCODE_B = 5, - SDL_SCANCODE_C = 6, - SDL_SCANCODE_D = 7, - SDL_SCANCODE_E = 8, - SDL_SCANCODE_F = 9, - SDL_SCANCODE_G = 10, - SDL_SCANCODE_H = 11, - SDL_SCANCODE_I = 12, - SDL_SCANCODE_J = 13, - SDL_SCANCODE_K = 14, - SDL_SCANCODE_L = 15, - SDL_SCANCODE_M = 16, - SDL_SCANCODE_N = 17, - SDL_SCANCODE_O = 18, - SDL_SCANCODE_P = 19, - SDL_SCANCODE_Q = 20, - SDL_SCANCODE_R = 21, - SDL_SCANCODE_S = 22, - SDL_SCANCODE_T = 23, - SDL_SCANCODE_U = 24, - SDL_SCANCODE_V = 25, - SDL_SCANCODE_W = 26, - SDL_SCANCODE_X = 27, - SDL_SCANCODE_Y = 28, - SDL_SCANCODE_Z = 29, - - SDL_SCANCODE_1 = 30, - SDL_SCANCODE_2 = 31, - SDL_SCANCODE_3 = 32, - SDL_SCANCODE_4 = 33, - SDL_SCANCODE_5 = 34, - SDL_SCANCODE_6 = 35, - SDL_SCANCODE_7 = 36, - SDL_SCANCODE_8 = 37, - SDL_SCANCODE_9 = 38, - SDL_SCANCODE_0 = 39, - - SDL_SCANCODE_RETURN = 40, - SDL_SCANCODE_ESCAPE = 41, - SDL_SCANCODE_BACKSPACE = 42, - SDL_SCANCODE_TAB = 43, - SDL_SCANCODE_SPACE = 44, - - SDL_SCANCODE_MINUS = 45, - SDL_SCANCODE_EQUALS = 46, - SDL_SCANCODE_LEFTBRACKET = 47, - SDL_SCANCODE_RIGHTBRACKET = 48, - SDL_SCANCODE_BACKSLASH = 49, /**< Located at the lower left of the return - * key on ISO keyboards and at the right end - * of the QWERTY row on ANSI keyboards. - * Produces REVERSE SOLIDUS (backslash) and - * VERTICAL LINE in a US layout, REVERSE - * SOLIDUS and VERTICAL LINE in a UK Mac - * layout, NUMBER SIGN and TILDE in a UK - * Windows layout, DOLLAR SIGN and POUND SIGN - * in a Swiss German layout, NUMBER SIGN and - * APOSTROPHE in a German layout, GRAVE - * ACCENT and POUND SIGN in a French Mac - * layout, and ASTERISK and MICRO SIGN in a - * French Windows layout. - */ - SDL_SCANCODE_NONUSHASH = 50, /**< ISO USB keyboards actually use this code - * instead of 49 for the same key, but all - * OSes I've seen treat the two codes - * identically. So, as an implementor, unless - * your keyboard generates both of those - * codes and your OS treats them differently, - * you should generate SDL_SCANCODE_BACKSLASH - * instead of this code. As a user, you - * should not rely on this code because SDL - * will never generate it with most (all?) - * keyboards. - */ - SDL_SCANCODE_SEMICOLON = 51, - SDL_SCANCODE_APOSTROPHE = 52, - SDL_SCANCODE_GRAVE = 53, /**< Located in the top left corner (on both ANSI - * and ISO keyboards). Produces GRAVE ACCENT and - * TILDE in a US Windows layout and in US and UK - * Mac layouts on ANSI keyboards, GRAVE ACCENT - * and NOT SIGN in a UK Windows layout, SECTION - * SIGN and PLUS-MINUS SIGN in US and UK Mac - * layouts on ISO keyboards, SECTION SIGN and - * DEGREE SIGN in a Swiss German layout (Mac: - * only on ISO keyboards), CIRCUMFLEX ACCENT and - * DEGREE SIGN in a German layout (Mac: only on - * ISO keyboards), SUPERSCRIPT TWO and TILDE in a - * French Windows layout, COMMERCIAL AT and - * NUMBER SIGN in a French Mac layout on ISO - * keyboards, and LESS-THAN SIGN and GREATER-THAN - * SIGN in a Swiss German, German, or French Mac - * layout on ANSI keyboards. - */ - SDL_SCANCODE_COMMA = 54, - SDL_SCANCODE_PERIOD = 55, - SDL_SCANCODE_SLASH = 56, - - SDL_SCANCODE_CAPSLOCK = 57, - - SDL_SCANCODE_F1 = 58, - SDL_SCANCODE_F2 = 59, - SDL_SCANCODE_F3 = 60, - SDL_SCANCODE_F4 = 61, - SDL_SCANCODE_F5 = 62, - SDL_SCANCODE_F6 = 63, - SDL_SCANCODE_F7 = 64, - SDL_SCANCODE_F8 = 65, - SDL_SCANCODE_F9 = 66, - SDL_SCANCODE_F10 = 67, - SDL_SCANCODE_F11 = 68, - SDL_SCANCODE_F12 = 69, - - SDL_SCANCODE_PRINTSCREEN = 70, - SDL_SCANCODE_SCROLLLOCK = 71, - SDL_SCANCODE_PAUSE = 72, - SDL_SCANCODE_INSERT = 73, /**< insert on PC, help on some Mac keyboards (but - does send code 73, not 117) */ - SDL_SCANCODE_HOME = 74, - SDL_SCANCODE_PAGEUP = 75, - SDL_SCANCODE_DELETE = 76, - SDL_SCANCODE_END = 77, - SDL_SCANCODE_PAGEDOWN = 78, - SDL_SCANCODE_RIGHT = 79, - SDL_SCANCODE_LEFT = 80, - SDL_SCANCODE_DOWN = 81, - SDL_SCANCODE_UP = 82, - - SDL_SCANCODE_NUMLOCKCLEAR = 83, /**< num lock on PC, clear on Mac keyboards - */ - SDL_SCANCODE_KP_DIVIDE = 84, - SDL_SCANCODE_KP_MULTIPLY = 85, - SDL_SCANCODE_KP_MINUS = 86, - SDL_SCANCODE_KP_PLUS = 87, - SDL_SCANCODE_KP_ENTER = 88, - SDL_SCANCODE_KP_1 = 89, - SDL_SCANCODE_KP_2 = 90, - SDL_SCANCODE_KP_3 = 91, - SDL_SCANCODE_KP_4 = 92, - SDL_SCANCODE_KP_5 = 93, - SDL_SCANCODE_KP_6 = 94, - SDL_SCANCODE_KP_7 = 95, - SDL_SCANCODE_KP_8 = 96, - SDL_SCANCODE_KP_9 = 97, - SDL_SCANCODE_KP_0 = 98, - SDL_SCANCODE_KP_PERIOD = 99, - - SDL_SCANCODE_NONUSBACKSLASH = 100, /**< This is the additional key that ISO - * keyboards have over ANSI ones, - * located between left shift and Y. - * Produces GRAVE ACCENT and TILDE in a - * US or UK Mac layout, REVERSE SOLIDUS - * (backslash) and VERTICAL LINE in a - * US or UK Windows layout, and - * LESS-THAN SIGN and GREATER-THAN SIGN - * in a Swiss German, German, or French - * layout. */ - SDL_SCANCODE_APPLICATION = 101, /**< windows contextual menu, compose */ - SDL_SCANCODE_POWER = 102, /**< The USB document says this is a status flag, - * not a physical key - but some Mac keyboards - * do have a power key. */ - SDL_SCANCODE_KP_EQUALS = 103, - SDL_SCANCODE_F13 = 104, - SDL_SCANCODE_F14 = 105, - SDL_SCANCODE_F15 = 106, - SDL_SCANCODE_F16 = 107, - SDL_SCANCODE_F17 = 108, - SDL_SCANCODE_F18 = 109, - SDL_SCANCODE_F19 = 110, - SDL_SCANCODE_F20 = 111, - SDL_SCANCODE_F21 = 112, - SDL_SCANCODE_F22 = 113, - SDL_SCANCODE_F23 = 114, - SDL_SCANCODE_F24 = 115, - SDL_SCANCODE_EXECUTE = 116, - SDL_SCANCODE_HELP = 117, /**< AL Integrated Help Center */ - SDL_SCANCODE_MENU = 118, /**< Menu (show menu) */ - SDL_SCANCODE_SELECT = 119, - SDL_SCANCODE_STOP = 120, /**< AC Stop */ - SDL_SCANCODE_AGAIN = 121, /**< AC Redo/Repeat */ - SDL_SCANCODE_UNDO = 122, /**< AC Undo */ - SDL_SCANCODE_CUT = 123, /**< AC Cut */ - SDL_SCANCODE_COPY = 124, /**< AC Copy */ - SDL_SCANCODE_PASTE = 125, /**< AC Paste */ - SDL_SCANCODE_FIND = 126, /**< AC Find */ - SDL_SCANCODE_MUTE = 127, - SDL_SCANCODE_VOLUMEUP = 128, - SDL_SCANCODE_VOLUMEDOWN = 129, -/* not sure whether there's a reason to enable these */ -/* SDL_SCANCODE_LOCKINGCAPSLOCK = 130, */ -/* SDL_SCANCODE_LOCKINGNUMLOCK = 131, */ -/* SDL_SCANCODE_LOCKINGSCROLLLOCK = 132, */ - SDL_SCANCODE_KP_COMMA = 133, - SDL_SCANCODE_KP_EQUALSAS400 = 134, - - SDL_SCANCODE_INTERNATIONAL1 = 135, /**< used on Asian keyboards, see - footnotes in USB doc */ - SDL_SCANCODE_INTERNATIONAL2 = 136, - SDL_SCANCODE_INTERNATIONAL3 = 137, /**< Yen */ - SDL_SCANCODE_INTERNATIONAL4 = 138, - SDL_SCANCODE_INTERNATIONAL5 = 139, - SDL_SCANCODE_INTERNATIONAL6 = 140, - SDL_SCANCODE_INTERNATIONAL7 = 141, - SDL_SCANCODE_INTERNATIONAL8 = 142, - SDL_SCANCODE_INTERNATIONAL9 = 143, - SDL_SCANCODE_LANG1 = 144, /**< Hangul/English toggle */ - SDL_SCANCODE_LANG2 = 145, /**< Hanja conversion */ - SDL_SCANCODE_LANG3 = 146, /**< Katakana */ - SDL_SCANCODE_LANG4 = 147, /**< Hiragana */ - SDL_SCANCODE_LANG5 = 148, /**< Zenkaku/Hankaku */ - SDL_SCANCODE_LANG6 = 149, /**< reserved */ - SDL_SCANCODE_LANG7 = 150, /**< reserved */ - SDL_SCANCODE_LANG8 = 151, /**< reserved */ - SDL_SCANCODE_LANG9 = 152, /**< reserved */ - - SDL_SCANCODE_ALTERASE = 153, /**< Erase-Eaze */ - SDL_SCANCODE_SYSREQ = 154, - SDL_SCANCODE_CANCEL = 155, /**< AC Cancel */ - SDL_SCANCODE_CLEAR = 156, - SDL_SCANCODE_PRIOR = 157, - SDL_SCANCODE_RETURN2 = 158, - SDL_SCANCODE_SEPARATOR = 159, - SDL_SCANCODE_OUT = 160, - SDL_SCANCODE_OPER = 161, - SDL_SCANCODE_CLEARAGAIN = 162, - SDL_SCANCODE_CRSEL = 163, - SDL_SCANCODE_EXSEL = 164, - - SDL_SCANCODE_KP_00 = 176, - SDL_SCANCODE_KP_000 = 177, - SDL_SCANCODE_THOUSANDSSEPARATOR = 178, - SDL_SCANCODE_DECIMALSEPARATOR = 179, - SDL_SCANCODE_CURRENCYUNIT = 180, - SDL_SCANCODE_CURRENCYSUBUNIT = 181, - SDL_SCANCODE_KP_LEFTPAREN = 182, - SDL_SCANCODE_KP_RIGHTPAREN = 183, - SDL_SCANCODE_KP_LEFTBRACE = 184, - SDL_SCANCODE_KP_RIGHTBRACE = 185, - SDL_SCANCODE_KP_TAB = 186, - SDL_SCANCODE_KP_BACKSPACE = 187, - SDL_SCANCODE_KP_A = 188, - SDL_SCANCODE_KP_B = 189, - SDL_SCANCODE_KP_C = 190, - SDL_SCANCODE_KP_D = 191, - SDL_SCANCODE_KP_E = 192, - SDL_SCANCODE_KP_F = 193, - SDL_SCANCODE_KP_XOR = 194, - SDL_SCANCODE_KP_POWER = 195, - SDL_SCANCODE_KP_PERCENT = 196, - SDL_SCANCODE_KP_LESS = 197, - SDL_SCANCODE_KP_GREATER = 198, - SDL_SCANCODE_KP_AMPERSAND = 199, - SDL_SCANCODE_KP_DBLAMPERSAND = 200, - SDL_SCANCODE_KP_VERTICALBAR = 201, - SDL_SCANCODE_KP_DBLVERTICALBAR = 202, - SDL_SCANCODE_KP_COLON = 203, - SDL_SCANCODE_KP_HASH = 204, - SDL_SCANCODE_KP_SPACE = 205, - SDL_SCANCODE_KP_AT = 206, - SDL_SCANCODE_KP_EXCLAM = 207, - SDL_SCANCODE_KP_MEMSTORE = 208, - SDL_SCANCODE_KP_MEMRECALL = 209, - SDL_SCANCODE_KP_MEMCLEAR = 210, - SDL_SCANCODE_KP_MEMADD = 211, - SDL_SCANCODE_KP_MEMSUBTRACT = 212, - SDL_SCANCODE_KP_MEMMULTIPLY = 213, - SDL_SCANCODE_KP_MEMDIVIDE = 214, - SDL_SCANCODE_KP_PLUSMINUS = 215, - SDL_SCANCODE_KP_CLEAR = 216, - SDL_SCANCODE_KP_CLEARENTRY = 217, - SDL_SCANCODE_KP_BINARY = 218, - SDL_SCANCODE_KP_OCTAL = 219, - SDL_SCANCODE_KP_DECIMAL = 220, - SDL_SCANCODE_KP_HEXADECIMAL = 221, - - SDL_SCANCODE_LCTRL = 224, - SDL_SCANCODE_LSHIFT = 225, - SDL_SCANCODE_LALT = 226, /**< alt, option */ - SDL_SCANCODE_LGUI = 227, /**< windows, command (apple), meta */ - SDL_SCANCODE_RCTRL = 228, - SDL_SCANCODE_RSHIFT = 229, - SDL_SCANCODE_RALT = 230, /**< alt gr, option */ - SDL_SCANCODE_RGUI = 231, /**< windows, command (apple), meta */ - - SDL_SCANCODE_MODE = 257, /**< I'm not sure if this is really not covered - * by any of the above, but since there's a - * special KMOD_MODE for it I'm adding it here - */ - - /* @} *//* Usage page 0x07 */ - - /** - * \name Usage page 0x0C - * - * These values are mapped from usage page 0x0C (USB consumer page). - * See https://usb.org/sites/default/files/hut1_2.pdf - * - * There are way more keys in the spec than we can represent in the - * current scancode range, so pick the ones that commonly come up in - * real world usage. - */ - /* @{ */ - - SDL_SCANCODE_AUDIONEXT = 258, - SDL_SCANCODE_AUDIOPREV = 259, - SDL_SCANCODE_AUDIOSTOP = 260, - SDL_SCANCODE_AUDIOPLAY = 261, - SDL_SCANCODE_AUDIOMUTE = 262, - SDL_SCANCODE_MEDIASELECT = 263, - SDL_SCANCODE_WWW = 264, /**< AL Internet Browser */ - SDL_SCANCODE_MAIL = 265, - SDL_SCANCODE_CALCULATOR = 266, /**< AL Calculator */ - SDL_SCANCODE_COMPUTER = 267, - SDL_SCANCODE_AC_SEARCH = 268, /**< AC Search */ - SDL_SCANCODE_AC_HOME = 269, /**< AC Home */ - SDL_SCANCODE_AC_BACK = 270, /**< AC Back */ - SDL_SCANCODE_AC_FORWARD = 271, /**< AC Forward */ - SDL_SCANCODE_AC_STOP = 272, /**< AC Stop */ - SDL_SCANCODE_AC_REFRESH = 273, /**< AC Refresh */ - SDL_SCANCODE_AC_BOOKMARKS = 274, /**< AC Bookmarks */ - - /* @} *//* Usage page 0x0C */ - - /** - * \name Walther keys - * - * These are values that Christian Walther added (for mac keyboard?). - */ - /* @{ */ - - SDL_SCANCODE_BRIGHTNESSDOWN = 275, - SDL_SCANCODE_BRIGHTNESSUP = 276, - SDL_SCANCODE_DISPLAYSWITCH = 277, /**< display mirroring/dual display - switch, video mode switch */ - SDL_SCANCODE_KBDILLUMTOGGLE = 278, - SDL_SCANCODE_KBDILLUMDOWN = 279, - SDL_SCANCODE_KBDILLUMUP = 280, - SDL_SCANCODE_EJECT = 281, - SDL_SCANCODE_SLEEP = 282, /**< SC System Sleep */ - - SDL_SCANCODE_APP1 = 283, - SDL_SCANCODE_APP2 = 284, - - /* @} *//* Walther keys */ - - /** - * \name Usage page 0x0C (additional media keys) - * - * These values are mapped from usage page 0x0C (USB consumer page). - */ - /* @{ */ - - SDL_SCANCODE_AUDIOREWIND = 285, - SDL_SCANCODE_AUDIOFASTFORWARD = 286, - - /* @} *//* Usage page 0x0C (additional media keys) */ - - /** - * \name Mobile keys - * - * These are values that are often used on mobile phones. - */ - /* @{ */ - - SDL_SCANCODE_SOFTLEFT = 287, /**< Usually situated below the display on phones and - used as a multi-function feature key for selecting - a software defined function shown on the bottom left - of the display. */ - SDL_SCANCODE_SOFTRIGHT = 288, /**< Usually situated below the display on phones and - used as a multi-function feature key for selecting - a software defined function shown on the bottom right - of the display. */ - SDL_SCANCODE_CALL = 289, /**< Used for accepting phone calls. */ - SDL_SCANCODE_ENDCALL = 290, /**< Used for rejecting phone calls. */ - - /* @} *//* Mobile keys */ - - /* Add any other keys here. */ - - SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes - for array bounds */ -} SDL_Scancode; - -#endif /* SDL_scancode_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_sensor.h b/lib/windows/include/SDL_sensor.h deleted file mode 100644 index 9ecce44..0000000 --- a/lib/windows/include/SDL_sensor.h +++ /dev/null @@ -1,322 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_sensor.h - * - * Include file for SDL sensor event handling - * - */ - -#ifndef SDL_sensor_h_ -#define SDL_sensor_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -extern "C" { -/* *INDENT-ON* */ -#endif - -/** - * \brief SDL_sensor.h - * - * In order to use these functions, SDL_Init() must have been called - * with the ::SDL_INIT_SENSOR flag. This causes SDL to scan the system - * for sensors, and load appropriate drivers. - */ - -struct _SDL_Sensor; -typedef struct _SDL_Sensor SDL_Sensor; - -/** - * This is a unique ID for a sensor for the time it is connected to the system, - * and is never reused for the lifetime of the application. - * - * The ID value starts at 0 and increments from there. The value -1 is an invalid ID. - */ -typedef Sint32 SDL_SensorID; - -/* The different sensors defined by SDL - * - * Additional sensors may be available, using platform dependent semantics. - * - * Hare are the additional Android sensors: - * https://developer.android.com/reference/android/hardware/SensorEvent.html#values - */ -typedef enum -{ - SDL_SENSOR_INVALID = -1, /**< Returned for an invalid sensor */ - SDL_SENSOR_UNKNOWN, /**< Unknown sensor type */ - SDL_SENSOR_ACCEL, /**< Accelerometer */ - SDL_SENSOR_GYRO, /**< Gyroscope */ - SDL_SENSOR_ACCEL_L, /**< Accelerometer for left Joy-Con controller and Wii nunchuk */ - SDL_SENSOR_GYRO_L, /**< Gyroscope for left Joy-Con controller */ - SDL_SENSOR_ACCEL_R, /**< Accelerometer for right Joy-Con controller */ - SDL_SENSOR_GYRO_R /**< Gyroscope for right Joy-Con controller */ -} SDL_SensorType; - -/** - * Accelerometer sensor - * - * The accelerometer returns the current acceleration in SI meters per - * second squared. This measurement includes the force of gravity, so - * a device at rest will have an value of SDL_STANDARD_GRAVITY away - * from the center of the earth, which is a positive Y value. - * - * values[0]: Acceleration on the x axis - * values[1]: Acceleration on the y axis - * values[2]: Acceleration on the z axis - * - * For phones held in portrait mode and game controllers held in front of you, - * the axes are defined as follows: - * -X ... +X : left ... right - * -Y ... +Y : bottom ... top - * -Z ... +Z : farther ... closer - * - * The axis data is not changed when the phone is rotated. - * - * \sa SDL_GetDisplayOrientation() - */ -#define SDL_STANDARD_GRAVITY 9.80665f - -/** - * Gyroscope sensor - * - * The gyroscope returns the current rate of rotation in radians per second. - * The rotation is positive in the counter-clockwise direction. That is, - * an observer looking from a positive location on one of the axes would - * see positive rotation on that axis when it appeared to be rotating - * counter-clockwise. - * - * values[0]: Angular speed around the x axis (pitch) - * values[1]: Angular speed around the y axis (yaw) - * values[2]: Angular speed around the z axis (roll) - * - * For phones held in portrait mode and game controllers held in front of you, - * the axes are defined as follows: - * -X ... +X : left ... right - * -Y ... +Y : bottom ... top - * -Z ... +Z : farther ... closer - * - * The axis data is not changed when the phone or controller is rotated. - * - * \sa SDL_GetDisplayOrientation() - */ - -/* Function prototypes */ - -/** - * Locking for multi-threaded access to the sensor API - * - * If you are using the sensor API or handling events from multiple threads - * you should use these locking functions to protect access to the sensors. - * - * In particular, you are guaranteed that the sensor list won't change, so the - * API functions that take a sensor index will be valid, and sensor events - * will not be delivered. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC void SDLCALL SDL_LockSensors(void); -extern DECLSPEC void SDLCALL SDL_UnlockSensors(void); - -/** - * Count the number of sensors attached to the system right now. - * - * \returns the number of sensors detected. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_NumSensors(void); - -/** - * Get the implementation dependent name of a sensor. - * - * \param device_index The sensor to obtain name from - * \returns the sensor name, or NULL if `device_index` is out of range. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC const char *SDLCALL SDL_SensorGetDeviceName(int device_index); - -/** - * Get the type of a sensor. - * - * \param device_index The sensor to get the type from - * \returns the SDL_SensorType, or `SDL_SENSOR_INVALID` if `device_index` is - * out of range. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_SensorType SDLCALL SDL_SensorGetDeviceType(int device_index); - -/** - * Get the platform dependent type of a sensor. - * - * \param device_index The sensor to check - * \returns the sensor platform dependent type, or -1 if `device_index` is out - * of range. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_SensorGetDeviceNonPortableType(int device_index); - -/** - * Get the instance ID of a sensor. - * - * \param device_index The sensor to get instance id from - * \returns the sensor instance ID, or -1 if `device_index` is out of range. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_SensorID SDLCALL SDL_SensorGetDeviceInstanceID(int device_index); - -/** - * Open a sensor for use. - * - * \param device_index The sensor to open - * \returns an SDL_Sensor sensor object, or NULL if an error occurred. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_Sensor *SDLCALL SDL_SensorOpen(int device_index); - -/** - * Return the SDL_Sensor associated with an instance id. - * - * \param instance_id The sensor from instance id - * \returns an SDL_Sensor object. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_Sensor *SDLCALL SDL_SensorFromInstanceID(SDL_SensorID instance_id); - -/** - * Get the implementation dependent name of a sensor - * - * \param sensor The SDL_Sensor object - * \returns the sensor name, or NULL if `sensor` is NULL. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC const char *SDLCALL SDL_SensorGetName(SDL_Sensor *sensor); - -/** - * Get the type of a sensor. - * - * \param sensor The SDL_Sensor object to inspect - * \returns the SDL_SensorType type, or `SDL_SENSOR_INVALID` if `sensor` is - * NULL. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_SensorType SDLCALL SDL_SensorGetType(SDL_Sensor *sensor); - -/** - * Get the platform dependent type of a sensor. - * - * \param sensor The SDL_Sensor object to inspect - * \returns the sensor platform dependent type, or -1 if `sensor` is NULL. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_SensorGetNonPortableType(SDL_Sensor *sensor); - -/** - * Get the instance ID of a sensor. - * - * \param sensor The SDL_Sensor object to inspect - * \returns the sensor instance ID, or -1 if `sensor` is NULL. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_SensorID SDLCALL SDL_SensorGetInstanceID(SDL_Sensor *sensor); - -/** - * Get the current state of an opened sensor. - * - * The number of values and interpretation of the data is sensor dependent. - * - * \param sensor The SDL_Sensor object to query - * \param data A pointer filled with the current sensor state - * \param num_values The number of values to write to data - * \returns 0 or -1 if an error occurred. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_SensorGetData(SDL_Sensor *sensor, float *data, int num_values); - -/** - * Get the current state of an opened sensor with the timestamp of the last - * update. - * - * The number of values and interpretation of the data is sensor dependent. - * - * \param sensor The SDL_Sensor object to query - * \param timestamp A pointer filled with the timestamp in microseconds of the - * current sensor reading if available, or 0 if not - * \param data A pointer filled with the current sensor state - * \param num_values The number of values to write to data - * \returns 0 or -1 if an error occurred. - * - * \since This function is available since SDL 2.26.0. - */ -extern DECLSPEC int SDLCALL SDL_SensorGetDataWithTimestamp(SDL_Sensor *sensor, Uint64 *timestamp, float *data, int num_values); - -/** - * Close a sensor previously opened with SDL_SensorOpen(). - * - * \param sensor The SDL_Sensor object to close - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC void SDLCALL SDL_SensorClose(SDL_Sensor *sensor); - -/** - * Update the current state of the open sensors. - * - * This is called automatically by the event loop if sensor events are - * enabled. - * - * This needs to be called from the thread that initialized the sensor - * subsystem. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC void SDLCALL SDL_SensorUpdate(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -} -/* *INDENT-ON* */ -#endif -#include "close_code.h" - -#endif /* SDL_sensor_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_shape.h b/lib/windows/include/SDL_shape.h deleted file mode 100644 index f66babc..0000000 --- a/lib/windows/include/SDL_shape.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_shape_h_ -#define SDL_shape_h_ - -#include "SDL_stdinc.h" -#include "SDL_pixels.h" -#include "SDL_rect.h" -#include "SDL_surface.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** \file SDL_shape.h - * - * Header file for the shaped window API. - */ - -#define SDL_NONSHAPEABLE_WINDOW -1 -#define SDL_INVALID_SHAPE_ARGUMENT -2 -#define SDL_WINDOW_LACKS_SHAPE -3 - -/** - * Create a window that can be shaped with the specified position, dimensions, - * and flags. - * - * \param title The title of the window, in UTF-8 encoding. - * \param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or - * ::SDL_WINDOWPOS_UNDEFINED. - * \param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or - * ::SDL_WINDOWPOS_UNDEFINED. - * \param w The width of the window. - * \param h The height of the window. - * \param flags The flags for the window, a mask of SDL_WINDOW_BORDERLESS with - * any of the following: ::SDL_WINDOW_OPENGL, - * ::SDL_WINDOW_INPUT_GRABBED, ::SDL_WINDOW_HIDDEN, - * ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED, - * ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_BORDERLESS is always set, - * and ::SDL_WINDOW_FULLSCREEN is always unset. - * \return the window created, or NULL if window creation failed. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DestroyWindow - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_CreateShapedWindow(const char *title,unsigned int x,unsigned int y,unsigned int w,unsigned int h,Uint32 flags); - -/** - * Return whether the given window is a shaped window. - * - * \param window The window to query for being shaped. - * \return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if - * the window is unshaped or NULL. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateShapedWindow - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsShapedWindow(const SDL_Window *window); - -/** \brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union. */ -typedef enum { - /** \brief The default mode, a binarized alpha cutoff of 1. */ - ShapeModeDefault, - /** \brief A binarized alpha cutoff with a given integer value. */ - ShapeModeBinarizeAlpha, - /** \brief A binarized alpha cutoff with a given integer value, but with the opposite comparison. */ - ShapeModeReverseBinarizeAlpha, - /** \brief A color key is applied. */ - ShapeModeColorKey -} WindowShapeMode; - -#define SDL_SHAPEMODEALPHA(mode) (mode == ShapeModeDefault || mode == ShapeModeBinarizeAlpha || mode == ShapeModeReverseBinarizeAlpha) - -/** \brief A union containing parameters for shaped windows. */ -typedef union { - /** \brief A cutoff alpha value for binarization of the window shape's alpha channel. */ - Uint8 binarizationCutoff; - SDL_Color colorKey; -} SDL_WindowShapeParams; - -/** \brief A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents. */ -typedef struct SDL_WindowShapeMode { - /** \brief The mode of these window-shape parameters. */ - WindowShapeMode mode; - /** \brief Window-shape parameters. */ - SDL_WindowShapeParams parameters; -} SDL_WindowShapeMode; - -/** - * Set the shape and parameters of a shaped window. - * - * \param window The shaped window whose parameters should be set. - * \param shape A surface encoding the desired shape for the window. - * \param shape_mode The parameters to set for the shaped window. - * \return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on an invalid shape - * argument, or SDL_NONSHAPEABLE_WINDOW if the SDL_Window given does - * not reference a valid shaped window. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WindowShapeMode - * \sa SDL_GetShapedWindowMode - */ -extern DECLSPEC int SDLCALL SDL_SetWindowShape(SDL_Window *window,SDL_Surface *shape,SDL_WindowShapeMode *shape_mode); - -/** - * Get the shape parameters of a shaped window. - * - * \param window The shaped window whose parameters should be retrieved. - * \param shape_mode An empty shape-mode structure to fill, or NULL to check - * whether the window has a shape. - * \return 0 if the window has a shape and, provided shape_mode was not NULL, - * shape_mode has been filled with the mode data, - * SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped - * window, or SDL_WINDOW_LACKS_SHAPE if the SDL_Window given is a - * shapeable window currently lacking a shape. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WindowShapeMode - * \sa SDL_SetWindowShape - */ -extern DECLSPEC int SDLCALL SDL_GetShapedWindowMode(SDL_Window *window,SDL_WindowShapeMode *shape_mode); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_shape_h_ */ diff --git a/lib/windows/include/SDL_stdinc.h b/lib/windows/include/SDL_stdinc.h deleted file mode 100644 index 182ed86..0000000 --- a/lib/windows/include/SDL_stdinc.h +++ /dev/null @@ -1,838 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_stdinc.h - * - * This is a general header that includes C language support. - */ - -#ifndef SDL_stdinc_h_ -#define SDL_stdinc_h_ - -#include "SDL_config.h" - -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_STDIO_H -#include <stdio.h> -#endif -#if defined(STDC_HEADERS) -# include <stdlib.h> -# include <stddef.h> -# include <stdarg.h> -#else -# if defined(HAVE_STDLIB_H) -# include <stdlib.h> -# elif defined(HAVE_MALLOC_H) -# include <malloc.h> -# endif -# if defined(HAVE_STDDEF_H) -# include <stddef.h> -# endif -# if defined(HAVE_STDARG_H) -# include <stdarg.h> -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H) -# include <memory.h> -# endif -# include <string.h> -#endif -#ifdef HAVE_STRINGS_H -# include <strings.h> -#endif -#ifdef HAVE_WCHAR_H -# include <wchar.h> -#endif -#if defined(HAVE_INTTYPES_H) -# include <inttypes.h> -#elif defined(HAVE_STDINT_H) -# include <stdint.h> -#endif -#ifdef HAVE_CTYPE_H -# include <ctype.h> -#endif -#ifdef HAVE_MATH_H -# if defined(_MSC_VER) -/* Defining _USE_MATH_DEFINES is required to get M_PI to be defined on - Visual Studio. See http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx - for more information. -*/ -# ifndef _USE_MATH_DEFINES -# define _USE_MATH_DEFINES -# endif -# endif -# include <math.h> -#endif -#ifdef HAVE_FLOAT_H -# include <float.h> -#endif -#if defined(HAVE_ALLOCA) && !defined(alloca) -# if defined(HAVE_ALLOCA_H) -# include <alloca.h> -# elif defined(__GNUC__) -# define alloca __builtin_alloca -# elif defined(_MSC_VER) -# include <malloc.h> -# define alloca _alloca -# elif defined(__WATCOMC__) -# include <malloc.h> -# elif defined(__BORLANDC__) -# include <malloc.h> -# elif defined(__DMC__) -# include <stdlib.h> -# elif defined(__AIX__) -#pragma alloca -# elif defined(__MRC__) -void *alloca(unsigned); -# else -char *alloca(); -# endif -#endif - -#ifdef SIZE_MAX -# define SDL_SIZE_MAX SIZE_MAX -#else -# define SDL_SIZE_MAX ((size_t) -1) -#endif - -/** - * Check if the compiler supports a given builtin. - * Supported by virtually all clang versions and recent gcc. Use this - * instead of checking the clang version if possible. - */ -#ifdef __has_builtin -#define _SDL_HAS_BUILTIN(x) __has_builtin(x) -#else -#define _SDL_HAS_BUILTIN(x) 0 -#endif - -/** - * The number of elements in an array. - */ -#define SDL_arraysize(array) (sizeof(array)/sizeof(array[0])) -#define SDL_TABLESIZE(table) SDL_arraysize(table) - -/** - * Macro useful for building other macros with strings in them - * - * e.g. #define LOG_ERROR(X) OutputDebugString(SDL_STRINGIFY_ARG(__FUNCTION__) ": " X "\n") - */ -#define SDL_STRINGIFY_ARG(arg) #arg - -/** - * \name Cast operators - * - * Use proper C++ casts when compiled as C++ to be compatible with the option - * -Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above). - */ -/* @{ */ -#ifdef __cplusplus -#define SDL_reinterpret_cast(type, expression) reinterpret_cast<type>(expression) -#define SDL_static_cast(type, expression) static_cast<type>(expression) -#define SDL_const_cast(type, expression) const_cast<type>(expression) -#else -#define SDL_reinterpret_cast(type, expression) ((type)(expression)) -#define SDL_static_cast(type, expression) ((type)(expression)) -#define SDL_const_cast(type, expression) ((type)(expression)) -#endif -/* @} *//* Cast operators */ - -/* Define a four character code as a Uint32 */ -#define SDL_FOURCC(A, B, C, D) \ - ((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \ - (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \ - (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \ - (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24)) - -/** - * \name Basic data types - */ -/* @{ */ - -#ifdef __CC_ARM -/* ARM's compiler throws warnings if we use an enum: like "SDL_bool x = a < b;" */ -#define SDL_FALSE 0 -#define SDL_TRUE 1 -typedef int SDL_bool; -#else -typedef enum -{ - SDL_FALSE = 0, - SDL_TRUE = 1 -} SDL_bool; -#endif - -/** - * \brief A signed 8-bit integer type. - */ -#define SDL_MAX_SINT8 ((Sint8)0x7F) /* 127 */ -#define SDL_MIN_SINT8 ((Sint8)(~0x7F)) /* -128 */ -typedef int8_t Sint8; -/** - * \brief An unsigned 8-bit integer type. - */ -#define SDL_MAX_UINT8 ((Uint8)0xFF) /* 255 */ -#define SDL_MIN_UINT8 ((Uint8)0x00) /* 0 */ -typedef uint8_t Uint8; -/** - * \brief A signed 16-bit integer type. - */ -#define SDL_MAX_SINT16 ((Sint16)0x7FFF) /* 32767 */ -#define SDL_MIN_SINT16 ((Sint16)(~0x7FFF)) /* -32768 */ -typedef int16_t Sint16; -/** - * \brief An unsigned 16-bit integer type. - */ -#define SDL_MAX_UINT16 ((Uint16)0xFFFF) /* 65535 */ -#define SDL_MIN_UINT16 ((Uint16)0x0000) /* 0 */ -typedef uint16_t Uint16; -/** - * \brief A signed 32-bit integer type. - */ -#define SDL_MAX_SINT32 ((Sint32)0x7FFFFFFF) /* 2147483647 */ -#define SDL_MIN_SINT32 ((Sint32)(~0x7FFFFFFF)) /* -2147483648 */ -typedef int32_t Sint32; -/** - * \brief An unsigned 32-bit integer type. - */ -#define SDL_MAX_UINT32 ((Uint32)0xFFFFFFFFu) /* 4294967295 */ -#define SDL_MIN_UINT32 ((Uint32)0x00000000) /* 0 */ -typedef uint32_t Uint32; - -/** - * \brief A signed 64-bit integer type. - */ -#define SDL_MAX_SINT64 ((Sint64)0x7FFFFFFFFFFFFFFFll) /* 9223372036854775807 */ -#define SDL_MIN_SINT64 ((Sint64)(~0x7FFFFFFFFFFFFFFFll)) /* -9223372036854775808 */ -typedef int64_t Sint64; -/** - * \brief An unsigned 64-bit integer type. - */ -#define SDL_MAX_UINT64 ((Uint64)0xFFFFFFFFFFFFFFFFull) /* 18446744073709551615 */ -#define SDL_MIN_UINT64 ((Uint64)(0x0000000000000000ull)) /* 0 */ -typedef uint64_t Uint64; - -/* @} *//* Basic data types */ - -/** - * \name Floating-point constants - */ -/* @{ */ - -#ifdef FLT_EPSILON -#define SDL_FLT_EPSILON FLT_EPSILON -#else -#define SDL_FLT_EPSILON 1.1920928955078125e-07F /* 0x0.000002p0 */ -#endif - -/* @} *//* Floating-point constants */ - -/* Make sure we have macros for printing width-based integers. - * <stdint.h> should define these but this is not true all platforms. - * (for example win32) */ -#ifndef SDL_PRIs64 -#ifdef PRIs64 -#define SDL_PRIs64 PRIs64 -#elif defined(__WIN32__) || defined(__GDK__) -#define SDL_PRIs64 "I64d" -#elif defined(__LINUX__) && defined(__LP64__) -#define SDL_PRIs64 "ld" -#else -#define SDL_PRIs64 "lld" -#endif -#endif -#ifndef SDL_PRIu64 -#ifdef PRIu64 -#define SDL_PRIu64 PRIu64 -#elif defined(__WIN32__) || defined(__GDK__) -#define SDL_PRIu64 "I64u" -#elif defined(__LINUX__) && defined(__LP64__) -#define SDL_PRIu64 "lu" -#else -#define SDL_PRIu64 "llu" -#endif -#endif -#ifndef SDL_PRIx64 -#ifdef PRIx64 -#define SDL_PRIx64 PRIx64 -#elif defined(__WIN32__) || defined(__GDK__) -#define SDL_PRIx64 "I64x" -#elif defined(__LINUX__) && defined(__LP64__) -#define SDL_PRIx64 "lx" -#else -#define SDL_PRIx64 "llx" -#endif -#endif -#ifndef SDL_PRIX64 -#ifdef PRIX64 -#define SDL_PRIX64 PRIX64 -#elif defined(__WIN32__) || defined(__GDK__) -#define SDL_PRIX64 "I64X" -#elif defined(__LINUX__) && defined(__LP64__) -#define SDL_PRIX64 "lX" -#else -#define SDL_PRIX64 "llX" -#endif -#endif -#ifndef SDL_PRIs32 -#ifdef PRId32 -#define SDL_PRIs32 PRId32 -#else -#define SDL_PRIs32 "d" -#endif -#endif -#ifndef SDL_PRIu32 -#ifdef PRIu32 -#define SDL_PRIu32 PRIu32 -#else -#define SDL_PRIu32 "u" -#endif -#endif -#ifndef SDL_PRIx32 -#ifdef PRIx32 -#define SDL_PRIx32 PRIx32 -#else -#define SDL_PRIx32 "x" -#endif -#endif -#ifndef SDL_PRIX32 -#ifdef PRIX32 -#define SDL_PRIX32 PRIX32 -#else -#define SDL_PRIX32 "X" -#endif -#endif - -/* Annotations to help code analysis tools */ -#ifdef SDL_DISABLE_ANALYZE_MACROS -#define SDL_IN_BYTECAP(x) -#define SDL_INOUT_Z_CAP(x) -#define SDL_OUT_Z_CAP(x) -#define SDL_OUT_CAP(x) -#define SDL_OUT_BYTECAP(x) -#define SDL_OUT_Z_BYTECAP(x) -#define SDL_PRINTF_FORMAT_STRING -#define SDL_SCANF_FORMAT_STRING -#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) -#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) -#else -#if defined(_MSC_VER) && (_MSC_VER >= 1600) /* VS 2010 and above */ -#include <sal.h> - -#define SDL_IN_BYTECAP(x) _In_bytecount_(x) -#define SDL_INOUT_Z_CAP(x) _Inout_z_cap_(x) -#define SDL_OUT_Z_CAP(x) _Out_z_cap_(x) -#define SDL_OUT_CAP(x) _Out_cap_(x) -#define SDL_OUT_BYTECAP(x) _Out_bytecap_(x) -#define SDL_OUT_Z_BYTECAP(x) _Out_z_bytecap_(x) - -#define SDL_PRINTF_FORMAT_STRING _Printf_format_string_ -#define SDL_SCANF_FORMAT_STRING _Scanf_format_string_impl_ -#else -#define SDL_IN_BYTECAP(x) -#define SDL_INOUT_Z_CAP(x) -#define SDL_OUT_Z_CAP(x) -#define SDL_OUT_CAP(x) -#define SDL_OUT_BYTECAP(x) -#define SDL_OUT_Z_BYTECAP(x) -#define SDL_PRINTF_FORMAT_STRING -#define SDL_SCANF_FORMAT_STRING -#endif -#if defined(__GNUC__) -#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __printf__, fmtargnumber, fmtargnumber+1 ))) -#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __scanf__, fmtargnumber, fmtargnumber+1 ))) -#else -#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) -#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) -#endif -#endif /* SDL_DISABLE_ANALYZE_MACROS */ - -#ifndef SDL_COMPILE_TIME_ASSERT -#if defined(__cplusplus) -#if (__cplusplus >= 201103L) -#define SDL_COMPILE_TIME_ASSERT(name, x) static_assert(x, #x) -#endif -#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) -#define SDL_COMPILE_TIME_ASSERT(name, x) _Static_assert(x, #x) -#endif -#endif /* !SDL_COMPILE_TIME_ASSERT */ - -#ifndef SDL_COMPILE_TIME_ASSERT -/* universal, but may trigger -Wunused-local-typedefs */ -#define SDL_COMPILE_TIME_ASSERT(name, x) \ - typedef int SDL_compile_time_assert_ ## name[(x) * 2 - 1] -#endif - -/** \cond */ -#ifndef DOXYGEN_SHOULD_IGNORE_THIS -SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1); -SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1); -SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2); -SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2); -SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4); -SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4); -SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8); -SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8); -#endif /* DOXYGEN_SHOULD_IGNORE_THIS */ -/** \endcond */ - -/* Check to make sure enums are the size of ints, for structure packing. - For both Watcom C/C++ and Borland C/C++ the compiler option that makes - enums having the size of an int must be enabled. - This is "-b" for Borland C/C++ and "-ei" for Watcom C/C++ (v11). -*/ - -/** \cond */ -#ifndef DOXYGEN_SHOULD_IGNORE_THIS -#if !defined(__ANDROID__) && !defined(__VITA__) && !defined(__3DS__) - /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */ -typedef enum -{ - DUMMY_ENUM_VALUE -} SDL_DUMMY_ENUM; - -SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int)); -#endif -#endif /* DOXYGEN_SHOULD_IGNORE_THIS */ -/** \endcond */ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef HAVE_ALLOCA -#define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count)) -#define SDL_stack_free(data) -#else -#define SDL_stack_alloc(type, count) (type*)SDL_malloc(sizeof(type)*(count)) -#define SDL_stack_free(data) SDL_free(data) -#endif - -extern DECLSPEC void *SDLCALL SDL_malloc(size_t size); -extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size); -extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size); -extern DECLSPEC void SDLCALL SDL_free(void *mem); - -typedef void *(SDLCALL *SDL_malloc_func)(size_t size); -typedef void *(SDLCALL *SDL_calloc_func)(size_t nmemb, size_t size); -typedef void *(SDLCALL *SDL_realloc_func)(void *mem, size_t size); -typedef void (SDLCALL *SDL_free_func)(void *mem); - -/** - * Get the original set of SDL memory functions - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC void SDLCALL SDL_GetOriginalMemoryFunctions(SDL_malloc_func *malloc_func, - SDL_calloc_func *calloc_func, - SDL_realloc_func *realloc_func, - SDL_free_func *free_func); - -/** - * Get the current set of SDL memory functions - * - * \since This function is available since SDL 2.0.7. - */ -extern DECLSPEC void SDLCALL SDL_GetMemoryFunctions(SDL_malloc_func *malloc_func, - SDL_calloc_func *calloc_func, - SDL_realloc_func *realloc_func, - SDL_free_func *free_func); - -/** - * Replace SDL's memory allocation functions with a custom set - * - * \since This function is available since SDL 2.0.7. - */ -extern DECLSPEC int SDLCALL SDL_SetMemoryFunctions(SDL_malloc_func malloc_func, - SDL_calloc_func calloc_func, - SDL_realloc_func realloc_func, - SDL_free_func free_func); - -/** - * Get the number of outstanding (unfreed) allocations - * - * \since This function is available since SDL 2.0.7. - */ -extern DECLSPEC int SDLCALL SDL_GetNumAllocations(void); - -extern DECLSPEC char *SDLCALL SDL_getenv(const char *name); -extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite); - -extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (SDLCALL *compare) (const void *, const void *)); -extern DECLSPEC void * SDLCALL SDL_bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (SDLCALL *compare) (const void *, const void *)); - -extern DECLSPEC int SDLCALL SDL_abs(int x); - -/* NOTE: these double-evaluate their arguments, so you should never have side effects in the parameters */ -#define SDL_min(x, y) (((x) < (y)) ? (x) : (y)) -#define SDL_max(x, y) (((x) > (y)) ? (x) : (y)) -#define SDL_clamp(x, a, b) (((x) < (a)) ? (a) : (((x) > (b)) ? (b) : (x))) - -extern DECLSPEC int SDLCALL SDL_isalpha(int x); -extern DECLSPEC int SDLCALL SDL_isalnum(int x); -extern DECLSPEC int SDLCALL SDL_isblank(int x); -extern DECLSPEC int SDLCALL SDL_iscntrl(int x); -extern DECLSPEC int SDLCALL SDL_isdigit(int x); -extern DECLSPEC int SDLCALL SDL_isxdigit(int x); -extern DECLSPEC int SDLCALL SDL_ispunct(int x); -extern DECLSPEC int SDLCALL SDL_isspace(int x); -extern DECLSPEC int SDLCALL SDL_isupper(int x); -extern DECLSPEC int SDLCALL SDL_islower(int x); -extern DECLSPEC int SDLCALL SDL_isprint(int x); -extern DECLSPEC int SDLCALL SDL_isgraph(int x); -extern DECLSPEC int SDLCALL SDL_toupper(int x); -extern DECLSPEC int SDLCALL SDL_tolower(int x); - -extern DECLSPEC Uint16 SDLCALL SDL_crc16(Uint16 crc, const void *data, size_t len); -extern DECLSPEC Uint32 SDLCALL SDL_crc32(Uint32 crc, const void *data, size_t len); - -extern DECLSPEC void *SDLCALL SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c, size_t len); - -#define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x))) -#define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x))) -#define SDL_zeroa(x) SDL_memset((x), 0, sizeof((x))) - -#define SDL_copyp(dst, src) \ - { SDL_COMPILE_TIME_ASSERT(SDL_copyp, sizeof (*(dst)) == sizeof (*(src))); } \ - SDL_memcpy((dst), (src), sizeof (*(src))) - - -/* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */ -SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords) -{ -#if defined(__GNUC__) && defined(__i386__) - int u0, u1, u2; - __asm__ __volatile__ ( - "cld \n\t" - "rep ; stosl \n\t" - : "=&D" (u0), "=&a" (u1), "=&c" (u2) - : "0" (dst), "1" (val), "2" (SDL_static_cast(Uint32, dwords)) - : "memory" - ); -#else - size_t _n = (dwords + 3) / 4; - Uint32 *_p = SDL_static_cast(Uint32 *, dst); - Uint32 _val = (val); - if (dwords == 0) { - return; - } - switch (dwords % 4) { - case 0: do { *_p++ = _val; SDL_FALLTHROUGH; - case 3: *_p++ = _val; SDL_FALLTHROUGH; - case 2: *_p++ = _val; SDL_FALLTHROUGH; - case 1: *_p++ = _val; - } while ( --_n ); - } -#endif -} - -extern DECLSPEC void *SDLCALL SDL_memcpy(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len); - -extern DECLSPEC void *SDLCALL SDL_memmove(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len); -extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len); - -extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr); -extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); -extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); -extern DECLSPEC wchar_t *SDLCALL SDL_wcsdup(const wchar_t *wstr); -extern DECLSPEC wchar_t *SDLCALL SDL_wcsstr(const wchar_t *haystack, const wchar_t *needle); - -extern DECLSPEC int SDLCALL SDL_wcscmp(const wchar_t *str1, const wchar_t *str2); -extern DECLSPEC int SDLCALL SDL_wcsncmp(const wchar_t *str1, const wchar_t *str2, size_t maxlen); -extern DECLSPEC int SDLCALL SDL_wcscasecmp(const wchar_t *str1, const wchar_t *str2); -extern DECLSPEC int SDLCALL SDL_wcsncasecmp(const wchar_t *str1, const wchar_t *str2, size_t len); - -extern DECLSPEC size_t SDLCALL SDL_strlen(const char *str); -extern DECLSPEC size_t SDLCALL SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen); -extern DECLSPEC size_t SDLCALL SDL_utf8strlcpy(SDL_OUT_Z_CAP(dst_bytes) char *dst, const char *src, size_t dst_bytes); -extern DECLSPEC size_t SDLCALL SDL_strlcat(SDL_INOUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen); -extern DECLSPEC char *SDLCALL SDL_strdup(const char *str); -extern DECLSPEC char *SDLCALL SDL_strrev(char *str); -extern DECLSPEC char *SDLCALL SDL_strupr(char *str); -extern DECLSPEC char *SDLCALL SDL_strlwr(char *str); -extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c); -extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c); -extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle); -extern DECLSPEC char *SDLCALL SDL_strcasestr(const char *haystack, const char *needle); -extern DECLSPEC char *SDLCALL SDL_strtokr(char *s1, const char *s2, char **saveptr); -extern DECLSPEC size_t SDLCALL SDL_utf8strlen(const char *str); -extern DECLSPEC size_t SDLCALL SDL_utf8strnlen(const char *str, size_t bytes); - -extern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_ltoa(long value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *str, int radix); - -extern DECLSPEC int SDLCALL SDL_atoi(const char *str); -extern DECLSPEC double SDLCALL SDL_atof(const char *str); -extern DECLSPEC long SDLCALL SDL_strtol(const char *str, char **endp, int base); -extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *str, char **endp, int base); -extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *str, char **endp, int base); -extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *str, char **endp, int base); -extern DECLSPEC double SDLCALL SDL_strtod(const char *str, char **endp); - -extern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2); -extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen); -extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2); -extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t len); - -extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, SDL_SCANF_FORMAT_STRING const char *fmt, ...) SDL_SCANF_VARARG_FUNC(2); -extern DECLSPEC int SDLCALL SDL_vsscanf(const char *text, const char *fmt, va_list ap); -extern DECLSPEC int SDLCALL SDL_snprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, SDL_PRINTF_FORMAT_STRING const char *fmt, ... ) SDL_PRINTF_VARARG_FUNC(3); -extern DECLSPEC int SDLCALL SDL_vsnprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, const char *fmt, va_list ap); -extern DECLSPEC int SDLCALL SDL_asprintf(char **strp, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); -extern DECLSPEC int SDLCALL SDL_vasprintf(char **strp, const char *fmt, va_list ap); - -#ifndef HAVE_M_PI -#ifndef M_PI -#define M_PI 3.14159265358979323846264338327950288 /**< pi */ -#endif -#endif - -/** - * Use this function to compute arc cosine of `x`. - * - * The definition of `y = acos(x)` is `x = cos(y)`. - * - * Domain: `-1 <= x <= 1` - * - * Range: `0 <= y <= Pi` - * - * \param x floating point value, in radians. - * \returns arc cosine of `x`. - * - * \since This function is available since SDL 2.0.2. - */ -extern DECLSPEC double SDLCALL SDL_acos(double x); -extern DECLSPEC float SDLCALL SDL_acosf(float x); -extern DECLSPEC double SDLCALL SDL_asin(double x); -extern DECLSPEC float SDLCALL SDL_asinf(float x); -extern DECLSPEC double SDLCALL SDL_atan(double x); -extern DECLSPEC float SDLCALL SDL_atanf(float x); -extern DECLSPEC double SDLCALL SDL_atan2(double y, double x); -extern DECLSPEC float SDLCALL SDL_atan2f(float y, float x); -extern DECLSPEC double SDLCALL SDL_ceil(double x); -extern DECLSPEC float SDLCALL SDL_ceilf(float x); -extern DECLSPEC double SDLCALL SDL_copysign(double x, double y); -extern DECLSPEC float SDLCALL SDL_copysignf(float x, float y); -extern DECLSPEC double SDLCALL SDL_cos(double x); -extern DECLSPEC float SDLCALL SDL_cosf(float x); -extern DECLSPEC double SDLCALL SDL_exp(double x); -extern DECLSPEC float SDLCALL SDL_expf(float x); -extern DECLSPEC double SDLCALL SDL_fabs(double x); -extern DECLSPEC float SDLCALL SDL_fabsf(float x); -extern DECLSPEC double SDLCALL SDL_floor(double x); -extern DECLSPEC float SDLCALL SDL_floorf(float x); -extern DECLSPEC double SDLCALL SDL_trunc(double x); -extern DECLSPEC float SDLCALL SDL_truncf(float x); -extern DECLSPEC double SDLCALL SDL_fmod(double x, double y); -extern DECLSPEC float SDLCALL SDL_fmodf(float x, float y); -extern DECLSPEC double SDLCALL SDL_log(double x); -extern DECLSPEC float SDLCALL SDL_logf(float x); -extern DECLSPEC double SDLCALL SDL_log10(double x); -extern DECLSPEC float SDLCALL SDL_log10f(float x); -extern DECLSPEC double SDLCALL SDL_pow(double x, double y); -extern DECLSPEC float SDLCALL SDL_powf(float x, float y); -extern DECLSPEC double SDLCALL SDL_round(double x); -extern DECLSPEC float SDLCALL SDL_roundf(float x); -extern DECLSPEC long SDLCALL SDL_lround(double x); -extern DECLSPEC long SDLCALL SDL_lroundf(float x); -extern DECLSPEC double SDLCALL SDL_scalbn(double x, int n); -extern DECLSPEC float SDLCALL SDL_scalbnf(float x, int n); -extern DECLSPEC double SDLCALL SDL_sin(double x); -extern DECLSPEC float SDLCALL SDL_sinf(float x); -extern DECLSPEC double SDLCALL SDL_sqrt(double x); -extern DECLSPEC float SDLCALL SDL_sqrtf(float x); -extern DECLSPEC double SDLCALL SDL_tan(double x); -extern DECLSPEC float SDLCALL SDL_tanf(float x); - -/* The SDL implementation of iconv() returns these error codes */ -#define SDL_ICONV_ERROR (size_t)-1 -#define SDL_ICONV_E2BIG (size_t)-2 -#define SDL_ICONV_EILSEQ (size_t)-3 -#define SDL_ICONV_EINVAL (size_t)-4 - -/* SDL_iconv_* are now always real symbols/types, not macros or inlined. */ -typedef struct _SDL_iconv_t *SDL_iconv_t; -extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode, - const char *fromcode); -extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd); -extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, - size_t * inbytesleft, char **outbuf, - size_t * outbytesleft); - -/** - * This function converts a buffer or string between encodings in one pass, returning a - * string that must be freed with SDL_free() or NULL on error. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode, - const char *fromcode, - const char *inbuf, - size_t inbytesleft); -#define SDL_iconv_utf8_locale(S) SDL_iconv_string("", "UTF-8", S, SDL_strlen(S)+1) -#define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2-INTERNAL", "UTF-8", S, SDL_strlen(S)+1) -#define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4-INTERNAL", "UTF-8", S, SDL_strlen(S)+1) -#define SDL_iconv_wchar_utf8(S) SDL_iconv_string("UTF-8", "WCHAR_T", (char *)S, (SDL_wcslen(S)+1)*sizeof(wchar_t)) - -/* force builds using Clang's static analysis tools to use literal C runtime - here, since there are possibly tests that are ineffective otherwise. */ -#if defined(__clang_analyzer__) && !defined(SDL_DISABLE_ANALYZE_MACROS) - -/* The analyzer knows about strlcpy even when the system doesn't provide it */ -#ifndef HAVE_STRLCPY -size_t strlcpy(char* dst, const char* src, size_t size); -#endif - -/* The analyzer knows about strlcat even when the system doesn't provide it */ -#ifndef HAVE_STRLCAT -size_t strlcat(char* dst, const char* src, size_t size); -#endif - -#ifndef HAVE_WCSLCPY -size_t wcslcpy(wchar_t *dst, const wchar_t *src, size_t size); -#endif - -#ifndef HAVE_WCSLCAT -size_t wcslcat(wchar_t *dst, const wchar_t *src, size_t size); -#endif - -/* Starting LLVM 16, the analyser errors out if these functions do not have - their prototype defined (clang-diagnostic-implicit-function-declaration) */ -#include <stdlib.h> -#include <string.h> -#include <stdio.h> - -#define SDL_malloc malloc -#define SDL_calloc calloc -#define SDL_realloc realloc -#define SDL_free free -#define SDL_memset memset -#define SDL_memcpy memcpy -#define SDL_memmove memmove -#define SDL_memcmp memcmp -#define SDL_strlcpy strlcpy -#define SDL_strlcat strlcat -#define SDL_strlen strlen -#define SDL_wcslen wcslen -#define SDL_wcslcpy wcslcpy -#define SDL_wcslcat wcslcat -#define SDL_strdup strdup -#define SDL_wcsdup wcsdup -#define SDL_strchr strchr -#define SDL_strrchr strrchr -#define SDL_strstr strstr -#define SDL_wcsstr wcsstr -#define SDL_strtokr strtok_r -#define SDL_strcmp strcmp -#define SDL_wcscmp wcscmp -#define SDL_strncmp strncmp -#define SDL_wcsncmp wcsncmp -#define SDL_strcasecmp strcasecmp -#define SDL_strncasecmp strncasecmp -#define SDL_sscanf sscanf -#define SDL_vsscanf vsscanf -#define SDL_snprintf snprintf -#define SDL_vsnprintf vsnprintf -#endif - -SDL_FORCE_INLINE void *SDL_memcpy4(SDL_OUT_BYTECAP(dwords*4) void *dst, SDL_IN_BYTECAP(dwords*4) const void *src, size_t dwords) -{ - return SDL_memcpy(dst, src, dwords * 4); -} - -/** - * If a * b would overflow, return -1. Otherwise store a * b via ret - * and return 0. - * - * \since This function is available since SDL 2.24.0. - */ -SDL_FORCE_INLINE int SDL_size_mul_overflow (size_t a, - size_t b, - size_t *ret) -{ - if (a != 0 && b > SDL_SIZE_MAX / a) { - return -1; - } - *ret = a * b; - return 0; -} - -#if _SDL_HAS_BUILTIN(__builtin_mul_overflow) -/* This needs to be wrapped in an inline rather than being a direct #define, - * because __builtin_mul_overflow() is type-generic, but we want to be - * consistent about interpreting a and b as size_t. */ -SDL_FORCE_INLINE int _SDL_size_mul_overflow_builtin (size_t a, - size_t b, - size_t *ret) -{ - return __builtin_mul_overflow(a, b, ret) == 0 ? 0 : -1; -} -#define SDL_size_mul_overflow(a, b, ret) (_SDL_size_mul_overflow_builtin(a, b, ret)) -#endif - -/** - * If a + b would overflow, return -1. Otherwise store a + b via ret - * and return 0. - * - * \since This function is available since SDL 2.24.0. - */ -SDL_FORCE_INLINE int SDL_size_add_overflow (size_t a, - size_t b, - size_t *ret) -{ - if (b > SDL_SIZE_MAX - a) { - return -1; - } - *ret = a + b; - return 0; -} - -#if _SDL_HAS_BUILTIN(__builtin_add_overflow) -/* This needs to be wrapped in an inline rather than being a direct #define, - * the same as the call to __builtin_mul_overflow() above. */ -SDL_FORCE_INLINE int _SDL_size_add_overflow_builtin (size_t a, - size_t b, - size_t *ret) -{ - return __builtin_add_overflow(a, b, ret) == 0 ? 0 : -1; -} -#define SDL_size_add_overflow(a, b, ret) (_SDL_size_add_overflow_builtin(a, b, ret)) -#endif - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_stdinc_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_surface.h b/lib/windows/include/SDL_surface.h deleted file mode 100644 index d6ee615..0000000 --- a/lib/windows/include/SDL_surface.h +++ /dev/null @@ -1,997 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_surface.h - * - * Header file for ::SDL_Surface definition and management functions. - */ - -#ifndef SDL_surface_h_ -#define SDL_surface_h_ - -#include "SDL_stdinc.h" -#include "SDL_pixels.h" -#include "SDL_rect.h" -#include "SDL_blendmode.h" -#include "SDL_rwops.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \name Surface flags - * - * These are the currently supported flags for the ::SDL_Surface. - * - * \internal - * Used internally (read-only). - */ -/* @{ */ -#define SDL_SWSURFACE 0 /**< Just here for compatibility */ -#define SDL_PREALLOC 0x00000001 /**< Surface uses preallocated memory */ -#define SDL_RLEACCEL 0x00000002 /**< Surface is RLE encoded */ -#define SDL_DONTFREE 0x00000004 /**< Surface is referenced internally */ -#define SDL_SIMD_ALIGNED 0x00000008 /**< Surface uses aligned memory */ -/* @} *//* Surface flags */ - -/** - * Evaluates to true if the surface needs to be locked before access. - */ -#define SDL_MUSTLOCK(S) (((S)->flags & SDL_RLEACCEL) != 0) - -typedef struct SDL_BlitMap SDL_BlitMap; /* this is an opaque type. */ - -/** - * \brief A collection of pixels used in software blitting. - * - * \note This structure should be treated as read-only, except for \c pixels, - * which, if not NULL, contains the raw pixel data for the surface. - */ -typedef struct SDL_Surface -{ - Uint32 flags; /**< Read-only */ - SDL_PixelFormat *format; /**< Read-only */ - int w, h; /**< Read-only */ - int pitch; /**< Read-only */ - void *pixels; /**< Read-write */ - - /** Application data associated with the surface */ - void *userdata; /**< Read-write */ - - /** information needed for surfaces requiring locks */ - int locked; /**< Read-only */ - - /** list of BlitMap that hold a reference to this surface */ - void *list_blitmap; /**< Private */ - - /** clipping information */ - SDL_Rect clip_rect; /**< Read-only */ - - /** info for fast blit mapping to other surfaces */ - SDL_BlitMap *map; /**< Private */ - - /** Reference count -- used when freeing surface */ - int refcount; /**< Read-mostly */ -} SDL_Surface; - -/** - * \brief The type of function used for surface blitting functions. - */ -typedef int (SDLCALL *SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, - struct SDL_Surface * dst, SDL_Rect * dstrect); - -/** - * \brief The formula used for converting between YUV and RGB - */ -typedef enum -{ - SDL_YUV_CONVERSION_JPEG, /**< Full range JPEG */ - SDL_YUV_CONVERSION_BT601, /**< BT.601 (the default) */ - SDL_YUV_CONVERSION_BT709, /**< BT.709 */ - SDL_YUV_CONVERSION_AUTOMATIC /**< BT.601 for SD content, BT.709 for HD content */ -} SDL_YUV_CONVERSION_MODE; - -/** - * Allocate a new RGB surface. - * - * If `depth` is 4 or 8 bits, an empty palette is allocated for the surface. - * If `depth` is greater than 8 bits, the pixel format is set using the - * [RGBA]mask parameters. - * - * The [RGBA]mask parameters are the bitmasks used to extract that color from - * a pixel. For instance, `Rmask` being 0xFF000000 means the red data is - * stored in the most significant byte. Using zeros for the RGB masks sets a - * default value, based on the depth. For example: - * - * ```c++ - * SDL_CreateRGBSurface(0,w,h,32,0,0,0,0); - * ``` - * - * However, using zero for the Amask results in an Amask of 0. - * - * By default surfaces with an alpha mask are set up for blending as with: - * - * ```c++ - * SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_BLEND) - * ``` - * - * You can change this by calling SDL_SetSurfaceBlendMode() and selecting a - * different `blendMode`. - * - * \param flags the flags are unused and should be set to 0 - * \param width the width of the surface - * \param height the height of the surface - * \param depth the depth of the surface in bits - * \param Rmask the red mask for the pixels - * \param Gmask the green mask for the pixels - * \param Bmask the blue mask for the pixels - * \param Amask the alpha mask for the pixels - * \returns the new SDL_Surface structure that is created or NULL if it fails; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRGBSurfaceFrom - * \sa SDL_CreateRGBSurfaceWithFormat - * \sa SDL_FreeSurface - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurface - (Uint32 flags, int width, int height, int depth, - Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask); - - -/* !!! FIXME for 2.1: why does this ask for depth? Format provides that. */ - -/** - * Allocate a new RGB surface with a specific pixel format. - * - * This function operates mostly like SDL_CreateRGBSurface(), except instead - * of providing pixel color masks, you provide it with a predefined format - * from SDL_PixelFormatEnum. - * - * \param flags the flags are unused and should be set to 0 - * \param width the width of the surface - * \param height the height of the surface - * \param depth the depth of the surface in bits - * \param format the SDL_PixelFormatEnum for the new surface's pixel format. - * \returns the new SDL_Surface structure that is created or NULL if it fails; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_CreateRGBSurface - * \sa SDL_CreateRGBSurfaceFrom - * \sa SDL_FreeSurface - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormat - (Uint32 flags, int width, int height, int depth, Uint32 format); - -/** - * Allocate a new RGB surface with existing pixel data. - * - * This function operates mostly like SDL_CreateRGBSurface(), except it does - * not allocate memory for the pixel data, instead the caller provides an - * existing buffer of data for the surface to use. - * - * No copy is made of the pixel data. Pixel data is not managed automatically; - * you must free the surface before you free the pixel data. - * - * \param pixels a pointer to existing pixel data - * \param width the width of the surface - * \param height the height of the surface - * \param depth the depth of the surface in bits - * \param pitch the pitch of the surface in bytes - * \param Rmask the red mask for the pixels - * \param Gmask the green mask for the pixels - * \param Bmask the blue mask for the pixels - * \param Amask the alpha mask for the pixels - * \returns the new SDL_Surface structure that is created or NULL if it fails; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRGBSurface - * \sa SDL_CreateRGBSurfaceWithFormat - * \sa SDL_FreeSurface - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels, - int width, - int height, - int depth, - int pitch, - Uint32 Rmask, - Uint32 Gmask, - Uint32 Bmask, - Uint32 Amask); - -/* !!! FIXME for 2.1: why does this ask for depth? Format provides that. */ - -/** - * Allocate a new RGB surface with with a specific pixel format and existing - * pixel data. - * - * This function operates mostly like SDL_CreateRGBSurfaceFrom(), except - * instead of providing pixel color masks, you provide it with a predefined - * format from SDL_PixelFormatEnum. - * - * No copy is made of the pixel data. Pixel data is not managed automatically; - * you must free the surface before you free the pixel data. - * - * \param pixels a pointer to existing pixel data - * \param width the width of the surface - * \param height the height of the surface - * \param depth the depth of the surface in bits - * \param pitch the pitch of the surface in bytes - * \param format the SDL_PixelFormatEnum for the new surface's pixel format. - * \returns the new SDL_Surface structure that is created or NULL if it fails; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_CreateRGBSurfaceFrom - * \sa SDL_CreateRGBSurfaceWithFormat - * \sa SDL_FreeSurface - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormatFrom - (void *pixels, int width, int height, int depth, int pitch, Uint32 format); - -/** - * Free an RGB surface. - * - * It is safe to pass NULL to this function. - * - * \param surface the SDL_Surface to free. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRGBSurface - * \sa SDL_CreateRGBSurfaceFrom - * \sa SDL_LoadBMP - * \sa SDL_LoadBMP_RW - */ -extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface * surface); - -/** - * Set the palette used by a surface. - * - * A single palette can be shared with many surfaces. - * - * \param surface the SDL_Surface structure to update - * \param palette the SDL_Palette structure to use - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_SetSurfacePalette(SDL_Surface * surface, - SDL_Palette * palette); - -/** - * Set up a surface for directly accessing the pixels. - * - * Between calls to SDL_LockSurface() / SDL_UnlockSurface(), you can write to - * and read from `surface->pixels`, using the pixel format stored in - * `surface->format`. Once you are done accessing the surface, you should use - * SDL_UnlockSurface() to release it. - * - * Not all surfaces require locking. If `SDL_MUSTLOCK(surface)` evaluates to - * 0, then you can read and write to the surface at any time, and the pixel - * format of the surface will not change. - * - * \param surface the SDL_Surface structure to be locked - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_MUSTLOCK - * \sa SDL_UnlockSurface - */ -extern DECLSPEC int SDLCALL SDL_LockSurface(SDL_Surface * surface); - -/** - * Release a surface after directly accessing the pixels. - * - * \param surface the SDL_Surface structure to be unlocked - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LockSurface - */ -extern DECLSPEC void SDLCALL SDL_UnlockSurface(SDL_Surface * surface); - -/** - * Load a BMP image from a seekable SDL data stream. - * - * The new surface should be freed with SDL_FreeSurface(). Not doing so will - * result in a memory leak. - * - * src is an open SDL_RWops buffer, typically loaded with SDL_RWFromFile. - * Alternitavely, you might also use the macro SDL_LoadBMP to load a bitmap - * from a file, convert it to an SDL_Surface and then close the file. - * - * \param src the data stream for the surface - * \param freesrc non-zero to close the stream after being read - * \returns a pointer to a new SDL_Surface structure or NULL if there was an - * error; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreeSurface - * \sa SDL_RWFromFile - * \sa SDL_LoadBMP - * \sa SDL_SaveBMP_RW - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_LoadBMP_RW(SDL_RWops * src, - int freesrc); - -/** - * Load a surface from a file. - * - * Convenience macro. - */ -#define SDL_LoadBMP(file) SDL_LoadBMP_RW(SDL_RWFromFile(file, "rb"), 1) - -/** - * Save a surface to a seekable SDL data stream in BMP format. - * - * Surfaces with a 24-bit, 32-bit and paletted 8-bit format get saved in the - * BMP directly. Other RGB formats with 8-bit or higher get converted to a - * 24-bit surface or, if they have an alpha mask or a colorkey, to a 32-bit - * surface before they are saved. YUV and paletted 1-bit and 4-bit formats are - * not supported. - * - * \param surface the SDL_Surface structure containing the image to be saved - * \param dst a data stream to save to - * \param freedst non-zero to close the stream after being written - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadBMP_RW - * \sa SDL_SaveBMP - */ -extern DECLSPEC int SDLCALL SDL_SaveBMP_RW - (SDL_Surface * surface, SDL_RWops * dst, int freedst); - -/** - * Save a surface to a file. - * - * Convenience macro. - */ -#define SDL_SaveBMP(surface, file) \ - SDL_SaveBMP_RW(surface, SDL_RWFromFile(file, "wb"), 1) - -/** - * Set the RLE acceleration hint for a surface. - * - * If RLE is enabled, color key and alpha blending blits are much faster, but - * the surface must be locked before directly accessing the pixels. - * - * \param surface the SDL_Surface structure to optimize - * \param flag 0 to disable, non-zero to enable RLE acceleration - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - * \sa SDL_LockSurface - * \sa SDL_UnlockSurface - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceRLE(SDL_Surface * surface, - int flag); - -/** - * Returns whether the surface is RLE enabled - * - * It is safe to pass a NULL `surface` here; it will return SDL_FALSE. - * - * \param surface the SDL_Surface structure to query - * \returns SDL_TRUE if the surface is RLE enabled, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - * - * \sa SDL_SetSurfaceRLE - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSurfaceRLE(SDL_Surface * surface); - -/** - * Set the color key (transparent pixel) in a surface. - * - * The color key defines a pixel value that will be treated as transparent in - * a blit. For example, one can use this to specify that cyan pixels should be - * considered transparent, and therefore not rendered. - * - * It is a pixel of the format used by the surface, as generated by - * SDL_MapRGB(). - * - * RLE acceleration can substantially speed up blitting of images with large - * horizontal runs of transparent pixels. See SDL_SetSurfaceRLE() for details. - * - * \param surface the SDL_Surface structure to update - * \param flag SDL_TRUE to enable color key, SDL_FALSE to disable color key - * \param key the transparent pixel - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - * \sa SDL_GetColorKey - */ -extern DECLSPEC int SDLCALL SDL_SetColorKey(SDL_Surface * surface, - int flag, Uint32 key); - -/** - * Returns whether the surface has a color key - * - * It is safe to pass a NULL `surface` here; it will return SDL_FALSE. - * - * \param surface the SDL_Surface structure to query - * \return SDL_TRUE if the surface has a color key, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.9. - * - * \sa SDL_SetColorKey - * \sa SDL_GetColorKey - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasColorKey(SDL_Surface * surface); - -/** - * Get the color key (transparent pixel) for a surface. - * - * The color key is a pixel of the format used by the surface, as generated by - * SDL_MapRGB(). - * - * If the surface doesn't have color key enabled this function returns -1. - * - * \param surface the SDL_Surface structure to query - * \param key a pointer filled in with the transparent pixel - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - * \sa SDL_SetColorKey - */ -extern DECLSPEC int SDLCALL SDL_GetColorKey(SDL_Surface * surface, - Uint32 * key); - -/** - * Set an additional color value multiplied into blit operations. - * - * When this surface is blitted, during the blit operation each source color - * channel is modulated by the appropriate color value according to the - * following formula: - * - * `srcC = srcC * (color / 255)` - * - * \param surface the SDL_Surface structure to update - * \param r the red color value multiplied into blit operations - * \param g the green color value multiplied into blit operations - * \param b the blue color value multiplied into blit operations - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetSurfaceColorMod - * \sa SDL_SetSurfaceAlphaMod - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceColorMod(SDL_Surface * surface, - Uint8 r, Uint8 g, Uint8 b); - - -/** - * Get the additional color value multiplied into blit operations. - * - * \param surface the SDL_Surface structure to query - * \param r a pointer filled in with the current red color value - * \param g a pointer filled in with the current green color value - * \param b a pointer filled in with the current blue color value - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetSurfaceAlphaMod - * \sa SDL_SetSurfaceColorMod - */ -extern DECLSPEC int SDLCALL SDL_GetSurfaceColorMod(SDL_Surface * surface, - Uint8 * r, Uint8 * g, - Uint8 * b); - -/** - * Set an additional alpha value used in blit operations. - * - * When this surface is blitted, during the blit operation the source alpha - * value is modulated by this alpha value according to the following formula: - * - * `srcA = srcA * (alpha / 255)` - * - * \param surface the SDL_Surface structure to update - * \param alpha the alpha value multiplied into blit operations - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetSurfaceAlphaMod - * \sa SDL_SetSurfaceColorMod - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceAlphaMod(SDL_Surface * surface, - Uint8 alpha); - -/** - * Get the additional alpha value used in blit operations. - * - * \param surface the SDL_Surface structure to query - * \param alpha a pointer filled in with the current alpha value - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetSurfaceColorMod - * \sa SDL_SetSurfaceAlphaMod - */ -extern DECLSPEC int SDLCALL SDL_GetSurfaceAlphaMod(SDL_Surface * surface, - Uint8 * alpha); - -/** - * Set the blend mode used for blit operations. - * - * To copy a surface to another surface (or texture) without blending with the - * existing data, the blendmode of the SOURCE surface should be set to - * `SDL_BLENDMODE_NONE`. - * - * \param surface the SDL_Surface structure to update - * \param blendMode the SDL_BlendMode to use for blit blending - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetSurfaceBlendMode - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceBlendMode(SDL_Surface * surface, - SDL_BlendMode blendMode); - -/** - * Get the blend mode used for blit operations. - * - * \param surface the SDL_Surface structure to query - * \param blendMode a pointer filled in with the current SDL_BlendMode - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetSurfaceBlendMode - */ -extern DECLSPEC int SDLCALL SDL_GetSurfaceBlendMode(SDL_Surface * surface, - SDL_BlendMode *blendMode); - -/** - * Set the clipping rectangle for a surface. - * - * When `surface` is the destination of a blit, only the area within the clip - * rectangle is drawn into. - * - * Note that blits are automatically clipped to the edges of the source and - * destination surfaces. - * - * \param surface the SDL_Surface structure to be clipped - * \param rect the SDL_Rect structure representing the clipping rectangle, or - * NULL to disable clipping - * \returns SDL_TRUE if the rectangle intersects the surface, otherwise - * SDL_FALSE and blits will be completely clipped. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - * \sa SDL_GetClipRect - */ -extern DECLSPEC SDL_bool SDLCALL SDL_SetClipRect(SDL_Surface * surface, - const SDL_Rect * rect); - -/** - * Get the clipping rectangle for a surface. - * - * When `surface` is the destination of a blit, only the area within the clip - * rectangle is drawn into. - * - * \param surface the SDL_Surface structure representing the surface to be - * clipped - * \param rect an SDL_Rect structure filled in with the clipping rectangle for - * the surface - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - * \sa SDL_SetClipRect - */ -extern DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface * surface, - SDL_Rect * rect); - -/* - * Creates a new surface identical to the existing surface. - * - * The returned surface should be freed with SDL_FreeSurface(). - * - * \param surface the surface to duplicate. - * \returns a copy of the surface, or NULL on failure; call SDL_GetError() for - * more information. - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_DuplicateSurface(SDL_Surface * surface); - -/** - * Copy an existing surface to a new surface of the specified format. - * - * This function is used to optimize images for faster *repeat* blitting. This - * is accomplished by converting the original and storing the result as a new - * surface. The new, optimized surface can then be used as the source for - * future blits, making them faster. - * - * \param src the existing SDL_Surface structure to convert - * \param fmt the SDL_PixelFormat structure that the new surface is optimized - * for - * \param flags the flags are unused and should be set to 0; this is a - * leftover from SDL 1.2's API - * \returns the new SDL_Surface structure that is created or NULL if it fails; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocFormat - * \sa SDL_ConvertSurfaceFormat - * \sa SDL_CreateRGBSurface - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurface - (SDL_Surface * src, const SDL_PixelFormat * fmt, Uint32 flags); - -/** - * Copy an existing surface to a new surface of the specified format enum. - * - * This function operates just like SDL_ConvertSurface(), but accepts an - * SDL_PixelFormatEnum value instead of an SDL_PixelFormat structure. As such, - * it might be easier to call but it doesn't have access to palette - * information for the destination surface, in case that would be important. - * - * \param src the existing SDL_Surface structure to convert - * \param pixel_format the SDL_PixelFormatEnum that the new surface is - * optimized for - * \param flags the flags are unused and should be set to 0; this is a - * leftover from SDL 1.2's API - * \returns the new SDL_Surface structure that is created or NULL if it fails; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocFormat - * \sa SDL_ConvertSurface - * \sa SDL_CreateRGBSurface - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurfaceFormat - (SDL_Surface * src, Uint32 pixel_format, Uint32 flags); - -/** - * Copy a block of pixels of one format to another format. - * - * \param width the width of the block to copy, in pixels - * \param height the height of the block to copy, in pixels - * \param src_format an SDL_PixelFormatEnum value of the `src` pixels format - * \param src a pointer to the source pixels - * \param src_pitch the pitch of the source pixels, in bytes - * \param dst_format an SDL_PixelFormatEnum value of the `dst` pixels format - * \param dst a pointer to be filled in with new pixel data - * \param dst_pitch the pitch of the destination pixels, in bytes - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_ConvertPixels(int width, int height, - Uint32 src_format, - const void * src, int src_pitch, - Uint32 dst_format, - void * dst, int dst_pitch); - -/** - * Premultiply the alpha on a block of pixels. - * - * This is safe to use with src == dst, but not for other overlapping areas. - * - * This function is currently only implemented for SDL_PIXELFORMAT_ARGB8888. - * - * \param width the width of the block to convert, in pixels - * \param height the height of the block to convert, in pixels - * \param src_format an SDL_PixelFormatEnum value of the `src` pixels format - * \param src a pointer to the source pixels - * \param src_pitch the pitch of the source pixels, in bytes - * \param dst_format an SDL_PixelFormatEnum value of the `dst` pixels format - * \param dst a pointer to be filled in with premultiplied pixel data - * \param dst_pitch the pitch of the destination pixels, in bytes - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_PremultiplyAlpha(int width, int height, - Uint32 src_format, - const void * src, int src_pitch, - Uint32 dst_format, - void * dst, int dst_pitch); - -/** - * Perform a fast fill of a rectangle with a specific color. - * - * `color` should be a pixel of the format used by the surface, and can be - * generated by SDL_MapRGB() or SDL_MapRGBA(). If the color value contains an - * alpha component then the destination is simply filled with that alpha - * information, no blending takes place. - * - * If there is a clip rectangle set on the destination (set via - * SDL_SetClipRect()), then this function will fill based on the intersection - * of the clip rectangle and `rect`. - * - * \param dst the SDL_Surface structure that is the drawing target - * \param rect the SDL_Rect structure representing the rectangle to fill, or - * NULL to fill the entire surface - * \param color the color to fill with - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FillRects - */ -extern DECLSPEC int SDLCALL SDL_FillRect - (SDL_Surface * dst, const SDL_Rect * rect, Uint32 color); - -/** - * Perform a fast fill of a set of rectangles with a specific color. - * - * `color` should be a pixel of the format used by the surface, and can be - * generated by SDL_MapRGB() or SDL_MapRGBA(). If the color value contains an - * alpha component then the destination is simply filled with that alpha - * information, no blending takes place. - * - * If there is a clip rectangle set on the destination (set via - * SDL_SetClipRect()), then this function will fill based on the intersection - * of the clip rectangle and `rect`. - * - * \param dst the SDL_Surface structure that is the drawing target - * \param rects an array of SDL_Rects representing the rectangles to fill. - * \param count the number of rectangles in the array - * \param color the color to fill with - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FillRect - */ -extern DECLSPEC int SDLCALL SDL_FillRects - (SDL_Surface * dst, const SDL_Rect * rects, int count, Uint32 color); - -/* !!! FIXME: merge this documentation with the wiki */ -/** - * Performs a fast blit from the source surface to the destination surface. - * - * This assumes that the source and destination rectangles are - * the same size. If either \c srcrect or \c dstrect are NULL, the entire - * surface (\c src or \c dst) is copied. The final blit rectangles are saved - * in \c srcrect and \c dstrect after all clipping is performed. - * - * \returns 0 if the blit is successful, otherwise it returns -1. - * - * The blit function should not be called on a locked surface. - * - * The blit semantics for surfaces with and without blending and colorkey - * are defined as follows: - * \verbatim - RGBA->RGB: - Source surface blend mode set to SDL_BLENDMODE_BLEND: - alpha-blend (using the source alpha-channel and per-surface alpha) - SDL_SRCCOLORKEY ignored. - Source surface blend mode set to SDL_BLENDMODE_NONE: - copy RGB. - if SDL_SRCCOLORKEY set, only copy the pixels matching the - RGB values of the source color key, ignoring alpha in the - comparison. - - RGB->RGBA: - Source surface blend mode set to SDL_BLENDMODE_BLEND: - alpha-blend (using the source per-surface alpha) - Source surface blend mode set to SDL_BLENDMODE_NONE: - copy RGB, set destination alpha to source per-surface alpha value. - both: - if SDL_SRCCOLORKEY set, only copy the pixels matching the - source color key. - - RGBA->RGBA: - Source surface blend mode set to SDL_BLENDMODE_BLEND: - alpha-blend (using the source alpha-channel and per-surface alpha) - SDL_SRCCOLORKEY ignored. - Source surface blend mode set to SDL_BLENDMODE_NONE: - copy all of RGBA to the destination. - if SDL_SRCCOLORKEY set, only copy the pixels matching the - RGB values of the source color key, ignoring alpha in the - comparison. - - RGB->RGB: - Source surface blend mode set to SDL_BLENDMODE_BLEND: - alpha-blend (using the source per-surface alpha) - Source surface blend mode set to SDL_BLENDMODE_NONE: - copy RGB. - both: - if SDL_SRCCOLORKEY set, only copy the pixels matching the - source color key. - \endverbatim - * - * You should call SDL_BlitSurface() unless you know exactly how SDL - * blitting works internally and how to use the other blit functions. - */ -#define SDL_BlitSurface SDL_UpperBlit - -/** - * Perform a fast blit from the source surface to the destination surface. - * - * SDL_UpperBlit() has been replaced by SDL_BlitSurface(), which is merely a - * macro for this function with a less confusing name. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - */ -extern DECLSPEC int SDLCALL SDL_UpperBlit - (SDL_Surface * src, const SDL_Rect * srcrect, - SDL_Surface * dst, SDL_Rect * dstrect); - -/** - * Perform low-level surface blitting only. - * - * This is a semi-private blit function and it performs low-level surface - * blitting, assuming the input rectangles have already been clipped. - * - * Unless you know what you're doing, you should be using SDL_BlitSurface() - * instead. - * - * \param src the SDL_Surface structure to be copied from - * \param srcrect the SDL_Rect structure representing the rectangle to be - * copied, or NULL to copy the entire surface - * \param dst the SDL_Surface structure that is the blit target - * \param dstrect the SDL_Rect structure representing the rectangle that is - * copied into - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - */ -extern DECLSPEC int SDLCALL SDL_LowerBlit - (SDL_Surface * src, SDL_Rect * srcrect, - SDL_Surface * dst, SDL_Rect * dstrect); - - -/** - * Perform a fast, low quality, stretch blit between two surfaces of the same - * format. - * - * Please use SDL_BlitScaled() instead. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_SoftStretch(SDL_Surface * src, - const SDL_Rect * srcrect, - SDL_Surface * dst, - const SDL_Rect * dstrect); - -/** - * Perform bilinear scaling between two surfaces of the same format, 32BPP. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC int SDLCALL SDL_SoftStretchLinear(SDL_Surface * src, - const SDL_Rect * srcrect, - SDL_Surface * dst, - const SDL_Rect * dstrect); - - -#define SDL_BlitScaled SDL_UpperBlitScaled - -/** - * Perform a scaled surface copy to a destination surface. - * - * SDL_UpperBlitScaled() has been replaced by SDL_BlitScaled(), which is - * merely a macro for this function with a less confusing name. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitScaled - */ -extern DECLSPEC int SDLCALL SDL_UpperBlitScaled - (SDL_Surface * src, const SDL_Rect * srcrect, - SDL_Surface * dst, SDL_Rect * dstrect); - -/** - * Perform low-level surface scaled blitting only. - * - * This is a semi-private function and it performs low-level surface blitting, - * assuming the input rectangles have already been clipped. - * - * \param src the SDL_Surface structure to be copied from - * \param srcrect the SDL_Rect structure representing the rectangle to be - * copied - * \param dst the SDL_Surface structure that is the blit target - * \param dstrect the SDL_Rect structure representing the rectangle that is - * copied into - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitScaled - */ -extern DECLSPEC int SDLCALL SDL_LowerBlitScaled - (SDL_Surface * src, SDL_Rect * srcrect, - SDL_Surface * dst, SDL_Rect * dstrect); - -/** - * Set the YUV conversion mode - * - * \since This function is available since SDL 2.0.8. - */ -extern DECLSPEC void SDLCALL SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_MODE mode); - -/** - * Get the YUV conversion mode - * - * \since This function is available since SDL 2.0.8. - */ -extern DECLSPEC SDL_YUV_CONVERSION_MODE SDLCALL SDL_GetYUVConversionMode(void); - -/** - * Get the YUV conversion mode, returning the correct mode for the resolution - * when the current conversion mode is SDL_YUV_CONVERSION_AUTOMATIC - * - * \since This function is available since SDL 2.0.8. - */ -extern DECLSPEC SDL_YUV_CONVERSION_MODE SDLCALL SDL_GetYUVConversionModeForResolution(int width, int height); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_surface_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_system.h b/lib/windows/include/SDL_system.h deleted file mode 100644 index 4b7eadd..0000000 --- a/lib/windows/include/SDL_system.h +++ /dev/null @@ -1,623 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_system.h - * - * Include file for platform specific SDL API functions - */ - -#ifndef SDL_system_h_ -#define SDL_system_h_ - -#include "SDL_stdinc.h" -#include "SDL_keyboard.h" -#include "SDL_render.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - - -/* Platform specific functions for Windows */ -#if defined(__WIN32__) || defined(__GDK__) - -typedef void (SDLCALL * SDL_WindowsMessageHook)(void *userdata, void *hWnd, unsigned int message, Uint64 wParam, Sint64 lParam); - -/** - * Set a callback for every Windows message, run before TranslateMessage(). - * - * \param callback The SDL_WindowsMessageHook function to call. - * \param userdata a pointer to pass to every iteration of `callback` - * - * \since This function is available since SDL 2.0.4. - */ -extern DECLSPEC void SDLCALL SDL_SetWindowsMessageHook(SDL_WindowsMessageHook callback, void *userdata); - -#endif /* defined(__WIN32__) || defined(__GDK__) */ - -#if defined(__WIN32__) || defined(__WINGDK__) - -/** - * Get the D3D9 adapter index that matches the specified display index. - * - * The returned adapter index can be passed to `IDirect3D9::CreateDevice` and - * controls on which monitor a full screen application will appear. - * - * \param displayIndex the display index for which to get the D3D9 adapter - * index - * \returns the D3D9 adapter index on success or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.1. - */ -extern DECLSPEC int SDLCALL SDL_Direct3D9GetAdapterIndex( int displayIndex ); - -typedef struct IDirect3DDevice9 IDirect3DDevice9; - -/** - * Get the D3D9 device associated with a renderer. - * - * Once you are done using the device, you should release it to avoid a - * resource leak. - * - * \param renderer the renderer from which to get the associated D3D device - * \returns the D3D9 device associated with given renderer or NULL if it is - * not a D3D9 renderer; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.1. - */ -extern DECLSPEC IDirect3DDevice9* SDLCALL SDL_RenderGetD3D9Device(SDL_Renderer * renderer); - -typedef struct ID3D11Device ID3D11Device; - -/** - * Get the D3D11 device associated with a renderer. - * - * Once you are done using the device, you should release it to avoid a - * resource leak. - * - * \param renderer the renderer from which to get the associated D3D11 device - * \returns the D3D11 device associated with given renderer or NULL if it is - * not a D3D11 renderer; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC ID3D11Device* SDLCALL SDL_RenderGetD3D11Device(SDL_Renderer * renderer); - -#endif /* defined(__WIN32__) || defined(__WINGDK__) */ - -#if defined(__WIN32__) || defined(__GDK__) - -typedef struct ID3D12Device ID3D12Device; - -/** - * Get the D3D12 device associated with a renderer. - * - * Once you are done using the device, you should release it to avoid a - * resource leak. - * - * \param renderer the renderer from which to get the associated D3D12 device - * \returns the D3D12 device associated with given renderer or NULL if it is - * not a D3D12 renderer; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC ID3D12Device* SDLCALL SDL_RenderGetD3D12Device(SDL_Renderer* renderer); - -#endif /* defined(__WIN32__) || defined(__GDK__) */ - -#if defined(__WIN32__) || defined(__WINGDK__) - -/** - * Get the DXGI Adapter and Output indices for the specified display index. - * - * The DXGI Adapter and Output indices can be passed to `EnumAdapters` and - * `EnumOutputs` respectively to get the objects required to create a DX10 or - * DX11 device and swap chain. - * - * Before SDL 2.0.4 this function did not return a value. Since SDL 2.0.4 it - * returns an SDL_bool. - * - * \param displayIndex the display index for which to get both indices - * \param adapterIndex a pointer to be filled in with the adapter index - * \param outputIndex a pointer to be filled in with the output index - * \returns SDL_TRUE on success or SDL_FALSE on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.2. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_DXGIGetOutputInfo( int displayIndex, int *adapterIndex, int *outputIndex ); - -#endif /* defined(__WIN32__) || defined(__WINGDK__) */ - -/* Platform specific functions for Linux */ -#ifdef __LINUX__ - -/** - * Sets the UNIX nice value for a thread. - * - * This uses setpriority() if possible, and RealtimeKit if available. - * - * \param threadID the Unix thread ID to change priority of. - * \param priority The new, Unix-specific, priority value. - * \returns 0 on success, or -1 on error. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriority(Sint64 threadID, int priority); - -/** - * Sets the priority (not nice level) and scheduling policy for a thread. - * - * This uses setpriority() if possible, and RealtimeKit if available. - * - * \param threadID The Unix thread ID to change priority of. - * \param sdlPriority The new SDL_ThreadPriority value. - * \param schedPolicy The new scheduling policy (SCHED_FIFO, SCHED_RR, - * SCHED_OTHER, etc...) - * \returns 0 on success, or -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriorityAndPolicy(Sint64 threadID, int sdlPriority, int schedPolicy); - -#endif /* __LINUX__ */ - -/* Platform specific functions for iOS */ -#ifdef __IPHONEOS__ - -#define SDL_iOSSetAnimationCallback(window, interval, callback, callbackParam) SDL_iPhoneSetAnimationCallback(window, interval, callback, callbackParam) - -/** - * Use this function to set the animation callback on Apple iOS. - * - * The function prototype for `callback` is: - * - * ```c - * void callback(void* callbackParam); - * ``` - * - * Where its parameter, `callbackParam`, is what was passed as `callbackParam` - * to SDL_iPhoneSetAnimationCallback(). - * - * This function is only available on Apple iOS. - * - * For more information see: - * https://github.com/libsdl-org/SDL/blob/main/docs/README-ios.md - * - * This functions is also accessible using the macro - * SDL_iOSSetAnimationCallback() since SDL 2.0.4. - * - * \param window the window for which the animation callback should be set - * \param interval the number of frames after which **callback** will be - * called - * \param callback the function to call for every frame. - * \param callbackParam a pointer that is passed to `callback`. - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_iPhoneSetEventPump - */ -extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (SDLCALL *callback)(void*), void *callbackParam); - -#define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled) - -/** - * Use this function to enable or disable the SDL event pump on Apple iOS. - * - * This function is only available on Apple iOS. - * - * This functions is also accessible using the macro SDL_iOSSetEventPump() - * since SDL 2.0.4. - * - * \param enabled SDL_TRUE to enable the event pump, SDL_FALSE to disable it - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_iPhoneSetAnimationCallback - */ -extern DECLSPEC void SDLCALL SDL_iPhoneSetEventPump(SDL_bool enabled); - -#endif /* __IPHONEOS__ */ - - -/* Platform specific functions for Android */ -#ifdef __ANDROID__ - -/** - * Get the Android Java Native Interface Environment of the current thread. - * - * This is the JNIEnv one needs to access the Java virtual machine from native - * code, and is needed for many Android APIs to be usable from C. - * - * The prototype of the function in SDL's code actually declare a void* return - * type, even if the implementation returns a pointer to a JNIEnv. The - * rationale being that the SDL headers can avoid including jni.h. - * - * \returns a pointer to Java native interface object (JNIEnv) to which the - * current thread is attached, or 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AndroidGetActivity - */ -extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(void); - -/** - * Retrieve the Java instance of the Android activity class. - * - * The prototype of the function in SDL's code actually declares a void* - * return type, even if the implementation returns a jobject. The rationale - * being that the SDL headers can avoid including jni.h. - * - * The jobject returned by the function is a local reference and must be - * released by the caller. See the PushLocalFrame() and PopLocalFrame() or - * DeleteLocalRef() functions of the Java native interface: - * - * https://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/functions.html - * - * \returns the jobject representing the instance of the Activity class of the - * Android application, or NULL on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AndroidGetJNIEnv - */ -extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(void); - -/** - * Query Android API level of the current device. - * - * - API level 31: Android 12 - * - API level 30: Android 11 - * - API level 29: Android 10 - * - API level 28: Android 9 - * - API level 27: Android 8.1 - * - API level 26: Android 8.0 - * - API level 25: Android 7.1 - * - API level 24: Android 7.0 - * - API level 23: Android 6.0 - * - API level 22: Android 5.1 - * - API level 21: Android 5.0 - * - API level 20: Android 4.4W - * - API level 19: Android 4.4 - * - API level 18: Android 4.3 - * - API level 17: Android 4.2 - * - API level 16: Android 4.1 - * - API level 15: Android 4.0.3 - * - API level 14: Android 4.0 - * - API level 13: Android 3.2 - * - API level 12: Android 3.1 - * - API level 11: Android 3.0 - * - API level 10: Android 2.3.3 - * - * \returns the Android API level. - * - * \since This function is available since SDL 2.0.12. - */ -extern DECLSPEC int SDLCALL SDL_GetAndroidSDKVersion(void); - -/** - * Query if the application is running on Android TV. - * - * \returns SDL_TRUE if this is Android TV, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.8. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsAndroidTV(void); - -/** - * Query if the application is running on a Chromebook. - * - * \returns SDL_TRUE if this is a Chromebook, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsChromebook(void); - -/** - * Query if the application is running on a Samsung DeX docking station. - * - * \returns SDL_TRUE if this is a DeX docking station, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsDeXMode(void); - -/** - * Trigger the Android system back button behavior. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC void SDLCALL SDL_AndroidBackButton(void); - -/** - See the official Android developer guide for more information: - http://developer.android.com/guide/topics/data/data-storage.html -*/ -#define SDL_ANDROID_EXTERNAL_STORAGE_READ 0x01 -#define SDL_ANDROID_EXTERNAL_STORAGE_WRITE 0x02 - -/** - * Get the path used for internal storage for this application. - * - * This path is unique to your application and cannot be written to by other - * applications. - * - * Your internal storage path is typically: - * `/data/data/your.app.package/files`. - * - * \returns the path used for internal storage or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AndroidGetExternalStorageState - */ -extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath(void); - -/** - * Get the current state of external storage. - * - * The current state of external storage, a bitmask of these values: - * `SDL_ANDROID_EXTERNAL_STORAGE_READ`, `SDL_ANDROID_EXTERNAL_STORAGE_WRITE`. - * - * If external storage is currently unavailable, this will return 0. - * - * \returns the current state of external storage on success or 0 on failure; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AndroidGetExternalStoragePath - */ -extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(void); - -/** - * Get the path used for external storage for this application. - * - * This path is unique to your application, but is public and can be written - * to by other applications. - * - * Your external storage path is typically: - * `/storage/sdcard0/Android/data/your.app.package/files`. - * - * \returns the path used for external storage for this application on success - * or NULL on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AndroidGetExternalStorageState - */ -extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath(void); - -/** - * Request permissions at runtime. - * - * This blocks the calling thread until the permission is granted or denied. - * - * \param permission The permission to request. - * \returns SDL_TRUE if the permission was granted, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_AndroidRequestPermission(const char *permission); - -/** - * Shows an Android toast notification. - * - * Toasts are a sort of lightweight notification that are unique to Android. - * - * https://developer.android.com/guide/topics/ui/notifiers/toasts - * - * Shows toast in UI thread. - * - * For the `gravity` parameter, choose a value from here, or -1 if you don't - * have a preference: - * - * https://developer.android.com/reference/android/view/Gravity - * - * \param message text message to be shown - * \param duration 0=short, 1=long - * \param gravity where the notification should appear on the screen. - * \param xoffset set this parameter only when gravity >=0 - * \param yoffset set this parameter only when gravity >=0 - * \returns 0 if success, -1 if any error occurs. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC int SDLCALL SDL_AndroidShowToast(const char* message, int duration, int gravity, int xoffset, int yoffset); - -/** - * Send a user command to SDLActivity. - * - * Override "boolean onUnhandledMessage(Message msg)" to handle the message. - * - * \param command user command that must be greater or equal to 0x8000 - * \param param user parameter - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC int SDLCALL SDL_AndroidSendMessage(Uint32 command, int param); - -#endif /* __ANDROID__ */ - -/* Platform specific functions for WinRT */ -#ifdef __WINRT__ - -/** - * \brief WinRT / Windows Phone path types - */ -typedef enum -{ - /** \brief The installed app's root directory. - Files here are likely to be read-only. */ - SDL_WINRT_PATH_INSTALLED_LOCATION, - - /** \brief The app's local data store. Files may be written here */ - SDL_WINRT_PATH_LOCAL_FOLDER, - - /** \brief The app's roaming data store. Unsupported on Windows Phone. - Files written here may be copied to other machines via a network - connection. - */ - SDL_WINRT_PATH_ROAMING_FOLDER, - - /** \brief The app's temporary data store. Unsupported on Windows Phone. - Files written here may be deleted at any time. */ - SDL_WINRT_PATH_TEMP_FOLDER -} SDL_WinRT_Path; - - -/** - * \brief WinRT Device Family - */ -typedef enum -{ - /** \brief Unknown family */ - SDL_WINRT_DEVICEFAMILY_UNKNOWN, - - /** \brief Desktop family*/ - SDL_WINRT_DEVICEFAMILY_DESKTOP, - - /** \brief Mobile family (for example smartphone) */ - SDL_WINRT_DEVICEFAMILY_MOBILE, - - /** \brief XBox family */ - SDL_WINRT_DEVICEFAMILY_XBOX, -} SDL_WinRT_DeviceFamily; - - -/** - * Retrieve a WinRT defined path on the local file system. - * - * Not all paths are available on all versions of Windows. This is especially - * true on Windows Phone. Check the documentation for the given SDL_WinRT_Path - * for more information on which path types are supported where. - * - * Documentation on most app-specific path types on WinRT can be found on - * MSDN, at the URL: - * - * https://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx - * - * \param pathType the type of path to retrieve, one of SDL_WinRT_Path - * \returns a UCS-2 string (16-bit, wide-char) containing the path, or NULL if - * the path is not available for any reason; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.3. - * - * \sa SDL_WinRTGetFSPathUTF8 - */ -extern DECLSPEC const wchar_t * SDLCALL SDL_WinRTGetFSPathUNICODE(SDL_WinRT_Path pathType); - -/** - * Retrieve a WinRT defined path on the local file system. - * - * Not all paths are available on all versions of Windows. This is especially - * true on Windows Phone. Check the documentation for the given SDL_WinRT_Path - * for more information on which path types are supported where. - * - * Documentation on most app-specific path types on WinRT can be found on - * MSDN, at the URL: - * - * https://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx - * - * \param pathType the type of path to retrieve, one of SDL_WinRT_Path - * \returns a UTF-8 string (8-bit, multi-byte) containing the path, or NULL if - * the path is not available for any reason; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.3. - * - * \sa SDL_WinRTGetFSPathUNICODE - */ -extern DECLSPEC const char * SDLCALL SDL_WinRTGetFSPathUTF8(SDL_WinRT_Path pathType); - -/** - * Detects the device family of WinRT platform at runtime. - * - * \returns a value from the SDL_WinRT_DeviceFamily enum. - * - * \since This function is available since SDL 2.0.8. - */ -extern DECLSPEC SDL_WinRT_DeviceFamily SDLCALL SDL_WinRTGetDeviceFamily(); - -#endif /* __WINRT__ */ - -/** - * Query if the current device is a tablet. - * - * If SDL can't determine this, it will return SDL_FALSE. - * - * \returns SDL_TRUE if the device is a tablet, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsTablet(void); - -/* Functions used by iOS application delegates to notify SDL about state changes */ -extern DECLSPEC void SDLCALL SDL_OnApplicationWillTerminate(void); -extern DECLSPEC void SDLCALL SDL_OnApplicationDidReceiveMemoryWarning(void); -extern DECLSPEC void SDLCALL SDL_OnApplicationWillResignActive(void); -extern DECLSPEC void SDLCALL SDL_OnApplicationDidEnterBackground(void); -extern DECLSPEC void SDLCALL SDL_OnApplicationWillEnterForeground(void); -extern DECLSPEC void SDLCALL SDL_OnApplicationDidBecomeActive(void); -#ifdef __IPHONEOS__ -extern DECLSPEC void SDLCALL SDL_OnApplicationDidChangeStatusBarOrientation(void); -#endif - -/* Functions used only by GDK */ -#if defined(__GDK__) -typedef struct XTaskQueueObject * XTaskQueueHandle; - -/** - * Gets a reference to the global async task queue handle for GDK, - * initializing if needed. - * - * Once you are done with the task queue, you should call - * XTaskQueueCloseHandle to reduce the reference count to avoid a resource - * leak. - * - * \param outTaskQueue a pointer to be filled in with task queue handle. - * \returns 0 if success, -1 if any error occurs. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC int SDLCALL SDL_GDKGetTaskQueue(XTaskQueueHandle * outTaskQueue); - -#endif - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_system_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_syswm.h b/lib/windows/include/SDL_syswm.h deleted file mode 100644 index b35734d..0000000 --- a/lib/windows/include/SDL_syswm.h +++ /dev/null @@ -1,386 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_syswm.h - * - * Include file for SDL custom system window manager hooks. - */ - -#ifndef SDL_syswm_h_ -#define SDL_syswm_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_video.h" -#include "SDL_version.h" - -/** - * \brief SDL_syswm.h - * - * Your application has access to a special type of event ::SDL_SYSWMEVENT, - * which contains window-manager specific information and arrives whenever - * an unhandled window event occurs. This event is ignored by default, but - * you can enable it with SDL_EventState(). - */ -struct SDL_SysWMinfo; - -#if !defined(SDL_PROTOTYPES_ONLY) - -#if defined(SDL_VIDEO_DRIVER_WINDOWS) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#ifndef NOMINMAX /* don't define min() and max(). */ -#define NOMINMAX -#endif -#include <windows.h> -#endif - -#if defined(SDL_VIDEO_DRIVER_WINRT) -#include <Inspectable.h> -#endif - -/* This is the structure for custom window manager events */ -#if defined(SDL_VIDEO_DRIVER_X11) -#if defined(__APPLE__) && defined(__MACH__) -/* conflicts with Quickdraw.h */ -#define Cursor X11Cursor -#endif - -#include <X11/Xlib.h> -#include <X11/Xatom.h> - -#if defined(__APPLE__) && defined(__MACH__) -/* matches the re-define above */ -#undef Cursor -#endif - -#endif /* defined(SDL_VIDEO_DRIVER_X11) */ - -#if defined(SDL_VIDEO_DRIVER_DIRECTFB) -#include <directfb.h> -#endif - -#if defined(SDL_VIDEO_DRIVER_COCOA) -#ifdef __OBJC__ -@class NSWindow; -#else -typedef struct _NSWindow NSWindow; -#endif -#endif - -#if defined(SDL_VIDEO_DRIVER_UIKIT) -#ifdef __OBJC__ -#include <UIKit/UIKit.h> -#else -typedef struct _UIWindow UIWindow; -typedef struct _UIViewController UIViewController; -#endif -typedef Uint32 GLuint; -#endif - -#if defined(SDL_VIDEO_VULKAN) || defined(SDL_VIDEO_METAL) -#define SDL_METALVIEW_TAG 255 -#endif - -#if defined(SDL_VIDEO_DRIVER_ANDROID) -typedef struct ANativeWindow ANativeWindow; -typedef void *EGLSurface; -#endif - -#if defined(SDL_VIDEO_DRIVER_VIVANTE) -#include "SDL_egl.h" -#endif - -#if defined(SDL_VIDEO_DRIVER_OS2) -#define INCL_WIN -#include <os2.h> -#endif -#endif /* SDL_PROTOTYPES_ONLY */ - -#if defined(SDL_VIDEO_DRIVER_KMSDRM) -struct gbm_device; -#endif - - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -#if !defined(SDL_PROTOTYPES_ONLY) -/** - * These are the various supported windowing subsystems - */ -typedef enum -{ - SDL_SYSWM_UNKNOWN, - SDL_SYSWM_WINDOWS, - SDL_SYSWM_X11, - SDL_SYSWM_DIRECTFB, - SDL_SYSWM_COCOA, - SDL_SYSWM_UIKIT, - SDL_SYSWM_WAYLAND, - SDL_SYSWM_MIR, /* no longer available, left for API/ABI compatibility. Remove in 2.1! */ - SDL_SYSWM_WINRT, - SDL_SYSWM_ANDROID, - SDL_SYSWM_VIVANTE, - SDL_SYSWM_OS2, - SDL_SYSWM_HAIKU, - SDL_SYSWM_KMSDRM, - SDL_SYSWM_RISCOS -} SDL_SYSWM_TYPE; - -/** - * The custom event structure. - */ -struct SDL_SysWMmsg -{ - SDL_version version; - SDL_SYSWM_TYPE subsystem; - union - { -#if defined(SDL_VIDEO_DRIVER_WINDOWS) - struct { - HWND hwnd; /**< The window for the message */ - UINT msg; /**< The type of message */ - WPARAM wParam; /**< WORD message parameter */ - LPARAM lParam; /**< LONG message parameter */ - } win; -#endif -#if defined(SDL_VIDEO_DRIVER_X11) - struct { - XEvent event; - } x11; -#endif -#if defined(SDL_VIDEO_DRIVER_DIRECTFB) - struct { - DFBEvent event; - } dfb; -#endif -#if defined(SDL_VIDEO_DRIVER_COCOA) - struct - { - /* Latest version of Xcode clang complains about empty structs in C v. C++: - error: empty struct has size 0 in C, size 1 in C++ - */ - int dummy; - /* No Cocoa window events yet */ - } cocoa; -#endif -#if defined(SDL_VIDEO_DRIVER_UIKIT) - struct - { - int dummy; - /* No UIKit window events yet */ - } uikit; -#endif -#if defined(SDL_VIDEO_DRIVER_VIVANTE) - struct - { - int dummy; - /* No Vivante window events yet */ - } vivante; -#endif -#if defined(SDL_VIDEO_DRIVER_OS2) - struct - { - BOOL fFrame; /**< TRUE if hwnd is a frame window */ - HWND hwnd; /**< The window receiving the message */ - ULONG msg; /**< The message identifier */ - MPARAM mp1; /**< The first first message parameter */ - MPARAM mp2; /**< The second first message parameter */ - } os2; -#endif - /* Can't have an empty union */ - int dummy; - } msg; -}; - -/** - * The custom window manager information structure. - * - * When this structure is returned, it holds information about which - * low level system it is using, and will be one of SDL_SYSWM_TYPE. - */ -struct SDL_SysWMinfo -{ - SDL_version version; - SDL_SYSWM_TYPE subsystem; - union - { -#if defined(SDL_VIDEO_DRIVER_WINDOWS) - struct - { - HWND window; /**< The window handle */ - HDC hdc; /**< The window device context */ - HINSTANCE hinstance; /**< The instance handle */ - } win; -#endif -#if defined(SDL_VIDEO_DRIVER_WINRT) - struct - { - IInspectable * window; /**< The WinRT CoreWindow */ - } winrt; -#endif -#if defined(SDL_VIDEO_DRIVER_X11) - struct - { - Display *display; /**< The X11 display */ - Window window; /**< The X11 window */ - } x11; -#endif -#if defined(SDL_VIDEO_DRIVER_DIRECTFB) - struct - { - IDirectFB *dfb; /**< The directfb main interface */ - IDirectFBWindow *window; /**< The directfb window handle */ - IDirectFBSurface *surface; /**< The directfb client surface */ - } dfb; -#endif -#if defined(SDL_VIDEO_DRIVER_COCOA) - struct - { -#if defined(__OBJC__) && defined(__has_feature) - #if __has_feature(objc_arc) - NSWindow __unsafe_unretained *window; /**< The Cocoa window */ - #else - NSWindow *window; /**< The Cocoa window */ - #endif -#else - NSWindow *window; /**< The Cocoa window */ -#endif - } cocoa; -#endif -#if defined(SDL_VIDEO_DRIVER_UIKIT) - struct - { -#if defined(__OBJC__) && defined(__has_feature) - #if __has_feature(objc_arc) - UIWindow __unsafe_unretained *window; /**< The UIKit window */ - #else - UIWindow *window; /**< The UIKit window */ - #endif -#else - UIWindow *window; /**< The UIKit window */ -#endif - GLuint framebuffer; /**< The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. */ - GLuint colorbuffer; /**< The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. */ - GLuint resolveFramebuffer; /**< The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. */ - } uikit; -#endif -#if defined(SDL_VIDEO_DRIVER_WAYLAND) - struct - { - struct wl_display *display; /**< Wayland display */ - struct wl_surface *surface; /**< Wayland surface */ - void *shell_surface; /**< DEPRECATED Wayland shell_surface (window manager handle) */ - struct wl_egl_window *egl_window; /**< Wayland EGL window (native window) */ - struct xdg_surface *xdg_surface; /**< Wayland xdg surface (window manager handle) */ - struct xdg_toplevel *xdg_toplevel; /**< Wayland xdg toplevel role */ - struct xdg_popup *xdg_popup; /**< Wayland xdg popup role */ - struct xdg_positioner *xdg_positioner; /**< Wayland xdg positioner, for popup */ - } wl; -#endif -#if defined(SDL_VIDEO_DRIVER_MIR) /* no longer available, left for API/ABI compatibility. Remove in 2.1! */ - struct - { - void *connection; /**< Mir display server connection */ - void *surface; /**< Mir surface */ - } mir; -#endif - -#if defined(SDL_VIDEO_DRIVER_ANDROID) - struct - { - ANativeWindow *window; - EGLSurface surface; - } android; -#endif - -#if defined(SDL_VIDEO_DRIVER_OS2) - struct - { - HWND hwnd; /**< The window handle */ - HWND hwndFrame; /**< The frame window handle */ - } os2; -#endif - -#if defined(SDL_VIDEO_DRIVER_VIVANTE) - struct - { - EGLNativeDisplayType display; - EGLNativeWindowType window; - } vivante; -#endif - -#if defined(SDL_VIDEO_DRIVER_KMSDRM) - struct - { - int dev_index; /**< Device index (ex: the X in /dev/dri/cardX) */ - int drm_fd; /**< DRM FD (unavailable on Vulkan windows) */ - struct gbm_device *gbm_dev; /**< GBM device (unavailable on Vulkan windows) */ - } kmsdrm; -#endif - - /* Make sure this union is always 64 bytes (8 64-bit pointers). */ - /* Be careful not to overflow this if you add a new target! */ - Uint8 dummy[64]; - } info; -}; - -#endif /* SDL_PROTOTYPES_ONLY */ - -typedef struct SDL_SysWMinfo SDL_SysWMinfo; - - -/** - * Get driver-specific information about a window. - * - * You must include SDL_syswm.h for the declaration of SDL_SysWMinfo. - * - * The caller must initialize the `info` structure's version by using - * `SDL_VERSION(&info.version)`, and then this function will fill in the rest - * of the structure with information about the given window. - * - * \param window the window about which information is being requested - * \param info an SDL_SysWMinfo structure filled in with window information - * \returns SDL_TRUE if the function is implemented and the `version` member - * of the `info` struct is valid, or SDL_FALSE if the information - * could not be retrieved; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window, - SDL_SysWMinfo * info); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_syswm_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test.h b/lib/windows/include/SDL_test.h deleted file mode 100644 index 80daaaf..0000000 --- a/lib/windows/include/SDL_test.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -#ifndef SDL_test_h_ -#define SDL_test_h_ - -#include "SDL.h" -#include "SDL_test_assert.h" -#include "SDL_test_common.h" -#include "SDL_test_compare.h" -#include "SDL_test_crc32.h" -#include "SDL_test_font.h" -#include "SDL_test_fuzzer.h" -#include "SDL_test_harness.h" -#include "SDL_test_images.h" -#include "SDL_test_log.h" -#include "SDL_test_md5.h" -#include "SDL_test_memory.h" -#include "SDL_test_random.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Global definitions */ - -/* - * Note: Maximum size of SDLTest log message is less than SDL's limit - * to ensure we can fit additional information such as the timestamp. - */ -#define SDLTEST_MAX_LOGMESSAGE_LENGTH 3584 - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test_assert.h b/lib/windows/include/SDL_test_assert.h deleted file mode 100644 index 341e490..0000000 --- a/lib/windows/include/SDL_test_assert.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test_assert.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -/* - * - * Assert API for test code and test cases - * - */ - -#ifndef SDL_test_assert_h_ -#define SDL_test_assert_h_ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief Fails the assert. - */ -#define ASSERT_FAIL 0 - -/** - * \brief Passes the assert. - */ -#define ASSERT_PASS 1 - -/** - * \brief Assert that logs and break execution flow on failures. - * - * \param assertCondition Evaluated condition or variable to assert; fail (==0) or pass (!=0). - * \param assertDescription Message to log with the assert describing it. - */ -void SDLTest_Assert(int assertCondition, SDL_PRINTF_FORMAT_STRING const char *assertDescription, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * \brief Assert for test cases that logs but does not break execution flow on failures. Updates assertion counters. - * - * \param assertCondition Evaluated condition or variable to assert; fail (==0) or pass (!=0). - * \param assertDescription Message to log with the assert describing it. - * - * \returns the assertCondition so it can be used to externally to break execution flow if desired. - */ -int SDLTest_AssertCheck(int assertCondition, SDL_PRINTF_FORMAT_STRING const char *assertDescription, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * \brief Explicitly pass without checking an assertion condition. Updates assertion counter. - * - * \param assertDescription Message to log with the assert describing it. - */ -void SDLTest_AssertPass(SDL_PRINTF_FORMAT_STRING const char *assertDescription, ...) SDL_PRINTF_VARARG_FUNC(1); - -/** - * \brief Resets the assert summary counters to zero. - */ -void SDLTest_ResetAssertSummary(void); - -/** - * \brief Logs summary of all assertions (total, pass, fail) since last reset as INFO or ERROR. - */ -void SDLTest_LogAssertSummary(void); - - -/** - * \brief Converts the current assert summary state to a test result. - * - * \returns TEST_RESULT_PASSED, TEST_RESULT_FAILED, or TEST_RESULT_NO_ASSERT - */ -int SDLTest_AssertSummaryToTestResult(void); - -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_assert_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test_common.h b/lib/windows/include/SDL_test_common.h deleted file mode 100644 index 6de63ca..0000000 --- a/lib/windows/include/SDL_test_common.h +++ /dev/null @@ -1,236 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test_common.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -/* Ported from original test\common.h file. */ - -#ifndef SDL_test_common_h_ -#define SDL_test_common_h_ - -#include "SDL.h" - -#if defined(__PSP__) -#define DEFAULT_WINDOW_WIDTH 480 -#define DEFAULT_WINDOW_HEIGHT 272 -#elif defined(__VITA__) -#define DEFAULT_WINDOW_WIDTH 960 -#define DEFAULT_WINDOW_HEIGHT 544 -#else -#define DEFAULT_WINDOW_WIDTH 640 -#define DEFAULT_WINDOW_HEIGHT 480 -#endif - -#define VERBOSE_VIDEO 0x00000001 -#define VERBOSE_MODES 0x00000002 -#define VERBOSE_RENDER 0x00000004 -#define VERBOSE_EVENT 0x00000008 -#define VERBOSE_AUDIO 0x00000010 -#define VERBOSE_MOTION 0x00000020 - -typedef struct -{ - /* SDL init flags */ - char **argv; - Uint32 flags; - Uint32 verbose; - - /* Video info */ - const char *videodriver; - int display; - const char *window_title; - const char *window_icon; - Uint32 window_flags; - SDL_bool flash_on_focus_loss; - int window_x; - int window_y; - int window_w; - int window_h; - int window_minW; - int window_minH; - int window_maxW; - int window_maxH; - int logical_w; - int logical_h; - float scale; - int depth; - int refresh_rate; - int num_windows; - SDL_Window **windows; - - /* Renderer info */ - const char *renderdriver; - Uint32 render_flags; - SDL_bool skip_renderer; - SDL_Renderer **renderers; - SDL_Texture **targets; - - /* Audio info */ - const char *audiodriver; - SDL_AudioSpec audiospec; - - /* GL settings */ - int gl_red_size; - int gl_green_size; - int gl_blue_size; - int gl_alpha_size; - int gl_buffer_size; - int gl_depth_size; - int gl_stencil_size; - int gl_double_buffer; - int gl_accum_red_size; - int gl_accum_green_size; - int gl_accum_blue_size; - int gl_accum_alpha_size; - int gl_stereo; - int gl_multisamplebuffers; - int gl_multisamplesamples; - int gl_retained_backing; - int gl_accelerated; - int gl_major_version; - int gl_minor_version; - int gl_debug; - int gl_profile_mask; - - /* Additional fields added in 2.0.18 */ - SDL_Rect confine; - -} SDLTest_CommonState; - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Function prototypes */ - -/** - * \brief Parse command line parameters and create common state. - * - * \param argv Array of command line parameters - * \param flags Flags indicating which subsystem to initialize (i.e. SDL_INIT_VIDEO | SDL_INIT_AUDIO) - * - * \returns a newly allocated common state object. - */ -SDLTest_CommonState *SDLTest_CommonCreateState(char **argv, Uint32 flags); - -/** - * \brief Process one common argument. - * - * \param state The common state describing the test window to create. - * \param index The index of the argument to process in argv[]. - * - * \returns the number of arguments processed (i.e. 1 for --fullscreen, 2 for --video [videodriver], or -1 on error. - */ -int SDLTest_CommonArg(SDLTest_CommonState * state, int index); - - -/** - * \brief Logs command line usage info. - * - * This logs the appropriate command line options for the subsystems in use - * plus other common options, and then any application-specific options. - * This uses the SDL_Log() function and splits up output to be friendly to - * 80-character-wide terminals. - * - * \param state The common state describing the test window for the app. - * \param argv0 argv[0], as passed to main/SDL_main. - * \param options an array of strings for application specific options. The last element of the array should be NULL. - */ -void SDLTest_CommonLogUsage(SDLTest_CommonState * state, const char *argv0, const char **options); - -/** - * \brief Returns common usage information - * - * You should (probably) be using SDLTest_CommonLogUsage() instead, but this - * function remains for binary compatibility. Strings returned from this - * function are valid until SDLTest_CommonQuit() is called, in which case - * those strings' memory is freed and can no longer be used. - * - * \param state The common state describing the test window to create. - * \returns a string with usage information - */ -const char *SDLTest_CommonUsage(SDLTest_CommonState * state); - -/** - * \brief Open test window. - * - * \param state The common state describing the test window to create. - * - * \returns SDL_TRUE if initialization succeeded, false otherwise - */ -SDL_bool SDLTest_CommonInit(SDLTest_CommonState * state); - -/** - * \brief Easy argument handling when test app doesn't need any custom args. - * - * \param state The common state describing the test window to create. - * \param argc argc, as supplied to SDL_main - * \param argv argv, as supplied to SDL_main - * - * \returns SDL_FALSE if app should quit, true otherwise. - */ -SDL_bool SDLTest_CommonDefaultArgs(SDLTest_CommonState * state, const int argc, char **argv); - -/** - * \brief Common event handler for test windows. - * - * \param state The common state used to create test window. - * \param event The event to handle. - * \param done Flag indicating we are done. - * - */ -void SDLTest_CommonEvent(SDLTest_CommonState * state, SDL_Event * event, int *done); - -/** - * \brief Close test window. - * - * \param state The common state used to create test window. - * - */ -void SDLTest_CommonQuit(SDLTest_CommonState * state); - -/** - * \brief Draws various window information (position, size, etc.) to the renderer. - * - * \param renderer The renderer to draw to. - * \param window The window whose information should be displayed. - * \param usedHeight Returns the height used, so the caller can draw more below. - * - */ -void SDLTest_CommonDrawWindowInfo(SDL_Renderer * renderer, SDL_Window * window, int * usedHeight); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_common_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test_compare.h b/lib/windows/include/SDL_test_compare.h deleted file mode 100644 index 5fce25c..0000000 --- a/lib/windows/include/SDL_test_compare.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test_compare.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -/* - - Defines comparison functions (i.e. for surfaces). - -*/ - -#ifndef SDL_test_compare_h_ -#define SDL_test_compare_h_ - -#include "SDL.h" - -#include "SDL_test_images.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief Compares a surface and with reference image data for equality - * - * \param surface Surface used in comparison - * \param referenceSurface Test Surface used in comparison - * \param allowable_error Allowable difference (=sum of squared difference for each RGB component) in blending accuracy. - * - * \returns 0 if comparison succeeded, >0 (=number of pixels for which the comparison failed) if comparison failed, -1 if any of the surfaces were NULL, -2 if the surface sizes differ. - */ -int SDLTest_CompareSurfaces(SDL_Surface *surface, SDL_Surface *referenceSurface, int allowable_error); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_compare_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test_crc32.h b/lib/windows/include/SDL_test_crc32.h deleted file mode 100644 index bf34782..0000000 --- a/lib/windows/include/SDL_test_crc32.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test_crc32.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -/* - - Implements CRC32 calculations (default output is Perl String::CRC32 compatible). - -*/ - -#ifndef SDL_test_crc32_h_ -#define SDL_test_crc32_h_ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - - -/* ------------ Definitions --------- */ - -/* Definition shared by all CRC routines */ - -#ifndef CrcUint32 - #define CrcUint32 unsigned int -#endif -#ifndef CrcUint8 - #define CrcUint8 unsigned char -#endif - -#ifdef ORIGINAL_METHOD - #define CRC32_POLY 0x04c11db7 /* AUTODIN II, Ethernet, & FDDI */ -#else - #define CRC32_POLY 0xEDB88320 /* Perl String::CRC32 compatible */ -#endif - -/** - * Data structure for CRC32 (checksum) computation - */ - typedef struct { - CrcUint32 crc32_table[256]; /* CRC table */ - } SDLTest_Crc32Context; - -/* ---------- Function Prototypes ------------- */ - -/** - * \brief Initialize the CRC context - * - * Note: The function initializes the crc table required for all crc calculations. - * - * \param crcContext pointer to context variable - * - * \returns 0 for OK, -1 on error - * - */ - int SDLTest_Crc32Init(SDLTest_Crc32Context * crcContext); - - -/** - * \brief calculate a crc32 from a data block - * - * \param crcContext pointer to context variable - * \param inBuf input buffer to checksum - * \param inLen length of input buffer - * \param crc32 pointer to Uint32 to store the final CRC into - * - * \returns 0 for OK, -1 on error - * - */ -int SDLTest_Crc32Calc(SDLTest_Crc32Context * crcContext, CrcUint8 *inBuf, CrcUint32 inLen, CrcUint32 *crc32); - -/* Same routine broken down into three steps */ -int SDLTest_Crc32CalcStart(SDLTest_Crc32Context * crcContext, CrcUint32 *crc32); -int SDLTest_Crc32CalcEnd(SDLTest_Crc32Context * crcContext, CrcUint32 *crc32); -int SDLTest_Crc32CalcBuffer(SDLTest_Crc32Context * crcContext, CrcUint8 *inBuf, CrcUint32 inLen, CrcUint32 *crc32); - - -/** - * \brief clean up CRC context - * - * \param crcContext pointer to context variable - * - * \returns 0 for OK, -1 on error - * -*/ - -int SDLTest_Crc32Done(SDLTest_Crc32Context * crcContext); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_crc32_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test_font.h b/lib/windows/include/SDL_test_font.h deleted file mode 100644 index 18a82ff..0000000 --- a/lib/windows/include/SDL_test_font.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test_font.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -#ifndef SDL_test_font_h_ -#define SDL_test_font_h_ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Function prototypes */ - -#define FONT_CHARACTER_SIZE 8 -#define FONT_LINE_HEIGHT (FONT_CHARACTER_SIZE + 2) - -/** - * \brief Draw a string in the currently set font. - * - * \param renderer The renderer to draw on. - * \param x The X coordinate of the upper left corner of the character. - * \param y The Y coordinate of the upper left corner of the character. - * \param c The character to draw. - * - * \returns 0 on success, -1 on failure. - */ -int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, Uint32 c); - -/** - * \brief Draw a UTF-8 string in the currently set font. - * - * The font currently only supports characters in the Basic Latin and Latin-1 Supplement sets. - * - * \param renderer The renderer to draw on. - * \param x The X coordinate of the upper left corner of the string. - * \param y The Y coordinate of the upper left corner of the string. - * \param s The string to draw. - * - * \returns 0 on success, -1 on failure. - */ -int SDLTest_DrawString(SDL_Renderer *renderer, int x, int y, const char *s); - -/** - * \brief Data used for multi-line text output - */ -typedef struct SDLTest_TextWindow -{ - SDL_Rect rect; - int current; - int numlines; - char **lines; -} SDLTest_TextWindow; - -/** - * \brief Create a multi-line text output window - * - * \param x The X coordinate of the upper left corner of the window. - * \param y The Y coordinate of the upper left corner of the window. - * \param w The width of the window (currently ignored) - * \param h The height of the window (currently ignored) - * - * \returns the new window, or NULL on failure. - * - * \since This function is available since SDL 2.24.0 - */ -SDLTest_TextWindow *SDLTest_TextWindowCreate(int x, int y, int w, int h); - -/** - * \brief Display a multi-line text output window - * - * This function should be called every frame to display the text - * - * \param textwin The text output window - * \param renderer The renderer to use for display - * - * \since This function is available since SDL 2.24.0 - */ -void SDLTest_TextWindowDisplay(SDLTest_TextWindow *textwin, SDL_Renderer *renderer); - -/** - * \brief Add text to a multi-line text output window - * - * Adds UTF-8 text to the end of the current text. The newline character starts a - * new line of text. The backspace character deletes the last character or, if the - * line is empty, deletes the line and goes to the end of the previous line. - * - * \param textwin The text output window - * \param fmt A printf() style format string - * \param ... additional parameters matching % tokens in the `fmt` string, if any - * - * \since This function is available since SDL 2.24.0 - */ -void SDLTest_TextWindowAddText(SDLTest_TextWindow *textwin, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * \brief Add text to a multi-line text output window - * - * Adds UTF-8 text to the end of the current text. The newline character starts a - * new line of text. The backspace character deletes the last character or, if the - * line is empty, deletes the line and goes to the end of the previous line. - * - * \param textwin The text output window - * \param text The text to add to the window - * \param len The length, in bytes, of the text to add to the window - * - * \since This function is available since SDL 2.24.0 - */ -void SDLTest_TextWindowAddTextWithLength(SDLTest_TextWindow *textwin, const char *text, size_t len); - -/** - * \brief Clear the text in a multi-line text output window - * - * \param textwin The text output window - * - * \since This function is available since SDL 2.24.0 - */ -void SDLTest_TextWindowClear(SDLTest_TextWindow *textwin); - -/** - * \brief Free the storage associated with a multi-line text output window - * - * \param textwin The text output window - * - * \since This function is available since SDL 2.24.0 - */ -void SDLTest_TextWindowDestroy(SDLTest_TextWindow *textwin); - -/** - * \brief Cleanup textures used by font drawing functions. - */ -void SDLTest_CleanupTextDrawing(void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_font_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test_fuzzer.h b/lib/windows/include/SDL_test_fuzzer.h deleted file mode 100644 index cfe6a14..0000000 --- a/lib/windows/include/SDL_test_fuzzer.h +++ /dev/null @@ -1,386 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test_fuzzer.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -/* - - Data generators for fuzzing test data in a reproducible way. - -*/ - -#ifndef SDL_test_fuzzer_h_ -#define SDL_test_fuzzer_h_ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - - -/* - Based on GSOC code by Markus Kauppila <markus.kauppila@gmail.com> -*/ - - -/** - * \file - * Note: The fuzzer implementation uses a static instance of random context - * internally which makes it thread-UNsafe. - */ - -/** - * Initializes the fuzzer for a test - * - * \param execKey Execution "Key" that initializes the random number generator uniquely for the test. - * - */ -void SDLTest_FuzzerInit(Uint64 execKey); - - -/** - * Returns a random Uint8 - * - * \returns a generated integer - */ -Uint8 SDLTest_RandomUint8(void); - -/** - * Returns a random Sint8 - * - * \returns a generated signed integer - */ -Sint8 SDLTest_RandomSint8(void); - - -/** - * Returns a random Uint16 - * - * \returns a generated integer - */ -Uint16 SDLTest_RandomUint16(void); - -/** - * Returns a random Sint16 - * - * \returns a generated signed integer - */ -Sint16 SDLTest_RandomSint16(void); - - -/** - * Returns a random integer - * - * \returns a generated integer - */ -Sint32 SDLTest_RandomSint32(void); - - -/** - * Returns a random positive integer - * - * \returns a generated integer - */ -Uint32 SDLTest_RandomUint32(void); - -/** - * Returns random Uint64. - * - * \returns a generated integer - */ -Uint64 SDLTest_RandomUint64(void); - - -/** - * Returns random Sint64. - * - * \returns a generated signed integer - */ -Sint64 SDLTest_RandomSint64(void); - -/** - * \returns a random float in range [0.0 - 1.0] - */ -float SDLTest_RandomUnitFloat(void); - -/** - * \returns a random double in range [0.0 - 1.0] - */ -double SDLTest_RandomUnitDouble(void); - -/** - * \returns a random float. - * - */ -float SDLTest_RandomFloat(void); - -/** - * \returns a random double. - * - */ -double SDLTest_RandomDouble(void); - -/** - * Returns a random boundary value for Uint8 within the given boundaries. - * Boundaries are inclusive, see the usage examples below. If validDomain - * is true, the function will only return valid boundaries, otherwise non-valid - * boundaries are also possible. - * If boundary1 > boundary2, the values are swapped - * - * Usage examples: - * RandomUint8BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 - * RandomUint8BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21 - * RandomUint8BoundaryValue(0, 99, SDL_FALSE) returns 100 - * RandomUint8BoundaryValue(0, 255, SDL_FALSE) returns 0 (error set) - * - * \param boundary1 Lower boundary limit - * \param boundary2 Upper boundary limit - * \param validDomain Should the generated boundary be valid (=within the bounds) or not? - * - * \returns a random boundary value for the given range and domain or 0 with error set - */ -Uint8 SDLTest_RandomUint8BoundaryValue(Uint8 boundary1, Uint8 boundary2, SDL_bool validDomain); - -/** - * Returns a random boundary value for Uint16 within the given boundaries. - * Boundaries are inclusive, see the usage examples below. If validDomain - * is true, the function will only return valid boundaries, otherwise non-valid - * boundaries are also possible. - * If boundary1 > boundary2, the values are swapped - * - * Usage examples: - * RandomUint16BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 - * RandomUint16BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21 - * RandomUint16BoundaryValue(0, 99, SDL_FALSE) returns 100 - * RandomUint16BoundaryValue(0, 0xFFFF, SDL_FALSE) returns 0 (error set) - * - * \param boundary1 Lower boundary limit - * \param boundary2 Upper boundary limit - * \param validDomain Should the generated boundary be valid (=within the bounds) or not? - * - * \returns a random boundary value for the given range and domain or 0 with error set - */ -Uint16 SDLTest_RandomUint16BoundaryValue(Uint16 boundary1, Uint16 boundary2, SDL_bool validDomain); - -/** - * Returns a random boundary value for Uint32 within the given boundaries. - * Boundaries are inclusive, see the usage examples below. If validDomain - * is true, the function will only return valid boundaries, otherwise non-valid - * boundaries are also possible. - * If boundary1 > boundary2, the values are swapped - * - * Usage examples: - * RandomUint32BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 - * RandomUint32BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21 - * RandomUint32BoundaryValue(0, 99, SDL_FALSE) returns 100 - * RandomUint32BoundaryValue(0, 0xFFFFFFFF, SDL_FALSE) returns 0 (with error set) - * - * \param boundary1 Lower boundary limit - * \param boundary2 Upper boundary limit - * \param validDomain Should the generated boundary be valid (=within the bounds) or not? - * - * \returns a random boundary value for the given range and domain or 0 with error set - */ -Uint32 SDLTest_RandomUint32BoundaryValue(Uint32 boundary1, Uint32 boundary2, SDL_bool validDomain); - -/** - * Returns a random boundary value for Uint64 within the given boundaries. - * Boundaries are inclusive, see the usage examples below. If validDomain - * is true, the function will only return valid boundaries, otherwise non-valid - * boundaries are also possible. - * If boundary1 > boundary2, the values are swapped - * - * Usage examples: - * RandomUint64BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 - * RandomUint64BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21 - * RandomUint64BoundaryValue(0, 99, SDL_FALSE) returns 100 - * RandomUint64BoundaryValue(0, 0xFFFFFFFFFFFFFFFF, SDL_FALSE) returns 0 (with error set) - * - * \param boundary1 Lower boundary limit - * \param boundary2 Upper boundary limit - * \param validDomain Should the generated boundary be valid (=within the bounds) or not? - * - * \returns a random boundary value for the given range and domain or 0 with error set - */ -Uint64 SDLTest_RandomUint64BoundaryValue(Uint64 boundary1, Uint64 boundary2, SDL_bool validDomain); - -/** - * Returns a random boundary value for Sint8 within the given boundaries. - * Boundaries are inclusive, see the usage examples below. If validDomain - * is true, the function will only return valid boundaries, otherwise non-valid - * boundaries are also possible. - * If boundary1 > boundary2, the values are swapped - * - * Usage examples: - * RandomSint8BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20 - * RandomSint8BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9 - * RandomSint8BoundaryValue(SINT8_MIN, 99, SDL_FALSE) returns 100 - * RandomSint8BoundaryValue(SINT8_MIN, SINT8_MAX, SDL_FALSE) returns SINT8_MIN (== error value) with error set - * - * \param boundary1 Lower boundary limit - * \param boundary2 Upper boundary limit - * \param validDomain Should the generated boundary be valid (=within the bounds) or not? - * - * \returns a random boundary value for the given range and domain or SINT8_MIN with error set - */ -Sint8 SDLTest_RandomSint8BoundaryValue(Sint8 boundary1, Sint8 boundary2, SDL_bool validDomain); - - -/** - * Returns a random boundary value for Sint16 within the given boundaries. - * Boundaries are inclusive, see the usage examples below. If validDomain - * is true, the function will only return valid boundaries, otherwise non-valid - * boundaries are also possible. - * If boundary1 > boundary2, the values are swapped - * - * Usage examples: - * RandomSint16BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20 - * RandomSint16BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9 - * RandomSint16BoundaryValue(SINT16_MIN, 99, SDL_FALSE) returns 100 - * RandomSint16BoundaryValue(SINT16_MIN, SINT16_MAX, SDL_FALSE) returns SINT16_MIN (== error value) with error set - * - * \param boundary1 Lower boundary limit - * \param boundary2 Upper boundary limit - * \param validDomain Should the generated boundary be valid (=within the bounds) or not? - * - * \returns a random boundary value for the given range and domain or SINT16_MIN with error set - */ -Sint16 SDLTest_RandomSint16BoundaryValue(Sint16 boundary1, Sint16 boundary2, SDL_bool validDomain); - -/** - * Returns a random boundary value for Sint32 within the given boundaries. - * Boundaries are inclusive, see the usage examples below. If validDomain - * is true, the function will only return valid boundaries, otherwise non-valid - * boundaries are also possible. - * If boundary1 > boundary2, the values are swapped - * - * Usage examples: - * RandomSint32BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20 - * RandomSint32BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9 - * RandomSint32BoundaryValue(SINT32_MIN, 99, SDL_FALSE) returns 100 - * RandomSint32BoundaryValue(SINT32_MIN, SINT32_MAX, SDL_FALSE) returns SINT32_MIN (== error value) - * - * \param boundary1 Lower boundary limit - * \param boundary2 Upper boundary limit - * \param validDomain Should the generated boundary be valid (=within the bounds) or not? - * - * \returns a random boundary value for the given range and domain or SINT32_MIN with error set - */ -Sint32 SDLTest_RandomSint32BoundaryValue(Sint32 boundary1, Sint32 boundary2, SDL_bool validDomain); - -/** - * Returns a random boundary value for Sint64 within the given boundaries. - * Boundaries are inclusive, see the usage examples below. If validDomain - * is true, the function will only return valid boundaries, otherwise non-valid - * boundaries are also possible. - * If boundary1 > boundary2, the values are swapped - * - * Usage examples: - * RandomSint64BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20 - * RandomSint64BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9 - * RandomSint64BoundaryValue(SINT64_MIN, 99, SDL_FALSE) returns 100 - * RandomSint64BoundaryValue(SINT64_MIN, SINT64_MAX, SDL_FALSE) returns SINT64_MIN (== error value) and error set - * - * \param boundary1 Lower boundary limit - * \param boundary2 Upper boundary limit - * \param validDomain Should the generated boundary be valid (=within the bounds) or not? - * - * \returns a random boundary value for the given range and domain or SINT64_MIN with error set - */ -Sint64 SDLTest_RandomSint64BoundaryValue(Sint64 boundary1, Sint64 boundary2, SDL_bool validDomain); - - -/** - * Returns integer in range [min, max] (inclusive). - * Min and max values can be negative values. - * If Max in smaller than min, then the values are swapped. - * Min and max are the same value, that value will be returned. - * - * \param min Minimum inclusive value of returned random number - * \param max Maximum inclusive value of returned random number - * - * \returns a generated random integer in range - */ -Sint32 SDLTest_RandomIntegerInRange(Sint32 min, Sint32 max); - - -/** - * Generates random null-terminated string. The minimum length for - * the string is 1 character, maximum length for the string is 255 - * characters and it can contain ASCII characters from 32 to 126. - * - * Note: Returned string needs to be deallocated. - * - * \returns a newly allocated random string; or NULL if length was invalid or string could not be allocated. - */ -char * SDLTest_RandomAsciiString(void); - - -/** - * Generates random null-terminated string. The maximum length for - * the string is defined by the maxLength parameter. - * String can contain ASCII characters from 32 to 126. - * - * Note: Returned string needs to be deallocated. - * - * \param maxLength The maximum length of the generated string. - * - * \returns a newly allocated random string; or NULL if maxLength was invalid or string could not be allocated. - */ -char * SDLTest_RandomAsciiStringWithMaximumLength(int maxLength); - - -/** - * Generates random null-terminated string. The length for - * the string is defined by the size parameter. - * String can contain ASCII characters from 32 to 126. - * - * Note: Returned string needs to be deallocated. - * - * \param size The length of the generated string - * - * \returns a newly allocated random string; or NULL if size was invalid or string could not be allocated. - */ -char * SDLTest_RandomAsciiStringOfSize(int size); - -/** - * Get the invocation count for the fuzzer since last ...FuzzerInit. - * - * \returns the invocation count. - */ -int SDLTest_GetFuzzerInvocationCount(void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_fuzzer_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test_harness.h b/lib/windows/include/SDL_test_harness.h deleted file mode 100644 index 26231dc..0000000 --- a/lib/windows/include/SDL_test_harness.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test_harness.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -/* - Defines types for test case definitions and the test execution harness API. - - Based on original GSOC code by Markus Kauppila <markus.kauppila@gmail.com> -*/ - -#ifndef SDL_test_h_arness_h -#define SDL_test_h_arness_h - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - - -/* ! Definitions for test case structures */ -#define TEST_ENABLED 1 -#define TEST_DISABLED 0 - -/* ! Definition of all the possible test return values of the test case method */ -#define TEST_ABORTED -1 -#define TEST_STARTED 0 -#define TEST_COMPLETED 1 -#define TEST_SKIPPED 2 - -/* ! Definition of all the possible test results for the harness */ -#define TEST_RESULT_PASSED 0 -#define TEST_RESULT_FAILED 1 -#define TEST_RESULT_NO_ASSERT 2 -#define TEST_RESULT_SKIPPED 3 -#define TEST_RESULT_SETUP_FAILURE 4 - -/* !< Function pointer to a test case setup function (run before every test) */ -typedef void (*SDLTest_TestCaseSetUpFp)(void *arg); - -/* !< Function pointer to a test case function */ -typedef int (*SDLTest_TestCaseFp)(void *arg); - -/* !< Function pointer to a test case teardown function (run after every test) */ -typedef void (*SDLTest_TestCaseTearDownFp)(void *arg); - -/** - * Holds information about a single test case. - */ -typedef struct SDLTest_TestCaseReference { - /* !< Func2Stress */ - SDLTest_TestCaseFp testCase; - /* !< Short name (or function name) "Func2Stress" */ - const char *name; - /* !< Long name or full description "This test pushes func2() to the limit." */ - const char *description; - /* !< Set to TEST_ENABLED or TEST_DISABLED (test won't be run) */ - int enabled; -} SDLTest_TestCaseReference; - -/** - * Holds information about a test suite (multiple test cases). - */ -typedef struct SDLTest_TestSuiteReference { - /* !< "PlatformSuite" */ - const char *name; - /* !< The function that is run before each test. NULL skips. */ - SDLTest_TestCaseSetUpFp testSetUp; - /* !< The test cases that are run as part of the suite. Last item should be NULL. */ - const SDLTest_TestCaseReference **testCases; - /* !< The function that is run after each test. NULL skips. */ - SDLTest_TestCaseTearDownFp testTearDown; -} SDLTest_TestSuiteReference; - - -/** - * \brief Generates a random run seed string for the harness. The generated seed will contain alphanumeric characters (0-9A-Z). - * - * Note: The returned string needs to be deallocated by the caller. - * - * \param length The length of the seed string to generate - * - * \returns the generated seed string - */ -char *SDLTest_GenerateRunSeed(const int length); - -/** - * \brief Execute a test suite using the given run seed and execution key. - * - * \param testSuites Suites containing the test case. - * \param userRunSeed Custom run seed provided by user, or NULL to autogenerate one. - * \param userExecKey Custom execution key provided by user, or 0 to autogenerate one. - * \param filter Filter specification. NULL disables. Case sensitive. - * \param testIterations Number of iterations to run each test case. - * - * \returns the test run result: 0 when all tests passed, 1 if any tests failed. - */ -int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *userRunSeed, Uint64 userExecKey, const char *filter, int testIterations); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_h_arness_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test_images.h b/lib/windows/include/SDL_test_images.h deleted file mode 100644 index 1211371..0000000 --- a/lib/windows/include/SDL_test_images.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test_images.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -/* - - Defines some images for tests. - -*/ - -#ifndef SDL_test_images_h_ -#define SDL_test_images_h_ - -#include "SDL.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - *Type for test images. - */ -typedef struct SDLTest_SurfaceImage_s { - int width; - int height; - unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */ - const char *pixel_data; -} SDLTest_SurfaceImage_t; - -/* Test images */ -SDL_Surface *SDLTest_ImageBlit(void); -SDL_Surface *SDLTest_ImageBlitColor(void); -SDL_Surface *SDLTest_ImageBlitAlpha(void); -SDL_Surface *SDLTest_ImageBlitBlendAdd(void); -SDL_Surface *SDLTest_ImageBlitBlend(void); -SDL_Surface *SDLTest_ImageBlitBlendMod(void); -SDL_Surface *SDLTest_ImageBlitBlendNone(void); -SDL_Surface *SDLTest_ImageBlitBlendAll(void); -SDL_Surface *SDLTest_ImageFace(void); -SDL_Surface *SDLTest_ImagePrimitives(void); -SDL_Surface *SDLTest_ImagePrimitivesBlend(void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_images_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test_log.h b/lib/windows/include/SDL_test_log.h deleted file mode 100644 index a27ffc2..0000000 --- a/lib/windows/include/SDL_test_log.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test_log.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -/* - * - * Wrapper to log in the TEST category - * - */ - -#ifndef SDL_test_log_h_ -#define SDL_test_log_h_ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief Prints given message with a timestamp in the TEST category and INFO priority. - * - * \param fmt Message to be logged - */ -void SDLTest_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); - -/** - * \brief Prints given message with a timestamp in the TEST category and the ERROR priority. - * - * \param fmt Message to be logged - */ -void SDLTest_LogError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_log_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test_md5.h b/lib/windows/include/SDL_test_md5.h deleted file mode 100644 index 538c7ae..0000000 --- a/lib/windows/include/SDL_test_md5.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test_md5.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -/* - *********************************************************************** - ** Header file for implementation of MD5 ** - ** RSA Data Security, Inc. MD5 Message-Digest Algorithm ** - ** Created: 2/17/90 RLR ** - ** Revised: 12/27/90 SRD,AJ,BSK,JT Reference C version ** - ** Revised (for MD5): RLR 4/27/91 ** - ** -- G modified to have y&~z instead of y&z ** - ** -- FF, GG, HH modified to add in last register done ** - ** -- Access pattern: round 2 works mod 5, round 3 works mod 3 ** - ** -- distinct additive constant for each step ** - ** -- round 4 added, working mod 7 ** - *********************************************************************** -*/ - -/* - *********************************************************************** - ** Message-digest routines: ** - ** To form the message digest for a message M ** - ** (1) Initialize a context buffer mdContext using MD5Init ** - ** (2) Call MD5Update on mdContext and M ** - ** (3) Call MD5Final on mdContext ** - ** The message digest is now in mdContext->digest[0...15] ** - *********************************************************************** -*/ - -#ifndef SDL_test_md5_h_ -#define SDL_test_md5_h_ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* ------------ Definitions --------- */ - -/* typedef a 32-bit type */ - typedef unsigned long int MD5UINT4; - -/* Data structure for MD5 (Message-Digest) computation */ - typedef struct { - MD5UINT4 i[2]; /* number of _bits_ handled mod 2^64 */ - MD5UINT4 buf[4]; /* scratch buffer */ - unsigned char in[64]; /* input buffer */ - unsigned char digest[16]; /* actual digest after Md5Final call */ - } SDLTest_Md5Context; - -/* ---------- Function Prototypes ------------- */ - -/** - * \brief initialize the context - * - * \param mdContext pointer to context variable - * - * Note: The function initializes the message-digest context - * mdContext. Call before each new use of the context - - * all fields are set to zero. - */ - void SDLTest_Md5Init(SDLTest_Md5Context * mdContext); - - -/** - * \brief update digest from variable length data - * - * \param mdContext pointer to context variable - * \param inBuf pointer to data array/string - * \param inLen length of data array/string - * - * Note: The function updates the message-digest context to account - * for the presence of each of the characters inBuf[0..inLen-1] - * in the message whose digest is being computed. -*/ - - void SDLTest_Md5Update(SDLTest_Md5Context * mdContext, unsigned char *inBuf, - unsigned int inLen); - - -/** - * \brief complete digest computation - * - * \param mdContext pointer to context variable - * - * Note: The function terminates the message-digest computation and - * ends with the desired message digest in mdContext.digest[0..15]. - * Always call before using the digest[] variable. -*/ - - void SDLTest_Md5Final(SDLTest_Md5Context * mdContext); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_md5_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test_memory.h b/lib/windows/include/SDL_test_memory.h deleted file mode 100644 index f959177..0000000 --- a/lib/windows/include/SDL_test_memory.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test_memory.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -#ifndef SDL_test_memory_h_ -#define SDL_test_memory_h_ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - - -/** - * \brief Start tracking SDL memory allocations - * - * \note This should be called before any other SDL functions for complete tracking coverage - */ -int SDLTest_TrackAllocations(void); - -/** - * \brief Print a log of any outstanding allocations - * - * \note This can be called after SDL_Quit() - */ -void SDLTest_LogAllocations(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_memory_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_test_random.h b/lib/windows/include/SDL_test_random.h deleted file mode 100644 index 0035a80..0000000 --- a/lib/windows/include/SDL_test_random.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_test_random.h - * - * Include file for SDL test framework. - * - * This code is a part of the SDL2_test library, not the main SDL library. - */ - -/* - - A "32-bit Multiply with carry random number generator. Very fast. - Includes a list of recommended multipliers. - - multiply-with-carry generator: x(n) = a*x(n-1) + carry mod 2^32. - period: (a*2^31)-1 - -*/ - -#ifndef SDL_test_random_h_ -#define SDL_test_random_h_ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* --- Definitions */ - -/* - * Macros that return a random number in a specific format. - */ -#define SDLTest_RandomInt(c) ((int)SDLTest_Random(c)) - -/* - * Context structure for the random number generator state. - */ - typedef struct { - unsigned int a; - unsigned int x; - unsigned int c; - unsigned int ah; - unsigned int al; - } SDLTest_RandomContext; - - -/* --- Function prototypes */ - -/** - * \brief Initialize random number generator with two integers. - * - * Note: The random sequence of numbers returned by ...Random() is the - * same for the same two integers and has a period of 2^31. - * - * \param rndContext pointer to context structure - * \param xi integer that defines the random sequence - * \param ci integer that defines the random sequence - * - */ - void SDLTest_RandomInit(SDLTest_RandomContext * rndContext, unsigned int xi, - unsigned int ci); - -/** - * \brief Initialize random number generator based on current system time. - * - * \param rndContext pointer to context structure - * - */ - void SDLTest_RandomInitTime(SDLTest_RandomContext *rndContext); - - -/** - * \brief Initialize random number generator based on current system time. - * - * Note: ...RandomInit() or ...RandomInitTime() must have been called - * before using this function. - * - * \param rndContext pointer to context structure - * - * \returns a random number (32bit unsigned integer) - * - */ - unsigned int SDLTest_Random(SDLTest_RandomContext *rndContext); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_test_random_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_thread.h b/lib/windows/include/SDL_thread.h deleted file mode 100644 index b829bba..0000000 --- a/lib/windows/include/SDL_thread.h +++ /dev/null @@ -1,464 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_thread_h_ -#define SDL_thread_h_ - -/** - * \file SDL_thread.h - * - * Header for the SDL thread management routines. - */ - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -/* Thread synchronization primitives */ -#include "SDL_atomic.h" -#include "SDL_mutex.h" - -#if (defined(__WIN32__) || defined(__GDK__)) && !defined(__WINRT__) -#include <process.h> /* _beginthreadex() and _endthreadex() */ -#endif -#if defined(__OS2__) /* for _beginthread() and _endthread() */ -#ifndef __EMX__ -#include <process.h> -#else -#include <stdlib.h> -#endif -#endif - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* The SDL thread structure, defined in SDL_thread.c */ -struct SDL_Thread; -typedef struct SDL_Thread SDL_Thread; - -/* The SDL thread ID */ -typedef unsigned long SDL_threadID; - -/* Thread local storage ID, 0 is the invalid ID */ -typedef unsigned int SDL_TLSID; - -/** - * The SDL thread priority. - * - * SDL will make system changes as necessary in order to apply the thread priority. - * Code which attempts to control thread state related to priority should be aware - * that calling SDL_SetThreadPriority may alter such state. - * SDL_HINT_THREAD_PRIORITY_POLICY can be used to control aspects of this behavior. - * - * \note On many systems you require special privileges to set high or time critical priority. - */ -typedef enum { - SDL_THREAD_PRIORITY_LOW, - SDL_THREAD_PRIORITY_NORMAL, - SDL_THREAD_PRIORITY_HIGH, - SDL_THREAD_PRIORITY_TIME_CRITICAL -} SDL_ThreadPriority; - -/** - * The function passed to SDL_CreateThread(). - * - * \param data what was passed as `data` to SDL_CreateThread() - * \returns a value that can be reported through SDL_WaitThread(). - */ -typedef int (SDLCALL * SDL_ThreadFunction) (void *data); - - -#if (defined(__WIN32__) || defined(__GDK__)) && !defined(__WINRT__) -/** - * \file SDL_thread.h - * - * We compile SDL into a DLL. This means, that it's the DLL which - * creates a new thread for the calling process with the SDL_CreateThread() - * API. There is a problem with this, that only the RTL of the SDL2.DLL will - * be initialized for those threads, and not the RTL of the calling - * application! - * - * To solve this, we make a little hack here. - * - * We'll always use the caller's _beginthread() and _endthread() APIs to - * start a new thread. This way, if it's the SDL2.DLL which uses this API, - * then the RTL of SDL2.DLL will be used to create the new thread, and if it's - * the application, then the RTL of the application will be used. - * - * So, in short: - * Always use the _beginthread() and _endthread() of the calling runtime - * library! - */ -#define SDL_PASSED_BEGINTHREAD_ENDTHREAD - -typedef uintptr_t (__cdecl * pfnSDL_CurrentBeginThread) - (void *, unsigned, unsigned (__stdcall *func)(void *), - void * /*arg*/, unsigned, unsigned * /* threadID */); -typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code); - -#ifndef SDL_beginthread -#define SDL_beginthread _beginthreadex -#endif -#ifndef SDL_endthread -#define SDL_endthread _endthreadex -#endif - -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, - pfnSDL_CurrentBeginThread pfnBeginThread, - pfnSDL_CurrentEndThread pfnEndThread); - -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn, - const char *name, const size_t stacksize, void *data, - pfnSDL_CurrentBeginThread pfnBeginThread, - pfnSDL_CurrentEndThread pfnEndThread); - - -#if defined(SDL_CreateThread) && SDL_DYNAMIC_API -#undef SDL_CreateThread -#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#undef SDL_CreateThreadWithStackSize -#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#else -#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#endif - -#elif defined(__OS2__) -/* - * just like the windows case above: We compile SDL2 - * into a dll with Watcom's runtime statically linked. - */ -#define SDL_PASSED_BEGINTHREAD_ENDTHREAD - -typedef int (*pfnSDL_CurrentBeginThread)(void (*func)(void *), void *, unsigned, void * /*arg*/); -typedef void (*pfnSDL_CurrentEndThread)(void); - -#ifndef SDL_beginthread -#define SDL_beginthread _beginthread -#endif -#ifndef SDL_endthread -#define SDL_endthread _endthread -#endif - -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, - pfnSDL_CurrentBeginThread pfnBeginThread, - pfnSDL_CurrentEndThread pfnEndThread); -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn, const char *name, const size_t stacksize, void *data, - pfnSDL_CurrentBeginThread pfnBeginThread, - pfnSDL_CurrentEndThread pfnEndThread); - -#if defined(SDL_CreateThread) && SDL_DYNAMIC_API -#undef SDL_CreateThread -#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#undef SDL_CreateThreadWithStackSize -#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#else -#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#endif - -#else - -/** - * Create a new thread with a default stack size. - * - * This is equivalent to calling: - * - * ```c - * SDL_CreateThreadWithStackSize(fn, name, 0, data); - * ``` - * - * \param fn the SDL_ThreadFunction function to call in the new thread - * \param name the name of the thread - * \param data a pointer that is passed to `fn` - * \returns an opaque pointer to the new thread object on success, NULL if the - * new thread could not be created; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateThreadWithStackSize - * \sa SDL_WaitThread - */ -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data); - -/** - * Create a new thread with a specific stack size. - * - * SDL makes an attempt to report `name` to the system, so that debuggers can - * display it. Not all platforms support this. - * - * Thread naming is a little complicated: Most systems have very small limits - * for the string length (Haiku has 32 bytes, Linux currently has 16, Visual - * C++ 6.0 has _nine_!), and possibly other arbitrary rules. You'll have to - * see what happens with your system's debugger. The name should be UTF-8 (but - * using the naming limits of C identifiers is a better bet). There are no - * requirements for thread naming conventions, so long as the string is - * null-terminated UTF-8, but these guidelines are helpful in choosing a name: - * - * https://stackoverflow.com/questions/149932/naming-conventions-for-threads - * - * If a system imposes requirements, SDL will try to munge the string for it - * (truncate, etc), but the original string contents will be available from - * SDL_GetThreadName(). - * - * The size (in bytes) of the new stack can be specified. Zero means "use the - * system default" which might be wildly different between platforms. x86 - * Linux generally defaults to eight megabytes, an embedded device might be a - * few kilobytes instead. You generally need to specify a stack that is a - * multiple of the system's page size (in many cases, this is 4 kilobytes, but - * check your system documentation). - * - * In SDL 2.1, stack size will be folded into the original SDL_CreateThread - * function, but for backwards compatibility, this is currently a separate - * function. - * - * \param fn the SDL_ThreadFunction function to call in the new thread - * \param name the name of the thread - * \param stacksize the size, in bytes, to allocate for the new thread stack. - * \param data a pointer that is passed to `fn` - * \returns an opaque pointer to the new thread object on success, NULL if the - * new thread could not be created; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.9. - * - * \sa SDL_WaitThread - */ -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn, const char *name, const size_t stacksize, void *data); - -#endif - -/** - * Get the thread name as it was specified in SDL_CreateThread(). - * - * This is internal memory, not to be freed by the caller, and remains valid - * until the specified thread is cleaned up by SDL_WaitThread(). - * - * \param thread the thread to query - * \returns a pointer to a UTF-8 string that names the specified thread, or - * NULL if it doesn't have a name. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateThread - */ -extern DECLSPEC const char *SDLCALL SDL_GetThreadName(SDL_Thread *thread); - -/** - * Get the thread identifier for the current thread. - * - * This thread identifier is as reported by the underlying operating system. - * If SDL is running on a platform that does not support threads the return - * value will always be zero. - * - * This function also returns a valid thread ID when called from the main - * thread. - * - * \returns the ID of the current thread. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetThreadID - */ -extern DECLSPEC SDL_threadID SDLCALL SDL_ThreadID(void); - -/** - * Get the thread identifier for the specified thread. - * - * This thread identifier is as reported by the underlying operating system. - * If SDL is running on a platform that does not support threads the return - * value will always be zero. - * - * \param thread the thread to query - * \returns the ID of the specified thread, or the ID of the current thread if - * `thread` is NULL. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ThreadID - */ -extern DECLSPEC SDL_threadID SDLCALL SDL_GetThreadID(SDL_Thread * thread); - -/** - * Set the priority for the current thread. - * - * Note that some platforms will not let you alter the priority (or at least, - * promote the thread to a higher priority) at all, and some require you to be - * an administrator account. Be prepared for this to fail. - * - * \param priority the SDL_ThreadPriority to set - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_SetThreadPriority(SDL_ThreadPriority priority); - -/** - * Wait for a thread to finish. - * - * Threads that haven't been detached will remain (as a "zombie") until this - * function cleans them up. Not doing so is a resource leak. - * - * Once a thread has been cleaned up through this function, the SDL_Thread - * that references it becomes invalid and should not be referenced again. As - * such, only one thread may call SDL_WaitThread() on another. - * - * The return code for the thread function is placed in the area pointed to by - * `status`, if `status` is not NULL. - * - * You may not wait on a thread that has been used in a call to - * SDL_DetachThread(). Use either that function or this one, but not both, or - * behavior is undefined. - * - * It is safe to pass a NULL thread to this function; it is a no-op. - * - * Note that the thread pointer is freed by this function and is not valid - * afterward. - * - * \param thread the SDL_Thread pointer that was returned from the - * SDL_CreateThread() call that started this thread - * \param status pointer to an integer that will receive the value returned - * from the thread function by its 'return', or NULL to not - * receive such value back. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateThread - * \sa SDL_DetachThread - */ -extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread * thread, int *status); - -/** - * Let a thread clean up on exit without intervention. - * - * A thread may be "detached" to signify that it should not remain until - * another thread has called SDL_WaitThread() on it. Detaching a thread is - * useful for long-running threads that nothing needs to synchronize with or - * further manage. When a detached thread is done, it simply goes away. - * - * There is no way to recover the return code of a detached thread. If you - * need this, don't detach the thread and instead use SDL_WaitThread(). - * - * Once a thread is detached, you should usually assume the SDL_Thread isn't - * safe to reference again, as it will become invalid immediately upon the - * detached thread's exit, instead of remaining until someone has called - * SDL_WaitThread() to finally clean it up. As such, don't detach the same - * thread more than once. - * - * If a thread has already exited when passed to SDL_DetachThread(), it will - * stop waiting for a call to SDL_WaitThread() and clean up immediately. It is - * not safe to detach a thread that might be used with SDL_WaitThread(). - * - * You may not call SDL_WaitThread() on a thread that has been detached. Use - * either that function or this one, but not both, or behavior is undefined. - * - * It is safe to pass NULL to this function; it is a no-op. - * - * \param thread the SDL_Thread pointer that was returned from the - * SDL_CreateThread() call that started this thread - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_CreateThread - * \sa SDL_WaitThread - */ -extern DECLSPEC void SDLCALL SDL_DetachThread(SDL_Thread * thread); - -/** - * Create a piece of thread-local storage. - * - * This creates an identifier that is globally visible to all threads but - * refers to data that is thread-specific. - * - * \returns the newly created thread local storage identifier or 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_TLSGet - * \sa SDL_TLSSet - */ -extern DECLSPEC SDL_TLSID SDLCALL SDL_TLSCreate(void); - -/** - * Get the current thread's value associated with a thread local storage ID. - * - * \param id the thread local storage ID - * \returns the value associated with the ID for the current thread or NULL if - * no value has been set; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_TLSCreate - * \sa SDL_TLSSet - */ -extern DECLSPEC void * SDLCALL SDL_TLSGet(SDL_TLSID id); - -/** - * Set the current thread's value associated with a thread local storage ID. - * - * The function prototype for `destructor` is: - * - * ```c - * void destructor(void *value) - * ``` - * - * where its parameter `value` is what was passed as `value` to SDL_TLSSet(). - * - * \param id the thread local storage ID - * \param value the value to associate with the ID for the current thread - * \param destructor a function called when the thread exits, to free the - * value - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_TLSCreate - * \sa SDL_TLSGet - */ -extern DECLSPEC int SDLCALL SDL_TLSSet(SDL_TLSID id, const void *value, void (SDLCALL *destructor)(void*)); - -/** - * Cleanup all TLS data for this thread. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC void SDLCALL SDL_TLSCleanup(void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_thread_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_timer.h b/lib/windows/include/SDL_timer.h deleted file mode 100644 index 98f9ad1..0000000 --- a/lib/windows/include/SDL_timer.h +++ /dev/null @@ -1,222 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_timer_h_ -#define SDL_timer_h_ - -/** - * \file SDL_timer.h - * - * Header for the SDL time management routines. - */ - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Get the number of milliseconds since SDL library initialization. - * - * This value wraps if the program runs for more than ~49 days. - * - * This function is not recommended as of SDL 2.0.18; use SDL_GetTicks64() - * instead, where the value doesn't wrap every ~49 days. There are places in - * SDL where we provide a 32-bit timestamp that can not change without - * breaking binary compatibility, though, so this function isn't officially - * deprecated. - * - * \returns an unsigned 32-bit value representing the number of milliseconds - * since the SDL library initialized. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_TICKS_PASSED - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void); - -/** - * Get the number of milliseconds since SDL library initialization. - * - * Note that you should not use the SDL_TICKS_PASSED macro with values - * returned by this function, as that macro does clever math to compensate for - * the 32-bit overflow every ~49 days that SDL_GetTicks() suffers from. 64-bit - * values from this function can be safely compared directly. - * - * For example, if you want to wait 100 ms, you could do this: - * - * ```c - * const Uint64 timeout = SDL_GetTicks64() + 100; - * while (SDL_GetTicks64() < timeout) { - * // ... do work until timeout has elapsed - * } - * ``` - * - * \returns an unsigned 64-bit value representing the number of milliseconds - * since the SDL library initialized. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC Uint64 SDLCALL SDL_GetTicks64(void); - -/** - * Compare 32-bit SDL ticks values, and return true if `A` has passed `B`. - * - * This should be used with results from SDL_GetTicks(), as this macro - * attempts to deal with the 32-bit counter wrapping back to zero every ~49 - * days, but should _not_ be used with SDL_GetTicks64(), which does not have - * that problem. - * - * For example, with SDL_GetTicks(), if you want to wait 100 ms, you could - * do this: - * - * ```c - * const Uint32 timeout = SDL_GetTicks() + 100; - * while (!SDL_TICKS_PASSED(SDL_GetTicks(), timeout)) { - * // ... do work until timeout has elapsed - * } - * ``` - * - * Note that this does not handle tick differences greater - * than 2^31 so take care when using the above kind of code - * with large timeout delays (tens of days). - */ -#define SDL_TICKS_PASSED(A, B) ((Sint32)((B) - (A)) <= 0) - -/** - * Get the current value of the high resolution counter. - * - * This function is typically used for profiling. - * - * The counter values are only meaningful relative to each other. Differences - * between values can be converted to times by using - * SDL_GetPerformanceFrequency(). - * - * \returns the current counter value. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetPerformanceFrequency - */ -extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceCounter(void); - -/** - * Get the count per second of the high resolution counter. - * - * \returns a platform-specific count per second. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetPerformanceCounter - */ -extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceFrequency(void); - -/** - * Wait a specified number of milliseconds before returning. - * - * This function waits a specified number of milliseconds before returning. It - * waits at least the specified time, but possibly longer due to OS - * scheduling. - * - * \param ms the number of milliseconds to delay - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms); - -/** - * Function prototype for the timer callback function. - * - * The callback function is passed the current timer interval and returns - * the next timer interval. If the returned value is the same as the one - * passed in, the periodic alarm continues, otherwise a new alarm is - * scheduled. If the callback returns 0, the periodic alarm is cancelled. - */ -typedef Uint32 (SDLCALL * SDL_TimerCallback) (Uint32 interval, void *param); - -/** - * Definition of the timer ID type. - */ -typedef int SDL_TimerID; - -/** - * Call a callback function at a future time. - * - * If you use this function, you must pass `SDL_INIT_TIMER` to SDL_Init(). - * - * The callback function is passed the current timer interval and the user - * supplied parameter from the SDL_AddTimer() call and should return the next - * timer interval. If the value returned from the callback is 0, the timer is - * canceled. - * - * The callback is run on a separate thread. - * - * Timers take into account the amount of time it took to execute the - * callback. For example, if the callback took 250 ms to execute and returned - * 1000 (ms), the timer would only wait another 750 ms before its next - * iteration. - * - * Timing may be inexact due to OS scheduling. Be sure to note the current - * time with SDL_GetTicks() or SDL_GetPerformanceCounter() in case your - * callback needs to adjust for variances. - * - * \param interval the timer delay, in milliseconds, passed to `callback` - * \param callback the SDL_TimerCallback function to call when the specified - * `interval` elapses - * \param param a pointer that is passed to `callback` - * \returns a timer ID or 0 if an error occurs; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RemoveTimer - */ -extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval, - SDL_TimerCallback callback, - void *param); - -/** - * Remove a timer created with SDL_AddTimer(). - * - * \param id the ID of the timer to remove - * \returns SDL_TRUE if the timer is removed or SDL_FALSE if the timer wasn't - * found. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AddTimer - */ -extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID id); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_timer_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_touch.h b/lib/windows/include/SDL_touch.h deleted file mode 100644 index c12d4a1..0000000 --- a/lib/windows/include/SDL_touch.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_touch.h - * - * Include file for SDL touch event handling. - */ - -#ifndef SDL_touch_h_ -#define SDL_touch_h_ - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -typedef Sint64 SDL_TouchID; -typedef Sint64 SDL_FingerID; - -typedef enum -{ - SDL_TOUCH_DEVICE_INVALID = -1, - SDL_TOUCH_DEVICE_DIRECT, /* touch screen with window-relative coordinates */ - SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE, /* trackpad with absolute device coordinates */ - SDL_TOUCH_DEVICE_INDIRECT_RELATIVE /* trackpad with screen cursor-relative coordinates */ -} SDL_TouchDeviceType; - -typedef struct SDL_Finger -{ - SDL_FingerID id; - float x; - float y; - float pressure; -} SDL_Finger; - -/* Used as the device ID for mouse events simulated with touch input */ -#define SDL_TOUCH_MOUSEID ((Uint32)-1) - -/* Used as the SDL_TouchID for touch events simulated with mouse input */ -#define SDL_MOUSE_TOUCHID ((Sint64)-1) - - -/** - * Get the number of registered touch devices. - * - * On some platforms SDL first sees the touch device if it was actually used. - * Therefore SDL_GetNumTouchDevices() may return 0 although devices are - * available. After using all devices at least once the number will be - * correct. - * - * This was fixed for Android in SDL 2.0.1. - * - * \returns the number of registered touch devices. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTouchDevice - */ -extern DECLSPEC int SDLCALL SDL_GetNumTouchDevices(void); - -/** - * Get the touch ID with the given index. - * - * \param index the touch device index - * \returns the touch ID with the given index on success or 0 if the index is - * invalid; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumTouchDevices - */ -extern DECLSPEC SDL_TouchID SDLCALL SDL_GetTouchDevice(int index); - -/** - * Get the touch device name as reported from the driver or NULL if the index - * is invalid. - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC const char* SDLCALL SDL_GetTouchName(int index); - -/** - * Get the type of the given touch device. - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC SDL_TouchDeviceType SDLCALL SDL_GetTouchDeviceType(SDL_TouchID touchID); - -/** - * Get the number of active fingers for a given touch device. - * - * \param touchID the ID of a touch device - * \returns the number of active fingers for a given touch device on success - * or 0 on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTouchFinger - */ -extern DECLSPEC int SDLCALL SDL_GetNumTouchFingers(SDL_TouchID touchID); - -/** - * Get the finger object for specified touch device ID and finger index. - * - * The returned resource is owned by SDL and should not be deallocated. - * - * \param touchID the ID of the requested touch device - * \param index the index of the requested finger - * \returns a pointer to the SDL_Finger object or NULL if no object at the - * given ID and index could be found. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RecordGesture - */ -extern DECLSPEC SDL_Finger * SDLCALL SDL_GetTouchFinger(SDL_TouchID touchID, int index); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_touch_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_types.h b/lib/windows/include/SDL_types.h deleted file mode 100644 index b5d7192..0000000 --- a/lib/windows/include/SDL_types.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_types.h - * - * \deprecated - */ - -/* DEPRECATED */ -#include "SDL_stdinc.h" diff --git a/lib/windows/include/SDL_version.h b/lib/windows/include/SDL_version.h deleted file mode 100644 index 782a7ff..0000000 --- a/lib/windows/include/SDL_version.h +++ /dev/null @@ -1,204 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_version.h - * - * This header defines the current SDL version. - */ - -#ifndef SDL_version_h_ -#define SDL_version_h_ - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Information about the version of SDL in use. - * - * Represents the library's version as three levels: major revision - * (increments with massive changes, additions, and enhancements), - * minor revision (increments with backwards-compatible changes to the - * major revision), and patchlevel (increments with fixes to the minor - * revision). - * - * \sa SDL_VERSION - * \sa SDL_GetVersion - */ -typedef struct SDL_version -{ - Uint8 major; /**< major version */ - Uint8 minor; /**< minor version */ - Uint8 patch; /**< update version */ -} SDL_version; - -/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL -*/ -#define SDL_MAJOR_VERSION 2 -#define SDL_MINOR_VERSION 28 -#define SDL_PATCHLEVEL 0 - -/** - * Macro to determine SDL version program was compiled against. - * - * This macro fills in a SDL_version structure with the version of the - * library you compiled against. This is determined by what header the - * compiler uses. Note that if you dynamically linked the library, you might - * have a slightly newer or older version at runtime. That version can be - * determined with SDL_GetVersion(), which, unlike SDL_VERSION(), - * is not a macro. - * - * \param x A pointer to a SDL_version struct to initialize. - * - * \sa SDL_version - * \sa SDL_GetVersion - */ -#define SDL_VERSION(x) \ -{ \ - (x)->major = SDL_MAJOR_VERSION; \ - (x)->minor = SDL_MINOR_VERSION; \ - (x)->patch = SDL_PATCHLEVEL; \ -} - -/* TODO: Remove this whole block in SDL 3 */ -#if SDL_MAJOR_VERSION < 3 -/** - * This macro turns the version numbers into a numeric value: - * \verbatim - (1,2,3) -> (1203) - \endverbatim - * - * This assumes that there will never be more than 100 patchlevels. - * - * In versions higher than 2.9.0, the minor version overflows into - * the thousands digit: for example, 2.23.0 is encoded as 4300, - * and 2.255.99 would be encoded as 25799. - * This macro will not be available in SDL 3.x. - */ -#define SDL_VERSIONNUM(X, Y, Z) \ - ((X)*1000 + (Y)*100 + (Z)) - -/** - * This is the version number macro for the current SDL version. - * - * In versions higher than 2.9.0, the minor version overflows into - * the thousands digit: for example, 2.23.0 is encoded as 4300. - * This macro will not be available in SDL 3.x. - * - * Deprecated, use SDL_VERSION_ATLEAST or SDL_VERSION instead. - */ -#define SDL_COMPILEDVERSION \ - SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL) -#endif /* SDL_MAJOR_VERSION < 3 */ - -/** - * This macro will evaluate to true if compiled with SDL at least X.Y.Z. - */ -#define SDL_VERSION_ATLEAST(X, Y, Z) \ - ((SDL_MAJOR_VERSION >= X) && \ - (SDL_MAJOR_VERSION > X || SDL_MINOR_VERSION >= Y) && \ - (SDL_MAJOR_VERSION > X || SDL_MINOR_VERSION > Y || SDL_PATCHLEVEL >= Z)) - -/** - * Get the version of SDL that is linked against your program. - * - * If you are linking to SDL dynamically, then it is possible that the current - * version will be different than the version you compiled against. This - * function returns the current version, while SDL_VERSION() is a macro that - * tells you what version you compiled with. - * - * This function may be called safely at any time, even before SDL_Init(). - * - * \param ver the SDL_version structure that contains the version information - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRevision - */ -extern DECLSPEC void SDLCALL SDL_GetVersion(SDL_version * ver); - -/** - * Get the code revision of SDL that is linked against your program. - * - * This value is the revision of the code you are linked with and may be - * different from the code you are compiling with, which is found in the - * constant SDL_REVISION. - * - * The revision is arbitrary string (a hash value) uniquely identifying the - * exact revision of the SDL library in use, and is only useful in comparing - * against other revisions. It is NOT an incrementing number. - * - * If SDL wasn't built from a git repository with the appropriate tools, this - * will return an empty string. - * - * Prior to SDL 2.0.16, before development moved to GitHub, this returned a - * hash for a Mercurial repository. - * - * You shouldn't use this function for anything but logging it for debugging - * purposes. The string is not intended to be reliable in any way. - * - * \returns an arbitrary string, uniquely identifying the exact revision of - * the SDL library in use. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetVersion - */ -extern DECLSPEC const char *SDLCALL SDL_GetRevision(void); - -/** - * Obsolete function, do not use. - * - * When SDL was hosted in a Mercurial repository, and was built carefully, - * this would return the revision number that the build was created from. This - * number was not reliable for several reasons, but more importantly, SDL is - * now hosted in a git repository, which does not offer numbers at all, only - * hashes. This function only ever returns zero now. Don't use it. - * - * Before SDL 2.0.16, this might have returned an unreliable, but non-zero - * number. - * - * \deprecated Use SDL_GetRevision() instead; if SDL was carefully built, it - * will return a git hash. - * - * \returns zero, always, in modern SDL releases. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRevision - */ -extern SDL_DEPRECATED DECLSPEC int SDLCALL SDL_GetRevisionNumber(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_version_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_video.h b/lib/windows/include/SDL_video.h deleted file mode 100644 index c8b2d7a..0000000 --- a/lib/windows/include/SDL_video.h +++ /dev/null @@ -1,2178 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_video.h - * - * Header file for SDL video functions. - */ - -#ifndef SDL_video_h_ -#define SDL_video_h_ - -#include "SDL_stdinc.h" -#include "SDL_pixels.h" -#include "SDL_rect.h" -#include "SDL_surface.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief The structure that defines a display mode - * - * \sa SDL_GetNumDisplayModes() - * \sa SDL_GetDisplayMode() - * \sa SDL_GetDesktopDisplayMode() - * \sa SDL_GetCurrentDisplayMode() - * \sa SDL_GetClosestDisplayMode() - * \sa SDL_SetWindowDisplayMode() - * \sa SDL_GetWindowDisplayMode() - */ -typedef struct -{ - Uint32 format; /**< pixel format */ - int w; /**< width, in screen coordinates */ - int h; /**< height, in screen coordinates */ - int refresh_rate; /**< refresh rate (or zero for unspecified) */ - void *driverdata; /**< driver-specific data, initialize to 0 */ -} SDL_DisplayMode; - -/** - * \brief The type used to identify a window - * - * \sa SDL_CreateWindow() - * \sa SDL_CreateWindowFrom() - * \sa SDL_DestroyWindow() - * \sa SDL_FlashWindow() - * \sa SDL_GetWindowData() - * \sa SDL_GetWindowFlags() - * \sa SDL_GetWindowGrab() - * \sa SDL_GetWindowKeyboardGrab() - * \sa SDL_GetWindowMouseGrab() - * \sa SDL_GetWindowPosition() - * \sa SDL_GetWindowSize() - * \sa SDL_GetWindowTitle() - * \sa SDL_HideWindow() - * \sa SDL_MaximizeWindow() - * \sa SDL_MinimizeWindow() - * \sa SDL_RaiseWindow() - * \sa SDL_RestoreWindow() - * \sa SDL_SetWindowData() - * \sa SDL_SetWindowFullscreen() - * \sa SDL_SetWindowGrab() - * \sa SDL_SetWindowKeyboardGrab() - * \sa SDL_SetWindowMouseGrab() - * \sa SDL_SetWindowIcon() - * \sa SDL_SetWindowPosition() - * \sa SDL_SetWindowSize() - * \sa SDL_SetWindowBordered() - * \sa SDL_SetWindowResizable() - * \sa SDL_SetWindowTitle() - * \sa SDL_ShowWindow() - */ -typedef struct SDL_Window SDL_Window; - -/** - * \brief The flags on a window - * - * \sa SDL_GetWindowFlags() - */ -typedef enum -{ - SDL_WINDOW_FULLSCREEN = 0x00000001, /**< fullscreen window */ - SDL_WINDOW_OPENGL = 0x00000002, /**< window usable with OpenGL context */ - SDL_WINDOW_SHOWN = 0x00000004, /**< window is visible */ - SDL_WINDOW_HIDDEN = 0x00000008, /**< window is not visible */ - SDL_WINDOW_BORDERLESS = 0x00000010, /**< no window decoration */ - SDL_WINDOW_RESIZABLE = 0x00000020, /**< window can be resized */ - SDL_WINDOW_MINIMIZED = 0x00000040, /**< window is minimized */ - SDL_WINDOW_MAXIMIZED = 0x00000080, /**< window is maximized */ - SDL_WINDOW_MOUSE_GRABBED = 0x00000100, /**< window has grabbed mouse input */ - SDL_WINDOW_INPUT_FOCUS = 0x00000200, /**< window has input focus */ - SDL_WINDOW_MOUSE_FOCUS = 0x00000400, /**< window has mouse focus */ - SDL_WINDOW_FULLSCREEN_DESKTOP = ( SDL_WINDOW_FULLSCREEN | 0x00001000 ), - SDL_WINDOW_FOREIGN = 0x00000800, /**< window not created by SDL */ - SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /**< window should be created in high-DPI mode if supported. - On macOS NSHighResolutionCapable must be set true in the - application's Info.plist for this to have any effect. */ - SDL_WINDOW_MOUSE_CAPTURE = 0x00004000, /**< window has mouse captured (unrelated to MOUSE_GRABBED) */ - SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000, /**< window should always be above others */ - SDL_WINDOW_SKIP_TASKBAR = 0x00010000, /**< window should not be added to the taskbar */ - SDL_WINDOW_UTILITY = 0x00020000, /**< window should be treated as a utility window */ - SDL_WINDOW_TOOLTIP = 0x00040000, /**< window should be treated as a tooltip */ - SDL_WINDOW_POPUP_MENU = 0x00080000, /**< window should be treated as a popup menu */ - SDL_WINDOW_KEYBOARD_GRABBED = 0x00100000, /**< window has grabbed keyboard input */ - SDL_WINDOW_VULKAN = 0x10000000, /**< window usable for Vulkan surface */ - SDL_WINDOW_METAL = 0x20000000, /**< window usable for Metal view */ - - SDL_WINDOW_INPUT_GRABBED = SDL_WINDOW_MOUSE_GRABBED /**< equivalent to SDL_WINDOW_MOUSE_GRABBED for compatibility */ -} SDL_WindowFlags; - -/** - * \brief Used to indicate that you don't care what the window position is. - */ -#define SDL_WINDOWPOS_UNDEFINED_MASK 0x1FFF0000u -#define SDL_WINDOWPOS_UNDEFINED_DISPLAY(X) (SDL_WINDOWPOS_UNDEFINED_MASK|(X)) -#define SDL_WINDOWPOS_UNDEFINED SDL_WINDOWPOS_UNDEFINED_DISPLAY(0) -#define SDL_WINDOWPOS_ISUNDEFINED(X) \ - (((X)&0xFFFF0000) == SDL_WINDOWPOS_UNDEFINED_MASK) - -/** - * \brief Used to indicate that the window position should be centered. - */ -#define SDL_WINDOWPOS_CENTERED_MASK 0x2FFF0000u -#define SDL_WINDOWPOS_CENTERED_DISPLAY(X) (SDL_WINDOWPOS_CENTERED_MASK|(X)) -#define SDL_WINDOWPOS_CENTERED SDL_WINDOWPOS_CENTERED_DISPLAY(0) -#define SDL_WINDOWPOS_ISCENTERED(X) \ - (((X)&0xFFFF0000) == SDL_WINDOWPOS_CENTERED_MASK) - -/** - * \brief Event subtype for window events - */ -typedef enum -{ - SDL_WINDOWEVENT_NONE, /**< Never used */ - SDL_WINDOWEVENT_SHOWN, /**< Window has been shown */ - SDL_WINDOWEVENT_HIDDEN, /**< Window has been hidden */ - SDL_WINDOWEVENT_EXPOSED, /**< Window has been exposed and should be - redrawn */ - SDL_WINDOWEVENT_MOVED, /**< Window has been moved to data1, data2 - */ - SDL_WINDOWEVENT_RESIZED, /**< Window has been resized to data1xdata2 */ - SDL_WINDOWEVENT_SIZE_CHANGED, /**< The window size has changed, either as - a result of an API call or through the - system or user changing the window size. */ - SDL_WINDOWEVENT_MINIMIZED, /**< Window has been minimized */ - SDL_WINDOWEVENT_MAXIMIZED, /**< Window has been maximized */ - SDL_WINDOWEVENT_RESTORED, /**< Window has been restored to normal size - and position */ - SDL_WINDOWEVENT_ENTER, /**< Window has gained mouse focus */ - SDL_WINDOWEVENT_LEAVE, /**< Window has lost mouse focus */ - SDL_WINDOWEVENT_FOCUS_GAINED, /**< Window has gained keyboard focus */ - SDL_WINDOWEVENT_FOCUS_LOST, /**< Window has lost keyboard focus */ - SDL_WINDOWEVENT_CLOSE, /**< The window manager requests that the window be closed */ - SDL_WINDOWEVENT_TAKE_FOCUS, /**< Window is being offered a focus (should SetWindowInputFocus() on itself or a subwindow, or ignore) */ - SDL_WINDOWEVENT_HIT_TEST, /**< Window had a hit test that wasn't SDL_HITTEST_NORMAL. */ - SDL_WINDOWEVENT_ICCPROF_CHANGED,/**< The ICC profile of the window's display has changed. */ - SDL_WINDOWEVENT_DISPLAY_CHANGED /**< Window has been moved to display data1. */ -} SDL_WindowEventID; - -/** - * \brief Event subtype for display events - */ -typedef enum -{ - SDL_DISPLAYEVENT_NONE, /**< Never used */ - SDL_DISPLAYEVENT_ORIENTATION, /**< Display orientation has changed to data1 */ - SDL_DISPLAYEVENT_CONNECTED, /**< Display has been added to the system */ - SDL_DISPLAYEVENT_DISCONNECTED, /**< Display has been removed from the system */ - SDL_DISPLAYEVENT_MOVED /**< Display has changed position */ -} SDL_DisplayEventID; - -/** - * \brief Display orientation - */ -typedef enum -{ - SDL_ORIENTATION_UNKNOWN, /**< The display orientation can't be determined */ - SDL_ORIENTATION_LANDSCAPE, /**< The display is in landscape mode, with the right side up, relative to portrait mode */ - SDL_ORIENTATION_LANDSCAPE_FLIPPED, /**< The display is in landscape mode, with the left side up, relative to portrait mode */ - SDL_ORIENTATION_PORTRAIT, /**< The display is in portrait mode */ - SDL_ORIENTATION_PORTRAIT_FLIPPED /**< The display is in portrait mode, upside down */ -} SDL_DisplayOrientation; - -/** - * \brief Window flash operation - */ -typedef enum -{ - SDL_FLASH_CANCEL, /**< Cancel any window flash state */ - SDL_FLASH_BRIEFLY, /**< Flash the window briefly to get attention */ - SDL_FLASH_UNTIL_FOCUSED /**< Flash the window until it gets focus */ -} SDL_FlashOperation; - -/** - * \brief An opaque handle to an OpenGL context. - */ -typedef void *SDL_GLContext; - -/** - * \brief OpenGL configuration attributes - */ -typedef enum -{ - SDL_GL_RED_SIZE, - SDL_GL_GREEN_SIZE, - SDL_GL_BLUE_SIZE, - SDL_GL_ALPHA_SIZE, - SDL_GL_BUFFER_SIZE, - SDL_GL_DOUBLEBUFFER, - SDL_GL_DEPTH_SIZE, - SDL_GL_STENCIL_SIZE, - SDL_GL_ACCUM_RED_SIZE, - SDL_GL_ACCUM_GREEN_SIZE, - SDL_GL_ACCUM_BLUE_SIZE, - SDL_GL_ACCUM_ALPHA_SIZE, - SDL_GL_STEREO, - SDL_GL_MULTISAMPLEBUFFERS, - SDL_GL_MULTISAMPLESAMPLES, - SDL_GL_ACCELERATED_VISUAL, - SDL_GL_RETAINED_BACKING, - SDL_GL_CONTEXT_MAJOR_VERSION, - SDL_GL_CONTEXT_MINOR_VERSION, - SDL_GL_CONTEXT_EGL, - SDL_GL_CONTEXT_FLAGS, - SDL_GL_CONTEXT_PROFILE_MASK, - SDL_GL_SHARE_WITH_CURRENT_CONTEXT, - SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, - SDL_GL_CONTEXT_RELEASE_BEHAVIOR, - SDL_GL_CONTEXT_RESET_NOTIFICATION, - SDL_GL_CONTEXT_NO_ERROR, - SDL_GL_FLOATBUFFERS -} SDL_GLattr; - -typedef enum -{ - SDL_GL_CONTEXT_PROFILE_CORE = 0x0001, - SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002, - SDL_GL_CONTEXT_PROFILE_ES = 0x0004 /**< GLX_CONTEXT_ES2_PROFILE_BIT_EXT */ -} SDL_GLprofile; - -typedef enum -{ - SDL_GL_CONTEXT_DEBUG_FLAG = 0x0001, - SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002, - SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004, - SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008 -} SDL_GLcontextFlag; - -typedef enum -{ - SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0x0000, - SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x0001 -} SDL_GLcontextReleaseFlag; - -typedef enum -{ - SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = 0x0000, - SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = 0x0001 -} SDL_GLContextResetNotification; - -/* Function prototypes */ - -/** - * Get the number of video drivers compiled into SDL. - * - * \returns a number >= 1 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetVideoDriver - */ -extern DECLSPEC int SDLCALL SDL_GetNumVideoDrivers(void); - -/** - * Get the name of a built in video driver. - * - * The video drivers are presented in the order in which they are normally - * checked during initialization. - * - * \param index the index of a video driver - * \returns the name of the video driver with the given **index**. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumVideoDrivers - */ -extern DECLSPEC const char *SDLCALL SDL_GetVideoDriver(int index); - -/** - * Initialize the video subsystem, optionally specifying a video driver. - * - * This function initializes the video subsystem, setting up a connection to - * the window manager, etc, and determines the available display modes and - * pixel formats, but does not initialize a window or graphics mode. - * - * If you use this function and you haven't used the SDL_INIT_VIDEO flag with - * either SDL_Init() or SDL_InitSubSystem(), you should call SDL_VideoQuit() - * before calling SDL_Quit(). - * - * It is safe to call this function multiple times. SDL_VideoInit() will call - * SDL_VideoQuit() itself if the video subsystem has already been initialized. - * - * You can use SDL_GetNumVideoDrivers() and SDL_GetVideoDriver() to find a - * specific `driver_name`. - * - * \param driver_name the name of a video driver to initialize, or NULL for - * the default driver - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumVideoDrivers - * \sa SDL_GetVideoDriver - * \sa SDL_InitSubSystem - * \sa SDL_VideoQuit - */ -extern DECLSPEC int SDLCALL SDL_VideoInit(const char *driver_name); - -/** - * Shut down the video subsystem, if initialized with SDL_VideoInit(). - * - * This function closes all windows, and restores the original video mode. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_VideoInit - */ -extern DECLSPEC void SDLCALL SDL_VideoQuit(void); - -/** - * Get the name of the currently initialized video driver. - * - * \returns the name of the current video driver or NULL if no driver has been - * initialized. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumVideoDrivers - * \sa SDL_GetVideoDriver - */ -extern DECLSPEC const char *SDLCALL SDL_GetCurrentVideoDriver(void); - -/** - * Get the number of available video displays. - * - * \returns a number >= 1 or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetDisplayBounds - */ -extern DECLSPEC int SDLCALL SDL_GetNumVideoDisplays(void); - -/** - * Get the name of a display in UTF-8 encoding. - * - * \param displayIndex the index of display from which the name should be - * queried - * \returns the name of a display or NULL for an invalid display index or - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC const char * SDLCALL SDL_GetDisplayName(int displayIndex); - -/** - * Get the desktop area represented by a display. - * - * The primary display (`displayIndex` zero) is always located at 0,0. - * - * \param displayIndex the index of the display to query - * \param rect the SDL_Rect structure filled in with the display bounds - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetDisplayBounds(int displayIndex, SDL_Rect * rect); - -/** - * Get the usable desktop area represented by a display. - * - * The primary display (`displayIndex` zero) is always located at 0,0. - * - * This is the same area as SDL_GetDisplayBounds() reports, but with portions - * reserved by the system removed. For example, on Apple's macOS, this - * subtracts the area occupied by the menu bar and dock. - * - * Setting a window to be fullscreen generally bypasses these unusable areas, - * so these are good guidelines for the maximum space available to a - * non-fullscreen window. - * - * The parameter `rect` is ignored if it is NULL. - * - * This function also returns -1 if the parameter `displayIndex` is out of - * range. - * - * \param displayIndex the index of the display to query the usable bounds - * from - * \param rect the SDL_Rect structure filled in with the display bounds - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_GetDisplayBounds - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetDisplayUsableBounds(int displayIndex, SDL_Rect * rect); - -/** - * Get the dots/pixels-per-inch for a display. - * - * Diagonal, horizontal and vertical DPI can all be optionally returned if the - * appropriate parameter is non-NULL. - * - * A failure of this function usually means that either no DPI information is - * available or the `displayIndex` is out of range. - * - * **WARNING**: This reports the DPI that the hardware reports, and it is not - * always reliable! It is almost always better to use SDL_GetWindowSize() to - * find the window size, which might be in logical points instead of pixels, - * and then SDL_GL_GetDrawableSize(), SDL_Vulkan_GetDrawableSize(), - * SDL_Metal_GetDrawableSize(), or SDL_GetRendererOutputSize(), and compare - * the two values to get an actual scaling value between the two. We will be - * rethinking how high-dpi details should be managed in SDL3 to make things - * more consistent, reliable, and clear. - * - * \param displayIndex the index of the display from which DPI information - * should be queried - * \param ddpi a pointer filled in with the diagonal DPI of the display; may - * be NULL - * \param hdpi a pointer filled in with the horizontal DPI of the display; may - * be NULL - * \param vdpi a pointer filled in with the vertical DPI of the display; may - * be NULL - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetDisplayDPI(int displayIndex, float * ddpi, float * hdpi, float * vdpi); - -/** - * Get the orientation of a display. - * - * \param displayIndex the index of the display to query - * \returns The SDL_DisplayOrientation enum value of the display, or - * `SDL_ORIENTATION_UNKNOWN` if it isn't available. - * - * \since This function is available since SDL 2.0.9. - * - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC SDL_DisplayOrientation SDLCALL SDL_GetDisplayOrientation(int displayIndex); - -/** - * Get the number of available display modes. - * - * The `displayIndex` needs to be in the range from 0 to - * SDL_GetNumVideoDisplays() - 1. - * - * \param displayIndex the index of the display to query - * \returns a number >= 1 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetDisplayMode - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetNumDisplayModes(int displayIndex); - -/** - * Get information about a specific display mode. - * - * The display modes are sorted in this priority: - * - * - width -> largest to smallest - * - height -> largest to smallest - * - bits per pixel -> more colors to fewer colors - * - packed pixel layout -> largest to smallest - * - refresh rate -> highest to lowest - * - * \param displayIndex the index of the display to query - * \param modeIndex the index of the display mode to query - * \param mode an SDL_DisplayMode structure filled in with the mode at - * `modeIndex` - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumDisplayModes - */ -extern DECLSPEC int SDLCALL SDL_GetDisplayMode(int displayIndex, int modeIndex, - SDL_DisplayMode * mode); - -/** - * Get information about the desktop's display mode. - * - * There's a difference between this function and SDL_GetCurrentDisplayMode() - * when SDL runs fullscreen and has changed the resolution. In that case this - * function will return the previous native display mode, and not the current - * display mode. - * - * \param displayIndex the index of the display to query - * \param mode an SDL_DisplayMode structure filled in with the current display - * mode - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetCurrentDisplayMode - * \sa SDL_GetDisplayMode - * \sa SDL_SetWindowDisplayMode - */ -extern DECLSPEC int SDLCALL SDL_GetDesktopDisplayMode(int displayIndex, SDL_DisplayMode * mode); - -/** - * Get information about the current display mode. - * - * There's a difference between this function and SDL_GetDesktopDisplayMode() - * when SDL runs fullscreen and has changed the resolution. In that case this - * function will return the current display mode, and not the previous native - * display mode. - * - * \param displayIndex the index of the display to query - * \param mode an SDL_DisplayMode structure filled in with the current display - * mode - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetDesktopDisplayMode - * \sa SDL_GetDisplayMode - * \sa SDL_GetNumVideoDisplays - * \sa SDL_SetWindowDisplayMode - */ -extern DECLSPEC int SDLCALL SDL_GetCurrentDisplayMode(int displayIndex, SDL_DisplayMode * mode); - - -/** - * Get the closest match to the requested display mode. - * - * The available display modes are scanned and `closest` is filled in with the - * closest mode matching the requested mode and returned. The mode format and - * refresh rate default to the desktop mode if they are set to 0. The modes - * are scanned with size being first priority, format being second priority, - * and finally checking the refresh rate. If all the available modes are too - * small, then NULL is returned. - * - * \param displayIndex the index of the display to query - * \param mode an SDL_DisplayMode structure containing the desired display - * mode - * \param closest an SDL_DisplayMode structure filled in with the closest - * match of the available display modes - * \returns the passed in value `closest` or NULL if no matching video mode - * was available; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetDisplayMode - * \sa SDL_GetNumDisplayModes - */ -extern DECLSPEC SDL_DisplayMode * SDLCALL SDL_GetClosestDisplayMode(int displayIndex, const SDL_DisplayMode * mode, SDL_DisplayMode * closest); - -/** - * Get the index of the display containing a point - * - * \param point the point to query - * \returns the index of the display containing the point or a negative error - * code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GetDisplayBounds - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetPointDisplayIndex(const SDL_Point * point); - -/** - * Get the index of the display primarily containing a rect - * - * \param rect the rect to query - * \returns the index of the display entirely containing the rect or closest - * to the center of the rect on success or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GetDisplayBounds - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetRectDisplayIndex(const SDL_Rect * rect); - -/** - * Get the index of the display associated with a window. - * - * \param window the window to query - * \returns the index of the display containing the center of the window on - * success or a negative error code on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetDisplayBounds - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetWindowDisplayIndex(SDL_Window * window); - -/** - * Set the display mode to use when a window is visible at fullscreen. - * - * This only affects the display mode used when the window is fullscreen. To - * change the window size when the window is not fullscreen, use - * SDL_SetWindowSize(). - * - * \param window the window to affect - * \param mode the SDL_DisplayMode structure representing the mode to use, or - * NULL to use the window's dimensions and the desktop's format - * and refresh rate - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowDisplayMode - * \sa SDL_SetWindowFullscreen - */ -extern DECLSPEC int SDLCALL SDL_SetWindowDisplayMode(SDL_Window * window, - const SDL_DisplayMode * mode); - -/** - * Query the display mode to use when a window is visible at fullscreen. - * - * \param window the window to query - * \param mode an SDL_DisplayMode structure filled in with the fullscreen - * display mode - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowDisplayMode - * \sa SDL_SetWindowFullscreen - */ -extern DECLSPEC int SDLCALL SDL_GetWindowDisplayMode(SDL_Window * window, - SDL_DisplayMode * mode); - -/** - * Get the raw ICC profile data for the screen the window is currently on. - * - * Data returned should be freed with SDL_free. - * - * \param window the window to query - * \param size the size of the ICC profile - * \returns the raw ICC profile data on success or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC void* SDLCALL SDL_GetWindowICCProfile(SDL_Window * window, size_t* size); - -/** - * Get the pixel format associated with the window. - * - * \param window the window to query - * \returns the pixel format of the window on success or - * SDL_PIXELFORMAT_UNKNOWN on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetWindowPixelFormat(SDL_Window * window); - -/** - * Create a window with the specified position, dimensions, and flags. - * - * `flags` may be any of the following OR'd together: - * - * - `SDL_WINDOW_FULLSCREEN`: fullscreen window - * - `SDL_WINDOW_FULLSCREEN_DESKTOP`: fullscreen window at desktop resolution - * - `SDL_WINDOW_OPENGL`: window usable with an OpenGL context - * - `SDL_WINDOW_VULKAN`: window usable with a Vulkan instance - * - `SDL_WINDOW_METAL`: window usable with a Metal instance - * - `SDL_WINDOW_HIDDEN`: window is not visible - * - `SDL_WINDOW_BORDERLESS`: no window decoration - * - `SDL_WINDOW_RESIZABLE`: window can be resized - * - `SDL_WINDOW_MINIMIZED`: window is minimized - * - `SDL_WINDOW_MAXIMIZED`: window is maximized - * - `SDL_WINDOW_INPUT_GRABBED`: window has grabbed input focus - * - `SDL_WINDOW_ALLOW_HIGHDPI`: window should be created in high-DPI mode if - * supported (>= SDL 2.0.1) - * - * `SDL_WINDOW_SHOWN` is ignored by SDL_CreateWindow(). The SDL_Window is - * implicitly shown if SDL_WINDOW_HIDDEN is not set. `SDL_WINDOW_SHOWN` may be - * queried later using SDL_GetWindowFlags(). - * - * On Apple's macOS, you **must** set the NSHighResolutionCapable Info.plist - * property to YES, otherwise you will not receive a High-DPI OpenGL canvas. - * - * If the window is created with the `SDL_WINDOW_ALLOW_HIGHDPI` flag, its size - * in pixels may differ from its size in screen coordinates on platforms with - * high-DPI support (e.g. iOS and macOS). Use SDL_GetWindowSize() to query the - * client area's size in screen coordinates, and SDL_GL_GetDrawableSize() or - * SDL_GetRendererOutputSize() to query the drawable size in pixels. Note that - * when this flag is set, the drawable size can vary after the window is - * created and should be queried after major window events such as when the - * window is resized or moved between displays. - * - * If the window is set fullscreen, the width and height parameters `w` and - * `h` will not be used. However, invalid size parameters (e.g. too large) may - * still fail. Window size is actually limited to 16384 x 16384 for all - * platforms at window creation. - * - * If the window is created with any of the SDL_WINDOW_OPENGL or - * SDL_WINDOW_VULKAN flags, then the corresponding LoadLibrary function - * (SDL_GL_LoadLibrary or SDL_Vulkan_LoadLibrary) is called and the - * corresponding UnloadLibrary function is called by SDL_DestroyWindow(). - * - * If SDL_WINDOW_VULKAN is specified and there isn't a working Vulkan driver, - * SDL_CreateWindow() will fail because SDL_Vulkan_LoadLibrary() will fail. - * - * If SDL_WINDOW_METAL is specified on an OS that does not support Metal, - * SDL_CreateWindow() will fail. - * - * On non-Apple devices, SDL requires you to either not link to the Vulkan - * loader or link to a dynamic library version. This limitation may be removed - * in a future version of SDL. - * - * \param title the title of the window, in UTF-8 encoding - * \param x the x position of the window, `SDL_WINDOWPOS_CENTERED`, or - * `SDL_WINDOWPOS_UNDEFINED` - * \param y the y position of the window, `SDL_WINDOWPOS_CENTERED`, or - * `SDL_WINDOWPOS_UNDEFINED` - * \param w the width of the window, in screen coordinates - * \param h the height of the window, in screen coordinates - * \param flags 0, or one or more SDL_WindowFlags OR'd together - * \returns the window that was created or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateWindowFrom - * \sa SDL_DestroyWindow - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindow(const char *title, - int x, int y, int w, - int h, Uint32 flags); - -/** - * Create an SDL window from an existing native window. - * - * In some cases (e.g. OpenGL) and on some platforms (e.g. Microsoft Windows) - * the hint `SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT` needs to be configured - * before using SDL_CreateWindowFrom(). - * - * \param data a pointer to driver-dependent window creation data, typically - * your native window cast to a void* - * \returns the window that was created or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateWindow - * \sa SDL_DestroyWindow - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindowFrom(const void *data); - -/** - * Get the numeric ID of a window. - * - * The numeric ID is what SDL_WindowEvent references, and is necessary to map - * these events to specific SDL_Window objects. - * - * \param window the window to query - * \returns the ID of the window on success or 0 on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowFromID - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetWindowID(SDL_Window * window); - -/** - * Get a window from a stored ID. - * - * The numeric ID is what SDL_WindowEvent references, and is necessary to map - * these events to specific SDL_Window objects. - * - * \param id the ID of the window - * \returns the window associated with `id` or NULL if it doesn't exist; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowID - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_GetWindowFromID(Uint32 id); - -/** - * Get the window flags. - * - * \param window the window to query - * \returns a mask of the SDL_WindowFlags associated with `window` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateWindow - * \sa SDL_HideWindow - * \sa SDL_MaximizeWindow - * \sa SDL_MinimizeWindow - * \sa SDL_SetWindowFullscreen - * \sa SDL_SetWindowGrab - * \sa SDL_ShowWindow - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetWindowFlags(SDL_Window * window); - -/** - * Set the title of a window. - * - * This string is expected to be in UTF-8 encoding. - * - * \param window the window to change - * \param title the desired window title in UTF-8 format - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowTitle - */ -extern DECLSPEC void SDLCALL SDL_SetWindowTitle(SDL_Window * window, - const char *title); - -/** - * Get the title of a window. - * - * \param window the window to query - * \returns the title of the window in UTF-8 format or "" if there is no - * title. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowTitle - */ -extern DECLSPEC const char *SDLCALL SDL_GetWindowTitle(SDL_Window * window); - -/** - * Set the icon for a window. - * - * \param window the window to change - * \param icon an SDL_Surface structure containing the icon for the window - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_SetWindowIcon(SDL_Window * window, - SDL_Surface * icon); - -/** - * Associate an arbitrary named pointer with a window. - * - * `name` is case-sensitive. - * - * \param window the window to associate with the pointer - * \param name the name of the pointer - * \param userdata the associated pointer - * \returns the previous value associated with `name`. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowData - */ -extern DECLSPEC void* SDLCALL SDL_SetWindowData(SDL_Window * window, - const char *name, - void *userdata); - -/** - * Retrieve the data pointer associated with a window. - * - * \param window the window to query - * \param name the name of the pointer - * \returns the value associated with `name`. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowData - */ -extern DECLSPEC void *SDLCALL SDL_GetWindowData(SDL_Window * window, - const char *name); - -/** - * Set the position of a window. - * - * The window coordinate origin is the upper left of the display. - * - * \param window the window to reposition - * \param x the x coordinate of the window in screen coordinates, or - * `SDL_WINDOWPOS_CENTERED` or `SDL_WINDOWPOS_UNDEFINED` - * \param y the y coordinate of the window in screen coordinates, or - * `SDL_WINDOWPOS_CENTERED` or `SDL_WINDOWPOS_UNDEFINED` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowPosition - */ -extern DECLSPEC void SDLCALL SDL_SetWindowPosition(SDL_Window * window, - int x, int y); - -/** - * Get the position of a window. - * - * If you do not need the value for one of the positions a NULL may be passed - * in the `x` or `y` parameter. - * - * \param window the window to query - * \param x a pointer filled in with the x position of the window, in screen - * coordinates, may be NULL - * \param y a pointer filled in with the y position of the window, in screen - * coordinates, may be NULL - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowPosition - */ -extern DECLSPEC void SDLCALL SDL_GetWindowPosition(SDL_Window * window, - int *x, int *y); - -/** - * Set the size of a window's client area. - * - * The window size in screen coordinates may differ from the size in pixels, - * if the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a platform - * with high-dpi support (e.g. iOS or macOS). Use SDL_GL_GetDrawableSize() or - * SDL_GetRendererOutputSize() to get the real client area size in pixels. - * - * Fullscreen windows automatically match the size of the display mode, and - * you should use SDL_SetWindowDisplayMode() to change their size. - * - * \param window the window to change - * \param w the width of the window in pixels, in screen coordinates, must be - * > 0 - * \param h the height of the window in pixels, in screen coordinates, must be - * > 0 - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowSize - * \sa SDL_SetWindowDisplayMode - */ -extern DECLSPEC void SDLCALL SDL_SetWindowSize(SDL_Window * window, int w, - int h); - -/** - * Get the size of a window's client area. - * - * NULL can safely be passed as the `w` or `h` parameter if the width or - * height value is not desired. - * - * The window size in screen coordinates may differ from the size in pixels, - * if the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a platform - * with high-dpi support (e.g. iOS or macOS). Use SDL_GL_GetDrawableSize(), - * SDL_Vulkan_GetDrawableSize(), or SDL_GetRendererOutputSize() to get the - * real client area size in pixels. - * - * \param window the window to query the width and height from - * \param w a pointer filled in with the width of the window, in screen - * coordinates, may be NULL - * \param h a pointer filled in with the height of the window, in screen - * coordinates, may be NULL - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_GetDrawableSize - * \sa SDL_Vulkan_GetDrawableSize - * \sa SDL_SetWindowSize - */ -extern DECLSPEC void SDLCALL SDL_GetWindowSize(SDL_Window * window, int *w, - int *h); - -/** - * Get the size of a window's borders (decorations) around the client area. - * - * Note: If this function fails (returns -1), the size values will be - * initialized to 0, 0, 0, 0 (if a non-NULL pointer is provided), as if the - * window in question was borderless. - * - * Note: This function may fail on systems where the window has not yet been - * decorated by the display server (for example, immediately after calling - * SDL_CreateWindow). It is recommended that you wait at least until the - * window has been presented and composited, so that the window system has a - * chance to decorate the window and provide the border dimensions to SDL. - * - * This function also returns -1 if getting the information is not supported. - * - * \param window the window to query the size values of the border - * (decorations) from - * \param top pointer to variable for storing the size of the top border; NULL - * is permitted - * \param left pointer to variable for storing the size of the left border; - * NULL is permitted - * \param bottom pointer to variable for storing the size of the bottom - * border; NULL is permitted - * \param right pointer to variable for storing the size of the right border; - * NULL is permitted - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_GetWindowSize - */ -extern DECLSPEC int SDLCALL SDL_GetWindowBordersSize(SDL_Window * window, - int *top, int *left, - int *bottom, int *right); - -/** - * Get the size of a window in pixels. - * - * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI - * drawable, i.e. the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a - * platform with high-DPI support (Apple calls this "Retina"), and not - * disabled by the `SDL_HINT_VIDEO_HIGHDPI_DISABLED` hint. - * - * \param window the window from which the drawable size should be queried - * \param w a pointer to variable for storing the width in pixels, may be NULL - * \param h a pointer to variable for storing the height in pixels, may be - * NULL - * - * \since This function is available since SDL 2.26.0. - * - * \sa SDL_CreateWindow - * \sa SDL_GetWindowSize - */ -extern DECLSPEC void SDLCALL SDL_GetWindowSizeInPixels(SDL_Window * window, - int *w, int *h); - -/** - * Set the minimum size of a window's client area. - * - * \param window the window to change - * \param min_w the minimum width of the window in pixels - * \param min_h the minimum height of the window in pixels - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowMinimumSize - * \sa SDL_SetWindowMaximumSize - */ -extern DECLSPEC void SDLCALL SDL_SetWindowMinimumSize(SDL_Window * window, - int min_w, int min_h); - -/** - * Get the minimum size of a window's client area. - * - * \param window the window to query - * \param w a pointer filled in with the minimum width of the window, may be - * NULL - * \param h a pointer filled in with the minimum height of the window, may be - * NULL - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowMaximumSize - * \sa SDL_SetWindowMinimumSize - */ -extern DECLSPEC void SDLCALL SDL_GetWindowMinimumSize(SDL_Window * window, - int *w, int *h); - -/** - * Set the maximum size of a window's client area. - * - * \param window the window to change - * \param max_w the maximum width of the window in pixels - * \param max_h the maximum height of the window in pixels - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowMaximumSize - * \sa SDL_SetWindowMinimumSize - */ -extern DECLSPEC void SDLCALL SDL_SetWindowMaximumSize(SDL_Window * window, - int max_w, int max_h); - -/** - * Get the maximum size of a window's client area. - * - * \param window the window to query - * \param w a pointer filled in with the maximum width of the window, may be - * NULL - * \param h a pointer filled in with the maximum height of the window, may be - * NULL - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowMinimumSize - * \sa SDL_SetWindowMaximumSize - */ -extern DECLSPEC void SDLCALL SDL_GetWindowMaximumSize(SDL_Window * window, - int *w, int *h); - -/** - * Set the border state of a window. - * - * This will add or remove the window's `SDL_WINDOW_BORDERLESS` flag and add - * or remove the border from the actual window. This is a no-op if the - * window's border already matches the requested state. - * - * You can't change the border state of a fullscreen window. - * - * \param window the window of which to change the border state - * \param bordered SDL_FALSE to remove border, SDL_TRUE to add border - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowFlags - */ -extern DECLSPEC void SDLCALL SDL_SetWindowBordered(SDL_Window * window, - SDL_bool bordered); - -/** - * Set the user-resizable state of a window. - * - * This will add or remove the window's `SDL_WINDOW_RESIZABLE` flag and - * allow/disallow user resizing of the window. This is a no-op if the window's - * resizable state already matches the requested state. - * - * You can't change the resizable state of a fullscreen window. - * - * \param window the window of which to change the resizable state - * \param resizable SDL_TRUE to allow resizing, SDL_FALSE to disallow - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_GetWindowFlags - */ -extern DECLSPEC void SDLCALL SDL_SetWindowResizable(SDL_Window * window, - SDL_bool resizable); - -/** - * Set the window to always be above the others. - * - * This will add or remove the window's `SDL_WINDOW_ALWAYS_ON_TOP` flag. This - * will bring the window to the front and keep the window above the rest. - * - * \param window The window of which to change the always on top state - * \param on_top SDL_TRUE to set the window always on top, SDL_FALSE to - * disable - * - * \since This function is available since SDL 2.0.16. - * - * \sa SDL_GetWindowFlags - */ -extern DECLSPEC void SDLCALL SDL_SetWindowAlwaysOnTop(SDL_Window * window, - SDL_bool on_top); - -/** - * Show a window. - * - * \param window the window to show - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HideWindow - * \sa SDL_RaiseWindow - */ -extern DECLSPEC void SDLCALL SDL_ShowWindow(SDL_Window * window); - -/** - * Hide a window. - * - * \param window the window to hide - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ShowWindow - */ -extern DECLSPEC void SDLCALL SDL_HideWindow(SDL_Window * window); - -/** - * Raise a window above other windows and set the input focus. - * - * \param window the window to raise - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_RaiseWindow(SDL_Window * window); - -/** - * Make a window as large as possible. - * - * \param window the window to maximize - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_MinimizeWindow - * \sa SDL_RestoreWindow - */ -extern DECLSPEC void SDLCALL SDL_MaximizeWindow(SDL_Window * window); - -/** - * Minimize a window to an iconic representation. - * - * \param window the window to minimize - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_MaximizeWindow - * \sa SDL_RestoreWindow - */ -extern DECLSPEC void SDLCALL SDL_MinimizeWindow(SDL_Window * window); - -/** - * Restore the size and position of a minimized or maximized window. - * - * \param window the window to restore - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_MaximizeWindow - * \sa SDL_MinimizeWindow - */ -extern DECLSPEC void SDLCALL SDL_RestoreWindow(SDL_Window * window); - -/** - * Set a window's fullscreen state. - * - * `flags` may be `SDL_WINDOW_FULLSCREEN`, for "real" fullscreen with a - * videomode change; `SDL_WINDOW_FULLSCREEN_DESKTOP` for "fake" fullscreen - * that takes the size of the desktop; and 0 for windowed mode. - * - * \param window the window to change - * \param flags `SDL_WINDOW_FULLSCREEN`, `SDL_WINDOW_FULLSCREEN_DESKTOP` or 0 - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowDisplayMode - * \sa SDL_SetWindowDisplayMode - */ -extern DECLSPEC int SDLCALL SDL_SetWindowFullscreen(SDL_Window * window, - Uint32 flags); - -/** - * Return whether the window has a surface associated with it. - * - * \returns SDL_TRUE if there is a surface associated with the window, or SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.28.0. - * - * \sa SDL_GetWindowSurface - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasWindowSurface(SDL_Window *window); - -/** - * Get the SDL surface associated with the window. - * - * A new surface will be created with the optimal format for the window, if - * necessary. This surface will be freed when the window is destroyed. Do not - * free this surface. - * - * This surface will be invalidated if the window is resized. After resizing a - * window this function must be called again to return a valid surface. - * - * You may not combine this with 3D or the rendering API on this window. - * - * This function is affected by `SDL_HINT_FRAMEBUFFER_ACCELERATION`. - * - * \param window the window to query - * \returns the surface associated with the window, or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DestroyWindowSurface - * \sa SDL_HasWindowSurface - * \sa SDL_UpdateWindowSurface - * \sa SDL_UpdateWindowSurfaceRects - */ -extern DECLSPEC SDL_Surface * SDLCALL SDL_GetWindowSurface(SDL_Window * window); - -/** - * Copy the window surface to the screen. - * - * This is the function you use to reflect any changes to the surface on the - * screen. - * - * This function is equivalent to the SDL 1.2 API SDL_Flip(). - * - * \param window the window to update - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowSurface - * \sa SDL_UpdateWindowSurfaceRects - */ -extern DECLSPEC int SDLCALL SDL_UpdateWindowSurface(SDL_Window * window); - -/** - * Copy areas of the window surface to the screen. - * - * This is the function you use to reflect changes to portions of the surface - * on the screen. - * - * This function is equivalent to the SDL 1.2 API SDL_UpdateRects(). - * - * \param window the window to update - * \param rects an array of SDL_Rect structures representing areas of the - * surface to copy, in pixels - * \param numrects the number of rectangles - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowSurface - * \sa SDL_UpdateWindowSurface - */ -extern DECLSPEC int SDLCALL SDL_UpdateWindowSurfaceRects(SDL_Window * window, - const SDL_Rect * rects, - int numrects); - -/** - * Destroy the surface associated with the window. - * - * \param window the window to update - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.28.0. - * - * \sa SDL_GetWindowSurface - * \sa SDL_HasWindowSurface - */ -extern DECLSPEC int SDLCALL SDL_DestroyWindowSurface(SDL_Window *window); - -/** - * Set a window's input grab mode. - * - * When input is grabbed, the mouse is confined to the window. This function - * will also grab the keyboard if `SDL_HINT_GRAB_KEYBOARD` is set. To grab the - * keyboard without also grabbing the mouse, use SDL_SetWindowKeyboardGrab(). - * - * If the caller enables a grab while another window is currently grabbed, the - * other window loses its grab in favor of the caller's window. - * - * \param window the window for which the input grab mode should be set - * \param grabbed SDL_TRUE to grab input or SDL_FALSE to release input - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetGrabbedWindow - * \sa SDL_GetWindowGrab - */ -extern DECLSPEC void SDLCALL SDL_SetWindowGrab(SDL_Window * window, - SDL_bool grabbed); - -/** - * Set a window's keyboard grab mode. - * - * Keyboard grab enables capture of system keyboard shortcuts like Alt+Tab or - * the Meta/Super key. Note that not all system keyboard shortcuts can be - * captured by applications (one example is Ctrl+Alt+Del on Windows). - * - * This is primarily intended for specialized applications such as VNC clients - * or VM frontends. Normal games should not use keyboard grab. - * - * When keyboard grab is enabled, SDL will continue to handle Alt+Tab when the - * window is full-screen to ensure the user is not trapped in your - * application. If you have a custom keyboard shortcut to exit fullscreen - * mode, you may suppress this behavior with - * `SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED`. - * - * If the caller enables a grab while another window is currently grabbed, the - * other window loses its grab in favor of the caller's window. - * - * \param window The window for which the keyboard grab mode should be set. - * \param grabbed This is SDL_TRUE to grab keyboard, and SDL_FALSE to release. - * - * \since This function is available since SDL 2.0.16. - * - * \sa SDL_GetWindowKeyboardGrab - * \sa SDL_SetWindowMouseGrab - * \sa SDL_SetWindowGrab - */ -extern DECLSPEC void SDLCALL SDL_SetWindowKeyboardGrab(SDL_Window * window, - SDL_bool grabbed); - -/** - * Set a window's mouse grab mode. - * - * Mouse grab confines the mouse cursor to the window. - * - * \param window The window for which the mouse grab mode should be set. - * \param grabbed This is SDL_TRUE to grab mouse, and SDL_FALSE to release. - * - * \since This function is available since SDL 2.0.16. - * - * \sa SDL_GetWindowMouseGrab - * \sa SDL_SetWindowKeyboardGrab - * \sa SDL_SetWindowGrab - */ -extern DECLSPEC void SDLCALL SDL_SetWindowMouseGrab(SDL_Window * window, - SDL_bool grabbed); - -/** - * Get a window's input grab mode. - * - * \param window the window to query - * \returns SDL_TRUE if input is grabbed, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowGrab - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowGrab(SDL_Window * window); - -/** - * Get a window's keyboard grab mode. - * - * \param window the window to query - * \returns SDL_TRUE if keyboard is grabbed, and SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.16. - * - * \sa SDL_SetWindowKeyboardGrab - * \sa SDL_GetWindowGrab - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowKeyboardGrab(SDL_Window * window); - -/** - * Get a window's mouse grab mode. - * - * \param window the window to query - * \returns SDL_TRUE if mouse is grabbed, and SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.16. - * - * \sa SDL_SetWindowKeyboardGrab - * \sa SDL_GetWindowGrab - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowMouseGrab(SDL_Window * window); - -/** - * Get the window that currently has an input grab enabled. - * - * \returns the window if input is grabbed or NULL otherwise. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_GetWindowGrab - * \sa SDL_SetWindowGrab - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_GetGrabbedWindow(void); - -/** - * Confines the cursor to the specified area of a window. - * - * Note that this does NOT grab the cursor, it only defines the area a cursor - * is restricted to when the window has mouse focus. - * - * \param window The window that will be associated with the barrier. - * \param rect A rectangle area in window-relative coordinates. If NULL the - * barrier for the specified window will be destroyed. - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_GetWindowMouseRect - * \sa SDL_SetWindowMouseGrab - */ -extern DECLSPEC int SDLCALL SDL_SetWindowMouseRect(SDL_Window * window, const SDL_Rect * rect); - -/** - * Get the mouse confinement rectangle of a window. - * - * \param window The window to query - * \returns A pointer to the mouse confinement rectangle of a window, or NULL - * if there isn't one. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_SetWindowMouseRect - */ -extern DECLSPEC const SDL_Rect * SDLCALL SDL_GetWindowMouseRect(SDL_Window * window); - -/** - * Set the brightness (gamma multiplier) for a given window's display. - * - * Despite the name and signature, this method sets the brightness of the - * entire display, not an individual window. A window is considered to be - * owned by the display that contains the window's center pixel. (The index of - * this display can be retrieved using SDL_GetWindowDisplayIndex().) The - * brightness set will not follow the window if it is moved to another - * display. - * - * Many platforms will refuse to set the display brightness in modern times. - * You are better off using a shader to adjust gamma during rendering, or - * something similar. - * - * \param window the window used to select the display whose brightness will - * be changed - * \param brightness the brightness (gamma multiplier) value to set where 0.0 - * is completely dark and 1.0 is normal brightness - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowBrightness - * \sa SDL_SetWindowGammaRamp - */ -extern DECLSPEC int SDLCALL SDL_SetWindowBrightness(SDL_Window * window, float brightness); - -/** - * Get the brightness (gamma multiplier) for a given window's display. - * - * Despite the name and signature, this method retrieves the brightness of the - * entire display, not an individual window. A window is considered to be - * owned by the display that contains the window's center pixel. (The index of - * this display can be retrieved using SDL_GetWindowDisplayIndex().) - * - * \param window the window used to select the display whose brightness will - * be queried - * \returns the brightness for the display where 0.0 is completely dark and - * 1.0 is normal brightness. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowBrightness - */ -extern DECLSPEC float SDLCALL SDL_GetWindowBrightness(SDL_Window * window); - -/** - * Set the opacity for a window. - * - * The parameter `opacity` will be clamped internally between 0.0f - * (transparent) and 1.0f (opaque). - * - * This function also returns -1 if setting the opacity isn't supported. - * - * \param window the window which will be made transparent or opaque - * \param opacity the opacity value (0.0f - transparent, 1.0f - opaque) - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_GetWindowOpacity - */ -extern DECLSPEC int SDLCALL SDL_SetWindowOpacity(SDL_Window * window, float opacity); - -/** - * Get the opacity of a window. - * - * If transparency isn't supported on this platform, opacity will be reported - * as 1.0f without error. - * - * The parameter `opacity` is ignored if it is NULL. - * - * This function also returns -1 if an invalid window was provided. - * - * \param window the window to get the current opacity value from - * \param out_opacity the float filled in (0.0f - transparent, 1.0f - opaque) - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_SetWindowOpacity - */ -extern DECLSPEC int SDLCALL SDL_GetWindowOpacity(SDL_Window * window, float * out_opacity); - -/** - * Set the window as a modal for another window. - * - * \param modal_window the window that should be set modal - * \param parent_window the parent window for the modal window - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - */ -extern DECLSPEC int SDLCALL SDL_SetWindowModalFor(SDL_Window * modal_window, SDL_Window * parent_window); - -/** - * Explicitly set input focus to the window. - * - * You almost certainly want SDL_RaiseWindow() instead of this function. Use - * this with caution, as you might give focus to a window that is completely - * obscured by other windows. - * - * \param window the window that should get the input focus - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_RaiseWindow - */ -extern DECLSPEC int SDLCALL SDL_SetWindowInputFocus(SDL_Window * window); - -/** - * Set the gamma ramp for the display that owns a given window. - * - * Set the gamma translation table for the red, green, and blue channels of - * the video hardware. Each table is an array of 256 16-bit quantities, - * representing a mapping between the input and output for that channel. The - * input is the index into the array, and the output is the 16-bit gamma value - * at that index, scaled to the output color precision. - * - * Despite the name and signature, this method sets the gamma ramp of the - * entire display, not an individual window. A window is considered to be - * owned by the display that contains the window's center pixel. (The index of - * this display can be retrieved using SDL_GetWindowDisplayIndex().) The gamma - * ramp set will not follow the window if it is moved to another display. - * - * \param window the window used to select the display whose gamma ramp will - * be changed - * \param red a 256 element array of 16-bit quantities representing the - * translation table for the red channel, or NULL - * \param green a 256 element array of 16-bit quantities representing the - * translation table for the green channel, or NULL - * \param blue a 256 element array of 16-bit quantities representing the - * translation table for the blue channel, or NULL - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowGammaRamp - */ -extern DECLSPEC int SDLCALL SDL_SetWindowGammaRamp(SDL_Window * window, - const Uint16 * red, - const Uint16 * green, - const Uint16 * blue); - -/** - * Get the gamma ramp for a given window's display. - * - * Despite the name and signature, this method retrieves the gamma ramp of the - * entire display, not an individual window. A window is considered to be - * owned by the display that contains the window's center pixel. (The index of - * this display can be retrieved using SDL_GetWindowDisplayIndex().) - * - * \param window the window used to select the display whose gamma ramp will - * be queried - * \param red a 256 element array of 16-bit quantities filled in with the - * translation table for the red channel, or NULL - * \param green a 256 element array of 16-bit quantities filled in with the - * translation table for the green channel, or NULL - * \param blue a 256 element array of 16-bit quantities filled in with the - * translation table for the blue channel, or NULL - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowGammaRamp - */ -extern DECLSPEC int SDLCALL SDL_GetWindowGammaRamp(SDL_Window * window, - Uint16 * red, - Uint16 * green, - Uint16 * blue); - -/** - * Possible return values from the SDL_HitTest callback. - * - * \sa SDL_HitTest - */ -typedef enum -{ - SDL_HITTEST_NORMAL, /**< Region is normal. No special properties. */ - SDL_HITTEST_DRAGGABLE, /**< Region can drag entire window. */ - SDL_HITTEST_RESIZE_TOPLEFT, - SDL_HITTEST_RESIZE_TOP, - SDL_HITTEST_RESIZE_TOPRIGHT, - SDL_HITTEST_RESIZE_RIGHT, - SDL_HITTEST_RESIZE_BOTTOMRIGHT, - SDL_HITTEST_RESIZE_BOTTOM, - SDL_HITTEST_RESIZE_BOTTOMLEFT, - SDL_HITTEST_RESIZE_LEFT -} SDL_HitTestResult; - -/** - * Callback used for hit-testing. - * - * \param win the SDL_Window where hit-testing was set on - * \param area an SDL_Point which should be hit-tested - * \param data what was passed as `callback_data` to SDL_SetWindowHitTest() - * \return an SDL_HitTestResult value. - * - * \sa SDL_SetWindowHitTest - */ -typedef SDL_HitTestResult (SDLCALL *SDL_HitTest)(SDL_Window *win, - const SDL_Point *area, - void *data); - -/** - * Provide a callback that decides if a window region has special properties. - * - * Normally windows are dragged and resized by decorations provided by the - * system window manager (a title bar, borders, etc), but for some apps, it - * makes sense to drag them from somewhere else inside the window itself; for - * example, one might have a borderless window that wants to be draggable from - * any part, or simulate its own title bar, etc. - * - * This function lets the app provide a callback that designates pieces of a - * given window as special. This callback is run during event processing if we - * need to tell the OS to treat a region of the window specially; the use of - * this callback is known as "hit testing." - * - * Mouse input may not be delivered to your application if it is within a - * special area; the OS will often apply that input to moving the window or - * resizing the window and not deliver it to the application. - * - * Specifying NULL for a callback disables hit-testing. Hit-testing is - * disabled by default. - * - * Platforms that don't support this functionality will return -1 - * unconditionally, even if you're attempting to disable hit-testing. - * - * Your callback may fire at any time, and its firing does not indicate any - * specific behavior (for example, on Windows, this certainly might fire when - * the OS is deciding whether to drag your window, but it fires for lots of - * other reasons, too, some unrelated to anything you probably care about _and - * when the mouse isn't actually at the location it is testing_). Since this - * can fire at any time, you should try to keep your callback efficient, - * devoid of allocations, etc. - * - * \param window the window to set hit-testing on - * \param callback the function to call when doing a hit-test - * \param callback_data an app-defined void pointer passed to **callback** - * \returns 0 on success or -1 on error (including unsupported); call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.4. - */ -extern DECLSPEC int SDLCALL SDL_SetWindowHitTest(SDL_Window * window, - SDL_HitTest callback, - void *callback_data); - -/** - * Request a window to demand attention from the user. - * - * \param window the window to be flashed - * \param operation the flash operation - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC int SDLCALL SDL_FlashWindow(SDL_Window * window, SDL_FlashOperation operation); - -/** - * Destroy a window. - * - * If `window` is NULL, this function will return immediately after setting - * the SDL error message to "Invalid window". See SDL_GetError(). - * - * \param window the window to destroy - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateWindow - * \sa SDL_CreateWindowFrom - */ -extern DECLSPEC void SDLCALL SDL_DestroyWindow(SDL_Window * window); - - -/** - * Check whether the screensaver is currently enabled. - * - * The screensaver is disabled by default since SDL 2.0.2. Before SDL 2.0.2 - * the screensaver was enabled by default. - * - * The default can also be changed using `SDL_HINT_VIDEO_ALLOW_SCREENSAVER`. - * - * \returns SDL_TRUE if the screensaver is enabled, SDL_FALSE if it is - * disabled. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DisableScreenSaver - * \sa SDL_EnableScreenSaver - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenSaverEnabled(void); - -/** - * Allow the screen to be blanked by a screen saver. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DisableScreenSaver - * \sa SDL_IsScreenSaverEnabled - */ -extern DECLSPEC void SDLCALL SDL_EnableScreenSaver(void); - -/** - * Prevent the screen from being blanked by a screen saver. - * - * If you disable the screensaver, it is automatically re-enabled when SDL - * quits. - * - * The screensaver is disabled by default since SDL 2.0.2. Before SDL 2.0.2 - * the screensaver was enabled by default. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_EnableScreenSaver - * \sa SDL_IsScreenSaverEnabled - */ -extern DECLSPEC void SDLCALL SDL_DisableScreenSaver(void); - - -/** - * \name OpenGL support functions - */ -/* @{ */ - -/** - * Dynamically load an OpenGL library. - * - * This should be done after initializing the video driver, but before - * creating any OpenGL windows. If no OpenGL library is loaded, the default - * library will be loaded upon creation of the first OpenGL window. - * - * If you do this, you need to retrieve all of the GL functions used in your - * program from the dynamic library using SDL_GL_GetProcAddress(). - * - * \param path the platform dependent OpenGL library name, or NULL to open the - * default OpenGL library - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_GetProcAddress - * \sa SDL_GL_UnloadLibrary - */ -extern DECLSPEC int SDLCALL SDL_GL_LoadLibrary(const char *path); - -/** - * Get an OpenGL function by name. - * - * If the GL library is loaded at runtime with SDL_GL_LoadLibrary(), then all - * GL functions must be retrieved this way. Usually this is used to retrieve - * function pointers to OpenGL extensions. - * - * There are some quirks to looking up OpenGL functions that require some - * extra care from the application. If you code carefully, you can handle - * these quirks without any platform-specific code, though: - * - * - On Windows, function pointers are specific to the current GL context; - * this means you need to have created a GL context and made it current - * before calling SDL_GL_GetProcAddress(). If you recreate your context or - * create a second context, you should assume that any existing function - * pointers aren't valid to use with it. This is (currently) a - * Windows-specific limitation, and in practice lots of drivers don't suffer - * this limitation, but it is still the way the wgl API is documented to - * work and you should expect crashes if you don't respect it. Store a copy - * of the function pointers that comes and goes with context lifespan. - * - On X11, function pointers returned by this function are valid for any - * context, and can even be looked up before a context is created at all. - * This means that, for at least some common OpenGL implementations, if you - * look up a function that doesn't exist, you'll get a non-NULL result that - * is _NOT_ safe to call. You must always make sure the function is actually - * available for a given GL context before calling it, by checking for the - * existence of the appropriate extension with SDL_GL_ExtensionSupported(), - * or verifying that the version of OpenGL you're using offers the function - * as core functionality. - * - Some OpenGL drivers, on all platforms, *will* return NULL if a function - * isn't supported, but you can't count on this behavior. Check for - * extensions you use, and if you get a NULL anyway, act as if that - * extension wasn't available. This is probably a bug in the driver, but you - * can code defensively for this scenario anyhow. - * - Just because you're on Linux/Unix, don't assume you'll be using X11. - * Next-gen display servers are waiting to replace it, and may or may not - * make the same promises about function pointers. - * - OpenGL function pointers must be declared `APIENTRY` as in the example - * code. This will ensure the proper calling convention is followed on - * platforms where this matters (Win32) thereby avoiding stack corruption. - * - * \param proc the name of an OpenGL function - * \returns a pointer to the named OpenGL function. The returned pointer - * should be cast to the appropriate function signature. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_ExtensionSupported - * \sa SDL_GL_LoadLibrary - * \sa SDL_GL_UnloadLibrary - */ -extern DECLSPEC void *SDLCALL SDL_GL_GetProcAddress(const char *proc); - -/** - * Unload the OpenGL library previously loaded by SDL_GL_LoadLibrary(). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_LoadLibrary - */ -extern DECLSPEC void SDLCALL SDL_GL_UnloadLibrary(void); - -/** - * Check if an OpenGL extension is supported for the current context. - * - * This function operates on the current GL context; you must have created a - * context and it must be current before calling this function. Do not assume - * that all contexts you create will have the same set of extensions - * available, or that recreating an existing context will offer the same - * extensions again. - * - * While it's probably not a massive overhead, this function is not an O(1) - * operation. Check the extensions you care about after creating the GL - * context and save that information somewhere instead of calling the function - * every time you need to know. - * - * \param extension the name of the extension to check - * \returns SDL_TRUE if the extension is supported, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GL_ExtensionSupported(const char - *extension); - -/** - * Reset all previously set OpenGL context attributes to their default values. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_GL_GetAttribute - * \sa SDL_GL_SetAttribute - */ -extern DECLSPEC void SDLCALL SDL_GL_ResetAttributes(void); - -/** - * Set an OpenGL window attribute before window creation. - * - * This function sets the OpenGL attribute `attr` to `value`. The requested - * attributes should be set before creating an OpenGL window. You should use - * SDL_GL_GetAttribute() to check the values after creating the OpenGL - * context, since the values obtained can differ from the requested ones. - * - * \param attr an SDL_GLattr enum value specifying the OpenGL attribute to set - * \param value the desired value for the attribute - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_GetAttribute - * \sa SDL_GL_ResetAttributes - */ -extern DECLSPEC int SDLCALL SDL_GL_SetAttribute(SDL_GLattr attr, int value); - -/** - * Get the actual value for an attribute from the current context. - * - * \param attr an SDL_GLattr enum value specifying the OpenGL attribute to get - * \param value a pointer filled in with the current value of `attr` - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_ResetAttributes - * \sa SDL_GL_SetAttribute - */ -extern DECLSPEC int SDLCALL SDL_GL_GetAttribute(SDL_GLattr attr, int *value); - -/** - * Create an OpenGL context for an OpenGL window, and make it current. - * - * Windows users new to OpenGL should note that, for historical reasons, GL - * functions added after OpenGL version 1.1 are not available by default. - * Those functions must be loaded at run-time, either with an OpenGL - * extension-handling library or with SDL_GL_GetProcAddress() and its related - * functions. - * - * SDL_GLContext is an alias for `void *`. It's opaque to the application. - * - * \param window the window to associate with the context - * \returns the OpenGL context associated with `window` or NULL on error; call - * SDL_GetError() for more details. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_DeleteContext - * \sa SDL_GL_MakeCurrent - */ -extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_CreateContext(SDL_Window * - window); - -/** - * Set up an OpenGL context for rendering into an OpenGL window. - * - * The context must have been created with a compatible window. - * - * \param window the window to associate with the context - * \param context the OpenGL context to associate with the window - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_CreateContext - */ -extern DECLSPEC int SDLCALL SDL_GL_MakeCurrent(SDL_Window * window, - SDL_GLContext context); - -/** - * Get the currently active OpenGL window. - * - * \returns the currently active OpenGL window on success or NULL on failure; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_Window* SDLCALL SDL_GL_GetCurrentWindow(void); - -/** - * Get the currently active OpenGL context. - * - * \returns the currently active OpenGL context or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_MakeCurrent - */ -extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_GetCurrentContext(void); - -/** - * Get the size of a window's underlying drawable in pixels. - * - * This returns info useful for calling glViewport(). - * - * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI - * drawable, i.e. the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a - * platform with high-DPI support (Apple calls this "Retina"), and not - * disabled by the `SDL_HINT_VIDEO_HIGHDPI_DISABLED` hint. - * - * \param window the window from which the drawable size should be queried - * \param w a pointer to variable for storing the width in pixels, may be NULL - * \param h a pointer to variable for storing the height in pixels, may be - * NULL - * - * \since This function is available since SDL 2.0.1. - * - * \sa SDL_CreateWindow - * \sa SDL_GetWindowSize - */ -extern DECLSPEC void SDLCALL SDL_GL_GetDrawableSize(SDL_Window * window, int *w, - int *h); - -/** - * Set the swap interval for the current OpenGL context. - * - * Some systems allow specifying -1 for the interval, to enable adaptive - * vsync. Adaptive vsync works the same as vsync, but if you've already missed - * the vertical retrace for a given frame, it swaps buffers immediately, which - * might be less jarring for the user during occasional framerate drops. If an - * application requests adaptive vsync and the system does not support it, - * this function will fail and return -1. In such a case, you should probably - * retry the call with 1 for the interval. - * - * Adaptive vsync is implemented for some glX drivers with - * GLX_EXT_swap_control_tear, and for some Windows drivers with - * WGL_EXT_swap_control_tear. - * - * Read more on the Khronos wiki: - * https://www.khronos.org/opengl/wiki/Swap_Interval#Adaptive_Vsync - * - * \param interval 0 for immediate updates, 1 for updates synchronized with - * the vertical retrace, -1 for adaptive vsync - * \returns 0 on success or -1 if setting the swap interval is not supported; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_GetSwapInterval - */ -extern DECLSPEC int SDLCALL SDL_GL_SetSwapInterval(int interval); - -/** - * Get the swap interval for the current OpenGL context. - * - * If the system can't determine the swap interval, or there isn't a valid - * current context, this function will return 0 as a safe default. - * - * \returns 0 if there is no vertical retrace synchronization, 1 if the buffer - * swap is synchronized with the vertical retrace, and -1 if late - * swaps happen immediately instead of waiting for the next retrace; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_SetSwapInterval - */ -extern DECLSPEC int SDLCALL SDL_GL_GetSwapInterval(void); - -/** - * Update a window with OpenGL rendering. - * - * This is used with double-buffered OpenGL contexts, which are the default. - * - * On macOS, make sure you bind 0 to the draw framebuffer before swapping the - * window, otherwise nothing will happen. If you aren't using - * glBindFramebuffer(), this is the default and you won't have to do anything - * extra. - * - * \param window the window to change - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_GL_SwapWindow(SDL_Window * window); - -/** - * Delete an OpenGL context. - * - * \param context the OpenGL context to be deleted - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_CreateContext - */ -extern DECLSPEC void SDLCALL SDL_GL_DeleteContext(SDL_GLContext context); - -/* @} *//* OpenGL support functions */ - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_video_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL_vulkan.h b/lib/windows/include/SDL_vulkan.h deleted file mode 100644 index ab86a0b..0000000 --- a/lib/windows/include/SDL_vulkan.h +++ /dev/null @@ -1,215 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 2017, Mark Callow - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_vulkan.h - * - * Header file for functions to creating Vulkan surfaces on SDL windows. - */ - -#ifndef SDL_vulkan_h_ -#define SDL_vulkan_h_ - -#include "SDL_video.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Avoid including vulkan.h, don't define VkInstance if it's already included */ -#ifdef VULKAN_H_ -#define NO_SDL_VULKAN_TYPEDEFS -#endif -#ifndef NO_SDL_VULKAN_TYPEDEFS -#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; - -#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) -#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; -#else -#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; -#endif - -VK_DEFINE_HANDLE(VkInstance) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) - -#endif /* !NO_SDL_VULKAN_TYPEDEFS */ - -typedef VkInstance SDL_vulkanInstance; -typedef VkSurfaceKHR SDL_vulkanSurface; /* for compatibility with Tizen */ - -/** - * \name Vulkan support functions - * - * \note SDL_Vulkan_GetInstanceExtensions & SDL_Vulkan_CreateSurface API - * is compatable with Tizen's implementation of Vulkan in SDL. - */ -/* @{ */ - -/** - * Dynamically load the Vulkan loader library. - * - * This should be called after initializing the video driver, but before - * creating any Vulkan windows. If no Vulkan loader library is loaded, the - * default library will be loaded upon creation of the first Vulkan window. - * - * It is fairly common for Vulkan applications to link with libvulkan instead - * of explicitly loading it at run time. This will work with SDL provided the - * application links to a dynamic library and both it and SDL use the same - * search path. - * - * If you specify a non-NULL `path`, an application should retrieve all of the - * Vulkan functions it uses from the dynamic library using - * SDL_Vulkan_GetVkGetInstanceProcAddr unless you can guarantee `path` points - * to the same vulkan loader library the application linked to. - * - * On Apple devices, if `path` is NULL, SDL will attempt to find the - * `vkGetInstanceProcAddr` address within all the Mach-O images of the current - * process. This is because it is fairly common for Vulkan applications to - * link with libvulkan (and historically MoltenVK was provided as a static - * library). If it is not found, on macOS, SDL will attempt to load - * `vulkan.framework/vulkan`, `libvulkan.1.dylib`, - * `MoltenVK.framework/MoltenVK`, and `libMoltenVK.dylib`, in that order. On - * iOS, SDL will attempt to load `libMoltenVK.dylib`. Applications using a - * dynamic framework or .dylib must ensure it is included in its application - * bundle. - * - * On non-Apple devices, application linking with a static libvulkan is not - * supported. Either do not link to the Vulkan loader or link to a dynamic - * library version. - * - * \param path The platform dependent Vulkan loader library name or NULL - * \returns 0 on success or -1 if the library couldn't be loaded; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.6. - * - * \sa SDL_Vulkan_GetVkInstanceProcAddr - * \sa SDL_Vulkan_UnloadLibrary - */ -extern DECLSPEC int SDLCALL SDL_Vulkan_LoadLibrary(const char *path); - -/** - * Get the address of the `vkGetInstanceProcAddr` function. - * - * This should be called after either calling SDL_Vulkan_LoadLibrary() or - * creating an SDL_Window with the `SDL_WINDOW_VULKAN` flag. - * - * \returns the function pointer for `vkGetInstanceProcAddr` or NULL on error. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC void *SDLCALL SDL_Vulkan_GetVkGetInstanceProcAddr(void); - -/** - * Unload the Vulkan library previously loaded by SDL_Vulkan_LoadLibrary() - * - * \since This function is available since SDL 2.0.6. - * - * \sa SDL_Vulkan_LoadLibrary - */ -extern DECLSPEC void SDLCALL SDL_Vulkan_UnloadLibrary(void); - -/** - * Get the names of the Vulkan instance extensions needed to create a surface - * with SDL_Vulkan_CreateSurface. - * - * If `pNames` is NULL, then the number of required Vulkan instance extensions - * is returned in `pCount`. Otherwise, `pCount` must point to a variable set - * to the number of elements in the `pNames` array, and on return the variable - * is overwritten with the number of names actually written to `pNames`. If - * `pCount` is less than the number of required extensions, at most `pCount` - * structures will be written. If `pCount` is smaller than the number of - * required extensions, SDL_FALSE will be returned instead of SDL_TRUE, to - * indicate that not all the required extensions were returned. - * - * The `window` parameter is currently needed to be valid as of SDL 2.0.8, - * however, this parameter will likely be removed in future releases - * - * \param window A window for which the required Vulkan instance extensions - * should be retrieved (will be deprecated in a future release) - * \param pCount A pointer to an unsigned int corresponding to the number of - * extensions to be returned - * \param pNames NULL or a pointer to an array to be filled with required - * Vulkan instance extensions - * \returns SDL_TRUE on success, SDL_FALSE on error. - * - * \since This function is available since SDL 2.0.6. - * - * \sa SDL_Vulkan_CreateSurface - */ -extern DECLSPEC SDL_bool SDLCALL SDL_Vulkan_GetInstanceExtensions(SDL_Window *window, - unsigned int *pCount, - const char **pNames); - -/** - * Create a Vulkan rendering surface for a window. - * - * The `window` must have been created with the `SDL_WINDOW_VULKAN` flag and - * `instance` must have been created with extensions returned by - * SDL_Vulkan_GetInstanceExtensions() enabled. - * - * \param window The window to which to attach the Vulkan surface - * \param instance The Vulkan instance handle - * \param surface A pointer to a VkSurfaceKHR handle to output the newly - * created surface - * \returns SDL_TRUE on success, SDL_FALSE on error. - * - * \since This function is available since SDL 2.0.6. - * - * \sa SDL_Vulkan_GetInstanceExtensions - * \sa SDL_Vulkan_GetDrawableSize - */ -extern DECLSPEC SDL_bool SDLCALL SDL_Vulkan_CreateSurface(SDL_Window *window, - VkInstance instance, - VkSurfaceKHR* surface); - -/** - * Get the size of the window's underlying drawable dimensions in pixels. - * - * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI - * drawable, i.e. the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a - * platform with high-DPI support (Apple calls this "Retina"), and not - * disabled by the `SDL_HINT_VIDEO_HIGHDPI_DISABLED` hint. - * - * \param window an SDL_Window for which the size is to be queried - * \param w Pointer to the variable to write the width to or NULL - * \param h Pointer to the variable to write the height to or NULL - * - * \since This function is available since SDL 2.0.6. - * - * \sa SDL_GetWindowSize - * \sa SDL_CreateWindow - * \sa SDL_Vulkan_CreateSurface - */ -extern DECLSPEC void SDLCALL SDL_Vulkan_GetDrawableSize(SDL_Window * window, - int *w, int *h); - -/* @} *//* Vulkan support functions */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include "close_code.h" - -#endif /* SDL_vulkan_h_ */ diff --git a/lib/windows/include/begin_code.h b/lib/windows/include/begin_code.h deleted file mode 100644 index 4142ffe..0000000 --- a/lib/windows/include/begin_code.h +++ /dev/null @@ -1,187 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file begin_code.h - * - * This file sets things up for C dynamic library function definitions, - * static inlined functions, and structures aligned at 4-byte alignment. - * If you don't like ugly C preprocessor code, don't look at this file. :) - */ - -/* This shouldn't be nested -- included it around code only. */ -#ifdef SDL_begin_code_h -#error Nested inclusion of begin_code.h -#endif -#define SDL_begin_code_h - -#ifndef SDL_DEPRECATED -# if defined(__GNUC__) && (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */ -# define SDL_DEPRECATED __attribute__((deprecated)) -# else -# define SDL_DEPRECATED -# endif -#endif - -#ifndef SDL_UNUSED -# ifdef __GNUC__ -# define SDL_UNUSED __attribute__((unused)) -# else -# define SDL_UNUSED -# endif -#endif - -/* Some compilers use a special export keyword */ -#ifndef DECLSPEC -# if defined(__WIN32__) || defined(__WINRT__) || defined(__CYGWIN__) || defined(__GDK__) -# ifdef DLL_EXPORT -# define DECLSPEC __declspec(dllexport) -# else -# define DECLSPEC -# endif -# elif defined(__OS2__) -# ifdef BUILD_SDL -# define DECLSPEC __declspec(dllexport) -# else -# define DECLSPEC -# endif -# else -# if defined(__GNUC__) && __GNUC__ >= 4 -# define DECLSPEC __attribute__ ((visibility("default"))) -# else -# define DECLSPEC -# endif -# endif -#endif - -/* By default SDL uses the C calling convention */ -#ifndef SDLCALL -#if (defined(__WIN32__) || defined(__WINRT__) || defined(__GDK__)) && !defined(__GNUC__) -#define SDLCALL __cdecl -#elif defined(__OS2__) || defined(__EMX__) -#define SDLCALL _System -# if defined (__GNUC__) && !defined(_System) -# define _System /* for old EMX/GCC compat. */ -# endif -#else -#define SDLCALL -#endif -#endif /* SDLCALL */ - -/* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */ -#ifdef __SYMBIAN32__ -#undef DECLSPEC -#define DECLSPEC -#endif /* __SYMBIAN32__ */ - -/* Force structure packing at 4 byte alignment. - This is necessary if the header is included in code which has structure - packing set to an alternate value, say for loading structures from disk. - The packing is reset to the previous value in close_code.h - */ -#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) -#ifdef _MSC_VER -#pragma warning(disable: 4103) -#endif -#ifdef __clang__ -#pragma clang diagnostic ignored "-Wpragma-pack" -#endif -#ifdef __BORLANDC__ -#pragma nopackwarning -#endif -#ifdef _WIN64 -/* Use 8-byte alignment on 64-bit architectures, so pointers are aligned */ -#pragma pack(push,8) -#else -#pragma pack(push,4) -#endif -#endif /* Compiler needs structure packing set */ - -#ifndef SDL_INLINE -#if defined(__GNUC__) -#define SDL_INLINE __inline__ -#elif defined(_MSC_VER) || defined(__BORLANDC__) || \ - defined(__DMC__) || defined(__SC__) || \ - defined(__WATCOMC__) || defined(__LCC__) || \ - defined(__DECC) || defined(__CC_ARM) -#define SDL_INLINE __inline -#ifndef __inline__ -#define __inline__ __inline -#endif -#else -#define SDL_INLINE inline -#ifndef __inline__ -#define __inline__ inline -#endif -#endif -#endif /* SDL_INLINE not defined */ - -#ifndef SDL_FORCE_INLINE -#if defined(_MSC_VER) -#define SDL_FORCE_INLINE __forceinline -#elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) ) -#define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__ -#else -#define SDL_FORCE_INLINE static SDL_INLINE -#endif -#endif /* SDL_FORCE_INLINE not defined */ - -#ifndef SDL_NORETURN -#if defined(__GNUC__) -#define SDL_NORETURN __attribute__((noreturn)) -#elif defined(_MSC_VER) -#define SDL_NORETURN __declspec(noreturn) -#else -#define SDL_NORETURN -#endif -#endif /* SDL_NORETURN not defined */ - -/* Apparently this is needed by several Windows compilers */ -#if !defined(__MACH__) -#ifndef NULL -#ifdef __cplusplus -#define NULL 0 -#else -#define NULL ((void *)0) -#endif -#endif /* NULL */ -#endif /* ! Mac OS X - breaks precompiled headers */ - -#ifndef SDL_FALLTHROUGH -#if (defined(__cplusplus) && __cplusplus >= 201703L) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000L) -#define SDL_FALLTHROUGH [[fallthrough]] -#else -#if defined(__has_attribute) -#define SDL_HAS_FALLTHROUGH __has_attribute(__fallthrough__) -#else -#define SDL_HAS_FALLTHROUGH 0 -#endif /* __has_attribute */ -#if SDL_HAS_FALLTHROUGH && \ - ((defined(__GNUC__) && __GNUC__ >= 7) || \ - (defined(__clang_major__) && __clang_major__ >= 10)) -#define SDL_FALLTHROUGH __attribute__((__fallthrough__)) -#else -#define SDL_FALLTHROUGH do {} while (0) /* fallthrough */ -#endif /* SDL_HAS_FALLTHROUGH */ -#undef SDL_HAS_FALLTHROUGH -#endif /* C++17 or C2x */ -#endif /* SDL_FALLTHROUGH not defined */ diff --git a/lib/windows/include/close_code.h b/lib/windows/include/close_code.h deleted file mode 100644 index b5ff3e2..0000000 --- a/lib/windows/include/close_code.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file close_code.h - * - * This file reverses the effects of begin_code.h and should be included - * after you finish any function and structure declarations in your headers - */ - -#ifndef SDL_begin_code_h -#error close_code.h included without matching begin_code.h -#endif -#undef SDL_begin_code_h - -/* Reset structure packing at previous byte alignment */ -#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) -#ifdef __BORLANDC__ -#pragma nopackwarning -#endif -#pragma pack(pop) -#endif /* Compiler needs structure packing set */ diff --git a/lib/windows/include/discord_game_sdk.h b/lib/windows/include/discord_game_sdk.h deleted file mode 100644 index f7a7927..0000000 --- a/lib/windows/include/discord_game_sdk.h +++ /dev/null @@ -1,429 +0,0 @@ -#ifndef _DISCORD_GAME_SDK_H_ -#define _DISCORD_GAME_SDK_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include <stdint.h> - -#define DISCORD_VERSION 1 -#define DISCORD_APPLICATION_VERSION 1 -#define DISCORD_USERS_VERSION 1 -#define DISCORD_IMAGES_VERSION 1 -#define DISCORD_ACTIVITIES_VERSION 1 -#define DISCORD_RELATIONSHIPS_VERSION 1 -#define DISCORD_LOBBIES_VERSION 1 -#define DISCORD_NETWORK_VERSION 1 -#define DISCORD_OVERLAY_VERSION 1 -#define DISCORD_STORAGE_VERSION 1 - -enum EDiscordResult { - DiscordResult_Ok, - DiscordResult_ServiceUnavailable, - DiscordResult_InvalidVersion, - DiscordResult_LockFailed, - DiscordResult_InternalError, - DiscordResult_InvalidPaylaod, - DiscordResult_InvalidCommand, - DiscordResult_InvalidPermissions, - DiscordResult_NotFetched, - DiscordResult_NotFound, - DiscordResult_Conflict, - DiscordResult_InvalidSecret, - DiscordResult_InvalidJoinSecret, - DiscordResult_NoEligibleActivity, - DiscordResult_InvalidInvite, - DiscordResult_NotAuthenticated, - DiscordResult_InvalidAccessToken, - DiscordResult_ApplicationMismatch, - DiscordResult_InvalidDataUrl, - DiscordResult_InvalidBase64, - DiscordResult_NotFiltered, - DiscordResult_LobbyFull, - DiscordResult_InvalidLobbySecret, - DiscordResult_InvalidFilename, - DiscordResult_InvalidFileSize, - DiscordResult_InvalidEntitlement, - DiscordResult_NotInstalled, - DiscordResult_NotRunning, -}; - -enum EDiscordCreateFlags { - DiscordCreateFlags_Default = 0, - DiscordCreateFlags_NoRequireDiscord = 1, -}; - -enum EDiscordLogLevel { - DiscordLogLevel_Error = 1, - DiscordLogLevel_Warn, - DiscordLogLevel_Info, - DiscordLogLevel_Debug, -}; - -enum EDiscordImageType { - DiscordImageType_User, -}; - -enum EDiscordActivityType { - DiscordActivityType_Playing, - DiscordActivityType_Streaming, - DiscordActivityType_Listening, - DiscordActivityType_Watching, -}; - -enum EDiscordActivityActionType { - DiscordActivityActionType_Join = 1, - DiscordActivityActionType_Spectate, -}; - -enum EDiscordActivityJoinRequestReply { - DiscordActivityJoinRequestReply_No, - DiscordActivityJoinRequestReply_Yes, - DiscordActivityJoinRequestReply_Ignore, -}; - -enum EDiscordStatus { - DiscordStatus_Offline = 0, - DiscordStatus_Online = 1, - DiscordStatus_Idle = 2, - DiscordStatus_DoNotDisturb = 4, -}; - -enum EDiscordRelationshipType { - DiscordRelationshipType_None, - DiscordRelationshipType_Friend, - DiscordRelationshipType_Blocked, - DiscordRelationshipType_PendingIncoming, - DiscordRelationshipType_PendingOutgoing, - DiscordRelationshipType_Implicit, -}; - -enum EDiscordLobbyType { - DiscordLobbyType_Private = 1, - DiscordLobbyType_Public, -}; - -enum EDiscordLobbySearchComparison { - DiscordLobbySearchComparison_LessThanOrEqual = -2, - DiscordLobbySearchComparison_LessThan, - DiscordLobbySearchComparison_Equal, - DiscordLobbySearchComparison_GreaterThan, - DiscordLobbySearchComparison_GreaterThanOrEqual, - DiscordLobbySearchComparison_NotEqual, -}; - -enum EDiscordLobbySearchCast { - DiscordLobbySearchCast_String = 1, - DiscordLobbySearchCast_Number, -}; - -typedef int64_t DiscordClientId; -typedef int32_t DiscordVersion; -typedef int64_t DiscordSnowflake; -typedef int64_t DiscordTimestamp; -typedef DiscordSnowflake DiscordUserId; -typedef char DiscordUserName[256]; -typedef char DiscordUserAvatar[128]; -typedef char DiscordUserDiscriminator[8]; -typedef char DiscordAccessToken[128]; -typedef char DiscordOAuth2Scopes[1024]; -typedef char DiscordLocale[128]; -typedef char DiscordBranch[4096]; -typedef uint8_t* DiscordImageData; -typedef char DiscordImageId[128]; -typedef char DiscordImageCaption[128]; -typedef char DiscordPartyId[128]; -typedef int32_t DiscordPartyMemberCount; -typedef char DiscordSecret[128]; -typedef DiscordSnowflake DiscordLobbyId; -typedef char DiscordLobbySecret[128]; -typedef char DiscordMetadataKey[256]; -typedef char DiscordMetadataValue[4096]; -typedef uint8_t* DiscordLobbyData; -typedef uint64_t DiscordNetworkSessionId; -typedef uint8_t DiscordNetworkChannelId; -typedef uint8_t* DiscordNetworkData; -typedef char DiscordStorageFileName[260]; -typedef uint8_t* DiscordStorageData; - -struct DiscordUser { - DiscordUserId id; - DiscordUserName username; - DiscordUserDiscriminator discriminator; - DiscordUserAvatar avatar; - int bot; -}; - -struct DiscordOAuth2Token { - DiscordAccessToken access_token; - DiscordOAuth2Scopes scopes; - DiscordTimestamp expires; -}; - -struct DiscordImageHandle { - enum EDiscordImageType type; - int64_t id; - uint32_t size; -}; - -struct DiscordImageDimensions { - uint32_t width; - uint32_t height; -}; - -struct DiscordActivityTimestamps { - DiscordTimestamp start; - DiscordTimestamp end; -}; - -struct DiscordActivityAssets { - DiscordImageId large_image; - DiscordImageCaption large_text; - DiscordImageId small_image; - DiscordImageCaption small_text; -}; - -struct DiscordPartySize { - DiscordPartyMemberCount current_size; - DiscordPartyMemberCount max_size; -}; - -struct DiscordActivityParty { - DiscordPartyId id; - struct DiscordPartySize size; -}; - -struct DiscordActivitySecrets { - DiscordSecret match; - DiscordSecret join; - DiscordSecret spectate; -}; - -struct DiscordActivity { - enum EDiscordActivityType type; - char name[128]; - char state[128]; - char details[128]; - struct DiscordActivityTimestamps timestamps; - struct DiscordActivityAssets assets; - struct DiscordActivityParty party; - struct DiscordActivitySecrets secrets; - int instance; -}; - -struct DiscordPresence { - enum EDiscordStatus status; - struct DiscordActivity activity; -}; - -struct DiscordRelationship { - enum EDiscordRelationshipType type; - struct DiscordUser user; - struct DiscordPresence presence; -}; - -struct DiscordLobby { - DiscordLobbyId id; - enum EDiscordLobbyType type; - DiscordSnowflake owner_id; - DiscordLobbySecret secret; - uint32_t capacity; -}; - -struct DiscordFileStat { - DiscordStorageFileName filename; - uint64_t size; - uint64_t last_modified; -}; - -struct IDiscordLobbyTransaction { - enum EDiscordResult (*set_type)(struct IDiscordLobbyTransaction* lobby_transaction, enum EDiscordLobbyType type); - enum EDiscordResult (*set_owner)(struct IDiscordLobbyTransaction* lobby_transaction, DiscordSnowflake owner_id); - enum EDiscordResult (*set_capacity)(struct IDiscordLobbyTransaction* lobby_transaction, uint32_t capacity); - enum EDiscordResult (*set_metadata)(struct IDiscordLobbyTransaction* lobby_transaction, DiscordMetadataKey key, DiscordMetadataValue value); - enum EDiscordResult (*delete_metadata)(struct IDiscordLobbyTransaction* lobby_transaction, DiscordMetadataKey key); -}; - -struct IDiscordLobbyMemberTransaction { - enum EDiscordResult (*set_metadata)(struct IDiscordLobbyMemberTransaction* lobby_member_transaction, DiscordMetadataKey key, DiscordMetadataValue value); - enum EDiscordResult (*delete_metadata)(struct IDiscordLobbyMemberTransaction* lobby_member_transaction, DiscordMetadataKey key); -}; - -struct IDiscordLobbySearch { - enum EDiscordResult (*filter)(struct IDiscordLobbySearch* lobby_search, DiscordMetadataKey key, enum EDiscordLobbySearchComparison comparison, enum EDiscordLobbySearchCast cast, DiscordMetadataValue value); - enum EDiscordResult (*sort)(struct IDiscordLobbySearch* lobby_search, DiscordMetadataKey key, enum EDiscordLobbySearchCast cast, DiscordMetadataValue value); - enum EDiscordResult (*limit)(struct IDiscordLobbySearch* lobby_search, uint32_t limit); -}; - -typedef void IDiscordApplicationEvents; - -struct IDiscordApplication { - enum EDiscordResult (*destroy)(struct IDiscordApplication* application); - enum EDiscordResult (*validate_or_exit)(struct IDiscordApplication* application, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*get_current_locale)(struct IDiscordApplication* application, DiscordLocale* locale); - enum EDiscordResult (*get_current_branch)(struct IDiscordApplication* application, DiscordBranch* branch); - enum EDiscordResult (*get_oauth2_token)(struct IDiscordApplication* application, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, struct DiscordOAuth2Token* oauth2_token)); -}; - -struct IDiscordUsersEvents { - void (*on_current_user_update)(void* event_data); -}; - -struct IDiscordUsers { - enum EDiscordResult (*destroy)(struct IDiscordUsers* users); - enum EDiscordResult (*get_current_user)(struct IDiscordUsers* users, struct DiscordUser* current_user); - enum EDiscordResult (*fetch)(struct IDiscordUsers* users, DiscordUserId user_id, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, struct DiscordUser* user)); -}; - -typedef void IDiscordImagesEvents; - -struct IDiscordImages { - enum EDiscordResult (*destroy)(struct IDiscordImages* images); - enum EDiscordResult (*fetch)(struct IDiscordImages* images, struct DiscordImageHandle handle, int refresh, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, struct DiscordImageHandle handle_result)); - enum EDiscordResult (*get_dimensions)(struct IDiscordImages* images, struct DiscordImageHandle handle, struct DiscordImageDimensions* dimensions); - enum EDiscordResult (*get_data)(struct IDiscordImages* images, struct DiscordImageHandle handle, DiscordImageData data, uint32_t data_length); -}; - -struct IDiscordActivitiesEvents { - void (*on_activity_join)(void* event_data, DiscordSecret secret); - void (*on_activity_spectate)(void* event_data, DiscordSecret secret); - void (*on_activity_join_request)(void* event_data, struct DiscordUser* user); - void (*on_activity_invite)(void* event_data, enum EDiscordActivityActionType type, struct DiscordUser* user, struct DiscordActivity* activity); -}; - -struct IDiscordActivities { - enum EDiscordResult (*destroy)(struct IDiscordActivities* activities); - enum EDiscordResult (*register_)(struct IDiscordActivities* activities, const char* command); - enum EDiscordResult (*register_steam)(struct IDiscordActivities* activities, uint32_t steam_id); - enum EDiscordResult (*update_activity)(struct IDiscordActivities* activities, struct DiscordActivity* activity, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*clear_activity)(struct IDiscordActivities* activities, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*respond)(struct IDiscordActivities* activities, DiscordUserId user_id, enum EDiscordActivityJoinRequestReply reply, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*invite_user)(struct IDiscordActivities* activities, DiscordUserId user_id, enum EDiscordActivityActionType type, const char* content, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*accept_invite)(struct IDiscordActivities* activities, DiscordUserId user_id, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); -}; - -struct IDiscordRelationshipsEvents { - void (*on_relationships_update)(void* event_data); - void (*on_relationship_update)(void* event_data, struct DiscordRelationship* relationship); -}; - -struct IDiscordRelationships { - enum EDiscordResult (*destroy)(struct IDiscordRelationships* relationships); - enum EDiscordResult (*filter)(struct IDiscordRelationships* relationships, void* filter_data, int (*filter)(void* filter_data, struct DiscordRelationship* relationship)); - enum EDiscordResult (*count)(struct IDiscordRelationships* relationships, int32_t* count); - enum EDiscordResult (*get)(struct IDiscordRelationships* relationships, DiscordUserId user_id, struct DiscordRelationship* relationship); - enum EDiscordResult (*at)(struct IDiscordRelationships* relationships, uint32_t index, struct DiscordRelationship* relationship); -}; - -struct IDiscordLobbiesEvents { - void (*on_lobby_update)(void* event_data, int64_t lobby_id); - void (*on_lobby_delete)(void* event_data, int64_t lobby_id, uint32_t reason); - void (*on_lobby_member_connect)(void* event_data, int64_t lobby_id, int64_t user_id); - void (*on_lobby_member_update)(void* event_data, int64_t lobby_id, int64_t user_id); - void (*on_lobby_member_disconnect)(void* event_data, int64_t lobby_id, int64_t user_id); - void (*on_lobby_message)(void* event_data, int64_t lobby_id, int64_t user_id, DiscordLobbyData data, uint32_t data_length); - void (*on_lobby_speaking)(void* event_data, int64_t lobby_id, int64_t user_id, int speaking); -}; - -struct IDiscordLobbies { - enum EDiscordResult (*destroy)(struct IDiscordLobbies* lobbies); - enum EDiscordResult (*create_lobby_transaction)(struct IDiscordLobbies* lobbies, struct IDiscordLobbyTransaction** transaction); - enum EDiscordResult (*get_lobby_transaction)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, struct IDiscordLobbyTransaction** transaction); - enum EDiscordResult (*get_member_transaction)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordUserId user_id, struct IDiscordLobbyMemberTransaction** transaction); - enum EDiscordResult (*create_lobby)(struct IDiscordLobbies* lobbies, struct IDiscordLobbyTransaction* transaction, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, struct DiscordLobby* lobby)); - enum EDiscordResult (*update_lobby)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, struct IDiscordLobbyTransaction* transaction, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*delete_lobby)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*connect)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordLobbySecret lobby_secret, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, struct DiscordLobby* lobby)); - enum EDiscordResult (*disconnect)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*get_lobby)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, struct DiscordLobby* lobby); - enum EDiscordResult (*get_lobby_metadata)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordMetadataKey key, DiscordMetadataValue* value); - enum EDiscordResult (*get_member_count)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, int32_t* count); - enum EDiscordResult (*get_member_user_id)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, int32_t index, DiscordUserId* user_id); - enum EDiscordResult (*get_member_user)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordUserId user_id, struct DiscordUser* user); - enum EDiscordResult (*get_member_metadata)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordUserId user_id, DiscordMetadataKey key, DiscordMetadataValue* value); - enum EDiscordResult (*update_member)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordUserId user_id, struct IDiscordLobbyMemberTransaction* transaction, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*send)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, DiscordLobbyData data, uint32_t data_length); - enum EDiscordResult (*create_lobby_search)(struct IDiscordLobbies* lobbies, struct IDiscordLobbySearch** lobby_search); - enum EDiscordResult (*search)(struct IDiscordLobbies* lobbies, struct IDiscordLobbySearch* query, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*get_lobby_count)(struct IDiscordLobbies* lobbies, int32_t* count); - enum EDiscordResult (*get_lobby_id)(struct IDiscordLobbies* lobbies, int32_t index, DiscordLobbyId* lobby_id); - enum EDiscordResult (*voice_connect)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*voice_disconnect)(struct IDiscordLobbies* lobbies, DiscordLobbyId lobby_id, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); -}; - -struct IDiscordNetworkEvents { - void (*on_message)(void* event_data, DiscordNetworkSessionId from, DiscordNetworkChannelId channel, DiscordNetworkData data, uint32_t data_length); -}; - -struct IDiscordNetwork { - enum EDiscordResult (*destroy)(struct IDiscordNetwork* network); - enum EDiscordResult (*get_session_id)(struct IDiscordNetwork* network, DiscordNetworkSessionId* session_id); - enum EDiscordResult (*flush)(struct IDiscordNetwork* network); - enum EDiscordResult (*open_channel)(struct IDiscordNetwork* network, DiscordNetworkSessionId remote, DiscordNetworkChannelId channel); - enum EDiscordResult (*open_reliable_channel)(struct IDiscordNetwork* network, DiscordNetworkSessionId remote, DiscordNetworkChannelId channel); - enum EDiscordResult (*send)(struct IDiscordNetwork* network, DiscordNetworkSessionId remote, DiscordNetworkChannelId channel, DiscordNetworkData data, uint32_t data_length); - enum EDiscordResult (*close_channel)(struct IDiscordNetwork* network, DiscordNetworkSessionId remote, DiscordNetworkChannelId channel); -}; - -struct IDiscordOverlayEvents { - void (*on_overlay_locked)(void* event_data, int locked); -}; - -struct IDiscordOverlay { - enum EDiscordResult (*destroy)(struct IDiscordOverlay* overlay); - enum EDiscordResult (*is_enabled)(struct IDiscordOverlay* overlay, int* enabled); - enum EDiscordResult (*is_locked)(struct IDiscordOverlay* overlay, int* locked); - enum EDiscordResult (*set_locked)(struct IDiscordOverlay* overlay, int locked); - enum EDiscordResult (*open_activity_invite)(struct IDiscordOverlay* overlay, enum EDiscordActivityActionType type, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); -}; - -typedef void IDiscordStorageEvents; - -struct IDiscordStorage { - enum EDiscordResult (*destroy)(struct IDiscordStorage* storage); - enum EDiscordResult (*read)(struct IDiscordStorage* storage, DiscordStorageFileName name, DiscordStorageData data, uint32_t data_length, uint32_t* read); - enum EDiscordResult (*read_async)(struct IDiscordStorage* storage, DiscordStorageFileName name, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, DiscordStorageData data, uint32_t data_length)); - enum EDiscordResult (*read_async_partial)(struct IDiscordStorage* storage, DiscordStorageFileName name, uint64_t offset, uint64_t length, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result, DiscordStorageData data, uint32_t data_length)); - enum EDiscordResult (*write)(struct IDiscordStorage* storage, DiscordStorageFileName name, DiscordStorageData data, uint32_t data_length); - enum EDiscordResult (*write_async)(struct IDiscordStorage* storage, DiscordStorageFileName name, DiscordStorageData data, uint32_t data_length, void* callback_data, void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*delete_)(struct IDiscordStorage* storage, DiscordStorageFileName name); - enum EDiscordResult (*exists)(struct IDiscordStorage* storage, DiscordStorageFileName name, int* exists); - enum EDiscordResult (*count)(struct IDiscordStorage* storage, int32_t* count); - enum EDiscordResult (*stat)(struct IDiscordStorage* storage, DiscordStorageFileName name, struct DiscordFileStat* stat); - enum EDiscordResult (*stat_index)(struct IDiscordStorage* storage, int32_t index, struct DiscordFileStat* stat); -}; - -struct IDiscordCoreEvents { - void (*on_ready)(void* event_data); -}; - -struct IDiscordCore { - enum EDiscordResult (*destroy)(struct IDiscordCore* core); - enum EDiscordResult (*run_callbacks)(struct IDiscordCore* core); - enum EDiscordResult (*set_log_hook)(struct IDiscordCore* core, enum EDiscordLogLevel min_level, void* hook_data, void (*hook)(void* hook_data, enum EDiscordLogLevel level, const char* message)); - enum EDiscordResult (*create_application)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordApplicationEvents* events, void* event_data, struct IDiscordApplication** result); - enum EDiscordResult (*create_users)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordUsersEvents* events, void* event_data, struct IDiscordUsers** result); - enum EDiscordResult (*create_images)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordImagesEvents* events, void* event_data, struct IDiscordImages** result); - enum EDiscordResult (*create_activities)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordActivitiesEvents* events, void* event_data, struct IDiscordActivities** result); - enum EDiscordResult (*create_relationships)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordRelationshipsEvents* events, void* event_data, struct IDiscordRelationships** result); - enum EDiscordResult (*create_lobbies)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordLobbiesEvents* events, void* event_data, struct IDiscordLobbies** result); - enum EDiscordResult (*create_network)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordNetworkEvents* events, void* event_data, struct IDiscordNetwork** result); - enum EDiscordResult (*create_overlay)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordOverlayEvents* events, void* event_data, struct IDiscordOverlay** result); - enum EDiscordResult (*create_storage)(struct IDiscordCore* core, DiscordVersion version, struct IDiscordStorageEvents* events, void* event_data, struct IDiscordStorage** result); -}; - -struct DiscordCreateParams { - DiscordClientId client_id; - uint64_t flags; - struct IDiscordCoreEvents* events; - void* event_data; -}; - -enum EDiscordResult DiscordCreate(DiscordVersion version, struct DiscordCreateParams* params, struct IDiscordCore** result); - -#ifdef __cplusplus -} -#endif - -#endif \ No newline at end of file diff --git a/lib/windows/include/freetype/config/ftconfig.h b/lib/windows/include/freetype/config/ftconfig.h deleted file mode 100644 index 086db76..0000000 --- a/lib/windows/include/freetype/config/ftconfig.h +++ /dev/null @@ -1,467 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftconfig.h */ -/* */ -/* ANSI-specific configuration file (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This header file contains a number of macro definitions that are used */ - /* by the rest of the engine. Most of the macros here are automatically */ - /* determined at compile time, and you should not need to change it to */ - /* port FreeType, except to compile the library with a non-ANSI */ - /* compiler. */ - /* */ - /* Note however that if some specific modifications are needed, we */ - /* advise you to place a modified copy in your build directory. */ - /* */ - /* The build directory is usually `builds/<system>', and contains */ - /* system-specific files that are always included first when building */ - /* the library. */ - /* */ - /* This ANSI version should stay in `include/config/'. */ - /* */ - /*************************************************************************/ - -#ifndef __FTCONFIG_H__ -#define __FTCONFIG_H__ - -#include <ft2build.h> -#include FT_CONFIG_OPTIONS_H -#include FT_CONFIG_STANDARD_LIBRARY_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* PLATFORM-SPECIFIC CONFIGURATION MACROS */ - /* */ - /* These macros can be toggled to suit a specific system. The current */ - /* ones are defaults used to compile FreeType in an ANSI C environment */ - /* (16bit compilers are also supported). Copy this file to your own */ - /* `builds/<system>' directory, and edit it to port the engine. */ - /* */ - /*************************************************************************/ - - - /* There are systems (like the Texas Instruments 'C54x) where a `char' */ - /* has 16 bits. ANSI C says that sizeof(char) is always 1. Since an */ - /* `int' has 16 bits also for this system, sizeof(int) gives 1 which */ - /* is probably unexpected. */ - /* */ - /* `CHAR_BIT' (defined in limits.h) gives the number of bits in a */ - /* `char' type. */ - -#ifndef FT_CHAR_BIT -#define FT_CHAR_BIT CHAR_BIT -#endif - - - /* The size of an `int' type. */ -#if FT_UINT_MAX == 0xFFFFUL -#define FT_SIZEOF_INT (16 / FT_CHAR_BIT) -#elif FT_UINT_MAX == 0xFFFFFFFFUL -#define FT_SIZEOF_INT (32 / FT_CHAR_BIT) -#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL -#define FT_SIZEOF_INT (64 / FT_CHAR_BIT) -#else -#error "Unsupported size of `int' type!" -#endif - - /* The size of a `long' type. A five-byte `long' (as used e.g. on the */ - /* DM642) is recognized but avoided. */ -#if FT_ULONG_MAX == 0xFFFFFFFFUL -#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) -#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL -#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) -#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL -#define FT_SIZEOF_LONG (64 / FT_CHAR_BIT) -#else -#error "Unsupported size of `long' type!" -#endif - - - /* FT_UNUSED is a macro used to indicate that a given parameter is not */ - /* used -- this is only used to get rid of unpleasant compiler warnings */ -#ifndef FT_UNUSED -#define FT_UNUSED( arg ) ( (arg) = (arg) ) -#endif - - - /*************************************************************************/ - /* */ - /* AUTOMATIC CONFIGURATION MACROS */ - /* */ - /* These macros are computed from the ones defined above. Don't touch */ - /* their definition, unless you know precisely what you are doing. No */ - /* porter should need to mess with them. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Mac support */ - /* */ - /* This is the only necessary change, so it is defined here instead */ - /* providing a new configuration file. */ - /* */ -#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) ) - /* no Carbon frameworks for 64bit 10.4.x */ - /* AvailabilityMacros.h is available since Mac OS X 10.2, */ - /* so guess the system version by maximum errno before inclusion */ -#include <errno.h> -#ifdef ECANCELED /* defined since 10.2 */ -#include "AvailabilityMacros.h" -#endif -#if defined( __LP64__ ) && \ - ( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 ) -#undef FT_MACINTOSH -#endif - -#elif defined( __SC__ ) || defined( __MRC__ ) - /* Classic MacOS compilers */ -#include "ConditionalMacros.h" -#if TARGET_OS_MAC -#define FT_MACINTOSH 1 -#endif - -#endif - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Int16 */ - /* */ - /* <Description> */ - /* A typedef for a 16bit signed integer type. */ - /* */ - typedef signed short FT_Int16; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UInt16 */ - /* */ - /* <Description> */ - /* A typedef for a 16bit unsigned integer type. */ - /* */ - typedef unsigned short FT_UInt16; - - /* */ - - - /* this #if 0 ... #endif clause is for documentation purposes */ -#if 0 - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Int32 */ - /* */ - /* <Description> */ - /* A typedef for a 32bit signed integer type. The size depends on */ - /* the configuration. */ - /* */ - typedef signed XXX FT_Int32; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UInt32 */ - /* */ - /* A typedef for a 32bit unsigned integer type. The size depends on */ - /* the configuration. */ - /* */ - typedef unsigned XXX FT_UInt32; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Int64 */ - /* */ - /* A typedef for a 64bit signed integer type. The size depends on */ - /* the configuration. Only defined if there is real 64bit support; */ - /* otherwise, it gets emulated with a structure (if necessary). */ - /* */ - typedef signed XXX FT_Int64; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UInt64 */ - /* */ - /* A typedef for a 64bit unsigned integer type. The size depends on */ - /* the configuration. Only defined if there is real 64bit support; */ - /* otherwise, it gets emulated with a structure (if necessary). */ - /* */ - typedef unsigned XXX FT_UInt64; - - /* */ - -#endif - -#if FT_SIZEOF_INT == (32 / FT_CHAR_BIT) - - typedef signed int FT_Int32; - typedef unsigned int FT_UInt32; - -#elif FT_SIZEOF_LONG == (32 / FT_CHAR_BIT) - - typedef signed long FT_Int32; - typedef unsigned long FT_UInt32; - -#else -#error "no 32bit type found -- please check your configuration files" -#endif - - - /* look up an integer type that is at least 32 bits */ -#if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT) - - typedef int FT_Fast; - typedef unsigned int FT_UFast; - -#elif FT_SIZEOF_LONG >= (32 / FT_CHAR_BIT) - - typedef long FT_Fast; - typedef unsigned long FT_UFast; - -#endif - - - /* determine whether we have a 64-bit int type for platforms without */ - /* Autoconf */ -#if FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) - - /* FT_LONG64 must be defined if a 64-bit type is available */ -#define FT_LONG64 -#define FT_INT64 long -#define FT_UINT64 unsigned long - - /*************************************************************************/ - /* */ - /* A 64-bit data type may create compilation problems if you compile */ - /* in strict ANSI mode. To avoid them, we disable other 64-bit data */ - /* types if __STDC__ is defined. You can however ignore this rule */ - /* by defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */ - /* */ -#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 ) - -#if defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ - - /* this compiler provides the __int64 type */ -#define FT_LONG64 -#define FT_INT64 __int64 -#define FT_UINT64 unsigned __int64 - -#elif defined( __BORLANDC__ ) /* Borland C++ */ - - /* XXXX: We should probably check the value of __BORLANDC__ in order */ - /* to test the compiler version. */ - - /* this compiler provides the __int64 type */ -#define FT_LONG64 -#define FT_INT64 __int64 -#define FT_UINT64 unsigned __int64 - -#elif defined( __WATCOMC__ ) /* Watcom C++ */ - - /* Watcom doesn't provide 64-bit data types */ - -#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */ - -#define FT_LONG64 -#define FT_INT64 long long int -#define FT_UINT64 unsigned long long int - -#elif defined( __GNUC__ ) - - /* GCC provides the `long long' type */ -#define FT_LONG64 -#define FT_INT64 long long int -#define FT_UINT64 unsigned long long int - -#endif /* _MSC_VER */ - -#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */ - -#ifdef FT_LONG64 - typedef FT_INT64 FT_Int64; - typedef FT_UINT64 FT_UInt64; -#endif - - - /*************************************************************************/ - /* */ - /* miscellaneous */ - /* */ - /*************************************************************************/ - - -#define FT_BEGIN_STMNT do { -#define FT_END_STMNT } while ( 0 ) -#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT - - - /* typeof condition taken from gnulib's `intprops.h' header file */ -#if ( __GNUC__ >= 2 || \ - defined( __IBM__TYPEOF__ ) || \ - ( __SUNPRO_C >= 0x5110 && !__STDC__ ) ) -#define TYPEOF( type ) (__typeof__ (type)) -#else -#define TYPEOF( type ) /* empty */ -#endif - - -#ifdef FT_MAKE_OPTION_SINGLE_OBJECT - -#define FT_LOCAL( x ) static x -#define FT_LOCAL_DEF( x ) static x - -#else - -#ifdef __cplusplus -#define FT_LOCAL( x ) extern "C" x -#define FT_LOCAL_DEF( x ) extern "C" x -#else -#define FT_LOCAL( x ) extern x -#define FT_LOCAL_DEF( x ) x -#endif - -#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */ - -#define FT_LOCAL_ARRAY( x ) extern const x -#define FT_LOCAL_ARRAY_DEF( x ) const x - - -#ifndef FT_BASE - -#ifdef __cplusplus -#define FT_BASE( x ) extern "C" x -#else -#define FT_BASE( x ) extern x -#endif - -#endif /* !FT_BASE */ - - -#ifndef FT_BASE_DEF - -#ifdef __cplusplus -#define FT_BASE_DEF( x ) x -#else -#define FT_BASE_DEF( x ) x -#endif - -#endif /* !FT_BASE_DEF */ - - -#ifndef FT_EXPORT - -#ifdef __cplusplus -#define FT_EXPORT( x ) extern "C" x -#else -#define FT_EXPORT( x ) extern x -#endif - -#endif /* !FT_EXPORT */ - - -#ifndef FT_EXPORT_DEF - -#ifdef __cplusplus -#define FT_EXPORT_DEF( x ) extern "C" x -#else -#define FT_EXPORT_DEF( x ) extern x -#endif - -#endif /* !FT_EXPORT_DEF */ - - -#ifndef FT_EXPORT_VAR - -#ifdef __cplusplus -#define FT_EXPORT_VAR( x ) extern "C" x -#else -#define FT_EXPORT_VAR( x ) extern x -#endif - -#endif /* !FT_EXPORT_VAR */ - - /* The following macros are needed to compile the library with a */ - /* C++ compiler and with 16bit compilers. */ - /* */ - - /* This is special. Within C++, you must specify `extern "C"' for */ - /* functions which are used via function pointers, and you also */ - /* must do that for structures which contain function pointers to */ - /* assure C linkage -- it's not possible to have (local) anonymous */ - /* functions which are accessed by (global) function pointers. */ - /* */ - /* */ - /* FT_CALLBACK_DEF is used to _define_ a callback function. */ - /* */ - /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */ - /* contains pointers to callback functions. */ - /* */ - /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */ - /* that contains pointers to callback functions. */ - /* */ - /* */ - /* Some 16bit compilers have to redefine these macros to insert */ - /* the infamous `_cdecl' or `__fastcall' declarations. */ - /* */ -#ifndef FT_CALLBACK_DEF -#ifdef __cplusplus -#define FT_CALLBACK_DEF( x ) extern "C" x -#else -#define FT_CALLBACK_DEF( x ) static x -#endif -#endif /* FT_CALLBACK_DEF */ - -#ifndef FT_CALLBACK_TABLE -#ifdef __cplusplus -#define FT_CALLBACK_TABLE extern "C" -#define FT_CALLBACK_TABLE_DEF extern "C" -#else -#define FT_CALLBACK_TABLE extern -#define FT_CALLBACK_TABLE_DEF /* nothing */ -#endif -#endif /* FT_CALLBACK_TABLE */ - - -FT_END_HEADER - - -#endif /* __FTCONFIG_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/config/ftheader.h b/lib/windows/include/freetype/config/ftheader.h deleted file mode 100644 index 55f833d..0000000 --- a/lib/windows/include/freetype/config/ftheader.h +++ /dev/null @@ -1,834 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftheader.h */ -/* */ -/* Build macros of the FreeType 2 library. */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -#ifndef __FT_HEADER_H__ -#define __FT_HEADER_H__ - - - /*@***********************************************************************/ - /* */ - /* <Macro> */ - /* FT_BEGIN_HEADER */ - /* */ - /* <Description> */ - /* This macro is used in association with @FT_END_HEADER in header */ - /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }' block when included from a */ - /* C++ compiler. */ - /* */ -#ifdef __cplusplus -#define FT_BEGIN_HEADER extern "C" { -#else -#define FT_BEGIN_HEADER /* nothing */ -#endif - - - /*@***********************************************************************/ - /* */ - /* <Macro> */ - /* FT_END_HEADER */ - /* */ - /* <Description> */ - /* This macro is used in association with @FT_BEGIN_HEADER in header */ - /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }' block when included from a */ - /* C++ compiler. */ - /* */ -#ifdef __cplusplus -#define FT_END_HEADER } -#else -#define FT_END_HEADER /* nothing */ -#endif - - - /*************************************************************************/ - /* */ - /* Aliases for the FreeType 2 public and configuration files. */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* <Section> */ - /* header_file_macros */ - /* */ - /* <Title> */ - /* Header File Macros */ - /* */ - /* <Abstract> */ - /* Macro definitions used to #include specific header files. */ - /* */ - /* <Description> */ - /* The following macros are defined to the name of specific */ - /* FreeType~2 header files. They can be used directly in #include */ - /* statements as in: */ - /* */ - /* { */ - /* #include FT_FREETYPE_H */ - /* #include FT_MULTIPLE_MASTERS_H */ - /* #include FT_GLYPH_H */ - /* } */ - /* */ - /* There are several reasons why we are now using macros to name */ - /* public header files. The first one is that such macros are not */ - /* limited to the infamous 8.3~naming rule required by DOS (and */ - /* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */ - /* */ - /* The second reason is that it allows for more flexibility in the */ - /* way FreeType~2 is installed on a given system. */ - /* */ - /*************************************************************************/ - - - /* configuration files */ - - /************************************************************************* - * - * @macro: - * FT_CONFIG_CONFIG_H - * - * @description: - * A macro used in #include statements to name the file containing - * FreeType~2 configuration data. - * - */ -#ifndef FT_CONFIG_CONFIG_H -#define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h> -#endif - - - /************************************************************************* - * - * @macro: - * FT_CONFIG_STANDARD_LIBRARY_H - * - * @description: - * A macro used in #include statements to name the file containing - * FreeType~2 interface to the standard C library functions. - * - */ -#ifndef FT_CONFIG_STANDARD_LIBRARY_H -#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h> -#endif - - - /************************************************************************* - * - * @macro: - * FT_CONFIG_OPTIONS_H - * - * @description: - * A macro used in #include statements to name the file containing - * FreeType~2 project-specific configuration options. - * - */ -#ifndef FT_CONFIG_OPTIONS_H -#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h> -#endif - - - /************************************************************************* - * - * @macro: - * FT_CONFIG_MODULES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * list of FreeType~2 modules that are statically linked to new library - * instances in @FT_Init_FreeType. - * - */ -#ifndef FT_CONFIG_MODULES_H -#define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h> -#endif - - /* */ - - /* public headers */ - - /************************************************************************* - * - * @macro: - * FT_FREETYPE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * base FreeType~2 API. - * - */ -#define FT_FREETYPE_H <freetype/freetype.h> - - - /************************************************************************* - * - * @macro: - * FT_ERRORS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * list of FreeType~2 error codes (and messages). - * - * It is included by @FT_FREETYPE_H. - * - */ -#define FT_ERRORS_H <freetype/fterrors.h> - - - /************************************************************************* - * - * @macro: - * FT_MODULE_ERRORS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * list of FreeType~2 module error offsets (and messages). - * - */ -#define FT_MODULE_ERRORS_H <freetype/ftmoderr.h> - - - /************************************************************************* - * - * @macro: - * FT_SYSTEM_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 interface to low-level operations (i.e., memory management - * and stream i/o). - * - * It is included by @FT_FREETYPE_H. - * - */ -#define FT_SYSTEM_H <freetype/ftsystem.h> - - - /************************************************************************* - * - * @macro: - * FT_IMAGE_H - * - * @description: - * A macro used in #include statements to name the file containing type - * definitions related to glyph images (i.e., bitmaps, outlines, - * scan-converter parameters). - * - * It is included by @FT_FREETYPE_H. - * - */ -#define FT_IMAGE_H <freetype/ftimage.h> - - - /************************************************************************* - * - * @macro: - * FT_TYPES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * basic data types defined by FreeType~2. - * - * It is included by @FT_FREETYPE_H. - * - */ -#define FT_TYPES_H <freetype/fttypes.h> - - - /************************************************************************* - * - * @macro: - * FT_LIST_H - * - * @description: - * A macro used in #include statements to name the file containing the - * list management API of FreeType~2. - * - * (Most applications will never need to include this file.) - * - */ -#define FT_LIST_H <freetype/ftlist.h> - - - /************************************************************************* - * - * @macro: - * FT_OUTLINE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * scalable outline management API of FreeType~2. - * - */ -#define FT_OUTLINE_H <freetype/ftoutln.h> - - - /************************************************************************* - * - * @macro: - * FT_SIZES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API which manages multiple @FT_Size objects per face. - * - */ -#define FT_SIZES_H <freetype/ftsizes.h> - - - /************************************************************************* - * - * @macro: - * FT_MODULE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * module management API of FreeType~2. - * - */ -#define FT_MODULE_H <freetype/ftmodapi.h> - - - /************************************************************************* - * - * @macro: - * FT_RENDER_H - * - * @description: - * A macro used in #include statements to name the file containing the - * renderer module management API of FreeType~2. - * - */ -#define FT_RENDER_H <freetype/ftrender.h> - - - /************************************************************************* - * - * @macro: - * FT_AUTOHINTER_H - * - * @description: - * A macro used in #include statements to name the file containing - * structures and macros related to the auto-hinting module. - * - */ -#define FT_AUTOHINTER_H <freetype/ftautoh.h> - - - /************************************************************************* - * - * @macro: - * FT_CFF_DRIVER_H - * - * @description: - * A macro used in #include statements to name the file containing - * structures and macros related to the CFF driver module. - * - */ -#define FT_CFF_DRIVER_H <freetype/ftcffdrv.h> - - - /************************************************************************* - * - * @macro: - * FT_TRUETYPE_DRIVER_H - * - * @description: - * A macro used in #include statements to name the file containing - * structures and macros related to the TrueType driver module. - * - */ -#define FT_TRUETYPE_DRIVER_H <freetype/ftttdrv.h> - - - /************************************************************************* - * - * @macro: - * FT_TYPE1_TABLES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * types and API specific to the Type~1 format. - * - */ -#define FT_TYPE1_TABLES_H <freetype/t1tables.h> - - - /************************************************************************* - * - * @macro: - * FT_TRUETYPE_IDS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * enumeration values which identify name strings, languages, encodings, - * etc. This file really contains a _large_ set of constant macro - * definitions, taken from the TrueType and OpenType specifications. - * - */ -#define FT_TRUETYPE_IDS_H <freetype/ttnameid.h> - - - /************************************************************************* - * - * @macro: - * FT_TRUETYPE_TABLES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * types and API specific to the TrueType (as well as OpenType) format. - * - */ -#define FT_TRUETYPE_TABLES_H <freetype/tttables.h> - - - /************************************************************************* - * - * @macro: - * FT_TRUETYPE_TAGS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of TrueType four-byte `tags' which identify blocks in - * SFNT-based font formats (i.e., TrueType and OpenType). - * - */ -#define FT_TRUETYPE_TAGS_H <freetype/tttags.h> - - - /************************************************************************* - * - * @macro: - * FT_BDF_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which accesses BDF-specific strings from a - * face. - * - */ -#define FT_BDF_H <freetype/ftbdf.h> - - - /************************************************************************* - * - * @macro: - * FT_CID_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which access CID font information from a - * face. - * - */ -#define FT_CID_H <freetype/ftcid.h> - - - /************************************************************************* - * - * @macro: - * FT_GZIP_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which supports gzip-compressed files. - * - */ -#define FT_GZIP_H <freetype/ftgzip.h> - - - /************************************************************************* - * - * @macro: - * FT_LZW_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which supports LZW-compressed files. - * - */ -#define FT_LZW_H <freetype/ftlzw.h> - - - /************************************************************************* - * - * @macro: - * FT_BZIP2_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which supports bzip2-compressed files. - * - */ -#define FT_BZIP2_H <freetype/ftbzip2.h> - - - /************************************************************************* - * - * @macro: - * FT_WINFONTS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * definitions of an API which supports Windows FNT files. - * - */ -#define FT_WINFONTS_H <freetype/ftwinfnt.h> - - - /************************************************************************* - * - * @macro: - * FT_GLYPH_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API of the optional glyph management component. - * - */ -#define FT_GLYPH_H <freetype/ftglyph.h> - - - /************************************************************************* - * - * @macro: - * FT_BITMAP_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API of the optional bitmap conversion component. - * - */ -#define FT_BITMAP_H <freetype/ftbitmap.h> - - - /************************************************************************* - * - * @macro: - * FT_BBOX_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API of the optional exact bounding box computation routines. - * - */ -#define FT_BBOX_H <freetype/ftbbox.h> - - - /************************************************************************* - * - * @macro: - * FT_CACHE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * API of the optional FreeType~2 cache sub-system. - * - */ -#define FT_CACHE_H <freetype/ftcache.h> - - - /************************************************************************* - * - * @macro: - * FT_CACHE_IMAGE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * `glyph image' API of the FreeType~2 cache sub-system. - * - * It is used to define a cache for @FT_Glyph elements. You can also - * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to - * store small glyph bitmaps, as it will use less memory. - * - * This macro is deprecated. Simply include @FT_CACHE_H to have all - * glyph image-related cache declarations. - * - */ -#define FT_CACHE_IMAGE_H FT_CACHE_H - - - /************************************************************************* - * - * @macro: - * FT_CACHE_SMALL_BITMAPS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * `small bitmaps' API of the FreeType~2 cache sub-system. - * - * It is used to define a cache for small glyph bitmaps in a relatively - * memory-efficient way. You can also use the API defined in - * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, - * including scalable outlines. - * - * This macro is deprecated. Simply include @FT_CACHE_H to have all - * small bitmaps-related cache declarations. - * - */ -#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H - - - /************************************************************************* - * - * @macro: - * FT_CACHE_CHARMAP_H - * - * @description: - * A macro used in #include statements to name the file containing the - * `charmap' API of the FreeType~2 cache sub-system. - * - * This macro is deprecated. Simply include @FT_CACHE_H to have all - * charmap-based cache declarations. - * - */ -#define FT_CACHE_CHARMAP_H FT_CACHE_H - - - /************************************************************************* - * - * @macro: - * FT_MAC_H - * - * @description: - * A macro used in #include statements to name the file containing the - * Macintosh-specific FreeType~2 API. The latter is used to access - * fonts embedded in resource forks. - * - * This header file must be explicitly included by client applications - * compiled on the Mac (note that the base API still works though). - * - */ -#define FT_MAC_H <freetype/ftmac.h> - - - /************************************************************************* - * - * @macro: - * FT_MULTIPLE_MASTERS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * optional multiple-masters management API of FreeType~2. - * - */ -#define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h> - - - /************************************************************************* - * - * @macro: - * FT_SFNT_NAMES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * optional FreeType~2 API which accesses embedded `name' strings in - * SFNT-based font formats (i.e., TrueType and OpenType). - * - */ -#define FT_SFNT_NAMES_H <freetype/ftsnames.h> - - - /************************************************************************* - * - * @macro: - * FT_OPENTYPE_VALIDATE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * optional FreeType~2 API which validates OpenType tables (BASE, GDEF, - * GPOS, GSUB, JSTF). - * - */ -#define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h> - - - /************************************************************************* - * - * @macro: - * FT_GX_VALIDATE_H - * - * @description: - * A macro used in #include statements to name the file containing the - * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat, - * mort, morx, bsln, just, kern, opbd, trak, prop). - * - */ -#define FT_GX_VALIDATE_H <freetype/ftgxval.h> - - - /************************************************************************* - * - * @macro: - * FT_PFR_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which accesses PFR-specific data. - * - */ -#define FT_PFR_H <freetype/ftpfr.h> - - - /************************************************************************* - * - * @macro: - * FT_STROKER_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which provides functions to stroke outline paths. - */ -#define FT_STROKER_H <freetype/ftstroke.h> - - - /************************************************************************* - * - * @macro: - * FT_SYNTHESIS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs artificial obliquing and emboldening. - */ -#define FT_SYNTHESIS_H <freetype/ftsynth.h> - - - /************************************************************************* - * - * @macro: - * FT_FONT_FORMATS_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which provides functions specific to font formats. - */ -#define FT_FONT_FORMATS_H <freetype/ftfntfmt.h> - - /* deprecated */ -#define FT_XFREE86_H FT_FONT_FORMATS_H - - - /************************************************************************* - * - * @macro: - * FT_TRIGONOMETRY_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs trigonometric computations (e.g., - * cosines and arc tangents). - */ -#define FT_TRIGONOMETRY_H <freetype/fttrigon.h> - - - /************************************************************************* - * - * @macro: - * FT_LCD_FILTER_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. - */ -#define FT_LCD_FILTER_H <freetype/ftlcdfil.h> - - - /************************************************************************* - * - * @macro: - * FT_UNPATENTED_HINTING_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. - */ -#define FT_UNPATENTED_HINTING_H <freetype/ttunpat.h> - - - /************************************************************************* - * - * @macro: - * FT_INCREMENTAL_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which performs color filtering for subpixel rendering. - */ -#define FT_INCREMENTAL_H <freetype/ftincrem.h> - - - /************************************************************************* - * - * @macro: - * FT_GASP_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which returns entries from the TrueType GASP table. - */ -#define FT_GASP_H <freetype/ftgasp.h> - - - /************************************************************************* - * - * @macro: - * FT_ADVANCES_H - * - * @description: - * A macro used in #include statements to name the file containing the - * FreeType~2 API which returns individual and ranged glyph advances. - */ -#define FT_ADVANCES_H <freetype/ftadvanc.h> - - - /* */ - -#define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h> - - - /* The internals of the cache sub-system are no longer exposed. We */ - /* default to FT_CACHE_H at the moment just in case, but we know of */ - /* no rogue client that uses them. */ - /* */ -#define FT_CACHE_MANAGER_H <freetype/ftcache.h> -#define FT_CACHE_INTERNAL_MRU_H <freetype/ftcache.h> -#define FT_CACHE_INTERNAL_MANAGER_H <freetype/ftcache.h> -#define FT_CACHE_INTERNAL_CACHE_H <freetype/ftcache.h> -#define FT_CACHE_INTERNAL_GLYPH_H <freetype/ftcache.h> -#define FT_CACHE_INTERNAL_IMAGE_H <freetype/ftcache.h> -#define FT_CACHE_INTERNAL_SBITS_H <freetype/ftcache.h> - - -#define FT_INCREMENTAL_H <freetype/ftincrem.h> - -#define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h> - - - /* - * Include internal headers definitions from <internal/...> - * only when building the library. - */ -#ifdef FT2_BUILD_LIBRARY -#define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h> -#include FT_INTERNAL_INTERNAL_H -#endif /* FT2_BUILD_LIBRARY */ - - -#endif /* __FT2_BUILD_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/config/ftmodule.h b/lib/windows/include/freetype/config/ftmodule.h deleted file mode 100644 index 76d271a..0000000 --- a/lib/windows/include/freetype/config/ftmodule.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * This file registers the FreeType modules compiled into the library. - * - * If you use GNU make, this file IS NOT USED! Instead, it is created in - * the objects directory (normally `<topdir>/objs/') based on information - * from `<topdir>/modules.cfg'. - * - * Please read `docs/INSTALL.ANY' and `docs/CUSTOMIZE' how to compile - * FreeType without GNU make. - * - */ - -FT_USE_MODULE( FT_Module_Class, autofit_module_class ) -FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class ) -FT_USE_MODULE( FT_Module_Class, psaux_module_class ) -FT_USE_MODULE( FT_Module_Class, psnames_module_class ) -FT_USE_MODULE( FT_Module_Class, pshinter_module_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class ) -FT_USE_MODULE( FT_Module_Class, sfnt_module_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class ) -FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class ) -FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class ) - -/* EOF */ diff --git a/lib/windows/include/freetype/config/ftoption.h b/lib/windows/include/freetype/config/ftoption.h deleted file mode 100644 index 1536c72..0000000 --- a/lib/windows/include/freetype/config/ftoption.h +++ /dev/null @@ -1,886 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftoption.h */ -/* */ -/* User-selectable configuration macros (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTOPTION_H__ -#define __FTOPTION_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* USER-SELECTABLE CONFIGURATION MACROS */ - /* */ - /* This file contains the default configuration macro definitions for */ - /* a standard build of the FreeType library. There are three ways to */ - /* use this file to build project-specific versions of the library: */ - /* */ - /* - You can modify this file by hand, but this is not recommended in */ - /* cases where you would like to build several versions of the */ - /* library from a single source directory. */ - /* */ - /* - You can put a copy of this file in your build directory, more */ - /* precisely in `$BUILD/config/ftoption.h', where `$BUILD' is the */ - /* name of a directory that is included _before_ the FreeType include */ - /* path during compilation. */ - /* */ - /* The default FreeType Makefiles and Jamfiles use the build */ - /* directory `builds/<system>' by default, but you can easily change */ - /* that for your own projects. */ - /* */ - /* - Copy the file <ft2build.h> to `$BUILD/ft2build.h' and modify it */ - /* slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to */ - /* locate this file during the build. For example, */ - /* */ - /* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */ - /* #include <config/ftheader.h> */ - /* */ - /* will use `$BUILD/myftoptions.h' instead of this file for macro */ - /* definitions. */ - /* */ - /* Note also that you can similarly pre-define the macro */ - /* FT_CONFIG_MODULES_H used to locate the file listing of the modules */ - /* that are statically linked to the library at compile time. By */ - /* default, this file is <config/ftmodule.h>. */ - /* */ - /* We highly recommend using the third method whenever possible. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** G E N E R A L F R E E T Y P E 2 C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Uncomment the line below if you want to activate sub-pixel rendering */ - /* (a.k.a. LCD rendering, or ClearType) in this build of the library. */ - /* */ - /* Note that this feature is covered by several Microsoft patents */ - /* and should not be activated in any default build of the library. */ - /* */ - /* This macro has no impact on the FreeType API, only on its */ - /* _implementation_. For example, using FT_RENDER_MODE_LCD when calling */ - /* FT_Render_Glyph still generates a bitmap that is 3 times wider than */ - /* the original size in case this macro isn't defined; however, each */ - /* triplet of subpixels has R=G=B. */ - /* */ - /* This is done to allow FreeType clients to run unmodified, forcing */ - /* them to display normal gray-level anti-aliased glyphs. */ - /* */ -/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ - - - /*************************************************************************/ - /* */ - /* Many compilers provide a non-ANSI 64-bit data type that can be used */ - /* by FreeType to speed up some computations. However, this will create */ - /* some problems when compiling the library in strict ANSI mode. */ - /* */ - /* For this reason, the use of 64-bit integers is normally disabled when */ - /* the __STDC__ macro is defined. You can however disable this by */ - /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here. */ - /* */ - /* For most compilers, this will only create compilation warnings when */ - /* building the library. */ - /* */ - /* ObNote: The compiler-specific 64-bit integers are detected in the */ - /* file `ftconfig.h' either statically or through the */ - /* `configure' script on supported platforms. */ - /* */ -#undef FT_CONFIG_OPTION_FORCE_INT64 - - - /*************************************************************************/ - /* */ - /* If this macro is defined, do not try to use an assembler version of */ - /* performance-critical functions (e.g. FT_MulFix). You should only do */ - /* that to verify that the assembler function works properly, or to */ - /* execute benchmark tests of the various implementations. */ -/* #define FT_CONFIG_OPTION_NO_ASSEMBLER */ - - - /*************************************************************************/ - /* */ - /* If this macro is defined, try to use an inlined assembler version of */ - /* the `FT_MulFix' function, which is a `hotspot' when loading and */ - /* hinting glyphs, and which should be executed as fast as possible. */ - /* */ - /* Note that if your compiler or CPU is not supported, this will default */ - /* to the standard and portable implementation found in `ftcalc.c'. */ - /* */ -#define FT_CONFIG_OPTION_INLINE_MULFIX - - - /*************************************************************************/ - /* */ - /* LZW-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `compress' program. This is mostly used to parse many of the PCF */ - /* files that come with various X11 distributions. The implementation */ - /* uses NetBSD's `zopen' to partially uncompress the file on the fly */ - /* (see src/lzw/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -#define FT_CONFIG_OPTION_USE_LZW - - - /*************************************************************************/ - /* */ - /* Gzip-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `gzip' program. This is mostly used to parse many of the PCF files */ - /* that come with XFree86. The implementation uses `zlib' to */ - /* partially uncompress the file on the fly (see src/gzip/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. See also */ - /* the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below. */ - /* */ -#define FT_CONFIG_OPTION_USE_ZLIB - - - /*************************************************************************/ - /* */ - /* ZLib library selection */ - /* */ - /* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */ - /* It allows FreeType's `ftgzip' component to link to the system's */ - /* installation of the ZLib library. This is useful on systems like */ - /* Unix or VMS where it generally is already available. */ - /* */ - /* If you let it undefined, the component will use its own copy */ - /* of the zlib sources instead. These have been modified to be */ - /* included directly within the component and *not* export external */ - /* function names. This allows you to link any program with FreeType */ - /* _and_ ZLib without linking conflicts. */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ - - - /*************************************************************************/ - /* */ - /* Bzip2-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `bzip2' program. This is mostly used to parse many of the PCF */ - /* files that come with XFree86. The implementation uses `libbz2' to */ - /* partially uncompress the file on the fly (see src/bzip2/ftbzip2.c). */ - /* Contrary to gzip, bzip2 currently is not included and need to use */ - /* the system available bzip2 implementation. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -/* #define FT_CONFIG_OPTION_USE_BZIP2 */ - - - /*************************************************************************/ - /* */ - /* Define to disable the use of file stream functions and types, FILE, */ - /* fopen() etc. Enables the use of smaller system libraries on embedded */ - /* systems that have multiple system libraries, some with or without */ - /* file stream support, in the cases where file stream support is not */ - /* necessary such as memory loading of font files. */ - /* */ -/* #define FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT */ - - - /*************************************************************************/ - /* */ - /* PNG bitmap support. */ - /* */ - /* FreeType now handles loading color bitmap glyphs in the PNG format. */ - /* This requires help from the external libpng library. Uncompressed */ - /* color bitmaps do not need any external libraries and will be */ - /* supported regardless of this configuration. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -/* #define FT_CONFIG_OPTION_USE_PNG */ - - - /*************************************************************************/ - /* */ - /* HarfBuzz support. */ - /* */ - /* FreeType uses the HarfBuzz library to improve auto-hinting of */ - /* OpenType fonts. If available, many glyphs not directly addressable */ - /* by a font's character map will be hinted also. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -/* #define FT_CONFIG_OPTION_USE_HARFBUZZ */ - - - /*************************************************************************/ - /* */ - /* DLL export compilation */ - /* */ - /* When compiling FreeType as a DLL, some systems/compilers need a */ - /* special keyword in front OR after the return type of function */ - /* declarations. */ - /* */ - /* Two macros are used within the FreeType source code to define */ - /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */ - /* */ - /* FT_EXPORT( return_type ) */ - /* */ - /* is used in a function declaration, as in */ - /* */ - /* FT_EXPORT( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ); */ - /* */ - /* */ - /* FT_EXPORT_DEF( return_type ) */ - /* */ - /* is used in a function definition, as in */ - /* */ - /* FT_EXPORT_DEF( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ) */ - /* { */ - /* ... some code ... */ - /* return FT_Err_Ok; */ - /* } */ - /* */ - /* You can provide your own implementation of FT_EXPORT and */ - /* FT_EXPORT_DEF here if you want. If you leave them undefined, they */ - /* will be later automatically defined as `extern return_type' to */ - /* allow normal compilation. */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_EXPORT(x) extern x */ -/* #define FT_EXPORT_DEF(x) x */ - - - /*************************************************************************/ - /* */ - /* Glyph Postscript Names handling */ - /* */ - /* By default, FreeType 2 is compiled with the `psnames' module. This */ - /* module is in charge of converting a glyph name string into a */ - /* Unicode value, or return a Macintosh standard glyph name for the */ - /* use with the TrueType `post' table. */ - /* */ - /* Undefine this macro if you do not want `psnames' compiled in your */ - /* build of FreeType. This has the following effects: */ - /* */ - /* - The TrueType driver will provide its own set of glyph names, */ - /* if you build it to support postscript names in the TrueType */ - /* `post' table. */ - /* */ - /* - The Type 1 driver will not be able to synthesize a Unicode */ - /* charmap out of the glyphs found in the fonts. */ - /* */ - /* You would normally undefine this configuration macro when building */ - /* a version of FreeType that doesn't contain a Type 1 or CFF driver. */ - /* */ -#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES - - - /*************************************************************************/ - /* */ - /* Postscript Names to Unicode Values support */ - /* */ - /* By default, FreeType 2 is built with the `PSNames' module compiled */ - /* in. Among other things, the module is used to convert a glyph name */ - /* into a Unicode value. This is especially useful in order to */ - /* synthesize on the fly a Unicode charmap from the CFF/Type 1 driver */ - /* through a big table named the `Adobe Glyph List' (AGL). */ - /* */ - /* Undefine this macro if you do not want the Adobe Glyph List */ - /* compiled in your `PSNames' module. The Type 1 driver will not be */ - /* able to synthesize a Unicode charmap out of the glyphs found in the */ - /* fonts. */ - /* */ -#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST - - - /*************************************************************************/ - /* */ - /* Support for Mac fonts */ - /* */ - /* Define this macro if you want support for outline fonts in Mac */ - /* format (mac dfont, mac resource, macbinary containing a mac */ - /* resource) on non-Mac platforms. */ - /* */ - /* Note that the `FOND' resource isn't checked. */ - /* */ -#define FT_CONFIG_OPTION_MAC_FONTS - - - /*************************************************************************/ - /* */ - /* Guessing methods to access embedded resource forks */ - /* */ - /* Enable extra Mac fonts support on non-Mac platforms (e.g. */ - /* GNU/Linux). */ - /* */ - /* Resource forks which include fonts data are stored sometimes in */ - /* locations which users or developers don't expected. In some cases, */ - /* resource forks start with some offset from the head of a file. In */ - /* other cases, the actual resource fork is stored in file different */ - /* from what the user specifies. If this option is activated, */ - /* FreeType tries to guess whether such offsets or different file */ - /* names must be used. */ - /* */ - /* Note that normal, direct access of resource forks is controlled via */ - /* the FT_CONFIG_OPTION_MAC_FONTS option. */ - /* */ -#ifdef FT_CONFIG_OPTION_MAC_FONTS -#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK -#endif - - - /*************************************************************************/ - /* */ - /* Allow the use of FT_Incremental_Interface to load typefaces that */ - /* contain no glyph data, but supply it via a callback function. */ - /* This is required by clients supporting document formats which */ - /* supply font data incrementally as the document is parsed, such */ - /* as the Ghostscript interpreter for the PostScript language. */ - /* */ -#define FT_CONFIG_OPTION_INCREMENTAL - - - /*************************************************************************/ - /* */ - /* The size in bytes of the render pool used by the scan-line converter */ - /* to do all of its work. */ - /* */ -#define FT_RENDER_POOL_SIZE 16384L - - - /*************************************************************************/ - /* */ - /* FT_MAX_MODULES */ - /* */ - /* The maximum number of modules that can be registered in a single */ - /* FreeType library object. 32 is the default. */ - /* */ -#define FT_MAX_MODULES 32 - - - /*************************************************************************/ - /* */ - /* Debug level */ - /* */ - /* FreeType can be compiled in debug or trace mode. In debug mode, */ - /* errors are reported through the `ftdebug' component. In trace */ - /* mode, additional messages are sent to the standard output during */ - /* execution. */ - /* */ - /* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */ - /* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */ - /* */ - /* Don't define any of these macros to compile in `release' mode! */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_DEBUG_LEVEL_ERROR */ -/* #define FT_DEBUG_LEVEL_TRACE */ - - - /*************************************************************************/ - /* */ - /* Autofitter debugging */ - /* */ - /* If FT_DEBUG_AUTOFIT is defined, FreeType provides some means to */ - /* control the autofitter behaviour for debugging purposes with global */ - /* boolean variables (consequently, you should *never* enable this */ - /* while compiling in `release' mode): */ - /* */ - /* _af_debug_disable_horz_hints */ - /* _af_debug_disable_vert_hints */ - /* _af_debug_disable_blue_hints */ - /* */ - /* Additionally, the following functions provide dumps of various */ - /* internal autofit structures to stdout (using `printf'): */ - /* */ - /* af_glyph_hints_dump_points */ - /* af_glyph_hints_dump_segments */ - /* af_glyph_hints_dump_edges */ - /* af_glyph_hints_get_num_segments */ - /* af_glyph_hints_get_segment_offset */ - /* */ - /* As an argument, they use another global variable: */ - /* */ - /* _af_debug_hints */ - /* */ - /* Please have a look at the `ftgrid' demo program to see how those */ - /* variables and macros should be used. */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_DEBUG_AUTOFIT */ - - - /*************************************************************************/ - /* */ - /* Memory Debugging */ - /* */ - /* FreeType now comes with an integrated memory debugger that is */ - /* capable of detecting simple errors like memory leaks or double */ - /* deletes. To compile it within your build of the library, you */ - /* should define FT_DEBUG_MEMORY here. */ - /* */ - /* Note that the memory debugger is only activated at runtime when */ - /* when the _environment_ variable `FT2_DEBUG_MEMORY' is defined also! */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -/* #define FT_DEBUG_MEMORY */ - - - /*************************************************************************/ - /* */ - /* Module errors */ - /* */ - /* If this macro is set (which is _not_ the default), the higher byte */ - /* of an error code gives the module in which the error has occurred, */ - /* while the lower byte is the real error code. */ - /* */ - /* Setting this macro makes sense for debugging purposes only, since */ - /* it would break source compatibility of certain programs that use */ - /* FreeType 2. */ - /* */ - /* More details can be found in the files ftmoderr.h and fterrors.h. */ - /* */ -#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS - - - /*************************************************************************/ - /* */ - /* Position Independent Code */ - /* */ - /* If this macro is set (which is _not_ the default), FreeType2 will */ - /* avoid creating constants that require address fixups. Instead the */ - /* constants will be moved into a struct and additional intialization */ - /* code will be used. */ - /* */ - /* Setting this macro is needed for systems that prohibit address */ - /* fixups, such as BREW. */ - /* */ -/* #define FT_CONFIG_OPTION_PIC */ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** S F N T D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support */ - /* embedded bitmaps in all formats using the SFNT module (namely */ - /* TrueType & OpenType). */ - /* */ -#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to */ - /* load and enumerate the glyph Postscript names in a TrueType or */ - /* OpenType file. */ - /* */ - /* Note that when you do not compile the `PSNames' module by undefining */ - /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will */ - /* contain additional code used to read the PS Names table from a font. */ - /* */ - /* (By default, the module uses `PSNames' to extract glyph names.) */ - /* */ -#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to */ - /* access the internal name table in a SFNT-based format like TrueType */ - /* or OpenType. The name table contains various strings used to */ - /* describe the font, like family name, copyright, version, etc. It */ - /* does not contain any glyph name though. */ - /* */ - /* Accessing SFNT names is done through the functions declared in */ - /* `ftsnames.h'. */ - /* */ -#define TT_CONFIG_OPTION_SFNT_NAMES - - - /*************************************************************************/ - /* */ - /* TrueType CMap support */ - /* */ - /* Here you can fine-tune which TrueType CMap table format shall be */ - /* supported. */ -#define TT_CONFIG_CMAP_FORMAT_0 -#define TT_CONFIG_CMAP_FORMAT_2 -#define TT_CONFIG_CMAP_FORMAT_4 -#define TT_CONFIG_CMAP_FORMAT_6 -#define TT_CONFIG_CMAP_FORMAT_8 -#define TT_CONFIG_CMAP_FORMAT_10 -#define TT_CONFIG_CMAP_FORMAT_12 -#define TT_CONFIG_CMAP_FORMAT_13 -#define TT_CONFIG_CMAP_FORMAT_14 - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** T R U E T Y P E D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */ - /* a bytecode interpreter in the TrueType driver. */ - /* */ - /* By undefining this, you will only compile the code necessary to load */ - /* TrueType glyphs without hinting. */ - /* */ - /* Do not #undef this macro here, since the build system might */ - /* define it for certain configurations only. */ - /* */ -#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_SUBPIXEL_HINTING if you want to compile */ - /* EXPERIMENTAL subpixel hinting support into the TrueType driver. This */ - /* replaces the native TrueType hinting mechanism when anything but */ - /* FT_RENDER_MODE_MONO is requested. */ - /* */ - /* Enabling this causes the TrueType driver to ignore instructions under */ - /* certain conditions. This is done in accordance with the guide here, */ - /* with some minor differences: */ - /* */ - /* http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */ - /* */ - /* By undefining this, you only compile the code necessary to hint */ - /* TrueType glyphs with native TT hinting. */ - /* */ - /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be */ - /* defined. */ - /* */ -/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING */ - - - /*************************************************************************/ - /* */ - /* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */ - /* of the TrueType bytecode interpreter is used that doesn't implement */ - /* any of the patented opcodes and algorithms. The patents related to */ - /* TrueType hinting have expired worldwide since May 2010; this option */ - /* is now deprecated. */ - /* */ - /* Note that the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* */ - /* if you define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, */ - /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */ - /* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */ - /* */ - /* This macro is only useful for a small number of font files (mostly */ - /* for Asian scripts) that require bytecode interpretation to properly */ - /* load glyphs. For all other fonts, this produces unpleasant results, */ - /* thus the unpatented interpreter is never used to load glyphs from */ - /* TrueType fonts unless one of the following two options is used. */ - /* */ - /* - The unpatented interpreter is explicitly activated by the user */ - /* through the FT_PARAM_TAG_UNPATENTED_HINTING parameter tag */ - /* when opening the FT_Face. */ - /* */ - /* - FreeType detects that the FT_Face corresponds to one of the */ - /* `trick' fonts (e.g., `Mingliu') it knows about. The font engine */ - /* contains a hard-coded list of font names and other matching */ - /* parameters (see function `tt_face_init' in file */ - /* `src/truetype/ttobjs.c'). */ - /* */ - /* Here a sample code snippet for using FT_PARAM_TAG_UNPATENTED_HINTING. */ - /* */ - /* { */ - /* FT_Parameter parameter; */ - /* FT_Open_Args open_args; */ - /* */ - /* */ - /* parameter.tag = FT_PARAM_TAG_UNPATENTED_HINTING; */ - /* */ - /* open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; */ - /* open_args.pathname = my_font_pathname; */ - /* open_args.num_params = 1; */ - /* open_args.params = ¶meter; */ - /* */ - /* error = FT_Open_Face( library, &open_args, index, &face ); */ - /* ... */ - /* } */ - /* */ -/* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ - /* TrueType glyph loader to use Apple's definition of how to handle */ - /* component offsets in composite glyphs. */ - /* */ - /* Apple and MS disagree on the default behavior of component offsets */ - /* in composites. Apple says that they should be scaled by the scaling */ - /* factors in the transformation matrix (roughly, it's more complex) */ - /* while MS says they should not. OpenType defines two bits in the */ - /* composite flags array which can be used to disambiguate, but old */ - /* fonts will not have them. */ - /* */ - /* http://www.microsoft.com/typography/otspec/glyf.htm */ - /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html */ - /* */ -#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_GX_VAR_SUPPORT if you want to include */ - /* support for Apple's distortable font technology (fvar, gvar, cvar, */ - /* and avar tables). This has many similarities to Type 1 Multiple */ - /* Masters support. */ - /* */ -#define TT_CONFIG_OPTION_GX_VAR_SUPPORT - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_BDF if you want to include support for */ - /* an embedded `BDF ' table within SFNT-based bitmap formats. */ - /* */ -#define TT_CONFIG_OPTION_BDF - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* T1_MAX_DICT_DEPTH is the maximum depth of nest dictionaries and */ - /* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is */ - /* required. */ - /* */ -#define T1_MAX_DICT_DEPTH 5 - - - /*************************************************************************/ - /* */ - /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ - /* calls during glyph loading. */ - /* */ -#define T1_MAX_SUBRS_CALLS 16 - - - /*************************************************************************/ - /* */ - /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ - /* minimum of 16 is required. */ - /* */ - /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */ - /* */ -#define T1_MAX_CHARSTRINGS_OPERANDS 256 - - - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of `t1afm', which is in charge of reading Type 1 AFM */ - /* files into an existing face. Note that if set, the T1 driver will be */ - /* unable to produce kerning distances. */ - /* */ -#undef T1_CONFIG_OPTION_NO_AFM - - - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of the Multiple Masters font support in the Type 1 */ - /* driver. */ - /* */ -#undef T1_CONFIG_OPTION_NO_MM_SUPPORT - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** C F F D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Using CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} it is */ - /* possible to set up the default values of the four control points that */ - /* define the stem darkening behaviour of the (new) CFF engine. For */ - /* more details please read the documentation of the */ - /* `darkening-parameters' property of the cff driver module (file */ - /* `ftcffdrv.h'), which allows the control at run-time. */ - /* */ - /* Do *not* undefine these macros! */ - /* */ -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 500 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 400 - -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 1000 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 275 - -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 1667 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 275 - -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 2333 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 0 - - - /*************************************************************************/ - /* */ - /* CFF_CONFIG_OPTION_OLD_ENGINE controls whether the pre-Adobe CFF */ - /* engine gets compiled into FreeType. If defined, it is possible to */ - /* switch between the two engines using the `hinting-engine' property of */ - /* the cff driver module. */ - /* */ -/* #define CFF_CONFIG_OPTION_OLD_ENGINE */ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** A U T O F I T M O D U L E C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Compile autofit module with CJK (Chinese, Japanese, Korean) script */ - /* support. */ - /* */ -#define AF_CONFIG_OPTION_CJK - - /*************************************************************************/ - /* */ - /* Compile autofit module with Indic script support. */ - /* */ -#define AF_CONFIG_OPTION_INDIC - - /*************************************************************************/ - /* */ - /* Compile autofit module with warp hinting. The idea of the warping */ - /* code is to slightly scale and shift a glyph within a single dimension */ - /* so that as much of its segments are aligned (more or less) on the */ - /* grid. To find out the optimal scaling and shifting value, various */ - /* parameter combinations are tried and scored. */ - /* */ - /* This experimental option is active only if the rendering mode is */ - /* FT_RENDER_MODE_LIGHT; you can switch warping on and off with the */ - /* `warping' property of the auto-hinter (see file `ftautoh.h' for more */ - /* information; by default it is switched off). */ - /* */ -#define AF_CONFIG_OPTION_USE_WARPER - - /* */ - - - /* - * This macro is obsolete. Support has been removed in FreeType - * version 2.5. - */ -/* #define FT_CONFIG_OPTION_OLD_INTERNALS */ - - - /* - * This macro is defined if either unpatented or native TrueType - * hinting is requested by the definitions above. - */ -#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER -#define TT_USE_BYTECODE_INTERPRETER -#undef TT_CONFIG_OPTION_UNPATENTED_HINTING -#elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING -#define TT_USE_BYTECODE_INTERPRETER -#endif - - - /* - * Check CFF darkening parameters. The checks are the same as in function - * `cff_property_set' in file `cffdrivr.c'. - */ -#if CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 < 0 || \ - \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 < 0 || \ - \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 > \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 > \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 > \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 || \ - \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500 -#error "Invalid CFF darkening parameters!" -#endif - -FT_END_HEADER - - -#endif /* __FTOPTION_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/config/ftstdlib.h b/lib/windows/include/freetype/config/ftstdlib.h deleted file mode 100644 index 8ef43c0..0000000 --- a/lib/windows/include/freetype/config/ftstdlib.h +++ /dev/null @@ -1,173 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftstdlib.h */ -/* */ -/* ANSI-specific library and header configuration file (specification */ -/* only). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file is used to group all #includes to the ANSI C library that */ - /* FreeType normally requires. It also defines macros to rename the */ - /* standard functions within the FreeType source code. */ - /* */ - /* Load a file which defines __FTSTDLIB_H__ before this one to override */ - /* it. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTSTDLIB_H__ -#define __FTSTDLIB_H__ - - -#include <stddef.h> - -#define ft_ptrdiff_t ptrdiff_t - - - /**********************************************************************/ - /* */ - /* integer limits */ - /* */ - /* UINT_MAX and ULONG_MAX are used to automatically compute the size */ - /* of `int' and `long' in bytes at compile-time. So far, this works */ - /* for all platforms the library has been tested on. */ - /* */ - /* Note that on the extremely rare platforms that do not provide */ - /* integer types that are _exactly_ 16 and 32 bits wide (e.g. some */ - /* old Crays where `int' is 36 bits), we do not make any guarantee */ - /* about the correct behaviour of FT2 with all fonts. */ - /* */ - /* In these case, `ftconfig.h' will refuse to compile anyway with a */ - /* message like `couldn't find 32-bit type' or something similar. */ - /* */ - /**********************************************************************/ - - -#include <limits.h> - -#define FT_CHAR_BIT CHAR_BIT -#define FT_USHORT_MAX USHRT_MAX -#define FT_INT_MAX INT_MAX -#define FT_INT_MIN INT_MIN -#define FT_UINT_MAX UINT_MAX -#define FT_ULONG_MAX ULONG_MAX - - - /**********************************************************************/ - /* */ - /* character and string processing */ - /* */ - /**********************************************************************/ - - -#include <string.h> - -#define ft_memchr memchr -#define ft_memcmp memcmp -#define ft_memcpy memcpy -#define ft_memmove memmove -#define ft_memset memset -#define ft_strcat strcat -#define ft_strcmp strcmp -#define ft_strcpy strcpy -#define ft_strlen strlen -#define ft_strncmp strncmp -#define ft_strncpy strncpy -#define ft_strrchr strrchr -#define ft_strstr strstr - - - /**********************************************************************/ - /* */ - /* file handling */ - /* */ - /**********************************************************************/ - - -#include <stdio.h> - -#define FT_FILE FILE -#define ft_fclose fclose -#define ft_fopen fopen -#define ft_fread fread -#define ft_fseek fseek -#define ft_ftell ftell -#define ft_sprintf sprintf - - - /**********************************************************************/ - /* */ - /* sorting */ - /* */ - /**********************************************************************/ - - -#include <stdlib.h> - -#define ft_qsort qsort - - - /**********************************************************************/ - /* */ - /* memory allocation */ - /* */ - /**********************************************************************/ - - -#define ft_scalloc calloc -#define ft_sfree free -#define ft_smalloc malloc -#define ft_srealloc realloc - - - /**********************************************************************/ - /* */ - /* miscellaneous */ - /* */ - /**********************************************************************/ - - -#define ft_atol atol - - - /**********************************************************************/ - /* */ - /* execution control */ - /* */ - /**********************************************************************/ - - -#include <setjmp.h> - -#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */ - /* jmp_buf is defined as a macro */ - /* on certain platforms */ - -#define ft_longjmp longjmp -#define ft_setjmp( b ) setjmp( *(ft_jmp_buf*) &(b) ) /* same thing here */ - - - /* the following is only used for debugging purposes, i.e., if */ - /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */ - -#include <stdarg.h> - - -#endif /* __FTSTDLIB_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/freetype.h b/lib/windows/include/freetype/freetype.h deleted file mode 100644 index bca93e5..0000000 --- a/lib/windows/include/freetype/freetype.h +++ /dev/null @@ -1,4069 +0,0 @@ -/***************************************************************************/ -/* */ -/* freetype.h */ -/* */ -/* FreeType high-level API and common types (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FREETYPE_H__ -#define __FREETYPE_H__ - - -#ifndef FT_FREETYPE_H -#error "`ft2build.h' hasn't been included yet!" -#error "Please always use macros to include FreeType header files." -#error "Example:" -#error " #include <ft2build.h>" -#error " #include FT_FREETYPE_H" -#endif - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_TYPES_H -#include FT_ERRORS_H - - -FT_BEGIN_HEADER - - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* header_inclusion */ - /* */ - /* <Title> */ - /* FreeType's header inclusion scheme */ - /* */ - /* <Abstract> */ - /* How client applications should include FreeType header files. */ - /* */ - /* <Description> */ - /* To be as flexible as possible (and for historical reasons), */ - /* FreeType uses a very special inclusion scheme to load header */ - /* files, for example */ - /* */ - /* { */ - /* #include <ft2build.h> */ - /* */ - /* #include FT_FREETYPE_H */ - /* #include FT_OUTLINE_H */ - /* } */ - /* */ - /* A compiler and its preprocessor only needs an include path to find */ - /* the file `ft2build.h'; the exact locations and names of the other */ - /* FreeType header files are hidden by preprocessor macro names, */ - /* loaded by `ft2build.h'. The API documentation always gives the */ - /* header macro name needed for a particular function. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* user_allocation */ - /* */ - /* <Title> */ - /* User allocation */ - /* */ - /* <Abstract> */ - /* How client applications should allocate FreeType data structures. */ - /* */ - /* <Description> */ - /* FreeType assumes that structures allocated by the user and passed */ - /* as arguments are zeroed out except for the actual data. In other */ - /* words, it is recommended to use `calloc' (or variants of it) */ - /* instead of `malloc' for allocation. */ - /* */ - /*************************************************************************/ - - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* B A S I C T Y P E S */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* base_interface */ - /* */ - /* <Title> */ - /* Base Interface */ - /* */ - /* <Abstract> */ - /* The FreeType~2 base font interface. */ - /* */ - /* <Description> */ - /* This section describes the most important public high-level API */ - /* functions of FreeType~2. */ - /* */ - /* <Order> */ - /* FT_Library */ - /* FT_Face */ - /* FT_Size */ - /* FT_GlyphSlot */ - /* FT_CharMap */ - /* FT_Encoding */ - /* FT_ENC_TAG */ - /* */ - /* FT_FaceRec */ - /* */ - /* FT_FACE_FLAG_SCALABLE */ - /* FT_FACE_FLAG_FIXED_SIZES */ - /* FT_FACE_FLAG_FIXED_WIDTH */ - /* FT_FACE_FLAG_HORIZONTAL */ - /* FT_FACE_FLAG_VERTICAL */ - /* FT_FACE_FLAG_COLOR */ - /* FT_FACE_FLAG_SFNT */ - /* FT_FACE_FLAG_CID_KEYED */ - /* FT_FACE_FLAG_TRICKY */ - /* FT_FACE_FLAG_KERNING */ - /* FT_FACE_FLAG_MULTIPLE_MASTERS */ - /* FT_FACE_FLAG_GLYPH_NAMES */ - /* FT_FACE_FLAG_EXTERNAL_STREAM */ - /* FT_FACE_FLAG_HINTER */ - /* FT_FACE_FLAG_TRICKY */ - /* */ - /* FT_HAS_HORIZONTAL */ - /* FT_HAS_VERTICAL */ - /* FT_HAS_KERNING */ - /* FT_HAS_FIXED_SIZES */ - /* FT_HAS_GLYPH_NAMES */ - /* FT_HAS_MULTIPLE_MASTERS */ - /* FT_HAS_COLOR */ - /* */ - /* FT_IS_SFNT */ - /* FT_IS_SCALABLE */ - /* FT_IS_FIXED_WIDTH */ - /* FT_IS_CID_KEYED */ - /* FT_IS_TRICKY */ - /* */ - /* FT_STYLE_FLAG_BOLD */ - /* FT_STYLE_FLAG_ITALIC */ - /* */ - /* FT_SizeRec */ - /* FT_Size_Metrics */ - /* */ - /* FT_GlyphSlotRec */ - /* FT_Glyph_Metrics */ - /* FT_SubGlyph */ - /* */ - /* FT_Bitmap_Size */ - /* */ - /* FT_Init_FreeType */ - /* FT_Done_FreeType */ - /* */ - /* FT_New_Face */ - /* FT_Done_Face */ - /* FT_Reference_Face */ - /* FT_New_Memory_Face */ - /* FT_Open_Face */ - /* FT_Open_Args */ - /* FT_Parameter */ - /* FT_Attach_File */ - /* FT_Attach_Stream */ - /* */ - /* FT_Set_Char_Size */ - /* FT_Set_Pixel_Sizes */ - /* FT_Request_Size */ - /* FT_Select_Size */ - /* FT_Size_Request_Type */ - /* FT_Size_RequestRec */ - /* FT_Size_Request */ - /* FT_Set_Transform */ - /* FT_Load_Glyph */ - /* FT_Get_Char_Index */ - /* FT_Get_First_Char */ - /* FT_Get_Next_Char */ - /* FT_Get_Name_Index */ - /* FT_Load_Char */ - /* */ - /* FT_OPEN_MEMORY */ - /* FT_OPEN_STREAM */ - /* FT_OPEN_PATHNAME */ - /* FT_OPEN_DRIVER */ - /* FT_OPEN_PARAMS */ - /* */ - /* FT_LOAD_DEFAULT */ - /* FT_LOAD_RENDER */ - /* FT_LOAD_MONOCHROME */ - /* FT_LOAD_LINEAR_DESIGN */ - /* FT_LOAD_NO_SCALE */ - /* FT_LOAD_NO_HINTING */ - /* FT_LOAD_NO_BITMAP */ - /* FT_LOAD_NO_AUTOHINT */ - /* FT_LOAD_COLOR */ - /* */ - /* FT_LOAD_VERTICAL_LAYOUT */ - /* FT_LOAD_IGNORE_TRANSFORM */ - /* FT_LOAD_FORCE_AUTOHINT */ - /* FT_LOAD_NO_RECURSE */ - /* FT_LOAD_PEDANTIC */ - /* */ - /* FT_LOAD_TARGET_NORMAL */ - /* FT_LOAD_TARGET_LIGHT */ - /* FT_LOAD_TARGET_MONO */ - /* FT_LOAD_TARGET_LCD */ - /* FT_LOAD_TARGET_LCD_V */ - /* */ - /* FT_LOAD_TARGET_MODE */ - /* */ - /* FT_Render_Glyph */ - /* FT_Render_Mode */ - /* FT_Get_Kerning */ - /* FT_Kerning_Mode */ - /* FT_Get_Track_Kerning */ - /* FT_Get_Glyph_Name */ - /* FT_Get_Postscript_Name */ - /* */ - /* FT_CharMapRec */ - /* FT_Select_Charmap */ - /* FT_Set_Charmap */ - /* FT_Get_Charmap_Index */ - /* */ - /* FT_Get_FSType_Flags */ - /* FT_Get_SubGlyph_Info */ - /* */ - /* FT_Face_Internal */ - /* FT_Size_Internal */ - /* FT_Slot_Internal */ - /* */ - /* FT_FACE_FLAG_XXX */ - /* FT_STYLE_FLAG_XXX */ - /* FT_OPEN_XXX */ - /* FT_LOAD_XXX */ - /* FT_LOAD_TARGET_XXX */ - /* FT_SUBGLYPH_FLAG_XXX */ - /* FT_FSTYPE_XXX */ - /* */ - /* FT_HAS_FAST_GLYPHS */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Glyph_Metrics */ - /* */ - /* <Description> */ - /* A structure used to model the metrics of a single glyph. The */ - /* values are expressed in 26.6 fractional pixel format; if the flag */ - /* @FT_LOAD_NO_SCALE has been used while loading the glyph, values */ - /* are expressed in font units instead. */ - /* */ - /* <Fields> */ - /* width :: */ - /* The glyph's width. */ - /* */ - /* height :: */ - /* The glyph's height. */ - /* */ - /* horiBearingX :: */ - /* Left side bearing for horizontal layout. */ - /* */ - /* horiBearingY :: */ - /* Top side bearing for horizontal layout. */ - /* */ - /* horiAdvance :: */ - /* Advance width for horizontal layout. */ - /* */ - /* vertBearingX :: */ - /* Left side bearing for vertical layout. */ - /* */ - /* vertBearingY :: */ - /* Top side bearing for vertical layout. Larger positive values */ - /* mean further below the vertical glyph origin. */ - /* */ - /* vertAdvance :: */ - /* Advance height for vertical layout. Positive values mean the */ - /* glyph has a positive advance downward. */ - /* */ - /* <Note> */ - /* If not disabled with @FT_LOAD_NO_HINTING, the values represent */ - /* dimensions of the hinted glyph (in case hinting is applicable). */ - /* */ - /* Stroking a glyph with an outside border does not increase */ - /* `horiAdvance' or `vertAdvance'; you have to manually adjust these */ - /* values to account for the added width and height. */ - /* */ - typedef struct FT_Glyph_Metrics_ - { - FT_Pos width; - FT_Pos height; - - FT_Pos horiBearingX; - FT_Pos horiBearingY; - FT_Pos horiAdvance; - - FT_Pos vertBearingX; - FT_Pos vertBearingY; - FT_Pos vertAdvance; - - } FT_Glyph_Metrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Bitmap_Size */ - /* */ - /* <Description> */ - /* This structure models the metrics of a bitmap strike (i.e., a set */ - /* of glyphs for a given point size and resolution) in a bitmap font. */ - /* It is used for the `available_sizes' field of @FT_Face. */ - /* */ - /* <Fields> */ - /* height :: The vertical distance, in pixels, between two */ - /* consecutive baselines. It is always positive. */ - /* */ - /* width :: The average width, in pixels, of all glyphs in the */ - /* strike. */ - /* */ - /* size :: The nominal size of the strike in 26.6 fractional */ - /* points. This field is not very useful. */ - /* */ - /* x_ppem :: The horizontal ppem (nominal width) in 26.6 fractional */ - /* pixels. */ - /* */ - /* y_ppem :: The vertical ppem (nominal height) in 26.6 fractional */ - /* pixels. */ - /* */ - /* <Note> */ - /* Windows FNT: */ - /* The nominal size given in a FNT font is not reliable. Thus when */ - /* the driver finds it incorrect, it sets `size' to some calculated */ - /* values and sets `x_ppem' and `y_ppem' to the pixel width and */ - /* height given in the font, respectively. */ - /* */ - /* TrueType embedded bitmaps: */ - /* `size', `width', and `height' values are not contained in the */ - /* bitmap strike itself. They are computed from the global font */ - /* parameters. */ - /* */ - typedef struct FT_Bitmap_Size_ - { - FT_Short height; - FT_Short width; - - FT_Pos size; - - FT_Pos x_ppem; - FT_Pos y_ppem; - - } FT_Bitmap_Size; - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* O B J E C T C L A S S E S */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Library */ - /* */ - /* <Description> */ - /* A handle to a FreeType library instance. Each `library' is */ - /* completely independent from the others; it is the `root' of a set */ - /* of objects like fonts, faces, sizes, etc. */ - /* */ - /* It also embeds a memory manager (see @FT_Memory), as well as a */ - /* scan-line converter object (see @FT_Raster). */ - /* */ - /* In multi-threaded applications it is easiest to use one */ - /* `FT_Library' object per thread. In case this is too cumbersome, */ - /* a single `FT_Library' object across threads is possible also */ - /* (since FreeType version 2.5.6), as long as a mutex lock is used */ - /* around @FT_New_Face and @FT_Done_Face. */ - /* */ - /* <Note> */ - /* Library objects are normally created by @FT_Init_FreeType, and */ - /* destroyed with @FT_Done_FreeType. If you need reference-counting */ - /* (cf. @FT_Reference_Library), use @FT_New_Library and */ - /* @FT_Done_Library. */ - /* */ - typedef struct FT_LibraryRec_ *FT_Library; - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* module_management */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Module */ - /* */ - /* <Description> */ - /* A handle to a given FreeType module object. Each module can be a */ - /* font driver, a renderer, or anything else that provides services */ - /* to the formers. */ - /* */ - typedef struct FT_ModuleRec_* FT_Module; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Driver */ - /* */ - /* <Description> */ - /* A handle to a given FreeType font driver object. Each font driver */ - /* is a special module capable of creating faces from font files. */ - /* */ - typedef struct FT_DriverRec_* FT_Driver; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Renderer */ - /* */ - /* <Description> */ - /* A handle to a given FreeType renderer. A renderer is a special */ - /* module in charge of converting a glyph image to a bitmap, when */ - /* necessary. Each renderer supports a given glyph image format, and */ - /* one or more target surface depths. */ - /* */ - typedef struct FT_RendererRec_* FT_Renderer; - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* base_interface */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Face */ - /* */ - /* <Description> */ - /* A handle to a given typographic face object. A face object models */ - /* a given typeface, in a given style. */ - /* */ - /* <Note> */ - /* Each face object also owns a single @FT_GlyphSlot object, as well */ - /* as one or more @FT_Size objects. */ - /* */ - /* Use @FT_New_Face or @FT_Open_Face to create a new face object from */ - /* a given filepathname or a custom input stream. */ - /* */ - /* Use @FT_Done_Face to destroy it (along with its slot and sizes). */ - /* */ - /* An `FT_Face' object can only be safely used from one thread at a */ - /* time. Similarly, creation and destruction of `FT_Face' with the */ - /* same @FT_Library object can only be done from one thread at a */ - /* time. On the other hand, functions like @FT_Load_Glyph and its */ - /* siblings are thread-safe and do not need the lock to be held as */ - /* long as the same `FT_Face' object is not used from multiple */ - /* threads at the same time. */ - /* */ - /* <Also> */ - /* See @FT_FaceRec for the publicly accessible fields of a given face */ - /* object. */ - /* */ - typedef struct FT_FaceRec_* FT_Face; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Size */ - /* */ - /* <Description> */ - /* A handle to an object used to model a face scaled to a given */ - /* character size. */ - /* */ - /* <Note> */ - /* Each @FT_Face has an _active_ @FT_Size object that is used by */ - /* functions like @FT_Load_Glyph to determine the scaling */ - /* transformation that in turn is used to load and hint glyphs and */ - /* metrics. */ - /* */ - /* You can use @FT_Set_Char_Size, @FT_Set_Pixel_Sizes, */ - /* @FT_Request_Size or even @FT_Select_Size to change the content */ - /* (i.e., the scaling values) of the active @FT_Size. */ - /* */ - /* You can use @FT_New_Size to create additional size objects for a */ - /* given @FT_Face, but they won't be used by other functions until */ - /* you activate it through @FT_Activate_Size. Only one size can be */ - /* activated at any given time per face. */ - /* */ - /* <Also> */ - /* See @FT_SizeRec for the publicly accessible fields of a given size */ - /* object. */ - /* */ - typedef struct FT_SizeRec_* FT_Size; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_GlyphSlot */ - /* */ - /* <Description> */ - /* A handle to a given `glyph slot'. A slot is a container where it */ - /* is possible to load any of the glyphs contained in its parent */ - /* face. */ - /* */ - /* In other words, each time you call @FT_Load_Glyph or */ - /* @FT_Load_Char, the slot's content is erased by the new glyph data, */ - /* i.e., the glyph's metrics, its image (bitmap or outline), and */ - /* other control information. */ - /* */ - /* <Also> */ - /* See @FT_GlyphSlotRec for the publicly accessible glyph fields. */ - /* */ - typedef struct FT_GlyphSlotRec_* FT_GlyphSlot; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_CharMap */ - /* */ - /* <Description> */ - /* A handle to a given character map. A charmap is used to translate */ - /* character codes in a given encoding into glyph indexes for its */ - /* parent's face. Some font formats may provide several charmaps per */ - /* font. */ - /* */ - /* Each face object owns zero or more charmaps, but only one of them */ - /* can be `active' and used by @FT_Get_Char_Index or @FT_Load_Char. */ - /* */ - /* The list of available charmaps in a face is available through the */ - /* `face->num_charmaps' and `face->charmaps' fields of @FT_FaceRec. */ - /* */ - /* The currently active charmap is available as `face->charmap'. */ - /* You should call @FT_Set_Charmap to change it. */ - /* */ - /* <Note> */ - /* When a new face is created (either through @FT_New_Face or */ - /* @FT_Open_Face), the library looks for a Unicode charmap within */ - /* the list and automatically activates it. */ - /* */ - /* <Also> */ - /* See @FT_CharMapRec for the publicly accessible fields of a given */ - /* character map. */ - /* */ - typedef struct FT_CharMapRec_* FT_CharMap; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_ENC_TAG */ - /* */ - /* <Description> */ - /* This macro converts four-letter tags into an unsigned long. It is */ - /* used to define `encoding' identifiers (see @FT_Encoding). */ - /* */ - /* <Note> */ - /* Since many 16-bit compilers don't like 32-bit enumerations, you */ - /* should redefine this macro in case of problems to something like */ - /* this: */ - /* */ - /* { */ - /* #define FT_ENC_TAG( value, a, b, c, d ) value */ - /* } */ - /* */ - /* to get a simple enumeration without assigning special numbers. */ - /* */ - -#ifndef FT_ENC_TAG -#define FT_ENC_TAG( value, a, b, c, d ) \ - value = ( ( (FT_UInt32)(a) << 24 ) | \ - ( (FT_UInt32)(b) << 16 ) | \ - ( (FT_UInt32)(c) << 8 ) | \ - (FT_UInt32)(d) ) - -#endif /* FT_ENC_TAG */ - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Encoding */ - /* */ - /* <Description> */ - /* An enumeration used to specify character sets supported by */ - /* charmaps. Used in the @FT_Select_Charmap API function. */ - /* */ - /* <Note> */ - /* Despite the name, this enumeration lists specific character */ - /* repertories (i.e., charsets), and not text encoding methods (e.g., */ - /* UTF-8, UTF-16, etc.). */ - /* */ - /* Other encodings might be defined in the future. */ - /* */ - /* <Values> */ - /* FT_ENCODING_NONE :: */ - /* The encoding value~0 is reserved. */ - /* */ - /* FT_ENCODING_UNICODE :: */ - /* Corresponds to the Unicode character set. This value covers */ - /* all versions of the Unicode repertoire, including ASCII and */ - /* Latin-1. Most fonts include a Unicode charmap, but not all */ - /* of them. */ - /* */ - /* For example, if you want to access Unicode value U+1F028 (and */ - /* the font contains it), use value 0x1F028 as the input value for */ - /* @FT_Get_Char_Index. */ - /* */ - /* FT_ENCODING_MS_SYMBOL :: */ - /* Corresponds to the Microsoft Symbol encoding, used to encode */ - /* mathematical symbols and wingdings. For more information, see */ - /* `http://www.microsoft.com/typography/otspec/recom.htm', */ - /* `http://www.kostis.net/charsets/symbol.htm', and */ - /* `http://www.kostis.net/charsets/wingding.htm'. */ - /* */ - /* This encoding uses character codes from the PUA (Private Unicode */ - /* Area) in the range U+F020-U+F0FF. */ - /* */ - /* FT_ENCODING_SJIS :: */ - /* Corresponds to Japanese SJIS encoding. More info at */ - /* at `http://en.wikipedia.org/wiki/Shift_JIS'. */ - /* See note on multi-byte encodings below. */ - /* */ - /* FT_ENCODING_GB2312 :: */ - /* Corresponds to an encoding system for Simplified Chinese as used */ - /* used in mainland China. */ - /* */ - /* FT_ENCODING_BIG5 :: */ - /* Corresponds to an encoding system for Traditional Chinese as */ - /* used in Taiwan and Hong Kong. */ - /* */ - /* FT_ENCODING_WANSUNG :: */ - /* Corresponds to the Korean encoding system known as Wansung. */ - /* For more information see */ - /* `https://msdn.microsoft.com/en-US/goglobal/cc305154'. */ - /* */ - /* FT_ENCODING_JOHAB :: */ - /* The Korean standard character set (KS~C 5601-1992), which */ - /* corresponds to MS Windows code page 1361. This character set */ - /* includes all possible Hangeul character combinations. */ - /* */ - /* FT_ENCODING_ADOBE_LATIN_1 :: */ - /* Corresponds to a Latin-1 encoding as defined in a Type~1 */ - /* PostScript font. It is limited to 256 character codes. */ - /* */ - /* FT_ENCODING_ADOBE_STANDARD :: */ - /* Corresponds to the Adobe Standard encoding, as found in Type~1, */ - /* CFF, and OpenType/CFF fonts. It is limited to 256 character */ - /* codes. */ - /* */ - /* FT_ENCODING_ADOBE_EXPERT :: */ - /* Corresponds to the Adobe Expert encoding, as found in Type~1, */ - /* CFF, and OpenType/CFF fonts. It is limited to 256 character */ - /* codes. */ - /* */ - /* FT_ENCODING_ADOBE_CUSTOM :: */ - /* Corresponds to a custom encoding, as found in Type~1, CFF, and */ - /* OpenType/CFF fonts. It is limited to 256 character codes. */ - /* */ - /* FT_ENCODING_APPLE_ROMAN :: */ - /* Corresponds to the 8-bit Apple roman encoding. Many TrueType */ - /* and OpenType fonts contain a charmap for this encoding, since */ - /* older versions of Mac OS are able to use it. */ - /* */ - /* FT_ENCODING_OLD_LATIN_2 :: */ - /* This value is deprecated and was never used nor reported by */ - /* FreeType. Don't use or test for it. */ - /* */ - /* FT_ENCODING_MS_SJIS :: */ - /* Same as FT_ENCODING_SJIS. Deprecated. */ - /* */ - /* FT_ENCODING_MS_GB2312 :: */ - /* Same as FT_ENCODING_GB2312. Deprecated. */ - /* */ - /* FT_ENCODING_MS_BIG5 :: */ - /* Same as FT_ENCODING_BIG5. Deprecated. */ - /* */ - /* FT_ENCODING_MS_WANSUNG :: */ - /* Same as FT_ENCODING_WANSUNG. Deprecated. */ - /* */ - /* FT_ENCODING_MS_JOHAB :: */ - /* Same as FT_ENCODING_JOHAB. Deprecated. */ - /* */ - /* <Note> */ - /* By default, FreeType automatically synthesizes a Unicode charmap */ - /* for PostScript fonts, using their glyph names dictionaries. */ - /* However, it also reports the encodings defined explicitly in the */ - /* font file, for the cases when they are needed, with the Adobe */ - /* values as well. */ - /* */ - /* FT_ENCODING_NONE is set by the BDF and PCF drivers if the charmap */ - /* is neither Unicode nor ISO-8859-1 (otherwise it is set to */ - /* FT_ENCODING_UNICODE). Use @FT_Get_BDF_Charset_ID to find out */ - /* which encoding is really present. If, for example, the */ - /* `cs_registry' field is `KOI8' and the `cs_encoding' field is `R', */ - /* the font is encoded in KOI8-R. */ - /* */ - /* FT_ENCODING_NONE is always set (with a single exception) by the */ - /* winfonts driver. Use @FT_Get_WinFNT_Header and examine the */ - /* `charset' field of the @FT_WinFNT_HeaderRec structure to find out */ - /* which encoding is really present. For example, */ - /* @FT_WinFNT_ID_CP1251 (204) means Windows code page 1251 (for */ - /* Russian). */ - /* */ - /* FT_ENCODING_NONE is set if `platform_id' is @TT_PLATFORM_MACINTOSH */ - /* and `encoding_id' is not @TT_MAC_ID_ROMAN (otherwise it is set to */ - /* FT_ENCODING_APPLE_ROMAN). */ - /* */ - /* If `platform_id' is @TT_PLATFORM_MACINTOSH, use the function */ - /* @FT_Get_CMap_Language_ID to query the Mac language ID that may */ - /* be needed to be able to distinguish Apple encoding variants. See */ - /* */ - /* http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt */ - /* */ - /* to get an idea how to do that. Basically, if the language ID */ - /* is~0, don't use it, otherwise subtract 1 from the language ID. */ - /* Then examine `encoding_id'. If, for example, `encoding_id' is */ - /* @TT_MAC_ID_ROMAN and the language ID (minus~1) is */ - /* `TT_MAC_LANGID_GREEK', it is the Greek encoding, not Roman. */ - /* @TT_MAC_ID_ARABIC with `TT_MAC_LANGID_FARSI' means the Farsi */ - /* variant the Arabic encoding. */ - /* */ - typedef enum FT_Encoding_ - { - FT_ENC_TAG( FT_ENCODING_NONE, 0, 0, 0, 0 ), - - FT_ENC_TAG( FT_ENCODING_MS_SYMBOL, 's', 'y', 'm', 'b' ), - FT_ENC_TAG( FT_ENCODING_UNICODE, 'u', 'n', 'i', 'c' ), - - FT_ENC_TAG( FT_ENCODING_SJIS, 's', 'j', 'i', 's' ), - FT_ENC_TAG( FT_ENCODING_GB2312, 'g', 'b', ' ', ' ' ), - FT_ENC_TAG( FT_ENCODING_BIG5, 'b', 'i', 'g', '5' ), - FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ), - FT_ENC_TAG( FT_ENCODING_JOHAB, 'j', 'o', 'h', 'a' ), - - /* for backwards compatibility */ - FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS, - FT_ENCODING_MS_GB2312 = FT_ENCODING_GB2312, - FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5, - FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG, - FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB, - - FT_ENC_TAG( FT_ENCODING_ADOBE_STANDARD, 'A', 'D', 'O', 'B' ), - FT_ENC_TAG( FT_ENCODING_ADOBE_EXPERT, 'A', 'D', 'B', 'E' ), - FT_ENC_TAG( FT_ENCODING_ADOBE_CUSTOM, 'A', 'D', 'B', 'C' ), - FT_ENC_TAG( FT_ENCODING_ADOBE_LATIN_1, 'l', 'a', 't', '1' ), - - FT_ENC_TAG( FT_ENCODING_OLD_LATIN_2, 'l', 'a', 't', '2' ), - - FT_ENC_TAG( FT_ENCODING_APPLE_ROMAN, 'a', 'r', 'm', 'n' ) - - } FT_Encoding; - - - /* these constants are deprecated; use the corresponding `FT_Encoding' */ - /* values instead */ -#define ft_encoding_none FT_ENCODING_NONE -#define ft_encoding_unicode FT_ENCODING_UNICODE -#define ft_encoding_symbol FT_ENCODING_MS_SYMBOL -#define ft_encoding_latin_1 FT_ENCODING_ADOBE_LATIN_1 -#define ft_encoding_latin_2 FT_ENCODING_OLD_LATIN_2 -#define ft_encoding_sjis FT_ENCODING_SJIS -#define ft_encoding_gb2312 FT_ENCODING_GB2312 -#define ft_encoding_big5 FT_ENCODING_BIG5 -#define ft_encoding_wansung FT_ENCODING_WANSUNG -#define ft_encoding_johab FT_ENCODING_JOHAB - -#define ft_encoding_adobe_standard FT_ENCODING_ADOBE_STANDARD -#define ft_encoding_adobe_expert FT_ENCODING_ADOBE_EXPERT -#define ft_encoding_adobe_custom FT_ENCODING_ADOBE_CUSTOM -#define ft_encoding_apple_roman FT_ENCODING_APPLE_ROMAN - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_CharMapRec */ - /* */ - /* <Description> */ - /* The base charmap structure. */ - /* */ - /* <Fields> */ - /* face :: A handle to the parent face object. */ - /* */ - /* encoding :: An @FT_Encoding tag identifying the charmap. Use */ - /* this with @FT_Select_Charmap. */ - /* */ - /* platform_id :: An ID number describing the platform for the */ - /* following encoding ID. This comes directly from */ - /* the TrueType specification and should be emulated */ - /* for other formats. */ - /* */ - /* encoding_id :: A platform specific encoding number. This also */ - /* comes from the TrueType specification and should be */ - /* emulated similarly. */ - /* */ - typedef struct FT_CharMapRec_ - { - FT_Face face; - FT_Encoding encoding; - FT_UShort platform_id; - FT_UShort encoding_id; - - } FT_CharMapRec; - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* B A S E O B J E C T C L A S S E S */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Face_Internal */ - /* */ - /* <Description> */ - /* An opaque handle to an `FT_Face_InternalRec' structure, used to */ - /* model private data of a given @FT_Face object. */ - /* */ - /* This structure might change between releases of FreeType~2 and is */ - /* not generally available to client applications. */ - /* */ - typedef struct FT_Face_InternalRec_* FT_Face_Internal; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_FaceRec */ - /* */ - /* <Description> */ - /* FreeType root face class structure. A face object models a */ - /* typeface in a font file. */ - /* */ - /* <Fields> */ - /* num_faces :: The number of faces in the font file. Some */ - /* font formats can have multiple faces in */ - /* a font file. */ - /* */ - /* face_index :: The index of the face in the font file. It */ - /* is set to~0 if there is only one face in */ - /* the font file. */ - /* */ - /* face_flags :: A set of bit flags that give important */ - /* information about the face; see */ - /* @FT_FACE_FLAG_XXX for the details. */ - /* */ - /* style_flags :: A set of bit flags indicating the style of */ - /* the face; see @FT_STYLE_FLAG_XXX for the */ - /* details. */ - /* */ - /* num_glyphs :: The number of glyphs in the face. If the */ - /* face is scalable and has sbits (see */ - /* `num_fixed_sizes'), it is set to the number */ - /* of outline glyphs. */ - /* */ - /* For CID-keyed fonts, this value gives the */ - /* highest CID used in the font. */ - /* */ - /* family_name :: The face's family name. This is an ASCII */ - /* string, usually in English, that describes */ - /* the typeface's family (like `Times New */ - /* Roman', `Bodoni', `Garamond', etc). This */ - /* is a least common denominator used to list */ - /* fonts. Some formats (TrueType & OpenType) */ - /* provide localized and Unicode versions of */ - /* this string. Applications should use the */ - /* format specific interface to access them. */ - /* Can be NULL (e.g., in fonts embedded in a */ - /* PDF file). */ - /* */ - /* In case the font doesn't provide a specific */ - /* family name entry, FreeType tries to */ - /* synthesize one, deriving it from other name */ - /* entries. */ - /* */ - /* style_name :: The face's style name. This is an ASCII */ - /* string, usually in English, that describes */ - /* the typeface's style (like `Italic', */ - /* `Bold', `Condensed', etc). Not all font */ - /* formats provide a style name, so this field */ - /* is optional, and can be set to NULL. As */ - /* for `family_name', some formats provide */ - /* localized and Unicode versions of this */ - /* string. Applications should use the format */ - /* specific interface to access them. */ - /* */ - /* num_fixed_sizes :: The number of bitmap strikes in the face. */ - /* Even if the face is scalable, there might */ - /* still be bitmap strikes, which are called */ - /* `sbits' in that case. */ - /* */ - /* available_sizes :: An array of @FT_Bitmap_Size for all bitmap */ - /* strikes in the face. It is set to NULL if */ - /* there is no bitmap strike. */ - /* */ - /* num_charmaps :: The number of charmaps in the face. */ - /* */ - /* charmaps :: An array of the charmaps of the face. */ - /* */ - /* generic :: A field reserved for client uses. See the */ - /* @FT_Generic type description. */ - /* */ - /* bbox :: The font bounding box. Coordinates are */ - /* expressed in font units (see */ - /* `units_per_EM'). The box is large enough */ - /* to contain any glyph from the font. Thus, */ - /* `bbox.yMax' can be seen as the `maximum */ - /* ascender', and `bbox.yMin' as the `minimum */ - /* descender'. Only relevant for scalable */ - /* formats. */ - /* */ - /* Note that the bounding box might be off by */ - /* (at least) one pixel for hinted fonts. See */ - /* @FT_Size_Metrics for further discussion. */ - /* */ - /* units_per_EM :: The number of font units per EM square for */ - /* this face. This is typically 2048 for */ - /* TrueType fonts, and 1000 for Type~1 fonts. */ - /* Only relevant for scalable formats. */ - /* */ - /* ascender :: The typographic ascender of the face, */ - /* expressed in font units. For font formats */ - /* not having this information, it is set to */ - /* `bbox.yMax'. Only relevant for scalable */ - /* formats. */ - /* */ - /* descender :: The typographic descender of the face, */ - /* expressed in font units. For font formats */ - /* not having this information, it is set to */ - /* `bbox.yMin'. Note that this field is */ - /* usually negative. Only relevant for */ - /* scalable formats. */ - /* */ - /* height :: This value is the vertical distance */ - /* between two consecutive baselines, */ - /* expressed in font units. It is always */ - /* positive. Only relevant for scalable */ - /* formats. */ - /* */ - /* If you want the global glyph height, use */ - /* `ascender - descender'. */ - /* */ - /* max_advance_width :: The maximum advance width, in font units, */ - /* for all glyphs in this face. This can be */ - /* used to make word wrapping computations */ - /* faster. Only relevant for scalable */ - /* formats. */ - /* */ - /* max_advance_height :: The maximum advance height, in font units, */ - /* for all glyphs in this face. This is only */ - /* relevant for vertical layouts, and is set */ - /* to `height' for fonts that do not provide */ - /* vertical metrics. Only relevant for */ - /* scalable formats. */ - /* */ - /* underline_position :: The position, in font units, of the */ - /* underline line for this face. It is the */ - /* center of the underlining stem. Only */ - /* relevant for scalable formats. */ - /* */ - /* underline_thickness :: The thickness, in font units, of the */ - /* underline for this face. Only relevant for */ - /* scalable formats. */ - /* */ - /* glyph :: The face's associated glyph slot(s). */ - /* */ - /* size :: The current active size for this face. */ - /* */ - /* charmap :: The current active charmap for this face. */ - /* */ - /* <Note> */ - /* Fields may be changed after a call to @FT_Attach_File or */ - /* @FT_Attach_Stream. */ - /* */ - typedef struct FT_FaceRec_ - { - FT_Long num_faces; - FT_Long face_index; - - FT_Long face_flags; - FT_Long style_flags; - - FT_Long num_glyphs; - - FT_String* family_name; - FT_String* style_name; - - FT_Int num_fixed_sizes; - FT_Bitmap_Size* available_sizes; - - FT_Int num_charmaps; - FT_CharMap* charmaps; - - FT_Generic generic; - - /*# The following member variables (down to `underline_thickness') */ - /*# are only relevant to scalable outlines; cf. @FT_Bitmap_Size */ - /*# for bitmap fonts. */ - FT_BBox bbox; - - FT_UShort units_per_EM; - FT_Short ascender; - FT_Short descender; - FT_Short height; - - FT_Short max_advance_width; - FT_Short max_advance_height; - - FT_Short underline_position; - FT_Short underline_thickness; - - FT_GlyphSlot glyph; - FT_Size size; - FT_CharMap charmap; - - /*@private begin */ - - FT_Driver driver; - FT_Memory memory; - FT_Stream stream; - - FT_ListRec sizes_list; - - FT_Generic autohint; /* face-specific auto-hinter data */ - void* extensions; /* unused */ - - FT_Face_Internal internal; - - /*@private end */ - - } FT_FaceRec; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_FACE_FLAG_XXX */ - /* */ - /* <Description> */ - /* A list of bit flags used in the `face_flags' field of the */ - /* @FT_FaceRec structure. They inform client applications of */ - /* properties of the corresponding face. */ - /* */ - /* <Values> */ - /* FT_FACE_FLAG_SCALABLE :: */ - /* Indicates that the face contains outline glyphs. This doesn't */ - /* prevent bitmap strikes, i.e., a face can have both this and */ - /* and @FT_FACE_FLAG_FIXED_SIZES set. */ - /* */ - /* FT_FACE_FLAG_FIXED_SIZES :: */ - /* Indicates that the face contains bitmap strikes. See also the */ - /* `num_fixed_sizes' and `available_sizes' fields of @FT_FaceRec. */ - /* */ - /* FT_FACE_FLAG_FIXED_WIDTH :: */ - /* Indicates that the face contains fixed-width characters (like */ - /* Courier, Lucido, MonoType, etc.). */ - /* */ - /* FT_FACE_FLAG_SFNT :: */ - /* Indicates that the face uses the `sfnt' storage scheme. For */ - /* now, this means TrueType and OpenType. */ - /* */ - /* FT_FACE_FLAG_HORIZONTAL :: */ - /* Indicates that the face contains horizontal glyph metrics. This */ - /* should be set for all common formats. */ - /* */ - /* FT_FACE_FLAG_VERTICAL :: */ - /* Indicates that the face contains vertical glyph metrics. This */ - /* is only available in some formats, not all of them. */ - /* */ - /* FT_FACE_FLAG_KERNING :: */ - /* Indicates that the face contains kerning information. If set, */ - /* the kerning distance can be retrieved through the function */ - /* @FT_Get_Kerning. Otherwise the function always return the */ - /* vector (0,0). Note that FreeType doesn't handle kerning data */ - /* from the `GPOS' table (as present in some OpenType fonts). */ - /* */ - /* FT_FACE_FLAG_FAST_GLYPHS :: */ - /* THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. */ - /* */ - /* FT_FACE_FLAG_MULTIPLE_MASTERS :: */ - /* Indicates that the font contains multiple masters and is capable */ - /* of interpolating between them. See the multiple-masters */ - /* specific API for details. */ - /* */ - /* FT_FACE_FLAG_GLYPH_NAMES :: */ - /* Indicates that the font contains glyph names that can be */ - /* retrieved through @FT_Get_Glyph_Name. Note that some TrueType */ - /* fonts contain broken glyph name tables. Use the function */ - /* @FT_Has_PS_Glyph_Names when needed. */ - /* */ - /* FT_FACE_FLAG_EXTERNAL_STREAM :: */ - /* Used internally by FreeType to indicate that a face's stream was */ - /* provided by the client application and should not be destroyed */ - /* when @FT_Done_Face is called. Don't read or test this flag. */ - /* */ - /* FT_FACE_FLAG_HINTER :: */ - /* Set if the font driver has a hinting machine of its own. For */ - /* example, with TrueType fonts, it makes sense to use data from */ - /* the SFNT `gasp' table only if the native TrueType hinting engine */ - /* (with the bytecode interpreter) is available and active. */ - /* */ - /* FT_FACE_FLAG_CID_KEYED :: */ - /* Set if the font is CID-keyed. In that case, the font is not */ - /* accessed by glyph indices but by CID values. For subsetted */ - /* CID-keyed fonts this has the consequence that not all index */ - /* values are a valid argument to FT_Load_Glyph. Only the CID */ - /* values for which corresponding glyphs in the subsetted font */ - /* exist make FT_Load_Glyph return successfully; in all other cases */ - /* you get an `FT_Err_Invalid_Argument' error. */ - /* */ - /* Note that CID-keyed fonts that are in an SFNT wrapper don't */ - /* have this flag set since the glyphs are accessed in the normal */ - /* way (using contiguous indices); the `CID-ness' isn't visible to */ - /* the application. */ - /* */ - /* FT_FACE_FLAG_TRICKY :: */ - /* Set if the font is `tricky', this is, it always needs the */ - /* font format's native hinting engine to get a reasonable result. */ - /* A typical example is the Chinese font `mingli.ttf' that uses */ - /* TrueType bytecode instructions to move and scale all of its */ - /* subglyphs. */ - /* */ - /* It is not possible to auto-hint such fonts using */ - /* @FT_LOAD_FORCE_AUTOHINT; it will also ignore */ - /* @FT_LOAD_NO_HINTING. You have to set both @FT_LOAD_NO_HINTING */ - /* and @FT_LOAD_NO_AUTOHINT to really disable hinting; however, you */ - /* probably never want this except for demonstration purposes. */ - /* */ - /* Currently, there are about a dozen TrueType fonts in the list of */ - /* tricky fonts; they are hard-coded in file `ttobjs.c'. */ - /* */ - /* FT_FACE_FLAG_COLOR :: */ - /* Set if the font has color glyph tables. To access color glyphs */ - /* use @FT_LOAD_COLOR. */ - /* */ -#define FT_FACE_FLAG_SCALABLE ( 1L << 0 ) -#define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 ) -#define FT_FACE_FLAG_FIXED_WIDTH ( 1L << 2 ) -#define FT_FACE_FLAG_SFNT ( 1L << 3 ) -#define FT_FACE_FLAG_HORIZONTAL ( 1L << 4 ) -#define FT_FACE_FLAG_VERTICAL ( 1L << 5 ) -#define FT_FACE_FLAG_KERNING ( 1L << 6 ) -#define FT_FACE_FLAG_FAST_GLYPHS ( 1L << 7 ) -#define FT_FACE_FLAG_MULTIPLE_MASTERS ( 1L << 8 ) -#define FT_FACE_FLAG_GLYPH_NAMES ( 1L << 9 ) -#define FT_FACE_FLAG_EXTERNAL_STREAM ( 1L << 10 ) -#define FT_FACE_FLAG_HINTER ( 1L << 11 ) -#define FT_FACE_FLAG_CID_KEYED ( 1L << 12 ) -#define FT_FACE_FLAG_TRICKY ( 1L << 13 ) -#define FT_FACE_FLAG_COLOR ( 1L << 14 ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_HORIZONTAL( face ) - * - * @description: - * A macro that returns true whenever a face object contains - * horizontal metrics (this is true for all font formats though). - * - * @also: - * @FT_HAS_VERTICAL can be used to check for vertical metrics. - * - */ -#define FT_HAS_HORIZONTAL( face ) \ - ( face->face_flags & FT_FACE_FLAG_HORIZONTAL ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_VERTICAL( face ) - * - * @description: - * A macro that returns true whenever a face object contains real - * vertical metrics (and not only synthesized ones). - * - */ -#define FT_HAS_VERTICAL( face ) \ - ( face->face_flags & FT_FACE_FLAG_VERTICAL ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_KERNING( face ) - * - * @description: - * A macro that returns true whenever a face object contains kerning - * data that can be accessed with @FT_Get_Kerning. - * - */ -#define FT_HAS_KERNING( face ) \ - ( face->face_flags & FT_FACE_FLAG_KERNING ) - - - /************************************************************************* - * - * @macro: - * FT_IS_SCALABLE( face ) - * - * @description: - * A macro that returns true whenever a face object contains a scalable - * font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF, - * and PFR font formats. - * - */ -#define FT_IS_SCALABLE( face ) \ - ( face->face_flags & FT_FACE_FLAG_SCALABLE ) - - - /************************************************************************* - * - * @macro: - * FT_IS_SFNT( face ) - * - * @description: - * A macro that returns true whenever a face object contains a font - * whose format is based on the SFNT storage scheme. This usually - * means: TrueType fonts, OpenType fonts, as well as SFNT-based embedded - * bitmap fonts. - * - * If this macro is true, all functions defined in @FT_SFNT_NAMES_H and - * @FT_TRUETYPE_TABLES_H are available. - * - */ -#define FT_IS_SFNT( face ) \ - ( face->face_flags & FT_FACE_FLAG_SFNT ) - - - /************************************************************************* - * - * @macro: - * FT_IS_FIXED_WIDTH( face ) - * - * @description: - * A macro that returns true whenever a face object contains a font face - * that contains fixed-width (or `monospace', `fixed-pitch', etc.) - * glyphs. - * - */ -#define FT_IS_FIXED_WIDTH( face ) \ - ( face->face_flags & FT_FACE_FLAG_FIXED_WIDTH ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_FIXED_SIZES( face ) - * - * @description: - * A macro that returns true whenever a face object contains some - * embedded bitmaps. See the `available_sizes' field of the - * @FT_FaceRec structure. - * - */ -#define FT_HAS_FIXED_SIZES( face ) \ - ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_FAST_GLYPHS( face ) - * - * @description: - * Deprecated. - * - */ -#define FT_HAS_FAST_GLYPHS( face ) 0 - - - /************************************************************************* - * - * @macro: - * FT_HAS_GLYPH_NAMES( face ) - * - * @description: - * A macro that returns true whenever a face object contains some glyph - * names that can be accessed through @FT_Get_Glyph_Name. - * - */ -#define FT_HAS_GLYPH_NAMES( face ) \ - ( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_MULTIPLE_MASTERS( face ) - * - * @description: - * A macro that returns true whenever a face object contains some - * multiple masters. The functions provided by @FT_MULTIPLE_MASTERS_H - * are then available to choose the exact design you want. - * - */ -#define FT_HAS_MULTIPLE_MASTERS( face ) \ - ( face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS ) - - - /************************************************************************* - * - * @macro: - * FT_IS_CID_KEYED( face ) - * - * @description: - * A macro that returns true whenever a face object contains a CID-keyed - * font. See the discussion of @FT_FACE_FLAG_CID_KEYED for more - * details. - * - * If this macro is true, all functions defined in @FT_CID_H are - * available. - * - */ -#define FT_IS_CID_KEYED( face ) \ - ( face->face_flags & FT_FACE_FLAG_CID_KEYED ) - - - /************************************************************************* - * - * @macro: - * FT_IS_TRICKY( face ) - * - * @description: - * A macro that returns true whenever a face represents a `tricky' font. - * See the discussion of @FT_FACE_FLAG_TRICKY for more details. - * - */ -#define FT_IS_TRICKY( face ) \ - ( face->face_flags & FT_FACE_FLAG_TRICKY ) - - - /************************************************************************* - * - * @macro: - * FT_HAS_COLOR( face ) - * - * @description: - * A macro that returns true whenever a face object contains - * tables for color glyphs. - * - */ -#define FT_HAS_COLOR( face ) \ - ( face->face_flags & FT_FACE_FLAG_COLOR ) - - - /*************************************************************************/ - /* */ - /* <Const> */ - /* FT_STYLE_FLAG_XXX */ - /* */ - /* <Description> */ - /* A list of bit-flags used to indicate the style of a given face. */ - /* These are used in the `style_flags' field of @FT_FaceRec. */ - /* */ - /* <Values> */ - /* FT_STYLE_FLAG_ITALIC :: */ - /* Indicates that a given face style is italic or oblique. */ - /* */ - /* FT_STYLE_FLAG_BOLD :: */ - /* Indicates that a given face is bold. */ - /* */ - /* <Note> */ - /* The style information as provided by FreeType is very basic. More */ - /* details are beyond the scope and should be done on a higher level */ - /* (for example, by analyzing various fields of the `OS/2' table in */ - /* SFNT based fonts). */ - /* */ -#define FT_STYLE_FLAG_ITALIC ( 1 << 0 ) -#define FT_STYLE_FLAG_BOLD ( 1 << 1 ) - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Size_Internal */ - /* */ - /* <Description> */ - /* An opaque handle to an `FT_Size_InternalRec' structure, used to */ - /* model private data of a given @FT_Size object. */ - /* */ - typedef struct FT_Size_InternalRec_* FT_Size_Internal; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_Metrics */ - /* */ - /* <Description> */ - /* The size metrics structure gives the metrics of a size object. */ - /* */ - /* <Fields> */ - /* x_ppem :: The width of the scaled EM square in pixels, hence */ - /* the term `ppem' (pixels per EM). It is also */ - /* referred to as `nominal width'. */ - /* */ - /* y_ppem :: The height of the scaled EM square in pixels, */ - /* hence the term `ppem' (pixels per EM). It is also */ - /* referred to as `nominal height'. */ - /* */ - /* x_scale :: A 16.16 fractional scaling value used to convert */ - /* horizontal metrics from font units to 26.6 */ - /* fractional pixels. Only relevant for scalable */ - /* font formats. */ - /* */ - /* y_scale :: A 16.16 fractional scaling value used to convert */ - /* vertical metrics from font units to 26.6 */ - /* fractional pixels. Only relevant for scalable */ - /* font formats. */ - /* */ - /* ascender :: The ascender in 26.6 fractional pixels. See */ - /* @FT_FaceRec for the details. */ - /* */ - /* descender :: The descender in 26.6 fractional pixels. See */ - /* @FT_FaceRec for the details. */ - /* */ - /* height :: The height in 26.6 fractional pixels. See */ - /* @FT_FaceRec for the details. */ - /* */ - /* max_advance :: The maximum advance width in 26.6 fractional */ - /* pixels. See @FT_FaceRec for the details. */ - /* */ - /* <Note> */ - /* The scaling values, if relevant, are determined first during a */ - /* size changing operation. The remaining fields are then set by the */ - /* driver. For scalable formats, they are usually set to scaled */ - /* values of the corresponding fields in @FT_FaceRec. */ - /* */ - /* Note that due to glyph hinting, these values might not be exact */ - /* for certain fonts. Thus they must be treated as unreliable */ - /* with an error margin of at least one pixel! */ - /* */ - /* Indeed, the only way to get the exact metrics is to render _all_ */ - /* glyphs. As this would be a definite performance hit, it is up to */ - /* client applications to perform such computations. */ - /* */ - /* The FT_Size_Metrics structure is valid for bitmap fonts also. */ - /* */ - typedef struct FT_Size_Metrics_ - { - FT_UShort x_ppem; /* horizontal pixels per EM */ - FT_UShort y_ppem; /* vertical pixels per EM */ - - FT_Fixed x_scale; /* scaling values used to convert font */ - FT_Fixed y_scale; /* units to 26.6 fractional pixels */ - - FT_Pos ascender; /* ascender in 26.6 frac. pixels */ - FT_Pos descender; /* descender in 26.6 frac. pixels */ - FT_Pos height; /* text height in 26.6 frac. pixels */ - FT_Pos max_advance; /* max horizontal advance, in 26.6 pixels */ - - } FT_Size_Metrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_SizeRec */ - /* */ - /* <Description> */ - /* FreeType root size class structure. A size object models a face */ - /* object at a given size. */ - /* */ - /* <Fields> */ - /* face :: Handle to the parent face object. */ - /* */ - /* generic :: A typeless pointer, unused by the FreeType library or */ - /* any of its drivers. It can be used by client */ - /* applications to link their own data to each size */ - /* object. */ - /* */ - /* metrics :: Metrics for this size object. This field is read-only. */ - /* */ - typedef struct FT_SizeRec_ - { - FT_Face face; /* parent face object */ - FT_Generic generic; /* generic pointer for client uses */ - FT_Size_Metrics metrics; /* size metrics */ - FT_Size_Internal internal; - - } FT_SizeRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_SubGlyph */ - /* */ - /* <Description> */ - /* The subglyph structure is an internal object used to describe */ - /* subglyphs (for example, in the case of composites). */ - /* */ - /* <Note> */ - /* The subglyph implementation is not part of the high-level API, */ - /* hence the forward structure declaration. */ - /* */ - /* You can however retrieve subglyph information with */ - /* @FT_Get_SubGlyph_Info. */ - /* */ - typedef struct FT_SubGlyphRec_* FT_SubGlyph; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Slot_Internal */ - /* */ - /* <Description> */ - /* An opaque handle to an `FT_Slot_InternalRec' structure, used to */ - /* model private data of a given @FT_GlyphSlot object. */ - /* */ - typedef struct FT_Slot_InternalRec_* FT_Slot_Internal; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_GlyphSlotRec */ - /* */ - /* <Description> */ - /* FreeType root glyph slot class structure. A glyph slot is a */ - /* container where individual glyphs can be loaded, be they in */ - /* outline or bitmap format. */ - /* */ - /* <Fields> */ - /* library :: A handle to the FreeType library instance */ - /* this slot belongs to. */ - /* */ - /* face :: A handle to the parent face object. */ - /* */ - /* next :: In some cases (like some font tools), several */ - /* glyph slots per face object can be a good */ - /* thing. As this is rare, the glyph slots are */ - /* listed through a direct, single-linked list */ - /* using its `next' field. */ - /* */ - /* generic :: A typeless pointer unused by the FreeType */ - /* library or any of its drivers. It can be */ - /* used by client applications to link their own */ - /* data to each glyph slot object. */ - /* */ - /* metrics :: The metrics of the last loaded glyph in the */ - /* slot. The returned values depend on the last */ - /* load flags (see the @FT_Load_Glyph API */ - /* function) and can be expressed either in 26.6 */ - /* fractional pixels or font units. */ - /* */ - /* Note that even when the glyph image is */ - /* transformed, the metrics are not. */ - /* */ - /* linearHoriAdvance :: The advance width of the unhinted glyph. */ - /* Its value is expressed in 16.16 fractional */ - /* pixels, unless @FT_LOAD_LINEAR_DESIGN is set */ - /* when loading the glyph. This field can be */ - /* important to perform correct WYSIWYG layout. */ - /* Only relevant for outline glyphs. */ - /* */ - /* linearVertAdvance :: The advance height of the unhinted glyph. */ - /* Its value is expressed in 16.16 fractional */ - /* pixels, unless @FT_LOAD_LINEAR_DESIGN is set */ - /* when loading the glyph. This field can be */ - /* important to perform correct WYSIWYG layout. */ - /* Only relevant for outline glyphs. */ - /* */ - /* advance :: This shorthand is, depending on */ - /* @FT_LOAD_IGNORE_TRANSFORM, the transformed */ - /* (hinted) advance width for the glyph, in 26.6 */ - /* fractional pixel format. As specified with */ - /* @FT_LOAD_VERTICAL_LAYOUT, it uses either the */ - /* `horiAdvance' or the `vertAdvance' value of */ - /* `metrics' field. */ - /* */ - /* format :: This field indicates the format of the image */ - /* contained in the glyph slot. Typically */ - /* @FT_GLYPH_FORMAT_BITMAP, */ - /* @FT_GLYPH_FORMAT_OUTLINE, or */ - /* @FT_GLYPH_FORMAT_COMPOSITE, but others are */ - /* possible. */ - /* */ - /* bitmap :: This field is used as a bitmap descriptor */ - /* when the slot format is */ - /* @FT_GLYPH_FORMAT_BITMAP. Note that the */ - /* address and content of the bitmap buffer can */ - /* change between calls of @FT_Load_Glyph and a */ - /* few other functions. */ - /* */ - /* bitmap_left :: The bitmap's left bearing expressed in */ - /* integer pixels. Only valid if the format is */ - /* @FT_GLYPH_FORMAT_BITMAP, this is, if the */ - /* glyph slot contains a bitmap. */ - /* */ - /* bitmap_top :: The bitmap's top bearing expressed in integer */ - /* pixels. Remember that this is the distance */ - /* from the baseline to the top-most glyph */ - /* scanline, upwards y~coordinates being */ - /* *positive*. */ - /* */ - /* outline :: The outline descriptor for the current glyph */ - /* image if its format is */ - /* @FT_GLYPH_FORMAT_OUTLINE. Once a glyph is */ - /* loaded, `outline' can be transformed, */ - /* distorted, embolded, etc. However, it must */ - /* not be freed. */ - /* */ - /* num_subglyphs :: The number of subglyphs in a composite glyph. */ - /* This field is only valid for the composite */ - /* glyph format that should normally only be */ - /* loaded with the @FT_LOAD_NO_RECURSE flag. */ - /* */ - /* subglyphs :: An array of subglyph descriptors for */ - /* composite glyphs. There are `num_subglyphs' */ - /* elements in there. Currently internal to */ - /* FreeType. */ - /* */ - /* control_data :: Certain font drivers can also return the */ - /* control data for a given glyph image (e.g. */ - /* TrueType bytecode, Type~1 charstrings, etc.). */ - /* This field is a pointer to such data. */ - /* */ - /* control_len :: This is the length in bytes of the control */ - /* data. */ - /* */ - /* other :: Really wicked formats can use this pointer to */ - /* present their own glyph image to client */ - /* applications. Note that the application */ - /* needs to know about the image format. */ - /* */ - /* lsb_delta :: The difference between hinted and unhinted */ - /* left side bearing while auto-hinting is */ - /* active. Zero otherwise. */ - /* */ - /* rsb_delta :: The difference between hinted and unhinted */ - /* right side bearing while auto-hinting is */ - /* active. Zero otherwise. */ - /* */ - /* <Note> */ - /* If @FT_Load_Glyph is called with default flags (see */ - /* @FT_LOAD_DEFAULT) the glyph image is loaded in the glyph slot in */ - /* its native format (e.g., an outline glyph for TrueType and Type~1 */ - /* formats). */ - /* */ - /* This image can later be converted into a bitmap by calling */ - /* @FT_Render_Glyph. This function finds the current renderer for */ - /* the native image's format, then invokes it. */ - /* */ - /* The renderer is in charge of transforming the native image through */ - /* the slot's face transformation fields, then converting it into a */ - /* bitmap that is returned in `slot->bitmap'. */ - /* */ - /* Note that `slot->bitmap_left' and `slot->bitmap_top' are also used */ - /* to specify the position of the bitmap relative to the current pen */ - /* position (e.g., coordinates (0,0) on the baseline). Of course, */ - /* `slot->format' is also changed to @FT_GLYPH_FORMAT_BITMAP. */ - /* */ - /* <Note> */ - /* Here is a small pseudo code fragment that shows how to use */ - /* `lsb_delta' and `rsb_delta': */ - /* */ - /* { */ - /* FT_Pos origin_x = 0; */ - /* FT_Pos prev_rsb_delta = 0; */ - /* */ - /* */ - /* for all glyphs do */ - /* <compute kern between current and previous glyph and add it to */ - /* `origin_x'> */ - /* */ - /* <load glyph with `FT_Load_Glyph'> */ - /* */ - /* if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 ) */ - /* origin_x -= 64; */ - /* else if ( prev_rsb_delta - face->glyph->lsb_delta < -32 ) */ - /* origin_x += 64; */ - /* */ - /* prev_rsb_delta = face->glyph->rsb_delta; */ - /* */ - /* <save glyph image, or render glyph, or ...> */ - /* */ - /* origin_x += face->glyph->advance.x; */ - /* endfor */ - /* } */ - /* */ - typedef struct FT_GlyphSlotRec_ - { - FT_Library library; - FT_Face face; - FT_GlyphSlot next; - FT_UInt reserved; /* retained for binary compatibility */ - FT_Generic generic; - - FT_Glyph_Metrics metrics; - FT_Fixed linearHoriAdvance; - FT_Fixed linearVertAdvance; - FT_Vector advance; - - FT_Glyph_Format format; - - FT_Bitmap bitmap; - FT_Int bitmap_left; - FT_Int bitmap_top; - - FT_Outline outline; - - FT_UInt num_subglyphs; - FT_SubGlyph subglyphs; - - void* control_data; - long control_len; - - FT_Pos lsb_delta; - FT_Pos rsb_delta; - - void* other; - - FT_Slot_Internal internal; - - } FT_GlyphSlotRec; - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* F U N C T I O N S */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Init_FreeType */ - /* */ - /* <Description> */ - /* Initialize a new FreeType library object. The set of modules */ - /* that are registered by this function is determined at build time. */ - /* */ - /* <Output> */ - /* alibrary :: A handle to a new library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* In case you want to provide your own memory allocating routines, */ - /* use @FT_New_Library instead, followed by a call to */ - /* @FT_Add_Default_Modules (or a series of calls to @FT_Add_Module). */ - /* */ - /* See the documentation of @FT_Library and @FT_Face for */ - /* multi-threading issues. */ - /* */ - /* If you need reference-counting (cf. @FT_Reference_Library), use */ - /* @FT_New_Library and @FT_Done_Library. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Init_FreeType( FT_Library *alibrary ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_FreeType */ - /* */ - /* <Description> */ - /* Destroy a given FreeType library object and all of its children, */ - /* including resources, drivers, faces, sizes, etc. */ - /* */ - /* <Input> */ - /* library :: A handle to the target library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Done_FreeType( FT_Library library ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_OPEN_XXX */ - /* */ - /* <Description> */ - /* A list of bit-field constants used within the `flags' field of the */ - /* @FT_Open_Args structure. */ - /* */ - /* <Values> */ - /* FT_OPEN_MEMORY :: This is a memory-based stream. */ - /* */ - /* FT_OPEN_STREAM :: Copy the stream from the `stream' field. */ - /* */ - /* FT_OPEN_PATHNAME :: Create a new input stream from a C~path */ - /* name. */ - /* */ - /* FT_OPEN_DRIVER :: Use the `driver' field. */ - /* */ - /* FT_OPEN_PARAMS :: Use the `num_params' and `params' fields. */ - /* */ - /* <Note> */ - /* The `FT_OPEN_MEMORY', `FT_OPEN_STREAM', and `FT_OPEN_PATHNAME' */ - /* flags are mutually exclusive. */ - /* */ -#define FT_OPEN_MEMORY 0x1 -#define FT_OPEN_STREAM 0x2 -#define FT_OPEN_PATHNAME 0x4 -#define FT_OPEN_DRIVER 0x8 -#define FT_OPEN_PARAMS 0x10 - - - /* these constants are deprecated; use the corresponding `FT_OPEN_XXX' */ - /* values instead */ -#define ft_open_memory FT_OPEN_MEMORY -#define ft_open_stream FT_OPEN_STREAM -#define ft_open_pathname FT_OPEN_PATHNAME -#define ft_open_driver FT_OPEN_DRIVER -#define ft_open_params FT_OPEN_PARAMS - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Parameter */ - /* */ - /* <Description> */ - /* A simple structure used to pass more or less generic parameters to */ - /* @FT_Open_Face. */ - /* */ - /* <Fields> */ - /* tag :: A four-byte identification tag. */ - /* */ - /* data :: A pointer to the parameter data. */ - /* */ - /* <Note> */ - /* The ID and function of parameters are driver-specific. See the */ - /* various FT_PARAM_TAG_XXX flags for more information. */ - /* */ - typedef struct FT_Parameter_ - { - FT_ULong tag; - FT_Pointer data; - - } FT_Parameter; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Open_Args */ - /* */ - /* <Description> */ - /* A structure used to indicate how to open a new font file or */ - /* stream. A pointer to such a structure can be used as a parameter */ - /* for the functions @FT_Open_Face and @FT_Attach_Stream. */ - /* */ - /* <Fields> */ - /* flags :: A set of bit flags indicating how to use the */ - /* structure. */ - /* */ - /* memory_base :: The first byte of the file in memory. */ - /* */ - /* memory_size :: The size in bytes of the file in memory. */ - /* */ - /* pathname :: A pointer to an 8-bit file pathname. */ - /* */ - /* stream :: A handle to a source stream object. */ - /* */ - /* driver :: This field is exclusively used by @FT_Open_Face; */ - /* it simply specifies the font driver to use to open */ - /* the face. If set to~0, FreeType tries to load the */ - /* face with each one of the drivers in its list. */ - /* */ - /* num_params :: The number of extra parameters. */ - /* */ - /* params :: Extra parameters passed to the font driver when */ - /* opening a new face. */ - /* */ - /* <Note> */ - /* The stream type is determined by the contents of `flags' that */ - /* are tested in the following order by @FT_Open_Face: */ - /* */ - /* If the @FT_OPEN_MEMORY bit is set, assume that this is a */ - /* memory file of `memory_size' bytes, located at `memory_address'. */ - /* The data are are not copied, and the client is responsible for */ - /* releasing and destroying them _after_ the corresponding call to */ - /* @FT_Done_Face. */ - /* */ - /* Otherwise, if the @FT_OPEN_STREAM bit is set, assume that a */ - /* custom input stream `stream' is used. */ - /* */ - /* Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this */ - /* is a normal file and use `pathname' to open it. */ - /* */ - /* If the @FT_OPEN_DRIVER bit is set, @FT_Open_Face only tries to */ - /* open the file with the driver whose handler is in `driver'. */ - /* */ - /* If the @FT_OPEN_PARAMS bit is set, the parameters given by */ - /* `num_params' and `params' is used. They are ignored otherwise. */ - /* */ - /* Ideally, both the `pathname' and `params' fields should be tagged */ - /* as `const'; this is missing for API backwards compatibility. In */ - /* other words, applications should treat them as read-only. */ - /* */ - typedef struct FT_Open_Args_ - { - FT_UInt flags; - const FT_Byte* memory_base; - FT_Long memory_size; - FT_String* pathname; - FT_Stream stream; - FT_Module driver; - FT_Int num_params; - FT_Parameter* params; - - } FT_Open_Args; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face */ - /* */ - /* <Description> */ - /* This function calls @FT_Open_Face to open a font by its pathname. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* pathname :: A path to the font file. */ - /* */ - /* face_index :: The index of the face within the font. The first */ - /* face has index~0. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. If `face_index' is */ - /* greater than or equal to zero, it must be non-NULL. */ - /* See @FT_Open_Face for more details. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Use @FT_Done_Face to destroy the created @FT_Face object (along */ - /* with its slot and sizes). */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Face( FT_Library library, - const char* filepathname, - FT_Long face_index, - FT_Face *aface ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Memory_Face */ - /* */ - /* <Description> */ - /* This function calls @FT_Open_Face to open a font that has been */ - /* loaded into memory. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* file_base :: A pointer to the beginning of the font data. */ - /* */ - /* file_size :: The size of the memory chunk used by the font data. */ - /* */ - /* face_index :: The index of the face within the font. The first */ - /* face has index~0. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. If `face_index' is */ - /* greater than or equal to zero, it must be non-NULL. */ - /* See @FT_Open_Face for more details. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You must not deallocate the memory before calling @FT_Done_Face. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Memory_Face( FT_Library library, - const FT_Byte* file_base, - FT_Long file_size, - FT_Long face_index, - FT_Face *aface ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Open_Face */ - /* */ - /* <Description> */ - /* Create a face object from a given resource described by */ - /* @FT_Open_Args. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* args :: A pointer to an `FT_Open_Args' structure that must */ - /* be filled by the caller. */ - /* */ - /* face_index :: The index of the face within the font. The first */ - /* face has index~0. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. If `face_index' is */ - /* greater than or equal to zero, it must be non-NULL. */ - /* See note below. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Unlike FreeType 1.x, this function automatically creates a glyph */ - /* slot for the face object that can be accessed directly through */ - /* `face->glyph'. */ - /* */ - /* FT_Open_Face can be used to quickly check whether the font */ - /* format of a given font resource is supported by FreeType. If the */ - /* `face_index' field is negative, the function's return value is~0 */ - /* if the font format is recognized, or non-zero otherwise; */ - /* the function returns a more or less empty face handle in `*aface' */ - /* (if `aface' isn't NULL). The only useful field in this special */ - /* case is `face->num_faces' that gives the number of faces within */ - /* the font file. After examination, the returned @FT_Face structure */ - /* should be deallocated with a call to @FT_Done_Face. */ - /* */ - /* Each new face object created with this function also owns a */ - /* default @FT_Size object, accessible as `face->size'. */ - /* */ - /* One @FT_Library instance can have multiple face objects, this is, */ - /* @FT_Open_Face and its siblings can be called multiple times using */ - /* the same `library' argument. */ - /* */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Face. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Open_Face( FT_Library library, - const FT_Open_Args* args, - FT_Long face_index, - FT_Face *aface ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Attach_File */ - /* */ - /* <Description> */ - /* This function calls @FT_Attach_Stream to attach a file. */ - /* */ - /* <InOut> */ - /* face :: The target face object. */ - /* */ - /* <Input> */ - /* filepathname :: The pathname. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Attach_File( FT_Face face, - const char* filepathname ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Attach_Stream */ - /* */ - /* <Description> */ - /* `Attach' data to a face object. Normally, this is used to read */ - /* additional information for the face object. For example, you can */ - /* attach an AFM file that comes with a Type~1 font to get the */ - /* kerning values and other metrics. */ - /* */ - /* <InOut> */ - /* face :: The target face object. */ - /* */ - /* <Input> */ - /* parameters :: A pointer to @FT_Open_Args that must be filled by */ - /* the caller. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The meaning of the `attach' (i.e., what really happens when the */ - /* new file is read) is not fixed by FreeType itself. It really */ - /* depends on the font format (and thus the font driver). */ - /* */ - /* Client applications are expected to know what they are doing */ - /* when invoking this function. Most drivers simply do not implement */ - /* file attachments. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Attach_Stream( FT_Face face, - FT_Open_Args* parameters ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Reference_Face */ - /* */ - /* <Description> */ - /* A counter gets initialized to~1 at the time an @FT_Face structure */ - /* is created. This function increments the counter. @FT_Done_Face */ - /* then only destroys a face if the counter is~1, otherwise it simply */ - /* decrements the counter. */ - /* */ - /* This function helps in managing life-cycles of structures that */ - /* reference @FT_Face objects. */ - /* */ - /* <Input> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Since> */ - /* 2.4.2 */ - /* */ - FT_EXPORT( FT_Error ) - FT_Reference_Face( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Face */ - /* */ - /* <Description> */ - /* Discard a given face object, as well as all of its child slots and */ - /* sizes. */ - /* */ - /* <Input> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Face. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Done_Face( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Select_Size */ - /* */ - /* <Description> */ - /* Select a bitmap strike. */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Input> */ - /* strike_index :: The index of the bitmap strike in the */ - /* `available_sizes' field of @FT_FaceRec structure. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Select_Size( FT_Face face, - FT_Int strike_index ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Size_Request_Type */ - /* */ - /* <Description> */ - /* An enumeration type that lists the supported size request types. */ - /* */ - /* <Values> */ - /* FT_SIZE_REQUEST_TYPE_NOMINAL :: */ - /* The nominal size. The `units_per_EM' field of @FT_FaceRec is */ - /* used to determine both scaling values. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_REAL_DIM :: */ - /* The real dimension. The sum of the the `ascender' and (minus */ - /* of) the `descender' fields of @FT_FaceRec are used to determine */ - /* both scaling values. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_BBOX :: */ - /* The font bounding box. The width and height of the `bbox' field */ - /* of @FT_FaceRec are used to determine the horizontal and vertical */ - /* scaling value, respectively. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_CELL :: */ - /* The `max_advance_width' field of @FT_FaceRec is used to */ - /* determine the horizontal scaling value; the vertical scaling */ - /* value is determined the same way as */ - /* @FT_SIZE_REQUEST_TYPE_REAL_DIM does. Finally, both scaling */ - /* values are set to the smaller one. This type is useful if you */ - /* want to specify the font size for, say, a window of a given */ - /* dimension and 80x24 cells. */ - /* */ - /* FT_SIZE_REQUEST_TYPE_SCALES :: */ - /* Specify the scaling values directly. */ - /* */ - /* <Note> */ - /* The above descriptions only apply to scalable formats. For bitmap */ - /* formats, the behaviour is up to the driver. */ - /* */ - /* See the note section of @FT_Size_Metrics if you wonder how size */ - /* requesting relates to scaling values. */ - /* */ - typedef enum FT_Size_Request_Type_ - { - FT_SIZE_REQUEST_TYPE_NOMINAL, - FT_SIZE_REQUEST_TYPE_REAL_DIM, - FT_SIZE_REQUEST_TYPE_BBOX, - FT_SIZE_REQUEST_TYPE_CELL, - FT_SIZE_REQUEST_TYPE_SCALES, - - FT_SIZE_REQUEST_TYPE_MAX - - } FT_Size_Request_Type; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_RequestRec */ - /* */ - /* <Description> */ - /* A structure used to model a size request. */ - /* */ - /* <Fields> */ - /* type :: See @FT_Size_Request_Type. */ - /* */ - /* width :: The desired width. */ - /* */ - /* height :: The desired height. */ - /* */ - /* horiResolution :: The horizontal resolution. If set to zero, */ - /* `width' is treated as a 26.6 fractional pixel */ - /* value. */ - /* */ - /* vertResolution :: The vertical resolution. If set to zero, */ - /* `height' is treated as a 26.6 fractional pixel */ - /* value. */ - /* */ - /* <Note> */ - /* If `width' is zero, then the horizontal scaling value is set equal */ - /* to the vertical scaling value, and vice versa. */ - /* */ - typedef struct FT_Size_RequestRec_ - { - FT_Size_Request_Type type; - FT_Long width; - FT_Long height; - FT_UInt horiResolution; - FT_UInt vertResolution; - - } FT_Size_RequestRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_Request */ - /* */ - /* <Description> */ - /* A handle to a size request structure. */ - /* */ - typedef struct FT_Size_RequestRec_ *FT_Size_Request; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Request_Size */ - /* */ - /* <Description> */ - /* Resize the scale of the active @FT_Size object in a face. */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Input> */ - /* req :: A pointer to a @FT_Size_RequestRec. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Although drivers may select the bitmap strike matching the */ - /* request, you should not rely on this if you intend to select a */ - /* particular bitmap strike. Use @FT_Select_Size instead in that */ - /* case. */ - /* */ - /* The relation between the requested size and the resulting glyph */ - /* size is dependent entirely on how the size is defined in the */ - /* source face. The font designer chooses the final size of each */ - /* glyph relative to this size. For more information refer to */ - /* `http://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html' */ - /* */ - /* Don't use this function if you are using the FreeType cache API. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Request_Size( FT_Face face, - FT_Size_Request req ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Char_Size */ - /* */ - /* <Description> */ - /* This function calls @FT_Request_Size to request the nominal size */ - /* (in points). */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object. */ - /* */ - /* <Input> */ - /* char_width :: The nominal width, in 26.6 fractional points. */ - /* */ - /* char_height :: The nominal height, in 26.6 fractional points. */ - /* */ - /* horz_resolution :: The horizontal resolution in dpi. */ - /* */ - /* vert_resolution :: The vertical resolution in dpi. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If either the character width or height is zero, it is set equal */ - /* to the other value. */ - /* */ - /* If either the horizontal or vertical resolution is zero, it is set */ - /* equal to the other value. */ - /* */ - /* A character width or height smaller than 1pt is set to 1pt; if */ - /* both resolution values are zero, they are set to 72dpi. */ - /* */ - /* Don't use this function if you are using the FreeType cache API. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Char_Size( FT_Face face, - FT_F26Dot6 char_width, - FT_F26Dot6 char_height, - FT_UInt horz_resolution, - FT_UInt vert_resolution ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Pixel_Sizes */ - /* */ - /* <Description> */ - /* This function calls @FT_Request_Size to request the nominal size */ - /* (in pixels). */ - /* */ - /* <InOut> */ - /* face :: A handle to the target face object. */ - /* */ - /* <Input> */ - /* pixel_width :: The nominal width, in pixels. */ - /* */ - /* pixel_height :: The nominal height, in pixels. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You should not rely on the resulting glyphs matching, or being */ - /* constrained, to this pixel size. Refer to @FT_Request_Size to */ - /* understand how requested sizes relate to actual sizes. */ - /* */ - /* Don't use this function if you are using the FreeType cache API. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Pixel_Sizes( FT_Face face, - FT_UInt pixel_width, - FT_UInt pixel_height ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Load_Glyph */ - /* */ - /* <Description> */ - /* A function used to load a single glyph into the glyph slot of a */ - /* face object. */ - /* */ - /* <InOut> */ - /* face :: A handle to the target face object where the glyph */ - /* is loaded. */ - /* */ - /* <Input> */ - /* glyph_index :: The index of the glyph in the font file. For */ - /* CID-keyed fonts (either in PS or in CFF format) */ - /* this argument specifies the CID value. */ - /* */ - /* load_flags :: A flag indicating what to load for this glyph. The */ - /* @FT_LOAD_XXX constants can be used to control the */ - /* glyph loading process (e.g., whether the outline */ - /* should be scaled, whether to load bitmaps or not, */ - /* whether to hint the outline, etc). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The loaded glyph may be transformed. See @FT_Set_Transform for */ - /* the details. */ - /* */ - /* For subsetted CID-keyed fonts, `FT_Err_Invalid_Argument' is */ - /* returned for invalid CID values (this is, for CID values that */ - /* don't have a corresponding glyph in the font). See the discussion */ - /* of the @FT_FACE_FLAG_CID_KEYED flag for more details. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Load_Glyph( FT_Face face, - FT_UInt glyph_index, - FT_Int32 load_flags ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Load_Char */ - /* */ - /* <Description> */ - /* A function used to load a single glyph into the glyph slot of a */ - /* face object, according to its character code. */ - /* */ - /* <InOut> */ - /* face :: A handle to a target face object where the glyph */ - /* is loaded. */ - /* */ - /* <Input> */ - /* char_code :: The glyph's character code, according to the */ - /* current charmap used in the face. */ - /* */ - /* load_flags :: A flag indicating what to load for this glyph. The */ - /* @FT_LOAD_XXX constants can be used to control the */ - /* glyph loading process (e.g., whether the outline */ - /* should be scaled, whether to load bitmaps or not, */ - /* whether to hint the outline, etc). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function simply calls @FT_Get_Char_Index and @FT_Load_Glyph. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Load_Char( FT_Face face, - FT_ULong char_code, - FT_Int32 load_flags ); - - - /************************************************************************* - * - * @enum: - * FT_LOAD_XXX - * - * @description: - * A list of bit-field constants used with @FT_Load_Glyph to indicate - * what kind of operations to perform during glyph loading. - * - * @values: - * FT_LOAD_DEFAULT :: - * Corresponding to~0, this value is used as the default glyph load - * operation. In this case, the following happens: - * - * 1. FreeType looks for a bitmap for the glyph corresponding to the - * face's current size. If one is found, the function returns. - * The bitmap data can be accessed from the glyph slot (see note - * below). - * - * 2. If no embedded bitmap is searched or found, FreeType looks for a - * scalable outline. If one is found, it is loaded from the font - * file, scaled to device pixels, then `hinted' to the pixel grid - * in order to optimize it. The outline data can be accessed from - * the glyph slot (see note below). - * - * Note that by default, the glyph loader doesn't render outlines into - * bitmaps. The following flags are used to modify this default - * behaviour to more specific and useful cases. - * - * FT_LOAD_NO_SCALE :: - * Don't scale the loaded outline glyph but keep it in font units. - * - * This flag implies @FT_LOAD_NO_HINTING and @FT_LOAD_NO_BITMAP, and - * unsets @FT_LOAD_RENDER. - * - * If the font is `tricky' (see @FT_FACE_FLAG_TRICKY for more), using - * FT_LOAD_NO_SCALE usually yields meaningless outlines because the - * subglyphs must be scaled and positioned with hinting instructions. - * This can be solved by loading the font without FT_LOAD_NO_SCALE and - * setting the character size to `font->units_per_EM'. - * - * FT_LOAD_NO_HINTING :: - * Disable hinting. This generally generates `blurrier' bitmap glyphs - * when the glyph are rendered in any of the anti-aliased modes. See - * also the note below. - * - * This flag is implied by @FT_LOAD_NO_SCALE. - * - * FT_LOAD_RENDER :: - * Call @FT_Render_Glyph after the glyph is loaded. By default, the - * glyph is rendered in @FT_RENDER_MODE_NORMAL mode. This can be - * overridden by @FT_LOAD_TARGET_XXX or @FT_LOAD_MONOCHROME. - * - * This flag is unset by @FT_LOAD_NO_SCALE. - * - * FT_LOAD_NO_BITMAP :: - * Ignore bitmap strikes when loading. Bitmap-only fonts ignore this - * flag. - * - * @FT_LOAD_NO_SCALE always sets this flag. - * - * FT_LOAD_VERTICAL_LAYOUT :: - * Load the glyph for vertical text layout. In particular, the - * `advance' value in the @FT_GlyphSlotRec structure is set to the - * `vertAdvance' value of the `metrics' field. - * - * In case @FT_HAS_VERTICAL doesn't return true, you shouldn't use - * this flag currently. Reason is that in this case vertical metrics - * get synthesized, and those values are not always consistent across - * various font formats. - * - * FT_LOAD_FORCE_AUTOHINT :: - * Indicates that the auto-hinter is preferred over the font's native - * hinter. See also the note below. - * - * FT_LOAD_PEDANTIC :: - * Indicates that the font driver should perform pedantic verifications - * during glyph loading. This is mostly used to detect broken glyphs - * in fonts. By default, FreeType tries to handle broken fonts also. - * - * In particular, errors from the TrueType bytecode engine are not - * passed to the application if this flag is not set; this might - * result in partially hinted or distorted glyphs in case a glyph's - * bytecode is buggy. - * - * FT_LOAD_NO_RECURSE :: - * Indicate that the font driver should not load composite glyphs - * recursively. Instead, it should set the `num_subglyph' and - * `subglyphs' values of the glyph slot accordingly, and set - * `glyph->format' to @FT_GLYPH_FORMAT_COMPOSITE. The description of - * subglyphs can then be accessed with @FT_Get_SubGlyph_Info. - * - * This flag implies @FT_LOAD_NO_SCALE and @FT_LOAD_IGNORE_TRANSFORM. - * - * FT_LOAD_IGNORE_TRANSFORM :: - * Indicates that the transform matrix set by @FT_Set_Transform should - * be ignored. - * - * FT_LOAD_MONOCHROME :: - * This flag is used with @FT_LOAD_RENDER to indicate that you want to - * render an outline glyph to a 1-bit monochrome bitmap glyph, with - * 8~pixels packed into each byte of the bitmap data. - * - * Note that this has no effect on the hinting algorithm used. You - * should rather use @FT_LOAD_TARGET_MONO so that the - * monochrome-optimized hinting algorithm is used. - * - * FT_LOAD_LINEAR_DESIGN :: - * Indicates that the `linearHoriAdvance' and `linearVertAdvance' - * fields of @FT_GlyphSlotRec should be kept in font units. See - * @FT_GlyphSlotRec for details. - * - * FT_LOAD_NO_AUTOHINT :: - * Disable auto-hinter. See also the note below. - * - * FT_LOAD_COLOR :: - * This flag is used to request loading of color embedded-bitmap - * images. The resulting color bitmaps, if available, will have the - * @FT_PIXEL_MODE_BGRA format. When the flag is not used and color - * bitmaps are found, they will be converted to 256-level gray - * bitmaps transparently. Those bitmaps will be in the - * @FT_PIXEL_MODE_GRAY format. - * - * FT_LOAD_CROP_BITMAP :: - * Ignored. Deprecated. - * - * FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH :: - * Ignored. Deprecated. - * - * @note: - * By default, hinting is enabled and the font's native hinter (see - * @FT_FACE_FLAG_HINTER) is preferred over the auto-hinter. You can - * disable hinting by setting @FT_LOAD_NO_HINTING or change the - * precedence by setting @FT_LOAD_FORCE_AUTOHINT. You can also set - * @FT_LOAD_NO_AUTOHINT in case you don't want the auto-hinter to be - * used at all. - * - * See the description of @FT_FACE_FLAG_TRICKY for a special exception - * (affecting only a handful of Asian fonts). - * - * Besides deciding which hinter to use, you can also decide which - * hinting algorithm to use. See @FT_LOAD_TARGET_XXX for details. - * - * Note that the auto-hinter needs a valid Unicode cmap (either a native - * one or synthesized by FreeType) for producing correct results. If a - * font provides an incorrect mapping (for example, assigning the - * character code U+005A, LATIN CAPITAL LETTER Z, to a glyph depicting a - * mathematical integral sign), the auto-hinter might produce useless - * results. - * - */ -#define FT_LOAD_DEFAULT 0x0 -#define FT_LOAD_NO_SCALE ( 1L << 0 ) -#define FT_LOAD_NO_HINTING ( 1L << 1 ) -#define FT_LOAD_RENDER ( 1L << 2 ) -#define FT_LOAD_NO_BITMAP ( 1L << 3 ) -#define FT_LOAD_VERTICAL_LAYOUT ( 1L << 4 ) -#define FT_LOAD_FORCE_AUTOHINT ( 1L << 5 ) -#define FT_LOAD_CROP_BITMAP ( 1L << 6 ) -#define FT_LOAD_PEDANTIC ( 1L << 7 ) -#define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ( 1L << 9 ) -#define FT_LOAD_NO_RECURSE ( 1L << 10 ) -#define FT_LOAD_IGNORE_TRANSFORM ( 1L << 11 ) -#define FT_LOAD_MONOCHROME ( 1L << 12 ) -#define FT_LOAD_LINEAR_DESIGN ( 1L << 13 ) -#define FT_LOAD_NO_AUTOHINT ( 1L << 15 ) - /* Bits 16..19 are used by `FT_LOAD_TARGET_' */ -#define FT_LOAD_COLOR ( 1L << 20 ) - - /* */ - - /* used internally only by certain font drivers! */ -#define FT_LOAD_ADVANCE_ONLY ( 1L << 8 ) -#define FT_LOAD_SBITS_ONLY ( 1L << 14 ) - - - /************************************************************************** - * - * @enum: - * FT_LOAD_TARGET_XXX - * - * @description: - * A list of values that are used to select a specific hinting algorithm - * to use by the hinter. You should OR one of these values to your - * `load_flags' when calling @FT_Load_Glyph. - * - * Note that font's native hinters may ignore the hinting algorithm you - * have specified (e.g., the TrueType bytecode interpreter). You can set - * @FT_LOAD_FORCE_AUTOHINT to ensure that the auto-hinter is used. - * - * Also note that @FT_LOAD_TARGET_LIGHT is an exception, in that it - * always implies @FT_LOAD_FORCE_AUTOHINT. - * - * @values: - * FT_LOAD_TARGET_NORMAL :: - * This corresponds to the default hinting algorithm, optimized for - * standard gray-level rendering. For monochrome output, use - * @FT_LOAD_TARGET_MONO instead. - * - * FT_LOAD_TARGET_LIGHT :: - * A lighter hinting algorithm for non-monochrome modes. Many - * generated glyphs are more fuzzy but better resemble its original - * shape. A bit like rendering on Mac OS~X. - * - * As a special exception, this target implies @FT_LOAD_FORCE_AUTOHINT. - * - * FT_LOAD_TARGET_MONO :: - * Strong hinting algorithm that should only be used for monochrome - * output. The result is probably unpleasant if the glyph is rendered - * in non-monochrome modes. - * - * FT_LOAD_TARGET_LCD :: - * A variant of @FT_LOAD_TARGET_NORMAL optimized for horizontally - * decimated LCD displays. - * - * FT_LOAD_TARGET_LCD_V :: - * A variant of @FT_LOAD_TARGET_NORMAL optimized for vertically - * decimated LCD displays. - * - * @note: - * You should use only _one_ of the FT_LOAD_TARGET_XXX values in your - * `load_flags'. They can't be ORed. - * - * If @FT_LOAD_RENDER is also set, the glyph is rendered in the - * corresponding mode (i.e., the mode that matches the used algorithm - * best). An exeption is FT_LOAD_TARGET_MONO since it implies - * @FT_LOAD_MONOCHROME. - * - * You can use a hinting algorithm that doesn't correspond to the same - * rendering mode. As an example, it is possible to use the `light' - * hinting algorithm and have the results rendered in horizontal LCD - * pixel mode, with code like - * - * { - * FT_Load_Glyph( face, glyph_index, - * load_flags | FT_LOAD_TARGET_LIGHT ); - * - * FT_Render_Glyph( face->glyph, FT_RENDER_MODE_LCD ); - * } - * - */ -#define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 15 ) << 16 ) - -#define FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL ) -#define FT_LOAD_TARGET_LIGHT FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT ) -#define FT_LOAD_TARGET_MONO FT_LOAD_TARGET_( FT_RENDER_MODE_MONO ) -#define FT_LOAD_TARGET_LCD FT_LOAD_TARGET_( FT_RENDER_MODE_LCD ) -#define FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V ) - - - /************************************************************************** - * - * @macro: - * FT_LOAD_TARGET_MODE - * - * @description: - * Return the @FT_Render_Mode corresponding to a given - * @FT_LOAD_TARGET_XXX value. - * - */ -#define FT_LOAD_TARGET_MODE( x ) ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) ) - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Transform */ - /* */ - /* <Description> */ - /* A function used to set the transformation that is applied to glyph */ - /* images when they are loaded into a glyph slot through */ - /* @FT_Load_Glyph. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to the transformation's 2x2 matrix. Use~0 for */ - /* the identity matrix. */ - /* delta :: A pointer to the translation vector. Use~0 for the null */ - /* vector. */ - /* */ - /* <Note> */ - /* The transformation is only applied to scalable image formats after */ - /* the glyph has been loaded. It means that hinting is unaltered by */ - /* the transformation and is performed on the character size given in */ - /* the last call to @FT_Set_Char_Size or @FT_Set_Pixel_Sizes. */ - /* */ - /* Note that this also transforms the `face.glyph.advance' field, but */ - /* *not* the values in `face.glyph.metrics'. */ - /* */ - FT_EXPORT( void ) - FT_Set_Transform( FT_Face face, - FT_Matrix* matrix, - FT_Vector* delta ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Render_Mode */ - /* */ - /* <Description> */ - /* An enumeration type that lists the render modes supported by */ - /* FreeType~2. Each mode corresponds to a specific type of scanline */ - /* conversion performed on the outline. */ - /* */ - /* For bitmap fonts and embedded bitmaps the `bitmap->pixel_mode' */ - /* field in the @FT_GlyphSlotRec structure gives the format of the */ - /* returned bitmap. */ - /* */ - /* All modes except @FT_RENDER_MODE_MONO use 256 levels of opacity. */ - /* */ - /* <Values> */ - /* FT_RENDER_MODE_NORMAL :: */ - /* This is the default render mode; it corresponds to 8-bit */ - /* anti-aliased bitmaps. */ - /* */ - /* FT_RENDER_MODE_LIGHT :: */ - /* This is equivalent to @FT_RENDER_MODE_NORMAL. It is only */ - /* defined as a separate value because render modes are also used */ - /* indirectly to define hinting algorithm selectors. See */ - /* @FT_LOAD_TARGET_XXX for details. */ - /* */ - /* FT_RENDER_MODE_MONO :: */ - /* This mode corresponds to 1-bit bitmaps (with 2~levels of */ - /* opacity). */ - /* */ - /* FT_RENDER_MODE_LCD :: */ - /* This mode corresponds to horizontal RGB and BGR sub-pixel */ - /* displays like LCD screens. It produces 8-bit bitmaps that are */ - /* 3~times the width of the original glyph outline in pixels, and */ - /* which use the @FT_PIXEL_MODE_LCD mode. */ - /* */ - /* FT_RENDER_MODE_LCD_V :: */ - /* This mode corresponds to vertical RGB and BGR sub-pixel displays */ - /* (like PDA screens, rotated LCD displays, etc.). It produces */ - /* 8-bit bitmaps that are 3~times the height of the original */ - /* glyph outline in pixels and use the @FT_PIXEL_MODE_LCD_V mode. */ - /* */ - /* <Note> */ - /* The LCD-optimized glyph bitmaps produced by FT_Render_Glyph can be */ - /* filtered to reduce color-fringes by using @FT_Library_SetLcdFilter */ - /* (not active in the default builds). It is up to the caller to */ - /* either call @FT_Library_SetLcdFilter (if available) or do the */ - /* filtering itself. */ - /* */ - /* The selected render mode only affects vector glyphs of a font. */ - /* Embedded bitmaps often have a different pixel mode like */ - /* @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform */ - /* them into 8-bit pixmaps. */ - /* */ - typedef enum FT_Render_Mode_ - { - FT_RENDER_MODE_NORMAL = 0, - FT_RENDER_MODE_LIGHT, - FT_RENDER_MODE_MONO, - FT_RENDER_MODE_LCD, - FT_RENDER_MODE_LCD_V, - - FT_RENDER_MODE_MAX - - } FT_Render_Mode; - - - /* these constants are deprecated; use the corresponding */ - /* `FT_Render_Mode' values instead */ -#define ft_render_mode_normal FT_RENDER_MODE_NORMAL -#define ft_render_mode_mono FT_RENDER_MODE_MONO - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Render_Glyph */ - /* */ - /* <Description> */ - /* Convert a given glyph image to a bitmap. It does so by inspecting */ - /* the glyph image format, finding the relevant renderer, and */ - /* invoking it. */ - /* */ - /* <InOut> */ - /* slot :: A handle to the glyph slot containing the image to */ - /* convert. */ - /* */ - /* <Input> */ - /* render_mode :: This is the render mode used to render the glyph */ - /* image into a bitmap. See @FT_Render_Mode for a */ - /* list of possible values. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* To get meaningful results, font scaling values must be set with */ - /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Render_Glyph( FT_GlyphSlot slot, - FT_Render_Mode render_mode ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Kerning_Mode */ - /* */ - /* <Description> */ - /* An enumeration used to specify which kerning values to return in */ - /* @FT_Get_Kerning. */ - /* */ - /* <Values> */ - /* FT_KERNING_DEFAULT :: Return scaled and grid-fitted kerning */ - /* distances (value is~0). */ - /* */ - /* FT_KERNING_UNFITTED :: Return scaled but un-grid-fitted kerning */ - /* distances. */ - /* */ - /* FT_KERNING_UNSCALED :: Return the kerning vector in original font */ - /* units. */ - /* */ - typedef enum FT_Kerning_Mode_ - { - FT_KERNING_DEFAULT = 0, - FT_KERNING_UNFITTED, - FT_KERNING_UNSCALED - - } FT_Kerning_Mode; - - - /* these constants are deprecated; use the corresponding */ - /* `FT_Kerning_Mode' values instead */ -#define ft_kerning_default FT_KERNING_DEFAULT -#define ft_kerning_unfitted FT_KERNING_UNFITTED -#define ft_kerning_unscaled FT_KERNING_UNSCALED - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Kerning */ - /* */ - /* <Description> */ - /* Return the kerning vector between two glyphs of a same face. */ - /* */ - /* <Input> */ - /* face :: A handle to a source face object. */ - /* */ - /* left_glyph :: The index of the left glyph in the kern pair. */ - /* */ - /* right_glyph :: The index of the right glyph in the kern pair. */ - /* */ - /* kern_mode :: See @FT_Kerning_Mode for more information. */ - /* Determines the scale and dimension of the returned */ - /* kerning vector. */ - /* */ - /* <Output> */ - /* akerning :: The kerning vector. This is either in font units */ - /* or in pixels (26.6 format) for scalable formats, */ - /* and in pixels for fixed-sizes formats. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Only horizontal layouts (left-to-right & right-to-left) are */ - /* supported by this method. Other layouts, or more sophisticated */ - /* kernings, are out of the scope of this API function -- they can be */ - /* implemented through format-specific interfaces. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Kerning( FT_Face face, - FT_UInt left_glyph, - FT_UInt right_glyph, - FT_UInt kern_mode, - FT_Vector *akerning ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Track_Kerning */ - /* */ - /* <Description> */ - /* Return the track kerning for a given face object at a given size. */ - /* */ - /* <Input> */ - /* face :: A handle to a source face object. */ - /* */ - /* point_size :: The point size in 16.16 fractional points. */ - /* */ - /* degree :: The degree of tightness. Increasingly negative */ - /* values represent tighter track kerning, while */ - /* increasingly positive values represent looser track */ - /* kerning. Value zero means no track kerning. */ - /* */ - /* <Output> */ - /* akerning :: The kerning in 16.16 fractional points, to be */ - /* uniformly applied between all glyphs. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* Currently, only the Type~1 font driver supports track kerning, */ - /* using data from AFM files (if attached with @FT_Attach_File or */ - /* @FT_Attach_Stream). */ - /* */ - /* Only very few AFM files come with track kerning data; please refer */ - /* to the Adobe's AFM specification for more details. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Track_Kerning( FT_Face face, - FT_Fixed point_size, - FT_Int degree, - FT_Fixed* akerning ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Glyph_Name */ - /* */ - /* <Description> */ - /* Retrieve the ASCII name of a given glyph in a face. This only */ - /* works for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1. */ - /* */ - /* <Input> */ - /* face :: A handle to a source face object. */ - /* */ - /* glyph_index :: The glyph index. */ - /* */ - /* buffer_max :: The maximum number of bytes available in the */ - /* buffer. */ - /* */ - /* <Output> */ - /* buffer :: A pointer to a target buffer where the name is */ - /* copied to. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* An error is returned if the face doesn't provide glyph names or if */ - /* the glyph index is invalid. In all cases of failure, the first */ - /* byte of `buffer' is set to~0 to indicate an empty name. */ - /* */ - /* The glyph name is truncated to fit within the buffer if it is too */ - /* long. The returned string is always zero-terminated. */ - /* */ - /* Be aware that FreeType reorders glyph indices internally so that */ - /* glyph index~0 always corresponds to the `missing glyph' (called */ - /* `.notdef'). */ - /* */ - /* This function always returns an error if the config macro */ - /* `FT_CONFIG_OPTION_NO_GLYPH_NAMES' is not defined in `ftoptions.h'. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Glyph_Name( FT_Face face, - FT_UInt glyph_index, - FT_Pointer buffer, - FT_UInt buffer_max ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Postscript_Name */ - /* */ - /* <Description> */ - /* Retrieve the ASCII PostScript name of a given face, if available. */ - /* This only works with PostScript and TrueType fonts. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Return> */ - /* A pointer to the face's PostScript name. NULL if unavailable. */ - /* */ - /* <Note> */ - /* The returned pointer is owned by the face and is destroyed with */ - /* it. */ - /* */ - FT_EXPORT( const char* ) - FT_Get_Postscript_Name( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Select_Charmap */ - /* */ - /* <Description> */ - /* Select a given charmap by its encoding tag (as listed in */ - /* `freetype.h'). */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Input> */ - /* encoding :: A handle to the selected encoding. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function returns an error if no charmap in the face */ - /* corresponds to the encoding queried here. */ - /* */ - /* Because many fonts contain more than a single cmap for Unicode */ - /* encoding, this function has some special code to select the one */ - /* that covers Unicode best (`best' in the sense that a UCS-4 cmap is */ - /* preferred to a UCS-2 cmap). It is thus preferable to */ - /* @FT_Set_Charmap in this case. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Select_Charmap( FT_Face face, - FT_Encoding encoding ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Charmap */ - /* */ - /* <Description> */ - /* Select a given charmap for character code to glyph index mapping. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Input> */ - /* charmap :: A handle to the selected charmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function returns an error if the charmap is not part of */ - /* the face (i.e., if it is not listed in the `face->charmaps' */ - /* table). */ - /* */ - /* It also fails if a type~14 charmap is selected. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Charmap( FT_Face face, - FT_CharMap charmap ); - - - /************************************************************************* - * - * @function: - * FT_Get_Charmap_Index - * - * @description: - * Retrieve index of a given charmap. - * - * @input: - * charmap :: - * A handle to a charmap. - * - * @return: - * The index into the array of character maps within the face to which - * `charmap' belongs. If an error occurs, -1 is returned. - * - */ - FT_EXPORT( FT_Int ) - FT_Get_Charmap_Index( FT_CharMap charmap ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Char_Index */ - /* */ - /* <Description> */ - /* Return the glyph index of a given character code. This function */ - /* uses a charmap object to do the mapping. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* charcode :: The character code. */ - /* */ - /* <Return> */ - /* The glyph index. 0~means `undefined character code'. */ - /* */ - /* <Note> */ - /* If you use FreeType to manipulate the contents of font files */ - /* directly, be aware that the glyph index returned by this function */ - /* doesn't always correspond to the internal indices used within the */ - /* file. This is done to ensure that value~0 always corresponds to */ - /* the `missing glyph'. If the first glyph is not named `.notdef', */ - /* then for Type~1 and Type~42 fonts, `.notdef' will be moved into */ - /* the glyph ID~0 position, and whatever was there will be moved to */ - /* the position `.notdef' had. For Type~1 fonts, if there is no */ - /* `.notdef' glyph at all, then one will be created at index~0 and */ - /* whatever was there will be moved to the last index -- Type~42 */ - /* fonts are considered invalid under this condition. */ - /* */ - FT_EXPORT( FT_UInt ) - FT_Get_Char_Index( FT_Face face, - FT_ULong charcode ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_First_Char */ - /* */ - /* <Description> */ - /* This function is used to return the first character code in the */ - /* current charmap of a given face. It also returns the */ - /* corresponding glyph index. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Output> */ - /* agindex :: Glyph index of first character code. 0~if charmap is */ - /* empty. */ - /* */ - /* <Return> */ - /* The charmap's first character code. */ - /* */ - /* <Note> */ - /* You should use this function with @FT_Get_Next_Char to be able to */ - /* parse all character codes available in a given charmap. The code */ - /* should look like this: */ - /* */ - /* { */ - /* FT_ULong charcode; */ - /* FT_UInt gindex; */ - /* */ - /* */ - /* charcode = FT_Get_First_Char( face, &gindex ); */ - /* while ( gindex != 0 ) */ - /* { */ - /* ... do something with (charcode,gindex) pair ... */ - /* */ - /* charcode = FT_Get_Next_Char( face, charcode, &gindex ); */ - /* } */ - /* } */ - /* */ - /* Note that `*agindex' is set to~0 if the charmap is empty. The */ - /* result itself can be~0 in two cases: if the charmap is empty or */ - /* if the value~0 is the first valid character code. */ - /* */ - FT_EXPORT( FT_ULong ) - FT_Get_First_Char( FT_Face face, - FT_UInt *agindex ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Next_Char */ - /* */ - /* <Description> */ - /* This function is used to return the next character code in the */ - /* current charmap of a given face following the value `char_code', */ - /* as well as the corresponding glyph index. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* char_code :: The starting character code. */ - /* */ - /* <Output> */ - /* agindex :: Glyph index of next character code. 0~if charmap */ - /* is empty. */ - /* */ - /* <Return> */ - /* The charmap's next character code. */ - /* */ - /* <Note> */ - /* You should use this function with @FT_Get_First_Char to walk */ - /* over all character codes available in a given charmap. See the */ - /* note for this function for a simple code example. */ - /* */ - /* Note that `*agindex' is set to~0 when there are no more codes in */ - /* the charmap. */ - /* */ - FT_EXPORT( FT_ULong ) - FT_Get_Next_Char( FT_Face face, - FT_ULong char_code, - FT_UInt *agindex ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Name_Index */ - /* */ - /* <Description> */ - /* Return the glyph index of a given glyph name. This function uses */ - /* driver specific objects to do the translation. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* glyph_name :: The glyph name. */ - /* */ - /* <Return> */ - /* The glyph index. 0~means `undefined character code'. */ - /* */ - FT_EXPORT( FT_UInt ) - FT_Get_Name_Index( FT_Face face, - FT_String* glyph_name ); - - - /************************************************************************* - * - * @macro: - * FT_SUBGLYPH_FLAG_XXX - * - * @description: - * A list of constants used to describe subglyphs. Please refer to the - * TrueType specification for the meaning of the various flags. - * - * @values: - * FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS :: - * FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES :: - * FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID :: - * FT_SUBGLYPH_FLAG_SCALE :: - * FT_SUBGLYPH_FLAG_XY_SCALE :: - * FT_SUBGLYPH_FLAG_2X2 :: - * FT_SUBGLYPH_FLAG_USE_MY_METRICS :: - * - */ -#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS 1 -#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES 2 -#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID 4 -#define FT_SUBGLYPH_FLAG_SCALE 8 -#define FT_SUBGLYPH_FLAG_XY_SCALE 0x40 -#define FT_SUBGLYPH_FLAG_2X2 0x80 -#define FT_SUBGLYPH_FLAG_USE_MY_METRICS 0x200 - - - /************************************************************************* - * - * @func: - * FT_Get_SubGlyph_Info - * - * @description: - * Retrieve a description of a given subglyph. Only use it if - * `glyph->format' is @FT_GLYPH_FORMAT_COMPOSITE; an error is - * returned otherwise. - * - * @input: - * glyph :: - * The source glyph slot. - * - * sub_index :: - * The index of the subglyph. Must be less than - * `glyph->num_subglyphs'. - * - * @output: - * p_index :: - * The glyph index of the subglyph. - * - * p_flags :: - * The subglyph flags, see @FT_SUBGLYPH_FLAG_XXX. - * - * p_arg1 :: - * The subglyph's first argument (if any). - * - * p_arg2 :: - * The subglyph's second argument (if any). - * - * p_transform :: - * The subglyph transformation (if any). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The values of `*p_arg1', `*p_arg2', and `*p_transform' must be - * interpreted depending on the flags returned in `*p_flags'. See the - * TrueType specification for details. - * - */ - FT_EXPORT( FT_Error ) - FT_Get_SubGlyph_Info( FT_GlyphSlot glyph, - FT_UInt sub_index, - FT_Int *p_index, - FT_UInt *p_flags, - FT_Int *p_arg1, - FT_Int *p_arg2, - FT_Matrix *p_transform ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_FSTYPE_XXX */ - /* */ - /* <Description> */ - /* A list of bit flags used in the `fsType' field of the OS/2 table */ - /* in a TrueType or OpenType font and the `FSType' entry in a */ - /* PostScript font. These bit flags are returned by */ - /* @FT_Get_FSType_Flags; they inform client applications of embedding */ - /* and subsetting restrictions associated with a font. */ - /* */ - /* See */ - /* http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf */ - /* for more details. */ - /* */ - /* <Values> */ - /* FT_FSTYPE_INSTALLABLE_EMBEDDING :: */ - /* Fonts with no fsType bit set may be embedded and permanently */ - /* installed on the remote system by an application. */ - /* */ - /* FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING :: */ - /* Fonts that have only this bit set must not be modified, embedded */ - /* or exchanged in any manner without first obtaining permission of */ - /* the font software copyright owner. */ - /* */ - /* FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING :: */ - /* If this bit is set, the font may be embedded and temporarily */ - /* loaded on the remote system. Documents containing Preview & */ - /* Print fonts must be opened `read-only'; no edits can be applied */ - /* to the document. */ - /* */ - /* FT_FSTYPE_EDITABLE_EMBEDDING :: */ - /* If this bit is set, the font may be embedded but must only be */ - /* installed temporarily on other systems. In contrast to Preview */ - /* & Print fonts, documents containing editable fonts may be opened */ - /* for reading, editing is permitted, and changes may be saved. */ - /* */ - /* FT_FSTYPE_NO_SUBSETTING :: */ - /* If this bit is set, the font may not be subsetted prior to */ - /* embedding. */ - /* */ - /* FT_FSTYPE_BITMAP_EMBEDDING_ONLY :: */ - /* If this bit is set, only bitmaps contained in the font may be */ - /* embedded; no outline data may be embedded. If there are no */ - /* bitmaps available in the font, then the font is unembeddable. */ - /* */ - /* <Note> */ - /* While the fsType flags can indicate that a font may be embedded, a */ - /* license with the font vendor may be separately required to use the */ - /* font in this way. */ - /* */ -#define FT_FSTYPE_INSTALLABLE_EMBEDDING 0x0000 -#define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING 0x0002 -#define FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING 0x0004 -#define FT_FSTYPE_EDITABLE_EMBEDDING 0x0008 -#define FT_FSTYPE_NO_SUBSETTING 0x0100 -#define FT_FSTYPE_BITMAP_EMBEDDING_ONLY 0x0200 - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_FSType_Flags */ - /* */ - /* <Description> */ - /* Return the fsType flags for a font. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face object. */ - /* */ - /* <Return> */ - /* The fsType flags, @FT_FSTYPE_XXX. */ - /* */ - /* <Note> */ - /* Use this function rather than directly reading the `fs_type' field */ - /* in the @PS_FontInfoRec structure, which is only guaranteed to */ - /* return the correct results for Type~1 fonts. */ - /* */ - /* <Since> */ - /* 2.3.8 */ - /* */ - FT_EXPORT( FT_UShort ) - FT_Get_FSType_Flags( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* glyph_variants */ - /* */ - /* <Title> */ - /* Glyph Variants */ - /* */ - /* <Abstract> */ - /* The FreeType~2 interface to Unicode Ideographic Variation */ - /* Sequences (IVS), using the SFNT cmap format~14. */ - /* */ - /* <Description> */ - /* Many CJK characters have variant forms. They are a sort of grey */ - /* area somewhere between being totally irrelevant and semantically */ - /* distinct; for this reason, the Unicode consortium decided to */ - /* introduce Ideographic Variation Sequences (IVS), consisting of a */ - /* Unicode base character and one of 240 variant selectors */ - /* (U+E0100-U+E01EF), instead of further extending the already huge */ - /* code range for CJK characters. */ - /* */ - /* An IVS is registered and unique; for further details please refer */ - /* to Unicode Technical Standard #37, the Ideographic Variation */ - /* Database: */ - /* */ - /* http://www.unicode.org/reports/tr37/ */ - /* */ - /* To date (November 2014), the character with the most variants is */ - /* U+9089, having 32 such IVS. */ - /* */ - /* Adobe and MS decided to support IVS with a new cmap subtable */ - /* (format~14). It is an odd subtable because it is not a mapping of */ - /* input code points to glyphs, but contains lists of all variants */ - /* supported by the font. */ - /* */ - /* A variant may be either `default' or `non-default'. A default */ - /* variant is the one you will get for that code point if you look it */ - /* up in the standard Unicode cmap. A non-default variant is a */ - /* different glyph. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetCharVariantIndex */ - /* */ - /* <Description> */ - /* Return the glyph index of a given character code as modified by */ - /* the variation selector. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* charcode :: */ - /* The character code point in Unicode. */ - /* */ - /* variantSelector :: */ - /* The Unicode code point of the variation selector. */ - /* */ - /* <Return> */ - /* The glyph index. 0~means either `undefined character code', or */ - /* `undefined selector code', or `no variation selector cmap */ - /* subtable', or `current CharMap is not Unicode'. */ - /* */ - /* <Note> */ - /* If you use FreeType to manipulate the contents of font files */ - /* directly, be aware that the glyph index returned by this function */ - /* doesn't always correspond to the internal indices used within */ - /* the file. This is done to ensure that value~0 always corresponds */ - /* to the `missing glyph'. */ - /* */ - /* This function is only meaningful if */ - /* a) the font has a variation selector cmap sub table, */ - /* and */ - /* b) the current charmap has a Unicode encoding. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_UInt ) - FT_Face_GetCharVariantIndex( FT_Face face, - FT_ULong charcode, - FT_ULong variantSelector ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetCharVariantIsDefault */ - /* */ - /* <Description> */ - /* Check whether this variant of this Unicode character is the one to */ - /* be found in the `cmap'. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* charcode :: */ - /* The character codepoint in Unicode. */ - /* */ - /* variantSelector :: */ - /* The Unicode codepoint of the variation selector. */ - /* */ - /* <Return> */ - /* 1~if found in the standard (Unicode) cmap, 0~if found in the */ - /* variation selector cmap, or -1 if it is not a variant. */ - /* */ - /* <Note> */ - /* This function is only meaningful if the font has a variation */ - /* selector cmap subtable. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_Int ) - FT_Face_GetCharVariantIsDefault( FT_Face face, - FT_ULong charcode, - FT_ULong variantSelector ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetVariantSelectors */ - /* */ - /* <Description> */ - /* Return a zero-terminated list of Unicode variant selectors found */ - /* in the font. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* <Return> */ - /* A pointer to an array of selector code points, or NULL if there is */ - /* no valid variant selector cmap subtable. */ - /* */ - /* <Note> */ - /* The last item in the array is~0; the array is owned by the */ - /* @FT_Face object but can be overwritten or released on the next */ - /* call to a FreeType function. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_UInt32* ) - FT_Face_GetVariantSelectors( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetVariantsOfChar */ - /* */ - /* <Description> */ - /* Return a zero-terminated list of Unicode variant selectors found */ - /* for the specified character code. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* charcode :: */ - /* The character codepoint in Unicode. */ - /* */ - /* <Return> */ - /* A pointer to an array of variant selector code points that are */ - /* active for the given character, or NULL if the corresponding list */ - /* is empty. */ - /* */ - /* <Note> */ - /* The last item in the array is~0; the array is owned by the */ - /* @FT_Face object but can be overwritten or released on the next */ - /* call to a FreeType function. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_UInt32* ) - FT_Face_GetVariantsOfChar( FT_Face face, - FT_ULong charcode ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_GetCharsOfVariant */ - /* */ - /* <Description> */ - /* Return a zero-terminated list of Unicode character codes found for */ - /* the specified variant selector. */ - /* */ - /* <Input> */ - /* face :: */ - /* A handle to the source face object. */ - /* */ - /* variantSelector :: */ - /* The variant selector code point in Unicode. */ - /* */ - /* <Return> */ - /* A list of all the code points that are specified by this selector */ - /* (both default and non-default codes are returned) or NULL if there */ - /* is no valid cmap or the variant selector is invalid. */ - /* */ - /* <Note> */ - /* The last item in the array is~0; the array is owned by the */ - /* @FT_Face object but can be overwritten or released on the next */ - /* call to a FreeType function. */ - /* */ - /* <Since> */ - /* 2.3.6 */ - /* */ - FT_EXPORT( FT_UInt32* ) - FT_Face_GetCharsOfVariant( FT_Face face, - FT_ULong variantSelector ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* computations */ - /* */ - /* <Title> */ - /* Computations */ - /* */ - /* <Abstract> */ - /* Crunching fixed numbers and vectors. */ - /* */ - /* <Description> */ - /* This section contains various functions used to perform */ - /* computations on 16.16 fixed-float numbers or 2d vectors. */ - /* */ - /* <Order> */ - /* FT_MulDiv */ - /* FT_MulFix */ - /* FT_DivFix */ - /* FT_RoundFix */ - /* FT_CeilFix */ - /* FT_FloorFix */ - /* FT_Vector_Transform */ - /* FT_Matrix_Multiply */ - /* FT_Matrix_Invert */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_MulDiv */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation `(a*b)/c' */ - /* with maximum accuracy (it uses a 64-bit intermediate integer */ - /* whenever necessary). */ - /* */ - /* This function isn't necessarily as fast as some processor specific */ - /* operations, but is at least completely portable. */ - /* */ - /* <Input> */ - /* a :: The first multiplier. */ - /* b :: The second multiplier. */ - /* c :: The divisor. */ - /* */ - /* <Return> */ - /* The result of `(a*b)/c'. This function never traps when trying to */ - /* divide by zero; it simply returns `MaxInt' or `MinInt' depending */ - /* on the signs of `a' and `b'. */ - /* */ - FT_EXPORT( FT_Long ) - FT_MulDiv( FT_Long a, - FT_Long b, - FT_Long c ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_MulFix */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation */ - /* `(a*b)/0x10000' with maximum accuracy. Most of the time this is */ - /* used to multiply a given value by a 16.16 fixed-point factor. */ - /* */ - /* <Input> */ - /* a :: The first multiplier. */ - /* b :: The second multiplier. Use a 16.16 factor here whenever */ - /* possible (see note below). */ - /* */ - /* <Return> */ - /* The result of `(a*b)/0x10000'. */ - /* */ - /* <Note> */ - /* This function has been optimized for the case where the absolute */ - /* value of `a' is less than 2048, and `b' is a 16.16 scaling factor. */ - /* As this happens mainly when scaling from notional units to */ - /* fractional pixels in FreeType, it resulted in noticeable speed */ - /* improvements between versions 2.x and 1.x. */ - /* */ - /* As a conclusion, always try to place a 16.16 factor as the */ - /* _second_ argument of this function; this can make a great */ - /* difference. */ - /* */ - FT_EXPORT( FT_Long ) - FT_MulFix( FT_Long a, - FT_Long b ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_DivFix */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation */ - /* `(a*0x10000)/b' with maximum accuracy. Most of the time, this is */ - /* used to divide a given value by a 16.16 fixed-point factor. */ - /* */ - /* <Input> */ - /* a :: The numerator. */ - /* b :: The denominator. Use a 16.16 factor here. */ - /* */ - /* <Return> */ - /* The result of `(a*0x10000)/b'. */ - /* */ - FT_EXPORT( FT_Long ) - FT_DivFix( FT_Long a, - FT_Long b ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_RoundFix */ - /* */ - /* <Description> */ - /* A very simple function used to round a 16.16 fixed number. */ - /* */ - /* <Input> */ - /* a :: The number to be rounded. */ - /* */ - /* <Return> */ - /* The result of `(a + 0x8000) & -0x10000'. */ - /* */ - FT_EXPORT( FT_Fixed ) - FT_RoundFix( FT_Fixed a ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_CeilFix */ - /* */ - /* <Description> */ - /* A very simple function used to compute the ceiling function of a */ - /* 16.16 fixed number. */ - /* */ - /* <Input> */ - /* a :: The number for which the ceiling function is to be computed. */ - /* */ - /* <Return> */ - /* The result of `(a + 0x10000 - 1) & -0x10000'. */ - /* */ - FT_EXPORT( FT_Fixed ) - FT_CeilFix( FT_Fixed a ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_FloorFix */ - /* */ - /* <Description> */ - /* A very simple function used to compute the floor function of a */ - /* 16.16 fixed number. */ - /* */ - /* <Input> */ - /* a :: The number for which the floor function is to be computed. */ - /* */ - /* <Return> */ - /* The result of `a & -0x10000'. */ - /* */ - FT_EXPORT( FT_Fixed ) - FT_FloorFix( FT_Fixed a ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Vector_Transform */ - /* */ - /* <Description> */ - /* Transform a single vector through a 2x2 matrix. */ - /* */ - /* <InOut> */ - /* vector :: The target vector to transform. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to the source 2x2 matrix. */ - /* */ - /* <Note> */ - /* The result is undefined if either `vector' or `matrix' is invalid. */ - /* */ - FT_EXPORT( void ) - FT_Vector_Transform( FT_Vector* vec, - const FT_Matrix* matrix ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* version */ - /* */ - /* <Title> */ - /* FreeType Version */ - /* */ - /* <Abstract> */ - /* Functions and macros related to FreeType versions. */ - /* */ - /* <Description> */ - /* Note that those functions and macros are of limited use because */ - /* even a new release of FreeType with only documentation changes */ - /* increases the version number. */ - /* */ - /* <Order> */ - /* FT_Library_Version */ - /* */ - /* FREETYPE_MAJOR */ - /* FREETYPE_MINOR */ - /* FREETYPE_PATCH */ - /* */ - /* FT_Face_CheckTrueTypePatents */ - /* FT_Face_SetUnpatentedHinting */ - /* */ - /* FREETYPE_XXX */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @enum: - * FREETYPE_XXX - * - * @description: - * These three macros identify the FreeType source code version. - * Use @FT_Library_Version to access them at runtime. - * - * @values: - * FREETYPE_MAJOR :: The major version number. - * FREETYPE_MINOR :: The minor version number. - * FREETYPE_PATCH :: The patch level. - * - * @note: - * The version number of FreeType if built as a dynamic link library - * with the `libtool' package is _not_ controlled by these three - * macros. - * - */ -#define FREETYPE_MAJOR 2 -#define FREETYPE_MINOR 6 -#define FREETYPE_PATCH 0 - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Library_Version */ - /* */ - /* <Description> */ - /* Return the version of the FreeType library being used. This is */ - /* useful when dynamically linking to the library, since one cannot */ - /* use the macros @FREETYPE_MAJOR, @FREETYPE_MINOR, and */ - /* @FREETYPE_PATCH. */ - /* */ - /* <Input> */ - /* library :: A source library handle. */ - /* */ - /* <Output> */ - /* amajor :: The major version number. */ - /* */ - /* aminor :: The minor version number. */ - /* */ - /* apatch :: The patch version number. */ - /* */ - /* <Note> */ - /* The reason why this function takes a `library' argument is because */ - /* certain programs implement library initialization in a custom way */ - /* that doesn't use @FT_Init_FreeType. */ - /* */ - /* In such cases, the library version might not be available before */ - /* the library object has been created. */ - /* */ - FT_EXPORT( void ) - FT_Library_Version( FT_Library library, - FT_Int *amajor, - FT_Int *aminor, - FT_Int *apatch ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_CheckTrueTypePatents */ - /* */ - /* <Description> */ - /* Parse all bytecode instructions of a TrueType font file to check */ - /* whether any of the patented opcodes are used. This is only useful */ - /* if you want to be able to use the unpatented hinter with */ - /* fonts that do *not* use these opcodes. */ - /* */ - /* Note that this function parses *all* glyph instructions in the */ - /* font file, which may be slow. */ - /* */ - /* <Input> */ - /* face :: A face handle. */ - /* */ - /* <Return> */ - /* 1~if this is a TrueType font that uses one of the patented */ - /* opcodes, 0~otherwise. */ - /* */ - /* <Note> */ - /* Since May 2010, TrueType hinting is no longer patented. */ - /* */ - /* <Since> */ - /* 2.3.5 */ - /* */ - FT_EXPORT( FT_Bool ) - FT_Face_CheckTrueTypePatents( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Face_SetUnpatentedHinting */ - /* */ - /* <Description> */ - /* Enable or disable the unpatented hinter for a given face. */ - /* Only enable it if you have determined that the face doesn't */ - /* use any patented opcodes (see @FT_Face_CheckTrueTypePatents). */ - /* */ - /* <Input> */ - /* face :: A face handle. */ - /* */ - /* value :: New boolean setting. */ - /* */ - /* <Return> */ - /* The old setting value. This will always be false if this is not */ - /* an SFNT font, or if the unpatented hinter is not compiled in this */ - /* instance of the library. */ - /* */ - /* <Note> */ - /* Since May 2010, TrueType hinting is no longer patented. */ - /* */ - /* <Since> */ - /* 2.3.5 */ - /* */ - FT_EXPORT( FT_Bool ) - FT_Face_SetUnpatentedHinting( FT_Face face, - FT_Bool value ); - - /* */ - - -FT_END_HEADER - -#endif /* __FREETYPE_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftadvanc.h b/lib/windows/include/freetype/ftadvanc.h deleted file mode 100644 index b4d2aed..0000000 --- a/lib/windows/include/freetype/ftadvanc.h +++ /dev/null @@ -1,187 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftadvanc.h */ -/* */ -/* Quick computation of advance widths (specification only). */ -/* */ -/* Copyright 2008-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTADVANC_H__ -#define __FTADVANC_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * quick_advance - * - * @title: - * Quick retrieval of advance values - * - * @abstract: - * Retrieve horizontal and vertical advance values without processing - * glyph outlines, if possible. - * - * @description: - * This section contains functions to quickly extract advance values - * without handling glyph outlines, if possible. - * - * @order: - * FT_Get_Advance - * FT_Get_Advances - * - */ - - - /*************************************************************************/ - /* */ - /* <Const> */ - /* FT_ADVANCE_FLAG_FAST_ONLY */ - /* */ - /* <Description> */ - /* A bit-flag to be OR-ed with the `flags' parameter of the */ - /* @FT_Get_Advance and @FT_Get_Advances functions. */ - /* */ - /* If set, it indicates that you want these functions to fail if the */ - /* corresponding hinting mode or font driver doesn't allow for very */ - /* quick advance computation. */ - /* */ - /* Typically, glyphs that are either unscaled, unhinted, bitmapped, */ - /* or light-hinted can have their advance width computed very */ - /* quickly. */ - /* */ - /* Normal and bytecode hinted modes that require loading, scaling, */ - /* and hinting of the glyph outline, are extremely slow by */ - /* comparison. */ - /* */ -#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000L - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Advance */ - /* */ - /* <Description> */ - /* Retrieve the advance value of a given glyph outline in an */ - /* @FT_Face. */ - /* */ - /* <Input> */ - /* face :: The source @FT_Face handle. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* load_flags :: A set of bit flags similar to those used when */ - /* calling @FT_Load_Glyph, used to determine what kind */ - /* of advances you need. */ - /* <Output> */ - /* padvance :: The advance value. If scaling is performed (based on */ - /* the value of `load_flags'), the advance value is in */ - /* 16.16 format. Otherwise, it is in font units. */ - /* */ - /* If @FT_LOAD_VERTICAL_LAYOUT is set, this is the */ - /* vertical advance corresponding to a vertical layout. */ - /* Otherwise, it is the horizontal advance in a */ - /* horizontal layout. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ - /* if the corresponding font backend doesn't have a quick way to */ - /* retrieve the advances. */ - /* */ - /* A scaled advance is returned in 16.16 format but isn't transformed */ - /* by the affine transformation specified by @FT_Set_Transform. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Advance( FT_Face face, - FT_UInt gindex, - FT_Int32 load_flags, - FT_Fixed *padvance ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Advances */ - /* */ - /* <Description> */ - /* Retrieve the advance values of several glyph outlines in an */ - /* @FT_Face. */ - /* */ - /* <Input> */ - /* face :: The source @FT_Face handle. */ - /* */ - /* start :: The first glyph index. */ - /* */ - /* count :: The number of advance values you want to retrieve. */ - /* */ - /* load_flags :: A set of bit flags similar to those used when */ - /* calling @FT_Load_Glyph. */ - /* */ - /* <Output> */ - /* padvance :: The advance values. This array, to be provided by the */ - /* caller, must contain at least `count' elements. */ - /* */ - /* If scaling is performed (based on the value of */ - /* `load_flags'), the advance values are in 16.16 format. */ - /* Otherwise, they are in font units. */ - /* */ - /* If @FT_LOAD_VERTICAL_LAYOUT is set, these are the */ - /* vertical advances corresponding to a vertical layout. */ - /* Otherwise, they are the horizontal advances in a */ - /* horizontal layout. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ - /* if the corresponding font backend doesn't have a quick way to */ - /* retrieve the advances. */ - /* */ - /* Scaled advances are returned in 16.16 format but aren't */ - /* transformed by the affine transformation specified by */ - /* @FT_Set_Transform. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Advances( FT_Face face, - FT_UInt start, - FT_UInt count, - FT_Int32 load_flags, - FT_Fixed *padvances ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTADVANC_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftautoh.h b/lib/windows/include/freetype/ftautoh.h deleted file mode 100644 index cf7b76f..0000000 --- a/lib/windows/include/freetype/ftautoh.h +++ /dev/null @@ -1,450 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftautoh.h */ -/* */ -/* FreeType API for controlling the auto-hinter (specification only). */ -/* */ -/* Copyright 2012-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTAUTOH_H__ -#define __FTAUTOH_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * auto_hinter - * - * @title: - * The auto-hinter - * - * @abstract: - * Controlling the auto-hinting module. - * - * @description: - * While FreeType's auto-hinter doesn't expose API functions by itself, - * it is possible to control its behaviour with @FT_Property_Set and - * @FT_Property_Get. The following lists the available properties - * together with the necessary macros and structures. - * - * Note that the auto-hinter's module name is `autofitter' for - * historical reasons. - * - */ - - - /************************************************************************** - * - * @property: - * glyph-to-script-map - * - * @description: - * *Experimental* *only* - * - * The auto-hinter provides various script modules to hint glyphs. - * Examples of supported scripts are Latin or CJK. Before a glyph is - * auto-hinted, the Unicode character map of the font gets examined, and - * the script is then determined based on Unicode character ranges, see - * below. - * - * OpenType fonts, however, often provide much more glyphs than - * character codes (small caps, superscripts, ligatures, swashes, etc.), - * to be controlled by so-called `features'. Handling OpenType features - * can be quite complicated and thus needs a separate library on top of - * FreeType. - * - * The mapping between glyph indices and scripts (in the auto-hinter - * sense, see the @FT_AUTOHINTER_SCRIPT_XXX values) is stored as an - * array with `num_glyphs' elements, as found in the font's @FT_Face - * structure. The `glyph-to-script-map' property returns a pointer to - * this array, which can be modified as needed. Note that the - * modification should happen before the first glyph gets processed by - * the auto-hinter so that the global analysis of the font shapes - * actually uses the modified mapping. - * - * The following example code demonstrates how to access it (omitting - * the error handling). - * - * { - * FT_Library library; - * FT_Face face; - * FT_Prop_GlyphToScriptMap prop; - * - * - * FT_Init_FreeType( &library ); - * FT_New_Face( library, "foo.ttf", 0, &face ); - * - * prop.face = face; - * - * FT_Property_Get( library, "autofitter", - * "glyph-to-script-map", &prop ); - * - * // adjust `prop.map' as needed right here - * - * FT_Load_Glyph( face, ..., FT_LOAD_FORCE_AUTOHINT ); - * } - * - */ - - - /************************************************************************** - * - * @enum: - * FT_AUTOHINTER_SCRIPT_XXX - * - * @description: - * *Experimental* *only* - * - * A list of constants used for the @glyph-to-script-map property to - * specify the script submodule the auto-hinter should use for hinting a - * particular glyph. - * - * @values: - * FT_AUTOHINTER_SCRIPT_NONE :: - * Don't auto-hint this glyph. - * - * FT_AUTOHINTER_SCRIPT_LATIN :: - * Apply the latin auto-hinter. For the auto-hinter, `latin' is a - * very broad term, including Cyrillic and Greek also since characters - * from those scripts share the same design constraints. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * { - * U+0020 - U+007F // Basic Latin (no control characters) - * U+00A0 - U+00FF // Latin-1 Supplement (no control characters) - * U+0100 - U+017F // Latin Extended-A - * U+0180 - U+024F // Latin Extended-B - * U+0250 - U+02AF // IPA Extensions - * U+02B0 - U+02FF // Spacing Modifier Letters - * U+0300 - U+036F // Combining Diacritical Marks - * U+0370 - U+03FF // Greek and Coptic - * U+0400 - U+04FF // Cyrillic - * U+0500 - U+052F // Cyrillic Supplement - * U+1D00 - U+1D7F // Phonetic Extensions - * U+1D80 - U+1DBF // Phonetic Extensions Supplement - * U+1DC0 - U+1DFF // Combining Diacritical Marks Supplement - * U+1E00 - U+1EFF // Latin Extended Additional - * U+1F00 - U+1FFF // Greek Extended - * U+2000 - U+206F // General Punctuation - * U+2070 - U+209F // Superscripts and Subscripts - * U+20A0 - U+20CF // Currency Symbols - * U+2150 - U+218F // Number Forms - * U+2460 - U+24FF // Enclosed Alphanumerics - * U+2C60 - U+2C7F // Latin Extended-C - * U+2DE0 - U+2DFF // Cyrillic Extended-A - * U+2E00 - U+2E7F // Supplemental Punctuation - * U+A640 - U+A69F // Cyrillic Extended-B - * U+A720 - U+A7FF // Latin Extended-D - * U+FB00 - U+FB06 // Alphab. Present. Forms (Latin Ligatures) - * U+1D400 - U+1D7FF // Mathematical Alphanumeric Symbols - * U+1F100 - U+1F1FF // Enclosed Alphanumeric Supplement - * } - * - * FT_AUTOHINTER_SCRIPT_CJK :: - * Apply the CJK auto-hinter, covering Chinese, Japanese, Korean, old - * Vietnamese, and some other scripts. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * { - * U+1100 - U+11FF // Hangul Jamo - * U+2E80 - U+2EFF // CJK Radicals Supplement - * U+2F00 - U+2FDF // Kangxi Radicals - * U+2FF0 - U+2FFF // Ideographic Description Characters - * U+3000 - U+303F // CJK Symbols and Punctuation - * U+3040 - U+309F // Hiragana - * U+30A0 - U+30FF // Katakana - * U+3100 - U+312F // Bopomofo - * U+3130 - U+318F // Hangul Compatibility Jamo - * U+3190 - U+319F // Kanbun - * U+31A0 - U+31BF // Bopomofo Extended - * U+31C0 - U+31EF // CJK Strokes - * U+31F0 - U+31FF // Katakana Phonetic Extensions - * U+3200 - U+32FF // Enclosed CJK Letters and Months - * U+3300 - U+33FF // CJK Compatibility - * U+3400 - U+4DBF // CJK Unified Ideographs Extension A - * U+4DC0 - U+4DFF // Yijing Hexagram Symbols - * U+4E00 - U+9FFF // CJK Unified Ideographs - * U+A960 - U+A97F // Hangul Jamo Extended-A - * U+AC00 - U+D7AF // Hangul Syllables - * U+D7B0 - U+D7FF // Hangul Jamo Extended-B - * U+F900 - U+FAFF // CJK Compatibility Ideographs - * U+FE10 - U+FE1F // Vertical forms - * U+FE30 - U+FE4F // CJK Compatibility Forms - * U+FF00 - U+FFEF // Halfwidth and Fullwidth Forms - * U+1B000 - U+1B0FF // Kana Supplement - * U+1D300 - U+1D35F // Tai Xuan Hing Symbols - * U+1F200 - U+1F2FF // Enclosed Ideographic Supplement - * U+20000 - U+2A6DF // CJK Unified Ideographs Extension B - * U+2A700 - U+2B73F // CJK Unified Ideographs Extension C - * U+2B740 - U+2B81F // CJK Unified Ideographs Extension D - * U+2F800 - U+2FA1F // CJK Compatibility Ideographs Supplement - * } - * - * FT_AUTOHINTER_SCRIPT_INDIC :: - * Apply the indic auto-hinter, covering all major scripts from the - * Indian sub-continent and some other related scripts like Thai, Lao, - * or Tibetan. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * { - * U+0900 - U+0DFF // Indic Range - * U+0F00 - U+0FFF // Tibetan - * U+1900 - U+194F // Limbu - * U+1B80 - U+1BBF // Sundanese - * U+1C80 - U+1CDF // Meetei Mayak - * U+A800 - U+A82F // Syloti Nagri - * U+11800 - U+118DF // Sharada - * } - * - * Note that currently Indic support is rudimentary only, missing blue - * zone support. - * - */ -#define FT_AUTOHINTER_SCRIPT_NONE 0 -#define FT_AUTOHINTER_SCRIPT_LATIN 1 -#define FT_AUTOHINTER_SCRIPT_CJK 2 -#define FT_AUTOHINTER_SCRIPT_INDIC 3 - - - /************************************************************************** - * - * @struct: - * FT_Prop_GlyphToScriptMap - * - * @description: - * *Experimental* *only* - * - * The data exchange structure for the @glyph-to-script-map property. - * - */ - typedef struct FT_Prop_GlyphToScriptMap_ - { - FT_Face face; - FT_Byte* map; - - } FT_Prop_GlyphToScriptMap; - - - /************************************************************************** - * - * @property: - * fallback-script - * - * @description: - * *Experimental* *only* - * - * If no auto-hinter script module can be assigned to a glyph, a - * fallback script gets assigned to it (see also the - * @glyph-to-script-map property). By default, this is - * @FT_AUTOHINTER_SCRIPT_CJK. Using the `fallback-script' property, - * this fallback value can be changed. - * - * { - * FT_Library library; - * FT_UInt fallback_script = FT_AUTOHINTER_SCRIPT_NONE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", - * "fallback-script", &fallback_script ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * It's important to use the right timing for changing this value: The - * creation of the glyph-to-script map that eventually uses the - * fallback script value gets triggered either by setting or reading a - * face-specific property like @glyph-to-script-map, or by auto-hinting - * any glyph from that face. In particular, if you have already created - * an @FT_Face structure but not loaded any glyph (using the - * auto-hinter), a change of the fallback script will affect this face. - * - */ - - - /************************************************************************** - * - * @property: - * default-script - * - * @description: - * *Experimental* *only* - * - * If FreeType gets compiled with FT_CONFIG_OPTION_USE_HARFBUZZ to make - * the HarfBuzz library access OpenType features for getting better - * glyph coverages, this property sets the (auto-fitter) script to be - * used for the default (OpenType) script data of a font's GSUB table. - * Features for the default script are intended for all scripts not - * explicitly handled in GSUB; an example is a `dlig' feature, - * containing the combination of the characters `T', `E', and `L' to - * form a `TEL' ligature. - * - * By default, this is @FT_AUTOHINTER_SCRIPT_LATIN. Using the - * `default-script' property, this default value can be changed. - * - * { - * FT_Library library; - * FT_UInt default_script = FT_AUTOHINTER_SCRIPT_NONE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", - * "default-script", &default_script ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * It's important to use the right timing for changing this value: The - * creation of the glyph-to-script map that eventually uses the - * default script value gets triggered either by setting or reading a - * face-specific property like @glyph-to-script-map, or by auto-hinting - * any glyph from that face. In particular, if you have already created - * an @FT_Face structure but not loaded any glyph (using the - * auto-hinter), a change of the default script will affect this face. - * - */ - - - /************************************************************************** - * - * @property: - * increase-x-height - * - * @description: - * For ppem values in the range 6~<= ppem <= `increase-x-height', round - * up the font's x~height much more often than normally. If the value - * is set to~0, which is the default, this feature is switched off. Use - * this property to improve the legibility of small font sizes if - * necessary. - * - * { - * FT_Library library; - * FT_Face face; - * FT_Prop_IncreaseXHeight prop; - * - * - * FT_Init_FreeType( &library ); - * FT_New_Face( library, "foo.ttf", 0, &face ); - * FT_Set_Char_Size( face, 10 * 64, 0, 72, 0 ); - * - * prop.face = face; - * prop.limit = 14; - * - * FT_Property_Set( library, "autofitter", - * "increase-x-height", &prop ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * Set this value right after calling @FT_Set_Char_Size, but before - * loading any glyph (using the auto-hinter). - * - */ - - - /************************************************************************** - * - * @struct: - * FT_Prop_IncreaseXHeight - * - * @description: - * The data exchange structure for the @increase-x-height property. - * - */ - typedef struct FT_Prop_IncreaseXHeight_ - { - FT_Face face; - FT_UInt limit; - - } FT_Prop_IncreaseXHeight; - - - /************************************************************************** - * - * @property: - * warping - * - * @description: - * *Experimental* *only* - * - * If FreeType gets compiled with option AF_CONFIG_OPTION_USE_WARPER to - * activate the warp hinting code in the auto-hinter, this property - * switches warping on and off. - * - * Warping only works in `light' auto-hinting mode. The idea of the - * code is to slightly scale and shift a glyph along the non-hinted - * dimension (which is usually the horizontal axis) so that as much of - * its segments are aligned (more or less) to the grid. To find out a - * glyph's optimal scaling and shifting value, various parameter - * combinations are tried and scored. - * - * By default, warping is off. The example below shows how to switch on - * warping (omitting the error handling). - * - * { - * FT_Library library; - * FT_Bool warping = 1; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", - * "warping", &warping ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * The warping code can also change advance widths. Have a look at the - * `lsb_delta' and `rsb_delta' fields in the @FT_GlyphSlotRec structure - * for details on improving inter-glyph distances while rendering. - * - * Since warping is a global property of the auto-hinter it is best to - * change its value before rendering any face. Otherwise, you should - * reload all faces that get auto-hinted in `light' hinting mode. - * - */ - - - /* */ - - -FT_END_HEADER - -#endif /* __FTAUTOH_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftbbox.h b/lib/windows/include/freetype/ftbbox.h deleted file mode 100644 index 9d9d040..0000000 --- a/lib/windows/include/freetype/ftbbox.h +++ /dev/null @@ -1,101 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftbbox.h */ -/* */ -/* FreeType exact bbox computation (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This component has a _single_ role: to compute exact outline bounding */ - /* boxes. */ - /* */ - /* It is separated from the rest of the engine for various technical */ - /* reasons. It may well be integrated in `ftoutln' later. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTBBOX_H__ -#define __FTBBOX_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* outline_processing */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Get_BBox */ - /* */ - /* <Description> */ - /* Compute the exact bounding box of an outline. This is slower */ - /* than computing the control box. However, it uses an advanced */ - /* algorithm that returns _very_ quickly when the two boxes */ - /* coincide. Otherwise, the outline Bézier arcs are traversed to */ - /* extract their extrema. */ - /* */ - /* <Input> */ - /* outline :: A pointer to the source outline. */ - /* */ - /* <Output> */ - /* abbox :: The outline's exact bounding box. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If the font is tricky and the glyph has been loaded with */ - /* @FT_LOAD_NO_SCALE, the resulting BBox is meaningless. To get */ - /* reasonable values for the BBox it is necessary to load the glyph */ - /* at a large ppem value (so that the hinting instructions can */ - /* properly shift and scale the subglyphs), then extracting the BBox, */ - /* which can be eventually converted back to font units. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Get_BBox( FT_Outline* outline, - FT_BBox *abbox ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTBBOX_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/windows/include/freetype/ftbdf.h b/lib/windows/include/freetype/ftbdf.h deleted file mode 100644 index 0bdabf4..0000000 --- a/lib/windows/include/freetype/ftbdf.h +++ /dev/null @@ -1,210 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftbdf.h */ -/* */ -/* FreeType API for accessing BDF-specific strings (specification). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTBDF_H__ -#define __FTBDF_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* bdf_fonts */ - /* */ - /* <Title> */ - /* BDF and PCF Files */ - /* */ - /* <Abstract> */ - /* BDF and PCF specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of functions specific to BDF */ - /* and PCF fonts. */ - /* */ - /*************************************************************************/ - - - /********************************************************************** - * - * @enum: - * BDF_PropertyType - * - * @description: - * A list of BDF property types. - * - * @values: - * BDF_PROPERTY_TYPE_NONE :: - * Value~0 is used to indicate a missing property. - * - * BDF_PROPERTY_TYPE_ATOM :: - * Property is a string atom. - * - * BDF_PROPERTY_TYPE_INTEGER :: - * Property is a 32-bit signed integer. - * - * BDF_PROPERTY_TYPE_CARDINAL :: - * Property is a 32-bit unsigned integer. - */ - typedef enum BDF_PropertyType_ - { - BDF_PROPERTY_TYPE_NONE = 0, - BDF_PROPERTY_TYPE_ATOM = 1, - BDF_PROPERTY_TYPE_INTEGER = 2, - BDF_PROPERTY_TYPE_CARDINAL = 3 - - } BDF_PropertyType; - - - /********************************************************************** - * - * @type: - * BDF_Property - * - * @description: - * A handle to a @BDF_PropertyRec structure to model a given - * BDF/PCF property. - */ - typedef struct BDF_PropertyRec_* BDF_Property; - - - /********************************************************************** - * - * @struct: - * BDF_PropertyRec - * - * @description: - * This structure models a given BDF/PCF property. - * - * @fields: - * type :: - * The property type. - * - * u.atom :: - * The atom string, if type is @BDF_PROPERTY_TYPE_ATOM. May be - * NULL, indicating an empty string. - * - * u.integer :: - * A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER. - * - * u.cardinal :: - * An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL. - */ - typedef struct BDF_PropertyRec_ - { - BDF_PropertyType type; - union { - const char* atom; - FT_Int32 integer; - FT_UInt32 cardinal; - - } u; - - } BDF_PropertyRec; - - - /********************************************************************** - * - * @function: - * FT_Get_BDF_Charset_ID - * - * @description: - * Retrieve a BDF font character set identity, according to - * the BDF specification. - * - * @input: - * face :: - * A handle to the input face. - * - * @output: - * acharset_encoding :: - * Charset encoding, as a C~string, owned by the face. - * - * acharset_registry :: - * Charset registry, as a C~string, owned by the face. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with BDF faces, returning an error otherwise. - */ - FT_EXPORT( FT_Error ) - FT_Get_BDF_Charset_ID( FT_Face face, - const char* *acharset_encoding, - const char* *acharset_registry ); - - - /********************************************************************** - * - * @function: - * FT_Get_BDF_Property - * - * @description: - * Retrieve a BDF property from a BDF or PCF font file. - * - * @input: - * face :: A handle to the input face. - * - * name :: The property name. - * - * @output: - * aproperty :: The property. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function works with BDF _and_ PCF fonts. It returns an error - * otherwise. It also returns an error if the property is not in the - * font. - * - * A `property' is a either key-value pair within the STARTPROPERTIES - * ... ENDPROPERTIES block of a BDF font or a key-value pair from the - * `info->props' array within a `FontRec' structure of a PCF font. - * - * Integer properties are always stored as `signed' within PCF fonts; - * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value - * for BDF fonts only. - * - * In case of error, `aproperty->type' is always set to - * @BDF_PROPERTY_TYPE_NONE. - */ - FT_EXPORT( FT_Error ) - FT_Get_BDF_Property( FT_Face face, - const char* prop_name, - BDF_PropertyRec *aproperty ); - - /* */ - -FT_END_HEADER - -#endif /* __FTBDF_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftbitmap.h b/lib/windows/include/freetype/ftbitmap.h deleted file mode 100644 index 46cc47b..0000000 --- a/lib/windows/include/freetype/ftbitmap.h +++ /dev/null @@ -1,240 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftbitmap.h */ -/* */ -/* FreeType utility functions for bitmaps (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTBITMAP_H__ -#define __FTBITMAP_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* bitmap_handling */ - /* */ - /* <Title> */ - /* Bitmap Handling */ - /* */ - /* <Abstract> */ - /* Handling FT_Bitmap objects. */ - /* */ - /* <Description> */ - /* This section contains functions for handling @FT_Bitmap objects. */ - /* Note that none of the functions changes the bitmap's `flow' (as */ - /* indicated by the sign of the `pitch' field in `FT_Bitmap'). */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Init */ - /* */ - /* <Description> */ - /* Initialize a pointer to an @FT_Bitmap structure. */ - /* */ - /* <InOut> */ - /* abitmap :: A pointer to the bitmap structure. */ - /* */ - /* <Note> */ - /* A deprecated name for the same function is `FT_Bitmap_New'. */ - /* */ - FT_EXPORT( void ) - FT_Bitmap_Init( FT_Bitmap *abitmap ); - - - /* deprecated */ - FT_EXPORT( void ) - FT_Bitmap_New( FT_Bitmap *abitmap ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Copy */ - /* */ - /* <Description> */ - /* Copy a bitmap into another one. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* source :: A handle to the source bitmap. */ - /* */ - /* <Output> */ - /* target :: A handle to the target bitmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Copy( FT_Library library, - const FT_Bitmap *source, - FT_Bitmap *target); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Embolden */ - /* */ - /* <Description> */ - /* Embolden a bitmap. The new bitmap will be about `xStrength' */ - /* pixels wider and `yStrength' pixels higher. The left and bottom */ - /* borders are kept unchanged. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* xStrength :: How strong the glyph is emboldened horizontally. */ - /* Expressed in 26.6 pixel format. */ - /* */ - /* yStrength :: How strong the glyph is emboldened vertically. */ - /* Expressed in 26.6 pixel format. */ - /* */ - /* <InOut> */ - /* bitmap :: A handle to the target bitmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The current implementation restricts `xStrength' to be less than */ - /* or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. */ - /* */ - /* If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, */ - /* you should call @FT_GlyphSlot_Own_Bitmap on the slot first. */ - /* */ - /* Bitmaps in @FT_PIXEL_MODE_GRAY2 and @FT_PIXEL_MODE_GRAY@ format */ - /* are converted to @FT_PIXEL_MODE_GRAY format (i.e., 8bpp). */ - /* */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Embolden( FT_Library library, - FT_Bitmap* bitmap, - FT_Pos xStrength, - FT_Pos yStrength ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Convert */ - /* */ - /* <Description> */ - /* Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp */ - /* to a bitmap object with depth 8bpp, making the number of used */ - /* bytes line (a.k.a. the `pitch') a multiple of `alignment'. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* source :: The source bitmap. */ - /* */ - /* alignment :: The pitch of the bitmap is a multiple of this */ - /* parameter. Common values are 1, 2, or 4. */ - /* */ - /* <Output> */ - /* target :: The target bitmap. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* It is possible to call @FT_Bitmap_Convert multiple times without */ - /* calling @FT_Bitmap_Done (the memory is simply reallocated). */ - /* */ - /* Use @FT_Bitmap_Done to finally remove the bitmap object. */ - /* */ - /* The `library' argument is taken to have access to FreeType's */ - /* memory handling functions. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Convert( FT_Library library, - const FT_Bitmap *source, - FT_Bitmap *target, - FT_Int alignment ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GlyphSlot_Own_Bitmap */ - /* */ - /* <Description> */ - /* Make sure that a glyph slot owns `slot->bitmap'. */ - /* */ - /* <Input> */ - /* slot :: The glyph slot. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function is to be used in combination with */ - /* @FT_Bitmap_Embolden. */ - /* */ - FT_EXPORT( FT_Error ) - FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Bitmap_Done */ - /* */ - /* <Description> */ - /* Destroy a bitmap object initialized with @FT_Bitmap_Init. */ - /* */ - /* <Input> */ - /* library :: A handle to a library object. */ - /* */ - /* bitmap :: The bitmap object to be freed. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The `library' argument is taken to have access to FreeType's */ - /* memory handling functions. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Done( FT_Library library, - FT_Bitmap *bitmap ); - - - /* */ - - -FT_END_HEADER - -#endif /* __FTBITMAP_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftbzip2.h b/lib/windows/include/freetype/ftbzip2.h deleted file mode 100644 index c25f946..0000000 --- a/lib/windows/include/freetype/ftbzip2.h +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftbzip2.h */ -/* */ -/* Bzip2-compressed stream support. */ -/* */ -/* Copyright 2010-2015 by */ -/* Joel Klinghed. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTBZIP2_H__ -#define __FTBZIP2_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* <Section> */ - /* bzip2 */ - /* */ - /* <Title> */ - /* BZIP2 Streams */ - /* */ - /* <Abstract> */ - /* Using bzip2-compressed font files. */ - /* */ - /* <Description> */ - /* This section contains the declaration of Bzip2-specific functions. */ - /* */ - /*************************************************************************/ - - - /************************************************************************ - * - * @function: - * FT_Stream_OpenBzip2 - * - * @description: - * Open a new stream to parse bzip2-compressed font files. This is - * mainly used to support the compressed `*.pcf.bz2' fonts that come - * with XFree86. - * - * @input: - * stream :: - * The target embedding stream. - * - * source :: - * The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close' on the new stream will - * *not* call `FT_Stream_Close' on the source stream. None of the stream - * objects will be released to the heap. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream. - * - * In certain builds of the library, bzip2 compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a bzip2 compressed stream - * from it and re-open the face with it. - * - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with bzip2 support. - */ - FT_EXPORT( FT_Error ) - FT_Stream_OpenBzip2( FT_Stream stream, - FT_Stream source ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTBZIP2_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftcache.h b/lib/windows/include/freetype/ftcache.h deleted file mode 100644 index 68525bb..0000000 --- a/lib/windows/include/freetype/ftcache.h +++ /dev/null @@ -1,1057 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcache.h */ -/* */ -/* FreeType Cache subsystem (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTCACHE_H__ -#define __FTCACHE_H__ - - -#include <ft2build.h> -#include FT_GLYPH_H - - -FT_BEGIN_HEADER - - - /************************************************************************* - * - * <Section> - * cache_subsystem - * - * <Title> - * Cache Sub-System - * - * <Abstract> - * How to cache face, size, and glyph data with FreeType~2. - * - * <Description> - * This section describes the FreeType~2 cache sub-system, which is used - * to limit the number of concurrently opened @FT_Face and @FT_Size - * objects, as well as caching information like character maps and glyph - * images while limiting their maximum memory usage. - * - * Note that all types and functions begin with the `FTC_' prefix. - * - * The cache is highly portable and thus doesn't know anything about the - * fonts installed on your system, or how to access them. This implies - * the following scheme: - * - * First, available or installed font faces are uniquely identified by - * @FTC_FaceID values, provided to the cache by the client. Note that - * the cache only stores and compares these values, and doesn't try to - * interpret them in any way. - * - * Second, the cache calls, only when needed, a client-provided function - * to convert an @FTC_FaceID into a new @FT_Face object. The latter is - * then completely managed by the cache, including its termination - * through @FT_Done_Face. To monitor termination of face objects, the - * finalizer callback in the `generic' field of the @FT_Face object can - * be used, which might also be used to store the @FTC_FaceID of the - * face. - * - * Clients are free to map face IDs to anything else. The most simple - * usage is to associate them to a (pathname,face_index) pair that is - * used to call @FT_New_Face. However, more complex schemes are also - * possible. - * - * Note that for the cache to work correctly, the face ID values must be - * *persistent*, which means that the contents they point to should not - * change at runtime, or that their value should not become invalid. - * - * If this is unavoidable (e.g., when a font is uninstalled at runtime), - * you should call @FTC_Manager_RemoveFaceID as soon as possible, to let - * the cache get rid of any references to the old @FTC_FaceID it may - * keep internally. Failure to do so will lead to incorrect behaviour - * or even crashes. - * - * To use the cache, start with calling @FTC_Manager_New to create a new - * @FTC_Manager object, which models a single cache instance. You can - * then look up @FT_Face and @FT_Size objects with - * @FTC_Manager_LookupFace and @FTC_Manager_LookupSize, respectively. - * - * If you want to use the charmap caching, call @FTC_CMapCache_New, then - * later use @FTC_CMapCache_Lookup to perform the equivalent of - * @FT_Get_Char_Index, only much faster. - * - * If you want to use the @FT_Glyph caching, call @FTC_ImageCache, then - * later use @FTC_ImageCache_Lookup to retrieve the corresponding - * @FT_Glyph objects from the cache. - * - * If you need lots of small bitmaps, it is much more memory efficient - * to call @FTC_SBitCache_New followed by @FTC_SBitCache_Lookup. This - * returns @FTC_SBitRec structures, which are used to store small - * bitmaps directly. (A small bitmap is one whose metrics and - * dimensions all fit into 8-bit integers). - * - * We hope to also provide a kerning cache in the near future. - * - * - * <Order> - * FTC_Manager - * FTC_FaceID - * FTC_Face_Requester - * - * FTC_Manager_New - * FTC_Manager_Reset - * FTC_Manager_Done - * FTC_Manager_LookupFace - * FTC_Manager_LookupSize - * FTC_Manager_RemoveFaceID - * - * FTC_Node - * FTC_Node_Unref - * - * FTC_ImageCache - * FTC_ImageCache_New - * FTC_ImageCache_Lookup - * - * FTC_SBit - * FTC_SBitCache - * FTC_SBitCache_New - * FTC_SBitCache_Lookup - * - * FTC_CMapCache - * FTC_CMapCache_New - * FTC_CMapCache_Lookup - * - *************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** BASIC TYPE DEFINITIONS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /************************************************************************* - * - * @type: FTC_FaceID - * - * @description: - * An opaque pointer type that is used to identity face objects. The - * contents of such objects is application-dependent. - * - * These pointers are typically used to point to a user-defined - * structure containing a font file path, and face index. - * - * @note: - * Never use NULL as a valid @FTC_FaceID. - * - * Face IDs are passed by the client to the cache manager that calls, - * when needed, the @FTC_Face_Requester to translate them into new - * @FT_Face objects. - * - * If the content of a given face ID changes at runtime, or if the value - * becomes invalid (e.g., when uninstalling a font), you should - * immediately call @FTC_Manager_RemoveFaceID before any other cache - * function. - * - * Failure to do so will result in incorrect behaviour or even - * memory leaks and crashes. - */ - typedef FT_Pointer FTC_FaceID; - - - /************************************************************************ - * - * @functype: - * FTC_Face_Requester - * - * @description: - * A callback function provided by client applications. It is used by - * the cache manager to translate a given @FTC_FaceID into a new valid - * @FT_Face object, on demand. - * - * <Input> - * face_id :: - * The face ID to resolve. - * - * library :: - * A handle to a FreeType library object. - * - * req_data :: - * Application-provided request data (see note below). - * - * <Output> - * aface :: - * A new @FT_Face handle. - * - * <Return> - * FreeType error code. 0~means success. - * - * <Note> - * The third parameter `req_data' is the same as the one passed by the - * client when @FTC_Manager_New is called. - * - * The face requester should not perform funny things on the returned - * face object, like creating a new @FT_Size for it, or setting a - * transformation through @FT_Set_Transform! - */ - typedef FT_Error - (*FTC_Face_Requester)( FTC_FaceID face_id, - FT_Library library, - FT_Pointer req_data, - FT_Face* aface ); - - /* */ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** CACHE MANAGER OBJECT *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_Manager */ - /* */ - /* <Description> */ - /* This object corresponds to one instance of the cache-subsystem. */ - /* It is used to cache one or more @FT_Face objects, along with */ - /* corresponding @FT_Size objects. */ - /* */ - /* The manager intentionally limits the total number of opened */ - /* @FT_Face and @FT_Size objects to control memory usage. See the */ - /* `max_faces' and `max_sizes' parameters of @FTC_Manager_New. */ - /* */ - /* The manager is also used to cache `nodes' of various types while */ - /* limiting their total memory usage. */ - /* */ - /* All limitations are enforced by keeping lists of managed objects */ - /* in most-recently-used order, and flushing old nodes to make room */ - /* for new ones. */ - /* */ - typedef struct FTC_ManagerRec_* FTC_Manager; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_Node */ - /* */ - /* <Description> */ - /* An opaque handle to a cache node object. Each cache node is */ - /* reference-counted. A node with a count of~0 might be flushed */ - /* out of a full cache whenever a lookup request is performed. */ - /* */ - /* If you look up nodes, you have the ability to `acquire' them, */ - /* i.e., to increment their reference count. This will prevent the */ - /* node from being flushed out of the cache until you explicitly */ - /* `release' it (see @FTC_Node_Unref). */ - /* */ - /* See also @FTC_SBitCache_Lookup and @FTC_ImageCache_Lookup. */ - /* */ - typedef struct FTC_NodeRec_* FTC_Node; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_New */ - /* */ - /* <Description> */ - /* Create a new cache manager. */ - /* */ - /* <Input> */ - /* library :: The parent FreeType library handle to use. */ - /* */ - /* max_faces :: Maximum number of opened @FT_Face objects managed by */ - /* this cache instance. Use~0 for defaults. */ - /* */ - /* max_sizes :: Maximum number of opened @FT_Size objects managed by */ - /* this cache instance. Use~0 for defaults. */ - /* */ - /* max_bytes :: Maximum number of bytes to use for cached data nodes. */ - /* Use~0 for defaults. Note that this value does not */ - /* account for managed @FT_Face and @FT_Size objects. */ - /* */ - /* requester :: An application-provided callback used to translate */ - /* face IDs into real @FT_Face objects. */ - /* */ - /* req_data :: A generic pointer that is passed to the requester */ - /* each time it is called (see @FTC_Face_Requester). */ - /* */ - /* <Output> */ - /* amanager :: A handle to a new manager object. 0~in case of */ - /* failure. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_Manager_New( FT_Library library, - FT_UInt max_faces, - FT_UInt max_sizes, - FT_ULong max_bytes, - FTC_Face_Requester requester, - FT_Pointer req_data, - FTC_Manager *amanager ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_Reset */ - /* */ - /* <Description> */ - /* Empty a given cache manager. This simply gets rid of all the */ - /* currently cached @FT_Face and @FT_Size objects within the manager. */ - /* */ - /* <InOut> */ - /* manager :: A handle to the manager. */ - /* */ - FT_EXPORT( void ) - FTC_Manager_Reset( FTC_Manager manager ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_Done */ - /* */ - /* <Description> */ - /* Destroy a given manager after emptying it. */ - /* */ - /* <Input> */ - /* manager :: A handle to the target cache manager object. */ - /* */ - FT_EXPORT( void ) - FTC_Manager_Done( FTC_Manager manager ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_LookupFace */ - /* */ - /* <Description> */ - /* Retrieve the @FT_Face object that corresponds to a given face ID */ - /* through a cache manager. */ - /* */ - /* <Input> */ - /* manager :: A handle to the cache manager. */ - /* */ - /* face_id :: The ID of the face object. */ - /* */ - /* <Output> */ - /* aface :: A handle to the face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned @FT_Face object is always owned by the manager. You */ - /* should never try to discard it yourself. */ - /* */ - /* The @FT_Face object doesn't necessarily have a current size object */ - /* (i.e., face->size can be~0). If you need a specific `font size', */ - /* use @FTC_Manager_LookupSize instead. */ - /* */ - /* Never change the face's transformation matrix (i.e., never call */ - /* the @FT_Set_Transform function) on a returned face! If you need */ - /* to transform glyphs, do it yourself after glyph loading. */ - /* */ - /* When you perform a lookup, out-of-memory errors are detected */ - /* _within_ the lookup and force incremental flushes of the cache */ - /* until enough memory is released for the lookup to succeed. */ - /* */ - /* If a lookup fails with `FT_Err_Out_Of_Memory' the cache has */ - /* already been completely flushed, and still no memory was available */ - /* for the operation. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_Manager_LookupFace( FTC_Manager manager, - FTC_FaceID face_id, - FT_Face *aface ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FTC_ScalerRec */ - /* */ - /* <Description> */ - /* A structure used to describe a given character size in either */ - /* pixels or points to the cache manager. See */ - /* @FTC_Manager_LookupSize. */ - /* */ - /* <Fields> */ - /* face_id :: The source face ID. */ - /* */ - /* width :: The character width. */ - /* */ - /* height :: The character height. */ - /* */ - /* pixel :: A Boolean. If 1, the `width' and `height' fields are */ - /* interpreted as integer pixel character sizes. */ - /* Otherwise, they are expressed as 1/64th of points. */ - /* */ - /* x_res :: Only used when `pixel' is value~0 to indicate the */ - /* horizontal resolution in dpi. */ - /* */ - /* y_res :: Only used when `pixel' is value~0 to indicate the */ - /* vertical resolution in dpi. */ - /* */ - /* <Note> */ - /* This type is mainly used to retrieve @FT_Size objects through the */ - /* cache manager. */ - /* */ - typedef struct FTC_ScalerRec_ - { - FTC_FaceID face_id; - FT_UInt width; - FT_UInt height; - FT_Int pixel; - FT_UInt x_res; - FT_UInt y_res; - - } FTC_ScalerRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FTC_Scaler */ - /* */ - /* <Description> */ - /* A handle to an @FTC_ScalerRec structure. */ - /* */ - typedef struct FTC_ScalerRec_* FTC_Scaler; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Manager_LookupSize */ - /* */ - /* <Description> */ - /* Retrieve the @FT_Size object that corresponds to a given */ - /* @FTC_ScalerRec pointer through a cache manager. */ - /* */ - /* <Input> */ - /* manager :: A handle to the cache manager. */ - /* */ - /* scaler :: A scaler handle. */ - /* */ - /* <Output> */ - /* asize :: A handle to the size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned @FT_Size object is always owned by the manager. You */ - /* should never try to discard it by yourself. */ - /* */ - /* You can access the parent @FT_Face object simply as `size->face' */ - /* if you need it. Note that this object is also owned by the */ - /* manager. */ - /* */ - /* <Note> */ - /* When you perform a lookup, out-of-memory errors are detected */ - /* _within_ the lookup and force incremental flushes of the cache */ - /* until enough memory is released for the lookup to succeed. */ - /* */ - /* If a lookup fails with `FT_Err_Out_Of_Memory' the cache has */ - /* already been completely flushed, and still no memory is available */ - /* for the operation. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_Manager_LookupSize( FTC_Manager manager, - FTC_Scaler scaler, - FT_Size *asize ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_Node_Unref */ - /* */ - /* <Description> */ - /* Decrement a cache node's internal reference count. When the count */ - /* reaches 0, it is not destroyed but becomes eligible for subsequent */ - /* cache flushes. */ - /* */ - /* <Input> */ - /* node :: The cache node handle. */ - /* */ - /* manager :: The cache manager handle. */ - /* */ - FT_EXPORT( void ) - FTC_Node_Unref( FTC_Node node, - FTC_Manager manager ); - - - /************************************************************************* - * - * @function: - * FTC_Manager_RemoveFaceID - * - * @description: - * A special function used to indicate to the cache manager that - * a given @FTC_FaceID is no longer valid, either because its - * content changed, or because it was deallocated or uninstalled. - * - * @input: - * manager :: - * The cache manager handle. - * - * face_id :: - * The @FTC_FaceID to be removed. - * - * @note: - * This function flushes all nodes from the cache corresponding to this - * `face_id', with the exception of nodes with a non-null reference - * count. - * - * Such nodes are however modified internally so as to never appear - * in later lookups with the same `face_id' value, and to be immediately - * destroyed when released by all their users. - * - */ - FT_EXPORT( void ) - FTC_Manager_RemoveFaceID( FTC_Manager manager, - FTC_FaceID face_id ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* cache_subsystem */ - /* */ - /*************************************************************************/ - - /************************************************************************* - * - * @type: - * FTC_CMapCache - * - * @description: - * An opaque handle used to model a charmap cache. This cache is to - * hold character codes -> glyph indices mappings. - * - */ - typedef struct FTC_CMapCacheRec_* FTC_CMapCache; - - - /************************************************************************* - * - * @function: - * FTC_CMapCache_New - * - * @description: - * Create a new charmap cache. - * - * @input: - * manager :: - * A handle to the cache manager. - * - * @output: - * acache :: - * A new cache handle. NULL in case of error. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Like all other caches, this one will be destroyed with the cache - * manager. - * - */ - FT_EXPORT( FT_Error ) - FTC_CMapCache_New( FTC_Manager manager, - FTC_CMapCache *acache ); - - - /************************************************************************ - * - * @function: - * FTC_CMapCache_Lookup - * - * @description: - * Translate a character code into a glyph index, using the charmap - * cache. - * - * @input: - * cache :: - * A charmap cache handle. - * - * face_id :: - * The source face ID. - * - * cmap_index :: - * The index of the charmap in the source face. Any negative value - * means to use the cache @FT_Face's default charmap. - * - * char_code :: - * The character code (in the corresponding charmap). - * - * @return: - * Glyph index. 0~means `no glyph'. - * - */ - FT_EXPORT( FT_UInt ) - FTC_CMapCache_Lookup( FTC_CMapCache cache, - FTC_FaceID face_id, - FT_Int cmap_index, - FT_UInt32 char_code ); - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* cache_subsystem */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** IMAGE CACHE OBJECT *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /************************************************************************* - * - * @struct: - * FTC_ImageTypeRec - * - * @description: - * A structure used to model the type of images in a glyph cache. - * - * @fields: - * face_id :: - * The face ID. - * - * width :: - * The width in pixels. - * - * height :: - * The height in pixels. - * - * flags :: - * The load flags, as in @FT_Load_Glyph. - * - */ - typedef struct FTC_ImageTypeRec_ - { - FTC_FaceID face_id; - FT_UInt width; - FT_UInt height; - FT_Int32 flags; - - } FTC_ImageTypeRec; - - - /************************************************************************* - * - * @type: - * FTC_ImageType - * - * @description: - * A handle to an @FTC_ImageTypeRec structure. - * - */ - typedef struct FTC_ImageTypeRec_* FTC_ImageType; - - - /* */ - - -#define FTC_IMAGE_TYPE_COMPARE( d1, d2 ) \ - ( (d1)->face_id == (d2)->face_id && \ - (d1)->width == (d2)->width && \ - (d1)->flags == (d2)->flags ) - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_ImageCache */ - /* */ - /* <Description> */ - /* A handle to a glyph image cache object. They are designed to */ - /* hold many distinct glyph images while not exceeding a certain */ - /* memory threshold. */ - /* */ - typedef struct FTC_ImageCacheRec_* FTC_ImageCache; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_ImageCache_New */ - /* */ - /* <Description> */ - /* Create a new glyph image cache. */ - /* */ - /* <Input> */ - /* manager :: The parent manager for the image cache. */ - /* */ - /* <Output> */ - /* acache :: A handle to the new glyph image cache object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_ImageCache_New( FTC_Manager manager, - FTC_ImageCache *acache ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_ImageCache_Lookup */ - /* */ - /* <Description> */ - /* Retrieve a given glyph image from a glyph image cache. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source glyph image cache. */ - /* */ - /* type :: A pointer to a glyph image type descriptor. */ - /* */ - /* gindex :: The glyph index to retrieve. */ - /* */ - /* <Output> */ - /* aglyph :: The corresponding @FT_Glyph object. 0~in case of */ - /* failure. */ - /* */ - /* anode :: Used to return the address of of the corresponding cache */ - /* node after incrementing its reference count (see note */ - /* below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned glyph is owned and managed by the glyph image cache. */ - /* Never try to transform or discard it manually! You can however */ - /* create a copy with @FT_Glyph_Copy and modify the new one. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the glyph image, after increasing its reference */ - /* count. This ensures that the node (as well as the @FT_Glyph) will */ - /* always be kept in the cache until you call @FTC_Node_Unref to */ - /* `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the @FT_Glyph could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - FT_EXPORT( FT_Error ) - FTC_ImageCache_Lookup( FTC_ImageCache cache, - FTC_ImageType type, - FT_UInt gindex, - FT_Glyph *aglyph, - FTC_Node *anode ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_ImageCache_LookupScaler */ - /* */ - /* <Description> */ - /* A variant of @FTC_ImageCache_Lookup that uses an @FTC_ScalerRec */ - /* to specify the face ID and its size. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source glyph image cache. */ - /* */ - /* scaler :: A pointer to a scaler descriptor. */ - /* */ - /* load_flags :: The corresponding load flags. */ - /* */ - /* gindex :: The glyph index to retrieve. */ - /* */ - /* <Output> */ - /* aglyph :: The corresponding @FT_Glyph object. 0~in case of */ - /* failure. */ - /* */ - /* anode :: Used to return the address of of the corresponding */ - /* cache node after incrementing its reference count */ - /* (see note below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The returned glyph is owned and managed by the glyph image cache. */ - /* Never try to transform or discard it manually! You can however */ - /* create a copy with @FT_Glyph_Copy and modify the new one. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the glyph image, after increasing its reference */ - /* count. This ensures that the node (as well as the @FT_Glyph) will */ - /* always be kept in the cache until you call @FTC_Node_Unref to */ - /* `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the @FT_Glyph could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - /* Calls to @FT_Set_Char_Size and friends have no effect on cached */ - /* glyphs; you should always use the FreeType cache API instead. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_ImageCache_LookupScaler( FTC_ImageCache cache, - FTC_Scaler scaler, - FT_ULong load_flags, - FT_UInt gindex, - FT_Glyph *aglyph, - FTC_Node *anode ); - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_SBit */ - /* */ - /* <Description> */ - /* A handle to a small bitmap descriptor. See the @FTC_SBitRec */ - /* structure for details. */ - /* */ - typedef struct FTC_SBitRec_* FTC_SBit; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FTC_SBitRec */ - /* */ - /* <Description> */ - /* A very compact structure used to describe a small glyph bitmap. */ - /* */ - /* <Fields> */ - /* width :: The bitmap width in pixels. */ - /* */ - /* height :: The bitmap height in pixels. */ - /* */ - /* left :: The horizontal distance from the pen position to the */ - /* left bitmap border (a.k.a. `left side bearing', or */ - /* `lsb'). */ - /* */ - /* top :: The vertical distance from the pen position (on the */ - /* baseline) to the upper bitmap border (a.k.a. `top */ - /* side bearing'). The distance is positive for upwards */ - /* y~coordinates. */ - /* */ - /* format :: The format of the glyph bitmap (monochrome or gray). */ - /* */ - /* max_grays :: Maximum gray level value (in the range 1 to~255). */ - /* */ - /* pitch :: The number of bytes per bitmap line. May be positive */ - /* or negative. */ - /* */ - /* xadvance :: The horizontal advance width in pixels. */ - /* */ - /* yadvance :: The vertical advance height in pixels. */ - /* */ - /* buffer :: A pointer to the bitmap pixels. */ - /* */ - typedef struct FTC_SBitRec_ - { - FT_Byte width; - FT_Byte height; - FT_Char left; - FT_Char top; - - FT_Byte format; - FT_Byte max_grays; - FT_Short pitch; - FT_Char xadvance; - FT_Char yadvance; - - FT_Byte* buffer; - - } FTC_SBitRec; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FTC_SBitCache */ - /* */ - /* <Description> */ - /* A handle to a small bitmap cache. These are special cache objects */ - /* used to store small glyph bitmaps (and anti-aliased pixmaps) in a */ - /* much more efficient way than the traditional glyph image cache */ - /* implemented by @FTC_ImageCache. */ - /* */ - typedef struct FTC_SBitCacheRec_* FTC_SBitCache; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_SBitCache_New */ - /* */ - /* <Description> */ - /* Create a new cache to store small glyph bitmaps. */ - /* */ - /* <Input> */ - /* manager :: A handle to the source cache manager. */ - /* */ - /* <Output> */ - /* acache :: A handle to the new sbit cache. NULL in case of error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FTC_SBitCache_New( FTC_Manager manager, - FTC_SBitCache *acache ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_SBitCache_Lookup */ - /* */ - /* <Description> */ - /* Look up a given small glyph bitmap in a given sbit cache and */ - /* `lock' it to prevent its flushing from the cache until needed. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source sbit cache. */ - /* */ - /* type :: A pointer to the glyph image type descriptor. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* <Output> */ - /* sbit :: A handle to a small bitmap descriptor. */ - /* */ - /* anode :: Used to return the address of of the corresponding cache */ - /* node after incrementing its reference count (see note */ - /* below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The small bitmap descriptor and its bit buffer are owned by the */ - /* cache and should never be freed by the application. They might */ - /* as well disappear from memory on the next cache lookup, so don't */ - /* treat them as persistent data. */ - /* */ - /* The descriptor's `buffer' field is set to~0 to indicate a missing */ - /* glyph bitmap. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the bitmap, after increasing its reference count. */ - /* This ensures that the node (as well as the image) will always be */ - /* kept in the cache until you call @FTC_Node_Unref to `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the bitmap could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - FT_EXPORT( FT_Error ) - FTC_SBitCache_Lookup( FTC_SBitCache cache, - FTC_ImageType type, - FT_UInt gindex, - FTC_SBit *sbit, - FTC_Node *anode ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FTC_SBitCache_LookupScaler */ - /* */ - /* <Description> */ - /* A variant of @FTC_SBitCache_Lookup that uses an @FTC_ScalerRec */ - /* to specify the face ID and its size. */ - /* */ - /* <Input> */ - /* cache :: A handle to the source sbit cache. */ - /* */ - /* scaler :: A pointer to the scaler descriptor. */ - /* */ - /* load_flags :: The corresponding load flags. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* <Output> */ - /* sbit :: A handle to a small bitmap descriptor. */ - /* */ - /* anode :: Used to return the address of of the corresponding */ - /* cache node after incrementing its reference count */ - /* (see note below). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The small bitmap descriptor and its bit buffer are owned by the */ - /* cache and should never be freed by the application. They might */ - /* as well disappear from memory on the next cache lookup, so don't */ - /* treat them as persistent data. */ - /* */ - /* The descriptor's `buffer' field is set to~0 to indicate a missing */ - /* glyph bitmap. */ - /* */ - /* If `anode' is _not_ NULL, it receives the address of the cache */ - /* node containing the bitmap, after increasing its reference count. */ - /* This ensures that the node (as well as the image) will always be */ - /* kept in the cache until you call @FTC_Node_Unref to `release' it. */ - /* */ - /* If `anode' is NULL, the cache node is left unchanged, which means */ - /* that the bitmap could be flushed out of the cache on the next */ - /* call to one of the caching sub-system APIs. Don't assume that it */ - /* is persistent! */ - /* */ - FT_EXPORT( FT_Error ) - FTC_SBitCache_LookupScaler( FTC_SBitCache cache, - FTC_Scaler scaler, - FT_ULong load_flags, - FT_UInt gindex, - FTC_SBit *sbit, - FTC_Node *anode ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTCACHE_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftcffdrv.h b/lib/windows/include/freetype/ftcffdrv.h deleted file mode 100644 index 6c8e416..0000000 --- a/lib/windows/include/freetype/ftcffdrv.h +++ /dev/null @@ -1,262 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcffdrv.h */ -/* */ -/* FreeType API for controlling the CFF driver (specification only). */ -/* */ -/* Copyright 2013-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTCFFDRV_H__ -#define __FTCFFDRV_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * cff_driver - * - * @title: - * The CFF driver - * - * @abstract: - * Controlling the CFF driver module. - * - * @description: - * While FreeType's CFF driver doesn't expose API functions by itself, - * it is possible to control its behaviour with @FT_Property_Set and - * @FT_Property_Get. The list below gives the available properties - * together with the necessary macros and structures. - * - * The CFF driver's module name is `cff'. - * - * *Hinting* *and* *antialiasing* *principles* *of* *the* *new* *engine* - * - * The rasterizer is positioning horizontal features (e.g., ascender - * height & x-height, or crossbars) on the pixel grid and minimizing the - * amount of antialiasing applied to them, while placing vertical - * features (vertical stems) on the pixel grid without hinting, thus - * representing the stem position and weight accurately. Sometimes the - * vertical stems may be only partially black. In this context, - * `antialiasing' means that stems are not positioned exactly on pixel - * borders, causing a fuzzy appearance. - * - * There are two principles behind this approach. - * - * 1) No hinting in the horizontal direction: Unlike `superhinted' - * TrueType, which changes glyph widths to accommodate regular - * inter-glyph spacing, Adobe's approach is `faithful to the design' in - * representing both the glyph width and the inter-glyph spacing - * designed for the font. This makes the screen display as close as it - * can be to the result one would get with infinite resolution, while - * preserving what is considered the key characteristics of each glyph. - * Note that the distances between unhinted and grid-fitted positions at - * small sizes are comparable to kerning values and thus would be - * noticeable (and distracting) while reading if hinting were applied. - * - * One of the reasons to not hint horizontally is antialiasing for LCD - * screens: The pixel geometry of modern displays supplies three - * vertical sub-pixels as the eye moves horizontally across each visible - * pixel. On devices where we can be certain this characteristic is - * present a rasterizer can take advantage of the sub-pixels to add - * increments of weight. In Western writing systems this turns out to - * be the more critical direction anyway; the weights and spacing of - * vertical stems (see above) are central to Armenian, Cyrillic, Greek, - * and Latin type designs. Even when the rasterizer uses greyscale - * antialiasing instead of color (a necessary compromise when one - * doesn't know the screen characteristics), the unhinted vertical - * features preserve the design's weight and spacing much better than - * aliased type would. - * - * 2) Aligment in the vertical direction: Weights and spacing along the - * y~axis are less critical; what is much more important is the visual - * alignment of related features (like cap-height and x-height). The - * sense of alignment for these is enhanced by the sharpness of grid-fit - * edges, while the cruder vertical resolution (full pixels instead of - * 1/3 pixels) is less of a problem. - * - * On the technical side, horizontal alignment zones for ascender, - * x-height, and other important height values (traditionally called - * `blue zones') as defined in the font are positioned independently, - * each being rounded to the nearest pixel edge, taking care of - * overshoot suppression at small sizes, stem darkening, and scaling. - * - * Hstems (this is, hint values defined in the font to help align - * horizontal features) that fall within a blue zone are said to be - * `captured' and are aligned to that zone. Uncaptured stems are moved - * in one of four ways, top edge up or down, bottom edge up or down. - * Unless there are conflicting hstems, the smallest movement is taken - * to minimize distortion. - * - * @order: - * hinting-engine - * no-stem-darkening - * darkening-parameters - * - */ - - - /************************************************************************** - * - * @property: - * hinting-engine - * - * @description: - * Thanks to Adobe, which contributed a new hinting (and parsing) - * engine, an application can select between `freetype' and `adobe' if - * compiled with CFF_CONFIG_OPTION_OLD_ENGINE. If this configuration - * macro isn't defined, `hinting-engine' does nothing. - * - * The default engine is `freetype' if CFF_CONFIG_OPTION_OLD_ENGINE is - * defined, and `adobe' otherwise. - * - * The following example code demonstrates how to select Adobe's hinting - * engine (omitting the error handling). - * - * { - * FT_Library library; - * FT_UInt hinting_engine = FT_CFF_HINTING_ADOBE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "hinting-engine", &hinting_engine ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - - /************************************************************************** - * - * @enum: - * FT_CFF_HINTING_XXX - * - * @description: - * A list of constants used for the @hinting-engine property to select - * the hinting engine for CFF fonts. - * - * @values: - * FT_CFF_HINTING_FREETYPE :: - * Use the old FreeType hinting engine. - * - * FT_CFF_HINTING_ADOBE :: - * Use the hinting engine contributed by Adobe. - * - */ -#define FT_CFF_HINTING_FREETYPE 0 -#define FT_CFF_HINTING_ADOBE 1 - - - /************************************************************************** - * - * @property: - * no-stem-darkening - * - * @description: - * By default, the Adobe CFF engine darkens stems at smaller sizes, - * regardless of hinting, to enhance contrast. This feature requires - * a rendering system with proper gamma correction. Setting this - * property, stem darkening gets switched off. - * - * Note that stem darkening is never applied if @FT_LOAD_NO_SCALE is set. - * - * { - * FT_Library library; - * FT_Bool no_stem_darkening = TRUE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "no-stem-darkening", &no_stem_darkening ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - - /************************************************************************** - * - * @property: - * darkening-parameters - * - * @description: - * By default, the Adobe CFF engine darkens stems as follows (if the - * `no-stem-darkening' property isn't set): - * - * { - * stem width <= 0.5px: darkening amount = 0.4px - * stem width = 1px: darkening amount = 0.275px - * stem width = 1.667px: darkening amount = 0.275px - * stem width >= 2.333px: darkening amount = 0px - * } - * - * and piecewise linear in-between. At configuration time, these four - * control points can be set with the macro - * `CFF_CONFIG_OPTION_DARKENING_PARAMETERS'. At runtime, the control - * points can be changed using the `darkening-parameters' property, as - * the following example demonstrates. - * - * { - * FT_Library library; - * FT_Int darken_params[8] = { 500, 300, // x1, y1 - * 1000, 200, // x2, y2 - * 1500, 100, // x3, y3 - * 2000, 0 }; // x4, y4 - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "darkening-parameters", darken_params ); - * } - * - * The x~values give the stem width, and the y~values the darkening - * amount. The unit is 1000th of pixels. All coordinate values must be - * positive; the x~values must be monotonically increasing; the - * y~values must be monotonically decreasing and smaller than or - * equal to 500 (corresponding to half a pixel); the slope of each - * linear piece must be shallower than -1 (e.g., -.4). - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - /* */ - - -FT_END_HEADER - - -#endif /* __FTCFFDRV_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftchapters.h b/lib/windows/include/freetype/ftchapters.h deleted file mode 100644 index d333761..0000000 --- a/lib/windows/include/freetype/ftchapters.h +++ /dev/null @@ -1,121 +0,0 @@ -/***************************************************************************/ -/* */ -/* This file defines the structure of the FreeType reference. */ -/* It is used by the python script that generates the HTML files. */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* general_remarks */ -/* */ -/* <Title> */ -/* General Remarks */ -/* */ -/* <Sections> */ -/* header_inclusion */ -/* user_allocation */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* core_api */ -/* */ -/* <Title> */ -/* Core API */ -/* */ -/* <Sections> */ -/* version */ -/* basic_types */ -/* base_interface */ -/* glyph_variants */ -/* glyph_management */ -/* mac_specific */ -/* sizes_management */ -/* header_file_macros */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* format_specific */ -/* */ -/* <Title> */ -/* Format-Specific API */ -/* */ -/* <Sections> */ -/* multiple_masters */ -/* truetype_tables */ -/* type1_tables */ -/* sfnt_names */ -/* bdf_fonts */ -/* cid_fonts */ -/* pfr_fonts */ -/* winfnt_fonts */ -/* font_formats */ -/* gasp_table */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* module_specific */ -/* */ -/* <Title> */ -/* Controlling FreeType Modules */ -/* */ -/* <Sections> */ -/* auto_hinter */ -/* cff_driver */ -/* tt_driver */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* cache_subsystem */ -/* */ -/* <Title> */ -/* Cache Sub-System */ -/* */ -/* <Sections> */ -/* cache_subsystem */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* <Chapter> */ -/* support_api */ -/* */ -/* <Title> */ -/* Support API */ -/* */ -/* <Sections> */ -/* computations */ -/* list_processing */ -/* outline_processing */ -/* quick_advance */ -/* bitmap_handling */ -/* raster */ -/* glyph_stroker */ -/* system_interface */ -/* module_management */ -/* gzip */ -/* lzw */ -/* bzip2 */ -/* lcd_filtering */ -/* */ -/***************************************************************************/ diff --git a/lib/windows/include/freetype/ftcid.h b/lib/windows/include/freetype/ftcid.h deleted file mode 100644 index 05741c8..0000000 --- a/lib/windows/include/freetype/ftcid.h +++ /dev/null @@ -1,168 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcid.h */ -/* */ -/* FreeType API for accessing CID font information (specification). */ -/* */ -/* Copyright 2007-2015 by */ -/* Dereg Clegg and Michael Toftdal. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTCID_H__ -#define __FTCID_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* cid_fonts */ - /* */ - /* <Title> */ - /* CID Fonts */ - /* */ - /* <Abstract> */ - /* CID-keyed font specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of CID-keyed font specific */ - /* functions. */ - /* */ - /*************************************************************************/ - - - /********************************************************************** - * - * @function: - * FT_Get_CID_Registry_Ordering_Supplement - * - * @description: - * Retrieve the Registry/Ordering/Supplement triple (also known as the - * "R/O/S") from a CID-keyed font. - * - * @input: - * face :: - * A handle to the input face. - * - * @output: - * registry :: - * The registry, as a C~string, owned by the face. - * - * ordering :: - * The ordering, as a C~string, owned by the face. - * - * supplement :: - * The supplement. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with CID faces, returning an error - * otherwise. - * - * @since: - * 2.3.6 - */ - FT_EXPORT( FT_Error ) - FT_Get_CID_Registry_Ordering_Supplement( FT_Face face, - const char* *registry, - const char* *ordering, - FT_Int *supplement); - - - /********************************************************************** - * - * @function: - * FT_Get_CID_Is_Internally_CID_Keyed - * - * @description: - * Retrieve the type of the input face, CID keyed or not. In - * constrast to the @FT_IS_CID_KEYED macro this function returns - * successfully also for CID-keyed fonts in an SNFT wrapper. - * - * @input: - * face :: - * A handle to the input face. - * - * @output: - * is_cid :: - * The type of the face as an @FT_Bool. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with CID faces and OpenType fonts, - * returning an error otherwise. - * - * @since: - * 2.3.9 - */ - FT_EXPORT( FT_Error ) - FT_Get_CID_Is_Internally_CID_Keyed( FT_Face face, - FT_Bool *is_cid ); - - - /********************************************************************** - * - * @function: - * FT_Get_CID_From_Glyph_Index - * - * @description: - * Retrieve the CID of the input glyph index. - * - * @input: - * face :: - * A handle to the input face. - * - * glyph_index :: - * The input glyph index. - * - * @output: - * cid :: - * The CID as an @FT_UInt. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with CID faces and OpenType fonts, - * returning an error otherwise. - * - * @since: - * 2.3.9 - */ - FT_EXPORT( FT_Error ) - FT_Get_CID_From_Glyph_Index( FT_Face face, - FT_UInt glyph_index, - FT_UInt *cid ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTCID_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/fterrdef.h b/lib/windows/include/freetype/fterrdef.h deleted file mode 100644 index 1bf0751..0000000 --- a/lib/windows/include/freetype/fterrdef.h +++ /dev/null @@ -1,249 +0,0 @@ -/***************************************************************************/ -/* */ -/* fterrdef.h */ -/* */ -/* FreeType error codes (specification). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** LIST OF ERROR CODES/MESSAGES *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - - /* You need to define both FT_ERRORDEF_ and FT_NOERRORDEF_ before */ - /* including this file. */ - - - /* generic errors */ - - FT_NOERRORDEF_( Ok, 0x00, - "no error" ) - - FT_ERRORDEF_( Cannot_Open_Resource, 0x01, - "cannot open resource" ) - FT_ERRORDEF_( Unknown_File_Format, 0x02, - "unknown file format" ) - FT_ERRORDEF_( Invalid_File_Format, 0x03, - "broken file" ) - FT_ERRORDEF_( Invalid_Version, 0x04, - "invalid FreeType version" ) - FT_ERRORDEF_( Lower_Module_Version, 0x05, - "module version is too low" ) - FT_ERRORDEF_( Invalid_Argument, 0x06, - "invalid argument" ) - FT_ERRORDEF_( Unimplemented_Feature, 0x07, - "unimplemented feature" ) - FT_ERRORDEF_( Invalid_Table, 0x08, - "broken table" ) - FT_ERRORDEF_( Invalid_Offset, 0x09, - "broken offset within table" ) - FT_ERRORDEF_( Array_Too_Large, 0x0A, - "array allocation size too large" ) - FT_ERRORDEF_( Missing_Module, 0x0B, - "missing module" ) - FT_ERRORDEF_( Missing_Property, 0x0C, - "missing property" ) - - /* glyph/character errors */ - - FT_ERRORDEF_( Invalid_Glyph_Index, 0x10, - "invalid glyph index" ) - FT_ERRORDEF_( Invalid_Character_Code, 0x11, - "invalid character code" ) - FT_ERRORDEF_( Invalid_Glyph_Format, 0x12, - "unsupported glyph image format" ) - FT_ERRORDEF_( Cannot_Render_Glyph, 0x13, - "cannot render this glyph format" ) - FT_ERRORDEF_( Invalid_Outline, 0x14, - "invalid outline" ) - FT_ERRORDEF_( Invalid_Composite, 0x15, - "invalid composite glyph" ) - FT_ERRORDEF_( Too_Many_Hints, 0x16, - "too many hints" ) - FT_ERRORDEF_( Invalid_Pixel_Size, 0x17, - "invalid pixel size" ) - - /* handle errors */ - - FT_ERRORDEF_( Invalid_Handle, 0x20, - "invalid object handle" ) - FT_ERRORDEF_( Invalid_Library_Handle, 0x21, - "invalid library handle" ) - FT_ERRORDEF_( Invalid_Driver_Handle, 0x22, - "invalid module handle" ) - FT_ERRORDEF_( Invalid_Face_Handle, 0x23, - "invalid face handle" ) - FT_ERRORDEF_( Invalid_Size_Handle, 0x24, - "invalid size handle" ) - FT_ERRORDEF_( Invalid_Slot_Handle, 0x25, - "invalid glyph slot handle" ) - FT_ERRORDEF_( Invalid_CharMap_Handle, 0x26, - "invalid charmap handle" ) - FT_ERRORDEF_( Invalid_Cache_Handle, 0x27, - "invalid cache manager handle" ) - FT_ERRORDEF_( Invalid_Stream_Handle, 0x28, - "invalid stream handle" ) - - /* driver errors */ - - FT_ERRORDEF_( Too_Many_Drivers, 0x30, - "too many modules" ) - FT_ERRORDEF_( Too_Many_Extensions, 0x31, - "too many extensions" ) - - /* memory errors */ - - FT_ERRORDEF_( Out_Of_Memory, 0x40, - "out of memory" ) - FT_ERRORDEF_( Unlisted_Object, 0x41, - "unlisted object" ) - - /* stream errors */ - - FT_ERRORDEF_( Cannot_Open_Stream, 0x51, - "cannot open stream" ) - FT_ERRORDEF_( Invalid_Stream_Seek, 0x52, - "invalid stream seek" ) - FT_ERRORDEF_( Invalid_Stream_Skip, 0x53, - "invalid stream skip" ) - FT_ERRORDEF_( Invalid_Stream_Read, 0x54, - "invalid stream read" ) - FT_ERRORDEF_( Invalid_Stream_Operation, 0x55, - "invalid stream operation" ) - FT_ERRORDEF_( Invalid_Frame_Operation, 0x56, - "invalid frame operation" ) - FT_ERRORDEF_( Nested_Frame_Access, 0x57, - "nested frame access" ) - FT_ERRORDEF_( Invalid_Frame_Read, 0x58, - "invalid frame read" ) - - /* raster errors */ - - FT_ERRORDEF_( Raster_Uninitialized, 0x60, - "raster uninitialized" ) - FT_ERRORDEF_( Raster_Corrupted, 0x61, - "raster corrupted" ) - FT_ERRORDEF_( Raster_Overflow, 0x62, - "raster overflow" ) - FT_ERRORDEF_( Raster_Negative_Height, 0x63, - "negative height while rastering" ) - - /* cache errors */ - - FT_ERRORDEF_( Too_Many_Caches, 0x70, - "too many registered caches" ) - - /* TrueType and SFNT errors */ - - FT_ERRORDEF_( Invalid_Opcode, 0x80, - "invalid opcode" ) - FT_ERRORDEF_( Too_Few_Arguments, 0x81, - "too few arguments" ) - FT_ERRORDEF_( Stack_Overflow, 0x82, - "stack overflow" ) - FT_ERRORDEF_( Code_Overflow, 0x83, - "code overflow" ) - FT_ERRORDEF_( Bad_Argument, 0x84, - "bad argument" ) - FT_ERRORDEF_( Divide_By_Zero, 0x85, - "division by zero" ) - FT_ERRORDEF_( Invalid_Reference, 0x86, - "invalid reference" ) - FT_ERRORDEF_( Debug_OpCode, 0x87, - "found debug opcode" ) - FT_ERRORDEF_( ENDF_In_Exec_Stream, 0x88, - "found ENDF opcode in execution stream" ) - FT_ERRORDEF_( Nested_DEFS, 0x89, - "nested DEFS" ) - FT_ERRORDEF_( Invalid_CodeRange, 0x8A, - "invalid code range" ) - FT_ERRORDEF_( Execution_Too_Long, 0x8B, - "execution context too long" ) - FT_ERRORDEF_( Too_Many_Function_Defs, 0x8C, - "too many function definitions" ) - FT_ERRORDEF_( Too_Many_Instruction_Defs, 0x8D, - "too many instruction definitions" ) - FT_ERRORDEF_( Table_Missing, 0x8E, - "SFNT font table missing" ) - FT_ERRORDEF_( Horiz_Header_Missing, 0x8F, - "horizontal header (hhea) table missing" ) - FT_ERRORDEF_( Locations_Missing, 0x90, - "locations (loca) table missing" ) - FT_ERRORDEF_( Name_Table_Missing, 0x91, - "name table missing" ) - FT_ERRORDEF_( CMap_Table_Missing, 0x92, - "character map (cmap) table missing" ) - FT_ERRORDEF_( Hmtx_Table_Missing, 0x93, - "horizontal metrics (hmtx) table missing" ) - FT_ERRORDEF_( Post_Table_Missing, 0x94, - "PostScript (post) table missing" ) - FT_ERRORDEF_( Invalid_Horiz_Metrics, 0x95, - "invalid horizontal metrics" ) - FT_ERRORDEF_( Invalid_CharMap_Format, 0x96, - "invalid character map (cmap) format" ) - FT_ERRORDEF_( Invalid_PPem, 0x97, - "invalid ppem value" ) - FT_ERRORDEF_( Invalid_Vert_Metrics, 0x98, - "invalid vertical metrics" ) - FT_ERRORDEF_( Could_Not_Find_Context, 0x99, - "could not find context" ) - FT_ERRORDEF_( Invalid_Post_Table_Format, 0x9A, - "invalid PostScript (post) table format" ) - FT_ERRORDEF_( Invalid_Post_Table, 0x9B, - "invalid PostScript (post) table" ) - - /* CFF, CID, and Type 1 errors */ - - FT_ERRORDEF_( Syntax_Error, 0xA0, - "opcode syntax error" ) - FT_ERRORDEF_( Stack_Underflow, 0xA1, - "argument stack underflow" ) - FT_ERRORDEF_( Ignore, 0xA2, - "ignore" ) - FT_ERRORDEF_( No_Unicode_Glyph_Name, 0xA3, - "no Unicode glyph name found" ) - FT_ERRORDEF_( Glyph_Too_Big, 0xA4, - "glyph to big for hinting" ) - - /* BDF errors */ - - FT_ERRORDEF_( Missing_Startfont_Field, 0xB0, - "`STARTFONT' field missing" ) - FT_ERRORDEF_( Missing_Font_Field, 0xB1, - "`FONT' field missing" ) - FT_ERRORDEF_( Missing_Size_Field, 0xB2, - "`SIZE' field missing" ) - FT_ERRORDEF_( Missing_Fontboundingbox_Field, 0xB3, - "`FONTBOUNDINGBOX' field missing" ) - FT_ERRORDEF_( Missing_Chars_Field, 0xB4, - "`CHARS' field missing" ) - FT_ERRORDEF_( Missing_Startchar_Field, 0xB5, - "`STARTCHAR' field missing" ) - FT_ERRORDEF_( Missing_Encoding_Field, 0xB6, - "`ENCODING' field missing" ) - FT_ERRORDEF_( Missing_Bbx_Field, 0xB7, - "`BBX' field missing" ) - FT_ERRORDEF_( Bbx_Too_Big, 0xB8, - "`BBX' too big" ) - FT_ERRORDEF_( Corrupted_Font_Header, 0xB9, - "Font header corrupted or missing fields" ) - FT_ERRORDEF_( Corrupted_Font_Glyphs, 0xBA, - "Font glyphs corrupted or missing fields" ) - - -/* END */ diff --git a/lib/windows/include/freetype/fterrors.h b/lib/windows/include/freetype/fterrors.h deleted file mode 100644 index 376bee6..0000000 --- a/lib/windows/include/freetype/fterrors.h +++ /dev/null @@ -1,198 +0,0 @@ -/***************************************************************************/ -/* */ -/* fterrors.h */ -/* */ -/* FreeType error code handling (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This special header file is used to define the handling of FT2 */ - /* enumeration constants. It can also be used to generate error message */ - /* strings with a small macro trick explained below. */ - /* */ - /* I - Error Formats */ - /* ----------------- */ - /* */ - /* The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be */ - /* defined in ftoption.h in order to make the higher byte indicate */ - /* the module where the error has happened (this is not compatible */ - /* with standard builds of FreeType 2). See the file `ftmoderr.h' for */ - /* more details. */ - /* */ - /* */ - /* II - Error Message strings */ - /* -------------------------- */ - /* */ - /* The error definitions below are made through special macros that */ - /* allow client applications to build a table of error message strings */ - /* if they need it. The strings are not included in a normal build of */ - /* FreeType 2 to save space (most client applications do not use */ - /* them). */ - /* */ - /* To do so, you have to define the following macros before including */ - /* this file: */ - /* */ - /* FT_ERROR_START_LIST :: */ - /* This macro is called before anything else to define the start of */ - /* the error list. It is followed by several FT_ERROR_DEF calls */ - /* (see below). */ - /* */ - /* FT_ERROR_DEF( e, v, s ) :: */ - /* This macro is called to define one single error. */ - /* `e' is the error code identifier (e.g. FT_Err_Invalid_Argument). */ - /* `v' is the error numerical value. */ - /* `s' is the corresponding error string. */ - /* */ - /* FT_ERROR_END_LIST :: */ - /* This macro ends the list. */ - /* */ - /* Additionally, you have to undefine __FTERRORS_H__ before #including */ - /* this file. */ - /* */ - /* Here is a simple example: */ - /* */ - /* { */ - /* #undef __FTERRORS_H__ */ - /* #define FT_ERRORDEF( e, v, s ) { e, s }, */ - /* #define FT_ERROR_START_LIST { */ - /* #define FT_ERROR_END_LIST { 0, 0 } }; */ - /* */ - /* const struct */ - /* { */ - /* int err_code; */ - /* const char* err_msg; */ - /* } ft_errors[] = */ - /* */ - /* #include FT_ERRORS_H */ - /* } */ - /* */ - /*************************************************************************/ - - -#ifndef __FTERRORS_H__ -#define __FTERRORS_H__ - - - /* include module base error codes */ -#include FT_MODULE_ERRORS_H - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** SETUP MACROS *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - -#undef FT_NEED_EXTERN_C - - - /* FT_ERR_PREFIX is used as a prefix for error identifiers. */ - /* By default, we use `FT_Err_'. */ - /* */ -#ifndef FT_ERR_PREFIX -#define FT_ERR_PREFIX FT_Err_ -#endif - - - /* FT_ERR_BASE is used as the base for module-specific errors. */ - /* */ -#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS - -#ifndef FT_ERR_BASE -#define FT_ERR_BASE FT_Mod_Err_Base -#endif - -#else - -#undef FT_ERR_BASE -#define FT_ERR_BASE 0 - -#endif /* FT_CONFIG_OPTION_USE_MODULE_ERRORS */ - - - /* If FT_ERRORDEF is not defined, we need to define a simple */ - /* enumeration type. */ - /* */ -#ifndef FT_ERRORDEF - -#define FT_ERRORDEF( e, v, s ) e = v, -#define FT_ERROR_START_LIST enum { -#define FT_ERROR_END_LIST FT_ERR_CAT( FT_ERR_PREFIX, Max ) }; - -#ifdef __cplusplus -#define FT_NEED_EXTERN_C - extern "C" { -#endif - -#endif /* !FT_ERRORDEF */ - - - /* this macro is used to define an error */ -#define FT_ERRORDEF_( e, v, s ) \ - FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v + FT_ERR_BASE, s ) - - /* this is only used for <module>_Err_Ok, which must be 0! */ -#define FT_NOERRORDEF_( e, v, s ) \ - FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v, s ) - - -#ifdef FT_ERROR_START_LIST - FT_ERROR_START_LIST -#endif - - - /* now include the error codes */ -#include FT_ERROR_DEFINITIONS_H - - -#ifdef FT_ERROR_END_LIST - FT_ERROR_END_LIST -#endif - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** SIMPLE CLEANUP *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - -#ifdef FT_NEED_EXTERN_C - } -#endif - -#undef FT_ERROR_START_LIST -#undef FT_ERROR_END_LIST - -#undef FT_ERRORDEF -#undef FT_ERRORDEF_ -#undef FT_NOERRORDEF_ - -#undef FT_NEED_EXTERN_C -#undef FT_ERR_BASE - - /* FT_ERR_PREFIX is needed internally */ -#ifndef FT2_BUILD_LIBRARY -#undef FT_ERR_PREFIX -#endif - -#endif /* __FTERRORS_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftfntfmt.h b/lib/windows/include/freetype/ftfntfmt.h deleted file mode 100644 index 1f8ff28..0000000 --- a/lib/windows/include/freetype/ftfntfmt.h +++ /dev/null @@ -1,92 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftfntfmt.h */ -/* */ -/* Support functions for font formats. */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTFNTFMT_H__ -#define __FTFNTFMT_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* font_formats */ - /* */ - /* <Title> */ - /* Font Formats */ - /* */ - /* <Abstract> */ - /* Getting the font format. */ - /* */ - /* <Description> */ - /* The single function in this section can be used to get the font */ - /* format. Note that this information is not needed normally; */ - /* however, there are special cases (like in PDF devices) where it is */ - /* important to differentiate, in spite of FreeType's uniform API. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Font_Format */ - /* */ - /* <Description> */ - /* Return a string describing the format of a given face. Possible */ - /* values are `TrueType', `Type~1', `BDF', `PCF', `Type~42', */ - /* `CID~Type~1', `CFF', `PFR', and `Windows~FNT'. */ - /* */ - /* The return value is suitable to be used as an X11 FONT_PROPERTY. */ - /* */ - /* <Input> */ - /* face :: */ - /* Input face handle. */ - /* */ - /* <Return> */ - /* Font format string. NULL in case of error. */ - /* */ - /* <Note> */ - /* A deprecated name for the same function is */ - /* `FT_Get_X11_Font_Format'. */ - /* */ - FT_EXPORT( const char* ) - FT_Get_Font_Format( FT_Face face ); - - - /* deprecated */ - FT_EXPORT( const char* ) - FT_Get_X11_Font_Format( FT_Face face ); - - - /* */ - - -FT_END_HEADER - -#endif /* __FTFNTFMT_H__ */ diff --git a/lib/windows/include/freetype/ftgasp.h b/lib/windows/include/freetype/ftgasp.h deleted file mode 100644 index 9a9b632..0000000 --- a/lib/windows/include/freetype/ftgasp.h +++ /dev/null @@ -1,129 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftgasp.h */ -/* */ -/* Access of TrueType's `gasp' table (specification). */ -/* */ -/* Copyright 2007-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef _FT_GASP_H_ -#define _FT_GASP_H_ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - - /*************************************************************************** - * - * @section: - * gasp_table - * - * @title: - * Gasp Table - * - * @abstract: - * Retrieving TrueType `gasp' table entries. - * - * @description: - * The function @FT_Get_Gasp can be used to query a TrueType or OpenType - * font for specific entries in its `gasp' table, if any. This is - * mainly useful when implementing native TrueType hinting with the - * bytecode interpreter to duplicate the Windows text rendering results. - */ - - /************************************************************************* - * - * @enum: - * FT_GASP_XXX - * - * @description: - * A list of values and/or bit-flags returned by the @FT_Get_Gasp - * function. - * - * @values: - * FT_GASP_NO_TABLE :: - * This special value means that there is no GASP table in this face. - * It is up to the client to decide what to do. - * - * FT_GASP_DO_GRIDFIT :: - * Grid-fitting and hinting should be performed at the specified ppem. - * This *really* means TrueType bytecode interpretation. If this bit - * is not set, no hinting gets applied. - * - * FT_GASP_DO_GRAY :: - * Anti-aliased rendering should be performed at the specified ppem. - * If not set, do monochrome rendering. - * - * FT_GASP_SYMMETRIC_SMOOTHING :: - * If set, smoothing along multiple axes must be used with ClearType. - * - * FT_GASP_SYMMETRIC_GRIDFIT :: - * Grid-fitting must be used with ClearType's symmetric smoothing. - * - * @note: - * The bit-flags `FT_GASP_DO_GRIDFIT' and `FT_GASP_DO_GRAY' are to be - * used for standard font rasterization only. Independently of that, - * `FT_GASP_SYMMETRIC_SMOOTHING' and `FT_GASP_SYMMETRIC_GRIDFIT' are to - * be used if ClearType is enabled (and `FT_GASP_DO_GRIDFIT' and - * `FT_GASP_DO_GRAY' are consequently ignored). - * - * `ClearType' is Microsoft's implementation of LCD rendering, partly - * protected by patents. - * - * @since: - * 2.3.0 - */ -#define FT_GASP_NO_TABLE -1 -#define FT_GASP_DO_GRIDFIT 0x01 -#define FT_GASP_DO_GRAY 0x02 -#define FT_GASP_SYMMETRIC_SMOOTHING 0x08 -#define FT_GASP_SYMMETRIC_GRIDFIT 0x10 - - - /************************************************************************* - * - * @func: - * FT_Get_Gasp - * - * @description: - * Read the `gasp' table from a TrueType or OpenType font file and - * return the entry corresponding to a given character pixel size. - * - * @input: - * face :: The source face handle. - * ppem :: The vertical character pixel size. - * - * @return: - * Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no - * `gasp' table in the face. - * - * @since: - * 2.3.0 - */ - FT_EXPORT( FT_Int ) - FT_Get_Gasp( FT_Face face, - FT_UInt ppem ); - - /* */ - - -#endif /* _FT_GASP_H_ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftglyph.h b/lib/windows/include/freetype/ftglyph.h deleted file mode 100644 index 803ad39..0000000 --- a/lib/windows/include/freetype/ftglyph.h +++ /dev/null @@ -1,605 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftglyph.h */ -/* */ -/* FreeType convenience functions to handle glyphs (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file contains the definition of several convenience functions */ - /* that can be used by client applications to easily retrieve glyph */ - /* bitmaps and outlines from a given face. */ - /* */ - /* These functions should be optional if you are writing a font server */ - /* or text layout engine on top of FreeType. However, they are pretty */ - /* handy for many other simple uses of the library. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTGLYPH_H__ -#define __FTGLYPH_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* glyph_management */ - /* */ - /* <Title> */ - /* Glyph Management */ - /* */ - /* <Abstract> */ - /* Generic interface to manage individual glyph data. */ - /* */ - /* <Description> */ - /* This section contains definitions used to manage glyph data */ - /* through generic FT_Glyph objects. Each of them can contain a */ - /* bitmap, a vector outline, or even images in other formats. */ - /* */ - /*************************************************************************/ - - - /* forward declaration to a private type */ - typedef struct FT_Glyph_Class_ FT_Glyph_Class; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Glyph */ - /* */ - /* <Description> */ - /* Handle to an object used to model generic glyph images. It is a */ - /* pointer to the @FT_GlyphRec structure and can contain a glyph */ - /* bitmap or pointer. */ - /* */ - /* <Note> */ - /* Glyph objects are not owned by the library. You must thus release */ - /* them manually (through @FT_Done_Glyph) _before_ calling */ - /* @FT_Done_FreeType. */ - /* */ - typedef struct FT_GlyphRec_* FT_Glyph; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_GlyphRec */ - /* */ - /* <Description> */ - /* The root glyph structure contains a given glyph image plus its */ - /* advance width in 16.16 fixed-point format. */ - /* */ - /* <Fields> */ - /* library :: A handle to the FreeType library object. */ - /* */ - /* clazz :: A pointer to the glyph's class. Private. */ - /* */ - /* format :: The format of the glyph's image. */ - /* */ - /* advance :: A 16.16 vector that gives the glyph's advance width. */ - /* */ - typedef struct FT_GlyphRec_ - { - FT_Library library; - const FT_Glyph_Class* clazz; - FT_Glyph_Format format; - FT_Vector advance; - - } FT_GlyphRec; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_BitmapGlyph */ - /* */ - /* <Description> */ - /* A handle to an object used to model a bitmap glyph image. This is */ - /* a sub-class of @FT_Glyph, and a pointer to @FT_BitmapGlyphRec. */ - /* */ - typedef struct FT_BitmapGlyphRec_* FT_BitmapGlyph; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_BitmapGlyphRec */ - /* */ - /* <Description> */ - /* A structure used for bitmap glyph images. This really is a */ - /* `sub-class' of @FT_GlyphRec. */ - /* */ - /* <Fields> */ - /* root :: The root @FT_Glyph fields. */ - /* */ - /* left :: The left-side bearing, i.e., the horizontal distance */ - /* from the current pen position to the left border of the */ - /* glyph bitmap. */ - /* */ - /* top :: The top-side bearing, i.e., the vertical distance from */ - /* the current pen position to the top border of the glyph */ - /* bitmap. This distance is positive for upwards~y! */ - /* */ - /* bitmap :: A descriptor for the bitmap. */ - /* */ - /* <Note> */ - /* You can typecast an @FT_Glyph to @FT_BitmapGlyph if you have */ - /* `glyph->format == FT_GLYPH_FORMAT_BITMAP'. This lets you access */ - /* the bitmap's contents easily. */ - /* */ - /* The corresponding pixel buffer is always owned by @FT_BitmapGlyph */ - /* and is thus created and destroyed with it. */ - /* */ - typedef struct FT_BitmapGlyphRec_ - { - FT_GlyphRec root; - FT_Int left; - FT_Int top; - FT_Bitmap bitmap; - - } FT_BitmapGlyphRec; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_OutlineGlyph */ - /* */ - /* <Description> */ - /* A handle to an object used to model an outline glyph image. This */ - /* is a sub-class of @FT_Glyph, and a pointer to @FT_OutlineGlyphRec. */ - /* */ - typedef struct FT_OutlineGlyphRec_* FT_OutlineGlyph; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_OutlineGlyphRec */ - /* */ - /* <Description> */ - /* A structure used for outline (vectorial) glyph images. This */ - /* really is a `sub-class' of @FT_GlyphRec. */ - /* */ - /* <Fields> */ - /* root :: The root @FT_Glyph fields. */ - /* */ - /* outline :: A descriptor for the outline. */ - /* */ - /* <Note> */ - /* You can typecast an @FT_Glyph to @FT_OutlineGlyph if you have */ - /* `glyph->format == FT_GLYPH_FORMAT_OUTLINE'. This lets you access */ - /* the outline's content easily. */ - /* */ - /* As the outline is extracted from a glyph slot, its coordinates are */ - /* expressed normally in 26.6 pixels, unless the flag */ - /* @FT_LOAD_NO_SCALE was used in @FT_Load_Glyph() or @FT_Load_Char(). */ - /* */ - /* The outline's tables are always owned by the object and are */ - /* destroyed with it. */ - /* */ - typedef struct FT_OutlineGlyphRec_ - { - FT_GlyphRec root; - FT_Outline outline; - - } FT_OutlineGlyphRec; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Glyph */ - /* */ - /* <Description> */ - /* A function used to extract a glyph image from a slot. Note that */ - /* the created @FT_Glyph object must be released with @FT_Done_Glyph. */ - /* */ - /* <Input> */ - /* slot :: A handle to the source glyph slot. */ - /* */ - /* <Output> */ - /* aglyph :: A handle to the glyph object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Glyph( FT_GlyphSlot slot, - FT_Glyph *aglyph ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_Copy */ - /* */ - /* <Description> */ - /* A function used to copy a glyph image. Note that the created */ - /* @FT_Glyph object must be released with @FT_Done_Glyph. */ - /* */ - /* <Input> */ - /* source :: A handle to the source glyph object. */ - /* */ - /* <Output> */ - /* target :: A handle to the target glyph object. 0~in case of */ - /* error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Glyph_Copy( FT_Glyph source, - FT_Glyph *target ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_Transform */ - /* */ - /* <Description> */ - /* Transform a glyph image if its format is scalable. */ - /* */ - /* <InOut> */ - /* glyph :: A handle to the target glyph object. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to a 2x2 matrix to apply. */ - /* */ - /* delta :: A pointer to a 2d vector to apply. Coordinates are */ - /* expressed in 1/64th of a pixel. */ - /* */ - /* <Return> */ - /* FreeType error code (if not 0, the glyph format is not scalable). */ - /* */ - /* <Note> */ - /* The 2x2 transformation matrix is also applied to the glyph's */ - /* advance vector. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Glyph_Transform( FT_Glyph glyph, - FT_Matrix* matrix, - FT_Vector* delta ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Glyph_BBox_Mode */ - /* */ - /* <Description> */ - /* The mode how the values of @FT_Glyph_Get_CBox are returned. */ - /* */ - /* <Values> */ - /* FT_GLYPH_BBOX_UNSCALED :: */ - /* Return unscaled font units. */ - /* */ - /* FT_GLYPH_BBOX_SUBPIXELS :: */ - /* Return unfitted 26.6 coordinates. */ - /* */ - /* FT_GLYPH_BBOX_GRIDFIT :: */ - /* Return grid-fitted 26.6 coordinates. */ - /* */ - /* FT_GLYPH_BBOX_TRUNCATE :: */ - /* Return coordinates in integer pixels. */ - /* */ - /* FT_GLYPH_BBOX_PIXELS :: */ - /* Return grid-fitted pixel coordinates. */ - /* */ - typedef enum FT_Glyph_BBox_Mode_ - { - FT_GLYPH_BBOX_UNSCALED = 0, - FT_GLYPH_BBOX_SUBPIXELS = 0, - FT_GLYPH_BBOX_GRIDFIT = 1, - FT_GLYPH_BBOX_TRUNCATE = 2, - FT_GLYPH_BBOX_PIXELS = 3 - - } FT_Glyph_BBox_Mode; - - - /* these constants are deprecated; use the corresponding */ - /* `FT_Glyph_BBox_Mode' values instead */ -#define ft_glyph_bbox_unscaled FT_GLYPH_BBOX_UNSCALED -#define ft_glyph_bbox_subpixels FT_GLYPH_BBOX_SUBPIXELS -#define ft_glyph_bbox_gridfit FT_GLYPH_BBOX_GRIDFIT -#define ft_glyph_bbox_truncate FT_GLYPH_BBOX_TRUNCATE -#define ft_glyph_bbox_pixels FT_GLYPH_BBOX_PIXELS - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_Get_CBox */ - /* */ - /* <Description> */ - /* Return a glyph's `control box'. The control box encloses all the */ - /* outline's points, including Bézier control points. Though it */ - /* coincides with the exact bounding box for most glyphs, it can be */ - /* slightly larger in some situations (like when rotating an outline */ - /* that contains Bézier outside arcs). */ - /* */ - /* Computing the control box is very fast, while getting the bounding */ - /* box can take much more time as it needs to walk over all segments */ - /* and arcs in the outline. To get the latter, you can use the */ - /* `ftbbox' component, which is dedicated to this single task. */ - /* */ - /* <Input> */ - /* glyph :: A handle to the source glyph object. */ - /* */ - /* mode :: The mode that indicates how to interpret the returned */ - /* bounding box values. */ - /* */ - /* <Output> */ - /* acbox :: The glyph coordinate bounding box. Coordinates are */ - /* expressed in 1/64th of pixels if it is grid-fitted. */ - /* */ - /* <Note> */ - /* Coordinates are relative to the glyph origin, using the y~upwards */ - /* convention. */ - /* */ - /* If the glyph has been loaded with @FT_LOAD_NO_SCALE, `bbox_mode' */ - /* must be set to @FT_GLYPH_BBOX_UNSCALED to get unscaled font */ - /* units in 26.6 pixel format. The value @FT_GLYPH_BBOX_SUBPIXELS */ - /* is another name for this constant. */ - /* */ - /* If the font is tricky and the glyph has been loaded with */ - /* @FT_LOAD_NO_SCALE, the resulting CBox is meaningless. To get */ - /* reasonable values for the CBox it is necessary to load the glyph */ - /* at a large ppem value (so that the hinting instructions can */ - /* properly shift and scale the subglyphs), then extracting the CBox, */ - /* which can be eventually converted back to font units. */ - /* */ - /* Note that the maximum coordinates are exclusive, which means that */ - /* one can compute the width and height of the glyph image (be it in */ - /* integer or 26.6 pixels) as: */ - /* */ - /* { */ - /* width = bbox.xMax - bbox.xMin; */ - /* height = bbox.yMax - bbox.yMin; */ - /* } */ - /* */ - /* Note also that for 26.6 coordinates, if `bbox_mode' is set to */ - /* @FT_GLYPH_BBOX_GRIDFIT, the coordinates will also be grid-fitted, */ - /* which corresponds to: */ - /* */ - /* { */ - /* bbox.xMin = FLOOR(bbox.xMin); */ - /* bbox.yMin = FLOOR(bbox.yMin); */ - /* bbox.xMax = CEILING(bbox.xMax); */ - /* bbox.yMax = CEILING(bbox.yMax); */ - /* } */ - /* */ - /* To get the bbox in pixel coordinates, set `bbox_mode' to */ - /* @FT_GLYPH_BBOX_TRUNCATE. */ - /* */ - /* To get the bbox in grid-fitted pixel coordinates, set `bbox_mode' */ - /* to @FT_GLYPH_BBOX_PIXELS. */ - /* */ - FT_EXPORT( void ) - FT_Glyph_Get_CBox( FT_Glyph glyph, - FT_UInt bbox_mode, - FT_BBox *acbox ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Glyph_To_Bitmap */ - /* */ - /* <Description> */ - /* Convert a given glyph object to a bitmap glyph object. */ - /* */ - /* <InOut> */ - /* the_glyph :: A pointer to a handle to the target glyph. */ - /* */ - /* <Input> */ - /* render_mode :: An enumeration that describes how the data is */ - /* rendered. */ - /* */ - /* origin :: A pointer to a vector used to translate the glyph */ - /* image before rendering. Can be~0 (if no */ - /* translation). The origin is expressed in */ - /* 26.6 pixels. */ - /* */ - /* destroy :: A boolean that indicates that the original glyph */ - /* image should be destroyed by this function. It is */ - /* never destroyed in case of error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function does nothing if the glyph format isn't scalable. */ - /* */ - /* The glyph image is translated with the `origin' vector before */ - /* rendering. */ - /* */ - /* The first parameter is a pointer to an @FT_Glyph handle, that will */ - /* be _replaced_ by this function (with newly allocated data). */ - /* Typically, you would use (omitting error handling): */ - /* */ - /* */ - /* { */ - /* FT_Glyph glyph; */ - /* FT_BitmapGlyph glyph_bitmap; */ - /* */ - /* */ - /* // load glyph */ - /* error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAUT ); */ - /* */ - /* // extract glyph image */ - /* error = FT_Get_Glyph( face->glyph, &glyph ); */ - /* */ - /* // convert to a bitmap (default render mode + destroying old) */ - /* if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) */ - /* { */ - /* error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_NORMAL, */ - /* 0, 1 ); */ - /* if ( error ) // `glyph' unchanged */ - /* ... */ - /* } */ - /* */ - /* // access bitmap content by typecasting */ - /* glyph_bitmap = (FT_BitmapGlyph)glyph; */ - /* */ - /* // do funny stuff with it, like blitting/drawing */ - /* ... */ - /* */ - /* // discard glyph image (bitmap or not) */ - /* FT_Done_Glyph( glyph ); */ - /* } */ - /* */ - /* */ - /* Here another example, again without error handling: */ - /* */ - /* */ - /* { */ - /* FT_Glyph glyphs[MAX_GLYPHS] */ - /* */ - /* */ - /* ... */ - /* */ - /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ - /* error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) || */ - /* FT_Get_Glyph ( face->glyph, &glyph[idx] ); */ - /* */ - /* ... */ - /* */ - /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ - /* { */ - /* FT_Glyph bitmap = glyphs[idx]; */ - /* */ - /* */ - /* ... */ - /* */ - /* // after this call, `bitmap' no longer points into */ - /* // the `glyphs' array (and the old value isn't destroyed) */ - /* FT_Glyph_To_Bitmap( &bitmap, FT_RENDER_MODE_MONO, 0, 0 ); */ - /* */ - /* ... */ - /* */ - /* FT_Done_Glyph( bitmap ); */ - /* } */ - /* */ - /* ... */ - /* */ - /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ - /* FT_Done_Glyph( glyphs[idx] ); */ - /* } */ - /* */ - FT_EXPORT( FT_Error ) - FT_Glyph_To_Bitmap( FT_Glyph* the_glyph, - FT_Render_Mode render_mode, - FT_Vector* origin, - FT_Bool destroy ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Glyph */ - /* */ - /* <Description> */ - /* Destroy a given glyph. */ - /* */ - /* <Input> */ - /* glyph :: A handle to the target glyph object. */ - /* */ - FT_EXPORT( void ) - FT_Done_Glyph( FT_Glyph glyph ); - - /* */ - - - /* other helpful functions */ - - /*************************************************************************/ - /* */ - /* <Section> */ - /* computations */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Matrix_Multiply */ - /* */ - /* <Description> */ - /* Perform the matrix operation `b = a*b'. */ - /* */ - /* <Input> */ - /* a :: A pointer to matrix `a'. */ - /* */ - /* <InOut> */ - /* b :: A pointer to matrix `b'. */ - /* */ - /* <Note> */ - /* The result is undefined if either `a' or `b' is zero. */ - /* */ - FT_EXPORT( void ) - FT_Matrix_Multiply( const FT_Matrix* a, - FT_Matrix* b ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Matrix_Invert */ - /* */ - /* <Description> */ - /* Invert a 2x2 matrix. Return an error if it can't be inverted. */ - /* */ - /* <InOut> */ - /* matrix :: A pointer to the target matrix. Remains untouched in */ - /* case of error. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Matrix_Invert( FT_Matrix* matrix ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTGLYPH_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/windows/include/freetype/ftgxval.h b/lib/windows/include/freetype/ftgxval.h deleted file mode 100644 index 0e9ac1d..0000000 --- a/lib/windows/include/freetype/ftgxval.h +++ /dev/null @@ -1,357 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftgxval.h */ -/* */ -/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* Masatake YAMATO, Redhat K.K, */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/***************************************************************************/ -/* */ -/* gxvalid is derived from both gxlayout module and otvalid module. */ -/* Development of gxlayout is supported by the Information-technology */ -/* Promotion Agency(IPA), Japan. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTGXVAL_H__ -#define __FTGXVAL_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* gx_validation */ - /* */ - /* <Title> */ - /* TrueTypeGX/AAT Validation */ - /* */ - /* <Abstract> */ - /* An API to validate TrueTypeGX/AAT tables. */ - /* */ - /* <Description> */ - /* This section contains the declaration of functions to validate */ - /* some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, */ - /* trak, prop, lcar). */ - /* */ - /* <Order> */ - /* FT_TrueTypeGX_Validate */ - /* FT_TrueTypeGX_Free */ - /* */ - /* FT_ClassicKern_Validate */ - /* FT_ClassicKern_Free */ - /* */ - /* FT_VALIDATE_GX_LENGTH */ - /* FT_VALIDATE_GXXXX */ - /* FT_VALIDATE_CKERNXXX */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* */ - /* Warning: Use FT_VALIDATE_XXX to validate a table. */ - /* Following definitions are for gxvalid developers. */ - /* */ - /* */ - /*************************************************************************/ - -#define FT_VALIDATE_feat_INDEX 0 -#define FT_VALIDATE_mort_INDEX 1 -#define FT_VALIDATE_morx_INDEX 2 -#define FT_VALIDATE_bsln_INDEX 3 -#define FT_VALIDATE_just_INDEX 4 -#define FT_VALIDATE_kern_INDEX 5 -#define FT_VALIDATE_opbd_INDEX 6 -#define FT_VALIDATE_trak_INDEX 7 -#define FT_VALIDATE_prop_INDEX 8 -#define FT_VALIDATE_lcar_INDEX 9 -#define FT_VALIDATE_GX_LAST_INDEX FT_VALIDATE_lcar_INDEX - - - /************************************************************************* - * - * @macro: - * FT_VALIDATE_GX_LENGTH - * - * @description: - * The number of tables checked in this module. Use it as a parameter - * for the `table-length' argument of function @FT_TrueTypeGX_Validate. - */ -#define FT_VALIDATE_GX_LENGTH (FT_VALIDATE_GX_LAST_INDEX + 1) - - /* */ - - /* Up to 0x1000 is used by otvalid. - Ox2xxx is reserved for feature OT extension. */ -#define FT_VALIDATE_GX_START 0x4000 -#define FT_VALIDATE_GX_BITFIELD( tag ) \ - ( FT_VALIDATE_GX_START << FT_VALIDATE_##tag##_INDEX ) - - - /********************************************************************** - * - * @enum: - * FT_VALIDATE_GXXXX - * - * @description: - * A list of bit-field constants used with @FT_TrueTypeGX_Validate to - * indicate which TrueTypeGX/AAT Type tables should be validated. - * - * @values: - * FT_VALIDATE_feat :: - * Validate `feat' table. - * - * FT_VALIDATE_mort :: - * Validate `mort' table. - * - * FT_VALIDATE_morx :: - * Validate `morx' table. - * - * FT_VALIDATE_bsln :: - * Validate `bsln' table. - * - * FT_VALIDATE_just :: - * Validate `just' table. - * - * FT_VALIDATE_kern :: - * Validate `kern' table. - * - * FT_VALIDATE_opbd :: - * Validate `opbd' table. - * - * FT_VALIDATE_trak :: - * Validate `trak' table. - * - * FT_VALIDATE_prop :: - * Validate `prop' table. - * - * FT_VALIDATE_lcar :: - * Validate `lcar' table. - * - * FT_VALIDATE_GX :: - * Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern, - * opbd, trak, prop and lcar). - * - */ - -#define FT_VALIDATE_feat FT_VALIDATE_GX_BITFIELD( feat ) -#define FT_VALIDATE_mort FT_VALIDATE_GX_BITFIELD( mort ) -#define FT_VALIDATE_morx FT_VALIDATE_GX_BITFIELD( morx ) -#define FT_VALIDATE_bsln FT_VALIDATE_GX_BITFIELD( bsln ) -#define FT_VALIDATE_just FT_VALIDATE_GX_BITFIELD( just ) -#define FT_VALIDATE_kern FT_VALIDATE_GX_BITFIELD( kern ) -#define FT_VALIDATE_opbd FT_VALIDATE_GX_BITFIELD( opbd ) -#define FT_VALIDATE_trak FT_VALIDATE_GX_BITFIELD( trak ) -#define FT_VALIDATE_prop FT_VALIDATE_GX_BITFIELD( prop ) -#define FT_VALIDATE_lcar FT_VALIDATE_GX_BITFIELD( lcar ) - -#define FT_VALIDATE_GX ( FT_VALIDATE_feat | \ - FT_VALIDATE_mort | \ - FT_VALIDATE_morx | \ - FT_VALIDATE_bsln | \ - FT_VALIDATE_just | \ - FT_VALIDATE_kern | \ - FT_VALIDATE_opbd | \ - FT_VALIDATE_trak | \ - FT_VALIDATE_prop | \ - FT_VALIDATE_lcar ) - - - /********************************************************************** - * - * @function: - * FT_TrueTypeGX_Validate - * - * @description: - * Validate various TrueTypeGX tables to assure that all offsets and - * indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without - * error checking (which can be quite time consuming). - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the tables to be validated. See - * @FT_VALIDATE_GXXXX for possible values. - * - * table_length :: - * The size of the `tables' array. Normally, @FT_VALIDATE_GX_LENGTH - * should be passed. - * - * @output: - * tables :: - * The array where all validated sfnt tables are stored. - * The array itself must be allocated by a client. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with TrueTypeGX fonts, returning an error - * otherwise. - * - * After use, the application should deallocate the buffers pointed to by - * each `tables' element, by calling @FT_TrueTypeGX_Free. A NULL value - * indicates that the table either doesn't exist in the font, the - * application hasn't asked for validation, or the validator doesn't have - * the ability to validate the sfnt table. - */ - FT_EXPORT( FT_Error ) - FT_TrueTypeGX_Validate( FT_Face face, - FT_UInt validation_flags, - FT_Bytes tables[FT_VALIDATE_GX_LENGTH], - FT_UInt table_length ); - - - /********************************************************************** - * - * @function: - * FT_TrueTypeGX_Free - * - * @description: - * Free the buffer allocated by TrueTypeGX validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer allocated by - * @FT_TrueTypeGX_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_TrueTypeGX_Validate only. - */ - FT_EXPORT( void ) - FT_TrueTypeGX_Free( FT_Face face, - FT_Bytes table ); - - - /********************************************************************** - * - * @enum: - * FT_VALIDATE_CKERNXXX - * - * @description: - * A list of bit-field constants used with @FT_ClassicKern_Validate - * to indicate the classic kern dialect or dialects. If the selected - * type doesn't fit, @FT_ClassicKern_Validate regards the table as - * invalid. - * - * @values: - * FT_VALIDATE_MS :: - * Handle the `kern' table as a classic Microsoft kern table. - * - * FT_VALIDATE_APPLE :: - * Handle the `kern' table as a classic Apple kern table. - * - * FT_VALIDATE_CKERN :: - * Handle the `kern' as either classic Apple or Microsoft kern table. - */ -#define FT_VALIDATE_MS ( FT_VALIDATE_GX_START << 0 ) -#define FT_VALIDATE_APPLE ( FT_VALIDATE_GX_START << 1 ) - -#define FT_VALIDATE_CKERN ( FT_VALIDATE_MS | FT_VALIDATE_APPLE ) - - - /********************************************************************** - * - * @function: - * FT_ClassicKern_Validate - * - * @description: - * Validate classic (16-bit format) kern table to assure that the offsets - * and indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without error - * checking (which can be quite time consuming). - * - * The `kern' table validator in @FT_TrueTypeGX_Validate deals with both - * the new 32-bit format and the classic 16-bit format, while - * FT_ClassicKern_Validate only supports the classic 16-bit format. - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the dialect to be validated. See - * @FT_VALIDATE_CKERNXXX for possible values. - * - * @output: - * ckern_table :: - * A pointer to the kern table. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * After use, the application should deallocate the buffers pointed to by - * `ckern_table', by calling @FT_ClassicKern_Free. A NULL value - * indicates that the table doesn't exist in the font. - */ - FT_EXPORT( FT_Error ) - FT_ClassicKern_Validate( FT_Face face, - FT_UInt validation_flags, - FT_Bytes *ckern_table ); - - - /********************************************************************** - * - * @function: - * FT_ClassicKern_Free - * - * @description: - * Free the buffer allocated by classic Kern validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer that is allocated by - * @FT_ClassicKern_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_ClassicKern_Validate only. - */ - FT_EXPORT( void ) - FT_ClassicKern_Free( FT_Face face, - FT_Bytes table ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTGXVAL_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftgzip.h b/lib/windows/include/freetype/ftgzip.h deleted file mode 100644 index b3a532d..0000000 --- a/lib/windows/include/freetype/ftgzip.h +++ /dev/null @@ -1,148 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftgzip.h */ -/* */ -/* Gzip-compressed stream support. */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTGZIP_H__ -#define __FTGZIP_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* <Section> */ - /* gzip */ - /* */ - /* <Title> */ - /* GZIP Streams */ - /* */ - /* <Abstract> */ - /* Using gzip-compressed font files. */ - /* */ - /* <Description> */ - /* This section contains the declaration of Gzip-specific functions. */ - /* */ - /*************************************************************************/ - - - /************************************************************************ - * - * @function: - * FT_Stream_OpenGzip - * - * @description: - * Open a new stream to parse gzip-compressed font files. This is - * mainly used to support the compressed `*.pcf.gz' fonts that come - * with XFree86. - * - * @input: - * stream :: - * The target embedding stream. - * - * source :: - * The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close' on the new stream will - * *not* call `FT_Stream_Close' on the source stream. None of the stream - * objects will be released to the heap. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream. - * - * In certain builds of the library, gzip compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a gzipped stream from - * it and re-open the face with it. - * - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with zlib support. - */ - FT_EXPORT( FT_Error ) - FT_Stream_OpenGzip( FT_Stream stream, - FT_Stream source ); - - - /************************************************************************ - * - * @function: - * FT_Gzip_Uncompress - * - * @description: - * Decompress a zipped input buffer into an output buffer. This function - * is modeled after zlib's `uncompress' function. - * - * @input: - * memory :: - * A FreeType memory handle. - * - * input :: - * The input buffer. - * - * input_len :: - * The length of the input buffer. - * - * @output: - * output:: - * The output buffer. - * - * @inout: - * output_len :: - * Before calling the function, this is the the total size of the - * output buffer, which must be large enough to hold the entire - * uncompressed data (so the size of the uncompressed data must be - * known in advance). After calling the function, `output_len' is the - * size of the used data in `output'. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with zlib support. - */ - FT_EXPORT( FT_Error ) - FT_Gzip_Uncompress( FT_Memory memory, - FT_Byte* output, - FT_ULong* output_len, - const FT_Byte* input, - FT_ULong input_len ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTGZIP_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftimage.h b/lib/windows/include/freetype/ftimage.h deleted file mode 100644 index 82f284c..0000000 --- a/lib/windows/include/freetype/ftimage.h +++ /dev/null @@ -1,1214 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftimage.h */ -/* */ -/* FreeType glyph image formats and default raster interface */ -/* (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - /*************************************************************************/ - /* */ - /* Note: A `raster' is simply a scan-line converter, used to render */ - /* FT_Outlines into FT_Bitmaps. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTIMAGE_H__ -#define __FTIMAGE_H__ - - - /* _STANDALONE_ is from ftgrays.c */ -#ifndef _STANDALONE_ -#include <ft2build.h> -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Pos */ - /* */ - /* <Description> */ - /* The type FT_Pos is used to store vectorial coordinates. Depending */ - /* on the context, these can represent distances in integer font */ - /* units, or 16.16, or 26.6 fixed-point pixel coordinates. */ - /* */ - typedef signed long FT_Pos; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Vector */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2D vector; coordinates are of */ - /* the FT_Pos type. */ - /* */ - /* <Fields> */ - /* x :: The horizontal coordinate. */ - /* y :: The vertical coordinate. */ - /* */ - typedef struct FT_Vector_ - { - FT_Pos x; - FT_Pos y; - - } FT_Vector; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_BBox */ - /* */ - /* <Description> */ - /* A structure used to hold an outline's bounding box, i.e., the */ - /* coordinates of its extrema in the horizontal and vertical */ - /* directions. */ - /* */ - /* <Fields> */ - /* xMin :: The horizontal minimum (left-most). */ - /* */ - /* yMin :: The vertical minimum (bottom-most). */ - /* */ - /* xMax :: The horizontal maximum (right-most). */ - /* */ - /* yMax :: The vertical maximum (top-most). */ - /* */ - /* <Note> */ - /* The bounding box is specified with the coordinates of the lower */ - /* left and the upper right corner. In PostScript, those values are */ - /* often called (llx,lly) and (urx,ury), respectively. */ - /* */ - /* If `yMin' is negative, this value gives the glyph's descender. */ - /* Otherwise, the glyph doesn't descend below the baseline. */ - /* Similarly, if `ymax' is positive, this value gives the glyph's */ - /* ascender. */ - /* */ - /* `xMin' gives the horizontal distance from the glyph's origin to */ - /* the left edge of the glyph's bounding box. If `xMin' is negative, */ - /* the glyph extends to the left of the origin. */ - /* */ - typedef struct FT_BBox_ - { - FT_Pos xMin, yMin; - FT_Pos xMax, yMax; - - } FT_BBox; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Pixel_Mode */ - /* */ - /* <Description> */ - /* An enumeration type used to describe the format of pixels in a */ - /* given bitmap. Note that additional formats may be added in the */ - /* future. */ - /* */ - /* <Values> */ - /* FT_PIXEL_MODE_NONE :: */ - /* Value~0 is reserved. */ - /* */ - /* FT_PIXEL_MODE_MONO :: */ - /* A monochrome bitmap, using 1~bit per pixel. Note that pixels */ - /* are stored in most-significant order (MSB), which means that */ - /* the left-most pixel in a byte has value 128. */ - /* */ - /* FT_PIXEL_MODE_GRAY :: */ - /* An 8-bit bitmap, generally used to represent anti-aliased glyph */ - /* images. Each pixel is stored in one byte. Note that the number */ - /* of `gray' levels is stored in the `num_grays' field of the */ - /* @FT_Bitmap structure (it generally is 256). */ - /* */ - /* FT_PIXEL_MODE_GRAY2 :: */ - /* A 2-bit per pixel bitmap, used to represent embedded */ - /* anti-aliased bitmaps in font files according to the OpenType */ - /* specification. We haven't found a single font using this */ - /* format, however. */ - /* */ - /* FT_PIXEL_MODE_GRAY4 :: */ - /* A 4-bit per pixel bitmap, representing embedded anti-aliased */ - /* bitmaps in font files according to the OpenType specification. */ - /* We haven't found a single font using this format, however. */ - /* */ - /* FT_PIXEL_MODE_LCD :: */ - /* An 8-bit bitmap, representing RGB or BGR decimated glyph images */ - /* used for display on LCD displays; the bitmap is three times */ - /* wider than the original glyph image. See also */ - /* @FT_RENDER_MODE_LCD. */ - /* */ - /* FT_PIXEL_MODE_LCD_V :: */ - /* An 8-bit bitmap, representing RGB or BGR decimated glyph images */ - /* used for display on rotated LCD displays; the bitmap is three */ - /* times taller than the original glyph image. See also */ - /* @FT_RENDER_MODE_LCD_V. */ - /* */ - /* FT_PIXEL_MODE_BGRA :: */ - /* An image with four 8-bit channels per pixel, representing a */ - /* color image (such as emoticons) with alpha channel. For each */ - /* pixel, the format is BGRA, which means, the blue channel comes */ - /* first in memory. The color channels are pre-multiplied and in */ - /* the sRGB colorspace. For example, full red at half-translucent */ - /* opacity will be represented as `00,00,80,80', not `00,00,FF,80'. */ - /* See also @FT_LOAD_COLOR. */ - /* */ - typedef enum FT_Pixel_Mode_ - { - FT_PIXEL_MODE_NONE = 0, - FT_PIXEL_MODE_MONO, - FT_PIXEL_MODE_GRAY, - FT_PIXEL_MODE_GRAY2, - FT_PIXEL_MODE_GRAY4, - FT_PIXEL_MODE_LCD, - FT_PIXEL_MODE_LCD_V, - FT_PIXEL_MODE_BGRA, - - FT_PIXEL_MODE_MAX /* do not remove */ - - } FT_Pixel_Mode; - - - /* these constants are deprecated; use the corresponding `FT_Pixel_Mode' */ - /* values instead. */ -#define ft_pixel_mode_none FT_PIXEL_MODE_NONE -#define ft_pixel_mode_mono FT_PIXEL_MODE_MONO -#define ft_pixel_mode_grays FT_PIXEL_MODE_GRAY -#define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2 -#define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4 - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Bitmap */ - /* */ - /* <Description> */ - /* A structure used to describe a bitmap or pixmap to the raster. */ - /* Note that we now manage pixmaps of various depths through the */ - /* `pixel_mode' field. */ - /* */ - /* <Fields> */ - /* rows :: The number of bitmap rows. */ - /* */ - /* width :: The number of pixels in bitmap row. */ - /* */ - /* pitch :: The pitch's absolute value is the number of bytes */ - /* taken by one bitmap row, including padding. */ - /* However, the pitch is positive when the bitmap has */ - /* a `down' flow, and negative when it has an `up' */ - /* flow. In all cases, the pitch is an offset to add */ - /* to a bitmap pointer in order to go down one row. */ - /* */ - /* Note that `padding' means the alignment of a */ - /* bitmap to a byte border, and FreeType functions */ - /* normally align to the smallest possible integer */ - /* value. */ - /* */ - /* For the B/W rasterizer, `pitch' is always an even */ - /* number. */ - /* */ - /* To change the pitch of a bitmap (say, to make it a */ - /* multiple of 4), use @FT_Bitmap_Convert. */ - /* Alternatively, you might use callback functions to */ - /* directly render to the application's surface; see */ - /* the file `example2.cpp' in the tutorial for a */ - /* demonstration. */ - /* */ - /* buffer :: A typeless pointer to the bitmap buffer. This */ - /* value should be aligned on 32-bit boundaries in */ - /* most cases. */ - /* */ - /* num_grays :: This field is only used with */ - /* @FT_PIXEL_MODE_GRAY; it gives the number of gray */ - /* levels used in the bitmap. */ - /* */ - /* pixel_mode :: The pixel mode, i.e., how pixel bits are stored. */ - /* See @FT_Pixel_Mode for possible values. */ - /* */ - /* palette_mode :: This field is intended for paletted pixel modes; */ - /* it indicates how the palette is stored. Not */ - /* used currently. */ - /* */ - /* palette :: A typeless pointer to the bitmap palette; this */ - /* field is intended for paletted pixel modes. Not */ - /* used currently. */ - /* */ - typedef struct FT_Bitmap_ - { - unsigned int rows; - unsigned int width; - int pitch; - unsigned char* buffer; - unsigned short num_grays; - unsigned char pixel_mode; - unsigned char palette_mode; - void* palette; - - } FT_Bitmap; - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* outline_processing */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Outline */ - /* */ - /* <Description> */ - /* This structure is used to describe an outline to the scan-line */ - /* converter. */ - /* */ - /* <Fields> */ - /* n_contours :: The number of contours in the outline. */ - /* */ - /* n_points :: The number of points in the outline. */ - /* */ - /* points :: A pointer to an array of `n_points' @FT_Vector */ - /* elements, giving the outline's point coordinates. */ - /* */ - /* tags :: A pointer to an array of `n_points' chars, giving */ - /* each outline point's type. */ - /* */ - /* If bit~0 is unset, the point is `off' the curve, */ - /* i.e., a Bézier control point, while it is `on' if */ - /* set. */ - /* */ - /* Bit~1 is meaningful for `off' points only. If set, */ - /* it indicates a third-order Bézier arc control point; */ - /* and a second-order control point if unset. */ - /* */ - /* If bit~2 is set, bits 5-7 contain the drop-out mode */ - /* (as defined in the OpenType specification; the value */ - /* is the same as the argument to the SCANMODE */ - /* instruction). */ - /* */ - /* Bits 3 and~4 are reserved for internal purposes. */ - /* */ - /* contours :: An array of `n_contours' shorts, giving the end */ - /* point of each contour within the outline. For */ - /* example, the first contour is defined by the points */ - /* `0' to `contours[0]', the second one is defined by */ - /* the points `contours[0]+1' to `contours[1]', etc. */ - /* */ - /* flags :: A set of bit flags used to characterize the outline */ - /* and give hints to the scan-converter and hinter on */ - /* how to convert/grid-fit it. See @FT_OUTLINE_XXX. */ - /* */ - /* <Note> */ - /* The B/W rasterizer only checks bit~2 in the `tags' array for the */ - /* first point of each contour. The drop-out mode as given with */ - /* @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and */ - /* @FT_OUTLINE_INCLUDE_STUBS in `flags' is then overridden. */ - /* */ - typedef struct FT_Outline_ - { - short n_contours; /* number of contours in glyph */ - short n_points; /* number of points in the glyph */ - - FT_Vector* points; /* the outline's points */ - char* tags; /* the points flags */ - short* contours; /* the contour end points */ - - int flags; /* outline masks */ - - } FT_Outline; - - /* */ - - /* Following limits must be consistent with */ - /* FT_Outline.{n_contours,n_points} */ -#define FT_OUTLINE_CONTOURS_MAX SHRT_MAX -#define FT_OUTLINE_POINTS_MAX SHRT_MAX - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_OUTLINE_XXX */ - /* */ - /* <Description> */ - /* A list of bit-field constants use for the flags in an outline's */ - /* `flags' field. */ - /* */ - /* <Values> */ - /* FT_OUTLINE_NONE :: */ - /* Value~0 is reserved. */ - /* */ - /* FT_OUTLINE_OWNER :: */ - /* If set, this flag indicates that the outline's field arrays */ - /* (i.e., `points', `flags', and `contours') are `owned' by the */ - /* outline object, and should thus be freed when it is destroyed. */ - /* */ - /* FT_OUTLINE_EVEN_ODD_FILL :: */ - /* By default, outlines are filled using the non-zero winding rule. */ - /* If set to 1, the outline will be filled using the even-odd fill */ - /* rule (only works with the smooth rasterizer). */ - /* */ - /* FT_OUTLINE_REVERSE_FILL :: */ - /* By default, outside contours of an outline are oriented in */ - /* clock-wise direction, as defined in the TrueType specification. */ - /* This flag is set if the outline uses the opposite direction */ - /* (typically for Type~1 fonts). This flag is ignored by the scan */ - /* converter. */ - /* */ - /* FT_OUTLINE_IGNORE_DROPOUTS :: */ - /* By default, the scan converter will try to detect drop-outs in */ - /* an outline and correct the glyph bitmap to ensure consistent */ - /* shape continuity. If set, this flag hints the scan-line */ - /* converter to ignore such cases. See below for more information. */ - /* */ - /* FT_OUTLINE_SMART_DROPOUTS :: */ - /* Select smart dropout control. If unset, use simple dropout */ - /* control. Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. See */ - /* below for more information. */ - /* */ - /* FT_OUTLINE_INCLUDE_STUBS :: */ - /* If set, turn pixels on for `stubs', otherwise exclude them. */ - /* Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. See below for */ - /* more information. */ - /* */ - /* FT_OUTLINE_HIGH_PRECISION :: */ - /* This flag indicates that the scan-line converter should try to */ - /* convert this outline to bitmaps with the highest possible */ - /* quality. It is typically set for small character sizes. Note */ - /* that this is only a hint that might be completely ignored by a */ - /* given scan-converter. */ - /* */ - /* FT_OUTLINE_SINGLE_PASS :: */ - /* This flag is set to force a given scan-converter to only use a */ - /* single pass over the outline to render a bitmap glyph image. */ - /* Normally, it is set for very large character sizes. It is only */ - /* a hint that might be completely ignored by a given */ - /* scan-converter. */ - /* */ - /* <Note> */ - /* The flags @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, */ - /* and @FT_OUTLINE_INCLUDE_STUBS are ignored by the smooth */ - /* rasterizer. */ - /* */ - /* There exists a second mechanism to pass the drop-out mode to the */ - /* B/W rasterizer; see the `tags' field in @FT_Outline. */ - /* */ - /* Please refer to the description of the `SCANTYPE' instruction in */ - /* the OpenType specification (in file `ttinst1.doc') how simple */ - /* drop-outs, smart drop-outs, and stubs are defined. */ - /* */ -#define FT_OUTLINE_NONE 0x0 -#define FT_OUTLINE_OWNER 0x1 -#define FT_OUTLINE_EVEN_ODD_FILL 0x2 -#define FT_OUTLINE_REVERSE_FILL 0x4 -#define FT_OUTLINE_IGNORE_DROPOUTS 0x8 -#define FT_OUTLINE_SMART_DROPOUTS 0x10 -#define FT_OUTLINE_INCLUDE_STUBS 0x20 - -#define FT_OUTLINE_HIGH_PRECISION 0x100 -#define FT_OUTLINE_SINGLE_PASS 0x200 - - - /* these constants are deprecated; use the corresponding */ - /* `FT_OUTLINE_XXX' values instead */ -#define ft_outline_none FT_OUTLINE_NONE -#define ft_outline_owner FT_OUTLINE_OWNER -#define ft_outline_even_odd_fill FT_OUTLINE_EVEN_ODD_FILL -#define ft_outline_reverse_fill FT_OUTLINE_REVERSE_FILL -#define ft_outline_ignore_dropouts FT_OUTLINE_IGNORE_DROPOUTS -#define ft_outline_high_precision FT_OUTLINE_HIGH_PRECISION -#define ft_outline_single_pass FT_OUTLINE_SINGLE_PASS - - /* */ - -#define FT_CURVE_TAG( flag ) ( flag & 3 ) - -#define FT_CURVE_TAG_ON 1 -#define FT_CURVE_TAG_CONIC 0 -#define FT_CURVE_TAG_CUBIC 2 - -#define FT_CURVE_TAG_HAS_SCANMODE 4 - -#define FT_CURVE_TAG_TOUCH_X 8 /* reserved for the TrueType hinter */ -#define FT_CURVE_TAG_TOUCH_Y 16 /* reserved for the TrueType hinter */ - -#define FT_CURVE_TAG_TOUCH_BOTH ( FT_CURVE_TAG_TOUCH_X | \ - FT_CURVE_TAG_TOUCH_Y ) - -#define FT_Curve_Tag_On FT_CURVE_TAG_ON -#define FT_Curve_Tag_Conic FT_CURVE_TAG_CONIC -#define FT_Curve_Tag_Cubic FT_CURVE_TAG_CUBIC -#define FT_Curve_Tag_Touch_X FT_CURVE_TAG_TOUCH_X -#define FT_Curve_Tag_Touch_Y FT_CURVE_TAG_TOUCH_Y - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_MoveToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `move */ - /* to' function during outline walking/decomposition. */ - /* */ - /* A `move to' is emitted to start a new contour in an outline. */ - /* */ - /* <Input> */ - /* to :: A pointer to the target point of the `move to'. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of the */ - /* decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - typedef int - (*FT_Outline_MoveToFunc)( const FT_Vector* to, - void* user ); - -#define FT_Outline_MoveTo_Func FT_Outline_MoveToFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_LineToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `line */ - /* to' function during outline walking/decomposition. */ - /* */ - /* A `line to' is emitted to indicate a segment in the outline. */ - /* */ - /* <Input> */ - /* to :: A pointer to the target point of the `line to'. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of the */ - /* decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - typedef int - (*FT_Outline_LineToFunc)( const FT_Vector* to, - void* user ); - -#define FT_Outline_LineTo_Func FT_Outline_LineToFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_ConicToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `conic */ - /* to' function during outline walking or decomposition. */ - /* */ - /* A `conic to' is emitted to indicate a second-order Bézier arc in */ - /* the outline. */ - /* */ - /* <Input> */ - /* control :: An intermediate control point between the last position */ - /* and the new target in `to'. */ - /* */ - /* to :: A pointer to the target end point of the conic arc. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of */ - /* the decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - typedef int - (*FT_Outline_ConicToFunc)( const FT_Vector* control, - const FT_Vector* to, - void* user ); - -#define FT_Outline_ConicTo_Func FT_Outline_ConicToFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Outline_CubicToFunc */ - /* */ - /* <Description> */ - /* A function pointer type used to describe the signature of a `cubic */ - /* to' function during outline walking or decomposition. */ - /* */ - /* A `cubic to' is emitted to indicate a third-order Bézier arc. */ - /* */ - /* <Input> */ - /* control1 :: A pointer to the first Bézier control point. */ - /* */ - /* control2 :: A pointer to the second Bézier control point. */ - /* */ - /* to :: A pointer to the target end point. */ - /* */ - /* user :: A typeless pointer, which is passed from the caller of */ - /* the decomposition function. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - typedef int - (*FT_Outline_CubicToFunc)( const FT_Vector* control1, - const FT_Vector* control2, - const FT_Vector* to, - void* user ); - -#define FT_Outline_CubicTo_Func FT_Outline_CubicToFunc - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Outline_Funcs */ - /* */ - /* <Description> */ - /* A structure to hold various function pointers used during outline */ - /* decomposition in order to emit segments, conic, and cubic Béziers. */ - /* */ - /* <Fields> */ - /* move_to :: The `move to' emitter. */ - /* */ - /* line_to :: The segment emitter. */ - /* */ - /* conic_to :: The second-order Bézier arc emitter. */ - /* */ - /* cubic_to :: The third-order Bézier arc emitter. */ - /* */ - /* shift :: The shift that is applied to coordinates before they */ - /* are sent to the emitter. */ - /* */ - /* delta :: The delta that is applied to coordinates before they */ - /* are sent to the emitter, but after the shift. */ - /* */ - /* <Note> */ - /* The point coordinates sent to the emitters are the transformed */ - /* version of the original coordinates (this is important for high */ - /* accuracy during scan-conversion). The transformation is simple: */ - /* */ - /* { */ - /* x' = (x << shift) - delta */ - /* y' = (x << shift) - delta */ - /* } */ - /* */ - /* Set the values of `shift' and `delta' to~0 to get the original */ - /* point coordinates. */ - /* */ - typedef struct FT_Outline_Funcs_ - { - FT_Outline_MoveToFunc move_to; - FT_Outline_LineToFunc line_to; - FT_Outline_ConicToFunc conic_to; - FT_Outline_CubicToFunc cubic_to; - - int shift; - FT_Pos delta; - - } FT_Outline_Funcs; - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_IMAGE_TAG */ - /* */ - /* <Description> */ - /* This macro converts four-letter tags to an unsigned long type. */ - /* */ - /* <Note> */ - /* Since many 16-bit compilers don't like 32-bit enumerations, you */ - /* should redefine this macro in case of problems to something like */ - /* this: */ - /* */ - /* { */ - /* #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value */ - /* } */ - /* */ - /* to get a simple enumeration without assigning special numbers. */ - /* */ -#ifndef FT_IMAGE_TAG -#define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) \ - value = ( ( (unsigned long)_x1 << 24 ) | \ - ( (unsigned long)_x2 << 16 ) | \ - ( (unsigned long)_x3 << 8 ) | \ - (unsigned long)_x4 ) -#endif /* FT_IMAGE_TAG */ - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Glyph_Format */ - /* */ - /* <Description> */ - /* An enumeration type used to describe the format of a given glyph */ - /* image. Note that this version of FreeType only supports two image */ - /* formats, even though future font drivers will be able to register */ - /* their own format. */ - /* */ - /* <Values> */ - /* FT_GLYPH_FORMAT_NONE :: */ - /* The value~0 is reserved. */ - /* */ - /* FT_GLYPH_FORMAT_COMPOSITE :: */ - /* The glyph image is a composite of several other images. This */ - /* format is _only_ used with @FT_LOAD_NO_RECURSE, and is used to */ - /* report compound glyphs (like accented characters). */ - /* */ - /* FT_GLYPH_FORMAT_BITMAP :: */ - /* The glyph image is a bitmap, and can be described as an */ - /* @FT_Bitmap. You generally need to access the `bitmap' field of */ - /* the @FT_GlyphSlotRec structure to read it. */ - /* */ - /* FT_GLYPH_FORMAT_OUTLINE :: */ - /* The glyph image is a vectorial outline made of line segments */ - /* and Bézier arcs; it can be described as an @FT_Outline; you */ - /* generally want to access the `outline' field of the */ - /* @FT_GlyphSlotRec structure to read it. */ - /* */ - /* FT_GLYPH_FORMAT_PLOTTER :: */ - /* The glyph image is a vectorial path with no inside and outside */ - /* contours. Some Type~1 fonts, like those in the Hershey family, */ - /* contain glyphs in this format. These are described as */ - /* @FT_Outline, but FreeType isn't currently capable of rendering */ - /* them correctly. */ - /* */ - typedef enum FT_Glyph_Format_ - { - FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ), - - FT_IMAGE_TAG( FT_GLYPH_FORMAT_COMPOSITE, 'c', 'o', 'm', 'p' ), - FT_IMAGE_TAG( FT_GLYPH_FORMAT_BITMAP, 'b', 'i', 't', 's' ), - FT_IMAGE_TAG( FT_GLYPH_FORMAT_OUTLINE, 'o', 'u', 't', 'l' ), - FT_IMAGE_TAG( FT_GLYPH_FORMAT_PLOTTER, 'p', 'l', 'o', 't' ) - - } FT_Glyph_Format; - - - /* these constants are deprecated; use the corresponding */ - /* `FT_Glyph_Format' values instead. */ -#define ft_glyph_format_none FT_GLYPH_FORMAT_NONE -#define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE -#define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP -#define ft_glyph_format_outline FT_GLYPH_FORMAT_OUTLINE -#define ft_glyph_format_plotter FT_GLYPH_FORMAT_PLOTTER - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** R A S T E R D E F I N I T I O N S *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* A raster is a scan converter, in charge of rendering an outline into */ - /* a a bitmap. This section contains the public API for rasters. */ - /* */ - /* Note that in FreeType 2, all rasters are now encapsulated within */ - /* specific modules called `renderers'. See `ftrender.h' for more */ - /* details on renderers. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* raster */ - /* */ - /* <Title> */ - /* Scanline Converter */ - /* */ - /* <Abstract> */ - /* How vectorial outlines are converted into bitmaps and pixmaps. */ - /* */ - /* <Description> */ - /* This section contains technical definitions. */ - /* */ - /* <Order> */ - /* FT_Raster */ - /* FT_Span */ - /* FT_SpanFunc */ - /* */ - /* FT_Raster_Params */ - /* FT_RASTER_FLAG_XXX */ - /* */ - /* FT_Raster_NewFunc */ - /* FT_Raster_DoneFunc */ - /* FT_Raster_ResetFunc */ - /* FT_Raster_SetModeFunc */ - /* FT_Raster_RenderFunc */ - /* FT_Raster_Funcs */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Raster */ - /* */ - /* <Description> */ - /* An opaque handle (pointer) to a raster object. Each object can be */ - /* used independently to convert an outline into a bitmap or pixmap. */ - /* */ - typedef struct FT_RasterRec_* FT_Raster; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Span */ - /* */ - /* <Description> */ - /* A structure used to model a single span of gray pixels when */ - /* rendering an anti-aliased bitmap. */ - /* */ - /* <Fields> */ - /* x :: The span's horizontal start position. */ - /* */ - /* len :: The span's length in pixels. */ - /* */ - /* coverage :: The span color/coverage, ranging from 0 (background) */ - /* to 255 (foreground). */ - /* */ - /* <Note> */ - /* This structure is used by the span drawing callback type named */ - /* @FT_SpanFunc that takes the y~coordinate of the span as a */ - /* parameter. */ - /* */ - /* The coverage value is always between 0 and 255. If you want less */ - /* gray values, the callback function has to reduce them. */ - /* */ - typedef struct FT_Span_ - { - short x; - unsigned short len; - unsigned char coverage; - - } FT_Span; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_SpanFunc */ - /* */ - /* <Description> */ - /* A function used as a call-back by the anti-aliased renderer in */ - /* order to let client applications draw themselves the gray pixel */ - /* spans on each scan line. */ - /* */ - /* <Input> */ - /* y :: The scanline's y~coordinate. */ - /* */ - /* count :: The number of spans to draw on this scanline. */ - /* */ - /* spans :: A table of `count' spans to draw on the scanline. */ - /* */ - /* user :: User-supplied data that is passed to the callback. */ - /* */ - /* <Note> */ - /* This callback allows client applications to directly render the */ - /* gray spans of the anti-aliased bitmap to any kind of surfaces. */ - /* */ - /* This can be used to write anti-aliased outlines directly to a */ - /* given background bitmap, and even perform translucency. */ - /* */ - /* Note that the `count' field cannot be greater than a fixed value */ - /* defined by the `FT_MAX_GRAY_SPANS' configuration macro in */ - /* `ftoption.h'. By default, this value is set to~32, which means */ - /* that if there are more than 32~spans on a given scanline, the */ - /* callback is called several times with the same `y' parameter in */ - /* order to draw all callbacks. */ - /* */ - /* Otherwise, the callback is only called once per scan-line, and */ - /* only for those scanlines that do have `gray' pixels on them. */ - /* */ - typedef void - (*FT_SpanFunc)( int y, - int count, - const FT_Span* spans, - void* user ); - -#define FT_Raster_Span_Func FT_SpanFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_BitTest_Func */ - /* */ - /* <Description> */ - /* Deprecated, unimplemented. */ - /* */ - typedef int - (*FT_Raster_BitTest_Func)( int y, - int x, - void* user ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_BitSet_Func */ - /* */ - /* <Description> */ - /* Deprecated, unimplemented. */ - /* */ - typedef void - (*FT_Raster_BitSet_Func)( int y, - int x, - void* user ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_RASTER_FLAG_XXX */ - /* */ - /* <Description> */ - /* A list of bit flag constants as used in the `flags' field of a */ - /* @FT_Raster_Params structure. */ - /* */ - /* <Values> */ - /* FT_RASTER_FLAG_DEFAULT :: This value is 0. */ - /* */ - /* FT_RASTER_FLAG_AA :: This flag is set to indicate that an */ - /* anti-aliased glyph image should be */ - /* generated. Otherwise, it will be */ - /* monochrome (1-bit). */ - /* */ - /* FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct */ - /* rendering. In this mode, client */ - /* applications must provide their own span */ - /* callback. This lets them directly */ - /* draw or compose over an existing bitmap. */ - /* If this bit is not set, the target */ - /* pixmap's buffer _must_ be zeroed before */ - /* rendering. */ - /* */ - /* Direct rendering is only possible with */ - /* anti-aliased glyphs. */ - /* */ - /* FT_RASTER_FLAG_CLIP :: This flag is only used in direct */ - /* rendering mode. If set, the output will */ - /* be clipped to a box specified in the */ - /* `clip_box' field of the */ - /* @FT_Raster_Params structure. */ - /* */ - /* Note that by default, the glyph bitmap */ - /* is clipped to the target pixmap, except */ - /* in direct rendering mode where all spans */ - /* are generated if no clipping box is set. */ - /* */ -#define FT_RASTER_FLAG_DEFAULT 0x0 -#define FT_RASTER_FLAG_AA 0x1 -#define FT_RASTER_FLAG_DIRECT 0x2 -#define FT_RASTER_FLAG_CLIP 0x4 - - /* these constants are deprecated; use the corresponding */ - /* `FT_RASTER_FLAG_XXX' values instead */ -#define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT -#define ft_raster_flag_aa FT_RASTER_FLAG_AA -#define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT -#define ft_raster_flag_clip FT_RASTER_FLAG_CLIP - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Raster_Params */ - /* */ - /* <Description> */ - /* A structure to hold the arguments used by a raster's render */ - /* function. */ - /* */ - /* <Fields> */ - /* target :: The target bitmap. */ - /* */ - /* source :: A pointer to the source glyph image (e.g., an */ - /* @FT_Outline). */ - /* */ - /* flags :: The rendering flags. */ - /* */ - /* gray_spans :: The gray span drawing callback. */ - /* */ - /* black_spans :: Unused. */ - /* */ - /* bit_test :: Unused. */ - /* */ - /* bit_set :: Unused. */ - /* */ - /* user :: User-supplied data that is passed to each drawing */ - /* callback. */ - /* */ - /* clip_box :: An optional clipping box. It is only used in */ - /* direct rendering mode. Note that coordinates here */ - /* should be expressed in _integer_ pixels (and not in */ - /* 26.6 fixed-point units). */ - /* */ - /* <Note> */ - /* An anti-aliased glyph bitmap is drawn if the @FT_RASTER_FLAG_AA */ - /* bit flag is set in the `flags' field, otherwise a monochrome */ - /* bitmap is generated. */ - /* */ - /* If the @FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the */ - /* raster will call the `gray_spans' callback to draw gray pixel */ - /* spans. This allows direct composition over a pre-existing bitmap */ - /* through user-provided callbacks to perform the span drawing and */ - /* composition. Not supported by the monochrome rasterizer. */ - /* */ - typedef struct FT_Raster_Params_ - { - const FT_Bitmap* target; - const void* source; - int flags; - FT_SpanFunc gray_spans; - FT_SpanFunc black_spans; /* unused */ - FT_Raster_BitTest_Func bit_test; /* unused */ - FT_Raster_BitSet_Func bit_set; /* unused */ - void* user; - FT_BBox clip_box; - - } FT_Raster_Params; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_NewFunc */ - /* */ - /* <Description> */ - /* A function used to create a new raster object. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory allocator. */ - /* */ - /* <Output> */ - /* raster :: A handle to the new raster object. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - /* <Note> */ - /* The `memory' parameter is a typeless pointer in order to avoid */ - /* un-wanted dependencies on the rest of the FreeType code. In */ - /* practice, it is an @FT_Memory object, i.e., a handle to the */ - /* standard FreeType memory allocator. However, this field can be */ - /* completely ignored by a given raster implementation. */ - /* */ - typedef int - (*FT_Raster_NewFunc)( void* memory, - FT_Raster* raster ); - -#define FT_Raster_New_Func FT_Raster_NewFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_DoneFunc */ - /* */ - /* <Description> */ - /* A function used to destroy a given raster object. */ - /* */ - /* <Input> */ - /* raster :: A handle to the raster object. */ - /* */ - typedef void - (*FT_Raster_DoneFunc)( FT_Raster raster ); - -#define FT_Raster_Done_Func FT_Raster_DoneFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_ResetFunc */ - /* */ - /* <Description> */ - /* FreeType used to provide an area of memory called the `render */ - /* pool' available to all registered rasters. This was not thread */ - /* safe however and now FreeType never allocates this pool. NULL */ - /* is always passed in as pool_base. */ - /* */ - /* This function is called each time the render pool changes, or just */ - /* after a new raster object is created. */ - /* */ - /* <Input> */ - /* raster :: A handle to the new raster object. */ - /* */ - /* pool_base :: The address in memory of the render pool. */ - /* */ - /* pool_size :: The size in bytes of the render pool. */ - /* */ - /* <Note> */ - /* Rasters should ignore the render pool and rely on dynamic or stack */ - /* allocation if they want to (a handle to the memory allocator is */ - /* passed to the raster constructor). */ - /* */ - typedef void - (*FT_Raster_ResetFunc)( FT_Raster raster, - unsigned char* pool_base, - unsigned long pool_size ); - -#define FT_Raster_Reset_Func FT_Raster_ResetFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_SetModeFunc */ - /* */ - /* <Description> */ - /* This function is a generic facility to change modes or attributes */ - /* in a given raster. This can be used for debugging purposes, or */ - /* simply to allow implementation-specific `features' in a given */ - /* raster module. */ - /* */ - /* <Input> */ - /* raster :: A handle to the new raster object. */ - /* */ - /* mode :: A 4-byte tag used to name the mode or property. */ - /* */ - /* args :: A pointer to the new mode/property to use. */ - /* */ - typedef int - (*FT_Raster_SetModeFunc)( FT_Raster raster, - unsigned long mode, - void* args ); - -#define FT_Raster_Set_Mode_Func FT_Raster_SetModeFunc - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Raster_RenderFunc */ - /* */ - /* <Description> */ - /* Invoke a given raster to scan-convert a given glyph image into a */ - /* target bitmap. */ - /* */ - /* <Input> */ - /* raster :: A handle to the raster object. */ - /* */ - /* params :: A pointer to an @FT_Raster_Params structure used to */ - /* store the rendering parameters. */ - /* */ - /* <Return> */ - /* Error code. 0~means success. */ - /* */ - /* <Note> */ - /* The exact format of the source image depends on the raster's glyph */ - /* format defined in its @FT_Raster_Funcs structure. It can be an */ - /* @FT_Outline or anything else in order to support a large array of */ - /* glyph formats. */ - /* */ - /* Note also that the render function can fail and return a */ - /* `FT_Err_Unimplemented_Feature' error code if the raster used does */ - /* not support direct composition. */ - /* */ - /* XXX: For now, the standard raster doesn't support direct */ - /* composition but this should change for the final release (see */ - /* the files `demos/src/ftgrays.c' and `demos/src/ftgrays2.c' */ - /* for examples of distinct implementations that support direct */ - /* composition). */ - /* */ - typedef int - (*FT_Raster_RenderFunc)( FT_Raster raster, - const FT_Raster_Params* params ); - -#define FT_Raster_Render_Func FT_Raster_RenderFunc - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Raster_Funcs */ - /* */ - /* <Description> */ - /* A structure used to describe a given raster class to the library. */ - /* */ - /* <Fields> */ - /* glyph_format :: The supported glyph format for this raster. */ - /* */ - /* raster_new :: The raster constructor. */ - /* */ - /* raster_reset :: Used to reset the render pool within the raster. */ - /* */ - /* raster_render :: A function to render a glyph into a given bitmap. */ - /* */ - /* raster_done :: The raster destructor. */ - /* */ - typedef struct FT_Raster_Funcs_ - { - FT_Glyph_Format glyph_format; - FT_Raster_NewFunc raster_new; - FT_Raster_ResetFunc raster_reset; - FT_Raster_SetModeFunc raster_set_mode; - FT_Raster_RenderFunc raster_render; - FT_Raster_DoneFunc raster_done; - - } FT_Raster_Funcs; - - /* */ - - -FT_END_HEADER - -#endif /* __FTIMAGE_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/windows/include/freetype/ftincrem.h b/lib/windows/include/freetype/ftincrem.h deleted file mode 100644 index 840af25..0000000 --- a/lib/windows/include/freetype/ftincrem.h +++ /dev/null @@ -1,354 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftincrem.h */ -/* */ -/* FreeType incremental loading (specification). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTINCREM_H__ -#define __FTINCREM_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************** - * - * @section: - * incremental - * - * @title: - * Incremental Loading - * - * @abstract: - * Custom Glyph Loading. - * - * @description: - * This section contains various functions used to perform so-called - * `incremental' glyph loading. This is a mode where all glyphs loaded - * from a given @FT_Face are provided by the client application. - * - * Apart from that, all other tables are loaded normally from the font - * file. This mode is useful when FreeType is used within another - * engine, e.g., a PostScript Imaging Processor. - * - * To enable this mode, you must use @FT_Open_Face, passing an - * @FT_Parameter with the @FT_PARAM_TAG_INCREMENTAL tag and an - * @FT_Incremental_Interface value. See the comments for - * @FT_Incremental_InterfaceRec for an example. - * - */ - - - /*************************************************************************** - * - * @type: - * FT_Incremental - * - * @description: - * An opaque type describing a user-provided object used to implement - * `incremental' glyph loading within FreeType. This is used to support - * embedded fonts in certain environments (e.g., PostScript interpreters), - * where the glyph data isn't in the font file, or must be overridden by - * different values. - * - * @note: - * It is up to client applications to create and implement @FT_Incremental - * objects, as long as they provide implementations for the methods - * @FT_Incremental_GetGlyphDataFunc, @FT_Incremental_FreeGlyphDataFunc - * and @FT_Incremental_GetGlyphMetricsFunc. - * - * See the description of @FT_Incremental_InterfaceRec to understand how - * to use incremental objects with FreeType. - * - */ - typedef struct FT_IncrementalRec_* FT_Incremental; - - - /*************************************************************************** - * - * @struct: - * FT_Incremental_MetricsRec - * - * @description: - * A small structure used to contain the basic glyph metrics returned - * by the @FT_Incremental_GetGlyphMetricsFunc method. - * - * @fields: - * bearing_x :: - * Left bearing, in font units. - * - * bearing_y :: - * Top bearing, in font units. - * - * advance :: - * Horizontal component of glyph advance, in font units. - * - * advance_v :: - * Vertical component of glyph advance, in font units. - * - * @note: - * These correspond to horizontal or vertical metrics depending on the - * value of the `vertical' argument to the function - * @FT_Incremental_GetGlyphMetricsFunc. - * - */ - typedef struct FT_Incremental_MetricsRec_ - { - FT_Long bearing_x; - FT_Long bearing_y; - FT_Long advance; - FT_Long advance_v; /* since 2.3.12 */ - - } FT_Incremental_MetricsRec; - - - /*************************************************************************** - * - * @struct: - * FT_Incremental_Metrics - * - * @description: - * A handle to an @FT_Incremental_MetricsRec structure. - * - */ - typedef struct FT_Incremental_MetricsRec_* FT_Incremental_Metrics; - - - /*************************************************************************** - * - * @type: - * FT_Incremental_GetGlyphDataFunc - * - * @description: - * A function called by FreeType to access a given glyph's data bytes - * during @FT_Load_Glyph or @FT_Load_Char if incremental loading is - * enabled. - * - * Note that the format of the glyph's data bytes depends on the font - * file format. For TrueType, it must correspond to the raw bytes within - * the `glyf' table. For PostScript formats, it must correspond to the - * *unencrypted* charstring bytes, without any `lenIV' header. It is - * undefined for any other format. - * - * @input: - * incremental :: - * Handle to an opaque @FT_Incremental handle provided by the client - * application. - * - * glyph_index :: - * Index of relevant glyph. - * - * @output: - * adata :: - * A structure describing the returned glyph data bytes (which will be - * accessed as a read-only byte block). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If this function returns successfully the method - * @FT_Incremental_FreeGlyphDataFunc will be called later to release - * the data bytes. - * - * Nested calls to @FT_Incremental_GetGlyphDataFunc can happen for - * compound glyphs. - * - */ - typedef FT_Error - (*FT_Incremental_GetGlyphDataFunc)( FT_Incremental incremental, - FT_UInt glyph_index, - FT_Data* adata ); - - - /*************************************************************************** - * - * @type: - * FT_Incremental_FreeGlyphDataFunc - * - * @description: - * A function used to release the glyph data bytes returned by a - * successful call to @FT_Incremental_GetGlyphDataFunc. - * - * @input: - * incremental :: - * A handle to an opaque @FT_Incremental handle provided by the client - * application. - * - * data :: - * A structure describing the glyph data bytes (which will be accessed - * as a read-only byte block). - * - */ - typedef void - (*FT_Incremental_FreeGlyphDataFunc)( FT_Incremental incremental, - FT_Data* data ); - - - /*************************************************************************** - * - * @type: - * FT_Incremental_GetGlyphMetricsFunc - * - * @description: - * A function used to retrieve the basic metrics of a given glyph index - * before accessing its data. This is necessary because, in certain - * formats like TrueType, the metrics are stored in a different place from - * the glyph images proper. - * - * @input: - * incremental :: - * A handle to an opaque @FT_Incremental handle provided by the client - * application. - * - * glyph_index :: - * Index of relevant glyph. - * - * vertical :: - * If true, return vertical metrics. - * - * ametrics :: - * This parameter is used for both input and output. - * The original glyph metrics, if any, in font units. If metrics are - * not available all the values must be set to zero. - * - * @output: - * ametrics :: - * The replacement glyph metrics in font units. - * - */ - typedef FT_Error - (*FT_Incremental_GetGlyphMetricsFunc) - ( FT_Incremental incremental, - FT_UInt glyph_index, - FT_Bool vertical, - FT_Incremental_MetricsRec *ametrics ); - - - /************************************************************************** - * - * @struct: - * FT_Incremental_FuncsRec - * - * @description: - * A table of functions for accessing fonts that load data - * incrementally. Used in @FT_Incremental_InterfaceRec. - * - * @fields: - * get_glyph_data :: - * The function to get glyph data. Must not be null. - * - * free_glyph_data :: - * The function to release glyph data. Must not be null. - * - * get_glyph_metrics :: - * The function to get glyph metrics. May be null if the font does - * not provide overriding glyph metrics. - * - */ - typedef struct FT_Incremental_FuncsRec_ - { - FT_Incremental_GetGlyphDataFunc get_glyph_data; - FT_Incremental_FreeGlyphDataFunc free_glyph_data; - FT_Incremental_GetGlyphMetricsFunc get_glyph_metrics; - - } FT_Incremental_FuncsRec; - - - /*************************************************************************** - * - * @struct: - * FT_Incremental_InterfaceRec - * - * @description: - * A structure to be used with @FT_Open_Face to indicate that the user - * wants to support incremental glyph loading. You should use it with - * @FT_PARAM_TAG_INCREMENTAL as in the following example: - * - * { - * FT_Incremental_InterfaceRec inc_int; - * FT_Parameter parameter; - * FT_Open_Args open_args; - * - * - * // set up incremental descriptor - * inc_int.funcs = my_funcs; - * inc_int.object = my_object; - * - * // set up optional parameter - * parameter.tag = FT_PARAM_TAG_INCREMENTAL; - * parameter.data = &inc_int; - * - * // set up FT_Open_Args structure - * open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; - * open_args.pathname = my_font_pathname; - * open_args.num_params = 1; - * open_args.params = ¶meter; // we use one optional argument - * - * // open the font - * error = FT_Open_Face( library, &open_args, index, &face ); - * ... - * } - * - */ - typedef struct FT_Incremental_InterfaceRec_ - { - const FT_Incremental_FuncsRec* funcs; - FT_Incremental object; - - } FT_Incremental_InterfaceRec; - - - /*************************************************************************** - * - * @type: - * FT_Incremental_Interface - * - * @description: - * A pointer to an @FT_Incremental_InterfaceRec structure. - * - */ - typedef FT_Incremental_InterfaceRec* FT_Incremental_Interface; - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_INCREMENTAL - * - * @description: - * A constant used as the tag of @FT_Parameter structures to indicate - * an incremental loading object to be used by FreeType. - * - */ -#define FT_PARAM_TAG_INCREMENTAL FT_MAKE_TAG( 'i', 'n', 'c', 'r' ) - - /* */ - - -FT_END_HEADER - -#endif /* __FTINCREM_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftlcdfil.h b/lib/windows/include/freetype/ftlcdfil.h deleted file mode 100644 index 4cd999a..0000000 --- a/lib/windows/include/freetype/ftlcdfil.h +++ /dev/null @@ -1,251 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftlcdfil.h */ -/* */ -/* FreeType API for color filtering of subpixel bitmap glyphs */ -/* (specification). */ -/* */ -/* Copyright 2006-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FT_LCD_FILTER_H__ -#define __FT_LCD_FILTER_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************** - * - * @section: - * lcd_filtering - * - * @title: - * LCD Filtering - * - * @abstract: - * Reduce color fringes of LCD-optimized bitmaps. - * - * @description: - * The @FT_Library_SetLcdFilter API can be used to specify a low-pass - * filter, which is then applied to LCD-optimized bitmaps generated - * through @FT_Render_Glyph. This is useful to reduce color fringes - * that would occur with unfiltered rendering. - * - * Note that no filter is active by default, and that this function is - * *not* implemented in default builds of the library. You need to - * #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your `ftoption.h' file - * in order to activate it. - * - * FreeType generates alpha coverage maps, which are linear by nature. - * For instance, the value 0x80 in bitmap representation means that - * (within numerical precision) 0x80/0xFF fraction of that pixel is - * covered by the glyph's outline. The blending function for placing - * text over a background is - * - * { - * dst = alpha * src + (1 - alpha) * dst , - * } - * - * which is known as OVER. However, when calculating the output of the - * OVER operator, the source colors should first be transformed to a - * linear color space, then alpha blended in that space, and transformed - * back to the output color space. - * - * When linear light blending is used, the default FIR5 filtering - * weights (as given by FT_LCD_FILTER_DEFAULT) are no longer optimal, as - * they have been designed for black on white rendering while lacking - * gamma correction. To preserve color neutrality, weights for a FIR5 - * filter should be chosen according to two free parameters `a' and `c', - * and the FIR weights should be - * - * { - * [a - c, a + c, 2 * a, a + c, a - c] . - * } - * - * This formula generates equal weights for all the color primaries - * across the filter kernel, which makes it colorless. One suggested - * set of weights is - * - * { - * [0x10, 0x50, 0x60, 0x50, 0x10] , - * } - * - * where `a' has value 0x30 and `b' value 0x20. The weights in filter - * may have a sum larger than 0x100, which increases coloration slightly - * but also improves contrast. - */ - - - /**************************************************************************** - * - * @enum: - * FT_LcdFilter - * - * @description: - * A list of values to identify various types of LCD filters. - * - * @values: - * FT_LCD_FILTER_NONE :: - * Do not perform filtering. When used with subpixel rendering, this - * results in sometimes severe color fringes. - * - * FT_LCD_FILTER_DEFAULT :: - * The default filter reduces color fringes considerably, at the cost - * of a slight blurriness in the output. - * - * FT_LCD_FILTER_LIGHT :: - * The light filter is a variant that produces less blurriness at the - * cost of slightly more color fringes than the default one. It might - * be better, depending on taste, your monitor, or your personal vision. - * - * FT_LCD_FILTER_LEGACY :: - * This filter corresponds to the original libXft color filter. It - * provides high contrast output but can exhibit really bad color - * fringes if glyphs are not extremely well hinted to the pixel grid. - * In other words, it only works well if the TrueType bytecode - * interpreter is enabled *and* high-quality hinted fonts are used. - * - * This filter is only provided for comparison purposes, and might be - * disabled or stay unsupported in the future. - * - * @since: - * 2.3.0 - */ - typedef enum FT_LcdFilter_ - { - FT_LCD_FILTER_NONE = 0, - FT_LCD_FILTER_DEFAULT = 1, - FT_LCD_FILTER_LIGHT = 2, - FT_LCD_FILTER_LEGACY = 16, - - FT_LCD_FILTER_MAX /* do not remove */ - - } FT_LcdFilter; - - - /************************************************************************** - * - * @func: - * FT_Library_SetLcdFilter - * - * @description: - * This function is used to apply color filtering to LCD decimated - * bitmaps, like the ones used when calling @FT_Render_Glyph with - * @FT_RENDER_MODE_LCD or @FT_RENDER_MODE_LCD_V. - * - * @input: - * library :: - * A handle to the target library instance. - * - * filter :: - * The filter type. - * - * You can use @FT_LCD_FILTER_NONE here to disable this feature, or - * @FT_LCD_FILTER_DEFAULT to use a default filter that should work - * well on most LCD screens. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This feature is always disabled by default. Clients must make an - * explicit call to this function with a `filter' value other than - * @FT_LCD_FILTER_NONE in order to enable it. - * - * Due to *PATENTS* covering subpixel rendering, this function doesn't - * do anything except returning `FT_Err_Unimplemented_Feature' if the - * configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not - * defined in your build of the library, which should correspond to all - * default builds of FreeType. - * - * The filter affects glyph bitmaps rendered through @FT_Render_Glyph, - * @FT_Outline_Get_Bitmap, @FT_Load_Glyph, and @FT_Load_Char. - * - * It does _not_ affect the output of @FT_Outline_Render and - * @FT_Outline_Get_Bitmap. - * - * If this feature is activated, the dimensions of LCD glyph bitmaps are - * either larger or taller than the dimensions of the corresponding - * outline with regards to the pixel grid. For example, for - * @FT_RENDER_MODE_LCD, the filter adds up to 3~pixels to the left, and - * up to 3~pixels to the right. - * - * The bitmap offset values are adjusted correctly, so clients shouldn't - * need to modify their layout and glyph positioning code when enabling - * the filter. - * - * @since: - * 2.3.0 - */ - FT_EXPORT( FT_Error ) - FT_Library_SetLcdFilter( FT_Library library, - FT_LcdFilter filter ); - - - /************************************************************************** - * - * @func: - * FT_Library_SetLcdFilterWeights - * - * @description: - * Use this function to override the filter weights selected by - * @FT_Library_SetLcdFilter. By default, FreeType uses the quintuple - * (0x00, 0x55, 0x56, 0x55, 0x00) for FT_LCD_FILTER_LIGHT, and (0x10, - * 0x40, 0x70, 0x40, 0x10) for FT_LCD_FILTER_DEFAULT and - * FT_LCD_FILTER_LEGACY. - * - * @input: - * library :: - * A handle to the target library instance. - * - * weights :: - * A pointer to an array; the function copies the first five bytes and - * uses them to specify the filter weights. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Due to *PATENTS* covering subpixel rendering, this function doesn't - * do anything except returning `FT_Err_Unimplemented_Feature' if the - * configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not - * defined in your build of the library, which should correspond to all - * default builds of FreeType. - * - * This function must be called after @FT_Library_SetLcdFilter to have - * any effect. - * - * @since: - * 2.4.0 - */ - FT_EXPORT( FT_Error ) - FT_Library_SetLcdFilterWeights( FT_Library library, - unsigned char *weights ); - - /* */ - - -FT_END_HEADER - -#endif /* __FT_LCD_FILTER_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftlist.h b/lib/windows/include/freetype/ftlist.h deleted file mode 100644 index 12b48c7..0000000 --- a/lib/windows/include/freetype/ftlist.h +++ /dev/null @@ -1,276 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftlist.h */ -/* */ -/* Generic list support for FreeType (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file implements functions relative to list processing. Its */ - /* data structures are defined in `freetype.h'. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTLIST_H__ -#define __FTLIST_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* list_processing */ - /* */ - /* <Title> */ - /* List Processing */ - /* */ - /* <Abstract> */ - /* Simple management of lists. */ - /* */ - /* <Description> */ - /* This section contains various definitions related to list */ - /* processing using doubly-linked nodes. */ - /* */ - /* <Order> */ - /* FT_List */ - /* FT_ListNode */ - /* FT_ListRec */ - /* FT_ListNodeRec */ - /* */ - /* FT_List_Add */ - /* FT_List_Insert */ - /* FT_List_Find */ - /* FT_List_Remove */ - /* FT_List_Up */ - /* FT_List_Iterate */ - /* FT_List_Iterator */ - /* FT_List_Finalize */ - /* FT_List_Destructor */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Find */ - /* */ - /* <Description> */ - /* Find the list node for a given listed object. */ - /* */ - /* <Input> */ - /* list :: A pointer to the parent list. */ - /* data :: The address of the listed object. */ - /* */ - /* <Return> */ - /* List node. NULL if it wasn't found. */ - /* */ - FT_EXPORT( FT_ListNode ) - FT_List_Find( FT_List list, - void* data ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Add */ - /* */ - /* <Description> */ - /* Append an element to the end of a list. */ - /* */ - /* <InOut> */ - /* list :: A pointer to the parent list. */ - /* node :: The node to append. */ - /* */ - FT_EXPORT( void ) - FT_List_Add( FT_List list, - FT_ListNode node ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Insert */ - /* */ - /* <Description> */ - /* Insert an element at the head of a list. */ - /* */ - /* <InOut> */ - /* list :: A pointer to parent list. */ - /* node :: The node to insert. */ - /* */ - FT_EXPORT( void ) - FT_List_Insert( FT_List list, - FT_ListNode node ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Remove */ - /* */ - /* <Description> */ - /* Remove a node from a list. This function doesn't check whether */ - /* the node is in the list! */ - /* */ - /* <Input> */ - /* node :: The node to remove. */ - /* */ - /* <InOut> */ - /* list :: A pointer to the parent list. */ - /* */ - FT_EXPORT( void ) - FT_List_Remove( FT_List list, - FT_ListNode node ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Up */ - /* */ - /* <Description> */ - /* Move a node to the head/top of a list. Used to maintain LRU */ - /* lists. */ - /* */ - /* <InOut> */ - /* list :: A pointer to the parent list. */ - /* node :: The node to move. */ - /* */ - FT_EXPORT( void ) - FT_List_Up( FT_List list, - FT_ListNode node ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_List_Iterator */ - /* */ - /* <Description> */ - /* An FT_List iterator function that is called during a list parse */ - /* by @FT_List_Iterate. */ - /* */ - /* <Input> */ - /* node :: The current iteration list node. */ - /* */ - /* user :: A typeless pointer passed to @FT_List_Iterate. */ - /* Can be used to point to the iteration's state. */ - /* */ - typedef FT_Error - (*FT_List_Iterator)( FT_ListNode node, - void* user ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Iterate */ - /* */ - /* <Description> */ - /* Parse a list and calls a given iterator function on each element. */ - /* Note that parsing is stopped as soon as one of the iterator calls */ - /* returns a non-zero value. */ - /* */ - /* <Input> */ - /* list :: A handle to the list. */ - /* iterator :: An iterator function, called on each node of the list. */ - /* user :: A user-supplied field that is passed as the second */ - /* argument to the iterator. */ - /* */ - /* <Return> */ - /* The result (a FreeType error code) of the last iterator call. */ - /* */ - FT_EXPORT( FT_Error ) - FT_List_Iterate( FT_List list, - FT_List_Iterator iterator, - void* user ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_List_Destructor */ - /* */ - /* <Description> */ - /* An @FT_List iterator function that is called during a list */ - /* finalization by @FT_List_Finalize to destroy all elements in a */ - /* given list. */ - /* */ - /* <Input> */ - /* system :: The current system object. */ - /* */ - /* data :: The current object to destroy. */ - /* */ - /* user :: A typeless pointer passed to @FT_List_Iterate. It can */ - /* be used to point to the iteration's state. */ - /* */ - typedef void - (*FT_List_Destructor)( FT_Memory memory, - void* data, - void* user ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_List_Finalize */ - /* */ - /* <Description> */ - /* Destroy all elements in the list as well as the list itself. */ - /* */ - /* <Input> */ - /* list :: A handle to the list. */ - /* */ - /* destroy :: A list destructor that will be applied to each element */ - /* of the list. Set this to NULL if not needed. */ - /* */ - /* memory :: The current memory object that handles deallocation. */ - /* */ - /* user :: A user-supplied field that is passed as the last */ - /* argument to the destructor. */ - /* */ - /* <Note> */ - /* This function expects that all nodes added by @FT_List_Add or */ - /* @FT_List_Insert have been dynamically allocated. */ - /* */ - FT_EXPORT( void ) - FT_List_Finalize( FT_List list, - FT_List_Destructor destroy, - FT_Memory memory, - void* user ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTLIST_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftlzw.h b/lib/windows/include/freetype/ftlzw.h deleted file mode 100644 index d3ec28e..0000000 --- a/lib/windows/include/freetype/ftlzw.h +++ /dev/null @@ -1,99 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftlzw.h */ -/* */ -/* LZW-compressed stream support. */ -/* */ -/* Copyright 2004-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTLZW_H__ -#define __FTLZW_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* <Section> */ - /* lzw */ - /* */ - /* <Title> */ - /* LZW Streams */ - /* */ - /* <Abstract> */ - /* Using LZW-compressed font files. */ - /* */ - /* <Description> */ - /* This section contains the declaration of LZW-specific functions. */ - /* */ - /*************************************************************************/ - - /************************************************************************ - * - * @function: - * FT_Stream_OpenLZW - * - * @description: - * Open a new stream to parse LZW-compressed font files. This is - * mainly used to support the compressed `*.pcf.Z' fonts that come - * with XFree86. - * - * @input: - * stream :: The target embedding stream. - * - * source :: The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close' on the new stream will - * *not* call `FT_Stream_Close' on the source stream. None of the stream - * objects will be released to the heap. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream - * - * In certain builds of the library, LZW compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a LZW stream from it - * and re-open the face with it. - * - * This function may return `FT_Err_Unimplemented_Feature' if your build - * of FreeType was not compiled with LZW support. - */ - FT_EXPORT( FT_Error ) - FT_Stream_OpenLZW( FT_Stream stream, - FT_Stream source ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTLZW_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftmac.h b/lib/windows/include/freetype/ftmac.h deleted file mode 100644 index 14c55cf..0000000 --- a/lib/windows/include/freetype/ftmac.h +++ /dev/null @@ -1,274 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmac.h */ -/* */ -/* Additional Mac-specific API. */ -/* */ -/* Copyright 1996-2015 by */ -/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* NOTE: Include this file after FT_FREETYPE_H and after any */ -/* Mac-specific headers (because this header uses Mac types such as */ -/* Handle, FSSpec, FSRef, etc.) */ -/* */ -/***************************************************************************/ - - -#ifndef __FTMAC_H__ -#define __FTMAC_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - -/* gcc-3.4.1 and later can warn about functions tagged as deprecated */ -#ifndef FT_DEPRECATED_ATTRIBUTE -#if defined(__GNUC__) && \ - ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))) -#define FT_DEPRECATED_ATTRIBUTE __attribute__((deprecated)) -#else -#define FT_DEPRECATED_ATTRIBUTE -#endif -#endif - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* mac_specific */ - /* */ - /* <Title> */ - /* Mac Specific Interface */ - /* */ - /* <Abstract> */ - /* Only available on the Macintosh. */ - /* */ - /* <Description> */ - /* The following definitions are only available if FreeType is */ - /* compiled on a Macintosh. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face_From_FOND */ - /* */ - /* <Description> */ - /* Create a new face object from a FOND resource. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* fond :: A FOND resource. */ - /* */ - /* face_index :: Only supported for the -1 `sanity check' special */ - /* case. */ - /* */ - /* <Output> */ - /* aface :: A handle to a new face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Notes> */ - /* This function can be used to create @FT_Face objects from fonts */ - /* that are installed in the system as follows. */ - /* */ - /* { */ - /* fond = GetResource( 'FOND', fontName ); */ - /* error = FT_New_Face_From_FOND( library, fond, 0, &face ); */ - /* } */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Face_From_FOND( FT_Library library, - Handle fond, - FT_Long face_index, - FT_Face *aface ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GetFile_From_Mac_Name */ - /* */ - /* <Description> */ - /* Return an FSSpec for the disk file containing the named font. */ - /* */ - /* <Input> */ - /* fontName :: Mac OS name of the font (e.g., Times New Roman */ - /* Bold). */ - /* */ - /* <Output> */ - /* pathSpec :: FSSpec to the file. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* face_index :: Index of the face. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_GetFile_From_Mac_Name( const char* fontName, - FSSpec* pathSpec, - FT_Long* face_index ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GetFile_From_Mac_ATS_Name */ - /* */ - /* <Description> */ - /* Return an FSSpec for the disk file containing the named font. */ - /* */ - /* <Input> */ - /* fontName :: Mac OS name of the font in ATS framework. */ - /* */ - /* <Output> */ - /* pathSpec :: FSSpec to the file. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* face_index :: Index of the face. For passing to */ - /* @FT_New_Face_From_FSSpec. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_GetFile_From_Mac_ATS_Name( const char* fontName, - FSSpec* pathSpec, - FT_Long* face_index ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_GetFilePath_From_Mac_ATS_Name */ - /* */ - /* <Description> */ - /* Return a pathname of the disk file and face index for given font */ - /* name that is handled by ATS framework. */ - /* */ - /* <Input> */ - /* fontName :: Mac OS name of the font in ATS framework. */ - /* */ - /* <Output> */ - /* path :: Buffer to store pathname of the file. For passing */ - /* to @FT_New_Face. The client must allocate this */ - /* buffer before calling this function. */ - /* */ - /* maxPathSize :: Lengths of the buffer `path' that client allocated. */ - /* */ - /* face_index :: Index of the face. For passing to @FT_New_Face. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_GetFilePath_From_Mac_ATS_Name( const char* fontName, - UInt8* path, - UInt32 maxPathSize, - FT_Long* face_index ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face_From_FSSpec */ - /* */ - /* <Description> */ - /* Create a new face object from a given resource and typeface index */ - /* using an FSSpec to the font file. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* spec :: FSSpec to the font file. */ - /* */ - /* face_index :: The index of the face within the resource. The */ - /* first face has index~0. */ - /* <Output> */ - /* aface :: A handle to a new face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* @FT_New_Face_From_FSSpec is identical to @FT_New_Face except */ - /* it accepts an FSSpec instead of a path. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Face_From_FSSpec( FT_Library library, - const FSSpec *spec, - FT_Long face_index, - FT_Face *aface ) - FT_DEPRECATED_ATTRIBUTE; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Face_From_FSRef */ - /* */ - /* <Description> */ - /* Create a new face object from a given resource and typeface index */ - /* using an FSRef to the font file. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library resource. */ - /* */ - /* <Input> */ - /* spec :: FSRef to the font file. */ - /* */ - /* face_index :: The index of the face within the resource. The */ - /* first face has index~0. */ - /* <Output> */ - /* aface :: A handle to a new face object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* @FT_New_Face_From_FSRef is identical to @FT_New_Face except */ - /* it accepts an FSRef instead of a path. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Face_From_FSRef( FT_Library library, - const FSRef *ref, - FT_Long face_index, - FT_Face *aface ) - FT_DEPRECATED_ATTRIBUTE; - - /* */ - - -FT_END_HEADER - - -#endif /* __FTMAC_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftmm.h b/lib/windows/include/freetype/ftmm.h deleted file mode 100644 index 6ef4798..0000000 --- a/lib/windows/include/freetype/ftmm.h +++ /dev/null @@ -1,379 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmm.h */ -/* */ -/* FreeType Multiple Master font interface (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTMM_H__ -#define __FTMM_H__ - - -#include <ft2build.h> -#include FT_TYPE1_TABLES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* multiple_masters */ - /* */ - /* <Title> */ - /* Multiple Masters */ - /* */ - /* <Abstract> */ - /* How to manage Multiple Masters fonts. */ - /* */ - /* <Description> */ - /* The following types and functions are used to manage Multiple */ - /* Master fonts, i.e., the selection of specific design instances by */ - /* setting design axis coordinates. */ - /* */ - /* George Williams has extended this interface to make it work with */ - /* both Type~1 Multiple Masters fonts and GX distortable (var) */ - /* fonts. Some of these routines only work with MM fonts, others */ - /* will work with both types. They are similar enough that a */ - /* consistent interface makes sense. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_MM_Axis */ - /* */ - /* <Description> */ - /* A simple structure used to model a given axis in design space for */ - /* Multiple Masters fonts. */ - /* */ - /* This structure can't be used for GX var fonts. */ - /* */ - /* <Fields> */ - /* name :: The axis's name. */ - /* */ - /* minimum :: The axis's minimum design coordinate. */ - /* */ - /* maximum :: The axis's maximum design coordinate. */ - /* */ - typedef struct FT_MM_Axis_ - { - FT_String* name; - FT_Long minimum; - FT_Long maximum; - - } FT_MM_Axis; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Multi_Master */ - /* */ - /* <Description> */ - /* A structure used to model the axes and space of a Multiple Masters */ - /* font. */ - /* */ - /* This structure can't be used for GX var fonts. */ - /* */ - /* <Fields> */ - /* num_axis :: Number of axes. Cannot exceed~4. */ - /* */ - /* num_designs :: Number of designs; should be normally 2^num_axis */ - /* even though the Type~1 specification strangely */ - /* allows for intermediate designs to be present. */ - /* This number cannot exceed~16. */ - /* */ - /* axis :: A table of axis descriptors. */ - /* */ - typedef struct FT_Multi_Master_ - { - FT_UInt num_axis; - FT_UInt num_designs; - FT_MM_Axis axis[T1_MAX_MM_AXIS]; - - } FT_Multi_Master; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Var_Axis */ - /* */ - /* <Description> */ - /* A simple structure used to model a given axis in design space for */ - /* Multiple Masters and GX var fonts. */ - /* */ - /* <Fields> */ - /* name :: The axis's name. */ - /* Not always meaningful for GX. */ - /* */ - /* minimum :: The axis's minimum design coordinate. */ - /* */ - /* def :: The axis's default design coordinate. */ - /* FreeType computes meaningful default values for MM; it */ - /* is then an integer value, not in 16.16 format. */ - /* */ - /* maximum :: The axis's maximum design coordinate. */ - /* */ - /* tag :: The axis's tag (the GX equivalent to `name'). */ - /* FreeType provides default values for MM if possible. */ - /* */ - /* strid :: The entry in `name' table (another GX version of */ - /* `name'). */ - /* Not meaningful for MM. */ - /* */ - typedef struct FT_Var_Axis_ - { - FT_String* name; - - FT_Fixed minimum; - FT_Fixed def; - FT_Fixed maximum; - - FT_ULong tag; - FT_UInt strid; - - } FT_Var_Axis; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Var_Named_Style */ - /* */ - /* <Description> */ - /* A simple structure used to model a named style in a GX var font. */ - /* */ - /* This structure can't be used for MM fonts. */ - /* */ - /* <Fields> */ - /* coords :: The design coordinates for this style. */ - /* This is an array with one entry for each axis. */ - /* */ - /* strid :: The entry in `name' table identifying this style. */ - /* */ - typedef struct FT_Var_Named_Style_ - { - FT_Fixed* coords; - FT_UInt strid; - - } FT_Var_Named_Style; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_MM_Var */ - /* */ - /* <Description> */ - /* A structure used to model the axes and space of a Multiple Masters */ - /* or GX var distortable font. */ - /* */ - /* Some fields are specific to one format and not to the other. */ - /* */ - /* <Fields> */ - /* num_axis :: The number of axes. The maximum value is~4 for */ - /* MM; no limit in GX. */ - /* */ - /* num_designs :: The number of designs; should be normally */ - /* 2^num_axis for MM fonts. Not meaningful for GX */ - /* (where every glyph could have a different */ - /* number of designs). */ - /* */ - /* num_namedstyles :: The number of named styles; only meaningful for */ - /* GX that allows certain design coordinates to */ - /* have a string ID (in the `name' table) */ - /* associated with them. The font can tell the */ - /* user that, for example, Weight=1.5 is `Bold'. */ - /* */ - /* axis :: An axis descriptor table. */ - /* GX fonts contain slightly more data than MM. */ - /* */ - /* namedstyle :: A named style table. */ - /* Only meaningful with GX. */ - /* */ - typedef struct FT_MM_Var_ - { - FT_UInt num_axis; - FT_UInt num_designs; - FT_UInt num_namedstyles; - FT_Var_Axis* axis; - FT_Var_Named_Style* namedstyle; - - } FT_MM_Var; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Multi_Master */ - /* */ - /* <Description> */ - /* Retrieve the Multiple Master descriptor of a given font. */ - /* */ - /* This function can't be used with GX fonts. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* <Output> */ - /* amaster :: The Multiple Masters descriptor. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Multi_Master( FT_Face face, - FT_Multi_Master *amaster ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_MM_Var */ - /* */ - /* <Description> */ - /* Retrieve the Multiple Master/GX var descriptor of a given font. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* <Output> */ - /* amaster :: The Multiple Masters/GX var descriptor. */ - /* Allocates a data structure, which the user must free. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_MM_Var( FT_Face face, - FT_MM_Var* *amaster ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_MM_Design_Coordinates */ - /* */ - /* <Description> */ - /* For Multiple Masters fonts, choose an interpolated font design */ - /* through design coordinates. */ - /* */ - /* This function can't be used with GX fonts. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face. */ - /* */ - /* <Input> */ - /* num_coords :: The number of available design coordinates. If it */ - /* is larger than the number of axes, ignore the excess */ - /* values. If it is smaller than the number of axes, */ - /* use default values for the remaining axes. */ - /* */ - /* coords :: An array of design coordinates. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_MM_Design_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Long* coords ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Var_Design_Coordinates */ - /* */ - /* <Description> */ - /* For Multiple Master or GX Var fonts, choose an interpolated font */ - /* design through design coordinates. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face. */ - /* */ - /* <Input> */ - /* num_coords :: The number of available design coordinates. If it */ - /* is larger than the number of axes, ignore the excess */ - /* values. If it is smaller than the number of axes, */ - /* use default values for the remaining axes. */ - /* */ - /* coords :: An array of design coordinates. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Var_Design_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_MM_Blend_Coordinates */ - /* */ - /* <Description> */ - /* For Multiple Masters and GX var fonts, choose an interpolated font */ - /* design through normalized blend coordinates. */ - /* */ - /* <InOut> */ - /* face :: A handle to the source face. */ - /* */ - /* <Input> */ - /* num_coords :: The number of available design coordinates. If it */ - /* is larger than the number of axes, ignore the excess */ - /* values. If it is smaller than the number of axes, */ - /* use default values for the remaining axes. */ - /* */ - /* coords :: The design coordinates array (each element must be */ - /* between 0 and 1.0). */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_MM_Blend_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Var_Blend_Coordinates */ - /* */ - /* <Description> */ - /* This is another name of @FT_Set_MM_Blend_Coordinates. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Var_Blend_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTMM_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftmodapi.h b/lib/windows/include/freetype/ftmodapi.h deleted file mode 100644 index 2ef3f46..0000000 --- a/lib/windows/include/freetype/ftmodapi.h +++ /dev/null @@ -1,669 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmodapi.h */ -/* */ -/* FreeType modules public interface (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTMODAPI_H__ -#define __FTMODAPI_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* module_management */ - /* */ - /* <Title> */ - /* Module Management */ - /* */ - /* <Abstract> */ - /* How to add, upgrade, remove, and control modules from FreeType. */ - /* */ - /* <Description> */ - /* The definitions below are used to manage modules within FreeType. */ - /* Modules can be added, upgraded, and removed at runtime. */ - /* Additionally, some module properties can be controlled also. */ - /* */ - /* Here is a list of possible values of the `module_name' field in */ - /* the @FT_Module_Class structure. */ - /* */ - /* { */ - /* autofitter */ - /* bdf */ - /* cff */ - /* gxvalid */ - /* otvalid */ - /* pcf */ - /* pfr */ - /* psaux */ - /* pshinter */ - /* psnames */ - /* raster1, raster5 */ - /* sfnt */ - /* smooth, smooth-lcd, smooth-lcdv */ - /* truetype */ - /* type1 */ - /* type42 */ - /* t1cid */ - /* winfonts */ - /* } */ - /* */ - /* Note that the FreeType Cache sub-system is not a FreeType module. */ - /* */ - /* <Order> */ - /* FT_Module */ - /* FT_Module_Constructor */ - /* FT_Module_Destructor */ - /* FT_Module_Requester */ - /* FT_Module_Class */ - /* */ - /* FT_Add_Module */ - /* FT_Get_Module */ - /* FT_Remove_Module */ - /* FT_Add_Default_Modules */ - /* */ - /* FT_Property_Set */ - /* FT_Property_Get */ - /* */ - /* FT_New_Library */ - /* FT_Done_Library */ - /* FT_Reference_Library */ - /* */ - /* FT_Renderer */ - /* FT_Renderer_Class */ - /* */ - /* FT_Get_Renderer */ - /* FT_Set_Renderer */ - /* */ - /* FT_Set_Debug_Hook */ - /* */ - /*************************************************************************/ - - - /* module bit flags */ -#define FT_MODULE_FONT_DRIVER 1 /* this module is a font driver */ -#define FT_MODULE_RENDERER 2 /* this module is a renderer */ -#define FT_MODULE_HINTER 4 /* this module is a glyph hinter */ -#define FT_MODULE_STYLER 8 /* this module is a styler */ - -#define FT_MODULE_DRIVER_SCALABLE 0x100 /* the driver supports */ - /* scalable fonts */ -#define FT_MODULE_DRIVER_NO_OUTLINES 0x200 /* the driver does not */ - /* support vector outlines */ -#define FT_MODULE_DRIVER_HAS_HINTER 0x400 /* the driver provides its */ - /* own hinter */ - - - /* deprecated values */ -#define ft_module_font_driver FT_MODULE_FONT_DRIVER -#define ft_module_renderer FT_MODULE_RENDERER -#define ft_module_hinter FT_MODULE_HINTER -#define ft_module_styler FT_MODULE_STYLER - -#define ft_module_driver_scalable FT_MODULE_DRIVER_SCALABLE -#define ft_module_driver_no_outlines FT_MODULE_DRIVER_NO_OUTLINES -#define ft_module_driver_has_hinter FT_MODULE_DRIVER_HAS_HINTER - - - typedef FT_Pointer FT_Module_Interface; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Constructor */ - /* */ - /* <Description> */ - /* A function used to initialize (not create) a new module object. */ - /* */ - /* <Input> */ - /* module :: The module to initialize. */ - /* */ - typedef FT_Error - (*FT_Module_Constructor)( FT_Module module ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Destructor */ - /* */ - /* <Description> */ - /* A function used to finalize (not destroy) a given module object. */ - /* */ - /* <Input> */ - /* module :: The module to finalize. */ - /* */ - typedef void - (*FT_Module_Destructor)( FT_Module module ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Requester */ - /* */ - /* <Description> */ - /* A function used to query a given module for a specific interface. */ - /* */ - /* <Input> */ - /* module :: The module to be searched. */ - /* */ - /* name :: The name of the interface in the module. */ - /* */ - typedef FT_Module_Interface - (*FT_Module_Requester)( FT_Module module, - const char* name ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Module_Class */ - /* */ - /* <Description> */ - /* The module class descriptor. */ - /* */ - /* <Fields> */ - /* module_flags :: Bit flags describing the module. */ - /* */ - /* module_size :: The size of one module object/instance in */ - /* bytes. */ - /* */ - /* module_name :: The name of the module. */ - /* */ - /* module_version :: The version, as a 16.16 fixed number */ - /* (major.minor). */ - /* */ - /* module_requires :: The version of FreeType this module requires, */ - /* as a 16.16 fixed number (major.minor). Starts */ - /* at version 2.0, i.e., 0x20000. */ - /* */ - /* module_init :: The initializing function. */ - /* */ - /* module_done :: The finalizing function. */ - /* */ - /* get_interface :: The interface requesting function. */ - /* */ - typedef struct FT_Module_Class_ - { - FT_ULong module_flags; - FT_Long module_size; - const FT_String* module_name; - FT_Fixed module_version; - FT_Fixed module_requires; - - const void* module_interface; - - FT_Module_Constructor module_init; - FT_Module_Destructor module_done; - FT_Module_Requester get_interface; - - } FT_Module_Class; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Add_Module */ - /* */ - /* <Description> */ - /* Add a new module to a given library instance. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library object. */ - /* */ - /* <Input> */ - /* clazz :: A pointer to class descriptor for the module. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* An error will be returned if a module already exists by that name, */ - /* or if the module requires a version of FreeType that is too great. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Add_Module( FT_Library library, - const FT_Module_Class* clazz ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Module */ - /* */ - /* <Description> */ - /* Find a module by its name. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object. */ - /* */ - /* module_name :: The module's name (as an ASCII string). */ - /* */ - /* <Return> */ - /* A module handle. 0~if none was found. */ - /* */ - /* <Note> */ - /* FreeType's internal modules aren't documented very well, and you */ - /* should look up the source code for details. */ - /* */ - FT_EXPORT( FT_Module ) - FT_Get_Module( FT_Library library, - const char* module_name ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Remove_Module */ - /* */ - /* <Description> */ - /* Remove a given module from a library instance. */ - /* */ - /* <InOut> */ - /* library :: A handle to a library object. */ - /* */ - /* <Input> */ - /* module :: A handle to a module object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The module object is destroyed by the function in case of success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Remove_Module( FT_Library library, - FT_Module module ); - - - /********************************************************************** - * - * @function: - * FT_Property_Set - * - * @description: - * Set a property for a given module. - * - * @input: - * library :: - * A handle to the library the module is part of. - * - * module_name :: - * The module name. - * - * property_name :: - * The property name. Properties are described in the `Synopsis' - * subsection of the module's documentation. - * - * Note that only a few modules have properties. - * - * value :: - * A generic pointer to a variable or structure that gives the new - * value of the property. The exact definition of `value' is - * dependent on the property; see the `Synopsis' subsection of the - * module's documentation. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If `module_name' isn't a valid module name, or `property_name' - * doesn't specify a valid property, or if `value' doesn't represent a - * valid value for the given property, an error is returned. - * - * The following example sets property `bar' (a simple integer) in - * module `foo' to value~1. - * - * { - * FT_UInt bar; - * - * - * bar = 1; - * FT_Property_Set( library, "foo", "bar", &bar ); - * } - * - * Note that the FreeType Cache sub-system doesn't recognize module - * property changes. To avoid glyph lookup confusion within the cache - * you should call @FTC_Manager_Reset to completely flush the cache if - * a module property gets changed after @FTC_Manager_New has been - * called. - * - * It is not possible to set properties of the FreeType Cache - * sub-system itself with FT_Property_Set; use @FTC_Property_Set - * instead. - * - * @since: - * 2.4.11 - * - */ - FT_EXPORT( FT_Error ) - FT_Property_Set( FT_Library library, - const FT_String* module_name, - const FT_String* property_name, - const void* value ); - - - /********************************************************************** - * - * @function: - * FT_Property_Get - * - * @description: - * Get a module's property value. - * - * @input: - * library :: - * A handle to the library the module is part of. - * - * module_name :: - * The module name. - * - * property_name :: - * The property name. Properties are described in the `Synopsis' - * subsection of the module's documentation. - * - * @inout: - * value :: - * A generic pointer to a variable or structure that gives the - * value of the property. The exact definition of `value' is - * dependent on the property; see the `Synopsis' subsection of the - * module's documentation. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If `module_name' isn't a valid module name, or `property_name' - * doesn't specify a valid property, or if `value' doesn't represent a - * valid value for the given property, an error is returned. - * - * The following example gets property `baz' (a range) in module `foo'. - * - * { - * typedef range_ - * { - * FT_Int32 min; - * FT_Int32 max; - * - * } range; - * - * range baz; - * - * - * FT_Property_Get( library, "foo", "baz", &baz ); - * } - * - * It is not possible to retrieve properties of the FreeType Cache - * sub-system with FT_Property_Get; use @FTC_Property_Get instead. - * - * @since: - * 2.4.11 - * - */ - FT_EXPORT( FT_Error ) - FT_Property_Get( FT_Library library, - const FT_String* module_name, - const FT_String* property_name, - void* value ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Reference_Library */ - /* */ - /* <Description> */ - /* A counter gets initialized to~1 at the time an @FT_Library */ - /* structure is created. This function increments the counter. */ - /* @FT_Done_Library then only destroys a library if the counter is~1, */ - /* otherwise it simply decrements the counter. */ - /* */ - /* This function helps in managing life-cycles of structures that */ - /* reference @FT_Library objects. */ - /* */ - /* <Input> */ - /* library :: A handle to a target library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Since> */ - /* 2.4.2 */ - /* */ - FT_EXPORT( FT_Error ) - FT_Reference_Library( FT_Library library ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Library */ - /* */ - /* <Description> */ - /* This function is used to create a new FreeType library instance */ - /* from a given memory object. It is thus possible to use libraries */ - /* with distinct memory allocators within the same program. Note, */ - /* however, that the used @FT_Memory structure is expected to remain */ - /* valid for the life of the @FT_Library object. */ - /* */ - /* Normally, you would call this function (followed by a call to */ - /* @FT_Add_Default_Modules or a series of calls to @FT_Add_Module) */ - /* instead of @FT_Init_FreeType to initialize the FreeType library. */ - /* */ - /* Don't use @FT_Done_FreeType but @FT_Done_Library to destroy a */ - /* library instance. */ - /* */ - /* <Input> */ - /* memory :: A handle to the original memory object. */ - /* */ - /* <Output> */ - /* alibrary :: A pointer to handle of a new library object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Library. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Library( FT_Memory memory, - FT_Library *alibrary ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Library */ - /* */ - /* <Description> */ - /* Discard a given library object. This closes all drivers and */ - /* discards all resource objects. */ - /* */ - /* <Input> */ - /* library :: A handle to the target library. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* See the discussion of reference counters in the description of */ - /* @FT_Reference_Library. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Done_Library( FT_Library library ); - - /* */ - - typedef void - (*FT_DebugHook_Func)( void* arg ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Debug_Hook */ - /* */ - /* <Description> */ - /* Set a debug hook function for debugging the interpreter of a font */ - /* format. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library object. */ - /* */ - /* <Input> */ - /* hook_index :: The index of the debug hook. You should use the */ - /* values defined in `ftobjs.h', e.g., */ - /* `FT_DEBUG_HOOK_TRUETYPE'. */ - /* */ - /* debug_hook :: The function used to debug the interpreter. */ - /* */ - /* <Note> */ - /* Currently, four debug hook slots are available, but only two (for */ - /* the TrueType and the Type~1 interpreter) are defined. */ - /* */ - /* Since the internal headers of FreeType are no longer installed, */ - /* the symbol `FT_DEBUG_HOOK_TRUETYPE' isn't available publicly. */ - /* This is a bug and will be fixed in a forthcoming release. */ - /* */ - FT_EXPORT( void ) - FT_Set_Debug_Hook( FT_Library library, - FT_UInt hook_index, - FT_DebugHook_Func debug_hook ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Add_Default_Modules */ - /* */ - /* <Description> */ - /* Add the set of default drivers to a given library object. */ - /* This is only useful when you create a library object with */ - /* @FT_New_Library (usually to plug a custom memory manager). */ - /* */ - /* <InOut> */ - /* library :: A handle to a new library object. */ - /* */ - FT_EXPORT( void ) - FT_Add_Default_Modules( FT_Library library ); - - - - /************************************************************************** - * - * @section: - * truetype_engine - * - * @title: - * The TrueType Engine - * - * @abstract: - * TrueType bytecode support. - * - * @description: - * This section contains a function used to query the level of TrueType - * bytecode support compiled in this version of the library. - * - */ - - - /************************************************************************** - * - * @enum: - * FT_TrueTypeEngineType - * - * @description: - * A list of values describing which kind of TrueType bytecode - * engine is implemented in a given FT_Library instance. It is used - * by the @FT_Get_TrueType_Engine_Type function. - * - * @values: - * FT_TRUETYPE_ENGINE_TYPE_NONE :: - * The library doesn't implement any kind of bytecode interpreter. - * - * FT_TRUETYPE_ENGINE_TYPE_UNPATENTED :: - * The library implements a bytecode interpreter that doesn't - * support the patented operations of the TrueType virtual machine. - * - * Its main use is to load certain Asian fonts that position and - * scale glyph components with bytecode instructions. It produces - * bad output for most other fonts. - * - * FT_TRUETYPE_ENGINE_TYPE_PATENTED :: - * The library implements a bytecode interpreter that covers - * the full instruction set of the TrueType virtual machine (this - * was governed by patents until May 2010, hence the name). - * - * @since: - * 2.2 - * - */ - typedef enum FT_TrueTypeEngineType_ - { - FT_TRUETYPE_ENGINE_TYPE_NONE = 0, - FT_TRUETYPE_ENGINE_TYPE_UNPATENTED, - FT_TRUETYPE_ENGINE_TYPE_PATENTED - - } FT_TrueTypeEngineType; - - - /************************************************************************** - * - * @func: - * FT_Get_TrueType_Engine_Type - * - * @description: - * Return an @FT_TrueTypeEngineType value to indicate which level of - * the TrueType virtual machine a given library instance supports. - * - * @input: - * library :: - * A library instance. - * - * @return: - * A value indicating which level is supported. - * - * @since: - * 2.2 - * - */ - FT_EXPORT( FT_TrueTypeEngineType ) - FT_Get_TrueType_Engine_Type( FT_Library library ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTMODAPI_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftmoderr.h b/lib/windows/include/freetype/ftmoderr.h deleted file mode 100644 index 9d7f981..0000000 --- a/lib/windows/include/freetype/ftmoderr.h +++ /dev/null @@ -1,194 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmoderr.h */ -/* */ -/* FreeType module error offsets (specification). */ -/* */ -/* Copyright 2001-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file is used to define the FreeType module error codes. */ - /* */ - /* If the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS in `ftoption.h' is */ - /* set, the lower byte of an error value identifies the error code as */ - /* usual. In addition, the higher byte identifies the module. For */ - /* example, the error `FT_Err_Invalid_File_Format' has value 0x0003, the */ - /* error `TT_Err_Invalid_File_Format' has value 0x1303, the error */ - /* `T1_Err_Invalid_File_Format' has value 0x1403, etc. */ - /* */ - /* Note that `FT_Err_Ok', `TT_Err_Ok', etc. are always equal to zero, */ - /* including the high byte. */ - /* */ - /* If FT_CONFIG_OPTION_USE_MODULE_ERRORS isn't set, the higher byte of */ - /* an error value is set to zero. */ - /* */ - /* To hide the various `XXX_Err_' prefixes in the source code, FreeType */ - /* provides some macros in `fttypes.h'. */ - /* */ - /* FT_ERR( err ) */ - /* Add current error module prefix (as defined with the */ - /* `FT_ERR_PREFIX' macro) to `err'. For example, in the BDF module */ - /* the line */ - /* */ - /* error = FT_ERR( Invalid_Outline ); */ - /* */ - /* expands to */ - /* */ - /* error = BDF_Err_Invalid_Outline; */ - /* */ - /* For simplicity, you can always use `FT_Err_Ok' directly instead */ - /* of `FT_ERR( Ok )'. */ - /* */ - /* FT_ERR_EQ( errcode, err ) */ - /* FT_ERR_NEQ( errcode, err ) */ - /* Compare error code `errcode' with the error `err' for equality */ - /* and inequality, respectively. Example: */ - /* */ - /* if ( FT_ERR_EQ( error, Invalid_Outline ) ) */ - /* ... */ - /* */ - /* Using this macro you don't have to think about error prefixes. */ - /* Of course, if module errors are not active, the above example is */ - /* the same as */ - /* */ - /* if ( error == FT_Err_Invalid_Outline ) */ - /* ... */ - /* */ - /* FT_ERROR_BASE( errcode ) */ - /* FT_ERROR_MODULE( errcode ) */ - /* Get base error and module error code, respectively. */ - /* */ - /* */ - /* It can also be used to create a module error message table easily */ - /* with something like */ - /* */ - /* { */ - /* #undef __FTMODERR_H__ */ - /* #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, */ - /* #define FT_MODERR_START_LIST { */ - /* #define FT_MODERR_END_LIST { 0, 0 } }; */ - /* */ - /* const struct */ - /* { */ - /* int mod_err_offset; */ - /* const char* mod_err_msg */ - /* } ft_mod_errors[] = */ - /* */ - /* #include FT_MODULE_ERRORS_H */ - /* } */ - /* */ - /*************************************************************************/ - - -#ifndef __FTMODERR_H__ -#define __FTMODERR_H__ - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** SETUP MACROS *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - -#undef FT_NEED_EXTERN_C - -#ifndef FT_MODERRDEF - -#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS -#define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = v, -#else -#define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = 0, -#endif - -#define FT_MODERR_START_LIST enum { -#define FT_MODERR_END_LIST FT_Mod_Err_Max }; - -#ifdef __cplusplus -#define FT_NEED_EXTERN_C - extern "C" { -#endif - -#endif /* !FT_MODERRDEF */ - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** LIST MODULE ERROR BASES *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - -#ifdef FT_MODERR_START_LIST - FT_MODERR_START_LIST -#endif - - - FT_MODERRDEF( Base, 0x000, "base module" ) - FT_MODERRDEF( Autofit, 0x100, "autofitter module" ) - FT_MODERRDEF( BDF, 0x200, "BDF module" ) - FT_MODERRDEF( Bzip2, 0x300, "Bzip2 module" ) - FT_MODERRDEF( Cache, 0x400, "cache module" ) - FT_MODERRDEF( CFF, 0x500, "CFF module" ) - FT_MODERRDEF( CID, 0x600, "CID module" ) - FT_MODERRDEF( Gzip, 0x700, "Gzip module" ) - FT_MODERRDEF( LZW, 0x800, "LZW module" ) - FT_MODERRDEF( OTvalid, 0x900, "OpenType validation module" ) - FT_MODERRDEF( PCF, 0xA00, "PCF module" ) - FT_MODERRDEF( PFR, 0xB00, "PFR module" ) - FT_MODERRDEF( PSaux, 0xC00, "PS auxiliary module" ) - FT_MODERRDEF( PShinter, 0xD00, "PS hinter module" ) - FT_MODERRDEF( PSnames, 0xE00, "PS names module" ) - FT_MODERRDEF( Raster, 0xF00, "raster module" ) - FT_MODERRDEF( SFNT, 0x1000, "SFNT module" ) - FT_MODERRDEF( Smooth, 0x1100, "smooth raster module" ) - FT_MODERRDEF( TrueType, 0x1200, "TrueType module" ) - FT_MODERRDEF( Type1, 0x1300, "Type 1 module" ) - FT_MODERRDEF( Type42, 0x1400, "Type 42 module" ) - FT_MODERRDEF( Winfonts, 0x1500, "Windows FON/FNT module" ) - FT_MODERRDEF( GXvalid, 0x1600, "GX validation module" ) - - -#ifdef FT_MODERR_END_LIST - FT_MODERR_END_LIST -#endif - - - /*******************************************************************/ - /*******************************************************************/ - /***** *****/ - /***** CLEANUP *****/ - /***** *****/ - /*******************************************************************/ - /*******************************************************************/ - - -#ifdef FT_NEED_EXTERN_C - } -#endif - -#undef FT_MODERR_START_LIST -#undef FT_MODERR_END_LIST -#undef FT_MODERRDEF -#undef FT_NEED_EXTERN_C - - -#endif /* __FTMODERR_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftotval.h b/lib/windows/include/freetype/ftotval.h deleted file mode 100644 index e744b71..0000000 --- a/lib/windows/include/freetype/ftotval.h +++ /dev/null @@ -1,204 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftotval.h */ -/* */ -/* FreeType API for validating OpenType tables (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* */ -/* Warning: This module might be moved to a different library in the */ -/* future to avoid a tight dependency between FreeType and the */ -/* OpenType specification. */ -/* */ -/* */ -/***************************************************************************/ - - -#ifndef __FTOTVAL_H__ -#define __FTOTVAL_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* ot_validation */ - /* */ - /* <Title> */ - /* OpenType Validation */ - /* */ - /* <Abstract> */ - /* An API to validate OpenType tables. */ - /* */ - /* <Description> */ - /* This section contains the declaration of functions to validate */ - /* some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). */ - /* */ - /* <Order> */ - /* FT_OpenType_Validate */ - /* FT_OpenType_Free */ - /* */ - /* FT_VALIDATE_OTXXX */ - /* */ - /*************************************************************************/ - - - /********************************************************************** - * - * @enum: - * FT_VALIDATE_OTXXX - * - * @description: - * A list of bit-field constants used with @FT_OpenType_Validate to - * indicate which OpenType tables should be validated. - * - * @values: - * FT_VALIDATE_BASE :: - * Validate BASE table. - * - * FT_VALIDATE_GDEF :: - * Validate GDEF table. - * - * FT_VALIDATE_GPOS :: - * Validate GPOS table. - * - * FT_VALIDATE_GSUB :: - * Validate GSUB table. - * - * FT_VALIDATE_JSTF :: - * Validate JSTF table. - * - * FT_VALIDATE_MATH :: - * Validate MATH table. - * - * FT_VALIDATE_OT :: - * Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). - * - */ -#define FT_VALIDATE_BASE 0x0100 -#define FT_VALIDATE_GDEF 0x0200 -#define FT_VALIDATE_GPOS 0x0400 -#define FT_VALIDATE_GSUB 0x0800 -#define FT_VALIDATE_JSTF 0x1000 -#define FT_VALIDATE_MATH 0x2000 - -#define FT_VALIDATE_OT FT_VALIDATE_BASE | \ - FT_VALIDATE_GDEF | \ - FT_VALIDATE_GPOS | \ - FT_VALIDATE_GSUB | \ - FT_VALIDATE_JSTF | \ - FT_VALIDATE_MATH - - /********************************************************************** - * - * @function: - * FT_OpenType_Validate - * - * @description: - * Validate various OpenType tables to assure that all offsets and - * indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without - * error checking (which can be quite time consuming). - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the tables to be validated. See - * @FT_VALIDATE_OTXXX for possible values. - * - * @output: - * BASE_table :: - * A pointer to the BASE table. - * - * GDEF_table :: - * A pointer to the GDEF table. - * - * GPOS_table :: - * A pointer to the GPOS table. - * - * GSUB_table :: - * A pointer to the GSUB table. - * - * JSTF_table :: - * A pointer to the JSTF table. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with OpenType fonts, returning an error - * otherwise. - * - * After use, the application should deallocate the five tables with - * @FT_OpenType_Free. A NULL value indicates that the table either - * doesn't exist in the font, or the application hasn't asked for - * validation. - */ - FT_EXPORT( FT_Error ) - FT_OpenType_Validate( FT_Face face, - FT_UInt validation_flags, - FT_Bytes *BASE_table, - FT_Bytes *GDEF_table, - FT_Bytes *GPOS_table, - FT_Bytes *GSUB_table, - FT_Bytes *JSTF_table ); - - /********************************************************************** - * - * @function: - * FT_OpenType_Free - * - * @description: - * Free the buffer allocated by OpenType validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer that is allocated by - * @FT_OpenType_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_OpenType_Validate only. - */ - FT_EXPORT( void ) - FT_OpenType_Free( FT_Face face, - FT_Bytes table ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTOTVAL_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftoutln.h b/lib/windows/include/freetype/ftoutln.h deleted file mode 100644 index 106cfde..0000000 --- a/lib/windows/include/freetype/ftoutln.h +++ /dev/null @@ -1,574 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftoutln.h */ -/* */ -/* Support for the FT_Outline type used to store glyph shapes of */ -/* most scalable font formats (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTOUTLN_H__ -#define __FTOUTLN_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* outline_processing */ - /* */ - /* <Title> */ - /* Outline Processing */ - /* */ - /* <Abstract> */ - /* Functions to create, transform, and render vectorial glyph images. */ - /* */ - /* <Description> */ - /* This section contains routines used to create and destroy scalable */ - /* glyph images known as `outlines'. These can also be measured, */ - /* transformed, and converted into bitmaps and pixmaps. */ - /* */ - /* <Order> */ - /* FT_Outline */ - /* FT_Outline_New */ - /* FT_Outline_Done */ - /* FT_Outline_Copy */ - /* FT_Outline_Translate */ - /* FT_Outline_Transform */ - /* FT_Outline_Embolden */ - /* FT_Outline_EmboldenXY */ - /* FT_Outline_Reverse */ - /* FT_Outline_Check */ - /* */ - /* FT_Outline_Get_CBox */ - /* FT_Outline_Get_BBox */ - /* */ - /* FT_Outline_Get_Bitmap */ - /* FT_Outline_Render */ - /* FT_Outline_Decompose */ - /* FT_Outline_Funcs */ - /* FT_Outline_MoveToFunc */ - /* FT_Outline_LineToFunc */ - /* FT_Outline_ConicToFunc */ - /* FT_Outline_CubicToFunc */ - /* */ - /* FT_Orientation */ - /* FT_Outline_Get_Orientation */ - /* */ - /* FT_OUTLINE_XXX */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Decompose */ - /* */ - /* <Description> */ - /* Walk over an outline's structure to decompose it into individual */ - /* segments and Bézier arcs. This function also emits `move to' */ - /* operations to indicate the start of new contours in the outline. */ - /* */ - /* <Input> */ - /* outline :: A pointer to the source target. */ - /* */ - /* func_interface :: A table of `emitters', i.e., function pointers */ - /* called during decomposition to indicate path */ - /* operations. */ - /* */ - /* <InOut> */ - /* user :: A typeless pointer that is passed to each */ - /* emitter during the decomposition. It can be */ - /* used to store the state during the */ - /* decomposition. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* A contour that contains a single point only is represented by a */ - /* `move to' operation followed by `line to' to the same point. In */ - /* most cases, it is best to filter this out before using the */ - /* outline for stroking purposes (otherwise it would result in a */ - /* visible dot when round caps are used). */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Decompose( FT_Outline* outline, - const FT_Outline_Funcs* func_interface, - void* user ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_New */ - /* */ - /* <Description> */ - /* Create a new outline of a given size. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object from where the */ - /* outline is allocated. Note however that the new */ - /* outline will *not* necessarily be *freed*, when */ - /* destroying the library, by @FT_Done_FreeType. */ - /* */ - /* numPoints :: The maximum number of points within the outline. */ - /* Must be smaller than or equal to 0xFFFF (65535). */ - /* */ - /* numContours :: The maximum number of contours within the outline. */ - /* This value must be in the range 0 to `numPoints'. */ - /* */ - /* <Output> */ - /* anoutline :: A handle to the new outline. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The reason why this function takes a `library' parameter is simply */ - /* to use the library's memory allocator. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_New( FT_Library library, - FT_UInt numPoints, - FT_Int numContours, - FT_Outline *anoutline ); - - - FT_EXPORT( FT_Error ) - FT_Outline_New_Internal( FT_Memory memory, - FT_UInt numPoints, - FT_Int numContours, - FT_Outline *anoutline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Done */ - /* */ - /* <Description> */ - /* Destroy an outline created with @FT_Outline_New. */ - /* */ - /* <Input> */ - /* library :: A handle of the library object used to allocate the */ - /* outline. */ - /* */ - /* outline :: A pointer to the outline object to be discarded. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If the outline's `owner' field is not set, only the outline */ - /* descriptor will be released. */ - /* */ - /* The reason why this function takes an `library' parameter is */ - /* simply to use ft_mem_free(). */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Done( FT_Library library, - FT_Outline* outline ); - - - FT_EXPORT( FT_Error ) - FT_Outline_Done_Internal( FT_Memory memory, - FT_Outline* outline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Check */ - /* */ - /* <Description> */ - /* Check the contents of an outline descriptor. */ - /* */ - /* <Input> */ - /* outline :: A handle to a source outline. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Check( FT_Outline* outline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Get_CBox */ - /* */ - /* <Description> */ - /* Return an outline's `control box'. The control box encloses all */ - /* the outline's points, including Bézier control points. Though it */ - /* coincides with the exact bounding box for most glyphs, it can be */ - /* slightly larger in some situations (like when rotating an outline */ - /* that contains Bézier outside arcs). */ - /* */ - /* Computing the control box is very fast, while getting the bounding */ - /* box can take much more time as it needs to walk over all segments */ - /* and arcs in the outline. To get the latter, you can use the */ - /* `ftbbox' component, which is dedicated to this single task. */ - /* */ - /* <Input> */ - /* outline :: A pointer to the source outline descriptor. */ - /* */ - /* <Output> */ - /* acbox :: The outline's control box. */ - /* */ - /* <Note> */ - /* See @FT_Glyph_Get_CBox for a discussion of tricky fonts. */ - /* */ - FT_EXPORT( void ) - FT_Outline_Get_CBox( const FT_Outline* outline, - FT_BBox *acbox ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Translate */ - /* */ - /* <Description> */ - /* Apply a simple translation to the points of an outline. */ - /* */ - /* <InOut> */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* <Input> */ - /* xOffset :: The horizontal offset. */ - /* */ - /* yOffset :: The vertical offset. */ - /* */ - FT_EXPORT( void ) - FT_Outline_Translate( const FT_Outline* outline, - FT_Pos xOffset, - FT_Pos yOffset ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Copy */ - /* */ - /* <Description> */ - /* Copy an outline into another one. Both objects must have the */ - /* same sizes (number of points & number of contours) when this */ - /* function is called. */ - /* */ - /* <Input> */ - /* source :: A handle to the source outline. */ - /* */ - /* <Output> */ - /* target :: A handle to the target outline. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Copy( const FT_Outline* source, - FT_Outline *target ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Transform */ - /* */ - /* <Description> */ - /* Apply a simple 2x2 matrix to all of an outline's points. Useful */ - /* for applying rotations, slanting, flipping, etc. */ - /* */ - /* <InOut> */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* <Input> */ - /* matrix :: A pointer to the transformation matrix. */ - /* */ - /* <Note> */ - /* You can use @FT_Outline_Translate if you need to translate the */ - /* outline's points. */ - /* */ - FT_EXPORT( void ) - FT_Outline_Transform( const FT_Outline* outline, - const FT_Matrix* matrix ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Embolden */ - /* */ - /* <Description> */ - /* Embolden an outline. The new outline will be at most 4~times */ - /* `strength' pixels wider and higher. You may think of the left and */ - /* bottom borders as unchanged. */ - /* */ - /* Negative `strength' values to reduce the outline thickness are */ - /* possible also. */ - /* */ - /* <InOut> */ - /* outline :: A handle to the target outline. */ - /* */ - /* <Input> */ - /* strength :: How strong the glyph is emboldened. Expressed in */ - /* 26.6 pixel format. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The used algorithm to increase or decrease the thickness of the */ - /* glyph doesn't change the number of points; this means that certain */ - /* situations like acute angles or intersections are sometimes */ - /* handled incorrectly. */ - /* */ - /* If you need `better' metrics values you should call */ - /* @FT_Outline_Get_CBox or @FT_Outline_Get_BBox. */ - /* */ - /* Example call: */ - /* */ - /* { */ - /* FT_Load_Glyph( face, index, FT_LOAD_DEFAULT ); */ - /* if ( face->slot->format == FT_GLYPH_FORMAT_OUTLINE ) */ - /* FT_Outline_Embolden( &face->slot->outline, strength ); */ - /* } */ - /* */ - /* To get meaningful results, font scaling values must be set with */ - /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Embolden( FT_Outline* outline, - FT_Pos strength ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_EmboldenXY */ - /* */ - /* <Description> */ - /* Embolden an outline. The new outline will be `xstrength' pixels */ - /* wider and `ystrength' pixels higher. Otherwise, it is similar to */ - /* @FT_Outline_Embolden, which uses the same strength in both */ - /* directions. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_EmboldenXY( FT_Outline* outline, - FT_Pos xstrength, - FT_Pos ystrength ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Reverse */ - /* */ - /* <Description> */ - /* Reverse the drawing direction of an outline. This is used to */ - /* ensure consistent fill conventions for mirrored glyphs. */ - /* */ - /* <InOut> */ - /* outline :: A pointer to the target outline descriptor. */ - /* */ - /* <Note> */ - /* This function toggles the bit flag @FT_OUTLINE_REVERSE_FILL in */ - /* the outline's `flags' field. */ - /* */ - /* It shouldn't be used by a normal client application, unless it */ - /* knows what it is doing. */ - /* */ - FT_EXPORT( void ) - FT_Outline_Reverse( FT_Outline* outline ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Get_Bitmap */ - /* */ - /* <Description> */ - /* Render an outline within a bitmap. The outline's image is simply */ - /* OR-ed to the target bitmap. */ - /* */ - /* <Input> */ - /* library :: A handle to a FreeType library object. */ - /* */ - /* outline :: A pointer to the source outline descriptor. */ - /* */ - /* <InOut> */ - /* abitmap :: A pointer to the target bitmap descriptor. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* This function does NOT CREATE the bitmap, it only renders an */ - /* outline image within the one you pass to it! Consequently, the */ - /* various fields in `abitmap' should be set accordingly. */ - /* */ - /* It will use the raster corresponding to the default glyph format. */ - /* */ - /* The value of the `num_grays' field in `abitmap' is ignored. If */ - /* you select the gray-level rasterizer, and you want less than 256 */ - /* gray levels, you have to use @FT_Outline_Render directly. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Get_Bitmap( FT_Library library, - FT_Outline* outline, - const FT_Bitmap *abitmap ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Outline_Render */ - /* */ - /* <Description> */ - /* Render an outline within a bitmap using the current scan-convert. */ - /* This function uses an @FT_Raster_Params structure as an argument, */ - /* allowing advanced features like direct composition, translucency, */ - /* etc. */ - /* */ - /* <Input> */ - /* library :: A handle to a FreeType library object. */ - /* */ - /* outline :: A pointer to the source outline descriptor. */ - /* */ - /* <InOut> */ - /* params :: A pointer to an @FT_Raster_Params structure used to */ - /* describe the rendering operation. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You should know what you are doing and how @FT_Raster_Params works */ - /* to use this function. */ - /* */ - /* The field `params.source' will be set to `outline' before the scan */ - /* converter is called, which means that the value you give to it is */ - /* actually ignored. */ - /* */ - /* The gray-level rasterizer always uses 256 gray levels. If you */ - /* want less gray levels, you have to provide your own span callback. */ - /* See the @FT_RASTER_FLAG_DIRECT value of the `flags' field in the */ - /* @FT_Raster_Params structure for more details. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Outline_Render( FT_Library library, - FT_Outline* outline, - FT_Raster_Params* params ); - - - /************************************************************************** - * - * @enum: - * FT_Orientation - * - * @description: - * A list of values used to describe an outline's contour orientation. - * - * The TrueType and PostScript specifications use different conventions - * to determine whether outline contours should be filled or unfilled. - * - * @values: - * FT_ORIENTATION_TRUETYPE :: - * According to the TrueType specification, clockwise contours must - * be filled, and counter-clockwise ones must be unfilled. - * - * FT_ORIENTATION_POSTSCRIPT :: - * According to the PostScript specification, counter-clockwise contours - * must be filled, and clockwise ones must be unfilled. - * - * FT_ORIENTATION_FILL_RIGHT :: - * This is identical to @FT_ORIENTATION_TRUETYPE, but is used to - * remember that in TrueType, everything that is to the right of - * the drawing direction of a contour must be filled. - * - * FT_ORIENTATION_FILL_LEFT :: - * This is identical to @FT_ORIENTATION_POSTSCRIPT, but is used to - * remember that in PostScript, everything that is to the left of - * the drawing direction of a contour must be filled. - * - * FT_ORIENTATION_NONE :: - * The orientation cannot be determined. That is, different parts of - * the glyph have different orientation. - * - */ - typedef enum FT_Orientation_ - { - FT_ORIENTATION_TRUETYPE = 0, - FT_ORIENTATION_POSTSCRIPT = 1, - FT_ORIENTATION_FILL_RIGHT = FT_ORIENTATION_TRUETYPE, - FT_ORIENTATION_FILL_LEFT = FT_ORIENTATION_POSTSCRIPT, - FT_ORIENTATION_NONE - - } FT_Orientation; - - - /************************************************************************** - * - * @function: - * FT_Outline_Get_Orientation - * - * @description: - * This function analyzes a glyph outline and tries to compute its - * fill orientation (see @FT_Orientation). This is done by integrating - * the total area covered by the outline. The positive integral - * corresponds to the clockwise orientation and @FT_ORIENTATION_POSTSCRIPT - * is returned. The negative integral corresponds to the counter-clockwise - * orientation and @FT_ORIENTATION_TRUETYPE is returned. - * - * Note that this will return @FT_ORIENTATION_TRUETYPE for empty - * outlines. - * - * @input: - * outline :: - * A handle to the source outline. - * - * @return: - * The orientation. - * - */ - FT_EXPORT( FT_Orientation ) - FT_Outline_Get_Orientation( FT_Outline* outline ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTOUTLN_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/windows/include/freetype/ftpfr.h b/lib/windows/include/freetype/ftpfr.h deleted file mode 100644 index a1c02a2..0000000 --- a/lib/windows/include/freetype/ftpfr.h +++ /dev/null @@ -1,172 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftpfr.h */ -/* */ -/* FreeType API for accessing PFR-specific data (specification only). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTPFR_H__ -#define __FTPFR_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* pfr_fonts */ - /* */ - /* <Title> */ - /* PFR Fonts */ - /* */ - /* <Abstract> */ - /* PFR/TrueDoc specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of PFR-specific functions. */ - /* */ - /*************************************************************************/ - - - /********************************************************************** - * - * @function: - * FT_Get_PFR_Metrics - * - * @description: - * Return the outline and metrics resolutions of a given PFR face. - * - * @input: - * face :: Handle to the input face. It can be a non-PFR face. - * - * @output: - * aoutline_resolution :: - * Outline resolution. This is equivalent to `face->units_per_EM' - * for non-PFR fonts. Optional (parameter can be NULL). - * - * ametrics_resolution :: - * Metrics resolution. This is equivalent to `outline_resolution' - * for non-PFR fonts. Optional (parameter can be NULL). - * - * ametrics_x_scale :: - * A 16.16 fixed-point number used to scale distance expressed - * in metrics units to device sub-pixels. This is equivalent to - * `face->size->x_scale', but for metrics only. Optional (parameter - * can be NULL). - * - * ametrics_y_scale :: - * Same as `ametrics_x_scale' but for the vertical direction. - * optional (parameter can be NULL). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If the input face is not a PFR, this function will return an error. - * However, in all cases, it will return valid values. - */ - FT_EXPORT( FT_Error ) - FT_Get_PFR_Metrics( FT_Face face, - FT_UInt *aoutline_resolution, - FT_UInt *ametrics_resolution, - FT_Fixed *ametrics_x_scale, - FT_Fixed *ametrics_y_scale ); - - - /********************************************************************** - * - * @function: - * FT_Get_PFR_Kerning - * - * @description: - * Return the kerning pair corresponding to two glyphs in a PFR face. - * The distance is expressed in metrics units, unlike the result of - * @FT_Get_Kerning. - * - * @input: - * face :: A handle to the input face. - * - * left :: Index of the left glyph. - * - * right :: Index of the right glyph. - * - * @output: - * avector :: A kerning vector. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function always return distances in original PFR metrics - * units. This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED - * mode, which always returns distances converted to outline units. - * - * You can use the value of the `x_scale' and `y_scale' parameters - * returned by @FT_Get_PFR_Metrics to scale these to device sub-pixels. - */ - FT_EXPORT( FT_Error ) - FT_Get_PFR_Kerning( FT_Face face, - FT_UInt left, - FT_UInt right, - FT_Vector *avector ); - - - /********************************************************************** - * - * @function: - * FT_Get_PFR_Advance - * - * @description: - * Return a given glyph advance, expressed in original metrics units, - * from a PFR font. - * - * @input: - * face :: A handle to the input face. - * - * gindex :: The glyph index. - * - * @output: - * aadvance :: The glyph advance in metrics units. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You can use the `x_scale' or `y_scale' results of @FT_Get_PFR_Metrics - * to convert the advance to device sub-pixels (i.e., 1/64th of pixels). - */ - FT_EXPORT( FT_Error ) - FT_Get_PFR_Advance( FT_Face face, - FT_UInt gindex, - FT_Pos *aadvance ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTPFR_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftrender.h b/lib/windows/include/freetype/ftrender.h deleted file mode 100644 index ec8da70..0000000 --- a/lib/windows/include/freetype/ftrender.h +++ /dev/null @@ -1,232 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftrender.h */ -/* */ -/* FreeType renderer modules public interface (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTRENDER_H__ -#define __FTRENDER_H__ - - -#include <ft2build.h> -#include FT_MODULE_H -#include FT_GLYPH_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* module_management */ - /* */ - /*************************************************************************/ - - - /* create a new glyph object */ - typedef FT_Error - (*FT_Glyph_InitFunc)( FT_Glyph glyph, - FT_GlyphSlot slot ); - - /* destroys a given glyph object */ - typedef void - (*FT_Glyph_DoneFunc)( FT_Glyph glyph ); - - typedef void - (*FT_Glyph_TransformFunc)( FT_Glyph glyph, - const FT_Matrix* matrix, - const FT_Vector* delta ); - - typedef void - (*FT_Glyph_GetBBoxFunc)( FT_Glyph glyph, - FT_BBox* abbox ); - - typedef FT_Error - (*FT_Glyph_CopyFunc)( FT_Glyph source, - FT_Glyph target ); - - typedef FT_Error - (*FT_Glyph_PrepareFunc)( FT_Glyph glyph, - FT_GlyphSlot slot ); - -/* deprecated */ -#define FT_Glyph_Init_Func FT_Glyph_InitFunc -#define FT_Glyph_Done_Func FT_Glyph_DoneFunc -#define FT_Glyph_Transform_Func FT_Glyph_TransformFunc -#define FT_Glyph_BBox_Func FT_Glyph_GetBBoxFunc -#define FT_Glyph_Copy_Func FT_Glyph_CopyFunc -#define FT_Glyph_Prepare_Func FT_Glyph_PrepareFunc - - - struct FT_Glyph_Class_ - { - FT_Long glyph_size; - FT_Glyph_Format glyph_format; - FT_Glyph_InitFunc glyph_init; - FT_Glyph_DoneFunc glyph_done; - FT_Glyph_CopyFunc glyph_copy; - FT_Glyph_TransformFunc glyph_transform; - FT_Glyph_GetBBoxFunc glyph_bbox; - FT_Glyph_PrepareFunc glyph_prepare; - }; - - - typedef FT_Error - (*FT_Renderer_RenderFunc)( FT_Renderer renderer, - FT_GlyphSlot slot, - FT_UInt mode, - const FT_Vector* origin ); - - typedef FT_Error - (*FT_Renderer_TransformFunc)( FT_Renderer renderer, - FT_GlyphSlot slot, - const FT_Matrix* matrix, - const FT_Vector* delta ); - - - typedef void - (*FT_Renderer_GetCBoxFunc)( FT_Renderer renderer, - FT_GlyphSlot slot, - FT_BBox* cbox ); - - - typedef FT_Error - (*FT_Renderer_SetModeFunc)( FT_Renderer renderer, - FT_ULong mode_tag, - FT_Pointer mode_ptr ); - -/* deprecated identifiers */ -#define FTRenderer_render FT_Renderer_RenderFunc -#define FTRenderer_transform FT_Renderer_TransformFunc -#define FTRenderer_getCBox FT_Renderer_GetCBoxFunc -#define FTRenderer_setMode FT_Renderer_SetModeFunc - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Renderer_Class */ - /* */ - /* <Description> */ - /* The renderer module class descriptor. */ - /* */ - /* <Fields> */ - /* root :: The root @FT_Module_Class fields. */ - /* */ - /* glyph_format :: The glyph image format this renderer handles. */ - /* */ - /* render_glyph :: A method used to render the image that is in a */ - /* given glyph slot into a bitmap. */ - /* */ - /* transform_glyph :: A method used to transform the image that is in */ - /* a given glyph slot. */ - /* */ - /* get_glyph_cbox :: A method used to access the glyph's cbox. */ - /* */ - /* set_mode :: A method used to pass additional parameters. */ - /* */ - /* raster_class :: For @FT_GLYPH_FORMAT_OUTLINE renderers only. */ - /* This is a pointer to its raster's class. */ - /* */ - typedef struct FT_Renderer_Class_ - { - FT_Module_Class root; - - FT_Glyph_Format glyph_format; - - FT_Renderer_RenderFunc render_glyph; - FT_Renderer_TransformFunc transform_glyph; - FT_Renderer_GetCBoxFunc get_glyph_cbox; - FT_Renderer_SetModeFunc set_mode; - - FT_Raster_Funcs* raster_class; - - } FT_Renderer_Class; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Renderer */ - /* */ - /* <Description> */ - /* Retrieve the current renderer for a given glyph format. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object. */ - /* */ - /* format :: The glyph format. */ - /* */ - /* <Return> */ - /* A renderer handle. 0~if none found. */ - /* */ - /* <Note> */ - /* An error will be returned if a module already exists by that name, */ - /* or if the module requires a version of FreeType that is too great. */ - /* */ - /* To add a new renderer, simply use @FT_Add_Module. To retrieve a */ - /* renderer by its name, use @FT_Get_Module. */ - /* */ - FT_EXPORT( FT_Renderer ) - FT_Get_Renderer( FT_Library library, - FT_Glyph_Format format ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Set_Renderer */ - /* */ - /* <Description> */ - /* Set the current renderer to use, and set additional mode. */ - /* */ - /* <InOut> */ - /* library :: A handle to the library object. */ - /* */ - /* <Input> */ - /* renderer :: A handle to the renderer object. */ - /* */ - /* num_params :: The number of additional parameters. */ - /* */ - /* parameters :: Additional parameters. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* In case of success, the renderer will be used to convert glyph */ - /* images in the renderer's known format into bitmaps. */ - /* */ - /* This doesn't change the current renderer for other formats. */ - /* */ - /* Currently, no FreeType renderer module uses `parameters'; you */ - /* should thus always pass NULL as the value. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Set_Renderer( FT_Library library, - FT_Renderer renderer, - FT_UInt num_params, - FT_Parameter* parameters ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTRENDER_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftsizes.h b/lib/windows/include/freetype/ftsizes.h deleted file mode 100644 index bef8424..0000000 --- a/lib/windows/include/freetype/ftsizes.h +++ /dev/null @@ -1,159 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsizes.h */ -/* */ -/* FreeType size objects management (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Typical application would normally not need to use these functions. */ - /* However, they have been placed in a public API for the rare cases */ - /* where they are needed. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTSIZES_H__ -#define __FTSIZES_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* sizes_management */ - /* */ - /* <Title> */ - /* Size Management */ - /* */ - /* <Abstract> */ - /* Managing multiple sizes per face. */ - /* */ - /* <Description> */ - /* When creating a new face object (e.g., with @FT_New_Face), an */ - /* @FT_Size object is automatically created and used to store all */ - /* pixel-size dependent information, available in the `face->size' */ - /* field. */ - /* */ - /* It is however possible to create more sizes for a given face, */ - /* mostly in order to manage several character pixel sizes of the */ - /* same font family and style. See @FT_New_Size and @FT_Done_Size. */ - /* */ - /* Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only */ - /* modify the contents of the current `active' size; you thus need */ - /* to use @FT_Activate_Size to change it. */ - /* */ - /* 99% of applications won't need the functions provided here, */ - /* especially if they use the caching sub-system, so be cautious */ - /* when using these. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Size */ - /* */ - /* <Description> */ - /* Create a new size object from a given face object. */ - /* */ - /* <Input> */ - /* face :: A handle to a parent face object. */ - /* */ - /* <Output> */ - /* asize :: A handle to a new size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* You need to call @FT_Activate_Size in order to select the new size */ - /* for upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size, */ - /* @FT_Load_Glyph, @FT_Load_Char, etc. */ - /* */ - FT_EXPORT( FT_Error ) - FT_New_Size( FT_Face face, - FT_Size* size ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Size */ - /* */ - /* <Description> */ - /* Discard a given size object. Note that @FT_Done_Face */ - /* automatically discards all size objects allocated with */ - /* @FT_New_Size. */ - /* */ - /* <Input> */ - /* size :: A handle to a target size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Done_Size( FT_Size size ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Activate_Size */ - /* */ - /* <Description> */ - /* Even though it is possible to create several size objects for a */ - /* given face (see @FT_New_Size for details), functions like */ - /* @FT_Load_Glyph or @FT_Load_Char only use the one that has been */ - /* activated last to determine the `current character pixel size'. */ - /* */ - /* This function can be used to `activate' a previously created size */ - /* object. */ - /* */ - /* <Input> */ - /* size :: A handle to a target size object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* If `face' is the size's parent face object, this function changes */ - /* the value of `face->size' to the input size handle. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Activate_Size( FT_Size size ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTSIZES_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftsnames.h b/lib/windows/include/freetype/ftsnames.h deleted file mode 100644 index 0f7fbe1..0000000 --- a/lib/windows/include/freetype/ftsnames.h +++ /dev/null @@ -1,200 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsnames.h */ -/* */ -/* Simple interface to access SFNT name tables (which are used */ -/* to hold font names, copyright info, notices, etc.) (specification). */ -/* */ -/* This is _not_ used to retrieve glyph names! */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FT_SFNT_NAMES_H__ -#define __FT_SFNT_NAMES_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* sfnt_names */ - /* */ - /* <Title> */ - /* SFNT Names */ - /* */ - /* <Abstract> */ - /* Access the names embedded in TrueType and OpenType files. */ - /* */ - /* <Description> */ - /* The TrueType and OpenType specifications allow the inclusion of */ - /* a special `names table' in font files. This table contains */ - /* textual (and internationalized) information regarding the font, */ - /* like family name, copyright, version, etc. */ - /* */ - /* The definitions below are used to access them if available. */ - /* */ - /* Note that this has nothing to do with glyph names! */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_SfntName */ - /* */ - /* <Description> */ - /* A structure used to model an SFNT `name' table entry. */ - /* */ - /* <Fields> */ - /* platform_id :: The platform ID for `string'. */ - /* */ - /* encoding_id :: The encoding ID for `string'. */ - /* */ - /* language_id :: The language ID for `string'. */ - /* */ - /* name_id :: An identifier for `string'. */ - /* */ - /* string :: The `name' string. Note that its format differs */ - /* depending on the (platform,encoding) pair. It can */ - /* be a Pascal String, a UTF-16 one, etc. */ - /* */ - /* Generally speaking, the string is not */ - /* zero-terminated. Please refer to the TrueType */ - /* specification for details. */ - /* */ - /* string_len :: The length of `string' in bytes. */ - /* */ - /* <Note> */ - /* Possible values for `platform_id', `encoding_id', `language_id', */ - /* and `name_id' are given in the file `ttnameid.h'. For details */ - /* please refer to the TrueType or OpenType specification. */ - /* */ - /* See also @TT_PLATFORM_XXX, @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX, */ - /* @TT_ISO_ID_XXX, and @TT_MS_ID_XXX. */ - /* */ - typedef struct FT_SfntName_ - { - FT_UShort platform_id; - FT_UShort encoding_id; - FT_UShort language_id; - FT_UShort name_id; - - FT_Byte* string; /* this string is *not* null-terminated! */ - FT_UInt string_len; /* in bytes */ - - } FT_SfntName; - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Sfnt_Name_Count */ - /* */ - /* <Description> */ - /* Retrieve the number of name strings in the SFNT `name' table. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* <Return> */ - /* The number of strings in the `name' table. */ - /* */ - FT_EXPORT( FT_UInt ) - FT_Get_Sfnt_Name_Count( FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Sfnt_Name */ - /* */ - /* <Description> */ - /* Retrieve a string of the SFNT `name' table for a given index. */ - /* */ - /* <Input> */ - /* face :: A handle to the source face. */ - /* */ - /* idx :: The index of the `name' string. */ - /* */ - /* <Output> */ - /* aname :: The indexed @FT_SfntName structure. */ - /* */ - /* <Return> */ - /* FreeType error code. 0~means success. */ - /* */ - /* <Note> */ - /* The `string' array returned in the `aname' structure is not */ - /* null-terminated. The application should deallocate it if it is no */ - /* longer in use. */ - /* */ - /* Use @FT_Get_Sfnt_Name_Count to get the total number of available */ - /* `name' table entries, then do a loop until you get the right */ - /* platform, encoding, and name ID. */ - /* */ - FT_EXPORT( FT_Error ) - FT_Get_Sfnt_Name( FT_Face face, - FT_UInt idx, - FT_SfntName *aname ); - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY - * - * @description: - * A constant used as the tag of @FT_Parameter structures to make - * FT_Open_Face() ignore preferred family subfamily names in `name' - * table since OpenType version 1.4. For backwards compatibility with - * legacy systems that have a 4-face-per-family restriction. - * - */ -#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY FT_MAKE_TAG( 'i', 'g', 'p', 'f' ) - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY - * - * @description: - * A constant used as the tag of @FT_Parameter structures to make - * FT_Open_Face() ignore preferred subfamily names in `name' table since - * OpenType version 1.4. For backwards compatibility with legacy - * systems that have a 4-face-per-family restriction. - * - */ -#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY FT_MAKE_TAG( 'i', 'g', 'p', 's' ) - - /* */ - - -FT_END_HEADER - -#endif /* __FT_SFNT_NAMES_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftstroke.h b/lib/windows/include/freetype/ftstroke.h deleted file mode 100644 index 7ebb1e7..0000000 --- a/lib/windows/include/freetype/ftstroke.h +++ /dev/null @@ -1,785 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftstroke.h */ -/* */ -/* FreeType path stroker (specification). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FT_STROKE_H__ -#define __FT_STROKE_H__ - -#include <ft2build.h> -#include FT_OUTLINE_H -#include FT_GLYPH_H - - -FT_BEGIN_HEADER - - - /************************************************************************ - * - * @section: - * glyph_stroker - * - * @title: - * Glyph Stroker - * - * @abstract: - * Generating bordered and stroked glyphs. - * - * @description: - * This component generates stroked outlines of a given vectorial - * glyph. It also allows you to retrieve the `outside' and/or the - * `inside' borders of the stroke. - * - * This can be useful to generate `bordered' glyph, i.e., glyphs - * displayed with a coloured (and anti-aliased) border around their - * shape. - * - * @order: - * FT_Stroker - * - * FT_Stroker_LineJoin - * FT_Stroker_LineCap - * FT_StrokerBorder - * - * FT_Outline_GetInsideBorder - * FT_Outline_GetOutsideBorder - * - * FT_Glyph_Stroke - * FT_Glyph_StrokeBorder - * - * FT_Stroker_New - * FT_Stroker_Set - * FT_Stroker_Rewind - * FT_Stroker_ParseOutline - * FT_Stroker_Done - * - * FT_Stroker_BeginSubPath - * FT_Stroker_EndSubPath - * - * FT_Stroker_LineTo - * FT_Stroker_ConicTo - * FT_Stroker_CubicTo - * - * FT_Stroker_GetBorderCounts - * FT_Stroker_ExportBorder - * FT_Stroker_GetCounts - * FT_Stroker_Export - * - */ - - - /************************************************************** - * - * @type: - * FT_Stroker - * - * @description: - * Opaque handle to a path stroker object. - */ - typedef struct FT_StrokerRec_* FT_Stroker; - - - /************************************************************** - * - * @enum: - * FT_Stroker_LineJoin - * - * @description: - * These values determine how two joining lines are rendered - * in a stroker. - * - * @values: - * FT_STROKER_LINEJOIN_ROUND :: - * Used to render rounded line joins. Circular arcs are used - * to join two lines smoothly. - * - * FT_STROKER_LINEJOIN_BEVEL :: - * Used to render beveled line joins. The outer corner of - * the joined lines is filled by enclosing the triangular - * region of the corner with a straight line between the - * outer corners of each stroke. - * - * FT_STROKER_LINEJOIN_MITER_FIXED :: - * Used to render mitered line joins, with fixed bevels if the - * miter limit is exceeded. The outer edges of the strokes - * for the two segments are extended until they meet at an - * angle. If the segments meet at too sharp an angle (such - * that the miter would extend from the intersection of the - * segments a distance greater than the product of the miter - * limit value and the border radius), then a bevel join (see - * above) is used instead. This prevents long spikes being - * created. FT_STROKER_LINEJOIN_MITER_FIXED generates a miter - * line join as used in PostScript and PDF. - * - * FT_STROKER_LINEJOIN_MITER_VARIABLE :: - * FT_STROKER_LINEJOIN_MITER :: - * Used to render mitered line joins, with variable bevels if - * the miter limit is exceeded. The intersection of the - * strokes is clipped at a line perpendicular to the bisector - * of the angle between the strokes, at the distance from the - * intersection of the segments equal to the product of the - * miter limit value and the border radius. This prevents - * long spikes being created. - * FT_STROKER_LINEJOIN_MITER_VARIABLE generates a mitered line - * join as used in XPS. FT_STROKER_LINEJOIN_MITER is an alias - * for FT_STROKER_LINEJOIN_MITER_VARIABLE, retained for - * backwards compatibility. - */ - typedef enum FT_Stroker_LineJoin_ - { - FT_STROKER_LINEJOIN_ROUND = 0, - FT_STROKER_LINEJOIN_BEVEL = 1, - FT_STROKER_LINEJOIN_MITER_VARIABLE = 2, - FT_STROKER_LINEJOIN_MITER = FT_STROKER_LINEJOIN_MITER_VARIABLE, - FT_STROKER_LINEJOIN_MITER_FIXED = 3 - - } FT_Stroker_LineJoin; - - - /************************************************************** - * - * @enum: - * FT_Stroker_LineCap - * - * @description: - * These values determine how the end of opened sub-paths are - * rendered in a stroke. - * - * @values: - * FT_STROKER_LINECAP_BUTT :: - * The end of lines is rendered as a full stop on the last - * point itself. - * - * FT_STROKER_LINECAP_ROUND :: - * The end of lines is rendered as a half-circle around the - * last point. - * - * FT_STROKER_LINECAP_SQUARE :: - * The end of lines is rendered as a square around the - * last point. - */ - typedef enum FT_Stroker_LineCap_ - { - FT_STROKER_LINECAP_BUTT = 0, - FT_STROKER_LINECAP_ROUND, - FT_STROKER_LINECAP_SQUARE - - } FT_Stroker_LineCap; - - - /************************************************************** - * - * @enum: - * FT_StrokerBorder - * - * @description: - * These values are used to select a given stroke border - * in @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder. - * - * @values: - * FT_STROKER_BORDER_LEFT :: - * Select the left border, relative to the drawing direction. - * - * FT_STROKER_BORDER_RIGHT :: - * Select the right border, relative to the drawing direction. - * - * @note: - * Applications are generally interested in the `inside' and `outside' - * borders. However, there is no direct mapping between these and the - * `left' and `right' ones, since this really depends on the glyph's - * drawing orientation, which varies between font formats. - * - * You can however use @FT_Outline_GetInsideBorder and - * @FT_Outline_GetOutsideBorder to get these. - */ - typedef enum FT_StrokerBorder_ - { - FT_STROKER_BORDER_LEFT = 0, - FT_STROKER_BORDER_RIGHT - - } FT_StrokerBorder; - - - /************************************************************** - * - * @function: - * FT_Outline_GetInsideBorder - * - * @description: - * Retrieve the @FT_StrokerBorder value corresponding to the - * `inside' borders of a given outline. - * - * @input: - * outline :: - * The source outline handle. - * - * @return: - * The border index. @FT_STROKER_BORDER_RIGHT for empty or invalid - * outlines. - */ - FT_EXPORT( FT_StrokerBorder ) - FT_Outline_GetInsideBorder( FT_Outline* outline ); - - - /************************************************************** - * - * @function: - * FT_Outline_GetOutsideBorder - * - * @description: - * Retrieve the @FT_StrokerBorder value corresponding to the - * `outside' borders of a given outline. - * - * @input: - * outline :: - * The source outline handle. - * - * @return: - * The border index. @FT_STROKER_BORDER_LEFT for empty or invalid - * outlines. - */ - FT_EXPORT( FT_StrokerBorder ) - FT_Outline_GetOutsideBorder( FT_Outline* outline ); - - - /************************************************************** - * - * @function: - * FT_Stroker_New - * - * @description: - * Create a new stroker object. - * - * @input: - * library :: - * FreeType library handle. - * - * @output: - * astroker :: - * A new stroker object handle. NULL in case of error. - * - * @return: - * FreeType error code. 0~means success. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_New( FT_Library library, - FT_Stroker *astroker ); - - - /************************************************************** - * - * @function: - * FT_Stroker_Set - * - * @description: - * Reset a stroker object's attributes. - * - * @input: - * stroker :: - * The target stroker handle. - * - * radius :: - * The border radius. - * - * line_cap :: - * The line cap style. - * - * line_join :: - * The line join style. - * - * miter_limit :: - * The miter limit for the FT_STROKER_LINEJOIN_MITER_FIXED and - * FT_STROKER_LINEJOIN_MITER_VARIABLE line join styles, - * expressed as 16.16 fixed-point value. - * - * @note: - * The radius is expressed in the same units as the outline - * coordinates. - * - * This function calls @FT_Stroker_Rewind automatically. - */ - FT_EXPORT( void ) - FT_Stroker_Set( FT_Stroker stroker, - FT_Fixed radius, - FT_Stroker_LineCap line_cap, - FT_Stroker_LineJoin line_join, - FT_Fixed miter_limit ); - - - /************************************************************** - * - * @function: - * FT_Stroker_Rewind - * - * @description: - * Reset a stroker object without changing its attributes. - * You should call this function before beginning a new - * series of calls to @FT_Stroker_BeginSubPath or - * @FT_Stroker_EndSubPath. - * - * @input: - * stroker :: - * The target stroker handle. - */ - FT_EXPORT( void ) - FT_Stroker_Rewind( FT_Stroker stroker ); - - - /************************************************************** - * - * @function: - * FT_Stroker_ParseOutline - * - * @description: - * A convenience function used to parse a whole outline with - * the stroker. The resulting outline(s) can be retrieved - * later by functions like @FT_Stroker_GetCounts and @FT_Stroker_Export. - * - * @input: - * stroker :: - * The target stroker handle. - * - * outline :: - * The source outline. - * - * opened :: - * A boolean. If~1, the outline is treated as an open path instead - * of a closed one. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If `opened' is~0 (the default), the outline is treated as a closed - * path, and the stroker generates two distinct `border' outlines. - * - * If `opened' is~1, the outline is processed as an open path, and the - * stroker generates a single `stroke' outline. - * - * This function calls @FT_Stroker_Rewind automatically. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_ParseOutline( FT_Stroker stroker, - FT_Outline* outline, - FT_Bool opened ); - - - /************************************************************** - * - * @function: - * FT_Stroker_BeginSubPath - * - * @description: - * Start a new sub-path in the stroker. - * - * @input: - * stroker :: - * The target stroker handle. - * - * to :: - * A pointer to the start vector. - * - * open :: - * A boolean. If~1, the sub-path is treated as an open one. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function is useful when you need to stroke a path that is - * not stored as an @FT_Outline object. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_BeginSubPath( FT_Stroker stroker, - FT_Vector* to, - FT_Bool open ); - - - /************************************************************** - * - * @function: - * FT_Stroker_EndSubPath - * - * @description: - * Close the current sub-path in the stroker. - * - * @input: - * stroker :: - * The target stroker handle. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should call this function after @FT_Stroker_BeginSubPath. - * If the subpath was not `opened', this function `draws' a - * single line segment to the start position when needed. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_EndSubPath( FT_Stroker stroker ); - - - /************************************************************** - * - * @function: - * FT_Stroker_LineTo - * - * @description: - * `Draw' a single line segment in the stroker's current sub-path, - * from the last position. - * - * @input: - * stroker :: - * The target stroker handle. - * - * to :: - * A pointer to the destination point. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should call this function between @FT_Stroker_BeginSubPath and - * @FT_Stroker_EndSubPath. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_LineTo( FT_Stroker stroker, - FT_Vector* to ); - - - /************************************************************** - * - * @function: - * FT_Stroker_ConicTo - * - * @description: - * `Draw' a single quadratic Bézier in the stroker's current sub-path, - * from the last position. - * - * @input: - * stroker :: - * The target stroker handle. - * - * control :: - * A pointer to a Bézier control point. - * - * to :: - * A pointer to the destination point. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should call this function between @FT_Stroker_BeginSubPath and - * @FT_Stroker_EndSubPath. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_ConicTo( FT_Stroker stroker, - FT_Vector* control, - FT_Vector* to ); - - - /************************************************************** - * - * @function: - * FT_Stroker_CubicTo - * - * @description: - * `Draw' a single cubic Bézier in the stroker's current sub-path, - * from the last position. - * - * @input: - * stroker :: - * The target stroker handle. - * - * control1 :: - * A pointer to the first Bézier control point. - * - * control2 :: - * A pointer to second Bézier control point. - * - * to :: - * A pointer to the destination point. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should call this function between @FT_Stroker_BeginSubPath and - * @FT_Stroker_EndSubPath. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_CubicTo( FT_Stroker stroker, - FT_Vector* control1, - FT_Vector* control2, - FT_Vector* to ); - - - /************************************************************** - * - * @function: - * FT_Stroker_GetBorderCounts - * - * @description: - * Call this function once you have finished parsing your paths - * with the stroker. It returns the number of points and - * contours necessary to export one of the `border' or `stroke' - * outlines generated by the stroker. - * - * @input: - * stroker :: - * The target stroker handle. - * - * border :: - * The border index. - * - * @output: - * anum_points :: - * The number of points. - * - * anum_contours :: - * The number of contours. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * When an outline, or a sub-path, is `closed', the stroker generates - * two independent `border' outlines, named `left' and `right'. - * - * When the outline, or a sub-path, is `opened', the stroker merges - * the `border' outlines with caps. The `left' border receives all - * points, while the `right' border becomes empty. - * - * Use the function @FT_Stroker_GetCounts instead if you want to - * retrieve the counts associated to both borders. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_GetBorderCounts( FT_Stroker stroker, - FT_StrokerBorder border, - FT_UInt *anum_points, - FT_UInt *anum_contours ); - - - /************************************************************** - * - * @function: - * FT_Stroker_ExportBorder - * - * @description: - * Call this function after @FT_Stroker_GetBorderCounts to - * export the corresponding border to your own @FT_Outline - * structure. - * - * Note that this function appends the border points and - * contours to your outline, but does not try to resize its - * arrays. - * - * @input: - * stroker :: - * The target stroker handle. - * - * border :: - * The border index. - * - * outline :: - * The target outline handle. - * - * @note: - * Always call this function after @FT_Stroker_GetBorderCounts to - * get sure that there is enough room in your @FT_Outline object to - * receive all new data. - * - * When an outline, or a sub-path, is `closed', the stroker generates - * two independent `border' outlines, named `left' and `right'. - * - * When the outline, or a sub-path, is `opened', the stroker merges - * the `border' outlines with caps. The `left' border receives all - * points, while the `right' border becomes empty. - * - * Use the function @FT_Stroker_Export instead if you want to - * retrieve all borders at once. - */ - FT_EXPORT( void ) - FT_Stroker_ExportBorder( FT_Stroker stroker, - FT_StrokerBorder border, - FT_Outline* outline ); - - - /************************************************************** - * - * @function: - * FT_Stroker_GetCounts - * - * @description: - * Call this function once you have finished parsing your paths - * with the stroker. It returns the number of points and - * contours necessary to export all points/borders from the stroked - * outline/path. - * - * @input: - * stroker :: - * The target stroker handle. - * - * @output: - * anum_points :: - * The number of points. - * - * anum_contours :: - * The number of contours. - * - * @return: - * FreeType error code. 0~means success. - */ - FT_EXPORT( FT_Error ) - FT_Stroker_GetCounts( FT_Stroker stroker, - FT_UInt *anum_points, - FT_UInt *anum_contours ); - - - /************************************************************** - * - * @function: - * FT_Stroker_Export - * - * @description: - * Call this function after @FT_Stroker_GetBorderCounts to - * export all borders to your own @FT_Outline structure. - * - * Note that this function appends the border points and - * contours to your outline, but does not try to resize its - * arrays. - * - * @input: - * stroker :: - * The target stroker handle. - * - * outline :: - * The target outline handle. - */ - FT_EXPORT( void ) - FT_Stroker_Export( FT_Stroker stroker, - FT_Outline* outline ); - - - /************************************************************** - * - * @function: - * FT_Stroker_Done - * - * @description: - * Destroy a stroker object. - * - * @input: - * stroker :: - * A stroker handle. Can be NULL. - */ - FT_EXPORT( void ) - FT_Stroker_Done( FT_Stroker stroker ); - - - /************************************************************** - * - * @function: - * FT_Glyph_Stroke - * - * @description: - * Stroke a given outline glyph object with a given stroker. - * - * @inout: - * pglyph :: - * Source glyph handle on input, new glyph handle on output. - * - * @input: - * stroker :: - * A stroker handle. - * - * destroy :: - * A Boolean. If~1, the source glyph object is destroyed - * on success. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source glyph is untouched in case of error. - * - * Adding stroke may yield a significantly wider and taller glyph - * depending on how large of a radius was used to stroke the glyph. You - * may need to manually adjust horizontal and vertical advance amounts - * to account for this added size. - */ - FT_EXPORT( FT_Error ) - FT_Glyph_Stroke( FT_Glyph *pglyph, - FT_Stroker stroker, - FT_Bool destroy ); - - - /************************************************************** - * - * @function: - * FT_Glyph_StrokeBorder - * - * @description: - * Stroke a given outline glyph object with a given stroker, but - * only return either its inside or outside border. - * - * @inout: - * pglyph :: - * Source glyph handle on input, new glyph handle on output. - * - * @input: - * stroker :: - * A stroker handle. - * - * inside :: - * A Boolean. If~1, return the inside border, otherwise - * the outside border. - * - * destroy :: - * A Boolean. If~1, the source glyph object is destroyed - * on success. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source glyph is untouched in case of error. - * - * Adding stroke may yield a significantly wider and taller glyph - * depending on how large of a radius was used to stroke the glyph. You - * may need to manually adjust horizontal and vertical advance amounts - * to account for this added size. - */ - FT_EXPORT( FT_Error ) - FT_Glyph_StrokeBorder( FT_Glyph *pglyph, - FT_Stroker stroker, - FT_Bool inside, - FT_Bool destroy ); - - /* */ - -FT_END_HEADER - -#endif /* __FT_STROKE_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/windows/include/freetype/ftsynth.h b/lib/windows/include/freetype/ftsynth.h deleted file mode 100644 index fbcbad8..0000000 --- a/lib/windows/include/freetype/ftsynth.h +++ /dev/null @@ -1,84 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsynth.h */ -/* */ -/* FreeType synthesizing code for emboldening and slanting */ -/* (specification). */ -/* */ -/* Copyright 2000-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /********* *********/ - /********* WARNING, THIS IS ALPHA CODE! THIS API *********/ - /********* IS DUE TO CHANGE UNTIL STRICTLY NOTIFIED BY THE *********/ - /********* FREETYPE DEVELOPMENT TEAM *********/ - /********* *********/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* Main reason for not lifting the functions in this module to a */ - /* `standard' API is that the used parameters for emboldening and */ - /* slanting are not configurable. Consider the functions as a */ - /* code resource that should be copied into the application and */ - /* adapted to the particular needs. */ - - -#ifndef __FTSYNTH_H__ -#define __FTSYNTH_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /* Embolden a glyph by a `reasonable' value (which is highly a matter of */ - /* taste). This function is actually a convenience function, providing */ - /* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden. */ - /* */ - /* For emboldened outlines the height, width, and advance metrics are */ - /* increased by the strength of the emboldening -- this even affects */ - /* mono-width fonts! */ - /* */ - /* You can also call @FT_Outline_Get_CBox to get precise values. */ - FT_EXPORT( void ) - FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); - - /* Slant an outline glyph to the right by about 12 degrees. */ - FT_EXPORT( void ) - FT_GlyphSlot_Oblique( FT_GlyphSlot slot ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTSYNTH_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftsystem.h b/lib/windows/include/freetype/ftsystem.h deleted file mode 100644 index 2bc9999..0000000 --- a/lib/windows/include/freetype/ftsystem.h +++ /dev/null @@ -1,355 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsystem.h */ -/* */ -/* FreeType low-level system interface definition (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTSYSTEM_H__ -#define __FTSYSTEM_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* system_interface */ - /* */ - /* <Title> */ - /* System Interface */ - /* */ - /* <Abstract> */ - /* How FreeType manages memory and i/o. */ - /* */ - /* <Description> */ - /* This section contains various definitions related to memory */ - /* management and i/o access. You need to understand this */ - /* information if you want to use a custom memory manager or you own */ - /* i/o streams. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* M E M O R Y M A N A G E M E N T */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @type: - * FT_Memory - * - * @description: - * A handle to a given memory manager object, defined with an - * @FT_MemoryRec structure. - * - */ - typedef struct FT_MemoryRec_* FT_Memory; - - - /************************************************************************* - * - * @functype: - * FT_Alloc_Func - * - * @description: - * A function used to allocate `size' bytes from `memory'. - * - * @input: - * memory :: - * A handle to the source memory manager. - * - * size :: - * The size in bytes to allocate. - * - * @return: - * Address of new memory block. 0~in case of failure. - * - */ - typedef void* - (*FT_Alloc_Func)( FT_Memory memory, - long size ); - - - /************************************************************************* - * - * @functype: - * FT_Free_Func - * - * @description: - * A function used to release a given block of memory. - * - * @input: - * memory :: - * A handle to the source memory manager. - * - * block :: - * The address of the target memory block. - * - */ - typedef void - (*FT_Free_Func)( FT_Memory memory, - void* block ); - - - /************************************************************************* - * - * @functype: - * FT_Realloc_Func - * - * @description: - * A function used to re-allocate a given block of memory. - * - * @input: - * memory :: - * A handle to the source memory manager. - * - * cur_size :: - * The block's current size in bytes. - * - * new_size :: - * The block's requested new size. - * - * block :: - * The block's current address. - * - * @return: - * New block address. 0~in case of memory shortage. - * - * @note: - * In case of error, the old block must still be available. - * - */ - typedef void* - (*FT_Realloc_Func)( FT_Memory memory, - long cur_size, - long new_size, - void* block ); - - - /************************************************************************* - * - * @struct: - * FT_MemoryRec - * - * @description: - * A structure used to describe a given memory manager to FreeType~2. - * - * @fields: - * user :: - * A generic typeless pointer for user data. - * - * alloc :: - * A pointer type to an allocation function. - * - * free :: - * A pointer type to an memory freeing function. - * - * realloc :: - * A pointer type to a reallocation function. - * - */ - struct FT_MemoryRec_ - { - void* user; - FT_Alloc_Func alloc; - FT_Free_Func free; - FT_Realloc_Func realloc; - }; - - - /*************************************************************************/ - /* */ - /* I / O M A N A G E M E N T */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @type: - * FT_Stream - * - * @description: - * A handle to an input stream. - * - * @also: - * See @FT_StreamRec for the publicly accessible fields of a given - * stream object. - * - */ - typedef struct FT_StreamRec_* FT_Stream; - - - /************************************************************************* - * - * @struct: - * FT_StreamDesc - * - * @description: - * A union type used to store either a long or a pointer. This is used - * to store a file descriptor or a `FILE*' in an input stream. - * - */ - typedef union FT_StreamDesc_ - { - long value; - void* pointer; - - } FT_StreamDesc; - - - /************************************************************************* - * - * @functype: - * FT_Stream_IoFunc - * - * @description: - * A function used to seek and read data from a given input stream. - * - * @input: - * stream :: - * A handle to the source stream. - * - * offset :: - * The offset of read in stream (always from start). - * - * buffer :: - * The address of the read buffer. - * - * count :: - * The number of bytes to read from the stream. - * - * @return: - * The number of bytes effectively read by the stream. - * - * @note: - * This function might be called to perform a seek or skip operation - * with a `count' of~0. A non-zero return value then indicates an - * error. - * - */ - typedef unsigned long - (*FT_Stream_IoFunc)( FT_Stream stream, - unsigned long offset, - unsigned char* buffer, - unsigned long count ); - - - /************************************************************************* - * - * @functype: - * FT_Stream_CloseFunc - * - * @description: - * A function used to close a given input stream. - * - * @input: - * stream :: - * A handle to the target stream. - * - */ - typedef void - (*FT_Stream_CloseFunc)( FT_Stream stream ); - - - /************************************************************************* - * - * @struct: - * FT_StreamRec - * - * @description: - * A structure used to describe an input stream. - * - * @input: - * base :: - * For memory-based streams, this is the address of the first stream - * byte in memory. This field should always be set to NULL for - * disk-based streams. - * - * size :: - * The stream size in bytes. - * - * In case of compressed streams where the size is unknown before - * actually doing the decompression, the value is set to 0x7FFFFFFF. - * (Note that this size value can occur for normal streams also; it is - * thus just a hint.) - * - * pos :: - * The current position within the stream. - * - * descriptor :: - * This field is a union that can hold an integer or a pointer. It is - * used by stream implementations to store file descriptors or `FILE*' - * pointers. - * - * pathname :: - * This field is completely ignored by FreeType. However, it is often - * useful during debugging to use it to store the stream's filename - * (where available). - * - * read :: - * The stream's input function. - * - * close :: - * The stream's close function. - * - * memory :: - * The memory manager to use to preload frames. This is set - * internally by FreeType and shouldn't be touched by stream - * implementations. - * - * cursor :: - * This field is set and used internally by FreeType when parsing - * frames. - * - * limit :: - * This field is set and used internally by FreeType when parsing - * frames. - * - */ - typedef struct FT_StreamRec_ - { - unsigned char* base; - unsigned long size; - unsigned long pos; - - FT_StreamDesc descriptor; - FT_StreamDesc pathname; - FT_Stream_IoFunc read; - FT_Stream_CloseFunc close; - - FT_Memory memory; - unsigned char* cursor; - unsigned char* limit; - - } FT_StreamRec; - - /* */ - - -FT_END_HEADER - -#endif /* __FTSYSTEM_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/fttrigon.h b/lib/windows/include/freetype/fttrigon.h deleted file mode 100644 index 3d821ba..0000000 --- a/lib/windows/include/freetype/fttrigon.h +++ /dev/null @@ -1,350 +0,0 @@ -/***************************************************************************/ -/* */ -/* fttrigon.h */ -/* */ -/* FreeType trigonometric functions (specification). */ -/* */ -/* Copyright 2001-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTTRIGON_H__ -#define __FTTRIGON_H__ - -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* computations */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @type: - * FT_Angle - * - * @description: - * This type is used to model angle values in FreeType. Note that the - * angle is a 16.16 fixed-point value expressed in degrees. - * - */ - typedef FT_Fixed FT_Angle; - - - /************************************************************************* - * - * @macro: - * FT_ANGLE_PI - * - * @description: - * The angle pi expressed in @FT_Angle units. - * - */ -#define FT_ANGLE_PI ( 180L << 16 ) - - - /************************************************************************* - * - * @macro: - * FT_ANGLE_2PI - * - * @description: - * The angle 2*pi expressed in @FT_Angle units. - * - */ -#define FT_ANGLE_2PI ( FT_ANGLE_PI * 2 ) - - - /************************************************************************* - * - * @macro: - * FT_ANGLE_PI2 - * - * @description: - * The angle pi/2 expressed in @FT_Angle units. - * - */ -#define FT_ANGLE_PI2 ( FT_ANGLE_PI / 2 ) - - - /************************************************************************* - * - * @macro: - * FT_ANGLE_PI4 - * - * @description: - * The angle pi/4 expressed in @FT_Angle units. - * - */ -#define FT_ANGLE_PI4 ( FT_ANGLE_PI / 4 ) - - - /************************************************************************* - * - * @function: - * FT_Sin - * - * @description: - * Return the sinus of a given angle in fixed-point format. - * - * @input: - * angle :: - * The input angle. - * - * @return: - * The sinus value. - * - * @note: - * If you need both the sinus and cosinus for a given angle, use the - * function @FT_Vector_Unit. - * - */ - FT_EXPORT( FT_Fixed ) - FT_Sin( FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Cos - * - * @description: - * Return the cosinus of a given angle in fixed-point format. - * - * @input: - * angle :: - * The input angle. - * - * @return: - * The cosinus value. - * - * @note: - * If you need both the sinus and cosinus for a given angle, use the - * function @FT_Vector_Unit. - * - */ - FT_EXPORT( FT_Fixed ) - FT_Cos( FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Tan - * - * @description: - * Return the tangent of a given angle in fixed-point format. - * - * @input: - * angle :: - * The input angle. - * - * @return: - * The tangent value. - * - */ - FT_EXPORT( FT_Fixed ) - FT_Tan( FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Atan2 - * - * @description: - * Return the arc-tangent corresponding to a given vector (x,y) in - * the 2d plane. - * - * @input: - * x :: - * The horizontal vector coordinate. - * - * y :: - * The vertical vector coordinate. - * - * @return: - * The arc-tangent value (i.e. angle). - * - */ - FT_EXPORT( FT_Angle ) - FT_Atan2( FT_Fixed x, - FT_Fixed y ); - - - /************************************************************************* - * - * @function: - * FT_Angle_Diff - * - * @description: - * Return the difference between two angles. The result is always - * constrained to the ]-PI..PI] interval. - * - * @input: - * angle1 :: - * First angle. - * - * angle2 :: - * Second angle. - * - * @return: - * Constrained value of `value2-value1'. - * - */ - FT_EXPORT( FT_Angle ) - FT_Angle_Diff( FT_Angle angle1, - FT_Angle angle2 ); - - - /************************************************************************* - * - * @function: - * FT_Vector_Unit - * - * @description: - * Return the unit vector corresponding to a given angle. After the - * call, the value of `vec.x' will be `sin(angle)', and the value of - * `vec.y' will be `cos(angle)'. - * - * This function is useful to retrieve both the sinus and cosinus of a - * given angle quickly. - * - * @output: - * vec :: - * The address of target vector. - * - * @input: - * angle :: - * The input angle. - * - */ - FT_EXPORT( void ) - FT_Vector_Unit( FT_Vector* vec, - FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Vector_Rotate - * - * @description: - * Rotate a vector by a given angle. - * - * @inout: - * vec :: - * The address of target vector. - * - * @input: - * angle :: - * The input angle. - * - */ - FT_EXPORT( void ) - FT_Vector_Rotate( FT_Vector* vec, - FT_Angle angle ); - - - /************************************************************************* - * - * @function: - * FT_Vector_Length - * - * @description: - * Return the length of a given vector. - * - * @input: - * vec :: - * The address of target vector. - * - * @return: - * The vector length, expressed in the same units that the original - * vector coordinates. - * - */ - FT_EXPORT( FT_Fixed ) - FT_Vector_Length( FT_Vector* vec ); - - - /************************************************************************* - * - * @function: - * FT_Vector_Polarize - * - * @description: - * Compute both the length and angle of a given vector. - * - * @input: - * vec :: - * The address of source vector. - * - * @output: - * length :: - * The vector length. - * - * angle :: - * The vector angle. - * - */ - FT_EXPORT( void ) - FT_Vector_Polarize( FT_Vector* vec, - FT_Fixed *length, - FT_Angle *angle ); - - - /************************************************************************* - * - * @function: - * FT_Vector_From_Polar - * - * @description: - * Compute vector coordinates from a length and angle. - * - * @output: - * vec :: - * The address of source vector. - * - * @input: - * length :: - * The vector length. - * - * angle :: - * The vector angle. - * - */ - FT_EXPORT( void ) - FT_Vector_From_Polar( FT_Vector* vec, - FT_Fixed length, - FT_Angle angle ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTTRIGON_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftttdrv.h b/lib/windows/include/freetype/ftttdrv.h deleted file mode 100644 index f56040b..0000000 --- a/lib/windows/include/freetype/ftttdrv.h +++ /dev/null @@ -1,233 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftttdrv.h */ -/* */ -/* FreeType API for controlling the TrueType driver */ -/* (specification only). */ -/* */ -/* Copyright 2013-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTTTDRV_H__ -#define __FTTTDRV_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /************************************************************************** - * - * @section: - * tt_driver - * - * @title: - * The TrueType driver - * - * @abstract: - * Controlling the TrueType driver module. - * - * @description: - * While FreeType's TrueType driver doesn't expose API functions by - * itself, it is possible to control its behaviour with @FT_Property_Set - * and @FT_Property_Get. The following lists the available properties - * together with the necessary macros and structures. - * - * The TrueType driver's module name is `truetype'. - * - */ - - - /************************************************************************** - * - * @property: - * interpreter-version - * - * @description: - * Currently, two versions are available, representing the bytecode - * interpreter with and without subpixel hinting support, - * respectively. The default is subpixel support if - * TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel - * support otherwise (since it isn't available then). - * - * If subpixel hinting is on, many TrueType bytecode instructions behave - * differently compared to B/W or grayscale rendering (except if `native - * ClearType' is selected by the font). The main idea is to render at a - * much increased horizontal resolution, then sampling down the created - * output to subpixel precision. However, many older fonts are not - * suited to this and must be specially taken care of by applying - * (hardcoded) font-specific tweaks. - * - * Details on subpixel hinting and some of the necessary tweaks can be - * found in Greg Hitchcock's whitepaper at - * `http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'. - * - * The following example code demonstrates how to activate subpixel - * hinting (omitting the error handling). - * - * { - * FT_Library library; - * FT_Face face; - * FT_UInt interpreter_version = TT_INTERPRETER_VERSION_38; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "truetype", - * "interpreter-version", - * &interpreter_version ); - * } - * - * @note: - * This property can be used with @FT_Property_Get also. - * - */ - - - /************************************************************************** - * - * @enum: - * TT_INTERPRETER_VERSION_XXX - * - * @description: - * A list of constants used for the @interpreter-version property to - * select the hinting engine for Truetype fonts. - * - * The numeric value in the constant names represents the version - * number as returned by the `GETINFO' bytecode instruction. - * - * @values: - * TT_INTERPRETER_VERSION_35 :: - * Version~35 corresponds to MS rasterizer v.1.7 as used e.g. in - * Windows~98; only grayscale and B/W rasterizing is supported. - * - * TT_INTERPRETER_VERSION_38 :: - * Version~38 corresponds to MS rasterizer v.1.9; it is roughly - * equivalent to the hinting provided by DirectWrite ClearType (as - * can be found, for example, in the Internet Explorer~9 running on - * Windows~7). - * - * @note: - * This property controls the behaviour of the bytecode interpreter - * and thus how outlines get hinted. It does *not* control how glyph - * get rasterized! In particular, it does not control subpixel color - * filtering. - * - * If FreeType has not been compiled with configuration option - * FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version~38 causes an - * `FT_Err_Unimplemented_Feature' error. - * - * Depending on the graphics framework, Microsoft uses different - * bytecode and rendering engines. As a consequence, the version - * numbers returned by a call to the `GETINFO' bytecode instruction are - * more convoluted than desired. - * - * Here are two tables that try to shed some light on the possible - * values for the MS rasterizer engine, together with the additional - * features introduced by it. - * - * { - * GETINFO framework version feature - * ------------------------------------------------------------------- - * 3 GDI (Win 3.1), v1.0 16-bit, first version - * TrueImage - * 33 GDI (Win NT 3.1), v1.5 32-bit - * HP Laserjet - * 34 GDI (Win 95) v1.6 font smoothing, - * new SCANTYPE opcode - * 35 GDI (Win 98/2000) v1.7 (UN)SCALED_COMPONENT_OFFSET - * bits in composite glyphs - * 36 MGDI (Win CE 2) v1.6+ classic ClearType - * 37 GDI (XP and later), v1.8 ClearType - * GDI+ old (before Vista) - * 38 GDI+ old (Vista, Win 7), v1.9 subpixel ClearType, - * WPF Y-direction ClearType, - * additional error checking - * 39 DWrite (before Win 8) v2.0 subpixel ClearType flags - * in GETINFO opcode, - * bug fixes - * 40 GDI+ (after Win 7), v2.1 Y-direction ClearType flag - * DWrite (Win 8) in GETINFO opcode, - * Gray ClearType - * } - * - * The `version' field gives a rough orientation only, since some - * applications provided certain features much earlier (as an example, - * Microsoft Reader used subpixel and Y-direction ClearType already in - * Windows 2000). Similarly, updates to a given framework might include - * improved hinting support. - * - * { - * version sampling rendering comment - * x y x y - * -------------------------------------------------------------- - * v1.0 normal normal B/W B/W bi-level - * v1.6 high high gray gray grayscale - * v1.8 high normal color-filter B/W (GDI) ClearType - * v1.9 high high color-filter gray Color ClearType - * v2.1 high normal gray B/W Gray ClearType - * v2.1 high high gray gray Gray ClearType - * } - * - * Color and Gray ClearType are the two available variants of - * `Y-direction ClearType', meaning grayscale rasterization along the - * Y-direction; the name used in the TrueType specification for this - * feature is `symmetric smoothing'. `Classic ClearType' is the - * original algorithm used before introducing a modified version in - * Win~XP. Another name for v1.6's grayscale rendering is `font - * smoothing', and `Color ClearType' is sometimes also called `DWrite - * ClearType'. To differentiate between today's Color ClearType and the - * earlier ClearType variant with B/W rendering along the vertical axis, - * the latter is sometimes called `GDI ClearType'. - * - * `Normal' and `high' sampling describe the (virtual) resolution to - * access the rasterized outline after the hinting process. `Normal' - * means 1 sample per grid line (i.e., B/W). In the current Microsoft - * implementation, `high' means an extra virtual resolution of 16x16 (or - * 16x1) grid lines per pixel for bytecode instructions like `MIRP'. - * After hinting, these 16 grid lines are mapped to 6x5 (or 6x1) grid - * lines for color filtering if Color ClearType is activated. - * - * Note that `Gray ClearType' is essentially the same as v1.6's - * grayscale rendering. However, the GETINFO instruction handles it - * differently: v1.6 returns bit~12 (hinting for grayscale), while v2.1 - * returns bits~13 (hinting for ClearType), 18 (symmetrical smoothing), - * and~19 (Gray ClearType). Also, this mode respects bits 2 and~3 for - * the version~1 gasp table exclusively (like Color ClearType), while - * v1.6 only respects the values of version~0 (bits 0 and~1). - * - * FreeType doesn't provide all capabilities of the most recent - * ClearType incarnation, thus we identify our subpixel support as - * version~38. - * - */ -#define TT_INTERPRETER_VERSION_35 35 -#define TT_INTERPRETER_VERSION_38 38 - - /* */ - - -FT_END_HEADER - - -#endif /* __FTTTDRV_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/fttypes.h b/lib/windows/include/freetype/fttypes.h deleted file mode 100644 index 706a1be..0000000 --- a/lib/windows/include/freetype/fttypes.h +++ /dev/null @@ -1,602 +0,0 @@ -/***************************************************************************/ -/* */ -/* fttypes.h */ -/* */ -/* FreeType simple types definitions (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTTYPES_H__ -#define __FTTYPES_H__ - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_SYSTEM_H -#include FT_IMAGE_H - -#include <stddef.h> - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /* <Title> */ - /* Basic Data Types */ - /* */ - /* <Abstract> */ - /* The basic data types defined by the library. */ - /* */ - /* <Description> */ - /* This section contains the basic data types defined by FreeType~2, */ - /* ranging from simple scalar types to bitmap descriptors. More */ - /* font-specific structures are defined in a different section. */ - /* */ - /* <Order> */ - /* FT_Byte */ - /* FT_Bytes */ - /* FT_Char */ - /* FT_Int */ - /* FT_UInt */ - /* FT_Int16 */ - /* FT_UInt16 */ - /* FT_Int32 */ - /* FT_UInt32 */ - /* FT_Int64 */ - /* FT_UInt64 */ - /* FT_Short */ - /* FT_UShort */ - /* FT_Long */ - /* FT_ULong */ - /* FT_Bool */ - /* FT_Offset */ - /* FT_PtrDist */ - /* FT_String */ - /* FT_Tag */ - /* FT_Error */ - /* FT_Fixed */ - /* FT_Pointer */ - /* FT_Pos */ - /* FT_Vector */ - /* FT_BBox */ - /* FT_Matrix */ - /* FT_FWord */ - /* FT_UFWord */ - /* FT_F2Dot14 */ - /* FT_UnitVector */ - /* FT_F26Dot6 */ - /* FT_Data */ - /* */ - /* FT_MAKE_TAG */ - /* */ - /* FT_Generic */ - /* FT_Generic_Finalizer */ - /* */ - /* FT_Bitmap */ - /* FT_Pixel_Mode */ - /* FT_Palette_Mode */ - /* FT_Glyph_Format */ - /* FT_IMAGE_TAG */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Bool */ - /* */ - /* <Description> */ - /* A typedef of unsigned char, used for simple booleans. As usual, */ - /* values 1 and~0 represent true and false, respectively. */ - /* */ - typedef unsigned char FT_Bool; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_FWord */ - /* */ - /* <Description> */ - /* A signed 16-bit integer used to store a distance in original font */ - /* units. */ - /* */ - typedef signed short FT_FWord; /* distance in FUnits */ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UFWord */ - /* */ - /* <Description> */ - /* An unsigned 16-bit integer used to store a distance in original */ - /* font units. */ - /* */ - typedef unsigned short FT_UFWord; /* unsigned distance */ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Char */ - /* */ - /* <Description> */ - /* A simple typedef for the _signed_ char type. */ - /* */ - typedef signed char FT_Char; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Byte */ - /* */ - /* <Description> */ - /* A simple typedef for the _unsigned_ char type. */ - /* */ - typedef unsigned char FT_Byte; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Bytes */ - /* */ - /* <Description> */ - /* A typedef for constant memory areas. */ - /* */ - typedef const FT_Byte* FT_Bytes; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Tag */ - /* */ - /* <Description> */ - /* A typedef for 32-bit tags (as used in the SFNT format). */ - /* */ - typedef FT_UInt32 FT_Tag; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_String */ - /* */ - /* <Description> */ - /* A simple typedef for the char type, usually used for strings. */ - /* */ - typedef char FT_String; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Short */ - /* */ - /* <Description> */ - /* A typedef for signed short. */ - /* */ - typedef signed short FT_Short; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UShort */ - /* */ - /* <Description> */ - /* A typedef for unsigned short. */ - /* */ - typedef unsigned short FT_UShort; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Int */ - /* */ - /* <Description> */ - /* A typedef for the int type. */ - /* */ - typedef signed int FT_Int; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UInt */ - /* */ - /* <Description> */ - /* A typedef for the unsigned int type. */ - /* */ - typedef unsigned int FT_UInt; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Long */ - /* */ - /* <Description> */ - /* A typedef for signed long. */ - /* */ - typedef signed long FT_Long; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_ULong */ - /* */ - /* <Description> */ - /* A typedef for unsigned long. */ - /* */ - typedef unsigned long FT_ULong; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_F2Dot14 */ - /* */ - /* <Description> */ - /* A signed 2.14 fixed-point type used for unit vectors. */ - /* */ - typedef signed short FT_F2Dot14; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_F26Dot6 */ - /* */ - /* <Description> */ - /* A signed 26.6 fixed-point type used for vectorial pixel */ - /* coordinates. */ - /* */ - typedef signed long FT_F26Dot6; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Fixed */ - /* */ - /* <Description> */ - /* This type is used to store 16.16 fixed-point values, like scaling */ - /* values or matrix coefficients. */ - /* */ - typedef signed long FT_Fixed; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Error */ - /* */ - /* <Description> */ - /* The FreeType error code type. A value of~0 is always interpreted */ - /* as a successful operation. */ - /* */ - typedef int FT_Error; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Pointer */ - /* */ - /* <Description> */ - /* A simple typedef for a typeless pointer. */ - /* */ - typedef void* FT_Pointer; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Offset */ - /* */ - /* <Description> */ - /* This is equivalent to the ANSI~C `size_t' type, i.e., the largest */ - /* _unsigned_ integer type used to express a file size or position, */ - /* or a memory block size. */ - /* */ - typedef size_t FT_Offset; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_PtrDist */ - /* */ - /* <Description> */ - /* This is equivalent to the ANSI~C `ptrdiff_t' type, i.e., the */ - /* largest _signed_ integer type used to express the distance */ - /* between two pointers. */ - /* */ - typedef ft_ptrdiff_t FT_PtrDist; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_UnitVector */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2D vector unit vector. Uses */ - /* FT_F2Dot14 types. */ - /* */ - /* <Fields> */ - /* x :: Horizontal coordinate. */ - /* */ - /* y :: Vertical coordinate. */ - /* */ - typedef struct FT_UnitVector_ - { - FT_F2Dot14 x; - FT_F2Dot14 y; - - } FT_UnitVector; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Matrix */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2x2 matrix. Coefficients are */ - /* in 16.16 fixed-point format. The computation performed is: */ - /* */ - /* { */ - /* x' = x*xx + y*xy */ - /* y' = x*yx + y*yy */ - /* } */ - /* */ - /* <Fields> */ - /* xx :: Matrix coefficient. */ - /* */ - /* xy :: Matrix coefficient. */ - /* */ - /* yx :: Matrix coefficient. */ - /* */ - /* yy :: Matrix coefficient. */ - /* */ - typedef struct FT_Matrix_ - { - FT_Fixed xx, xy; - FT_Fixed yx, yy; - - } FT_Matrix; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Data */ - /* */ - /* <Description> */ - /* Read-only binary data represented as a pointer and a length. */ - /* */ - /* <Fields> */ - /* pointer :: The data. */ - /* */ - /* length :: The length of the data in bytes. */ - /* */ - typedef struct FT_Data_ - { - const FT_Byte* pointer; - FT_Int length; - - } FT_Data; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Generic_Finalizer */ - /* */ - /* <Description> */ - /* Describe a function used to destroy the `client' data of any */ - /* FreeType object. See the description of the @FT_Generic type for */ - /* details of usage. */ - /* */ - /* <Input> */ - /* The address of the FreeType object that is under finalization. */ - /* Its client data is accessed through its `generic' field. */ - /* */ - typedef void (*FT_Generic_Finalizer)(void* object); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Generic */ - /* */ - /* <Description> */ - /* Client applications often need to associate their own data to a */ - /* variety of FreeType core objects. For example, a text layout API */ - /* might want to associate a glyph cache to a given size object. */ - /* */ - /* Some FreeType object contains a `generic' field, of type */ - /* FT_Generic, which usage is left to client applications and font */ - /* servers. */ - /* */ - /* It can be used to store a pointer to client-specific data, as well */ - /* as the address of a `finalizer' function, which will be called by */ - /* FreeType when the object is destroyed (for example, the previous */ - /* client example would put the address of the glyph cache destructor */ - /* in the `finalizer' field). */ - /* */ - /* <Fields> */ - /* data :: A typeless pointer to any client-specified data. This */ - /* field is completely ignored by the FreeType library. */ - /* */ - /* finalizer :: A pointer to a `generic finalizer' function, which */ - /* will be called when the object is destroyed. If this */ - /* field is set to NULL, no code will be called. */ - /* */ - typedef struct FT_Generic_ - { - void* data; - FT_Generic_Finalizer finalizer; - - } FT_Generic; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_MAKE_TAG */ - /* */ - /* <Description> */ - /* This macro converts four-letter tags that are used to label */ - /* TrueType tables into an unsigned long, to be used within FreeType. */ - /* */ - /* <Note> */ - /* The produced values *must* be 32-bit integers. Don't redefine */ - /* this macro. */ - /* */ -#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \ - (FT_Tag) \ - ( ( (FT_ULong)_x1 << 24 ) | \ - ( (FT_ULong)_x2 << 16 ) | \ - ( (FT_ULong)_x3 << 8 ) | \ - (FT_ULong)_x4 ) - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* L I S T M A N A G E M E N T */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* list_processing */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_ListNode */ - /* */ - /* <Description> */ - /* Many elements and objects in FreeType are listed through an */ - /* @FT_List record (see @FT_ListRec). As its name suggests, an */ - /* FT_ListNode is a handle to a single list element. */ - /* */ - typedef struct FT_ListNodeRec_* FT_ListNode; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_List */ - /* */ - /* <Description> */ - /* A handle to a list record (see @FT_ListRec). */ - /* */ - typedef struct FT_ListRec_* FT_List; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ListNodeRec */ - /* */ - /* <Description> */ - /* A structure used to hold a single list element. */ - /* */ - /* <Fields> */ - /* prev :: The previous element in the list. NULL if first. */ - /* */ - /* next :: The next element in the list. NULL if last. */ - /* */ - /* data :: A typeless pointer to the listed object. */ - /* */ - typedef struct FT_ListNodeRec_ - { - FT_ListNode prev; - FT_ListNode next; - void* data; - - } FT_ListNodeRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ListRec */ - /* */ - /* <Description> */ - /* A structure used to hold a simple doubly-linked list. These are */ - /* used in many parts of FreeType. */ - /* */ - /* <Fields> */ - /* head :: The head (first element) of doubly-linked list. */ - /* */ - /* tail :: The tail (last element) of doubly-linked list. */ - /* */ - typedef struct FT_ListRec_ - { - FT_ListNode head; - FT_ListNode tail; - - } FT_ListRec; - - /* */ - - -#define FT_IS_EMPTY( list ) ( (list).head == 0 ) -#define FT_BOOL( x ) ( (FT_Bool)( x ) ) - - /* concatenate C tokens */ -#define FT_ERR_XCAT( x, y ) x ## y -#define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y ) - - /* see `ftmoderr.h' for descriptions of the following macros */ - -#define FT_ERR( e ) FT_ERR_CAT( FT_ERR_PREFIX, e ) - -#define FT_ERROR_BASE( x ) ( (x) & 0xFF ) -#define FT_ERROR_MODULE( x ) ( (x) & 0xFF00U ) - -#define FT_ERR_EQ( x, e ) \ - ( FT_ERROR_BASE( x ) == FT_ERROR_BASE( FT_ERR( e ) ) ) -#define FT_ERR_NEQ( x, e ) \ - ( FT_ERROR_BASE( x ) != FT_ERROR_BASE( FT_ERR( e ) ) ) - - -FT_END_HEADER - -#endif /* __FTTYPES_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ftwinfnt.h b/lib/windows/include/freetype/ftwinfnt.h deleted file mode 100644 index caedaa1..0000000 --- a/lib/windows/include/freetype/ftwinfnt.h +++ /dev/null @@ -1,275 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftwinfnt.h */ -/* */ -/* FreeType API for accessing Windows fnt-specific data. */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTWINFNT_H__ -#define __FTWINFNT_H__ - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* winfnt_fonts */ - /* */ - /* <Title> */ - /* Window FNT Files */ - /* */ - /* <Abstract> */ - /* Windows FNT specific API. */ - /* */ - /* <Description> */ - /* This section contains the declaration of Windows FNT specific */ - /* functions. */ - /* */ - /*************************************************************************/ - - - /************************************************************************* - * - * @enum: - * FT_WinFNT_ID_XXX - * - * @description: - * A list of valid values for the `charset' byte in - * @FT_WinFNT_HeaderRec. Exact mapping tables for the various cpXXXX - * encodings (except for cp1361) can be found at - * ftp://ftp.unicode.org/Public in the MAPPINGS/VENDORS/MICSFT/WINDOWS - * subdirectory. cp1361 is roughly a superset of - * MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT. - * - * @values: - * FT_WinFNT_ID_DEFAULT :: - * This is used for font enumeration and font creation as a - * `don't care' value. Valid font files don't contain this value. - * When querying for information about the character set of the font - * that is currently selected into a specified device context, this - * return value (of the related Windows API) simply denotes failure. - * - * FT_WinFNT_ID_SYMBOL :: - * There is no known mapping table available. - * - * FT_WinFNT_ID_MAC :: - * Mac Roman encoding. - * - * FT_WinFNT_ID_OEM :: - * From Michael Pöttgen <michael@poettgen.de>: - * - * The `Windows Font Mapping' article says that FT_WinFNT_ID_OEM - * is used for the charset of vector fonts, like `modern.fon', - * `roman.fon', and `script.fon' on Windows. - * - * The `CreateFont' documentation says: The FT_WinFNT_ID_OEM value - * specifies a character set that is operating-system dependent. - * - * The `IFIMETRICS' documentation from the `Windows Driver - * Development Kit' says: This font supports an OEM-specific - * character set. The OEM character set is system dependent. - * - * In general OEM, as opposed to ANSI (i.e., cp1252), denotes the - * second default codepage that most international versions of - * Windows have. It is one of the OEM codepages from - * - * https://msdn.microsoft.com/en-us/goglobal/bb964655, - * - * and is used for the `DOS boxes', to support legacy applications. - * A German Windows version for example usually uses ANSI codepage - * 1252 and OEM codepage 850. - * - * FT_WinFNT_ID_CP874 :: - * A superset of Thai TIS 620 and ISO 8859-11. - * - * FT_WinFNT_ID_CP932 :: - * A superset of Japanese Shift-JIS (with minor deviations). - * - * FT_WinFNT_ID_CP936 :: - * A superset of simplified Chinese GB 2312-1980 (with different - * ordering and minor deviations). - * - * FT_WinFNT_ID_CP949 :: - * A superset of Korean Hangul KS~C 5601-1987 (with different - * ordering and minor deviations). - * - * FT_WinFNT_ID_CP950 :: - * A superset of traditional Chinese Big~5 ETen (with different - * ordering and minor deviations). - * - * FT_WinFNT_ID_CP1250 :: - * A superset of East European ISO 8859-2 (with slightly different - * ordering). - * - * FT_WinFNT_ID_CP1251 :: - * A superset of Russian ISO 8859-5 (with different ordering). - * - * FT_WinFNT_ID_CP1252 :: - * ANSI encoding. A superset of ISO 8859-1. - * - * FT_WinFNT_ID_CP1253 :: - * A superset of Greek ISO 8859-7 (with minor modifications). - * - * FT_WinFNT_ID_CP1254 :: - * A superset of Turkish ISO 8859-9. - * - * FT_WinFNT_ID_CP1255 :: - * A superset of Hebrew ISO 8859-8 (with some modifications). - * - * FT_WinFNT_ID_CP1256 :: - * A superset of Arabic ISO 8859-6 (with different ordering). - * - * FT_WinFNT_ID_CP1257 :: - * A superset of Baltic ISO 8859-13 (with some deviations). - * - * FT_WinFNT_ID_CP1258 :: - * For Vietnamese. This encoding doesn't cover all necessary - * characters. - * - * FT_WinFNT_ID_CP1361 :: - * Korean (Johab). - */ - -#define FT_WinFNT_ID_CP1252 0 -#define FT_WinFNT_ID_DEFAULT 1 -#define FT_WinFNT_ID_SYMBOL 2 -#define FT_WinFNT_ID_MAC 77 -#define FT_WinFNT_ID_CP932 128 -#define FT_WinFNT_ID_CP949 129 -#define FT_WinFNT_ID_CP1361 130 -#define FT_WinFNT_ID_CP936 134 -#define FT_WinFNT_ID_CP950 136 -#define FT_WinFNT_ID_CP1253 161 -#define FT_WinFNT_ID_CP1254 162 -#define FT_WinFNT_ID_CP1258 163 -#define FT_WinFNT_ID_CP1255 177 -#define FT_WinFNT_ID_CP1256 178 -#define FT_WinFNT_ID_CP1257 186 -#define FT_WinFNT_ID_CP1251 204 -#define FT_WinFNT_ID_CP874 222 -#define FT_WinFNT_ID_CP1250 238 -#define FT_WinFNT_ID_OEM 255 - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_WinFNT_HeaderRec */ - /* */ - /* <Description> */ - /* Windows FNT Header info. */ - /* */ - typedef struct FT_WinFNT_HeaderRec_ - { - FT_UShort version; - FT_ULong file_size; - FT_Byte copyright[60]; - FT_UShort file_type; - FT_UShort nominal_point_size; - FT_UShort vertical_resolution; - FT_UShort horizontal_resolution; - FT_UShort ascent; - FT_UShort internal_leading; - FT_UShort external_leading; - FT_Byte italic; - FT_Byte underline; - FT_Byte strike_out; - FT_UShort weight; - FT_Byte charset; - FT_UShort pixel_width; - FT_UShort pixel_height; - FT_Byte pitch_and_family; - FT_UShort avg_width; - FT_UShort max_width; - FT_Byte first_char; - FT_Byte last_char; - FT_Byte default_char; - FT_Byte break_char; - FT_UShort bytes_per_row; - FT_ULong device_offset; - FT_ULong face_name_offset; - FT_ULong bits_pointer; - FT_ULong bits_offset; - FT_Byte reserved; - FT_ULong flags; - FT_UShort A_space; - FT_UShort B_space; - FT_UShort C_space; - FT_UShort color_table_offset; - FT_ULong reserved1[4]; - - } FT_WinFNT_HeaderRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_WinFNT_Header */ - /* */ - /* <Description> */ - /* A handle to an @FT_WinFNT_HeaderRec structure. */ - /* */ - typedef struct FT_WinFNT_HeaderRec_* FT_WinFNT_Header; - - - /********************************************************************** - * - * @function: - * FT_Get_WinFNT_Header - * - * @description: - * Retrieve a Windows FNT font info header. - * - * @input: - * face :: A handle to the input face. - * - * @output: - * aheader :: The WinFNT header. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with Windows FNT faces, returning an error - * otherwise. - */ - FT_EXPORT( FT_Error ) - FT_Get_WinFNT_Header( FT_Face face, - FT_WinFNT_HeaderRec *aheader ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTWINFNT_H__ */ - - -/* END */ - - -/* Local Variables: */ -/* coding: utf-8 */ -/* End: */ diff --git a/lib/windows/include/freetype/internal/autohint.h b/lib/windows/include/freetype/internal/autohint.h deleted file mode 100644 index 8d5a977..0000000 --- a/lib/windows/include/freetype/internal/autohint.h +++ /dev/null @@ -1,244 +0,0 @@ -/***************************************************************************/ -/* */ -/* autohint.h */ -/* */ -/* High-level `autohint' module-specific interface (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* The auto-hinter is used to load and automatically hint glyphs if a */ - /* format-specific hinter isn't available. */ - /* */ - /*************************************************************************/ - - -#ifndef __AUTOHINT_H__ -#define __AUTOHINT_H__ - - - /*************************************************************************/ - /* */ - /* A small technical note regarding automatic hinting in order to */ - /* clarify this module interface. */ - /* */ - /* An automatic hinter might compute two kinds of data for a given face: */ - /* */ - /* - global hints: Usually some metrics that describe global properties */ - /* of the face. It is computed by scanning more or less */ - /* aggressively the glyphs in the face, and thus can be */ - /* very slow to compute (even if the size of global */ - /* hints is really small). */ - /* */ - /* - glyph hints: These describe some important features of the glyph */ - /* outline, as well as how to align them. They are */ - /* generally much faster to compute than global hints. */ - /* */ - /* The current FreeType auto-hinter does a pretty good job while */ - /* performing fast computations for both global and glyph hints. */ - /* However, we might be interested in introducing more complex and */ - /* powerful algorithms in the future, like the one described in the John */ - /* D. Hobby paper, which unfortunately requires a lot more horsepower. */ - /* */ - /* Because a sufficiently sophisticated font management system would */ - /* typically implement an LRU cache of opened face objects to reduce */ - /* memory usage, it is a good idea to be able to avoid recomputing */ - /* global hints every time the same face is re-opened. */ - /* */ - /* We thus provide the ability to cache global hints outside of the face */ - /* object, in order to speed up font re-opening time. Of course, this */ - /* feature is purely optional, so most client programs won't even notice */ - /* it. */ - /* */ - /* I initially thought that it would be a good idea to cache the glyph */ - /* hints too. However, my general idea now is that if you really need */ - /* to cache these too, you are simply in need of a new font format, */ - /* where all this information could be stored within the font file and */ - /* decoded on the fly. */ - /* */ - /*************************************************************************/ - - -#include <ft2build.h> -#include FT_FREETYPE_H - - -FT_BEGIN_HEADER - - - typedef struct FT_AutoHinterRec_ *FT_AutoHinter; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_AutoHinter_GlobalGetFunc */ - /* */ - /* <Description> */ - /* Retrieve the global hints computed for a given face object. The */ - /* resulting data is dissociated from the face and will survive a */ - /* call to FT_Done_Face(). It must be discarded through the API */ - /* FT_AutoHinter_GlobalDoneFunc(). */ - /* */ - /* <Input> */ - /* hinter :: A handle to the source auto-hinter. */ - /* */ - /* face :: A handle to the source face object. */ - /* */ - /* <Output> */ - /* global_hints :: A typeless pointer to the global hints. */ - /* */ - /* global_len :: The size in bytes of the global hints. */ - /* */ - typedef void - (*FT_AutoHinter_GlobalGetFunc)( FT_AutoHinter hinter, - FT_Face face, - void** global_hints, - long* global_len ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_AutoHinter_GlobalDoneFunc */ - /* */ - /* <Description> */ - /* Discard the global hints retrieved through */ - /* FT_AutoHinter_GlobalGetFunc(). This is the only way these hints */ - /* are freed from memory. */ - /* */ - /* <Input> */ - /* hinter :: A handle to the auto-hinter module. */ - /* */ - /* global :: A pointer to retrieved global hints to discard. */ - /* */ - typedef void - (*FT_AutoHinter_GlobalDoneFunc)( FT_AutoHinter hinter, - void* global ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_AutoHinter_GlobalResetFunc */ - /* */ - /* <Description> */ - /* This function is used to recompute the global metrics in a given */ - /* font. This is useful when global font data changes (e.g. Multiple */ - /* Masters fonts where blend coordinates change). */ - /* */ - /* <Input> */ - /* hinter :: A handle to the source auto-hinter. */ - /* */ - /* face :: A handle to the face. */ - /* */ - typedef void - (*FT_AutoHinter_GlobalResetFunc)( FT_AutoHinter hinter, - FT_Face face ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_AutoHinter_GlyphLoadFunc */ - /* */ - /* <Description> */ - /* This function is used to load, scale, and automatically hint a */ - /* glyph from a given face. */ - /* */ - /* <Input> */ - /* face :: A handle to the face. */ - /* */ - /* glyph_index :: The glyph index. */ - /* */ - /* load_flags :: The load flags. */ - /* */ - /* <Note> */ - /* This function is capable of loading composite glyphs by hinting */ - /* each sub-glyph independently (which improves quality). */ - /* */ - /* It will call the font driver with @FT_Load_Glyph, with */ - /* @FT_LOAD_NO_SCALE set. */ - /* */ - typedef FT_Error - (*FT_AutoHinter_GlyphLoadFunc)( FT_AutoHinter hinter, - FT_GlyphSlot slot, - FT_Size size, - FT_UInt glyph_index, - FT_Int32 load_flags ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_AutoHinter_InterfaceRec */ - /* */ - /* <Description> */ - /* The auto-hinter module's interface. */ - /* */ - typedef struct FT_AutoHinter_InterfaceRec_ - { - FT_AutoHinter_GlobalResetFunc reset_face; - FT_AutoHinter_GlobalGetFunc get_global_hints; - FT_AutoHinter_GlobalDoneFunc done_global_hints; - FT_AutoHinter_GlyphLoadFunc load_glyph; - - } FT_AutoHinter_InterfaceRec, *FT_AutoHinter_Interface; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_AUTOHINTER_INTERFACE( \ - class_, \ - reset_face_, \ - get_global_hints_, \ - done_global_hints_, \ - load_glyph_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_AutoHinter_InterfaceRec class_ = \ - { \ - reset_face_, \ - get_global_hints_, \ - done_global_hints_, \ - load_glyph_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_AUTOHINTER_INTERFACE( \ - class_, \ - reset_face_, \ - get_global_hints_, \ - done_global_hints_, \ - load_glyph_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_AutoHinter_InterfaceRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->reset_face = reset_face_; \ - clazz->get_global_hints = get_global_hints_; \ - clazz->done_global_hints = done_global_hints_; \ - clazz->load_glyph = load_glyph_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - -FT_END_HEADER - -#endif /* __AUTOHINT_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/ftcalc.h b/lib/windows/include/freetype/internal/ftcalc.h deleted file mode 100644 index 75752c3..0000000 --- a/lib/windows/include/freetype/internal/ftcalc.h +++ /dev/null @@ -1,406 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftcalc.h */ -/* */ -/* Arithmetic computations (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTCALC_H__ -#define __FTCALC_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* FT_MulDiv() and FT_MulFix() are declared in freetype.h. */ - /* */ - /*************************************************************************/ - -#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER - /* Provide assembler fragments for performance-critical functions. */ - /* These must be defined `static __inline__' with GCC. */ - -#if defined( __CC_ARM ) || defined( __ARMCC__ ) /* RVCT */ - -#define FT_MULFIX_ASSEMBLER FT_MulFix_arm - - /* documentation is in freetype.h */ - - static __inline FT_Int32 - FT_MulFix_arm( FT_Int32 a, - FT_Int32 b ) - { - register FT_Int32 t, t2; - - - __asm - { - smull t2, t, b, a /* (lo=t2,hi=t) = a*b */ - mov a, t, asr #31 /* a = (hi >> 31) */ - add a, a, #0x8000 /* a += 0x8000 */ - adds t2, t2, a /* t2 += a */ - adc t, t, #0 /* t += carry */ - mov a, t2, lsr #16 /* a = t2 >> 16 */ - orr a, a, t, lsl #16 /* a |= t << 16 */ - } - return a; - } - -#endif /* __CC_ARM || __ARMCC__ */ - - -#ifdef __GNUC__ - -#if defined( __arm__ ) && \ - ( !defined( __thumb__ ) || defined( __thumb2__ ) ) && \ - !( defined( __CC_ARM ) || defined( __ARMCC__ ) ) - -#define FT_MULFIX_ASSEMBLER FT_MulFix_arm - - /* documentation is in freetype.h */ - - static __inline__ FT_Int32 - FT_MulFix_arm( FT_Int32 a, - FT_Int32 b ) - { - register FT_Int32 t, t2; - - - __asm__ __volatile__ ( - "smull %1, %2, %4, %3\n\t" /* (lo=%1,hi=%2) = a*b */ - "mov %0, %2, asr #31\n\t" /* %0 = (hi >> 31) */ -#if defined( __clang__ ) && defined( __thumb2__ ) - "add.w %0, %0, #0x8000\n\t" /* %0 += 0x8000 */ -#else - "add %0, %0, #0x8000\n\t" /* %0 += 0x8000 */ -#endif - "adds %1, %1, %0\n\t" /* %1 += %0 */ - "adc %2, %2, #0\n\t" /* %2 += carry */ - "mov %0, %1, lsr #16\n\t" /* %0 = %1 >> 16 */ - "orr %0, %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */ - : "=r"(a), "=&r"(t2), "=&r"(t) - : "r"(a), "r"(b) - : "cc" ); - return a; - } - -#endif /* __arm__ && */ - /* ( __thumb2__ || !__thumb__ ) && */ - /* !( __CC_ARM || __ARMCC__ ) */ - - -#if defined( __i386__ ) - -#define FT_MULFIX_ASSEMBLER FT_MulFix_i386 - - /* documentation is in freetype.h */ - - static __inline__ FT_Int32 - FT_MulFix_i386( FT_Int32 a, - FT_Int32 b ) - { - register FT_Int32 result; - - - __asm__ __volatile__ ( - "imul %%edx\n" - "movl %%edx, %%ecx\n" - "sarl $31, %%ecx\n" - "addl $0x8000, %%ecx\n" - "addl %%ecx, %%eax\n" - "adcl $0, %%edx\n" - "shrl $16, %%eax\n" - "shll $16, %%edx\n" - "addl %%edx, %%eax\n" - : "=a"(result), "=d"(b) - : "a"(a), "d"(b) - : "%ecx", "cc" ); - return result; - } - -#endif /* i386 */ - -#endif /* __GNUC__ */ - - -#ifdef _MSC_VER /* Visual C++ */ - -#ifdef _M_IX86 - -#define FT_MULFIX_ASSEMBLER FT_MulFix_i386 - - /* documentation is in freetype.h */ - - static __inline FT_Int32 - FT_MulFix_i386( FT_Int32 a, - FT_Int32 b ) - { - register FT_Int32 result; - - __asm - { - mov eax, a - mov edx, b - imul edx - mov ecx, edx - sar ecx, 31 - add ecx, 8000h - add eax, ecx - adc edx, 0 - shr eax, 16 - shl edx, 16 - add eax, edx - mov result, eax - } - return result; - } - -#endif /* _M_IX86 */ - -#endif /* _MSC_VER */ - - -#if defined( __GNUC__ ) && defined( __x86_64__ ) - -#define FT_MULFIX_ASSEMBLER FT_MulFix_x86_64 - - static __inline__ FT_Int32 - FT_MulFix_x86_64( FT_Int32 a, - FT_Int32 b ) - { - /* Temporarily disable the warning that C90 doesn't support */ - /* `long long'. */ -#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 ) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wlong-long" -#endif - -#if 1 - /* Technically not an assembly fragment, but GCC does a really good */ - /* job at inlining it and generating good machine code for it. */ - long long ret, tmp; - - - ret = (long long)a * b; - tmp = ret >> 63; - ret += 0x8000 + tmp; - - return (FT_Int32)( ret >> 16 ); -#else - - /* For some reason, GCC 4.6 on Ubuntu 12.04 generates invalid machine */ - /* code from the lines below. The main issue is that `wide_a' is not */ - /* properly initialized by sign-extending `a'. Instead, the generated */ - /* machine code assumes that the register that contains `a' on input */ - /* can be used directly as a 64-bit value, which is wrong most of the */ - /* time. */ - long long wide_a = (long long)a; - long long wide_b = (long long)b; - long long result; - - - __asm__ __volatile__ ( - "imul %2, %1\n" - "mov %1, %0\n" - "sar $63, %0\n" - "lea 0x8000(%1, %0), %0\n" - "sar $16, %0\n" - : "=&r"(result), "=&r"(wide_a) - : "r"(wide_b) - : "cc" ); - - return (FT_Int32)result; -#endif - -#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 ) -#pragma GCC diagnostic pop -#endif - } - -#endif /* __GNUC__ && __x86_64__ */ - -#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */ - - -#ifdef FT_CONFIG_OPTION_INLINE_MULFIX -#ifdef FT_MULFIX_ASSEMBLER -#define FT_MulFix( a, b ) FT_MULFIX_ASSEMBLER( (FT_Int32)(a), (FT_Int32)(b) ) -#endif -#endif - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_MulDiv_No_Round */ - /* */ - /* <Description> */ - /* A very simple function used to perform the computation `(a*b)/c' */ - /* (without rounding) with maximum accuracy (it uses a 64-bit */ - /* intermediate integer whenever necessary). */ - /* */ - /* This function isn't necessarily as fast as some processor specific */ - /* operations, but is at least completely portable. */ - /* */ - /* <Input> */ - /* a :: The first multiplier. */ - /* b :: The second multiplier. */ - /* c :: The divisor. */ - /* */ - /* <Return> */ - /* The result of `(a*b)/c'. This function never traps when trying to */ - /* divide by zero; it simply returns `MaxInt' or `MinInt' depending */ - /* on the signs of `a' and `b'. */ - /* */ - FT_BASE( FT_Long ) - FT_MulDiv_No_Round( FT_Long a, - FT_Long b, - FT_Long c ); - - - /* - * A variant of FT_Matrix_Multiply which scales its result afterwards. - * The idea is that both `a' and `b' are scaled by factors of 10 so that - * the values are as precise as possible to get a correct result during - * the 64bit multiplication. Let `sa' and `sb' be the scaling factors of - * `a' and `b', respectively, then the scaling factor of the result is - * `sa*sb'. - */ - FT_BASE( void ) - FT_Matrix_Multiply_Scaled( const FT_Matrix* a, - FT_Matrix *b, - FT_Long scaling ); - - - /* - * A variant of FT_Vector_Transform. See comments for - * FT_Matrix_Multiply_Scaled. - */ - FT_BASE( void ) - FT_Vector_Transform_Scaled( FT_Vector* vector, - const FT_Matrix* matrix, - FT_Long scaling ); - - - /* - * Return -1, 0, or +1, depending on the orientation of a given corner. - * We use the Cartesian coordinate system, with positive vertical values - * going upwards. The function returns +1 if the corner turns to the - * left, -1 to the right, and 0 for undecidable cases. - */ - FT_BASE( FT_Int ) - ft_corner_orientation( FT_Pos in_x, - FT_Pos in_y, - FT_Pos out_x, - FT_Pos out_y ); - - - /* - * Return TRUE if a corner is flat or nearly flat. This is equivalent to - * saying that the corner point is close to its neighbors, or inside an - * ellipse defined by the neighbor focal points to be more precise. - */ - FT_BASE( FT_Int ) - ft_corner_is_flat( FT_Pos in_x, - FT_Pos in_y, - FT_Pos out_x, - FT_Pos out_y ); - - - /* - * Return the most significant bit index. - */ - -#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER -#if defined( __GNUC__ ) && \ - ( __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 4 ) ) - -#if FT_SIZEOF_INT == 4 - -#define FT_MSB( x ) ( 31 - __builtin_clz( x ) ) - -#elif FT_SIZEOF_LONG == 4 - -#define FT_MSB( x ) ( 31 - __builtin_clzl( x ) ) - -#endif - -#endif /* __GNUC__ */ -#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */ - -#ifndef FT_MSB - - FT_BASE( FT_Int ) - FT_MSB( FT_UInt32 z ); - -#endif - - - /* - * Return sqrt(x*x+y*y), which is the same as `FT_Vector_Length' but uses - * two fixed-point arguments instead. - */ - FT_BASE( FT_Fixed ) - FT_Hypot( FT_Fixed x, - FT_Fixed y ); - - -#if 0 - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_SqrtFixed */ - /* */ - /* <Description> */ - /* Computes the square root of a 16.16 fixed-point value. */ - /* */ - /* <Input> */ - /* x :: The value to compute the root for. */ - /* */ - /* <Return> */ - /* The result of `sqrt(x)'. */ - /* */ - /* <Note> */ - /* This function is not very fast. */ - /* */ - FT_BASE( FT_Int32 ) - FT_SqrtFixed( FT_Int32 x ); - -#endif /* 0 */ - - -#define INT_TO_F26DOT6( x ) ( (FT_Long)(x) << 6 ) -#define INT_TO_F2DOT14( x ) ( (FT_Long)(x) << 14 ) -#define INT_TO_FIXED( x ) ( (FT_Long)(x) << 16 ) -#define F2DOT14_TO_FIXED( x ) ( (FT_Long)(x) << 2 ) -#define FLOAT_TO_FIXED( x ) ( (FT_Long)( x * 65536.0 ) ) -#define FIXED_TO_INT( x ) ( FT_RoundFix( x ) >> 16 ) - -#define ROUND_F26DOT6( x ) ( x >= 0 ? ( ( (x) + 32 ) & -64 ) \ - : ( -( ( 32 - (x) ) & -64 ) ) ) - - -FT_END_HEADER - -#endif /* __FTCALC_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/ftdebug.h b/lib/windows/include/freetype/internal/ftdebug.h deleted file mode 100644 index 216c730..0000000 --- a/lib/windows/include/freetype/internal/ftdebug.h +++ /dev/null @@ -1,255 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftdebug.h */ -/* */ -/* Debugging and logging component (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/* */ -/* IMPORTANT: A description of FreeType's debugging support can be */ -/* found in `docs/DEBUG.TXT'. Read it if you need to use or */ -/* understand this code. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTDEBUG_H__ -#define __FTDEBUG_H__ - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_FREETYPE_H - - -FT_BEGIN_HEADER - - - /* force the definition of FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE */ - /* is already defined; this simplifies the following #ifdefs */ - /* */ -#ifdef FT_DEBUG_LEVEL_TRACE -#undef FT_DEBUG_LEVEL_ERROR -#define FT_DEBUG_LEVEL_ERROR -#endif - - - /*************************************************************************/ - /* */ - /* Define the trace enums as well as the trace levels array when they */ - /* are needed. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_TRACE - -#define FT_TRACE_DEF( x ) trace_ ## x , - - /* defining the enumeration */ - typedef enum FT_Trace_ - { -#include FT_INTERNAL_TRACE_H - trace_count - - } FT_Trace; - - - /* defining the array of trace levels, provided by `src/base/ftdebug.c' */ - extern int ft_trace_levels[trace_count]; - -#undef FT_TRACE_DEF - -#endif /* FT_DEBUG_LEVEL_TRACE */ - - - /*************************************************************************/ - /* */ - /* Define the FT_TRACE macro */ - /* */ - /* IMPORTANT! */ - /* */ - /* Each component must define the macro FT_COMPONENT to a valid FT_Trace */ - /* value before using any TRACE macro. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_TRACE - -#define FT_TRACE( level, varformat ) \ - do \ - { \ - if ( ft_trace_levels[FT_COMPONENT] >= level ) \ - FT_Message varformat; \ - } while ( 0 ) - -#else /* !FT_DEBUG_LEVEL_TRACE */ - -#define FT_TRACE( level, varformat ) do { } while ( 0 ) /* nothing */ - -#endif /* !FT_DEBUG_LEVEL_TRACE */ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Trace_Get_Count */ - /* */ - /* <Description> */ - /* Return the number of available trace components. */ - /* */ - /* <Return> */ - /* The number of trace components. 0 if FreeType 2 is not built with */ - /* FT_DEBUG_LEVEL_TRACE definition. */ - /* */ - /* <Note> */ - /* This function may be useful if you want to access elements of */ - /* the internal `ft_trace_levels' array by an index. */ - /* */ - FT_BASE( FT_Int ) - FT_Trace_Get_Count( void ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Trace_Get_Name */ - /* */ - /* <Description> */ - /* Return the name of a trace component. */ - /* */ - /* <Input> */ - /* The index of the trace component. */ - /* */ - /* <Return> */ - /* The name of the trace component. This is a statically allocated */ - /* C string, so do not free it after use. NULL if FreeType 2 is not */ - /* built with FT_DEBUG_LEVEL_TRACE definition. */ - /* */ - /* <Note> */ - /* Use @FT_Trace_Get_Count to get the number of available trace */ - /* components. */ - /* */ - /* This function may be useful if you want to control FreeType 2's */ - /* debug level in your application. */ - /* */ - FT_BASE( const char* ) - FT_Trace_Get_Name( FT_Int idx ); - - - /*************************************************************************/ - /* */ - /* You need two opening and closing parentheses! */ - /* */ - /* Example: FT_TRACE0(( "Value is %i", foo )) */ - /* */ - /* Output of the FT_TRACEX macros is sent to stderr. */ - /* */ - /*************************************************************************/ - -#define FT_TRACE0( varformat ) FT_TRACE( 0, varformat ) -#define FT_TRACE1( varformat ) FT_TRACE( 1, varformat ) -#define FT_TRACE2( varformat ) FT_TRACE( 2, varformat ) -#define FT_TRACE3( varformat ) FT_TRACE( 3, varformat ) -#define FT_TRACE4( varformat ) FT_TRACE( 4, varformat ) -#define FT_TRACE5( varformat ) FT_TRACE( 5, varformat ) -#define FT_TRACE6( varformat ) FT_TRACE( 6, varformat ) -#define FT_TRACE7( varformat ) FT_TRACE( 7, varformat ) - - - /*************************************************************************/ - /* */ - /* Define the FT_ERROR macro. */ - /* */ - /* Output of this macro is sent to stderr. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_ERROR - -#define FT_ERROR( varformat ) FT_Message varformat - -#else /* !FT_DEBUG_LEVEL_ERROR */ - -#define FT_ERROR( varformat ) do { } while ( 0 ) /* nothing */ - -#endif /* !FT_DEBUG_LEVEL_ERROR */ - - - /*************************************************************************/ - /* */ - /* Define the FT_ASSERT and FT_THROW macros. The call to `FT_Throw' */ - /* makes it possible to easily set a breakpoint at this function. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_ERROR - -#define FT_ASSERT( condition ) \ - do \ - { \ - if ( !( condition ) ) \ - FT_Panic( "assertion failed on line %d of file %s\n", \ - __LINE__, __FILE__ ); \ - } while ( 0 ) - -#define FT_THROW( e ) \ - ( FT_Throw( FT_ERR_CAT( FT_ERR_PREFIX, e ), \ - __LINE__, \ - __FILE__ ) | \ - FT_ERR_CAT( FT_ERR_PREFIX, e ) ) - -#else /* !FT_DEBUG_LEVEL_ERROR */ - -#define FT_ASSERT( condition ) do { } while ( 0 ) - -#define FT_THROW( e ) FT_ERR_CAT( FT_ERR_PREFIX, e ) - -#endif /* !FT_DEBUG_LEVEL_ERROR */ - - - /*************************************************************************/ - /* */ - /* Define `FT_Message' and `FT_Panic' when needed. */ - /* */ - /*************************************************************************/ - -#ifdef FT_DEBUG_LEVEL_ERROR - -#include "stdio.h" /* for vfprintf() */ - - /* print a message */ - FT_BASE( void ) - FT_Message( const char* fmt, - ... ); - - /* print a message and exit */ - FT_BASE( void ) - FT_Panic( const char* fmt, - ... ); - - /* report file name and line number of an error */ - FT_BASE( int ) - FT_Throw( FT_Error error, - int line, - const char* file ); - -#endif /* FT_DEBUG_LEVEL_ERROR */ - - - FT_BASE( void ) - ft_debug_init( void ); - -FT_END_HEADER - -#endif /* __FTDEBUG_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/ftdriver.h b/lib/windows/include/freetype/internal/ftdriver.h deleted file mode 100644 index 16856d3..0000000 --- a/lib/windows/include/freetype/internal/ftdriver.h +++ /dev/null @@ -1,409 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftdriver.h */ -/* */ -/* FreeType font driver interface (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTDRIVER_H__ -#define __FTDRIVER_H__ - - -#include <ft2build.h> -#include FT_MODULE_H - - -FT_BEGIN_HEADER - - - typedef FT_Error - (*FT_Face_InitFunc)( FT_Stream stream, - FT_Face face, - FT_Int typeface_index, - FT_Int num_params, - FT_Parameter* parameters ); - - typedef void - (*FT_Face_DoneFunc)( FT_Face face ); - - - typedef FT_Error - (*FT_Size_InitFunc)( FT_Size size ); - - typedef void - (*FT_Size_DoneFunc)( FT_Size size ); - - - typedef FT_Error - (*FT_Slot_InitFunc)( FT_GlyphSlot slot ); - - typedef void - (*FT_Slot_DoneFunc)( FT_GlyphSlot slot ); - - - typedef FT_Error - (*FT_Size_RequestFunc)( FT_Size size, - FT_Size_Request req ); - - typedef FT_Error - (*FT_Size_SelectFunc)( FT_Size size, - FT_ULong size_index ); - - typedef FT_Error - (*FT_Slot_LoadFunc)( FT_GlyphSlot slot, - FT_Size size, - FT_UInt glyph_index, - FT_Int32 load_flags ); - - - typedef FT_UInt - (*FT_CharMap_CharIndexFunc)( FT_CharMap charmap, - FT_Long charcode ); - - typedef FT_Long - (*FT_CharMap_CharNextFunc)( FT_CharMap charmap, - FT_Long charcode ); - - - typedef FT_Error - (*FT_Face_GetKerningFunc)( FT_Face face, - FT_UInt left_glyph, - FT_UInt right_glyph, - FT_Vector* kerning ); - - - typedef FT_Error - (*FT_Face_AttachFunc)( FT_Face face, - FT_Stream stream ); - - - typedef FT_Error - (*FT_Face_GetAdvancesFunc)( FT_Face face, - FT_UInt first, - FT_UInt count, - FT_Int32 flags, - FT_Fixed* advances ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Driver_ClassRec */ - /* */ - /* <Description> */ - /* The font driver class. This structure mostly contains pointers to */ - /* driver methods. */ - /* */ - /* <Fields> */ - /* root :: The parent module. */ - /* */ - /* face_object_size :: The size of a face object in bytes. */ - /* */ - /* size_object_size :: The size of a size object in bytes. */ - /* */ - /* slot_object_size :: The size of a glyph object in bytes. */ - /* */ - /* init_face :: The format-specific face constructor. */ - /* */ - /* done_face :: The format-specific face destructor. */ - /* */ - /* init_size :: The format-specific size constructor. */ - /* */ - /* done_size :: The format-specific size destructor. */ - /* */ - /* init_slot :: The format-specific slot constructor. */ - /* */ - /* done_slot :: The format-specific slot destructor. */ - /* */ - /* */ - /* load_glyph :: A function handle to load a glyph to a slot. */ - /* This field is mandatory! */ - /* */ - /* get_kerning :: A function handle to return the unscaled */ - /* kerning for a given pair of glyphs. Can be */ - /* set to 0 if the format doesn't support */ - /* kerning. */ - /* */ - /* attach_file :: This function handle is used to read */ - /* additional data for a face from another */ - /* file/stream. For example, this can be used to */ - /* add data from AFM or PFM files on a Type 1 */ - /* face, or a CIDMap on a CID-keyed face. */ - /* */ - /* get_advances :: A function handle used to return advance */ - /* widths of `count' glyphs (in font units), */ - /* starting at `first'. The `vertical' flag must */ - /* be set to get vertical advance heights. The */ - /* `advances' buffer is caller-allocated. */ - /* The idea of this function is to be able to */ - /* perform device-independent text layout without */ - /* loading a single glyph image. */ - /* */ - /* request_size :: A handle to a function used to request the new */ - /* character size. Can be set to 0 if the */ - /* scaling done in the base layer suffices. */ - /* */ - /* select_size :: A handle to a function used to select a new */ - /* fixed size. It is used only if */ - /* @FT_FACE_FLAG_FIXED_SIZES is set. Can be set */ - /* to 0 if the scaling done in the base layer */ - /* suffices. */ - /* <Note> */ - /* Most function pointers, with the exception of `load_glyph', can be */ - /* set to 0 to indicate a default behaviour. */ - /* */ - typedef struct FT_Driver_ClassRec_ - { - FT_Module_Class root; - - FT_Long face_object_size; - FT_Long size_object_size; - FT_Long slot_object_size; - - FT_Face_InitFunc init_face; - FT_Face_DoneFunc done_face; - - FT_Size_InitFunc init_size; - FT_Size_DoneFunc done_size; - - FT_Slot_InitFunc init_slot; - FT_Slot_DoneFunc done_slot; - - FT_Slot_LoadFunc load_glyph; - - FT_Face_GetKerningFunc get_kerning; - FT_Face_AttachFunc attach_file; - FT_Face_GetAdvancesFunc get_advances; - - /* since version 2.2 */ - FT_Size_RequestFunc request_size; - FT_Size_SelectFunc select_size; - - } FT_Driver_ClassRec, *FT_Driver_Class; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DECLARE_DRIVER */ - /* */ - /* <Description> */ - /* Used to create a forward declaration of an FT_Driver_ClassRec */ - /* struct instance. */ - /* */ - /* <Macro> */ - /* FT_DEFINE_DRIVER */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Driver_ClassRec struct. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is defined a `create' function has to be */ - /* called with a pointer where the allocated structure is returned. */ - /* And when it is no longer needed a `destroy' function needs to be */ - /* called to release that allocation. */ - /* */ - /* `fcinit.c' (ft_create_default_module_classes) already contains a */ - /* mechanism to call these functions for the default modules */ - /* described in `ftmodule.h'. */ - /* */ - /* Notice that the created `create' and `destroy' functions call */ - /* `pic_init' and `pic_free' to allow you to manually allocate and */ - /* initialize any additional global data, like a module specific */ - /* interface, and put them in the global pic container defined in */ - /* `ftpic.h'. If you don't need them just implement the functions as */ - /* empty to resolve the link error. Also the `pic_init' and */ - /* `pic_free' functions should be declared in `pic.h', to be referred */ - /* by driver definition calling `FT_DEFINE_DRIVER' in following. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro is */ - /* used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DECLARE_DRIVER( class_ ) \ - FT_CALLBACK_TABLE \ - const FT_Driver_ClassRec class_; - -#define FT_DEFINE_DRIVER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - face_object_size_, \ - size_object_size_, \ - slot_object_size_, \ - init_face_, \ - done_face_, \ - init_size_, \ - done_size_, \ - init_slot_, \ - done_slot_, \ - load_glyph_, \ - get_kerning_, \ - attach_file_, \ - get_advances_, \ - request_size_, \ - select_size_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Driver_ClassRec class_ = \ - { \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - \ - face_object_size_, \ - size_object_size_, \ - slot_object_size_, \ - \ - init_face_, \ - done_face_, \ - \ - init_size_, \ - done_size_, \ - \ - init_slot_, \ - done_slot_, \ - \ - load_glyph_, \ - \ - get_kerning_, \ - attach_file_, \ - get_advances_, \ - \ - request_size_, \ - select_size_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DECLARE_DRIVER( class_ ) FT_DECLARE_MODULE( class_ ) - -#define FT_DEFINE_DRIVER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - face_object_size_, \ - size_object_size_, \ - slot_object_size_, \ - init_face_, \ - done_face_, \ - init_size_, \ - done_size_, \ - init_slot_, \ - done_slot_, \ - load_glyph_, \ - get_kerning_, \ - attach_file_, \ - get_advances_, \ - request_size_, \ - select_size_ ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_Module_Class* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - FT_Driver_Class dclazz = (FT_Driver_Class)clazz; \ - \ - \ - class_ ## _pic_free( library ); \ - if ( dclazz ) \ - FT_FREE( dclazz ); \ - } \ - \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_Module_Class** output_class ) \ - { \ - FT_Driver_Class clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \ - return error; \ - \ - error = class_ ## _pic_init( library ); \ - if ( error ) \ - { \ - FT_FREE( clazz ); \ - return error; \ - } \ - \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - \ - clazz->face_object_size = face_object_size_; \ - clazz->size_object_size = size_object_size_; \ - clazz->slot_object_size = slot_object_size_; \ - \ - clazz->init_face = init_face_; \ - clazz->done_face = done_face_; \ - \ - clazz->init_size = init_size_; \ - clazz->done_size = done_size_; \ - \ - clazz->init_slot = init_slot_; \ - clazz->done_slot = done_slot_; \ - \ - clazz->load_glyph = load_glyph_; \ - \ - clazz->get_kerning = get_kerning_; \ - clazz->attach_file = attach_file_; \ - clazz->get_advances = get_advances_; \ - \ - clazz->request_size = request_size_; \ - clazz->select_size = select_size_; \ - \ - *output_class = (FT_Module_Class*)clazz; \ - \ - return FT_Err_Ok; \ - } - - -#endif /* FT_CONFIG_OPTION_PIC */ - -FT_END_HEADER - -#endif /* __FTDRIVER_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/ftgloadr.h b/lib/windows/include/freetype/internal/ftgloadr.h deleted file mode 100644 index 970dd70..0000000 --- a/lib/windows/include/freetype/internal/ftgloadr.h +++ /dev/null @@ -1,172 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftgloadr.h */ -/* */ -/* The FreeType glyph loader (specification). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTGLOADR_H__ -#define __FTGLOADR_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_GlyphLoader */ - /* */ - /* <Description> */ - /* The glyph loader is an internal object used to load several glyphs */ - /* together (for example, in the case of composites). */ - /* */ - /* <Note> */ - /* The glyph loader implementation is not part of the high-level API, */ - /* hence the forward structure declaration. */ - /* */ - typedef struct FT_GlyphLoaderRec_* FT_GlyphLoader ; - - -#if 0 /* moved to freetype.h in version 2.2 */ -#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS 1 -#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES 2 -#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID 4 -#define FT_SUBGLYPH_FLAG_SCALE 8 -#define FT_SUBGLYPH_FLAG_XY_SCALE 0x40 -#define FT_SUBGLYPH_FLAG_2X2 0x80 -#define FT_SUBGLYPH_FLAG_USE_MY_METRICS 0x200 -#endif - - - typedef struct FT_SubGlyphRec_ - { - FT_Int index; - FT_UShort flags; - FT_Int arg1; - FT_Int arg2; - FT_Matrix transform; - - } FT_SubGlyphRec; - - - typedef struct FT_GlyphLoadRec_ - { - FT_Outline outline; /* outline */ - FT_Vector* extra_points; /* extra points table */ - FT_Vector* extra_points2; /* second extra points table */ - FT_UInt num_subglyphs; /* number of subglyphs */ - FT_SubGlyph subglyphs; /* subglyphs */ - - } FT_GlyphLoadRec, *FT_GlyphLoad; - - - typedef struct FT_GlyphLoaderRec_ - { - FT_Memory memory; - FT_UInt max_points; - FT_UInt max_contours; - FT_UInt max_subglyphs; - FT_Bool use_extra; - - FT_GlyphLoadRec base; - FT_GlyphLoadRec current; - - void* other; /* for possible future extension? */ - - } FT_GlyphLoaderRec; - - - /* create new empty glyph loader */ - FT_BASE( FT_Error ) - FT_GlyphLoader_New( FT_Memory memory, - FT_GlyphLoader *aloader ); - - /* add an extra points table to a glyph loader */ - FT_BASE( FT_Error ) - FT_GlyphLoader_CreateExtra( FT_GlyphLoader loader ); - - /* destroy a glyph loader */ - FT_BASE( void ) - FT_GlyphLoader_Done( FT_GlyphLoader loader ); - - /* reset a glyph loader (frees everything int it) */ - FT_BASE( void ) - FT_GlyphLoader_Reset( FT_GlyphLoader loader ); - - /* rewind a glyph loader */ - FT_BASE( void ) - FT_GlyphLoader_Rewind( FT_GlyphLoader loader ); - - /* check that there is enough space to add `n_points' and `n_contours' */ - /* to the glyph loader */ - FT_BASE( FT_Error ) - FT_GlyphLoader_CheckPoints( FT_GlyphLoader loader, - FT_UInt n_points, - FT_UInt n_contours ); - - -#define FT_GLYPHLOADER_CHECK_P( _loader, _count ) \ - ( (_count) == 0 || \ - ( (FT_UInt)(_loader)->base.outline.n_points + \ - (FT_UInt)(_loader)->current.outline.n_points + \ - (FT_UInt)(_count) ) <= (_loader)->max_points ) - -#define FT_GLYPHLOADER_CHECK_C( _loader, _count ) \ - ( (_count) == 0 || \ - ( (FT_UInt)(_loader)->base.outline.n_contours + \ - (FT_UInt)(_loader)->current.outline.n_contours + \ - (FT_UInt)(_count) ) <= (_loader)->max_contours ) - -#define FT_GLYPHLOADER_CHECK_POINTS( _loader, _points, _contours ) \ - ( ( FT_GLYPHLOADER_CHECK_P( _loader, _points ) && \ - FT_GLYPHLOADER_CHECK_C( _loader, _contours ) ) \ - ? 0 \ - : FT_GlyphLoader_CheckPoints( (_loader), \ - (FT_UInt)(_points), \ - (FT_UInt)(_contours) ) ) - - - /* check that there is enough space to add `n_subs' sub-glyphs to */ - /* a glyph loader */ - FT_BASE( FT_Error ) - FT_GlyphLoader_CheckSubGlyphs( FT_GlyphLoader loader, - FT_UInt n_subs ); - - /* prepare a glyph loader, i.e. empty the current glyph */ - FT_BASE( void ) - FT_GlyphLoader_Prepare( FT_GlyphLoader loader ); - - /* add the current glyph to the base glyph */ - FT_BASE( void ) - FT_GlyphLoader_Add( FT_GlyphLoader loader ); - - /* copy points from one glyph loader to another */ - FT_BASE( FT_Error ) - FT_GlyphLoader_CopyPoints( FT_GlyphLoader target, - FT_GlyphLoader source ); - - /* */ - - -FT_END_HEADER - -#endif /* __FTGLOADR_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/ftmemory.h b/lib/windows/include/freetype/internal/ftmemory.h deleted file mode 100644 index c0c553b..0000000 --- a/lib/windows/include/freetype/internal/ftmemory.h +++ /dev/null @@ -1,386 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftmemory.h */ -/* */ -/* The FreeType memory management macros (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTMEMORY_H__ -#define __FTMEMORY_H__ - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_TYPES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_SET_ERROR */ - /* */ - /* <Description> */ - /* This macro is used to set an implicit `error' variable to a given */ - /* expression's value (usually a function call), and convert it to a */ - /* boolean which is set whenever the value is != 0. */ - /* */ -#undef FT_SET_ERROR -#define FT_SET_ERROR( expression ) \ - ( ( error = (expression) ) != 0 ) - - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** M E M O R Y ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* - * C++ refuses to handle statements like p = (void*)anything, with `p' a - * typed pointer. Since we don't have a `typeof' operator in standard - * C++, we have to use a template to emulate it. - */ - -#ifdef __cplusplus - - extern "C++" - template <typename T> inline T* - cplusplus_typeof( T*, - void *v ) - { - return static_cast <T*> ( v ); - } - -#define FT_ASSIGNP( p, val ) (p) = cplusplus_typeof( (p), (val) ) - -#else - -#define FT_ASSIGNP( p, val ) (p) = (val) - -#endif - - - -#ifdef FT_DEBUG_MEMORY - - FT_BASE( const char* ) _ft_debug_file; - FT_BASE( long ) _ft_debug_lineno; - -#define FT_DEBUG_INNER( exp ) ( _ft_debug_file = __FILE__, \ - _ft_debug_lineno = __LINE__, \ - (exp) ) - -#define FT_ASSIGNP_INNER( p, exp ) ( _ft_debug_file = __FILE__, \ - _ft_debug_lineno = __LINE__, \ - FT_ASSIGNP( p, exp ) ) - -#else /* !FT_DEBUG_MEMORY */ - -#define FT_DEBUG_INNER( exp ) (exp) -#define FT_ASSIGNP_INNER( p, exp ) FT_ASSIGNP( p, exp ) - -#endif /* !FT_DEBUG_MEMORY */ - - - /* - * The allocation functions return a pointer, and the error code - * is written to through the `p_error' parameter. See below for - * for documentation. - */ - - FT_BASE( FT_Pointer ) - ft_mem_alloc( FT_Memory memory, - FT_Long size, - FT_Error *p_error ); - - FT_BASE( FT_Pointer ) - ft_mem_qalloc( FT_Memory memory, - FT_Long size, - FT_Error *p_error ); - - FT_BASE( FT_Pointer ) - ft_mem_realloc( FT_Memory memory, - FT_Long item_size, - FT_Long cur_count, - FT_Long new_count, - void* block, - FT_Error *p_error ); - - FT_BASE( FT_Pointer ) - ft_mem_qrealloc( FT_Memory memory, - FT_Long item_size, - FT_Long cur_count, - FT_Long new_count, - void* block, - FT_Error *p_error ); - - FT_BASE( void ) - ft_mem_free( FT_Memory memory, - const void* P ); - - -#define FT_MEM_ALLOC( ptr, size ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_alloc( memory, \ - (FT_Long)(size), \ - &error ) ) - -#define FT_MEM_FREE( ptr ) \ - FT_BEGIN_STMNT \ - ft_mem_free( memory, (ptr) ); \ - (ptr) = NULL; \ - FT_END_STMNT - -#define FT_MEM_NEW( ptr ) \ - FT_MEM_ALLOC( ptr, sizeof ( *(ptr) ) ) - -#define FT_MEM_REALLOC( ptr, cursz, newsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - 1, \ - (FT_Long)(cursz), \ - (FT_Long)(newsz), \ - (ptr), \ - &error ) ) - -#define FT_MEM_QALLOC( ptr, size ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qalloc( memory, \ - (FT_Long)(size), \ - &error ) ) - -#define FT_MEM_QNEW( ptr ) \ - FT_MEM_QALLOC( ptr, sizeof ( *(ptr) ) ) - -#define FT_MEM_QREALLOC( ptr, cursz, newsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - 1, \ - (FT_Long)(cursz), \ - (FT_Long)(newsz), \ - (ptr), \ - &error ) ) - -#define FT_MEM_ALLOC_MULT( ptr, count, item_size ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - (FT_Long)(item_size), \ - 0, \ - (FT_Long)(count), \ - NULL, \ - &error ) ) - -#define FT_MEM_REALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - (FT_Long)(itmsz), \ - (FT_Long)(oldcnt), \ - (FT_Long)(newcnt), \ - (ptr), \ - &error ) ) - -#define FT_MEM_QALLOC_MULT( ptr, count, item_size ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - (FT_Long)(item_size), \ - 0, \ - (FT_Long)(count), \ - NULL, \ - &error ) ) - -#define FT_MEM_QREALLOC_MULT( ptr, oldcnt, newcnt, itmsz) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - (FT_Long)(itmsz), \ - (FT_Long)(oldcnt), \ - (FT_Long)(newcnt), \ - (ptr), \ - &error ) ) - - -#define FT_MEM_SET_ERROR( cond ) ( (cond), error != 0 ) - - -#define FT_MEM_SET( dest, byte, count ) \ - ft_memset( dest, byte, (FT_Offset)(count) ) - -#define FT_MEM_COPY( dest, source, count ) \ - ft_memcpy( dest, source, (FT_Offset)(count) ) - -#define FT_MEM_MOVE( dest, source, count ) \ - ft_memmove( dest, source, (FT_Offset)(count) ) - - -#define FT_MEM_ZERO( dest, count ) FT_MEM_SET( dest, 0, count ) - -#define FT_ZERO( p ) FT_MEM_ZERO( p, sizeof ( *(p) ) ) - - -#define FT_ARRAY_ZERO( dest, count ) \ - FT_MEM_ZERO( dest, \ - (FT_Offset)(count) * sizeof ( *(dest) ) ) - -#define FT_ARRAY_COPY( dest, source, count ) \ - FT_MEM_COPY( dest, \ - source, \ - (FT_Offset)(count) * sizeof ( *(dest) ) ) - -#define FT_ARRAY_MOVE( dest, source, count ) \ - FT_MEM_MOVE( dest, \ - source, \ - (FT_Offset)(count) * sizeof ( *(dest) ) ) - - - /* - * Return the maximum number of addressable elements in an array. - * We limit ourselves to INT_MAX, rather than UINT_MAX, to avoid - * any problems. - */ -#define FT_ARRAY_MAX( ptr ) ( FT_INT_MAX / sizeof ( *(ptr) ) ) - -#define FT_ARRAY_CHECK( ptr, count ) ( (count) <= FT_ARRAY_MAX( ptr ) ) - - - /*************************************************************************/ - /* */ - /* The following functions macros expect that their pointer argument is */ - /* _typed_ in order to automatically compute array element sizes. */ - /* */ - -#define FT_MEM_NEW_ARRAY( ptr, count ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - sizeof ( *(ptr) ), \ - 0, \ - (FT_Long)(count), \ - NULL, \ - &error ) ) - -#define FT_MEM_RENEW_ARRAY( ptr, cursz, newsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ - sizeof ( *(ptr) ), \ - (FT_Long)(cursz), \ - (FT_Long)(newsz), \ - (ptr), \ - &error ) ) - -#define FT_MEM_QNEW_ARRAY( ptr, count ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - sizeof ( *(ptr) ), \ - 0, \ - (FT_Long)(count), \ - NULL, \ - &error ) ) - -#define FT_MEM_QRENEW_ARRAY( ptr, cursz, newsz ) \ - FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ - sizeof ( *(ptr) ), \ - (FT_Long)(cursz), \ - (FT_Long)(newsz), \ - (ptr), \ - &error ) ) - -#define FT_ALLOC( ptr, size ) \ - FT_MEM_SET_ERROR( FT_MEM_ALLOC( ptr, size ) ) - -#define FT_REALLOC( ptr, cursz, newsz ) \ - FT_MEM_SET_ERROR( FT_MEM_REALLOC( ptr, cursz, newsz ) ) - -#define FT_ALLOC_MULT( ptr, count, item_size ) \ - FT_MEM_SET_ERROR( FT_MEM_ALLOC_MULT( ptr, count, item_size ) ) - -#define FT_REALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \ - FT_MEM_SET_ERROR( FT_MEM_REALLOC_MULT( ptr, oldcnt, \ - newcnt, itmsz ) ) - -#define FT_QALLOC( ptr, size ) \ - FT_MEM_SET_ERROR( FT_MEM_QALLOC( ptr, size ) ) - -#define FT_QREALLOC( ptr, cursz, newsz ) \ - FT_MEM_SET_ERROR( FT_MEM_QREALLOC( ptr, cursz, newsz ) ) - -#define FT_QALLOC_MULT( ptr, count, item_size ) \ - FT_MEM_SET_ERROR( FT_MEM_QALLOC_MULT( ptr, count, item_size ) ) - -#define FT_QREALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \ - FT_MEM_SET_ERROR( FT_MEM_QREALLOC_MULT( ptr, oldcnt, \ - newcnt, itmsz ) ) - -#define FT_FREE( ptr ) FT_MEM_FREE( ptr ) - -#define FT_NEW( ptr ) FT_MEM_SET_ERROR( FT_MEM_NEW( ptr ) ) - -#define FT_NEW_ARRAY( ptr, count ) \ - FT_MEM_SET_ERROR( FT_MEM_NEW_ARRAY( ptr, count ) ) - -#define FT_RENEW_ARRAY( ptr, curcnt, newcnt ) \ - FT_MEM_SET_ERROR( FT_MEM_RENEW_ARRAY( ptr, curcnt, newcnt ) ) - -#define FT_QNEW( ptr ) \ - FT_MEM_SET_ERROR( FT_MEM_QNEW( ptr ) ) - -#define FT_QNEW_ARRAY( ptr, count ) \ - FT_MEM_SET_ERROR( FT_MEM_NEW_ARRAY( ptr, count ) ) - -#define FT_QRENEW_ARRAY( ptr, curcnt, newcnt ) \ - FT_MEM_SET_ERROR( FT_MEM_RENEW_ARRAY( ptr, curcnt, newcnt ) ) - - - FT_BASE( FT_Pointer ) - ft_mem_strdup( FT_Memory memory, - const char* str, - FT_Error *p_error ); - - FT_BASE( FT_Pointer ) - ft_mem_dup( FT_Memory memory, - const void* address, - FT_ULong size, - FT_Error *p_error ); - - -#define FT_MEM_STRDUP( dst, str ) \ - (dst) = (char*)ft_mem_strdup( memory, (const char*)(str), &error ) - -#define FT_STRDUP( dst, str ) \ - FT_MEM_SET_ERROR( FT_MEM_STRDUP( dst, str ) ) - -#define FT_MEM_DUP( dst, address, size ) \ - (dst) = ft_mem_dup( memory, (address), (FT_ULong)(size), &error ) - -#define FT_DUP( dst, address, size ) \ - FT_MEM_SET_ERROR( FT_MEM_DUP( dst, address, size ) ) - - - /* Return >= 1 if a truncation occurs. */ - /* Return 0 if the source string fits the buffer. */ - /* This is *not* the same as strlcpy(). */ - FT_BASE( FT_Int ) - ft_mem_strcpyn( char* dst, - const char* src, - FT_ULong size ); - -#define FT_STRCPYN( dst, src, size ) \ - ft_mem_strcpyn( (char*)dst, (const char*)(src), (FT_ULong)(size) ) - - /* */ - - -FT_END_HEADER - -#endif /* __FTMEMORY_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/ftobjs.h b/lib/windows/include/freetype/internal/ftobjs.h deleted file mode 100644 index 37317a4..0000000 --- a/lib/windows/include/freetype/internal/ftobjs.h +++ /dev/null @@ -1,1571 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftobjs.h */ -/* */ -/* The FreeType private base classes (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file contains the definition of all internal FreeType classes. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTOBJS_H__ -#define __FTOBJS_H__ - -#include <ft2build.h> -#include FT_RENDER_H -#include FT_SIZES_H -#include FT_LCD_FILTER_H -#include FT_INTERNAL_MEMORY_H -#include FT_INTERNAL_GLYPH_LOADER_H -#include FT_INTERNAL_DRIVER_H -#include FT_INTERNAL_AUTOHINT_H -#include FT_INTERNAL_SERVICE_H -#include FT_INTERNAL_PIC_H - -#ifdef FT_CONFIG_OPTION_INCREMENTAL -#include FT_INCREMENTAL_H -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* Some generic definitions. */ - /* */ -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef NULL -#define NULL (void*)0 -#endif - - - /*************************************************************************/ - /* */ - /* The min and max functions missing in C. As usual, be careful not to */ - /* write things like FT_MIN( a++, b++ ) to avoid side effects. */ - /* */ -#define FT_MIN( a, b ) ( (a) < (b) ? (a) : (b) ) -#define FT_MAX( a, b ) ( (a) > (b) ? (a) : (b) ) - -#define FT_ABS( a ) ( (a) < 0 ? -(a) : (a) ) - - /* - * Approximate sqrt(x*x+y*y) using the `alpha max plus beta min' - * algorithm. We use alpha = 1, beta = 3/8, giving us results with a - * largest error less than 7% compared to the exact value. - */ -#define FT_HYPOT( x, y ) \ - ( x = FT_ABS( x ), \ - y = FT_ABS( y ), \ - x > y ? x + ( 3 * y >> 3 ) \ - : y + ( 3 * x >> 3 ) ) - - /* we use the TYPEOF macro to suppress signedness compilation warnings */ -#define FT_PAD_FLOOR( x, n ) ( (x) & ~TYPEOF( x )( (n)-1 ) ) -#define FT_PAD_ROUND( x, n ) FT_PAD_FLOOR( (x) + ((n)/2), n ) -#define FT_PAD_CEIL( x, n ) FT_PAD_FLOOR( (x) + ((n)-1), n ) - -#define FT_PIX_FLOOR( x ) ( (x) & ~TYPEOF( x )63 ) -#define FT_PIX_ROUND( x ) FT_PIX_FLOOR( (x) + 32 ) -#define FT_PIX_CEIL( x ) FT_PIX_FLOOR( (x) + 63 ) - - - /* - * character classification functions -- since these are used to parse - * font files, we must not use those in <ctypes.h> which are - * locale-dependent - */ -#define ft_isdigit( x ) ( ( (unsigned)(x) - '0' ) < 10U ) - -#define ft_isxdigit( x ) ( ( (unsigned)(x) - '0' ) < 10U || \ - ( (unsigned)(x) - 'a' ) < 6U || \ - ( (unsigned)(x) - 'A' ) < 6U ) - - /* the next two macros assume ASCII representation */ -#define ft_isupper( x ) ( ( (unsigned)(x) - 'A' ) < 26U ) -#define ft_islower( x ) ( ( (unsigned)(x) - 'a' ) < 26U ) - -#define ft_isalpha( x ) ( ft_isupper( x ) || ft_islower( x ) ) -#define ft_isalnum( x ) ( ft_isdigit( x ) || ft_isalpha( x ) ) - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** C H A R M A P S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - /* handle to internal charmap object */ - typedef struct FT_CMapRec_* FT_CMap; - - /* handle to charmap class structure */ - typedef const struct FT_CMap_ClassRec_* FT_CMap_Class; - - /* internal charmap object structure */ - typedef struct FT_CMapRec_ - { - FT_CharMapRec charmap; - FT_CMap_Class clazz; - - } FT_CMapRec; - - /* typecase any pointer to a charmap handle */ -#define FT_CMAP( x ) ((FT_CMap)( x )) - - /* obvious macros */ -#define FT_CMAP_PLATFORM_ID( x ) FT_CMAP( x )->charmap.platform_id -#define FT_CMAP_ENCODING_ID( x ) FT_CMAP( x )->charmap.encoding_id -#define FT_CMAP_ENCODING( x ) FT_CMAP( x )->charmap.encoding -#define FT_CMAP_FACE( x ) FT_CMAP( x )->charmap.face - - - /* class method definitions */ - typedef FT_Error - (*FT_CMap_InitFunc)( FT_CMap cmap, - FT_Pointer init_data ); - - typedef void - (*FT_CMap_DoneFunc)( FT_CMap cmap ); - - typedef FT_UInt - (*FT_CMap_CharIndexFunc)( FT_CMap cmap, - FT_UInt32 char_code ); - - typedef FT_UInt - (*FT_CMap_CharNextFunc)( FT_CMap cmap, - FT_UInt32 *achar_code ); - - typedef FT_UInt - (*FT_CMap_CharVarIndexFunc)( FT_CMap cmap, - FT_CMap unicode_cmap, - FT_UInt32 char_code, - FT_UInt32 variant_selector ); - - typedef FT_Bool - (*FT_CMap_CharVarIsDefaultFunc)( FT_CMap cmap, - FT_UInt32 char_code, - FT_UInt32 variant_selector ); - - typedef FT_UInt32 * - (*FT_CMap_VariantListFunc)( FT_CMap cmap, - FT_Memory mem ); - - typedef FT_UInt32 * - (*FT_CMap_CharVariantListFunc)( FT_CMap cmap, - FT_Memory mem, - FT_UInt32 char_code ); - - typedef FT_UInt32 * - (*FT_CMap_VariantCharListFunc)( FT_CMap cmap, - FT_Memory mem, - FT_UInt32 variant_selector ); - - - typedef struct FT_CMap_ClassRec_ - { - FT_ULong size; - FT_CMap_InitFunc init; - FT_CMap_DoneFunc done; - FT_CMap_CharIndexFunc char_index; - FT_CMap_CharNextFunc char_next; - - /* Subsequent entries are special ones for format 14 -- the variant */ - /* selector subtable which behaves like no other */ - - FT_CMap_CharVarIndexFunc char_var_index; - FT_CMap_CharVarIsDefaultFunc char_var_default; - FT_CMap_VariantListFunc variant_list; - FT_CMap_CharVariantListFunc charvariant_list; - FT_CMap_VariantCharListFunc variantchar_list; - - } FT_CMap_ClassRec; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DECLARE_CMAP_CLASS( class_ ) \ - FT_CALLBACK_TABLE const FT_CMap_ClassRec class_; - -#define FT_DEFINE_CMAP_CLASS( \ - class_, \ - size_, \ - init_, \ - done_, \ - char_index_, \ - char_next_, \ - char_var_index_, \ - char_var_default_, \ - variant_list_, \ - charvariant_list_, \ - variantchar_list_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_CMap_ClassRec class_ = \ - { \ - size_, \ - init_, \ - done_, \ - char_index_, \ - char_next_, \ - char_var_index_, \ - char_var_default_, \ - variant_list_, \ - charvariant_list_, \ - variantchar_list_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DECLARE_CMAP_CLASS( class_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_CMap_ClassRec* clazz ); - -#define FT_DEFINE_CMAP_CLASS( \ - class_, \ - size_, \ - init_, \ - done_, \ - char_index_, \ - char_next_, \ - char_var_index_, \ - char_var_default_, \ - variant_list_, \ - charvariant_list_, \ - variantchar_list_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_CMap_ClassRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->size = size_; \ - clazz->init = init_; \ - clazz->done = done_; \ - clazz->char_index = char_index_; \ - clazz->char_next = char_next_; \ - clazz->char_var_index = char_var_index_; \ - clazz->char_var_default = char_var_default_; \ - clazz->variant_list = variant_list_; \ - clazz->charvariant_list = charvariant_list_; \ - clazz->variantchar_list = variantchar_list_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /* create a new charmap and add it to charmap->face */ - FT_BASE( FT_Error ) - FT_CMap_New( FT_CMap_Class clazz, - FT_Pointer init_data, - FT_CharMap charmap, - FT_CMap *acmap ); - - /* destroy a charmap and remove it from face's list */ - FT_BASE( void ) - FT_CMap_Done( FT_CMap cmap ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Face_InternalRec */ - /* */ - /* <Description> */ - /* This structure contains the internal fields of each FT_Face */ - /* object. These fields may change between different releases of */ - /* FreeType. */ - /* */ - /* <Fields> */ - /* max_points :: */ - /* The maximum number of points used to store the vectorial outline */ - /* of any glyph in this face. If this value cannot be known in */ - /* advance, or if the face isn't scalable, this should be set to 0. */ - /* Only relevant for scalable formats. */ - /* */ - /* max_contours :: */ - /* The maximum number of contours used to store the vectorial */ - /* outline of any glyph in this face. If this value cannot be */ - /* known in advance, or if the face isn't scalable, this should be */ - /* set to 0. Only relevant for scalable formats. */ - /* */ - /* transform_matrix :: */ - /* A 2x2 matrix of 16.16 coefficients used to transform glyph */ - /* outlines after they are loaded from the font. Only used by the */ - /* convenience functions. */ - /* */ - /* transform_delta :: */ - /* A translation vector used to transform glyph outlines after they */ - /* are loaded from the font. Only used by the convenience */ - /* functions. */ - /* */ - /* transform_flags :: */ - /* Some flags used to classify the transform. Only used by the */ - /* convenience functions. */ - /* */ - /* services :: */ - /* A cache for frequently used services. It should be only */ - /* accessed with the macro `FT_FACE_LOOKUP_SERVICE'. */ - /* */ - /* incremental_interface :: */ - /* If non-null, the interface through which glyph data and metrics */ - /* are loaded incrementally for faces that do not provide all of */ - /* this data when first opened. This field exists only if */ - /* @FT_CONFIG_OPTION_INCREMENTAL is defined. */ - /* */ - /* ignore_unpatented_hinter :: */ - /* This boolean flag instructs the glyph loader to ignore the */ - /* native font hinter, if one is found. This is exclusively used */ - /* in the case when the unpatented hinter is compiled within the */ - /* library. */ - /* */ - /* refcount :: */ - /* A counter initialized to~1 at the time an @FT_Face structure is */ - /* created. @FT_Reference_Face increments this counter, and */ - /* @FT_Done_Face only destroys a face if the counter is~1, */ - /* otherwise it simply decrements it. */ - /* */ - typedef struct FT_Face_InternalRec_ - { - FT_Matrix transform_matrix; - FT_Vector transform_delta; - FT_Int transform_flags; - - FT_ServiceCacheRec services; - -#ifdef FT_CONFIG_OPTION_INCREMENTAL - FT_Incremental_InterfaceRec* incremental_interface; -#endif - - FT_Bool ignore_unpatented_hinter; - FT_Int refcount; - - } FT_Face_InternalRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Slot_InternalRec */ - /* */ - /* <Description> */ - /* This structure contains the internal fields of each FT_GlyphSlot */ - /* object. These fields may change between different releases of */ - /* FreeType. */ - /* */ - /* <Fields> */ - /* loader :: The glyph loader object used to load outlines */ - /* into the glyph slot. */ - /* */ - /* flags :: Possible values are zero or */ - /* FT_GLYPH_OWN_BITMAP. The latter indicates */ - /* that the FT_GlyphSlot structure owns the */ - /* bitmap buffer. */ - /* */ - /* glyph_transformed :: Boolean. Set to TRUE when the loaded glyph */ - /* must be transformed through a specific */ - /* font transformation. This is _not_ the same */ - /* as the face transform set through */ - /* FT_Set_Transform(). */ - /* */ - /* glyph_matrix :: The 2x2 matrix corresponding to the glyph */ - /* transformation, if necessary. */ - /* */ - /* glyph_delta :: The 2d translation vector corresponding to */ - /* the glyph transformation, if necessary. */ - /* */ - /* glyph_hints :: Format-specific glyph hints management. */ - /* */ - -#define FT_GLYPH_OWN_BITMAP 0x1U - - typedef struct FT_Slot_InternalRec_ - { - FT_GlyphLoader loader; - FT_UInt flags; - FT_Bool glyph_transformed; - FT_Matrix glyph_matrix; - FT_Vector glyph_delta; - void* glyph_hints; - - } FT_GlyphSlot_InternalRec; - - -#if 0 - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Size_InternalRec */ - /* */ - /* <Description> */ - /* This structure contains the internal fields of each FT_Size */ - /* object. Currently, it's empty. */ - /* */ - /*************************************************************************/ - - typedef struct FT_Size_InternalRec_ - { - /* empty */ - - } FT_Size_InternalRec; - -#endif - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** M O D U L E S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ModuleRec */ - /* */ - /* <Description> */ - /* A module object instance. */ - /* */ - /* <Fields> */ - /* clazz :: A pointer to the module's class. */ - /* */ - /* library :: A handle to the parent library object. */ - /* */ - /* memory :: A handle to the memory manager. */ - /* */ - typedef struct FT_ModuleRec_ - { - FT_Module_Class* clazz; - FT_Library library; - FT_Memory memory; - - } FT_ModuleRec; - - - /* typecast an object to an FT_Module */ -#define FT_MODULE( x ) ((FT_Module)( x )) -#define FT_MODULE_CLASS( x ) FT_MODULE( x )->clazz -#define FT_MODULE_LIBRARY( x ) FT_MODULE( x )->library -#define FT_MODULE_MEMORY( x ) FT_MODULE( x )->memory - - -#define FT_MODULE_IS_DRIVER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_FONT_DRIVER ) - -#define FT_MODULE_IS_RENDERER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_RENDERER ) - -#define FT_MODULE_IS_HINTER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_HINTER ) - -#define FT_MODULE_IS_STYLER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_STYLER ) - -#define FT_DRIVER_IS_SCALABLE( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_DRIVER_SCALABLE ) - -#define FT_DRIVER_USES_OUTLINES( x ) !( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_DRIVER_NO_OUTLINES ) - -#define FT_DRIVER_HAS_HINTER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ - FT_MODULE_DRIVER_HAS_HINTER ) - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Module_Interface */ - /* */ - /* <Description> */ - /* Finds a module and returns its specific interface as a typeless */ - /* pointer. */ - /* */ - /* <Input> */ - /* library :: A handle to the library object. */ - /* */ - /* module_name :: The module's name (as an ASCII string). */ - /* */ - /* <Return> */ - /* A module-specific interface if available, 0 otherwise. */ - /* */ - /* <Note> */ - /* You should better be familiar with FreeType internals to know */ - /* which module to look for, and what its interface is :-) */ - /* */ - FT_BASE( const void* ) - FT_Get_Module_Interface( FT_Library library, - const char* mod_name ); - - FT_BASE( FT_Pointer ) - ft_module_get_service( FT_Module module, - const char* service_id ); - - /* */ - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** F A C E, S I Z E & G L Y P H S L O T O B J E C T S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - /* a few macros used to perform easy typecasts with minimal brain damage */ - -#define FT_FACE( x ) ((FT_Face)(x)) -#define FT_SIZE( x ) ((FT_Size)(x)) -#define FT_SLOT( x ) ((FT_GlyphSlot)(x)) - -#define FT_FACE_DRIVER( x ) FT_FACE( x )->driver -#define FT_FACE_LIBRARY( x ) FT_FACE_DRIVER( x )->root.library -#define FT_FACE_MEMORY( x ) FT_FACE( x )->memory -#define FT_FACE_STREAM( x ) FT_FACE( x )->stream - -#define FT_SIZE_FACE( x ) FT_SIZE( x )->face -#define FT_SLOT_FACE( x ) FT_SLOT( x )->face - -#define FT_FACE_SLOT( x ) FT_FACE( x )->glyph -#define FT_FACE_SIZE( x ) FT_FACE( x )->size - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_GlyphSlot */ - /* */ - /* <Description> */ - /* It is sometimes useful to have more than one glyph slot for a */ - /* given face object. This function is used to create additional */ - /* slots. All of them are automatically discarded when the face is */ - /* destroyed. */ - /* */ - /* <Input> */ - /* face :: A handle to a parent face object. */ - /* */ - /* <Output> */ - /* aslot :: A handle to a new glyph slot object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - FT_BASE( FT_Error ) - FT_New_GlyphSlot( FT_Face face, - FT_GlyphSlot *aslot ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_GlyphSlot */ - /* */ - /* <Description> */ - /* Destroys a given glyph slot. Remember however that all slots are */ - /* automatically destroyed with its parent. Using this function is */ - /* not always mandatory. */ - /* */ - /* <Input> */ - /* slot :: A handle to a target glyph slot. */ - /* */ - FT_BASE( void ) - FT_Done_GlyphSlot( FT_GlyphSlot slot ); - - /* */ - -#define FT_REQUEST_WIDTH( req ) \ - ( (req)->horiResolution \ - ? ( (req)->width * (FT_Pos)(req)->horiResolution + 36 ) / 72 \ - : (req)->width ) - -#define FT_REQUEST_HEIGHT( req ) \ - ( (req)->vertResolution \ - ? ( (req)->height * (FT_Pos)(req)->vertResolution + 36 ) / 72 \ - : (req)->height ) - - - /* Set the metrics according to a bitmap strike. */ - FT_BASE( void ) - FT_Select_Metrics( FT_Face face, - FT_ULong strike_index ); - - - /* Set the metrics according to a size request. */ - FT_BASE( void ) - FT_Request_Metrics( FT_Face face, - FT_Size_Request req ); - - - /* Match a size request against `available_sizes'. */ - FT_BASE( FT_Error ) - FT_Match_Size( FT_Face face, - FT_Size_Request req, - FT_Bool ignore_width, - FT_ULong* size_index ); - - - /* Use the horizontal metrics to synthesize the vertical metrics. */ - /* If `advance' is zero, it is also synthesized. */ - FT_BASE( void ) - ft_synthesize_vertical_metrics( FT_Glyph_Metrics* metrics, - FT_Pos advance ); - - - /* Free the bitmap of a given glyphslot when needed (i.e., only when it */ - /* was allocated with ft_glyphslot_alloc_bitmap). */ - FT_BASE( void ) - ft_glyphslot_free_bitmap( FT_GlyphSlot slot ); - - - /* Allocate a new bitmap buffer in a glyph slot. */ - FT_BASE( FT_Error ) - ft_glyphslot_alloc_bitmap( FT_GlyphSlot slot, - FT_ULong size ); - - - /* Set the bitmap buffer in a glyph slot to a given pointer. The buffer */ - /* will not be freed by a later call to ft_glyphslot_free_bitmap. */ - FT_BASE( void ) - ft_glyphslot_set_bitmap( FT_GlyphSlot slot, - FT_Byte* buffer ); - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** R E N D E R E R S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - -#define FT_RENDERER( x ) ((FT_Renderer)( x )) -#define FT_GLYPH( x ) ((FT_Glyph)( x )) -#define FT_BITMAP_GLYPH( x ) ((FT_BitmapGlyph)( x )) -#define FT_OUTLINE_GLYPH( x ) ((FT_OutlineGlyph)( x )) - - - typedef struct FT_RendererRec_ - { - FT_ModuleRec root; - FT_Renderer_Class* clazz; - FT_Glyph_Format glyph_format; - FT_Glyph_Class glyph_class; - - FT_Raster raster; - FT_Raster_Render_Func raster_render; - FT_Renderer_RenderFunc render; - - } FT_RendererRec; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** F O N T D R I V E R S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* typecast a module into a driver easily */ -#define FT_DRIVER( x ) ((FT_Driver)(x)) - - /* typecast a module as a driver, and get its driver class */ -#define FT_DRIVER_CLASS( x ) FT_DRIVER( x )->clazz - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_DriverRec */ - /* */ - /* <Description> */ - /* The root font driver class. A font driver is responsible for */ - /* managing and loading font files of a given format. */ - /* */ - /* <Fields> */ - /* root :: Contains the fields of the root module class. */ - /* */ - /* clazz :: A pointer to the font driver's class. Note that */ - /* this is NOT root.clazz. `class' wasn't used */ - /* as it is a reserved word in C++. */ - /* */ - /* faces_list :: The list of faces currently opened by this */ - /* driver. */ - /* */ - /* glyph_loader :: Unused. Used to be glyph loader for all faces */ - /* managed by this driver. */ - /* */ - typedef struct FT_DriverRec_ - { - FT_ModuleRec root; - FT_Driver_Class clazz; - FT_ListRec faces_list; - FT_GlyphLoader glyph_loader; - - } FT_DriverRec; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** L I B R A R I E S ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* This hook is used by the TrueType debugger. It must be set to an */ - /* alternate truetype bytecode interpreter function. */ -#define FT_DEBUG_HOOK_TRUETYPE 0 - - - /* Set this debug hook to a non-null pointer to force unpatented hinting */ - /* for all faces when both TT_USE_BYTECODE_INTERPRETER and */ - /* TT_CONFIG_OPTION_UNPATENTED_HINTING are defined. This is only used */ - /* during debugging. */ -#define FT_DEBUG_HOOK_UNPATENTED_HINTING 1 - - - typedef void (*FT_Bitmap_LcdFilterFunc)( FT_Bitmap* bitmap, - FT_Render_Mode render_mode, - FT_Library library ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_LibraryRec */ - /* */ - /* <Description> */ - /* The FreeType library class. This is the root of all FreeType */ - /* data. Use FT_New_Library() to create a library object, and */ - /* FT_Done_Library() to discard it and all child objects. */ - /* */ - /* <Fields> */ - /* memory :: The library's memory object. Manages memory */ - /* allocation. */ - /* */ - /* version_major :: The major version number of the library. */ - /* */ - /* version_minor :: The minor version number of the library. */ - /* */ - /* version_patch :: The current patch level of the library. */ - /* */ - /* num_modules :: The number of modules currently registered */ - /* within this library. This is set to 0 for new */ - /* libraries. New modules are added through the */ - /* FT_Add_Module() API function. */ - /* */ - /* modules :: A table used to store handles to the currently */ - /* registered modules. Note that each font driver */ - /* contains a list of its opened faces. */ - /* */ - /* renderers :: The list of renderers currently registered */ - /* within the library. */ - /* */ - /* cur_renderer :: The current outline renderer. This is a */ - /* shortcut used to avoid parsing the list on */ - /* each call to FT_Outline_Render(). It is a */ - /* handle to the current renderer for the */ - /* FT_GLYPH_FORMAT_OUTLINE format. */ - /* */ - /* auto_hinter :: XXX */ - /* */ - /* raster_pool :: The raster object's render pool. This can */ - /* ideally be changed dynamically at run-time. */ - /* */ - /* raster_pool_size :: The size of the render pool in bytes. */ - /* */ - /* debug_hooks :: XXX */ - /* */ - /* lcd_filter :: If subpixel rendering is activated, the */ - /* selected LCD filter mode. */ - /* */ - /* lcd_extra :: If subpixel rendering is activated, the number */ - /* of extra pixels needed for the LCD filter. */ - /* */ - /* lcd_weights :: If subpixel rendering is activated, the LCD */ - /* filter weights, if any. */ - /* */ - /* lcd_filter_func :: If subpixel rendering is activated, the LCD */ - /* filtering callback function. */ - /* */ - /* pic_container :: Contains global structs and tables, instead */ - /* of defining them globallly. */ - /* */ - /* refcount :: A counter initialized to~1 at the time an */ - /* @FT_Library structure is created. */ - /* @FT_Reference_Library increments this counter, */ - /* and @FT_Done_Library only destroys a library */ - /* if the counter is~1, otherwise it simply */ - /* decrements it. */ - /* */ - typedef struct FT_LibraryRec_ - { - FT_Memory memory; /* library's memory manager */ - - FT_Int version_major; - FT_Int version_minor; - FT_Int version_patch; - - FT_UInt num_modules; - FT_Module modules[FT_MAX_MODULES]; /* module objects */ - - FT_ListRec renderers; /* list of renderers */ - FT_Renderer cur_renderer; /* current outline renderer */ - FT_Module auto_hinter; - - FT_Byte* raster_pool; /* scan-line conversion */ - /* render pool */ - FT_ULong raster_pool_size; /* size of render pool in bytes */ - - FT_DebugHook_Func debug_hooks[4]; - -#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING - FT_LcdFilter lcd_filter; - FT_Int lcd_extra; /* number of extra pixels */ - FT_Byte lcd_weights[7]; /* filter weights, if any */ - FT_Bitmap_LcdFilterFunc lcd_filter_func; /* filtering callback */ -#endif - -#ifdef FT_CONFIG_OPTION_PIC - FT_PIC_Container pic_container; -#endif - - FT_Int refcount; - - } FT_LibraryRec; - - - FT_BASE( FT_Renderer ) - FT_Lookup_Renderer( FT_Library library, - FT_Glyph_Format format, - FT_ListNode* node ); - - FT_BASE( FT_Error ) - FT_Render_Glyph_Internal( FT_Library library, - FT_GlyphSlot slot, - FT_Render_Mode render_mode ); - - typedef const char* - (*FT_Face_GetPostscriptNameFunc)( FT_Face face ); - - typedef FT_Error - (*FT_Face_GetGlyphNameFunc)( FT_Face face, - FT_UInt glyph_index, - FT_Pointer buffer, - FT_UInt buffer_max ); - - typedef FT_UInt - (*FT_Face_GetGlyphNameIndexFunc)( FT_Face face, - FT_String* glyph_name ); - - -#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_New_Memory */ - /* */ - /* <Description> */ - /* Creates a new memory object. */ - /* */ - /* <Return> */ - /* A pointer to the new memory object. 0 in case of error. */ - /* */ - FT_BASE( FT_Memory ) - FT_New_Memory( void ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Done_Memory */ - /* */ - /* <Description> */ - /* Discards memory manager. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory manager. */ - /* */ - FT_BASE( void ) - FT_Done_Memory( FT_Memory memory ); - -#endif /* !FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM */ - - - /* Define default raster's interface. The default raster is located in */ - /* `src/base/ftraster.c'. */ - /* */ - /* Client applications can register new rasters through the */ - /* FT_Set_Raster() API. */ - -#ifndef FT_NO_DEFAULT_RASTER - FT_EXPORT_VAR( FT_Raster_Funcs ) ft_default_raster; -#endif - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** P I C S U P P O R T ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /* PIC support macros for ftimage.h */ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DEFINE_OUTLINE_FUNCS */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Outline_Funcs struct. */ - /* When FT_CONFIG_OPTION_PIC is defined an init funtion will need to */ - /* be called with a pre-allocated structure to be filled. */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_OUTLINE_FUNCS( \ - class_, \ - move_to_, \ - line_to_, \ - conic_to_, \ - cubic_to_, \ - shift_, \ - delta_ ) \ - static const FT_Outline_Funcs class_ = \ - { \ - move_to_, \ - line_to_, \ - conic_to_, \ - cubic_to_, \ - shift_, \ - delta_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_OUTLINE_FUNCS( \ - class_, \ - move_to_, \ - line_to_, \ - conic_to_, \ - cubic_to_, \ - shift_, \ - delta_ ) \ - static FT_Error \ - Init_Class_ ## class_( FT_Outline_Funcs* clazz ) \ - { \ - clazz->move_to = move_to_; \ - clazz->line_to = line_to_; \ - clazz->conic_to = conic_to_; \ - clazz->cubic_to = cubic_to_; \ - clazz->shift = shift_; \ - clazz->delta = delta_; \ - \ - return FT_Err_Ok; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DEFINE_RASTER_FUNCS */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Raster_Funcs struct. */ - /* When FT_CONFIG_OPTION_PIC is defined an init funtion will need to */ - /* be called with a pre-allocated structure to be filled. */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_RASTER_FUNCS( \ - class_, \ - glyph_format_, \ - raster_new_, \ - raster_reset_, \ - raster_set_mode_, \ - raster_render_, \ - raster_done_ ) \ - const FT_Raster_Funcs class_ = \ - { \ - glyph_format_, \ - raster_new_, \ - raster_reset_, \ - raster_set_mode_, \ - raster_render_, \ - raster_done_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_RASTER_FUNCS( \ - class_, \ - glyph_format_, \ - raster_new_, \ - raster_reset_, \ - raster_set_mode_, \ - raster_render_, \ - raster_done_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Raster_Funcs* clazz ) \ - { \ - clazz->glyph_format = glyph_format_; \ - clazz->raster_new = raster_new_; \ - clazz->raster_reset = raster_reset_; \ - clazz->raster_set_mode = raster_set_mode_; \ - clazz->raster_render = raster_render_; \ - clazz->raster_done = raster_done_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /* PIC support macros for ftrender.h */ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DEFINE_GLYPH */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Glyph_Class struct. */ - /* When FT_CONFIG_OPTION_PIC is defined an init funtion will need to */ - /* be called with a pre-allocated stcture to be filled. */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_GLYPH( \ - class_, \ - size_, \ - format_, \ - init_, \ - done_, \ - copy_, \ - transform_, \ - bbox_, \ - prepare_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Glyph_Class class_ = \ - { \ - size_, \ - format_, \ - init_, \ - done_, \ - copy_, \ - transform_, \ - bbox_, \ - prepare_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_GLYPH( \ - class_, \ - size_, \ - format_, \ - init_, \ - done_, \ - copy_, \ - transform_, \ - bbox_, \ - prepare_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Glyph_Class* clazz ) \ - { \ - clazz->glyph_size = size_; \ - clazz->glyph_format = format_; \ - clazz->glyph_init = init_; \ - clazz->glyph_done = done_; \ - clazz->glyph_copy = copy_; \ - clazz->glyph_transform = transform_; \ - clazz->glyph_bbox = bbox_; \ - clazz->glyph_prepare = prepare_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DECLARE_RENDERER */ - /* */ - /* <Description> */ - /* Used to create a forward declaration of a */ - /* FT_Renderer_Class struct instance. */ - /* */ - /* <Macro> */ - /* FT_DEFINE_RENDERER */ - /* */ - /* <Description> */ - /* Used to initialize an instance of FT_Renderer_Class struct. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is defined a `create' funtion will need */ - /* to be called with a pointer where the allocated structure is */ - /* returned. And when it is no longer needed a `destroy' function */ - /* needs to be called to release that allocation. */ - /* `fcinit.c' (ft_create_default_module_classes) already contains */ - /* a mechanism to call these functions for the default modules */ - /* described in `ftmodule.h'. */ - /* */ - /* Notice that the created `create' and `destroy' functions call */ - /* `pic_init' and `pic_free' to allow you to manually allocate and */ - /* initialize any additional global data, like a module specific */ - /* interface, and put them in the global pic container defined in */ - /* `ftpic.h'. If you don't need them just implement the functions as */ - /* empty to resolve the link error. Also the `pic_init' and */ - /* `pic_free' functions should be declared in `pic.h', to be referred */ - /* by the renderer definition calling `FT_DEFINE_RENDERER' in the */ - /* following. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DECLARE_RENDERER( class_ ) \ - FT_EXPORT_VAR( const FT_Renderer_Class ) class_; - -#define FT_DEFINE_RENDERER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - glyph_format_, \ - render_glyph_, \ - transform_glyph_, \ - get_glyph_cbox_, \ - set_mode_, \ - raster_class_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Renderer_Class class_ = \ - { \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - glyph_format_, \ - \ - render_glyph_, \ - transform_glyph_, \ - get_glyph_cbox_, \ - set_mode_, \ - \ - raster_class_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DECLARE_RENDERER( class_ ) FT_DECLARE_MODULE( class_ ) - -#define FT_DEFINE_RENDERER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - glyph_format_, \ - render_glyph_, \ - transform_glyph_, \ - get_glyph_cbox_, \ - set_mode_, \ - raster_class_ ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_Module_Class* clazz ) \ - { \ - FT_Renderer_Class* rclazz = (FT_Renderer_Class*)clazz; \ - FT_Memory memory = library->memory; \ - \ - \ - class_ ## _pic_free( library ); \ - if ( rclazz ) \ - FT_FREE( rclazz ); \ - } \ - \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_Module_Class** output_class ) \ - { \ - FT_Renderer_Class* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \ - return error; \ - \ - error = class_ ## _pic_init( library ); \ - if ( error ) \ - { \ - FT_FREE( clazz ); \ - return error; \ - } \ - \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - \ - clazz->glyph_format = glyph_format_; \ - \ - clazz->render_glyph = render_glyph_; \ - clazz->transform_glyph = transform_glyph_; \ - clazz->get_glyph_cbox = get_glyph_cbox_; \ - clazz->set_mode = set_mode_; \ - \ - clazz->raster_class = raster_class_; \ - \ - *output_class = (FT_Module_Class*)clazz; \ - \ - return FT_Err_Ok; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /* PIC support macros for ftmodapi.h **/ - - -#ifdef FT_CONFIG_OPTION_PIC - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Creator */ - /* */ - /* <Description> */ - /* A function used to create (allocate) a new module class object. */ - /* The object's members are initialized, but the module itself is */ - /* not. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory manager. */ - /* output_class :: Initialized with the newly allocated class. */ - /* */ - typedef FT_Error - (*FT_Module_Creator)( FT_Memory memory, - FT_Module_Class** output_class ); - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Module_Destroyer */ - /* */ - /* <Description> */ - /* A function used to destroy (deallocate) a module class object. */ - /* */ - /* <Input> */ - /* memory :: A handle to the memory manager. */ - /* clazz :: Module class to destroy. */ - /* */ - typedef void - (*FT_Module_Destroyer)( FT_Memory memory, - FT_Module_Class* clazz ); - -#endif - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DECLARE_MODULE */ - /* */ - /* <Description> */ - /* Used to create a forward declaration of a */ - /* FT_Module_Class struct instance. */ - /* */ - /* <Macro> */ - /* FT_DEFINE_MODULE */ - /* */ - /* <Description> */ - /* Used to initialize an instance of an FT_Module_Class struct. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is defined a `create' funtion needs to */ - /* be called with a pointer where the allocated structure is */ - /* returned. And when it is no longer needed a `destroy' function */ - /* needs to be called to release that allocation. */ - /* `fcinit.c' (ft_create_default_module_classes) already contains */ - /* a mechanism to call these functions for the default modules */ - /* described in `ftmodule.h'. */ - /* */ - /* Notice that the created `create' and `destroy' functions call */ - /* `pic_init' and `pic_free' to allow you to manually allocate and */ - /* initialize any additional global data, like a module specific */ - /* interface, and put them in the global pic container defined in */ - /* `ftpic.h'. If you don't need them just implement the functions as */ - /* empty to resolve the link error. Also the `pic_init' and */ - /* `pic_free' functions should be declared in `pic.h', to be referred */ - /* by the module definition calling `FT_DEFINE_MODULE' in the */ - /* following. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ - /* allocated in the global scope (or the scope where the macro */ - /* is used). */ - /* */ - /* <Macro> */ - /* FT_DEFINE_ROOT_MODULE */ - /* */ - /* <Description> */ - /* Used to initialize an instance of an FT_Module_Class struct inside */ - /* another struct that contains it or in a function that initializes */ - /* that containing struct. */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DECLARE_MODULE( class_ ) \ - FT_CALLBACK_TABLE \ - const FT_Module_Class class_; - -#define FT_DEFINE_ROOT_MODULE( \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - { \ - flags_, \ - size_, \ - \ - name_, \ - version_, \ - requires_, \ - \ - interface_, \ - \ - init_, \ - done_, \ - get_interface_, \ - }, - -#define FT_DEFINE_MODULE( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Module_Class class_ = \ - { \ - flags_, \ - size_, \ - \ - name_, \ - version_, \ - requires_, \ - \ - interface_, \ - \ - init_, \ - done_, \ - get_interface_, \ - }; - - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DECLARE_MODULE( class_ ) \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_Module_Class** output_class ); \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_Module_Class* clazz ); - -#define FT_DEFINE_ROOT_MODULE( \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - clazz->root.module_flags = flags_; \ - clazz->root.module_size = size_; \ - clazz->root.module_name = name_; \ - clazz->root.module_version = version_; \ - clazz->root.module_requires = requires_; \ - \ - clazz->root.module_interface = interface_; \ - \ - clazz->root.module_init = init_; \ - clazz->root.module_done = done_; \ - clazz->root.get_interface = get_interface_; - -#define FT_DEFINE_MODULE( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_Module_Class* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - class_ ## _pic_free( library ); \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_Module_Class** output_class ) \ - { \ - FT_Memory memory = library->memory; \ - FT_Module_Class* clazz = NULL; \ - FT_Error error; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \ - return error; \ - error = class_ ## _pic_init( library ); \ - if ( error ) \ - { \ - FT_FREE( clazz ); \ - return error; \ - } \ - \ - clazz->module_flags = flags_; \ - clazz->module_size = size_; \ - clazz->module_name = name_; \ - clazz->module_version = version_; \ - clazz->module_requires = requires_; \ - \ - clazz->module_interface = interface_; \ - \ - clazz->module_init = init_; \ - clazz->module_done = done_; \ - clazz->get_interface = get_interface_; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - -FT_END_HEADER - -#endif /* __FTOBJS_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/ftpic.h b/lib/windows/include/freetype/internal/ftpic.h deleted file mode 100644 index 7f9154f..0000000 --- a/lib/windows/include/freetype/internal/ftpic.h +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftpic.h */ -/* */ -/* The FreeType position independent code services (declaration). */ -/* */ -/* Copyright 2009-2015 by */ -/* Oran Agra and Mickey Gabel. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - /*************************************************************************/ - /* */ - /* Modules that ordinarily have const global data that need address */ - /* can instead define pointers here. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTPIC_H__ -#define __FTPIC_H__ - - -FT_BEGIN_HEADER - -#ifdef FT_CONFIG_OPTION_PIC - - typedef struct FT_PIC_Container_ - { - /* pic containers for base */ - void* base; - - /* pic containers for modules */ - void* autofit; - void* cff; - void* pshinter; - void* psnames; - void* raster; - void* sfnt; - void* smooth; - void* truetype; - - } FT_PIC_Container; - - - /* Initialize the various function tables, structs, etc. */ - /* stored in the container. */ - FT_BASE( FT_Error ) - ft_pic_container_init( FT_Library library ); - - - /* Destroy the contents of the container. */ - FT_BASE( void ) - ft_pic_container_destroy( FT_Library library ); - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - -FT_END_HEADER - -#endif /* __FTPIC_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/ftrfork.h b/lib/windows/include/freetype/internal/ftrfork.h deleted file mode 100644 index da61ca7..0000000 --- a/lib/windows/include/freetype/internal/ftrfork.h +++ /dev/null @@ -1,266 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftrfork.h */ -/* */ -/* Embedded resource forks accessor (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* Masatake YAMATO and Redhat K.K. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/***************************************************************************/ -/* Development of the code in this file is support of */ -/* Information-technology Promotion Agency, Japan. */ -/***************************************************************************/ - - -#ifndef __FTRFORK_H__ -#define __FTRFORK_H__ - - -#include <ft2build.h> -#include FT_INTERNAL_OBJECTS_H - - -FT_BEGIN_HEADER - - - /* Number of guessing rules supported in `FT_Raccess_Guess'. */ - /* Don't forget to increment the number if you add a new guessing rule. */ -#define FT_RACCESS_N_RULES 9 - - - /* A structure to describe a reference in a resource by its resource ID */ - /* and internal offset. The `POST' resource expects to be concatenated */ - /* by the order of resource IDs instead of its appearance in the file. */ - - typedef struct FT_RFork_Ref_ - { - FT_UShort res_id; - FT_Long offset; - - } FT_RFork_Ref; - -#ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK - typedef FT_Error - (*ft_raccess_guess_func)( FT_Library library, - FT_Stream stream, - char *base_file_name, - char **result_file_name, - FT_Long *result_offset ); - - typedef enum FT_RFork_Rule_ { - FT_RFork_Rule_invalid = -2, - FT_RFork_Rule_uknown, /* -1 */ - FT_RFork_Rule_apple_double, - FT_RFork_Rule_apple_single, - FT_RFork_Rule_darwin_ufs_export, - FT_RFork_Rule_darwin_newvfs, - FT_RFork_Rule_darwin_hfsplus, - FT_RFork_Rule_vfat, - FT_RFork_Rule_linux_cap, - FT_RFork_Rule_linux_double, - FT_RFork_Rule_linux_netatalk - } FT_RFork_Rule; - - /* For fast translation between rule index and rule type, - * the macros FT_RFORK_xxx should be kept consistent with - * the raccess_guess_funcs table - */ - typedef struct ft_raccess_guess_rec_ { - ft_raccess_guess_func func; - FT_RFork_Rule type; - } ft_raccess_guess_rec; - -#ifndef FT_CONFIG_OPTION_PIC - - /* this array is a storage in non-PIC mode, so ; is needed in END */ -#define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type ) \ - static const type name[] = { -#define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix ) \ - { raccess_guess_ ## func_suffix, \ - FT_RFork_Rule_ ## type_suffix }, -#define CONST_FT_RFORK_RULE_ARRAY_END }; - -#else /* FT_CONFIG_OPTION_PIC */ - - /* this array is a function in PIC mode, so no ; is needed in END */ -#define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type ) \ - void \ - FT_Init_Table_ ## name( type* storage ) \ - { \ - type* local = storage; \ - \ - \ - int i = 0; -#define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix ) \ - local[i].func = raccess_guess_ ## func_suffix; \ - local[i].type = FT_RFork_Rule_ ## type_suffix; \ - i++; -#define CONST_FT_RFORK_RULE_ARRAY_END } - -#endif /* FT_CONFIG_OPTION_PIC */ - -#endif /* FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK */ - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Raccess_Guess */ - /* */ - /* <Description> */ - /* Guess a file name and offset where the actual resource fork is */ - /* stored. The macro FT_RACCESS_N_RULES holds the number of */ - /* guessing rules; the guessed result for the Nth rule is */ - /* represented as a triplet: a new file name (new_names[N]), a file */ - /* offset (offsets[N]), and an error code (errors[N]). */ - /* */ - /* <Input> */ - /* library :: */ - /* A FreeType library instance. */ - /* */ - /* stream :: */ - /* A file stream containing the resource fork. */ - /* */ - /* base_name :: */ - /* The (base) file name of the resource fork used for some */ - /* guessing rules. */ - /* */ - /* <Output> */ - /* new_names :: */ - /* An array of guessed file names in which the resource forks may */ - /* exist. If `new_names[N]' is NULL, the guessed file name is */ - /* equal to `base_name'. */ - /* */ - /* offsets :: */ - /* An array of guessed file offsets. `offsets[N]' holds the file */ - /* offset of the possible start of the resource fork in file */ - /* `new_names[N]'. */ - /* */ - /* errors :: */ - /* An array of FreeType error codes. `errors[N]' is the error */ - /* code of Nth guessing rule function. If `errors[N]' is not */ - /* FT_Err_Ok, `new_names[N]' and `offsets[N]' are meaningless. */ - /* */ - FT_BASE( void ) - FT_Raccess_Guess( FT_Library library, - FT_Stream stream, - char* base_name, - char** new_names, - FT_Long* offsets, - FT_Error* errors ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Raccess_Get_HeaderInfo */ - /* */ - /* <Description> */ - /* Get the information from the header of resource fork. The */ - /* information includes the file offset where the resource map */ - /* starts, and the file offset where the resource data starts. */ - /* `FT_Raccess_Get_DataOffsets' requires these two data. */ - /* */ - /* <Input> */ - /* library :: */ - /* A FreeType library instance. */ - /* */ - /* stream :: */ - /* A file stream containing the resource fork. */ - /* */ - /* rfork_offset :: */ - /* The file offset where the resource fork starts. */ - /* */ - /* <Output> */ - /* map_offset :: */ - /* The file offset where the resource map starts. */ - /* */ - /* rdata_pos :: */ - /* The file offset where the resource data starts. */ - /* */ - /* <Return> */ - /* FreeType error code. FT_Err_Ok means success. */ - /* */ - FT_BASE( FT_Error ) - FT_Raccess_Get_HeaderInfo( FT_Library library, - FT_Stream stream, - FT_Long rfork_offset, - FT_Long *map_offset, - FT_Long *rdata_pos ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Raccess_Get_DataOffsets */ - /* */ - /* <Description> */ - /* Get the data offsets for a tag in a resource fork. Offsets are */ - /* stored in an array because, in some cases, resources in a resource */ - /* fork have the same tag. */ - /* */ - /* <Input> */ - /* library :: */ - /* A FreeType library instance. */ - /* */ - /* stream :: */ - /* A file stream containing the resource fork. */ - /* */ - /* map_offset :: */ - /* The file offset where the resource map starts. */ - /* */ - /* rdata_pos :: */ - /* The file offset where the resource data starts. */ - /* */ - /* tag :: */ - /* The resource tag. */ - /* */ - /* sort_by_res_id :: */ - /* A Boolean to sort the fragmented resource by their ids. */ - /* The fragmented resources for `POST' resource should be sorted */ - /* to restore Type1 font properly. For `snft' resources, sorting */ - /* may induce a different order of the faces in comparison to that */ - /* by QuickDraw API. */ - /* */ - /* <Output> */ - /* offsets :: */ - /* The stream offsets for the resource data specified by `tag'. */ - /* This array is allocated by the function, so you have to call */ - /* @ft_mem_free after use. */ - /* */ - /* count :: */ - /* The length of offsets array. */ - /* */ - /* <Return> */ - /* FreeType error code. FT_Err_Ok means success. */ - /* */ - /* <Note> */ - /* Normally you should use `FT_Raccess_Get_HeaderInfo' to get the */ - /* value for `map_offset' and `rdata_pos'. */ - /* */ - FT_BASE( FT_Error ) - FT_Raccess_Get_DataOffsets( FT_Library library, - FT_Stream stream, - FT_Long map_offset, - FT_Long rdata_pos, - FT_Long tag, - FT_Bool sort_by_res_id, - FT_Long **offsets, - FT_Long *count ); - - -FT_END_HEADER - -#endif /* __FTRFORK_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/ftserv.h b/lib/windows/include/freetype/internal/ftserv.h deleted file mode 100644 index 8f837e4..0000000 --- a/lib/windows/include/freetype/internal/ftserv.h +++ /dev/null @@ -1,763 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftserv.h */ -/* */ -/* The FreeType services (specification only). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - /*************************************************************************/ - /* */ - /* Each module can export one or more `services'. Each service is */ - /* identified by a constant string and modeled by a pointer; the latter */ - /* generally corresponds to a structure containing function pointers. */ - /* */ - /* Note that a service's data cannot be a mere function pointer because */ - /* in C it is possible that function pointers might be implemented */ - /* differently than data pointers (e.g. 48 bits instead of 32). */ - /* */ - /*************************************************************************/ - - -#ifndef __FTSERV_H__ -#define __FTSERV_H__ - - -FT_BEGIN_HEADER - - /* - * @macro: - * FT_FACE_FIND_SERVICE - * - * @description: - * This macro is used to look up a service from a face's driver module. - * - * @input: - * face :: - * The source face handle. - * - * id :: - * A string describing the service as defined in the service's - * header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to - * `multi-masters'). It is automatically prefixed with - * `FT_SERVICE_ID_'. - * - * @output: - * ptr :: - * A variable that receives the service pointer. Will be NULL - * if not found. - */ -#ifdef __cplusplus - -#define FT_FACE_FIND_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ - FT_Pointer _tmp_ = NULL; \ - FT_Pointer* _pptr_ = (FT_Pointer*)&(ptr); \ - \ - \ - if ( module->clazz->get_interface ) \ - _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \ - *_pptr_ = _tmp_; \ - FT_END_STMNT - -#else /* !C++ */ - -#define FT_FACE_FIND_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ - FT_Pointer _tmp_ = NULL; \ - \ - if ( module->clazz->get_interface ) \ - _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \ - ptr = _tmp_; \ - FT_END_STMNT - -#endif /* !C++ */ - - - /* - * @macro: - * FT_FACE_FIND_GLOBAL_SERVICE - * - * @description: - * This macro is used to look up a service from all modules. - * - * @input: - * face :: - * The source face handle. - * - * id :: - * A string describing the service as defined in the service's - * header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to - * `multi-masters'). It is automatically prefixed with - * `FT_SERVICE_ID_'. - * - * @output: - * ptr :: - * A variable that receives the service pointer. Will be NULL - * if not found. - */ -#ifdef __cplusplus - -#define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ - FT_Pointer _tmp_; \ - FT_Pointer* _pptr_ = (FT_Pointer*)&(ptr); \ - \ - \ - _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \ - *_pptr_ = _tmp_; \ - FT_END_STMNT - -#else /* !C++ */ - -#define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ - FT_Pointer _tmp_; \ - \ - \ - _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \ - ptr = _tmp_; \ - FT_END_STMNT - -#endif /* !C++ */ - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** S E R V I C E D E S C R I P T O R S *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /* - * The following structure is used to _describe_ a given service - * to the library. This is useful to build simple static service lists. - */ - typedef struct FT_ServiceDescRec_ - { - const char* serv_id; /* service name */ - const void* serv_data; /* service pointer/data */ - - } FT_ServiceDescRec; - - typedef const FT_ServiceDescRec* FT_ServiceDesc; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_DEFINE_SERVICEDESCREC1 */ - /* FT_DEFINE_SERVICEDESCREC2 */ - /* FT_DEFINE_SERVICEDESCREC3 */ - /* FT_DEFINE_SERVICEDESCREC4 */ - /* FT_DEFINE_SERVICEDESCREC5 */ - /* FT_DEFINE_SERVICEDESCREC6 */ - /* FT_DEFINE_SERVICEDESCREC7 */ - /* */ - /* <Description> */ - /* Used to initialize an array of FT_ServiceDescRec structures. */ - /* */ - /* When FT_CONFIG_OPTION_PIC is defined a `create' function needs to */ - /* be called with a pointer to return an allocated array. As soon as */ - /* it is no longer needed, a `destroy' function needs to be called to */ - /* release that allocation. */ - /* */ - /* These functions should be manually called from the `pic_init' and */ - /* `pic_free' functions of your module (see FT_DEFINE_MODULE). */ - /* */ - /* When FT_CONFIG_OPTION_PIC is not defined the array will be */ - /* allocated in the global scope (or the scope where the macro is */ - /* used). */ - /* */ -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICEDESCREC1( class_, \ - serv_id_1, serv_data_1 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC2( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC3( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC4( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { serv_id_4, serv_data_4 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC5( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { serv_id_4, serv_data_4 }, \ - { serv_id_5, serv_data_5 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC6( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5, \ - serv_id_6, serv_data_6 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { serv_id_4, serv_data_4 }, \ - { serv_id_5, serv_data_5 }, \ - { serv_id_6, serv_data_6 }, \ - { NULL, NULL } \ - }; - -#define FT_DEFINE_SERVICEDESCREC7( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5, \ - serv_id_6, serv_data_6, \ - serv_id_7, serv_data_7 ) \ - static const FT_ServiceDescRec class_[] = \ - { \ - { serv_id_1, serv_data_1 }, \ - { serv_id_2, serv_data_2 }, \ - { serv_id_3, serv_data_3 }, \ - { serv_id_4, serv_data_4 }, \ - { serv_id_5, serv_data_5 }, \ - { serv_id_6, serv_data_6 }, \ - { serv_id_7, serv_data_7 }, \ - { NULL, NULL } \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICEDESCREC1( class_, \ - serv_id_1, serv_data_1 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 2 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = NULL; \ - clazz[1].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC2( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 3 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = NULL; \ - clazz[2].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC3( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 4 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = NULL; \ - clazz[3].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC4( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 5 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = serv_id_4; \ - clazz[3].serv_data = serv_data_4; \ - clazz[4].serv_id = NULL; \ - clazz[4].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC5( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class ) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 6 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = serv_id_4; \ - clazz[3].serv_data = serv_data_4; \ - clazz[4].serv_id = serv_id_5; \ - clazz[4].serv_data = serv_data_5; \ - clazz[5].serv_id = NULL; \ - clazz[5].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC6( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5, \ - serv_id_6, serv_data_6 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 7 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = serv_id_4; \ - clazz[3].serv_data = serv_data_4; \ - clazz[4].serv_id = serv_id_5; \ - clazz[4].serv_data = serv_data_5; \ - clazz[5].serv_id = serv_id_6; \ - clazz[5].serv_data = serv_data_6; \ - clazz[6].serv_id = NULL; \ - clazz[6].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#define FT_DEFINE_SERVICEDESCREC7( class_, \ - serv_id_1, serv_data_1, \ - serv_id_2, serv_data_2, \ - serv_id_3, serv_data_3, \ - serv_id_4, serv_data_4, \ - serv_id_5, serv_data_5, \ - serv_id_6, serv_data_6, \ - serv_id_7, serv_data_7 ) \ - void \ - FT_Destroy_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec* clazz ) \ - { \ - FT_Memory memory = library->memory; \ - \ - \ - if ( clazz ) \ - FT_FREE( clazz ); \ - } \ - \ - FT_Error \ - FT_Create_Class_ ## class_( FT_Library library, \ - FT_ServiceDescRec** output_class) \ - { \ - FT_ServiceDescRec* clazz = NULL; \ - FT_Error error; \ - FT_Memory memory = library->memory; \ - \ - \ - if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 8 ) ) \ - return error; \ - \ - clazz[0].serv_id = serv_id_1; \ - clazz[0].serv_data = serv_data_1; \ - clazz[1].serv_id = serv_id_2; \ - clazz[1].serv_data = serv_data_2; \ - clazz[2].serv_id = serv_id_3; \ - clazz[2].serv_data = serv_data_3; \ - clazz[3].serv_id = serv_id_4; \ - clazz[3].serv_data = serv_data_4; \ - clazz[4].serv_id = serv_id_5; \ - clazz[4].serv_data = serv_data_5; \ - clazz[5].serv_id = serv_id_6; \ - clazz[5].serv_data = serv_data_6; \ - clazz[6].serv_id = serv_id_7; \ - clazz[6].serv_data = serv_data_7; \ - clazz[7].serv_id = NULL; \ - clazz[7].serv_data = NULL; \ - \ - *output_class = clazz; \ - \ - return FT_Err_Ok; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - - /* - * Parse a list of FT_ServiceDescRec descriptors and look for - * a specific service by ID. Note that the last element in the - * array must be { NULL, NULL }, and that the function should - * return NULL if the service isn't available. - * - * This function can be used by modules to implement their - * `get_service' method. - */ - FT_BASE( FT_Pointer ) - ft_service_list_lookup( FT_ServiceDesc service_descriptors, - const char* service_id ); - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** S E R V I C E S C A C H E *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /* - * This structure is used to store a cache for several frequently used - * services. It is the type of `face->internal->services'. You - * should only use FT_FACE_LOOKUP_SERVICE to access it. - * - * All fields should have the type FT_Pointer to relax compilation - * dependencies. We assume the developer isn't completely stupid. - * - * Each field must be named `service_XXXX' where `XXX' corresponds to - * the correct FT_SERVICE_ID_XXXX macro. See the definition of - * FT_FACE_LOOKUP_SERVICE below how this is implemented. - * - */ - typedef struct FT_ServiceCacheRec_ - { - FT_Pointer service_POSTSCRIPT_FONT_NAME; - FT_Pointer service_MULTI_MASTERS; - FT_Pointer service_GLYPH_DICT; - FT_Pointer service_PFR_METRICS; - FT_Pointer service_WINFNT; - - } FT_ServiceCacheRec, *FT_ServiceCache; - - - /* - * A magic number used within the services cache. - */ - - /* ensure that value `1' has the same width as a pointer */ -#define FT_SERVICE_UNAVAILABLE ((FT_Pointer)~(FT_PtrDist)1) - - - /* - * @macro: - * FT_FACE_LOOKUP_SERVICE - * - * @description: - * This macro is used to lookup a service from a face's driver module - * using its cache. - * - * @input: - * face:: - * The source face handle containing the cache. - * - * field :: - * The field name in the cache. - * - * id :: - * The service ID. - * - * @output: - * ptr :: - * A variable receiving the service data. NULL if not available. - */ -#ifdef __cplusplus - -#define FT_FACE_LOOKUP_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Pointer svc; \ - FT_Pointer* Pptr = (FT_Pointer*)&(ptr); \ - \ - \ - svc = FT_FACE( face )->internal->services. service_ ## id; \ - if ( svc == FT_SERVICE_UNAVAILABLE ) \ - svc = NULL; \ - else if ( svc == NULL ) \ - { \ - FT_FACE_FIND_SERVICE( face, svc, id ); \ - \ - FT_FACE( face )->internal->services. service_ ## id = \ - (FT_Pointer)( svc != NULL ? svc \ - : FT_SERVICE_UNAVAILABLE ); \ - } \ - *Pptr = svc; \ - FT_END_STMNT - -#else /* !C++ */ - -#define FT_FACE_LOOKUP_SERVICE( face, ptr, id ) \ - FT_BEGIN_STMNT \ - FT_Pointer svc; \ - \ - \ - svc = FT_FACE( face )->internal->services. service_ ## id; \ - if ( svc == FT_SERVICE_UNAVAILABLE ) \ - svc = NULL; \ - else if ( svc == NULL ) \ - { \ - FT_FACE_FIND_SERVICE( face, svc, id ); \ - \ - FT_FACE( face )->internal->services. service_ ## id = \ - (FT_Pointer)( svc != NULL ? svc \ - : FT_SERVICE_UNAVAILABLE ); \ - } \ - ptr = svc; \ - FT_END_STMNT - -#endif /* !C++ */ - - /* - * A macro used to define new service structure types. - */ - -#define FT_DEFINE_SERVICE( name ) \ - typedef struct FT_Service_ ## name ## Rec_ \ - FT_Service_ ## name ## Rec ; \ - typedef struct FT_Service_ ## name ## Rec_ \ - const * FT_Service_ ## name ; \ - struct FT_Service_ ## name ## Rec_ - - /* */ - - /* - * The header files containing the services. - */ - -#define FT_SERVICE_BDF_H <internal/services/svbdf.h> -#define FT_SERVICE_CID_H <internal/services/svcid.h> -#define FT_SERVICE_GLYPH_DICT_H <internal/services/svgldict.h> -#define FT_SERVICE_GX_VALIDATE_H <internal/services/svgxval.h> -#define FT_SERVICE_KERNING_H <internal/services/svkern.h> -#define FT_SERVICE_MULTIPLE_MASTERS_H <internal/services/svmm.h> -#define FT_SERVICE_OPENTYPE_VALIDATE_H <internal/services/svotval.h> -#define FT_SERVICE_PFR_H <internal/services/svpfr.h> -#define FT_SERVICE_POSTSCRIPT_CMAPS_H <internal/services/svpscmap.h> -#define FT_SERVICE_POSTSCRIPT_INFO_H <internal/services/svpsinfo.h> -#define FT_SERVICE_POSTSCRIPT_NAME_H <internal/services/svpostnm.h> -#define FT_SERVICE_PROPERTIES_H <internal/services/svprop.h> -#define FT_SERVICE_SFNT_H <internal/services/svsfnt.h> -#define FT_SERVICE_TRUETYPE_ENGINE_H <internal/services/svtteng.h> -#define FT_SERVICE_TT_CMAP_H <internal/services/svttcmap.h> -#define FT_SERVICE_WINFNT_H <internal/services/svwinfnt.h> -#define FT_SERVICE_FONT_FORMAT_H <internal/services/svfntfmt.h> -#define FT_SERVICE_TRUETYPE_GLYF_H <internal/services/svttglyf.h> - - /* */ - -FT_END_HEADER - -#endif /* __FTSERV_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/ftstream.h b/lib/windows/include/freetype/internal/ftstream.h deleted file mode 100644 index 384e5df..0000000 --- a/lib/windows/include/freetype/internal/ftstream.h +++ /dev/null @@ -1,536 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftstream.h */ -/* */ -/* Stream handling (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTSTREAM_H__ -#define __FTSTREAM_H__ - - -#include <ft2build.h> -#include FT_SYSTEM_H -#include FT_INTERNAL_OBJECTS_H - - -FT_BEGIN_HEADER - - - /* format of an 8-bit frame_op value: */ - /* */ - /* bit 76543210 */ - /* xxxxxxes */ - /* */ - /* s is set to 1 if the value is signed. */ - /* e is set to 1 if the value is little-endian. */ - /* xxx is a command. */ - -#define FT_FRAME_OP_SHIFT 2 -#define FT_FRAME_OP_SIGNED 1 -#define FT_FRAME_OP_LITTLE 2 -#define FT_FRAME_OP_COMMAND( x ) ( x >> FT_FRAME_OP_SHIFT ) - -#define FT_MAKE_FRAME_OP( command, little, sign ) \ - ( ( command << FT_FRAME_OP_SHIFT ) | ( little << 1 ) | sign ) - -#define FT_FRAME_OP_END 0 -#define FT_FRAME_OP_START 1 /* start a new frame */ -#define FT_FRAME_OP_BYTE 2 /* read 1-byte value */ -#define FT_FRAME_OP_SHORT 3 /* read 2-byte value */ -#define FT_FRAME_OP_LONG 4 /* read 4-byte value */ -#define FT_FRAME_OP_OFF3 5 /* read 3-byte value */ -#define FT_FRAME_OP_BYTES 6 /* read a bytes sequence */ - - - typedef enum FT_Frame_Op_ - { - ft_frame_end = 0, - ft_frame_start = FT_MAKE_FRAME_OP( FT_FRAME_OP_START, 0, 0 ), - - ft_frame_byte = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE, 0, 0 ), - ft_frame_schar = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE, 0, 1 ), - - ft_frame_ushort_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 0 ), - ft_frame_short_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 1 ), - ft_frame_ushort_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 0 ), - ft_frame_short_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 1 ), - - ft_frame_ulong_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 0 ), - ft_frame_long_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 1 ), - ft_frame_ulong_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 1, 0 ), - ft_frame_long_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 1, 1 ), - - ft_frame_uoff3_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 0, 0 ), - ft_frame_off3_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 0, 1 ), - ft_frame_uoff3_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 0 ), - ft_frame_off3_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 1 ), - - ft_frame_bytes = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTES, 0, 0 ), - ft_frame_skip = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTES, 0, 1 ) - - } FT_Frame_Op; - - - typedef struct FT_Frame_Field_ - { - FT_Byte value; - FT_Byte size; - FT_UShort offset; - - } FT_Frame_Field; - - - /* Construct an FT_Frame_Field out of a structure type and a field name. */ - /* The structure type must be set in the FT_STRUCTURE macro before */ - /* calling the FT_FRAME_START() macro. */ - /* */ -#define FT_FIELD_SIZE( f ) \ - (FT_Byte)sizeof ( ((FT_STRUCTURE*)0)->f ) - -#define FT_FIELD_SIZE_DELTA( f ) \ - (FT_Byte)sizeof ( ((FT_STRUCTURE*)0)->f[0] ) - -#define FT_FIELD_OFFSET( f ) \ - (FT_UShort)( offsetof( FT_STRUCTURE, f ) ) - -#define FT_FRAME_FIELD( frame_op, field ) \ - { \ - frame_op, \ - FT_FIELD_SIZE( field ), \ - FT_FIELD_OFFSET( field ) \ - } - -#define FT_MAKE_EMPTY_FIELD( frame_op ) { frame_op, 0, 0 } - -#define FT_FRAME_START( size ) { ft_frame_start, 0, size } -#define FT_FRAME_END { ft_frame_end, 0, 0 } - -#define FT_FRAME_LONG( f ) FT_FRAME_FIELD( ft_frame_long_be, f ) -#define FT_FRAME_ULONG( f ) FT_FRAME_FIELD( ft_frame_ulong_be, f ) -#define FT_FRAME_SHORT( f ) FT_FRAME_FIELD( ft_frame_short_be, f ) -#define FT_FRAME_USHORT( f ) FT_FRAME_FIELD( ft_frame_ushort_be, f ) -#define FT_FRAME_OFF3( f ) FT_FRAME_FIELD( ft_frame_off3_be, f ) -#define FT_FRAME_UOFF3( f ) FT_FRAME_FIELD( ft_frame_uoff3_be, f ) -#define FT_FRAME_BYTE( f ) FT_FRAME_FIELD( ft_frame_byte, f ) -#define FT_FRAME_CHAR( f ) FT_FRAME_FIELD( ft_frame_schar, f ) - -#define FT_FRAME_LONG_LE( f ) FT_FRAME_FIELD( ft_frame_long_le, f ) -#define FT_FRAME_ULONG_LE( f ) FT_FRAME_FIELD( ft_frame_ulong_le, f ) -#define FT_FRAME_SHORT_LE( f ) FT_FRAME_FIELD( ft_frame_short_le, f ) -#define FT_FRAME_USHORT_LE( f ) FT_FRAME_FIELD( ft_frame_ushort_le, f ) -#define FT_FRAME_OFF3_LE( f ) FT_FRAME_FIELD( ft_frame_off3_le, f ) -#define FT_FRAME_UOFF3_LE( f ) FT_FRAME_FIELD( ft_frame_uoff3_le, f ) - -#define FT_FRAME_SKIP_LONG { ft_frame_long_be, 0, 0 } -#define FT_FRAME_SKIP_SHORT { ft_frame_short_be, 0, 0 } -#define FT_FRAME_SKIP_BYTE { ft_frame_byte, 0, 0 } - -#define FT_FRAME_BYTES( field, count ) \ - { \ - ft_frame_bytes, \ - count, \ - FT_FIELD_OFFSET( field ) \ - } - -#define FT_FRAME_SKIP_BYTES( count ) { ft_frame_skip, count, 0 } - - - /*************************************************************************/ - /* */ - /* Integer extraction macros -- the `buffer' parameter must ALWAYS be of */ - /* type `char*' or equivalent (1-byte elements). */ - /* */ - -#define FT_BYTE_( p, i ) ( ((const FT_Byte*)(p))[(i)] ) - -#define FT_INT16( x ) ( (FT_Int16)(x) ) -#define FT_UINT16( x ) ( (FT_UInt16)(x) ) -#define FT_INT32( x ) ( (FT_Int32)(x) ) -#define FT_UINT32( x ) ( (FT_UInt32)(x) ) - - -#define FT_BYTE_U16( p, i, s ) ( FT_UINT16( FT_BYTE_( p, i ) ) << (s) ) -#define FT_BYTE_U32( p, i, s ) ( FT_UINT32( FT_BYTE_( p, i ) ) << (s) ) - - -#define FT_PEEK_SHORT( p ) FT_INT16( FT_BYTE_U16( p, 0, 8) | \ - FT_BYTE_U16( p, 1, 0) ) - -#define FT_PEEK_USHORT( p ) FT_UINT16( FT_BYTE_U16( p, 0, 8 ) | \ - FT_BYTE_U16( p, 1, 0 ) ) - -#define FT_PEEK_LONG( p ) FT_INT32( FT_BYTE_U32( p, 0, 24 ) | \ - FT_BYTE_U32( p, 1, 16 ) | \ - FT_BYTE_U32( p, 2, 8 ) | \ - FT_BYTE_U32( p, 3, 0 ) ) - -#define FT_PEEK_ULONG( p ) FT_UINT32( FT_BYTE_U32( p, 0, 24 ) | \ - FT_BYTE_U32( p, 1, 16 ) | \ - FT_BYTE_U32( p, 2, 8 ) | \ - FT_BYTE_U32( p, 3, 0 ) ) - -#define FT_PEEK_OFF3( p ) FT_INT32( FT_BYTE_U32( p, 0, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 2, 0 ) ) - -#define FT_PEEK_UOFF3( p ) FT_UINT32( FT_BYTE_U32( p, 0, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 2, 0 ) ) - -#define FT_PEEK_SHORT_LE( p ) FT_INT16( FT_BYTE_U16( p, 1, 8 ) | \ - FT_BYTE_U16( p, 0, 0 ) ) - -#define FT_PEEK_USHORT_LE( p ) FT_UINT16( FT_BYTE_U16( p, 1, 8 ) | \ - FT_BYTE_U16( p, 0, 0 ) ) - -#define FT_PEEK_LONG_LE( p ) FT_INT32( FT_BYTE_U32( p, 3, 24 ) | \ - FT_BYTE_U32( p, 2, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 0, 0 ) ) - -#define FT_PEEK_ULONG_LE( p ) FT_UINT32( FT_BYTE_U32( p, 3, 24 ) | \ - FT_BYTE_U32( p, 2, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 0, 0 ) ) - -#define FT_PEEK_OFF3_LE( p ) FT_INT32( FT_BYTE_U32( p, 2, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 0, 0 ) ) - -#define FT_PEEK_UOFF3_LE( p ) FT_UINT32( FT_BYTE_U32( p, 2, 16 ) | \ - FT_BYTE_U32( p, 1, 8 ) | \ - FT_BYTE_U32( p, 0, 0 ) ) - - -#define FT_NEXT_CHAR( buffer ) \ - ( (signed char)*buffer++ ) - -#define FT_NEXT_BYTE( buffer ) \ - ( (unsigned char)*buffer++ ) - -#define FT_NEXT_SHORT( buffer ) \ - ( (short)( buffer += 2, FT_PEEK_SHORT( buffer - 2 ) ) ) - -#define FT_NEXT_USHORT( buffer ) \ - ( (unsigned short)( buffer += 2, FT_PEEK_USHORT( buffer - 2 ) ) ) - -#define FT_NEXT_OFF3( buffer ) \ - ( (long)( buffer += 3, FT_PEEK_OFF3( buffer - 3 ) ) ) - -#define FT_NEXT_UOFF3( buffer ) \ - ( (unsigned long)( buffer += 3, FT_PEEK_UOFF3( buffer - 3 ) ) ) - -#define FT_NEXT_LONG( buffer ) \ - ( (long)( buffer += 4, FT_PEEK_LONG( buffer - 4 ) ) ) - -#define FT_NEXT_ULONG( buffer ) \ - ( (unsigned long)( buffer += 4, FT_PEEK_ULONG( buffer - 4 ) ) ) - - -#define FT_NEXT_SHORT_LE( buffer ) \ - ( (short)( buffer += 2, FT_PEEK_SHORT_LE( buffer - 2 ) ) ) - -#define FT_NEXT_USHORT_LE( buffer ) \ - ( (unsigned short)( buffer += 2, FT_PEEK_USHORT_LE( buffer - 2 ) ) ) - -#define FT_NEXT_OFF3_LE( buffer ) \ - ( (long)( buffer += 3, FT_PEEK_OFF3_LE( buffer - 3 ) ) ) - -#define FT_NEXT_UOFF3_LE( buffer ) \ - ( (unsigned long)( buffer += 3, FT_PEEK_UOFF3_LE( buffer - 3 ) ) ) - -#define FT_NEXT_LONG_LE( buffer ) \ - ( (long)( buffer += 4, FT_PEEK_LONG_LE( buffer - 4 ) ) ) - -#define FT_NEXT_ULONG_LE( buffer ) \ - ( (unsigned long)( buffer += 4, FT_PEEK_ULONG_LE( buffer - 4 ) ) ) - - - /*************************************************************************/ - /* */ - /* Each GET_xxxx() macro uses an implicit `stream' variable. */ - /* */ -#if 0 -#define FT_GET_MACRO( type ) FT_NEXT_ ## type ( stream->cursor ) - -#define FT_GET_CHAR() FT_GET_MACRO( CHAR ) -#define FT_GET_BYTE() FT_GET_MACRO( BYTE ) -#define FT_GET_SHORT() FT_GET_MACRO( SHORT ) -#define FT_GET_USHORT() FT_GET_MACRO( USHORT ) -#define FT_GET_OFF3() FT_GET_MACRO( OFF3 ) -#define FT_GET_UOFF3() FT_GET_MACRO( UOFF3 ) -#define FT_GET_LONG() FT_GET_MACRO( LONG ) -#define FT_GET_ULONG() FT_GET_MACRO( ULONG ) -#define FT_GET_TAG4() FT_GET_MACRO( ULONG ) - -#define FT_GET_SHORT_LE() FT_GET_MACRO( SHORT_LE ) -#define FT_GET_USHORT_LE() FT_GET_MACRO( USHORT_LE ) -#define FT_GET_LONG_LE() FT_GET_MACRO( LONG_LE ) -#define FT_GET_ULONG_LE() FT_GET_MACRO( ULONG_LE ) - -#else -#define FT_GET_MACRO( func, type ) ( (type)func( stream ) ) - -#define FT_GET_CHAR() FT_GET_MACRO( FT_Stream_GetChar, FT_Char ) -#define FT_GET_BYTE() FT_GET_MACRO( FT_Stream_GetChar, FT_Byte ) -#define FT_GET_SHORT() FT_GET_MACRO( FT_Stream_GetUShort, FT_Short ) -#define FT_GET_USHORT() FT_GET_MACRO( FT_Stream_GetUShort, FT_UShort ) -#define FT_GET_OFF3() FT_GET_MACRO( FT_Stream_GetUOffset, FT_Long ) -#define FT_GET_UOFF3() FT_GET_MACRO( FT_Stream_GetUOffset, FT_ULong ) -#define FT_GET_LONG() FT_GET_MACRO( FT_Stream_GetULong, FT_Long ) -#define FT_GET_ULONG() FT_GET_MACRO( FT_Stream_GetULong, FT_ULong ) -#define FT_GET_TAG4() FT_GET_MACRO( FT_Stream_GetULong, FT_ULong ) - -#define FT_GET_SHORT_LE() FT_GET_MACRO( FT_Stream_GetUShortLE, FT_Short ) -#define FT_GET_USHORT_LE() FT_GET_MACRO( FT_Stream_GetUShortLE, FT_UShort ) -#define FT_GET_LONG_LE() FT_GET_MACRO( FT_Stream_GetULongLE, FT_Long ) -#define FT_GET_ULONG_LE() FT_GET_MACRO( FT_Stream_GetULongLE, FT_ULong ) -#endif - -#define FT_READ_MACRO( func, type, var ) \ - ( var = (type)func( stream, &error ), \ - error != FT_Err_Ok ) - -#define FT_READ_BYTE( var ) FT_READ_MACRO( FT_Stream_ReadChar, FT_Byte, var ) -#define FT_READ_CHAR( var ) FT_READ_MACRO( FT_Stream_ReadChar, FT_Char, var ) -#define FT_READ_SHORT( var ) FT_READ_MACRO( FT_Stream_ReadUShort, FT_Short, var ) -#define FT_READ_USHORT( var ) FT_READ_MACRO( FT_Stream_ReadUShort, FT_UShort, var ) -#define FT_READ_OFF3( var ) FT_READ_MACRO( FT_Stream_ReadUOffset, FT_Long, var ) -#define FT_READ_UOFF3( var ) FT_READ_MACRO( FT_Stream_ReadUOffset, FT_ULong, var ) -#define FT_READ_LONG( var ) FT_READ_MACRO( FT_Stream_ReadULong, FT_Long, var ) -#define FT_READ_ULONG( var ) FT_READ_MACRO( FT_Stream_ReadULong, FT_ULong, var ) - -#define FT_READ_SHORT_LE( var ) FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_Short, var ) -#define FT_READ_USHORT_LE( var ) FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_UShort, var ) -#define FT_READ_LONG_LE( var ) FT_READ_MACRO( FT_Stream_ReadULongLE, FT_Long, var ) -#define FT_READ_ULONG_LE( var ) FT_READ_MACRO( FT_Stream_ReadULongLE, FT_ULong, var ) - - -#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM - - /* initialize a stream for reading a regular system stream */ - FT_BASE( FT_Error ) - FT_Stream_Open( FT_Stream stream, - const char* filepathname ); - -#endif /* FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM */ - - - /* create a new (input) stream from an FT_Open_Args structure */ - FT_BASE( FT_Error ) - FT_Stream_New( FT_Library library, - const FT_Open_Args* args, - FT_Stream *astream ); - - /* free a stream */ - FT_BASE( void ) - FT_Stream_Free( FT_Stream stream, - FT_Int external ); - - /* initialize a stream for reading in-memory data */ - FT_BASE( void ) - FT_Stream_OpenMemory( FT_Stream stream, - const FT_Byte* base, - FT_ULong size ); - - /* close a stream (does not destroy the stream structure) */ - FT_BASE( void ) - FT_Stream_Close( FT_Stream stream ); - - - /* seek within a stream. position is relative to start of stream */ - FT_BASE( FT_Error ) - FT_Stream_Seek( FT_Stream stream, - FT_ULong pos ); - - /* skip bytes in a stream */ - FT_BASE( FT_Error ) - FT_Stream_Skip( FT_Stream stream, - FT_Long distance ); - - /* return current stream position */ - FT_BASE( FT_ULong ) - FT_Stream_Pos( FT_Stream stream ); - - /* read bytes from a stream into a user-allocated buffer, returns an */ - /* error if not all bytes could be read. */ - FT_BASE( FT_Error ) - FT_Stream_Read( FT_Stream stream, - FT_Byte* buffer, - FT_ULong count ); - - /* read bytes from a stream at a given position */ - FT_BASE( FT_Error ) - FT_Stream_ReadAt( FT_Stream stream, - FT_ULong pos, - FT_Byte* buffer, - FT_ULong count ); - - /* try to read bytes at the end of a stream; return number of bytes */ - /* really available */ - FT_BASE( FT_ULong ) - FT_Stream_TryRead( FT_Stream stream, - FT_Byte* buffer, - FT_ULong count ); - - /* Enter a frame of `count' consecutive bytes in a stream. Returns an */ - /* error if the frame could not be read/accessed. The caller can use */ - /* the FT_Stream_Get_XXX functions to retrieve frame data without */ - /* error checks. */ - /* */ - /* You must _always_ call FT_Stream_ExitFrame() once you have entered */ - /* a stream frame! */ - /* */ - FT_BASE( FT_Error ) - FT_Stream_EnterFrame( FT_Stream stream, - FT_ULong count ); - - /* exit a stream frame */ - FT_BASE( void ) - FT_Stream_ExitFrame( FT_Stream stream ); - - /* Extract a stream frame. If the stream is disk-based, a heap block */ - /* is allocated and the frame bytes are read into it. If the stream */ - /* is memory-based, this function simply set a pointer to the data. */ - /* */ - /* Useful to optimize access to memory-based streams transparently. */ - /* */ - /* All extracted frames must be `freed' with a call to the function */ - /* FT_Stream_ReleaseFrame(). */ - /* */ - FT_BASE( FT_Error ) - FT_Stream_ExtractFrame( FT_Stream stream, - FT_ULong count, - FT_Byte** pbytes ); - - /* release an extract frame (see FT_Stream_ExtractFrame) */ - FT_BASE( void ) - FT_Stream_ReleaseFrame( FT_Stream stream, - FT_Byte** pbytes ); - - /* read a byte from an entered frame */ - FT_BASE( FT_Char ) - FT_Stream_GetChar( FT_Stream stream ); - - /* read a 16-bit big-endian unsigned integer from an entered frame */ - FT_BASE( FT_UShort ) - FT_Stream_GetUShort( FT_Stream stream ); - - /* read a 24-bit big-endian unsigned integer from an entered frame */ - FT_BASE( FT_ULong ) - FT_Stream_GetUOffset( FT_Stream stream ); - - /* read a 32-bit big-endian unsigned integer from an entered frame */ - FT_BASE( FT_ULong ) - FT_Stream_GetULong( FT_Stream stream ); - - /* read a 16-bit little-endian unsigned integer from an entered frame */ - FT_BASE( FT_UShort ) - FT_Stream_GetUShortLE( FT_Stream stream ); - - /* read a 32-bit little-endian unsigned integer from an entered frame */ - FT_BASE( FT_ULong ) - FT_Stream_GetULongLE( FT_Stream stream ); - - - /* read a byte from a stream */ - FT_BASE( FT_Char ) - FT_Stream_ReadChar( FT_Stream stream, - FT_Error* error ); - - /* read a 16-bit big-endian unsigned integer from a stream */ - FT_BASE( FT_UShort ) - FT_Stream_ReadUShort( FT_Stream stream, - FT_Error* error ); - - /* read a 24-bit big-endian unsigned integer from a stream */ - FT_BASE( FT_ULong ) - FT_Stream_ReadUOffset( FT_Stream stream, - FT_Error* error ); - - /* read a 32-bit big-endian integer from a stream */ - FT_BASE( FT_ULong ) - FT_Stream_ReadULong( FT_Stream stream, - FT_Error* error ); - - /* read a 16-bit little-endian unsigned integer from a stream */ - FT_BASE( FT_UShort ) - FT_Stream_ReadUShortLE( FT_Stream stream, - FT_Error* error ); - - /* read a 32-bit little-endian unsigned integer from a stream */ - FT_BASE( FT_ULong ) - FT_Stream_ReadULongLE( FT_Stream stream, - FT_Error* error ); - - /* Read a structure from a stream. The structure must be described */ - /* by an array of FT_Frame_Field records. */ - FT_BASE( FT_Error ) - FT_Stream_ReadFields( FT_Stream stream, - const FT_Frame_Field* fields, - void* structure ); - - -#define FT_STREAM_POS() \ - FT_Stream_Pos( stream ) - -#define FT_STREAM_SEEK( position ) \ - FT_SET_ERROR( FT_Stream_Seek( stream, \ - (FT_ULong)(position) ) ) - -#define FT_STREAM_SKIP( distance ) \ - FT_SET_ERROR( FT_Stream_Skip( stream, \ - (FT_Long)(distance) ) ) - -#define FT_STREAM_READ( buffer, count ) \ - FT_SET_ERROR( FT_Stream_Read( stream, \ - (FT_Byte*)(buffer), \ - (FT_ULong)(count) ) ) - -#define FT_STREAM_READ_AT( position, buffer, count ) \ - FT_SET_ERROR( FT_Stream_ReadAt( stream, \ - (FT_ULong)(position), \ - (FT_Byte*)buffer, \ - (FT_ULong)(count) ) ) - -#define FT_STREAM_READ_FIELDS( fields, object ) \ - FT_SET_ERROR( FT_Stream_ReadFields( stream, fields, object ) ) - - -#define FT_FRAME_ENTER( size ) \ - FT_SET_ERROR( \ - FT_DEBUG_INNER( FT_Stream_EnterFrame( stream, \ - (FT_ULong)(size) ) ) ) - -#define FT_FRAME_EXIT() \ - FT_DEBUG_INNER( FT_Stream_ExitFrame( stream ) ) - -#define FT_FRAME_EXTRACT( size, bytes ) \ - FT_SET_ERROR( \ - FT_DEBUG_INNER( FT_Stream_ExtractFrame( stream, \ - (FT_ULong)(size), \ - (FT_Byte**)&(bytes) ) ) ) - -#define FT_FRAME_RELEASE( bytes ) \ - FT_DEBUG_INNER( FT_Stream_ReleaseFrame( stream, \ - (FT_Byte**)&(bytes) ) ) - - -FT_END_HEADER - -#endif /* __FTSTREAM_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/fttrace.h b/lib/windows/include/freetype/internal/fttrace.h deleted file mode 100644 index 9d28d21..0000000 --- a/lib/windows/include/freetype/internal/fttrace.h +++ /dev/null @@ -1,154 +0,0 @@ -/***************************************************************************/ -/* */ -/* fttrace.h */ -/* */ -/* Tracing handling (specification only). */ -/* */ -/* Copyright 2002-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /* definitions of trace levels for FreeType 2 */ - - /* the first level must always be `trace_any' */ -FT_TRACE_DEF( any ) - - /* base components */ -FT_TRACE_DEF( calc ) /* calculations (ftcalc.c) */ -FT_TRACE_DEF( memory ) /* memory manager (ftobjs.c) */ -FT_TRACE_DEF( stream ) /* stream manager (ftstream.c) */ -FT_TRACE_DEF( io ) /* i/o interface (ftsystem.c) */ -FT_TRACE_DEF( list ) /* list management (ftlist.c) */ -FT_TRACE_DEF( init ) /* initialization (ftinit.c) */ -FT_TRACE_DEF( objs ) /* base objects (ftobjs.c) */ -FT_TRACE_DEF( outline ) /* outline management (ftoutln.c) */ -FT_TRACE_DEF( glyph ) /* glyph management (ftglyph.c) */ -FT_TRACE_DEF( gloader ) /* glyph loader (ftgloadr.c) */ - -FT_TRACE_DEF( raster ) /* monochrome rasterizer (ftraster.c) */ -FT_TRACE_DEF( smooth ) /* anti-aliasing raster (ftgrays.c) */ -FT_TRACE_DEF( mm ) /* MM interface (ftmm.c) */ -FT_TRACE_DEF( raccess ) /* resource fork accessor (ftrfork.c) */ -FT_TRACE_DEF( synth ) /* bold/slant synthesizer (ftsynth.c) */ -FT_TRACE_DEF( bitmap ) /* bitmap checksum (ftobjs.c) */ - - /* Cache sub-system */ -FT_TRACE_DEF( cache ) /* cache sub-system (ftcache.c, etc.) */ - - /* SFNT driver components */ -FT_TRACE_DEF( sfdriver ) /* SFNT font driver (sfdriver.c) */ -FT_TRACE_DEF( sfobjs ) /* SFNT object handler (sfobjs.c) */ -FT_TRACE_DEF( ttcmap ) /* charmap handler (ttcmap.c) */ -FT_TRACE_DEF( ttkern ) /* kerning handler (ttkern.c) */ -FT_TRACE_DEF( ttload ) /* basic TrueType tables (ttload.c) */ -FT_TRACE_DEF( ttmtx ) /* metrics-related tables (ttmtx.c) */ -FT_TRACE_DEF( ttpost ) /* PS table processing (ttpost.c) */ -FT_TRACE_DEF( ttsbit ) /* TrueType sbit handling (ttsbit.c) */ -FT_TRACE_DEF( ttbdf ) /* TrueType embedded BDF (ttbdf.c) */ - - /* TrueType driver components */ -FT_TRACE_DEF( ttdriver ) /* TT font driver (ttdriver.c) */ -FT_TRACE_DEF( ttgload ) /* TT glyph loader (ttgload.c) */ -FT_TRACE_DEF( ttinterp ) /* bytecode interpreter (ttinterp.c) */ -FT_TRACE_DEF( ttobjs ) /* TT objects manager (ttobjs.c) */ -FT_TRACE_DEF( ttpload ) /* TT data/program loader (ttpload.c) */ -FT_TRACE_DEF( ttgxvar ) /* TrueType GX var handler (ttgxvar.c) */ - - /* Type 1 driver components */ -FT_TRACE_DEF( t1afm ) -FT_TRACE_DEF( t1driver ) -FT_TRACE_DEF( t1gload ) -FT_TRACE_DEF( t1hint ) -FT_TRACE_DEF( t1load ) -FT_TRACE_DEF( t1objs ) -FT_TRACE_DEF( t1parse ) - - /* PostScript helper module `psaux' */ -FT_TRACE_DEF( t1decode ) -FT_TRACE_DEF( psobjs ) -FT_TRACE_DEF( psconv ) - - /* PostScript hinting module `pshinter' */ -FT_TRACE_DEF( pshrec ) -FT_TRACE_DEF( pshalgo1 ) -FT_TRACE_DEF( pshalgo2 ) - - /* Type 2 driver components */ -FT_TRACE_DEF( cffdriver ) -FT_TRACE_DEF( cffgload ) -FT_TRACE_DEF( cffload ) -FT_TRACE_DEF( cffobjs ) -FT_TRACE_DEF( cffparse ) - -FT_TRACE_DEF( cf2blues ) -FT_TRACE_DEF( cf2hints ) -FT_TRACE_DEF( cf2interp ) - - /* Type 42 driver component */ -FT_TRACE_DEF( t42 ) - - /* CID driver components */ -FT_TRACE_DEF( cidafm ) -FT_TRACE_DEF( ciddriver ) -FT_TRACE_DEF( cidgload ) -FT_TRACE_DEF( cidload ) -FT_TRACE_DEF( cidobjs ) -FT_TRACE_DEF( cidparse ) - - /* Windows font component */ -FT_TRACE_DEF( winfnt ) - - /* PCF font components */ -FT_TRACE_DEF( pcfdriver ) -FT_TRACE_DEF( pcfread ) - - /* BDF font components */ -FT_TRACE_DEF( bdfdriver ) -FT_TRACE_DEF( bdflib ) - - /* PFR font component */ -FT_TRACE_DEF( pfr ) - - /* OpenType validation components */ -FT_TRACE_DEF( otvmodule ) -FT_TRACE_DEF( otvcommon ) -FT_TRACE_DEF( otvbase ) -FT_TRACE_DEF( otvgdef ) -FT_TRACE_DEF( otvgpos ) -FT_TRACE_DEF( otvgsub ) -FT_TRACE_DEF( otvjstf ) -FT_TRACE_DEF( otvmath ) - - /* TrueTypeGX/AAT validation components */ -FT_TRACE_DEF( gxvmodule ) -FT_TRACE_DEF( gxvcommon ) -FT_TRACE_DEF( gxvfeat ) -FT_TRACE_DEF( gxvmort ) -FT_TRACE_DEF( gxvmorx ) -FT_TRACE_DEF( gxvbsln ) -FT_TRACE_DEF( gxvjust ) -FT_TRACE_DEF( gxvkern ) -FT_TRACE_DEF( gxvopbd ) -FT_TRACE_DEF( gxvtrak ) -FT_TRACE_DEF( gxvprop ) -FT_TRACE_DEF( gxvlcar ) - - /* autofit components */ -FT_TRACE_DEF( afmodule ) -FT_TRACE_DEF( afhints ) -FT_TRACE_DEF( afcjk ) -FT_TRACE_DEF( aflatin ) -FT_TRACE_DEF( aflatin2 ) -FT_TRACE_DEF( afwarp ) -FT_TRACE_DEF( afharfbuzz ) -FT_TRACE_DEF( afglobal ) - -/* END */ diff --git a/lib/windows/include/freetype/internal/ftvalid.h b/lib/windows/include/freetype/internal/ftvalid.h deleted file mode 100644 index 9cda6ee..0000000 --- a/lib/windows/include/freetype/internal/ftvalid.h +++ /dev/null @@ -1,159 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftvalid.h */ -/* */ -/* FreeType validation support (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTVALID_H__ -#define __FTVALID_H__ - -#include <ft2build.h> -#include FT_CONFIG_STANDARD_LIBRARY_H /* for ft_setjmp and ft_longjmp */ - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** ****/ - /**** V A L I D A T I O N ****/ - /**** ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - /* handle to a validation object */ - typedef struct FT_ValidatorRec_ volatile* FT_Validator; - - - /*************************************************************************/ - /* */ - /* There are three distinct validation levels defined here: */ - /* */ - /* FT_VALIDATE_DEFAULT :: */ - /* A table that passes this validation level can be used reliably by */ - /* FreeType. It generally means that all offsets have been checked to */ - /* prevent out-of-bound reads, that array counts are correct, etc. */ - /* */ - /* FT_VALIDATE_TIGHT :: */ - /* A table that passes this validation level can be used reliably and */ - /* doesn't contain invalid data. For example, a charmap table that */ - /* returns invalid glyph indices will not pass, even though it can */ - /* be used with FreeType in default mode (the library will simply */ - /* return an error later when trying to load the glyph). */ - /* */ - /* It also checks that fields which must be a multiple of 2, 4, or 8, */ - /* don't have incorrect values, etc. */ - /* */ - /* FT_VALIDATE_PARANOID :: */ - /* Only for font debugging. Checks that a table follows the */ - /* specification by 100%. Very few fonts will be able to pass this */ - /* level anyway but it can be useful for certain tools like font */ - /* editors/converters. */ - /* */ - typedef enum FT_ValidationLevel_ - { - FT_VALIDATE_DEFAULT = 0, - FT_VALIDATE_TIGHT, - FT_VALIDATE_PARANOID - - } FT_ValidationLevel; - - -#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ - /* We disable the warning `structure was padded due to */ - /* __declspec(align())' in order to compile cleanly with */ - /* the maximum level of warnings. */ -#pragma warning( push ) -#pragma warning( disable : 4324 ) -#endif /* _MSC_VER */ - - /* validator structure */ - typedef struct FT_ValidatorRec_ - { - ft_jmp_buf jump_buffer; /* used for exception handling */ - - const FT_Byte* base; /* address of table in memory */ - const FT_Byte* limit; /* `base' + sizeof(table) in memory */ - FT_ValidationLevel level; /* validation level */ - FT_Error error; /* error returned. 0 means success */ - - } FT_ValidatorRec; - -#if defined( _MSC_VER ) -#pragma warning( pop ) -#endif - -#define FT_VALIDATOR( x ) ( (FT_Validator)( x ) ) - - - FT_BASE( void ) - ft_validator_init( FT_Validator valid, - const FT_Byte* base, - const FT_Byte* limit, - FT_ValidationLevel level ); - - /* Do not use this. It's broken and will cause your validator to crash */ - /* if you run it on an invalid font. */ - FT_BASE( FT_Int ) - ft_validator_run( FT_Validator valid ); - - /* Sets the error field in a validator, then calls `longjmp' to return */ - /* to high-level caller. Using `setjmp/longjmp' avoids many stupid */ - /* error checks within the validation routines. */ - /* */ - FT_BASE( void ) - ft_validator_error( FT_Validator valid, - FT_Error error ); - - - /* Calls ft_validate_error. Assumes that the `valid' local variable */ - /* holds a pointer to the current validator object. */ - /* */ -#define FT_INVALID( _error ) FT_INVALID_( _error ) -#define FT_INVALID_( _error ) \ - ft_validator_error( valid, FT_THROW( _error ) ) - - /* called when a broken table is detected */ -#define FT_INVALID_TOO_SHORT \ - FT_INVALID( Invalid_Table ) - - /* called when an invalid offset is detected */ -#define FT_INVALID_OFFSET \ - FT_INVALID( Invalid_Offset ) - - /* called when an invalid format/value is detected */ -#define FT_INVALID_FORMAT \ - FT_INVALID( Invalid_Table ) - - /* called when an invalid glyph index is detected */ -#define FT_INVALID_GLYPH_ID \ - FT_INVALID( Invalid_Glyph_Index ) - - /* called when an invalid field value is detected */ -#define FT_INVALID_DATA \ - FT_INVALID( Invalid_Table ) - - -FT_END_HEADER - -#endif /* __FTVALID_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/internal.h b/lib/windows/include/freetype/internal/internal.h deleted file mode 100644 index 1c1fd0e..0000000 --- a/lib/windows/include/freetype/internal/internal.h +++ /dev/null @@ -1,63 +0,0 @@ -/***************************************************************************/ -/* */ -/* internal.h */ -/* */ -/* Internal header files (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file is automatically included by `ft2build.h'. */ - /* Do not include it manually! */ - /* */ - /*************************************************************************/ - - -#define FT_INTERNAL_OBJECTS_H <internal/ftobjs.h> -#define FT_INTERNAL_PIC_H <internal/ftpic.h> -#define FT_INTERNAL_STREAM_H <internal/ftstream.h> -#define FT_INTERNAL_MEMORY_H <internal/ftmemory.h> -#define FT_INTERNAL_DEBUG_H <internal/ftdebug.h> -#define FT_INTERNAL_CALC_H <internal/ftcalc.h> -#define FT_INTERNAL_DRIVER_H <internal/ftdriver.h> -#define FT_INTERNAL_TRACE_H <internal/fttrace.h> -#define FT_INTERNAL_GLYPH_LOADER_H <internal/ftgloadr.h> -#define FT_INTERNAL_SFNT_H <internal/sfnt.h> -#define FT_INTERNAL_SERVICE_H <internal/ftserv.h> -#define FT_INTERNAL_RFORK_H <internal/ftrfork.h> -#define FT_INTERNAL_VALIDATE_H <internal/ftvalid.h> - -#define FT_INTERNAL_TRUETYPE_TYPES_H <internal/tttypes.h> -#define FT_INTERNAL_TYPE1_TYPES_H <internal/t1types.h> - -#define FT_INTERNAL_POSTSCRIPT_AUX_H <internal/psaux.h> -#define FT_INTERNAL_POSTSCRIPT_HINTS_H <internal/pshints.h> -#define FT_INTERNAL_POSTSCRIPT_GLOBALS_H <internal/psglobal.h> - -#define FT_INTERNAL_AUTOHINT_H <internal/autohint.h> - - -#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ - - /* We disable the warning `conditional expression is constant' here */ - /* in order to compile cleanly with the maximum level of warnings. */ - /* In particular, the warning complains about stuff like `while(0)' */ - /* which is very useful in macro definitions. There is no benefit */ - /* in having it enabled. */ -#pragma warning( disable : 4127 ) - -#endif /* _MSC_VER */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/psaux.h b/lib/windows/include/freetype/internal/psaux.h deleted file mode 100644 index 1c5f784..0000000 --- a/lib/windows/include/freetype/internal/psaux.h +++ /dev/null @@ -1,877 +0,0 @@ -/***************************************************************************/ -/* */ -/* psaux.h */ -/* */ -/* Auxiliary functions and data structures related to PostScript fonts */ -/* (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __PSAUX_H__ -#define __PSAUX_H__ - - -#include <ft2build.h> -#include FT_INTERNAL_OBJECTS_H -#include FT_INTERNAL_TYPE1_TYPES_H -#include FT_SERVICE_POSTSCRIPT_CMAPS_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1_TABLE *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - - typedef struct PS_TableRec_* PS_Table; - typedef const struct PS_Table_FuncsRec_* PS_Table_Funcs; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_Table_FuncsRec */ - /* */ - /* <Description> */ - /* A set of function pointers to manage PS_Table objects. */ - /* */ - /* <Fields> */ - /* table_init :: Used to initialize a table. */ - /* */ - /* table_done :: Finalizes resp. destroy a given table. */ - /* */ - /* table_add :: Adds a new object to a table. */ - /* */ - /* table_release :: Releases table data, then finalizes it. */ - /* */ - typedef struct PS_Table_FuncsRec_ - { - FT_Error - (*init)( PS_Table table, - FT_Int count, - FT_Memory memory ); - - void - (*done)( PS_Table table ); - - FT_Error - (*add)( PS_Table table, - FT_Int idx, - void* object, - FT_UInt length ); - - void - (*release)( PS_Table table ); - - } PS_Table_FuncsRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_TableRec */ - /* */ - /* <Description> */ - /* A PS_Table is a simple object used to store an array of objects in */ - /* a single memory block. */ - /* */ - /* <Fields> */ - /* block :: The address in memory of the growheap's block. This */ - /* can change between two object adds, due to */ - /* reallocation. */ - /* */ - /* cursor :: The current top of the grow heap within its block. */ - /* */ - /* capacity :: The current size of the heap block. Increments by */ - /* 1kByte chunks. */ - /* */ - /* init :: Set to 0xDEADBEEF if `elements' and `lengths' have */ - /* been allocated. */ - /* */ - /* max_elems :: The maximum number of elements in table. */ - /* */ - /* num_elems :: The current number of elements in table. */ - /* */ - /* elements :: A table of element addresses within the block. */ - /* */ - /* lengths :: A table of element sizes within the block. */ - /* */ - /* memory :: The object used for memory operations */ - /* (alloc/realloc). */ - /* */ - /* funcs :: A table of method pointers for this object. */ - /* */ - typedef struct PS_TableRec_ - { - FT_Byte* block; /* current memory block */ - FT_Offset cursor; /* current cursor in memory block */ - FT_Offset capacity; /* current size of memory block */ - FT_ULong init; - - FT_Int max_elems; - FT_Int num_elems; - FT_Byte** elements; /* addresses of table elements */ - FT_UInt* lengths; /* lengths of table elements */ - - FT_Memory memory; - PS_Table_FuncsRec funcs; - - } PS_TableRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1 FIELDS & TOKENS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct PS_ParserRec_* PS_Parser; - - typedef struct T1_TokenRec_* T1_Token; - - typedef struct T1_FieldRec_* T1_Field; - - - /* simple enumeration type used to identify token types */ - typedef enum T1_TokenType_ - { - T1_TOKEN_TYPE_NONE = 0, - T1_TOKEN_TYPE_ANY, - T1_TOKEN_TYPE_STRING, - T1_TOKEN_TYPE_ARRAY, - T1_TOKEN_TYPE_KEY, /* aka `name' */ - - /* do not remove */ - T1_TOKEN_TYPE_MAX - - } T1_TokenType; - - - /* a simple structure used to identify tokens */ - typedef struct T1_TokenRec_ - { - FT_Byte* start; /* first character of token in input stream */ - FT_Byte* limit; /* first character after the token */ - T1_TokenType type; /* type of token */ - - } T1_TokenRec; - - - /* enumeration type used to identify object fields */ - typedef enum T1_FieldType_ - { - T1_FIELD_TYPE_NONE = 0, - T1_FIELD_TYPE_BOOL, - T1_FIELD_TYPE_INTEGER, - T1_FIELD_TYPE_FIXED, - T1_FIELD_TYPE_FIXED_1000, - T1_FIELD_TYPE_STRING, - T1_FIELD_TYPE_KEY, - T1_FIELD_TYPE_BBOX, - T1_FIELD_TYPE_MM_BBOX, - T1_FIELD_TYPE_INTEGER_ARRAY, - T1_FIELD_TYPE_FIXED_ARRAY, - T1_FIELD_TYPE_CALLBACK, - - /* do not remove */ - T1_FIELD_TYPE_MAX - - } T1_FieldType; - - - typedef enum T1_FieldLocation_ - { - T1_FIELD_LOCATION_CID_INFO, - T1_FIELD_LOCATION_FONT_DICT, - T1_FIELD_LOCATION_FONT_EXTRA, - T1_FIELD_LOCATION_FONT_INFO, - T1_FIELD_LOCATION_PRIVATE, - T1_FIELD_LOCATION_BBOX, - T1_FIELD_LOCATION_LOADER, - T1_FIELD_LOCATION_FACE, - T1_FIELD_LOCATION_BLEND, - - /* do not remove */ - T1_FIELD_LOCATION_MAX - - } T1_FieldLocation; - - - typedef void - (*T1_Field_ParseFunc)( FT_Face face, - FT_Pointer parser ); - - - /* structure type used to model object fields */ - typedef struct T1_FieldRec_ - { - const char* ident; /* field identifier */ - T1_FieldLocation location; - T1_FieldType type; /* type of field */ - T1_Field_ParseFunc reader; - FT_UInt offset; /* offset of field in object */ - FT_Byte size; /* size of field in bytes */ - FT_UInt array_max; /* maximum number of elements for */ - /* array */ - FT_UInt count_offset; /* offset of element count for */ - /* arrays; must not be zero if in */ - /* use -- in other words, a */ - /* `num_FOO' element must not */ - /* start the used structure if we */ - /* parse a `FOO' array */ - FT_UInt dict; /* where we expect it */ - } T1_FieldRec; - -#define T1_FIELD_DICT_FONTDICT ( 1 << 0 ) /* also FontInfo and FDArray */ -#define T1_FIELD_DICT_PRIVATE ( 1 << 1 ) - - - -#define T1_NEW_SIMPLE_FIELD( _ident, _type, _fname, _dict ) \ - { \ - _ident, T1CODE, _type, \ - 0, \ - FT_FIELD_OFFSET( _fname ), \ - FT_FIELD_SIZE( _fname ), \ - 0, 0, \ - _dict \ - }, - -#define T1_NEW_CALLBACK_FIELD( _ident, _reader, _dict ) \ - { \ - _ident, T1CODE, T1_FIELD_TYPE_CALLBACK, \ - (T1_Field_ParseFunc)_reader, \ - 0, 0, \ - 0, 0, \ - _dict \ - }, - -#define T1_NEW_TABLE_FIELD( _ident, _type, _fname, _max, _dict ) \ - { \ - _ident, T1CODE, _type, \ - 0, \ - FT_FIELD_OFFSET( _fname ), \ - FT_FIELD_SIZE_DELTA( _fname ), \ - _max, \ - FT_FIELD_OFFSET( num_ ## _fname ), \ - _dict \ - }, - -#define T1_NEW_TABLE_FIELD2( _ident, _type, _fname, _max, _dict ) \ - { \ - _ident, T1CODE, _type, \ - 0, \ - FT_FIELD_OFFSET( _fname ), \ - FT_FIELD_SIZE_DELTA( _fname ), \ - _max, 0, \ - _dict \ - }, - - -#define T1_FIELD_BOOL( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_BOOL, _fname, _dict ) - -#define T1_FIELD_NUM( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_INTEGER, _fname, _dict ) - -#define T1_FIELD_FIXED( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_FIXED, _fname, _dict ) - -#define T1_FIELD_FIXED_1000( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_FIXED_1000, _fname, \ - _dict ) - -#define T1_FIELD_STRING( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_STRING, _fname, _dict ) - -#define T1_FIELD_KEY( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_KEY, _fname, _dict ) - -#define T1_FIELD_BBOX( _ident, _fname, _dict ) \ - T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_BBOX, _fname, _dict ) - - -#define T1_FIELD_NUM_TABLE( _ident, _fname, _fmax, _dict ) \ - T1_NEW_TABLE_FIELD( _ident, T1_FIELD_TYPE_INTEGER_ARRAY, \ - _fname, _fmax, _dict ) - -#define T1_FIELD_FIXED_TABLE( _ident, _fname, _fmax, _dict ) \ - T1_NEW_TABLE_FIELD( _ident, T1_FIELD_TYPE_FIXED_ARRAY, \ - _fname, _fmax, _dict ) - -#define T1_FIELD_NUM_TABLE2( _ident, _fname, _fmax, _dict ) \ - T1_NEW_TABLE_FIELD2( _ident, T1_FIELD_TYPE_INTEGER_ARRAY, \ - _fname, _fmax, _dict ) - -#define T1_FIELD_FIXED_TABLE2( _ident, _fname, _fmax, _dict ) \ - T1_NEW_TABLE_FIELD2( _ident, T1_FIELD_TYPE_FIXED_ARRAY, \ - _fname, _fmax, _dict ) - -#define T1_FIELD_CALLBACK( _ident, _name, _dict ) \ - T1_NEW_CALLBACK_FIELD( _ident, _name, _dict ) - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1 PARSER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef const struct PS_Parser_FuncsRec_* PS_Parser_Funcs; - - typedef struct PS_Parser_FuncsRec_ - { - void - (*init)( PS_Parser parser, - FT_Byte* base, - FT_Byte* limit, - FT_Memory memory ); - - void - (*done)( PS_Parser parser ); - - void - (*skip_spaces)( PS_Parser parser ); - void - (*skip_PS_token)( PS_Parser parser ); - - FT_Long - (*to_int)( PS_Parser parser ); - FT_Fixed - (*to_fixed)( PS_Parser parser, - FT_Int power_ten ); - - FT_Error - (*to_bytes)( PS_Parser parser, - FT_Byte* bytes, - FT_Offset max_bytes, - FT_ULong* pnum_bytes, - FT_Bool delimiters ); - - FT_Int - (*to_coord_array)( PS_Parser parser, - FT_Int max_coords, - FT_Short* coords ); - FT_Int - (*to_fixed_array)( PS_Parser parser, - FT_Int max_values, - FT_Fixed* values, - FT_Int power_ten ); - - void - (*to_token)( PS_Parser parser, - T1_Token token ); - void - (*to_token_array)( PS_Parser parser, - T1_Token tokens, - FT_UInt max_tokens, - FT_Int* pnum_tokens ); - - FT_Error - (*load_field)( PS_Parser parser, - const T1_Field field, - void** objects, - FT_UInt max_objects, - FT_ULong* pflags ); - - FT_Error - (*load_field_table)( PS_Parser parser, - const T1_Field field, - void** objects, - FT_UInt max_objects, - FT_ULong* pflags ); - - } PS_Parser_FuncsRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_ParserRec */ - /* */ - /* <Description> */ - /* A PS_Parser is an object used to parse a Type 1 font very quickly. */ - /* */ - /* <Fields> */ - /* cursor :: The current position in the text. */ - /* */ - /* base :: Start of the processed text. */ - /* */ - /* limit :: End of the processed text. */ - /* */ - /* error :: The last error returned. */ - /* */ - /* memory :: The object used for memory operations (alloc/realloc). */ - /* */ - /* funcs :: A table of functions for the parser. */ - /* */ - typedef struct PS_ParserRec_ - { - FT_Byte* cursor; - FT_Byte* base; - FT_Byte* limit; - FT_Error error; - FT_Memory memory; - - PS_Parser_FuncsRec funcs; - - } PS_ParserRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1 BUILDER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - - typedef struct T1_BuilderRec_* T1_Builder; - - - typedef FT_Error - (*T1_Builder_Check_Points_Func)( T1_Builder builder, - FT_Int count ); - - typedef void - (*T1_Builder_Add_Point_Func)( T1_Builder builder, - FT_Pos x, - FT_Pos y, - FT_Byte flag ); - - typedef FT_Error - (*T1_Builder_Add_Point1_Func)( T1_Builder builder, - FT_Pos x, - FT_Pos y ); - - typedef FT_Error - (*T1_Builder_Add_Contour_Func)( T1_Builder builder ); - - typedef FT_Error - (*T1_Builder_Start_Point_Func)( T1_Builder builder, - FT_Pos x, - FT_Pos y ); - - typedef void - (*T1_Builder_Close_Contour_Func)( T1_Builder builder ); - - - typedef const struct T1_Builder_FuncsRec_* T1_Builder_Funcs; - - typedef struct T1_Builder_FuncsRec_ - { - void - (*init)( T1_Builder builder, - FT_Face face, - FT_Size size, - FT_GlyphSlot slot, - FT_Bool hinting ); - - void - (*done)( T1_Builder builder ); - - T1_Builder_Check_Points_Func check_points; - T1_Builder_Add_Point_Func add_point; - T1_Builder_Add_Point1_Func add_point1; - T1_Builder_Add_Contour_Func add_contour; - T1_Builder_Start_Point_Func start_point; - T1_Builder_Close_Contour_Func close_contour; - - } T1_Builder_FuncsRec; - - - /* an enumeration type to handle charstring parsing states */ - typedef enum T1_ParseState_ - { - T1_Parse_Start, - T1_Parse_Have_Width, - T1_Parse_Have_Moveto, - T1_Parse_Have_Path - - } T1_ParseState; - - - /*************************************************************************/ - /* */ - /* <Structure> */ - /* T1_BuilderRec */ - /* */ - /* <Description> */ - /* A structure used during glyph loading to store its outline. */ - /* */ - /* <Fields> */ - /* memory :: The current memory object. */ - /* */ - /* face :: The current face object. */ - /* */ - /* glyph :: The current glyph slot. */ - /* */ - /* loader :: XXX */ - /* */ - /* base :: The base glyph outline. */ - /* */ - /* current :: The current glyph outline. */ - /* */ - /* max_points :: maximum points in builder outline */ - /* */ - /* max_contours :: Maximum number of contours in builder outline. */ - /* */ - /* pos_x :: The horizontal translation (if composite glyph). */ - /* */ - /* pos_y :: The vertical translation (if composite glyph). */ - /* */ - /* left_bearing :: The left side bearing point. */ - /* */ - /* advance :: The horizontal advance vector. */ - /* */ - /* bbox :: Unused. */ - /* */ - /* parse_state :: An enumeration which controls the charstring */ - /* parsing state. */ - /* */ - /* load_points :: If this flag is not set, no points are loaded. */ - /* */ - /* no_recurse :: Set but not used. */ - /* */ - /* metrics_only :: A boolean indicating that we only want to compute */ - /* the metrics of a given glyph, not load all of its */ - /* points. */ - /* */ - /* funcs :: An array of function pointers for the builder. */ - /* */ - typedef struct T1_BuilderRec_ - { - FT_Memory memory; - FT_Face face; - FT_GlyphSlot glyph; - FT_GlyphLoader loader; - FT_Outline* base; - FT_Outline* current; - - FT_Pos pos_x; - FT_Pos pos_y; - - FT_Vector left_bearing; - FT_Vector advance; - - FT_BBox bbox; /* bounding box */ - T1_ParseState parse_state; - FT_Bool load_points; - FT_Bool no_recurse; - - FT_Bool metrics_only; - - void* hints_funcs; /* hinter-specific */ - void* hints_globals; /* hinter-specific */ - - T1_Builder_FuncsRec funcs; - - } T1_BuilderRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** T1 DECODER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - -#if 0 - - /*************************************************************************/ - /* */ - /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ - /* calls during glyph loading. */ - /* */ -#define T1_MAX_SUBRS_CALLS 8 - - - /*************************************************************************/ - /* */ - /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ - /* minimum of 16 is required. */ - /* */ -#define T1_MAX_CHARSTRINGS_OPERANDS 32 - -#endif /* 0 */ - - - typedef struct T1_Decoder_ZoneRec_ - { - FT_Byte* cursor; - FT_Byte* base; - FT_Byte* limit; - - } T1_Decoder_ZoneRec, *T1_Decoder_Zone; - - - typedef struct T1_DecoderRec_* T1_Decoder; - typedef const struct T1_Decoder_FuncsRec_* T1_Decoder_Funcs; - - - typedef FT_Error - (*T1_Decoder_Callback)( T1_Decoder decoder, - FT_UInt glyph_index ); - - - typedef struct T1_Decoder_FuncsRec_ - { - FT_Error - (*init)( T1_Decoder decoder, - FT_Face face, - FT_Size size, - FT_GlyphSlot slot, - FT_Byte** glyph_names, - PS_Blend blend, - FT_Bool hinting, - FT_Render_Mode hint_mode, - T1_Decoder_Callback callback ); - - void - (*done)( T1_Decoder decoder ); - - FT_Error - (*parse_charstrings)( T1_Decoder decoder, - FT_Byte* base, - FT_UInt len ); - - } T1_Decoder_FuncsRec; - - - typedef struct T1_DecoderRec_ - { - T1_BuilderRec builder; - - FT_Long stack[T1_MAX_CHARSTRINGS_OPERANDS]; - FT_Long* top; - - T1_Decoder_ZoneRec zones[T1_MAX_SUBRS_CALLS + 1]; - T1_Decoder_Zone zone; - - FT_Service_PsCMaps psnames; /* for seac */ - FT_UInt num_glyphs; - FT_Byte** glyph_names; - - FT_Int lenIV; /* internal for sub routine calls */ - FT_Int num_subrs; - FT_Byte** subrs; - FT_UInt* subrs_len; /* array of subrs length (optional) */ - - FT_Matrix font_matrix; - FT_Vector font_offset; - - FT_Int flex_state; - FT_Int num_flex_vectors; - FT_Vector flex_vectors[7]; - - PS_Blend blend; /* for multiple master support */ - - FT_Render_Mode hint_mode; - - T1_Decoder_Callback parse_callback; - T1_Decoder_FuncsRec funcs; - - FT_Long* buildchar; - FT_UInt len_buildchar; - - FT_Bool seac; - - } T1_DecoderRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** AFM PARSER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct AFM_ParserRec_* AFM_Parser; - - typedef struct AFM_Parser_FuncsRec_ - { - FT_Error - (*init)( AFM_Parser parser, - FT_Memory memory, - FT_Byte* base, - FT_Byte* limit ); - - void - (*done)( AFM_Parser parser ); - - FT_Error - (*parse)( AFM_Parser parser ); - - } AFM_Parser_FuncsRec; - - - typedef struct AFM_StreamRec_* AFM_Stream; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* AFM_ParserRec */ - /* */ - /* <Description> */ - /* An AFM_Parser is a parser for the AFM files. */ - /* */ - /* <Fields> */ - /* memory :: The object used for memory operations (alloc and */ - /* realloc). */ - /* */ - /* stream :: This is an opaque object. */ - /* */ - /* FontInfo :: The result will be stored here. */ - /* */ - /* get_index :: A user provided function to get a glyph index by its */ - /* name. */ - /* */ - typedef struct AFM_ParserRec_ - { - FT_Memory memory; - AFM_Stream stream; - - AFM_FontInfo FontInfo; - - FT_Int - (*get_index)( const char* name, - FT_Offset len, - void* user_data ); - - void* user_data; - - } AFM_ParserRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** TYPE1 CHARMAPS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef const struct T1_CMap_ClassesRec_* T1_CMap_Classes; - - typedef struct T1_CMap_ClassesRec_ - { - FT_CMap_Class standard; - FT_CMap_Class expert; - FT_CMap_Class custom; - FT_CMap_Class unicode; - - } T1_CMap_ClassesRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** PSAux Module Interface *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct PSAux_ServiceRec_ - { - /* don't use `PS_Table_Funcs' and friends to avoid compiler warnings */ - const PS_Table_FuncsRec* ps_table_funcs; - const PS_Parser_FuncsRec* ps_parser_funcs; - const T1_Builder_FuncsRec* t1_builder_funcs; - const T1_Decoder_FuncsRec* t1_decoder_funcs; - - void - (*t1_decrypt)( FT_Byte* buffer, - FT_Offset length, - FT_UShort seed ); - - T1_CMap_Classes t1_cmap_classes; - - /* fields after this comment line were added after version 2.1.10 */ - const AFM_Parser_FuncsRec* afm_parser_funcs; - - } PSAux_ServiceRec, *PSAux_Service; - - /* backwards-compatible type definition */ - typedef PSAux_ServiceRec PSAux_Interface; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** Some convenience functions *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - -#define IS_PS_NEWLINE( ch ) \ - ( (ch) == '\r' || \ - (ch) == '\n' ) - -#define IS_PS_SPACE( ch ) \ - ( (ch) == ' ' || \ - IS_PS_NEWLINE( ch ) || \ - (ch) == '\t' || \ - (ch) == '\f' || \ - (ch) == '\0' ) - -#define IS_PS_SPECIAL( ch ) \ - ( (ch) == '/' || \ - (ch) == '(' || (ch) == ')' || \ - (ch) == '<' || (ch) == '>' || \ - (ch) == '[' || (ch) == ']' || \ - (ch) == '{' || (ch) == '}' || \ - (ch) == '%' ) - -#define IS_PS_DELIM( ch ) \ - ( IS_PS_SPACE( ch ) || \ - IS_PS_SPECIAL( ch ) ) - -#define IS_PS_DIGIT( ch ) \ - ( (ch) >= '0' && (ch) <= '9' ) - -#define IS_PS_XDIGIT( ch ) \ - ( IS_PS_DIGIT( ch ) || \ - ( (ch) >= 'A' && (ch) <= 'F' ) || \ - ( (ch) >= 'a' && (ch) <= 'f' ) ) - -#define IS_PS_BASE85( ch ) \ - ( (ch) >= '!' && (ch) <= 'u' ) - -#define IS_PS_TOKEN( cur, limit, token ) \ - ( (char)(cur)[0] == (token)[0] && \ - ( (cur) + sizeof ( (token) ) == (limit) || \ - ( (cur) + sizeof( (token) ) < (limit) && \ - IS_PS_DELIM( (cur)[sizeof ( (token) ) - 1] ) ) ) && \ - ft_strncmp( (char*)(cur), (token), sizeof ( (token) ) - 1 ) == 0 ) - - -FT_END_HEADER - -#endif /* __PSAUX_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/pshints.h b/lib/windows/include/freetype/internal/pshints.h deleted file mode 100644 index 12aaaba..0000000 --- a/lib/windows/include/freetype/internal/pshints.h +++ /dev/null @@ -1,722 +0,0 @@ -/***************************************************************************/ -/* */ -/* pshints.h */ -/* */ -/* Interface to Postscript-specific (Type 1 and Type 2) hints */ -/* recorders (specification only). These are used to support native */ -/* T1/T2 hints in the `type1', `cid', and `cff' font drivers. */ -/* */ -/* Copyright 2001-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __PSHINTS_H__ -#define __PSHINTS_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H -#include FT_TYPE1_TABLES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** INTERNAL REPRESENTATION OF GLOBALS *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct PSH_GlobalsRec_* PSH_Globals; - - typedef FT_Error - (*PSH_Globals_NewFunc)( FT_Memory memory, - T1_Private* private_dict, - PSH_Globals* aglobals ); - - typedef void - (*PSH_Globals_SetScaleFunc)( PSH_Globals globals, - FT_Fixed x_scale, - FT_Fixed y_scale, - FT_Fixed x_delta, - FT_Fixed y_delta ); - - typedef void - (*PSH_Globals_DestroyFunc)( PSH_Globals globals ); - - - typedef struct PSH_Globals_FuncsRec_ - { - PSH_Globals_NewFunc create; - PSH_Globals_SetScaleFunc set_scale; - PSH_Globals_DestroyFunc destroy; - - } PSH_Globals_FuncsRec, *PSH_Globals_Funcs; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** PUBLIC TYPE 1 HINTS RECORDER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /************************************************************************* - * - * @type: - * T1_Hints - * - * @description: - * This is a handle to an opaque structure used to record glyph hints - * from a Type 1 character glyph character string. - * - * The methods used to operate on this object are defined by the - * @T1_Hints_FuncsRec structure. Recording glyph hints is normally - * achieved through the following scheme: - * - * - Open a new hint recording session by calling the `open' method. - * This rewinds the recorder and prepare it for new input. - * - * - For each hint found in the glyph charstring, call the corresponding - * method (`stem', `stem3', or `reset'). Note that these functions do - * not return an error code. - * - * - Close the recording session by calling the `close' method. It - * returns an error code if the hints were invalid or something - * strange happened (e.g., memory shortage). - * - * The hints accumulated in the object can later be used by the - * PostScript hinter. - * - */ - typedef struct T1_HintsRec_* T1_Hints; - - - /************************************************************************* - * - * @type: - * T1_Hints_Funcs - * - * @description: - * A pointer to the @T1_Hints_FuncsRec structure that defines the API of - * a given @T1_Hints object. - * - */ - typedef const struct T1_Hints_FuncsRec_* T1_Hints_Funcs; - - - /************************************************************************* - * - * @functype: - * T1_Hints_OpenFunc - * - * @description: - * A method of the @T1_Hints class used to prepare it for a new Type 1 - * hints recording session. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * @note: - * You should always call the @T1_Hints_CloseFunc method in order to - * close an opened recording session. - * - */ - typedef void - (*T1_Hints_OpenFunc)( T1_Hints hints ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_SetStemFunc - * - * @description: - * A method of the @T1_Hints class used to record a new horizontal or - * vertical stem. This corresponds to the Type 1 `hstem' and `vstem' - * operators. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * dimension :: - * 0 for horizontal stems (hstem), 1 for vertical ones (vstem). - * - * coords :: - * Array of 2 coordinates in 16.16 format, used as (position,length) - * stem descriptor. - * - * @note: - * Use vertical coordinates (y) for horizontal stems (dim=0). Use - * horizontal coordinates (x) for vertical stems (dim=1). - * - * `coords[0]' is the absolute stem position (lowest coordinate); - * `coords[1]' is the length. - * - * The length can be negative, in which case it must be either -20 or - * -21. It is interpreted as a `ghost' stem, according to the Type 1 - * specification. - * - * If the length is -21 (corresponding to a bottom ghost stem), then - * the real stem position is `coords[0]+coords[1]'. - * - */ - typedef void - (*T1_Hints_SetStemFunc)( T1_Hints hints, - FT_UInt dimension, - FT_Fixed* coords ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_SetStem3Func - * - * @description: - * A method of the @T1_Hints class used to record three - * counter-controlled horizontal or vertical stems at once. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * dimension :: - * 0 for horizontal stems, 1 for vertical ones. - * - * coords :: - * An array of 6 values in 16.16 format, holding 3 (position,length) - * pairs for the counter-controlled stems. - * - * @note: - * Use vertical coordinates (y) for horizontal stems (dim=0). Use - * horizontal coordinates (x) for vertical stems (dim=1). - * - * The lengths cannot be negative (ghost stems are never - * counter-controlled). - * - */ - typedef void - (*T1_Hints_SetStem3Func)( T1_Hints hints, - FT_UInt dimension, - FT_Fixed* coords ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_ResetFunc - * - * @description: - * A method of the @T1_Hints class used to reset the stems hints in a - * recording session. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * end_point :: - * The index of the last point in the input glyph in which the - * previously defined hints apply. - * - */ - typedef void - (*T1_Hints_ResetFunc)( T1_Hints hints, - FT_UInt end_point ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_CloseFunc - * - * @description: - * A method of the @T1_Hints class used to close a hint recording - * session. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * end_point :: - * The index of the last point in the input glyph. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * The error code is set to indicate that an error occurred during the - * recording session. - * - */ - typedef FT_Error - (*T1_Hints_CloseFunc)( T1_Hints hints, - FT_UInt end_point ); - - - /************************************************************************* - * - * @functype: - * T1_Hints_ApplyFunc - * - * @description: - * A method of the @T1_Hints class used to apply hints to the - * corresponding glyph outline. Must be called once all hints have been - * recorded. - * - * @input: - * hints :: - * A handle to the Type 1 hints recorder. - * - * outline :: - * A pointer to the target outline descriptor. - * - * globals :: - * The hinter globals for this font. - * - * hint_mode :: - * Hinting information. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * On input, all points within the outline are in font coordinates. On - * output, they are in 1/64th of pixels. - * - * The scaling transformation is taken from the `globals' object which - * must correspond to the same font as the glyph. - * - */ - typedef FT_Error - (*T1_Hints_ApplyFunc)( T1_Hints hints, - FT_Outline* outline, - PSH_Globals globals, - FT_Render_Mode hint_mode ); - - - /************************************************************************* - * - * @struct: - * T1_Hints_FuncsRec - * - * @description: - * The structure used to provide the API to @T1_Hints objects. - * - * @fields: - * hints :: - * A handle to the T1 Hints recorder. - * - * open :: - * The function to open a recording session. - * - * close :: - * The function to close a recording session. - * - * stem :: - * The function to set a simple stem. - * - * stem3 :: - * The function to set counter-controlled stems. - * - * reset :: - * The function to reset stem hints. - * - * apply :: - * The function to apply the hints to the corresponding glyph outline. - * - */ - typedef struct T1_Hints_FuncsRec_ - { - T1_Hints hints; - T1_Hints_OpenFunc open; - T1_Hints_CloseFunc close; - T1_Hints_SetStemFunc stem; - T1_Hints_SetStem3Func stem3; - T1_Hints_ResetFunc reset; - T1_Hints_ApplyFunc apply; - - } T1_Hints_FuncsRec; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** PUBLIC TYPE 2 HINTS RECORDER *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - /************************************************************************* - * - * @type: - * T2_Hints - * - * @description: - * This is a handle to an opaque structure used to record glyph hints - * from a Type 2 character glyph character string. - * - * The methods used to operate on this object are defined by the - * @T2_Hints_FuncsRec structure. Recording glyph hints is normally - * achieved through the following scheme: - * - * - Open a new hint recording session by calling the `open' method. - * This rewinds the recorder and prepare it for new input. - * - * - For each hint found in the glyph charstring, call the corresponding - * method (`stems', `hintmask', `counters'). Note that these - * functions do not return an error code. - * - * - Close the recording session by calling the `close' method. It - * returns an error code if the hints were invalid or something - * strange happened (e.g., memory shortage). - * - * The hints accumulated in the object can later be used by the - * Postscript hinter. - * - */ - typedef struct T2_HintsRec_* T2_Hints; - - - /************************************************************************* - * - * @type: - * T2_Hints_Funcs - * - * @description: - * A pointer to the @T2_Hints_FuncsRec structure that defines the API of - * a given @T2_Hints object. - * - */ - typedef const struct T2_Hints_FuncsRec_* T2_Hints_Funcs; - - - /************************************************************************* - * - * @functype: - * T2_Hints_OpenFunc - * - * @description: - * A method of the @T2_Hints class used to prepare it for a new Type 2 - * hints recording session. - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * @note: - * You should always call the @T2_Hints_CloseFunc method in order to - * close an opened recording session. - * - */ - typedef void - (*T2_Hints_OpenFunc)( T2_Hints hints ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_StemsFunc - * - * @description: - * A method of the @T2_Hints class used to set the table of stems in - * either the vertical or horizontal dimension. Equivalent to the - * `hstem', `vstem', `hstemhm', and `vstemhm' Type 2 operators. - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * dimension :: - * 0 for horizontal stems (hstem), 1 for vertical ones (vstem). - * - * count :: - * The number of stems. - * - * coords :: - * An array of `count' (position,length) pairs in 16.16 format. - * - * @note: - * Use vertical coordinates (y) for horizontal stems (dim=0). Use - * horizontal coordinates (x) for vertical stems (dim=1). - * - * There are `2*count' elements in the `coords' array. Each even - * element is an absolute position in font units, each odd element is a - * length in font units. - * - * A length can be negative, in which case it must be either -20 or - * -21. It is interpreted as a `ghost' stem, according to the Type 1 - * specification. - * - */ - typedef void - (*T2_Hints_StemsFunc)( T2_Hints hints, - FT_UInt dimension, - FT_Int count, - FT_Fixed* coordinates ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_MaskFunc - * - * @description: - * A method of the @T2_Hints class used to set a given hintmask (this - * corresponds to the `hintmask' Type 2 operator). - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * end_point :: - * The glyph index of the last point to which the previously defined - * or activated hints apply. - * - * bit_count :: - * The number of bits in the hint mask. - * - * bytes :: - * An array of bytes modelling the hint mask. - * - * @note: - * If the hintmask starts the charstring (before any glyph point - * definition), the value of `end_point' should be 0. - * - * `bit_count' is the number of meaningful bits in the `bytes' array; it - * must be equal to the total number of hints defined so far (i.e., - * horizontal+verticals). - * - * The `bytes' array can come directly from the Type 2 charstring and - * respects the same format. - * - */ - typedef void - (*T2_Hints_MaskFunc)( T2_Hints hints, - FT_UInt end_point, - FT_UInt bit_count, - const FT_Byte* bytes ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_CounterFunc - * - * @description: - * A method of the @T2_Hints class used to set a given counter mask - * (this corresponds to the `hintmask' Type 2 operator). - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * end_point :: - * A glyph index of the last point to which the previously defined or - * active hints apply. - * - * bit_count :: - * The number of bits in the hint mask. - * - * bytes :: - * An array of bytes modelling the hint mask. - * - * @note: - * If the hintmask starts the charstring (before any glyph point - * definition), the value of `end_point' should be 0. - * - * `bit_count' is the number of meaningful bits in the `bytes' array; it - * must be equal to the total number of hints defined so far (i.e., - * horizontal+verticals). - * - * The `bytes' array can come directly from the Type 2 charstring and - * respects the same format. - * - */ - typedef void - (*T2_Hints_CounterFunc)( T2_Hints hints, - FT_UInt bit_count, - const FT_Byte* bytes ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_CloseFunc - * - * @description: - * A method of the @T2_Hints class used to close a hint recording - * session. - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * end_point :: - * The index of the last point in the input glyph. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * The error code is set to indicate that an error occurred during the - * recording session. - * - */ - typedef FT_Error - (*T2_Hints_CloseFunc)( T2_Hints hints, - FT_UInt end_point ); - - - /************************************************************************* - * - * @functype: - * T2_Hints_ApplyFunc - * - * @description: - * A method of the @T2_Hints class used to apply hints to the - * corresponding glyph outline. Must be called after the `close' - * method. - * - * @input: - * hints :: - * A handle to the Type 2 hints recorder. - * - * outline :: - * A pointer to the target outline descriptor. - * - * globals :: - * The hinter globals for this font. - * - * hint_mode :: - * Hinting information. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * On input, all points within the outline are in font coordinates. On - * output, they are in 1/64th of pixels. - * - * The scaling transformation is taken from the `globals' object which - * must correspond to the same font than the glyph. - * - */ - typedef FT_Error - (*T2_Hints_ApplyFunc)( T2_Hints hints, - FT_Outline* outline, - PSH_Globals globals, - FT_Render_Mode hint_mode ); - - - /************************************************************************* - * - * @struct: - * T2_Hints_FuncsRec - * - * @description: - * The structure used to provide the API to @T2_Hints objects. - * - * @fields: - * hints :: - * A handle to the T2 hints recorder object. - * - * open :: - * The function to open a recording session. - * - * close :: - * The function to close a recording session. - * - * stems :: - * The function to set the dimension's stems table. - * - * hintmask :: - * The function to set hint masks. - * - * counter :: - * The function to set counter masks. - * - * apply :: - * The function to apply the hints on the corresponding glyph outline. - * - */ - typedef struct T2_Hints_FuncsRec_ - { - T2_Hints hints; - T2_Hints_OpenFunc open; - T2_Hints_CloseFunc close; - T2_Hints_StemsFunc stems; - T2_Hints_MaskFunc hintmask; - T2_Hints_CounterFunc counter; - T2_Hints_ApplyFunc apply; - - } T2_Hints_FuncsRec; - - - /* */ - - - typedef struct PSHinter_Interface_ - { - PSH_Globals_Funcs (*get_globals_funcs)( FT_Module module ); - T1_Hints_Funcs (*get_t1_funcs) ( FT_Module module ); - T2_Hints_Funcs (*get_t2_funcs) ( FT_Module module ); - - } PSHinter_Interface; - - typedef PSHinter_Interface* PSHinter_Service; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_PSHINTER_INTERFACE( \ - class_, \ - get_globals_funcs_, \ - get_t1_funcs_, \ - get_t2_funcs_ ) \ - static const PSHinter_Interface class_ = \ - { \ - get_globals_funcs_, \ - get_t1_funcs_, \ - get_t2_funcs_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_PSHINTER_INTERFACE( \ - class_, \ - get_globals_funcs_, \ - get_t1_funcs_, \ - get_t2_funcs_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - PSHinter_Interface* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_globals_funcs = get_globals_funcs_; \ - clazz->get_t1_funcs = get_t1_funcs_; \ - clazz->get_t2_funcs = get_t2_funcs_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - -FT_END_HEADER - -#endif /* __PSHINTS_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svbdf.h b/lib/windows/include/freetype/internal/services/svbdf.h deleted file mode 100644 index 865b536..0000000 --- a/lib/windows/include/freetype/internal/services/svbdf.h +++ /dev/null @@ -1,82 +0,0 @@ -/***************************************************************************/ -/* */ -/* svbdf.h */ -/* */ -/* The FreeType BDF services (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVBDF_H__ -#define __SVBDF_H__ - -#include FT_BDF_H -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_BDF "bdf" - - typedef FT_Error - (*FT_BDF_GetCharsetIdFunc)( FT_Face face, - const char* *acharset_encoding, - const char* *acharset_registry ); - - typedef FT_Error - (*FT_BDF_GetPropertyFunc)( FT_Face face, - const char* prop_name, - BDF_PropertyRec *aproperty ); - - - FT_DEFINE_SERVICE( BDF ) - { - FT_BDF_GetCharsetIdFunc get_charset_id; - FT_BDF_GetPropertyFunc get_property; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_BDFRec( class_, \ - get_charset_id_, \ - get_property_ ) \ - static const FT_Service_BDFRec class_ = \ - { \ - get_charset_id_, get_property_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_BDFRec( class_, \ - get_charset_id_, \ - get_property_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_BDFRec* clazz ) \ - { \ - clazz->get_charset_id = get_charset_id_; \ - clazz->get_property = get_property_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVBDF_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svcid.h b/lib/windows/include/freetype/internal/services/svcid.h deleted file mode 100644 index 4a535a6..0000000 --- a/lib/windows/include/freetype/internal/services/svcid.h +++ /dev/null @@ -1,90 +0,0 @@ -/***************************************************************************/ -/* */ -/* svcid.h */ -/* */ -/* The FreeType CID font services (specification). */ -/* */ -/* Copyright 2007-2015 by */ -/* Derek Clegg and Michael Toftdal. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVCID_H__ -#define __SVCID_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_CID "CID" - - typedef FT_Error - (*FT_CID_GetRegistryOrderingSupplementFunc)( FT_Face face, - const char* *registry, - const char* *ordering, - FT_Int *supplement ); - typedef FT_Error - (*FT_CID_GetIsInternallyCIDKeyedFunc)( FT_Face face, - FT_Bool *is_cid ); - typedef FT_Error - (*FT_CID_GetCIDFromGlyphIndexFunc)( FT_Face face, - FT_UInt glyph_index, - FT_UInt *cid ); - - FT_DEFINE_SERVICE( CID ) - { - FT_CID_GetRegistryOrderingSupplementFunc get_ros; - FT_CID_GetIsInternallyCIDKeyedFunc get_is_cid; - FT_CID_GetCIDFromGlyphIndexFunc get_cid_from_glyph_index; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_CIDREC( class_, \ - get_ros_, \ - get_is_cid_, \ - get_cid_from_glyph_index_ ) \ - static const FT_Service_CIDRec class_ = \ - { \ - get_ros_, get_is_cid_, get_cid_from_glyph_index_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_CIDREC( class_, \ - get_ros_, \ - get_is_cid_, \ - get_cid_from_glyph_index_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_CIDRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_ros = get_ros_; \ - clazz->get_is_cid = get_is_cid_; \ - clazz->get_cid_from_glyph_index = get_cid_from_glyph_index_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVCID_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svfntfmt.h b/lib/windows/include/freetype/internal/services/svfntfmt.h deleted file mode 100644 index f8b3617..0000000 --- a/lib/windows/include/freetype/internal/services/svfntfmt.h +++ /dev/null @@ -1,55 +0,0 @@ -/***************************************************************************/ -/* */ -/* svfntfmt.h */ -/* */ -/* The FreeType font format service (specification only). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVFNTFMT_H__ -#define __SVFNTFMT_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - - /* - * A trivial service used to return the name of a face's font driver, - * according to the XFree86 nomenclature. Note that the service data - * is a simple constant string pointer. - */ - -#define FT_SERVICE_ID_FONT_FORMAT "font-format" - -#define FT_FONT_FORMAT_TRUETYPE "TrueType" -#define FT_FONT_FORMAT_TYPE_1 "Type 1" -#define FT_FONT_FORMAT_BDF "BDF" -#define FT_FONT_FORMAT_PCF "PCF" -#define FT_FONT_FORMAT_TYPE_42 "Type 42" -#define FT_FONT_FORMAT_CID "CID Type 1" -#define FT_FONT_FORMAT_CFF "CFF" -#define FT_FONT_FORMAT_PFR "PFR" -#define FT_FONT_FORMAT_WINFNT "Windows FNT" - - /* */ - - -FT_END_HEADER - - -#endif /* __SVFNTFMT_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svgldict.h b/lib/windows/include/freetype/internal/services/svgldict.h deleted file mode 100644 index f78bca5..0000000 --- a/lib/windows/include/freetype/internal/services/svgldict.h +++ /dev/null @@ -1,88 +0,0 @@ -/***************************************************************************/ -/* */ -/* svgldict.h */ -/* */ -/* The FreeType glyph dictionary services (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVGLDICT_H__ -#define __SVGLDICT_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - - /* - * A service used to retrieve glyph names, as well as to find the - * index of a given glyph name in a font. - * - */ - -#define FT_SERVICE_ID_GLYPH_DICT "glyph-dict" - - - typedef FT_Error - (*FT_GlyphDict_GetNameFunc)( FT_Face face, - FT_UInt glyph_index, - FT_Pointer buffer, - FT_UInt buffer_max ); - - typedef FT_UInt - (*FT_GlyphDict_NameIndexFunc)( FT_Face face, - FT_String* glyph_name ); - - - FT_DEFINE_SERVICE( GlyphDict ) - { - FT_GlyphDict_GetNameFunc get_name; - FT_GlyphDict_NameIndexFunc name_index; /* optional */ - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \ - get_name_, \ - name_index_) \ - static const FT_Service_GlyphDictRec class_ = \ - { \ - get_name_, name_index_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \ - get_name_, \ - name_index_) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_GlyphDictRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_name = get_name_; \ - clazz->name_index = name_index_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVGLDICT_H__ */ diff --git a/lib/windows/include/freetype/internal/services/svgxval.h b/lib/windows/include/freetype/internal/services/svgxval.h deleted file mode 100644 index 59cc3b7..0000000 --- a/lib/windows/include/freetype/internal/services/svgxval.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************/ -/* */ -/* svgxval.h */ -/* */ -/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* Masatake YAMATO, Red Hat K.K., */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/***************************************************************************/ -/* */ -/* gxvalid is derived from both gxlayout module and otvalid module. */ -/* Development of gxlayout is supported by the Information-technology */ -/* Promotion Agency(IPA), Japan. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVGXVAL_H__ -#define __SVGXVAL_H__ - -#include FT_GX_VALIDATE_H -#include FT_INTERNAL_VALIDATE_H - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_GX_VALIDATE "truetypegx-validate" -#define FT_SERVICE_ID_CLASSICKERN_VALIDATE "classickern-validate" - - typedef FT_Error - (*gxv_validate_func)( FT_Face face, - FT_UInt gx_flags, - FT_Bytes tables[FT_VALIDATE_GX_LENGTH], - FT_UInt table_length ); - - - typedef FT_Error - (*ckern_validate_func)( FT_Face face, - FT_UInt ckern_flags, - FT_Bytes *ckern_table ); - - - FT_DEFINE_SERVICE( GXvalidate ) - { - gxv_validate_func validate; - }; - - FT_DEFINE_SERVICE( CKERNvalidate ) - { - ckern_validate_func validate; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVGXVAL_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svkern.h b/lib/windows/include/freetype/internal/services/svkern.h deleted file mode 100644 index bc26f15..0000000 --- a/lib/windows/include/freetype/internal/services/svkern.h +++ /dev/null @@ -1,51 +0,0 @@ -/***************************************************************************/ -/* */ -/* svkern.h */ -/* */ -/* The FreeType Kerning service (specification). */ -/* */ -/* Copyright 2006-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVKERN_H__ -#define __SVKERN_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_TRUETYPE_TABLES_H - - -FT_BEGIN_HEADER - -#define FT_SERVICE_ID_KERNING "kerning" - - - typedef FT_Error - (*FT_Kerning_TrackGetFunc)( FT_Face face, - FT_Fixed point_size, - FT_Int degree, - FT_Fixed* akerning ); - - FT_DEFINE_SERVICE( Kerning ) - { - FT_Kerning_TrackGetFunc get_track; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVKERN_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svmm.h b/lib/windows/include/freetype/internal/services/svmm.h deleted file mode 100644 index f2cecfb..0000000 --- a/lib/windows/include/freetype/internal/services/svmm.h +++ /dev/null @@ -1,113 +0,0 @@ -/***************************************************************************/ -/* */ -/* svmm.h */ -/* */ -/* The FreeType Multiple Masters and GX var services (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVMM_H__ -#define __SVMM_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - - /* - * A service used to manage multiple-masters data in a given face. - * - * See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H). - * - */ - -#define FT_SERVICE_ID_MULTI_MASTERS "multi-masters" - - - typedef FT_Error - (*FT_Get_MM_Func)( FT_Face face, - FT_Multi_Master* master ); - - typedef FT_Error - (*FT_Get_MM_Var_Func)( FT_Face face, - FT_MM_Var* *master ); - - typedef FT_Error - (*FT_Set_MM_Design_Func)( FT_Face face, - FT_UInt num_coords, - FT_Long* coords ); - - typedef FT_Error - (*FT_Set_Var_Design_Func)( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - typedef FT_Error - (*FT_Set_MM_Blend_Func)( FT_Face face, - FT_UInt num_coords, - FT_Long* coords ); - - - FT_DEFINE_SERVICE( MultiMasters ) - { - FT_Get_MM_Func get_mm; - FT_Set_MM_Design_Func set_mm_design; - FT_Set_MM_Blend_Func set_mm_blend; - FT_Get_MM_Var_Func get_mm_var; - FT_Set_Var_Design_Func set_var_design; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \ - get_mm_, \ - set_mm_design_, \ - set_mm_blend_, \ - get_mm_var_, \ - set_var_design_ ) \ - static const FT_Service_MultiMastersRec class_ = \ - { \ - get_mm_, set_mm_design_, set_mm_blend_, get_mm_var_, set_var_design_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \ - get_mm_, \ - set_mm_design_, \ - set_mm_blend_, \ - get_mm_var_, \ - set_var_design_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_MultiMastersRec* clazz ) \ - { \ - clazz->get_mm = get_mm_; \ - clazz->set_mm_design = set_mm_design_; \ - clazz->set_mm_blend = set_mm_blend_; \ - clazz->get_mm_var = get_mm_var_; \ - clazz->set_var_design = set_var_design_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - -#endif /* __SVMM_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svotval.h b/lib/windows/include/freetype/internal/services/svotval.h deleted file mode 100644 index a82a642..0000000 --- a/lib/windows/include/freetype/internal/services/svotval.h +++ /dev/null @@ -1,55 +0,0 @@ -/***************************************************************************/ -/* */ -/* svotval.h */ -/* */ -/* The FreeType OpenType validation service (specification). */ -/* */ -/* Copyright 2004-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVOTVAL_H__ -#define __SVOTVAL_H__ - -#include FT_OPENTYPE_VALIDATE_H -#include FT_INTERNAL_VALIDATE_H - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_OPENTYPE_VALIDATE "opentype-validate" - - - typedef FT_Error - (*otv_validate_func)( FT_Face volatile face, - FT_UInt ot_flags, - FT_Bytes *base, - FT_Bytes *gdef, - FT_Bytes *gpos, - FT_Bytes *gsub, - FT_Bytes *jstf ); - - - FT_DEFINE_SERVICE( OTvalidate ) - { - otv_validate_func validate; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVOTVAL_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svpfr.h b/lib/windows/include/freetype/internal/services/svpfr.h deleted file mode 100644 index d4eb169..0000000 --- a/lib/windows/include/freetype/internal/services/svpfr.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************/ -/* */ -/* svpfr.h */ -/* */ -/* Internal PFR service functions (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPFR_H__ -#define __SVPFR_H__ - -#include FT_PFR_H -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_PFR_METRICS "pfr-metrics" - - - typedef FT_Error - (*FT_PFR_GetMetricsFunc)( FT_Face face, - FT_UInt *aoutline, - FT_UInt *ametrics, - FT_Fixed *ax_scale, - FT_Fixed *ay_scale ); - - typedef FT_Error - (*FT_PFR_GetKerningFunc)( FT_Face face, - FT_UInt left, - FT_UInt right, - FT_Vector *avector ); - - typedef FT_Error - (*FT_PFR_GetAdvanceFunc)( FT_Face face, - FT_UInt gindex, - FT_Pos *aadvance ); - - - FT_DEFINE_SERVICE( PfrMetrics ) - { - FT_PFR_GetMetricsFunc get_metrics; - FT_PFR_GetKerningFunc get_kerning; - FT_PFR_GetAdvanceFunc get_advance; - - }; - - /* */ - -FT_END_HEADER - -#endif /* __SVPFR_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svpostnm.h b/lib/windows/include/freetype/internal/services/svpostnm.h deleted file mode 100644 index a89f79e..0000000 --- a/lib/windows/include/freetype/internal/services/svpostnm.h +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************/ -/* */ -/* svpostnm.h */ -/* */ -/* The FreeType PostScript name services (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPOSTNM_H__ -#define __SVPOSTNM_H__ - -#include FT_INTERNAL_SERVICE_H - - -FT_BEGIN_HEADER - - /* - * A trivial service used to retrieve the PostScript name of a given - * font when available. The `get_name' field should never be NULL. - * - * The corresponding function can return NULL to indicate that the - * PostScript name is not available. - * - * The name is owned by the face and will be destroyed with it. - */ - -#define FT_SERVICE_ID_POSTSCRIPT_FONT_NAME "postscript-font-name" - - - typedef const char* - (*FT_PsName_GetFunc)( FT_Face face ); - - - FT_DEFINE_SERVICE( PsFontName ) - { - FT_PsName_GetFunc get_ps_font_name; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \ - static const FT_Service_PsFontNameRec class_ = \ - { \ - get_ps_font_name_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_PsFontNameRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_ps_font_name = get_ps_font_name_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVPOSTNM_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svprop.h b/lib/windows/include/freetype/internal/services/svprop.h deleted file mode 100644 index c9f07ce..0000000 --- a/lib/windows/include/freetype/internal/services/svprop.h +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************/ -/* */ -/* svprop.h */ -/* */ -/* The FreeType property service (specification). */ -/* */ -/* Copyright 2012-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPROP_H__ -#define __SVPROP_H__ - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_PROPERTIES "properties" - - - typedef FT_Error - (*FT_Properties_SetFunc)( FT_Module module, - const char* property_name, - const void* value ); - - typedef FT_Error - (*FT_Properties_GetFunc)( FT_Module module, - const char* property_name, - void* value ); - - - FT_DEFINE_SERVICE( Properties ) - { - FT_Properties_SetFunc set_property; - FT_Properties_GetFunc get_property; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ - set_property_, \ - get_property_ ) \ - static const FT_Service_PropertiesRec class_ = \ - { \ - set_property_, \ - get_property_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ - set_property_, \ - get_property_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_PropertiesRec* clazz ) \ - { \ - clazz->set_property = set_property_; \ - clazz->get_property = get_property_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVPROP_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svpscmap.h b/lib/windows/include/freetype/internal/services/svpscmap.h deleted file mode 100644 index 66da6e1..0000000 --- a/lib/windows/include/freetype/internal/services/svpscmap.h +++ /dev/null @@ -1,177 +0,0 @@ -/***************************************************************************/ -/* */ -/* svpscmap.h */ -/* */ -/* The FreeType PostScript charmap service (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPSCMAP_H__ -#define __SVPSCMAP_H__ - -#include FT_INTERNAL_OBJECTS_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_POSTSCRIPT_CMAPS "postscript-cmaps" - - - /* - * Adobe glyph name to unicode value. - */ - typedef FT_UInt32 - (*PS_Unicode_ValueFunc)( const char* glyph_name ); - - /* - * Macintosh name id to glyph name. NULL if invalid index. - */ - typedef const char* - (*PS_Macintosh_NameFunc)( FT_UInt name_index ); - - /* - * Adobe standard string ID to glyph name. NULL if invalid index. - */ - typedef const char* - (*PS_Adobe_Std_StringsFunc)( FT_UInt string_index ); - - - /* - * Simple unicode -> glyph index charmap built from font glyph names - * table. - */ - typedef struct PS_UniMap_ - { - FT_UInt32 unicode; /* bit 31 set: is glyph variant */ - FT_UInt glyph_index; - - } PS_UniMap; - - - typedef struct PS_UnicodesRec_* PS_Unicodes; - - typedef struct PS_UnicodesRec_ - { - FT_CMapRec cmap; - FT_UInt num_maps; - PS_UniMap* maps; - - } PS_UnicodesRec; - - - /* - * A function which returns a glyph name for a given index. Returns - * NULL if invalid index. - */ - typedef const char* - (*PS_GetGlyphNameFunc)( FT_Pointer data, - FT_UInt string_index ); - - /* - * A function used to release the glyph name returned by - * PS_GetGlyphNameFunc, when needed - */ - typedef void - (*PS_FreeGlyphNameFunc)( FT_Pointer data, - const char* name ); - - typedef FT_Error - (*PS_Unicodes_InitFunc)( FT_Memory memory, - PS_Unicodes unicodes, - FT_UInt num_glyphs, - PS_GetGlyphNameFunc get_glyph_name, - PS_FreeGlyphNameFunc free_glyph_name, - FT_Pointer glyph_data ); - - typedef FT_UInt - (*PS_Unicodes_CharIndexFunc)( PS_Unicodes unicodes, - FT_UInt32 unicode ); - - typedef FT_UInt32 - (*PS_Unicodes_CharNextFunc)( PS_Unicodes unicodes, - FT_UInt32 *unicode ); - - - FT_DEFINE_SERVICE( PsCMaps ) - { - PS_Unicode_ValueFunc unicode_value; - - PS_Unicodes_InitFunc unicodes_init; - PS_Unicodes_CharIndexFunc unicodes_char_index; - PS_Unicodes_CharNextFunc unicodes_char_next; - - PS_Macintosh_NameFunc macintosh_name; - PS_Adobe_Std_StringsFunc adobe_std_strings; - const unsigned short* adobe_std_encoding; - const unsigned short* adobe_expert_encoding; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_PSCMAPSREC( class_, \ - unicode_value_, \ - unicodes_init_, \ - unicodes_char_index_, \ - unicodes_char_next_, \ - macintosh_name_, \ - adobe_std_strings_, \ - adobe_std_encoding_, \ - adobe_expert_encoding_ ) \ - static const FT_Service_PsCMapsRec class_ = \ - { \ - unicode_value_, unicodes_init_, \ - unicodes_char_index_, unicodes_char_next_, macintosh_name_, \ - adobe_std_strings_, adobe_std_encoding_, adobe_expert_encoding_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_PSCMAPSREC( class_, \ - unicode_value_, \ - unicodes_init_, \ - unicodes_char_index_, \ - unicodes_char_next_, \ - macintosh_name_, \ - adobe_std_strings_, \ - adobe_std_encoding_, \ - adobe_expert_encoding_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_PsCMapsRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->unicode_value = unicode_value_; \ - clazz->unicodes_init = unicodes_init_; \ - clazz->unicodes_char_index = unicodes_char_index_; \ - clazz->unicodes_char_next = unicodes_char_next_; \ - clazz->macintosh_name = macintosh_name_; \ - clazz->adobe_std_strings = adobe_std_strings_; \ - clazz->adobe_std_encoding = adobe_std_encoding_; \ - clazz->adobe_expert_encoding = adobe_expert_encoding_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVPSCMAP_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svpsinfo.h b/lib/windows/include/freetype/internal/services/svpsinfo.h deleted file mode 100644 index 752a266..0000000 --- a/lib/windows/include/freetype/internal/services/svpsinfo.h +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************/ -/* */ -/* svpsinfo.h */ -/* */ -/* The FreeType PostScript info service (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVPSINFO_H__ -#define __SVPSINFO_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_INTERNAL_TYPE1_TYPES_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_POSTSCRIPT_INFO "postscript-info" - - - typedef FT_Error - (*PS_GetFontInfoFunc)( FT_Face face, - PS_FontInfoRec* afont_info ); - - typedef FT_Error - (*PS_GetFontExtraFunc)( FT_Face face, - PS_FontExtraRec* afont_extra ); - - typedef FT_Int - (*PS_HasGlyphNamesFunc)( FT_Face face ); - - typedef FT_Error - (*PS_GetFontPrivateFunc)( FT_Face face, - PS_PrivateRec* afont_private ); - - typedef FT_Long - (*PS_GetFontValueFunc)( FT_Face face, - PS_Dict_Keys key, - FT_UInt idx, - void *value, - FT_Long value_len ); - - - FT_DEFINE_SERVICE( PsInfo ) - { - PS_GetFontInfoFunc ps_get_font_info; - PS_GetFontExtraFunc ps_get_font_extra; - PS_HasGlyphNamesFunc ps_has_glyph_names; - PS_GetFontPrivateFunc ps_get_font_private; - PS_GetFontValueFunc ps_get_font_value; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_PSINFOREC( class_, \ - get_font_info_, \ - ps_get_font_extra_, \ - has_glyph_names_, \ - get_font_private_, \ - get_font_value_ ) \ - static const FT_Service_PsInfoRec class_ = \ - { \ - get_font_info_, ps_get_font_extra_, has_glyph_names_, \ - get_font_private_, get_font_value_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_PSINFOREC( class_, \ - get_font_info_, \ - ps_get_font_extra_, \ - has_glyph_names_, \ - get_font_private_, \ - get_font_value_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_PsInfoRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->ps_get_font_info = get_font_info_; \ - clazz->ps_get_font_extra = ps_get_font_extra_; \ - clazz->ps_has_glyph_names = has_glyph_names_; \ - clazz->ps_get_font_private = get_font_private_; \ - clazz->ps_get_font_value = get_font_value_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVPSINFO_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svsfnt.h b/lib/windows/include/freetype/internal/services/svsfnt.h deleted file mode 100644 index 252ae1c..0000000 --- a/lib/windows/include/freetype/internal/services/svsfnt.h +++ /dev/null @@ -1,103 +0,0 @@ -/***************************************************************************/ -/* */ -/* svsfnt.h */ -/* */ -/* The FreeType SFNT table loading service (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVSFNT_H__ -#define __SVSFNT_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_TRUETYPE_TABLES_H - - -FT_BEGIN_HEADER - - - /* - * SFNT table loading service. - */ - -#define FT_SERVICE_ID_SFNT_TABLE "sfnt-table" - - - /* - * Used to implement FT_Load_Sfnt_Table(). - */ - typedef FT_Error - (*FT_SFNT_TableLoadFunc)( FT_Face face, - FT_ULong tag, - FT_Long offset, - FT_Byte* buffer, - FT_ULong* length ); - - /* - * Used to implement FT_Get_Sfnt_Table(). - */ - typedef void* - (*FT_SFNT_TableGetFunc)( FT_Face face, - FT_Sfnt_Tag tag ); - - - /* - * Used to implement FT_Sfnt_Table_Info(). - */ - typedef FT_Error - (*FT_SFNT_TableInfoFunc)( FT_Face face, - FT_UInt idx, - FT_ULong *tag, - FT_ULong *offset, - FT_ULong *length ); - - - FT_DEFINE_SERVICE( SFNT_Table ) - { - FT_SFNT_TableLoadFunc load_table; - FT_SFNT_TableGetFunc get_table; - FT_SFNT_TableInfoFunc table_info; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ - static const FT_Service_SFNT_TableRec class_ = \ - { \ - load_, get_, info_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_SFNT_TableRec* clazz ) \ - { \ - clazz->load_table = load_; \ - clazz->get_table = get_; \ - clazz->table_info = info_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - - -#endif /* __SVSFNT_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svttcmap.h b/lib/windows/include/freetype/internal/services/svttcmap.h deleted file mode 100644 index 4351a9a..0000000 --- a/lib/windows/include/freetype/internal/services/svttcmap.h +++ /dev/null @@ -1,105 +0,0 @@ -/***************************************************************************/ -/* */ -/* svttcmap.h */ -/* */ -/* The FreeType TrueType/sfnt cmap extra information service. */ -/* */ -/* Copyright 2003-2015 by */ -/* Masatake YAMATO, Redhat K.K., */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/* Development of this service is support of - Information-technology Promotion Agency, Japan. */ - -#ifndef __SVTTCMAP_H__ -#define __SVTTCMAP_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_TRUETYPE_TABLES_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_TT_CMAP "tt-cmaps" - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_CMapInfo */ - /* */ - /* <Description> */ - /* A structure used to store TrueType/sfnt specific cmap information */ - /* which is not covered by the generic @FT_CharMap structure. This */ - /* structure can be accessed with the @FT_Get_TT_CMap_Info function. */ - /* */ - /* <Fields> */ - /* language :: */ - /* The language ID used in Mac fonts. Definitions of values are in */ - /* `ttnameid.h'. */ - /* */ - /* format :: */ - /* The cmap format. OpenType 1.5 defines the formats 0 (byte */ - /* encoding table), 2~(high-byte mapping through table), 4~(segment */ - /* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */ - /* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */ - /* coverage), and 14 (Unicode Variation Sequences). */ - /* */ - typedef struct TT_CMapInfo_ - { - FT_ULong language; - FT_Long format; - - } TT_CMapInfo; - - - typedef FT_Error - (*TT_CMap_Info_GetFunc)( FT_CharMap charmap, - TT_CMapInfo *cmap_info ); - - - FT_DEFINE_SERVICE( TTCMaps ) - { - TT_CMap_Info_GetFunc get_cmap_info; - }; - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ - static const FT_Service_TTCMapsRec class_ = \ - { \ - get_cmap_info_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - FT_Service_TTCMapsRec* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->get_cmap_info = get_cmap_info_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - -#endif /* __SVTTCMAP_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svtteng.h b/lib/windows/include/freetype/internal/services/svtteng.h deleted file mode 100644 index 272ee8c..0000000 --- a/lib/windows/include/freetype/internal/services/svtteng.h +++ /dev/null @@ -1,53 +0,0 @@ -/***************************************************************************/ -/* */ -/* svtteng.h */ -/* */ -/* The FreeType TrueType engine query service (specification). */ -/* */ -/* Copyright 2006-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVTTENG_H__ -#define __SVTTENG_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_MODULE_H - - -FT_BEGIN_HEADER - - - /* - * SFNT table loading service. - */ - -#define FT_SERVICE_ID_TRUETYPE_ENGINE "truetype-engine" - - /* - * Used to implement FT_Get_TrueType_Engine_Type - */ - - FT_DEFINE_SERVICE( TrueTypeEngine ) - { - FT_TrueTypeEngineType engine_type; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVTTENG_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svttglyf.h b/lib/windows/include/freetype/internal/services/svttglyf.h deleted file mode 100644 index f5cb76a..0000000 --- a/lib/windows/include/freetype/internal/services/svttglyf.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************/ -/* */ -/* svttglyf.h */ -/* */ -/* The FreeType TrueType glyph service. */ -/* */ -/* Copyright 2007-2015 by */ -/* David Turner. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -#ifndef __SVTTGLYF_H__ -#define __SVTTGLYF_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_TRUETYPE_TABLES_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_TT_GLYF "tt-glyf" - - - typedef FT_ULong - (*TT_Glyf_GetLocationFunc)( FT_Face face, - FT_UInt gindex, - FT_ULong *psize ); - - FT_DEFINE_SERVICE( TTGlyf ) - { - TT_Glyf_GetLocationFunc get_location; - }; - - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SERVICE_TTGLYFREC( class_, get_location_ ) \ - static const FT_Service_TTGlyfRec class_ = \ - { \ - get_location_ \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_DEFINE_SERVICE_TTGLYFREC( class_, get_location_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Service_TTGlyfRec* clazz ) \ - { \ - clazz->get_location = get_location_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - - /* */ - - -FT_END_HEADER - -#endif /* __SVTTGLYF_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/services/svwinfnt.h b/lib/windows/include/freetype/internal/services/svwinfnt.h deleted file mode 100644 index 0036929..0000000 --- a/lib/windows/include/freetype/internal/services/svwinfnt.h +++ /dev/null @@ -1,50 +0,0 @@ -/***************************************************************************/ -/* */ -/* svwinfnt.h */ -/* */ -/* The FreeType Windows FNT/FONT service (specification). */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SVWINFNT_H__ -#define __SVWINFNT_H__ - -#include FT_INTERNAL_SERVICE_H -#include FT_WINFONTS_H - - -FT_BEGIN_HEADER - - -#define FT_SERVICE_ID_WINFNT "winfonts" - - typedef FT_Error - (*FT_WinFnt_GetHeaderFunc)( FT_Face face, - FT_WinFNT_HeaderRec *aheader ); - - - FT_DEFINE_SERVICE( WinFnt ) - { - FT_WinFnt_GetHeaderFunc get_header; - }; - - /* */ - - -FT_END_HEADER - - -#endif /* __SVWINFNT_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/sfnt.h b/lib/windows/include/freetype/internal/sfnt.h deleted file mode 100644 index 97ce390..0000000 --- a/lib/windows/include/freetype/internal/sfnt.h +++ /dev/null @@ -1,711 +0,0 @@ -/***************************************************************************/ -/* */ -/* sfnt.h */ -/* */ -/* High-level `sfnt' driver interface (specification). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __SFNT_H__ -#define __SFNT_H__ - - -#include <ft2build.h> -#include FT_INTERNAL_DRIVER_H -#include FT_INTERNAL_TRUETYPE_TYPES_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Init_Face_Func */ - /* */ - /* <Description> */ - /* First part of the SFNT face object initialization. This finds */ - /* the face in a SFNT file or collection, and load its format tag in */ - /* face->format_tag. */ - /* */ - /* <Input> */ - /* stream :: The input stream. */ - /* */ - /* face :: A handle to the target face object. */ - /* */ - /* face_index :: The index of the TrueType font, if we are opening a */ - /* collection. */ - /* */ - /* num_params :: The number of additional parameters. */ - /* */ - /* params :: Optional additional parameters. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* The stream cursor must be at the font file's origin. */ - /* */ - /* This function recognizes fonts embedded in a `TrueType */ - /* collection'. */ - /* */ - /* Once the format tag has been validated by the font driver, it */ - /* should then call the TT_Load_Face_Func() callback to read the rest */ - /* of the SFNT tables in the object. */ - /* */ - typedef FT_Error - (*TT_Init_Face_Func)( FT_Stream stream, - TT_Face face, - FT_Int face_index, - FT_Int num_params, - FT_Parameter* params ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Face_Func */ - /* */ - /* <Description> */ - /* Second part of the SFNT face object initialization. This loads */ - /* the common SFNT tables (head, OS/2, maxp, metrics, etc.) in the */ - /* face object. */ - /* */ - /* <Input> */ - /* stream :: The input stream. */ - /* */ - /* face :: A handle to the target face object. */ - /* */ - /* face_index :: The index of the TrueType font, if we are opening a */ - /* collection. */ - /* */ - /* num_params :: The number of additional parameters. */ - /* */ - /* params :: Optional additional parameters. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function must be called after TT_Init_Face_Func(). */ - /* */ - typedef FT_Error - (*TT_Load_Face_Func)( FT_Stream stream, - TT_Face face, - FT_Int face_index, - FT_Int num_params, - FT_Parameter* params ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Done_Face_Func */ - /* */ - /* <Description> */ - /* A callback used to delete the common SFNT data from a face. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* <Note> */ - /* This function does NOT destroy the face object. */ - /* */ - typedef void - (*TT_Done_Face_Func)( TT_Face face ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Any_Func */ - /* */ - /* <Description> */ - /* Load any font table into client memory. */ - /* */ - /* <Input> */ - /* face :: The face object to look for. */ - /* */ - /* tag :: The tag of table to load. Use the value 0 if you want */ - /* to access the whole font file, else set this parameter */ - /* to a valid TrueType table tag that you can forge with */ - /* the MAKE_TT_TAG macro. */ - /* */ - /* offset :: The starting offset in the table (or the file if */ - /* tag == 0). */ - /* */ - /* length :: The address of the decision variable: */ - /* */ - /* If length == NULL: */ - /* Loads the whole table. Returns an error if */ - /* `offset' == 0! */ - /* */ - /* If *length == 0: */ - /* Exits immediately; returning the length of the given */ - /* table or of the font file, depending on the value of */ - /* `tag'. */ - /* */ - /* If *length != 0: */ - /* Loads the next `length' bytes of table or font, */ - /* starting at offset `offset' (in table or font too). */ - /* */ - /* <Output> */ - /* buffer :: The address of target buffer. */ - /* */ - /* <Return> */ - /* TrueType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Load_Any_Func)( TT_Face face, - FT_ULong tag, - FT_Long offset, - FT_Byte *buffer, - FT_ULong* length ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Find_SBit_Image_Func */ - /* */ - /* <Description> */ - /* Check whether an embedded bitmap (an `sbit') exists for a given */ - /* glyph, at a given strike. */ - /* */ - /* <Input> */ - /* face :: The target face object. */ - /* */ - /* glyph_index :: The glyph index. */ - /* */ - /* strike_index :: The current strike index. */ - /* */ - /* <Output> */ - /* arange :: The SBit range containing the glyph index. */ - /* */ - /* astrike :: The SBit strike containing the glyph index. */ - /* */ - /* aglyph_offset :: The offset of the glyph data in `EBDT' table. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. Returns */ - /* SFNT_Err_Invalid_Argument if no sbit exists for the requested */ - /* glyph. */ - /* */ - typedef FT_Error - (*TT_Find_SBit_Image_Func)( TT_Face face, - FT_UInt glyph_index, - FT_ULong strike_index, - TT_SBit_Range *arange, - TT_SBit_Strike *astrike, - FT_ULong *aglyph_offset ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_SBit_Metrics_Func */ - /* */ - /* <Description> */ - /* Get the big metrics for a given embedded bitmap. */ - /* */ - /* <Input> */ - /* stream :: The input stream. */ - /* */ - /* range :: The SBit range containing the glyph. */ - /* */ - /* <Output> */ - /* big_metrics :: A big SBit metrics structure for the glyph. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* The stream cursor must be positioned at the glyph's offset within */ - /* the `EBDT' table before the call. */ - /* */ - /* If the image format uses variable metrics, the stream cursor is */ - /* positioned just after the metrics header in the `EBDT' table on */ - /* function exit. */ - /* */ - typedef FT_Error - (*TT_Load_SBit_Metrics_Func)( FT_Stream stream, - TT_SBit_Range range, - TT_SBit_Metrics metrics ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_SBit_Image_Func */ - /* */ - /* <Description> */ - /* Load a given glyph sbit image from the font resource. This also */ - /* returns its metrics. */ - /* */ - /* <Input> */ - /* face :: */ - /* The target face object. */ - /* */ - /* strike_index :: */ - /* The strike index. */ - /* */ - /* glyph_index :: */ - /* The current glyph index. */ - /* */ - /* load_flags :: */ - /* The current load flags. */ - /* */ - /* stream :: */ - /* The input stream. */ - /* */ - /* <Output> */ - /* amap :: */ - /* The target pixmap. */ - /* */ - /* ametrics :: */ - /* A big sbit metrics structure for the glyph image. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. Returns an error if no */ - /* glyph sbit exists for the index. */ - /* */ - /* <Note> */ - /* The `map.buffer' field is always freed before the glyph is loaded. */ - /* */ - typedef FT_Error - (*TT_Load_SBit_Image_Func)( TT_Face face, - FT_ULong strike_index, - FT_UInt glyph_index, - FT_UInt load_flags, - FT_Stream stream, - FT_Bitmap *amap, - TT_SBit_MetricsRec *ametrics ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Set_SBit_Strike_Func */ - /* */ - /* <Description> */ - /* Select an sbit strike for a given size request. */ - /* */ - /* <Input> */ - /* face :: The target face object. */ - /* */ - /* req :: The size request. */ - /* */ - /* <Output> */ - /* astrike_index :: The index of the sbit strike. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. Returns an error if no */ - /* sbit strike exists for the selected ppem values. */ - /* */ - typedef FT_Error - (*TT_Set_SBit_Strike_Func)( TT_Face face, - FT_Size_Request req, - FT_ULong* astrike_index ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Strike_Metrics_Func */ - /* */ - /* <Description> */ - /* Load the metrics of a given strike. */ - /* */ - /* <Input> */ - /* face :: The target face object. */ - /* */ - /* strike_index :: The strike index. */ - /* */ - /* <Output> */ - /* metrics :: the metrics of the strike. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. Returns an error if no */ - /* such sbit strike exists. */ - /* */ - typedef FT_Error - (*TT_Load_Strike_Metrics_Func)( TT_Face face, - FT_ULong strike_index, - FT_Size_Metrics* metrics ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Get_PS_Name_Func */ - /* */ - /* <Description> */ - /* Get the PostScript glyph name of a glyph. */ - /* */ - /* <Input> */ - /* idx :: The glyph index. */ - /* */ - /* PSname :: The address of a string pointer. Will be NULL in case */ - /* of error, otherwise it is a pointer to the glyph name. */ - /* */ - /* You must not modify the returned string! */ - /* */ - /* <Output> */ - /* FreeType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Get_PS_Name_Func)( TT_Face face, - FT_UInt idx, - FT_String** PSname ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Metrics_Func */ - /* */ - /* <Description> */ - /* Load a metrics table, which is a table with a horizontal and a */ - /* vertical version. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* stream :: The input stream. */ - /* */ - /* vertical :: A boolean flag. If set, load the vertical one. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Load_Metrics_Func)( TT_Face face, - FT_Stream stream, - FT_Bool vertical ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Get_Metrics_Func */ - /* */ - /* <Description> */ - /* Load the horizontal or vertical header in a face object. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* vertical :: A boolean flag. If set, load vertical metrics. */ - /* */ - /* gindex :: The glyph index. */ - /* */ - /* <Output> */ - /* abearing :: The horizontal (or vertical) bearing. Set to zero in */ - /* case of error. */ - /* */ - /* aadvance :: The horizontal (or vertical) advance. Set to zero in */ - /* case of error. */ - /* */ - typedef void - (*TT_Get_Metrics_Func)( TT_Face face, - FT_Bool vertical, - FT_UInt gindex, - FT_Short* abearing, - FT_UShort* aadvance ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Load_Table_Func */ - /* */ - /* <Description> */ - /* Load a given TrueType table. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* stream :: The input stream. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* The function uses `face->goto_table' to seek the stream to the */ - /* start of the table, except while loading the font directory. */ - /* */ - typedef FT_Error - (*TT_Load_Table_Func)( TT_Face face, - FT_Stream stream ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Free_Table_Func */ - /* */ - /* <Description> */ - /* Free a given TrueType table. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - typedef void - (*TT_Free_Table_Func)( TT_Face face ); - - - /* - * @functype: - * TT_Face_GetKerningFunc - * - * @description: - * Return the horizontal kerning value between two glyphs. - * - * @input: - * face :: A handle to the source face object. - * left_glyph :: The left glyph index. - * right_glyph :: The right glyph index. - * - * @return: - * The kerning value in font units. - */ - typedef FT_Int - (*TT_Face_GetKerningFunc)( TT_Face face, - FT_UInt left_glyph, - FT_UInt right_glyph ); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* SFNT_Interface */ - /* */ - /* <Description> */ - /* This structure holds pointers to the functions used to load and */ - /* free the basic tables that are required in a `sfnt' font file. */ - /* */ - /* <Fields> */ - /* Check the various xxx_Func() descriptions for details. */ - /* */ - typedef struct SFNT_Interface_ - { - TT_Loader_GotoTableFunc goto_table; - - TT_Init_Face_Func init_face; - TT_Load_Face_Func load_face; - TT_Done_Face_Func done_face; - FT_Module_Requester get_interface; - - TT_Load_Any_Func load_any; - - /* these functions are called by `load_face' but they can also */ - /* be called from external modules, if there is a need to do so */ - TT_Load_Table_Func load_head; - TT_Load_Metrics_Func load_hhea; - TT_Load_Table_Func load_cmap; - TT_Load_Table_Func load_maxp; - TT_Load_Table_Func load_os2; - TT_Load_Table_Func load_post; - - TT_Load_Table_Func load_name; - TT_Free_Table_Func free_name; - - /* this field was called `load_kerning' up to version 2.1.10 */ - TT_Load_Table_Func load_kern; - - TT_Load_Table_Func load_gasp; - TT_Load_Table_Func load_pclt; - - /* see `ttload.h'; this field was called `load_bitmap_header' up to */ - /* version 2.1.10 */ - TT_Load_Table_Func load_bhed; - - TT_Load_SBit_Image_Func load_sbit_image; - - /* see `ttpost.h' */ - TT_Get_PS_Name_Func get_psname; - TT_Free_Table_Func free_psnames; - - /* starting here, the structure differs from version 2.1.7 */ - - /* this field was introduced in version 2.1.8, named `get_psname' */ - TT_Face_GetKerningFunc get_kerning; - - /* new elements introduced after version 2.1.10 */ - - /* load the font directory, i.e., the offset table and */ - /* the table directory */ - TT_Load_Table_Func load_font_dir; - TT_Load_Metrics_Func load_hmtx; - - TT_Load_Table_Func load_eblc; - TT_Free_Table_Func free_eblc; - - TT_Set_SBit_Strike_Func set_sbit_strike; - TT_Load_Strike_Metrics_Func load_strike_metrics; - - TT_Get_Metrics_Func get_metrics; - - } SFNT_Interface; - - - /* transitional */ - typedef SFNT_Interface* SFNT_Service; - -#ifndef FT_CONFIG_OPTION_PIC - -#define FT_DEFINE_SFNT_INTERFACE( \ - class_, \ - goto_table_, \ - init_face_, \ - load_face_, \ - done_face_, \ - get_interface_, \ - load_any_, \ - load_head_, \ - load_hhea_, \ - load_cmap_, \ - load_maxp_, \ - load_os2_, \ - load_post_, \ - load_name_, \ - free_name_, \ - load_kern_, \ - load_gasp_, \ - load_pclt_, \ - load_bhed_, \ - load_sbit_image_, \ - get_psname_, \ - free_psnames_, \ - get_kerning_, \ - load_font_dir_, \ - load_hmtx_, \ - load_eblc_, \ - free_eblc_, \ - set_sbit_strike_, \ - load_strike_metrics_, \ - get_metrics_ ) \ - static const SFNT_Interface class_ = \ - { \ - goto_table_, \ - init_face_, \ - load_face_, \ - done_face_, \ - get_interface_, \ - load_any_, \ - load_head_, \ - load_hhea_, \ - load_cmap_, \ - load_maxp_, \ - load_os2_, \ - load_post_, \ - load_name_, \ - free_name_, \ - load_kern_, \ - load_gasp_, \ - load_pclt_, \ - load_bhed_, \ - load_sbit_image_, \ - get_psname_, \ - free_psnames_, \ - get_kerning_, \ - load_font_dir_, \ - load_hmtx_, \ - load_eblc_, \ - free_eblc_, \ - set_sbit_strike_, \ - load_strike_metrics_, \ - get_metrics_, \ - }; - -#else /* FT_CONFIG_OPTION_PIC */ - -#define FT_INTERNAL( a, a_ ) \ - clazz->a = a_; - -#define FT_DEFINE_SFNT_INTERFACE( \ - class_, \ - goto_table_, \ - init_face_, \ - load_face_, \ - done_face_, \ - get_interface_, \ - load_any_, \ - load_head_, \ - load_hhea_, \ - load_cmap_, \ - load_maxp_, \ - load_os2_, \ - load_post_, \ - load_name_, \ - free_name_, \ - load_kern_, \ - load_gasp_, \ - load_pclt_, \ - load_bhed_, \ - load_sbit_image_, \ - get_psname_, \ - free_psnames_, \ - get_kerning_, \ - load_font_dir_, \ - load_hmtx_, \ - load_eblc_, \ - free_eblc_, \ - set_sbit_strike_, \ - load_strike_metrics_, \ - get_metrics_ ) \ - void \ - FT_Init_Class_ ## class_( FT_Library library, \ - SFNT_Interface* clazz ) \ - { \ - FT_UNUSED( library ); \ - \ - clazz->goto_table = goto_table_; \ - clazz->init_face = init_face_; \ - clazz->load_face = load_face_; \ - clazz->done_face = done_face_; \ - clazz->get_interface = get_interface_; \ - clazz->load_any = load_any_; \ - clazz->load_head = load_head_; \ - clazz->load_hhea = load_hhea_; \ - clazz->load_cmap = load_cmap_; \ - clazz->load_maxp = load_maxp_; \ - clazz->load_os2 = load_os2_; \ - clazz->load_post = load_post_; \ - clazz->load_name = load_name_; \ - clazz->free_name = free_name_; \ - clazz->load_kern = load_kern_; \ - clazz->load_gasp = load_gasp_; \ - clazz->load_pclt = load_pclt_; \ - clazz->load_bhed = load_bhed_; \ - clazz->load_sbit_image = load_sbit_image_; \ - clazz->get_psname = get_psname_; \ - clazz->free_psnames = free_psnames_; \ - clazz->get_kerning = get_kerning_; \ - clazz->load_font_dir = load_font_dir_; \ - clazz->load_hmtx = load_hmtx_; \ - clazz->load_eblc = load_eblc_; \ - clazz->free_eblc = free_eblc_; \ - clazz->set_sbit_strike = set_sbit_strike_; \ - clazz->load_strike_metrics = load_strike_metrics_; \ - clazz->get_metrics = get_metrics_; \ - } - -#endif /* FT_CONFIG_OPTION_PIC */ - -FT_END_HEADER - -#endif /* __SFNT_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/t1types.h b/lib/windows/include/freetype/internal/t1types.h deleted file mode 100644 index 029acc4..0000000 --- a/lib/windows/include/freetype/internal/t1types.h +++ /dev/null @@ -1,255 +0,0 @@ -/***************************************************************************/ -/* */ -/* t1types.h */ -/* */ -/* Basic Type1/Type2 type definitions and interface (specification */ -/* only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __T1TYPES_H__ -#define __T1TYPES_H__ - - -#include <ft2build.h> -#include FT_TYPE1_TABLES_H -#include FT_INTERNAL_POSTSCRIPT_HINTS_H -#include FT_INTERNAL_SERVICE_H -#include FT_SERVICE_POSTSCRIPT_CMAPS_H - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** REQUIRED TYPE1/TYPE2 TABLES DEFINITIONS ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_EncodingRec */ - /* */ - /* <Description> */ - /* A structure modeling a custom encoding. */ - /* */ - /* <Fields> */ - /* num_chars :: The number of character codes in the encoding. */ - /* Usually 256. */ - /* */ - /* code_first :: The lowest valid character code in the encoding. */ - /* */ - /* code_last :: The highest valid character code in the encoding */ - /* + 1. When equal to code_first there are no valid */ - /* character codes. */ - /* */ - /* char_index :: An array of corresponding glyph indices. */ - /* */ - /* char_name :: An array of corresponding glyph names. */ - /* */ - typedef struct T1_EncodingRecRec_ - { - FT_Int num_chars; - FT_Int code_first; - FT_Int code_last; - - FT_UShort* char_index; - FT_String** char_name; - - } T1_EncodingRec, *T1_Encoding; - - - /* used to hold extra data of PS_FontInfoRec that - * cannot be stored in the publicly defined structure. - * - * Note these can't be blended with multiple-masters. - */ - typedef struct PS_FontExtraRec_ - { - FT_UShort fs_type; - - } PS_FontExtraRec; - - - typedef struct T1_FontRec_ - { - PS_FontInfoRec font_info; /* font info dictionary */ - PS_FontExtraRec font_extra; /* font info extra fields */ - PS_PrivateRec private_dict; /* private dictionary */ - FT_String* font_name; /* top-level dictionary */ - - T1_EncodingType encoding_type; - T1_EncodingRec encoding; - - FT_Byte* subrs_block; - FT_Byte* charstrings_block; - FT_Byte* glyph_names_block; - - FT_Int num_subrs; - FT_Byte** subrs; - FT_UInt* subrs_len; - - FT_Int num_glyphs; - FT_String** glyph_names; /* array of glyph names */ - FT_Byte** charstrings; /* array of glyph charstrings */ - FT_UInt* charstrings_len; - - FT_Byte paint_type; - FT_Byte font_type; - FT_Matrix font_matrix; - FT_Vector font_offset; - FT_BBox font_bbox; - FT_Long font_id; - - FT_Fixed stroke_width; - - } T1_FontRec, *T1_Font; - - - typedef struct CID_SubrsRec_ - { - FT_Int num_subrs; - FT_Byte** code; - - } CID_SubrsRec, *CID_Subrs; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** AFM FONT INFORMATION STRUCTURES ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - typedef struct AFM_TrackKernRec_ - { - FT_Int degree; - FT_Fixed min_ptsize; - FT_Fixed min_kern; - FT_Fixed max_ptsize; - FT_Fixed max_kern; - - } AFM_TrackKernRec, *AFM_TrackKern; - - typedef struct AFM_KernPairRec_ - { - FT_UInt index1; - FT_UInt index2; - FT_Int x; - FT_Int y; - - } AFM_KernPairRec, *AFM_KernPair; - - typedef struct AFM_FontInfoRec_ - { - FT_Bool IsCIDFont; - FT_BBox FontBBox; - FT_Fixed Ascender; - FT_Fixed Descender; - AFM_TrackKern TrackKerns; /* free if non-NULL */ - FT_UInt NumTrackKern; - AFM_KernPair KernPairs; /* free if non-NULL */ - FT_UInt NumKernPair; - - } AFM_FontInfoRec, *AFM_FontInfo; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** ORIGINAL T1_FACE CLASS DEFINITION ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - typedef struct T1_FaceRec_* T1_Face; - typedef struct CID_FaceRec_* CID_Face; - - - typedef struct T1_FaceRec_ - { - FT_FaceRec root; - T1_FontRec type1; - const void* psnames; - const void* psaux; - const void* afm_data; - FT_CharMapRec charmaprecs[2]; - FT_CharMap charmaps[2]; - - /* support for Multiple Masters fonts */ - PS_Blend blend; - - /* undocumented, optional: indices of subroutines that express */ - /* the NormalizeDesignVector and the ConvertDesignVector procedure, */ - /* respectively, as Type 2 charstrings; -1 if keywords not present */ - FT_Int ndv_idx; - FT_Int cdv_idx; - - /* undocumented, optional: has the same meaning as len_buildchar */ - /* for Type 2 fonts; manipulated by othersubrs 19, 24, and 25 */ - FT_UInt len_buildchar; - FT_Long* buildchar; - - /* since version 2.1 - interface to PostScript hinter */ - const void* pshinter; - - } T1_FaceRec; - - - typedef struct CID_FaceRec_ - { - FT_FaceRec root; - void* psnames; - void* psaux; - CID_FaceInfoRec cid; - PS_FontExtraRec font_extra; -#if 0 - void* afm_data; -#endif - CID_Subrs subrs; - - /* since version 2.1 - interface to PostScript hinter */ - void* pshinter; - - /* since version 2.1.8, but was originally positioned after `afm_data' */ - FT_Byte* binary_data; /* used if hex data has been converted */ - FT_Stream cid_stream; - - } CID_FaceRec; - - -FT_END_HEADER - -#endif /* __T1TYPES_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/internal/tttypes.h b/lib/windows/include/freetype/internal/tttypes.h deleted file mode 100644 index 31dd0aa..0000000 --- a/lib/windows/include/freetype/internal/tttypes.h +++ /dev/null @@ -1,1514 +0,0 @@ -/***************************************************************************/ -/* */ -/* tttypes.h */ -/* */ -/* Basic SFNT/TrueType type definitions and interface (specification */ -/* only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTTYPES_H__ -#define __TTTYPES_H__ - - -#include <ft2build.h> -#include FT_TRUETYPE_TABLES_H -#include FT_INTERNAL_OBJECTS_H - -#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT -#include FT_MULTIPLE_MASTERS_H -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** REQUIRED TRUETYPE/OPENTYPE TABLES DEFINITIONS ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TTC_HeaderRec */ - /* */ - /* <Description> */ - /* TrueType collection header. This table contains the offsets of */ - /* the font headers of each distinct TrueType face in the file. */ - /* */ - /* <Fields> */ - /* tag :: Must be `ttc ' to indicate a TrueType collection. */ - /* */ - /* version :: The version number. */ - /* */ - /* count :: The number of faces in the collection. The */ - /* specification says this should be an unsigned long, but */ - /* we use a signed long since we need the value -1 for */ - /* specific purposes. */ - /* */ - /* offsets :: The offsets of the font headers, one per face. */ - /* */ - typedef struct TTC_HeaderRec_ - { - FT_ULong tag; - FT_Fixed version; - FT_Long count; - FT_ULong* offsets; - - } TTC_HeaderRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* SFNT_HeaderRec */ - /* */ - /* <Description> */ - /* SFNT file format header. */ - /* */ - /* <Fields> */ - /* format_tag :: The font format tag. */ - /* */ - /* num_tables :: The number of tables in file. */ - /* */ - /* search_range :: Must be `16 * (max power of 2 <= num_tables)'. */ - /* */ - /* entry_selector :: Must be log2 of `search_range / 16'. */ - /* */ - /* range_shift :: Must be `num_tables * 16 - search_range'. */ - /* */ - typedef struct SFNT_HeaderRec_ - { - FT_ULong format_tag; - FT_UShort num_tables; - FT_UShort search_range; - FT_UShort entry_selector; - FT_UShort range_shift; - - FT_ULong offset; /* not in file */ - - } SFNT_HeaderRec, *SFNT_Header; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_TableRec */ - /* */ - /* <Description> */ - /* This structure describes a given table of a TrueType font. */ - /* */ - /* <Fields> */ - /* Tag :: A four-bytes tag describing the table. */ - /* */ - /* CheckSum :: The table checksum. This value can be ignored. */ - /* */ - /* Offset :: The offset of the table from the start of the TrueType */ - /* font in its resource. */ - /* */ - /* Length :: The table length (in bytes). */ - /* */ - typedef struct TT_TableRec_ - { - FT_ULong Tag; /* table type */ - FT_ULong CheckSum; /* table checksum */ - FT_ULong Offset; /* table file offset */ - FT_ULong Length; /* table length */ - - } TT_TableRec, *TT_Table; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* WOFF_HeaderRec */ - /* */ - /* <Description> */ - /* WOFF file format header. */ - /* */ - /* <Fields> */ - /* See */ - /* */ - /* http://www.w3.org/TR/WOFF/#WOFFHeader */ - /* */ - typedef struct WOFF_HeaderRec_ - { - FT_ULong signature; - FT_ULong flavor; - FT_ULong length; - FT_UShort num_tables; - FT_UShort reserved; - FT_ULong totalSfntSize; - FT_UShort majorVersion; - FT_UShort minorVersion; - FT_ULong metaOffset; - FT_ULong metaLength; - FT_ULong metaOrigLength; - FT_ULong privOffset; - FT_ULong privLength; - - } WOFF_HeaderRec, *WOFF_Header; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* WOFF_TableRec */ - /* */ - /* <Description> */ - /* This structure describes a given table of a WOFF font. */ - /* */ - /* <Fields> */ - /* Tag :: A four-bytes tag describing the table. */ - /* */ - /* Offset :: The offset of the table from the start of the WOFF */ - /* font in its resource. */ - /* */ - /* CompLength :: Compressed table length (in bytes). */ - /* */ - /* OrigLength :: Unompressed table length (in bytes). */ - /* */ - /* CheckSum :: The table checksum. This value can be ignored. */ - /* */ - /* OrigOffset :: The uncompressed table file offset. This value gets */ - /* computed while constructing the (uncompressed) SFNT */ - /* header. It is not contained in the WOFF file. */ - /* */ - typedef struct WOFF_TableRec_ - { - FT_ULong Tag; /* table ID */ - FT_ULong Offset; /* table file offset */ - FT_ULong CompLength; /* compressed table length */ - FT_ULong OrigLength; /* uncompressed table length */ - FT_ULong CheckSum; /* uncompressed checksum */ - - FT_ULong OrigOffset; /* uncompressed table file offset */ - /* (not in the WOFF file) */ - } WOFF_TableRec, *WOFF_Table; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_LongMetricsRec */ - /* */ - /* <Description> */ - /* A structure modeling the long metrics of the `hmtx' and `vmtx' */ - /* TrueType tables. The values are expressed in font units. */ - /* */ - /* <Fields> */ - /* advance :: The advance width or height for the glyph. */ - /* */ - /* bearing :: The left-side or top-side bearing for the glyph. */ - /* */ - typedef struct TT_LongMetricsRec_ - { - FT_UShort advance; - FT_Short bearing; - - } TT_LongMetricsRec, *TT_LongMetrics; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* TT_ShortMetrics */ - /* */ - /* <Description> */ - /* A simple type to model the short metrics of the `hmtx' and `vmtx' */ - /* tables. */ - /* */ - typedef FT_Short TT_ShortMetrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_NameEntryRec */ - /* */ - /* <Description> */ - /* A structure modeling TrueType name records. Name records are used */ - /* to store important strings like family name, style name, */ - /* copyright, etc. in _localized_ versions (i.e., language, encoding, */ - /* etc). */ - /* */ - /* <Fields> */ - /* platformID :: The ID of the name's encoding platform. */ - /* */ - /* encodingID :: The platform-specific ID for the name's encoding. */ - /* */ - /* languageID :: The platform-specific ID for the name's language. */ - /* */ - /* nameID :: The ID specifying what kind of name this is. */ - /* */ - /* stringLength :: The length of the string in bytes. */ - /* */ - /* stringOffset :: The offset to the string in the `name' table. */ - /* */ - /* string :: A pointer to the string's bytes. Note that these */ - /* are usually UTF-16 encoded characters. */ - /* */ - typedef struct TT_NameEntryRec_ - { - FT_UShort platformID; - FT_UShort encodingID; - FT_UShort languageID; - FT_UShort nameID; - FT_UShort stringLength; - FT_ULong stringOffset; - - /* this last field is not defined in the spec */ - /* but used by the FreeType engine */ - - FT_Byte* string; - - } TT_NameEntryRec, *TT_NameEntry; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_NameTableRec */ - /* */ - /* <Description> */ - /* A structure modeling the TrueType name table. */ - /* */ - /* <Fields> */ - /* format :: The format of the name table. */ - /* */ - /* numNameRecords :: The number of names in table. */ - /* */ - /* storageOffset :: The offset of the name table in the `name' */ - /* TrueType table. */ - /* */ - /* names :: An array of name records. */ - /* */ - /* stream :: the file's input stream. */ - /* */ - typedef struct TT_NameTableRec_ - { - FT_UShort format; - FT_UInt numNameRecords; - FT_UInt storageOffset; - TT_NameEntryRec* names; - FT_Stream stream; - - } TT_NameTableRec, *TT_NameTable; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** OPTIONAL TRUETYPE/OPENTYPE TABLES DEFINITIONS ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_GaspRangeRec */ - /* */ - /* <Description> */ - /* A tiny structure used to model a gasp range according to the */ - /* TrueType specification. */ - /* */ - /* <Fields> */ - /* maxPPEM :: The maximum ppem value to which `gaspFlag' applies. */ - /* */ - /* gaspFlag :: A flag describing the grid-fitting and anti-aliasing */ - /* modes to be used. */ - /* */ - typedef struct TT_GaspRangeRec_ - { - FT_UShort maxPPEM; - FT_UShort gaspFlag; - - } TT_GaspRangeRec, *TT_GaspRange; - - -#define TT_GASP_GRIDFIT 0x01 -#define TT_GASP_DOGRAY 0x02 - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_GaspRec */ - /* */ - /* <Description> */ - /* A structure modeling the TrueType `gasp' table used to specify */ - /* grid-fitting and anti-aliasing behaviour. */ - /* */ - /* <Fields> */ - /* version :: The version number. */ - /* */ - /* numRanges :: The number of gasp ranges in table. */ - /* */ - /* gaspRanges :: An array of gasp ranges. */ - /* */ - typedef struct TT_Gasp_ - { - FT_UShort version; - FT_UShort numRanges; - TT_GaspRange gaspRanges; - - } TT_GaspRec; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** EMBEDDED BITMAPS SUPPORT ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_MetricsRec */ - /* */ - /* <Description> */ - /* A structure used to hold the big metrics of a given glyph bitmap */ - /* in a TrueType or OpenType font. These are usually found in the */ - /* `EBDT' (Microsoft) or `bloc' (Apple) table. */ - /* */ - /* <Fields> */ - /* height :: The glyph height in pixels. */ - /* */ - /* width :: The glyph width in pixels. */ - /* */ - /* horiBearingX :: The horizontal left bearing. */ - /* */ - /* horiBearingY :: The horizontal top bearing. */ - /* */ - /* horiAdvance :: The horizontal advance. */ - /* */ - /* vertBearingX :: The vertical left bearing. */ - /* */ - /* vertBearingY :: The vertical top bearing. */ - /* */ - /* vertAdvance :: The vertical advance. */ - /* */ - typedef struct TT_SBit_MetricsRec_ - { - FT_UShort height; - FT_UShort width; - - FT_Short horiBearingX; - FT_Short horiBearingY; - FT_UShort horiAdvance; - - FT_Short vertBearingX; - FT_Short vertBearingY; - FT_UShort vertAdvance; - - } TT_SBit_MetricsRec, *TT_SBit_Metrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_SmallMetricsRec */ - /* */ - /* <Description> */ - /* A structure used to hold the small metrics of a given glyph bitmap */ - /* in a TrueType or OpenType font. These are usually found in the */ - /* `EBDT' (Microsoft) or the `bdat' (Apple) table. */ - /* */ - /* <Fields> */ - /* height :: The glyph height in pixels. */ - /* */ - /* width :: The glyph width in pixels. */ - /* */ - /* bearingX :: The left-side bearing. */ - /* */ - /* bearingY :: The top-side bearing. */ - /* */ - /* advance :: The advance width or height. */ - /* */ - typedef struct TT_SBit_Small_Metrics_ - { - FT_Byte height; - FT_Byte width; - - FT_Char bearingX; - FT_Char bearingY; - FT_Byte advance; - - } TT_SBit_SmallMetricsRec, *TT_SBit_SmallMetrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_LineMetricsRec */ - /* */ - /* <Description> */ - /* A structure used to describe the text line metrics of a given */ - /* bitmap strike, for either a horizontal or vertical layout. */ - /* */ - /* <Fields> */ - /* ascender :: The ascender in pixels. */ - /* */ - /* descender :: The descender in pixels. */ - /* */ - /* max_width :: The maximum glyph width in pixels. */ - /* */ - /* caret_slope_enumerator :: Rise of the caret slope, typically set */ - /* to 1 for non-italic fonts. */ - /* */ - /* caret_slope_denominator :: Rise of the caret slope, typically set */ - /* to 0 for non-italic fonts. */ - /* */ - /* caret_offset :: Offset in pixels to move the caret for */ - /* proper positioning. */ - /* */ - /* min_origin_SB :: Minimum of horiBearingX (resp. */ - /* vertBearingY). */ - /* min_advance_SB :: Minimum of */ - /* */ - /* horizontal advance - */ - /* ( horiBearingX + width ) */ - /* */ - /* resp. */ - /* */ - /* vertical advance - */ - /* ( vertBearingY + height ) */ - /* */ - /* max_before_BL :: Maximum of horiBearingY (resp. */ - /* vertBearingY). */ - /* */ - /* min_after_BL :: Minimum of */ - /* */ - /* horiBearingY - height */ - /* */ - /* resp. */ - /* */ - /* vertBearingX - width */ - /* */ - /* pads :: Unused (to make the size of the record */ - /* a multiple of 32 bits. */ - /* */ - typedef struct TT_SBit_LineMetricsRec_ - { - FT_Char ascender; - FT_Char descender; - FT_Byte max_width; - FT_Char caret_slope_numerator; - FT_Char caret_slope_denominator; - FT_Char caret_offset; - FT_Char min_origin_SB; - FT_Char min_advance_SB; - FT_Char max_before_BL; - FT_Char min_after_BL; - FT_Char pads[2]; - - } TT_SBit_LineMetricsRec, *TT_SBit_LineMetrics; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_RangeRec */ - /* */ - /* <Description> */ - /* A TrueType/OpenType subIndexTable as defined in the `EBLC' */ - /* (Microsoft) or `bloc' (Apple) tables. */ - /* */ - /* <Fields> */ - /* first_glyph :: The first glyph index in the range. */ - /* */ - /* last_glyph :: The last glyph index in the range. */ - /* */ - /* index_format :: The format of index table. Valid values are 1 */ - /* to 5. */ - /* */ - /* image_format :: The format of `EBDT' image data. */ - /* */ - /* image_offset :: The offset to image data in `EBDT'. */ - /* */ - /* image_size :: For index formats 2 and 5. This is the size in */ - /* bytes of each glyph bitmap. */ - /* */ - /* big_metrics :: For index formats 2 and 5. This is the big */ - /* metrics for each glyph bitmap. */ - /* */ - /* num_glyphs :: For index formats 4 and 5. This is the number of */ - /* glyphs in the code array. */ - /* */ - /* glyph_offsets :: For index formats 1 and 3. */ - /* */ - /* glyph_codes :: For index formats 4 and 5. */ - /* */ - /* table_offset :: The offset of the index table in the `EBLC' */ - /* table. Only used during strike loading. */ - /* */ - typedef struct TT_SBit_RangeRec_ - { - FT_UShort first_glyph; - FT_UShort last_glyph; - - FT_UShort index_format; - FT_UShort image_format; - FT_ULong image_offset; - - FT_ULong image_size; - TT_SBit_MetricsRec metrics; - FT_ULong num_glyphs; - - FT_ULong* glyph_offsets; - FT_UShort* glyph_codes; - - FT_ULong table_offset; - - } TT_SBit_RangeRec, *TT_SBit_Range; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_StrikeRec */ - /* */ - /* <Description> */ - /* A structure used describe a given bitmap strike in the `EBLC' */ - /* (Microsoft) or `bloc' (Apple) tables. */ - /* */ - /* <Fields> */ - /* num_index_ranges :: The number of index ranges. */ - /* */ - /* index_ranges :: An array of glyph index ranges. */ - /* */ - /* color_ref :: Unused. `color_ref' is put in for future */ - /* enhancements, but these fields are already */ - /* in use by other platforms (e.g. Newton). */ - /* For details, please see */ - /* */ - /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6bloc.html */ - /* */ - /* hori :: The line metrics for horizontal layouts. */ - /* */ - /* vert :: The line metrics for vertical layouts. */ - /* */ - /* start_glyph :: The lowest glyph index for this strike. */ - /* */ - /* end_glyph :: The highest glyph index for this strike. */ - /* */ - /* x_ppem :: The number of horizontal pixels per EM. */ - /* */ - /* y_ppem :: The number of vertical pixels per EM. */ - /* */ - /* bit_depth :: The bit depth. Valid values are 1, 2, 4, */ - /* and 8. */ - /* */ - /* flags :: Is this a vertical or horizontal strike? For */ - /* details, please see */ - /* */ - /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6bloc.html */ - /* */ - typedef struct TT_SBit_StrikeRec_ - { - FT_Int num_ranges; - TT_SBit_Range sbit_ranges; - FT_ULong ranges_offset; - - FT_ULong color_ref; - - TT_SBit_LineMetricsRec hori; - TT_SBit_LineMetricsRec vert; - - FT_UShort start_glyph; - FT_UShort end_glyph; - - FT_Byte x_ppem; - FT_Byte y_ppem; - - FT_Byte bit_depth; - FT_Char flags; - - } TT_SBit_StrikeRec, *TT_SBit_Strike; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_ComponentRec */ - /* */ - /* <Description> */ - /* A simple structure to describe a compound sbit element. */ - /* */ - /* <Fields> */ - /* glyph_code :: The element's glyph index. */ - /* */ - /* x_offset :: The element's left bearing. */ - /* */ - /* y_offset :: The element's top bearing. */ - /* */ - typedef struct TT_SBit_ComponentRec_ - { - FT_UShort glyph_code; - FT_Char x_offset; - FT_Char y_offset; - - } TT_SBit_ComponentRec, *TT_SBit_Component; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_SBit_ScaleRec */ - /* */ - /* <Description> */ - /* A structure used describe a given bitmap scaling table, as defined */ - /* in the `EBSC' table. */ - /* */ - /* <Fields> */ - /* hori :: The horizontal line metrics. */ - /* */ - /* vert :: The vertical line metrics. */ - /* */ - /* x_ppem :: The number of horizontal pixels per EM. */ - /* */ - /* y_ppem :: The number of vertical pixels per EM. */ - /* */ - /* x_ppem_substitute :: Substitution x_ppem value. */ - /* */ - /* y_ppem_substitute :: Substitution y_ppem value. */ - /* */ - typedef struct TT_SBit_ScaleRec_ - { - TT_SBit_LineMetricsRec hori; - TT_SBit_LineMetricsRec vert; - - FT_Byte x_ppem; - FT_Byte y_ppem; - - FT_Byte x_ppem_substitute; - FT_Byte y_ppem_substitute; - - } TT_SBit_ScaleRec, *TT_SBit_Scale; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** POSTSCRIPT GLYPH NAMES SUPPORT ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Post_20Rec */ - /* */ - /* <Description> */ - /* Postscript names sub-table, format 2.0. Stores the PS name of */ - /* each glyph in the font face. */ - /* */ - /* <Fields> */ - /* num_glyphs :: The number of named glyphs in the table. */ - /* */ - /* num_names :: The number of PS names stored in the table. */ - /* */ - /* glyph_indices :: The indices of the glyphs in the names arrays. */ - /* */ - /* glyph_names :: The PS names not in Mac Encoding. */ - /* */ - typedef struct TT_Post_20Rec_ - { - FT_UShort num_glyphs; - FT_UShort num_names; - FT_UShort* glyph_indices; - FT_Char** glyph_names; - - } TT_Post_20Rec, *TT_Post_20; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Post_25Rec */ - /* */ - /* <Description> */ - /* Postscript names sub-table, format 2.5. Stores the PS name of */ - /* each glyph in the font face. */ - /* */ - /* <Fields> */ - /* num_glyphs :: The number of glyphs in the table. */ - /* */ - /* offsets :: An array of signed offsets in a normal Mac */ - /* Postscript name encoding. */ - /* */ - typedef struct TT_Post_25_ - { - FT_UShort num_glyphs; - FT_Char* offsets; - - } TT_Post_25Rec, *TT_Post_25; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Post_NamesRec */ - /* */ - /* <Description> */ - /* Postscript names table, either format 2.0 or 2.5. */ - /* */ - /* <Fields> */ - /* loaded :: A flag to indicate whether the PS names are loaded. */ - /* */ - /* format_20 :: The sub-table used for format 2.0. */ - /* */ - /* format_25 :: The sub-table used for format 2.5. */ - /* */ - typedef struct TT_Post_NamesRec_ - { - FT_Bool loaded; - - union - { - TT_Post_20Rec format_20; - TT_Post_25Rec format_25; - - } names; - - } TT_Post_NamesRec, *TT_Post_Names; - - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** GX VARIATION TABLE SUPPORT ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - -#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT - typedef struct GX_BlendRec_ *GX_Blend; -#endif - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** EMBEDDED BDF PROPERTIES TABLE SUPPORT ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - /* - * These types are used to support a `BDF ' table that isn't part of the - * official TrueType specification. It is mainly used in SFNT-based - * bitmap fonts that were generated from a set of BDF fonts. - * - * The format of the table is as follows. - * - * USHORT version `BDF ' table version number, should be 0x0001. - * USHORT strikeCount Number of strikes (bitmap sizes) in this table. - * ULONG stringTable Offset (from start of BDF table) to string - * table. - * - * This is followed by an array of `strikeCount' descriptors, having the - * following format. - * - * USHORT ppem Vertical pixels per EM for this strike. - * USHORT numItems Number of items for this strike (properties and - * atoms). Maximum is 255. - * - * This array in turn is followed by `strikeCount' value sets. Each - * `value set' is an array of `numItems' items with the following format. - * - * ULONG item_name Offset in string table to item name. - * USHORT item_type The item type. Possible values are - * 0 => string (e.g., COMMENT) - * 1 => atom (e.g., FONT or even SIZE) - * 2 => int32 - * 3 => uint32 - * 0x10 => A flag to indicate a properties. This - * is ORed with the above values. - * ULONG item_value For strings => Offset into string table without - * the corresponding double quotes. - * For atoms => Offset into string table. - * For integers => Direct value. - * - * All strings in the string table consist of bytes and are - * zero-terminated. - * - */ - -#ifdef TT_CONFIG_OPTION_BDF - - typedef struct TT_BDFRec_ - { - FT_Byte* table; - FT_Byte* table_end; - FT_Byte* strings; - FT_ULong strings_size; - FT_UInt num_strikes; - FT_Bool loaded; - - } TT_BDFRec, *TT_BDF; - -#endif /* TT_CONFIG_OPTION_BDF */ - - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - /*** ***/ - /*** ***/ - /*** ORIGINAL TT_FACE CLASS DEFINITION ***/ - /*** ***/ - /*** ***/ - /*************************************************************************/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This structure/class is defined here because it is common to the */ - /* following formats: TTF, OpenType-TT, and OpenType-CFF. */ - /* */ - /* Note, however, that the classes TT_Size and TT_GlyphSlot are not */ - /* shared between font drivers, and are thus defined in `ttobjs.h'. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* TT_Face */ - /* */ - /* <Description> */ - /* A handle to a TrueType face/font object. A TT_Face encapsulates */ - /* the resolution and scaling independent parts of a TrueType font */ - /* resource. */ - /* */ - /* <Note> */ - /* The TT_Face structure is also used as a `parent class' for the */ - /* OpenType-CFF class (T2_Face). */ - /* */ - typedef struct TT_FaceRec_* TT_Face; - - - /* a function type used for the truetype bytecode interpreter hooks */ - typedef FT_Error - (*TT_Interpreter)( void* exec_context ); - - /* forward declaration */ - typedef struct TT_LoaderRec_* TT_Loader; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Loader_GotoTableFunc */ - /* */ - /* <Description> */ - /* Seeks a stream to the start of a given TrueType table. */ - /* */ - /* <Input> */ - /* face :: A handle to the target face object. */ - /* */ - /* tag :: A 4-byte tag used to name the table. */ - /* */ - /* stream :: The input stream. */ - /* */ - /* <Output> */ - /* length :: The length of the table in bytes. Set to 0 if not */ - /* needed. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* The stream cursor must be at the font file's origin. */ - /* */ - typedef FT_Error - (*TT_Loader_GotoTableFunc)( TT_Face face, - FT_ULong tag, - FT_Stream stream, - FT_ULong* length ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Loader_StartGlyphFunc */ - /* */ - /* <Description> */ - /* Seeks a stream to the start of a given glyph element, and opens a */ - /* frame for it. */ - /* */ - /* <Input> */ - /* loader :: The current TrueType glyph loader object. */ - /* */ - /* glyph index :: The index of the glyph to access. */ - /* */ - /* offset :: The offset of the glyph according to the */ - /* `locations' table. */ - /* */ - /* byte_count :: The size of the frame in bytes. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function is normally equivalent to FT_STREAM_SEEK(offset) */ - /* followed by FT_FRAME_ENTER(byte_count) with the loader's stream, */ - /* but alternative formats (e.g. compressed ones) might use something */ - /* different. */ - /* */ - typedef FT_Error - (*TT_Loader_StartGlyphFunc)( TT_Loader loader, - FT_UInt glyph_index, - FT_ULong offset, - FT_UInt byte_count ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Loader_ReadGlyphFunc */ - /* */ - /* <Description> */ - /* Reads one glyph element (its header, a simple glyph, or a */ - /* composite) from the loader's current stream frame. */ - /* */ - /* <Input> */ - /* loader :: The current TrueType glyph loader object. */ - /* */ - /* <Return> */ - /* FreeType error code. 0 means success. */ - /* */ - typedef FT_Error - (*TT_Loader_ReadGlyphFunc)( TT_Loader loader ); - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* TT_Loader_EndGlyphFunc */ - /* */ - /* <Description> */ - /* Closes the current loader stream frame for the glyph. */ - /* */ - /* <Input> */ - /* loader :: The current TrueType glyph loader object. */ - /* */ - typedef void - (*TT_Loader_EndGlyphFunc)( TT_Loader loader ); - - - typedef enum TT_SbitTableType_ - { - TT_SBIT_TABLE_TYPE_NONE = 0, - TT_SBIT_TABLE_TYPE_EBLC, /* `EBLC' (Microsoft), */ - /* `bloc' (Apple) */ - TT_SBIT_TABLE_TYPE_CBLC, /* `CBLC' (Google) */ - TT_SBIT_TABLE_TYPE_SBIX, /* `sbix' (Apple) */ - - /* do not remove */ - TT_SBIT_TABLE_TYPE_MAX - - } TT_SbitTableType; - - - /*************************************************************************/ - /* */ - /* TrueType Face Type */ - /* */ - /* <Struct> */ - /* TT_Face */ - /* */ - /* <Description> */ - /* The TrueType face class. These objects model the resolution and */ - /* point-size independent data found in a TrueType font file. */ - /* */ - /* <Fields> */ - /* root :: The base FT_Face structure, managed by the */ - /* base layer. */ - /* */ - /* ttc_header :: The TrueType collection header, used when */ - /* the file is a `ttc' rather than a `ttf'. */ - /* For ordinary font files, the field */ - /* `ttc_header.count' is set to 0. */ - /* */ - /* format_tag :: The font format tag. */ - /* */ - /* num_tables :: The number of TrueType tables in this font */ - /* file. */ - /* */ - /* dir_tables :: The directory of TrueType tables for this */ - /* font file. */ - /* */ - /* header :: The font's font header (`head' table). */ - /* Read on font opening. */ - /* */ - /* horizontal :: The font's horizontal header (`hhea' */ - /* table). This field also contains the */ - /* associated horizontal metrics table */ - /* (`hmtx'). */ - /* */ - /* max_profile :: The font's maximum profile table. Read on */ - /* font opening. Note that some maximum */ - /* values cannot be taken directly from this */ - /* table. We thus define additional fields */ - /* below to hold the computed maxima. */ - /* */ - /* vertical_info :: A boolean which is set when the font file */ - /* contains vertical metrics. If not, the */ - /* value of the `vertical' field is */ - /* undefined. */ - /* */ - /* vertical :: The font's vertical header (`vhea' table). */ - /* This field also contains the associated */ - /* vertical metrics table (`vmtx'), if found. */ - /* IMPORTANT: The contents of this field is */ - /* undefined if the `vertical_info' field is */ - /* unset. */ - /* */ - /* num_names :: The number of name records within this */ - /* TrueType font. */ - /* */ - /* name_table :: The table of name records (`name'). */ - /* */ - /* os2 :: The font's OS/2 table (`OS/2'). */ - /* */ - /* postscript :: The font's PostScript table (`post' */ - /* table). The PostScript glyph names are */ - /* not loaded by the driver on face opening. */ - /* See the `ttpost' module for more details. */ - /* */ - /* cmap_table :: Address of the face's `cmap' SFNT table */ - /* in memory (it's an extracted frame). */ - /* */ - /* cmap_size :: The size in bytes of the `cmap_table' */ - /* described above. */ - /* */ - /* goto_table :: A function called by each TrueType table */ - /* loader to position a stream's cursor to */ - /* the start of a given table according to */ - /* its tag. It defaults to TT_Goto_Face but */ - /* can be different for strange formats (e.g. */ - /* Type 42). */ - /* */ - /* access_glyph_frame :: A function used to access the frame of a */ - /* given glyph within the face's font file. */ - /* */ - /* forget_glyph_frame :: A function used to forget the frame of a */ - /* given glyph when all data has been loaded. */ - /* */ - /* read_glyph_header :: A function used to read a glyph header. */ - /* It must be called between an `access' and */ - /* `forget'. */ - /* */ - /* read_simple_glyph :: A function used to read a simple glyph. */ - /* It must be called after the header was */ - /* read, and before the `forget'. */ - /* */ - /* read_composite_glyph :: A function used to read a composite glyph. */ - /* It must be called after the header was */ - /* read, and before the `forget'. */ - /* */ - /* sfnt :: A pointer to the SFNT service. */ - /* */ - /* psnames :: A pointer to the PostScript names service. */ - /* */ - /* hdmx :: The face's horizontal device metrics */ - /* (`hdmx' table). This table is optional in */ - /* TrueType/OpenType fonts. */ - /* */ - /* gasp :: The grid-fitting and scaling properties */ - /* table (`gasp'). This table is optional in */ - /* TrueType/OpenType fonts. */ - /* */ - /* pclt :: The `pclt' SFNT table. */ - /* */ - /* num_sbit_scales :: The number of sbit scales for this font. */ - /* */ - /* sbit_scales :: Array of sbit scales embedded in this */ - /* font. This table is optional in a */ - /* TrueType/OpenType font. */ - /* */ - /* postscript_names :: A table used to store the Postscript names */ - /* of the glyphs for this font. See the */ - /* file `ttconfig.h' for comments on the */ - /* TT_CONFIG_OPTION_POSTSCRIPT_NAMES option. */ - /* */ - /* num_locations :: The number of glyph locations in this */ - /* TrueType file. This should be */ - /* identical to the number of glyphs. */ - /* Ignored for Type 2 fonts. */ - /* */ - /* glyph_locations :: An array of longs. These are offsets to */ - /* glyph data within the `glyf' table. */ - /* Ignored for Type 2 font faces. */ - /* */ - /* glyf_len :: The length of the `glyf' table. Needed */ - /* for malformed `loca' tables. */ - /* */ - /* font_program_size :: Size in bytecodes of the face's font */ - /* program. 0 if none defined. Ignored for */ - /* Type 2 fonts. */ - /* */ - /* font_program :: The face's font program (bytecode stream) */ - /* executed at load time, also used during */ - /* glyph rendering. Comes from the `fpgm' */ - /* table. Ignored for Type 2 font fonts. */ - /* */ - /* cvt_program_size :: The size in bytecodes of the face's cvt */ - /* program. Ignored for Type 2 fonts. */ - /* */ - /* cvt_program :: The face's cvt program (bytecode stream) */ - /* executed each time an instance/size is */ - /* changed/reset. Comes from the `prep' */ - /* table. Ignored for Type 2 fonts. */ - /* */ - /* cvt_size :: Size of the control value table (in */ - /* entries). Ignored for Type 2 fonts. */ - /* */ - /* cvt :: The face's original control value table. */ - /* Coordinates are expressed in unscaled font */ - /* units. Comes from the `cvt ' table. */ - /* Ignored for Type 2 fonts. */ - /* */ - /* num_kern_pairs :: The number of kerning pairs present in the */ - /* font file. The engine only loads the */ - /* first horizontal format 0 kern table it */ - /* finds in the font file. Ignored for */ - /* Type 2 fonts. */ - /* */ - /* kern_table_index :: The index of the kerning table in the font */ - /* kerning directory. Ignored for Type 2 */ - /* fonts. */ - /* */ - /* interpreter :: A pointer to the TrueType bytecode */ - /* interpreters field is also used to hook */ - /* the debugger in `ttdebug'. */ - /* */ - /* unpatented_hinting :: If true, use only unpatented methods in */ - /* the bytecode interpreter. */ - /* */ - /* doblend :: A boolean which is set if the font should */ - /* be blended (this is for GX var). */ - /* */ - /* blend :: Contains the data needed to control GX */ - /* variation tables (rather like Multiple */ - /* Master data). */ - /* */ - /* extra :: Reserved for third-party font drivers. */ - /* */ - /* postscript_name :: The PS name of the font. Used by the */ - /* postscript name service. */ - /* */ - typedef struct TT_FaceRec_ - { - FT_FaceRec root; - - TTC_HeaderRec ttc_header; - - FT_ULong format_tag; - FT_UShort num_tables; - TT_Table dir_tables; - - TT_Header header; /* TrueType header table */ - TT_HoriHeader horizontal; /* TrueType horizontal header */ - - TT_MaxProfile max_profile; - - FT_Bool vertical_info; - TT_VertHeader vertical; /* TT Vertical header, if present */ - - FT_UShort num_names; /* number of name records */ - TT_NameTableRec name_table; /* name table */ - - TT_OS2 os2; /* TrueType OS/2 table */ - TT_Postscript postscript; /* TrueType Postscript table */ - - FT_Byte* cmap_table; /* extracted `cmap' table */ - FT_ULong cmap_size; - - TT_Loader_GotoTableFunc goto_table; - - TT_Loader_StartGlyphFunc access_glyph_frame; - TT_Loader_EndGlyphFunc forget_glyph_frame; - TT_Loader_ReadGlyphFunc read_glyph_header; - TT_Loader_ReadGlyphFunc read_simple_glyph; - TT_Loader_ReadGlyphFunc read_composite_glyph; - - /* a typeless pointer to the SFNT_Interface table used to load */ - /* the basic TrueType tables in the face object */ - void* sfnt; - - /* a typeless pointer to the FT_Service_PsCMapsRec table used to */ - /* handle glyph names <-> unicode & Mac values */ - void* psnames; - - - /***********************************************************************/ - /* */ - /* Optional TrueType/OpenType tables */ - /* */ - /***********************************************************************/ - - /* grid-fitting and scaling table */ - TT_GaspRec gasp; /* the `gasp' table */ - - /* PCL 5 table */ - TT_PCLT pclt; - - /* embedded bitmaps support */ - FT_ULong num_sbit_scales; - TT_SBit_Scale sbit_scales; - - /* postscript names table */ - TT_Post_NamesRec postscript_names; - - - /***********************************************************************/ - /* */ - /* TrueType-specific fields (ignored by the OTF-Type2 driver) */ - /* */ - /***********************************************************************/ - - /* the font program, if any */ - FT_ULong font_program_size; - FT_Byte* font_program; - - /* the cvt program, if any */ - FT_ULong cvt_program_size; - FT_Byte* cvt_program; - - /* the original, unscaled, control value table */ - FT_ULong cvt_size; - FT_Short* cvt; - - /* A pointer to the bytecode interpreter to use. This is also */ - /* used to hook the debugger for the `ttdebug' utility. */ - TT_Interpreter interpreter; - -#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING - /* Use unpatented hinting only. */ - FT_Bool unpatented_hinting; -#endif - - /***********************************************************************/ - /* */ - /* Other tables or fields. This is used by derivative formats like */ - /* OpenType. */ - /* */ - /***********************************************************************/ - - FT_Generic extra; - - const char* postscript_name; - - FT_ULong glyf_len; - -#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT - FT_Bool doblend; - GX_Blend blend; -#endif - - /* since version 2.2 */ - - FT_Byte* horz_metrics; - FT_ULong horz_metrics_size; - - FT_Byte* vert_metrics; - FT_ULong vert_metrics_size; - - FT_ULong num_locations; /* in broken TTF, gid > 0xFFFF */ - FT_Byte* glyph_locations; - - FT_Byte* hdmx_table; - FT_ULong hdmx_table_size; - FT_UInt hdmx_record_count; - FT_ULong hdmx_record_size; - FT_Byte* hdmx_record_sizes; - - FT_Byte* sbit_table; - FT_ULong sbit_table_size; - TT_SbitTableType sbit_table_type; - FT_UInt sbit_num_strikes; - - FT_Byte* kern_table; - FT_ULong kern_table_size; - FT_UInt num_kern_tables; - FT_UInt32 kern_avail_bits; - FT_UInt32 kern_order_bits; - -#ifdef TT_CONFIG_OPTION_BDF - TT_BDFRec bdf; -#endif /* TT_CONFIG_OPTION_BDF */ - - /* since 2.3.0 */ - FT_ULong horz_metrics_offset; - FT_ULong vert_metrics_offset; - -#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING - /* since 2.4.12 */ - FT_ULong sph_found_func_flags; /* special functions found */ - /* for this face */ - FT_Bool sph_compatibility_mode; -#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */ - - } TT_FaceRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_GlyphZoneRec */ - /* */ - /* <Description> */ - /* A glyph zone is used to load, scale and hint glyph outline */ - /* coordinates. */ - /* */ - /* <Fields> */ - /* memory :: A handle to the memory manager. */ - /* */ - /* max_points :: The maximum size in points of the zone. */ - /* */ - /* max_contours :: Max size in links contours of the zone. */ - /* */ - /* n_points :: The current number of points in the zone. */ - /* */ - /* n_contours :: The current number of contours in the zone. */ - /* */ - /* org :: The original glyph coordinates (font */ - /* units/scaled). */ - /* */ - /* cur :: The current glyph coordinates (scaled/hinted). */ - /* */ - /* tags :: The point control tags. */ - /* */ - /* contours :: The contours end points. */ - /* */ - /* first_point :: Offset of the current subglyph's first point. */ - /* */ - typedef struct TT_GlyphZoneRec_ - { - FT_Memory memory; - FT_UShort max_points; - FT_Short max_contours; - FT_UShort n_points; /* number of points in zone */ - FT_Short n_contours; /* number of contours */ - - FT_Vector* org; /* original point coordinates */ - FT_Vector* cur; /* current point coordinates */ - FT_Vector* orus; /* original (unscaled) point coordinates */ - - FT_Byte* tags; /* current touch flags */ - FT_UShort* contours; /* contour end points */ - - FT_UShort first_point; /* offset of first (#0) point */ - - } TT_GlyphZoneRec, *TT_GlyphZone; - - - /* handle to execution context */ - typedef struct TT_ExecContextRec_* TT_ExecContext; - - /* glyph loader structure */ - typedef struct TT_LoaderRec_ - { - FT_Face face; - FT_Size size; - FT_GlyphSlot glyph; - FT_GlyphLoader gloader; - - FT_ULong load_flags; - FT_UInt glyph_index; - - FT_Stream stream; - FT_Int byte_len; - - FT_Short n_contours; - FT_BBox bbox; - FT_Int left_bearing; - FT_Int advance; - FT_Int linear; - FT_Bool linear_def; - FT_Vector pp1; - FT_Vector pp2; - - FT_ULong glyf_offset; - - /* the zone where we load our glyphs */ - TT_GlyphZoneRec base; - TT_GlyphZoneRec zone; - - TT_ExecContext exec; - FT_Byte* instructions; - FT_ULong ins_pos; - - /* for possible extensibility in other formats */ - void* other; - - /* since version 2.1.8 */ - FT_Int top_bearing; - FT_Int vadvance; - FT_Vector pp3; - FT_Vector pp4; - - /* since version 2.2.1 */ - FT_Byte* cursor; - FT_Byte* limit; - - } TT_LoaderRec; - - -FT_END_HEADER - -#endif /* __TTTYPES_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/t1tables.h b/lib/windows/include/freetype/t1tables.h deleted file mode 100644 index a6ea415..0000000 --- a/lib/windows/include/freetype/t1tables.h +++ /dev/null @@ -1,761 +0,0 @@ -/***************************************************************************/ -/* */ -/* t1tables.h */ -/* */ -/* Basic Type 1/Type 2 tables definitions and interface (specification */ -/* only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __T1TABLES_H__ -#define __T1TABLES_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* type1_tables */ - /* */ - /* <Title> */ - /* Type 1 Tables */ - /* */ - /* <Abstract> */ - /* Type~1 (PostScript) specific font tables. */ - /* */ - /* <Description> */ - /* This section contains the definition of Type 1-specific tables, */ - /* including structures related to other PostScript font formats. */ - /* */ - /* <Order> */ - /* PS_FontInfoRec */ - /* PS_FontInfo */ - /* PS_PrivateRec */ - /* PS_Private */ - /* */ - /* CID_FaceDictRec */ - /* CID_FaceDict */ - /* CID_FaceInfoRec */ - /* CID_FaceInfo */ - /* */ - /* FT_Has_PS_Glyph_Names */ - /* FT_Get_PS_Font_Info */ - /* FT_Get_PS_Font_Private */ - /* FT_Get_PS_Font_Value */ - /* */ - /* T1_Blend_Flags */ - /* T1_EncodingType */ - /* PS_Dict_Keys */ - /* */ - /*************************************************************************/ - - - /* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */ - /* structures in order to support Multiple Master fonts. */ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_FontInfoRec */ - /* */ - /* <Description> */ - /* A structure used to model a Type~1 or Type~2 FontInfo dictionary. */ - /* Note that for Multiple Master fonts, each instance has its own */ - /* FontInfo dictionary. */ - /* */ - typedef struct PS_FontInfoRec_ - { - FT_String* version; - FT_String* notice; - FT_String* full_name; - FT_String* family_name; - FT_String* weight; - FT_Long italic_angle; - FT_Bool is_fixed_pitch; - FT_Short underline_position; - FT_UShort underline_thickness; - - } PS_FontInfoRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_FontInfo */ - /* */ - /* <Description> */ - /* A handle to a @PS_FontInfoRec structure. */ - /* */ - typedef struct PS_FontInfoRec_* PS_FontInfo; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_FontInfo */ - /* */ - /* <Description> */ - /* This type is equivalent to @PS_FontInfoRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef PS_FontInfoRec T1_FontInfo; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_PrivateRec */ - /* */ - /* <Description> */ - /* A structure used to model a Type~1 or Type~2 private dictionary. */ - /* Note that for Multiple Master fonts, each instance has its own */ - /* Private dictionary. */ - /* */ - typedef struct PS_PrivateRec_ - { - FT_Int unique_id; - FT_Int lenIV; - - FT_Byte num_blue_values; - FT_Byte num_other_blues; - FT_Byte num_family_blues; - FT_Byte num_family_other_blues; - - FT_Short blue_values[14]; - FT_Short other_blues[10]; - - FT_Short family_blues [14]; - FT_Short family_other_blues[10]; - - FT_Fixed blue_scale; - FT_Int blue_shift; - FT_Int blue_fuzz; - - FT_UShort standard_width[1]; - FT_UShort standard_height[1]; - - FT_Byte num_snap_widths; - FT_Byte num_snap_heights; - FT_Bool force_bold; - FT_Bool round_stem_up; - - FT_Short snap_widths [13]; /* including std width */ - FT_Short snap_heights[13]; /* including std height */ - - FT_Fixed expansion_factor; - - FT_Long language_group; - FT_Long password; - - FT_Short min_feature[2]; - - } PS_PrivateRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_Private */ - /* */ - /* <Description> */ - /* A handle to a @PS_PrivateRec structure. */ - /* */ - typedef struct PS_PrivateRec_* PS_Private; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_Private */ - /* */ - /* <Description> */ - /* This type is equivalent to @PS_PrivateRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef PS_PrivateRec T1_Private; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* T1_Blend_Flags */ - /* */ - /* <Description> */ - /* A set of flags used to indicate which fields are present in a */ - /* given blend dictionary (font info or private). Used to support */ - /* Multiple Masters fonts. */ - /* */ - /* <Values> */ - /* T1_BLEND_UNDERLINE_POSITION :: */ - /* T1_BLEND_UNDERLINE_THICKNESS :: */ - /* T1_BLEND_ITALIC_ANGLE :: */ - /* T1_BLEND_BLUE_VALUES :: */ - /* T1_BLEND_OTHER_BLUES :: */ - /* T1_BLEND_STANDARD_WIDTH :: */ - /* T1_BLEND_STANDARD_HEIGHT :: */ - /* T1_BLEND_STEM_SNAP_WIDTHS :: */ - /* T1_BLEND_STEM_SNAP_HEIGHTS :: */ - /* T1_BLEND_BLUE_SCALE :: */ - /* T1_BLEND_BLUE_SHIFT :: */ - /* T1_BLEND_FAMILY_BLUES :: */ - /* T1_BLEND_FAMILY_OTHER_BLUES :: */ - /* T1_BLEND_FORCE_BOLD :: */ - /* */ - typedef enum T1_Blend_Flags_ - { - /* required fields in a FontInfo blend dictionary */ - T1_BLEND_UNDERLINE_POSITION = 0, - T1_BLEND_UNDERLINE_THICKNESS, - T1_BLEND_ITALIC_ANGLE, - - /* required fields in a Private blend dictionary */ - T1_BLEND_BLUE_VALUES, - T1_BLEND_OTHER_BLUES, - T1_BLEND_STANDARD_WIDTH, - T1_BLEND_STANDARD_HEIGHT, - T1_BLEND_STEM_SNAP_WIDTHS, - T1_BLEND_STEM_SNAP_HEIGHTS, - T1_BLEND_BLUE_SCALE, - T1_BLEND_BLUE_SHIFT, - T1_BLEND_FAMILY_BLUES, - T1_BLEND_FAMILY_OTHER_BLUES, - T1_BLEND_FORCE_BOLD, - - T1_BLEND_MAX /* do not remove */ - - } T1_Blend_Flags; - - - /* these constants are deprecated; use the corresponding */ - /* `T1_Blend_Flags' values instead */ -#define t1_blend_underline_position T1_BLEND_UNDERLINE_POSITION -#define t1_blend_underline_thickness T1_BLEND_UNDERLINE_THICKNESS -#define t1_blend_italic_angle T1_BLEND_ITALIC_ANGLE -#define t1_blend_blue_values T1_BLEND_BLUE_VALUES -#define t1_blend_other_blues T1_BLEND_OTHER_BLUES -#define t1_blend_standard_widths T1_BLEND_STANDARD_WIDTH -#define t1_blend_standard_height T1_BLEND_STANDARD_HEIGHT -#define t1_blend_stem_snap_widths T1_BLEND_STEM_SNAP_WIDTHS -#define t1_blend_stem_snap_heights T1_BLEND_STEM_SNAP_HEIGHTS -#define t1_blend_blue_scale T1_BLEND_BLUE_SCALE -#define t1_blend_blue_shift T1_BLEND_BLUE_SHIFT -#define t1_blend_family_blues T1_BLEND_FAMILY_BLUES -#define t1_blend_family_other_blues T1_BLEND_FAMILY_OTHER_BLUES -#define t1_blend_force_bold T1_BLEND_FORCE_BOLD -#define t1_blend_max T1_BLEND_MAX - - /* */ - - - /* maximum number of Multiple Masters designs, as defined in the spec */ -#define T1_MAX_MM_DESIGNS 16 - - /* maximum number of Multiple Masters axes, as defined in the spec */ -#define T1_MAX_MM_AXIS 4 - - /* maximum number of elements in a design map */ -#define T1_MAX_MM_MAP_POINTS 20 - - - /* this structure is used to store the BlendDesignMap entry for an axis */ - typedef struct PS_DesignMap_ - { - FT_Byte num_points; - FT_Long* design_points; - FT_Fixed* blend_points; - - } PS_DesignMapRec, *PS_DesignMap; - - /* backwards-compatible definition */ - typedef PS_DesignMapRec T1_DesignMap; - - - typedef struct PS_BlendRec_ - { - FT_UInt num_designs; - FT_UInt num_axis; - - FT_String* axis_names[T1_MAX_MM_AXIS]; - FT_Fixed* design_pos[T1_MAX_MM_DESIGNS]; - PS_DesignMapRec design_map[T1_MAX_MM_AXIS]; - - FT_Fixed* weight_vector; - FT_Fixed* default_weight_vector; - - PS_FontInfo font_infos[T1_MAX_MM_DESIGNS + 1]; - PS_Private privates [T1_MAX_MM_DESIGNS + 1]; - - FT_ULong blend_bitflags; - - FT_BBox* bboxes [T1_MAX_MM_DESIGNS + 1]; - - /* since 2.3.0 */ - - /* undocumented, optional: the default design instance; */ - /* corresponds to default_weight_vector -- */ - /* num_default_design_vector == 0 means it is not present */ - /* in the font and associated metrics files */ - FT_UInt default_design_vector[T1_MAX_MM_DESIGNS]; - FT_UInt num_default_design_vector; - - } PS_BlendRec, *PS_Blend; - - - /* backwards-compatible definition */ - typedef PS_BlendRec T1_Blend; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceDictRec */ - /* */ - /* <Description> */ - /* A structure used to represent data in a CID top-level dictionary. */ - /* */ - typedef struct CID_FaceDictRec_ - { - PS_PrivateRec private_dict; - - FT_UInt len_buildchar; - FT_Fixed forcebold_threshold; - FT_Pos stroke_width; - FT_Fixed expansion_factor; - - FT_Byte paint_type; - FT_Byte font_type; - FT_Matrix font_matrix; - FT_Vector font_offset; - - FT_UInt num_subrs; - FT_ULong subrmap_offset; - FT_Int sd_bytes; - - } CID_FaceDictRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceDict */ - /* */ - /* <Description> */ - /* A handle to a @CID_FaceDictRec structure. */ - /* */ - typedef struct CID_FaceDictRec_* CID_FaceDict; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FontDict */ - /* */ - /* <Description> */ - /* This type is equivalent to @CID_FaceDictRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef CID_FaceDictRec CID_FontDict; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceInfoRec */ - /* */ - /* <Description> */ - /* A structure used to represent CID Face information. */ - /* */ - typedef struct CID_FaceInfoRec_ - { - FT_String* cid_font_name; - FT_Fixed cid_version; - FT_Int cid_font_type; - - FT_String* registry; - FT_String* ordering; - FT_Int supplement; - - PS_FontInfoRec font_info; - FT_BBox font_bbox; - FT_ULong uid_base; - - FT_Int num_xuid; - FT_ULong xuid[16]; - - FT_ULong cidmap_offset; - FT_Int fd_bytes; - FT_Int gd_bytes; - FT_ULong cid_count; - - FT_Int num_dicts; - CID_FaceDict font_dicts; - - FT_ULong data_offset; - - } CID_FaceInfoRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceInfo */ - /* */ - /* <Description> */ - /* A handle to a @CID_FaceInfoRec structure. */ - /* */ - typedef struct CID_FaceInfoRec_* CID_FaceInfo; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_Info */ - /* */ - /* <Description> */ - /* This type is equivalent to @CID_FaceInfoRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef CID_FaceInfoRec CID_Info; - - - /************************************************************************ - * - * @function: - * FT_Has_PS_Glyph_Names - * - * @description: - * Return true if a given face provides reliable PostScript glyph - * names. This is similar to using the @FT_HAS_GLYPH_NAMES macro, - * except that certain fonts (mostly TrueType) contain incorrect - * glyph name tables. - * - * When this function returns true, the caller is sure that the glyph - * names returned by @FT_Get_Glyph_Name are reliable. - * - * @input: - * face :: - * face handle - * - * @return: - * Boolean. True if glyph names are reliable. - * - */ - FT_EXPORT( FT_Int ) - FT_Has_PS_Glyph_Names( FT_Face face ); - - - /************************************************************************ - * - * @function: - * FT_Get_PS_Font_Info - * - * @description: - * Retrieve the @PS_FontInfoRec structure corresponding to a given - * PostScript font. - * - * @input: - * face :: - * PostScript face handle. - * - * @output: - * afont_info :: - * Output font info structure pointer. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * String pointers within the @PS_FontInfoRec structure are owned by - * the face and don't need to be freed by the caller. Missing entries - * in the font's FontInfo dictionary are represented by NULL pointers. - * - * If the font's format is not PostScript-based, this function will - * return the `FT_Err_Invalid_Argument' error code. - * - */ - FT_EXPORT( FT_Error ) - FT_Get_PS_Font_Info( FT_Face face, - PS_FontInfo afont_info ); - - - /************************************************************************ - * - * @function: - * FT_Get_PS_Font_Private - * - * @description: - * Retrieve the @PS_PrivateRec structure corresponding to a given - * PostScript font. - * - * @input: - * face :: - * PostScript face handle. - * - * @output: - * afont_private :: - * Output private dictionary structure pointer. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The string pointers within the @PS_PrivateRec structure are owned by - * the face and don't need to be freed by the caller. - * - * If the font's format is not PostScript-based, this function returns - * the `FT_Err_Invalid_Argument' error code. - * - */ - FT_EXPORT( FT_Error ) - FT_Get_PS_Font_Private( FT_Face face, - PS_Private afont_private ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* T1_EncodingType */ - /* */ - /* <Description> */ - /* An enumeration describing the `Encoding' entry in a Type 1 */ - /* dictionary. */ - /* */ - /* <Values> */ - /* T1_ENCODING_TYPE_NONE :: */ - /* T1_ENCODING_TYPE_ARRAY :: */ - /* T1_ENCODING_TYPE_STANDARD :: */ - /* T1_ENCODING_TYPE_ISOLATIN1 :: */ - /* T1_ENCODING_TYPE_EXPERT :: */ - /* */ - typedef enum T1_EncodingType_ - { - T1_ENCODING_TYPE_NONE = 0, - T1_ENCODING_TYPE_ARRAY, - T1_ENCODING_TYPE_STANDARD, - T1_ENCODING_TYPE_ISOLATIN1, - T1_ENCODING_TYPE_EXPERT - - } T1_EncodingType; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* PS_Dict_Keys */ - /* */ - /* <Description> */ - /* An enumeration used in calls to @FT_Get_PS_Font_Value to identify */ - /* the Type~1 dictionary entry to retrieve. */ - /* */ - /* <Values> */ - /* PS_DICT_FONT_TYPE :: */ - /* PS_DICT_FONT_MATRIX :: */ - /* PS_DICT_FONT_BBOX :: */ - /* PS_DICT_PAINT_TYPE :: */ - /* PS_DICT_FONT_NAME :: */ - /* PS_DICT_UNIQUE_ID :: */ - /* PS_DICT_NUM_CHAR_STRINGS :: */ - /* PS_DICT_CHAR_STRING_KEY :: */ - /* PS_DICT_CHAR_STRING :: */ - /* PS_DICT_ENCODING_TYPE :: */ - /* PS_DICT_ENCODING_ENTRY :: */ - /* PS_DICT_NUM_SUBRS :: */ - /* PS_DICT_SUBR :: */ - /* PS_DICT_STD_HW :: */ - /* PS_DICT_STD_VW :: */ - /* PS_DICT_NUM_BLUE_VALUES :: */ - /* PS_DICT_BLUE_VALUE :: */ - /* PS_DICT_BLUE_FUZZ :: */ - /* PS_DICT_NUM_OTHER_BLUES :: */ - /* PS_DICT_OTHER_BLUE :: */ - /* PS_DICT_NUM_FAMILY_BLUES :: */ - /* PS_DICT_FAMILY_BLUE :: */ - /* PS_DICT_NUM_FAMILY_OTHER_BLUES :: */ - /* PS_DICT_FAMILY_OTHER_BLUE :: */ - /* PS_DICT_BLUE_SCALE :: */ - /* PS_DICT_BLUE_SHIFT :: */ - /* PS_DICT_NUM_STEM_SNAP_H :: */ - /* PS_DICT_STEM_SNAP_H :: */ - /* PS_DICT_NUM_STEM_SNAP_V :: */ - /* PS_DICT_STEM_SNAP_V :: */ - /* PS_DICT_FORCE_BOLD :: */ - /* PS_DICT_RND_STEM_UP :: */ - /* PS_DICT_MIN_FEATURE :: */ - /* PS_DICT_LEN_IV :: */ - /* PS_DICT_PASSWORD :: */ - /* PS_DICT_LANGUAGE_GROUP :: */ - /* PS_DICT_VERSION :: */ - /* PS_DICT_NOTICE :: */ - /* PS_DICT_FULL_NAME :: */ - /* PS_DICT_FAMILY_NAME :: */ - /* PS_DICT_WEIGHT :: */ - /* PS_DICT_IS_FIXED_PITCH :: */ - /* PS_DICT_UNDERLINE_POSITION :: */ - /* PS_DICT_UNDERLINE_THICKNESS :: */ - /* PS_DICT_FS_TYPE :: */ - /* PS_DICT_ITALIC_ANGLE :: */ - /* */ - typedef enum PS_Dict_Keys_ - { - /* conventionally in the font dictionary */ - PS_DICT_FONT_TYPE, /* FT_Byte */ - PS_DICT_FONT_MATRIX, /* FT_Fixed */ - PS_DICT_FONT_BBOX, /* FT_Fixed */ - PS_DICT_PAINT_TYPE, /* FT_Byte */ - PS_DICT_FONT_NAME, /* FT_String* */ - PS_DICT_UNIQUE_ID, /* FT_Int */ - PS_DICT_NUM_CHAR_STRINGS, /* FT_Int */ - PS_DICT_CHAR_STRING_KEY, /* FT_String* */ - PS_DICT_CHAR_STRING, /* FT_String* */ - PS_DICT_ENCODING_TYPE, /* T1_EncodingType */ - PS_DICT_ENCODING_ENTRY, /* FT_String* */ - - /* conventionally in the font Private dictionary */ - PS_DICT_NUM_SUBRS, /* FT_Int */ - PS_DICT_SUBR, /* FT_String* */ - PS_DICT_STD_HW, /* FT_UShort */ - PS_DICT_STD_VW, /* FT_UShort */ - PS_DICT_NUM_BLUE_VALUES, /* FT_Byte */ - PS_DICT_BLUE_VALUE, /* FT_Short */ - PS_DICT_BLUE_FUZZ, /* FT_Int */ - PS_DICT_NUM_OTHER_BLUES, /* FT_Byte */ - PS_DICT_OTHER_BLUE, /* FT_Short */ - PS_DICT_NUM_FAMILY_BLUES, /* FT_Byte */ - PS_DICT_FAMILY_BLUE, /* FT_Short */ - PS_DICT_NUM_FAMILY_OTHER_BLUES, /* FT_Byte */ - PS_DICT_FAMILY_OTHER_BLUE, /* FT_Short */ - PS_DICT_BLUE_SCALE, /* FT_Fixed */ - PS_DICT_BLUE_SHIFT, /* FT_Int */ - PS_DICT_NUM_STEM_SNAP_H, /* FT_Byte */ - PS_DICT_STEM_SNAP_H, /* FT_Short */ - PS_DICT_NUM_STEM_SNAP_V, /* FT_Byte */ - PS_DICT_STEM_SNAP_V, /* FT_Short */ - PS_DICT_FORCE_BOLD, /* FT_Bool */ - PS_DICT_RND_STEM_UP, /* FT_Bool */ - PS_DICT_MIN_FEATURE, /* FT_Short */ - PS_DICT_LEN_IV, /* FT_Int */ - PS_DICT_PASSWORD, /* FT_Long */ - PS_DICT_LANGUAGE_GROUP, /* FT_Long */ - - /* conventionally in the font FontInfo dictionary */ - PS_DICT_VERSION, /* FT_String* */ - PS_DICT_NOTICE, /* FT_String* */ - PS_DICT_FULL_NAME, /* FT_String* */ - PS_DICT_FAMILY_NAME, /* FT_String* */ - PS_DICT_WEIGHT, /* FT_String* */ - PS_DICT_IS_FIXED_PITCH, /* FT_Bool */ - PS_DICT_UNDERLINE_POSITION, /* FT_Short */ - PS_DICT_UNDERLINE_THICKNESS, /* FT_UShort */ - PS_DICT_FS_TYPE, /* FT_UShort */ - PS_DICT_ITALIC_ANGLE, /* FT_Long */ - - PS_DICT_MAX = PS_DICT_ITALIC_ANGLE - - } PS_Dict_Keys; - - - /************************************************************************ - * - * @function: - * FT_Get_PS_Font_Value - * - * @description: - * Retrieve the value for the supplied key from a PostScript font. - * - * @input: - * face :: - * PostScript face handle. - * - * key :: - * An enumeration value representing the dictionary key to retrieve. - * - * idx :: - * For array values, this specifies the index to be returned. - * - * value :: - * A pointer to memory into which to write the value. - * - * valen_len :: - * The size, in bytes, of the memory supplied for the value. - * - * @output: - * value :: - * The value matching the above key, if it exists. - * - * @return: - * The amount of memory (in bytes) required to hold the requested - * value (if it exists, -1 otherwise). - * - * @note: - * The values returned are not pointers into the internal structures of - * the face, but are `fresh' copies, so that the memory containing them - * belongs to the calling application. This also enforces the - * `read-only' nature of these values, i.e., this function cannot be - * used to manipulate the face. - * - * `value' is a void pointer because the values returned can be of - * various types. - * - * If either `value' is NULL or `value_len' is too small, just the - * required memory size for the requested entry is returned. - * - * The `idx' parameter is used, not only to retrieve elements of, for - * example, the FontMatrix or FontBBox, but also to retrieve name keys - * from the CharStrings dictionary, and the charstrings themselves. It - * is ignored for atomic values. - * - * PS_DICT_BLUE_SCALE returns a value that is scaled up by 1000. To - * get the value as in the font stream, you need to divide by - * 65536000.0 (to remove the FT_Fixed scale, and the x1000 scale). - * - * IMPORTANT: Only key/value pairs read by the FreeType interpreter can - * be retrieved. So, for example, PostScript procedures such as NP, - * ND, and RD are not available. Arbitrary keys are, obviously, not be - * available either. - * - * If the font's format is not PostScript-based, this function returns - * the `FT_Err_Invalid_Argument' error code. - * - */ - FT_EXPORT( FT_Long ) - FT_Get_PS_Font_Value( FT_Face face, - PS_Dict_Keys key, - FT_UInt idx, - void *value, - FT_Long value_len ); - - /* */ - -FT_END_HEADER - -#endif /* __T1TABLES_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ttnameid.h b/lib/windows/include/freetype/ttnameid.h deleted file mode 100644 index c9585f2..0000000 --- a/lib/windows/include/freetype/ttnameid.h +++ /dev/null @@ -1,1237 +0,0 @@ -/***************************************************************************/ -/* */ -/* ttnameid.h */ -/* */ -/* TrueType name ID definitions (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTNAMEID_H__ -#define __TTNAMEID_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* truetype_tables */ - /* */ - - - /*************************************************************************/ - /* */ - /* Possible values for the `platform' identifier code in the name */ - /* records of the TTF `name' table. */ - /* */ - /*************************************************************************/ - - - /*********************************************************************** - * - * @enum: - * TT_PLATFORM_XXX - * - * @description: - * A list of valid values for the `platform_id' identifier code in - * @FT_CharMapRec and @FT_SfntName structures. - * - * @values: - * TT_PLATFORM_APPLE_UNICODE :: - * Used by Apple to indicate a Unicode character map and/or name entry. - * See @TT_APPLE_ID_XXX for corresponding `encoding_id' values. Note - * that name entries in this format are coded as big-endian UCS-2 - * character codes _only_. - * - * TT_PLATFORM_MACINTOSH :: - * Used by Apple to indicate a MacOS-specific charmap and/or name entry. - * See @TT_MAC_ID_XXX for corresponding `encoding_id' values. Note that - * most TrueType fonts contain an Apple roman charmap to be usable on - * MacOS systems (even if they contain a Microsoft charmap as well). - * - * TT_PLATFORM_ISO :: - * This value was used to specify ISO/IEC 10646 charmaps. It is however - * now deprecated. See @TT_ISO_ID_XXX for a list of corresponding - * `encoding_id' values. - * - * TT_PLATFORM_MICROSOFT :: - * Used by Microsoft to indicate Windows-specific charmaps. See - * @TT_MS_ID_XXX for a list of corresponding `encoding_id' values. - * Note that most fonts contain a Unicode charmap using - * (TT_PLATFORM_MICROSOFT, @TT_MS_ID_UNICODE_CS). - * - * TT_PLATFORM_CUSTOM :: - * Used to indicate application-specific charmaps. - * - * TT_PLATFORM_ADOBE :: - * This value isn't part of any font format specification, but is used - * by FreeType to report Adobe-specific charmaps in an @FT_CharMapRec - * structure. See @TT_ADOBE_ID_XXX. - */ - -#define TT_PLATFORM_APPLE_UNICODE 0 -#define TT_PLATFORM_MACINTOSH 1 -#define TT_PLATFORM_ISO 2 /* deprecated */ -#define TT_PLATFORM_MICROSOFT 3 -#define TT_PLATFORM_CUSTOM 4 -#define TT_PLATFORM_ADOBE 7 /* artificial */ - - - /*********************************************************************** - * - * @enum: - * TT_APPLE_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_APPLE_UNICODE charmaps and name entries. - * - * @values: - * TT_APPLE_ID_DEFAULT :: - * Unicode version 1.0. - * - * TT_APPLE_ID_UNICODE_1_1 :: - * Unicode 1.1; specifies Hangul characters starting at U+34xx. - * - * TT_APPLE_ID_ISO_10646 :: - * Deprecated (identical to preceding). - * - * TT_APPLE_ID_UNICODE_2_0 :: - * Unicode 2.0 and beyond (UTF-16 BMP only). - * - * TT_APPLE_ID_UNICODE_32 :: - * Unicode 3.1 and beyond, using UTF-32. - * - * TT_APPLE_ID_VARIANT_SELECTOR :: - * From Adobe, not Apple. Not a normal cmap. Specifies variations - * on a real cmap. - */ - -#define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */ -#define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */ -#define TT_APPLE_ID_ISO_10646 2 /* deprecated */ -#define TT_APPLE_ID_UNICODE_2_0 3 /* or later */ -#define TT_APPLE_ID_UNICODE_32 4 /* 2.0 or later, full repertoire */ -#define TT_APPLE_ID_VARIANT_SELECTOR 5 /* variation selector data */ - - - /*********************************************************************** - * - * @enum: - * TT_MAC_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_MACINTOSH charmaps and name entries. - * - * @values: - * TT_MAC_ID_ROMAN :: - * TT_MAC_ID_JAPANESE :: - * TT_MAC_ID_TRADITIONAL_CHINESE :: - * TT_MAC_ID_KOREAN :: - * TT_MAC_ID_ARABIC :: - * TT_MAC_ID_HEBREW :: - * TT_MAC_ID_GREEK :: - * TT_MAC_ID_RUSSIAN :: - * TT_MAC_ID_RSYMBOL :: - * TT_MAC_ID_DEVANAGARI :: - * TT_MAC_ID_GURMUKHI :: - * TT_MAC_ID_GUJARATI :: - * TT_MAC_ID_ORIYA :: - * TT_MAC_ID_BENGALI :: - * TT_MAC_ID_TAMIL :: - * TT_MAC_ID_TELUGU :: - * TT_MAC_ID_KANNADA :: - * TT_MAC_ID_MALAYALAM :: - * TT_MAC_ID_SINHALESE :: - * TT_MAC_ID_BURMESE :: - * TT_MAC_ID_KHMER :: - * TT_MAC_ID_THAI :: - * TT_MAC_ID_LAOTIAN :: - * TT_MAC_ID_GEORGIAN :: - * TT_MAC_ID_ARMENIAN :: - * TT_MAC_ID_MALDIVIAN :: - * TT_MAC_ID_SIMPLIFIED_CHINESE :: - * TT_MAC_ID_TIBETAN :: - * TT_MAC_ID_MONGOLIAN :: - * TT_MAC_ID_GEEZ :: - * TT_MAC_ID_SLAVIC :: - * TT_MAC_ID_VIETNAMESE :: - * TT_MAC_ID_SINDHI :: - * TT_MAC_ID_UNINTERP :: - */ - -#define TT_MAC_ID_ROMAN 0 -#define TT_MAC_ID_JAPANESE 1 -#define TT_MAC_ID_TRADITIONAL_CHINESE 2 -#define TT_MAC_ID_KOREAN 3 -#define TT_MAC_ID_ARABIC 4 -#define TT_MAC_ID_HEBREW 5 -#define TT_MAC_ID_GREEK 6 -#define TT_MAC_ID_RUSSIAN 7 -#define TT_MAC_ID_RSYMBOL 8 -#define TT_MAC_ID_DEVANAGARI 9 -#define TT_MAC_ID_GURMUKHI 10 -#define TT_MAC_ID_GUJARATI 11 -#define TT_MAC_ID_ORIYA 12 -#define TT_MAC_ID_BENGALI 13 -#define TT_MAC_ID_TAMIL 14 -#define TT_MAC_ID_TELUGU 15 -#define TT_MAC_ID_KANNADA 16 -#define TT_MAC_ID_MALAYALAM 17 -#define TT_MAC_ID_SINHALESE 18 -#define TT_MAC_ID_BURMESE 19 -#define TT_MAC_ID_KHMER 20 -#define TT_MAC_ID_THAI 21 -#define TT_MAC_ID_LAOTIAN 22 -#define TT_MAC_ID_GEORGIAN 23 -#define TT_MAC_ID_ARMENIAN 24 -#define TT_MAC_ID_MALDIVIAN 25 -#define TT_MAC_ID_SIMPLIFIED_CHINESE 25 -#define TT_MAC_ID_TIBETAN 26 -#define TT_MAC_ID_MONGOLIAN 27 -#define TT_MAC_ID_GEEZ 28 -#define TT_MAC_ID_SLAVIC 29 -#define TT_MAC_ID_VIETNAMESE 30 -#define TT_MAC_ID_SINDHI 31 -#define TT_MAC_ID_UNINTERP 32 - - - /*********************************************************************** - * - * @enum: - * TT_ISO_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_ISO charmaps and name entries. - * - * Their use is now deprecated. - * - * @values: - * TT_ISO_ID_7BIT_ASCII :: - * ASCII. - * TT_ISO_ID_10646 :: - * ISO/10646. - * TT_ISO_ID_8859_1 :: - * Also known as Latin-1. - */ - -#define TT_ISO_ID_7BIT_ASCII 0 -#define TT_ISO_ID_10646 1 -#define TT_ISO_ID_8859_1 2 - - - /*********************************************************************** - * - * @enum: - * TT_MS_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_MICROSOFT charmaps and name entries. - * - * @values: - * TT_MS_ID_SYMBOL_CS :: - * Corresponds to Microsoft symbol encoding. See - * @FT_ENCODING_MS_SYMBOL. - * - * TT_MS_ID_UNICODE_CS :: - * Corresponds to a Microsoft WGL4 charmap, matching Unicode. See - * @FT_ENCODING_UNICODE. - * - * TT_MS_ID_SJIS :: - * Corresponds to SJIS Japanese encoding. See @FT_ENCODING_SJIS. - * - * TT_MS_ID_GB2312 :: - * Corresponds to Simplified Chinese as used in Mainland China. See - * @FT_ENCODING_GB2312. - * - * TT_MS_ID_BIG_5 :: - * Corresponds to Traditional Chinese as used in Taiwan and Hong Kong. - * See @FT_ENCODING_BIG5. - * - * TT_MS_ID_WANSUNG :: - * Corresponds to Korean Wansung encoding. See @FT_ENCODING_WANSUNG. - * - * TT_MS_ID_JOHAB :: - * Corresponds to Johab encoding. See @FT_ENCODING_JOHAB. - * - * TT_MS_ID_UCS_4 :: - * Corresponds to UCS-4 or UTF-32 charmaps. This has been added to - * the OpenType specification version 1.4 (mid-2001.) - */ - -#define TT_MS_ID_SYMBOL_CS 0 -#define TT_MS_ID_UNICODE_CS 1 -#define TT_MS_ID_SJIS 2 -#define TT_MS_ID_GB2312 3 -#define TT_MS_ID_BIG_5 4 -#define TT_MS_ID_WANSUNG 5 -#define TT_MS_ID_JOHAB 6 -#define TT_MS_ID_UCS_4 10 - - - /*********************************************************************** - * - * @enum: - * TT_ADOBE_ID_XXX - * - * @description: - * A list of valid values for the `encoding_id' for - * @TT_PLATFORM_ADOBE charmaps. This is a FreeType-specific extension! - * - * @values: - * TT_ADOBE_ID_STANDARD :: - * Adobe standard encoding. - * TT_ADOBE_ID_EXPERT :: - * Adobe expert encoding. - * TT_ADOBE_ID_CUSTOM :: - * Adobe custom encoding. - * TT_ADOBE_ID_LATIN_1 :: - * Adobe Latin~1 encoding. - */ - -#define TT_ADOBE_ID_STANDARD 0 -#define TT_ADOBE_ID_EXPERT 1 -#define TT_ADOBE_ID_CUSTOM 2 -#define TT_ADOBE_ID_LATIN_1 3 - - - /*************************************************************************/ - /* */ - /* Possible values of the language identifier field in the name records */ - /* of the TTF `name' table if the `platform' identifier code is */ - /* TT_PLATFORM_MACINTOSH. These values are also used as return values */ - /* for function @FT_Get_CMap_Language_ID. */ - /* */ - /* The canonical source for the Apple assigned Language ID's is at */ - /* */ - /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html */ - /* */ -#define TT_MAC_LANGID_ENGLISH 0 -#define TT_MAC_LANGID_FRENCH 1 -#define TT_MAC_LANGID_GERMAN 2 -#define TT_MAC_LANGID_ITALIAN 3 -#define TT_MAC_LANGID_DUTCH 4 -#define TT_MAC_LANGID_SWEDISH 5 -#define TT_MAC_LANGID_SPANISH 6 -#define TT_MAC_LANGID_DANISH 7 -#define TT_MAC_LANGID_PORTUGUESE 8 -#define TT_MAC_LANGID_NORWEGIAN 9 -#define TT_MAC_LANGID_HEBREW 10 -#define TT_MAC_LANGID_JAPANESE 11 -#define TT_MAC_LANGID_ARABIC 12 -#define TT_MAC_LANGID_FINNISH 13 -#define TT_MAC_LANGID_GREEK 14 -#define TT_MAC_LANGID_ICELANDIC 15 -#define TT_MAC_LANGID_MALTESE 16 -#define TT_MAC_LANGID_TURKISH 17 -#define TT_MAC_LANGID_CROATIAN 18 -#define TT_MAC_LANGID_CHINESE_TRADITIONAL 19 -#define TT_MAC_LANGID_URDU 20 -#define TT_MAC_LANGID_HINDI 21 -#define TT_MAC_LANGID_THAI 22 -#define TT_MAC_LANGID_KOREAN 23 -#define TT_MAC_LANGID_LITHUANIAN 24 -#define TT_MAC_LANGID_POLISH 25 -#define TT_MAC_LANGID_HUNGARIAN 26 -#define TT_MAC_LANGID_ESTONIAN 27 -#define TT_MAC_LANGID_LETTISH 28 -#define TT_MAC_LANGID_SAAMISK 29 -#define TT_MAC_LANGID_FAEROESE 30 -#define TT_MAC_LANGID_FARSI 31 -#define TT_MAC_LANGID_RUSSIAN 32 -#define TT_MAC_LANGID_CHINESE_SIMPLIFIED 33 -#define TT_MAC_LANGID_FLEMISH 34 -#define TT_MAC_LANGID_IRISH 35 -#define TT_MAC_LANGID_ALBANIAN 36 -#define TT_MAC_LANGID_ROMANIAN 37 -#define TT_MAC_LANGID_CZECH 38 -#define TT_MAC_LANGID_SLOVAK 39 -#define TT_MAC_LANGID_SLOVENIAN 40 -#define TT_MAC_LANGID_YIDDISH 41 -#define TT_MAC_LANGID_SERBIAN 42 -#define TT_MAC_LANGID_MACEDONIAN 43 -#define TT_MAC_LANGID_BULGARIAN 44 -#define TT_MAC_LANGID_UKRAINIAN 45 -#define TT_MAC_LANGID_BYELORUSSIAN 46 -#define TT_MAC_LANGID_UZBEK 47 -#define TT_MAC_LANGID_KAZAKH 48 -#define TT_MAC_LANGID_AZERBAIJANI 49 -#define TT_MAC_LANGID_AZERBAIJANI_CYRILLIC_SCRIPT 49 -#define TT_MAC_LANGID_AZERBAIJANI_ARABIC_SCRIPT 50 -#define TT_MAC_LANGID_ARMENIAN 51 -#define TT_MAC_LANGID_GEORGIAN 52 -#define TT_MAC_LANGID_MOLDAVIAN 53 -#define TT_MAC_LANGID_KIRGHIZ 54 -#define TT_MAC_LANGID_TAJIKI 55 -#define TT_MAC_LANGID_TURKMEN 56 -#define TT_MAC_LANGID_MONGOLIAN 57 -#define TT_MAC_LANGID_MONGOLIAN_MONGOLIAN_SCRIPT 57 -#define TT_MAC_LANGID_MONGOLIAN_CYRILLIC_SCRIPT 58 -#define TT_MAC_LANGID_PASHTO 59 -#define TT_MAC_LANGID_KURDISH 60 -#define TT_MAC_LANGID_KASHMIRI 61 -#define TT_MAC_LANGID_SINDHI 62 -#define TT_MAC_LANGID_TIBETAN 63 -#define TT_MAC_LANGID_NEPALI 64 -#define TT_MAC_LANGID_SANSKRIT 65 -#define TT_MAC_LANGID_MARATHI 66 -#define TT_MAC_LANGID_BENGALI 67 -#define TT_MAC_LANGID_ASSAMESE 68 -#define TT_MAC_LANGID_GUJARATI 69 -#define TT_MAC_LANGID_PUNJABI 70 -#define TT_MAC_LANGID_ORIYA 71 -#define TT_MAC_LANGID_MALAYALAM 72 -#define TT_MAC_LANGID_KANNADA 73 -#define TT_MAC_LANGID_TAMIL 74 -#define TT_MAC_LANGID_TELUGU 75 -#define TT_MAC_LANGID_SINHALESE 76 -#define TT_MAC_LANGID_BURMESE 77 -#define TT_MAC_LANGID_KHMER 78 -#define TT_MAC_LANGID_LAO 79 -#define TT_MAC_LANGID_VIETNAMESE 80 -#define TT_MAC_LANGID_INDONESIAN 81 -#define TT_MAC_LANGID_TAGALOG 82 -#define TT_MAC_LANGID_MALAY_ROMAN_SCRIPT 83 -#define TT_MAC_LANGID_MALAY_ARABIC_SCRIPT 84 -#define TT_MAC_LANGID_AMHARIC 85 -#define TT_MAC_LANGID_TIGRINYA 86 -#define TT_MAC_LANGID_GALLA 87 -#define TT_MAC_LANGID_SOMALI 88 -#define TT_MAC_LANGID_SWAHILI 89 -#define TT_MAC_LANGID_RUANDA 90 -#define TT_MAC_LANGID_RUNDI 91 -#define TT_MAC_LANGID_CHEWA 92 -#define TT_MAC_LANGID_MALAGASY 93 -#define TT_MAC_LANGID_ESPERANTO 94 -#define TT_MAC_LANGID_WELSH 128 -#define TT_MAC_LANGID_BASQUE 129 -#define TT_MAC_LANGID_CATALAN 130 -#define TT_MAC_LANGID_LATIN 131 -#define TT_MAC_LANGID_QUECHUA 132 -#define TT_MAC_LANGID_GUARANI 133 -#define TT_MAC_LANGID_AYMARA 134 -#define TT_MAC_LANGID_TATAR 135 -#define TT_MAC_LANGID_UIGHUR 136 -#define TT_MAC_LANGID_DZONGKHA 137 -#define TT_MAC_LANGID_JAVANESE 138 -#define TT_MAC_LANGID_SUNDANESE 139 - - -#if 0 /* these seem to be errors that have been dropped */ - -#define TT_MAC_LANGID_SCOTTISH_GAELIC 140 -#define TT_MAC_LANGID_IRISH_GAELIC 141 - -#endif - - - /* The following codes are new as of 2000-03-10 */ -#define TT_MAC_LANGID_GALICIAN 140 -#define TT_MAC_LANGID_AFRIKAANS 141 -#define TT_MAC_LANGID_BRETON 142 -#define TT_MAC_LANGID_INUKTITUT 143 -#define TT_MAC_LANGID_SCOTTISH_GAELIC 144 -#define TT_MAC_LANGID_MANX_GAELIC 145 -#define TT_MAC_LANGID_IRISH_GAELIC 146 -#define TT_MAC_LANGID_TONGAN 147 -#define TT_MAC_LANGID_GREEK_POLYTONIC 148 -#define TT_MAC_LANGID_GREELANDIC 149 -#define TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT 150 - - - /*************************************************************************/ - /* */ - /* Possible values of the language identifier field in the name records */ - /* of the TTF `name' table if the `platform' identifier code is */ - /* TT_PLATFORM_MICROSOFT. */ - /* */ - /* The canonical source for the MS assigned LCIDs is */ - /* */ - /* http://www.microsoft.com/globaldev/reference/lcid-all.mspx */ - /* */ - -#define TT_MS_LANGID_ARABIC_GENERAL 0x0001 -#define TT_MS_LANGID_ARABIC_SAUDI_ARABIA 0x0401 -#define TT_MS_LANGID_ARABIC_IRAQ 0x0801 -#define TT_MS_LANGID_ARABIC_EGYPT 0x0C01 -#define TT_MS_LANGID_ARABIC_LIBYA 0x1001 -#define TT_MS_LANGID_ARABIC_ALGERIA 0x1401 -#define TT_MS_LANGID_ARABIC_MOROCCO 0x1801 -#define TT_MS_LANGID_ARABIC_TUNISIA 0x1C01 -#define TT_MS_LANGID_ARABIC_OMAN 0x2001 -#define TT_MS_LANGID_ARABIC_YEMEN 0x2401 -#define TT_MS_LANGID_ARABIC_SYRIA 0x2801 -#define TT_MS_LANGID_ARABIC_JORDAN 0x2C01 -#define TT_MS_LANGID_ARABIC_LEBANON 0x3001 -#define TT_MS_LANGID_ARABIC_KUWAIT 0x3401 -#define TT_MS_LANGID_ARABIC_UAE 0x3801 -#define TT_MS_LANGID_ARABIC_BAHRAIN 0x3C01 -#define TT_MS_LANGID_ARABIC_QATAR 0x4001 -#define TT_MS_LANGID_BULGARIAN_BULGARIA 0x0402 -#define TT_MS_LANGID_CATALAN_SPAIN 0x0403 -#define TT_MS_LANGID_CHINESE_GENERAL 0x0004 -#define TT_MS_LANGID_CHINESE_TAIWAN 0x0404 -#define TT_MS_LANGID_CHINESE_PRC 0x0804 -#define TT_MS_LANGID_CHINESE_HONG_KONG 0x0C04 -#define TT_MS_LANGID_CHINESE_SINGAPORE 0x1004 - -#if 1 /* this looks like the correct value */ -#define TT_MS_LANGID_CHINESE_MACAU 0x1404 -#else /* but beware, Microsoft may change its mind... - the most recent Word reference has the following: */ -#define TT_MS_LANGID_CHINESE_MACAU TT_MS_LANGID_CHINESE_HONG_KONG -#endif - -#if 0 /* used only with .NET `cultures'; commented out */ -#define TT_MS_LANGID_CHINESE_TRADITIONAL 0x7C04 -#endif - -#define TT_MS_LANGID_CZECH_CZECH_REPUBLIC 0x0405 -#define TT_MS_LANGID_DANISH_DENMARK 0x0406 -#define TT_MS_LANGID_GERMAN_GERMANY 0x0407 -#define TT_MS_LANGID_GERMAN_SWITZERLAND 0x0807 -#define TT_MS_LANGID_GERMAN_AUSTRIA 0x0C07 -#define TT_MS_LANGID_GERMAN_LUXEMBOURG 0x1007 -#define TT_MS_LANGID_GERMAN_LIECHTENSTEI 0x1407 -#define TT_MS_LANGID_GREEK_GREECE 0x0408 - - /* don't ask what this one means... It is commented out currently. */ -#if 0 -#define TT_MS_LANGID_GREEK_GREECE2 0x2008 -#endif - -#define TT_MS_LANGID_ENGLISH_GENERAL 0x0009 -#define TT_MS_LANGID_ENGLISH_UNITED_STATES 0x0409 -#define TT_MS_LANGID_ENGLISH_UNITED_KINGDOM 0x0809 -#define TT_MS_LANGID_ENGLISH_AUSTRALIA 0x0C09 -#define TT_MS_LANGID_ENGLISH_CANADA 0x1009 -#define TT_MS_LANGID_ENGLISH_NEW_ZEALAND 0x1409 -#define TT_MS_LANGID_ENGLISH_IRELAND 0x1809 -#define TT_MS_LANGID_ENGLISH_SOUTH_AFRICA 0x1C09 -#define TT_MS_LANGID_ENGLISH_JAMAICA 0x2009 -#define TT_MS_LANGID_ENGLISH_CARIBBEAN 0x2409 -#define TT_MS_LANGID_ENGLISH_BELIZE 0x2809 -#define TT_MS_LANGID_ENGLISH_TRINIDAD 0x2C09 -#define TT_MS_LANGID_ENGLISH_ZIMBABWE 0x3009 -#define TT_MS_LANGID_ENGLISH_PHILIPPINES 0x3409 -#define TT_MS_LANGID_ENGLISH_INDONESIA 0x3809 -#define TT_MS_LANGID_ENGLISH_HONG_KONG 0x3C09 -#define TT_MS_LANGID_ENGLISH_INDIA 0x4009 -#define TT_MS_LANGID_ENGLISH_MALAYSIA 0x4409 -#define TT_MS_LANGID_ENGLISH_SINGAPORE 0x4809 -#define TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT 0x040A -#define TT_MS_LANGID_SPANISH_MEXICO 0x080A -#define TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT 0x0C0A -#define TT_MS_LANGID_SPANISH_GUATEMALA 0x100A -#define TT_MS_LANGID_SPANISH_COSTA_RICA 0x140A -#define TT_MS_LANGID_SPANISH_PANAMA 0x180A -#define TT_MS_LANGID_SPANISH_DOMINICAN_REPUBLIC 0x1C0A -#define TT_MS_LANGID_SPANISH_VENEZUELA 0x200A -#define TT_MS_LANGID_SPANISH_COLOMBIA 0x240A -#define TT_MS_LANGID_SPANISH_PERU 0x280A -#define TT_MS_LANGID_SPANISH_ARGENTINA 0x2C0A -#define TT_MS_LANGID_SPANISH_ECUADOR 0x300A -#define TT_MS_LANGID_SPANISH_CHILE 0x340A -#define TT_MS_LANGID_SPANISH_URUGUAY 0x380A -#define TT_MS_LANGID_SPANISH_PARAGUAY 0x3C0A -#define TT_MS_LANGID_SPANISH_BOLIVIA 0x400A -#define TT_MS_LANGID_SPANISH_EL_SALVADOR 0x440A -#define TT_MS_LANGID_SPANISH_HONDURAS 0x480A -#define TT_MS_LANGID_SPANISH_NICARAGUA 0x4C0A -#define TT_MS_LANGID_SPANISH_PUERTO_RICO 0x500A -#define TT_MS_LANGID_SPANISH_UNITED_STATES 0x540A - /* The following ID blatantly violate MS specs by using a */ - /* sublanguage > 0x1F. */ -#define TT_MS_LANGID_SPANISH_LATIN_AMERICA 0xE40AU -#define TT_MS_LANGID_FINNISH_FINLAND 0x040B -#define TT_MS_LANGID_FRENCH_FRANCE 0x040C -#define TT_MS_LANGID_FRENCH_BELGIUM 0x080C -#define TT_MS_LANGID_FRENCH_CANADA 0x0C0C -#define TT_MS_LANGID_FRENCH_SWITZERLAND 0x100C -#define TT_MS_LANGID_FRENCH_LUXEMBOURG 0x140C -#define TT_MS_LANGID_FRENCH_MONACO 0x180C -#define TT_MS_LANGID_FRENCH_WEST_INDIES 0x1C0C -#define TT_MS_LANGID_FRENCH_REUNION 0x200C -#define TT_MS_LANGID_FRENCH_CONGO 0x240C - /* which was formerly: */ -#define TT_MS_LANGID_FRENCH_ZAIRE TT_MS_LANGID_FRENCH_CONGO -#define TT_MS_LANGID_FRENCH_SENEGAL 0x280C -#define TT_MS_LANGID_FRENCH_CAMEROON 0x2C0C -#define TT_MS_LANGID_FRENCH_COTE_D_IVOIRE 0x300C -#define TT_MS_LANGID_FRENCH_MALI 0x340C -#define TT_MS_LANGID_FRENCH_MOROCCO 0x380C -#define TT_MS_LANGID_FRENCH_HAITI 0x3C0C - /* and another violation of the spec (see 0xE40AU) */ -#define TT_MS_LANGID_FRENCH_NORTH_AFRICA 0xE40CU -#define TT_MS_LANGID_HEBREW_ISRAEL 0x040D -#define TT_MS_LANGID_HUNGARIAN_HUNGARY 0x040E -#define TT_MS_LANGID_ICELANDIC_ICELAND 0x040F -#define TT_MS_LANGID_ITALIAN_ITALY 0x0410 -#define TT_MS_LANGID_ITALIAN_SWITZERLAND 0x0810 -#define TT_MS_LANGID_JAPANESE_JAPAN 0x0411 -#define TT_MS_LANGID_KOREAN_EXTENDED_WANSUNG_KOREA 0x0412 -#define TT_MS_LANGID_KOREAN_JOHAB_KOREA 0x0812 -#define TT_MS_LANGID_DUTCH_NETHERLANDS 0x0413 -#define TT_MS_LANGID_DUTCH_BELGIUM 0x0813 -#define TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL 0x0414 -#define TT_MS_LANGID_NORWEGIAN_NORWAY_NYNORSK 0x0814 -#define TT_MS_LANGID_POLISH_POLAND 0x0415 -#define TT_MS_LANGID_PORTUGUESE_BRAZIL 0x0416 -#define TT_MS_LANGID_PORTUGUESE_PORTUGAL 0x0816 -#define TT_MS_LANGID_RHAETO_ROMANIC_SWITZERLAND 0x0417 -#define TT_MS_LANGID_ROMANIAN_ROMANIA 0x0418 -#define TT_MS_LANGID_MOLDAVIAN_MOLDAVIA 0x0818 -#define TT_MS_LANGID_RUSSIAN_RUSSIA 0x0419 -#define TT_MS_LANGID_RUSSIAN_MOLDAVIA 0x0819 -#define TT_MS_LANGID_CROATIAN_CROATIA 0x041A -#define TT_MS_LANGID_SERBIAN_SERBIA_LATIN 0x081A -#define TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC 0x0C1A - -#if 0 /* this used to be this value, but it looks like we were wrong */ -#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x101A -#else /* current sources say */ -#define TT_MS_LANGID_CROATIAN_BOSNIA_HERZEGOVINA 0x101A -#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x141A - /* and XPsp2 Platform SDK added (2004-07-26) */ - /* Names are shortened to be significant within 40 chars. */ -#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_LATIN 0x181A -#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC 0x181A -#endif - -#define TT_MS_LANGID_SLOVAK_SLOVAKIA 0x041B -#define TT_MS_LANGID_ALBANIAN_ALBANIA 0x041C -#define TT_MS_LANGID_SWEDISH_SWEDEN 0x041D -#define TT_MS_LANGID_SWEDISH_FINLAND 0x081D -#define TT_MS_LANGID_THAI_THAILAND 0x041E -#define TT_MS_LANGID_TURKISH_TURKEY 0x041F -#define TT_MS_LANGID_URDU_PAKISTAN 0x0420 -#define TT_MS_LANGID_URDU_INDIA 0x0820 -#define TT_MS_LANGID_INDONESIAN_INDONESIA 0x0421 -#define TT_MS_LANGID_UKRAINIAN_UKRAINE 0x0422 -#define TT_MS_LANGID_BELARUSIAN_BELARUS 0x0423 -#define TT_MS_LANGID_SLOVENE_SLOVENIA 0x0424 -#define TT_MS_LANGID_ESTONIAN_ESTONIA 0x0425 -#define TT_MS_LANGID_LATVIAN_LATVIA 0x0426 -#define TT_MS_LANGID_LITHUANIAN_LITHUANIA 0x0427 -#define TT_MS_LANGID_CLASSIC_LITHUANIAN_LITHUANIA 0x0827 -#define TT_MS_LANGID_TAJIK_TAJIKISTAN 0x0428 -#define TT_MS_LANGID_FARSI_IRAN 0x0429 -#define TT_MS_LANGID_VIETNAMESE_VIET_NAM 0x042A -#define TT_MS_LANGID_ARMENIAN_ARMENIA 0x042B -#define TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN 0x042C -#define TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC 0x082C -#define TT_MS_LANGID_BASQUE_SPAIN 0x042D -#define TT_MS_LANGID_SORBIAN_GERMANY 0x042E -#define TT_MS_LANGID_MACEDONIAN_MACEDONIA 0x042F -#define TT_MS_LANGID_SUTU_SOUTH_AFRICA 0x0430 -#define TT_MS_LANGID_TSONGA_SOUTH_AFRICA 0x0431 -#define TT_MS_LANGID_TSWANA_SOUTH_AFRICA 0x0432 -#define TT_MS_LANGID_VENDA_SOUTH_AFRICA 0x0433 -#define TT_MS_LANGID_XHOSA_SOUTH_AFRICA 0x0434 -#define TT_MS_LANGID_ZULU_SOUTH_AFRICA 0x0435 -#define TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA 0x0436 -#define TT_MS_LANGID_GEORGIAN_GEORGIA 0x0437 -#define TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS 0x0438 -#define TT_MS_LANGID_HINDI_INDIA 0x0439 -#define TT_MS_LANGID_MALTESE_MALTA 0x043A - /* Added by XPsp2 Platform SDK (2004-07-26) */ -#define TT_MS_LANGID_SAMI_NORTHERN_NORWAY 0x043B -#define TT_MS_LANGID_SAMI_NORTHERN_SWEDEN 0x083B -#define TT_MS_LANGID_SAMI_NORTHERN_FINLAND 0x0C3B -#define TT_MS_LANGID_SAMI_LULE_NORWAY 0x103B -#define TT_MS_LANGID_SAMI_LULE_SWEDEN 0x143B -#define TT_MS_LANGID_SAMI_SOUTHERN_NORWAY 0x183B -#define TT_MS_LANGID_SAMI_SOUTHERN_SWEDEN 0x1C3B -#define TT_MS_LANGID_SAMI_SKOLT_FINLAND 0x203B -#define TT_MS_LANGID_SAMI_INARI_FINLAND 0x243B - /* ... and we also keep our old identifier... */ -#define TT_MS_LANGID_SAAMI_LAPONIA 0x043B - -#if 0 /* this seems to be a previous inversion */ -#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C -#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C -#else -#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C -#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C -#endif - -#define TT_MS_LANGID_YIDDISH_GERMANY 0x043D -#define TT_MS_LANGID_MALAY_MALAYSIA 0x043E -#define TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM 0x083E -#define TT_MS_LANGID_KAZAK_KAZAKSTAN 0x043F -#define TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN /* Cyrillic*/ 0x0440 - /* alias declared in Windows 2000 */ -#define TT_MS_LANGID_KIRGHIZ_KIRGHIZ_REPUBLIC \ - TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN - -#define TT_MS_LANGID_SWAHILI_KENYA 0x0441 -#define TT_MS_LANGID_TURKMEN_TURKMENISTAN 0x0442 -#define TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN 0x0443 -#define TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC 0x0843 -#define TT_MS_LANGID_TATAR_TATARSTAN 0x0444 -#define TT_MS_LANGID_BENGALI_INDIA 0x0445 -#define TT_MS_LANGID_BENGALI_BANGLADESH 0x0845 -#define TT_MS_LANGID_PUNJABI_INDIA 0x0446 -#define TT_MS_LANGID_PUNJABI_ARABIC_PAKISTAN 0x0846 -#define TT_MS_LANGID_GUJARATI_INDIA 0x0447 -#define TT_MS_LANGID_ORIYA_INDIA 0x0448 -#define TT_MS_LANGID_TAMIL_INDIA 0x0449 -#define TT_MS_LANGID_TELUGU_INDIA 0x044A -#define TT_MS_LANGID_KANNADA_INDIA 0x044B -#define TT_MS_LANGID_MALAYALAM_INDIA 0x044C -#define TT_MS_LANGID_ASSAMESE_INDIA 0x044D -#define TT_MS_LANGID_MARATHI_INDIA 0x044E -#define TT_MS_LANGID_SANSKRIT_INDIA 0x044F -#define TT_MS_LANGID_MONGOLIAN_MONGOLIA /* Cyrillic */ 0x0450 -#define TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN 0x0850 -#define TT_MS_LANGID_TIBETAN_CHINA 0x0451 - /* Don't use the next constant! It has */ - /* (1) the wrong spelling (Dzonghka) */ - /* (2) Microsoft doesn't officially define it -- */ - /* at least it is not in the List of Local */ - /* ID Values. */ - /* (3) Dzongkha is not the same language as */ - /* Tibetan, so merging it is wrong anyway. */ - /* */ - /* TT_MS_LANGID_TIBETAN_BHUTAN is correct, BTW. */ -#define TT_MS_LANGID_DZONGHKA_BHUTAN 0x0851 - -#if 0 - /* the following used to be defined */ -#define TT_MS_LANGID_TIBETAN_BHUTAN 0x0451 - /* ... but it was changed; */ -#else - /* So we will continue to #define it, but with the correct value */ -#define TT_MS_LANGID_TIBETAN_BHUTAN TT_MS_LANGID_DZONGHKA_BHUTAN -#endif - -#define TT_MS_LANGID_WELSH_WALES 0x0452 -#define TT_MS_LANGID_KHMER_CAMBODIA 0x0453 -#define TT_MS_LANGID_LAO_LAOS 0x0454 -#define TT_MS_LANGID_BURMESE_MYANMAR 0x0455 -#define TT_MS_LANGID_GALICIAN_SPAIN 0x0456 -#define TT_MS_LANGID_KONKANI_INDIA 0x0457 -#define TT_MS_LANGID_MANIPURI_INDIA /* Bengali */ 0x0458 -#define TT_MS_LANGID_SINDHI_INDIA /* Arabic */ 0x0459 -#define TT_MS_LANGID_SINDHI_PAKISTAN 0x0859 - /* Missing a LCID for Sindhi in Devanagari script */ -#define TT_MS_LANGID_SYRIAC_SYRIA 0x045A -#define TT_MS_LANGID_SINHALESE_SRI_LANKA 0x045B -#define TT_MS_LANGID_CHEROKEE_UNITED_STATES 0x045C -#define TT_MS_LANGID_INUKTITUT_CANADA 0x045D -#define TT_MS_LANGID_AMHARIC_ETHIOPIA 0x045E -#define TT_MS_LANGID_TAMAZIGHT_MOROCCO /* Arabic */ 0x045F -#define TT_MS_LANGID_TAMAZIGHT_MOROCCO_LATIN 0x085F - /* Missing a LCID for Tifinagh script */ -#define TT_MS_LANGID_KASHMIRI_PAKISTAN /* Arabic */ 0x0460 - /* Spelled this way by XPsp2 Platform SDK (2004-07-26) */ - /* script is yet unclear... might be Arabic, Nagari or Sharada */ -#define TT_MS_LANGID_KASHMIRI_SASIA 0x0860 - /* ... and aliased (by MS) for compatibility reasons. */ -#define TT_MS_LANGID_KASHMIRI_INDIA TT_MS_LANGID_KASHMIRI_SASIA -#define TT_MS_LANGID_NEPALI_NEPAL 0x0461 -#define TT_MS_LANGID_NEPALI_INDIA 0x0861 -#define TT_MS_LANGID_FRISIAN_NETHERLANDS 0x0462 -#define TT_MS_LANGID_PASHTO_AFGHANISTAN 0x0463 -#define TT_MS_LANGID_FILIPINO_PHILIPPINES 0x0464 -#define TT_MS_LANGID_DHIVEHI_MALDIVES 0x0465 - /* alias declared in Windows 2000 */ -#define TT_MS_LANGID_DIVEHI_MALDIVES TT_MS_LANGID_DHIVEHI_MALDIVES -#define TT_MS_LANGID_EDO_NIGERIA 0x0466 -#define TT_MS_LANGID_FULFULDE_NIGERIA 0x0467 -#define TT_MS_LANGID_HAUSA_NIGERIA 0x0468 -#define TT_MS_LANGID_IBIBIO_NIGERIA 0x0469 -#define TT_MS_LANGID_YORUBA_NIGERIA 0x046A -#define TT_MS_LANGID_QUECHUA_BOLIVIA 0x046B -#define TT_MS_LANGID_QUECHUA_ECUADOR 0x086B -#define TT_MS_LANGID_QUECHUA_PERU 0x0C6B -#define TT_MS_LANGID_SEPEDI_SOUTH_AFRICA 0x046C - /* Also spelled by XPsp2 Platform SDK (2004-07-26) */ -#define TT_MS_LANGID_SOTHO_SOUTHERN_SOUTH_AFRICA \ - TT_MS_LANGID_SEPEDI_SOUTH_AFRICA - /* language codes 0x046D, 0x046E and 0x046F are (still) unknown. */ -#define TT_MS_LANGID_IGBO_NIGERIA 0x0470 -#define TT_MS_LANGID_KANURI_NIGERIA 0x0471 -#define TT_MS_LANGID_OROMO_ETHIOPIA 0x0472 -#define TT_MS_LANGID_TIGRIGNA_ETHIOPIA 0x0473 -#define TT_MS_LANGID_TIGRIGNA_ERYTHREA 0x0873 - /* also spelled in the `Passport SDK' list as: */ -#define TT_MS_LANGID_TIGRIGNA_ERYTREA TT_MS_LANGID_TIGRIGNA_ERYTHREA -#define TT_MS_LANGID_GUARANI_PARAGUAY 0x0474 -#define TT_MS_LANGID_HAWAIIAN_UNITED_STATES 0x0475 -#define TT_MS_LANGID_LATIN 0x0476 -#define TT_MS_LANGID_SOMALI_SOMALIA 0x0477 - /* Note: Yi does not have a (proper) ISO 639-2 code, since it is mostly */ - /* not written (but OTOH the peculiar writing system is worth */ - /* studying). */ -#define TT_MS_LANGID_YI_CHINA 0x0478 -#define TT_MS_LANGID_PAPIAMENTU_NETHERLANDS_ANTILLES 0x0479 - /* language codes from 0x047A to 0x047F are (still) unknown. */ -#define TT_MS_LANGID_UIGHUR_CHINA 0x0480 -#define TT_MS_LANGID_MAORI_NEW_ZEALAND 0x0481 - -#if 0 /* not deemed useful for fonts */ -#define TT_MS_LANGID_HUMAN_INTERFACE_DEVICE 0x04FF -#endif - - - /*************************************************************************/ - /* */ - /* Possible values of the `name' identifier field in the name records of */ - /* the TTF `name' table. These values are platform independent. */ - /* */ -#define TT_NAME_ID_COPYRIGHT 0 -#define TT_NAME_ID_FONT_FAMILY 1 -#define TT_NAME_ID_FONT_SUBFAMILY 2 -#define TT_NAME_ID_UNIQUE_ID 3 -#define TT_NAME_ID_FULL_NAME 4 -#define TT_NAME_ID_VERSION_STRING 5 -#define TT_NAME_ID_PS_NAME 6 -#define TT_NAME_ID_TRADEMARK 7 - - /* the following values are from the OpenType spec */ -#define TT_NAME_ID_MANUFACTURER 8 -#define TT_NAME_ID_DESIGNER 9 -#define TT_NAME_ID_DESCRIPTION 10 -#define TT_NAME_ID_VENDOR_URL 11 -#define TT_NAME_ID_DESIGNER_URL 12 -#define TT_NAME_ID_LICENSE 13 -#define TT_NAME_ID_LICENSE_URL 14 - /* number 15 is reserved */ -#define TT_NAME_ID_PREFERRED_FAMILY 16 -#define TT_NAME_ID_PREFERRED_SUBFAMILY 17 -#define TT_NAME_ID_MAC_FULL_NAME 18 - - /* The following code is new as of 2000-01-21 */ -#define TT_NAME_ID_SAMPLE_TEXT 19 - - /* This is new in OpenType 1.3 */ -#define TT_NAME_ID_CID_FINDFONT_NAME 20 - - /* This is new in OpenType 1.5 */ -#define TT_NAME_ID_WWS_FAMILY 21 -#define TT_NAME_ID_WWS_SUBFAMILY 22 - - - /*************************************************************************/ - /* */ - /* Bit mask values for the Unicode Ranges from the TTF `OS2 ' table. */ - /* */ - /* Updated 08-Nov-2008. */ - /* */ - - /* Bit 0 Basic Latin */ -#define TT_UCR_BASIC_LATIN (1L << 0) /* U+0020-U+007E */ - /* Bit 1 C1 Controls and Latin-1 Supplement */ -#define TT_UCR_LATIN1_SUPPLEMENT (1L << 1) /* U+0080-U+00FF */ - /* Bit 2 Latin Extended-A */ -#define TT_UCR_LATIN_EXTENDED_A (1L << 2) /* U+0100-U+017F */ - /* Bit 3 Latin Extended-B */ -#define TT_UCR_LATIN_EXTENDED_B (1L << 3) /* U+0180-U+024F */ - /* Bit 4 IPA Extensions */ - /* Phonetic Extensions */ - /* Phonetic Extensions Supplement */ -#define TT_UCR_IPA_EXTENSIONS (1L << 4) /* U+0250-U+02AF */ - /* U+1D00-U+1D7F */ - /* U+1D80-U+1DBF */ - /* Bit 5 Spacing Modifier Letters */ - /* Modifier Tone Letters */ -#define TT_UCR_SPACING_MODIFIER (1L << 5) /* U+02B0-U+02FF */ - /* U+A700-U+A71F */ - /* Bit 6 Combining Diacritical Marks */ - /* Combining Diacritical Marks Supplement */ -#define TT_UCR_COMBINING_DIACRITICS (1L << 6) /* U+0300-U+036F */ - /* U+1DC0-U+1DFF */ - /* Bit 7 Greek and Coptic */ -#define TT_UCR_GREEK (1L << 7) /* U+0370-U+03FF */ - /* Bit 8 Coptic */ -#define TT_UCR_COPTIC (1L << 8) /* U+2C80-U+2CFF */ - /* Bit 9 Cyrillic */ - /* Cyrillic Supplement */ - /* Cyrillic Extended-A */ - /* Cyrillic Extended-B */ -#define TT_UCR_CYRILLIC (1L << 9) /* U+0400-U+04FF */ - /* U+0500-U+052F */ - /* U+2DE0-U+2DFF */ - /* U+A640-U+A69F */ - /* Bit 10 Armenian */ -#define TT_UCR_ARMENIAN (1L << 10) /* U+0530-U+058F */ - /* Bit 11 Hebrew */ -#define TT_UCR_HEBREW (1L << 11) /* U+0590-U+05FF */ - /* Bit 12 Vai */ -#define TT_UCR_VAI (1L << 12) /* U+A500-U+A63F */ - /* Bit 13 Arabic */ - /* Arabic Supplement */ -#define TT_UCR_ARABIC (1L << 13) /* U+0600-U+06FF */ - /* U+0750-U+077F */ - /* Bit 14 NKo */ -#define TT_UCR_NKO (1L << 14) /* U+07C0-U+07FF */ - /* Bit 15 Devanagari */ -#define TT_UCR_DEVANAGARI (1L << 15) /* U+0900-U+097F */ - /* Bit 16 Bengali */ -#define TT_UCR_BENGALI (1L << 16) /* U+0980-U+09FF */ - /* Bit 17 Gurmukhi */ -#define TT_UCR_GURMUKHI (1L << 17) /* U+0A00-U+0A7F */ - /* Bit 18 Gujarati */ -#define TT_UCR_GUJARATI (1L << 18) /* U+0A80-U+0AFF */ - /* Bit 19 Oriya */ -#define TT_UCR_ORIYA (1L << 19) /* U+0B00-U+0B7F */ - /* Bit 20 Tamil */ -#define TT_UCR_TAMIL (1L << 20) /* U+0B80-U+0BFF */ - /* Bit 21 Telugu */ -#define TT_UCR_TELUGU (1L << 21) /* U+0C00-U+0C7F */ - /* Bit 22 Kannada */ -#define TT_UCR_KANNADA (1L << 22) /* U+0C80-U+0CFF */ - /* Bit 23 Malayalam */ -#define TT_UCR_MALAYALAM (1L << 23) /* U+0D00-U+0D7F */ - /* Bit 24 Thai */ -#define TT_UCR_THAI (1L << 24) /* U+0E00-U+0E7F */ - /* Bit 25 Lao */ -#define TT_UCR_LAO (1L << 25) /* U+0E80-U+0EFF */ - /* Bit 26 Georgian */ - /* Georgian Supplement */ -#define TT_UCR_GEORGIAN (1L << 26) /* U+10A0-U+10FF */ - /* U+2D00-U+2D2F */ - /* Bit 27 Balinese */ -#define TT_UCR_BALINESE (1L << 27) /* U+1B00-U+1B7F */ - /* Bit 28 Hangul Jamo */ -#define TT_UCR_HANGUL_JAMO (1L << 28) /* U+1100-U+11FF */ - /* Bit 29 Latin Extended Additional */ - /* Latin Extended-C */ - /* Latin Extended-D */ -#define TT_UCR_LATIN_EXTENDED_ADDITIONAL (1L << 29) /* U+1E00-U+1EFF */ - /* U+2C60-U+2C7F */ - /* U+A720-U+A7FF */ - /* Bit 30 Greek Extended */ -#define TT_UCR_GREEK_EXTENDED (1L << 30) /* U+1F00-U+1FFF */ - /* Bit 31 General Punctuation */ - /* Supplemental Punctuation */ -#define TT_UCR_GENERAL_PUNCTUATION (1L << 31) /* U+2000-U+206F */ - /* U+2E00-U+2E7F */ - /* Bit 32 Superscripts And Subscripts */ -#define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS (1L << 0) /* U+2070-U+209F */ - /* Bit 33 Currency Symbols */ -#define TT_UCR_CURRENCY_SYMBOLS (1L << 1) /* U+20A0-U+20CF */ - /* Bit 34 Combining Diacritical Marks For Symbols */ -#define TT_UCR_COMBINING_DIACRITICS_SYMB (1L << 2) /* U+20D0-U+20FF */ - /* Bit 35 Letterlike Symbols */ -#define TT_UCR_LETTERLIKE_SYMBOLS (1L << 3) /* U+2100-U+214F */ - /* Bit 36 Number Forms */ -#define TT_UCR_NUMBER_FORMS (1L << 4) /* U+2150-U+218F */ - /* Bit 37 Arrows */ - /* Supplemental Arrows-A */ - /* Supplemental Arrows-B */ - /* Miscellaneous Symbols and Arrows */ -#define TT_UCR_ARROWS (1L << 5) /* U+2190-U+21FF */ - /* U+27F0-U+27FF */ - /* U+2900-U+297F */ - /* U+2B00-U+2BFF */ - /* Bit 38 Mathematical Operators */ - /* Supplemental Mathematical Operators */ - /* Miscellaneous Mathematical Symbols-A */ - /* Miscellaneous Mathematical Symbols-B */ -#define TT_UCR_MATHEMATICAL_OPERATORS (1L << 6) /* U+2200-U+22FF */ - /* U+2A00-U+2AFF */ - /* U+27C0-U+27EF */ - /* U+2980-U+29FF */ - /* Bit 39 Miscellaneous Technical */ -#define TT_UCR_MISCELLANEOUS_TECHNICAL (1L << 7) /* U+2300-U+23FF */ - /* Bit 40 Control Pictures */ -#define TT_UCR_CONTROL_PICTURES (1L << 8) /* U+2400-U+243F */ - /* Bit 41 Optical Character Recognition */ -#define TT_UCR_OCR (1L << 9) /* U+2440-U+245F */ - /* Bit 42 Enclosed Alphanumerics */ -#define TT_UCR_ENCLOSED_ALPHANUMERICS (1L << 10) /* U+2460-U+24FF */ - /* Bit 43 Box Drawing */ -#define TT_UCR_BOX_DRAWING (1L << 11) /* U+2500-U+257F */ - /* Bit 44 Block Elements */ -#define TT_UCR_BLOCK_ELEMENTS (1L << 12) /* U+2580-U+259F */ - /* Bit 45 Geometric Shapes */ -#define TT_UCR_GEOMETRIC_SHAPES (1L << 13) /* U+25A0-U+25FF */ - /* Bit 46 Miscellaneous Symbols */ -#define TT_UCR_MISCELLANEOUS_SYMBOLS (1L << 14) /* U+2600-U+26FF */ - /* Bit 47 Dingbats */ -#define TT_UCR_DINGBATS (1L << 15) /* U+2700-U+27BF */ - /* Bit 48 CJK Symbols and Punctuation */ -#define TT_UCR_CJK_SYMBOLS (1L << 16) /* U+3000-U+303F */ - /* Bit 49 Hiragana */ -#define TT_UCR_HIRAGANA (1L << 17) /* U+3040-U+309F */ - /* Bit 50 Katakana */ - /* Katakana Phonetic Extensions */ -#define TT_UCR_KATAKANA (1L << 18) /* U+30A0-U+30FF */ - /* U+31F0-U+31FF */ - /* Bit 51 Bopomofo */ - /* Bopomofo Extended */ -#define TT_UCR_BOPOMOFO (1L << 19) /* U+3100-U+312F */ - /* U+31A0-U+31BF */ - /* Bit 52 Hangul Compatibility Jamo */ -#define TT_UCR_HANGUL_COMPATIBILITY_JAMO (1L << 20) /* U+3130-U+318F */ - /* Bit 53 Phags-Pa */ -#define TT_UCR_CJK_MISC (1L << 21) /* U+A840-U+A87F */ -#define TT_UCR_KANBUN TT_UCR_CJK_MISC /* deprecated */ -#define TT_UCR_PHAGSPA - /* Bit 54 Enclosed CJK Letters and Months */ -#define TT_UCR_ENCLOSED_CJK_LETTERS_MONTHS (1L << 22) /* U+3200-U+32FF */ - /* Bit 55 CJK Compatibility */ -#define TT_UCR_CJK_COMPATIBILITY (1L << 23) /* U+3300-U+33FF */ - /* Bit 56 Hangul Syllables */ -#define TT_UCR_HANGUL (1L << 24) /* U+AC00-U+D7A3 */ - /* Bit 57 High Surrogates */ - /* High Private Use Surrogates */ - /* Low Surrogates */ - /* */ - /* According to OpenType specs v.1.3+, */ - /* setting bit 57 implies that there is */ - /* at least one codepoint beyond the */ - /* Basic Multilingual Plane that is */ - /* supported by this font. So it really */ - /* means >= U+10000 */ -#define TT_UCR_SURROGATES (1L << 25) /* U+D800-U+DB7F */ - /* U+DB80-U+DBFF */ - /* U+DC00-U+DFFF */ -#define TT_UCR_NON_PLANE_0 TT_UCR_SURROGATES - /* Bit 58 Phoenician */ -#define TT_UCR_PHOENICIAN (1L << 26) /*U+10900-U+1091F*/ - /* Bit 59 CJK Unified Ideographs */ - /* CJK Radicals Supplement */ - /* Kangxi Radicals */ - /* Ideographic Description Characters */ - /* CJK Unified Ideographs Extension A */ - /* CJK Unified Ideographs Extension B */ - /* Kanbun */ -#define TT_UCR_CJK_UNIFIED_IDEOGRAPHS (1L << 27) /* U+4E00-U+9FFF */ - /* U+2E80-U+2EFF */ - /* U+2F00-U+2FDF */ - /* U+2FF0-U+2FFF */ - /* U+3400-U+4DB5 */ - /*U+20000-U+2A6DF*/ - /* U+3190-U+319F */ - /* Bit 60 Private Use */ -#define TT_UCR_PRIVATE_USE (1L << 28) /* U+E000-U+F8FF */ - /* Bit 61 CJK Strokes */ - /* CJK Compatibility Ideographs */ - /* CJK Compatibility Ideographs Supplement */ -#define TT_UCR_CJK_COMPATIBILITY_IDEOGRAPHS (1L << 29) /* U+31C0-U+31EF */ - /* U+F900-U+FAFF */ - /*U+2F800-U+2FA1F*/ - /* Bit 62 Alphabetic Presentation Forms */ -#define TT_UCR_ALPHABETIC_PRESENTATION_FORMS (1L << 30) /* U+FB00-U+FB4F */ - /* Bit 63 Arabic Presentation Forms-A */ -#define TT_UCR_ARABIC_PRESENTATIONS_A (1L << 31) /* U+FB50-U+FDFF */ - /* Bit 64 Combining Half Marks */ -#define TT_UCR_COMBINING_HALF_MARKS (1L << 0) /* U+FE20-U+FE2F */ - /* Bit 65 Vertical forms */ - /* CJK Compatibility Forms */ -#define TT_UCR_CJK_COMPATIBILITY_FORMS (1L << 1) /* U+FE10-U+FE1F */ - /* U+FE30-U+FE4F */ - /* Bit 66 Small Form Variants */ -#define TT_UCR_SMALL_FORM_VARIANTS (1L << 2) /* U+FE50-U+FE6F */ - /* Bit 67 Arabic Presentation Forms-B */ -#define TT_UCR_ARABIC_PRESENTATIONS_B (1L << 3) /* U+FE70-U+FEFE */ - /* Bit 68 Halfwidth and Fullwidth Forms */ -#define TT_UCR_HALFWIDTH_FULLWIDTH_FORMS (1L << 4) /* U+FF00-U+FFEF */ - /* Bit 69 Specials */ -#define TT_UCR_SPECIALS (1L << 5) /* U+FFF0-U+FFFD */ - /* Bit 70 Tibetan */ -#define TT_UCR_TIBETAN (1L << 6) /* U+0F00-U+0FFF */ - /* Bit 71 Syriac */ -#define TT_UCR_SYRIAC (1L << 7) /* U+0700-U+074F */ - /* Bit 72 Thaana */ -#define TT_UCR_THAANA (1L << 8) /* U+0780-U+07BF */ - /* Bit 73 Sinhala */ -#define TT_UCR_SINHALA (1L << 9) /* U+0D80-U+0DFF */ - /* Bit 74 Myanmar */ -#define TT_UCR_MYANMAR (1L << 10) /* U+1000-U+109F */ - /* Bit 75 Ethiopic */ - /* Ethiopic Supplement */ - /* Ethiopic Extended */ -#define TT_UCR_ETHIOPIC (1L << 11) /* U+1200-U+137F */ - /* U+1380-U+139F */ - /* U+2D80-U+2DDF */ - /* Bit 76 Cherokee */ -#define TT_UCR_CHEROKEE (1L << 12) /* U+13A0-U+13FF */ - /* Bit 77 Unified Canadian Aboriginal Syllabics */ -#define TT_UCR_CANADIAN_ABORIGINAL_SYLLABICS (1L << 13) /* U+1400-U+167F */ - /* Bit 78 Ogham */ -#define TT_UCR_OGHAM (1L << 14) /* U+1680-U+169F */ - /* Bit 79 Runic */ -#define TT_UCR_RUNIC (1L << 15) /* U+16A0-U+16FF */ - /* Bit 80 Khmer */ - /* Khmer Symbols */ -#define TT_UCR_KHMER (1L << 16) /* U+1780-U+17FF */ - /* U+19E0-U+19FF */ - /* Bit 81 Mongolian */ -#define TT_UCR_MONGOLIAN (1L << 17) /* U+1800-U+18AF */ - /* Bit 82 Braille Patterns */ -#define TT_UCR_BRAILLE (1L << 18) /* U+2800-U+28FF */ - /* Bit 83 Yi Syllables */ - /* Yi Radicals */ -#define TT_UCR_YI (1L << 19) /* U+A000-U+A48F */ - /* U+A490-U+A4CF */ - /* Bit 84 Tagalog */ - /* Hanunoo */ - /* Buhid */ - /* Tagbanwa */ -#define TT_UCR_PHILIPPINE (1L << 20) /* U+1700-U+171F */ - /* U+1720-U+173F */ - /* U+1740-U+175F */ - /* U+1760-U+177F */ - /* Bit 85 Old Italic */ -#define TT_UCR_OLD_ITALIC (1L << 21) /*U+10300-U+1032F*/ - /* Bit 86 Gothic */ -#define TT_UCR_GOTHIC (1L << 22) /*U+10330-U+1034F*/ - /* Bit 87 Deseret */ -#define TT_UCR_DESERET (1L << 23) /*U+10400-U+1044F*/ - /* Bit 88 Byzantine Musical Symbols */ - /* Musical Symbols */ - /* Ancient Greek Musical Notation */ -#define TT_UCR_MUSICAL_SYMBOLS (1L << 24) /*U+1D000-U+1D0FF*/ - /*U+1D100-U+1D1FF*/ - /*U+1D200-U+1D24F*/ - /* Bit 89 Mathematical Alphanumeric Symbols */ -#define TT_UCR_MATH_ALPHANUMERIC_SYMBOLS (1L << 25) /*U+1D400-U+1D7FF*/ - /* Bit 90 Private Use (plane 15) */ - /* Private Use (plane 16) */ -#define TT_UCR_PRIVATE_USE_SUPPLEMENTARY (1L << 26) /*U+F0000-U+FFFFD*/ - /*U+100000-U+10FFFD*/ - /* Bit 91 Variation Selectors */ - /* Variation Selectors Supplement */ -#define TT_UCR_VARIATION_SELECTORS (1L << 27) /* U+FE00-U+FE0F */ - /*U+E0100-U+E01EF*/ - /* Bit 92 Tags */ -#define TT_UCR_TAGS (1L << 28) /*U+E0000-U+E007F*/ - /* Bit 93 Limbu */ -#define TT_UCR_LIMBU (1L << 29) /* U+1900-U+194F */ - /* Bit 94 Tai Le */ -#define TT_UCR_TAI_LE (1L << 30) /* U+1950-U+197F */ - /* Bit 95 New Tai Lue */ -#define TT_UCR_NEW_TAI_LUE (1L << 31) /* U+1980-U+19DF */ - /* Bit 96 Buginese */ -#define TT_UCR_BUGINESE (1L << 0) /* U+1A00-U+1A1F */ - /* Bit 97 Glagolitic */ -#define TT_UCR_GLAGOLITIC (1L << 1) /* U+2C00-U+2C5F */ - /* Bit 98 Tifinagh */ -#define TT_UCR_TIFINAGH (1L << 2) /* U+2D30-U+2D7F */ - /* Bit 99 Yijing Hexagram Symbols */ -#define TT_UCR_YIJING (1L << 3) /* U+4DC0-U+4DFF */ - /* Bit 100 Syloti Nagri */ -#define TT_UCR_SYLOTI_NAGRI (1L << 4) /* U+A800-U+A82F */ - /* Bit 101 Linear B Syllabary */ - /* Linear B Ideograms */ - /* Aegean Numbers */ -#define TT_UCR_LINEAR_B (1L << 5) /*U+10000-U+1007F*/ - /*U+10080-U+100FF*/ - /*U+10100-U+1013F*/ - /* Bit 102 Ancient Greek Numbers */ -#define TT_UCR_ANCIENT_GREEK_NUMBERS (1L << 6) /*U+10140-U+1018F*/ - /* Bit 103 Ugaritic */ -#define TT_UCR_UGARITIC (1L << 7) /*U+10380-U+1039F*/ - /* Bit 104 Old Persian */ -#define TT_UCR_OLD_PERSIAN (1L << 8) /*U+103A0-U+103DF*/ - /* Bit 105 Shavian */ -#define TT_UCR_SHAVIAN (1L << 9) /*U+10450-U+1047F*/ - /* Bit 106 Osmanya */ -#define TT_UCR_OSMANYA (1L << 10) /*U+10480-U+104AF*/ - /* Bit 107 Cypriot Syllabary */ -#define TT_UCR_CYPRIOT_SYLLABARY (1L << 11) /*U+10800-U+1083F*/ - /* Bit 108 Kharoshthi */ -#define TT_UCR_KHAROSHTHI (1L << 12) /*U+10A00-U+10A5F*/ - /* Bit 109 Tai Xuan Jing Symbols */ -#define TT_UCR_TAI_XUAN_JING (1L << 13) /*U+1D300-U+1D35F*/ - /* Bit 110 Cuneiform */ - /* Cuneiform Numbers and Punctuation */ -#define TT_UCR_CUNEIFORM (1L << 14) /*U+12000-U+123FF*/ - /*U+12400-U+1247F*/ - /* Bit 111 Counting Rod Numerals */ -#define TT_UCR_COUNTING_ROD_NUMERALS (1L << 15) /*U+1D360-U+1D37F*/ - /* Bit 112 Sundanese */ -#define TT_UCR_SUNDANESE (1L << 16) /* U+1B80-U+1BBF */ - /* Bit 113 Lepcha */ -#define TT_UCR_LEPCHA (1L << 17) /* U+1C00-U+1C4F */ - /* Bit 114 Ol Chiki */ -#define TT_UCR_OL_CHIKI (1L << 18) /* U+1C50-U+1C7F */ - /* Bit 115 Saurashtra */ -#define TT_UCR_SAURASHTRA (1L << 19) /* U+A880-U+A8DF */ - /* Bit 116 Kayah Li */ -#define TT_UCR_KAYAH_LI (1L << 20) /* U+A900-U+A92F */ - /* Bit 117 Rejang */ -#define TT_UCR_REJANG (1L << 21) /* U+A930-U+A95F */ - /* Bit 118 Cham */ -#define TT_UCR_CHAM (1L << 22) /* U+AA00-U+AA5F */ - /* Bit 119 Ancient Symbols */ -#define TT_UCR_ANCIENT_SYMBOLS (1L << 23) /*U+10190-U+101CF*/ - /* Bit 120 Phaistos Disc */ -#define TT_UCR_PHAISTOS_DISC (1L << 24) /*U+101D0-U+101FF*/ - /* Bit 121 Carian */ - /* Lycian */ - /* Lydian */ -#define TT_UCR_OLD_ANATOLIAN (1L << 25) /*U+102A0-U+102DF*/ - /*U+10280-U+1029F*/ - /*U+10920-U+1093F*/ - /* Bit 122 Domino Tiles */ - /* Mahjong Tiles */ -#define TT_UCR_GAME_TILES (1L << 26) /*U+1F030-U+1F09F*/ - /*U+1F000-U+1F02F*/ - /* Bit 123-127 Reserved for process-internal usage */ - - - /*************************************************************************/ - /* */ - /* Some compilers have a very limited length of identifiers. */ - /* */ -#if defined( __TURBOC__ ) && __TURBOC__ < 0x0410 || defined( __PACIFIC__ ) -#define HAVE_LIMIT_ON_IDENTS -#endif - - -#ifndef HAVE_LIMIT_ON_IDENTS - - - /*************************************************************************/ - /* */ - /* Here some alias #defines in order to be clearer. */ - /* */ - /* These are not always #defined to stay within the 31~character limit, */ - /* which some compilers have. */ - /* */ - /* Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern */ - /* Borland compilers (read: from BC++ 3.1 on) can increase this limit. */ - /* If you get a warning with such a compiler, use the -i40 switch. */ - /* */ -#define TT_UCR_ARABIC_PRESENTATION_FORMS_A \ - TT_UCR_ARABIC_PRESENTATIONS_A -#define TT_UCR_ARABIC_PRESENTATION_FORMS_B \ - TT_UCR_ARABIC_PRESENTATIONS_B - -#define TT_UCR_COMBINING_DIACRITICAL_MARKS \ - TT_UCR_COMBINING_DIACRITICS -#define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \ - TT_UCR_COMBINING_DIACRITICS_SYMB - - -#endif /* !HAVE_LIMIT_ON_IDENTS */ - - -FT_END_HEADER - -#endif /* __TTNAMEID_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/tttables.h b/lib/windows/include/freetype/tttables.h deleted file mode 100644 index 1568f40..0000000 --- a/lib/windows/include/freetype/tttables.h +++ /dev/null @@ -1,829 +0,0 @@ -/***************************************************************************/ -/* */ -/* tttables.h */ -/* */ -/* Basic SFNT/TrueType tables definitions and interface */ -/* (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTTABLES_H__ -#define __TTTABLES_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* <Section> */ - /* truetype_tables */ - /* */ - /* <Title> */ - /* TrueType Tables */ - /* */ - /* <Abstract> */ - /* TrueType specific table types and functions. */ - /* */ - /* <Description> */ - /* This section contains the definition of TrueType-specific tables */ - /* as well as some routines used to access and process them. */ - /* */ - /* <Order> */ - /* TT_Header */ - /* TT_HoriHeader */ - /* TT_VertHeader */ - /* TT_OS2 */ - /* TT_Postscript */ - /* TT_PCLT */ - /* TT_MaxProfile */ - /* */ - /* FT_Sfnt_Tag */ - /* FT_Get_Sfnt_Table */ - /* FT_Load_Sfnt_Table */ - /* FT_Sfnt_Table_Info */ - /* */ - /* FT_Get_CMap_Language_ID */ - /* FT_Get_CMap_Format */ - /* */ - /* FT_PARAM_TAG_UNPATENTED_HINTING */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Header */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType font header table. All */ - /* fields follow the TrueType specification. */ - /* */ - typedef struct TT_Header_ - { - FT_Fixed Table_Version; - FT_Fixed Font_Revision; - - FT_Long CheckSum_Adjust; - FT_Long Magic_Number; - - FT_UShort Flags; - FT_UShort Units_Per_EM; - - FT_Long Created [2]; - FT_Long Modified[2]; - - FT_Short xMin; - FT_Short yMin; - FT_Short xMax; - FT_Short yMax; - - FT_UShort Mac_Style; - FT_UShort Lowest_Rec_PPEM; - - FT_Short Font_Direction; - FT_Short Index_To_Loc_Format; - FT_Short Glyph_Data_Format; - - } TT_Header; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_HoriHeader */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType horizontal header, the `hhea' */ - /* table, as well as the corresponding horizontal metrics table, */ - /* i.e., the `hmtx' table. */ - /* */ - /* <Fields> */ - /* Version :: The table version. */ - /* */ - /* Ascender :: The font's ascender, i.e., the distance */ - /* from the baseline to the top-most of all */ - /* glyph points found in the font. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of the */ - /* glyphs found in the font (maybe ASCII). */ - /* */ - /* You should use the `sTypoAscender' field */ - /* of the OS/2 table instead if you want */ - /* the correct one. */ - /* */ - /* Descender :: The font's descender, i.e., the distance */ - /* from the baseline to the bottom-most of */ - /* all glyph points found in the font. It */ - /* is negative. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of the */ - /* glyphs found in the font (maybe ASCII). */ - /* */ - /* You should use the `sTypoDescender' */ - /* field of the OS/2 table instead if you */ - /* want the correct one. */ - /* */ - /* Line_Gap :: The font's line gap, i.e., the distance */ - /* to add to the ascender and descender to */ - /* get the BTB, i.e., the */ - /* baseline-to-baseline distance for the */ - /* font. */ - /* */ - /* advance_Width_Max :: This field is the maximum of all advance */ - /* widths found in the font. It can be */ - /* used to compute the maximum width of an */ - /* arbitrary string of text. */ - /* */ - /* min_Left_Side_Bearing :: The minimum left side bearing of all */ - /* glyphs within the font. */ - /* */ - /* min_Right_Side_Bearing :: The minimum right side bearing of all */ - /* glyphs within the font. */ - /* */ - /* xMax_Extent :: The maximum horizontal extent (i.e., the */ - /* `width' of a glyph's bounding box) for */ - /* all glyphs in the font. */ - /* */ - /* caret_Slope_Rise :: The rise coefficient of the cursor's */ - /* slope of the cursor (slope=rise/run). */ - /* */ - /* caret_Slope_Run :: The run coefficient of the cursor's */ - /* slope. */ - /* */ - /* Reserved :: 8~reserved bytes. */ - /* */ - /* metric_Data_Format :: Always~0. */ - /* */ - /* number_Of_HMetrics :: Number of HMetrics entries in the `hmtx' */ - /* table -- this value can be smaller than */ - /* the total number of glyphs in the font. */ - /* */ - /* long_metrics :: A pointer into the `hmtx' table. */ - /* */ - /* short_metrics :: A pointer into the `hmtx' table. */ - /* */ - /* <Note> */ - /* IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should */ - /* be identical except for the names of their fields, */ - /* which are different. */ - /* */ - /* This ensures that a single function in the `ttload' */ - /* module is able to read both the horizontal and vertical */ - /* headers. */ - /* */ - typedef struct TT_HoriHeader_ - { - FT_Fixed Version; - FT_Short Ascender; - FT_Short Descender; - FT_Short Line_Gap; - - FT_UShort advance_Width_Max; /* advance width maximum */ - - FT_Short min_Left_Side_Bearing; /* minimum left-sb */ - FT_Short min_Right_Side_Bearing; /* minimum right-sb */ - FT_Short xMax_Extent; /* xmax extents */ - FT_Short caret_Slope_Rise; - FT_Short caret_Slope_Run; - FT_Short caret_Offset; - - FT_Short Reserved[4]; - - FT_Short metric_Data_Format; - FT_UShort number_Of_HMetrics; - - /* The following fields are not defined by the TrueType specification */ - /* but they are used to connect the metrics header to the relevant */ - /* `HMTX' table. */ - - void* long_metrics; - void* short_metrics; - - } TT_HoriHeader; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_VertHeader */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType vertical header, the `vhea' */ - /* table, as well as the corresponding vertical metrics table, i.e., */ - /* the `vmtx' table. */ - /* */ - /* <Fields> */ - /* Version :: The table version. */ - /* */ - /* Ascender :: The font's ascender, i.e., the distance */ - /* from the baseline to the top-most of */ - /* all glyph points found in the font. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of */ - /* the glyphs found in the font (maybe */ - /* ASCII). */ - /* */ - /* You should use the `sTypoAscender' */ - /* field of the OS/2 table instead if you */ - /* want the correct one. */ - /* */ - /* Descender :: The font's descender, i.e., the */ - /* distance from the baseline to the */ - /* bottom-most of all glyph points found */ - /* in the font. It is negative. */ - /* */ - /* This value is invalid in many fonts, as */ - /* it is usually set by the font designer, */ - /* and often reflects only a portion of */ - /* the glyphs found in the font (maybe */ - /* ASCII). */ - /* */ - /* You should use the `sTypoDescender' */ - /* field of the OS/2 table instead if you */ - /* want the correct one. */ - /* */ - /* Line_Gap :: The font's line gap, i.e., the distance */ - /* to add to the ascender and descender to */ - /* get the BTB, i.e., the */ - /* baseline-to-baseline distance for the */ - /* font. */ - /* */ - /* advance_Height_Max :: This field is the maximum of all */ - /* advance heights found in the font. It */ - /* can be used to compute the maximum */ - /* height of an arbitrary string of text. */ - /* */ - /* min_Top_Side_Bearing :: The minimum top side bearing of all */ - /* glyphs within the font. */ - /* */ - /* min_Bottom_Side_Bearing :: The minimum bottom side bearing of all */ - /* glyphs within the font. */ - /* */ - /* yMax_Extent :: The maximum vertical extent (i.e., the */ - /* `height' of a glyph's bounding box) for */ - /* all glyphs in the font. */ - /* */ - /* caret_Slope_Rise :: The rise coefficient of the cursor's */ - /* slope of the cursor (slope=rise/run). */ - /* */ - /* caret_Slope_Run :: The run coefficient of the cursor's */ - /* slope. */ - /* */ - /* caret_Offset :: The cursor's offset for slanted fonts. */ - /* This value is `reserved' in vmtx */ - /* version 1.0. */ - /* */ - /* Reserved :: 8~reserved bytes. */ - /* */ - /* metric_Data_Format :: Always~0. */ - /* */ - /* number_Of_HMetrics :: Number of VMetrics entries in the */ - /* `vmtx' table -- this value can be */ - /* smaller than the total number of glyphs */ - /* in the font. */ - /* */ - /* long_metrics :: A pointer into the `vmtx' table. */ - /* */ - /* short_metrics :: A pointer into the `vmtx' table. */ - /* */ - /* <Note> */ - /* IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should */ - /* be identical except for the names of their fields, */ - /* which are different. */ - /* */ - /* This ensures that a single function in the `ttload' */ - /* module is able to read both the horizontal and vertical */ - /* headers. */ - /* */ - typedef struct TT_VertHeader_ - { - FT_Fixed Version; - FT_Short Ascender; - FT_Short Descender; - FT_Short Line_Gap; - - FT_UShort advance_Height_Max; /* advance height maximum */ - - FT_Short min_Top_Side_Bearing; /* minimum left-sb or top-sb */ - FT_Short min_Bottom_Side_Bearing; /* minimum right-sb or bottom-sb */ - FT_Short yMax_Extent; /* xmax or ymax extents */ - FT_Short caret_Slope_Rise; - FT_Short caret_Slope_Run; - FT_Short caret_Offset; - - FT_Short Reserved[4]; - - FT_Short metric_Data_Format; - FT_UShort number_Of_VMetrics; - - /* The following fields are not defined by the TrueType specification */ - /* but they're used to connect the metrics header to the relevant */ - /* `HMTX' or `VMTX' table. */ - - void* long_metrics; - void* short_metrics; - - } TT_VertHeader; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_OS2 */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType OS/2 table. All fields */ - /* comply to the OpenType specification. */ - /* */ - /* Note that we now support old Mac fonts that do not include an OS/2 */ - /* table. In this case, the `version' field is always set to 0xFFFF. */ - /* */ - typedef struct TT_OS2_ - { - FT_UShort version; /* 0x0001 - more or 0xFFFF */ - FT_Short xAvgCharWidth; - FT_UShort usWeightClass; - FT_UShort usWidthClass; - FT_UShort fsType; - FT_Short ySubscriptXSize; - FT_Short ySubscriptYSize; - FT_Short ySubscriptXOffset; - FT_Short ySubscriptYOffset; - FT_Short ySuperscriptXSize; - FT_Short ySuperscriptYSize; - FT_Short ySuperscriptXOffset; - FT_Short ySuperscriptYOffset; - FT_Short yStrikeoutSize; - FT_Short yStrikeoutPosition; - FT_Short sFamilyClass; - - FT_Byte panose[10]; - - FT_ULong ulUnicodeRange1; /* Bits 0-31 */ - FT_ULong ulUnicodeRange2; /* Bits 32-63 */ - FT_ULong ulUnicodeRange3; /* Bits 64-95 */ - FT_ULong ulUnicodeRange4; /* Bits 96-127 */ - - FT_Char achVendID[4]; - - FT_UShort fsSelection; - FT_UShort usFirstCharIndex; - FT_UShort usLastCharIndex; - FT_Short sTypoAscender; - FT_Short sTypoDescender; - FT_Short sTypoLineGap; - FT_UShort usWinAscent; - FT_UShort usWinDescent; - - /* only version 1 and higher: */ - - FT_ULong ulCodePageRange1; /* Bits 0-31 */ - FT_ULong ulCodePageRange2; /* Bits 32-63 */ - - /* only version 2 and higher: */ - - FT_Short sxHeight; - FT_Short sCapHeight; - FT_UShort usDefaultChar; - FT_UShort usBreakChar; - FT_UShort usMaxContext; - - /* only version 5 and higher: */ - - FT_UShort usLowerOpticalPointSize; /* in twips (1/20th points) */ - FT_UShort usUpperOpticalPointSize; /* in twips (1/20th points) */ - - } TT_OS2; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_Postscript */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType PostScript table. All fields */ - /* comply to the TrueType specification. This structure does not */ - /* reference the PostScript glyph names, which can be nevertheless */ - /* accessed with the `ttpost' module. */ - /* */ - typedef struct TT_Postscript_ - { - FT_Fixed FormatType; - FT_Fixed italicAngle; - FT_Short underlinePosition; - FT_Short underlineThickness; - FT_ULong isFixedPitch; - FT_ULong minMemType42; - FT_ULong maxMemType42; - FT_ULong minMemType1; - FT_ULong maxMemType1; - - /* Glyph names follow in the file, but we don't */ - /* load them by default. See the ttpost.c file. */ - - } TT_Postscript; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_PCLT */ - /* */ - /* <Description> */ - /* A structure used to model a TrueType PCLT table. All fields */ - /* comply to the TrueType specification. */ - /* */ - typedef struct TT_PCLT_ - { - FT_Fixed Version; - FT_ULong FontNumber; - FT_UShort Pitch; - FT_UShort xHeight; - FT_UShort Style; - FT_UShort TypeFamily; - FT_UShort CapHeight; - FT_UShort SymbolSet; - FT_Char TypeFace[16]; - FT_Char CharacterComplement[8]; - FT_Char FileName[6]; - FT_Char StrokeWeight; - FT_Char WidthType; - FT_Byte SerifStyle; - FT_Byte Reserved; - - } TT_PCLT; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* TT_MaxProfile */ - /* */ - /* <Description> */ - /* The maximum profile is a table containing many max values, which */ - /* can be used to pre-allocate arrays. This ensures that no memory */ - /* allocation occurs during a glyph load. */ - /* */ - /* <Fields> */ - /* version :: The version number. */ - /* */ - /* numGlyphs :: The number of glyphs in this TrueType */ - /* font. */ - /* */ - /* maxPoints :: The maximum number of points in a */ - /* non-composite TrueType glyph. See also */ - /* the structure element */ - /* `maxCompositePoints'. */ - /* */ - /* maxContours :: The maximum number of contours in a */ - /* non-composite TrueType glyph. See also */ - /* the structure element */ - /* `maxCompositeContours'. */ - /* */ - /* maxCompositePoints :: The maximum number of points in a */ - /* composite TrueType glyph. See also the */ - /* structure element `maxPoints'. */ - /* */ - /* maxCompositeContours :: The maximum number of contours in a */ - /* composite TrueType glyph. See also the */ - /* structure element `maxContours'. */ - /* */ - /* maxZones :: The maximum number of zones used for */ - /* glyph hinting. */ - /* */ - /* maxTwilightPoints :: The maximum number of points in the */ - /* twilight zone used for glyph hinting. */ - /* */ - /* maxStorage :: The maximum number of elements in the */ - /* storage area used for glyph hinting. */ - /* */ - /* maxFunctionDefs :: The maximum number of function */ - /* definitions in the TrueType bytecode for */ - /* this font. */ - /* */ - /* maxInstructionDefs :: The maximum number of instruction */ - /* definitions in the TrueType bytecode for */ - /* this font. */ - /* */ - /* maxStackElements :: The maximum number of stack elements used */ - /* during bytecode interpretation. */ - /* */ - /* maxSizeOfInstructions :: The maximum number of TrueType opcodes */ - /* used for glyph hinting. */ - /* */ - /* maxComponentElements :: The maximum number of simple (i.e., non- */ - /* composite) glyphs in a composite glyph. */ - /* */ - /* maxComponentDepth :: The maximum nesting depth of composite */ - /* glyphs. */ - /* */ - /* <Note> */ - /* This structure is only used during font loading. */ - /* */ - typedef struct TT_MaxProfile_ - { - FT_Fixed version; - FT_UShort numGlyphs; - FT_UShort maxPoints; - FT_UShort maxContours; - FT_UShort maxCompositePoints; - FT_UShort maxCompositeContours; - FT_UShort maxZones; - FT_UShort maxTwilightPoints; - FT_UShort maxStorage; - FT_UShort maxFunctionDefs; - FT_UShort maxInstructionDefs; - FT_UShort maxStackElements; - FT_UShort maxSizeOfInstructions; - FT_UShort maxComponentElements; - FT_UShort maxComponentDepth; - - } TT_MaxProfile; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* FT_Sfnt_Tag */ - /* */ - /* <Description> */ - /* An enumeration used to specify the index of an SFNT table. */ - /* Used in the @FT_Get_Sfnt_Table API function. */ - /* */ - /* <Values> */ - /* FT_SFNT_HEAD :: To access the font's @TT_Header structure. */ - /* */ - /* FT_SFNT_MAXP :: To access the font's @TT_MaxProfile structure. */ - /* */ - /* FT_SFNT_OS2 :: To access the font's @TT_OS2 structure. */ - /* */ - /* FT_SFNT_HHEA :: To access the font's @TT_HoriHeader structure. */ - /* */ - /* FT_SFNT_VHEA :: To access the font's @TT_VertHeader struture. */ - /* */ - /* FT_SFNT_POST :: To access the font's @TT_Postscript structure. */ - /* */ - /* FT_SFNT_PCLT :: To access the font's @TT_PCLT structure. */ - /* */ - typedef enum FT_Sfnt_Tag_ - { - FT_SFNT_HEAD, - FT_SFNT_MAXP, - FT_SFNT_OS2, - FT_SFNT_HHEA, - FT_SFNT_VHEA, - FT_SFNT_POST, - FT_SFNT_PCLT, - - FT_SFNT_MAX - - } FT_Sfnt_Tag; - - /* these constants are deprecated; use the corresponding `FT_Sfnt_Tag' */ - /* values instead */ -#define ft_sfnt_head FT_SFNT_HEAD -#define ft_sfnt_maxp FT_SFNT_MAXP -#define ft_sfnt_os2 FT_SFNT_OS2 -#define ft_sfnt_hhea FT_SFNT_HHEA -#define ft_sfnt_vhea FT_SFNT_VHEA -#define ft_sfnt_post FT_SFNT_POST -#define ft_sfnt_pclt FT_SFNT_PCLT - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_Sfnt_Table */ - /* */ - /* <Description> */ - /* Return a pointer to a given SFNT table within a face. */ - /* */ - /* <Input> */ - /* face :: A handle to the source. */ - /* */ - /* tag :: The index of the SFNT table. */ - /* */ - /* <Return> */ - /* A type-less pointer to the table. This will be~0 in case of */ - /* error, or if the corresponding table was not found *OR* loaded */ - /* from the file. */ - /* */ - /* Use a typecast according to `tag' to access the structure */ - /* elements. */ - /* */ - /* <Note> */ - /* The table is owned by the face object and disappears with it. */ - /* */ - /* This function is only useful to access SFNT tables that are loaded */ - /* by the sfnt, truetype, and opentype drivers. See @FT_Sfnt_Tag for */ - /* a list. */ - /* */ - /* Here an example how to access the `vhea' table: */ - /* */ - /* { */ - /* TT_VertHeader* vert_header; */ - /* */ - /* */ - /* vert_header = */ - /* (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA ); */ - /* } */ - /* */ - FT_EXPORT( void* ) - FT_Get_Sfnt_Table( FT_Face face, - FT_Sfnt_Tag tag ); - - - /************************************************************************** - * - * @function: - * FT_Load_Sfnt_Table - * - * @description: - * Load any font table into client memory. - * - * @input: - * face :: - * A handle to the source face. - * - * tag :: - * The four-byte tag of the table to load. Use the value~0 if you want - * to access the whole font file. Otherwise, you can use one of the - * definitions found in the @FT_TRUETYPE_TAGS_H file, or forge a new - * one with @FT_MAKE_TAG. - * - * offset :: - * The starting offset in the table (or file if tag == 0). - * - * @output: - * buffer :: - * The target buffer address. The client must ensure that the memory - * array is big enough to hold the data. - * - * @inout: - * length :: - * If the `length' parameter is NULL, then try to load the whole table. - * Return an error code if it fails. - * - * Else, if `*length' is~0, exit immediately while returning the - * table's (or file) full size in it. - * - * Else the number of bytes to read from the table or file, from the - * starting offset. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If you need to determine the table's length you should first call this - * function with `*length' set to~0, as in the following example: - * - * { - * FT_ULong length = 0; - * - * - * error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length ); - * if ( error ) { ... table does not exist ... } - * - * buffer = malloc( length ); - * if ( buffer == NULL ) { ... not enough memory ... } - * - * error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &length ); - * if ( error ) { ... could not load table ... } - * } - * - * Note that structures like @TT_Header or @TT_OS2 can't be used with - * this function; they are limited to @FT_Get_Sfnt_Table. Reason is that - * those structures depend on the processor architecture, with varying - * size (e.g. 32bit vs. 64bit) or order (big endian vs. little endian). - * - */ - FT_EXPORT( FT_Error ) - FT_Load_Sfnt_Table( FT_Face face, - FT_ULong tag, - FT_Long offset, - FT_Byte* buffer, - FT_ULong* length ); - - - /************************************************************************** - * - * @function: - * FT_Sfnt_Table_Info - * - * @description: - * Return information on an SFNT table. - * - * @input: - * face :: - * A handle to the source face. - * - * table_index :: - * The index of an SFNT table. The function returns - * FT_Err_Table_Missing for an invalid value. - * - * @inout: - * tag :: - * The name tag of the SFNT table. If the value is NULL, `table_index' - * is ignored, and `length' returns the number of SFNT tables in the - * font. - * - * @output: - * length :: - * The length of the SFNT table (or the number of SFNT tables, depending - * on `tag'). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * While parsing fonts, FreeType handles SFNT tables with length zero as - * missing. - * - */ - FT_EXPORT( FT_Error ) - FT_Sfnt_Table_Info( FT_Face face, - FT_UInt table_index, - FT_ULong *tag, - FT_ULong *length ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_CMap_Language_ID */ - /* */ - /* <Description> */ - /* Return TrueType/sfnt specific cmap language ID. Definitions of */ - /* language ID values are in `ttnameid.h'. */ - /* */ - /* <Input> */ - /* charmap :: */ - /* The target charmap. */ - /* */ - /* <Return> */ - /* The language ID of `charmap'. If `charmap' doesn't belong to a */ - /* TrueType/sfnt face, just return~0 as the default value. */ - /* */ - /* For a format~14 cmap (to access Unicode IVS), the return value is */ - /* 0xFFFFFFFF. */ - /* */ - FT_EXPORT( FT_ULong ) - FT_Get_CMap_Language_ID( FT_CharMap charmap ); - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* FT_Get_CMap_Format */ - /* */ - /* <Description> */ - /* Return TrueType/sfnt specific cmap format. */ - /* */ - /* <Input> */ - /* charmap :: */ - /* The target charmap. */ - /* */ - /* <Return> */ - /* The format of `charmap'. If `charmap' doesn't belong to a */ - /* TrueType/sfnt face, return -1. */ - /* */ - FT_EXPORT( FT_Long ) - FT_Get_CMap_Format( FT_CharMap charmap ); - - /* */ - - -FT_END_HEADER - -#endif /* __TTTABLES_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/tttags.h b/lib/windows/include/freetype/tttags.h deleted file mode 100644 index 3836c7b..0000000 --- a/lib/windows/include/freetype/tttags.h +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************/ -/* */ -/* tttags.h */ -/* */ -/* Tags for TrueType and OpenType tables (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTAGS_H__ -#define __TTAGS_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - -#define TTAG_avar FT_MAKE_TAG( 'a', 'v', 'a', 'r' ) -#define TTAG_BASE FT_MAKE_TAG( 'B', 'A', 'S', 'E' ) -#define TTAG_bdat FT_MAKE_TAG( 'b', 'd', 'a', 't' ) -#define TTAG_BDF FT_MAKE_TAG( 'B', 'D', 'F', ' ' ) -#define TTAG_bhed FT_MAKE_TAG( 'b', 'h', 'e', 'd' ) -#define TTAG_bloc FT_MAKE_TAG( 'b', 'l', 'o', 'c' ) -#define TTAG_bsln FT_MAKE_TAG( 'b', 's', 'l', 'n' ) -#define TTAG_CBDT FT_MAKE_TAG( 'C', 'B', 'D', 'T' ) -#define TTAG_CBLC FT_MAKE_TAG( 'C', 'B', 'L', 'C' ) -#define TTAG_CFF FT_MAKE_TAG( 'C', 'F', 'F', ' ' ) -#define TTAG_CID FT_MAKE_TAG( 'C', 'I', 'D', ' ' ) -#define TTAG_cmap FT_MAKE_TAG( 'c', 'm', 'a', 'p' ) -#define TTAG_cvar FT_MAKE_TAG( 'c', 'v', 'a', 'r' ) -#define TTAG_cvt FT_MAKE_TAG( 'c', 'v', 't', ' ' ) -#define TTAG_DSIG FT_MAKE_TAG( 'D', 'S', 'I', 'G' ) -#define TTAG_EBDT FT_MAKE_TAG( 'E', 'B', 'D', 'T' ) -#define TTAG_EBLC FT_MAKE_TAG( 'E', 'B', 'L', 'C' ) -#define TTAG_EBSC FT_MAKE_TAG( 'E', 'B', 'S', 'C' ) -#define TTAG_feat FT_MAKE_TAG( 'f', 'e', 'a', 't' ) -#define TTAG_FOND FT_MAKE_TAG( 'F', 'O', 'N', 'D' ) -#define TTAG_fpgm FT_MAKE_TAG( 'f', 'p', 'g', 'm' ) -#define TTAG_fvar FT_MAKE_TAG( 'f', 'v', 'a', 'r' ) -#define TTAG_gasp FT_MAKE_TAG( 'g', 'a', 's', 'p' ) -#define TTAG_GDEF FT_MAKE_TAG( 'G', 'D', 'E', 'F' ) -#define TTAG_glyf FT_MAKE_TAG( 'g', 'l', 'y', 'f' ) -#define TTAG_GPOS FT_MAKE_TAG( 'G', 'P', 'O', 'S' ) -#define TTAG_GSUB FT_MAKE_TAG( 'G', 'S', 'U', 'B' ) -#define TTAG_gvar FT_MAKE_TAG( 'g', 'v', 'a', 'r' ) -#define TTAG_hdmx FT_MAKE_TAG( 'h', 'd', 'm', 'x' ) -#define TTAG_head FT_MAKE_TAG( 'h', 'e', 'a', 'd' ) -#define TTAG_hhea FT_MAKE_TAG( 'h', 'h', 'e', 'a' ) -#define TTAG_hmtx FT_MAKE_TAG( 'h', 'm', 't', 'x' ) -#define TTAG_JSTF FT_MAKE_TAG( 'J', 'S', 'T', 'F' ) -#define TTAG_just FT_MAKE_TAG( 'j', 'u', 's', 't' ) -#define TTAG_kern FT_MAKE_TAG( 'k', 'e', 'r', 'n' ) -#define TTAG_lcar FT_MAKE_TAG( 'l', 'c', 'a', 'r' ) -#define TTAG_loca FT_MAKE_TAG( 'l', 'o', 'c', 'a' ) -#define TTAG_LTSH FT_MAKE_TAG( 'L', 'T', 'S', 'H' ) -#define TTAG_LWFN FT_MAKE_TAG( 'L', 'W', 'F', 'N' ) -#define TTAG_MATH FT_MAKE_TAG( 'M', 'A', 'T', 'H' ) -#define TTAG_maxp FT_MAKE_TAG( 'm', 'a', 'x', 'p' ) -#define TTAG_META FT_MAKE_TAG( 'M', 'E', 'T', 'A' ) -#define TTAG_MMFX FT_MAKE_TAG( 'M', 'M', 'F', 'X' ) -#define TTAG_MMSD FT_MAKE_TAG( 'M', 'M', 'S', 'D' ) -#define TTAG_mort FT_MAKE_TAG( 'm', 'o', 'r', 't' ) -#define TTAG_morx FT_MAKE_TAG( 'm', 'o', 'r', 'x' ) -#define TTAG_name FT_MAKE_TAG( 'n', 'a', 'm', 'e' ) -#define TTAG_opbd FT_MAKE_TAG( 'o', 'p', 'b', 'd' ) -#define TTAG_OS2 FT_MAKE_TAG( 'O', 'S', '/', '2' ) -#define TTAG_OTTO FT_MAKE_TAG( 'O', 'T', 'T', 'O' ) -#define TTAG_PCLT FT_MAKE_TAG( 'P', 'C', 'L', 'T' ) -#define TTAG_POST FT_MAKE_TAG( 'P', 'O', 'S', 'T' ) -#define TTAG_post FT_MAKE_TAG( 'p', 'o', 's', 't' ) -#define TTAG_prep FT_MAKE_TAG( 'p', 'r', 'e', 'p' ) -#define TTAG_prop FT_MAKE_TAG( 'p', 'r', 'o', 'p' ) -#define TTAG_sbix FT_MAKE_TAG( 's', 'b', 'i', 'x' ) -#define TTAG_sfnt FT_MAKE_TAG( 's', 'f', 'n', 't' ) -#define TTAG_SING FT_MAKE_TAG( 'S', 'I', 'N', 'G' ) -#define TTAG_trak FT_MAKE_TAG( 't', 'r', 'a', 'k' ) -#define TTAG_true FT_MAKE_TAG( 't', 'r', 'u', 'e' ) -#define TTAG_ttc FT_MAKE_TAG( 't', 't', 'c', ' ' ) -#define TTAG_ttcf FT_MAKE_TAG( 't', 't', 'c', 'f' ) -#define TTAG_TYP1 FT_MAKE_TAG( 'T', 'Y', 'P', '1' ) -#define TTAG_typ1 FT_MAKE_TAG( 't', 'y', 'p', '1' ) -#define TTAG_VDMX FT_MAKE_TAG( 'V', 'D', 'M', 'X' ) -#define TTAG_vhea FT_MAKE_TAG( 'v', 'h', 'e', 'a' ) -#define TTAG_vmtx FT_MAKE_TAG( 'v', 'm', 't', 'x' ) -#define TTAG_wOFF FT_MAKE_TAG( 'w', 'O', 'F', 'F' ) - - -FT_END_HEADER - -#endif /* __TTAGS_H__ */ - - -/* END */ diff --git a/lib/windows/include/freetype/ttunpat.h b/lib/windows/include/freetype/ttunpat.h deleted file mode 100644 index 8ea5568..0000000 --- a/lib/windows/include/freetype/ttunpat.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************/ -/* */ -/* ttunpat.h */ -/* */ -/* Definitions for the unpatented TrueType hinting system */ -/* */ -/* Copyright 2003-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Written by Graham Asher <graham.asher@btinternet.com> */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __TTUNPAT_H__ -#define __TTUNPAT_H__ - - -#include <ft2build.h> -#include FT_FREETYPE_H - -#ifdef FREETYPE_H -#error "freetype.h of FreeType 1 has been loaded!" -#error "Please fix the directory search order for header files" -#error "so that freetype.h of FreeType 2 is found first." -#endif - - -FT_BEGIN_HEADER - - - /*************************************************************************** - * - * @constant: - * FT_PARAM_TAG_UNPATENTED_HINTING - * - * @description: - * A constant used as the tag of an @FT_Parameter structure to indicate - * that unpatented methods only should be used by the TrueType bytecode - * interpreter for a typeface opened by @FT_Open_Face. - * - */ -#define FT_PARAM_TAG_UNPATENTED_HINTING FT_MAKE_TAG( 'u', 'n', 'p', 'a' ) - - /* */ - - -FT_END_HEADER - - -#endif /* __TTUNPAT_H__ */ - - -/* END */ diff --git a/lib/windows/include/ft2build.h b/lib/windows/include/ft2build.h deleted file mode 100644 index b9eade2..0000000 --- a/lib/windows/include/ft2build.h +++ /dev/null @@ -1,40 +0,0 @@ -/***************************************************************************/ -/* */ -/* ft2build.h */ -/* */ -/* FreeType 2 build and setup macros (development version). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /* - * This is a development version of <ft2build.h> to build the library in - * debug mode. Its only difference to the default version is that it - * includes a local `ftoption.h' header file with different settings for - * many configuration macros. - * - * To use it, simply ensure that the directory containing this file is - * scanned by the compiler before the default FreeType header directory. - * - */ - -#ifndef __FT2BUILD_H__ -#define __FT2BUILD_H__ - -#define FT_CONFIG_OPTIONS_H <ftoption.h> - -#include <freetype/config/ftheader.h> - -#endif /* __FT2BUILD_H__ */ - - -/* END */ diff --git a/lib/windows/include/ftoption.h b/lib/windows/include/ftoption.h deleted file mode 100644 index ed63aa0..0000000 --- a/lib/windows/include/ftoption.h +++ /dev/null @@ -1,886 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftoption.h (for development) */ -/* */ -/* User-selectable configuration macros (specification only). */ -/* */ -/* Copyright 1996-2015 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTOPTION_H__ -#define __FTOPTION_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* USER-SELECTABLE CONFIGURATION MACROS */ - /* */ - /* This file contains the default configuration macro definitions for */ - /* a standard build of the FreeType library. There are three ways to */ - /* use this file to build project-specific versions of the library: */ - /* */ - /* - You can modify this file by hand, but this is not recommended in */ - /* cases where you would like to build several versions of the */ - /* library from a single source directory. */ - /* */ - /* - You can put a copy of this file in your build directory, more */ - /* precisely in `$BUILD/config/ftoption.h', where `$BUILD' is the */ - /* name of a directory that is included _before_ the FreeType include */ - /* path during compilation. */ - /* */ - /* The default FreeType Makefiles and Jamfiles use the build */ - /* directory `builds/<system>' by default, but you can easily change */ - /* that for your own projects. */ - /* */ - /* - Copy the file <ft2build.h> to `$BUILD/ft2build.h' and modify it */ - /* slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to */ - /* locate this file during the build. For example, */ - /* */ - /* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */ - /* #include <config/ftheader.h> */ - /* */ - /* will use `$BUILD/myftoptions.h' instead of this file for macro */ - /* definitions. */ - /* */ - /* Note also that you can similarly pre-define the macro */ - /* FT_CONFIG_MODULES_H used to locate the file listing of the modules */ - /* that are statically linked to the library at compile time. By */ - /* default, this file is <config/ftmodule.h>. */ - /* */ - /* We highly recommend using the third method whenever possible. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** G E N E R A L F R E E T Y P E 2 C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Uncomment the line below if you want to activate sub-pixel rendering */ - /* (a.k.a. LCD rendering, or ClearType) in this build of the library. */ - /* */ - /* Note that this feature is covered by several Microsoft patents */ - /* and should not be activated in any default build of the library. */ - /* */ - /* This macro has no impact on the FreeType API, only on its */ - /* _implementation_. For example, using FT_RENDER_MODE_LCD when calling */ - /* FT_Render_Glyph still generates a bitmap that is 3 times wider than */ - /* the original size in case this macro isn't defined; however, each */ - /* triplet of subpixels has R=G=B. */ - /* */ - /* This is done to allow FreeType clients to run unmodified, forcing */ - /* them to display normal gray-level anti-aliased glyphs. */ - /* */ -#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING - - - /*************************************************************************/ - /* */ - /* Many compilers provide a non-ANSI 64-bit data type that can be used */ - /* by FreeType to speed up some computations. However, this will create */ - /* some problems when compiling the library in strict ANSI mode. */ - /* */ - /* For this reason, the use of 64-bit integers is normally disabled when */ - /* the __STDC__ macro is defined. You can however disable this by */ - /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here. */ - /* */ - /* For most compilers, this will only create compilation warnings when */ - /* building the library. */ - /* */ - /* ObNote: The compiler-specific 64-bit integers are detected in the */ - /* file `ftconfig.h' either statically or through the */ - /* `configure' script on supported platforms. */ - /* */ -#undef FT_CONFIG_OPTION_FORCE_INT64 - - - /*************************************************************************/ - /* */ - /* If this macro is defined, do not try to use an assembler version of */ - /* performance-critical functions (e.g. FT_MulFix). You should only do */ - /* that to verify that the assembler function works properly, or to */ - /* execute benchmark tests of the various implementations. */ -/* #define FT_CONFIG_OPTION_NO_ASSEMBLER */ - - - /*************************************************************************/ - /* */ - /* If this macro is defined, try to use an inlined assembler version of */ - /* the `FT_MulFix' function, which is a `hotspot' when loading and */ - /* hinting glyphs, and which should be executed as fast as possible. */ - /* */ - /* Note that if your compiler or CPU is not supported, this will default */ - /* to the standard and portable implementation found in `ftcalc.c'. */ - /* */ -#define FT_CONFIG_OPTION_INLINE_MULFIX - - - /*************************************************************************/ - /* */ - /* LZW-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `compress' program. This is mostly used to parse many of the PCF */ - /* files that come with various X11 distributions. The implementation */ - /* uses NetBSD's `zopen' to partially uncompress the file on the fly */ - /* (see src/lzw/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -#define FT_CONFIG_OPTION_USE_LZW - - - /*************************************************************************/ - /* */ - /* Gzip-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `gzip' program. This is mostly used to parse many of the PCF files */ - /* that come with XFree86. The implementation uses `zlib' to */ - /* partially uncompress the file on the fly (see src/gzip/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. See also */ - /* the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below. */ - /* */ -#define FT_CONFIG_OPTION_USE_ZLIB - - - /*************************************************************************/ - /* */ - /* ZLib library selection */ - /* */ - /* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */ - /* It allows FreeType's `ftgzip' component to link to the system's */ - /* installation of the ZLib library. This is useful on systems like */ - /* Unix or VMS where it generally is already available. */ - /* */ - /* If you let it undefined, the component will use its own copy */ - /* of the zlib sources instead. These have been modified to be */ - /* included directly within the component and *not* export external */ - /* function names. This allows you to link any program with FreeType */ - /* _and_ ZLib without linking conflicts. */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ - - - /*************************************************************************/ - /* */ - /* Bzip2-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* `bzip2' program. This is mostly used to parse many of the PCF */ - /* files that come with XFree86. The implementation uses `libbz2' to */ - /* partially uncompress the file on the fly (see src/bzip2/ftbzip2.c). */ - /* Contrary to gzip, bzip2 currently is not included and need to use */ - /* the system available bzip2 implementation. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -#define FT_CONFIG_OPTION_USE_BZIP2 - - - /*************************************************************************/ - /* */ - /* PNG bitmap support. */ - /* */ - /* FreeType now handles loading color bitmap glyphs in the PNG format. */ - /* This requires help from the external libpng library. Uncompressed */ - /* color bitmaps do not need any external libraries and will be */ - /* supported regardless of this configuration. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -#define FT_CONFIG_OPTION_USE_PNG - - - /*************************************************************************/ - /* */ - /* HarfBuzz support. */ - /* */ - /* FreeType uses the HarfBuzz library to improve auto-hinting of */ - /* OpenType fonts. If available, many glyphs not directly addressable */ - /* by a font's character map will be hinted also. */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -#define FT_CONFIG_OPTION_USE_HARFBUZZ - - - /*************************************************************************/ - /* */ - /* Define to disable the use of file stream functions and types, FILE, */ - /* fopen() etc. Enables the use of smaller system libraries on embedded */ - /* systems that have multiple system libraries, some with or without */ - /* file stream support, in the cases where file stream support is not */ - /* necessary such as memory loading of font files. */ - /* */ -/* #define FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT */ - - - /*************************************************************************/ - /* */ - /* DLL export compilation */ - /* */ - /* When compiling FreeType as a DLL, some systems/compilers need a */ - /* special keyword in front OR after the return type of function */ - /* declarations. */ - /* */ - /* Two macros are used within the FreeType source code to define */ - /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */ - /* */ - /* FT_EXPORT( return_type ) */ - /* */ - /* is used in a function declaration, as in */ - /* */ - /* FT_EXPORT( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ); */ - /* */ - /* */ - /* FT_EXPORT_DEF( return_type ) */ - /* */ - /* is used in a function definition, as in */ - /* */ - /* FT_EXPORT_DEF( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ) */ - /* { */ - /* ... some code ... */ - /* return FT_Err_Ok; */ - /* } */ - /* */ - /* You can provide your own implementation of FT_EXPORT and */ - /* FT_EXPORT_DEF here if you want. If you leave them undefined, they */ - /* will be later automatically defined as `extern return_type' to */ - /* allow normal compilation. */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_EXPORT(x) extern x */ -/* #define FT_EXPORT_DEF(x) x */ - - - /*************************************************************************/ - /* */ - /* Glyph Postscript Names handling */ - /* */ - /* By default, FreeType 2 is compiled with the `psnames' module. This */ - /* module is in charge of converting a glyph name string into a */ - /* Unicode value, or return a Macintosh standard glyph name for the */ - /* use with the TrueType `post' table. */ - /* */ - /* Undefine this macro if you do not want `psnames' compiled in your */ - /* build of FreeType. This has the following effects: */ - /* */ - /* - The TrueType driver will provide its own set of glyph names, */ - /* if you build it to support postscript names in the TrueType */ - /* `post' table. */ - /* */ - /* - The Type 1 driver will not be able to synthesize a Unicode */ - /* charmap out of the glyphs found in the fonts. */ - /* */ - /* You would normally undefine this configuration macro when building */ - /* a version of FreeType that doesn't contain a Type 1 or CFF driver. */ - /* */ -#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES - - - /*************************************************************************/ - /* */ - /* Postscript Names to Unicode Values support */ - /* */ - /* By default, FreeType 2 is built with the `PSNames' module compiled */ - /* in. Among other things, the module is used to convert a glyph name */ - /* into a Unicode value. This is especially useful in order to */ - /* synthesize on the fly a Unicode charmap from the CFF/Type 1 driver */ - /* through a big table named the `Adobe Glyph List' (AGL). */ - /* */ - /* Undefine this macro if you do not want the Adobe Glyph List */ - /* compiled in your `PSNames' module. The Type 1 driver will not be */ - /* able to synthesize a Unicode charmap out of the glyphs found in the */ - /* fonts. */ - /* */ -#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST - - - /*************************************************************************/ - /* */ - /* Support for Mac fonts */ - /* */ - /* Define this macro if you want support for outline fonts in Mac */ - /* format (mac dfont, mac resource, macbinary containing a mac */ - /* resource) on non-Mac platforms. */ - /* */ - /* Note that the `FOND' resource isn't checked. */ - /* */ -#define FT_CONFIG_OPTION_MAC_FONTS - - - /*************************************************************************/ - /* */ - /* Guessing methods to access embedded resource forks */ - /* */ - /* Enable extra Mac fonts support on non-Mac platforms (e.g. */ - /* GNU/Linux). */ - /* */ - /* Resource forks which include fonts data are stored sometimes in */ - /* locations which users or developers don't expected. In some cases, */ - /* resource forks start with some offset from the head of a file. In */ - /* other cases, the actual resource fork is stored in file different */ - /* from what the user specifies. If this option is activated, */ - /* FreeType tries to guess whether such offsets or different file */ - /* names must be used. */ - /* */ - /* Note that normal, direct access of resource forks is controlled via */ - /* the FT_CONFIG_OPTION_MAC_FONTS option. */ - /* */ -#ifdef FT_CONFIG_OPTION_MAC_FONTS -#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK -#endif - - - /*************************************************************************/ - /* */ - /* Allow the use of FT_Incremental_Interface to load typefaces that */ - /* contain no glyph data, but supply it via a callback function. */ - /* This is required by clients supporting document formats which */ - /* supply font data incrementally as the document is parsed, such */ - /* as the Ghostscript interpreter for the PostScript language. */ - /* */ -#define FT_CONFIG_OPTION_INCREMENTAL - - - /*************************************************************************/ - /* */ - /* The size in bytes of the render pool used by the scan-line converter */ - /* to do all of its work. */ - /* */ -#define FT_RENDER_POOL_SIZE 16384L - - - /*************************************************************************/ - /* */ - /* FT_MAX_MODULES */ - /* */ - /* The maximum number of modules that can be registered in a single */ - /* FreeType library object. 32 is the default. */ - /* */ -#define FT_MAX_MODULES 32 - - - /*************************************************************************/ - /* */ - /* Debug level */ - /* */ - /* FreeType can be compiled in debug or trace mode. In debug mode, */ - /* errors are reported through the `ftdebug' component. In trace */ - /* mode, additional messages are sent to the standard output during */ - /* execution. */ - /* */ - /* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */ - /* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */ - /* */ - /* Don't define any of these macros to compile in `release' mode! */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -#define FT_DEBUG_LEVEL_ERROR -#define FT_DEBUG_LEVEL_TRACE - - - /*************************************************************************/ - /* */ - /* Autofitter debugging */ - /* */ - /* If FT_DEBUG_AUTOFIT is defined, FreeType provides some means to */ - /* control the autofitter behaviour for debugging purposes with global */ - /* boolean variables (consequently, you should *never* enable this */ - /* while compiling in `release' mode): */ - /* */ - /* _af_debug_disable_horz_hints */ - /* _af_debug_disable_vert_hints */ - /* _af_debug_disable_blue_hints */ - /* */ - /* Additionally, the following functions provide dumps of various */ - /* internal autofit structures to stdout (using `printf'): */ - /* */ - /* af_glyph_hints_dump_points */ - /* af_glyph_hints_dump_segments */ - /* af_glyph_hints_dump_edges */ - /* af_glyph_hints_get_num_segments */ - /* af_glyph_hints_get_segment_offset */ - /* */ - /* As an argument, they use another global variable: */ - /* */ - /* _af_debug_hints */ - /* */ - /* Please have a look at the `ftgrid' demo program to see how those */ - /* variables and macros should be used. */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -#define FT_DEBUG_AUTOFIT - - - /*************************************************************************/ - /* */ - /* Memory Debugging */ - /* */ - /* FreeType now comes with an integrated memory debugger that is */ - /* capable of detecting simple errors like memory leaks or double */ - /* deletes. To compile it within your build of the library, you */ - /* should define FT_DEBUG_MEMORY here. */ - /* */ - /* Note that the memory debugger is only activated at runtime when */ - /* when the _environment_ variable `FT2_DEBUG_MEMORY' is defined also! */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -#define FT_DEBUG_MEMORY - - - /*************************************************************************/ - /* */ - /* Module errors */ - /* */ - /* If this macro is set (which is _not_ the default), the higher byte */ - /* of an error code gives the module in which the error has occurred, */ - /* while the lower byte is the real error code. */ - /* */ - /* Setting this macro makes sense for debugging purposes only, since */ - /* it would break source compatibility of certain programs that use */ - /* FreeType 2. */ - /* */ - /* More details can be found in the files ftmoderr.h and fterrors.h. */ - /* */ -#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS - - - /*************************************************************************/ - /* */ - /* Position Independent Code */ - /* */ - /* If this macro is set (which is _not_ the default), FreeType2 will */ - /* avoid creating constants that require address fixups. Instead the */ - /* constants will be moved into a struct and additional intialization */ - /* code will be used. */ - /* */ - /* Setting this macro is needed for systems that prohibit address */ - /* fixups, such as BREW. */ - /* */ -/* #define FT_CONFIG_OPTION_PIC */ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** S F N T D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support */ - /* embedded bitmaps in all formats using the SFNT module (namely */ - /* TrueType & OpenType). */ - /* */ -#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to */ - /* load and enumerate the glyph Postscript names in a TrueType or */ - /* OpenType file. */ - /* */ - /* Note that when you do not compile the `PSNames' module by undefining */ - /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will */ - /* contain additional code used to read the PS Names table from a font. */ - /* */ - /* (By default, the module uses `PSNames' to extract glyph names.) */ - /* */ -#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to */ - /* access the internal name table in a SFNT-based format like TrueType */ - /* or OpenType. The name table contains various strings used to */ - /* describe the font, like family name, copyright, version, etc. It */ - /* does not contain any glyph name though. */ - /* */ - /* Accessing SFNT names is done through the functions declared in */ - /* `ftsnames.h'. */ - /* */ -#define TT_CONFIG_OPTION_SFNT_NAMES - - - /*************************************************************************/ - /* */ - /* TrueType CMap support */ - /* */ - /* Here you can fine-tune which TrueType CMap table format shall be */ - /* supported. */ -#define TT_CONFIG_CMAP_FORMAT_0 -#define TT_CONFIG_CMAP_FORMAT_2 -#define TT_CONFIG_CMAP_FORMAT_4 -#define TT_CONFIG_CMAP_FORMAT_6 -#define TT_CONFIG_CMAP_FORMAT_8 -#define TT_CONFIG_CMAP_FORMAT_10 -#define TT_CONFIG_CMAP_FORMAT_12 -#define TT_CONFIG_CMAP_FORMAT_13 -#define TT_CONFIG_CMAP_FORMAT_14 - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** T R U E T Y P E D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */ - /* a bytecode interpreter in the TrueType driver. */ - /* */ - /* By undefining this, you will only compile the code necessary to load */ - /* TrueType glyphs without hinting. */ - /* */ - /* Do not #undef this macro here, since the build system might */ - /* define it for certain configurations only. */ - /* */ -#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_SUBPIXEL_HINTING if you want to compile */ - /* EXPERIMENTAL subpixel hinting support into the TrueType driver. This */ - /* replaces the native TrueType hinting mechanism when anything but */ - /* FT_RENDER_MODE_MONO is requested. */ - /* */ - /* Enabling this causes the TrueType driver to ignore instructions under */ - /* certain conditions. This is done in accordance with the guide here, */ - /* with some minor differences: */ - /* */ - /* http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */ - /* */ - /* By undefining this, you only compile the code necessary to hint */ - /* TrueType glyphs with native TT hinting. */ - /* */ - /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be */ - /* defined. */ - /* */ -#define TT_CONFIG_OPTION_SUBPIXEL_HINTING - - - /*************************************************************************/ - /* */ - /* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */ - /* of the TrueType bytecode interpreter is used that doesn't implement */ - /* any of the patented opcodes and algorithms. The patents related to */ - /* TrueType hinting have expired worldwide since May 2010; this option */ - /* is now deprecated. */ - /* */ - /* Note that the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* */ - /* if you define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, */ - /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */ - /* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */ - /* */ - /* This macro is only useful for a small number of font files (mostly */ - /* for Asian scripts) that require bytecode interpretation to properly */ - /* load glyphs. For all other fonts, this produces unpleasant results, */ - /* thus the unpatented interpreter is never used to load glyphs from */ - /* TrueType fonts unless one of the following two options is used. */ - /* */ - /* - The unpatented interpreter is explicitly activated by the user */ - /* through the FT_PARAM_TAG_UNPATENTED_HINTING parameter tag */ - /* when opening the FT_Face. */ - /* */ - /* - FreeType detects that the FT_Face corresponds to one of the */ - /* `trick' fonts (e.g., `Mingliu') it knows about. The font engine */ - /* contains a hard-coded list of font names and other matching */ - /* parameters (see function `tt_face_init' in file */ - /* `src/truetype/ttobjs.c'). */ - /* */ - /* Here a sample code snippet for using FT_PARAM_TAG_UNPATENTED_HINTING. */ - /* */ - /* { */ - /* FT_Parameter parameter; */ - /* FT_Open_Args open_args; */ - /* */ - /* */ - /* parameter.tag = FT_PARAM_TAG_UNPATENTED_HINTING; */ - /* */ - /* open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; */ - /* open_args.pathname = my_font_pathname; */ - /* open_args.num_params = 1; */ - /* open_args.params = ¶meter; */ - /* */ - /* error = FT_Open_Face( library, &open_args, index, &face ); */ - /* ... */ - /* } */ - /* */ -/* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ - /* TrueType glyph loader to use Apple's definition of how to handle */ - /* component offsets in composite glyphs. */ - /* */ - /* Apple and MS disagree on the default behavior of component offsets */ - /* in composites. Apple says that they should be scaled by the scaling */ - /* factors in the transformation matrix (roughly, it's more complex) */ - /* while MS says they should not. OpenType defines two bits in the */ - /* composite flags array which can be used to disambiguate, but old */ - /* fonts will not have them. */ - /* */ - /* http://www.microsoft.com/typography/otspec/glyf.htm */ - /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html */ - /* */ -#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_GX_VAR_SUPPORT if you want to include */ - /* support for Apple's distortable font technology (fvar, gvar, cvar, */ - /* and avar tables). This has many similarities to Type 1 Multiple */ - /* Masters support. */ - /* */ -#define TT_CONFIG_OPTION_GX_VAR_SUPPORT - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_BDF if you want to include support for */ - /* an embedded `BDF ' table within SFNT-based bitmap formats. */ - /* */ -#define TT_CONFIG_OPTION_BDF - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* T1_MAX_DICT_DEPTH is the maximum depth of nest dictionaries and */ - /* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is */ - /* required. */ - /* */ -#define T1_MAX_DICT_DEPTH 5 - - - /*************************************************************************/ - /* */ - /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ - /* calls during glyph loading. */ - /* */ -#define T1_MAX_SUBRS_CALLS 16 - - - /*************************************************************************/ - /* */ - /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ - /* minimum of 16 is required. */ - /* */ - /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */ - /* */ -#define T1_MAX_CHARSTRINGS_OPERANDS 256 - - - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of `t1afm', which is in charge of reading Type 1 AFM */ - /* files into an existing face. Note that if set, the T1 driver will be */ - /* unable to produce kerning distances. */ - /* */ -#undef T1_CONFIG_OPTION_NO_AFM - - - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of the Multiple Masters font support in the Type 1 */ - /* driver. */ - /* */ -#undef T1_CONFIG_OPTION_NO_MM_SUPPORT - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** C F F D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Using CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} it is */ - /* possible to set up the default values of the four control points that */ - /* define the stem darkening behaviour of the (new) CFF engine. For */ - /* more details please read the documentation of the */ - /* `darkening-parameters' property of the cff driver module (file */ - /* `ftcffdrv.h'), which allows the control at run-time. */ - /* */ - /* Do *not* undefine these macros! */ - /* */ -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 500 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 400 - -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 1000 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 275 - -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 1667 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 275 - -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 2333 -#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 0 - - - /*************************************************************************/ - /* */ - /* CFF_CONFIG_OPTION_OLD_ENGINE controls whether the pre-Adobe CFF */ - /* engine gets compiled into FreeType. If defined, it is possible to */ - /* switch between the two engines using the `hinting-engine' property of */ - /* the cff driver module. */ - /* */ -#define CFF_CONFIG_OPTION_OLD_ENGINE - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** A U T O F I T M O D U L E C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Compile autofit module with CJK (Chinese, Japanese, Korean) script */ - /* support. */ - /* */ -#define AF_CONFIG_OPTION_CJK - - /*************************************************************************/ - /* */ - /* Compile autofit module with Indic script support. */ - /* */ -#define AF_CONFIG_OPTION_INDIC - - /*************************************************************************/ - /* */ - /* Compile autofit module with warp hinting. The idea of the warping */ - /* code is to slightly scale and shift a glyph within a single dimension */ - /* so that as much of its segments are aligned (more or less) on the */ - /* grid. To find out the optimal scaling and shifting value, various */ - /* parameter combinations are tried and scored. */ - /* */ - /* This experimental option is active only if the rendering mode is */ - /* FT_RENDER_MODE_LIGHT; you can switch warping on and off with the */ - /* `warping' property of the auto-hinter (see file `ftautoh.h' for more */ - /* information; by default it is switched off). */ - /* */ -#define AF_CONFIG_OPTION_USE_WARPER - - /* */ - - - /* - * This macro is obsolete. Support has been removed in FreeType - * version 2.5. - */ -/* #define FT_CONFIG_OPTION_OLD_INTERNALS */ - - - /* - * This macro is defined if either unpatented or native TrueType - * hinting is requested by the definitions above. - */ -#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER -#define TT_USE_BYTECODE_INTERPRETER -#undef TT_CONFIG_OPTION_UNPATENTED_HINTING -#elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING -#define TT_USE_BYTECODE_INTERPRETER -#endif - - - /* - * Check CFF darkening parameters. The checks are the same as in function - * `cff_property_set' in file `cffdrivr.c'. - */ -#if CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 < 0 || \ - \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 < 0 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 < 0 || \ - \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 > \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 > \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 > \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 || \ - \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \ - CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500 -#error "Invalid CFF darkening parameters!" -#endif - -FT_END_HEADER - - -#endif /* __FTOPTION_H__ */ - - -/* END */ diff --git a/lib/windows/include/ogg/config_types.h b/lib/windows/include/ogg/config_types.h deleted file mode 100644 index 1e7d490..0000000 --- a/lib/windows/include/ogg/config_types.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __CONFIG_TYPES_H__ -#define __CONFIG_TYPES_H__ - -/* these are filled in by configure */ -#define INCLUDE_INTTYPES_H 1 -#define INCLUDE_STDINT_H 1 -#define INCLUDE_SYS_TYPES_H 1 - -#if INCLUDE_INTTYPES_H -# include <inttypes.h> -#endif -#if INCLUDE_STDINT_H -# include <stdint.h> -#endif -#if INCLUDE_SYS_TYPES_H -# include <sys/types.h> -#endif - -typedef short ogg_int16_t; -typedef unsigned short ogg_uint16_t; -typedef int ogg_int32_t; -typedef unsigned int ogg_uint32_t; -typedef long long ogg_int64_t; - -#endif diff --git a/lib/windows/include/ogg/ogg.h b/lib/windows/include/ogg/ogg.h deleted file mode 100644 index cea4ebe..0000000 --- a/lib/windows/include/ogg/ogg.h +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel libogg include - last mod: $Id: ogg.h 18044 2011-08-01 17:55:20Z gmaxwell $ - - ********************************************************************/ -#ifndef _OGG_H -#define _OGG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <stddef.h> -#include <ogg/os_types.h> - -typedef struct { - void *iov_base; - size_t iov_len; -} ogg_iovec_t; - -typedef struct { - long endbyte; - int endbit; - - unsigned char *buffer; - unsigned char *ptr; - long storage; -} oggpack_buffer; - -/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ - -typedef struct { - unsigned char *header; - long header_len; - unsigned char *body; - long body_len; -} ogg_page; - -/* ogg_stream_state contains the current encode/decode state of a logical - Ogg bitstream **********************************************************/ - -typedef struct { - unsigned char *body_data; /* bytes from packet bodies */ - long body_storage; /* storage elements allocated */ - long body_fill; /* elements stored; fill mark */ - long body_returned; /* elements of fill returned */ - - - int *lacing_vals; /* The values that will go to the segment table */ - ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact - this way, but it is simple coupled to the - lacing fifo */ - long lacing_storage; - long lacing_fill; - long lacing_packet; - long lacing_returned; - - unsigned char header[282]; /* working space for header encode */ - int header_fill; - - int e_o_s; /* set when we have buffered the last packet in the - logical bitstream */ - int b_o_s; /* set after we've written the initial page - of a logical bitstream */ - long serialno; - long pageno; - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a separate abstraction - layer) also knows about the gap */ - ogg_int64_t granulepos; - -} ogg_stream_state; - -/* ogg_packet is used to encapsulate the data and metadata belonging - to a single raw Ogg/Vorbis packet *************************************/ - -typedef struct { - unsigned char *packet; - long bytes; - long b_o_s; - long e_o_s; - - ogg_int64_t granulepos; - - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a separate abstraction - layer) also knows about the gap */ -} ogg_packet; - -typedef struct { - unsigned char *data; - int storage; - int fill; - int returned; - - int unsynced; - int headerbytes; - int bodybytes; -} ogg_sync_state; - -/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ - -extern void oggpack_writeinit(oggpack_buffer *b); -extern int oggpack_writecheck(oggpack_buffer *b); -extern void oggpack_writetrunc(oggpack_buffer *b,long bits); -extern void oggpack_writealign(oggpack_buffer *b); -extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpack_reset(oggpack_buffer *b); -extern void oggpack_writeclear(oggpack_buffer *b); -extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpack_look(oggpack_buffer *b,int bits); -extern long oggpack_look1(oggpack_buffer *b); -extern void oggpack_adv(oggpack_buffer *b,int bits); -extern void oggpack_adv1(oggpack_buffer *b); -extern long oggpack_read(oggpack_buffer *b,int bits); -extern long oggpack_read1(oggpack_buffer *b); -extern long oggpack_bytes(oggpack_buffer *b); -extern long oggpack_bits(oggpack_buffer *b); -extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); - -extern void oggpackB_writeinit(oggpack_buffer *b); -extern int oggpackB_writecheck(oggpack_buffer *b); -extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); -extern void oggpackB_writealign(oggpack_buffer *b); -extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpackB_reset(oggpack_buffer *b); -extern void oggpackB_writeclear(oggpack_buffer *b); -extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpackB_look(oggpack_buffer *b,int bits); -extern long oggpackB_look1(oggpack_buffer *b); -extern void oggpackB_adv(oggpack_buffer *b,int bits); -extern void oggpackB_adv1(oggpack_buffer *b); -extern long oggpackB_read(oggpack_buffer *b,int bits); -extern long oggpackB_read1(oggpack_buffer *b); -extern long oggpackB_bytes(oggpack_buffer *b); -extern long oggpackB_bits(oggpack_buffer *b); -extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); - -/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ - -extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); -extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, - int count, long e_o_s, ogg_int64_t granulepos); -extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); -extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); - -/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ - -extern int ogg_sync_init(ogg_sync_state *oy); -extern int ogg_sync_clear(ogg_sync_state *oy); -extern int ogg_sync_reset(ogg_sync_state *oy); -extern int ogg_sync_destroy(ogg_sync_state *oy); -extern int ogg_sync_check(ogg_sync_state *oy); - -extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); -extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); -extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); -extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); -extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); -extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); - -/* Ogg BITSTREAM PRIMITIVES: general ***************************/ - -extern int ogg_stream_init(ogg_stream_state *os,int serialno); -extern int ogg_stream_clear(ogg_stream_state *os); -extern int ogg_stream_reset(ogg_stream_state *os); -extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); -extern int ogg_stream_destroy(ogg_stream_state *os); -extern int ogg_stream_check(ogg_stream_state *os); -extern int ogg_stream_eos(ogg_stream_state *os); - -extern void ogg_page_checksum_set(ogg_page *og); - -extern int ogg_page_version(const ogg_page *og); -extern int ogg_page_continued(const ogg_page *og); -extern int ogg_page_bos(const ogg_page *og); -extern int ogg_page_eos(const ogg_page *og); -extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); -extern int ogg_page_serialno(const ogg_page *og); -extern long ogg_page_pageno(const ogg_page *og); -extern int ogg_page_packets(const ogg_page *og); - -extern void ogg_packet_clear(ogg_packet *op); - - -#ifdef __cplusplus -} -#endif - -#endif /* _OGG_H */ diff --git a/lib/windows/include/ogg/os_types.h b/lib/windows/include/ogg/os_types.h deleted file mode 100644 index 8bf8210..0000000 --- a/lib/windows/include/ogg/os_types.h +++ /dev/null @@ -1,147 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: #ifdef jail to whip a few platforms into the UNIX ideal. - last mod: $Id: os_types.h 19098 2014-02-26 19:06:45Z giles $ - - ********************************************************************/ -#ifndef _OS_TYPES_H -#define _OS_TYPES_H - -/* make it easy on the folks that want to compile the libs with a - different malloc than stdlib */ -#define _ogg_malloc malloc -#define _ogg_calloc calloc -#define _ogg_realloc realloc -#define _ogg_free free - -#if defined(_WIN32) - -# if defined(__CYGWIN__) -# include <stdint.h> - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - typedef uint64_t ogg_uint64_t; -# elif defined(__MINGW32__) -# include <sys/types.h> - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - typedef unsigned long long ogg_uint64_t; -# elif defined(__MWERKS__) - typedef long long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; -# else - /* MSVC/Borland */ - typedef __int64 ogg_int64_t; - typedef __int32 ogg_int32_t; - typedef unsigned __int32 ogg_uint32_t; - typedef __int16 ogg_int16_t; - typedef unsigned __int16 ogg_uint16_t; -# endif - -#elif defined(__MACOS__) - -# include <sys/types.h> - typedef SInt16 ogg_int16_t; - typedef UInt16 ogg_uint16_t; - typedef SInt32 ogg_int32_t; - typedef UInt32 ogg_uint32_t; - typedef SInt64 ogg_int64_t; - -#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ - -# include <inttypes.h> - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined(__HAIKU__) - - /* Haiku */ -# include <sys/types.h> - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(__BEOS__) - - /* Be */ -# include <inttypes.h> - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined (__EMX__) - - /* OS/2 GCC */ - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined (DJGPP) - - /* DJGPP */ - typedef short ogg_int16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(R5900) - - /* PS2 EE */ - typedef long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned ogg_uint32_t; - typedef short ogg_int16_t; - -#elif defined(__SYMBIAN32__) - - /* Symbian GCC */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#elif defined(__TMS320C6X__) - - /* TI C64x compiler */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#else - -# include <ogg/config_types.h> - -#endif - -#endif /* _OS_TYPES_H */ diff --git a/lib/windows/include/png.h b/lib/windows/include/png.h deleted file mode 100644 index f2013cf..0000000 --- a/lib/windows/include/png.h +++ /dev/null @@ -1,3265 +0,0 @@ - -/* png.h - header file for PNG reference library - * - * libpng version 1.6.18, July 23, 2015 - * - * Copyright (c) 1998-2015 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) - * - * This code is released under the libpng license (See LICENSE, below) - * - * Authors and maintainers: - * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat - * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.6.18, July 23, 2015: Glenn - * See also "Contributing Authors", below. - * - * Note about libpng version numbers: - * - * Due to various miscommunications, unforeseen code incompatibilities - * and occasional factors outside the authors' control, version numbering - * on the library has not always been consistent and straightforward. - * The following table summarizes matters since version 0.89c, which was - * the first widely used release: - * - * source png.h png.h shared-lib - * version string int version - * ------- ------ ----- ---------- - * 0.89c "1.0 beta 3" 0.89 89 1.0.89 - * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] - * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] - * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96] - * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97] - * 0.97c 0.97 97 2.0.97 - * 0.98 0.98 98 2.0.98 - * 0.99 0.99 98 2.0.99 - * 0.99a-m 0.99 99 2.0.99 - * 1.00 1.00 100 2.1.0 [100 should be 10000] - * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000] - * 1.0.1 png.h string is 10001 2.1.0 - * 1.0.1a-e identical to the 10002 from here on, the shared library - * 1.0.2 source version) 10002 is 2.V where V is the source code - * 1.0.2a-b 10003 version, except as noted. - * 1.0.3 10003 - * 1.0.3a-d 10004 - * 1.0.4 10004 - * 1.0.4a-f 10005 - * 1.0.5 (+ 2 patches) 10005 - * 1.0.5a-d 10006 - * 1.0.5e-r 10100 (not source compatible) - * 1.0.5s-v 10006 (not binary compatible) - * 1.0.6 (+ 3 patches) 10006 (still binary incompatible) - * 1.0.6d-f 10007 (still binary incompatible) - * 1.0.6g 10007 - * 1.0.6h 10007 10.6h (testing xy.z so-numbering) - * 1.0.6i 10007 10.6i - * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0) - * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible) - * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible) - * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) - * 1.0.7 1 10007 (still compatible) - * 1.0.8beta1-4 1 10008 2.1.0.8beta1-4 - * 1.0.8rc1 1 10008 2.1.0.8rc1 - * 1.0.8 1 10008 2.1.0.8 - * 1.0.9beta1-6 1 10009 2.1.0.9beta1-6 - * 1.0.9rc1 1 10009 2.1.0.9rc1 - * 1.0.9beta7-10 1 10009 2.1.0.9beta7-10 - * 1.0.9rc2 1 10009 2.1.0.9rc2 - * 1.0.9 1 10009 2.1.0.9 - * 1.0.10beta1 1 10010 2.1.0.10beta1 - * 1.0.10rc1 1 10010 2.1.0.10rc1 - * 1.0.10 1 10010 2.1.0.10 - * 1.0.11beta1-3 1 10011 2.1.0.11beta1-3 - * 1.0.11rc1 1 10011 2.1.0.11rc1 - * 1.0.11 1 10011 2.1.0.11 - * 1.0.12beta1-2 2 10012 2.1.0.12beta1-2 - * 1.0.12rc1 2 10012 2.1.0.12rc1 - * 1.0.12 2 10012 2.1.0.12 - * 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned) - * 1.2.0beta1-2 2 10200 2.1.2.0beta1-2 - * 1.2.0beta3-5 3 10200 3.1.2.0beta3-5 - * 1.2.0rc1 3 10200 3.1.2.0rc1 - * 1.2.0 3 10200 3.1.2.0 - * 1.2.1beta1-4 3 10201 3.1.2.1beta1-4 - * 1.2.1rc1-2 3 10201 3.1.2.1rc1-2 - * 1.2.1 3 10201 3.1.2.1 - * 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6 - * 1.0.13beta1 10 10013 10.so.0.1.0.13beta1 - * 1.0.13rc1 10 10013 10.so.0.1.0.13rc1 - * 1.2.2rc1 12 10202 12.so.0.1.2.2rc1 - * 1.0.13 10 10013 10.so.0.1.0.13 - * 1.2.2 12 10202 12.so.0.1.2.2 - * 1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6 - * 1.2.3 12 10203 12.so.0.1.2.3 - * 1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3 - * 1.0.14rc1 13 10014 10.so.0.1.0.14rc1 - * 1.2.4rc1 13 10204 12.so.0.1.2.4rc1 - * 1.0.14 10 10014 10.so.0.1.0.14 - * 1.2.4 13 10204 12.so.0.1.2.4 - * 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2 - * 1.0.15rc1-3 10 10015 10.so.0.1.0.15rc1-3 - * 1.2.5rc1-3 13 10205 12.so.0.1.2.5rc1-3 - * 1.0.15 10 10015 10.so.0.1.0.15 - * 1.2.5 13 10205 12.so.0.1.2.5 - * 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4 - * 1.0.16 10 10016 10.so.0.1.0.16 - * 1.2.6 13 10206 12.so.0.1.2.6 - * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2 - * 1.0.17rc1 10 10017 12.so.0.1.0.17rc1 - * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1 - * 1.0.17 10 10017 12.so.0.1.0.17 - * 1.2.7 13 10207 12.so.0.1.2.7 - * 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5 - * 1.0.18rc1-5 10 10018 12.so.0.1.0.18rc1-5 - * 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5 - * 1.0.18 10 10018 12.so.0.1.0.18 - * 1.2.8 13 10208 12.so.0.1.2.8 - * 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3 - * 1.2.9beta4-11 13 10209 12.so.0.9[.0] - * 1.2.9rc1 13 10209 12.so.0.9[.0] - * 1.2.9 13 10209 12.so.0.9[.0] - * 1.2.10beta1-7 13 10210 12.so.0.10[.0] - * 1.2.10rc1-2 13 10210 12.so.0.10[.0] - * 1.2.10 13 10210 12.so.0.10[.0] - * 1.4.0beta1-5 14 10400 14.so.0.0[.0] - * 1.2.11beta1-4 13 10211 12.so.0.11[.0] - * 1.4.0beta7-8 14 10400 14.so.0.0[.0] - * 1.2.11 13 10211 12.so.0.11[.0] - * 1.2.12 13 10212 12.so.0.12[.0] - * 1.4.0beta9-14 14 10400 14.so.0.0[.0] - * 1.2.13 13 10213 12.so.0.13[.0] - * 1.4.0beta15-36 14 10400 14.so.0.0[.0] - * 1.4.0beta37-87 14 10400 14.so.14.0[.0] - * 1.4.0rc01 14 10400 14.so.14.0[.0] - * 1.4.0beta88-109 14 10400 14.so.14.0[.0] - * 1.4.0rc02-08 14 10400 14.so.14.0[.0] - * 1.4.0 14 10400 14.so.14.0[.0] - * 1.4.1beta01-03 14 10401 14.so.14.1[.0] - * 1.4.1rc01 14 10401 14.so.14.1[.0] - * 1.4.1beta04-12 14 10401 14.so.14.1[.0] - * 1.4.1 14 10401 14.so.14.1[.0] - * 1.4.2 14 10402 14.so.14.2[.0] - * 1.4.3 14 10403 14.so.14.3[.0] - * 1.4.4 14 10404 14.so.14.4[.0] - * 1.5.0beta01-58 15 10500 15.so.15.0[.0] - * 1.5.0rc01-07 15 10500 15.so.15.0[.0] - * 1.5.0 15 10500 15.so.15.0[.0] - * 1.5.1beta01-11 15 10501 15.so.15.1[.0] - * 1.5.1rc01-02 15 10501 15.so.15.1[.0] - * 1.5.1 15 10501 15.so.15.1[.0] - * 1.5.2beta01-03 15 10502 15.so.15.2[.0] - * 1.5.2rc01-03 15 10502 15.so.15.2[.0] - * 1.5.2 15 10502 15.so.15.2[.0] - * 1.5.3beta01-10 15 10503 15.so.15.3[.0] - * 1.5.3rc01-02 15 10503 15.so.15.3[.0] - * 1.5.3beta11 15 10503 15.so.15.3[.0] - * 1.5.3 [omitted] - * 1.5.4beta01-08 15 10504 15.so.15.4[.0] - * 1.5.4rc01 15 10504 15.so.15.4[.0] - * 1.5.4 15 10504 15.so.15.4[.0] - * 1.5.5beta01-08 15 10505 15.so.15.5[.0] - * 1.5.5rc01 15 10505 15.so.15.5[.0] - * 1.5.5 15 10505 15.so.15.5[.0] - * 1.5.6beta01-07 15 10506 15.so.15.6[.0] - * 1.5.6rc01-03 15 10506 15.so.15.6[.0] - * 1.5.6 15 10506 15.so.15.6[.0] - * 1.5.7beta01-05 15 10507 15.so.15.7[.0] - * 1.5.7rc01-03 15 10507 15.so.15.7[.0] - * 1.5.7 15 10507 15.so.15.7[.0] - * 1.6.0beta01-40 16 10600 16.so.16.0[.0] - * 1.6.0rc01-08 16 10600 16.so.16.0[.0] - * 1.6.0 16 10600 16.so.16.0[.0] - * 1.6.1beta01-09 16 10601 16.so.16.1[.0] - * 1.6.1rc01 16 10601 16.so.16.1[.0] - * 1.6.1 16 10601 16.so.16.1[.0] - * 1.6.2beta01 16 10602 16.so.16.2[.0] - * 1.6.2rc01-06 16 10602 16.so.16.2[.0] - * 1.6.2 16 10602 16.so.16.2[.0] - * 1.6.3beta01-11 16 10603 16.so.16.3[.0] - * 1.6.3rc01 16 10603 16.so.16.3[.0] - * 1.6.3 16 10603 16.so.16.3[.0] - * 1.6.4beta01-02 16 10604 16.so.16.4[.0] - * 1.6.4rc01 16 10604 16.so.16.4[.0] - * 1.6.4 16 10604 16.so.16.4[.0] - * 1.6.5 16 10605 16.so.16.5[.0] - * 1.6.6 16 10606 16.so.16.6[.0] - * 1.6.7beta01-04 16 10607 16.so.16.7[.0] - * 1.6.7rc01-03 16 10607 16.so.16.7[.0] - * 1.6.7 16 10607 16.so.16.7[.0] - * 1.6.8beta01-02 16 10608 16.so.16.8[.0] - * 1.6.8rc01-02 16 10608 16.so.16.8[.0] - * 1.6.8 16 10608 16.so.16.8[.0] - * 1.6.9beta01-04 16 10609 16.so.16.9[.0] - * 1.6.9rc01-02 16 10609 16.so.16.9[.0] - * 1.6.9 16 10609 16.so.16.9[.0] - * 1.6.10beta01-03 16 10610 16.so.16.10[.0] - * 1.6.10rc01-03 16 10610 16.so.16.10[.0] - * 1.6.10 16 10610 16.so.16.10[.0] - * 1.6.11beta01-06 16 10611 16.so.16.11[.0] - * 1.6.11rc01-02 16 10611 16.so.16.11[.0] - * 1.6.11 16 10611 16.so.16.11[.0] - * 1.6.12rc01-03 16 10612 16.so.16.12[.0] - * 1.6.12 16 10612 16.so.16.12[.0] - * 1.6.13beta01-04 16 10613 16.so.16.13[.0] - * 1.6.13rc01-02 16 10613 16.so.16.13[.0] - * 1.6.13 16 10613 16.so.16.13[.0] - * 1.6.14beta01-07 16 10614 16.so.16.14[.0] - * 1.6.14rc01-02 16 10614 16.so.16.14[.0] - * 1.6.14 16 10614 16.so.16.14[.0] - * 1.6.15beta01-08 16 10615 16.so.16.15[.0] - * 1.6.15rc01-03 16 10615 16.so.16.15[.0] - * 1.6.15 16 10615 16.so.16.15[.0] - * 1.6.16beta01-03 16 10616 16.so.16.16[.0] - * 1.6.16rc01-02 16 10616 16.so.16.16[.0] - * 1.6.16 16 10616 16.so.16.16[.0] - * 1.6.17beta01-06 16 10617 16.so.16.17[.0] - * 1.6.17rc01-06 16 10617 16.so.16.17[.0] - * 1.6.17 16 10617 16.so.16.17[.0] - * 1.6.18beta01-09 16 10618 16.so.16.18[.0] - * 1.6.18rc01-03 16 10618 16.so.16.18[.0] - * 1.6.18 16 10618 16.so.16.18[.0] - * - * Henceforth the source version will match the shared-library major - * and minor numbers; the shared-library major version number will be - * used for changes in backward compatibility, as it is intended. The - * PNG_LIBPNG_VER macro, which is not used within libpng but is available - * for applications, is an unsigned integer of the form xyyzz corresponding - * to the source version x.y.z (leading zeros in y and z). Beta versions - * were given the previous public release number plus a letter, until - * version 1.0.6j; from then on they were given the upcoming public - * release number plus "betaNN" or "rcNN". - * - * Binary incompatibility exists only when applications make direct access - * to the info_ptr or png_ptr members through png.h, and the compiled - * application is loaded with a different version of the library. - * - * DLLNUM will change each time there are forward or backward changes - * in binary compatibility (e.g., when a new feature is added). - * - * See libpng-manual.txt or libpng.3 for more information. The PNG - * specification is available as a W3C Recommendation and as an ISO - * Specification, <http://www.w3.org/TR/2003/REC-PNG-20031110/ - */ - -/* - * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: - * - * If you modify libpng you may insert additional notices immediately following - * this sentence. - * - * This code is released under the libpng license. - * - * libpng versions 1.0.7, July 1, 2000, through 1.6.18, July 23, 2015, are - * Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are - * distributed according to the same disclaimer and license as libpng-1.0.6 - * with the following individuals added to the list of Contributing Authors: - * - * Simon-Pierre Cadieux - * Mans Rullgard - * Cosmin Truta - * Gilles Vollant - * James Yu - * - * and with the following additions to the disclaimer: - * - * There is no warranty against interference with your enjoyment of the - * library or against infringement. There is no warranty that our - * efforts or the library will fulfill any of your particular purposes - * or needs. This library is provided with all faults, and the entire - * risk of satisfactory quality, performance, accuracy, and effort is with - * the user. - * - * libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are - * Copyright (c) 1998-2000 Glenn Randers-Pehrson, and are distributed according - * to the same disclaimer and license as libpng-0.96, with the following - * individuals added to the list of Contributing Authors: - * - * Tom Lane - * Glenn Randers-Pehrson - * Eric S. Raymond - * Willem van Schaik - * - * libpng versions 0.89, June 1996, through 0.96, May 1997, are - * Copyright (c) 1996-1997 Andreas Dilger, and are - * distributed according to the same disclaimer and license as libpng-0.88, - * with the following individuals added to the list of Contributing Authors: - * - * John Bowler - * Kevin Bracey - * Sam Bushell - * Magnus Holmgren - * Greg Roelofs - * Tom Tanner - * - * libpng versions 0.5, May 1995, through 0.88, January 1996, are - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * For the purposes of this copyright and license, "Contributing Authors" - * is defined as the following set of individuals: - * - * Andreas Dilger - * Dave Martindale - * Guy Eric Schalnat - * Paul Schmidt - * Tim Wegner - * - * The PNG Reference Library is supplied "AS IS". The Contributing Authors - * and Group 42, Inc. disclaim all warranties, expressed or implied, - * including, without limitation, the warranties of merchantability and of - * fitness for any purpose. The Contributing Authors and Group 42, Inc. - * assume no liability for direct, indirect, incidental, special, exemplary, - * or consequential damages, which may result from the use of the PNG - * Reference Library, even if advised of the possibility of such damage. - * - * Permission is hereby granted to use, copy, modify, and distribute this - * source code, or portions hereof, for any purpose, without fee, subject - * to the following restrictions: - * - * 1. The origin of this source code must not be misrepresented. - * - * 2. Altered versions must be plainly marked as such and must not - * be misrepresented as being the original source. - * - * 3. This Copyright notice may not be removed or altered from any - * source or altered source distribution. - * - * The Contributing Authors and Group 42, Inc. specifically permit, without - * fee, and encourage the use of this source code as a component to - * supporting the PNG file format in commercial products. If you use this - * source code in a product, acknowledgment is not required but would be - * appreciated. - */ - -/* - * A "png_get_copyright" function is available, for convenient use in "about" - * boxes and the like: - * - * printf("%s", png_get_copyright(NULL)); - * - * Also, the PNG logo (in PNG format, of course) is supplied in the - * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). - */ - -/* - * Libpng is OSI Certified Open Source Software. OSI Certified Open Source is - * a certification mark of the Open Source Initiative. OSI has not addressed - * the additional disclaimers inserted at version 1.0.7. - */ - -/* - * The contributing authors would like to thank all those who helped - * with testing, bug fixes, and patience. This wouldn't have been - * possible without all of you. - * - * Thanks to Frank J. T. Wojcik for helping with the documentation. - */ - -/* - * Y2K compliance in libpng: - * ========================= - * - * July 23, 2015 - * - * Since the PNG Development group is an ad-hoc body, we can't make - * an official declaration. - * - * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.6.18 are Y2K compliant. It is my belief that - * earlier versions were also Y2K compliant. - * - * Libpng only has two year fields. One is a 2-byte unsigned integer - * that will hold years up to 65535. The other, which is deprecated, - * holds the date in text format, and will hold years up to 9999. - * - * The integer is - * "png_uint_16 year" in png_time_struct. - * - * The string is - * "char time_buffer[29]" in png_struct. This is no longer used - * in libpng-1.6.x and will be removed from libpng-1.7.0. - * - * There are seven time-related functions: - * png.c: png_convert_to_rfc_1123_buffer() in png.c - * (formerly png_convert_to_rfc_1123() prior to libpng-1.5.x and - * png_convert_to_rfc_1152() in error prior to libpng-0.98) - * png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c - * png_convert_from_time_t() in pngwrite.c - * png_get_tIME() in pngget.c - * png_handle_tIME() in pngrutil.c, called in pngread.c - * png_set_tIME() in pngset.c - * png_write_tIME() in pngwutil.c, called in pngwrite.c - * - * All handle dates properly in a Y2K environment. The - * png_convert_from_time_t() function calls gmtime() to convert from system - * clock time, which returns (year - 1900), which we properly convert to - * the full 4-digit year. There is a possibility that libpng applications - * are not passing 4-digit years into the png_convert_to_rfc_1123_buffer() - * function, or that they are incorrectly passing only a 2-digit year - * instead of "year - 1900" into the png_convert_from_struct_tm() function, - * but this is not under our control. The libpng documentation has always - * stated that it works with 4-digit years, and the APIs have been - * documented as such. - * - * The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned - * integer to hold the year, and can hold years as large as 65535. - * - * zlib, upon which libpng depends, is also Y2K compliant. It contains - * no date-related code. - * - * Glenn Randers-Pehrson - * libpng maintainer - * PNG Development Group - */ - -#ifndef PNG_H -#define PNG_H - -/* This is not the place to learn how to use libpng. The file libpng-manual.txt - * describes how to use libpng, and the file example.c summarizes it - * with some code on which to build. This file is useful for looking - * at the actual function definitions and structure components. If that - * file has been stripped from your copy of libpng, you can find it at - * <http://www.libpng.org/pub/png/libpng-manual.txt> - * - * If you just need to read a PNG file and don't want to read the documentation - * skip to the end of this file and read the section entitled 'simplified API'. - */ - -/* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.6.18" -#define PNG_HEADER_VERSION_STRING \ - " libpng version 1.6.18 - July 23, 2015\n" - -#define PNG_LIBPNG_VER_SONUM 16 -#define PNG_LIBPNG_VER_DLLNUM 16 - -/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ -#define PNG_LIBPNG_VER_MAJOR 1 -#define PNG_LIBPNG_VER_MINOR 6 -#define PNG_LIBPNG_VER_RELEASE 18 - -/* This should match the numeric part of the final component of - * PNG_LIBPNG_VER_STRING, omitting any leading zero: - */ - -#define PNG_LIBPNG_VER_BUILD 0 - -/* Release Status */ -#define PNG_LIBPNG_BUILD_ALPHA 1 -#define PNG_LIBPNG_BUILD_BETA 2 -#define PNG_LIBPNG_BUILD_RC 3 -#define PNG_LIBPNG_BUILD_STABLE 4 -#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7 - -/* Release-Specific Flags */ -#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with - PNG_LIBPNG_BUILD_STABLE only */ -#define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with - PNG_LIBPNG_BUILD_SPECIAL */ -#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with - PNG_LIBPNG_BUILD_PRIVATE */ - -#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE - -/* Careful here. At one time, Guy wanted to use 082, but that would be octal. - * We must not include leading zeros. - * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only - * version 1.0.0 was mis-numbered 100 instead of 10000). From - * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release - */ -#define PNG_LIBPNG_VER 10618 /* 1.6.18 */ - -/* Library configuration: these options cannot be changed after - * the library has been built. - */ -#ifndef PNGLCONF_H - /* If pnglibconf.h is missing, you can - * copy scripts/pnglibconf.h.prebuilt to pnglibconf.h - */ -# include "pnglibconf.h" -#endif - -#ifndef PNG_VERSION_INFO_ONLY - /* Machine specific configuration. */ -# include "pngconf.h" -#endif - -/* - * Added at libpng-1.2.8 - * - * Ref MSDN: Private as priority over Special - * VS_FF_PRIVATEBUILD File *was not* built using standard release - * procedures. If this value is given, the StringFileInfo block must - * contain a PrivateBuild string. - * - * VS_FF_SPECIALBUILD File *was* built by the original company using - * standard release procedures but is a variation of the standard - * file of the same version number. If this value is given, the - * StringFileInfo block must contain a SpecialBuild string. - */ - -#ifdef PNG_USER_PRIVATEBUILD /* From pnglibconf.h */ -# define PNG_LIBPNG_BUILD_TYPE \ - (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) -#else -# ifdef PNG_LIBPNG_SPECIALBUILD -# define PNG_LIBPNG_BUILD_TYPE \ - (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) -# else -# define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE) -# endif -#endif - -#ifndef PNG_VERSION_INFO_ONLY - -/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Version information for C files, stored in png.c. This had better match - * the version above. - */ -#define png_libpng_ver png_get_header_ver(NULL) - -/* This file is arranged in several sections: - * - * 1. Any configuration options that can be specified by for the application - * code when it is built. (Build time configuration is in pnglibconf.h) - * 2. Type definitions (base types are defined in pngconf.h), structure - * definitions. - * 3. Exported library functions. - * 4. Simplified API. - * - * The library source code has additional files (principally pngpriv.h) that - * allow configuration of the library. - */ -/* Section 1: run time configuration - * See pnglibconf.h for build time configuration - * - * Run time configuration allows the application to choose between - * implementations of certain arithmetic APIs. The default is set - * at build time and recorded in pnglibconf.h, but it is safe to - * override these (and only these) settings. Note that this won't - * change what the library does, only application code, and the - * settings can (and probably should) be made on a per-file basis - * by setting the #defines before including png.h - * - * Use macros to read integers from PNG data or use the exported - * functions? - * PNG_USE_READ_MACROS: use the macros (see below) Note that - * the macros evaluate their argument multiple times. - * PNG_NO_USE_READ_MACROS: call the relevant library function. - * - * Use the alternative algorithm for compositing alpha samples that - * does not use division? - * PNG_READ_COMPOSITE_NODIV_SUPPORTED: use the 'no division' - * algorithm. - * PNG_NO_READ_COMPOSITE_NODIV: use the 'division' algorithm. - * - * How to handle benign errors if PNG_ALLOW_BENIGN_ERRORS is - * false? - * PNG_ALLOW_BENIGN_ERRORS: map calls to the benign error - * APIs to png_warning. - * Otherwise the calls are mapped to png_error. - */ - -/* Section 2: type definitions, including structures and compile time - * constants. - * See pngconf.h for base types that vary by machine/system - */ - -/* This triggers a compiler error in png.c, if png.c and png.h - * do not agree upon the version number. - */ -typedef char* png_libpng_version_1_6_18; - -/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. - * - * png_struct is the cache of information used while reading or writing a single - * PNG file. One of these is always required, although the simplified API - * (below) hides the creation and destruction of it. - */ -typedef struct png_struct_def png_struct; -typedef const png_struct * png_const_structp; -typedef png_struct * png_structp; -typedef png_struct * * png_structpp; - -/* png_info contains information read from or to be written to a PNG file. One - * or more of these must exist while reading or creating a PNG file. The - * information is not used by libpng during read but is used to control what - * gets written when a PNG file is created. "png_get_" function calls read - * information during read and "png_set_" functions calls write information - * when creating a PNG. - * been moved into a separate header file that is not accessible to - * applications. Read libpng-manual.txt or libpng.3 for more info. - */ -typedef struct png_info_def png_info; -typedef png_info * png_infop; -typedef const png_info * png_const_infop; -typedef png_info * * png_infopp; - -/* Types with names ending 'p' are pointer types. The corresponding types with - * names ending 'rp' are identical pointer types except that the pointer is - * marked 'restrict', which means that it is the only pointer to the object - * passed to the function. Applications should not use the 'restrict' types; - * it is always valid to pass 'p' to a pointer with a function argument of the - * corresponding 'rp' type. Different compilers have different rules with - * regard to type matching in the presence of 'restrict'. For backward - * compatibility libpng callbacks never have 'restrict' in their parameters and, - * consequentially, writing portable application code is extremely difficult if - * an attempt is made to use 'restrict'. - */ -typedef png_struct * PNG_RESTRICT png_structrp; -typedef const png_struct * PNG_RESTRICT png_const_structrp; -typedef png_info * PNG_RESTRICT png_inforp; -typedef const png_info * PNG_RESTRICT png_const_inforp; - -/* Three color definitions. The order of the red, green, and blue, (and the - * exact size) is not important, although the size of the fields need to - * be png_byte or png_uint_16 (as defined below). - */ -typedef struct png_color_struct -{ - png_byte red; - png_byte green; - png_byte blue; -} png_color; -typedef png_color * png_colorp; -typedef const png_color * png_const_colorp; -typedef png_color * * png_colorpp; - -typedef struct png_color_16_struct -{ - png_byte index; /* used for palette files */ - png_uint_16 red; /* for use in red green blue files */ - png_uint_16 green; - png_uint_16 blue; - png_uint_16 gray; /* for use in grayscale files */ -} png_color_16; -typedef png_color_16 * png_color_16p; -typedef const png_color_16 * png_const_color_16p; -typedef png_color_16 * * png_color_16pp; - -typedef struct png_color_8_struct -{ - png_byte red; /* for use in red green blue files */ - png_byte green; - png_byte blue; - png_byte gray; /* for use in grayscale files */ - png_byte alpha; /* for alpha channel files */ -} png_color_8; -typedef png_color_8 * png_color_8p; -typedef const png_color_8 * png_const_color_8p; -typedef png_color_8 * * png_color_8pp; - -/* - * The following two structures are used for the in-core representation - * of sPLT chunks. - */ -typedef struct png_sPLT_entry_struct -{ - png_uint_16 red; - png_uint_16 green; - png_uint_16 blue; - png_uint_16 alpha; - png_uint_16 frequency; -} png_sPLT_entry; -typedef png_sPLT_entry * png_sPLT_entryp; -typedef const png_sPLT_entry * png_const_sPLT_entryp; -typedef png_sPLT_entry * * png_sPLT_entrypp; - -/* When the depth of the sPLT palette is 8 bits, the color and alpha samples - * occupy the LSB of their respective members, and the MSB of each member - * is zero-filled. The frequency member always occupies the full 16 bits. - */ - -typedef struct png_sPLT_struct -{ - png_charp name; /* palette name */ - png_byte depth; /* depth of palette samples */ - png_sPLT_entryp entries; /* palette entries */ - png_int_32 nentries; /* number of palette entries */ -} png_sPLT_t; -typedef png_sPLT_t * png_sPLT_tp; -typedef const png_sPLT_t * png_const_sPLT_tp; -typedef png_sPLT_t * * png_sPLT_tpp; - -#ifdef PNG_TEXT_SUPPORTED -/* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file, - * and whether that contents is compressed or not. The "key" field - * points to a regular zero-terminated C string. The "text" fields can be a - * regular C string, an empty string, or a NULL pointer. - * However, the structure returned by png_get_text() will always contain - * the "text" field as a regular zero-terminated C string (possibly - * empty), never a NULL pointer, so it can be safely used in printf() and - * other string-handling functions. Note that the "itxt_length", "lang", and - * "lang_key" members of the structure only exist when the library is built - * with iTXt chunk support. Prior to libpng-1.4.0 the library was built by - * default without iTXt support. Also note that when iTXt *is* supported, - * the "lang" and "lang_key" fields contain NULL pointers when the - * "compression" field contains * PNG_TEXT_COMPRESSION_NONE or - * PNG_TEXT_COMPRESSION_zTXt. Note that the "compression value" is not the - * same as what appears in the PNG tEXt/zTXt/iTXt chunk's "compression flag" - * which is always 0 or 1, or its "compression method" which is always 0. - */ -typedef struct png_text_struct -{ - int compression; /* compression value: - -1: tEXt, none - 0: zTXt, deflate - 1: iTXt, none - 2: iTXt, deflate */ - png_charp key; /* keyword, 1-79 character description of "text" */ - png_charp text; /* comment, may be an empty string (ie "") - or a NULL pointer */ - png_size_t text_length; /* length of the text string */ - png_size_t itxt_length; /* length of the itxt string */ - png_charp lang; /* language code, 0-79 characters - or a NULL pointer */ - png_charp lang_key; /* keyword translated UTF-8 string, 0 or more - chars or a NULL pointer */ -} png_text; -typedef png_text * png_textp; -typedef const png_text * png_const_textp; -typedef png_text * * png_textpp; -#endif - -/* Supported compression types for text in PNG files (tEXt, and zTXt). - * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */ -#define PNG_TEXT_COMPRESSION_NONE_WR -3 -#define PNG_TEXT_COMPRESSION_zTXt_WR -2 -#define PNG_TEXT_COMPRESSION_NONE -1 -#define PNG_TEXT_COMPRESSION_zTXt 0 -#define PNG_ITXT_COMPRESSION_NONE 1 -#define PNG_ITXT_COMPRESSION_zTXt 2 -#define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */ - -/* png_time is a way to hold the time in an machine independent way. - * Two conversions are provided, both from time_t and struct tm. There - * is no portable way to convert to either of these structures, as far - * as I know. If you know of a portable way, send it to me. As a side - * note - PNG has always been Year 2000 compliant! - */ -typedef struct png_time_struct -{ - png_uint_16 year; /* full year, as in, 1995 */ - png_byte month; /* month of year, 1 - 12 */ - png_byte day; /* day of month, 1 - 31 */ - png_byte hour; /* hour of day, 0 - 23 */ - png_byte minute; /* minute of hour, 0 - 59 */ - png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ -} png_time; -typedef png_time * png_timep; -typedef const png_time * png_const_timep; -typedef png_time * * png_timepp; - -#if defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) ||\ - defined(PNG_USER_CHUNKS_SUPPORTED) -/* png_unknown_chunk is a structure to hold queued chunks for which there is - * no specific support. The idea is that we can use this to queue - * up private chunks for output even though the library doesn't actually - * know about their semantics. - * - * The data in the structure is set by libpng on read and used on write. - */ -typedef struct png_unknown_chunk_t -{ - png_byte name[5]; /* Textual chunk name with '\0' terminator */ - png_byte *data; /* Data, should not be modified on read! */ - png_size_t size; - - /* On write 'location' must be set using the flag values listed below. - * Notice that on read it is set by libpng however the values stored have - * more bits set than are listed below. Always treat the value as a - * bitmask. On write set only one bit - setting multiple bits may cause the - * chunk to be written in multiple places. - */ - png_byte location; /* mode of operation at read time */ -} -png_unknown_chunk; - -typedef png_unknown_chunk * png_unknown_chunkp; -typedef const png_unknown_chunk * png_const_unknown_chunkp; -typedef png_unknown_chunk * * png_unknown_chunkpp; -#endif - -/* Flag values for the unknown chunk location byte. */ -#define PNG_HAVE_IHDR 0x01 -#define PNG_HAVE_PLTE 0x02 -#define PNG_AFTER_IDAT 0x08 - -/* Maximum positive integer used in PNG is (2^31)-1 */ -#define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) -#define PNG_UINT_32_MAX ((png_uint_32)(-1)) -#define PNG_SIZE_MAX ((png_size_t)(-1)) - -/* These are constants for fixed point values encoded in the - * PNG specification manner (x100000) - */ -#define PNG_FP_1 100000 -#define PNG_FP_HALF 50000 -#define PNG_FP_MAX ((png_fixed_point)0x7fffffffL) -#define PNG_FP_MIN (-PNG_FP_MAX) - -/* These describe the color_type field in png_info. */ -/* color type masks */ -#define PNG_COLOR_MASK_PALETTE 1 -#define PNG_COLOR_MASK_COLOR 2 -#define PNG_COLOR_MASK_ALPHA 4 - -/* color types. Note that not all combinations are legal */ -#define PNG_COLOR_TYPE_GRAY 0 -#define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE) -#define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR) -#define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA) -#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA) -/* aliases */ -#define PNG_COLOR_TYPE_RGBA PNG_COLOR_TYPE_RGB_ALPHA -#define PNG_COLOR_TYPE_GA PNG_COLOR_TYPE_GRAY_ALPHA - -/* This is for compression type. PNG 1.0-1.2 only define the single type. */ -#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */ -#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE - -/* This is for filter type. PNG 1.0-1.2 only define the single type. */ -#define PNG_FILTER_TYPE_BASE 0 /* Single row per-byte filtering */ -#define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */ -#define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE - -/* These are for the interlacing type. These values should NOT be changed. */ -#define PNG_INTERLACE_NONE 0 /* Non-interlaced image */ -#define PNG_INTERLACE_ADAM7 1 /* Adam7 interlacing */ -#define PNG_INTERLACE_LAST 2 /* Not a valid value */ - -/* These are for the oFFs chunk. These values should NOT be changed. */ -#define PNG_OFFSET_PIXEL 0 /* Offset in pixels */ -#define PNG_OFFSET_MICROMETER 1 /* Offset in micrometers (1/10^6 meter) */ -#define PNG_OFFSET_LAST 2 /* Not a valid value */ - -/* These are for the pCAL chunk. These values should NOT be changed. */ -#define PNG_EQUATION_LINEAR 0 /* Linear transformation */ -#define PNG_EQUATION_BASE_E 1 /* Exponential base e transform */ -#define PNG_EQUATION_ARBITRARY 2 /* Arbitrary base exponential transform */ -#define PNG_EQUATION_HYPERBOLIC 3 /* Hyperbolic sine transformation */ -#define PNG_EQUATION_LAST 4 /* Not a valid value */ - -/* These are for the sCAL chunk. These values should NOT be changed. */ -#define PNG_SCALE_UNKNOWN 0 /* unknown unit (image scale) */ -#define PNG_SCALE_METER 1 /* meters per pixel */ -#define PNG_SCALE_RADIAN 2 /* radians per pixel */ -#define PNG_SCALE_LAST 3 /* Not a valid value */ - -/* These are for the pHYs chunk. These values should NOT be changed. */ -#define PNG_RESOLUTION_UNKNOWN 0 /* pixels/unknown unit (aspect ratio) */ -#define PNG_RESOLUTION_METER 1 /* pixels/meter */ -#define PNG_RESOLUTION_LAST 2 /* Not a valid value */ - -/* These are for the sRGB chunk. These values should NOT be changed. */ -#define PNG_sRGB_INTENT_PERCEPTUAL 0 -#define PNG_sRGB_INTENT_RELATIVE 1 -#define PNG_sRGB_INTENT_SATURATION 2 -#define PNG_sRGB_INTENT_ABSOLUTE 3 -#define PNG_sRGB_INTENT_LAST 4 /* Not a valid value */ - -/* This is for text chunks */ -#define PNG_KEYWORD_MAX_LENGTH 79 - -/* Maximum number of entries in PLTE/sPLT/tRNS arrays */ -#define PNG_MAX_PALETTE_LENGTH 256 - -/* These determine if an ancillary chunk's data has been successfully read - * from the PNG header, or if the application has filled in the corresponding - * data in the info_struct to be written into the output file. The values - * of the PNG_INFO_<chunk> defines should NOT be changed. - */ -#define PNG_INFO_gAMA 0x0001 -#define PNG_INFO_sBIT 0x0002 -#define PNG_INFO_cHRM 0x0004 -#define PNG_INFO_PLTE 0x0008 -#define PNG_INFO_tRNS 0x0010 -#define PNG_INFO_bKGD 0x0020 -#define PNG_INFO_hIST 0x0040 -#define PNG_INFO_pHYs 0x0080 -#define PNG_INFO_oFFs 0x0100 -#define PNG_INFO_tIME 0x0200 -#define PNG_INFO_pCAL 0x0400 -#define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */ -#define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ -#define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ -#define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ -#define PNG_INFO_IDAT 0x8000 /* ESR, 1.0.6 */ - -/* This is used for the transformation routines, as some of them - * change these values for the row. It also should enable using - * the routines for other purposes. - */ -typedef struct png_row_info_struct -{ - png_uint_32 width; /* width of row */ - png_size_t rowbytes; /* number of bytes in row */ - png_byte color_type; /* color type of row */ - png_byte bit_depth; /* bit depth of row */ - png_byte channels; /* number of channels (1, 2, 3, or 4) */ - png_byte pixel_depth; /* bits per pixel (depth * channels) */ -} png_row_info; - -typedef png_row_info * png_row_infop; -typedef png_row_info * * png_row_infopp; - -/* These are the function types for the I/O functions and for the functions - * that allow the user to override the default I/O functions with his or her - * own. The png_error_ptr type should match that of user-supplied warning - * and error functions, while the png_rw_ptr type should match that of the - * user read/write data functions. Note that the 'write' function must not - * modify the buffer it is passed. The 'read' function, on the other hand, is - * expected to return the read data in the buffer. - */ -typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp)); -typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, png_size_t)); -typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp)); -typedef PNG_CALLBACK(void, *png_read_status_ptr, (png_structp, png_uint_32, - int)); -typedef PNG_CALLBACK(void, *png_write_status_ptr, (png_structp, png_uint_32, - int)); - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop)); -typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop)); - -/* The following callback receives png_uint_32 row_number, int pass for the - * png_bytep data of the row. When transforming an interlaced image the - * row number is the row number within the sub-image of the interlace pass, so - * the value will increase to the height of the sub-image (not the full image) - * then reset to 0 for the next pass. - * - * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to - * find the output pixel (x,y) given an interlaced sub-image pixel - * (row,col,pass). (See below for these macros.) - */ -typedef PNG_CALLBACK(void, *png_progressive_row_ptr, (png_structp, png_bytep, - png_uint_32, int)); -#endif - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) -typedef PNG_CALLBACK(void, *png_user_transform_ptr, (png_structp, png_row_infop, - png_bytep)); -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp, - png_unknown_chunkp)); -#endif -#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED -/* not used anywhere */ -/* typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp)); */ -#endif - -#ifdef PNG_SETJMP_SUPPORTED -/* This must match the function definition in <setjmp.h>, and the application - * must include this before png.h to obtain the definition of jmp_buf. The - * function is required to be PNG_NORETURN, but this is not checked. If the - * function does return the application will crash via an abort() or similar - * system level call. - * - * If you get a warning here while building the library you may need to make - * changes to ensure that pnglibconf.h records the calling convention used by - * your compiler. This may be very difficult - try using a different compiler - * to build the library! - */ -PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), typedef); -#endif - -/* Transform masks for the high-level interface */ -#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ -#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ -#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ -#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ -#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ -#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ -#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ -#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ -#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ -#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ -#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ -#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ -#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only */ -/* Added to libpng-1.2.34 */ -#define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER -#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ -/* Added to libpng-1.4.0 */ -#define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ -/* Added to libpng-1.5.4 */ -#define PNG_TRANSFORM_EXPAND_16 0x4000 /* read only */ -#define PNG_TRANSFORM_SCALE_16 0x8000 /* read only */ - -/* Flags for MNG supported features */ -#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 -#define PNG_FLAG_MNG_FILTER_64 0x04 -#define PNG_ALL_MNG_FEATURES 0x05 - -/* NOTE: prior to 1.5 these functions had no 'API' style declaration, - * this allowed the zlib default functions to be used on Windows - * platforms. In 1.5 the zlib default malloc (which just calls malloc and - * ignores the first argument) should be completely compatible with the - * following. - */ -typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp, - png_alloc_size_t)); -typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp)); - -/* Section 3: exported functions - * Here are the function definitions most commonly used. This is not - * the place to find out how to use libpng. See libpng-manual.txt for the - * full explanation, see example.c for the summary. This just provides - * a simple one line description of the use of each function. - * - * The PNG_EXPORT() and PNG_EXPORTA() macros used below are defined in - * pngconf.h and in the *.dfn files in the scripts directory. - * - * PNG_EXPORT(ordinal, type, name, (args)); - * - * ordinal: ordinal that is used while building - * *.def files. The ordinal value is only - * relevant when preprocessing png.h with - * the *.dfn files for building symbol table - * entries, and are removed by pngconf.h. - * type: return type of the function - * name: function name - * args: function arguments, with types - * - * When we wish to append attributes to a function prototype we use - * the PNG_EXPORTA() macro instead. - * - * PNG_EXPORTA(ordinal, type, name, (args), attributes); - * - * ordinal, type, name, and args: same as in PNG_EXPORT(). - * attributes: function attributes - */ - -/* Returns the version number of the library */ -PNG_EXPORT(1, png_uint_32, png_access_version_number, (void)); - -/* Tell lib we have already handled the first <num_bytes> magic bytes. - * Handling more than 8 bytes from the beginning of the file is an error. - */ -PNG_EXPORT(2, void, png_set_sig_bytes, (png_structrp png_ptr, int num_bytes)); - -/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a - * PNG file. Returns zero if the supplied bytes match the 8-byte PNG - * signature, and non-zero otherwise. Having num_to_check == 0 or - * start > 7 will always fail (ie return non-zero). - */ -PNG_EXPORT(3, int, png_sig_cmp, (png_const_bytep sig, png_size_t start, - png_size_t num_to_check)); - -/* Simple signature checking function. This is the same as calling - * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). - */ -#define png_check_sig(sig, n) !png_sig_cmp((sig), 0, (n)) - -/* Allocate and initialize png_ptr struct for reading, and any other memory. */ -PNG_EXPORTA(4, png_structp, png_create_read_struct, - (png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn), - PNG_ALLOCATED); - -/* Allocate and initialize png_ptr struct for writing, and any other memory */ -PNG_EXPORTA(5, png_structp, png_create_write_struct, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn), - PNG_ALLOCATED); - -PNG_EXPORT(6, png_size_t, png_get_compression_buffer_size, - (png_const_structrp png_ptr)); - -PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structrp png_ptr, - png_size_t size)); - -/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp - * match up. - */ -#ifdef PNG_SETJMP_SUPPORTED -/* This function returns the jmp_buf built in to *png_ptr. It must be - * supplied with an appropriate 'longjmp' function to use on that jmp_buf - * unless the default error function is overridden in which case NULL is - * acceptable. The size of the jmp_buf is checked against the actual size - * allocated by the library - the call will return NULL on a mismatch - * indicating an ABI mismatch. - */ -PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structrp png_ptr, - png_longjmp_ptr longjmp_fn, size_t jmp_buf_size)); -# define png_jmpbuf(png_ptr) \ - (*png_set_longjmp_fn((png_ptr), longjmp, (sizeof (jmp_buf)))) -#else -# define png_jmpbuf(png_ptr) \ - (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) -#endif -/* This function should be used by libpng applications in place of - * longjmp(png_ptr->jmpbuf, val). If longjmp_fn() has been set, it - * will use it; otherwise it will call PNG_ABORT(). This function was - * added in libpng-1.5.0. - */ -PNG_EXPORTA(9, void, png_longjmp, (png_const_structrp png_ptr, int val), - PNG_NORETURN); - -#ifdef PNG_READ_SUPPORTED -/* Reset the compression stream */ -PNG_EXPORTA(10, int, png_reset_zstream, (png_structrp png_ptr), PNG_DEPRECATED); -#endif - -/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ -#ifdef PNG_USER_MEM_SUPPORTED -PNG_EXPORTA(11, png_structp, png_create_read_struct_2, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn, - png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), - PNG_ALLOCATED); -PNG_EXPORTA(12, png_structp, png_create_write_struct_2, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn, - png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), - PNG_ALLOCATED); -#endif - -/* Write the PNG file signature. */ -PNG_EXPORT(13, void, png_write_sig, (png_structrp png_ptr)); - -/* Write a PNG chunk - size, type, (optional) data, CRC. */ -PNG_EXPORT(14, void, png_write_chunk, (png_structrp png_ptr, png_const_bytep - chunk_name, png_const_bytep data, png_size_t length)); - -/* Write the start of a PNG chunk - length and chunk name. */ -PNG_EXPORT(15, void, png_write_chunk_start, (png_structrp png_ptr, - png_const_bytep chunk_name, png_uint_32 length)); - -/* Write the data of a PNG chunk started with png_write_chunk_start(). */ -PNG_EXPORT(16, void, png_write_chunk_data, (png_structrp png_ptr, - png_const_bytep data, png_size_t length)); - -/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ -PNG_EXPORT(17, void, png_write_chunk_end, (png_structrp png_ptr)); - -/* Allocate and initialize the info structure */ -PNG_EXPORTA(18, png_infop, png_create_info_struct, (png_const_structrp png_ptr), - PNG_ALLOCATED); - -/* DEPRECATED: this function allowed init structures to be created using the - * default allocation method (typically malloc). Use is deprecated in 1.6.0 and - * the API will be removed in the future. - */ -PNG_EXPORTA(19, void, png_info_init_3, (png_infopp info_ptr, - png_size_t png_info_struct_size), PNG_DEPRECATED); - -/* Writes all the PNG information before the image. */ -PNG_EXPORT(20, void, png_write_info_before_PLTE, - (png_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(21, void, png_write_info, - (png_structrp png_ptr, png_const_inforp info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the information before the actual image data. */ -PNG_EXPORT(22, void, png_read_info, - (png_structrp png_ptr, png_inforp info_ptr)); -#endif - -#ifdef PNG_TIME_RFC1123_SUPPORTED - /* Convert to a US string format: there is no localization support in this - * routine. The original implementation used a 29 character buffer in - * png_struct, this will be removed in future versions. - */ -#if PNG_LIBPNG_VER < 10700 -/* To do: remove this from libpng17 (and from libpng17/png.c and pngstruct.h) */ -PNG_EXPORTA(23, png_const_charp, png_convert_to_rfc1123, (png_structrp png_ptr, - png_const_timep ptime),PNG_DEPRECATED); -#endif -PNG_EXPORT(241, int, png_convert_to_rfc1123_buffer, (char out[29], - png_const_timep ptime)); -#endif - -#ifdef PNG_CONVERT_tIME_SUPPORTED -/* Convert from a struct tm to png_time */ -PNG_EXPORT(24, void, png_convert_from_struct_tm, (png_timep ptime, - const struct tm * ttime)); - -/* Convert from time_t to png_time. Uses gmtime() */ -PNG_EXPORT(25, void, png_convert_from_time_t, (png_timep ptime, time_t ttime)); -#endif /* CONVERT_tIME */ - -#ifdef PNG_READ_EXPAND_SUPPORTED -/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ -PNG_EXPORT(26, void, png_set_expand, (png_structrp png_ptr)); -PNG_EXPORT(27, void, png_set_expand_gray_1_2_4_to_8, (png_structrp png_ptr)); -PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structrp png_ptr)); -PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_EXPAND_16_SUPPORTED -/* Expand to 16-bit channels, forces conversion of palette to RGB and expansion - * of a tRNS chunk if present. - */ -PNG_EXPORT(221, void, png_set_expand_16, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -/* Use blue, green, red order for pixels. */ -PNG_EXPORT(30, void, png_set_bgr, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED -/* Expand the grayscale to 24-bit RGB if necessary. */ -PNG_EXPORT(31, void, png_set_gray_to_rgb, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -/* Reduce RGB to grayscale. */ -#define PNG_ERROR_ACTION_NONE 1 -#define PNG_ERROR_ACTION_WARN 2 -#define PNG_ERROR_ACTION_ERROR 3 -#define PNG_RGB_TO_GRAY_DEFAULT (-1)/*for red/green coefficients*/ - -PNG_FP_EXPORT(32, void, png_set_rgb_to_gray, (png_structrp png_ptr, - int error_action, double red, double green)) -PNG_FIXED_EXPORT(33, void, png_set_rgb_to_gray_fixed, (png_structrp png_ptr, - int error_action, png_fixed_point red, png_fixed_point green)) - -PNG_EXPORT(34, png_byte, png_get_rgb_to_gray_status, (png_const_structrp - png_ptr)); -#endif - -#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED -PNG_EXPORT(35, void, png_build_grayscale_palette, (int bit_depth, - png_colorp palette)); -#endif - -#ifdef PNG_READ_ALPHA_MODE_SUPPORTED -/* How the alpha channel is interpreted - this affects how the color channels - * of a PNG file are returned to the calling application when an alpha channel, - * or a tRNS chunk in a palette file, is present. - * - * This has no effect on the way pixels are written into a PNG output - * datastream. The color samples in a PNG datastream are never premultiplied - * with the alpha samples. - * - * The default is to return data according to the PNG specification: the alpha - * channel is a linear measure of the contribution of the pixel to the - * corresponding composited pixel, and the color channels are unassociated - * (not premultiplied). The gamma encoded color channels must be scaled - * according to the contribution and to do this it is necessary to undo - * the encoding, scale the color values, perform the composition and reencode - * the values. This is the 'PNG' mode. - * - * The alternative is to 'associate' the alpha with the color information by - * storing color channel values that have been scaled by the alpha. - * image. These are the 'STANDARD', 'ASSOCIATED' or 'PREMULTIPLIED' modes - * (the latter being the two common names for associated alpha color channels). - * - * For the 'OPTIMIZED' mode, a pixel is treated as opaque only if the alpha - * value is equal to the maximum value. - * - * The final choice is to gamma encode the alpha channel as well. This is - * broken because, in practice, no implementation that uses this choice - * correctly undoes the encoding before handling alpha composition. Use this - * choice only if other serious errors in the software or hardware you use - * mandate it; the typical serious error is for dark halos to appear around - * opaque areas of the composited PNG image because of arithmetic overflow. - * - * The API function png_set_alpha_mode specifies which of these choices to use - * with an enumerated 'mode' value and the gamma of the required output: - */ -#define PNG_ALPHA_PNG 0 /* according to the PNG standard */ -#define PNG_ALPHA_STANDARD 1 /* according to Porter/Duff */ -#define PNG_ALPHA_ASSOCIATED 1 /* as above; this is the normal practice */ -#define PNG_ALPHA_PREMULTIPLIED 1 /* as above */ -#define PNG_ALPHA_OPTIMIZED 2 /* 'PNG' for opaque pixels, else 'STANDARD' */ -#define PNG_ALPHA_BROKEN 3 /* the alpha channel is gamma encoded */ - -PNG_FP_EXPORT(227, void, png_set_alpha_mode, (png_structrp png_ptr, int mode, - double output_gamma)) -PNG_FIXED_EXPORT(228, void, png_set_alpha_mode_fixed, (png_structrp png_ptr, - int mode, png_fixed_point output_gamma)) -#endif - -#if defined(PNG_GAMMA_SUPPORTED) || defined(PNG_READ_ALPHA_MODE_SUPPORTED) -/* The output_gamma value is a screen gamma in libpng terminology: it expresses - * how to decode the output values, not how they are encoded. - */ -#define PNG_DEFAULT_sRGB -1 /* sRGB gamma and color space */ -#define PNG_GAMMA_MAC_18 -2 /* Old Mac '1.8' gamma and color space */ -#define PNG_GAMMA_sRGB 220000 /* Television standards--matches sRGB gamma */ -#define PNG_GAMMA_LINEAR PNG_FP_1 /* Linear */ -#endif - -/* The following are examples of calls to png_set_alpha_mode to achieve the - * required overall gamma correction and, where necessary, alpha - * premultiplication. - * - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); - * This is the default libpng handling of the alpha channel - it is not - * pre-multiplied into the color components. In addition the call states - * that the output is for a sRGB system and causes all PNG files without gAMA - * chunks to be assumed to be encoded using sRGB. - * - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); - * In this case the output is assumed to be something like an sRGB conformant - * display preceeded by a power-law lookup table of power 1.45. This is how - * early Mac systems behaved. - * - * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_GAMMA_LINEAR); - * This is the classic Jim Blinn approach and will work in academic - * environments where everything is done by the book. It has the shortcoming - * of assuming that input PNG data with no gamma information is linear - this - * is unlikely to be correct unless the PNG files where generated locally. - * Most of the time the output precision will be so low as to show - * significant banding in dark areas of the image. - * - * png_set_expand_16(pp); - * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_DEFAULT_sRGB); - * This is a somewhat more realistic Jim Blinn inspired approach. PNG files - * are assumed to have the sRGB encoding if not marked with a gamma value and - * the output is always 16 bits per component. This permits accurate scaling - * and processing of the data. If you know that your input PNG files were - * generated locally you might need to replace PNG_DEFAULT_sRGB with the - * correct value for your system. - * - * png_set_alpha_mode(pp, PNG_ALPHA_OPTIMIZED, PNG_DEFAULT_sRGB); - * If you just need to composite the PNG image onto an existing background - * and if you control the code that does this you can use the optimization - * setting. In this case you just copy completely opaque pixels to the - * output. For pixels that are not completely transparent (you just skip - * those) you do the composition math using png_composite or png_composite_16 - * below then encode the resultant 8-bit or 16-bit values to match the output - * encoding. - * - * Other cases - * If neither the PNG nor the standard linear encoding work for you because - * of the software or hardware you use then you have a big problem. The PNG - * case will probably result in halos around the image. The linear encoding - * will probably result in a washed out, too bright, image (it's actually too - * contrasty.) Try the ALPHA_OPTIMIZED mode above - this will probably - * substantially reduce the halos. Alternatively try: - * - * png_set_alpha_mode(pp, PNG_ALPHA_BROKEN, PNG_DEFAULT_sRGB); - * This option will also reduce the halos, but there will be slight dark - * halos round the opaque parts of the image where the background is light. - * In the OPTIMIZED mode the halos will be light halos where the background - * is dark. Take your pick - the halos are unavoidable unless you can get - * your hardware/software fixed! (The OPTIMIZED approach is slightly - * faster.) - * - * When the default gamma of PNG files doesn't match the output gamma. - * If you have PNG files with no gamma information png_set_alpha_mode allows - * you to provide a default gamma, but it also sets the ouput gamma to the - * matching value. If you know your PNG files have a gamma that doesn't - * match the output you can take advantage of the fact that - * png_set_alpha_mode always sets the output gamma but only sets the PNG - * default if it is not already set: - * - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); - * The first call sets both the default and the output gamma values, the - * second call overrides the output gamma without changing the default. This - * is easier than achieving the same effect with png_set_gamma. You must use - * PNG_ALPHA_PNG for the first call - internal checking in png_set_alpha will - * fire if more than one call to png_set_alpha_mode and png_set_background is - * made in the same read operation, however multiple calls with PNG_ALPHA_PNG - * are ignored. - */ - -#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED -PNG_EXPORT(36, void, png_set_strip_alpha, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) -PNG_EXPORT(37, void, png_set_swap_alpha, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) -PNG_EXPORT(38, void, png_set_invert_alpha, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) -/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ -PNG_EXPORT(39, void, png_set_filler, (png_structrp png_ptr, png_uint_32 filler, - int flags)); -/* The values of the PNG_FILLER_ defines should NOT be changed */ -# define PNG_FILLER_BEFORE 0 -# define PNG_FILLER_AFTER 1 -/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ -PNG_EXPORT(40, void, png_set_add_alpha, (png_structrp png_ptr, - png_uint_32 filler, int flags)); -#endif /* READ_FILLER || WRITE_FILLER */ - -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -/* Swap bytes in 16-bit depth files. */ -PNG_EXPORT(41, void, png_set_swap, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) -/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ -PNG_EXPORT(42, void, png_set_packing, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ - defined(PNG_WRITE_PACKSWAP_SUPPORTED) -/* Swap packing order of pixels in bytes. */ -PNG_EXPORT(43, void, png_set_packswap, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) -/* Converts files to legal bit depths. */ -PNG_EXPORT(44, void, png_set_shift, (png_structrp png_ptr, png_const_color_8p - true_bits)); -#endif - -#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ - defined(PNG_WRITE_INTERLACING_SUPPORTED) -/* Have the code handle the interlacing. Returns the number of passes. - * MUST be called before png_read_update_info or png_start_read_image, - * otherwise it will not have the desired effect. Note that it is still - * necessary to call png_read_row or png_read_rows png_get_image_height - * times for each pass. -*/ -PNG_EXPORT(45, int, png_set_interlace_handling, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -/* Invert monochrome files */ -PNG_EXPORT(46, void, png_set_invert_mono, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_BACKGROUND_SUPPORTED -/* Handle alpha and tRNS by replacing with a background color. Prior to - * libpng-1.5.4 this API must not be called before the PNG file header has been - * read. Doing so will result in unexpected behavior and possible warnings or - * errors if the PNG file contains a bKGD chunk. - */ -PNG_FP_EXPORT(47, void, png_set_background, (png_structrp png_ptr, - png_const_color_16p background_color, int background_gamma_code, - int need_expand, double background_gamma)) -PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structrp png_ptr, - png_const_color_16p background_color, int background_gamma_code, - int need_expand, png_fixed_point background_gamma)) -#endif -#ifdef PNG_READ_BACKGROUND_SUPPORTED -# define PNG_BACKGROUND_GAMMA_UNKNOWN 0 -# define PNG_BACKGROUND_GAMMA_SCREEN 1 -# define PNG_BACKGROUND_GAMMA_FILE 2 -# define PNG_BACKGROUND_GAMMA_UNIQUE 3 -#endif - -#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED -/* Scale a 16-bit depth file down to 8-bit, accurately. */ -PNG_EXPORT(229, void, png_set_scale_16, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED -#define PNG_READ_16_TO_8 SUPPORTED /* Name prior to 1.5.4 */ -/* Strip the second byte of information from a 16-bit depth file. */ -PNG_EXPORT(48, void, png_set_strip_16, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_QUANTIZE_SUPPORTED -/* Turn on quantizing, and reduce the palette to the number of colors - * available. - */ -PNG_EXPORT(49, void, png_set_quantize, (png_structrp png_ptr, - png_colorp palette, int num_palette, int maximum_colors, - png_const_uint_16p histogram, int full_quantize)); -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED -/* The threshold on gamma processing is configurable but hard-wired into the - * library. The following is the floating point variant. - */ -#define PNG_GAMMA_THRESHOLD (PNG_GAMMA_THRESHOLD_FIXED*.00001) - -/* Handle gamma correction. Screen_gamma=(display_exponent). - * NOTE: this API simply sets the screen and file gamma values. It will - * therefore override the value for gamma in a PNG file if it is called after - * the file header has been read - use with care - call before reading the PNG - * file for best results! - * - * These routines accept the same gamma values as png_set_alpha_mode (described - * above). The PNG_GAMMA_ defines and PNG_DEFAULT_sRGB can be passed to either - * API (floating point or fixed.) Notice, however, that the 'file_gamma' value - * is the inverse of a 'screen gamma' value. - */ -PNG_FP_EXPORT(50, void, png_set_gamma, (png_structrp png_ptr, - double screen_gamma, double override_file_gamma)) -PNG_FIXED_EXPORT(208, void, png_set_gamma_fixed, (png_structrp png_ptr, - png_fixed_point screen_gamma, png_fixed_point override_file_gamma)) -#endif - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -/* Set how many lines between output flushes - 0 for no flushing */ -PNG_EXPORT(51, void, png_set_flush, (png_structrp png_ptr, int nrows)); -/* Flush the current PNG output buffer */ -PNG_EXPORT(52, void, png_write_flush, (png_structrp png_ptr)); -#endif - -/* Optional update palette with requested transformations */ -PNG_EXPORT(53, void, png_start_read_image, (png_structrp png_ptr)); - -/* Optional call to update the users info structure */ -PNG_EXPORT(54, void, png_read_update_info, (png_structrp png_ptr, - png_inforp info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read one or more rows of image data. */ -PNG_EXPORT(55, void, png_read_rows, (png_structrp png_ptr, png_bytepp row, - png_bytepp display_row, png_uint_32 num_rows)); -#endif - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read a row of data. */ -PNG_EXPORT(56, void, png_read_row, (png_structrp png_ptr, png_bytep row, - png_bytep display_row)); -#endif - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the whole image into memory at once. */ -PNG_EXPORT(57, void, png_read_image, (png_structrp png_ptr, png_bytepp image)); -#endif - -/* Write a row of image data */ -PNG_EXPORT(58, void, png_write_row, (png_structrp png_ptr, - png_const_bytep row)); - -/* Write a few rows of image data: (*row) is not written; however, the type - * is declared as writeable to maintain compatibility with previous versions - * of libpng and to allow the 'display_row' array from read_rows to be passed - * unchanged to write_rows. - */ -PNG_EXPORT(59, void, png_write_rows, (png_structrp png_ptr, png_bytepp row, - png_uint_32 num_rows)); - -/* Write the image data */ -PNG_EXPORT(60, void, png_write_image, (png_structrp png_ptr, png_bytepp image)); - -/* Write the end of the PNG file. */ -PNG_EXPORT(61, void, png_write_end, (png_structrp png_ptr, - png_inforp info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the end of the PNG file. */ -PNG_EXPORT(62, void, png_read_end, (png_structrp png_ptr, png_inforp info_ptr)); -#endif - -/* Free any memory associated with the png_info_struct */ -PNG_EXPORT(63, void, png_destroy_info_struct, (png_const_structrp png_ptr, - png_infopp info_ptr_ptr)); - -/* Free any memory associated with the png_struct and the png_info_structs */ -PNG_EXPORT(64, void, png_destroy_read_struct, (png_structpp png_ptr_ptr, - png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); - -/* Free any memory associated with the png_struct and the png_info_structs */ -PNG_EXPORT(65, void, png_destroy_write_struct, (png_structpp png_ptr_ptr, - png_infopp info_ptr_ptr)); - -/* Set the libpng method of handling chunk CRC errors */ -PNG_EXPORT(66, void, png_set_crc_action, (png_structrp png_ptr, int crit_action, - int ancil_action)); - -/* Values for png_set_crc_action() say how to handle CRC errors in - * ancillary and critical chunks, and whether to use the data contained - * therein. Note that it is impossible to "discard" data in a critical - * chunk. For versions prior to 0.90, the action was always error/quit, - * whereas in version 0.90 and later, the action for CRC errors in ancillary - * chunks is warn/discard. These values should NOT be changed. - * - * value action:critical action:ancillary - */ -#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ -#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ -#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ -#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ -#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ -#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ - -#ifdef PNG_WRITE_SUPPORTED -/* These functions give the user control over the scan-line filtering in - * libpng and the compression methods used by zlib. These functions are - * mainly useful for testing, as the defaults should work with most users. - * Those users who are tight on memory or want faster performance at the - * expense of compression can modify them. See the compression library - * header file (zlib.h) for an explination of the compression functions. - */ - -/* Set the filtering method(s) used by libpng. Currently, the only valid - * value for "method" is 0. - */ -PNG_EXPORT(67, void, png_set_filter, (png_structrp png_ptr, int method, - int filters)); -#endif /* WRITE */ - -/* Flags for png_set_filter() to say which filters to use. The flags - * are chosen so that they don't conflict with real filter types - * below, in case they are supplied instead of the #defined constants. - * These values should NOT be changed. - */ -#define PNG_NO_FILTERS 0x00 -#define PNG_FILTER_NONE 0x08 -#define PNG_FILTER_SUB 0x10 -#define PNG_FILTER_UP 0x20 -#define PNG_FILTER_AVG 0x40 -#define PNG_FILTER_PAETH 0x80 -#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \ - PNG_FILTER_AVG | PNG_FILTER_PAETH) - -/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. - * These defines should NOT be changed. - */ -#define PNG_FILTER_VALUE_NONE 0 -#define PNG_FILTER_VALUE_SUB 1 -#define PNG_FILTER_VALUE_UP 2 -#define PNG_FILTER_VALUE_AVG 3 -#define PNG_FILTER_VALUE_PAETH 4 -#define PNG_FILTER_VALUE_LAST 5 - -#ifdef PNG_WRITE_SUPPORTED -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* DEPRECATED */ -PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structrp png_ptr, - int heuristic_method, int num_weights, png_const_doublep filter_weights, - png_const_doublep filter_costs)) -PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, - (png_structrp png_ptr, int heuristic_method, int num_weights, - png_const_fixed_point_p filter_weights, - png_const_fixed_point_p filter_costs)) -#endif /* WRITE_WEIGHTED_FILTER */ - -/* The following are no longer used and will be removed from libpng-1.7: */ -#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ -#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ -#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ -#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ - -/* Set the library compression level. Currently, valid values range from - * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 - * (0 - no compression, 9 - "maximal" compression). Note that tests have - * shown that zlib compression levels 3-6 usually perform as well as level 9 - * for PNG images, and do considerably fewer caclulations. In the future, - * these values may not correspond directly to the zlib compression levels. - */ -#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED -PNG_EXPORT(69, void, png_set_compression_level, (png_structrp png_ptr, - int level)); - -PNG_EXPORT(70, void, png_set_compression_mem_level, (png_structrp png_ptr, - int mem_level)); - -PNG_EXPORT(71, void, png_set_compression_strategy, (png_structrp png_ptr, - int strategy)); - -/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a - * smaller value of window_bits if it can do so safely. - */ -PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structrp png_ptr, - int window_bits)); - -PNG_EXPORT(73, void, png_set_compression_method, (png_structrp png_ptr, - int method)); -#endif /* WRITE_CUSTOMIZE_COMPRESSION */ - -#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED -/* Also set zlib parameters for compressing non-IDAT chunks */ -PNG_EXPORT(222, void, png_set_text_compression_level, (png_structrp png_ptr, - int level)); - -PNG_EXPORT(223, void, png_set_text_compression_mem_level, (png_structrp png_ptr, - int mem_level)); - -PNG_EXPORT(224, void, png_set_text_compression_strategy, (png_structrp png_ptr, - int strategy)); - -/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a - * smaller value of window_bits if it can do so safely. - */ -PNG_EXPORT(225, void, png_set_text_compression_window_bits, - (png_structrp png_ptr, int window_bits)); - -PNG_EXPORT(226, void, png_set_text_compression_method, (png_structrp png_ptr, - int method)); -#endif /* WRITE_CUSTOMIZE_ZTXT_COMPRESSION */ -#endif /* WRITE */ - -/* These next functions are called for input/output, memory, and error - * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, - * and call standard C I/O routines such as fread(), fwrite(), and - * fprintf(). These functions can be made to use other I/O routines - * at run time for those applications that need to handle I/O in a - * different manner by calling png_set_???_fn(). See libpng-manual.txt for - * more information. - */ - -#ifdef PNG_STDIO_SUPPORTED -/* Initialize the input/output for the PNG file to the default functions. */ -PNG_EXPORT(74, void, png_init_io, (png_structrp png_ptr, png_FILE_p fp)); -#endif - -/* Replace the (error and abort), and warning functions with user - * supplied functions. If no messages are to be printed you must still - * write and use replacement functions. The replacement error_fn should - * still do a longjmp to the last setjmp location if you are using this - * method of error handling. If error_fn or warning_fn is NULL, the - * default function will be used. - */ - -PNG_EXPORT(75, void, png_set_error_fn, (png_structrp png_ptr, - png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); - -/* Return the user pointer associated with the error functions */ -PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structrp png_ptr)); - -/* Replace the default data output functions with a user supplied one(s). - * If buffered output is not used, then output_flush_fn can be set to NULL. - * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time - * output_flush_fn will be ignored (and thus can be NULL). - * It is probably a mistake to use NULL for output_flush_fn if - * write_data_fn is not also NULL unless you have built libpng with - * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's - * default flush function, which uses the standard *FILE structure, will - * be used. - */ -PNG_EXPORT(77, void, png_set_write_fn, (png_structrp png_ptr, png_voidp io_ptr, - png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); - -/* Replace the default data input function with a user supplied one. */ -PNG_EXPORT(78, void, png_set_read_fn, (png_structrp png_ptr, png_voidp io_ptr, - png_rw_ptr read_data_fn)); - -/* Return the user pointer associated with the I/O functions */ -PNG_EXPORT(79, png_voidp, png_get_io_ptr, (png_const_structrp png_ptr)); - -PNG_EXPORT(80, void, png_set_read_status_fn, (png_structrp png_ptr, - png_read_status_ptr read_row_fn)); - -PNG_EXPORT(81, void, png_set_write_status_fn, (png_structrp png_ptr, - png_write_status_ptr write_row_fn)); - -#ifdef PNG_USER_MEM_SUPPORTED -/* Replace the default memory allocation functions with user supplied one(s). */ -PNG_EXPORT(82, void, png_set_mem_fn, (png_structrp png_ptr, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn)); -/* Return the user pointer associated with the memory functions */ -PNG_EXPORT(83, png_voidp, png_get_mem_ptr, (png_const_structrp png_ptr)); -#endif - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED -PNG_EXPORT(84, void, png_set_read_user_transform_fn, (png_structrp png_ptr, - png_user_transform_ptr read_user_transform_fn)); -#endif - -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED -PNG_EXPORT(85, void, png_set_write_user_transform_fn, (png_structrp png_ptr, - png_user_transform_ptr write_user_transform_fn)); -#endif - -#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED -PNG_EXPORT(86, void, png_set_user_transform_info, (png_structrp png_ptr, - png_voidp user_transform_ptr, int user_transform_depth, - int user_transform_channels)); -/* Return the user pointer associated with the user transform functions */ -PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr, - (png_const_structrp png_ptr)); -#endif - -#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED -/* Return information about the row currently being processed. Note that these - * APIs do not fail but will return unexpected results if called outside a user - * transform callback. Also note that when transforming an interlaced image the - * row number is the row number within the sub-image of the interlace pass, so - * the value will increase to the height of the sub-image (not the full image) - * then reset to 0 for the next pass. - * - * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to - * find the output pixel (x,y) given an interlaced sub-image pixel - * (row,col,pass). (See below for these macros.) - */ -PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structrp)); -PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structrp)); -#endif - -#ifdef PNG_READ_USER_CHUNKS_SUPPORTED -/* This callback is called only for *unknown* chunks. If - * PNG_HANDLE_AS_UNKNOWN_SUPPORTED is set then it is possible to set known - * chunks to be treated as unknown, however in this case the callback must do - * any processing required by the chunk (e.g. by calling the appropriate - * png_set_ APIs.) - * - * There is no write support - on write, by default, all the chunks in the - * 'unknown' list are written in the specified position. - * - * The integer return from the callback function is interpreted thus: - * - * negative: An error occurred; png_chunk_error will be called. - * zero: The chunk was not handled, the chunk will be saved. A critical - * chunk will cause an error at this point unless it is to be saved. - * positive: The chunk was handled, libpng will ignore/discard it. - * - * See "INTERACTION WTIH USER CHUNK CALLBACKS" below for important notes about - * how this behavior will change in libpng 1.7 - */ -PNG_EXPORT(88, void, png_set_read_user_chunk_fn, (png_structrp png_ptr, - png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -PNG_EXPORT(89, png_voidp, png_get_user_chunk_ptr, (png_const_structrp png_ptr)); -#endif - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -/* Sets the function callbacks for the push reader, and a pointer to a - * user-defined structure available to the callback functions. - */ -PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structrp png_ptr, - png_voidp progressive_ptr, png_progressive_info_ptr info_fn, - png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)); - -/* Returns the user pointer associated with the push read functions */ -PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, - (png_const_structrp png_ptr)); - -/* Function to be called when data becomes available */ -PNG_EXPORT(92, void, png_process_data, (png_structrp png_ptr, - png_inforp info_ptr, png_bytep buffer, png_size_t buffer_size)); - -/* A function which may be called *only* within png_process_data to stop the - * processing of any more data. The function returns the number of bytes - * remaining, excluding any that libpng has cached internally. A subsequent - * call to png_process_data must supply these bytes again. If the argument - * 'save' is set to true the routine will first save all the pending data and - * will always return 0. - */ -PNG_EXPORT(219, png_size_t, png_process_data_pause, (png_structrp, int save)); - -/* A function which may be called *only* outside (after) a call to - * png_process_data. It returns the number of bytes of data to skip in the - * input. Normally it will return 0, but if it returns a non-zero value the - * application must skip than number of bytes of input data and pass the - * following data to the next call to png_process_data. - */ -PNG_EXPORT(220, png_uint_32, png_process_data_skip, (png_structrp)); - -/* Function that combines rows. 'new_row' is a flag that should come from - * the callback and be non-NULL if anything needs to be done; the library - * stores its own version of the new data internally and ignores the passed - * in value. - */ -PNG_EXPORT(93, void, png_progressive_combine_row, (png_const_structrp png_ptr, - png_bytep old_row, png_const_bytep new_row)); -#endif /* PROGRESSIVE_READ */ - -PNG_EXPORTA(94, png_voidp, png_malloc, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); -/* Added at libpng version 1.4.0 */ -PNG_EXPORTA(95, png_voidp, png_calloc, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); - -/* Added at libpng version 1.2.4 */ -PNG_EXPORTA(96, png_voidp, png_malloc_warn, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); - -/* Frees a pointer allocated by png_malloc() */ -PNG_EXPORT(97, void, png_free, (png_const_structrp png_ptr, png_voidp ptr)); - -/* Free data that was allocated internally */ -PNG_EXPORT(98, void, png_free_data, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 free_me, int num)); - -/* Reassign responsibility for freeing existing data, whether allocated - * by libpng or by the application; this works on the png_info structure passed - * in, it does not change the state for other png_info structures. - * - * It is unlikely that this function works correctly as of 1.6.0 and using it - * may result either in memory leaks or double free of allocated data. - */ -PNG_EXPORT(99, void, png_data_freer, (png_const_structrp png_ptr, - png_inforp info_ptr, int freer, png_uint_32 mask)); - -/* Assignments for png_data_freer */ -#define PNG_DESTROY_WILL_FREE_DATA 1 -#define PNG_SET_WILL_FREE_DATA 1 -#define PNG_USER_WILL_FREE_DATA 2 -/* Flags for png_ptr->free_me and info_ptr->free_me */ -#define PNG_FREE_HIST 0x0008 -#define PNG_FREE_ICCP 0x0010 -#define PNG_FREE_SPLT 0x0020 -#define PNG_FREE_ROWS 0x0040 -#define PNG_FREE_PCAL 0x0080 -#define PNG_FREE_SCAL 0x0100 -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -# define PNG_FREE_UNKN 0x0200 -#endif -/* PNG_FREE_LIST 0x0400 removed in 1.6.0 because it is ignored */ -#define PNG_FREE_PLTE 0x1000 -#define PNG_FREE_TRNS 0x2000 -#define PNG_FREE_TEXT 0x4000 -#define PNG_FREE_ALL 0x7fff -#define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ - -#ifdef PNG_USER_MEM_SUPPORTED -PNG_EXPORTA(100, png_voidp, png_malloc_default, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED PNG_DEPRECATED); -PNG_EXPORTA(101, void, png_free_default, (png_const_structrp png_ptr, - png_voidp ptr), PNG_DEPRECATED); -#endif - -#ifdef PNG_ERROR_TEXT_SUPPORTED -/* Fatal error in PNG image of libpng - can't continue */ -PNG_EXPORTA(102, void, png_error, (png_const_structrp png_ptr, - png_const_charp error_message), PNG_NORETURN); - -/* The same, but the chunk name is prepended to the error string. */ -PNG_EXPORTA(103, void, png_chunk_error, (png_const_structrp png_ptr, - png_const_charp error_message), PNG_NORETURN); - -#else -/* Fatal error in PNG image of libpng - can't continue */ -PNG_EXPORTA(104, void, png_err, (png_const_structrp png_ptr), PNG_NORETURN); -# define png_error(s1,s2) png_err(s1) -# define png_chunk_error(s1,s2) png_err(s1) -#endif - -#ifdef PNG_WARNINGS_SUPPORTED -/* Non-fatal error in libpng. Can continue, but may have a problem. */ -PNG_EXPORT(105, void, png_warning, (png_const_structrp png_ptr, - png_const_charp warning_message)); - -/* Non-fatal error in libpng, chunk name is prepended to message. */ -PNG_EXPORT(106, void, png_chunk_warning, (png_const_structrp png_ptr, - png_const_charp warning_message)); -#else -# define png_warning(s1,s2) ((void)(s1)) -# define png_chunk_warning(s1,s2) ((void)(s1)) -#endif - -#ifdef PNG_BENIGN_ERRORS_SUPPORTED -/* Benign error in libpng. Can continue, but may have a problem. - * User can choose whether to handle as a fatal error or as a warning. */ -PNG_EXPORT(107, void, png_benign_error, (png_const_structrp png_ptr, - png_const_charp warning_message)); - -#ifdef PNG_READ_SUPPORTED -/* Same, chunk name is prepended to message (only during read) */ -PNG_EXPORT(108, void, png_chunk_benign_error, (png_const_structrp png_ptr, - png_const_charp warning_message)); -#endif - -PNG_EXPORT(109, void, png_set_benign_errors, - (png_structrp png_ptr, int allowed)); -#else -# ifdef PNG_ALLOW_BENIGN_ERRORS -# define png_benign_error png_warning -# define png_chunk_benign_error png_chunk_warning -# else -# define png_benign_error png_error -# define png_chunk_benign_error png_chunk_error -# endif -#endif - -/* The png_set_<chunk> functions are for storing values in the png_info_struct. - * Similarly, the png_get_<chunk> calls are used to read values from the - * png_info_struct, either storing the parameters in the passed variables, or - * setting pointers into the png_info_struct where the data is stored. The - * png_get_<chunk> functions return a non-zero value if the data was available - * in info_ptr, or return zero and do not change any of the parameters if the - * data was not available. - * - * These functions should be used instead of directly accessing png_info - * to avoid problems with future changes in the size and internal layout of - * png_info_struct. - */ -/* Returns "flag" if chunk data is valid in info_ptr. */ -PNG_EXPORT(110, png_uint_32, png_get_valid, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 flag)); - -/* Returns number of bytes needed to hold a transformed row. */ -PNG_EXPORT(111, png_size_t, png_get_rowbytes, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -#ifdef PNG_INFO_IMAGE_SUPPORTED -/* Returns row_pointers, which is an array of pointers to scanlines that was - * returned from png_read_png(). - */ -PNG_EXPORT(112, png_bytepp, png_get_rows, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Set row_pointers, which is an array of pointers to scanlines for use - * by png_write_png(). - */ -PNG_EXPORT(113, void, png_set_rows, (png_const_structrp png_ptr, - png_inforp info_ptr, png_bytepp row_pointers)); -#endif - -/* Returns number of color channels in image. */ -PNG_EXPORT(114, png_byte, png_get_channels, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -#ifdef PNG_EASY_ACCESS_SUPPORTED -/* Returns image width in pixels. */ -PNG_EXPORT(115, png_uint_32, png_get_image_width, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image height in pixels. */ -PNG_EXPORT(116, png_uint_32, png_get_image_height, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image bit_depth. */ -PNG_EXPORT(117, png_byte, png_get_bit_depth, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image color_type. */ -PNG_EXPORT(118, png_byte, png_get_color_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image filter_type. */ -PNG_EXPORT(119, png_byte, png_get_filter_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image interlace_type. */ -PNG_EXPORT(120, png_byte, png_get_interlace_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image compression_type. */ -PNG_EXPORT(121, png_byte, png_get_compression_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image resolution in pixels per meter, from pHYs chunk data. */ -PNG_EXPORT(122, png_uint_32, png_get_pixels_per_meter, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(123, png_uint_32, png_get_x_pixels_per_meter, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(124, png_uint_32, png_get_y_pixels_per_meter, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -/* Returns pixel aspect ratio, computed from pHYs chunk data. */ -PNG_FP_EXPORT(125, float, png_get_pixel_aspect_ratio, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -PNG_FIXED_EXPORT(210, png_fixed_point, png_get_pixel_aspect_ratio_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) - -/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ -PNG_EXPORT(126, png_int_32, png_get_x_offset_pixels, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(127, png_int_32, png_get_y_offset_pixels, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(128, png_int_32, png_get_x_offset_microns, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(129, png_int_32, png_get_y_offset_microns, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -#endif /* EASY_ACCESS */ - -#ifdef PNG_READ_SUPPORTED -/* Returns pointer to signature string read from PNG header */ -PNG_EXPORT(130, png_const_bytep, png_get_signature, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); -#endif - -#ifdef PNG_bKGD_SUPPORTED -PNG_EXPORT(131, png_uint_32, png_get_bKGD, (png_const_structrp png_ptr, - png_inforp info_ptr, png_color_16p *background)); -#endif - -#ifdef PNG_bKGD_SUPPORTED -PNG_EXPORT(132, void, png_set_bKGD, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_color_16p background)); -#endif - -#ifdef PNG_cHRM_SUPPORTED -PNG_FP_EXPORT(133, png_uint_32, png_get_cHRM, (png_const_structrp png_ptr, - png_const_inforp info_ptr, double *white_x, double *white_y, double *red_x, - double *red_y, double *green_x, double *green_y, double *blue_x, - double *blue_y)) -PNG_FP_EXPORT(230, png_uint_32, png_get_cHRM_XYZ, (png_const_structrp png_ptr, - png_const_inforp info_ptr, double *red_X, double *red_Y, double *red_Z, - double *green_X, double *green_Y, double *green_Z, double *blue_X, - double *blue_Y, double *blue_Z)) -PNG_FIXED_EXPORT(134, png_uint_32, png_get_cHRM_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_white_x, png_fixed_point *int_white_y, - png_fixed_point *int_red_x, png_fixed_point *int_red_y, - png_fixed_point *int_green_x, png_fixed_point *int_green_y, - png_fixed_point *int_blue_x, png_fixed_point *int_blue_y)) -PNG_FIXED_EXPORT(231, png_uint_32, png_get_cHRM_XYZ_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_red_X, png_fixed_point *int_red_Y, - png_fixed_point *int_red_Z, png_fixed_point *int_green_X, - png_fixed_point *int_green_Y, png_fixed_point *int_green_Z, - png_fixed_point *int_blue_X, png_fixed_point *int_blue_Y, - png_fixed_point *int_blue_Z)) -#endif - -#ifdef PNG_cHRM_SUPPORTED -PNG_FP_EXPORT(135, void, png_set_cHRM, (png_const_structrp png_ptr, - png_inforp info_ptr, - double white_x, double white_y, double red_x, double red_y, double green_x, - double green_y, double blue_x, double blue_y)) -PNG_FP_EXPORT(232, void, png_set_cHRM_XYZ, (png_const_structrp png_ptr, - png_inforp info_ptr, double red_X, double red_Y, double red_Z, - double green_X, double green_Y, double green_Z, double blue_X, - double blue_Y, double blue_Z)) -PNG_FIXED_EXPORT(136, void, png_set_cHRM_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, png_fixed_point int_white_x, - png_fixed_point int_white_y, png_fixed_point int_red_x, - png_fixed_point int_red_y, png_fixed_point int_green_x, - png_fixed_point int_green_y, png_fixed_point int_blue_x, - png_fixed_point int_blue_y)) -PNG_FIXED_EXPORT(233, void, png_set_cHRM_XYZ_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, png_fixed_point int_red_X, png_fixed_point int_red_Y, - png_fixed_point int_red_Z, png_fixed_point int_green_X, - png_fixed_point int_green_Y, png_fixed_point int_green_Z, - png_fixed_point int_blue_X, png_fixed_point int_blue_Y, - png_fixed_point int_blue_Z)) -#endif - -#ifdef PNG_gAMA_SUPPORTED -PNG_FP_EXPORT(137, png_uint_32, png_get_gAMA, (png_const_structrp png_ptr, - png_const_inforp info_ptr, double *file_gamma)) -PNG_FIXED_EXPORT(138, png_uint_32, png_get_gAMA_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_file_gamma)) -#endif - -#ifdef PNG_gAMA_SUPPORTED -PNG_FP_EXPORT(139, void, png_set_gAMA, (png_const_structrp png_ptr, - png_inforp info_ptr, double file_gamma)) -PNG_FIXED_EXPORT(140, void, png_set_gAMA_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, png_fixed_point int_file_gamma)) -#endif - -#ifdef PNG_hIST_SUPPORTED -PNG_EXPORT(141, png_uint_32, png_get_hIST, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_16p *hist)); -#endif - -#ifdef PNG_hIST_SUPPORTED -PNG_EXPORT(142, void, png_set_hIST, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_uint_16p hist)); -#endif - -PNG_EXPORT(143, png_uint_32, png_get_IHDR, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *width, png_uint_32 *height, - int *bit_depth, int *color_type, int *interlace_method, - int *compression_method, int *filter_method)); - -PNG_EXPORT(144, void, png_set_IHDR, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, - int color_type, int interlace_method, int compression_method, - int filter_method)); - -#ifdef PNG_oFFs_SUPPORTED -PNG_EXPORT(145, png_uint_32, png_get_oFFs, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, - int *unit_type)); -#endif - -#ifdef PNG_oFFs_SUPPORTED -PNG_EXPORT(146, void, png_set_oFFs, (png_const_structrp png_ptr, - png_inforp info_ptr, png_int_32 offset_x, png_int_32 offset_y, - int unit_type)); -#endif - -#ifdef PNG_pCAL_SUPPORTED -PNG_EXPORT(147, png_uint_32, png_get_pCAL, (png_const_structrp png_ptr, - png_inforp info_ptr, png_charp *purpose, png_int_32 *X0, - png_int_32 *X1, int *type, int *nparams, png_charp *units, - png_charpp *params)); -#endif - -#ifdef PNG_pCAL_SUPPORTED -PNG_EXPORT(148, void, png_set_pCAL, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_charp purpose, png_int_32 X0, png_int_32 X1, - int type, int nparams, png_const_charp units, png_charpp params)); -#endif - -#ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(149, png_uint_32, png_get_pHYs, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, - int *unit_type)); -#endif - -#ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(150, void, png_set_pHYs, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); -#endif - -PNG_EXPORT(151, png_uint_32, png_get_PLTE, (png_const_structrp png_ptr, - png_inforp info_ptr, png_colorp *palette, int *num_palette)); - -PNG_EXPORT(152, void, png_set_PLTE, (png_structrp png_ptr, - png_inforp info_ptr, png_const_colorp palette, int num_palette)); - -#ifdef PNG_sBIT_SUPPORTED -PNG_EXPORT(153, png_uint_32, png_get_sBIT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_color_8p *sig_bit)); -#endif - -#ifdef PNG_sBIT_SUPPORTED -PNG_EXPORT(154, void, png_set_sBIT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_color_8p sig_bit)); -#endif - -#ifdef PNG_sRGB_SUPPORTED -PNG_EXPORT(155, png_uint_32, png_get_sRGB, (png_const_structrp png_ptr, - png_const_inforp info_ptr, int *file_srgb_intent)); -#endif - -#ifdef PNG_sRGB_SUPPORTED -PNG_EXPORT(156, void, png_set_sRGB, (png_const_structrp png_ptr, - png_inforp info_ptr, int srgb_intent)); -PNG_EXPORT(157, void, png_set_sRGB_gAMA_and_cHRM, (png_const_structrp png_ptr, - png_inforp info_ptr, int srgb_intent)); -#endif - -#ifdef PNG_iCCP_SUPPORTED -PNG_EXPORT(158, png_uint_32, png_get_iCCP, (png_const_structrp png_ptr, - png_inforp info_ptr, png_charpp name, int *compression_type, - png_bytepp profile, png_uint_32 *proflen)); -#endif - -#ifdef PNG_iCCP_SUPPORTED -PNG_EXPORT(159, void, png_set_iCCP, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_charp name, int compression_type, - png_const_bytep profile, png_uint_32 proflen)); -#endif - -#ifdef PNG_sPLT_SUPPORTED -PNG_EXPORT(160, int, png_get_sPLT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_sPLT_tpp entries)); -#endif - -#ifdef PNG_sPLT_SUPPORTED -PNG_EXPORT(161, void, png_set_sPLT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_sPLT_tp entries, int nentries)); -#endif - -#ifdef PNG_TEXT_SUPPORTED -/* png_get_text also returns the number of text chunks in *num_text */ -PNG_EXPORT(162, int, png_get_text, (png_const_structrp png_ptr, - png_inforp info_ptr, png_textp *text_ptr, int *num_text)); -#endif - -/* Note while png_set_text() will accept a structure whose text, - * language, and translated keywords are NULL pointers, the structure - * returned by png_get_text will always contain regular - * zero-terminated C strings. They might be empty strings but - * they will never be NULL pointers. - */ - -#ifdef PNG_TEXT_SUPPORTED -PNG_EXPORT(163, void, png_set_text, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_textp text_ptr, int num_text)); -#endif - -#ifdef PNG_tIME_SUPPORTED -PNG_EXPORT(164, png_uint_32, png_get_tIME, (png_const_structrp png_ptr, - png_inforp info_ptr, png_timep *mod_time)); -#endif - -#ifdef PNG_tIME_SUPPORTED -PNG_EXPORT(165, void, png_set_tIME, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_timep mod_time)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -PNG_EXPORT(166, png_uint_32, png_get_tRNS, (png_const_structrp png_ptr, - png_inforp info_ptr, png_bytep *trans_alpha, int *num_trans, - png_color_16p *trans_color)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -PNG_EXPORT(167, void, png_set_tRNS, (png_structrp png_ptr, - png_inforp info_ptr, png_const_bytep trans_alpha, int num_trans, - png_const_color_16p trans_color)); -#endif - -#ifdef PNG_sCAL_SUPPORTED -PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, (png_const_structrp png_ptr, - png_const_inforp info_ptr, int *unit, double *width, double *height)) -#if defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) || \ - defined(PNG_FLOATING_POINT_SUPPORTED) -/* NOTE: this API is currently implemented using floating point arithmetic, - * consequently it can only be used on systems with floating point support. - * In any case the range of values supported by png_fixed_point is small and it - * is highly recommended that png_get_sCAL_s be used instead. - */ -PNG_FIXED_EXPORT(214, png_uint_32, png_get_sCAL_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, - png_fixed_point *width, png_fixed_point *height)) -#endif -PNG_EXPORT(169, png_uint_32, png_get_sCAL_s, - (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, - png_charpp swidth, png_charpp sheight)); - -PNG_FP_EXPORT(170, void, png_set_sCAL, (png_const_structrp png_ptr, - png_inforp info_ptr, int unit, double width, double height)) -PNG_FIXED_EXPORT(213, void, png_set_sCAL_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, int unit, png_fixed_point width, - png_fixed_point height)) -PNG_EXPORT(171, void, png_set_sCAL_s, (png_const_structrp png_ptr, - png_inforp info_ptr, int unit, - png_const_charp swidth, png_const_charp sheight)); -#endif /* sCAL */ - -#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED -/* Provide the default handling for all unknown chunks or, optionally, for - * specific unknown chunks. - * - * NOTE: prior to 1.6.0 the handling specified for particular chunks on read was - * ignored and the default was used, the per-chunk setting only had an effect on - * write. If you wish to have chunk-specific handling on read in code that must - * work on earlier versions you must use a user chunk callback to specify the - * desired handling (keep or discard.) - * - * The 'keep' parameter is a PNG_HANDLE_CHUNK_ value as listed below. The - * parameter is interpreted as follows: - * - * READ: - * PNG_HANDLE_CHUNK_AS_DEFAULT: - * Known chunks: do normal libpng processing, do not keep the chunk (but - * see the comments below about PNG_HANDLE_AS_UNKNOWN_SUPPORTED) - * Unknown chunks: for a specific chunk use the global default, when used - * as the default discard the chunk data. - * PNG_HANDLE_CHUNK_NEVER: - * Discard the chunk data. - * PNG_HANDLE_CHUNK_IF_SAFE: - * Keep the chunk data if the chunk is not critical else raise a chunk - * error. - * PNG_HANDLE_CHUNK_ALWAYS: - * Keep the chunk data. - * - * If the chunk data is saved it can be retrieved using png_get_unknown_chunks, - * below. Notice that specifying "AS_DEFAULT" as a global default is equivalent - * to specifying "NEVER", however when "AS_DEFAULT" is used for specific chunks - * it simply resets the behavior to the libpng default. - * - * INTERACTION WTIH USER CHUNK CALLBACKS: - * The per-chunk handling is always used when there is a png_user_chunk_ptr - * callback and the callback returns 0; the chunk is then always stored *unless* - * it is critical and the per-chunk setting is other than ALWAYS. Notice that - * the global default is *not* used in this case. (In effect the per-chunk - * value is incremented to at least IF_SAFE.) - * - * IMPORTANT NOTE: this behavior will change in libpng 1.7 - the global and - * per-chunk defaults will be honored. If you want to preserve the current - * behavior when your callback returns 0 you must set PNG_HANDLE_CHUNK_IF_SAFE - * as the default - if you don't do this libpng 1.6 will issue a warning. - * - * If you want unhandled unknown chunks to be discarded in libpng 1.6 and - * earlier simply return '1' (handled). - * - * PNG_HANDLE_AS_UNKNOWN_SUPPORTED: - * If this is *not* set known chunks will always be handled by libpng and - * will never be stored in the unknown chunk list. Known chunks listed to - * png_set_keep_unknown_chunks will have no effect. If it is set then known - * chunks listed with a keep other than AS_DEFAULT will *never* be processed - * by libpng, in addition critical chunks must either be processed by the - * callback or saved. - * - * The IHDR and IEND chunks must not be listed. Because this turns off the - * default handling for chunks that would otherwise be recognized the - * behavior of libpng transformations may well become incorrect! - * - * WRITE: - * When writing chunks the options only apply to the chunks specified by - * png_set_unknown_chunks (below), libpng will *always* write known chunks - * required by png_set_ calls and will always write the core critical chunks - * (as required for PLTE). - * - * Each chunk in the png_set_unknown_chunks list is looked up in the - * png_set_keep_unknown_chunks list to find the keep setting, this is then - * interpreted as follows: - * - * PNG_HANDLE_CHUNK_AS_DEFAULT: - * Write safe-to-copy chunks and write other chunks if the global - * default is set to _ALWAYS, otherwise don't write this chunk. - * PNG_HANDLE_CHUNK_NEVER: - * Do not write the chunk. - * PNG_HANDLE_CHUNK_IF_SAFE: - * Write the chunk if it is safe-to-copy, otherwise do not write it. - * PNG_HANDLE_CHUNK_ALWAYS: - * Write the chunk. - * - * Note that the default behavior is effectively the opposite of the read case - - * in read unknown chunks are not stored by default, in write they are written - * by default. Also the behavior of PNG_HANDLE_CHUNK_IF_SAFE is very different - * - on write the safe-to-copy bit is checked, on read the critical bit is - * checked and on read if the chunk is critical an error will be raised. - * - * num_chunks: - * =========== - * If num_chunks is positive, then the "keep" parameter specifies the manner - * for handling only those chunks appearing in the chunk_list array, - * otherwise the chunk list array is ignored. - * - * If num_chunks is 0 the "keep" parameter specifies the default behavior for - * unknown chunks, as described above. - * - * If num_chunks is negative, then the "keep" parameter specifies the manner - * for handling all unknown chunks plus all chunks recognized by libpng - * except for the IHDR, PLTE, tRNS, IDAT, and IEND chunks (which continue to - * be processed by libpng. - */ -PNG_EXPORT(172, void, png_set_keep_unknown_chunks, (png_structrp png_ptr, - int keep, png_const_bytep chunk_list, int num_chunks)); - -/* The "keep" PNG_HANDLE_CHUNK_ parameter for the specified chunk is returned; - * the result is therefore true (non-zero) if special handling is required, - * false for the default handling. - */ -PNG_EXPORT(173, int, png_handle_as_unknown, (png_const_structrp png_ptr, - png_const_bytep chunk_name)); -#endif - -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -PNG_EXPORT(174, void, png_set_unknown_chunks, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_unknown_chunkp unknowns, - int num_unknowns)); - /* NOTE: prior to 1.6.0 this routine set the 'location' field of the added - * unknowns to the location currently stored in the png_struct. This is - * invariably the wrong value on write. To fix this call the following API - * for each chunk in the list with the correct location. If you know your - * code won't be compiled on earlier versions you can rely on - * png_set_unknown_chunks(write-ptr, png_get_unknown_chunks(read-ptr)) doing - * the correct thing. - */ - -PNG_EXPORT(175, void, png_set_unknown_chunk_location, - (png_const_structrp png_ptr, png_inforp info_ptr, int chunk, int location)); - -PNG_EXPORT(176, int, png_get_unknown_chunks, (png_const_structrp png_ptr, - png_inforp info_ptr, png_unknown_chunkpp entries)); -#endif - -/* Png_free_data() will turn off the "valid" flag for anything it frees. - * If you need to turn it off for a chunk that your application has freed, - * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); - */ -PNG_EXPORT(177, void, png_set_invalid, (png_const_structrp png_ptr, - png_inforp info_ptr, int mask)); - -#ifdef PNG_INFO_IMAGE_SUPPORTED -/* The "params" pointer is currently not used and is for future expansion. */ -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -PNG_EXPORT(178, void, png_read_png, (png_structrp png_ptr, png_inforp info_ptr, - int transforms, png_voidp params)); -#endif -#ifdef PNG_WRITE_SUPPORTED -PNG_EXPORT(179, void, png_write_png, (png_structrp png_ptr, png_inforp info_ptr, - int transforms, png_voidp params)); -#endif -#endif - -PNG_EXPORT(180, png_const_charp, png_get_copyright, - (png_const_structrp png_ptr)); -PNG_EXPORT(181, png_const_charp, png_get_header_ver, - (png_const_structrp png_ptr)); -PNG_EXPORT(182, png_const_charp, png_get_header_version, - (png_const_structrp png_ptr)); -PNG_EXPORT(183, png_const_charp, png_get_libpng_ver, - (png_const_structrp png_ptr)); - -#ifdef PNG_MNG_FEATURES_SUPPORTED -PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structrp png_ptr, - png_uint_32 mng_features_permitted)); -#endif - -/* For use in png_set_keep_unknown, added to version 1.2.6 */ -#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 -#define PNG_HANDLE_CHUNK_NEVER 1 -#define PNG_HANDLE_CHUNK_IF_SAFE 2 -#define PNG_HANDLE_CHUNK_ALWAYS 3 -#define PNG_HANDLE_CHUNK_LAST 4 - -/* Strip the prepended error numbers ("#nnn ") from error and warning - * messages before passing them to the error or warning handler. - */ -#ifdef PNG_ERROR_NUMBERS_SUPPORTED -PNG_EXPORT(185, void, png_set_strip_error_numbers, (png_structrp png_ptr, - png_uint_32 strip_mode)); -#endif - -/* Added in libpng-1.2.6 */ -#ifdef PNG_SET_USER_LIMITS_SUPPORTED -PNG_EXPORT(186, void, png_set_user_limits, (png_structrp png_ptr, - png_uint_32 user_width_max, png_uint_32 user_height_max)); -PNG_EXPORT(187, png_uint_32, png_get_user_width_max, - (png_const_structrp png_ptr)); -PNG_EXPORT(188, png_uint_32, png_get_user_height_max, - (png_const_structrp png_ptr)); -/* Added in libpng-1.4.0 */ -PNG_EXPORT(189, void, png_set_chunk_cache_max, (png_structrp png_ptr, - png_uint_32 user_chunk_cache_max)); -PNG_EXPORT(190, png_uint_32, png_get_chunk_cache_max, - (png_const_structrp png_ptr)); -/* Added in libpng-1.4.1 */ -PNG_EXPORT(191, void, png_set_chunk_malloc_max, (png_structrp png_ptr, - png_alloc_size_t user_chunk_cache_max)); -PNG_EXPORT(192, png_alloc_size_t, png_get_chunk_malloc_max, - (png_const_structrp png_ptr)); -#endif - -#if defined(PNG_INCH_CONVERSIONS_SUPPORTED) -PNG_EXPORT(193, png_uint_32, png_get_pixels_per_inch, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -PNG_EXPORT(194, png_uint_32, png_get_x_pixels_per_inch, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -PNG_EXPORT(195, png_uint_32, png_get_y_pixels_per_inch, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -PNG_FP_EXPORT(196, float, png_get_x_offset_inches, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ -PNG_FIXED_EXPORT(211, png_fixed_point, png_get_x_offset_inches_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -#endif - -PNG_FP_EXPORT(197, float, png_get_y_offset_inches, (png_const_structrp png_ptr, - png_const_inforp info_ptr)) -#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ -PNG_FIXED_EXPORT(212, png_fixed_point, png_get_y_offset_inches_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -#endif - -# ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(198, png_uint_32, png_get_pHYs_dpi, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, - int *unit_type)); -# endif /* pHYs */ -#endif /* INCH_CONVERSIONS */ - -/* Added in libpng-1.4.0 */ -#ifdef PNG_IO_STATE_SUPPORTED -PNG_EXPORT(199, png_uint_32, png_get_io_state, (png_const_structrp png_ptr)); - -/* Removed from libpng 1.6; use png_get_io_chunk_type. */ -PNG_REMOVED(200, png_const_bytep, png_get_io_chunk_name, (png_structrp png_ptr), - PNG_DEPRECATED) - -PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, - (png_const_structrp png_ptr)); - -/* The flags returned by png_get_io_state() are the following: */ -# define PNG_IO_NONE 0x0000 /* no I/O at this moment */ -# define PNG_IO_READING 0x0001 /* currently reading */ -# define PNG_IO_WRITING 0x0002 /* currently writing */ -# define PNG_IO_SIGNATURE 0x0010 /* currently at the file signature */ -# define PNG_IO_CHUNK_HDR 0x0020 /* currently at the chunk header */ -# define PNG_IO_CHUNK_DATA 0x0040 /* currently at the chunk data */ -# define PNG_IO_CHUNK_CRC 0x0080 /* currently at the chunk crc */ -# define PNG_IO_MASK_OP 0x000f /* current operation: reading/writing */ -# define PNG_IO_MASK_LOC 0x00f0 /* current location: sig/hdr/data/crc */ -#endif /* IO_STATE */ - -/* Interlace support. The following macros are always defined so that if - * libpng interlace handling is turned off the macros may be used to handle - * interlaced images within the application. - */ -#define PNG_INTERLACE_ADAM7_PASSES 7 - -/* Two macros to return the first row and first column of the original, - * full, image which appears in a given pass. 'pass' is in the range 0 - * to 6 and the result is in the range 0 to 7. - */ -#define PNG_PASS_START_ROW(pass) (((1&~(pass))<<(3-((pass)>>1)))&7) -#define PNG_PASS_START_COL(pass) (((1& (pass))<<(3-(((pass)+1)>>1)))&7) - -/* A macro to return the offset between pixels in the output row for a pair of - * pixels in the input - effectively the inverse of the 'COL_SHIFT' macro that - * follows. Note that ROW_OFFSET is the offset from one row to the next whereas - * COL_OFFSET is from one column to the next, within a row. - */ -#define PNG_PASS_ROW_OFFSET(pass) ((pass)>2?(8>>(((pass)-1)>>1)):8) -#define PNG_PASS_COL_OFFSET(pass) (1<<((7-(pass))>>1)) - -/* Two macros to help evaluate the number of rows or columns in each - * pass. This is expressed as a shift - effectively log2 of the number or - * rows or columns in each 8x8 tile of the original image. - */ -#define PNG_PASS_ROW_SHIFT(pass) ((pass)>2?(8-(pass))>>1:3) -#define PNG_PASS_COL_SHIFT(pass) ((pass)>1?(7-(pass))>>1:3) - -/* Hence two macros to determine the number of rows or columns in a given - * pass of an image given its height or width. In fact these macros may - * return non-zero even though the sub-image is empty, because the other - * dimension may be empty for a small image. - */ -#define PNG_PASS_ROWS(height, pass) (((height)+(((1<<PNG_PASS_ROW_SHIFT(pass))\ - -1)-PNG_PASS_START_ROW(pass)))>>PNG_PASS_ROW_SHIFT(pass)) -#define PNG_PASS_COLS(width, pass) (((width)+(((1<<PNG_PASS_COL_SHIFT(pass))\ - -1)-PNG_PASS_START_COL(pass)))>>PNG_PASS_COL_SHIFT(pass)) - -/* For the reader row callbacks (both progressive and sequential) it is - * necessary to find the row in the output image given a row in an interlaced - * image, so two more macros: - */ -#define PNG_ROW_FROM_PASS_ROW(y_in, pass) \ - (((y_in)<<PNG_PASS_ROW_SHIFT(pass))+PNG_PASS_START_ROW(pass)) -#define PNG_COL_FROM_PASS_COL(x_in, pass) \ - (((x_in)<<PNG_PASS_COL_SHIFT(pass))+PNG_PASS_START_COL(pass)) - -/* Two macros which return a boolean (0 or 1) saying whether the given row - * or column is in a particular pass. These use a common utility macro that - * returns a mask for a given pass - the offset 'off' selects the row or - * column version. The mask has the appropriate bit set for each column in - * the tile. - */ -#define PNG_PASS_MASK(pass,off) ( \ - ((0x110145AF>>(((7-(off))-(pass))<<2)) & 0xF) | \ - ((0x01145AF0>>(((7-(off))-(pass))<<2)) & 0xF0)) - -#define PNG_ROW_IN_INTERLACE_PASS(y, pass) \ - ((PNG_PASS_MASK(pass,0) >> ((y)&7)) & 1) -#define PNG_COL_IN_INTERLACE_PASS(x, pass) \ - ((PNG_PASS_MASK(pass,1) >> ((x)&7)) & 1) - -#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED -/* With these routines we avoid an integer divide, which will be slower on - * most machines. However, it does take more operations than the corresponding - * divide method, so it may be slower on a few RISC systems. There are two - * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. - * - * Note that the rounding factors are NOT supposed to be the same! 128 and - * 32768 are correct for the NODIV code; 127 and 32767 are correct for the - * standard method. - * - * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] - */ - - /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ - -# define png_composite(composite, fg, alpha, bg) \ - { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \ - * (png_uint_16)(alpha) \ - + (png_uint_16)(bg)*(png_uint_16)(255 \ - - (png_uint_16)(alpha)) + 128); \ - (composite) = (png_byte)(((temp + (temp >> 8)) >> 8) & 0xff); } - -# define png_composite_16(composite, fg, alpha, bg) \ - { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) \ - * (png_uint_32)(alpha) \ - + (png_uint_32)(bg)*(65535 \ - - (png_uint_32)(alpha)) + 32768); \ - (composite) = (png_uint_16)(0xffff & ((temp + (temp >> 16)) >> 16)); } - -#else /* Standard method using integer division */ - -# define png_composite(composite, fg, alpha, bg) \ - (composite) = \ - (png_byte)(0xff & (((png_uint_16)(fg) * (png_uint_16)(alpha) + \ - (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ - 127) / 255)) - -# define png_composite_16(composite, fg, alpha, bg) \ - (composite) = \ - (png_uint_16)(0xffff & (((png_uint_32)(fg) * (png_uint_32)(alpha) + \ - (png_uint_32)(bg)*(png_uint_32)(65535 - (png_uint_32)(alpha)) + \ - 32767) / 65535)) -#endif /* READ_COMPOSITE_NODIV */ - -#ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(201, png_uint_32, png_get_uint_32, (png_const_bytep buf)); -PNG_EXPORT(202, png_uint_16, png_get_uint_16, (png_const_bytep buf)); -PNG_EXPORT(203, png_int_32, png_get_int_32, (png_const_bytep buf)); -#endif - -PNG_EXPORT(204, png_uint_32, png_get_uint_31, (png_const_structrp png_ptr, - png_const_bytep buf)); -/* No png_get_int_16 -- may be added if there's a real need for it. */ - -/* Place a 32-bit number into a buffer in PNG byte order (big-endian). */ -#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(205, void, png_save_uint_32, (png_bytep buf, png_uint_32 i)); -#endif -#ifdef PNG_SAVE_INT_32_SUPPORTED -PNG_EXPORT(206, void, png_save_int_32, (png_bytep buf, png_int_32 i)); -#endif - -/* Place a 16-bit number into a buffer in PNG byte order. - * The parameter is declared unsigned int, not png_uint_16, - * just to avoid potential problems on pre-ANSI C compilers. - */ -#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); -/* No png_save_int_16 -- may be added if there's a real need for it. */ -#endif - -#ifdef PNG_USE_READ_MACROS -/* Inline macros to do direct reads of bytes from the input buffer. - * The png_get_int_32() routine assumes we are using two's complement - * format for negative values, which is almost certainly true. - */ -# define PNG_get_uint_32(buf) \ - (((png_uint_32)(*(buf)) << 24) + \ - ((png_uint_32)(*((buf) + 1)) << 16) + \ - ((png_uint_32)(*((buf) + 2)) << 8) + \ - ((png_uint_32)(*((buf) + 3)))) - - /* From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the - * function) incorrectly returned a value of type png_uint_32. - */ -# define PNG_get_uint_16(buf) \ - ((png_uint_16) \ - (((unsigned int)(*(buf)) << 8) + \ - ((unsigned int)(*((buf) + 1))))) - -# define PNG_get_int_32(buf) \ - ((png_int_32)((*(buf) & 0x80) \ - ? -((png_int_32)((png_get_uint_32(buf) ^ 0xffffffffL) + 1)) \ - : (png_int_32)png_get_uint_32(buf))) - - /* If PNG_PREFIX is defined the same thing as below happens in pnglibconf.h, - * but defining a macro name prefixed with PNG_PREFIX. - */ -# ifndef PNG_PREFIX -# define png_get_uint_32(buf) PNG_get_uint_32(buf) -# define png_get_uint_16(buf) PNG_get_uint_16(buf) -# define png_get_int_32(buf) PNG_get_int_32(buf) -# endif -#else -# ifdef PNG_PREFIX - /* No macros; revert to the (redefined) function */ -# define PNG_get_uint_32 (png_get_uint_32) -# define PNG_get_uint_16 (png_get_uint_16) -# define PNG_get_int_32 (png_get_int_32) -# endif -#endif - -#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) || \ - defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) -/******************************************************************************* - * SIMPLIFIED API - ******************************************************************************* - * - * Please read the documentation in libpng-manual.txt (TODO: write said - * documentation) if you don't understand what follows. - * - * The simplified API hides the details of both libpng and the PNG file format - * itself. It allows PNG files to be read into a very limited number of - * in-memory bitmap formats or to be written from the same formats. If these - * formats do not accomodate your needs then you can, and should, use the more - * sophisticated APIs above - these support a wide variety of in-memory formats - * and a wide variety of sophisticated transformations to those formats as well - * as a wide variety of APIs to manipulate ancillary information. - * - * To read a PNG file using the simplified API: - * - * 1) Declare a 'png_image' structure (see below) on the stack, set the - * version field to PNG_IMAGE_VERSION and the 'opaque' pointer to NULL - * (this is REQUIRED, your program may crash if you don't do it.) - * 2) Call the appropriate png_image_begin_read... function. - * 3) Set the png_image 'format' member to the required sample format. - * 4) Allocate a buffer for the image and, if required, the color-map. - * 5) Call png_image_finish_read to read the image and, if required, the - * color-map into your buffers. - * - * There are no restrictions on the format of the PNG input itself; all valid - * color types, bit depths, and interlace methods are acceptable, and the - * input image is transformed as necessary to the requested in-memory format - * during the png_image_finish_read() step. The only caveat is that if you - * request a color-mapped image from a PNG that is full-color or makes - * complex use of an alpha channel the transformation is extremely lossy and the - * result may look terrible. - * - * To write a PNG file using the simplified API: - * - * 1) Declare a 'png_image' structure on the stack and memset() it to all zero. - * 2) Initialize the members of the structure that describe the image, setting - * the 'format' member to the format of the image samples. - * 3) Call the appropriate png_image_write... function with a pointer to the - * image and, if necessary, the color-map to write the PNG data. - * - * png_image is a structure that describes the in-memory format of an image - * when it is being read or defines the in-memory format of an image that you - * need to write: - */ -#define PNG_IMAGE_VERSION 1 - -typedef struct png_control *png_controlp; -typedef struct -{ - png_controlp opaque; /* Initialize to NULL, free with png_image_free */ - png_uint_32 version; /* Set to PNG_IMAGE_VERSION */ - png_uint_32 width; /* Image width in pixels (columns) */ - png_uint_32 height; /* Image height in pixels (rows) */ - png_uint_32 format; /* Image format as defined below */ - png_uint_32 flags; /* A bit mask containing informational flags */ - png_uint_32 colormap_entries; - /* Number of entries in the color-map */ - - /* In the event of an error or warning the following field will be set to a - * non-zero value and the 'message' field will contain a '\0' terminated - * string with the libpng error or warning message. If both warnings and - * an error were encountered, only the error is recorded. If there - * are multiple warnings, only the first one is recorded. - * - * The upper 30 bits of this value are reserved, the low two bits contain - * a value as follows: - */ -# define PNG_IMAGE_WARNING 1 -# define PNG_IMAGE_ERROR 2 - /* - * The result is a two-bit code such that a value more than 1 indicates - * a failure in the API just called: - * - * 0 - no warning or error - * 1 - warning - * 2 - error - * 3 - error preceded by warning - */ -# define PNG_IMAGE_FAILED(png_cntrl) ((((png_cntrl).warning_or_error)&0x03)>1) - - png_uint_32 warning_or_error; - - char message[64]; -} png_image, *png_imagep; - -/* The samples of the image have one to four channels whose components have - * original values in the range 0 to 1.0: - * - * 1: A single gray or luminance channel (G). - * 2: A gray/luminance channel and an alpha channel (GA). - * 3: Three red, green, blue color channels (RGB). - * 4: Three color channels and an alpha channel (RGBA). - * - * The components are encoded in one of two ways: - * - * a) As a small integer, value 0..255, contained in a single byte. For the - * alpha channel the original value is simply value/255. For the color or - * luminance channels the value is encoded according to the sRGB specification - * and matches the 8-bit format expected by typical display devices. - * - * The color/gray channels are not scaled (pre-multiplied) by the alpha - * channel and are suitable for passing to color management software. - * - * b) As a value in the range 0..65535, contained in a 2-byte integer. All - * channels can be converted to the original value by dividing by 65535; all - * channels are linear. Color channels use the RGB encoding (RGB end-points) of - * the sRGB specification. This encoding is identified by the - * PNG_FORMAT_FLAG_LINEAR flag below. - * - * When the simplified API needs to convert between sRGB and linear colorspaces, - * the actual sRGB transfer curve defined in the sRGB specification (see the - * article at http://en.wikipedia.org/wiki/SRGB) is used, not the gamma=1/2.2 - * approximation used elsewhere in libpng. - * - * When an alpha channel is present it is expected to denote pixel coverage - * of the color or luminance channels and is returned as an associated alpha - * channel: the color/gray channels are scaled (pre-multiplied) by the alpha - * value. - * - * The samples are either contained directly in the image data, between 1 and 8 - * bytes per pixel according to the encoding, or are held in a color-map indexed - * by bytes in the image data. In the case of a color-map the color-map entries - * are individual samples, encoded as above, and the image data has one byte per - * pixel to select the relevant sample from the color-map. - */ - -/* PNG_FORMAT_* - * - * #defines to be used in png_image::format. Each #define identifies a - * particular layout of sample data and, if present, alpha values. There are - * separate defines for each of the two component encodings. - * - * A format is built up using single bit flag values. All combinations are - * valid. Formats can be built up from the flag values or you can use one of - * the predefined values below. When testing formats always use the FORMAT_FLAG - * macros to test for individual features - future versions of the library may - * add new flags. - * - * When reading or writing color-mapped images the format should be set to the - * format of the entries in the color-map then png_image_{read,write}_colormap - * called to read or write the color-map and set the format correctly for the - * image data. Do not set the PNG_FORMAT_FLAG_COLORMAP bit directly! - * - * NOTE: libpng can be built with particular features disabled, if you see - * compiler errors because the definition of one of the following flags has been - * compiled out it is because libpng does not have the required support. It is - * possible, however, for the libpng configuration to enable the format on just - * read or just write; in that case you may see an error at run time. You can - * guard against this by checking for the definition of the appropriate - * "_SUPPORTED" macro, one of: - * - * PNG_SIMPLIFIED_{READ,WRITE}_{BGR,AFIRST}_SUPPORTED - */ -#define PNG_FORMAT_FLAG_ALPHA 0x01U /* format with an alpha channel */ -#define PNG_FORMAT_FLAG_COLOR 0x02U /* color format: otherwise grayscale */ -#define PNG_FORMAT_FLAG_LINEAR 0x04U /* 2 byte channels else 1 byte */ -#define PNG_FORMAT_FLAG_COLORMAP 0x08U /* image data is color-mapped */ - -#ifdef PNG_FORMAT_BGR_SUPPORTED -# define PNG_FORMAT_FLAG_BGR 0x10U /* BGR colors, else order is RGB */ -#endif - -#ifdef PNG_FORMAT_AFIRST_SUPPORTED -# define PNG_FORMAT_FLAG_AFIRST 0x20U /* alpha channel comes first */ -#endif - -/* Commonly used formats have predefined macros. - * - * First the single byte (sRGB) formats: - */ -#define PNG_FORMAT_GRAY 0 -#define PNG_FORMAT_GA PNG_FORMAT_FLAG_ALPHA -#define PNG_FORMAT_AG (PNG_FORMAT_GA|PNG_FORMAT_FLAG_AFIRST) -#define PNG_FORMAT_RGB PNG_FORMAT_FLAG_COLOR -#define PNG_FORMAT_BGR (PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_BGR) -#define PNG_FORMAT_RGBA (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_ALPHA) -#define PNG_FORMAT_ARGB (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_AFIRST) -#define PNG_FORMAT_BGRA (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_ALPHA) -#define PNG_FORMAT_ABGR (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_AFIRST) - -/* Then the linear 2-byte formats. When naming these "Y" is used to - * indicate a luminance (gray) channel. - */ -#define PNG_FORMAT_LINEAR_Y PNG_FORMAT_FLAG_LINEAR -#define PNG_FORMAT_LINEAR_Y_ALPHA (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_ALPHA) -#define PNG_FORMAT_LINEAR_RGB (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR) -#define PNG_FORMAT_LINEAR_RGB_ALPHA \ - (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA) - -/* With color-mapped formats the image data is one byte for each pixel, the byte - * is an index into the color-map which is formatted as above. To obtain a - * color-mapped format it is sufficient just to add the PNG_FOMAT_FLAG_COLORMAP - * to one of the above definitions, or you can use one of the definitions below. - */ -#define PNG_FORMAT_RGB_COLORMAP (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_BGR_COLORMAP (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_RGBA_COLORMAP (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_ARGB_COLORMAP (PNG_FORMAT_ARGB|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_BGRA_COLORMAP (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_ABGR_COLORMAP (PNG_FORMAT_ABGR|PNG_FORMAT_FLAG_COLORMAP) - -/* PNG_IMAGE macros - * - * These are convenience macros to derive information from a png_image - * structure. The PNG_IMAGE_SAMPLE_ macros return values appropriate to the - * actual image sample values - either the entries in the color-map or the - * pixels in the image. The PNG_IMAGE_PIXEL_ macros return corresponding values - * for the pixels and will always return 1 for color-mapped formats. The - * remaining macros return information about the rows in the image and the - * complete image. - * - * NOTE: All the macros that take a png_image::format parameter are compile time - * constants if the format parameter is, itself, a constant. Therefore these - * macros can be used in array declarations and case labels where required. - * Similarly the macros are also pre-processor constants (sizeof is not used) so - * they can be used in #if tests. - * - * First the information about the samples. - */ -#define PNG_IMAGE_SAMPLE_CHANNELS(fmt)\ - (((fmt)&(PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA))+1) - /* Return the total number of channels in a given format: 1..4 */ - -#define PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)\ - ((((fmt) & PNG_FORMAT_FLAG_LINEAR) >> 2)+1) - /* Return the size in bytes of a single component of a pixel or color-map - * entry (as appropriate) in the image: 1 or 2. - */ - -#define PNG_IMAGE_SAMPLE_SIZE(fmt)\ - (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)) - /* This is the size of the sample data for one sample. If the image is - * color-mapped it is the size of one color-map entry (and image pixels are - * one byte in size), otherwise it is the size of one image pixel. - */ - -#define PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(fmt)\ - (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * 256) - /* The maximum size of the color-map required by the format expressed in a - * count of components. This can be used to compile-time allocate a - * color-map: - * - * png_uint_16 colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(linear_fmt)]; - * - * png_byte colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(sRGB_fmt)]; - * - * Alternatively use the PNG_IMAGE_COLORMAP_SIZE macro below to use the - * information from one of the png_image_begin_read_ APIs and dynamically - * allocate the required memory. - */ - -/* Corresponding information about the pixels */ -#define PNG_IMAGE_PIXEL_(test,fmt)\ - (((fmt)&PNG_FORMAT_FLAG_COLORMAP)?1:test(fmt)) - -#define PNG_IMAGE_PIXEL_CHANNELS(fmt)\ - PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_CHANNELS,fmt) - /* The number of separate channels (components) in a pixel; 1 for a - * color-mapped image. - */ - -#define PNG_IMAGE_PIXEL_COMPONENT_SIZE(fmt)\ - PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_COMPONENT_SIZE,fmt) - /* The size, in bytes, of each component in a pixel; 1 for a color-mapped - * image. - */ - -#define PNG_IMAGE_PIXEL_SIZE(fmt) PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_SIZE,fmt) - /* The size, in bytes, of a complete pixel; 1 for a color-mapped image. */ - -/* Information about the whole row, or whole image */ -#define PNG_IMAGE_ROW_STRIDE(image)\ - (PNG_IMAGE_PIXEL_CHANNELS((image).format) * (image).width) - /* Return the total number of components in a single row of the image; this - * is the minimum 'row stride', the minimum count of components between each - * row. For a color-mapped image this is the minimum number of bytes in a - * row. - */ - -#define PNG_IMAGE_BUFFER_SIZE(image, row_stride)\ - (PNG_IMAGE_PIXEL_COMPONENT_SIZE((image).format)*(image).height*(row_stride)) - /* Return the size, in bytes, of an image buffer given a png_image and a row - * stride - the number of components to leave space for in each row. - */ - -#define PNG_IMAGE_SIZE(image)\ - PNG_IMAGE_BUFFER_SIZE(image, PNG_IMAGE_ROW_STRIDE(image)) - /* Return the size, in bytes, of the image in memory given just a png_image; - * the row stride is the minimum stride required for the image. - */ - -#define PNG_IMAGE_COLORMAP_SIZE(image)\ - (PNG_IMAGE_SAMPLE_SIZE((image).format) * (image).colormap_entries) - /* Return the size, in bytes, of the color-map of this image. If the image - * format is not a color-map format this will return a size sufficient for - * 256 entries in the given format; check PNG_FORMAT_FLAG_COLORMAP if - * you don't want to allocate a color-map in this case. - */ - -/* PNG_IMAGE_FLAG_* - * - * Flags containing additional information about the image are held in the - * 'flags' field of png_image. - */ -#define PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB 0x01 - /* This indicates the the RGB values of the in-memory bitmap do not - * correspond to the red, green and blue end-points defined by sRGB. - */ - -#define PNG_IMAGE_FLAG_FAST 0x02 - /* On write emphasise speed over compression; the resultant PNG file will be - * larger but will be produced significantly faster, particular for large - * images. Do not use this option for images which will be distributed, only - * used it when producing intermediate files that will be read back in - * repeatedly. For a typical 24-bit image the option will double the read - * speed at the cost of increasing the image size by 25%, however for many - * more compressible images the PNG file can be 10 times larger with only a - * slight speed gain. - */ - -#define PNG_IMAGE_FLAG_16BIT_sRGB 0x04 - /* On read if the image is a 16-bit per component image and there is no gAMA - * or sRGB chunk assume that the components are sRGB encoded. Notice that - * images output by the simplified API always have gamma information; setting - * this flag only affects the interpretation of 16-bit images from an - * external source. It is recommended that the application expose this flag - * to the user; the user can normally easily recognize the difference between - * linear and sRGB encoding. This flag has no effect on write - the data - * passed to the write APIs must have the correct encoding (as defined - * above.) - * - * If the flag is not set (the default) input 16-bit per component data is - * assumed to be linear. - * - * NOTE: the flag can only be set after the png_image_begin_read_ call, - * because that call initializes the 'flags' field. - */ - -#ifdef PNG_SIMPLIFIED_READ_SUPPORTED -/* READ APIs - * --------- - * - * The png_image passed to the read APIs must have been initialized by setting - * the png_controlp field 'opaque' to NULL (or, safer, memset the whole thing.) - */ -#ifdef PNG_STDIO_SUPPORTED -PNG_EXPORT(234, int, png_image_begin_read_from_file, (png_imagep image, - const char *file_name)); - /* The named file is opened for read and the image header is filled in - * from the PNG header in the file. - */ - -PNG_EXPORT(235, int, png_image_begin_read_from_stdio, (png_imagep image, - FILE* file)); - /* The PNG header is read from the stdio FILE object. */ -#endif /* STDIO */ - -PNG_EXPORT(236, int, png_image_begin_read_from_memory, (png_imagep image, - png_const_voidp memory, png_size_t size)); - /* The PNG header is read from the given memory buffer. */ - -PNG_EXPORT(237, int, png_image_finish_read, (png_imagep image, - png_const_colorp background, void *buffer, png_int_32 row_stride, - void *colormap)); - /* Finish reading the image into the supplied buffer and clean up the - * png_image structure. - * - * row_stride is the step, in byte or 2-byte units as appropriate, - * between adjacent rows. A positive stride indicates that the top-most row - * is first in the buffer - the normal top-down arrangement. A negative - * stride indicates that the bottom-most row is first in the buffer. - * - * background need only be supplied if an alpha channel must be removed from - * a png_byte format and the removal is to be done by compositing on a solid - * color; otherwise it may be NULL and any composition will be done directly - * onto the buffer. The value is an sRGB color to use for the background, - * for grayscale output the green channel is used. - * - * background must be supplied when an alpha channel must be removed from a - * single byte color-mapped output format, in other words if: - * - * 1) The original format from png_image_begin_read_from_* had - * PNG_FORMAT_FLAG_ALPHA set. - * 2) The format set by the application does not. - * 3) The format set by the application has PNG_FORMAT_FLAG_COLORMAP set and - * PNG_FORMAT_FLAG_LINEAR *not* set. - * - * For linear output removing the alpha channel is always done by compositing - * on black and background is ignored. - * - * colormap must be supplied when PNG_FORMAT_FLAG_COLORMAP is set. It must - * be at least the size (in bytes) returned by PNG_IMAGE_COLORMAP_SIZE. - * image->colormap_entries will be updated to the actual number of entries - * written to the colormap; this may be less than the original value. - */ - -PNG_EXPORT(238, void, png_image_free, (png_imagep image)); - /* Free any data allocated by libpng in image->opaque, setting the pointer to - * NULL. May be called at any time after the structure is initialized. - */ -#endif /* SIMPLIFIED_READ */ - -#ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED -#ifdef PNG_STDIO_SUPPORTED -/* WRITE APIS - * ---------- - * For write you must initialize a png_image structure to describe the image to - * be written. To do this use memset to set the whole structure to 0 then - * initialize fields describing your image. - * - * version: must be set to PNG_IMAGE_VERSION - * opaque: must be initialized to NULL - * width: image width in pixels - * height: image height in rows - * format: the format of the data (image and color-map) you wish to write - * flags: set to 0 unless one of the defined flags applies; set - * PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB for color format images where the RGB - * values do not correspond to the colors in sRGB. - * colormap_entries: set to the number of entries in the color-map (0 to 256) - */ -PNG_EXPORT(239, int, png_image_write_to_file, (png_imagep image, - const char *file, int convert_to_8bit, const void *buffer, - png_int_32 row_stride, const void *colormap)); - /* Write the image to the named file. */ - -PNG_EXPORT(240, int, png_image_write_to_stdio, (png_imagep image, FILE *file, - int convert_to_8_bit, const void *buffer, png_int_32 row_stride, - const void *colormap)); - /* Write the image to the given (FILE*). */ - -/* With both write APIs if image is in one of the linear formats with 16-bit - * data then setting convert_to_8_bit will cause the output to be an 8-bit PNG - * gamma encoded according to the sRGB specification, otherwise a 16-bit linear - * encoded PNG file is written. - * - * With color-mapped data formats the colormap parameter point to a color-map - * with at least image->colormap_entries encoded in the specified format. If - * the format is linear the written PNG color-map will be converted to sRGB - * regardless of the convert_to_8_bit flag. - * - * With all APIs row_stride is handled as in the read APIs - it is the spacing - * from one row to the next in component sized units (1 or 2 bytes) and if - * negative indicates a bottom-up row layout in the buffer. If row_stride is zero, - * libpng will calculate it for you from the image width and number of channels. - * - * Note that the write API does not support interlacing, sub-8-bit pixels, indexed - * PNG (color_type 3) or most ancillary chunks. - */ -#endif /* STDIO */ -#endif /* SIMPLIFIED_WRITE */ -/******************************************************************************* - * END OF SIMPLIFIED API - ******************************************************************************/ -#endif /* SIMPLIFIED_{READ|WRITE} */ - -#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED -PNG_EXPORT(242, void, png_set_check_for_invalid_index, - (png_structrp png_ptr, int allowed)); -# ifdef PNG_GET_PALETTE_MAX_SUPPORTED -PNG_EXPORT(243, int, png_get_palette_max, (png_const_structp png_ptr, - png_const_infop info_ptr)); -# endif -#endif /* CHECK_FOR_INVALID_INDEX */ - -/******************************************************************************* - * IMPLEMENTATION OPTIONS - ******************************************************************************* - * - * Support for arbitrary implementation-specific optimizations. The API allows - * particular options to be turned on or off. 'Option' is the number of the - * option and 'onoff' is 0 (off) or non-0 (on). The value returned is given - * by the PNG_OPTION_ defines below. - * - * HARDWARE: normally hardware capabilites, such as the Intel SSE instructions, - * are detected at run time, however sometimes it may be impossible - * to do this in user mode, in which case it is necessary to discover - * the capabilities in an OS specific way. Such capabilities are - * listed here when libpng has support for them and must be turned - * ON by the application if present. - * - * SOFTWARE: sometimes software optimizations actually result in performance - * decrease on some architectures or systems, or with some sets of - * PNG images. 'Software' options allow such optimizations to be - * selected at run time. - */ -#ifdef PNG_SET_OPTION_SUPPORTED -#ifdef PNG_ARM_NEON_API_SUPPORTED -# define PNG_ARM_NEON 0 /* HARDWARE: ARM Neon SIMD instructions supported */ -#endif -#define PNG_MAXIMUM_INFLATE_WINDOW 2 /* SOFTWARE: force maximum window */ -#define PNG_SKIP_sRGB_CHECK_PROFILE 4 /* SOFTWARE: Check ICC profile for sRGB */ -#define PNG_OPTION_NEXT 6 /* Next option - numbers must be even */ - -/* Return values: NOTE: there are four values and 'off' is *not* zero */ -#define PNG_OPTION_UNSET 0 /* Unset - defaults to off */ -#define PNG_OPTION_INVALID 1 /* Option number out of range */ -#define PNG_OPTION_OFF 2 -#define PNG_OPTION_ON 3 - -PNG_EXPORT(244, int, png_set_option, (png_structrp png_ptr, int option, - int onoff)); -#endif /* SET_OPTION */ - -/******************************************************************************* - * END OF HARDWARE AND SOFTWARE OPTIONS - ******************************************************************************/ - -/* Maintainer: Put new public prototypes here ^, in libpng.3, in project - * defs, and in scripts/symbols.def. - */ - -/* The last ordinal number (this is the *last* one already used; the next - * one to use is one more than this.) - */ -#ifdef PNG_EXPORT_LAST_ORDINAL - PNG_EXPORT_LAST_ORDINAL(244); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* PNG_VERSION_INFO_ONLY */ -/* Do not put anything past this line */ -#endif /* PNG_H */ diff --git a/lib/windows/include/pngconf.h b/lib/windows/include/pngconf.h deleted file mode 100644 index 62e37cf..0000000 --- a/lib/windows/include/pngconf.h +++ /dev/null @@ -1,622 +0,0 @@ - -/* pngconf.h - machine configurable file for libpng - * - * libpng version 1.6.18, July 23, 2015 - * - * Copyright (c) 1998-2015 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * Any machine specific code is near the front of this file, so if you - * are configuring libpng for a machine, you may want to read the section - * starting here down to where it starts to typedef png_color, png_text, - * and png_info. - */ - -#ifndef PNGCONF_H -#define PNGCONF_H - -#ifndef PNG_BUILDING_SYMBOL_TABLE /* else includes may cause problems */ - -/* From libpng 1.6.0 libpng requires an ANSI X3.159-1989 ("ISOC90") compliant C - * compiler for correct compilation. The following header files are required by - * the standard. If your compiler doesn't provide these header files, or they - * do not match the standard, you will need to provide/improve them. - */ -#include <limits.h> -#include <stddef.h> - -/* Library header files. These header files are all defined by ISOC90; libpng - * expects conformant implementations, however, an ISOC90 conformant system need - * not provide these header files if the functionality cannot be implemented. - * In this case it will be necessary to disable the relevant parts of libpng in - * the build of pnglibconf.h. - * - * Prior to 1.6.0 string.h was included here; the API changes in 1.6.0 to not - * include this unnecessary header file. - */ - -#ifdef PNG_STDIO_SUPPORTED - /* Required for the definition of FILE: */ -# include <stdio.h> -#endif - -#ifdef PNG_SETJMP_SUPPORTED - /* Required for the definition of jmp_buf and the declaration of longjmp: */ -# include <setjmp.h> -#endif - -#ifdef PNG_CONVERT_tIME_SUPPORTED - /* Required for struct tm: */ -# include <time.h> -#endif - -#endif /* PNG_BUILDING_SYMBOL_TABLE */ - -/* Prior to 1.6.0 it was possible to turn off 'const' in declarations using - * PNG_NO_CONST; this is no longer supported except for data declarations which - * apparently still cause problems in 2011 on some compilers. - */ -#define PNG_CONST const /* backward compatibility only */ - -/* This controls optimization of the reading of 16 and 32 bit values - * from PNG files. It can be set on a per-app-file basis - it - * just changes whether a macro is used when the function is called. - * The library builder sets the default; if read functions are not - * built into the library the macro implementation is forced on. - */ -#ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED -# define PNG_USE_READ_MACROS -#endif -#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) -# if PNG_DEFAULT_READ_MACROS -# define PNG_USE_READ_MACROS -# endif -#endif - -/* COMPILER SPECIFIC OPTIONS. - * - * These options are provided so that a variety of difficult compilers - * can be used. Some are fixed at build time (e.g. PNG_API_RULE - * below) but still have compiler specific implementations, others - * may be changed on a per-file basis when compiling against libpng. - */ - -/* The PNGARG macro was used in versions of libpng prior to 1.6.0 to protect - * against legacy (pre ISOC90) compilers that did not understand function - * prototypes. It is not required for modern C compilers. - */ -#ifndef PNGARG -# define PNGARG(arglist) arglist -#endif - -/* Function calling conventions. - * ============================= - * Normally it is not necessary to specify to the compiler how to call - * a function - it just does it - however on x86 systems derived from - * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems - * and some others) there are multiple ways to call a function and the - * default can be changed on the compiler command line. For this reason - * libpng specifies the calling convention of every exported function and - * every function called via a user supplied function pointer. This is - * done in this file by defining the following macros: - * - * PNGAPI Calling convention for exported functions. - * PNGCBAPI Calling convention for user provided (callback) functions. - * PNGCAPI Calling convention used by the ANSI-C library (required - * for longjmp callbacks and sometimes used internally to - * specify the calling convention for zlib). - * - * These macros should never be overridden. If it is necessary to - * change calling convention in a private build this can be done - * by setting PNG_API_RULE (which defaults to 0) to one of the values - * below to select the correct 'API' variants. - * - * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout. - * This is correct in every known environment. - * PNG_API_RULE=1 Use the operating system convention for PNGAPI and - * the 'C' calling convention (from PNGCAPI) for - * callbacks (PNGCBAPI). This is no longer required - * in any known environment - if it has to be used - * please post an explanation of the problem to the - * libpng mailing list. - * - * These cases only differ if the operating system does not use the C - * calling convention, at present this just means the above cases - * (x86 DOS/Windows sytems) and, even then, this does not apply to - * Cygwin running on those systems. - * - * Note that the value must be defined in pnglibconf.h so that what - * the application uses to call the library matches the conventions - * set when building the library. - */ - -/* Symbol export - * ============= - * When building a shared library it is almost always necessary to tell - * the compiler which symbols to export. The png.h macro 'PNG_EXPORT' - * is used to mark the symbols. On some systems these symbols can be - * extracted at link time and need no special processing by the compiler, - * on other systems the symbols are flagged by the compiler and just - * the declaration requires a special tag applied (unfortunately) in a - * compiler dependent way. Some systems can do either. - * - * A small number of older systems also require a symbol from a DLL to - * be flagged to the program that calls it. This is a problem because - * we do not know in the header file included by application code that - * the symbol will come from a shared library, as opposed to a statically - * linked one. For this reason the application must tell us by setting - * the magic flag PNG_USE_DLL to turn on the special processing before - * it includes png.h. - * - * Four additional macros are used to make this happen: - * - * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from - * the build or imported if PNG_USE_DLL is set - compiler - * and system specific. - * - * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to - * 'type', compiler specific. - * - * PNG_DLL_EXPORT Set to the magic to use during a libpng build to - * make a symbol exported from the DLL. Not used in the - * public header files; see pngpriv.h for how it is used - * in the libpng build. - * - * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come - * from a DLL - used to define PNG_IMPEXP when - * PNG_USE_DLL is set. - */ - -/* System specific discovery. - * ========================== - * This code is used at build time to find PNG_IMPEXP, the API settings - * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL - * import processing is possible. On Windows systems it also sets - * compiler-specific macros to the values required to change the calling - * conventions of the various functions. - */ -#if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ - defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) - /* Windows system (DOS doesn't support DLLs). Includes builds under Cygwin or - * MinGW on any architecture currently supported by Windows. Also includes - * Watcom builds but these need special treatment because they are not - * compatible with GCC or Visual C because of different calling conventions. - */ -# if PNG_API_RULE == 2 - /* If this line results in an error, either because __watcall is not - * understood or because of a redefine just below you cannot use *this* - * build of the library with the compiler you are using. *This* build was - * build using Watcom and applications must also be built using Watcom! - */ -# define PNGCAPI __watcall -# endif - -# if defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 800)) -# define PNGCAPI __cdecl -# if PNG_API_RULE == 1 - /* If this line results in an error __stdcall is not understood and - * PNG_API_RULE should not have been set to '1'. - */ -# define PNGAPI __stdcall -# endif -# else - /* An older compiler, or one not detected (erroneously) above, - * if necessary override on the command line to get the correct - * variants for the compiler. - */ -# ifndef PNGCAPI -# define PNGCAPI _cdecl -# endif -# if PNG_API_RULE == 1 && !defined(PNGAPI) -# define PNGAPI _stdcall -# endif -# endif /* compiler/api */ - - /* NOTE: PNGCBAPI always defaults to PNGCAPI. */ - -# if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD) -# error "PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed" -# endif - -# if (defined(_MSC_VER) && _MSC_VER < 800) ||\ - (defined(__BORLANDC__) && __BORLANDC__ < 0x500) - /* older Borland and MSC - * compilers used '__export' and required this to be after - * the type. - */ -# ifndef PNG_EXPORT_TYPE -# define PNG_EXPORT_TYPE(type) type PNG_IMPEXP -# endif -# define PNG_DLL_EXPORT __export -# else /* newer compiler */ -# define PNG_DLL_EXPORT __declspec(dllexport) -# ifndef PNG_DLL_IMPORT -# define PNG_DLL_IMPORT __declspec(dllimport) -# endif -# endif /* compiler */ - -#else /* !Windows */ -# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) -# define PNGAPI _System -# else /* !Windows/x86 && !OS/2 */ - /* Use the defaults, or define PNG*API on the command line (but - * this will have to be done for every compile!) - */ -# endif /* other system, !OS/2 */ -#endif /* !Windows/x86 */ - -/* Now do all the defaulting . */ -#ifndef PNGCAPI -# define PNGCAPI -#endif -#ifndef PNGCBAPI -# define PNGCBAPI PNGCAPI -#endif -#ifndef PNGAPI -# define PNGAPI PNGCAPI -#endif - -/* PNG_IMPEXP may be set on the compilation system command line or (if not set) - * then in an internal header file when building the library, otherwise (when - * using the library) it is set here. - */ -#ifndef PNG_IMPEXP -# if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) - /* This forces use of a DLL, disallowing static linking */ -# define PNG_IMPEXP PNG_DLL_IMPORT -# endif - -# ifndef PNG_IMPEXP -# define PNG_IMPEXP -# endif -#endif - -/* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat - * 'attributes' as a storage class - the attributes go at the start of the - * function definition, and attributes are always appended regardless of the - * compiler. This considerably simplifies these macros but may cause problems - * if any compilers both need function attributes and fail to handle them as - * a storage class (this is unlikely.) - */ -#ifndef PNG_FUNCTION -# define PNG_FUNCTION(type, name, args, attributes) attributes type name args -#endif - -#ifndef PNG_EXPORT_TYPE -# define PNG_EXPORT_TYPE(type) PNG_IMPEXP type -#endif - - /* The ordinal value is only relevant when preprocessing png.h for symbol - * table entries, so we discard it here. See the .dfn files in the - * scripts directory. - */ - -#ifndef PNG_EXPORTA -# define PNG_EXPORTA(ordinal, type, name, args, attributes) \ - PNG_FUNCTION(PNG_EXPORT_TYPE(type), (PNGAPI name), PNGARG(args), \ - PNG_LINKAGE_API attributes) -#endif - -/* ANSI-C (C90) does not permit a macro to be invoked with an empty argument, - * so make something non-empty to satisfy the requirement: - */ -#define PNG_EMPTY /*empty list*/ - -#define PNG_EXPORT(ordinal, type, name, args) \ - PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY) - -/* Use PNG_REMOVED to comment out a removed interface. */ -#ifndef PNG_REMOVED -# define PNG_REMOVED(ordinal, type, name, args, attributes) -#endif - -#ifndef PNG_CALLBACK -# define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args) -#endif - -/* Support for compiler specific function attributes. These are used - * so that where compiler support is available incorrect use of API - * functions in png.h will generate compiler warnings. - * - * Added at libpng-1.2.41. - */ - -#ifndef PNG_NO_PEDANTIC_WARNINGS -# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED -# define PNG_PEDANTIC_WARNINGS_SUPPORTED -# endif -#endif - -#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED - /* Support for compiler specific function attributes. These are used - * so that where compiler support is available, incorrect use of API - * functions in png.h will generate compiler warnings. Added at libpng - * version 1.2.41. Disabling these removes the warnings but may also produce - * less efficient code. - */ -# if defined(__clang__) && defined(__has_attribute) - /* Clang defines both __clang__ and __GNUC__. Check __clang__ first. */ -# if !defined(PNG_USE_RESULT) && __has_attribute(__warn_unused_result__) -# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) -# endif -# if !defined(PNG_NORETURN) && __has_attribute(__noreturn__) -# define PNG_NORETURN __attribute__((__noreturn__)) -# endif -# if !defined(PNG_ALLOCATED) && __has_attribute(__malloc__) -# define PNG_ALLOCATED __attribute__((__malloc__)) -# endif -# if !defined(PNG_DEPRECATED) && __has_attribute(__deprecated__) -# define PNG_DEPRECATED __attribute__((__deprecated__)) -# endif -# if !defined(PNG_PRIVATE) -# ifdef __has_extension -# if __has_extension(attribute_unavailable_with_message) -# define PNG_PRIVATE __attribute__((__unavailable__(\ - "This function is not exported by libpng."))) -# endif -# endif -# endif -# ifndef PNG_RESTRICT -# define PNG_RESTRICT __restrict -# endif - -# elif defined(__GNUC__) -# ifndef PNG_USE_RESULT -# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) -# endif -# ifndef PNG_NORETURN -# define PNG_NORETURN __attribute__((__noreturn__)) -# endif -# if __GNUC__ >= 3 -# ifndef PNG_ALLOCATED -# define PNG_ALLOCATED __attribute__((__malloc__)) -# endif -# ifndef PNG_DEPRECATED -# define PNG_DEPRECATED __attribute__((__deprecated__)) -# endif -# ifndef PNG_PRIVATE -# if 0 /* Doesn't work so we use deprecated instead*/ -# define PNG_PRIVATE \ - __attribute__((warning("This function is not exported by libpng."))) -# else -# define PNG_PRIVATE \ - __attribute__((__deprecated__)) -# endif -# endif -# if ((__GNUC__ > 3) || !defined(__GNUC_MINOR__) || (__GNUC_MINOR__ >= 1)) -# ifndef PNG_RESTRICT -# define PNG_RESTRICT __restrict -# endif -# endif /* __GNUC__.__GNUC_MINOR__ > 3.0 */ -# endif /* __GNUC__ >= 3 */ - -# elif defined(_MSC_VER) && (_MSC_VER >= 1300) -# ifndef PNG_USE_RESULT -# define PNG_USE_RESULT /* not supported */ -# endif -# ifndef PNG_NORETURN -# define PNG_NORETURN __declspec(noreturn) -# endif -# ifndef PNG_ALLOCATED -# if (_MSC_VER >= 1400) -# define PNG_ALLOCATED __declspec(restrict) -# endif -# endif -# ifndef PNG_DEPRECATED -# define PNG_DEPRECATED __declspec(deprecated) -# endif -# ifndef PNG_PRIVATE -# define PNG_PRIVATE __declspec(deprecated) -# endif -# ifndef PNG_RESTRICT -# if (_MSC_VER >= 1400) -# define PNG_RESTRICT __restrict -# endif -# endif - -# elif defined(__WATCOMC__) -# ifndef PNG_RESTRICT -# define PNG_RESTRICT __restrict -# endif -# endif -#endif /* PNG_PEDANTIC_WARNINGS */ - -#ifndef PNG_DEPRECATED -# define PNG_DEPRECATED /* Use of this function is deprecated */ -#endif -#ifndef PNG_USE_RESULT -# define PNG_USE_RESULT /* The result of this function must be checked */ -#endif -#ifndef PNG_NORETURN -# define PNG_NORETURN /* This function does not return */ -#endif -#ifndef PNG_ALLOCATED -# define PNG_ALLOCATED /* The result of the function is new memory */ -#endif -#ifndef PNG_PRIVATE -# define PNG_PRIVATE /* This is a private libpng function */ -#endif -#ifndef PNG_RESTRICT -# define PNG_RESTRICT /* The C99 "restrict" feature */ -#endif - -#ifndef PNG_FP_EXPORT /* A floating point API. */ -# ifdef PNG_FLOATING_POINT_SUPPORTED -# define PNG_FP_EXPORT(ordinal, type, name, args)\ - PNG_EXPORT(ordinal, type, name, args); -# else /* No floating point APIs */ -# define PNG_FP_EXPORT(ordinal, type, name, args) -# endif -#endif -#ifndef PNG_FIXED_EXPORT /* A fixed point API. */ -# ifdef PNG_FIXED_POINT_SUPPORTED -# define PNG_FIXED_EXPORT(ordinal, type, name, args)\ - PNG_EXPORT(ordinal, type, name, args); -# else /* No fixed point APIs */ -# define PNG_FIXED_EXPORT(ordinal, type, name, args) -# endif -#endif - -#ifndef PNG_BUILDING_SYMBOL_TABLE -/* Some typedefs to get us started. These should be safe on most of the common - * platforms. - * - * png_uint_32 and png_int_32 may, currently, be larger than required to hold a - * 32-bit value however this is not normally advisable. - * - * png_uint_16 and png_int_16 should always be two bytes in size - this is - * verified at library build time. - * - * png_byte must always be one byte in size. - * - * The checks below use constants from limits.h, as defined by the ISOC90 - * standard. - */ -#if CHAR_BIT == 8 && UCHAR_MAX == 255 - typedef unsigned char png_byte; -#else -# error "libpng requires 8 bit bytes" -#endif - -#if INT_MIN == -32768 && INT_MAX == 32767 - typedef int png_int_16; -#elif SHRT_MIN == -32768 && SHRT_MAX == 32767 - typedef short png_int_16; -#else -# error "libpng requires a signed 16 bit type" -#endif - -#if UINT_MAX == 65535 - typedef unsigned int png_uint_16; -#elif USHRT_MAX == 65535 - typedef unsigned short png_uint_16; -#else -# error "libpng requires an unsigned 16 bit type" -#endif - -#if INT_MIN < -2147483646 && INT_MAX > 2147483646 - typedef int png_int_32; -#elif LONG_MIN < -2147483646 && LONG_MAX > 2147483646 - typedef long int png_int_32; -#else -# error "libpng requires a signed 32 bit (or more) type" -#endif - -#if UINT_MAX > 4294967294 - typedef unsigned int png_uint_32; -#elif ULONG_MAX > 4294967294 - typedef unsigned long int png_uint_32; -#else -# error "libpng requires an unsigned 32 bit (or more) type" -#endif - -/* Prior to 1.6.0 it was possible to disable the use of size_t, 1.6.0, however, - * requires an ISOC90 compiler and relies on consistent behavior of sizeof. - */ -typedef size_t png_size_t; -typedef ptrdiff_t png_ptrdiff_t; - -/* libpng needs to know the maximum value of 'size_t' and this controls the - * definition of png_alloc_size_t, below. This maximum value of size_t limits - * but does not control the maximum allocations the library makes - there is - * direct application control of this through png_set_user_limits(). - */ -#ifndef PNG_SMALL_SIZE_T - /* Compiler specific tests for systems where size_t is known to be less than - * 32 bits (some of these systems may no longer work because of the lack of - * 'far' support; see above.) - */ -# if (defined(__TURBOC__) && !defined(__FLAT__)) ||\ - (defined(_MSC_VER) && defined(MAXSEG_64K)) -# define PNG_SMALL_SIZE_T -# endif -#endif - -/* png_alloc_size_t is guaranteed to be no smaller than png_size_t, and no - * smaller than png_uint_32. Casts from png_size_t or png_uint_32 to - * png_alloc_size_t are not necessary; in fact, it is recommended not to use - * them at all so that the compiler can complain when something turns out to be - * problematic. - * - * Casts in the other direction (from png_alloc_size_t to png_size_t or - * png_uint_32) should be explicitly applied; however, we do not expect to - * encounter practical situations that require such conversions. - * - * PNG_SMALL_SIZE_T must be defined if the maximum value of size_t is less than - * 4294967295 - i.e. less than the maximum value of png_uint_32. - */ -#ifdef PNG_SMALL_SIZE_T - typedef png_uint_32 png_alloc_size_t; -#else - typedef png_size_t png_alloc_size_t; -#endif - -/* Prior to 1.6.0 libpng offered limited support for Microsoft C compiler - * implementations of Intel CPU specific support of user-mode segmented address - * spaces, where 16-bit pointers address more than 65536 bytes of memory using - * separate 'segment' registers. The implementation requires two different - * types of pointer (only one of which includes the segment value.) - * - * If required this support is available in version 1.2 of libpng and may be - * available in versions through 1.5, although the correctness of the code has - * not been verified recently. - */ - -/* Typedef for floating-point numbers that are converted to fixed-point with a - * multiple of 100,000, e.g., gamma - */ -typedef png_int_32 png_fixed_point; - -/* Add typedefs for pointers */ -typedef void * png_voidp; -typedef const void * png_const_voidp; -typedef png_byte * png_bytep; -typedef const png_byte * png_const_bytep; -typedef png_uint_32 * png_uint_32p; -typedef const png_uint_32 * png_const_uint_32p; -typedef png_int_32 * png_int_32p; -typedef const png_int_32 * png_const_int_32p; -typedef png_uint_16 * png_uint_16p; -typedef const png_uint_16 * png_const_uint_16p; -typedef png_int_16 * png_int_16p; -typedef const png_int_16 * png_const_int_16p; -typedef char * png_charp; -typedef const char * png_const_charp; -typedef png_fixed_point * png_fixed_point_p; -typedef const png_fixed_point * png_const_fixed_point_p; -typedef png_size_t * png_size_tp; -typedef const png_size_t * png_const_size_tp; - -#ifdef PNG_STDIO_SUPPORTED -typedef FILE * png_FILE_p; -#endif - -#ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double * png_doublep; -typedef const double * png_const_doublep; -#endif - -/* Pointers to pointers; i.e. arrays */ -typedef png_byte * * png_bytepp; -typedef png_uint_32 * * png_uint_32pp; -typedef png_int_32 * * png_int_32pp; -typedef png_uint_16 * * png_uint_16pp; -typedef png_int_16 * * png_int_16pp; -typedef const char * * png_const_charpp; -typedef char * * png_charpp; -typedef png_fixed_point * * png_fixed_point_pp; -#ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double * * png_doublepp; -#endif - -/* Pointers to pointers to pointers; i.e., pointer to array */ -typedef char * * * png_charppp; - -#endif /* PNG_BUILDING_SYMBOL_TABLE */ - -#endif /* PNGCONF_H */ diff --git a/lib/windows/include/pnglibconf.h b/lib/windows/include/pnglibconf.h deleted file mode 100644 index 2719f00..0000000 --- a/lib/windows/include/pnglibconf.h +++ /dev/null @@ -1,216 +0,0 @@ -/* libpng 1.6.18 STANDARD API DEFINITION */ - -/* pnglibconf.h - library build configuration */ - -/* Libpng version 1.6.18 - July 23, 2015 */ - -/* Copyright (c) 1998-2014 Glenn Randers-Pehrson */ - -/* This code is released under the libpng license. */ -/* For conditions of distribution and use, see the disclaimer */ -/* and license in png.h */ - -/* pnglibconf.h */ -/* Machine generated file: DO NOT EDIT */ -/* Derived from: scripts/pnglibconf.dfa */ -#ifndef PNGLCONF_H -#define PNGLCONF_H -/* options */ -#define PNG_16BIT_SUPPORTED -#define PNG_ALIGNED_MEMORY_SUPPORTED -/*#undef PNG_ARM_NEON_API_SUPPORTED*/ -/*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ -#define PNG_BENIGN_ERRORS_SUPPORTED -#define PNG_BENIGN_READ_ERRORS_SUPPORTED -/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ -#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED -#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED -#define PNG_COLORSPACE_SUPPORTED -#define PNG_CONSOLE_IO_SUPPORTED -#define PNG_CONVERT_tIME_SUPPORTED -#define PNG_EASY_ACCESS_SUPPORTED -/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ -#define PNG_ERROR_TEXT_SUPPORTED -#define PNG_FIXED_POINT_SUPPORTED -#define PNG_FLOATING_ARITHMETIC_SUPPORTED -#define PNG_FLOATING_POINT_SUPPORTED -#define PNG_FORMAT_AFIRST_SUPPORTED -#define PNG_FORMAT_BGR_SUPPORTED -#define PNG_GAMMA_SUPPORTED -#define PNG_GET_PALETTE_MAX_SUPPORTED -#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED -#define PNG_INCH_CONVERSIONS_SUPPORTED -#define PNG_INFO_IMAGE_SUPPORTED -#define PNG_IO_STATE_SUPPORTED -#define PNG_MNG_FEATURES_SUPPORTED -#define PNG_POINTER_INDEXING_SUPPORTED -#define PNG_PROGRESSIVE_READ_SUPPORTED -#define PNG_READ_16BIT_SUPPORTED -#define PNG_READ_ALPHA_MODE_SUPPORTED -#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED -#define PNG_READ_BACKGROUND_SUPPORTED -#define PNG_READ_BGR_SUPPORTED -#define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED -#define PNG_READ_COMPOSITE_NODIV_SUPPORTED -#define PNG_READ_COMPRESSED_TEXT_SUPPORTED -#define PNG_READ_EXPAND_16_SUPPORTED -#define PNG_READ_EXPAND_SUPPORTED -#define PNG_READ_FILLER_SUPPORTED -#define PNG_READ_GAMMA_SUPPORTED -#define PNG_READ_GET_PALETTE_MAX_SUPPORTED -#define PNG_READ_GRAY_TO_RGB_SUPPORTED -#define PNG_READ_INTERLACING_SUPPORTED -#define PNG_READ_INT_FUNCTIONS_SUPPORTED -#define PNG_READ_INVERT_ALPHA_SUPPORTED -#define PNG_READ_INVERT_SUPPORTED -#define PNG_READ_OPT_PLTE_SUPPORTED -#define PNG_READ_PACKSWAP_SUPPORTED -#define PNG_READ_PACK_SUPPORTED -#define PNG_READ_QUANTIZE_SUPPORTED -#define PNG_READ_RGB_TO_GRAY_SUPPORTED -#define PNG_READ_SCALE_16_TO_8_SUPPORTED -#define PNG_READ_SHIFT_SUPPORTED -#define PNG_READ_STRIP_16_TO_8_SUPPORTED -#define PNG_READ_STRIP_ALPHA_SUPPORTED -#define PNG_READ_SUPPORTED -#define PNG_READ_SWAP_ALPHA_SUPPORTED -#define PNG_READ_SWAP_SUPPORTED -#define PNG_READ_TEXT_SUPPORTED -#define PNG_READ_TRANSFORMS_SUPPORTED -#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_READ_USER_CHUNKS_SUPPORTED -#define PNG_READ_USER_TRANSFORM_SUPPORTED -#define PNG_READ_bKGD_SUPPORTED -#define PNG_READ_cHRM_SUPPORTED -#define PNG_READ_gAMA_SUPPORTED -#define PNG_READ_hIST_SUPPORTED -#define PNG_READ_iCCP_SUPPORTED -#define PNG_READ_iTXt_SUPPORTED -#define PNG_READ_oFFs_SUPPORTED -#define PNG_READ_pCAL_SUPPORTED -#define PNG_READ_pHYs_SUPPORTED -#define PNG_READ_sBIT_SUPPORTED -#define PNG_READ_sCAL_SUPPORTED -#define PNG_READ_sPLT_SUPPORTED -#define PNG_READ_sRGB_SUPPORTED -#define PNG_READ_tEXt_SUPPORTED -#define PNG_READ_tIME_SUPPORTED -#define PNG_READ_tRNS_SUPPORTED -#define PNG_READ_zTXt_SUPPORTED -#define PNG_SAVE_INT_32_SUPPORTED -#define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_SEQUENTIAL_READ_SUPPORTED -#define PNG_SETJMP_SUPPORTED -#define PNG_SET_OPTION_SUPPORTED -#define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_SET_USER_LIMITS_SUPPORTED -#define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED -#define PNG_SIMPLIFIED_READ_BGR_SUPPORTED -#define PNG_SIMPLIFIED_READ_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_SUPPORTED -#define PNG_STDIO_SUPPORTED -#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_TEXT_SUPPORTED -#define PNG_TIME_RFC1123_SUPPORTED -#define PNG_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_USER_CHUNKS_SUPPORTED -#define PNG_USER_LIMITS_SUPPORTED -#define PNG_USER_MEM_SUPPORTED -#define PNG_USER_TRANSFORM_INFO_SUPPORTED -#define PNG_USER_TRANSFORM_PTR_SUPPORTED -#define PNG_WARNINGS_SUPPORTED -#define PNG_WRITE_16BIT_SUPPORTED -#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED -#define PNG_WRITE_BGR_SUPPORTED -#define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED -#define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED -#define PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED -#define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED -#define PNG_WRITE_FILLER_SUPPORTED -#define PNG_WRITE_FILTER_SUPPORTED -#define PNG_WRITE_FLUSH_SUPPORTED -#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED -#define PNG_WRITE_INTERLACING_SUPPORTED -#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED -#define PNG_WRITE_INVERT_ALPHA_SUPPORTED -#define PNG_WRITE_INVERT_SUPPORTED -#define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED -#define PNG_WRITE_PACKSWAP_SUPPORTED -#define PNG_WRITE_PACK_SUPPORTED -#define PNG_WRITE_SHIFT_SUPPORTED -#define PNG_WRITE_SUPPORTED -#define PNG_WRITE_SWAP_ALPHA_SUPPORTED -#define PNG_WRITE_SWAP_SUPPORTED -#define PNG_WRITE_TEXT_SUPPORTED -#define PNG_WRITE_TRANSFORMS_SUPPORTED -#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_WRITE_USER_TRANSFORM_SUPPORTED -#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED -#define PNG_WRITE_bKGD_SUPPORTED -#define PNG_WRITE_cHRM_SUPPORTED -#define PNG_WRITE_gAMA_SUPPORTED -#define PNG_WRITE_hIST_SUPPORTED -#define PNG_WRITE_iCCP_SUPPORTED -#define PNG_WRITE_iTXt_SUPPORTED -#define PNG_WRITE_oFFs_SUPPORTED -#define PNG_WRITE_pCAL_SUPPORTED -#define PNG_WRITE_pHYs_SUPPORTED -#define PNG_WRITE_sBIT_SUPPORTED -#define PNG_WRITE_sCAL_SUPPORTED -#define PNG_WRITE_sPLT_SUPPORTED -#define PNG_WRITE_sRGB_SUPPORTED -#define PNG_WRITE_tEXt_SUPPORTED -#define PNG_WRITE_tIME_SUPPORTED -#define PNG_WRITE_tRNS_SUPPORTED -#define PNG_WRITE_zTXt_SUPPORTED -#define PNG_bKGD_SUPPORTED -#define PNG_cHRM_SUPPORTED -#define PNG_gAMA_SUPPORTED -#define PNG_hIST_SUPPORTED -#define PNG_iCCP_SUPPORTED -#define PNG_iTXt_SUPPORTED -#define PNG_oFFs_SUPPORTED -#define PNG_pCAL_SUPPORTED -#define PNG_pHYs_SUPPORTED -#define PNG_sBIT_SUPPORTED -#define PNG_sCAL_SUPPORTED -#define PNG_sPLT_SUPPORTED -#define PNG_sRGB_SUPPORTED -#define PNG_tEXt_SUPPORTED -#define PNG_tIME_SUPPORTED -#define PNG_tRNS_SUPPORTED -#define PNG_zTXt_SUPPORTED -/* end of options */ -/* settings */ -#define PNG_API_RULE 0 -#define PNG_COST_SHIFT 3 -#define PNG_DEFAULT_READ_MACROS 1 -#define PNG_GAMMA_THRESHOLD_FIXED 5000 -#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE -#define PNG_INFLATE_BUF_SIZE 1024 -#define PNG_LINKAGE_API extern -#define PNG_LINKAGE_CALLBACK extern -#define PNG_LINKAGE_DATA extern -#define PNG_LINKAGE_FUNCTION extern -#define PNG_MAX_GAMMA_8 11 -#define PNG_QUANTIZE_BLUE_BITS 5 -#define PNG_QUANTIZE_GREEN_BITS 5 -#define PNG_QUANTIZE_RED_BITS 5 -#define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1) -#define PNG_TEXT_Z_DEFAULT_STRATEGY 0 -#define PNG_USER_CHUNK_CACHE_MAX 1000 -#define PNG_USER_CHUNK_MALLOC_MAX 8000000 -#define PNG_USER_HEIGHT_MAX 1000000 -#define PNG_USER_WIDTH_MAX 1000000 -#define PNG_WEIGHT_SHIFT 8 -#define PNG_ZBUF_SIZE 8192 -#define PNG_ZLIB_VERNUM 0 /* unknown */ -#define PNG_Z_DEFAULT_COMPRESSION (-1) -#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0 -#define PNG_Z_DEFAULT_STRATEGY 1 -#define PNG_sCAL_PRECISION 5 -#define PNG_sRGB_PROFILE_CHECKS 2 -/* end of settings */ -#endif /* PNGLCONF_H */ diff --git a/lib/windows/include/steam/isteamapplist.h b/lib/windows/include/steam/isteamapplist.h deleted file mode 100644 index d678909..0000000 --- a/lib/windows/include/steam/isteamapplist.h +++ /dev/null @@ -1,63 +0,0 @@ -//====== Copyright © 1996-2008, Valve Corporation, All rights reserved. ======= -// -// Purpose: interface to app data in Steam -// -//============================================================================= - -#ifndef ISTEAMAPPLIST_H -#define ISTEAMAPPLIST_H -#ifdef _WIN32 -#pragma once -#endif - -#include "isteamclient.h" -#include "steamtypes.h" - -//----------------------------------------------------------------------------- -// Purpose: This is a restricted interface that can only be used by previously approved apps, -// contact your Steam Account Manager if you believe you need access to this API. -// This interface lets you detect installed apps for the local Steam client, useful for debugging tools -// to offer lists of apps to debug via Steam. -//----------------------------------------------------------------------------- -class ISteamAppList -{ -public: - virtual uint32 GetNumInstalledApps() = 0; - virtual uint32 GetInstalledApps( AppId_t *pvecAppID, uint32 unMaxAppIDs ) = 0; - - virtual int GetAppName( AppId_t nAppID, OUT_STRING() char *pchName, int cchNameMax ) = 0; // returns -1 if no name was found - virtual int GetAppInstallDir( AppId_t nAppID, char *pchDirectory, int cchNameMax ) = 0; // returns -1 if no dir was found - - virtual int GetAppBuildId( AppId_t nAppID ) = 0; // return the buildid of this app, may change at any time based on backend updates to the game -}; - -#define STEAMAPPLIST_INTERFACE_VERSION "STEAMAPPLIST_INTERFACE_VERSION001" - -// callbacks -#if defined( VALVE_CALLBACK_PACK_SMALL ) -#pragma pack( push, 4 ) -#elif defined( VALVE_CALLBACK_PACK_LARGE ) -#pragma pack( push, 8 ) -#else -#error isteamclient.h must be included -#endif - - -//--------------------------------------------------------------------------------- -// Purpose: Sent when a new app is installed -//--------------------------------------------------------------------------------- -DEFINE_CALLBACK( SteamAppInstalled_t, k_iSteamAppListCallbacks + 1 ); - CALLBACK_MEMBER( 0, AppId_t, m_nAppID ) // ID of the app that installs -END_DEFINE_CALLBACK_1() - - -//--------------------------------------------------------------------------------- -// Purpose: Sent when an app is uninstalled -//--------------------------------------------------------------------------------- -DEFINE_CALLBACK( SteamAppUninstalled_t, k_iSteamAppListCallbacks + 2 ); - CALLBACK_MEMBER( 0, AppId_t, m_nAppID ) // ID of the app that installs -END_DEFINE_CALLBACK_1() - - -#pragma pack( pop ) -#endif // ISTEAMAPPLIST_H diff --git a/lib/windows/include/steam/isteamapps.h b/lib/windows/include/steam/isteamapps.h index 9a97b4a..8a2197e 100644 --- a/lib/windows/include/steam/isteamapps.h +++ b/lib/windows/include/steam/isteamapps.h @@ -10,6 +10,8 @@ #pragma once #endif +#include "steam_api_common.h" + const int k_cubAppProofOfPurchaseKeyMax = 240; // max supported length of a legacy cd key @@ -65,13 +67,16 @@ public: virtual uint32 GetAppInstallDir( AppId_t appID, char *pchFolder, uint32 cchFolderBufferSize ) = 0; virtual bool BIsAppInstalled( AppId_t appID ) = 0; // returns true if that app is installed (not necessarily owned) - virtual CSteamID GetAppOwner() = 0; // returns the SteamID of the original owner. If different from current user, it's borrowed + // returns the SteamID of the original owner. If this CSteamID is different from ISteamUser::GetSteamID(), + // the user has a temporary license borrowed via Family Sharing + virtual CSteamID GetAppOwner() = 0; - // Returns the associated launch param if the game is run via steam://run/<appid>//?param1=value1;param2=value2;param3=value3 etc. + // Returns the associated launch param if the game is run via steam://run/<appid>//?param1=value1¶m2=value2¶m3=value3 etc. // Parameter names starting with the character '@' are reserved for internal use and will always return and empty string. // Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, // but it is advised that you not param names beginning with an underscore for your own features. - virtual const char *GetLaunchQueryParam( const char *pchKey ) = 0; + // Check for new launch parameters on callback NewUrlLaunchParameters_t + virtual const char *GetLaunchQueryParam( const char *pchKey ) = 0; // get download progress for optional DLC virtual bool GetDlcDownloadProgress( AppId_t nAppID, uint64 *punBytesDownloaded, uint64 *punBytesTotal ) = 0; @@ -85,19 +90,42 @@ public: // member is k_uAppIdInvalid (zero). virtual void RequestAllProofOfPurchaseKeys() = 0; - CALL_RESULT( FileDetailsResult_t ) + STEAM_CALL_RESULT( FileDetailsResult_t ) virtual SteamAPICall_t GetFileDetails( const char* pszFileName ) = 0; + + // Get command line if game was launched via Steam URL, e.g. steam://run/<appid>//<command line>/. + // This method of passing a connect string (used when joining via rich presence, accepting an + // invite, etc) is preferable to passing the connect string on the operating system command + // line, which is a security risk. In order for rich presence joins to go through this + // path and not be placed on the OS command line, you must set a value in your app's + // configuration on Steam. Ask Valve for help with this. + // + // If game was already running and launched again, the NewUrlLaunchParameters_t will be fired. + virtual int GetLaunchCommandLine( char *pszCommandLine, int cubCommandLine ) = 0; + + // Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + virtual bool BIsSubscribedFromFamilySharing() = 0; + + // check if game is a timed trial with limited playtime + virtual bool BIsTimedTrial( uint32* punSecondsAllowed, uint32* punSecondsPlayed ) = 0; + + // set current DLC AppID being played (or 0 if none). Allows Steam to track usage of major DLC extensions + virtual bool SetDlcContext( AppId_t nAppID ) = 0; }; #define STEAMAPPS_INTERFACE_VERSION "STEAMAPPS_INTERFACE_VERSION008" +// Global interface accessor +inline ISteamApps *SteamApps(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamApps *, SteamApps, STEAMAPPS_INTERFACE_VERSION ); + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- // Purpose: posted after the user gains ownership of DLC & that DLC is installed @@ -109,37 +137,13 @@ struct DlcInstalled_t }; -//----------------------------------------------------------------------------- -// Purpose: possible results when registering an activation code -//----------------------------------------------------------------------------- -enum ERegisterActivationCodeResult -{ - k_ERegisterActivationCodeResultOK = 0, - k_ERegisterActivationCodeResultFail = 1, - k_ERegisterActivationCodeResultAlreadyRegistered = 2, - k_ERegisterActivationCodeResultTimeout = 3, - k_ERegisterActivationCodeAlreadyOwned = 4, -}; - - -//----------------------------------------------------------------------------- -// Purpose: response to RegisterActivationCode() -//----------------------------------------------------------------------------- -struct RegisterActivationCodeResponse_t -{ - enum { k_iCallback = k_iSteamAppsCallbacks + 8 }; - ERegisterActivationCodeResult m_eResult; - uint32 m_unPackageRegistered; // package that was registered. Only set on success -}; - - //--------------------------------------------------------------------------------- -// Purpose: posted after the user gains executes a steam url with query parameters -// such as steam://run/<appid>//?param1=value1;param2=value2;param3=value3; etc +// Purpose: posted after the user gains executes a Steam URL with command line or query parameters +// such as steam://run/<appid>//-commandline/?param1=value1¶m2=value2¶m3=value3 etc // while the game is already running. The new params can be queried -// with GetLaunchQueryParam. +// with GetLaunchQueryParam and GetLaunchCommandLine //--------------------------------------------------------------------------------- -struct NewLaunchQueryParameters_t +struct NewUrlLaunchParameters_t { enum { k_iCallback = k_iSteamAppsCallbacks + 14 }; }; @@ -172,5 +176,17 @@ struct FileDetailsResult_t }; +//----------------------------------------------------------------------------- +// Purpose: called for games in Timed Trial mode +//----------------------------------------------------------------------------- +struct TimedTrialStatus_t +{ + enum { k_iCallback = k_iSteamAppsCallbacks + 30 }; + AppId_t m_unAppID; // appID + bool m_bIsOffline; // if true, time allowed / played refers to offline time, not total time + uint32 m_unSecondsAllowed; // how many seconds the app can be played in total + uint32 m_unSecondsPlayed; // how many seconds the app was already played +}; + #pragma pack( pop ) #endif // ISTEAMAPPS_H diff --git a/lib/windows/include/steam/isteamclient.h b/lib/windows/include/steam/isteamclient.h index 45d707d..e457e87 100644 --- a/lib/windows/include/steam/isteamclient.h +++ b/lib/windows/include/steam/isteamclient.h @@ -1,8 +1,9 @@ -//====== Copyright � 1996-2008, Valve Corporation, All rights reserved. ======= +//====== Copyright Valve Corporation, All rights reserved. ==================== // -// Purpose: Main interface for loading and accessing Steamworks API's from the -// Steam client. -// For most uses, this code is wrapped inside of SteamAPI_Init() +// Internal low-level access to Steamworks interfaces. +// +// Most users of the Steamworks SDK do not need to include this file. +// You should only include this if you are doing something special. //============================================================================= #ifndef ISTEAMCLIENT_H @@ -11,102 +12,7 @@ #pragma once #endif -#include "steamtypes.h" -#include "steamclientpublic.h" - -// Define compile time assert macros to let us validate the structure sizes. -#define VALVE_COMPILE_TIME_ASSERT( pred ) typedef char compile_time_assert_type[(pred) ? 1 : -1]; - -#ifndef REFERENCE -#define REFERENCE(arg) ((void)arg) -#endif - -#if defined(STEAM_API_EXPORTS) && !defined(API_GEN) -#define STEAM_PRIVATE_API( ... ) __VA_ARGS__ -#elif defined(STEAM_API_EXPORTS) && defined(API_GEN) -#define STEAM_PRIVATE_API( ... ) -#else -#define STEAM_PRIVATE_API( ... ) protected: __VA_ARGS__ public: -#endif - -#if defined(__linux__) || defined(__APPLE__) -// The 32-bit version of gcc has the alignment requirement for uint64 and double set to -// 4 meaning that even with #pragma pack(8) these types will only be four-byte aligned. -// The 64-bit version of gcc has the alignment requirement for these types set to -// 8 meaning that unless we use #pragma pack(4) our structures will get bigger. -// The 64-bit structure packing has to match the 32-bit structure packing for each platform. -#define VALVE_CALLBACK_PACK_SMALL -#else -#define VALVE_CALLBACK_PACK_LARGE -#endif - -#if defined( VALVE_CALLBACK_PACK_SMALL ) -#pragma pack( push, 4 ) -#elif defined( VALVE_CALLBACK_PACK_LARGE ) -#pragma pack( push, 8 ) -#else -#error ??? -#endif - -typedef struct ValvePackingSentinel_t -{ - uint32 m_u32; - uint64 m_u64; - uint16 m_u16; - double m_d; -} ValvePackingSentinel_t; - -#pragma pack( pop ) - - -#if defined(VALVE_CALLBACK_PACK_SMALL) -VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 24 ) -#elif defined(VALVE_CALLBACK_PACK_LARGE) -VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 32 ) -#else -#error ??? -#endif - - -// handle to a communication pipe to the Steam client -typedef int32 HSteamPipe; -// handle to single instance of a steam user -typedef int32 HSteamUser; -// function prototype -#if defined( POSIX ) -#define __cdecl -#endif -extern "C" typedef void (__cdecl *SteamAPIWarningMessageHook_t)(int, const char *); -extern "C" typedef uint32 ( *SteamAPI_CheckCallbackRegistered_t )( int iCallbackNum ); -#if defined( __SNC__ ) - #pragma diag_suppress=1700 // warning 1700: class "%s" has virtual functions but non-virtual destructor -#endif - -// interface predec -class ISteamUser; -class ISteamGameServer; -class ISteamFriends; -class ISteamUtils; -class ISteamMatchmaking; -class ISteamContentServer; -class ISteamMatchmakingServers; -class ISteamUserStats; -class ISteamApps; -class ISteamNetworking; -class ISteamRemoteStorage; -class ISteamScreenshots; -class ISteamMusic; -class ISteamMusicRemote; -class ISteamGameServerStats; -class ISteamPS3OverlayRender; -class ISteamHTTP; -class ISteamUnifiedMessages; -class ISteamController; -class ISteamUGC; -class ISteamAppList; -class ISteamHTMLSurface; -class ISteamInventory; -class ISteamVideo; +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: Interface to creating a new steam instance, or to @@ -150,7 +56,7 @@ public: // set the local IP and Port to bind to // this must be set before CreateLocalUser() - virtual void SetLocalIPBinding( uint32 unIP, uint16 usPort ) = 0; + virtual void SetLocalIPBinding( const SteamIPAddress_t &unIP, uint16 usPort ) = 0; // returns the ISteamFriends interface virtual ISteamFriends *GetISteamFriends( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; @@ -185,6 +91,9 @@ public: // user screenshots virtual ISteamScreenshots *GetISteamScreenshots( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + // game search + virtual ISteamGameSearch *GetISteamGameSearch( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + // Deprecated. Applications should use SteamAPI_RunCallbacks() or SteamGameServer_RunCallbacks() instead. STEAM_PRIVATE_API( virtual void RunFrame() = 0; ) @@ -206,18 +115,12 @@ public: // Expose HTTP interface virtual ISteamHTTP *GetISteamHTTP( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; - // Exposes the ISteamUnifiedMessages interface - virtual ISteamUnifiedMessages *GetISteamUnifiedMessages( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; - - // Exposes the ISteamController interface + // Exposes the ISteamController interface - deprecated in favor of Steam Input virtual ISteamController *GetISteamController( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; // Exposes the ISteamUGC interface virtual ISteamUGC *GetISteamUGC( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; - // returns app list interface, only available on specially registered apps - virtual ISteamAppList *GetISteamAppList( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; - // Music Player virtual ISteamMusic *GetISteamMusic( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; @@ -237,284 +140,34 @@ public: // Video virtual ISteamVideo *GetISteamVideo( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Parental controls + virtual ISteamParentalSettings *GetISteamParentalSettings( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Exposes the Steam Input interface for controller support + virtual ISteamInput *GetISteamInput( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Steam Parties interface + virtual ISteamParties *GetISteamParties( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + // Steam Remote Play interface + virtual ISteamRemotePlay *GetISteamRemotePlay( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0; + + STEAM_PRIVATE_API( virtual void DestroyAllInterfaces() = 0; ) + }; +#define STEAMCLIENT_INTERFACE_VERSION "SteamClient021" +#ifndef STEAM_API_EXPORTS -#define STEAMCLIENT_INTERFACE_VERSION "SteamClient017" +// Global ISteamClient interface accessor +inline ISteamClient *SteamClient(); +STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamClient *, SteamClient, SteamInternal_CreateInterface( STEAMCLIENT_INTERFACE_VERSION ), "global", STEAMCLIENT_INTERFACE_VERSION ); -//----------------------------------------------------------------------------- -// Purpose: Base values for callback identifiers, each callback must -// have a unique ID. -//----------------------------------------------------------------------------- -enum { k_iSteamUserCallbacks = 100 }; -enum { k_iSteamGameServerCallbacks = 200 }; -enum { k_iSteamFriendsCallbacks = 300 }; -enum { k_iSteamBillingCallbacks = 400 }; -enum { k_iSteamMatchmakingCallbacks = 500 }; -enum { k_iSteamContentServerCallbacks = 600 }; -enum { k_iSteamUtilsCallbacks = 700 }; -enum { k_iClientFriendsCallbacks = 800 }; -enum { k_iClientUserCallbacks = 900 }; -enum { k_iSteamAppsCallbacks = 1000 }; -enum { k_iSteamUserStatsCallbacks = 1100 }; -enum { k_iSteamNetworkingCallbacks = 1200 }; -enum { k_iClientRemoteStorageCallbacks = 1300 }; -enum { k_iClientDepotBuilderCallbacks = 1400 }; -enum { k_iSteamGameServerItemsCallbacks = 1500 }; -enum { k_iClientUtilsCallbacks = 1600 }; -enum { k_iSteamGameCoordinatorCallbacks = 1700 }; -enum { k_iSteamGameServerStatsCallbacks = 1800 }; -enum { k_iSteam2AsyncCallbacks = 1900 }; -enum { k_iSteamGameStatsCallbacks = 2000 }; -enum { k_iClientHTTPCallbacks = 2100 }; -enum { k_iClientScreenshotsCallbacks = 2200 }; -enum { k_iSteamScreenshotsCallbacks = 2300 }; -enum { k_iClientAudioCallbacks = 2400 }; -enum { k_iClientUnifiedMessagesCallbacks = 2500 }; -enum { k_iSteamStreamLauncherCallbacks = 2600 }; -enum { k_iClientControllerCallbacks = 2700 }; -enum { k_iSteamControllerCallbacks = 2800 }; -enum { k_iClientParentalSettingsCallbacks = 2900 }; -enum { k_iClientDeviceAuthCallbacks = 3000 }; -enum { k_iClientNetworkDeviceManagerCallbacks = 3100 }; -enum { k_iClientMusicCallbacks = 3200 }; -enum { k_iClientRemoteClientManagerCallbacks = 3300 }; -enum { k_iClientUGCCallbacks = 3400 }; -enum { k_iSteamStreamClientCallbacks = 3500 }; -enum { k_IClientProductBuilderCallbacks = 3600 }; -enum { k_iClientShortcutsCallbacks = 3700 }; -enum { k_iClientRemoteControlManagerCallbacks = 3800 }; -enum { k_iSteamAppListCallbacks = 3900 }; -enum { k_iSteamMusicCallbacks = 4000 }; -enum { k_iSteamMusicRemoteCallbacks = 4100 }; -enum { k_iClientVRCallbacks = 4200 }; -enum { k_iClientGameNotificationCallbacks = 4300 }; -enum { k_iSteamGameNotificationCallbacks = 4400 }; -enum { k_iSteamHTMLSurfaceCallbacks = 4500 }; -enum { k_iClientVideoCallbacks = 4600 }; -enum { k_iClientInventoryCallbacks = 4700 }; -enum { k_iClientBluetoothManagerCallbacks = 4800 }; - -//----------------------------------------------------------------------------- -// The CALLBACK macros are for client side callback logging enabled with -// log_callback <first callnbackID> <last callbackID> -// Do not change any of these. -//----------------------------------------------------------------------------- - -#ifdef STEAM_CALLBACK_INSPECTION_ENABLED - -#define DEFINE_CALLBACK( callbackname, callbackid ) \ -struct callbackname { \ - typedef callbackname SteamCallback_t; \ - enum { k_iCallback = callbackid }; \ - static callbackname *GetNullPointer() { return 0; } \ - static const char *GetCallbackName() { return #callbackname; } \ - static uint32 GetCallbackID() { return callbackname::k_iCallback; } - -#define CALLBACK_MEMBER( varidx, vartype, varname ) \ - public: vartype varname ; \ - static void GetMemberVar_##varidx( unsigned int &varOffset, unsigned int &varSize, uint32 &varCount, const char **pszName, const char **pszType ) { \ - varOffset = (unsigned int)(size_t)&GetNullPointer()->varname; \ - varSize = sizeof( vartype ); \ - varCount = 1; \ - *pszName = #varname; *pszType = #vartype; } - -#define CALLBACK_ARRAY( varidx, vartype, varname, varcount ) \ - public: vartype varname [ varcount ]; \ - static void GetMemberVar_##varidx( unsigned int &varOffset, unsigned int &varSize, uint32 &varCount, const char **pszName, const char **pszType ) { \ - varOffset = (unsigned int)(size_t)&GetNullPointer()->varname[0]; \ - varSize = sizeof( vartype ); \ - varCount = varcount; \ - *pszName = #varname; *pszType = #vartype; } - - -#define END_CALLBACK_INTERNAL_BEGIN( numvars ) \ - static uint32 GetNumMemberVariables() { return numvars; } \ - static bool GetMemberVariable( uint32 index, uint32 &varOffset, uint32 &varSize, uint32 &varCount, const char **pszName, const char **pszType ) { \ - switch ( index ) { default : return false; - - -#define END_CALLBACK_INTERNAL_SWITCH( varidx ) case varidx : GetMemberVar_##varidx( varOffset, varSize, varCount, pszName, pszType ); return true; - -#define END_CALLBACK_INTERNAL_END() }; } }; - -#define END_DEFINE_CALLBACK_0() \ - static uint32 GetNumMemberVariables() { return 0; } \ - static bool GetMemberVariable( uint32 index, uint32 &varOffset, uint32 &varSize, uint32 &varCount, const char **pszName, const char **pszType ) { REFERENCE( pszType ); REFERENCE( pszName ); REFERENCE( varCount ); REFERENCE( varSize ); REFERENCE( varOffset ); REFERENCE( index ); return false; } \ - }; - -#else - -#define DEFINE_CALLBACK( callbackname, callbackid ) struct callbackname { typedef callbackname SteamCallback_t; enum { k_iCallback = callbackid }; -#define CALLBACK_MEMBER( varidx, vartype, varname ) public: vartype varname ; -#define CALLBACK_ARRAY( varidx, vartype, varname, varcount ) public: vartype varname [ varcount ]; -#define END_CALLBACK_INTERNAL_BEGIN( numvars ) -#define END_CALLBACK_INTERNAL_SWITCH( varidx ) -#define END_CALLBACK_INTERNAL_END() }; -#define END_DEFINE_CALLBACK_0() }; +// The internal ISteamClient used for the gameserver interface. +// (This is actually the same thing. You really shouldn't need to access any of this stuff directly.) +inline ISteamClient *SteamGameServerClient() { return SteamClient(); } #endif -#define END_DEFINE_CALLBACK_1() \ - END_CALLBACK_INTERNAL_BEGIN( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_2() \ - END_CALLBACK_INTERNAL_BEGIN( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_3() \ - END_CALLBACK_INTERNAL_BEGIN( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_4() \ - END_CALLBACK_INTERNAL_BEGIN( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_5() \ - END_CALLBACK_INTERNAL_BEGIN( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_END() - - -#define END_DEFINE_CALLBACK_6() \ - END_CALLBACK_INTERNAL_BEGIN( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_7() \ - END_CALLBACK_INTERNAL_BEGIN( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_8() \ - END_CALLBACK_INTERNAL_BEGIN( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_9() \ - END_CALLBACK_INTERNAL_BEGIN( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_10() \ - END_CALLBACK_INTERNAL_BEGIN( 10 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_11() \ - END_CALLBACK_INTERNAL_BEGIN( 11 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 10 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_12() \ - END_CALLBACK_INTERNAL_BEGIN( 12 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 10 ) \ - END_CALLBACK_INTERNAL_SWITCH( 11 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_13() \ - END_CALLBACK_INTERNAL_BEGIN( 13 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 10 ) \ - END_CALLBACK_INTERNAL_SWITCH( 11 ) \ - END_CALLBACK_INTERNAL_SWITCH( 12 ) \ - END_CALLBACK_INTERNAL_END() - -#define END_DEFINE_CALLBACK_14() \ - END_CALLBACK_INTERNAL_BEGIN( 14 ) \ - END_CALLBACK_INTERNAL_SWITCH( 0 ) \ - END_CALLBACK_INTERNAL_SWITCH( 1 ) \ - END_CALLBACK_INTERNAL_SWITCH( 2 ) \ - END_CALLBACK_INTERNAL_SWITCH( 3 ) \ - END_CALLBACK_INTERNAL_SWITCH( 4 ) \ - END_CALLBACK_INTERNAL_SWITCH( 5 ) \ - END_CALLBACK_INTERNAL_SWITCH( 6 ) \ - END_CALLBACK_INTERNAL_SWITCH( 7 ) \ - END_CALLBACK_INTERNAL_SWITCH( 8 ) \ - END_CALLBACK_INTERNAL_SWITCH( 9 ) \ - END_CALLBACK_INTERNAL_SWITCH( 10 ) \ - END_CALLBACK_INTERNAL_SWITCH( 11 ) \ - END_CALLBACK_INTERNAL_SWITCH( 12 ) \ - END_CALLBACK_INTERNAL_SWITCH( 13 ) \ - END_CALLBACK_INTERNAL_END() - #endif // ISTEAMCLIENT_H diff --git a/lib/windows/include/steam/isteamcontroller.h b/lib/windows/include/steam/isteamcontroller.h index 68f7af6..057606c 100644 --- a/lib/windows/include/steam/isteamcontroller.h +++ b/lib/windows/include/steam/isteamcontroller.h @@ -1,6 +1,12 @@ -//====== Copyright 1996-2013, Valve Corporation, All rights reserved. ======= +//====== Copyright 1996-2018, Valve Corporation, All rights reserved. ======= +// Note: The older ISteamController interface has been deprecated in favor of ISteamInput - this interface +// was updated in this SDK but will be removed from future SDK's. The Steam Client will retain +// compatibility with the older interfaces so your any existing integrations should be unaffected. // -// Purpose: interface to valve controller +// Purpose: Steam Input is a flexible input API that supports over three hundred devices including all +// common variants of Xbox, Playstation, Nintendo Switch Pro, and Steam Controllers. +// For more info including a getting started guide for developers +// please visit: https://partner.steamgames.com/doc/features/steam_controller // //============================================================================= @@ -10,63 +16,40 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" +#include "isteaminput.h" #define STEAM_CONTROLLER_MAX_COUNT 16 -#define STEAM_CONTROLLER_MAX_ANALOG_ACTIONS 16 +#define STEAM_CONTROLLER_MAX_ANALOG_ACTIONS 24 -#define STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS 128 +#define STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS 256 #define STEAM_CONTROLLER_MAX_ORIGINS 8 +#define STEAM_CONTROLLER_MAX_ACTIVE_LAYERS 16 + // When sending an option to a specific controller handle, you can send to all controllers via this command #define STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS UINT64_MAX #define STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATA -1.0f #define STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATA 1.0f +#ifndef ISTEAMINPUT_H enum ESteamControllerPad { k_ESteamControllerPad_Left, k_ESteamControllerPad_Right }; +#endif -enum EControllerSource -{ - k_EControllerSource_None, - k_EControllerSource_LeftTrackpad, - k_EControllerSource_RightTrackpad, - k_EControllerSource_Joystick, - k_EControllerSource_ABXY, - k_EControllerSource_Switch, - k_EControllerSource_LeftTrigger, - k_EControllerSource_RightTrigger, - k_EControllerSource_Gyro, - k_EControllerSource_Count -}; - -enum EControllerSourceMode -{ - k_EControllerSourceMode_None, - k_EControllerSourceMode_Dpad, - k_EControllerSourceMode_Buttons, - k_EControllerSourceMode_FourButtons, - k_EControllerSourceMode_AbsoluteMouse, - k_EControllerSourceMode_RelativeMouse, - k_EControllerSourceMode_JoystickMove, - k_EControllerSourceMode_JoystickCamera, - k_EControllerSourceMode_ScrollWheel, - k_EControllerSourceMode_Trigger, - k_EControllerSourceMode_TouchMenu, - k_EControllerSourceMode_MouseJoystick, - k_EControllerSourceMode_MouseRegion, - k_EControllerSourceMode_RadialMenu, - k_EControllerSourceMode_Switches -}; - +// Note: Please do not use action origins as a way to identify controller types. There is no +// guarantee that they will be added in a contiguous manner - use GetInputTypeForHandle instead +// Versions of Steam that add new controller types in the future will extend this enum if you're +// using a lookup table please check the bounds of any origins returned by Steam. enum EControllerActionOrigin { + // Steam Controller k_EControllerActionOrigin_None, k_EControllerActionOrigin_A, k_EControllerActionOrigin_B, @@ -107,7 +90,436 @@ enum EControllerActionOrigin k_EControllerActionOrigin_Gyro_Yaw, k_EControllerActionOrigin_Gyro_Roll, - k_EControllerActionOrigin_Count + // PS4 Dual Shock + k_EControllerActionOrigin_PS4_X, + k_EControllerActionOrigin_PS4_Circle, + k_EControllerActionOrigin_PS4_Triangle, + k_EControllerActionOrigin_PS4_Square, + k_EControllerActionOrigin_PS4_LeftBumper, + k_EControllerActionOrigin_PS4_RightBumper, + k_EControllerActionOrigin_PS4_Options, //Start + k_EControllerActionOrigin_PS4_Share, //Back + k_EControllerActionOrigin_PS4_LeftPad_Touch, + k_EControllerActionOrigin_PS4_LeftPad_Swipe, + k_EControllerActionOrigin_PS4_LeftPad_Click, + k_EControllerActionOrigin_PS4_LeftPad_DPadNorth, + k_EControllerActionOrigin_PS4_LeftPad_DPadSouth, + k_EControllerActionOrigin_PS4_LeftPad_DPadWest, + k_EControllerActionOrigin_PS4_LeftPad_DPadEast, + k_EControllerActionOrigin_PS4_RightPad_Touch, + k_EControllerActionOrigin_PS4_RightPad_Swipe, + k_EControllerActionOrigin_PS4_RightPad_Click, + k_EControllerActionOrigin_PS4_RightPad_DPadNorth, + k_EControllerActionOrigin_PS4_RightPad_DPadSouth, + k_EControllerActionOrigin_PS4_RightPad_DPadWest, + k_EControllerActionOrigin_PS4_RightPad_DPadEast, + k_EControllerActionOrigin_PS4_CenterPad_Touch, + k_EControllerActionOrigin_PS4_CenterPad_Swipe, + k_EControllerActionOrigin_PS4_CenterPad_Click, + k_EControllerActionOrigin_PS4_CenterPad_DPadNorth, + k_EControllerActionOrigin_PS4_CenterPad_DPadSouth, + k_EControllerActionOrigin_PS4_CenterPad_DPadWest, + k_EControllerActionOrigin_PS4_CenterPad_DPadEast, + k_EControllerActionOrigin_PS4_LeftTrigger_Pull, + k_EControllerActionOrigin_PS4_LeftTrigger_Click, + k_EControllerActionOrigin_PS4_RightTrigger_Pull, + k_EControllerActionOrigin_PS4_RightTrigger_Click, + k_EControllerActionOrigin_PS4_LeftStick_Move, + k_EControllerActionOrigin_PS4_LeftStick_Click, + k_EControllerActionOrigin_PS4_LeftStick_DPadNorth, + k_EControllerActionOrigin_PS4_LeftStick_DPadSouth, + k_EControllerActionOrigin_PS4_LeftStick_DPadWest, + k_EControllerActionOrigin_PS4_LeftStick_DPadEast, + k_EControllerActionOrigin_PS4_RightStick_Move, + k_EControllerActionOrigin_PS4_RightStick_Click, + k_EControllerActionOrigin_PS4_RightStick_DPadNorth, + k_EControllerActionOrigin_PS4_RightStick_DPadSouth, + k_EControllerActionOrigin_PS4_RightStick_DPadWest, + k_EControllerActionOrigin_PS4_RightStick_DPadEast, + k_EControllerActionOrigin_PS4_DPad_North, + k_EControllerActionOrigin_PS4_DPad_South, + k_EControllerActionOrigin_PS4_DPad_West, + k_EControllerActionOrigin_PS4_DPad_East, + k_EControllerActionOrigin_PS4_Gyro_Move, + k_EControllerActionOrigin_PS4_Gyro_Pitch, + k_EControllerActionOrigin_PS4_Gyro_Yaw, + k_EControllerActionOrigin_PS4_Gyro_Roll, + + // XBox One + k_EControllerActionOrigin_XBoxOne_A, + k_EControllerActionOrigin_XBoxOne_B, + k_EControllerActionOrigin_XBoxOne_X, + k_EControllerActionOrigin_XBoxOne_Y, + k_EControllerActionOrigin_XBoxOne_LeftBumper, + k_EControllerActionOrigin_XBoxOne_RightBumper, + k_EControllerActionOrigin_XBoxOne_Menu, //Start + k_EControllerActionOrigin_XBoxOne_View, //Back + k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull, + k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click, + k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull, + k_EControllerActionOrigin_XBoxOne_RightTrigger_Click, + k_EControllerActionOrigin_XBoxOne_LeftStick_Move, + k_EControllerActionOrigin_XBoxOne_LeftStick_Click, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest, + k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast, + k_EControllerActionOrigin_XBoxOne_RightStick_Move, + k_EControllerActionOrigin_XBoxOne_RightStick_Click, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest, + k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast, + k_EControllerActionOrigin_XBoxOne_DPad_North, + k_EControllerActionOrigin_XBoxOne_DPad_South, + k_EControllerActionOrigin_XBoxOne_DPad_West, + k_EControllerActionOrigin_XBoxOne_DPad_East, + + // XBox 360 + k_EControllerActionOrigin_XBox360_A, + k_EControllerActionOrigin_XBox360_B, + k_EControllerActionOrigin_XBox360_X, + k_EControllerActionOrigin_XBox360_Y, + k_EControllerActionOrigin_XBox360_LeftBumper, + k_EControllerActionOrigin_XBox360_RightBumper, + k_EControllerActionOrigin_XBox360_Start, //Start + k_EControllerActionOrigin_XBox360_Back, //Back + k_EControllerActionOrigin_XBox360_LeftTrigger_Pull, + k_EControllerActionOrigin_XBox360_LeftTrigger_Click, + k_EControllerActionOrigin_XBox360_RightTrigger_Pull, + k_EControllerActionOrigin_XBox360_RightTrigger_Click, + k_EControllerActionOrigin_XBox360_LeftStick_Move, + k_EControllerActionOrigin_XBox360_LeftStick_Click, + k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth, + k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth, + k_EControllerActionOrigin_XBox360_LeftStick_DPadWest, + k_EControllerActionOrigin_XBox360_LeftStick_DPadEast, + k_EControllerActionOrigin_XBox360_RightStick_Move, + k_EControllerActionOrigin_XBox360_RightStick_Click, + k_EControllerActionOrigin_XBox360_RightStick_DPadNorth, + k_EControllerActionOrigin_XBox360_RightStick_DPadSouth, + k_EControllerActionOrigin_XBox360_RightStick_DPadWest, + k_EControllerActionOrigin_XBox360_RightStick_DPadEast, + k_EControllerActionOrigin_XBox360_DPad_North, + k_EControllerActionOrigin_XBox360_DPad_South, + k_EControllerActionOrigin_XBox360_DPad_West, + k_EControllerActionOrigin_XBox360_DPad_East, + + // SteamController V2 + k_EControllerActionOrigin_SteamV2_A, + k_EControllerActionOrigin_SteamV2_B, + k_EControllerActionOrigin_SteamV2_X, + k_EControllerActionOrigin_SteamV2_Y, + k_EControllerActionOrigin_SteamV2_LeftBumper, + k_EControllerActionOrigin_SteamV2_RightBumper, + k_EControllerActionOrigin_SteamV2_LeftGrip_Lower, + k_EControllerActionOrigin_SteamV2_LeftGrip_Upper, + k_EControllerActionOrigin_SteamV2_RightGrip_Lower, + k_EControllerActionOrigin_SteamV2_RightGrip_Upper, + k_EControllerActionOrigin_SteamV2_LeftBumper_Pressure, + k_EControllerActionOrigin_SteamV2_RightBumper_Pressure, + k_EControllerActionOrigin_SteamV2_LeftGrip_Pressure, + k_EControllerActionOrigin_SteamV2_RightGrip_Pressure, + k_EControllerActionOrigin_SteamV2_LeftGrip_Upper_Pressure, + k_EControllerActionOrigin_SteamV2_RightGrip_Upper_Pressure, + k_EControllerActionOrigin_SteamV2_Start, + k_EControllerActionOrigin_SteamV2_Back, + k_EControllerActionOrigin_SteamV2_LeftPad_Touch, + k_EControllerActionOrigin_SteamV2_LeftPad_Swipe, + k_EControllerActionOrigin_SteamV2_LeftPad_Click, + k_EControllerActionOrigin_SteamV2_LeftPad_Pressure, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest, + k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast, + k_EControllerActionOrigin_SteamV2_RightPad_Touch, + k_EControllerActionOrigin_SteamV2_RightPad_Swipe, + k_EControllerActionOrigin_SteamV2_RightPad_Click, + k_EControllerActionOrigin_SteamV2_RightPad_Pressure, + k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth, + k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth, + k_EControllerActionOrigin_SteamV2_RightPad_DPadWest, + k_EControllerActionOrigin_SteamV2_RightPad_DPadEast, + k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull, + k_EControllerActionOrigin_SteamV2_LeftTrigger_Click, + k_EControllerActionOrigin_SteamV2_RightTrigger_Pull, + k_EControllerActionOrigin_SteamV2_RightTrigger_Click, + k_EControllerActionOrigin_SteamV2_LeftStick_Move, + k_EControllerActionOrigin_SteamV2_LeftStick_Click, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest, + k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast, + k_EControllerActionOrigin_SteamV2_Gyro_Move, + k_EControllerActionOrigin_SteamV2_Gyro_Pitch, + k_EControllerActionOrigin_SteamV2_Gyro_Yaw, + k_EControllerActionOrigin_SteamV2_Gyro_Roll, + + // Switch - Pro or Joycons used as a single input device. + // This does not apply to a single joycon + k_EControllerActionOrigin_Switch_A, + k_EControllerActionOrigin_Switch_B, + k_EControllerActionOrigin_Switch_X, + k_EControllerActionOrigin_Switch_Y, + k_EControllerActionOrigin_Switch_LeftBumper, + k_EControllerActionOrigin_Switch_RightBumper, + k_EControllerActionOrigin_Switch_Plus, //Start + k_EControllerActionOrigin_Switch_Minus, //Back + k_EControllerActionOrigin_Switch_Capture, + k_EControllerActionOrigin_Switch_LeftTrigger_Pull, + k_EControllerActionOrigin_Switch_LeftTrigger_Click, + k_EControllerActionOrigin_Switch_RightTrigger_Pull, + k_EControllerActionOrigin_Switch_RightTrigger_Click, + k_EControllerActionOrigin_Switch_LeftStick_Move, + k_EControllerActionOrigin_Switch_LeftStick_Click, + k_EControllerActionOrigin_Switch_LeftStick_DPadNorth, + k_EControllerActionOrigin_Switch_LeftStick_DPadSouth, + k_EControllerActionOrigin_Switch_LeftStick_DPadWest, + k_EControllerActionOrigin_Switch_LeftStick_DPadEast, + k_EControllerActionOrigin_Switch_RightStick_Move, + k_EControllerActionOrigin_Switch_RightStick_Click, + k_EControllerActionOrigin_Switch_RightStick_DPadNorth, + k_EControllerActionOrigin_Switch_RightStick_DPadSouth, + k_EControllerActionOrigin_Switch_RightStick_DPadWest, + k_EControllerActionOrigin_Switch_RightStick_DPadEast, + k_EControllerActionOrigin_Switch_DPad_North, + k_EControllerActionOrigin_Switch_DPad_South, + k_EControllerActionOrigin_Switch_DPad_West, + k_EControllerActionOrigin_Switch_DPad_East, + k_EControllerActionOrigin_Switch_ProGyro_Move, // Primary Gyro in Pro Controller, or Right JoyCon + k_EControllerActionOrigin_Switch_ProGyro_Pitch, // Primary Gyro in Pro Controller, or Right JoyCon + k_EControllerActionOrigin_Switch_ProGyro_Yaw, // Primary Gyro in Pro Controller, or Right JoyCon + k_EControllerActionOrigin_Switch_ProGyro_Roll, // Primary Gyro in Pro Controller, or Right JoyCon + // Switch JoyCon Specific + k_EControllerActionOrigin_Switch_RightGyro_Move, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_RightGyro_Pitch, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_RightGyro_Yaw, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_RightGyro_Roll, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EControllerActionOrigin_Switch_LeftGyro_Move, + k_EControllerActionOrigin_Switch_LeftGyro_Pitch, + k_EControllerActionOrigin_Switch_LeftGyro_Yaw, + k_EControllerActionOrigin_Switch_LeftGyro_Roll, + k_EControllerActionOrigin_Switch_LeftGrip_Lower, // Left JoyCon SR Button + k_EControllerActionOrigin_Switch_LeftGrip_Upper, // Left JoyCon SL Button + k_EControllerActionOrigin_Switch_RightGrip_Lower, // Right JoyCon SL Button + k_EControllerActionOrigin_Switch_RightGrip_Upper, // Right JoyCon SR Button + + // Added in SDK 1.45 + k_EControllerActionOrigin_PS4_DPad_Move, + k_EControllerActionOrigin_XBoxOne_DPad_Move, + k_EControllerActionOrigin_XBox360_DPad_Move, + k_EControllerActionOrigin_Switch_DPad_Move, + + // Added in SDK 1.51 + k_EControllerActionOrigin_PS5_X, + k_EControllerActionOrigin_PS5_Circle, + k_EControllerActionOrigin_PS5_Triangle, + k_EControllerActionOrigin_PS5_Square, + k_EControllerActionOrigin_PS5_LeftBumper, + k_EControllerActionOrigin_PS5_RightBumper, + k_EControllerActionOrigin_PS5_Option, //Start + k_EControllerActionOrigin_PS5_Create, //Back + k_EControllerActionOrigin_PS5_Mute, + k_EControllerActionOrigin_PS5_LeftPad_Touch, + k_EControllerActionOrigin_PS5_LeftPad_Swipe, + k_EControllerActionOrigin_PS5_LeftPad_Click, + k_EControllerActionOrigin_PS5_LeftPad_DPadNorth, + k_EControllerActionOrigin_PS5_LeftPad_DPadSouth, + k_EControllerActionOrigin_PS5_LeftPad_DPadWest, + k_EControllerActionOrigin_PS5_LeftPad_DPadEast, + k_EControllerActionOrigin_PS5_RightPad_Touch, + k_EControllerActionOrigin_PS5_RightPad_Swipe, + k_EControllerActionOrigin_PS5_RightPad_Click, + k_EControllerActionOrigin_PS5_RightPad_DPadNorth, + k_EControllerActionOrigin_PS5_RightPad_DPadSouth, + k_EControllerActionOrigin_PS5_RightPad_DPadWest, + k_EControllerActionOrigin_PS5_RightPad_DPadEast, + k_EControllerActionOrigin_PS5_CenterPad_Touch, + k_EControllerActionOrigin_PS5_CenterPad_Swipe, + k_EControllerActionOrigin_PS5_CenterPad_Click, + k_EControllerActionOrigin_PS5_CenterPad_DPadNorth, + k_EControllerActionOrigin_PS5_CenterPad_DPadSouth, + k_EControllerActionOrigin_PS5_CenterPad_DPadWest, + k_EControllerActionOrigin_PS5_CenterPad_DPadEast, + k_EControllerActionOrigin_PS5_LeftTrigger_Pull, + k_EControllerActionOrigin_PS5_LeftTrigger_Click, + k_EControllerActionOrigin_PS5_RightTrigger_Pull, + k_EControllerActionOrigin_PS5_RightTrigger_Click, + k_EControllerActionOrigin_PS5_LeftStick_Move, + k_EControllerActionOrigin_PS5_LeftStick_Click, + k_EControllerActionOrigin_PS5_LeftStick_DPadNorth, + k_EControllerActionOrigin_PS5_LeftStick_DPadSouth, + k_EControllerActionOrigin_PS5_LeftStick_DPadWest, + k_EControllerActionOrigin_PS5_LeftStick_DPadEast, + k_EControllerActionOrigin_PS5_RightStick_Move, + k_EControllerActionOrigin_PS5_RightStick_Click, + k_EControllerActionOrigin_PS5_RightStick_DPadNorth, + k_EControllerActionOrigin_PS5_RightStick_DPadSouth, + k_EControllerActionOrigin_PS5_RightStick_DPadWest, + k_EControllerActionOrigin_PS5_RightStick_DPadEast, + k_EControllerActionOrigin_PS5_DPad_Move, + k_EControllerActionOrigin_PS5_DPad_North, + k_EControllerActionOrigin_PS5_DPad_South, + k_EControllerActionOrigin_PS5_DPad_West, + k_EControllerActionOrigin_PS5_DPad_East, + k_EControllerActionOrigin_PS5_Gyro_Move, + k_EControllerActionOrigin_PS5_Gyro_Pitch, + k_EControllerActionOrigin_PS5_Gyro_Yaw, + k_EControllerActionOrigin_PS5_Gyro_Roll, + + k_EControllerActionOrigin_XBoxOne_LeftGrip_Lower, + k_EControllerActionOrigin_XBoxOne_LeftGrip_Upper, + k_EControllerActionOrigin_XBoxOne_RightGrip_Lower, + k_EControllerActionOrigin_XBoxOne_RightGrip_Upper, + k_EControllerActionOrigin_XBoxOne_Share, + + // Added in SDK 1.53 + k_EControllerActionOrigin_SteamDeck_A, + k_EControllerActionOrigin_SteamDeck_B, + k_EControllerActionOrigin_SteamDeck_X, + k_EControllerActionOrigin_SteamDeck_Y, + k_EControllerActionOrigin_SteamDeck_L1, + k_EControllerActionOrigin_SteamDeck_R1, + k_EControllerActionOrigin_SteamDeck_Menu, + k_EControllerActionOrigin_SteamDeck_View, + k_EControllerActionOrigin_SteamDeck_LeftPad_Touch, + k_EControllerActionOrigin_SteamDeck_LeftPad_Swipe, + k_EControllerActionOrigin_SteamDeck_LeftPad_Click, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadNorth, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadSouth, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadWest, + k_EControllerActionOrigin_SteamDeck_LeftPad_DPadEast, + k_EControllerActionOrigin_SteamDeck_RightPad_Touch, + k_EControllerActionOrigin_SteamDeck_RightPad_Swipe, + k_EControllerActionOrigin_SteamDeck_RightPad_Click, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadNorth, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadSouth, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadWest, + k_EControllerActionOrigin_SteamDeck_RightPad_DPadEast, + k_EControllerActionOrigin_SteamDeck_L2_SoftPull, + k_EControllerActionOrigin_SteamDeck_L2, + k_EControllerActionOrigin_SteamDeck_R2_SoftPull, + k_EControllerActionOrigin_SteamDeck_R2, + k_EControllerActionOrigin_SteamDeck_LeftStick_Move, + k_EControllerActionOrigin_SteamDeck_L3, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadNorth, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadSouth, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadWest, + k_EControllerActionOrigin_SteamDeck_LeftStick_DPadEast, + k_EControllerActionOrigin_SteamDeck_LeftStick_Touch, + k_EControllerActionOrigin_SteamDeck_RightStick_Move, + k_EControllerActionOrigin_SteamDeck_R3, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadNorth, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadSouth, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadWest, + k_EControllerActionOrigin_SteamDeck_RightStick_DPadEast, + k_EControllerActionOrigin_SteamDeck_RightStick_Touch, + k_EControllerActionOrigin_SteamDeck_L4, + k_EControllerActionOrigin_SteamDeck_R4, + k_EControllerActionOrigin_SteamDeck_L5, + k_EControllerActionOrigin_SteamDeck_R5, + k_EControllerActionOrigin_SteamDeck_DPad_Move, + k_EControllerActionOrigin_SteamDeck_DPad_North, + k_EControllerActionOrigin_SteamDeck_DPad_South, + k_EControllerActionOrigin_SteamDeck_DPad_West, + k_EControllerActionOrigin_SteamDeck_DPad_East, + k_EControllerActionOrigin_SteamDeck_Gyro_Move, + k_EControllerActionOrigin_SteamDeck_Gyro_Pitch, + k_EControllerActionOrigin_SteamDeck_Gyro_Yaw, + k_EControllerActionOrigin_SteamDeck_Gyro_Roll, + k_EControllerActionOrigin_SteamDeck_Reserved1, + k_EControllerActionOrigin_SteamDeck_Reserved2, + k_EControllerActionOrigin_SteamDeck_Reserved3, + k_EControllerActionOrigin_SteamDeck_Reserved4, + k_EControllerActionOrigin_SteamDeck_Reserved5, + k_EControllerActionOrigin_SteamDeck_Reserved6, + k_EControllerActionOrigin_SteamDeck_Reserved7, + k_EControllerActionOrigin_SteamDeck_Reserved8, + k_EControllerActionOrigin_SteamDeck_Reserved9, + k_EControllerActionOrigin_SteamDeck_Reserved10, + k_EControllerActionOrigin_SteamDeck_Reserved11, + k_EControllerActionOrigin_SteamDeck_Reserved12, + k_EControllerActionOrigin_SteamDeck_Reserved13, + k_EControllerActionOrigin_SteamDeck_Reserved14, + k_EControllerActionOrigin_SteamDeck_Reserved15, + k_EControllerActionOrigin_SteamDeck_Reserved16, + k_EControllerActionOrigin_SteamDeck_Reserved17, + k_EControllerActionOrigin_SteamDeck_Reserved18, + k_EControllerActionOrigin_SteamDeck_Reserved19, + k_EControllerActionOrigin_SteamDeck_Reserved20, + + k_EControllerActionOrigin_Switch_JoyConButton_N, // With a Horizontal JoyCon this will be Y or what would be Dpad Right when vertical + k_EControllerActionOrigin_Switch_JoyConButton_E, // X + k_EControllerActionOrigin_Switch_JoyConButton_S, // A + k_EControllerActionOrigin_Switch_JoyConButton_W, // B + + k_EControllerActionOrigin_PS5_LeftGrip, + k_EControllerActionOrigin_PS5_RightGrip, + k_EControllerActionOrigin_PS5_LeftFn, + k_EControllerActionOrigin_PS5_RightFn, + + k_EControllerActionOrigin_Count, // If Steam has added support for new controllers origins will go here. + k_EControllerActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits. +}; + +#ifndef ISTEAMINPUT_H +enum EXboxOrigin +{ + k_EXboxOrigin_A, + k_EXboxOrigin_B, + k_EXboxOrigin_X, + k_EXboxOrigin_Y, + k_EXboxOrigin_LeftBumper, + k_EXboxOrigin_RightBumper, + k_EXboxOrigin_Menu, //Start + k_EXboxOrigin_View, //Back + k_EXboxOrigin_LeftTrigger_Pull, + k_EXboxOrigin_LeftTrigger_Click, + k_EXboxOrigin_RightTrigger_Pull, + k_EXboxOrigin_RightTrigger_Click, + k_EXboxOrigin_LeftStick_Move, + k_EXboxOrigin_LeftStick_Click, + k_EXboxOrigin_LeftStick_DPadNorth, + k_EXboxOrigin_LeftStick_DPadSouth, + k_EXboxOrigin_LeftStick_DPadWest, + k_EXboxOrigin_LeftStick_DPadEast, + k_EXboxOrigin_RightStick_Move, + k_EXboxOrigin_RightStick_Click, + k_EXboxOrigin_RightStick_DPadNorth, + k_EXboxOrigin_RightStick_DPadSouth, + k_EXboxOrigin_RightStick_DPadWest, + k_EXboxOrigin_RightStick_DPadEast, + k_EXboxOrigin_DPad_North, + k_EXboxOrigin_DPad_South, + k_EXboxOrigin_DPad_West, + k_EXboxOrigin_DPad_East, +}; + +enum ESteamInputType +{ + k_ESteamInputType_Unknown, + k_ESteamInputType_SteamController, + k_ESteamInputType_XBox360Controller, + k_ESteamInputType_XBoxOneController, + k_ESteamInputType_GenericGamepad, // DirectInput controllers + k_ESteamInputType_PS4Controller, + k_ESteamInputType_AppleMFiController, // Unused + k_ESteamInputType_AndroidController, // Unused + k_ESteamInputType_SwitchJoyConPair, // Unused + k_ESteamInputType_SwitchJoyConSingle, // Unused + k_ESteamInputType_SwitchProController, + k_ESteamInputType_MobileTouch, // Steam Link App On-screen Virtual Controller + k_ESteamInputType_PS3Controller, // Currently uses PS4 Origins + k_ESteamInputType_PS5Controller, // Added in SDK 151 + k_ESteamInputType_Count, + k_ESteamInputType_MaximumPossibleValue = 255, +}; +#endif + +enum ESteamControllerLEDFlag +{ + k_ESteamControllerLEDFlag_SetColor, + k_ESteamControllerLEDFlag_RestoreUserDefault }; // ControllerHandle_t is used to refer to a specific controller. @@ -123,6 +535,11 @@ typedef uint64 ControllerAnalogActionHandle_t; #pragma pack( push, 1 ) +#ifdef ISTEAMINPUT_H +#define ControllerAnalogActionData_t InputAnalogActionData_t +#define ControllerDigitalActionData_t InputDigitalActionData_t +#define ControllerMotionData_t InputMotionData_t +#else struct ControllerAnalogActionData_t { // Type of data coming from this action, this will match what got specified in the action set @@ -162,12 +579,12 @@ struct ControllerMotionData_t float rotVelY; float rotVelZ; }; - +#endif #pragma pack( pop ) //----------------------------------------------------------------------------- -// Purpose: Native Steam controller support API +// Purpose: Steam Input API //----------------------------------------------------------------------------- class ISteamController { @@ -179,19 +596,19 @@ public: // Synchronize API state with the latest Steam Controller inputs available. This // is performed automatically by SteamAPI_RunCallbacks, but for the absolute lowest - // possible latency, you call this directly before reading controller state. + // possible latency, you call this directly before reading controller state. This must + // be called from somewhere before GetConnectedControllers will return any handles virtual void RunFrame() = 0; // Enumerate currently connected controllers // handlesOut should point to a STEAM_CONTROLLER_MAX_COUNT sized array of ControllerHandle_t handles // Returns the number of handles written to handlesOut - virtual int GetConnectedControllers( ControllerHandle_t *handlesOut ) = 0; - - // Invokes the Steam overlay and brings up the binding screen - // Returns false is overlay is disabled / unavailable, or the user is not in Big Picture mode - virtual bool ShowBindingPanel( ControllerHandle_t controllerHandle ) = 0; + virtual int GetConnectedControllers( STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_COUNT, Receives list of connected controllers ) ControllerHandle_t *handlesOut ) = 0; + //----------------------------------------------------------------------------- // ACTION SETS + //----------------------------------------------------------------------------- + // Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls. virtual ControllerActionSetHandle_t GetActionSetHandle( const char *pszActionSetName ) = 0; @@ -200,8 +617,20 @@ public: // your state loops, instead of trying to place it in all of your state transitions. virtual void ActivateActionSet( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle ) = 0; virtual ControllerActionSetHandle_t GetCurrentActionSet( ControllerHandle_t controllerHandle ) = 0; - + + // ACTION SET LAYERS + virtual void ActivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle ) = 0; + // Enumerate currently active layers + // handlesOut should point to a STEAM_CONTROLLER_MAX_ACTIVE_LAYERS sized array of ControllerActionSetHandle_t handles. + // Returns the number of handles written to handlesOut + virtual int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ACTIVE_LAYERS, Receives list of active layers ) ControllerActionSetHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- // ACTIONS + //----------------------------------------------------------------------------- + // Lookup the handle for a digital action. Best to do this once on startup, and store the handles for all future API calls. virtual ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName ) = 0; @@ -209,8 +638,9 @@ public: virtual ControllerDigitalActionData_t GetDigitalActionData( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle ) = 0; // Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. - // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles - virtual int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin *originsOut ) = 0; + // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles. The EControllerActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ORIGINS, Receives list of aciton origins ) EControllerActionOrigin *originsOut ) = 0; // Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls. virtual ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName ) = 0; @@ -219,11 +649,25 @@ public: virtual ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle ) = 0; // Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. - // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles - virtual int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin *originsOut ) = 0; - - virtual void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction ) = 0; + // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles. The EControllerActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ORIGINS, Receives list of action origins ) EControllerActionOrigin *originsOut ) = 0; + // Get a local path to art for on-screen glyph for a particular origin - this call is cheap + virtual const char *GetGlyphForActionOrigin( EControllerActionOrigin eOrigin ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified origin - this call is serialized + virtual const char *GetStringForActionOrigin( EControllerActionOrigin eOrigin ) = 0; + + virtual void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction ) = 0; + + // Returns raw motion data from the specified controller + virtual ControllerMotionData_t GetMotionData( ControllerHandle_t controllerHandle ) = 0; + + //----------------------------------------------------------------------------- + // OUTPUTS + //----------------------------------------------------------------------------- + // Trigger a haptic pulse on a controller virtual void TriggerHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ) = 0; @@ -231,21 +675,52 @@ public: // nFlags is currently unused and reserved for future use. virtual void TriggerRepeatedHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ) = 0; - // Returns the associated gamepad index for the specified controller, if emulating a gamepad + // Trigger a vibration event on supported controllers. + virtual void TriggerVibration( ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ) = 0; + + // Set the controller LED color on supported controllers. + virtual void SetLEDColor( ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ) = 0; + + //----------------------------------------------------------------------------- + // Utility functions available without using the rest of Steam Input API + //----------------------------------------------------------------------------- + + // Invokes the Steam overlay and brings up the binding screen if the user is using Big Picture Mode + // If the user is not in Big Picture Mode it will open up the binding in a new window + virtual bool ShowBindingPanel( ControllerHandle_t controllerHandle ) = 0; + + // Returns the input type for a particular handle - unlike EControllerActionOrigin which update with Steam and may return unrecognized values + // ESteamInputType will remain static and only return valid values from your SDK version + virtual ESteamInputType GetInputTypeForHandle( ControllerHandle_t controllerHandle ) = 0; + + // Returns the associated controller handle for the specified emulated gamepad - can be used with the above 2 functions + // to identify controllers presented to your game over Xinput. Returns 0 if the Xinput index isn't associated with Steam Input + virtual ControllerHandle_t GetControllerForGamepadIndex( int nIndex ) = 0; + + // Returns the associated gamepad index for the specified controller, if emulating a gamepad or -1 if not associated with an Xinput index virtual int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle ) = 0; - // Returns the associated controller handle for the specified emulated gamepad - virtual ControllerHandle_t GetControllerForGamepadIndex( int nIndex ) = 0; - - // Returns raw motion data from the specified controller - virtual ControllerMotionData_t GetMotionData( ControllerHandle_t controllerHandle ) = 0; - - // Attempt to display origins of given action in the controller HUD, for the currently active action set - // Returns false is overlay is disabled / unavailable, or the user is not in Big Picture mode - virtual bool ShowDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition ) = 0; - virtual bool ShowAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle, float flScale, float flXPosition, float flYPosition ) = 0; + // Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. + virtual const char *GetStringForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get a local path to art for on-screen glyph for a particular Xbox controller origin. + virtual const char *GetGlyphForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get the equivalent ActionOrigin for a given Xbox controller origin this can be chained with GetGlyphForActionOrigin to provide future proof glyphs for + // non-Steam Input API action games. Note - this only translates the buttons directly and doesn't take into account any remapping a user has made in their configuration + virtual EControllerActionOrigin GetActionOriginFromXboxOrigin( ControllerHandle_t controllerHandle, EXboxOrigin eOrigin ) = 0; + + // Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EControllerActionOrigin_None + virtual EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin ) = 0; + + // Get the binding revision for a given device. Returns false if the handle was not valid or if a mapping is not yet loaded for the device + virtual bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor ) = 0; }; -#define STEAMCONTROLLER_INTERFACE_VERSION "SteamController004" +#define STEAMCONTROLLER_INTERFACE_VERSION "SteamController008" + +// Global interface accessor +inline ISteamController *SteamController(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamController *, SteamController, STEAMCONTROLLER_INTERFACE_VERSION ); #endif // ISTEAMCONTROLLER_H diff --git a/lib/windows/include/steam/isteamdualsense.h b/lib/windows/include/steam/isteamdualsense.h new file mode 100644 index 0000000..5acc857 --- /dev/null +++ b/lib/windows/include/steam/isteamdualsense.h @@ -0,0 +1,169 @@ +/* SIE CONFIDENTIAL + * $PSLibId$ + * Copyright (C) 2019 Sony Interactive Entertainment Inc. + * All Rights Reserved. + */ + + +#ifndef _SCE_PAD_TRIGGER_EFFECT_H +#define _SCE_PAD_TRIGGER_EFFECT_H + + +#define SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_L2 0x01 +#define SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_R2 0x02 + +#define SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_L2 0 +#define SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_R2 1 + +#define SCE_PAD_TRIGGER_EFFECT_TRIGGER_NUM 2 + +/* Definition of control point num */ +#define SCE_PAD_TRIGGER_EFFECT_CONTROL_POINT_NUM 10 + +typedef enum ScePadTriggerEffectMode{ + SCE_PAD_TRIGGER_EFFECT_MODE_OFF, + SCE_PAD_TRIGGER_EFFECT_MODE_FEEDBACK, + SCE_PAD_TRIGGER_EFFECT_MODE_WEAPON, + SCE_PAD_TRIGGER_EFFECT_MODE_VIBRATION, + SCE_PAD_TRIGGER_EFFECT_MODE_MULTIPLE_POSITION_FEEDBACK, + SCE_PAD_TRIGGER_EFFECT_MODE_SLOPE_FEEDBACK, + SCE_PAD_TRIGGER_EFFECT_MODE_MULTIPLE_POSITION_VIBRATION, +} ScePadTriggerEffectMode; + +/** + *E + * @brief parameter for setting the trigger effect to off mode. + * Off Mode: Stop trigger effect. + **/ +typedef struct ScePadTriggerEffectOffParam{ + uint8_t padding[48]; +} ScePadTriggerEffectOffParam; + +/** + *E + * @brief parameter for setting the trigger effect to Feedback mode. + * Feedback Mode: The motor arm pushes back trigger. + * Trigger obtains stiffness at specified position. + **/ +typedef struct ScePadTriggerEffectFeedbackParam{ + uint8_t position; /*E position where the strength of target trigger start changing(0~9). */ + uint8_t strength; /*E strength that the motor arm pushes back target trigger(0~8 (0: Same as Off mode)). */ + uint8_t padding[46]; +} ScePadTriggerEffectFeedbackParam; + +/** + *E + * @brief parameter for setting the trigger effect to Weapon mode. + * Weapon Mode: Emulate weapon like gun trigger. + **/ +typedef struct ScePadTriggerEffectWeaponParam{ + uint8_t startPosition; /*E position where the stiffness of trigger start changing(2~7). */ + uint8_t endPosition; /*E position where the stiffness of trigger finish changing(startPosition+1~8). */ + uint8_t strength; /*E strength of gun trigger(0~8 (0: Same as Off mode)). */ + uint8_t padding[45]; +} ScePadTriggerEffectWeaponParam; + +/** + *E + * @brief parameter for setting the trigger effect to Vibration mode. + * Vibration Mode: Vibrates motor arm around specified position. + **/ +typedef struct ScePadTriggerEffectVibrationParam{ + uint8_t position; /*E position where the motor arm start vibrating(0~9). */ + uint8_t amplitude; /*E vibration amplitude(0~8 (0: Same as Off mode)). */ + uint8_t frequency; /*E vibration frequency(0~255[Hz] (0: Same as Off mode)). */ + uint8_t padding[45]; +} ScePadTriggerEffectVibrationParam; + +/** + *E + * @brief parameter for setting the trigger effect to ScePadTriggerEffectMultiplePositionFeedbackParam mode. + * Multi Position Feedback Mode: The motor arm pushes back trigger. + * Trigger obtains specified stiffness at each control point. + **/ +typedef struct ScePadTriggerEffectMultiplePositionFeedbackParam{ + uint8_t strength[SCE_PAD_TRIGGER_EFFECT_CONTROL_POINT_NUM]; /*E strength that the motor arm pushes back target trigger at position(0~8 (0: Same as Off mode)). + * strength[0] means strength of motor arm at position0. + * strength[1] means strength of motor arm at position1. + * ... + * */ + uint8_t padding[38]; +} ScePadTriggerEffectMultiplePositionFeedbackParam; + +/** + *E + * @brief parameter for setting the trigger effect to Feedback3 mode. + * Slope Feedback Mode: The motor arm pushes back trigger between two spedified control points. + * Stiffness of the trigger is changing depending on the set place. + **/ +typedef struct ScePadTriggerEffectSlopeFeedbackParam{ + + uint8_t startPosition; /*E position where the strength of target trigger start changing(0~endPosition). */ + uint8_t endPosition; /*E position where the strength of target trigger finish changing(startPosition+1~9). */ + uint8_t startStrength; /*E strength when trigger's position is startPosition(1~8) */ + uint8_t endStrength; /*E strength when trigger's position is endPosition(1~8) */ + uint8_t padding[44]; +} ScePadTriggerEffectSlopeFeedbackParam; + +/** + *E + * @brief parameter for setting the trigger effect to Vibration2 mode. + * Multi Position Vibration Mode: Vibrates motor arm around specified control point. + * Trigger vibrates specified amplitude at each control point. + **/ +typedef struct ScePadTriggerEffectMultiplePositionVibrationParam{ + uint8_t frequency; /*E vibration frequency(0~255 (0: Same as Off mode)) */ + uint8_t amplitude[SCE_PAD_TRIGGER_EFFECT_CONTROL_POINT_NUM]; /*E vibration amplitude at position(0~8 (0: Same as Off mode)). + * amplitude[0] means amplitude of vibration at position0. + * amplitude[1] means amplitude of vibration at position1. + * ... + * */ + uint8_t padding[37]; +} ScePadTriggerEffectMultiplePositionVibrationParam; + +/** + *E + * @brief parameter for setting the trigger effect mode. + **/ +typedef union ScePadTriggerEffectCommandData{ + ScePadTriggerEffectOffParam offParam; + ScePadTriggerEffectFeedbackParam feedbackParam; + ScePadTriggerEffectWeaponParam weaponParam; + ScePadTriggerEffectVibrationParam vibrationParam; + ScePadTriggerEffectMultiplePositionFeedbackParam multiplePositionFeedbackParam; + ScePadTriggerEffectSlopeFeedbackParam slopeFeedbackParam; + ScePadTriggerEffectMultiplePositionVibrationParam multiplePositionVibrationParam; +} ScePadTriggerEffectCommandData; + +/** + *E + * @brief parameter for setting the trigger effect. + **/ +typedef struct ScePadTriggerEffectCommand{ + ScePadTriggerEffectMode mode; + uint8_t padding[4]; + ScePadTriggerEffectCommandData commandData; +} ScePadTriggerEffectCommand; + +/** + *E + * @brief parameter for the scePadSetTriggerEffect function. + **/ +typedef struct ScePadTriggerEffectParam{ + + uint8_t triggerMask; /*E Set trigger mask to activate trigger effect commands. + * SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_L2 : 0x01 + * SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_R2 : 0x02 + * */ + uint8_t padding[7]; + + ScePadTriggerEffectCommand command[SCE_PAD_TRIGGER_EFFECT_TRIGGER_NUM]; /*E command[SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_L2] is for L2 trigger setting + * and param[SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_R2] is for R2 trgger setting. + * */ +} ScePadTriggerEffectParam; + +#if defined(__cplusplus) && __cplusplus >= 201103L +static_assert( sizeof( ScePadTriggerEffectParam ) == 120, "ScePadTriggerEffectParam has incorrect size" ); +#endif + +#endif /* _SCE_PAD_TRIGGER_EFFECT_H */ diff --git a/lib/windows/include/steam/isteamfriends.h b/lib/windows/include/steam/isteamfriends.h index 8013356..26351ee 100644 --- a/lib/windows/include/steam/isteamfriends.h +++ b/lib/windows/include/steam/isteamfriends.h @@ -1,4 +1,4 @@ -//====== Copyright (C) 1996-2008, Valve Corporation, All rights reserved. ===== +//====== Copyright Valve Corporation, All rights reserved. ==================== // // Purpose: interface to both friends list data and general information about users // @@ -10,9 +10,7 @@ #pragma once #endif -#include "isteamclient.h" -#include "steamclientpublic.h" - +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: set of relationships to other users @@ -59,6 +57,7 @@ enum EPersonaState k_EPersonaStateSnooze = 4, // auto-away for a long time k_EPersonaStateLookingToTrade = 5, // Online, trading k_EPersonaStateLookingToPlay = 6, // Online, wanting to play + k_EPersonaStateInvisible = 7, // Online, but appears offline to friends. This status is never published to clients. k_EPersonaStateMax, }; @@ -80,7 +79,7 @@ enum EFriendFlags k_EFriendFlagRequestingInfo = 0x100, k_EFriendFlagIgnored = 0x200, k_EFriendFlagIgnoredFriend = 0x400, - k_EFriendFlagSuggested = 0x800, + // k_EFriendFlagSuggested = 0x800, // not used k_EFriendFlagChatMember = 0x1000, k_EFriendFlagAll = 0xFFFF, }; @@ -92,7 +91,7 @@ enum EFriendFlags #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct FriendGameInfo_t { @@ -104,6 +103,10 @@ struct FriendGameInfo_t }; #pragma pack( pop ) +// special values for FriendGameInfo_t::m_usQueryPort +const uint16 k_usFriendGameInfoQueryPort_NotInitialized = 0xFFFF; // We haven't asked the GS for this query port's actual value yet. Was #define QUERY_PORT_NOT_INITIALIZED in older versions of Steamworks SDK. +const uint16 k_usFriendGameInfoQueryPort_Error = 0xFFFE; // We were unable to get the query port for this server. Was #define QUERY_PORT_ERROR in older versions of Steamworks SDK. + // maximum number of characters in a user's name. Two flavors; one for UTF-8 and one for UTF-16. // The UTF-8 version has to be very generous to accomodate characters that get large when encoded // in UTF-8. @@ -128,22 +131,11 @@ enum EUserRestriction k_nUserRestrictionTrading = 64, // user cannot participate in trading (console, mobile) }; -//----------------------------------------------------------------------------- -// Purpose: information about user sessions -//----------------------------------------------------------------------------- -struct FriendSessionStateInfo_t -{ - uint32 m_uiOnlineSessionInstances; - uint8 m_uiPublishedToFriendsSessionInstance; -}; - - - // size limit on chat room or member metadata const uint32 k_cubChatMetadataMax = 8192; // size limits on Rich Presence data -enum { k_cchMaxRichPresenceKeys = 20 }; +enum { k_cchMaxRichPresenceKeys = 30 }; enum { k_cchMaxRichPresenceKeyLength = 64 }; enum { k_cchMaxRichPresenceValueLength = 256 }; @@ -155,6 +147,47 @@ enum EOverlayToStoreFlag k_EOverlayToStoreFlag_AddToCartAndShow = 2, }; + +//----------------------------------------------------------------------------- +// Purpose: Tells Steam where to place the browser window inside the overlay +//----------------------------------------------------------------------------- +enum EActivateGameOverlayToWebPageMode +{ + k_EActivateGameOverlayToWebPageMode_Default = 0, // Browser will open next to all other windows that the user has open in the overlay. + // The window will remain open, even if the user closes then re-opens the overlay. + + k_EActivateGameOverlayToWebPageMode_Modal = 1 // Browser will be opened in a special overlay configuration which hides all other windows + // that the user has open in the overlay. When the user closes the overlay, the browser window + // will also close. When the user closes the browser window, the overlay will automatically close. +}; + +//----------------------------------------------------------------------------- +// Purpose: See GetProfileItemPropertyString and GetProfileItemPropertyUint +//----------------------------------------------------------------------------- +enum ECommunityProfileItemType +{ + k_ECommunityProfileItemType_AnimatedAvatar = 0, + k_ECommunityProfileItemType_AvatarFrame = 1, + k_ECommunityProfileItemType_ProfileModifier = 2, + k_ECommunityProfileItemType_ProfileBackground = 3, + k_ECommunityProfileItemType_MiniProfileBackground = 4, +}; +enum ECommunityProfileItemProperty +{ + k_ECommunityProfileItemProperty_ImageSmall = 0, // string + k_ECommunityProfileItemProperty_ImageLarge = 1, // string + k_ECommunityProfileItemProperty_InternalName = 2, // string + k_ECommunityProfileItemProperty_Title = 3, // string + k_ECommunityProfileItemProperty_Description = 4, // string + k_ECommunityProfileItemProperty_AppID = 5, // uint32 + k_ECommunityProfileItemProperty_TypeID = 6, // uint32 + k_ECommunityProfileItemProperty_Class = 7, // uint32 + k_ECommunityProfileItemProperty_MovieWebM = 8, // string + k_ECommunityProfileItemProperty_MovieMP4 = 9, // string + k_ECommunityProfileItemProperty_MovieWebMSmall = 10, // string + k_ECommunityProfileItemProperty_MovieMP4Small = 11, // string +}; + //----------------------------------------------------------------------------- // Purpose: interface to accessing information about individual users, // that can be a friend, in a group, on a game server or in a lobby with the local user @@ -176,7 +209,7 @@ public: // // If the name change fails to happen on the server, then an additional global PersonaStateChange_t will be posted // to change the name back, in addition to the SetPersonaNameResponse_t callback. - CALL_RESULT( SetPersonaNameResponse_t ) + STEAM_CALL_RESULT( SetPersonaNameResponse_t ) virtual SteamAPICall_t SetPersonaName( const char *pchPersonaName ) = 0; // gets the status of the current user @@ -207,13 +240,14 @@ public: virtual const char *GetFriendPersonaName( CSteamID steamIDFriend ) = 0; // returns true if the friend is actually in a game, and fills in pFriendGameInfo with an extra details - virtual bool GetFriendGamePlayed( CSteamID steamIDFriend, OUT_STRUCT() FriendGameInfo_t *pFriendGameInfo ) = 0; + virtual bool GetFriendGamePlayed( CSteamID steamIDFriend, STEAM_OUT_STRUCT() FriendGameInfo_t *pFriendGameInfo ) = 0; // accesses old friends names - returns an empty string when their are no more items in the history virtual const char *GetFriendPersonaNameHistory( CSteamID steamIDFriend, int iPersonaName ) = 0; // friends steam level virtual int GetFriendSteamLevel( CSteamID steamIDFriend ) = 0; // Returns nickname the current user has set for the specified player. Returns NULL if the no nickname has been set for that player. + // DEPRECATED: GetPersonaName follows the Steam nickname preferences, so apps shouldn't need to care about nicknames explicitly. virtual const char *GetPlayerNickname( CSteamID steamIDPlayer ) = 0; // friend grouping (tag) apis @@ -226,7 +260,7 @@ public: // returns the number of members in a given friends group virtual int GetFriendsGroupMembersCount( FriendsGroupID_t friendsGroupID ) = 0; // gets up to nMembersCount members of the given friends group, if fewer exist than requested those positions' SteamIDs will be invalid - virtual void GetFriendsGroupMembersList( FriendsGroupID_t friendsGroupID, OUT_ARRAY_CALL(nMembersCount, GetFriendsGroupMembersCount, friendsGroupID ) CSteamID *pOutSteamIDMembers, int nMembersCount ) = 0; + virtual void GetFriendsGroupMembersList( FriendsGroupID_t friendsGroupID, STEAM_OUT_ARRAY_CALL(nMembersCount, GetFriendsGroupMembersCount, friendsGroupID ) CSteamID *pOutSteamIDMembers, int nMembersCount ) = 0; // returns true if the specified user meets any of the criteria specified in iFriendFlags // iFriendFlags can be the union (binary or, |) of one or more k_EFriendFlags values @@ -239,8 +273,10 @@ public: virtual const char *GetClanTag( CSteamID steamIDClan ) = 0; // returns the most recent information we have about what's happening in a clan virtual bool GetClanActivityCounts( CSteamID steamIDClan, int *pnOnline, int *pnInGame, int *pnChatting ) = 0; + // for clans a user is a member of, they will have reasonably up-to-date information, but for others you'll have to download the info to have the latest - virtual SteamAPICall_t DownloadClanActivityCounts( ARRAY_COUNT(cClansToRequest) CSteamID *psteamIDClans, int cClansToRequest ) = 0; + STEAM_CALL_RESULT( DownloadClanActivityCountsResult_t ) + virtual SteamAPICall_t DownloadClanActivityCounts( STEAM_ARRAY_COUNT(cClansToRequest) CSteamID *psteamIDClans, int cClansToRequest ) = 0; // iterators for getting users in a chat room, lobby, game server or clan // note that large clans that cannot be iterated by the local user @@ -256,7 +292,8 @@ public: virtual void SetInGameVoiceSpeaking( CSteamID steamIDUser, bool bSpeaking ) = 0; // activates the game overlay, with an optional dialog to open - // valid options are "Friends", "Community", "Players", "Settings", "OfficialGameGroup", "Stats", "Achievements" + // valid options include "Friends", "Community", "Players", "Settings", "OfficialGameGroup", "Stats", "Achievements", + // "chatroomgroup/nnnn" virtual void ActivateGameOverlay( const char *pchDialog ) = 0; // activates game overlay to a specific place @@ -274,7 +311,7 @@ public: // activates game overlay web browser directly to the specified URL // full address with protocol type is required, e.g. http://www.steamgames.com/ - virtual void ActivateGameOverlayToWebPage( const char *pchURL ) = 0; + virtual void ActivateGameOverlayToWebPage( const char *pchURL, EActivateGameOverlayToWebPageMode eMode = k_EActivateGameOverlayToWebPageMode_Default ) = 0; // activates game overlay to store page for app virtual void ActivateGameOverlayToStore( AppId_t nAppID, EOverlayToStoreFlag eFlag ) = 0; @@ -309,7 +346,7 @@ public: // you can only ask about clans that a user is a member of // note that this won't download avatars automatically; if you get an officer, // and no avatar image is available, call RequestUserInformation( steamID, false ) to download the avatar - CALL_RESULT( ClanOfficerListResponse_t ) + STEAM_CALL_RESULT( ClanOfficerListResponse_t ) virtual SteamAPICall_t RequestClanOfficerList( CSteamID steamIDClan ) = 0; // iteration of clan officers - can only be done when a RequestClanOfficerList() call has completed @@ -328,9 +365,15 @@ public: // Rich Presence data is automatically shared between friends who are in the same game // Each user has a set of Key/Value pairs // Note the following limits: k_cchMaxRichPresenceKeys, k_cchMaxRichPresenceKeyLength, k_cchMaxRichPresenceValueLength - // There are two magic keys: + // There are five magic keys: // "status" - a UTF-8 string that will show up in the 'view game info' dialog in the Steam friends list // "connect" - a UTF-8 string that contains the command-line for how a friend can connect to a game + // "steam_display" - Names a rich presence localization token that will be displayed in the viewing user's selected language + // in the Steam client UI. For more info: https://partner.steamgames.com/doc/api/ISteamFriends#richpresencelocalization + // "steam_player_group" - When set, indicates to the Steam client that the player is a member of a particular group. Players in the same group + // may be organized together in various places in the Steam UI. + // "steam_player_group_size" - When set, indicates the total number of players in the steam_player_group. The Steam client may use this number to + // display additional information about a group when all of the members are not part of a user's friends list. // GetFriendRichPresence() returns an empty string "" if no value is set // SetRichPresence() to a NULL or an empty string deletes the key // You can iterate the current set of keys for a friend with GetFriendRichPresenceKeyCount() @@ -343,10 +386,9 @@ public: // Requests rich presence for a specific user. virtual void RequestFriendRichPresence( CSteamID steamIDFriend ) = 0; - // rich invite support - // if the target accepts the invite, the pchConnectString gets added to the command-line for launching the game - // if the game is already running, a GameRichPresenceJoinRequested_t callback is posted containing the connect string - // invites can only be sent to friends + // Rich invite support. + // If the target accepts the invite, a GameRichPresenceJoinRequested_t callback is posted containing the connect string. + // (Or you can configure your game so that it is passed on the command line instead. This is a deprecated path; ask us if you really need this.) virtual bool InviteUserToGame( CSteamID steamIDFriend, const char *pchConnectString ) = 0; // recently-played-with friends iteration @@ -361,13 +403,13 @@ public: // this allows in-game access to group (clan) chats from in the game // the behavior is somewhat sophisticated, because the user may or may not be already in the group chat from outside the game or in the overlay // use ActivateGameOverlayToUser( "chat", steamIDClan ) to open the in-game overlay version of the chat - CALL_RESULT( JoinClanChatRoomCompletionResult_t ) + STEAM_CALL_RESULT( JoinClanChatRoomCompletionResult_t ) virtual SteamAPICall_t JoinClanChatRoom( CSteamID steamIDClan ) = 0; virtual bool LeaveClanChatRoom( CSteamID steamIDClan ) = 0; virtual int GetClanChatMemberCount( CSteamID steamIDClan ) = 0; virtual CSteamID GetChatMemberByIndex( CSteamID steamIDClan, int iUser ) = 0; virtual bool SendClanChatMessage( CSteamID steamIDClanChat, const char *pchText ) = 0; - virtual int GetClanChatMessage( CSteamID steamIDClanChat, int iMessage, void *prgchText, int cchTextMax, EChatEntryType *peChatEntryType, OUT_STRUCT() CSteamID *psteamidChatter ) = 0; + virtual int GetClanChatMessage( CSteamID steamIDClanChat, int iMessage, void *prgchText, int cchTextMax, EChatEntryType *peChatEntryType, STEAM_OUT_STRUCT() CSteamID *psteamidChatter ) = 0; virtual bool IsClanChatAdmin( CSteamID steamIDClanChat, CSteamID steamIDUser ) = 0; // interact with the Steam (game overlay / desktop) @@ -382,15 +424,49 @@ public: virtual int GetFriendMessage( CSteamID steamIDFriend, int iMessageID, void *pvData, int cubData, EChatEntryType *peChatEntryType ) = 0; // following apis - CALL_RESULT( FriendsGetFollowerCount_t ) + STEAM_CALL_RESULT( FriendsGetFollowerCount_t ) virtual SteamAPICall_t GetFollowerCount( CSteamID steamID ) = 0; - CALL_RESULT( FriendsIsFollowing_t ) + STEAM_CALL_RESULT( FriendsIsFollowing_t ) virtual SteamAPICall_t IsFollowing( CSteamID steamID ) = 0; - CALL_RESULT( FriendsEnumerateFollowingList_t ) + STEAM_CALL_RESULT( FriendsEnumerateFollowingList_t ) virtual SteamAPICall_t EnumerateFollowingList( uint32 unStartIndex ) = 0; + + virtual bool IsClanPublic( CSteamID steamIDClan ) = 0; + virtual bool IsClanOfficialGameGroup( CSteamID steamIDClan ) = 0; + + /// Return the number of chats (friends or chat rooms) with unread messages. + /// A "priority" message is one that would generate some sort of toast or + /// notification, and depends on user settings. + /// + /// You can register for UnreadChatMessagesChanged_t callbacks to know when this + /// has potentially changed. + virtual int GetNumChatsWithUnreadPriorityMessages() = 0; + + // activates game overlay to open the remote play together invite dialog. Invitations will be sent for remote play together + virtual void ActivateGameOverlayRemotePlayTogetherInviteDialog( CSteamID steamIDLobby ) = 0; + + // Call this before calling ActivateGameOverlayToWebPage() to have the Steam Overlay Browser block navigations + // to your specified protocol (scheme) uris and instead dispatch a OverlayBrowserProtocolNavigation_t callback to your game. + // ActivateGameOverlayToWebPage() must have been called with k_EActivateGameOverlayToWebPageMode_Modal + virtual bool RegisterProtocolInOverlayBrowser( const char *pchProtocol ) = 0; + + // Activates the game overlay to open an invite dialog that will send the provided Rich Presence connect string to selected friends + virtual void ActivateGameOverlayInviteDialogConnectString( const char *pchConnectString ) = 0; + + // Steam Community items equipped by a user on their profile + // You can register for EquippedProfileItemsChanged_t to know when a friend has changed their equipped profile items + STEAM_CALL_RESULT( EquippedProfileItems_t ) + virtual SteamAPICall_t RequestEquippedProfileItems( CSteamID steamID ) = 0; + virtual bool BHasEquippedProfileItem( CSteamID steamID, ECommunityProfileItemType itemType ) = 0; + virtual const char *GetProfileItemPropertyString( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ) = 0; + virtual uint32 GetProfileItemPropertyUint( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ) = 0; }; -#define STEAMFRIENDS_INTERFACE_VERSION "SteamFriends015" +#define STEAMFRIENDS_INTERFACE_VERSION "SteamFriends017" + +// Global interface accessor +inline ISteamFriends *SteamFriends(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamFriends *, SteamFriends, STEAMFRIENDS_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -398,7 +474,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- @@ -428,9 +504,10 @@ enum EPersonaChange k_EPersonaChangeLeftSource = 0x0100, k_EPersonaChangeRelationshipChanged = 0x0200, k_EPersonaChangeNameFirstSet = 0x0400, - k_EPersonaChangeFacebookInfo = 0x0800, + k_EPersonaChangeBroadcast = 0x0800, k_EPersonaChangeNickname = 0x1000, k_EPersonaChangeSteamLevel = 0x2000, + k_EPersonaChangeRichPresence = 0x4000, }; @@ -441,7 +518,10 @@ enum EPersonaChange struct GameOverlayActivated_t { enum { k_iCallback = k_iSteamFriendsCallbacks + 31 }; - uint8 m_bActive; // true if it's just been activated, false otherwise + uint8 m_bActive; // true if it's just been activated, false otherwise + bool m_bUserInitiated; // true if the user asked for the overlay to be activated/deactivated + AppId_t m_nAppID; // the appID of the game (should always be the current game) + uint32 m_dwOverlayPID; // used internally }; @@ -630,6 +710,47 @@ struct SetPersonaNameResponse_t EResult m_result; // detailed result code }; +//----------------------------------------------------------------------------- +// Purpose: Invoked when the status of unread messages changes +//----------------------------------------------------------------------------- +struct UnreadChatMessagesChanged_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 48 }; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Dispatched when an overlay browser instance is navigated to a protocol/scheme registered by RegisterProtocolInOverlayBrowser() +//----------------------------------------------------------------------------- +struct OverlayBrowserProtocolNavigation_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 49 }; + char rgchURI[ 1024 ]; +}; + +//----------------------------------------------------------------------------- +// Purpose: A user's equipped profile items have changed +//----------------------------------------------------------------------------- +struct EquippedProfileItemsChanged_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 50 }; + CSteamID m_steamID; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +struct EquippedProfileItems_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 51 }; + EResult m_eResult; + CSteamID m_steamID; + bool m_bHasAnimatedAvatar; + bool m_bHasAvatarFrame; + bool m_bHasProfileModifier; + bool m_bHasProfileBackground; + bool m_bHasMiniProfileBackground; +}; #pragma pack( pop ) diff --git a/lib/windows/include/steam/isteamgamecoordinator.h b/lib/windows/include/steam/isteamgamecoordinator.h index 5ab0637..89b740d 100644 --- a/lib/windows/include/steam/isteamgamecoordinator.h +++ b/lib/windows/include/steam/isteamgamecoordinator.h @@ -10,8 +10,7 @@ #pragma once #endif -#include "steamtypes.h" -#include "steamclientpublic.h" +#include "steam_api_common.h" // list of possible return values from the ISteamGameCoordinator API @@ -54,7 +53,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif // callback notification - A new message is available for reading from the message queue diff --git a/lib/windows/include/steam/isteamgameserver.h b/lib/windows/include/steam/isteamgameserver.h index e19f1dd..ba4d125 100644 --- a/lib/windows/include/steam/isteamgameserver.h +++ b/lib/windows/include/steam/isteamgameserver.h @@ -10,9 +10,7 @@ #pragma once #endif -#include "isteamclient.h" - -#define MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE ((uint16)-1) +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: Functions for authenticating users via Steam to play on a game server @@ -27,7 +25,7 @@ public: // /// This is called by SteamGameServer_Init, and you will usually not need to call it directly - virtual bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString ) = 0; + STEAM_PRIVATE_API( virtual bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString ) = 0; ) /// Game product identifier. This is currently used by the master server for version checking purposes. /// It's a required field, but will eventually will go away, and the AppID will be used for this purpose. @@ -93,14 +91,23 @@ public: /// Set name of map to report in the server browser /// - /// @see k_cbMaxGameServerName + /// @see k_cbMaxGameServerMapName virtual void SetMapName( const char *pszMapName ) = 0; /// Let people know if your server will require a password virtual void SetPasswordProtected( bool bPasswordProtected ) = 0; - /// Spectator server. The default value is zero, meaning the service - /// is not used. + /// Spectator server port to advertise. The default value is zero, meaning the + /// service is not used. If your server receives any info requests on the LAN, + /// this is the value that will be placed into the reply for such local queries. + /// + /// This is also the value that will be advertised by the master server. + /// The only exception is if your server is using a FakeIP. Then then the second + /// fake port number (index 1) assigned to your server will be listed on the master + /// server as the spectator port, if you set this value to any nonzero value. + /// + /// This function merely controls the values that are advertised -- it's up to you to + /// configure the server to actually listen on this port and handle any spectator traffic virtual void SetSpectatorPort( uint16 unSpectatorPort ) = 0; /// Name of the spectator server. (Only used if spectator port is nonzero.) @@ -122,8 +129,6 @@ public: /// Sets a string defining the "gamedata" for this server, this is optional, but if it is set /// it allows users to filter in the matchmaking/server-browser interfaces based on the value - /// don't set this unless it actually changes, its only uploaded to the master once (when - /// acknowledged) /// /// @see k_cbMaxGameServerGameData virtual void SetGameData( const char *pchGameData ) = 0; @@ -131,45 +136,25 @@ public: /// Region identifier. This is an optional field, the default value is empty, meaning the "world" region virtual void SetRegion( const char *pszRegion ) = 0; + /// Indicate whether you wish to be listed on the master server list + /// and/or respond to server browser / LAN discovery packets. + /// The server starts with this value set to false. You should set all + /// relevant server parameters before enabling advertisement on the server. + /// + /// (This function used to be named EnableHeartbeats, so if you are wondering + /// where that function went, it's right here. It does the same thing as before, + /// the old name was just confusing.) + virtual void SetAdvertiseServerActive( bool bActive ) = 0; + // -// Player list management / authentication +// Player list management / authentication. // - // Handles receiving a new connection from a Steam user. This call will ask the Steam - // servers to validate the users identity, app ownership, and VAC status. If the Steam servers - // are off-line, then it will validate the cached ticket itself which will validate app ownership - // and identity. The AuthBlob here should be acquired on the game client using SteamUser()->InitiateGameConnection() - // and must then be sent up to the game server for authentication. - // - // Return Value: returns true if the users ticket passes basic checks. pSteamIDUser will contain the Steam ID of this user. pSteamIDUser must NOT be NULL - // If the call succeeds then you should expect a GSClientApprove_t or GSClientDeny_t callback which will tell you whether authentication - // for the user has succeeded or failed (the steamid in the callback will match the one returned by this call) - virtual bool SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser ) = 0; - - // Creates a fake user (ie, a bot) which will be listed as playing on the server, but skips validation. - // - // Return Value: Returns a SteamID for the user to be tracked with, you should call HandleUserDisconnect() - // when this user leaves the server just like you would for a real user. - virtual CSteamID CreateUnauthenticatedUserConnection() = 0; - - // Should be called whenever a user leaves our game server, this lets Steam internally - // track which users are currently on which servers for the purposes of preventing a single - // account being logged into multiple servers, showing who is currently on a server, etc. - virtual void SendUserDisconnect( CSteamID steamIDUser ) = 0; - - // Update the data to be displayed in the server browser and matchmaking interfaces for a user - // currently connected to the server. For regular users you must call this after you receive a - // GSUserValidationSuccess callback. - // - // Return Value: true if successful, false if failure (ie, steamIDUser wasn't for an active player) - virtual bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore ) = 0; - - // New auth system APIs - do not mix with the old auth system APIs. - // ---------------------------------------------------------------- - // Retrieve ticket to be sent to the entity who wishes to authenticate you ( using BeginAuthSession API ). // pcbTicket retrieves the length of the actual ticket. - virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket ) = 0; + // SteamNetworkingIdentity is an optional parameter to hold the public IP address of the entity you are connecting to + // if an IP address is passed Steam will only allow the ticket to be used by an entity with that IP address + virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket, const SteamNetworkingIdentity *pSnid ) = 0; // Authenticate ticket ( from GetAuthSessionTicket ) from entity steamID to be sure it is valid and isnt reused // Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse ) @@ -193,21 +178,18 @@ public: // these two functions s are deprecated, and will not return results // they will be removed in a future version of the SDK virtual void GetGameplayStats( ) = 0; - CALL_RESULT( GSReputation_t ) + STEAM_CALL_RESULT( GSReputation_t ) virtual SteamAPICall_t GetServerReputation() = 0; // Returns the public IP of the server according to Steam, useful when the server is // behind NAT and you want to advertise its IP in a lobby for other clients to directly // connect to - virtual uint32 GetPublicIP() = 0; + virtual SteamIPAddress_t GetPublicIP() = 0; + +// Server browser related query packet processing for shared socket mode. These are used +// when you pass STEAMGAMESERVER_QUERY_PORT_SHARED as the query port to SteamGameServer_Init. +// IP address and port are in host order, i.e 127.0.0.1 == 0x7f000001 -// These are in GameSocketShare mode, where instead of ISteamGameServer creating its own -// socket to talk to the master server on, it lets the game use its socket to forward messages -// back and forth. This prevents us from requiring server ops to open up yet another port -// in their firewalls. -// -// the IP address and port should be in host order, i.e 127.0.0.1 == 0x7f000001 - // These are used when you've elected to multiplex the game server's UDP socket // rather than having the master server updater use its own sockets. // @@ -225,45 +207,70 @@ public: virtual int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort ) = 0; // -// Control heartbeats / advertisement with master server +// Server clan association // - // Call this as often as you like to tell the master server updater whether or not - // you want it to be active (default: off). - virtual void EnableHeartbeats( bool bActive ) = 0; - - // You usually don't need to modify this. - // Pass -1 to use the default value for iHeartbeatInterval. - // Some mods change this. - virtual void SetHeartbeatInterval( int iHeartbeatInterval ) = 0; - - // Force a heartbeat to steam at the next opportunity - virtual void ForceHeartbeat() = 0; - // associate this game server with this clan for the purposes of computing player compat - CALL_RESULT( AssociateWithClanResult_t ) + STEAM_CALL_RESULT( AssociateWithClanResult_t ) virtual SteamAPICall_t AssociateWithClan( CSteamID steamIDClan ) = 0; // ask if any of the current players dont want to play with this new player - or vice versa - CALL_RESULT( ComputeNewPlayerCompatibilityResult_t ) + STEAM_CALL_RESULT( ComputeNewPlayerCompatibilityResult_t ) virtual SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer ) = 0; + + + + // Handles receiving a new connection from a Steam user. This call will ask the Steam + // servers to validate the users identity, app ownership, and VAC status. If the Steam servers + // are off-line, then it will validate the cached ticket itself which will validate app ownership + // and identity. The AuthBlob here should be acquired on the game client using SteamUser()->InitiateGameConnection() + // and must then be sent up to the game server for authentication. + // + // Return Value: returns true if the users ticket passes basic checks. pSteamIDUser will contain the Steam ID of this user. pSteamIDUser must NOT be NULL + // If the call succeeds then you should expect a GSClientApprove_t or GSClientDeny_t callback which will tell you whether authentication + // for the user has succeeded or failed (the steamid in the callback will match the one returned by this call) + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual bool SendUserConnectAndAuthenticate_DEPRECATED( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser ) = 0; + + // Creates a fake user (ie, a bot) which will be listed as playing on the server, but skips validation. + // + // Return Value: Returns a SteamID for the user to be tracked with, you should call EndAuthSession() + // when this user leaves the server just like you would for a real user. + virtual CSteamID CreateUnauthenticatedUserConnection() = 0; + + // Should be called whenever a user leaves our game server, this lets Steam internally + // track which users are currently on which servers for the purposes of preventing a single + // account being logged into multiple servers, showing who is currently on a server, etc. + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual void SendUserDisconnect_DEPRECATED( CSteamID steamIDUser ) = 0; + + // Update the data to be displayed in the server browser and matchmaking interfaces for a user + // currently connected to the server. For regular users you must call this after you receive a + // GSUserValidationSuccess callback. + // + // Return Value: true if successful, false if failure (ie, steamIDUser wasn't for an active player) + virtual bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore ) = 0; + +// Deprecated functions. These will be removed in a future version of the SDK. +// If you really need these, please contact us and help us understand what you are +// using them for. + + STEAM_PRIVATE_API( + virtual void SetMasterServerHeartbeatInterval_DEPRECATED( int iHeartbeatInterval ) = 0; + virtual void ForceMasterServerHeartbeat_DEPRECATED() = 0; + ) }; -#define STEAMGAMESERVER_INTERFACE_VERSION "SteamGameServer012" - -// game server flags -const uint32 k_unServerFlagNone = 0x00; -const uint32 k_unServerFlagActive = 0x01; // server has users playing -const uint32 k_unServerFlagSecure = 0x02; // server wants to be secure -const uint32 k_unServerFlagDedicated = 0x04; // server is dedicated -const uint32 k_unServerFlagLinux = 0x08; // linux build -const uint32 k_unServerFlagPassworded = 0x10; // password protected -const uint32 k_unServerFlagPrivate = 0x20; // server shouldn't list on master server and - // won't enforce authentication of users that connect to the server. - // Useful when you run a server where the clients may not - // be connected to the internet but you want them to play (i.e LANs) +#define STEAMGAMESERVER_INTERFACE_VERSION "SteamGameServer015" +// Global accessor +inline ISteamGameServer *SteamGameServer(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamGameServer *, SteamGameServer, STEAMGAMESERVER_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -271,7 +278,7 @@ const uint32 k_unServerFlagPrivate = 0x20; // server shouldn't list on master #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif diff --git a/lib/windows/include/steam/isteamgameserverstats.h b/lib/windows/include/steam/isteamgameserverstats.h index e7922c9..5019279 100644 --- a/lib/windows/include/steam/isteamgameserverstats.h +++ b/lib/windows/include/steam/isteamgameserverstats.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: Functions for authenticating users via Steam to play on a game server @@ -23,20 +23,29 @@ public: // if the user has no stats, GSStatsReceived_t.m_eResult will be set to k_EResultFail // these stats will only be auto-updated for clients playing on the server. For other // users you'll need to call RequestUserStats() again to refresh any data - CALL_RESULT( GSStatsReceived_t ) + STEAM_CALL_RESULT( GSStatsReceived_t ) virtual SteamAPICall_t RequestUserStats( CSteamID steamIDUser ) = 0; // requests stat information for a user, usable after a successful call to RequestUserStats() + STEAM_FLAT_NAME( GetUserStatInt32 ) virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, int32 *pData ) = 0; + + STEAM_FLAT_NAME( GetUserStatFloat ) virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, float *pData ) = 0; + virtual bool GetUserAchievement( CSteamID steamIDUser, const char *pchName, bool *pbAchieved ) = 0; // Set / update stats and achievements. // Note: These updates will work only on stats game servers are allowed to edit and only for // game servers that have been declared as officially controlled by the game creators. // Set the IP range of your official servers on the Steamworks page + + STEAM_FLAT_NAME( SetUserStatInt32 ) virtual bool SetUserStat( CSteamID steamIDUser, const char *pchName, int32 nData ) = 0; + + STEAM_FLAT_NAME( SetUserStatFloat ) virtual bool SetUserStat( CSteamID steamIDUser, const char *pchName, float fData ) = 0; + virtual bool UpdateUserAvgRateStat( CSteamID steamIDUser, const char *pchName, float flCountThisSession, double dSessionLength ) = 0; virtual bool SetUserAchievement( CSteamID steamIDUser, const char *pchName ) = 0; @@ -48,19 +57,23 @@ public: // uploaded has been rejected, either because they broke constraints // or were out of date. In this case the server sends back updated values. // The stats should be re-iterated to keep in sync. - CALL_RESULT( GSStatsStored_t ) + STEAM_CALL_RESULT( GSStatsStored_t ) virtual SteamAPICall_t StoreUserStats( CSteamID steamIDUser ) = 0; }; - #define STEAMGAMESERVERSTATS_INTERFACE_VERSION "SteamGameServerStats001" +// Global accessor +inline ISteamGameServerStats *SteamGameServerStats(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamGameServerStats *, SteamGameServerStats, STEAMGAMESERVERSTATS_INTERFACE_VERSION ); + + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- diff --git a/lib/windows/include/steam/isteamhtmlsurface.h b/lib/windows/include/steam/isteamhtmlsurface.h index ccfc6af..dd30fe2 100644 --- a/lib/windows/include/steam/isteamhtmlsurface.h +++ b/lib/windows/include/steam/isteamhtmlsurface.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" typedef uint32 HHTMLBrowser; const uint32 INVALID_HTMLBROWSER = 0; @@ -40,7 +40,7 @@ public: // not implement these callback handlers, the browser may appear to hang instead of // navigating to new pages or triggering javascript popups. // - CALL_RESULT( HTML_BrowserReady_t ) + STEAM_CALL_RESULT( HTML_BrowserReady_t ) virtual SteamAPICall_t CreateBrowser( const char *pchUserAgent, const char *pchUserCSS ) = 0; // Call this when you are done with a html surface, this lets us free the resources being used by it @@ -137,8 +137,9 @@ public: k_eHTMLKeyModifier_ShiftDown = 1 << 2, }; - // keyboard interactions, native keycode is the virtual key code value from your OS - virtual void KeyDown( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0; + // keyboard interactions, native keycode is the virtual key code value from your OS, system key flags the key to not + // be sent as a typed character as well as a key down + virtual void KeyDown( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers, bool bIsSystemKey = false ) = 0; virtual void KeyUp( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0; // cUnicodeChar is the unicode character point for this keypress (and potentially multiple chars per press) virtual void KeyChar( HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0; @@ -177,6 +178,13 @@ public: // When background mode is disabled, any video or audio objects with that property will resume with ".play()". virtual void SetBackgroundMode( HHTMLBrowser unBrowserHandle, bool bBackgroundMode ) = 0; + // Scale the output display space by this factor, this is useful when displaying content on high dpi devices. + // Specifies the ratio between physical and logical pixels. + virtual void SetDPIScalingFactor( HHTMLBrowser unBrowserHandle, float flDPIScaling ) = 0; + + // Open HTML/JS developer tools + virtual void OpenDeveloperTools( HHTMLBrowser unBrowserHandle ) = 0; + // CALLBACKS // // These set of functions are used as responses to callback requests @@ -193,11 +201,14 @@ public: virtual void JSDialogResponse( HHTMLBrowser unBrowserHandle, bool bResult ) = 0; // You MUST call this in response to a HTML_FileOpenDialog_t callback - IGNOREATTR() virtual void FileLoadDialogResponse( HHTMLBrowser unBrowserHandle, const char **pchSelectedFiles ) = 0; }; -#define STEAMHTMLSURFACE_INTERFACE_VERSION "STEAMHTMLSURFACE_INTERFACE_VERSION_003" +#define STEAMHTMLSURFACE_INTERFACE_VERSION "STEAMHTMLSURFACE_INTERFACE_VERSION_005" + +// Global interface accessor +inline ISteamHTMLSurface *SteamHTMLSurface(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamHTMLSurface *, SteamHTMLSurface, STEAMHTMLSURFACE_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -205,156 +216,156 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- // Purpose: The browser is ready for use //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_BrowserReady_t, k_iSteamHTMLSurfaceCallbacks + 1 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // this browser is now fully created and ready to navigate to pages -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( HTML_BrowserReady_t, k_iSteamHTMLSurfaceCallbacks + 1 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // this browser is now fully created and ready to navigate to pages +STEAM_CALLBACK_END(1) //----------------------------------------------------------------------------- // Purpose: the browser has a pending paint //----------------------------------------------------------------------------- -DEFINE_CALLBACK(HTML_NeedsPaint_t, k_iSteamHTMLSurfaceCallbacks + 2) -CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the browser that needs the paint -CALLBACK_MEMBER(1, const char *, pBGRA ) // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called -CALLBACK_MEMBER(2, uint32, unWide) // the total width of the pBGRA texture -CALLBACK_MEMBER(3, uint32, unTall) // the total height of the pBGRA texture -CALLBACK_MEMBER(4, uint32, unUpdateX) // the offset in X for the damage rect for this update -CALLBACK_MEMBER(5, uint32, unUpdateY) // the offset in Y for the damage rect for this update -CALLBACK_MEMBER(6, uint32, unUpdateWide) // the width of the damage rect for this update -CALLBACK_MEMBER(7, uint32, unUpdateTall) // the height of the damage rect for this update -CALLBACK_MEMBER(8, uint32, unScrollX) // the page scroll the browser was at when this texture was rendered -CALLBACK_MEMBER(9, uint32, unScrollY) // the page scroll the browser was at when this texture was rendered -CALLBACK_MEMBER(10, float, flPageScale) // the page scale factor on this page when rendered -CALLBACK_MEMBER(11, uint32, unPageSerial) // incremented on each new page load, you can use this to reject draws while navigating to new pages -END_DEFINE_CALLBACK_12() +STEAM_CALLBACK_BEGIN(HTML_NeedsPaint_t, k_iSteamHTMLSurfaceCallbacks + 2) +STEAM_CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the browser that needs the paint +STEAM_CALLBACK_MEMBER(1, const char *, pBGRA ) // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called +STEAM_CALLBACK_MEMBER(2, uint32, unWide) // the total width of the pBGRA texture +STEAM_CALLBACK_MEMBER(3, uint32, unTall) // the total height of the pBGRA texture +STEAM_CALLBACK_MEMBER(4, uint32, unUpdateX) // the offset in X for the damage rect for this update +STEAM_CALLBACK_MEMBER(5, uint32, unUpdateY) // the offset in Y for the damage rect for this update +STEAM_CALLBACK_MEMBER(6, uint32, unUpdateWide) // the width of the damage rect for this update +STEAM_CALLBACK_MEMBER(7, uint32, unUpdateTall) // the height of the damage rect for this update +STEAM_CALLBACK_MEMBER(8, uint32, unScrollX) // the page scroll the browser was at when this texture was rendered +STEAM_CALLBACK_MEMBER(9, uint32, unScrollY) // the page scroll the browser was at when this texture was rendered +STEAM_CALLBACK_MEMBER(10, float, flPageScale) // the page scale factor on this page when rendered +STEAM_CALLBACK_MEMBER(11, uint32, unPageSerial) // incremented on each new page load, you can use this to reject draws while navigating to new pages +STEAM_CALLBACK_END(12) //----------------------------------------------------------------------------- // Purpose: The browser wanted to navigate to a new page // NOTE - you MUST call AllowStartRequest in response to this callback //----------------------------------------------------------------------------- -DEFINE_CALLBACK(HTML_StartRequest_t, k_iSteamHTMLSurfaceCallbacks + 3) -CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface navigating -CALLBACK_MEMBER(1, const char *, pchURL) // the url they wish to navigate to -CALLBACK_MEMBER(2, const char *, pchTarget) // the html link target type (i.e _blank, _self, _parent, _top ) -CALLBACK_MEMBER(3, const char *, pchPostData ) // any posted data for the request -CALLBACK_MEMBER(4, bool, bIsRedirect) // true if this was a http/html redirect from the last load request -END_DEFINE_CALLBACK_5() +STEAM_CALLBACK_BEGIN(HTML_StartRequest_t, k_iSteamHTMLSurfaceCallbacks + 3) +STEAM_CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface navigating +STEAM_CALLBACK_MEMBER(1, const char *, pchURL) // the url they wish to navigate to +STEAM_CALLBACK_MEMBER(2, const char *, pchTarget) // the html link target type (i.e _blank, _self, _parent, _top ) +STEAM_CALLBACK_MEMBER(3, const char *, pchPostData ) // any posted data for the request +STEAM_CALLBACK_MEMBER(4, bool, bIsRedirect) // true if this was a http/html redirect from the last load request +STEAM_CALLBACK_END(5) //----------------------------------------------------------------------------- // Purpose: The browser has been requested to close due to user interaction (usually from a javascript window.close() call) //----------------------------------------------------------------------------- -DEFINE_CALLBACK(HTML_CloseBrowser_t, k_iSteamHTMLSurfaceCallbacks + 4) -CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN(HTML_CloseBrowser_t, k_iSteamHTMLSurfaceCallbacks + 4) +STEAM_CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface +STEAM_CALLBACK_END(1) //----------------------------------------------------------------------------- // Purpose: the browser is navigating to a new url //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_URLChanged_t, k_iSteamHTMLSurfaceCallbacks + 5 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface navigating -CALLBACK_MEMBER( 1, const char *, pchURL ) // the url they wish to navigate to -CALLBACK_MEMBER( 2, const char *, pchPostData ) // any posted data for the request -CALLBACK_MEMBER( 3, bool, bIsRedirect ) // true if this was a http/html redirect from the last load request -CALLBACK_MEMBER( 4, const char *, pchPageTitle ) // the title of the page -CALLBACK_MEMBER( 5, bool, bNewNavigation ) // true if this was from a fresh tab and not a click on an existing page -END_DEFINE_CALLBACK_6() +STEAM_CALLBACK_BEGIN( HTML_URLChanged_t, k_iSteamHTMLSurfaceCallbacks + 5 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface navigating +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // the url they wish to navigate to +STEAM_CALLBACK_MEMBER( 2, const char *, pchPostData ) // any posted data for the request +STEAM_CALLBACK_MEMBER( 3, bool, bIsRedirect ) // true if this was a http/html redirect from the last load request +STEAM_CALLBACK_MEMBER( 4, const char *, pchPageTitle ) // the title of the page +STEAM_CALLBACK_MEMBER( 5, bool, bNewNavigation ) // true if this was from a fresh tab and not a click on an existing page +STEAM_CALLBACK_END(6) //----------------------------------------------------------------------------- // Purpose: A page is finished loading //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_FinishedRequest_t, k_iSteamHTMLSurfaceCallbacks + 6 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchURL ) // -CALLBACK_MEMBER( 2, const char *, pchPageTitle ) // -END_DEFINE_CALLBACK_3() +STEAM_CALLBACK_BEGIN( HTML_FinishedRequest_t, k_iSteamHTMLSurfaceCallbacks + 6 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // +STEAM_CALLBACK_MEMBER( 2, const char *, pchPageTitle ) // +STEAM_CALLBACK_END(3) //----------------------------------------------------------------------------- // Purpose: a request to load this url in a new tab //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_OpenLinkInNewTab_t, k_iSteamHTMLSurfaceCallbacks + 7 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchURL ) // -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_OpenLinkInNewTab_t, k_iSteamHTMLSurfaceCallbacks + 7 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: the page has a new title now //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_ChangedTitle_t, k_iSteamHTMLSurfaceCallbacks + 8 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchTitle ) // -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_ChangedTitle_t, k_iSteamHTMLSurfaceCallbacks + 8 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchTitle ) // +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: results from a search //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_SearchResults_t, k_iSteamHTMLSurfaceCallbacks + 9 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, unResults ) // -CALLBACK_MEMBER( 2, uint32, unCurrentMatch ) // -END_DEFINE_CALLBACK_3() +STEAM_CALLBACK_BEGIN( HTML_SearchResults_t, k_iSteamHTMLSurfaceCallbacks + 9 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, unResults ) // +STEAM_CALLBACK_MEMBER( 2, uint32, unCurrentMatch ) // +STEAM_CALLBACK_END(3) //----------------------------------------------------------------------------- // Purpose: page history status changed on the ability to go backwards and forward //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_CanGoBackAndForward_t, k_iSteamHTMLSurfaceCallbacks + 10 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, bool, bCanGoBack ) // -CALLBACK_MEMBER( 2, bool, bCanGoForward ) // -END_DEFINE_CALLBACK_3() +STEAM_CALLBACK_BEGIN( HTML_CanGoBackAndForward_t, k_iSteamHTMLSurfaceCallbacks + 10 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, bool, bCanGoBack ) // +STEAM_CALLBACK_MEMBER( 2, bool, bCanGoForward ) // +STEAM_CALLBACK_END(3) //----------------------------------------------------------------------------- // Purpose: details on the visibility and size of the horizontal scrollbar //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_HorizontalScroll_t, k_iSteamHTMLSurfaceCallbacks + 11 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, unScrollMax ) // -CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // -CALLBACK_MEMBER( 3, float, flPageScale ) // -CALLBACK_MEMBER( 4, bool , bVisible ) // -CALLBACK_MEMBER( 5, uint32, unPageSize ) // -END_DEFINE_CALLBACK_6() +STEAM_CALLBACK_BEGIN( HTML_HorizontalScroll_t, k_iSteamHTMLSurfaceCallbacks + 11 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, unScrollMax ) // +STEAM_CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // +STEAM_CALLBACK_MEMBER( 3, float, flPageScale ) // +STEAM_CALLBACK_MEMBER( 4, bool , bVisible ) // +STEAM_CALLBACK_MEMBER( 5, uint32, unPageSize ) // +STEAM_CALLBACK_END(6) //----------------------------------------------------------------------------- // Purpose: details on the visibility and size of the vertical scrollbar //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_VerticalScroll_t, k_iSteamHTMLSurfaceCallbacks + 12 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, unScrollMax ) // -CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // -CALLBACK_MEMBER( 3, float, flPageScale ) // -CALLBACK_MEMBER( 4, bool, bVisible ) // -CALLBACK_MEMBER( 5, uint32, unPageSize ) // -END_DEFINE_CALLBACK_6() +STEAM_CALLBACK_BEGIN( HTML_VerticalScroll_t, k_iSteamHTMLSurfaceCallbacks + 12 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, unScrollMax ) // +STEAM_CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) // +STEAM_CALLBACK_MEMBER( 3, float, flPageScale ) // +STEAM_CALLBACK_MEMBER( 4, bool, bVisible ) // +STEAM_CALLBACK_MEMBER( 5, uint32, unPageSize ) // +STEAM_CALLBACK_END(6) //----------------------------------------------------------------------------- // Purpose: response to GetLinkAtPosition call //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_LinkAtPosition_t, k_iSteamHTMLSurfaceCallbacks + 13 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, x ) // NOTE - Not currently set -CALLBACK_MEMBER( 2, uint32, y ) // NOTE - Not currently set -CALLBACK_MEMBER( 3, const char *, pchURL ) // -CALLBACK_MEMBER( 4, bool, bInput ) // -CALLBACK_MEMBER( 5, bool, bLiveLink ) // -END_DEFINE_CALLBACK_6() +STEAM_CALLBACK_BEGIN( HTML_LinkAtPosition_t, k_iSteamHTMLSurfaceCallbacks + 13 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, x ) // NOTE - Not currently set +STEAM_CALLBACK_MEMBER( 2, uint32, y ) // NOTE - Not currently set +STEAM_CALLBACK_MEMBER( 3, const char *, pchURL ) // +STEAM_CALLBACK_MEMBER( 4, bool, bInput ) // +STEAM_CALLBACK_MEMBER( 5, bool, bLiveLink ) // +STEAM_CALLBACK_END(6) @@ -362,89 +373,104 @@ END_DEFINE_CALLBACK_6() // Purpose: show a Javascript alert dialog, call JSDialogResponse // when the user dismisses this dialog (or right away to ignore it) //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_JSAlert_t, k_iSteamHTMLSurfaceCallbacks + 14 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMessage ) // -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_JSAlert_t, k_iSteamHTMLSurfaceCallbacks + 14 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMessage ) // +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: show a Javascript confirmation dialog, call JSDialogResponse // when the user dismisses this dialog (or right away to ignore it) //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_JSConfirm_t, k_iSteamHTMLSurfaceCallbacks + 15 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMessage ) // -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_JSConfirm_t, k_iSteamHTMLSurfaceCallbacks + 15 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMessage ) // +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: when received show a file open dialog // then call FileLoadDialogResponse with the file(s) the user selected. //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_FileOpenDialog_t, k_iSteamHTMLSurfaceCallbacks + 16 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchTitle ) // -CALLBACK_MEMBER( 2, const char *, pchInitialFile ) // -END_DEFINE_CALLBACK_3() +STEAM_CALLBACK_BEGIN( HTML_FileOpenDialog_t, k_iSteamHTMLSurfaceCallbacks + 16 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchTitle ) // +STEAM_CALLBACK_MEMBER( 2, const char *, pchInitialFile ) // +STEAM_CALLBACK_END(3) //----------------------------------------------------------------------------- -// Purpose: a new html window has been created +// Purpose: a new html window is being created. +// +// IMPORTANT NOTE: at this time, the API does not allow you to acknowledge or +// render the contents of this new window, so the new window is always destroyed +// immediately. The URL and other parameters of the new window are passed here +// to give your application the opportunity to call CreateBrowser and set up +// a new browser in response to the attempted popup, if you wish to do so. //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_NewWindow_t, k_iSteamHTMLSurfaceCallbacks + 21 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the current surface -CALLBACK_MEMBER( 1, const char *, pchURL ) // the page to load -CALLBACK_MEMBER( 2, uint32, unX ) // the x pos into the page to display the popup -CALLBACK_MEMBER( 3, uint32, unY ) // the y pos into the page to display the popup -CALLBACK_MEMBER( 4, uint32, unWide ) // the total width of the pBGRA texture -CALLBACK_MEMBER( 5, uint32, unTall ) // the total height of the pBGRA texture -CALLBACK_MEMBER( 6, HHTMLBrowser, unNewWindow_BrowserHandle ) // the handle of the new window surface -END_DEFINE_CALLBACK_7() +STEAM_CALLBACK_BEGIN( HTML_NewWindow_t, k_iSteamHTMLSurfaceCallbacks + 21 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the current surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchURL ) // the page to load +STEAM_CALLBACK_MEMBER( 2, uint32, unX ) // the x pos into the page to display the popup +STEAM_CALLBACK_MEMBER( 3, uint32, unY ) // the y pos into the page to display the popup +STEAM_CALLBACK_MEMBER( 4, uint32, unWide ) // the total width of the pBGRA texture +STEAM_CALLBACK_MEMBER( 5, uint32, unTall ) // the total height of the pBGRA texture +STEAM_CALLBACK_MEMBER( 6, HHTMLBrowser, unNewWindow_BrowserHandle_IGNORE ) +STEAM_CALLBACK_END(7) //----------------------------------------------------------------------------- // Purpose: change the cursor to display //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_SetCursor_t, k_iSteamHTMLSurfaceCallbacks + 22 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, uint32, eMouseCursor ) // the EMouseCursor to display -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_SetCursor_t, k_iSteamHTMLSurfaceCallbacks + 22 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, uint32, eMouseCursor ) // the EMouseCursor to display +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: informational message from the browser //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_StatusText_t, k_iSteamHTMLSurfaceCallbacks + 23 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_StatusText_t, k_iSteamHTMLSurfaceCallbacks + 23 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: show a tooltip //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_ShowToolTip_t, k_iSteamHTMLSurfaceCallbacks + 24 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_ShowToolTip_t, k_iSteamHTMLSurfaceCallbacks + 24 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: update the text of an existing tooltip //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_UpdateToolTip_t, k_iSteamHTMLSurfaceCallbacks + 25 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display -END_DEFINE_CALLBACK_2() +STEAM_CALLBACK_BEGIN( HTML_UpdateToolTip_t, k_iSteamHTMLSurfaceCallbacks + 25 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display +STEAM_CALLBACK_END(2) //----------------------------------------------------------------------------- // Purpose: hide the tooltip you are showing //----------------------------------------------------------------------------- -DEFINE_CALLBACK( HTML_HideToolTip_t, k_iSteamHTMLSurfaceCallbacks + 26 ) -CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( HTML_HideToolTip_t, k_iSteamHTMLSurfaceCallbacks + 26 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface +STEAM_CALLBACK_END(1) + + +//----------------------------------------------------------------------------- +// Purpose: The browser has restarted due to an internal failure, use this new handle value +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( HTML_BrowserRestarted_t, k_iSteamHTMLSurfaceCallbacks + 27 ) +STEAM_CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // this is the new browser handle after the restart +STEAM_CALLBACK_MEMBER( 1, HHTMLBrowser, unOldBrowserHandle ) // the handle for the browser before the restart, if your handle was this then switch to using unBrowserHandle for API calls +STEAM_CALLBACK_END(2) #pragma pack( pop ) diff --git a/lib/windows/include/steam/isteamhttp.h b/lib/windows/include/steam/isteamhttp.h index 8fab537..fb034ca 100644 --- a/lib/windows/include/steam/isteamhttp.h +++ b/lib/windows/include/steam/isteamhttp.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" #include "steamhttpenums.h" // Handle to a HTTP Request handle @@ -128,7 +128,8 @@ public: // Set the extra user agent info for a request, this doesn't clobber the normal user agent, it just adds the extra info on the end virtual bool SetHTTPRequestUserAgentInfo( HTTPRequestHandle hRequest, const char *pchUserAgentInfo ) = 0; - // Set that https request should require verified SSL certificate via machines certificate trust store + // Disable or re-enable verification of SSL/TLS certificates. + // By default, certificates are checked for all HTTPS requests. virtual bool SetHTTPRequestRequiresVerifiedCertificate( HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate ) = 0; // Set an absolute timeout on the HTTP request, this is just a total time timeout different than the network activity timeout @@ -139,7 +140,15 @@ public: virtual bool GetHTTPRequestWasTimedOut( HTTPRequestHandle hRequest, bool *pbWasTimedOut ) = 0; }; -#define STEAMHTTP_INTERFACE_VERSION "STEAMHTTP_INTERFACE_VERSION002" +#define STEAMHTTP_INTERFACE_VERSION "STEAMHTTP_INTERFACE_VERSION003" + +// Global interface accessor +inline ISteamHTTP *SteamHTTP(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamHTTP *, SteamHTTP, STEAMHTTP_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamHTTP *SteamGameServerHTTP(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamHTTP *, SteamGameServerHTTP, STEAMHTTP_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -147,12 +156,12 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct HTTPRequestCompleted_t { - enum { k_iCallback = k_iClientHTTPCallbacks + 1 }; + enum { k_iCallback = k_iSteamHTTPCallbacks + 1 }; // Handle value for the request that has completed. HTTPRequestHandle m_hRequest; @@ -175,7 +184,7 @@ struct HTTPRequestCompleted_t struct HTTPRequestHeadersReceived_t { - enum { k_iCallback = k_iClientHTTPCallbacks + 2 }; + enum { k_iCallback = k_iSteamHTTPCallbacks + 2 }; // Handle value for the request that has received headers. HTTPRequestHandle m_hRequest; @@ -187,7 +196,7 @@ struct HTTPRequestHeadersReceived_t struct HTTPRequestDataReceived_t { - enum { k_iCallback = k_iClientHTTPCallbacks + 3 }; + enum { k_iCallback = k_iSteamHTTPCallbacks + 3 }; // Handle value for the request that has received data. HTTPRequestHandle m_hRequest; diff --git a/lib/windows/include/steam/isteaminput.h b/lib/windows/include/steam/isteaminput.h new file mode 100644 index 0000000..335f23f --- /dev/null +++ b/lib/windows/include/steam/isteaminput.h @@ -0,0 +1,982 @@ +//====== Copyright 1996-2018, Valve Corporation, All rights reserved. ======= +// +// Purpose: Steam Input is a flexible input API that supports over three hundred devices including all +// common variants of Xbox, Playstation, Nintendo Switch Pro, and Steam Controllers. +// For more info including a getting started guide for developers +// please visit: https://partner.steamgames.com/doc/features/steam_controller +// +//============================================================================= + +#ifndef ISTEAMINPUT_H +#define ISTEAMINPUT_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +#define STEAM_INPUT_MAX_COUNT 16 + +#define STEAM_INPUT_MAX_ANALOG_ACTIONS 24 + +#define STEAM_INPUT_MAX_DIGITAL_ACTIONS 256 + +#define STEAM_INPUT_MAX_ORIGINS 8 + +#define STEAM_INPUT_MAX_ACTIVE_LAYERS 16 + +// When sending an option to a specific controller handle, you can send to all devices via this command +#define STEAM_INPUT_HANDLE_ALL_CONTROLLERS UINT64_MAX + +#define STEAM_INPUT_MIN_ANALOG_ACTION_DATA -1.0f +#define STEAM_INPUT_MAX_ANALOG_ACTION_DATA 1.0f + +enum EInputSourceMode +{ + k_EInputSourceMode_None, + k_EInputSourceMode_Dpad, + k_EInputSourceMode_Buttons, + k_EInputSourceMode_FourButtons, + k_EInputSourceMode_AbsoluteMouse, + k_EInputSourceMode_RelativeMouse, + k_EInputSourceMode_JoystickMove, + k_EInputSourceMode_JoystickMouse, + k_EInputSourceMode_JoystickCamera, + k_EInputSourceMode_ScrollWheel, + k_EInputSourceMode_Trigger, + k_EInputSourceMode_TouchMenu, + k_EInputSourceMode_MouseJoystick, + k_EInputSourceMode_MouseRegion, + k_EInputSourceMode_RadialMenu, + k_EInputSourceMode_SingleButton, + k_EInputSourceMode_Switches +}; + +// Note: Please do not use action origins as a way to identify controller types. There is no +// guarantee that they will be added in a contiguous manner - use GetInputTypeForHandle instead. +// Versions of Steam that add new controller types in the future will extend this enum so if you're +// using a lookup table please check the bounds of any origins returned by Steam. +enum EInputActionOrigin +{ + // Steam Controller + k_EInputActionOrigin_None, + k_EInputActionOrigin_SteamController_A, + k_EInputActionOrigin_SteamController_B, + k_EInputActionOrigin_SteamController_X, + k_EInputActionOrigin_SteamController_Y, + k_EInputActionOrigin_SteamController_LeftBumper, + k_EInputActionOrigin_SteamController_RightBumper, + k_EInputActionOrigin_SteamController_LeftGrip, + k_EInputActionOrigin_SteamController_RightGrip, + k_EInputActionOrigin_SteamController_Start, + k_EInputActionOrigin_SteamController_Back, + k_EInputActionOrigin_SteamController_LeftPad_Touch, + k_EInputActionOrigin_SteamController_LeftPad_Swipe, + k_EInputActionOrigin_SteamController_LeftPad_Click, + k_EInputActionOrigin_SteamController_LeftPad_DPadNorth, + k_EInputActionOrigin_SteamController_LeftPad_DPadSouth, + k_EInputActionOrigin_SteamController_LeftPad_DPadWest, + k_EInputActionOrigin_SteamController_LeftPad_DPadEast, + k_EInputActionOrigin_SteamController_RightPad_Touch, + k_EInputActionOrigin_SteamController_RightPad_Swipe, + k_EInputActionOrigin_SteamController_RightPad_Click, + k_EInputActionOrigin_SteamController_RightPad_DPadNorth, + k_EInputActionOrigin_SteamController_RightPad_DPadSouth, + k_EInputActionOrigin_SteamController_RightPad_DPadWest, + k_EInputActionOrigin_SteamController_RightPad_DPadEast, + k_EInputActionOrigin_SteamController_LeftTrigger_Pull, + k_EInputActionOrigin_SteamController_LeftTrigger_Click, + k_EInputActionOrigin_SteamController_RightTrigger_Pull, + k_EInputActionOrigin_SteamController_RightTrigger_Click, + k_EInputActionOrigin_SteamController_LeftStick_Move, + k_EInputActionOrigin_SteamController_LeftStick_Click, + k_EInputActionOrigin_SteamController_LeftStick_DPadNorth, + k_EInputActionOrigin_SteamController_LeftStick_DPadSouth, + k_EInputActionOrigin_SteamController_LeftStick_DPadWest, + k_EInputActionOrigin_SteamController_LeftStick_DPadEast, + k_EInputActionOrigin_SteamController_Gyro_Move, + k_EInputActionOrigin_SteamController_Gyro_Pitch, + k_EInputActionOrigin_SteamController_Gyro_Yaw, + k_EInputActionOrigin_SteamController_Gyro_Roll, + k_EInputActionOrigin_SteamController_Reserved0, + k_EInputActionOrigin_SteamController_Reserved1, + k_EInputActionOrigin_SteamController_Reserved2, + k_EInputActionOrigin_SteamController_Reserved3, + k_EInputActionOrigin_SteamController_Reserved4, + k_EInputActionOrigin_SteamController_Reserved5, + k_EInputActionOrigin_SteamController_Reserved6, + k_EInputActionOrigin_SteamController_Reserved7, + k_EInputActionOrigin_SteamController_Reserved8, + k_EInputActionOrigin_SteamController_Reserved9, + k_EInputActionOrigin_SteamController_Reserved10, + + // PS4 Dual Shock + k_EInputActionOrigin_PS4_X, + k_EInputActionOrigin_PS4_Circle, + k_EInputActionOrigin_PS4_Triangle, + k_EInputActionOrigin_PS4_Square, + k_EInputActionOrigin_PS4_LeftBumper, + k_EInputActionOrigin_PS4_RightBumper, + k_EInputActionOrigin_PS4_Options, //Start + k_EInputActionOrigin_PS4_Share, //Back + k_EInputActionOrigin_PS4_LeftPad_Touch, + k_EInputActionOrigin_PS4_LeftPad_Swipe, + k_EInputActionOrigin_PS4_LeftPad_Click, + k_EInputActionOrigin_PS4_LeftPad_DPadNorth, + k_EInputActionOrigin_PS4_LeftPad_DPadSouth, + k_EInputActionOrigin_PS4_LeftPad_DPadWest, + k_EInputActionOrigin_PS4_LeftPad_DPadEast, + k_EInputActionOrigin_PS4_RightPad_Touch, + k_EInputActionOrigin_PS4_RightPad_Swipe, + k_EInputActionOrigin_PS4_RightPad_Click, + k_EInputActionOrigin_PS4_RightPad_DPadNorth, + k_EInputActionOrigin_PS4_RightPad_DPadSouth, + k_EInputActionOrigin_PS4_RightPad_DPadWest, + k_EInputActionOrigin_PS4_RightPad_DPadEast, + k_EInputActionOrigin_PS4_CenterPad_Touch, + k_EInputActionOrigin_PS4_CenterPad_Swipe, + k_EInputActionOrigin_PS4_CenterPad_Click, + k_EInputActionOrigin_PS4_CenterPad_DPadNorth, + k_EInputActionOrigin_PS4_CenterPad_DPadSouth, + k_EInputActionOrigin_PS4_CenterPad_DPadWest, + k_EInputActionOrigin_PS4_CenterPad_DPadEast, + k_EInputActionOrigin_PS4_LeftTrigger_Pull, + k_EInputActionOrigin_PS4_LeftTrigger_Click, + k_EInputActionOrigin_PS4_RightTrigger_Pull, + k_EInputActionOrigin_PS4_RightTrigger_Click, + k_EInputActionOrigin_PS4_LeftStick_Move, + k_EInputActionOrigin_PS4_LeftStick_Click, + k_EInputActionOrigin_PS4_LeftStick_DPadNorth, + k_EInputActionOrigin_PS4_LeftStick_DPadSouth, + k_EInputActionOrigin_PS4_LeftStick_DPadWest, + k_EInputActionOrigin_PS4_LeftStick_DPadEast, + k_EInputActionOrigin_PS4_RightStick_Move, + k_EInputActionOrigin_PS4_RightStick_Click, + k_EInputActionOrigin_PS4_RightStick_DPadNorth, + k_EInputActionOrigin_PS4_RightStick_DPadSouth, + k_EInputActionOrigin_PS4_RightStick_DPadWest, + k_EInputActionOrigin_PS4_RightStick_DPadEast, + k_EInputActionOrigin_PS4_DPad_North, + k_EInputActionOrigin_PS4_DPad_South, + k_EInputActionOrigin_PS4_DPad_West, + k_EInputActionOrigin_PS4_DPad_East, + k_EInputActionOrigin_PS4_Gyro_Move, + k_EInputActionOrigin_PS4_Gyro_Pitch, + k_EInputActionOrigin_PS4_Gyro_Yaw, + k_EInputActionOrigin_PS4_Gyro_Roll, + k_EInputActionOrigin_PS4_DPad_Move, + k_EInputActionOrigin_PS4_Reserved1, + k_EInputActionOrigin_PS4_Reserved2, + k_EInputActionOrigin_PS4_Reserved3, + k_EInputActionOrigin_PS4_Reserved4, + k_EInputActionOrigin_PS4_Reserved5, + k_EInputActionOrigin_PS4_Reserved6, + k_EInputActionOrigin_PS4_Reserved7, + k_EInputActionOrigin_PS4_Reserved8, + k_EInputActionOrigin_PS4_Reserved9, + k_EInputActionOrigin_PS4_Reserved10, + + // XBox One + k_EInputActionOrigin_XBoxOne_A, + k_EInputActionOrigin_XBoxOne_B, + k_EInputActionOrigin_XBoxOne_X, + k_EInputActionOrigin_XBoxOne_Y, + k_EInputActionOrigin_XBoxOne_LeftBumper, + k_EInputActionOrigin_XBoxOne_RightBumper, + k_EInputActionOrigin_XBoxOne_Menu, //Start + k_EInputActionOrigin_XBoxOne_View, //Back + k_EInputActionOrigin_XBoxOne_LeftTrigger_Pull, + k_EInputActionOrigin_XBoxOne_LeftTrigger_Click, + k_EInputActionOrigin_XBoxOne_RightTrigger_Pull, + k_EInputActionOrigin_XBoxOne_RightTrigger_Click, + k_EInputActionOrigin_XBoxOne_LeftStick_Move, + k_EInputActionOrigin_XBoxOne_LeftStick_Click, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadNorth, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadSouth, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadWest, + k_EInputActionOrigin_XBoxOne_LeftStick_DPadEast, + k_EInputActionOrigin_XBoxOne_RightStick_Move, + k_EInputActionOrigin_XBoxOne_RightStick_Click, + k_EInputActionOrigin_XBoxOne_RightStick_DPadNorth, + k_EInputActionOrigin_XBoxOne_RightStick_DPadSouth, + k_EInputActionOrigin_XBoxOne_RightStick_DPadWest, + k_EInputActionOrigin_XBoxOne_RightStick_DPadEast, + k_EInputActionOrigin_XBoxOne_DPad_North, + k_EInputActionOrigin_XBoxOne_DPad_South, + k_EInputActionOrigin_XBoxOne_DPad_West, + k_EInputActionOrigin_XBoxOne_DPad_East, + k_EInputActionOrigin_XBoxOne_DPad_Move, + k_EInputActionOrigin_XBoxOne_LeftGrip_Lower, + k_EInputActionOrigin_XBoxOne_LeftGrip_Upper, + k_EInputActionOrigin_XBoxOne_RightGrip_Lower, + k_EInputActionOrigin_XBoxOne_RightGrip_Upper, + k_EInputActionOrigin_XBoxOne_Share, // Xbox Series X controllers only + k_EInputActionOrigin_XBoxOne_Reserved6, + k_EInputActionOrigin_XBoxOne_Reserved7, + k_EInputActionOrigin_XBoxOne_Reserved8, + k_EInputActionOrigin_XBoxOne_Reserved9, + k_EInputActionOrigin_XBoxOne_Reserved10, + + // XBox 360 + k_EInputActionOrigin_XBox360_A, + k_EInputActionOrigin_XBox360_B, + k_EInputActionOrigin_XBox360_X, + k_EInputActionOrigin_XBox360_Y, + k_EInputActionOrigin_XBox360_LeftBumper, + k_EInputActionOrigin_XBox360_RightBumper, + k_EInputActionOrigin_XBox360_Start, //Start + k_EInputActionOrigin_XBox360_Back, //Back + k_EInputActionOrigin_XBox360_LeftTrigger_Pull, + k_EInputActionOrigin_XBox360_LeftTrigger_Click, + k_EInputActionOrigin_XBox360_RightTrigger_Pull, + k_EInputActionOrigin_XBox360_RightTrigger_Click, + k_EInputActionOrigin_XBox360_LeftStick_Move, + k_EInputActionOrigin_XBox360_LeftStick_Click, + k_EInputActionOrigin_XBox360_LeftStick_DPadNorth, + k_EInputActionOrigin_XBox360_LeftStick_DPadSouth, + k_EInputActionOrigin_XBox360_LeftStick_DPadWest, + k_EInputActionOrigin_XBox360_LeftStick_DPadEast, + k_EInputActionOrigin_XBox360_RightStick_Move, + k_EInputActionOrigin_XBox360_RightStick_Click, + k_EInputActionOrigin_XBox360_RightStick_DPadNorth, + k_EInputActionOrigin_XBox360_RightStick_DPadSouth, + k_EInputActionOrigin_XBox360_RightStick_DPadWest, + k_EInputActionOrigin_XBox360_RightStick_DPadEast, + k_EInputActionOrigin_XBox360_DPad_North, + k_EInputActionOrigin_XBox360_DPad_South, + k_EInputActionOrigin_XBox360_DPad_West, + k_EInputActionOrigin_XBox360_DPad_East, + k_EInputActionOrigin_XBox360_DPad_Move, + k_EInputActionOrigin_XBox360_Reserved1, + k_EInputActionOrigin_XBox360_Reserved2, + k_EInputActionOrigin_XBox360_Reserved3, + k_EInputActionOrigin_XBox360_Reserved4, + k_EInputActionOrigin_XBox360_Reserved5, + k_EInputActionOrigin_XBox360_Reserved6, + k_EInputActionOrigin_XBox360_Reserved7, + k_EInputActionOrigin_XBox360_Reserved8, + k_EInputActionOrigin_XBox360_Reserved9, + k_EInputActionOrigin_XBox360_Reserved10, + + + // Switch - Pro or Joycons used as a single input device. + // This does not apply to a single joycon + k_EInputActionOrigin_Switch_A, + k_EInputActionOrigin_Switch_B, + k_EInputActionOrigin_Switch_X, + k_EInputActionOrigin_Switch_Y, + k_EInputActionOrigin_Switch_LeftBumper, + k_EInputActionOrigin_Switch_RightBumper, + k_EInputActionOrigin_Switch_Plus, //Start + k_EInputActionOrigin_Switch_Minus, //Back + k_EInputActionOrigin_Switch_Capture, + k_EInputActionOrigin_Switch_LeftTrigger_Pull, + k_EInputActionOrigin_Switch_LeftTrigger_Click, + k_EInputActionOrigin_Switch_RightTrigger_Pull, + k_EInputActionOrigin_Switch_RightTrigger_Click, + k_EInputActionOrigin_Switch_LeftStick_Move, + k_EInputActionOrigin_Switch_LeftStick_Click, + k_EInputActionOrigin_Switch_LeftStick_DPadNorth, + k_EInputActionOrigin_Switch_LeftStick_DPadSouth, + k_EInputActionOrigin_Switch_LeftStick_DPadWest, + k_EInputActionOrigin_Switch_LeftStick_DPadEast, + k_EInputActionOrigin_Switch_RightStick_Move, + k_EInputActionOrigin_Switch_RightStick_Click, + k_EInputActionOrigin_Switch_RightStick_DPadNorth, + k_EInputActionOrigin_Switch_RightStick_DPadSouth, + k_EInputActionOrigin_Switch_RightStick_DPadWest, + k_EInputActionOrigin_Switch_RightStick_DPadEast, + k_EInputActionOrigin_Switch_DPad_North, + k_EInputActionOrigin_Switch_DPad_South, + k_EInputActionOrigin_Switch_DPad_West, + k_EInputActionOrigin_Switch_DPad_East, + k_EInputActionOrigin_Switch_ProGyro_Move, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_ProGyro_Pitch, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_ProGyro_Yaw, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_ProGyro_Roll, // Primary Gyro in Pro Controller, or Right JoyCon + k_EInputActionOrigin_Switch_DPad_Move, + k_EInputActionOrigin_Switch_Reserved1, + k_EInputActionOrigin_Switch_Reserved2, + k_EInputActionOrigin_Switch_Reserved3, + k_EInputActionOrigin_Switch_Reserved4, + k_EInputActionOrigin_Switch_Reserved5, + k_EInputActionOrigin_Switch_Reserved6, + k_EInputActionOrigin_Switch_Reserved7, + k_EInputActionOrigin_Switch_Reserved8, + k_EInputActionOrigin_Switch_Reserved9, + k_EInputActionOrigin_Switch_Reserved10, + + // Switch JoyCon Specific + k_EInputActionOrigin_Switch_RightGyro_Move, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_RightGyro_Pitch, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_RightGyro_Yaw, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_RightGyro_Roll, // Right JoyCon Gyro generally should correspond to Pro's single gyro + k_EInputActionOrigin_Switch_LeftGyro_Move, + k_EInputActionOrigin_Switch_LeftGyro_Pitch, + k_EInputActionOrigin_Switch_LeftGyro_Yaw, + k_EInputActionOrigin_Switch_LeftGyro_Roll, + k_EInputActionOrigin_Switch_LeftGrip_Lower, // Left JoyCon SR Button + k_EInputActionOrigin_Switch_LeftGrip_Upper, // Left JoyCon SL Button + k_EInputActionOrigin_Switch_RightGrip_Lower, // Right JoyCon SL Button + k_EInputActionOrigin_Switch_RightGrip_Upper, // Right JoyCon SR Button + k_EInputActionOrigin_Switch_JoyConButton_N, // With a Horizontal JoyCon this will be Y or what would be Dpad Right when vertical + k_EInputActionOrigin_Switch_JoyConButton_E, // X + k_EInputActionOrigin_Switch_JoyConButton_S, // A + k_EInputActionOrigin_Switch_JoyConButton_W, // B + k_EInputActionOrigin_Switch_Reserved15, + k_EInputActionOrigin_Switch_Reserved16, + k_EInputActionOrigin_Switch_Reserved17, + k_EInputActionOrigin_Switch_Reserved18, + k_EInputActionOrigin_Switch_Reserved19, + k_EInputActionOrigin_Switch_Reserved20, + + // Added in SDK 1.51 + k_EInputActionOrigin_PS5_X, + k_EInputActionOrigin_PS5_Circle, + k_EInputActionOrigin_PS5_Triangle, + k_EInputActionOrigin_PS5_Square, + k_EInputActionOrigin_PS5_LeftBumper, + k_EInputActionOrigin_PS5_RightBumper, + k_EInputActionOrigin_PS5_Option, //Start + k_EInputActionOrigin_PS5_Create, //Back + k_EInputActionOrigin_PS5_Mute, + k_EInputActionOrigin_PS5_LeftPad_Touch, + k_EInputActionOrigin_PS5_LeftPad_Swipe, + k_EInputActionOrigin_PS5_LeftPad_Click, + k_EInputActionOrigin_PS5_LeftPad_DPadNorth, + k_EInputActionOrigin_PS5_LeftPad_DPadSouth, + k_EInputActionOrigin_PS5_LeftPad_DPadWest, + k_EInputActionOrigin_PS5_LeftPad_DPadEast, + k_EInputActionOrigin_PS5_RightPad_Touch, + k_EInputActionOrigin_PS5_RightPad_Swipe, + k_EInputActionOrigin_PS5_RightPad_Click, + k_EInputActionOrigin_PS5_RightPad_DPadNorth, + k_EInputActionOrigin_PS5_RightPad_DPadSouth, + k_EInputActionOrigin_PS5_RightPad_DPadWest, + k_EInputActionOrigin_PS5_RightPad_DPadEast, + k_EInputActionOrigin_PS5_CenterPad_Touch, + k_EInputActionOrigin_PS5_CenterPad_Swipe, + k_EInputActionOrigin_PS5_CenterPad_Click, + k_EInputActionOrigin_PS5_CenterPad_DPadNorth, + k_EInputActionOrigin_PS5_CenterPad_DPadSouth, + k_EInputActionOrigin_PS5_CenterPad_DPadWest, + k_EInputActionOrigin_PS5_CenterPad_DPadEast, + k_EInputActionOrigin_PS5_LeftTrigger_Pull, + k_EInputActionOrigin_PS5_LeftTrigger_Click, + k_EInputActionOrigin_PS5_RightTrigger_Pull, + k_EInputActionOrigin_PS5_RightTrigger_Click, + k_EInputActionOrigin_PS5_LeftStick_Move, + k_EInputActionOrigin_PS5_LeftStick_Click, + k_EInputActionOrigin_PS5_LeftStick_DPadNorth, + k_EInputActionOrigin_PS5_LeftStick_DPadSouth, + k_EInputActionOrigin_PS5_LeftStick_DPadWest, + k_EInputActionOrigin_PS5_LeftStick_DPadEast, + k_EInputActionOrigin_PS5_RightStick_Move, + k_EInputActionOrigin_PS5_RightStick_Click, + k_EInputActionOrigin_PS5_RightStick_DPadNorth, + k_EInputActionOrigin_PS5_RightStick_DPadSouth, + k_EInputActionOrigin_PS5_RightStick_DPadWest, + k_EInputActionOrigin_PS5_RightStick_DPadEast, + k_EInputActionOrigin_PS5_DPad_North, + k_EInputActionOrigin_PS5_DPad_South, + k_EInputActionOrigin_PS5_DPad_West, + k_EInputActionOrigin_PS5_DPad_East, + k_EInputActionOrigin_PS5_Gyro_Move, + k_EInputActionOrigin_PS5_Gyro_Pitch, + k_EInputActionOrigin_PS5_Gyro_Yaw, + k_EInputActionOrigin_PS5_Gyro_Roll, + k_EInputActionOrigin_PS5_DPad_Move, + k_EInputActionOrigin_PS5_LeftGrip, + k_EInputActionOrigin_PS5_RightGrip, + k_EInputActionOrigin_PS5_LeftFn, + k_EInputActionOrigin_PS5_RightFn, + k_EInputActionOrigin_PS5_Reserved5, + k_EInputActionOrigin_PS5_Reserved6, + k_EInputActionOrigin_PS5_Reserved7, + k_EInputActionOrigin_PS5_Reserved8, + k_EInputActionOrigin_PS5_Reserved9, + k_EInputActionOrigin_PS5_Reserved10, + k_EInputActionOrigin_PS5_Reserved11, + k_EInputActionOrigin_PS5_Reserved12, + k_EInputActionOrigin_PS5_Reserved13, + k_EInputActionOrigin_PS5_Reserved14, + k_EInputActionOrigin_PS5_Reserved15, + k_EInputActionOrigin_PS5_Reserved16, + k_EInputActionOrigin_PS5_Reserved17, + k_EInputActionOrigin_PS5_Reserved18, + k_EInputActionOrigin_PS5_Reserved19, + k_EInputActionOrigin_PS5_Reserved20, + + // Added in SDK 1.53 + k_EInputActionOrigin_SteamDeck_A, + k_EInputActionOrigin_SteamDeck_B, + k_EInputActionOrigin_SteamDeck_X, + k_EInputActionOrigin_SteamDeck_Y, + k_EInputActionOrigin_SteamDeck_L1, + k_EInputActionOrigin_SteamDeck_R1, + k_EInputActionOrigin_SteamDeck_Menu, + k_EInputActionOrigin_SteamDeck_View, + k_EInputActionOrigin_SteamDeck_LeftPad_Touch, + k_EInputActionOrigin_SteamDeck_LeftPad_Swipe, + k_EInputActionOrigin_SteamDeck_LeftPad_Click, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadNorth, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadSouth, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadWest, + k_EInputActionOrigin_SteamDeck_LeftPad_DPadEast, + k_EInputActionOrigin_SteamDeck_RightPad_Touch, + k_EInputActionOrigin_SteamDeck_RightPad_Swipe, + k_EInputActionOrigin_SteamDeck_RightPad_Click, + k_EInputActionOrigin_SteamDeck_RightPad_DPadNorth, + k_EInputActionOrigin_SteamDeck_RightPad_DPadSouth, + k_EInputActionOrigin_SteamDeck_RightPad_DPadWest, + k_EInputActionOrigin_SteamDeck_RightPad_DPadEast, + k_EInputActionOrigin_SteamDeck_L2_SoftPull, + k_EInputActionOrigin_SteamDeck_L2, + k_EInputActionOrigin_SteamDeck_R2_SoftPull, + k_EInputActionOrigin_SteamDeck_R2, + k_EInputActionOrigin_SteamDeck_LeftStick_Move, + k_EInputActionOrigin_SteamDeck_L3, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadNorth, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadSouth, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadWest, + k_EInputActionOrigin_SteamDeck_LeftStick_DPadEast, + k_EInputActionOrigin_SteamDeck_LeftStick_Touch, + k_EInputActionOrigin_SteamDeck_RightStick_Move, + k_EInputActionOrigin_SteamDeck_R3, + k_EInputActionOrigin_SteamDeck_RightStick_DPadNorth, + k_EInputActionOrigin_SteamDeck_RightStick_DPadSouth, + k_EInputActionOrigin_SteamDeck_RightStick_DPadWest, + k_EInputActionOrigin_SteamDeck_RightStick_DPadEast, + k_EInputActionOrigin_SteamDeck_RightStick_Touch, + k_EInputActionOrigin_SteamDeck_L4, + k_EInputActionOrigin_SteamDeck_R4, + k_EInputActionOrigin_SteamDeck_L5, + k_EInputActionOrigin_SteamDeck_R5, + k_EInputActionOrigin_SteamDeck_DPad_Move, + k_EInputActionOrigin_SteamDeck_DPad_North, + k_EInputActionOrigin_SteamDeck_DPad_South, + k_EInputActionOrigin_SteamDeck_DPad_West, + k_EInputActionOrigin_SteamDeck_DPad_East, + k_EInputActionOrigin_SteamDeck_Gyro_Move, + k_EInputActionOrigin_SteamDeck_Gyro_Pitch, + k_EInputActionOrigin_SteamDeck_Gyro_Yaw, + k_EInputActionOrigin_SteamDeck_Gyro_Roll, + k_EInputActionOrigin_SteamDeck_Reserved1, + k_EInputActionOrigin_SteamDeck_Reserved2, + k_EInputActionOrigin_SteamDeck_Reserved3, + k_EInputActionOrigin_SteamDeck_Reserved4, + k_EInputActionOrigin_SteamDeck_Reserved5, + k_EInputActionOrigin_SteamDeck_Reserved6, + k_EInputActionOrigin_SteamDeck_Reserved7, + k_EInputActionOrigin_SteamDeck_Reserved8, + k_EInputActionOrigin_SteamDeck_Reserved9, + k_EInputActionOrigin_SteamDeck_Reserved10, + k_EInputActionOrigin_SteamDeck_Reserved11, + k_EInputActionOrigin_SteamDeck_Reserved12, + k_EInputActionOrigin_SteamDeck_Reserved13, + k_EInputActionOrigin_SteamDeck_Reserved14, + k_EInputActionOrigin_SteamDeck_Reserved15, + k_EInputActionOrigin_SteamDeck_Reserved16, + k_EInputActionOrigin_SteamDeck_Reserved17, + k_EInputActionOrigin_SteamDeck_Reserved18, + k_EInputActionOrigin_SteamDeck_Reserved19, + k_EInputActionOrigin_SteamDeck_Reserved20, + + k_EInputActionOrigin_Count, // If Steam has added support for new controllers origins will go here. + k_EInputActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits. +}; + +enum EXboxOrigin +{ + k_EXboxOrigin_A, + k_EXboxOrigin_B, + k_EXboxOrigin_X, + k_EXboxOrigin_Y, + k_EXboxOrigin_LeftBumper, + k_EXboxOrigin_RightBumper, + k_EXboxOrigin_Menu, //Start + k_EXboxOrigin_View, //Back + k_EXboxOrigin_LeftTrigger_Pull, + k_EXboxOrigin_LeftTrigger_Click, + k_EXboxOrigin_RightTrigger_Pull, + k_EXboxOrigin_RightTrigger_Click, + k_EXboxOrigin_LeftStick_Move, + k_EXboxOrigin_LeftStick_Click, + k_EXboxOrigin_LeftStick_DPadNorth, + k_EXboxOrigin_LeftStick_DPadSouth, + k_EXboxOrigin_LeftStick_DPadWest, + k_EXboxOrigin_LeftStick_DPadEast, + k_EXboxOrigin_RightStick_Move, + k_EXboxOrigin_RightStick_Click, + k_EXboxOrigin_RightStick_DPadNorth, + k_EXboxOrigin_RightStick_DPadSouth, + k_EXboxOrigin_RightStick_DPadWest, + k_EXboxOrigin_RightStick_DPadEast, + k_EXboxOrigin_DPad_North, + k_EXboxOrigin_DPad_South, + k_EXboxOrigin_DPad_West, + k_EXboxOrigin_DPad_East, + k_EXboxOrigin_Count, +}; + +enum ESteamControllerPad +{ + k_ESteamControllerPad_Left, + k_ESteamControllerPad_Right +}; + +enum EControllerHapticLocation +{ + k_EControllerHapticLocation_Left = ( 1 << k_ESteamControllerPad_Left ), + k_EControllerHapticLocation_Right = ( 1 << k_ESteamControllerPad_Right ), + k_EControllerHapticLocation_Both = ( 1 << k_ESteamControllerPad_Left | 1 << k_ESteamControllerPad_Right ), +}; + +enum EControllerHapticType +{ + k_EControllerHapticType_Off, + k_EControllerHapticType_Tick, + k_EControllerHapticType_Click, +}; + +enum ESteamInputType +{ + k_ESteamInputType_Unknown, + k_ESteamInputType_SteamController, + k_ESteamInputType_XBox360Controller, + k_ESteamInputType_XBoxOneController, + k_ESteamInputType_GenericGamepad, // DirectInput controllers + k_ESteamInputType_PS4Controller, + k_ESteamInputType_AppleMFiController, // Unused + k_ESteamInputType_AndroidController, // Unused + k_ESteamInputType_SwitchJoyConPair, // Unused + k_ESteamInputType_SwitchJoyConSingle, // Unused + k_ESteamInputType_SwitchProController, + k_ESteamInputType_MobileTouch, // Steam Link App On-screen Virtual Controller + k_ESteamInputType_PS3Controller, // Currently uses PS4 Origins + k_ESteamInputType_PS5Controller, // Added in SDK 151 + k_ESteamInputType_SteamDeckController, // Added in SDK 153 + k_ESteamInputType_Count, + k_ESteamInputType_MaximumPossibleValue = 255, +}; + +// Individual values are used by the GetSessionInputConfigurationSettings bitmask +enum ESteamInputConfigurationEnableType +{ + k_ESteamInputConfigurationEnableType_None = 0x0000, + k_ESteamInputConfigurationEnableType_Playstation = 0x0001, + k_ESteamInputConfigurationEnableType_Xbox = 0x0002, + k_ESteamInputConfigurationEnableType_Generic = 0x0004, + k_ESteamInputConfigurationEnableType_Switch = 0x0008, +}; + +// These values are passed into SetLEDColor +enum ESteamInputLEDFlag +{ + k_ESteamInputLEDFlag_SetColor, + // Restore the LED color to the user's preference setting as set in the controller personalization menu. + // This also happens automatically on exit of your game. + k_ESteamInputLEDFlag_RestoreUserDefault +}; + +// These values are passed into GetGlyphPNGForActionOrigin +enum ESteamInputGlyphSize +{ + k_ESteamInputGlyphSize_Small, // 32x32 pixels + k_ESteamInputGlyphSize_Medium, // 128x128 pixels + k_ESteamInputGlyphSize_Large, // 256x256 pixels + k_ESteamInputGlyphSize_Count, +}; + +enum ESteamInputGlyphStyle +{ + // Base-styles - cannot mix + ESteamInputGlyphStyle_Knockout = 0x0, // Face buttons will have colored labels/outlines on a knocked out background + // Rest of inputs will have white detail/borders on a knocked out background + ESteamInputGlyphStyle_Light = 0x1, // Black detail/borders on a white background + ESteamInputGlyphStyle_Dark = 0x2, // White detail/borders on a black background + + // Modifiers + // Default ABXY/PS equivalent glyphs have a solid fill w/ color matching the physical buttons on the device + ESteamInputGlyphStyle_NeutralColorABXY = 0x10, // ABXY Buttons will match the base style color instead of their normal associated color + ESteamInputGlyphStyle_SolidABXY = 0x20, // ABXY Buttons will have a solid fill +}; + +enum ESteamInputActionEventType +{ + ESteamInputActionEventType_DigitalAction, + ESteamInputActionEventType_AnalogAction, +}; + +// InputHandle_t is used to refer to a specific controller. +// This handle will consistently identify a controller, even if it is disconnected and re-connected +typedef uint64 InputHandle_t; + +// These handles are used to refer to a specific in-game action or action set +// All action handles should be queried during initialization for performance reasons +typedef uint64 InputActionSetHandle_t; +typedef uint64 InputDigitalActionHandle_t; +typedef uint64 InputAnalogActionHandle_t; + +#pragma pack( push, 1 ) + +struct InputAnalogActionData_t +{ + // Type of data coming from this action, this will match what got specified in the action set + EInputSourceMode eMode; + + // The current state of this action; will be delta updates for mouse actions + float x, y; + + // Whether or not this action is currently available to be bound in the active action set + bool bActive; +}; + +struct InputDigitalActionData_t +{ + // The current state of this action; will be true if currently pressed + bool bState; + + // Whether or not this action is currently available to be bound in the active action set + bool bActive; +}; + +struct InputMotionData_t +{ + // Sensor-fused absolute rotation; will drift in heading toward average + float rotQuatX; + float rotQuatY; + float rotQuatZ; + float rotQuatW; + + // Positional acceleration + float posAccelX; + float posAccelY; + float posAccelZ; + + // Angular velocity + float rotVelX; + float rotVelY; + float rotVelZ; +}; + +//----------------------------------------------------------------------------- +// Purpose: when callbacks are enabled this fires each time a controller action +// state changes +//----------------------------------------------------------------------------- +struct SteamInputActionEvent_t +{ + InputHandle_t controllerHandle; + ESteamInputActionEventType eEventType; + struct AnalogAction_t { + InputAnalogActionHandle_t actionHandle; + InputAnalogActionData_t analogActionData; + }; + struct DigitalAction_t { + InputDigitalActionHandle_t actionHandle; + InputDigitalActionData_t digitalActionData; + }; + union { + AnalogAction_t analogAction; + DigitalAction_t digitalAction; + }; +}; + +//----------------------------------------------------------------------------- +// Forward declaration for ScePadTriggerEffectParam, defined in isteamdualsense.h +//----------------------------------------------------------------------------- +struct ScePadTriggerEffectParam; + +#pragma pack( pop ) + +typedef void ( *SteamInputActionEventCallbackPointer )( SteamInputActionEvent_t * ); + +//----------------------------------------------------------------------------- +// Purpose: Steam Input API +//----------------------------------------------------------------------------- +class ISteamInput +{ +public: + + // Init and Shutdown must be called when starting/ending use of this interface. + // if bExplicitlyCallRunFrame is called then you will need to manually call RunFrame + // each frame, otherwise Steam Input will updated when SteamAPI_RunCallbacks() is called + virtual bool Init( bool bExplicitlyCallRunFrame ) = 0; + virtual bool Shutdown() = 0; + + // Set the absolute path to the Input Action Manifest file containing the in-game actions + // and file paths to the official configurations. Used in games that bundle Steam Input + // configurations inside of the game depot instead of using the Steam Workshop + virtual bool SetInputActionManifestFilePath( const char *pchInputActionManifestAbsolutePath ) = 0; + + // Synchronize API state with the latest Steam Input action data available. This + // is performed automatically by SteamAPI_RunCallbacks, but for the absolute lowest + // possible latency, you call this directly before reading controller state. + // Note: This must be called from somewhere before GetConnectedControllers will + // return any handles + virtual void RunFrame( bool bReservedValue = true ) = 0; + + // Waits on an IPC event from Steam sent when there is new data to be fetched from + // the data drop. Returns true when data was recievied before the timeout expires. + // Useful for games with a dedicated input thread + virtual bool BWaitForData( bool bWaitForever, uint32 unTimeout ) = 0; + + // Returns true if new data has been received since the last time action data was accessed + // via GetDigitalActionData or GetAnalogActionData. The game will still need to call + // SteamInput()->RunFrame() or SteamAPI_RunCallbacks() before this to update the data stream + virtual bool BNewDataAvailable() = 0; + + // Enumerate currently connected Steam Input enabled devices - developers can opt in controller by type (ex: Xbox/Playstation/etc) via + // the Steam Input settings in the Steamworks site or users can opt-in in their controller settings in Steam. + // handlesOut should point to a STEAM_INPUT_MAX_COUNT sized array of InputHandle_t handles + // Returns the number of handles written to handlesOut + virtual int GetConnectedControllers( STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_COUNT, Receives list of connected controllers ) InputHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- + // CALLBACKS + //----------------------------------------------------------------------------- + + // Controller configuration loaded - these callbacks will always fire if you have + // a handler. Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + STEAM_CALL_BACK( SteamInputConfigurationLoaded_t ) + + // Enable SteamInputDeviceConnected_t and SteamInputDeviceDisconnected_t callbacks. + // Each controller that is already connected will generate a device connected + // callback when you enable them + virtual void EnableDeviceCallbacks() = 0; + + // Controller Connected - provides info about a single newly connected controller + // Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + STEAM_CALL_BACK( SteamInputDeviceConnected_t ) + + // Controller Disconnected - provides info about a single disconnected controller + // Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + STEAM_CALL_BACK( SteamInputDeviceDisconnected_t ) + + // Controllers using Gamepad emulation (XInput, DirectInput, etc) will be seated in the order that + // input is sent by the device. This callback will fire on first input for each device and when the + // a user has manually changed the order via the Steam overlay. This also has the device type info + // so that you can change out glyph sets without making additional API calls + STEAM_CALL_BACK( SteamInputGamepadSlotChange_t ) + + // Enable SteamInputActionEvent_t callbacks. Directly calls your callback function + // for lower latency than standard Steam callbacks. Supports one callback at a time. + // Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks + virtual void EnableActionEventCallbacks( SteamInputActionEventCallbackPointer pCallback ) = 0; + + //----------------------------------------------------------------------------- + // ACTION SETS + //----------------------------------------------------------------------------- + + // Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls. + virtual InputActionSetHandle_t GetActionSetHandle( const char *pszActionSetName ) = 0; + + // Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + // This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + // your state loops, instead of trying to place it in all of your state transitions. + virtual void ActivateActionSet( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle ) = 0; + virtual InputActionSetHandle_t GetCurrentActionSet( InputHandle_t inputHandle ) = 0; + + // ACTION SET LAYERS + virtual void ActivateActionSetLayer( InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateActionSetLayer( InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ) = 0; + virtual void DeactivateAllActionSetLayers( InputHandle_t inputHandle ) = 0; + + // Enumerate currently active layers. + // handlesOut should point to a STEAM_INPUT_MAX_ACTIVE_LAYERS sized array of InputActionSetHandle_t handles + // Returns the number of handles written to handlesOut + virtual int GetActiveActionSetLayers( InputHandle_t inputHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ACTIVE_LAYERS, Receives list of active layers ) InputActionSetHandle_t *handlesOut ) = 0; + + //----------------------------------------------------------------------------- + // ACTIONS + //----------------------------------------------------------------------------- + + // Lookup the handle for a digital action. Best to do this once on startup, and store the handles for all future API calls. + virtual InputDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName ) = 0; + + // Returns the current state of the supplied digital game action + virtual InputDigitalActionData_t GetDigitalActionData( InputHandle_t inputHandle, InputDigitalActionHandle_t digitalActionHandle ) = 0; + + // Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. + // originsOut should point to a STEAM_INPUT_MAX_ORIGINS sized array of EInputActionOrigin handles. The EInputActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetDigitalActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ORIGINS, Receives list of action origins ) EInputActionOrigin *originsOut ) = 0; + + // Returns a localized string (from Steam's language setting) for the user-facing action name corresponding to the specified handle + virtual const char *GetStringForDigitalActionName( InputDigitalActionHandle_t eActionHandle ) = 0; + + // Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls. + virtual InputAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName ) = 0; + + // Returns the current state of these supplied analog game action + virtual InputAnalogActionData_t GetAnalogActionData( InputHandle_t inputHandle, InputAnalogActionHandle_t analogActionHandle ) = 0; + + // Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. + // originsOut should point to a STEAM_INPUT_MAX_ORIGINS sized array of EInputActionOrigin handles. The EInputActionOrigin enum will get extended as support for new controller controllers gets added to + // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. + virtual int GetAnalogActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ORIGINS, Receives list of action origins ) EInputActionOrigin *originsOut ) = 0; + + // Get a local path to a PNG file for the provided origin's glyph. + virtual const char *GetGlyphPNGForActionOrigin( EInputActionOrigin eOrigin, ESteamInputGlyphSize eSize, uint32 unFlags ) = 0; + + // Get a local path to a SVG file for the provided origin's glyph. + virtual const char *GetGlyphSVGForActionOrigin( EInputActionOrigin eOrigin, uint32 unFlags ) = 0; + + // Get a local path to an older, Big Picture Mode-style PNG file for a particular origin + virtual const char *GetGlyphForActionOrigin_Legacy( EInputActionOrigin eOrigin ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified origin. + virtual const char *GetStringForActionOrigin( EInputActionOrigin eOrigin ) = 0; + + // Returns a localized string (from Steam's language setting) for the user-facing action name corresponding to the specified handle + virtual const char *GetStringForAnalogActionName( InputAnalogActionHandle_t eActionHandle ) = 0; + + // Stop analog momentum for the action if it is a mouse action in trackball mode + virtual void StopAnalogActionMomentum( InputHandle_t inputHandle, InputAnalogActionHandle_t eAction ) = 0; + + // Returns raw motion data from the specified device + virtual InputMotionData_t GetMotionData( InputHandle_t inputHandle ) = 0; + + //----------------------------------------------------------------------------- + // OUTPUTS + //----------------------------------------------------------------------------- + + // Trigger a vibration event on supported controllers - Steam will translate these commands into haptic pulses for Steam Controllers + virtual void TriggerVibration( InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ) = 0; + + // Trigger a vibration event on supported controllers including Xbox trigger impulse rumble - Steam will translate these commands into haptic pulses for Steam Controllers + virtual void TriggerVibrationExtended( InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed, unsigned short usLeftTriggerSpeed, unsigned short usRightTriggerSpeed ) = 0; + + // Send a haptic pulse, works on Steam Deck and Steam Controller devices + virtual void TriggerSimpleHapticEvent( InputHandle_t inputHandle, EControllerHapticLocation eHapticLocation, uint8 nIntensity, char nGainDB, uint8 nOtherIntensity, char nOtherGainDB ) = 0; + + // Set the controller LED color on supported controllers. nFlags is a bitmask of values from ESteamInputLEDFlag - 0 will default to setting a color. Steam will handle + // the behavior on exit of your program so you don't need to try restore the default as you are shutting down + virtual void SetLEDColor( InputHandle_t inputHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ) = 0; + + // Trigger a haptic pulse on a Steam Controller - if you are approximating rumble you may want to use TriggerVibration instead. + // Good uses for Haptic pulses include chimes, noises, or directional gameplay feedback (taking damage, footstep locations, etc). + virtual void Legacy_TriggerHapticPulse( InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ) = 0; + + // Trigger a haptic pulse with a duty cycle of usDurationMicroSec / usOffMicroSec, unRepeat times. If you are approximating rumble you may want to use TriggerVibration instead. + // nFlags is currently unused and reserved for future use. + virtual void Legacy_TriggerRepeatedHapticPulse( InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ) = 0; + + //----------------------------------------------------------------------------- + // Utility functions available without using the rest of Steam Input API + //----------------------------------------------------------------------------- + + // Invokes the Steam overlay and brings up the binding screen if the user is using Big Picture Mode + // If the user is not in Big Picture Mode it will open up the binding in a new window + virtual bool ShowBindingPanel( InputHandle_t inputHandle ) = 0; + + // Returns the input type for a particular handle - unlike EInputActionOrigin which update with Steam and may return unrecognized values + // ESteamInputType will remain static and only return valid values from your SDK version + virtual ESteamInputType GetInputTypeForHandle( InputHandle_t inputHandle ) = 0; + + // Returns the associated controller handle for the specified emulated gamepad - can be used with the above 2 functions + // to identify controllers presented to your game over Xinput. Returns 0 if the Xinput index isn't associated with Steam Input + virtual InputHandle_t GetControllerForGamepadIndex( int nIndex ) = 0; + + // Returns the associated gamepad index for the specified controller, if emulating a gamepad or -1 if not associated with an Xinput index + virtual int GetGamepadIndexForController( InputHandle_t ulinputHandle ) = 0; + + // Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. + virtual const char *GetStringForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get a local path to art for on-screen glyph for a particular Xbox controller origin + virtual const char *GetGlyphForXboxOrigin( EXboxOrigin eOrigin ) = 0; + + // Get the equivalent ActionOrigin for a given Xbox controller origin this can be chained with GetGlyphForActionOrigin to provide future proof glyphs for + // non-Steam Input API action games. Note - this only translates the buttons directly and doesn't take into account any remapping a user has made in their configuration + virtual EInputActionOrigin GetActionOriginFromXboxOrigin( InputHandle_t inputHandle, EXboxOrigin eOrigin ) = 0; + + // Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EInputActionOrigin_None + // When a new input type is added you will be able to pass in k_ESteamInputType_Unknown and the closest origin that your version of the SDK recognized will be returned + // ex: if a Playstation 5 controller was released this function would return Playstation 4 origins. + virtual EInputActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin ) = 0; + + // Get the binding revision for a given device. Returns false if the handle was not valid or if a mapping is not yet loaded for the device + virtual bool GetDeviceBindingRevision( InputHandle_t inputHandle, int *pMajor, int *pMinor ) = 0; + + // Get the Steam Remote Play session ID associated with a device, or 0 if there is no session associated with it + // See isteamremoteplay.h for more information on Steam Remote Play sessions + virtual uint32 GetRemotePlaySessionID( InputHandle_t inputHandle ) = 0; + + // Get a bitmask of the Steam Input Configuration types opted in for the current session. Returns ESteamInputConfigurationEnableType values. + // Note: user can override the settings from the Steamworks Partner site so the returned values may not exactly match your default configuration + virtual uint16 GetSessionInputConfigurationSettings() = 0; + + // Set the trigger effect for a DualSense controller + virtual void SetDualSenseTriggerEffect( InputHandle_t inputHandle, const ScePadTriggerEffectParam *pParam ) = 0; +}; + +#define STEAMINPUT_INTERFACE_VERSION "SteamInput006" + +// Global interface accessor +inline ISteamInput *SteamInput(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamInput *, SteamInput, STEAMINPUT_INTERFACE_VERSION ); + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +//----------------------------------------------------------------------------- +// Purpose: called when a new controller has been connected, will fire once +// per controller if multiple new controllers connect in the same frame +//----------------------------------------------------------------------------- +struct SteamInputDeviceConnected_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 1 }; + InputHandle_t m_ulConnectedDeviceHandle; // Handle for device +}; + +//----------------------------------------------------------------------------- +// Purpose: called when a new controller has been connected, will fire once +// per controller if multiple new controllers connect in the same frame +//----------------------------------------------------------------------------- +struct SteamInputDeviceDisconnected_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 2 }; + InputHandle_t m_ulDisconnectedDeviceHandle; // Handle for device +}; + +//----------------------------------------------------------------------------- +// Purpose: called when a controller configuration has been loaded, will fire once +// per controller per focus change for Steam Input enabled controllers +//----------------------------------------------------------------------------- +struct SteamInputConfigurationLoaded_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 3 }; + AppId_t m_unAppID; + InputHandle_t m_ulDeviceHandle; // Handle for device + CSteamID m_ulMappingCreator; // May differ from local user when using + // an unmodified community or official config + uint32 m_unMajorRevision; // Binding revision from In-game Action File. + // Same value as queried by GetDeviceBindingRevision + uint32 m_unMinorRevision; + bool m_bUsesSteamInputAPI; // Does the configuration contain any Analog/Digital actions? + bool m_bUsesGamepadAPI; // Does the configuration contain any Xinput bindings? +}; + +//----------------------------------------------------------------------------- +// Purpose: called when controller gamepad slots change - on Linux/macOS these +// slots are shared for all running apps. +//----------------------------------------------------------------------------- +struct SteamInputGamepadSlotChange_t +{ + enum { k_iCallback = k_iSteamControllerCallbacks + 4 }; + AppId_t m_unAppID; + InputHandle_t m_ulDeviceHandle; // Handle for device + ESteamInputType m_eDeviceType; // Type of device + int m_nOldGamepadSlot; // Previous GamepadSlot - can be -1 controller doesn't uses gamepad bindings + int m_nNewGamepadSlot; // New Gamepad Slot - can be -1 controller doesn't uses gamepad bindings +}; + +#pragma pack( pop ) + +#endif // ISTEAMINPUT_H diff --git a/lib/windows/include/steam/isteaminventory.h b/lib/windows/include/steam/isteaminventory.h index 5d236a5..7066592 100644 --- a/lib/windows/include/steam/isteaminventory.h +++ b/lib/windows/include/steam/isteaminventory.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -18,7 +18,7 @@ #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif @@ -61,6 +61,8 @@ typedef int32 SteamInventoryResult_t; static const SteamInventoryResult_t k_SteamInventoryResultInvalid = -1; +typedef uint64 SteamInventoryUpdateHandle_t; +const SteamInventoryUpdateHandle_t k_SteamInventoryUpdateHandleInvalid = 0xffffffffffffffffull; //----------------------------------------------------------------------------- // Purpose: Steam Inventory query and manipulation API @@ -84,29 +86,41 @@ public: // k_EResultServiceUnavailable - ERROR: service temporarily down, you may retry later // k_EResultLimitExceeded - ERROR: operation would exceed per-user inventory limits // k_EResultFail - ERROR: unknown / generic error - METHOD_DESC(Find out the status of an asynchronous inventory result handle.) virtual EResult GetResultStatus( SteamInventoryResult_t resultHandle ) = 0; // Copies the contents of a result set into a flat array. The specific // contents of the result set depend on which query which was used. - METHOD_DESC(Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used.) virtual bool GetResultItems( SteamInventoryResult_t resultHandle, - OUT_ARRAY_COUNT( punOutItemsArraySize,Output array) SteamItemDetails_t *pOutItemsArray, + STEAM_OUT_ARRAY_COUNT( punOutItemsArraySize,Output array) SteamItemDetails_t *pOutItemsArray, uint32 *punOutItemsArraySize ) = 0; + // In combination with GetResultItems, you can use GetResultItemProperty to retrieve + // dynamic string properties for a given item returned in the result set. + // + // Property names are always composed of ASCII letters, numbers, and/or underscores. + // + // Pass a NULL pointer for pchPropertyName to get a comma - separated list of available + // property names. + // + // If pchValueBuffer is NULL, *punValueBufferSize will contain the + // suggested buffer size. Otherwise it will be the number of bytes actually copied + // to pchValueBuffer. If the results do not fit in the given buffer, partial + // results may be copied. + virtual bool GetResultItemProperty( SteamInventoryResult_t resultHandle, + uint32 unItemIndex, + const char *pchPropertyName, + STEAM_OUT_STRING_COUNT( punValueBufferSizeOut ) char *pchValueBuffer, uint32 *punValueBufferSizeOut ) = 0; + // Returns the server time at which the result was generated. Compare against // the value of IClientUtils::GetServerRealTime() to determine age. - METHOD_DESC(Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age.) virtual uint32 GetResultTimestamp( SteamInventoryResult_t resultHandle ) = 0; // Returns true if the result belongs to the target steam ID, false if the // result does not. This is important when using DeserializeResult, to verify // that a remote player is not pretending to have a different user's inventory. - METHOD_DESC(Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory.) virtual bool CheckResultSteamID( SteamInventoryResult_t resultHandle, CSteamID steamIDExpected ) = 0; // Destroys a result handle and frees all associated memory. - METHOD_DESC(Destroys a result handle and frees all associated memory.) virtual void DestroyResult( SteamInventoryResult_t resultHandle ) = 0; @@ -120,7 +134,6 @@ public: // cached results if called too frequently. It is suggested that you call // this function only when you are about to display the user's full inventory, // or if you expect that the inventory may have changed. - METHOD_DESC(Captures the entire state of the current users Steam inventory.) virtual bool GetAllItems( SteamInventoryResult_t *pResultHandle ) = 0; @@ -131,8 +144,7 @@ public: // For example, you could call GetItemsByID with the IDs of the user's // currently equipped cosmetic items and serialize this to a buffer, and // then transmit this buffer to other players upon joining a game. - METHOD_DESC(Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs.) - virtual bool GetItemsByID( SteamInventoryResult_t *pResultHandle, ARRAY_COUNT( unCountInstanceIDs ) const SteamItemInstanceID_t *pInstanceIDs, uint32 unCountInstanceIDs ) = 0; + virtual bool GetItemsByID( SteamInventoryResult_t *pResultHandle, STEAM_ARRAY_COUNT( unCountInstanceIDs ) const SteamItemInstanceID_t *pInstanceIDs, uint32 unCountInstanceIDs ) = 0; // RESULT SERIALIZATION AND AUTHENTICATION @@ -150,7 +162,7 @@ public: // recommended to use "GetItemsByID" first to create a minimal result set. // Results have a built-in timestamp which will be considered "expired" after // an hour has elapsed. See DeserializeResult for expiration handling. - virtual bool SerializeResult( SteamInventoryResult_t resultHandle, OUT_BUFFER_COUNT(punOutBufferSize) void *pOutBuffer, uint32 *punOutBufferSize ) = 0; + virtual bool SerializeResult( SteamInventoryResult_t resultHandle, STEAM_OUT_BUFFER_COUNT(punOutBufferSize) void *pOutBuffer, uint32 *punOutBufferSize ) = 0; // Deserializes a result set and verifies the signature bytes. Returns false // if bRequireFullOnlineVerify is set but Steam is running in Offline mode. @@ -168,26 +180,24 @@ public: // ISteamUtils::GetServerRealTime() to determine how old the data is. You could // simply ignore the "expired" result code and continue as normal, or you // could challenge the player with expired data to send an updated result set. - virtual bool DeserializeResult( SteamInventoryResult_t *pOutResultHandle, BUFFER_COUNT(punOutBufferSize) const void *pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE = false ) = 0; + virtual bool DeserializeResult( SteamInventoryResult_t *pOutResultHandle, STEAM_BUFFER_COUNT(punOutBufferSize) const void *pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE = false ) = 0; // INVENTORY ASYNC MODIFICATION // // GenerateItems() creates one or more items and then generates a SteamInventoryCallback_t - // notification with a matching nCallbackContext parameter. This API is insecure, and could - // be abused by hacked clients. It is, however, very useful as a development cheat or as - // a means of prototyping item-related features for your game. The use of GenerateItems can - // be restricted to certain item definitions or fully blocked via the Steamworks website. + // notification with a matching nCallbackContext parameter. This API is only intended + // for prototyping - it is only usable by Steam accounts that belong to the publisher group + // for your game. // If punArrayQuantity is not NULL, it should be the same length as pArrayItems and should // describe the quantity of each item to generate. - virtual bool GenerateItems( SteamInventoryResult_t *pResultHandle, ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, ARRAY_COUNT(unArrayLength) const uint32 *punArrayQuantity, uint32 unArrayLength ) = 0; + virtual bool GenerateItems( SteamInventoryResult_t *pResultHandle, STEAM_ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, STEAM_ARRAY_COUNT(unArrayLength) const uint32 *punArrayQuantity, uint32 unArrayLength ) = 0; // GrantPromoItems() checks the list of promotional items for which the user may be eligible // and grants the items (one time only). On success, the result set will include items which // were granted, if any. If no items were granted because the user isn't eligible for any // promotions, this is still considered a success. - METHOD_DESC(GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only).) virtual bool GrantPromoItems( SteamInventoryResult_t *pResultHandle ) = 0; // AddPromoItem() / AddPromoItems() are restricted versions of GrantPromoItems(). Instead of @@ -195,29 +205,24 @@ public: // definition or set of item definitions. This can be useful if your game has custom UI for // showing a specific promo item to the user. virtual bool AddPromoItem( SteamInventoryResult_t *pResultHandle, SteamItemDef_t itemDef ) = 0; - virtual bool AddPromoItems( SteamInventoryResult_t *pResultHandle, ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, uint32 unArrayLength ) = 0; + virtual bool AddPromoItems( SteamInventoryResult_t *pResultHandle, STEAM_ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, uint32 unArrayLength ) = 0; // ConsumeItem() removes items from the inventory, permanently. They cannot be recovered. // Not for the faint of heart - if your game implements item removal at all, a high-friction - // UI confirmation process is highly recommended. Similar to GenerateItems, punArrayQuantity - // can be NULL or else an array of the same length as pArrayItems which describe the quantity - // of each item to destroy. ConsumeItem can be restricted to certain item definitions or - // fully blocked via the Steamworks website to minimize support/abuse issues such as the - // clasic "my brother borrowed my laptop and deleted all of my rare items". - METHOD_DESC(ConsumeItem() removes items from the inventory permanently.) + // UI confirmation process is highly recommended. virtual bool ConsumeItem( SteamInventoryResult_t *pResultHandle, SteamItemInstanceID_t itemConsume, uint32 unQuantity ) = 0; - // ExchangeItems() is an atomic combination of GenerateItems and DestroyItems. It can be - // used to implement crafting recipes or transmutations, or items which unpack themselves - // into other items. Like GenerateItems, this is a flexible and dangerous API which is - // meant for rapid prototyping. You can configure restrictions on ExchangeItems via the - // Steamworks website, such as limiting it to a whitelist of input/output combinations - // corresponding to recipes. - // (Note: although GenerateItems may be hard or impossible to use securely in your game, - // ExchangeItems is perfectly reasonable to use once the whitelists are set accordingly.) + // ExchangeItems() is an atomic combination of item generation and consumption. + // It can be used to implement crafting recipes or transmutations, or items which unpack + // themselves into other items (e.g., a chest). + // Exchange recipes are defined in the ItemDef, and explicitly list the required item + // types and resulting generated type. + // Exchange recipes are evaluated atomically by the Inventory Service; if the supplied + // components do not match the recipe, or do not contain sufficient quantity, the + // exchange will fail. virtual bool ExchangeItems( SteamInventoryResult_t *pResultHandle, - ARRAY_COUNT(unArrayGenerateLength) const SteamItemDef_t *pArrayGenerate, ARRAY_COUNT(unArrayGenerateLength) const uint32 *punArrayGenerateQuantity, uint32 unArrayGenerateLength, - ARRAY_COUNT(unArrayDestroyLength) const SteamItemInstanceID_t *pArrayDestroy, ARRAY_COUNT(unArrayDestroyLength) const uint32 *punArrayDestroyQuantity, uint32 unArrayDestroyLength ) = 0; + STEAM_ARRAY_COUNT(unArrayGenerateLength) const SteamItemDef_t *pArrayGenerate, STEAM_ARRAY_COUNT(unArrayGenerateLength) const uint32 *punArrayGenerateQuantity, uint32 unArrayGenerateLength, + STEAM_ARRAY_COUNT(unArrayDestroyLength) const SteamItemInstanceID_t *pArrayDestroy, STEAM_ARRAY_COUNT(unArrayDestroyLength) const uint32 *punArrayDestroyQuantity, uint32 unArrayDestroyLength ) = 0; // TransferItemQuantity() is intended for use with items which are "stackable" (can have @@ -230,21 +235,7 @@ public: // TIMED DROPS AND PLAYTIME CREDIT // - // Applications which use timed-drop mechanics should call SendItemDropHeartbeat() when - // active gameplay begins, and at least once every two minutes afterwards. The backend - // performs its own time calculations, so the precise timing of the heartbeat is not - // critical as long as you send at least one heartbeat every two minutes. Calling the - // function more often than that is not harmful, it will simply have no effect. Note: - // players may be able to spoof this message by hacking their client, so you should not - // attempt to use this as a mechanism to restrict playtime credits. It is simply meant - // to distinguish between being in any kind of gameplay situation vs the main menu or - // a pre-game launcher window. (If you are stingy with handing out playtime credit, it - // will only encourage players to run bots or use mouse/kb event simulators.) - // - // Playtime credit accumulation can be capped on a daily or weekly basis through your - // Steamworks configuration. - // - METHOD_DESC(Applications which use timed-drop mechanics should call SendItemDropHeartbeat() when active gameplay begins and at least once every two minutes afterwards.) + // Deprecated. Calling this method is not required for proper playtime accounting. virtual void SendItemDropHeartbeat() = 0; // Playtime credit must be consumed and turned into item drops by your game. Only item @@ -253,26 +244,16 @@ public: // Your game should call TriggerItemDrop at an appropriate time for the user to receive // new items, such as between rounds or while the player is dead. Note that players who // hack their clients could modify the value of "dropListDefinition", so do not use it - // to directly control rarity. It is primarily useful during testing and development, - // where you may wish to perform experiments with different types of drops. - METHOD_DESC(Playtime credit must be consumed and turned into item drops by your game.) + // to directly control rarity. + // See your Steamworks configuration to set playtime drop rates for individual itemdefs. + // The client library will suppress too-frequent calls to this method. virtual bool TriggerItemDrop( SteamInventoryResult_t *pResultHandle, SteamItemDef_t dropListDefinition ) = 0; - // IN-GAME TRADING - // - // TradeItems() implements limited in-game trading of items, if you prefer not to use - // the overlay or an in-game web browser to perform Steam Trading through the website. - // You should implement a UI where both players can see and agree to a trade, and then - // each client should call TradeItems simultaneously (+/- 5 seconds) with matching - // (but reversed) parameters. The result is the same as if both players performed a - // Steam Trading transaction through the web. Each player will get an inventory result - // confirming the removal or quantity changes of the items given away, and the new - // item instance id numbers and quantities of the received items. - // (Note: new item instance IDs are generated whenever an item changes ownership.) + // Deprecated. This method is not supported. virtual bool TradeItems( SteamInventoryResult_t *pResultHandle, CSteamID steamIDTradePartner, - ARRAY_COUNT(nArrayGiveLength) const SteamItemInstanceID_t *pArrayGive, ARRAY_COUNT(nArrayGiveLength) const uint32 *pArrayGiveQuantity, uint32 nArrayGiveLength, - ARRAY_COUNT(nArrayGetLength) const SteamItemInstanceID_t *pArrayGet, ARRAY_COUNT(nArrayGetLength) const uint32 *pArrayGetQuantity, uint32 nArrayGetLength ) = 0; + STEAM_ARRAY_COUNT(nArrayGiveLength) const SteamItemInstanceID_t *pArrayGive, STEAM_ARRAY_COUNT(nArrayGiveLength) const uint32 *pArrayGiveQuantity, uint32 nArrayGiveLength, + STEAM_ARRAY_COUNT(nArrayGetLength) const SteamItemInstanceID_t *pArrayGet, STEAM_ARRAY_COUNT(nArrayGetLength) const uint32 *pArrayGetQuantity, uint32 nArrayGetLength ) = 0; // ITEM DEFINITIONS @@ -289,7 +270,6 @@ public: // Every time new item definitions are available (eg, from the dynamic addition of new // item types while players are still in-game), a SteamInventoryDefinitionUpdate_t // callback will be fired. - METHOD_DESC(LoadItemDefinitions triggers the automatic load and refresh of item definitions.) virtual bool LoadItemDefinitions() = 0; // GetItemDefinitionIDs returns the set of all defined item definition IDs (which are @@ -298,8 +278,8 @@ public: // contain the total size necessary for a subsequent call. Otherwise, the call will // return false if and only if there is not enough space in the output array. virtual bool GetItemDefinitionIDs( - OUT_ARRAY_COUNT(punItemDefIDsArraySize,List of item definition IDs) SteamItemDef_t *pItemDefIDs, - DESC(Size of array is passed in and actual size used is returned in this param) uint32 *punItemDefIDsArraySize ) = 0; + STEAM_OUT_ARRAY_COUNT(punItemDefIDsArraySize,List of item definition IDs) SteamItemDef_t *pItemDefIDs, + STEAM_DESC(Size of array is passed in and actual size used is returned in this param) uint32 *punItemDefIDsArraySize ) = 0; // GetItemDefinitionProperty returns a string property from a given item definition. // Note that some properties (for example, "name") may be localized and will depend @@ -311,18 +291,88 @@ public: // to pchValueBuffer. If the results do not fit in the given buffer, partial // results may be copied. virtual bool GetItemDefinitionProperty( SteamItemDef_t iDefinition, const char *pchPropertyName, - OUT_STRING_COUNT(punValueBufferSizeOut) char *pchValueBuffer, uint32 *punValueBufferSizeOut ) = 0; + STEAM_OUT_STRING_COUNT(punValueBufferSizeOut) char *pchValueBuffer, uint32 *punValueBufferSizeOut ) = 0; + + // Request the list of "eligible" promo items that can be manually granted to the given + // user. These are promo items of type "manual" that won't be granted automatically. + // An example usage of this is an item that becomes available every week. + STEAM_CALL_RESULT( SteamInventoryEligiblePromoItemDefIDs_t ) + virtual SteamAPICall_t RequestEligiblePromoItemDefinitionsIDs( CSteamID steamID ) = 0; + + // After handling a SteamInventoryEligiblePromoItemDefIDs_t call result, use this + // function to pull out the list of item definition ids that the user can be + // manually granted via the AddPromoItems() call. + virtual bool GetEligiblePromoItemDefinitionIDs( + CSteamID steamID, + STEAM_OUT_ARRAY_COUNT(punItemDefIDsArraySize,List of item definition IDs) SteamItemDef_t *pItemDefIDs, + STEAM_DESC(Size of array is passed in and actual size used is returned in this param) uint32 *punItemDefIDsArraySize ) = 0; + + // Starts the purchase process for the given item definitions. The callback SteamInventoryStartPurchaseResult_t + // will be posted if Steam was able to initialize the transaction. + // + // Once the purchase has been authorized and completed by the user, the callback SteamInventoryResultReady_t + // will be posted. + STEAM_CALL_RESULT( SteamInventoryStartPurchaseResult_t ) + virtual SteamAPICall_t StartPurchase( STEAM_ARRAY_COUNT(unArrayLength) const SteamItemDef_t *pArrayItemDefs, STEAM_ARRAY_COUNT(unArrayLength) const uint32 *punArrayQuantity, uint32 unArrayLength ) = 0; + + // Request current prices for all applicable item definitions + STEAM_CALL_RESULT( SteamInventoryRequestPricesResult_t ) + virtual SteamAPICall_t RequestPrices() = 0; + + // Returns the number of items with prices. Need to call RequestPrices() first. + virtual uint32 GetNumItemsWithPrices() = 0; + + // Returns item definition ids and their prices in the user's local currency. + // Need to call RequestPrices() first. + virtual bool GetItemsWithPrices( STEAM_ARRAY_COUNT(unArrayLength) STEAM_OUT_ARRAY_COUNT(pArrayItemDefs, Items with prices) SteamItemDef_t *pArrayItemDefs, + STEAM_ARRAY_COUNT(unArrayLength) STEAM_OUT_ARRAY_COUNT(pPrices, List of prices for the given item defs) uint64 *pCurrentPrices, + STEAM_ARRAY_COUNT(unArrayLength) STEAM_OUT_ARRAY_COUNT(pPrices, List of prices for the given item defs) uint64 *pBasePrices, + uint32 unArrayLength ) = 0; + + // Retrieves the price for the item definition id + // Returns false if there is no price stored for the item definition. + virtual bool GetItemPrice( SteamItemDef_t iDefinition, uint64 *pCurrentPrice, uint64 *pBasePrice ) = 0; + + // Create a request to update properties on items + virtual SteamInventoryUpdateHandle_t StartUpdateProperties() = 0; + // Remove the property on the item + virtual bool RemoveProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName ) = 0; + // Accessor methods to set properties on items + + STEAM_FLAT_NAME( SetPropertyString ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, const char *pchPropertyValue ) = 0; + + STEAM_FLAT_NAME( SetPropertyBool ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, bool bValue ) = 0; + + STEAM_FLAT_NAME( SetPropertyInt64 ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, int64 nValue ) = 0; + + STEAM_FLAT_NAME( SetPropertyFloat ) + virtual bool SetProperty( SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char *pchPropertyName, float flValue ) = 0; + + // Submit the update request by handle + virtual bool SubmitUpdateProperties( SteamInventoryUpdateHandle_t handle, SteamInventoryResult_t * pResultHandle ) = 0; + + virtual bool InspectItem( SteamInventoryResult_t *pResultHandle, const char *pchItemToken ) = 0; }; -#define STEAMINVENTORY_INTERFACE_VERSION "STEAMINVENTORY_INTERFACE_V001" +#define STEAMINVENTORY_INTERFACE_VERSION "STEAMINVENTORY_INTERFACE_V003" +// Global interface accessor +inline ISteamInventory *SteamInventory(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamInventory *, SteamInventory, STEAMINVENTORY_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamInventory *SteamGameServerInventory(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamInventory *, SteamGameServerInventory, STEAMINVENTORY_INTERFACE_VERSION ); // SteamInventoryResultReady_t callbacks are fired whenever asynchronous // results transition from "Pending" to "OK" or an error state. There will // always be exactly one callback per handle. struct SteamInventoryResultReady_t { - enum { k_iCallback = k_iClientInventoryCallbacks + 0 }; + enum { k_iCallback = k_iSteamInventoryCallbacks + 0 }; SteamInventoryResult_t m_handle; EResult m_result; }; @@ -337,7 +387,7 @@ struct SteamInventoryResultReady_t // afterwards; this is an additional notification for your convenience. struct SteamInventoryFullUpdate_t { - enum { k_iCallback = k_iClientInventoryCallbacks + 1 }; + enum { k_iCallback = k_iSteamInventoryCallbacks + 1 }; SteamInventoryResult_t m_handle; }; @@ -348,7 +398,35 @@ struct SteamInventoryFullUpdate_t // a definition update in order to process results from the server. struct SteamInventoryDefinitionUpdate_t { - enum { k_iCallback = k_iClientInventoryCallbacks + 2 }; + enum { k_iCallback = k_iSteamInventoryCallbacks + 2 }; +}; + +// Returned +struct SteamInventoryEligiblePromoItemDefIDs_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 3 }; + EResult m_result; + CSteamID m_steamID; + int m_numEligiblePromoItemDefs; + bool m_bCachedData; // indicates that the data was retrieved from the cache and not the server +}; + +// Triggered from StartPurchase call +struct SteamInventoryStartPurchaseResult_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 4 }; + EResult m_result; + uint64 m_ulOrderID; + uint64 m_ulTransID; +}; + + +// Triggered from RequestPrices +struct SteamInventoryRequestPricesResult_t +{ + enum { k_iCallback = k_iSteamInventoryCallbacks + 5 }; + EResult m_result; + char m_rgchCurrency[4]; }; #pragma pack( pop ) diff --git a/lib/windows/include/steam/isteammasterserverupdater.h b/lib/windows/include/steam/isteammasterserverupdater.h deleted file mode 100644 index 4be0ca5..0000000 --- a/lib/windows/include/steam/isteammasterserverupdater.h +++ /dev/null @@ -1 +0,0 @@ -#error "This file isn't used any more" diff --git a/lib/windows/include/steam/isteammatchmaking.h b/lib/windows/include/steam/isteammatchmaking.h index 837d98b..12189c7 100644 --- a/lib/windows/include/steam/isteammatchmaking.h +++ b/lib/windows/include/steam/isteammatchmaking.h @@ -10,10 +10,8 @@ #pragma once #endif -#include "steamtypes.h" -#include "steamclientpublic.h" +#include "steam_api_common.h" #include "matchmakingtypes.h" -#include "isteamclient.h" #include "isteamfriends.h" // lobby type description @@ -25,6 +23,8 @@ enum ELobbyType k_ELobbyTypeInvisible = 3, // returned by search, but not visible to other friends // useful if you want a user in two lobbies, for example matching groups together // a user can be in only one regular lobby, and up to two invisible lobbies + k_ELobbyTypePrivateUnique = 4, // private, unique and does not delete when empty - only one of these may exist per unique keypair set + // can only create from webapi }; // lobby search filter tools @@ -103,7 +103,7 @@ public: } */ // - CALL_RESULT( LobbyMatchList_t ) + STEAM_CALL_RESULT( LobbyMatchList_t ) virtual SteamAPICall_t RequestLobbyList() = 0; // filters for lobbies // this needs to be called before RequestLobbyList() to take effect @@ -134,14 +134,14 @@ public: // this is an asynchronous request // results will be returned by LobbyCreated_t callback and call result; lobby is joined & ready to use at this point // a LobbyEnter_t callback will also be received (since the local user is joining their own lobby) - CALL_RESULT( LobbyCreated_t ) + STEAM_CALL_RESULT( LobbyCreated_t ) virtual SteamAPICall_t CreateLobby( ELobbyType eLobbyType, int cMaxMembers ) = 0; // Joins an existing lobby // this is an asynchronous request // results will be returned by LobbyEnter_t callback & call result, check m_EChatRoomEnterResponse to see if was successful // lobby metadata is available to use immediately on this call completing - CALL_RESULT( LobbyEnter_t ) + STEAM_CALL_RESULT( LobbyEnter_t ) virtual SteamAPICall_t JoinLobby( CSteamID steamIDLobby ) = 0; // Leave a lobby; this will take effect immediately on the client side @@ -204,7 +204,7 @@ public: // *pSteamIDUser is filled in with the CSteamID of the member // *pvData is filled in with the message itself // return value is the number of bytes written into the buffer - virtual int GetLobbyChatEntry( CSteamID steamIDLobby, int iChatID, OUT_STRUCT() CSteamID *pSteamIDUser, void *pvData, int cubData, EChatEntryType *peChatEntryType ) = 0; + virtual int GetLobbyChatEntry( CSteamID steamIDLobby, int iChatID, STEAM_OUT_STRUCT() CSteamID *pSteamIDUser, void *pvData, int cubData, EChatEntryType *peChatEntryType ) = 0; // Refreshes metadata for a lobby you're not necessarily in right now // you never do this for lobbies you're a member of, only if your @@ -220,7 +220,7 @@ public: // either the IP/Port or the steamID of the game server has to be valid, depending on how you want the clients to be able to connect virtual void SetLobbyGameServer( CSteamID steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, CSteamID steamIDGameServer ) = 0; // returns the details of a game server set in a lobby - returns false if there is no game server set, or that lobby doesn't exist - virtual bool GetLobbyGameServer( CSteamID steamIDLobby, uint32 *punGameServerIP, uint16 *punGameServerPort, OUT_STRUCT() CSteamID *psteamIDGameServer ) = 0; + virtual bool GetLobbyGameServer( CSteamID steamIDLobby, uint32 *punGameServerIP, uint16 *punGameServerPort, STEAM_OUT_STRUCT() CSteamID *psteamIDGameServer ) = 0; // set the limit on the # of users who can join the lobby virtual bool SetLobbyMemberLimit( CSteamID steamIDLobby, int cMaxMembers ) = 0; @@ -256,10 +256,12 @@ public: // after completion, the local user will no longer be the owner virtual void CheckForPSNGameBootInvite( unsigned int iGameBootAttributes ) = 0; #endif - CALL_BACK( LobbyChatUpdate_t ) }; #define STEAMMATCHMAKING_INTERFACE_VERSION "SteamMatchMaking009" +// Global interface accessor +inline ISteamMatchmaking *SteamMatchmaking(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMatchmaking *, SteamMatchmaking, STEAMMATCHMAKING_INTERFACE_VERSION ); //----------------------------------------------------------------------------- // Callback interfaces for server list functions (see ISteamMatchmakingServers below) @@ -391,12 +393,12 @@ public: // Request a new list of servers of a particular type. These calls each correspond to one of the EMatchMakingType values. // Each call allocates a new asynchronous request object. // Request object must be released by calling ReleaseRequest( hServerListRequest ) - virtual HServerListRequest RequestInternetServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestInternetServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; virtual HServerListRequest RequestLANServerList( AppId_t iApp, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; - virtual HServerListRequest RequestFriendsServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; - virtual HServerListRequest RequestFavoritesServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; - virtual HServerListRequest RequestHistoryServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; - virtual HServerListRequest RequestSpectatorServerList( AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestFriendsServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestFavoritesServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestHistoryServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; + virtual HServerListRequest RequestSpectatorServerList( AppId_t iApp, STEAM_ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse ) = 0; // Releases the asynchronous request object and cancels any pending query on it if there's a pending query in progress. // RefreshComplete callback is not posted when request is released. @@ -522,6 +524,10 @@ public: }; #define STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION "SteamMatchMakingServers002" +// Global interface accessor +inline ISteamMatchmakingServers *SteamMatchmakingServers(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMatchmakingServers *, SteamMatchmakingServers, STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION ); + // game server flags const uint32 k_unFavoriteFlagNone = 0x00; const uint32 k_unFavoriteFlagFavorite = 0x01; // this game favorite entry is for the favorites list @@ -545,16 +551,181 @@ enum EChatMemberStateChange #define BChatMemberStateChangeRemoved( rgfChatMemberStateChangeFlags ) ( rgfChatMemberStateChangeFlags & ( k_EChatMemberStateChangeDisconnected | k_EChatMemberStateChangeLeft | k_EChatMemberStateChangeKicked | k_EChatMemberStateChangeBanned ) ) + //----------------------------------------------------------------------------- -// Callbacks for ISteamMatchmaking (which go through the regular Steam callback registration system) +// Purpose: Functions for match making services for clients to get to favorites +// and to operate on game lobbies. +//----------------------------------------------------------------------------- +class ISteamGameSearch +{ +public: + // ============================================================================================= + // Game Player APIs + + // a keyname and a list of comma separated values: one of which is must be found in order for the match to qualify + // fails if a search is currently in progress + virtual EGameSearchErrorCode_t AddGameSearchParams( const char *pchKeyToFind, const char *pchValuesToFind ) = 0; + + // all players in lobby enter the queue and await a SearchForGameNotificationCallback_t callback. fails if another search is currently in progress + // if not the owner of the lobby or search already in progress this call fails + // periodic callbacks will be sent as queue time estimates change + virtual EGameSearchErrorCode_t SearchForGameWithLobby( CSteamID steamIDLobby, int nPlayerMin, int nPlayerMax ) = 0; + + // user enter the queue and await a SearchForGameNotificationCallback_t callback. fails if another search is currently in progress + // periodic callbacks will be sent as queue time estimates change + virtual EGameSearchErrorCode_t SearchForGameSolo( int nPlayerMin, int nPlayerMax ) = 0; + + // after receiving SearchForGameResultCallback_t, accept or decline the game + // multiple SearchForGameResultCallback_t will follow as players accept game until the host starts or cancels the game + virtual EGameSearchErrorCode_t AcceptGame() = 0; + virtual EGameSearchErrorCode_t DeclineGame() = 0; + + // after receiving GameStartedByHostCallback_t get connection details to server + virtual EGameSearchErrorCode_t RetrieveConnectionDetails( CSteamID steamIDHost, char *pchConnectionDetails, int cubConnectionDetails ) = 0; + + // leaves queue if still waiting + virtual EGameSearchErrorCode_t EndGameSearch() = 0; + + // ============================================================================================= + // Game Host APIs + + // a keyname and a list of comma separated values: all the values you allow + virtual EGameSearchErrorCode_t SetGameHostParams( const char *pchKey, const char *pchValue ) = 0; + + // set connection details for players once game is found so they can connect to this server + virtual EGameSearchErrorCode_t SetConnectionDetails( const char *pchConnectionDetails, int cubConnectionDetails ) = 0; + + // mark server as available for more players with nPlayerMin,nPlayerMax desired + // accept no lobbies with playercount greater than nMaxTeamSize + // the set of lobbies returned must be partitionable into teams of no more than nMaxTeamSize + // RequestPlayersForGameNotificationCallback_t callback will be sent when the search has started + // multple RequestPlayersForGameResultCallback_t callbacks will follow when players are found + virtual EGameSearchErrorCode_t RequestPlayersForGame( int nPlayerMin, int nPlayerMax, int nMaxTeamSize ) = 0; + + // accept the player list and release connection details to players + // players will only be given connection details and host steamid when this is called + // ( allows host to accept after all players confirm, some confirm, or none confirm. decision is entirely up to the host ) + virtual EGameSearchErrorCode_t HostConfirmGameStart( uint64 ullUniqueGameID ) = 0; + + // cancel request and leave the pool of game hosts looking for players + // if a set of players has already been sent to host, all players will receive SearchForGameHostFailedToConfirm_t + virtual EGameSearchErrorCode_t CancelRequestPlayersForGame() = 0; + + // submit a result for one player. does not end the game. ullUniqueGameID continues to describe this game + virtual EGameSearchErrorCode_t SubmitPlayerResult( uint64 ullUniqueGameID, CSteamID steamIDPlayer, EPlayerResult_t EPlayerResult ) = 0; + + // ends the game. no further SubmitPlayerResults for ullUniqueGameID will be accepted + // any future requests will provide a new ullUniqueGameID + virtual EGameSearchErrorCode_t EndGame( uint64 ullUniqueGameID ) = 0; + +}; +#define STEAMGAMESEARCH_INTERFACE_VERSION "SteamMatchGameSearch001" + +// Global interface accessor +inline ISteamGameSearch *SteamGameSearch(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamGameSearch *, SteamGameSearch, STEAMGAMESEARCH_INTERFACE_VERSION ); + + +//----------------------------------------------------------------------------- +// Purpose: Functions for quickly creating a Party with friends or acquaintances, +// EG from chat rooms. +//----------------------------------------------------------------------------- +enum ESteamPartyBeaconLocationType +{ + k_ESteamPartyBeaconLocationType_Invalid = 0, + k_ESteamPartyBeaconLocationType_ChatGroup = 1, + + k_ESteamPartyBeaconLocationType_Max, +}; + + #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif + +struct SteamPartyBeaconLocation_t +{ + ESteamPartyBeaconLocationType m_eType; + uint64 m_ulLocationID; +}; + +enum ESteamPartyBeaconLocationData +{ + k_ESteamPartyBeaconLocationDataInvalid = 0, + k_ESteamPartyBeaconLocationDataName = 1, + k_ESteamPartyBeaconLocationDataIconURLSmall = 2, + k_ESteamPartyBeaconLocationDataIconURLMedium = 3, + k_ESteamPartyBeaconLocationDataIconURLLarge = 4, +}; + +class ISteamParties +{ +public: + + // ============================================================================================= + // Party Client APIs + + // Enumerate any active beacons for parties you may wish to join + virtual uint32 GetNumActiveBeacons() = 0; + virtual PartyBeaconID_t GetBeaconByIndex( uint32 unIndex ) = 0; + virtual bool GetBeaconDetails( PartyBeaconID_t ulBeaconID, CSteamID *pSteamIDBeaconOwner, STEAM_OUT_STRUCT() SteamPartyBeaconLocation_t *pLocation, STEAM_OUT_STRING_COUNT(cchMetadata) char *pchMetadata, int cchMetadata ) = 0; + + // Join an open party. Steam will reserve one beacon slot for your SteamID, + // and return the necessary JoinGame string for you to use to connect + STEAM_CALL_RESULT( JoinPartyCallback_t ) + virtual SteamAPICall_t JoinParty( PartyBeaconID_t ulBeaconID ) = 0; + + // ============================================================================================= + // Party Host APIs + + // Get a list of possible beacon locations + virtual bool GetNumAvailableBeaconLocations( uint32 *puNumLocations ) = 0; + virtual bool GetAvailableBeaconLocations( SteamPartyBeaconLocation_t *pLocationList, uint32 uMaxNumLocations ) = 0; + + // Create a new party beacon and activate it in the selected location. + // unOpenSlots is the maximum number of users that Steam will send to you. + // When people begin responding to your beacon, Steam will send you + // PartyReservationCallback_t callbacks to let you know who is on the way. + STEAM_CALL_RESULT( CreateBeaconCallback_t ) + virtual SteamAPICall_t CreateBeacon( uint32 unOpenSlots, SteamPartyBeaconLocation_t *pBeaconLocation, const char *pchConnectString, const char *pchMetadata ) = 0; + + // Call this function when a user that had a reservation (see callback below) + // has successfully joined your party. + // Steam will manage the remaining open slots automatically. + virtual void OnReservationCompleted( PartyBeaconID_t ulBeacon, CSteamID steamIDUser ) = 0; + + // To cancel a reservation (due to timeout or user input), call this. + // Steam will open a new reservation slot. + // Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + virtual void CancelReservation( PartyBeaconID_t ulBeacon, CSteamID steamIDUser ) = 0; + + // Change the number of open beacon reservation slots. + // Call this if, for example, someone without a reservation joins your party (eg a friend, or via your own matchmaking system). + STEAM_CALL_RESULT( ChangeNumOpenSlotsCallback_t ) + virtual SteamAPICall_t ChangeNumOpenSlots( PartyBeaconID_t ulBeacon, uint32 unOpenSlots ) = 0; + + // Turn off the beacon. + virtual bool DestroyBeacon( PartyBeaconID_t ulBeacon ) = 0; + + // Utils + virtual bool GetBeaconLocationData( SteamPartyBeaconLocation_t BeaconLocation, ESteamPartyBeaconLocationData eData, STEAM_OUT_STRING_COUNT(cchDataStringOut) char *pchDataStringOut, int cchDataStringOut ) = 0; + +}; +#define STEAMPARTIES_INTERFACE_VERSION "SteamParties002" + +// Global interface accessor +inline ISteamParties *SteamParties(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamParties *, SteamParties, STEAMPARTIES_INTERFACE_VERSION ); + + +//----------------------------------------------------------------------------- +// Callbacks for ISteamMatchmaking (which go through the regular Steam callback registration system) + //----------------------------------------------------------------------------- // Purpose: a server was added/removed from the favorites list, you should refresh now //----------------------------------------------------------------------------- @@ -745,6 +916,171 @@ struct FavoritesListAccountsUpdated_t EResult m_eResult; }; + + +//----------------------------------------------------------------------------- +// Callbacks for ISteamGameSearch (which go through the regular Steam callback registration system) + +struct SearchForGameProgressCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 1 }; + + uint64 m_ullSearchID; // all future callbacks referencing this search will include this Search ID + + EResult m_eResult; // if search has started this result will be k_EResultOK, any other value indicates search has failed to start or has terminated + CSteamID m_lobbyID; // lobby ID if lobby search, invalid steamID otherwise + CSteamID m_steamIDEndedSearch; // if search was terminated, steamID that terminated search + + int32 m_nSecondsRemainingEstimate; + int32 m_cPlayersSearching; +}; + +// notification to all players searching that a game has been found +struct SearchForGameResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 2 }; + + uint64 m_ullSearchID; + + EResult m_eResult; // if game/host was lost this will be an error value + + // if m_bGameFound is true the following are non-zero + int32 m_nCountPlayersInGame; + int32 m_nCountAcceptedGame; + // if m_steamIDHost is valid the host has started the game + CSteamID m_steamIDHost; + bool m_bFinalCallback; +}; + + +//----------------------------------------------------------------------------- +// ISteamGameSearch : Game Host API callbacks + +// callback from RequestPlayersForGame when the matchmaking service has started or ended search +// callback will also follow a call from CancelRequestPlayersForGame - m_bSearchInProgress will be false +struct RequestPlayersForGameProgressCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 11 }; + + EResult m_eResult; // m_ullSearchID will be non-zero if this is k_EResultOK + uint64 m_ullSearchID; // all future callbacks referencing this search will include this Search ID +}; + +// callback from RequestPlayersForGame +// one of these will be sent per player +// followed by additional callbacks when players accept or decline the game +struct RequestPlayersForGameResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 12 }; + + EResult m_eResult; // m_ullSearchID will be non-zero if this is k_EResultOK + uint64 m_ullSearchID; + + CSteamID m_SteamIDPlayerFound; // player steamID + CSteamID m_SteamIDLobby; // if the player is in a lobby, the lobby ID + enum PlayerAcceptState_t + { + k_EStateUnknown = 0, + k_EStatePlayerAccepted = 1, + k_EStatePlayerDeclined = 2, + }; + PlayerAcceptState_t m_ePlayerAcceptState; + int32 m_nPlayerIndex; + int32 m_nTotalPlayersFound; // expect this many callbacks at minimum + int32 m_nTotalPlayersAcceptedGame; + int32 m_nSuggestedTeamIndex; + uint64 m_ullUniqueGameID; +}; + + +struct RequestPlayersForGameFinalResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 13 }; + + EResult m_eResult; + uint64 m_ullSearchID; + uint64 m_ullUniqueGameID; +}; + + + +// this callback confirms that results were received by the matchmaking service for this player +struct SubmitPlayerResultResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 14 }; + + EResult m_eResult; + uint64 ullUniqueGameID; + CSteamID steamIDPlayer; +}; + + +// this callback confirms that the game is recorded as complete on the matchmaking service +// the next call to RequestPlayersForGame will generate a new unique game ID +struct EndGameResultCallback_t +{ + enum { k_iCallback = k_iSteamGameSearchCallbacks + 15 }; + + EResult m_eResult; + uint64 ullUniqueGameID; +}; + + +// Steam has responded to the user request to join a party via the given Beacon ID. +// If successful, the connect string contains game-specific instructions to connect +// to the game with that party. +struct JoinPartyCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 1 }; + + EResult m_eResult; + PartyBeaconID_t m_ulBeaconID; + CSteamID m_SteamIDBeaconOwner; + char m_rgchConnectString[256]; +}; + +// Response to CreateBeacon request. If successful, the beacon ID is provided. +struct CreateBeaconCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 2 }; + + EResult m_eResult; + PartyBeaconID_t m_ulBeaconID; +}; + +// Someone has used the beacon to join your party - they are in-flight now +// and we've reserved one of the open slots for them. +// You should confirm when they join your party by calling OnReservationCompleted(). +// Otherwise, Steam may timeout their reservation eventually. +struct ReservationNotificationCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 3 }; + + PartyBeaconID_t m_ulBeaconID; + CSteamID m_steamIDJoiner; +}; + +// Response to ChangeNumOpenSlots call +struct ChangeNumOpenSlotsCallback_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 4 }; + + EResult m_eResult; +}; + +// The list of possible Party beacon locations has changed +struct AvailableBeaconLocationsUpdated_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 5 }; +}; + +// The list of active beacons may have changed +struct ActiveBeaconsUpdated_t +{ + enum { k_iCallback = k_iSteamPartiesCallbacks + 6 }; +}; + + #pragma pack( pop ) diff --git a/lib/windows/include/steam/isteammusic.h b/lib/windows/include/steam/isteammusic.h index 779a4c2..ffa49a0 100644 --- a/lib/windows/include/steam/isteammusic.h +++ b/lib/windows/include/steam/isteammusic.h @@ -6,7 +6,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: @@ -44,22 +44,26 @@ public: #define STEAMMUSIC_INTERFACE_VERSION "STEAMMUSIC_INTERFACE_VERSION001" +// Global interface accessor +inline ISteamMusic *SteamMusic(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMusic *, SteamMusic, STEAMMUSIC_INTERFACE_VERSION ); + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif -DEFINE_CALLBACK( PlaybackStatusHasChanged_t, k_iSteamMusicCallbacks + 1 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( PlaybackStatusHasChanged_t, k_iSteamMusicCallbacks + 1 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( VolumeHasChanged_t, k_iSteamMusicCallbacks + 2 ) - CALLBACK_MEMBER( 0, float, m_flNewVolume ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( VolumeHasChanged_t, k_iSteamMusicCallbacks + 2 ) + STEAM_CALLBACK_MEMBER( 0, float, m_flNewVolume ) +STEAM_CALLBACK_END(1) #pragma pack( pop ) diff --git a/lib/windows/include/steam/isteammusicremote.h b/lib/windows/include/steam/isteammusicremote.h index ea29a7d..a36f4f8 100644 --- a/lib/windows/include/steam/isteammusicremote.h +++ b/lib/windows/include/steam/isteammusicremote.h @@ -6,7 +6,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" #include "isteammusic.h" #define k_SteamMusicNameMaxLength 255 @@ -64,63 +64,67 @@ public: #define STEAMMUSICREMOTE_INTERFACE_VERSION "STEAMMUSICREMOTE_INTERFACE_VERSION001" +// Global interface accessor +inline ISteamMusicRemote *SteamMusicRemote(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamMusicRemote *, SteamMusicRemote, STEAMMUSICREMOTE_INTERFACE_VERSION ); + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif -DEFINE_CALLBACK( MusicPlayerRemoteWillActivate_t, k_iSteamMusicRemoteCallbacks + 1) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerRemoteWillActivate_t, k_iSteamMusicRemoteCallbacks + 1) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerRemoteWillDeactivate_t, k_iSteamMusicRemoteCallbacks + 2 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerRemoteWillDeactivate_t, k_iSteamMusicRemoteCallbacks + 2 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerRemoteToFront_t, k_iSteamMusicRemoteCallbacks + 3 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerRemoteToFront_t, k_iSteamMusicRemoteCallbacks + 3 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWillQuit_t, k_iSteamMusicRemoteCallbacks + 4 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWillQuit_t, k_iSteamMusicRemoteCallbacks + 4 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsPlay_t, k_iSteamMusicRemoteCallbacks + 5 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPlay_t, k_iSteamMusicRemoteCallbacks + 5 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsPause_t, k_iSteamMusicRemoteCallbacks + 6 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPause_t, k_iSteamMusicRemoteCallbacks + 6 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsPlayPrevious_t, k_iSteamMusicRemoteCallbacks + 7 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPlayPrevious_t, k_iSteamMusicRemoteCallbacks + 7 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsPlayNext_t, k_iSteamMusicRemoteCallbacks + 8 ) -END_DEFINE_CALLBACK_0() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPlayNext_t, k_iSteamMusicRemoteCallbacks + 8 ) +STEAM_CALLBACK_END(0) -DEFINE_CALLBACK( MusicPlayerWantsShuffled_t, k_iSteamMusicRemoteCallbacks + 9 ) - CALLBACK_MEMBER( 0, bool, m_bShuffled ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsShuffled_t, k_iSteamMusicRemoteCallbacks + 9 ) + STEAM_CALLBACK_MEMBER( 0, bool, m_bShuffled ) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerWantsLooped_t, k_iSteamMusicRemoteCallbacks + 10 ) - CALLBACK_MEMBER(0, bool, m_bLooped ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsLooped_t, k_iSteamMusicRemoteCallbacks + 10 ) + STEAM_CALLBACK_MEMBER(0, bool, m_bLooped ) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerWantsVolume_t, k_iSteamMusicCallbacks + 11 ) - CALLBACK_MEMBER(0, float, m_flNewVolume) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsVolume_t, k_iSteamMusicCallbacks + 11 ) + STEAM_CALLBACK_MEMBER(0, float, m_flNewVolume) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerSelectsQueueEntry_t, k_iSteamMusicCallbacks + 12 ) - CALLBACK_MEMBER(0, int, nID ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerSelectsQueueEntry_t, k_iSteamMusicCallbacks + 12 ) + STEAM_CALLBACK_MEMBER(0, int, nID ) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerSelectsPlaylistEntry_t, k_iSteamMusicCallbacks + 13 ) - CALLBACK_MEMBER(0, int, nID ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerSelectsPlaylistEntry_t, k_iSteamMusicCallbacks + 13 ) + STEAM_CALLBACK_MEMBER(0, int, nID ) +STEAM_CALLBACK_END(1) -DEFINE_CALLBACK( MusicPlayerWantsPlayingRepeatStatus_t, k_iSteamMusicRemoteCallbacks + 14 ) - CALLBACK_MEMBER(0, int, m_nPlayingRepeatStatus ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( MusicPlayerWantsPlayingRepeatStatus_t, k_iSteamMusicRemoteCallbacks + 14 ) + STEAM_CALLBACK_MEMBER(0, int, m_nPlayingRepeatStatus ) +STEAM_CALLBACK_END(1) #pragma pack( pop ) diff --git a/lib/windows/include/steam/isteamnetworking.h b/lib/windows/include/steam/isteamnetworking.h index 8f70819..b7e077a 100644 --- a/lib/windows/include/steam/isteamnetworking.h +++ b/lib/windows/include/steam/isteamnetworking.h @@ -10,21 +10,23 @@ #pragma once #endif -#include "steamtypes.h" -#include "steamclientpublic.h" - +#include "steam_api_common.h" // list of possible errors returned by SendP2PPacket() API // these will be posted in the P2PSessionConnectFail_t callback enum EP2PSessionError { k_EP2PSessionErrorNone = 0, - k_EP2PSessionErrorNotRunningApp = 1, // target is not running the same game k_EP2PSessionErrorNoRightsToApp = 2, // local user doesn't own the app that is running - k_EP2PSessionErrorDestinationNotLoggedIn = 3, // target user isn't connected to Steam k_EP2PSessionErrorTimeout = 4, // target isn't responding, perhaps not calling AcceptP2PSessionWithUser() // corporate firewalls can also block this (NAT traversal is not firewall traversal) // make sure that UDP ports 3478, 4379, and 4380 are open in an outbound direction + + // The following error codes were removed and will never be sent. + // For privacy reasons, there is no reply if the user is offline or playing another game. + k_EP2PSessionErrorNotRunningApp_DELETED = 1, + k_EP2PSessionErrorDestinationNotLoggedIn_DELETED = 3, + k_EP2PSessionErrorMax = 5 }; @@ -63,7 +65,7 @@ enum EP2PSend #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct P2PSessionState_t { @@ -122,13 +124,26 @@ enum ESNetSocketConnectionType //----------------------------------------------------------------------------- // Purpose: Functions for making connections and sending data between clients, // traversing NAT's where possible +// +// NOTE: This interface is deprecated and may be removed in a future release of +/// the Steamworks SDK. Please see ISteamNetworkingSockets and +/// ISteamNetworkingMessages //----------------------------------------------------------------------------- class ISteamNetworking { public: //////////////////////////////////////////////////////////////////////////////////////////// - // Session-less connection functions - // automatically establishes NAT-traversing or Relay server connections + // + // UDP-style (connectionless) networking interface. These functions send messages using + // an API organized around the destination. Reliable and unreliable messages are supported. + // + // For a more TCP-style interface (meaning you have a connection handle), see the functions below. + // Both interface styles can send both reliable and unreliable messages. + // + // Automatically establishes NAT-traversing or Relay server connections + // + // These APIs are deprecated, and may be removed in a future version of the Steamworks + // SDK. See ISteamNetworkingMessages. // Sends a P2P packet to the specified user // UDP-like, unreliable and a max packet size of 1200 bytes @@ -177,15 +192,29 @@ public: // or to existing connections that need to automatically reconnect after this value is set. // // P2P packet relay is allowed by default + // + // NOTE: This function is deprecated and may be removed in a future version of the SDK. For + // security purposes, we may decide to relay the traffic to certain peers, even if you pass false + // to this function, to prevent revealing the client's IP address top another peer. virtual bool AllowP2PPacketRelay( bool bAllow ) = 0; //////////////////////////////////////////////////////////////////////////////////////////// - // LISTEN / CONNECT style interface functions // - // This is an older set of functions designed around the Berkeley TCP sockets model - // it's preferential that you use the above P2P functions, they're more robust - // and these older functions will be removed eventually + // LISTEN / CONNECT connection-oriented interface functions + // + // These functions are more like a client-server TCP API. One side is the "server" + // and "listens" for incoming connections, which then must be "accepted." The "client" + // initiates a connection by "connecting." Sending and receiving is done through a + // connection handle. + // + // For a more UDP-style interface, where you do not track connection handles but + // simply send messages to a SteamID, use the UDP-style functions above. + // + // Both methods can send both reliable and unreliable methods. + // + // These APIs are deprecated, and may be removed in a future version of the Steamworks + // SDK. See ISteamNetworkingSockets. // //////////////////////////////////////////////////////////////////////////////////////////// @@ -198,14 +227,14 @@ public: // pass in 0 if you just want the default local IP // unPort is the port to use // pass in 0 if you don't want users to be able to connect via IP/Port, but expect to be always peer-to-peer connections only - virtual SNetListenSocket_t CreateListenSocket( int nVirtualP2PPort, uint32 nIP, uint16 nPort, bool bAllowUseOfPacketRelay ) = 0; + virtual SNetListenSocket_t CreateListenSocket( int nVirtualP2PPort, SteamIPAddress_t nIP, uint16 nPort, bool bAllowUseOfPacketRelay ) = 0; // creates a socket and begin connection to a remote destination // can connect via a known steamID (client or game server), or directly to an IP // on success will trigger a SocketStatusCallback_t callback // on failure or timeout will trigger a SocketStatusCallback_t callback with a failure code in m_eSNetSocketState virtual SNetSocket_t CreateP2PConnectionSocket( CSteamID steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay ) = 0; - virtual SNetSocket_t CreateConnectionSocket( uint32 nIP, uint16 nPort, int nTimeoutSec ) = 0; + virtual SNetSocket_t CreateConnectionSocket( SteamIPAddress_t nIP, uint16 nPort, int nTimeoutSec ) = 0; // disconnects the connection to the socket, if any, and invalidates the handle // any unread data on the socket will be thrown away @@ -247,11 +276,11 @@ public: virtual bool RetrieveData( SNetListenSocket_t hListenSocket, void *pubDest, uint32 cubDest, uint32 *pcubMsgSize, SNetSocket_t *phSocket ) = 0; // returns information about the specified socket, filling out the contents of the pointers - virtual bool GetSocketInfo( SNetSocket_t hSocket, CSteamID *pSteamIDRemote, int *peSocketStatus, uint32 *punIPRemote, uint16 *punPortRemote ) = 0; + virtual bool GetSocketInfo( SNetSocket_t hSocket, CSteamID *pSteamIDRemote, int *peSocketStatus, SteamIPAddress_t *punIPRemote, uint16 *punPortRemote ) = 0; // returns which local port the listen socket is bound to // *pnIP and *pnPort will be 0 if the socket is set to listen for P2P connections only - virtual bool GetListenSocketInfo( SNetListenSocket_t hListenSocket, uint32 *pnIP, uint16 *pnPort ) = 0; + virtual bool GetListenSocketInfo( SNetListenSocket_t hListenSocket, SteamIPAddress_t *pnIP, uint16 *pnPort ) = 0; // returns true to describe how the socket ended up connecting virtual ESNetSocketConnectionType GetSocketConnectionType( SNetSocket_t hSocket ) = 0; @@ -259,7 +288,15 @@ public: // max packet size, in bytes virtual int GetMaxPacketSize( SNetSocket_t hSocket ) = 0; }; -#define STEAMNETWORKING_INTERFACE_VERSION "SteamNetworking005" +#define STEAMNETWORKING_INTERFACE_VERSION "SteamNetworking006" + +// Global interface accessor +inline ISteamNetworking *SteamNetworking(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworking *, SteamNetworking, STEAMNETWORKING_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamNetworking *SteamGameServerNetworking(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworking *, SteamGameServerNetworking, STEAMNETWORKING_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -267,7 +304,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif // callback notification - a user wants to talk to us over the P2P channel via the SendP2PPacket() API diff --git a/lib/windows/include/steam/isteamnetworkingmessages.h b/lib/windows/include/steam/isteamnetworkingmessages.h new file mode 100644 index 0000000..b7a2cd0 --- /dev/null +++ b/lib/windows/include/steam/isteamnetworkingmessages.h @@ -0,0 +1,198 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== + +#ifndef ISTEAMNETWORKINGMESSAGES +#define ISTEAMNETWORKINGMESSAGES +#pragma once + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +//----------------------------------------------------------------------------- +/// The non-connection-oriented interface to send and receive messages +/// (whether they be "clients" or "servers"). +/// +/// ISteamNetworkingSockets is connection-oriented (like TCP), meaning you +/// need to listen and connect, and then you send messages using a connection +/// handle. ISteamNetworkingMessages is more like UDP, in that you can just send +/// messages to arbitrary peers at any time. The underlying connections are +/// established implicitly. +/// +/// Under the hood ISteamNetworkingMessages works on top of the ISteamNetworkingSockets +/// code, so you get the same routing and messaging efficiency. The difference is +/// mainly in your responsibility to explicitly establish a connection and +/// the type of feedback you get about the state of the connection. Both +/// interfaces can do "P2P" communications, and both support both unreliable +/// and reliable messages, fragmentation and reassembly. +/// +/// The primary purpose of this interface is to be "like UDP", so that UDP-based code +/// can be ported easily to take advantage of relayed connections. If you find +/// yourself needing more low level information or control, or to be able to better +/// handle failure, then you probably need to use ISteamNetworkingSockets directly. +/// Also, note that if your main goal is to obtain a connection between two peers +/// without concerning yourself with assigning roles of "client" and "server", +/// you may find the symmetric connection mode of ISteamNetworkingSockets useful. +/// (See k_ESteamNetworkingConfig_SymmetricConnect.) +/// +class ISteamNetworkingMessages +{ +public: + /// Sends a message to the specified host. If we don't already have a session with that user, + /// a session is implicitly created. There might be some handshaking that needs to happen + /// before we can actually begin sending message data. If this handshaking fails and we can't + /// get through, an error will be posted via the callback SteamNetworkingMessagesSessionFailed_t. + /// There is no notification when the operation succeeds. (You should have the peer send a reply + /// for this purpose.) + /// + /// Sending a message to a host will also implicitly accept any incoming connection from that host. + /// + /// nSendFlags is a bitmask of k_nSteamNetworkingSend_xxx options + /// + /// nRemoteChannel is a routing number you can use to help route message to different systems. + /// You'll have to call ReceiveMessagesOnChannel() with the same channel number in order to retrieve + /// the data on the other end. + /// + /// Using different channels to talk to the same user will still use the same underlying + /// connection, saving on resources. If you don't need this feature, use 0. + /// Otherwise, small integers are the most efficient. + /// + /// It is guaranteed that reliable messages to the same host on the same channel + /// will be be received by the remote host (if they are received at all) exactly once, + /// and in the same order that they were sent. + /// + /// NO other order guarantees exist! In particular, unreliable messages may be dropped, + /// received out of order with respect to each other and with respect to reliable data, + /// or may be received multiple times. Messages on different channels are *not* guaranteed + /// to be received in the order they were sent. + /// + /// A note for those familiar with TCP/IP ports, or converting an existing codebase that + /// opened multiple sockets: You might notice that there is only one channel, and with + /// TCP/IP each endpoint has a port number. You can think of the channel number as the + /// *destination* port. If you need each message to also include a "source port" (so the + /// recipient can route the reply), then just put that in your message. That is essentially + /// how UDP works! + /// + /// Returns: + /// - k_EREsultOK on success. + /// - k_EResultNoConnection, if the session has failed or was closed by the peer and + /// k_nSteamNetworkingSend_AutoRestartBrokenSession was not specified. (You can + /// use GetSessionConnectionInfo to get the details.) In order to acknowledge the + /// broken session and start a new one, you must call CloseSessionWithUser, or you may + /// repeat the call with k_nSteamNetworkingSend_AutoRestartBrokenSession. See + /// k_nSteamNetworkingSend_AutoRestartBrokenSession for more details. + /// - See ISteamNetworkingSockets::SendMessageToConnection for more possible return values + virtual EResult SendMessageToUser( const SteamNetworkingIdentity &identityRemote, const void *pubData, uint32 cubData, int nSendFlags, int nRemoteChannel ) = 0; + + /// Reads the next message that has been sent from another user via SendMessageToUser() on the given channel. + /// Returns number of messages returned into your list. (0 if no message are available on that channel.) + /// + /// When you're done with the message object(s), make sure and call SteamNetworkingMessage_t::Release()! + virtual int ReceiveMessagesOnChannel( int nLocalChannel, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + /// Call this in response to a SteamNetworkingMessagesSessionRequest_t callback. + /// SteamNetworkingMessagesSessionRequest_t are posted when a user tries to send you a message, + /// and you haven't tried to talk to them first. If you don't want to talk to them, just ignore + /// the request. If the user continues to send you messages, SteamNetworkingMessagesSessionRequest_t + /// callbacks will continue to be posted periodically. + /// + /// Returns false if there is no session with the user pending or otherwise. If there is an + /// existing active session, this function will return true, even if it is not pending. + /// + /// Calling SendMessageToUser() will implicitly accepts any pending session request to that user. + virtual bool AcceptSessionWithUser( const SteamNetworkingIdentity &identityRemote ) = 0; + + /// Call this when you're done talking to a user to immediately free up resources under-the-hood. + /// If the remote user tries to send data to you again, another SteamNetworkingMessagesSessionRequest_t + /// callback will be posted. + /// + /// Note that sessions that go unused for a few minutes are automatically timed out. + virtual bool CloseSessionWithUser( const SteamNetworkingIdentity &identityRemote ) = 0; + + /// Call this when you're done talking to a user on a specific channel. Once all + /// open channels to a user have been closed, the open session to the user will be + /// closed, and any new data from this user will trigger a + /// SteamSteamNetworkingMessagesSessionRequest_t callback + virtual bool CloseChannelWithUser( const SteamNetworkingIdentity &identityRemote, int nLocalChannel ) = 0; + + /// Returns information about the latest state of a connection, if any, with the given peer. + /// Primarily intended for debugging purposes, but can also be used to get more detailed + /// failure information. (See SendMessageToUser and k_nSteamNetworkingSend_AutoRestartBrokenSession.) + /// + /// Returns the value of SteamNetConnectionInfo_t::m_eState, or k_ESteamNetworkingConnectionState_None + /// if no connection exists with specified peer. You may pass nullptr for either parameter if + /// you do not need the corresponding details. Note that sessions time out after a while, + /// so if a connection fails, or SendMessageToUser returns k_EResultNoConnection, you cannot wait + /// indefinitely to obtain the reason for failure. + virtual ESteamNetworkingConnectionState GetSessionConnectionInfo( const SteamNetworkingIdentity &identityRemote, SteamNetConnectionInfo_t *pConnectionInfo, SteamNetConnectionRealTimeStatus_t *pQuickStatus ) = 0; +}; +#define STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "SteamNetworkingMessages002" + +// +// Callbacks +// + +#pragma pack( push, 1 ) + +/// Posted when a remote host is sending us a message, and we do not already have a session with them +struct SteamNetworkingMessagesSessionRequest_t +{ + enum { k_iCallback = k_iSteamNetworkingMessagesCallbacks + 1 }; + SteamNetworkingIdentity m_identityRemote; // user who wants to talk to us +}; + +/// Posted when we fail to establish a connection, or we detect that communications +/// have been disrupted it an unusual way. There is no notification when a peer proactively +/// closes the session. ("Closed by peer" is not a concept of UDP-style communications, and +/// SteamNetworkingMessages is primarily intended to make porting UDP code easy.) +/// +/// Remember: callbacks are asynchronous. See notes on SendMessageToUser, +/// and k_nSteamNetworkingSend_AutoRestartBrokenSession in particular. +/// +/// Also, if a session times out due to inactivity, no callbacks will be posted. The only +/// way to detect that this is happening is that querying the session state may return +/// none, connecting, and findingroute again. +struct SteamNetworkingMessagesSessionFailed_t +{ + enum { k_iCallback = k_iSteamNetworkingMessagesCallbacks + 2 }; + + /// Detailed info about the session that failed. + /// SteamNetConnectionInfo_t::m_identityRemote indicates who this session + /// was with. + SteamNetConnectionInfo_t m_info; +}; + +#pragma pack(pop) + +// Global accessors + +// Using standalone lib +#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB + + static_assert( STEAMNETWORKINGMESSAGES_INTERFACE_VERSION[25] == '2', "Version mismatch" ); + + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamNetworkingMessages_LibV2(); + inline ISteamNetworkingMessages *SteamNetworkingMessages_Lib() { return SteamNetworkingMessages_LibV2(); } + + // If running in context of steam, we also define a gameserver instance. + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingMessages *SteamGameServerNetworkingMessages_LibV2(); + inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages_Lib() { return SteamGameServerNetworkingMessages_LibV2(); } + + #ifndef STEAMNETWORKINGSOCKETS_STEAMAPI + inline ISteamNetworkingMessages *SteamNetworkingMessages() { return SteamNetworkingMessages_LibV2(); } + inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages() { return SteamGameServerNetworkingMessages_LibV2(); } + #endif +#endif + +// Using Steamworks SDK +#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI + + // Steamworks SDK + STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworkingMessages *, SteamNetworkingMessages_SteamAPI, STEAMNETWORKINGMESSAGES_INTERFACE_VERSION ); + STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingMessages *, SteamGameServerNetworkingMessages_SteamAPI, STEAMNETWORKINGMESSAGES_INTERFACE_VERSION ); + + #ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB + inline ISteamNetworkingMessages *SteamNetworkingMessages() { return SteamNetworkingMessages_SteamAPI(); } + inline ISteamNetworkingMessages *SteamGameServerNetworkingMessages() { return SteamGameServerNetworkingMessages_SteamAPI(); } + #endif +#endif + +#endif // ISTEAMNETWORKINGMESSAGES diff --git a/lib/windows/include/steam/isteamnetworkingsockets.h b/lib/windows/include/steam/isteamnetworkingsockets.h new file mode 100644 index 0000000..427727a --- /dev/null +++ b/lib/windows/include/steam/isteamnetworkingsockets.h @@ -0,0 +1,1030 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== + +#ifndef ISTEAMNETWORKINGSOCKETS +#define ISTEAMNETWORKINGSOCKETS +#pragma once + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +struct SteamNetAuthenticationStatus_t; +struct SteamNetworkingFakeIPResult_t; +class ISteamNetworkingConnectionSignaling; +class ISteamNetworkingSignalingRecvContext; +class ISteamNetworkingFakeUDPPort; + +//----------------------------------------------------------------------------- +/// Lower level networking API. +/// +/// - Connection-oriented API (like TCP, not UDP). When sending and receiving +/// messages, a connection handle is used. (For a UDP-style interface, where +/// the peer is identified by their address with each send/recv call, see +/// ISteamNetworkingMessages.) The typical pattern is for a "server" to "listen" +/// on a "listen socket." A "client" will "connect" to the server, and the +/// server will "accept" the connection. If you have a symmetric situation +/// where either peer may initiate the connection and server/client roles are +/// not clearly defined, check out k_ESteamNetworkingConfig_SymmetricConnect. +/// - But unlike TCP, it's message-oriented, not stream-oriented. +/// - Mix of reliable and unreliable messages +/// - Fragmentation and reassembly +/// - Supports connectivity over plain UDP +/// - Also supports SDR ("Steam Datagram Relay") connections, which are +/// addressed by the identity of the peer. There is a "P2P" use case and +/// a "hosted dedicated server" use case. +/// +/// Note that neither of the terms "connection" nor "socket" necessarily correspond +/// one-to-one with an underlying UDP socket. An attempt has been made to +/// keep the semantics as similar to the standard socket model when appropriate, +/// but some deviations do exist. +/// +/// See also: ISteamNetworkingMessages, the UDP-style interface. This API might be +/// easier to use, especially when porting existing UDP code. +class ISteamNetworkingSockets +{ +public: + + /// Creates a "server" socket that listens for clients to connect to by + /// calling ConnectByIPAddress, over ordinary UDP (IPv4 or IPv6) + /// + /// You must select a specific local port to listen on and set it + /// the port field of the local address. + /// + /// Usually you will set the IP portion of the address to zero (SteamNetworkingIPAddr::Clear()). + /// This means that you will not bind to any particular local interface (i.e. the same + /// as INADDR_ANY in plain socket code). Furthermore, if possible the socket will be bound + /// in "dual stack" mode, which means that it can accept both IPv4 and IPv6 client connections. + /// If you really do wish to bind a particular interface, then set the local address to the + /// appropriate IPv4 or IPv6 IP. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + /// + /// When a client attempts to connect, a SteamNetConnectionStatusChangedCallback_t + /// will be posted. The connection will be in the connecting state. + virtual HSteamListenSocket CreateListenSocketIP( const SteamNetworkingIPAddr &localAddress, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Creates a connection and begins talking to a "server" over UDP at the + /// given IPv4 or IPv6 address. The remote host must be listening with a + /// matching call to CreateListenSocketIP on the specified port. + /// + /// A SteamNetConnectionStatusChangedCallback_t callback will be triggered when we start + /// connecting, and then another one on either timeout or successful connection. + /// + /// If the server does not have any identity configured, then their network address + /// will be the only identity in use. Or, the network host may provide a platform-specific + /// identity with or without a valid certificate to authenticate that identity. (These + /// details will be contained in the SteamNetConnectionStatusChangedCallback_t.) It's + /// up to your application to decide whether to allow the connection. + /// + /// By default, all connections will get basic encryption sufficient to prevent + /// casual eavesdropping. But note that without certificates (or a shared secret + /// distributed through some other out-of-band mechanism), you don't have any + /// way of knowing who is actually on the other end, and thus are vulnerable to + /// man-in-the-middle attacks. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamNetConnection ConnectByIPAddress( const SteamNetworkingIPAddr &address, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Like CreateListenSocketIP, but clients will connect using ConnectP2P. + /// + /// nLocalVirtualPort specifies how clients can connect to this socket using + /// ConnectP2P. It's very common for applications to only have one listening socket; + /// in that case, use zero. If you need to open multiple listen sockets and have clients + /// be able to connect to one or the other, then nLocalVirtualPort should be a small + /// integer (<1000) unique to each listen socket you create. + /// + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() + /// when your app initializes. + /// + /// If you are listening on a dedicated servers in known data center, + /// then you can listen using this function instead of CreateHostedDedicatedServerListenSocket, + /// to allow clients to connect without a ticket. Any user that owns + /// the app and is signed into Steam will be able to attempt to connect to + /// your server. Also, a connection attempt may require the client to + /// be connected to Steam, which is one more moving part that may fail. When + /// tickets are used, then once a ticket is obtained, a client can connect to + /// your server even if they got disconnected from Steam or Steam is offline. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamListenSocket CreateListenSocketP2P( int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Begin connecting to a peer that is identified using a platform-specific identifier. + /// This uses the default rendezvous service, which depends on the platform and library + /// configuration. (E.g. on Steam, it goes through the steam backend.) + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + /// + /// To use your own signaling service, see: + /// - ConnectP2PCustomSignaling + /// - k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling + virtual HSteamNetConnection ConnectP2P( const SteamNetworkingIdentity &identityRemote, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Accept an incoming connection that has been received on a listen socket. + /// + /// When a connection attempt is received (perhaps after a few basic handshake + /// packets have been exchanged to prevent trivial spoofing), a connection interface + /// object is created in the k_ESteamNetworkingConnectionState_Connecting state + /// and a SteamNetConnectionStatusChangedCallback_t is posted. At this point, your + /// application MUST either accept or close the connection. (It may not ignore it.) + /// Accepting the connection will transition it either into the connected state, + /// or the finding route state, depending on the connection type. + /// + /// You should take action within a second or two, because accepting the connection is + /// what actually sends the reply notifying the client that they are connected. If you + /// delay taking action, from the client's perspective it is the same as the network + /// being unresponsive, and the client may timeout the connection attempt. In other + /// words, the client cannot distinguish between a delay caused by network problems + /// and a delay caused by the application. + /// + /// This means that if your application goes for more than a few seconds without + /// processing callbacks (for example, while loading a map), then there is a chance + /// that a client may attempt to connect in that interval and fail due to timeout. + /// + /// If the application does not respond to the connection attempt in a timely manner, + /// and we stop receiving communication from the client, the connection attempt will + /// be timed out locally, transitioning the connection to the + /// k_ESteamNetworkingConnectionState_ProblemDetectedLocally state. The client may also + /// close the connection before it is accepted, and a transition to the + /// k_ESteamNetworkingConnectionState_ClosedByPeer is also possible depending the exact + /// sequence of events. + /// + /// Returns k_EResultInvalidParam if the handle is invalid. + /// Returns k_EResultInvalidState if the connection is not in the appropriate state. + /// (Remember that the connection state could change in between the time that the + /// notification being posted to the queue and when it is received by the application.) + /// + /// A note about connection configuration options. If you need to set any configuration + /// options that are common to all connections accepted through a particular listen + /// socket, consider setting the options on the listen socket, since such options are + /// inherited automatically. If you really do need to set options that are connection + /// specific, it is safe to set them on the connection before accepting the connection. + virtual EResult AcceptConnection( HSteamNetConnection hConn ) = 0; + + /// Disconnects from the remote host and invalidates the connection handle. + /// Any unread data on the connection is discarded. + /// + /// nReason is an application defined code that will be received on the other + /// end and recorded (when possible) in backend analytics. The value should + /// come from a restricted range. (See ESteamNetConnectionEnd.) If you don't need + /// to communicate any information to the remote host, and do not want analytics to + /// be able to distinguish "normal" connection terminations from "exceptional" ones, + /// You may pass zero, in which case the generic value of + /// k_ESteamNetConnectionEnd_App_Generic will be used. + /// + /// pszDebug is an optional human-readable diagnostic string that will be received + /// by the remote host and recorded (when possible) in backend analytics. + /// + /// If you wish to put the socket into a "linger" state, where an attempt is made to + /// flush any remaining sent data, use bEnableLinger=true. Otherwise reliable data + /// is not flushed. + /// + /// If the connection has already ended and you are just freeing up the + /// connection interface, the reason code, debug string, and linger flag are + /// ignored. + virtual bool CloseConnection( HSteamNetConnection hPeer, int nReason, const char *pszDebug, bool bEnableLinger ) = 0; + + /// Destroy a listen socket. All the connections that were accepting on the listen + /// socket are closed ungracefully. + virtual bool CloseListenSocket( HSteamListenSocket hSocket ) = 0; + + /// Set connection user data. the data is returned in the following places + /// - You can query it using GetConnectionUserData. + /// - The SteamNetworkingmessage_t structure. + /// - The SteamNetConnectionInfo_t structure. + /// (Which is a member of SteamNetConnectionStatusChangedCallback_t -- but see WARNINGS below!!!!) + /// + /// Do you need to set this atomically when the connection is created? + /// See k_ESteamNetworkingConfig_ConnectionUserData. + /// + /// WARNING: Be *very careful* when using the value provided in callbacks structs. + /// Callbacks are queued, and the value that you will receive in your + /// callback is the userdata that was effective at the time the callback + /// was queued. There are subtle race conditions that can happen if you + /// don't understand this! + /// + /// If any incoming messages for this connection are queued, the userdata + /// field is updated, so that when when you receive messages (e.g. with + /// ReceiveMessagesOnConnection), they will always have the very latest + /// userdata. So the tricky race conditions that can happen with callbacks + /// do not apply to retrieving messages. + /// + /// Returns false if the handle is invalid. + virtual bool SetConnectionUserData( HSteamNetConnection hPeer, int64 nUserData ) = 0; + + /// Fetch connection user data. Returns -1 if handle is invalid + /// or if you haven't set any userdata on the connection. + virtual int64 GetConnectionUserData( HSteamNetConnection hPeer ) = 0; + + /// Set a name for the connection, used mostly for debugging + virtual void SetConnectionName( HSteamNetConnection hPeer, const char *pszName ) = 0; + + /// Fetch connection name. Returns false if handle is invalid + virtual bool GetConnectionName( HSteamNetConnection hPeer, char *pszName, int nMaxLen ) = 0; + + /// Send a message to the remote host on the specified connection. + /// + /// nSendFlags determines the delivery guarantees that will be provided, + /// when data should be buffered, etc. E.g. k_nSteamNetworkingSend_Unreliable + /// + /// Note that the semantics we use for messages are not precisely + /// the same as the semantics of a standard "stream" socket. + /// (SOCK_STREAM) For an ordinary stream socket, the boundaries + /// between chunks are not considered relevant, and the sizes of + /// the chunks of data written will not necessarily match up to + /// the sizes of the chunks that are returned by the reads on + /// the other end. The remote host might read a partial chunk, + /// or chunks might be coalesced. For the message semantics + /// used here, however, the sizes WILL match. Each send call + /// will match a successful read call on the remote host + /// one-for-one. If you are porting existing stream-oriented + /// code to the semantics of reliable messages, your code should + /// work the same, since reliable message semantics are more + /// strict than stream semantics. The only caveat is related to + /// performance: there is per-message overhead to retain the + /// message sizes, and so if your code sends many small chunks + /// of data, performance will suffer. Any code based on stream + /// sockets that does not write excessively small chunks will + /// work without any changes. + /// + /// The pOutMessageNumber is an optional pointer to receive the + /// message number assigned to the message, if sending was successful. + /// + /// Returns: + /// - k_EResultInvalidParam: invalid connection handle, or the individual message is too big. + /// (See k_cbMaxSteamNetworkingSocketsMessageSizeSend) + /// - k_EResultInvalidState: connection is in an invalid state + /// - k_EResultNoConnection: connection has ended + /// - k_EResultIgnored: You used k_nSteamNetworkingSend_NoDelay, and the message was dropped because + /// we were not ready to send it. + /// - k_EResultLimitExceeded: there was already too much data queued to be sent. + /// (See k_ESteamNetworkingConfig_SendBufferSize) + virtual EResult SendMessageToConnection( HSteamNetConnection hConn, const void *pData, uint32 cbData, int nSendFlags, int64 *pOutMessageNumber ) = 0; + + /// Send one or more messages without copying the message payload. + /// This is the most efficient way to send messages. To use this + /// function, you must first allocate a message object using + /// ISteamNetworkingUtils::AllocateMessage. (Do not declare one + /// on the stack or allocate your own.) + /// + /// You should fill in the message payload. You can either let + /// it allocate the buffer for you and then fill in the payload, + /// or if you already have a buffer allocated, you can just point + /// m_pData at your buffer and set the callback to the appropriate function + /// to free it. Note that if you use your own buffer, it MUST remain valid + /// until the callback is executed. And also note that your callback can be + /// invoked at any time from any thread (perhaps even before SendMessages + /// returns!), so it MUST be fast and threadsafe. + /// + /// You MUST also fill in: + /// - m_conn - the handle of the connection to send the message to + /// - m_nFlags - bitmask of k_nSteamNetworkingSend_xxx flags. + /// + /// All other fields are currently reserved and should not be modified. + /// + /// The library will take ownership of the message structures. They may + /// be modified or become invalid at any time, so you must not read them + /// after passing them to this function. + /// + /// pOutMessageNumberOrResult is an optional array that will receive, + /// for each message, the message number that was assigned to the message + /// if sending was successful. If sending failed, then a negative EResult + /// value is placed into the array. For example, the array will hold + /// -k_EResultInvalidState if the connection was in an invalid state. + /// See ISteamNetworkingSockets::SendMessageToConnection for possible + /// failure codes. + virtual void SendMessages( int nMessages, SteamNetworkingMessage_t *const *pMessages, int64 *pOutMessageNumberOrResult ) = 0; + + /// Flush any messages waiting on the Nagle timer and send them + /// at the next transmission opportunity (often that means right now). + /// + /// If Nagle is enabled (it's on by default) then when calling + /// SendMessageToConnection the message will be buffered, up to the Nagle time + /// before being sent, to merge small messages into the same packet. + /// (See k_ESteamNetworkingConfig_NagleTime) + /// + /// Returns: + /// k_EResultInvalidParam: invalid connection handle + /// k_EResultInvalidState: connection is in an invalid state + /// k_EResultNoConnection: connection has ended + /// k_EResultIgnored: We weren't (yet) connected, so this operation has no effect. + virtual EResult FlushMessagesOnConnection( HSteamNetConnection hConn ) = 0; + + /// Fetch the next available message(s) from the connection, if any. + /// Returns the number of messages returned into your array, up to nMaxMessages. + /// If the connection handle is invalid, -1 is returned. + /// + /// The order of the messages returned in the array is relevant. + /// Reliable messages will be received in the order they were sent (and with the + /// same sizes --- see SendMessageToConnection for on this subtle difference from a stream socket). + /// + /// Unreliable messages may be dropped, or delivered out of order with respect to + /// each other or with respect to reliable messages. The same unreliable message + /// may be received multiple times. + /// + /// If any messages are returned, you MUST call SteamNetworkingMessage_t::Release() on each + /// of them free up resources after you are done. It is safe to keep the object alive for + /// a little while (put it into some queue, etc), and you may call Release() from any thread. + virtual int ReceiveMessagesOnConnection( HSteamNetConnection hConn, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + /// Returns basic information about the high-level state of the connection. + virtual bool GetConnectionInfo( HSteamNetConnection hConn, SteamNetConnectionInfo_t *pInfo ) = 0; + + /// Returns a small set of information about the real-time state of the connection + /// and the queue status of each lane. + /// + /// - pStatus may be NULL if the information is not desired. (E.g. you are only interested + /// in the lane information.) + /// - On entry, nLanes specifies the length of the pLanes array. This may be 0 + /// if you do not wish to receive any lane data. It's OK for this to be smaller than + /// the total number of configured lanes. + /// - pLanes points to an array that will receive lane-specific info. It can be NULL + /// if this is not needed. + /// + /// Return value: + /// - k_EResultNoConnection - connection handle is invalid or connection has been closed. + /// - k_EResultInvalidParam - nLanes is bad + virtual EResult GetConnectionRealTimeStatus( HSteamNetConnection hConn, SteamNetConnectionRealTimeStatus_t *pStatus, + int nLanes, SteamNetConnectionRealTimeLaneStatus_t *pLanes ) = 0; + + /// Returns detailed connection stats in text format. Useful + /// for dumping to a log, etc. + /// + /// Returns: + /// -1 failure (bad connection handle) + /// 0 OK, your buffer was filled in and '\0'-terminated + /// >0 Your buffer was either nullptr, or it was too small and the text got truncated. + /// Try again with a buffer of at least N bytes. + virtual int GetDetailedConnectionStatus( HSteamNetConnection hConn, char *pszBuf, int cbBuf ) = 0; + + /// Returns local IP and port that a listen socket created using CreateListenSocketIP is bound to. + /// + /// An IPv6 address of ::0 means "any IPv4 or IPv6" + /// An IPv6 address of ::ffff:0000:0000 means "any IPv4" + virtual bool GetListenSocketAddress( HSteamListenSocket hSocket, SteamNetworkingIPAddr *address ) = 0; + + /// Create a pair of connections that are talking to each other, e.g. a loopback connection. + /// This is very useful for testing, or so that your client/server code can work the same + /// even when you are running a local "server". + /// + /// The two connections will immediately be placed into the connected state, and no callbacks + /// will be posted immediately. After this, if you close either connection, the other connection + /// will receive a callback, exactly as if they were communicating over the network. You must + /// close *both* sides in order to fully clean up the resources! + /// + /// By default, internal buffers are used, completely bypassing the network, the chopping up of + /// messages into packets, encryption, copying the payload, etc. This means that loopback + /// packets, by default, will not simulate lag or loss. Passing true for bUseNetworkLoopback will + /// cause the socket pair to send packets through the local network loopback device (127.0.0.1) + /// on ephemeral ports. Fake lag and loss are supported in this case, and CPU time is expended + /// to encrypt and decrypt. + /// + /// If you wish to assign a specific identity to either connection, you may pass a particular + /// identity. Otherwise, if you pass nullptr, the respective connection will assume a generic + /// "localhost" identity. If you use real network loopback, this might be translated to the + /// actual bound loopback port. Otherwise, the port will be zero. + virtual bool CreateSocketPair( HSteamNetConnection *pOutConnection1, HSteamNetConnection *pOutConnection2, bool bUseNetworkLoopback, const SteamNetworkingIdentity *pIdentity1, const SteamNetworkingIdentity *pIdentity2 ) = 0; + + /// Configure multiple outbound messages streams ("lanes") on a connection, and + /// control head-of-line blocking between them. Messages within a given lane + /// are always sent in the order they are queued, but messages from different + /// lanes may be sent out of order. Each lane has its own message number + /// sequence. The first message sent on each lane will be assigned the number 1. + /// + /// Each lane has a "priority". Lanes with higher numeric values will only be processed + /// when all lanes with lower number values are empty. The magnitudes of the priority + /// values are not relevant, only their sort order. + /// + /// Each lane also is assigned a weight, which controls the approximate proportion + /// of the bandwidth that will be consumed by the lane, relative to other lanes + /// of the same priority. (This is assuming the lane stays busy. An idle lane + /// does not build up "credits" to be be spent once a message is queued.) + /// This value is only meaningful as a proportion, relative to other lanes with + /// the same priority. For lanes with different priorities, the strict priority + /// order will prevail, and their weights relative to each other are not relevant. + /// Thus, if a lane has a unique priority value, the weight value for that lane is + /// not relevant. + /// + /// Example: 3 lanes, with priorities [ 0, 10, 10 ] and weights [ (NA), 20, 5 ]. + /// Messages sent on the first will always be sent first, before messages in the + /// other two lanes. Its weight value is irrelevant, since there are no other + /// lanes with priority=0. The other two lanes will share bandwidth, with the second + /// and third lanes sharing bandwidth using a ratio of approximately 4:1. + /// (The weights [ NA, 4, 1 ] would be equivalent.) + /// + /// Notes: + /// - At the time of this writing, some code has performance cost that is linear + /// in the number of lanes, so keep the number of lanes to an absolute minimum. + /// 3 or so is fine; >8 is a lot. The max number of lanes on Steam is 255, + /// which is a very large number and not recommended! If you are compiling this + /// library from source, see STEAMNETWORKINGSOCKETS_MAX_LANES.) + /// - Lane priority values may be any int. Their absolute value is not relevant, + /// only the order matters. + /// - Weights must be positive, and due to implementation details, they are restricted + /// to 16-bit values. The absolute magnitudes don't matter, just the proportions. + /// - Messages sent on a lane index other than 0 have a small overhead on the wire, + /// so for maximum wire efficiency, lane 0 should be the "most common" lane, regardless + /// of priorities or weights. + /// - A connection has a single lane by default. Calling this function with + /// nNumLanes=1 is legal, but pointless, since the priority and weight values are + /// irrelevant in that case. + /// - You may reconfigure connection lanes at any time, however reducing the number of + /// lanes is not allowed. + /// - Reconfiguring lanes might restart any bandwidth sharing balancing. Usually you + /// will call this function once, near the start of the connection, perhaps after + /// exchanging a few messages. + /// - To assign all lanes the same priority, you may use pLanePriorities=NULL. + /// - If you wish all lanes with the same priority to share bandwidth equally (or + /// if no two lanes have the same priority value, and thus priority values are + /// irrelevant), you may use pLaneWeights=NULL + /// - Priorities and weights determine the order that messages are SENT on the wire. + /// There are NO GUARANTEES on the order that messages are RECEIVED! Due to packet + /// loss, out-of-order delivery, and subtle details of packet serialization, messages + /// might still be received slightly out-of-order! The *only* strong guarantee is that + /// *reliable* messages on the *same lane* will be delivered in the order they are sent. + /// - Each host configures the lanes for the packets they send; the lanes for the flow + /// in one direction are completely unrelated to the lanes in the opposite direction. + /// + /// Return value: + /// - k_EResultNoConnection - bad hConn + /// - k_EResultInvalidParam - Invalid number of lanes, bad weights, or you tried to reduce the number of lanes + /// - k_EResultInvalidState - Connection is already dead, etc + /// + /// See also: + /// SteamNetworkingMessage_t::m_idxLane + virtual EResult ConfigureConnectionLanes( HSteamNetConnection hConn, int nNumLanes, const int *pLanePriorities, const uint16 *pLaneWeights ) = 0; + + // + // Identity and authentication + // + + /// Get the identity assigned to this interface. + /// E.g. on Steam, this is the user's SteamID, or for the gameserver interface, the SteamID assigned + /// to the gameserver. Returns false and sets the result to an invalid identity if we don't know + /// our identity yet. (E.g. GameServer has not logged in. On Steam, the user will know their SteamID + /// even if they are not signed into Steam.) + virtual bool GetIdentity( SteamNetworkingIdentity *pIdentity ) = 0; + + /// Indicate our desire to be ready participate in authenticated communications. + /// If we are currently not ready, then steps will be taken to obtain the necessary + /// certificates. (This includes a certificate for us, as well as any CA certificates + /// needed to authenticate peers.) + /// + /// You can call this at program init time if you know that you are going to + /// be making authenticated connections, so that we will be ready immediately when + /// those connections are attempted. (Note that essentially all connections require + /// authentication, with the exception of ordinary UDP connections with authentication + /// disabled using k_ESteamNetworkingConfig_IP_AllowWithoutAuth.) If you don't call + /// this function, we will wait until a feature is utilized that that necessitates + /// these resources. + /// + /// You can also call this function to force a retry, if failure has occurred. + /// Once we make an attempt and fail, we will not automatically retry. + /// In this respect, the behavior of the system after trying and failing is the same + /// as before the first attempt: attempting authenticated communication or calling + /// this function will call the system to attempt to acquire the necessary resources. + /// + /// You can use GetAuthenticationStatus or listen for SteamNetAuthenticationStatus_t + /// to monitor the status. + /// + /// Returns the current value that would be returned from GetAuthenticationStatus. + virtual ESteamNetworkingAvailability InitAuthentication() = 0; + + /// Query our readiness to participate in authenticated communications. A + /// SteamNetAuthenticationStatus_t callback is posted any time this status changes, + /// but you can use this function to query it at any time. + /// + /// The value of SteamNetAuthenticationStatus_t::m_eAvail is returned. If you only + /// want this high level status, you can pass NULL for pDetails. If you want further + /// details, pass non-NULL to receive them. + virtual ESteamNetworkingAvailability GetAuthenticationStatus( SteamNetAuthenticationStatus_t *pDetails ) = 0; + + // + // Poll groups. A poll group is a set of connections that can be polled efficiently. + // (In our API, to "poll" a connection means to retrieve all pending messages. We + // actually don't have an API to "poll" the connection *state*, like BSD sockets.) + // + + /// Create a new poll group. + /// + /// You should destroy the poll group when you are done using DestroyPollGroup + virtual HSteamNetPollGroup CreatePollGroup() = 0; + + /// Destroy a poll group created with CreatePollGroup(). + /// + /// If there are any connections in the poll group, they are removed from the group, + /// and left in a state where they are not part of any poll group. + /// Returns false if passed an invalid poll group handle. + virtual bool DestroyPollGroup( HSteamNetPollGroup hPollGroup ) = 0; + + /// Assign a connection to a poll group. Note that a connection may only belong to a + /// single poll group. Adding a connection to a poll group implicitly removes it from + /// any other poll group it is in. + /// + /// You can pass k_HSteamNetPollGroup_Invalid to remove a connection from its current + /// poll group without adding it to a new poll group. + /// + /// If there are received messages currently pending on the connection, an attempt + /// is made to add them to the queue of messages for the poll group in approximately + /// the order that would have applied if the connection was already part of the poll + /// group at the time that the messages were received. + /// + /// Returns false if the connection handle is invalid, or if the poll group handle + /// is invalid (and not k_HSteamNetPollGroup_Invalid). + virtual bool SetConnectionPollGroup( HSteamNetConnection hConn, HSteamNetPollGroup hPollGroup ) = 0; + + /// Same as ReceiveMessagesOnConnection, but will return the next messages available + /// on any connection in the poll group. Examine SteamNetworkingMessage_t::m_conn + /// to know which connection. (SteamNetworkingMessage_t::m_nConnUserData might also + /// be useful.) + /// + /// Delivery order of messages among different connections will usually match the + /// order that the last packet was received which completed the message. But this + /// is not a strong guarantee, especially for packets received right as a connection + /// is being assigned to poll group. + /// + /// Delivery order of messages on the same connection is well defined and the + /// same guarantees are present as mentioned in ReceiveMessagesOnConnection. + /// (But the messages are not grouped by connection, so they will not necessarily + /// appear consecutively in the list; they may be interleaved with messages for + /// other connections.) + virtual int ReceiveMessagesOnPollGroup( HSteamNetPollGroup hPollGroup, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + // + // Clients connecting to dedicated servers hosted in a data center, + // using tickets issued by your game coordinator. If you are not + // issuing your own tickets to restrict who can attempt to connect + // to your server, then you won't use these functions. + // + + /// Call this when you receive a ticket from your backend / matchmaking system. Puts the + /// ticket into a persistent cache, and optionally returns the parsed ticket. + /// + /// See stamdatagram_ticketgen.h for more details. + virtual bool ReceivedRelayAuthTicket( const void *pvTicket, int cbTicket, SteamDatagramRelayAuthTicket *pOutParsedTicket ) = 0; + + /// Search cache for a ticket to talk to the server on the specified virtual port. + /// If found, returns the number of seconds until the ticket expires, and optionally + /// the complete cracked ticket. Returns 0 if we don't have a ticket. + /// + /// Typically this is useful just to confirm that you have a ticket, before you + /// call ConnectToHostedDedicatedServer to connect to the server. + virtual int FindRelayAuthTicketForServer( const SteamNetworkingIdentity &identityGameServer, int nRemoteVirtualPort, SteamDatagramRelayAuthTicket *pOutParsedTicket ) = 0; + + /// Client call to connect to a server hosted in a Valve data center, on the specified virtual + /// port. You must have placed a ticket for this server into the cache, or else this connect + /// attempt will fail! If you are not issuing your own tickets, then to connect to a dedicated + /// server via SDR in auto-ticket mode, use ConnectP2P. (The server must be configured to allow + /// this type of connection by listening using CreateListenSocketP2P.) + /// + /// You may wonder why tickets are stored in a cache, instead of simply being passed as an argument + /// here. The reason is to make reconnection to a gameserver robust, even if the client computer loses + /// connection to Steam or the central backend, or the app is restarted or crashes, etc. + /// + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() + /// when your app initializes + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamNetConnection ConnectToHostedDedicatedServer( const SteamNetworkingIdentity &identityTarget, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + // + // Servers hosted in data centers known to the Valve relay network + // + + /// Returns the value of the SDR_LISTEN_PORT environment variable. This + /// is the UDP server your server will be listening on. This will + /// configured automatically for you in production environments. + /// + /// In development, you'll need to set it yourself. See + /// https://partner.steamgames.com/doc/api/ISteamNetworkingSockets + /// for more information on how to configure dev environments. + virtual uint16 GetHostedDedicatedServerPort() = 0; + + /// Returns 0 if SDR_LISTEN_PORT is not set. Otherwise, returns the data center the server + /// is running in. This will be k_SteamDatagramPOPID_dev in non-production environment. + virtual SteamNetworkingPOPID GetHostedDedicatedServerPOPID() = 0; + + /// Return info about the hosted server. This contains the PoPID of the server, + /// and opaque routing information that can be used by the relays to send traffic + /// to your server. + /// + /// You will need to send this information to your backend, and put it in tickets, + /// so that the relays will know how to forward traffic from + /// clients to your server. See SteamDatagramRelayAuthTicket for more info. + /// + /// Also, note that the routing information is contained in SteamDatagramGameCoordinatorServerLogin, + /// so if possible, it's preferred to use GetGameCoordinatorServerLogin to send this info + /// to your game coordinator service, and also login securely at the same time. + /// + /// On a successful exit, k_EResultOK is returned + /// + /// Unsuccessful exit: + /// - Something other than k_EResultOK is returned. + /// - k_EResultInvalidState: We are not configured to listen for SDR (SDR_LISTEN_SOCKET + /// is not set.) + /// - k_EResultPending: we do not (yet) have the authentication information needed. + /// (See GetAuthenticationStatus.) If you use environment variables to pre-fetch + /// the network config, this data should always be available immediately. + /// - A non-localized diagnostic debug message will be placed in m_data that describes + /// the cause of the failure. + /// + /// NOTE: The returned blob is not encrypted. Send it to your backend, but don't + /// directly share it with clients. + virtual EResult GetHostedDedicatedServerAddress( SteamDatagramHostedAddress *pRouting ) = 0; + + /// Create a listen socket on the specified virtual port. The physical UDP port to use + /// will be determined by the SDR_LISTEN_PORT environment variable. If a UDP port is not + /// configured, this call will fail. + /// + /// This call MUST be made through the SteamGameServerNetworkingSockets() interface. + /// + /// This function should be used when you are using the ticket generator library + /// to issue your own tickets. Clients connecting to the server on this virtual + /// port will need a ticket, and they must connect using ConnectToHostedDedicatedServer. + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamListenSocket CreateHostedDedicatedServerListenSocket( int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Generate an authentication blob that can be used to securely login with + /// your backend, using SteamDatagram_ParseHostedServerLogin. (See + /// steamdatagram_gamecoordinator.h) + /// + /// Before calling the function: + /// - Populate the app data in pLoginInfo (m_cbAppData and m_appData). You can leave + /// all other fields uninitialized. + /// - *pcbSignedBlob contains the size of the buffer at pBlob. (It should be + /// at least k_cbMaxSteamDatagramGameCoordinatorServerLoginSerialized.) + /// + /// On a successful exit: + /// - k_EResultOK is returned + /// - All of the remaining fields of pLoginInfo will be filled out. + /// - *pcbSignedBlob contains the size of the serialized blob that has been + /// placed into pBlob. + /// + /// Unsuccessful exit: + /// - Something other than k_EResultOK is returned. + /// - k_EResultNotLoggedOn: you are not logged in (yet) + /// - See GetHostedDedicatedServerAddress for more potential failure return values. + /// - A non-localized diagnostic debug message will be placed in pBlob that describes + /// the cause of the failure. + /// + /// This works by signing the contents of the SteamDatagramGameCoordinatorServerLogin + /// with the cert that is issued to this server. In dev environments, it's OK if you do + /// not have a cert. (You will need to enable insecure dev login in SteamDatagram_ParseHostedServerLogin.) + /// Otherwise, you will need a signed cert. + /// + /// NOTE: The routing blob returned here is not encrypted. Send it to your backend + /// and don't share it directly with clients. + virtual EResult GetGameCoordinatorServerLogin( SteamDatagramGameCoordinatorServerLogin *pLoginInfo, int *pcbSignedBlob, void *pBlob ) = 0; + + + // + // Relayed connections using custom signaling protocol + // + // This is used if you have your own method of sending out-of-band + // signaling / rendezvous messages through a mutually trusted channel. + // + + /// Create a P2P "client" connection that does signaling over a custom + /// rendezvous/signaling channel. + /// + /// pSignaling points to a new object that you create just for this connection. + /// It must stay valid until Release() is called. Once you pass the + /// object to this function, it assumes ownership. Release() will be called + /// from within the function call if the call fails. Furthermore, until Release() + /// is called, you should be prepared for methods to be invoked on your + /// object from any thread! You need to make sure your object is threadsafe! + /// Furthermore, you should make sure that dispatching the methods is done + /// as quickly as possible. + /// + /// This function will immediately construct a connection in the "connecting" + /// state. Soon after (perhaps before this function returns, perhaps in another thread), + /// the connection will begin sending signaling messages by calling + /// ISteamNetworkingConnectionSignaling::SendSignal. + /// + /// When the remote peer accepts the connection (See + /// ISteamNetworkingSignalingRecvContext::OnConnectRequest), + /// it will begin sending signaling messages. When these messages are received, + /// you can pass them to the connection using ReceivedP2PCustomSignal. + /// + /// If you know the identity of the peer that you expect to be on the other end, + /// you can pass their identity to improve debug output or just detect bugs. + /// If you don't know their identity yet, you can pass NULL, and their + /// identity will be established in the connection handshake. + /// + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() + /// when your app initializes + /// + /// If you need to set any initial config options, pass them here. See + /// SteamNetworkingConfigValue_t for more about why this is preferable to + /// setting the options "immediately" after creation. + virtual HSteamNetConnection ConnectP2PCustomSignaling( ISteamNetworkingConnectionSignaling *pSignaling, const SteamNetworkingIdentity *pPeerIdentity, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// Called when custom signaling has received a message. When your + /// signaling channel receives a message, it should save off whatever + /// routing information was in the envelope into the context object, + /// and then pass the payload to this function. + /// + /// A few different things can happen next, depending on the message: + /// + /// - If the signal is associated with existing connection, it is dealt + /// with immediately. If any replies need to be sent, they will be + /// dispatched using the ISteamNetworkingConnectionSignaling + /// associated with the connection. + /// - If the message represents a connection request (and the request + /// is not redundant for an existing connection), a new connection + /// will be created, and ReceivedConnectRequest will be called on your + /// context object to determine how to proceed. + /// - Otherwise, the message is for a connection that does not + /// exist (anymore). In this case, we *may* call SendRejectionReply + /// on your context object. + /// + /// In any case, we will not save off pContext or access it after this + /// function returns. + /// + /// Returns true if the message was parsed and dispatched without anything + /// unusual or suspicious happening. Returns false if there was some problem + /// with the message that prevented ordinary handling. (Debug output will + /// usually have more information.) + /// + /// If you expect to be using relayed connections, then you probably want + /// to call ISteamNetworkingUtils::InitRelayNetworkAccess() when your app initializes + virtual bool ReceivedP2PCustomSignal( const void *pMsg, int cbMsg, ISteamNetworkingSignalingRecvContext *pContext ) = 0; + + // + // Certificate provision by the application. On Steam, we normally handle all this automatically + // and you will not need to use these advanced functions. + // + + /// Get blob that describes a certificate request. You can send this to your game coordinator. + /// Upon entry, *pcbBlob should contain the size of the buffer. On successful exit, it will + /// return the number of bytes that were populated. You can pass pBlob=NULL to query for the required + /// size. (512 bytes is a conservative estimate.) + /// + /// Pass this blob to your game coordinator and call SteamDatagram_CreateCert. + virtual bool GetCertificateRequest( int *pcbBlob, void *pBlob, SteamNetworkingErrMsg &errMsg ) = 0; + + /// Set the certificate. The certificate blob should be the output of + /// SteamDatagram_CreateCert. + virtual bool SetCertificate( const void *pCertificate, int cbCertificate, SteamNetworkingErrMsg &errMsg ) = 0; + + /// Reset the identity associated with this instance. + /// Any open connections are closed. Any previous certificates, etc are discarded. + /// You can pass a specific identity that you want to use, or you can pass NULL, + /// in which case the identity will be invalid until you set it using SetCertificate + /// + /// NOTE: This function is not actually supported on Steam! It is included + /// for use on other platforms where the active user can sign out and + /// a new user can sign in. + virtual void ResetIdentity( const SteamNetworkingIdentity *pIdentity ) = 0; + + // + // Misc + // + + /// Invoke all callback functions queued for this interface. + /// See k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, etc + /// + /// You don't need to call this if you are using Steam's callback dispatch + /// mechanism (SteamAPI_RunCallbacks and SteamGameserver_RunCallbacks). + virtual void RunCallbacks() = 0; + + // + // "FakeIP" system. + // + // A FakeIP is essentially a temporary, arbitrary identifier that + // happens to be a valid IPv4 address. The purpose of this system is to make it + // easy to integrate with existing code that identifies hosts using IPv4 addresses. + // The FakeIP address will never actually be used to send or receive any packets + // on the Internet, it is strictly an identifier. + // + // FakeIP addresses are designed to (hopefully) pass through existing code as + // transparently as possible, while conflicting with "real" addresses that might + // be in use on networks (both the Internet and LANs) in the same code as little + // as possible. At the time this comment is being written, they come from the + // 169.254.0.0/16 range, and the port number will always be >1024. HOWEVER, + // this is subject to change! Do not make assumptions about these addresses, + // or your code might break in the future. In particular, you should use + // functions such as ISteamNetworkingUtils::IsFakeIP to determine if an IP + // address is a "fake" one used by this system. + // + + /// Begin asynchronous process of allocating a fake IPv4 address that other + /// peers can use to contact us via P2P. IP addresses returned by this + /// function are globally unique for a given appid. + /// + /// nNumPorts is the numbers of ports you wish to reserve. This is useful + /// for the same reason that listening on multiple UDP ports is useful for + /// different types of traffic. Because these allocations come from a global + /// namespace, there is a relatively strict limit on the maximum number of + /// ports you may request. (At the time of this writing, the limit is 4.) + /// The port assignments are *not* guaranteed to have any particular order + /// or relationship! Do *not* assume they are contiguous, even though that + /// may often occur in practice. + /// + /// Returns false if a request was already in progress, true if a new request + /// was started. A SteamNetworkingFakeIPResult_t will be posted when the request + /// completes. + /// + /// For gameservers, you *must* call this after initializing the SDK but before + /// beginning login. Steam needs to know in advance that FakeIP will be used. + /// Everywhere your public IP would normally appear (such as the server browser) will be + /// replaced by the FakeIP, and the fake port at index 0. The request is actually queued + /// until the logon completes, so you must not wait until the allocation completes + /// before logging in. Except for trivial failures that can be detected locally + /// (e.g. invalid parameter), a SteamNetworkingFakeIPResult_t callback (whether success or + /// failure) will not be posted until after we have logged in. Furthermore, it is assumed + /// that FakeIP allocation is essential for your application to function, and so failure + /// will not be reported until *several* retries have been attempted. This process may + /// last several minutes. It is *highly* recommended to treat failure as fatal. + /// + /// To communicate using a connection-oriented (TCP-style) API: + /// - Server creates a listen socket using CreateListenSocketP2PFakeIP + /// - Client connects using ConnectByIPAddress, passing in the FakeIP address. + /// - The connection will behave mostly like a P2P connection. The identities + /// that appear in SteamNetConnectionInfo_t will be the FakeIP identity until + /// we know the real identity. Then it will be the real identity. If the + /// SteamNetConnectionInfo_t::m_addrRemote is valid, it will be a real IPv4 + /// address of a NAT-punched connection. Otherwise, it will not be valid. + /// + /// To communicate using an ad-hoc sendto/recv from (UDP-style) API, + /// use CreateFakeUDPPort. + virtual bool BeginAsyncRequestFakeIP( int nNumPorts ) = 0; + + /// Return info about the FakeIP and port(s) that we have been assigned, + /// if any. idxFirstPort is currently reserved and must be zero. + /// Make sure and check SteamNetworkingFakeIPResult_t::m_eResult + virtual void GetFakeIP( int idxFirstPort, SteamNetworkingFakeIPResult_t *pInfo ) = 0; + + /// Create a listen socket that will listen for P2P connections sent + /// to our FakeIP. A peer can initiate connections to this listen + /// socket by calling ConnectByIPAddress. + /// + /// idxFakePort refers to the *index* of the fake port requested, + /// not the actual port number. For example, pass 0 to refer to the + /// first port in the reservation. You must call this only after calling + /// BeginAsyncRequestFakeIP. However, you do not need to wait for the + /// request to complete before creating the listen socket. + virtual HSteamListenSocket CreateListenSocketP2PFakeIP( int idxFakePort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0; + + /// If the connection was initiated using the "FakeIP" system, then we + /// we can get an IP address for the remote host. If the remote host had + /// a global FakeIP at the time the connection was established, this + /// function will return that global IP. Otherwise, a FakeIP that is + /// unique locally will be allocated from the local FakeIP address space, + /// and that will be returned. + /// + /// The allocation of local FakeIPs attempts to assign addresses in + /// a consistent manner. If multiple connections are made to the + /// same remote host, they *probably* will return the same FakeIP. + /// However, since the namespace is limited, this cannot be guaranteed. + /// + /// On failure, returns: + /// - k_EResultInvalidParam: invalid connection handle + /// - k_EResultIPNotFound: This connection wasn't made using FakeIP system + virtual EResult GetRemoteFakeIPForConnection( HSteamNetConnection hConn, SteamNetworkingIPAddr *pOutAddr ) = 0; + + /// Get an interface that can be used like a UDP port to send/receive + /// datagrams to a FakeIP address. This is intended to make it easy + /// to port existing UDP-based code to take advantage of SDR. + /// + /// idxFakeServerPort refers to the *index* of the port allocated using + /// BeginAsyncRequestFakeIP and is used to create "server" ports. You may + /// call this before the allocation has completed. However, any attempts + /// to send packets will fail until the allocation has succeeded. When + /// the peer receives packets sent from this interface, the from address + /// of the packet will be the globally-unique FakeIP. If you call this + /// function multiple times and pass the same (nonnegative) fake port index, + /// the same object will be returned, and this object is not reference counted. + /// + /// To create a "client" port (e.g. the equivalent of an ephemeral UDP port) + /// pass -1. In this case, a distinct object will be returned for each call. + /// When the peer receives packets sent from this interface, the peer will + /// assign a FakeIP from its own locally-controlled namespace. + virtual ISteamNetworkingFakeUDPPort *CreateFakeUDPPort( int idxFakeServerPort ) = 0; + +protected: + ~ISteamNetworkingSockets(); // Silence some warnings +}; +#define STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "SteamNetworkingSockets012" + +// Global accessors + +// Using standalone lib +#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB + + static_assert( STEAMNETWORKINGSOCKETS_INTERFACE_VERSION[24] == '2', "Version mismatch" ); + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamNetworkingSockets_LibV12(); + inline ISteamNetworkingSockets *SteamNetworkingSockets_Lib() { return SteamNetworkingSockets_LibV12(); } + + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingSockets *SteamGameServerNetworkingSockets_LibV12(); + inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets_Lib() { return SteamGameServerNetworkingSockets_LibV12(); } + + #ifndef STEAMNETWORKINGSOCKETS_STEAMAPI + inline ISteamNetworkingSockets *SteamNetworkingSockets() { return SteamNetworkingSockets_LibV12(); } + inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets() { return SteamGameServerNetworkingSockets_LibV12(); } + #endif +#endif + +// Using Steamworks SDK +#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI + STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamNetworkingSockets_SteamAPI, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION ); + STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamGameServerNetworkingSockets_SteamAPI, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION ); + + #ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB + inline ISteamNetworkingSockets *SteamNetworkingSockets() { return SteamNetworkingSockets_SteamAPI(); } + inline ISteamNetworkingSockets *SteamGameServerNetworkingSockets() { return SteamGameServerNetworkingSockets_SteamAPI(); } + #endif +#endif + +/// Callback struct used to notify when a connection has changed state +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error "Must define VALVE_CALLBACK_PACK_SMALL or VALVE_CALLBACK_PACK_LARGE" +#endif + +/// This callback is posted whenever a connection is created, destroyed, or changes state. +/// The m_info field will contain a complete description of the connection at the time the +/// change occurred and the callback was posted. In particular, m_eState will have the +/// new connection state. +/// +/// You will usually need to listen for this callback to know when: +/// - A new connection arrives on a listen socket. +/// m_info.m_hListenSocket will be set, m_eOldState = k_ESteamNetworkingConnectionState_None, +/// and m_info.m_eState = k_ESteamNetworkingConnectionState_Connecting. +/// See ISteamNetworkigSockets::AcceptConnection. +/// - A connection you initiated has been accepted by the remote host. +/// m_eOldState = k_ESteamNetworkingConnectionState_Connecting, and +/// m_info.m_eState = k_ESteamNetworkingConnectionState_Connected. +/// Some connections might transition to k_ESteamNetworkingConnectionState_FindingRoute first. +/// - A connection has been actively rejected or closed by the remote host. +/// m_eOldState = k_ESteamNetworkingConnectionState_Connecting or k_ESteamNetworkingConnectionState_Connected, +/// and m_info.m_eState = k_ESteamNetworkingConnectionState_ClosedByPeer. m_info.m_eEndReason +/// and m_info.m_szEndDebug will have for more details. +/// NOTE: upon receiving this callback, you must still destroy the connection using +/// ISteamNetworkingSockets::CloseConnection to free up local resources. (The details +/// passed to the function are not used in this case, since the connection is already closed.) +/// - A problem was detected with the connection, and it has been closed by the local host. +/// The most common failure is timeout, but other configuration or authentication failures +/// can cause this. m_eOldState = k_ESteamNetworkingConnectionState_Connecting or +/// k_ESteamNetworkingConnectionState_Connected, and m_info.m_eState = k_ESteamNetworkingConnectionState_ProblemDetectedLocally. +/// m_info.m_eEndReason and m_info.m_szEndDebug will have for more details. +/// NOTE: upon receiving this callback, you must still destroy the connection using +/// ISteamNetworkingSockets::CloseConnection to free up local resources. (The details +/// passed to the function are not used in this case, since the connection is already closed.) +/// +/// Remember that callbacks are posted to a queue, and networking connections can +/// change at any time. It is possible that the connection has already changed +/// state by the time you process this callback. +/// +/// Also note that callbacks will be posted when connections are created and destroyed by your own API calls. +struct SteamNetConnectionStatusChangedCallback_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 1 }; + + /// Connection handle + HSteamNetConnection m_hConn; + + /// Full connection info + SteamNetConnectionInfo_t m_info; + + /// Previous state. (Current state is in m_info.m_eState) + ESteamNetworkingConnectionState m_eOldState; +}; + +/// A struct used to describe our readiness to participate in authenticated, +/// encrypted communication. In order to do this we need: +/// +/// - The list of trusted CA certificates that might be relevant for this +/// app. +/// - A valid certificate issued by a CA. +/// +/// This callback is posted whenever the state of our readiness changes. +struct SteamNetAuthenticationStatus_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 2 }; + + /// Status + ESteamNetworkingAvailability m_eAvail; + + /// Non-localized English language status. For diagnostic/debugging + /// purposes only. + char m_debugMsg[ 256 ]; +}; + +#pragma pack( pop ) + +#endif // ISTEAMNETWORKINGSOCKETS diff --git a/lib/windows/include/steam/isteamnetworkingutils.h b/lib/windows/include/steam/isteamnetworkingutils.h new file mode 100644 index 0000000..626efed --- /dev/null +++ b/lib/windows/include/steam/isteamnetworkingutils.h @@ -0,0 +1,500 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Purpose: misc networking utilities +// +//============================================================================= + +#ifndef ISTEAMNETWORKINGUTILS +#define ISTEAMNETWORKINGUTILS +#pragma once + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +struct SteamDatagramRelayAuthTicket; +struct SteamRelayNetworkStatus_t; + +//----------------------------------------------------------------------------- +/// Misc networking utilities for checking the local networking environment +/// and estimating pings. +class ISteamNetworkingUtils +{ +public: + // + // Efficient message sending + // + + /// Allocate and initialize a message object. Usually the reason + /// you call this is to pass it to ISteamNetworkingSockets::SendMessages. + /// The returned object will have all of the relevant fields cleared to zero. + /// + /// Optionally you can also request that this system allocate space to + /// hold the payload itself. If cbAllocateBuffer is nonzero, the system + /// will allocate memory to hold a payload of at least cbAllocateBuffer bytes. + /// m_pData will point to the allocated buffer, m_cbSize will be set to the + /// size, and m_pfnFreeData will be set to the proper function to free up + /// the buffer. + /// + /// If cbAllocateBuffer=0, then no buffer is allocated. m_pData will be NULL, + /// m_cbSize will be zero, and m_pfnFreeData will be NULL. You will need to + /// set each of these. + virtual SteamNetworkingMessage_t *AllocateMessage( int cbAllocateBuffer ) = 0; + + // + // Access to Steam Datagram Relay (SDR) network + // + + // + // Initialization and status check + // + + /// If you know that you are going to be using the relay network (for example, + /// because you anticipate making P2P connections), call this to initialize the + /// relay network. If you do not call this, the initialization will + /// be delayed until the first time you use a feature that requires access + /// to the relay network, which will delay that first access. + /// + /// You can also call this to force a retry if the previous attempt has failed. + /// Performing any action that requires access to the relay network will also + /// trigger a retry, and so calling this function is never strictly necessary, + /// but it can be useful to call it a program launch time, if access to the + /// relay network is anticipated. + /// + /// Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + /// callbacks to know when initialization has completed. + /// Typically initialization completes in a few seconds. + /// + /// Note: dedicated servers hosted in known data centers do *not* need + /// to call this, since they do not make routing decisions. However, if + /// the dedicated server will be using P2P functionality, it will act as + /// a "client" and this should be called. + inline void InitRelayNetworkAccess(); + + /// Fetch current status of the relay network. + /// + /// SteamRelayNetworkStatus_t is also a callback. It will be triggered on + /// both the user and gameserver interfaces any time the status changes, or + /// ping measurement starts or stops. + /// + /// SteamRelayNetworkStatus_t::m_eAvail is returned. If you want + /// more details, you can pass a non-NULL value. + virtual ESteamNetworkingAvailability GetRelayNetworkStatus( SteamRelayNetworkStatus_t *pDetails ) = 0; + + // + // "Ping location" functions + // + // We use the ping times to the valve relays deployed worldwide to + // generate a "marker" that describes the location of an Internet host. + // Given two such markers, we can estimate the network latency between + // two hosts, without sending any packets. The estimate is based on the + // optimal route that is found through the Valve network. If you are + // using the Valve network to carry the traffic, then this is precisely + // the ping you want. If you are not, then the ping time will probably + // still be a reasonable estimate. + // + // This is extremely useful to select peers for matchmaking! + // + // The markers can also be converted to a string, so they can be transmitted. + // We have a separate library you can use on your app's matchmaking/coordinating + // server to manipulate these objects. (See steamdatagram_gamecoordinator.h) + + /// Return location info for the current host. Returns the approximate + /// age of the data, in seconds, or -1 if no data is available. + /// + /// It takes a few seconds to initialize access to the relay network. If + /// you call this very soon after calling InitRelayNetworkAccess, + /// the data may not be available yet. + /// + /// This always return the most up-to-date information we have available + /// right now, even if we are in the middle of re-calculating ping times. + virtual float GetLocalPingLocation( SteamNetworkPingLocation_t &result ) = 0; + + /// Estimate the round-trip latency between two arbitrary locations, in + /// milliseconds. This is a conservative estimate, based on routing through + /// the relay network. For most basic relayed connections, this ping time + /// will be pretty accurate, since it will be based on the route likely to + /// be actually used. + /// + /// If a direct IP route is used (perhaps via NAT traversal), then the route + /// will be different, and the ping time might be better. Or it might actually + /// be a bit worse! Standard IP routing is frequently suboptimal! + /// + /// But even in this case, the estimate obtained using this method is a + /// reasonable upper bound on the ping time. (Also it has the advantage + /// of returning immediately and not sending any packets.) + /// + /// In a few cases we might not able to estimate the route. In this case + /// a negative value is returned. k_nSteamNetworkingPing_Failed means + /// the reason was because of some networking difficulty. (Failure to + /// ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + /// currently answer the question for some other reason. + /// + /// Do you need to be able to do this from a backend/matchmaking server? + /// You are looking for the "game coordinator" library. + virtual int EstimatePingTimeBetweenTwoLocations( const SteamNetworkPingLocation_t &location1, const SteamNetworkPingLocation_t &location2 ) = 0; + + /// Same as EstimatePingTime, but assumes that one location is the local host. + /// This is a bit faster, especially if you need to calculate a bunch of + /// these in a loop to find the fastest one. + /// + /// In rare cases this might return a slightly different estimate than combining + /// GetLocalPingLocation with EstimatePingTimeBetweenTwoLocations. That's because + /// this function uses a slightly more complete set of information about what + /// route would be taken. + virtual int EstimatePingTimeFromLocalHost( const SteamNetworkPingLocation_t &remoteLocation ) = 0; + + /// Convert a ping location into a text format suitable for sending over the wire. + /// The format is a compact and human readable. However, it is subject to change + /// so please do not parse it yourself. Your buffer must be at least + /// k_cchMaxSteamNetworkingPingLocationString bytes. + virtual void ConvertPingLocationToString( const SteamNetworkPingLocation_t &location, char *pszBuf, int cchBufSize ) = 0; + + /// Parse back SteamNetworkPingLocation_t string. Returns false if we couldn't understand + /// the string. + virtual bool ParsePingLocationString( const char *pszString, SteamNetworkPingLocation_t &result ) = 0; + + /// Check if the ping data of sufficient recency is available, and if + /// it's too old, start refreshing it. + /// + /// Please only call this function when you *really* do need to force an + /// immediate refresh of the data. (For example, in response to a specific + /// user input to refresh this information.) Don't call it "just in case", + /// before every connection, etc. That will cause extra traffic to be sent + /// for no benefit. The library will automatically refresh the information + /// as needed. + /// + /// Returns true if sufficiently recent data is already available. + /// + /// Returns false if sufficiently recent data is not available. In this + /// case, ping measurement is initiated, if it is not already active. + /// (You cannot restart a measurement already in progress.) + /// + /// You can use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + /// to know when ping measurement completes. + virtual bool CheckPingDataUpToDate( float flMaxAgeSeconds ) = 0; + + // + // List of Valve data centers, and ping times to them. This might + // be useful to you if you are use our hosting, or just need to measure + // latency to a cloud data center where we are running relays. + // + + /// Fetch ping time of best available relayed route from this host to + /// the specified data center. + virtual int GetPingToDataCenter( SteamNetworkingPOPID popID, SteamNetworkingPOPID *pViaRelayPoP ) = 0; + + /// Get *direct* ping time to the relays at the data center. + virtual int GetDirectPingToPOP( SteamNetworkingPOPID popID ) = 0; + + /// Get number of network points of presence in the config + virtual int GetPOPCount() = 0; + + /// Get list of all POP IDs. Returns the number of entries that were filled into + /// your list. + virtual int GetPOPList( SteamNetworkingPOPID *list, int nListSz ) = 0; + + // + // Misc + // + + /// Fetch current timestamp. This timer has the following properties: + /// + /// - Monotonicity is guaranteed. + /// - The initial value will be at least 24*3600*30*1e6, i.e. about + /// 30 days worth of microseconds. In this way, the timestamp value of + /// 0 will always be at least "30 days ago". Also, negative numbers + /// will never be returned. + /// - Wraparound / overflow is not a practical concern. + /// + /// If you are running under the debugger and stop the process, the clock + /// might not advance the full wall clock time that has elapsed between + /// calls. If the process is not blocked from normal operation, the + /// timestamp values will track wall clock time, even if you don't call + /// the function frequently. + /// + /// The value is only meaningful for this run of the process. Don't compare + /// it to values obtained on another computer, or other runs of the same process. + virtual SteamNetworkingMicroseconds GetLocalTimestamp() = 0; + + /// Set a function to receive network-related information that is useful for debugging. + /// This can be very useful during development, but it can also be useful for troubleshooting + /// problems with tech savvy end users. If you have a console or other log that customers + /// can examine, these log messages can often be helpful to troubleshoot network issues. + /// (Especially any warning/error messages.) + /// + /// The detail level indicates what message to invoke your callback on. Lower numeric + /// value means more important, and the value you pass is the lowest priority (highest + /// numeric value) you wish to receive callbacks for. + /// + /// The value here controls the detail level for most messages. You can control the + /// detail level for various subsystems (perhaps only for certain connections) by + /// adjusting the configuration values k_ESteamNetworkingConfig_LogLevel_Xxxxx. + /// + /// Except when debugging, you should only use k_ESteamNetworkingSocketsDebugOutputType_Msg + /// or k_ESteamNetworkingSocketsDebugOutputType_Warning. For best performance, do NOT + /// request a high detail level and then filter out messages in your callback. This incurs + /// all of the expense of formatting the messages, which are then discarded. Setting a high + /// priority value (low numeric value) here allows the library to avoid doing this work. + /// + /// IMPORTANT: This may be called from a service thread, while we own a mutex, etc. + /// Your output function must be threadsafe and fast! Do not make any other + /// Steamworks calls from within the handler. + virtual void SetDebugOutputFunction( ESteamNetworkingSocketsDebugOutputType eDetailLevel, FSteamNetworkingSocketsDebugOutput pfnFunc ) = 0; + + // + // Fake IP + // + // Useful for interfacing with code that assumes peers are identified using an IPv4 address + // + + /// Return true if an IPv4 address is one that might be used as a "fake" one. + /// This function is fast; it just does some logical tests on the IP and does + /// not need to do any lookup operations. + inline bool IsFakeIPv4( uint32 nIPv4 ) { return GetIPv4FakeIPType( nIPv4 ) > k_ESteamNetworkingFakeIPType_NotFake; } + virtual ESteamNetworkingFakeIPType GetIPv4FakeIPType( uint32 nIPv4 ) = 0; + + /// Get the real identity associated with a given FakeIP. + /// + /// On failure, returns: + /// - k_EResultInvalidParam: the IP is not a FakeIP. + /// - k_EResultNoMatch: we don't recognize that FakeIP and don't know the corresponding identity. + /// + /// FakeIP's used by active connections, or the FakeIPs assigned to local identities, + /// will always work. FakeIPs for recently destroyed connections will continue to + /// return results for a little while, but not forever. At some point, we will forget + /// FakeIPs to save space. It's reasonably safe to assume that you can read back the + /// real identity of a connection very soon after it is destroyed. But do not wait + /// indefinitely. + virtual EResult GetRealIdentityForFakeIP( const SteamNetworkingIPAddr &fakeIP, SteamNetworkingIdentity *pOutRealIdentity ) = 0; + + // + // Set and get configuration values, see ESteamNetworkingConfigValue for individual descriptions. + // + + // Shortcuts for common cases. (Implemented as inline functions below) + bool SetGlobalConfigValueInt32( ESteamNetworkingConfigValue eValue, int32 val ); + bool SetGlobalConfigValueFloat( ESteamNetworkingConfigValue eValue, float val ); + bool SetGlobalConfigValueString( ESteamNetworkingConfigValue eValue, const char *val ); + bool SetGlobalConfigValuePtr( ESteamNetworkingConfigValue eValue, void *val ); + bool SetConnectionConfigValueInt32( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ); + bool SetConnectionConfigValueFloat( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ); + bool SetConnectionConfigValueString( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char *val ); + + // + // Set global callbacks. If you do not want to use Steam's callback dispatch mechanism and you + // want to use the same callback on all (or most) listen sockets and connections, then + // simply install these callbacks first thing, and you are good to go. + // See ISteamNetworkingSockets::RunCallbacks + // + bool SetGlobalCallback_SteamNetConnectionStatusChanged( FnSteamNetConnectionStatusChanged fnCallback ); + bool SetGlobalCallback_SteamNetAuthenticationStatusChanged( FnSteamNetAuthenticationStatusChanged fnCallback ); + bool SetGlobalCallback_SteamRelayNetworkStatusChanged( FnSteamRelayNetworkStatusChanged fnCallback ); + bool SetGlobalCallback_FakeIPResult( FnSteamNetworkingFakeIPResult fnCallback ); + bool SetGlobalCallback_MessagesSessionRequest( FnSteamNetworkingMessagesSessionRequest fnCallback ); + bool SetGlobalCallback_MessagesSessionFailed( FnSteamNetworkingMessagesSessionFailed fnCallback ); + + /// Set a configuration value. + /// - eValue: which value is being set + /// - eScope: Onto what type of object are you applying the setting? + /// - scopeArg: Which object you want to change? (Ignored for global scope). E.g. connection handle, listen socket handle, interface pointer, etc. + /// - eDataType: What type of data is in the buffer at pValue? This must match the type of the variable exactly! + /// - pArg: Value to set it to. You can pass NULL to remove a non-global setting at this scope, + /// causing the value for that object to use global defaults. Or at global scope, passing NULL + /// will reset any custom value and restore it to the system default. + /// NOTE: When setting pointers (e.g. callback functions), do not pass the function pointer directly. + /// Your argument should be a pointer to a function pointer. + virtual bool SetConfigValue( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, + ESteamNetworkingConfigDataType eDataType, const void *pArg ) = 0; + + /// Set a configuration value, using a struct to pass the value. + /// (This is just a convenience shortcut; see below for the implementation and + /// a little insight into how SteamNetworkingConfigValue_t is used when + /// setting config options during listen socket and connection creation.) + bool SetConfigValueStruct( const SteamNetworkingConfigValue_t &opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj ); + + /// Get a configuration value. + /// - eValue: which value to fetch + /// - eScopeType: query setting on what type of object + /// - eScopeArg: the object to query the setting for + /// - pOutDataType: If non-NULL, the data type of the value is returned. + /// - pResult: Where to put the result. Pass NULL to query the required buffer size. (k_ESteamNetworkingGetConfigValue_BufferTooSmall will be returned.) + /// - cbResult: IN: the size of your buffer. OUT: the number of bytes filled in or required. + virtual ESteamNetworkingGetConfigValueResult GetConfigValue( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, + ESteamNetworkingConfigDataType *pOutDataType, void *pResult, size_t *cbResult ) = 0; + + /// Get info about a configuration value. Returns the name of the value, + /// or NULL if the value doesn't exist. Other output parameters can be NULL + /// if you do not need them. + virtual const char *GetConfigValueInfo( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigDataType *pOutDataType, + ESteamNetworkingConfigScope *pOutScope ) = 0; + + /// Iterate the list of all configuration values in the current environment that it might + /// be possible to display or edit using a generic UI. To get the first iterable value, + /// pass k_ESteamNetworkingConfig_Invalid. Returns k_ESteamNetworkingConfig_Invalid + /// to signal end of list. + /// + /// The bEnumerateDevVars argument can be used to include "dev" vars. These are vars that + /// are recommended to only be editable in "debug" or "dev" mode and typically should not be + /// shown in a retail environment where a malicious local user might use this to cheat. + virtual ESteamNetworkingConfigValue IterateGenericEditableConfigValues( ESteamNetworkingConfigValue eCurrent, bool bEnumerateDevVars ) = 0; + + // + // String conversions. You'll usually access these using the respective + // inline methods. + // + virtual void SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr &addr, char *buf, size_t cbBuf, bool bWithPort ) = 0; + virtual bool SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr ) = 0; + virtual ESteamNetworkingFakeIPType SteamNetworkingIPAddr_GetFakeIPType( const SteamNetworkingIPAddr &addr ) = 0; + virtual void SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity &identity, char *buf, size_t cbBuf ) = 0; + virtual bool SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, const char *pszStr ) = 0; + +protected: + ~ISteamNetworkingUtils(); // Silence some warnings +}; +#define STEAMNETWORKINGUTILS_INTERFACE_VERSION "SteamNetworkingUtils004" + +// Global accessors +// Using standalone lib +#ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB + + // Standalone lib + static_assert( STEAMNETWORKINGUTILS_INTERFACE_VERSION[22] == '4', "Version mismatch" ); + STEAMNETWORKINGSOCKETS_INTERFACE ISteamNetworkingUtils *SteamNetworkingUtils_LibV4(); + inline ISteamNetworkingUtils *SteamNetworkingUtils_Lib() { return SteamNetworkingUtils_LibV4(); } + + #ifndef STEAMNETWORKINGSOCKETS_STEAMAPI + inline ISteamNetworkingUtils *SteamNetworkingUtils() { return SteamNetworkingUtils_LibV4(); } + #endif +#endif + +// Using Steamworks SDK +#ifdef STEAMNETWORKINGSOCKETS_STEAMAPI + STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamNetworkingUtils *, SteamNetworkingUtils_SteamAPI, + /* Prefer user version of the interface. But if it isn't found, then use + gameserver one. Yes, this is a completely terrible hack */ + SteamInternal_FindOrCreateUserInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ) ? + SteamInternal_FindOrCreateUserInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ) : + SteamInternal_FindOrCreateGameServerInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ), + "global", + STEAMNETWORKINGUTILS_INTERFACE_VERSION + ) + + #ifndef STEAMNETWORKINGSOCKETS_STANDALONELIB + inline ISteamNetworkingUtils *SteamNetworkingUtils() { return SteamNetworkingUtils_SteamAPI(); } + #endif +#endif + +/// A struct used to describe our readiness to use the relay network. +/// To do this we first need to fetch the network configuration, +/// which describes what POPs are available. +struct SteamRelayNetworkStatus_t +{ + enum { k_iCallback = k_iSteamNetworkingUtilsCallbacks + 1 }; + + /// Summary status. When this is "current", initialization has + /// completed. Anything else means you are not ready yet, or + /// there is a significant problem. + ESteamNetworkingAvailability m_eAvail; + + /// Nonzero if latency measurement is in progress (or pending, + /// awaiting a prerequisite). + int m_bPingMeasurementInProgress; + + /// Status obtaining the network config. This is a prerequisite + /// for relay network access. + /// + /// Failure to obtain the network config almost always indicates + /// a problem with the local internet connection. + ESteamNetworkingAvailability m_eAvailNetworkConfig; + + /// Current ability to communicate with ANY relay. Note that + /// the complete failure to communicate with any relays almost + /// always indicates a problem with the local Internet connection. + /// (However, just because you can reach a single relay doesn't + /// mean that the local connection is in perfect health.) + ESteamNetworkingAvailability m_eAvailAnyRelay; + + /// Non-localized English language status. For diagnostic/debugging + /// purposes only. + char m_debugMsg[ 256 ]; +}; + +#ifndef API_GEN + +/// Utility class for printing a SteamNetworkingIdentity. +/// E.g. printf( "Identity is '%s'\n", SteamNetworkingIdentityRender( identity ).c_str() ); +struct SteamNetworkingIdentityRender +{ + SteamNetworkingIdentityRender( const SteamNetworkingIdentity &x ) { x.ToString( buf, sizeof(buf) ); } + inline const char *c_str() const { return buf; } +private: + char buf[ SteamNetworkingIdentity::k_cchMaxString ]; +}; + +/// Utility class for printing a SteamNetworkingIPAddrRender. +struct SteamNetworkingIPAddrRender +{ + SteamNetworkingIPAddrRender( const SteamNetworkingIPAddr &x, bool bWithPort = true ) { x.ToString( buf, sizeof(buf), bWithPort ); } + inline const char *c_str() const { return buf; } +private: + char buf[ SteamNetworkingIPAddr::k_cchMaxString ]; +}; + +#endif + +/////////////////////////////////////////////////////////////////////////////// +// +// Internal stuff + +inline void ISteamNetworkingUtils::InitRelayNetworkAccess() { CheckPingDataUpToDate( 1e10f ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValueInt32( ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Int32, &val ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValueFloat( ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Float, &val ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValueString( ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_String, val ); } +inline bool ISteamNetworkingUtils::SetGlobalConfigValuePtr( ESteamNetworkingConfigValue eValue, void *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Ptr, &val ); } // Note: passing pointer to pointer. +inline bool ISteamNetworkingUtils::SetConnectionConfigValueInt32( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Int32, &val ); } +inline bool ISteamNetworkingUtils::SetConnectionConfigValueFloat( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Float, &val ); } +inline bool ISteamNetworkingUtils::SetConnectionConfigValueString( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_String, val ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_SteamNetConnectionStatusChanged( FnSteamNetConnectionStatusChanged fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_SteamNetAuthenticationStatusChanged( FnSteamNetAuthenticationStatusChanged fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_AuthStatusChanged, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_SteamRelayNetworkStatusChanged( FnSteamRelayNetworkStatusChanged fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_FakeIPResult( FnSteamNetworkingFakeIPResult fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_FakeIPResult, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionRequest( FnSteamNetworkingMessagesSessionRequest fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_MessagesSessionRequest, (void*)fnCallback ); } +inline bool ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionFailed( FnSteamNetworkingMessagesSessionFailed fnCallback ) { return SetGlobalConfigValuePtr( k_ESteamNetworkingConfig_Callback_MessagesSessionFailed, (void*)fnCallback ); } + +inline bool ISteamNetworkingUtils::SetConfigValueStruct( const SteamNetworkingConfigValue_t &opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj ) +{ + // Locate the argument. Strings are a special case, since the + // "value" (the whole string buffer) doesn't fit in the struct + // NOTE: for pointer values, we pass a pointer to the pointer, + // we do not pass the pointer directly. + const void *pVal = ( opt.m_eDataType == k_ESteamNetworkingConfig_String ) ? (const void *)opt.m_val.m_string : (const void *)&opt.m_val; + return SetConfigValue( opt.m_eValue, eScopeType, scopeObj, opt.m_eDataType, pVal ); +} + +// How to get helper functions. +#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) || defined(STEAMNETWORKINGSOCKETS_FOREXPORT) || defined( STEAMNETWORKINGSOCKETS_STANDALONELIB ) + + // Call direct to static functions + STEAMNETWORKINGSOCKETS_INTERFACE void SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr *pAddr, char *buf, size_t cbBuf, bool bWithPort ); + STEAMNETWORKINGSOCKETS_INTERFACE bool SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr ); + STEAMNETWORKINGSOCKETS_INTERFACE ESteamNetworkingFakeIPType SteamNetworkingIPAddr_GetFakeIPType( const SteamNetworkingIPAddr *pAddr ); + STEAMNETWORKINGSOCKETS_INTERFACE void SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity *pIdentity, char *buf, size_t cbBuf ); + STEAMNETWORKINGSOCKETS_INTERFACE bool SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, size_t sizeofIdentity, const char *pszStr ); + inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingIPAddr_ToString( this, buf, cbBuf, bWithPort ); } + inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingIPAddr_ParseString( this, pszStr ); } + inline ESteamNetworkingFakeIPType SteamNetworkingIPAddr::GetFakeIPType() const { return SteamNetworkingIPAddr_GetFakeIPType( this ); } + inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingIdentity_ToString( this, buf, cbBuf ); } + inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingIdentity_ParseString( this, sizeof(*this), pszStr ); } + +#elif defined( STEAMNETWORKINGSOCKETS_STEAMAPI ) + // Using steamworks SDK - go through SteamNetworkingUtils() + inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingUtils()->SteamNetworkingIPAddr_ToString( *this, buf, cbBuf, bWithPort ); } + inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIPAddr_ParseString( this, pszStr ); } + inline ESteamNetworkingFakeIPType SteamNetworkingIPAddr::GetFakeIPType() const { return SteamNetworkingUtils()->SteamNetworkingIPAddr_GetFakeIPType( *this ); } + inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingUtils()->SteamNetworkingIdentity_ToString( *this, buf, cbBuf ); } + inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIdentity_ParseString( this, pszStr ); } +#else + #error "Invalid config" +#endif + +#endif // ISTEAMNETWORKINGUTILS diff --git a/lib/windows/include/steam/isteamparentalsettings.h b/lib/windows/include/steam/isteamparentalsettings.h new file mode 100644 index 0000000..bf3d0c6 --- /dev/null +++ b/lib/windows/include/steam/isteamparentalsettings.h @@ -0,0 +1,64 @@ +//====== Copyright � 2013-, Valve Corporation, All rights reserved. ======= +// +// Purpose: Interface to Steam parental settings (Family View) +// +//============================================================================= + +#ifndef ISTEAMPARENTALSETTINGS_H +#define ISTEAMPARENTALSETTINGS_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + +// Feature types for parental settings +enum EParentalFeature +{ + k_EFeatureInvalid = 0, + k_EFeatureStore = 1, + k_EFeatureCommunity = 2, + k_EFeatureProfile = 3, + k_EFeatureFriends = 4, + k_EFeatureNews = 5, + k_EFeatureTrading = 6, + k_EFeatureSettings = 7, + k_EFeatureConsole = 8, + k_EFeatureBrowser = 9, + k_EFeatureParentalSetup = 10, + k_EFeatureLibrary = 11, + k_EFeatureTest = 12, + k_EFeatureSiteLicense = 13, + k_EFeatureKioskMode_Deprecated = 14, + k_EFeatureMax +}; + +class ISteamParentalSettings +{ +public: + virtual bool BIsParentalLockEnabled() = 0; + virtual bool BIsParentalLockLocked() = 0; + + virtual bool BIsAppBlocked( AppId_t nAppID ) = 0; + virtual bool BIsAppInBlockList( AppId_t nAppID ) = 0; + + virtual bool BIsFeatureBlocked( EParentalFeature eFeature ) = 0; + virtual bool BIsFeatureInBlockList( EParentalFeature eFeature ) = 0; +}; + +#define STEAMPARENTALSETTINGS_INTERFACE_VERSION "STEAMPARENTALSETTINGS_INTERFACE_VERSION001" + +// Global interface accessor +inline ISteamParentalSettings *SteamParentalSettings(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamParentalSettings *, SteamParentalSettings, STEAMPARENTALSETTINGS_INTERFACE_VERSION ); + +//----------------------------------------------------------------------------- +// Purpose: Callback for querying UGC +//----------------------------------------------------------------------------- +struct SteamParentalSettingsChanged_t +{ + enum { k_iCallback = k_ISteamParentalSettingsCallbacks + 1 }; +}; + + +#endif // ISTEAMPARENTALSETTINGS_H diff --git a/lib/windows/include/steam/isteamremoteplay.h b/lib/windows/include/steam/isteamremoteplay.h new file mode 100644 index 0000000..df5ca3f --- /dev/null +++ b/lib/windows/include/steam/isteamremoteplay.h @@ -0,0 +1,99 @@ +//============ Copyright (c) Valve Corporation, All rights reserved. ============ + +#ifndef ISTEAMREMOTEPLAY_H +#define ISTEAMREMOTEPLAY_H +#ifdef _WIN32 +#pragma once +#endif + +#include "steam_api_common.h" + + +//----------------------------------------------------------------------------- +// Purpose: The form factor of a device +//----------------------------------------------------------------------------- +enum ESteamDeviceFormFactor +{ + k_ESteamDeviceFormFactorUnknown = 0, + k_ESteamDeviceFormFactorPhone = 1, + k_ESteamDeviceFormFactorTablet = 2, + k_ESteamDeviceFormFactorComputer = 3, + k_ESteamDeviceFormFactorTV = 4, + k_ESteamDeviceFormFactorVRHeadset = 5, +}; + +// Steam Remote Play session ID +typedef uint32 RemotePlaySessionID_t; + + +//----------------------------------------------------------------------------- +// Purpose: Functions to provide information about Steam Remote Play sessions +//----------------------------------------------------------------------------- +class ISteamRemotePlay +{ +public: + // Get the number of currently connected Steam Remote Play sessions + virtual uint32 GetSessionCount() = 0; + + // Get the currently connected Steam Remote Play session ID at the specified index. Returns zero if index is out of bounds. + virtual RemotePlaySessionID_t GetSessionID( int iSessionIndex ) = 0; + + // Get the SteamID of the connected user + virtual CSteamID GetSessionSteamID( RemotePlaySessionID_t unSessionID ) = 0; + + // Get the name of the session client device + // This returns NULL if the sessionID is not valid + virtual const char *GetSessionClientName( RemotePlaySessionID_t unSessionID ) = 0; + + // Get the form factor of the session client device + virtual ESteamDeviceFormFactor GetSessionClientFormFactor( RemotePlaySessionID_t unSessionID ) = 0; + + // Get the resolution, in pixels, of the session client device + // This is set to 0x0 if the resolution is not available + virtual bool BGetSessionClientResolution( RemotePlaySessionID_t unSessionID, int *pnResolutionX, int *pnResolutionY ) = 0; + + // Start Remote Play Together and optionally show the UI in the overlay + // This returns false if Remote Play Together can't be started or your game is not configured for Remote Play Together + virtual bool BStartRemotePlayTogether( bool bShowOverlay = true ) = 0; + + // Invite a friend to Remote Play Together, or create a guest invite if steamIDFriend is empty + // This will automatically start Remote Play Together if it hasn't already been started + // This returns false if the invite can't be sent or your game is not configured for Remote Play Together + virtual bool BSendRemotePlayTogetherInvite( CSteamID steamIDFriend ) = 0; +}; + +#define STEAMREMOTEPLAY_INTERFACE_VERSION "STEAMREMOTEPLAY_INTERFACE_VERSION002" + +// Global interface accessor +inline ISteamRemotePlay *SteamRemotePlay(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamRemotePlay *, SteamRemotePlay, STEAMREMOTEPLAY_INTERFACE_VERSION ); + +// callbacks +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + + +STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionConnected_t, k_iSteamRemotePlayCallbacks + 1 ) + STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID ) +STEAM_CALLBACK_END( 0 ) + + +STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionDisconnected_t, k_iSteamRemotePlayCallbacks + 2 ) + STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID ) +STEAM_CALLBACK_END( 0 ) + + +STEAM_CALLBACK_BEGIN( SteamRemotePlayTogetherGuestInvite_t, k_iSteamRemotePlayCallbacks + 3 ) + STEAM_CALLBACK_MEMBER_ARRAY( 0, char, m_szConnectURL, 1024 ) +STEAM_CALLBACK_END( 0 ) + + +#pragma pack( pop ) + + +#endif // #define ISTEAMREMOTEPLAY_H diff --git a/lib/windows/include/steam/isteamremotestorage.h b/lib/windows/include/steam/isteamremotestorage.h index 3ac2871..c0da367 100644 --- a/lib/windows/include/steam/isteamremotestorage.h +++ b/lib/windows/include/steam/isteamremotestorage.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" //----------------------------------------------------------------------------- @@ -28,7 +28,7 @@ const uint32 k_unMaxCloudFileChunkSize = 100 * 1024 * 1024; #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct SteamParamStringArray_t { @@ -65,7 +65,10 @@ enum ERemoteStoragePlatform k_ERemoteStoragePlatformOSX = (1 << 1), k_ERemoteStoragePlatformPS3 = (1 << 2), k_ERemoteStoragePlatformLinux = (1 << 3), - k_ERemoteStoragePlatformReserved2 = (1 << 4), + k_ERemoteStoragePlatformSwitch = (1 << 4), + k_ERemoteStoragePlatformAndroid = (1 << 5), + k_ERemoteStoragePlatformIOS = (1 << 6), + // NB we get one more before we need to widen some things k_ERemoteStoragePlatformAll = 0xffffffff }; @@ -75,6 +78,7 @@ enum ERemoteStoragePublishedFileVisibility k_ERemoteStoragePublishedFileVisibilityPublic = 0, k_ERemoteStoragePublishedFileVisibilityFriendsOnly = 1, k_ERemoteStoragePublishedFileVisibilityPrivate = 2, + k_ERemoteStoragePublishedFileVisibilityUnlisted = 3, }; @@ -98,9 +102,10 @@ enum EWorkshopFileType k_EWorkshopFileTypeSteamworksAccessInvite = 13, // internal k_EWorkshopFileTypeSteamVideo = 14, // Steam video k_EWorkshopFileTypeGameManagedItem = 15, // managed completely by the game, not the user, and not shown on the web + k_EWorkshopFileTypeClip = 16, // internal // Update k_EWorkshopFileTypeMax if you add values. - k_EWorkshopFileTypeMax = 16 + k_EWorkshopFileTypeMax = 17 }; @@ -152,6 +157,28 @@ enum EUGCReadAction k_EUGCRead_Close = 2, }; +enum ERemoteStorageLocalFileChange +{ + k_ERemoteStorageLocalFileChange_Invalid = 0, + + // The file was updated from another device + k_ERemoteStorageLocalFileChange_FileUpdated = 1, + + // The file was deleted by another device + k_ERemoteStorageLocalFileChange_FileDeleted = 2, +}; + +enum ERemoteStorageFilePathType +{ + k_ERemoteStorageFilePathType_Invalid = 0, + + // The file is directly accessed by the game and this is the full path + k_ERemoteStorageFilePathType_Absolute = 1, + + // The file is accessed via the ISteamRemoteStorage API and this is the filename + k_ERemoteStorageFilePathType_APIFilename = 2, +}; + //----------------------------------------------------------------------------- // Purpose: Functions for accessing, reading and writing files stored remotely @@ -171,16 +198,16 @@ class ISteamRemoteStorage virtual bool FileWrite( const char *pchFile, const void *pvData, int32 cubData ) = 0; virtual int32 FileRead( const char *pchFile, void *pvData, int32 cubDataToRead ) = 0; - CALL_RESULT( RemoteStorageFileWriteAsyncComplete_t ) + STEAM_CALL_RESULT( RemoteStorageFileWriteAsyncComplete_t ) virtual SteamAPICall_t FileWriteAsync( const char *pchFile, const void *pvData, uint32 cubData ) = 0; - CALL_RESULT( RemoteStorageFileReadAsyncComplete_t ) + STEAM_CALL_RESULT( RemoteStorageFileReadAsyncComplete_t ) virtual SteamAPICall_t FileReadAsync( const char *pchFile, uint32 nOffset, uint32 cubToRead ) = 0; virtual bool FileReadAsyncComplete( SteamAPICall_t hReadCall, void *pvBuffer, uint32 cubToRead ) = 0; virtual bool FileForget( const char *pchFile ) = 0; virtual bool FileDelete( const char *pchFile ) = 0; - CALL_RESULT( RemoteStorageFileShareResult_t ) + STEAM_CALL_RESULT( RemoteStorageFileShareResult_t ) virtual SteamAPICall_t FileShare( const char *pchFile ) = 0; virtual bool SetSyncPlatforms( const char *pchFile, ERemoteStoragePlatform eRemoteStoragePlatform ) = 0; @@ -212,7 +239,7 @@ class ISteamRemoteStorage // Downloads a UGC file. A priority value of 0 will download the file immediately, // otherwise it will wait to download the file until all downloads with a lower priority // value are completed. Downloads with equal priority will occur simultaneously. - CALL_RESULT( RemoteStorageDownloadUGCResult_t ) + STEAM_CALL_RESULT( RemoteStorageDownloadUGCResult_t ) virtual SteamAPICall_t UGCDownload( UGCHandle_t hContent, uint32 unPriority ) = 0; // Gets the amount of data downloaded so far for a piece of content. pnBytesExpected can be 0 if function returns false @@ -220,7 +247,7 @@ class ISteamRemoteStorage virtual bool GetUGCDownloadProgress( UGCHandle_t hContent, int32 *pnBytesDownloaded, int32 *pnBytesExpected ) = 0; // Gets metadata for a file after it has been downloaded. This is the same metadata given in the RemoteStorageDownloadUGCResult_t call result - virtual bool GetUGCDetails( UGCHandle_t hContent, AppId_t *pnAppID, OUT_STRING() char **ppchName, int32 *pnFileSizeInBytes, OUT_STRUCT() CSteamID *pSteamIDOwner ) = 0; + virtual bool GetUGCDetails( UGCHandle_t hContent, AppId_t *pnAppID, STEAM_OUT_STRING() char **ppchName, int32 *pnFileSizeInBytes, STEAM_OUT_STRUCT() CSteamID *pSteamIDOwner ) = 0; // After download, gets the content of the file. // Small files can be read all at once by calling this function with an offset of 0 and cubDataToRead equal to the size of the file. @@ -234,26 +261,8 @@ class ISteamRemoteStorage virtual int32 GetCachedUGCCount() = 0; virtual UGCHandle_t GetCachedUGCHandle( int32 iCachedContent ) = 0; - // The following functions are only necessary on the Playstation 3. On PC & Mac, the Steam client will handle these operations for you - // On Playstation 3, the game controls which files are stored in the cloud, via FilePersist, FileFetch, and FileForget. - -#if defined(_PS3) || defined(_SERVER) - // Connect to Steam and get a list of files in the Cloud - results in a RemoteStorageAppSyncStatusCheck_t callback - virtual void GetFileListFromServer() = 0; - // Indicate this file should be downloaded in the next sync - virtual bool FileFetch( const char *pchFile ) = 0; - // Indicate this file should be persisted in the next sync - virtual bool FilePersist( const char *pchFile ) = 0; - // Pull any requested files down from the Cloud - results in a RemoteStorageAppSyncedClient_t callback - virtual bool SynchronizeToClient() = 0; - // Upload any requested files to the Cloud - results in a RemoteStorageAppSyncedServer_t callback - virtual bool SynchronizeToServer() = 0; - // Reset any fetch/persist/etc requests - virtual bool ResetFileRequestState() = 0; -#endif - // publishing UGC - CALL_RESULT( RemoteStoragePublishFileProgress_t ) + STEAM_CALL_RESULT( RemoteStoragePublishFileProgress_t ) virtual SteamAPICall_t PublishWorkshopFile( const char *pchFile, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags, EWorkshopFileType eWorkshopFileType ) = 0; virtual PublishedFileUpdateHandle_t CreatePublishedFileUpdateRequest( PublishedFileId_t unPublishedFileId ) = 0; virtual bool UpdatePublishedFileFile( PublishedFileUpdateHandle_t updateHandle, const char *pchFile ) = 0; @@ -262,49 +271,61 @@ class ISteamRemoteStorage virtual bool UpdatePublishedFileDescription( PublishedFileUpdateHandle_t updateHandle, const char *pchDescription ) = 0; virtual bool UpdatePublishedFileVisibility( PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility ) = 0; virtual bool UpdatePublishedFileTags( PublishedFileUpdateHandle_t updateHandle, SteamParamStringArray_t *pTags ) = 0; - CALL_RESULT( RemoteStorageUpdatePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageUpdatePublishedFileResult_t ) virtual SteamAPICall_t CommitPublishedFileUpdate( PublishedFileUpdateHandle_t updateHandle ) = 0; // Gets published file details for the given publishedfileid. If unMaxSecondsOld is greater than 0, // cached data may be returned, depending on how long ago it was cached. A value of 0 will force a refresh. // A value of k_WorkshopForceLoadPublishedFileDetailsFromCache will use cached data if it exists, no matter how old it is. - CALL_RESULT( RemoteStorageGetPublishedFileDetailsResult_t ) + STEAM_CALL_RESULT( RemoteStorageGetPublishedFileDetailsResult_t ) virtual SteamAPICall_t GetPublishedFileDetails( PublishedFileId_t unPublishedFileId, uint32 unMaxSecondsOld ) = 0; - CALL_RESULT( RemoteStorageDeletePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageDeletePublishedFileResult_t ) virtual SteamAPICall_t DeletePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; // enumerate the files that the current user published with this app - CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) virtual SteamAPICall_t EnumerateUserPublishedFiles( uint32 unStartIndex ) = 0; - CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) virtual SteamAPICall_t SubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; - CALL_RESULT( RemoteStorageEnumerateUserSubscribedFilesResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumerateUserSubscribedFilesResult_t ) virtual SteamAPICall_t EnumerateUserSubscribedFiles( uint32 unStartIndex ) = 0; - CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) virtual SteamAPICall_t UnsubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; virtual bool UpdatePublishedFileSetChangeDescription( PublishedFileUpdateHandle_t updateHandle, const char *pchChangeDescription ) = 0; - CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) + STEAM_CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) virtual SteamAPICall_t GetPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0; - CALL_RESULT( RemoteStorageUpdateUserPublishedItemVoteResult_t ) + STEAM_CALL_RESULT( RemoteStorageUpdateUserPublishedItemVoteResult_t ) virtual SteamAPICall_t UpdateUserPublishedItemVote( PublishedFileId_t unPublishedFileId, bool bVoteUp ) = 0; - CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) + STEAM_CALL_RESULT( RemoteStorageGetPublishedItemVoteDetailsResult_t ) virtual SteamAPICall_t GetUserPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0; - CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumerateUserPublishedFilesResult_t ) virtual SteamAPICall_t EnumerateUserSharedWorkshopFiles( CSteamID steamId, uint32 unStartIndex, SteamParamStringArray_t *pRequiredTags, SteamParamStringArray_t *pExcludedTags ) = 0; - CALL_RESULT( RemoteStoragePublishFileProgress_t ) + STEAM_CALL_RESULT( RemoteStoragePublishFileProgress_t ) virtual SteamAPICall_t PublishVideo( EWorkshopVideoProvider eVideoProvider, const char *pchVideoAccount, const char *pchVideoIdentifier, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags ) = 0; - CALL_RESULT( RemoteStorageSetUserPublishedFileActionResult_t ) + STEAM_CALL_RESULT( RemoteStorageSetUserPublishedFileActionResult_t ) virtual SteamAPICall_t SetUserPublishedFileAction( PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction ) = 0; - CALL_RESULT( RemoteStorageEnumeratePublishedFilesByUserActionResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumeratePublishedFilesByUserActionResult_t ) virtual SteamAPICall_t EnumeratePublishedFilesByUserAction( EWorkshopFileAction eAction, uint32 unStartIndex ) = 0; // this method enumerates the public view of workshop files - CALL_RESULT( RemoteStorageEnumerateWorkshopFilesResult_t ) + STEAM_CALL_RESULT( RemoteStorageEnumerateWorkshopFilesResult_t ) virtual SteamAPICall_t EnumeratePublishedWorkshopFiles( EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, SteamParamStringArray_t *pTags, SteamParamStringArray_t *pUserTags ) = 0; - CALL_RESULT( RemoteStorageDownloadUGCResult_t ) + STEAM_CALL_RESULT( RemoteStorageDownloadUGCResult_t ) virtual SteamAPICall_t UGCDownloadToLocation( UGCHandle_t hContent, const char *pchLocation, uint32 unPriority ) = 0; + + // Cloud dynamic state change notification + virtual int32 GetLocalFileChangeCount() = 0; + virtual const char *GetLocalFileChange( int iFile, ERemoteStorageLocalFileChange *pEChangeType, ERemoteStorageFilePathType *pEFilePathType ) = 0; + + // Indicate to Steam the beginning / end of a set of local file + // operations - for example, writing a game save that requires updating two files. + virtual bool BeginFileWriteBatch() = 0; + virtual bool EndFileWriteBatch() = 0; }; -#define STEAMREMOTESTORAGE_INTERFACE_VERSION "STEAMREMOTESTORAGE_INTERFACE_VERSION014" +#define STEAMREMOTESTORAGE_INTERFACE_VERSION "STEAMREMOTESTORAGE_INTERFACE_VERSION016" +// Global interface accessor +inline ISteamRemoteStorage *SteamRemoteStorage(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamRemoteStorage *, SteamRemoteStorage, STEAMREMOTESTORAGE_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -312,62 +333,10 @@ class ISteamRemoteStorage #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif -//----------------------------------------------------------------------------- -// Purpose: sent when the local file cache is fully synced with the server for an app -// That means that an application can be started and has all latest files -//----------------------------------------------------------------------------- -struct RemoteStorageAppSyncedClient_t -{ - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 1 }; - AppId_t m_nAppID; - EResult m_eResult; - int m_unNumDownloads; -}; -//----------------------------------------------------------------------------- -// Purpose: sent when the server is fully synced with the local file cache for an app -// That means that we can shutdown Steam and our data is stored on the server -//----------------------------------------------------------------------------- -struct RemoteStorageAppSyncedServer_t -{ - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 2 }; - AppId_t m_nAppID; - EResult m_eResult; - int m_unNumUploads; -}; - -//----------------------------------------------------------------------------- -// Purpose: Status of up and downloads during a sync session -// -//----------------------------------------------------------------------------- -struct RemoteStorageAppSyncProgress_t -{ - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 3 }; - char m_rgchCurrentFile[k_cchFilenameMax]; // Current file being transferred - AppId_t m_nAppID; // App this info relates to - uint32 m_uBytesTransferredThisChunk; // Bytes transferred this chunk - double m_dAppPercentComplete; // Percent complete that this app's transfers are - bool m_bUploading; // if false, downloading -}; - -// -// IMPORTANT! k_iClientRemoteStorageCallbacks + 4 is used, see iclientremotestorage.h -// - - -//----------------------------------------------------------------------------- -// Purpose: Sent after we've determined the list of files that are out of sync -// with the server. -//----------------------------------------------------------------------------- -struct RemoteStorageAppSyncStatusCheck_t -{ - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 5 }; - AppId_t m_nAppID; - EResult m_eResult; -}; //----------------------------------------------------------------------------- @@ -375,14 +344,14 @@ struct RemoteStorageAppSyncStatusCheck_t //----------------------------------------------------------------------------- struct RemoteStorageFileShareResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 7 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 7 }; EResult m_eResult; // The result of the operation UGCHandle_t m_hFile; // The handle that can be shared with users and features char m_rgchFilename[k_cchFilenameMax]; // The name of the file that was shared }; -// k_iClientRemoteStorageCallbacks + 8 is deprecated! Do not reuse +// k_iSteamRemoteStorageCallbacks + 8 is deprecated! Do not reuse //----------------------------------------------------------------------------- @@ -390,19 +359,22 @@ struct RemoteStorageFileShareResult_t //----------------------------------------------------------------------------- struct RemoteStoragePublishFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 9 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 9 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; bool m_bUserNeedsToAcceptWorkshopLegalAgreement; }; +// k_iSteamRemoteStorageCallbacks + 10 is deprecated! Do not reuse + + //----------------------------------------------------------------------------- // Purpose: The result of a call to DeletePublishedFile() //----------------------------------------------------------------------------- struct RemoteStorageDeletePublishedFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 11 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 11 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; }; @@ -413,7 +385,7 @@ struct RemoteStorageDeletePublishedFileResult_t //----------------------------------------------------------------------------- struct RemoteStorageEnumerateUserPublishedFilesResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 12 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 12 }; EResult m_eResult; // The result of the operation. int32 m_nResultsReturned; int32 m_nTotalResultCount; @@ -426,7 +398,7 @@ struct RemoteStorageEnumerateUserPublishedFilesResult_t //----------------------------------------------------------------------------- struct RemoteStorageSubscribePublishedFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 13 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 13 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; }; @@ -437,7 +409,7 @@ struct RemoteStorageSubscribePublishedFileResult_t //----------------------------------------------------------------------------- struct RemoteStorageEnumerateUserSubscribedFilesResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 14 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 14 }; EResult m_eResult; // The result of the operation. int32 m_nResultsReturned; int32 m_nTotalResultCount; @@ -450,7 +422,7 @@ struct RemoteStorageEnumerateUserSubscribedFilesResult_t #elif defined(VALVE_CALLBACK_PACK_LARGE) VALVE_COMPILE_TIME_ASSERT( sizeof( RemoteStorageEnumerateUserSubscribedFilesResult_t ) == (1 + 1 + 1 + 50 + 100) * 4 + 4 ); #else -#warning You must first include isteamclient.h +#warning You must first include steam_api_common.h #endif //----------------------------------------------------------------------------- @@ -458,7 +430,7 @@ struct RemoteStorageEnumerateUserSubscribedFilesResult_t //----------------------------------------------------------------------------- struct RemoteStorageUnsubscribePublishedFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 15 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 15 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; }; @@ -469,7 +441,7 @@ struct RemoteStorageUnsubscribePublishedFileResult_t //----------------------------------------------------------------------------- struct RemoteStorageUpdatePublishedFileResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 16 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 16 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; bool m_bUserNeedsToAcceptWorkshopLegalAgreement; @@ -481,7 +453,7 @@ struct RemoteStorageUpdatePublishedFileResult_t //----------------------------------------------------------------------------- struct RemoteStorageDownloadUGCResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 17 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 17 }; EResult m_eResult; // The result of the operation. UGCHandle_t m_hFile; // The handle to the file that was attempted to be downloaded. AppId_t m_nAppID; // ID of the app that created this file. @@ -496,7 +468,7 @@ struct RemoteStorageDownloadUGCResult_t //----------------------------------------------------------------------------- struct RemoteStorageGetPublishedFileDetailsResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 18 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 18 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; AppId_t m_nCreatorAppID; // ID of the app that created this file. @@ -523,7 +495,7 @@ struct RemoteStorageGetPublishedFileDetailsResult_t struct RemoteStorageEnumerateWorkshopFilesResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 19 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 19 }; EResult m_eResult; int32 m_nResultsReturned; int32 m_nTotalResultCount; @@ -539,7 +511,7 @@ struct RemoteStorageEnumerateWorkshopFilesResult_t //----------------------------------------------------------------------------- struct RemoteStorageGetPublishedItemVoteDetailsResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 20 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 20 }; EResult m_eResult; PublishedFileId_t m_unPublishedFileId; int32 m_nVotesFor; @@ -554,7 +526,7 @@ struct RemoteStorageGetPublishedItemVoteDetailsResult_t //----------------------------------------------------------------------------- struct RemoteStoragePublishedFileSubscribed_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 21 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 21 }; PublishedFileId_t m_nPublishedFileId; // The published file id AppId_t m_nAppID; // ID of the app that will consume this file. }; @@ -564,7 +536,7 @@ struct RemoteStoragePublishedFileSubscribed_t //----------------------------------------------------------------------------- struct RemoteStoragePublishedFileUnsubscribed_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 22 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 22 }; PublishedFileId_t m_nPublishedFileId; // The published file id AppId_t m_nAppID; // ID of the app that will consume this file. }; @@ -575,7 +547,7 @@ struct RemoteStoragePublishedFileUnsubscribed_t //----------------------------------------------------------------------------- struct RemoteStoragePublishedFileDeleted_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 23 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 23 }; PublishedFileId_t m_nPublishedFileId; // The published file id AppId_t m_nAppID; // ID of the app that will consume this file. }; @@ -586,7 +558,7 @@ struct RemoteStoragePublishedFileDeleted_t //----------------------------------------------------------------------------- struct RemoteStorageUpdateUserPublishedItemVoteResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 24 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 24 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; // The published file id }; @@ -597,7 +569,7 @@ struct RemoteStorageUpdateUserPublishedItemVoteResult_t //----------------------------------------------------------------------------- struct RemoteStorageUserVoteDetails_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 25 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 25 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; // The published file id EWorkshopVote m_eVote; // what the user voted @@ -605,7 +577,7 @@ struct RemoteStorageUserVoteDetails_t struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 26 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 26 }; EResult m_eResult; // The result of the operation. int32 m_nResultsReturned; int32 m_nTotalResultCount; @@ -614,7 +586,7 @@ struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t struct RemoteStorageSetUserPublishedFileActionResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 27 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 27 }; EResult m_eResult; // The result of the operation. PublishedFileId_t m_nPublishedFileId; // The published file id EWorkshopFileAction m_eAction; // the action that was attempted @@ -622,7 +594,7 @@ struct RemoteStorageSetUserPublishedFileActionResult_t struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 28 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 28 }; EResult m_eResult; // The result of the operation. EWorkshopFileAction m_eAction; // the action that was filtered on int32 m_nResultsReturned; @@ -637,7 +609,7 @@ struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t //----------------------------------------------------------------------------- struct RemoteStoragePublishFileProgress_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 29 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 29 }; double m_dPercentFile; bool m_bPreview; }; @@ -648,7 +620,7 @@ struct RemoteStoragePublishFileProgress_t //----------------------------------------------------------------------------- struct RemoteStoragePublishedFileUpdated_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 30 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 30 }; PublishedFileId_t m_nPublishedFileId; // The published file id AppId_t m_nAppID; // ID of the app that will consume this file. uint64 m_ulUnused; // not used anymore @@ -659,7 +631,7 @@ struct RemoteStoragePublishedFileUpdated_t //----------------------------------------------------------------------------- struct RemoteStorageFileWriteAsyncComplete_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 31 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 31 }; EResult m_eResult; // result }; @@ -668,13 +640,21 @@ struct RemoteStorageFileWriteAsyncComplete_t //----------------------------------------------------------------------------- struct RemoteStorageFileReadAsyncComplete_t { - enum { k_iCallback = k_iClientRemoteStorageCallbacks + 32 }; + enum { k_iCallback = k_iSteamRemoteStorageCallbacks + 32 }; SteamAPICall_t m_hFileReadAsync; // call handle of the async read which was made EResult m_eResult; // result uint32 m_nOffset; // offset in the file this read was at uint32 m_cubRead; // amount read - will the <= the amount requested }; +//----------------------------------------------------------------------------- +// Purpose: one or more files for this app have changed locally after syncing +// to remote session changes +// Note: only posted if this happens DURING the local app session +//----------------------------------------------------------------------------- +STEAM_CALLBACK_BEGIN( RemoteStorageLocalFileChange_t, k_iSteamRemoteStorageCallbacks + 33 ) +STEAM_CALLBACK_END( 0 ) + #pragma pack( pop ) diff --git a/lib/windows/include/steam/isteamscreenshots.h b/lib/windows/include/steam/isteamscreenshots.h index 6095705..1824268 100644 --- a/lib/windows/include/steam/isteamscreenshots.h +++ b/lib/windows/include/steam/isteamscreenshots.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" const uint32 k_nScreenshotMaxTaggedUsers = 32; const uint32 k_nScreenshotMaxTaggedPublishedFiles = 32; @@ -81,13 +81,17 @@ public: #define STEAMSCREENSHOTS_INTERFACE_VERSION "STEAMSCREENSHOTS_INTERFACE_VERSION003" +// Global interface accessor +inline ISteamScreenshots *SteamScreenshots(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamScreenshots *, SteamScreenshots, STEAMSCREENSHOTS_INTERFACE_VERSION ); + // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- // Purpose: Screenshot successfully written or otherwise added to the library diff --git a/lib/windows/include/steam/isteamugc.h b/lib/windows/include/steam/isteamugc.h index 1827fc6..96e9b9d 100644 --- a/lib/windows/include/steam/isteamugc.h +++ b/lib/windows/include/steam/isteamugc.h @@ -10,7 +10,8 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" +#include "isteamremotestorage.h" // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -18,7 +19,7 @@ #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif @@ -46,7 +47,7 @@ enum EUGCMatchingUGCType k_EUGCMatchingUGCType_UsableInGame = 10, // ready-to-use items and integrated guides k_EUGCMatchingUGCType_ControllerBindings = 11, k_EUGCMatchingUGCType_GameManagedItems = 12, // game managed items (not managed by users) - k_EUGCMatchingUGCType_All = ~0, // return everything + k_EUGCMatchingUGCType_All = ~0, // @note: will only be valid for CreateQueryUserUGCRequest requests }; // Different lists of published UGC for a user. @@ -98,6 +99,7 @@ enum EUGCQuery k_EUGCQuery_RankedByLifetimeAveragePlaytime = 16, k_EUGCQuery_RankedByPlaytimeSessionsTrend = 17, k_EUGCQuery_RankedByLifetimePlaytimeSessions = 18, + k_EUGCQuery_RankedByLastUpdatedDate = 19, }; enum EItemUpdateStatus @@ -119,21 +121,24 @@ enum EItemState k_EItemStateNeedsUpdate = 8, // items needs an update. Either because it's not installed yet or creator updated content k_EItemStateDownloading = 16, // item update is currently downloading k_EItemStateDownloadPending = 32, // DownloadItem() was called for this item, content isn't available until DownloadItemResult_t is fired + k_EItemStateDisabledLocally = 64, // Item is disabled locally, so it shouldn't be considered subscribed }; enum EItemStatistic { - k_EItemStatistic_NumSubscriptions = 0, - k_EItemStatistic_NumFavorites = 1, - k_EItemStatistic_NumFollowers = 2, - k_EItemStatistic_NumUniqueSubscriptions = 3, - k_EItemStatistic_NumUniqueFavorites = 4, - k_EItemStatistic_NumUniqueFollowers = 5, - k_EItemStatistic_NumUniqueWebsiteViews = 6, - k_EItemStatistic_ReportScore = 7, - k_EItemStatistic_NumSecondsPlayed = 8, - k_EItemStatistic_NumPlaytimeSessions = 9, - k_EItemStatistic_NumComments = 10, + k_EItemStatistic_NumSubscriptions = 0, + k_EItemStatistic_NumFavorites = 1, + k_EItemStatistic_NumFollowers = 2, + k_EItemStatistic_NumUniqueSubscriptions = 3, + k_EItemStatistic_NumUniqueFavorites = 4, + k_EItemStatistic_NumUniqueFollowers = 5, + k_EItemStatistic_NumUniqueWebsiteViews = 6, + k_EItemStatistic_ReportScore = 7, + k_EItemStatistic_NumSecondsPlayed = 8, + k_EItemStatistic_NumPlaytimeSessions = 9, + k_EItemStatistic_NumComments = 10, + k_EItemStatistic_NumSecondsPlayedDuringTimePeriod = 11, + k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod = 12, }; enum EItemPreviewType @@ -150,9 +155,19 @@ enum EItemPreviewType // | |Dn | | // +---+---+---+---+ k_EItemPreviewType_EnvironmentMap_LatLong = 4, // standard image file expected + k_EItemPreviewType_Clip = 5, // clip id is stored k_EItemPreviewType_ReservedMax = 255, // you can specify your own types above this value }; +enum EUGCContentDescriptorID +{ + k_EUGCContentDescriptor_NudityOrSexualContent = 1, + k_EUGCContentDescriptor_FrequentViolenceOrGore = 2, + k_EUGCContentDescriptor_AdultOnlySexualContent = 3, + k_EUGCContentDescriptor_GratuitousSexualContent = 4, + k_EUGCContentDescriptor_AnyMatureContent = 5, +}; + const uint32 kNumUGCResultsPerPage = 50; const uint32 k_cchDeveloperMetadataMax = 5000; @@ -201,31 +216,46 @@ public: virtual UGCQueryHandle_t CreateQueryUserUGCRequest( AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ) = 0; // Query for all matching UGC. Creator app id or consumer app id must be valid and be set to the current running app. unPage should start at 1. + STEAM_FLAT_NAME( CreateQueryAllUGCRequestPage ) virtual UGCQueryHandle_t CreateQueryAllUGCRequest( EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ) = 0; + // Query for all matching UGC using the new deep paging interface. Creator app id or consumer app id must be valid and be set to the current running app. pchCursor should be set to NULL or "*" to get the first result set. + STEAM_FLAT_NAME( CreateQueryAllUGCRequestCursor ) + virtual UGCQueryHandle_t CreateQueryAllUGCRequest( EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, const char *pchCursor = NULL ) = 0; + // Query for the details of the given published file ids (the RequestUGCDetails call is deprecated and replaced with this) virtual UGCQueryHandle_t CreateQueryUGCDetailsRequest( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0; // Send the query to Steam - CALL_RESULT( SteamUGCQueryCompleted_t ) + STEAM_CALL_RESULT( SteamUGCQueryCompleted_t ) virtual SteamAPICall_t SendQueryUGCRequest( UGCQueryHandle_t handle ) = 0; // Retrieve an individual result after receiving the callback for querying UGC virtual bool GetQueryUGCResult( UGCQueryHandle_t handle, uint32 index, SteamUGCDetails_t *pDetails ) = 0; - virtual bool GetQueryUGCPreviewURL( UGCQueryHandle_t handle, uint32 index, OUT_STRING_COUNT(cchURLSize) char *pchURL, uint32 cchURLSize ) = 0; - virtual bool GetQueryUGCMetadata( UGCQueryHandle_t handle, uint32 index, OUT_STRING_COUNT(cchMetadatasize) char *pchMetadata, uint32 cchMetadatasize ) = 0; + virtual uint32 GetQueryUGCNumTags( UGCQueryHandle_t handle, uint32 index ) = 0; + virtual bool GetQueryUGCTag( UGCQueryHandle_t handle, uint32 index, uint32 indexTag, STEAM_OUT_STRING_COUNT( cchValueSize ) char* pchValue, uint32 cchValueSize ) = 0; + virtual bool GetQueryUGCTagDisplayName( UGCQueryHandle_t handle, uint32 index, uint32 indexTag, STEAM_OUT_STRING_COUNT( cchValueSize ) char* pchValue, uint32 cchValueSize ) = 0; + virtual bool GetQueryUGCPreviewURL( UGCQueryHandle_t handle, uint32 index, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchURL, uint32 cchURLSize ) = 0; + virtual bool GetQueryUGCMetadata( UGCQueryHandle_t handle, uint32 index, STEAM_OUT_STRING_COUNT(cchMetadatasize) char *pchMetadata, uint32 cchMetadatasize ) = 0; virtual bool GetQueryUGCChildren( UGCQueryHandle_t handle, uint32 index, PublishedFileId_t* pvecPublishedFileID, uint32 cMaxEntries ) = 0; virtual bool GetQueryUGCStatistic( UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 *pStatValue ) = 0; virtual uint32 GetQueryUGCNumAdditionalPreviews( UGCQueryHandle_t handle, uint32 index ) = 0; - virtual bool GetQueryUGCAdditionalPreview( UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, OUT_STRING_COUNT(cchURLSize) char *pchURLOrVideoID, uint32 cchURLSize, OUT_STRING_COUNT(cchURLSize) char *pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType *pPreviewType ) = 0; + virtual bool GetQueryUGCAdditionalPreview( UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchURLOrVideoID, uint32 cchURLSize, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType *pPreviewType ) = 0; virtual uint32 GetQueryUGCNumKeyValueTags( UGCQueryHandle_t handle, uint32 index ) = 0; - virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, OUT_STRING_COUNT(cchKeySize) char *pchKey, uint32 cchKeySize, OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; + virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, STEAM_OUT_STRING_COUNT(cchKeySize) char *pchKey, uint32 cchKeySize, STEAM_OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; + // Return the first value matching the pchKey. Note that a key may map to multiple values. Returns false if there was an error or no matching value was found. + STEAM_FLAT_NAME( GetQueryFirstUGCKeyValueTag ) + virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, const char *pchKey, STEAM_OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; + + virtual uint32 GetQueryUGCContentDescriptors( UGCQueryHandle_t handle, uint32 index, EUGCContentDescriptorID *pvecDescriptors, uint32 cMaxEntries ) = 0; + // Release the request to free up memory, after retrieving results virtual bool ReleaseQueryUGCRequest( UGCQueryHandle_t handle ) = 0; // Options to set for querying UGC virtual bool AddRequiredTag( UGCQueryHandle_t handle, const char *pTagName ) = 0; + virtual bool AddRequiredTagGroup( UGCQueryHandle_t handle, const SteamParamStringArray_t *pTagGroups ) = 0; // match any of the tags in this group virtual bool AddExcludedTag( UGCQueryHandle_t handle, const char *pTagName ) = 0; virtual bool SetReturnOnlyIDs( UGCQueryHandle_t handle, bool bReturnOnlyIDs ) = 0; virtual bool SetReturnKeyValueTags( UGCQueryHandle_t handle, bool bReturnKeyValueTags ) = 0; @@ -234,6 +264,7 @@ public: virtual bool SetReturnChildren( UGCQueryHandle_t handle, bool bReturnChildren ) = 0; virtual bool SetReturnAdditionalPreviews( UGCQueryHandle_t handle, bool bReturnAdditionalPreviews ) = 0; virtual bool SetReturnTotalOnly( UGCQueryHandle_t handle, bool bReturnTotalOnly ) = 0; + virtual bool SetReturnPlaytimeStats( UGCQueryHandle_t handle, uint32 unDays ) = 0; virtual bool SetLanguage( UGCQueryHandle_t handle, const char *pchLanguage ) = 0; virtual bool SetAllowCachedResponse( UGCQueryHandle_t handle, uint32 unMaxAgeSeconds ) = 0; @@ -244,13 +275,16 @@ public: virtual bool SetMatchAnyTag( UGCQueryHandle_t handle, bool bMatchAnyTag ) = 0; virtual bool SetSearchText( UGCQueryHandle_t handle, const char *pSearchText ) = 0; virtual bool SetRankedByTrendDays( UGCQueryHandle_t handle, uint32 unDays ) = 0; + virtual bool SetTimeCreatedDateRange( UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ) = 0; + virtual bool SetTimeUpdatedDateRange( UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ) = 0; virtual bool AddRequiredKeyValueTag( UGCQueryHandle_t handle, const char *pKey, const char *pValue ) = 0; // DEPRECATED - Use CreateQueryUGCDetailsRequest call above instead! + STEAM_CALL_RESULT( SteamUGCRequestUGCDetailsResult_t ) virtual SteamAPICall_t RequestUGCDetails( PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds ) = 0; // Steam Workshop Creator API - CALL_RESULT( CreateItemResult_t ) + STEAM_CALL_RESULT( CreateItemResult_t ) virtual SteamAPICall_t CreateItem( AppId_t nConsumerAppId, EWorkshopFileType eFileType ) = 0; // create new item for this app with no content attached yet virtual UGCUpdateHandle_t StartItemUpdate( AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID ) = 0; // start an UGC item update. Set changed properties before commiting update with CommitItemUpdate() @@ -260,9 +294,11 @@ public: virtual bool SetItemUpdateLanguage( UGCUpdateHandle_t handle, const char *pchLanguage ) = 0; // specify the language of the title or description that will be set virtual bool SetItemMetadata( UGCUpdateHandle_t handle, const char *pchMetaData ) = 0; // change the metadata of an UGC item (max = k_cchDeveloperMetadataMax) virtual bool SetItemVisibility( UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility ) = 0; // change the visibility of an UGC item - virtual bool SetItemTags( UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t *pTags ) = 0; // change the tags of an UGC item + virtual bool SetItemTags( UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t *pTags, bool bAllowAdminTags = false ) = 0; // change the tags of an UGC item virtual bool SetItemContent( UGCUpdateHandle_t handle, const char *pszContentFolder ) = 0; // update item content from this local folder virtual bool SetItemPreview( UGCUpdateHandle_t handle, const char *pszPreviewFile ) = 0; // change preview image file for this item. pszPreviewFile points to local image file, which must be under 1MB in size + virtual bool SetAllowLegacyUpload( UGCUpdateHandle_t handle, bool bAllowLegacyUpload ) = 0; // use legacy upload for a single small file. The parameter to SetItemContent() should either be a directory with one file or the full path to the file. The file must also be less than 10MB in size. + virtual bool RemoveAllItemKeyValueTags( UGCUpdateHandle_t handle ) = 0; // remove all existing key-value tags (you can add new ones via the AddItemKeyValueTag function) virtual bool RemoveItemKeyValueTags( UGCUpdateHandle_t handle, const char *pchKey ) = 0; // remove any existing key-value tags with the specified key virtual bool AddItemKeyValueTag( UGCUpdateHandle_t handle, const char *pchKey, const char *pchValue ) = 0; // add new key-value tags for the item. Note that there can be multiple values for a tag. virtual bool AddItemPreviewFile( UGCUpdateHandle_t handle, const char *pszPreviewFile, EItemPreviewType type ) = 0; // add preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size @@ -270,23 +306,25 @@ public: virtual bool UpdateItemPreviewFile( UGCUpdateHandle_t handle, uint32 index, const char *pszPreviewFile ) = 0; // updates an existing preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size virtual bool UpdateItemPreviewVideo( UGCUpdateHandle_t handle, uint32 index, const char *pszVideoID ) = 0; // updates an existing preview video for this item virtual bool RemoveItemPreview( UGCUpdateHandle_t handle, uint32 index ) = 0; // remove a preview by index starting at 0 (previews are sorted) + virtual bool AddContentDescriptor( UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ) = 0; + virtual bool RemoveContentDescriptor( UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ) = 0; - CALL_RESULT( SubmitItemUpdateResult_t ) + STEAM_CALL_RESULT( SubmitItemUpdateResult_t ) virtual SteamAPICall_t SubmitItemUpdate( UGCUpdateHandle_t handle, const char *pchChangeNote ) = 0; // commit update process started with StartItemUpdate() virtual EItemUpdateStatus GetItemUpdateProgress( UGCUpdateHandle_t handle, uint64 *punBytesProcessed, uint64* punBytesTotal ) = 0; // Steam Workshop Consumer API - CALL_RESULT( SetUserItemVoteResult_t ) + STEAM_CALL_RESULT( SetUserItemVoteResult_t ) virtual SteamAPICall_t SetUserItemVote( PublishedFileId_t nPublishedFileID, bool bVoteUp ) = 0; - CALL_RESULT( GetUserItemVoteResult_t ) + STEAM_CALL_RESULT( GetUserItemVoteResult_t ) virtual SteamAPICall_t GetUserItemVote( PublishedFileId_t nPublishedFileID ) = 0; - CALL_RESULT( UserFavoriteItemsListChanged_t ) + STEAM_CALL_RESULT( UserFavoriteItemsListChanged_t ) virtual SteamAPICall_t AddItemToFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID ) = 0; - CALL_RESULT( UserFavoriteItemsListChanged_t ) + STEAM_CALL_RESULT( UserFavoriteItemsListChanged_t ) virtual SteamAPICall_t RemoveItemFromFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID ) = 0; - CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageSubscribePublishedFileResult_t ) virtual SteamAPICall_t SubscribeItem( PublishedFileId_t nPublishedFileID ) = 0; // subscribe to this item, will be installed ASAP - CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) + STEAM_CALL_RESULT( RemoteStorageUnsubscribePublishedFileResult_t ) virtual SteamAPICall_t UnsubscribeItem( PublishedFileId_t nPublishedFileID ) = 0; // unsubscribe from this item, will be uninstalled after game quits virtual uint32 GetNumSubscribedItems() = 0; // number of subscribed items virtual uint32 GetSubscribedItems( PublishedFileId_t* pvecPublishedFileID, uint32 cMaxEntries ) = 0; // all subscribed item PublishFileIDs @@ -296,7 +334,7 @@ public: // get info about currently installed content on disc for items that have k_EItemStateInstalled set // if k_EItemStateLegacyItem is set, pchFolder contains the path to the legacy file itself (not a folder) - virtual bool GetItemInstallInfo( PublishedFileId_t nPublishedFileID, uint64 *punSizeOnDisk, OUT_STRING_COUNT( cchFolderSize ) char *pchFolder, uint32 cchFolderSize, uint32 *punTimeStamp ) = 0; + virtual bool GetItemInstallInfo( PublishedFileId_t nPublishedFileID, uint64 *punSizeOnDisk, STEAM_OUT_STRING_COUNT( cchFolderSize ) char *pchFolder, uint32 cchFolderSize, uint32 *punTimeStamp ) = 0; // get info about pending update for items that have k_EItemStateNeedsUpdate set. punBytesTotal will be valid after download started once virtual bool GetItemDownloadInfo( PublishedFileId_t nPublishedFileID, uint64 *punBytesDownloaded, uint64 *punBytesTotal ) = 0; @@ -314,27 +352,65 @@ public: virtual void SuspendDownloads( bool bSuspend ) = 0; // usage tracking - CALL_RESULT( StartPlaytimeTrackingResult_t ); + STEAM_CALL_RESULT( StartPlaytimeTrackingResult_t ) virtual SteamAPICall_t StartPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0; - CALL_RESULT( StopPlaytimeTrackingResult_t ); + STEAM_CALL_RESULT( StopPlaytimeTrackingResult_t ) virtual SteamAPICall_t StopPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs ) = 0; - CALL_RESULT( StopPlaytimeTrackingResult_t ); + STEAM_CALL_RESULT( StopPlaytimeTrackingResult_t ) virtual SteamAPICall_t StopPlaytimeTrackingForAllItems() = 0; + + // parent-child relationship or dependency management + STEAM_CALL_RESULT( AddUGCDependencyResult_t ) + virtual SteamAPICall_t AddDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ) = 0; + STEAM_CALL_RESULT( RemoveUGCDependencyResult_t ) + virtual SteamAPICall_t RemoveDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ) = 0; + + // add/remove app dependence/requirements (usually DLC) + STEAM_CALL_RESULT( AddAppDependencyResult_t ) + virtual SteamAPICall_t AddAppDependency( PublishedFileId_t nPublishedFileID, AppId_t nAppID ) = 0; + STEAM_CALL_RESULT( RemoveAppDependencyResult_t ) + virtual SteamAPICall_t RemoveAppDependency( PublishedFileId_t nPublishedFileID, AppId_t nAppID ) = 0; + // request app dependencies. note that whatever callback you register for GetAppDependenciesResult_t may be called multiple times + // until all app dependencies have been returned + STEAM_CALL_RESULT( GetAppDependenciesResult_t ) + virtual SteamAPICall_t GetAppDependencies( PublishedFileId_t nPublishedFileID ) = 0; + + // delete the item without prompting the user + STEAM_CALL_RESULT( DeleteItemResult_t ) + virtual SteamAPICall_t DeleteItem( PublishedFileId_t nPublishedFileID ) = 0; + + // Show the app's latest Workshop EULA to the user in an overlay window, where they can accept it or not + virtual bool ShowWorkshopEULA() = 0; + // Retrieve information related to the user's acceptance or not of the app's specific Workshop EULA + STEAM_CALL_RESULT( WorkshopEULAStatus_t ) + virtual SteamAPICall_t GetWorkshopEULAStatus() = 0; + + // Return the user's community content descriptor preferences + virtual uint32 GetUserContentDescriptorPreferences( EUGCContentDescriptorID *pvecDescriptors, uint32 cMaxEntries ) = 0; }; -#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION009" +#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION018" + +// Global interface accessor +inline ISteamUGC *SteamUGC(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamUGC *, SteamUGC, STEAMUGC_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamUGC *SteamGameServerUGC(); +STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamUGC *, SteamGameServerUGC, STEAMUGC_INTERFACE_VERSION ); //----------------------------------------------------------------------------- // Purpose: Callback for querying UGC //----------------------------------------------------------------------------- struct SteamUGCQueryCompleted_t { - enum { k_iCallback = k_iClientUGCCallbacks + 1 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 1 }; UGCQueryHandle_t m_handle; EResult m_eResult; uint32 m_unNumResultsReturned; uint32 m_unTotalMatchingResults; bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache + char m_rgchNextCursor[k_cchPublishedFileURLMax]; // If a paging cursor was used, then this will be the next cursor to get the next result set. }; @@ -343,7 +419,7 @@ struct SteamUGCQueryCompleted_t //----------------------------------------------------------------------------- struct SteamUGCRequestUGCDetailsResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 2 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 2 }; SteamUGCDetails_t m_details; bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache }; @@ -354,7 +430,7 @@ struct SteamUGCRequestUGCDetailsResult_t //----------------------------------------------------------------------------- struct CreateItemResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 3 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 3 }; EResult m_eResult; PublishedFileId_t m_nPublishedFileId; // new item got this UGC PublishFileID bool m_bUserNeedsToAcceptWorkshopLegalAgreement; @@ -366,9 +442,10 @@ struct CreateItemResult_t //----------------------------------------------------------------------------- struct SubmitItemUpdateResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 4 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 4 }; EResult m_eResult; bool m_bUserNeedsToAcceptWorkshopLegalAgreement; + PublishedFileId_t m_nPublishedFileId; }; @@ -377,7 +454,7 @@ struct SubmitItemUpdateResult_t //----------------------------------------------------------------------------- struct ItemInstalled_t { - enum { k_iCallback = k_iClientUGCCallbacks + 5 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 5 }; AppId_t m_unAppID; PublishedFileId_t m_nPublishedFileId; }; @@ -388,7 +465,7 @@ struct ItemInstalled_t //----------------------------------------------------------------------------- struct DownloadItemResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 6 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 6 }; AppId_t m_unAppID; PublishedFileId_t m_nPublishedFileId; EResult m_eResult; @@ -399,7 +476,7 @@ struct DownloadItemResult_t //----------------------------------------------------------------------------- struct UserFavoriteItemsListChanged_t { - enum { k_iCallback = k_iClientUGCCallbacks + 7 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 7 }; PublishedFileId_t m_nPublishedFileId; EResult m_eResult; bool m_bWasAddRequest; @@ -410,7 +487,7 @@ struct UserFavoriteItemsListChanged_t //----------------------------------------------------------------------------- struct SetUserItemVoteResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 8 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 8 }; PublishedFileId_t m_nPublishedFileId; EResult m_eResult; bool m_bVoteUp; @@ -421,7 +498,7 @@ struct SetUserItemVoteResult_t //----------------------------------------------------------------------------- struct GetUserItemVoteResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 9 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 9 }; PublishedFileId_t m_nPublishedFileId; EResult m_eResult; bool m_bVotedUp; @@ -434,7 +511,7 @@ struct GetUserItemVoteResult_t //----------------------------------------------------------------------------- struct StartPlaytimeTrackingResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 10 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 10 }; EResult m_eResult; }; @@ -443,10 +520,103 @@ struct StartPlaytimeTrackingResult_t //----------------------------------------------------------------------------- struct StopPlaytimeTrackingResult_t { - enum { k_iCallback = k_iClientUGCCallbacks + 11 }; + enum { k_iCallback = k_iSteamUGCCallbacks + 11 }; EResult m_eResult; }; +//----------------------------------------------------------------------------- +// Purpose: The result of a call to AddDependency +//----------------------------------------------------------------------------- +struct AddUGCDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 12 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + PublishedFileId_t m_nChildPublishedFileId; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to RemoveDependency +//----------------------------------------------------------------------------- +struct RemoveUGCDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 13 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + PublishedFileId_t m_nChildPublishedFileId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to AddAppDependency +//----------------------------------------------------------------------------- +struct AddAppDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 14 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + AppId_t m_nAppID; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to RemoveAppDependency +//----------------------------------------------------------------------------- +struct RemoveAppDependencyResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 15 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + AppId_t m_nAppID; +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to GetAppDependencies. Callback may be called +// multiple times until all app dependencies have been returned. +//----------------------------------------------------------------------------- +struct GetAppDependenciesResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 16 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; + AppId_t m_rgAppIDs[32]; + uint32 m_nNumAppDependencies; // number returned in this struct + uint32 m_nTotalNumAppDependencies; // total found +}; + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to DeleteItem +//----------------------------------------------------------------------------- +struct DeleteItemResult_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 17 }; + EResult m_eResult; + PublishedFileId_t m_nPublishedFileId; +}; + + +//----------------------------------------------------------------------------- +// Purpose: signal that the list of subscribed items changed +//----------------------------------------------------------------------------- +struct UserSubscribedItemsListChanged_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 18 }; + AppId_t m_nAppID; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Status of the user's acceptable/rejection of the app's specific Workshop EULA +//----------------------------------------------------------------------------- +struct WorkshopEULAStatus_t +{ + enum { k_iCallback = k_iSteamUGCCallbacks + 20 }; + EResult m_eResult; + AppId_t m_nAppID; + uint32 m_unVersion; + RTime32 m_rtAction; + bool m_bAccepted; + bool m_bNeedsAction; +}; #pragma pack( pop ) diff --git a/lib/windows/include/steam/isteamunifiedmessages.h b/lib/windows/include/steam/isteamunifiedmessages.h deleted file mode 100644 index 684f4e8..0000000 --- a/lib/windows/include/steam/isteamunifiedmessages.h +++ /dev/null @@ -1,63 +0,0 @@ -//====== Copyright � 1996-2007, Valve Corporation, All rights reserved. ======= -// -// Purpose: Interface to unified messages client -// -// You should not need to use this interface except if your product is using a language other than C++. -// Contact your Steam Tech contact for more details. -// -//============================================================================= - -#ifndef ISTEAMUNIFIEDMESSAGES_H -#define ISTEAMUNIFIEDMESSAGES_H -#ifdef _WIN32 -#pragma once -#endif - -typedef uint64 ClientUnifiedMessageHandle; - -class ISteamUnifiedMessages -{ -public: - static const ClientUnifiedMessageHandle k_InvalidUnifiedMessageHandle = 0; - - // Sends a service method (in binary serialized form) using the Steam Client. - // Returns a unified message handle (k_InvalidUnifiedMessageHandle if could not send the message). - virtual ClientUnifiedMessageHandle SendMethod( const char *pchServiceMethod, const void *pRequestBuffer, uint32 unRequestBufferSize, uint64 unContext ) = 0; - - // Gets the size of the response and the EResult. Returns false if the response is not ready yet. - virtual bool GetMethodResponseInfo( ClientUnifiedMessageHandle hHandle, uint32 *punResponseSize, EResult *peResult ) = 0; - - // Gets a response in binary serialized form (and optionally release the corresponding allocated memory). - virtual bool GetMethodResponseData( ClientUnifiedMessageHandle hHandle, void *pResponseBuffer, uint32 unResponseBufferSize, bool bAutoRelease ) = 0; - - // Releases the message and its corresponding allocated memory. - virtual bool ReleaseMethod( ClientUnifiedMessageHandle hHandle ) = 0; - - // Sends a service notification (in binary serialized form) using the Steam Client. - // Returns true if the notification was sent successfully. - virtual bool SendNotification( const char *pchServiceNotification, const void *pNotificationBuffer, uint32 unNotificationBufferSize ) = 0; -}; - -#define STEAMUNIFIEDMESSAGES_INTERFACE_VERSION "STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001" - -// callbacks -#if defined( VALVE_CALLBACK_PACK_SMALL ) -#pragma pack( push, 4 ) -#elif defined( VALVE_CALLBACK_PACK_LARGE ) -#pragma pack( push, 8 ) -#else -#error isteamclient.h must be included -#endif - -struct SteamUnifiedMessagesSendMethodResult_t -{ - enum { k_iCallback = k_iClientUnifiedMessagesCallbacks + 1 }; - ClientUnifiedMessageHandle m_hHandle; // The handle returned by SendMethod(). - uint64 m_unContext; // Context provided when calling SendMethod(). - EResult m_eResult; // The result of the method call. - uint32 m_unResponseSize; // The size of the response. -}; - -#pragma pack( pop ) - -#endif // ISTEAMUNIFIEDMESSAGES_H diff --git a/lib/windows/include/steam/isteamuser.h b/lib/windows/include/steam/isteamuser.h index f97a057..182f02e 100644 --- a/lib/windows/include/steam/isteamuser.h +++ b/lib/windows/include/steam/isteamuser.h @@ -10,26 +10,7 @@ #pragma once #endif -#include "isteamclient.h" - -// structure that contains client callback data -// see callbacks documentation for more details -#if defined( VALVE_CALLBACK_PACK_SMALL ) -#pragma pack( push, 4 ) -#elif defined( VALVE_CALLBACK_PACK_LARGE ) -#pragma pack( push, 8 ) -#else -#error isteamclient.h must be included -#endif -struct CallbackMsg_t -{ - HSteamUser m_hSteamUser; - int m_iCallback; - uint8 *m_pubParam; - int m_cubParam; -}; -#pragma pack( pop ) - +#include "steam_api_common.h" //----------------------------------------------------------------------------- // Purpose: Functions for accessing and manipulating a steam account @@ -66,11 +47,17 @@ public: // // return value - returns the number of bytes written to pBlob. If the return is 0, then the buffer passed in was too small, and the call has failed // The contents of pBlob should then be sent to the game server, for it to use to complete the authentication process. - virtual int InitiateGameConnection( void *pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure ) = 0; + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual int InitiateGameConnection_DEPRECATED( void *pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure ) = 0; // notify of disconnect // needs to occur when the game client leaves the specified game server, needs to match with the InitiateGameConnection() call - virtual void TerminateGameConnection( uint32 unIPServer, uint16 usPortServer ) = 0; + // + // DEPRECATED! This function will be removed from the SDK in an upcoming version. + // Please migrate to BeginAuthSession and related functions. + virtual void TerminateGameConnection_DEPRECATED( uint32 unIPServer, uint16 usPortServer ) = 0; // Legacy functions @@ -89,41 +76,64 @@ public: // k_eVoiceResultNotRecording virtual void StopVoiceRecording( ) = 0; - // Determine the amount of captured audio data that is available in bytes. - // This provides both the compressed and uncompressed data. Please note that the uncompressed - // data is not the raw feed from the microphone: data may only be available if audible - // levels of speech are detected. - // nUncompressedVoiceDesiredSampleRate is necessary to know the number of bytes to return in pcbUncompressed - can be set to 0 if you don't need uncompressed (the usual case) - // If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nUncompressedVoiceDesiredSampleRate - virtual EVoiceResult GetAvailableVoice( uint32 *pcbCompressed, uint32 *pcbUncompressed, uint32 nUncompressedVoiceDesiredSampleRate ) = 0; + // Determine the size of captured audio data that is available from GetVoice. + // Most applications will only use compressed data and should ignore the other + // parameters, which exist primarily for backwards compatibility. See comments + // below for further explanation of "uncompressed" data. + virtual EVoiceResult GetAvailableVoice( uint32 *pcbCompressed, uint32 *pcbUncompressed_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 ) = 0; - // Gets the latest voice data from the microphone. Compressed data is an arbitrary format, and is meant to be handed back to - // DecompressVoice() for playback later as a binary blob. Uncompressed data is 16-bit, signed integer, 11025Hz PCM format. - // Please note that the uncompressed data is not the raw feed from the microphone: data may only be available if audible - // levels of speech are detected, and may have passed through denoising filters, etc. - // This function should be called as often as possible once recording has started; once per frame at least. - // nBytesWritten is set to the number of bytes written to pDestBuffer. - // nUncompressedBytesWritten is set to the number of bytes written to pUncompressedDestBuffer. - // You must grab both compressed and uncompressed here at the same time, if you want both. - // Matching data that is not read during this call will be thrown away. - // GetAvailableVoice() can be used to determine how much data is actually available. - // If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nUncompressedVoiceDesiredSampleRate - virtual EVoiceResult GetVoice( bool bWantCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, bool bWantUncompressed, void *pUncompressedDestBuffer, uint32 cbUncompressedDestBufferSize, uint32 *nUncompressBytesWritten, uint32 nUncompressedVoiceDesiredSampleRate ) = 0; + // --------------------------------------------------------------------------- + // NOTE: "uncompressed" audio is a deprecated feature and should not be used + // by most applications. It is raw single-channel 16-bit PCM wave data which + // may have been run through preprocessing filters and/or had silence removed, + // so the uncompressed audio could have a shorter duration than you expect. + // There may be no data at all during long periods of silence. Also, fetching + // uncompressed audio will cause GetVoice to discard any leftover compressed + // audio, so you must fetch both types at once. Finally, GetAvailableVoice is + // not precisely accurate when the uncompressed size is requested. So if you + // really need to use uncompressed audio, you should call GetVoice frequently + // with two very large (20kb+) output buffers instead of trying to allocate + // perfectly-sized buffers. But most applications should ignore all of these + // details and simply leave the "uncompressed" parameters as NULL/zero. + // --------------------------------------------------------------------------- - // Decompresses a chunk of compressed data produced by GetVoice(). - // nBytesWritten is set to the number of bytes written to pDestBuffer unless the return value is k_EVoiceResultBufferTooSmall. - // In that case, nBytesWritten is set to the size of the buffer required to decompress the given - // data. The suggested buffer size for the destination buffer is 22 kilobytes. - // The output format of the data is 16-bit signed at the requested samples per second. - // If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nDesiredSampleRate + // Read captured audio data from the microphone buffer. This should be called + // at least once per frame, and preferably every few milliseconds, to keep the + // microphone input delay as low as possible. Most applications will only use + // compressed data and should pass NULL/zero for the "uncompressed" parameters. + // Compressed data can be transmitted by your application and decoded into raw + // using the DecompressVoice function below. + virtual EVoiceResult GetVoice( bool bWantCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, bool bWantUncompressed_Deprecated = false, void *pUncompressedDestBuffer_Deprecated = 0, uint32 cbUncompressedDestBufferSize_Deprecated = 0, uint32 *nUncompressBytesWritten_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 ) = 0; + + // Decodes the compressed voice data returned by GetVoice. The output data is + // raw single-channel 16-bit PCM audio. The decoder supports any sample rate + // from 11025 to 48000; see GetVoiceOptimalSampleRate() below for details. + // If the output buffer is not large enough, then *nBytesWritten will be set + // to the required buffer size, and k_EVoiceResultBufferTooSmall is returned. + // It is suggested to start with a 20kb buffer and reallocate as necessary. virtual EVoiceResult DecompressVoice( const void *pCompressed, uint32 cbCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, uint32 nDesiredSampleRate ) = 0; - // This returns the frequency of the voice data as it's stored internally; calling DecompressVoice() with this size will yield the best results + // This returns the native sample rate of the Steam voice decompressor; using + // this sample rate for DecompressVoice will perform the least CPU processing. + // However, the final audio quality will depend on how well the audio device + // (and/or your application's audio output SDK) deals with lower sample rates. + // You may find that you get the best audio output quality when you ignore + // this function and use the native sample rate of your audio output device, + // which is usually 48000 or 44100. virtual uint32 GetVoiceOptimalSampleRate() = 0; // Retrieve ticket to be sent to the entity who wishes to authenticate you. // pcbTicket retrieves the length of the actual ticket. - virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket ) = 0; + // SteamNetworkingIdentity is an optional input parameter to hold the public IP address or SteamID of the entity you are connecting to + // if an IP address is passed Steam will only allow the ticket to be used by an entity with that IP address + // if a Steam ID is passed Steam will only allow the ticket to be used by that Steam ID + // not to be used for "ISteamUserAuth\AuthenticateUserTicket" - it will fail + virtual HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket, const SteamNetworkingIdentity *pSteamNetworkingIdentity ) = 0; + + // Request a ticket which will be used for webapi "ISteamUserAuth\AuthenticateUserTicket" + // pchIdentity is an optional input parameter to identify the service the ticket will be sent to + // the ticket will be returned in callback GetTicketForWebApiResponse_t + virtual HAuthTicket GetAuthTicketForWebApi( const char *pchIdentity ) = 0; // Authenticate ticket from entity steamID to be sure it is valid and isnt reused // Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse ) @@ -151,10 +161,15 @@ public: // Requests a ticket encrypted with an app specific shared key // pDataToInclude, cbDataToInclude will be encrypted into the ticket // ( This is asynchronous, you must wait for the ticket to be completed by the server ) - CALL_RESULT( EncryptedAppTicketResponse_t ) + STEAM_CALL_RESULT( EncryptedAppTicketResponse_t ) virtual SteamAPICall_t RequestEncryptedAppTicket( void *pDataToInclude, int cbDataToInclude ) = 0; - // retrieve a finished ticket + // Retrieves a finished ticket. + // If no ticket is available, or your buffer is too small, returns false. + // Upon exit, *pcbTicket will be either the size of the ticket copied into your buffer + // (if true was returned), or the size needed (if false was returned). To determine the + // proper size of the ticket, you can pass pTicket=NULL and cbMaxTicket=0; if a ticket + // is available, *pcbTicket will contain the size needed, otherwise it will be zero. virtual bool GetEncryptedAppTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket ) = 0; // Trading Card badges data access @@ -175,7 +190,7 @@ public: // or else immediately navigate to the result URL using a hidden browser window. // NOTE 2: The resulting authorization cookie has an expiration time of one day, // so it would be a good idea to request and visit a new auth URL every 12 hours. - CALL_RESULT( StoreAuthURLResponse_t ) + STEAM_CALL_RESULT( StoreAuthURLResponse_t ) virtual SteamAPICall_t RequestStoreAuthURL( const char *pchRedirectURL ) = 0; // gets whether the users phone number is verified @@ -190,10 +205,25 @@ public: // gets whether the users phone number is awaiting (re)verification virtual bool BIsPhoneRequiringVerification() = 0; + STEAM_CALL_RESULT( MarketEligibilityResponse_t ) + virtual SteamAPICall_t GetMarketEligibility() = 0; + + // Retrieves anti indulgence / duration control for current user + STEAM_CALL_RESULT( DurationControl_t ) + virtual SteamAPICall_t GetDurationControl() = 0; + + // Advise steam china duration control system about the online state of the game. + // This will prevent offline gameplay time from counting against a user's + // playtime limits. + virtual bool BSetDurationControlOnlineState( EDurationControlOnlineState eNewState ) = 0; + }; -#define STEAMUSER_INTERFACE_VERSION "SteamUser019" +#define STEAMUSER_INTERFACE_VERSION "SteamUser023" +// Global interface accessor +inline ISteamUser *SteamUser(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamUser *, SteamUser, STEAMUSER_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -201,15 +231,16 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif + //----------------------------------------------------------------------------- -// Purpose: called when a connections to the Steam back-end has been established -// this means the Steam client now has a working connection to the Steam servers -// usually this will have occurred before the game has launched, and should +// Purpose: Called when an authenticated connection to the Steam back-end has been established. +// This means the Steam client now has a working connection to the Steam servers. +// Usually this will have occurred before the game has launched, and should // only be seen if the user has dropped connection due to a networking issue -// or a Steam server update +// or a Steam server update. //----------------------------------------------------------------------------- struct SteamServersConnected_t { @@ -329,7 +360,6 @@ struct GetAuthSessionTicketResponse_t EResult m_eResult; }; - //----------------------------------------------------------------------------- // Purpose: sent to your game in response to a steam://gamewebcallback/ command //----------------------------------------------------------------------------- @@ -349,6 +379,60 @@ struct StoreAuthURLResponse_t }; +//----------------------------------------------------------------------------- +// Purpose: sent in response to ISteamUser::GetMarketEligibility +//----------------------------------------------------------------------------- +struct MarketEligibilityResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 66 }; + bool m_bAllowed; + EMarketNotAllowedReasonFlags m_eNotAllowedReason; + RTime32 m_rtAllowedAtTime; + + int m_cdaySteamGuardRequiredDays; // The number of days any user is required to have had Steam Guard before they can use the market + int m_cdayNewDeviceCooldown; // The number of days after initial device authorization a user must wait before using the market on that device +}; + + +//----------------------------------------------------------------------------- +// Purpose: sent for games with enabled anti indulgence / duration control, for +// enabled users. Lets the game know whether the user can keep playing or +// whether the game should exit, and returns info about remaining gameplay time. +// +// This callback is fired asynchronously in response to timers triggering. +// It is also fired in response to calls to GetDurationControl(). +//----------------------------------------------------------------------------- +struct DurationControl_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 67 }; + + EResult m_eResult; // result of call (always k_EResultOK for asynchronous timer-based notifications) + AppId_t m_appid; // appid generating playtime + + bool m_bApplicable; // is duration control applicable to user + game combination + int32 m_csecsLast5h; // playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + + EDurationControlProgress m_progress; // recommended progress (either everything is fine, or please exit game) + EDurationControlNotification m_notification; // notification to show, if any (always k_EDurationControlNotification_None for API calls) + + int32 m_csecsToday; // playtime on current calendar day + int32 m_csecsRemaining; // playtime remaining until the user hits a regulatory limit +}; + + +//----------------------------------------------------------------------------- +// callback for GetTicketForWebApi +//----------------------------------------------------------------------------- +struct GetTicketForWebApiResponse_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 68 }; + HAuthTicket m_hAuthTicket; + EResult m_eResult; + int m_cubTicket; + static const int k_nCubTicketMaxLength = 2560; + uint8 m_rgubTicket[k_nCubTicketMaxLength]; +}; + #pragma pack( pop ) diff --git a/lib/windows/include/steam/isteamuserstats.h b/lib/windows/include/steam/isteamuserstats.h index 29ae38b..8bb0c90 100644 --- a/lib/windows/include/steam/isteamuserstats.h +++ b/lib/windows/include/steam/isteamuserstats.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" #include "isteamremotestorage.h" // size limit on stat or achievement name (UTF-8 encoded) @@ -67,7 +67,7 @@ enum ELeaderboardUploadScoreMethod #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif struct LeaderboardEntry_t @@ -89,16 +89,23 @@ class ISteamUserStats { public: // Ask the server to send down this user's data and achievements for this game - CALL_BACK( UserStatsReceived_t ) + STEAM_CALL_BACK( UserStatsReceived_t ) virtual bool RequestCurrentStats() = 0; // Data accessors + STEAM_FLAT_NAME( GetStatInt32 ) virtual bool GetStat( const char *pchName, int32 *pData ) = 0; + + STEAM_FLAT_NAME( GetStatFloat ) virtual bool GetStat( const char *pchName, float *pData ) = 0; // Set / update data + STEAM_FLAT_NAME( SetStatInt32 ) virtual bool SetStat( const char *pchName, int32 nData ) = 0; + + STEAM_FLAT_NAME( SetStatFloat ) virtual bool SetStat( const char *pchName, float fData ) = 0; + virtual bool UpdateAvgRateStat( const char *pchName, float flCountThisSession, double dSessionLength ) = 0; // Achievement flag accessors @@ -149,12 +156,16 @@ public: // returns a UserStatsReceived_t received when completed // if the other user has no stats, UserStatsReceived_t.m_eResult will be set to k_EResultFail // these stats won't be auto-updated; you'll need to call RequestUserStats() again to refresh any data - CALL_RESULT( UserStatsReceived_t ) + STEAM_CALL_RESULT( UserStatsReceived_t ) virtual SteamAPICall_t RequestUserStats( CSteamID steamIDUser ) = 0; // requests stat information for a user, usable after a successful call to RequestUserStats() + STEAM_FLAT_NAME( GetUserStatInt32 ) virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, int32 *pData ) = 0; + + STEAM_FLAT_NAME( GetUserStatFloat ) virtual bool GetUserStat( CSteamID steamIDUser, const char *pchName, float *pData ) = 0; + virtual bool GetUserAchievement( CSteamID steamIDUser, const char *pchName, bool *pbAchieved ) = 0; // See notes for GetAchievementAndUnlockTime above virtual bool GetUserAchievementAndUnlockTime( CSteamID steamIDUser, const char *pchName, bool *pbAchieved, uint32 *punUnlockTime ) = 0; @@ -166,12 +177,12 @@ public: // asks the Steam back-end for a leaderboard by name, and will create it if it's not yet // This call is asynchronous, with the result returned in LeaderboardFindResult_t - CALL_RESULT(LeaderboardFindResult_t) + STEAM_CALL_RESULT(LeaderboardFindResult_t) virtual SteamAPICall_t FindOrCreateLeaderboard( const char *pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType ) = 0; // as above, but won't create the leaderboard if it's not found // This call is asynchronous, with the result returned in LeaderboardFindResult_t - CALL_RESULT( LeaderboardFindResult_t ) + STEAM_CALL_RESULT( LeaderboardFindResult_t ) virtual SteamAPICall_t FindLeaderboard( const char *pchLeaderboardName ) = 0; // returns the name of a leaderboard @@ -194,15 +205,14 @@ public: // k_ELeaderboardDataRequestGlobalAroundUser requests rows around the current user, nRangeStart being negate // e.g. DownloadLeaderboardEntries( hLeaderboard, k_ELeaderboardDataRequestGlobalAroundUser, -3, 3 ) will return 7 rows, 3 before the user, 3 after // k_ELeaderboardDataRequestFriends requests all the rows for friends of the current user - CALL_RESULT( LeaderboardScoresDownloaded_t ) + STEAM_CALL_RESULT( LeaderboardScoresDownloaded_t ) virtual SteamAPICall_t DownloadLeaderboardEntries( SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd ) = 0; // as above, but downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers // if a user doesn't have a leaderboard entry, they won't be included in the result // a max of 100 users can be downloaded at a time, with only one outstanding call at a time - METHOD_DESC(Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers) - CALL_RESULT( LeaderboardScoresDownloaded_t ) + STEAM_CALL_RESULT( LeaderboardScoresDownloaded_t ) virtual SteamAPICall_t DownloadLeaderboardEntriesForUsers( SteamLeaderboard_t hSteamLeaderboard, - ARRAY_COUNT_D(cUsers, Array of users to retrieve) CSteamID *prgUsers, int cUsers ) = 0; + STEAM_ARRAY_COUNT_D(cUsers, Array of users to retrieve) CSteamID *prgUsers, int cUsers ) = 0; // Returns data about a single leaderboard entry // use a for loop from 0 to LeaderboardScoresDownloaded_t::m_cEntryCount to get all the downloaded entries @@ -224,24 +234,24 @@ public: // This call is asynchronous, with the result returned in LeaderboardScoreUploaded_t // Details are extra game-defined information regarding how the user got that score // pScoreDetails points to an array of int32's, cScoreDetailsCount is the number of int32's in the list - CALL_RESULT( LeaderboardScoreUploaded_t ) + STEAM_CALL_RESULT( LeaderboardScoreUploaded_t ) virtual SteamAPICall_t UploadLeaderboardScore( SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32 *pScoreDetails, int cScoreDetailsCount ) = 0; // Attaches a piece of user generated content the user's entry on a leaderboard. // hContent is a handle to a piece of user generated content that was shared using ISteamUserRemoteStorage::FileShare(). // This call is asynchronous, with the result returned in LeaderboardUGCSet_t. - CALL_RESULT( LeaderboardUGCSet_t ) + STEAM_CALL_RESULT( LeaderboardUGCSet_t ) virtual SteamAPICall_t AttachLeaderboardUGC( SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC ) = 0; // Retrieves the number of players currently playing your game (online + offline) // This call is asynchronous, with the result returned in NumberOfCurrentPlayers_t - CALL_RESULT( NumberOfCurrentPlayers_t ) + STEAM_CALL_RESULT( NumberOfCurrentPlayers_t ) virtual SteamAPICall_t GetNumberOfCurrentPlayers() = 0; // Requests that Steam fetch data on the percentage of players who have received each achievement // for the game globally. // This call is asynchronous, with the result returned in GlobalAchievementPercentagesReady_t. - CALL_RESULT( GlobalAchievementPercentagesReady_t ) + STEAM_CALL_RESULT( GlobalAchievementPercentagesReady_t ) virtual SteamAPICall_t RequestGlobalAchievementPercentages() = 0; // Get the info on the most achieved achievement for the game, returns an iterator index you can use to fetch @@ -261,42 +271,43 @@ public: // This call is asynchronous, with the results returned in GlobalStatsReceived_t. // nHistoryDays specifies how many days of day-by-day history to retrieve in addition // to the overall totals. The limit is 60. - CALL_RESULT( GlobalStatsReceived_t ) + STEAM_CALL_RESULT( GlobalStatsReceived_t ) virtual SteamAPICall_t RequestGlobalStats( int nHistoryDays ) = 0; // Gets the lifetime totals for an aggregated stat + STEAM_FLAT_NAME( GetGlobalStatInt64 ) virtual bool GetGlobalStat( const char *pchStatName, int64 *pData ) = 0; + + STEAM_FLAT_NAME( GetGlobalStatDouble ) virtual bool GetGlobalStat( const char *pchStatName, double *pData ) = 0; // Gets history for an aggregated stat. pData will be filled with daily values, starting with today. // So when called, pData[0] will be today, pData[1] will be yesterday, and pData[2] will be two days ago, // etc. cubData is the size in bytes of the pubData buffer. Returns the number of // elements actually set. - virtual int32 GetGlobalStatHistory( const char *pchStatName, ARRAY_COUNT(cubData) int64 *pData, uint32 cubData ) = 0; - virtual int32 GetGlobalStatHistory( const char *pchStatName, ARRAY_COUNT(cubData) double *pData, uint32 cubData ) = 0; -#ifdef _PS3 - // Call to kick off installation of the PS3 trophies. This call is asynchronous, and the results will be returned in a PS3TrophiesInstalled_t - // callback. - virtual bool InstallPS3Trophies() = 0; + STEAM_FLAT_NAME( GetGlobalStatHistoryInt64 ) + virtual int32 GetGlobalStatHistory( const char *pchStatName, STEAM_ARRAY_COUNT(cubData) int64 *pData, uint32 cubData ) = 0; - // Returns the amount of space required at boot to install trophies. This value can be used when comparing the amount of space needed - // by the game to the available space value passed to the game at boot. The value is set during InstallPS3Trophies(). - virtual uint64 GetTrophySpaceRequiredBeforeInstall() = 0; + STEAM_FLAT_NAME( GetGlobalStatHistoryDouble ) + virtual int32 GetGlobalStatHistory( const char *pchStatName, STEAM_ARRAY_COUNT(cubData) double *pData, uint32 cubData ) = 0; - // On PS3, user stats & achievement progress through Steam must be stored with the user's saved game data. - // At startup, before calling RequestCurrentStats(), you must pass the user's stats data to Steam via this method. - // If you do not have any user data, call this function with pvData = NULL and cubData = 0 - virtual bool SetUserStatsData( const void *pvData, uint32 cubData ) = 0; + // For achievements that have related Progress stats, use this to query what the bounds of that progress are. + // You may want this info to selectively call IndicateAchievementProgress when appropriate milestones of progress + // have been made, to show a progress notification to the user. + STEAM_FLAT_NAME( GetAchievementProgressLimitsInt32 ) + virtual bool GetAchievementProgressLimits( const char *pchName, int32 *pnMinProgress, int32 *pnMaxProgress ) = 0; + + STEAM_FLAT_NAME( GetAchievementProgressLimitsFloat ) + virtual bool GetAchievementProgressLimits( const char *pchName, float *pfMinProgress, float *pfMaxProgress ) = 0; - // Call to get the user's current stats data. You should retrieve this data after receiving successful UserStatsReceived_t & UserStatsStored_t - // callbacks, and store the data with the user's save game data. You can call this method with pvData = NULL and cubData = 0 to get the required - // buffer size. - virtual bool GetUserStatsData( void *pvData, uint32 cubData, uint32 *pcubWritten ) = 0; -#endif }; -#define STEAMUSERSTATS_INTERFACE_VERSION "STEAMUSERSTATS_INTERFACE_VERSION011" +#define STEAMUSERSTATS_INTERFACE_VERSION "STEAMUSERSTATS_INTERFACE_VERSION012" + +// Global interface accessor +inline ISteamUserStats *SteamUserStats(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamUserStats *, SteamUserStats, STEAMUSERSTATS_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -304,7 +315,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- diff --git a/lib/windows/include/steam/isteamutils.h b/lib/windows/include/steam/isteamutils.h index aaf839f..be5acb2 100644 --- a/lib/windows/include/steam/isteamutils.h +++ b/lib/windows/include/steam/isteamutils.h @@ -6,11 +6,8 @@ #ifndef ISTEAMUTILS_H #define ISTEAMUTILS_H -#ifdef _WIN32 -#pragma once -#endif -#include "isteamclient.h" +#include "steam_api_common.h" // Steam API call failure results @@ -41,12 +38,24 @@ enum EGamepadTextInputLineMode k_EGamepadTextInputLineModeMultipleLines = 1 }; +enum EFloatingGamepadTextInputMode +{ + k_EFloatingGamepadTextInputModeModeSingleLine = 0, // Enter dismisses the keyboard + k_EFloatingGamepadTextInputModeModeMultipleLines = 1, // User needs to explictly close the keyboard + k_EFloatingGamepadTextInputModeModeEmail = 2, // Keyboard layout is email, enter dismisses the keyboard + k_EFloatingGamepadTextInputModeModeNumeric = 3, // Keyboard layout is numeric, enter dismisses the keyboard + +}; + +// The context where text filtering is being done +enum ETextFilteringContext +{ + k_ETextFilteringContextUnknown = 0, // Unknown context + k_ETextFilteringContextGameContent = 1, // Game content, only legally required filtering is performed + k_ETextFilteringContextChat = 2, // Chat from another player + k_ETextFilteringContextName = 3, // Character or item name +}; -// function prototype for warning message hook -#if defined( POSIX ) -#define __cdecl -#endif -extern "C" typedef void (__cdecl *SteamAPIWarningMessageHook_t)(int, const char *); //----------------------------------------------------------------------------- // Purpose: interface to user independent utility functions @@ -76,8 +85,8 @@ public: // the destination buffer size should be 4 * height * width * sizeof(char) virtual bool GetImageRGBA( int iImage, uint8 *pubDest, int nDestBufferSize ) = 0; - // returns the IP of the reporting server for valve - currently only used in Source engine games - virtual bool GetCSERIPPort( uint32 *unIP, uint16 *usPort ) = 0; + // Deprecated. Do not call this. + STEAM_PRIVATE_API( virtual bool GetCSERIPPort( uint32 *unIP, uint16 *usPort ) = 0; ) // return the amount of battery power left in the current system in % [0..100], 255 for being on AC power virtual uint8 GetCurrentBatteryPower() = 0; @@ -133,10 +142,10 @@ public: // k_ECheckFileSignatureFileNotFound - The file does not exist on disk. // k_ECheckFileSignatureInvalidSignature - The file exists, and the signing tab has been set for this file, but the file is either not signed or the signature does not match. // k_ECheckFileSignatureValidSignature - The file is signed and the signature is valid. - CALL_RESULT( CheckFileSignature_t ) + STEAM_CALL_RESULT( CheckFileSignature_t ) virtual SteamAPICall_t CheckFileSignature( const char *szFileName ) = 0; - // Activates the Big Picture text input dialog which only supports gamepad input + // Activates the full-screen text input dialog which takes a initial text string and returns the text the user has typed virtual bool ShowGamepadTextInput( EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char *pchDescription, uint32 unCharMax, const char *pchExistingText ) = 0; // Returns previously entered text & length @@ -159,10 +168,67 @@ public: // ask SteamUI to create and render its OpenVR dashboard virtual void StartVRDashboard() = 0; + + // Returns true if the HMD content will be streamed via Steam Remote Play + virtual bool IsVRHeadsetStreamingEnabled() = 0; + + // Set whether the HMD content will be streamed via Steam Remote Play + // If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + // If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + // The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + // (this is useful for games that have asymmetric multiplayer gameplay) + virtual void SetVRHeadsetStreamingEnabled( bool bEnabled ) = 0; + + // Returns whether this steam client is a Steam China specific client, vs the global client. + virtual bool IsSteamChinaLauncher() = 0; + + // Initializes text filtering, loading dictionaries for the language the game is running in. + // unFilterOptions are reserved for future use and should be set to 0 + // Returns false if filtering is unavailable for the game's language, in which case FilterText() will act as a passthrough. + // + // Users can customize the text filter behavior in their Steam Account preferences: + // https://store.steampowered.com/account/preferences#CommunityContentPreferences + virtual bool InitFilterText( uint32 unFilterOptions = 0 ) = 0; + + // Filters the provided input message and places the filtered result into pchOutFilteredText, using legally required filtering and additional filtering based on the context and user settings + // eContext is the type of content in the input string + // sourceSteamID is the Steam ID that is the source of the input string (e.g. the player with the name, or who said the chat text) + // pchInputText is the input string that should be filtered, which can be ASCII or UTF-8 + // pchOutFilteredText is where the output will be placed, even if no filtering is performed + // nByteSizeOutFilteredText is the size (in bytes) of pchOutFilteredText, should be at least strlen(pchInputText)+1 + // Returns the number of characters (not bytes) filtered + virtual int FilterText( ETextFilteringContext eContext, CSteamID sourceSteamID, const char *pchInputMessage, char *pchOutFilteredText, uint32 nByteSizeOutFilteredText ) = 0; + + // Return what we believe your current ipv6 connectivity to "the internet" is on the specified protocol. + // This does NOT tell you if the Steam client is currently connected to Steam via ipv6. + virtual ESteamIPv6ConnectivityState GetIPv6ConnectivityState( ESteamIPv6ConnectivityProtocol eProtocol ) = 0; + + // returns true if currently running on the Steam Deck device + virtual bool IsSteamRunningOnSteamDeck() = 0; + + // Opens a floating keyboard over the game content and sends OS keyboard keys directly to the game. + // The text field position is specified in pixels relative the origin of the game window and is used to position the floating keyboard in a way that doesn't cover the text field + virtual bool ShowFloatingGamepadTextInput( EFloatingGamepadTextInputMode eKeyboardMode, int nTextFieldXPosition, int nTextFieldYPosition, int nTextFieldWidth, int nTextFieldHeight ) = 0; + + // In game launchers that don't have controller support you can call this to have Steam Input translate the controller input into mouse/kb to navigate the launcher + virtual void SetGameLauncherMode( bool bLauncherMode ) = 0; + + // Dismisses the floating keyboard. + virtual bool DismissFloatingGamepadTextInput() = 0; + + // Dismisses the full-screen text input dialog. + virtual bool DismissGamepadTextInput() = 0; }; -#define STEAMUTILS_INTERFACE_VERSION "SteamUtils008" +#define STEAMUTILS_INTERFACE_VERSION "SteamUtils010" +// Global interface accessor +inline ISteamUtils *SteamUtils(); +STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamUtils *, SteamUtils, SteamInternal_FindOrCreateUserInterface( 0, STEAMUTILS_INTERFACE_VERSION ), "user", STEAMUTILS_INTERFACE_VERSION ); + +// Global accessor for the gameserver client +inline ISteamUtils *SteamGameServerUtils(); +STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamUtils *, SteamGameServerUtils, SteamInternal_FindOrCreateGameServerInterface( 0, STEAMUTILS_INTERFACE_VERSION ), "gameserver", STEAMUTILS_INTERFACE_VERSION ); // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -170,7 +236,7 @@ public: #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif //----------------------------------------------------------------------------- @@ -183,7 +249,7 @@ struct IPCountry_t //----------------------------------------------------------------------------- -// Purpose: Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute +// Purpose: Fired when running on a handheld PC or laptop with less than 10 minutes of battery is left, fires then every minute //----------------------------------------------------------------------------- struct LowBatteryPower_t { @@ -238,16 +304,39 @@ struct CheckFileSignature_t //----------------------------------------------------------------------------- -// Big Picture gamepad text input has been closed +// Full Screen gamepad text input has been closed //----------------------------------------------------------------------------- struct GamepadTextInputDismissed_t { enum { k_iCallback = k_iSteamUtilsCallbacks + 14 }; bool m_bSubmitted; // true if user entered & accepted text (Call ISteamUtils::GetEnteredGamepadTextInput() for text), false if canceled input uint32 m_unSubmittedText; + AppId_t m_unAppID; }; -// k_iSteamUtilsCallbacks + 15 is taken +// k_iSteamUtilsCallbacks + 15 through 35 are taken + +STEAM_CALLBACK_BEGIN( AppResumingFromSuspend_t, k_iSteamUtilsCallbacks + 36 ) +STEAM_CALLBACK_END(0) + +// k_iSteamUtilsCallbacks + 37 is taken + +//----------------------------------------------------------------------------- +// The floating on-screen keyboard has been closed +//----------------------------------------------------------------------------- +struct FloatingGamepadTextInputDismissed_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 38 }; +}; + +//----------------------------------------------------------------------------- +// The text filtering dictionary has changed +//----------------------------------------------------------------------------- +struct FilterTextDictionaryChanged_t +{ + enum { k_iCallback = k_iSteamUtilsCallbacks + 39 }; + int m_eLanguage; // One of ELanguage, or k_LegallyRequiredFiltering +}; #pragma pack( pop ) diff --git a/lib/windows/include/steam/isteamvideo.h b/lib/windows/include/steam/isteamvideo.h index 6893f0b..4832d7b 100644 --- a/lib/windows/include/steam/isteamvideo.h +++ b/lib/windows/include/steam/isteamvideo.h @@ -10,7 +10,7 @@ #pragma once #endif -#include "isteamclient.h" +#include "steam_api_common.h" // callbacks #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -18,7 +18,7 @@ #elif defined( VALVE_CALLBACK_PACK_LARGE ) #pragma pack( push, 8 ) #else -#error isteamclient.h must be included +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx #endif @@ -36,22 +36,30 @@ public: // returns true if user is uploading a live broadcast virtual bool IsBroadcasting( int *pnNumViewers ) = 0; + + // Get the OPF Details for 360 Video Playback + STEAM_CALL_BACK( GetOPFSettingsResult_t ) + virtual void GetOPFSettings( AppId_t unVideoAppID ) = 0; + virtual bool GetOPFStringForApp( AppId_t unVideoAppID, char *pchBuffer, int32 *pnBufferSize ) = 0; }; -#define STEAMVIDEO_INTERFACE_VERSION "STEAMVIDEO_INTERFACE_V001" +#define STEAMVIDEO_INTERFACE_VERSION "STEAMVIDEO_INTERFACE_V002" -DEFINE_CALLBACK( BroadcastUploadStart_t, k_iClientVideoCallbacks + 4 ) -END_DEFINE_CALLBACK_0() +// Global interface accessor +inline ISteamVideo *SteamVideo(); +STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamVideo *, SteamVideo, STEAMVIDEO_INTERFACE_VERSION ); -DEFINE_CALLBACK( BroadcastUploadStop_t, k_iClientVideoCallbacks + 5 ) - CALLBACK_MEMBER( 0, EBroadcastUploadResult, m_eResult ) -END_DEFINE_CALLBACK_1() +STEAM_CALLBACK_BEGIN( GetVideoURLResult_t, k_iSteamVideoCallbacks + 11 ) + STEAM_CALLBACK_MEMBER( 0, EResult, m_eResult ) + STEAM_CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID ) + STEAM_CALLBACK_MEMBER( 2, char, m_rgchURL[256] ) +STEAM_CALLBACK_END(3) -DEFINE_CALLBACK( GetVideoURLResult_t, k_iClientVideoCallbacks + 11 ) - CALLBACK_MEMBER( 0, EResult, m_eResult ) - CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID ) - CALLBACK_MEMBER( 2, char, m_rgchURL[256] ) -END_DEFINE_CALLBACK_1() + +STEAM_CALLBACK_BEGIN( GetOPFSettingsResult_t, k_iSteamVideoCallbacks + 24 ) + STEAM_CALLBACK_MEMBER( 0, EResult, m_eResult ) + STEAM_CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID ) +STEAM_CALLBACK_END(2) #pragma pack( pop ) diff --git a/lib/windows/include/steam/matchmakingtypes.h b/lib/windows/include/steam/matchmakingtypes.h index e52cfc6..791802a 100644 --- a/lib/windows/include/steam/matchmakingtypes.h +++ b/lib/windows/include/steam/matchmakingtypes.h @@ -8,16 +8,6 @@ #ifndef MATCHMAKINGTYPES_H #define MATCHMAKINGTYPES_H -#ifdef _WIN32 -#pragma once -#endif - -#ifdef POSIX -#ifndef _snprintf -#define _snprintf snprintf -#endif -#endif - #include <stdio.h> #include <string.h> @@ -68,9 +58,6 @@ public: servernetadr_t() : m_usConnectionPort( 0 ), m_usQueryPort( 0 ), m_unIP( 0 ) {} void Init( unsigned int ip, uint16 usQueryPort, uint16 usConnectionPort ); -#ifdef NETADR_H - netadr_t GetIPAndQueryPort(); -#endif // Access the query port. uint16 GetQueryPort() const; @@ -82,7 +69,7 @@ public: // Access the IP uint32 GetIP() const; - void SetIP( uint32 ); + void SetIP( uint32 unIP ); // This gets the 'a.b.c.d:port' string with the connection port (instead of the query port). const char *GetConnectionAddressString() const; @@ -113,13 +100,6 @@ inline void servernetadr_t::Init( unsigned int ip, uint16 usQueryPort, uint16 us m_usConnectionPort = usConnectionPort; } -#ifdef NETADR_H -inline netadr_t servernetadr_t::GetIPAndQueryPort() -{ - return netadr_t( m_unIP, m_usQueryPort ); -} -#endif - inline uint16 servernetadr_t::GetQueryPort() const { return m_usQueryPort; @@ -156,9 +136,9 @@ inline const char *servernetadr_t::ToString( uint32 unIP, uint16 usPort ) const static int nBuf = 0; unsigned char *ipByte = (unsigned char *)&unIP; #ifdef VALVE_BIG_ENDIAN - _snprintf (s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[0]), (int)(ipByte[1]), (int)(ipByte[2]), (int)(ipByte[3]), usPort ); + snprintf(s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[0]), (int)(ipByte[1]), (int)(ipByte[2]), (int)(ipByte[3]), usPort ); #else - _snprintf (s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[3]), (int)(ipByte[2]), (int)(ipByte[1]), (int)(ipByte[0]), usPort ); + snprintf(s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[3]), (int)(ipByte[2]), (int)(ipByte[1]), (int)(ipByte[0]), usPort ); #endif const char *pchRet = s[nBuf]; ++nBuf; diff --git a/lib/windows/include/steam/steam_api.h b/lib/windows/include/steam/steam_api.h index e3a31ae..55d90e4 100644 --- a/lib/windows/include/steam/steam_api.h +++ b/lib/windows/include/steam/steam_api.h @@ -1,6 +1,13 @@ -//====== Copyright 1996-2008, Valve Corporation, All rights reserved. ======= +//====== Copyright Valve Corporation, All rights reserved. ==================== // -// Purpose: +// This header includes *all* of the interfaces and callback structures +// in the Steamworks SDK, and some high level functions to control the SDK +// (init, shutdown, etc) that you probably only need in one or two files. +// +// To save your compile times, we recommend that you not include this file +// in header files. Instead, include the specific headers for the interfaces +// and callback structures you need. The one file you might consider including +// in your precompiled header (e.g. stdafx.h) is steam_api_common.h // //============================================================================= @@ -10,6 +17,10 @@ #pragma once #endif +// Basic stuff +#include "steam_api_common.h" + +// All of the interfaces #include "isteamclient.h" #include "isteamuser.h" #include "isteamfriends.h" @@ -23,38 +34,19 @@ #include "isteammusic.h" #include "isteammusicremote.h" #include "isteamhttp.h" -#include "isteamunifiedmessages.h" #include "isteamcontroller.h" #include "isteamugc.h" -#include "isteamapplist.h" #include "isteamhtmlsurface.h" #include "isteaminventory.h" #include "isteamvideo.h" +#include "isteamparentalsettings.h" +#include "isteaminput.h" +#include "isteamremoteplay.h" +#include "isteamnetworkingmessages.h" +#include "isteamnetworkingsockets.h" +#include "isteamnetworkingutils.h" -// Steam API export macro -#if defined( _WIN32 ) && !defined( _X360 ) - #if defined( STEAM_API_EXPORTS ) - #define S_API extern "C" __declspec( dllexport ) - #elif defined( STEAM_API_NODLL ) - #define S_API extern "C" - #else - #define S_API extern "C" __declspec( dllimport ) - #endif // STEAM_API_EXPORTS -#elif defined( GNUC ) - #if defined( STEAM_API_EXPORTS ) - #define S_API extern "C" __attribute__ ((visibility("default"))) - #else - #define S_API extern "C" - #endif // STEAM_API_EXPORTS -#else // !WIN32 - #if defined( STEAM_API_EXPORTS ) - #define S_API extern "C" - #else - #define S_API extern "C" - #endif // STEAM_API_EXPORTS -#endif - //----------------------------------------------------------------------------------------------------------------------------------------------------------// // Steam API setup & shutdown // @@ -62,10 +54,54 @@ // //----------------------------------------------------------------------------------------------------------------------------------------------------------// +enum ESteamAPIInitResult +{ + k_ESteamAPIInitResult_OK = 0, + k_ESteamAPIInitResult_FailedGeneric = 1, // Some other failure + k_ESteamAPIInitResult_NoSteamClient = 2, // We cannot connect to Steam, steam probably isn't running + k_ESteamAPIInitResult_VersionMismatch = 3, // Steam client appears to be out of date +}; -// SteamAPI_Init must be called before using any other API functions. If it fails, an -// error message will be output to the debugger (or stderr) with further information. -S_API bool S_CALLTYPE SteamAPI_Init(); +// Initializing the Steamworks SDK +// ----------------------------- +// +// There are three different methods you can use to initialize the Steamworks SDK, depending on +// your project's environment. You should only use one method in your project. +// +// If you are able to include this C++ header in your project, we recommend using the following +// initialization methods. They will ensure that all ISteam* interfaces defined in other +// C++ header files have versions that are supported by the user's Steam Client: +// - SteamAPI_InitEx() for new projects so you can show a detailed error message to the user +// - SteamAPI_Init() for existing projects that only display a generic error message +// +// If you are unable to include this C++ header in your project and are dynamically loading +// Steamworks SDK methods from dll/so, you can use the following method: +// - SteamAPI_InitFlat() + + +// See "Initializing the Steamworks SDK" above for how to choose an init method. +// On success k_ESteamAPIInitResult_OK is returned. Otherwise, returns a value that can be used +// to create a localized error message for the user. If pOutErrMsg is non-NULL, +// it will receive an example error message, in English, that explains the reason for the failure. +// +// Example usage: +// +// SteamErrMsg errMsg; +// if ( SteamAPI_Init(&errMsg) != k_ESteamAPIInitResult_OK ) +// FatalError( "Failed to init Steam. %s", errMsg ); +inline ESteamAPIInitResult SteamAPI_InitEx( SteamErrMsg *pOutErrMsg ); + +// See "Initializing the Steamworks SDK" above for how to choose an init method. +// Returns true on success +inline bool SteamAPI_Init() +{ + return SteamAPI_InitEx( NULL ) == k_ESteamAPIInitResult_OK; +} + +// See "Initializing the Steamworks SDK" above for how to choose an init method. +// Same usage as SteamAPI_InitEx(), however does not verify ISteam* interfaces are +// supported by the user's client and is exported from the dll +S_API ESteamAPIInitResult S_CALLTYPE SteamAPI_InitFlat( SteamErrMsg *pOutErrMsg ); // SteamAPI_Shutdown should be called during process shutdown if possible. S_API void S_CALLTYPE SteamAPI_Shutdown(); @@ -93,263 +129,6 @@ S_API void S_CALLTYPE SteamAPI_ReleaseCurrentThreadMemory(); S_API void S_CALLTYPE SteamAPI_WriteMiniDump( uint32 uStructuredExceptionCode, void* pvExceptionInfo, uint32 uBuildID ); S_API void S_CALLTYPE SteamAPI_SetMiniDumpComment( const char *pchMsg ); - -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -// Global accessors for Steamworks C++ APIs. See individual isteam*.h files for details. -// You should not cache the results of these accessors or pass the result pointers across -// modules! Different modules may be compiled against different SDK header versions, and -// the interface pointers could therefore be different across modules. Every line of code -// which calls into a Steamworks API should retrieve the interface from a global accessor. -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -#if !defined( STEAM_API_EXPORTS ) -inline ISteamClient *SteamClient(); -inline ISteamUser *SteamUser(); -inline ISteamFriends *SteamFriends(); -inline ISteamUtils *SteamUtils(); -inline ISteamMatchmaking *SteamMatchmaking(); -inline ISteamUserStats *SteamUserStats(); -inline ISteamApps *SteamApps(); -inline ISteamNetworking *SteamNetworking(); -inline ISteamMatchmakingServers *SteamMatchmakingServers(); -inline ISteamRemoteStorage *SteamRemoteStorage(); -inline ISteamScreenshots *SteamScreenshots(); -inline ISteamHTTP *SteamHTTP(); -inline ISteamUnifiedMessages *SteamUnifiedMessages(); -inline ISteamController *SteamController(); -inline ISteamUGC *SteamUGC(); -inline ISteamAppList *SteamAppList(); -inline ISteamMusic *SteamMusic(); -inline ISteamMusicRemote *SteamMusicRemote(); -inline ISteamHTMLSurface *SteamHTMLSurface(); -inline ISteamInventory *SteamInventory(); -inline ISteamVideo *SteamVideo(); -#endif // VERSION_SAFE_STEAM_API_INTERFACES - - -// CSteamAPIContext encapsulates the Steamworks API global accessors into -// a single object. This is DEPRECATED and only remains for compatibility. -class CSteamAPIContext -{ -public: - // DEPRECATED - there is no benefit to using this over the global accessors - CSteamAPIContext() { Clear(); } - void Clear(); - bool Init(); - ISteamClient* SteamClient() const { return m_pSteamClient; } - ISteamUser* SteamUser() const { return m_pSteamUser; } - ISteamFriends* SteamFriends() const { return m_pSteamFriends; } - ISteamUtils* SteamUtils() const { return m_pSteamUtils; } - ISteamMatchmaking* SteamMatchmaking() const { return m_pSteamMatchmaking; } - ISteamUserStats* SteamUserStats() const { return m_pSteamUserStats; } - ISteamApps* SteamApps() const { return m_pSteamApps; } - ISteamMatchmakingServers* SteamMatchmakingServers() const { return m_pSteamMatchmakingServers; } - ISteamNetworking* SteamNetworking() const { return m_pSteamNetworking; } - ISteamRemoteStorage* SteamRemoteStorage() const { return m_pSteamRemoteStorage; } - ISteamScreenshots* SteamScreenshots() const { return m_pSteamScreenshots; } - ISteamHTTP* SteamHTTP() const { return m_pSteamHTTP; } - ISteamUnifiedMessages* SteamUnifiedMessages() const { return m_pSteamUnifiedMessages; } - ISteamController* SteamController() const { return m_pController; } - ISteamUGC* SteamUGC() const { return m_pSteamUGC; } - ISteamAppList* SteamAppList() const { return m_pSteamAppList; } - ISteamMusic* SteamMusic() const { return m_pSteamMusic; } - ISteamMusicRemote* SteamMusicRemote() const { return m_pSteamMusicRemote; } - ISteamHTMLSurface* SteamHTMLSurface() const { return m_pSteamHTMLSurface; } - ISteamInventory* SteamInventory() const { return m_pSteamInventory; } - ISteamVideo* SteamVideo() const { return m_pSteamVideo; } - // DEPRECATED - there is no benefit to using this over the global accessors -private: - ISteamClient *m_pSteamClient; - ISteamUser *m_pSteamUser; - ISteamFriends *m_pSteamFriends; - ISteamUtils *m_pSteamUtils; - ISteamMatchmaking *m_pSteamMatchmaking; - ISteamUserStats *m_pSteamUserStats; - ISteamApps *m_pSteamApps; - ISteamMatchmakingServers *m_pSteamMatchmakingServers; - ISteamNetworking *m_pSteamNetworking; - ISteamRemoteStorage *m_pSteamRemoteStorage; - ISteamScreenshots *m_pSteamScreenshots; - ISteamHTTP *m_pSteamHTTP; - ISteamUnifiedMessages *m_pSteamUnifiedMessages; - ISteamController *m_pController; - ISteamUGC *m_pSteamUGC; - ISteamAppList *m_pSteamAppList; - ISteamMusic *m_pSteamMusic; - ISteamMusicRemote *m_pSteamMusicRemote; - ISteamHTMLSurface *m_pSteamHTMLSurface; - ISteamInventory *m_pSteamInventory; - ISteamVideo *m_pSteamVideo; -}; - - -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -// steam callback and call-result helpers -// -// The following macros and classes are used to register your application for -// callbacks and call-results, which are delivered in a predictable manner. -// -// STEAM_CALLBACK macros are meant for use inside of a C++ class definition. -// They map a Steam notification callback directly to a class member function -// which is automatically prototyped as "void func( callback_type *pParam )". -// -// CCallResult is used with specific Steam APIs that return "result handles". -// The handle can be passed to a CCallResult object's Set function, along with -// an object pointer and member-function pointer. The member function will -// be executed once the results of the Steam API call are available. -// -// CCallback and CCallbackManual classes can be used instead of STEAM_CALLBACK -// macros if you require finer control over registration and unregistration. -// -// Callbacks and call-results are queued automatically and are only -// delivered/executed when your application calls SteamAPI_RunCallbacks(). -//----------------------------------------------------------------------------------------------------------------------------------------------------------// - -// SteamAPI_RunCallbacks is safe to call from multiple threads simultaneously, -// but if you choose to do this, callback code could be executed on any thread. -// One alternative is to call SteamAPI_RunCallbacks from the main thread only, -// and call SteamAPI_ReleaseCurrentThreadMemory regularly on other threads. -S_API void S_CALLTYPE SteamAPI_RunCallbacks(); - - -// Declares a callback member function plus a helper member variable which -// registers the callback on object creation and unregisters on destruction. -// The optional fourth 'var' param exists only for backwards-compatibility -// and can be ignored. -#define STEAM_CALLBACK( thisclass, func, .../*callback_type, [deprecated] var*/ ) \ - _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, 4, 3 ), ( /**/, thisclass, func, __VA_ARGS__ ) ) - -// Declares a callback function and a named CCallbackManual variable which -// has Register and Unregister functions instead of automatic registration. -#define STEAM_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ - CCallbackManual< thisclass, callback_type > var; void func( callback_type *pParam ) - - -// Internal functions used by the utility CCallback objects to receive callbacks -S_API void S_CALLTYPE SteamAPI_RegisterCallback( class CCallbackBase *pCallback, int iCallback ); -S_API void S_CALLTYPE SteamAPI_UnregisterCallback( class CCallbackBase *pCallback ); -// Internal functions used by the utility CCallResult objects to receive async call results -S_API void S_CALLTYPE SteamAPI_RegisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); -S_API void S_CALLTYPE SteamAPI_UnregisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); - - -//----------------------------------------------------------------------------- -// Purpose: base for callbacks and call results - internal implementation detail -//----------------------------------------------------------------------------- -class CCallbackBase -{ -public: - CCallbackBase() { m_nCallbackFlags = 0; m_iCallback = 0; } - // don't add a virtual destructor because we export this binary interface across dll's - virtual void Run( void *pvParam ) = 0; - virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ) = 0; - int GetICallback() { return m_iCallback; } - virtual int GetCallbackSizeBytes() = 0; - -protected: - enum { k_ECallbackFlagsRegistered = 0x01, k_ECallbackFlagsGameServer = 0x02 }; - uint8 m_nCallbackFlags; - int m_iCallback; - friend class CCallbackMgr; - -private: - CCallbackBase( const CCallbackBase& ); - CCallbackBase& operator=( const CCallbackBase& ); -}; - -//----------------------------------------------------------------------------- -// Purpose: templated base for callbacks - internal implementation detail -//----------------------------------------------------------------------------- -template< int sizeof_P > -class CCallbackImpl : protected CCallbackBase -{ -public: - ~CCallbackImpl() { if ( m_nCallbackFlags & k_ECallbackFlagsRegistered ) SteamAPI_UnregisterCallback( this ); } - void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } - -protected: - virtual void Run( void *pvParam ) = 0; - virtual void Run( void *pvParam, bool /*bIOFailure*/, SteamAPICall_t /*hSteamAPICall*/ ) { Run( pvParam ); } - virtual int GetCallbackSizeBytes() { return sizeof_P; } -}; - - -//----------------------------------------------------------------------------- -// Purpose: maps a steam async call result to a class member function -// template params: T = local class, P = parameter struct -//----------------------------------------------------------------------------- -template< class T, class P > -class CCallResult : private CCallbackBase -{ -public: - typedef void (T::*func_t)( P*, bool ); - - CCallResult(); - ~CCallResult(); - - void Set( SteamAPICall_t hAPICall, T *p, func_t func ); - bool IsActive() const; - void Cancel(); - - void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } -private: - virtual void Run( void *pvParam ); - virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ); - virtual int GetCallbackSizeBytes() { return sizeof( P ); } - - SteamAPICall_t m_hAPICall; - T *m_pObj; - func_t m_Func; -}; - - - -//----------------------------------------------------------------------------- -// Purpose: maps a steam callback to a class member function -// template params: T = local class, P = parameter struct, -// bGameserver = listen for gameserver callbacks instead of client callbacks -//----------------------------------------------------------------------------- -template< class T, class P, bool bGameserver = false > -class CCallback : public CCallbackImpl< sizeof( P ) > -{ -public: - typedef void (T::*func_t)(P*); - - // NOTE: If you can't provide the correct parameters at construction time, you should - // use the CCallbackManual callback object (STEAM_CALLBACK_MANUAL macro) instead. - CCallback( T *pObj, func_t func ); - - void Register( T *pObj, func_t func ); - void Unregister(); - -protected: - virtual void Run( void *pvParam ); - - T *m_pObj; - func_t m_Func; -}; - - -//----------------------------------------------------------------------------- -// Purpose: subclass of CCallback which allows default-construction in -// an unregistered state; you must call Register manually -//----------------------------------------------------------------------------- -template< class T, class P, bool bGameServer = false > -class CCallbackManual : public CCallback< T, P, bGameServer > -{ -public: - CCallbackManual() : CCallback< T, P, bGameServer >( NULL, NULL ) {} - - // Inherits public Register and Unregister functions from base class -}; - - - -#ifdef _WIN32 -// disable this warning; this pattern need for steam callback registration -#pragma warning( disable: 4355 ) // 'this' : used in base member initializer list -#endif - - //----------------------------------------------------------------------------------------------------------------------------------------------------------// // steamclient.dll private wrapper functions // @@ -359,36 +138,237 @@ public: // SteamAPI_IsSteamRunning() returns true if Steam is currently running S_API bool S_CALLTYPE SteamAPI_IsSteamRunning(); -// Pumps out all the steam messages, calling registered callbacks. -// NOT THREADSAFE - do not call from multiple threads simultaneously. -S_API void Steam_RunCallbacks( HSteamPipe hSteamPipe, bool bGameServerCallbacks ); - -// register the callback funcs to use to interact with the steam dll -S_API void Steam_RegisterInterfaceFuncs( void *hModule ); - -// returns the HSteamUser of the last user to dispatch a callback -S_API HSteamUser Steam_GetHSteamUserCurrent(); - // returns the filename path of the current running Steam process, used if you need to load an explicit steam dll by name. // DEPRECATED - implementation is Windows only, and the path returned is a UTF-8 string which must be converted to UTF-16 for use with Win32 APIs S_API const char *SteamAPI_GetSteamInstallPath(); -// returns the pipe we are communicating to Steam with -S_API HSteamPipe SteamAPI_GetHSteamPipe(); - // sets whether or not Steam_RunCallbacks() should do a try {} catch (...) {} around calls to issuing callbacks +// This is ignored if you are using the manual callback dispatch method S_API void SteamAPI_SetTryCatchCallbacks( bool bTryCatchCallbacks ); -// backwards compat export, passes through to SteamAPI_ variants -S_API HSteamPipe GetHSteamPipe(); -S_API HSteamUser GetHSteamUser(); - - #if defined( VERSION_SAFE_STEAM_API_INTERFACES ) // exists only for backwards compat with code written against older SDKs S_API bool S_CALLTYPE SteamAPI_InitSafe(); #endif -#include "steam_api_internal.h" +#if defined(USE_BREAKPAD_HANDLER) || defined(STEAM_API_EXPORTS) +// this should be called before the game initialized the steam APIs +// pchDate should be of the format "Mmm dd yyyy" (such as from the __ DATE __ macro ) +// pchTime should be of the format "hh:mm:ss" (such as from the __ TIME __ macro ) +// bFullMemoryDumps (Win32 only) -- writes out a uuid-full.dmp in the client/dumps folder +// pvContext-- can be NULL, will be the void * context passed into m_pfnPreMinidumpCallback +// PFNPreMinidumpCallback m_pfnPreMinidumpCallback -- optional callback which occurs just before a .dmp file is written during a crash. Applications can hook this to allow adding additional information into the .dmp comment stream. +S_API void S_CALLTYPE SteamAPI_UseBreakpadCrashHandler( char const *pchVersion, char const *pchDate, char const *pchTime, bool bFullMemoryDumps, void *pvContext, PFNPreMinidumpCallback m_pfnPreMinidumpCallback ); +S_API void S_CALLTYPE SteamAPI_SetBreakpadAppID( uint32 unAppID ); +#endif + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// +// Manual callback loop +// +// An alternative method for dispatching callbacks. Similar to a windows message loop. +// +// If you use the manual callback dispatch, you must NOT use: +// +// - SteamAPI_RunCallbacks or SteamGameServer_RunCallbacks +// - STEAM_CALLBACK, CCallResult, CCallback, or CCallbackManual +// +// Here is the basic template for replacing SteamAPI_RunCallbacks() with manual dispatch +/* + + HSteamPipe hSteamPipe = SteamAPI_GetHSteamPipe(); // See also SteamGameServer_GetHSteamPipe() + SteamAPI_ManualDispatch_RunFrame( hSteamPipe ) + CallbackMsg_t callback; + while ( SteamAPI_ManualDispatch_GetNextCallback( hSteamPipe, &callback ) ) + { + // Check for dispatching API call results + if ( callback.m_iCallback == SteamAPICallCompleted_t::k_iCallback ) + { + SteamAPICallCompleted_t *pCallCompleted = (SteamAPICallCompleted_t *)callback. + void *pTmpCallResult = malloc( pCallback->m_cubParam ); + bool bFailed; + if ( SteamAPI_ManualDispatch_GetAPICallResult( hSteamPipe, pCallCompleted->m_hAsyncCall, pTmpCallResult, pCallback->m_cubParam, pCallback->m_iCallback, &bFailed ) ) + { + // Dispatch the call result to the registered handler(s) for the + // call identified by pCallCompleted->m_hAsyncCall + } + free( pTmpCallResult ); + } + else + { + // Look at callback.m_iCallback to see what kind of callback it is, + // and dispatch to appropriate handler(s) + } + SteamAPI_ManualDispatch_FreeLastCallback( hSteamPipe ); + } + +*/ +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +/// Inform the API that you wish to use manual event dispatch. This must be called after SteamAPI_Init, but before +/// you use any of the other manual dispatch functions below. +S_API void S_CALLTYPE SteamAPI_ManualDispatch_Init(); + +/// Perform certain periodic actions that need to be performed. +S_API void S_CALLTYPE SteamAPI_ManualDispatch_RunFrame( HSteamPipe hSteamPipe ); + +/// Fetch the next pending callback on the given pipe, if any. If a callback is available, true is returned +/// and the structure is populated. In this case, you MUST call SteamAPI_ManualDispatch_FreeLastCallback +/// (after dispatching the callback) before calling SteamAPI_ManualDispatch_GetNextCallback again. +S_API bool S_CALLTYPE SteamAPI_ManualDispatch_GetNextCallback( HSteamPipe hSteamPipe, CallbackMsg_t *pCallbackMsg ); + +/// You must call this after dispatching the callback, if SteamAPI_ManualDispatch_GetNextCallback returns true. +S_API void S_CALLTYPE SteamAPI_ManualDispatch_FreeLastCallback( HSteamPipe hSteamPipe ); + +/// Return the call result for the specified call on the specified pipe. You really should +/// only call this in a handler for SteamAPICallCompleted_t callback. +S_API bool S_CALLTYPE SteamAPI_ManualDispatch_GetAPICallResult( HSteamPipe hSteamPipe, SteamAPICall_t hSteamAPICall, void *pCallback, int cubCallback, int iCallbackExpected, bool *pbFailed ); + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// +// CSteamAPIContext +// +// Deprecated! This is not necessary any more. Please use the global accessors directly +// +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +#ifndef STEAM_API_EXPORTS + +inline bool CSteamAPIContext::Init() +{ + m_pSteamClient = ::SteamClient(); + if ( !m_pSteamClient ) + return false; + + m_pSteamUser = ::SteamUser(); + if ( !m_pSteamUser ) + return false; + + m_pSteamFriends = ::SteamFriends(); + if ( !m_pSteamFriends ) + return false; + + m_pSteamUtils = ::SteamUtils(); + if ( !m_pSteamUtils ) + return false; + + m_pSteamMatchmaking = ::SteamMatchmaking(); + if ( !m_pSteamMatchmaking ) + return false; + + m_pSteamGameSearch = ::SteamGameSearch(); + if ( !m_pSteamGameSearch ) + return false; + +#if !defined( IOSALL) // Not yet supported on iOS. + m_pSteamMatchmakingServers = ::SteamMatchmakingServers(); + if ( !m_pSteamMatchmakingServers ) + return false; +#endif + + m_pSteamUserStats = ::SteamUserStats(); + if ( !m_pSteamUserStats ) + return false; + + m_pSteamApps = ::SteamApps(); + if ( !m_pSteamApps ) + return false; + + m_pSteamNetworking = ::SteamNetworking(); + if ( !m_pSteamNetworking ) + return false; + + m_pSteamRemoteStorage = ::SteamRemoteStorage(); + if ( !m_pSteamRemoteStorage ) + return false; + + m_pSteamScreenshots = ::SteamScreenshots(); + if ( !m_pSteamScreenshots ) + return false; + + m_pSteamHTTP = ::SteamHTTP(); + if ( !m_pSteamHTTP ) + return false; + + m_pController = ::SteamController(); + if ( !m_pController ) + return false; + + m_pSteamUGC = ::SteamUGC(); + if ( !m_pSteamUGC ) + return false; + + m_pSteamMusic = ::SteamMusic(); + if ( !m_pSteamMusic ) + return false; + + m_pSteamMusicRemote = ::SteamMusicRemote(); + if ( !m_pSteamMusicRemote ) + return false; + +#if !defined( ANDROID ) && !defined( IOSALL) // Not yet supported on Android or ios. + m_pSteamHTMLSurface = ::SteamHTMLSurface(); + if ( !m_pSteamHTMLSurface ) + return false; +#endif + + m_pSteamInventory = ::SteamInventory(); + if ( !m_pSteamInventory ) + return false; + + m_pSteamVideo = ::SteamVideo(); + if ( !m_pSteamVideo ) + return false; + + m_pSteamParentalSettings = ::SteamParentalSettings(); + if ( !m_pSteamParentalSettings ) + return false; + + m_pSteamInput = ::SteamInput(); + if ( !m_pSteamInput ) + return false; + + return true; +} + +#endif + +// Internal implementation of SteamAPI_InitEx. This is done in a way that checks +// all of the versions of interfaces from headers being compiled into this code. +S_API ESteamAPIInitResult S_CALLTYPE SteamInternal_SteamAPI_Init( const char *pszInternalCheckInterfaceVersions, SteamErrMsg *pOutErrMsg ); +inline ESteamAPIInitResult SteamAPI_InitEx( SteamErrMsg *pOutErrMsg ) +{ + const char *pszInternalCheckInterfaceVersions = + STEAMUTILS_INTERFACE_VERSION "\0" + STEAMNETWORKINGUTILS_INTERFACE_VERSION "\0" + STEAMAPPS_INTERFACE_VERSION "\0" + STEAMCONTROLLER_INTERFACE_VERSION "\0" + STEAMFRIENDS_INTERFACE_VERSION "\0" + STEAMGAMESEARCH_INTERFACE_VERSION "\0" + STEAMHTMLSURFACE_INTERFACE_VERSION "\0" + STEAMHTTP_INTERFACE_VERSION "\0" + STEAMINPUT_INTERFACE_VERSION "\0" + STEAMINVENTORY_INTERFACE_VERSION "\0" + STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION "\0" + STEAMMATCHMAKING_INTERFACE_VERSION "\0" + STEAMMUSICREMOTE_INTERFACE_VERSION "\0" + STEAMMUSIC_INTERFACE_VERSION "\0" + STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "\0" + STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "\0" + STEAMNETWORKING_INTERFACE_VERSION "\0" + STEAMPARENTALSETTINGS_INTERFACE_VERSION "\0" + STEAMPARTIES_INTERFACE_VERSION "\0" + STEAMREMOTEPLAY_INTERFACE_VERSION "\0" + STEAMREMOTESTORAGE_INTERFACE_VERSION "\0" + STEAMSCREENSHOTS_INTERFACE_VERSION "\0" + STEAMUGC_INTERFACE_VERSION "\0" + STEAMUSERSTATS_INTERFACE_VERSION "\0" + STEAMUSER_INTERFACE_VERSION "\0" + STEAMVIDEO_INTERFACE_VERSION "\0" + + "\0"; + + return SteamInternal_SteamAPI_Init( pszInternalCheckInterfaceVersions, pOutErrMsg ); +} #endif // STEAM_API_H diff --git a/lib/windows/include/steam/steam_api.json b/lib/windows/include/steam/steam_api.json index 09adb0c..7acd8ff 100644 --- a/lib/windows/include/steam/steam_api.json +++ b/lib/windows/include/steam/steam_api.json @@ -1,7576 +1,14042 @@ -{"typedefs":[{"typedef": "uint8","type": "unsigned char"} -,{"typedef": "uint8","type": "unsigned char"} -,{"typedef": "int8","type": "signed char"} -,{"typedef": "int16","type": "short"} -,{"typedef": "uint16","type": "unsigned short"} -,{"typedef": "int32","type": "int"} -,{"typedef": "uint32","type": "unsigned int"} -,{"typedef": "int64","type": "long long"} -,{"typedef": "uint64","type": "unsigned long long"} -,{"typedef": "lint64","type": "int64"} -,{"typedef": "ulint64","type": "uint64"} -,{"typedef": "intp","type": "long long"} -,{"typedef": "uintp","type": "unsigned long long"} -,{"typedef": "Salt_t","type": "uint8 [8]"} -,{"typedef": "GID_t","type": "uint64"} -,{"typedef": "JobID_t","type": "uint64"} -,{"typedef": "TxnID_t","type": "GID_t"} -,{"typedef": "PackageId_t","type": "uint32"} -,{"typedef": "BundleId_t","type": "uint32"} -,{"typedef": "AppId_t","type": "uint32"} -,{"typedef": "AssetClassId_t","type": "uint64"} -,{"typedef": "PhysicalItemId_t","type": "uint32"} -,{"typedef": "DepotId_t","type": "uint32"} -,{"typedef": "RTime32","type": "uint32"} -,{"typedef": "CellID_t","type": "uint32"} -,{"typedef": "SteamAPICall_t","type": "uint64"} -,{"typedef": "AccountID_t","type": "uint32"} -,{"typedef": "PartnerId_t","type": "uint32"} -,{"typedef": "ManifestId_t","type": "uint64"} -,{"typedef": "HAuthTicket","type": "uint32"} -,{"typedef": "PFNLegacyKeyRegistration","type": "void (*)(const char *, const char *)"} -,{"typedef": "PFNLegacyKeyInstalled","type": "_Bool (*)(void)"} -,{"typedef": "PFNPreMinidumpCallback","type": "void (*)(void *)"} -,{"typedef": "BREAKPAD_HANDLE","type": "void *"} -,{"typedef": "ValvePackingSentinel_t","type": "struct ValvePackingSentinel_t"} -,{"typedef": "compile_time_assert_type","type": "char [1]"} -,{"typedef": "HSteamPipe","type": "int32"} -,{"typedef": "HSteamUser","type": "int32"} -,{"typedef": "SteamAPIWarningMessageHook_t","type": "void (*)(int, const char *) __attribute__((cdecl))"} -,{"typedef": "SteamAPI_CheckCallbackRegistered_t","type": "uint32 (*)(int)"} -,{"typedef": "FriendsGroupID_t","type": "int16"} -,{"typedef": "SteamAPIWarningMessageHook_t","type": "void (*)(int, const char *) __attribute__((cdecl))"} -,{"typedef": "HServerListRequest","type": "void *"} -,{"typedef": "HServerQuery","type": "int"} -,{"typedef": "UGCHandle_t","type": "uint64"} -,{"typedef": "PublishedFileUpdateHandle_t","type": "uint64"} -,{"typedef": "PublishedFileId_t","type": "uint64"} -,{"typedef": "UGCFileWriteStreamHandle_t","type": "uint64"} -,{"typedef": "compile_time_assert_type","type": "char [1]"} -,{"typedef": "SteamLeaderboard_t","type": "uint64"} -,{"typedef": "SteamLeaderboardEntries_t","type": "uint64"} -,{"typedef": "SNetSocket_t","type": "uint32"} -,{"typedef": "SNetListenSocket_t","type": "uint32"} -,{"typedef": "ScreenshotHandle","type": "uint32"} -,{"typedef": "PlaybackStatusHasChanged_t::SteamCallback_t","type": "struct PlaybackStatusHasChanged_t"} -,{"typedef": "VolumeHasChanged_t::SteamCallback_t","type": "struct VolumeHasChanged_t"} -,{"typedef": "MusicPlayerRemoteWillActivate_t::SteamCallback_t","type": "struct MusicPlayerRemoteWillActivate_t"} -,{"typedef": "MusicPlayerRemoteWillDeactivate_t::SteamCallback_t","type": "struct MusicPlayerRemoteWillDeactivate_t"} -,{"typedef": "MusicPlayerRemoteToFront_t::SteamCallback_t","type": "struct MusicPlayerRemoteToFront_t"} -,{"typedef": "MusicPlayerWillQuit_t::SteamCallback_t","type": "struct MusicPlayerWillQuit_t"} -,{"typedef": "MusicPlayerWantsPlay_t::SteamCallback_t","type": "struct MusicPlayerWantsPlay_t"} -,{"typedef": "MusicPlayerWantsPause_t::SteamCallback_t","type": "struct MusicPlayerWantsPause_t"} -,{"typedef": "MusicPlayerWantsPlayPrevious_t::SteamCallback_t","type": "struct MusicPlayerWantsPlayPrevious_t"} -,{"typedef": "MusicPlayerWantsPlayNext_t::SteamCallback_t","type": "struct MusicPlayerWantsPlayNext_t"} -,{"typedef": "MusicPlayerWantsShuffled_t::SteamCallback_t","type": "struct MusicPlayerWantsShuffled_t"} -,{"typedef": "MusicPlayerWantsLooped_t::SteamCallback_t","type": "struct MusicPlayerWantsLooped_t"} -,{"typedef": "MusicPlayerWantsVolume_t::SteamCallback_t","type": "struct MusicPlayerWantsVolume_t"} -,{"typedef": "MusicPlayerSelectsQueueEntry_t::SteamCallback_t","type": "struct MusicPlayerSelectsQueueEntry_t"} -,{"typedef": "MusicPlayerSelectsPlaylistEntry_t::SteamCallback_t","type": "struct MusicPlayerSelectsPlaylistEntry_t"} -,{"typedef": "MusicPlayerWantsPlayingRepeatStatus_t::SteamCallback_t","type": "struct MusicPlayerWantsPlayingRepeatStatus_t"} -,{"typedef": "HTTPRequestHandle","type": "uint32"} -,{"typedef": "HTTPCookieContainerHandle","type": "uint32"} -,{"typedef": "ClientUnifiedMessageHandle","type": "uint64"} -,{"typedef": "ControllerHandle_t","type": "uint64"} -,{"typedef": "ControllerActionSetHandle_t","type": "uint64"} -,{"typedef": "ControllerDigitalActionHandle_t","type": "uint64"} -,{"typedef": "ControllerAnalogActionHandle_t","type": "uint64"} -,{"typedef": "UGCQueryHandle_t","type": "uint64"} -,{"typedef": "UGCUpdateHandle_t","type": "uint64"} -,{"typedef": "SteamAppInstalled_t::SteamCallback_t","type": "struct SteamAppInstalled_t"} -,{"typedef": "SteamAppUninstalled_t::SteamCallback_t","type": "struct SteamAppUninstalled_t"} -,{"typedef": "HHTMLBrowser","type": "uint32"} -,{"typedef": "HTML_BrowserReady_t::SteamCallback_t","type": "struct HTML_BrowserReady_t"} -,{"typedef": "HTML_NeedsPaint_t::SteamCallback_t","type": "struct HTML_NeedsPaint_t"} -,{"typedef": "HTML_StartRequest_t::SteamCallback_t","type": "struct HTML_StartRequest_t"} -,{"typedef": "HTML_CloseBrowser_t::SteamCallback_t","type": "struct HTML_CloseBrowser_t"} -,{"typedef": "HTML_URLChanged_t::SteamCallback_t","type": "struct HTML_URLChanged_t"} -,{"typedef": "HTML_FinishedRequest_t::SteamCallback_t","type": "struct HTML_FinishedRequest_t"} -,{"typedef": "HTML_OpenLinkInNewTab_t::SteamCallback_t","type": "struct HTML_OpenLinkInNewTab_t"} -,{"typedef": "HTML_ChangedTitle_t::SteamCallback_t","type": "struct HTML_ChangedTitle_t"} -,{"typedef": "HTML_SearchResults_t::SteamCallback_t","type": "struct HTML_SearchResults_t"} -,{"typedef": "HTML_CanGoBackAndForward_t::SteamCallback_t","type": "struct HTML_CanGoBackAndForward_t"} -,{"typedef": "HTML_HorizontalScroll_t::SteamCallback_t","type": "struct HTML_HorizontalScroll_t"} -,{"typedef": "HTML_VerticalScroll_t::SteamCallback_t","type": "struct HTML_VerticalScroll_t"} -,{"typedef": "HTML_LinkAtPosition_t::SteamCallback_t","type": "struct HTML_LinkAtPosition_t"} -,{"typedef": "HTML_JSAlert_t::SteamCallback_t","type": "struct HTML_JSAlert_t"} -,{"typedef": "HTML_JSConfirm_t::SteamCallback_t","type": "struct HTML_JSConfirm_t"} -,{"typedef": "HTML_FileOpenDialog_t::SteamCallback_t","type": "struct HTML_FileOpenDialog_t"} -,{"typedef": "HTML_NewWindow_t::SteamCallback_t","type": "struct HTML_NewWindow_t"} -,{"typedef": "HTML_SetCursor_t::SteamCallback_t","type": "struct HTML_SetCursor_t"} -,{"typedef": "HTML_StatusText_t::SteamCallback_t","type": "struct HTML_StatusText_t"} -,{"typedef": "HTML_ShowToolTip_t::SteamCallback_t","type": "struct HTML_ShowToolTip_t"} -,{"typedef": "HTML_UpdateToolTip_t::SteamCallback_t","type": "struct HTML_UpdateToolTip_t"} -,{"typedef": "HTML_HideToolTip_t::SteamCallback_t","type": "struct HTML_HideToolTip_t"} -,{"typedef": "SteamItemInstanceID_t","type": "uint64"} -,{"typedef": "SteamItemDef_t","type": "int32"} -,{"typedef": "SteamInventoryResult_t","type": "int32"} -,{"typedef": "BroadcastUploadStart_t::SteamCallback_t","type": "struct BroadcastUploadStart_t"} -,{"typedef": "BroadcastUploadStop_t::SteamCallback_t","type": "struct BroadcastUploadStop_t"} -,{"typedef": "GetVideoURLResult_t::SteamCallback_t","type": "struct GetVideoURLResult_t"} -,{"typedef": "CCallResult::func_t","type": "void (T::*)(P *, _Bool)"} -,{"typedef": "CCallback::func_t","type": "void (T::*)(P *)"} -], -"enums":[ - {"enumname": "EUniverse","values": [ - {"name": "k_EUniverseInvalid","value": "0"} - ,{"name": "k_EUniversePublic","value": "1"} - ,{"name": "k_EUniverseBeta","value": "2"} - ,{"name": "k_EUniverseInternal","value": "3"} - ,{"name": "k_EUniverseDev","value": "4"} - ,{"name": "k_EUniverseMax","value": "5"} -]} -, {"enumname": "EResult","values": [ - {"name": "k_EResultOK","value": "1"} - ,{"name": "k_EResultFail","value": "2"} - ,{"name": "k_EResultNoConnection","value": "3"} - ,{"name": "k_EResultInvalidPassword","value": "5"} - ,{"name": "k_EResultLoggedInElsewhere","value": "6"} - ,{"name": "k_EResultInvalidProtocolVer","value": "7"} - ,{"name": "k_EResultInvalidParam","value": "8"} - ,{"name": "k_EResultFileNotFound","value": "9"} - ,{"name": "k_EResultBusy","value": "10"} - ,{"name": "k_EResultInvalidState","value": "11"} - ,{"name": "k_EResultInvalidName","value": "12"} - ,{"name": "k_EResultInvalidEmail","value": "13"} - ,{"name": "k_EResultDuplicateName","value": "14"} - ,{"name": "k_EResultAccessDenied","value": "15"} - ,{"name": "k_EResultTimeout","value": "16"} - ,{"name": "k_EResultBanned","value": "17"} - ,{"name": "k_EResultAccountNotFound","value": "18"} - ,{"name": "k_EResultInvalidSteamID","value": "19"} - ,{"name": "k_EResultServiceUnavailable","value": "20"} - ,{"name": "k_EResultNotLoggedOn","value": "21"} - ,{"name": "k_EResultPending","value": "22"} - ,{"name": "k_EResultEncryptionFailure","value": "23"} - ,{"name": "k_EResultInsufficientPrivilege","value": "24"} - ,{"name": "k_EResultLimitExceeded","value": "25"} - ,{"name": "k_EResultRevoked","value": "26"} - ,{"name": "k_EResultExpired","value": "27"} - ,{"name": "k_EResultAlreadyRedeemed","value": "28"} - ,{"name": "k_EResultDuplicateRequest","value": "29"} - ,{"name": "k_EResultAlreadyOwned","value": "30"} - ,{"name": "k_EResultIPNotFound","value": "31"} - ,{"name": "k_EResultPersistFailed","value": "32"} - ,{"name": "k_EResultLockingFailed","value": "33"} - ,{"name": "k_EResultLogonSessionReplaced","value": "34"} - ,{"name": "k_EResultConnectFailed","value": "35"} - ,{"name": "k_EResultHandshakeFailed","value": "36"} - ,{"name": "k_EResultIOFailure","value": "37"} - ,{"name": "k_EResultRemoteDisconnect","value": "38"} - ,{"name": "k_EResultShoppingCartNotFound","value": "39"} - ,{"name": "k_EResultBlocked","value": "40"} - ,{"name": "k_EResultIgnored","value": "41"} - ,{"name": "k_EResultNoMatch","value": "42"} - ,{"name": "k_EResultAccountDisabled","value": "43"} - ,{"name": "k_EResultServiceReadOnly","value": "44"} - ,{"name": "k_EResultAccountNotFeatured","value": "45"} - ,{"name": "k_EResultAdministratorOK","value": "46"} - ,{"name": "k_EResultContentVersion","value": "47"} - ,{"name": "k_EResultTryAnotherCM","value": "48"} - ,{"name": "k_EResultPasswordRequiredToKickSession","value": "49"} - ,{"name": "k_EResultAlreadyLoggedInElsewhere","value": "50"} - ,{"name": "k_EResultSuspended","value": "51"} - ,{"name": "k_EResultCancelled","value": "52"} - ,{"name": "k_EResultDataCorruption","value": "53"} - ,{"name": "k_EResultDiskFull","value": "54"} - ,{"name": "k_EResultRemoteCallFailed","value": "55"} - ,{"name": "k_EResultPasswordUnset","value": "56"} - ,{"name": "k_EResultExternalAccountUnlinked","value": "57"} - ,{"name": "k_EResultPSNTicketInvalid","value": "58"} - ,{"name": "k_EResultExternalAccountAlreadyLinked","value": "59"} - ,{"name": "k_EResultRemoteFileConflict","value": "60"} - ,{"name": "k_EResultIllegalPassword","value": "61"} - ,{"name": "k_EResultSameAsPreviousValue","value": "62"} - ,{"name": "k_EResultAccountLogonDenied","value": "63"} - ,{"name": "k_EResultCannotUseOldPassword","value": "64"} - ,{"name": "k_EResultInvalidLoginAuthCode","value": "65"} - ,{"name": "k_EResultAccountLogonDeniedNoMail","value": "66"} - ,{"name": "k_EResultHardwareNotCapableOfIPT","value": "67"} - ,{"name": "k_EResultIPTInitError","value": "68"} - ,{"name": "k_EResultParentalControlRestricted","value": "69"} - ,{"name": "k_EResultFacebookQueryError","value": "70"} - ,{"name": "k_EResultExpiredLoginAuthCode","value": "71"} - ,{"name": "k_EResultIPLoginRestrictionFailed","value": "72"} - ,{"name": "k_EResultAccountLockedDown","value": "73"} - ,{"name": "k_EResultAccountLogonDeniedVerifiedEmailRequired","value": "74"} - ,{"name": "k_EResultNoMatchingURL","value": "75"} - ,{"name": "k_EResultBadResponse","value": "76"} - ,{"name": "k_EResultRequirePasswordReEntry","value": "77"} - ,{"name": "k_EResultValueOutOfRange","value": "78"} - ,{"name": "k_EResultUnexpectedError","value": "79"} - ,{"name": "k_EResultDisabled","value": "80"} - ,{"name": "k_EResultInvalidCEGSubmission","value": "81"} - ,{"name": "k_EResultRestrictedDevice","value": "82"} - ,{"name": "k_EResultRegionLocked","value": "83"} - ,{"name": "k_EResultRateLimitExceeded","value": "84"} - ,{"name": "k_EResultAccountLoginDeniedNeedTwoFactor","value": "85"} - ,{"name": "k_EResultItemDeleted","value": "86"} - ,{"name": "k_EResultAccountLoginDeniedThrottle","value": "87"} - ,{"name": "k_EResultTwoFactorCodeMismatch","value": "88"} - ,{"name": "k_EResultTwoFactorActivationCodeMismatch","value": "89"} - ,{"name": "k_EResultAccountAssociatedToMultiplePartners","value": "90"} - ,{"name": "k_EResultNotModified","value": "91"} - ,{"name": "k_EResultNoMobileDevice","value": "92"} - ,{"name": "k_EResultTimeNotSynced","value": "93"} - ,{"name": "k_EResultSmsCodeFailed","value": "94"} - ,{"name": "k_EResultAccountLimitExceeded","value": "95"} - ,{"name": "k_EResultAccountActivityLimitExceeded","value": "96"} - ,{"name": "k_EResultPhoneActivityLimitExceeded","value": "97"} - ,{"name": "k_EResultRefundToWallet","value": "98"} - ,{"name": "k_EResultEmailSendFailure","value": "99"} - ,{"name": "k_EResultNotSettled","value": "100"} - ,{"name": "k_EResultNeedCaptcha","value": "101"} - ,{"name": "k_EResultGSLTDenied","value": "102"} - ,{"name": "k_EResultGSOwnerDenied","value": "103"} - ,{"name": "k_EResultInvalidItemType","value": "104"} - ,{"name": "k_EResultIPBanned","value": "105"} - ,{"name": "k_EResultGSLTExpired","value": "106"} -]} -, {"enumname": "EVoiceResult","values": [ - {"name": "k_EVoiceResultOK","value": "0"} - ,{"name": "k_EVoiceResultNotInitialized","value": "1"} - ,{"name": "k_EVoiceResultNotRecording","value": "2"} - ,{"name": "k_EVoiceResultNoData","value": "3"} - ,{"name": "k_EVoiceResultBufferTooSmall","value": "4"} - ,{"name": "k_EVoiceResultDataCorrupted","value": "5"} - ,{"name": "k_EVoiceResultRestricted","value": "6"} - ,{"name": "k_EVoiceResultUnsupportedCodec","value": "7"} - ,{"name": "k_EVoiceResultReceiverOutOfDate","value": "8"} - ,{"name": "k_EVoiceResultReceiverDidNotAnswer","value": "9"} -]} -, {"enumname": "EDenyReason","values": [ - {"name": "k_EDenyInvalid","value": "0"} - ,{"name": "k_EDenyInvalidVersion","value": "1"} - ,{"name": "k_EDenyGeneric","value": "2"} - ,{"name": "k_EDenyNotLoggedOn","value": "3"} - ,{"name": "k_EDenyNoLicense","value": "4"} - ,{"name": "k_EDenyCheater","value": "5"} - ,{"name": "k_EDenyLoggedInElseWhere","value": "6"} - ,{"name": "k_EDenyUnknownText","value": "7"} - ,{"name": "k_EDenyIncompatibleAnticheat","value": "8"} - ,{"name": "k_EDenyMemoryCorruption","value": "9"} - ,{"name": "k_EDenyIncompatibleSoftware","value": "10"} - ,{"name": "k_EDenySteamConnectionLost","value": "11"} - ,{"name": "k_EDenySteamConnectionError","value": "12"} - ,{"name": "k_EDenySteamResponseTimedOut","value": "13"} - ,{"name": "k_EDenySteamValidationStalled","value": "14"} - ,{"name": "k_EDenySteamOwnerLeftGuestUser","value": "15"} -]} -, {"enumname": "EBeginAuthSessionResult","values": [ - {"name": "k_EBeginAuthSessionResultOK","value": "0"} - ,{"name": "k_EBeginAuthSessionResultInvalidTicket","value": "1"} - ,{"name": "k_EBeginAuthSessionResultDuplicateRequest","value": "2"} - ,{"name": "k_EBeginAuthSessionResultInvalidVersion","value": "3"} - ,{"name": "k_EBeginAuthSessionResultGameMismatch","value": "4"} - ,{"name": "k_EBeginAuthSessionResultExpiredTicket","value": "5"} -]} -, {"enumname": "EAuthSessionResponse","values": [ - {"name": "k_EAuthSessionResponseOK","value": "0"} - ,{"name": "k_EAuthSessionResponseUserNotConnectedToSteam","value": "1"} - ,{"name": "k_EAuthSessionResponseNoLicenseOrExpired","value": "2"} - ,{"name": "k_EAuthSessionResponseVACBanned","value": "3"} - ,{"name": "k_EAuthSessionResponseLoggedInElseWhere","value": "4"} - ,{"name": "k_EAuthSessionResponseVACCheckTimedOut","value": "5"} - ,{"name": "k_EAuthSessionResponseAuthTicketCanceled","value": "6"} - ,{"name": "k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed","value": "7"} - ,{"name": "k_EAuthSessionResponseAuthTicketInvalid","value": "8"} - ,{"name": "k_EAuthSessionResponsePublisherIssuedBan","value": "9"} -]} -, {"enumname": "EUserHasLicenseForAppResult","values": [ - {"name": "k_EUserHasLicenseResultHasLicense","value": "0"} - ,{"name": "k_EUserHasLicenseResultDoesNotHaveLicense","value": "1"} - ,{"name": "k_EUserHasLicenseResultNoAuth","value": "2"} -]} -, {"enumname": "EAccountType","values": [ - {"name": "k_EAccountTypeInvalid","value": "0"} - ,{"name": "k_EAccountTypeIndividual","value": "1"} - ,{"name": "k_EAccountTypeMultiseat","value": "2"} - ,{"name": "k_EAccountTypeGameServer","value": "3"} - ,{"name": "k_EAccountTypeAnonGameServer","value": "4"} - ,{"name": "k_EAccountTypePending","value": "5"} - ,{"name": "k_EAccountTypeContentServer","value": "6"} - ,{"name": "k_EAccountTypeClan","value": "7"} - ,{"name": "k_EAccountTypeChat","value": "8"} - ,{"name": "k_EAccountTypeConsoleUser","value": "9"} - ,{"name": "k_EAccountTypeAnonUser","value": "10"} - ,{"name": "k_EAccountTypeMax","value": "11"} -]} -, {"enumname": "EAppReleaseState","values": [ - {"name": "k_EAppReleaseState_Unknown","value": "0"} - ,{"name": "k_EAppReleaseState_Unavailable","value": "1"} - ,{"name": "k_EAppReleaseState_Prerelease","value": "2"} - ,{"name": "k_EAppReleaseState_PreloadOnly","value": "3"} - ,{"name": "k_EAppReleaseState_Released","value": "4"} -]} -, {"enumname": "EAppOwnershipFlags","values": [ - {"name": "k_EAppOwnershipFlags_None","value": "0"} - ,{"name": "k_EAppOwnershipFlags_OwnsLicense","value": "1"} - ,{"name": "k_EAppOwnershipFlags_FreeLicense","value": "2"} - ,{"name": "k_EAppOwnershipFlags_RegionRestricted","value": "4"} - ,{"name": "k_EAppOwnershipFlags_LowViolence","value": "8"} - ,{"name": "k_EAppOwnershipFlags_InvalidPlatform","value": "16"} - ,{"name": "k_EAppOwnershipFlags_SharedLicense","value": "32"} - ,{"name": "k_EAppOwnershipFlags_FreeWeekend","value": "64"} - ,{"name": "k_EAppOwnershipFlags_RetailLicense","value": "128"} - ,{"name": "k_EAppOwnershipFlags_LicenseLocked","value": "256"} - ,{"name": "k_EAppOwnershipFlags_LicensePending","value": "512"} - ,{"name": "k_EAppOwnershipFlags_LicenseExpired","value": "1024"} - ,{"name": "k_EAppOwnershipFlags_LicensePermanent","value": "2048"} - ,{"name": "k_EAppOwnershipFlags_LicenseRecurring","value": "4096"} - ,{"name": "k_EAppOwnershipFlags_LicenseCanceled","value": "8192"} - ,{"name": "k_EAppOwnershipFlags_AutoGrant","value": "16384"} - ,{"name": "k_EAppOwnershipFlags_PendingGift","value": "32768"} - ,{"name": "k_EAppOwnershipFlags_RentalNotActivated","value": "65536"} - ,{"name": "k_EAppOwnershipFlags_Rental","value": "131072"} -]} -, {"enumname": "EAppType","values": [ - {"name": "k_EAppType_Invalid","value": "0"} - ,{"name": "k_EAppType_Game","value": "1"} - ,{"name": "k_EAppType_Application","value": "2"} - ,{"name": "k_EAppType_Tool","value": "4"} - ,{"name": "k_EAppType_Demo","value": "8"} - ,{"name": "k_EAppType_Media_DEPRECATED","value": "16"} - ,{"name": "k_EAppType_DLC","value": "32"} - ,{"name": "k_EAppType_Guide","value": "64"} - ,{"name": "k_EAppType_Driver","value": "128"} - ,{"name": "k_EAppType_Config","value": "256"} - ,{"name": "k_EAppType_Hardware","value": "512"} - ,{"name": "k_EAppType_Franchise","value": "1024"} - ,{"name": "k_EAppType_Video","value": "2048"} - ,{"name": "k_EAppType_Plugin","value": "4096"} - ,{"name": "k_EAppType_Music","value": "8192"} - ,{"name": "k_EAppType_Series","value": "16384"} - ,{"name": "k_EAppType_Shortcut","value": "1073741824"} - ,{"name": "k_EAppType_DepotOnly","value": "-2147483648"} -]} -, {"enumname": "ESteamUserStatType","values": [ - {"name": "k_ESteamUserStatTypeINVALID","value": "0"} - ,{"name": "k_ESteamUserStatTypeINT","value": "1"} - ,{"name": "k_ESteamUserStatTypeFLOAT","value": "2"} - ,{"name": "k_ESteamUserStatTypeAVGRATE","value": "3"} - ,{"name": "k_ESteamUserStatTypeACHIEVEMENTS","value": "4"} - ,{"name": "k_ESteamUserStatTypeGROUPACHIEVEMENTS","value": "5"} - ,{"name": "k_ESteamUserStatTypeMAX","value": "6"} -]} -, {"enumname": "EChatEntryType","values": [ - {"name": "k_EChatEntryTypeInvalid","value": "0"} - ,{"name": "k_EChatEntryTypeChatMsg","value": "1"} - ,{"name": "k_EChatEntryTypeTyping","value": "2"} - ,{"name": "k_EChatEntryTypeInviteGame","value": "3"} - ,{"name": "k_EChatEntryTypeEmote","value": "4"} - ,{"name": "k_EChatEntryTypeLeftConversation","value": "6"} - ,{"name": "k_EChatEntryTypeEntered","value": "7"} - ,{"name": "k_EChatEntryTypeWasKicked","value": "8"} - ,{"name": "k_EChatEntryTypeWasBanned","value": "9"} - ,{"name": "k_EChatEntryTypeDisconnected","value": "10"} - ,{"name": "k_EChatEntryTypeHistoricalChat","value": "11"} - ,{"name": "k_EChatEntryTypeLinkBlocked","value": "14"} -]} -, {"enumname": "EChatRoomEnterResponse","values": [ - {"name": "k_EChatRoomEnterResponseSuccess","value": "1"} - ,{"name": "k_EChatRoomEnterResponseDoesntExist","value": "2"} - ,{"name": "k_EChatRoomEnterResponseNotAllowed","value": "3"} - ,{"name": "k_EChatRoomEnterResponseFull","value": "4"} - ,{"name": "k_EChatRoomEnterResponseError","value": "5"} - ,{"name": "k_EChatRoomEnterResponseBanned","value": "6"} - ,{"name": "k_EChatRoomEnterResponseLimited","value": "7"} - ,{"name": "k_EChatRoomEnterResponseClanDisabled","value": "8"} - ,{"name": "k_EChatRoomEnterResponseCommunityBan","value": "9"} - ,{"name": "k_EChatRoomEnterResponseMemberBlockedYou","value": "10"} - ,{"name": "k_EChatRoomEnterResponseYouBlockedMember","value": "11"} -]} -, {"enumname": "EChatSteamIDInstanceFlags","values": [ - {"name": "k_EChatAccountInstanceMask","value": "4095"} - ,{"name": "k_EChatInstanceFlagClan","value": "524288"} - ,{"name": "k_EChatInstanceFlagLobby","value": "262144"} - ,{"name": "k_EChatInstanceFlagMMSLobby","value": "131072"} -]} -, {"enumname": "EMarketingMessageFlags","values": [ - {"name": "k_EMarketingMessageFlagsNone","value": "0"} - ,{"name": "k_EMarketingMessageFlagsHighPriority","value": "1"} - ,{"name": "k_EMarketingMessageFlagsPlatformWindows","value": "2"} - ,{"name": "k_EMarketingMessageFlagsPlatformMac","value": "4"} - ,{"name": "k_EMarketingMessageFlagsPlatformLinux","value": "8"} - ,{"name": "k_EMarketingMessageFlagsPlatformRestrictions","value": "14"} -]} -, {"enumname": "ENotificationPosition","values": [ - {"name": "k_EPositionTopLeft","value": "0"} - ,{"name": "k_EPositionTopRight","value": "1"} - ,{"name": "k_EPositionBottomLeft","value": "2"} - ,{"name": "k_EPositionBottomRight","value": "3"} -]} -, {"enumname": "EBroadcastUploadResult","values": [ - {"name": "k_EBroadcastUploadResultNone","value": "0"} - ,{"name": "k_EBroadcastUploadResultOK","value": "1"} - ,{"name": "k_EBroadcastUploadResultInitFailed","value": "2"} - ,{"name": "k_EBroadcastUploadResultFrameFailed","value": "3"} - ,{"name": "k_EBroadcastUploadResultTimeout","value": "4"} - ,{"name": "k_EBroadcastUploadResultBandwidthExceeded","value": "5"} - ,{"name": "k_EBroadcastUploadResultLowFPS","value": "6"} - ,{"name": "k_EBroadcastUploadResultMissingKeyFrames","value": "7"} - ,{"name": "k_EBroadcastUploadResultNoConnection","value": "8"} - ,{"name": "k_EBroadcastUploadResultRelayFailed","value": "9"} - ,{"name": "k_EBroadcastUploadResultSettingsChanged","value": "10"} - ,{"name": "k_EBroadcastUploadResultMissingAudio","value": "11"} - ,{"name": "k_EBroadcastUploadResultTooFarBehind","value": "12"} - ,{"name": "k_EBroadcastUploadResultTranscodeBehind","value": "13"} -]} -, {"enumname": "ELaunchOptionType","values": [ - {"name": "k_ELaunchOptionType_None","value": "0"} - ,{"name": "k_ELaunchOptionType_Default","value": "1"} - ,{"name": "k_ELaunchOptionType_SafeMode","value": "2"} - ,{"name": "k_ELaunchOptionType_Multiplayer","value": "3"} - ,{"name": "k_ELaunchOptionType_Config","value": "4"} - ,{"name": "k_ELaunchOptionType_OpenVR","value": "5"} - ,{"name": "k_ELaunchOptionType_Server","value": "6"} - ,{"name": "k_ELaunchOptionType_Editor","value": "7"} - ,{"name": "k_ELaunchOptionType_Manual","value": "8"} - ,{"name": "k_ELaunchOptionType_Benchmark","value": "9"} - ,{"name": "k_ELaunchOptionType_Option1","value": "10"} - ,{"name": "k_ELaunchOptionType_Option2","value": "11"} - ,{"name": "k_ELaunchOptionType_Option3","value": "12"} - ,{"name": "k_ELaunchOptionType_OculusVR","value": "13"} - ,{"name": "k_ELaunchOptionType_OpenVROverlay","value": "14"} - ,{"name": "k_ELaunchOptionType_OSVR","value": "15"} - ,{"name": "k_ELaunchOptionType_Dialog","value": "1000"} -]} -, {"enumname": "EVRHMDType","values": [ - {"name": "k_eEVRHMDType_None","value": "-1"} - ,{"name": "k_eEVRHMDType_Unknown","value": "0"} - ,{"name": "k_eEVRHMDType_HTC_Dev","value": "1"} - ,{"name": "k_eEVRHMDType_HTC_VivePre","value": "2"} - ,{"name": "k_eEVRHMDType_HTC_Vive","value": "3"} - ,{"name": "k_eEVRHMDType_HTC_Unknown","value": "20"} - ,{"name": "k_eEVRHMDType_Oculus_DK1","value": "21"} - ,{"name": "k_eEVRHMDType_Oculus_DK2","value": "22"} - ,{"name": "k_eEVRHMDType_Oculus_Rift","value": "23"} - ,{"name": "k_eEVRHMDType_Oculus_Unknown","value": "40"} -]} -, {"enumname": "EControllerType","values": [ - {"name": "k_eControllerType_None","value": "-1"} - ,{"name": "k_eControllerType_Unknown","value": "0"} - ,{"name": "k_eControllerType_UnknownSteamController","value": "1"} - ,{"name": "k_eControllerType_SteamController","value": "2"} - ,{"name": "k_eControllerType_UnknownNonSteamController","value": "30"} - ,{"name": "k_eControllerType_XBox360Controller","value": "31"} - ,{"name": "k_eControllerType_XBoxOneController","value": "32"} - ,{"name": "k_eControllerType_PS3Controller","value": "33"} - ,{"name": "k_eControllerType_PS4Controller","value": "34"} - ,{"name": "k_eControllerType_WiiController","value": "35"} - ,{"name": "k_eControllerType_AppleController","value": "36"} -]} -, {"enumname": "CGameID::EGameIDType","values": [ - {"name": "k_EGameIDTypeApp","value": "0"} - ,{"name": "k_EGameIDTypeGameMod","value": "1"} - ,{"name": "k_EGameIDTypeShortcut","value": "2"} - ,{"name": "k_EGameIDTypeP2P","value": "3"} -]} -, {"enumname": "IPCFailure_t::EFailureType","values": [ - {"name": "k_EFailureFlushedCallbackQueue","value": "0"} - ,{"name": "k_EFailurePipeFail","value": "1"} -]} -, {"enumname": "EFriendRelationship","values": [ - {"name": "k_EFriendRelationshipNone","value": "0"} - ,{"name": "k_EFriendRelationshipBlocked","value": "1"} - ,{"name": "k_EFriendRelationshipRequestRecipient","value": "2"} - ,{"name": "k_EFriendRelationshipFriend","value": "3"} - ,{"name": "k_EFriendRelationshipRequestInitiator","value": "4"} - ,{"name": "k_EFriendRelationshipIgnored","value": "5"} - ,{"name": "k_EFriendRelationshipIgnoredFriend","value": "6"} - ,{"name": "k_EFriendRelationshipSuggested_DEPRECATED","value": "7"} - ,{"name": "k_EFriendRelationshipMax","value": "8"} -]} -, {"enumname": "EPersonaState","values": [ - {"name": "k_EPersonaStateOffline","value": "0"} - ,{"name": "k_EPersonaStateOnline","value": "1"} - ,{"name": "k_EPersonaStateBusy","value": "2"} - ,{"name": "k_EPersonaStateAway","value": "3"} - ,{"name": "k_EPersonaStateSnooze","value": "4"} - ,{"name": "k_EPersonaStateLookingToTrade","value": "5"} - ,{"name": "k_EPersonaStateLookingToPlay","value": "6"} - ,{"name": "k_EPersonaStateMax","value": "7"} -]} -, {"enumname": "EFriendFlags","values": [ - {"name": "k_EFriendFlagNone","value": "0"} - ,{"name": "k_EFriendFlagBlocked","value": "1"} - ,{"name": "k_EFriendFlagFriendshipRequested","value": "2"} - ,{"name": "k_EFriendFlagImmediate","value": "4"} - ,{"name": "k_EFriendFlagClanMember","value": "8"} - ,{"name": "k_EFriendFlagOnGameServer","value": "16"} - ,{"name": "k_EFriendFlagRequestingFriendship","value": "128"} - ,{"name": "k_EFriendFlagRequestingInfo","value": "256"} - ,{"name": "k_EFriendFlagIgnored","value": "512"} - ,{"name": "k_EFriendFlagIgnoredFriend","value": "1024"} - ,{"name": "k_EFriendFlagSuggested","value": "2048"} - ,{"name": "k_EFriendFlagChatMember","value": "4096"} - ,{"name": "k_EFriendFlagAll","value": "65535"} -]} -, {"enumname": "EUserRestriction","values": [ - {"name": "k_nUserRestrictionNone","value": "0"} - ,{"name": "k_nUserRestrictionUnknown","value": "1"} - ,{"name": "k_nUserRestrictionAnyChat","value": "2"} - ,{"name": "k_nUserRestrictionVoiceChat","value": "4"} - ,{"name": "k_nUserRestrictionGroupChat","value": "8"} - ,{"name": "k_nUserRestrictionRating","value": "16"} - ,{"name": "k_nUserRestrictionGameInvites","value": "32"} - ,{"name": "k_nUserRestrictionTrading","value": "64"} -]} -, {"enumname": "EOverlayToStoreFlag","values": [ - {"name": "k_EOverlayToStoreFlag_None","value": "0"} - ,{"name": "k_EOverlayToStoreFlag_AddToCart","value": "1"} - ,{"name": "k_EOverlayToStoreFlag_AddToCartAndShow","value": "2"} -]} -, {"enumname": "EPersonaChange","values": [ - {"name": "k_EPersonaChangeName","value": "1"} - ,{"name": "k_EPersonaChangeStatus","value": "2"} - ,{"name": "k_EPersonaChangeComeOnline","value": "4"} - ,{"name": "k_EPersonaChangeGoneOffline","value": "8"} - ,{"name": "k_EPersonaChangeGamePlayed","value": "16"} - ,{"name": "k_EPersonaChangeGameServer","value": "32"} - ,{"name": "k_EPersonaChangeAvatar","value": "64"} - ,{"name": "k_EPersonaChangeJoinedSource","value": "128"} - ,{"name": "k_EPersonaChangeLeftSource","value": "256"} - ,{"name": "k_EPersonaChangeRelationshipChanged","value": "512"} - ,{"name": "k_EPersonaChangeNameFirstSet","value": "1024"} - ,{"name": "k_EPersonaChangeFacebookInfo","value": "2048"} - ,{"name": "k_EPersonaChangeNickname","value": "4096"} - ,{"name": "k_EPersonaChangeSteamLevel","value": "8192"} -]} -, {"enumname": "ESteamAPICallFailure","values": [ - {"name": "k_ESteamAPICallFailureNone","value": "-1"} - ,{"name": "k_ESteamAPICallFailureSteamGone","value": "0"} - ,{"name": "k_ESteamAPICallFailureNetworkFailure","value": "1"} - ,{"name": "k_ESteamAPICallFailureInvalidHandle","value": "2"} - ,{"name": "k_ESteamAPICallFailureMismatchedCallback","value": "3"} -]} -, {"enumname": "EGamepadTextInputMode","values": [ - {"name": "k_EGamepadTextInputModeNormal","value": "0"} - ,{"name": "k_EGamepadTextInputModePassword","value": "1"} -]} -, {"enumname": "EGamepadTextInputLineMode","values": [ - {"name": "k_EGamepadTextInputLineModeSingleLine","value": "0"} - ,{"name": "k_EGamepadTextInputLineModeMultipleLines","value": "1"} -]} -, {"enumname": "ECheckFileSignature","values": [ - {"name": "k_ECheckFileSignatureInvalidSignature","value": "0"} - ,{"name": "k_ECheckFileSignatureValidSignature","value": "1"} - ,{"name": "k_ECheckFileSignatureFileNotFound","value": "2"} - ,{"name": "k_ECheckFileSignatureNoSignaturesFoundForThisApp","value": "3"} - ,{"name": "k_ECheckFileSignatureNoSignaturesFoundForThisFile","value": "4"} -]} -, {"enumname": "EMatchMakingServerResponse","values": [ - {"name": "eServerResponded","value": "0"} - ,{"name": "eServerFailedToRespond","value": "1"} - ,{"name": "eNoServersListedOnMasterServer","value": "2"} -]} -, {"enumname": "ELobbyType","values": [ - {"name": "k_ELobbyTypePrivate","value": "0"} - ,{"name": "k_ELobbyTypeFriendsOnly","value": "1"} - ,{"name": "k_ELobbyTypePublic","value": "2"} - ,{"name": "k_ELobbyTypeInvisible","value": "3"} -]} -, {"enumname": "ELobbyComparison","values": [ - {"name": "k_ELobbyComparisonEqualToOrLessThan","value": "-2"} - ,{"name": "k_ELobbyComparisonLessThan","value": "-1"} - ,{"name": "k_ELobbyComparisonEqual","value": "0"} - ,{"name": "k_ELobbyComparisonGreaterThan","value": "1"} - ,{"name": "k_ELobbyComparisonEqualToOrGreaterThan","value": "2"} - ,{"name": "k_ELobbyComparisonNotEqual","value": "3"} -]} -, {"enumname": "ELobbyDistanceFilter","values": [ - {"name": "k_ELobbyDistanceFilterClose","value": "0"} - ,{"name": "k_ELobbyDistanceFilterDefault","value": "1"} - ,{"name": "k_ELobbyDistanceFilterFar","value": "2"} - ,{"name": "k_ELobbyDistanceFilterWorldwide","value": "3"} -]} -, {"enumname": "EChatMemberStateChange","values": [ - {"name": "k_EChatMemberStateChangeEntered","value": "1"} - ,{"name": "k_EChatMemberStateChangeLeft","value": "2"} - ,{"name": "k_EChatMemberStateChangeDisconnected","value": "4"} - ,{"name": "k_EChatMemberStateChangeKicked","value": "8"} - ,{"name": "k_EChatMemberStateChangeBanned","value": "16"} -]} -, {"enumname": "ERemoteStoragePlatform","values": [ - {"name": "k_ERemoteStoragePlatformNone","value": "0"} - ,{"name": "k_ERemoteStoragePlatformWindows","value": "1"} - ,{"name": "k_ERemoteStoragePlatformOSX","value": "2"} - ,{"name": "k_ERemoteStoragePlatformPS3","value": "4"} - ,{"name": "k_ERemoteStoragePlatformLinux","value": "8"} - ,{"name": "k_ERemoteStoragePlatformReserved2","value": "16"} - ,{"name": "k_ERemoteStoragePlatformAll","value": "-1"} -]} -, {"enumname": "ERemoteStoragePublishedFileVisibility","values": [ - {"name": "k_ERemoteStoragePublishedFileVisibilityPublic","value": "0"} - ,{"name": "k_ERemoteStoragePublishedFileVisibilityFriendsOnly","value": "1"} - ,{"name": "k_ERemoteStoragePublishedFileVisibilityPrivate","value": "2"} -]} -, {"enumname": "EWorkshopFileType","values": [ - {"name": "k_EWorkshopFileTypeFirst","value": "0"} - ,{"name": "k_EWorkshopFileTypeCommunity","value": "0"} - ,{"name": "k_EWorkshopFileTypeMicrotransaction","value": "1"} - ,{"name": "k_EWorkshopFileTypeCollection","value": "2"} - ,{"name": "k_EWorkshopFileTypeArt","value": "3"} - ,{"name": "k_EWorkshopFileTypeVideo","value": "4"} - ,{"name": "k_EWorkshopFileTypeScreenshot","value": "5"} - ,{"name": "k_EWorkshopFileTypeGame","value": "6"} - ,{"name": "k_EWorkshopFileTypeSoftware","value": "7"} - ,{"name": "k_EWorkshopFileTypeConcept","value": "8"} - ,{"name": "k_EWorkshopFileTypeWebGuide","value": "9"} - ,{"name": "k_EWorkshopFileTypeIntegratedGuide","value": "10"} - ,{"name": "k_EWorkshopFileTypeMerch","value": "11"} - ,{"name": "k_EWorkshopFileTypeControllerBinding","value": "12"} - ,{"name": "k_EWorkshopFileTypeSteamworksAccessInvite","value": "13"} - ,{"name": "k_EWorkshopFileTypeSteamVideo","value": "14"} - ,{"name": "k_EWorkshopFileTypeGameManagedItem","value": "15"} - ,{"name": "k_EWorkshopFileTypeMax","value": "16"} -]} -, {"enumname": "EWorkshopVote","values": [ - {"name": "k_EWorkshopVoteUnvoted","value": "0"} - ,{"name": "k_EWorkshopVoteFor","value": "1"} - ,{"name": "k_EWorkshopVoteAgainst","value": "2"} - ,{"name": "k_EWorkshopVoteLater","value": "3"} -]} -, {"enumname": "EWorkshopFileAction","values": [ - {"name": "k_EWorkshopFileActionPlayed","value": "0"} - ,{"name": "k_EWorkshopFileActionCompleted","value": "1"} -]} -, {"enumname": "EWorkshopEnumerationType","values": [ - {"name": "k_EWorkshopEnumerationTypeRankedByVote","value": "0"} - ,{"name": "k_EWorkshopEnumerationTypeRecent","value": "1"} - ,{"name": "k_EWorkshopEnumerationTypeTrending","value": "2"} - ,{"name": "k_EWorkshopEnumerationTypeFavoritesOfFriends","value": "3"} - ,{"name": "k_EWorkshopEnumerationTypeVotedByFriends","value": "4"} - ,{"name": "k_EWorkshopEnumerationTypeContentByFriends","value": "5"} - ,{"name": "k_EWorkshopEnumerationTypeRecentFromFollowedUsers","value": "6"} -]} -, {"enumname": "EWorkshopVideoProvider","values": [ - {"name": "k_EWorkshopVideoProviderNone","value": "0"} - ,{"name": "k_EWorkshopVideoProviderYoutube","value": "1"} -]} -, {"enumname": "EUGCReadAction","values": [ - {"name": "k_EUGCRead_ContinueReadingUntilFinished","value": "0"} - ,{"name": "k_EUGCRead_ContinueReading","value": "1"} - ,{"name": "k_EUGCRead_Close","value": "2"} -]} -, {"enumname": "ELeaderboardDataRequest","values": [ - {"name": "k_ELeaderboardDataRequestGlobal","value": "0"} - ,{"name": "k_ELeaderboardDataRequestGlobalAroundUser","value": "1"} - ,{"name": "k_ELeaderboardDataRequestFriends","value": "2"} - ,{"name": "k_ELeaderboardDataRequestUsers","value": "3"} -]} -, {"enumname": "ELeaderboardSortMethod","values": [ - {"name": "k_ELeaderboardSortMethodNone","value": "0"} - ,{"name": "k_ELeaderboardSortMethodAscending","value": "1"} - ,{"name": "k_ELeaderboardSortMethodDescending","value": "2"} -]} -, {"enumname": "ELeaderboardDisplayType","values": [ - {"name": "k_ELeaderboardDisplayTypeNone","value": "0"} - ,{"name": "k_ELeaderboardDisplayTypeNumeric","value": "1"} - ,{"name": "k_ELeaderboardDisplayTypeTimeSeconds","value": "2"} - ,{"name": "k_ELeaderboardDisplayTypeTimeMilliSeconds","value": "3"} -]} -, {"enumname": "ELeaderboardUploadScoreMethod","values": [ - {"name": "k_ELeaderboardUploadScoreMethodNone","value": "0"} - ,{"name": "k_ELeaderboardUploadScoreMethodKeepBest","value": "1"} - ,{"name": "k_ELeaderboardUploadScoreMethodForceUpdate","value": "2"} -]} -, {"enumname": "ERegisterActivationCodeResult","values": [ - {"name": "k_ERegisterActivationCodeResultOK","value": "0"} - ,{"name": "k_ERegisterActivationCodeResultFail","value": "1"} - ,{"name": "k_ERegisterActivationCodeResultAlreadyRegistered","value": "2"} - ,{"name": "k_ERegisterActivationCodeResultTimeout","value": "3"} - ,{"name": "k_ERegisterActivationCodeAlreadyOwned","value": "4"} -]} -, {"enumname": "EP2PSessionError","values": [ - {"name": "k_EP2PSessionErrorNone","value": "0"} - ,{"name": "k_EP2PSessionErrorNotRunningApp","value": "1"} - ,{"name": "k_EP2PSessionErrorNoRightsToApp","value": "2"} - ,{"name": "k_EP2PSessionErrorDestinationNotLoggedIn","value": "3"} - ,{"name": "k_EP2PSessionErrorTimeout","value": "4"} - ,{"name": "k_EP2PSessionErrorMax","value": "5"} -]} -, {"enumname": "EP2PSend","values": [ - {"name": "k_EP2PSendUnreliable","value": "0"} - ,{"name": "k_EP2PSendUnreliableNoDelay","value": "1"} - ,{"name": "k_EP2PSendReliable","value": "2"} - ,{"name": "k_EP2PSendReliableWithBuffering","value": "3"} -]} -, {"enumname": "ESNetSocketState","values": [ - {"name": "k_ESNetSocketStateInvalid","value": "0"} - ,{"name": "k_ESNetSocketStateConnected","value": "1"} - ,{"name": "k_ESNetSocketStateInitiated","value": "10"} - ,{"name": "k_ESNetSocketStateLocalCandidatesFound","value": "11"} - ,{"name": "k_ESNetSocketStateReceivedRemoteCandidates","value": "12"} - ,{"name": "k_ESNetSocketStateChallengeHandshake","value": "15"} - ,{"name": "k_ESNetSocketStateDisconnecting","value": "21"} - ,{"name": "k_ESNetSocketStateLocalDisconnect","value": "22"} - ,{"name": "k_ESNetSocketStateTimeoutDuringConnect","value": "23"} - ,{"name": "k_ESNetSocketStateRemoteEndDisconnected","value": "24"} - ,{"name": "k_ESNetSocketStateConnectionBroken","value": "25"} -]} -, {"enumname": "ESNetSocketConnectionType","values": [ - {"name": "k_ESNetSocketConnectionTypeNotConnected","value": "0"} - ,{"name": "k_ESNetSocketConnectionTypeUDP","value": "1"} - ,{"name": "k_ESNetSocketConnectionTypeUDPRelay","value": "2"} -]} -, {"enumname": "EVRScreenshotType","values": [ - {"name": "k_EVRScreenshotType_None","value": "0"} - ,{"name": "k_EVRScreenshotType_Mono","value": "1"} - ,{"name": "k_EVRScreenshotType_Stereo","value": "2"} - ,{"name": "k_EVRScreenshotType_MonoCubemap","value": "3"} - ,{"name": "k_EVRScreenshotType_MonoPanorama","value": "4"} - ,{"name": "k_EVRScreenshotType_StereoPanorama","value": "5"} -]} -, {"enumname": "AudioPlayback_Status","values": [ - {"name": "AudioPlayback_Undefined","value": "0"} - ,{"name": "AudioPlayback_Playing","value": "1"} - ,{"name": "AudioPlayback_Paused","value": "2"} - ,{"name": "AudioPlayback_Idle","value": "3"} -]} -, {"enumname": "EHTTPMethod","values": [ - {"name": "k_EHTTPMethodInvalid","value": "0"} - ,{"name": "k_EHTTPMethodGET","value": "1"} - ,{"name": "k_EHTTPMethodHEAD","value": "2"} - ,{"name": "k_EHTTPMethodPOST","value": "3"} - ,{"name": "k_EHTTPMethodPUT","value": "4"} - ,{"name": "k_EHTTPMethodDELETE","value": "5"} - ,{"name": "k_EHTTPMethodOPTIONS","value": "6"} - ,{"name": "k_EHTTPMethodPATCH","value": "7"} -]} -, {"enumname": "EHTTPStatusCode","values": [ - {"name": "k_EHTTPStatusCodeInvalid","value": "0"} - ,{"name": "k_EHTTPStatusCode100Continue","value": "100"} - ,{"name": "k_EHTTPStatusCode101SwitchingProtocols","value": "101"} - ,{"name": "k_EHTTPStatusCode200OK","value": "200"} - ,{"name": "k_EHTTPStatusCode201Created","value": "201"} - ,{"name": "k_EHTTPStatusCode202Accepted","value": "202"} - ,{"name": "k_EHTTPStatusCode203NonAuthoritative","value": "203"} - ,{"name": "k_EHTTPStatusCode204NoContent","value": "204"} - ,{"name": "k_EHTTPStatusCode205ResetContent","value": "205"} - ,{"name": "k_EHTTPStatusCode206PartialContent","value": "206"} - ,{"name": "k_EHTTPStatusCode300MultipleChoices","value": "300"} - ,{"name": "k_EHTTPStatusCode301MovedPermanently","value": "301"} - ,{"name": "k_EHTTPStatusCode302Found","value": "302"} - ,{"name": "k_EHTTPStatusCode303SeeOther","value": "303"} - ,{"name": "k_EHTTPStatusCode304NotModified","value": "304"} - ,{"name": "k_EHTTPStatusCode305UseProxy","value": "305"} - ,{"name": "k_EHTTPStatusCode307TemporaryRedirect","value": "307"} - ,{"name": "k_EHTTPStatusCode400BadRequest","value": "400"} - ,{"name": "k_EHTTPStatusCode401Unauthorized","value": "401"} - ,{"name": "k_EHTTPStatusCode402PaymentRequired","value": "402"} - ,{"name": "k_EHTTPStatusCode403Forbidden","value": "403"} - ,{"name": "k_EHTTPStatusCode404NotFound","value": "404"} - ,{"name": "k_EHTTPStatusCode405MethodNotAllowed","value": "405"} - ,{"name": "k_EHTTPStatusCode406NotAcceptable","value": "406"} - ,{"name": "k_EHTTPStatusCode407ProxyAuthRequired","value": "407"} - ,{"name": "k_EHTTPStatusCode408RequestTimeout","value": "408"} - ,{"name": "k_EHTTPStatusCode409Conflict","value": "409"} - ,{"name": "k_EHTTPStatusCode410Gone","value": "410"} - ,{"name": "k_EHTTPStatusCode411LengthRequired","value": "411"} - ,{"name": "k_EHTTPStatusCode412PreconditionFailed","value": "412"} - ,{"name": "k_EHTTPStatusCode413RequestEntityTooLarge","value": "413"} - ,{"name": "k_EHTTPStatusCode414RequestURITooLong","value": "414"} - ,{"name": "k_EHTTPStatusCode415UnsupportedMediaType","value": "415"} - ,{"name": "k_EHTTPStatusCode416RequestedRangeNotSatisfiable","value": "416"} - ,{"name": "k_EHTTPStatusCode417ExpectationFailed","value": "417"} - ,{"name": "k_EHTTPStatusCode4xxUnknown","value": "418"} - ,{"name": "k_EHTTPStatusCode429TooManyRequests","value": "429"} - ,{"name": "k_EHTTPStatusCode500InternalServerError","value": "500"} - ,{"name": "k_EHTTPStatusCode501NotImplemented","value": "501"} - ,{"name": "k_EHTTPStatusCode502BadGateway","value": "502"} - ,{"name": "k_EHTTPStatusCode503ServiceUnavailable","value": "503"} - ,{"name": "k_EHTTPStatusCode504GatewayTimeout","value": "504"} - ,{"name": "k_EHTTPStatusCode505HTTPVersionNotSupported","value": "505"} - ,{"name": "k_EHTTPStatusCode5xxUnknown","value": "599"} -]} -, {"enumname": "ESteamControllerPad","values": [ - {"name": "k_ESteamControllerPad_Left","value": "0"} - ,{"name": "k_ESteamControllerPad_Right","value": "1"} -]} -, {"enumname": "EControllerSource","values": [ - {"name": "k_EControllerSource_None","value": "0"} - ,{"name": "k_EControllerSource_LeftTrackpad","value": "1"} - ,{"name": "k_EControllerSource_RightTrackpad","value": "2"} - ,{"name": "k_EControllerSource_Joystick","value": "3"} - ,{"name": "k_EControllerSource_ABXY","value": "4"} - ,{"name": "k_EControllerSource_Switch","value": "5"} - ,{"name": "k_EControllerSource_LeftTrigger","value": "6"} - ,{"name": "k_EControllerSource_RightTrigger","value": "7"} - ,{"name": "k_EControllerSource_Gyro","value": "8"} - ,{"name": "k_EControllerSource_Count","value": "9"} -]} -, {"enumname": "EControllerSourceMode","values": [ - {"name": "k_EControllerSourceMode_None","value": "0"} - ,{"name": "k_EControllerSourceMode_Dpad","value": "1"} - ,{"name": "k_EControllerSourceMode_Buttons","value": "2"} - ,{"name": "k_EControllerSourceMode_FourButtons","value": "3"} - ,{"name": "k_EControllerSourceMode_AbsoluteMouse","value": "4"} - ,{"name": "k_EControllerSourceMode_RelativeMouse","value": "5"} - ,{"name": "k_EControllerSourceMode_JoystickMove","value": "6"} - ,{"name": "k_EControllerSourceMode_JoystickCamera","value": "7"} - ,{"name": "k_EControllerSourceMode_ScrollWheel","value": "8"} - ,{"name": "k_EControllerSourceMode_Trigger","value": "9"} - ,{"name": "k_EControllerSourceMode_TouchMenu","value": "10"} - ,{"name": "k_EControllerSourceMode_MouseJoystick","value": "11"} - ,{"name": "k_EControllerSourceMode_MouseRegion","value": "12"} - ,{"name": "k_EControllerSourceMode_RadialMenu","value": "13"} - ,{"name": "k_EControllerSourceMode_Switches","value": "14"} -]} -, {"enumname": "EControllerActionOrigin","values": [ - {"name": "k_EControllerActionOrigin_None","value": "0"} - ,{"name": "k_EControllerActionOrigin_A","value": "1"} - ,{"name": "k_EControllerActionOrigin_B","value": "2"} - ,{"name": "k_EControllerActionOrigin_X","value": "3"} - ,{"name": "k_EControllerActionOrigin_Y","value": "4"} - ,{"name": "k_EControllerActionOrigin_LeftBumper","value": "5"} - ,{"name": "k_EControllerActionOrigin_RightBumper","value": "6"} - ,{"name": "k_EControllerActionOrigin_LeftGrip","value": "7"} - ,{"name": "k_EControllerActionOrigin_RightGrip","value": "8"} - ,{"name": "k_EControllerActionOrigin_Start","value": "9"} - ,{"name": "k_EControllerActionOrigin_Back","value": "10"} - ,{"name": "k_EControllerActionOrigin_LeftPad_Touch","value": "11"} - ,{"name": "k_EControllerActionOrigin_LeftPad_Swipe","value": "12"} - ,{"name": "k_EControllerActionOrigin_LeftPad_Click","value": "13"} - ,{"name": "k_EControllerActionOrigin_LeftPad_DPadNorth","value": "14"} - ,{"name": "k_EControllerActionOrigin_LeftPad_DPadSouth","value": "15"} - ,{"name": "k_EControllerActionOrigin_LeftPad_DPadWest","value": "16"} - ,{"name": "k_EControllerActionOrigin_LeftPad_DPadEast","value": "17"} - ,{"name": "k_EControllerActionOrigin_RightPad_Touch","value": "18"} - ,{"name": "k_EControllerActionOrigin_RightPad_Swipe","value": "19"} - ,{"name": "k_EControllerActionOrigin_RightPad_Click","value": "20"} - ,{"name": "k_EControllerActionOrigin_RightPad_DPadNorth","value": "21"} - ,{"name": "k_EControllerActionOrigin_RightPad_DPadSouth","value": "22"} - ,{"name": "k_EControllerActionOrigin_RightPad_DPadWest","value": "23"} - ,{"name": "k_EControllerActionOrigin_RightPad_DPadEast","value": "24"} - ,{"name": "k_EControllerActionOrigin_LeftTrigger_Pull","value": "25"} - ,{"name": "k_EControllerActionOrigin_LeftTrigger_Click","value": "26"} - ,{"name": "k_EControllerActionOrigin_RightTrigger_Pull","value": "27"} - ,{"name": "k_EControllerActionOrigin_RightTrigger_Click","value": "28"} - ,{"name": "k_EControllerActionOrigin_LeftStick_Move","value": "29"} - ,{"name": "k_EControllerActionOrigin_LeftStick_Click","value": "30"} - ,{"name": "k_EControllerActionOrigin_LeftStick_DPadNorth","value": "31"} - ,{"name": "k_EControllerActionOrigin_LeftStick_DPadSouth","value": "32"} - ,{"name": "k_EControllerActionOrigin_LeftStick_DPadWest","value": "33"} - ,{"name": "k_EControllerActionOrigin_LeftStick_DPadEast","value": "34"} - ,{"name": "k_EControllerActionOrigin_Gyro_Move","value": "35"} - ,{"name": "k_EControllerActionOrigin_Gyro_Pitch","value": "36"} - ,{"name": "k_EControllerActionOrigin_Gyro_Yaw","value": "37"} - ,{"name": "k_EControllerActionOrigin_Gyro_Roll","value": "38"} - ,{"name": "k_EControllerActionOrigin_Count","value": "39"} -]} -, {"enumname": "EControllerActivationType","values": [ - {"name": "k_EControllerActivationType_None","value": "0"} - ,{"name": "k_EControllerActivationType_FullPress","value": "1"} - ,{"name": "k_EControllerActivationType_SoftPress","value": "2"} - ,{"name": "k_EControllerActivationType_StartPress","value": "3"} - ,{"name": "k_EControllerActivationType_Release","value": "4"} - ,{"name": "k_EControllerActivationType_LongPress","value": "5"} - ,{"name": "k_EControllerActivationType_DoublePress","value": "6"} - ,{"name": "k_EControllerActivationType_Analog","value": "7"} -]} -, {"enumname": "EControllerPressureButton","values": [ - {"name": "k_EControllerPressureButton_LeftTrackPad","value": "0"} - ,{"name": "k_EControllerPressureButton_RightTrackPad","value": "1"} - ,{"name": "k_EControllerPressureButton_LeftBumper","value": "2"} - ,{"name": "k_EControllerPressureButton_RightBumper","value": "3"} - ,{"name": "k_EControllerPressureButton_LeftGripLower","value": "4"} - ,{"name": "k_EControllerPressureButton_RightGripLower","value": "5"} - ,{"name": "k_EControllerPressureButton_LeftGripUpper","value": "6"} - ,{"name": "k_EControllerPressureButton_RightGripUpper","value": "7"} - ,{"name": "k_EControllerPressureButton_Invalid","value": "8"} -]} -, {"enumname": "EControllerActivatorOutputAxis","values": [ - {"name": "k_EOutputAxisLeftTrigger","value": "0"} - ,{"name": "k_EOutputAxisRightTrigger","value": "1"} - ,{"name": "k_EOutputAxisLeftThumbXPos","value": "2"} - ,{"name": "k_EOutputAxisLeftThumbXNeg","value": "3"} - ,{"name": "k_EOutputAxisLeftThumbYPos","value": "4"} - ,{"name": "k_EOutputAxisLeftThumbYNeg","value": "5"} - ,{"name": "k_EOutputAxisRightThumbXPos","value": "6"} - ,{"name": "k_EOutputAxisRightThumbXNeg","value": "7"} - ,{"name": "k_EOutputAxisRightThumbYPos","value": "8"} - ,{"name": "k_EOutputAxisRightThumbYNeg","value": "9"} -]} -, {"enumname": "EControllerConfigFeature","values": [ - {"name": "k_EControllerConfigFeature_None","value": "0"} - ,{"name": "k_EControllerConfigFeature_Gamepad","value": "1"} - ,{"name": "k_EControllerConfigFeature_Keyboard","value": "2"} - ,{"name": "k_EControllerConfigFeature_Mouse","value": "3"} - ,{"name": "k_EControllerConfigFeature_Gyro","value": "4"} - ,{"name": "k_EControllerConfigFeature_TouchMenu","value": "5"} - ,{"name": "k_EControllerConfigFeature_ModeShift","value": "6"} - ,{"name": "k_EControllerConfigFeature_ActionSet","value": "7"} - ,{"name": "k_EControllerConfigFeature_Activator","value": "8"} -]} -, {"enumname": "EControllerPopupMenuActivationType","values": [ - {"name": "k_EMenuButtonPress","value": "0"} - ,{"name": "k_EMenuButtonRelease","value": "1"} - ,{"name": "k_EMenuTouchRelease","value": "2"} - ,{"name": "k_EMenuTouchAlways","value": "3"} -]} -, {"enumname": "EUGCMatchingUGCType","values": [ - {"name": "k_EUGCMatchingUGCType_Items","value": "0"} - ,{"name": "k_EUGCMatchingUGCType_Items_Mtx","value": "1"} - ,{"name": "k_EUGCMatchingUGCType_Items_ReadyToUse","value": "2"} - ,{"name": "k_EUGCMatchingUGCType_Collections","value": "3"} - ,{"name": "k_EUGCMatchingUGCType_Artwork","value": "4"} - ,{"name": "k_EUGCMatchingUGCType_Videos","value": "5"} - ,{"name": "k_EUGCMatchingUGCType_Screenshots","value": "6"} - ,{"name": "k_EUGCMatchingUGCType_AllGuides","value": "7"} - ,{"name": "k_EUGCMatchingUGCType_WebGuides","value": "8"} - ,{"name": "k_EUGCMatchingUGCType_IntegratedGuides","value": "9"} - ,{"name": "k_EUGCMatchingUGCType_UsableInGame","value": "10"} - ,{"name": "k_EUGCMatchingUGCType_ControllerBindings","value": "11"} - ,{"name": "k_EUGCMatchingUGCType_GameManagedItems","value": "12"} - ,{"name": "k_EUGCMatchingUGCType_All","value": "-1"} -]} -, {"enumname": "EUserUGCList","values": [ - {"name": "k_EUserUGCList_Published","value": "0"} - ,{"name": "k_EUserUGCList_VotedOn","value": "1"} - ,{"name": "k_EUserUGCList_VotedUp","value": "2"} - ,{"name": "k_EUserUGCList_VotedDown","value": "3"} - ,{"name": "k_EUserUGCList_WillVoteLater","value": "4"} - ,{"name": "k_EUserUGCList_Favorited","value": "5"} - ,{"name": "k_EUserUGCList_Subscribed","value": "6"} - ,{"name": "k_EUserUGCList_UsedOrPlayed","value": "7"} - ,{"name": "k_EUserUGCList_Followed","value": "8"} -]} -, {"enumname": "EUserUGCListSortOrder","values": [ - {"name": "k_EUserUGCListSortOrder_CreationOrderDesc","value": "0"} - ,{"name": "k_EUserUGCListSortOrder_CreationOrderAsc","value": "1"} - ,{"name": "k_EUserUGCListSortOrder_TitleAsc","value": "2"} - ,{"name": "k_EUserUGCListSortOrder_LastUpdatedDesc","value": "3"} - ,{"name": "k_EUserUGCListSortOrder_SubscriptionDateDesc","value": "4"} - ,{"name": "k_EUserUGCListSortOrder_VoteScoreDesc","value": "5"} - ,{"name": "k_EUserUGCListSortOrder_ForModeration","value": "6"} -]} -, {"enumname": "EUGCQuery","values": [ - {"name": "k_EUGCQuery_RankedByVote","value": "0"} - ,{"name": "k_EUGCQuery_RankedByPublicationDate","value": "1"} - ,{"name": "k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate","value": "2"} - ,{"name": "k_EUGCQuery_RankedByTrend","value": "3"} - ,{"name": "k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate","value": "4"} - ,{"name": "k_EUGCQuery_CreatedByFriendsRankedByPublicationDate","value": "5"} - ,{"name": "k_EUGCQuery_RankedByNumTimesReported","value": "6"} - ,{"name": "k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate","value": "7"} - ,{"name": "k_EUGCQuery_NotYetRated","value": "8"} - ,{"name": "k_EUGCQuery_RankedByTotalVotesAsc","value": "9"} - ,{"name": "k_EUGCQuery_RankedByVotesUp","value": "10"} - ,{"name": "k_EUGCQuery_RankedByTextSearch","value": "11"} - ,{"name": "k_EUGCQuery_RankedByTotalUniqueSubscriptions","value": "12"} - ,{"name": "k_EUGCQuery_RankedByPlaytimeTrend","value": "13"} - ,{"name": "k_EUGCQuery_RankedByTotalPlaytime","value": "14"} - ,{"name": "k_EUGCQuery_RankedByAveragePlaytimeTrend","value": "15"} - ,{"name": "k_EUGCQuery_RankedByLifetimeAveragePlaytime","value": "16"} - ,{"name": "k_EUGCQuery_RankedByPlaytimeSessionsTrend","value": "17"} - ,{"name": "k_EUGCQuery_RankedByLifetimePlaytimeSessions","value": "18"} -]} -, {"enumname": "EItemUpdateStatus","values": [ - {"name": "k_EItemUpdateStatusInvalid","value": "0"} - ,{"name": "k_EItemUpdateStatusPreparingConfig","value": "1"} - ,{"name": "k_EItemUpdateStatusPreparingContent","value": "2"} - ,{"name": "k_EItemUpdateStatusUploadingContent","value": "3"} - ,{"name": "k_EItemUpdateStatusUploadingPreviewFile","value": "4"} - ,{"name": "k_EItemUpdateStatusCommittingChanges","value": "5"} -]} -, {"enumname": "EItemState","values": [ - {"name": "k_EItemStateNone","value": "0"} - ,{"name": "k_EItemStateSubscribed","value": "1"} - ,{"name": "k_EItemStateLegacyItem","value": "2"} - ,{"name": "k_EItemStateInstalled","value": "4"} - ,{"name": "k_EItemStateNeedsUpdate","value": "8"} - ,{"name": "k_EItemStateDownloading","value": "16"} - ,{"name": "k_EItemStateDownloadPending","value": "32"} -]} -, {"enumname": "EItemStatistic","values": [ - {"name": "k_EItemStatistic_NumSubscriptions","value": "0"} - ,{"name": "k_EItemStatistic_NumFavorites","value": "1"} - ,{"name": "k_EItemStatistic_NumFollowers","value": "2"} - ,{"name": "k_EItemStatistic_NumUniqueSubscriptions","value": "3"} - ,{"name": "k_EItemStatistic_NumUniqueFavorites","value": "4"} - ,{"name": "k_EItemStatistic_NumUniqueFollowers","value": "5"} - ,{"name": "k_EItemStatistic_NumUniqueWebsiteViews","value": "6"} - ,{"name": "k_EItemStatistic_ReportScore","value": "7"} - ,{"name": "k_EItemStatistic_NumSecondsPlayed","value": "8"} - ,{"name": "k_EItemStatistic_NumPlaytimeSessions","value": "9"} - ,{"name": "k_EItemStatistic_NumComments","value": "10"} -]} -, {"enumname": "EItemPreviewType","values": [ - {"name": "k_EItemPreviewType_Image","value": "0"} - ,{"name": "k_EItemPreviewType_YouTubeVideo","value": "1"} - ,{"name": "k_EItemPreviewType_Sketchfab","value": "2"} - ,{"name": "k_EItemPreviewType_EnvironmentMap_HorizontalCross","value": "3"} - ,{"name": "k_EItemPreviewType_EnvironmentMap_LatLong","value": "4"} - ,{"name": "k_EItemPreviewType_ReservedMax","value": "255"} -]} -, {"enumname": "ISteamHTMLSurface::EHTMLMouseButton","values": [ - {"name": "eHTMLMouseButton_Left","value": "0"} - ,{"name": "eHTMLMouseButton_Right","value": "1"} - ,{"name": "eHTMLMouseButton_Middle","value": "2"} -]} -, {"enumname": "ISteamHTMLSurface::EMouseCursor","values": [ - {"name": "dc_user","value": "0"} - ,{"name": "dc_none","value": "1"} - ,{"name": "dc_arrow","value": "2"} - ,{"name": "dc_ibeam","value": "3"} - ,{"name": "dc_hourglass","value": "4"} - ,{"name": "dc_waitarrow","value": "5"} - ,{"name": "dc_crosshair","value": "6"} - ,{"name": "dc_up","value": "7"} - ,{"name": "dc_sizenw","value": "8"} - ,{"name": "dc_sizese","value": "9"} - ,{"name": "dc_sizene","value": "10"} - ,{"name": "dc_sizesw","value": "11"} - ,{"name": "dc_sizew","value": "12"} - ,{"name": "dc_sizee","value": "13"} - ,{"name": "dc_sizen","value": "14"} - ,{"name": "dc_sizes","value": "15"} - ,{"name": "dc_sizewe","value": "16"} - ,{"name": "dc_sizens","value": "17"} - ,{"name": "dc_sizeall","value": "18"} - ,{"name": "dc_no","value": "19"} - ,{"name": "dc_hand","value": "20"} - ,{"name": "dc_blank","value": "21"} - ,{"name": "dc_middle_pan","value": "22"} - ,{"name": "dc_north_pan","value": "23"} - ,{"name": "dc_north_east_pan","value": "24"} - ,{"name": "dc_east_pan","value": "25"} - ,{"name": "dc_south_east_pan","value": "26"} - ,{"name": "dc_south_pan","value": "27"} - ,{"name": "dc_south_west_pan","value": "28"} - ,{"name": "dc_west_pan","value": "29"} - ,{"name": "dc_north_west_pan","value": "30"} - ,{"name": "dc_alias","value": "31"} - ,{"name": "dc_cell","value": "32"} - ,{"name": "dc_colresize","value": "33"} - ,{"name": "dc_copycur","value": "34"} - ,{"name": "dc_verticaltext","value": "35"} - ,{"name": "dc_rowresize","value": "36"} - ,{"name": "dc_zoomin","value": "37"} - ,{"name": "dc_zoomout","value": "38"} - ,{"name": "dc_help","value": "39"} - ,{"name": "dc_custom","value": "40"} - ,{"name": "dc_last","value": "41"} -]} -, {"enumname": "ISteamHTMLSurface::EHTMLKeyModifiers","values": [ - {"name": "k_eHTMLKeyModifier_None","value": "0"} - ,{"name": "k_eHTMLKeyModifier_AltDown","value": "1"} - ,{"name": "k_eHTMLKeyModifier_CtrlDown","value": "2"} - ,{"name": "k_eHTMLKeyModifier_ShiftDown","value": "4"} -]} -, {"enumname": "ESteamItemFlags","values": [ - {"name": "k_ESteamItemNoTrade","value": "1"} - ,{"name": "k_ESteamItemRemoved","value": "256"} - ,{"name": "k_ESteamItemConsumed","value": "512"} -]} -], -"consts":[{ - "constname": "k_iSteamUserCallbacks","consttype": "int", "constval": "100"} -,{ - "constname": "k_iSteamGameServerCallbacks","consttype": "int", "constval": "200"} -,{ - "constname": "k_iSteamFriendsCallbacks","consttype": "int", "constval": "300"} -,{ - "constname": "k_iSteamBillingCallbacks","consttype": "int", "constval": "400"} -,{ - "constname": "k_iSteamMatchmakingCallbacks","consttype": "int", "constval": "500"} -,{ - "constname": "k_iSteamContentServerCallbacks","consttype": "int", "constval": "600"} -,{ - "constname": "k_iSteamUtilsCallbacks","consttype": "int", "constval": "700"} -,{ - "constname": "k_iClientFriendsCallbacks","consttype": "int", "constval": "800"} -,{ - "constname": "k_iClientUserCallbacks","consttype": "int", "constval": "900"} -,{ - "constname": "k_iSteamAppsCallbacks","consttype": "int", "constval": "1000"} -,{ - "constname": "k_iSteamUserStatsCallbacks","consttype": "int", "constval": "1100"} -,{ - "constname": "k_iSteamNetworkingCallbacks","consttype": "int", "constval": "1200"} -,{ - "constname": "k_iClientRemoteStorageCallbacks","consttype": "int", "constval": "1300"} -,{ - "constname": "k_iClientDepotBuilderCallbacks","consttype": "int", "constval": "1400"} -,{ - "constname": "k_iSteamGameServerItemsCallbacks","consttype": "int", "constval": "1500"} -,{ - "constname": "k_iClientUtilsCallbacks","consttype": "int", "constval": "1600"} -,{ - "constname": "k_iSteamGameCoordinatorCallbacks","consttype": "int", "constval": "1700"} -,{ - "constname": "k_iSteamGameServerStatsCallbacks","consttype": "int", "constval": "1800"} -,{ - "constname": "k_iSteam2AsyncCallbacks","consttype": "int", "constval": "1900"} -,{ - "constname": "k_iSteamGameStatsCallbacks","consttype": "int", "constval": "2000"} -,{ - "constname": "k_iClientHTTPCallbacks","consttype": "int", "constval": "2100"} -,{ - "constname": "k_iClientScreenshotsCallbacks","consttype": "int", "constval": "2200"} -,{ - "constname": "k_iSteamScreenshotsCallbacks","consttype": "int", "constval": "2300"} -,{ - "constname": "k_iClientAudioCallbacks","consttype": "int", "constval": "2400"} -,{ - "constname": "k_iClientUnifiedMessagesCallbacks","consttype": "int", "constval": "2500"} -,{ - "constname": "k_iSteamStreamLauncherCallbacks","consttype": "int", "constval": "2600"} -,{ - "constname": "k_iClientControllerCallbacks","consttype": "int", "constval": "2700"} -,{ - "constname": "k_iSteamControllerCallbacks","consttype": "int", "constval": "2800"} -,{ - "constname": "k_iClientParentalSettingsCallbacks","consttype": "int", "constval": "2900"} -,{ - "constname": "k_iClientDeviceAuthCallbacks","consttype": "int", "constval": "3000"} -,{ - "constname": "k_iClientNetworkDeviceManagerCallbacks","consttype": "int", "constval": "3100"} -,{ - "constname": "k_iClientMusicCallbacks","consttype": "int", "constval": "3200"} -,{ - "constname": "k_iClientRemoteClientManagerCallbacks","consttype": "int", "constval": "3300"} -,{ - "constname": "k_iClientUGCCallbacks","consttype": "int", "constval": "3400"} -,{ - "constname": "k_iSteamStreamClientCallbacks","consttype": "int", "constval": "3500"} -,{ - "constname": "k_IClientProductBuilderCallbacks","consttype": "int", "constval": "3600"} -,{ - "constname": "k_iClientShortcutsCallbacks","consttype": "int", "constval": "3700"} -,{ - "constname": "k_iClientRemoteControlManagerCallbacks","consttype": "int", "constval": "3800"} -,{ - "constname": "k_iSteamAppListCallbacks","consttype": "int", "constval": "3900"} -,{ - "constname": "k_iSteamMusicCallbacks","consttype": "int", "constval": "4000"} -,{ - "constname": "k_iSteamMusicRemoteCallbacks","consttype": "int", "constval": "4100"} -,{ - "constname": "k_iClientVRCallbacks","consttype": "int", "constval": "4200"} -,{ - "constname": "k_iClientGameNotificationCallbacks","consttype": "int", "constval": "4300"} -,{ - "constname": "k_iSteamGameNotificationCallbacks","consttype": "int", "constval": "4400"} -,{ - "constname": "k_iSteamHTMLSurfaceCallbacks","consttype": "int", "constval": "4500"} -,{ - "constname": "k_iClientVideoCallbacks","consttype": "int", "constval": "4600"} -,{ - "constname": "k_iClientInventoryCallbacks","consttype": "int", "constval": "4700"} -,{ - "constname": "k_iClientBluetoothManagerCallbacks","consttype": "int", "constval": "4800"} -,{ - "constname": "k_cchPersonaNameMax","consttype": "int", "constval": "128"} -,{ - "constname": "k_cwchPersonaNameMax","consttype": "int", "constval": "32"} -,{ - "constname": "k_cchMaxRichPresenceKeys","consttype": "int", "constval": "20"} -,{ - "constname": "k_cchMaxRichPresenceKeyLength","consttype": "int", "constval": "64"} -,{ - "constname": "k_cchMaxRichPresenceValueLength","consttype": "int", "constval": "256"} -,{ - "constname": "k_cchStatNameMax","consttype": "int", "constval": "128"} -,{ - "constname": "k_cchLeaderboardNameMax","consttype": "int", "constval": "128"} -,{ - "constname": "k_cLeaderboardDetailsMax","consttype": "int", "constval": "64"} -,{ - "constname": "k_InvalidUnifiedMessageHandle","consttype": "const ClientUnifiedMessageHandle", "constval": "0"} -,{ - "constname": "k_SteamItemInstanceIDInvalid","consttype": "const SteamItemInstanceID_t", "constval": "18446744073709551615"} -,{ - "constname": "k_SteamInventoryResultInvalid","consttype": "const SteamInventoryResult_t", "constval": "-1"} -], -"structs":[{"struct": "CSteamID","fields": [ -{ "fieldname": "m_steamid", "fieldtype": "union SteamID_t"}]} -,{"struct": "CSteamID::SteamID_t","fields": [ -{ "fieldname": "m_comp", "fieldtype": "struct SteamIDComponent_t"}, -{ "fieldname": "m_unAll64Bits", "fieldtype": "uint64"}]} -,{"struct": "CSteamID::SteamID_t::SteamIDComponent_t","fields": [ -{ "fieldname": "m_unAccountID", "fieldtype": "uint32"}, -{ "fieldname": "m_unAccountInstance", "fieldtype": "unsigned int"}, -{ "fieldname": "m_EAccountType", "fieldtype": "unsigned int"}, -{ "fieldname": "m_EUniverse", "fieldtype": "enum EUniverse"}]} -,{"struct": "CGameID::GameID_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "unsigned int"}, -{ "fieldname": "m_nType", "fieldtype": "unsigned int"}, -{ "fieldname": "m_nModID", "fieldtype": "unsigned int"}]} -,{"struct": "CGameID::(anonymous)","fields": [ -{ "fieldname": "m_ulGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_gameID", "fieldtype": "struct CGameID::GameID_t"}]} -,{"struct": "ValvePackingSentinel_t","fields": [ -{ "fieldname": "m_u32", "fieldtype": "uint32"}, -{ "fieldname": "m_u64", "fieldtype": "uint64"}, -{ "fieldname": "m_u16", "fieldtype": "uint16"}, -{ "fieldname": "m_d", "fieldtype": "double"}]} -,{"struct": "CallbackMsg_t","fields": [ -{ "fieldname": "m_hSteamUser", "fieldtype": "HSteamUser"}, -{ "fieldname": "m_iCallback", "fieldtype": "int"}, -{ "fieldname": "m_pubParam", "fieldtype": "uint8 *"}, -{ "fieldname": "m_cubParam", "fieldtype": "int"}]} -,{"struct": "SteamServerConnectFailure_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bStillRetrying", "fieldtype": "_Bool"}]} -,{"struct": "SteamServersDisconnected_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "ClientGameServerDeny_t","fields": [ -{ "fieldname": "m_uAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_unGameServerIP", "fieldtype": "uint32"}, -{ "fieldname": "m_usGameServerPort", "fieldtype": "uint16"}, -{ "fieldname": "m_bSecure", "fieldtype": "uint16"}, -{ "fieldname": "m_uReason", "fieldtype": "uint32"}]} -,{"struct": "ValidateAuthTicketResponse_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eAuthSessionResponse", "fieldtype": "enum EAuthSessionResponse"}, -{ "fieldname": "m_OwnerSteamID", "fieldtype": "class CSteamID"}]} -,{"struct": "MicroTxnAuthorizationResponse_t","fields": [ -{ "fieldname": "m_unAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_ulOrderID", "fieldtype": "uint64"}, -{ "fieldname": "m_bAuthorized", "fieldtype": "uint8"}]} -,{"struct": "EncryptedAppTicketResponse_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "GetAuthSessionTicketResponse_t","fields": [ -{ "fieldname": "m_hAuthTicket", "fieldtype": "HAuthTicket"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "GameWebCallback_t","fields": [ -{ "fieldname": "m_szURL", "fieldtype": "char [256]"}]} -,{"struct": "StoreAuthURLResponse_t","fields": [ -{ "fieldname": "m_szURL", "fieldtype": "char [512]"}]} -,{"struct": "FriendGameInfo_t","fields": [ -{ "fieldname": "m_gameID", "fieldtype": "class CGameID"}, -{ "fieldname": "m_unGameIP", "fieldtype": "uint32"}, -{ "fieldname": "m_usGamePort", "fieldtype": "uint16"}, -{ "fieldname": "m_usQueryPort", "fieldtype": "uint16"}, -{ "fieldname": "m_steamIDLobby", "fieldtype": "class CSteamID"}]} -,{"struct": "FriendSessionStateInfo_t","fields": [ -{ "fieldname": "m_uiOnlineSessionInstances", "fieldtype": "uint32"}, -{ "fieldname": "m_uiPublishedToFriendsSessionInstance", "fieldtype": "uint8"}]} -,{"struct": "PersonaStateChange_t","fields": [ -{ "fieldname": "m_ulSteamID", "fieldtype": "uint64"}, -{ "fieldname": "m_nChangeFlags", "fieldtype": "int"}]} -,{"struct": "GameOverlayActivated_t","fields": [ -{ "fieldname": "m_bActive", "fieldtype": "uint8"}]} -,{"struct": "GameServerChangeRequested_t","fields": [ -{ "fieldname": "m_rgchServer", "fieldtype": "char [64]"}, -{ "fieldname": "m_rgchPassword", "fieldtype": "char [64]"}]} -,{"struct": "GameLobbyJoinRequested_t","fields": [ -{ "fieldname": "m_steamIDLobby", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_steamIDFriend", "fieldtype": "class CSteamID"}]} -,{"struct": "AvatarImageLoaded_t","fields": [ -{ "fieldname": "m_steamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_iImage", "fieldtype": "int"}, -{ "fieldname": "m_iWide", "fieldtype": "int"}, -{ "fieldname": "m_iTall", "fieldtype": "int"}]} -,{"struct": "ClanOfficerListResponse_t","fields": [ -{ "fieldname": "m_steamIDClan", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_cOfficers", "fieldtype": "int"}, -{ "fieldname": "m_bSuccess", "fieldtype": "uint8"}]} -,{"struct": "FriendRichPresenceUpdate_t","fields": [ -{ "fieldname": "m_steamIDFriend", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "GameRichPresenceJoinRequested_t","fields": [ -{ "fieldname": "m_steamIDFriend", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_rgchConnect", "fieldtype": "char [256]"}]} -,{"struct": "GameConnectedClanChatMsg_t","fields": [ -{ "fieldname": "m_steamIDClanChat", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_iMessageID", "fieldtype": "int"}]} -,{"struct": "GameConnectedChatJoin_t","fields": [ -{ "fieldname": "m_steamIDClanChat", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "GameConnectedChatLeave_t","fields": [ -{ "fieldname": "m_steamIDClanChat", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_bKicked", "fieldtype": "_Bool"}, -{ "fieldname": "m_bDropped", "fieldtype": "_Bool"}]} -,{"struct": "DownloadClanActivityCountsResult_t","fields": [ -{ "fieldname": "m_bSuccess", "fieldtype": "_Bool"}]} -,{"struct": "JoinClanChatRoomCompletionResult_t","fields": [ -{ "fieldname": "m_steamIDClanChat", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eChatRoomEnterResponse", "fieldtype": "enum EChatRoomEnterResponse"}]} -,{"struct": "GameConnectedFriendChatMsg_t","fields": [ -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_iMessageID", "fieldtype": "int"}]} -,{"struct": "FriendsGetFollowerCount_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_nCount", "fieldtype": "int"}]} -,{"struct": "FriendsIsFollowing_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_bIsFollowing", "fieldtype": "_Bool"}]} -,{"struct": "FriendsEnumerateFollowingList_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_rgSteamID", "fieldtype": "class CSteamID [50]"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}]} -,{"struct": "SetPersonaNameResponse_t","fields": [ -{ "fieldname": "m_bSuccess", "fieldtype": "_Bool"}, -{ "fieldname": "m_bLocalSuccess", "fieldtype": "_Bool"}, -{ "fieldname": "m_result", "fieldtype": "enum EResult"}]} -,{"struct": "LowBatteryPower_t","fields": [ -{ "fieldname": "m_nMinutesBatteryLeft", "fieldtype": "uint8"}]} -,{"struct": "SteamAPICallCompleted_t","fields": [ -{ "fieldname": "m_hAsyncCall", "fieldtype": "SteamAPICall_t"}, -{ "fieldname": "m_iCallback", "fieldtype": "int"}, -{ "fieldname": "m_cubParam", "fieldtype": "uint32"}]} -,{"struct": "CheckFileSignature_t","fields": [ -{ "fieldname": "m_eCheckFileSignature", "fieldtype": "enum ECheckFileSignature"}]} -,{"struct": "GamepadTextInputDismissed_t","fields": [ -{ "fieldname": "m_bSubmitted", "fieldtype": "_Bool"}, -{ "fieldname": "m_unSubmittedText", "fieldtype": "uint32"}]} -,{"struct": "MatchMakingKeyValuePair_t","fields": [ -{ "fieldname": "m_szKey", "fieldtype": "char [256]"}, -{ "fieldname": "m_szValue", "fieldtype": "char [256]"}]} -,{"struct": "servernetadr_t","fields": [ -{ "fieldname": "m_usConnectionPort", "fieldtype": "uint16"}, -{ "fieldname": "m_usQueryPort", "fieldtype": "uint16"}, -{ "fieldname": "m_unIP", "fieldtype": "uint32"}]} -,{"struct": "gameserveritem_t","fields": [ -{ "fieldname": "m_NetAdr", "fieldtype": "class servernetadr_t"}, -{ "fieldname": "m_nPing", "fieldtype": "int"}, -{ "fieldname": "m_bHadSuccessfulResponse", "fieldtype": "_Bool"}, -{ "fieldname": "m_bDoNotRefresh", "fieldtype": "_Bool"}, -{ "fieldname": "m_szGameDir", "fieldtype": "char [32]"}, -{ "fieldname": "m_szMap", "fieldtype": "char [32]"}, -{ "fieldname": "m_szGameDescription", "fieldtype": "char [64]"}, -{ "fieldname": "m_nAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_nPlayers", "fieldtype": "int"}, -{ "fieldname": "m_nMaxPlayers", "fieldtype": "int"}, -{ "fieldname": "m_nBotPlayers", "fieldtype": "int"}, -{ "fieldname": "m_bPassword", "fieldtype": "_Bool"}, -{ "fieldname": "m_bSecure", "fieldtype": "_Bool"}, -{ "fieldname": "m_ulTimeLastPlayed", "fieldtype": "uint32"}, -{ "fieldname": "m_nServerVersion", "fieldtype": "int"}, -{ "fieldname": "m_szServerName", "fieldtype": "char [64]"}, -{ "fieldname": "m_szGameTags", "fieldtype": "char [128]"}, -{ "fieldname": "m_steamID", "fieldtype": "class CSteamID"}]} -,{"struct": "FavoritesListChanged_t","fields": [ -{ "fieldname": "m_nIP", "fieldtype": "uint32"}, -{ "fieldname": "m_nQueryPort", "fieldtype": "uint32"}, -{ "fieldname": "m_nConnPort", "fieldtype": "uint32"}, -{ "fieldname": "m_nAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_nFlags", "fieldtype": "uint32"}, -{ "fieldname": "m_bAdd", "fieldtype": "_Bool"}, -{ "fieldname": "m_unAccountId", "fieldtype": "AccountID_t"}]} -,{"struct": "LobbyInvite_t","fields": [ -{ "fieldname": "m_ulSteamIDUser", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulGameID", "fieldtype": "uint64"}]} -,{"struct": "LobbyEnter_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_rgfChatPermissions", "fieldtype": "uint32"}, -{ "fieldname": "m_bLocked", "fieldtype": "_Bool"}, -{ "fieldname": "m_EChatRoomEnterResponse", "fieldtype": "uint32"}]} -,{"struct": "LobbyDataUpdate_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDMember", "fieldtype": "uint64"}, -{ "fieldname": "m_bSuccess", "fieldtype": "uint8"}]} -,{"struct": "LobbyChatUpdate_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDUserChanged", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDMakingChange", "fieldtype": "uint64"}, -{ "fieldname": "m_rgfChatMemberStateChange", "fieldtype": "uint32"}]} -,{"struct": "LobbyChatMsg_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDUser", "fieldtype": "uint64"}, -{ "fieldname": "m_eChatEntryType", "fieldtype": "uint8"}, -{ "fieldname": "m_iChatID", "fieldtype": "uint32"}]} -,{"struct": "LobbyGameCreated_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDGameServer", "fieldtype": "uint64"}, -{ "fieldname": "m_unIP", "fieldtype": "uint32"}, -{ "fieldname": "m_usPort", "fieldtype": "uint16"}]} -,{"struct": "LobbyMatchList_t","fields": [ -{ "fieldname": "m_nLobbiesMatching", "fieldtype": "uint32"}]} -,{"struct": "LobbyKicked_t","fields": [ -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}, -{ "fieldname": "m_ulSteamIDAdmin", "fieldtype": "uint64"}, -{ "fieldname": "m_bKickedDueToDisconnect", "fieldtype": "uint8"}]} -,{"struct": "LobbyCreated_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_ulSteamIDLobby", "fieldtype": "uint64"}]} -,{"struct": "PSNGameBootInviteResult_t","fields": [ -{ "fieldname": "m_bGameBootInviteExists", "fieldtype": "_Bool"}, -{ "fieldname": "m_steamIDLobby", "fieldtype": "class CSteamID"}]} -,{"struct": "FavoritesListAccountsUpdated_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "SteamParamStringArray_t","fields": [ -{ "fieldname": "m_ppStrings", "fieldtype": "const char **"}, -{ "fieldname": "m_nNumStrings", "fieldtype": "int32"}]} -,{"struct": "RemoteStorageAppSyncedClient_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unNumDownloads", "fieldtype": "int"}]} -,{"struct": "RemoteStorageAppSyncedServer_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unNumUploads", "fieldtype": "int"}]} -,{"struct": "RemoteStorageAppSyncProgress_t","fields": [ -{ "fieldname": "m_rgchCurrentFile", "fieldtype": "char [260]"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_uBytesTransferredThisChunk", "fieldtype": "uint32"}, -{ "fieldname": "m_dAppPercentComplete", "fieldtype": "double"}, -{ "fieldname": "m_bUploading", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStorageAppSyncStatusCheck_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "RemoteStorageFileShareResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_hFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_rgchFilename", "fieldtype": "char [260]"}]} -,{"struct": "RemoteStoragePublishFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStorageDeletePublishedFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}]} -,{"struct": "RemoteStorageEnumerateUserPublishedFilesResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}]} -,{"struct": "RemoteStorageSubscribePublishedFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}]} -,{"struct": "RemoteStorageEnumerateUserSubscribedFilesResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}, -{ "fieldname": "m_rgRTimeSubscribed", "fieldtype": "uint32 [50]"}]} -,{"struct": "RemoteStorageUnsubscribePublishedFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}]} -,{"struct": "RemoteStorageUpdatePublishedFileResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStorageDownloadUGCResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_hFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_nSizeInBytes", "fieldtype": "int32"}, -{ "fieldname": "m_pchFileName", "fieldtype": "char [260]"}, -{ "fieldname": "m_ulSteamIDOwner", "fieldtype": "uint64"}]} -,{"struct": "RemoteStorageGetPublishedFileDetailsResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nCreatorAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_nConsumerAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_rgchTitle", "fieldtype": "char [129]"}, -{ "fieldname": "m_rgchDescription", "fieldtype": "char [8000]"}, -{ "fieldname": "m_hFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_hPreviewFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_ulSteamIDOwner", "fieldtype": "uint64"}, -{ "fieldname": "m_rtimeCreated", "fieldtype": "uint32"}, -{ "fieldname": "m_rtimeUpdated", "fieldtype": "uint32"}, -{ "fieldname": "m_eVisibility", "fieldtype": "enum ERemoteStoragePublishedFileVisibility"}, -{ "fieldname": "m_bBanned", "fieldtype": "_Bool"}, -{ "fieldname": "m_rgchTags", "fieldtype": "char [1025]"}, -{ "fieldname": "m_bTagsTruncated", "fieldtype": "_Bool"}, -{ "fieldname": "m_pchFileName", "fieldtype": "char [260]"}, -{ "fieldname": "m_nFileSize", "fieldtype": "int32"}, -{ "fieldname": "m_nPreviewFileSize", "fieldtype": "int32"}, -{ "fieldname": "m_rgchURL", "fieldtype": "char [256]"}, -{ "fieldname": "m_eFileType", "fieldtype": "enum EWorkshopFileType"}, -{ "fieldname": "m_bAcceptedForUse", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStorageEnumerateWorkshopFilesResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}, -{ "fieldname": "m_rgScore", "fieldtype": "float [50]"}, -{ "fieldname": "m_nAppId", "fieldtype": "AppId_t"}, -{ "fieldname": "m_unStartIndex", "fieldtype": "uint32"}]} -,{"struct": "RemoteStorageGetPublishedItemVoteDetailsResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nVotesFor", "fieldtype": "int32"}, -{ "fieldname": "m_nVotesAgainst", "fieldtype": "int32"}, -{ "fieldname": "m_nReports", "fieldtype": "int32"}, -{ "fieldname": "m_fScore", "fieldtype": "float"}]} -,{"struct": "RemoteStoragePublishedFileSubscribed_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "RemoteStoragePublishedFileUnsubscribed_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "RemoteStoragePublishedFileDeleted_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "RemoteStorageUpdateUserPublishedItemVoteResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}]} -,{"struct": "RemoteStorageUserVoteDetails_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eVote", "fieldtype": "enum EWorkshopVote"}]} -,{"struct": "RemoteStorageEnumerateUserSharedWorkshopFilesResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}]} -,{"struct": "RemoteStorageSetUserPublishedFileActionResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eAction", "fieldtype": "enum EWorkshopFileAction"}]} -,{"struct": "RemoteStorageEnumeratePublishedFilesByUserActionResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_eAction", "fieldtype": "enum EWorkshopFileAction"}, -{ "fieldname": "m_nResultsReturned", "fieldtype": "int32"}, -{ "fieldname": "m_nTotalResultCount", "fieldtype": "int32"}, -{ "fieldname": "m_rgPublishedFileId", "fieldtype": "PublishedFileId_t [50]"}, -{ "fieldname": "m_rgRTimeUpdated", "fieldtype": "uint32 [50]"}]} -,{"struct": "RemoteStoragePublishFileProgress_t","fields": [ -{ "fieldname": "m_dPercentFile", "fieldtype": "double"}, -{ "fieldname": "m_bPreview", "fieldtype": "_Bool"}]} -,{"struct": "RemoteStoragePublishedFileUpdated_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_ulUnused", "fieldtype": "uint64"}]} -,{"struct": "RemoteStorageFileWriteAsyncComplete_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "RemoteStorageFileReadAsyncComplete_t","fields": [ -{ "fieldname": "m_hFileReadAsync", "fieldtype": "SteamAPICall_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nOffset", "fieldtype": "uint32"}, -{ "fieldname": "m_cubRead", "fieldtype": "uint32"}]} -,{"struct": "LeaderboardEntry_t","fields": [ -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_nGlobalRank", "fieldtype": "int32"}, -{ "fieldname": "m_nScore", "fieldtype": "int32"}, -{ "fieldname": "m_cDetails", "fieldtype": "int32"}, -{ "fieldname": "m_hUGC", "fieldtype": "UGCHandle_t"}]} -,{"struct": "UserStatsReceived_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "UserStatsStored_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "UserAchievementStored_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_bGroupAchievement", "fieldtype": "_Bool"}, -{ "fieldname": "m_rgchAchievementName", "fieldtype": "char [128]"}, -{ "fieldname": "m_nCurProgress", "fieldtype": "uint32"}, -{ "fieldname": "m_nMaxProgress", "fieldtype": "uint32"}]} -,{"struct": "LeaderboardFindResult_t","fields": [ -{ "fieldname": "m_hSteamLeaderboard", "fieldtype": "SteamLeaderboard_t"}, -{ "fieldname": "m_bLeaderboardFound", "fieldtype": "uint8"}]} -,{"struct": "LeaderboardScoresDownloaded_t","fields": [ -{ "fieldname": "m_hSteamLeaderboard", "fieldtype": "SteamLeaderboard_t"}, -{ "fieldname": "m_hSteamLeaderboardEntries", "fieldtype": "SteamLeaderboardEntries_t"}, -{ "fieldname": "m_cEntryCount", "fieldtype": "int"}]} -,{"struct": "LeaderboardScoreUploaded_t","fields": [ -{ "fieldname": "m_bSuccess", "fieldtype": "uint8"}, -{ "fieldname": "m_hSteamLeaderboard", "fieldtype": "SteamLeaderboard_t"}, -{ "fieldname": "m_nScore", "fieldtype": "int32"}, -{ "fieldname": "m_bScoreChanged", "fieldtype": "uint8"}, -{ "fieldname": "m_nGlobalRankNew", "fieldtype": "int"}, -{ "fieldname": "m_nGlobalRankPrevious", "fieldtype": "int"}]} -,{"struct": "NumberOfCurrentPlayers_t","fields": [ -{ "fieldname": "m_bSuccess", "fieldtype": "uint8"}, -{ "fieldname": "m_cPlayers", "fieldtype": "int32"}]} -,{"struct": "UserStatsUnloaded_t","fields": [ -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "UserAchievementIconFetched_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "class CGameID"}, -{ "fieldname": "m_rgchAchievementName", "fieldtype": "char [128]"}, -{ "fieldname": "m_bAchieved", "fieldtype": "_Bool"}, -{ "fieldname": "m_nIconHandle", "fieldtype": "int"}]} -,{"struct": "GlobalAchievementPercentagesReady_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "LeaderboardUGCSet_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_hSteamLeaderboard", "fieldtype": "SteamLeaderboard_t"}]} -,{"struct": "PS3TrophiesInstalled_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_ulRequiredDiskSpace", "fieldtype": "uint64"}]} -,{"struct": "GlobalStatsReceived_t","fields": [ -{ "fieldname": "m_nGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "DlcInstalled_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "RegisterActivationCodeResponse_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum ERegisterActivationCodeResult"}, -{ "fieldname": "m_unPackageRegistered", "fieldtype": "uint32"}]} -,{"struct": "AppProofOfPurchaseKeyResponse_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nAppID", "fieldtype": "uint32"}, -{ "fieldname": "m_cchKeyLength", "fieldtype": "uint32"}, -{ "fieldname": "m_rgchKey", "fieldtype": "char [240]"}]} -,{"struct": "FileDetailsResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_ulFileSize", "fieldtype": "uint64"}, -{ "fieldname": "m_FileSHA", "fieldtype": "uint8 [20]"}, -{ "fieldname": "m_unFlags", "fieldtype": "uint32"}]} -,{"struct": "P2PSessionState_t","fields": [ -{ "fieldname": "m_bConnectionActive", "fieldtype": "uint8"}, -{ "fieldname": "m_bConnecting", "fieldtype": "uint8"}, -{ "fieldname": "m_eP2PSessionError", "fieldtype": "uint8"}, -{ "fieldname": "m_bUsingRelay", "fieldtype": "uint8"}, -{ "fieldname": "m_nBytesQueuedForSend", "fieldtype": "int32"}, -{ "fieldname": "m_nPacketsQueuedForSend", "fieldtype": "int32"}, -{ "fieldname": "m_nRemoteIP", "fieldtype": "uint32"}, -{ "fieldname": "m_nRemotePort", "fieldtype": "uint16"}]} -,{"struct": "P2PSessionRequest_t","fields": [ -{ "fieldname": "m_steamIDRemote", "fieldtype": "class CSteamID"}]} -,{"struct": "P2PSessionConnectFail_t","fields": [ -{ "fieldname": "m_steamIDRemote", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eP2PSessionError", "fieldtype": "uint8"}]} -,{"struct": "SocketStatusCallback_t","fields": [ -{ "fieldname": "m_hSocket", "fieldtype": "SNetSocket_t"}, -{ "fieldname": "m_hListenSocket", "fieldtype": "SNetListenSocket_t"}, -{ "fieldname": "m_steamIDRemote", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eSNetSocketState", "fieldtype": "int"}]} -,{"struct": "ScreenshotReady_t","fields": [ -{ "fieldname": "m_hLocal", "fieldtype": "ScreenshotHandle"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "VolumeHasChanged_t","fields": [ -{ "fieldname": "m_flNewVolume", "fieldtype": "float"}]} -,{"struct": "MusicPlayerWantsShuffled_t","fields": [ -{ "fieldname": "m_bShuffled", "fieldtype": "_Bool"}]} -,{"struct": "MusicPlayerWantsLooped_t","fields": [ -{ "fieldname": "m_bLooped", "fieldtype": "_Bool"}]} -,{"struct": "MusicPlayerWantsVolume_t","fields": [ -{ "fieldname": "m_flNewVolume", "fieldtype": "float"}]} -,{"struct": "MusicPlayerSelectsQueueEntry_t","fields": [ -{ "fieldname": "nID", "fieldtype": "int"}]} -,{"struct": "MusicPlayerSelectsPlaylistEntry_t","fields": [ -{ "fieldname": "nID", "fieldtype": "int"}]} -,{"struct": "MusicPlayerWantsPlayingRepeatStatus_t","fields": [ -{ "fieldname": "m_nPlayingRepeatStatus", "fieldtype": "int"}]} -,{"struct": "HTTPRequestCompleted_t","fields": [ -{ "fieldname": "m_hRequest", "fieldtype": "HTTPRequestHandle"}, -{ "fieldname": "m_ulContextValue", "fieldtype": "uint64"}, -{ "fieldname": "m_bRequestSuccessful", "fieldtype": "_Bool"}, -{ "fieldname": "m_eStatusCode", "fieldtype": "enum EHTTPStatusCode"}, -{ "fieldname": "m_unBodySize", "fieldtype": "uint32"}]} -,{"struct": "HTTPRequestHeadersReceived_t","fields": [ -{ "fieldname": "m_hRequest", "fieldtype": "HTTPRequestHandle"}, -{ "fieldname": "m_ulContextValue", "fieldtype": "uint64"}]} -,{"struct": "HTTPRequestDataReceived_t","fields": [ -{ "fieldname": "m_hRequest", "fieldtype": "HTTPRequestHandle"}, -{ "fieldname": "m_ulContextValue", "fieldtype": "uint64"}, -{ "fieldname": "m_cOffset", "fieldtype": "uint32"}, -{ "fieldname": "m_cBytesReceived", "fieldtype": "uint32"}]} -,{"struct": "SteamUnifiedMessagesSendMethodResult_t","fields": [ -{ "fieldname": "m_hHandle", "fieldtype": "ClientUnifiedMessageHandle"}, -{ "fieldname": "m_unContext", "fieldtype": "uint64"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unResponseSize", "fieldtype": "uint32"}]} -,{"struct": "ControllerAnalogActionData_t","fields": [ -{ "fieldname": "eMode", "fieldtype": "enum EControllerSourceMode"}, -{ "fieldname": "x", "fieldtype": "float"}, -{ "fieldname": "y", "fieldtype": "float"}, -{ "fieldname": "bActive", "fieldtype": "_Bool"}]} -,{"struct": "ControllerDigitalActionData_t","fields": [ -{ "fieldname": "bState", "fieldtype": "_Bool"}, -{ "fieldname": "bActive", "fieldtype": "_Bool"}]} -,{"struct": "ControllerMotionData_t","fields": [ -{ "fieldname": "rotQuatX", "fieldtype": "float"}, -{ "fieldname": "rotQuatY", "fieldtype": "float"}, -{ "fieldname": "rotQuatZ", "fieldtype": "float"}, -{ "fieldname": "rotQuatW", "fieldtype": "float"}, -{ "fieldname": "posAccelX", "fieldtype": "float"}, -{ "fieldname": "posAccelY", "fieldtype": "float"}, -{ "fieldname": "posAccelZ", "fieldtype": "float"}, -{ "fieldname": "rotVelX", "fieldtype": "float"}, -{ "fieldname": "rotVelY", "fieldtype": "float"}, -{ "fieldname": "rotVelZ", "fieldtype": "float"}]} -,{"struct": "SteamUGCDetails_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_eFileType", "fieldtype": "enum EWorkshopFileType"}, -{ "fieldname": "m_nCreatorAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_nConsumerAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_rgchTitle", "fieldtype": "char [129]"}, -{ "fieldname": "m_rgchDescription", "fieldtype": "char [8000]"}, -{ "fieldname": "m_ulSteamIDOwner", "fieldtype": "uint64"}, -{ "fieldname": "m_rtimeCreated", "fieldtype": "uint32"}, -{ "fieldname": "m_rtimeUpdated", "fieldtype": "uint32"}, -{ "fieldname": "m_rtimeAddedToUserList", "fieldtype": "uint32"}, -{ "fieldname": "m_eVisibility", "fieldtype": "enum ERemoteStoragePublishedFileVisibility"}, -{ "fieldname": "m_bBanned", "fieldtype": "_Bool"}, -{ "fieldname": "m_bAcceptedForUse", "fieldtype": "_Bool"}, -{ "fieldname": "m_bTagsTruncated", "fieldtype": "_Bool"}, -{ "fieldname": "m_rgchTags", "fieldtype": "char [1025]"}, -{ "fieldname": "m_hFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_hPreviewFile", "fieldtype": "UGCHandle_t"}, -{ "fieldname": "m_pchFileName", "fieldtype": "char [260]"}, -{ "fieldname": "m_nFileSize", "fieldtype": "int32"}, -{ "fieldname": "m_nPreviewFileSize", "fieldtype": "int32"}, -{ "fieldname": "m_rgchURL", "fieldtype": "char [256]"}, -{ "fieldname": "m_unVotesUp", "fieldtype": "uint32"}, -{ "fieldname": "m_unVotesDown", "fieldtype": "uint32"}, -{ "fieldname": "m_flScore", "fieldtype": "float"}, -{ "fieldname": "m_unNumChildren", "fieldtype": "uint32"}]} -,{"struct": "SteamUGCQueryCompleted_t","fields": [ -{ "fieldname": "m_handle", "fieldtype": "UGCQueryHandle_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unNumResultsReturned", "fieldtype": "uint32"}, -{ "fieldname": "m_unTotalMatchingResults", "fieldtype": "uint32"}, -{ "fieldname": "m_bCachedData", "fieldtype": "_Bool"}]} -,{"struct": "SteamUGCRequestUGCDetailsResult_t","fields": [ -{ "fieldname": "m_details", "fieldtype": "struct SteamUGCDetails_t"}, -{ "fieldname": "m_bCachedData", "fieldtype": "_Bool"}]} -,{"struct": "CreateItemResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype": "_Bool"}]} -,{"struct": "SubmitItemUpdateResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype": "_Bool"}]} -,{"struct": "DownloadItemResult_t","fields": [ -{ "fieldname": "m_unAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "UserFavoriteItemsListChanged_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bWasAddRequest", "fieldtype": "_Bool"}]} -,{"struct": "SetUserItemVoteResult_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bVoteUp", "fieldtype": "_Bool"}]} -,{"struct": "GetUserItemVoteResult_t","fields": [ -{ "fieldname": "m_nPublishedFileId", "fieldtype": "PublishedFileId_t"}, -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_bVotedUp", "fieldtype": "_Bool"}, -{ "fieldname": "m_bVotedDown", "fieldtype": "_Bool"}, -{ "fieldname": "m_bVoteSkipped", "fieldtype": "_Bool"}]} -,{"struct": "StartPlaytimeTrackingResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "StopPlaytimeTrackingResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "SteamAppInstalled_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "SteamAppUninstalled_t","fields": [ -{ "fieldname": "m_nAppID", "fieldtype": "AppId_t"}]} -,{"struct": "HTML_BrowserReady_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}]} -,{"struct": "HTML_NeedsPaint_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pBGRA", "fieldtype": "const char *"}, -{ "fieldname": "unWide", "fieldtype": "uint32"}, -{ "fieldname": "unTall", "fieldtype": "uint32"}, -{ "fieldname": "unUpdateX", "fieldtype": "uint32"}, -{ "fieldname": "unUpdateY", "fieldtype": "uint32"}, -{ "fieldname": "unUpdateWide", "fieldtype": "uint32"}, -{ "fieldname": "unUpdateTall", "fieldtype": "uint32"}, -{ "fieldname": "unScrollX", "fieldtype": "uint32"}, -{ "fieldname": "unScrollY", "fieldtype": "uint32"}, -{ "fieldname": "flPageScale", "fieldtype": "float"}, -{ "fieldname": "unPageSerial", "fieldtype": "uint32"}]} -,{"struct": "HTML_StartRequest_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "pchTarget", "fieldtype": "const char *"}, -{ "fieldname": "pchPostData", "fieldtype": "const char *"}, -{ "fieldname": "bIsRedirect", "fieldtype": "_Bool"}]} -,{"struct": "HTML_CloseBrowser_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}]} -,{"struct": "HTML_URLChanged_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "pchPostData", "fieldtype": "const char *"}, -{ "fieldname": "bIsRedirect", "fieldtype": "_Bool"}, -{ "fieldname": "pchPageTitle", "fieldtype": "const char *"}, -{ "fieldname": "bNewNavigation", "fieldtype": "_Bool"}]} -,{"struct": "HTML_FinishedRequest_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "pchPageTitle", "fieldtype": "const char *"}]} -,{"struct": "HTML_OpenLinkInNewTab_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}]} -,{"struct": "HTML_ChangedTitle_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchTitle", "fieldtype": "const char *"}]} -,{"struct": "HTML_SearchResults_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "unResults", "fieldtype": "uint32"}, -{ "fieldname": "unCurrentMatch", "fieldtype": "uint32"}]} -,{"struct": "HTML_CanGoBackAndForward_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "bCanGoBack", "fieldtype": "_Bool"}, -{ "fieldname": "bCanGoForward", "fieldtype": "_Bool"}]} -,{"struct": "HTML_HorizontalScroll_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "unScrollMax", "fieldtype": "uint32"}, -{ "fieldname": "unScrollCurrent", "fieldtype": "uint32"}, -{ "fieldname": "flPageScale", "fieldtype": "float"}, -{ "fieldname": "bVisible", "fieldtype": "_Bool"}, -{ "fieldname": "unPageSize", "fieldtype": "uint32"}]} -,{"struct": "HTML_VerticalScroll_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "unScrollMax", "fieldtype": "uint32"}, -{ "fieldname": "unScrollCurrent", "fieldtype": "uint32"}, -{ "fieldname": "flPageScale", "fieldtype": "float"}, -{ "fieldname": "bVisible", "fieldtype": "_Bool"}, -{ "fieldname": "unPageSize", "fieldtype": "uint32"}]} -,{"struct": "HTML_LinkAtPosition_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "x", "fieldtype": "uint32"}, -{ "fieldname": "y", "fieldtype": "uint32"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "bInput", "fieldtype": "_Bool"}, -{ "fieldname": "bLiveLink", "fieldtype": "_Bool"}]} -,{"struct": "HTML_JSAlert_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMessage", "fieldtype": "const char *"}]} -,{"struct": "HTML_JSConfirm_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMessage", "fieldtype": "const char *"}]} -,{"struct": "HTML_FileOpenDialog_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchTitle", "fieldtype": "const char *"}, -{ "fieldname": "pchInitialFile", "fieldtype": "const char *"}]} -,{"struct": "HTML_NewWindow_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchURL", "fieldtype": "const char *"}, -{ "fieldname": "unX", "fieldtype": "uint32"}, -{ "fieldname": "unY", "fieldtype": "uint32"}, -{ "fieldname": "unWide", "fieldtype": "uint32"}, -{ "fieldname": "unTall", "fieldtype": "uint32"}, -{ "fieldname": "unNewWindow_BrowserHandle", "fieldtype": "HHTMLBrowser"}]} -,{"struct": "HTML_SetCursor_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "eMouseCursor", "fieldtype": "uint32"}]} -,{"struct": "HTML_StatusText_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMsg", "fieldtype": "const char *"}]} -,{"struct": "HTML_ShowToolTip_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMsg", "fieldtype": "const char *"}]} -,{"struct": "HTML_UpdateToolTip_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}, -{ "fieldname": "pchMsg", "fieldtype": "const char *"}]} -,{"struct": "HTML_HideToolTip_t","fields": [ -{ "fieldname": "unBrowserHandle", "fieldtype": "HHTMLBrowser"}]} -,{"struct": "SteamItemDetails_t","fields": [ -{ "fieldname": "m_itemId", "fieldtype": "SteamItemInstanceID_t"}, -{ "fieldname": "m_iDefinition", "fieldtype": "SteamItemDef_t"}, -{ "fieldname": "m_unQuantity", "fieldtype": "uint16"}, -{ "fieldname": "m_unFlags", "fieldtype": "uint16"}]} -,{"struct": "SteamInventoryResultReady_t","fields": [ -{ "fieldname": "m_handle", "fieldtype": "SteamInventoryResult_t"}, -{ "fieldname": "m_result", "fieldtype": "enum EResult"}]} -,{"struct": "SteamInventoryFullUpdate_t","fields": [ -{ "fieldname": "m_handle", "fieldtype": "SteamInventoryResult_t"}]} -,{"struct": "BroadcastUploadStop_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EBroadcastUploadResult"}]} -,{"struct": "GetVideoURLResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unVideoAppID", "fieldtype": "AppId_t"}, -{ "fieldname": "m_rgchURL", "fieldtype": "char [256]"}]} -,{"struct": "CSteamAPIContext","fields": [ -{ "fieldname": "m_pSteamClient", "fieldtype": "class ISteamClient *"}, -{ "fieldname": "m_pSteamUser", "fieldtype": "class ISteamUser *"}, -{ "fieldname": "m_pSteamFriends", "fieldtype": "class ISteamFriends *"}, -{ "fieldname": "m_pSteamUtils", "fieldtype": "class ISteamUtils *"}, -{ "fieldname": "m_pSteamMatchmaking", "fieldtype": "class ISteamMatchmaking *"}, -{ "fieldname": "m_pSteamUserStats", "fieldtype": "class ISteamUserStats *"}, -{ "fieldname": "m_pSteamApps", "fieldtype": "class ISteamApps *"}, -{ "fieldname": "m_pSteamMatchmakingServers", "fieldtype": "class ISteamMatchmakingServers *"}, -{ "fieldname": "m_pSteamNetworking", "fieldtype": "class ISteamNetworking *"}, -{ "fieldname": "m_pSteamRemoteStorage", "fieldtype": "class ISteamRemoteStorage *"}, -{ "fieldname": "m_pSteamScreenshots", "fieldtype": "class ISteamScreenshots *"}, -{ "fieldname": "m_pSteamHTTP", "fieldtype": "class ISteamHTTP *"}, -{ "fieldname": "m_pSteamUnifiedMessages", "fieldtype": "class ISteamUnifiedMessages *"}, -{ "fieldname": "m_pController", "fieldtype": "class ISteamController *"}, -{ "fieldname": "m_pSteamUGC", "fieldtype": "class ISteamUGC *"}, -{ "fieldname": "m_pSteamAppList", "fieldtype": "class ISteamAppList *"}, -{ "fieldname": "m_pSteamMusic", "fieldtype": "class ISteamMusic *"}, -{ "fieldname": "m_pSteamMusicRemote", "fieldtype": "class ISteamMusicRemote *"}, -{ "fieldname": "m_pSteamHTMLSurface", "fieldtype": "class ISteamHTMLSurface *"}, -{ "fieldname": "m_pSteamInventory", "fieldtype": "class ISteamInventory *"}, -{ "fieldname": "m_pSteamVideo", "fieldtype": "class ISteamVideo *"}]} -,{"struct": "CCallbackBase","fields": [ -{ "fieldname": "m_nCallbackFlags", "fieldtype": "uint8"}, -{ "fieldname": "m_iCallback", "fieldtype": "int"}]} -,{"struct": "CCallResult","fields": [ -{ "fieldname": "m_hAPICall", "fieldtype": "SteamAPICall_t"}, -{ "fieldname": "m_pObj", "fieldtype": "T *"}, -{ "fieldname": "m_Func", "fieldtype": "func_t"}]} -,{"struct": "CCallback","fields": [ -{ "fieldname": "m_pObj", "fieldtype": "T *"}, -{ "fieldname": "m_Func", "fieldtype": "func_t"}]} -,{"struct": "GSClientApprove_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_OwnerSteamID", "fieldtype": "class CSteamID"}]} -,{"struct": "GSClientDeny_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eDenyReason", "fieldtype": "enum EDenyReason"}, -{ "fieldname": "m_rgchOptionalText", "fieldtype": "char [128]"}]} -,{"struct": "GSClientKick_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_eDenyReason", "fieldtype": "enum EDenyReason"}]} -,{"struct": "GSClientAchievementStatus_t","fields": [ -{ "fieldname": "m_SteamID", "fieldtype": "uint64"}, -{ "fieldname": "m_pchAchievement", "fieldtype": "char [128]"}, -{ "fieldname": "m_bUnlocked", "fieldtype": "_Bool"}]} -,{"struct": "GSPolicyResponse_t","fields": [ -{ "fieldname": "m_bSecure", "fieldtype": "uint8"}]} -,{"struct": "GSGameplayStats_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_nRank", "fieldtype": "int32"}, -{ "fieldname": "m_unTotalConnects", "fieldtype": "uint32"}, -{ "fieldname": "m_unTotalMinutesPlayed", "fieldtype": "uint32"}]} -,{"struct": "GSClientGroupStatus_t","fields": [ -{ "fieldname": "m_SteamIDUser", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_SteamIDGroup", "fieldtype": "class CSteamID"}, -{ "fieldname": "m_bMember", "fieldtype": "_Bool"}, -{ "fieldname": "m_bOfficer", "fieldtype": "_Bool"}]} -,{"struct": "GSReputation_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_unReputationScore", "fieldtype": "uint32"}, -{ "fieldname": "m_bBanned", "fieldtype": "_Bool"}, -{ "fieldname": "m_unBannedIP", "fieldtype": "uint32"}, -{ "fieldname": "m_usBannedPort", "fieldtype": "uint16"}, -{ "fieldname": "m_ulBannedGameID", "fieldtype": "uint64"}, -{ "fieldname": "m_unBanExpires", "fieldtype": "uint32"}]} -,{"struct": "AssociateWithClanResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}]} -,{"struct": "ComputeNewPlayerCompatibilityResult_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_cPlayersThatDontLikeCandidate", "fieldtype": "int"}, -{ "fieldname": "m_cPlayersThatCandidateDoesntLike", "fieldtype": "int"}, -{ "fieldname": "m_cClanPlayersThatDontLikeCandidate", "fieldtype": "int"}, -{ "fieldname": "m_SteamIDCandidate", "fieldtype": "class CSteamID"}]} -,{"struct": "GSStatsReceived_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "GSStatsStored_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -,{"struct": "GSStatsUnloaded_t","fields": [ -{ "fieldname": "m_steamIDUser", "fieldtype": "class CSteamID"}]} -], -"methods":[{ - "classname": "ISteamClient", - "methodname": "CreateSteamPipe", - "returntype": "HSteamPipe" +{ + "callback_structs": [ + { + "callback_id": 101, + "fields": [], + "struct": "SteamServersConnected_t" + }, + { + "callback_id": 102, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bStillRetrying", "fieldtype":"bool" } + ], + "struct": "SteamServerConnectFailure_t" + }, + { + "callback_id": 103, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "SteamServersDisconnected_t" + }, + { + "callback_id": 113, + "fields": [ + { "fieldname":"m_uAppID", "fieldtype":"uint32" }, + { "fieldname":"m_unGameServerIP", "fieldtype":"uint32" }, + { "fieldname":"m_usGameServerPort", "fieldtype":"uint16" }, + { "fieldname":"m_bSecure", "fieldtype":"uint16" }, + { "fieldname":"m_uReason", "fieldtype":"uint32" } + ], + "struct": "ClientGameServerDeny_t" + }, + { + "callback_id": 117, + "enums": [ + { + "enumname": "EFailureType", + "fqname": "IPCFailure_t::EFailureType", + "values": [ + { "name":"k_EFailureFlushedCallbackQueue", "value":"0" }, + { "name":"k_EFailurePipeFail", "value":"1" } + ] + } + ], + "fields": [ + { "fieldname":"m_eFailureType", "fieldtype":"uint8" } + ], + "struct": "IPCFailure_t" + }, + { + "callback_id": 125, + "fields": [], + "struct": "LicensesUpdated_t" + }, + { + "callback_id": 143, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_eAuthSessionResponse", "fieldtype":"EAuthSessionResponse" }, + { "fieldname":"m_OwnerSteamID", "fieldtype":"CSteamID" } + ], + "struct": "ValidateAuthTicketResponse_t" + }, + { + "callback_id": 152, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"uint32" }, + { "fieldname":"m_ulOrderID", "fieldtype":"uint64" }, + { "fieldname":"m_bAuthorized", "fieldtype":"uint8" } + ], + "struct": "MicroTxnAuthorizationResponse_t" + }, + { + "callback_id": 154, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "EncryptedAppTicketResponse_t" + }, + { + "callback_id": 163, + "fields": [ + { "fieldname":"m_hAuthTicket", "fieldtype":"HAuthTicket" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "GetAuthSessionTicketResponse_t" + }, + { + "callback_id": 164, + "fields": [ + { "fieldname":"m_szURL", "fieldtype":"char [256]" } + ], + "struct": "GameWebCallback_t" + }, + { + "callback_id": 165, + "fields": [ + { "fieldname":"m_szURL", "fieldtype":"char [512]" } + ], + "struct": "StoreAuthURLResponse_t" + }, + { + "callback_id": 166, + "fields": [ + { "fieldname":"m_bAllowed", "fieldtype":"bool" }, + { "fieldname":"m_eNotAllowedReason", "fieldtype":"EMarketNotAllowedReasonFlags" }, + { "fieldname":"m_rtAllowedAtTime", "fieldtype":"RTime32" }, + { "fieldname":"m_cdaySteamGuardRequiredDays", "fieldtype":"int" }, + { "fieldname":"m_cdayNewDeviceCooldown", "fieldtype":"int" } + ], + "struct": "MarketEligibilityResponse_t" + }, + { + "callback_id": 167, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_appid", "fieldtype":"AppId_t" }, + { "fieldname":"m_bApplicable", "fieldtype":"bool" }, + { "fieldname":"m_csecsLast5h", "fieldtype":"int32" }, + { "fieldname":"m_progress", "fieldtype":"EDurationControlProgress" }, + { "fieldname":"m_notification", "fieldtype":"EDurationControlNotification" }, + { "fieldname":"m_csecsToday", "fieldtype":"int32" }, + { "fieldname":"m_csecsRemaining", "fieldtype":"int32" } + ], + "struct": "DurationControl_t" + }, + { + "callback_id": 168, + "fields": [ + { "fieldname":"m_hAuthTicket", "fieldtype":"HAuthTicket" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_cubTicket", "fieldtype":"int" }, + { "fieldname":"m_rgubTicket", "fieldtype":"uint8 [2560]" } + ], + "struct": "GetTicketForWebApiResponse_t" + }, + { + "callback_id": 304, + "fields": [ + { "fieldname":"m_ulSteamID", "fieldtype":"uint64" }, + { "fieldname":"m_nChangeFlags", "fieldtype":"int" } + ], + "struct": "PersonaStateChange_t" + }, + { + "callback_id": 331, + "fields": [ + { "fieldname":"m_bActive", "fieldtype":"uint8" }, + { "fieldname":"m_bUserInitiated", "fieldtype":"bool" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_dwOverlayPID", "fieldtype":"uint32" } + ], + "struct": "GameOverlayActivated_t" + }, + { + "callback_id": 332, + "fields": [ + { "fieldname":"m_rgchServer", "fieldtype":"char [64]" }, + { "fieldname":"m_rgchPassword", "fieldtype":"char [64]" } + ], + "struct": "GameServerChangeRequested_t" + }, + { + "callback_id": 333, + "fields": [ + { "fieldname":"m_steamIDLobby", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDFriend", "fieldtype":"CSteamID" } + ], + "struct": "GameLobbyJoinRequested_t" + }, + { + "callback_id": 334, + "fields": [ + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_iImage", "fieldtype":"int" }, + { "fieldname":"m_iWide", "fieldtype":"int" }, + { "fieldname":"m_iTall", "fieldtype":"int" } + ], + "struct": "AvatarImageLoaded_t" + }, + { + "callback_id": 335, + "fields": [ + { "fieldname":"m_steamIDClan", "fieldtype":"CSteamID" }, + { "fieldname":"m_cOfficers", "fieldtype":"int" }, + { "fieldname":"m_bSuccess", "fieldtype":"uint8" } + ], + "struct": "ClanOfficerListResponse_t" + }, + { + "callback_id": 336, + "fields": [ + { "fieldname":"m_steamIDFriend", "fieldtype":"CSteamID" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "FriendRichPresenceUpdate_t" + }, + { + "callback_id": 337, + "fields": [ + { "fieldname":"m_steamIDFriend", "fieldtype":"CSteamID" }, + { "fieldname":"m_rgchConnect", "fieldtype":"char [256]" } + ], + "struct": "GameRichPresenceJoinRequested_t" + }, + { + "callback_id": 338, + "fields": [ + { "fieldname":"m_steamIDClanChat", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_iMessageID", "fieldtype":"int" } + ], + "struct": "GameConnectedClanChatMsg_t" + }, + { + "callback_id": 339, + "fields": [ + { "fieldname":"m_steamIDClanChat", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "GameConnectedChatJoin_t" + }, + { + "callback_id": 340, + "fields": [ + { "fieldname":"m_steamIDClanChat", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_bKicked", "fieldtype":"bool" }, + { "fieldname":"m_bDropped", "fieldtype":"bool" } + ], + "struct": "GameConnectedChatLeave_t" + }, + { + "callback_id": 341, + "fields": [ + { "fieldname":"m_bSuccess", "fieldtype":"bool" } + ], + "struct": "DownloadClanActivityCountsResult_t" + }, + { + "callback_id": 342, + "fields": [ + { "fieldname":"m_steamIDClanChat", "fieldtype":"CSteamID" }, + { "fieldname":"m_eChatRoomEnterResponse", "fieldtype":"EChatRoomEnterResponse" } + ], + "struct": "JoinClanChatRoomCompletionResult_t" + }, + { + "callback_id": 343, + "fields": [ + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_iMessageID", "fieldtype":"int" } + ], + "struct": "GameConnectedFriendChatMsg_t" + }, + { + "callback_id": 344, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_nCount", "fieldtype":"int" } + ], + "struct": "FriendsGetFollowerCount_t" + }, + { + "callback_id": 345, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_bIsFollowing", "fieldtype":"bool" } + ], + "struct": "FriendsIsFollowing_t" + }, + { + "callback_id": 346, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_rgSteamID", "fieldtype":"CSteamID [50]" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" } + ], + "struct": "FriendsEnumerateFollowingList_t" + }, + { + "callback_id": 347, + "fields": [ + { "fieldname":"m_bSuccess", "fieldtype":"bool" }, + { "fieldname":"m_bLocalSuccess", "fieldtype":"bool" }, + { "fieldname":"m_result", "fieldtype":"EResult" } + ], + "struct": "SetPersonaNameResponse_t" + }, + { + "callback_id": 348, + "fields": [], + "struct": "UnreadChatMessagesChanged_t" + }, + { + "callback_id": 349, + "fields": [ + { "fieldname":"rgchURI", "fieldtype":"char [1024]" } + ], + "struct": "OverlayBrowserProtocolNavigation_t" + }, + { + "callback_id": 350, + "fields": [ + { "fieldname":"m_steamID", "fieldtype":"CSteamID" } + ], + "struct": "EquippedProfileItemsChanged_t" + }, + { + "callback_id": 351, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_bHasAnimatedAvatar", "fieldtype":"bool" }, + { "fieldname":"m_bHasAvatarFrame", "fieldtype":"bool" }, + { "fieldname":"m_bHasProfileModifier", "fieldtype":"bool" }, + { "fieldname":"m_bHasProfileBackground", "fieldtype":"bool" }, + { "fieldname":"m_bHasMiniProfileBackground", "fieldtype":"bool" } + ], + "struct": "EquippedProfileItems_t" + }, + { + "callback_id": 701, + "fields": [], + "struct": "IPCountry_t" + }, + { + "callback_id": 702, + "fields": [ + { "fieldname":"m_nMinutesBatteryLeft", "fieldtype":"uint8" } + ], + "struct": "LowBatteryPower_t" + }, + { + "callback_id": 703, + "fields": [ + { "fieldname":"m_hAsyncCall", "fieldtype":"SteamAPICall_t" }, + { "fieldname":"m_iCallback", "fieldtype":"int" }, + { "fieldname":"m_cubParam", "fieldtype":"uint32" } + ], + "struct": "SteamAPICallCompleted_t" + }, + { + "callback_id": 704, + "fields": [], + "struct": "SteamShutdown_t" + }, + { + "callback_id": 705, + "fields": [ + { "fieldname":"m_eCheckFileSignature", "fieldtype":"ECheckFileSignature" } + ], + "struct": "CheckFileSignature_t" + }, + { + "callback_id": 714, + "fields": [ + { "fieldname":"m_bSubmitted", "fieldtype":"bool" }, + { "fieldname":"m_unSubmittedText", "fieldtype":"uint32" }, + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" } + ], + "struct": "GamepadTextInputDismissed_t" + }, + { + "callback_id": 736, + "fields": [], + "struct": "AppResumingFromSuspend_t" + }, + { + "callback_id": 738, + "fields": [], + "struct": "FloatingGamepadTextInputDismissed_t" + }, + { + "callback_id": 739, + "fields": [ + { "fieldname":"m_eLanguage", "fieldtype":"int" } + ], + "struct": "FilterTextDictionaryChanged_t" + }, + { + "callback_id": 502, + "fields": [ + { "fieldname":"m_nIP", "fieldtype":"uint32" }, + { "fieldname":"m_nQueryPort", "fieldtype":"uint32" }, + { "fieldname":"m_nConnPort", "fieldtype":"uint32" }, + { "fieldname":"m_nAppID", "fieldtype":"uint32" }, + { "fieldname":"m_nFlags", "fieldtype":"uint32" }, + { "fieldname":"m_bAdd", "fieldtype":"bool" }, + { "fieldname":"m_unAccountId", "fieldtype":"AccountID_t" } + ], + "struct": "FavoritesListChanged_t" + }, + { + "callback_id": 503, + "fields": [ + { "fieldname":"m_ulSteamIDUser", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulGameID", "fieldtype":"uint64" } + ], + "struct": "LobbyInvite_t" + }, + { + "callback_id": 504, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_rgfChatPermissions", "fieldtype":"uint32" }, + { "fieldname":"m_bLocked", "fieldtype":"bool" }, + { "fieldname":"m_EChatRoomEnterResponse", "fieldtype":"uint32" } + ], + "struct": "LobbyEnter_t" + }, + { + "callback_id": 505, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDMember", "fieldtype":"uint64" }, + { "fieldname":"m_bSuccess", "fieldtype":"uint8" } + ], + "struct": "LobbyDataUpdate_t" + }, + { + "callback_id": 506, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDUserChanged", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDMakingChange", "fieldtype":"uint64" }, + { "fieldname":"m_rgfChatMemberStateChange", "fieldtype":"uint32" } + ], + "struct": "LobbyChatUpdate_t" + }, + { + "callback_id": 507, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDUser", "fieldtype":"uint64" }, + { "fieldname":"m_eChatEntryType", "fieldtype":"uint8" }, + { "fieldname":"m_iChatID", "fieldtype":"uint32" } + ], + "struct": "LobbyChatMsg_t" + }, + { + "callback_id": 509, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDGameServer", "fieldtype":"uint64" }, + { "fieldname":"m_unIP", "fieldtype":"uint32" }, + { "fieldname":"m_usPort", "fieldtype":"uint16" } + ], + "struct": "LobbyGameCreated_t" + }, + { + "callback_id": 510, + "fields": [ + { "fieldname":"m_nLobbiesMatching", "fieldtype":"uint32" } + ], + "struct": "LobbyMatchList_t" + }, + { + "callback_id": 512, + "fields": [ + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" }, + { "fieldname":"m_ulSteamIDAdmin", "fieldtype":"uint64" }, + { "fieldname":"m_bKickedDueToDisconnect", "fieldtype":"uint8" } + ], + "struct": "LobbyKicked_t" + }, + { + "callback_id": 513, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulSteamIDLobby", "fieldtype":"uint64" } + ], + "struct": "LobbyCreated_t" + }, + { + "callback_id": 515, + "fields": [ + { "fieldname":"m_bGameBootInviteExists", "fieldtype":"bool" }, + { "fieldname":"m_steamIDLobby", "fieldtype":"CSteamID" } + ], + "struct": "PSNGameBootInviteResult_t" + }, + { + "callback_id": 516, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "FavoritesListAccountsUpdated_t" + }, + { + "callback_id": 5201, + "fields": [ + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_lobbyID", "fieldtype":"CSteamID" }, + { "fieldname":"m_steamIDEndedSearch", "fieldtype":"CSteamID" }, + { "fieldname":"m_nSecondsRemainingEstimate", "fieldtype":"int32" }, + { "fieldname":"m_cPlayersSearching", "fieldtype":"int32" } + ], + "struct": "SearchForGameProgressCallback_t" + }, + { + "callback_id": 5202, + "fields": [ + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nCountPlayersInGame", "fieldtype":"int32" }, + { "fieldname":"m_nCountAcceptedGame", "fieldtype":"int32" }, + { "fieldname":"m_steamIDHost", "fieldtype":"CSteamID" }, + { "fieldname":"m_bFinalCallback", "fieldtype":"bool" } + ], + "struct": "SearchForGameResultCallback_t" + }, + { + "callback_id": 5211, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" } + ], + "struct": "RequestPlayersForGameProgressCallback_t" + }, + { + "callback_id": 5212, + "enums": [ + { + "enumname": "PlayerAcceptState_t", + "fqname": "RequestPlayersForGameResultCallback_t::PlayerAcceptState_t", + "values": [ + { "name":"k_EStateUnknown", "value":"0" }, + { "name":"k_EStatePlayerAccepted", "value":"1" }, + { "name":"k_EStatePlayerDeclined", "value":"2" } + ] + } + ], + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" }, + { "fieldname":"m_SteamIDPlayerFound", "fieldtype":"CSteamID" }, + { "fieldname":"m_SteamIDLobby", "fieldtype":"CSteamID" }, + { "fieldname":"m_ePlayerAcceptState", "fieldtype":"RequestPlayersForGameResultCallback_t::PlayerAcceptState_t" }, + { "fieldname":"m_nPlayerIndex", "fieldtype":"int32" }, + { "fieldname":"m_nTotalPlayersFound", "fieldtype":"int32" }, + { "fieldname":"m_nTotalPlayersAcceptedGame", "fieldtype":"int32" }, + { "fieldname":"m_nSuggestedTeamIndex", "fieldtype":"int32" }, + { "fieldname":"m_ullUniqueGameID", "fieldtype":"uint64" } + ], + "struct": "RequestPlayersForGameResultCallback_t" + }, + { + "callback_id": 5213, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ullSearchID", "fieldtype":"uint64" }, + { "fieldname":"m_ullUniqueGameID", "fieldtype":"uint64" } + ], + "struct": "RequestPlayersForGameFinalResultCallback_t" + }, + { + "callback_id": 5214, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"ullUniqueGameID", "fieldtype":"uint64" }, + { "fieldname":"steamIDPlayer", "fieldtype":"CSteamID" } + ], + "struct": "SubmitPlayerResultResultCallback_t" + }, + { + "callback_id": 5215, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"ullUniqueGameID", "fieldtype":"uint64" } + ], + "struct": "EndGameResultCallback_t" + }, + { + "callback_id": 5301, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulBeaconID", "fieldtype":"PartyBeaconID_t" }, + { "fieldname":"m_SteamIDBeaconOwner", "fieldtype":"CSteamID" }, + { "fieldname":"m_rgchConnectString", "fieldtype":"char [256]" } + ], + "struct": "JoinPartyCallback_t" + }, + { + "callback_id": 5302, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulBeaconID", "fieldtype":"PartyBeaconID_t" } + ], + "struct": "CreateBeaconCallback_t" + }, + { + "callback_id": 5303, + "fields": [ + { "fieldname":"m_ulBeaconID", "fieldtype":"PartyBeaconID_t" }, + { "fieldname":"m_steamIDJoiner", "fieldtype":"CSteamID" } + ], + "struct": "ReservationNotificationCallback_t" + }, + { + "callback_id": 5304, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "ChangeNumOpenSlotsCallback_t" + }, + { + "callback_id": 5305, + "fields": [], + "struct": "AvailableBeaconLocationsUpdated_t" + }, + { + "callback_id": 5306, + "fields": [], + "struct": "ActiveBeaconsUpdated_t" + }, + { + "callback_id": 1307, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_hFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_rgchFilename", "fieldtype":"char [260]" } + ], + "struct": "RemoteStorageFileShareResult_t" + }, + { + "callback_id": 1309, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype":"bool" } + ], + "struct": "RemoteStoragePublishFileResult_t" + }, + { + "callback_id": 1311, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoteStorageDeletePublishedFileResult_t" + }, + { + "callback_id": 1312, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" } + ], + "struct": "RemoteStorageEnumerateUserPublishedFilesResult_t" + }, + { + "callback_id": 1313, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoteStorageSubscribePublishedFileResult_t" + }, + { + "callback_id": 1314, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" }, + { "fieldname":"m_rgRTimeSubscribed", "fieldtype":"uint32 [50]" } + ], + "struct": "RemoteStorageEnumerateUserSubscribedFilesResult_t" + }, + { + "callback_id": 1315, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoteStorageUnsubscribePublishedFileResult_t" + }, + { + "callback_id": 1316, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype":"bool" } + ], + "struct": "RemoteStorageUpdatePublishedFileResult_t" + }, + { + "callback_id": 1317, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_hFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nSizeInBytes", "fieldtype":"int32" }, + { "fieldname":"m_pchFileName", "fieldtype":"char [260]" }, + { "fieldname":"m_ulSteamIDOwner", "fieldtype":"uint64" } + ], + "struct": "RemoteStorageDownloadUGCResult_t" + }, + { + "callback_id": 1318, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nCreatorAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nConsumerAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_rgchTitle", "fieldtype":"char [129]" }, + { "fieldname":"m_rgchDescription", "fieldtype":"char [8000]" }, + { "fieldname":"m_hFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_hPreviewFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_ulSteamIDOwner", "fieldtype":"uint64" }, + { "fieldname":"m_rtimeCreated", "fieldtype":"uint32" }, + { "fieldname":"m_rtimeUpdated", "fieldtype":"uint32" }, + { "fieldname":"m_eVisibility", "fieldtype":"ERemoteStoragePublishedFileVisibility" }, + { "fieldname":"m_bBanned", "fieldtype":"bool" }, + { "fieldname":"m_rgchTags", "fieldtype":"char [1025]" }, + { "fieldname":"m_bTagsTruncated", "fieldtype":"bool" }, + { "fieldname":"m_pchFileName", "fieldtype":"char [260]" }, + { "fieldname":"m_nFileSize", "fieldtype":"int32" }, + { "fieldname":"m_nPreviewFileSize", "fieldtype":"int32" }, + { "fieldname":"m_rgchURL", "fieldtype":"char [256]" }, + { "fieldname":"m_eFileType", "fieldtype":"EWorkshopFileType" }, + { "fieldname":"m_bAcceptedForUse", "fieldtype":"bool" } + ], + "struct": "RemoteStorageGetPublishedFileDetailsResult_t" + }, + { + "callback_id": 1319, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" }, + { "fieldname":"m_rgScore", "fieldtype":"float [50]" }, + { "fieldname":"m_nAppId", "fieldtype":"AppId_t" }, + { "fieldname":"m_unStartIndex", "fieldtype":"uint32" } + ], + "struct": "RemoteStorageEnumerateWorkshopFilesResult_t" + }, + { + "callback_id": 1320, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nVotesFor", "fieldtype":"int32" }, + { "fieldname":"m_nVotesAgainst", "fieldtype":"int32" }, + { "fieldname":"m_nReports", "fieldtype":"int32" }, + { "fieldname":"m_fScore", "fieldtype":"float" } + ], + "struct": "RemoteStorageGetPublishedItemVoteDetailsResult_t" + }, + { + "callback_id": 1321, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "RemoteStoragePublishedFileSubscribed_t" + }, + { + "callback_id": 1322, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "RemoteStoragePublishedFileUnsubscribed_t" + }, + { + "callback_id": 1323, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "RemoteStoragePublishedFileDeleted_t" + }, + { + "callback_id": 1324, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoteStorageUpdateUserPublishedItemVoteResult_t" + }, + { + "callback_id": 1325, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eVote", "fieldtype":"EWorkshopVote" } + ], + "struct": "RemoteStorageUserVoteDetails_t" + }, + { + "callback_id": 1326, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" } + ], + "struct": "RemoteStorageEnumerateUserSharedWorkshopFilesResult_t" + }, + { + "callback_id": 1327, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eAction", "fieldtype":"EWorkshopFileAction" } + ], + "struct": "RemoteStorageSetUserPublishedFileActionResult_t" + }, + { + "callback_id": 1328, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_eAction", "fieldtype":"EWorkshopFileAction" }, + { "fieldname":"m_nResultsReturned", "fieldtype":"int32" }, + { "fieldname":"m_nTotalResultCount", "fieldtype":"int32" }, + { "fieldname":"m_rgPublishedFileId", "fieldtype":"PublishedFileId_t [50]" }, + { "fieldname":"m_rgRTimeUpdated", "fieldtype":"uint32 [50]" } + ], + "struct": "RemoteStorageEnumeratePublishedFilesByUserActionResult_t" + }, + { + "callback_id": 1329, + "fields": [ + { "fieldname":"m_dPercentFile", "fieldtype":"double" }, + { "fieldname":"m_bPreview", "fieldtype":"bool" } + ], + "struct": "RemoteStoragePublishFileProgress_t" + }, + { + "callback_id": 1330, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_ulUnused", "fieldtype":"uint64" } + ], + "struct": "RemoteStoragePublishedFileUpdated_t" + }, + { + "callback_id": 1331, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "RemoteStorageFileWriteAsyncComplete_t" + }, + { + "callback_id": 1332, + "fields": [ + { "fieldname":"m_hFileReadAsync", "fieldtype":"SteamAPICall_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nOffset", "fieldtype":"uint32" }, + { "fieldname":"m_cubRead", "fieldtype":"uint32" } + ], + "struct": "RemoteStorageFileReadAsyncComplete_t" + }, + { + "callback_id": 1333, + "fields": [], + "struct": "RemoteStorageLocalFileChange_t" + }, + { + "callback_id": 1101, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "UserStatsReceived_t" + }, + { + "callback_id": 1102, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "UserStatsStored_t" + }, + { + "callback_id": 1103, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_bGroupAchievement", "fieldtype":"bool" }, + { "fieldname":"m_rgchAchievementName", "fieldtype":"char [128]" }, + { "fieldname":"m_nCurProgress", "fieldtype":"uint32" }, + { "fieldname":"m_nMaxProgress", "fieldtype":"uint32" } + ], + "struct": "UserAchievementStored_t" + }, + { + "callback_id": 1104, + "fields": [ + { "fieldname":"m_hSteamLeaderboard", "fieldtype":"SteamLeaderboard_t" }, + { "fieldname":"m_bLeaderboardFound", "fieldtype":"uint8" } + ], + "struct": "LeaderboardFindResult_t" + }, + { + "callback_id": 1105, + "fields": [ + { "fieldname":"m_hSteamLeaderboard", "fieldtype":"SteamLeaderboard_t" }, + { "fieldname":"m_hSteamLeaderboardEntries", "fieldtype":"SteamLeaderboardEntries_t" }, + { "fieldname":"m_cEntryCount", "fieldtype":"int" } + ], + "struct": "LeaderboardScoresDownloaded_t" + }, + { + "callback_id": 1106, + "fields": [ + { "fieldname":"m_bSuccess", "fieldtype":"uint8" }, + { "fieldname":"m_hSteamLeaderboard", "fieldtype":"SteamLeaderboard_t" }, + { "fieldname":"m_nScore", "fieldtype":"int32" }, + { "fieldname":"m_bScoreChanged", "fieldtype":"uint8" }, + { "fieldname":"m_nGlobalRankNew", "fieldtype":"int" }, + { "fieldname":"m_nGlobalRankPrevious", "fieldtype":"int" } + ], + "struct": "LeaderboardScoreUploaded_t" + }, + { + "callback_id": 1107, + "fields": [ + { "fieldname":"m_bSuccess", "fieldtype":"uint8" }, + { "fieldname":"m_cPlayers", "fieldtype":"int32" } + ], + "struct": "NumberOfCurrentPlayers_t" + }, + { + "callback_id": 1108, + "fields": [ + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "UserStatsUnloaded_t" + }, + { + "callback_id": 1109, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"CGameID" }, + { "fieldname":"m_rgchAchievementName", "fieldtype":"char [128]" }, + { "fieldname":"m_bAchieved", "fieldtype":"bool" }, + { "fieldname":"m_nIconHandle", "fieldtype":"int" } + ], + "struct": "UserAchievementIconFetched_t" + }, + { + "callback_id": 1110, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "GlobalAchievementPercentagesReady_t" + }, + { + "callback_id": 1111, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_hSteamLeaderboard", "fieldtype":"SteamLeaderboard_t" } + ], + "struct": "LeaderboardUGCSet_t" + }, + { + "callback_id": 1112, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulRequiredDiskSpace", "fieldtype":"uint64" } + ], + "struct": "PS3TrophiesInstalled_t" + }, + { + "callback_id": 1112, + "fields": [ + { "fieldname":"m_nGameID", "fieldtype":"uint64" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "GlobalStatsReceived_t" + }, + { + "callback_id": 1005, + "fields": [ + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "DlcInstalled_t" + }, + { + "callback_id": 1014, + "fields": [], + "struct": "NewUrlLaunchParameters_t" + }, + { + "callback_id": 1021, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nAppID", "fieldtype":"uint32" }, + { "fieldname":"m_cchKeyLength", "fieldtype":"uint32" }, + { "fieldname":"m_rgchKey", "fieldtype":"char [240]" } + ], + "struct": "AppProofOfPurchaseKeyResponse_t" + }, + { + "callback_id": 1023, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_ulFileSize", "fieldtype":"uint64" }, + { "fieldname":"m_FileSHA", "fieldtype":"uint8 [20]" }, + { "fieldname":"m_unFlags", "fieldtype":"uint32" } + ], + "struct": "FileDetailsResult_t" + }, + { + "callback_id": 1030, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_bIsOffline", "fieldtype":"bool" }, + { "fieldname":"m_unSecondsAllowed", "fieldtype":"uint32" }, + { "fieldname":"m_unSecondsPlayed", "fieldtype":"uint32" } + ], + "struct": "TimedTrialStatus_t" + }, + { + "callback_id": 1202, + "fields": [ + { "fieldname":"m_steamIDRemote", "fieldtype":"CSteamID" } + ], + "struct": "P2PSessionRequest_t" + }, + { + "callback_id": 1203, + "fields": [ + { "fieldname":"m_steamIDRemote", "fieldtype":"CSteamID" }, + { "fieldname":"m_eP2PSessionError", "fieldtype":"uint8" } + ], + "struct": "P2PSessionConnectFail_t" + }, + { + "callback_id": 1201, + "fields": [ + { "fieldname":"m_hSocket", "fieldtype":"SNetSocket_t" }, + { "fieldname":"m_hListenSocket", "fieldtype":"SNetListenSocket_t" }, + { "fieldname":"m_steamIDRemote", "fieldtype":"CSteamID" }, + { "fieldname":"m_eSNetSocketState", "fieldtype":"int" } + ], + "struct": "SocketStatusCallback_t" + }, + { + "callback_id": 2301, + "fields": [ + { "fieldname":"m_hLocal", "fieldtype":"ScreenshotHandle" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "ScreenshotReady_t" + }, + { + "callback_id": 2302, + "fields": [], + "struct": "ScreenshotRequested_t" + }, + { + "callback_id": 4001, + "fields": [], + "struct": "PlaybackStatusHasChanged_t" + }, + { + "callback_id": 4002, + "fields": [ + { "fieldname":"m_flNewVolume", "fieldtype":"float" } + ], + "struct": "VolumeHasChanged_t" + }, + { + "callback_id": 4101, + "fields": [], + "struct": "MusicPlayerRemoteWillActivate_t" + }, + { + "callback_id": 4102, + "fields": [], + "struct": "MusicPlayerRemoteWillDeactivate_t" + }, + { + "callback_id": 4103, + "fields": [], + "struct": "MusicPlayerRemoteToFront_t" + }, + { + "callback_id": 4104, + "fields": [], + "struct": "MusicPlayerWillQuit_t" + }, + { + "callback_id": 4105, + "fields": [], + "struct": "MusicPlayerWantsPlay_t" + }, + { + "callback_id": 4106, + "fields": [], + "struct": "MusicPlayerWantsPause_t" + }, + { + "callback_id": 4107, + "fields": [], + "struct": "MusicPlayerWantsPlayPrevious_t" + }, + { + "callback_id": 4108, + "fields": [], + "struct": "MusicPlayerWantsPlayNext_t" + }, + { + "callback_id": 4109, + "fields": [ + { "fieldname":"m_bShuffled", "fieldtype":"bool" } + ], + "struct": "MusicPlayerWantsShuffled_t" + }, + { + "callback_id": 4110, + "fields": [ + { "fieldname":"m_bLooped", "fieldtype":"bool" } + ], + "struct": "MusicPlayerWantsLooped_t" + }, + { + "callback_id": 4011, + "fields": [ + { "fieldname":"m_flNewVolume", "fieldtype":"float" } + ], + "struct": "MusicPlayerWantsVolume_t" + }, + { + "callback_id": 4012, + "fields": [ + { "fieldname":"nID", "fieldtype":"int" } + ], + "struct": "MusicPlayerSelectsQueueEntry_t" + }, + { + "callback_id": 4013, + "fields": [ + { "fieldname":"nID", "fieldtype":"int" } + ], + "struct": "MusicPlayerSelectsPlaylistEntry_t" + }, + { + "callback_id": 4114, + "fields": [ + { "fieldname":"m_nPlayingRepeatStatus", "fieldtype":"int" } + ], + "struct": "MusicPlayerWantsPlayingRepeatStatus_t" + }, + { + "callback_id": 2101, + "fields": [ + { "fieldname":"m_hRequest", "fieldtype":"HTTPRequestHandle" }, + { "fieldname":"m_ulContextValue", "fieldtype":"uint64" }, + { "fieldname":"m_bRequestSuccessful", "fieldtype":"bool" }, + { "fieldname":"m_eStatusCode", "fieldtype":"EHTTPStatusCode" }, + { "fieldname":"m_unBodySize", "fieldtype":"uint32" } + ], + "struct": "HTTPRequestCompleted_t" + }, + { + "callback_id": 2102, + "fields": [ + { "fieldname":"m_hRequest", "fieldtype":"HTTPRequestHandle" }, + { "fieldname":"m_ulContextValue", "fieldtype":"uint64" } + ], + "struct": "HTTPRequestHeadersReceived_t" + }, + { + "callback_id": 2103, + "fields": [ + { "fieldname":"m_hRequest", "fieldtype":"HTTPRequestHandle" }, + { "fieldname":"m_ulContextValue", "fieldtype":"uint64" }, + { "fieldname":"m_cOffset", "fieldtype":"uint32" }, + { "fieldname":"m_cBytesReceived", "fieldtype":"uint32" } + ], + "struct": "HTTPRequestDataReceived_t" + }, + { + "callback_id": 2801, + "fields": [ + { "fieldname":"m_ulConnectedDeviceHandle", "fieldtype":"InputHandle_t" } + ], + "struct": "SteamInputDeviceConnected_t" + }, + { + "callback_id": 2802, + "fields": [ + { "fieldname":"m_ulDisconnectedDeviceHandle", "fieldtype":"InputHandle_t" } + ], + "struct": "SteamInputDeviceDisconnected_t" + }, + { + "callback_id": 2803, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_ulDeviceHandle", "fieldtype":"InputHandle_t" }, + { "fieldname":"m_ulMappingCreator", "fieldtype":"CSteamID" }, + { "fieldname":"m_unMajorRevision", "fieldtype":"uint32" }, + { "fieldname":"m_unMinorRevision", "fieldtype":"uint32" }, + { "fieldname":"m_bUsesSteamInputAPI", "fieldtype":"bool" }, + { "fieldname":"m_bUsesGamepadAPI", "fieldtype":"bool" } + ], + "struct": "SteamInputConfigurationLoaded_t" + }, + { + "callback_id": 2804, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_ulDeviceHandle", "fieldtype":"InputHandle_t" }, + { "fieldname":"m_eDeviceType", "fieldtype":"ESteamInputType" }, + { "fieldname":"m_nOldGamepadSlot", "fieldtype":"int" }, + { "fieldname":"m_nNewGamepadSlot", "fieldtype":"int" } + ], + "struct": "SteamInputGamepadSlotChange_t" + }, + { + "callback_id": 3401, + "fields": [ + { "fieldname":"m_handle", "fieldtype":"UGCQueryHandle_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unNumResultsReturned", "fieldtype":"uint32" }, + { "fieldname":"m_unTotalMatchingResults", "fieldtype":"uint32" }, + { "fieldname":"m_bCachedData", "fieldtype":"bool" }, + { "fieldname":"m_rgchNextCursor", "fieldtype":"char [256]" } + ], + "struct": "SteamUGCQueryCompleted_t" + }, + { + "callback_id": 3402, + "fields": [ + { "fieldname":"m_details", "fieldtype":"SteamUGCDetails_t" }, + { "fieldname":"m_bCachedData", "fieldtype":"bool" } + ], + "struct": "SteamUGCRequestUGCDetailsResult_t" + }, + { + "callback_id": 3403, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype":"bool" } + ], + "struct": "CreateItemResult_t" + }, + { + "callback_id": 3404, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bUserNeedsToAcceptWorkshopLegalAgreement", "fieldtype":"bool" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "SubmitItemUpdateResult_t" + }, + { + "callback_id": 3405, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "ItemInstalled_t" + }, + { + "callback_id": 3406, + "fields": [ + { "fieldname":"m_unAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "DownloadItemResult_t" + }, + { + "callback_id": 3407, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bWasAddRequest", "fieldtype":"bool" } + ], + "struct": "UserFavoriteItemsListChanged_t" + }, + { + "callback_id": 3408, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bVoteUp", "fieldtype":"bool" } + ], + "struct": "SetUserItemVoteResult_t" + }, + { + "callback_id": 3409, + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_bVotedUp", "fieldtype":"bool" }, + { "fieldname":"m_bVotedDown", "fieldtype":"bool" }, + { "fieldname":"m_bVoteSkipped", "fieldtype":"bool" } + ], + "struct": "GetUserItemVoteResult_t" + }, + { + "callback_id": 3410, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "StartPlaytimeTrackingResult_t" + }, + { + "callback_id": 3411, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "StopPlaytimeTrackingResult_t" + }, + { + "callback_id": 3412, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nChildPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "AddUGCDependencyResult_t" + }, + { + "callback_id": 3413, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nChildPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "RemoveUGCDependencyResult_t" + }, + { + "callback_id": 3414, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "AddAppDependencyResult_t" + }, + { + "callback_id": 3415, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "RemoveAppDependencyResult_t" + }, + { + "callback_id": 3416, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_rgAppIDs", "fieldtype":"AppId_t [32]" }, + { "fieldname":"m_nNumAppDependencies", "fieldtype":"uint32" }, + { "fieldname":"m_nTotalNumAppDependencies", "fieldtype":"uint32" } + ], + "struct": "GetAppDependenciesResult_t" + }, + { + "callback_id": 3417, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" } + ], + "struct": "DeleteItemResult_t" + }, + { + "callback_id": 3418, + "fields": [ + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" } + ], + "struct": "UserSubscribedItemsListChanged_t" + }, + { + "callback_id": 3420, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_unVersion", "fieldtype":"uint32" }, + { "fieldname":"m_rtAction", "fieldtype":"RTime32" }, + { "fieldname":"m_bAccepted", "fieldtype":"bool" }, + { "fieldname":"m_bNeedsAction", "fieldtype":"bool" } + ], + "struct": "WorkshopEULAStatus_t" + }, + { + "callback_id": 4501, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_BrowserReady_t" + }, + { + "callback_id": 4502, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pBGRA", "fieldtype":"const char *" }, + { "fieldname":"unWide", "fieldtype":"uint32" }, + { "fieldname":"unTall", "fieldtype":"uint32" }, + { "fieldname":"unUpdateX", "fieldtype":"uint32" }, + { "fieldname":"unUpdateY", "fieldtype":"uint32" }, + { "fieldname":"unUpdateWide", "fieldtype":"uint32" }, + { "fieldname":"unUpdateTall", "fieldtype":"uint32" }, + { "fieldname":"unScrollX", "fieldtype":"uint32" }, + { "fieldname":"unScrollY", "fieldtype":"uint32" }, + { "fieldname":"flPageScale", "fieldtype":"float" }, + { "fieldname":"unPageSerial", "fieldtype":"uint32" } + ], + "struct": "HTML_NeedsPaint_t" + }, + { + "callback_id": 4503, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"pchTarget", "fieldtype":"const char *" }, + { "fieldname":"pchPostData", "fieldtype":"const char *" }, + { "fieldname":"bIsRedirect", "fieldtype":"bool" } + ], + "struct": "HTML_StartRequest_t" + }, + { + "callback_id": 4504, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_CloseBrowser_t" + }, + { + "callback_id": 4505, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"pchPostData", "fieldtype":"const char *" }, + { "fieldname":"bIsRedirect", "fieldtype":"bool" }, + { "fieldname":"pchPageTitle", "fieldtype":"const char *" }, + { "fieldname":"bNewNavigation", "fieldtype":"bool" } + ], + "struct": "HTML_URLChanged_t" + }, + { + "callback_id": 4506, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"pchPageTitle", "fieldtype":"const char *" } + ], + "struct": "HTML_FinishedRequest_t" + }, + { + "callback_id": 4507, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" } + ], + "struct": "HTML_OpenLinkInNewTab_t" + }, + { + "callback_id": 4508, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchTitle", "fieldtype":"const char *" } + ], + "struct": "HTML_ChangedTitle_t" + }, + { + "callback_id": 4509, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"unResults", "fieldtype":"uint32" }, + { "fieldname":"unCurrentMatch", "fieldtype":"uint32" } + ], + "struct": "HTML_SearchResults_t" + }, + { + "callback_id": 4510, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"bCanGoBack", "fieldtype":"bool" }, + { "fieldname":"bCanGoForward", "fieldtype":"bool" } + ], + "struct": "HTML_CanGoBackAndForward_t" + }, + { + "callback_id": 4511, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"unScrollMax", "fieldtype":"uint32" }, + { "fieldname":"unScrollCurrent", "fieldtype":"uint32" }, + { "fieldname":"flPageScale", "fieldtype":"float" }, + { "fieldname":"bVisible", "fieldtype":"bool" }, + { "fieldname":"unPageSize", "fieldtype":"uint32" } + ], + "struct": "HTML_HorizontalScroll_t" + }, + { + "callback_id": 4512, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"unScrollMax", "fieldtype":"uint32" }, + { "fieldname":"unScrollCurrent", "fieldtype":"uint32" }, + { "fieldname":"flPageScale", "fieldtype":"float" }, + { "fieldname":"bVisible", "fieldtype":"bool" }, + { "fieldname":"unPageSize", "fieldtype":"uint32" } + ], + "struct": "HTML_VerticalScroll_t" + }, + { + "callback_id": 4513, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"x", "fieldtype":"uint32" }, + { "fieldname":"y", "fieldtype":"uint32" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"bInput", "fieldtype":"bool" }, + { "fieldname":"bLiveLink", "fieldtype":"bool" } + ], + "struct": "HTML_LinkAtPosition_t" + }, + { + "callback_id": 4514, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMessage", "fieldtype":"const char *" } + ], + "struct": "HTML_JSAlert_t" + }, + { + "callback_id": 4515, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMessage", "fieldtype":"const char *" } + ], + "struct": "HTML_JSConfirm_t" + }, + { + "callback_id": 4516, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchTitle", "fieldtype":"const char *" }, + { "fieldname":"pchInitialFile", "fieldtype":"const char *" } + ], + "struct": "HTML_FileOpenDialog_t" + }, + { + "callback_id": 4521, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchURL", "fieldtype":"const char *" }, + { "fieldname":"unX", "fieldtype":"uint32" }, + { "fieldname":"unY", "fieldtype":"uint32" }, + { "fieldname":"unWide", "fieldtype":"uint32" }, + { "fieldname":"unTall", "fieldtype":"uint32" }, + { "fieldname":"unNewWindow_BrowserHandle_IGNORE", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_NewWindow_t" + }, + { + "callback_id": 4522, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"eMouseCursor", "fieldtype":"uint32" } + ], + "struct": "HTML_SetCursor_t" + }, + { + "callback_id": 4523, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMsg", "fieldtype":"const char *" } + ], + "struct": "HTML_StatusText_t" + }, + { + "callback_id": 4524, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMsg", "fieldtype":"const char *" } + ], + "struct": "HTML_ShowToolTip_t" + }, + { + "callback_id": 4525, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"pchMsg", "fieldtype":"const char *" } + ], + "struct": "HTML_UpdateToolTip_t" + }, + { + "callback_id": 4526, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_HideToolTip_t" + }, + { + "callback_id": 4527, + "fields": [ + { "fieldname":"unBrowserHandle", "fieldtype":"HHTMLBrowser" }, + { "fieldname":"unOldBrowserHandle", "fieldtype":"HHTMLBrowser" } + ], + "struct": "HTML_BrowserRestarted_t" + }, + { + "callback_id": 4700, + "fields": [ + { "fieldname":"m_handle", "fieldtype":"SteamInventoryResult_t" }, + { "fieldname":"m_result", "fieldtype":"EResult" } + ], + "struct": "SteamInventoryResultReady_t" + }, + { + "callback_id": 4701, + "fields": [ + { "fieldname":"m_handle", "fieldtype":"SteamInventoryResult_t" } + ], + "struct": "SteamInventoryFullUpdate_t" + }, + { + "callback_id": 4702, + "fields": [], + "struct": "SteamInventoryDefinitionUpdate_t" + }, + { + "callback_id": 4703, + "fields": [ + { "fieldname":"m_result", "fieldtype":"EResult" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_numEligiblePromoItemDefs", "fieldtype":"int" }, + { "fieldname":"m_bCachedData", "fieldtype":"bool" } + ], + "struct": "SteamInventoryEligiblePromoItemDefIDs_t" + }, + { + "callback_id": 4704, + "fields": [ + { "fieldname":"m_result", "fieldtype":"EResult" }, + { "fieldname":"m_ulOrderID", "fieldtype":"uint64" }, + { "fieldname":"m_ulTransID", "fieldtype":"uint64" } + ], + "struct": "SteamInventoryStartPurchaseResult_t" + }, + { + "callback_id": 4705, + "fields": [ + { "fieldname":"m_result", "fieldtype":"EResult" }, + { "fieldname":"m_rgchCurrency", "fieldtype":"char [4]" } + ], + "struct": "SteamInventoryRequestPricesResult_t" + }, + { + "callback_id": 4611, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unVideoAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_rgchURL", "fieldtype":"char [256]" } + ], + "struct": "GetVideoURLResult_t" + }, + { + "callback_id": 4624, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unVideoAppID", "fieldtype":"AppId_t" } + ], + "struct": "GetOPFSettingsResult_t" + }, + { + "callback_id": 5001, + "fields": [], + "struct": "SteamParentalSettingsChanged_t" + }, + { + "callback_id": 5701, + "fields": [ + { "fieldname":"m_unSessionID", "fieldtype":"RemotePlaySessionID_t" } + ], + "struct": "SteamRemotePlaySessionConnected_t" + }, + { + "callback_id": 5702, + "fields": [ + { "fieldname":"m_unSessionID", "fieldtype":"RemotePlaySessionID_t" } + ], + "struct": "SteamRemotePlaySessionDisconnected_t" + }, + { + "callback_id": 5703, + "fields": [ + { "fieldname":"m_szConnectURL", "fieldtype":"char [1024]" } + ], + "struct": "SteamRemotePlayTogetherGuestInvite_t" + }, + { + "callback_id": 1251, + "fields": [ + { "fieldname":"m_identityRemote", "fieldtype":"SteamNetworkingIdentity" } + ], + "struct": "SteamNetworkingMessagesSessionRequest_t" + }, + { + "callback_id": 1252, + "fields": [ + { "fieldname":"m_info", "fieldtype":"SteamNetConnectionInfo_t" } + ], + "struct": "SteamNetworkingMessagesSessionFailed_t" + }, + { + "callback_id": 1221, + "fields": [ + { "fieldname":"m_hConn", "fieldtype":"HSteamNetConnection" }, + { "fieldname":"m_info", "fieldtype":"SteamNetConnectionInfo_t" }, + { "fieldname":"m_eOldState", "fieldtype":"ESteamNetworkingConnectionState" } + ], + "struct": "SteamNetConnectionStatusChangedCallback_t" + }, + { + "callback_id": 1222, + "fields": [ + { "fieldname":"m_eAvail", "fieldtype":"ESteamNetworkingAvailability" }, + { "fieldname":"m_debugMsg", "fieldtype":"char [256]" } + ], + "struct": "SteamNetAuthenticationStatus_t" + }, + { + "callback_id": 1281, + "fields": [ + { "fieldname":"m_eAvail", "fieldtype":"ESteamNetworkingAvailability" }, + { "fieldname":"m_bPingMeasurementInProgress", "fieldtype":"int" }, + { "fieldname":"m_eAvailNetworkConfig", "fieldtype":"ESteamNetworkingAvailability" }, + { "fieldname":"m_eAvailAnyRelay", "fieldtype":"ESteamNetworkingAvailability" }, + { "fieldname":"m_debugMsg", "fieldtype":"char [256]" } + ], + "struct": "SteamRelayNetworkStatus_t" + }, + { + "callback_id": 201, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_OwnerSteamID", "fieldtype":"CSteamID" } + ], + "struct": "GSClientApprove_t" + }, + { + "callback_id": 202, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_eDenyReason", "fieldtype":"EDenyReason" }, + { "fieldname":"m_rgchOptionalText", "fieldtype":"char [128]" } + ], + "struct": "GSClientDeny_t" + }, + { + "callback_id": 203, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"CSteamID" }, + { "fieldname":"m_eDenyReason", "fieldtype":"EDenyReason" } + ], + "struct": "GSClientKick_t" + }, + { + "callback_id": 206, + "fields": [ + { "fieldname":"m_SteamID", "fieldtype":"uint64" }, + { "fieldname":"m_pchAchievement", "fieldtype":"char [128]" }, + { "fieldname":"m_bUnlocked", "fieldtype":"bool" } + ], + "struct": "GSClientAchievementStatus_t" + }, + { + "callback_id": 115, + "fields": [ + { "fieldname":"m_bSecure", "fieldtype":"uint8" } + ], + "struct": "GSPolicyResponse_t" + }, + { + "callback_id": 207, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_nRank", "fieldtype":"int32" }, + { "fieldname":"m_unTotalConnects", "fieldtype":"uint32" }, + { "fieldname":"m_unTotalMinutesPlayed", "fieldtype":"uint32" } + ], + "struct": "GSGameplayStats_t" + }, + { + "callback_id": 208, + "fields": [ + { "fieldname":"m_SteamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_SteamIDGroup", "fieldtype":"CSteamID" }, + { "fieldname":"m_bMember", "fieldtype":"bool" }, + { "fieldname":"m_bOfficer", "fieldtype":"bool" } + ], + "struct": "GSClientGroupStatus_t" + }, + { + "callback_id": 209, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_unReputationScore", "fieldtype":"uint32" }, + { "fieldname":"m_bBanned", "fieldtype":"bool" }, + { "fieldname":"m_unBannedIP", "fieldtype":"uint32" }, + { "fieldname":"m_usBannedPort", "fieldtype":"uint16" }, + { "fieldname":"m_ulBannedGameID", "fieldtype":"uint64" }, + { "fieldname":"m_unBanExpires", "fieldtype":"uint32" } + ], + "struct": "GSReputation_t" + }, + { + "callback_id": 210, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" } + ], + "struct": "AssociateWithClanResult_t" + }, + { + "callback_id": 211, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_cPlayersThatDontLikeCandidate", "fieldtype":"int" }, + { "fieldname":"m_cPlayersThatCandidateDoesntLike", "fieldtype":"int" }, + { "fieldname":"m_cClanPlayersThatDontLikeCandidate", "fieldtype":"int" }, + { "fieldname":"m_SteamIDCandidate", "fieldtype":"CSteamID" } + ], + "struct": "ComputeNewPlayerCompatibilityResult_t" + }, + { + "callback_id": 1800, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "GSStatsReceived_t" + }, + { + "callback_id": 1801, + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "GSStatsStored_t" + }, + { + "callback_id": 1108, + "fields": [ + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" } + ], + "struct": "GSStatsUnloaded_t" + }, + { + "callback_id": 1223, + "consts": [ + { "constname":"k_nMaxReturnPorts", "consttype":"int", "constval":"8" } + ], + "fields": [ + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_identity", "fieldtype":"SteamNetworkingIdentity" }, + { "fieldname":"m_unIP", "fieldtype":"uint32" }, + { "fieldname":"m_unPorts", "fieldtype":"uint16 [8]" } + ], + "struct": "SteamNetworkingFakeIPResult_t" + } + ], + "consts": [ + { "constname":"k_uAppIdInvalid", "consttype":"AppId_t", "constval":"0x0" }, + { "constname":"k_uDepotIdInvalid", "consttype":"DepotId_t", "constval":"0x0" }, + { "constname":"k_uAPICallInvalid", "consttype":"SteamAPICall_t", "constval":"0x0" }, + { "constname":"k_uAccountIdInvalid", "consttype":"AccountID_t", "constval":"0" }, + { "constname":"k_ulPartyBeaconIdInvalid", "consttype":"PartyBeaconID_t", "constval":"0" }, + { "constname":"k_HAuthTicketInvalid", "consttype":"HAuthTicket", "constval":"0" }, + { "constname":"k_unSteamAccountIDMask", "consttype":"unsigned int", "constval":"0xFFFFFFFF" }, + { "constname":"k_unSteamAccountInstanceMask", "consttype":"unsigned int", "constval":"0x000FFFFF" }, + { "constname":"k_unSteamUserDefaultInstance", "consttype":"unsigned int", "constval":"1" }, + { "constname":"k_cchGameExtraInfoMax", "consttype":"int", "constval":"64" }, + { "constname":"k_cchMaxSteamErrMsg", "consttype":"int", "constval":"1024" }, + { "constname":"k_cchMaxFriendsGroupName", "consttype":"int", "constval":"64" }, + { "constname":"k_cFriendsGroupLimit", "consttype":"int", "constval":"100" }, + { "constname":"k_FriendsGroupID_Invalid", "consttype":"FriendsGroupID_t", "constval":"- 1" }, + { "constname":"k_cEnumerateFollowersMax", "consttype":"int", "constval":"50" }, + { "constname":"k_usFriendGameInfoQueryPort_NotInitialized", "consttype":"uint16", "constval":"0xFFFF" }, + { "constname":"k_usFriendGameInfoQueryPort_Error", "consttype":"uint16", "constval":"0xFFFE" }, + { "constname":"k_cubChatMetadataMax", "consttype":"uint32", "constval":"8192" }, + { "constname":"k_cbMaxGameServerGameDir", "consttype":"int", "constval":"32" }, + { "constname":"k_cbMaxGameServerMapName", "consttype":"int", "constval":"32" }, + { "constname":"k_cbMaxGameServerGameDescription", "consttype":"int", "constval":"64" }, + { "constname":"k_cbMaxGameServerName", "consttype":"int", "constval":"64" }, + { "constname":"k_cbMaxGameServerTags", "consttype":"int", "constval":"128" }, + { "constname":"k_cbMaxGameServerGameData", "consttype":"int", "constval":"2048" }, + { "constname":"HSERVERQUERY_INVALID", "consttype":"int", "constval":"0xffffffff" }, + { "constname":"k_unFavoriteFlagNone", "consttype":"uint32", "constval":"0x00" }, + { "constname":"k_unFavoriteFlagFavorite", "consttype":"uint32", "constval":"0x01" }, + { "constname":"k_unFavoriteFlagHistory", "consttype":"uint32", "constval":"0x02" }, + { "constname":"k_unMaxCloudFileChunkSize", "consttype":"uint32", "constval":"100 * 1024 * 1024" }, + { "constname":"k_PublishedFileIdInvalid", "consttype":"PublishedFileId_t", "constval":"0" }, + { "constname":"k_UGCHandleInvalid", "consttype":"UGCHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_PublishedFileUpdateHandleInvalid", "consttype":"PublishedFileUpdateHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_UGCFileStreamHandleInvalid", "consttype":"UGCFileWriteStreamHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_cchPublishedDocumentTitleMax", "consttype":"uint32", "constval":"128 + 1" }, + { "constname":"k_cchPublishedDocumentDescriptionMax", "consttype":"uint32", "constval":"8000" }, + { "constname":"k_cchPublishedDocumentChangeDescriptionMax", "consttype":"uint32", "constval":"8000" }, + { "constname":"k_unEnumeratePublishedFilesMaxResults", "consttype":"uint32", "constval":"50" }, + { "constname":"k_cchTagListMax", "consttype":"uint32", "constval":"1024 + 1" }, + { "constname":"k_cchFilenameMax", "consttype":"uint32", "constval":"260" }, + { "constname":"k_cchPublishedFileURLMax", "consttype":"uint32", "constval":"256" }, + { "constname":"k_cubAppProofOfPurchaseKeyMax", "consttype":"int", "constval":"240" }, + { "constname":"k_nScreenshotMaxTaggedUsers", "consttype":"uint32", "constval":"32" }, + { "constname":"k_nScreenshotMaxTaggedPublishedFiles", "consttype":"uint32", "constval":"32" }, + { "constname":"k_cubUFSTagTypeMax", "consttype":"int", "constval":"255" }, + { "constname":"k_cubUFSTagValueMax", "consttype":"int", "constval":"255" }, + { "constname":"k_ScreenshotThumbWidth", "consttype":"int", "constval":"200" }, + { "constname":"k_UGCQueryHandleInvalid", "consttype":"UGCQueryHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_UGCUpdateHandleInvalid", "consttype":"UGCUpdateHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"kNumUGCResultsPerPage", "consttype":"uint32", "constval":"50" }, + { "constname":"k_cchDeveloperMetadataMax", "consttype":"uint32", "constval":"5000" }, + { "constname":"INVALID_HTMLBROWSER", "consttype":"uint32", "constval":"0" }, + { "constname":"k_SteamItemInstanceIDInvalid", "consttype":"SteamItemInstanceID_t", "constval":"( SteamItemInstanceID_t ) ~ 0" }, + { "constname":"k_SteamInventoryResultInvalid", "consttype":"SteamInventoryResult_t", "constval":"- 1" }, + { "constname":"k_SteamInventoryUpdateHandleInvalid", "consttype":"SteamInventoryUpdateHandle_t", "constval":"0xffffffffffffffffull" }, + { "constname":"k_nMaxTimelineRangeIDLength", "consttype":"int", "constval":"64" }, + { "constname":"k_HSteamNetConnection_Invalid", "consttype":"HSteamNetConnection", "constval":"0" }, + { "constname":"k_HSteamListenSocket_Invalid", "consttype":"HSteamListenSocket", "constval":"0" }, + { "constname":"k_HSteamNetPollGroup_Invalid", "consttype":"HSteamNetPollGroup", "constval":"0" }, + { "constname":"k_cchMaxSteamNetworkingErrMsg", "consttype":"int", "constval":"1024" }, + { "constname":"k_cchSteamNetworkingMaxConnectionCloseReason", "consttype":"int", "constval":"128" }, + { "constname":"k_cchSteamNetworkingMaxConnectionDescription", "consttype":"int", "constval":"128" }, + { "constname":"k_cchSteamNetworkingMaxConnectionAppName", "consttype":"int", "constval":"32" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_Unauthenticated", "consttype":"int", "constval":"1" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_Unencrypted", "consttype":"int", "constval":"2" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_LoopbackBuffers", "consttype":"int", "constval":"4" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_Fast", "consttype":"int", "constval":"8" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_Relayed", "consttype":"int", "constval":"16" }, + { "constname":"k_nSteamNetworkConnectionInfoFlags_DualWifi", "consttype":"int", "constval":"32" }, + { "constname":"k_cbMaxSteamNetworkingSocketsMessageSizeSend", "consttype":"int", "constval":"512 * 1024" }, + { "constname":"k_nSteamNetworkingSend_Unreliable", "consttype":"int", "constval":"0" }, + { "constname":"k_nSteamNetworkingSend_NoNagle", "consttype":"int", "constval":"1" }, + { "constname":"k_nSteamNetworkingSend_UnreliableNoNagle", "consttype":"int", "constval":"k_nSteamNetworkingSend_Unreliable | k_nSteamNetworkingSend_NoNagle" }, + { "constname":"k_nSteamNetworkingSend_NoDelay", "consttype":"int", "constval":"4" }, + { "constname":"k_nSteamNetworkingSend_UnreliableNoDelay", "consttype":"int", "constval":"k_nSteamNetworkingSend_Unreliable | k_nSteamNetworkingSend_NoDelay | k_nSteamNetworkingSend_NoNagle" }, + { "constname":"k_nSteamNetworkingSend_Reliable", "consttype":"int", "constval":"8" }, + { "constname":"k_nSteamNetworkingSend_ReliableNoNagle", "consttype":"int", "constval":"k_nSteamNetworkingSend_Reliable | k_nSteamNetworkingSend_NoNagle" }, + { "constname":"k_nSteamNetworkingSend_UseCurrentThread", "consttype":"int", "constval":"16" }, + { "constname":"k_nSteamNetworkingSend_AutoRestartBrokenSession", "consttype":"int", "constval":"32" }, + { "constname":"k_cchMaxSteamNetworkingPingLocationString", "consttype":"int", "constval":"1024" }, + { "constname":"k_nSteamNetworkingPing_Failed", "consttype":"int", "constval":"- 1" }, + { "constname":"k_nSteamNetworkingPing_Unknown", "consttype":"int", "constval":"- 2" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Default", "consttype":"int", "constval":"- 1" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Disable", "consttype":"int", "constval":"0" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Relay", "consttype":"int", "constval":"1" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Private", "consttype":"int", "constval":"2" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Public", "consttype":"int", "constval":"4" }, + { "constname":"k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_All", "consttype":"int", "constval":"0x7fffffff" }, + { "constname":"k_SteamDatagramPOPID_dev", "consttype":"SteamNetworkingPOPID", "constval":"( ( uint32 ) 'd' << 16U ) | ( ( uint32 ) 'e' << 8U ) | ( uint32 ) 'v'" }, + { "constname":"STEAMGAMESERVER_QUERY_PORT_SHARED", "consttype":"uint16", "constval":"0xffff" }, + { "constname":"MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE", "consttype":"uint16", "constval":"STEAMGAMESERVER_QUERY_PORT_SHARED" }, + { "constname":"k_cbSteamDatagramMaxSerializedTicket", "consttype":"uint32", "constval":"512" }, + { "constname":"k_cbMaxSteamDatagramGameCoordinatorServerLoginAppData", "consttype":"uint32", "constval":"2048" }, + { "constname":"k_cbMaxSteamDatagramGameCoordinatorServerLoginSerialized", "consttype":"uint32", "constval":"4096" }, + { "constname":"k_cbSteamNetworkingSocketsFakeUDPPortRecommendedMTU", "consttype":"int", "constval":"1200" }, + { "constname":"k_cbSteamNetworkingSocketsFakeUDPPortMaxMessageSize", "consttype":"int", "constval":"4096" } + ], + "enums": [ + { + "enumname": "ESteamIPType", + "values": [ + { "name":"k_ESteamIPTypeIPv4", "value":"0" }, + { "name":"k_ESteamIPTypeIPv6", "value":"1" } + ] + }, + { + "enumname": "EUniverse", + "values": [ + { "name":"k_EUniverseInvalid", "value":"0" }, + { "name":"k_EUniversePublic", "value":"1" }, + { "name":"k_EUniverseBeta", "value":"2" }, + { "name":"k_EUniverseInternal", "value":"3" }, + { "name":"k_EUniverseDev", "value":"4" }, + { "name":"k_EUniverseMax", "value":"5" } + ] + }, + { + "enumname": "EResult", + "values": [ + { "name":"k_EResultNone", "value":"0" }, + { "name":"k_EResultOK", "value":"1" }, + { "name":"k_EResultFail", "value":"2" }, + { "name":"k_EResultNoConnection", "value":"3" }, + { "name":"k_EResultInvalidPassword", "value":"5" }, + { "name":"k_EResultLoggedInElsewhere", "value":"6" }, + { "name":"k_EResultInvalidProtocolVer", "value":"7" }, + { "name":"k_EResultInvalidParam", "value":"8" }, + { "name":"k_EResultFileNotFound", "value":"9" }, + { "name":"k_EResultBusy", "value":"10" }, + { "name":"k_EResultInvalidState", "value":"11" }, + { "name":"k_EResultInvalidName", "value":"12" }, + { "name":"k_EResultInvalidEmail", "value":"13" }, + { "name":"k_EResultDuplicateName", "value":"14" }, + { "name":"k_EResultAccessDenied", "value":"15" }, + { "name":"k_EResultTimeout", "value":"16" }, + { "name":"k_EResultBanned", "value":"17" }, + { "name":"k_EResultAccountNotFound", "value":"18" }, + { "name":"k_EResultInvalidSteamID", "value":"19" }, + { "name":"k_EResultServiceUnavailable", "value":"20" }, + { "name":"k_EResultNotLoggedOn", "value":"21" }, + { "name":"k_EResultPending", "value":"22" }, + { "name":"k_EResultEncryptionFailure", "value":"23" }, + { "name":"k_EResultInsufficientPrivilege", "value":"24" }, + { "name":"k_EResultLimitExceeded", "value":"25" }, + { "name":"k_EResultRevoked", "value":"26" }, + { "name":"k_EResultExpired", "value":"27" }, + { "name":"k_EResultAlreadyRedeemed", "value":"28" }, + { "name":"k_EResultDuplicateRequest", "value":"29" }, + { "name":"k_EResultAlreadyOwned", "value":"30" }, + { "name":"k_EResultIPNotFound", "value":"31" }, + { "name":"k_EResultPersistFailed", "value":"32" }, + { "name":"k_EResultLockingFailed", "value":"33" }, + { "name":"k_EResultLogonSessionReplaced", "value":"34" }, + { "name":"k_EResultConnectFailed", "value":"35" }, + { "name":"k_EResultHandshakeFailed", "value":"36" }, + { "name":"k_EResultIOFailure", "value":"37" }, + { "name":"k_EResultRemoteDisconnect", "value":"38" }, + { "name":"k_EResultShoppingCartNotFound", "value":"39" }, + { "name":"k_EResultBlocked", "value":"40" }, + { "name":"k_EResultIgnored", "value":"41" }, + { "name":"k_EResultNoMatch", "value":"42" }, + { "name":"k_EResultAccountDisabled", "value":"43" }, + { "name":"k_EResultServiceReadOnly", "value":"44" }, + { "name":"k_EResultAccountNotFeatured", "value":"45" }, + { "name":"k_EResultAdministratorOK", "value":"46" }, + { "name":"k_EResultContentVersion", "value":"47" }, + { "name":"k_EResultTryAnotherCM", "value":"48" }, + { "name":"k_EResultPasswordRequiredToKickSession", "value":"49" }, + { "name":"k_EResultAlreadyLoggedInElsewhere", "value":"50" }, + { "name":"k_EResultSuspended", "value":"51" }, + { "name":"k_EResultCancelled", "value":"52" }, + { "name":"k_EResultDataCorruption", "value":"53" }, + { "name":"k_EResultDiskFull", "value":"54" }, + { "name":"k_EResultRemoteCallFailed", "value":"55" }, + { "name":"k_EResultPasswordUnset", "value":"56" }, + { "name":"k_EResultExternalAccountUnlinked", "value":"57" }, + { "name":"k_EResultPSNTicketInvalid", "value":"58" }, + { "name":"k_EResultExternalAccountAlreadyLinked", "value":"59" }, + { "name":"k_EResultRemoteFileConflict", "value":"60" }, + { "name":"k_EResultIllegalPassword", "value":"61" }, + { "name":"k_EResultSameAsPreviousValue", "value":"62" }, + { "name":"k_EResultAccountLogonDenied", "value":"63" }, + { "name":"k_EResultCannotUseOldPassword", "value":"64" }, + { "name":"k_EResultInvalidLoginAuthCode", "value":"65" }, + { "name":"k_EResultAccountLogonDeniedNoMail", "value":"66" }, + { "name":"k_EResultHardwareNotCapableOfIPT", "value":"67" }, + { "name":"k_EResultIPTInitError", "value":"68" }, + { "name":"k_EResultParentalControlRestricted", "value":"69" }, + { "name":"k_EResultFacebookQueryError", "value":"70" }, + { "name":"k_EResultExpiredLoginAuthCode", "value":"71" }, + { "name":"k_EResultIPLoginRestrictionFailed", "value":"72" }, + { "name":"k_EResultAccountLockedDown", "value":"73" }, + { "name":"k_EResultAccountLogonDeniedVerifiedEmailRequired", "value":"74" }, + { "name":"k_EResultNoMatchingURL", "value":"75" }, + { "name":"k_EResultBadResponse", "value":"76" }, + { "name":"k_EResultRequirePasswordReEntry", "value":"77" }, + { "name":"k_EResultValueOutOfRange", "value":"78" }, + { "name":"k_EResultUnexpectedError", "value":"79" }, + { "name":"k_EResultDisabled", "value":"80" }, + { "name":"k_EResultInvalidCEGSubmission", "value":"81" }, + { "name":"k_EResultRestrictedDevice", "value":"82" }, + { "name":"k_EResultRegionLocked", "value":"83" }, + { "name":"k_EResultRateLimitExceeded", "value":"84" }, + { "name":"k_EResultAccountLoginDeniedNeedTwoFactor", "value":"85" }, + { "name":"k_EResultItemDeleted", "value":"86" }, + { "name":"k_EResultAccountLoginDeniedThrottle", "value":"87" }, + { "name":"k_EResultTwoFactorCodeMismatch", "value":"88" }, + { "name":"k_EResultTwoFactorActivationCodeMismatch", "value":"89" }, + { "name":"k_EResultAccountAssociatedToMultiplePartners", "value":"90" }, + { "name":"k_EResultNotModified", "value":"91" }, + { "name":"k_EResultNoMobileDevice", "value":"92" }, + { "name":"k_EResultTimeNotSynced", "value":"93" }, + { "name":"k_EResultSmsCodeFailed", "value":"94" }, + { "name":"k_EResultAccountLimitExceeded", "value":"95" }, + { "name":"k_EResultAccountActivityLimitExceeded", "value":"96" }, + { "name":"k_EResultPhoneActivityLimitExceeded", "value":"97" }, + { "name":"k_EResultRefundToWallet", "value":"98" }, + { "name":"k_EResultEmailSendFailure", "value":"99" }, + { "name":"k_EResultNotSettled", "value":"100" }, + { "name":"k_EResultNeedCaptcha", "value":"101" }, + { "name":"k_EResultGSLTDenied", "value":"102" }, + { "name":"k_EResultGSOwnerDenied", "value":"103" }, + { "name":"k_EResultInvalidItemType", "value":"104" }, + { "name":"k_EResultIPBanned", "value":"105" }, + { "name":"k_EResultGSLTExpired", "value":"106" }, + { "name":"k_EResultInsufficientFunds", "value":"107" }, + { "name":"k_EResultTooManyPending", "value":"108" }, + { "name":"k_EResultNoSiteLicensesFound", "value":"109" }, + { "name":"k_EResultWGNetworkSendExceeded", "value":"110" }, + { "name":"k_EResultAccountNotFriends", "value":"111" }, + { "name":"k_EResultLimitedUserAccount", "value":"112" }, + { "name":"k_EResultCantRemoveItem", "value":"113" }, + { "name":"k_EResultAccountDeleted", "value":"114" }, + { "name":"k_EResultExistingUserCancelledLicense", "value":"115" }, + { "name":"k_EResultCommunityCooldown", "value":"116" }, + { "name":"k_EResultNoLauncherSpecified", "value":"117" }, + { "name":"k_EResultMustAgreeToSSA", "value":"118" }, + { "name":"k_EResultLauncherMigrated", "value":"119" }, + { "name":"k_EResultSteamRealmMismatch", "value":"120" }, + { "name":"k_EResultInvalidSignature", "value":"121" }, + { "name":"k_EResultParseFailure", "value":"122" }, + { "name":"k_EResultNoVerifiedPhone", "value":"123" }, + { "name":"k_EResultInsufficientBattery", "value":"124" }, + { "name":"k_EResultChargerRequired", "value":"125" }, + { "name":"k_EResultCachedCredentialInvalid", "value":"126" }, + { "name":"K_EResultPhoneNumberIsVOIP", "value":"127" }, + { "name":"k_EResultNotSupported", "value":"128" }, + { "name":"k_EResultFamilySizeLimitExceeded", "value":"129" } + ] + }, + { + "enumname": "EVoiceResult", + "values": [ + { "name":"k_EVoiceResultOK", "value":"0" }, + { "name":"k_EVoiceResultNotInitialized", "value":"1" }, + { "name":"k_EVoiceResultNotRecording", "value":"2" }, + { "name":"k_EVoiceResultNoData", "value":"3" }, + { "name":"k_EVoiceResultBufferTooSmall", "value":"4" }, + { "name":"k_EVoiceResultDataCorrupted", "value":"5" }, + { "name":"k_EVoiceResultRestricted", "value":"6" }, + { "name":"k_EVoiceResultUnsupportedCodec", "value":"7" }, + { "name":"k_EVoiceResultReceiverOutOfDate", "value":"8" }, + { "name":"k_EVoiceResultReceiverDidNotAnswer", "value":"9" } + ] + }, + { + "enumname": "EDenyReason", + "values": [ + { "name":"k_EDenyInvalid", "value":"0" }, + { "name":"k_EDenyInvalidVersion", "value":"1" }, + { "name":"k_EDenyGeneric", "value":"2" }, + { "name":"k_EDenyNotLoggedOn", "value":"3" }, + { "name":"k_EDenyNoLicense", "value":"4" }, + { "name":"k_EDenyCheater", "value":"5" }, + { "name":"k_EDenyLoggedInElseWhere", "value":"6" }, + { "name":"k_EDenyUnknownText", "value":"7" }, + { "name":"k_EDenyIncompatibleAnticheat", "value":"8" }, + { "name":"k_EDenyMemoryCorruption", "value":"9" }, + { "name":"k_EDenyIncompatibleSoftware", "value":"10" }, + { "name":"k_EDenySteamConnectionLost", "value":"11" }, + { "name":"k_EDenySteamConnectionError", "value":"12" }, + { "name":"k_EDenySteamResponseTimedOut", "value":"13" }, + { "name":"k_EDenySteamValidationStalled", "value":"14" }, + { "name":"k_EDenySteamOwnerLeftGuestUser", "value":"15" } + ] + }, + { + "enumname": "EBeginAuthSessionResult", + "values": [ + { "name":"k_EBeginAuthSessionResultOK", "value":"0" }, + { "name":"k_EBeginAuthSessionResultInvalidTicket", "value":"1" }, + { "name":"k_EBeginAuthSessionResultDuplicateRequest", "value":"2" }, + { "name":"k_EBeginAuthSessionResultInvalidVersion", "value":"3" }, + { "name":"k_EBeginAuthSessionResultGameMismatch", "value":"4" }, + { "name":"k_EBeginAuthSessionResultExpiredTicket", "value":"5" } + ] + }, + { + "enumname": "EAuthSessionResponse", + "values": [ + { "name":"k_EAuthSessionResponseOK", "value":"0" }, + { "name":"k_EAuthSessionResponseUserNotConnectedToSteam", "value":"1" }, + { "name":"k_EAuthSessionResponseNoLicenseOrExpired", "value":"2" }, + { "name":"k_EAuthSessionResponseVACBanned", "value":"3" }, + { "name":"k_EAuthSessionResponseLoggedInElseWhere", "value":"4" }, + { "name":"k_EAuthSessionResponseVACCheckTimedOut", "value":"5" }, + { "name":"k_EAuthSessionResponseAuthTicketCanceled", "value":"6" }, + { "name":"k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed", "value":"7" }, + { "name":"k_EAuthSessionResponseAuthTicketInvalid", "value":"8" }, + { "name":"k_EAuthSessionResponsePublisherIssuedBan", "value":"9" }, + { "name":"k_EAuthSessionResponseAuthTicketNetworkIdentityFailure", "value":"10" } + ] + }, + { + "enumname": "EUserHasLicenseForAppResult", + "values": [ + { "name":"k_EUserHasLicenseResultHasLicense", "value":"0" }, + { "name":"k_EUserHasLicenseResultDoesNotHaveLicense", "value":"1" }, + { "name":"k_EUserHasLicenseResultNoAuth", "value":"2" } + ] + }, + { + "enumname": "EAccountType", + "values": [ + { "name":"k_EAccountTypeInvalid", "value":"0" }, + { "name":"k_EAccountTypeIndividual", "value":"1" }, + { "name":"k_EAccountTypeMultiseat", "value":"2" }, + { "name":"k_EAccountTypeGameServer", "value":"3" }, + { "name":"k_EAccountTypeAnonGameServer", "value":"4" }, + { "name":"k_EAccountTypePending", "value":"5" }, + { "name":"k_EAccountTypeContentServer", "value":"6" }, + { "name":"k_EAccountTypeClan", "value":"7" }, + { "name":"k_EAccountTypeChat", "value":"8" }, + { "name":"k_EAccountTypeConsoleUser", "value":"9" }, + { "name":"k_EAccountTypeAnonUser", "value":"10" }, + { "name":"k_EAccountTypeMax", "value":"11" } + ] + }, + { + "enumname": "EChatEntryType", + "values": [ + { "name":"k_EChatEntryTypeInvalid", "value":"0" }, + { "name":"k_EChatEntryTypeChatMsg", "value":"1" }, + { "name":"k_EChatEntryTypeTyping", "value":"2" }, + { "name":"k_EChatEntryTypeInviteGame", "value":"3" }, + { "name":"k_EChatEntryTypeEmote", "value":"4" }, + { "name":"k_EChatEntryTypeLeftConversation", "value":"6" }, + { "name":"k_EChatEntryTypeEntered", "value":"7" }, + { "name":"k_EChatEntryTypeWasKicked", "value":"8" }, + { "name":"k_EChatEntryTypeWasBanned", "value":"9" }, + { "name":"k_EChatEntryTypeDisconnected", "value":"10" }, + { "name":"k_EChatEntryTypeHistoricalChat", "value":"11" }, + { "name":"k_EChatEntryTypeLinkBlocked", "value":"14" } + ] + }, + { + "enumname": "EChatRoomEnterResponse", + "values": [ + { "name":"k_EChatRoomEnterResponseSuccess", "value":"1" }, + { "name":"k_EChatRoomEnterResponseDoesntExist", "value":"2" }, + { "name":"k_EChatRoomEnterResponseNotAllowed", "value":"3" }, + { "name":"k_EChatRoomEnterResponseFull", "value":"4" }, + { "name":"k_EChatRoomEnterResponseError", "value":"5" }, + { "name":"k_EChatRoomEnterResponseBanned", "value":"6" }, + { "name":"k_EChatRoomEnterResponseLimited", "value":"7" }, + { "name":"k_EChatRoomEnterResponseClanDisabled", "value":"8" }, + { "name":"k_EChatRoomEnterResponseCommunityBan", "value":"9" }, + { "name":"k_EChatRoomEnterResponseMemberBlockedYou", "value":"10" }, + { "name":"k_EChatRoomEnterResponseYouBlockedMember", "value":"11" }, + { "name":"k_EChatRoomEnterResponseRatelimitExceeded", "value":"15" } + ] + }, + { + "enumname": "EChatSteamIDInstanceFlags", + "values": [ + { "name":"k_EChatAccountInstanceMask", "value":"4095" }, + { "name":"k_EChatInstanceFlagClan", "value":"524288" }, + { "name":"k_EChatInstanceFlagLobby", "value":"262144" }, + { "name":"k_EChatInstanceFlagMMSLobby", "value":"131072" } + ] + }, + { + "enumname": "ENotificationPosition", + "values": [ + { "name":"k_EPositionInvalid", "value":"-1" }, + { "name":"k_EPositionTopLeft", "value":"0" }, + { "name":"k_EPositionTopRight", "value":"1" }, + { "name":"k_EPositionBottomLeft", "value":"2" }, + { "name":"k_EPositionBottomRight", "value":"3" } + ] + }, + { + "enumname": "EBroadcastUploadResult", + "values": [ + { "name":"k_EBroadcastUploadResultNone", "value":"0" }, + { "name":"k_EBroadcastUploadResultOK", "value":"1" }, + { "name":"k_EBroadcastUploadResultInitFailed", "value":"2" }, + { "name":"k_EBroadcastUploadResultFrameFailed", "value":"3" }, + { "name":"k_EBroadcastUploadResultTimeout", "value":"4" }, + { "name":"k_EBroadcastUploadResultBandwidthExceeded", "value":"5" }, + { "name":"k_EBroadcastUploadResultLowFPS", "value":"6" }, + { "name":"k_EBroadcastUploadResultMissingKeyFrames", "value":"7" }, + { "name":"k_EBroadcastUploadResultNoConnection", "value":"8" }, + { "name":"k_EBroadcastUploadResultRelayFailed", "value":"9" }, + { "name":"k_EBroadcastUploadResultSettingsChanged", "value":"10" }, + { "name":"k_EBroadcastUploadResultMissingAudio", "value":"11" }, + { "name":"k_EBroadcastUploadResultTooFarBehind", "value":"12" }, + { "name":"k_EBroadcastUploadResultTranscodeBehind", "value":"13" }, + { "name":"k_EBroadcastUploadResultNotAllowedToPlay", "value":"14" }, + { "name":"k_EBroadcastUploadResultBusy", "value":"15" }, + { "name":"k_EBroadcastUploadResultBanned", "value":"16" }, + { "name":"k_EBroadcastUploadResultAlreadyActive", "value":"17" }, + { "name":"k_EBroadcastUploadResultForcedOff", "value":"18" }, + { "name":"k_EBroadcastUploadResultAudioBehind", "value":"19" }, + { "name":"k_EBroadcastUploadResultShutdown", "value":"20" }, + { "name":"k_EBroadcastUploadResultDisconnect", "value":"21" }, + { "name":"k_EBroadcastUploadResultVideoInitFailed", "value":"22" }, + { "name":"k_EBroadcastUploadResultAudioInitFailed", "value":"23" } + ] + }, + { + "enumname": "EMarketNotAllowedReasonFlags", + "values": [ + { "name":"k_EMarketNotAllowedReason_None", "value":"0" }, + { "name":"k_EMarketNotAllowedReason_TemporaryFailure", "value":"1" }, + { "name":"k_EMarketNotAllowedReason_AccountDisabled", "value":"2" }, + { "name":"k_EMarketNotAllowedReason_AccountLockedDown", "value":"4" }, + { "name":"k_EMarketNotAllowedReason_AccountLimited", "value":"8" }, + { "name":"k_EMarketNotAllowedReason_TradeBanned", "value":"16" }, + { "name":"k_EMarketNotAllowedReason_AccountNotTrusted", "value":"32" }, + { "name":"k_EMarketNotAllowedReason_SteamGuardNotEnabled", "value":"64" }, + { "name":"k_EMarketNotAllowedReason_SteamGuardOnlyRecentlyEnabled", "value":"128" }, + { "name":"k_EMarketNotAllowedReason_RecentPasswordReset", "value":"256" }, + { "name":"k_EMarketNotAllowedReason_NewPaymentMethod", "value":"512" }, + { "name":"k_EMarketNotAllowedReason_InvalidCookie", "value":"1024" }, + { "name":"k_EMarketNotAllowedReason_UsingNewDevice", "value":"2048" }, + { "name":"k_EMarketNotAllowedReason_RecentSelfRefund", "value":"4096" }, + { "name":"k_EMarketNotAllowedReason_NewPaymentMethodCannotBeVerified", "value":"8192" }, + { "name":"k_EMarketNotAllowedReason_NoRecentPurchases", "value":"16384" }, + { "name":"k_EMarketNotAllowedReason_AcceptedWalletGift", "value":"32768" } + ] + }, + { + "enumname": "EDurationControlProgress", + "values": [ + { "name":"k_EDurationControlProgress_Full", "value":"0" }, + { "name":"k_EDurationControlProgress_Half", "value":"1" }, + { "name":"k_EDurationControlProgress_None", "value":"2" }, + { "name":"k_EDurationControl_ExitSoon_3h", "value":"3" }, + { "name":"k_EDurationControl_ExitSoon_5h", "value":"4" }, + { "name":"k_EDurationControl_ExitSoon_Night", "value":"5" } + ] + }, + { + "enumname": "EDurationControlNotification", + "values": [ + { "name":"k_EDurationControlNotification_None", "value":"0" }, + { "name":"k_EDurationControlNotification_1Hour", "value":"1" }, + { "name":"k_EDurationControlNotification_3Hours", "value":"2" }, + { "name":"k_EDurationControlNotification_HalfProgress", "value":"3" }, + { "name":"k_EDurationControlNotification_NoProgress", "value":"4" }, + { "name":"k_EDurationControlNotification_ExitSoon_3h", "value":"5" }, + { "name":"k_EDurationControlNotification_ExitSoon_5h", "value":"6" }, + { "name":"k_EDurationControlNotification_ExitSoon_Night", "value":"7" } + ] + }, + { + "enumname": "EDurationControlOnlineState", + "values": [ + { "name":"k_EDurationControlOnlineState_Invalid", "value":"0" }, + { "name":"k_EDurationControlOnlineState_Offline", "value":"1" }, + { "name":"k_EDurationControlOnlineState_Online", "value":"2" }, + { "name":"k_EDurationControlOnlineState_OnlineHighPri", "value":"3" } + ] + }, + { + "enumname": "EGameSearchErrorCode_t", + "values": [ + { "name":"k_EGameSearchErrorCode_OK", "value":"1" }, + { "name":"k_EGameSearchErrorCode_Failed_Search_Already_In_Progress", "value":"2" }, + { "name":"k_EGameSearchErrorCode_Failed_No_Search_In_Progress", "value":"3" }, + { "name":"k_EGameSearchErrorCode_Failed_Not_Lobby_Leader", "value":"4" }, + { "name":"k_EGameSearchErrorCode_Failed_No_Host_Available", "value":"5" }, + { "name":"k_EGameSearchErrorCode_Failed_Search_Params_Invalid", "value":"6" }, + { "name":"k_EGameSearchErrorCode_Failed_Offline", "value":"7" }, + { "name":"k_EGameSearchErrorCode_Failed_NotAuthorized", "value":"8" }, + { "name":"k_EGameSearchErrorCode_Failed_Unknown_Error", "value":"9" } + ] + }, + { + "enumname": "EPlayerResult_t", + "values": [ + { "name":"k_EPlayerResultFailedToConnect", "value":"1" }, + { "name":"k_EPlayerResultAbandoned", "value":"2" }, + { "name":"k_EPlayerResultKicked", "value":"3" }, + { "name":"k_EPlayerResultIncomplete", "value":"4" }, + { "name":"k_EPlayerResultCompleted", "value":"5" } + ] + }, + { + "enumname": "ESteamIPv6ConnectivityProtocol", + "values": [ + { "name":"k_ESteamIPv6ConnectivityProtocol_Invalid", "value":"0" }, + { "name":"k_ESteamIPv6ConnectivityProtocol_HTTP", "value":"1" }, + { "name":"k_ESteamIPv6ConnectivityProtocol_UDP", "value":"2" } + ] + }, + { + "enumname": "ESteamIPv6ConnectivityState", + "values": [ + { "name":"k_ESteamIPv6ConnectivityState_Unknown", "value":"0" }, + { "name":"k_ESteamIPv6ConnectivityState_Good", "value":"1" }, + { "name":"k_ESteamIPv6ConnectivityState_Bad", "value":"2" } + ] + }, + { + "enumname": "EFriendRelationship", + "values": [ + { "name":"k_EFriendRelationshipNone", "value":"0" }, + { "name":"k_EFriendRelationshipBlocked", "value":"1" }, + { "name":"k_EFriendRelationshipRequestRecipient", "value":"2" }, + { "name":"k_EFriendRelationshipFriend", "value":"3" }, + { "name":"k_EFriendRelationshipRequestInitiator", "value":"4" }, + { "name":"k_EFriendRelationshipIgnored", "value":"5" }, + { "name":"k_EFriendRelationshipIgnoredFriend", "value":"6" }, + { "name":"k_EFriendRelationshipSuggested_DEPRECATED", "value":"7" }, + { "name":"k_EFriendRelationshipMax", "value":"8" } + ] + }, + { + "enumname": "EPersonaState", + "values": [ + { "name":"k_EPersonaStateOffline", "value":"0" }, + { "name":"k_EPersonaStateOnline", "value":"1" }, + { "name":"k_EPersonaStateBusy", "value":"2" }, + { "name":"k_EPersonaStateAway", "value":"3" }, + { "name":"k_EPersonaStateSnooze", "value":"4" }, + { "name":"k_EPersonaStateLookingToTrade", "value":"5" }, + { "name":"k_EPersonaStateLookingToPlay", "value":"6" }, + { "name":"k_EPersonaStateInvisible", "value":"7" }, + { "name":"k_EPersonaStateMax", "value":"8" } + ] + }, + { + "enumname": "EFriendFlags", + "values": [ + { "name":"k_EFriendFlagNone", "value":"0" }, + { "name":"k_EFriendFlagBlocked", "value":"1" }, + { "name":"k_EFriendFlagFriendshipRequested", "value":"2" }, + { "name":"k_EFriendFlagImmediate", "value":"4" }, + { "name":"k_EFriendFlagClanMember", "value":"8" }, + { "name":"k_EFriendFlagOnGameServer", "value":"16" }, + { "name":"k_EFriendFlagRequestingFriendship", "value":"128" }, + { "name":"k_EFriendFlagRequestingInfo", "value":"256" }, + { "name":"k_EFriendFlagIgnored", "value":"512" }, + { "name":"k_EFriendFlagIgnoredFriend", "value":"1024" }, + { "name":"k_EFriendFlagChatMember", "value":"4096" }, + { "name":"k_EFriendFlagAll", "value":"65535" } + ] + }, + { + "enumname": "EUserRestriction", + "values": [ + { "name":"k_nUserRestrictionNone", "value":"0" }, + { "name":"k_nUserRestrictionUnknown", "value":"1" }, + { "name":"k_nUserRestrictionAnyChat", "value":"2" }, + { "name":"k_nUserRestrictionVoiceChat", "value":"4" }, + { "name":"k_nUserRestrictionGroupChat", "value":"8" }, + { "name":"k_nUserRestrictionRating", "value":"16" }, + { "name":"k_nUserRestrictionGameInvites", "value":"32" }, + { "name":"k_nUserRestrictionTrading", "value":"64" } + ] + }, + { + "enumname": "EOverlayToStoreFlag", + "values": [ + { "name":"k_EOverlayToStoreFlag_None", "value":"0" }, + { "name":"k_EOverlayToStoreFlag_AddToCart", "value":"1" }, + { "name":"k_EOverlayToStoreFlag_AddToCartAndShow", "value":"2" } + ] + }, + { + "enumname": "EActivateGameOverlayToWebPageMode", + "values": [ + { "name":"k_EActivateGameOverlayToWebPageMode_Default", "value":"0" }, + { "name":"k_EActivateGameOverlayToWebPageMode_Modal", "value":"1" } + ] + }, + { + "enumname": "ECommunityProfileItemType", + "values": [ + { "name":"k_ECommunityProfileItemType_AnimatedAvatar", "value":"0" }, + { "name":"k_ECommunityProfileItemType_AvatarFrame", "value":"1" }, + { "name":"k_ECommunityProfileItemType_ProfileModifier", "value":"2" }, + { "name":"k_ECommunityProfileItemType_ProfileBackground", "value":"3" }, + { "name":"k_ECommunityProfileItemType_MiniProfileBackground", "value":"4" } + ] + }, + { + "enumname": "ECommunityProfileItemProperty", + "values": [ + { "name":"k_ECommunityProfileItemProperty_ImageSmall", "value":"0" }, + { "name":"k_ECommunityProfileItemProperty_ImageLarge", "value":"1" }, + { "name":"k_ECommunityProfileItemProperty_InternalName", "value":"2" }, + { "name":"k_ECommunityProfileItemProperty_Title", "value":"3" }, + { "name":"k_ECommunityProfileItemProperty_Description", "value":"4" }, + { "name":"k_ECommunityProfileItemProperty_AppID", "value":"5" }, + { "name":"k_ECommunityProfileItemProperty_TypeID", "value":"6" }, + { "name":"k_ECommunityProfileItemProperty_Class", "value":"7" }, + { "name":"k_ECommunityProfileItemProperty_MovieWebM", "value":"8" }, + { "name":"k_ECommunityProfileItemProperty_MovieMP4", "value":"9" }, + { "name":"k_ECommunityProfileItemProperty_MovieWebMSmall", "value":"10" }, + { "name":"k_ECommunityProfileItemProperty_MovieMP4Small", "value":"11" } + ] + }, + { + "enumname": "EPersonaChange", + "values": [ + { "name":"k_EPersonaChangeName", "value":"1" }, + { "name":"k_EPersonaChangeStatus", "value":"2" }, + { "name":"k_EPersonaChangeComeOnline", "value":"4" }, + { "name":"k_EPersonaChangeGoneOffline", "value":"8" }, + { "name":"k_EPersonaChangeGamePlayed", "value":"16" }, + { "name":"k_EPersonaChangeGameServer", "value":"32" }, + { "name":"k_EPersonaChangeAvatar", "value":"64" }, + { "name":"k_EPersonaChangeJoinedSource", "value":"128" }, + { "name":"k_EPersonaChangeLeftSource", "value":"256" }, + { "name":"k_EPersonaChangeRelationshipChanged", "value":"512" }, + { "name":"k_EPersonaChangeNameFirstSet", "value":"1024" }, + { "name":"k_EPersonaChangeBroadcast", "value":"2048" }, + { "name":"k_EPersonaChangeNickname", "value":"4096" }, + { "name":"k_EPersonaChangeSteamLevel", "value":"8192" }, + { "name":"k_EPersonaChangeRichPresence", "value":"16384" } + ] + }, + { + "enumname": "ESteamAPICallFailure", + "values": [ + { "name":"k_ESteamAPICallFailureNone", "value":"-1" }, + { "name":"k_ESteamAPICallFailureSteamGone", "value":"0" }, + { "name":"k_ESteamAPICallFailureNetworkFailure", "value":"1" }, + { "name":"k_ESteamAPICallFailureInvalidHandle", "value":"2" }, + { "name":"k_ESteamAPICallFailureMismatchedCallback", "value":"3" } + ] + }, + { + "enumname": "EGamepadTextInputMode", + "values": [ + { "name":"k_EGamepadTextInputModeNormal", "value":"0" }, + { "name":"k_EGamepadTextInputModePassword", "value":"1" } + ] + }, + { + "enumname": "EGamepadTextInputLineMode", + "values": [ + { "name":"k_EGamepadTextInputLineModeSingleLine", "value":"0" }, + { "name":"k_EGamepadTextInputLineModeMultipleLines", "value":"1" } + ] + }, + { + "enumname": "EFloatingGamepadTextInputMode", + "values": [ + { "name":"k_EFloatingGamepadTextInputModeModeSingleLine", "value":"0" }, + { "name":"k_EFloatingGamepadTextInputModeModeMultipleLines", "value":"1" }, + { "name":"k_EFloatingGamepadTextInputModeModeEmail", "value":"2" }, + { "name":"k_EFloatingGamepadTextInputModeModeNumeric", "value":"3" } + ] + }, + { + "enumname": "ETextFilteringContext", + "values": [ + { "name":"k_ETextFilteringContextUnknown", "value":"0" }, + { "name":"k_ETextFilteringContextGameContent", "value":"1" }, + { "name":"k_ETextFilteringContextChat", "value":"2" }, + { "name":"k_ETextFilteringContextName", "value":"3" } + ] + }, + { + "enumname": "ECheckFileSignature", + "values": [ + { "name":"k_ECheckFileSignatureInvalidSignature", "value":"0" }, + { "name":"k_ECheckFileSignatureValidSignature", "value":"1" }, + { "name":"k_ECheckFileSignatureFileNotFound", "value":"2" }, + { "name":"k_ECheckFileSignatureNoSignaturesFoundForThisApp", "value":"3" }, + { "name":"k_ECheckFileSignatureNoSignaturesFoundForThisFile", "value":"4" } + ] + }, + { + "enumname": "EMatchMakingServerResponse", + "values": [ + { "name":"eServerResponded", "value":"0" }, + { "name":"eServerFailedToRespond", "value":"1" }, + { "name":"eNoServersListedOnMasterServer", "value":"2" } + ] + }, + { + "enumname": "ELobbyType", + "values": [ + { "name":"k_ELobbyTypePrivate", "value":"0" }, + { "name":"k_ELobbyTypeFriendsOnly", "value":"1" }, + { "name":"k_ELobbyTypePublic", "value":"2" }, + { "name":"k_ELobbyTypeInvisible", "value":"3" }, + { "name":"k_ELobbyTypePrivateUnique", "value":"4" } + ] + }, + { + "enumname": "ELobbyComparison", + "values": [ + { "name":"k_ELobbyComparisonEqualToOrLessThan", "value":"-2" }, + { "name":"k_ELobbyComparisonLessThan", "value":"-1" }, + { "name":"k_ELobbyComparisonEqual", "value":"0" }, + { "name":"k_ELobbyComparisonGreaterThan", "value":"1" }, + { "name":"k_ELobbyComparisonEqualToOrGreaterThan", "value":"2" }, + { "name":"k_ELobbyComparisonNotEqual", "value":"3" } + ] + }, + { + "enumname": "ELobbyDistanceFilter", + "values": [ + { "name":"k_ELobbyDistanceFilterClose", "value":"0" }, + { "name":"k_ELobbyDistanceFilterDefault", "value":"1" }, + { "name":"k_ELobbyDistanceFilterFar", "value":"2" }, + { "name":"k_ELobbyDistanceFilterWorldwide", "value":"3" } + ] + }, + { + "enumname": "EChatMemberStateChange", + "values": [ + { "name":"k_EChatMemberStateChangeEntered", "value":"1" }, + { "name":"k_EChatMemberStateChangeLeft", "value":"2" }, + { "name":"k_EChatMemberStateChangeDisconnected", "value":"4" }, + { "name":"k_EChatMemberStateChangeKicked", "value":"8" }, + { "name":"k_EChatMemberStateChangeBanned", "value":"16" } + ] + }, + { + "enumname": "ESteamPartyBeaconLocationType", + "values": [ + { "name":"k_ESteamPartyBeaconLocationType_Invalid", "value":"0" }, + { "name":"k_ESteamPartyBeaconLocationType_ChatGroup", "value":"1" }, + { "name":"k_ESteamPartyBeaconLocationType_Max", "value":"2" } + ] + }, + { + "enumname": "ESteamPartyBeaconLocationData", + "values": [ + { "name":"k_ESteamPartyBeaconLocationDataInvalid", "value":"0" }, + { "name":"k_ESteamPartyBeaconLocationDataName", "value":"1" }, + { "name":"k_ESteamPartyBeaconLocationDataIconURLSmall", "value":"2" }, + { "name":"k_ESteamPartyBeaconLocationDataIconURLMedium", "value":"3" }, + { "name":"k_ESteamPartyBeaconLocationDataIconURLLarge", "value":"4" } + ] + }, + { + "enumname": "ERemoteStoragePlatform", + "values": [ + { "name":"k_ERemoteStoragePlatformNone", "value":"0" }, + { "name":"k_ERemoteStoragePlatformWindows", "value":"1" }, + { "name":"k_ERemoteStoragePlatformOSX", "value":"2" }, + { "name":"k_ERemoteStoragePlatformPS3", "value":"4" }, + { "name":"k_ERemoteStoragePlatformLinux", "value":"8" }, + { "name":"k_ERemoteStoragePlatformSwitch", "value":"16" }, + { "name":"k_ERemoteStoragePlatformAndroid", "value":"32" }, + { "name":"k_ERemoteStoragePlatformIOS", "value":"64" }, + { "name":"k_ERemoteStoragePlatformAll", "value":"-1" } + ] + }, + { + "enumname": "ERemoteStoragePublishedFileVisibility", + "values": [ + { "name":"k_ERemoteStoragePublishedFileVisibilityPublic", "value":"0" }, + { "name":"k_ERemoteStoragePublishedFileVisibilityFriendsOnly", "value":"1" }, + { "name":"k_ERemoteStoragePublishedFileVisibilityPrivate", "value":"2" }, + { "name":"k_ERemoteStoragePublishedFileVisibilityUnlisted", "value":"3" } + ] + }, + { + "enumname": "EWorkshopFileType", + "values": [ + { "name":"k_EWorkshopFileTypeFirst", "value":"0" }, + { "name":"k_EWorkshopFileTypeCommunity", "value":"0" }, + { "name":"k_EWorkshopFileTypeMicrotransaction", "value":"1" }, + { "name":"k_EWorkshopFileTypeCollection", "value":"2" }, + { "name":"k_EWorkshopFileTypeArt", "value":"3" }, + { "name":"k_EWorkshopFileTypeVideo", "value":"4" }, + { "name":"k_EWorkshopFileTypeScreenshot", "value":"5" }, + { "name":"k_EWorkshopFileTypeGame", "value":"6" }, + { "name":"k_EWorkshopFileTypeSoftware", "value":"7" }, + { "name":"k_EWorkshopFileTypeConcept", "value":"8" }, + { "name":"k_EWorkshopFileTypeWebGuide", "value":"9" }, + { "name":"k_EWorkshopFileTypeIntegratedGuide", "value":"10" }, + { "name":"k_EWorkshopFileTypeMerch", "value":"11" }, + { "name":"k_EWorkshopFileTypeControllerBinding", "value":"12" }, + { "name":"k_EWorkshopFileTypeSteamworksAccessInvite", "value":"13" }, + { "name":"k_EWorkshopFileTypeSteamVideo", "value":"14" }, + { "name":"k_EWorkshopFileTypeGameManagedItem", "value":"15" }, + { "name":"k_EWorkshopFileTypeClip", "value":"16" }, + { "name":"k_EWorkshopFileTypeMax", "value":"17" } + ] + }, + { + "enumname": "EWorkshopVote", + "values": [ + { "name":"k_EWorkshopVoteUnvoted", "value":"0" }, + { "name":"k_EWorkshopVoteFor", "value":"1" }, + { "name":"k_EWorkshopVoteAgainst", "value":"2" }, + { "name":"k_EWorkshopVoteLater", "value":"3" } + ] + }, + { + "enumname": "EWorkshopFileAction", + "values": [ + { "name":"k_EWorkshopFileActionPlayed", "value":"0" }, + { "name":"k_EWorkshopFileActionCompleted", "value":"1" } + ] + }, + { + "enumname": "EWorkshopEnumerationType", + "values": [ + { "name":"k_EWorkshopEnumerationTypeRankedByVote", "value":"0" }, + { "name":"k_EWorkshopEnumerationTypeRecent", "value":"1" }, + { "name":"k_EWorkshopEnumerationTypeTrending", "value":"2" }, + { "name":"k_EWorkshopEnumerationTypeFavoritesOfFriends", "value":"3" }, + { "name":"k_EWorkshopEnumerationTypeVotedByFriends", "value":"4" }, + { "name":"k_EWorkshopEnumerationTypeContentByFriends", "value":"5" }, + { "name":"k_EWorkshopEnumerationTypeRecentFromFollowedUsers", "value":"6" } + ] + }, + { + "enumname": "EWorkshopVideoProvider", + "values": [ + { "name":"k_EWorkshopVideoProviderNone", "value":"0" }, + { "name":"k_EWorkshopVideoProviderYoutube", "value":"1" } + ] + }, + { + "enumname": "EUGCReadAction", + "values": [ + { "name":"k_EUGCRead_ContinueReadingUntilFinished", "value":"0" }, + { "name":"k_EUGCRead_ContinueReading", "value":"1" }, + { "name":"k_EUGCRead_Close", "value":"2" } + ] + }, + { + "enumname": "ERemoteStorageLocalFileChange", + "values": [ + { "name":"k_ERemoteStorageLocalFileChange_Invalid", "value":"0" }, + { "name":"k_ERemoteStorageLocalFileChange_FileUpdated", "value":"1" }, + { "name":"k_ERemoteStorageLocalFileChange_FileDeleted", "value":"2" } + ] + }, + { + "enumname": "ERemoteStorageFilePathType", + "values": [ + { "name":"k_ERemoteStorageFilePathType_Invalid", "value":"0" }, + { "name":"k_ERemoteStorageFilePathType_Absolute", "value":"1" }, + { "name":"k_ERemoteStorageFilePathType_APIFilename", "value":"2" } + ] + }, + { + "enumname": "ELeaderboardDataRequest", + "values": [ + { "name":"k_ELeaderboardDataRequestGlobal", "value":"0" }, + { "name":"k_ELeaderboardDataRequestGlobalAroundUser", "value":"1" }, + { "name":"k_ELeaderboardDataRequestFriends", "value":"2" }, + { "name":"k_ELeaderboardDataRequestUsers", "value":"3" } + ] + }, + { + "enumname": "ELeaderboardSortMethod", + "values": [ + { "name":"k_ELeaderboardSortMethodNone", "value":"0" }, + { "name":"k_ELeaderboardSortMethodAscending", "value":"1" }, + { "name":"k_ELeaderboardSortMethodDescending", "value":"2" } + ] + }, + { + "enumname": "ELeaderboardDisplayType", + "values": [ + { "name":"k_ELeaderboardDisplayTypeNone", "value":"0" }, + { "name":"k_ELeaderboardDisplayTypeNumeric", "value":"1" }, + { "name":"k_ELeaderboardDisplayTypeTimeSeconds", "value":"2" }, + { "name":"k_ELeaderboardDisplayTypeTimeMilliSeconds", "value":"3" } + ] + }, + { + "enumname": "ELeaderboardUploadScoreMethod", + "values": [ + { "name":"k_ELeaderboardUploadScoreMethodNone", "value":"0" }, + { "name":"k_ELeaderboardUploadScoreMethodKeepBest", "value":"1" }, + { "name":"k_ELeaderboardUploadScoreMethodForceUpdate", "value":"2" } + ] + }, + { + "enumname": "EP2PSessionError", + "values": [ + { "name":"k_EP2PSessionErrorNone", "value":"0" }, + { "name":"k_EP2PSessionErrorNoRightsToApp", "value":"2" }, + { "name":"k_EP2PSessionErrorTimeout", "value":"4" }, + { "name":"k_EP2PSessionErrorNotRunningApp_DELETED", "value":"1" }, + { "name":"k_EP2PSessionErrorDestinationNotLoggedIn_DELETED", "value":"3" }, + { "name":"k_EP2PSessionErrorMax", "value":"5" } + ] + }, + { + "enumname": "EP2PSend", + "values": [ + { "name":"k_EP2PSendUnreliable", "value":"0" }, + { "name":"k_EP2PSendUnreliableNoDelay", "value":"1" }, + { "name":"k_EP2PSendReliable", "value":"2" }, + { "name":"k_EP2PSendReliableWithBuffering", "value":"3" } + ] + }, + { + "enumname": "ESNetSocketState", + "values": [ + { "name":"k_ESNetSocketStateInvalid", "value":"0" }, + { "name":"k_ESNetSocketStateConnected", "value":"1" }, + { "name":"k_ESNetSocketStateInitiated", "value":"10" }, + { "name":"k_ESNetSocketStateLocalCandidatesFound", "value":"11" }, + { "name":"k_ESNetSocketStateReceivedRemoteCandidates", "value":"12" }, + { "name":"k_ESNetSocketStateChallengeHandshake", "value":"15" }, + { "name":"k_ESNetSocketStateDisconnecting", "value":"21" }, + { "name":"k_ESNetSocketStateLocalDisconnect", "value":"22" }, + { "name":"k_ESNetSocketStateTimeoutDuringConnect", "value":"23" }, + { "name":"k_ESNetSocketStateRemoteEndDisconnected", "value":"24" }, + { "name":"k_ESNetSocketStateConnectionBroken", "value":"25" } + ] + }, + { + "enumname": "ESNetSocketConnectionType", + "values": [ + { "name":"k_ESNetSocketConnectionTypeNotConnected", "value":"0" }, + { "name":"k_ESNetSocketConnectionTypeUDP", "value":"1" }, + { "name":"k_ESNetSocketConnectionTypeUDPRelay", "value":"2" } + ] + }, + { + "enumname": "EVRScreenshotType", + "values": [ + { "name":"k_EVRScreenshotType_None", "value":"0" }, + { "name":"k_EVRScreenshotType_Mono", "value":"1" }, + { "name":"k_EVRScreenshotType_Stereo", "value":"2" }, + { "name":"k_EVRScreenshotType_MonoCubemap", "value":"3" }, + { "name":"k_EVRScreenshotType_MonoPanorama", "value":"4" }, + { "name":"k_EVRScreenshotType_StereoPanorama", "value":"5" } + ] + }, + { + "enumname": "AudioPlayback_Status", + "values": [ + { "name":"AudioPlayback_Undefined", "value":"0" }, + { "name":"AudioPlayback_Playing", "value":"1" }, + { "name":"AudioPlayback_Paused", "value":"2" }, + { "name":"AudioPlayback_Idle", "value":"3" } + ] + }, + { + "enumname": "EHTTPMethod", + "values": [ + { "name":"k_EHTTPMethodInvalid", "value":"0" }, + { "name":"k_EHTTPMethodGET", "value":"1" }, + { "name":"k_EHTTPMethodHEAD", "value":"2" }, + { "name":"k_EHTTPMethodPOST", "value":"3" }, + { "name":"k_EHTTPMethodPUT", "value":"4" }, + { "name":"k_EHTTPMethodDELETE", "value":"5" }, + { "name":"k_EHTTPMethodOPTIONS", "value":"6" }, + { "name":"k_EHTTPMethodPATCH", "value":"7" } + ] + }, + { + "enumname": "EHTTPStatusCode", + "values": [ + { "name":"k_EHTTPStatusCodeInvalid", "value":"0" }, + { "name":"k_EHTTPStatusCode100Continue", "value":"100" }, + { "name":"k_EHTTPStatusCode101SwitchingProtocols", "value":"101" }, + { "name":"k_EHTTPStatusCode200OK", "value":"200" }, + { "name":"k_EHTTPStatusCode201Created", "value":"201" }, + { "name":"k_EHTTPStatusCode202Accepted", "value":"202" }, + { "name":"k_EHTTPStatusCode203NonAuthoritative", "value":"203" }, + { "name":"k_EHTTPStatusCode204NoContent", "value":"204" }, + { "name":"k_EHTTPStatusCode205ResetContent", "value":"205" }, + { "name":"k_EHTTPStatusCode206PartialContent", "value":"206" }, + { "name":"k_EHTTPStatusCode300MultipleChoices", "value":"300" }, + { "name":"k_EHTTPStatusCode301MovedPermanently", "value":"301" }, + { "name":"k_EHTTPStatusCode302Found", "value":"302" }, + { "name":"k_EHTTPStatusCode303SeeOther", "value":"303" }, + { "name":"k_EHTTPStatusCode304NotModified", "value":"304" }, + { "name":"k_EHTTPStatusCode305UseProxy", "value":"305" }, + { "name":"k_EHTTPStatusCode307TemporaryRedirect", "value":"307" }, + { "name":"k_EHTTPStatusCode308PermanentRedirect", "value":"308" }, + { "name":"k_EHTTPStatusCode400BadRequest", "value":"400" }, + { "name":"k_EHTTPStatusCode401Unauthorized", "value":"401" }, + { "name":"k_EHTTPStatusCode402PaymentRequired", "value":"402" }, + { "name":"k_EHTTPStatusCode403Forbidden", "value":"403" }, + { "name":"k_EHTTPStatusCode404NotFound", "value":"404" }, + { "name":"k_EHTTPStatusCode405MethodNotAllowed", "value":"405" }, + { "name":"k_EHTTPStatusCode406NotAcceptable", "value":"406" }, + { "name":"k_EHTTPStatusCode407ProxyAuthRequired", "value":"407" }, + { "name":"k_EHTTPStatusCode408RequestTimeout", "value":"408" }, + { "name":"k_EHTTPStatusCode409Conflict", "value":"409" }, + { "name":"k_EHTTPStatusCode410Gone", "value":"410" }, + { "name":"k_EHTTPStatusCode411LengthRequired", "value":"411" }, + { "name":"k_EHTTPStatusCode412PreconditionFailed", "value":"412" }, + { "name":"k_EHTTPStatusCode413RequestEntityTooLarge", "value":"413" }, + { "name":"k_EHTTPStatusCode414RequestURITooLong", "value":"414" }, + { "name":"k_EHTTPStatusCode415UnsupportedMediaType", "value":"415" }, + { "name":"k_EHTTPStatusCode416RequestedRangeNotSatisfiable", "value":"416" }, + { "name":"k_EHTTPStatusCode417ExpectationFailed", "value":"417" }, + { "name":"k_EHTTPStatusCode4xxUnknown", "value":"418" }, + { "name":"k_EHTTPStatusCode429TooManyRequests", "value":"429" }, + { "name":"k_EHTTPStatusCode444ConnectionClosed", "value":"444" }, + { "name":"k_EHTTPStatusCode500InternalServerError", "value":"500" }, + { "name":"k_EHTTPStatusCode501NotImplemented", "value":"501" }, + { "name":"k_EHTTPStatusCode502BadGateway", "value":"502" }, + { "name":"k_EHTTPStatusCode503ServiceUnavailable", "value":"503" }, + { "name":"k_EHTTPStatusCode504GatewayTimeout", "value":"504" }, + { "name":"k_EHTTPStatusCode505HTTPVersionNotSupported", "value":"505" }, + { "name":"k_EHTTPStatusCode5xxUnknown", "value":"599" } + ] + }, + { + "enumname": "EInputSourceMode", + "values": [ + { "name":"k_EInputSourceMode_None", "value":"0" }, + { "name":"k_EInputSourceMode_Dpad", "value":"1" }, + { "name":"k_EInputSourceMode_Buttons", "value":"2" }, + { "name":"k_EInputSourceMode_FourButtons", "value":"3" }, + { "name":"k_EInputSourceMode_AbsoluteMouse", "value":"4" }, + { "name":"k_EInputSourceMode_RelativeMouse", "value":"5" }, + { "name":"k_EInputSourceMode_JoystickMove", "value":"6" }, + { "name":"k_EInputSourceMode_JoystickMouse", "value":"7" }, + { "name":"k_EInputSourceMode_JoystickCamera", "value":"8" }, + { "name":"k_EInputSourceMode_ScrollWheel", "value":"9" }, + { "name":"k_EInputSourceMode_Trigger", "value":"10" }, + { "name":"k_EInputSourceMode_TouchMenu", "value":"11" }, + { "name":"k_EInputSourceMode_MouseJoystick", "value":"12" }, + { "name":"k_EInputSourceMode_MouseRegion", "value":"13" }, + { "name":"k_EInputSourceMode_RadialMenu", "value":"14" }, + { "name":"k_EInputSourceMode_SingleButton", "value":"15" }, + { "name":"k_EInputSourceMode_Switches", "value":"16" } + ] + }, + { + "enumname": "EInputActionOrigin", + "values": [ + { "name":"k_EInputActionOrigin_None", "value":"0" }, + { "name":"k_EInputActionOrigin_SteamController_A", "value":"1" }, + { "name":"k_EInputActionOrigin_SteamController_B", "value":"2" }, + { "name":"k_EInputActionOrigin_SteamController_X", "value":"3" }, + { "name":"k_EInputActionOrigin_SteamController_Y", "value":"4" }, + { "name":"k_EInputActionOrigin_SteamController_LeftBumper", "value":"5" }, + { "name":"k_EInputActionOrigin_SteamController_RightBumper", "value":"6" }, + { "name":"k_EInputActionOrigin_SteamController_LeftGrip", "value":"7" }, + { "name":"k_EInputActionOrigin_SteamController_RightGrip", "value":"8" }, + { "name":"k_EInputActionOrigin_SteamController_Start", "value":"9" }, + { "name":"k_EInputActionOrigin_SteamController_Back", "value":"10" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_Touch", "value":"11" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_Swipe", "value":"12" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_Click", "value":"13" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_DPadNorth", "value":"14" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_DPadSouth", "value":"15" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_DPadWest", "value":"16" }, + { "name":"k_EInputActionOrigin_SteamController_LeftPad_DPadEast", "value":"17" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_Touch", "value":"18" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_Swipe", "value":"19" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_Click", "value":"20" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_DPadNorth", "value":"21" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_DPadSouth", "value":"22" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_DPadWest", "value":"23" }, + { "name":"k_EInputActionOrigin_SteamController_RightPad_DPadEast", "value":"24" }, + { "name":"k_EInputActionOrigin_SteamController_LeftTrigger_Pull", "value":"25" }, + { "name":"k_EInputActionOrigin_SteamController_LeftTrigger_Click", "value":"26" }, + { "name":"k_EInputActionOrigin_SteamController_RightTrigger_Pull", "value":"27" }, + { "name":"k_EInputActionOrigin_SteamController_RightTrigger_Click", "value":"28" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_Move", "value":"29" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_Click", "value":"30" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_DPadNorth", "value":"31" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_DPadSouth", "value":"32" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_DPadWest", "value":"33" }, + { "name":"k_EInputActionOrigin_SteamController_LeftStick_DPadEast", "value":"34" }, + { "name":"k_EInputActionOrigin_SteamController_Gyro_Move", "value":"35" }, + { "name":"k_EInputActionOrigin_SteamController_Gyro_Pitch", "value":"36" }, + { "name":"k_EInputActionOrigin_SteamController_Gyro_Yaw", "value":"37" }, + { "name":"k_EInputActionOrigin_SteamController_Gyro_Roll", "value":"38" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved0", "value":"39" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved1", "value":"40" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved2", "value":"41" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved3", "value":"42" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved4", "value":"43" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved5", "value":"44" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved6", "value":"45" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved7", "value":"46" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved8", "value":"47" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved9", "value":"48" }, + { "name":"k_EInputActionOrigin_SteamController_Reserved10", "value":"49" }, + { "name":"k_EInputActionOrigin_PS4_X", "value":"50" }, + { "name":"k_EInputActionOrigin_PS4_Circle", "value":"51" }, + { "name":"k_EInputActionOrigin_PS4_Triangle", "value":"52" }, + { "name":"k_EInputActionOrigin_PS4_Square", "value":"53" }, + { "name":"k_EInputActionOrigin_PS4_LeftBumper", "value":"54" }, + { "name":"k_EInputActionOrigin_PS4_RightBumper", "value":"55" }, + { "name":"k_EInputActionOrigin_PS4_Options", "value":"56" }, + { "name":"k_EInputActionOrigin_PS4_Share", "value":"57" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_Touch", "value":"58" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_Swipe", "value":"59" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_Click", "value":"60" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_DPadNorth", "value":"61" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_DPadSouth", "value":"62" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_DPadWest", "value":"63" }, + { "name":"k_EInputActionOrigin_PS4_LeftPad_DPadEast", "value":"64" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_Touch", "value":"65" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_Swipe", "value":"66" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_Click", "value":"67" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_DPadNorth", "value":"68" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_DPadSouth", "value":"69" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_DPadWest", "value":"70" }, + { "name":"k_EInputActionOrigin_PS4_RightPad_DPadEast", "value":"71" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_Touch", "value":"72" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_Swipe", "value":"73" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_Click", "value":"74" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_DPadNorth", "value":"75" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_DPadSouth", "value":"76" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_DPadWest", "value":"77" }, + { "name":"k_EInputActionOrigin_PS4_CenterPad_DPadEast", "value":"78" }, + { "name":"k_EInputActionOrigin_PS4_LeftTrigger_Pull", "value":"79" }, + { "name":"k_EInputActionOrigin_PS4_LeftTrigger_Click", "value":"80" }, + { "name":"k_EInputActionOrigin_PS4_RightTrigger_Pull", "value":"81" }, + { "name":"k_EInputActionOrigin_PS4_RightTrigger_Click", "value":"82" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_Move", "value":"83" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_Click", "value":"84" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_DPadNorth", "value":"85" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_DPadSouth", "value":"86" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_DPadWest", "value":"87" }, + { "name":"k_EInputActionOrigin_PS4_LeftStick_DPadEast", "value":"88" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_Move", "value":"89" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_Click", "value":"90" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_DPadNorth", "value":"91" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_DPadSouth", "value":"92" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_DPadWest", "value":"93" }, + { "name":"k_EInputActionOrigin_PS4_RightStick_DPadEast", "value":"94" }, + { "name":"k_EInputActionOrigin_PS4_DPad_North", "value":"95" }, + { "name":"k_EInputActionOrigin_PS4_DPad_South", "value":"96" }, + { "name":"k_EInputActionOrigin_PS4_DPad_West", "value":"97" }, + { "name":"k_EInputActionOrigin_PS4_DPad_East", "value":"98" }, + { "name":"k_EInputActionOrigin_PS4_Gyro_Move", "value":"99" }, + { "name":"k_EInputActionOrigin_PS4_Gyro_Pitch", "value":"100" }, + { "name":"k_EInputActionOrigin_PS4_Gyro_Yaw", "value":"101" }, + { "name":"k_EInputActionOrigin_PS4_Gyro_Roll", "value":"102" }, + { "name":"k_EInputActionOrigin_PS4_DPad_Move", "value":"103" }, + { "name":"k_EInputActionOrigin_PS4_Reserved1", "value":"104" }, + { "name":"k_EInputActionOrigin_PS4_Reserved2", "value":"105" }, + { "name":"k_EInputActionOrigin_PS4_Reserved3", "value":"106" }, + { "name":"k_EInputActionOrigin_PS4_Reserved4", "value":"107" }, + { "name":"k_EInputActionOrigin_PS4_Reserved5", "value":"108" }, + { "name":"k_EInputActionOrigin_PS4_Reserved6", "value":"109" }, + { "name":"k_EInputActionOrigin_PS4_Reserved7", "value":"110" }, + { "name":"k_EInputActionOrigin_PS4_Reserved8", "value":"111" }, + { "name":"k_EInputActionOrigin_PS4_Reserved9", "value":"112" }, + { "name":"k_EInputActionOrigin_PS4_Reserved10", "value":"113" }, + { "name":"k_EInputActionOrigin_XBoxOne_A", "value":"114" }, + { "name":"k_EInputActionOrigin_XBoxOne_B", "value":"115" }, + { "name":"k_EInputActionOrigin_XBoxOne_X", "value":"116" }, + { "name":"k_EInputActionOrigin_XBoxOne_Y", "value":"117" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftBumper", "value":"118" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightBumper", "value":"119" }, + { "name":"k_EInputActionOrigin_XBoxOne_Menu", "value":"120" }, + { "name":"k_EInputActionOrigin_XBoxOne_View", "value":"121" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftTrigger_Pull", "value":"122" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftTrigger_Click", "value":"123" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightTrigger_Pull", "value":"124" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightTrigger_Click", "value":"125" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_Move", "value":"126" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_Click", "value":"127" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_DPadNorth", "value":"128" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_DPadSouth", "value":"129" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_DPadWest", "value":"130" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftStick_DPadEast", "value":"131" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_Move", "value":"132" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_Click", "value":"133" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_DPadNorth", "value":"134" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_DPadSouth", "value":"135" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_DPadWest", "value":"136" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightStick_DPadEast", "value":"137" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_North", "value":"138" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_South", "value":"139" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_West", "value":"140" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_East", "value":"141" }, + { "name":"k_EInputActionOrigin_XBoxOne_DPad_Move", "value":"142" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftGrip_Lower", "value":"143" }, + { "name":"k_EInputActionOrigin_XBoxOne_LeftGrip_Upper", "value":"144" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightGrip_Lower", "value":"145" }, + { "name":"k_EInputActionOrigin_XBoxOne_RightGrip_Upper", "value":"146" }, + { "name":"k_EInputActionOrigin_XBoxOne_Share", "value":"147" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved6", "value":"148" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved7", "value":"149" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved8", "value":"150" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved9", "value":"151" }, + { "name":"k_EInputActionOrigin_XBoxOne_Reserved10", "value":"152" }, + { "name":"k_EInputActionOrigin_XBox360_A", "value":"153" }, + { "name":"k_EInputActionOrigin_XBox360_B", "value":"154" }, + { "name":"k_EInputActionOrigin_XBox360_X", "value":"155" }, + { "name":"k_EInputActionOrigin_XBox360_Y", "value":"156" }, + { "name":"k_EInputActionOrigin_XBox360_LeftBumper", "value":"157" }, + { "name":"k_EInputActionOrigin_XBox360_RightBumper", "value":"158" }, + { "name":"k_EInputActionOrigin_XBox360_Start", "value":"159" }, + { "name":"k_EInputActionOrigin_XBox360_Back", "value":"160" }, + { "name":"k_EInputActionOrigin_XBox360_LeftTrigger_Pull", "value":"161" }, + { "name":"k_EInputActionOrigin_XBox360_LeftTrigger_Click", "value":"162" }, + { "name":"k_EInputActionOrigin_XBox360_RightTrigger_Pull", "value":"163" }, + { "name":"k_EInputActionOrigin_XBox360_RightTrigger_Click", "value":"164" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_Move", "value":"165" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_Click", "value":"166" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_DPadNorth", "value":"167" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_DPadSouth", "value":"168" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_DPadWest", "value":"169" }, + { "name":"k_EInputActionOrigin_XBox360_LeftStick_DPadEast", "value":"170" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_Move", "value":"171" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_Click", "value":"172" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_DPadNorth", "value":"173" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_DPadSouth", "value":"174" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_DPadWest", "value":"175" }, + { "name":"k_EInputActionOrigin_XBox360_RightStick_DPadEast", "value":"176" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_North", "value":"177" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_South", "value":"178" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_West", "value":"179" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_East", "value":"180" }, + { "name":"k_EInputActionOrigin_XBox360_DPad_Move", "value":"181" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved1", "value":"182" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved2", "value":"183" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved3", "value":"184" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved4", "value":"185" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved5", "value":"186" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved6", "value":"187" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved7", "value":"188" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved8", "value":"189" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved9", "value":"190" }, + { "name":"k_EInputActionOrigin_XBox360_Reserved10", "value":"191" }, + { "name":"k_EInputActionOrigin_Switch_A", "value":"192" }, + { "name":"k_EInputActionOrigin_Switch_B", "value":"193" }, + { "name":"k_EInputActionOrigin_Switch_X", "value":"194" }, + { "name":"k_EInputActionOrigin_Switch_Y", "value":"195" }, + { "name":"k_EInputActionOrigin_Switch_LeftBumper", "value":"196" }, + { "name":"k_EInputActionOrigin_Switch_RightBumper", "value":"197" }, + { "name":"k_EInputActionOrigin_Switch_Plus", "value":"198" }, + { "name":"k_EInputActionOrigin_Switch_Minus", "value":"199" }, + { "name":"k_EInputActionOrigin_Switch_Capture", "value":"200" }, + { "name":"k_EInputActionOrigin_Switch_LeftTrigger_Pull", "value":"201" }, + { "name":"k_EInputActionOrigin_Switch_LeftTrigger_Click", "value":"202" }, + { "name":"k_EInputActionOrigin_Switch_RightTrigger_Pull", "value":"203" }, + { "name":"k_EInputActionOrigin_Switch_RightTrigger_Click", "value":"204" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_Move", "value":"205" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_Click", "value":"206" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_DPadNorth", "value":"207" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_DPadSouth", "value":"208" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_DPadWest", "value":"209" }, + { "name":"k_EInputActionOrigin_Switch_LeftStick_DPadEast", "value":"210" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_Move", "value":"211" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_Click", "value":"212" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_DPadNorth", "value":"213" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_DPadSouth", "value":"214" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_DPadWest", "value":"215" }, + { "name":"k_EInputActionOrigin_Switch_RightStick_DPadEast", "value":"216" }, + { "name":"k_EInputActionOrigin_Switch_DPad_North", "value":"217" }, + { "name":"k_EInputActionOrigin_Switch_DPad_South", "value":"218" }, + { "name":"k_EInputActionOrigin_Switch_DPad_West", "value":"219" }, + { "name":"k_EInputActionOrigin_Switch_DPad_East", "value":"220" }, + { "name":"k_EInputActionOrigin_Switch_ProGyro_Move", "value":"221" }, + { "name":"k_EInputActionOrigin_Switch_ProGyro_Pitch", "value":"222" }, + { "name":"k_EInputActionOrigin_Switch_ProGyro_Yaw", "value":"223" }, + { "name":"k_EInputActionOrigin_Switch_ProGyro_Roll", "value":"224" }, + { "name":"k_EInputActionOrigin_Switch_DPad_Move", "value":"225" }, + { "name":"k_EInputActionOrigin_Switch_Reserved1", "value":"226" }, + { "name":"k_EInputActionOrigin_Switch_Reserved2", "value":"227" }, + { "name":"k_EInputActionOrigin_Switch_Reserved3", "value":"228" }, + { "name":"k_EInputActionOrigin_Switch_Reserved4", "value":"229" }, + { "name":"k_EInputActionOrigin_Switch_Reserved5", "value":"230" }, + { "name":"k_EInputActionOrigin_Switch_Reserved6", "value":"231" }, + { "name":"k_EInputActionOrigin_Switch_Reserved7", "value":"232" }, + { "name":"k_EInputActionOrigin_Switch_Reserved8", "value":"233" }, + { "name":"k_EInputActionOrigin_Switch_Reserved9", "value":"234" }, + { "name":"k_EInputActionOrigin_Switch_Reserved10", "value":"235" }, + { "name":"k_EInputActionOrigin_Switch_RightGyro_Move", "value":"236" }, + { "name":"k_EInputActionOrigin_Switch_RightGyro_Pitch", "value":"237" }, + { "name":"k_EInputActionOrigin_Switch_RightGyro_Yaw", "value":"238" }, + { "name":"k_EInputActionOrigin_Switch_RightGyro_Roll", "value":"239" }, + { "name":"k_EInputActionOrigin_Switch_LeftGyro_Move", "value":"240" }, + { "name":"k_EInputActionOrigin_Switch_LeftGyro_Pitch", "value":"241" }, + { "name":"k_EInputActionOrigin_Switch_LeftGyro_Yaw", "value":"242" }, + { "name":"k_EInputActionOrigin_Switch_LeftGyro_Roll", "value":"243" }, + { "name":"k_EInputActionOrigin_Switch_LeftGrip_Lower", "value":"244" }, + { "name":"k_EInputActionOrigin_Switch_LeftGrip_Upper", "value":"245" }, + { "name":"k_EInputActionOrigin_Switch_RightGrip_Lower", "value":"246" }, + { "name":"k_EInputActionOrigin_Switch_RightGrip_Upper", "value":"247" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_N", "value":"248" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_E", "value":"249" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_S", "value":"250" }, + { "name":"k_EInputActionOrigin_Switch_JoyConButton_W", "value":"251" }, + { "name":"k_EInputActionOrigin_Switch_Reserved15", "value":"252" }, + { "name":"k_EInputActionOrigin_Switch_Reserved16", "value":"253" }, + { "name":"k_EInputActionOrigin_Switch_Reserved17", "value":"254" }, + { "name":"k_EInputActionOrigin_Switch_Reserved18", "value":"255" }, + { "name":"k_EInputActionOrigin_Switch_Reserved19", "value":"256" }, + { "name":"k_EInputActionOrigin_Switch_Reserved20", "value":"257" }, + { "name":"k_EInputActionOrigin_PS5_X", "value":"258" }, + { "name":"k_EInputActionOrigin_PS5_Circle", "value":"259" }, + { "name":"k_EInputActionOrigin_PS5_Triangle", "value":"260" }, + { "name":"k_EInputActionOrigin_PS5_Square", "value":"261" }, + { "name":"k_EInputActionOrigin_PS5_LeftBumper", "value":"262" }, + { "name":"k_EInputActionOrigin_PS5_RightBumper", "value":"263" }, + { "name":"k_EInputActionOrigin_PS5_Option", "value":"264" }, + { "name":"k_EInputActionOrigin_PS5_Create", "value":"265" }, + { "name":"k_EInputActionOrigin_PS5_Mute", "value":"266" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_Touch", "value":"267" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_Swipe", "value":"268" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_Click", "value":"269" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_DPadNorth", "value":"270" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_DPadSouth", "value":"271" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_DPadWest", "value":"272" }, + { "name":"k_EInputActionOrigin_PS5_LeftPad_DPadEast", "value":"273" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_Touch", "value":"274" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_Swipe", "value":"275" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_Click", "value":"276" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_DPadNorth", "value":"277" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_DPadSouth", "value":"278" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_DPadWest", "value":"279" }, + { "name":"k_EInputActionOrigin_PS5_RightPad_DPadEast", "value":"280" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_Touch", "value":"281" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_Swipe", "value":"282" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_Click", "value":"283" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_DPadNorth", "value":"284" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_DPadSouth", "value":"285" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_DPadWest", "value":"286" }, + { "name":"k_EInputActionOrigin_PS5_CenterPad_DPadEast", "value":"287" }, + { "name":"k_EInputActionOrigin_PS5_LeftTrigger_Pull", "value":"288" }, + { "name":"k_EInputActionOrigin_PS5_LeftTrigger_Click", "value":"289" }, + { "name":"k_EInputActionOrigin_PS5_RightTrigger_Pull", "value":"290" }, + { "name":"k_EInputActionOrigin_PS5_RightTrigger_Click", "value":"291" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_Move", "value":"292" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_Click", "value":"293" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_DPadNorth", "value":"294" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_DPadSouth", "value":"295" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_DPadWest", "value":"296" }, + { "name":"k_EInputActionOrigin_PS5_LeftStick_DPadEast", "value":"297" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_Move", "value":"298" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_Click", "value":"299" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_DPadNorth", "value":"300" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_DPadSouth", "value":"301" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_DPadWest", "value":"302" }, + { "name":"k_EInputActionOrigin_PS5_RightStick_DPadEast", "value":"303" }, + { "name":"k_EInputActionOrigin_PS5_DPad_North", "value":"304" }, + { "name":"k_EInputActionOrigin_PS5_DPad_South", "value":"305" }, + { "name":"k_EInputActionOrigin_PS5_DPad_West", "value":"306" }, + { "name":"k_EInputActionOrigin_PS5_DPad_East", "value":"307" }, + { "name":"k_EInputActionOrigin_PS5_Gyro_Move", "value":"308" }, + { "name":"k_EInputActionOrigin_PS5_Gyro_Pitch", "value":"309" }, + { "name":"k_EInputActionOrigin_PS5_Gyro_Yaw", "value":"310" }, + { "name":"k_EInputActionOrigin_PS5_Gyro_Roll", "value":"311" }, + { "name":"k_EInputActionOrigin_PS5_DPad_Move", "value":"312" }, + { "name":"k_EInputActionOrigin_PS5_LeftGrip", "value":"313" }, + { "name":"k_EInputActionOrigin_PS5_RightGrip", "value":"314" }, + { "name":"k_EInputActionOrigin_PS5_LeftFn", "value":"315" }, + { "name":"k_EInputActionOrigin_PS5_RightFn", "value":"316" }, + { "name":"k_EInputActionOrigin_PS5_Reserved5", "value":"317" }, + { "name":"k_EInputActionOrigin_PS5_Reserved6", "value":"318" }, + { "name":"k_EInputActionOrigin_PS5_Reserved7", "value":"319" }, + { "name":"k_EInputActionOrigin_PS5_Reserved8", "value":"320" }, + { "name":"k_EInputActionOrigin_PS5_Reserved9", "value":"321" }, + { "name":"k_EInputActionOrigin_PS5_Reserved10", "value":"322" }, + { "name":"k_EInputActionOrigin_PS5_Reserved11", "value":"323" }, + { "name":"k_EInputActionOrigin_PS5_Reserved12", "value":"324" }, + { "name":"k_EInputActionOrigin_PS5_Reserved13", "value":"325" }, + { "name":"k_EInputActionOrigin_PS5_Reserved14", "value":"326" }, + { "name":"k_EInputActionOrigin_PS5_Reserved15", "value":"327" }, + { "name":"k_EInputActionOrigin_PS5_Reserved16", "value":"328" }, + { "name":"k_EInputActionOrigin_PS5_Reserved17", "value":"329" }, + { "name":"k_EInputActionOrigin_PS5_Reserved18", "value":"330" }, + { "name":"k_EInputActionOrigin_PS5_Reserved19", "value":"331" }, + { "name":"k_EInputActionOrigin_PS5_Reserved20", "value":"332" }, + { "name":"k_EInputActionOrigin_SteamDeck_A", "value":"333" }, + { "name":"k_EInputActionOrigin_SteamDeck_B", "value":"334" }, + { "name":"k_EInputActionOrigin_SteamDeck_X", "value":"335" }, + { "name":"k_EInputActionOrigin_SteamDeck_Y", "value":"336" }, + { "name":"k_EInputActionOrigin_SteamDeck_L1", "value":"337" }, + { "name":"k_EInputActionOrigin_SteamDeck_R1", "value":"338" }, + { "name":"k_EInputActionOrigin_SteamDeck_Menu", "value":"339" }, + { "name":"k_EInputActionOrigin_SteamDeck_View", "value":"340" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_Touch", "value":"341" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_Swipe", "value":"342" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_Click", "value":"343" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_DPadNorth", "value":"344" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_DPadSouth", "value":"345" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_DPadWest", "value":"346" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftPad_DPadEast", "value":"347" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_Touch", "value":"348" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_Swipe", "value":"349" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_Click", "value":"350" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_DPadNorth", "value":"351" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_DPadSouth", "value":"352" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_DPadWest", "value":"353" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightPad_DPadEast", "value":"354" }, + { "name":"k_EInputActionOrigin_SteamDeck_L2_SoftPull", "value":"355" }, + { "name":"k_EInputActionOrigin_SteamDeck_L2", "value":"356" }, + { "name":"k_EInputActionOrigin_SteamDeck_R2_SoftPull", "value":"357" }, + { "name":"k_EInputActionOrigin_SteamDeck_R2", "value":"358" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_Move", "value":"359" }, + { "name":"k_EInputActionOrigin_SteamDeck_L3", "value":"360" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_DPadNorth", "value":"361" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_DPadSouth", "value":"362" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_DPadWest", "value":"363" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_DPadEast", "value":"364" }, + { "name":"k_EInputActionOrigin_SteamDeck_LeftStick_Touch", "value":"365" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_Move", "value":"366" }, + { "name":"k_EInputActionOrigin_SteamDeck_R3", "value":"367" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_DPadNorth", "value":"368" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_DPadSouth", "value":"369" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_DPadWest", "value":"370" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_DPadEast", "value":"371" }, + { "name":"k_EInputActionOrigin_SteamDeck_RightStick_Touch", "value":"372" }, + { "name":"k_EInputActionOrigin_SteamDeck_L4", "value":"373" }, + { "name":"k_EInputActionOrigin_SteamDeck_R4", "value":"374" }, + { "name":"k_EInputActionOrigin_SteamDeck_L5", "value":"375" }, + { "name":"k_EInputActionOrigin_SteamDeck_R5", "value":"376" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_Move", "value":"377" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_North", "value":"378" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_South", "value":"379" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_West", "value":"380" }, + { "name":"k_EInputActionOrigin_SteamDeck_DPad_East", "value":"381" }, + { "name":"k_EInputActionOrigin_SteamDeck_Gyro_Move", "value":"382" }, + { "name":"k_EInputActionOrigin_SteamDeck_Gyro_Pitch", "value":"383" }, + { "name":"k_EInputActionOrigin_SteamDeck_Gyro_Yaw", "value":"384" }, + { "name":"k_EInputActionOrigin_SteamDeck_Gyro_Roll", "value":"385" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved1", "value":"386" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved2", "value":"387" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved3", "value":"388" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved4", "value":"389" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved5", "value":"390" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved6", "value":"391" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved7", "value":"392" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved8", "value":"393" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved9", "value":"394" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved10", "value":"395" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved11", "value":"396" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved12", "value":"397" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved13", "value":"398" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved14", "value":"399" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved15", "value":"400" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved16", "value":"401" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved17", "value":"402" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved18", "value":"403" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved19", "value":"404" }, + { "name":"k_EInputActionOrigin_SteamDeck_Reserved20", "value":"405" }, + { "name":"k_EInputActionOrigin_Count", "value":"406" }, + { "name":"k_EInputActionOrigin_MaximumPossibleValue", "value":"32767" } + ] + }, + { + "enumname": "EXboxOrigin", + "values": [ + { "name":"k_EXboxOrigin_A", "value":"0" }, + { "name":"k_EXboxOrigin_B", "value":"1" }, + { "name":"k_EXboxOrigin_X", "value":"2" }, + { "name":"k_EXboxOrigin_Y", "value":"3" }, + { "name":"k_EXboxOrigin_LeftBumper", "value":"4" }, + { "name":"k_EXboxOrigin_RightBumper", "value":"5" }, + { "name":"k_EXboxOrigin_Menu", "value":"6" }, + { "name":"k_EXboxOrigin_View", "value":"7" }, + { "name":"k_EXboxOrigin_LeftTrigger_Pull", "value":"8" }, + { "name":"k_EXboxOrigin_LeftTrigger_Click", "value":"9" }, + { "name":"k_EXboxOrigin_RightTrigger_Pull", "value":"10" }, + { "name":"k_EXboxOrigin_RightTrigger_Click", "value":"11" }, + { "name":"k_EXboxOrigin_LeftStick_Move", "value":"12" }, + { "name":"k_EXboxOrigin_LeftStick_Click", "value":"13" }, + { "name":"k_EXboxOrigin_LeftStick_DPadNorth", "value":"14" }, + { "name":"k_EXboxOrigin_LeftStick_DPadSouth", "value":"15" }, + { "name":"k_EXboxOrigin_LeftStick_DPadWest", "value":"16" }, + { "name":"k_EXboxOrigin_LeftStick_DPadEast", "value":"17" }, + { "name":"k_EXboxOrigin_RightStick_Move", "value":"18" }, + { "name":"k_EXboxOrigin_RightStick_Click", "value":"19" }, + { "name":"k_EXboxOrigin_RightStick_DPadNorth", "value":"20" }, + { "name":"k_EXboxOrigin_RightStick_DPadSouth", "value":"21" }, + { "name":"k_EXboxOrigin_RightStick_DPadWest", "value":"22" }, + { "name":"k_EXboxOrigin_RightStick_DPadEast", "value":"23" }, + { "name":"k_EXboxOrigin_DPad_North", "value":"24" }, + { "name":"k_EXboxOrigin_DPad_South", "value":"25" }, + { "name":"k_EXboxOrigin_DPad_West", "value":"26" }, + { "name":"k_EXboxOrigin_DPad_East", "value":"27" }, + { "name":"k_EXboxOrigin_Count", "value":"28" } + ] + }, + { + "enumname": "ESteamControllerPad", + "values": [ + { "name":"k_ESteamControllerPad_Left", "value":"0" }, + { "name":"k_ESteamControllerPad_Right", "value":"1" } + ] + }, + { + "enumname": "EControllerHapticLocation", + "values": [ + { "name":"k_EControllerHapticLocation_Left", "value":"1" }, + { "name":"k_EControllerHapticLocation_Right", "value":"2" }, + { "name":"k_EControllerHapticLocation_Both", "value":"3" } + ] + }, + { + "enumname": "EControllerHapticType", + "values": [ + { "name":"k_EControllerHapticType_Off", "value":"0" }, + { "name":"k_EControllerHapticType_Tick", "value":"1" }, + { "name":"k_EControllerHapticType_Click", "value":"2" } + ] + }, + { + "enumname": "ESteamInputType", + "values": [ + { "name":"k_ESteamInputType_Unknown", "value":"0" }, + { "name":"k_ESteamInputType_SteamController", "value":"1" }, + { "name":"k_ESteamInputType_XBox360Controller", "value":"2" }, + { "name":"k_ESteamInputType_XBoxOneController", "value":"3" }, + { "name":"k_ESteamInputType_GenericGamepad", "value":"4" }, + { "name":"k_ESteamInputType_PS4Controller", "value":"5" }, + { "name":"k_ESteamInputType_AppleMFiController", "value":"6" }, + { "name":"k_ESteamInputType_AndroidController", "value":"7" }, + { "name":"k_ESteamInputType_SwitchJoyConPair", "value":"8" }, + { "name":"k_ESteamInputType_SwitchJoyConSingle", "value":"9" }, + { "name":"k_ESteamInputType_SwitchProController", "value":"10" }, + { "name":"k_ESteamInputType_MobileTouch", "value":"11" }, + { "name":"k_ESteamInputType_PS3Controller", "value":"12" }, + { "name":"k_ESteamInputType_PS5Controller", "value":"13" }, + { "name":"k_ESteamInputType_SteamDeckController", "value":"14" }, + { "name":"k_ESteamInputType_Count", "value":"15" }, + { "name":"k_ESteamInputType_MaximumPossibleValue", "value":"255" } + ] + }, + { + "enumname": "ESteamInputConfigurationEnableType", + "values": [ + { "name":"k_ESteamInputConfigurationEnableType_None", "value":"0" }, + { "name":"k_ESteamInputConfigurationEnableType_Playstation", "value":"1" }, + { "name":"k_ESteamInputConfigurationEnableType_Xbox", "value":"2" }, + { "name":"k_ESteamInputConfigurationEnableType_Generic", "value":"4" }, + { "name":"k_ESteamInputConfigurationEnableType_Switch", "value":"8" } + ] + }, + { + "enumname": "ESteamInputLEDFlag", + "values": [ + { "name":"k_ESteamInputLEDFlag_SetColor", "value":"0" }, + { "name":"k_ESteamInputLEDFlag_RestoreUserDefault", "value":"1" } + ] + }, + { + "enumname": "ESteamInputGlyphSize", + "values": [ + { "name":"k_ESteamInputGlyphSize_Small", "value":"0" }, + { "name":"k_ESteamInputGlyphSize_Medium", "value":"1" }, + { "name":"k_ESteamInputGlyphSize_Large", "value":"2" }, + { "name":"k_ESteamInputGlyphSize_Count", "value":"3" } + ] + }, + { + "enumname": "ESteamInputGlyphStyle", + "values": [ + { "name":"ESteamInputGlyphStyle_Knockout", "value":"0" }, + { "name":"ESteamInputGlyphStyle_Light", "value":"1" }, + { "name":"ESteamInputGlyphStyle_Dark", "value":"2" }, + { "name":"ESteamInputGlyphStyle_NeutralColorABXY", "value":"16" }, + { "name":"ESteamInputGlyphStyle_SolidABXY", "value":"32" } + ] + }, + { + "enumname": "ESteamInputActionEventType", + "values": [ + { "name":"ESteamInputActionEventType_DigitalAction", "value":"0" }, + { "name":"ESteamInputActionEventType_AnalogAction", "value":"1" } + ] + }, + { + "enumname": "EControllerActionOrigin", + "values": [ + { "name":"k_EControllerActionOrigin_None", "value":"0" }, + { "name":"k_EControllerActionOrigin_A", "value":"1" }, + { "name":"k_EControllerActionOrigin_B", "value":"2" }, + { "name":"k_EControllerActionOrigin_X", "value":"3" }, + { "name":"k_EControllerActionOrigin_Y", "value":"4" }, + { "name":"k_EControllerActionOrigin_LeftBumper", "value":"5" }, + { "name":"k_EControllerActionOrigin_RightBumper", "value":"6" }, + { "name":"k_EControllerActionOrigin_LeftGrip", "value":"7" }, + { "name":"k_EControllerActionOrigin_RightGrip", "value":"8" }, + { "name":"k_EControllerActionOrigin_Start", "value":"9" }, + { "name":"k_EControllerActionOrigin_Back", "value":"10" }, + { "name":"k_EControllerActionOrigin_LeftPad_Touch", "value":"11" }, + { "name":"k_EControllerActionOrigin_LeftPad_Swipe", "value":"12" }, + { "name":"k_EControllerActionOrigin_LeftPad_Click", "value":"13" }, + { "name":"k_EControllerActionOrigin_LeftPad_DPadNorth", "value":"14" }, + { "name":"k_EControllerActionOrigin_LeftPad_DPadSouth", "value":"15" }, + { "name":"k_EControllerActionOrigin_LeftPad_DPadWest", "value":"16" }, + { "name":"k_EControllerActionOrigin_LeftPad_DPadEast", "value":"17" }, + { "name":"k_EControllerActionOrigin_RightPad_Touch", "value":"18" }, + { "name":"k_EControllerActionOrigin_RightPad_Swipe", "value":"19" }, + { "name":"k_EControllerActionOrigin_RightPad_Click", "value":"20" }, + { "name":"k_EControllerActionOrigin_RightPad_DPadNorth", "value":"21" }, + { "name":"k_EControllerActionOrigin_RightPad_DPadSouth", "value":"22" }, + { "name":"k_EControllerActionOrigin_RightPad_DPadWest", "value":"23" }, + { "name":"k_EControllerActionOrigin_RightPad_DPadEast", "value":"24" }, + { "name":"k_EControllerActionOrigin_LeftTrigger_Pull", "value":"25" }, + { "name":"k_EControllerActionOrigin_LeftTrigger_Click", "value":"26" }, + { "name":"k_EControllerActionOrigin_RightTrigger_Pull", "value":"27" }, + { "name":"k_EControllerActionOrigin_RightTrigger_Click", "value":"28" }, + { "name":"k_EControllerActionOrigin_LeftStick_Move", "value":"29" }, + { "name":"k_EControllerActionOrigin_LeftStick_Click", "value":"30" }, + { "name":"k_EControllerActionOrigin_LeftStick_DPadNorth", "value":"31" }, + { "name":"k_EControllerActionOrigin_LeftStick_DPadSouth", "value":"32" }, + { "name":"k_EControllerActionOrigin_LeftStick_DPadWest", "value":"33" }, + { "name":"k_EControllerActionOrigin_LeftStick_DPadEast", "value":"34" }, + { "name":"k_EControllerActionOrigin_Gyro_Move", "value":"35" }, + { "name":"k_EControllerActionOrigin_Gyro_Pitch", "value":"36" }, + { "name":"k_EControllerActionOrigin_Gyro_Yaw", "value":"37" }, + { "name":"k_EControllerActionOrigin_Gyro_Roll", "value":"38" }, + { "name":"k_EControllerActionOrigin_PS4_X", "value":"39" }, + { "name":"k_EControllerActionOrigin_PS4_Circle", "value":"40" }, + { "name":"k_EControllerActionOrigin_PS4_Triangle", "value":"41" }, + { "name":"k_EControllerActionOrigin_PS4_Square", "value":"42" }, + { "name":"k_EControllerActionOrigin_PS4_LeftBumper", "value":"43" }, + { "name":"k_EControllerActionOrigin_PS4_RightBumper", "value":"44" }, + { "name":"k_EControllerActionOrigin_PS4_Options", "value":"45" }, + { "name":"k_EControllerActionOrigin_PS4_Share", "value":"46" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_Touch", "value":"47" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_Swipe", "value":"48" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_Click", "value":"49" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_DPadNorth", "value":"50" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_DPadSouth", "value":"51" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_DPadWest", "value":"52" }, + { "name":"k_EControllerActionOrigin_PS4_LeftPad_DPadEast", "value":"53" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_Touch", "value":"54" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_Swipe", "value":"55" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_Click", "value":"56" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_DPadNorth", "value":"57" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_DPadSouth", "value":"58" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_DPadWest", "value":"59" }, + { "name":"k_EControllerActionOrigin_PS4_RightPad_DPadEast", "value":"60" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_Touch", "value":"61" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_Swipe", "value":"62" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_Click", "value":"63" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_DPadNorth", "value":"64" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_DPadSouth", "value":"65" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_DPadWest", "value":"66" }, + { "name":"k_EControllerActionOrigin_PS4_CenterPad_DPadEast", "value":"67" }, + { "name":"k_EControllerActionOrigin_PS4_LeftTrigger_Pull", "value":"68" }, + { "name":"k_EControllerActionOrigin_PS4_LeftTrigger_Click", "value":"69" }, + { "name":"k_EControllerActionOrigin_PS4_RightTrigger_Pull", "value":"70" }, + { "name":"k_EControllerActionOrigin_PS4_RightTrigger_Click", "value":"71" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_Move", "value":"72" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_Click", "value":"73" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_DPadNorth", "value":"74" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_DPadSouth", "value":"75" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_DPadWest", "value":"76" }, + { "name":"k_EControllerActionOrigin_PS4_LeftStick_DPadEast", "value":"77" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_Move", "value":"78" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_Click", "value":"79" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_DPadNorth", "value":"80" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_DPadSouth", "value":"81" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_DPadWest", "value":"82" }, + { "name":"k_EControllerActionOrigin_PS4_RightStick_DPadEast", "value":"83" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_North", "value":"84" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_South", "value":"85" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_West", "value":"86" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_East", "value":"87" }, + { "name":"k_EControllerActionOrigin_PS4_Gyro_Move", "value":"88" }, + { "name":"k_EControllerActionOrigin_PS4_Gyro_Pitch", "value":"89" }, + { "name":"k_EControllerActionOrigin_PS4_Gyro_Yaw", "value":"90" }, + { "name":"k_EControllerActionOrigin_PS4_Gyro_Roll", "value":"91" }, + { "name":"k_EControllerActionOrigin_XBoxOne_A", "value":"92" }, + { "name":"k_EControllerActionOrigin_XBoxOne_B", "value":"93" }, + { "name":"k_EControllerActionOrigin_XBoxOne_X", "value":"94" }, + { "name":"k_EControllerActionOrigin_XBoxOne_Y", "value":"95" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftBumper", "value":"96" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightBumper", "value":"97" }, + { "name":"k_EControllerActionOrigin_XBoxOne_Menu", "value":"98" }, + { "name":"k_EControllerActionOrigin_XBoxOne_View", "value":"99" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull", "value":"100" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click", "value":"101" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull", "value":"102" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightTrigger_Click", "value":"103" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_Move", "value":"104" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_Click", "value":"105" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth", "value":"106" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth", "value":"107" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest", "value":"108" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast", "value":"109" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_Move", "value":"110" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_Click", "value":"111" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth", "value":"112" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth", "value":"113" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest", "value":"114" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast", "value":"115" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_North", "value":"116" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_South", "value":"117" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_West", "value":"118" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_East", "value":"119" }, + { "name":"k_EControllerActionOrigin_XBox360_A", "value":"120" }, + { "name":"k_EControllerActionOrigin_XBox360_B", "value":"121" }, + { "name":"k_EControllerActionOrigin_XBox360_X", "value":"122" }, + { "name":"k_EControllerActionOrigin_XBox360_Y", "value":"123" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftBumper", "value":"124" }, + { "name":"k_EControllerActionOrigin_XBox360_RightBumper", "value":"125" }, + { "name":"k_EControllerActionOrigin_XBox360_Start", "value":"126" }, + { "name":"k_EControllerActionOrigin_XBox360_Back", "value":"127" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftTrigger_Pull", "value":"128" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftTrigger_Click", "value":"129" }, + { "name":"k_EControllerActionOrigin_XBox360_RightTrigger_Pull", "value":"130" }, + { "name":"k_EControllerActionOrigin_XBox360_RightTrigger_Click", "value":"131" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_Move", "value":"132" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_Click", "value":"133" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth", "value":"134" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth", "value":"135" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_DPadWest", "value":"136" }, + { "name":"k_EControllerActionOrigin_XBox360_LeftStick_DPadEast", "value":"137" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_Move", "value":"138" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_Click", "value":"139" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_DPadNorth", "value":"140" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_DPadSouth", "value":"141" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_DPadWest", "value":"142" }, + { "name":"k_EControllerActionOrigin_XBox360_RightStick_DPadEast", "value":"143" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_North", "value":"144" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_South", "value":"145" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_West", "value":"146" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_East", "value":"147" }, + { "name":"k_EControllerActionOrigin_SteamV2_A", "value":"148" }, + { "name":"k_EControllerActionOrigin_SteamV2_B", "value":"149" }, + { "name":"k_EControllerActionOrigin_SteamV2_X", "value":"150" }, + { "name":"k_EControllerActionOrigin_SteamV2_Y", "value":"151" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftBumper", "value":"152" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightBumper", "value":"153" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftGrip_Lower", "value":"154" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftGrip_Upper", "value":"155" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightGrip_Lower", "value":"156" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightGrip_Upper", "value":"157" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftBumper_Pressure", "value":"158" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightBumper_Pressure", "value":"159" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftGrip_Pressure", "value":"160" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightGrip_Pressure", "value":"161" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftGrip_Upper_Pressure", "value":"162" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightGrip_Upper_Pressure", "value":"163" }, + { "name":"k_EControllerActionOrigin_SteamV2_Start", "value":"164" }, + { "name":"k_EControllerActionOrigin_SteamV2_Back", "value":"165" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_Touch", "value":"166" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_Swipe", "value":"167" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_Click", "value":"168" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_Pressure", "value":"169" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_DPadNorth", "value":"170" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_DPadSouth", "value":"171" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_DPadWest", "value":"172" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftPad_DPadEast", "value":"173" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_Touch", "value":"174" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_Swipe", "value":"175" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_Click", "value":"176" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_Pressure", "value":"177" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_DPadNorth", "value":"178" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_DPadSouth", "value":"179" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_DPadWest", "value":"180" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightPad_DPadEast", "value":"181" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftTrigger_Pull", "value":"182" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftTrigger_Click", "value":"183" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightTrigger_Pull", "value":"184" }, + { "name":"k_EControllerActionOrigin_SteamV2_RightTrigger_Click", "value":"185" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_Move", "value":"186" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_Click", "value":"187" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_DPadNorth", "value":"188" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_DPadSouth", "value":"189" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_DPadWest", "value":"190" }, + { "name":"k_EControllerActionOrigin_SteamV2_LeftStick_DPadEast", "value":"191" }, + { "name":"k_EControllerActionOrigin_SteamV2_Gyro_Move", "value":"192" }, + { "name":"k_EControllerActionOrigin_SteamV2_Gyro_Pitch", "value":"193" }, + { "name":"k_EControllerActionOrigin_SteamV2_Gyro_Yaw", "value":"194" }, + { "name":"k_EControllerActionOrigin_SteamV2_Gyro_Roll", "value":"195" }, + { "name":"k_EControllerActionOrigin_Switch_A", "value":"196" }, + { "name":"k_EControllerActionOrigin_Switch_B", "value":"197" }, + { "name":"k_EControllerActionOrigin_Switch_X", "value":"198" }, + { "name":"k_EControllerActionOrigin_Switch_Y", "value":"199" }, + { "name":"k_EControllerActionOrigin_Switch_LeftBumper", "value":"200" }, + { "name":"k_EControllerActionOrigin_Switch_RightBumper", "value":"201" }, + { "name":"k_EControllerActionOrigin_Switch_Plus", "value":"202" }, + { "name":"k_EControllerActionOrigin_Switch_Minus", "value":"203" }, + { "name":"k_EControllerActionOrigin_Switch_Capture", "value":"204" }, + { "name":"k_EControllerActionOrigin_Switch_LeftTrigger_Pull", "value":"205" }, + { "name":"k_EControllerActionOrigin_Switch_LeftTrigger_Click", "value":"206" }, + { "name":"k_EControllerActionOrigin_Switch_RightTrigger_Pull", "value":"207" }, + { "name":"k_EControllerActionOrigin_Switch_RightTrigger_Click", "value":"208" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_Move", "value":"209" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_Click", "value":"210" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_DPadNorth", "value":"211" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_DPadSouth", "value":"212" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_DPadWest", "value":"213" }, + { "name":"k_EControllerActionOrigin_Switch_LeftStick_DPadEast", "value":"214" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_Move", "value":"215" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_Click", "value":"216" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_DPadNorth", "value":"217" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_DPadSouth", "value":"218" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_DPadWest", "value":"219" }, + { "name":"k_EControllerActionOrigin_Switch_RightStick_DPadEast", "value":"220" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_North", "value":"221" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_South", "value":"222" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_West", "value":"223" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_East", "value":"224" }, + { "name":"k_EControllerActionOrigin_Switch_ProGyro_Move", "value":"225" }, + { "name":"k_EControllerActionOrigin_Switch_ProGyro_Pitch", "value":"226" }, + { "name":"k_EControllerActionOrigin_Switch_ProGyro_Yaw", "value":"227" }, + { "name":"k_EControllerActionOrigin_Switch_ProGyro_Roll", "value":"228" }, + { "name":"k_EControllerActionOrigin_Switch_RightGyro_Move", "value":"229" }, + { "name":"k_EControllerActionOrigin_Switch_RightGyro_Pitch", "value":"230" }, + { "name":"k_EControllerActionOrigin_Switch_RightGyro_Yaw", "value":"231" }, + { "name":"k_EControllerActionOrigin_Switch_RightGyro_Roll", "value":"232" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGyro_Move", "value":"233" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGyro_Pitch", "value":"234" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGyro_Yaw", "value":"235" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGyro_Roll", "value":"236" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGrip_Lower", "value":"237" }, + { "name":"k_EControllerActionOrigin_Switch_LeftGrip_Upper", "value":"238" }, + { "name":"k_EControllerActionOrigin_Switch_RightGrip_Lower", "value":"239" }, + { "name":"k_EControllerActionOrigin_Switch_RightGrip_Upper", "value":"240" }, + { "name":"k_EControllerActionOrigin_PS4_DPad_Move", "value":"241" }, + { "name":"k_EControllerActionOrigin_XBoxOne_DPad_Move", "value":"242" }, + { "name":"k_EControllerActionOrigin_XBox360_DPad_Move", "value":"243" }, + { "name":"k_EControllerActionOrigin_Switch_DPad_Move", "value":"244" }, + { "name":"k_EControllerActionOrigin_PS5_X", "value":"245" }, + { "name":"k_EControllerActionOrigin_PS5_Circle", "value":"246" }, + { "name":"k_EControllerActionOrigin_PS5_Triangle", "value":"247" }, + { "name":"k_EControllerActionOrigin_PS5_Square", "value":"248" }, + { "name":"k_EControllerActionOrigin_PS5_LeftBumper", "value":"249" }, + { "name":"k_EControllerActionOrigin_PS5_RightBumper", "value":"250" }, + { "name":"k_EControllerActionOrigin_PS5_Option", "value":"251" }, + { "name":"k_EControllerActionOrigin_PS5_Create", "value":"252" }, + { "name":"k_EControllerActionOrigin_PS5_Mute", "value":"253" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_Touch", "value":"254" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_Swipe", "value":"255" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_Click", "value":"256" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadNorth", "value":"257" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadSouth", "value":"258" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadWest", "value":"259" }, + { "name":"k_EControllerActionOrigin_PS5_LeftPad_DPadEast", "value":"260" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_Touch", "value":"261" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_Swipe", "value":"262" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_Click", "value":"263" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_DPadNorth", "value":"264" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_DPadSouth", "value":"265" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_DPadWest", "value":"266" }, + { "name":"k_EControllerActionOrigin_PS5_RightPad_DPadEast", "value":"267" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_Touch", "value":"268" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_Swipe", "value":"269" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_Click", "value":"270" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadNorth", "value":"271" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadSouth", "value":"272" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadWest", "value":"273" }, + { "name":"k_EControllerActionOrigin_PS5_CenterPad_DPadEast", "value":"274" }, + { "name":"k_EControllerActionOrigin_PS5_LeftTrigger_Pull", "value":"275" }, + { "name":"k_EControllerActionOrigin_PS5_LeftTrigger_Click", "value":"276" }, + { "name":"k_EControllerActionOrigin_PS5_RightTrigger_Pull", "value":"277" }, + { "name":"k_EControllerActionOrigin_PS5_RightTrigger_Click", "value":"278" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_Move", "value":"279" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_Click", "value":"280" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadNorth", "value":"281" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadSouth", "value":"282" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadWest", "value":"283" }, + { "name":"k_EControllerActionOrigin_PS5_LeftStick_DPadEast", "value":"284" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_Move", "value":"285" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_Click", "value":"286" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_DPadNorth", "value":"287" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_DPadSouth", "value":"288" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_DPadWest", "value":"289" }, + { "name":"k_EControllerActionOrigin_PS5_RightStick_DPadEast", "value":"290" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_Move", "value":"291" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_North", "value":"292" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_South", "value":"293" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_West", "value":"294" }, + { "name":"k_EControllerActionOrigin_PS5_DPad_East", "value":"295" }, + { "name":"k_EControllerActionOrigin_PS5_Gyro_Move", "value":"296" }, + { "name":"k_EControllerActionOrigin_PS5_Gyro_Pitch", "value":"297" }, + { "name":"k_EControllerActionOrigin_PS5_Gyro_Yaw", "value":"298" }, + { "name":"k_EControllerActionOrigin_PS5_Gyro_Roll", "value":"299" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftGrip_Lower", "value":"300" }, + { "name":"k_EControllerActionOrigin_XBoxOne_LeftGrip_Upper", "value":"301" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightGrip_Lower", "value":"302" }, + { "name":"k_EControllerActionOrigin_XBoxOne_RightGrip_Upper", "value":"303" }, + { "name":"k_EControllerActionOrigin_XBoxOne_Share", "value":"304" }, + { "name":"k_EControllerActionOrigin_SteamDeck_A", "value":"305" }, + { "name":"k_EControllerActionOrigin_SteamDeck_B", "value":"306" }, + { "name":"k_EControllerActionOrigin_SteamDeck_X", "value":"307" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Y", "value":"308" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L1", "value":"309" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R1", "value":"310" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Menu", "value":"311" }, + { "name":"k_EControllerActionOrigin_SteamDeck_View", "value":"312" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_Touch", "value":"313" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_Swipe", "value":"314" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_Click", "value":"315" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_DPadNorth", "value":"316" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_DPadSouth", "value":"317" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_DPadWest", "value":"318" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftPad_DPadEast", "value":"319" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_Touch", "value":"320" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_Swipe", "value":"321" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_Click", "value":"322" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_DPadNorth", "value":"323" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_DPadSouth", "value":"324" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_DPadWest", "value":"325" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightPad_DPadEast", "value":"326" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L2_SoftPull", "value":"327" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L2", "value":"328" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R2_SoftPull", "value":"329" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R2", "value":"330" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_Move", "value":"331" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L3", "value":"332" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_DPadNorth", "value":"333" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_DPadSouth", "value":"334" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_DPadWest", "value":"335" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_DPadEast", "value":"336" }, + { "name":"k_EControllerActionOrigin_SteamDeck_LeftStick_Touch", "value":"337" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_Move", "value":"338" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R3", "value":"339" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_DPadNorth", "value":"340" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_DPadSouth", "value":"341" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_DPadWest", "value":"342" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_DPadEast", "value":"343" }, + { "name":"k_EControllerActionOrigin_SteamDeck_RightStick_Touch", "value":"344" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L4", "value":"345" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R4", "value":"346" }, + { "name":"k_EControllerActionOrigin_SteamDeck_L5", "value":"347" }, + { "name":"k_EControllerActionOrigin_SteamDeck_R5", "value":"348" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_Move", "value":"349" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_North", "value":"350" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_South", "value":"351" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_West", "value":"352" }, + { "name":"k_EControllerActionOrigin_SteamDeck_DPad_East", "value":"353" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Gyro_Move", "value":"354" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Gyro_Pitch", "value":"355" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Gyro_Yaw", "value":"356" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Gyro_Roll", "value":"357" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved1", "value":"358" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved2", "value":"359" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved3", "value":"360" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved4", "value":"361" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved5", "value":"362" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved6", "value":"363" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved7", "value":"364" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved8", "value":"365" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved9", "value":"366" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved10", "value":"367" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved11", "value":"368" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved12", "value":"369" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved13", "value":"370" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved14", "value":"371" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved15", "value":"372" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved16", "value":"373" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved17", "value":"374" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved18", "value":"375" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved19", "value":"376" }, + { "name":"k_EControllerActionOrigin_SteamDeck_Reserved20", "value":"377" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_N", "value":"378" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_E", "value":"379" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_S", "value":"380" }, + { "name":"k_EControllerActionOrigin_Switch_JoyConButton_W", "value":"381" }, + { "name":"k_EControllerActionOrigin_PS5_LeftGrip", "value":"382" }, + { "name":"k_EControllerActionOrigin_PS5_RightGrip", "value":"383" }, + { "name":"k_EControllerActionOrigin_PS5_LeftFn", "value":"384" }, + { "name":"k_EControllerActionOrigin_PS5_RightFn", "value":"385" }, + { "name":"k_EControllerActionOrigin_Count", "value":"386" }, + { "name":"k_EControllerActionOrigin_MaximumPossibleValue", "value":"32767" } + ] + }, + { + "enumname": "ESteamControllerLEDFlag", + "values": [ + { "name":"k_ESteamControllerLEDFlag_SetColor", "value":"0" }, + { "name":"k_ESteamControllerLEDFlag_RestoreUserDefault", "value":"1" } + ] + }, + { + "enumname": "EUGCMatchingUGCType", + "values": [ + { "name":"k_EUGCMatchingUGCType_Items", "value":"0" }, + { "name":"k_EUGCMatchingUGCType_Items_Mtx", "value":"1" }, + { "name":"k_EUGCMatchingUGCType_Items_ReadyToUse", "value":"2" }, + { "name":"k_EUGCMatchingUGCType_Collections", "value":"3" }, + { "name":"k_EUGCMatchingUGCType_Artwork", "value":"4" }, + { "name":"k_EUGCMatchingUGCType_Videos", "value":"5" }, + { "name":"k_EUGCMatchingUGCType_Screenshots", "value":"6" }, + { "name":"k_EUGCMatchingUGCType_AllGuides", "value":"7" }, + { "name":"k_EUGCMatchingUGCType_WebGuides", "value":"8" }, + { "name":"k_EUGCMatchingUGCType_IntegratedGuides", "value":"9" }, + { "name":"k_EUGCMatchingUGCType_UsableInGame", "value":"10" }, + { "name":"k_EUGCMatchingUGCType_ControllerBindings", "value":"11" }, + { "name":"k_EUGCMatchingUGCType_GameManagedItems", "value":"12" }, + { "name":"k_EUGCMatchingUGCType_All", "value":"-1" } + ] + }, + { + "enumname": "EUserUGCList", + "values": [ + { "name":"k_EUserUGCList_Published", "value":"0" }, + { "name":"k_EUserUGCList_VotedOn", "value":"1" }, + { "name":"k_EUserUGCList_VotedUp", "value":"2" }, + { "name":"k_EUserUGCList_VotedDown", "value":"3" }, + { "name":"k_EUserUGCList_WillVoteLater", "value":"4" }, + { "name":"k_EUserUGCList_Favorited", "value":"5" }, + { "name":"k_EUserUGCList_Subscribed", "value":"6" }, + { "name":"k_EUserUGCList_UsedOrPlayed", "value":"7" }, + { "name":"k_EUserUGCList_Followed", "value":"8" } + ] + }, + { + "enumname": "EUserUGCListSortOrder", + "values": [ + { "name":"k_EUserUGCListSortOrder_CreationOrderDesc", "value":"0" }, + { "name":"k_EUserUGCListSortOrder_CreationOrderAsc", "value":"1" }, + { "name":"k_EUserUGCListSortOrder_TitleAsc", "value":"2" }, + { "name":"k_EUserUGCListSortOrder_LastUpdatedDesc", "value":"3" }, + { "name":"k_EUserUGCListSortOrder_SubscriptionDateDesc", "value":"4" }, + { "name":"k_EUserUGCListSortOrder_VoteScoreDesc", "value":"5" }, + { "name":"k_EUserUGCListSortOrder_ForModeration", "value":"6" } + ] + }, + { + "enumname": "EUGCQuery", + "values": [ + { "name":"k_EUGCQuery_RankedByVote", "value":"0" }, + { "name":"k_EUGCQuery_RankedByPublicationDate", "value":"1" }, + { "name":"k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate", "value":"2" }, + { "name":"k_EUGCQuery_RankedByTrend", "value":"3" }, + { "name":"k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate", "value":"4" }, + { "name":"k_EUGCQuery_CreatedByFriendsRankedByPublicationDate", "value":"5" }, + { "name":"k_EUGCQuery_RankedByNumTimesReported", "value":"6" }, + { "name":"k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate", "value":"7" }, + { "name":"k_EUGCQuery_NotYetRated", "value":"8" }, + { "name":"k_EUGCQuery_RankedByTotalVotesAsc", "value":"9" }, + { "name":"k_EUGCQuery_RankedByVotesUp", "value":"10" }, + { "name":"k_EUGCQuery_RankedByTextSearch", "value":"11" }, + { "name":"k_EUGCQuery_RankedByTotalUniqueSubscriptions", "value":"12" }, + { "name":"k_EUGCQuery_RankedByPlaytimeTrend", "value":"13" }, + { "name":"k_EUGCQuery_RankedByTotalPlaytime", "value":"14" }, + { "name":"k_EUGCQuery_RankedByAveragePlaytimeTrend", "value":"15" }, + { "name":"k_EUGCQuery_RankedByLifetimeAveragePlaytime", "value":"16" }, + { "name":"k_EUGCQuery_RankedByPlaytimeSessionsTrend", "value":"17" }, + { "name":"k_EUGCQuery_RankedByLifetimePlaytimeSessions", "value":"18" }, + { "name":"k_EUGCQuery_RankedByLastUpdatedDate", "value":"19" } + ] + }, + { + "enumname": "EItemUpdateStatus", + "values": [ + { "name":"k_EItemUpdateStatusInvalid", "value":"0" }, + { "name":"k_EItemUpdateStatusPreparingConfig", "value":"1" }, + { "name":"k_EItemUpdateStatusPreparingContent", "value":"2" }, + { "name":"k_EItemUpdateStatusUploadingContent", "value":"3" }, + { "name":"k_EItemUpdateStatusUploadingPreviewFile", "value":"4" }, + { "name":"k_EItemUpdateStatusCommittingChanges", "value":"5" } + ] + }, + { + "enumname": "EItemState", + "values": [ + { "name":"k_EItemStateNone", "value":"0" }, + { "name":"k_EItemStateSubscribed", "value":"1" }, + { "name":"k_EItemStateLegacyItem", "value":"2" }, + { "name":"k_EItemStateInstalled", "value":"4" }, + { "name":"k_EItemStateNeedsUpdate", "value":"8" }, + { "name":"k_EItemStateDownloading", "value":"16" }, + { "name":"k_EItemStateDownloadPending", "value":"32" }, + { "name":"k_EItemStateDisabledLocally", "value":"64" } + ] + }, + { + "enumname": "EItemStatistic", + "values": [ + { "name":"k_EItemStatistic_NumSubscriptions", "value":"0" }, + { "name":"k_EItemStatistic_NumFavorites", "value":"1" }, + { "name":"k_EItemStatistic_NumFollowers", "value":"2" }, + { "name":"k_EItemStatistic_NumUniqueSubscriptions", "value":"3" }, + { "name":"k_EItemStatistic_NumUniqueFavorites", "value":"4" }, + { "name":"k_EItemStatistic_NumUniqueFollowers", "value":"5" }, + { "name":"k_EItemStatistic_NumUniqueWebsiteViews", "value":"6" }, + { "name":"k_EItemStatistic_ReportScore", "value":"7" }, + { "name":"k_EItemStatistic_NumSecondsPlayed", "value":"8" }, + { "name":"k_EItemStatistic_NumPlaytimeSessions", "value":"9" }, + { "name":"k_EItemStatistic_NumComments", "value":"10" }, + { "name":"k_EItemStatistic_NumSecondsPlayedDuringTimePeriod", "value":"11" }, + { "name":"k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod", "value":"12" } + ] + }, + { + "enumname": "EItemPreviewType", + "values": [ + { "name":"k_EItemPreviewType_Image", "value":"0" }, + { "name":"k_EItemPreviewType_YouTubeVideo", "value":"1" }, + { "name":"k_EItemPreviewType_Sketchfab", "value":"2" }, + { "name":"k_EItemPreviewType_EnvironmentMap_HorizontalCross", "value":"3" }, + { "name":"k_EItemPreviewType_EnvironmentMap_LatLong", "value":"4" }, + { "name":"k_EItemPreviewType_Clip", "value":"5" }, + { "name":"k_EItemPreviewType_ReservedMax", "value":"255" } + ] + }, + { + "enumname": "EUGCContentDescriptorID", + "values": [ + { "name":"k_EUGCContentDescriptor_NudityOrSexualContent", "value":"1" }, + { "name":"k_EUGCContentDescriptor_FrequentViolenceOrGore", "value":"2" }, + { "name":"k_EUGCContentDescriptor_AdultOnlySexualContent", "value":"3" }, + { "name":"k_EUGCContentDescriptor_GratuitousSexualContent", "value":"4" }, + { "name":"k_EUGCContentDescriptor_AnyMatureContent", "value":"5" } + ] + }, + { + "enumname": "ESteamItemFlags", + "values": [ + { "name":"k_ESteamItemNoTrade", "value":"1" }, + { "name":"k_ESteamItemRemoved", "value":"256" }, + { "name":"k_ESteamItemConsumed", "value":"512" } + ] + }, + { + "enumname": "ETimelineGameMode", + "values": [ + { "name":"k_ETimelineGameMode_Invalid", "value":"0" }, + { "name":"k_ETimelineGameMode_Playing", "value":"1" }, + { "name":"k_ETimelineGameMode_Staging", "value":"2" }, + { "name":"k_ETimelineGameMode_Menus", "value":"3" }, + { "name":"k_ETimelineGameMode_LoadingScreen", "value":"4" }, + { "name":"k_ETimelineGameMode_Max", "value":"5" } + ] + }, + { + "enumname": "EParentalFeature", + "values": [ + { "name":"k_EFeatureInvalid", "value":"0" }, + { "name":"k_EFeatureStore", "value":"1" }, + { "name":"k_EFeatureCommunity", "value":"2" }, + { "name":"k_EFeatureProfile", "value":"3" }, + { "name":"k_EFeatureFriends", "value":"4" }, + { "name":"k_EFeatureNews", "value":"5" }, + { "name":"k_EFeatureTrading", "value":"6" }, + { "name":"k_EFeatureSettings", "value":"7" }, + { "name":"k_EFeatureConsole", "value":"8" }, + { "name":"k_EFeatureBrowser", "value":"9" }, + { "name":"k_EFeatureParentalSetup", "value":"10" }, + { "name":"k_EFeatureLibrary", "value":"11" }, + { "name":"k_EFeatureTest", "value":"12" }, + { "name":"k_EFeatureSiteLicense", "value":"13" }, + { "name":"k_EFeatureKioskMode_Deprecated", "value":"14" }, + { "name":"k_EFeatureMax", "value":"15" } + ] + }, + { + "enumname": "ESteamDeviceFormFactor", + "values": [ + { "name":"k_ESteamDeviceFormFactorUnknown", "value":"0" }, + { "name":"k_ESteamDeviceFormFactorPhone", "value":"1" }, + { "name":"k_ESteamDeviceFormFactorTablet", "value":"2" }, + { "name":"k_ESteamDeviceFormFactorComputer", "value":"3" }, + { "name":"k_ESteamDeviceFormFactorTV", "value":"4" }, + { "name":"k_ESteamDeviceFormFactorVRHeadset", "value":"5" } + ] + }, + { + "enumname": "ESteamNetworkingAvailability", + "values": [ + { "name":"k_ESteamNetworkingAvailability_CannotTry", "value":"-102" }, + { "name":"k_ESteamNetworkingAvailability_Failed", "value":"-101" }, + { "name":"k_ESteamNetworkingAvailability_Previously", "value":"-100" }, + { "name":"k_ESteamNetworkingAvailability_Retrying", "value":"-10" }, + { "name":"k_ESteamNetworkingAvailability_NeverTried", "value":"1" }, + { "name":"k_ESteamNetworkingAvailability_Waiting", "value":"2" }, + { "name":"k_ESteamNetworkingAvailability_Attempting", "value":"3" }, + { "name":"k_ESteamNetworkingAvailability_Current", "value":"100" }, + { "name":"k_ESteamNetworkingAvailability_Unknown", "value":"0" }, + { "name":"k_ESteamNetworkingAvailability__Force32bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingIdentityType", + "values": [ + { "name":"k_ESteamNetworkingIdentityType_Invalid", "value":"0" }, + { "name":"k_ESteamNetworkingIdentityType_SteamID", "value":"16" }, + { "name":"k_ESteamNetworkingIdentityType_XboxPairwiseID", "value":"17" }, + { "name":"k_ESteamNetworkingIdentityType_SonyPSN", "value":"18" }, + { "name":"k_ESteamNetworkingIdentityType_GoogleStadia", "value":"19" }, + { "name":"k_ESteamNetworkingIdentityType_IPAddress", "value":"1" }, + { "name":"k_ESteamNetworkingIdentityType_GenericString", "value":"2" }, + { "name":"k_ESteamNetworkingIdentityType_GenericBytes", "value":"3" }, + { "name":"k_ESteamNetworkingIdentityType_UnknownType", "value":"4" }, + { "name":"k_ESteamNetworkingIdentityType__Force32bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingFakeIPType", + "values": [ + { "name":"k_ESteamNetworkingFakeIPType_Invalid", "value":"0" }, + { "name":"k_ESteamNetworkingFakeIPType_NotFake", "value":"1" }, + { "name":"k_ESteamNetworkingFakeIPType_GlobalIPv4", "value":"2" }, + { "name":"k_ESteamNetworkingFakeIPType_LocalIPv4", "value":"3" }, + { "name":"k_ESteamNetworkingFakeIPType__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingConnectionState", + "values": [ + { "name":"k_ESteamNetworkingConnectionState_None", "value":"0" }, + { "name":"k_ESteamNetworkingConnectionState_Connecting", "value":"1" }, + { "name":"k_ESteamNetworkingConnectionState_FindingRoute", "value":"2" }, + { "name":"k_ESteamNetworkingConnectionState_Connected", "value":"3" }, + { "name":"k_ESteamNetworkingConnectionState_ClosedByPeer", "value":"4" }, + { "name":"k_ESteamNetworkingConnectionState_ProblemDetectedLocally", "value":"5" }, + { "name":"k_ESteamNetworkingConnectionState_FinWait", "value":"-1" }, + { "name":"k_ESteamNetworkingConnectionState_Linger", "value":"-2" }, + { "name":"k_ESteamNetworkingConnectionState_Dead", "value":"-3" }, + { "name":"k_ESteamNetworkingConnectionState__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetConnectionEnd", + "values": [ + { "name":"k_ESteamNetConnectionEnd_Invalid", "value":"0" }, + { "name":"k_ESteamNetConnectionEnd_App_Min", "value":"1000" }, + { "name":"k_ESteamNetConnectionEnd_App_Generic", "value":"1000" }, + { "name":"k_ESteamNetConnectionEnd_App_Max", "value":"1999" }, + { "name":"k_ESteamNetConnectionEnd_AppException_Min", "value":"2000" }, + { "name":"k_ESteamNetConnectionEnd_AppException_Generic", "value":"2000" }, + { "name":"k_ESteamNetConnectionEnd_AppException_Max", "value":"2999" }, + { "name":"k_ESteamNetConnectionEnd_Local_Min", "value":"3000" }, + { "name":"k_ESteamNetConnectionEnd_Local_OfflineMode", "value":"3001" }, + { "name":"k_ESteamNetConnectionEnd_Local_ManyRelayConnectivity", "value":"3002" }, + { "name":"k_ESteamNetConnectionEnd_Local_HostedServerPrimaryRelay", "value":"3003" }, + { "name":"k_ESteamNetConnectionEnd_Local_NetworkConfig", "value":"3004" }, + { "name":"k_ESteamNetConnectionEnd_Local_Rights", "value":"3005" }, + { "name":"k_ESteamNetConnectionEnd_Local_P2P_ICE_NoPublicAddresses", "value":"3006" }, + { "name":"k_ESteamNetConnectionEnd_Local_Max", "value":"3999" }, + { "name":"k_ESteamNetConnectionEnd_Remote_Min", "value":"4000" }, + { "name":"k_ESteamNetConnectionEnd_Remote_Timeout", "value":"4001" }, + { "name":"k_ESteamNetConnectionEnd_Remote_BadCrypt", "value":"4002" }, + { "name":"k_ESteamNetConnectionEnd_Remote_BadCert", "value":"4003" }, + { "name":"k_ESteamNetConnectionEnd_Remote_BadProtocolVersion", "value":"4006" }, + { "name":"k_ESteamNetConnectionEnd_Remote_P2P_ICE_NoPublicAddresses", "value":"4007" }, + { "name":"k_ESteamNetConnectionEnd_Remote_Max", "value":"4999" }, + { "name":"k_ESteamNetConnectionEnd_Misc_Min", "value":"5000" }, + { "name":"k_ESteamNetConnectionEnd_Misc_Generic", "value":"5001" }, + { "name":"k_ESteamNetConnectionEnd_Misc_InternalError", "value":"5002" }, + { "name":"k_ESteamNetConnectionEnd_Misc_Timeout", "value":"5003" }, + { "name":"k_ESteamNetConnectionEnd_Misc_SteamConnectivity", "value":"5005" }, + { "name":"k_ESteamNetConnectionEnd_Misc_NoRelaySessionsToClient", "value":"5006" }, + { "name":"k_ESteamNetConnectionEnd_Misc_P2P_Rendezvous", "value":"5008" }, + { "name":"k_ESteamNetConnectionEnd_Misc_P2P_NAT_Firewall", "value":"5009" }, + { "name":"k_ESteamNetConnectionEnd_Misc_PeerSentNoConnection", "value":"5010" }, + { "name":"k_ESteamNetConnectionEnd_Misc_Max", "value":"5999" }, + { "name":"k_ESteamNetConnectionEnd__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingConfigScope", + "values": [ + { "name":"k_ESteamNetworkingConfig_Global", "value":"1" }, + { "name":"k_ESteamNetworkingConfig_SocketsInterface", "value":"2" }, + { "name":"k_ESteamNetworkingConfig_ListenSocket", "value":"3" }, + { "name":"k_ESteamNetworkingConfig_Connection", "value":"4" }, + { "name":"k_ESteamNetworkingConfigScope__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingConfigDataType", + "values": [ + { "name":"k_ESteamNetworkingConfig_Int32", "value":"1" }, + { "name":"k_ESteamNetworkingConfig_Int64", "value":"2" }, + { "name":"k_ESteamNetworkingConfig_Float", "value":"3" }, + { "name":"k_ESteamNetworkingConfig_String", "value":"4" }, + { "name":"k_ESteamNetworkingConfig_Ptr", "value":"5" }, + { "name":"k_ESteamNetworkingConfigDataType__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingConfigValue", + "values": [ + { "name":"k_ESteamNetworkingConfig_Invalid", "value":"0" }, + { "name":"k_ESteamNetworkingConfig_TimeoutInitial", "value":"24" }, + { "name":"k_ESteamNetworkingConfig_TimeoutConnected", "value":"25" }, + { "name":"k_ESteamNetworkingConfig_SendBufferSize", "value":"9" }, + { "name":"k_ESteamNetworkingConfig_RecvBufferSize", "value":"47" }, + { "name":"k_ESteamNetworkingConfig_RecvBufferMessages", "value":"48" }, + { "name":"k_ESteamNetworkingConfig_RecvMaxMessageSize", "value":"49" }, + { "name":"k_ESteamNetworkingConfig_RecvMaxSegmentsPerPacket", "value":"50" }, + { "name":"k_ESteamNetworkingConfig_ConnectionUserData", "value":"40" }, + { "name":"k_ESteamNetworkingConfig_SendRateMin", "value":"10" }, + { "name":"k_ESteamNetworkingConfig_SendRateMax", "value":"11" }, + { "name":"k_ESteamNetworkingConfig_NagleTime", "value":"12" }, + { "name":"k_ESteamNetworkingConfig_IP_AllowWithoutAuth", "value":"23" }, + { "name":"k_ESteamNetworkingConfig_MTU_PacketSize", "value":"32" }, + { "name":"k_ESteamNetworkingConfig_MTU_DataSize", "value":"33" }, + { "name":"k_ESteamNetworkingConfig_Unencrypted", "value":"34" }, + { "name":"k_ESteamNetworkingConfig_SymmetricConnect", "value":"37" }, + { "name":"k_ESteamNetworkingConfig_LocalVirtualPort", "value":"38" }, + { "name":"k_ESteamNetworkingConfig_DualWifi_Enable", "value":"39" }, + { "name":"k_ESteamNetworkingConfig_EnableDiagnosticsUI", "value":"46" }, + { "name":"k_ESteamNetworkingConfig_FakePacketLoss_Send", "value":"2" }, + { "name":"k_ESteamNetworkingConfig_FakePacketLoss_Recv", "value":"3" }, + { "name":"k_ESteamNetworkingConfig_FakePacketLag_Send", "value":"4" }, + { "name":"k_ESteamNetworkingConfig_FakePacketLag_Recv", "value":"5" }, + { "name":"k_ESteamNetworkingConfig_FakePacketReorder_Send", "value":"6" }, + { "name":"k_ESteamNetworkingConfig_FakePacketReorder_Recv", "value":"7" }, + { "name":"k_ESteamNetworkingConfig_FakePacketReorder_Time", "value":"8" }, + { "name":"k_ESteamNetworkingConfig_FakePacketDup_Send", "value":"26" }, + { "name":"k_ESteamNetworkingConfig_FakePacketDup_Recv", "value":"27" }, + { "name":"k_ESteamNetworkingConfig_FakePacketDup_TimeMax", "value":"28" }, + { "name":"k_ESteamNetworkingConfig_PacketTraceMaxBytes", "value":"41" }, + { "name":"k_ESteamNetworkingConfig_FakeRateLimit_Send_Rate", "value":"42" }, + { "name":"k_ESteamNetworkingConfig_FakeRateLimit_Send_Burst", "value":"43" }, + { "name":"k_ESteamNetworkingConfig_FakeRateLimit_Recv_Rate", "value":"44" }, + { "name":"k_ESteamNetworkingConfig_FakeRateLimit_Recv_Burst", "value":"45" }, + { "name":"k_ESteamNetworkingConfig_OutOfOrderCorrectionWindowMicroseconds", "value":"51" }, + { "name":"k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged", "value":"201" }, + { "name":"k_ESteamNetworkingConfig_Callback_AuthStatusChanged", "value":"202" }, + { "name":"k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged", "value":"203" }, + { "name":"k_ESteamNetworkingConfig_Callback_MessagesSessionRequest", "value":"204" }, + { "name":"k_ESteamNetworkingConfig_Callback_MessagesSessionFailed", "value":"205" }, + { "name":"k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling", "value":"206" }, + { "name":"k_ESteamNetworkingConfig_Callback_FakeIPResult", "value":"207" }, + { "name":"k_ESteamNetworkingConfig_P2P_STUN_ServerList", "value":"103" }, + { "name":"k_ESteamNetworkingConfig_P2P_Transport_ICE_Enable", "value":"104" }, + { "name":"k_ESteamNetworkingConfig_P2P_Transport_ICE_Penalty", "value":"105" }, + { "name":"k_ESteamNetworkingConfig_P2P_Transport_SDR_Penalty", "value":"106" }, + { "name":"k_ESteamNetworkingConfig_P2P_TURN_ServerList", "value":"107" }, + { "name":"k_ESteamNetworkingConfig_P2P_TURN_UserList", "value":"108" }, + { "name":"k_ESteamNetworkingConfig_P2P_TURN_PassList", "value":"109" }, + { "name":"k_ESteamNetworkingConfig_P2P_Transport_ICE_Implementation", "value":"110" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFailInitial", "value":"19" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFail", "value":"20" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_MinPingsBeforePingAccurate", "value":"21" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_SingleSocket", "value":"22" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_ForceRelayCluster", "value":"29" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_DevTicket", "value":"30" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_ForceProxyAddr", "value":"31" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_FakeClusterPing", "value":"36" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_LimitPingProbesToNearestN", "value":"60" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_AckRTT", "value":"13" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_PacketDecode", "value":"14" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_Message", "value":"15" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_PacketGaps", "value":"16" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_P2PRendezvous", "value":"17" }, + { "name":"k_ESteamNetworkingConfig_LogLevel_SDRRelayPings", "value":"18" }, + { "name":"k_ESteamNetworkingConfig_ECN", "value":"999" }, + { "name":"k_ESteamNetworkingConfig_DELETED_EnumerateDevVars", "value":"35" }, + { "name":"k_ESteamNetworkingConfigValue__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingGetConfigValueResult", + "values": [ + { "name":"k_ESteamNetworkingGetConfigValue_BadValue", "value":"-1" }, + { "name":"k_ESteamNetworkingGetConfigValue_BadScopeObj", "value":"-2" }, + { "name":"k_ESteamNetworkingGetConfigValue_BufferTooSmall", "value":"-3" }, + { "name":"k_ESteamNetworkingGetConfigValue_OK", "value":"1" }, + { "name":"k_ESteamNetworkingGetConfigValue_OKInherited", "value":"2" }, + { "name":"k_ESteamNetworkingGetConfigValueResult__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamNetworkingSocketsDebugOutputType", + "values": [ + { "name":"k_ESteamNetworkingSocketsDebugOutputType_None", "value":"0" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Bug", "value":"1" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Error", "value":"2" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Important", "value":"3" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Warning", "value":"4" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Msg", "value":"5" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Verbose", "value":"6" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Debug", "value":"7" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType_Everything", "value":"8" }, + { "name":"k_ESteamNetworkingSocketsDebugOutputType__Force32Bit", "value":"2147483647" } + ] + }, + { + "enumname": "ESteamAPIInitResult", + "values": [ + { "name":"k_ESteamAPIInitResult_OK", "value":"0" }, + { "name":"k_ESteamAPIInitResult_FailedGeneric", "value":"1" }, + { "name":"k_ESteamAPIInitResult_NoSteamClient", "value":"2" }, + { "name":"k_ESteamAPIInitResult_VersionMismatch", "value":"3" } + ] + }, + { + "enumname": "EServerMode", + "values": [ + { "name":"eServerModeInvalid", "value":"0" }, + { "name":"eServerModeNoAuthentication", "value":"1" }, + { "name":"eServerModeAuthentication", "value":"2" }, + { "name":"eServerModeAuthenticationAndSecure", "value":"3" } + ] + } + ], + "interfaces": [ + { + "classname": "ISteamClient", + "fields": [], + "methods": [ + { + "methodname": "CreateSteamPipe", + "methodname_flat": "SteamAPI_ISteamClient_CreateSteamPipe", + "params": [], + "returntype": "HSteamPipe" + }, + { + "methodname": "BReleaseSteamPipe", + "methodname_flat": "SteamAPI_ISteamClient_BReleaseSteamPipe", + "params": [ + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" } + ], + "returntype": "bool" + }, + { + "methodname": "ConnectToGlobalUser", + "methodname_flat": "SteamAPI_ISteamClient_ConnectToGlobalUser", + "params": [ + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" } + ], + "returntype": "HSteamUser" + }, + { + "methodname": "CreateLocalUser", + "methodname_flat": "SteamAPI_ISteamClient_CreateLocalUser", + "params": [ + { "paramname":"phSteamPipe", "paramtype":"HSteamPipe *" }, + { "paramname":"eAccountType", "paramtype":"EAccountType" } + ], + "returntype": "HSteamUser" + }, + { + "methodname": "ReleaseUser", + "methodname_flat": "SteamAPI_ISteamClient_ReleaseUser", + "params": [ + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"hUser", "paramtype":"HSteamUser" } + ], + "returntype": "void" + }, + { + "methodname": "GetISteamUser", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamUser", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamUser *" + }, + { + "methodname": "GetISteamGameServer", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamGameServer", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamGameServer *" + }, + { + "methodname": "SetLocalIPBinding", + "methodname_flat": "SteamAPI_ISteamClient_SetLocalIPBinding", + "params": [ + { "paramname":"unIP", "paramtype":"const SteamIPAddress_t &" }, + { "paramname":"usPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetISteamFriends", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamFriends", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamFriends *" + }, + { + "methodname": "GetISteamUtils", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamUtils", + "params": [ + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamUtils *" + }, + { + "methodname": "GetISteamMatchmaking", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamMatchmaking", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamMatchmaking *" + }, + { + "methodname": "GetISteamMatchmakingServers", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamMatchmakingServers", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamMatchmakingServers *" + }, + { + "methodname": "GetISteamGenericInterface", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamGenericInterface", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "void *" + }, + { + "methodname": "GetISteamUserStats", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamUserStats", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamUserStats *" + }, + { + "methodname": "GetISteamGameServerStats", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamGameServerStats", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamGameServerStats *" + }, + { + "methodname": "GetISteamApps", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamApps", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamApps *" + }, + { + "methodname": "GetISteamNetworking", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamNetworking", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamNetworking *" + }, + { + "methodname": "GetISteamRemoteStorage", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamRemoteStorage", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamRemoteStorage *" + }, + { + "methodname": "GetISteamScreenshots", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamScreenshots", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamScreenshots *" + }, + { + "methodname": "GetISteamGameSearch", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamGameSearch", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamGameSearch *" + }, + { + "methodname": "GetIPCCallCount", + "methodname_flat": "SteamAPI_ISteamClient_GetIPCCallCount", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetWarningMessageHook", + "methodname_flat": "SteamAPI_ISteamClient_SetWarningMessageHook", + "params": [ + { "paramname":"pFunction", "paramtype":"SteamAPIWarningMessageHook_t" } + ], + "returntype": "void" + }, + { + "methodname": "BShutdownIfAllPipesClosed", + "methodname_flat": "SteamAPI_ISteamClient_BShutdownIfAllPipesClosed", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetISteamHTTP", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamHTTP", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamHTTP *" + }, + { + "methodname": "GetISteamController", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamController", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamController *" + }, + { + "methodname": "GetISteamUGC", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamUGC", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamUGC *" + }, + { + "methodname": "GetISteamMusic", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamMusic", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamMusic *" + }, + { + "methodname": "GetISteamMusicRemote", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamMusicRemote", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamMusicRemote *" + }, + { + "methodname": "GetISteamHTMLSurface", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamHTMLSurface", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamHTMLSurface *" + }, + { + "methodname": "GetISteamInventory", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamInventory", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamInventory *" + }, + { + "methodname": "GetISteamParentalSettings", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamParentalSettings", + "params": [ + { "paramname":"hSteamuser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamParentalSettings *" + }, + { + "methodname": "GetISteamInput", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamInput", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamInput *" + }, + { + "methodname": "GetISteamParties", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamParties", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamParties *" + }, + { + "methodname": "GetISteamRemotePlay", + "methodname_flat": "SteamAPI_ISteamClient_GetISteamRemotePlay", + "params": [ + { "paramname":"hSteamUser", "paramtype":"HSteamUser" }, + { "paramname":"hSteamPipe", "paramtype":"HSteamPipe" }, + { "paramname":"pchVersion", "paramtype":"const char *" } + ], + "returntype": "ISteamRemotePlay *" + } + ] + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamUser", + "name_flat": "SteamAPI_SteamUser_v023" + } + ], + "classname": "ISteamUser", + "fields": [], + "methods": [ + { + "methodname": "GetHSteamUser", + "methodname_flat": "SteamAPI_ISteamUser_GetHSteamUser", + "params": [], + "returntype": "HSteamUser" + }, + { + "methodname": "BLoggedOn", + "methodname_flat": "SteamAPI_ISteamUser_BLoggedOn", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetSteamID", + "methodname_flat": "SteamAPI_ISteamUser_GetSteamID", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "InitiateGameConnection_DEPRECATED", + "methodname_flat": "SteamAPI_ISteamUser_InitiateGameConnection_DEPRECATED", + "params": [ + { "paramname":"pAuthBlob", "paramtype":"void *" }, + { "paramname":"cbMaxAuthBlob", "paramtype":"int" }, + { "paramname":"steamIDGameServer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"unIPServer", "paramtype":"uint32" }, + { "paramname":"usPortServer", "paramtype":"uint16" }, + { "paramname":"bSecure", "paramtype":"bool" } + ], + "returntype": "int" + }, + { + "methodname": "TerminateGameConnection_DEPRECATED", + "methodname_flat": "SteamAPI_ISteamUser_TerminateGameConnection_DEPRECATED", + "params": [ + { "paramname":"unIPServer", "paramtype":"uint32" }, + { "paramname":"usPortServer", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "TrackAppUsageEvent", + "methodname_flat": "SteamAPI_ISteamUser_TrackAppUsageEvent", + "params": [ + { "paramname":"gameID", "paramtype":"CGameID", "paramtype_flat":"uint64_gameid" }, + { "paramname":"eAppUsageEvent", "paramtype":"int" }, + { "paramname":"pchExtraInfo", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "GetUserDataFolder", + "methodname_flat": "SteamAPI_ISteamUser_GetUserDataFolder", + "params": [ + { "paramname":"pchBuffer", "paramtype":"char *" }, + { "paramname":"cubBuffer", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "StartVoiceRecording", + "methodname_flat": "SteamAPI_ISteamUser_StartVoiceRecording", + "params": [], + "returntype": "void" + }, + { + "methodname": "StopVoiceRecording", + "methodname_flat": "SteamAPI_ISteamUser_StopVoiceRecording", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetAvailableVoice", + "methodname_flat": "SteamAPI_ISteamUser_GetAvailableVoice", + "params": [ + { "paramname":"pcbCompressed", "paramtype":"uint32 *" }, + { "paramname":"pcbUncompressed_Deprecated", "paramtype":"uint32 *" }, + { "paramname":"nUncompressedVoiceDesiredSampleRate_Deprecated", "paramtype":"uint32" } + ], + "returntype": "EVoiceResult" + }, + { + "methodname": "GetVoice", + "methodname_flat": "SteamAPI_ISteamUser_GetVoice", + "params": [ + { "paramname":"bWantCompressed", "paramtype":"bool" }, + { "paramname":"pDestBuffer", "paramtype":"void *" }, + { "paramname":"cbDestBufferSize", "paramtype":"uint32" }, + { "paramname":"nBytesWritten", "paramtype":"uint32 *" }, + { "paramname":"bWantUncompressed_Deprecated", "paramtype":"bool" }, + { "paramname":"pUncompressedDestBuffer_Deprecated", "paramtype":"void *" }, + { "paramname":"cbUncompressedDestBufferSize_Deprecated", "paramtype":"uint32" }, + { "paramname":"nUncompressBytesWritten_Deprecated", "paramtype":"uint32 *" }, + { "paramname":"nUncompressedVoiceDesiredSampleRate_Deprecated", "paramtype":"uint32" } + ], + "returntype": "EVoiceResult" + }, + { + "methodname": "DecompressVoice", + "methodname_flat": "SteamAPI_ISteamUser_DecompressVoice", + "params": [ + { "paramname":"pCompressed", "paramtype":"const void *" }, + { "paramname":"cbCompressed", "paramtype":"uint32" }, + { "paramname":"pDestBuffer", "paramtype":"void *" }, + { "paramname":"cbDestBufferSize", "paramtype":"uint32" }, + { "paramname":"nBytesWritten", "paramtype":"uint32 *" }, + { "paramname":"nDesiredSampleRate", "paramtype":"uint32" } + ], + "returntype": "EVoiceResult" + }, + { + "methodname": "GetVoiceOptimalSampleRate", + "methodname_flat": "SteamAPI_ISteamUser_GetVoiceOptimalSampleRate", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetAuthSessionTicket", + "methodname_flat": "SteamAPI_ISteamUser_GetAuthSessionTicket", + "params": [ + { "paramname":"pTicket", "paramtype":"void *" }, + { "paramname":"cbMaxTicket", "paramtype":"int" }, + { "paramname":"pcbTicket", "paramtype":"uint32 *" }, + { "paramname":"pSteamNetworkingIdentity", "paramtype":"const SteamNetworkingIdentity *" } + ], + "returntype": "HAuthTicket" + }, + { + "methodname": "GetAuthTicketForWebApi", + "methodname_flat": "SteamAPI_ISteamUser_GetAuthTicketForWebApi", + "params": [ + { "paramname":"pchIdentity", "paramtype":"const char *" } + ], + "returntype": "HAuthTicket" + }, + { + "methodname": "BeginAuthSession", + "methodname_flat": "SteamAPI_ISteamUser_BeginAuthSession", + "params": [ + { "paramname":"pAuthTicket", "paramtype":"const void *" }, + { "paramname":"cbAuthTicket", "paramtype":"int" }, + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "EBeginAuthSessionResult" + }, + { + "methodname": "EndAuthSession", + "methodname_flat": "SteamAPI_ISteamUser_EndAuthSession", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "CancelAuthTicket", + "methodname_flat": "SteamAPI_ISteamUser_CancelAuthTicket", + "params": [ + { "paramname":"hAuthTicket", "paramtype":"HAuthTicket" } + ], + "returntype": "void" + }, + { + "methodname": "UserHasLicenseForApp", + "methodname_flat": "SteamAPI_ISteamUser_UserHasLicenseForApp", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "EUserHasLicenseForAppResult" + }, + { + "methodname": "BIsBehindNAT", + "methodname_flat": "SteamAPI_ISteamUser_BIsBehindNAT", + "params": [], + "returntype": "bool" + }, + { + "methodname": "AdvertiseGame", + "methodname_flat": "SteamAPI_ISteamUser_AdvertiseGame", + "params": [ + { "paramname":"steamIDGameServer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"unIPServer", "paramtype":"uint32" }, + { "paramname":"usPortServer", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "callresult": "EncryptedAppTicketResponse_t", + "methodname": "RequestEncryptedAppTicket", + "methodname_flat": "SteamAPI_ISteamUser_RequestEncryptedAppTicket", + "params": [ + { "paramname":"pDataToInclude", "paramtype":"void *" }, + { "paramname":"cbDataToInclude", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetEncryptedAppTicket", + "methodname_flat": "SteamAPI_ISteamUser_GetEncryptedAppTicket", + "params": [ + { "paramname":"pTicket", "paramtype":"void *" }, + { "paramname":"cbMaxTicket", "paramtype":"int" }, + { "paramname":"pcbTicket", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGameBadgeLevel", + "methodname_flat": "SteamAPI_ISteamUser_GetGameBadgeLevel", + "params": [ + { "paramname":"nSeries", "paramtype":"int" }, + { "paramname":"bFoil", "paramtype":"bool" } + ], + "returntype": "int" + }, + { + "methodname": "GetPlayerSteamLevel", + "methodname_flat": "SteamAPI_ISteamUser_GetPlayerSteamLevel", + "params": [], + "returntype": "int" + }, + { + "callresult": "StoreAuthURLResponse_t", + "methodname": "RequestStoreAuthURL", + "methodname_flat": "SteamAPI_ISteamUser_RequestStoreAuthURL", + "params": [ + { "paramname":"pchRedirectURL", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "BIsPhoneVerified", + "methodname_flat": "SteamAPI_ISteamUser_BIsPhoneVerified", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsTwoFactorEnabled", + "methodname_flat": "SteamAPI_ISteamUser_BIsTwoFactorEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsPhoneIdentifying", + "methodname_flat": "SteamAPI_ISteamUser_BIsPhoneIdentifying", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsPhoneRequiringVerification", + "methodname_flat": "SteamAPI_ISteamUser_BIsPhoneRequiringVerification", + "params": [], + "returntype": "bool" + }, + { + "callresult": "MarketEligibilityResponse_t", + "methodname": "GetMarketEligibility", + "methodname_flat": "SteamAPI_ISteamUser_GetMarketEligibility", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "DurationControl_t", + "methodname": "GetDurationControl", + "methodname_flat": "SteamAPI_ISteamUser_GetDurationControl", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "BSetDurationControlOnlineState", + "methodname_flat": "SteamAPI_ISteamUser_BSetDurationControlOnlineState", + "params": [ + { "paramname":"eNewState", "paramtype":"EDurationControlOnlineState" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamUser023" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamFriends", + "name_flat": "SteamAPI_SteamFriends_v017" + } + ], + "classname": "ISteamFriends", + "fields": [], + "methods": [ + { + "methodname": "GetPersonaName", + "methodname_flat": "SteamAPI_ISteamFriends_GetPersonaName", + "params": [], + "returntype": "const char *" + }, + { + "callresult": "SetPersonaNameResponse_t", + "methodname": "SetPersonaName", + "methodname_flat": "SteamAPI_ISteamFriends_SetPersonaName", + "params": [ + { "paramname":"pchPersonaName", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetPersonaState", + "methodname_flat": "SteamAPI_ISteamFriends_GetPersonaState", + "params": [], + "returntype": "EPersonaState" + }, + { + "methodname": "GetFriendCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendCount", + "params": [ + { "paramname":"iFriendFlags", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendByIndex", + "params": [ + { "paramname":"iFriend", "paramtype":"int" }, + { "paramname":"iFriendFlags", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetFriendRelationship", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendRelationship", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "EFriendRelationship" + }, + { + "methodname": "GetFriendPersonaState", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendPersonaState", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "EPersonaState" + }, + { + "methodname": "GetFriendPersonaName", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendPersonaName", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendGamePlayed", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendGamePlayed", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { + "out_struct": "", + "paramname": "pFriendGameInfo", + "paramtype": "FriendGameInfo_t *" + } + ], + "returntype": "bool" + }, + { + "methodname": "GetFriendPersonaNameHistory", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendPersonaNameHistory", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iPersonaName", "paramtype":"int" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendSteamLevel", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendSteamLevel", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetPlayerNickname", + "methodname_flat": "SteamAPI_ISteamFriends_GetPlayerNickname", + "params": [ + { "paramname":"steamIDPlayer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendsGroupCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetFriendsGroupIDByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex", + "params": [ + { "paramname":"iFG", "paramtype":"int" } + ], + "returntype": "FriendsGroupID_t" + }, + { + "methodname": "GetFriendsGroupName", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupName", + "params": [ + { "paramname":"friendsGroupID", "paramtype":"FriendsGroupID_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendsGroupMembersCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupMembersCount", + "params": [ + { "paramname":"friendsGroupID", "paramtype":"FriendsGroupID_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendsGroupMembersList", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendsGroupMembersList", + "params": [ + { "paramname":"friendsGroupID", "paramtype":"FriendsGroupID_t" }, + { + "out_array_call": "nMembersCount,GetFriendsGroupMembersCount,friendsGroupID", + "paramname": "pOutSteamIDMembers", + "paramtype": "CSteamID *" + }, + { "paramname":"nMembersCount", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "HasFriend", + "methodname_flat": "SteamAPI_ISteamFriends_HasFriend", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iFriendFlags", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetClanCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetClanByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanByIndex", + "params": [ + { "paramname":"iClan", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetClanName", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanName", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetClanTag", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanTag", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetClanActivityCounts", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanActivityCounts", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pnOnline", "paramtype":"int *" }, + { "paramname":"pnInGame", "paramtype":"int *" }, + { "paramname":"pnChatting", "paramtype":"int *" } + ], + "returntype": "bool" + }, + { + "callresult": "DownloadClanActivityCountsResult_t", + "methodname": "DownloadClanActivityCounts", + "methodname_flat": "SteamAPI_ISteamFriends_DownloadClanActivityCounts", + "params": [ + { + "array_count": "cClansToRequest", + "paramname": "psteamIDClans", + "paramtype": "CSteamID *" + }, + { "paramname":"cClansToRequest", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetFriendCountFromSource", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendCountFromSource", + "params": [ + { "paramname":"steamIDSource", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendFromSourceByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendFromSourceByIndex", + "params": [ + { "paramname":"steamIDSource", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iFriend", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "IsUserInSource", + "methodname_flat": "SteamAPI_ISteamFriends_IsUserInSource", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDSource", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "SetInGameVoiceSpeaking", + "methodname_flat": "SteamAPI_ISteamFriends_SetInGameVoiceSpeaking", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"bSpeaking", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlay", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlay", + "params": [ + { "paramname":"pchDialog", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlayToUser", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayToUser", + "params": [ + { "paramname":"pchDialog", "paramtype":"const char *" }, + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlayToWebPage", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage", + "params": [ + { "paramname":"pchURL", "paramtype":"const char *" }, + { "paramname":"eMode", "paramtype":"EActivateGameOverlayToWebPageMode" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlayToStore", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayToStore", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" }, + { "paramname":"eFlag", "paramtype":"EOverlayToStoreFlag" } + ], + "returntype": "void" + }, + { + "methodname": "SetPlayedWith", + "methodname_flat": "SteamAPI_ISteamFriends_SetPlayedWith", + "params": [ + { "paramname":"steamIDUserPlayedWith", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "ActivateGameOverlayInviteDialog", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "GetSmallFriendAvatar", + "methodname_flat": "SteamAPI_ISteamFriends_GetSmallFriendAvatar", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetMediumFriendAvatar", + "methodname_flat": "SteamAPI_ISteamFriends_GetMediumFriendAvatar", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetLargeFriendAvatar", + "methodname_flat": "SteamAPI_ISteamFriends_GetLargeFriendAvatar", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "RequestUserInformation", + "methodname_flat": "SteamAPI_ISteamFriends_RequestUserInformation", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"bRequireNameOnly", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "callresult": "ClanOfficerListResponse_t", + "methodname": "RequestClanOfficerList", + "methodname_flat": "SteamAPI_ISteamFriends_RequestClanOfficerList", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetClanOwner", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanOwner", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetClanOfficerCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanOfficerCount", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetClanOfficerByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanOfficerByIndex", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iOfficer", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetUserRestrictions", + "methodname_flat": "SteamAPI_ISteamFriends_GetUserRestrictions", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetRichPresence", + "methodname_flat": "SteamAPI_ISteamFriends_SetRichPresence", + "params": [ + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "ClearRichPresence", + "methodname_flat": "SteamAPI_ISteamFriends_ClearRichPresence", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetFriendRichPresence", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendRichPresence", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetFriendRichPresenceKeyCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendRichPresenceKeyByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iKey", "paramtype":"int" } + ], + "returntype": "const char *" + }, + { + "methodname": "RequestFriendRichPresence", + "methodname_flat": "SteamAPI_ISteamFriends_RequestFriendRichPresence", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "InviteUserToGame", + "methodname_flat": "SteamAPI_ISteamFriends_InviteUserToGame", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchConnectString", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetCoplayFriendCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetCoplayFriendCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetCoplayFriend", + "methodname_flat": "SteamAPI_ISteamFriends_GetCoplayFriend", + "params": [ + { "paramname":"iCoplayFriend", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetFriendCoplayTime", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendCoplayTime", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetFriendCoplayGame", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendCoplayGame", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "AppId_t" + }, + { + "callresult": "JoinClanChatRoomCompletionResult_t", + "methodname": "JoinClanChatRoom", + "methodname_flat": "SteamAPI_ISteamFriends_JoinClanChatRoom", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "LeaveClanChatRoom", + "methodname_flat": "SteamAPI_ISteamFriends_LeaveClanChatRoom", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "GetClanChatMemberCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanChatMemberCount", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetChatMemberByIndex", + "methodname_flat": "SteamAPI_ISteamFriends_GetChatMemberByIndex", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iUser", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "SendClanChatMessage", + "methodname_flat": "SteamAPI_ISteamFriends_SendClanChatMessage", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetClanChatMessage", + "methodname_flat": "SteamAPI_ISteamFriends_GetClanChatMessage", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iMessage", "paramtype":"int" }, + { "paramname":"prgchText", "paramtype":"void *" }, + { "paramname":"cchTextMax", "paramtype":"int" }, + { "paramname":"peChatEntryType", "paramtype":"EChatEntryType *" }, + { + "out_struct": "", + "paramname": "psteamidChatter", + "paramtype": "CSteamID *" + } + ], + "returntype": "int" + }, + { + "methodname": "IsClanChatAdmin", + "methodname_flat": "SteamAPI_ISteamFriends_IsClanChatAdmin", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "IsClanChatWindowOpenInSteam", + "methodname_flat": "SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "OpenClanChatWindowInSteam", + "methodname_flat": "SteamAPI_ISteamFriends_OpenClanChatWindowInSteam", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseClanChatWindowInSteam", + "methodname_flat": "SteamAPI_ISteamFriends_CloseClanChatWindowInSteam", + "params": [ + { "paramname":"steamIDClanChat", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "SetListenForFriendsMessages", + "methodname_flat": "SteamAPI_ISteamFriends_SetListenForFriendsMessages", + "params": [ + { "paramname":"bInterceptEnabled", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "ReplyToFriendMessage", + "methodname_flat": "SteamAPI_ISteamFriends_ReplyToFriendMessage", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchMsgToSend", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetFriendMessage", + "methodname_flat": "SteamAPI_ISteamFriends_GetFriendMessage", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iMessageID", "paramtype":"int" }, + { "paramname":"pvData", "paramtype":"void *" }, + { "paramname":"cubData", "paramtype":"int" }, + { "paramname":"peChatEntryType", "paramtype":"EChatEntryType *" } + ], + "returntype": "int" + }, + { + "callresult": "FriendsGetFollowerCount_t", + "methodname": "GetFollowerCount", + "methodname_flat": "SteamAPI_ISteamFriends_GetFollowerCount", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "FriendsIsFollowing_t", + "methodname": "IsFollowing", + "methodname_flat": "SteamAPI_ISteamFriends_IsFollowing", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "FriendsEnumerateFollowingList_t", + "methodname": "EnumerateFollowingList", + "methodname_flat": "SteamAPI_ISteamFriends_EnumerateFollowingList", + "params": [ + { "paramname":"unStartIndex", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "IsClanPublic", + "methodname_flat": "SteamAPI_ISteamFriends_IsClanPublic", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "IsClanOfficialGameGroup", + "methodname_flat": "SteamAPI_ISteamFriends_IsClanOfficialGameGroup", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNumChatsWithUnreadPriorityMessages", + "methodname_flat": "SteamAPI_ISteamFriends_GetNumChatsWithUnreadPriorityMessages", + "params": [], + "returntype": "int" + }, + { + "methodname": "ActivateGameOverlayRemotePlayTogetherInviteDialog", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "RegisterProtocolInOverlayBrowser", + "methodname_flat": "SteamAPI_ISteamFriends_RegisterProtocolInOverlayBrowser", + "params": [ + { "paramname":"pchProtocol", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "ActivateGameOverlayInviteDialogConnectString", + "methodname_flat": "SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialogConnectString", + "params": [ + { "paramname":"pchConnectString", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "callresult": "EquippedProfileItems_t", + "methodname": "RequestEquippedProfileItems", + "methodname_flat": "SteamAPI_ISteamFriends_RequestEquippedProfileItems", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "BHasEquippedProfileItem", + "methodname_flat": "SteamAPI_ISteamFriends_BHasEquippedProfileItem", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"itemType", "paramtype":"ECommunityProfileItemType" } + ], + "returntype": "bool" + }, + { + "methodname": "GetProfileItemPropertyString", + "methodname_flat": "SteamAPI_ISteamFriends_GetProfileItemPropertyString", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"itemType", "paramtype":"ECommunityProfileItemType" }, + { "paramname":"prop", "paramtype":"ECommunityProfileItemProperty" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetProfileItemPropertyUint", + "methodname_flat": "SteamAPI_ISteamFriends_GetProfileItemPropertyUint", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"itemType", "paramtype":"ECommunityProfileItemType" }, + { "paramname":"prop", "paramtype":"ECommunityProfileItemProperty" } + ], + "returntype": "uint32" + } + ], + "version_string": "SteamFriends017" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamUtils", + "name_flat": "SteamAPI_SteamUtils_v010" + }, + { + "kind": "gameserver", + "name": "SteamGameServerUtils", + "name_flat": "SteamAPI_SteamGameServerUtils_v010" + } + ], + "classname": "ISteamUtils", + "fields": [], + "methods": [ + { + "methodname": "GetSecondsSinceAppActive", + "methodname_flat": "SteamAPI_ISteamUtils_GetSecondsSinceAppActive", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetSecondsSinceComputerActive", + "methodname_flat": "SteamAPI_ISteamUtils_GetSecondsSinceComputerActive", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetConnectedUniverse", + "methodname_flat": "SteamAPI_ISteamUtils_GetConnectedUniverse", + "params": [], + "returntype": "EUniverse" + }, + { + "methodname": "GetServerRealTime", + "methodname_flat": "SteamAPI_ISteamUtils_GetServerRealTime", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetIPCountry", + "methodname_flat": "SteamAPI_ISteamUtils_GetIPCountry", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "GetImageSize", + "methodname_flat": "SteamAPI_ISteamUtils_GetImageSize", + "params": [ + { "paramname":"iImage", "paramtype":"int" }, + { "paramname":"pnWidth", "paramtype":"uint32 *" }, + { "paramname":"pnHeight", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetImageRGBA", + "methodname_flat": "SteamAPI_ISteamUtils_GetImageRGBA", + "params": [ + { "paramname":"iImage", "paramtype":"int" }, + { "paramname":"pubDest", "paramtype":"uint8 *" }, + { "paramname":"nDestBufferSize", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetCurrentBatteryPower", + "methodname_flat": "SteamAPI_ISteamUtils_GetCurrentBatteryPower", + "params": [], + "returntype": "uint8" + }, + { + "methodname": "GetAppID", + "methodname_flat": "SteamAPI_ISteamUtils_GetAppID", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetOverlayNotificationPosition", + "methodname_flat": "SteamAPI_ISteamUtils_SetOverlayNotificationPosition", + "params": [ + { "paramname":"eNotificationPosition", "paramtype":"ENotificationPosition" } + ], + "returntype": "void" + }, + { + "methodname": "IsAPICallCompleted", + "methodname_flat": "SteamAPI_ISteamUtils_IsAPICallCompleted", + "params": [ + { "paramname":"hSteamAPICall", "paramtype":"SteamAPICall_t" }, + { "paramname":"pbFailed", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAPICallFailureReason", + "methodname_flat": "SteamAPI_ISteamUtils_GetAPICallFailureReason", + "params": [ + { "paramname":"hSteamAPICall", "paramtype":"SteamAPICall_t" } + ], + "returntype": "ESteamAPICallFailure" + }, + { + "methodname": "GetAPICallResult", + "methodname_flat": "SteamAPI_ISteamUtils_GetAPICallResult", + "params": [ + { "paramname":"hSteamAPICall", "paramtype":"SteamAPICall_t" }, + { "paramname":"pCallback", "paramtype":"void *" }, + { "paramname":"cubCallback", "paramtype":"int" }, + { "paramname":"iCallbackExpected", "paramtype":"int" }, + { "paramname":"pbFailed", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetIPCCallCount", + "methodname_flat": "SteamAPI_ISteamUtils_GetIPCCallCount", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetWarningMessageHook", + "methodname_flat": "SteamAPI_ISteamUtils_SetWarningMessageHook", + "params": [ + { "paramname":"pFunction", "paramtype":"SteamAPIWarningMessageHook_t" } + ], + "returntype": "void" + }, + { + "methodname": "IsOverlayEnabled", + "methodname_flat": "SteamAPI_ISteamUtils_IsOverlayEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BOverlayNeedsPresent", + "methodname_flat": "SteamAPI_ISteamUtils_BOverlayNeedsPresent", + "params": [], + "returntype": "bool" + }, + { + "callresult": "CheckFileSignature_t", + "methodname": "CheckFileSignature", + "methodname_flat": "SteamAPI_ISteamUtils_CheckFileSignature", + "params": [ + { "paramname":"szFileName", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "ShowGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_ShowGamepadTextInput", + "params": [ + { "paramname":"eInputMode", "paramtype":"EGamepadTextInputMode" }, + { "paramname":"eLineInputMode", "paramtype":"EGamepadTextInputLineMode" }, + { "paramname":"pchDescription", "paramtype":"const char *" }, + { "paramname":"unCharMax", "paramtype":"uint32" }, + { "paramname":"pchExistingText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetEnteredGamepadTextLength", + "methodname_flat": "SteamAPI_ISteamUtils_GetEnteredGamepadTextLength", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetEnteredGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_GetEnteredGamepadTextInput", + "params": [ + { "paramname":"pchText", "paramtype":"char *" }, + { "paramname":"cchText", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetSteamUILanguage", + "methodname_flat": "SteamAPI_ISteamUtils_GetSteamUILanguage", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "IsSteamRunningInVR", + "methodname_flat": "SteamAPI_ISteamUtils_IsSteamRunningInVR", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetOverlayNotificationInset", + "methodname_flat": "SteamAPI_ISteamUtils_SetOverlayNotificationInset", + "params": [ + { "paramname":"nHorizontalInset", "paramtype":"int" }, + { "paramname":"nVerticalInset", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "IsSteamInBigPictureMode", + "methodname_flat": "SteamAPI_ISteamUtils_IsSteamInBigPictureMode", + "params": [], + "returntype": "bool" + }, + { + "methodname": "StartVRDashboard", + "methodname_flat": "SteamAPI_ISteamUtils_StartVRDashboard", + "params": [], + "returntype": "void" + }, + { + "methodname": "IsVRHeadsetStreamingEnabled", + "methodname_flat": "SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetVRHeadsetStreamingEnabled", + "methodname_flat": "SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled", + "params": [ + { "paramname":"bEnabled", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "IsSteamChinaLauncher", + "methodname_flat": "SteamAPI_ISteamUtils_IsSteamChinaLauncher", + "params": [], + "returntype": "bool" + }, + { + "methodname": "InitFilterText", + "methodname_flat": "SteamAPI_ISteamUtils_InitFilterText", + "params": [ + { "paramname":"unFilterOptions", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "FilterText", + "methodname_flat": "SteamAPI_ISteamUtils_FilterText", + "params": [ + { "paramname":"eContext", "paramtype":"ETextFilteringContext" }, + { "paramname":"sourceSteamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchInputMessage", "paramtype":"const char *" }, + { "paramname":"pchOutFilteredText", "paramtype":"char *" }, + { "paramname":"nByteSizeOutFilteredText", "paramtype":"uint32" } + ], + "returntype": "int" + }, + { + "methodname": "GetIPv6ConnectivityState", + "methodname_flat": "SteamAPI_ISteamUtils_GetIPv6ConnectivityState", + "params": [ + { "paramname":"eProtocol", "paramtype":"ESteamIPv6ConnectivityProtocol" } + ], + "returntype": "ESteamIPv6ConnectivityState" + }, + { + "methodname": "IsSteamRunningOnSteamDeck", + "methodname_flat": "SteamAPI_ISteamUtils_IsSteamRunningOnSteamDeck", + "params": [], + "returntype": "bool" + }, + { + "methodname": "ShowFloatingGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_ShowFloatingGamepadTextInput", + "params": [ + { "paramname":"eKeyboardMode", "paramtype":"EFloatingGamepadTextInputMode" }, + { "paramname":"nTextFieldXPosition", "paramtype":"int" }, + { "paramname":"nTextFieldYPosition", "paramtype":"int" }, + { "paramname":"nTextFieldWidth", "paramtype":"int" }, + { "paramname":"nTextFieldHeight", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGameLauncherMode", + "methodname_flat": "SteamAPI_ISteamUtils_SetGameLauncherMode", + "params": [ + { "paramname":"bLauncherMode", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "DismissFloatingGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_DismissFloatingGamepadTextInput", + "params": [], + "returntype": "bool" + }, + { + "methodname": "DismissGamepadTextInput", + "methodname_flat": "SteamAPI_ISteamUtils_DismissGamepadTextInput", + "params": [], + "returntype": "bool" + } + ], + "version_string": "SteamUtils010" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamMatchmaking", + "name_flat": "SteamAPI_SteamMatchmaking_v009" + } + ], + "classname": "ISteamMatchmaking", + "fields": [], + "methods": [ + { + "methodname": "GetFavoriteGameCount", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetFavoriteGameCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetFavoriteGame", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetFavoriteGame", + "params": [ + { "paramname":"iGame", "paramtype":"int" }, + { "paramname":"pnAppID", "paramtype":"AppId_t *" }, + { "paramname":"pnIP", "paramtype":"uint32 *" }, + { "paramname":"pnConnPort", "paramtype":"uint16 *" }, + { "paramname":"pnQueryPort", "paramtype":"uint16 *" }, + { "paramname":"punFlags", "paramtype":"uint32 *" }, + { "paramname":"pRTime32LastPlayedOnServer", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddFavoriteGame", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddFavoriteGame", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" }, + { "paramname":"nIP", "paramtype":"uint32" }, + { "paramname":"nConnPort", "paramtype":"uint16" }, + { "paramname":"nQueryPort", "paramtype":"uint16" }, + { "paramname":"unFlags", "paramtype":"uint32" }, + { "paramname":"rTime32LastPlayedOnServer", "paramtype":"uint32" } + ], + "returntype": "int" + }, + { + "methodname": "RemoveFavoriteGame", + "methodname_flat": "SteamAPI_ISteamMatchmaking_RemoveFavoriteGame", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" }, + { "paramname":"nIP", "paramtype":"uint32" }, + { "paramname":"nConnPort", "paramtype":"uint16" }, + { "paramname":"nQueryPort", "paramtype":"uint16" }, + { "paramname":"unFlags", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "callresult": "LobbyMatchList_t", + "methodname": "RequestLobbyList", + "methodname_flat": "SteamAPI_ISteamMatchmaking_RequestLobbyList", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "AddRequestLobbyListStringFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter", + "params": [ + { "paramname":"pchKeyToMatch", "paramtype":"const char *" }, + { "paramname":"pchValueToMatch", "paramtype":"const char *" }, + { "paramname":"eComparisonType", "paramtype":"ELobbyComparison" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListNumericalFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter", + "params": [ + { "paramname":"pchKeyToMatch", "paramtype":"const char *" }, + { "paramname":"nValueToMatch", "paramtype":"int" }, + { "paramname":"eComparisonType", "paramtype":"ELobbyComparison" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListNearValueFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter", + "params": [ + { "paramname":"pchKeyToMatch", "paramtype":"const char *" }, + { "paramname":"nValueToBeCloseTo", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListFilterSlotsAvailable", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable", + "params": [ + { "paramname":"nSlotsAvailable", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListDistanceFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter", + "params": [ + { "paramname":"eLobbyDistanceFilter", "paramtype":"ELobbyDistanceFilter" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListResultCountFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter", + "params": [ + { "paramname":"cMaxResults", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "AddRequestLobbyListCompatibleMembersFilter", + "methodname_flat": "SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "GetLobbyByIndex", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyByIndex", + "params": [ + { "paramname":"iLobby", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "callresult": "LobbyCreated_t", + "methodname": "CreateLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_CreateLobby", + "params": [ + { "paramname":"eLobbyType", "paramtype":"ELobbyType" }, + { "paramname":"cMaxMembers", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "LobbyEnter_t", + "methodname": "JoinLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_JoinLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "LeaveLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_LeaveLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "InviteUserToLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_InviteUserToLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDInvitee", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNumLobbyMembers", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetNumLobbyMembers", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetLobbyMemberByIndex", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iMember", "paramtype":"int" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetLobbyData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "SetLobbyData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyDataCount", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyDataCount", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "GetLobbyDataByIndex", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iLobbyData", "paramtype":"int" }, + { "paramname":"pchKey", "paramtype":"char *" }, + { "paramname":"cchKeyBufferSize", "paramtype":"int" }, + { "paramname":"pchValue", "paramtype":"char *" }, + { "paramname":"cchValueBufferSize", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "DeleteLobbyData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_DeleteLobbyData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyMemberData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyMemberData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "SetLobbyMemberData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyMemberData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SendLobbyChatMsg", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SendLobbyChatMsg", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pvMsgBody", "paramtype":"const void *" }, + { "paramname":"cubMsgBody", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyChatEntry", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyChatEntry", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"iChatID", "paramtype":"int" }, + { + "out_struct": "", + "paramname": "pSteamIDUser", + "paramtype": "CSteamID *" + }, + { "paramname":"pvData", "paramtype":"void *" }, + { "paramname":"cubData", "paramtype":"int" }, + { "paramname":"peChatEntryType", "paramtype":"EChatEntryType *" } + ], + "returntype": "int" + }, + { + "methodname": "RequestLobbyData", + "methodname_flat": "SteamAPI_ISteamMatchmaking_RequestLobbyData", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "SetLobbyGameServer", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyGameServer", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"unGameServerIP", "paramtype":"uint32" }, + { "paramname":"unGameServerPort", "paramtype":"uint16" }, + { "paramname":"steamIDGameServer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "GetLobbyGameServer", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyGameServer", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"punGameServerIP", "paramtype":"uint32 *" }, + { "paramname":"punGameServerPort", "paramtype":"uint16 *" }, + { + "out_struct": "", + "paramname": "psteamIDGameServer", + "paramtype": "CSteamID *" + } + ], + "returntype": "bool" + }, + { + "methodname": "SetLobbyMemberLimit", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"cMaxMembers", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyMemberLimit", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "int" + }, + { + "methodname": "SetLobbyType", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyType", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"eLobbyType", "paramtype":"ELobbyType" } + ], + "returntype": "bool" + }, + { + "methodname": "SetLobbyJoinable", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyJoinable", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"bLobbyJoinable", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "GetLobbyOwner", + "methodname_flat": "SteamAPI_ISteamMatchmaking_GetLobbyOwner", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "SetLobbyOwner", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLobbyOwner", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDNewOwner", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "SetLinkedLobby", + "methodname_flat": "SteamAPI_ISteamMatchmaking_SetLinkedLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDLobbyDependent", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamMatchMaking009" + }, + { + "classname": "ISteamMatchmakingServerListResponse", + "fields": [], + "methods": [ + { + "methodname": "ServerResponded", + "methodname_flat": "SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"iServer", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "ServerFailedToRespond", + "methodname_flat": "SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"iServer", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "RefreshComplete", + "methodname_flat": "SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"response", "paramtype":"EMatchMakingServerResponse" } + ], + "returntype": "void" + } + ] + }, + { + "classname": "ISteamMatchmakingPingResponse", + "fields": [], + "methods": [ + { + "methodname": "ServerResponded", + "methodname_flat": "SteamAPI_ISteamMatchmakingPingResponse_ServerResponded", + "params": [ + { "paramname":"server", "paramtype":"gameserveritem_t &" } + ], + "returntype": "void" + }, + { + "methodname": "ServerFailedToRespond", + "methodname_flat": "SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond", + "params": [], + "returntype": "void" + } + ] + }, + { + "classname": "ISteamMatchmakingPlayersResponse", + "fields": [], + "methods": [ + { + "methodname": "AddPlayerToList", + "methodname_flat": "SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"nScore", "paramtype":"int" }, + { "paramname":"flTimePlayed", "paramtype":"float" } + ], + "returntype": "void" + }, + { + "methodname": "PlayersFailedToRespond", + "methodname_flat": "SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond", + "params": [], + "returntype": "void" + }, + { + "methodname": "PlayersRefreshComplete", + "methodname_flat": "SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete", + "params": [], + "returntype": "void" + } + ] + }, + { + "classname": "ISteamMatchmakingRulesResponse", + "fields": [], + "methods": [ + { + "methodname": "RulesResponded", + "methodname_flat": "SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded", + "params": [ + { "paramname":"pchRule", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "RulesFailedToRespond", + "methodname_flat": "SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond", + "params": [], + "returntype": "void" + }, + { + "methodname": "RulesRefreshComplete", + "methodname_flat": "SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete", + "params": [], + "returntype": "void" + } + ] + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamMatchmakingServers", + "name_flat": "SteamAPI_SteamMatchmakingServers_v002" + } + ], + "classname": "ISteamMatchmakingServers", + "fields": [], + "methods": [ + { + "methodname": "RequestInternetServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestInternetServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestLANServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestLANServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestFriendsServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestFavoritesServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestHistoryServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "RequestSpectatorServerList", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList", + "params": [ + { "paramname":"iApp", "paramtype":"AppId_t" }, + { + "array_count": "nFilters", + "paramname": "ppchFilters", + "paramtype": "MatchMakingKeyValuePair_t **" + }, + { "paramname":"nFilters", "paramtype":"uint32" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingServerListResponse *" } + ], + "returntype": "HServerListRequest" + }, + { + "methodname": "ReleaseRequest", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_ReleaseRequest", + "params": [ + { "paramname":"hServerListRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "void" + }, + { + "methodname": "GetServerDetails", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_GetServerDetails", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"iServer", "paramtype":"int" } + ], + "returntype": "gameserveritem_t *" + }, + { + "methodname": "CancelQuery", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_CancelQuery", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "void" + }, + { + "methodname": "RefreshQuery", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RefreshQuery", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "void" + }, + { + "methodname": "IsRefreshing", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_IsRefreshing", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "bool" + }, + { + "methodname": "GetServerCount", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_GetServerCount", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" } + ], + "returntype": "int" + }, + { + "methodname": "RefreshServer", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_RefreshServer", + "params": [ + { "paramname":"hRequest", "paramtype":"HServerListRequest" }, + { "paramname":"iServer", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "PingServer", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_PingServer", + "params": [ + { "paramname":"unIP", "paramtype":"uint32" }, + { "paramname":"usPort", "paramtype":"uint16" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingPingResponse *" } + ], + "returntype": "HServerQuery" + }, + { + "methodname": "PlayerDetails", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_PlayerDetails", + "params": [ + { "paramname":"unIP", "paramtype":"uint32" }, + { "paramname":"usPort", "paramtype":"uint16" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingPlayersResponse *" } + ], + "returntype": "HServerQuery" + }, + { + "methodname": "ServerRules", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_ServerRules", + "params": [ + { "paramname":"unIP", "paramtype":"uint32" }, + { "paramname":"usPort", "paramtype":"uint16" }, + { "paramname":"pRequestServersResponse", "paramtype":"ISteamMatchmakingRulesResponse *" } + ], + "returntype": "HServerQuery" + }, + { + "methodname": "CancelServerQuery", + "methodname_flat": "SteamAPI_ISteamMatchmakingServers_CancelServerQuery", + "params": [ + { "paramname":"hServerQuery", "paramtype":"HServerQuery" } + ], + "returntype": "void" + } + ], + "version_string": "SteamMatchMakingServers002" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamGameSearch", + "name_flat": "SteamAPI_SteamGameSearch_v001" + } + ], + "classname": "ISteamGameSearch", + "fields": [], + "methods": [ + { + "methodname": "AddGameSearchParams", + "methodname_flat": "SteamAPI_ISteamGameSearch_AddGameSearchParams", + "params": [ + { "paramname":"pchKeyToFind", "paramtype":"const char *" }, + { "paramname":"pchValuesToFind", "paramtype":"const char *" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SearchForGameWithLobby", + "methodname_flat": "SteamAPI_ISteamGameSearch_SearchForGameWithLobby", + "params": [ + { "paramname":"steamIDLobby", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"nPlayerMin", "paramtype":"int" }, + { "paramname":"nPlayerMax", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SearchForGameSolo", + "methodname_flat": "SteamAPI_ISteamGameSearch_SearchForGameSolo", + "params": [ + { "paramname":"nPlayerMin", "paramtype":"int" }, + { "paramname":"nPlayerMax", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "AcceptGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_AcceptGame", + "params": [], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "DeclineGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_DeclineGame", + "params": [], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "RetrieveConnectionDetails", + "methodname_flat": "SteamAPI_ISteamGameSearch_RetrieveConnectionDetails", + "params": [ + { "paramname":"steamIDHost", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchConnectionDetails", "paramtype":"char *" }, + { "paramname":"cubConnectionDetails", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "EndGameSearch", + "methodname_flat": "SteamAPI_ISteamGameSearch_EndGameSearch", + "params": [], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SetGameHostParams", + "methodname_flat": "SteamAPI_ISteamGameSearch_SetGameHostParams", + "params": [ + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SetConnectionDetails", + "methodname_flat": "SteamAPI_ISteamGameSearch_SetConnectionDetails", + "params": [ + { "paramname":"pchConnectionDetails", "paramtype":"const char *" }, + { "paramname":"cubConnectionDetails", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "RequestPlayersForGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_RequestPlayersForGame", + "params": [ + { "paramname":"nPlayerMin", "paramtype":"int" }, + { "paramname":"nPlayerMax", "paramtype":"int" }, + { "paramname":"nMaxTeamSize", "paramtype":"int" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "HostConfirmGameStart", + "methodname_flat": "SteamAPI_ISteamGameSearch_HostConfirmGameStart", + "params": [ + { "paramname":"ullUniqueGameID", "paramtype":"uint64" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "CancelRequestPlayersForGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_CancelRequestPlayersForGame", + "params": [], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "SubmitPlayerResult", + "methodname_flat": "SteamAPI_ISteamGameSearch_SubmitPlayerResult", + "params": [ + { "paramname":"ullUniqueGameID", "paramtype":"uint64" }, + { "paramname":"steamIDPlayer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"EPlayerResult", "paramtype":"EPlayerResult_t" } + ], + "returntype": "EGameSearchErrorCode_t" + }, + { + "methodname": "EndGame", + "methodname_flat": "SteamAPI_ISteamGameSearch_EndGame", + "params": [ + { "paramname":"ullUniqueGameID", "paramtype":"uint64" } + ], + "returntype": "EGameSearchErrorCode_t" + } + ], + "version_string": "SteamMatchGameSearch001" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamParties", + "name_flat": "SteamAPI_SteamParties_v002" + } + ], + "classname": "ISteamParties", + "fields": [], + "methods": [ + { + "methodname": "GetNumActiveBeacons", + "methodname_flat": "SteamAPI_ISteamParties_GetNumActiveBeacons", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetBeaconByIndex", + "methodname_flat": "SteamAPI_ISteamParties_GetBeaconByIndex", + "params": [ + { "paramname":"unIndex", "paramtype":"uint32" } + ], + "returntype": "PartyBeaconID_t" + }, + { + "methodname": "GetBeaconDetails", + "methodname_flat": "SteamAPI_ISteamParties_GetBeaconDetails", + "params": [ + { "paramname":"ulBeaconID", "paramtype":"PartyBeaconID_t" }, + { "paramname":"pSteamIDBeaconOwner", "paramtype":"CSteamID *" }, + { + "out_struct": "", + "paramname": "pLocation", + "paramtype": "SteamPartyBeaconLocation_t *" + }, + { + "out_string_count": "cchMetadata", + "paramname": "pchMetadata", + "paramtype": "char *" + }, + { "paramname":"cchMetadata", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "callresult": "JoinPartyCallback_t", + "methodname": "JoinParty", + "methodname_flat": "SteamAPI_ISteamParties_JoinParty", + "params": [ + { "paramname":"ulBeaconID", "paramtype":"PartyBeaconID_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetNumAvailableBeaconLocations", + "methodname_flat": "SteamAPI_ISteamParties_GetNumAvailableBeaconLocations", + "params": [ + { "paramname":"puNumLocations", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAvailableBeaconLocations", + "methodname_flat": "SteamAPI_ISteamParties_GetAvailableBeaconLocations", + "params": [ + { "paramname":"pLocationList", "paramtype":"SteamPartyBeaconLocation_t *" }, + { "paramname":"uMaxNumLocations", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "callresult": "CreateBeaconCallback_t", + "methodname": "CreateBeacon", + "methodname_flat": "SteamAPI_ISteamParties_CreateBeacon", + "params": [ + { "paramname":"unOpenSlots", "paramtype":"uint32" }, + { "paramname":"pBeaconLocation", "paramtype":"SteamPartyBeaconLocation_t *" }, + { "paramname":"pchConnectString", "paramtype":"const char *" }, + { "paramname":"pchMetadata", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "OnReservationCompleted", + "methodname_flat": "SteamAPI_ISteamParties_OnReservationCompleted", + "params": [ + { "paramname":"ulBeacon", "paramtype":"PartyBeaconID_t" }, + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "CancelReservation", + "methodname_flat": "SteamAPI_ISteamParties_CancelReservation", + "params": [ + { "paramname":"ulBeacon", "paramtype":"PartyBeaconID_t" }, + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "callresult": "ChangeNumOpenSlotsCallback_t", + "methodname": "ChangeNumOpenSlots", + "methodname_flat": "SteamAPI_ISteamParties_ChangeNumOpenSlots", + "params": [ + { "paramname":"ulBeacon", "paramtype":"PartyBeaconID_t" }, + { "paramname":"unOpenSlots", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "DestroyBeacon", + "methodname_flat": "SteamAPI_ISteamParties_DestroyBeacon", + "params": [ + { "paramname":"ulBeacon", "paramtype":"PartyBeaconID_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetBeaconLocationData", + "methodname_flat": "SteamAPI_ISteamParties_GetBeaconLocationData", + "params": [ + { "paramname":"BeaconLocation", "paramtype":"SteamPartyBeaconLocation_t" }, + { "paramname":"eData", "paramtype":"ESteamPartyBeaconLocationData" }, + { + "out_string_count": "cchDataStringOut", + "paramname": "pchDataStringOut", + "paramtype": "char *" + }, + { "paramname":"cchDataStringOut", "paramtype":"int" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamParties002" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamRemoteStorage", + "name_flat": "SteamAPI_SteamRemoteStorage_v016" + } + ], + "classname": "ISteamRemoteStorage", + "fields": [], + "methods": [ + { + "methodname": "FileWrite", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWrite", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"pvData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "FileRead", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileRead", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"pvData", "paramtype":"void *" }, + { "paramname":"cubDataToRead", "paramtype":"int32" } + ], + "returntype": "int32" + }, + { + "callresult": "RemoteStorageFileWriteAsyncComplete_t", + "methodname": "FileWriteAsync", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteAsync", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"pvData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageFileReadAsyncComplete_t", + "methodname": "FileReadAsync", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileReadAsync", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"nOffset", "paramtype":"uint32" }, + { "paramname":"cubToRead", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "FileReadAsyncComplete", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete", + "params": [ + { "paramname":"hReadCall", "paramtype":"SteamAPICall_t" }, + { "paramname":"pvBuffer", "paramtype":"void *" }, + { "paramname":"cubToRead", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "FileForget", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileForget", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "FileDelete", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileDelete", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "callresult": "RemoteStorageFileShareResult_t", + "methodname": "FileShare", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileShare", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "SetSyncPlatforms", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_SetSyncPlatforms", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"eRemoteStoragePlatform", "paramtype":"ERemoteStoragePlatform" } + ], + "returntype": "bool" + }, + { + "methodname": "FileWriteStreamOpen", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "UGCFileWriteStreamHandle_t" + }, + { + "methodname": "FileWriteStreamWriteChunk", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk", + "params": [ + { "paramname":"writeHandle", "paramtype":"UGCFileWriteStreamHandle_t" }, + { "paramname":"pvData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "FileWriteStreamClose", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteStreamClose", + "params": [ + { "paramname":"writeHandle", "paramtype":"UGCFileWriteStreamHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "FileWriteStreamCancel", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel", + "params": [ + { "paramname":"writeHandle", "paramtype":"UGCFileWriteStreamHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "FileExists", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FileExists", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "FilePersisted", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_FilePersisted", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetFileSize", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetFileSize", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "int32" + }, + { + "methodname": "GetFileTimestamp", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetFileTimestamp", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "int64" + }, + { + "methodname": "GetSyncPlatforms", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetSyncPlatforms", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "ERemoteStoragePlatform" + }, + { + "methodname": "GetFileCount", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetFileCount", + "params": [], + "returntype": "int32" + }, + { + "methodname": "GetFileNameAndSize", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetFileNameAndSize", + "params": [ + { "paramname":"iFile", "paramtype":"int" }, + { "paramname":"pnFileSizeInBytes", "paramtype":"int32 *" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetQuota", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetQuota", + "params": [ + { "paramname":"pnTotalBytes", "paramtype":"uint64 *" }, + { "paramname":"puAvailableBytes", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "IsCloudEnabledForAccount", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount", + "params": [], + "returntype": "bool" + }, + { + "methodname": "IsCloudEnabledForApp", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetCloudEnabledForApp", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp", + "params": [ + { "paramname":"bEnabled", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "callresult": "RemoteStorageDownloadUGCResult_t", + "methodname": "UGCDownload", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UGCDownload", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"unPriority", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetUGCDownloadProgress", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"pnBytesDownloaded", "paramtype":"int32 *" }, + { "paramname":"pnBytesExpected", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUGCDetails", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetUGCDetails", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"pnAppID", "paramtype":"AppId_t *" }, + { + "out_string": "", + "paramname": "ppchName", + "paramtype": "char **" + }, + { "paramname":"pnFileSizeInBytes", "paramtype":"int32 *" }, + { + "out_struct": "", + "paramname": "pSteamIDOwner", + "paramtype": "CSteamID *" + } + ], + "returntype": "bool" + }, + { + "methodname": "UGCRead", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UGCRead", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"pvData", "paramtype":"void *" }, + { "paramname":"cubDataToRead", "paramtype":"int32" }, + { "paramname":"cOffset", "paramtype":"uint32" }, + { "paramname":"eAction", "paramtype":"EUGCReadAction" } + ], + "returntype": "int32" + }, + { + "methodname": "GetCachedUGCCount", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetCachedUGCCount", + "params": [], + "returntype": "int32" + }, + { + "methodname": "GetCachedUGCHandle", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle", + "params": [ + { "paramname":"iCachedContent", "paramtype":"int32" } + ], + "returntype": "UGCHandle_t" + }, + { + "callresult": "RemoteStoragePublishFileProgress_t", + "methodname": "PublishWorkshopFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_PublishWorkshopFile", + "params": [ + { "paramname":"pchFile", "paramtype":"const char *" }, + { "paramname":"pchPreviewFile", "paramtype":"const char *" }, + { "paramname":"nConsumerAppId", "paramtype":"AppId_t" }, + { "paramname":"pchTitle", "paramtype":"const char *" }, + { "paramname":"pchDescription", "paramtype":"const char *" }, + { "paramname":"eVisibility", "paramtype":"ERemoteStoragePublishedFileVisibility" }, + { "paramname":"pTags", "paramtype":"SteamParamStringArray_t *" }, + { "paramname":"eWorkshopFileType", "paramtype":"EWorkshopFileType" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "CreatePublishedFileUpdateRequest", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "PublishedFileUpdateHandle_t" + }, + { + "methodname": "UpdatePublishedFileFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFilePreviewFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchPreviewFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFileTitle", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchTitle", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFileDescription", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchDescription", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFileVisibility", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"eVisibility", "paramtype":"ERemoteStoragePublishedFileVisibility" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePublishedFileTags", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pTags", "paramtype":"SteamParamStringArray_t *" } + ], + "returntype": "bool" + }, + { + "callresult": "RemoteStorageUpdatePublishedFileResult_t", + "methodname": "CommitPublishedFileUpdate", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageGetPublishedFileDetailsResult_t", + "methodname": "GetPublishedFileDetails", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" }, + { "paramname":"unMaxSecondsOld", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageDeletePublishedFileResult_t", + "methodname": "DeletePublishedFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_DeletePublishedFile", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumerateUserPublishedFilesResult_t", + "methodname": "EnumerateUserPublishedFiles", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles", + "params": [ + { "paramname":"unStartIndex", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageSubscribePublishedFileResult_t", + "methodname": "SubscribePublishedFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_SubscribePublishedFile", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumerateUserSubscribedFilesResult_t", + "methodname": "EnumerateUserSubscribedFiles", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles", + "params": [ + { "paramname":"unStartIndex", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageUnsubscribePublishedFileResult_t", + "methodname": "UnsubscribePublishedFile", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "UpdatePublishedFileSetChangeDescription", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription", + "params": [ + { "paramname":"updateHandle", "paramtype":"PublishedFileUpdateHandle_t" }, + { "paramname":"pchChangeDescription", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "callresult": "RemoteStorageGetPublishedItemVoteDetailsResult_t", + "methodname": "GetPublishedItemVoteDetails", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageUpdateUserPublishedItemVoteResult_t", + "methodname": "UpdateUserPublishedItemVote", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" }, + { "paramname":"bVoteUp", "paramtype":"bool" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageGetPublishedItemVoteDetailsResult_t", + "methodname": "GetUserPublishedItemVoteDetails", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumerateUserPublishedFilesResult_t", + "methodname": "EnumerateUserSharedWorkshopFiles", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles", + "params": [ + { "paramname":"steamId", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"unStartIndex", "paramtype":"uint32" }, + { "paramname":"pRequiredTags", "paramtype":"SteamParamStringArray_t *" }, + { "paramname":"pExcludedTags", "paramtype":"SteamParamStringArray_t *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStoragePublishFileProgress_t", + "methodname": "PublishVideo", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_PublishVideo", + "params": [ + { "paramname":"eVideoProvider", "paramtype":"EWorkshopVideoProvider" }, + { "paramname":"pchVideoAccount", "paramtype":"const char *" }, + { "paramname":"pchVideoIdentifier", "paramtype":"const char *" }, + { "paramname":"pchPreviewFile", "paramtype":"const char *" }, + { "paramname":"nConsumerAppId", "paramtype":"AppId_t" }, + { "paramname":"pchTitle", "paramtype":"const char *" }, + { "paramname":"pchDescription", "paramtype":"const char *" }, + { "paramname":"eVisibility", "paramtype":"ERemoteStoragePublishedFileVisibility" }, + { "paramname":"pTags", "paramtype":"SteamParamStringArray_t *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageSetUserPublishedFileActionResult_t", + "methodname": "SetUserPublishedFileAction", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction", + "params": [ + { "paramname":"unPublishedFileId", "paramtype":"PublishedFileId_t" }, + { "paramname":"eAction", "paramtype":"EWorkshopFileAction" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumeratePublishedFilesByUserActionResult_t", + "methodname": "EnumeratePublishedFilesByUserAction", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction", + "params": [ + { "paramname":"eAction", "paramtype":"EWorkshopFileAction" }, + { "paramname":"unStartIndex", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageEnumerateWorkshopFilesResult_t", + "methodname": "EnumeratePublishedWorkshopFiles", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles", + "params": [ + { "paramname":"eEnumerationType", "paramtype":"EWorkshopEnumerationType" }, + { "paramname":"unStartIndex", "paramtype":"uint32" }, + { "paramname":"unCount", "paramtype":"uint32" }, + { "paramname":"unDays", "paramtype":"uint32" }, + { "paramname":"pTags", "paramtype":"SteamParamStringArray_t *" }, + { "paramname":"pUserTags", "paramtype":"SteamParamStringArray_t *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageDownloadUGCResult_t", + "methodname": "UGCDownloadToLocation", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation", + "params": [ + { "paramname":"hContent", "paramtype":"UGCHandle_t" }, + { "paramname":"pchLocation", "paramtype":"const char *" }, + { "paramname":"unPriority", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetLocalFileChangeCount", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetLocalFileChangeCount", + "params": [], + "returntype": "int32" + }, + { + "methodname": "GetLocalFileChange", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_GetLocalFileChange", + "params": [ + { "paramname":"iFile", "paramtype":"int" }, + { "paramname":"pEChangeType", "paramtype":"ERemoteStorageLocalFileChange *" }, + { "paramname":"pEFilePathType", "paramtype":"ERemoteStorageFilePathType *" } + ], + "returntype": "const char *" + }, + { + "methodname": "BeginFileWriteBatch", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_BeginFileWriteBatch", + "params": [], + "returntype": "bool" + }, + { + "methodname": "EndFileWriteBatch", + "methodname_flat": "SteamAPI_ISteamRemoteStorage_EndFileWriteBatch", + "params": [], + "returntype": "bool" + } + ], + "version_string": "STEAMREMOTESTORAGE_INTERFACE_VERSION016" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamUserStats", + "name_flat": "SteamAPI_SteamUserStats_v012" + } + ], + "classname": "ISteamUserStats", + "fields": [], + "methods": [ + { + "callback": "UserStatsReceived_t", + "methodname": "RequestCurrentStats", + "methodname_flat": "SteamAPI_ISteamUserStats_RequestCurrentStats", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetStatInt32", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetStatFloat", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetStat", + "methodname_flat": "SteamAPI_ISteamUserStats_SetStatInt32", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"nData", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetStat", + "methodname_flat": "SteamAPI_ISteamUserStats_SetStatFloat", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"fData", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateAvgRateStat", + "methodname_flat": "SteamAPI_ISteamUserStats_UpdateAvgRateStat", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"flCountThisSession", "paramtype":"float" }, + { "paramname":"dSessionLength", "paramtype":"double" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAchievement", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievement", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetAchievement", + "methodname_flat": "SteamAPI_ISteamUserStats_SetAchievement", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "ClearAchievement", + "methodname_flat": "SteamAPI_ISteamUserStats_ClearAchievement", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAchievementAndUnlockTime", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" }, + { "paramname":"punUnlockTime", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "StoreStats", + "methodname_flat": "SteamAPI_ISteamUserStats_StoreStats", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetAchievementIcon", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementIcon", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "int" + }, + { + "methodname": "GetAchievementDisplayAttribute", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "IndicateAchievementProgress", + "methodname_flat": "SteamAPI_ISteamUserStats_IndicateAchievementProgress", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"nCurProgress", "paramtype":"uint32" }, + { "paramname":"nMaxProgress", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNumAchievements", + "methodname_flat": "SteamAPI_ISteamUserStats_GetNumAchievements", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetAchievementName", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementName", + "params": [ + { "paramname":"iAchievement", "paramtype":"uint32" } + ], + "returntype": "const char *" + }, + { + "callresult": "UserStatsReceived_t", + "methodname": "RequestUserStats", + "methodname_flat": "SteamAPI_ISteamUserStats_RequestUserStats", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetUserStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetUserStatInt32", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetUserStatFloat", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserAchievement", + "methodname_flat": "SteamAPI_ISteamUserStats_GetUserAchievement", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserAchievementAndUnlockTime", + "methodname_flat": "SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" }, + { "paramname":"punUnlockTime", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "ResetAllStats", + "methodname_flat": "SteamAPI_ISteamUserStats_ResetAllStats", + "params": [ + { "paramname":"bAchievementsToo", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "callresult": "LeaderboardFindResult_t", + "methodname": "FindOrCreateLeaderboard", + "methodname_flat": "SteamAPI_ISteamUserStats_FindOrCreateLeaderboard", + "params": [ + { "paramname":"pchLeaderboardName", "paramtype":"const char *" }, + { "paramname":"eLeaderboardSortMethod", "paramtype":"ELeaderboardSortMethod" }, + { "paramname":"eLeaderboardDisplayType", "paramtype":"ELeaderboardDisplayType" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "LeaderboardFindResult_t", + "methodname": "FindLeaderboard", + "methodname_flat": "SteamAPI_ISteamUserStats_FindLeaderboard", + "params": [ + { "paramname":"pchLeaderboardName", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetLeaderboardName", + "methodname_flat": "SteamAPI_ISteamUserStats_GetLeaderboardName", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetLeaderboardEntryCount", + "methodname_flat": "SteamAPI_ISteamUserStats_GetLeaderboardEntryCount", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetLeaderboardSortMethod", + "methodname_flat": "SteamAPI_ISteamUserStats_GetLeaderboardSortMethod", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" } + ], + "returntype": "ELeaderboardSortMethod" + }, + { + "methodname": "GetLeaderboardDisplayType", + "methodname_flat": "SteamAPI_ISteamUserStats_GetLeaderboardDisplayType", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" } + ], + "returntype": "ELeaderboardDisplayType" + }, + { + "callresult": "LeaderboardScoresDownloaded_t", + "methodname": "DownloadLeaderboardEntries", + "methodname_flat": "SteamAPI_ISteamUserStats_DownloadLeaderboardEntries", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" }, + { "paramname":"eLeaderboardDataRequest", "paramtype":"ELeaderboardDataRequest" }, + { "paramname":"nRangeStart", "paramtype":"int" }, + { "paramname":"nRangeEnd", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "LeaderboardScoresDownloaded_t", + "methodname": "DownloadLeaderboardEntriesForUsers", + "methodname_flat": "SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" }, + { + "array_count": "cUsers", + "desc": "Array of users to retrieve", + "paramname": "prgUsers", + "paramtype": "CSteamID *" + }, + { "paramname":"cUsers", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetDownloadedLeaderboardEntry", + "methodname_flat": "SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry", + "params": [ + { "paramname":"hSteamLeaderboardEntries", "paramtype":"SteamLeaderboardEntries_t" }, + { "paramname":"index", "paramtype":"int" }, + { "paramname":"pLeaderboardEntry", "paramtype":"LeaderboardEntry_t *" }, + { "paramname":"pDetails", "paramtype":"int32 *" }, + { "paramname":"cDetailsMax", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "callresult": "LeaderboardScoreUploaded_t", + "methodname": "UploadLeaderboardScore", + "methodname_flat": "SteamAPI_ISteamUserStats_UploadLeaderboardScore", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" }, + { "paramname":"eLeaderboardUploadScoreMethod", "paramtype":"ELeaderboardUploadScoreMethod" }, + { "paramname":"nScore", "paramtype":"int32" }, + { "paramname":"pScoreDetails", "paramtype":"const int32 *" }, + { "paramname":"cScoreDetailsCount", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "LeaderboardUGCSet_t", + "methodname": "AttachLeaderboardUGC", + "methodname_flat": "SteamAPI_ISteamUserStats_AttachLeaderboardUGC", + "params": [ + { "paramname":"hSteamLeaderboard", "paramtype":"SteamLeaderboard_t" }, + { "paramname":"hUGC", "paramtype":"UGCHandle_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "NumberOfCurrentPlayers_t", + "methodname": "GetNumberOfCurrentPlayers", + "methodname_flat": "SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "GlobalAchievementPercentagesReady_t", + "methodname": "RequestGlobalAchievementPercentages", + "methodname_flat": "SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetMostAchievedAchievementInfo", + "methodname_flat": "SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo", + "params": [ + { "paramname":"pchName", "paramtype":"char *" }, + { "paramname":"unNameBufLen", "paramtype":"uint32" }, + { "paramname":"pflPercent", "paramtype":"float *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "int" + }, + { + "methodname": "GetNextMostAchievedAchievementInfo", + "methodname_flat": "SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo", + "params": [ + { "paramname":"iIteratorPrevious", "paramtype":"int" }, + { "paramname":"pchName", "paramtype":"char *" }, + { "paramname":"unNameBufLen", "paramtype":"uint32" }, + { "paramname":"pflPercent", "paramtype":"float *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "int" + }, + { + "methodname": "GetAchievementAchievedPercent", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementAchievedPercent", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pflPercent", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "callresult": "GlobalStatsReceived_t", + "methodname": "RequestGlobalStats", + "methodname_flat": "SteamAPI_ISteamUserStats_RequestGlobalStats", + "params": [ + { "paramname":"nHistoryDays", "paramtype":"int" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetGlobalStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetGlobalStatInt64", + "params": [ + { "paramname":"pchStatName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"int64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGlobalStat", + "methodname_flat": "SteamAPI_ISteamUserStats_GetGlobalStatDouble", + "params": [ + { "paramname":"pchStatName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"double *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGlobalStatHistory", + "methodname_flat": "SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64", + "params": [ + { "paramname":"pchStatName", "paramtype":"const char *" }, + { + "array_count": "cubData", + "paramname": "pData", + "paramtype": "int64 *" + }, + { "paramname":"cubData", "paramtype":"uint32" } + ], + "returntype": "int32" + }, + { + "methodname": "GetGlobalStatHistory", + "methodname_flat": "SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble", + "params": [ + { "paramname":"pchStatName", "paramtype":"const char *" }, + { + "array_count": "cubData", + "paramname": "pData", + "paramtype": "double *" + }, + { "paramname":"cubData", "paramtype":"uint32" } + ], + "returntype": "int32" + }, + { + "methodname": "GetAchievementProgressLimits", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementProgressLimitsInt32", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pnMinProgress", "paramtype":"int32 *" }, + { "paramname":"pnMaxProgress", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAchievementProgressLimits", + "methodname_flat": "SteamAPI_ISteamUserStats_GetAchievementProgressLimitsFloat", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pfMinProgress", "paramtype":"float *" }, + { "paramname":"pfMaxProgress", "paramtype":"float *" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMUSERSTATS_INTERFACE_VERSION012" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamApps", + "name_flat": "SteamAPI_SteamApps_v008" + } + ], + "classname": "ISteamApps", + "fields": [], + "methods": [ + { + "methodname": "BIsSubscribed", + "methodname_flat": "SteamAPI_ISteamApps_BIsSubscribed", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsLowViolence", + "methodname_flat": "SteamAPI_ISteamApps_BIsLowViolence", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsCybercafe", + "methodname_flat": "SteamAPI_ISteamApps_BIsCybercafe", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsVACBanned", + "methodname_flat": "SteamAPI_ISteamApps_BIsVACBanned", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetCurrentGameLanguage", + "methodname_flat": "SteamAPI_ISteamApps_GetCurrentGameLanguage", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "GetAvailableGameLanguages", + "methodname_flat": "SteamAPI_ISteamApps_GetAvailableGameLanguages", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "BIsSubscribedApp", + "methodname_flat": "SteamAPI_ISteamApps_BIsSubscribedApp", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "BIsDlcInstalled", + "methodname_flat": "SteamAPI_ISteamApps_BIsDlcInstalled", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetEarliestPurchaseUnixTime", + "methodname_flat": "SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "BIsSubscribedFromFreeWeekend", + "methodname_flat": "SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetDLCCount", + "methodname_flat": "SteamAPI_ISteamApps_GetDLCCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "BGetDLCDataByIndex", + "methodname_flat": "SteamAPI_ISteamApps_BGetDLCDataByIndex", + "params": [ + { "paramname":"iDLC", "paramtype":"int" }, + { "paramname":"pAppID", "paramtype":"AppId_t *" }, + { "paramname":"pbAvailable", "paramtype":"bool *" }, + { "paramname":"pchName", "paramtype":"char *" }, + { "paramname":"cchNameBufferSize", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "InstallDLC", + "methodname_flat": "SteamAPI_ISteamApps_InstallDLC", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "void" + }, + { + "methodname": "UninstallDLC", + "methodname_flat": "SteamAPI_ISteamApps_UninstallDLC", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "void" + }, + { + "methodname": "RequestAppProofOfPurchaseKey", + "methodname_flat": "SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetCurrentBetaName", + "methodname_flat": "SteamAPI_ISteamApps_GetCurrentBetaName", + "params": [ + { "paramname":"pchName", "paramtype":"char *" }, + { "paramname":"cchNameBufferSize", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "MarkContentCorrupt", + "methodname_flat": "SteamAPI_ISteamApps_MarkContentCorrupt", + "params": [ + { "paramname":"bMissingFilesOnly", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "GetInstalledDepots", + "methodname_flat": "SteamAPI_ISteamApps_GetInstalledDepots", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" }, + { "paramname":"pvecDepots", "paramtype":"DepotId_t *" }, + { "paramname":"cMaxDepots", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetAppInstallDir", + "methodname_flat": "SteamAPI_ISteamApps_GetAppInstallDir", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" }, + { "paramname":"pchFolder", "paramtype":"char *" }, + { "paramname":"cchFolderBufferSize", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "BIsAppInstalled", + "methodname_flat": "SteamAPI_ISteamApps_BIsAppInstalled", + "params": [ + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAppOwner", + "methodname_flat": "SteamAPI_ISteamApps_GetAppOwner", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetLaunchQueryParam", + "methodname_flat": "SteamAPI_ISteamApps_GetLaunchQueryParam", + "params": [ + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetDlcDownloadProgress", + "methodname_flat": "SteamAPI_ISteamApps_GetDlcDownloadProgress", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" }, + { "paramname":"punBytesDownloaded", "paramtype":"uint64 *" }, + { "paramname":"punBytesTotal", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetAppBuildId", + "methodname_flat": "SteamAPI_ISteamApps_GetAppBuildId", + "params": [], + "returntype": "int" + }, + { + "methodname": "RequestAllProofOfPurchaseKeys", + "methodname_flat": "SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys", + "params": [], + "returntype": "void" + }, + { + "callresult": "FileDetailsResult_t", + "methodname": "GetFileDetails", + "methodname_flat": "SteamAPI_ISteamApps_GetFileDetails", + "params": [ + { "paramname":"pszFileName", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetLaunchCommandLine", + "methodname_flat": "SteamAPI_ISteamApps_GetLaunchCommandLine", + "params": [ + { "paramname":"pszCommandLine", "paramtype":"char *" }, + { "paramname":"cubCommandLine", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "BIsSubscribedFromFamilySharing", + "methodname_flat": "SteamAPI_ISteamApps_BIsSubscribedFromFamilySharing", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsTimedTrial", + "methodname_flat": "SteamAPI_ISteamApps_BIsTimedTrial", + "params": [ + { "paramname":"punSecondsAllowed", "paramtype":"uint32 *" }, + { "paramname":"punSecondsPlayed", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetDlcContext", + "methodname_flat": "SteamAPI_ISteamApps_SetDlcContext", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMAPPS_INTERFACE_VERSION008" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamNetworking", + "name_flat": "SteamAPI_SteamNetworking_v006" + }, + { + "kind": "gameserver", + "name": "SteamGameServerNetworking", + "name_flat": "SteamAPI_SteamGameServerNetworking_v006" + } + ], + "classname": "ISteamNetworking", + "fields": [], + "methods": [ + { + "methodname": "SendP2PPacket", + "methodname_flat": "SteamAPI_ISteamNetworking_SendP2PPacket", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pubData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"uint32" }, + { "paramname":"eP2PSendType", "paramtype":"EP2PSend" }, + { "paramname":"nChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "IsP2PPacketAvailable", + "methodname_flat": "SteamAPI_ISteamNetworking_IsP2PPacketAvailable", + "params": [ + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" }, + { "paramname":"nChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "ReadP2PPacket", + "methodname_flat": "SteamAPI_ISteamNetworking_ReadP2PPacket", + "params": [ + { "paramname":"pubDest", "paramtype":"void *" }, + { "paramname":"cubDest", "paramtype":"uint32" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" }, + { "paramname":"psteamIDRemote", "paramtype":"CSteamID *" }, + { "paramname":"nChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "AcceptP2PSessionWithUser", + "methodname_flat": "SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseP2PSessionWithUser", + "methodname_flat": "SteamAPI_ISteamNetworking_CloseP2PSessionWithUser", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseP2PChannelWithUser", + "methodname_flat": "SteamAPI_ISteamNetworking_CloseP2PChannelWithUser", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"nChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetP2PSessionState", + "methodname_flat": "SteamAPI_ISteamNetworking_GetP2PSessionState", + "params": [ + { "paramname":"steamIDRemote", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pConnectionState", "paramtype":"P2PSessionState_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "AllowP2PPacketRelay", + "methodname_flat": "SteamAPI_ISteamNetworking_AllowP2PPacketRelay", + "params": [ + { "paramname":"bAllow", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "CreateListenSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_CreateListenSocket", + "params": [ + { "paramname":"nVirtualP2PPort", "paramtype":"int" }, + { "paramname":"nIP", "paramtype":"SteamIPAddress_t" }, + { "paramname":"nPort", "paramtype":"uint16" }, + { "paramname":"bAllowUseOfPacketRelay", "paramtype":"bool" } + ], + "returntype": "SNetListenSocket_t" + }, + { + "methodname": "CreateP2PConnectionSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_CreateP2PConnectionSocket", + "params": [ + { "paramname":"steamIDTarget", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"nVirtualPort", "paramtype":"int" }, + { "paramname":"nTimeoutSec", "paramtype":"int" }, + { "paramname":"bAllowUseOfPacketRelay", "paramtype":"bool" } + ], + "returntype": "SNetSocket_t" + }, + { + "methodname": "CreateConnectionSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_CreateConnectionSocket", + "params": [ + { "paramname":"nIP", "paramtype":"SteamIPAddress_t" }, + { "paramname":"nPort", "paramtype":"uint16" }, + { "paramname":"nTimeoutSec", "paramtype":"int" } + ], + "returntype": "SNetSocket_t" + }, + { + "methodname": "DestroySocket", + "methodname_flat": "SteamAPI_ISteamNetworking_DestroySocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"bNotifyRemoteEnd", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "DestroyListenSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_DestroyListenSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetListenSocket_t" }, + { "paramname":"bNotifyRemoteEnd", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SendDataOnSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_SendDataOnSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"pubData", "paramtype":"void *" }, + { "paramname":"cubData", "paramtype":"uint32" }, + { "paramname":"bReliable", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "IsDataAvailableOnSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_IsDataAvailableOnSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "RetrieveDataFromSocket", + "methodname_flat": "SteamAPI_ISteamNetworking_RetrieveDataFromSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"pubDest", "paramtype":"void *" }, + { "paramname":"cubDest", "paramtype":"uint32" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "IsDataAvailable", + "methodname_flat": "SteamAPI_ISteamNetworking_IsDataAvailable", + "params": [ + { "paramname":"hListenSocket", "paramtype":"SNetListenSocket_t" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" }, + { "paramname":"phSocket", "paramtype":"SNetSocket_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "RetrieveData", + "methodname_flat": "SteamAPI_ISteamNetworking_RetrieveData", + "params": [ + { "paramname":"hListenSocket", "paramtype":"SNetListenSocket_t" }, + { "paramname":"pubDest", "paramtype":"void *" }, + { "paramname":"cubDest", "paramtype":"uint32" }, + { "paramname":"pcubMsgSize", "paramtype":"uint32 *" }, + { "paramname":"phSocket", "paramtype":"SNetSocket_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetSocketInfo", + "methodname_flat": "SteamAPI_ISteamNetworking_GetSocketInfo", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" }, + { "paramname":"pSteamIDRemote", "paramtype":"CSteamID *" }, + { "paramname":"peSocketStatus", "paramtype":"int *" }, + { "paramname":"punIPRemote", "paramtype":"SteamIPAddress_t *" }, + { "paramname":"punPortRemote", "paramtype":"uint16 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetListenSocketInfo", + "methodname_flat": "SteamAPI_ISteamNetworking_GetListenSocketInfo", + "params": [ + { "paramname":"hListenSocket", "paramtype":"SNetListenSocket_t" }, + { "paramname":"pnIP", "paramtype":"SteamIPAddress_t *" }, + { "paramname":"pnPort", "paramtype":"uint16 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetSocketConnectionType", + "methodname_flat": "SteamAPI_ISteamNetworking_GetSocketConnectionType", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" } + ], + "returntype": "ESNetSocketConnectionType" + }, + { + "methodname": "GetMaxPacketSize", + "methodname_flat": "SteamAPI_ISteamNetworking_GetMaxPacketSize", + "params": [ + { "paramname":"hSocket", "paramtype":"SNetSocket_t" } + ], + "returntype": "int" + } + ], + "version_string": "SteamNetworking006" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamScreenshots", + "name_flat": "SteamAPI_SteamScreenshots_v003" + } + ], + "classname": "ISteamScreenshots", + "fields": [], + "methods": [ + { + "methodname": "WriteScreenshot", + "methodname_flat": "SteamAPI_ISteamScreenshots_WriteScreenshot", + "params": [ + { "paramname":"pubRGB", "paramtype":"void *" }, + { "paramname":"cubRGB", "paramtype":"uint32" }, + { "paramname":"nWidth", "paramtype":"int" }, + { "paramname":"nHeight", "paramtype":"int" } + ], + "returntype": "ScreenshotHandle" + }, + { + "methodname": "AddScreenshotToLibrary", + "methodname_flat": "SteamAPI_ISteamScreenshots_AddScreenshotToLibrary", + "params": [ + { "paramname":"pchFilename", "paramtype":"const char *" }, + { "paramname":"pchThumbnailFilename", "paramtype":"const char *" }, + { "paramname":"nWidth", "paramtype":"int" }, + { "paramname":"nHeight", "paramtype":"int" } + ], + "returntype": "ScreenshotHandle" + }, + { + "methodname": "TriggerScreenshot", + "methodname_flat": "SteamAPI_ISteamScreenshots_TriggerScreenshot", + "params": [], + "returntype": "void" + }, + { + "methodname": "HookScreenshots", + "methodname_flat": "SteamAPI_ISteamScreenshots_HookScreenshots", + "params": [ + { "paramname":"bHook", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SetLocation", + "methodname_flat": "SteamAPI_ISteamScreenshots_SetLocation", + "params": [ + { "paramname":"hScreenshot", "paramtype":"ScreenshotHandle" }, + { "paramname":"pchLocation", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "TagUser", + "methodname_flat": "SteamAPI_ISteamScreenshots_TagUser", + "params": [ + { "paramname":"hScreenshot", "paramtype":"ScreenshotHandle" }, + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "TagPublishedFile", + "methodname_flat": "SteamAPI_ISteamScreenshots_TagPublishedFile", + "params": [ + { "paramname":"hScreenshot", "paramtype":"ScreenshotHandle" }, + { "paramname":"unPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "IsScreenshotsHooked", + "methodname_flat": "SteamAPI_ISteamScreenshots_IsScreenshotsHooked", + "params": [], + "returntype": "bool" + }, + { + "methodname": "AddVRScreenshotToLibrary", + "methodname_flat": "SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary", + "params": [ + { "paramname":"eType", "paramtype":"EVRScreenshotType" }, + { "paramname":"pchFilename", "paramtype":"const char *" }, + { "paramname":"pchVRFilename", "paramtype":"const char *" } + ], + "returntype": "ScreenshotHandle" + } + ], + "version_string": "STEAMSCREENSHOTS_INTERFACE_VERSION003" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamMusic", + "name_flat": "SteamAPI_SteamMusic_v001" + } + ], + "classname": "ISteamMusic", + "fields": [], + "methods": [ + { + "methodname": "BIsEnabled", + "methodname_flat": "SteamAPI_ISteamMusic_BIsEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsPlaying", + "methodname_flat": "SteamAPI_ISteamMusic_BIsPlaying", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetPlaybackStatus", + "methodname_flat": "SteamAPI_ISteamMusic_GetPlaybackStatus", + "params": [], + "returntype": "AudioPlayback_Status" + }, + { + "methodname": "Play", + "methodname_flat": "SteamAPI_ISteamMusic_Play", + "params": [], + "returntype": "void" + }, + { + "methodname": "Pause", + "methodname_flat": "SteamAPI_ISteamMusic_Pause", + "params": [], + "returntype": "void" + }, + { + "methodname": "PlayPrevious", + "methodname_flat": "SteamAPI_ISteamMusic_PlayPrevious", + "params": [], + "returntype": "void" + }, + { + "methodname": "PlayNext", + "methodname_flat": "SteamAPI_ISteamMusic_PlayNext", + "params": [], + "returntype": "void" + }, + { + "methodname": "SetVolume", + "methodname_flat": "SteamAPI_ISteamMusic_SetVolume", + "params": [ + { "paramname":"flVolume", "paramtype":"float" } + ], + "returntype": "void" + }, + { + "methodname": "GetVolume", + "methodname_flat": "SteamAPI_ISteamMusic_GetVolume", + "params": [], + "returntype": "float" + } + ], + "version_string": "STEAMMUSIC_INTERFACE_VERSION001" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamMusicRemote", + "name_flat": "SteamAPI_SteamMusicRemote_v001" + } + ], + "classname": "ISteamMusicRemote", + "fields": [], + "methods": [ + { + "methodname": "RegisterSteamMusicRemote", + "methodname_flat": "SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote", + "params": [ + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "DeregisterSteamMusicRemote", + "methodname_flat": "SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsCurrentMusicRemote", + "methodname_flat": "SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BActivationSuccess", + "methodname_flat": "SteamAPI_ISteamMusicRemote_BActivationSuccess", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetDisplayName", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetDisplayName", + "params": [ + { "paramname":"pchDisplayName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetPNGIcon_64x64", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64", + "params": [ + { "paramname":"pvBuffer", "paramtype":"void *" }, + { "paramname":"cbBufferLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "EnablePlayPrevious", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnablePlayPrevious", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnablePlayNext", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnablePlayNext", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnableShuffled", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnableShuffled", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnableLooped", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnableLooped", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnableQueue", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnableQueue", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "EnablePlaylists", + "methodname_flat": "SteamAPI_ISteamMusicRemote_EnablePlaylists", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdatePlaybackStatus", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus", + "params": [ + { "paramname":"nStatus", "paramtype":"AudioPlayback_Status" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateShuffled", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateShuffled", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateLooped", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateLooped", + "params": [ + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateVolume", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateVolume", + "params": [ + { "paramname":"flValue", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "CurrentEntryWillChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_CurrentEntryWillChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "CurrentEntryIsAvailable", + "methodname_flat": "SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable", + "params": [ + { "paramname":"bAvailable", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateCurrentEntryText", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText", + "params": [ + { "paramname":"pchText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateCurrentEntryElapsedSeconds", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds", + "params": [ + { "paramname":"nValue", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateCurrentEntryCoverArt", + "methodname_flat": "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt", + "params": [ + { "paramname":"pvBuffer", "paramtype":"void *" }, + { "paramname":"cbBufferLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "CurrentEntryDidChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_CurrentEntryDidChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "QueueWillChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_QueueWillChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "ResetQueueEntries", + "methodname_flat": "SteamAPI_ISteamMusicRemote_ResetQueueEntries", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetQueueEntry", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetQueueEntry", + "params": [ + { "paramname":"nID", "paramtype":"int" }, + { "paramname":"nPosition", "paramtype":"int" }, + { "paramname":"pchEntryText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCurrentQueueEntry", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry", + "params": [ + { "paramname":"nID", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "QueueDidChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_QueueDidChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "PlaylistWillChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_PlaylistWillChange", + "params": [], + "returntype": "bool" + }, + { + "methodname": "ResetPlaylistEntries", + "methodname_flat": "SteamAPI_ISteamMusicRemote_ResetPlaylistEntries", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetPlaylistEntry", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetPlaylistEntry", + "params": [ + { "paramname":"nID", "paramtype":"int" }, + { "paramname":"nPosition", "paramtype":"int" }, + { "paramname":"pchEntryText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCurrentPlaylistEntry", + "methodname_flat": "SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry", + "params": [ + { "paramname":"nID", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "PlaylistDidChange", + "methodname_flat": "SteamAPI_ISteamMusicRemote_PlaylistDidChange", + "params": [], + "returntype": "bool" + } + ], + "version_string": "STEAMMUSICREMOTE_INTERFACE_VERSION001" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamHTTP", + "name_flat": "SteamAPI_SteamHTTP_v003" + }, + { + "kind": "gameserver", + "name": "SteamGameServerHTTP", + "name_flat": "SteamAPI_SteamGameServerHTTP_v003" + } + ], + "classname": "ISteamHTTP", + "fields": [], + "methods": [ + { + "methodname": "CreateHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_CreateHTTPRequest", + "params": [ + { "paramname":"eHTTPRequestMethod", "paramtype":"EHTTPMethod" }, + { "paramname":"pchAbsoluteURL", "paramtype":"const char *" } + ], + "returntype": "HTTPRequestHandle" + }, + { + "methodname": "SetHTTPRequestContextValue", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestContextValue", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"ulContextValue", "paramtype":"uint64" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestNetworkActivityTimeout", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"unTimeoutSeconds", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestHeaderValue", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchHeaderName", "paramtype":"const char *" }, + { "paramname":"pchHeaderValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestGetOrPostParameter", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchParamName", "paramtype":"const char *" }, + { "paramname":"pchParamValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SendHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_SendHTTPRequest", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pCallHandle", "paramtype":"SteamAPICall_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "SendHTTPRequestAndStreamResponse", + "methodname_flat": "SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pCallHandle", "paramtype":"SteamAPICall_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "DeferHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_DeferHTTPRequest", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "PrioritizeHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_PrioritizeHTTPRequest", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPResponseHeaderSize", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchHeaderName", "paramtype":"const char *" }, + { "paramname":"unResponseHeaderSize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPResponseHeaderValue", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchHeaderName", "paramtype":"const char *" }, + { "paramname":"pHeaderValueBuffer", "paramtype":"uint8 *" }, + { "paramname":"unBufferSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPResponseBodySize", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPResponseBodySize", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"unBodySize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPResponseBodyData", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPResponseBodyData", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pBodyDataBuffer", "paramtype":"uint8 *" }, + { "paramname":"unBufferSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPStreamingResponseBodyData", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"cOffset", "paramtype":"uint32" }, + { "paramname":"pBodyDataBuffer", "paramtype":"uint8 *" }, + { "paramname":"unBufferSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "ReleaseHTTPRequest", + "methodname_flat": "SteamAPI_ISteamHTTP_ReleaseHTTPRequest", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPDownloadProgressPct", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pflPercentOut", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestRawPostBody", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchContentType", "paramtype":"const char *" }, + { "paramname":"pubBody", "paramtype":"uint8 *" }, + { "paramname":"unBodyLen", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "CreateCookieContainer", + "methodname_flat": "SteamAPI_ISteamHTTP_CreateCookieContainer", + "params": [ + { "paramname":"bAllowResponsesToModify", "paramtype":"bool" } + ], + "returntype": "HTTPCookieContainerHandle" + }, + { + "methodname": "ReleaseCookieContainer", + "methodname_flat": "SteamAPI_ISteamHTTP_ReleaseCookieContainer", + "params": [ + { "paramname":"hCookieContainer", "paramtype":"HTTPCookieContainerHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCookie", + "methodname_flat": "SteamAPI_ISteamHTTP_SetCookie", + "params": [ + { "paramname":"hCookieContainer", "paramtype":"HTTPCookieContainerHandle" }, + { "paramname":"pchHost", "paramtype":"const char *" }, + { "paramname":"pchUrl", "paramtype":"const char *" }, + { "paramname":"pchCookie", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestCookieContainer", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"hCookieContainer", "paramtype":"HTTPCookieContainerHandle" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestUserAgentInfo", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pchUserAgentInfo", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestRequiresVerifiedCertificate", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"bRequireVerifiedCertificate", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetHTTPRequestAbsoluteTimeoutMS", + "methodname_flat": "SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"unMilliseconds", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetHTTPRequestWasTimedOut", + "methodname_flat": "SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut", + "params": [ + { "paramname":"hRequest", "paramtype":"HTTPRequestHandle" }, + { "paramname":"pbWasTimedOut", "paramtype":"bool *" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMHTTP_INTERFACE_VERSION003" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamInput", + "name_flat": "SteamAPI_SteamInput_v006" + } + ], + "classname": "ISteamInput", + "fields": [], + "methods": [ + { + "methodname": "Init", + "methodname_flat": "SteamAPI_ISteamInput_Init", + "params": [ + { "paramname":"bExplicitlyCallRunFrame", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "Shutdown", + "methodname_flat": "SteamAPI_ISteamInput_Shutdown", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetInputActionManifestFilePath", + "methodname_flat": "SteamAPI_ISteamInput_SetInputActionManifestFilePath", + "params": [ + { "paramname":"pchInputActionManifestAbsolutePath", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "RunFrame", + "methodname_flat": "SteamAPI_ISteamInput_RunFrame", + "params": [ + { "paramname":"bReservedValue", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "BWaitForData", + "methodname_flat": "SteamAPI_ISteamInput_BWaitForData", + "params": [ + { "paramname":"bWaitForever", "paramtype":"bool" }, + { "paramname":"unTimeout", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "BNewDataAvailable", + "methodname_flat": "SteamAPI_ISteamInput_BNewDataAvailable", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetConnectedControllers", + "methodname_flat": "SteamAPI_ISteamInput_GetConnectedControllers", + "params": [ + { + "desc": "Receives list of connected controllers", + "out_array_count": "STEAM_INPUT_MAX_COUNT", + "paramname": "handlesOut", + "paramtype": "InputHandle_t *" + } + ], + "returntype": "int" + }, + { + "callback": "SteamInputConfigurationLoaded_t", + "methodname": "EnableDeviceCallbacks", + "methodname_flat": "SteamAPI_ISteamInput_EnableDeviceCallbacks", + "params": [], + "returntype": "void" + }, + { + "callback": "SteamInputGamepadSlotChange_t", + "methodname": "EnableActionEventCallbacks", + "methodname_flat": "SteamAPI_ISteamInput_EnableActionEventCallbacks", + "params": [ + { "paramname":"pCallback", "paramtype":"SteamInputActionEventCallbackPointer" } + ], + "returntype": "void" + }, + { + "methodname": "GetActionSetHandle", + "methodname_flat": "SteamAPI_ISteamInput_GetActionSetHandle", + "params": [ + { "paramname":"pszActionSetName", "paramtype":"const char *" } + ], + "returntype": "InputActionSetHandle_t" + }, + { + "methodname": "ActivateActionSet", + "methodname_flat": "SteamAPI_ISteamInput_ActivateActionSet", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"InputActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetCurrentActionSet", + "methodname_flat": "SteamAPI_ISteamInput_GetCurrentActionSet", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "InputActionSetHandle_t" + }, + { + "methodname": "ActivateActionSetLayer", + "methodname_flat": "SteamAPI_ISteamInput_ActivateActionSetLayer", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetLayerHandle", "paramtype":"InputActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "DeactivateActionSetLayer", + "methodname_flat": "SteamAPI_ISteamInput_DeactivateActionSetLayer", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetLayerHandle", "paramtype":"InputActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "DeactivateAllActionSetLayers", + "methodname_flat": "SteamAPI_ISteamInput_DeactivateAllActionSetLayers", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetActiveActionSetLayers", + "methodname_flat": "SteamAPI_ISteamInput_GetActiveActionSetLayers", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { + "desc": "Receives list of active layers", + "out_array_count": "STEAM_INPUT_MAX_ACTIVE_LAYERS", + "paramname": "handlesOut", + "paramtype": "InputActionSetHandle_t *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetDigitalActionHandle", + "methodname_flat": "SteamAPI_ISteamInput_GetDigitalActionHandle", + "params": [ + { "paramname":"pszActionName", "paramtype":"const char *" } + ], + "returntype": "InputDigitalActionHandle_t" + }, + { + "methodname": "GetDigitalActionData", + "methodname_flat": "SteamAPI_ISteamInput_GetDigitalActionData", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"digitalActionHandle", "paramtype":"InputDigitalActionHandle_t" } + ], + "returntype": "InputDigitalActionData_t" + }, + { + "methodname": "GetDigitalActionOrigins", + "methodname_flat": "SteamAPI_ISteamInput_GetDigitalActionOrigins", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"InputActionSetHandle_t" }, + { "paramname":"digitalActionHandle", "paramtype":"InputDigitalActionHandle_t" }, + { + "desc": "Receives list of action origins", + "out_array_count": "STEAM_INPUT_MAX_ORIGINS", + "paramname": "originsOut", + "paramtype": "EInputActionOrigin *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetStringForDigitalActionName", + "methodname_flat": "SteamAPI_ISteamInput_GetStringForDigitalActionName", + "params": [ + { "paramname":"eActionHandle", "paramtype":"InputDigitalActionHandle_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetAnalogActionHandle", + "methodname_flat": "SteamAPI_ISteamInput_GetAnalogActionHandle", + "params": [ + { "paramname":"pszActionName", "paramtype":"const char *" } + ], + "returntype": "InputAnalogActionHandle_t" + }, + { + "methodname": "GetAnalogActionData", + "methodname_flat": "SteamAPI_ISteamInput_GetAnalogActionData", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"analogActionHandle", "paramtype":"InputAnalogActionHandle_t" } + ], + "returntype": "InputAnalogActionData_t" + }, + { + "methodname": "GetAnalogActionOrigins", + "methodname_flat": "SteamAPI_ISteamInput_GetAnalogActionOrigins", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"InputActionSetHandle_t" }, + { "paramname":"analogActionHandle", "paramtype":"InputAnalogActionHandle_t" }, + { + "desc": "Receives list of action origins", + "out_array_count": "STEAM_INPUT_MAX_ORIGINS", + "paramname": "originsOut", + "paramtype": "EInputActionOrigin *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetGlyphPNGForActionOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetGlyphPNGForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EInputActionOrigin" }, + { "paramname":"eSize", "paramtype":"ESteamInputGlyphSize" }, + { "paramname":"unFlags", "paramtype":"uint32" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetGlyphSVGForActionOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetGlyphSVGForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EInputActionOrigin" }, + { "paramname":"unFlags", "paramtype":"uint32" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetGlyphForActionOrigin_Legacy", + "methodname_flat": "SteamAPI_ISteamInput_GetGlyphForActionOrigin_Legacy", + "params": [ + { "paramname":"eOrigin", "paramtype":"EInputActionOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetStringForActionOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetStringForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EInputActionOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetStringForAnalogActionName", + "methodname_flat": "SteamAPI_ISteamInput_GetStringForAnalogActionName", + "params": [ + { "paramname":"eActionHandle", "paramtype":"InputAnalogActionHandle_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "StopAnalogActionMomentum", + "methodname_flat": "SteamAPI_ISteamInput_StopAnalogActionMomentum", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eAction", "paramtype":"InputAnalogActionHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetMotionData", + "methodname_flat": "SteamAPI_ISteamInput_GetMotionData", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "InputMotionData_t" + }, + { + "methodname": "TriggerVibration", + "methodname_flat": "SteamAPI_ISteamInput_TriggerVibration", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"usLeftSpeed", "paramtype":"unsigned short" }, + { "paramname":"usRightSpeed", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "TriggerVibrationExtended", + "methodname_flat": "SteamAPI_ISteamInput_TriggerVibrationExtended", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"usLeftSpeed", "paramtype":"unsigned short" }, + { "paramname":"usRightSpeed", "paramtype":"unsigned short" }, + { "paramname":"usLeftTriggerSpeed", "paramtype":"unsigned short" }, + { "paramname":"usRightTriggerSpeed", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "TriggerSimpleHapticEvent", + "methodname_flat": "SteamAPI_ISteamInput_TriggerSimpleHapticEvent", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eHapticLocation", "paramtype":"EControllerHapticLocation" }, + { "paramname":"nIntensity", "paramtype":"uint8" }, + { "paramname":"nGainDB", "paramtype":"char" }, + { "paramname":"nOtherIntensity", "paramtype":"uint8" }, + { "paramname":"nOtherGainDB", "paramtype":"char" } + ], + "returntype": "void" + }, + { + "methodname": "SetLEDColor", + "methodname_flat": "SteamAPI_ISteamInput_SetLEDColor", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"nColorR", "paramtype":"uint8" }, + { "paramname":"nColorG", "paramtype":"uint8" }, + { "paramname":"nColorB", "paramtype":"uint8" }, + { "paramname":"nFlags", "paramtype":"unsigned int" } + ], + "returntype": "void" + }, + { + "methodname": "Legacy_TriggerHapticPulse", + "methodname_flat": "SteamAPI_ISteamInput_Legacy_TriggerHapticPulse", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eTargetPad", "paramtype":"ESteamControllerPad" }, + { "paramname":"usDurationMicroSec", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "Legacy_TriggerRepeatedHapticPulse", + "methodname_flat": "SteamAPI_ISteamInput_Legacy_TriggerRepeatedHapticPulse", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eTargetPad", "paramtype":"ESteamControllerPad" }, + { "paramname":"usDurationMicroSec", "paramtype":"unsigned short" }, + { "paramname":"usOffMicroSec", "paramtype":"unsigned short" }, + { "paramname":"unRepeat", "paramtype":"unsigned short" }, + { "paramname":"nFlags", "paramtype":"unsigned int" } + ], + "returntype": "void" + }, + { + "methodname": "ShowBindingPanel", + "methodname_flat": "SteamAPI_ISteamInput_ShowBindingPanel", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetInputTypeForHandle", + "methodname_flat": "SteamAPI_ISteamInput_GetInputTypeForHandle", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "ESteamInputType" + }, + { + "methodname": "GetControllerForGamepadIndex", + "methodname_flat": "SteamAPI_ISteamInput_GetControllerForGamepadIndex", + "params": [ + { "paramname":"nIndex", "paramtype":"int" } + ], + "returntype": "InputHandle_t" + }, + { + "methodname": "GetGamepadIndexForController", + "methodname_flat": "SteamAPI_ISteamInput_GetGamepadIndexForController", + "params": [ + { "paramname":"ulinputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetStringForXboxOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetStringForXboxOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetGlyphForXboxOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetGlyphForXboxOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetActionOriginFromXboxOrigin", + "methodname_flat": "SteamAPI_ISteamInput_GetActionOriginFromXboxOrigin", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "EInputActionOrigin" + }, + { + "methodname": "TranslateActionOrigin", + "methodname_flat": "SteamAPI_ISteamInput_TranslateActionOrigin", + "params": [ + { "paramname":"eDestinationInputType", "paramtype":"ESteamInputType" }, + { "paramname":"eSourceOrigin", "paramtype":"EInputActionOrigin" } + ], + "returntype": "EInputActionOrigin" + }, + { + "methodname": "GetDeviceBindingRevision", + "methodname_flat": "SteamAPI_ISteamInput_GetDeviceBindingRevision", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"pMajor", "paramtype":"int *" }, + { "paramname":"pMinor", "paramtype":"int *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetRemotePlaySessionID", + "methodname_flat": "SteamAPI_ISteamInput_GetRemotePlaySessionID", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetSessionInputConfigurationSettings", + "methodname_flat": "SteamAPI_ISteamInput_GetSessionInputConfigurationSettings", + "params": [], + "returntype": "uint16" + }, + { + "methodname": "SetDualSenseTriggerEffect", + "methodname_flat": "SteamAPI_ISteamInput_SetDualSenseTriggerEffect", + "params": [ + { "paramname":"inputHandle", "paramtype":"InputHandle_t" }, + { "paramname":"pParam", "paramtype":"const ScePadTriggerEffectParam *" } + ], + "returntype": "void" + } + ], + "version_string": "SteamInput006" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamController", + "name_flat": "SteamAPI_SteamController_v008" + } + ], + "classname": "ISteamController", + "fields": [], + "methods": [ + { + "methodname": "Init", + "methodname_flat": "SteamAPI_ISteamController_Init", + "params": [], + "returntype": "bool" + }, + { + "methodname": "Shutdown", + "methodname_flat": "SteamAPI_ISteamController_Shutdown", + "params": [], + "returntype": "bool" + }, + { + "methodname": "RunFrame", + "methodname_flat": "SteamAPI_ISteamController_RunFrame", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetConnectedControllers", + "methodname_flat": "SteamAPI_ISteamController_GetConnectedControllers", + "params": [ + { + "desc": "Receives list of connected controllers", + "out_array_count": "STEAM_CONTROLLER_MAX_COUNT", + "paramname": "handlesOut", + "paramtype": "ControllerHandle_t *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetActionSetHandle", + "methodname_flat": "SteamAPI_ISteamController_GetActionSetHandle", + "params": [ + { "paramname":"pszActionSetName", "paramtype":"const char *" } + ], + "returntype": "ControllerActionSetHandle_t" + }, + { + "methodname": "ActivateActionSet", + "methodname_flat": "SteamAPI_ISteamController_ActivateActionSet", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"ControllerActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetCurrentActionSet", + "methodname_flat": "SteamAPI_ISteamController_GetCurrentActionSet", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "ControllerActionSetHandle_t" + }, + { + "methodname": "ActivateActionSetLayer", + "methodname_flat": "SteamAPI_ISteamController_ActivateActionSetLayer", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetLayerHandle", "paramtype":"ControllerActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "DeactivateActionSetLayer", + "methodname_flat": "SteamAPI_ISteamController_DeactivateActionSetLayer", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetLayerHandle", "paramtype":"ControllerActionSetHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "DeactivateAllActionSetLayers", + "methodname_flat": "SteamAPI_ISteamController_DeactivateAllActionSetLayers", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetActiveActionSetLayers", + "methodname_flat": "SteamAPI_ISteamController_GetActiveActionSetLayers", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { + "desc": "Receives list of active layers", + "out_array_count": "STEAM_CONTROLLER_MAX_ACTIVE_LAYERS", + "paramname": "handlesOut", + "paramtype": "ControllerActionSetHandle_t *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetDigitalActionHandle", + "methodname_flat": "SteamAPI_ISteamController_GetDigitalActionHandle", + "params": [ + { "paramname":"pszActionName", "paramtype":"const char *" } + ], + "returntype": "ControllerDigitalActionHandle_t" + }, + { + "methodname": "GetDigitalActionData", + "methodname_flat": "SteamAPI_ISteamController_GetDigitalActionData", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"digitalActionHandle", "paramtype":"ControllerDigitalActionHandle_t" } + ], + "returntype": "InputDigitalActionData_t" + }, + { + "methodname": "GetDigitalActionOrigins", + "methodname_flat": "SteamAPI_ISteamController_GetDigitalActionOrigins", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"ControllerActionSetHandle_t" }, + { "paramname":"digitalActionHandle", "paramtype":"ControllerDigitalActionHandle_t" }, + { + "desc": "Receives list of aciton origins", + "out_array_count": "STEAM_CONTROLLER_MAX_ORIGINS", + "paramname": "originsOut", + "paramtype": "EControllerActionOrigin *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetAnalogActionHandle", + "methodname_flat": "SteamAPI_ISteamController_GetAnalogActionHandle", + "params": [ + { "paramname":"pszActionName", "paramtype":"const char *" } + ], + "returntype": "ControllerAnalogActionHandle_t" + }, + { + "methodname": "GetAnalogActionData", + "methodname_flat": "SteamAPI_ISteamController_GetAnalogActionData", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"analogActionHandle", "paramtype":"ControllerAnalogActionHandle_t" } + ], + "returntype": "InputAnalogActionData_t" + }, + { + "methodname": "GetAnalogActionOrigins", + "methodname_flat": "SteamAPI_ISteamController_GetAnalogActionOrigins", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"actionSetHandle", "paramtype":"ControllerActionSetHandle_t" }, + { "paramname":"analogActionHandle", "paramtype":"ControllerAnalogActionHandle_t" }, + { + "desc": "Receives list of action origins", + "out_array_count": "STEAM_CONTROLLER_MAX_ORIGINS", + "paramname": "originsOut", + "paramtype": "EControllerActionOrigin *" + } + ], + "returntype": "int" + }, + { + "methodname": "GetGlyphForActionOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetGlyphForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EControllerActionOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetStringForActionOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetStringForActionOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EControllerActionOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "StopAnalogActionMomentum", + "methodname_flat": "SteamAPI_ISteamController_StopAnalogActionMomentum", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"eAction", "paramtype":"ControllerAnalogActionHandle_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetMotionData", + "methodname_flat": "SteamAPI_ISteamController_GetMotionData", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "InputMotionData_t" + }, + { + "methodname": "TriggerHapticPulse", + "methodname_flat": "SteamAPI_ISteamController_TriggerHapticPulse", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"eTargetPad", "paramtype":"ESteamControllerPad" }, + { "paramname":"usDurationMicroSec", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "TriggerRepeatedHapticPulse", + "methodname_flat": "SteamAPI_ISteamController_TriggerRepeatedHapticPulse", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"eTargetPad", "paramtype":"ESteamControllerPad" }, + { "paramname":"usDurationMicroSec", "paramtype":"unsigned short" }, + { "paramname":"usOffMicroSec", "paramtype":"unsigned short" }, + { "paramname":"unRepeat", "paramtype":"unsigned short" }, + { "paramname":"nFlags", "paramtype":"unsigned int" } + ], + "returntype": "void" + }, + { + "methodname": "TriggerVibration", + "methodname_flat": "SteamAPI_ISteamController_TriggerVibration", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"usLeftSpeed", "paramtype":"unsigned short" }, + { "paramname":"usRightSpeed", "paramtype":"unsigned short" } + ], + "returntype": "void" + }, + { + "methodname": "SetLEDColor", + "methodname_flat": "SteamAPI_ISteamController_SetLEDColor", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"nColorR", "paramtype":"uint8" }, + { "paramname":"nColorG", "paramtype":"uint8" }, + { "paramname":"nColorB", "paramtype":"uint8" }, + { "paramname":"nFlags", "paramtype":"unsigned int" } + ], + "returntype": "void" + }, + { + "methodname": "ShowBindingPanel", + "methodname_flat": "SteamAPI_ISteamController_ShowBindingPanel", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetInputTypeForHandle", + "methodname_flat": "SteamAPI_ISteamController_GetInputTypeForHandle", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "ESteamInputType" + }, + { + "methodname": "GetControllerForGamepadIndex", + "methodname_flat": "SteamAPI_ISteamController_GetControllerForGamepadIndex", + "params": [ + { "paramname":"nIndex", "paramtype":"int" } + ], + "returntype": "ControllerHandle_t" + }, + { + "methodname": "GetGamepadIndexForController", + "methodname_flat": "SteamAPI_ISteamController_GetGamepadIndexForController", + "params": [ + { "paramname":"ulControllerHandle", "paramtype":"ControllerHandle_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetStringForXboxOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetStringForXboxOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetGlyphForXboxOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetGlyphForXboxOrigin", + "params": [ + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetActionOriginFromXboxOrigin", + "methodname_flat": "SteamAPI_ISteamController_GetActionOriginFromXboxOrigin", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"eOrigin", "paramtype":"EXboxOrigin" } + ], + "returntype": "EControllerActionOrigin" + }, + { + "methodname": "TranslateActionOrigin", + "methodname_flat": "SteamAPI_ISteamController_TranslateActionOrigin", + "params": [ + { "paramname":"eDestinationInputType", "paramtype":"ESteamInputType" }, + { "paramname":"eSourceOrigin", "paramtype":"EControllerActionOrigin" } + ], + "returntype": "EControllerActionOrigin" + }, + { + "methodname": "GetControllerBindingRevision", + "methodname_flat": "SteamAPI_ISteamController_GetControllerBindingRevision", + "params": [ + { "paramname":"controllerHandle", "paramtype":"ControllerHandle_t" }, + { "paramname":"pMajor", "paramtype":"int *" }, + { "paramname":"pMinor", "paramtype":"int *" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamController008" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamUGC", + "name_flat": "SteamAPI_SteamUGC_v018" + }, + { + "kind": "gameserver", + "name": "SteamGameServerUGC", + "name_flat": "SteamAPI_SteamGameServerUGC_v018" + } + ], + "classname": "ISteamUGC", + "fields": [], + "methods": [ + { + "methodname": "CreateQueryUserUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_CreateQueryUserUGCRequest", + "params": [ + { "paramname":"unAccountID", "paramtype":"AccountID_t" }, + { "paramname":"eListType", "paramtype":"EUserUGCList" }, + { "paramname":"eMatchingUGCType", "paramtype":"EUGCMatchingUGCType" }, + { "paramname":"eSortOrder", "paramtype":"EUserUGCListSortOrder" }, + { "paramname":"nCreatorAppID", "paramtype":"AppId_t" }, + { "paramname":"nConsumerAppID", "paramtype":"AppId_t" }, + { "paramname":"unPage", "paramtype":"uint32" } + ], + "returntype": "UGCQueryHandle_t" + }, + { + "methodname": "CreateQueryAllUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage", + "params": [ + { "paramname":"eQueryType", "paramtype":"EUGCQuery" }, + { "paramname":"eMatchingeMatchingUGCTypeFileType", "paramtype":"EUGCMatchingUGCType" }, + { "paramname":"nCreatorAppID", "paramtype":"AppId_t" }, + { "paramname":"nConsumerAppID", "paramtype":"AppId_t" }, + { "paramname":"unPage", "paramtype":"uint32" } + ], + "returntype": "UGCQueryHandle_t" + }, + { + "methodname": "CreateQueryAllUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor", + "params": [ + { "paramname":"eQueryType", "paramtype":"EUGCQuery" }, + { "paramname":"eMatchingeMatchingUGCTypeFileType", "paramtype":"EUGCMatchingUGCType" }, + { "paramname":"nCreatorAppID", "paramtype":"AppId_t" }, + { "paramname":"nConsumerAppID", "paramtype":"AppId_t" }, + { "paramname":"pchCursor", "paramtype":"const char *" } + ], + "returntype": "UGCQueryHandle_t" + }, + { + "methodname": "CreateQueryUGCDetailsRequest", + "methodname_flat": "SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest", + "params": [ + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"unNumPublishedFileIDs", "paramtype":"uint32" } + ], + "returntype": "UGCQueryHandle_t" + }, + { + "callresult": "SteamUGCQueryCompleted_t", + "methodname": "SendQueryUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_SendQueryUGCRequest", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetQueryUGCResult", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCResult", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pDetails", "paramtype":"SteamUGCDetails_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCNumTags", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCNumTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetQueryUGCTag", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"indexTag", "paramtype":"uint32" }, + { + "out_string_count": "cchValueSize", + "paramname": "pchValue", + "paramtype": "char *" + }, + { "paramname":"cchValueSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCTagDisplayName", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"indexTag", "paramtype":"uint32" }, + { + "out_string_count": "cchValueSize", + "paramname": "pchValue", + "paramtype": "char *" + }, + { "paramname":"cchValueSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCPreviewURL", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCPreviewURL", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { + "out_string_count": "cchURLSize", + "paramname": "pchURL", + "paramtype": "char *" + }, + { "paramname":"cchURLSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCMetadata", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCMetadata", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { + "out_string_count": "cchMetadatasize", + "paramname": "pchMetadata", + "paramtype": "char *" + }, + { "paramname":"cchMetadatasize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCChildren", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCChildren", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCStatistic", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCStatistic", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"eStatType", "paramtype":"EItemStatistic" }, + { "paramname":"pStatValue", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCNumAdditionalPreviews", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetQueryUGCAdditionalPreview", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"previewIndex", "paramtype":"uint32" }, + { + "out_string_count": "cchURLSize", + "paramname": "pchURLOrVideoID", + "paramtype": "char *" + }, + { "paramname":"cchURLSize", "paramtype":"uint32" }, + { + "out_string_count": "cchURLSize", + "paramname": "pchOriginalFileName", + "paramtype": "char *" + }, + { "paramname":"cchOriginalFileNameSize", "paramtype":"uint32" }, + { "paramname":"pPreviewType", "paramtype":"EItemPreviewType *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCNumKeyValueTags", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetQueryUGCKeyValueTag", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"keyValueTagIndex", "paramtype":"uint32" }, + { + "out_string_count": "cchKeySize", + "paramname": "pchKey", + "paramtype": "char *" + }, + { "paramname":"cchKeySize", "paramtype":"uint32" }, + { + "out_string_count": "cchValueSize", + "paramname": "pchValue", + "paramtype": "char *" + }, + { "paramname":"cchValueSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCKeyValueTag", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryFirstUGCKeyValueTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { + "out_string_count": "cchValueSize", + "paramname": "pchValue", + "paramtype": "char *" + }, + { "paramname":"cchValueSize", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetQueryUGCContentDescriptors", + "methodname_flat": "SteamAPI_ISteamUGC_GetQueryUGCContentDescriptors", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pvecDescriptors", "paramtype":"EUGCContentDescriptorID *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "ReleaseQueryUGCRequest", + "methodname_flat": "SteamAPI_ISteamUGC_ReleaseQueryUGCRequest", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "AddRequiredTag", + "methodname_flat": "SteamAPI_ISteamUGC_AddRequiredTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pTagName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddRequiredTagGroup", + "methodname_flat": "SteamAPI_ISteamUGC_AddRequiredTagGroup", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pTagGroups", "paramtype":"const SteamParamStringArray_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddExcludedTag", + "methodname_flat": "SteamAPI_ISteamUGC_AddExcludedTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pTagName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnOnlyIDs", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnOnlyIDs", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnOnlyIDs", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnKeyValueTags", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnKeyValueTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnKeyValueTags", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnLongDescription", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnLongDescription", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnLongDescription", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnMetadata", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnMetadata", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnMetadata", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnChildren", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnChildren", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnChildren", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnAdditionalPreviews", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnAdditionalPreviews", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnAdditionalPreviews", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnTotalOnly", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnTotalOnly", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bReturnTotalOnly", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetReturnPlaytimeStats", + "methodname_flat": "SteamAPI_ISteamUGC_SetReturnPlaytimeStats", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"unDays", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetLanguage", + "methodname_flat": "SteamAPI_ISteamUGC_SetLanguage", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pchLanguage", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetAllowCachedResponse", + "methodname_flat": "SteamAPI_ISteamUGC_SetAllowCachedResponse", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"unMaxAgeSeconds", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCloudFileNameFilter", + "methodname_flat": "SteamAPI_ISteamUGC_SetCloudFileNameFilter", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pMatchCloudFileName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetMatchAnyTag", + "methodname_flat": "SteamAPI_ISteamUGC_SetMatchAnyTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"bMatchAnyTag", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetSearchText", + "methodname_flat": "SteamAPI_ISteamUGC_SetSearchText", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pSearchText", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetRankedByTrendDays", + "methodname_flat": "SteamAPI_ISteamUGC_SetRankedByTrendDays", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"unDays", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetTimeCreatedDateRange", + "methodname_flat": "SteamAPI_ISteamUGC_SetTimeCreatedDateRange", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"rtStart", "paramtype":"RTime32" }, + { "paramname":"rtEnd", "paramtype":"RTime32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetTimeUpdatedDateRange", + "methodname_flat": "SteamAPI_ISteamUGC_SetTimeUpdatedDateRange", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"rtStart", "paramtype":"RTime32" }, + { "paramname":"rtEnd", "paramtype":"RTime32" } + ], + "returntype": "bool" + }, + { + "methodname": "AddRequiredKeyValueTag", + "methodname_flat": "SteamAPI_ISteamUGC_AddRequiredKeyValueTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCQueryHandle_t" }, + { "paramname":"pKey", "paramtype":"const char *" }, + { "paramname":"pValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "callresult": "SteamUGCRequestUGCDetailsResult_t", + "methodname": "RequestUGCDetails", + "methodname_flat": "SteamAPI_ISteamUGC_RequestUGCDetails", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"unMaxAgeSeconds", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "CreateItemResult_t", + "methodname": "CreateItem", + "methodname_flat": "SteamAPI_ISteamUGC_CreateItem", + "params": [ + { "paramname":"nConsumerAppId", "paramtype":"AppId_t" }, + { "paramname":"eFileType", "paramtype":"EWorkshopFileType" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "StartItemUpdate", + "methodname_flat": "SteamAPI_ISteamUGC_StartItemUpdate", + "params": [ + { "paramname":"nConsumerAppId", "paramtype":"AppId_t" }, + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "UGCUpdateHandle_t" + }, + { + "methodname": "SetItemTitle", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemTitle", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchTitle", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemDescription", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemDescription", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchDescription", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemUpdateLanguage", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemUpdateLanguage", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchLanguage", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemMetadata", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemMetadata", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchMetaData", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemVisibility", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemVisibility", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"eVisibility", "paramtype":"ERemoteStoragePublishedFileVisibility" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemTags", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemTags", + "params": [ + { "paramname":"updateHandle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pTags", "paramtype":"const SteamParamStringArray_t *" }, + { "paramname":"bAllowAdminTags", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemContent", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemContent", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pszContentFolder", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetItemPreview", + "methodname_flat": "SteamAPI_ISteamUGC_SetItemPreview", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pszPreviewFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetAllowLegacyUpload", + "methodname_flat": "SteamAPI_ISteamUGC_SetAllowLegacyUpload", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"bAllowLegacyUpload", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveAllItemKeyValueTags", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveItemKeyValueTags", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveItemKeyValueTags", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchKey", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddItemKeyValueTag", + "methodname_flat": "SteamAPI_ISteamUGC_AddItemKeyValueTag", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddItemPreviewFile", + "methodname_flat": "SteamAPI_ISteamUGC_AddItemPreviewFile", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pszPreviewFile", "paramtype":"const char *" }, + { "paramname":"type", "paramtype":"EItemPreviewType" } + ], + "returntype": "bool" + }, + { + "methodname": "AddItemPreviewVideo", + "methodname_flat": "SteamAPI_ISteamUGC_AddItemPreviewVideo", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pszVideoID", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateItemPreviewFile", + "methodname_flat": "SteamAPI_ISteamUGC_UpdateItemPreviewFile", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pszPreviewFile", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateItemPreviewVideo", + "methodname_flat": "SteamAPI_ISteamUGC_UpdateItemPreviewVideo", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"index", "paramtype":"uint32" }, + { "paramname":"pszVideoID", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveItemPreview", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveItemPreview", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"index", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "AddContentDescriptor", + "methodname_flat": "SteamAPI_ISteamUGC_AddContentDescriptor", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"descid", "paramtype":"EUGCContentDescriptorID" } + ], + "returntype": "bool" + }, + { + "methodname": "RemoveContentDescriptor", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveContentDescriptor", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"descid", "paramtype":"EUGCContentDescriptorID" } + ], + "returntype": "bool" + }, + { + "callresult": "SubmitItemUpdateResult_t", + "methodname": "SubmitItemUpdate", + "methodname_flat": "SteamAPI_ISteamUGC_SubmitItemUpdate", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"pchChangeNote", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetItemUpdateProgress", + "methodname_flat": "SteamAPI_ISteamUGC_GetItemUpdateProgress", + "params": [ + { "paramname":"handle", "paramtype":"UGCUpdateHandle_t" }, + { "paramname":"punBytesProcessed", "paramtype":"uint64 *" }, + { "paramname":"punBytesTotal", "paramtype":"uint64 *" } + ], + "returntype": "EItemUpdateStatus" + }, + { + "callresult": "SetUserItemVoteResult_t", + "methodname": "SetUserItemVote", + "methodname_flat": "SteamAPI_ISteamUGC_SetUserItemVote", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"bVoteUp", "paramtype":"bool" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "GetUserItemVoteResult_t", + "methodname": "GetUserItemVote", + "methodname_flat": "SteamAPI_ISteamUGC_GetUserItemVote", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "UserFavoriteItemsListChanged_t", + "methodname": "AddItemToFavorites", + "methodname_flat": "SteamAPI_ISteamUGC_AddItemToFavorites", + "params": [ + { "paramname":"nAppId", "paramtype":"AppId_t" }, + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "UserFavoriteItemsListChanged_t", + "methodname": "RemoveItemFromFavorites", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveItemFromFavorites", + "params": [ + { "paramname":"nAppId", "paramtype":"AppId_t" }, + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageSubscribePublishedFileResult_t", + "methodname": "SubscribeItem", + "methodname_flat": "SteamAPI_ISteamUGC_SubscribeItem", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoteStorageUnsubscribePublishedFileResult_t", + "methodname": "UnsubscribeItem", + "methodname_flat": "SteamAPI_ISteamUGC_UnsubscribeItem", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetNumSubscribedItems", + "methodname_flat": "SteamAPI_ISteamUGC_GetNumSubscribedItems", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetSubscribedItems", + "methodname_flat": "SteamAPI_ISteamUGC_GetSubscribedItems", + "params": [ + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetItemState", + "methodname_flat": "SteamAPI_ISteamUGC_GetItemState", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetItemInstallInfo", + "methodname_flat": "SteamAPI_ISteamUGC_GetItemInstallInfo", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"punSizeOnDisk", "paramtype":"uint64 *" }, + { + "out_string_count": "cchFolderSize", + "paramname": "pchFolder", + "paramtype": "char *" + }, + { "paramname":"cchFolderSize", "paramtype":"uint32" }, + { "paramname":"punTimeStamp", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetItemDownloadInfo", + "methodname_flat": "SteamAPI_ISteamUGC_GetItemDownloadInfo", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"punBytesDownloaded", "paramtype":"uint64 *" }, + { "paramname":"punBytesTotal", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "DownloadItem", + "methodname_flat": "SteamAPI_ISteamUGC_DownloadItem", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"bHighPriority", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "BInitWorkshopForGameServer", + "methodname_flat": "SteamAPI_ISteamUGC_BInitWorkshopForGameServer", + "params": [ + { "paramname":"unWorkshopDepotID", "paramtype":"DepotId_t" }, + { "paramname":"pszFolder", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SuspendDownloads", + "methodname_flat": "SteamAPI_ISteamUGC_SuspendDownloads", + "params": [ + { "paramname":"bSuspend", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "callresult": "StartPlaytimeTrackingResult_t", + "methodname": "StartPlaytimeTracking", + "methodname_flat": "SteamAPI_ISteamUGC_StartPlaytimeTracking", + "params": [ + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"unNumPublishedFileIDs", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "StopPlaytimeTrackingResult_t", + "methodname": "StopPlaytimeTracking", + "methodname_flat": "SteamAPI_ISteamUGC_StopPlaytimeTracking", + "params": [ + { "paramname":"pvecPublishedFileID", "paramtype":"PublishedFileId_t *" }, + { "paramname":"unNumPublishedFileIDs", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "StopPlaytimeTrackingResult_t", + "methodname": "StopPlaytimeTrackingForAllItems", + "methodname_flat": "SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "AddUGCDependencyResult_t", + "methodname": "AddDependency", + "methodname_flat": "SteamAPI_ISteamUGC_AddDependency", + "params": [ + { "paramname":"nParentPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"nChildPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoveUGCDependencyResult_t", + "methodname": "RemoveDependency", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveDependency", + "params": [ + { "paramname":"nParentPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"nChildPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "AddAppDependencyResult_t", + "methodname": "AddAppDependency", + "methodname_flat": "SteamAPI_ISteamUGC_AddAppDependency", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "RemoveAppDependencyResult_t", + "methodname": "RemoveAppDependency", + "methodname_flat": "SteamAPI_ISteamUGC_RemoveAppDependency", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" }, + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "GetAppDependenciesResult_t", + "methodname": "GetAppDependencies", + "methodname_flat": "SteamAPI_ISteamUGC_GetAppDependencies", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "DeleteItemResult_t", + "methodname": "DeleteItem", + "methodname_flat": "SteamAPI_ISteamUGC_DeleteItem", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "ShowWorkshopEULA", + "methodname_flat": "SteamAPI_ISteamUGC_ShowWorkshopEULA", + "params": [], + "returntype": "bool" + }, + { + "callresult": "WorkshopEULAStatus_t", + "methodname": "GetWorkshopEULAStatus", + "methodname_flat": "SteamAPI_ISteamUGC_GetWorkshopEULAStatus", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetUserContentDescriptorPreferences", + "methodname_flat": "SteamAPI_ISteamUGC_GetUserContentDescriptorPreferences", + "params": [ + { "paramname":"pvecDescriptors", "paramtype":"EUGCContentDescriptorID *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "uint32" + } + ], + "version_string": "STEAMUGC_INTERFACE_VERSION018" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamHTMLSurface", + "name_flat": "SteamAPI_SteamHTMLSurface_v005" + } + ], + "classname": "ISteamHTMLSurface", + "enums": [ + { + "enumname": "EHTMLMouseButton", + "fqname": "ISteamHTMLSurface::EHTMLMouseButton", + "values": [ + { "name":"eHTMLMouseButton_Left", "value":"0" }, + { "name":"eHTMLMouseButton_Right", "value":"1" }, + { "name":"eHTMLMouseButton_Middle", "value":"2" } + ] + }, + { + "enumname": "EMouseCursor", + "fqname": "ISteamHTMLSurface::EMouseCursor", + "values": [ + { "name":"dc_user", "value":"0" }, + { "name":"dc_none", "value":"1" }, + { "name":"dc_arrow", "value":"2" }, + { "name":"dc_ibeam", "value":"3" }, + { "name":"dc_hourglass", "value":"4" }, + { "name":"dc_waitarrow", "value":"5" }, + { "name":"dc_crosshair", "value":"6" }, + { "name":"dc_up", "value":"7" }, + { "name":"dc_sizenw", "value":"8" }, + { "name":"dc_sizese", "value":"9" }, + { "name":"dc_sizene", "value":"10" }, + { "name":"dc_sizesw", "value":"11" }, + { "name":"dc_sizew", "value":"12" }, + { "name":"dc_sizee", "value":"13" }, + { "name":"dc_sizen", "value":"14" }, + { "name":"dc_sizes", "value":"15" }, + { "name":"dc_sizewe", "value":"16" }, + { "name":"dc_sizens", "value":"17" }, + { "name":"dc_sizeall", "value":"18" }, + { "name":"dc_no", "value":"19" }, + { "name":"dc_hand", "value":"20" }, + { "name":"dc_blank", "value":"21" }, + { "name":"dc_middle_pan", "value":"22" }, + { "name":"dc_north_pan", "value":"23" }, + { "name":"dc_north_east_pan", "value":"24" }, + { "name":"dc_east_pan", "value":"25" }, + { "name":"dc_south_east_pan", "value":"26" }, + { "name":"dc_south_pan", "value":"27" }, + { "name":"dc_south_west_pan", "value":"28" }, + { "name":"dc_west_pan", "value":"29" }, + { "name":"dc_north_west_pan", "value":"30" }, + { "name":"dc_alias", "value":"31" }, + { "name":"dc_cell", "value":"32" }, + { "name":"dc_colresize", "value":"33" }, + { "name":"dc_copycur", "value":"34" }, + { "name":"dc_verticaltext", "value":"35" }, + { "name":"dc_rowresize", "value":"36" }, + { "name":"dc_zoomin", "value":"37" }, + { "name":"dc_zoomout", "value":"38" }, + { "name":"dc_help", "value":"39" }, + { "name":"dc_custom", "value":"40" }, + { "name":"dc_last", "value":"41" } + ] + }, + { + "enumname": "EHTMLKeyModifiers", + "fqname": "ISteamHTMLSurface::EHTMLKeyModifiers", + "values": [ + { "name":"k_eHTMLKeyModifier_None", "value":"0" }, + { "name":"k_eHTMLKeyModifier_AltDown", "value":"1" }, + { "name":"k_eHTMLKeyModifier_CtrlDown", "value":"2" }, + { "name":"k_eHTMLKeyModifier_ShiftDown", "value":"4" } + ] + } + ], + "fields": [], + "methods": [ + { + "methodname": "Init", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_Init", + "params": [], + "returntype": "bool" + }, + { + "methodname": "Shutdown", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_Shutdown", + "params": [], + "returntype": "bool" + }, + { + "callresult": "HTML_BrowserReady_t", + "methodname": "CreateBrowser", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_CreateBrowser", + "params": [ + { "paramname":"pchUserAgent", "paramtype":"const char *" }, + { "paramname":"pchUserCSS", "paramtype":"const char *" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "RemoveBrowser", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_RemoveBrowser", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "LoadURL", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_LoadURL", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchURL", "paramtype":"const char *" }, + { "paramname":"pchPostData", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetSize", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetSize", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"unWidth", "paramtype":"uint32" }, + { "paramname":"unHeight", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "StopLoad", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_StopLoad", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "Reload", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_Reload", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "GoBack", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_GoBack", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "GoForward", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_GoForward", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "AddHeader", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_AddHeader", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "ExecuteJavascript", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_ExecuteJavascript", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchScript", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "MouseUp", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseUp", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"eMouseButton", "paramtype":"ISteamHTMLSurface::EHTMLMouseButton" } + ], + "returntype": "void" + }, + { + "methodname": "MouseDown", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseDown", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"eMouseButton", "paramtype":"ISteamHTMLSurface::EHTMLMouseButton" } + ], + "returntype": "void" + }, + { + "methodname": "MouseDoubleClick", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseDoubleClick", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"eMouseButton", "paramtype":"ISteamHTMLSurface::EHTMLMouseButton" } + ], + "returntype": "void" + }, + { + "methodname": "MouseMove", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseMove", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"x", "paramtype":"int" }, + { "paramname":"y", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "MouseWheel", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_MouseWheel", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nDelta", "paramtype":"int32" } + ], + "returntype": "void" + }, + { + "methodname": "KeyDown", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_KeyDown", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nNativeKeyCode", "paramtype":"uint32" }, + { "paramname":"eHTMLKeyModifiers", "paramtype":"ISteamHTMLSurface::EHTMLKeyModifiers" }, + { "paramname":"bIsSystemKey", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "KeyUp", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_KeyUp", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nNativeKeyCode", "paramtype":"uint32" }, + { "paramname":"eHTMLKeyModifiers", "paramtype":"ISteamHTMLSurface::EHTMLKeyModifiers" } + ], + "returntype": "void" + }, + { + "methodname": "KeyChar", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_KeyChar", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"cUnicodeChar", "paramtype":"uint32" }, + { "paramname":"eHTMLKeyModifiers", "paramtype":"ISteamHTMLSurface::EHTMLKeyModifiers" } + ], + "returntype": "void" + }, + { + "methodname": "SetHorizontalScroll", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetHorizontalScroll", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nAbsolutePixelScroll", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "SetVerticalScroll", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetVerticalScroll", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"nAbsolutePixelScroll", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "SetKeyFocus", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetKeyFocus", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"bHasKeyFocus", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "ViewSource", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_ViewSource", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "CopyToClipboard", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_CopyToClipboard", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "PasteFromClipboard", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_PasteFromClipboard", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "Find", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_Find", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchSearchStr", "paramtype":"const char *" }, + { "paramname":"bCurrentlyInFind", "paramtype":"bool" }, + { "paramname":"bReverse", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "StopFind", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_StopFind", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "GetLinkAtPosition", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_GetLinkAtPosition", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"x", "paramtype":"int" }, + { "paramname":"y", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "SetCookie", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetCookie", + "params": [ + { "paramname":"pchHostname", "paramtype":"const char *" }, + { "paramname":"pchKey", "paramtype":"const char *" }, + { "paramname":"pchValue", "paramtype":"const char *" }, + { "paramname":"pchPath", "paramtype":"const char *" }, + { "paramname":"nExpires", "paramtype":"RTime32" }, + { "paramname":"bSecure", "paramtype":"bool" }, + { "paramname":"bHTTPOnly", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SetPageScaleFactor", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetPageScaleFactor", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"flZoom", "paramtype":"float" }, + { "paramname":"nPointX", "paramtype":"int" }, + { "paramname":"nPointY", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "SetBackgroundMode", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetBackgroundMode", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"bBackgroundMode", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SetDPIScalingFactor", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_SetDPIScalingFactor", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"flDPIScaling", "paramtype":"float" } + ], + "returntype": "void" + }, + { + "methodname": "OpenDeveloperTools", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_OpenDeveloperTools", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" } + ], + "returntype": "void" + }, + { + "methodname": "AllowStartRequest", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_AllowStartRequest", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"bAllowed", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "JSDialogResponse", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_JSDialogResponse", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"bResult", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "FileLoadDialogResponse", + "methodname_flat": "SteamAPI_ISteamHTMLSurface_FileLoadDialogResponse", + "params": [ + { "paramname":"unBrowserHandle", "paramtype":"HHTMLBrowser" }, + { "paramname":"pchSelectedFiles", "paramtype":"const char **" } + ], + "returntype": "void" + } + ], + "version_string": "STEAMHTMLSURFACE_INTERFACE_VERSION_005" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamInventory", + "name_flat": "SteamAPI_SteamInventory_v003" + }, + { + "kind": "gameserver", + "name": "SteamGameServerInventory", + "name_flat": "SteamAPI_SteamGameServerInventory_v003" + } + ], + "classname": "ISteamInventory", + "fields": [], + "methods": [ + { + "methodname": "GetResultStatus", + "methodname_flat": "SteamAPI_ISteamInventory_GetResultStatus", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" } + ], + "returntype": "EResult" + }, + { + "methodname": "GetResultItems", + "methodname_flat": "SteamAPI_ISteamInventory_GetResultItems", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" }, + { + "desc": "Output array", + "out_array_count": "punOutItemsArraySize", + "paramname": "pOutItemsArray", + "paramtype": "SteamItemDetails_t *" + }, + { "paramname":"punOutItemsArraySize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetResultItemProperty", + "methodname_flat": "SteamAPI_ISteamInventory_GetResultItemProperty", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" }, + { "paramname":"unItemIndex", "paramtype":"uint32" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { + "out_string_count": "punValueBufferSizeOut", + "paramname": "pchValueBuffer", + "paramtype": "char *" + }, + { "paramname":"punValueBufferSizeOut", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetResultTimestamp", + "methodname_flat": "SteamAPI_ISteamInventory_GetResultTimestamp", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "CheckResultSteamID", + "methodname_flat": "SteamAPI_ISteamInventory_CheckResultSteamID", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" }, + { "paramname":"steamIDExpected", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "DestroyResult", + "methodname_flat": "SteamAPI_ISteamInventory_DestroyResult", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" } + ], + "returntype": "void" + }, + { + "methodname": "GetAllItems", + "methodname_flat": "SteamAPI_ISteamInventory_GetAllItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetItemsByID", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemsByID", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "array_count": "unCountInstanceIDs", + "paramname": "pInstanceIDs", + "paramtype": "const SteamItemInstanceID_t *" + }, + { "paramname":"unCountInstanceIDs", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "SerializeResult", + "methodname_flat": "SteamAPI_ISteamInventory_SerializeResult", + "params": [ + { "paramname":"resultHandle", "paramtype":"SteamInventoryResult_t" }, + { + "out_buffer_count": "punOutBufferSize", + "paramname": "pOutBuffer", + "paramtype": "void *" + }, + { "paramname":"punOutBufferSize", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "DeserializeResult", + "methodname_flat": "SteamAPI_ISteamInventory_DeserializeResult", + "params": [ + { "paramname":"pOutResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "buffer_count": "punOutBufferSize", + "paramname": "pBuffer", + "paramtype": "const void *" + }, + { "paramname":"unBufferSize", "paramtype":"uint32" }, + { "paramname":"bRESERVED_MUST_BE_FALSE", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "GenerateItems", + "methodname_flat": "SteamAPI_ISteamInventory_GenerateItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "array_count": "unArrayLength", + "paramname": "pArrayItemDefs", + "paramtype": "const SteamItemDef_t *" + }, + { + "array_count": "unArrayLength", + "paramname": "punArrayQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"unArrayLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GrantPromoItems", + "methodname_flat": "SteamAPI_ISteamInventory_GrantPromoItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "AddPromoItem", + "methodname_flat": "SteamAPI_ISteamInventory_AddPromoItem", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"itemDef", "paramtype":"SteamItemDef_t" } + ], + "returntype": "bool" + }, + { + "methodname": "AddPromoItems", + "methodname_flat": "SteamAPI_ISteamInventory_AddPromoItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "array_count": "unArrayLength", + "paramname": "pArrayItemDefs", + "paramtype": "const SteamItemDef_t *" + }, + { "paramname":"unArrayLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "ConsumeItem", + "methodname_flat": "SteamAPI_ISteamInventory_ConsumeItem", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"itemConsume", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"unQuantity", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "ExchangeItems", + "methodname_flat": "SteamAPI_ISteamInventory_ExchangeItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { + "array_count": "unArrayGenerateLength", + "paramname": "pArrayGenerate", + "paramtype": "const SteamItemDef_t *" + }, + { + "array_count": "unArrayGenerateLength", + "paramname": "punArrayGenerateQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"unArrayGenerateLength", "paramtype":"uint32" }, + { + "array_count": "unArrayDestroyLength", + "paramname": "pArrayDestroy", + "paramtype": "const SteamItemInstanceID_t *" + }, + { + "array_count": "unArrayDestroyLength", + "paramname": "punArrayDestroyQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"unArrayDestroyLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "TransferItemQuantity", + "methodname_flat": "SteamAPI_ISteamInventory_TransferItemQuantity", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"itemIdSource", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"unQuantity", "paramtype":"uint32" }, + { "paramname":"itemIdDest", "paramtype":"SteamItemInstanceID_t" } + ], + "returntype": "bool" + }, + { + "methodname": "SendItemDropHeartbeat", + "methodname_flat": "SteamAPI_ISteamInventory_SendItemDropHeartbeat", + "params": [], + "returntype": "void" + }, + { + "methodname": "TriggerItemDrop", + "methodname_flat": "SteamAPI_ISteamInventory_TriggerItemDrop", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"dropListDefinition", "paramtype":"SteamItemDef_t" } + ], + "returntype": "bool" + }, + { + "methodname": "TradeItems", + "methodname_flat": "SteamAPI_ISteamInventory_TradeItems", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"steamIDTradePartner", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { + "array_count": "nArrayGiveLength", + "paramname": "pArrayGive", + "paramtype": "const SteamItemInstanceID_t *" + }, + { + "array_count": "nArrayGiveLength", + "paramname": "pArrayGiveQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"nArrayGiveLength", "paramtype":"uint32" }, + { + "array_count": "nArrayGetLength", + "paramname": "pArrayGet", + "paramtype": "const SteamItemInstanceID_t *" + }, + { + "array_count": "nArrayGetLength", + "paramname": "pArrayGetQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"nArrayGetLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "LoadItemDefinitions", + "methodname_flat": "SteamAPI_ISteamInventory_LoadItemDefinitions", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetItemDefinitionIDs", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemDefinitionIDs", + "params": [ + { + "desc": "List of item definition IDs", + "out_array_count": "punItemDefIDsArraySize", + "paramname": "pItemDefIDs", + "paramtype": "SteamItemDef_t *" + }, + { + "desc": "Size of array is passed in and actual size used is returned in this param", + "paramname": "punItemDefIDsArraySize", + "paramtype": "uint32 *" + } + ], + "returntype": "bool" + }, + { + "methodname": "GetItemDefinitionProperty", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemDefinitionProperty", + "params": [ + { "paramname":"iDefinition", "paramtype":"SteamItemDef_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { + "out_string_count": "punValueBufferSizeOut", + "paramname": "pchValueBuffer", + "paramtype": "char *" + }, + { "paramname":"punValueBufferSizeOut", "paramtype":"uint32 *" } + ], + "returntype": "bool" + }, + { + "callresult": "SteamInventoryEligiblePromoItemDefIDs_t", + "methodname": "RequestEligiblePromoItemDefinitionsIDs", + "methodname_flat": "SteamAPI_ISteamInventory_RequestEligiblePromoItemDefinitionsIDs", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetEligiblePromoItemDefinitionIDs", + "methodname_flat": "SteamAPI_ISteamInventory_GetEligiblePromoItemDefinitionIDs", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { + "desc": "List of item definition IDs", + "out_array_count": "punItemDefIDsArraySize", + "paramname": "pItemDefIDs", + "paramtype": "SteamItemDef_t *" + }, + { + "desc": "Size of array is passed in and actual size used is returned in this param", + "paramname": "punItemDefIDsArraySize", + "paramtype": "uint32 *" + } + ], + "returntype": "bool" + }, + { + "callresult": "SteamInventoryStartPurchaseResult_t", + "methodname": "StartPurchase", + "methodname_flat": "SteamAPI_ISteamInventory_StartPurchase", + "params": [ + { + "array_count": "unArrayLength", + "paramname": "pArrayItemDefs", + "paramtype": "const SteamItemDef_t *" + }, + { + "array_count": "unArrayLength", + "paramname": "punArrayQuantity", + "paramtype": "const uint32 *" + }, + { "paramname":"unArrayLength", "paramtype":"uint32" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "SteamInventoryRequestPricesResult_t", + "methodname": "RequestPrices", + "methodname_flat": "SteamAPI_ISteamInventory_RequestPrices", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetNumItemsWithPrices", + "methodname_flat": "SteamAPI_ISteamInventory_GetNumItemsWithPrices", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetItemsWithPrices", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemsWithPrices", + "params": [ + { + "array_count": "unArrayLength", + "desc": "Items with prices", + "out_array_count": "pArrayItemDefs", + "paramname": "pArrayItemDefs", + "paramtype": "SteamItemDef_t *" + }, + { + "array_count": "unArrayLength", + "desc": "List of prices for the given item defs", + "out_array_count": "pPrices", + "paramname": "pCurrentPrices", + "paramtype": "uint64 *" + }, + { + "array_count": "unArrayLength", + "desc": "List of prices for the given item defs", + "out_array_count": "pPrices", + "paramname": "pBasePrices", + "paramtype": "uint64 *" + }, + { "paramname":"unArrayLength", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetItemPrice", + "methodname_flat": "SteamAPI_ISteamInventory_GetItemPrice", + "params": [ + { "paramname":"iDefinition", "paramtype":"SteamItemDef_t" }, + { "paramname":"pCurrentPrice", "paramtype":"uint64 *" }, + { "paramname":"pBasePrice", "paramtype":"uint64 *" } + ], + "returntype": "bool" + }, + { + "methodname": "StartUpdateProperties", + "methodname_flat": "SteamAPI_ISteamInventory_StartUpdateProperties", + "params": [], + "returntype": "SteamInventoryUpdateHandle_t" + }, + { + "methodname": "RemoveProperty", + "methodname_flat": "SteamAPI_ISteamInventory_RemoveProperty", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetProperty", + "methodname_flat": "SteamAPI_ISteamInventory_SetPropertyString", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { "paramname":"pchPropertyValue", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetProperty", + "methodname_flat": "SteamAPI_ISteamInventory_SetPropertyBool", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { "paramname":"bValue", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "SetProperty", + "methodname_flat": "SteamAPI_ISteamInventory_SetPropertyInt64", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { "paramname":"nValue", "paramtype":"int64" } + ], + "returntype": "bool" + }, + { + "methodname": "SetProperty", + "methodname_flat": "SteamAPI_ISteamInventory_SetPropertyFloat", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"nItemID", "paramtype":"SteamItemInstanceID_t" }, + { "paramname":"pchPropertyName", "paramtype":"const char *" }, + { "paramname":"flValue", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "SubmitUpdateProperties", + "methodname_flat": "SteamAPI_ISteamInventory_SubmitUpdateProperties", + "params": [ + { "paramname":"handle", "paramtype":"SteamInventoryUpdateHandle_t" }, + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "InspectItem", + "methodname_flat": "SteamAPI_ISteamInventory_InspectItem", + "params": [ + { "paramname":"pResultHandle", "paramtype":"SteamInventoryResult_t *" }, + { "paramname":"pchItemToken", "paramtype":"const char *" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMINVENTORY_INTERFACE_V003" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamParentalSettings", + "name_flat": "SteamAPI_SteamParentalSettings_v001" + } + ], + "classname": "ISteamParentalSettings", + "fields": [], + "methods": [ + { + "methodname": "BIsParentalLockEnabled", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsParentalLockEnabled", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsParentalLockLocked", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsParentalLockLocked", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BIsAppBlocked", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsAppBlocked", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "BIsAppInBlockList", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsAppInBlockList", + "params": [ + { "paramname":"nAppID", "paramtype":"AppId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "BIsFeatureBlocked", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsFeatureBlocked", + "params": [ + { "paramname":"eFeature", "paramtype":"EParentalFeature" } + ], + "returntype": "bool" + }, + { + "methodname": "BIsFeatureInBlockList", + "methodname_flat": "SteamAPI_ISteamParentalSettings_BIsFeatureInBlockList", + "params": [ + { "paramname":"eFeature", "paramtype":"EParentalFeature" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMPARENTALSETTINGS_INTERFACE_VERSION001" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamRemotePlay", + "name_flat": "SteamAPI_SteamRemotePlay_v002" + } + ], + "classname": "ISteamRemotePlay", + "fields": [], + "methods": [ + { + "methodname": "GetSessionCount", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionCount", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetSessionID", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionID", + "params": [ + { "paramname":"iSessionIndex", "paramtype":"int" } + ], + "returntype": "RemotePlaySessionID_t" + }, + { + "methodname": "GetSessionSteamID", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionSteamID", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "GetSessionClientName", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionClientName", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "const char *" + }, + { + "methodname": "GetSessionClientFormFactor", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionClientFormFactor", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "ESteamDeviceFormFactor" + }, + { + "methodname": "BGetSessionClientResolution", + "methodname_flat": "SteamAPI_ISteamRemotePlay_BGetSessionClientResolution", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" }, + { "paramname":"pnResolutionX", "paramtype":"int *" }, + { "paramname":"pnResolutionY", "paramtype":"int *" } + ], + "returntype": "bool" + }, + { + "methodname": "BStartRemotePlayTogether", + "methodname_flat": "SteamAPI_ISteamRemotePlay_BStartRemotePlayTogether", + "params": [ + { "paramname":"bShowOverlay", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "BSendRemotePlayTogetherInvite", + "methodname_flat": "SteamAPI_ISteamRemotePlay_BSendRemotePlayTogetherInvite", + "params": [ + { "paramname":"steamIDFriend", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + } + ], + "version_string": "STEAMREMOTEPLAY_INTERFACE_VERSION002" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamNetworkingMessages_SteamAPI", + "name_flat": "SteamAPI_SteamNetworkingMessages_SteamAPI_v002" + }, + { + "kind": "gameserver", + "name": "SteamGameServerNetworkingMessages_SteamAPI", + "name_flat": "SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002" + } + ], + "classname": "ISteamNetworkingMessages", + "fields": [], + "methods": [ + { + "methodname": "SendMessageToUser", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_SendMessageToUser", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"pubData", "paramtype":"const void *" }, + { "paramname":"cubData", "paramtype":"uint32" }, + { "paramname":"nSendFlags", "paramtype":"int" }, + { "paramname":"nRemoteChannel", "paramtype":"int" } + ], + "returntype": "EResult" + }, + { + "methodname": "ReceiveMessagesOnChannel", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_ReceiveMessagesOnChannel", + "params": [ + { "paramname":"nLocalChannel", "paramtype":"int" }, + { "paramname":"ppOutMessages", "paramtype":"SteamNetworkingMessage_t **" }, + { "paramname":"nMaxMessages", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "AcceptSessionWithUser", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_AcceptSessionWithUser", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseSessionWithUser", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_CloseSessionWithUser", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseChannelWithUser", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_CloseChannelWithUser", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"nLocalChannel", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetSessionConnectionInfo", + "methodname_flat": "SteamAPI_ISteamNetworkingMessages_GetSessionConnectionInfo", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"pConnectionInfo", "paramtype":"SteamNetConnectionInfo_t *" }, + { "paramname":"pQuickStatus", "paramtype":"SteamNetConnectionRealTimeStatus_t *" } + ], + "returntype": "ESteamNetworkingConnectionState" + } + ], + "version_string": "SteamNetworkingMessages002" + }, + { + "accessors": [ + { + "kind": "user", + "name": "SteamNetworkingSockets_SteamAPI", + "name_flat": "SteamAPI_SteamNetworkingSockets_SteamAPI_v012" + }, + { + "kind": "gameserver", + "name": "SteamGameServerNetworkingSockets_SteamAPI", + "name_flat": "SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v012" + } + ], + "classname": "ISteamNetworkingSockets", + "fields": [], + "methods": [ + { + "methodname": "CreateListenSocketIP", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateListenSocketIP", + "params": [ + { "paramname":"localAddress", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamListenSocket" + }, + { + "methodname": "ConnectByIPAddress", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectByIPAddress", + "params": [ + { "paramname":"address", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamNetConnection" + }, + { + "methodname": "CreateListenSocketP2P", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2P", + "params": [ + { "paramname":"nLocalVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamListenSocket" + }, + { + "methodname": "ConnectP2P", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectP2P", + "params": [ + { "paramname":"identityRemote", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"nRemoteVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamNetConnection" + }, + { + "methodname": "AcceptConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_AcceptConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" } + ], + "returntype": "EResult" + }, + { + "methodname": "CloseConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CloseConnection", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" }, + { "paramname":"nReason", "paramtype":"int" }, + { "paramname":"pszDebug", "paramtype":"const char *" }, + { "paramname":"bEnableLinger", "paramtype":"bool" } + ], + "returntype": "bool" + }, + { + "methodname": "CloseListenSocket", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CloseListenSocket", + "params": [ + { "paramname":"hSocket", "paramtype":"HSteamListenSocket" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionUserData", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SetConnectionUserData", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" }, + { "paramname":"nUserData", "paramtype":"int64" } + ], + "returntype": "bool" + }, + { + "methodname": "GetConnectionUserData", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetConnectionUserData", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" } + ], + "returntype": "int64" + }, + { + "methodname": "SetConnectionName", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SetConnectionName", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" }, + { "paramname":"pszName", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "GetConnectionName", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetConnectionName", + "params": [ + { "paramname":"hPeer", "paramtype":"HSteamNetConnection" }, + { "paramname":"pszName", "paramtype":"char *" }, + { "paramname":"nMaxLen", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "SendMessageToConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SendMessageToConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pData", "paramtype":"const void *" }, + { "paramname":"cbData", "paramtype":"uint32" }, + { "paramname":"nSendFlags", "paramtype":"int" }, + { "paramname":"pOutMessageNumber", "paramtype":"int64 *" } + ], + "returntype": "EResult" + }, + { + "methodname": "SendMessages", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SendMessages", + "params": [ + { "paramname":"nMessages", "paramtype":"int" }, + { "paramname":"pMessages", "paramtype":"SteamNetworkingMessage_t *const *" }, + { "paramname":"pOutMessageNumberOrResult", "paramtype":"int64 *" } + ], + "returntype": "void" + }, + { + "methodname": "FlushMessagesOnConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_FlushMessagesOnConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" } + ], + "returntype": "EResult" + }, + { + "methodname": "ReceiveMessagesOnConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"ppOutMessages", "paramtype":"SteamNetworkingMessage_t **" }, + { "paramname":"nMaxMessages", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "GetConnectionInfo", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetConnectionInfo", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pInfo", "paramtype":"SteamNetConnectionInfo_t *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetConnectionRealTimeStatus", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetConnectionRealTimeStatus", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pStatus", "paramtype":"SteamNetConnectionRealTimeStatus_t *" }, + { "paramname":"nLanes", "paramtype":"int" }, + { "paramname":"pLanes", "paramtype":"SteamNetConnectionRealTimeLaneStatus_t *" } + ], + "returntype": "EResult" + }, + { + "methodname": "GetDetailedConnectionStatus", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetDetailedConnectionStatus", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pszBuf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "GetListenSocketAddress", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetListenSocketAddress", + "params": [ + { "paramname":"hSocket", "paramtype":"HSteamListenSocket" }, + { "paramname":"address", "paramtype":"SteamNetworkingIPAddr *" } + ], + "returntype": "bool" + }, + { + "methodname": "CreateSocketPair", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateSocketPair", + "params": [ + { "paramname":"pOutConnection1", "paramtype":"HSteamNetConnection *" }, + { "paramname":"pOutConnection2", "paramtype":"HSteamNetConnection *" }, + { "paramname":"bUseNetworkLoopback", "paramtype":"bool" }, + { "paramname":"pIdentity1", "paramtype":"const SteamNetworkingIdentity *" }, + { "paramname":"pIdentity2", "paramtype":"const SteamNetworkingIdentity *" } + ], + "returntype": "bool" + }, + { + "methodname": "ConfigureConnectionLanes", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConfigureConnectionLanes", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"nNumLanes", "paramtype":"int" }, + { "paramname":"pLanePriorities", "paramtype":"const int *" }, + { "paramname":"pLaneWeights", "paramtype":"const uint16 *" } + ], + "returntype": "EResult" + }, + { + "methodname": "GetIdentity", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetIdentity", + "params": [ + { "paramname":"pIdentity", "paramtype":"SteamNetworkingIdentity *" } + ], + "returntype": "bool" + }, + { + "methodname": "InitAuthentication", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_InitAuthentication", + "params": [], + "returntype": "ESteamNetworkingAvailability" + }, + { + "methodname": "GetAuthenticationStatus", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetAuthenticationStatus", + "params": [ + { "paramname":"pDetails", "paramtype":"SteamNetAuthenticationStatus_t *" } + ], + "returntype": "ESteamNetworkingAvailability" + }, + { + "methodname": "CreatePollGroup", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreatePollGroup", + "params": [], + "returntype": "HSteamNetPollGroup" + }, + { + "methodname": "DestroyPollGroup", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_DestroyPollGroup", + "params": [ + { "paramname":"hPollGroup", "paramtype":"HSteamNetPollGroup" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionPollGroup", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SetConnectionPollGroup", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"hPollGroup", "paramtype":"HSteamNetPollGroup" } + ], + "returntype": "bool" + }, + { + "methodname": "ReceiveMessagesOnPollGroup", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnPollGroup", + "params": [ + { "paramname":"hPollGroup", "paramtype":"HSteamNetPollGroup" }, + { "paramname":"ppOutMessages", "paramtype":"SteamNetworkingMessage_t **" }, + { "paramname":"nMaxMessages", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "ReceivedRelayAuthTicket", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ReceivedRelayAuthTicket", + "params": [ + { "paramname":"pvTicket", "paramtype":"const void *" }, + { "paramname":"cbTicket", "paramtype":"int" }, + { "paramname":"pOutParsedTicket", "paramtype":"SteamDatagramRelayAuthTicket *" } + ], + "returntype": "bool" + }, + { + "methodname": "FindRelayAuthTicketForServer", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_FindRelayAuthTicketForServer", + "params": [ + { "paramname":"identityGameServer", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"nRemoteVirtualPort", "paramtype":"int" }, + { "paramname":"pOutParsedTicket", "paramtype":"SteamDatagramRelayAuthTicket *" } + ], + "returntype": "int" + }, + { + "methodname": "ConnectToHostedDedicatedServer", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectToHostedDedicatedServer", + "params": [ + { "paramname":"identityTarget", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"nRemoteVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamNetConnection" + }, + { + "methodname": "GetHostedDedicatedServerPort", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPort", + "params": [], + "returntype": "uint16" + }, + { + "methodname": "GetHostedDedicatedServerPOPID", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPOPID", + "params": [], + "returntype": "SteamNetworkingPOPID" + }, + { + "methodname": "GetHostedDedicatedServerAddress", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerAddress", + "params": [ + { "paramname":"pRouting", "paramtype":"SteamDatagramHostedAddress *" } + ], + "returntype": "EResult" + }, + { + "methodname": "CreateHostedDedicatedServerListenSocket", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket", + "params": [ + { "paramname":"nLocalVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamListenSocket" + }, + { + "methodname": "GetGameCoordinatorServerLogin", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetGameCoordinatorServerLogin", + "params": [ + { "paramname":"pLoginInfo", "paramtype":"SteamDatagramGameCoordinatorServerLogin *" }, + { "paramname":"pcbSignedBlob", "paramtype":"int *" }, + { "paramname":"pBlob", "paramtype":"void *" } + ], + "returntype": "EResult" + }, + { + "methodname": "ConnectP2PCustomSignaling", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ConnectP2PCustomSignaling", + "params": [ + { "paramname":"pSignaling", "paramtype":"ISteamNetworkingConnectionSignaling *" }, + { "paramname":"pPeerIdentity", "paramtype":"const SteamNetworkingIdentity *" }, + { "paramname":"nRemoteVirtualPort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamNetConnection" + }, + { + "methodname": "ReceivedP2PCustomSignal", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ReceivedP2PCustomSignal", + "params": [ + { "paramname":"pMsg", "paramtype":"const void *" }, + { "paramname":"cbMsg", "paramtype":"int" }, + { "paramname":"pContext", "paramtype":"ISteamNetworkingSignalingRecvContext *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetCertificateRequest", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetCertificateRequest", + "params": [ + { "paramname":"pcbBlob", "paramtype":"int *" }, + { "paramname":"pBlob", "paramtype":"void *" }, + { "paramname":"errMsg", "paramtype":"SteamNetworkingErrMsg &" } + ], + "returntype": "bool" + }, + { + "methodname": "SetCertificate", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_SetCertificate", + "params": [ + { "paramname":"pCertificate", "paramtype":"const void *" }, + { "paramname":"cbCertificate", "paramtype":"int" }, + { "paramname":"errMsg", "paramtype":"SteamNetworkingErrMsg &" } + ], + "returntype": "bool" + }, + { + "methodname": "ResetIdentity", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_ResetIdentity", + "params": [ + { "paramname":"pIdentity", "paramtype":"const SteamNetworkingIdentity *" } + ], + "returntype": "void" + }, + { + "methodname": "RunCallbacks", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_RunCallbacks", + "params": [], + "returntype": "void" + }, + { + "methodname": "BeginAsyncRequestFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_BeginAsyncRequestFakeIP", + "params": [ + { "paramname":"nNumPorts", "paramtype":"int" } + ], + "returntype": "bool" + }, + { + "methodname": "GetFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetFakeIP", + "params": [ + { "paramname":"idxFirstPort", "paramtype":"int" }, + { "paramname":"pInfo", "paramtype":"SteamNetworkingFakeIPResult_t *" } + ], + "returntype": "void" + }, + { + "methodname": "CreateListenSocketP2PFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2PFakeIP", + "params": [ + { "paramname":"idxFakePort", "paramtype":"int" }, + { "paramname":"nOptions", "paramtype":"int" }, + { "paramname":"pOptions", "paramtype":"const SteamNetworkingConfigValue_t *" } + ], + "returntype": "HSteamListenSocket" + }, + { + "methodname": "GetRemoteFakeIPForConnection", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_GetRemoteFakeIPForConnection", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"pOutAddr", "paramtype":"SteamNetworkingIPAddr *" } + ], + "returntype": "EResult" + }, + { + "methodname": "CreateFakeUDPPort", + "methodname_flat": "SteamAPI_ISteamNetworkingSockets_CreateFakeUDPPort", + "params": [ + { "paramname":"idxFakeServerPort", "paramtype":"int" } + ], + "returntype": "ISteamNetworkingFakeUDPPort *" + } + ], + "version_string": "SteamNetworkingSockets012" + }, + { + "accessors": [ + { + "kind": "global", + "name": "SteamNetworkingUtils_SteamAPI", + "name_flat": "SteamAPI_SteamNetworkingUtils_SteamAPI_v004" + } + ], + "classname": "ISteamNetworkingUtils", + "fields": [], + "methods": [ + { + "methodname": "AllocateMessage", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_AllocateMessage", + "params": [ + { "paramname":"cbAllocateBuffer", "paramtype":"int" } + ], + "returntype": "SteamNetworkingMessage_t *" + }, + { + "methodname": "InitRelayNetworkAccess", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_InitRelayNetworkAccess", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetRelayNetworkStatus", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetRelayNetworkStatus", + "params": [ + { "paramname":"pDetails", "paramtype":"SteamRelayNetworkStatus_t *" } + ], + "returntype": "ESteamNetworkingAvailability" + }, + { + "methodname": "GetLocalPingLocation", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetLocalPingLocation", + "params": [ + { "paramname":"result", "paramtype":"SteamNetworkPingLocation_t &" } + ], + "returntype": "float" + }, + { + "methodname": "EstimatePingTimeBetweenTwoLocations", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_EstimatePingTimeBetweenTwoLocations", + "params": [ + { "paramname":"location1", "paramtype":"const SteamNetworkPingLocation_t &" }, + { "paramname":"location2", "paramtype":"const SteamNetworkPingLocation_t &" } + ], + "returntype": "int" + }, + { + "methodname": "EstimatePingTimeFromLocalHost", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_EstimatePingTimeFromLocalHost", + "params": [ + { "paramname":"remoteLocation", "paramtype":"const SteamNetworkPingLocation_t &" } + ], + "returntype": "int" + }, + { + "methodname": "ConvertPingLocationToString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_ConvertPingLocationToString", + "params": [ + { "paramname":"location", "paramtype":"const SteamNetworkPingLocation_t &" }, + { "paramname":"pszBuf", "paramtype":"char *" }, + { "paramname":"cchBufSize", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "ParsePingLocationString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_ParsePingLocationString", + "params": [ + { "paramname":"pszString", "paramtype":"const char *" }, + { "paramname":"result", "paramtype":"SteamNetworkPingLocation_t &" } + ], + "returntype": "bool" + }, + { + "methodname": "CheckPingDataUpToDate", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_CheckPingDataUpToDate", + "params": [ + { "paramname":"flMaxAgeSeconds", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "GetPingToDataCenter", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetPingToDataCenter", + "params": [ + { "paramname":"popID", "paramtype":"SteamNetworkingPOPID" }, + { "paramname":"pViaRelayPoP", "paramtype":"SteamNetworkingPOPID *" } + ], + "returntype": "int" + }, + { + "methodname": "GetDirectPingToPOP", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetDirectPingToPOP", + "params": [ + { "paramname":"popID", "paramtype":"SteamNetworkingPOPID" } + ], + "returntype": "int" + }, + { + "methodname": "GetPOPCount", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetPOPCount", + "params": [], + "returntype": "int" + }, + { + "methodname": "GetPOPList", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetPOPList", + "params": [ + { "paramname":"list", "paramtype":"SteamNetworkingPOPID *" }, + { "paramname":"nListSz", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "GetLocalTimestamp", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetLocalTimestamp", + "params": [], + "returntype": "SteamNetworkingMicroseconds" + }, + { + "methodname": "SetDebugOutputFunction", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetDebugOutputFunction", + "params": [ + { "paramname":"eDetailLevel", "paramtype":"ESteamNetworkingSocketsDebugOutputType" }, + { "paramname":"pfnFunc", "paramtype":"FSteamNetworkingSocketsDebugOutput" } + ], + "returntype": "void" + }, + { + "methodname": "IsFakeIPv4", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_IsFakeIPv4", + "params": [ + { "paramname":"nIPv4", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetIPv4FakeIPType", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetIPv4FakeIPType", + "params": [ + { "paramname":"nIPv4", "paramtype":"uint32" } + ], + "returntype": "ESteamNetworkingFakeIPType" + }, + { + "methodname": "GetRealIdentityForFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetRealIdentityForFakeIP", + "params": [ + { "paramname":"fakeIP", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"pOutRealIdentity", "paramtype":"SteamNetworkingIdentity *" } + ], + "returntype": "EResult" + }, + { + "methodname": "SetGlobalConfigValueInt32", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueInt32", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalConfigValueFloat", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueFloat", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalConfigValueString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueString", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalConfigValuePtr", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValuePtr", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"void *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionConfigValueInt32", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueInt32", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionConfigValueFloat", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueFloat", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConnectionConfigValueString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueString", + "params": [ + { "paramname":"hConn", "paramtype":"HSteamNetConnection" }, + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"val", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_SteamNetConnectionStatusChanged", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetConnectionStatusChanged", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetConnectionStatusChanged" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_SteamNetAuthenticationStatusChanged", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetAuthenticationStatusChanged", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetAuthenticationStatusChanged" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_SteamRelayNetworkStatusChanged", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamRelayNetworkStatusChanged", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamRelayNetworkStatusChanged" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_FakeIPResult", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_FakeIPResult", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetworkingFakeIPResult" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_MessagesSessionRequest", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionRequest", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetworkingMessagesSessionRequest" } + ], + "returntype": "bool" + }, + { + "methodname": "SetGlobalCallback_MessagesSessionFailed", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionFailed", + "params": [ + { "paramname":"fnCallback", "paramtype":"FnSteamNetworkingMessagesSessionFailed" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConfigValue", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConfigValue", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"eScopeType", "paramtype":"ESteamNetworkingConfigScope" }, + { "paramname":"scopeObj", "paramtype":"intptr_t" }, + { "paramname":"eDataType", "paramtype":"ESteamNetworkingConfigDataType" }, + { "paramname":"pArg", "paramtype":"const void *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetConfigValueStruct", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SetConfigValueStruct", + "params": [ + { "paramname":"opt", "paramtype":"const SteamNetworkingConfigValue_t &" }, + { "paramname":"eScopeType", "paramtype":"ESteamNetworkingConfigScope" }, + { "paramname":"scopeObj", "paramtype":"intptr_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetConfigValue", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetConfigValue", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"eScopeType", "paramtype":"ESteamNetworkingConfigScope" }, + { "paramname":"scopeObj", "paramtype":"intptr_t" }, + { "paramname":"pOutDataType", "paramtype":"ESteamNetworkingConfigDataType *" }, + { "paramname":"pResult", "paramtype":"void *" }, + { "paramname":"cbResult", "paramtype":"size_t *" } + ], + "returntype": "ESteamNetworkingGetConfigValueResult" + }, + { + "methodname": "GetConfigValueInfo", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_GetConfigValueInfo", + "params": [ + { "paramname":"eValue", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"pOutDataType", "paramtype":"ESteamNetworkingConfigDataType *" }, + { "paramname":"pOutScope", "paramtype":"ESteamNetworkingConfigScope *" } + ], + "returntype": "const char *" + }, + { + "methodname": "IterateGenericEditableConfigValues", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_IterateGenericEditableConfigValues", + "params": [ + { "paramname":"eCurrent", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"bEnumerateDevVars", "paramtype":"bool" } + ], + "returntype": "ESteamNetworkingConfigValue" + }, + { + "methodname": "SteamNetworkingIPAddr_ToString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ToString", + "params": [ + { "paramname":"addr", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"buf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"uint32" }, + { "paramname":"bWithPort", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SteamNetworkingIPAddr_ParseString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ParseString", + "params": [ + { "paramname":"pAddr", "paramtype":"SteamNetworkingIPAddr *" }, + { "paramname":"pszStr", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "SteamNetworkingIPAddr_GetFakeIPType", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_GetFakeIPType", + "params": [ + { "paramname":"addr", "paramtype":"const SteamNetworkingIPAddr &" } + ], + "returntype": "ESteamNetworkingFakeIPType" + }, + { + "methodname": "SteamNetworkingIdentity_ToString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ToString", + "params": [ + { "paramname":"identity", "paramtype":"const SteamNetworkingIdentity &" }, + { "paramname":"buf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "SteamNetworkingIdentity_ParseString", + "methodname_flat": "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString", + "params": [ + { "paramname":"pIdentity", "paramtype":"SteamNetworkingIdentity *" }, + { "paramname":"pszStr", "paramtype":"const char *" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamNetworkingUtils004" + }, + { + "accessors": [ + { + "kind": "gameserver", + "name": "SteamGameServer", + "name_flat": "SteamAPI_SteamGameServer_v015" + } + ], + "classname": "ISteamGameServer", + "fields": [], + "methods": [ + { + "methodname": "SetProduct", + "methodname_flat": "SteamAPI_ISteamGameServer_SetProduct", + "params": [ + { "paramname":"pszProduct", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetGameDescription", + "methodname_flat": "SteamAPI_ISteamGameServer_SetGameDescription", + "params": [ + { "paramname":"pszGameDescription", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetModDir", + "methodname_flat": "SteamAPI_ISteamGameServer_SetModDir", + "params": [ + { "paramname":"pszModDir", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetDedicatedServer", + "methodname_flat": "SteamAPI_ISteamGameServer_SetDedicatedServer", + "params": [ + { "paramname":"bDedicated", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "LogOn", + "methodname_flat": "SteamAPI_ISteamGameServer_LogOn", + "params": [ + { "paramname":"pszToken", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "LogOnAnonymous", + "methodname_flat": "SteamAPI_ISteamGameServer_LogOnAnonymous", + "params": [], + "returntype": "void" + }, + { + "methodname": "LogOff", + "methodname_flat": "SteamAPI_ISteamGameServer_LogOff", + "params": [], + "returntype": "void" + }, + { + "methodname": "BLoggedOn", + "methodname_flat": "SteamAPI_ISteamGameServer_BLoggedOn", + "params": [], + "returntype": "bool" + }, + { + "methodname": "BSecure", + "methodname_flat": "SteamAPI_ISteamGameServer_BSecure", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetSteamID", + "methodname_flat": "SteamAPI_ISteamGameServer_GetSteamID", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "WasRestartRequested", + "methodname_flat": "SteamAPI_ISteamGameServer_WasRestartRequested", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetMaxPlayerCount", + "methodname_flat": "SteamAPI_ISteamGameServer_SetMaxPlayerCount", + "params": [ + { "paramname":"cPlayersMax", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "SetBotPlayerCount", + "methodname_flat": "SteamAPI_ISteamGameServer_SetBotPlayerCount", + "params": [ + { "paramname":"cBotplayers", "paramtype":"int" } + ], + "returntype": "void" + }, + { + "methodname": "SetServerName", + "methodname_flat": "SteamAPI_ISteamGameServer_SetServerName", + "params": [ + { "paramname":"pszServerName", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetMapName", + "methodname_flat": "SteamAPI_ISteamGameServer_SetMapName", + "params": [ + { "paramname":"pszMapName", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetPasswordProtected", + "methodname_flat": "SteamAPI_ISteamGameServer_SetPasswordProtected", + "params": [ + { "paramname":"bPasswordProtected", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "SetSpectatorPort", + "methodname_flat": "SteamAPI_ISteamGameServer_SetSpectatorPort", + "params": [ + { "paramname":"unSpectatorPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "SetSpectatorServerName", + "methodname_flat": "SteamAPI_ISteamGameServer_SetSpectatorServerName", + "params": [ + { "paramname":"pszSpectatorServerName", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "ClearAllKeyValues", + "methodname_flat": "SteamAPI_ISteamGameServer_ClearAllKeyValues", + "params": [], + "returntype": "void" + }, + { + "methodname": "SetKeyValue", + "methodname_flat": "SteamAPI_ISteamGameServer_SetKeyValue", + "params": [ + { "paramname":"pKey", "paramtype":"const char *" }, + { "paramname":"pValue", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetGameTags", + "methodname_flat": "SteamAPI_ISteamGameServer_SetGameTags", + "params": [ + { "paramname":"pchGameTags", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetGameData", + "methodname_flat": "SteamAPI_ISteamGameServer_SetGameData", + "params": [ + { "paramname":"pchGameData", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetRegion", + "methodname_flat": "SteamAPI_ISteamGameServer_SetRegion", + "params": [ + { "paramname":"pszRegion", "paramtype":"const char *" } + ], + "returntype": "void" + }, + { + "methodname": "SetAdvertiseServerActive", + "methodname_flat": "SteamAPI_ISteamGameServer_SetAdvertiseServerActive", + "params": [ + { "paramname":"bActive", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "GetAuthSessionTicket", + "methodname_flat": "SteamAPI_ISteamGameServer_GetAuthSessionTicket", + "params": [ + { "paramname":"pTicket", "paramtype":"void *" }, + { "paramname":"cbMaxTicket", "paramtype":"int" }, + { "paramname":"pcbTicket", "paramtype":"uint32 *" }, + { "paramname":"pSnid", "paramtype":"const SteamNetworkingIdentity *" } + ], + "returntype": "HAuthTicket" + }, + { + "methodname": "BeginAuthSession", + "methodname_flat": "SteamAPI_ISteamGameServer_BeginAuthSession", + "params": [ + { "paramname":"pAuthTicket", "paramtype":"const void *" }, + { "paramname":"cbAuthTicket", "paramtype":"int" }, + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "EBeginAuthSessionResult" + }, + { + "methodname": "EndAuthSession", + "methodname_flat": "SteamAPI_ISteamGameServer_EndAuthSession", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "CancelAuthTicket", + "methodname_flat": "SteamAPI_ISteamGameServer_CancelAuthTicket", + "params": [ + { "paramname":"hAuthTicket", "paramtype":"HAuthTicket" } + ], + "returntype": "void" + }, + { + "methodname": "UserHasLicenseForApp", + "methodname_flat": "SteamAPI_ISteamGameServer_UserHasLicenseForApp", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"appID", "paramtype":"AppId_t" } + ], + "returntype": "EUserHasLicenseForAppResult" + }, + { + "methodname": "RequestUserGroupStatus", + "methodname_flat": "SteamAPI_ISteamGameServer_RequestUserGroupStatus", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"steamIDGroup", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGameplayStats", + "methodname_flat": "SteamAPI_ISteamGameServer_GetGameplayStats", + "params": [], + "returntype": "void" + }, + { + "callresult": "GSReputation_t", + "methodname": "GetServerReputation", + "methodname_flat": "SteamAPI_ISteamGameServer_GetServerReputation", + "params": [], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetPublicIP", + "methodname_flat": "SteamAPI_ISteamGameServer_GetPublicIP", + "params": [], + "returntype": "SteamIPAddress_t" + }, + { + "methodname": "HandleIncomingPacket", + "methodname_flat": "SteamAPI_ISteamGameServer_HandleIncomingPacket", + "params": [ + { "paramname":"pData", "paramtype":"const void *" }, + { "paramname":"cbData", "paramtype":"int" }, + { "paramname":"srcIP", "paramtype":"uint32" }, + { "paramname":"srcPort", "paramtype":"uint16" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNextOutgoingPacket", + "methodname_flat": "SteamAPI_ISteamGameServer_GetNextOutgoingPacket", + "params": [ + { "paramname":"pOut", "paramtype":"void *" }, + { "paramname":"cbMaxOut", "paramtype":"int" }, + { "paramname":"pNetAdr", "paramtype":"uint32 *" }, + { "paramname":"pPort", "paramtype":"uint16 *" } + ], + "returntype": "int" + }, + { + "callresult": "AssociateWithClanResult_t", + "methodname": "AssociateWithClan", + "methodname_flat": "SteamAPI_ISteamGameServer_AssociateWithClan", + "params": [ + { "paramname":"steamIDClan", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "callresult": "ComputeNewPlayerCompatibilityResult_t", + "methodname": "ComputeNewPlayerCompatibility", + "methodname_flat": "SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility", + "params": [ + { "paramname":"steamIDNewPlayer", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "SendUserConnectAndAuthenticate_DEPRECATED", + "methodname_flat": "SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate_DEPRECATED", + "params": [ + { "paramname":"unIPClient", "paramtype":"uint32" }, + { "paramname":"pvAuthBlob", "paramtype":"const void *" }, + { "paramname":"cubAuthBlobSize", "paramtype":"uint32" }, + { "paramname":"pSteamIDUser", "paramtype":"CSteamID *" } + ], + "returntype": "bool" + }, + { + "methodname": "CreateUnauthenticatedUserConnection", + "methodname_flat": "SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "SendUserDisconnect_DEPRECATED", + "methodname_flat": "SteamAPI_ISteamGameServer_SendUserDisconnect_DEPRECATED", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "BUpdateUserData", + "methodname_flat": "SteamAPI_ISteamGameServer_BUpdateUserData", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchPlayerName", "paramtype":"const char *" }, + { "paramname":"uScore", "paramtype":"uint32" } + ], + "returntype": "bool" + } + ], + "version_string": "SteamGameServer015" + }, + { + "accessors": [ + { + "kind": "gameserver", + "name": "SteamGameServerStats", + "name_flat": "SteamAPI_SteamGameServerStats_v001" + } + ], + "classname": "ISteamGameServerStats", + "fields": [], + "methods": [ + { + "callresult": "GSStatsReceived_t", + "methodname": "RequestUserStats", + "methodname_flat": "SteamAPI_ISteamGameServerStats_RequestUserStats", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + }, + { + "methodname": "GetUserStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_GetUserStatInt32", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"int32 *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_GetUserStatFloat", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pData", "paramtype":"float *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetUserAchievement", + "methodname_flat": "SteamAPI_ISteamGameServerStats_GetUserAchievement", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"pbAchieved", "paramtype":"bool *" } + ], + "returntype": "bool" + }, + { + "methodname": "SetUserStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_SetUserStatInt32", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"nData", "paramtype":"int32" } + ], + "returntype": "bool" + }, + { + "methodname": "SetUserStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_SetUserStatFloat", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"fData", "paramtype":"float" } + ], + "returntype": "bool" + }, + { + "methodname": "UpdateUserAvgRateStat", + "methodname_flat": "SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" }, + { "paramname":"flCountThisSession", "paramtype":"float" }, + { "paramname":"dSessionLength", "paramtype":"double" } + ], + "returntype": "bool" + }, + { + "methodname": "SetUserAchievement", + "methodname_flat": "SteamAPI_ISteamGameServerStats_SetUserAchievement", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "ClearUserAchievement", + "methodname_flat": "SteamAPI_ISteamGameServerStats_ClearUserAchievement", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" }, + { "paramname":"pchName", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "callresult": "GSStatsStored_t", + "methodname": "StoreUserStats", + "methodname_flat": "SteamAPI_ISteamGameServerStats_StoreUserStats", + "params": [ + { "paramname":"steamIDUser", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "SteamAPICall_t" + } + ], + "version_string": "SteamGameServerStats001" + }, + { + "classname": "ISteamNetworkingFakeUDPPort", + "fields": [], + "methods": [ + { + "methodname": "DestroyFakeUDPPort", + "methodname_flat": "SteamAPI_ISteamNetworkingFakeUDPPort_DestroyFakeUDPPort", + "params": [], + "returntype": "void" + }, + { + "methodname": "SendMessageToFakeIP", + "methodname_flat": "SteamAPI_ISteamNetworkingFakeUDPPort_SendMessageToFakeIP", + "params": [ + { "paramname":"remoteAddress", "paramtype":"const SteamNetworkingIPAddr &" }, + { "paramname":"pData", "paramtype":"const void *" }, + { "paramname":"cbData", "paramtype":"uint32" }, + { "paramname":"nSendFlags", "paramtype":"int" } + ], + "returntype": "EResult" + }, + { + "methodname": "ReceiveMessages", + "methodname_flat": "SteamAPI_ISteamNetworkingFakeUDPPort_ReceiveMessages", + "params": [ + { "paramname":"ppOutMessages", "paramtype":"SteamNetworkingMessage_t **" }, + { "paramname":"nMaxMessages", "paramtype":"int" } + ], + "returntype": "int" + }, + { + "methodname": "ScheduleCleanup", + "methodname_flat": "SteamAPI_ISteamNetworkingFakeUDPPort_ScheduleCleanup", + "params": [ + { "paramname":"remoteAddress", "paramtype":"const SteamNetworkingIPAddr &" } + ], + "returntype": "void" + } + ] + } + ], + "structs": [ + { + "fields": [ + { "fieldname":"m_rgubIPv6", "fieldtype":"uint8 [16]" }, + { "fieldname":"m_eType", "fieldtype":"ESteamIPType" } + ], + "methods": [ + { + "methodname": "IsSet", + "methodname_flat": "SteamAPI_SteamIPAddress_t_IsSet", + "params": [], + "returntype": "bool" + } + ], + "struct": "SteamIPAddress_t" + }, + { + "fields": [ + { "fieldname":"m_gameID", "fieldtype":"CGameID" }, + { "fieldname":"m_unGameIP", "fieldtype":"uint32" }, + { "fieldname":"m_usGamePort", "fieldtype":"uint16" }, + { "fieldname":"m_usQueryPort", "fieldtype":"uint16" }, + { "fieldname":"m_steamIDLobby", "fieldtype":"CSteamID" } + ], + "struct": "FriendGameInfo_t" + }, + { + "fields": [ + { "fieldname":"m_szKey", "fieldtype":"char [256]" }, + { "fieldname":"m_szValue", "fieldtype":"char [256]" } + ], + "methods": [ + { + "methodname": "Construct", + "methodname_flat": "SteamAPI_MatchMakingKeyValuePair_t_Construct", + "params": [], + "returntype": "void" + } + ], + "struct": "MatchMakingKeyValuePair_t" + }, + { + "fields": [ + { + "fieldname": "m_usConnectionPort", + "fieldtype": "uint16", + "private": true + }, + { + "fieldname": "m_usQueryPort", + "fieldtype": "uint16", + "private": true + }, + { + "fieldname": "m_unIP", + "fieldtype": "uint32", + "private": true + } + ], + "methods": [ + { + "methodname": "Construct", + "methodname_flat": "SteamAPI_servernetadr_t_Construct", + "params": [], + "returntype": "void" + }, + { + "methodname": "Init", + "methodname_flat": "SteamAPI_servernetadr_t_Init", + "params": [ + { "paramname":"ip", "paramtype":"unsigned int" }, + { "paramname":"usQueryPort", "paramtype":"uint16" }, + { "paramname":"usConnectionPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetQueryPort", + "methodname_flat": "SteamAPI_servernetadr_t_GetQueryPort", + "params": [], + "returntype": "uint16" + }, + { + "methodname": "SetQueryPort", + "methodname_flat": "SteamAPI_servernetadr_t_SetQueryPort", + "params": [ + { "paramname":"usPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetConnectionPort", + "methodname_flat": "SteamAPI_servernetadr_t_GetConnectionPort", + "params": [], + "returntype": "uint16" + }, + { + "methodname": "SetConnectionPort", + "methodname_flat": "SteamAPI_servernetadr_t_SetConnectionPort", + "params": [ + { "paramname":"usPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetIP", + "methodname_flat": "SteamAPI_servernetadr_t_GetIP", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetIP", + "methodname_flat": "SteamAPI_servernetadr_t_SetIP", + "params": [ + { "paramname":"unIP", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "GetConnectionAddressString", + "methodname_flat": "SteamAPI_servernetadr_t_GetConnectionAddressString", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "GetQueryAddressString", + "methodname_flat": "SteamAPI_servernetadr_t_GetQueryAddressString", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "operator<", + "methodname_flat": "SteamAPI_servernetadr_t_IsLessThan", + "params": [ + { "paramname":"netadr", "paramtype":"const servernetadr_t &" } + ], + "returntype": "bool" + }, + { + "methodname": "operator=", + "methodname_flat": "SteamAPI_servernetadr_t_Assign", + "params": [ + { "paramname":"that", "paramtype":"const servernetadr_t &" } + ], + "returntype": "void" + } + ], + "struct": "servernetadr_t" + }, + { + "fields": [ + { "fieldname":"m_NetAdr", "fieldtype":"servernetadr_t" }, + { "fieldname":"m_nPing", "fieldtype":"int" }, + { "fieldname":"m_bHadSuccessfulResponse", "fieldtype":"bool" }, + { "fieldname":"m_bDoNotRefresh", "fieldtype":"bool" }, + { "fieldname":"m_szGameDir", "fieldtype":"char [32]" }, + { "fieldname":"m_szMap", "fieldtype":"char [32]" }, + { "fieldname":"m_szGameDescription", "fieldtype":"char [64]" }, + { "fieldname":"m_nAppID", "fieldtype":"uint32" }, + { "fieldname":"m_nPlayers", "fieldtype":"int" }, + { "fieldname":"m_nMaxPlayers", "fieldtype":"int" }, + { "fieldname":"m_nBotPlayers", "fieldtype":"int" }, + { "fieldname":"m_bPassword", "fieldtype":"bool" }, + { "fieldname":"m_bSecure", "fieldtype":"bool" }, + { "fieldname":"m_ulTimeLastPlayed", "fieldtype":"uint32" }, + { "fieldname":"m_nServerVersion", "fieldtype":"int" }, + { + "fieldname": "m_szServerName", + "fieldtype": "char [64]", + "private": true + }, + { "fieldname":"m_szGameTags", "fieldtype":"char [128]" }, + { "fieldname":"m_steamID", "fieldtype":"CSteamID" } + ], + "methods": [ + { + "methodname": "Construct", + "methodname_flat": "SteamAPI_gameserveritem_t_Construct", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetName", + "methodname_flat": "SteamAPI_gameserveritem_t_GetName", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "SetName", + "methodname_flat": "SteamAPI_gameserveritem_t_SetName", + "params": [ + { "paramname":"pName", "paramtype":"const char *" } + ], + "returntype": "void" + } + ], + "struct": "gameserveritem_t" + }, + { + "fields": [ + { "fieldname":"m_eType", "fieldtype":"ESteamPartyBeaconLocationType" }, + { "fieldname":"m_ulLocationID", "fieldtype":"uint64" } + ], + "struct": "SteamPartyBeaconLocation_t" + }, + { + "fields": [ + { "fieldname":"m_ppStrings", "fieldtype":"const char **" }, + { "fieldname":"m_nNumStrings", "fieldtype":"int32" } + ], + "struct": "SteamParamStringArray_t" + }, + { + "fields": [ + { "fieldname":"m_steamIDUser", "fieldtype":"CSteamID" }, + { "fieldname":"m_nGlobalRank", "fieldtype":"int32" }, + { "fieldname":"m_nScore", "fieldtype":"int32" }, + { "fieldname":"m_cDetails", "fieldtype":"int32" }, + { "fieldname":"m_hUGC", "fieldtype":"UGCHandle_t" } + ], + "struct": "LeaderboardEntry_t" + }, + { + "fields": [ + { "fieldname":"m_bConnectionActive", "fieldtype":"uint8" }, + { "fieldname":"m_bConnecting", "fieldtype":"uint8" }, + { "fieldname":"m_eP2PSessionError", "fieldtype":"uint8" }, + { "fieldname":"m_bUsingRelay", "fieldtype":"uint8" }, + { "fieldname":"m_nBytesQueuedForSend", "fieldtype":"int32" }, + { "fieldname":"m_nPacketsQueuedForSend", "fieldtype":"int32" }, + { "fieldname":"m_nRemoteIP", "fieldtype":"uint32" }, + { "fieldname":"m_nRemotePort", "fieldtype":"uint16" } + ], + "struct": "P2PSessionState_t" + }, + { + "fields": [ + { "fieldname":"eMode", "fieldtype":"EInputSourceMode" }, + { "fieldname":"x", "fieldtype":"float" }, + { "fieldname":"y", "fieldtype":"float" }, + { "fieldname":"bActive", "fieldtype":"bool" } + ], + "struct": "InputAnalogActionData_t" + }, + { + "fields": [ + { "fieldname":"bState", "fieldtype":"bool" }, + { "fieldname":"bActive", "fieldtype":"bool" } + ], + "struct": "InputDigitalActionData_t" + }, + { + "fields": [ + { "fieldname":"rotQuatX", "fieldtype":"float" }, + { "fieldname":"rotQuatY", "fieldtype":"float" }, + { "fieldname":"rotQuatZ", "fieldtype":"float" }, + { "fieldname":"rotQuatW", "fieldtype":"float" }, + { "fieldname":"posAccelX", "fieldtype":"float" }, + { "fieldname":"posAccelY", "fieldtype":"float" }, + { "fieldname":"posAccelZ", "fieldtype":"float" }, + { "fieldname":"rotVelX", "fieldtype":"float" }, + { "fieldname":"rotVelY", "fieldtype":"float" }, + { "fieldname":"rotVelZ", "fieldtype":"float" } + ], + "struct": "InputMotionData_t" + }, + { + "fields": [ + { "fieldname":"controllerHandle", "fieldtype":"InputHandle_t" }, + { "fieldname":"eEventType", "fieldtype":"ESteamInputActionEventType" }, + { "fieldname":"analogAction", "fieldtype":"SteamInputActionEvent_t::AnalogAction_t" } + ], + "struct": "SteamInputActionEvent_t" + }, + { + "fields": [ + { "fieldname":"m_nPublishedFileId", "fieldtype":"PublishedFileId_t" }, + { "fieldname":"m_eResult", "fieldtype":"EResult" }, + { "fieldname":"m_eFileType", "fieldtype":"EWorkshopFileType" }, + { "fieldname":"m_nCreatorAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_nConsumerAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_rgchTitle", "fieldtype":"char [129]" }, + { "fieldname":"m_rgchDescription", "fieldtype":"char [8000]" }, + { "fieldname":"m_ulSteamIDOwner", "fieldtype":"uint64" }, + { "fieldname":"m_rtimeCreated", "fieldtype":"uint32" }, + { "fieldname":"m_rtimeUpdated", "fieldtype":"uint32" }, + { "fieldname":"m_rtimeAddedToUserList", "fieldtype":"uint32" }, + { "fieldname":"m_eVisibility", "fieldtype":"ERemoteStoragePublishedFileVisibility" }, + { "fieldname":"m_bBanned", "fieldtype":"bool" }, + { "fieldname":"m_bAcceptedForUse", "fieldtype":"bool" }, + { "fieldname":"m_bTagsTruncated", "fieldtype":"bool" }, + { "fieldname":"m_rgchTags", "fieldtype":"char [1025]" }, + { "fieldname":"m_hFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_hPreviewFile", "fieldtype":"UGCHandle_t" }, + { "fieldname":"m_pchFileName", "fieldtype":"char [260]" }, + { "fieldname":"m_nFileSize", "fieldtype":"int32" }, + { "fieldname":"m_nPreviewFileSize", "fieldtype":"int32" }, + { "fieldname":"m_rgchURL", "fieldtype":"char [256]" }, + { "fieldname":"m_unVotesUp", "fieldtype":"uint32" }, + { "fieldname":"m_unVotesDown", "fieldtype":"uint32" }, + { "fieldname":"m_flScore", "fieldtype":"float" }, + { "fieldname":"m_unNumChildren", "fieldtype":"uint32" } + ], + "struct": "SteamUGCDetails_t" + }, + { + "fields": [ + { "fieldname":"m_itemId", "fieldtype":"SteamItemInstanceID_t" }, + { "fieldname":"m_iDefinition", "fieldtype":"SteamItemDef_t" }, + { "fieldname":"m_unQuantity", "fieldtype":"uint16" }, + { "fieldname":"m_unFlags", "fieldtype":"uint16" } + ], + "struct": "SteamItemDetails_t" + }, + { + "consts": [ + { "constname":"k_cchMaxString", "consttype":"int", "constval":"48" } + ], + "fields": [ + { "fieldname":"m_ipv6", "fieldtype":"uint8 [16]" }, + { "fieldname":"m_port", "fieldtype":"uint16" } + ], + "methods": [ + { + "methodname": "Clear", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_Clear", + "params": [], + "returntype": "void" + }, + { + "methodname": "IsIPv6AllZeros", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsIPv6AllZeros", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetIPv6", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_SetIPv6", + "params": [ + { "paramname":"ipv6", "paramtype":"const uint8 *" }, + { "paramname":"nPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "SetIPv4", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_SetIPv4", + "params": [ + { "paramname":"nIP", "paramtype":"uint32" }, + { "paramname":"nPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "IsIPv4", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsIPv4", + "params": [], + "returntype": "bool" + }, + { + "methodname": "GetIPv4", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_GetIPv4", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "SetIPv6LocalHost", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_SetIPv6LocalHost", + "params": [ + { "paramname":"nPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "IsLocalHost", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsLocalHost", + "params": [], + "returntype": "bool" + }, + { + "methodname": "ToString", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_ToString", + "params": [ + { "paramname":"buf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"uint32" }, + { "paramname":"bWithPort", "paramtype":"bool" } + ], + "returntype": "void" + }, + { + "methodname": "ParseString", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_ParseString", + "params": [ + { "paramname":"pszStr", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "operator==", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsEqualTo", + "params": [ + { "paramname":"x", "paramtype":"const SteamNetworkingIPAddr &" } + ], + "returntype": "bool" + }, + { + "methodname": "GetFakeIPType", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_GetFakeIPType", + "params": [], + "returntype": "ESteamNetworkingFakeIPType" + }, + { + "methodname": "IsFakeIP", + "methodname_flat": "SteamAPI_SteamNetworkingIPAddr_IsFakeIP", + "params": [], + "returntype": "bool" + } + ], + "struct": "SteamNetworkingIPAddr" + }, + { + "consts": [ + { "constname":"k_cchMaxString", "consttype":"int", "constval":"128" }, + { "constname":"k_cchMaxGenericString", "consttype":"int", "constval":"32" }, + { "constname":"k_cchMaxXboxPairwiseID", "consttype":"int", "constval":"33" }, + { "constname":"k_cbMaxGenericBytes", "consttype":"int", "constval":"32" } + ], + "fields": [ + { "fieldname":"m_eType", "fieldtype":"ESteamNetworkingIdentityType" }, + { "fieldname":"m_cbSize", "fieldtype":"int" }, + { "fieldname":"m_szUnknownRawString", "fieldtype":"char [128]" } + ], + "methods": [ + { + "methodname": "Clear", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_Clear", + "params": [], + "returntype": "void" + }, + { + "methodname": "IsInvalid", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_IsInvalid", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetSteamID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetSteamID", + "params": [ + { "paramname":"steamID", "paramtype":"CSteamID", "paramtype_flat":"uint64_steamid" } + ], + "returntype": "void" + }, + { + "methodname": "GetSteamID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetSteamID", + "params": [], + "returntype": "CSteamID", + "returntype_flat": "uint64_steamid" + }, + { + "methodname": "SetSteamID64", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetSteamID64", + "params": [ + { "paramname":"steamID", "paramtype":"uint64" } + ], + "returntype": "void" + }, + { + "methodname": "GetSteamID64", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetSteamID64", + "params": [], + "returntype": "uint64" + }, + { + "methodname": "SetXboxPairwiseID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetXboxPairwiseID", + "params": [ + { "paramname":"pszString", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetXboxPairwiseID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetXboxPairwiseID", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "SetPSNID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetPSNID", + "params": [ + { "paramname":"id", "paramtype":"uint64" } + ], + "returntype": "void" + }, + { + "methodname": "GetPSNID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetPSNID", + "params": [], + "returntype": "uint64" + }, + { + "methodname": "SetStadiaID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetStadiaID", + "params": [ + { "paramname":"id", "paramtype":"uint64" } + ], + "returntype": "void" + }, + { + "methodname": "GetStadiaID", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetStadiaID", + "params": [], + "returntype": "uint64" + }, + { + "methodname": "SetIPAddr", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetIPAddr", + "params": [ + { "paramname":"addr", "paramtype":"const SteamNetworkingIPAddr &" } + ], + "returntype": "void" + }, + { + "methodname": "GetIPAddr", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetIPAddr", + "params": [], + "returntype": "const SteamNetworkingIPAddr *" + }, + { + "methodname": "SetIPv4Addr", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetIPv4Addr", + "params": [ + { "paramname":"nIPv4", "paramtype":"uint32" }, + { "paramname":"nPort", "paramtype":"uint16" } + ], + "returntype": "void" + }, + { + "methodname": "GetIPv4", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetIPv4", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetFakeIPType", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetFakeIPType", + "params": [], + "returntype": "ESteamNetworkingFakeIPType" + }, + { + "methodname": "IsFakeIP", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_IsFakeIP", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetLocalHost", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetLocalHost", + "params": [], + "returntype": "void" + }, + { + "methodname": "IsLocalHost", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_IsLocalHost", + "params": [], + "returntype": "bool" + }, + { + "methodname": "SetGenericString", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetGenericString", + "params": [ + { "paramname":"pszString", "paramtype":"const char *" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGenericString", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetGenericString", + "params": [], + "returntype": "const char *" + }, + { + "methodname": "SetGenericBytes", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_SetGenericBytes", + "params": [ + { "paramname":"data", "paramtype":"const void *" }, + { "paramname":"cbLen", "paramtype":"uint32" } + ], + "returntype": "bool" + }, + { + "methodname": "GetGenericBytes", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_GetGenericBytes", + "params": [ + { "paramname":"cbLen", "paramtype":"int &" } + ], + "returntype": "const uint8 *" + }, + { + "methodname": "operator==", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_IsEqualTo", + "params": [ + { "paramname":"x", "paramtype":"const SteamNetworkingIdentity &" } + ], + "returntype": "bool" + }, + { + "methodname": "ToString", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_ToString", + "params": [ + { "paramname":"buf", "paramtype":"char *" }, + { "paramname":"cbBuf", "paramtype":"uint32" } + ], + "returntype": "void" + }, + { + "methodname": "ParseString", + "methodname_flat": "SteamAPI_SteamNetworkingIdentity_ParseString", + "params": [ + { "paramname":"pszStr", "paramtype":"const char *" } + ], + "returntype": "bool" + } + ], + "struct": "SteamNetworkingIdentity" + }, + { + "fields": [ + { "fieldname":"m_identityRemote", "fieldtype":"SteamNetworkingIdentity" }, + { "fieldname":"m_nUserData", "fieldtype":"int64" }, + { "fieldname":"m_hListenSocket", "fieldtype":"HSteamListenSocket" }, + { "fieldname":"m_addrRemote", "fieldtype":"SteamNetworkingIPAddr" }, + { "fieldname":"m__pad1", "fieldtype":"uint16" }, + { "fieldname":"m_idPOPRemote", "fieldtype":"SteamNetworkingPOPID" }, + { "fieldname":"m_idPOPRelay", "fieldtype":"SteamNetworkingPOPID" }, + { "fieldname":"m_eState", "fieldtype":"ESteamNetworkingConnectionState" }, + { "fieldname":"m_eEndReason", "fieldtype":"int" }, + { "fieldname":"m_szEndDebug", "fieldtype":"char [128]" }, + { "fieldname":"m_szConnectionDescription", "fieldtype":"char [128]" }, + { "fieldname":"m_nFlags", "fieldtype":"int" }, + { "fieldname":"reserved", "fieldtype":"uint32 [63]" } + ], + "struct": "SteamNetConnectionInfo_t" + }, + { + "fields": [ + { "fieldname":"m_eState", "fieldtype":"ESteamNetworkingConnectionState" }, + { "fieldname":"m_nPing", "fieldtype":"int" }, + { "fieldname":"m_flConnectionQualityLocal", "fieldtype":"float" }, + { "fieldname":"m_flConnectionQualityRemote", "fieldtype":"float" }, + { "fieldname":"m_flOutPacketsPerSec", "fieldtype":"float" }, + { "fieldname":"m_flOutBytesPerSec", "fieldtype":"float" }, + { "fieldname":"m_flInPacketsPerSec", "fieldtype":"float" }, + { "fieldname":"m_flInBytesPerSec", "fieldtype":"float" }, + { "fieldname":"m_nSendRateBytesPerSecond", "fieldtype":"int" }, + { "fieldname":"m_cbPendingUnreliable", "fieldtype":"int" }, + { "fieldname":"m_cbPendingReliable", "fieldtype":"int" }, + { "fieldname":"m_cbSentUnackedReliable", "fieldtype":"int" }, + { "fieldname":"m_usecQueueTime", "fieldtype":"SteamNetworkingMicroseconds" }, + { "fieldname":"reserved", "fieldtype":"uint32 [16]" } + ], + "struct": "SteamNetConnectionRealTimeStatus_t" + }, + { + "fields": [ + { "fieldname":"m_cbPendingUnreliable", "fieldtype":"int" }, + { "fieldname":"m_cbPendingReliable", "fieldtype":"int" }, + { "fieldname":"m_cbSentUnackedReliable", "fieldtype":"int" }, + { "fieldname":"_reservePad1", "fieldtype":"int" }, + { "fieldname":"m_usecQueueTime", "fieldtype":"SteamNetworkingMicroseconds" }, + { "fieldname":"reserved", "fieldtype":"uint32 [10]" } + ], + "struct": "SteamNetConnectionRealTimeLaneStatus_t" + }, + { + "fields": [ + { "fieldname":"m_pData", "fieldtype":"void *" }, + { "fieldname":"m_cbSize", "fieldtype":"int" }, + { "fieldname":"m_conn", "fieldtype":"HSteamNetConnection" }, + { "fieldname":"m_identityPeer", "fieldtype":"SteamNetworkingIdentity" }, + { "fieldname":"m_nConnUserData", "fieldtype":"int64" }, + { "fieldname":"m_usecTimeReceived", "fieldtype":"SteamNetworkingMicroseconds" }, + { "fieldname":"m_nMessageNumber", "fieldtype":"int64" }, + { "fieldname":"m_pfnFreeData", "fieldtype":"void (*)(SteamNetworkingMessage_t *)" }, + { "fieldname":"m_pfnRelease", "fieldtype":"void (*)(SteamNetworkingMessage_t *)" }, + { "fieldname":"m_nChannel", "fieldtype":"int" }, + { "fieldname":"m_nFlags", "fieldtype":"int" }, + { "fieldname":"m_nUserData", "fieldtype":"int64" }, + { "fieldname":"m_idxLane", "fieldtype":"uint16" }, + { "fieldname":"_pad1__", "fieldtype":"uint16" } + ], + "methods": [ + { + "methodname": "Release", + "methodname_flat": "SteamAPI_SteamNetworkingMessage_t_Release", + "params": [], + "returntype": "void" + } + ], + "struct": "SteamNetworkingMessage_t" + }, + { + "fields": [ + { "fieldname":"m_data", "fieldtype":"uint8 [512]" } + ], + "struct": "SteamNetworkPingLocation_t" + }, + { + "fields": [ + { "fieldname":"m_eValue", "fieldtype":"ESteamNetworkingConfigValue" }, + { "fieldname":"m_eDataType", "fieldtype":"ESteamNetworkingConfigDataType" }, + { "fieldname":"m_int64", "fieldtype":"int64_t" } + ], + "methods": [ + { + "methodname": "SetInt32", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetInt32", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"int32_t" } + ], + "returntype": "void" + }, + { + "methodname": "SetInt64", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetInt64", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"int64_t" } + ], + "returntype": "void" + }, + { + "methodname": "SetFloat", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetFloat", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"float" } + ], + "returntype": "void" + }, + { + "methodname": "SetPtr", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetPtr", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"void *" } + ], + "returntype": "void" + }, + { + "methodname": "SetString", + "methodname_flat": "SteamAPI_SteamNetworkingConfigValue_t_SetString", + "params": [ + { "paramname":"eVal", "paramtype":"ESteamNetworkingConfigValue" }, + { "paramname":"data", "paramtype":"const char *" } + ], + "returntype": "void" + } + ], + "struct": "SteamNetworkingConfigValue_t" + }, + { + "fields": [ + { "fieldname":"m_cbSize", "fieldtype":"int" }, + { "fieldname":"m_data", "fieldtype":"char [128]" } + ], + "methods": [ + { + "methodname": "Clear", + "methodname_flat": "SteamAPI_SteamDatagramHostedAddress_Clear", + "params": [], + "returntype": "void" + }, + { + "methodname": "GetPopID", + "methodname_flat": "SteamAPI_SteamDatagramHostedAddress_GetPopID", + "params": [], + "returntype": "SteamNetworkingPOPID" + }, + { + "methodname": "SetDevAddress", + "methodname_flat": "SteamAPI_SteamDatagramHostedAddress_SetDevAddress", + "params": [ + { "paramname":"nIP", "paramtype":"uint32" }, + { "paramname":"nPort", "paramtype":"uint16" }, + { "paramname":"popid", "paramtype":"SteamNetworkingPOPID" } + ], + "returntype": "void" + } + ], + "struct": "SteamDatagramHostedAddress" + }, + { + "fields": [ + { "fieldname":"m_identity", "fieldtype":"SteamNetworkingIdentity" }, + { "fieldname":"m_routing", "fieldtype":"SteamDatagramHostedAddress" }, + { "fieldname":"m_nAppID", "fieldtype":"AppId_t" }, + { "fieldname":"m_rtime", "fieldtype":"RTime32" }, + { "fieldname":"m_cbAppData", "fieldtype":"int" }, + { "fieldname":"m_appData", "fieldtype":"char [2048]" } + ], + "struct": "SteamDatagramGameCoordinatorServerLogin" + } + ], + "typedefs": [ + { "typedef":"uint8", "type":"unsigned char" }, + { "typedef":"int8", "type":"signed char" }, + { "typedef":"int16", "type":"short" }, + { "typedef":"uint16", "type":"unsigned short" }, + { "typedef":"int32", "type":"int" }, + { "typedef":"uint32", "type":"unsigned int" }, + { "typedef":"int64", "type":"long long" }, + { "typedef":"uint64", "type":"unsigned long long" }, + { "typedef":"lint64", "type":"long long" }, + { "typedef":"ulint64", "type":"unsigned long long" }, + { "typedef":"intp", "type":"long long" }, + { "typedef":"uintp", "type":"unsigned long long" }, + { "typedef":"AppId_t", "type":"unsigned int" }, + { "typedef":"DepotId_t", "type":"unsigned int" }, + { "typedef":"RTime32", "type":"unsigned int" }, + { "typedef":"SteamAPICall_t", "type":"unsigned long long" }, + { "typedef":"AccountID_t", "type":"unsigned int" }, + { "typedef":"PartyBeaconID_t", "type":"unsigned long long" }, + { "typedef":"HAuthTicket", "type":"unsigned int" }, + { "typedef":"PFNPreMinidumpCallback", "type":"void (*)(void *)" }, + { "typedef":"HSteamPipe", "type":"int" }, + { "typedef":"HSteamUser", "type":"int" }, + { "typedef":"SteamErrMsg", "type":"char [1024]" }, + { "typedef":"FriendsGroupID_t", "type":"short" }, + { "typedef":"HServerListRequest", "type":"void *" }, + { "typedef":"HServerQuery", "type":"int" }, + { "typedef":"UGCHandle_t", "type":"unsigned long long" }, + { "typedef":"PublishedFileUpdateHandle_t", "type":"unsigned long long" }, + { "typedef":"PublishedFileId_t", "type":"unsigned long long" }, + { "typedef":"UGCFileWriteStreamHandle_t", "type":"unsigned long long" }, + { "typedef":"SteamLeaderboard_t", "type":"unsigned long long" }, + { "typedef":"SteamLeaderboardEntries_t", "type":"unsigned long long" }, + { "typedef":"SNetSocket_t", "type":"unsigned int" }, + { "typedef":"SNetListenSocket_t", "type":"unsigned int" }, + { "typedef":"ScreenshotHandle", "type":"unsigned int" }, + { "typedef":"HTTPRequestHandle", "type":"unsigned int" }, + { "typedef":"HTTPCookieContainerHandle", "type":"unsigned int" }, + { "typedef":"InputHandle_t", "type":"unsigned long long" }, + { "typedef":"InputActionSetHandle_t", "type":"unsigned long long" }, + { "typedef":"InputDigitalActionHandle_t", "type":"unsigned long long" }, + { "typedef":"InputAnalogActionHandle_t", "type":"unsigned long long" }, + { "typedef":"SteamInputActionEventCallbackPointer", "type":"void (*)(SteamInputActionEvent_t *)" }, + { "typedef":"ControllerHandle_t", "type":"unsigned long long" }, + { "typedef":"ControllerActionSetHandle_t", "type":"unsigned long long" }, + { "typedef":"ControllerDigitalActionHandle_t", "type":"unsigned long long" }, + { "typedef":"ControllerAnalogActionHandle_t", "type":"unsigned long long" }, + { "typedef":"UGCQueryHandle_t", "type":"unsigned long long" }, + { "typedef":"UGCUpdateHandle_t", "type":"unsigned long long" }, + { "typedef":"HHTMLBrowser", "type":"unsigned int" }, + { "typedef":"SteamItemInstanceID_t", "type":"unsigned long long" }, + { "typedef":"SteamItemDef_t", "type":"int" }, + { "typedef":"SteamInventoryResult_t", "type":"int" }, + { "typedef":"SteamInventoryUpdateHandle_t", "type":"unsigned long long" }, + { "typedef":"RemotePlaySessionID_t", "type":"unsigned int" }, + { "typedef":"FnSteamNetConnectionStatusChanged", "type":"void (*)(SteamNetConnectionStatusChangedCallback_t *)" }, + { "typedef":"FnSteamNetAuthenticationStatusChanged", "type":"void (*)(SteamNetAuthenticationStatus_t *)" }, + { "typedef":"FnSteamRelayNetworkStatusChanged", "type":"void (*)(SteamRelayNetworkStatus_t *)" }, + { "typedef":"FnSteamNetworkingMessagesSessionRequest", "type":"void (*)(SteamNetworkingMessagesSessionRequest_t *)" }, + { "typedef":"FnSteamNetworkingMessagesSessionFailed", "type":"void (*)(SteamNetworkingMessagesSessionFailed_t *)" }, + { "typedef":"FnSteamNetworkingFakeIPResult", "type":"void (*)(SteamNetworkingFakeIPResult_t *)" }, + { "typedef":"HSteamNetConnection", "type":"unsigned int" }, + { "typedef":"HSteamListenSocket", "type":"unsigned int" }, + { "typedef":"HSteamNetPollGroup", "type":"unsigned int" }, + { "typedef":"SteamNetworkingErrMsg", "type":"char [1024]" }, + { "typedef":"SteamNetworkingPOPID", "type":"unsigned int" }, + { "typedef":"SteamNetworkingMicroseconds", "type":"long long" }, + { "typedef":"FSteamNetworkingSocketsDebugOutput", "type":"void (*)(ESteamNetworkingSocketsDebugOutputType, const char *)" } + ] } -,{ - "classname": "ISteamClient", - "methodname": "BReleaseSteamPipe", - "returntype": "bool", - "params": [ -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "ConnectToGlobalUser", - "returntype": "HSteamUser", - "params": [ -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "CreateLocalUser", - "returntype": "HSteamUser", - "params": [ -{ "paramname": "phSteamPipe" ,"paramtype": "HSteamPipe *"}, -{ "paramname": "eAccountType" ,"paramtype": "EAccountType"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "ReleaseUser", - "returntype": "void", - "params": [ -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "hUser" ,"paramtype": "HSteamUser"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUser", - "returntype": "class ISteamUser *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamGameServer", - "returntype": "class ISteamGameServer *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "SetLocalIPBinding", - "returntype": "void", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usPort" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamFriends", - "returntype": "class ISteamFriends *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUtils", - "returntype": "class ISteamUtils *", - "params": [ -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamMatchmaking", - "returntype": "class ISteamMatchmaking *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamMatchmakingServers", - "returntype": "class ISteamMatchmakingServers *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamGenericInterface", - "returntype": "void *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUserStats", - "returntype": "class ISteamUserStats *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamGameServerStats", - "returntype": "class ISteamGameServerStats *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamApps", - "returntype": "class ISteamApps *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamNetworking", - "returntype": "class ISteamNetworking *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamRemoteStorage", - "returntype": "class ISteamRemoteStorage *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamScreenshots", - "returntype": "class ISteamScreenshots *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetIPCCallCount", - "returntype": "uint32" -} -,{ - "classname": "ISteamClient", - "methodname": "SetWarningMessageHook", - "returntype": "void", - "params": [ -{ "paramname": "pFunction" ,"paramtype": "SteamAPIWarningMessageHook_t"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "BShutdownIfAllPipesClosed", - "returntype": "bool" -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamHTTP", - "returntype": "class ISteamHTTP *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUnifiedMessages", - "returntype": "class ISteamUnifiedMessages *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamController", - "returntype": "class ISteamController *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamUGC", - "returntype": "class ISteamUGC *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamAppList", - "returntype": "class ISteamAppList *", - "params": [ -{ "paramname": "hSteamUser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamMusic", - "returntype": "class ISteamMusic *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamMusicRemote", - "returntype": "class ISteamMusicRemote *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamHTMLSurface", - "returntype": "class ISteamHTMLSurface *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamInventory", - "returntype": "class ISteamInventory *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamClient", - "methodname": "GetISteamVideo", - "returntype": "class ISteamVideo *", - "params": [ -{ "paramname": "hSteamuser" ,"paramtype": "HSteamUser"}, -{ "paramname": "hSteamPipe" ,"paramtype": "HSteamPipe"}, -{ "paramname": "pchVersion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetHSteamUser", - "returntype": "HSteamUser" -} -,{ - "classname": "ISteamUser", - "methodname": "BLoggedOn", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "GetSteamID", - "returntype": "class CSteamID" -} -,{ - "classname": "ISteamUser", - "methodname": "InitiateGameConnection", - "returntype": "int", - "params": [ -{ "paramname": "pAuthBlob" ,"paramtype": "void *"}, -{ "paramname": "cbMaxAuthBlob" ,"paramtype": "int"}, -{ "paramname": "steamIDGameServer" ,"paramtype": "class CSteamID"}, -{ "paramname": "unIPServer" ,"paramtype": "uint32"}, -{ "paramname": "usPortServer" ,"paramtype": "uint16"}, -{ "paramname": "bSecure" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "TerminateGameConnection", - "returntype": "void", - "params": [ -{ "paramname": "unIPServer" ,"paramtype": "uint32"}, -{ "paramname": "usPortServer" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "TrackAppUsageEvent", - "returntype": "void", - "params": [ -{ "paramname": "gameID" ,"paramtype": "class CGameID"}, -{ "paramname": "eAppUsageEvent" ,"paramtype": "int"}, -{ "paramname": "pchExtraInfo" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetUserDataFolder", - "returntype": "bool", - "params": [ -{ "paramname": "pchBuffer" ,"paramtype": "char *"}, -{ "paramname": "cubBuffer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "StartVoiceRecording", - "returntype": "void" -} -,{ - "classname": "ISteamUser", - "methodname": "StopVoiceRecording", - "returntype": "void" -} -,{ - "classname": "ISteamUser", - "methodname": "GetAvailableVoice", - "returntype": "EVoiceResult", - "params": [ -{ "paramname": "pcbCompressed" ,"paramtype": "uint32 *"}, -{ "paramname": "pcbUncompressed" ,"paramtype": "uint32 *"}, -{ "paramname": "nUncompressedVoiceDesiredSampleRate" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetVoice", - "returntype": "EVoiceResult", - "params": [ -{ "paramname": "bWantCompressed" ,"paramtype": "bool"}, -{ "paramname": "pDestBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbDestBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "nBytesWritten" ,"paramtype": "uint32 *"}, -{ "paramname": "bWantUncompressed" ,"paramtype": "bool"}, -{ "paramname": "pUncompressedDestBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbUncompressedDestBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "nUncompressBytesWritten" ,"paramtype": "uint32 *"}, -{ "paramname": "nUncompressedVoiceDesiredSampleRate" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "DecompressVoice", - "returntype": "EVoiceResult", - "params": [ -{ "paramname": "pCompressed" ,"paramtype": "const void *"}, -{ "paramname": "cbCompressed" ,"paramtype": "uint32"}, -{ "paramname": "pDestBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbDestBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "nBytesWritten" ,"paramtype": "uint32 *"}, -{ "paramname": "nDesiredSampleRate" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetVoiceOptimalSampleRate", - "returntype": "uint32" -} -,{ - "classname": "ISteamUser", - "methodname": "GetAuthSessionTicket", - "returntype": "HAuthTicket", - "params": [ -{ "paramname": "pTicket" ,"paramtype": "void *"}, -{ "paramname": "cbMaxTicket" ,"paramtype": "int"}, -{ "paramname": "pcbTicket" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "BeginAuthSession", - "returntype": "EBeginAuthSessionResult", - "params": [ -{ "paramname": "pAuthTicket" ,"paramtype": "const void *"}, -{ "paramname": "cbAuthTicket" ,"paramtype": "int"}, -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "EndAuthSession", - "returntype": "void", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "CancelAuthTicket", - "returntype": "void", - "params": [ -{ "paramname": "hAuthTicket" ,"paramtype": "HAuthTicket"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "UserHasLicenseForApp", - "returntype": "EUserHasLicenseForAppResult", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"}, -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "BIsBehindNAT", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "AdvertiseGame", - "returntype": "void", - "params": [ -{ "paramname": "steamIDGameServer" ,"paramtype": "class CSteamID"}, -{ "paramname": "unIPServer" ,"paramtype": "uint32"}, -{ "paramname": "usPortServer" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "RequestEncryptedAppTicket", "callresult": "EncryptedAppTicketResponse_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pDataToInclude" ,"paramtype": "void *"}, -{ "paramname": "cbDataToInclude" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetEncryptedAppTicket", - "returntype": "bool", - "params": [ -{ "paramname": "pTicket" ,"paramtype": "void *"}, -{ "paramname": "cbMaxTicket" ,"paramtype": "int"}, -{ "paramname": "pcbTicket" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetGameBadgeLevel", - "returntype": "int", - "params": [ -{ "paramname": "nSeries" ,"paramtype": "int"}, -{ "paramname": "bFoil" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "GetPlayerSteamLevel", - "returntype": "int" -} -,{ - "classname": "ISteamUser", - "methodname": "RequestStoreAuthURL", "callresult": "StoreAuthURLResponse_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchRedirectURL" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUser", - "methodname": "BIsPhoneVerified", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "BIsTwoFactorEnabled", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "BIsPhoneIdentifying", - "returntype": "bool" -} -,{ - "classname": "ISteamUser", - "methodname": "BIsPhoneRequiringVerification", - "returntype": "bool" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetPersonaName", - "returntype": "const char *" -} -,{ - "classname": "ISteamFriends", - "methodname": "SetPersonaName", "callresult": "SetPersonaNameResponse_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchPersonaName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetPersonaState", - "returntype": "EPersonaState" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendCount", - "returntype": "int", - "params": [ -{ "paramname": "iFriendFlags" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "iFriend" ,"paramtype": "int"}, -{ "paramname": "iFriendFlags" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendRelationship", - "returntype": "EFriendRelationship", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendPersonaState", - "returntype": "EPersonaState", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendPersonaName", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendGamePlayed", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "pFriendGameInfo" ,"out_struct": " " ,"paramtype": "struct FriendGameInfo_t *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendPersonaNameHistory", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "iPersonaName" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendSteamLevel", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetPlayerNickname", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDPlayer" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupCount", - "returntype": "int" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupIDByIndex", - "returntype": "FriendsGroupID_t", - "params": [ -{ "paramname": "iFG" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupName", - "returntype": "const char *", - "params": [ -{ "paramname": "friendsGroupID" ,"paramtype": "FriendsGroupID_t"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupMembersCount", - "returntype": "int", - "params": [ -{ "paramname": "friendsGroupID" ,"paramtype": "FriendsGroupID_t"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendsGroupMembersList", - "returntype": "void", - "params": [ -{ "paramname": "friendsGroupID" ,"paramtype": "FriendsGroupID_t"}, -{ "paramname": "pOutSteamIDMembers" ,"out_array_call": "nMembersCount,GetFriendsGroupMembersCount,friendsGroupID" ,"paramtype": "class CSteamID *"}, -{ "paramname": "nMembersCount" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "HasFriend", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "iFriendFlags" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanCount", - "returntype": "int" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "iClan" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanName", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanTag", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanActivityCounts", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"}, -{ "paramname": "pnOnline" ,"paramtype": "int *"}, -{ "paramname": "pnInGame" ,"paramtype": "int *"}, -{ "paramname": "pnChatting" ,"paramtype": "int *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "DownloadClanActivityCounts", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "psteamIDClans" ,"array_count": "cClansToRequest" ,"paramtype": "class CSteamID *"}, -{ "paramname": "cClansToRequest" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendCountFromSource", - "returntype": "int", - "params": [ -{ "paramname": "steamIDSource" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendFromSourceByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDSource" ,"paramtype": "class CSteamID"}, -{ "paramname": "iFriend" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "IsUserInSource", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDSource" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "SetInGameVoiceSpeaking", - "returntype": "void", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "bSpeaking" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlay", - "returntype": "void", - "params": [ -{ "paramname": "pchDialog" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlayToUser", - "returntype": "void", - "params": [ -{ "paramname": "pchDialog" ,"paramtype": "const char *"}, -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlayToWebPage", - "returntype": "void", - "params": [ -{ "paramname": "pchURL" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlayToStore", - "returntype": "void", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "eFlag" ,"paramtype": "EOverlayToStoreFlag"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "SetPlayedWith", - "returntype": "void", - "params": [ -{ "paramname": "steamIDUserPlayedWith" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ActivateGameOverlayInviteDialog", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetSmallFriendAvatar", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetMediumFriendAvatar", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetLargeFriendAvatar", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "RequestUserInformation", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "bRequireNameOnly" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "RequestClanOfficerList", "callresult": "ClanOfficerListResponse_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanOwner", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanOfficerCount", - "returntype": "int", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanOfficerByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"}, -{ "paramname": "iOfficer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetUserRestrictions", - "returntype": "uint32" -} -,{ - "classname": "ISteamFriends", - "methodname": "SetRichPresence", - "returntype": "bool", - "params": [ -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ClearRichPresence", - "returntype": "void" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendRichPresence", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendRichPresenceKeyCount", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendRichPresenceKeyByIndex", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "iKey" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "RequestFriendRichPresence", - "returntype": "void", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "InviteUserToGame", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchConnectString" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetCoplayFriendCount", - "returntype": "int" -} -,{ - "classname": "ISteamFriends", - "methodname": "GetCoplayFriend", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "iCoplayFriend" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendCoplayTime", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendCoplayGame", - "returntype": "AppId_t", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "JoinClanChatRoom", "callresult": "JoinClanChatRoomCompletionResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "LeaveClanChatRoom", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanChatMemberCount", - "returntype": "int", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetChatMemberByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"}, -{ "paramname": "iUser" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "SendClanChatMessage", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetClanChatMessage", - "returntype": "int", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"}, -{ "paramname": "iMessage" ,"paramtype": "int"}, -{ "paramname": "prgchText" ,"paramtype": "void *"}, -{ "paramname": "cchTextMax" ,"paramtype": "int"}, -{ "paramname": "peChatEntryType" ,"paramtype": "EChatEntryType *"}, -{ "paramname": "psteamidChatter" ,"out_struct": " " ,"paramtype": "class CSteamID *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "IsClanChatAdmin", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "IsClanChatWindowOpenInSteam", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "OpenClanChatWindowInSteam", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "CloseClanChatWindowInSteam", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDClanChat" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "SetListenForFriendsMessages", - "returntype": "bool", - "params": [ -{ "paramname": "bInterceptEnabled" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "ReplyToFriendMessage", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchMsgToSend" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFriendMessage", - "returntype": "int", - "params": [ -{ "paramname": "steamIDFriend" ,"paramtype": "class CSteamID"}, -{ "paramname": "iMessageID" ,"paramtype": "int"}, -{ "paramname": "pvData" ,"paramtype": "void *"}, -{ "paramname": "cubData" ,"paramtype": "int"}, -{ "paramname": "peChatEntryType" ,"paramtype": "EChatEntryType *"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "GetFollowerCount", "callresult": "FriendsGetFollowerCount_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "IsFollowing", "callresult": "FriendsIsFollowing_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamFriends", - "methodname": "EnumerateFollowingList", "callresult": "FriendsEnumerateFollowingList_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unStartIndex" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetSecondsSinceAppActive", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetSecondsSinceComputerActive", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetConnectedUniverse", - "returntype": "EUniverse" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetServerRealTime", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetIPCountry", - "returntype": "const char *" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetImageSize", - "returntype": "bool", - "params": [ -{ "paramname": "iImage" ,"paramtype": "int"}, -{ "paramname": "pnWidth" ,"paramtype": "uint32 *"}, -{ "paramname": "pnHeight" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetImageRGBA", - "returntype": "bool", - "params": [ -{ "paramname": "iImage" ,"paramtype": "int"}, -{ "paramname": "pubDest" ,"paramtype": "uint8 *"}, -{ "paramname": "nDestBufferSize" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetCSERIPPort", - "returntype": "bool", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32 *"}, -{ "paramname": "usPort" ,"paramtype": "uint16 *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetCurrentBatteryPower", - "returntype": "uint8" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetAppID", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "SetOverlayNotificationPosition", - "returntype": "void", - "params": [ -{ "paramname": "eNotificationPosition" ,"paramtype": "ENotificationPosition"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "IsAPICallCompleted", - "returntype": "bool", - "params": [ -{ "paramname": "hSteamAPICall" ,"paramtype": "SteamAPICall_t"}, -{ "paramname": "pbFailed" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetAPICallFailureReason", - "returntype": "ESteamAPICallFailure", - "params": [ -{ "paramname": "hSteamAPICall" ,"paramtype": "SteamAPICall_t"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetAPICallResult", - "returntype": "bool", - "params": [ -{ "paramname": "hSteamAPICall" ,"paramtype": "SteamAPICall_t"}, -{ "paramname": "pCallback" ,"paramtype": "void *"}, -{ "paramname": "cubCallback" ,"paramtype": "int"}, -{ "paramname": "iCallbackExpected" ,"paramtype": "int"}, -{ "paramname": "pbFailed" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetIPCCallCount", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "SetWarningMessageHook", - "returntype": "void", - "params": [ -{ "paramname": "pFunction" ,"paramtype": "SteamAPIWarningMessageHook_t"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "IsOverlayEnabled", - "returntype": "bool" -} -,{ - "classname": "ISteamUtils", - "methodname": "BOverlayNeedsPresent", - "returntype": "bool" -} -,{ - "classname": "ISteamUtils", - "methodname": "CheckFileSignature", "callresult": "CheckFileSignature_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "szFileName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "ShowGamepadTextInput", - "returntype": "bool", - "params": [ -{ "paramname": "eInputMode" ,"paramtype": "EGamepadTextInputMode"}, -{ "paramname": "eLineInputMode" ,"paramtype": "EGamepadTextInputLineMode"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"}, -{ "paramname": "unCharMax" ,"paramtype": "uint32"}, -{ "paramname": "pchExistingText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetEnteredGamepadTextLength", - "returntype": "uint32" -} -,{ - "classname": "ISteamUtils", - "methodname": "GetEnteredGamepadTextInput", - "returntype": "bool", - "params": [ -{ "paramname": "pchText" ,"paramtype": "char *"}, -{ "paramname": "cchText" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "GetSteamUILanguage", - "returntype": "const char *" -} -,{ - "classname": "ISteamUtils", - "methodname": "IsSteamRunningInVR", - "returntype": "bool" -} -,{ - "classname": "ISteamUtils", - "methodname": "SetOverlayNotificationInset", - "returntype": "void", - "params": [ -{ "paramname": "nHorizontalInset" ,"paramtype": "int"}, -{ "paramname": "nVerticalInset" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUtils", - "methodname": "IsSteamInBigPictureMode", - "returntype": "bool" -} -,{ - "classname": "ISteamUtils", - "methodname": "StartVRDashboard", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetFavoriteGameCount", - "returntype": "int" -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetFavoriteGame", - "returntype": "bool", - "params": [ -{ "paramname": "iGame" ,"paramtype": "int"}, -{ "paramname": "pnAppID" ,"paramtype": "AppId_t *"}, -{ "paramname": "pnIP" ,"paramtype": "uint32 *"}, -{ "paramname": "pnConnPort" ,"paramtype": "uint16 *"}, -{ "paramname": "pnQueryPort" ,"paramtype": "uint16 *"}, -{ "paramname": "punFlags" ,"paramtype": "uint32 *"}, -{ "paramname": "pRTime32LastPlayedOnServer" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddFavoriteGame", - "returntype": "int", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "nIP" ,"paramtype": "uint32"}, -{ "paramname": "nConnPort" ,"paramtype": "uint16"}, -{ "paramname": "nQueryPort" ,"paramtype": "uint16"}, -{ "paramname": "unFlags" ,"paramtype": "uint32"}, -{ "paramname": "rTime32LastPlayedOnServer" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "RemoveFavoriteGame", - "returntype": "bool", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "nIP" ,"paramtype": "uint32"}, -{ "paramname": "nConnPort" ,"paramtype": "uint16"}, -{ "paramname": "nQueryPort" ,"paramtype": "uint16"}, -{ "paramname": "unFlags" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "RequestLobbyList", "callresult": "LobbyMatchList_t", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListStringFilter", - "returntype": "void", - "params": [ -{ "paramname": "pchKeyToMatch" ,"paramtype": "const char *"}, -{ "paramname": "pchValueToMatch" ,"paramtype": "const char *"}, -{ "paramname": "eComparisonType" ,"paramtype": "ELobbyComparison"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListNumericalFilter", - "returntype": "void", - "params": [ -{ "paramname": "pchKeyToMatch" ,"paramtype": "const char *"}, -{ "paramname": "nValueToMatch" ,"paramtype": "int"}, -{ "paramname": "eComparisonType" ,"paramtype": "ELobbyComparison"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListNearValueFilter", - "returntype": "void", - "params": [ -{ "paramname": "pchKeyToMatch" ,"paramtype": "const char *"}, -{ "paramname": "nValueToBeCloseTo" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListFilterSlotsAvailable", - "returntype": "void", - "params": [ -{ "paramname": "nSlotsAvailable" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListDistanceFilter", - "returntype": "void", - "params": [ -{ "paramname": "eLobbyDistanceFilter" ,"paramtype": "ELobbyDistanceFilter"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListResultCountFilter", - "returntype": "void", - "params": [ -{ "paramname": "cMaxResults" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "AddRequestLobbyListCompatibleMembersFilter", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "iLobby" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "CreateLobby", "callresult": "LobbyCreated_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "eLobbyType" ,"paramtype": "ELobbyType"}, -{ "paramname": "cMaxMembers" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "JoinLobby", "callresult": "LobbyEnter_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "LeaveLobby", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "InviteUserToLobby", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDInvitee" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetNumLobbyMembers", - "returntype": "int", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyMemberByIndex", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "iMember" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyData", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyData", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyDataCount", - "returntype": "int", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyDataByIndex", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "iLobbyData" ,"paramtype": "int"}, -{ "paramname": "pchKey" ,"paramtype": "char *"}, -{ "paramname": "cchKeyBufferSize" ,"paramtype": "int"}, -{ "paramname": "pchValue" ,"paramtype": "char *"}, -{ "paramname": "cchValueBufferSize" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "DeleteLobbyData", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyMemberData", - "returntype": "const char *", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyMemberData", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SendLobbyChatMsg", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "pvMsgBody" ,"paramtype": "const void *"}, -{ "paramname": "cubMsgBody" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyChatEntry", - "returntype": "int", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "iChatID" ,"paramtype": "int"}, -{ "paramname": "pSteamIDUser" ,"out_struct": " " ,"paramtype": "class CSteamID *"}, -{ "paramname": "pvData" ,"paramtype": "void *"}, -{ "paramname": "cubData" ,"paramtype": "int"}, -{ "paramname": "peChatEntryType" ,"paramtype": "EChatEntryType *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "RequestLobbyData", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyGameServer", - "returntype": "void", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "unGameServerIP" ,"paramtype": "uint32"}, -{ "paramname": "unGameServerPort" ,"paramtype": "uint16"}, -{ "paramname": "steamIDGameServer" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyGameServer", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "punGameServerIP" ,"paramtype": "uint32 *"}, -{ "paramname": "punGameServerPort" ,"paramtype": "uint16 *"}, -{ "paramname": "psteamIDGameServer" ,"out_struct": " " ,"paramtype": "class CSteamID *"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyMemberLimit", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "cMaxMembers" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyMemberLimit", - "returntype": "int", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyType", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "eLobbyType" ,"paramtype": "ELobbyType"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyJoinable", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "bLobbyJoinable" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "GetLobbyOwner", - "returntype": "class CSteamID", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLobbyOwner", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDNewOwner" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmaking", - "methodname": "SetLinkedLobby", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDLobby" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDLobbyDependent" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamMatchmakingServerListResponse", - "methodname": "ServerResponded", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "iServer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmakingServerListResponse", - "methodname": "ServerFailedToRespond", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "iServer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmakingServerListResponse", - "methodname": "RefreshComplete", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "response" ,"paramtype": "EMatchMakingServerResponse"} - ] -} -,{ - "classname": "ISteamMatchmakingPingResponse", - "methodname": "ServerResponded", - "returntype": "void", - "params": [ -{ "paramname": "server" ,"paramtype": "class gameserveritem_t &"} - ] -} -,{ - "classname": "ISteamMatchmakingPingResponse", - "methodname": "ServerFailedToRespond", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingPlayersResponse", - "methodname": "AddPlayerToList", - "returntype": "void", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "nScore" ,"paramtype": "int"}, -{ "paramname": "flTimePlayed" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamMatchmakingPlayersResponse", - "methodname": "PlayersFailedToRespond", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingPlayersResponse", - "methodname": "PlayersRefreshComplete", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingRulesResponse", - "methodname": "RulesResponded", - "returntype": "void", - "params": [ -{ "paramname": "pchRule" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMatchmakingRulesResponse", - "methodname": "RulesFailedToRespond", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingRulesResponse", - "methodname": "RulesRefreshComplete", - "returntype": "void" -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestInternetServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestLANServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestFriendsServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestFavoritesServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestHistoryServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RequestSpectatorServerList", - "returntype": "HServerListRequest", - "params": [ -{ "paramname": "iApp" ,"paramtype": "AppId_t"}, -{ "paramname": "ppchFilters" ,"array_count": "nFilters" ,"paramtype": "struct MatchMakingKeyValuePair_t **"}, -{ "paramname": "nFilters" ,"paramtype": "uint32"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingServerListResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "ReleaseRequest", - "returntype": "void", - "params": [ -{ "paramname": "hServerListRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "GetServerDetails", - "returntype": "class gameserveritem_t *", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "iServer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "CancelQuery", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RefreshQuery", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "IsRefreshing", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "GetServerCount", - "returntype": "int", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "RefreshServer", - "returntype": "void", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HServerListRequest"}, -{ "paramname": "iServer" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "PingServer", - "returntype": "HServerQuery", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usPort" ,"paramtype": "uint16"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingPingResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "PlayerDetails", - "returntype": "HServerQuery", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usPort" ,"paramtype": "uint16"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingPlayersResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "ServerRules", - "returntype": "HServerQuery", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usPort" ,"paramtype": "uint16"}, -{ "paramname": "pRequestServersResponse" ,"paramtype": "class ISteamMatchmakingRulesResponse *"} - ] -} -,{ - "classname": "ISteamMatchmakingServers", - "methodname": "CancelServerQuery", - "returntype": "void", - "params": [ -{ "paramname": "hServerQuery" ,"paramtype": "HServerQuery"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWrite", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "pvData" ,"paramtype": "const void *"}, -{ "paramname": "cubData" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileRead", - "returntype": "int32", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "pvData" ,"paramtype": "void *"}, -{ "paramname": "cubDataToRead" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteAsync", "callresult": "RemoteStorageFileWriteAsyncComplete_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "pvData" ,"paramtype": "const void *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileReadAsync", "callresult": "RemoteStorageFileReadAsyncComplete_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "nOffset" ,"paramtype": "uint32"}, -{ "paramname": "cubToRead" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileReadAsyncComplete", - "returntype": "bool", - "params": [ -{ "paramname": "hReadCall" ,"paramtype": "SteamAPICall_t"}, -{ "paramname": "pvBuffer" ,"paramtype": "void *"}, -{ "paramname": "cubToRead" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileForget", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileDelete", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileShare", "callresult": "RemoteStorageFileShareResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "SetSyncPlatforms", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "eRemoteStoragePlatform" ,"paramtype": "ERemoteStoragePlatform"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteStreamOpen", - "returntype": "UGCFileWriteStreamHandle_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteStreamWriteChunk", - "returntype": "bool", - "params": [ -{ "paramname": "writeHandle" ,"paramtype": "UGCFileWriteStreamHandle_t"}, -{ "paramname": "pvData" ,"paramtype": "const void *"}, -{ "paramname": "cubData" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteStreamClose", - "returntype": "bool", - "params": [ -{ "paramname": "writeHandle" ,"paramtype": "UGCFileWriteStreamHandle_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileWriteStreamCancel", - "returntype": "bool", - "params": [ -{ "paramname": "writeHandle" ,"paramtype": "UGCFileWriteStreamHandle_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FileExists", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "FilePersisted", - "returntype": "bool", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetFileSize", - "returntype": "int32", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetFileTimestamp", - "returntype": "int64", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetSyncPlatforms", - "returntype": "ERemoteStoragePlatform", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetFileCount", - "returntype": "int32" -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetFileNameAndSize", - "returntype": "const char *", - "params": [ -{ "paramname": "iFile" ,"paramtype": "int"}, -{ "paramname": "pnFileSizeInBytes" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetQuota", - "returntype": "bool", - "params": [ -{ "paramname": "pnTotalBytes" ,"paramtype": "uint64 *"}, -{ "paramname": "puAvailableBytes" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "IsCloudEnabledForAccount", - "returntype": "bool" -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "IsCloudEnabledForApp", - "returntype": "bool" -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "SetCloudEnabledForApp", - "returntype": "void", - "params": [ -{ "paramname": "bEnabled" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UGCDownload", "callresult": "RemoteStorageDownloadUGCResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "unPriority" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetUGCDownloadProgress", - "returntype": "bool", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "pnBytesDownloaded" ,"paramtype": "int32 *"}, -{ "paramname": "pnBytesExpected" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetUGCDetails", - "returntype": "bool", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "pnAppID" ,"paramtype": "AppId_t *"}, -{ "paramname": "ppchName" ,"out_string": " " ,"paramtype": "char **"}, -{ "paramname": "pnFileSizeInBytes" ,"paramtype": "int32 *"}, -{ "paramname": "pSteamIDOwner" ,"out_struct": " " ,"paramtype": "class CSteamID *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UGCRead", - "returntype": "int32", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "pvData" ,"paramtype": "void *"}, -{ "paramname": "cubDataToRead" ,"paramtype": "int32"}, -{ "paramname": "cOffset" ,"paramtype": "uint32"}, -{ "paramname": "eAction" ,"paramtype": "EUGCReadAction"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetCachedUGCCount", - "returntype": "int32" -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetCachedUGCHandle", - "returntype": "UGCHandle_t", - "params": [ -{ "paramname": "iCachedContent" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "PublishWorkshopFile", "callresult": "RemoteStoragePublishFileProgress_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchFile" ,"paramtype": "const char *"}, -{ "paramname": "pchPreviewFile" ,"paramtype": "const char *"}, -{ "paramname": "nConsumerAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "pchTitle" ,"paramtype": "const char *"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"}, -{ "paramname": "eVisibility" ,"paramtype": "ERemoteStoragePublishedFileVisibility"}, -{ "paramname": "pTags" ,"paramtype": "struct SteamParamStringArray_t *"}, -{ "paramname": "eWorkshopFileType" ,"paramtype": "EWorkshopFileType"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "CreatePublishedFileUpdateRequest", - "returntype": "PublishedFileUpdateHandle_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileFile", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFilePreviewFile", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchPreviewFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileTitle", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchTitle" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileDescription", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileVisibility", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "eVisibility" ,"paramtype": "ERemoteStoragePublishedFileVisibility"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileTags", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pTags" ,"paramtype": "struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "CommitPublishedFileUpdate", "callresult": "RemoteStorageUpdatePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetPublishedFileDetails", "callresult": "RemoteStorageGetPublishedFileDetailsResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "unMaxSecondsOld" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "DeletePublishedFile", "callresult": "RemoteStorageDeletePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumerateUserPublishedFiles", "callresult": "RemoteStorageEnumerateUserPublishedFilesResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unStartIndex" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "SubscribePublishedFile", "callresult": "RemoteStorageSubscribePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumerateUserSubscribedFiles", "callresult": "RemoteStorageEnumerateUserSubscribedFilesResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unStartIndex" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UnsubscribePublishedFile", "callresult": "RemoteStorageUnsubscribePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdatePublishedFileSetChangeDescription", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "PublishedFileUpdateHandle_t"}, -{ "paramname": "pchChangeDescription" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetPublishedItemVoteDetails", "callresult": "RemoteStorageGetPublishedItemVoteDetailsResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UpdateUserPublishedItemVote", "callresult": "RemoteStorageUpdateUserPublishedItemVoteResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "bVoteUp" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "GetUserPublishedItemVoteDetails", "callresult": "RemoteStorageGetPublishedItemVoteDetailsResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumerateUserSharedWorkshopFiles", "callresult": "RemoteStorageEnumerateUserPublishedFilesResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamId" ,"paramtype": "class CSteamID"}, -{ "paramname": "unStartIndex" ,"paramtype": "uint32"}, -{ "paramname": "pRequiredTags" ,"paramtype": "struct SteamParamStringArray_t *"}, -{ "paramname": "pExcludedTags" ,"paramtype": "struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "PublishVideo", "callresult": "RemoteStoragePublishFileProgress_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "eVideoProvider" ,"paramtype": "EWorkshopVideoProvider"}, -{ "paramname": "pchVideoAccount" ,"paramtype": "const char *"}, -{ "paramname": "pchVideoIdentifier" ,"paramtype": "const char *"}, -{ "paramname": "pchPreviewFile" ,"paramtype": "const char *"}, -{ "paramname": "nConsumerAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "pchTitle" ,"paramtype": "const char *"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"}, -{ "paramname": "eVisibility" ,"paramtype": "ERemoteStoragePublishedFileVisibility"}, -{ "paramname": "pTags" ,"paramtype": "struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "SetUserPublishedFileAction", "callresult": "RemoteStorageSetUserPublishedFileActionResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "unPublishedFileId" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "eAction" ,"paramtype": "EWorkshopFileAction"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumeratePublishedFilesByUserAction", "callresult": "RemoteStorageEnumeratePublishedFilesByUserActionResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "eAction" ,"paramtype": "EWorkshopFileAction"}, -{ "paramname": "unStartIndex" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "EnumeratePublishedWorkshopFiles", "callresult": "RemoteStorageEnumerateWorkshopFilesResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "eEnumerationType" ,"paramtype": "EWorkshopEnumerationType"}, -{ "paramname": "unStartIndex" ,"paramtype": "uint32"}, -{ "paramname": "unCount" ,"paramtype": "uint32"}, -{ "paramname": "unDays" ,"paramtype": "uint32"}, -{ "paramname": "pTags" ,"paramtype": "struct SteamParamStringArray_t *"}, -{ "paramname": "pUserTags" ,"paramtype": "struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamRemoteStorage", - "methodname": "UGCDownloadToLocation", "callresult": "RemoteStorageDownloadUGCResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hContent" ,"paramtype": "UGCHandle_t"}, -{ "paramname": "pchLocation" ,"paramtype": "const char *"}, -{ "paramname": "unPriority" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "RequestCurrentStats", "callback": "UserStatsReceived_t", - "returntype": "bool" -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "SetStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "nData" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "SetStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "fData" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "UpdateAvgRateStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "flCountThisSession" ,"paramtype": "float"}, -{ "paramname": "dSessionLength" ,"paramtype": "double"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "SetAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "ClearAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementAndUnlockTime", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"}, -{ "paramname": "punUnlockTime" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "StoreStats", - "returntype": "bool" -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementIcon", - "returntype": "int", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementDisplayAttribute", - "returntype": "const char *", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "IndicateAchievementProgress", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "nCurProgress" ,"paramtype": "uint32"}, -{ "paramname": "nMaxProgress" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetNumAchievements", - "returntype": "uint32" -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementName", - "returntype": "const char *", - "params": [ -{ "paramname": "iAchievement" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "RequestUserStats", "callresult": "UserStatsReceived_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetUserAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetUserAchievementAndUnlockTime", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"}, -{ "paramname": "punUnlockTime" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "ResetAllStats", - "returntype": "bool", - "params": [ -{ "paramname": "bAchievementsToo" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "FindOrCreateLeaderboard", "callresult": "LeaderboardFindResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchLeaderboardName" ,"paramtype": "const char *"}, -{ "paramname": "eLeaderboardSortMethod" ,"paramtype": "ELeaderboardSortMethod"}, -{ "paramname": "eLeaderboardDisplayType" ,"paramtype": "ELeaderboardDisplayType"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "FindLeaderboard", "callresult": "LeaderboardFindResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchLeaderboardName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetLeaderboardName", - "returntype": "const char *", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetLeaderboardEntryCount", - "returntype": "int", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetLeaderboardSortMethod", - "returntype": "ELeaderboardSortMethod", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetLeaderboardDisplayType", - "returntype": "ELeaderboardDisplayType", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "DownloadLeaderboardEntries", "callresult": "LeaderboardScoresDownloaded_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"}, -{ "paramname": "eLeaderboardDataRequest" ,"paramtype": "ELeaderboardDataRequest"}, -{ "paramname": "nRangeStart" ,"paramtype": "int"}, -{ "paramname": "nRangeEnd" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "DownloadLeaderboardEntriesForUsers", "callresult": "LeaderboardScoresDownloaded_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"}, -{ "paramname": "prgUsers" ,"array_count": "cUsers" ,"desc": "Array of users to retrieve" ,"paramtype": "class CSteamID *"}, -{ "paramname": "cUsers" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetDownloadedLeaderboardEntry", - "returntype": "bool", - "params": [ -{ "paramname": "hSteamLeaderboardEntries" ,"paramtype": "SteamLeaderboardEntries_t"}, -{ "paramname": "index" ,"paramtype": "int"}, -{ "paramname": "pLeaderboardEntry" ,"paramtype": "struct LeaderboardEntry_t *"}, -{ "paramname": "pDetails" ,"paramtype": "int32 *"}, -{ "paramname": "cDetailsMax" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "UploadLeaderboardScore", "callresult": "LeaderboardScoreUploaded_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"}, -{ "paramname": "eLeaderboardUploadScoreMethod" ,"paramtype": "ELeaderboardUploadScoreMethod"}, -{ "paramname": "nScore" ,"paramtype": "int32"}, -{ "paramname": "pScoreDetails" ,"paramtype": "const int32 *"}, -{ "paramname": "cScoreDetailsCount" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "AttachLeaderboardUGC", "callresult": "LeaderboardUGCSet_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "hSteamLeaderboard" ,"paramtype": "SteamLeaderboard_t"}, -{ "paramname": "hUGC" ,"paramtype": "UGCHandle_t"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetNumberOfCurrentPlayers", "callresult": "NumberOfCurrentPlayers_t", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamUserStats", - "methodname": "RequestGlobalAchievementPercentages", "callresult": "GlobalAchievementPercentagesReady_t", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetMostAchievedAchievementInfo", - "returntype": "int", - "params": [ -{ "paramname": "pchName" ,"paramtype": "char *"}, -{ "paramname": "unNameBufLen" ,"paramtype": "uint32"}, -{ "paramname": "pflPercent" ,"paramtype": "float *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetNextMostAchievedAchievementInfo", - "returntype": "int", - "params": [ -{ "paramname": "iIteratorPrevious" ,"paramtype": "int"}, -{ "paramname": "pchName" ,"paramtype": "char *"}, -{ "paramname": "unNameBufLen" ,"paramtype": "uint32"}, -{ "paramname": "pflPercent" ,"paramtype": "float *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetAchievementAchievedPercent", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pflPercent" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "RequestGlobalStats", "callresult": "GlobalStatsReceived_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nHistoryDays" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetGlobalStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchStatName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "int64 *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetGlobalStat", - "returntype": "bool", - "params": [ -{ "paramname": "pchStatName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "double *"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetGlobalStatHistory", - "returntype": "int32", - "params": [ -{ "paramname": "pchStatName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"array_count": "cubData" ,"paramtype": "int64 *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUserStats", - "methodname": "GetGlobalStatHistory", - "returntype": "int32", - "params": [ -{ "paramname": "pchStatName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"array_count": "cubData" ,"paramtype": "double *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "BIsSubscribed", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "BIsLowViolence", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "BIsCybercafe", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "BIsVACBanned", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "GetCurrentGameLanguage", - "returntype": "const char *" -} -,{ - "classname": "ISteamApps", - "methodname": "GetAvailableGameLanguages", - "returntype": "const char *" -} -,{ - "classname": "ISteamApps", - "methodname": "BIsSubscribedApp", - "returntype": "bool", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "BIsDlcInstalled", - "returntype": "bool", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetEarliestPurchaseUnixTime", - "returntype": "uint32", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "BIsSubscribedFromFreeWeekend", - "returntype": "bool" -} -,{ - "classname": "ISteamApps", - "methodname": "GetDLCCount", - "returntype": "int" -} -,{ - "classname": "ISteamApps", - "methodname": "BGetDLCDataByIndex", - "returntype": "bool", - "params": [ -{ "paramname": "iDLC" ,"paramtype": "int"}, -{ "paramname": "pAppID" ,"paramtype": "AppId_t *"}, -{ "paramname": "pbAvailable" ,"paramtype": "bool *"}, -{ "paramname": "pchName" ,"paramtype": "char *"}, -{ "paramname": "cchNameBufferSize" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "InstallDLC", - "returntype": "void", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "UninstallDLC", - "returntype": "void", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "RequestAppProofOfPurchaseKey", - "returntype": "void", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetCurrentBetaName", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "char *"}, -{ "paramname": "cchNameBufferSize" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "MarkContentCorrupt", - "returntype": "bool", - "params": [ -{ "paramname": "bMissingFilesOnly" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetInstalledDepots", - "returntype": "uint32", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"}, -{ "paramname": "pvecDepots" ,"paramtype": "DepotId_t *"}, -{ "paramname": "cMaxDepots" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetAppInstallDir", - "returntype": "uint32", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"}, -{ "paramname": "pchFolder" ,"paramtype": "char *"}, -{ "paramname": "cchFolderBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "BIsAppInstalled", - "returntype": "bool", - "params": [ -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetAppOwner", - "returntype": "class CSteamID" -} -,{ - "classname": "ISteamApps", - "methodname": "GetLaunchQueryParam", - "returntype": "const char *", - "params": [ -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetDlcDownloadProgress", - "returntype": "bool", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "punBytesDownloaded" ,"paramtype": "uint64 *"}, -{ "paramname": "punBytesTotal" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamApps", - "methodname": "GetAppBuildId", - "returntype": "int" -} -,{ - "classname": "ISteamApps", - "methodname": "RequestAllProofOfPurchaseKeys", - "returntype": "void" -} -,{ - "classname": "ISteamApps", - "methodname": "GetFileDetails", "callresult": "FileDetailsResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pszFileName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "SendP2PPacket", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"}, -{ "paramname": "pubData" ,"paramtype": "const void *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"}, -{ "paramname": "eP2PSendType" ,"paramtype": "EP2PSend"}, -{ "paramname": "nChannel" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "IsP2PPacketAvailable", - "returntype": "bool", - "params": [ -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"}, -{ "paramname": "nChannel" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "ReadP2PPacket", - "returntype": "bool", - "params": [ -{ "paramname": "pubDest" ,"paramtype": "void *"}, -{ "paramname": "cubDest" ,"paramtype": "uint32"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"}, -{ "paramname": "psteamIDRemote" ,"paramtype": "class CSteamID *"}, -{ "paramname": "nChannel" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "AcceptP2PSessionWithUser", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CloseP2PSessionWithUser", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CloseP2PChannelWithUser", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"}, -{ "paramname": "nChannel" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetP2PSessionState", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDRemote" ,"paramtype": "class CSteamID"}, -{ "paramname": "pConnectionState" ,"paramtype": "struct P2PSessionState_t *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "AllowP2PPacketRelay", - "returntype": "bool", - "params": [ -{ "paramname": "bAllow" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CreateListenSocket", - "returntype": "SNetListenSocket_t", - "params": [ -{ "paramname": "nVirtualP2PPort" ,"paramtype": "int"}, -{ "paramname": "nIP" ,"paramtype": "uint32"}, -{ "paramname": "nPort" ,"paramtype": "uint16"}, -{ "paramname": "bAllowUseOfPacketRelay" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CreateP2PConnectionSocket", - "returntype": "SNetSocket_t", - "params": [ -{ "paramname": "steamIDTarget" ,"paramtype": "class CSteamID"}, -{ "paramname": "nVirtualPort" ,"paramtype": "int"}, -{ "paramname": "nTimeoutSec" ,"paramtype": "int"}, -{ "paramname": "bAllowUseOfPacketRelay" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "CreateConnectionSocket", - "returntype": "SNetSocket_t", - "params": [ -{ "paramname": "nIP" ,"paramtype": "uint32"}, -{ "paramname": "nPort" ,"paramtype": "uint16"}, -{ "paramname": "nTimeoutSec" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "DestroySocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "bNotifyRemoteEnd" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "DestroyListenSocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetListenSocket_t"}, -{ "paramname": "bNotifyRemoteEnd" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "SendDataOnSocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "pubData" ,"paramtype": "void *"}, -{ "paramname": "cubData" ,"paramtype": "uint32"}, -{ "paramname": "bReliable" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "IsDataAvailableOnSocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "RetrieveDataFromSocket", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "pubDest" ,"paramtype": "void *"}, -{ "paramname": "cubDest" ,"paramtype": "uint32"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "IsDataAvailable", - "returntype": "bool", - "params": [ -{ "paramname": "hListenSocket" ,"paramtype": "SNetListenSocket_t"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"}, -{ "paramname": "phSocket" ,"paramtype": "SNetSocket_t *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "RetrieveData", - "returntype": "bool", - "params": [ -{ "paramname": "hListenSocket" ,"paramtype": "SNetListenSocket_t"}, -{ "paramname": "pubDest" ,"paramtype": "void *"}, -{ "paramname": "cubDest" ,"paramtype": "uint32"}, -{ "paramname": "pcubMsgSize" ,"paramtype": "uint32 *"}, -{ "paramname": "phSocket" ,"paramtype": "SNetSocket_t *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetSocketInfo", - "returntype": "bool", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"}, -{ "paramname": "pSteamIDRemote" ,"paramtype": "class CSteamID *"}, -{ "paramname": "peSocketStatus" ,"paramtype": "int *"}, -{ "paramname": "punIPRemote" ,"paramtype": "uint32 *"}, -{ "paramname": "punPortRemote" ,"paramtype": "uint16 *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetListenSocketInfo", - "returntype": "bool", - "params": [ -{ "paramname": "hListenSocket" ,"paramtype": "SNetListenSocket_t"}, -{ "paramname": "pnIP" ,"paramtype": "uint32 *"}, -{ "paramname": "pnPort" ,"paramtype": "uint16 *"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetSocketConnectionType", - "returntype": "ESNetSocketConnectionType", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"} - ] -} -,{ - "classname": "ISteamNetworking", - "methodname": "GetMaxPacketSize", - "returntype": "int", - "params": [ -{ "paramname": "hSocket" ,"paramtype": "SNetSocket_t"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "WriteScreenshot", - "returntype": "ScreenshotHandle", - "params": [ -{ "paramname": "pubRGB" ,"paramtype": "void *"}, -{ "paramname": "cubRGB" ,"paramtype": "uint32"}, -{ "paramname": "nWidth" ,"paramtype": "int"}, -{ "paramname": "nHeight" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "AddScreenshotToLibrary", - "returntype": "ScreenshotHandle", - "params": [ -{ "paramname": "pchFilename" ,"paramtype": "const char *"}, -{ "paramname": "pchThumbnailFilename" ,"paramtype": "const char *"}, -{ "paramname": "nWidth" ,"paramtype": "int"}, -{ "paramname": "nHeight" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "TriggerScreenshot", - "returntype": "void" -} -,{ - "classname": "ISteamScreenshots", - "methodname": "HookScreenshots", - "returntype": "void", - "params": [ -{ "paramname": "bHook" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "SetLocation", - "returntype": "bool", - "params": [ -{ "paramname": "hScreenshot" ,"paramtype": "ScreenshotHandle"}, -{ "paramname": "pchLocation" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "TagUser", - "returntype": "bool", - "params": [ -{ "paramname": "hScreenshot" ,"paramtype": "ScreenshotHandle"}, -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "TagPublishedFile", - "returntype": "bool", - "params": [ -{ "paramname": "hScreenshot" ,"paramtype": "ScreenshotHandle"}, -{ "paramname": "unPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamScreenshots", - "methodname": "IsScreenshotsHooked", - "returntype": "bool" -} -,{ - "classname": "ISteamScreenshots", - "methodname": "AddVRScreenshotToLibrary", - "returntype": "ScreenshotHandle", - "params": [ -{ "paramname": "eType" ,"paramtype": "EVRScreenshotType"}, -{ "paramname": "pchFilename" ,"paramtype": "const char *"}, -{ "paramname": "pchVRFilename" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusic", - "methodname": "BIsEnabled", - "returntype": "bool" -} -,{ - "classname": "ISteamMusic", - "methodname": "BIsPlaying", - "returntype": "bool" -} -,{ - "classname": "ISteamMusic", - "methodname": "GetPlaybackStatus", - "returntype": "AudioPlayback_Status" -} -,{ - "classname": "ISteamMusic", - "methodname": "Play", - "returntype": "void" -} -,{ - "classname": "ISteamMusic", - "methodname": "Pause", - "returntype": "void" -} -,{ - "classname": "ISteamMusic", - "methodname": "PlayPrevious", - "returntype": "void" -} -,{ - "classname": "ISteamMusic", - "methodname": "PlayNext", - "returntype": "void" -} -,{ - "classname": "ISteamMusic", - "methodname": "SetVolume", - "returntype": "void", - "params": [ -{ "paramname": "flVolume" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamMusic", - "methodname": "GetVolume", - "returntype": "float" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "RegisterSteamMusicRemote", - "returntype": "bool", - "params": [ -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "DeregisterSteamMusicRemote", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "BIsCurrentMusicRemote", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "BActivationSuccess", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetDisplayName", - "returntype": "bool", - "params": [ -{ "paramname": "pchDisplayName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetPNGIcon_64x64", - "returntype": "bool", - "params": [ -{ "paramname": "pvBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbBufferLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnablePlayPrevious", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnablePlayNext", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnableShuffled", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnableLooped", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnableQueue", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "EnablePlaylists", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdatePlaybackStatus", - "returntype": "bool", - "params": [ -{ "paramname": "nStatus" ,"paramtype": "AudioPlayback_Status"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateShuffled", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateLooped", - "returntype": "bool", - "params": [ -{ "paramname": "bValue" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateVolume", - "returntype": "bool", - "params": [ -{ "paramname": "flValue" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "CurrentEntryWillChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "CurrentEntryIsAvailable", - "returntype": "bool", - "params": [ -{ "paramname": "bAvailable" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateCurrentEntryText", - "returntype": "bool", - "params": [ -{ "paramname": "pchText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateCurrentEntryElapsedSeconds", - "returntype": "bool", - "params": [ -{ "paramname": "nValue" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "UpdateCurrentEntryCoverArt", - "returntype": "bool", - "params": [ -{ "paramname": "pvBuffer" ,"paramtype": "void *"}, -{ "paramname": "cbBufferLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "CurrentEntryDidChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "QueueWillChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "ResetQueueEntries", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetQueueEntry", - "returntype": "bool", - "params": [ -{ "paramname": "nID" ,"paramtype": "int"}, -{ "paramname": "nPosition" ,"paramtype": "int"}, -{ "paramname": "pchEntryText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetCurrentQueueEntry", - "returntype": "bool", - "params": [ -{ "paramname": "nID" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "QueueDidChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "PlaylistWillChange", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "ResetPlaylistEntries", - "returntype": "bool" -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetPlaylistEntry", - "returntype": "bool", - "params": [ -{ "paramname": "nID" ,"paramtype": "int"}, -{ "paramname": "nPosition" ,"paramtype": "int"}, -{ "paramname": "pchEntryText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "SetCurrentPlaylistEntry", - "returntype": "bool", - "params": [ -{ "paramname": "nID" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamMusicRemote", - "methodname": "PlaylistDidChange", - "returntype": "bool" -} -,{ - "classname": "ISteamHTTP", - "methodname": "CreateHTTPRequest", - "returntype": "HTTPRequestHandle", - "params": [ -{ "paramname": "eHTTPRequestMethod" ,"paramtype": "EHTTPMethod"}, -{ "paramname": "pchAbsoluteURL" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestContextValue", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "ulContextValue" ,"paramtype": "uint64"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestNetworkActivityTimeout", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "unTimeoutSeconds" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestHeaderValue", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchHeaderName" ,"paramtype": "const char *"}, -{ "paramname": "pchHeaderValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestGetOrPostParameter", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchParamName" ,"paramtype": "const char *"}, -{ "paramname": "pchParamValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SendHTTPRequest", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pCallHandle" ,"paramtype": "SteamAPICall_t *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SendHTTPRequestAndStreamResponse", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pCallHandle" ,"paramtype": "SteamAPICall_t *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "DeferHTTPRequest", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "PrioritizeHTTPRequest", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPResponseHeaderSize", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchHeaderName" ,"paramtype": "const char *"}, -{ "paramname": "unResponseHeaderSize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPResponseHeaderValue", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchHeaderName" ,"paramtype": "const char *"}, -{ "paramname": "pHeaderValueBuffer" ,"paramtype": "uint8 *"}, -{ "paramname": "unBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPResponseBodySize", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "unBodySize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPResponseBodyData", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pBodyDataBuffer" ,"paramtype": "uint8 *"}, -{ "paramname": "unBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPStreamingResponseBodyData", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "cOffset" ,"paramtype": "uint32"}, -{ "paramname": "pBodyDataBuffer" ,"paramtype": "uint8 *"}, -{ "paramname": "unBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "ReleaseHTTPRequest", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPDownloadProgressPct", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pflPercentOut" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestRawPostBody", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchContentType" ,"paramtype": "const char *"}, -{ "paramname": "pubBody" ,"paramtype": "uint8 *"}, -{ "paramname": "unBodyLen" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "CreateCookieContainer", - "returntype": "HTTPCookieContainerHandle", - "params": [ -{ "paramname": "bAllowResponsesToModify" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "ReleaseCookieContainer", - "returntype": "bool", - "params": [ -{ "paramname": "hCookieContainer" ,"paramtype": "HTTPCookieContainerHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetCookie", - "returntype": "bool", - "params": [ -{ "paramname": "hCookieContainer" ,"paramtype": "HTTPCookieContainerHandle"}, -{ "paramname": "pchHost" ,"paramtype": "const char *"}, -{ "paramname": "pchUrl" ,"paramtype": "const char *"}, -{ "paramname": "pchCookie" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestCookieContainer", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "hCookieContainer" ,"paramtype": "HTTPCookieContainerHandle"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestUserAgentInfo", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pchUserAgentInfo" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestRequiresVerifiedCertificate", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "bRequireVerifiedCertificate" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "SetHTTPRequestAbsoluteTimeoutMS", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "unMilliseconds" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTTP", - "methodname": "GetHTTPRequestWasTimedOut", - "returntype": "bool", - "params": [ -{ "paramname": "hRequest" ,"paramtype": "HTTPRequestHandle"}, -{ "paramname": "pbWasTimedOut" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "SendMethod", - "returntype": "ClientUnifiedMessageHandle", - "params": [ -{ "paramname": "pchServiceMethod" ,"paramtype": "const char *"}, -{ "paramname": "pRequestBuffer" ,"paramtype": "const void *"}, -{ "paramname": "unRequestBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "unContext" ,"paramtype": "uint64"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "GetMethodResponseInfo", - "returntype": "bool", - "params": [ -{ "paramname": "hHandle" ,"paramtype": "ClientUnifiedMessageHandle"}, -{ "paramname": "punResponseSize" ,"paramtype": "uint32 *"}, -{ "paramname": "peResult" ,"paramtype": "EResult *"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "GetMethodResponseData", - "returntype": "bool", - "params": [ -{ "paramname": "hHandle" ,"paramtype": "ClientUnifiedMessageHandle"}, -{ "paramname": "pResponseBuffer" ,"paramtype": "void *"}, -{ "paramname": "unResponseBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "bAutoRelease" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "ReleaseMethod", - "returntype": "bool", - "params": [ -{ "paramname": "hHandle" ,"paramtype": "ClientUnifiedMessageHandle"} - ] -} -,{ - "classname": "ISteamUnifiedMessages", - "methodname": "SendNotification", - "returntype": "bool", - "params": [ -{ "paramname": "pchServiceNotification" ,"paramtype": "const char *"}, -{ "paramname": "pNotificationBuffer" ,"paramtype": "const void *"}, -{ "paramname": "unNotificationBufferSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "Init", - "returntype": "bool" -} -,{ - "classname": "ISteamController", - "methodname": "Shutdown", - "returntype": "bool" -} -,{ - "classname": "ISteamController", - "methodname": "RunFrame", - "returntype": "void" -} -,{ - "classname": "ISteamController", - "methodname": "GetConnectedControllers", - "returntype": "int", - "params": [ -{ "paramname": "handlesOut" ,"paramtype": "ControllerHandle_t *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "ShowBindingPanel", - "returntype": "bool", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetActionSetHandle", - "returntype": "ControllerActionSetHandle_t", - "params": [ -{ "paramname": "pszActionSetName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "ActivateActionSet", - "returntype": "void", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "actionSetHandle" ,"paramtype": "ControllerActionSetHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetCurrentActionSet", - "returntype": "ControllerActionSetHandle_t", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetDigitalActionHandle", - "returntype": "ControllerDigitalActionHandle_t", - "params": [ -{ "paramname": "pszActionName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetDigitalActionData", - "returntype": "struct ControllerDigitalActionData_t", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "digitalActionHandle" ,"paramtype": "ControllerDigitalActionHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetDigitalActionOrigins", - "returntype": "int", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "actionSetHandle" ,"paramtype": "ControllerActionSetHandle_t"}, -{ "paramname": "digitalActionHandle" ,"paramtype": "ControllerDigitalActionHandle_t"}, -{ "paramname": "originsOut" ,"paramtype": "EControllerActionOrigin *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetAnalogActionHandle", - "returntype": "ControllerAnalogActionHandle_t", - "params": [ -{ "paramname": "pszActionName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetAnalogActionData", - "returntype": "struct ControllerAnalogActionData_t", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "analogActionHandle" ,"paramtype": "ControllerAnalogActionHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetAnalogActionOrigins", - "returntype": "int", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "actionSetHandle" ,"paramtype": "ControllerActionSetHandle_t"}, -{ "paramname": "analogActionHandle" ,"paramtype": "ControllerAnalogActionHandle_t"}, -{ "paramname": "originsOut" ,"paramtype": "EControllerActionOrigin *"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "StopAnalogActionMomentum", - "returntype": "void", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "eAction" ,"paramtype": "ControllerAnalogActionHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "TriggerHapticPulse", - "returntype": "void", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "eTargetPad" ,"paramtype": "ESteamControllerPad"}, -{ "paramname": "usDurationMicroSec" ,"paramtype": "unsigned short"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "TriggerRepeatedHapticPulse", - "returntype": "void", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "eTargetPad" ,"paramtype": "ESteamControllerPad"}, -{ "paramname": "usDurationMicroSec" ,"paramtype": "unsigned short"}, -{ "paramname": "usOffMicroSec" ,"paramtype": "unsigned short"}, -{ "paramname": "unRepeat" ,"paramtype": "unsigned short"}, -{ "paramname": "nFlags" ,"paramtype": "unsigned int"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetGamepadIndexForController", - "returntype": "int", - "params": [ -{ "paramname": "ulControllerHandle" ,"paramtype": "ControllerHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetControllerForGamepadIndex", - "returntype": "ControllerHandle_t", - "params": [ -{ "paramname": "nIndex" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "GetMotionData", - "returntype": "struct ControllerMotionData_t", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "ShowDigitalActionOrigins", - "returntype": "bool", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "digitalActionHandle" ,"paramtype": "ControllerDigitalActionHandle_t"}, -{ "paramname": "flScale" ,"paramtype": "float"}, -{ "paramname": "flXPosition" ,"paramtype": "float"}, -{ "paramname": "flYPosition" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamController", - "methodname": "ShowAnalogActionOrigins", - "returntype": "bool", - "params": [ -{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "analogActionHandle" ,"paramtype": "ControllerAnalogActionHandle_t"}, -{ "paramname": "flScale" ,"paramtype": "float"}, -{ "paramname": "flXPosition" ,"paramtype": "float"}, -{ "paramname": "flYPosition" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "CreateQueryUserUGCRequest", - "returntype": "UGCQueryHandle_t", - "params": [ -{ "paramname": "unAccountID" ,"paramtype": "AccountID_t"}, -{ "paramname": "eListType" ,"paramtype": "EUserUGCList"}, -{ "paramname": "eMatchingUGCType" ,"paramtype": "EUGCMatchingUGCType"}, -{ "paramname": "eSortOrder" ,"paramtype": "EUserUGCListSortOrder"}, -{ "paramname": "nCreatorAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "nConsumerAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "unPage" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "CreateQueryAllUGCRequest", - "returntype": "UGCQueryHandle_t", - "params": [ -{ "paramname": "eQueryType" ,"paramtype": "EUGCQuery"}, -{ "paramname": "eMatchingeMatchingUGCTypeFileType" ,"paramtype": "EUGCMatchingUGCType"}, -{ "paramname": "nCreatorAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "nConsumerAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "unPage" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "CreateQueryUGCDetailsRequest", - "returntype": "UGCQueryHandle_t", - "params": [ -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "unNumPublishedFileIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SendQueryUGCRequest", "callresult": "SteamUGCQueryCompleted_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCResult", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pDetails" ,"paramtype": "struct SteamUGCDetails_t *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCPreviewURL", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pchURL" ,"out_string_count": "cchURLSize" ,"paramtype": "char *"}, -{ "paramname": "cchURLSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCMetadata", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pchMetadata" ,"out_string_count": "cchMetadatasize" ,"paramtype": "char *"}, -{ "paramname": "cchMetadatasize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCChildren", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "cMaxEntries" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCStatistic", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "eStatType" ,"paramtype": "EItemStatistic"}, -{ "paramname": "pStatValue" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCNumAdditionalPreviews", - "returntype": "uint32", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCAdditionalPreview", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "previewIndex" ,"paramtype": "uint32"}, -{ "paramname": "pchURLOrVideoID" ,"out_string_count": "cchURLSize" ,"paramtype": "char *"}, -{ "paramname": "cchURLSize" ,"paramtype": "uint32"}, -{ "paramname": "pchOriginalFileName" ,"out_string_count": "cchURLSize" ,"paramtype": "char *"}, -{ "paramname": "cchOriginalFileNameSize" ,"paramtype": "uint32"}, -{ "paramname": "pPreviewType" ,"paramtype": "EItemPreviewType *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCNumKeyValueTags", - "returntype": "uint32", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetQueryUGCKeyValueTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "keyValueTagIndex" ,"paramtype": "uint32"}, -{ "paramname": "pchKey" ,"out_string_count": "cchKeySize" ,"paramtype": "char *"}, -{ "paramname": "cchKeySize" ,"paramtype": "uint32"}, -{ "paramname": "pchValue" ,"out_string_count": "cchValueSize" ,"paramtype": "char *"}, -{ "paramname": "cchValueSize" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "ReleaseQueryUGCRequest", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddRequiredTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pTagName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddExcludedTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pTagName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnOnlyIDs", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnOnlyIDs" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnKeyValueTags", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnKeyValueTags" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnLongDescription", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnLongDescription" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnMetadata", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnMetadata" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnChildren", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnChildren" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnAdditionalPreviews", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnAdditionalPreviews" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetReturnTotalOnly", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bReturnTotalOnly" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetLanguage", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pchLanguage" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetAllowCachedResponse", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "unMaxAgeSeconds" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetCloudFileNameFilter", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pMatchCloudFileName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetMatchAnyTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "bMatchAnyTag" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetSearchText", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pSearchText" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetRankedByTrendDays", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "unDays" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddRequiredKeyValueTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, -{ "paramname": "pKey" ,"paramtype": "const char *"}, -{ "paramname": "pValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "RequestUGCDetails", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "unMaxAgeSeconds" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "CreateItem", "callresult": "CreateItemResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nConsumerAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "eFileType" ,"paramtype": "EWorkshopFileType"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "StartItemUpdate", - "returntype": "UGCUpdateHandle_t", - "params": [ -{ "paramname": "nConsumerAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemTitle", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchTitle" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemDescription", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchDescription" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemUpdateLanguage", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchLanguage" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemMetadata", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchMetaData" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemVisibility", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "eVisibility" ,"paramtype": "ERemoteStoragePublishedFileVisibility"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemTags", - "returntype": "bool", - "params": [ -{ "paramname": "updateHandle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pTags" ,"paramtype": "const struct SteamParamStringArray_t *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemContent", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pszContentFolder" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetItemPreview", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pszPreviewFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "RemoveItemKeyValueTags", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddItemKeyValueTag", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddItemPreviewFile", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pszPreviewFile" ,"paramtype": "const char *"}, -{ "paramname": "type" ,"paramtype": "EItemPreviewType"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddItemPreviewVideo", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pszVideoID" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "UpdateItemPreviewFile", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pszPreviewFile" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "UpdateItemPreviewVideo", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"}, -{ "paramname": "pszVideoID" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "RemoveItemPreview", - "returntype": "bool", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "index" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SubmitItemUpdate", "callresult": "SubmitItemUpdateResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "pchChangeNote" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetItemUpdateProgress", - "returntype": "EItemUpdateStatus", - "params": [ -{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"}, -{ "paramname": "punBytesProcessed" ,"paramtype": "uint64 *"}, -{ "paramname": "punBytesTotal" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SetUserItemVote", "callresult": "SetUserItemVoteResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "bVoteUp" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetUserItemVote", "callresult": "GetUserItemVoteResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "AddItemToFavorites", "callresult": "UserFavoriteItemsListChanged_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "RemoveItemFromFavorites", "callresult": "UserFavoriteItemsListChanged_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SubscribeItem", "callresult": "RemoteStorageSubscribePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "UnsubscribeItem", "callresult": "RemoteStorageUnsubscribePublishedFileResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetNumSubscribedItems", - "returntype": "uint32" -} -,{ - "classname": "ISteamUGC", - "methodname": "GetSubscribedItems", - "returntype": "uint32", - "params": [ -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "cMaxEntries" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetItemState", - "returntype": "uint32", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetItemInstallInfo", - "returntype": "bool", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "punSizeOnDisk" ,"paramtype": "uint64 *"}, -{ "paramname": "pchFolder" ,"out_string_count": "cchFolderSize" ,"paramtype": "char *"}, -{ "paramname": "cchFolderSize" ,"paramtype": "uint32"}, -{ "paramname": "punTimeStamp" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "GetItemDownloadInfo", - "returntype": "bool", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "punBytesDownloaded" ,"paramtype": "uint64 *"}, -{ "paramname": "punBytesTotal" ,"paramtype": "uint64 *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "DownloadItem", - "returntype": "bool", - "params": [ -{ "paramname": "nPublishedFileID" ,"paramtype": "PublishedFileId_t"}, -{ "paramname": "bHighPriority" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "BInitWorkshopForGameServer", - "returntype": "bool", - "params": [ -{ "paramname": "unWorkshopDepotID" ,"paramtype": "DepotId_t"}, -{ "paramname": "pszFolder" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "SuspendDownloads", - "returntype": "void", - "params": [ -{ "paramname": "bSuspend" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "StartPlaytimeTracking", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "unNumPublishedFileIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "StopPlaytimeTracking", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pvecPublishedFileID" ,"paramtype": "PublishedFileId_t *"}, -{ "paramname": "unNumPublishedFileIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamUGC", - "methodname": "StopPlaytimeTrackingForAllItems", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamAppList", - "methodname": "GetNumInstalledApps", - "returntype": "uint32" -} -,{ - "classname": "ISteamAppList", - "methodname": "GetInstalledApps", - "returntype": "uint32", - "params": [ -{ "paramname": "pvecAppID" ,"paramtype": "AppId_t *"}, -{ "paramname": "unMaxAppIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamAppList", - "methodname": "GetAppName", - "returntype": "int", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "pchName" ,"out_string": " " ,"paramtype": "char *"}, -{ "paramname": "cchNameMax" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamAppList", - "methodname": "GetAppInstallDir", - "returntype": "int", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"}, -{ "paramname": "pchDirectory" ,"paramtype": "char *"}, -{ "paramname": "cchNameMax" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamAppList", - "methodname": "GetAppBuildId", - "returntype": "int", - "params": [ -{ "paramname": "nAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "DestructISteamHTMLSurface", - "returntype": "void" -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "Init", - "returntype": "bool" -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "Shutdown", - "returntype": "bool" -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "CreateBrowser", "callresult": "HTML_BrowserReady_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "pchUserAgent" ,"paramtype": "const char *"}, -{ "paramname": "pchUserCSS" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "RemoveBrowser", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "LoadURL", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "pchURL" ,"paramtype": "const char *"}, -{ "paramname": "pchPostData" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetSize", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "unWidth" ,"paramtype": "uint32"}, -{ "paramname": "unHeight" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "StopLoad", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "Reload", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "GoBack", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "GoForward", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "AddHeader", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "ExecuteJavascript", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "pchScript" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseUp", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "eMouseButton" ,"paramtype": "ISteamHTMLSurface::EHTMLMouseButton"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseDown", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "eMouseButton" ,"paramtype": "ISteamHTMLSurface::EHTMLMouseButton"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseDoubleClick", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "eMouseButton" ,"paramtype": "ISteamHTMLSurface::EHTMLMouseButton"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseMove", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "x" ,"paramtype": "int"}, -{ "paramname": "y" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "MouseWheel", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nDelta" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "KeyDown", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nNativeKeyCode" ,"paramtype": "uint32"}, -{ "paramname": "eHTMLKeyModifiers" ,"paramtype": "ISteamHTMLSurface::EHTMLKeyModifiers"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "KeyUp", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nNativeKeyCode" ,"paramtype": "uint32"}, -{ "paramname": "eHTMLKeyModifiers" ,"paramtype": "ISteamHTMLSurface::EHTMLKeyModifiers"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "KeyChar", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "cUnicodeChar" ,"paramtype": "uint32"}, -{ "paramname": "eHTMLKeyModifiers" ,"paramtype": "ISteamHTMLSurface::EHTMLKeyModifiers"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetHorizontalScroll", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nAbsolutePixelScroll" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetVerticalScroll", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "nAbsolutePixelScroll" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetKeyFocus", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "bHasKeyFocus" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "ViewSource", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "CopyToClipboard", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "PasteFromClipboard", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "Find", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "pchSearchStr" ,"paramtype": "const char *"}, -{ "paramname": "bCurrentlyInFind" ,"paramtype": "bool"}, -{ "paramname": "bReverse" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "StopFind", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "GetLinkAtPosition", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "x" ,"paramtype": "int"}, -{ "paramname": "y" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetCookie", - "returntype": "void", - "params": [ -{ "paramname": "pchHostname" ,"paramtype": "const char *"}, -{ "paramname": "pchKey" ,"paramtype": "const char *"}, -{ "paramname": "pchValue" ,"paramtype": "const char *"}, -{ "paramname": "pchPath" ,"paramtype": "const char *"}, -{ "paramname": "nExpires" ,"paramtype": "RTime32"}, -{ "paramname": "bSecure" ,"paramtype": "bool"}, -{ "paramname": "bHTTPOnly" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetPageScaleFactor", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "flZoom" ,"paramtype": "float"}, -{ "paramname": "nPointX" ,"paramtype": "int"}, -{ "paramname": "nPointY" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "SetBackgroundMode", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "bBackgroundMode" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "AllowStartRequest", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "bAllowed" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamHTMLSurface", - "methodname": "JSDialogResponse", - "returntype": "void", - "params": [ -{ "paramname": "unBrowserHandle" ,"paramtype": "HHTMLBrowser"}, -{ "paramname": "bResult" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetResultStatus", "desc": "Find out the status of an asynchronous inventory result handle.", - "returntype": "EResult", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetResultItems", "desc": "Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used.", - "returntype": "bool", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"}, -{ "paramname": "pOutItemsArray" ,"out_array_count": "punOutItemsArraySize" ,"desc": "Output array" ,"paramtype": "struct SteamItemDetails_t *"}, -{ "paramname": "punOutItemsArraySize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetResultTimestamp", "desc": "Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age.", - "returntype": "uint32", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "CheckResultSteamID", "desc": "Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory.", - "returntype": "bool", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"}, -{ "paramname": "steamIDExpected" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "DestroyResult", "desc": "Destroys a result handle and frees all associated memory.", - "returntype": "void", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetAllItems", "desc": "Captures the entire state of the current users Steam inventory.", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetItemsByID", "desc": "Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs.", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pInstanceIDs" ,"array_count": "unCountInstanceIDs" ,"paramtype": "const SteamItemInstanceID_t *"}, -{ "paramname": "unCountInstanceIDs" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "SerializeResult", - "returntype": "bool", - "params": [ -{ "paramname": "resultHandle" ,"paramtype": "SteamInventoryResult_t"}, -{ "paramname": "pOutBuffer" ,"out_buffer_count": "punOutBufferSize" ,"paramtype": "void *"}, -{ "paramname": "punOutBufferSize" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "DeserializeResult", - "returntype": "bool", - "params": [ -{ "paramname": "pOutResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pBuffer" ,"buffer_count": "punOutBufferSize" ,"paramtype": "const void *"}, -{ "paramname": "unBufferSize" ,"paramtype": "uint32"}, -{ "paramname": "bRESERVED_MUST_BE_FALSE" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GenerateItems", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pArrayItemDefs" ,"array_count": "unArrayLength" ,"paramtype": "const SteamItemDef_t *"}, -{ "paramname": "punArrayQuantity" ,"array_count": "unArrayLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "unArrayLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GrantPromoItems", "desc": "GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only).", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "AddPromoItem", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "itemDef" ,"paramtype": "SteamItemDef_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "AddPromoItems", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pArrayItemDefs" ,"array_count": "unArrayLength" ,"paramtype": "const SteamItemDef_t *"}, -{ "paramname": "unArrayLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "ConsumeItem", "desc": "ConsumeItem() removes items from the inventory permanently.", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "itemConsume" ,"paramtype": "SteamItemInstanceID_t"}, -{ "paramname": "unQuantity" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "ExchangeItems", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "pArrayGenerate" ,"array_count": "unArrayGenerateLength" ,"paramtype": "const SteamItemDef_t *"}, -{ "paramname": "punArrayGenerateQuantity" ,"array_count": "unArrayGenerateLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "unArrayGenerateLength" ,"paramtype": "uint32"}, -{ "paramname": "pArrayDestroy" ,"array_count": "unArrayDestroyLength" ,"paramtype": "const SteamItemInstanceID_t *"}, -{ "paramname": "punArrayDestroyQuantity" ,"array_count": "unArrayDestroyLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "unArrayDestroyLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "TransferItemQuantity", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "itemIdSource" ,"paramtype": "SteamItemInstanceID_t"}, -{ "paramname": "unQuantity" ,"paramtype": "uint32"}, -{ "paramname": "itemIdDest" ,"paramtype": "SteamItemInstanceID_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "SendItemDropHeartbeat", "desc": "Applications which use timed-drop mechanics should call SendItemDropHeartbeat() when active gameplay begins and at least once every two minutes afterwards.", - "returntype": "void" -} -,{ - "classname": "ISteamInventory", - "methodname": "TriggerItemDrop", "desc": "Playtime credit must be consumed and turned into item drops by your game.", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "dropListDefinition" ,"paramtype": "SteamItemDef_t"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "TradeItems", - "returntype": "bool", - "params": [ -{ "paramname": "pResultHandle" ,"paramtype": "SteamInventoryResult_t *"}, -{ "paramname": "steamIDTradePartner" ,"paramtype": "class CSteamID"}, -{ "paramname": "pArrayGive" ,"array_count": "nArrayGiveLength" ,"paramtype": "const SteamItemInstanceID_t *"}, -{ "paramname": "pArrayGiveQuantity" ,"array_count": "nArrayGiveLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "nArrayGiveLength" ,"paramtype": "uint32"}, -{ "paramname": "pArrayGet" ,"array_count": "nArrayGetLength" ,"paramtype": "const SteamItemInstanceID_t *"}, -{ "paramname": "pArrayGetQuantity" ,"array_count": "nArrayGetLength" ,"paramtype": "const uint32 *"}, -{ "paramname": "nArrayGetLength" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "LoadItemDefinitions", "desc": "LoadItemDefinitions triggers the automatic load and refresh of item definitions.", - "returntype": "bool" -} -,{ - "classname": "ISteamInventory", - "methodname": "GetItemDefinitionIDs", - "returntype": "bool", - "params": [ -{ "paramname": "pItemDefIDs" ,"out_array_count": "punItemDefIDsArraySize" ,"desc": "List of item definition IDs" ,"paramtype": "SteamItemDef_t *"}, -{ "paramname": "punItemDefIDsArraySize" ,"desc": "Size of array is passed in and actual size used is returned in this param" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamInventory", - "methodname": "GetItemDefinitionProperty", - "returntype": "bool", - "params": [ -{ "paramname": "iDefinition" ,"paramtype": "SteamItemDef_t"}, -{ "paramname": "pchPropertyName" ,"paramtype": "const char *"}, -{ "paramname": "pchValueBuffer" ,"out_string_count": "punValueBufferSizeOut" ,"paramtype": "char *"}, -{ "paramname": "punValueBufferSizeOut" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamVideo", - "methodname": "GetVideoURL", - "returntype": "void", - "params": [ -{ "paramname": "unVideoAppID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamVideo", - "methodname": "IsBroadcasting", - "returntype": "bool", - "params": [ -{ "paramname": "pnNumViewers" ,"paramtype": "int *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "InitGameServer", - "returntype": "bool", - "params": [ -{ "paramname": "unIP" ,"paramtype": "uint32"}, -{ "paramname": "usGamePort" ,"paramtype": "uint16"}, -{ "paramname": "usQueryPort" ,"paramtype": "uint16"}, -{ "paramname": "unFlags" ,"paramtype": "uint32"}, -{ "paramname": "nGameAppId" ,"paramtype": "AppId_t"}, -{ "paramname": "pchVersionString" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetProduct", - "returntype": "void", - "params": [ -{ "paramname": "pszProduct" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetGameDescription", - "returntype": "void", - "params": [ -{ "paramname": "pszGameDescription" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetModDir", - "returntype": "void", - "params": [ -{ "paramname": "pszModDir" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetDedicatedServer", - "returntype": "void", - "params": [ -{ "paramname": "bDedicated" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "LogOn", - "returntype": "void", - "params": [ -{ "paramname": "pszToken" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "LogOnAnonymous", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "LogOff", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "BLoggedOn", - "returntype": "bool" -} -,{ - "classname": "ISteamGameServer", - "methodname": "BSecure", - "returntype": "bool" -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetSteamID", - "returntype": "class CSteamID" -} -,{ - "classname": "ISteamGameServer", - "methodname": "WasRestartRequested", - "returntype": "bool" -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetMaxPlayerCount", - "returntype": "void", - "params": [ -{ "paramname": "cPlayersMax" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetBotPlayerCount", - "returntype": "void", - "params": [ -{ "paramname": "cBotplayers" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetServerName", - "returntype": "void", - "params": [ -{ "paramname": "pszServerName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetMapName", - "returntype": "void", - "params": [ -{ "paramname": "pszMapName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetPasswordProtected", - "returntype": "void", - "params": [ -{ "paramname": "bPasswordProtected" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetSpectatorPort", - "returntype": "void", - "params": [ -{ "paramname": "unSpectatorPort" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetSpectatorServerName", - "returntype": "void", - "params": [ -{ "paramname": "pszSpectatorServerName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "ClearAllKeyValues", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetKeyValue", - "returntype": "void", - "params": [ -{ "paramname": "pKey" ,"paramtype": "const char *"}, -{ "paramname": "pValue" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetGameTags", - "returntype": "void", - "params": [ -{ "paramname": "pchGameTags" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetGameData", - "returntype": "void", - "params": [ -{ "paramname": "pchGameData" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetRegion", - "returntype": "void", - "params": [ -{ "paramname": "pszRegion" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SendUserConnectAndAuthenticate", - "returntype": "bool", - "params": [ -{ "paramname": "unIPClient" ,"paramtype": "uint32"}, -{ "paramname": "pvAuthBlob" ,"paramtype": "const void *"}, -{ "paramname": "cubAuthBlobSize" ,"paramtype": "uint32"}, -{ "paramname": "pSteamIDUser" ,"paramtype": "class CSteamID *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "CreateUnauthenticatedUserConnection", - "returntype": "class CSteamID" -} -,{ - "classname": "ISteamGameServer", - "methodname": "SendUserDisconnect", - "returntype": "void", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "BUpdateUserData", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchPlayerName" ,"paramtype": "const char *"}, -{ "paramname": "uScore" ,"paramtype": "uint32"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetAuthSessionTicket", - "returntype": "HAuthTicket", - "params": [ -{ "paramname": "pTicket" ,"paramtype": "void *"}, -{ "paramname": "cbMaxTicket" ,"paramtype": "int"}, -{ "paramname": "pcbTicket" ,"paramtype": "uint32 *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "BeginAuthSession", - "returntype": "EBeginAuthSessionResult", - "params": [ -{ "paramname": "pAuthTicket" ,"paramtype": "const void *"}, -{ "paramname": "cbAuthTicket" ,"paramtype": "int"}, -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "EndAuthSession", - "returntype": "void", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "CancelAuthTicket", - "returntype": "void", - "params": [ -{ "paramname": "hAuthTicket" ,"paramtype": "HAuthTicket"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "UserHasLicenseForApp", - "returntype": "EUserHasLicenseForAppResult", - "params": [ -{ "paramname": "steamID" ,"paramtype": "class CSteamID"}, -{ "paramname": "appID" ,"paramtype": "AppId_t"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "RequestUserGroupStatus", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "steamIDGroup" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetGameplayStats", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetServerReputation", "callresult": "GSReputation_t", - "returntype": "SteamAPICall_t" -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetPublicIP", - "returntype": "uint32" -} -,{ - "classname": "ISteamGameServer", - "methodname": "HandleIncomingPacket", - "returntype": "bool", - "params": [ -{ "paramname": "pData" ,"paramtype": "const void *"}, -{ "paramname": "cbData" ,"paramtype": "int"}, -{ "paramname": "srcIP" ,"paramtype": "uint32"}, -{ "paramname": "srcPort" ,"paramtype": "uint16"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "GetNextOutgoingPacket", - "returntype": "int", - "params": [ -{ "paramname": "pOut" ,"paramtype": "void *"}, -{ "paramname": "cbMaxOut" ,"paramtype": "int"}, -{ "paramname": "pNetAdr" ,"paramtype": "uint32 *"}, -{ "paramname": "pPort" ,"paramtype": "uint16 *"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "EnableHeartbeats", - "returntype": "void", - "params": [ -{ "paramname": "bActive" ,"paramtype": "bool"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "SetHeartbeatInterval", - "returntype": "void", - "params": [ -{ "paramname": "iHeartbeatInterval" ,"paramtype": "int"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "ForceHeartbeat", - "returntype": "void" -} -,{ - "classname": "ISteamGameServer", - "methodname": "AssociateWithClan", "callresult": "AssociateWithClanResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDClan" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServer", - "methodname": "ComputeNewPlayerCompatibility", "callresult": "ComputeNewPlayerCompatibilityResult_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDNewPlayer" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "RequestUserStats", "callresult": "GSStatsReceived_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "GetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "int32 *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "GetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pData" ,"paramtype": "float *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "GetUserAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "pbAchieved" ,"paramtype": "bool *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "SetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "nData" ,"paramtype": "int32"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "SetUserStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "fData" ,"paramtype": "float"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "UpdateUserAvgRateStat", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"}, -{ "paramname": "flCountThisSession" ,"paramtype": "float"}, -{ "paramname": "dSessionLength" ,"paramtype": "double"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "SetUserAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "ClearUserAchievement", - "returntype": "bool", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"}, -{ "paramname": "pchName" ,"paramtype": "const char *"} - ] -} -,{ - "classname": "ISteamGameServerStats", - "methodname": "StoreUserStats", "callresult": "GSStatsStored_t", - "returntype": "SteamAPICall_t", - "params": [ -{ "paramname": "steamIDUser" ,"paramtype": "class CSteamID"} - ] -} -] -} \ No newline at end of file diff --git a/lib/windows/include/steam/steam_api_common.h b/lib/windows/include/steam/steam_api_common.h new file mode 100644 index 0000000..cb8e6b7 --- /dev/null +++ b/lib/windows/include/steam/steam_api_common.h @@ -0,0 +1,249 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Steamworks SDK minimal include +// +// Defines the minimal set of things we need to use any single interface +// or register for any callback. +// +//============================================================================= + +#ifndef STEAM_API_COMMON_H +#define STEAM_API_COMMON_H + +#include "steamtypes.h" +#include "steamclientpublic.h" + +// S_API defines the linkage and calling conventions for steam_api.dll exports +#if defined( _WIN32 ) && !defined( _X360 ) + #if defined( STEAM_API_EXPORTS ) + #define S_API extern "C" __declspec( dllexport ) + #elif defined( STEAM_API_NODLL ) + #define S_API extern "C" + #else + #define S_API extern "C" __declspec( dllimport ) + #endif // STEAM_API_EXPORTS +#elif defined( __GNUC__ ) + #if defined( STEAM_API_EXPORTS ) + #define S_API extern "C" __attribute__ ((visibility("default"))) + #else + #define S_API extern "C" + #endif // STEAM_API_EXPORTS +#else // !WIN32 + #if defined( STEAM_API_EXPORTS ) + #define S_API extern "C" + #else + #define S_API extern "C" + #endif // STEAM_API_EXPORTS +#endif + +#if defined( __cplusplus ) && ( __cplusplus >= 201103L ) + #define S_OVERRIDE override +#else + #define S_OVERRIDE +#endif + +#if ( defined(STEAM_API_EXPORTS) || defined(STEAM_API_NODLL) ) && !defined(API_GEN) +#define STEAM_PRIVATE_API( ... ) __VA_ARGS__ +#elif defined(STEAM_API_EXPORTS) && defined(API_GEN) +#define STEAM_PRIVATE_API( ... ) +#else +#define STEAM_PRIVATE_API( ... ) protected: __VA_ARGS__ public: +#endif + +// handle to a communication pipe to the Steam client +typedef int32 HSteamPipe; +// handle to single instance of a steam user +typedef int32 HSteamUser; + +// A fixed size buffer to receive an error message that is returned by some API +// calls. +const int k_cchMaxSteamErrMsg = 1024; +typedef char SteamErrMsg[ k_cchMaxSteamErrMsg ]; + +// #define away __cdecl on posix. +// This is really, really bad. We're sorry. But it's been this way for +// a long time now and it's scary to change it, as there may be others that +// depend on it. +#ifndef _WIN32 + #define __cdecl +#endif + +// function prototype +extern "C" typedef void ( S_CALLTYPE *SteamAPIWarningMessageHook_t )( int, const char * ); +extern "C" typedef uint32 ( S_CALLTYPE *SteamAPI_CheckCallbackRegistered_t )( int iCallbackNum ); +#if defined( __SNC__ ) + #pragma diag_suppress=1700 // warning 1700: class "%s" has virtual functions but non-virtual destructor +#endif + +//----------------------------------------------------------------------------------------------------------------------------------------------------------// +// steam callback and call-result helpers +// +// The following macros and classes are used to register your application for +// callbacks and call-results, which are delivered in a predictable manner. +// +// STEAM_CALLBACK macros are meant for use inside of a C++ class definition. +// They map a Steam notification callback directly to a class member function +// which is automatically prototyped as "void func( callback_type *pParam )". +// +// CCallResult is used with specific Steam APIs that return "result handles". +// The handle can be passed to a CCallResult object's Set function, along with +// an object pointer and member-function pointer. The member function will +// be executed once the results of the Steam API call are available. +// +// CCallback and CCallbackManual classes can be used instead of STEAM_CALLBACK +// macros if you require finer control over registration and unregistration. +// +// Callbacks and call-results are queued automatically and are only +// delivered/executed when your application calls SteamAPI_RunCallbacks(). +// +// Note that there is an alternative, lower level callback dispatch mechanism. +// See SteamAPI_ManualDispatch_Init +//----------------------------------------------------------------------------------------------------------------------------------------------------------// + +// Dispatch all queued Steamworks callbacks. +// +// This is safe to call from multiple threads simultaneously, +// but if you choose to do this, callback code could be executed on any thread. +// One alternative is to call SteamAPI_RunCallbacks from the main thread only, +// and call SteamAPI_ReleaseCurrentThreadMemory regularly on other threads. +S_API void S_CALLTYPE SteamAPI_RunCallbacks(); + +// Declares a callback member function plus a helper member variable which +// registers the callback on object creation and unregisters on destruction. +// The optional fourth 'var' param exists only for backwards-compatibility +// and can be ignored. +#define STEAM_CALLBACK( thisclass, func, .../*callback_type, [deprecated] var*/ ) \ + _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, 4, 3 ), ( /**/, thisclass, func, __VA_ARGS__ ) ) + +// Declares a callback function and a named CCallbackManual variable which +// has Register and Unregister functions instead of automatic registration. +#define STEAM_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ + CCallbackManual< thisclass, callback_type > var; void func( callback_type *pParam ) + +// Dispatch callbacks relevant to the gameserver client and interfaces. +// To register for these, you need to use STEAM_GAMESERVER_CALLBACK. +// (Or call SetGameserverFlag on your CCallbackBase object.) +S_API void S_CALLTYPE SteamGameServer_RunCallbacks(); + +// Same as STEAM_CALLBACK, but for callbacks on the gameserver interface. +// These will be dispatched during SteamGameServer_RunCallbacks +#define STEAM_GAMESERVER_CALLBACK( thisclass, func, /*callback_type, [deprecated] var*/... ) \ + _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, GS, 3 ), ( this->SetGameserverFlag();, thisclass, func, __VA_ARGS__ ) ) +#define STEAM_GAMESERVER_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ + CCallbackManual< thisclass, callback_type, true > var; void func( callback_type *pParam ) + +//----------------------------------------------------------------------------- +// Purpose: base for callbacks and call results - internal implementation detail +//----------------------------------------------------------------------------- +class CCallbackBase +{ +public: + CCallbackBase() { m_nCallbackFlags = 0; m_iCallback = 0; } + // don't add a virtual destructor because we export this binary interface across dll's + virtual void Run( void *pvParam ) = 0; + virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ) = 0; + int GetICallback() { return m_iCallback; } + virtual int GetCallbackSizeBytes() = 0; + +protected: + enum { k_ECallbackFlagsRegistered = 0x01, k_ECallbackFlagsGameServer = 0x02 }; + uint8 m_nCallbackFlags; + int m_iCallback; + friend class CCallbackMgr; + +private: + CCallbackBase( const CCallbackBase& ); + CCallbackBase& operator=( const CCallbackBase& ); +}; + +//----------------------------------------------------------------------------- +// Purpose: templated base for callbacks - internal implementation detail +//----------------------------------------------------------------------------- +template< int sizeof_P > +class CCallbackImpl : protected CCallbackBase +{ +public: + virtual ~CCallbackImpl() { if ( m_nCallbackFlags & k_ECallbackFlagsRegistered ) SteamAPI_UnregisterCallback( this ); } + void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } + +protected: + friend class CCallbackMgr; + virtual void Run( void *pvParam ) S_OVERRIDE = 0; + virtual void Run( void *pvParam, bool /*bIOFailure*/, SteamAPICall_t /*hSteamAPICall*/ ) S_OVERRIDE { Run( pvParam ); } + virtual int GetCallbackSizeBytes() S_OVERRIDE { return sizeof_P; } +}; + + +//----------------------------------------------------------------------------- +// Purpose: maps a steam async call result to a class member function +// template params: T = local class, P = parameter struct +//----------------------------------------------------------------------------- +template< class T, class P > +class CCallResult : private CCallbackBase +{ +public: + typedef void (T::*func_t)( P*, bool ); + + CCallResult(); + ~CCallResult(); + + void Set( SteamAPICall_t hAPICall, T *p, func_t func ); + bool IsActive() const; + void Cancel(); + + void SetGameserverFlag() { m_nCallbackFlags |= k_ECallbackFlagsGameServer; } +private: + virtual void Run( void *pvParam ) S_OVERRIDE; + virtual void Run( void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall ) S_OVERRIDE; + virtual int GetCallbackSizeBytes() S_OVERRIDE { return sizeof( P ); } + + SteamAPICall_t m_hAPICall; + T *m_pObj; + func_t m_Func; +}; + + + +//----------------------------------------------------------------------------- +// Purpose: maps a steam callback to a class member function +// template params: T = local class, P = parameter struct, +// bGameserver = listen for gameserver callbacks instead of client callbacks +//----------------------------------------------------------------------------- +template< class T, class P, bool bGameserver = false > +class CCallback : public CCallbackImpl< sizeof( P ) > +{ +public: + typedef void (T::*func_t)(P*); + + // NOTE: If you can't provide the correct parameters at construction time, you should + // use the CCallbackManual callback object (STEAM_CALLBACK_MANUAL macro) instead. + CCallback( T *pObj, func_t func ); + + void Register( T *pObj, func_t func ); + void Unregister(); + +protected: + virtual void Run( void *pvParam ) S_OVERRIDE; + + T *m_pObj; + func_t m_Func; +}; + + +//----------------------------------------------------------------------------- +// Purpose: subclass of CCallback which allows default-construction in +// an unregistered state; you must call Register manually +//----------------------------------------------------------------------------- +template< class T, class P, bool bGameServer = false > +class CCallbackManual : public CCallback< T, P, bGameServer > +{ +public: + CCallbackManual() : CCallback< T, P, bGameServer >( nullptr, nullptr ) {} + + // Inherits public Register and Unregister functions from base class +}; + +// Internal implementation details for all of the above +#include "steam_api_internal.h" + +#endif // STEAM_API_COMMON_H diff --git a/lib/windows/include/steam/steam_api_flat.h b/lib/windows/include/steam/steam_api_flat.h index e77e4cb..a0e7ce4 100644 --- a/lib/windows/include/steam/steam_api_flat.h +++ b/lib/windows/include/steam/steam_api_flat.h @@ -1,802 +1,1268 @@ -//====== Copyright (c) 1996-2014, Valve Corporation, All rights reserved. ======= +//====== Copyright Valve Corporation, All rights reserved. ==================== // -// Purpose: Header for flatted SteamAPI. Use this for binding to other languages. +// Purpose: Header for "flat" SteamAPI. Use this for binding to other languages. // This file is auto-generated, do not edit it. // //============================================================================= #ifndef STEAMAPIFLAT_H #define STEAMAPIFLAT_H -#ifdef _WIN32 -#pragma once -#endif -#include <stdint.h> +#include "steam/steam_api.h" +#include "steam/isteamgameserver.h" +#include "steam/isteamgameserverstats.h" - -typedef unsigned char uint8; -typedef unsigned char uint8; -typedef signed char int8; -typedef short int16; -typedef unsigned short uint16; -typedef int int32; -typedef unsigned int uint32; -typedef long long int64; -typedef unsigned long long uint64; -typedef int64 lint64; -typedef uint64 ulint64; -typedef uint8 Salt_t[8]; -typedef uint64 GID_t; -typedef uint64 JobID_t; -typedef GID_t TxnID_t; -typedef uint32 PackageId_t; -typedef uint32 BundleId_t; -typedef uint32 AppId_t; -typedef uint64 AssetClassId_t; -typedef uint32 PhysicalItemId_t; -typedef uint32 DepotId_t; -typedef uint32 RTime32; -typedef uint32 CellID_t; -typedef uint64 SteamAPICall_t; -typedef uint32 AccountID_t; -typedef uint32 PartnerId_t; -typedef uint64 ManifestId_t; -typedef uint32 HAuthTicket; -typedef void * BREAKPAD_HANDLE; -typedef char compile_time_assert_type[1]; -typedef int32 HSteamPipe; -typedef int32 HSteamUser; -typedef int16 FriendsGroupID_t; -typedef void * HServerListRequest; -typedef int HServerQuery; -typedef uint64 UGCHandle_t; -typedef uint64 PublishedFileUpdateHandle_t; -typedef uint64 PublishedFileId_t; -typedef uint64 UGCFileWriteStreamHandle_t; -typedef char compile_time_assert_type[1]; -typedef uint64 SteamLeaderboard_t; -typedef uint64 SteamLeaderboardEntries_t; -typedef uint32 SNetSocket_t; -typedef uint32 SNetListenSocket_t; -typedef uint32 ScreenshotHandle; -typedef uint32 HTTPRequestHandle; -typedef uint32 HTTPCookieContainerHandle; -typedef uint64 ClientUnifiedMessageHandle; -typedef uint64 ControllerHandle_t; -typedef uint64 ControllerActionSetHandle_t; -typedef uint64 ControllerDigitalActionHandle_t; -typedef uint64 ControllerAnalogActionHandle_t; -typedef uint64 UGCQueryHandle_t; -typedef uint64 UGCUpdateHandle_t; -typedef uint32 HHTMLBrowser; -typedef uint64 SteamItemInstanceID_t; -typedef int32 SteamItemDef_t; -typedef int32 SteamInventoryResult_t; -// OpenVR Constants -int const_k_iSteamUserCallbacks = 100; -int const_k_iSteamGameServerCallbacks = 200; -int const_k_iSteamFriendsCallbacks = 300; -int const_k_iSteamBillingCallbacks = 400; -int const_k_iSteamMatchmakingCallbacks = 500; -int const_k_iSteamContentServerCallbacks = 600; -int const_k_iSteamUtilsCallbacks = 700; -int const_k_iClientFriendsCallbacks = 800; -int const_k_iClientUserCallbacks = 900; -int const_k_iSteamAppsCallbacks = 1000; -int const_k_iSteamUserStatsCallbacks = 1100; -int const_k_iSteamNetworkingCallbacks = 1200; -int const_k_iClientRemoteStorageCallbacks = 1300; -int const_k_iClientDepotBuilderCallbacks = 1400; -int const_k_iSteamGameServerItemsCallbacks = 1500; -int const_k_iClientUtilsCallbacks = 1600; -int const_k_iSteamGameCoordinatorCallbacks = 1700; -int const_k_iSteamGameServerStatsCallbacks = 1800; -int const_k_iSteam2AsyncCallbacks = 1900; -int const_k_iSteamGameStatsCallbacks = 2000; -int const_k_iClientHTTPCallbacks = 2100; -int const_k_iClientScreenshotsCallbacks = 2200; -int const_k_iSteamScreenshotsCallbacks = 2300; -int const_k_iClientAudioCallbacks = 2400; -int const_k_iClientUnifiedMessagesCallbacks = 2500; -int const_k_iSteamStreamLauncherCallbacks = 2600; -int const_k_iClientControllerCallbacks = 2700; -int const_k_iSteamControllerCallbacks = 2800; -int const_k_iClientParentalSettingsCallbacks = 2900; -int const_k_iClientDeviceAuthCallbacks = 3000; -int const_k_iClientNetworkDeviceManagerCallbacks = 3100; -int const_k_iClientMusicCallbacks = 3200; -int const_k_iClientRemoteClientManagerCallbacks = 3300; -int const_k_iClientUGCCallbacks = 3400; -int const_k_iSteamStreamClientCallbacks = 3500; -int const_k_IClientProductBuilderCallbacks = 3600; -int const_k_iClientShortcutsCallbacks = 3700; -int const_k_iClientRemoteControlManagerCallbacks = 3800; -int const_k_iSteamAppListCallbacks = 3900; -int const_k_iSteamMusicCallbacks = 4000; -int const_k_iSteamMusicRemoteCallbacks = 4100; -int const_k_iClientVRCallbacks = 4200; -int const_k_iClientGameNotificationCallbacks = 4300; -int const_k_iSteamGameNotificationCallbacks = 4400; -int const_k_iSteamHTMLSurfaceCallbacks = 4500; -int const_k_iClientVideoCallbacks = 4600; -int const_k_iClientInventoryCallbacks = 4700; -int const_k_iClientBluetoothManagerCallbacks = 4800; -int const_k_cchPersonaNameMax = 128; -int const_k_cwchPersonaNameMax = 32; -int const_k_cchMaxRichPresenceKeys = 20; -int const_k_cchMaxRichPresenceKeyLength = 64; -int const_k_cchMaxRichPresenceValueLength = 256; -int const_k_cchStatNameMax = 128; -int const_k_cchLeaderboardNameMax = 128; -int const_k_cLeaderboardDetailsMax = 64; -unsigned long const_k_InvalidUnifiedMessageHandle = 0; -unsigned long const_k_SteamItemInstanceIDInvalid = 0xffffffff; -int const_k_SteamInventoryResultInvalid = -1; +typedef uint64 uint64_steamid; // Used when passing or returning CSteamID +typedef uint64 uint64_gameid; // Used when passing or return CGameID -// OpenVR Enums -// OpenVR Structs +// ISteamClient +S_API HSteamPipe SteamAPI_ISteamClient_CreateSteamPipe( ISteamClient* self ); +S_API bool SteamAPI_ISteamClient_BReleaseSteamPipe( ISteamClient* self, HSteamPipe hSteamPipe ); +S_API HSteamUser SteamAPI_ISteamClient_ConnectToGlobalUser( ISteamClient* self, HSteamPipe hSteamPipe ); +S_API HSteamUser SteamAPI_ISteamClient_CreateLocalUser( ISteamClient* self, HSteamPipe * phSteamPipe, EAccountType eAccountType ); +S_API void SteamAPI_ISteamClient_ReleaseUser( ISteamClient* self, HSteamPipe hSteamPipe, HSteamUser hUser ); +S_API ISteamUser * SteamAPI_ISteamClient_GetISteamUser( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamGameServer * SteamAPI_ISteamClient_GetISteamGameServer( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API void SteamAPI_ISteamClient_SetLocalIPBinding( ISteamClient* self, const SteamIPAddress_t & unIP, uint16 usPort ); +S_API ISteamFriends * SteamAPI_ISteamClient_GetISteamFriends( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamUtils * SteamAPI_ISteamClient_GetISteamUtils( ISteamClient* self, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMatchmaking * SteamAPI_ISteamClient_GetISteamMatchmaking( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMatchmakingServers * SteamAPI_ISteamClient_GetISteamMatchmakingServers( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API void * SteamAPI_ISteamClient_GetISteamGenericInterface( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamUserStats * SteamAPI_ISteamClient_GetISteamUserStats( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamGameServerStats * SteamAPI_ISteamClient_GetISteamGameServerStats( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamApps * SteamAPI_ISteamClient_GetISteamApps( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamNetworking * SteamAPI_ISteamClient_GetISteamNetworking( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamRemoteStorage * SteamAPI_ISteamClient_GetISteamRemoteStorage( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamScreenshots * SteamAPI_ISteamClient_GetISteamScreenshots( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamGameSearch * SteamAPI_ISteamClient_GetISteamGameSearch( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API uint32 SteamAPI_ISteamClient_GetIPCCallCount( ISteamClient* self ); +S_API void SteamAPI_ISteamClient_SetWarningMessageHook( ISteamClient* self, SteamAPIWarningMessageHook_t pFunction ); +S_API bool SteamAPI_ISteamClient_BShutdownIfAllPipesClosed( ISteamClient* self ); +S_API ISteamHTTP * SteamAPI_ISteamClient_GetISteamHTTP( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamController * SteamAPI_ISteamClient_GetISteamController( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamUGC * SteamAPI_ISteamClient_GetISteamUGC( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMusic * SteamAPI_ISteamClient_GetISteamMusic( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamMusicRemote * SteamAPI_ISteamClient_GetISteamMusicRemote( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamHTMLSurface * SteamAPI_ISteamClient_GetISteamHTMLSurface( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamInventory * SteamAPI_ISteamClient_GetISteamInventory( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamVideo * SteamAPI_ISteamClient_GetISteamVideo( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamParentalSettings * SteamAPI_ISteamClient_GetISteamParentalSettings( ISteamClient* self, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamInput * SteamAPI_ISteamClient_GetISteamInput( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamParties * SteamAPI_ISteamClient_GetISteamParties( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +S_API ISteamRemotePlay * SteamAPI_ISteamClient_GetISteamRemotePlay( ISteamClient* self, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion ); +// ISteamUser +// A versioned accessor is exported by the library +S_API ISteamUser *SteamAPI_SteamUser_v023(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUser(), but using this ensures that you are using a matching library. +inline ISteamUser *SteamAPI_SteamUser() { return SteamAPI_SteamUser_v023(); } +S_API HSteamUser SteamAPI_ISteamUser_GetHSteamUser( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BLoggedOn( ISteamUser* self ); +S_API uint64_steamid SteamAPI_ISteamUser_GetSteamID( ISteamUser* self ); +S_API int SteamAPI_ISteamUser_InitiateGameConnection_DEPRECATED( ISteamUser* self, void * pAuthBlob, int cbMaxAuthBlob, uint64_steamid steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure ); +S_API void SteamAPI_ISteamUser_TerminateGameConnection_DEPRECATED( ISteamUser* self, uint32 unIPServer, uint16 usPortServer ); +S_API void SteamAPI_ISteamUser_TrackAppUsageEvent( ISteamUser* self, uint64_gameid gameID, int eAppUsageEvent, const char * pchExtraInfo ); +S_API bool SteamAPI_ISteamUser_GetUserDataFolder( ISteamUser* self, char * pchBuffer, int cubBuffer ); +S_API void SteamAPI_ISteamUser_StartVoiceRecording( ISteamUser* self ); +S_API void SteamAPI_ISteamUser_StopVoiceRecording( ISteamUser* self ); +S_API EVoiceResult SteamAPI_ISteamUser_GetAvailableVoice( ISteamUser* self, uint32 * pcbCompressed, uint32 * pcbUncompressed_Deprecated, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated ); +S_API EVoiceResult SteamAPI_ISteamUser_GetVoice( ISteamUser* self, bool bWantCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, bool bWantUncompressed_Deprecated, void * pUncompressedDestBuffer_Deprecated, uint32 cbUncompressedDestBufferSize_Deprecated, uint32 * nUncompressBytesWritten_Deprecated, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated ); +S_API EVoiceResult SteamAPI_ISteamUser_DecompressVoice( ISteamUser* self, const void * pCompressed, uint32 cbCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, uint32 nDesiredSampleRate ); +S_API uint32 SteamAPI_ISteamUser_GetVoiceOptimalSampleRate( ISteamUser* self ); +S_API HAuthTicket SteamAPI_ISteamUser_GetAuthSessionTicket( ISteamUser* self, void * pTicket, int cbMaxTicket, uint32 * pcbTicket, const SteamNetworkingIdentity * pSteamNetworkingIdentity ); +S_API HAuthTicket SteamAPI_ISteamUser_GetAuthTicketForWebApi( ISteamUser* self, const char * pchIdentity ); +S_API EBeginAuthSessionResult SteamAPI_ISteamUser_BeginAuthSession( ISteamUser* self, const void * pAuthTicket, int cbAuthTicket, uint64_steamid steamID ); +S_API void SteamAPI_ISteamUser_EndAuthSession( ISteamUser* self, uint64_steamid steamID ); +S_API void SteamAPI_ISteamUser_CancelAuthTicket( ISteamUser* self, HAuthTicket hAuthTicket ); +S_API EUserHasLicenseForAppResult SteamAPI_ISteamUser_UserHasLicenseForApp( ISteamUser* self, uint64_steamid steamID, AppId_t appID ); +S_API bool SteamAPI_ISteamUser_BIsBehindNAT( ISteamUser* self ); +S_API void SteamAPI_ISteamUser_AdvertiseGame( ISteamUser* self, uint64_steamid steamIDGameServer, uint32 unIPServer, uint16 usPortServer ); +S_API SteamAPICall_t SteamAPI_ISteamUser_RequestEncryptedAppTicket( ISteamUser* self, void * pDataToInclude, int cbDataToInclude ); +S_API bool SteamAPI_ISteamUser_GetEncryptedAppTicket( ISteamUser* self, void * pTicket, int cbMaxTicket, uint32 * pcbTicket ); +S_API int SteamAPI_ISteamUser_GetGameBadgeLevel( ISteamUser* self, int nSeries, bool bFoil ); +S_API int SteamAPI_ISteamUser_GetPlayerSteamLevel( ISteamUser* self ); +S_API SteamAPICall_t SteamAPI_ISteamUser_RequestStoreAuthURL( ISteamUser* self, const char * pchRedirectURL ); +S_API bool SteamAPI_ISteamUser_BIsPhoneVerified( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BIsTwoFactorEnabled( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BIsPhoneIdentifying( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BIsPhoneRequiringVerification( ISteamUser* self ); +S_API SteamAPICall_t SteamAPI_ISteamUser_GetMarketEligibility( ISteamUser* self ); +S_API SteamAPICall_t SteamAPI_ISteamUser_GetDurationControl( ISteamUser* self ); +S_API bool SteamAPI_ISteamUser_BSetDurationControlOnlineState( ISteamUser* self, EDurationControlOnlineState eNewState ); -S_API HSteamPipe SteamAPI_ISteamClient_CreateSteamPipe(intptr_t instancePtr); -S_API bool SteamAPI_ISteamClient_BReleaseSteamPipe(intptr_t instancePtr, HSteamPipe hSteamPipe); -S_API HSteamUser SteamAPI_ISteamClient_ConnectToGlobalUser(intptr_t instancePtr, HSteamPipe hSteamPipe); -S_API HSteamUser SteamAPI_ISteamClient_CreateLocalUser(intptr_t instancePtr, HSteamPipe * phSteamPipe, EAccountType eAccountType); -S_API void SteamAPI_ISteamClient_ReleaseUser(intptr_t instancePtr, HSteamPipe hSteamPipe, HSteamUser hUser); -S_API class ISteamUser * SteamAPI_ISteamClient_GetISteamUser(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamGameServer * SteamAPI_ISteamClient_GetISteamGameServer(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API void SteamAPI_ISteamClient_SetLocalIPBinding(intptr_t instancePtr, uint32 unIP, uint16 usPort); -S_API class ISteamFriends * SteamAPI_ISteamClient_GetISteamFriends(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamUtils * SteamAPI_ISteamClient_GetISteamUtils(intptr_t instancePtr, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamMatchmaking * SteamAPI_ISteamClient_GetISteamMatchmaking(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamMatchmakingServers * SteamAPI_ISteamClient_GetISteamMatchmakingServers(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API void * SteamAPI_ISteamClient_GetISteamGenericInterface(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamUserStats * SteamAPI_ISteamClient_GetISteamUserStats(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamGameServerStats * SteamAPI_ISteamClient_GetISteamGameServerStats(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamApps * SteamAPI_ISteamClient_GetISteamApps(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamNetworking * SteamAPI_ISteamClient_GetISteamNetworking(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamRemoteStorage * SteamAPI_ISteamClient_GetISteamRemoteStorage(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamScreenshots * SteamAPI_ISteamClient_GetISteamScreenshots(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API uint32 SteamAPI_ISteamClient_GetIPCCallCount(intptr_t instancePtr); -S_API void SteamAPI_ISteamClient_SetWarningMessageHook(intptr_t instancePtr, SteamAPIWarningMessageHook_t pFunction); -S_API bool SteamAPI_ISteamClient_BShutdownIfAllPipesClosed(intptr_t instancePtr); -S_API class ISteamHTTP * SteamAPI_ISteamClient_GetISteamHTTP(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamUnifiedMessages * SteamAPI_ISteamClient_GetISteamUnifiedMessages(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamController * SteamAPI_ISteamClient_GetISteamController(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamUGC * SteamAPI_ISteamClient_GetISteamUGC(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamAppList * SteamAPI_ISteamClient_GetISteamAppList(intptr_t instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamMusic * SteamAPI_ISteamClient_GetISteamMusic(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamMusicRemote * SteamAPI_ISteamClient_GetISteamMusicRemote(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamHTMLSurface * SteamAPI_ISteamClient_GetISteamHTMLSurface(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamInventory * SteamAPI_ISteamClient_GetISteamInventory(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API class ISteamVideo * SteamAPI_ISteamClient_GetISteamVideo(intptr_t instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char * pchVersion); -S_API HSteamUser SteamAPI_ISteamUser_GetHSteamUser(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUser_BLoggedOn(intptr_t instancePtr); -S_API uint64 SteamAPI_ISteamUser_GetSteamID(intptr_t instancePtr); -S_API int SteamAPI_ISteamUser_InitiateGameConnection(intptr_t instancePtr, void * pAuthBlob, int cbMaxAuthBlob, class CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure); -S_API void SteamAPI_ISteamUser_TerminateGameConnection(intptr_t instancePtr, uint32 unIPServer, uint16 usPortServer); -S_API void SteamAPI_ISteamUser_TrackAppUsageEvent(intptr_t instancePtr, class CGameID gameID, int eAppUsageEvent, const char * pchExtraInfo); -S_API bool SteamAPI_ISteamUser_GetUserDataFolder(intptr_t instancePtr, char * pchBuffer, int cubBuffer); -S_API void SteamAPI_ISteamUser_StartVoiceRecording(intptr_t instancePtr); -S_API void SteamAPI_ISteamUser_StopVoiceRecording(intptr_t instancePtr); -S_API EVoiceResult SteamAPI_ISteamUser_GetAvailableVoice(intptr_t instancePtr, uint32 * pcbCompressed, uint32 * pcbUncompressed, uint32 nUncompressedVoiceDesiredSampleRate); -S_API EVoiceResult SteamAPI_ISteamUser_GetVoice(intptr_t instancePtr, bool bWantCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, bool bWantUncompressed, void * pUncompressedDestBuffer, uint32 cbUncompressedDestBufferSize, uint32 * nUncompressBytesWritten, uint32 nUncompressedVoiceDesiredSampleRate); -S_API EVoiceResult SteamAPI_ISteamUser_DecompressVoice(intptr_t instancePtr, const void * pCompressed, uint32 cbCompressed, void * pDestBuffer, uint32 cbDestBufferSize, uint32 * nBytesWritten, uint32 nDesiredSampleRate); -S_API uint32 SteamAPI_ISteamUser_GetVoiceOptimalSampleRate(intptr_t instancePtr); -S_API HAuthTicket SteamAPI_ISteamUser_GetAuthSessionTicket(intptr_t instancePtr, void * pTicket, int cbMaxTicket, uint32 * pcbTicket); -S_API EBeginAuthSessionResult SteamAPI_ISteamUser_BeginAuthSession(intptr_t instancePtr, const void * pAuthTicket, int cbAuthTicket, class CSteamID steamID); -S_API void SteamAPI_ISteamUser_EndAuthSession(intptr_t instancePtr, class CSteamID steamID); -S_API void SteamAPI_ISteamUser_CancelAuthTicket(intptr_t instancePtr, HAuthTicket hAuthTicket); -S_API EUserHasLicenseForAppResult SteamAPI_ISteamUser_UserHasLicenseForApp(intptr_t instancePtr, class CSteamID steamID, AppId_t appID); -S_API bool SteamAPI_ISteamUser_BIsBehindNAT(intptr_t instancePtr); -S_API void SteamAPI_ISteamUser_AdvertiseGame(intptr_t instancePtr, class CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer); -S_API SteamAPICall_t SteamAPI_ISteamUser_RequestEncryptedAppTicket(intptr_t instancePtr, void * pDataToInclude, int cbDataToInclude); -S_API bool SteamAPI_ISteamUser_GetEncryptedAppTicket(intptr_t instancePtr, void * pTicket, int cbMaxTicket, uint32 * pcbTicket); -S_API int SteamAPI_ISteamUser_GetGameBadgeLevel(intptr_t instancePtr, int nSeries, bool bFoil); -S_API int SteamAPI_ISteamUser_GetPlayerSteamLevel(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamUser_RequestStoreAuthURL(intptr_t instancePtr, const char * pchRedirectURL); -S_API bool SteamAPI_ISteamUser_BIsPhoneVerified(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUser_BIsTwoFactorEnabled(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUser_BIsPhoneIdentifying(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUser_BIsPhoneRequiringVerification(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamFriends_GetPersonaName(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamFriends_SetPersonaName(intptr_t instancePtr, const char * pchPersonaName); -S_API EPersonaState SteamAPI_ISteamFriends_GetPersonaState(intptr_t instancePtr); -S_API int SteamAPI_ISteamFriends_GetFriendCount(intptr_t instancePtr, int iFriendFlags); -S_API uint64 SteamAPI_ISteamFriends_GetFriendByIndex(intptr_t instancePtr, int iFriend, int iFriendFlags); -S_API EFriendRelationship SteamAPI_ISteamFriends_GetFriendRelationship(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API EPersonaState SteamAPI_ISteamFriends_GetFriendPersonaState(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaName(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API bool SteamAPI_ISteamFriends_GetFriendGamePlayed(intptr_t instancePtr, class CSteamID steamIDFriend, struct FriendGameInfo_t * pFriendGameInfo); -S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaNameHistory(intptr_t instancePtr, class CSteamID steamIDFriend, int iPersonaName); -S_API int SteamAPI_ISteamFriends_GetFriendSteamLevel(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API const char * SteamAPI_ISteamFriends_GetPlayerNickname(intptr_t instancePtr, class CSteamID steamIDPlayer); -S_API int SteamAPI_ISteamFriends_GetFriendsGroupCount(intptr_t instancePtr); -S_API FriendsGroupID_t SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex(intptr_t instancePtr, int iFG); -S_API const char * SteamAPI_ISteamFriends_GetFriendsGroupName(intptr_t instancePtr, FriendsGroupID_t friendsGroupID); -S_API int SteamAPI_ISteamFriends_GetFriendsGroupMembersCount(intptr_t instancePtr, FriendsGroupID_t friendsGroupID); -S_API void SteamAPI_ISteamFriends_GetFriendsGroupMembersList(intptr_t instancePtr, FriendsGroupID_t friendsGroupID, class CSteamID * pOutSteamIDMembers, int nMembersCount); -S_API bool SteamAPI_ISteamFriends_HasFriend(intptr_t instancePtr, class CSteamID steamIDFriend, int iFriendFlags); -S_API int SteamAPI_ISteamFriends_GetClanCount(intptr_t instancePtr); -S_API uint64 SteamAPI_ISteamFriends_GetClanByIndex(intptr_t instancePtr, int iClan); -S_API const char * SteamAPI_ISteamFriends_GetClanName(intptr_t instancePtr, class CSteamID steamIDClan); -S_API const char * SteamAPI_ISteamFriends_GetClanTag(intptr_t instancePtr, class CSteamID steamIDClan); -S_API bool SteamAPI_ISteamFriends_GetClanActivityCounts(intptr_t instancePtr, class CSteamID steamIDClan, int * pnOnline, int * pnInGame, int * pnChatting); -S_API SteamAPICall_t SteamAPI_ISteamFriends_DownloadClanActivityCounts(intptr_t instancePtr, class CSteamID * psteamIDClans, int cClansToRequest); -S_API int SteamAPI_ISteamFriends_GetFriendCountFromSource(intptr_t instancePtr, class CSteamID steamIDSource); -S_API uint64 SteamAPI_ISteamFriends_GetFriendFromSourceByIndex(intptr_t instancePtr, class CSteamID steamIDSource, int iFriend); -S_API bool SteamAPI_ISteamFriends_IsUserInSource(intptr_t instancePtr, class CSteamID steamIDUser, class CSteamID steamIDSource); -S_API void SteamAPI_ISteamFriends_SetInGameVoiceSpeaking(intptr_t instancePtr, class CSteamID steamIDUser, bool bSpeaking); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlay(intptr_t instancePtr, const char * pchDialog); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToUser(intptr_t instancePtr, const char * pchDialog, class CSteamID steamID); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage(intptr_t instancePtr, const char * pchURL); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToStore(intptr_t instancePtr, AppId_t nAppID, EOverlayToStoreFlag eFlag); -S_API void SteamAPI_ISteamFriends_SetPlayedWith(intptr_t instancePtr, class CSteamID steamIDUserPlayedWith); -S_API void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API int SteamAPI_ISteamFriends_GetSmallFriendAvatar(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API int SteamAPI_ISteamFriends_GetMediumFriendAvatar(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API int SteamAPI_ISteamFriends_GetLargeFriendAvatar(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API bool SteamAPI_ISteamFriends_RequestUserInformation(intptr_t instancePtr, class CSteamID steamIDUser, bool bRequireNameOnly); -S_API SteamAPICall_t SteamAPI_ISteamFriends_RequestClanOfficerList(intptr_t instancePtr, class CSteamID steamIDClan); -S_API uint64 SteamAPI_ISteamFriends_GetClanOwner(intptr_t instancePtr, class CSteamID steamIDClan); -S_API int SteamAPI_ISteamFriends_GetClanOfficerCount(intptr_t instancePtr, class CSteamID steamIDClan); -S_API uint64 SteamAPI_ISteamFriends_GetClanOfficerByIndex(intptr_t instancePtr, class CSteamID steamIDClan, int iOfficer); -S_API uint32 SteamAPI_ISteamFriends_GetUserRestrictions(intptr_t instancePtr); -S_API bool SteamAPI_ISteamFriends_SetRichPresence(intptr_t instancePtr, const char * pchKey, const char * pchValue); -S_API void SteamAPI_ISteamFriends_ClearRichPresence(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresence(intptr_t instancePtr, class CSteamID steamIDFriend, const char * pchKey); -S_API int SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex(intptr_t instancePtr, class CSteamID steamIDFriend, int iKey); -S_API void SteamAPI_ISteamFriends_RequestFriendRichPresence(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API bool SteamAPI_ISteamFriends_InviteUserToGame(intptr_t instancePtr, class CSteamID steamIDFriend, const char * pchConnectString); -S_API int SteamAPI_ISteamFriends_GetCoplayFriendCount(intptr_t instancePtr); -S_API uint64 SteamAPI_ISteamFriends_GetCoplayFriend(intptr_t instancePtr, int iCoplayFriend); -S_API int SteamAPI_ISteamFriends_GetFriendCoplayTime(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API AppId_t SteamAPI_ISteamFriends_GetFriendCoplayGame(intptr_t instancePtr, class CSteamID steamIDFriend); -S_API SteamAPICall_t SteamAPI_ISteamFriends_JoinClanChatRoom(intptr_t instancePtr, class CSteamID steamIDClan); -S_API bool SteamAPI_ISteamFriends_LeaveClanChatRoom(intptr_t instancePtr, class CSteamID steamIDClan); -S_API int SteamAPI_ISteamFriends_GetClanChatMemberCount(intptr_t instancePtr, class CSteamID steamIDClan); -S_API uint64 SteamAPI_ISteamFriends_GetChatMemberByIndex(intptr_t instancePtr, class CSteamID steamIDClan, int iUser); -S_API bool SteamAPI_ISteamFriends_SendClanChatMessage(intptr_t instancePtr, class CSteamID steamIDClanChat, const char * pchText); -S_API int SteamAPI_ISteamFriends_GetClanChatMessage(intptr_t instancePtr, class CSteamID steamIDClanChat, int iMessage, void * prgchText, int cchTextMax, EChatEntryType * peChatEntryType, class CSteamID * psteamidChatter); -S_API bool SteamAPI_ISteamFriends_IsClanChatAdmin(intptr_t instancePtr, class CSteamID steamIDClanChat, class CSteamID steamIDUser); -S_API bool SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam(intptr_t instancePtr, class CSteamID steamIDClanChat); -S_API bool SteamAPI_ISteamFriends_OpenClanChatWindowInSteam(intptr_t instancePtr, class CSteamID steamIDClanChat); -S_API bool SteamAPI_ISteamFriends_CloseClanChatWindowInSteam(intptr_t instancePtr, class CSteamID steamIDClanChat); -S_API bool SteamAPI_ISteamFriends_SetListenForFriendsMessages(intptr_t instancePtr, bool bInterceptEnabled); -S_API bool SteamAPI_ISteamFriends_ReplyToFriendMessage(intptr_t instancePtr, class CSteamID steamIDFriend, const char * pchMsgToSend); -S_API int SteamAPI_ISteamFriends_GetFriendMessage(intptr_t instancePtr, class CSteamID steamIDFriend, int iMessageID, void * pvData, int cubData, EChatEntryType * peChatEntryType); -S_API SteamAPICall_t SteamAPI_ISteamFriends_GetFollowerCount(intptr_t instancePtr, class CSteamID steamID); -S_API SteamAPICall_t SteamAPI_ISteamFriends_IsFollowing(intptr_t instancePtr, class CSteamID steamID); -S_API SteamAPICall_t SteamAPI_ISteamFriends_EnumerateFollowingList(intptr_t instancePtr, uint32 unStartIndex); -S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceAppActive(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceComputerActive(intptr_t instancePtr); -S_API EUniverse SteamAPI_ISteamUtils_GetConnectedUniverse(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamUtils_GetServerRealTime(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamUtils_GetIPCountry(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUtils_GetImageSize(intptr_t instancePtr, int iImage, uint32 * pnWidth, uint32 * pnHeight); -S_API bool SteamAPI_ISteamUtils_GetImageRGBA(intptr_t instancePtr, int iImage, uint8 * pubDest, int nDestBufferSize); -S_API bool SteamAPI_ISteamUtils_GetCSERIPPort(intptr_t instancePtr, uint32 * unIP, uint16 * usPort); -S_API uint8 SteamAPI_ISteamUtils_GetCurrentBatteryPower(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamUtils_GetAppID(intptr_t instancePtr); -S_API void SteamAPI_ISteamUtils_SetOverlayNotificationPosition(intptr_t instancePtr, ENotificationPosition eNotificationPosition); -S_API bool SteamAPI_ISteamUtils_IsAPICallCompleted(intptr_t instancePtr, SteamAPICall_t hSteamAPICall, bool * pbFailed); -S_API ESteamAPICallFailure SteamAPI_ISteamUtils_GetAPICallFailureReason(intptr_t instancePtr, SteamAPICall_t hSteamAPICall); -S_API bool SteamAPI_ISteamUtils_GetAPICallResult(intptr_t instancePtr, SteamAPICall_t hSteamAPICall, void * pCallback, int cubCallback, int iCallbackExpected, bool * pbFailed); -S_API uint32 SteamAPI_ISteamUtils_GetIPCCallCount(intptr_t instancePtr); -S_API void SteamAPI_ISteamUtils_SetWarningMessageHook(intptr_t instancePtr, SteamAPIWarningMessageHook_t pFunction); -S_API bool SteamAPI_ISteamUtils_IsOverlayEnabled(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUtils_BOverlayNeedsPresent(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamUtils_CheckFileSignature(intptr_t instancePtr, const char * szFileName); -S_API bool SteamAPI_ISteamUtils_ShowGamepadTextInput(intptr_t instancePtr, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32 unCharMax, const char * pchExistingText); -S_API uint32 SteamAPI_ISteamUtils_GetEnteredGamepadTextLength(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUtils_GetEnteredGamepadTextInput(intptr_t instancePtr, char * pchText, uint32 cchText); -S_API const char * SteamAPI_ISteamUtils_GetSteamUILanguage(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUtils_IsSteamRunningInVR(intptr_t instancePtr); -S_API void SteamAPI_ISteamUtils_SetOverlayNotificationInset(intptr_t instancePtr, int nHorizontalInset, int nVerticalInset); -S_API bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode(intptr_t instancePtr); -S_API void SteamAPI_ISteamUtils_StartVRDashboard(intptr_t instancePtr); -S_API int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMatchmaking_GetFavoriteGame(intptr_t instancePtr, int iGame, AppId_t * pnAppID, uint32 * pnIP, uint16 * pnConnPort, uint16 * pnQueryPort, uint32 * punFlags, uint32 * pRTime32LastPlayedOnServer); -S_API int SteamAPI_ISteamMatchmaking_AddFavoriteGame(intptr_t instancePtr, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer); -S_API bool SteamAPI_ISteamMatchmaking_RemoveFavoriteGame(intptr_t instancePtr, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags); -S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_RequestLobbyList(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter(intptr_t instancePtr, const char * pchKeyToMatch, const char * pchValueToMatch, ELobbyComparison eComparisonType); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter(intptr_t instancePtr, const char * pchKeyToMatch, int nValueToMatch, ELobbyComparison eComparisonType); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter(intptr_t instancePtr, const char * pchKeyToMatch, int nValueToBeCloseTo); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(intptr_t instancePtr, int nSlotsAvailable); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter(intptr_t instancePtr, ELobbyDistanceFilter eLobbyDistanceFilter); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter(intptr_t instancePtr, int cMaxResults); -S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API uint64 SteamAPI_ISteamMatchmaking_GetLobbyByIndex(intptr_t instancePtr, int iLobby); -S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_CreateLobby(intptr_t instancePtr, ELobbyType eLobbyType, int cMaxMembers); -S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_JoinLobby(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API void SteamAPI_ISteamMatchmaking_LeaveLobby(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API bool SteamAPI_ISteamMatchmaking_InviteUserToLobby(intptr_t instancePtr, class CSteamID steamIDLobby, class CSteamID steamIDInvitee); -S_API int SteamAPI_ISteamMatchmaking_GetNumLobbyMembers(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API uint64 SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex(intptr_t instancePtr, class CSteamID steamIDLobby, int iMember); -S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyData(intptr_t instancePtr, class CSteamID steamIDLobby, const char * pchKey); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyData(intptr_t instancePtr, class CSteamID steamIDLobby, const char * pchKey, const char * pchValue); -S_API int SteamAPI_ISteamMatchmaking_GetLobbyDataCount(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API bool SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex(intptr_t instancePtr, class CSteamID steamIDLobby, int iLobbyData, char * pchKey, int cchKeyBufferSize, char * pchValue, int cchValueBufferSize); -S_API bool SteamAPI_ISteamMatchmaking_DeleteLobbyData(intptr_t instancePtr, class CSteamID steamIDLobby, const char * pchKey); -S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyMemberData(intptr_t instancePtr, class CSteamID steamIDLobby, class CSteamID steamIDUser, const char * pchKey); -S_API void SteamAPI_ISteamMatchmaking_SetLobbyMemberData(intptr_t instancePtr, class CSteamID steamIDLobby, const char * pchKey, const char * pchValue); -S_API bool SteamAPI_ISteamMatchmaking_SendLobbyChatMsg(intptr_t instancePtr, class CSteamID steamIDLobby, const void * pvMsgBody, int cubMsgBody); -S_API int SteamAPI_ISteamMatchmaking_GetLobbyChatEntry(intptr_t instancePtr, class CSteamID steamIDLobby, int iChatID, class CSteamID * pSteamIDUser, void * pvData, int cubData, EChatEntryType * peChatEntryType); -S_API bool SteamAPI_ISteamMatchmaking_RequestLobbyData(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API void SteamAPI_ISteamMatchmaking_SetLobbyGameServer(intptr_t instancePtr, class CSteamID steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, class CSteamID steamIDGameServer); -S_API bool SteamAPI_ISteamMatchmaking_GetLobbyGameServer(intptr_t instancePtr, class CSteamID steamIDLobby, uint32 * punGameServerIP, uint16 * punGameServerPort, class CSteamID * psteamIDGameServer); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit(intptr_t instancePtr, class CSteamID steamIDLobby, int cMaxMembers); -S_API int SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyType(intptr_t instancePtr, class CSteamID steamIDLobby, ELobbyType eLobbyType); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyJoinable(intptr_t instancePtr, class CSteamID steamIDLobby, bool bLobbyJoinable); -S_API uint64 SteamAPI_ISteamMatchmaking_GetLobbyOwner(intptr_t instancePtr, class CSteamID steamIDLobby); -S_API bool SteamAPI_ISteamMatchmaking_SetLobbyOwner(intptr_t instancePtr, class CSteamID steamIDLobby, class CSteamID steamIDNewOwner); -S_API bool SteamAPI_ISteamMatchmaking_SetLinkedLobby(intptr_t instancePtr, class CSteamID steamIDLobby, class CSteamID steamIDLobbyDependent); -S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded(intptr_t instancePtr, HServerListRequest hRequest, int iServer); -S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond(intptr_t instancePtr, HServerListRequest hRequest, int iServer); -S_API void SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete(intptr_t instancePtr, HServerListRequest hRequest, EMatchMakingServerResponse response); -S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerResponded(intptr_t instancePtr, class gameserveritem_t & server); -S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList(intptr_t instancePtr, const char * pchName, int nScore, float flTimePlayed); -S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded(intptr_t instancePtr, const char * pchRule, const char * pchValue); -S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond(intptr_t instancePtr); -S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete(intptr_t instancePtr); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestInternetServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestLANServerList(intptr_t instancePtr, AppId_t iApp, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList(intptr_t instancePtr, AppId_t iApp, struct MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, class ISteamMatchmakingServerListResponse * pRequestServersResponse); -S_API void SteamAPI_ISteamMatchmakingServers_ReleaseRequest(intptr_t instancePtr, HServerListRequest hServerListRequest); -S_API class gameserveritem_t * SteamAPI_ISteamMatchmakingServers_GetServerDetails(intptr_t instancePtr, HServerListRequest hRequest, int iServer); -S_API void SteamAPI_ISteamMatchmakingServers_CancelQuery(intptr_t instancePtr, HServerListRequest hRequest); -S_API void SteamAPI_ISteamMatchmakingServers_RefreshQuery(intptr_t instancePtr, HServerListRequest hRequest); -S_API bool SteamAPI_ISteamMatchmakingServers_IsRefreshing(intptr_t instancePtr, HServerListRequest hRequest); -S_API int SteamAPI_ISteamMatchmakingServers_GetServerCount(intptr_t instancePtr, HServerListRequest hRequest); -S_API void SteamAPI_ISteamMatchmakingServers_RefreshServer(intptr_t instancePtr, HServerListRequest hRequest, int iServer); -S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PingServer(intptr_t instancePtr, uint32 unIP, uint16 usPort, class ISteamMatchmakingPingResponse * pRequestServersResponse); -S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PlayerDetails(intptr_t instancePtr, uint32 unIP, uint16 usPort, class ISteamMatchmakingPlayersResponse * pRequestServersResponse); -S_API HServerQuery SteamAPI_ISteamMatchmakingServers_ServerRules(intptr_t instancePtr, uint32 unIP, uint16 usPort, class ISteamMatchmakingRulesResponse * pRequestServersResponse); -S_API void SteamAPI_ISteamMatchmakingServers_CancelServerQuery(intptr_t instancePtr, HServerQuery hServerQuery); -S_API bool SteamAPI_ISteamRemoteStorage_FileWrite(intptr_t instancePtr, const char * pchFile, const void * pvData, int32 cubData); -S_API int32 SteamAPI_ISteamRemoteStorage_FileRead(intptr_t instancePtr, const char * pchFile, void * pvData, int32 cubDataToRead); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileWriteAsync(intptr_t instancePtr, const char * pchFile, const void * pvData, uint32 cubData); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileReadAsync(intptr_t instancePtr, const char * pchFile, uint32 nOffset, uint32 cubToRead); -S_API bool SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete(intptr_t instancePtr, SteamAPICall_t hReadCall, void * pvBuffer, uint32 cubToRead); -S_API bool SteamAPI_ISteamRemoteStorage_FileForget(intptr_t instancePtr, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_FileDelete(intptr_t instancePtr, const char * pchFile); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileShare(intptr_t instancePtr, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_SetSyncPlatforms(intptr_t instancePtr, const char * pchFile, ERemoteStoragePlatform eRemoteStoragePlatform); -S_API UGCFileWriteStreamHandle_t SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen(intptr_t instancePtr, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk(intptr_t instancePtr, UGCFileWriteStreamHandle_t writeHandle, const void * pvData, int32 cubData); -S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamClose(intptr_t instancePtr, UGCFileWriteStreamHandle_t writeHandle); -S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel(intptr_t instancePtr, UGCFileWriteStreamHandle_t writeHandle); -S_API bool SteamAPI_ISteamRemoteStorage_FileExists(intptr_t instancePtr, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_FilePersisted(intptr_t instancePtr, const char * pchFile); -S_API int32 SteamAPI_ISteamRemoteStorage_GetFileSize(intptr_t instancePtr, const char * pchFile); -S_API int64 SteamAPI_ISteamRemoteStorage_GetFileTimestamp(intptr_t instancePtr, const char * pchFile); -S_API ERemoteStoragePlatform SteamAPI_ISteamRemoteStorage_GetSyncPlatforms(intptr_t instancePtr, const char * pchFile); -S_API int32 SteamAPI_ISteamRemoteStorage_GetFileCount(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamRemoteStorage_GetFileNameAndSize(intptr_t instancePtr, int iFile, int32 * pnFileSizeInBytes); -S_API bool SteamAPI_ISteamRemoteStorage_GetQuota(intptr_t instancePtr, uint64 * pnTotalBytes, uint64 * puAvailableBytes); -S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount(intptr_t instancePtr); -S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp(intptr_t instancePtr); -S_API void SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp(intptr_t instancePtr, bool bEnabled); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownload(intptr_t instancePtr, UGCHandle_t hContent, uint32 unPriority); -S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress(intptr_t instancePtr, UGCHandle_t hContent, int32 * pnBytesDownloaded, int32 * pnBytesExpected); -S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDetails(intptr_t instancePtr, UGCHandle_t hContent, AppId_t * pnAppID, char ** ppchName, int32 * pnFileSizeInBytes, class CSteamID * pSteamIDOwner); -S_API int32 SteamAPI_ISteamRemoteStorage_UGCRead(intptr_t instancePtr, UGCHandle_t hContent, void * pvData, int32 cubDataToRead, uint32 cOffset, EUGCReadAction eAction); -S_API int32 SteamAPI_ISteamRemoteStorage_GetCachedUGCCount(intptr_t instancePtr); -S_API UGCHandle_t SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle(intptr_t instancePtr, int32 iCachedContent); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishWorkshopFile(intptr_t instancePtr, const char * pchFile, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, struct SteamParamStringArray_t * pTags, EWorkshopFileType eWorkshopFileType); -S_API PublishedFileUpdateHandle_t SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchFile); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchPreviewFile); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchTitle); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchDescription); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, struct SteamParamStringArray_t * pTags); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails(intptr_t instancePtr, PublishedFileId_t unPublishedFileId, uint32 unMaxSecondsOld); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_DeletePublishedFile(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles(intptr_t instancePtr, uint32 unStartIndex); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SubscribePublishedFile(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles(intptr_t instancePtr, uint32 unStartIndex); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(intptr_t instancePtr, PublishedFileUpdateHandle_t updateHandle, const char * pchChangeDescription); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote(intptr_t instancePtr, PublishedFileId_t unPublishedFileId, bool bVoteUp); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails(intptr_t instancePtr, PublishedFileId_t unPublishedFileId); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(intptr_t instancePtr, class CSteamID steamId, uint32 unStartIndex, struct SteamParamStringArray_t * pRequiredTags, struct SteamParamStringArray_t * pExcludedTags); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishVideo(intptr_t instancePtr, EWorkshopVideoProvider eVideoProvider, const char * pchVideoAccount, const char * pchVideoIdentifier, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, struct SteamParamStringArray_t * pTags); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction(intptr_t instancePtr, PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(intptr_t instancePtr, EWorkshopFileAction eAction, uint32 unStartIndex); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(intptr_t instancePtr, EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, struct SteamParamStringArray_t * pTags, struct SteamParamStringArray_t * pUserTags); -S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation(intptr_t instancePtr, UGCHandle_t hContent, const char * pchLocation, uint32 unPriority); -S_API bool SteamAPI_ISteamUserStats_RequestCurrentStats(intptr_t instancePtr); -S_API bool SteamAPI_ISteamUserStats_GetStat(intptr_t instancePtr, const char * pchName, int32 * pData); -S_API bool SteamAPI_ISteamUserStats_GetStat0(intptr_t instancePtr, const char * pchName, float * pData); -S_API bool SteamAPI_ISteamUserStats_SetStat(intptr_t instancePtr, const char * pchName, int32 nData); -S_API bool SteamAPI_ISteamUserStats_SetStat0(intptr_t instancePtr, const char * pchName, float fData); -S_API bool SteamAPI_ISteamUserStats_UpdateAvgRateStat(intptr_t instancePtr, const char * pchName, float flCountThisSession, double dSessionLength); -S_API bool SteamAPI_ISteamUserStats_GetAchievement(intptr_t instancePtr, const char * pchName, bool * pbAchieved); -S_API bool SteamAPI_ISteamUserStats_SetAchievement(intptr_t instancePtr, const char * pchName); -S_API bool SteamAPI_ISteamUserStats_ClearAchievement(intptr_t instancePtr, const char * pchName); -S_API bool SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime(intptr_t instancePtr, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime); -S_API bool SteamAPI_ISteamUserStats_StoreStats(intptr_t instancePtr); -S_API int SteamAPI_ISteamUserStats_GetAchievementIcon(intptr_t instancePtr, const char * pchName); -S_API const char * SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute(intptr_t instancePtr, const char * pchName, const char * pchKey); -S_API bool SteamAPI_ISteamUserStats_IndicateAchievementProgress(intptr_t instancePtr, const char * pchName, uint32 nCurProgress, uint32 nMaxProgress); -S_API uint32 SteamAPI_ISteamUserStats_GetNumAchievements(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamUserStats_GetAchievementName(intptr_t instancePtr, uint32 iAchievement); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestUserStats(intptr_t instancePtr, class CSteamID steamIDUser); -S_API bool SteamAPI_ISteamUserStats_GetUserStat(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, int32 * pData); -S_API bool SteamAPI_ISteamUserStats_GetUserStat0(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, float * pData); -S_API bool SteamAPI_ISteamUserStats_GetUserAchievement(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, bool * pbAchieved); -S_API bool SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime); -S_API bool SteamAPI_ISteamUserStats_ResetAllStats(intptr_t instancePtr, bool bAchievementsToo); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindOrCreateLeaderboard(intptr_t instancePtr, const char * pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindLeaderboard(intptr_t instancePtr, const char * pchLeaderboardName); -S_API const char * SteamAPI_ISteamUserStats_GetLeaderboardName(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard); -S_API int SteamAPI_ISteamUserStats_GetLeaderboardEntryCount(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard); -S_API ELeaderboardSortMethod SteamAPI_ISteamUserStats_GetLeaderboardSortMethod(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard); -S_API ELeaderboardDisplayType SteamAPI_ISteamUserStats_GetLeaderboardDisplayType(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntries(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard, class CSteamID * prgUsers, int cUsers); -S_API bool SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry(intptr_t instancePtr, SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, struct LeaderboardEntry_t * pLeaderboardEntry, int32 * pDetails, int cDetailsMax); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_UploadLeaderboardScore(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32 * pScoreDetails, int cScoreDetailsCount); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_AttachLeaderboardUGC(intptr_t instancePtr, SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages(intptr_t instancePtr); -S_API int SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo(intptr_t instancePtr, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved); -S_API int SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo(intptr_t instancePtr, int iIteratorPrevious, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved); -S_API bool SteamAPI_ISteamUserStats_GetAchievementAchievedPercent(intptr_t instancePtr, const char * pchName, float * pflPercent); -S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalStats(intptr_t instancePtr, int nHistoryDays); -S_API bool SteamAPI_ISteamUserStats_GetGlobalStat(intptr_t instancePtr, const char * pchStatName, int64 * pData); -S_API bool SteamAPI_ISteamUserStats_GetGlobalStat0(intptr_t instancePtr, const char * pchStatName, double * pData); -S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistory(intptr_t instancePtr, const char * pchStatName, int64 * pData, uint32 cubData); -S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistory0(intptr_t instancePtr, const char * pchStatName, double * pData, uint32 cubData); -S_API bool SteamAPI_ISteamApps_BIsSubscribed(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BIsLowViolence(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BIsCybercafe(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BIsVACBanned(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamApps_GetCurrentGameLanguage(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamApps_GetAvailableGameLanguages(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BIsSubscribedApp(intptr_t instancePtr, AppId_t appID); -S_API bool SteamAPI_ISteamApps_BIsDlcInstalled(intptr_t instancePtr, AppId_t appID); -S_API uint32 SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime(intptr_t instancePtr, AppId_t nAppID); -S_API bool SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend(intptr_t instancePtr); -S_API int SteamAPI_ISteamApps_GetDLCCount(intptr_t instancePtr); -S_API bool SteamAPI_ISteamApps_BGetDLCDataByIndex(intptr_t instancePtr, int iDLC, AppId_t * pAppID, bool * pbAvailable, char * pchName, int cchNameBufferSize); -S_API void SteamAPI_ISteamApps_InstallDLC(intptr_t instancePtr, AppId_t nAppID); -S_API void SteamAPI_ISteamApps_UninstallDLC(intptr_t instancePtr, AppId_t nAppID); -S_API void SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey(intptr_t instancePtr, AppId_t nAppID); -S_API bool SteamAPI_ISteamApps_GetCurrentBetaName(intptr_t instancePtr, char * pchName, int cchNameBufferSize); -S_API bool SteamAPI_ISteamApps_MarkContentCorrupt(intptr_t instancePtr, bool bMissingFilesOnly); -S_API uint32 SteamAPI_ISteamApps_GetInstalledDepots(intptr_t instancePtr, AppId_t appID, DepotId_t * pvecDepots, uint32 cMaxDepots); -S_API uint32 SteamAPI_ISteamApps_GetAppInstallDir(intptr_t instancePtr, AppId_t appID, char * pchFolder, uint32 cchFolderBufferSize); -S_API bool SteamAPI_ISteamApps_BIsAppInstalled(intptr_t instancePtr, AppId_t appID); -S_API uint64 SteamAPI_ISteamApps_GetAppOwner(intptr_t instancePtr); -S_API const char * SteamAPI_ISteamApps_GetLaunchQueryParam(intptr_t instancePtr, const char * pchKey); -S_API bool SteamAPI_ISteamApps_GetDlcDownloadProgress(intptr_t instancePtr, AppId_t nAppID, uint64 * punBytesDownloaded, uint64 * punBytesTotal); -S_API int SteamAPI_ISteamApps_GetAppBuildId(intptr_t instancePtr); -S_API void SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamApps_GetFileDetails(intptr_t instancePtr, const char * pszFileName); -S_API bool SteamAPI_ISteamNetworking_SendP2PPacket(intptr_t instancePtr, class CSteamID steamIDRemote, const void * pubData, uint32 cubData, EP2PSend eP2PSendType, int nChannel); -S_API bool SteamAPI_ISteamNetworking_IsP2PPacketAvailable(intptr_t instancePtr, uint32 * pcubMsgSize, int nChannel); -S_API bool SteamAPI_ISteamNetworking_ReadP2PPacket(intptr_t instancePtr, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, class CSteamID * psteamIDRemote, int nChannel); -S_API bool SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser(intptr_t instancePtr, class CSteamID steamIDRemote); -S_API bool SteamAPI_ISteamNetworking_CloseP2PSessionWithUser(intptr_t instancePtr, class CSteamID steamIDRemote); -S_API bool SteamAPI_ISteamNetworking_CloseP2PChannelWithUser(intptr_t instancePtr, class CSteamID steamIDRemote, int nChannel); -S_API bool SteamAPI_ISteamNetworking_GetP2PSessionState(intptr_t instancePtr, class CSteamID steamIDRemote, struct P2PSessionState_t * pConnectionState); -S_API bool SteamAPI_ISteamNetworking_AllowP2PPacketRelay(intptr_t instancePtr, bool bAllow); -S_API SNetListenSocket_t SteamAPI_ISteamNetworking_CreateListenSocket(intptr_t instancePtr, int nVirtualP2PPort, uint32 nIP, uint16 nPort, bool bAllowUseOfPacketRelay); -S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateP2PConnectionSocket(intptr_t instancePtr, class CSteamID steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay); -S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateConnectionSocket(intptr_t instancePtr, uint32 nIP, uint16 nPort, int nTimeoutSec); -S_API bool SteamAPI_ISteamNetworking_DestroySocket(intptr_t instancePtr, SNetSocket_t hSocket, bool bNotifyRemoteEnd); -S_API bool SteamAPI_ISteamNetworking_DestroyListenSocket(intptr_t instancePtr, SNetListenSocket_t hSocket, bool bNotifyRemoteEnd); -S_API bool SteamAPI_ISteamNetworking_SendDataOnSocket(intptr_t instancePtr, SNetSocket_t hSocket, void * pubData, uint32 cubData, bool bReliable); -S_API bool SteamAPI_ISteamNetworking_IsDataAvailableOnSocket(intptr_t instancePtr, SNetSocket_t hSocket, uint32 * pcubMsgSize); -S_API bool SteamAPI_ISteamNetworking_RetrieveDataFromSocket(intptr_t instancePtr, SNetSocket_t hSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize); -S_API bool SteamAPI_ISteamNetworking_IsDataAvailable(intptr_t instancePtr, SNetListenSocket_t hListenSocket, uint32 * pcubMsgSize, SNetSocket_t * phSocket); -S_API bool SteamAPI_ISteamNetworking_RetrieveData(intptr_t instancePtr, SNetListenSocket_t hListenSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, SNetSocket_t * phSocket); -S_API bool SteamAPI_ISteamNetworking_GetSocketInfo(intptr_t instancePtr, SNetSocket_t hSocket, class CSteamID * pSteamIDRemote, int * peSocketStatus, uint32 * punIPRemote, uint16 * punPortRemote); -S_API bool SteamAPI_ISteamNetworking_GetListenSocketInfo(intptr_t instancePtr, SNetListenSocket_t hListenSocket, uint32 * pnIP, uint16 * pnPort); -S_API ESNetSocketConnectionType SteamAPI_ISteamNetworking_GetSocketConnectionType(intptr_t instancePtr, SNetSocket_t hSocket); -S_API int SteamAPI_ISteamNetworking_GetMaxPacketSize(intptr_t instancePtr, SNetSocket_t hSocket); -S_API ScreenshotHandle SteamAPI_ISteamScreenshots_WriteScreenshot(intptr_t instancePtr, void * pubRGB, uint32 cubRGB, int nWidth, int nHeight); -S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddScreenshotToLibrary(intptr_t instancePtr, const char * pchFilename, const char * pchThumbnailFilename, int nWidth, int nHeight); -S_API void SteamAPI_ISteamScreenshots_TriggerScreenshot(intptr_t instancePtr); -S_API void SteamAPI_ISteamScreenshots_HookScreenshots(intptr_t instancePtr, bool bHook); -S_API bool SteamAPI_ISteamScreenshots_SetLocation(intptr_t instancePtr, ScreenshotHandle hScreenshot, const char * pchLocation); -S_API bool SteamAPI_ISteamScreenshots_TagUser(intptr_t instancePtr, ScreenshotHandle hScreenshot, class CSteamID steamID); -S_API bool SteamAPI_ISteamScreenshots_TagPublishedFile(intptr_t instancePtr, ScreenshotHandle hScreenshot, PublishedFileId_t unPublishedFileID); -S_API bool SteamAPI_ISteamScreenshots_IsScreenshotsHooked(intptr_t instancePtr); -S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary(intptr_t instancePtr, EVRScreenshotType eType, const char * pchFilename, const char * pchVRFilename); -S_API bool SteamAPI_ISteamMusic_BIsEnabled(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusic_BIsPlaying(intptr_t instancePtr); -S_API AudioPlayback_Status SteamAPI_ISteamMusic_GetPlaybackStatus(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_Play(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_Pause(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_PlayPrevious(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_PlayNext(intptr_t instancePtr); -S_API void SteamAPI_ISteamMusic_SetVolume(intptr_t instancePtr, float flVolume); -S_API float SteamAPI_ISteamMusic_GetVolume(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote(intptr_t instancePtr, const char * pchName); -S_API bool SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_BActivationSuccess(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_SetDisplayName(intptr_t instancePtr, const char * pchDisplayName); -S_API bool SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64(intptr_t instancePtr, void * pvBuffer, uint32 cbBufferLength); -S_API bool SteamAPI_ISteamMusicRemote_EnablePlayPrevious(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnablePlayNext(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnableShuffled(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnableLooped(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnableQueue(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_EnablePlaylists(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus(intptr_t instancePtr, AudioPlayback_Status nStatus); -S_API bool SteamAPI_ISteamMusicRemote_UpdateShuffled(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_UpdateLooped(intptr_t instancePtr, bool bValue); -S_API bool SteamAPI_ISteamMusicRemote_UpdateVolume(intptr_t instancePtr, float flValue); -S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryWillChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable(intptr_t instancePtr, bool bAvailable); -S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText(intptr_t instancePtr, const char * pchText); -S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds(intptr_t instancePtr, int nValue); -S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt(intptr_t instancePtr, void * pvBuffer, uint32 cbBufferLength); -S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryDidChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_QueueWillChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_ResetQueueEntries(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_SetQueueEntry(intptr_t instancePtr, int nID, int nPosition, const char * pchEntryText); -S_API bool SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry(intptr_t instancePtr, int nID); -S_API bool SteamAPI_ISteamMusicRemote_QueueDidChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_PlaylistWillChange(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_ResetPlaylistEntries(intptr_t instancePtr); -S_API bool SteamAPI_ISteamMusicRemote_SetPlaylistEntry(intptr_t instancePtr, int nID, int nPosition, const char * pchEntryText); -S_API bool SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry(intptr_t instancePtr, int nID); -S_API bool SteamAPI_ISteamMusicRemote_PlaylistDidChange(intptr_t instancePtr); -S_API HTTPRequestHandle SteamAPI_ISteamHTTP_CreateHTTPRequest(intptr_t instancePtr, EHTTPMethod eHTTPRequestMethod, const char * pchAbsoluteURL); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestContextValue(intptr_t instancePtr, HTTPRequestHandle hRequest, uint64 ulContextValue); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(intptr_t instancePtr, HTTPRequestHandle hRequest, uint32 unTimeoutSeconds); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchHeaderName, const char * pchHeaderValue); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchParamName, const char * pchParamValue); -S_API bool SteamAPI_ISteamHTTP_SendHTTPRequest(intptr_t instancePtr, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle); -S_API bool SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse(intptr_t instancePtr, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle); -S_API bool SteamAPI_ISteamHTTP_DeferHTTPRequest(intptr_t instancePtr, HTTPRequestHandle hRequest); -S_API bool SteamAPI_ISteamHTTP_PrioritizeHTTPRequest(intptr_t instancePtr, HTTPRequestHandle hRequest); -S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchHeaderName, uint32 * unResponseHeaderSize); -S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchHeaderName, uint8 * pHeaderValueBuffer, uint32 unBufferSize); -S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodySize(intptr_t instancePtr, HTTPRequestHandle hRequest, uint32 * unBodySize); -S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodyData(intptr_t instancePtr, HTTPRequestHandle hRequest, uint8 * pBodyDataBuffer, uint32 unBufferSize); -S_API bool SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData(intptr_t instancePtr, HTTPRequestHandle hRequest, uint32 cOffset, uint8 * pBodyDataBuffer, uint32 unBufferSize); -S_API bool SteamAPI_ISteamHTTP_ReleaseHTTPRequest(intptr_t instancePtr, HTTPRequestHandle hRequest); -S_API bool SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct(intptr_t instancePtr, HTTPRequestHandle hRequest, float * pflPercentOut); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchContentType, uint8 * pubBody, uint32 unBodyLen); -S_API HTTPCookieContainerHandle SteamAPI_ISteamHTTP_CreateCookieContainer(intptr_t instancePtr, bool bAllowResponsesToModify); -S_API bool SteamAPI_ISteamHTTP_ReleaseCookieContainer(intptr_t instancePtr, HTTPCookieContainerHandle hCookieContainer); -S_API bool SteamAPI_ISteamHTTP_SetCookie(intptr_t instancePtr, HTTPCookieContainerHandle hCookieContainer, const char * pchHost, const char * pchUrl, const char * pchCookie); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer(intptr_t instancePtr, HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo(intptr_t instancePtr, HTTPRequestHandle hRequest, const char * pchUserAgentInfo); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(intptr_t instancePtr, HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate); -S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(intptr_t instancePtr, HTTPRequestHandle hRequest, uint32 unMilliseconds); -S_API bool SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut(intptr_t instancePtr, HTTPRequestHandle hRequest, bool * pbWasTimedOut); -S_API ClientUnifiedMessageHandle SteamAPI_ISteamUnifiedMessages_SendMethod(intptr_t instancePtr, const char * pchServiceMethod, const void * pRequestBuffer, uint32 unRequestBufferSize, uint64 unContext); -S_API bool SteamAPI_ISteamUnifiedMessages_GetMethodResponseInfo(intptr_t instancePtr, ClientUnifiedMessageHandle hHandle, uint32 * punResponseSize, EResult * peResult); -S_API bool SteamAPI_ISteamUnifiedMessages_GetMethodResponseData(intptr_t instancePtr, ClientUnifiedMessageHandle hHandle, void * pResponseBuffer, uint32 unResponseBufferSize, bool bAutoRelease); -S_API bool SteamAPI_ISteamUnifiedMessages_ReleaseMethod(intptr_t instancePtr, ClientUnifiedMessageHandle hHandle); -S_API bool SteamAPI_ISteamUnifiedMessages_SendNotification(intptr_t instancePtr, const char * pchServiceNotification, const void * pNotificationBuffer, uint32 unNotificationBufferSize); -S_API bool SteamAPI_ISteamController_Init(intptr_t instancePtr); -S_API bool SteamAPI_ISteamController_Shutdown(intptr_t instancePtr); -S_API void SteamAPI_ISteamController_RunFrame(intptr_t instancePtr); -S_API int SteamAPI_ISteamController_GetConnectedControllers(intptr_t instancePtr, ControllerHandle_t * handlesOut); -S_API bool SteamAPI_ISteamController_ShowBindingPanel(intptr_t instancePtr, ControllerHandle_t controllerHandle); -S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetActionSetHandle(intptr_t instancePtr, const char * pszActionSetName); -S_API void SteamAPI_ISteamController_ActivateActionSet(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle); -S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetCurrentActionSet(intptr_t instancePtr, ControllerHandle_t controllerHandle); -S_API ControllerDigitalActionHandle_t SteamAPI_ISteamController_GetDigitalActionHandle(intptr_t instancePtr, const char * pszActionName); -S_API struct ControllerDigitalActionData_t SteamAPI_ISteamController_GetDigitalActionData(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle); -S_API int SteamAPI_ISteamController_GetDigitalActionOrigins(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin * originsOut); -S_API ControllerAnalogActionHandle_t SteamAPI_ISteamController_GetAnalogActionHandle(intptr_t instancePtr, const char * pszActionName); -S_API struct ControllerAnalogActionData_t SteamAPI_ISteamController_GetAnalogActionData(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle); -S_API int SteamAPI_ISteamController_GetAnalogActionOrigins(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin * originsOut); -S_API void SteamAPI_ISteamController_StopAnalogActionMomentum(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction); -S_API void SteamAPI_ISteamController_TriggerHapticPulse(intptr_t instancePtr, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec); -S_API void SteamAPI_ISteamController_TriggerRepeatedHapticPulse(intptr_t instancePtr, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags); -S_API int SteamAPI_ISteamController_GetGamepadIndexForController(intptr_t instancePtr, ControllerHandle_t ulControllerHandle); -S_API ControllerHandle_t SteamAPI_ISteamController_GetControllerForGamepadIndex(intptr_t instancePtr, int nIndex); -S_API struct ControllerMotionData_t SteamAPI_ISteamController_GetMotionData(intptr_t instancePtr, ControllerHandle_t controllerHandle); -S_API bool SteamAPI_ISteamController_ShowDigitalActionOrigins(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition); -S_API bool SteamAPI_ISteamController_ShowAnalogActionOrigins(intptr_t instancePtr, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle, float flScale, float flXPosition, float flYPosition); -S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(intptr_t instancePtr, AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage); -S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequest(intptr_t instancePtr, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage); -S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs); -S_API SteamAPICall_t SteamAPI_ISteamUGC_SendQueryUGCRequest(intptr_t instancePtr, UGCQueryHandle_t handle); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCResult(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, struct SteamUGCDetails_t * pDetails); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCPreviewURL(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, char * pchURL, uint32 cchURLSize); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCMetadata(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, char * pchMetadata, uint32 cchMetadatasize); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCChildren(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCStatistic(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 * pStatValue); -S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, char * pchURLOrVideoID, uint32 cchURLSize, char * pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType * pPreviewType); -S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index); -S_API bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, char * pchKey, uint32 cchKeySize, char * pchValue, uint32 cchValueSize); -S_API bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(intptr_t instancePtr, UGCQueryHandle_t handle); -S_API bool SteamAPI_ISteamUGC_AddRequiredTag(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pTagName); -S_API bool SteamAPI_ISteamUGC_AddExcludedTag(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pTagName); -S_API bool SteamAPI_ISteamUGC_SetReturnOnlyIDs(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnOnlyIDs); -S_API bool SteamAPI_ISteamUGC_SetReturnKeyValueTags(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnKeyValueTags); -S_API bool SteamAPI_ISteamUGC_SetReturnLongDescription(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnLongDescription); -S_API bool SteamAPI_ISteamUGC_SetReturnMetadata(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnMetadata); -S_API bool SteamAPI_ISteamUGC_SetReturnChildren(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnChildren); -S_API bool SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnAdditionalPreviews); -S_API bool SteamAPI_ISteamUGC_SetReturnTotalOnly(intptr_t instancePtr, UGCQueryHandle_t handle, bool bReturnTotalOnly); -S_API bool SteamAPI_ISteamUGC_SetLanguage(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pchLanguage); -S_API bool SteamAPI_ISteamUGC_SetAllowCachedResponse(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 unMaxAgeSeconds); -S_API bool SteamAPI_ISteamUGC_SetCloudFileNameFilter(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pMatchCloudFileName); -S_API bool SteamAPI_ISteamUGC_SetMatchAnyTag(intptr_t instancePtr, UGCQueryHandle_t handle, bool bMatchAnyTag); -S_API bool SteamAPI_ISteamUGC_SetSearchText(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pSearchText); -S_API bool SteamAPI_ISteamUGC_SetRankedByTrendDays(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 unDays); -S_API bool SteamAPI_ISteamUGC_AddRequiredKeyValueTag(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pKey, const char * pValue); -S_API SteamAPICall_t SteamAPI_ISteamUGC_RequestUGCDetails(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds); -S_API SteamAPICall_t SteamAPI_ISteamUGC_CreateItem(intptr_t instancePtr, AppId_t nConsumerAppId, EWorkshopFileType eFileType); -S_API UGCUpdateHandle_t SteamAPI_ISteamUGC_StartItemUpdate(intptr_t instancePtr, AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID); -S_API bool SteamAPI_ISteamUGC_SetItemTitle(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchTitle); -S_API bool SteamAPI_ISteamUGC_SetItemDescription(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchDescription); -S_API bool SteamAPI_ISteamUGC_SetItemUpdateLanguage(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchLanguage); -S_API bool SteamAPI_ISteamUGC_SetItemMetadata(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchMetaData); -S_API bool SteamAPI_ISteamUGC_SetItemVisibility(intptr_t instancePtr, UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility); -S_API bool SteamAPI_ISteamUGC_SetItemTags(intptr_t instancePtr, UGCUpdateHandle_t updateHandle, const struct SteamParamStringArray_t * pTags); -S_API bool SteamAPI_ISteamUGC_SetItemContent(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszContentFolder); -S_API bool SteamAPI_ISteamUGC_SetItemPreview(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszPreviewFile); -S_API bool SteamAPI_ISteamUGC_RemoveItemKeyValueTags(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchKey); -S_API bool SteamAPI_ISteamUGC_AddItemKeyValueTag(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchKey, const char * pchValue); -S_API bool SteamAPI_ISteamUGC_AddItemPreviewFile(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszPreviewFile, EItemPreviewType type); -S_API bool SteamAPI_ISteamUGC_AddItemPreviewVideo(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszVideoID); -S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewFile(intptr_t instancePtr, UGCUpdateHandle_t handle, uint32 index, const char * pszPreviewFile); -S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewVideo(intptr_t instancePtr, UGCUpdateHandle_t handle, uint32 index, const char * pszVideoID); -S_API bool SteamAPI_ISteamUGC_RemoveItemPreview(intptr_t instancePtr, UGCUpdateHandle_t handle, uint32 index); -S_API SteamAPICall_t SteamAPI_ISteamUGC_SubmitItemUpdate(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchChangeNote); -S_API EItemUpdateStatus SteamAPI_ISteamUGC_GetItemUpdateProgress(intptr_t instancePtr, UGCUpdateHandle_t handle, uint64 * punBytesProcessed, uint64 * punBytesTotal); -S_API SteamAPICall_t SteamAPI_ISteamUGC_SetUserItemVote(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, bool bVoteUp); -S_API SteamAPICall_t SteamAPI_ISteamUGC_GetUserItemVote(intptr_t instancePtr, PublishedFileId_t nPublishedFileID); -S_API SteamAPICall_t SteamAPI_ISteamUGC_AddItemToFavorites(intptr_t instancePtr, AppId_t nAppId, PublishedFileId_t nPublishedFileID); -S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveItemFromFavorites(intptr_t instancePtr, AppId_t nAppId, PublishedFileId_t nPublishedFileID); -S_API SteamAPICall_t SteamAPI_ISteamUGC_SubscribeItem(intptr_t instancePtr, PublishedFileId_t nPublishedFileID); -S_API SteamAPICall_t SteamAPI_ISteamUGC_UnsubscribeItem(intptr_t instancePtr, PublishedFileId_t nPublishedFileID); -S_API uint32 SteamAPI_ISteamUGC_GetNumSubscribedItems(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamUGC_GetSubscribedItems(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries); -S_API uint32 SteamAPI_ISteamUGC_GetItemState(intptr_t instancePtr, PublishedFileId_t nPublishedFileID); -S_API bool SteamAPI_ISteamUGC_GetItemInstallInfo(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, uint64 * punSizeOnDisk, char * pchFolder, uint32 cchFolderSize, uint32 * punTimeStamp); -S_API bool SteamAPI_ISteamUGC_GetItemDownloadInfo(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, uint64 * punBytesDownloaded, uint64 * punBytesTotal); -S_API bool SteamAPI_ISteamUGC_DownloadItem(intptr_t instancePtr, PublishedFileId_t nPublishedFileID, bool bHighPriority); -S_API bool SteamAPI_ISteamUGC_BInitWorkshopForGameServer(intptr_t instancePtr, DepotId_t unWorkshopDepotID, const char * pszFolder); -S_API void SteamAPI_ISteamUGC_SuspendDownloads(intptr_t instancePtr, bool bSuspend); -S_API SteamAPICall_t SteamAPI_ISteamUGC_StartPlaytimeTracking(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs); -S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTracking(intptr_t instancePtr, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs); -S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamAppList_GetNumInstalledApps(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamAppList_GetInstalledApps(intptr_t instancePtr, AppId_t * pvecAppID, uint32 unMaxAppIDs); -S_API int SteamAPI_ISteamAppList_GetAppName(intptr_t instancePtr, AppId_t nAppID, char * pchName, int cchNameMax); -S_API int SteamAPI_ISteamAppList_GetAppInstallDir(intptr_t instancePtr, AppId_t nAppID, char * pchDirectory, int cchNameMax); -S_API int SteamAPI_ISteamAppList_GetAppBuildId(intptr_t instancePtr, AppId_t nAppID); -S_API void SteamAPI_ISteamHTMLSurface_DestructISteamHTMLSurface(intptr_t instancePtr); -S_API bool SteamAPI_ISteamHTMLSurface_Init(intptr_t instancePtr); -S_API bool SteamAPI_ISteamHTMLSurface_Shutdown(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamHTMLSurface_CreateBrowser(intptr_t instancePtr, const char * pchUserAgent, const char * pchUserCSS); -S_API void SteamAPI_ISteamHTMLSurface_RemoveBrowser(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_LoadURL(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, const char * pchURL, const char * pchPostData); -S_API void SteamAPI_ISteamHTMLSurface_SetSize(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 unWidth, uint32 unHeight); -S_API void SteamAPI_ISteamHTMLSurface_StopLoad(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_Reload(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_GoBack(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_GoForward(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_AddHeader(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, const char * pchKey, const char * pchValue); -S_API void SteamAPI_ISteamHTMLSurface_ExecuteJavascript(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, const char * pchScript); -S_API void SteamAPI_ISteamHTMLSurface_MouseUp(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton); -S_API void SteamAPI_ISteamHTMLSurface_MouseDown(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton); -S_API void SteamAPI_ISteamHTMLSurface_MouseDoubleClick(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton); -S_API void SteamAPI_ISteamHTMLSurface_MouseMove(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, int x, int y); -S_API void SteamAPI_ISteamHTMLSurface_MouseWheel(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, int32 nDelta); -S_API void SteamAPI_ISteamHTMLSurface_KeyDown(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers); -S_API void SteamAPI_ISteamHTMLSurface_KeyUp(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers); -S_API void SteamAPI_ISteamHTMLSurface_KeyChar(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers); -S_API void SteamAPI_ISteamHTMLSurface_SetHorizontalScroll(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll); -S_API void SteamAPI_ISteamHTMLSurface_SetVerticalScroll(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll); -S_API void SteamAPI_ISteamHTMLSurface_SetKeyFocus(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bHasKeyFocus); -S_API void SteamAPI_ISteamHTMLSurface_ViewSource(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_CopyToClipboard(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_PasteFromClipboard(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_Find(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, const char * pchSearchStr, bool bCurrentlyInFind, bool bReverse); -S_API void SteamAPI_ISteamHTMLSurface_StopFind(intptr_t instancePtr, HHTMLBrowser unBrowserHandle); -S_API void SteamAPI_ISteamHTMLSurface_GetLinkAtPosition(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, int x, int y); -S_API void SteamAPI_ISteamHTMLSurface_SetCookie(intptr_t instancePtr, const char * pchHostname, const char * pchKey, const char * pchValue, const char * pchPath, RTime32 nExpires, bool bSecure, bool bHTTPOnly); -S_API void SteamAPI_ISteamHTMLSurface_SetPageScaleFactor(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY); -S_API void SteamAPI_ISteamHTMLSurface_SetBackgroundMode(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bBackgroundMode); -S_API void SteamAPI_ISteamHTMLSurface_AllowStartRequest(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bAllowed); -S_API void SteamAPI_ISteamHTMLSurface_JSDialogResponse(intptr_t instancePtr, HHTMLBrowser unBrowserHandle, bool bResult); -S_API EResult SteamAPI_ISteamInventory_GetResultStatus(intptr_t instancePtr, SteamInventoryResult_t resultHandle); -S_API bool SteamAPI_ISteamInventory_GetResultItems(intptr_t instancePtr, SteamInventoryResult_t resultHandle, struct SteamItemDetails_t * pOutItemsArray, uint32 * punOutItemsArraySize); -S_API uint32 SteamAPI_ISteamInventory_GetResultTimestamp(intptr_t instancePtr, SteamInventoryResult_t resultHandle); -S_API bool SteamAPI_ISteamInventory_CheckResultSteamID(intptr_t instancePtr, SteamInventoryResult_t resultHandle, class CSteamID steamIDExpected); -S_API void SteamAPI_ISteamInventory_DestroyResult(intptr_t instancePtr, SteamInventoryResult_t resultHandle); -S_API bool SteamAPI_ISteamInventory_GetAllItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle); -S_API bool SteamAPI_ISteamInventory_GetItemsByID(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, const SteamItemInstanceID_t * pInstanceIDs, uint32 unCountInstanceIDs); -S_API bool SteamAPI_ISteamInventory_SerializeResult(intptr_t instancePtr, SteamInventoryResult_t resultHandle, void * pOutBuffer, uint32 * punOutBufferSize); -S_API bool SteamAPI_ISteamInventory_DeserializeResult(intptr_t instancePtr, SteamInventoryResult_t * pOutResultHandle, const void * pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE); -S_API bool SteamAPI_ISteamInventory_GenerateItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, const uint32 * punArrayQuantity, uint32 unArrayLength); -S_API bool SteamAPI_ISteamInventory_GrantPromoItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle); -S_API bool SteamAPI_ISteamInventory_AddPromoItem(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, SteamItemDef_t itemDef); -S_API bool SteamAPI_ISteamInventory_AddPromoItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, uint32 unArrayLength); -S_API bool SteamAPI_ISteamInventory_ConsumeItem(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemConsume, uint32 unQuantity); -S_API bool SteamAPI_ISteamInventory_ExchangeItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayGenerate, const uint32 * punArrayGenerateQuantity, uint32 unArrayGenerateLength, const SteamItemInstanceID_t * pArrayDestroy, const uint32 * punArrayDestroyQuantity, uint32 unArrayDestroyLength); -S_API bool SteamAPI_ISteamInventory_TransferItemQuantity(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemIdSource, uint32 unQuantity, SteamItemInstanceID_t itemIdDest); -S_API void SteamAPI_ISteamInventory_SendItemDropHeartbeat(intptr_t instancePtr); -S_API bool SteamAPI_ISteamInventory_TriggerItemDrop(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, SteamItemDef_t dropListDefinition); -S_API bool SteamAPI_ISteamInventory_TradeItems(intptr_t instancePtr, SteamInventoryResult_t * pResultHandle, class CSteamID steamIDTradePartner, const SteamItemInstanceID_t * pArrayGive, const uint32 * pArrayGiveQuantity, uint32 nArrayGiveLength, const SteamItemInstanceID_t * pArrayGet, const uint32 * pArrayGetQuantity, uint32 nArrayGetLength); -S_API bool SteamAPI_ISteamInventory_LoadItemDefinitions(intptr_t instancePtr); -S_API bool SteamAPI_ISteamInventory_GetItemDefinitionIDs(intptr_t instancePtr, SteamItemDef_t * pItemDefIDs, uint32 * punItemDefIDsArraySize); -S_API bool SteamAPI_ISteamInventory_GetItemDefinitionProperty(intptr_t instancePtr, SteamItemDef_t iDefinition, const char * pchPropertyName, char * pchValueBuffer, uint32 * punValueBufferSizeOut); -S_API void SteamAPI_ISteamVideo_GetVideoURL(intptr_t instancePtr, AppId_t unVideoAppID); -S_API bool SteamAPI_ISteamVideo_IsBroadcasting(intptr_t instancePtr, int * pnNumViewers); -S_API bool SteamAPI_ISteamGameServer_InitGameServer(intptr_t instancePtr, uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char * pchVersionString); -S_API void SteamAPI_ISteamGameServer_SetProduct(intptr_t instancePtr, const char * pszProduct); -S_API void SteamAPI_ISteamGameServer_SetGameDescription(intptr_t instancePtr, const char * pszGameDescription); -S_API void SteamAPI_ISteamGameServer_SetModDir(intptr_t instancePtr, const char * pszModDir); -S_API void SteamAPI_ISteamGameServer_SetDedicatedServer(intptr_t instancePtr, bool bDedicated); -S_API void SteamAPI_ISteamGameServer_LogOn(intptr_t instancePtr, const char * pszToken); -S_API void SteamAPI_ISteamGameServer_LogOnAnonymous(intptr_t instancePtr); -S_API void SteamAPI_ISteamGameServer_LogOff(intptr_t instancePtr); -S_API bool SteamAPI_ISteamGameServer_BLoggedOn(intptr_t instancePtr); -S_API bool SteamAPI_ISteamGameServer_BSecure(intptr_t instancePtr); -S_API uint64 SteamAPI_ISteamGameServer_GetSteamID(intptr_t instancePtr); -S_API bool SteamAPI_ISteamGameServer_WasRestartRequested(intptr_t instancePtr); -S_API void SteamAPI_ISteamGameServer_SetMaxPlayerCount(intptr_t instancePtr, int cPlayersMax); -S_API void SteamAPI_ISteamGameServer_SetBotPlayerCount(intptr_t instancePtr, int cBotplayers); -S_API void SteamAPI_ISteamGameServer_SetServerName(intptr_t instancePtr, const char * pszServerName); -S_API void SteamAPI_ISteamGameServer_SetMapName(intptr_t instancePtr, const char * pszMapName); -S_API void SteamAPI_ISteamGameServer_SetPasswordProtected(intptr_t instancePtr, bool bPasswordProtected); -S_API void SteamAPI_ISteamGameServer_SetSpectatorPort(intptr_t instancePtr, uint16 unSpectatorPort); -S_API void SteamAPI_ISteamGameServer_SetSpectatorServerName(intptr_t instancePtr, const char * pszSpectatorServerName); -S_API void SteamAPI_ISteamGameServer_ClearAllKeyValues(intptr_t instancePtr); -S_API void SteamAPI_ISteamGameServer_SetKeyValue(intptr_t instancePtr, const char * pKey, const char * pValue); -S_API void SteamAPI_ISteamGameServer_SetGameTags(intptr_t instancePtr, const char * pchGameTags); -S_API void SteamAPI_ISteamGameServer_SetGameData(intptr_t instancePtr, const char * pchGameData); -S_API void SteamAPI_ISteamGameServer_SetRegion(intptr_t instancePtr, const char * pszRegion); -S_API bool SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate(intptr_t instancePtr, uint32 unIPClient, const void * pvAuthBlob, uint32 cubAuthBlobSize, class CSteamID * pSteamIDUser); -S_API uint64 SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection(intptr_t instancePtr); -S_API void SteamAPI_ISteamGameServer_SendUserDisconnect(intptr_t instancePtr, class CSteamID steamIDUser); -S_API bool SteamAPI_ISteamGameServer_BUpdateUserData(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchPlayerName, uint32 uScore); -S_API HAuthTicket SteamAPI_ISteamGameServer_GetAuthSessionTicket(intptr_t instancePtr, void * pTicket, int cbMaxTicket, uint32 * pcbTicket); -S_API EBeginAuthSessionResult SteamAPI_ISteamGameServer_BeginAuthSession(intptr_t instancePtr, const void * pAuthTicket, int cbAuthTicket, class CSteamID steamID); -S_API void SteamAPI_ISteamGameServer_EndAuthSession(intptr_t instancePtr, class CSteamID steamID); -S_API void SteamAPI_ISteamGameServer_CancelAuthTicket(intptr_t instancePtr, HAuthTicket hAuthTicket); -S_API EUserHasLicenseForAppResult SteamAPI_ISteamGameServer_UserHasLicenseForApp(intptr_t instancePtr, class CSteamID steamID, AppId_t appID); -S_API bool SteamAPI_ISteamGameServer_RequestUserGroupStatus(intptr_t instancePtr, class CSteamID steamIDUser, class CSteamID steamIDGroup); -S_API void SteamAPI_ISteamGameServer_GetGameplayStats(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamGameServer_GetServerReputation(intptr_t instancePtr); -S_API uint32 SteamAPI_ISteamGameServer_GetPublicIP(intptr_t instancePtr); -S_API bool SteamAPI_ISteamGameServer_HandleIncomingPacket(intptr_t instancePtr, const void * pData, int cbData, uint32 srcIP, uint16 srcPort); -S_API int SteamAPI_ISteamGameServer_GetNextOutgoingPacket(intptr_t instancePtr, void * pOut, int cbMaxOut, uint32 * pNetAdr, uint16 * pPort); -S_API void SteamAPI_ISteamGameServer_EnableHeartbeats(intptr_t instancePtr, bool bActive); -S_API void SteamAPI_ISteamGameServer_SetHeartbeatInterval(intptr_t instancePtr, int iHeartbeatInterval); -S_API void SteamAPI_ISteamGameServer_ForceHeartbeat(intptr_t instancePtr); -S_API SteamAPICall_t SteamAPI_ISteamGameServer_AssociateWithClan(intptr_t instancePtr, class CSteamID steamIDClan); -S_API SteamAPICall_t SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility(intptr_t instancePtr, class CSteamID steamIDNewPlayer); -S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_RequestUserStats(intptr_t instancePtr, class CSteamID steamIDUser); -S_API bool SteamAPI_ISteamGameServerStats_GetUserStat(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, int32 * pData); -S_API bool SteamAPI_ISteamGameServerStats_GetUserStat0(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, float * pData); -S_API bool SteamAPI_ISteamGameServerStats_GetUserAchievement(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, bool * pbAchieved); -S_API bool SteamAPI_ISteamGameServerStats_SetUserStat(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, int32 nData); -S_API bool SteamAPI_ISteamGameServerStats_SetUserStat0(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, float fData); -S_API bool SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName, float flCountThisSession, double dSessionLength); -S_API bool SteamAPI_ISteamGameServerStats_SetUserAchievement(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName); -S_API bool SteamAPI_ISteamGameServerStats_ClearUserAchievement(intptr_t instancePtr, class CSteamID steamIDUser, const char * pchName); -S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_StoreUserStats(intptr_t instancePtr, class CSteamID steamIDUser); +// ISteamFriends + +// A versioned accessor is exported by the library +S_API ISteamFriends *SteamAPI_SteamFriends_v017(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamFriends(), but using this ensures that you are using a matching library. +inline ISteamFriends *SteamAPI_SteamFriends() { return SteamAPI_SteamFriends_v017(); } +S_API const char * SteamAPI_ISteamFriends_GetPersonaName( ISteamFriends* self ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_SetPersonaName( ISteamFriends* self, const char * pchPersonaName ); +S_API EPersonaState SteamAPI_ISteamFriends_GetPersonaState( ISteamFriends* self ); +S_API int SteamAPI_ISteamFriends_GetFriendCount( ISteamFriends* self, int iFriendFlags ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetFriendByIndex( ISteamFriends* self, int iFriend, int iFriendFlags ); +S_API EFriendRelationship SteamAPI_ISteamFriends_GetFriendRelationship( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API EPersonaState SteamAPI_ISteamFriends_GetFriendPersonaState( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaName( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamFriends_GetFriendGamePlayed( ISteamFriends* self, uint64_steamid steamIDFriend, FriendGameInfo_t * pFriendGameInfo ); +S_API const char * SteamAPI_ISteamFriends_GetFriendPersonaNameHistory( ISteamFriends* self, uint64_steamid steamIDFriend, int iPersonaName ); +S_API int SteamAPI_ISteamFriends_GetFriendSteamLevel( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API const char * SteamAPI_ISteamFriends_GetPlayerNickname( ISteamFriends* self, uint64_steamid steamIDPlayer ); +S_API int SteamAPI_ISteamFriends_GetFriendsGroupCount( ISteamFriends* self ); +S_API FriendsGroupID_t SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex( ISteamFriends* self, int iFG ); +S_API const char * SteamAPI_ISteamFriends_GetFriendsGroupName( ISteamFriends* self, FriendsGroupID_t friendsGroupID ); +S_API int SteamAPI_ISteamFriends_GetFriendsGroupMembersCount( ISteamFriends* self, FriendsGroupID_t friendsGroupID ); +S_API void SteamAPI_ISteamFriends_GetFriendsGroupMembersList( ISteamFriends* self, FriendsGroupID_t friendsGroupID, CSteamID * pOutSteamIDMembers, int nMembersCount ); +S_API bool SteamAPI_ISteamFriends_HasFriend( ISteamFriends* self, uint64_steamid steamIDFriend, int iFriendFlags ); +S_API int SteamAPI_ISteamFriends_GetClanCount( ISteamFriends* self ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetClanByIndex( ISteamFriends* self, int iClan ); +S_API const char * SteamAPI_ISteamFriends_GetClanName( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API const char * SteamAPI_ISteamFriends_GetClanTag( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API bool SteamAPI_ISteamFriends_GetClanActivityCounts( ISteamFriends* self, uint64_steamid steamIDClan, int * pnOnline, int * pnInGame, int * pnChatting ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_DownloadClanActivityCounts( ISteamFriends* self, CSteamID * psteamIDClans, int cClansToRequest ); +S_API int SteamAPI_ISteamFriends_GetFriendCountFromSource( ISteamFriends* self, uint64_steamid steamIDSource ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetFriendFromSourceByIndex( ISteamFriends* self, uint64_steamid steamIDSource, int iFriend ); +S_API bool SteamAPI_ISteamFriends_IsUserInSource( ISteamFriends* self, uint64_steamid steamIDUser, uint64_steamid steamIDSource ); +S_API void SteamAPI_ISteamFriends_SetInGameVoiceSpeaking( ISteamFriends* self, uint64_steamid steamIDUser, bool bSpeaking ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlay( ISteamFriends* self, const char * pchDialog ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToUser( ISteamFriends* self, const char * pchDialog, uint64_steamid steamID ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage( ISteamFriends* self, const char * pchURL, EActivateGameOverlayToWebPageMode eMode ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayToStore( ISteamFriends* self, AppId_t nAppID, EOverlayToStoreFlag eFlag ); +S_API void SteamAPI_ISteamFriends_SetPlayedWith( ISteamFriends* self, uint64_steamid steamIDUserPlayedWith ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog( ISteamFriends* self, uint64_steamid steamIDLobby ); +S_API int SteamAPI_ISteamFriends_GetSmallFriendAvatar( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API int SteamAPI_ISteamFriends_GetMediumFriendAvatar( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API int SteamAPI_ISteamFriends_GetLargeFriendAvatar( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamFriends_RequestUserInformation( ISteamFriends* self, uint64_steamid steamIDUser, bool bRequireNameOnly ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_RequestClanOfficerList( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetClanOwner( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API int SteamAPI_ISteamFriends_GetClanOfficerCount( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetClanOfficerByIndex( ISteamFriends* self, uint64_steamid steamIDClan, int iOfficer ); +S_API uint32 SteamAPI_ISteamFriends_GetUserRestrictions( ISteamFriends* self ); +S_API bool SteamAPI_ISteamFriends_SetRichPresence( ISteamFriends* self, const char * pchKey, const char * pchValue ); +S_API void SteamAPI_ISteamFriends_ClearRichPresence( ISteamFriends* self ); +S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresence( ISteamFriends* self, uint64_steamid steamIDFriend, const char * pchKey ); +S_API int SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API const char * SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex( ISteamFriends* self, uint64_steamid steamIDFriend, int iKey ); +S_API void SteamAPI_ISteamFriends_RequestFriendRichPresence( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API bool SteamAPI_ISteamFriends_InviteUserToGame( ISteamFriends* self, uint64_steamid steamIDFriend, const char * pchConnectString ); +S_API int SteamAPI_ISteamFriends_GetCoplayFriendCount( ISteamFriends* self ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetCoplayFriend( ISteamFriends* self, int iCoplayFriend ); +S_API int SteamAPI_ISteamFriends_GetFriendCoplayTime( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API AppId_t SteamAPI_ISteamFriends_GetFriendCoplayGame( ISteamFriends* self, uint64_steamid steamIDFriend ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_JoinClanChatRoom( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API bool SteamAPI_ISteamFriends_LeaveClanChatRoom( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API int SteamAPI_ISteamFriends_GetClanChatMemberCount( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API uint64_steamid SteamAPI_ISteamFriends_GetChatMemberByIndex( ISteamFriends* self, uint64_steamid steamIDClan, int iUser ); +S_API bool SteamAPI_ISteamFriends_SendClanChatMessage( ISteamFriends* self, uint64_steamid steamIDClanChat, const char * pchText ); +S_API int SteamAPI_ISteamFriends_GetClanChatMessage( ISteamFriends* self, uint64_steamid steamIDClanChat, int iMessage, void * prgchText, int cchTextMax, EChatEntryType * peChatEntryType, CSteamID * psteamidChatter ); +S_API bool SteamAPI_ISteamFriends_IsClanChatAdmin( ISteamFriends* self, uint64_steamid steamIDClanChat, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam( ISteamFriends* self, uint64_steamid steamIDClanChat ); +S_API bool SteamAPI_ISteamFriends_OpenClanChatWindowInSteam( ISteamFriends* self, uint64_steamid steamIDClanChat ); +S_API bool SteamAPI_ISteamFriends_CloseClanChatWindowInSteam( ISteamFriends* self, uint64_steamid steamIDClanChat ); +S_API bool SteamAPI_ISteamFriends_SetListenForFriendsMessages( ISteamFriends* self, bool bInterceptEnabled ); +S_API bool SteamAPI_ISteamFriends_ReplyToFriendMessage( ISteamFriends* self, uint64_steamid steamIDFriend, const char * pchMsgToSend ); +S_API int SteamAPI_ISteamFriends_GetFriendMessage( ISteamFriends* self, uint64_steamid steamIDFriend, int iMessageID, void * pvData, int cubData, EChatEntryType * peChatEntryType ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_GetFollowerCount( ISteamFriends* self, uint64_steamid steamID ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_IsFollowing( ISteamFriends* self, uint64_steamid steamID ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_EnumerateFollowingList( ISteamFriends* self, uint32 unStartIndex ); +S_API bool SteamAPI_ISteamFriends_IsClanPublic( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API bool SteamAPI_ISteamFriends_IsClanOfficialGameGroup( ISteamFriends* self, uint64_steamid steamIDClan ); +S_API int SteamAPI_ISteamFriends_GetNumChatsWithUnreadPriorityMessages( ISteamFriends* self ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog( ISteamFriends* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamFriends_RegisterProtocolInOverlayBrowser( ISteamFriends* self, const char * pchProtocol ); +S_API void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialogConnectString( ISteamFriends* self, const char * pchConnectString ); +S_API SteamAPICall_t SteamAPI_ISteamFriends_RequestEquippedProfileItems( ISteamFriends* self, uint64_steamid steamID ); +S_API bool SteamAPI_ISteamFriends_BHasEquippedProfileItem( ISteamFriends* self, uint64_steamid steamID, ECommunityProfileItemType itemType ); +S_API const char * SteamAPI_ISteamFriends_GetProfileItemPropertyString( ISteamFriends* self, uint64_steamid steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ); +S_API uint32 SteamAPI_ISteamFriends_GetProfileItemPropertyUint( ISteamFriends* self, uint64_steamid steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop ); + +// ISteamUtils + +// A versioned accessor is exported by the library +S_API ISteamUtils *SteamAPI_SteamUtils_v010(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUtils(), but using this ensures that you are using a matching library. +inline ISteamUtils *SteamAPI_SteamUtils() { return SteamAPI_SteamUtils_v010(); } + +// A versioned accessor is exported by the library +S_API ISteamUtils *SteamAPI_SteamGameServerUtils_v010(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerUtils(), but using this ensures that you are using a matching library. +inline ISteamUtils *SteamAPI_SteamGameServerUtils() { return SteamAPI_SteamGameServerUtils_v010(); } +S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceAppActive( ISteamUtils* self ); +S_API uint32 SteamAPI_ISteamUtils_GetSecondsSinceComputerActive( ISteamUtils* self ); +S_API EUniverse SteamAPI_ISteamUtils_GetConnectedUniverse( ISteamUtils* self ); +S_API uint32 SteamAPI_ISteamUtils_GetServerRealTime( ISteamUtils* self ); +S_API const char * SteamAPI_ISteamUtils_GetIPCountry( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_GetImageSize( ISteamUtils* self, int iImage, uint32 * pnWidth, uint32 * pnHeight ); +S_API bool SteamAPI_ISteamUtils_GetImageRGBA( ISteamUtils* self, int iImage, uint8 * pubDest, int nDestBufferSize ); +S_API uint8 SteamAPI_ISteamUtils_GetCurrentBatteryPower( ISteamUtils* self ); +S_API uint32 SteamAPI_ISteamUtils_GetAppID( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetOverlayNotificationPosition( ISteamUtils* self, ENotificationPosition eNotificationPosition ); +S_API bool SteamAPI_ISteamUtils_IsAPICallCompleted( ISteamUtils* self, SteamAPICall_t hSteamAPICall, bool * pbFailed ); +S_API ESteamAPICallFailure SteamAPI_ISteamUtils_GetAPICallFailureReason( ISteamUtils* self, SteamAPICall_t hSteamAPICall ); +S_API bool SteamAPI_ISteamUtils_GetAPICallResult( ISteamUtils* self, SteamAPICall_t hSteamAPICall, void * pCallback, int cubCallback, int iCallbackExpected, bool * pbFailed ); +S_API uint32 SteamAPI_ISteamUtils_GetIPCCallCount( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetWarningMessageHook( ISteamUtils* self, SteamAPIWarningMessageHook_t pFunction ); +S_API bool SteamAPI_ISteamUtils_IsOverlayEnabled( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_BOverlayNeedsPresent( ISteamUtils* self ); +S_API SteamAPICall_t SteamAPI_ISteamUtils_CheckFileSignature( ISteamUtils* self, const char * szFileName ); +S_API bool SteamAPI_ISteamUtils_ShowGamepadTextInput( ISteamUtils* self, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32 unCharMax, const char * pchExistingText ); +S_API uint32 SteamAPI_ISteamUtils_GetEnteredGamepadTextLength( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_GetEnteredGamepadTextInput( ISteamUtils* self, char * pchText, uint32 cchText ); +S_API const char * SteamAPI_ISteamUtils_GetSteamUILanguage( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_IsSteamRunningInVR( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetOverlayNotificationInset( ISteamUtils* self, int nHorizontalInset, int nVerticalInset ); +S_API bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_StartVRDashboard( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled( ISteamUtils* self ); +S_API void SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled( ISteamUtils* self, bool bEnabled ); +S_API bool SteamAPI_ISteamUtils_IsSteamChinaLauncher( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_InitFilterText( ISteamUtils* self, uint32 unFilterOptions ); +S_API int SteamAPI_ISteamUtils_FilterText( ISteamUtils* self, ETextFilteringContext eContext, uint64_steamid sourceSteamID, const char * pchInputMessage, char * pchOutFilteredText, uint32 nByteSizeOutFilteredText ); +S_API ESteamIPv6ConnectivityState SteamAPI_ISteamUtils_GetIPv6ConnectivityState( ISteamUtils* self, ESteamIPv6ConnectivityProtocol eProtocol ); +S_API bool SteamAPI_ISteamUtils_IsSteamRunningOnSteamDeck( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_ShowFloatingGamepadTextInput( ISteamUtils* self, EFloatingGamepadTextInputMode eKeyboardMode, int nTextFieldXPosition, int nTextFieldYPosition, int nTextFieldWidth, int nTextFieldHeight ); +S_API void SteamAPI_ISteamUtils_SetGameLauncherMode( ISteamUtils* self, bool bLauncherMode ); +S_API bool SteamAPI_ISteamUtils_DismissFloatingGamepadTextInput( ISteamUtils* self ); +S_API bool SteamAPI_ISteamUtils_DismissGamepadTextInput( ISteamUtils* self ); + +// ISteamMatchmaking + +// A versioned accessor is exported by the library +S_API ISteamMatchmaking *SteamAPI_SteamMatchmaking_v009(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMatchmaking(), but using this ensures that you are using a matching library. +inline ISteamMatchmaking *SteamAPI_SteamMatchmaking() { return SteamAPI_SteamMatchmaking_v009(); } +S_API int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount( ISteamMatchmaking* self ); +S_API bool SteamAPI_ISteamMatchmaking_GetFavoriteGame( ISteamMatchmaking* self, int iGame, AppId_t * pnAppID, uint32 * pnIP, uint16 * pnConnPort, uint16 * pnQueryPort, uint32 * punFlags, uint32 * pRTime32LastPlayedOnServer ); +S_API int SteamAPI_ISteamMatchmaking_AddFavoriteGame( ISteamMatchmaking* self, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer ); +S_API bool SteamAPI_ISteamMatchmaking_RemoveFavoriteGame( ISteamMatchmaking* self, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags ); +S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_RequestLobbyList( ISteamMatchmaking* self ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter( ISteamMatchmaking* self, const char * pchKeyToMatch, const char * pchValueToMatch, ELobbyComparison eComparisonType ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter( ISteamMatchmaking* self, const char * pchKeyToMatch, int nValueToMatch, ELobbyComparison eComparisonType ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter( ISteamMatchmaking* self, const char * pchKeyToMatch, int nValueToBeCloseTo ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable( ISteamMatchmaking* self, int nSlotsAvailable ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter( ISteamMatchmaking* self, ELobbyDistanceFilter eLobbyDistanceFilter ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter( ISteamMatchmaking* self, int cMaxResults ); +S_API void SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API uint64_steamid SteamAPI_ISteamMatchmaking_GetLobbyByIndex( ISteamMatchmaking* self, int iLobby ); +S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_CreateLobby( ISteamMatchmaking* self, ELobbyType eLobbyType, int cMaxMembers ); +S_API SteamAPICall_t SteamAPI_ISteamMatchmaking_JoinLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API void SteamAPI_ISteamMatchmaking_LeaveLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_InviteUserToLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDInvitee ); +S_API int SteamAPI_ISteamMatchmaking_GetNumLobbyMembers( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API uint64_steamid SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int iMember ); +S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey, const char * pchValue ); +S_API int SteamAPI_ISteamMatchmaking_GetLobbyDataCount( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int iLobbyData, char * pchKey, int cchKeyBufferSize, char * pchValue, int cchValueBufferSize ); +S_API bool SteamAPI_ISteamMatchmaking_DeleteLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey ); +S_API const char * SteamAPI_ISteamMatchmaking_GetLobbyMemberData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDUser, const char * pchKey ); +S_API void SteamAPI_ISteamMatchmaking_SetLobbyMemberData( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const char * pchKey, const char * pchValue ); +S_API bool SteamAPI_ISteamMatchmaking_SendLobbyChatMsg( ISteamMatchmaking* self, uint64_steamid steamIDLobby, const void * pvMsgBody, int cubMsgBody ); +S_API int SteamAPI_ISteamMatchmaking_GetLobbyChatEntry( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int iChatID, CSteamID * pSteamIDUser, void * pvData, int cubData, EChatEntryType * peChatEntryType ); +S_API bool SteamAPI_ISteamMatchmaking_RequestLobbyData( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API void SteamAPI_ISteamMatchmaking_SetLobbyGameServer( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, uint64_steamid steamIDGameServer ); +S_API bool SteamAPI_ISteamMatchmaking_GetLobbyGameServer( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint32 * punGameServerIP, uint16 * punGameServerPort, CSteamID * psteamIDGameServer ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit( ISteamMatchmaking* self, uint64_steamid steamIDLobby, int cMaxMembers ); +S_API int SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyType( ISteamMatchmaking* self, uint64_steamid steamIDLobby, ELobbyType eLobbyType ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyJoinable( ISteamMatchmaking* self, uint64_steamid steamIDLobby, bool bLobbyJoinable ); +S_API uint64_steamid SteamAPI_ISteamMatchmaking_GetLobbyOwner( ISteamMatchmaking* self, uint64_steamid steamIDLobby ); +S_API bool SteamAPI_ISteamMatchmaking_SetLobbyOwner( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDNewOwner ); +S_API bool SteamAPI_ISteamMatchmaking_SetLinkedLobby( ISteamMatchmaking* self, uint64_steamid steamIDLobby, uint64_steamid steamIDLobbyDependent ); + +// ISteamMatchmakingServerListResponse +S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded( ISteamMatchmakingServerListResponse* self, HServerListRequest hRequest, int iServer ); +S_API void SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond( ISteamMatchmakingServerListResponse* self, HServerListRequest hRequest, int iServer ); +S_API void SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete( ISteamMatchmakingServerListResponse* self, HServerListRequest hRequest, EMatchMakingServerResponse response ); + +// ISteamMatchmakingPingResponse +S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerResponded( ISteamMatchmakingPingResponse* self, gameserveritem_t & server ); +S_API void SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond( ISteamMatchmakingPingResponse* self ); + +// ISteamMatchmakingPlayersResponse +S_API void SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList( ISteamMatchmakingPlayersResponse* self, const char * pchName, int nScore, float flTimePlayed ); +S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond( ISteamMatchmakingPlayersResponse* self ); +S_API void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete( ISteamMatchmakingPlayersResponse* self ); + +// ISteamMatchmakingRulesResponse +S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded( ISteamMatchmakingRulesResponse* self, const char * pchRule, const char * pchValue ); +S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond( ISteamMatchmakingRulesResponse* self ); +S_API void SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete( ISteamMatchmakingRulesResponse* self ); + +// ISteamMatchmakingServers + +// A versioned accessor is exported by the library +S_API ISteamMatchmakingServers *SteamAPI_SteamMatchmakingServers_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMatchmakingServers(), but using this ensures that you are using a matching library. +inline ISteamMatchmakingServers *SteamAPI_SteamMatchmakingServers() { return SteamAPI_SteamMatchmakingServers_v002(); } +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestInternetServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestLANServerList( ISteamMatchmakingServers* self, AppId_t iApp, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API HServerListRequest SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList( ISteamMatchmakingServers* self, AppId_t iApp, MatchMakingKeyValuePair_t ** ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse * pRequestServersResponse ); +S_API void SteamAPI_ISteamMatchmakingServers_ReleaseRequest( ISteamMatchmakingServers* self, HServerListRequest hServerListRequest ); +S_API gameserveritem_t * SteamAPI_ISteamMatchmakingServers_GetServerDetails( ISteamMatchmakingServers* self, HServerListRequest hRequest, int iServer ); +S_API void SteamAPI_ISteamMatchmakingServers_CancelQuery( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API void SteamAPI_ISteamMatchmakingServers_RefreshQuery( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API bool SteamAPI_ISteamMatchmakingServers_IsRefreshing( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API int SteamAPI_ISteamMatchmakingServers_GetServerCount( ISteamMatchmakingServers* self, HServerListRequest hRequest ); +S_API void SteamAPI_ISteamMatchmakingServers_RefreshServer( ISteamMatchmakingServers* self, HServerListRequest hRequest, int iServer ); +S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PingServer( ISteamMatchmakingServers* self, uint32 unIP, uint16 usPort, ISteamMatchmakingPingResponse * pRequestServersResponse ); +S_API HServerQuery SteamAPI_ISteamMatchmakingServers_PlayerDetails( ISteamMatchmakingServers* self, uint32 unIP, uint16 usPort, ISteamMatchmakingPlayersResponse * pRequestServersResponse ); +S_API HServerQuery SteamAPI_ISteamMatchmakingServers_ServerRules( ISteamMatchmakingServers* self, uint32 unIP, uint16 usPort, ISteamMatchmakingRulesResponse * pRequestServersResponse ); +S_API void SteamAPI_ISteamMatchmakingServers_CancelServerQuery( ISteamMatchmakingServers* self, HServerQuery hServerQuery ); + +// ISteamGameSearch + +// A versioned accessor is exported by the library +S_API ISteamGameSearch *SteamAPI_SteamGameSearch_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameSearch(), but using this ensures that you are using a matching library. +inline ISteamGameSearch *SteamAPI_SteamGameSearch() { return SteamAPI_SteamGameSearch_v001(); } +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_AddGameSearchParams( ISteamGameSearch* self, const char * pchKeyToFind, const char * pchValuesToFind ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SearchForGameWithLobby( ISteamGameSearch* self, uint64_steamid steamIDLobby, int nPlayerMin, int nPlayerMax ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SearchForGameSolo( ISteamGameSearch* self, int nPlayerMin, int nPlayerMax ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_AcceptGame( ISteamGameSearch* self ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_DeclineGame( ISteamGameSearch* self ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_RetrieveConnectionDetails( ISteamGameSearch* self, uint64_steamid steamIDHost, char * pchConnectionDetails, int cubConnectionDetails ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_EndGameSearch( ISteamGameSearch* self ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SetGameHostParams( ISteamGameSearch* self, const char * pchKey, const char * pchValue ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SetConnectionDetails( ISteamGameSearch* self, const char * pchConnectionDetails, int cubConnectionDetails ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_RequestPlayersForGame( ISteamGameSearch* self, int nPlayerMin, int nPlayerMax, int nMaxTeamSize ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_HostConfirmGameStart( ISteamGameSearch* self, uint64 ullUniqueGameID ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_CancelRequestPlayersForGame( ISteamGameSearch* self ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_SubmitPlayerResult( ISteamGameSearch* self, uint64 ullUniqueGameID, uint64_steamid steamIDPlayer, EPlayerResult_t EPlayerResult ); +S_API EGameSearchErrorCode_t SteamAPI_ISteamGameSearch_EndGame( ISteamGameSearch* self, uint64 ullUniqueGameID ); + +// ISteamParties + +// A versioned accessor is exported by the library +S_API ISteamParties *SteamAPI_SteamParties_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamParties(), but using this ensures that you are using a matching library. +inline ISteamParties *SteamAPI_SteamParties() { return SteamAPI_SteamParties_v002(); } +S_API uint32 SteamAPI_ISteamParties_GetNumActiveBeacons( ISteamParties* self ); +S_API PartyBeaconID_t SteamAPI_ISteamParties_GetBeaconByIndex( ISteamParties* self, uint32 unIndex ); +S_API bool SteamAPI_ISteamParties_GetBeaconDetails( ISteamParties* self, PartyBeaconID_t ulBeaconID, CSteamID * pSteamIDBeaconOwner, SteamPartyBeaconLocation_t * pLocation, char * pchMetadata, int cchMetadata ); +S_API SteamAPICall_t SteamAPI_ISteamParties_JoinParty( ISteamParties* self, PartyBeaconID_t ulBeaconID ); +S_API bool SteamAPI_ISteamParties_GetNumAvailableBeaconLocations( ISteamParties* self, uint32 * puNumLocations ); +S_API bool SteamAPI_ISteamParties_GetAvailableBeaconLocations( ISteamParties* self, SteamPartyBeaconLocation_t * pLocationList, uint32 uMaxNumLocations ); +S_API SteamAPICall_t SteamAPI_ISteamParties_CreateBeacon( ISteamParties* self, uint32 unOpenSlots, SteamPartyBeaconLocation_t * pBeaconLocation, const char * pchConnectString, const char * pchMetadata ); +S_API void SteamAPI_ISteamParties_OnReservationCompleted( ISteamParties* self, PartyBeaconID_t ulBeacon, uint64_steamid steamIDUser ); +S_API void SteamAPI_ISteamParties_CancelReservation( ISteamParties* self, PartyBeaconID_t ulBeacon, uint64_steamid steamIDUser ); +S_API SteamAPICall_t SteamAPI_ISteamParties_ChangeNumOpenSlots( ISteamParties* self, PartyBeaconID_t ulBeacon, uint32 unOpenSlots ); +S_API bool SteamAPI_ISteamParties_DestroyBeacon( ISteamParties* self, PartyBeaconID_t ulBeacon ); +S_API bool SteamAPI_ISteamParties_GetBeaconLocationData( ISteamParties* self, SteamPartyBeaconLocation_t BeaconLocation, ESteamPartyBeaconLocationData eData, char * pchDataStringOut, int cchDataStringOut ); + +// ISteamRemoteStorage + +// A versioned accessor is exported by the library +S_API ISteamRemoteStorage *SteamAPI_SteamRemoteStorage_v016(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamRemoteStorage(), but using this ensures that you are using a matching library. +inline ISteamRemoteStorage *SteamAPI_SteamRemoteStorage() { return SteamAPI_SteamRemoteStorage_v016(); } +S_API bool SteamAPI_ISteamRemoteStorage_FileWrite( ISteamRemoteStorage* self, const char * pchFile, const void * pvData, int32 cubData ); +S_API int32 SteamAPI_ISteamRemoteStorage_FileRead( ISteamRemoteStorage* self, const char * pchFile, void * pvData, int32 cubDataToRead ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileWriteAsync( ISteamRemoteStorage* self, const char * pchFile, const void * pvData, uint32 cubData ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileReadAsync( ISteamRemoteStorage* self, const char * pchFile, uint32 nOffset, uint32 cubToRead ); +S_API bool SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete( ISteamRemoteStorage* self, SteamAPICall_t hReadCall, void * pvBuffer, uint32 cubToRead ); +S_API bool SteamAPI_ISteamRemoteStorage_FileForget( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_FileDelete( ISteamRemoteStorage* self, const char * pchFile ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileShare( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_SetSyncPlatforms( ISteamRemoteStorage* self, const char * pchFile, ERemoteStoragePlatform eRemoteStoragePlatform ); +S_API UGCFileWriteStreamHandle_t SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk( ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle, const void * pvData, int32 cubData ); +S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamClose( ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle ); +S_API bool SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel( ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle ); +S_API bool SteamAPI_ISteamRemoteStorage_FileExists( ISteamRemoteStorage* self, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_FilePersisted( ISteamRemoteStorage* self, const char * pchFile ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetFileSize( ISteamRemoteStorage* self, const char * pchFile ); +S_API int64 SteamAPI_ISteamRemoteStorage_GetFileTimestamp( ISteamRemoteStorage* self, const char * pchFile ); +S_API ERemoteStoragePlatform SteamAPI_ISteamRemoteStorage_GetSyncPlatforms( ISteamRemoteStorage* self, const char * pchFile ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetFileCount( ISteamRemoteStorage* self ); +S_API const char * SteamAPI_ISteamRemoteStorage_GetFileNameAndSize( ISteamRemoteStorage* self, int iFile, int32 * pnFileSizeInBytes ); +S_API bool SteamAPI_ISteamRemoteStorage_GetQuota( ISteamRemoteStorage* self, uint64 * pnTotalBytes, uint64 * puAvailableBytes ); +S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount( ISteamRemoteStorage* self ); +S_API bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp( ISteamRemoteStorage* self ); +S_API void SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp( ISteamRemoteStorage* self, bool bEnabled ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownload( ISteamRemoteStorage* self, UGCHandle_t hContent, uint32 unPriority ); +S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress( ISteamRemoteStorage* self, UGCHandle_t hContent, int32 * pnBytesDownloaded, int32 * pnBytesExpected ); +S_API bool SteamAPI_ISteamRemoteStorage_GetUGCDetails( ISteamRemoteStorage* self, UGCHandle_t hContent, AppId_t * pnAppID, char ** ppchName, int32 * pnFileSizeInBytes, CSteamID * pSteamIDOwner ); +S_API int32 SteamAPI_ISteamRemoteStorage_UGCRead( ISteamRemoteStorage* self, UGCHandle_t hContent, void * pvData, int32 cubDataToRead, uint32 cOffset, EUGCReadAction eAction ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetCachedUGCCount( ISteamRemoteStorage* self ); +S_API UGCHandle_t SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle( ISteamRemoteStorage* self, int32 iCachedContent ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishWorkshopFile( ISteamRemoteStorage* self, const char * pchFile, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t * pTags, EWorkshopFileType eWorkshopFileType ); +S_API PublishedFileUpdateHandle_t SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchFile ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchPreviewFile ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchTitle ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchDescription ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, SteamParamStringArray_t * pTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, uint32 unMaxSecondsOld ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_DeletePublishedFile( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles( ISteamRemoteStorage* self, uint32 unStartIndex ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SubscribePublishedFile( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles( ISteamRemoteStorage* self, uint32 unStartIndex ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription( ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, const char * pchChangeDescription ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, bool bVoteUp ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles( ISteamRemoteStorage* self, uint64_steamid steamId, uint32 unStartIndex, SteamParamStringArray_t * pRequiredTags, SteamParamStringArray_t * pExcludedTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishVideo( ISteamRemoteStorage* self, EWorkshopVideoProvider eVideoProvider, const char * pchVideoAccount, const char * pchVideoIdentifier, const char * pchPreviewFile, AppId_t nConsumerAppId, const char * pchTitle, const char * pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t * pTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction( ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction( ISteamRemoteStorage* self, EWorkshopFileAction eAction, uint32 unStartIndex ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles( ISteamRemoteStorage* self, EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, SteamParamStringArray_t * pTags, SteamParamStringArray_t * pUserTags ); +S_API SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation( ISteamRemoteStorage* self, UGCHandle_t hContent, const char * pchLocation, uint32 unPriority ); +S_API int32 SteamAPI_ISteamRemoteStorage_GetLocalFileChangeCount( ISteamRemoteStorage* self ); +S_API const char * SteamAPI_ISteamRemoteStorage_GetLocalFileChange( ISteamRemoteStorage* self, int iFile, ERemoteStorageLocalFileChange * pEChangeType, ERemoteStorageFilePathType * pEFilePathType ); +S_API bool SteamAPI_ISteamRemoteStorage_BeginFileWriteBatch( ISteamRemoteStorage* self ); +S_API bool SteamAPI_ISteamRemoteStorage_EndFileWriteBatch( ISteamRemoteStorage* self ); + +// ISteamUserStats + +// A versioned accessor is exported by the library +S_API ISteamUserStats *SteamAPI_SteamUserStats_v012(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUserStats(), but using this ensures that you are using a matching library. +inline ISteamUserStats *SteamAPI_SteamUserStats() { return SteamAPI_SteamUserStats_v012(); } +S_API bool SteamAPI_ISteamUserStats_RequestCurrentStats( ISteamUserStats* self ); +S_API bool SteamAPI_ISteamUserStats_GetStatInt32( ISteamUserStats* self, const char * pchName, int32 * pData ); +S_API bool SteamAPI_ISteamUserStats_GetStatFloat( ISteamUserStats* self, const char * pchName, float * pData ); +S_API bool SteamAPI_ISteamUserStats_SetStatInt32( ISteamUserStats* self, const char * pchName, int32 nData ); +S_API bool SteamAPI_ISteamUserStats_SetStatFloat( ISteamUserStats* self, const char * pchName, float fData ); +S_API bool SteamAPI_ISteamUserStats_UpdateAvgRateStat( ISteamUserStats* self, const char * pchName, float flCountThisSession, double dSessionLength ); +S_API bool SteamAPI_ISteamUserStats_GetAchievement( ISteamUserStats* self, const char * pchName, bool * pbAchieved ); +S_API bool SteamAPI_ISteamUserStats_SetAchievement( ISteamUserStats* self, const char * pchName ); +S_API bool SteamAPI_ISteamUserStats_ClearAchievement( ISteamUserStats* self, const char * pchName ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime( ISteamUserStats* self, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime ); +S_API bool SteamAPI_ISteamUserStats_StoreStats( ISteamUserStats* self ); +S_API int SteamAPI_ISteamUserStats_GetAchievementIcon( ISteamUserStats* self, const char * pchName ); +S_API const char * SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute( ISteamUserStats* self, const char * pchName, const char * pchKey ); +S_API bool SteamAPI_ISteamUserStats_IndicateAchievementProgress( ISteamUserStats* self, const char * pchName, uint32 nCurProgress, uint32 nMaxProgress ); +S_API uint32 SteamAPI_ISteamUserStats_GetNumAchievements( ISteamUserStats* self ); +S_API const char * SteamAPI_ISteamUserStats_GetAchievementName( ISteamUserStats* self, uint32 iAchievement ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestUserStats( ISteamUserStats* self, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamUserStats_GetUserStatInt32( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, int32 * pData ); +S_API bool SteamAPI_ISteamUserStats_GetUserStatFloat( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, float * pData ); +S_API bool SteamAPI_ISteamUserStats_GetUserAchievement( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, bool * pbAchieved ); +S_API bool SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime( ISteamUserStats* self, uint64_steamid steamIDUser, const char * pchName, bool * pbAchieved, uint32 * punUnlockTime ); +S_API bool SteamAPI_ISteamUserStats_ResetAllStats( ISteamUserStats* self, bool bAchievementsToo ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindOrCreateLeaderboard( ISteamUserStats* self, const char * pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_FindLeaderboard( ISteamUserStats* self, const char * pchLeaderboardName ); +S_API const char * SteamAPI_ISteamUserStats_GetLeaderboardName( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API int SteamAPI_ISteamUserStats_GetLeaderboardEntryCount( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API ELeaderboardSortMethod SteamAPI_ISteamUserStats_GetLeaderboardSortMethod( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API ELeaderboardDisplayType SteamAPI_ISteamUserStats_GetLeaderboardDisplayType( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntries( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, CSteamID * prgUsers, int cUsers ); +S_API bool SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry( ISteamUserStats* self, SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, LeaderboardEntry_t * pLeaderboardEntry, int32 * pDetails, int cDetailsMax ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_UploadLeaderboardScore( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32 * pScoreDetails, int cScoreDetailsCount ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_AttachLeaderboardUGC( ISteamUserStats* self, SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers( ISteamUserStats* self ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages( ISteamUserStats* self ); +S_API int SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo( ISteamUserStats* self, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved ); +S_API int SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo( ISteamUserStats* self, int iIteratorPrevious, char * pchName, uint32 unNameBufLen, float * pflPercent, bool * pbAchieved ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementAchievedPercent( ISteamUserStats* self, const char * pchName, float * pflPercent ); +S_API SteamAPICall_t SteamAPI_ISteamUserStats_RequestGlobalStats( ISteamUserStats* self, int nHistoryDays ); +S_API bool SteamAPI_ISteamUserStats_GetGlobalStatInt64( ISteamUserStats* self, const char * pchStatName, int64 * pData ); +S_API bool SteamAPI_ISteamUserStats_GetGlobalStatDouble( ISteamUserStats* self, const char * pchStatName, double * pData ); +S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64( ISteamUserStats* self, const char * pchStatName, int64 * pData, uint32 cubData ); +S_API int32 SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble( ISteamUserStats* self, const char * pchStatName, double * pData, uint32 cubData ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementProgressLimitsInt32( ISteamUserStats* self, const char * pchName, int32 * pnMinProgress, int32 * pnMaxProgress ); +S_API bool SteamAPI_ISteamUserStats_GetAchievementProgressLimitsFloat( ISteamUserStats* self, const char * pchName, float * pfMinProgress, float * pfMaxProgress ); + +// ISteamApps + +// A versioned accessor is exported by the library +S_API ISteamApps *SteamAPI_SteamApps_v008(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamApps(), but using this ensures that you are using a matching library. +inline ISteamApps *SteamAPI_SteamApps() { return SteamAPI_SteamApps_v008(); } +S_API bool SteamAPI_ISteamApps_BIsSubscribed( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsLowViolence( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsCybercafe( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsVACBanned( ISteamApps* self ); +S_API const char * SteamAPI_ISteamApps_GetCurrentGameLanguage( ISteamApps* self ); +S_API const char * SteamAPI_ISteamApps_GetAvailableGameLanguages( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsSubscribedApp( ISteamApps* self, AppId_t appID ); +S_API bool SteamAPI_ISteamApps_BIsDlcInstalled( ISteamApps* self, AppId_t appID ); +S_API uint32 SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime( ISteamApps* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend( ISteamApps* self ); +S_API int SteamAPI_ISteamApps_GetDLCCount( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BGetDLCDataByIndex( ISteamApps* self, int iDLC, AppId_t * pAppID, bool * pbAvailable, char * pchName, int cchNameBufferSize ); +S_API void SteamAPI_ISteamApps_InstallDLC( ISteamApps* self, AppId_t nAppID ); +S_API void SteamAPI_ISteamApps_UninstallDLC( ISteamApps* self, AppId_t nAppID ); +S_API void SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey( ISteamApps* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamApps_GetCurrentBetaName( ISteamApps* self, char * pchName, int cchNameBufferSize ); +S_API bool SteamAPI_ISteamApps_MarkContentCorrupt( ISteamApps* self, bool bMissingFilesOnly ); +S_API uint32 SteamAPI_ISteamApps_GetInstalledDepots( ISteamApps* self, AppId_t appID, DepotId_t * pvecDepots, uint32 cMaxDepots ); +S_API uint32 SteamAPI_ISteamApps_GetAppInstallDir( ISteamApps* self, AppId_t appID, char * pchFolder, uint32 cchFolderBufferSize ); +S_API bool SteamAPI_ISteamApps_BIsAppInstalled( ISteamApps* self, AppId_t appID ); +S_API uint64_steamid SteamAPI_ISteamApps_GetAppOwner( ISteamApps* self ); +S_API const char * SteamAPI_ISteamApps_GetLaunchQueryParam( ISteamApps* self, const char * pchKey ); +S_API bool SteamAPI_ISteamApps_GetDlcDownloadProgress( ISteamApps* self, AppId_t nAppID, uint64 * punBytesDownloaded, uint64 * punBytesTotal ); +S_API int SteamAPI_ISteamApps_GetAppBuildId( ISteamApps* self ); +S_API void SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys( ISteamApps* self ); +S_API SteamAPICall_t SteamAPI_ISteamApps_GetFileDetails( ISteamApps* self, const char * pszFileName ); +S_API int SteamAPI_ISteamApps_GetLaunchCommandLine( ISteamApps* self, char * pszCommandLine, int cubCommandLine ); +S_API bool SteamAPI_ISteamApps_BIsSubscribedFromFamilySharing( ISteamApps* self ); +S_API bool SteamAPI_ISteamApps_BIsTimedTrial( ISteamApps* self, uint32 * punSecondsAllowed, uint32 * punSecondsPlayed ); +S_API bool SteamAPI_ISteamApps_SetDlcContext( ISteamApps* self, AppId_t nAppID ); + +// ISteamNetworking + +// A versioned accessor is exported by the library +S_API ISteamNetworking *SteamAPI_SteamNetworking_v006(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworking(), but using this ensures that you are using a matching library. +inline ISteamNetworking *SteamAPI_SteamNetworking() { return SteamAPI_SteamNetworking_v006(); } + +// A versioned accessor is exported by the library +S_API ISteamNetworking *SteamAPI_SteamGameServerNetworking_v006(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerNetworking(), but using this ensures that you are using a matching library. +inline ISteamNetworking *SteamAPI_SteamGameServerNetworking() { return SteamAPI_SteamGameServerNetworking_v006(); } +S_API bool SteamAPI_ISteamNetworking_SendP2PPacket( ISteamNetworking* self, uint64_steamid steamIDRemote, const void * pubData, uint32 cubData, EP2PSend eP2PSendType, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_IsP2PPacketAvailable( ISteamNetworking* self, uint32 * pcubMsgSize, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_ReadP2PPacket( ISteamNetworking* self, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, CSteamID * psteamIDRemote, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser( ISteamNetworking* self, uint64_steamid steamIDRemote ); +S_API bool SteamAPI_ISteamNetworking_CloseP2PSessionWithUser( ISteamNetworking* self, uint64_steamid steamIDRemote ); +S_API bool SteamAPI_ISteamNetworking_CloseP2PChannelWithUser( ISteamNetworking* self, uint64_steamid steamIDRemote, int nChannel ); +S_API bool SteamAPI_ISteamNetworking_GetP2PSessionState( ISteamNetworking* self, uint64_steamid steamIDRemote, P2PSessionState_t * pConnectionState ); +S_API bool SteamAPI_ISteamNetworking_AllowP2PPacketRelay( ISteamNetworking* self, bool bAllow ); +S_API SNetListenSocket_t SteamAPI_ISteamNetworking_CreateListenSocket( ISteamNetworking* self, int nVirtualP2PPort, SteamIPAddress_t nIP, uint16 nPort, bool bAllowUseOfPacketRelay ); +S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateP2PConnectionSocket( ISteamNetworking* self, uint64_steamid steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay ); +S_API SNetSocket_t SteamAPI_ISteamNetworking_CreateConnectionSocket( ISteamNetworking* self, SteamIPAddress_t nIP, uint16 nPort, int nTimeoutSec ); +S_API bool SteamAPI_ISteamNetworking_DestroySocket( ISteamNetworking* self, SNetSocket_t hSocket, bool bNotifyRemoteEnd ); +S_API bool SteamAPI_ISteamNetworking_DestroyListenSocket( ISteamNetworking* self, SNetListenSocket_t hSocket, bool bNotifyRemoteEnd ); +S_API bool SteamAPI_ISteamNetworking_SendDataOnSocket( ISteamNetworking* self, SNetSocket_t hSocket, void * pubData, uint32 cubData, bool bReliable ); +S_API bool SteamAPI_ISteamNetworking_IsDataAvailableOnSocket( ISteamNetworking* self, SNetSocket_t hSocket, uint32 * pcubMsgSize ); +S_API bool SteamAPI_ISteamNetworking_RetrieveDataFromSocket( ISteamNetworking* self, SNetSocket_t hSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize ); +S_API bool SteamAPI_ISteamNetworking_IsDataAvailable( ISteamNetworking* self, SNetListenSocket_t hListenSocket, uint32 * pcubMsgSize, SNetSocket_t * phSocket ); +S_API bool SteamAPI_ISteamNetworking_RetrieveData( ISteamNetworking* self, SNetListenSocket_t hListenSocket, void * pubDest, uint32 cubDest, uint32 * pcubMsgSize, SNetSocket_t * phSocket ); +S_API bool SteamAPI_ISteamNetworking_GetSocketInfo( ISteamNetworking* self, SNetSocket_t hSocket, CSteamID * pSteamIDRemote, int * peSocketStatus, SteamIPAddress_t * punIPRemote, uint16 * punPortRemote ); +S_API bool SteamAPI_ISteamNetworking_GetListenSocketInfo( ISteamNetworking* self, SNetListenSocket_t hListenSocket, SteamIPAddress_t * pnIP, uint16 * pnPort ); +S_API ESNetSocketConnectionType SteamAPI_ISteamNetworking_GetSocketConnectionType( ISteamNetworking* self, SNetSocket_t hSocket ); +S_API int SteamAPI_ISteamNetworking_GetMaxPacketSize( ISteamNetworking* self, SNetSocket_t hSocket ); + +// ISteamScreenshots + +// A versioned accessor is exported by the library +S_API ISteamScreenshots *SteamAPI_SteamScreenshots_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamScreenshots(), but using this ensures that you are using a matching library. +inline ISteamScreenshots *SteamAPI_SteamScreenshots() { return SteamAPI_SteamScreenshots_v003(); } +S_API ScreenshotHandle SteamAPI_ISteamScreenshots_WriteScreenshot( ISteamScreenshots* self, void * pubRGB, uint32 cubRGB, int nWidth, int nHeight ); +S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddScreenshotToLibrary( ISteamScreenshots* self, const char * pchFilename, const char * pchThumbnailFilename, int nWidth, int nHeight ); +S_API void SteamAPI_ISteamScreenshots_TriggerScreenshot( ISteamScreenshots* self ); +S_API void SteamAPI_ISteamScreenshots_HookScreenshots( ISteamScreenshots* self, bool bHook ); +S_API bool SteamAPI_ISteamScreenshots_SetLocation( ISteamScreenshots* self, ScreenshotHandle hScreenshot, const char * pchLocation ); +S_API bool SteamAPI_ISteamScreenshots_TagUser( ISteamScreenshots* self, ScreenshotHandle hScreenshot, uint64_steamid steamID ); +S_API bool SteamAPI_ISteamScreenshots_TagPublishedFile( ISteamScreenshots* self, ScreenshotHandle hScreenshot, PublishedFileId_t unPublishedFileID ); +S_API bool SteamAPI_ISteamScreenshots_IsScreenshotsHooked( ISteamScreenshots* self ); +S_API ScreenshotHandle SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary( ISteamScreenshots* self, EVRScreenshotType eType, const char * pchFilename, const char * pchVRFilename ); + +// ISteamMusic + +// A versioned accessor is exported by the library +S_API ISteamMusic *SteamAPI_SteamMusic_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMusic(), but using this ensures that you are using a matching library. +inline ISteamMusic *SteamAPI_SteamMusic() { return SteamAPI_SteamMusic_v001(); } +S_API bool SteamAPI_ISteamMusic_BIsEnabled( ISteamMusic* self ); +S_API bool SteamAPI_ISteamMusic_BIsPlaying( ISteamMusic* self ); +S_API AudioPlayback_Status SteamAPI_ISteamMusic_GetPlaybackStatus( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_Play( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_Pause( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_PlayPrevious( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_PlayNext( ISteamMusic* self ); +S_API void SteamAPI_ISteamMusic_SetVolume( ISteamMusic* self, float flVolume ); +S_API float SteamAPI_ISteamMusic_GetVolume( ISteamMusic* self ); + +// ISteamMusicRemote + +// A versioned accessor is exported by the library +S_API ISteamMusicRemote *SteamAPI_SteamMusicRemote_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamMusicRemote(), but using this ensures that you are using a matching library. +inline ISteamMusicRemote *SteamAPI_SteamMusicRemote() { return SteamAPI_SteamMusicRemote_v001(); } +S_API bool SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote( ISteamMusicRemote* self, const char * pchName ); +S_API bool SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_BActivationSuccess( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_SetDisplayName( ISteamMusicRemote* self, const char * pchDisplayName ); +S_API bool SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64( ISteamMusicRemote* self, void * pvBuffer, uint32 cbBufferLength ); +S_API bool SteamAPI_ISteamMusicRemote_EnablePlayPrevious( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnablePlayNext( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnableShuffled( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnableLooped( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnableQueue( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_EnablePlaylists( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus( ISteamMusicRemote* self, AudioPlayback_Status nStatus ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateShuffled( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateLooped( ISteamMusicRemote* self, bool bValue ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateVolume( ISteamMusicRemote* self, float flValue ); +S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryWillChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable( ISteamMusicRemote* self, bool bAvailable ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText( ISteamMusicRemote* self, const char * pchText ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds( ISteamMusicRemote* self, int nValue ); +S_API bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt( ISteamMusicRemote* self, void * pvBuffer, uint32 cbBufferLength ); +S_API bool SteamAPI_ISteamMusicRemote_CurrentEntryDidChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_QueueWillChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_ResetQueueEntries( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_SetQueueEntry( ISteamMusicRemote* self, int nID, int nPosition, const char * pchEntryText ); +S_API bool SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry( ISteamMusicRemote* self, int nID ); +S_API bool SteamAPI_ISteamMusicRemote_QueueDidChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_PlaylistWillChange( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_ResetPlaylistEntries( ISteamMusicRemote* self ); +S_API bool SteamAPI_ISteamMusicRemote_SetPlaylistEntry( ISteamMusicRemote* self, int nID, int nPosition, const char * pchEntryText ); +S_API bool SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry( ISteamMusicRemote* self, int nID ); +S_API bool SteamAPI_ISteamMusicRemote_PlaylistDidChange( ISteamMusicRemote* self ); + +// ISteamHTTP + +// A versioned accessor is exported by the library +S_API ISteamHTTP *SteamAPI_SteamHTTP_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamHTTP(), but using this ensures that you are using a matching library. +inline ISteamHTTP *SteamAPI_SteamHTTP() { return SteamAPI_SteamHTTP_v003(); } + +// A versioned accessor is exported by the library +S_API ISteamHTTP *SteamAPI_SteamGameServerHTTP_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerHTTP(), but using this ensures that you are using a matching library. +inline ISteamHTTP *SteamAPI_SteamGameServerHTTP() { return SteamAPI_SteamGameServerHTTP_v003(); } +S_API HTTPRequestHandle SteamAPI_ISteamHTTP_CreateHTTPRequest( ISteamHTTP* self, EHTTPMethod eHTTPRequestMethod, const char * pchAbsoluteURL ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestContextValue( ISteamHTTP* self, HTTPRequestHandle hRequest, uint64 ulContextValue ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 unTimeoutSeconds ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchHeaderName, const char * pchHeaderValue ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchParamName, const char * pchParamValue ); +S_API bool SteamAPI_ISteamHTTP_SendHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle ); +S_API bool SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse( ISteamHTTP* self, HTTPRequestHandle hRequest, SteamAPICall_t * pCallHandle ); +S_API bool SteamAPI_ISteamHTTP_DeferHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest ); +S_API bool SteamAPI_ISteamHTTP_PrioritizeHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchHeaderName, uint32 * unResponseHeaderSize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchHeaderName, uint8 * pHeaderValueBuffer, uint32 unBufferSize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodySize( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 * unBodySize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPResponseBodyData( ISteamHTTP* self, HTTPRequestHandle hRequest, uint8 * pBodyDataBuffer, uint32 unBufferSize ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 cOffset, uint8 * pBodyDataBuffer, uint32 unBufferSize ); +S_API bool SteamAPI_ISteamHTTP_ReleaseHTTPRequest( ISteamHTTP* self, HTTPRequestHandle hRequest ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct( ISteamHTTP* self, HTTPRequestHandle hRequest, float * pflPercentOut ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchContentType, uint8 * pubBody, uint32 unBodyLen ); +S_API HTTPCookieContainerHandle SteamAPI_ISteamHTTP_CreateCookieContainer( ISteamHTTP* self, bool bAllowResponsesToModify ); +S_API bool SteamAPI_ISteamHTTP_ReleaseCookieContainer( ISteamHTTP* self, HTTPCookieContainerHandle hCookieContainer ); +S_API bool SteamAPI_ISteamHTTP_SetCookie( ISteamHTTP* self, HTTPCookieContainerHandle hCookieContainer, const char * pchHost, const char * pchUrl, const char * pchCookie ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer( ISteamHTTP* self, HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo( ISteamHTTP* self, HTTPRequestHandle hRequest, const char * pchUserAgentInfo ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate( ISteamHTTP* self, HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate ); +S_API bool SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS( ISteamHTTP* self, HTTPRequestHandle hRequest, uint32 unMilliseconds ); +S_API bool SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut( ISteamHTTP* self, HTTPRequestHandle hRequest, bool * pbWasTimedOut ); + +// ISteamInput + +// A versioned accessor is exported by the library +S_API ISteamInput *SteamAPI_SteamInput_v006(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamInput(), but using this ensures that you are using a matching library. +inline ISteamInput *SteamAPI_SteamInput() { return SteamAPI_SteamInput_v006(); } +S_API bool SteamAPI_ISteamInput_Init( ISteamInput* self, bool bExplicitlyCallRunFrame ); +S_API bool SteamAPI_ISteamInput_Shutdown( ISteamInput* self ); +S_API bool SteamAPI_ISteamInput_SetInputActionManifestFilePath( ISteamInput* self, const char * pchInputActionManifestAbsolutePath ); +S_API void SteamAPI_ISteamInput_RunFrame( ISteamInput* self, bool bReservedValue ); +S_API bool SteamAPI_ISteamInput_BWaitForData( ISteamInput* self, bool bWaitForever, uint32 unTimeout ); +S_API bool SteamAPI_ISteamInput_BNewDataAvailable( ISteamInput* self ); +S_API int SteamAPI_ISteamInput_GetConnectedControllers( ISteamInput* self, InputHandle_t * handlesOut ); +S_API void SteamAPI_ISteamInput_EnableDeviceCallbacks( ISteamInput* self ); +S_API void SteamAPI_ISteamInput_EnableActionEventCallbacks( ISteamInput* self, SteamInputActionEventCallbackPointer pCallback ); +S_API InputActionSetHandle_t SteamAPI_ISteamInput_GetActionSetHandle( ISteamInput* self, const char * pszActionSetName ); +S_API void SteamAPI_ISteamInput_ActivateActionSet( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle ); +S_API InputActionSetHandle_t SteamAPI_ISteamInput_GetCurrentActionSet( ISteamInput* self, InputHandle_t inputHandle ); +S_API void SteamAPI_ISteamInput_ActivateActionSetLayer( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamInput_DeactivateActionSetLayer( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamInput_DeactivateAllActionSetLayers( ISteamInput* self, InputHandle_t inputHandle ); +S_API int SteamAPI_ISteamInput_GetActiveActionSetLayers( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t * handlesOut ); +S_API InputDigitalActionHandle_t SteamAPI_ISteamInput_GetDigitalActionHandle( ISteamInput* self, const char * pszActionName ); +S_API InputDigitalActionData_t SteamAPI_ISteamInput_GetDigitalActionData( ISteamInput* self, InputHandle_t inputHandle, InputDigitalActionHandle_t digitalActionHandle ); +S_API int SteamAPI_ISteamInput_GetDigitalActionOrigins( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, EInputActionOrigin * originsOut ); +S_API const char * SteamAPI_ISteamInput_GetStringForDigitalActionName( ISteamInput* self, InputDigitalActionHandle_t eActionHandle ); +S_API InputAnalogActionHandle_t SteamAPI_ISteamInput_GetAnalogActionHandle( ISteamInput* self, const char * pszActionName ); +S_API InputAnalogActionData_t SteamAPI_ISteamInput_GetAnalogActionData( ISteamInput* self, InputHandle_t inputHandle, InputAnalogActionHandle_t analogActionHandle ); +S_API int SteamAPI_ISteamInput_GetAnalogActionOrigins( ISteamInput* self, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, EInputActionOrigin * originsOut ); +S_API const char * SteamAPI_ISteamInput_GetGlyphPNGForActionOrigin( ISteamInput* self, EInputActionOrigin eOrigin, ESteamInputGlyphSize eSize, uint32 unFlags ); +S_API const char * SteamAPI_ISteamInput_GetGlyphSVGForActionOrigin( ISteamInput* self, EInputActionOrigin eOrigin, uint32 unFlags ); +S_API const char * SteamAPI_ISteamInput_GetGlyphForActionOrigin_Legacy( ISteamInput* self, EInputActionOrigin eOrigin ); +S_API const char * SteamAPI_ISteamInput_GetStringForActionOrigin( ISteamInput* self, EInputActionOrigin eOrigin ); +S_API const char * SteamAPI_ISteamInput_GetStringForAnalogActionName( ISteamInput* self, InputAnalogActionHandle_t eActionHandle ); +S_API void SteamAPI_ISteamInput_StopAnalogActionMomentum( ISteamInput* self, InputHandle_t inputHandle, InputAnalogActionHandle_t eAction ); +S_API InputMotionData_t SteamAPI_ISteamInput_GetMotionData( ISteamInput* self, InputHandle_t inputHandle ); +S_API void SteamAPI_ISteamInput_TriggerVibration( ISteamInput* self, InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ); +S_API void SteamAPI_ISteamInput_TriggerVibrationExtended( ISteamInput* self, InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed, unsigned short usLeftTriggerSpeed, unsigned short usRightTriggerSpeed ); +S_API void SteamAPI_ISteamInput_TriggerSimpleHapticEvent( ISteamInput* self, InputHandle_t inputHandle, EControllerHapticLocation eHapticLocation, uint8 nIntensity, char nGainDB, uint8 nOtherIntensity, char nOtherGainDB ); +S_API void SteamAPI_ISteamInput_SetLEDColor( ISteamInput* self, InputHandle_t inputHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ); +S_API void SteamAPI_ISteamInput_Legacy_TriggerHapticPulse( ISteamInput* self, InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ); +S_API void SteamAPI_ISteamInput_Legacy_TriggerRepeatedHapticPulse( ISteamInput* self, InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ); +S_API bool SteamAPI_ISteamInput_ShowBindingPanel( ISteamInput* self, InputHandle_t inputHandle ); +S_API ESteamInputType SteamAPI_ISteamInput_GetInputTypeForHandle( ISteamInput* self, InputHandle_t inputHandle ); +S_API InputHandle_t SteamAPI_ISteamInput_GetControllerForGamepadIndex( ISteamInput* self, int nIndex ); +S_API int SteamAPI_ISteamInput_GetGamepadIndexForController( ISteamInput* self, InputHandle_t ulinputHandle ); +S_API const char * SteamAPI_ISteamInput_GetStringForXboxOrigin( ISteamInput* self, EXboxOrigin eOrigin ); +S_API const char * SteamAPI_ISteamInput_GetGlyphForXboxOrigin( ISteamInput* self, EXboxOrigin eOrigin ); +S_API EInputActionOrigin SteamAPI_ISteamInput_GetActionOriginFromXboxOrigin( ISteamInput* self, InputHandle_t inputHandle, EXboxOrigin eOrigin ); +S_API EInputActionOrigin SteamAPI_ISteamInput_TranslateActionOrigin( ISteamInput* self, ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin ); +S_API bool SteamAPI_ISteamInput_GetDeviceBindingRevision( ISteamInput* self, InputHandle_t inputHandle, int * pMajor, int * pMinor ); +S_API uint32 SteamAPI_ISteamInput_GetRemotePlaySessionID( ISteamInput* self, InputHandle_t inputHandle ); +S_API uint16 SteamAPI_ISteamInput_GetSessionInputConfigurationSettings( ISteamInput* self ); +S_API void SteamAPI_ISteamInput_SetDualSenseTriggerEffect( ISteamInput* self, InputHandle_t inputHandle, const ScePadTriggerEffectParam * pParam ); + +// ISteamController + +// A versioned accessor is exported by the library +S_API ISteamController *SteamAPI_SteamController_v008(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamController(), but using this ensures that you are using a matching library. +inline ISteamController *SteamAPI_SteamController() { return SteamAPI_SteamController_v008(); } +S_API bool SteamAPI_ISteamController_Init( ISteamController* self ); +S_API bool SteamAPI_ISteamController_Shutdown( ISteamController* self ); +S_API void SteamAPI_ISteamController_RunFrame( ISteamController* self ); +S_API int SteamAPI_ISteamController_GetConnectedControllers( ISteamController* self, ControllerHandle_t * handlesOut ); +S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetActionSetHandle( ISteamController* self, const char * pszActionSetName ); +S_API void SteamAPI_ISteamController_ActivateActionSet( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle ); +S_API ControllerActionSetHandle_t SteamAPI_ISteamController_GetCurrentActionSet( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API void SteamAPI_ISteamController_ActivateActionSetLayer( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamController_DeactivateActionSetLayer( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ); +S_API void SteamAPI_ISteamController_DeactivateAllActionSetLayers( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API int SteamAPI_ISteamController_GetActiveActionSetLayers( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t * handlesOut ); +S_API ControllerDigitalActionHandle_t SteamAPI_ISteamController_GetDigitalActionHandle( ISteamController* self, const char * pszActionName ); +S_API InputDigitalActionData_t SteamAPI_ISteamController_GetDigitalActionData( ISteamController* self, ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle ); +S_API int SteamAPI_ISteamController_GetDigitalActionOrigins( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin * originsOut ); +S_API ControllerAnalogActionHandle_t SteamAPI_ISteamController_GetAnalogActionHandle( ISteamController* self, const char * pszActionName ); +S_API InputAnalogActionData_t SteamAPI_ISteamController_GetAnalogActionData( ISteamController* self, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle ); +S_API int SteamAPI_ISteamController_GetAnalogActionOrigins( ISteamController* self, ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin * originsOut ); +S_API const char * SteamAPI_ISteamController_GetGlyphForActionOrigin( ISteamController* self, EControllerActionOrigin eOrigin ); +S_API const char * SteamAPI_ISteamController_GetStringForActionOrigin( ISteamController* self, EControllerActionOrigin eOrigin ); +S_API void SteamAPI_ISteamController_StopAnalogActionMomentum( ISteamController* self, ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction ); +S_API InputMotionData_t SteamAPI_ISteamController_GetMotionData( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API void SteamAPI_ISteamController_TriggerHapticPulse( ISteamController* self, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec ); +S_API void SteamAPI_ISteamController_TriggerRepeatedHapticPulse( ISteamController* self, ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags ); +S_API void SteamAPI_ISteamController_TriggerVibration( ISteamController* self, ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed ); +S_API void SteamAPI_ISteamController_SetLEDColor( ISteamController* self, ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags ); +S_API bool SteamAPI_ISteamController_ShowBindingPanel( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API ESteamInputType SteamAPI_ISteamController_GetInputTypeForHandle( ISteamController* self, ControllerHandle_t controllerHandle ); +S_API ControllerHandle_t SteamAPI_ISteamController_GetControllerForGamepadIndex( ISteamController* self, int nIndex ); +S_API int SteamAPI_ISteamController_GetGamepadIndexForController( ISteamController* self, ControllerHandle_t ulControllerHandle ); +S_API const char * SteamAPI_ISteamController_GetStringForXboxOrigin( ISteamController* self, EXboxOrigin eOrigin ); +S_API const char * SteamAPI_ISteamController_GetGlyphForXboxOrigin( ISteamController* self, EXboxOrigin eOrigin ); +S_API EControllerActionOrigin SteamAPI_ISteamController_GetActionOriginFromXboxOrigin( ISteamController* self, ControllerHandle_t controllerHandle, EXboxOrigin eOrigin ); +S_API EControllerActionOrigin SteamAPI_ISteamController_TranslateActionOrigin( ISteamController* self, ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin ); +S_API bool SteamAPI_ISteamController_GetControllerBindingRevision( ISteamController* self, ControllerHandle_t controllerHandle, int * pMajor, int * pMinor ); + +// ISteamUGC + +// A versioned accessor is exported by the library +S_API ISteamUGC *SteamAPI_SteamUGC_v018(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamUGC(), but using this ensures that you are using a matching library. +inline ISteamUGC *SteamAPI_SteamUGC() { return SteamAPI_SteamUGC_v018(); } + +// A versioned accessor is exported by the library +S_API ISteamUGC *SteamAPI_SteamGameServerUGC_v018(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerUGC(), but using this ensures that you are using a matching library. +inline ISteamUGC *SteamAPI_SteamGameServerUGC() { return SteamAPI_SteamGameServerUGC_v018(); } +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUserUGCRequest( ISteamUGC* self, AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ); +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage( ISteamUGC* self, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage ); +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor( ISteamUGC* self, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, const char * pchCursor ); +S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SendQueryUGCRequest( ISteamUGC* self, UGCQueryHandle_t handle ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCResult( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, SteamUGCDetails_t * pDetails ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumTags( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 indexTag, char * pchValue, uint32 cchValueSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 indexTag, char * pchValue, uint32 cchValueSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCPreviewURL( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, char * pchURL, uint32 cchURLSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCMetadata( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, char * pchMetadata, uint32 cchMetadatasize ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCChildren( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCStatistic( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 * pStatValue ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, char * pchURLOrVideoID, uint32 cchURLSize, char * pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType * pPreviewType ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, char * pchKey, uint32 cchKeySize, char * pchValue, uint32 cchValueSize ); +S_API bool SteamAPI_ISteamUGC_GetQueryFirstUGCKeyValueTag( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, const char * pchKey, char * pchValue, uint32 cchValueSize ); +S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCContentDescriptors( ISteamUGC* self, UGCQueryHandle_t handle, uint32 index, EUGCContentDescriptorID * pvecDescriptors, uint32 cMaxEntries ); +S_API bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest( ISteamUGC* self, UGCQueryHandle_t handle ); +S_API bool SteamAPI_ISteamUGC_AddRequiredTag( ISteamUGC* self, UGCQueryHandle_t handle, const char * pTagName ); +S_API bool SteamAPI_ISteamUGC_AddRequiredTagGroup( ISteamUGC* self, UGCQueryHandle_t handle, const SteamParamStringArray_t * pTagGroups ); +S_API bool SteamAPI_ISteamUGC_AddExcludedTag( ISteamUGC* self, UGCQueryHandle_t handle, const char * pTagName ); +S_API bool SteamAPI_ISteamUGC_SetReturnOnlyIDs( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnOnlyIDs ); +S_API bool SteamAPI_ISteamUGC_SetReturnKeyValueTags( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnKeyValueTags ); +S_API bool SteamAPI_ISteamUGC_SetReturnLongDescription( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnLongDescription ); +S_API bool SteamAPI_ISteamUGC_SetReturnMetadata( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnMetadata ); +S_API bool SteamAPI_ISteamUGC_SetReturnChildren( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnChildren ); +S_API bool SteamAPI_ISteamUGC_SetReturnAdditionalPreviews( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnAdditionalPreviews ); +S_API bool SteamAPI_ISteamUGC_SetReturnTotalOnly( ISteamUGC* self, UGCQueryHandle_t handle, bool bReturnTotalOnly ); +S_API bool SteamAPI_ISteamUGC_SetReturnPlaytimeStats( ISteamUGC* self, UGCQueryHandle_t handle, uint32 unDays ); +S_API bool SteamAPI_ISteamUGC_SetLanguage( ISteamUGC* self, UGCQueryHandle_t handle, const char * pchLanguage ); +S_API bool SteamAPI_ISteamUGC_SetAllowCachedResponse( ISteamUGC* self, UGCQueryHandle_t handle, uint32 unMaxAgeSeconds ); +S_API bool SteamAPI_ISteamUGC_SetCloudFileNameFilter( ISteamUGC* self, UGCQueryHandle_t handle, const char * pMatchCloudFileName ); +S_API bool SteamAPI_ISteamUGC_SetMatchAnyTag( ISteamUGC* self, UGCQueryHandle_t handle, bool bMatchAnyTag ); +S_API bool SteamAPI_ISteamUGC_SetSearchText( ISteamUGC* self, UGCQueryHandle_t handle, const char * pSearchText ); +S_API bool SteamAPI_ISteamUGC_SetRankedByTrendDays( ISteamUGC* self, UGCQueryHandle_t handle, uint32 unDays ); +S_API bool SteamAPI_ISteamUGC_SetTimeCreatedDateRange( ISteamUGC* self, UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ); +S_API bool SteamAPI_ISteamUGC_SetTimeUpdatedDateRange( ISteamUGC* self, UGCQueryHandle_t handle, RTime32 rtStart, RTime32 rtEnd ); +S_API bool SteamAPI_ISteamUGC_AddRequiredKeyValueTag( ISteamUGC* self, UGCQueryHandle_t handle, const char * pKey, const char * pValue ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RequestUGCDetails( ISteamUGC* self, PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_CreateItem( ISteamUGC* self, AppId_t nConsumerAppId, EWorkshopFileType eFileType ); +S_API UGCUpdateHandle_t SteamAPI_ISteamUGC_StartItemUpdate( ISteamUGC* self, AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID ); +S_API bool SteamAPI_ISteamUGC_SetItemTitle( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchTitle ); +S_API bool SteamAPI_ISteamUGC_SetItemDescription( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchDescription ); +S_API bool SteamAPI_ISteamUGC_SetItemUpdateLanguage( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchLanguage ); +S_API bool SteamAPI_ISteamUGC_SetItemMetadata( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchMetaData ); +S_API bool SteamAPI_ISteamUGC_SetItemVisibility( ISteamUGC* self, UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility ); +S_API bool SteamAPI_ISteamUGC_SetItemTags( ISteamUGC* self, UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t * pTags, bool bAllowAdminTags ); +S_API bool SteamAPI_ISteamUGC_SetItemContent( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszContentFolder ); +S_API bool SteamAPI_ISteamUGC_SetItemPreview( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszPreviewFile ); +S_API bool SteamAPI_ISteamUGC_SetAllowLegacyUpload( ISteamUGC* self, UGCUpdateHandle_t handle, bool bAllowLegacyUpload ); +S_API bool SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags( ISteamUGC* self, UGCUpdateHandle_t handle ); +S_API bool SteamAPI_ISteamUGC_RemoveItemKeyValueTags( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchKey ); +S_API bool SteamAPI_ISteamUGC_AddItemKeyValueTag( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchKey, const char * pchValue ); +S_API bool SteamAPI_ISteamUGC_AddItemPreviewFile( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszPreviewFile, EItemPreviewType type ); +S_API bool SteamAPI_ISteamUGC_AddItemPreviewVideo( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pszVideoID ); +S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewFile( ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index, const char * pszPreviewFile ); +S_API bool SteamAPI_ISteamUGC_UpdateItemPreviewVideo( ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index, const char * pszVideoID ); +S_API bool SteamAPI_ISteamUGC_RemoveItemPreview( ISteamUGC* self, UGCUpdateHandle_t handle, uint32 index ); +S_API bool SteamAPI_ISteamUGC_AddContentDescriptor( ISteamUGC* self, UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ); +S_API bool SteamAPI_ISteamUGC_RemoveContentDescriptor( ISteamUGC* self, UGCUpdateHandle_t handle, EUGCContentDescriptorID descid ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SubmitItemUpdate( ISteamUGC* self, UGCUpdateHandle_t handle, const char * pchChangeNote ); +S_API EItemUpdateStatus SteamAPI_ISteamUGC_GetItemUpdateProgress( ISteamUGC* self, UGCUpdateHandle_t handle, uint64 * punBytesProcessed, uint64 * punBytesTotal ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SetUserItemVote( ISteamUGC* self, PublishedFileId_t nPublishedFileID, bool bVoteUp ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_GetUserItemVote( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_AddItemToFavorites( ISteamUGC* self, AppId_t nAppId, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveItemFromFavorites( ISteamUGC* self, AppId_t nAppId, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_SubscribeItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_UnsubscribeItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API uint32 SteamAPI_ISteamUGC_GetNumSubscribedItems( ISteamUGC* self ); +S_API uint32 SteamAPI_ISteamUGC_GetSubscribedItems( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 cMaxEntries ); +S_API uint32 SteamAPI_ISteamUGC_GetItemState( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API bool SteamAPI_ISteamUGC_GetItemInstallInfo( ISteamUGC* self, PublishedFileId_t nPublishedFileID, uint64 * punSizeOnDisk, char * pchFolder, uint32 cchFolderSize, uint32 * punTimeStamp ); +S_API bool SteamAPI_ISteamUGC_GetItemDownloadInfo( ISteamUGC* self, PublishedFileId_t nPublishedFileID, uint64 * punBytesDownloaded, uint64 * punBytesTotal ); +S_API bool SteamAPI_ISteamUGC_DownloadItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID, bool bHighPriority ); +S_API bool SteamAPI_ISteamUGC_BInitWorkshopForGameServer( ISteamUGC* self, DepotId_t unWorkshopDepotID, const char * pszFolder ); +S_API void SteamAPI_ISteamUGC_SuspendDownloads( ISteamUGC* self, bool bSuspend ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_StartPlaytimeTracking( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTracking( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileID, uint32 unNumPublishedFileIDs ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems( ISteamUGC* self ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_AddDependency( ISteamUGC* self, PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveDependency( ISteamUGC* self, PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_AddAppDependency( ISteamUGC* self, PublishedFileId_t nPublishedFileID, AppId_t nAppID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_RemoveAppDependency( ISteamUGC* self, PublishedFileId_t nPublishedFileID, AppId_t nAppID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_GetAppDependencies( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_DeleteItem( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API bool SteamAPI_ISteamUGC_ShowWorkshopEULA( ISteamUGC* self ); +S_API SteamAPICall_t SteamAPI_ISteamUGC_GetWorkshopEULAStatus( ISteamUGC* self ); +S_API uint32 SteamAPI_ISteamUGC_GetUserContentDescriptorPreferences( ISteamUGC* self, EUGCContentDescriptorID * pvecDescriptors, uint32 cMaxEntries ); + +// ISteamHTMLSurface + +// A versioned accessor is exported by the library +S_API ISteamHTMLSurface *SteamAPI_SteamHTMLSurface_v005(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamHTMLSurface(), but using this ensures that you are using a matching library. +inline ISteamHTMLSurface *SteamAPI_SteamHTMLSurface() { return SteamAPI_SteamHTMLSurface_v005(); } +S_API bool SteamAPI_ISteamHTMLSurface_Init( ISteamHTMLSurface* self ); +S_API bool SteamAPI_ISteamHTMLSurface_Shutdown( ISteamHTMLSurface* self ); +S_API SteamAPICall_t SteamAPI_ISteamHTMLSurface_CreateBrowser( ISteamHTMLSurface* self, const char * pchUserAgent, const char * pchUserCSS ); +S_API void SteamAPI_ISteamHTMLSurface_RemoveBrowser( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_LoadURL( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchURL, const char * pchPostData ); +S_API void SteamAPI_ISteamHTMLSurface_SetSize( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 unWidth, uint32 unHeight ); +S_API void SteamAPI_ISteamHTMLSurface_StopLoad( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_Reload( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_GoBack( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_GoForward( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_AddHeader( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchKey, const char * pchValue ); +S_API void SteamAPI_ISteamHTMLSurface_ExecuteJavascript( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchScript ); +S_API void SteamAPI_ISteamHTMLSurface_MouseUp( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton ); +S_API void SteamAPI_ISteamHTMLSurface_MouseDown( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton ); +S_API void SteamAPI_ISteamHTMLSurface_MouseDoubleClick( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton ); +S_API void SteamAPI_ISteamHTMLSurface_MouseMove( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, int x, int y ); +S_API void SteamAPI_ISteamHTMLSurface_MouseWheel( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, int32 nDelta ); +S_API void SteamAPI_ISteamHTMLSurface_KeyDown( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers, bool bIsSystemKey ); +S_API void SteamAPI_ISteamHTMLSurface_KeyUp( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers ); +S_API void SteamAPI_ISteamHTMLSurface_KeyChar( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers ); +S_API void SteamAPI_ISteamHTMLSurface_SetHorizontalScroll( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll ); +S_API void SteamAPI_ISteamHTMLSurface_SetVerticalScroll( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll ); +S_API void SteamAPI_ISteamHTMLSurface_SetKeyFocus( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bHasKeyFocus ); +S_API void SteamAPI_ISteamHTMLSurface_ViewSource( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_CopyToClipboard( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_PasteFromClipboard( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_Find( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char * pchSearchStr, bool bCurrentlyInFind, bool bReverse ); +S_API void SteamAPI_ISteamHTMLSurface_StopFind( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_GetLinkAtPosition( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, int x, int y ); +S_API void SteamAPI_ISteamHTMLSurface_SetCookie( ISteamHTMLSurface* self, const char * pchHostname, const char * pchKey, const char * pchValue, const char * pchPath, RTime32 nExpires, bool bSecure, bool bHTTPOnly ); +S_API void SteamAPI_ISteamHTMLSurface_SetPageScaleFactor( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY ); +S_API void SteamAPI_ISteamHTMLSurface_SetBackgroundMode( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bBackgroundMode ); +S_API void SteamAPI_ISteamHTMLSurface_SetDPIScalingFactor( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, float flDPIScaling ); +S_API void SteamAPI_ISteamHTMLSurface_OpenDeveloperTools( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle ); +S_API void SteamAPI_ISteamHTMLSurface_AllowStartRequest( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bAllowed ); +S_API void SteamAPI_ISteamHTMLSurface_JSDialogResponse( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, bool bResult ); +S_API void SteamAPI_ISteamHTMLSurface_FileLoadDialogResponse( ISteamHTMLSurface* self, HHTMLBrowser unBrowserHandle, const char ** pchSelectedFiles ); + +// ISteamInventory + +// A versioned accessor is exported by the library +S_API ISteamInventory *SteamAPI_SteamInventory_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamInventory(), but using this ensures that you are using a matching library. +inline ISteamInventory *SteamAPI_SteamInventory() { return SteamAPI_SteamInventory_v003(); } + +// A versioned accessor is exported by the library +S_API ISteamInventory *SteamAPI_SteamGameServerInventory_v003(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerInventory(), but using this ensures that you are using a matching library. +inline ISteamInventory *SteamAPI_SteamGameServerInventory() { return SteamAPI_SteamGameServerInventory_v003(); } +S_API EResult SteamAPI_ISteamInventory_GetResultStatus( ISteamInventory* self, SteamInventoryResult_t resultHandle ); +S_API bool SteamAPI_ISteamInventory_GetResultItems( ISteamInventory* self, SteamInventoryResult_t resultHandle, SteamItemDetails_t * pOutItemsArray, uint32 * punOutItemsArraySize ); +S_API bool SteamAPI_ISteamInventory_GetResultItemProperty( ISteamInventory* self, SteamInventoryResult_t resultHandle, uint32 unItemIndex, const char * pchPropertyName, char * pchValueBuffer, uint32 * punValueBufferSizeOut ); +S_API uint32 SteamAPI_ISteamInventory_GetResultTimestamp( ISteamInventory* self, SteamInventoryResult_t resultHandle ); +S_API bool SteamAPI_ISteamInventory_CheckResultSteamID( ISteamInventory* self, SteamInventoryResult_t resultHandle, uint64_steamid steamIDExpected ); +S_API void SteamAPI_ISteamInventory_DestroyResult( ISteamInventory* self, SteamInventoryResult_t resultHandle ); +S_API bool SteamAPI_ISteamInventory_GetAllItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle ); +S_API bool SteamAPI_ISteamInventory_GetItemsByID( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemInstanceID_t * pInstanceIDs, uint32 unCountInstanceIDs ); +S_API bool SteamAPI_ISteamInventory_SerializeResult( ISteamInventory* self, SteamInventoryResult_t resultHandle, void * pOutBuffer, uint32 * punOutBufferSize ); +S_API bool SteamAPI_ISteamInventory_DeserializeResult( ISteamInventory* self, SteamInventoryResult_t * pOutResultHandle, const void * pBuffer, uint32 unBufferSize, bool bRESERVED_MUST_BE_FALSE ); +S_API bool SteamAPI_ISteamInventory_GenerateItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, const uint32 * punArrayQuantity, uint32 unArrayLength ); +S_API bool SteamAPI_ISteamInventory_GrantPromoItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle ); +S_API bool SteamAPI_ISteamInventory_AddPromoItem( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemDef_t itemDef ); +S_API bool SteamAPI_ISteamInventory_AddPromoItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayItemDefs, uint32 unArrayLength ); +S_API bool SteamAPI_ISteamInventory_ConsumeItem( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemConsume, uint32 unQuantity ); +S_API bool SteamAPI_ISteamInventory_ExchangeItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const SteamItemDef_t * pArrayGenerate, const uint32 * punArrayGenerateQuantity, uint32 unArrayGenerateLength, const SteamItemInstanceID_t * pArrayDestroy, const uint32 * punArrayDestroyQuantity, uint32 unArrayDestroyLength ); +S_API bool SteamAPI_ISteamInventory_TransferItemQuantity( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemInstanceID_t itemIdSource, uint32 unQuantity, SteamItemInstanceID_t itemIdDest ); +S_API void SteamAPI_ISteamInventory_SendItemDropHeartbeat( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_TriggerItemDrop( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, SteamItemDef_t dropListDefinition ); +S_API bool SteamAPI_ISteamInventory_TradeItems( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, uint64_steamid steamIDTradePartner, const SteamItemInstanceID_t * pArrayGive, const uint32 * pArrayGiveQuantity, uint32 nArrayGiveLength, const SteamItemInstanceID_t * pArrayGet, const uint32 * pArrayGetQuantity, uint32 nArrayGetLength ); +S_API bool SteamAPI_ISteamInventory_LoadItemDefinitions( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_GetItemDefinitionIDs( ISteamInventory* self, SteamItemDef_t * pItemDefIDs, uint32 * punItemDefIDsArraySize ); +S_API bool SteamAPI_ISteamInventory_GetItemDefinitionProperty( ISteamInventory* self, SteamItemDef_t iDefinition, const char * pchPropertyName, char * pchValueBuffer, uint32 * punValueBufferSizeOut ); +S_API SteamAPICall_t SteamAPI_ISteamInventory_RequestEligiblePromoItemDefinitionsIDs( ISteamInventory* self, uint64_steamid steamID ); +S_API bool SteamAPI_ISteamInventory_GetEligiblePromoItemDefinitionIDs( ISteamInventory* self, uint64_steamid steamID, SteamItemDef_t * pItemDefIDs, uint32 * punItemDefIDsArraySize ); +S_API SteamAPICall_t SteamAPI_ISteamInventory_StartPurchase( ISteamInventory* self, const SteamItemDef_t * pArrayItemDefs, const uint32 * punArrayQuantity, uint32 unArrayLength ); +S_API SteamAPICall_t SteamAPI_ISteamInventory_RequestPrices( ISteamInventory* self ); +S_API uint32 SteamAPI_ISteamInventory_GetNumItemsWithPrices( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_GetItemsWithPrices( ISteamInventory* self, SteamItemDef_t * pArrayItemDefs, uint64 * pCurrentPrices, uint64 * pBasePrices, uint32 unArrayLength ); +S_API bool SteamAPI_ISteamInventory_GetItemPrice( ISteamInventory* self, SteamItemDef_t iDefinition, uint64 * pCurrentPrice, uint64 * pBasePrice ); +S_API SteamInventoryUpdateHandle_t SteamAPI_ISteamInventory_StartUpdateProperties( ISteamInventory* self ); +S_API bool SteamAPI_ISteamInventory_RemoveProperty( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName ); +S_API bool SteamAPI_ISteamInventory_SetPropertyString( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, const char * pchPropertyValue ); +S_API bool SteamAPI_ISteamInventory_SetPropertyBool( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, bool bValue ); +S_API bool SteamAPI_ISteamInventory_SetPropertyInt64( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, int64 nValue ); +S_API bool SteamAPI_ISteamInventory_SetPropertyFloat( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, const char * pchPropertyName, float flValue ); +S_API bool SteamAPI_ISteamInventory_SubmitUpdateProperties( ISteamInventory* self, SteamInventoryUpdateHandle_t handle, SteamInventoryResult_t * pResultHandle ); +S_API bool SteamAPI_ISteamInventory_InspectItem( ISteamInventory* self, SteamInventoryResult_t * pResultHandle, const char * pchItemToken ); + +// ISteamVideo + +// A versioned accessor is exported by the library +S_API ISteamVideo *SteamAPI_SteamVideo_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamVideo(), but using this ensures that you are using a matching library. +inline ISteamVideo *SteamAPI_SteamVideo() { return SteamAPI_SteamVideo_v002(); } +S_API void SteamAPI_ISteamVideo_GetVideoURL( ISteamVideo* self, AppId_t unVideoAppID ); +S_API bool SteamAPI_ISteamVideo_IsBroadcasting( ISteamVideo* self, int * pnNumViewers ); +S_API void SteamAPI_ISteamVideo_GetOPFSettings( ISteamVideo* self, AppId_t unVideoAppID ); +S_API bool SteamAPI_ISteamVideo_GetOPFStringForApp( ISteamVideo* self, AppId_t unVideoAppID, char * pchBuffer, int32 * pnBufferSize ); + +// ISteamParentalSettings + +// A versioned accessor is exported by the library +S_API ISteamParentalSettings *SteamAPI_SteamParentalSettings_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamParentalSettings(), but using this ensures that you are using a matching library. +inline ISteamParentalSettings *SteamAPI_SteamParentalSettings() { return SteamAPI_SteamParentalSettings_v001(); } +S_API bool SteamAPI_ISteamParentalSettings_BIsParentalLockEnabled( ISteamParentalSettings* self ); +S_API bool SteamAPI_ISteamParentalSettings_BIsParentalLockLocked( ISteamParentalSettings* self ); +S_API bool SteamAPI_ISteamParentalSettings_BIsAppBlocked( ISteamParentalSettings* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamParentalSettings_BIsAppInBlockList( ISteamParentalSettings* self, AppId_t nAppID ); +S_API bool SteamAPI_ISteamParentalSettings_BIsFeatureBlocked( ISteamParentalSettings* self, EParentalFeature eFeature ); +S_API bool SteamAPI_ISteamParentalSettings_BIsFeatureInBlockList( ISteamParentalSettings* self, EParentalFeature eFeature ); + +// ISteamRemotePlay + +// A versioned accessor is exported by the library +S_API ISteamRemotePlay *SteamAPI_SteamRemotePlay_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamRemotePlay(), but using this ensures that you are using a matching library. +inline ISteamRemotePlay *SteamAPI_SteamRemotePlay() { return SteamAPI_SteamRemotePlay_v002(); } +S_API uint32 SteamAPI_ISteamRemotePlay_GetSessionCount( ISteamRemotePlay* self ); +S_API RemotePlaySessionID_t SteamAPI_ISteamRemotePlay_GetSessionID( ISteamRemotePlay* self, int iSessionIndex ); +S_API uint64_steamid SteamAPI_ISteamRemotePlay_GetSessionSteamID( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API const char * SteamAPI_ISteamRemotePlay_GetSessionClientName( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API ESteamDeviceFormFactor SteamAPI_ISteamRemotePlay_GetSessionClientFormFactor( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API bool SteamAPI_ISteamRemotePlay_BGetSessionClientResolution( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID, int * pnResolutionX, int * pnResolutionY ); +S_API bool SteamAPI_ISteamRemotePlay_BStartRemotePlayTogether( ISteamRemotePlay* self, bool bShowOverlay ); +S_API bool SteamAPI_ISteamRemotePlay_BSendRemotePlayTogetherInvite( ISteamRemotePlay* self, uint64_steamid steamIDFriend ); + +// ISteamNetworkingMessages + +// A versioned accessor is exported by the library +S_API ISteamNetworkingMessages *SteamAPI_SteamNetworkingMessages_SteamAPI_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworkingMessages_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingMessages *SteamAPI_SteamNetworkingMessages_SteamAPI() { return SteamAPI_SteamNetworkingMessages_SteamAPI_v002(); } + +// A versioned accessor is exported by the library +S_API ISteamNetworkingMessages *SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerNetworkingMessages_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingMessages *SteamAPI_SteamGameServerNetworkingMessages_SteamAPI() { return SteamAPI_SteamGameServerNetworkingMessages_SteamAPI_v002(); } +S_API EResult SteamAPI_ISteamNetworkingMessages_SendMessageToUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, const void * pubData, uint32 cubData, int nSendFlags, int nRemoteChannel ); +S_API int SteamAPI_ISteamNetworkingMessages_ReceiveMessagesOnChannel( ISteamNetworkingMessages* self, int nLocalChannel, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API bool SteamAPI_ISteamNetworkingMessages_AcceptSessionWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote ); +S_API bool SteamAPI_ISteamNetworkingMessages_CloseSessionWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote ); +S_API bool SteamAPI_ISteamNetworkingMessages_CloseChannelWithUser( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, int nLocalChannel ); +S_API ESteamNetworkingConnectionState SteamAPI_ISteamNetworkingMessages_GetSessionConnectionInfo( ISteamNetworkingMessages* self, const SteamNetworkingIdentity & identityRemote, SteamNetConnectionInfo_t * pConnectionInfo, SteamNetConnectionRealTimeStatus_t * pQuickStatus ); + +// ISteamNetworkingSockets + +// A versioned accessor is exported by the library +S_API ISteamNetworkingSockets *SteamAPI_SteamNetworkingSockets_SteamAPI_v012(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworkingSockets_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingSockets *SteamAPI_SteamNetworkingSockets_SteamAPI() { return SteamAPI_SteamNetworkingSockets_SteamAPI_v012(); } + +// A versioned accessor is exported by the library +S_API ISteamNetworkingSockets *SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v012(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerNetworkingSockets_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingSockets *SteamAPI_SteamGameServerNetworkingSockets_SteamAPI() { return SteamAPI_SteamGameServerNetworkingSockets_SteamAPI_v012(); } +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketIP( ISteamNetworkingSockets* self, const SteamNetworkingIPAddr & localAddress, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectByIPAddress( ISteamNetworkingSockets* self, const SteamNetworkingIPAddr & address, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2P( ISteamNetworkingSockets* self, int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectP2P( ISteamNetworkingSockets* self, const SteamNetworkingIdentity & identityRemote, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API EResult SteamAPI_ISteamNetworkingSockets_AcceptConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn ); +S_API bool SteamAPI_ISteamNetworkingSockets_CloseConnection( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, int nReason, const char * pszDebug, bool bEnableLinger ); +S_API bool SteamAPI_ISteamNetworkingSockets_CloseListenSocket( ISteamNetworkingSockets* self, HSteamListenSocket hSocket ); +S_API bool SteamAPI_ISteamNetworkingSockets_SetConnectionUserData( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, int64 nUserData ); +S_API int64 SteamAPI_ISteamNetworkingSockets_GetConnectionUserData( ISteamNetworkingSockets* self, HSteamNetConnection hPeer ); +S_API void SteamAPI_ISteamNetworkingSockets_SetConnectionName( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, const char * pszName ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetConnectionName( ISteamNetworkingSockets* self, HSteamNetConnection hPeer, char * pszName, int nMaxLen ); +S_API EResult SteamAPI_ISteamNetworkingSockets_SendMessageToConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn, const void * pData, uint32 cbData, int nSendFlags, int64 * pOutMessageNumber ); +S_API void SteamAPI_ISteamNetworkingSockets_SendMessages( ISteamNetworkingSockets* self, int nMessages, SteamNetworkingMessage_t *const * pMessages, int64 * pOutMessageNumberOrResult ); +S_API EResult SteamAPI_ISteamNetworkingSockets_FlushMessagesOnConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn ); +S_API int SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetConnectionInfo( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetConnectionInfo_t * pInfo ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetConnectionRealTimeStatus( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetConnectionRealTimeStatus_t * pStatus, int nLanes, SteamNetConnectionRealTimeLaneStatus_t * pLanes ); +S_API int SteamAPI_ISteamNetworkingSockets_GetDetailedConnectionStatus( ISteamNetworkingSockets* self, HSteamNetConnection hConn, char * pszBuf, int cbBuf ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetListenSocketAddress( ISteamNetworkingSockets* self, HSteamListenSocket hSocket, SteamNetworkingIPAddr * address ); +S_API bool SteamAPI_ISteamNetworkingSockets_CreateSocketPair( ISteamNetworkingSockets* self, HSteamNetConnection * pOutConnection1, HSteamNetConnection * pOutConnection2, bool bUseNetworkLoopback, const SteamNetworkingIdentity * pIdentity1, const SteamNetworkingIdentity * pIdentity2 ); +S_API EResult SteamAPI_ISteamNetworkingSockets_ConfigureConnectionLanes( ISteamNetworkingSockets* self, HSteamNetConnection hConn, int nNumLanes, const int * pLanePriorities, const uint16 * pLaneWeights ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetIdentity( ISteamNetworkingSockets* self, SteamNetworkingIdentity * pIdentity ); +S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingSockets_InitAuthentication( ISteamNetworkingSockets* self ); +S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingSockets_GetAuthenticationStatus( ISteamNetworkingSockets* self, SteamNetAuthenticationStatus_t * pDetails ); +S_API HSteamNetPollGroup SteamAPI_ISteamNetworkingSockets_CreatePollGroup( ISteamNetworkingSockets* self ); +S_API bool SteamAPI_ISteamNetworkingSockets_DestroyPollGroup( ISteamNetworkingSockets* self, HSteamNetPollGroup hPollGroup ); +S_API bool SteamAPI_ISteamNetworkingSockets_SetConnectionPollGroup( ISteamNetworkingSockets* self, HSteamNetConnection hConn, HSteamNetPollGroup hPollGroup ); +S_API int SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnPollGroup( ISteamNetworkingSockets* self, HSteamNetPollGroup hPollGroup, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API bool SteamAPI_ISteamNetworkingSockets_ReceivedRelayAuthTicket( ISteamNetworkingSockets* self, const void * pvTicket, int cbTicket, SteamDatagramRelayAuthTicket * pOutParsedTicket ); +S_API int SteamAPI_ISteamNetworkingSockets_FindRelayAuthTicketForServer( ISteamNetworkingSockets* self, const SteamNetworkingIdentity & identityGameServer, int nRemoteVirtualPort, SteamDatagramRelayAuthTicket * pOutParsedTicket ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectToHostedDedicatedServer( ISteamNetworkingSockets* self, const SteamNetworkingIdentity & identityTarget, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API uint16 SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPort( ISteamNetworkingSockets* self ); +S_API SteamNetworkingPOPID SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPOPID( ISteamNetworkingSockets* self ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerAddress( ISteamNetworkingSockets* self, SteamDatagramHostedAddress * pRouting ); +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket( ISteamNetworkingSockets* self, int nLocalVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetGameCoordinatorServerLogin( ISteamNetworkingSockets* self, SteamDatagramGameCoordinatorServerLogin * pLoginInfo, int * pcbSignedBlob, void * pBlob ); +S_API HSteamNetConnection SteamAPI_ISteamNetworkingSockets_ConnectP2PCustomSignaling( ISteamNetworkingSockets* self, ISteamNetworkingConnectionSignaling * pSignaling, const SteamNetworkingIdentity * pPeerIdentity, int nRemoteVirtualPort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API bool SteamAPI_ISteamNetworkingSockets_ReceivedP2PCustomSignal( ISteamNetworkingSockets* self, const void * pMsg, int cbMsg, ISteamNetworkingSignalingRecvContext * pContext ); +S_API bool SteamAPI_ISteamNetworkingSockets_GetCertificateRequest( ISteamNetworkingSockets* self, int * pcbBlob, void * pBlob, SteamNetworkingErrMsg & errMsg ); +S_API bool SteamAPI_ISteamNetworkingSockets_SetCertificate( ISteamNetworkingSockets* self, const void * pCertificate, int cbCertificate, SteamNetworkingErrMsg & errMsg ); +S_API void SteamAPI_ISteamNetworkingSockets_ResetIdentity( ISteamNetworkingSockets* self, const SteamNetworkingIdentity * pIdentity ); +S_API void SteamAPI_ISteamNetworkingSockets_RunCallbacks( ISteamNetworkingSockets* self ); +S_API bool SteamAPI_ISteamNetworkingSockets_BeginAsyncRequestFakeIP( ISteamNetworkingSockets* self, int nNumPorts ); +S_API void SteamAPI_ISteamNetworkingSockets_GetFakeIP( ISteamNetworkingSockets* self, int idxFirstPort, SteamNetworkingFakeIPResult_t * pInfo ); +S_API HSteamListenSocket SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2PFakeIP( ISteamNetworkingSockets* self, int idxFakePort, int nOptions, const SteamNetworkingConfigValue_t * pOptions ); +S_API EResult SteamAPI_ISteamNetworkingSockets_GetRemoteFakeIPForConnection( ISteamNetworkingSockets* self, HSteamNetConnection hConn, SteamNetworkingIPAddr * pOutAddr ); +S_API ISteamNetworkingFakeUDPPort * SteamAPI_ISteamNetworkingSockets_CreateFakeUDPPort( ISteamNetworkingSockets* self, int idxFakeServerPort ); + +// ISteamNetworkingUtils + +// A versioned accessor is exported by the library +S_API ISteamNetworkingUtils *SteamAPI_SteamNetworkingUtils_SteamAPI_v004(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamNetworkingUtils_SteamAPI(), but using this ensures that you are using a matching library. +inline ISteamNetworkingUtils *SteamAPI_SteamNetworkingUtils_SteamAPI() { return SteamAPI_SteamNetworkingUtils_SteamAPI_v004(); } +S_API SteamNetworkingMessage_t * SteamAPI_ISteamNetworkingUtils_AllocateMessage( ISteamNetworkingUtils* self, int cbAllocateBuffer ); +S_API void SteamAPI_ISteamNetworkingUtils_InitRelayNetworkAccess( ISteamNetworkingUtils* self ); +S_API ESteamNetworkingAvailability SteamAPI_ISteamNetworkingUtils_GetRelayNetworkStatus( ISteamNetworkingUtils* self, SteamRelayNetworkStatus_t * pDetails ); +S_API float SteamAPI_ISteamNetworkingUtils_GetLocalPingLocation( ISteamNetworkingUtils* self, SteamNetworkPingLocation_t & result ); +S_API int SteamAPI_ISteamNetworkingUtils_EstimatePingTimeBetweenTwoLocations( ISteamNetworkingUtils* self, const SteamNetworkPingLocation_t & location1, const SteamNetworkPingLocation_t & location2 ); +S_API int SteamAPI_ISteamNetworkingUtils_EstimatePingTimeFromLocalHost( ISteamNetworkingUtils* self, const SteamNetworkPingLocation_t & remoteLocation ); +S_API void SteamAPI_ISteamNetworkingUtils_ConvertPingLocationToString( ISteamNetworkingUtils* self, const SteamNetworkPingLocation_t & location, char * pszBuf, int cchBufSize ); +S_API bool SteamAPI_ISteamNetworkingUtils_ParsePingLocationString( ISteamNetworkingUtils* self, const char * pszString, SteamNetworkPingLocation_t & result ); +S_API bool SteamAPI_ISteamNetworkingUtils_CheckPingDataUpToDate( ISteamNetworkingUtils* self, float flMaxAgeSeconds ); +S_API int SteamAPI_ISteamNetworkingUtils_GetPingToDataCenter( ISteamNetworkingUtils* self, SteamNetworkingPOPID popID, SteamNetworkingPOPID * pViaRelayPoP ); +S_API int SteamAPI_ISteamNetworkingUtils_GetDirectPingToPOP( ISteamNetworkingUtils* self, SteamNetworkingPOPID popID ); +S_API int SteamAPI_ISteamNetworkingUtils_GetPOPCount( ISteamNetworkingUtils* self ); +S_API int SteamAPI_ISteamNetworkingUtils_GetPOPList( ISteamNetworkingUtils* self, SteamNetworkingPOPID * list, int nListSz ); +S_API SteamNetworkingMicroseconds SteamAPI_ISteamNetworkingUtils_GetLocalTimestamp( ISteamNetworkingUtils* self ); +S_API void SteamAPI_ISteamNetworkingUtils_SetDebugOutputFunction( ISteamNetworkingUtils* self, ESteamNetworkingSocketsDebugOutputType eDetailLevel, FSteamNetworkingSocketsDebugOutput pfnFunc ); +S_API bool SteamAPI_ISteamNetworkingUtils_IsFakeIPv4( ISteamNetworkingUtils* self, uint32 nIPv4 ); +S_API ESteamNetworkingFakeIPType SteamAPI_ISteamNetworkingUtils_GetIPv4FakeIPType( ISteamNetworkingUtils* self, uint32 nIPv4 ); +S_API EResult SteamAPI_ISteamNetworkingUtils_GetRealIdentityForFakeIP( ISteamNetworkingUtils* self, const SteamNetworkingIPAddr & fakeIP, SteamNetworkingIdentity * pOutRealIdentity ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueInt32( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, int32 val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueFloat( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, float val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValueString( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, const char * val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalConfigValuePtr( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, void * val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueInt32( ISteamNetworkingUtils* self, HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueFloat( ISteamNetworkingUtils* self, HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConnectionConfigValueString( ISteamNetworkingUtils* self, HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char * val ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetConnectionStatusChanged( ISteamNetworkingUtils* self, FnSteamNetConnectionStatusChanged fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamNetAuthenticationStatusChanged( ISteamNetworkingUtils* self, FnSteamNetAuthenticationStatusChanged fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_SteamRelayNetworkStatusChanged( ISteamNetworkingUtils* self, FnSteamRelayNetworkStatusChanged fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_FakeIPResult( ISteamNetworkingUtils* self, FnSteamNetworkingFakeIPResult fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionRequest( ISteamNetworkingUtils* self, FnSteamNetworkingMessagesSessionRequest fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetGlobalCallback_MessagesSessionFailed( ISteamNetworkingUtils* self, FnSteamNetworkingMessagesSessionFailed fnCallback ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConfigValue( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, ESteamNetworkingConfigDataType eDataType, const void * pArg ); +S_API bool SteamAPI_ISteamNetworkingUtils_SetConfigValueStruct( ISteamNetworkingUtils* self, const SteamNetworkingConfigValue_t & opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj ); +S_API ESteamNetworkingGetConfigValueResult SteamAPI_ISteamNetworkingUtils_GetConfigValue( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj, ESteamNetworkingConfigDataType * pOutDataType, void * pResult, size_t * cbResult ); +S_API const char * SteamAPI_ISteamNetworkingUtils_GetConfigValueInfo( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigDataType * pOutDataType, ESteamNetworkingConfigScope * pOutScope ); +S_API ESteamNetworkingConfigValue SteamAPI_ISteamNetworkingUtils_IterateGenericEditableConfigValues( ISteamNetworkingUtils* self, ESteamNetworkingConfigValue eCurrent, bool bEnumerateDevVars ); +S_API void SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ToString( ISteamNetworkingUtils* self, const SteamNetworkingIPAddr & addr, char * buf, uint32 cbBuf, bool bWithPort ); +S_API bool SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ParseString( ISteamNetworkingUtils* self, SteamNetworkingIPAddr * pAddr, const char * pszStr ); +S_API ESteamNetworkingFakeIPType SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_GetFakeIPType( ISteamNetworkingUtils* self, const SteamNetworkingIPAddr & addr ); +S_API void SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ToString( ISteamNetworkingUtils* self, const SteamNetworkingIdentity & identity, char * buf, uint32 cbBuf ); +S_API bool SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString( ISteamNetworkingUtils* self, SteamNetworkingIdentity * pIdentity, const char * pszStr ); + +// ISteamGameServer + +// A versioned accessor is exported by the library +S_API ISteamGameServer *SteamAPI_SteamGameServer_v015(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServer(), but using this ensures that you are using a matching library. +inline ISteamGameServer *SteamAPI_SteamGameServer() { return SteamAPI_SteamGameServer_v015(); } +S_API void SteamAPI_ISteamGameServer_SetProduct( ISteamGameServer* self, const char * pszProduct ); +S_API void SteamAPI_ISteamGameServer_SetGameDescription( ISteamGameServer* self, const char * pszGameDescription ); +S_API void SteamAPI_ISteamGameServer_SetModDir( ISteamGameServer* self, const char * pszModDir ); +S_API void SteamAPI_ISteamGameServer_SetDedicatedServer( ISteamGameServer* self, bool bDedicated ); +S_API void SteamAPI_ISteamGameServer_LogOn( ISteamGameServer* self, const char * pszToken ); +S_API void SteamAPI_ISteamGameServer_LogOnAnonymous( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_LogOff( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_BLoggedOn( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_BSecure( ISteamGameServer* self ); +S_API uint64_steamid SteamAPI_ISteamGameServer_GetSteamID( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_WasRestartRequested( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_SetMaxPlayerCount( ISteamGameServer* self, int cPlayersMax ); +S_API void SteamAPI_ISteamGameServer_SetBotPlayerCount( ISteamGameServer* self, int cBotplayers ); +S_API void SteamAPI_ISteamGameServer_SetServerName( ISteamGameServer* self, const char * pszServerName ); +S_API void SteamAPI_ISteamGameServer_SetMapName( ISteamGameServer* self, const char * pszMapName ); +S_API void SteamAPI_ISteamGameServer_SetPasswordProtected( ISteamGameServer* self, bool bPasswordProtected ); +S_API void SteamAPI_ISteamGameServer_SetSpectatorPort( ISteamGameServer* self, uint16 unSpectatorPort ); +S_API void SteamAPI_ISteamGameServer_SetSpectatorServerName( ISteamGameServer* self, const char * pszSpectatorServerName ); +S_API void SteamAPI_ISteamGameServer_ClearAllKeyValues( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_SetKeyValue( ISteamGameServer* self, const char * pKey, const char * pValue ); +S_API void SteamAPI_ISteamGameServer_SetGameTags( ISteamGameServer* self, const char * pchGameTags ); +S_API void SteamAPI_ISteamGameServer_SetGameData( ISteamGameServer* self, const char * pchGameData ); +S_API void SteamAPI_ISteamGameServer_SetRegion( ISteamGameServer* self, const char * pszRegion ); +S_API void SteamAPI_ISteamGameServer_SetAdvertiseServerActive( ISteamGameServer* self, bool bActive ); +S_API HAuthTicket SteamAPI_ISteamGameServer_GetAuthSessionTicket( ISteamGameServer* self, void * pTicket, int cbMaxTicket, uint32 * pcbTicket, const SteamNetworkingIdentity * pSnid ); +S_API EBeginAuthSessionResult SteamAPI_ISteamGameServer_BeginAuthSession( ISteamGameServer* self, const void * pAuthTicket, int cbAuthTicket, uint64_steamid steamID ); +S_API void SteamAPI_ISteamGameServer_EndAuthSession( ISteamGameServer* self, uint64_steamid steamID ); +S_API void SteamAPI_ISteamGameServer_CancelAuthTicket( ISteamGameServer* self, HAuthTicket hAuthTicket ); +S_API EUserHasLicenseForAppResult SteamAPI_ISteamGameServer_UserHasLicenseForApp( ISteamGameServer* self, uint64_steamid steamID, AppId_t appID ); +S_API bool SteamAPI_ISteamGameServer_RequestUserGroupStatus( ISteamGameServer* self, uint64_steamid steamIDUser, uint64_steamid steamIDGroup ); +S_API void SteamAPI_ISteamGameServer_GetGameplayStats( ISteamGameServer* self ); +S_API SteamAPICall_t SteamAPI_ISteamGameServer_GetServerReputation( ISteamGameServer* self ); +S_API SteamIPAddress_t SteamAPI_ISteamGameServer_GetPublicIP( ISteamGameServer* self ); +S_API bool SteamAPI_ISteamGameServer_HandleIncomingPacket( ISteamGameServer* self, const void * pData, int cbData, uint32 srcIP, uint16 srcPort ); +S_API int SteamAPI_ISteamGameServer_GetNextOutgoingPacket( ISteamGameServer* self, void * pOut, int cbMaxOut, uint32 * pNetAdr, uint16 * pPort ); +S_API SteamAPICall_t SteamAPI_ISteamGameServer_AssociateWithClan( ISteamGameServer* self, uint64_steamid steamIDClan ); +S_API SteamAPICall_t SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility( ISteamGameServer* self, uint64_steamid steamIDNewPlayer ); +S_API bool SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate_DEPRECATED( ISteamGameServer* self, uint32 unIPClient, const void * pvAuthBlob, uint32 cubAuthBlobSize, CSteamID * pSteamIDUser ); +S_API uint64_steamid SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection( ISteamGameServer* self ); +S_API void SteamAPI_ISteamGameServer_SendUserDisconnect_DEPRECATED( ISteamGameServer* self, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamGameServer_BUpdateUserData( ISteamGameServer* self, uint64_steamid steamIDUser, const char * pchPlayerName, uint32 uScore ); + +// ISteamGameServerStats + +// A versioned accessor is exported by the library +S_API ISteamGameServerStats *SteamAPI_SteamGameServerStats_v001(); +// Inline, unversioned accessor to get the current version. Essentially the same as SteamGameServerStats(), but using this ensures that you are using a matching library. +inline ISteamGameServerStats *SteamAPI_SteamGameServerStats() { return SteamAPI_SteamGameServerStats_v001(); } +S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_RequestUserStats( ISteamGameServerStats* self, uint64_steamid steamIDUser ); +S_API bool SteamAPI_ISteamGameServerStats_GetUserStatInt32( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, int32 * pData ); +S_API bool SteamAPI_ISteamGameServerStats_GetUserStatFloat( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, float * pData ); +S_API bool SteamAPI_ISteamGameServerStats_GetUserAchievement( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, bool * pbAchieved ); +S_API bool SteamAPI_ISteamGameServerStats_SetUserStatInt32( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, int32 nData ); +S_API bool SteamAPI_ISteamGameServerStats_SetUserStatFloat( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, float fData ); +S_API bool SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName, float flCountThisSession, double dSessionLength ); +S_API bool SteamAPI_ISteamGameServerStats_SetUserAchievement( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName ); +S_API bool SteamAPI_ISteamGameServerStats_ClearUserAchievement( ISteamGameServerStats* self, uint64_steamid steamIDUser, const char * pchName ); +S_API SteamAPICall_t SteamAPI_ISteamGameServerStats_StoreUserStats( ISteamGameServerStats* self, uint64_steamid steamIDUser ); + +// ISteamNetworkingFakeUDPPort +S_API void SteamAPI_ISteamNetworkingFakeUDPPort_DestroyFakeUDPPort( ISteamNetworkingFakeUDPPort* self ); +S_API EResult SteamAPI_ISteamNetworkingFakeUDPPort_SendMessageToFakeIP( ISteamNetworkingFakeUDPPort* self, const SteamNetworkingIPAddr & remoteAddress, const void * pData, uint32 cbData, int nSendFlags ); +S_API int SteamAPI_ISteamNetworkingFakeUDPPort_ReceiveMessages( ISteamNetworkingFakeUDPPort* self, SteamNetworkingMessage_t ** ppOutMessages, int nMaxMessages ); +S_API void SteamAPI_ISteamNetworkingFakeUDPPort_ScheduleCleanup( ISteamNetworkingFakeUDPPort* self, const SteamNetworkingIPAddr & remoteAddress ); + +// SteamIPAddress_t +S_API bool SteamAPI_SteamIPAddress_t_IsSet( SteamIPAddress_t* self ); + +// MatchMakingKeyValuePair_t +S_API void SteamAPI_MatchMakingKeyValuePair_t_Construct( MatchMakingKeyValuePair_t* self ); + +// servernetadr_t +S_API void SteamAPI_servernetadr_t_Construct( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_Init( servernetadr_t* self, unsigned int ip, uint16 usQueryPort, uint16 usConnectionPort ); +S_API uint16 SteamAPI_servernetadr_t_GetQueryPort( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_SetQueryPort( servernetadr_t* self, uint16 usPort ); +S_API uint16 SteamAPI_servernetadr_t_GetConnectionPort( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_SetConnectionPort( servernetadr_t* self, uint16 usPort ); +S_API uint32 SteamAPI_servernetadr_t_GetIP( servernetadr_t* self ); +S_API void SteamAPI_servernetadr_t_SetIP( servernetadr_t* self, uint32 unIP ); +S_API const char * SteamAPI_servernetadr_t_GetConnectionAddressString( servernetadr_t* self ); +S_API const char * SteamAPI_servernetadr_t_GetQueryAddressString( servernetadr_t* self ); +S_API bool SteamAPI_servernetadr_t_IsLessThan( servernetadr_t* self, const servernetadr_t & netadr ); +S_API void SteamAPI_servernetadr_t_Assign( servernetadr_t* self, const servernetadr_t & that ); + +// gameserveritem_t +S_API void SteamAPI_gameserveritem_t_Construct( gameserveritem_t* self ); +S_API const char * SteamAPI_gameserveritem_t_GetName( gameserveritem_t* self ); +S_API void SteamAPI_gameserveritem_t_SetName( gameserveritem_t* self, const char * pName ); + +// SteamNetworkingIPAddr +S_API void SteamAPI_SteamNetworkingIPAddr_Clear( SteamNetworkingIPAddr* self ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsIPv6AllZeros( SteamNetworkingIPAddr* self ); +S_API void SteamAPI_SteamNetworkingIPAddr_SetIPv6( SteamNetworkingIPAddr* self, const uint8 * ipv6, uint16 nPort ); +S_API void SteamAPI_SteamNetworkingIPAddr_SetIPv4( SteamNetworkingIPAddr* self, uint32 nIP, uint16 nPort ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsIPv4( SteamNetworkingIPAddr* self ); +S_API uint32 SteamAPI_SteamNetworkingIPAddr_GetIPv4( SteamNetworkingIPAddr* self ); +S_API void SteamAPI_SteamNetworkingIPAddr_SetIPv6LocalHost( SteamNetworkingIPAddr* self, uint16 nPort ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsLocalHost( SteamNetworkingIPAddr* self ); +S_API void SteamAPI_SteamNetworkingIPAddr_ToString( SteamNetworkingIPAddr* self, char * buf, uint32 cbBuf, bool bWithPort ); +S_API bool SteamAPI_SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr* self, const char * pszStr ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsEqualTo( SteamNetworkingIPAddr* self, const SteamNetworkingIPAddr & x ); +S_API ESteamNetworkingFakeIPType SteamAPI_SteamNetworkingIPAddr_GetFakeIPType( SteamNetworkingIPAddr* self ); +S_API bool SteamAPI_SteamNetworkingIPAddr_IsFakeIP( SteamNetworkingIPAddr* self ); + +// SteamNetworkingIdentity +S_API void SteamAPI_SteamNetworkingIdentity_Clear( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsInvalid( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetSteamID( SteamNetworkingIdentity* self, uint64_steamid steamID ); +S_API uint64_steamid SteamAPI_SteamNetworkingIdentity_GetSteamID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetSteamID64( SteamNetworkingIdentity* self, uint64 steamID ); +S_API uint64 SteamAPI_SteamNetworkingIdentity_GetSteamID64( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_SetXboxPairwiseID( SteamNetworkingIdentity* self, const char * pszString ); +S_API const char * SteamAPI_SteamNetworkingIdentity_GetXboxPairwiseID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetPSNID( SteamNetworkingIdentity* self, uint64 id ); +S_API uint64 SteamAPI_SteamNetworkingIdentity_GetPSNID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetStadiaID( SteamNetworkingIdentity* self, uint64 id ); +S_API uint64 SteamAPI_SteamNetworkingIdentity_GetStadiaID( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetIPAddr( SteamNetworkingIdentity* self, const SteamNetworkingIPAddr & addr ); +S_API const SteamNetworkingIPAddr * SteamAPI_SteamNetworkingIdentity_GetIPAddr( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetIPv4Addr( SteamNetworkingIdentity* self, uint32 nIPv4, uint16 nPort ); +S_API uint32 SteamAPI_SteamNetworkingIdentity_GetIPv4( SteamNetworkingIdentity* self ); +S_API ESteamNetworkingFakeIPType SteamAPI_SteamNetworkingIdentity_GetFakeIPType( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsFakeIP( SteamNetworkingIdentity* self ); +S_API void SteamAPI_SteamNetworkingIdentity_SetLocalHost( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsLocalHost( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_SetGenericString( SteamNetworkingIdentity* self, const char * pszString ); +S_API const char * SteamAPI_SteamNetworkingIdentity_GetGenericString( SteamNetworkingIdentity* self ); +S_API bool SteamAPI_SteamNetworkingIdentity_SetGenericBytes( SteamNetworkingIdentity* self, const void * data, uint32 cbLen ); +S_API const uint8 * SteamAPI_SteamNetworkingIdentity_GetGenericBytes( SteamNetworkingIdentity* self, int & cbLen ); +S_API bool SteamAPI_SteamNetworkingIdentity_IsEqualTo( SteamNetworkingIdentity* self, const SteamNetworkingIdentity & x ); +S_API void SteamAPI_SteamNetworkingIdentity_ToString( SteamNetworkingIdentity* self, char * buf, uint32 cbBuf ); +S_API bool SteamAPI_SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity* self, const char * pszStr ); + +// SteamNetworkingMessage_t +S_API void SteamAPI_SteamNetworkingMessage_t_Release( SteamNetworkingMessage_t* self ); + +// SteamNetworkingConfigValue_t +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetInt32( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, int32_t data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetInt64( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, int64_t data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetFloat( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, float data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetPtr( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, void * data ); +S_API void SteamAPI_SteamNetworkingConfigValue_t_SetString( SteamNetworkingConfigValue_t* self, ESteamNetworkingConfigValue eVal, const char * data ); + +// SteamDatagramHostedAddress +S_API void SteamAPI_SteamDatagramHostedAddress_Clear( SteamDatagramHostedAddress* self ); +S_API SteamNetworkingPOPID SteamAPI_SteamDatagramHostedAddress_GetPopID( SteamDatagramHostedAddress* self ); +S_API void SteamAPI_SteamDatagramHostedAddress_SetDevAddress( SteamDatagramHostedAddress* self, uint32 nIP, uint16 nPort, SteamNetworkingPOPID popid ); #endif // STEAMAPIFLAT_H - - diff --git a/lib/windows/include/steam/steam_api_internal.h b/lib/windows/include/steam/steam_api_internal.h index ed0423b..e3aa18f 100644 --- a/lib/windows/include/steam/steam_api_internal.h +++ b/lib/windows/include/steam/steam_api_internal.h @@ -1,187 +1,60 @@ -//====== Copyright 1996-2015, Valve Corporation, All rights reserved. ======= +//====== Copyright Valve Corporation, All rights reserved. ==================== // -// Purpose: Internal private Steamworks API declarations and definitions +// Internal implementation details of the steamworks SDK. // -//============================================================================= - -#ifndef STEAM_API_INTERNAL_H -#define STEAM_API_INTERNAL_H - -S_API HSteamUser SteamAPI_GetHSteamUser(); -S_API void * S_CALLTYPE SteamInternal_ContextInit( void *pContextInitData ); -S_API void * S_CALLTYPE SteamInternal_CreateInterface( const char *ver ); - -#if !defined( STEAM_API_EXPORTS ) - -inline void S_CALLTYPE SteamInternal_OnContextInit( void* p ) -{ - ((CSteamAPIContext*)p)->Clear(); - if ( SteamAPI_GetHSteamPipe() ) - ((CSteamAPIContext*)p)->Init(); -} -inline CSteamAPIContext& SteamInternal_ModuleContext() -{ - // SteamInternal_ContextInit takes a base pointer for the equivalent of - // struct { void (*pFn)(void* pCtx); uintp counter; CSteamAPIContext ctx; } - // Do not change layout of 2 + sizeof... or add non-pointer aligned data! - // NOTE: declaring "static CSteamAPIConext" creates a large function - // which queries the initialization status of the object. We know that - // it is pointer-aligned and fully memset with zeros, so just alias a - // static buffer of the appropriate size and call it a CSteamAPIContext. - static void* s_CallbackCounterAndContext[ 2 + sizeof(CSteamAPIContext)/sizeof(void*) ] = { (void*)&SteamInternal_OnContextInit, 0 }; - return *(CSteamAPIContext*)SteamInternal_ContextInit( s_CallbackCounterAndContext ); -} - -inline ISteamClient *SteamClient() { return SteamInternal_ModuleContext().SteamClient(); } -inline ISteamUser *SteamUser() { return SteamInternal_ModuleContext().SteamUser(); } -inline ISteamFriends *SteamFriends() { return SteamInternal_ModuleContext().SteamFriends(); } -inline ISteamUtils *SteamUtils() { return SteamInternal_ModuleContext().SteamUtils(); } -inline ISteamMatchmaking *SteamMatchmaking() { return SteamInternal_ModuleContext().SteamMatchmaking(); } -inline ISteamUserStats *SteamUserStats() { return SteamInternal_ModuleContext().SteamUserStats(); } -inline ISteamApps *SteamApps() { return SteamInternal_ModuleContext().SteamApps(); } -inline ISteamMatchmakingServers *SteamMatchmakingServers() { return SteamInternal_ModuleContext().SteamMatchmakingServers(); } -inline ISteamNetworking *SteamNetworking() { return SteamInternal_ModuleContext().SteamNetworking(); } -inline ISteamRemoteStorage *SteamRemoteStorage() { return SteamInternal_ModuleContext().SteamRemoteStorage(); } -inline ISteamScreenshots *SteamScreenshots() { return SteamInternal_ModuleContext().SteamScreenshots(); } -inline ISteamHTTP *SteamHTTP() { return SteamInternal_ModuleContext().SteamHTTP(); } -inline ISteamUnifiedMessages *SteamUnifiedMessages() { return SteamInternal_ModuleContext().SteamUnifiedMessages(); } -inline ISteamController *SteamController() { return SteamInternal_ModuleContext().SteamController(); } -inline ISteamUGC *SteamUGC() { return SteamInternal_ModuleContext().SteamUGC(); } -inline ISteamAppList *SteamAppList() { return SteamInternal_ModuleContext().SteamAppList(); } -inline ISteamMusic *SteamMusic() { return SteamInternal_ModuleContext().SteamMusic(); } -inline ISteamMusicRemote *SteamMusicRemote() { return SteamInternal_ModuleContext().SteamMusicRemote(); } -inline ISteamHTMLSurface *SteamHTMLSurface() { return SteamInternal_ModuleContext().SteamHTMLSurface(); } -inline ISteamInventory *SteamInventory() { return SteamInternal_ModuleContext().SteamInventory(); } -inline ISteamVideo *SteamVideo() { return SteamInternal_ModuleContext().SteamVideo(); } - -#endif // !defined( STEAM_API_EXPORTS ) - - -inline void CSteamAPIContext::Clear() -{ - m_pSteamClient = NULL; - m_pSteamUser = NULL; - m_pSteamFriends = NULL; - m_pSteamUtils = NULL; - m_pSteamMatchmaking = NULL; - m_pSteamUserStats = NULL; - m_pSteamApps = NULL; - m_pSteamMatchmakingServers = NULL; - m_pSteamNetworking = NULL; - m_pSteamRemoteStorage = NULL; - m_pSteamHTTP = NULL; - m_pSteamScreenshots = NULL; - m_pSteamMusic = NULL; - m_pSteamUnifiedMessages = NULL; - m_pController = NULL; - m_pSteamUGC = NULL; - m_pSteamAppList = NULL; - m_pSteamMusic = NULL; - m_pSteamMusicRemote = NULL; - m_pSteamHTMLSurface = NULL; - m_pSteamInventory = NULL; -} - - -// This function must be declared inline in the header so the module using steam_api.dll gets the version names they want. -inline bool CSteamAPIContext::Init() -{ - HSteamUser hSteamUser = SteamAPI_GetHSteamUser(); - HSteamPipe hSteamPipe = SteamAPI_GetHSteamPipe(); - if ( !hSteamPipe ) - return false; - - m_pSteamClient = (ISteamClient*) SteamInternal_CreateInterface( STEAMCLIENT_INTERFACE_VERSION ); - if ( !m_pSteamClient ) - return false; - - m_pSteamUser = m_pSteamClient->GetISteamUser( hSteamUser, hSteamPipe, STEAMUSER_INTERFACE_VERSION ); - if ( !m_pSteamUser ) - return false; - - m_pSteamFriends = m_pSteamClient->GetISteamFriends( hSteamUser, hSteamPipe, STEAMFRIENDS_INTERFACE_VERSION ); - if ( !m_pSteamFriends ) - return false; - - m_pSteamUtils = m_pSteamClient->GetISteamUtils( hSteamPipe, STEAMUTILS_INTERFACE_VERSION ); - if ( !m_pSteamUtils ) - return false; - - m_pSteamMatchmaking = m_pSteamClient->GetISteamMatchmaking( hSteamUser, hSteamPipe, STEAMMATCHMAKING_INTERFACE_VERSION ); - if ( !m_pSteamMatchmaking ) - return false; - - m_pSteamMatchmakingServers = m_pSteamClient->GetISteamMatchmakingServers( hSteamUser, hSteamPipe, STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION ); - if ( !m_pSteamMatchmakingServers ) - return false; - - m_pSteamUserStats = m_pSteamClient->GetISteamUserStats( hSteamUser, hSteamPipe, STEAMUSERSTATS_INTERFACE_VERSION ); - if ( !m_pSteamUserStats ) - return false; - - m_pSteamApps = m_pSteamClient->GetISteamApps( hSteamUser, hSteamPipe, STEAMAPPS_INTERFACE_VERSION ); - if ( !m_pSteamApps ) - return false; - - m_pSteamNetworking = m_pSteamClient->GetISteamNetworking( hSteamUser, hSteamPipe, STEAMNETWORKING_INTERFACE_VERSION ); - if ( !m_pSteamNetworking ) - return false; - - m_pSteamRemoteStorage = m_pSteamClient->GetISteamRemoteStorage( hSteamUser, hSteamPipe, STEAMREMOTESTORAGE_INTERFACE_VERSION ); - if ( !m_pSteamRemoteStorage ) - return false; - - m_pSteamScreenshots = m_pSteamClient->GetISteamScreenshots( hSteamUser, hSteamPipe, STEAMSCREENSHOTS_INTERFACE_VERSION ); - if ( !m_pSteamScreenshots ) - return false; - - m_pSteamHTTP = m_pSteamClient->GetISteamHTTP( hSteamUser, hSteamPipe, STEAMHTTP_INTERFACE_VERSION ); - if ( !m_pSteamHTTP ) - return false; - - m_pSteamUnifiedMessages = m_pSteamClient->GetISteamUnifiedMessages( hSteamUser, hSteamPipe, STEAMUNIFIEDMESSAGES_INTERFACE_VERSION ); - if ( !m_pSteamUnifiedMessages ) - return false; - - m_pController = m_pSteamClient->GetISteamController( hSteamUser, hSteamPipe, STEAMCONTROLLER_INTERFACE_VERSION ); - if ( !m_pController ) - return false; - - m_pSteamUGC = m_pSteamClient->GetISteamUGC( hSteamUser, hSteamPipe, STEAMUGC_INTERFACE_VERSION ); - if ( !m_pSteamUGC ) - return false; - - m_pSteamAppList = m_pSteamClient->GetISteamAppList( hSteamUser, hSteamPipe, STEAMAPPLIST_INTERFACE_VERSION ); - if ( !m_pSteamAppList ) - return false; - - m_pSteamMusic = m_pSteamClient->GetISteamMusic( hSteamUser, hSteamPipe, STEAMMUSIC_INTERFACE_VERSION ); - if ( !m_pSteamMusic ) - return false; - - m_pSteamMusicRemote = m_pSteamClient->GetISteamMusicRemote( hSteamUser, hSteamPipe, STEAMMUSICREMOTE_INTERFACE_VERSION ); - if ( !m_pSteamMusicRemote ) - return false; - - m_pSteamHTMLSurface = m_pSteamClient->GetISteamHTMLSurface( hSteamUser, hSteamPipe, STEAMHTMLSURFACE_INTERFACE_VERSION ); - if ( !m_pSteamHTMLSurface ) - return false; - - m_pSteamInventory = m_pSteamClient->GetISteamInventory( hSteamUser, hSteamPipe, STEAMINVENTORY_INTERFACE_VERSION ); - if ( !m_pSteamInventory ) - return false; - - m_pSteamVideo = m_pSteamClient->GetISteamVideo( hSteamUser, hSteamPipe, STEAMVIDEO_INTERFACE_VERSION ); - if ( !m_pSteamVideo ) - return false; - - return true; -} - - -//----------------------------------------------------------------------------- -// The following macros are implementation details, not intended for public use +// You should be able to figure out how to use the SDK by reading +// steam_api_common.h, and should not need to understand anything in here. +// //----------------------------------------------------------------------------- + +#ifdef STEAM_CALLBACK_BEGIN +#error "This file should only be included from steam_api_common.h" +#endif + +#include <string.h> + +// Internal functions used to locate/create interfaces +S_API HSteamPipe S_CALLTYPE SteamAPI_GetHSteamPipe(); +S_API HSteamUser S_CALLTYPE SteamAPI_GetHSteamUser(); +S_API HSteamPipe S_CALLTYPE SteamGameServer_GetHSteamPipe(); +S_API HSteamUser S_CALLTYPE SteamGameServer_GetHSteamUser(); +S_API void *S_CALLTYPE SteamInternal_ContextInit( void *pContextInitData ); +S_API void *S_CALLTYPE SteamInternal_CreateInterface( const char *ver ); +S_API void *S_CALLTYPE SteamInternal_FindOrCreateUserInterface( HSteamUser hSteamUser, const char *pszVersion ); +S_API void *S_CALLTYPE SteamInternal_FindOrCreateGameServerInterface( HSteamUser hSteamUser, const char *pszVersion ); + +// Macro used to define a type-safe accessor that will always return the version +// of the interface of the *header file* you are compiling with! We also bounce +// through a safety function that checks for interfaces being created or destroyed. +// +// SteamInternal_ContextInit takes a base pointer for the equivalent of +// struct { void (*pFn)(void* pCtx); uintptr_t counter; void *ptr; } +// Do not change layout or add non-pointer aligned data! +#define STEAM_DEFINE_INTERFACE_ACCESSOR( type, name, expr, kind, version ) \ + inline void S_CALLTYPE SteamInternal_Init_ ## name( type *p ) { *p = (type)( expr ); } \ + STEAM_CLANG_ATTR( "interface_accessor_kind:" kind ";interface_accessor_version:" version ";" ) \ + inline type name() { \ + static void* s_CallbackCounterAndContext[ 3 ] = { (void*)&SteamInternal_Init_ ## name, 0, 0 }; \ + return *(type*)SteamInternal_ContextInit( s_CallbackCounterAndContext ); \ + } + +#define STEAM_DEFINE_USER_INTERFACE_ACCESSOR( type, name, version ) \ + STEAM_DEFINE_INTERFACE_ACCESSOR( type, name, SteamInternal_FindOrCreateUserInterface( SteamAPI_GetHSteamUser(), version ), "user", version ) +#define STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( type, name, version ) \ + STEAM_DEFINE_INTERFACE_ACCESSOR( type, name, SteamInternal_FindOrCreateGameServerInterface( SteamGameServer_GetHSteamUser(), version ), "gameserver", version ) + +// +// Internal stuff used for the standard, higher-level callback mechanism +// + +// Internal functions used by the utility CCallback objects to receive callbacks +S_API void S_CALLTYPE SteamAPI_RegisterCallback( class CCallbackBase *pCallback, int iCallback ); +S_API void S_CALLTYPE SteamAPI_UnregisterCallback( class CCallbackBase *pCallback ); +// Internal functions used by the utility CCallResult objects to receive async call results +S_API void S_CALLTYPE SteamAPI_RegisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); +S_API void S_CALLTYPE SteamAPI_UnregisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall ); + +#define _STEAM_CALLBACK_OFFSETOF( type, member ) ( (size_t)( (char *)&( (type *)0 )->member ) ) #define _STEAM_CALLBACK_AUTO_HOOK( thisclass, func, param ) #define _STEAM_CALLBACK_HELPER( _1, _2, SELECTED, ... ) _STEAM_CALLBACK_##SELECTED #define _STEAM_CALLBACK_SELECT( X, Y ) _STEAM_CALLBACK_HELPER X Y @@ -190,25 +63,24 @@ inline bool CSteamAPIContext::Init() CCallbackInternal_ ## func () { extra_code SteamAPI_RegisterCallback( this, param::k_iCallback ); } \ CCallbackInternal_ ## func ( const CCallbackInternal_ ## func & ) { extra_code SteamAPI_RegisterCallback( this, param::k_iCallback ); } \ CCallbackInternal_ ## func & operator=( const CCallbackInternal_ ## func & ) { return *this; } \ - private: virtual void Run( void *pvParam ) { _STEAM_CALLBACK_AUTO_HOOK( thisclass, func, param ) \ - thisclass *pOuter = reinterpret_cast<thisclass*>( reinterpret_cast<char*>(this) - offsetof( thisclass, m_steamcallback_ ## func ) ); \ + private: virtual void Run( void *pvParam ) S_OVERRIDE { _STEAM_CALLBACK_AUTO_HOOK( thisclass, func, param ) \ + thisclass *pOuter = reinterpret_cast<thisclass*>( reinterpret_cast<char*>(this) - _STEAM_CALLBACK_OFFSETOF( thisclass, m_steamcallback_ ## func ) ); \ pOuter->func( reinterpret_cast<param*>( pvParam ) ); \ } \ } m_steamcallback_ ## func ; void func( param *pParam ) #define _STEAM_CALLBACK_4( _, thisclass, func, param, var ) \ CCallback< thisclass, param > var; void func( param *pParam ) +#define _STEAM_CALLBACK_GS( _, thisclass, func, param, var ) \ + CCallback< thisclass, param, true > var; void func( param *pParam ) +#ifndef API_GEN -//----------------------------------------------------------------------------- -// Purpose: maps a steam async call result to a class member function -// template params: T = local class, P = parameter struct -//----------------------------------------------------------------------------- template< class T, class P > inline CCallResult<T, P>::CCallResult() { m_hAPICall = k_uAPICallInvalid; - m_pObj = NULL; - m_Func = NULL; + m_pObj = nullptr; + m_Func = nullptr; m_iCallback = P::k_iCallback; } @@ -240,7 +112,6 @@ inline void CCallResult<T, P>::Cancel() SteamAPI_UnregisterCallResult( this, m_hAPICall ); m_hAPICall = k_uAPICallInvalid; } - } template< class T, class P > @@ -266,15 +137,9 @@ inline void CCallResult<T, P>::Run( void *pvParam, bool bIOFailure, SteamAPICall } } - -//----------------------------------------------------------------------------- -// Purpose: maps a steam callback to a class member function -// template params: T = local class, P = parameter struct, -// bGameserver = listen for gameserver callbacks instead of client callbacks -//----------------------------------------------------------------------------- template< class T, class P, bool bGameserver > inline CCallback< T, P, bGameserver >::CCallback( T *pObj, func_t func ) - : m_pObj( NULL ), m_Func( NULL ) + : m_pObj( nullptr ), m_Func( nullptr ) { if ( bGameserver ) { @@ -311,17 +176,221 @@ inline void CCallback< T, P, bGameserver >::Run( void *pvParam ) (m_pObj->*m_Func)((P *)pvParam); } +#endif // #ifndef API_GEN -#if defined(USE_BREAKPAD_HANDLER) || defined(STEAM_API_EXPORTS) -// this should be called before the game initialized the steam APIs -// pchDate should be of the format "Mmm dd yyyy" (such as from the __ DATE __ macro ) -// pchTime should be of the format "hh:mm:ss" (such as from the __ TIME __ macro ) -// bFullMemoryDumps (Win32 only) -- writes out a uuid-full.dmp in the client/dumps folder -// pvContext-- can be NULL, will be the void * context passed into m_pfnPreMinidumpCallback -// PFNPreMinidumpCallback m_pfnPreMinidumpCallback -- optional callback which occurs just before a .dmp file is written during a crash. Applications can hook this to allow adding additional information into the .dmp comment stream. -S_API void S_CALLTYPE SteamAPI_UseBreakpadCrashHandler( char const *pchVersion, char const *pchDate, char const *pchTime, bool bFullMemoryDumps, void *pvContext, PFNPreMinidumpCallback m_pfnPreMinidumpCallback ); -S_API void S_CALLTYPE SteamAPI_SetBreakpadAppID( uint32 unAppID ); +// structure that contains client callback data +// see callbacks documentation for more details +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx +#endif + +/// Internal structure used in manual callback dispatch +struct CallbackMsg_t +{ + HSteamUser m_hSteamUser; // Specific user to whom this callback applies. + int m_iCallback; // Callback identifier. (Corresponds to the k_iCallback enum in the callback structure.) + uint8 *m_pubParam; // Points to the callback structure + int m_cubParam; // Size of the data pointed to by m_pubParam +}; +#pragma pack( pop ) + +// Macros to define steam callback structures. Used internally for debugging +#ifdef STEAM_CALLBACK_INSPECTION_ENABLED + #include "../../clientdll/steam_api_callback_inspection.h" +#else + #define STEAM_CALLBACK_BEGIN( callbackname, callbackid ) struct callbackname { enum { k_iCallback = callbackid }; + #define STEAM_CALLBACK_MEMBER( varidx, vartype, varname ) vartype varname ; + #define STEAM_CALLBACK_MEMBER_ARRAY( varidx, vartype, varname, varcount ) vartype varname [ varcount ]; + #define STEAM_CALLBACK_END(nArgs) }; #endif +// Forward declare all of the Steam interfaces. (Do we really need to do this?) +class ISteamClient; +class ISteamUser; +class ISteamGameServer; +class ISteamFriends; +class ISteamUtils; +class ISteamMatchmaking; +class ISteamContentServer; +class ISteamMatchmakingServers; +class ISteamUserStats; +class ISteamApps; +class ISteamNetworking; +class ISteamRemoteStorage; +class ISteamScreenshots; +class ISteamMusic; +class ISteamMusicRemote; +class ISteamGameServerStats; +class ISteamPS3OverlayRender; +class ISteamHTTP; +class ISteamController; +class ISteamUGC; +class ISteamHTMLSurface; +class ISteamInventory; +class ISteamVideo; +class ISteamParentalSettings; +class ISteamGameSearch; +class ISteamInput; +class ISteamParties; +class ISteamRemotePlay; + +// Forward declare types +struct SteamNetworkingIdentity; + +//----------------------------------------------------------------------------- +// Purpose: Base values for callback identifiers, each callback must +// have a unique ID. +//----------------------------------------------------------------------------- +enum { k_iSteamUserCallbacks = 100 }; +enum { k_iSteamGameServerCallbacks = 200 }; +enum { k_iSteamFriendsCallbacks = 300 }; +enum { k_iSteamBillingCallbacks = 400 }; +enum { k_iSteamMatchmakingCallbacks = 500 }; +enum { k_iSteamContentServerCallbacks = 600 }; +enum { k_iSteamUtilsCallbacks = 700 }; +enum { k_iSteamAppsCallbacks = 1000 }; +enum { k_iSteamUserStatsCallbacks = 1100 }; +enum { k_iSteamNetworkingCallbacks = 1200 }; +enum { k_iSteamNetworkingSocketsCallbacks = 1220 }; +enum { k_iSteamNetworkingMessagesCallbacks = 1250 }; +enum { k_iSteamNetworkingUtilsCallbacks = 1280 }; +enum { k_iSteamRemoteStorageCallbacks = 1300 }; +enum { k_iSteamGameServerItemsCallbacks = 1500 }; +enum { k_iSteamGameCoordinatorCallbacks = 1700 }; +enum { k_iSteamGameServerStatsCallbacks = 1800 }; +enum { k_iSteam2AsyncCallbacks = 1900 }; +enum { k_iSteamGameStatsCallbacks = 2000 }; +enum { k_iSteamHTTPCallbacks = 2100 }; +enum { k_iSteamScreenshotsCallbacks = 2300 }; +// NOTE: 2500-2599 are reserved +enum { k_iSteamStreamLauncherCallbacks = 2600 }; +enum { k_iSteamControllerCallbacks = 2800 }; +enum { k_iSteamUGCCallbacks = 3400 }; +enum { k_iSteamStreamClientCallbacks = 3500 }; +enum { k_iSteamMusicCallbacks = 4000 }; +enum { k_iSteamMusicRemoteCallbacks = 4100 }; +enum { k_iSteamGameNotificationCallbacks = 4400 }; +enum { k_iSteamHTMLSurfaceCallbacks = 4500 }; +enum { k_iSteamVideoCallbacks = 4600 }; +enum { k_iSteamInventoryCallbacks = 4700 }; +enum { k_ISteamParentalSettingsCallbacks = 5000 }; +enum { k_iSteamGameSearchCallbacks = 5200 }; +enum { k_iSteamPartiesCallbacks = 5300 }; +enum { k_iSteamSTARCallbacks = 5500 }; +enum { k_iSteamRemotePlayCallbacks = 5700 }; +enum { k_iSteamChatCallbacks = 5900 }; +// NOTE: Internal "IClientXxx" callback IDs go in clientenums.h + +// Macros used to annotate various Steamworks interfaces to generate the +// flat API +#ifdef API_GEN +# define STEAM_CLANG_ATTR(ATTR) __attribute__((annotate( ATTR ))) +#else +# define STEAM_CLANG_ATTR(ATTR) +#endif + +#define STEAM_OUT_STRUCT() STEAM_CLANG_ATTR( "out_struct: ;" ) +#define STEAM_OUT_STRING() STEAM_CLANG_ATTR( "out_string: ;" ) +#define STEAM_OUT_ARRAY_CALL(COUNTER,FUNCTION,PARAMS) STEAM_CLANG_ATTR( "out_array_call:" #COUNTER "," #FUNCTION "," #PARAMS ";" ) +#define STEAM_OUT_ARRAY_COUNT(COUNTER, DESC) STEAM_CLANG_ATTR( "out_array_count:" #COUNTER ";desc:" #DESC ) +#define STEAM_ARRAY_COUNT(COUNTER) STEAM_CLANG_ATTR( "array_count:" #COUNTER ";" ) +#define STEAM_ARRAY_COUNT_D(COUNTER, DESC) STEAM_CLANG_ATTR( "array_count:" #COUNTER ";desc:" #DESC ) +#define STEAM_BUFFER_COUNT(COUNTER) STEAM_CLANG_ATTR( "buffer_count:" #COUNTER ";" ) +#define STEAM_OUT_BUFFER_COUNT(COUNTER) STEAM_CLANG_ATTR( "out_buffer_count:" #COUNTER ";" ) +#define STEAM_OUT_STRING_COUNT(COUNTER) STEAM_CLANG_ATTR( "out_string_count:" #COUNTER ";" ) +#define STEAM_DESC(DESC) STEAM_CLANG_ATTR("desc:" #DESC ";") +#define STEAM_CALL_RESULT(RESULT_TYPE) STEAM_CLANG_ATTR("callresult:" #RESULT_TYPE ";") +#define STEAM_CALL_BACK(RESULT_TYPE) STEAM_CLANG_ATTR("callback:" #RESULT_TYPE ";") +#define STEAM_FLAT_NAME(NAME) STEAM_CLANG_ATTR("flat_name:" #NAME ";") + +// CSteamAPIContext encapsulates the Steamworks API global accessors into +// a single object. +// +// DEPRECATED: Used the global interface accessors instead! +// +// This will be removed in a future iteration of the SDK +class CSteamAPIContext +{ +public: + CSteamAPIContext() { Clear(); } + inline void Clear() { memset( this, 0, sizeof(*this) ); } + inline bool Init(); // NOTE: This is defined in steam_api.h, to avoid this file having to include everything + ISteamClient* SteamClient() const { return m_pSteamClient; } + ISteamUser* SteamUser() const { return m_pSteamUser; } + ISteamFriends* SteamFriends() const { return m_pSteamFriends; } + ISteamUtils* SteamUtils() const { return m_pSteamUtils; } + ISteamMatchmaking* SteamMatchmaking() const { return m_pSteamMatchmaking; } + ISteamGameSearch* SteamGameSearch() const { return m_pSteamGameSearch; } + ISteamUserStats* SteamUserStats() const { return m_pSteamUserStats; } + ISteamApps* SteamApps() const { return m_pSteamApps; } + ISteamMatchmakingServers* SteamMatchmakingServers() const { return m_pSteamMatchmakingServers; } + ISteamNetworking* SteamNetworking() const { return m_pSteamNetworking; } + ISteamRemoteStorage* SteamRemoteStorage() const { return m_pSteamRemoteStorage; } + ISteamScreenshots* SteamScreenshots() const { return m_pSteamScreenshots; } + ISteamHTTP* SteamHTTP() const { return m_pSteamHTTP; } + ISteamController* SteamController() const { return m_pController; } + ISteamUGC* SteamUGC() const { return m_pSteamUGC; } + ISteamMusic* SteamMusic() const { return m_pSteamMusic; } + ISteamMusicRemote* SteamMusicRemote() const { return m_pSteamMusicRemote; } + ISteamHTMLSurface* SteamHTMLSurface() const { return m_pSteamHTMLSurface; } + ISteamInventory* SteamInventory() const { return m_pSteamInventory; } + ISteamVideo* SteamVideo() const { return m_pSteamVideo; } + ISteamParentalSettings* SteamParentalSettings() const { return m_pSteamParentalSettings; } + ISteamInput* SteamInput() const { return m_pSteamInput; } +private: + ISteamClient *m_pSteamClient; + ISteamUser *m_pSteamUser; + ISteamFriends *m_pSteamFriends; + ISteamUtils *m_pSteamUtils; + ISteamMatchmaking *m_pSteamMatchmaking; + ISteamGameSearch *m_pSteamGameSearch; + ISteamUserStats *m_pSteamUserStats; + ISteamApps *m_pSteamApps; + ISteamMatchmakingServers *m_pSteamMatchmakingServers; + ISteamNetworking *m_pSteamNetworking; + ISteamRemoteStorage *m_pSteamRemoteStorage; + ISteamScreenshots *m_pSteamScreenshots; + ISteamHTTP *m_pSteamHTTP; + ISteamController *m_pController; + ISteamUGC *m_pSteamUGC; + ISteamMusic *m_pSteamMusic; + ISteamMusicRemote *m_pSteamMusicRemote; + ISteamHTMLSurface *m_pSteamHTMLSurface; + ISteamInventory *m_pSteamInventory; + ISteamVideo *m_pSteamVideo; + ISteamParentalSettings *m_pSteamParentalSettings; + ISteamInput *m_pSteamInput; +}; + +class CSteamGameServerAPIContext +{ +public: + CSteamGameServerAPIContext() { Clear(); } + inline void Clear() { memset( this, 0, sizeof(*this) ); } + inline bool Init(); // NOTE: This is defined in steam_gameserver.h, to avoid this file having to include everything + + ISteamClient *SteamClient() const { return m_pSteamClient; } + ISteamGameServer *SteamGameServer() const { return m_pSteamGameServer; } + ISteamUtils *SteamGameServerUtils() const { return m_pSteamGameServerUtils; } + ISteamNetworking *SteamGameServerNetworking() const { return m_pSteamGameServerNetworking; } + ISteamGameServerStats *SteamGameServerStats() const { return m_pSteamGameServerStats; } + ISteamHTTP *SteamHTTP() const { return m_pSteamHTTP; } + ISteamInventory *SteamInventory() const { return m_pSteamInventory; } + ISteamUGC *SteamUGC() const { return m_pSteamUGC; } + +private: + ISteamClient *m_pSteamClient; + ISteamGameServer *m_pSteamGameServer; + ISteamUtils *m_pSteamGameServerUtils; + ISteamNetworking *m_pSteamGameServerNetworking; + ISteamGameServerStats *m_pSteamGameServerStats; + ISteamHTTP *m_pSteamHTTP; + ISteamInventory *m_pSteamInventory; + ISteamUGC *m_pSteamUGC; +}; + -#endif // STEAM_API_INTERNAL_H diff --git a/lib/windows/include/steam/steam_api_interop.cs b/lib/windows/include/steam/steam_api_interop.cs deleted file mode 100644 index f7a6775..0000000 --- a/lib/windows/include/steam/steam_api_interop.cs +++ /dev/null @@ -1,10470 +0,0 @@ -//====== Copyright 1996-2016, Valve Corporation, All rights reserved. ======= -// -// Purpose: This file contains C#/managed code bindings for the SteamAPI interfaces -// This file is auto-generated, do not edit it. -// -//============================================================================= - -using System; -using System.Runtime.InteropServices; -using Valve.Steamworks; -using Valve.Interop; - -namespace Valve.Interop -{ - -public class NativeEntrypoints -{ - - -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_CreateSteamPipe")] -internal static extern uint SteamAPI_ISteamClient_CreateSteamPipe(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_BReleaseSteamPipe")] -internal static extern bool SteamAPI_ISteamClient_BReleaseSteamPipe(IntPtr instancePtr, uint hSteamPipe); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_ConnectToGlobalUser")] -internal static extern uint SteamAPI_ISteamClient_ConnectToGlobalUser(IntPtr instancePtr, uint hSteamPipe); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_CreateLocalUser")] -internal static extern uint SteamAPI_ISteamClient_CreateLocalUser(IntPtr instancePtr, ref uint phSteamPipe, uint eAccountType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_ReleaseUser")] -internal static extern void SteamAPI_ISteamClient_ReleaseUser(IntPtr instancePtr, uint hSteamPipe, uint hUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUser")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUser(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamGameServer")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamGameServer(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_SetLocalIPBinding")] -internal static extern void SteamAPI_ISteamClient_SetLocalIPBinding(IntPtr instancePtr, uint unIP, char usPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamFriends")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamFriends(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUtils")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUtils(IntPtr instancePtr, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamMatchmaking")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamMatchmaking(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamMatchmakingServers")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamMatchmakingServers(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamGenericInterface")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamGenericInterface(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUserStats")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUserStats(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamGameServerStats")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamGameServerStats(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamApps")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamApps(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamNetworking")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamNetworking(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamRemoteStorage")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamRemoteStorage(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamScreenshots")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamScreenshots(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetIPCCallCount")] -internal static extern uint SteamAPI_ISteamClient_GetIPCCallCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_SetWarningMessageHook")] -internal static extern void SteamAPI_ISteamClient_SetWarningMessageHook(IntPtr instancePtr, IntPtr pFunction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_BShutdownIfAllPipesClosed")] -internal static extern bool SteamAPI_ISteamClient_BShutdownIfAllPipesClosed(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamHTTP")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamHTTP(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUnifiedMessages")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUnifiedMessages(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamController")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamController(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamUGC")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamUGC(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamAppList")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamAppList(IntPtr instancePtr, uint hSteamUser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamMusic")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamMusic(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamMusicRemote")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamMusicRemote(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamHTMLSurface")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamHTMLSurface(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamInventory")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamInventory(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamClient_GetISteamVideo")] -internal static extern IntPtr SteamAPI_ISteamClient_GetISteamVideo(IntPtr instancePtr, uint hSteamuser, uint hSteamPipe, string pchVersion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetHSteamUser")] -internal static extern uint SteamAPI_ISteamUser_GetHSteamUser(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BLoggedOn")] -internal static extern bool SteamAPI_ISteamUser_BLoggedOn(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetSteamID")] -internal static extern ulong SteamAPI_ISteamUser_GetSteamID(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_InitiateGameConnection")] -internal static extern int SteamAPI_ISteamUser_InitiateGameConnection(IntPtr instancePtr, IntPtr pAuthBlob, int cbMaxAuthBlob, ulong steamIDGameServer, uint unIPServer, char usPortServer, bool bSecure); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_TerminateGameConnection")] -internal static extern void SteamAPI_ISteamUser_TerminateGameConnection(IntPtr instancePtr, uint unIPServer, char usPortServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_TrackAppUsageEvent")] -internal static extern void SteamAPI_ISteamUser_TrackAppUsageEvent(IntPtr instancePtr, ulong gameID, int eAppUsageEvent, string pchExtraInfo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetUserDataFolder")] -internal static extern bool SteamAPI_ISteamUser_GetUserDataFolder(IntPtr instancePtr, string pchBuffer, int cubBuffer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_StartVoiceRecording")] -internal static extern void SteamAPI_ISteamUser_StartVoiceRecording(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_StopVoiceRecording")] -internal static extern void SteamAPI_ISteamUser_StopVoiceRecording(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetAvailableVoice")] -internal static extern uint SteamAPI_ISteamUser_GetAvailableVoice(IntPtr instancePtr, ref uint pcbCompressed, ref uint pcbUncompressed, uint nUncompressedVoiceDesiredSampleRate); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetVoice")] -internal static extern uint SteamAPI_ISteamUser_GetVoice(IntPtr instancePtr, bool bWantCompressed, IntPtr pDestBuffer, uint cbDestBufferSize, ref uint nBytesWritten, bool bWantUncompressed, IntPtr pUncompressedDestBuffer, uint cbUncompressedDestBufferSize, ref uint nUncompressBytesWritten, uint nUncompressedVoiceDesiredSampleRate); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_DecompressVoice")] -internal static extern uint SteamAPI_ISteamUser_DecompressVoice(IntPtr instancePtr, IntPtr pCompressed, uint cbCompressed, IntPtr pDestBuffer, uint cbDestBufferSize, ref uint nBytesWritten, uint nDesiredSampleRate); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetVoiceOptimalSampleRate")] -internal static extern uint SteamAPI_ISteamUser_GetVoiceOptimalSampleRate(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetAuthSessionTicket")] -internal static extern uint SteamAPI_ISteamUser_GetAuthSessionTicket(IntPtr instancePtr, IntPtr pTicket, int cbMaxTicket, ref uint pcbTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BeginAuthSession")] -internal static extern uint SteamAPI_ISteamUser_BeginAuthSession(IntPtr instancePtr, IntPtr pAuthTicket, int cbAuthTicket, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_EndAuthSession")] -internal static extern void SteamAPI_ISteamUser_EndAuthSession(IntPtr instancePtr, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_CancelAuthTicket")] -internal static extern void SteamAPI_ISteamUser_CancelAuthTicket(IntPtr instancePtr, uint hAuthTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_UserHasLicenseForApp")] -internal static extern uint SteamAPI_ISteamUser_UserHasLicenseForApp(IntPtr instancePtr, ulong steamID, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsBehindNAT")] -internal static extern bool SteamAPI_ISteamUser_BIsBehindNAT(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_AdvertiseGame")] -internal static extern void SteamAPI_ISteamUser_AdvertiseGame(IntPtr instancePtr, ulong steamIDGameServer, uint unIPServer, char usPortServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_RequestEncryptedAppTicket")] -internal static extern ulong SteamAPI_ISteamUser_RequestEncryptedAppTicket(IntPtr instancePtr, IntPtr pDataToInclude, int cbDataToInclude); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetEncryptedAppTicket")] -internal static extern bool SteamAPI_ISteamUser_GetEncryptedAppTicket(IntPtr instancePtr, IntPtr pTicket, int cbMaxTicket, ref uint pcbTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetGameBadgeLevel")] -internal static extern int SteamAPI_ISteamUser_GetGameBadgeLevel(IntPtr instancePtr, int nSeries, bool bFoil); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetPlayerSteamLevel")] -internal static extern int SteamAPI_ISteamUser_GetPlayerSteamLevel(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_RequestStoreAuthURL")] -internal static extern ulong SteamAPI_ISteamUser_RequestStoreAuthURL(IntPtr instancePtr, string pchRedirectURL); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsPhoneVerified")] -internal static extern bool SteamAPI_ISteamUser_BIsPhoneVerified(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsTwoFactorEnabled")] -internal static extern bool SteamAPI_ISteamUser_BIsTwoFactorEnabled(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsPhoneIdentifying")] -internal static extern bool SteamAPI_ISteamUser_BIsPhoneIdentifying(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_BIsPhoneRequiringVerification")] -internal static extern bool SteamAPI_ISteamUser_BIsPhoneRequiringVerification(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetPersonaName")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetPersonaName(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetPersonaName")] -internal static extern ulong SteamAPI_ISteamFriends_SetPersonaName(IntPtr instancePtr, string pchPersonaName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetPersonaState")] -internal static extern uint SteamAPI_ISteamFriends_GetPersonaState(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendCount")] -internal static extern int SteamAPI_ISteamFriends_GetFriendCount(IntPtr instancePtr, int iFriendFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetFriendByIndex(IntPtr instancePtr, int iFriend, int iFriendFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendRelationship")] -internal static extern uint SteamAPI_ISteamFriends_GetFriendRelationship(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendPersonaState")] -internal static extern uint SteamAPI_ISteamFriends_GetFriendPersonaState(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendPersonaName")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendPersonaName(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendGamePlayed")] -internal static extern bool SteamAPI_ISteamFriends_GetFriendGamePlayed(IntPtr instancePtr, ulong steamIDFriend, ref FriendGameInfo_t pFriendGameInfo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendPersonaNameHistory")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendPersonaNameHistory(IntPtr instancePtr, ulong steamIDFriend, int iPersonaName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendSteamLevel")] -internal static extern int SteamAPI_ISteamFriends_GetFriendSteamLevel(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetPlayerNickname")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetPlayerNickname(IntPtr instancePtr, ulong steamIDPlayer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupCount")] -internal static extern int SteamAPI_ISteamFriends_GetFriendsGroupCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex")] -internal static extern char SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex(IntPtr instancePtr, int iFG); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupName")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendsGroupName(IntPtr instancePtr, char friendsGroupID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupMembersCount")] -internal static extern int SteamAPI_ISteamFriends_GetFriendsGroupMembersCount(IntPtr instancePtr, char friendsGroupID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupMembersList")] -internal static extern void SteamAPI_ISteamFriends_GetFriendsGroupMembersList(IntPtr instancePtr, char friendsGroupID, [In, Out] CSteamID[] pOutSteamIDMembers, int nMembersCount); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_HasFriend")] -internal static extern bool SteamAPI_ISteamFriends_HasFriend(IntPtr instancePtr, ulong steamIDFriend, int iFriendFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanCount")] -internal static extern int SteamAPI_ISteamFriends_GetClanCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetClanByIndex(IntPtr instancePtr, int iClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanName")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetClanName(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanTag")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetClanTag(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanActivityCounts")] -internal static extern bool SteamAPI_ISteamFriends_GetClanActivityCounts(IntPtr instancePtr, ulong steamIDClan, ref int pnOnline, ref int pnInGame, ref int pnChatting); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_DownloadClanActivityCounts")] -internal static extern ulong SteamAPI_ISteamFriends_DownloadClanActivityCounts(IntPtr instancePtr, [In, Out] CSteamID[] psteamIDClans, int cClansToRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendCountFromSource")] -internal static extern int SteamAPI_ISteamFriends_GetFriendCountFromSource(IntPtr instancePtr, ulong steamIDSource); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendFromSourceByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetFriendFromSourceByIndex(IntPtr instancePtr, ulong steamIDSource, int iFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_IsUserInSource")] -internal static extern bool SteamAPI_ISteamFriends_IsUserInSource(IntPtr instancePtr, ulong steamIDUser, ulong steamIDSource); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetInGameVoiceSpeaking")] -internal static extern void SteamAPI_ISteamFriends_SetInGameVoiceSpeaking(IntPtr instancePtr, ulong steamIDUser, bool bSpeaking); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlay")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlay(IntPtr instancePtr, string pchDialog); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayToUser")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlayToUser(IntPtr instancePtr, string pchDialog, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage(IntPtr instancePtr, string pchURL); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayToStore")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlayToStore(IntPtr instancePtr, uint nAppID, char eFlag); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetPlayedWith")] -internal static extern void SteamAPI_ISteamFriends_SetPlayedWith(IntPtr instancePtr, ulong steamIDUserPlayedWith); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog")] -internal static extern void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetSmallFriendAvatar")] -internal static extern int SteamAPI_ISteamFriends_GetSmallFriendAvatar(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetMediumFriendAvatar")] -internal static extern int SteamAPI_ISteamFriends_GetMediumFriendAvatar(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetLargeFriendAvatar")] -internal static extern int SteamAPI_ISteamFriends_GetLargeFriendAvatar(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_RequestUserInformation")] -internal static extern bool SteamAPI_ISteamFriends_RequestUserInformation(IntPtr instancePtr, ulong steamIDUser, bool bRequireNameOnly); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_RequestClanOfficerList")] -internal static extern ulong SteamAPI_ISteamFriends_RequestClanOfficerList(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanOwner")] -internal static extern ulong SteamAPI_ISteamFriends_GetClanOwner(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanOfficerCount")] -internal static extern int SteamAPI_ISteamFriends_GetClanOfficerCount(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanOfficerByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetClanOfficerByIndex(IntPtr instancePtr, ulong steamIDClan, int iOfficer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetUserRestrictions")] -internal static extern uint SteamAPI_ISteamFriends_GetUserRestrictions(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetRichPresence")] -internal static extern bool SteamAPI_ISteamFriends_SetRichPresence(IntPtr instancePtr, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ClearRichPresence")] -internal static extern void SteamAPI_ISteamFriends_ClearRichPresence(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendRichPresence")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendRichPresence(IntPtr instancePtr, ulong steamIDFriend, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount")] -internal static extern int SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex")] -internal static extern IntPtr SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex(IntPtr instancePtr, ulong steamIDFriend, int iKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_RequestFriendRichPresence")] -internal static extern void SteamAPI_ISteamFriends_RequestFriendRichPresence(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_InviteUserToGame")] -internal static extern bool SteamAPI_ISteamFriends_InviteUserToGame(IntPtr instancePtr, ulong steamIDFriend, string pchConnectString); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetCoplayFriendCount")] -internal static extern int SteamAPI_ISteamFriends_GetCoplayFriendCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetCoplayFriend")] -internal static extern ulong SteamAPI_ISteamFriends_GetCoplayFriend(IntPtr instancePtr, int iCoplayFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendCoplayTime")] -internal static extern int SteamAPI_ISteamFriends_GetFriendCoplayTime(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendCoplayGame")] -internal static extern uint SteamAPI_ISteamFriends_GetFriendCoplayGame(IntPtr instancePtr, ulong steamIDFriend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_JoinClanChatRoom")] -internal static extern ulong SteamAPI_ISteamFriends_JoinClanChatRoom(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_LeaveClanChatRoom")] -internal static extern bool SteamAPI_ISteamFriends_LeaveClanChatRoom(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanChatMemberCount")] -internal static extern int SteamAPI_ISteamFriends_GetClanChatMemberCount(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetChatMemberByIndex")] -internal static extern ulong SteamAPI_ISteamFriends_GetChatMemberByIndex(IntPtr instancePtr, ulong steamIDClan, int iUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SendClanChatMessage")] -internal static extern bool SteamAPI_ISteamFriends_SendClanChatMessage(IntPtr instancePtr, ulong steamIDClanChat, string pchText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetClanChatMessage")] -internal static extern int SteamAPI_ISteamFriends_GetClanChatMessage(IntPtr instancePtr, ulong steamIDClanChat, int iMessage, IntPtr prgchText, int cchTextMax, ref uint peChatEntryType, ref CSteamID psteamidChatter); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_IsClanChatAdmin")] -internal static extern bool SteamAPI_ISteamFriends_IsClanChatAdmin(IntPtr instancePtr, ulong steamIDClanChat, ulong steamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam")] -internal static extern bool SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam(IntPtr instancePtr, ulong steamIDClanChat); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_OpenClanChatWindowInSteam")] -internal static extern bool SteamAPI_ISteamFriends_OpenClanChatWindowInSteam(IntPtr instancePtr, ulong steamIDClanChat); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_CloseClanChatWindowInSteam")] -internal static extern bool SteamAPI_ISteamFriends_CloseClanChatWindowInSteam(IntPtr instancePtr, ulong steamIDClanChat); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetListenForFriendsMessages")] -internal static extern bool SteamAPI_ISteamFriends_SetListenForFriendsMessages(IntPtr instancePtr, bool bInterceptEnabled); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_ReplyToFriendMessage")] -internal static extern bool SteamAPI_ISteamFriends_ReplyToFriendMessage(IntPtr instancePtr, ulong steamIDFriend, string pchMsgToSend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFriendMessage")] -internal static extern int SteamAPI_ISteamFriends_GetFriendMessage(IntPtr instancePtr, ulong steamIDFriend, int iMessageID, IntPtr pvData, int cubData, ref uint peChatEntryType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetFollowerCount")] -internal static extern ulong SteamAPI_ISteamFriends_GetFollowerCount(IntPtr instancePtr, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_IsFollowing")] -internal static extern ulong SteamAPI_ISteamFriends_IsFollowing(IntPtr instancePtr, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_EnumerateFollowingList")] -internal static extern ulong SteamAPI_ISteamFriends_EnumerateFollowingList(IntPtr instancePtr, uint unStartIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetSecondsSinceAppActive")] -internal static extern uint SteamAPI_ISteamUtils_GetSecondsSinceAppActive(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetSecondsSinceComputerActive")] -internal static extern uint SteamAPI_ISteamUtils_GetSecondsSinceComputerActive(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetConnectedUniverse")] -internal static extern int SteamAPI_ISteamUtils_GetConnectedUniverse(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetServerRealTime")] -internal static extern uint SteamAPI_ISteamUtils_GetServerRealTime(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetIPCountry")] -internal static extern IntPtr SteamAPI_ISteamUtils_GetIPCountry(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetImageSize")] -internal static extern bool SteamAPI_ISteamUtils_GetImageSize(IntPtr instancePtr, int iImage, ref uint pnWidth, ref uint pnHeight); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetImageRGBA")] -internal static extern bool SteamAPI_ISteamUtils_GetImageRGBA(IntPtr instancePtr, int iImage, IntPtr pubDest, int nDestBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetCSERIPPort")] -internal static extern bool SteamAPI_ISteamUtils_GetCSERIPPort(IntPtr instancePtr, ref uint unIP, ref char usPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetCurrentBatteryPower")] -internal static extern byte SteamAPI_ISteamUtils_GetCurrentBatteryPower(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetAppID")] -internal static extern uint SteamAPI_ISteamUtils_GetAppID(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_SetOverlayNotificationPosition")] -internal static extern void SteamAPI_ISteamUtils_SetOverlayNotificationPosition(IntPtr instancePtr, uint eNotificationPosition); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsAPICallCompleted")] -internal static extern bool SteamAPI_ISteamUtils_IsAPICallCompleted(IntPtr instancePtr, ulong hSteamAPICall, ref bool pbFailed); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetAPICallFailureReason")] -internal static extern int SteamAPI_ISteamUtils_GetAPICallFailureReason(IntPtr instancePtr, ulong hSteamAPICall); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetAPICallResult")] -internal static extern bool SteamAPI_ISteamUtils_GetAPICallResult(IntPtr instancePtr, ulong hSteamAPICall, IntPtr pCallback, int cubCallback, int iCallbackExpected, ref bool pbFailed); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetIPCCallCount")] -internal static extern uint SteamAPI_ISteamUtils_GetIPCCallCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_SetWarningMessageHook")] -internal static extern void SteamAPI_ISteamUtils_SetWarningMessageHook(IntPtr instancePtr, IntPtr pFunction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsOverlayEnabled")] -internal static extern bool SteamAPI_ISteamUtils_IsOverlayEnabled(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_BOverlayNeedsPresent")] -internal static extern bool SteamAPI_ISteamUtils_BOverlayNeedsPresent(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_CheckFileSignature")] -internal static extern ulong SteamAPI_ISteamUtils_CheckFileSignature(IntPtr instancePtr, string szFileName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_ShowGamepadTextInput")] -internal static extern bool SteamAPI_ISteamUtils_ShowGamepadTextInput(IntPtr instancePtr, int eInputMode, int eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetEnteredGamepadTextLength")] -internal static extern uint SteamAPI_ISteamUtils_GetEnteredGamepadTextLength(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetEnteredGamepadTextInput")] -internal static extern bool SteamAPI_ISteamUtils_GetEnteredGamepadTextInput(IntPtr instancePtr, string pchText, uint cchText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_GetSteamUILanguage")] -internal static extern IntPtr SteamAPI_ISteamUtils_GetSteamUILanguage(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsSteamRunningInVR")] -internal static extern bool SteamAPI_ISteamUtils_IsSteamRunningInVR(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_SetOverlayNotificationInset")] -internal static extern void SteamAPI_ISteamUtils_SetOverlayNotificationInset(IntPtr instancePtr, int nHorizontalInset, int nVerticalInset); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsSteamInBigPictureMode")] -internal static extern bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_StartVRDashboard")] -internal static extern void SteamAPI_ISteamUtils_StartVRDashboard(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetFavoriteGameCount")] -internal static extern int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetFavoriteGame")] -internal static extern bool SteamAPI_ISteamMatchmaking_GetFavoriteGame(IntPtr instancePtr, int iGame, ref uint pnAppID, ref uint pnIP, ref char pnConnPort, ref char pnQueryPort, ref uint punFlags, ref uint pRTime32LastPlayedOnServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddFavoriteGame")] -internal static extern int SteamAPI_ISteamMatchmaking_AddFavoriteGame(IntPtr instancePtr, uint nAppID, uint nIP, char nConnPort, char nQueryPort, uint unFlags, uint rTime32LastPlayedOnServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_RemoveFavoriteGame")] -internal static extern bool SteamAPI_ISteamMatchmaking_RemoveFavoriteGame(IntPtr instancePtr, uint nAppID, uint nIP, char nConnPort, char nQueryPort, uint unFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_RequestLobbyList")] -internal static extern ulong SteamAPI_ISteamMatchmaking_RequestLobbyList(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter(IntPtr instancePtr, string pchKeyToMatch, string pchValueToMatch, uint eComparisonType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter(IntPtr instancePtr, string pchKeyToMatch, int nValueToMatch, uint eComparisonType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter(IntPtr instancePtr, string pchKeyToMatch, int nValueToBeCloseTo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(IntPtr instancePtr, int nSlotsAvailable); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter(IntPtr instancePtr, uint eLobbyDistanceFilter); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter(IntPtr instancePtr, int cMaxResults); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter")] -internal static extern void SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyByIndex")] -internal static extern ulong SteamAPI_ISteamMatchmaking_GetLobbyByIndex(IntPtr instancePtr, int iLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_CreateLobby")] -internal static extern ulong SteamAPI_ISteamMatchmaking_CreateLobby(IntPtr instancePtr, uint eLobbyType, int cMaxMembers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_JoinLobby")] -internal static extern ulong SteamAPI_ISteamMatchmaking_JoinLobby(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_LeaveLobby")] -internal static extern void SteamAPI_ISteamMatchmaking_LeaveLobby(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_InviteUserToLobby")] -internal static extern bool SteamAPI_ISteamMatchmaking_InviteUserToLobby(IntPtr instancePtr, ulong steamIDLobby, ulong steamIDInvitee); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetNumLobbyMembers")] -internal static extern int SteamAPI_ISteamMatchmaking_GetNumLobbyMembers(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex")] -internal static extern ulong SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex(IntPtr instancePtr, ulong steamIDLobby, int iMember); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyData")] -internal static extern IntPtr SteamAPI_ISteamMatchmaking_GetLobbyData(IntPtr instancePtr, ulong steamIDLobby, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyData")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyData(IntPtr instancePtr, ulong steamIDLobby, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyDataCount")] -internal static extern int SteamAPI_ISteamMatchmaking_GetLobbyDataCount(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex")] -internal static extern bool SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex(IntPtr instancePtr, ulong steamIDLobby, int iLobbyData, string pchKey, int cchKeyBufferSize, string pchValue, int cchValueBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_DeleteLobbyData")] -internal static extern bool SteamAPI_ISteamMatchmaking_DeleteLobbyData(IntPtr instancePtr, ulong steamIDLobby, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyMemberData")] -internal static extern IntPtr SteamAPI_ISteamMatchmaking_GetLobbyMemberData(IntPtr instancePtr, ulong steamIDLobby, ulong steamIDUser, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyMemberData")] -internal static extern void SteamAPI_ISteamMatchmaking_SetLobbyMemberData(IntPtr instancePtr, ulong steamIDLobby, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SendLobbyChatMsg")] -internal static extern bool SteamAPI_ISteamMatchmaking_SendLobbyChatMsg(IntPtr instancePtr, ulong steamIDLobby, IntPtr pvMsgBody, int cubMsgBody); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyChatEntry")] -internal static extern int SteamAPI_ISteamMatchmaking_GetLobbyChatEntry(IntPtr instancePtr, ulong steamIDLobby, int iChatID, ref CSteamID pSteamIDUser, IntPtr pvData, int cubData, ref uint peChatEntryType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_RequestLobbyData")] -internal static extern bool SteamAPI_ISteamMatchmaking_RequestLobbyData(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyGameServer")] -internal static extern void SteamAPI_ISteamMatchmaking_SetLobbyGameServer(IntPtr instancePtr, ulong steamIDLobby, uint unGameServerIP, char unGameServerPort, ulong steamIDGameServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyGameServer")] -internal static extern bool SteamAPI_ISteamMatchmaking_GetLobbyGameServer(IntPtr instancePtr, ulong steamIDLobby, ref uint punGameServerIP, ref char punGameServerPort, ref CSteamID psteamIDGameServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit(IntPtr instancePtr, ulong steamIDLobby, int cMaxMembers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit")] -internal static extern int SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyType")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyType(IntPtr instancePtr, ulong steamIDLobby, uint eLobbyType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyJoinable")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyJoinable(IntPtr instancePtr, ulong steamIDLobby, bool bLobbyJoinable); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyOwner")] -internal static extern ulong SteamAPI_ISteamMatchmaking_GetLobbyOwner(IntPtr instancePtr, ulong steamIDLobby); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyOwner")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLobbyOwner(IntPtr instancePtr, ulong steamIDLobby, ulong steamIDNewOwner); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_SetLinkedLobby")] -internal static extern bool SteamAPI_ISteamMatchmaking_SetLinkedLobby(IntPtr instancePtr, ulong steamIDLobby, ulong steamIDLobbyDependent); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded")] -internal static extern void SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded(IntPtr instancePtr, uint hRequest, int iServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond")] -internal static extern void SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond(IntPtr instancePtr, uint hRequest, int iServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete")] -internal static extern void SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete(IntPtr instancePtr, uint hRequest, uint response); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPingResponse_ServerResponded")] -internal static extern void SteamAPI_ISteamMatchmakingPingResponse_ServerResponded(IntPtr instancePtr, IntPtr server); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond")] -internal static extern void SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList")] -internal static extern void SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList(IntPtr instancePtr, string pchName, int nScore, float flTimePlayed); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond")] -internal static extern void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete")] -internal static extern void SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded")] -internal static extern void SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded(IntPtr instancePtr, string pchRule, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond")] -internal static extern void SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete")] -internal static extern void SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestInternetServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestInternetServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestLANServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestLANServerList(IntPtr instancePtr, uint iApp, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList(IntPtr instancePtr, uint iApp, [In, Out] IntPtr[] ppchFilters, uint nFilters, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_ReleaseRequest")] -internal static extern void SteamAPI_ISteamMatchmakingServers_ReleaseRequest(IntPtr instancePtr, uint hServerListRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_GetServerDetails")] -internal static extern IntPtr SteamAPI_ISteamMatchmakingServers_GetServerDetails(IntPtr instancePtr, uint hRequest, int iServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_CancelQuery")] -internal static extern void SteamAPI_ISteamMatchmakingServers_CancelQuery(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RefreshQuery")] -internal static extern void SteamAPI_ISteamMatchmakingServers_RefreshQuery(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_IsRefreshing")] -internal static extern bool SteamAPI_ISteamMatchmakingServers_IsRefreshing(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_GetServerCount")] -internal static extern int SteamAPI_ISteamMatchmakingServers_GetServerCount(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_RefreshServer")] -internal static extern void SteamAPI_ISteamMatchmakingServers_RefreshServer(IntPtr instancePtr, uint hRequest, int iServer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_PingServer")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_PingServer(IntPtr instancePtr, uint unIP, char usPort, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_PlayerDetails")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_PlayerDetails(IntPtr instancePtr, uint unIP, char usPort, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_ServerRules")] -internal static extern uint SteamAPI_ISteamMatchmakingServers_ServerRules(IntPtr instancePtr, uint unIP, char usPort, IntPtr pRequestServersResponse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmakingServers_CancelServerQuery")] -internal static extern void SteamAPI_ISteamMatchmakingServers_CancelServerQuery(IntPtr instancePtr, uint hServerQuery); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWrite")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileWrite(IntPtr instancePtr, string pchFile, IntPtr pvData, int cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileRead")] -internal static extern int SteamAPI_ISteamRemoteStorage_FileRead(IntPtr instancePtr, string pchFile, IntPtr pvData, int cubDataToRead); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteAsync")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_FileWriteAsync(IntPtr instancePtr, string pchFile, IntPtr pvData, uint cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileReadAsync")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_FileReadAsync(IntPtr instancePtr, string pchFile, uint nOffset, uint cubToRead); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete(IntPtr instancePtr, ulong hReadCall, IntPtr pvBuffer, uint cubToRead); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileForget")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileForget(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileDelete")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileDelete(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileShare")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_FileShare(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_SetSyncPlatforms")] -internal static extern bool SteamAPI_ISteamRemoteStorage_SetSyncPlatforms(IntPtr instancePtr, string pchFile, uint eRemoteStoragePlatform); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk(IntPtr instancePtr, ulong writeHandle, IntPtr pvData, int cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamClose")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileWriteStreamClose(IntPtr instancePtr, ulong writeHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel(IntPtr instancePtr, ulong writeHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FileExists")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FileExists(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_FilePersisted")] -internal static extern bool SteamAPI_ISteamRemoteStorage_FilePersisted(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileSize")] -internal static extern int SteamAPI_ISteamRemoteStorage_GetFileSize(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileTimestamp")] -internal static extern long SteamAPI_ISteamRemoteStorage_GetFileTimestamp(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetSyncPlatforms")] -internal static extern uint SteamAPI_ISteamRemoteStorage_GetSyncPlatforms(IntPtr instancePtr, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileCount")] -internal static extern int SteamAPI_ISteamRemoteStorage_GetFileCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileNameAndSize")] -internal static extern IntPtr SteamAPI_ISteamRemoteStorage_GetFileNameAndSize(IntPtr instancePtr, int iFile, ref int pnFileSizeInBytes); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetQuota")] -internal static extern bool SteamAPI_ISteamRemoteStorage_GetQuota(IntPtr instancePtr, ref ulong pnTotalBytes, ref ulong puAvailableBytes); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount")] -internal static extern bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp")] -internal static extern bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp")] -internal static extern void SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp(IntPtr instancePtr, bool bEnabled); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UGCDownload")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_UGCDownload(IntPtr instancePtr, ulong hContent, uint unPriority); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress")] -internal static extern bool SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress(IntPtr instancePtr, ulong hContent, ref int pnBytesDownloaded, ref int pnBytesExpected); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetUGCDetails")] -internal static extern bool SteamAPI_ISteamRemoteStorage_GetUGCDetails(IntPtr instancePtr, ulong hContent, ref uint pnAppID, System.Text.StringBuilder ppchName, ref int pnFileSizeInBytes, ref CSteamID pSteamIDOwner); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UGCRead")] -internal static extern int SteamAPI_ISteamRemoteStorage_UGCRead(IntPtr instancePtr, ulong hContent, IntPtr pvData, int cubDataToRead, uint cOffset, uint eAction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetCachedUGCCount")] -internal static extern int SteamAPI_ISteamRemoteStorage_GetCachedUGCCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle(IntPtr instancePtr, int iCachedContent); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_PublishWorkshopFile")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_PublishWorkshopFile(IntPtr instancePtr, string pchFile, string pchPreviewFile, uint nConsumerAppId, string pchTitle, string pchDescription, uint eVisibility, ref SteamParamStringArray_t pTags, uint eWorkshopFileType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile(IntPtr instancePtr, ulong updateHandle, string pchFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile(IntPtr instancePtr, ulong updateHandle, string pchPreviewFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle(IntPtr instancePtr, ulong updateHandle, string pchTitle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription(IntPtr instancePtr, ulong updateHandle, string pchDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility(IntPtr instancePtr, ulong updateHandle, uint eVisibility); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags(IntPtr instancePtr, ulong updateHandle, ref SteamParamStringArray_t pTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate(IntPtr instancePtr, ulong updateHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails(IntPtr instancePtr, ulong unPublishedFileId, uint unMaxSecondsOld); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_DeletePublishedFile")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_DeletePublishedFile(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles(IntPtr instancePtr, uint unStartIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_SubscribePublishedFile")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_SubscribePublishedFile(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles(IntPtr instancePtr, uint unStartIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription")] -internal static extern bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(IntPtr instancePtr, ulong updateHandle, string pchChangeDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote(IntPtr instancePtr, ulong unPublishedFileId, bool bVoteUp); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails(IntPtr instancePtr, ulong unPublishedFileId); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(IntPtr instancePtr, ulong steamId, uint unStartIndex, ref SteamParamStringArray_t pRequiredTags, ref SteamParamStringArray_t pExcludedTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_PublishVideo")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_PublishVideo(IntPtr instancePtr, uint eVideoProvider, string pchVideoAccount, string pchVideoIdentifier, string pchPreviewFile, uint nConsumerAppId, string pchTitle, string pchDescription, uint eVisibility, ref SteamParamStringArray_t pTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction(IntPtr instancePtr, ulong unPublishedFileId, uint eAction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(IntPtr instancePtr, uint eAction, uint unStartIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(IntPtr instancePtr, uint eEnumerationType, uint unStartIndex, uint unCount, uint unDays, ref SteamParamStringArray_t pTags, ref SteamParamStringArray_t pUserTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation")] -internal static extern ulong SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation(IntPtr instancePtr, ulong hContent, string pchLocation, uint unPriority); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_RequestCurrentStats")] -internal static extern bool SteamAPI_ISteamUserStats_RequestCurrentStats(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetStat")] -internal static extern bool SteamAPI_ISteamUserStats_GetStat(IntPtr instancePtr, string pchName, ref int pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetStat0")] -internal static extern bool SteamAPI_ISteamUserStats_GetStat0(IntPtr instancePtr, string pchName, ref float pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_SetStat")] -internal static extern bool SteamAPI_ISteamUserStats_SetStat(IntPtr instancePtr, string pchName, int nData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_SetStat0")] -internal static extern bool SteamAPI_ISteamUserStats_SetStat0(IntPtr instancePtr, string pchName, float fData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_UpdateAvgRateStat")] -internal static extern bool SteamAPI_ISteamUserStats_UpdateAvgRateStat(IntPtr instancePtr, string pchName, float flCountThisSession, double dSessionLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievement")] -internal static extern bool SteamAPI_ISteamUserStats_GetAchievement(IntPtr instancePtr, string pchName, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_SetAchievement")] -internal static extern bool SteamAPI_ISteamUserStats_SetAchievement(IntPtr instancePtr, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_ClearAchievement")] -internal static extern bool SteamAPI_ISteamUserStats_ClearAchievement(IntPtr instancePtr, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime")] -internal static extern bool SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime(IntPtr instancePtr, string pchName, ref bool pbAchieved, ref uint punUnlockTime); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_StoreStats")] -internal static extern bool SteamAPI_ISteamUserStats_StoreStats(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementIcon")] -internal static extern int SteamAPI_ISteamUserStats_GetAchievementIcon(IntPtr instancePtr, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute")] -internal static extern IntPtr SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute(IntPtr instancePtr, string pchName, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_IndicateAchievementProgress")] -internal static extern bool SteamAPI_ISteamUserStats_IndicateAchievementProgress(IntPtr instancePtr, string pchName, uint nCurProgress, uint nMaxProgress); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetNumAchievements")] -internal static extern uint SteamAPI_ISteamUserStats_GetNumAchievements(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementName")] -internal static extern IntPtr SteamAPI_ISteamUserStats_GetAchievementName(IntPtr instancePtr, uint iAchievement); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_RequestUserStats")] -internal static extern ulong SteamAPI_ISteamUserStats_RequestUserStats(IntPtr instancePtr, ulong steamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetUserStat")] -internal static extern bool SteamAPI_ISteamUserStats_GetUserStat(IntPtr instancePtr, ulong steamIDUser, string pchName, ref int pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetUserStat0")] -internal static extern bool SteamAPI_ISteamUserStats_GetUserStat0(IntPtr instancePtr, ulong steamIDUser, string pchName, ref float pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetUserAchievement")] -internal static extern bool SteamAPI_ISteamUserStats_GetUserAchievement(IntPtr instancePtr, ulong steamIDUser, string pchName, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime")] -internal static extern bool SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime(IntPtr instancePtr, ulong steamIDUser, string pchName, ref bool pbAchieved, ref uint punUnlockTime); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_ResetAllStats")] -internal static extern bool SteamAPI_ISteamUserStats_ResetAllStats(IntPtr instancePtr, bool bAchievementsToo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_FindOrCreateLeaderboard")] -internal static extern ulong SteamAPI_ISteamUserStats_FindOrCreateLeaderboard(IntPtr instancePtr, string pchLeaderboardName, uint eLeaderboardSortMethod, uint eLeaderboardDisplayType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_FindLeaderboard")] -internal static extern ulong SteamAPI_ISteamUserStats_FindLeaderboard(IntPtr instancePtr, string pchLeaderboardName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardName")] -internal static extern IntPtr SteamAPI_ISteamUserStats_GetLeaderboardName(IntPtr instancePtr, ulong hSteamLeaderboard); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardEntryCount")] -internal static extern int SteamAPI_ISteamUserStats_GetLeaderboardEntryCount(IntPtr instancePtr, ulong hSteamLeaderboard); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardSortMethod")] -internal static extern uint SteamAPI_ISteamUserStats_GetLeaderboardSortMethod(IntPtr instancePtr, ulong hSteamLeaderboard); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardDisplayType")] -internal static extern uint SteamAPI_ISteamUserStats_GetLeaderboardDisplayType(IntPtr instancePtr, ulong hSteamLeaderboard); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_DownloadLeaderboardEntries")] -internal static extern ulong SteamAPI_ISteamUserStats_DownloadLeaderboardEntries(IntPtr instancePtr, ulong hSteamLeaderboard, uint eLeaderboardDataRequest, int nRangeStart, int nRangeEnd); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers")] -internal static extern ulong SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers(IntPtr instancePtr, ulong hSteamLeaderboard, [In, Out] CSteamID[] prgUsers, int cUsers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry")] -internal static extern bool SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry(IntPtr instancePtr, ulong hSteamLeaderboardEntries, int index, ref LeaderboardEntry_t pLeaderboardEntry, ref int pDetails, int cDetailsMax); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_UploadLeaderboardScore")] -internal static extern ulong SteamAPI_ISteamUserStats_UploadLeaderboardScore(IntPtr instancePtr, ulong hSteamLeaderboard, uint eLeaderboardUploadScoreMethod, int nScore, ref int pScoreDetails, int cScoreDetailsCount); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_AttachLeaderboardUGC")] -internal static extern ulong SteamAPI_ISteamUserStats_AttachLeaderboardUGC(IntPtr instancePtr, ulong hSteamLeaderboard, ulong hUGC); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers")] -internal static extern ulong SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages")] -internal static extern ulong SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo")] -internal static extern int SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo(IntPtr instancePtr, string pchName, uint unNameBufLen, ref float pflPercent, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo")] -internal static extern int SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo(IntPtr instancePtr, int iIteratorPrevious, string pchName, uint unNameBufLen, ref float pflPercent, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementAchievedPercent")] -internal static extern bool SteamAPI_ISteamUserStats_GetAchievementAchievedPercent(IntPtr instancePtr, string pchName, ref float pflPercent); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_RequestGlobalStats")] -internal static extern ulong SteamAPI_ISteamUserStats_RequestGlobalStats(IntPtr instancePtr, int nHistoryDays); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStat")] -internal static extern bool SteamAPI_ISteamUserStats_GetGlobalStat(IntPtr instancePtr, string pchStatName, ref long pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStat0")] -internal static extern bool SteamAPI_ISteamUserStats_GetGlobalStat0(IntPtr instancePtr, string pchStatName, ref double pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStatHistory")] -internal static extern int SteamAPI_ISteamUserStats_GetGlobalStatHistory(IntPtr instancePtr, string pchStatName, [In, Out] long[] pData, uint cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStatHistory0")] -internal static extern int SteamAPI_ISteamUserStats_GetGlobalStatHistory0(IntPtr instancePtr, string pchStatName, [In, Out] double[] pData, uint cubData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsSubscribed")] -internal static extern bool SteamAPI_ISteamApps_BIsSubscribed(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsLowViolence")] -internal static extern bool SteamAPI_ISteamApps_BIsLowViolence(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsCybercafe")] -internal static extern bool SteamAPI_ISteamApps_BIsCybercafe(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsVACBanned")] -internal static extern bool SteamAPI_ISteamApps_BIsVACBanned(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetCurrentGameLanguage")] -internal static extern IntPtr SteamAPI_ISteamApps_GetCurrentGameLanguage(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetAvailableGameLanguages")] -internal static extern IntPtr SteamAPI_ISteamApps_GetAvailableGameLanguages(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsSubscribedApp")] -internal static extern bool SteamAPI_ISteamApps_BIsSubscribedApp(IntPtr instancePtr, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsDlcInstalled")] -internal static extern bool SteamAPI_ISteamApps_BIsDlcInstalled(IntPtr instancePtr, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime")] -internal static extern uint SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend")] -internal static extern bool SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetDLCCount")] -internal static extern int SteamAPI_ISteamApps_GetDLCCount(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BGetDLCDataByIndex")] -internal static extern bool SteamAPI_ISteamApps_BGetDLCDataByIndex(IntPtr instancePtr, int iDLC, ref uint pAppID, ref bool pbAvailable, string pchName, int cchNameBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_InstallDLC")] -internal static extern void SteamAPI_ISteamApps_InstallDLC(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_UninstallDLC")] -internal static extern void SteamAPI_ISteamApps_UninstallDLC(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey")] -internal static extern void SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetCurrentBetaName")] -internal static extern bool SteamAPI_ISteamApps_GetCurrentBetaName(IntPtr instancePtr, string pchName, int cchNameBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_MarkContentCorrupt")] -internal static extern bool SteamAPI_ISteamApps_MarkContentCorrupt(IntPtr instancePtr, bool bMissingFilesOnly); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetInstalledDepots")] -internal static extern uint SteamAPI_ISteamApps_GetInstalledDepots(IntPtr instancePtr, uint appID, ref uint pvecDepots, uint cMaxDepots); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetAppInstallDir")] -internal static extern uint SteamAPI_ISteamApps_GetAppInstallDir(IntPtr instancePtr, uint appID, string pchFolder, uint cchFolderBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_BIsAppInstalled")] -internal static extern bool SteamAPI_ISteamApps_BIsAppInstalled(IntPtr instancePtr, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetAppOwner")] -internal static extern ulong SteamAPI_ISteamApps_GetAppOwner(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetLaunchQueryParam")] -internal static extern IntPtr SteamAPI_ISteamApps_GetLaunchQueryParam(IntPtr instancePtr, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetDlcDownloadProgress")] -internal static extern bool SteamAPI_ISteamApps_GetDlcDownloadProgress(IntPtr instancePtr, uint nAppID, ref ulong punBytesDownloaded, ref ulong punBytesTotal); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetAppBuildId")] -internal static extern int SteamAPI_ISteamApps_GetAppBuildId(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys")] -internal static extern void SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamApps_GetFileDetails")] -internal static extern ulong SteamAPI_ISteamApps_GetFileDetails(IntPtr instancePtr, string pszFileName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_SendP2PPacket")] -internal static extern bool SteamAPI_ISteamNetworking_SendP2PPacket(IntPtr instancePtr, ulong steamIDRemote, IntPtr pubData, uint cubData, uint eP2PSendType, int nChannel); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_IsP2PPacketAvailable")] -internal static extern bool SteamAPI_ISteamNetworking_IsP2PPacketAvailable(IntPtr instancePtr, ref uint pcubMsgSize, int nChannel); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_ReadP2PPacket")] -internal static extern bool SteamAPI_ISteamNetworking_ReadP2PPacket(IntPtr instancePtr, IntPtr pubDest, uint cubDest, ref uint pcubMsgSize, ref CSteamID psteamIDRemote, int nChannel); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser")] -internal static extern bool SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser(IntPtr instancePtr, ulong steamIDRemote); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CloseP2PSessionWithUser")] -internal static extern bool SteamAPI_ISteamNetworking_CloseP2PSessionWithUser(IntPtr instancePtr, ulong steamIDRemote); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CloseP2PChannelWithUser")] -internal static extern bool SteamAPI_ISteamNetworking_CloseP2PChannelWithUser(IntPtr instancePtr, ulong steamIDRemote, int nChannel); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetP2PSessionState")] -internal static extern bool SteamAPI_ISteamNetworking_GetP2PSessionState(IntPtr instancePtr, ulong steamIDRemote, ref P2PSessionState_t pConnectionState); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_AllowP2PPacketRelay")] -internal static extern bool SteamAPI_ISteamNetworking_AllowP2PPacketRelay(IntPtr instancePtr, bool bAllow); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CreateListenSocket")] -internal static extern uint SteamAPI_ISteamNetworking_CreateListenSocket(IntPtr instancePtr, int nVirtualP2PPort, uint nIP, char nPort, bool bAllowUseOfPacketRelay); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CreateP2PConnectionSocket")] -internal static extern uint SteamAPI_ISteamNetworking_CreateP2PConnectionSocket(IntPtr instancePtr, ulong steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_CreateConnectionSocket")] -internal static extern uint SteamAPI_ISteamNetworking_CreateConnectionSocket(IntPtr instancePtr, uint nIP, char nPort, int nTimeoutSec); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_DestroySocket")] -internal static extern bool SteamAPI_ISteamNetworking_DestroySocket(IntPtr instancePtr, uint hSocket, bool bNotifyRemoteEnd); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_DestroyListenSocket")] -internal static extern bool SteamAPI_ISteamNetworking_DestroyListenSocket(IntPtr instancePtr, uint hSocket, bool bNotifyRemoteEnd); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_SendDataOnSocket")] -internal static extern bool SteamAPI_ISteamNetworking_SendDataOnSocket(IntPtr instancePtr, uint hSocket, IntPtr pubData, uint cubData, bool bReliable); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_IsDataAvailableOnSocket")] -internal static extern bool SteamAPI_ISteamNetworking_IsDataAvailableOnSocket(IntPtr instancePtr, uint hSocket, ref uint pcubMsgSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_RetrieveDataFromSocket")] -internal static extern bool SteamAPI_ISteamNetworking_RetrieveDataFromSocket(IntPtr instancePtr, uint hSocket, IntPtr pubDest, uint cubDest, ref uint pcubMsgSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_IsDataAvailable")] -internal static extern bool SteamAPI_ISteamNetworking_IsDataAvailable(IntPtr instancePtr, uint hListenSocket, ref uint pcubMsgSize, ref uint phSocket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_RetrieveData")] -internal static extern bool SteamAPI_ISteamNetworking_RetrieveData(IntPtr instancePtr, uint hListenSocket, IntPtr pubDest, uint cubDest, ref uint pcubMsgSize, ref uint phSocket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetSocketInfo")] -internal static extern bool SteamAPI_ISteamNetworking_GetSocketInfo(IntPtr instancePtr, uint hSocket, ref CSteamID pSteamIDRemote, ref int peSocketStatus, ref uint punIPRemote, ref char punPortRemote); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetListenSocketInfo")] -internal static extern bool SteamAPI_ISteamNetworking_GetListenSocketInfo(IntPtr instancePtr, uint hListenSocket, ref uint pnIP, ref char pnPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetSocketConnectionType")] -internal static extern uint SteamAPI_ISteamNetworking_GetSocketConnectionType(IntPtr instancePtr, uint hSocket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamNetworking_GetMaxPacketSize")] -internal static extern int SteamAPI_ISteamNetworking_GetMaxPacketSize(IntPtr instancePtr, uint hSocket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_WriteScreenshot")] -internal static extern uint SteamAPI_ISteamScreenshots_WriteScreenshot(IntPtr instancePtr, IntPtr pubRGB, uint cubRGB, int nWidth, int nHeight); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_AddScreenshotToLibrary")] -internal static extern uint SteamAPI_ISteamScreenshots_AddScreenshotToLibrary(IntPtr instancePtr, string pchFilename, string pchThumbnailFilename, int nWidth, int nHeight); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_TriggerScreenshot")] -internal static extern void SteamAPI_ISteamScreenshots_TriggerScreenshot(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_HookScreenshots")] -internal static extern void SteamAPI_ISteamScreenshots_HookScreenshots(IntPtr instancePtr, bool bHook); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_SetLocation")] -internal static extern bool SteamAPI_ISteamScreenshots_SetLocation(IntPtr instancePtr, uint hScreenshot, string pchLocation); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_TagUser")] -internal static extern bool SteamAPI_ISteamScreenshots_TagUser(IntPtr instancePtr, uint hScreenshot, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_TagPublishedFile")] -internal static extern bool SteamAPI_ISteamScreenshots_TagPublishedFile(IntPtr instancePtr, uint hScreenshot, ulong unPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_IsScreenshotsHooked")] -internal static extern bool SteamAPI_ISteamScreenshots_IsScreenshotsHooked(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary")] -internal static extern uint SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary(IntPtr instancePtr, uint eType, string pchFilename, string pchVRFilename); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_BIsEnabled")] -internal static extern bool SteamAPI_ISteamMusic_BIsEnabled(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_BIsPlaying")] -internal static extern bool SteamAPI_ISteamMusic_BIsPlaying(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_GetPlaybackStatus")] -internal static extern int SteamAPI_ISteamMusic_GetPlaybackStatus(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_Play")] -internal static extern void SteamAPI_ISteamMusic_Play(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_Pause")] -internal static extern void SteamAPI_ISteamMusic_Pause(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_PlayPrevious")] -internal static extern void SteamAPI_ISteamMusic_PlayPrevious(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_PlayNext")] -internal static extern void SteamAPI_ISteamMusic_PlayNext(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_SetVolume")] -internal static extern void SteamAPI_ISteamMusic_SetVolume(IntPtr instancePtr, float flVolume); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusic_GetVolume")] -internal static extern float SteamAPI_ISteamMusic_GetVolume(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote")] -internal static extern bool SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote(IntPtr instancePtr, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote")] -internal static extern bool SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote")] -internal static extern bool SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_BActivationSuccess")] -internal static extern bool SteamAPI_ISteamMusicRemote_BActivationSuccess(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetDisplayName")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetDisplayName(IntPtr instancePtr, string pchDisplayName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64(IntPtr instancePtr, IntPtr pvBuffer, uint cbBufferLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnablePlayPrevious")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnablePlayPrevious(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnablePlayNext")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnablePlayNext(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnableShuffled")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnableShuffled(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnableLooped")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnableLooped(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnableQueue")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnableQueue(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_EnablePlaylists")] -internal static extern bool SteamAPI_ISteamMusicRemote_EnablePlaylists(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus(IntPtr instancePtr, int nStatus); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateShuffled")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateShuffled(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateLooped")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateLooped(IntPtr instancePtr, bool bValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateVolume")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateVolume(IntPtr instancePtr, float flValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_CurrentEntryWillChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_CurrentEntryWillChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable")] -internal static extern bool SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable(IntPtr instancePtr, bool bAvailable); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText(IntPtr instancePtr, string pchText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds(IntPtr instancePtr, int nValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt")] -internal static extern bool SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt(IntPtr instancePtr, IntPtr pvBuffer, uint cbBufferLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_CurrentEntryDidChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_CurrentEntryDidChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_QueueWillChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_QueueWillChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_ResetQueueEntries")] -internal static extern bool SteamAPI_ISteamMusicRemote_ResetQueueEntries(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetQueueEntry")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetQueueEntry(IntPtr instancePtr, int nID, int nPosition, string pchEntryText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry(IntPtr instancePtr, int nID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_QueueDidChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_QueueDidChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_PlaylistWillChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_PlaylistWillChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_ResetPlaylistEntries")] -internal static extern bool SteamAPI_ISteamMusicRemote_ResetPlaylistEntries(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetPlaylistEntry")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetPlaylistEntry(IntPtr instancePtr, int nID, int nPosition, string pchEntryText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry")] -internal static extern bool SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry(IntPtr instancePtr, int nID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMusicRemote_PlaylistDidChange")] -internal static extern bool SteamAPI_ISteamMusicRemote_PlaylistDidChange(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_CreateHTTPRequest")] -internal static extern uint SteamAPI_ISteamHTTP_CreateHTTPRequest(IntPtr instancePtr, uint eHTTPRequestMethod, string pchAbsoluteURL); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestContextValue")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestContextValue(IntPtr instancePtr, uint hRequest, ulong ulContextValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(IntPtr instancePtr, uint hRequest, uint unTimeoutSeconds); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue(IntPtr instancePtr, uint hRequest, string pchHeaderName, string pchHeaderValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter(IntPtr instancePtr, uint hRequest, string pchParamName, string pchParamValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SendHTTPRequest")] -internal static extern bool SteamAPI_ISteamHTTP_SendHTTPRequest(IntPtr instancePtr, uint hRequest, ref ulong pCallHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse")] -internal static extern bool SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse(IntPtr instancePtr, uint hRequest, ref ulong pCallHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_DeferHTTPRequest")] -internal static extern bool SteamAPI_ISteamHTTP_DeferHTTPRequest(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_PrioritizeHTTPRequest")] -internal static extern bool SteamAPI_ISteamHTTP_PrioritizeHTTPRequest(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize(IntPtr instancePtr, uint hRequest, string pchHeaderName, ref uint unResponseHeaderSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue(IntPtr instancePtr, uint hRequest, string pchHeaderName, IntPtr pHeaderValueBuffer, uint unBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseBodySize")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPResponseBodySize(IntPtr instancePtr, uint hRequest, ref uint unBodySize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseBodyData")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPResponseBodyData(IntPtr instancePtr, uint hRequest, IntPtr pBodyDataBuffer, uint unBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData(IntPtr instancePtr, uint hRequest, uint cOffset, IntPtr pBodyDataBuffer, uint unBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_ReleaseHTTPRequest")] -internal static extern bool SteamAPI_ISteamHTTP_ReleaseHTTPRequest(IntPtr instancePtr, uint hRequest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct(IntPtr instancePtr, uint hRequest, ref float pflPercentOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody(IntPtr instancePtr, uint hRequest, string pchContentType, IntPtr pubBody, uint unBodyLen); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_CreateCookieContainer")] -internal static extern uint SteamAPI_ISteamHTTP_CreateCookieContainer(IntPtr instancePtr, bool bAllowResponsesToModify); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_ReleaseCookieContainer")] -internal static extern bool SteamAPI_ISteamHTTP_ReleaseCookieContainer(IntPtr instancePtr, uint hCookieContainer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetCookie")] -internal static extern bool SteamAPI_ISteamHTTP_SetCookie(IntPtr instancePtr, uint hCookieContainer, string pchHost, string pchUrl, string pchCookie); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer(IntPtr instancePtr, uint hRequest, uint hCookieContainer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo(IntPtr instancePtr, uint hRequest, string pchUserAgentInfo); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(IntPtr instancePtr, uint hRequest, bool bRequireVerifiedCertificate); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS")] -internal static extern bool SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(IntPtr instancePtr, uint hRequest, uint unMilliseconds); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut")] -internal static extern bool SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut(IntPtr instancePtr, uint hRequest, ref bool pbWasTimedOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_SendMethod")] -internal static extern ulong SteamAPI_ISteamUnifiedMessages_SendMethod(IntPtr instancePtr, string pchServiceMethod, IntPtr pRequestBuffer, uint unRequestBufferSize, ulong unContext); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_GetMethodResponseInfo")] -internal static extern bool SteamAPI_ISteamUnifiedMessages_GetMethodResponseInfo(IntPtr instancePtr, ulong hHandle, ref uint punResponseSize, ref uint peResult); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_GetMethodResponseData")] -internal static extern bool SteamAPI_ISteamUnifiedMessages_GetMethodResponseData(IntPtr instancePtr, ulong hHandle, IntPtr pResponseBuffer, uint unResponseBufferSize, bool bAutoRelease); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_ReleaseMethod")] -internal static extern bool SteamAPI_ISteamUnifiedMessages_ReleaseMethod(IntPtr instancePtr, ulong hHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUnifiedMessages_SendNotification")] -internal static extern bool SteamAPI_ISteamUnifiedMessages_SendNotification(IntPtr instancePtr, string pchServiceNotification, IntPtr pNotificationBuffer, uint unNotificationBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_Init")] -internal static extern bool SteamAPI_ISteamController_Init(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_Shutdown")] -internal static extern bool SteamAPI_ISteamController_Shutdown(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_RunFrame")] -internal static extern void SteamAPI_ISteamController_RunFrame(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetConnectedControllers")] -internal static extern int SteamAPI_ISteamController_GetConnectedControllers(IntPtr instancePtr, ref ulong handlesOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ShowBindingPanel")] -internal static extern bool SteamAPI_ISteamController_ShowBindingPanel(IntPtr instancePtr, ulong controllerHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetActionSetHandle")] -internal static extern ulong SteamAPI_ISteamController_GetActionSetHandle(IntPtr instancePtr, string pszActionSetName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ActivateActionSet")] -internal static extern void SteamAPI_ISteamController_ActivateActionSet(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetCurrentActionSet")] -internal static extern ulong SteamAPI_ISteamController_GetCurrentActionSet(IntPtr instancePtr, ulong controllerHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetDigitalActionHandle")] -internal static extern ulong SteamAPI_ISteamController_GetDigitalActionHandle(IntPtr instancePtr, string pszActionName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetDigitalActionData")] -internal static extern ControllerDigitalActionData_t SteamAPI_ISteamController_GetDigitalActionData(IntPtr instancePtr, ulong controllerHandle, ulong digitalActionHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetDigitalActionOrigins")] -internal static extern int SteamAPI_ISteamController_GetDigitalActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle, ulong digitalActionHandle, ref uint originsOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetAnalogActionHandle")] -internal static extern ulong SteamAPI_ISteamController_GetAnalogActionHandle(IntPtr instancePtr, string pszActionName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetAnalogActionData")] -internal static extern ControllerAnalogActionData_t SteamAPI_ISteamController_GetAnalogActionData(IntPtr instancePtr, ulong controllerHandle, ulong analogActionHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetAnalogActionOrigins")] -internal static extern int SteamAPI_ISteamController_GetAnalogActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle, ulong analogActionHandle, ref uint originsOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_StopAnalogActionMomentum")] -internal static extern void SteamAPI_ISteamController_StopAnalogActionMomentum(IntPtr instancePtr, ulong controllerHandle, ulong eAction); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_TriggerHapticPulse")] -internal static extern void SteamAPI_ISteamController_TriggerHapticPulse(IntPtr instancePtr, ulong controllerHandle, uint eTargetPad, char usDurationMicroSec); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_TriggerRepeatedHapticPulse")] -internal static extern void SteamAPI_ISteamController_TriggerRepeatedHapticPulse(IntPtr instancePtr, ulong controllerHandle, uint eTargetPad, char usDurationMicroSec, char usOffMicroSec, char unRepeat, uint nFlags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetGamepadIndexForController")] -internal static extern int SteamAPI_ISteamController_GetGamepadIndexForController(IntPtr instancePtr, ulong ulControllerHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetControllerForGamepadIndex")] -internal static extern ulong SteamAPI_ISteamController_GetControllerForGamepadIndex(IntPtr instancePtr, int nIndex); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetMotionData")] -internal static extern ControllerMotionData_t SteamAPI_ISteamController_GetMotionData(IntPtr instancePtr, ulong controllerHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ShowDigitalActionOrigins")] -internal static extern bool SteamAPI_ISteamController_ShowDigitalActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong digitalActionHandle, float flScale, float flXPosition, float flYPosition); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ShowAnalogActionOrigins")] -internal static extern bool SteamAPI_ISteamController_ShowAnalogActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong analogActionHandle, float flScale, float flXPosition, float flYPosition); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateQueryUserUGCRequest")] -internal static extern ulong SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(IntPtr instancePtr, uint unAccountID, uint eListType, uint eMatchingUGCType, uint eSortOrder, uint nCreatorAppID, uint nConsumerAppID, uint unPage); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateQueryAllUGCRequest")] -internal static extern ulong SteamAPI_ISteamUGC_CreateQueryAllUGCRequest(IntPtr instancePtr, uint eQueryType, uint eMatchingeMatchingUGCTypeFileType, uint nCreatorAppID, uint nConsumerAppID, uint unPage); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest")] -internal static extern ulong SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint unNumPublishedFileIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SendQueryUGCRequest")] -internal static extern ulong SteamAPI_ISteamUGC_SendQueryUGCRequest(IntPtr instancePtr, ulong handle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCResult")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCResult(IntPtr instancePtr, ulong handle, uint index, ref SteamUGCDetails_t pDetails); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCPreviewURL")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCPreviewURL(IntPtr instancePtr, ulong handle, uint index, System.Text.StringBuilder pchURL, uint cchURLSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCMetadata")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCMetadata(IntPtr instancePtr, ulong handle, uint index, System.Text.StringBuilder pchMetadata, uint cchMetadatasize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCChildren")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCChildren(IntPtr instancePtr, ulong handle, uint index, ref ulong pvecPublishedFileID, uint cMaxEntries); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCStatistic")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCStatistic(IntPtr instancePtr, ulong handle, uint index, uint eStatType, ref ulong pStatValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews")] -internal static extern uint SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews(IntPtr instancePtr, ulong handle, uint index); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(IntPtr instancePtr, ulong handle, uint index, uint previewIndex, System.Text.StringBuilder pchURLOrVideoID, uint cchURLSize, System.Text.StringBuilder pchOriginalFileName, uint cchOriginalFileNameSize, ref uint pPreviewType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags")] -internal static extern uint SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(IntPtr instancePtr, ulong handle, uint index); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag")] -internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(IntPtr instancePtr, ulong handle, uint index, uint keyValueTagIndex, System.Text.StringBuilder pchKey, uint cchKeySize, System.Text.StringBuilder pchValue, uint cchValueSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_ReleaseQueryUGCRequest")] -internal static extern bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(IntPtr instancePtr, ulong handle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddRequiredTag")] -internal static extern bool SteamAPI_ISteamUGC_AddRequiredTag(IntPtr instancePtr, ulong handle, string pTagName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddExcludedTag")] -internal static extern bool SteamAPI_ISteamUGC_AddExcludedTag(IntPtr instancePtr, ulong handle, string pTagName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnOnlyIDs")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnOnlyIDs(IntPtr instancePtr, ulong handle, bool bReturnOnlyIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnKeyValueTags")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnKeyValueTags(IntPtr instancePtr, ulong handle, bool bReturnKeyValueTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnLongDescription")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnLongDescription(IntPtr instancePtr, ulong handle, bool bReturnLongDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnMetadata")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnMetadata(IntPtr instancePtr, ulong handle, bool bReturnMetadata); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnChildren")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnChildren(IntPtr instancePtr, ulong handle, bool bReturnChildren); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnAdditionalPreviews")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(IntPtr instancePtr, ulong handle, bool bReturnAdditionalPreviews); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetReturnTotalOnly")] -internal static extern bool SteamAPI_ISteamUGC_SetReturnTotalOnly(IntPtr instancePtr, ulong handle, bool bReturnTotalOnly); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetLanguage")] -internal static extern bool SteamAPI_ISteamUGC_SetLanguage(IntPtr instancePtr, ulong handle, string pchLanguage); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetAllowCachedResponse")] -internal static extern bool SteamAPI_ISteamUGC_SetAllowCachedResponse(IntPtr instancePtr, ulong handle, uint unMaxAgeSeconds); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetCloudFileNameFilter")] -internal static extern bool SteamAPI_ISteamUGC_SetCloudFileNameFilter(IntPtr instancePtr, ulong handle, string pMatchCloudFileName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetMatchAnyTag")] -internal static extern bool SteamAPI_ISteamUGC_SetMatchAnyTag(IntPtr instancePtr, ulong handle, bool bMatchAnyTag); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetSearchText")] -internal static extern bool SteamAPI_ISteamUGC_SetSearchText(IntPtr instancePtr, ulong handle, string pSearchText); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetRankedByTrendDays")] -internal static extern bool SteamAPI_ISteamUGC_SetRankedByTrendDays(IntPtr instancePtr, ulong handle, uint unDays); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddRequiredKeyValueTag")] -internal static extern bool SteamAPI_ISteamUGC_AddRequiredKeyValueTag(IntPtr instancePtr, ulong handle, string pKey, string pValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RequestUGCDetails")] -internal static extern ulong SteamAPI_ISteamUGC_RequestUGCDetails(IntPtr instancePtr, ulong nPublishedFileID, uint unMaxAgeSeconds); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateItem")] -internal static extern ulong SteamAPI_ISteamUGC_CreateItem(IntPtr instancePtr, uint nConsumerAppId, uint eFileType); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StartItemUpdate")] -internal static extern ulong SteamAPI_ISteamUGC_StartItemUpdate(IntPtr instancePtr, uint nConsumerAppId, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemTitle")] -internal static extern bool SteamAPI_ISteamUGC_SetItemTitle(IntPtr instancePtr, ulong handle, string pchTitle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemDescription")] -internal static extern bool SteamAPI_ISteamUGC_SetItemDescription(IntPtr instancePtr, ulong handle, string pchDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemUpdateLanguage")] -internal static extern bool SteamAPI_ISteamUGC_SetItemUpdateLanguage(IntPtr instancePtr, ulong handle, string pchLanguage); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemMetadata")] -internal static extern bool SteamAPI_ISteamUGC_SetItemMetadata(IntPtr instancePtr, ulong handle, string pchMetaData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemVisibility")] -internal static extern bool SteamAPI_ISteamUGC_SetItemVisibility(IntPtr instancePtr, ulong handle, uint eVisibility); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemTags")] -internal static extern bool SteamAPI_ISteamUGC_SetItemTags(IntPtr instancePtr, ulong updateHandle, ref SteamParamStringArray_t pTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemContent")] -internal static extern bool SteamAPI_ISteamUGC_SetItemContent(IntPtr instancePtr, ulong handle, string pszContentFolder); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetItemPreview")] -internal static extern bool SteamAPI_ISteamUGC_SetItemPreview(IntPtr instancePtr, ulong handle, string pszPreviewFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RemoveItemKeyValueTags")] -internal static extern bool SteamAPI_ISteamUGC_RemoveItemKeyValueTags(IntPtr instancePtr, ulong handle, string pchKey); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemKeyValueTag")] -internal static extern bool SteamAPI_ISteamUGC_AddItemKeyValueTag(IntPtr instancePtr, ulong handle, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemPreviewFile")] -internal static extern bool SteamAPI_ISteamUGC_AddItemPreviewFile(IntPtr instancePtr, ulong handle, string pszPreviewFile, uint type); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemPreviewVideo")] -internal static extern bool SteamAPI_ISteamUGC_AddItemPreviewVideo(IntPtr instancePtr, ulong handle, string pszVideoID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_UpdateItemPreviewFile")] -internal static extern bool SteamAPI_ISteamUGC_UpdateItemPreviewFile(IntPtr instancePtr, ulong handle, uint index, string pszPreviewFile); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_UpdateItemPreviewVideo")] -internal static extern bool SteamAPI_ISteamUGC_UpdateItemPreviewVideo(IntPtr instancePtr, ulong handle, uint index, string pszVideoID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RemoveItemPreview")] -internal static extern bool SteamAPI_ISteamUGC_RemoveItemPreview(IntPtr instancePtr, ulong handle, uint index); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SubmitItemUpdate")] -internal static extern ulong SteamAPI_ISteamUGC_SubmitItemUpdate(IntPtr instancePtr, ulong handle, string pchChangeNote); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetItemUpdateProgress")] -internal static extern uint SteamAPI_ISteamUGC_GetItemUpdateProgress(IntPtr instancePtr, ulong handle, ref ulong punBytesProcessed, ref ulong punBytesTotal); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetUserItemVote")] -internal static extern ulong SteamAPI_ISteamUGC_SetUserItemVote(IntPtr instancePtr, ulong nPublishedFileID, bool bVoteUp); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetUserItemVote")] -internal static extern ulong SteamAPI_ISteamUGC_GetUserItemVote(IntPtr instancePtr, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemToFavorites")] -internal static extern ulong SteamAPI_ISteamUGC_AddItemToFavorites(IntPtr instancePtr, uint nAppId, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RemoveItemFromFavorites")] -internal static extern ulong SteamAPI_ISteamUGC_RemoveItemFromFavorites(IntPtr instancePtr, uint nAppId, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SubscribeItem")] -internal static extern ulong SteamAPI_ISteamUGC_SubscribeItem(IntPtr instancePtr, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_UnsubscribeItem")] -internal static extern ulong SteamAPI_ISteamUGC_UnsubscribeItem(IntPtr instancePtr, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetNumSubscribedItems")] -internal static extern uint SteamAPI_ISteamUGC_GetNumSubscribedItems(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetSubscribedItems")] -internal static extern uint SteamAPI_ISteamUGC_GetSubscribedItems(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint cMaxEntries); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetItemState")] -internal static extern uint SteamAPI_ISteamUGC_GetItemState(IntPtr instancePtr, ulong nPublishedFileID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetItemInstallInfo")] -internal static extern bool SteamAPI_ISteamUGC_GetItemInstallInfo(IntPtr instancePtr, ulong nPublishedFileID, ref ulong punSizeOnDisk, System.Text.StringBuilder pchFolder, uint cchFolderSize, ref uint punTimeStamp); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetItemDownloadInfo")] -internal static extern bool SteamAPI_ISteamUGC_GetItemDownloadInfo(IntPtr instancePtr, ulong nPublishedFileID, ref ulong punBytesDownloaded, ref ulong punBytesTotal); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_DownloadItem")] -internal static extern bool SteamAPI_ISteamUGC_DownloadItem(IntPtr instancePtr, ulong nPublishedFileID, bool bHighPriority); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_BInitWorkshopForGameServer")] -internal static extern bool SteamAPI_ISteamUGC_BInitWorkshopForGameServer(IntPtr instancePtr, uint unWorkshopDepotID, string pszFolder); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SuspendDownloads")] -internal static extern void SteamAPI_ISteamUGC_SuspendDownloads(IntPtr instancePtr, bool bSuspend); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StartPlaytimeTracking")] -internal static extern ulong SteamAPI_ISteamUGC_StartPlaytimeTracking(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint unNumPublishedFileIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StopPlaytimeTracking")] -internal static extern ulong SteamAPI_ISteamUGC_StopPlaytimeTracking(IntPtr instancePtr, ref ulong pvecPublishedFileID, uint unNumPublishedFileIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems")] -internal static extern ulong SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetNumInstalledApps")] -internal static extern uint SteamAPI_ISteamAppList_GetNumInstalledApps(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetInstalledApps")] -internal static extern uint SteamAPI_ISteamAppList_GetInstalledApps(IntPtr instancePtr, ref uint pvecAppID, uint unMaxAppIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetAppName")] -internal static extern int SteamAPI_ISteamAppList_GetAppName(IntPtr instancePtr, uint nAppID, System.Text.StringBuilder pchName, int cchNameMax); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetAppInstallDir")] -internal static extern int SteamAPI_ISteamAppList_GetAppInstallDir(IntPtr instancePtr, uint nAppID, string pchDirectory, int cchNameMax); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamAppList_GetAppBuildId")] -internal static extern int SteamAPI_ISteamAppList_GetAppBuildId(IntPtr instancePtr, uint nAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_DestructISteamHTMLSurface")] -internal static extern void SteamAPI_ISteamHTMLSurface_DestructISteamHTMLSurface(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_Init")] -internal static extern bool SteamAPI_ISteamHTMLSurface_Init(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_Shutdown")] -internal static extern bool SteamAPI_ISteamHTMLSurface_Shutdown(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_CreateBrowser")] -internal static extern ulong SteamAPI_ISteamHTMLSurface_CreateBrowser(IntPtr instancePtr, string pchUserAgent, string pchUserCSS); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_RemoveBrowser")] -internal static extern void SteamAPI_ISteamHTMLSurface_RemoveBrowser(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_LoadURL")] -internal static extern void SteamAPI_ISteamHTMLSurface_LoadURL(IntPtr instancePtr, uint unBrowserHandle, string pchURL, string pchPostData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetSize")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetSize(IntPtr instancePtr, uint unBrowserHandle, uint unWidth, uint unHeight); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_StopLoad")] -internal static extern void SteamAPI_ISteamHTMLSurface_StopLoad(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_Reload")] -internal static extern void SteamAPI_ISteamHTMLSurface_Reload(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_GoBack")] -internal static extern void SteamAPI_ISteamHTMLSurface_GoBack(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_GoForward")] -internal static extern void SteamAPI_ISteamHTMLSurface_GoForward(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_AddHeader")] -internal static extern void SteamAPI_ISteamHTMLSurface_AddHeader(IntPtr instancePtr, uint unBrowserHandle, string pchKey, string pchValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_ExecuteJavascript")] -internal static extern void SteamAPI_ISteamHTMLSurface_ExecuteJavascript(IntPtr instancePtr, uint unBrowserHandle, string pchScript); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseUp")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseUp(IntPtr instancePtr, uint unBrowserHandle, uint eMouseButton); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseDown")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseDown(IntPtr instancePtr, uint unBrowserHandle, uint eMouseButton); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseDoubleClick")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseDoubleClick(IntPtr instancePtr, uint unBrowserHandle, uint eMouseButton); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseMove")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseMove(IntPtr instancePtr, uint unBrowserHandle, int x, int y); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseWheel")] -internal static extern void SteamAPI_ISteamHTMLSurface_MouseWheel(IntPtr instancePtr, uint unBrowserHandle, int nDelta); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_KeyDown")] -internal static extern void SteamAPI_ISteamHTMLSurface_KeyDown(IntPtr instancePtr, uint unBrowserHandle, uint nNativeKeyCode, uint eHTMLKeyModifiers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_KeyUp")] -internal static extern void SteamAPI_ISteamHTMLSurface_KeyUp(IntPtr instancePtr, uint unBrowserHandle, uint nNativeKeyCode, uint eHTMLKeyModifiers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_KeyChar")] -internal static extern void SteamAPI_ISteamHTMLSurface_KeyChar(IntPtr instancePtr, uint unBrowserHandle, uint cUnicodeChar, uint eHTMLKeyModifiers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetHorizontalScroll")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetHorizontalScroll(IntPtr instancePtr, uint unBrowserHandle, uint nAbsolutePixelScroll); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetVerticalScroll")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetVerticalScroll(IntPtr instancePtr, uint unBrowserHandle, uint nAbsolutePixelScroll); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetKeyFocus")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetKeyFocus(IntPtr instancePtr, uint unBrowserHandle, bool bHasKeyFocus); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_ViewSource")] -internal static extern void SteamAPI_ISteamHTMLSurface_ViewSource(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_CopyToClipboard")] -internal static extern void SteamAPI_ISteamHTMLSurface_CopyToClipboard(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_PasteFromClipboard")] -internal static extern void SteamAPI_ISteamHTMLSurface_PasteFromClipboard(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_Find")] -internal static extern void SteamAPI_ISteamHTMLSurface_Find(IntPtr instancePtr, uint unBrowserHandle, string pchSearchStr, bool bCurrentlyInFind, bool bReverse); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_StopFind")] -internal static extern void SteamAPI_ISteamHTMLSurface_StopFind(IntPtr instancePtr, uint unBrowserHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_GetLinkAtPosition")] -internal static extern void SteamAPI_ISteamHTMLSurface_GetLinkAtPosition(IntPtr instancePtr, uint unBrowserHandle, int x, int y); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetCookie")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetCookie(IntPtr instancePtr, string pchHostname, string pchKey, string pchValue, string pchPath, ulong nExpires, bool bSecure, bool bHTTPOnly); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetPageScaleFactor")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetPageScaleFactor(IntPtr instancePtr, uint unBrowserHandle, float flZoom, int nPointX, int nPointY); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_SetBackgroundMode")] -internal static extern void SteamAPI_ISteamHTMLSurface_SetBackgroundMode(IntPtr instancePtr, uint unBrowserHandle, bool bBackgroundMode); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_AllowStartRequest")] -internal static extern void SteamAPI_ISteamHTMLSurface_AllowStartRequest(IntPtr instancePtr, uint unBrowserHandle, bool bAllowed); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamHTMLSurface_JSDialogResponse")] -internal static extern void SteamAPI_ISteamHTMLSurface_JSDialogResponse(IntPtr instancePtr, uint unBrowserHandle, bool bResult); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetResultStatus")] -internal static extern uint SteamAPI_ISteamInventory_GetResultStatus(IntPtr instancePtr, int resultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetResultItems")] -internal static extern bool SteamAPI_ISteamInventory_GetResultItems(IntPtr instancePtr, int resultHandle, [In, Out] SteamItemDetails_t[] pOutItemsArray, ref uint punOutItemsArraySize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetResultTimestamp")] -internal static extern uint SteamAPI_ISteamInventory_GetResultTimestamp(IntPtr instancePtr, int resultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_CheckResultSteamID")] -internal static extern bool SteamAPI_ISteamInventory_CheckResultSteamID(IntPtr instancePtr, int resultHandle, ulong steamIDExpected); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_DestroyResult")] -internal static extern void SteamAPI_ISteamInventory_DestroyResult(IntPtr instancePtr, int resultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetAllItems")] -internal static extern bool SteamAPI_ISteamInventory_GetAllItems(IntPtr instancePtr, ref int pResultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetItemsByID")] -internal static extern bool SteamAPI_ISteamInventory_GetItemsByID(IntPtr instancePtr, ref int pResultHandle, [In, Out] ulong[] pInstanceIDs, uint unCountInstanceIDs); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_SerializeResult")] -internal static extern bool SteamAPI_ISteamInventory_SerializeResult(IntPtr instancePtr, int resultHandle, IntPtr pOutBuffer, ref uint punOutBufferSize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_DeserializeResult")] -internal static extern bool SteamAPI_ISteamInventory_DeserializeResult(IntPtr instancePtr, ref int pOutResultHandle, IntPtr pBuffer, uint unBufferSize, bool bRESERVED_MUST_BE_FALSE); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GenerateItems")] -internal static extern bool SteamAPI_ISteamInventory_GenerateItems(IntPtr instancePtr, ref int pResultHandle, [In, Out] int[] pArrayItemDefs, [In, Out] uint[] punArrayQuantity, uint unArrayLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GrantPromoItems")] -internal static extern bool SteamAPI_ISteamInventory_GrantPromoItems(IntPtr instancePtr, ref int pResultHandle); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_AddPromoItem")] -internal static extern bool SteamAPI_ISteamInventory_AddPromoItem(IntPtr instancePtr, ref int pResultHandle, int itemDef); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_AddPromoItems")] -internal static extern bool SteamAPI_ISteamInventory_AddPromoItems(IntPtr instancePtr, ref int pResultHandle, [In, Out] int[] pArrayItemDefs, uint unArrayLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_ConsumeItem")] -internal static extern bool SteamAPI_ISteamInventory_ConsumeItem(IntPtr instancePtr, ref int pResultHandle, ulong itemConsume, uint unQuantity); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_ExchangeItems")] -internal static extern bool SteamAPI_ISteamInventory_ExchangeItems(IntPtr instancePtr, ref int pResultHandle, [In, Out] int[] pArrayGenerate, [In, Out] uint[] punArrayGenerateQuantity, uint unArrayGenerateLength, [In, Out] ulong[] pArrayDestroy, [In, Out] uint[] punArrayDestroyQuantity, uint unArrayDestroyLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_TransferItemQuantity")] -internal static extern bool SteamAPI_ISteamInventory_TransferItemQuantity(IntPtr instancePtr, ref int pResultHandle, ulong itemIdSource, uint unQuantity, ulong itemIdDest); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_SendItemDropHeartbeat")] -internal static extern void SteamAPI_ISteamInventory_SendItemDropHeartbeat(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_TriggerItemDrop")] -internal static extern bool SteamAPI_ISteamInventory_TriggerItemDrop(IntPtr instancePtr, ref int pResultHandle, int dropListDefinition); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_TradeItems")] -internal static extern bool SteamAPI_ISteamInventory_TradeItems(IntPtr instancePtr, ref int pResultHandle, ulong steamIDTradePartner, [In, Out] ulong[] pArrayGive, [In, Out] uint[] pArrayGiveQuantity, uint nArrayGiveLength, [In, Out] ulong[] pArrayGet, [In, Out] uint[] pArrayGetQuantity, uint nArrayGetLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_LoadItemDefinitions")] -internal static extern bool SteamAPI_ISteamInventory_LoadItemDefinitions(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetItemDefinitionIDs")] -internal static extern bool SteamAPI_ISteamInventory_GetItemDefinitionIDs(IntPtr instancePtr, [In, Out] int[] pItemDefIDs, ref uint punItemDefIDsArraySize); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInventory_GetItemDefinitionProperty")] -internal static extern bool SteamAPI_ISteamInventory_GetItemDefinitionProperty(IntPtr instancePtr, int iDefinition, string pchPropertyName, System.Text.StringBuilder pchValueBuffer, ref uint punValueBufferSizeOut); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamVideo_GetVideoURL")] -internal static extern void SteamAPI_ISteamVideo_GetVideoURL(IntPtr instancePtr, uint unVideoAppID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamVideo_IsBroadcasting")] -internal static extern bool SteamAPI_ISteamVideo_IsBroadcasting(IntPtr instancePtr, ref int pnNumViewers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_InitGameServer")] -internal static extern bool SteamAPI_ISteamGameServer_InitGameServer(IntPtr instancePtr, uint unIP, char usGamePort, char usQueryPort, uint unFlags, uint nGameAppId, string pchVersionString); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetProduct")] -internal static extern void SteamAPI_ISteamGameServer_SetProduct(IntPtr instancePtr, string pszProduct); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetGameDescription")] -internal static extern void SteamAPI_ISteamGameServer_SetGameDescription(IntPtr instancePtr, string pszGameDescription); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetModDir")] -internal static extern void SteamAPI_ISteamGameServer_SetModDir(IntPtr instancePtr, string pszModDir); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetDedicatedServer")] -internal static extern void SteamAPI_ISteamGameServer_SetDedicatedServer(IntPtr instancePtr, bool bDedicated); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_LogOn")] -internal static extern void SteamAPI_ISteamGameServer_LogOn(IntPtr instancePtr, string pszToken); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_LogOnAnonymous")] -internal static extern void SteamAPI_ISteamGameServer_LogOnAnonymous(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_LogOff")] -internal static extern void SteamAPI_ISteamGameServer_LogOff(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_BLoggedOn")] -internal static extern bool SteamAPI_ISteamGameServer_BLoggedOn(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_BSecure")] -internal static extern bool SteamAPI_ISteamGameServer_BSecure(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetSteamID")] -internal static extern ulong SteamAPI_ISteamGameServer_GetSteamID(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_WasRestartRequested")] -internal static extern bool SteamAPI_ISteamGameServer_WasRestartRequested(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetMaxPlayerCount")] -internal static extern void SteamAPI_ISteamGameServer_SetMaxPlayerCount(IntPtr instancePtr, int cPlayersMax); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetBotPlayerCount")] -internal static extern void SteamAPI_ISteamGameServer_SetBotPlayerCount(IntPtr instancePtr, int cBotplayers); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetServerName")] -internal static extern void SteamAPI_ISteamGameServer_SetServerName(IntPtr instancePtr, string pszServerName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetMapName")] -internal static extern void SteamAPI_ISteamGameServer_SetMapName(IntPtr instancePtr, string pszMapName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetPasswordProtected")] -internal static extern void SteamAPI_ISteamGameServer_SetPasswordProtected(IntPtr instancePtr, bool bPasswordProtected); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetSpectatorPort")] -internal static extern void SteamAPI_ISteamGameServer_SetSpectatorPort(IntPtr instancePtr, char unSpectatorPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetSpectatorServerName")] -internal static extern void SteamAPI_ISteamGameServer_SetSpectatorServerName(IntPtr instancePtr, string pszSpectatorServerName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_ClearAllKeyValues")] -internal static extern void SteamAPI_ISteamGameServer_ClearAllKeyValues(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetKeyValue")] -internal static extern void SteamAPI_ISteamGameServer_SetKeyValue(IntPtr instancePtr, string pKey, string pValue); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetGameTags")] -internal static extern void SteamAPI_ISteamGameServer_SetGameTags(IntPtr instancePtr, string pchGameTags); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetGameData")] -internal static extern void SteamAPI_ISteamGameServer_SetGameData(IntPtr instancePtr, string pchGameData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetRegion")] -internal static extern void SteamAPI_ISteamGameServer_SetRegion(IntPtr instancePtr, string pszRegion); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate")] -internal static extern bool SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate(IntPtr instancePtr, uint unIPClient, IntPtr pvAuthBlob, uint cubAuthBlobSize, ref CSteamID pSteamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection")] -internal static extern ulong SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SendUserDisconnect")] -internal static extern void SteamAPI_ISteamGameServer_SendUserDisconnect(IntPtr instancePtr, ulong steamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_BUpdateUserData")] -internal static extern bool SteamAPI_ISteamGameServer_BUpdateUserData(IntPtr instancePtr, ulong steamIDUser, string pchPlayerName, uint uScore); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetAuthSessionTicket")] -internal static extern uint SteamAPI_ISteamGameServer_GetAuthSessionTicket(IntPtr instancePtr, IntPtr pTicket, int cbMaxTicket, ref uint pcbTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_BeginAuthSession")] -internal static extern uint SteamAPI_ISteamGameServer_BeginAuthSession(IntPtr instancePtr, IntPtr pAuthTicket, int cbAuthTicket, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_EndAuthSession")] -internal static extern void SteamAPI_ISteamGameServer_EndAuthSession(IntPtr instancePtr, ulong steamID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_CancelAuthTicket")] -internal static extern void SteamAPI_ISteamGameServer_CancelAuthTicket(IntPtr instancePtr, uint hAuthTicket); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_UserHasLicenseForApp")] -internal static extern uint SteamAPI_ISteamGameServer_UserHasLicenseForApp(IntPtr instancePtr, ulong steamID, uint appID); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_RequestUserGroupStatus")] -internal static extern bool SteamAPI_ISteamGameServer_RequestUserGroupStatus(IntPtr instancePtr, ulong steamIDUser, ulong steamIDGroup); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetGameplayStats")] -internal static extern void SteamAPI_ISteamGameServer_GetGameplayStats(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetServerReputation")] -internal static extern ulong SteamAPI_ISteamGameServer_GetServerReputation(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetPublicIP")] -internal static extern uint SteamAPI_ISteamGameServer_GetPublicIP(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_HandleIncomingPacket")] -internal static extern bool SteamAPI_ISteamGameServer_HandleIncomingPacket(IntPtr instancePtr, IntPtr pData, int cbData, uint srcIP, char srcPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_GetNextOutgoingPacket")] -internal static extern int SteamAPI_ISteamGameServer_GetNextOutgoingPacket(IntPtr instancePtr, IntPtr pOut, int cbMaxOut, ref uint pNetAdr, ref char pPort); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_EnableHeartbeats")] -internal static extern void SteamAPI_ISteamGameServer_EnableHeartbeats(IntPtr instancePtr, bool bActive); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_SetHeartbeatInterval")] -internal static extern void SteamAPI_ISteamGameServer_SetHeartbeatInterval(IntPtr instancePtr, int iHeartbeatInterval); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_ForceHeartbeat")] -internal static extern void SteamAPI_ISteamGameServer_ForceHeartbeat(IntPtr instancePtr); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_AssociateWithClan")] -internal static extern ulong SteamAPI_ISteamGameServer_AssociateWithClan(IntPtr instancePtr, ulong steamIDClan); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility")] -internal static extern ulong SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility(IntPtr instancePtr, ulong steamIDNewPlayer); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_RequestUserStats")] -internal static extern ulong SteamAPI_ISteamGameServerStats_RequestUserStats(IntPtr instancePtr, ulong steamIDUser); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_GetUserStat")] -internal static extern bool SteamAPI_ISteamGameServerStats_GetUserStat(IntPtr instancePtr, ulong steamIDUser, string pchName, ref int pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_GetUserStat0")] -internal static extern bool SteamAPI_ISteamGameServerStats_GetUserStat0(IntPtr instancePtr, ulong steamIDUser, string pchName, ref float pData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_GetUserAchievement")] -internal static extern bool SteamAPI_ISteamGameServerStats_GetUserAchievement(IntPtr instancePtr, ulong steamIDUser, string pchName, ref bool pbAchieved); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_SetUserStat")] -internal static extern bool SteamAPI_ISteamGameServerStats_SetUserStat(IntPtr instancePtr, ulong steamIDUser, string pchName, int nData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_SetUserStat0")] -internal static extern bool SteamAPI_ISteamGameServerStats_SetUserStat0(IntPtr instancePtr, ulong steamIDUser, string pchName, float fData); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat")] -internal static extern bool SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat(IntPtr instancePtr, ulong steamIDUser, string pchName, float flCountThisSession, double dSessionLength); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_SetUserAchievement")] -internal static extern bool SteamAPI_ISteamGameServerStats_SetUserAchievement(IntPtr instancePtr, ulong steamIDUser, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_ClearUserAchievement")] -internal static extern bool SteamAPI_ISteamGameServerStats_ClearUserAchievement(IntPtr instancePtr, ulong steamIDUser, string pchName); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamGameServerStats_StoreUserStats")] -internal static extern ulong SteamAPI_ISteamGameServerStats_StoreUserStats(IntPtr instancePtr, ulong steamIDUser); -public delegate void SteamAPI_UserStatsReceived_t_Callback(UserStatsReceived_t pUserStatsReceived_t); -[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_SetCallback")] -public static extern ulong CUserStatsReceived_t_SetCallback(SteamAPI_UserStatsReceived_t_Callback func); -[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_RemoveCallback")] -public static extern ulong CUserStatsReceived_t_RemoveCallback(ulong handle); -public delegate void SteamAPI_RemoteStorageFileReadAsyncComplete_t_CallResult(RemoteStorageFileReadAsyncComplete_t pRemoteStorageFileReadAsyncComplete_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileReadAsyncComplete_t_SetCallResult")] -public static extern ulong CRemoteStorageFileReadAsyncComplete_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageFileReadAsyncComplete_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileReadAsyncComplete_t_RemoveCallResult")] -public static extern ulong CRemoteStorageFileReadAsyncComplete_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult(RemoteStorageGetPublishedItemVoteDetailsResult_t pRemoteStorageGetPublishedItemVoteDetailsResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedItemVoteDetailsResult_t_SetCallResult")] -public static extern ulong CRemoteStorageGetPublishedItemVoteDetailsResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedItemVoteDetailsResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageGetPublishedItemVoteDetailsResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_FileDetailsResult_t_CallResult(FileDetailsResult_t pFileDetailsResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CFileDetailsResult_t_SetCallResult")] -public static extern ulong CFileDetailsResult_t_SetCallResult(ulong hAPICall, SteamAPI_FileDetailsResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CFileDetailsResult_t_RemoveCallResult")] -public static extern ulong CFileDetailsResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GSStatsStored_t_CallResult(GSStatsStored_t pGSStatsStored_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGSStatsStored_t_SetCallResult")] -public static extern ulong CGSStatsStored_t_SetCallResult(ulong hAPICall, SteamAPI_GSStatsStored_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGSStatsStored_t_RemoveCallResult")] -public static extern ulong CGSStatsStored_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_HTML_BrowserReady_t_CallResult(HTML_BrowserReady_t pHTML_BrowserReady_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CHTML_BrowserReady_t_SetCallResult")] -public static extern ulong CHTML_BrowserReady_t_SetCallResult(ulong hAPICall, SteamAPI_HTML_BrowserReady_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CHTML_BrowserReady_t_RemoveCallResult")] -public static extern ulong CHTML_BrowserReady_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_FriendsGetFollowerCount_t_CallResult(FriendsGetFollowerCount_t pFriendsGetFollowerCount_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsGetFollowerCount_t_SetCallResult")] -public static extern ulong CFriendsGetFollowerCount_t_SetCallResult(ulong hAPICall, SteamAPI_FriendsGetFollowerCount_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsGetFollowerCount_t_RemoveCallResult")] -public static extern ulong CFriendsGetFollowerCount_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_FriendsIsFollowing_t_CallResult(FriendsIsFollowing_t pFriendsIsFollowing_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsIsFollowing_t_SetCallResult")] -public static extern ulong CFriendsIsFollowing_t_SetCallResult(ulong hAPICall, SteamAPI_FriendsIsFollowing_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsIsFollowing_t_RemoveCallResult")] -public static extern ulong CFriendsIsFollowing_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LobbyMatchList_t_CallResult(LobbyMatchList_t pLobbyMatchList_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyMatchList_t_SetCallResult")] -public static extern ulong CLobbyMatchList_t_SetCallResult(ulong hAPICall, SteamAPI_LobbyMatchList_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyMatchList_t_RemoveCallResult")] -public static extern ulong CLobbyMatchList_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageUpdatePublishedFileResult_t_CallResult(RemoteStorageUpdatePublishedFileResult_t pRemoteStorageUpdatePublishedFileResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUpdatePublishedFileResult_t_SetCallResult")] -public static extern ulong CRemoteStorageUpdatePublishedFileResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageUpdatePublishedFileResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUpdatePublishedFileResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageUpdatePublishedFileResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_StoreAuthURLResponse_t_CallResult(StoreAuthURLResponse_t pStoreAuthURLResponse_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CStoreAuthURLResponse_t_SetCallResult")] -public static extern ulong CStoreAuthURLResponse_t_SetCallResult(ulong hAPICall, SteamAPI_StoreAuthURLResponse_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CStoreAuthURLResponse_t_RemoveCallResult")] -public static extern ulong CStoreAuthURLResponse_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LobbyCreated_t_CallResult(LobbyCreated_t pLobbyCreated_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyCreated_t_SetCallResult")] -public static extern ulong CLobbyCreated_t_SetCallResult(ulong hAPICall, SteamAPI_LobbyCreated_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyCreated_t_RemoveCallResult")] -public static extern ulong CLobbyCreated_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageFileWriteAsyncComplete_t_CallResult(RemoteStorageFileWriteAsyncComplete_t pRemoteStorageFileWriteAsyncComplete_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileWriteAsyncComplete_t_SetCallResult")] -public static extern ulong CRemoteStorageFileWriteAsyncComplete_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageFileWriteAsyncComplete_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileWriteAsyncComplete_t_RemoveCallResult")] -public static extern ulong CRemoteStorageFileWriteAsyncComplete_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageDeletePublishedFileResult_t_CallResult(RemoteStorageDeletePublishedFileResult_t pRemoteStorageDeletePublishedFileResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDeletePublishedFileResult_t_SetCallResult")] -public static extern ulong CRemoteStorageDeletePublishedFileResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageDeletePublishedFileResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDeletePublishedFileResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageDeletePublishedFileResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageGetPublishedFileDetailsResult_t_CallResult(RemoteStorageGetPublishedFileDetailsResult_t pRemoteStorageGetPublishedFileDetailsResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedFileDetailsResult_t_SetCallResult")] -public static extern ulong CRemoteStorageGetPublishedFileDetailsResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageGetPublishedFileDetailsResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageDownloadUGCResult_t_CallResult(RemoteStorageDownloadUGCResult_t pRemoteStorageDownloadUGCResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDownloadUGCResult_t_SetCallResult")] -public static extern ulong CRemoteStorageDownloadUGCResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageDownloadUGCResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageDownloadUGCResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageDownloadUGCResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_SteamUGCQueryCompleted_t_CallResult(SteamUGCQueryCompleted_t pSteamUGCQueryCompleted_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CSteamUGCQueryCompleted_t_SetCallResult")] -public static extern ulong CSteamUGCQueryCompleted_t_SetCallResult(ulong hAPICall, SteamAPI_SteamUGCQueryCompleted_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CSteamUGCQueryCompleted_t_RemoveCallResult")] -public static extern ulong CSteamUGCQueryCompleted_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageFileShareResult_t_CallResult(RemoteStorageFileShareResult_t pRemoteStorageFileShareResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileShareResult_t_SetCallResult")] -public static extern ulong CRemoteStorageFileShareResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageFileShareResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageFileShareResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageFileShareResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LobbyEnter_t_CallResult(LobbyEnter_t pLobbyEnter_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyEnter_t_SetCallResult")] -public static extern ulong CLobbyEnter_t_SetCallResult(ulong hAPICall, SteamAPI_LobbyEnter_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLobbyEnter_t_RemoveCallResult")] -public static extern ulong CLobbyEnter_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_SubmitItemUpdateResult_t_CallResult(SubmitItemUpdateResult_t pSubmitItemUpdateResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CSubmitItemUpdateResult_t_SetCallResult")] -public static extern ulong CSubmitItemUpdateResult_t_SetCallResult(ulong hAPICall, SteamAPI_SubmitItemUpdateResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CSubmitItemUpdateResult_t_RemoveCallResult")] -public static extern ulong CSubmitItemUpdateResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_NumberOfCurrentPlayers_t_CallResult(NumberOfCurrentPlayers_t pNumberOfCurrentPlayers_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CNumberOfCurrentPlayers_t_SetCallResult")] -public static extern ulong CNumberOfCurrentPlayers_t_SetCallResult(ulong hAPICall, SteamAPI_NumberOfCurrentPlayers_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CNumberOfCurrentPlayers_t_RemoveCallResult")] -public static extern ulong CNumberOfCurrentPlayers_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GSStatsReceived_t_CallResult(GSStatsReceived_t pGSStatsReceived_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGSStatsReceived_t_SetCallResult")] -public static extern ulong CGSStatsReceived_t_SetCallResult(ulong hAPICall, SteamAPI_GSStatsReceived_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGSStatsReceived_t_RemoveCallResult")] -public static extern ulong CGSStatsReceived_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LeaderboardScoresDownloaded_t_CallResult(LeaderboardScoresDownloaded_t pLeaderboardScoresDownloaded_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardScoresDownloaded_t_SetCallResult")] -public static extern ulong CLeaderboardScoresDownloaded_t_SetCallResult(ulong hAPICall, SteamAPI_LeaderboardScoresDownloaded_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardScoresDownloaded_t_RemoveCallResult")] -public static extern ulong CLeaderboardScoresDownloaded_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult(RemoteStorageUpdateUserPublishedItemVoteResult_t pRemoteStorageUpdateUserPublishedItemVoteResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUpdateUserPublishedItemVoteResult_t_SetCallResult")] -public static extern ulong CRemoteStorageUpdateUserPublishedItemVoteResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUpdateUserPublishedItemVoteResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageUpdateUserPublishedItemVoteResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult(RemoteStorageEnumerateUserSubscribedFilesResult_t pRemoteStorageEnumerateUserSubscribedFilesResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateUserSubscribedFilesResult_t_SetCallResult")] -public static extern ulong CRemoteStorageEnumerateUserSubscribedFilesResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateUserSubscribedFilesResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageEnumerateUserSubscribedFilesResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_CreateItemResult_t_CallResult(CreateItemResult_t pCreateItemResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CCreateItemResult_t_SetCallResult")] -public static extern ulong CCreateItemResult_t_SetCallResult(ulong hAPICall, SteamAPI_CreateItemResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CCreateItemResult_t_RemoveCallResult")] -public static extern ulong CCreateItemResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_SetUserItemVoteResult_t_CallResult(SetUserItemVoteResult_t pSetUserItemVoteResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CSetUserItemVoteResult_t_SetCallResult")] -public static extern ulong CSetUserItemVoteResult_t_SetCallResult(ulong hAPICall, SteamAPI_SetUserItemVoteResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CSetUserItemVoteResult_t_RemoveCallResult")] -public static extern ulong CSetUserItemVoteResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_ComputeNewPlayerCompatibilityResult_t_CallResult(ComputeNewPlayerCompatibilityResult_t pComputeNewPlayerCompatibilityResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CComputeNewPlayerCompatibilityResult_t_SetCallResult")] -public static extern ulong CComputeNewPlayerCompatibilityResult_t_SetCallResult(ulong hAPICall, SteamAPI_ComputeNewPlayerCompatibilityResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CComputeNewPlayerCompatibilityResult_t_RemoveCallResult")] -public static extern ulong CComputeNewPlayerCompatibilityResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LeaderboardScoreUploaded_t_CallResult(LeaderboardScoreUploaded_t pLeaderboardScoreUploaded_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardScoreUploaded_t_SetCallResult")] -public static extern ulong CLeaderboardScoreUploaded_t_SetCallResult(ulong hAPICall, SteamAPI_LeaderboardScoreUploaded_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardScoreUploaded_t_RemoveCallResult")] -public static extern ulong CLeaderboardScoreUploaded_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GlobalAchievementPercentagesReady_t_CallResult(GlobalAchievementPercentagesReady_t pGlobalAchievementPercentagesReady_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGlobalAchievementPercentagesReady_t_SetCallResult")] -public static extern ulong CGlobalAchievementPercentagesReady_t_SetCallResult(ulong hAPICall, SteamAPI_GlobalAchievementPercentagesReady_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGlobalAchievementPercentagesReady_t_RemoveCallResult")] -public static extern ulong CGlobalAchievementPercentagesReady_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GlobalStatsReceived_t_CallResult(GlobalStatsReceived_t pGlobalStatsReceived_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGlobalStatsReceived_t_SetCallResult")] -public static extern ulong CGlobalStatsReceived_t_SetCallResult(ulong hAPICall, SteamAPI_GlobalStatsReceived_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGlobalStatsReceived_t_RemoveCallResult")] -public static extern ulong CGlobalStatsReceived_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult(RemoteStorageEnumeratePublishedFilesByUserActionResult_t pRemoteStorageEnumeratePublishedFilesByUserActionResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_SetCallResult")] -public static extern ulong CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_ClanOfficerListResponse_t_CallResult(ClanOfficerListResponse_t pClanOfficerListResponse_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CClanOfficerListResponse_t_SetCallResult")] -public static extern ulong CClanOfficerListResponse_t_SetCallResult(ulong hAPICall, SteamAPI_ClanOfficerListResponse_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CClanOfficerListResponse_t_RemoveCallResult")] -public static extern ulong CClanOfficerListResponse_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStoragePublishFileProgress_t_CallResult(RemoteStoragePublishFileProgress_t pRemoteStoragePublishFileProgress_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStoragePublishFileProgress_t_SetCallResult")] -public static extern ulong CRemoteStoragePublishFileProgress_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStoragePublishFileProgress_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStoragePublishFileProgress_t_RemoveCallResult")] -public static extern ulong CRemoteStoragePublishFileProgress_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallResult(RemoteStorageEnumerateWorkshopFilesResult_t pRemoteStorageEnumerateWorkshopFilesResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult")] -public static extern ulong CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GSReputation_t_CallResult(GSReputation_t pGSReputation_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGSReputation_t_SetCallResult")] -public static extern ulong CGSReputation_t_SetCallResult(ulong hAPICall, SteamAPI_GSReputation_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGSReputation_t_RemoveCallResult")] -public static extern ulong CGSReputation_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_UserFavoriteItemsListChanged_t_CallResult(UserFavoriteItemsListChanged_t pUserFavoriteItemsListChanged_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CUserFavoriteItemsListChanged_t_SetCallResult")] -public static extern ulong CUserFavoriteItemsListChanged_t_SetCallResult(ulong hAPICall, SteamAPI_UserFavoriteItemsListChanged_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CUserFavoriteItemsListChanged_t_RemoveCallResult")] -public static extern ulong CUserFavoriteItemsListChanged_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_EncryptedAppTicketResponse_t_CallResult(EncryptedAppTicketResponse_t pEncryptedAppTicketResponse_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CEncryptedAppTicketResponse_t_SetCallResult")] -public static extern ulong CEncryptedAppTicketResponse_t_SetCallResult(ulong hAPICall, SteamAPI_EncryptedAppTicketResponse_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CEncryptedAppTicketResponse_t_RemoveCallResult")] -public static extern ulong CEncryptedAppTicketResponse_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageSetUserPublishedFileActionResult_t_CallResult(RemoteStorageSetUserPublishedFileActionResult_t pRemoteStorageSetUserPublishedFileActionResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageSetUserPublishedFileActionResult_t_SetCallResult")] -public static extern ulong CRemoteStorageSetUserPublishedFileActionResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageSetUserPublishedFileActionResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageSetUserPublishedFileActionResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageSetUserPublishedFileActionResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageEnumerateUserPublishedFilesResult_t_CallResult(RemoteStorageEnumerateUserPublishedFilesResult_t pRemoteStorageEnumerateUserPublishedFilesResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateUserPublishedFilesResult_t_SetCallResult")] -public static extern ulong CRemoteStorageEnumerateUserPublishedFilesResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumerateUserPublishedFilesResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateUserPublishedFilesResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageEnumerateUserPublishedFilesResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_FriendsEnumerateFollowingList_t_CallResult(FriendsEnumerateFollowingList_t pFriendsEnumerateFollowingList_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsEnumerateFollowingList_t_SetCallResult")] -public static extern ulong CFriendsEnumerateFollowingList_t_SetCallResult(ulong hAPICall, SteamAPI_FriendsEnumerateFollowingList_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CFriendsEnumerateFollowingList_t_RemoveCallResult")] -public static extern ulong CFriendsEnumerateFollowingList_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageSubscribePublishedFileResult_t_CallResult(RemoteStorageSubscribePublishedFileResult_t pRemoteStorageSubscribePublishedFileResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageSubscribePublishedFileResult_t_SetCallResult")] -public static extern ulong CRemoteStorageSubscribePublishedFileResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageSubscribePublishedFileResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageSubscribePublishedFileResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageSubscribePublishedFileResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_GetUserItemVoteResult_t_CallResult(GetUserItemVoteResult_t pGetUserItemVoteResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CGetUserItemVoteResult_t_SetCallResult")] -public static extern ulong CGetUserItemVoteResult_t_SetCallResult(ulong hAPICall, SteamAPI_GetUserItemVoteResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CGetUserItemVoteResult_t_RemoveCallResult")] -public static extern ulong CGetUserItemVoteResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_AssociateWithClanResult_t_CallResult(AssociateWithClanResult_t pAssociateWithClanResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CAssociateWithClanResult_t_SetCallResult")] -public static extern ulong CAssociateWithClanResult_t_SetCallResult(ulong hAPICall, SteamAPI_AssociateWithClanResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CAssociateWithClanResult_t_RemoveCallResult")] -public static extern ulong CAssociateWithClanResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LeaderboardUGCSet_t_CallResult(LeaderboardUGCSet_t pLeaderboardUGCSet_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardUGCSet_t_SetCallResult")] -public static extern ulong CLeaderboardUGCSet_t_SetCallResult(ulong hAPICall, SteamAPI_LeaderboardUGCSet_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardUGCSet_t_RemoveCallResult")] -public static extern ulong CLeaderboardUGCSet_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_CheckFileSignature_t_CallResult(CheckFileSignature_t pCheckFileSignature_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CCheckFileSignature_t_SetCallResult")] -public static extern ulong CCheckFileSignature_t_SetCallResult(ulong hAPICall, SteamAPI_CheckFileSignature_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CCheckFileSignature_t_RemoveCallResult")] -public static extern ulong CCheckFileSignature_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoteStorageUnsubscribePublishedFileResult_t_CallResult(RemoteStorageUnsubscribePublishedFileResult_t pRemoteStorageUnsubscribePublishedFileResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUnsubscribePublishedFileResult_t_SetCallResult")] -public static extern ulong CRemoteStorageUnsubscribePublishedFileResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageUnsubscribePublishedFileResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageUnsubscribePublishedFileResult_t_RemoveCallResult")] -public static extern ulong CRemoteStorageUnsubscribePublishedFileResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_SetPersonaNameResponse_t_CallResult(SetPersonaNameResponse_t pSetPersonaNameResponse_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CSetPersonaNameResponse_t_SetCallResult")] -public static extern ulong CSetPersonaNameResponse_t_SetCallResult(ulong hAPICall, SteamAPI_SetPersonaNameResponse_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CSetPersonaNameResponse_t_RemoveCallResult")] -public static extern ulong CSetPersonaNameResponse_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_UserStatsReceived_t_CallResult(UserStatsReceived_t pUserStatsReceived_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_SetCallResult")] -public static extern ulong CUserStatsReceived_t_SetCallResult(ulong hAPICall, SteamAPI_UserStatsReceived_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CUserStatsReceived_t_RemoveCallResult")] -public static extern ulong CUserStatsReceived_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_JoinClanChatRoomCompletionResult_t_CallResult(JoinClanChatRoomCompletionResult_t pJoinClanChatRoomCompletionResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CJoinClanChatRoomCompletionResult_t_SetCallResult")] -public static extern ulong CJoinClanChatRoomCompletionResult_t_SetCallResult(ulong hAPICall, SteamAPI_JoinClanChatRoomCompletionResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CJoinClanChatRoomCompletionResult_t_RemoveCallResult")] -public static extern ulong CJoinClanChatRoomCompletionResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_LeaderboardFindResult_t_CallResult(LeaderboardFindResult_t pLeaderboardFindResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardFindResult_t_SetCallResult")] -public static extern ulong CLeaderboardFindResult_t_SetCallResult(ulong hAPICall, SteamAPI_LeaderboardFindResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CLeaderboardFindResult_t_RemoveCallResult")] -public static extern ulong CLeaderboardFindResult_t_RemoveCallResult(ulong handle); - -} - -} - -namespace Valve.Steamworks -{ - - public abstract class ISteamClient - { - public abstract IntPtr GetIntPtr(); - public abstract uint CreateSteamPipe(); - public abstract bool BReleaseSteamPipe(uint hSteamPipe); - public abstract uint ConnectToGlobalUser(uint hSteamPipe); - public abstract uint CreateLocalUser(ref uint phSteamPipe,uint eAccountType); - public abstract void ReleaseUser(uint hSteamPipe,uint hUser); - public abstract ISteamUser GetISteamUser(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamGameServer GetISteamGameServer(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract void SetLocalIPBinding(uint unIP,char usPort); - public abstract ISteamFriends GetISteamFriends(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamUtils GetISteamUtils(uint hSteamPipe,string pchVersion); - public abstract ISteamMatchmaking GetISteamMatchmaking(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamMatchmakingServers GetISteamMatchmakingServers(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract IntPtr GetISteamGenericInterface(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamUserStats GetISteamUserStats(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamGameServerStats GetISteamGameServerStats(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamApps GetISteamApps(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamNetworking GetISteamNetworking(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamRemoteStorage GetISteamRemoteStorage(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamScreenshots GetISteamScreenshots(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract uint GetIPCCallCount(); - public abstract void SetWarningMessageHook(IntPtr pFunction); - public abstract bool BShutdownIfAllPipesClosed(); - public abstract ISteamHTTP GetISteamHTTP(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamUnifiedMessages GetISteamUnifiedMessages(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamController GetISteamController(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamUGC GetISteamUGC(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamAppList GetISteamAppList(uint hSteamUser,uint hSteamPipe,string pchVersion); - public abstract ISteamMusic GetISteamMusic(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamMusicRemote GetISteamMusicRemote(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamHTMLSurface GetISteamHTMLSurface(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamInventory GetISteamInventory(uint hSteamuser,uint hSteamPipe,string pchVersion); - public abstract ISteamVideo GetISteamVideo(uint hSteamuser,uint hSteamPipe,string pchVersion); - } - - - public abstract class ISteamUser - { - public abstract IntPtr GetIntPtr(); - public abstract uint GetHSteamUser(); - public abstract bool BLoggedOn(); - public abstract ulong GetSteamID(); - public abstract int InitiateGameConnection(IntPtr pAuthBlob,int cbMaxAuthBlob,ulong steamIDGameServer,uint unIPServer,char usPortServer,bool bSecure); - public abstract void TerminateGameConnection(uint unIPServer,char usPortServer); - public abstract void TrackAppUsageEvent(ulong gameID,int eAppUsageEvent,string pchExtraInfo); - public abstract bool GetUserDataFolder(string pchBuffer,int cubBuffer); - public abstract void StartVoiceRecording(); - public abstract void StopVoiceRecording(); - public abstract uint GetAvailableVoice(ref uint pcbCompressed,ref uint pcbUncompressed,uint nUncompressedVoiceDesiredSampleRate); - public abstract uint GetVoice(bool bWantCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,bool bWantUncompressed,IntPtr pUncompressedDestBuffer,uint cbUncompressedDestBufferSize,ref uint nUncompressBytesWritten,uint nUncompressedVoiceDesiredSampleRate); - public abstract uint DecompressVoice(IntPtr pCompressed,uint cbCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,uint nDesiredSampleRate); - public abstract uint GetVoiceOptimalSampleRate(); - public abstract uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket); - public abstract uint BeginAuthSession(IntPtr pAuthTicket,int cbAuthTicket,ulong steamID); - public abstract void EndAuthSession(ulong steamID); - public abstract void CancelAuthTicket(uint hAuthTicket); - public abstract uint UserHasLicenseForApp(ulong steamID,uint appID); - public abstract bool BIsBehindNAT(); - public abstract void AdvertiseGame(ulong steamIDGameServer,uint unIPServer,char usPortServer); - public abstract ulong RequestEncryptedAppTicket(IntPtr pDataToInclude,int cbDataToInclude); - public abstract bool GetEncryptedAppTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket); - public abstract int GetGameBadgeLevel(int nSeries,bool bFoil); - public abstract int GetPlayerSteamLevel(); - public abstract ulong RequestStoreAuthURL(string pchRedirectURL); - public abstract bool BIsPhoneVerified(); - public abstract bool BIsTwoFactorEnabled(); - public abstract bool BIsPhoneIdentifying(); - public abstract bool BIsPhoneRequiringVerification(); - } - - - public abstract class ISteamFriends - { - public abstract IntPtr GetIntPtr(); - public abstract string GetPersonaName(); - public abstract ulong SetPersonaName(string pchPersonaName); - public abstract uint GetPersonaState(); - public abstract int GetFriendCount(int iFriendFlags); - public abstract ulong GetFriendByIndex(int iFriend,int iFriendFlags); - public abstract uint GetFriendRelationship(ulong steamIDFriend); - public abstract uint GetFriendPersonaState(ulong steamIDFriend); - public abstract string GetFriendPersonaName(ulong steamIDFriend); - public abstract bool GetFriendGamePlayed(ulong steamIDFriend,out FriendGameInfo_t pFriendGameInfo); - public abstract string GetFriendPersonaNameHistory(ulong steamIDFriend,int iPersonaName); - public abstract int GetFriendSteamLevel(ulong steamIDFriend); - public abstract string GetPlayerNickname(ulong steamIDPlayer); - public abstract int GetFriendsGroupCount(); - public abstract char GetFriendsGroupIDByIndex(int iFG); - public abstract string GetFriendsGroupName(char friendsGroupID); - public abstract int GetFriendsGroupMembersCount(char friendsGroupID); - public abstract void GetFriendsGroupMembersList(char friendsGroupID,out CSteamID [] pOutSteamIDMembers); - public abstract bool HasFriend(ulong steamIDFriend,int iFriendFlags); - public abstract int GetClanCount(); - public abstract ulong GetClanByIndex(int iClan); - public abstract string GetClanName(ulong steamIDClan); - public abstract string GetClanTag(ulong steamIDClan); - public abstract bool GetClanActivityCounts(ulong steamIDClan,ref int pnOnline,ref int pnInGame,ref int pnChatting); - public abstract ulong DownloadClanActivityCounts(CSteamID [] psteamIDClans); - public abstract int GetFriendCountFromSource(ulong steamIDSource); - public abstract ulong GetFriendFromSourceByIndex(ulong steamIDSource,int iFriend); - public abstract bool IsUserInSource(ulong steamIDUser,ulong steamIDSource); - public abstract void SetInGameVoiceSpeaking(ulong steamIDUser,bool bSpeaking); - public abstract void ActivateGameOverlay(string pchDialog); - public abstract void ActivateGameOverlayToUser(string pchDialog,ulong steamID); - public abstract void ActivateGameOverlayToWebPage(string pchURL); - public abstract void ActivateGameOverlayToStore(uint nAppID,char eFlag); - public abstract void SetPlayedWith(ulong steamIDUserPlayedWith); - public abstract void ActivateGameOverlayInviteDialog(ulong steamIDLobby); - public abstract int GetSmallFriendAvatar(ulong steamIDFriend); - public abstract int GetMediumFriendAvatar(ulong steamIDFriend); - public abstract int GetLargeFriendAvatar(ulong steamIDFriend); - public abstract bool RequestUserInformation(ulong steamIDUser,bool bRequireNameOnly); - public abstract ulong RequestClanOfficerList(ulong steamIDClan); - public abstract ulong GetClanOwner(ulong steamIDClan); - public abstract int GetClanOfficerCount(ulong steamIDClan); - public abstract ulong GetClanOfficerByIndex(ulong steamIDClan,int iOfficer); - public abstract uint GetUserRestrictions(); - public abstract bool SetRichPresence(string pchKey,string pchValue); - public abstract void ClearRichPresence(); - public abstract string GetFriendRichPresence(ulong steamIDFriend,string pchKey); - public abstract int GetFriendRichPresenceKeyCount(ulong steamIDFriend); - public abstract string GetFriendRichPresenceKeyByIndex(ulong steamIDFriend,int iKey); - public abstract void RequestFriendRichPresence(ulong steamIDFriend); - public abstract bool InviteUserToGame(ulong steamIDFriend,string pchConnectString); - public abstract int GetCoplayFriendCount(); - public abstract ulong GetCoplayFriend(int iCoplayFriend); - public abstract int GetFriendCoplayTime(ulong steamIDFriend); - public abstract uint GetFriendCoplayGame(ulong steamIDFriend); - public abstract ulong JoinClanChatRoom(ulong steamIDClan); - public abstract bool LeaveClanChatRoom(ulong steamIDClan); - public abstract int GetClanChatMemberCount(ulong steamIDClan); - public abstract ulong GetChatMemberByIndex(ulong steamIDClan,int iUser); - public abstract bool SendClanChatMessage(ulong steamIDClanChat,string pchText); - public abstract int GetClanChatMessage(ulong steamIDClanChat,int iMessage,IntPtr prgchText,int cchTextMax,ref uint peChatEntryType,out CSteamID psteamidChatter); - public abstract bool IsClanChatAdmin(ulong steamIDClanChat,ulong steamIDUser); - public abstract bool IsClanChatWindowOpenInSteam(ulong steamIDClanChat); - public abstract bool OpenClanChatWindowInSteam(ulong steamIDClanChat); - public abstract bool CloseClanChatWindowInSteam(ulong steamIDClanChat); - public abstract bool SetListenForFriendsMessages(bool bInterceptEnabled); - public abstract bool ReplyToFriendMessage(ulong steamIDFriend,string pchMsgToSend); - public abstract int GetFriendMessage(ulong steamIDFriend,int iMessageID,IntPtr pvData,int cubData,ref uint peChatEntryType); - public abstract ulong GetFollowerCount(ulong steamID); - public abstract ulong IsFollowing(ulong steamID); - public abstract ulong EnumerateFollowingList(uint unStartIndex); - } - - - public abstract class ISteamUtils - { - public abstract IntPtr GetIntPtr(); - public abstract uint GetSecondsSinceAppActive(); - public abstract uint GetSecondsSinceComputerActive(); - public abstract int GetConnectedUniverse(); - public abstract uint GetServerRealTime(); - public abstract string GetIPCountry(); - public abstract bool GetImageSize(int iImage,ref uint pnWidth,ref uint pnHeight); - public abstract bool GetImageRGBA(int iImage,IntPtr pubDest,int nDestBufferSize); - public abstract bool GetCSERIPPort(ref uint unIP,ref char usPort); - public abstract byte GetCurrentBatteryPower(); - public abstract uint GetAppID(); - public abstract void SetOverlayNotificationPosition(uint eNotificationPosition); - public abstract bool IsAPICallCompleted(ulong hSteamAPICall,ref bool pbFailed); - public abstract int GetAPICallFailureReason(ulong hSteamAPICall); - public abstract bool GetAPICallResult(ulong hSteamAPICall,IntPtr pCallback,int cubCallback,int iCallbackExpected,ref bool pbFailed); - public abstract uint GetIPCCallCount(); - public abstract void SetWarningMessageHook(IntPtr pFunction); - public abstract bool IsOverlayEnabled(); - public abstract bool BOverlayNeedsPresent(); - public abstract ulong CheckFileSignature(string szFileName); - public abstract bool ShowGamepadTextInput(int eInputMode,int eLineInputMode,string pchDescription,uint unCharMax,string pchExistingText); - public abstract uint GetEnteredGamepadTextLength(); - public abstract bool GetEnteredGamepadTextInput(string pchText,uint cchText); - public abstract string GetSteamUILanguage(); - public abstract bool IsSteamRunningInVR(); - public abstract void SetOverlayNotificationInset(int nHorizontalInset,int nVerticalInset); - public abstract bool IsSteamInBigPictureMode(); - public abstract void StartVRDashboard(); - } - - - public abstract class ISteamMatchmaking - { - public abstract IntPtr GetIntPtr(); - public abstract int GetFavoriteGameCount(); - public abstract bool GetFavoriteGame(int iGame,ref uint pnAppID,ref uint pnIP,ref char pnConnPort,ref char pnQueryPort,ref uint punFlags,ref uint pRTime32LastPlayedOnServer); - public abstract int AddFavoriteGame(uint nAppID,uint nIP,char nConnPort,char nQueryPort,uint unFlags,uint rTime32LastPlayedOnServer); - public abstract bool RemoveFavoriteGame(uint nAppID,uint nIP,char nConnPort,char nQueryPort,uint unFlags); - public abstract ulong RequestLobbyList(); - public abstract void AddRequestLobbyListStringFilter(string pchKeyToMatch,string pchValueToMatch,uint eComparisonType); - public abstract void AddRequestLobbyListNumericalFilter(string pchKeyToMatch,int nValueToMatch,uint eComparisonType); - public abstract void AddRequestLobbyListNearValueFilter(string pchKeyToMatch,int nValueToBeCloseTo); - public abstract void AddRequestLobbyListFilterSlotsAvailable(int nSlotsAvailable); - public abstract void AddRequestLobbyListDistanceFilter(uint eLobbyDistanceFilter); - public abstract void AddRequestLobbyListResultCountFilter(int cMaxResults); - public abstract void AddRequestLobbyListCompatibleMembersFilter(ulong steamIDLobby); - public abstract ulong GetLobbyByIndex(int iLobby); - public abstract ulong CreateLobby(uint eLobbyType,int cMaxMembers); - public abstract ulong JoinLobby(ulong steamIDLobby); - public abstract void LeaveLobby(ulong steamIDLobby); - public abstract bool InviteUserToLobby(ulong steamIDLobby,ulong steamIDInvitee); - public abstract int GetNumLobbyMembers(ulong steamIDLobby); - public abstract ulong GetLobbyMemberByIndex(ulong steamIDLobby,int iMember); - public abstract string GetLobbyData(ulong steamIDLobby,string pchKey); - public abstract bool SetLobbyData(ulong steamIDLobby,string pchKey,string pchValue); - public abstract int GetLobbyDataCount(ulong steamIDLobby); - public abstract bool GetLobbyDataByIndex(ulong steamIDLobby,int iLobbyData,string pchKey,int cchKeyBufferSize,string pchValue,int cchValueBufferSize); - public abstract bool DeleteLobbyData(ulong steamIDLobby,string pchKey); - public abstract string GetLobbyMemberData(ulong steamIDLobby,ulong steamIDUser,string pchKey); - public abstract void SetLobbyMemberData(ulong steamIDLobby,string pchKey,string pchValue); - public abstract bool SendLobbyChatMsg(ulong steamIDLobby,IntPtr pvMsgBody,int cubMsgBody); - public abstract int GetLobbyChatEntry(ulong steamIDLobby,int iChatID,out CSteamID pSteamIDUser,IntPtr pvData,int cubData,ref uint peChatEntryType); - public abstract bool RequestLobbyData(ulong steamIDLobby); - public abstract void SetLobbyGameServer(ulong steamIDLobby,uint unGameServerIP,char unGameServerPort,ulong steamIDGameServer); - public abstract bool GetLobbyGameServer(ulong steamIDLobby,ref uint punGameServerIP,ref char punGameServerPort,out CSteamID psteamIDGameServer); - public abstract bool SetLobbyMemberLimit(ulong steamIDLobby,int cMaxMembers); - public abstract int GetLobbyMemberLimit(ulong steamIDLobby); - public abstract bool SetLobbyType(ulong steamIDLobby,uint eLobbyType); - public abstract bool SetLobbyJoinable(ulong steamIDLobby,bool bLobbyJoinable); - public abstract ulong GetLobbyOwner(ulong steamIDLobby); - public abstract bool SetLobbyOwner(ulong steamIDLobby,ulong steamIDNewOwner); - public abstract bool SetLinkedLobby(ulong steamIDLobby,ulong steamIDLobbyDependent); - } - - - public abstract class ISteamMatchmakingServerListResponse - { - public abstract IntPtr GetIntPtr(); - public abstract void ServerResponded(uint hRequest,int iServer); - public abstract void ServerFailedToRespond(uint hRequest,int iServer); - public abstract void RefreshComplete(uint hRequest,uint response); - } - - - public abstract class ISteamMatchmakingPingResponse - { - public abstract IntPtr GetIntPtr(); - public abstract void ServerResponded(IntPtr server); - public abstract void ServerFailedToRespond(); - } - - - public abstract class ISteamMatchmakingPlayersResponse - { - public abstract IntPtr GetIntPtr(); - public abstract void AddPlayerToList(string pchName,int nScore,float flTimePlayed); - public abstract void PlayersFailedToRespond(); - public abstract void PlayersRefreshComplete(); - } - - - public abstract class ISteamMatchmakingRulesResponse - { - public abstract IntPtr GetIntPtr(); - public abstract void RulesResponded(string pchRule,string pchValue); - public abstract void RulesFailedToRespond(); - public abstract void RulesRefreshComplete(); - } - - - public abstract class ISteamMatchmakingServers - { - public abstract IntPtr GetIntPtr(); - public abstract uint RequestInternetServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestLANServerList(uint iApp,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestFriendsServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestFavoritesServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestHistoryServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract uint RequestSpectatorServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse); - public abstract void ReleaseRequest(uint hServerListRequest); - public abstract gameserveritem_t GetServerDetails(uint hRequest,int iServer); - public abstract void CancelQuery(uint hRequest); - public abstract void RefreshQuery(uint hRequest); - public abstract bool IsRefreshing(uint hRequest); - public abstract int GetServerCount(uint hRequest); - public abstract void RefreshServer(uint hRequest,int iServer); - public abstract uint PingServer(uint unIP,char usPort,ISteamMatchmakingPingResponse pRequestServersResponse); - public abstract uint PlayerDetails(uint unIP,char usPort,ISteamMatchmakingPlayersResponse pRequestServersResponse); - public abstract uint ServerRules(uint unIP,char usPort,ISteamMatchmakingRulesResponse pRequestServersResponse); - public abstract void CancelServerQuery(uint hServerQuery); - } - - - public abstract class ISteamRemoteStorage - { - public abstract IntPtr GetIntPtr(); - public abstract bool FileWrite(string pchFile,IntPtr pvData,int cubData); - public abstract int FileRead(string pchFile,IntPtr pvData,int cubDataToRead); - public abstract ulong FileWriteAsync(string pchFile,IntPtr pvData,uint cubData); - public abstract ulong FileReadAsync(string pchFile,uint nOffset,uint cubToRead); - public abstract bool FileReadAsyncComplete(ulong hReadCall,IntPtr pvBuffer,uint cubToRead); - public abstract bool FileForget(string pchFile); - public abstract bool FileDelete(string pchFile); - public abstract ulong FileShare(string pchFile); - public abstract bool SetSyncPlatforms(string pchFile,uint eRemoteStoragePlatform); - public abstract ulong FileWriteStreamOpen(string pchFile); - public abstract bool FileWriteStreamWriteChunk(ulong writeHandle,IntPtr pvData,int cubData); - public abstract bool FileWriteStreamClose(ulong writeHandle); - public abstract bool FileWriteStreamCancel(ulong writeHandle); - public abstract bool FileExists(string pchFile); - public abstract bool FilePersisted(string pchFile); - public abstract int GetFileSize(string pchFile); - public abstract long GetFileTimestamp(string pchFile); - public abstract uint GetSyncPlatforms(string pchFile); - public abstract int GetFileCount(); - public abstract string GetFileNameAndSize(int iFile,ref int pnFileSizeInBytes); - public abstract bool GetQuota(ref ulong pnTotalBytes,ref ulong puAvailableBytes); - public abstract bool IsCloudEnabledForAccount(); - public abstract bool IsCloudEnabledForApp(); - public abstract void SetCloudEnabledForApp(bool bEnabled); - public abstract ulong UGCDownload(ulong hContent,uint unPriority); - public abstract bool GetUGCDownloadProgress(ulong hContent,ref int pnBytesDownloaded,ref int pnBytesExpected); - public abstract bool GetUGCDetails(ulong hContent,ref uint pnAppID,System.Text.StringBuilder ppchName,ref int pnFileSizeInBytes,out CSteamID pSteamIDOwner); - public abstract int UGCRead(ulong hContent,IntPtr pvData,int cubDataToRead,uint cOffset,uint eAction); - public abstract int GetCachedUGCCount(); - public abstract ulong GetCachedUGCHandle(int iCachedContent); - public abstract ulong PublishWorkshopFile(string pchFile,string pchPreviewFile,uint nConsumerAppId,string pchTitle,string pchDescription,uint eVisibility,ref SteamParamStringArray_t pTags,uint eWorkshopFileType); - public abstract ulong CreatePublishedFileUpdateRequest(ulong unPublishedFileId); - public abstract bool UpdatePublishedFileFile(ulong updateHandle,string pchFile); - public abstract bool UpdatePublishedFilePreviewFile(ulong updateHandle,string pchPreviewFile); - public abstract bool UpdatePublishedFileTitle(ulong updateHandle,string pchTitle); - public abstract bool UpdatePublishedFileDescription(ulong updateHandle,string pchDescription); - public abstract bool UpdatePublishedFileVisibility(ulong updateHandle,uint eVisibility); - public abstract bool UpdatePublishedFileTags(ulong updateHandle,ref SteamParamStringArray_t pTags); - public abstract ulong CommitPublishedFileUpdate(ulong updateHandle); - public abstract ulong GetPublishedFileDetails(ulong unPublishedFileId,uint unMaxSecondsOld); - public abstract ulong DeletePublishedFile(ulong unPublishedFileId); - public abstract ulong EnumerateUserPublishedFiles(uint unStartIndex); - public abstract ulong SubscribePublishedFile(ulong unPublishedFileId); - public abstract ulong EnumerateUserSubscribedFiles(uint unStartIndex); - public abstract ulong UnsubscribePublishedFile(ulong unPublishedFileId); - public abstract bool UpdatePublishedFileSetChangeDescription(ulong updateHandle,string pchChangeDescription); - public abstract ulong GetPublishedItemVoteDetails(ulong unPublishedFileId); - public abstract ulong UpdateUserPublishedItemVote(ulong unPublishedFileId,bool bVoteUp); - public abstract ulong GetUserPublishedItemVoteDetails(ulong unPublishedFileId); - public abstract ulong EnumerateUserSharedWorkshopFiles(ulong steamId,uint unStartIndex,ref SteamParamStringArray_t pRequiredTags,ref SteamParamStringArray_t pExcludedTags); - public abstract ulong PublishVideo(uint eVideoProvider,string pchVideoAccount,string pchVideoIdentifier,string pchPreviewFile,uint nConsumerAppId,string pchTitle,string pchDescription,uint eVisibility,ref SteamParamStringArray_t pTags); - public abstract ulong SetUserPublishedFileAction(ulong unPublishedFileId,uint eAction); - public abstract ulong EnumeratePublishedFilesByUserAction(uint eAction,uint unStartIndex); - public abstract ulong EnumeratePublishedWorkshopFiles(uint eEnumerationType,uint unStartIndex,uint unCount,uint unDays,ref SteamParamStringArray_t pTags,ref SteamParamStringArray_t pUserTags); - public abstract ulong UGCDownloadToLocation(ulong hContent,string pchLocation,uint unPriority); - } - - - public abstract class ISteamUserStats - { - public abstract IntPtr GetIntPtr(); - public abstract bool RequestCurrentStats(); - public abstract bool GetStat(string pchName,ref int pData); - public abstract bool GetStat0(string pchName,ref float pData); - public abstract bool SetStat(string pchName,int nData); - public abstract bool SetStat0(string pchName,float fData); - public abstract bool UpdateAvgRateStat(string pchName,float flCountThisSession,double dSessionLength); - public abstract bool GetAchievement(string pchName,ref bool pbAchieved); - public abstract bool SetAchievement(string pchName); - public abstract bool ClearAchievement(string pchName); - public abstract bool GetAchievementAndUnlockTime(string pchName,ref bool pbAchieved,ref uint punUnlockTime); - public abstract bool StoreStats(); - public abstract int GetAchievementIcon(string pchName); - public abstract string GetAchievementDisplayAttribute(string pchName,string pchKey); - public abstract bool IndicateAchievementProgress(string pchName,uint nCurProgress,uint nMaxProgress); - public abstract uint GetNumAchievements(); - public abstract string GetAchievementName(uint iAchievement); - public abstract ulong RequestUserStats(ulong steamIDUser); - public abstract bool GetUserStat(ulong steamIDUser,string pchName,ref int pData); - public abstract bool GetUserStat0(ulong steamIDUser,string pchName,ref float pData); - public abstract bool GetUserAchievement(ulong steamIDUser,string pchName,ref bool pbAchieved); - public abstract bool GetUserAchievementAndUnlockTime(ulong steamIDUser,string pchName,ref bool pbAchieved,ref uint punUnlockTime); - public abstract bool ResetAllStats(bool bAchievementsToo); - public abstract ulong FindOrCreateLeaderboard(string pchLeaderboardName,uint eLeaderboardSortMethod,uint eLeaderboardDisplayType); - public abstract ulong FindLeaderboard(string pchLeaderboardName); - public abstract string GetLeaderboardName(ulong hSteamLeaderboard); - public abstract int GetLeaderboardEntryCount(ulong hSteamLeaderboard); - public abstract uint GetLeaderboardSortMethod(ulong hSteamLeaderboard); - public abstract uint GetLeaderboardDisplayType(ulong hSteamLeaderboard); - public abstract ulong DownloadLeaderboardEntries(ulong hSteamLeaderboard,uint eLeaderboardDataRequest,int nRangeStart,int nRangeEnd); - public abstract ulong DownloadLeaderboardEntriesForUsers(ulong hSteamLeaderboard,CSteamID [] prgUsers); - public abstract bool GetDownloadedLeaderboardEntry(ulong hSteamLeaderboardEntries,int index,ref LeaderboardEntry_t pLeaderboardEntry,ref int pDetails,int cDetailsMax); - public abstract ulong UploadLeaderboardScore(ulong hSteamLeaderboard,uint eLeaderboardUploadScoreMethod,int nScore,ref int pScoreDetails,int cScoreDetailsCount); - public abstract ulong AttachLeaderboardUGC(ulong hSteamLeaderboard,ulong hUGC); - public abstract ulong GetNumberOfCurrentPlayers(); - public abstract ulong RequestGlobalAchievementPercentages(); - public abstract int GetMostAchievedAchievementInfo(string pchName,uint unNameBufLen,ref float pflPercent,ref bool pbAchieved); - public abstract int GetNextMostAchievedAchievementInfo(int iIteratorPrevious,string pchName,uint unNameBufLen,ref float pflPercent,ref bool pbAchieved); - public abstract bool GetAchievementAchievedPercent(string pchName,ref float pflPercent); - public abstract ulong RequestGlobalStats(int nHistoryDays); - public abstract bool GetGlobalStat(string pchStatName,ref long pData); - public abstract bool GetGlobalStat0(string pchStatName,ref double pData); - public abstract int GetGlobalStatHistory(string pchStatName,long [] pData); - public abstract int GetGlobalStatHistory0(string pchStatName,double [] pData); - } - - - public abstract class ISteamApps - { - public abstract IntPtr GetIntPtr(); - public abstract bool BIsSubscribed(); - public abstract bool BIsLowViolence(); - public abstract bool BIsCybercafe(); - public abstract bool BIsVACBanned(); - public abstract string GetCurrentGameLanguage(); - public abstract string GetAvailableGameLanguages(); - public abstract bool BIsSubscribedApp(uint appID); - public abstract bool BIsDlcInstalled(uint appID); - public abstract uint GetEarliestPurchaseUnixTime(uint nAppID); - public abstract bool BIsSubscribedFromFreeWeekend(); - public abstract int GetDLCCount(); - public abstract bool BGetDLCDataByIndex(int iDLC,ref uint pAppID,ref bool pbAvailable,string pchName,int cchNameBufferSize); - public abstract void InstallDLC(uint nAppID); - public abstract void UninstallDLC(uint nAppID); - public abstract void RequestAppProofOfPurchaseKey(uint nAppID); - public abstract bool GetCurrentBetaName(string pchName,int cchNameBufferSize); - public abstract bool MarkContentCorrupt(bool bMissingFilesOnly); - public abstract uint GetInstalledDepots(uint appID,ref uint pvecDepots,uint cMaxDepots); - public abstract uint GetAppInstallDir(uint appID,string pchFolder,uint cchFolderBufferSize); - public abstract bool BIsAppInstalled(uint appID); - public abstract ulong GetAppOwner(); - public abstract string GetLaunchQueryParam(string pchKey); - public abstract bool GetDlcDownloadProgress(uint nAppID,ref ulong punBytesDownloaded,ref ulong punBytesTotal); - public abstract int GetAppBuildId(); - public abstract void RequestAllProofOfPurchaseKeys(); - public abstract ulong GetFileDetails(string pszFileName); - } - - - public abstract class ISteamNetworking - { - public abstract IntPtr GetIntPtr(); - public abstract bool SendP2PPacket(ulong steamIDRemote,IntPtr pubData,uint cubData,uint eP2PSendType,int nChannel); - public abstract bool IsP2PPacketAvailable(ref uint pcubMsgSize,int nChannel); - public abstract bool ReadP2PPacket(IntPtr pubDest,uint cubDest,ref uint pcubMsgSize,ref CSteamID psteamIDRemote,int nChannel); - public abstract bool AcceptP2PSessionWithUser(ulong steamIDRemote); - public abstract bool CloseP2PSessionWithUser(ulong steamIDRemote); - public abstract bool CloseP2PChannelWithUser(ulong steamIDRemote,int nChannel); - public abstract bool GetP2PSessionState(ulong steamIDRemote,ref P2PSessionState_t pConnectionState); - public abstract bool AllowP2PPacketRelay(bool bAllow); - public abstract uint CreateListenSocket(int nVirtualP2PPort,uint nIP,char nPort,bool bAllowUseOfPacketRelay); - public abstract uint CreateP2PConnectionSocket(ulong steamIDTarget,int nVirtualPort,int nTimeoutSec,bool bAllowUseOfPacketRelay); - public abstract uint CreateConnectionSocket(uint nIP,char nPort,int nTimeoutSec); - public abstract bool DestroySocket(uint hSocket,bool bNotifyRemoteEnd); - public abstract bool DestroyListenSocket(uint hSocket,bool bNotifyRemoteEnd); - public abstract bool SendDataOnSocket(uint hSocket,IntPtr pubData,uint cubData,bool bReliable); - public abstract bool IsDataAvailableOnSocket(uint hSocket,ref uint pcubMsgSize); - public abstract bool RetrieveDataFromSocket(uint hSocket,IntPtr pubDest,uint cubDest,ref uint pcubMsgSize); - public abstract bool IsDataAvailable(uint hListenSocket,ref uint pcubMsgSize,ref uint phSocket); - public abstract bool RetrieveData(uint hListenSocket,IntPtr pubDest,uint cubDest,ref uint pcubMsgSize,ref uint phSocket); - public abstract bool GetSocketInfo(uint hSocket,ref CSteamID pSteamIDRemote,ref int peSocketStatus,ref uint punIPRemote,ref char punPortRemote); - public abstract bool GetListenSocketInfo(uint hListenSocket,ref uint pnIP,ref char pnPort); - public abstract uint GetSocketConnectionType(uint hSocket); - public abstract int GetMaxPacketSize(uint hSocket); - } - - - public abstract class ISteamScreenshots - { - public abstract IntPtr GetIntPtr(); - public abstract uint WriteScreenshot(IntPtr pubRGB,uint cubRGB,int nWidth,int nHeight); - public abstract uint AddScreenshotToLibrary(string pchFilename,string pchThumbnailFilename,int nWidth,int nHeight); - public abstract void TriggerScreenshot(); - public abstract void HookScreenshots(bool bHook); - public abstract bool SetLocation(uint hScreenshot,string pchLocation); - public abstract bool TagUser(uint hScreenshot,ulong steamID); - public abstract bool TagPublishedFile(uint hScreenshot,ulong unPublishedFileID); - public abstract bool IsScreenshotsHooked(); - public abstract uint AddVRScreenshotToLibrary(uint eType,string pchFilename,string pchVRFilename); - } - - - public abstract class ISteamMusic - { - public abstract IntPtr GetIntPtr(); - public abstract bool BIsEnabled(); - public abstract bool BIsPlaying(); - public abstract int GetPlaybackStatus(); - public abstract void Play(); - public abstract void Pause(); - public abstract void PlayPrevious(); - public abstract void PlayNext(); - public abstract void SetVolume(float flVolume); - public abstract float GetVolume(); - } - - - public abstract class ISteamMusicRemote - { - public abstract IntPtr GetIntPtr(); - public abstract bool RegisterSteamMusicRemote(string pchName); - public abstract bool DeregisterSteamMusicRemote(); - public abstract bool BIsCurrentMusicRemote(); - public abstract bool BActivationSuccess(bool bValue); - public abstract bool SetDisplayName(string pchDisplayName); - public abstract bool SetPNGIcon_64x64(IntPtr pvBuffer,uint cbBufferLength); - public abstract bool EnablePlayPrevious(bool bValue); - public abstract bool EnablePlayNext(bool bValue); - public abstract bool EnableShuffled(bool bValue); - public abstract bool EnableLooped(bool bValue); - public abstract bool EnableQueue(bool bValue); - public abstract bool EnablePlaylists(bool bValue); - public abstract bool UpdatePlaybackStatus(int nStatus); - public abstract bool UpdateShuffled(bool bValue); - public abstract bool UpdateLooped(bool bValue); - public abstract bool UpdateVolume(float flValue); - public abstract bool CurrentEntryWillChange(); - public abstract bool CurrentEntryIsAvailable(bool bAvailable); - public abstract bool UpdateCurrentEntryText(string pchText); - public abstract bool UpdateCurrentEntryElapsedSeconds(int nValue); - public abstract bool UpdateCurrentEntryCoverArt(IntPtr pvBuffer,uint cbBufferLength); - public abstract bool CurrentEntryDidChange(); - public abstract bool QueueWillChange(); - public abstract bool ResetQueueEntries(); - public abstract bool SetQueueEntry(int nID,int nPosition,string pchEntryText); - public abstract bool SetCurrentQueueEntry(int nID); - public abstract bool QueueDidChange(); - public abstract bool PlaylistWillChange(); - public abstract bool ResetPlaylistEntries(); - public abstract bool SetPlaylistEntry(int nID,int nPosition,string pchEntryText); - public abstract bool SetCurrentPlaylistEntry(int nID); - public abstract bool PlaylistDidChange(); - } - - - public abstract class ISteamHTTP - { - public abstract IntPtr GetIntPtr(); - public abstract uint CreateHTTPRequest(uint eHTTPRequestMethod,string pchAbsoluteURL); - public abstract bool SetHTTPRequestContextValue(uint hRequest,ulong ulContextValue); - public abstract bool SetHTTPRequestNetworkActivityTimeout(uint hRequest,uint unTimeoutSeconds); - public abstract bool SetHTTPRequestHeaderValue(uint hRequest,string pchHeaderName,string pchHeaderValue); - public abstract bool SetHTTPRequestGetOrPostParameter(uint hRequest,string pchParamName,string pchParamValue); - public abstract bool SendHTTPRequest(uint hRequest,ref ulong pCallHandle); - public abstract bool SendHTTPRequestAndStreamResponse(uint hRequest,ref ulong pCallHandle); - public abstract bool DeferHTTPRequest(uint hRequest); - public abstract bool PrioritizeHTTPRequest(uint hRequest); - public abstract bool GetHTTPResponseHeaderSize(uint hRequest,string pchHeaderName,ref uint unResponseHeaderSize); - public abstract bool GetHTTPResponseHeaderValue(uint hRequest,string pchHeaderName,IntPtr pHeaderValueBuffer,uint unBufferSize); - public abstract bool GetHTTPResponseBodySize(uint hRequest,ref uint unBodySize); - public abstract bool GetHTTPResponseBodyData(uint hRequest,IntPtr pBodyDataBuffer,uint unBufferSize); - public abstract bool GetHTTPStreamingResponseBodyData(uint hRequest,uint cOffset,IntPtr pBodyDataBuffer,uint unBufferSize); - public abstract bool ReleaseHTTPRequest(uint hRequest); - public abstract bool GetHTTPDownloadProgressPct(uint hRequest,ref float pflPercentOut); - public abstract bool SetHTTPRequestRawPostBody(uint hRequest,string pchContentType,IntPtr pubBody,uint unBodyLen); - public abstract uint CreateCookieContainer(bool bAllowResponsesToModify); - public abstract bool ReleaseCookieContainer(uint hCookieContainer); - public abstract bool SetCookie(uint hCookieContainer,string pchHost,string pchUrl,string pchCookie); - public abstract bool SetHTTPRequestCookieContainer(uint hRequest,uint hCookieContainer); - public abstract bool SetHTTPRequestUserAgentInfo(uint hRequest,string pchUserAgentInfo); - public abstract bool SetHTTPRequestRequiresVerifiedCertificate(uint hRequest,bool bRequireVerifiedCertificate); - public abstract bool SetHTTPRequestAbsoluteTimeoutMS(uint hRequest,uint unMilliseconds); - public abstract bool GetHTTPRequestWasTimedOut(uint hRequest,ref bool pbWasTimedOut); - } - - - public abstract class ISteamUnifiedMessages - { - public abstract IntPtr GetIntPtr(); - public abstract ulong SendMethod(string pchServiceMethod,IntPtr pRequestBuffer,uint unRequestBufferSize,ulong unContext); - public abstract bool GetMethodResponseInfo(ulong hHandle,ref uint punResponseSize,ref uint peResult); - public abstract bool GetMethodResponseData(ulong hHandle,IntPtr pResponseBuffer,uint unResponseBufferSize,bool bAutoRelease); - public abstract bool ReleaseMethod(ulong hHandle); - public abstract bool SendNotification(string pchServiceNotification,IntPtr pNotificationBuffer,uint unNotificationBufferSize); - } - - - public abstract class ISteamController - { - public abstract IntPtr GetIntPtr(); - public abstract bool Init(); - public abstract bool Shutdown(); - public abstract void RunFrame(); - public abstract int GetConnectedControllers(ref ulong handlesOut); - public abstract bool ShowBindingPanel(ulong controllerHandle); - public abstract ulong GetActionSetHandle(string pszActionSetName); - public abstract void ActivateActionSet(ulong controllerHandle,ulong actionSetHandle); - public abstract ulong GetCurrentActionSet(ulong controllerHandle); - public abstract ulong GetDigitalActionHandle(string pszActionName); - public abstract ControllerDigitalActionData_t GetDigitalActionData(ulong controllerHandle,ulong digitalActionHandle); - public abstract int GetDigitalActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong digitalActionHandle,ref uint originsOut); - public abstract ulong GetAnalogActionHandle(string pszActionName); - public abstract ControllerAnalogActionData_t GetAnalogActionData(ulong controllerHandle,ulong analogActionHandle); - public abstract int GetAnalogActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong analogActionHandle,ref uint originsOut); - public abstract void StopAnalogActionMomentum(ulong controllerHandle,ulong eAction); - public abstract void TriggerHapticPulse(ulong controllerHandle,uint eTargetPad,char usDurationMicroSec); - public abstract void TriggerRepeatedHapticPulse(ulong controllerHandle,uint eTargetPad,char usDurationMicroSec,char usOffMicroSec,char unRepeat,uint nFlags); - public abstract int GetGamepadIndexForController(ulong ulControllerHandle); - public abstract ulong GetControllerForGamepadIndex(int nIndex); - public abstract ControllerMotionData_t GetMotionData(ulong controllerHandle); - public abstract bool ShowDigitalActionOrigins(ulong controllerHandle,ulong digitalActionHandle,float flScale,float flXPosition,float flYPosition); - public abstract bool ShowAnalogActionOrigins(ulong controllerHandle,ulong analogActionHandle,float flScale,float flXPosition,float flYPosition); - } - - - public abstract class ISteamUGC - { - public abstract IntPtr GetIntPtr(); - public abstract ulong CreateQueryUserUGCRequest(uint unAccountID,uint eListType,uint eMatchingUGCType,uint eSortOrder,uint nCreatorAppID,uint nConsumerAppID,uint unPage); - public abstract ulong CreateQueryAllUGCRequest(uint eQueryType,uint eMatchingeMatchingUGCTypeFileType,uint nCreatorAppID,uint nConsumerAppID,uint unPage); - public abstract ulong CreateQueryUGCDetailsRequest(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs); - public abstract ulong SendQueryUGCRequest(ulong handle); - public abstract bool GetQueryUGCResult(ulong handle,uint index,ref SteamUGCDetails_t pDetails); - public abstract bool GetQueryUGCPreviewURL(ulong handle,uint index,out string pchURL); - public abstract bool GetQueryUGCMetadata(ulong handle,uint index,out string pchMetadata); - public abstract bool GetQueryUGCChildren(ulong handle,uint index,ref ulong pvecPublishedFileID,uint cMaxEntries); - public abstract bool GetQueryUGCStatistic(ulong handle,uint index,uint eStatType,ref ulong pStatValue); - public abstract uint GetQueryUGCNumAdditionalPreviews(ulong handle,uint index); - public abstract bool GetQueryUGCAdditionalPreview(ulong handle,uint index,uint previewIndex,out string pchURLOrVideoID,out string pchOriginalFileName,uint cchOriginalFileNameSize,ref uint pPreviewType); - public abstract uint GetQueryUGCNumKeyValueTags(ulong handle,uint index); - public abstract bool GetQueryUGCKeyValueTag(ulong handle,uint index,uint keyValueTagIndex,out string pchKey,out string pchValue); - public abstract bool ReleaseQueryUGCRequest(ulong handle); - public abstract bool AddRequiredTag(ulong handle,string pTagName); - public abstract bool AddExcludedTag(ulong handle,string pTagName); - public abstract bool SetReturnOnlyIDs(ulong handle,bool bReturnOnlyIDs); - public abstract bool SetReturnKeyValueTags(ulong handle,bool bReturnKeyValueTags); - public abstract bool SetReturnLongDescription(ulong handle,bool bReturnLongDescription); - public abstract bool SetReturnMetadata(ulong handle,bool bReturnMetadata); - public abstract bool SetReturnChildren(ulong handle,bool bReturnChildren); - public abstract bool SetReturnAdditionalPreviews(ulong handle,bool bReturnAdditionalPreviews); - public abstract bool SetReturnTotalOnly(ulong handle,bool bReturnTotalOnly); - public abstract bool SetLanguage(ulong handle,string pchLanguage); - public abstract bool SetAllowCachedResponse(ulong handle,uint unMaxAgeSeconds); - public abstract bool SetCloudFileNameFilter(ulong handle,string pMatchCloudFileName); - public abstract bool SetMatchAnyTag(ulong handle,bool bMatchAnyTag); - public abstract bool SetSearchText(ulong handle,string pSearchText); - public abstract bool SetRankedByTrendDays(ulong handle,uint unDays); - public abstract bool AddRequiredKeyValueTag(ulong handle,string pKey,string pValue); - public abstract ulong RequestUGCDetails(ulong nPublishedFileID,uint unMaxAgeSeconds); - public abstract ulong CreateItem(uint nConsumerAppId,uint eFileType); - public abstract ulong StartItemUpdate(uint nConsumerAppId,ulong nPublishedFileID); - public abstract bool SetItemTitle(ulong handle,string pchTitle); - public abstract bool SetItemDescription(ulong handle,string pchDescription); - public abstract bool SetItemUpdateLanguage(ulong handle,string pchLanguage); - public abstract bool SetItemMetadata(ulong handle,string pchMetaData); - public abstract bool SetItemVisibility(ulong handle,uint eVisibility); - public abstract bool SetItemTags(ulong updateHandle,ref SteamParamStringArray_t pTags); - public abstract bool SetItemContent(ulong handle,string pszContentFolder); - public abstract bool SetItemPreview(ulong handle,string pszPreviewFile); - public abstract bool RemoveItemKeyValueTags(ulong handle,string pchKey); - public abstract bool AddItemKeyValueTag(ulong handle,string pchKey,string pchValue); - public abstract bool AddItemPreviewFile(ulong handle,string pszPreviewFile,uint type); - public abstract bool AddItemPreviewVideo(ulong handle,string pszVideoID); - public abstract bool UpdateItemPreviewFile(ulong handle,uint index,string pszPreviewFile); - public abstract bool UpdateItemPreviewVideo(ulong handle,uint index,string pszVideoID); - public abstract bool RemoveItemPreview(ulong handle,uint index); - public abstract ulong SubmitItemUpdate(ulong handle,string pchChangeNote); - public abstract uint GetItemUpdateProgress(ulong handle,ref ulong punBytesProcessed,ref ulong punBytesTotal); - public abstract ulong SetUserItemVote(ulong nPublishedFileID,bool bVoteUp); - public abstract ulong GetUserItemVote(ulong nPublishedFileID); - public abstract ulong AddItemToFavorites(uint nAppId,ulong nPublishedFileID); - public abstract ulong RemoveItemFromFavorites(uint nAppId,ulong nPublishedFileID); - public abstract ulong SubscribeItem(ulong nPublishedFileID); - public abstract ulong UnsubscribeItem(ulong nPublishedFileID); - public abstract uint GetNumSubscribedItems(); - public abstract uint GetSubscribedItems(ref ulong pvecPublishedFileID,uint cMaxEntries); - public abstract uint GetItemState(ulong nPublishedFileID); - public abstract bool GetItemInstallInfo(ulong nPublishedFileID,ref ulong punSizeOnDisk,out string pchFolder,ref uint punTimeStamp); - public abstract bool GetItemDownloadInfo(ulong nPublishedFileID,ref ulong punBytesDownloaded,ref ulong punBytesTotal); - public abstract bool DownloadItem(ulong nPublishedFileID,bool bHighPriority); - public abstract bool BInitWorkshopForGameServer(uint unWorkshopDepotID,string pszFolder); - public abstract void SuspendDownloads(bool bSuspend); - public abstract ulong StartPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs); - public abstract ulong StopPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs); - public abstract ulong StopPlaytimeTrackingForAllItems(); - } - - - public abstract class ISteamAppList - { - public abstract IntPtr GetIntPtr(); - public abstract uint GetNumInstalledApps(); - public abstract uint GetInstalledApps(ref uint pvecAppID,uint unMaxAppIDs); - public abstract int GetAppName(uint nAppID,System.Text.StringBuilder pchName,int cchNameMax); - public abstract int GetAppInstallDir(uint nAppID,string pchDirectory,int cchNameMax); - public abstract int GetAppBuildId(uint nAppID); - } - - - public abstract class ISteamHTMLSurface - { - public abstract IntPtr GetIntPtr(); - public abstract void DestructISteamHTMLSurface(); - public abstract bool Init(); - public abstract bool Shutdown(); - public abstract ulong CreateBrowser(string pchUserAgent,string pchUserCSS); - public abstract void RemoveBrowser(uint unBrowserHandle); - public abstract void LoadURL(uint unBrowserHandle,string pchURL,string pchPostData); - public abstract void SetSize(uint unBrowserHandle,uint unWidth,uint unHeight); - public abstract void StopLoad(uint unBrowserHandle); - public abstract void Reload(uint unBrowserHandle); - public abstract void GoBack(uint unBrowserHandle); - public abstract void GoForward(uint unBrowserHandle); - public abstract void AddHeader(uint unBrowserHandle,string pchKey,string pchValue); - public abstract void ExecuteJavascript(uint unBrowserHandle,string pchScript); - public abstract void MouseUp(uint unBrowserHandle,uint eMouseButton); - public abstract void MouseDown(uint unBrowserHandle,uint eMouseButton); - public abstract void MouseDoubleClick(uint unBrowserHandle,uint eMouseButton); - public abstract void MouseMove(uint unBrowserHandle,int x,int y); - public abstract void MouseWheel(uint unBrowserHandle,int nDelta); - public abstract void KeyDown(uint unBrowserHandle,uint nNativeKeyCode,uint eHTMLKeyModifiers); - public abstract void KeyUp(uint unBrowserHandle,uint nNativeKeyCode,uint eHTMLKeyModifiers); - public abstract void KeyChar(uint unBrowserHandle,uint cUnicodeChar,uint eHTMLKeyModifiers); - public abstract void SetHorizontalScroll(uint unBrowserHandle,uint nAbsolutePixelScroll); - public abstract void SetVerticalScroll(uint unBrowserHandle,uint nAbsolutePixelScroll); - public abstract void SetKeyFocus(uint unBrowserHandle,bool bHasKeyFocus); - public abstract void ViewSource(uint unBrowserHandle); - public abstract void CopyToClipboard(uint unBrowserHandle); - public abstract void PasteFromClipboard(uint unBrowserHandle); - public abstract void Find(uint unBrowserHandle,string pchSearchStr,bool bCurrentlyInFind,bool bReverse); - public abstract void StopFind(uint unBrowserHandle); - public abstract void GetLinkAtPosition(uint unBrowserHandle,int x,int y); - public abstract void SetCookie(string pchHostname,string pchKey,string pchValue,string pchPath,ulong nExpires,bool bSecure,bool bHTTPOnly); - public abstract void SetPageScaleFactor(uint unBrowserHandle,float flZoom,int nPointX,int nPointY); - public abstract void SetBackgroundMode(uint unBrowserHandle,bool bBackgroundMode); - public abstract void AllowStartRequest(uint unBrowserHandle,bool bAllowed); - public abstract void JSDialogResponse(uint unBrowserHandle,bool bResult); - } - - - public abstract class ISteamInventory - { - public abstract IntPtr GetIntPtr(); - public abstract uint GetResultStatus(int resultHandle); - public abstract bool GetResultItems(int resultHandle,out SteamItemDetails_t [] pOutItemsArray); - public abstract uint GetResultTimestamp(int resultHandle); - public abstract bool CheckResultSteamID(int resultHandle,ulong steamIDExpected); - public abstract void DestroyResult(int resultHandle); - public abstract bool GetAllItems(ref int pResultHandle); - public abstract bool GetItemsByID(ref int pResultHandle,ulong [] pInstanceIDs); - public abstract bool SerializeResult(int resultHandle,IntPtr pOutBuffer,ref uint punOutBufferSize); - public abstract bool DeserializeResult(ref int pOutResultHandle,IntPtr pBuffer,uint unBufferSize,bool bRESERVED_MUST_BE_FALSE); - public abstract bool GenerateItems(ref int pResultHandle,int [] pArrayItemDefs,uint [] punArrayQuantity); - public abstract bool GrantPromoItems(ref int pResultHandle); - public abstract bool AddPromoItem(ref int pResultHandle,int itemDef); - public abstract bool AddPromoItems(ref int pResultHandle,int [] pArrayItemDefs); - public abstract bool ConsumeItem(ref int pResultHandle,ulong itemConsume,uint unQuantity); - public abstract bool ExchangeItems(ref int pResultHandle,int [] pArrayGenerate,uint [] punArrayGenerateQuantity,ulong [] pArrayDestroy,uint [] punArrayDestroyQuantity); - public abstract bool TransferItemQuantity(ref int pResultHandle,ulong itemIdSource,uint unQuantity,ulong itemIdDest); - public abstract void SendItemDropHeartbeat(); - public abstract bool TriggerItemDrop(ref int pResultHandle,int dropListDefinition); - public abstract bool TradeItems(ref int pResultHandle,ulong steamIDTradePartner,ulong [] pArrayGive,uint [] pArrayGiveQuantity,ulong [] pArrayGet,uint [] pArrayGetQuantity); - public abstract bool LoadItemDefinitions(); - public abstract bool GetItemDefinitionIDs(out int [] pItemDefIDs); - public abstract bool GetItemDefinitionProperty(int iDefinition,string pchPropertyName,out string pchValueBuffer); - } - - - public abstract class ISteamVideo - { - public abstract IntPtr GetIntPtr(); - public abstract void GetVideoURL(uint unVideoAppID); - public abstract bool IsBroadcasting(ref int pnNumViewers); - } - - - public abstract class ISteamGameServer - { - public abstract IntPtr GetIntPtr(); - public abstract bool InitGameServer(uint unIP,char usGamePort,char usQueryPort,uint unFlags,uint nGameAppId,string pchVersionString); - public abstract void SetProduct(string pszProduct); - public abstract void SetGameDescription(string pszGameDescription); - public abstract void SetModDir(string pszModDir); - public abstract void SetDedicatedServer(bool bDedicated); - public abstract void LogOn(string pszToken); - public abstract void LogOnAnonymous(); - public abstract void LogOff(); - public abstract bool BLoggedOn(); - public abstract bool BSecure(); - public abstract ulong GetSteamID(); - public abstract bool WasRestartRequested(); - public abstract void SetMaxPlayerCount(int cPlayersMax); - public abstract void SetBotPlayerCount(int cBotplayers); - public abstract void SetServerName(string pszServerName); - public abstract void SetMapName(string pszMapName); - public abstract void SetPasswordProtected(bool bPasswordProtected); - public abstract void SetSpectatorPort(char unSpectatorPort); - public abstract void SetSpectatorServerName(string pszSpectatorServerName); - public abstract void ClearAllKeyValues(); - public abstract void SetKeyValue(string pKey,string pValue); - public abstract void SetGameTags(string pchGameTags); - public abstract void SetGameData(string pchGameData); - public abstract void SetRegion(string pszRegion); - public abstract bool SendUserConnectAndAuthenticate(uint unIPClient,IntPtr pvAuthBlob,uint cubAuthBlobSize,ref CSteamID pSteamIDUser); - public abstract ulong CreateUnauthenticatedUserConnection(); - public abstract void SendUserDisconnect(ulong steamIDUser); - public abstract bool BUpdateUserData(ulong steamIDUser,string pchPlayerName,uint uScore); - public abstract uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket); - public abstract uint BeginAuthSession(IntPtr pAuthTicket,int cbAuthTicket,ulong steamID); - public abstract void EndAuthSession(ulong steamID); - public abstract void CancelAuthTicket(uint hAuthTicket); - public abstract uint UserHasLicenseForApp(ulong steamID,uint appID); - public abstract bool RequestUserGroupStatus(ulong steamIDUser,ulong steamIDGroup); - public abstract void GetGameplayStats(); - public abstract ulong GetServerReputation(); - public abstract uint GetPublicIP(); - public abstract bool HandleIncomingPacket(IntPtr pData,int cbData,uint srcIP,char srcPort); - public abstract int GetNextOutgoingPacket(IntPtr pOut,int cbMaxOut,ref uint pNetAdr,ref char pPort); - public abstract void EnableHeartbeats(bool bActive); - public abstract void SetHeartbeatInterval(int iHeartbeatInterval); - public abstract void ForceHeartbeat(); - public abstract ulong AssociateWithClan(ulong steamIDClan); - public abstract ulong ComputeNewPlayerCompatibility(ulong steamIDNewPlayer); - } - - - public abstract class ISteamGameServerStats - { - public abstract IntPtr GetIntPtr(); - public abstract ulong RequestUserStats(ulong steamIDUser); - public abstract bool GetUserStat(ulong steamIDUser,string pchName,ref int pData); - public abstract bool GetUserStat0(ulong steamIDUser,string pchName,ref float pData); - public abstract bool GetUserAchievement(ulong steamIDUser,string pchName,ref bool pbAchieved); - public abstract bool SetUserStat(ulong steamIDUser,string pchName,int nData); - public abstract bool SetUserStat0(ulong steamIDUser,string pchName,float fData); - public abstract bool UpdateUserAvgRateStat(ulong steamIDUser,string pchName,float flCountThisSession,double dSessionLength); - public abstract bool SetUserAchievement(ulong steamIDUser,string pchName); - public abstract bool ClearUserAchievement(ulong steamIDUser,string pchName); - public abstract ulong StoreUserStats(ulong steamIDUser); - } - - -public class CSteamClient : ISteamClient -{ -public CSteamClient(IntPtr SteamClient) -{ - m_pSteamClient = SteamClient; -} -IntPtr m_pSteamClient; - -public override IntPtr GetIntPtr() { return m_pSteamClient; } - -private void CheckIfUsable() -{ - if (m_pSteamClient == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint CreateSteamPipe() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamClient_CreateSteamPipe(m_pSteamClient); - return result; -} -public override bool BReleaseSteamPipe(uint hSteamPipe) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamClient_BReleaseSteamPipe(m_pSteamClient,hSteamPipe); - return result; -} -public override uint ConnectToGlobalUser(uint hSteamPipe) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamClient_ConnectToGlobalUser(m_pSteamClient,hSteamPipe); - return result; -} -public override uint CreateLocalUser(ref uint phSteamPipe,uint eAccountType) -{ - CheckIfUsable(); - phSteamPipe = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamClient_CreateLocalUser(m_pSteamClient,ref phSteamPipe,eAccountType); - return result; -} -public override void ReleaseUser(uint hSteamPipe,uint hUser) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamClient_ReleaseUser(m_pSteamClient,hSteamPipe,hUser); -} -public override ISteamUser GetISteamUser(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUser(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamUser) Marshal.PtrToStructure(result, typeof(ISteamUser)); -} -public override ISteamGameServer GetISteamGameServer(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamGameServer(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamGameServer) Marshal.PtrToStructure(result, typeof(ISteamGameServer)); -} -public override void SetLocalIPBinding(uint unIP,char usPort) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamClient_SetLocalIPBinding(m_pSteamClient,unIP,usPort); -} -public override ISteamFriends GetISteamFriends(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamFriends(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamFriends) Marshal.PtrToStructure(result, typeof(ISteamFriends)); -} -public override ISteamUtils GetISteamUtils(uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUtils(m_pSteamClient,hSteamPipe,pchVersion); - return (ISteamUtils) Marshal.PtrToStructure(result, typeof(ISteamUtils)); -} -public override ISteamMatchmaking GetISteamMatchmaking(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamMatchmaking(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamMatchmaking) Marshal.PtrToStructure(result, typeof(ISteamMatchmaking)); -} -public override ISteamMatchmakingServers GetISteamMatchmakingServers(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamMatchmakingServers(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamMatchmakingServers) Marshal.PtrToStructure(result, typeof(ISteamMatchmakingServers)); -} -public override IntPtr GetISteamGenericInterface(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamGenericInterface(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (IntPtr) Marshal.PtrToStructure(result, typeof(IntPtr)); -} -public override ISteamUserStats GetISteamUserStats(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUserStats(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamUserStats) Marshal.PtrToStructure(result, typeof(ISteamUserStats)); -} -public override ISteamGameServerStats GetISteamGameServerStats(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamGameServerStats(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamGameServerStats) Marshal.PtrToStructure(result, typeof(ISteamGameServerStats)); -} -public override ISteamApps GetISteamApps(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamApps(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamApps) Marshal.PtrToStructure(result, typeof(ISteamApps)); -} -public override ISteamNetworking GetISteamNetworking(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamNetworking(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamNetworking) Marshal.PtrToStructure(result, typeof(ISteamNetworking)); -} -public override ISteamRemoteStorage GetISteamRemoteStorage(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamRemoteStorage(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamRemoteStorage) Marshal.PtrToStructure(result, typeof(ISteamRemoteStorage)); -} -public override ISteamScreenshots GetISteamScreenshots(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamScreenshots(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamScreenshots) Marshal.PtrToStructure(result, typeof(ISteamScreenshots)); -} -public override uint GetIPCCallCount() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamClient_GetIPCCallCount(m_pSteamClient); - return result; -} -public override void SetWarningMessageHook(IntPtr pFunction) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamClient_SetWarningMessageHook(m_pSteamClient,pFunction); -} -public override bool BShutdownIfAllPipesClosed() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamClient_BShutdownIfAllPipesClosed(m_pSteamClient); - return result; -} -public override ISteamHTTP GetISteamHTTP(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamHTTP(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamHTTP) Marshal.PtrToStructure(result, typeof(ISteamHTTP)); -} -public override ISteamUnifiedMessages GetISteamUnifiedMessages(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUnifiedMessages(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamUnifiedMessages) Marshal.PtrToStructure(result, typeof(ISteamUnifiedMessages)); -} -public override ISteamController GetISteamController(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamController(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamController) Marshal.PtrToStructure(result, typeof(ISteamController)); -} -public override ISteamUGC GetISteamUGC(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUGC(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamUGC) Marshal.PtrToStructure(result, typeof(ISteamUGC)); -} -public override ISteamAppList GetISteamAppList(uint hSteamUser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamAppList(m_pSteamClient,hSteamUser,hSteamPipe,pchVersion); - return (ISteamAppList) Marshal.PtrToStructure(result, typeof(ISteamAppList)); -} -public override ISteamMusic GetISteamMusic(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamMusic(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamMusic) Marshal.PtrToStructure(result, typeof(ISteamMusic)); -} -public override ISteamMusicRemote GetISteamMusicRemote(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamMusicRemote(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamMusicRemote) Marshal.PtrToStructure(result, typeof(ISteamMusicRemote)); -} -public override ISteamHTMLSurface GetISteamHTMLSurface(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamHTMLSurface(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamHTMLSurface) Marshal.PtrToStructure(result, typeof(ISteamHTMLSurface)); -} -public override ISteamInventory GetISteamInventory(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamInventory(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamInventory) Marshal.PtrToStructure(result, typeof(ISteamInventory)); -} -public override ISteamVideo GetISteamVideo(uint hSteamuser,uint hSteamPipe,string pchVersion) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamVideo(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion); - return (ISteamVideo) Marshal.PtrToStructure(result, typeof(ISteamVideo)); -} -} - - -public class CSteamUser : ISteamUser -{ -public CSteamUser(IntPtr SteamUser) -{ - m_pSteamUser = SteamUser; -} -IntPtr m_pSteamUser; - -public override IntPtr GetIntPtr() { return m_pSteamUser; } - -private void CheckIfUsable() -{ - if (m_pSteamUser == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint GetHSteamUser() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetHSteamUser(m_pSteamUser); - return result; -} -public override bool BLoggedOn() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BLoggedOn(m_pSteamUser); - return result; -} -public override ulong GetSteamID() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUser_GetSteamID(m_pSteamUser); - return result; -} -public override int InitiateGameConnection(IntPtr pAuthBlob,int cbMaxAuthBlob,ulong steamIDGameServer,uint unIPServer,char usPortServer,bool bSecure) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUser_InitiateGameConnection(m_pSteamUser,pAuthBlob,cbMaxAuthBlob,steamIDGameServer,unIPServer,usPortServer,bSecure); - return result; -} -public override void TerminateGameConnection(uint unIPServer,char usPortServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_TerminateGameConnection(m_pSteamUser,unIPServer,usPortServer); -} -public override void TrackAppUsageEvent(ulong gameID,int eAppUsageEvent,string pchExtraInfo) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_TrackAppUsageEvent(m_pSteamUser,gameID,eAppUsageEvent,pchExtraInfo); -} -public override bool GetUserDataFolder(string pchBuffer,int cubBuffer) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_GetUserDataFolder(m_pSteamUser,pchBuffer,cubBuffer); - return result; -} -public override void StartVoiceRecording() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_StartVoiceRecording(m_pSteamUser); -} -public override void StopVoiceRecording() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_StopVoiceRecording(m_pSteamUser); -} -public override uint GetAvailableVoice(ref uint pcbCompressed,ref uint pcbUncompressed,uint nUncompressedVoiceDesiredSampleRate) -{ - CheckIfUsable(); - pcbCompressed = 0; - pcbUncompressed = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetAvailableVoice(m_pSteamUser,ref pcbCompressed,ref pcbUncompressed,nUncompressedVoiceDesiredSampleRate); - return result; -} -public override uint GetVoice(bool bWantCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,bool bWantUncompressed,IntPtr pUncompressedDestBuffer,uint cbUncompressedDestBufferSize,ref uint nUncompressBytesWritten,uint nUncompressedVoiceDesiredSampleRate) -{ - CheckIfUsable(); - nBytesWritten = 0; - nUncompressBytesWritten = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetVoice(m_pSteamUser,bWantCompressed,pDestBuffer,cbDestBufferSize,ref nBytesWritten,bWantUncompressed,pUncompressedDestBuffer,cbUncompressedDestBufferSize,ref nUncompressBytesWritten,nUncompressedVoiceDesiredSampleRate); - return result; -} -public override uint DecompressVoice(IntPtr pCompressed,uint cbCompressed,IntPtr pDestBuffer,uint cbDestBufferSize,ref uint nBytesWritten,uint nDesiredSampleRate) -{ - CheckIfUsable(); - nBytesWritten = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUser_DecompressVoice(m_pSteamUser,pCompressed,cbCompressed,pDestBuffer,cbDestBufferSize,ref nBytesWritten,nDesiredSampleRate); - return result; -} -public override uint GetVoiceOptimalSampleRate() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetVoiceOptimalSampleRate(m_pSteamUser); - return result; -} -public override uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket) -{ - CheckIfUsable(); - pcbTicket = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUser_GetAuthSessionTicket(m_pSteamUser,pTicket,cbMaxTicket,ref pcbTicket); - return result; -} -public override uint BeginAuthSession(IntPtr pAuthTicket,int cbAuthTicket,ulong steamID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUser_BeginAuthSession(m_pSteamUser,pAuthTicket,cbAuthTicket,steamID); - return result; -} -public override void EndAuthSession(ulong steamID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_EndAuthSession(m_pSteamUser,steamID); -} -public override void CancelAuthTicket(uint hAuthTicket) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_CancelAuthTicket(m_pSteamUser,hAuthTicket); -} -public override uint UserHasLicenseForApp(ulong steamID,uint appID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUser_UserHasLicenseForApp(m_pSteamUser,steamID,appID); - return result; -} -public override bool BIsBehindNAT() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsBehindNAT(m_pSteamUser); - return result; -} -public override void AdvertiseGame(ulong steamIDGameServer,uint unIPServer,char usPortServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUser_AdvertiseGame(m_pSteamUser,steamIDGameServer,unIPServer,usPortServer); -} -public override ulong RequestEncryptedAppTicket(IntPtr pDataToInclude,int cbDataToInclude) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUser_RequestEncryptedAppTicket(m_pSteamUser,pDataToInclude,cbDataToInclude); - return result; -} -public override bool GetEncryptedAppTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket) -{ - CheckIfUsable(); - pcbTicket = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUser_GetEncryptedAppTicket(m_pSteamUser,pTicket,cbMaxTicket,ref pcbTicket); - return result; -} -public override int GetGameBadgeLevel(int nSeries,bool bFoil) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUser_GetGameBadgeLevel(m_pSteamUser,nSeries,bFoil); - return result; -} -public override int GetPlayerSteamLevel() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUser_GetPlayerSteamLevel(m_pSteamUser); - return result; -} -public override ulong RequestStoreAuthURL(string pchRedirectURL) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUser_RequestStoreAuthURL(m_pSteamUser,pchRedirectURL); - return result; -} -public override bool BIsPhoneVerified() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsPhoneVerified(m_pSteamUser); - return result; -} -public override bool BIsTwoFactorEnabled() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsTwoFactorEnabled(m_pSteamUser); - return result; -} -public override bool BIsPhoneIdentifying() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsPhoneIdentifying(m_pSteamUser); - return result; -} -public override bool BIsPhoneRequiringVerification() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUser_BIsPhoneRequiringVerification(m_pSteamUser); - return result; -} -} - - -public class CSteamFriends : ISteamFriends -{ -public CSteamFriends(IntPtr SteamFriends) -{ - m_pSteamFriends = SteamFriends; -} -IntPtr m_pSteamFriends; - -public override IntPtr GetIntPtr() { return m_pSteamFriends; } - -private void CheckIfUsable() -{ - if (m_pSteamFriends == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override string GetPersonaName() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetPersonaName(m_pSteamFriends); - return Marshal.PtrToStringAnsi(result); -} -public override ulong SetPersonaName(string pchPersonaName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_SetPersonaName(m_pSteamFriends,pchPersonaName); - return result; -} -public override uint GetPersonaState() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetPersonaState(m_pSteamFriends); - return result; -} -public override int GetFriendCount(int iFriendFlags) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendCount(m_pSteamFriends,iFriendFlags); - return result; -} -public override ulong GetFriendByIndex(int iFriend,int iFriendFlags) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendByIndex(m_pSteamFriends,iFriend,iFriendFlags); - return result; -} -public override uint GetFriendRelationship(ulong steamIDFriend) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendRelationship(m_pSteamFriends,steamIDFriend); - return result; -} -public override uint GetFriendPersonaState(ulong steamIDFriend) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendPersonaState(m_pSteamFriends,steamIDFriend); - return result; -} -public override string GetFriendPersonaName(ulong steamIDFriend) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendPersonaName(m_pSteamFriends,steamIDFriend); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetFriendGamePlayed(ulong steamIDFriend,out FriendGameInfo_t pFriendGameInfo) -{ - CheckIfUsable(); - pFriendGameInfo = new FriendGameInfo_t(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendGamePlayed(m_pSteamFriends,steamIDFriend,ref pFriendGameInfo); - return result; -} -public override string GetFriendPersonaNameHistory(ulong steamIDFriend,int iPersonaName) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendPersonaNameHistory(m_pSteamFriends,steamIDFriend,iPersonaName); - return Marshal.PtrToStringAnsi(result); -} -public override int GetFriendSteamLevel(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendSteamLevel(m_pSteamFriends,steamIDFriend); - return result; -} -public override string GetPlayerNickname(ulong steamIDPlayer) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetPlayerNickname(m_pSteamFriends,steamIDPlayer); - return Marshal.PtrToStringAnsi(result); -} -public override int GetFriendsGroupCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupCount(m_pSteamFriends); - return result; -} -public override char GetFriendsGroupIDByIndex(int iFG) -{ - CheckIfUsable(); - char result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex(m_pSteamFriends,iFG); - return result; -} -public override string GetFriendsGroupName(char friendsGroupID) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupName(m_pSteamFriends,friendsGroupID); - return Marshal.PtrToStringAnsi(result); -} -public override int GetFriendsGroupMembersCount(char friendsGroupID) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupMembersCount(m_pSteamFriends,friendsGroupID); - return result; -} -public override void GetFriendsGroupMembersList(char friendsGroupID,out CSteamID [] pOutSteamIDMembers) -{ - CheckIfUsable(); - int nMembersCount = GetFriendsGroupMembersCount (friendsGroupID); - pOutSteamIDMembers = new CSteamID[nMembersCount]; - NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendsGroupMembersList(m_pSteamFriends,friendsGroupID,pOutSteamIDMembers,nMembersCount); -} -public override bool HasFriend(ulong steamIDFriend,int iFriendFlags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_HasFriend(m_pSteamFriends,steamIDFriend,iFriendFlags); - return result; -} -public override int GetClanCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanCount(m_pSteamFriends); - return result; -} -public override ulong GetClanByIndex(int iClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanByIndex(m_pSteamFriends,iClan); - return result; -} -public override string GetClanName(ulong steamIDClan) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanName(m_pSteamFriends,steamIDClan); - return Marshal.PtrToStringAnsi(result); -} -public override string GetClanTag(ulong steamIDClan) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanTag(m_pSteamFriends,steamIDClan); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetClanActivityCounts(ulong steamIDClan,ref int pnOnline,ref int pnInGame,ref int pnChatting) -{ - CheckIfUsable(); - pnOnline = 0; - pnInGame = 0; - pnChatting = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanActivityCounts(m_pSteamFriends,steamIDClan,ref pnOnline,ref pnInGame,ref pnChatting); - return result; -} -public override ulong DownloadClanActivityCounts(CSteamID [] psteamIDClans) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_DownloadClanActivityCounts(m_pSteamFriends,psteamIDClans,(int) psteamIDClans.Length); - return result; -} -public override int GetFriendCountFromSource(ulong steamIDSource) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendCountFromSource(m_pSteamFriends,steamIDSource); - return result; -} -public override ulong GetFriendFromSourceByIndex(ulong steamIDSource,int iFriend) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendFromSourceByIndex(m_pSteamFriends,steamIDSource,iFriend); - return result; -} -public override bool IsUserInSource(ulong steamIDUser,ulong steamIDSource) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_IsUserInSource(m_pSteamFriends,steamIDUser,steamIDSource); - return result; -} -public override void SetInGameVoiceSpeaking(ulong steamIDUser,bool bSpeaking) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_SetInGameVoiceSpeaking(m_pSteamFriends,steamIDUser,bSpeaking); -} -public override void ActivateGameOverlay(string pchDialog) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlay(m_pSteamFriends,pchDialog); -} -public override void ActivateGameOverlayToUser(string pchDialog,ulong steamID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlayToUser(m_pSteamFriends,pchDialog,steamID); -} -public override void ActivateGameOverlayToWebPage(string pchURL) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage(m_pSteamFriends,pchURL); -} -public override void ActivateGameOverlayToStore(uint nAppID,char eFlag) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlayToStore(m_pSteamFriends,nAppID,eFlag); -} -public override void SetPlayedWith(ulong steamIDUserPlayedWith) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_SetPlayedWith(m_pSteamFriends,steamIDUserPlayedWith); -} -public override void ActivateGameOverlayInviteDialog(ulong steamIDLobby) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(m_pSteamFriends,steamIDLobby); -} -public override int GetSmallFriendAvatar(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetSmallFriendAvatar(m_pSteamFriends,steamIDFriend); - return result; -} -public override int GetMediumFriendAvatar(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetMediumFriendAvatar(m_pSteamFriends,steamIDFriend); - return result; -} -public override int GetLargeFriendAvatar(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetLargeFriendAvatar(m_pSteamFriends,steamIDFriend); - return result; -} -public override bool RequestUserInformation(ulong steamIDUser,bool bRequireNameOnly) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_RequestUserInformation(m_pSteamFriends,steamIDUser,bRequireNameOnly); - return result; -} -public override ulong RequestClanOfficerList(ulong steamIDClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_RequestClanOfficerList(m_pSteamFriends,steamIDClan); - return result; -} -public override ulong GetClanOwner(ulong steamIDClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanOwner(m_pSteamFriends,steamIDClan); - return result; -} -public override int GetClanOfficerCount(ulong steamIDClan) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanOfficerCount(m_pSteamFriends,steamIDClan); - return result; -} -public override ulong GetClanOfficerByIndex(ulong steamIDClan,int iOfficer) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanOfficerByIndex(m_pSteamFriends,steamIDClan,iOfficer); - return result; -} -public override uint GetUserRestrictions() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetUserRestrictions(m_pSteamFriends); - return result; -} -public override bool SetRichPresence(string pchKey,string pchValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_SetRichPresence(m_pSteamFriends,pchKey,pchValue); - return result; -} -public override void ClearRichPresence() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_ClearRichPresence(m_pSteamFriends); -} -public override string GetFriendRichPresence(ulong steamIDFriend,string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendRichPresence(m_pSteamFriends,steamIDFriend,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override int GetFriendRichPresenceKeyCount(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount(m_pSteamFriends,steamIDFriend); - return result; -} -public override string GetFriendRichPresenceKeyByIndex(ulong steamIDFriend,int iKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex(m_pSteamFriends,steamIDFriend,iKey); - return Marshal.PtrToStringAnsi(result); -} -public override void RequestFriendRichPresence(ulong steamIDFriend) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamFriends_RequestFriendRichPresence(m_pSteamFriends,steamIDFriend); -} -public override bool InviteUserToGame(ulong steamIDFriend,string pchConnectString) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_InviteUserToGame(m_pSteamFriends,steamIDFriend,pchConnectString); - return result; -} -public override int GetCoplayFriendCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetCoplayFriendCount(m_pSteamFriends); - return result; -} -public override ulong GetCoplayFriend(int iCoplayFriend) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetCoplayFriend(m_pSteamFriends,iCoplayFriend); - return result; -} -public override int GetFriendCoplayTime(ulong steamIDFriend) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendCoplayTime(m_pSteamFriends,steamIDFriend); - return result; -} -public override uint GetFriendCoplayGame(ulong steamIDFriend) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendCoplayGame(m_pSteamFriends,steamIDFriend); - return result; -} -public override ulong JoinClanChatRoom(ulong steamIDClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_JoinClanChatRoom(m_pSteamFriends,steamIDClan); - return result; -} -public override bool LeaveClanChatRoom(ulong steamIDClan) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_LeaveClanChatRoom(m_pSteamFriends,steamIDClan); - return result; -} -public override int GetClanChatMemberCount(ulong steamIDClan) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanChatMemberCount(m_pSteamFriends,steamIDClan); - return result; -} -public override ulong GetChatMemberByIndex(ulong steamIDClan,int iUser) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetChatMemberByIndex(m_pSteamFriends,steamIDClan,iUser); - return result; -} -public override bool SendClanChatMessage(ulong steamIDClanChat,string pchText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_SendClanChatMessage(m_pSteamFriends,steamIDClanChat,pchText); - return result; -} -public override int GetClanChatMessage(ulong steamIDClanChat,int iMessage,IntPtr prgchText,int cchTextMax,ref uint peChatEntryType,out CSteamID psteamidChatter) -{ - CheckIfUsable(); - peChatEntryType = 0; - psteamidChatter = new CSteamID(); - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetClanChatMessage(m_pSteamFriends,steamIDClanChat,iMessage,prgchText,cchTextMax,ref peChatEntryType,ref psteamidChatter); - return result; -} -public override bool IsClanChatAdmin(ulong steamIDClanChat,ulong steamIDUser) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_IsClanChatAdmin(m_pSteamFriends,steamIDClanChat,steamIDUser); - return result; -} -public override bool IsClanChatWindowOpenInSteam(ulong steamIDClanChat) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam(m_pSteamFriends,steamIDClanChat); - return result; -} -public override bool OpenClanChatWindowInSteam(ulong steamIDClanChat) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_OpenClanChatWindowInSteam(m_pSteamFriends,steamIDClanChat); - return result; -} -public override bool CloseClanChatWindowInSteam(ulong steamIDClanChat) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_CloseClanChatWindowInSteam(m_pSteamFriends,steamIDClanChat); - return result; -} -public override bool SetListenForFriendsMessages(bool bInterceptEnabled) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_SetListenForFriendsMessages(m_pSteamFriends,bInterceptEnabled); - return result; -} -public override bool ReplyToFriendMessage(ulong steamIDFriend,string pchMsgToSend) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamFriends_ReplyToFriendMessage(m_pSteamFriends,steamIDFriend,pchMsgToSend); - return result; -} -public override int GetFriendMessage(ulong steamIDFriend,int iMessageID,IntPtr pvData,int cubData,ref uint peChatEntryType) -{ - CheckIfUsable(); - peChatEntryType = 0; - int result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFriendMessage(m_pSteamFriends,steamIDFriend,iMessageID,pvData,cubData,ref peChatEntryType); - return result; -} -public override ulong GetFollowerCount(ulong steamID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_GetFollowerCount(m_pSteamFriends,steamID); - return result; -} -public override ulong IsFollowing(ulong steamID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_IsFollowing(m_pSteamFriends,steamID); - return result; -} -public override ulong EnumerateFollowingList(uint unStartIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamFriends_EnumerateFollowingList(m_pSteamFriends,unStartIndex); - return result; -} -} - - -public class CSteamUtils : ISteamUtils -{ -public CSteamUtils(IntPtr SteamUtils) -{ - m_pSteamUtils = SteamUtils; -} -IntPtr m_pSteamUtils; - -public override IntPtr GetIntPtr() { return m_pSteamUtils; } - -private void CheckIfUsable() -{ - if (m_pSteamUtils == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint GetSecondsSinceAppActive() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetSecondsSinceAppActive(m_pSteamUtils); - return result; -} -public override uint GetSecondsSinceComputerActive() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetSecondsSinceComputerActive(m_pSteamUtils); - return result; -} -public override int GetConnectedUniverse() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUtils_GetConnectedUniverse(m_pSteamUtils); - return result; -} -public override uint GetServerRealTime() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetServerRealTime(m_pSteamUtils); - return result; -} -public override string GetIPCountry() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUtils_GetIPCountry(m_pSteamUtils); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetImageSize(int iImage,ref uint pnWidth,ref uint pnHeight) -{ - CheckIfUsable(); - pnWidth = 0; - pnHeight = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetImageSize(m_pSteamUtils,iImage,ref pnWidth,ref pnHeight); - return result; -} -public override bool GetImageRGBA(int iImage,IntPtr pubDest,int nDestBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetImageRGBA(m_pSteamUtils,iImage,pubDest,nDestBufferSize); - return result; -} -public override bool GetCSERIPPort(ref uint unIP,ref char usPort) -{ - CheckIfUsable(); - unIP = 0; - usPort = (char) 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetCSERIPPort(m_pSteamUtils,ref unIP,ref usPort); - return result; -} -public override byte GetCurrentBatteryPower() -{ - CheckIfUsable(); - byte result = NativeEntrypoints.SteamAPI_ISteamUtils_GetCurrentBatteryPower(m_pSteamUtils); - return result; -} -public override uint GetAppID() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetAppID(m_pSteamUtils); - return result; -} -public override void SetOverlayNotificationPosition(uint eNotificationPosition) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUtils_SetOverlayNotificationPosition(m_pSteamUtils,eNotificationPosition); -} -public override bool IsAPICallCompleted(ulong hSteamAPICall,ref bool pbFailed) -{ - CheckIfUsable(); - pbFailed = false; - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsAPICallCompleted(m_pSteamUtils,hSteamAPICall,ref pbFailed); - return result; -} -public override int GetAPICallFailureReason(ulong hSteamAPICall) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUtils_GetAPICallFailureReason(m_pSteamUtils,hSteamAPICall); - return result; -} -public override bool GetAPICallResult(ulong hSteamAPICall,IntPtr pCallback,int cubCallback,int iCallbackExpected,ref bool pbFailed) -{ - CheckIfUsable(); - pbFailed = false; - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetAPICallResult(m_pSteamUtils,hSteamAPICall,pCallback,cubCallback,iCallbackExpected,ref pbFailed); - return result; -} -public override uint GetIPCCallCount() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetIPCCallCount(m_pSteamUtils); - return result; -} -public override void SetWarningMessageHook(IntPtr pFunction) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUtils_SetWarningMessageHook(m_pSteamUtils,pFunction); -} -public override bool IsOverlayEnabled() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsOverlayEnabled(m_pSteamUtils); - return result; -} -public override bool BOverlayNeedsPresent() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_BOverlayNeedsPresent(m_pSteamUtils); - return result; -} -public override ulong CheckFileSignature(string szFileName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUtils_CheckFileSignature(m_pSteamUtils,szFileName); - return result; -} -public override bool ShowGamepadTextInput(int eInputMode,int eLineInputMode,string pchDescription,uint unCharMax,string pchExistingText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_ShowGamepadTextInput(m_pSteamUtils,eInputMode,eLineInputMode,pchDescription,unCharMax,pchExistingText); - return result; -} -public override uint GetEnteredGamepadTextLength() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUtils_GetEnteredGamepadTextLength(m_pSteamUtils); - return result; -} -public override bool GetEnteredGamepadTextInput(string pchText,uint cchText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_GetEnteredGamepadTextInput(m_pSteamUtils,pchText,cchText); - return result; -} -public override string GetSteamUILanguage() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUtils_GetSteamUILanguage(m_pSteamUtils); - return Marshal.PtrToStringAnsi(result); -} -public override bool IsSteamRunningInVR() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsSteamRunningInVR(m_pSteamUtils); - return result; -} -public override void SetOverlayNotificationInset(int nHorizontalInset,int nVerticalInset) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUtils_SetOverlayNotificationInset(m_pSteamUtils,nHorizontalInset,nVerticalInset); -} -public override bool IsSteamInBigPictureMode() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsSteamInBigPictureMode(m_pSteamUtils); - return result; -} -public override void StartVRDashboard() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUtils_StartVRDashboard(m_pSteamUtils); -} -} - - -public class CSteamMatchmaking : ISteamMatchmaking -{ -public CSteamMatchmaking(IntPtr SteamMatchmaking) -{ - m_pSteamMatchmaking = SteamMatchmaking; -} -IntPtr m_pSteamMatchmaking; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmaking; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmaking == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override int GetFavoriteGameCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(m_pSteamMatchmaking); - return result; -} -public override bool GetFavoriteGame(int iGame,ref uint pnAppID,ref uint pnIP,ref char pnConnPort,ref char pnQueryPort,ref uint punFlags,ref uint pRTime32LastPlayedOnServer) -{ - CheckIfUsable(); - pnAppID = 0; - pnIP = 0; - pnConnPort = (char) 0; - pnQueryPort = (char) 0; - punFlags = 0; - pRTime32LastPlayedOnServer = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetFavoriteGame(m_pSteamMatchmaking,iGame,ref pnAppID,ref pnIP,ref pnConnPort,ref pnQueryPort,ref punFlags,ref pRTime32LastPlayedOnServer); - return result; -} -public override int AddFavoriteGame(uint nAppID,uint nIP,char nConnPort,char nQueryPort,uint unFlags,uint rTime32LastPlayedOnServer) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddFavoriteGame(m_pSteamMatchmaking,nAppID,nIP,nConnPort,nQueryPort,unFlags,rTime32LastPlayedOnServer); - return result; -} -public override bool RemoveFavoriteGame(uint nAppID,uint nIP,char nConnPort,char nQueryPort,uint unFlags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_RemoveFavoriteGame(m_pSteamMatchmaking,nAppID,nIP,nConnPort,nQueryPort,unFlags); - return result; -} -public override ulong RequestLobbyList() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_RequestLobbyList(m_pSteamMatchmaking); - return result; -} -public override void AddRequestLobbyListStringFilter(string pchKeyToMatch,string pchValueToMatch,uint eComparisonType) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter(m_pSteamMatchmaking,pchKeyToMatch,pchValueToMatch,eComparisonType); -} -public override void AddRequestLobbyListNumericalFilter(string pchKeyToMatch,int nValueToMatch,uint eComparisonType) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter(m_pSteamMatchmaking,pchKeyToMatch,nValueToMatch,eComparisonType); -} -public override void AddRequestLobbyListNearValueFilter(string pchKeyToMatch,int nValueToBeCloseTo) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter(m_pSteamMatchmaking,pchKeyToMatch,nValueToBeCloseTo); -} -public override void AddRequestLobbyListFilterSlotsAvailable(int nSlotsAvailable) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(m_pSteamMatchmaking,nSlotsAvailable); -} -public override void AddRequestLobbyListDistanceFilter(uint eLobbyDistanceFilter) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter(m_pSteamMatchmaking,eLobbyDistanceFilter); -} -public override void AddRequestLobbyListResultCountFilter(int cMaxResults) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter(m_pSteamMatchmaking,cMaxResults); -} -public override void AddRequestLobbyListCompatibleMembersFilter(ulong steamIDLobby) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(m_pSteamMatchmaking,steamIDLobby); -} -public override ulong GetLobbyByIndex(int iLobby) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyByIndex(m_pSteamMatchmaking,iLobby); - return result; -} -public override ulong CreateLobby(uint eLobbyType,int cMaxMembers) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_CreateLobby(m_pSteamMatchmaking,eLobbyType,cMaxMembers); - return result; -} -public override ulong JoinLobby(ulong steamIDLobby) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_JoinLobby(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override void LeaveLobby(ulong steamIDLobby) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_LeaveLobby(m_pSteamMatchmaking,steamIDLobby); -} -public override bool InviteUserToLobby(ulong steamIDLobby,ulong steamIDInvitee) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_InviteUserToLobby(m_pSteamMatchmaking,steamIDLobby,steamIDInvitee); - return result; -} -public override int GetNumLobbyMembers(ulong steamIDLobby) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetNumLobbyMembers(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override ulong GetLobbyMemberByIndex(ulong steamIDLobby,int iMember) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex(m_pSteamMatchmaking,steamIDLobby,iMember); - return result; -} -public override string GetLobbyData(ulong steamIDLobby,string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyData(m_pSteamMatchmaking,steamIDLobby,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override bool SetLobbyData(ulong steamIDLobby,string pchKey,string pchValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyData(m_pSteamMatchmaking,steamIDLobby,pchKey,pchValue); - return result; -} -public override int GetLobbyDataCount(ulong steamIDLobby) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyDataCount(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override bool GetLobbyDataByIndex(ulong steamIDLobby,int iLobbyData,string pchKey,int cchKeyBufferSize,string pchValue,int cchValueBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex(m_pSteamMatchmaking,steamIDLobby,iLobbyData,pchKey,cchKeyBufferSize,pchValue,cchValueBufferSize); - return result; -} -public override bool DeleteLobbyData(ulong steamIDLobby,string pchKey) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_DeleteLobbyData(m_pSteamMatchmaking,steamIDLobby,pchKey); - return result; -} -public override string GetLobbyMemberData(ulong steamIDLobby,ulong steamIDUser,string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyMemberData(m_pSteamMatchmaking,steamIDLobby,steamIDUser,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override void SetLobbyMemberData(ulong steamIDLobby,string pchKey,string pchValue) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyMemberData(m_pSteamMatchmaking,steamIDLobby,pchKey,pchValue); -} -public override bool SendLobbyChatMsg(ulong steamIDLobby,IntPtr pvMsgBody,int cubMsgBody) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SendLobbyChatMsg(m_pSteamMatchmaking,steamIDLobby,pvMsgBody,cubMsgBody); - return result; -} -public override int GetLobbyChatEntry(ulong steamIDLobby,int iChatID,out CSteamID pSteamIDUser,IntPtr pvData,int cubData,ref uint peChatEntryType) -{ - CheckIfUsable(); - pSteamIDUser = new CSteamID(); - peChatEntryType = 0; - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyChatEntry(m_pSteamMatchmaking,steamIDLobby,iChatID,ref pSteamIDUser,pvData,cubData,ref peChatEntryType); - return result; -} -public override bool RequestLobbyData(ulong steamIDLobby) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_RequestLobbyData(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override void SetLobbyGameServer(ulong steamIDLobby,uint unGameServerIP,char unGameServerPort,ulong steamIDGameServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyGameServer(m_pSteamMatchmaking,steamIDLobby,unGameServerIP,unGameServerPort,steamIDGameServer); -} -public override bool GetLobbyGameServer(ulong steamIDLobby,ref uint punGameServerIP,ref char punGameServerPort,out CSteamID psteamIDGameServer) -{ - CheckIfUsable(); - punGameServerIP = 0; - punGameServerPort = (char) 0; - psteamIDGameServer = new CSteamID(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyGameServer(m_pSteamMatchmaking,steamIDLobby,ref punGameServerIP,ref punGameServerPort,ref psteamIDGameServer); - return result; -} -public override bool SetLobbyMemberLimit(ulong steamIDLobby,int cMaxMembers) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit(m_pSteamMatchmaking,steamIDLobby,cMaxMembers); - return result; -} -public override int GetLobbyMemberLimit(ulong steamIDLobby) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override bool SetLobbyType(ulong steamIDLobby,uint eLobbyType) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyType(m_pSteamMatchmaking,steamIDLobby,eLobbyType); - return result; -} -public override bool SetLobbyJoinable(ulong steamIDLobby,bool bLobbyJoinable) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyJoinable(m_pSteamMatchmaking,steamIDLobby,bLobbyJoinable); - return result; -} -public override ulong GetLobbyOwner(ulong steamIDLobby) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_GetLobbyOwner(m_pSteamMatchmaking,steamIDLobby); - return result; -} -public override bool SetLobbyOwner(ulong steamIDLobby,ulong steamIDNewOwner) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLobbyOwner(m_pSteamMatchmaking,steamIDLobby,steamIDNewOwner); - return result; -} -public override bool SetLinkedLobby(ulong steamIDLobby,ulong steamIDLobbyDependent) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmaking_SetLinkedLobby(m_pSteamMatchmaking,steamIDLobby,steamIDLobbyDependent); - return result; -} -} - - -public class CSteamMatchmakingServerListResponse : ISteamMatchmakingServerListResponse -{ -public CSteamMatchmakingServerListResponse(IntPtr SteamMatchmakingServerListResponse) -{ - m_pSteamMatchmakingServerListResponse = SteamMatchmakingServerListResponse; -} -IntPtr m_pSteamMatchmakingServerListResponse; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingServerListResponse; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingServerListResponse == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void ServerResponded(uint hRequest,int iServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServerListResponse_ServerResponded(m_pSteamMatchmakingServerListResponse,hRequest,iServer); -} -public override void ServerFailedToRespond(uint hRequest,int iServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServerListResponse_ServerFailedToRespond(m_pSteamMatchmakingServerListResponse,hRequest,iServer); -} -public override void RefreshComplete(uint hRequest,uint response) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServerListResponse_RefreshComplete(m_pSteamMatchmakingServerListResponse,hRequest,response); -} -} - - -public class CSteamMatchmakingPingResponse : ISteamMatchmakingPingResponse -{ -public CSteamMatchmakingPingResponse(IntPtr SteamMatchmakingPingResponse) -{ - m_pSteamMatchmakingPingResponse = SteamMatchmakingPingResponse; -} -IntPtr m_pSteamMatchmakingPingResponse; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingPingResponse; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingPingResponse == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void ServerResponded(IntPtr server) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPingResponse_ServerResponded(m_pSteamMatchmakingPingResponse,server); -} -public override void ServerFailedToRespond() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPingResponse_ServerFailedToRespond(m_pSteamMatchmakingPingResponse); -} -} - - -public class CSteamMatchmakingPlayersResponse : ISteamMatchmakingPlayersResponse -{ -public CSteamMatchmakingPlayersResponse(IntPtr SteamMatchmakingPlayersResponse) -{ - m_pSteamMatchmakingPlayersResponse = SteamMatchmakingPlayersResponse; -} -IntPtr m_pSteamMatchmakingPlayersResponse; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingPlayersResponse; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingPlayersResponse == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void AddPlayerToList(string pchName,int nScore,float flTimePlayed) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPlayersResponse_AddPlayerToList(m_pSteamMatchmakingPlayersResponse,pchName,nScore,flTimePlayed); -} -public override void PlayersFailedToRespond() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPlayersResponse_PlayersFailedToRespond(m_pSteamMatchmakingPlayersResponse); -} -public override void PlayersRefreshComplete() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingPlayersResponse_PlayersRefreshComplete(m_pSteamMatchmakingPlayersResponse); -} -} - - -public class CSteamMatchmakingRulesResponse : ISteamMatchmakingRulesResponse -{ -public CSteamMatchmakingRulesResponse(IntPtr SteamMatchmakingRulesResponse) -{ - m_pSteamMatchmakingRulesResponse = SteamMatchmakingRulesResponse; -} -IntPtr m_pSteamMatchmakingRulesResponse; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingRulesResponse; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingRulesResponse == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void RulesResponded(string pchRule,string pchValue) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingRulesResponse_RulesResponded(m_pSteamMatchmakingRulesResponse,pchRule,pchValue); -} -public override void RulesFailedToRespond() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingRulesResponse_RulesFailedToRespond(m_pSteamMatchmakingRulesResponse); -} -public override void RulesRefreshComplete() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingRulesResponse_RulesRefreshComplete(m_pSteamMatchmakingRulesResponse); -} -} - - -public class CSteamMatchmakingServers : ISteamMatchmakingServers -{ -public CSteamMatchmakingServers(IntPtr SteamMatchmakingServers) -{ - m_pSteamMatchmakingServers = SteamMatchmakingServers; -} -IntPtr m_pSteamMatchmakingServers; - -public override IntPtr GetIntPtr() { return m_pSteamMatchmakingServers; } - -private void CheckIfUsable() -{ - if (m_pSteamMatchmakingServers == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint RequestInternetServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestInternetServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestLANServerList(uint iApp,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestLANServerList(m_pSteamMatchmakingServers,iApp,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestFriendsServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestFavoritesServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestHistoryServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint RequestSpectatorServerList(uint iApp,IntPtr [] ppchFilters,ISteamMatchmakingServerListResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList(m_pSteamMatchmakingServers,iApp,ppchFilters,(uint) ppchFilters.Length,pRequestServersResponse.GetIntPtr()); - return result; -} -public override void ReleaseRequest(uint hServerListRequest) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_ReleaseRequest(m_pSteamMatchmakingServers,hServerListRequest); -} -public override gameserveritem_t GetServerDetails(uint hRequest,int iServer) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_GetServerDetails(m_pSteamMatchmakingServers,hRequest,iServer); - return (gameserveritem_t) Marshal.PtrToStructure(result, typeof(gameserveritem_t)); -} -public override void CancelQuery(uint hRequest) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_CancelQuery(m_pSteamMatchmakingServers,hRequest); -} -public override void RefreshQuery(uint hRequest) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RefreshQuery(m_pSteamMatchmakingServers,hRequest); -} -public override bool IsRefreshing(uint hRequest) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_IsRefreshing(m_pSteamMatchmakingServers,hRequest); - return result; -} -public override int GetServerCount(uint hRequest) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_GetServerCount(m_pSteamMatchmakingServers,hRequest); - return result; -} -public override void RefreshServer(uint hRequest,int iServer) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_RefreshServer(m_pSteamMatchmakingServers,hRequest,iServer); -} -public override uint PingServer(uint unIP,char usPort,ISteamMatchmakingPingResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_PingServer(m_pSteamMatchmakingServers,unIP,usPort,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint PlayerDetails(uint unIP,char usPort,ISteamMatchmakingPlayersResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_PlayerDetails(m_pSteamMatchmakingServers,unIP,usPort,pRequestServersResponse.GetIntPtr()); - return result; -} -public override uint ServerRules(uint unIP,char usPort,ISteamMatchmakingRulesResponse pRequestServersResponse) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_ServerRules(m_pSteamMatchmakingServers,unIP,usPort,pRequestServersResponse.GetIntPtr()); - return result; -} -public override void CancelServerQuery(uint hServerQuery) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMatchmakingServers_CancelServerQuery(m_pSteamMatchmakingServers,hServerQuery); -} -} - - -public class CSteamRemoteStorage : ISteamRemoteStorage -{ -public CSteamRemoteStorage(IntPtr SteamRemoteStorage) -{ - m_pSteamRemoteStorage = SteamRemoteStorage; -} -IntPtr m_pSteamRemoteStorage; - -public override IntPtr GetIntPtr() { return m_pSteamRemoteStorage; } - -private void CheckIfUsable() -{ - if (m_pSteamRemoteStorage == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool FileWrite(string pchFile,IntPtr pvData,int cubData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWrite(m_pSteamRemoteStorage,pchFile,pvData,cubData); - return result; -} -public override int FileRead(string pchFile,IntPtr pvData,int cubDataToRead) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileRead(m_pSteamRemoteStorage,pchFile,pvData,cubDataToRead); - return result; -} -public override ulong FileWriteAsync(string pchFile,IntPtr pvData,uint cubData) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteAsync(m_pSteamRemoteStorage,pchFile,pvData,cubData); - return result; -} -public override ulong FileReadAsync(string pchFile,uint nOffset,uint cubToRead) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileReadAsync(m_pSteamRemoteStorage,pchFile,nOffset,cubToRead); - return result; -} -public override bool FileReadAsyncComplete(ulong hReadCall,IntPtr pvBuffer,uint cubToRead) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete(m_pSteamRemoteStorage,hReadCall,pvBuffer,cubToRead); - return result; -} -public override bool FileForget(string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileForget(m_pSteamRemoteStorage,pchFile); - return result; -} -public override bool FileDelete(string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileDelete(m_pSteamRemoteStorage,pchFile); - return result; -} -public override ulong FileShare(string pchFile) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileShare(m_pSteamRemoteStorage,pchFile); - return result; -} -public override bool SetSyncPlatforms(string pchFile,uint eRemoteStoragePlatform) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_SetSyncPlatforms(m_pSteamRemoteStorage,pchFile,eRemoteStoragePlatform); - return result; -} -public override ulong FileWriteStreamOpen(string pchFile) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen(m_pSteamRemoteStorage,pchFile); - return result; -} -public override bool FileWriteStreamWriteChunk(ulong writeHandle,IntPtr pvData,int cubData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk(m_pSteamRemoteStorage,writeHandle,pvData,cubData); - return result; -} -public override bool FileWriteStreamClose(ulong writeHandle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteStreamClose(m_pSteamRemoteStorage,writeHandle); - return result; -} -public override bool FileWriteStreamCancel(ulong writeHandle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel(m_pSteamRemoteStorage,writeHandle); - return result; -} -public override bool FileExists(string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FileExists(m_pSteamRemoteStorage,pchFile); - return result; -} -public override bool FilePersisted(string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_FilePersisted(m_pSteamRemoteStorage,pchFile); - return result; -} -public override int GetFileSize(string pchFile) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetFileSize(m_pSteamRemoteStorage,pchFile); - return result; -} -public override long GetFileTimestamp(string pchFile) -{ - CheckIfUsable(); - long result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetFileTimestamp(m_pSteamRemoteStorage,pchFile); - return result; -} -public override uint GetSyncPlatforms(string pchFile) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetSyncPlatforms(m_pSteamRemoteStorage,pchFile); - return result; -} -public override int GetFileCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetFileCount(m_pSteamRemoteStorage); - return result; -} -public override string GetFileNameAndSize(int iFile,ref int pnFileSizeInBytes) -{ - CheckIfUsable(); - pnFileSizeInBytes = 0; - IntPtr result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetFileNameAndSize(m_pSteamRemoteStorage,iFile,ref pnFileSizeInBytes); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetQuota(ref ulong pnTotalBytes,ref ulong puAvailableBytes) -{ - CheckIfUsable(); - pnTotalBytes = 0; - puAvailableBytes = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetQuota(m_pSteamRemoteStorage,ref pnTotalBytes,ref puAvailableBytes); - return result; -} -public override bool IsCloudEnabledForAccount() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount(m_pSteamRemoteStorage); - return result; -} -public override bool IsCloudEnabledForApp() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp(m_pSteamRemoteStorage); - return result; -} -public override void SetCloudEnabledForApp(bool bEnabled) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp(m_pSteamRemoteStorage,bEnabled); -} -public override ulong UGCDownload(ulong hContent,uint unPriority) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UGCDownload(m_pSteamRemoteStorage,hContent,unPriority); - return result; -} -public override bool GetUGCDownloadProgress(ulong hContent,ref int pnBytesDownloaded,ref int pnBytesExpected) -{ - CheckIfUsable(); - pnBytesDownloaded = 0; - pnBytesExpected = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress(m_pSteamRemoteStorage,hContent,ref pnBytesDownloaded,ref pnBytesExpected); - return result; -} -public override bool GetUGCDetails(ulong hContent,ref uint pnAppID,System.Text.StringBuilder ppchName,ref int pnFileSizeInBytes,out CSteamID pSteamIDOwner) -{ - CheckIfUsable(); - pnAppID = 0; - pnFileSizeInBytes = 0; - pSteamIDOwner = new CSteamID(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetUGCDetails(m_pSteamRemoteStorage,hContent,ref pnAppID,ppchName,ref pnFileSizeInBytes,ref pSteamIDOwner); - return result; -} -public override int UGCRead(ulong hContent,IntPtr pvData,int cubDataToRead,uint cOffset,uint eAction) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UGCRead(m_pSteamRemoteStorage,hContent,pvData,cubDataToRead,cOffset,eAction); - return result; -} -public override int GetCachedUGCCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetCachedUGCCount(m_pSteamRemoteStorage); - return result; -} -public override ulong GetCachedUGCHandle(int iCachedContent) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle(m_pSteamRemoteStorage,iCachedContent); - return result; -} -public override ulong PublishWorkshopFile(string pchFile,string pchPreviewFile,uint nConsumerAppId,string pchTitle,string pchDescription,uint eVisibility,ref SteamParamStringArray_t pTags,uint eWorkshopFileType) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_PublishWorkshopFile(m_pSteamRemoteStorage,pchFile,pchPreviewFile,nConsumerAppId,pchTitle,pchDescription,eVisibility,ref pTags,eWorkshopFileType); - return result; -} -public override ulong CreatePublishedFileUpdateRequest(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override bool UpdatePublishedFileFile(ulong updateHandle,string pchFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile(m_pSteamRemoteStorage,updateHandle,pchFile); - return result; -} -public override bool UpdatePublishedFilePreviewFile(ulong updateHandle,string pchPreviewFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile(m_pSteamRemoteStorage,updateHandle,pchPreviewFile); - return result; -} -public override bool UpdatePublishedFileTitle(ulong updateHandle,string pchTitle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle(m_pSteamRemoteStorage,updateHandle,pchTitle); - return result; -} -public override bool UpdatePublishedFileDescription(ulong updateHandle,string pchDescription) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription(m_pSteamRemoteStorage,updateHandle,pchDescription); - return result; -} -public override bool UpdatePublishedFileVisibility(ulong updateHandle,uint eVisibility) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility(m_pSteamRemoteStorage,updateHandle,eVisibility); - return result; -} -public override bool UpdatePublishedFileTags(ulong updateHandle,ref SteamParamStringArray_t pTags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags(m_pSteamRemoteStorage,updateHandle,ref pTags); - return result; -} -public override ulong CommitPublishedFileUpdate(ulong updateHandle) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate(m_pSteamRemoteStorage,updateHandle); - return result; -} -public override ulong GetPublishedFileDetails(ulong unPublishedFileId,uint unMaxSecondsOld) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails(m_pSteamRemoteStorage,unPublishedFileId,unMaxSecondsOld); - return result; -} -public override ulong DeletePublishedFile(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_DeletePublishedFile(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override ulong EnumerateUserPublishedFiles(uint unStartIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles(m_pSteamRemoteStorage,unStartIndex); - return result; -} -public override ulong SubscribePublishedFile(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_SubscribePublishedFile(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override ulong EnumerateUserSubscribedFiles(uint unStartIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles(m_pSteamRemoteStorage,unStartIndex); - return result; -} -public override ulong UnsubscribePublishedFile(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override bool UpdatePublishedFileSetChangeDescription(ulong updateHandle,string pchChangeDescription) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(m_pSteamRemoteStorage,updateHandle,pchChangeDescription); - return result; -} -public override ulong GetPublishedItemVoteDetails(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override ulong UpdateUserPublishedItemVote(ulong unPublishedFileId,bool bVoteUp) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote(m_pSteamRemoteStorage,unPublishedFileId,bVoteUp); - return result; -} -public override ulong GetUserPublishedItemVoteDetails(ulong unPublishedFileId) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails(m_pSteamRemoteStorage,unPublishedFileId); - return result; -} -public override ulong EnumerateUserSharedWorkshopFiles(ulong steamId,uint unStartIndex,ref SteamParamStringArray_t pRequiredTags,ref SteamParamStringArray_t pExcludedTags) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(m_pSteamRemoteStorage,steamId,unStartIndex,ref pRequiredTags,ref pExcludedTags); - return result; -} -public override ulong PublishVideo(uint eVideoProvider,string pchVideoAccount,string pchVideoIdentifier,string pchPreviewFile,uint nConsumerAppId,string pchTitle,string pchDescription,uint eVisibility,ref SteamParamStringArray_t pTags) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_PublishVideo(m_pSteamRemoteStorage,eVideoProvider,pchVideoAccount,pchVideoIdentifier,pchPreviewFile,nConsumerAppId,pchTitle,pchDescription,eVisibility,ref pTags); - return result; -} -public override ulong SetUserPublishedFileAction(ulong unPublishedFileId,uint eAction) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction(m_pSteamRemoteStorage,unPublishedFileId,eAction); - return result; -} -public override ulong EnumeratePublishedFilesByUserAction(uint eAction,uint unStartIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(m_pSteamRemoteStorage,eAction,unStartIndex); - return result; -} -public override ulong EnumeratePublishedWorkshopFiles(uint eEnumerationType,uint unStartIndex,uint unCount,uint unDays,ref SteamParamStringArray_t pTags,ref SteamParamStringArray_t pUserTags) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(m_pSteamRemoteStorage,eEnumerationType,unStartIndex,unCount,unDays,ref pTags,ref pUserTags); - return result; -} -public override ulong UGCDownloadToLocation(ulong hContent,string pchLocation,uint unPriority) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation(m_pSteamRemoteStorage,hContent,pchLocation,unPriority); - return result; -} -} - - -public class CSteamUserStats : ISteamUserStats -{ -public CSteamUserStats(IntPtr SteamUserStats) -{ - m_pSteamUserStats = SteamUserStats; -} -IntPtr m_pSteamUserStats; - -public override IntPtr GetIntPtr() { return m_pSteamUserStats; } - -private void CheckIfUsable() -{ - if (m_pSteamUserStats == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool RequestCurrentStats() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_RequestCurrentStats(m_pSteamUserStats); - return result; -} -public override bool GetStat(string pchName,ref int pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetStat(m_pSteamUserStats,pchName,ref pData); - return result; -} -public override bool GetStat0(string pchName,ref float pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetStat0(m_pSteamUserStats,pchName,ref pData); - return result; -} -public override bool SetStat(string pchName,int nData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_SetStat(m_pSteamUserStats,pchName,nData); - return result; -} -public override bool SetStat0(string pchName,float fData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_SetStat0(m_pSteamUserStats,pchName,fData); - return result; -} -public override bool UpdateAvgRateStat(string pchName,float flCountThisSession,double dSessionLength) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_UpdateAvgRateStat(m_pSteamUserStats,pchName,flCountThisSession,dSessionLength); - return result; -} -public override bool GetAchievement(string pchName,ref bool pbAchieved) -{ - CheckIfUsable(); - pbAchieved = false; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievement(m_pSteamUserStats,pchName,ref pbAchieved); - return result; -} -public override bool SetAchievement(string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_SetAchievement(m_pSteamUserStats,pchName); - return result; -} -public override bool ClearAchievement(string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_ClearAchievement(m_pSteamUserStats,pchName); - return result; -} -public override bool GetAchievementAndUnlockTime(string pchName,ref bool pbAchieved,ref uint punUnlockTime) -{ - CheckIfUsable(); - pbAchieved = false; - punUnlockTime = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime(m_pSteamUserStats,pchName,ref pbAchieved,ref punUnlockTime); - return result; -} -public override bool StoreStats() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_StoreStats(m_pSteamUserStats); - return result; -} -public override int GetAchievementIcon(string pchName) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementIcon(m_pSteamUserStats,pchName); - return result; -} -public override string GetAchievementDisplayAttribute(string pchName,string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute(m_pSteamUserStats,pchName,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override bool IndicateAchievementProgress(string pchName,uint nCurProgress,uint nMaxProgress) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_IndicateAchievementProgress(m_pSteamUserStats,pchName,nCurProgress,nMaxProgress); - return result; -} -public override uint GetNumAchievements() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetNumAchievements(m_pSteamUserStats); - return result; -} -public override string GetAchievementName(uint iAchievement) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementName(m_pSteamUserStats,iAchievement); - return Marshal.PtrToStringAnsi(result); -} -public override ulong RequestUserStats(ulong steamIDUser) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_RequestUserStats(m_pSteamUserStats,steamIDUser); - return result; -} -public override bool GetUserStat(ulong steamIDUser,string pchName,ref int pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetUserStat(m_pSteamUserStats,steamIDUser,pchName,ref pData); - return result; -} -public override bool GetUserStat0(ulong steamIDUser,string pchName,ref float pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetUserStat0(m_pSteamUserStats,steamIDUser,pchName,ref pData); - return result; -} -public override bool GetUserAchievement(ulong steamIDUser,string pchName,ref bool pbAchieved) -{ - CheckIfUsable(); - pbAchieved = false; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetUserAchievement(m_pSteamUserStats,steamIDUser,pchName,ref pbAchieved); - return result; -} -public override bool GetUserAchievementAndUnlockTime(ulong steamIDUser,string pchName,ref bool pbAchieved,ref uint punUnlockTime) -{ - CheckIfUsable(); - pbAchieved = false; - punUnlockTime = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime(m_pSteamUserStats,steamIDUser,pchName,ref pbAchieved,ref punUnlockTime); - return result; -} -public override bool ResetAllStats(bool bAchievementsToo) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_ResetAllStats(m_pSteamUserStats,bAchievementsToo); - return result; -} -public override ulong FindOrCreateLeaderboard(string pchLeaderboardName,uint eLeaderboardSortMethod,uint eLeaderboardDisplayType) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_FindOrCreateLeaderboard(m_pSteamUserStats,pchLeaderboardName,eLeaderboardSortMethod,eLeaderboardDisplayType); - return result; -} -public override ulong FindLeaderboard(string pchLeaderboardName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_FindLeaderboard(m_pSteamUserStats,pchLeaderboardName); - return result; -} -public override string GetLeaderboardName(ulong hSteamLeaderboard) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetLeaderboardName(m_pSteamUserStats,hSteamLeaderboard); - return Marshal.PtrToStringAnsi(result); -} -public override int GetLeaderboardEntryCount(ulong hSteamLeaderboard) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetLeaderboardEntryCount(m_pSteamUserStats,hSteamLeaderboard); - return result; -} -public override uint GetLeaderboardSortMethod(ulong hSteamLeaderboard) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetLeaderboardSortMethod(m_pSteamUserStats,hSteamLeaderboard); - return result; -} -public override uint GetLeaderboardDisplayType(ulong hSteamLeaderboard) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetLeaderboardDisplayType(m_pSteamUserStats,hSteamLeaderboard); - return result; -} -public override ulong DownloadLeaderboardEntries(ulong hSteamLeaderboard,uint eLeaderboardDataRequest,int nRangeStart,int nRangeEnd) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_DownloadLeaderboardEntries(m_pSteamUserStats,hSteamLeaderboard,eLeaderboardDataRequest,nRangeStart,nRangeEnd); - return result; -} -public override ulong DownloadLeaderboardEntriesForUsers(ulong hSteamLeaderboard,CSteamID [] prgUsers) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers(m_pSteamUserStats,hSteamLeaderboard,prgUsers,(int) prgUsers.Length); - return result; -} -public override bool GetDownloadedLeaderboardEntry(ulong hSteamLeaderboardEntries,int index,ref LeaderboardEntry_t pLeaderboardEntry,ref int pDetails,int cDetailsMax) -{ - CheckIfUsable(); - pDetails = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry(m_pSteamUserStats,hSteamLeaderboardEntries,index,ref pLeaderboardEntry,ref pDetails,cDetailsMax); - return result; -} -public override ulong UploadLeaderboardScore(ulong hSteamLeaderboard,uint eLeaderboardUploadScoreMethod,int nScore,ref int pScoreDetails,int cScoreDetailsCount) -{ - CheckIfUsable(); - pScoreDetails = 0; - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_UploadLeaderboardScore(m_pSteamUserStats,hSteamLeaderboard,eLeaderboardUploadScoreMethod,nScore,ref pScoreDetails,cScoreDetailsCount); - return result; -} -public override ulong AttachLeaderboardUGC(ulong hSteamLeaderboard,ulong hUGC) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_AttachLeaderboardUGC(m_pSteamUserStats,hSteamLeaderboard,hUGC); - return result; -} -public override ulong GetNumberOfCurrentPlayers() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers(m_pSteamUserStats); - return result; -} -public override ulong RequestGlobalAchievementPercentages() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages(m_pSteamUserStats); - return result; -} -public override int GetMostAchievedAchievementInfo(string pchName,uint unNameBufLen,ref float pflPercent,ref bool pbAchieved) -{ - CheckIfUsable(); - pflPercent = 0; - pbAchieved = false; - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo(m_pSteamUserStats,pchName,unNameBufLen,ref pflPercent,ref pbAchieved); - return result; -} -public override int GetNextMostAchievedAchievementInfo(int iIteratorPrevious,string pchName,uint unNameBufLen,ref float pflPercent,ref bool pbAchieved) -{ - CheckIfUsable(); - pflPercent = 0; - pbAchieved = false; - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo(m_pSteamUserStats,iIteratorPrevious,pchName,unNameBufLen,ref pflPercent,ref pbAchieved); - return result; -} -public override bool GetAchievementAchievedPercent(string pchName,ref float pflPercent) -{ - CheckIfUsable(); - pflPercent = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetAchievementAchievedPercent(m_pSteamUserStats,pchName,ref pflPercent); - return result; -} -public override ulong RequestGlobalStats(int nHistoryDays) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUserStats_RequestGlobalStats(m_pSteamUserStats,nHistoryDays); - return result; -} -public override bool GetGlobalStat(string pchStatName,ref long pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetGlobalStat(m_pSteamUserStats,pchStatName,ref pData); - return result; -} -public override bool GetGlobalStat0(string pchStatName,ref double pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetGlobalStat0(m_pSteamUserStats,pchStatName,ref pData); - return result; -} -public override int GetGlobalStatHistory(string pchStatName,long [] pData) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetGlobalStatHistory(m_pSteamUserStats,pchStatName,pData,(uint) pData.Length); - return result; -} -public override int GetGlobalStatHistory0(string pchStatName,double [] pData) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamUserStats_GetGlobalStatHistory0(m_pSteamUserStats,pchStatName,pData,(uint) pData.Length); - return result; -} -} - - -public class CSteamApps : ISteamApps -{ -public CSteamApps(IntPtr SteamApps) -{ - m_pSteamApps = SteamApps; -} -IntPtr m_pSteamApps; - -public override IntPtr GetIntPtr() { return m_pSteamApps; } - -private void CheckIfUsable() -{ - if (m_pSteamApps == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool BIsSubscribed() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsSubscribed(m_pSteamApps); - return result; -} -public override bool BIsLowViolence() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsLowViolence(m_pSteamApps); - return result; -} -public override bool BIsCybercafe() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsCybercafe(m_pSteamApps); - return result; -} -public override bool BIsVACBanned() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsVACBanned(m_pSteamApps); - return result; -} -public override string GetCurrentGameLanguage() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamApps_GetCurrentGameLanguage(m_pSteamApps); - return Marshal.PtrToStringAnsi(result); -} -public override string GetAvailableGameLanguages() -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamApps_GetAvailableGameLanguages(m_pSteamApps); - return Marshal.PtrToStringAnsi(result); -} -public override bool BIsSubscribedApp(uint appID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsSubscribedApp(m_pSteamApps,appID); - return result; -} -public override bool BIsDlcInstalled(uint appID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsDlcInstalled(m_pSteamApps,appID); - return result; -} -public override uint GetEarliestPurchaseUnixTime(uint nAppID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime(m_pSteamApps,nAppID); - return result; -} -public override bool BIsSubscribedFromFreeWeekend() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend(m_pSteamApps); - return result; -} -public override int GetDLCCount() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamApps_GetDLCCount(m_pSteamApps); - return result; -} -public override bool BGetDLCDataByIndex(int iDLC,ref uint pAppID,ref bool pbAvailable,string pchName,int cchNameBufferSize) -{ - CheckIfUsable(); - pAppID = 0; - pbAvailable = false; - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BGetDLCDataByIndex(m_pSteamApps,iDLC,ref pAppID,ref pbAvailable,pchName,cchNameBufferSize); - return result; -} -public override void InstallDLC(uint nAppID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamApps_InstallDLC(m_pSteamApps,nAppID); -} -public override void UninstallDLC(uint nAppID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamApps_UninstallDLC(m_pSteamApps,nAppID); -} -public override void RequestAppProofOfPurchaseKey(uint nAppID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey(m_pSteamApps,nAppID); -} -public override bool GetCurrentBetaName(string pchName,int cchNameBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_GetCurrentBetaName(m_pSteamApps,pchName,cchNameBufferSize); - return result; -} -public override bool MarkContentCorrupt(bool bMissingFilesOnly) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_MarkContentCorrupt(m_pSteamApps,bMissingFilesOnly); - return result; -} -public override uint GetInstalledDepots(uint appID,ref uint pvecDepots,uint cMaxDepots) -{ - CheckIfUsable(); - pvecDepots = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamApps_GetInstalledDepots(m_pSteamApps,appID,ref pvecDepots,cMaxDepots); - return result; -} -public override uint GetAppInstallDir(uint appID,string pchFolder,uint cchFolderBufferSize) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamApps_GetAppInstallDir(m_pSteamApps,appID,pchFolder,cchFolderBufferSize); - return result; -} -public override bool BIsAppInstalled(uint appID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamApps_BIsAppInstalled(m_pSteamApps,appID); - return result; -} -public override ulong GetAppOwner() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamApps_GetAppOwner(m_pSteamApps); - return result; -} -public override string GetLaunchQueryParam(string pchKey) -{ - CheckIfUsable(); - IntPtr result = NativeEntrypoints.SteamAPI_ISteamApps_GetLaunchQueryParam(m_pSteamApps,pchKey); - return Marshal.PtrToStringAnsi(result); -} -public override bool GetDlcDownloadProgress(uint nAppID,ref ulong punBytesDownloaded,ref ulong punBytesTotal) -{ - CheckIfUsable(); - punBytesDownloaded = 0; - punBytesTotal = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamApps_GetDlcDownloadProgress(m_pSteamApps,nAppID,ref punBytesDownloaded,ref punBytesTotal); - return result; -} -public override int GetAppBuildId() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamApps_GetAppBuildId(m_pSteamApps); - return result; -} -public override void RequestAllProofOfPurchaseKeys() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys(m_pSteamApps); -} -public override ulong GetFileDetails(string pszFileName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamApps_GetFileDetails(m_pSteamApps,pszFileName); - return result; -} -} - - -public class CSteamNetworking : ISteamNetworking -{ -public CSteamNetworking(IntPtr SteamNetworking) -{ - m_pSteamNetworking = SteamNetworking; -} -IntPtr m_pSteamNetworking; - -public override IntPtr GetIntPtr() { return m_pSteamNetworking; } - -private void CheckIfUsable() -{ - if (m_pSteamNetworking == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool SendP2PPacket(ulong steamIDRemote,IntPtr pubData,uint cubData,uint eP2PSendType,int nChannel) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_SendP2PPacket(m_pSteamNetworking,steamIDRemote,pubData,cubData,eP2PSendType,nChannel); - return result; -} -public override bool IsP2PPacketAvailable(ref uint pcubMsgSize,int nChannel) -{ - CheckIfUsable(); - pcubMsgSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_IsP2PPacketAvailable(m_pSteamNetworking,ref pcubMsgSize,nChannel); - return result; -} -public override bool ReadP2PPacket(IntPtr pubDest,uint cubDest,ref uint pcubMsgSize,ref CSteamID psteamIDRemote,int nChannel) -{ - CheckIfUsable(); - pcubMsgSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_ReadP2PPacket(m_pSteamNetworking,pubDest,cubDest,ref pcubMsgSize,ref psteamIDRemote,nChannel); - return result; -} -public override bool AcceptP2PSessionWithUser(ulong steamIDRemote) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser(m_pSteamNetworking,steamIDRemote); - return result; -} -public override bool CloseP2PSessionWithUser(ulong steamIDRemote) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_CloseP2PSessionWithUser(m_pSteamNetworking,steamIDRemote); - return result; -} -public override bool CloseP2PChannelWithUser(ulong steamIDRemote,int nChannel) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_CloseP2PChannelWithUser(m_pSteamNetworking,steamIDRemote,nChannel); - return result; -} -public override bool GetP2PSessionState(ulong steamIDRemote,ref P2PSessionState_t pConnectionState) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetP2PSessionState(m_pSteamNetworking,steamIDRemote,ref pConnectionState); - return result; -} -public override bool AllowP2PPacketRelay(bool bAllow) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_AllowP2PPacketRelay(m_pSteamNetworking,bAllow); - return result; -} -public override uint CreateListenSocket(int nVirtualP2PPort,uint nIP,char nPort,bool bAllowUseOfPacketRelay) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamNetworking_CreateListenSocket(m_pSteamNetworking,nVirtualP2PPort,nIP,nPort,bAllowUseOfPacketRelay); - return result; -} -public override uint CreateP2PConnectionSocket(ulong steamIDTarget,int nVirtualPort,int nTimeoutSec,bool bAllowUseOfPacketRelay) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamNetworking_CreateP2PConnectionSocket(m_pSteamNetworking,steamIDTarget,nVirtualPort,nTimeoutSec,bAllowUseOfPacketRelay); - return result; -} -public override uint CreateConnectionSocket(uint nIP,char nPort,int nTimeoutSec) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamNetworking_CreateConnectionSocket(m_pSteamNetworking,nIP,nPort,nTimeoutSec); - return result; -} -public override bool DestroySocket(uint hSocket,bool bNotifyRemoteEnd) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_DestroySocket(m_pSteamNetworking,hSocket,bNotifyRemoteEnd); - return result; -} -public override bool DestroyListenSocket(uint hSocket,bool bNotifyRemoteEnd) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_DestroyListenSocket(m_pSteamNetworking,hSocket,bNotifyRemoteEnd); - return result; -} -public override bool SendDataOnSocket(uint hSocket,IntPtr pubData,uint cubData,bool bReliable) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_SendDataOnSocket(m_pSteamNetworking,hSocket,pubData,cubData,bReliable); - return result; -} -public override bool IsDataAvailableOnSocket(uint hSocket,ref uint pcubMsgSize) -{ - CheckIfUsable(); - pcubMsgSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_IsDataAvailableOnSocket(m_pSteamNetworking,hSocket,ref pcubMsgSize); - return result; -} -public override bool RetrieveDataFromSocket(uint hSocket,IntPtr pubDest,uint cubDest,ref uint pcubMsgSize) -{ - CheckIfUsable(); - pcubMsgSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_RetrieveDataFromSocket(m_pSteamNetworking,hSocket,pubDest,cubDest,ref pcubMsgSize); - return result; -} -public override bool IsDataAvailable(uint hListenSocket,ref uint pcubMsgSize,ref uint phSocket) -{ - CheckIfUsable(); - pcubMsgSize = 0; - phSocket = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_IsDataAvailable(m_pSteamNetworking,hListenSocket,ref pcubMsgSize,ref phSocket); - return result; -} -public override bool RetrieveData(uint hListenSocket,IntPtr pubDest,uint cubDest,ref uint pcubMsgSize,ref uint phSocket) -{ - CheckIfUsable(); - pcubMsgSize = 0; - phSocket = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_RetrieveData(m_pSteamNetworking,hListenSocket,pubDest,cubDest,ref pcubMsgSize,ref phSocket); - return result; -} -public override bool GetSocketInfo(uint hSocket,ref CSteamID pSteamIDRemote,ref int peSocketStatus,ref uint punIPRemote,ref char punPortRemote) -{ - CheckIfUsable(); - peSocketStatus = 0; - punIPRemote = 0; - punPortRemote = (char) 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetSocketInfo(m_pSteamNetworking,hSocket,ref pSteamIDRemote,ref peSocketStatus,ref punIPRemote,ref punPortRemote); - return result; -} -public override bool GetListenSocketInfo(uint hListenSocket,ref uint pnIP,ref char pnPort) -{ - CheckIfUsable(); - pnIP = 0; - pnPort = (char) 0; - bool result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetListenSocketInfo(m_pSteamNetworking,hListenSocket,ref pnIP,ref pnPort); - return result; -} -public override uint GetSocketConnectionType(uint hSocket) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetSocketConnectionType(m_pSteamNetworking,hSocket); - return result; -} -public override int GetMaxPacketSize(uint hSocket) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamNetworking_GetMaxPacketSize(m_pSteamNetworking,hSocket); - return result; -} -} - - -public class CSteamScreenshots : ISteamScreenshots -{ -public CSteamScreenshots(IntPtr SteamScreenshots) -{ - m_pSteamScreenshots = SteamScreenshots; -} -IntPtr m_pSteamScreenshots; - -public override IntPtr GetIntPtr() { return m_pSteamScreenshots; } - -private void CheckIfUsable() -{ - if (m_pSteamScreenshots == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint WriteScreenshot(IntPtr pubRGB,uint cubRGB,int nWidth,int nHeight) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamScreenshots_WriteScreenshot(m_pSteamScreenshots,pubRGB,cubRGB,nWidth,nHeight); - return result; -} -public override uint AddScreenshotToLibrary(string pchFilename,string pchThumbnailFilename,int nWidth,int nHeight) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamScreenshots_AddScreenshotToLibrary(m_pSteamScreenshots,pchFilename,pchThumbnailFilename,nWidth,nHeight); - return result; -} -public override void TriggerScreenshot() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamScreenshots_TriggerScreenshot(m_pSteamScreenshots); -} -public override void HookScreenshots(bool bHook) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamScreenshots_HookScreenshots(m_pSteamScreenshots,bHook); -} -public override bool SetLocation(uint hScreenshot,string pchLocation) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamScreenshots_SetLocation(m_pSteamScreenshots,hScreenshot,pchLocation); - return result; -} -public override bool TagUser(uint hScreenshot,ulong steamID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamScreenshots_TagUser(m_pSteamScreenshots,hScreenshot,steamID); - return result; -} -public override bool TagPublishedFile(uint hScreenshot,ulong unPublishedFileID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamScreenshots_TagPublishedFile(m_pSteamScreenshots,hScreenshot,unPublishedFileID); - return result; -} -public override bool IsScreenshotsHooked() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamScreenshots_IsScreenshotsHooked(m_pSteamScreenshots); - return result; -} -public override uint AddVRScreenshotToLibrary(uint eType,string pchFilename,string pchVRFilename) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary(m_pSteamScreenshots,eType,pchFilename,pchVRFilename); - return result; -} -} - - -public class CSteamMusic : ISteamMusic -{ -public CSteamMusic(IntPtr SteamMusic) -{ - m_pSteamMusic = SteamMusic; -} -IntPtr m_pSteamMusic; - -public override IntPtr GetIntPtr() { return m_pSteamMusic; } - -private void CheckIfUsable() -{ - if (m_pSteamMusic == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool BIsEnabled() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusic_BIsEnabled(m_pSteamMusic); - return result; -} -public override bool BIsPlaying() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusic_BIsPlaying(m_pSteamMusic); - return result; -} -public override int GetPlaybackStatus() -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamMusic_GetPlaybackStatus(m_pSteamMusic); - return result; -} -public override void Play() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_Play(m_pSteamMusic); -} -public override void Pause() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_Pause(m_pSteamMusic); -} -public override void PlayPrevious() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_PlayPrevious(m_pSteamMusic); -} -public override void PlayNext() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_PlayNext(m_pSteamMusic); -} -public override void SetVolume(float flVolume) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamMusic_SetVolume(m_pSteamMusic,flVolume); -} -public override float GetVolume() -{ - CheckIfUsable(); - float result = NativeEntrypoints.SteamAPI_ISteamMusic_GetVolume(m_pSteamMusic); - return result; -} -} - - -public class CSteamMusicRemote : ISteamMusicRemote -{ -public CSteamMusicRemote(IntPtr SteamMusicRemote) -{ - m_pSteamMusicRemote = SteamMusicRemote; -} -IntPtr m_pSteamMusicRemote; - -public override IntPtr GetIntPtr() { return m_pSteamMusicRemote; } - -private void CheckIfUsable() -{ - if (m_pSteamMusicRemote == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool RegisterSteamMusicRemote(string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote(m_pSteamMusicRemote,pchName); - return result; -} -public override bool DeregisterSteamMusicRemote() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote(m_pSteamMusicRemote); - return result; -} -public override bool BIsCurrentMusicRemote() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote(m_pSteamMusicRemote); - return result; -} -public override bool BActivationSuccess(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_BActivationSuccess(m_pSteamMusicRemote,bValue); - return result; -} -public override bool SetDisplayName(string pchDisplayName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetDisplayName(m_pSteamMusicRemote,pchDisplayName); - return result; -} -public override bool SetPNGIcon_64x64(IntPtr pvBuffer,uint cbBufferLength) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64(m_pSteamMusicRemote,pvBuffer,cbBufferLength); - return result; -} -public override bool EnablePlayPrevious(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnablePlayPrevious(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnablePlayNext(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnablePlayNext(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnableShuffled(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnableShuffled(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnableLooped(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnableLooped(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnableQueue(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnableQueue(m_pSteamMusicRemote,bValue); - return result; -} -public override bool EnablePlaylists(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_EnablePlaylists(m_pSteamMusicRemote,bValue); - return result; -} -public override bool UpdatePlaybackStatus(int nStatus) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus(m_pSteamMusicRemote,nStatus); - return result; -} -public override bool UpdateShuffled(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateShuffled(m_pSteamMusicRemote,bValue); - return result; -} -public override bool UpdateLooped(bool bValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateLooped(m_pSteamMusicRemote,bValue); - return result; -} -public override bool UpdateVolume(float flValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateVolume(m_pSteamMusicRemote,flValue); - return result; -} -public override bool CurrentEntryWillChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_CurrentEntryWillChange(m_pSteamMusicRemote); - return result; -} -public override bool CurrentEntryIsAvailable(bool bAvailable) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable(m_pSteamMusicRemote,bAvailable); - return result; -} -public override bool UpdateCurrentEntryText(string pchText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText(m_pSteamMusicRemote,pchText); - return result; -} -public override bool UpdateCurrentEntryElapsedSeconds(int nValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds(m_pSteamMusicRemote,nValue); - return result; -} -public override bool UpdateCurrentEntryCoverArt(IntPtr pvBuffer,uint cbBufferLength) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt(m_pSteamMusicRemote,pvBuffer,cbBufferLength); - return result; -} -public override bool CurrentEntryDidChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_CurrentEntryDidChange(m_pSteamMusicRemote); - return result; -} -public override bool QueueWillChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_QueueWillChange(m_pSteamMusicRemote); - return result; -} -public override bool ResetQueueEntries() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_ResetQueueEntries(m_pSteamMusicRemote); - return result; -} -public override bool SetQueueEntry(int nID,int nPosition,string pchEntryText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetQueueEntry(m_pSteamMusicRemote,nID,nPosition,pchEntryText); - return result; -} -public override bool SetCurrentQueueEntry(int nID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry(m_pSteamMusicRemote,nID); - return result; -} -public override bool QueueDidChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_QueueDidChange(m_pSteamMusicRemote); - return result; -} -public override bool PlaylistWillChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_PlaylistWillChange(m_pSteamMusicRemote); - return result; -} -public override bool ResetPlaylistEntries() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_ResetPlaylistEntries(m_pSteamMusicRemote); - return result; -} -public override bool SetPlaylistEntry(int nID,int nPosition,string pchEntryText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetPlaylistEntry(m_pSteamMusicRemote,nID,nPosition,pchEntryText); - return result; -} -public override bool SetCurrentPlaylistEntry(int nID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry(m_pSteamMusicRemote,nID); - return result; -} -public override bool PlaylistDidChange() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamMusicRemote_PlaylistDidChange(m_pSteamMusicRemote); - return result; -} -} - - -public class CSteamHTTP : ISteamHTTP -{ -public CSteamHTTP(IntPtr SteamHTTP) -{ - m_pSteamHTTP = SteamHTTP; -} -IntPtr m_pSteamHTTP; - -public override IntPtr GetIntPtr() { return m_pSteamHTTP; } - -private void CheckIfUsable() -{ - if (m_pSteamHTTP == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint CreateHTTPRequest(uint eHTTPRequestMethod,string pchAbsoluteURL) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamHTTP_CreateHTTPRequest(m_pSteamHTTP,eHTTPRequestMethod,pchAbsoluteURL); - return result; -} -public override bool SetHTTPRequestContextValue(uint hRequest,ulong ulContextValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestContextValue(m_pSteamHTTP,hRequest,ulContextValue); - return result; -} -public override bool SetHTTPRequestNetworkActivityTimeout(uint hRequest,uint unTimeoutSeconds) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(m_pSteamHTTP,hRequest,unTimeoutSeconds); - return result; -} -public override bool SetHTTPRequestHeaderValue(uint hRequest,string pchHeaderName,string pchHeaderValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue(m_pSteamHTTP,hRequest,pchHeaderName,pchHeaderValue); - return result; -} -public override bool SetHTTPRequestGetOrPostParameter(uint hRequest,string pchParamName,string pchParamValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter(m_pSteamHTTP,hRequest,pchParamName,pchParamValue); - return result; -} -public override bool SendHTTPRequest(uint hRequest,ref ulong pCallHandle) -{ - CheckIfUsable(); - pCallHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SendHTTPRequest(m_pSteamHTTP,hRequest,ref pCallHandle); - return result; -} -public override bool SendHTTPRequestAndStreamResponse(uint hRequest,ref ulong pCallHandle) -{ - CheckIfUsable(); - pCallHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse(m_pSteamHTTP,hRequest,ref pCallHandle); - return result; -} -public override bool DeferHTTPRequest(uint hRequest) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_DeferHTTPRequest(m_pSteamHTTP,hRequest); - return result; -} -public override bool PrioritizeHTTPRequest(uint hRequest) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_PrioritizeHTTPRequest(m_pSteamHTTP,hRequest); - return result; -} -public override bool GetHTTPResponseHeaderSize(uint hRequest,string pchHeaderName,ref uint unResponseHeaderSize) -{ - CheckIfUsable(); - unResponseHeaderSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize(m_pSteamHTTP,hRequest,pchHeaderName,ref unResponseHeaderSize); - return result; -} -public override bool GetHTTPResponseHeaderValue(uint hRequest,string pchHeaderName,IntPtr pHeaderValueBuffer,uint unBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue(m_pSteamHTTP,hRequest,pchHeaderName,pHeaderValueBuffer,unBufferSize); - return result; -} -public override bool GetHTTPResponseBodySize(uint hRequest,ref uint unBodySize) -{ - CheckIfUsable(); - unBodySize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPResponseBodySize(m_pSteamHTTP,hRequest,ref unBodySize); - return result; -} -public override bool GetHTTPResponseBodyData(uint hRequest,IntPtr pBodyDataBuffer,uint unBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPResponseBodyData(m_pSteamHTTP,hRequest,pBodyDataBuffer,unBufferSize); - return result; -} -public override bool GetHTTPStreamingResponseBodyData(uint hRequest,uint cOffset,IntPtr pBodyDataBuffer,uint unBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData(m_pSteamHTTP,hRequest,cOffset,pBodyDataBuffer,unBufferSize); - return result; -} -public override bool ReleaseHTTPRequest(uint hRequest) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_ReleaseHTTPRequest(m_pSteamHTTP,hRequest); - return result; -} -public override bool GetHTTPDownloadProgressPct(uint hRequest,ref float pflPercentOut) -{ - CheckIfUsable(); - pflPercentOut = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct(m_pSteamHTTP,hRequest,ref pflPercentOut); - return result; -} -public override bool SetHTTPRequestRawPostBody(uint hRequest,string pchContentType,IntPtr pubBody,uint unBodyLen) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody(m_pSteamHTTP,hRequest,pchContentType,pubBody,unBodyLen); - return result; -} -public override uint CreateCookieContainer(bool bAllowResponsesToModify) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamHTTP_CreateCookieContainer(m_pSteamHTTP,bAllowResponsesToModify); - return result; -} -public override bool ReleaseCookieContainer(uint hCookieContainer) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_ReleaseCookieContainer(m_pSteamHTTP,hCookieContainer); - return result; -} -public override bool SetCookie(uint hCookieContainer,string pchHost,string pchUrl,string pchCookie) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetCookie(m_pSteamHTTP,hCookieContainer,pchHost,pchUrl,pchCookie); - return result; -} -public override bool SetHTTPRequestCookieContainer(uint hRequest,uint hCookieContainer) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer(m_pSteamHTTP,hRequest,hCookieContainer); - return result; -} -public override bool SetHTTPRequestUserAgentInfo(uint hRequest,string pchUserAgentInfo) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo(m_pSteamHTTP,hRequest,pchUserAgentInfo); - return result; -} -public override bool SetHTTPRequestRequiresVerifiedCertificate(uint hRequest,bool bRequireVerifiedCertificate) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(m_pSteamHTTP,hRequest,bRequireVerifiedCertificate); - return result; -} -public override bool SetHTTPRequestAbsoluteTimeoutMS(uint hRequest,uint unMilliseconds) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(m_pSteamHTTP,hRequest,unMilliseconds); - return result; -} -public override bool GetHTTPRequestWasTimedOut(uint hRequest,ref bool pbWasTimedOut) -{ - CheckIfUsable(); - pbWasTimedOut = false; - bool result = NativeEntrypoints.SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut(m_pSteamHTTP,hRequest,ref pbWasTimedOut); - return result; -} -} - - -public class CSteamUnifiedMessages : ISteamUnifiedMessages -{ -public CSteamUnifiedMessages(IntPtr SteamUnifiedMessages) -{ - m_pSteamUnifiedMessages = SteamUnifiedMessages; -} -IntPtr m_pSteamUnifiedMessages; - -public override IntPtr GetIntPtr() { return m_pSteamUnifiedMessages; } - -private void CheckIfUsable() -{ - if (m_pSteamUnifiedMessages == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override ulong SendMethod(string pchServiceMethod,IntPtr pRequestBuffer,uint unRequestBufferSize,ulong unContext) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_SendMethod(m_pSteamUnifiedMessages,pchServiceMethod,pRequestBuffer,unRequestBufferSize,unContext); - return result; -} -public override bool GetMethodResponseInfo(ulong hHandle,ref uint punResponseSize,ref uint peResult) -{ - CheckIfUsable(); - punResponseSize = 0; - peResult = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_GetMethodResponseInfo(m_pSteamUnifiedMessages,hHandle,ref punResponseSize,ref peResult); - return result; -} -public override bool GetMethodResponseData(ulong hHandle,IntPtr pResponseBuffer,uint unResponseBufferSize,bool bAutoRelease) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_GetMethodResponseData(m_pSteamUnifiedMessages,hHandle,pResponseBuffer,unResponseBufferSize,bAutoRelease); - return result; -} -public override bool ReleaseMethod(ulong hHandle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_ReleaseMethod(m_pSteamUnifiedMessages,hHandle); - return result; -} -public override bool SendNotification(string pchServiceNotification,IntPtr pNotificationBuffer,uint unNotificationBufferSize) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUnifiedMessages_SendNotification(m_pSteamUnifiedMessages,pchServiceNotification,pNotificationBuffer,unNotificationBufferSize); - return result; -} -} - - -public class CSteamController : ISteamController -{ -public CSteamController(IntPtr SteamController) -{ - m_pSteamController = SteamController; -} -IntPtr m_pSteamController; - -public override IntPtr GetIntPtr() { return m_pSteamController; } - -private void CheckIfUsable() -{ - if (m_pSteamController == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool Init() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_Init(m_pSteamController); - return result; -} -public override bool Shutdown() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_Shutdown(m_pSteamController); - return result; -} -public override void RunFrame() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_RunFrame(m_pSteamController); -} -public override int GetConnectedControllers(ref ulong handlesOut) -{ - CheckIfUsable(); - handlesOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetConnectedControllers(m_pSteamController,ref handlesOut); - return result; -} -public override bool ShowBindingPanel(ulong controllerHandle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_ShowBindingPanel(m_pSteamController,controllerHandle); - return result; -} -public override ulong GetActionSetHandle(string pszActionSetName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetActionSetHandle(m_pSteamController,pszActionSetName); - return result; -} -public override void ActivateActionSet(ulong controllerHandle,ulong actionSetHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_ActivateActionSet(m_pSteamController,controllerHandle,actionSetHandle); -} -public override ulong GetCurrentActionSet(ulong controllerHandle) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetCurrentActionSet(m_pSteamController,controllerHandle); - return result; -} -public override ulong GetDigitalActionHandle(string pszActionName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionHandle(m_pSteamController,pszActionName); - return result; -} -public override ControllerDigitalActionData_t GetDigitalActionData(ulong controllerHandle,ulong digitalActionHandle) -{ - CheckIfUsable(); - ControllerDigitalActionData_t result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionData(m_pSteamController,controllerHandle,digitalActionHandle); - return result; -} -public override int GetDigitalActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong digitalActionHandle,ref uint originsOut) -{ - CheckIfUsable(); - originsOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionOrigins(m_pSteamController,controllerHandle,actionSetHandle,digitalActionHandle,ref originsOut); - return result; -} -public override ulong GetAnalogActionHandle(string pszActionName) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionHandle(m_pSteamController,pszActionName); - return result; -} -public override ControllerAnalogActionData_t GetAnalogActionData(ulong controllerHandle,ulong analogActionHandle) -{ - CheckIfUsable(); - ControllerAnalogActionData_t result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionData(m_pSteamController,controllerHandle,analogActionHandle); - return result; -} -public override int GetAnalogActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong analogActionHandle,ref uint originsOut) -{ - CheckIfUsable(); - originsOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionOrigins(m_pSteamController,controllerHandle,actionSetHandle,analogActionHandle,ref originsOut); - return result; -} -public override void StopAnalogActionMomentum(ulong controllerHandle,ulong eAction) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_StopAnalogActionMomentum(m_pSteamController,controllerHandle,eAction); -} -public override void TriggerHapticPulse(ulong controllerHandle,uint eTargetPad,char usDurationMicroSec) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_TriggerHapticPulse(m_pSteamController,controllerHandle,eTargetPad,usDurationMicroSec); -} -public override void TriggerRepeatedHapticPulse(ulong controllerHandle,uint eTargetPad,char usDurationMicroSec,char usOffMicroSec,char unRepeat,uint nFlags) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamController_TriggerRepeatedHapticPulse(m_pSteamController,controllerHandle,eTargetPad,usDurationMicroSec,usOffMicroSec,unRepeat,nFlags); -} -public override int GetGamepadIndexForController(ulong ulControllerHandle) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamController_GetGamepadIndexForController(m_pSteamController,ulControllerHandle); - return result; -} -public override ulong GetControllerForGamepadIndex(int nIndex) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamController_GetControllerForGamepadIndex(m_pSteamController,nIndex); - return result; -} -public override ControllerMotionData_t GetMotionData(ulong controllerHandle) -{ - CheckIfUsable(); - ControllerMotionData_t result = NativeEntrypoints.SteamAPI_ISteamController_GetMotionData(m_pSteamController,controllerHandle); - return result; -} -public override bool ShowDigitalActionOrigins(ulong controllerHandle,ulong digitalActionHandle,float flScale,float flXPosition,float flYPosition) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_ShowDigitalActionOrigins(m_pSteamController,controllerHandle,digitalActionHandle,flScale,flXPosition,flYPosition); - return result; -} -public override bool ShowAnalogActionOrigins(ulong controllerHandle,ulong analogActionHandle,float flScale,float flXPosition,float flYPosition) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamController_ShowAnalogActionOrigins(m_pSteamController,controllerHandle,analogActionHandle,flScale,flXPosition,flYPosition); - return result; -} -} - - -public class CSteamUGC : ISteamUGC -{ -public CSteamUGC(IntPtr SteamUGC) -{ - m_pSteamUGC = SteamUGC; -} -IntPtr m_pSteamUGC; - -public override IntPtr GetIntPtr() { return m_pSteamUGC; } - -private void CheckIfUsable() -{ - if (m_pSteamUGC == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override ulong CreateQueryUserUGCRequest(uint unAccountID,uint eListType,uint eMatchingUGCType,uint eSortOrder,uint nCreatorAppID,uint nConsumerAppID,uint unPage) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(m_pSteamUGC,unAccountID,eListType,eMatchingUGCType,eSortOrder,nCreatorAppID,nConsumerAppID,unPage); - return result; -} -public override ulong CreateQueryAllUGCRequest(uint eQueryType,uint eMatchingeMatchingUGCTypeFileType,uint nCreatorAppID,uint nConsumerAppID,uint unPage) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_CreateQueryAllUGCRequest(m_pSteamUGC,eQueryType,eMatchingeMatchingUGCTypeFileType,nCreatorAppID,nConsumerAppID,unPage); - return result; -} -public override ulong CreateQueryUGCDetailsRequest(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest(m_pSteamUGC,ref pvecPublishedFileID,unNumPublishedFileIDs); - return result; -} -public override ulong SendQueryUGCRequest(ulong handle) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_SendQueryUGCRequest(m_pSteamUGC,handle); - return result; -} -public override bool GetQueryUGCResult(ulong handle,uint index,ref SteamUGCDetails_t pDetails) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCResult(m_pSteamUGC,handle,index,ref pDetails); - return result; -} -public override bool GetQueryUGCPreviewURL(ulong handle,uint index,out string pchURL) -{ - CheckIfUsable(); - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCPreviewURL(m_pSteamUGC,handle,index,pStrBuffer1,2048); - pchURL = pStrBuffer1.ToString(); - return result; -} -public override bool GetQueryUGCMetadata(ulong handle,uint index,out string pchMetadata) -{ - CheckIfUsable(); - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCMetadata(m_pSteamUGC,handle,index,pStrBuffer1,2048); - pchMetadata = pStrBuffer1.ToString(); - return result; -} -public override bool GetQueryUGCChildren(ulong handle,uint index,ref ulong pvecPublishedFileID,uint cMaxEntries) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCChildren(m_pSteamUGC,handle,index,ref pvecPublishedFileID,cMaxEntries); - return result; -} -public override bool GetQueryUGCStatistic(ulong handle,uint index,uint eStatType,ref ulong pStatValue) -{ - CheckIfUsable(); - pStatValue = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCStatistic(m_pSteamUGC,handle,index,eStatType,ref pStatValue); - return result; -} -public override uint GetQueryUGCNumAdditionalPreviews(ulong handle,uint index) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews(m_pSteamUGC,handle,index); - return result; -} -public override bool GetQueryUGCAdditionalPreview(ulong handle,uint index,uint previewIndex,out string pchURLOrVideoID,out string pchOriginalFileName,uint cchOriginalFileNameSize,ref uint pPreviewType) -{ - CheckIfUsable(); - pPreviewType = 0; - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - System.Text.StringBuilder pStrBuffer2 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(m_pSteamUGC,handle,index,previewIndex,pStrBuffer1,2048,pStrBuffer2,cchOriginalFileNameSize,ref pPreviewType); - pchURLOrVideoID = pStrBuffer1.ToString(); - pchOriginalFileName = pStrBuffer2.ToString(); - return result; -} -public override uint GetQueryUGCNumKeyValueTags(ulong handle,uint index) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(m_pSteamUGC,handle,index); - return result; -} -public override bool GetQueryUGCKeyValueTag(ulong handle,uint index,uint keyValueTagIndex,out string pchKey,out string pchValue) -{ - CheckIfUsable(); - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - System.Text.StringBuilder pStrBuffer2 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(m_pSteamUGC,handle,index,keyValueTagIndex,pStrBuffer1,2048,pStrBuffer2,2048); - pchKey = pStrBuffer1.ToString(); - pchValue = pStrBuffer2.ToString(); - return result; -} -public override bool ReleaseQueryUGCRequest(ulong handle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(m_pSteamUGC,handle); - return result; -} -public override bool AddRequiredTag(ulong handle,string pTagName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddRequiredTag(m_pSteamUGC,handle,pTagName); - return result; -} -public override bool AddExcludedTag(ulong handle,string pTagName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddExcludedTag(m_pSteamUGC,handle,pTagName); - return result; -} -public override bool SetReturnOnlyIDs(ulong handle,bool bReturnOnlyIDs) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnOnlyIDs(m_pSteamUGC,handle,bReturnOnlyIDs); - return result; -} -public override bool SetReturnKeyValueTags(ulong handle,bool bReturnKeyValueTags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnKeyValueTags(m_pSteamUGC,handle,bReturnKeyValueTags); - return result; -} -public override bool SetReturnLongDescription(ulong handle,bool bReturnLongDescription) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnLongDescription(m_pSteamUGC,handle,bReturnLongDescription); - return result; -} -public override bool SetReturnMetadata(ulong handle,bool bReturnMetadata) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnMetadata(m_pSteamUGC,handle,bReturnMetadata); - return result; -} -public override bool SetReturnChildren(ulong handle,bool bReturnChildren) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnChildren(m_pSteamUGC,handle,bReturnChildren); - return result; -} -public override bool SetReturnAdditionalPreviews(ulong handle,bool bReturnAdditionalPreviews) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(m_pSteamUGC,handle,bReturnAdditionalPreviews); - return result; -} -public override bool SetReturnTotalOnly(ulong handle,bool bReturnTotalOnly) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetReturnTotalOnly(m_pSteamUGC,handle,bReturnTotalOnly); - return result; -} -public override bool SetLanguage(ulong handle,string pchLanguage) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetLanguage(m_pSteamUGC,handle,pchLanguage); - return result; -} -public override bool SetAllowCachedResponse(ulong handle,uint unMaxAgeSeconds) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetAllowCachedResponse(m_pSteamUGC,handle,unMaxAgeSeconds); - return result; -} -public override bool SetCloudFileNameFilter(ulong handle,string pMatchCloudFileName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetCloudFileNameFilter(m_pSteamUGC,handle,pMatchCloudFileName); - return result; -} -public override bool SetMatchAnyTag(ulong handle,bool bMatchAnyTag) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetMatchAnyTag(m_pSteamUGC,handle,bMatchAnyTag); - return result; -} -public override bool SetSearchText(ulong handle,string pSearchText) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetSearchText(m_pSteamUGC,handle,pSearchText); - return result; -} -public override bool SetRankedByTrendDays(ulong handle,uint unDays) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetRankedByTrendDays(m_pSteamUGC,handle,unDays); - return result; -} -public override bool AddRequiredKeyValueTag(ulong handle,string pKey,string pValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddRequiredKeyValueTag(m_pSteamUGC,handle,pKey,pValue); - return result; -} -public override ulong RequestUGCDetails(ulong nPublishedFileID,uint unMaxAgeSeconds) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_RequestUGCDetails(m_pSteamUGC,nPublishedFileID,unMaxAgeSeconds); - return result; -} -public override ulong CreateItem(uint nConsumerAppId,uint eFileType) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_CreateItem(m_pSteamUGC,nConsumerAppId,eFileType); - return result; -} -public override ulong StartItemUpdate(uint nConsumerAppId,ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StartItemUpdate(m_pSteamUGC,nConsumerAppId,nPublishedFileID); - return result; -} -public override bool SetItemTitle(ulong handle,string pchTitle) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemTitle(m_pSteamUGC,handle,pchTitle); - return result; -} -public override bool SetItemDescription(ulong handle,string pchDescription) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemDescription(m_pSteamUGC,handle,pchDescription); - return result; -} -public override bool SetItemUpdateLanguage(ulong handle,string pchLanguage) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemUpdateLanguage(m_pSteamUGC,handle,pchLanguage); - return result; -} -public override bool SetItemMetadata(ulong handle,string pchMetaData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemMetadata(m_pSteamUGC,handle,pchMetaData); - return result; -} -public override bool SetItemVisibility(ulong handle,uint eVisibility) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemVisibility(m_pSteamUGC,handle,eVisibility); - return result; -} -public override bool SetItemTags(ulong updateHandle,ref SteamParamStringArray_t pTags) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemTags(m_pSteamUGC,updateHandle,ref pTags); - return result; -} -public override bool SetItemContent(ulong handle,string pszContentFolder) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemContent(m_pSteamUGC,handle,pszContentFolder); - return result; -} -public override bool SetItemPreview(ulong handle,string pszPreviewFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetItemPreview(m_pSteamUGC,handle,pszPreviewFile); - return result; -} -public override bool RemoveItemKeyValueTags(ulong handle,string pchKey) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_RemoveItemKeyValueTags(m_pSteamUGC,handle,pchKey); - return result; -} -public override bool AddItemKeyValueTag(ulong handle,string pchKey,string pchValue) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddItemKeyValueTag(m_pSteamUGC,handle,pchKey,pchValue); - return result; -} -public override bool AddItemPreviewFile(ulong handle,string pszPreviewFile,uint type) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddItemPreviewFile(m_pSteamUGC,handle,pszPreviewFile,type); - return result; -} -public override bool AddItemPreviewVideo(ulong handle,string pszVideoID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_AddItemPreviewVideo(m_pSteamUGC,handle,pszVideoID); - return result; -} -public override bool UpdateItemPreviewFile(ulong handle,uint index,string pszPreviewFile) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_UpdateItemPreviewFile(m_pSteamUGC,handle,index,pszPreviewFile); - return result; -} -public override bool UpdateItemPreviewVideo(ulong handle,uint index,string pszVideoID) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_UpdateItemPreviewVideo(m_pSteamUGC,handle,index,pszVideoID); - return result; -} -public override bool RemoveItemPreview(ulong handle,uint index) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_RemoveItemPreview(m_pSteamUGC,handle,index); - return result; -} -public override ulong SubmitItemUpdate(ulong handle,string pchChangeNote) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_SubmitItemUpdate(m_pSteamUGC,handle,pchChangeNote); - return result; -} -public override uint GetItemUpdateProgress(ulong handle,ref ulong punBytesProcessed,ref ulong punBytesTotal) -{ - CheckIfUsable(); - punBytesProcessed = 0; - punBytesTotal = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetItemUpdateProgress(m_pSteamUGC,handle,ref punBytesProcessed,ref punBytesTotal); - return result; -} -public override ulong SetUserItemVote(ulong nPublishedFileID,bool bVoteUp) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_SetUserItemVote(m_pSteamUGC,nPublishedFileID,bVoteUp); - return result; -} -public override ulong GetUserItemVote(ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_GetUserItemVote(m_pSteamUGC,nPublishedFileID); - return result; -} -public override ulong AddItemToFavorites(uint nAppId,ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_AddItemToFavorites(m_pSteamUGC,nAppId,nPublishedFileID); - return result; -} -public override ulong RemoveItemFromFavorites(uint nAppId,ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_RemoveItemFromFavorites(m_pSteamUGC,nAppId,nPublishedFileID); - return result; -} -public override ulong SubscribeItem(ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_SubscribeItem(m_pSteamUGC,nPublishedFileID); - return result; -} -public override ulong UnsubscribeItem(ulong nPublishedFileID) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_UnsubscribeItem(m_pSteamUGC,nPublishedFileID); - return result; -} -public override uint GetNumSubscribedItems() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetNumSubscribedItems(m_pSteamUGC); - return result; -} -public override uint GetSubscribedItems(ref ulong pvecPublishedFileID,uint cMaxEntries) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetSubscribedItems(m_pSteamUGC,ref pvecPublishedFileID,cMaxEntries); - return result; -} -public override uint GetItemState(ulong nPublishedFileID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamUGC_GetItemState(m_pSteamUGC,nPublishedFileID); - return result; -} -public override bool GetItemInstallInfo(ulong nPublishedFileID,ref ulong punSizeOnDisk,out string pchFolder,ref uint punTimeStamp) -{ - CheckIfUsable(); - punSizeOnDisk = 0; - punTimeStamp = 0; - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetItemInstallInfo(m_pSteamUGC,nPublishedFileID,ref punSizeOnDisk,pStrBuffer1,2048,ref punTimeStamp); - pchFolder = pStrBuffer1.ToString(); - return result; -} -public override bool GetItemDownloadInfo(ulong nPublishedFileID,ref ulong punBytesDownloaded,ref ulong punBytesTotal) -{ - CheckIfUsable(); - punBytesDownloaded = 0; - punBytesTotal = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetItemDownloadInfo(m_pSteamUGC,nPublishedFileID,ref punBytesDownloaded,ref punBytesTotal); - return result; -} -public override bool DownloadItem(ulong nPublishedFileID,bool bHighPriority) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_DownloadItem(m_pSteamUGC,nPublishedFileID,bHighPriority); - return result; -} -public override bool BInitWorkshopForGameServer(uint unWorkshopDepotID,string pszFolder) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamUGC_BInitWorkshopForGameServer(m_pSteamUGC,unWorkshopDepotID,pszFolder); - return result; -} -public override void SuspendDownloads(bool bSuspend) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamUGC_SuspendDownloads(m_pSteamUGC,bSuspend); -} -public override ulong StartPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StartPlaytimeTracking(m_pSteamUGC,ref pvecPublishedFileID,unNumPublishedFileIDs); - return result; -} -public override ulong StopPlaytimeTracking(ref ulong pvecPublishedFileID,uint unNumPublishedFileIDs) -{ - CheckIfUsable(); - pvecPublishedFileID = 0; - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StopPlaytimeTracking(m_pSteamUGC,ref pvecPublishedFileID,unNumPublishedFileIDs); - return result; -} -public override ulong StopPlaytimeTrackingForAllItems() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems(m_pSteamUGC); - return result; -} -} - - -public class CSteamAppList : ISteamAppList -{ -public CSteamAppList(IntPtr SteamAppList) -{ - m_pSteamAppList = SteamAppList; -} -IntPtr m_pSteamAppList; - -public override IntPtr GetIntPtr() { return m_pSteamAppList; } - -private void CheckIfUsable() -{ - if (m_pSteamAppList == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint GetNumInstalledApps() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamAppList_GetNumInstalledApps(m_pSteamAppList); - return result; -} -public override uint GetInstalledApps(ref uint pvecAppID,uint unMaxAppIDs) -{ - CheckIfUsable(); - pvecAppID = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamAppList_GetInstalledApps(m_pSteamAppList,ref pvecAppID,unMaxAppIDs); - return result; -} -public override int GetAppName(uint nAppID,System.Text.StringBuilder pchName,int cchNameMax) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamAppList_GetAppName(m_pSteamAppList,nAppID,pchName,cchNameMax); - return result; -} -public override int GetAppInstallDir(uint nAppID,string pchDirectory,int cchNameMax) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamAppList_GetAppInstallDir(m_pSteamAppList,nAppID,pchDirectory,cchNameMax); - return result; -} -public override int GetAppBuildId(uint nAppID) -{ - CheckIfUsable(); - int result = NativeEntrypoints.SteamAPI_ISteamAppList_GetAppBuildId(m_pSteamAppList,nAppID); - return result; -} -} - - -public class CSteamHTMLSurface : ISteamHTMLSurface -{ -public CSteamHTMLSurface(IntPtr SteamHTMLSurface) -{ - m_pSteamHTMLSurface = SteamHTMLSurface; -} -IntPtr m_pSteamHTMLSurface; - -public override IntPtr GetIntPtr() { return m_pSteamHTMLSurface; } - -private void CheckIfUsable() -{ - if (m_pSteamHTMLSurface == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void DestructISteamHTMLSurface() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_DestructISteamHTMLSurface(m_pSteamHTMLSurface); -} -public override bool Init() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTMLSurface_Init(m_pSteamHTMLSurface); - return result; -} -public override bool Shutdown() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamHTMLSurface_Shutdown(m_pSteamHTMLSurface); - return result; -} -public override ulong CreateBrowser(string pchUserAgent,string pchUserCSS) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamHTMLSurface_CreateBrowser(m_pSteamHTMLSurface,pchUserAgent,pchUserCSS); - return result; -} -public override void RemoveBrowser(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_RemoveBrowser(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void LoadURL(uint unBrowserHandle,string pchURL,string pchPostData) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_LoadURL(m_pSteamHTMLSurface,unBrowserHandle,pchURL,pchPostData); -} -public override void SetSize(uint unBrowserHandle,uint unWidth,uint unHeight) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetSize(m_pSteamHTMLSurface,unBrowserHandle,unWidth,unHeight); -} -public override void StopLoad(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_StopLoad(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void Reload(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_Reload(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void GoBack(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_GoBack(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void GoForward(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_GoForward(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void AddHeader(uint unBrowserHandle,string pchKey,string pchValue) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_AddHeader(m_pSteamHTMLSurface,unBrowserHandle,pchKey,pchValue); -} -public override void ExecuteJavascript(uint unBrowserHandle,string pchScript) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_ExecuteJavascript(m_pSteamHTMLSurface,unBrowserHandle,pchScript); -} -public override void MouseUp(uint unBrowserHandle,uint eMouseButton) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseUp(m_pSteamHTMLSurface,unBrowserHandle,eMouseButton); -} -public override void MouseDown(uint unBrowserHandle,uint eMouseButton) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseDown(m_pSteamHTMLSurface,unBrowserHandle,eMouseButton); -} -public override void MouseDoubleClick(uint unBrowserHandle,uint eMouseButton) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseDoubleClick(m_pSteamHTMLSurface,unBrowserHandle,eMouseButton); -} -public override void MouseMove(uint unBrowserHandle,int x,int y) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseMove(m_pSteamHTMLSurface,unBrowserHandle,x,y); -} -public override void MouseWheel(uint unBrowserHandle,int nDelta) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_MouseWheel(m_pSteamHTMLSurface,unBrowserHandle,nDelta); -} -public override void KeyDown(uint unBrowserHandle,uint nNativeKeyCode,uint eHTMLKeyModifiers) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_KeyDown(m_pSteamHTMLSurface,unBrowserHandle,nNativeKeyCode,eHTMLKeyModifiers); -} -public override void KeyUp(uint unBrowserHandle,uint nNativeKeyCode,uint eHTMLKeyModifiers) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_KeyUp(m_pSteamHTMLSurface,unBrowserHandle,nNativeKeyCode,eHTMLKeyModifiers); -} -public override void KeyChar(uint unBrowserHandle,uint cUnicodeChar,uint eHTMLKeyModifiers) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_KeyChar(m_pSteamHTMLSurface,unBrowserHandle,cUnicodeChar,eHTMLKeyModifiers); -} -public override void SetHorizontalScroll(uint unBrowserHandle,uint nAbsolutePixelScroll) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetHorizontalScroll(m_pSteamHTMLSurface,unBrowserHandle,nAbsolutePixelScroll); -} -public override void SetVerticalScroll(uint unBrowserHandle,uint nAbsolutePixelScroll) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetVerticalScroll(m_pSteamHTMLSurface,unBrowserHandle,nAbsolutePixelScroll); -} -public override void SetKeyFocus(uint unBrowserHandle,bool bHasKeyFocus) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetKeyFocus(m_pSteamHTMLSurface,unBrowserHandle,bHasKeyFocus); -} -public override void ViewSource(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_ViewSource(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void CopyToClipboard(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_CopyToClipboard(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void PasteFromClipboard(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_PasteFromClipboard(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void Find(uint unBrowserHandle,string pchSearchStr,bool bCurrentlyInFind,bool bReverse) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_Find(m_pSteamHTMLSurface,unBrowserHandle,pchSearchStr,bCurrentlyInFind,bReverse); -} -public override void StopFind(uint unBrowserHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_StopFind(m_pSteamHTMLSurface,unBrowserHandle); -} -public override void GetLinkAtPosition(uint unBrowserHandle,int x,int y) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_GetLinkAtPosition(m_pSteamHTMLSurface,unBrowserHandle,x,y); -} -public override void SetCookie(string pchHostname,string pchKey,string pchValue,string pchPath,ulong nExpires,bool bSecure,bool bHTTPOnly) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetCookie(m_pSteamHTMLSurface,pchHostname,pchKey,pchValue,pchPath,nExpires,bSecure,bHTTPOnly); -} -public override void SetPageScaleFactor(uint unBrowserHandle,float flZoom,int nPointX,int nPointY) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetPageScaleFactor(m_pSteamHTMLSurface,unBrowserHandle,flZoom,nPointX,nPointY); -} -public override void SetBackgroundMode(uint unBrowserHandle,bool bBackgroundMode) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_SetBackgroundMode(m_pSteamHTMLSurface,unBrowserHandle,bBackgroundMode); -} -public override void AllowStartRequest(uint unBrowserHandle,bool bAllowed) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_AllowStartRequest(m_pSteamHTMLSurface,unBrowserHandle,bAllowed); -} -public override void JSDialogResponse(uint unBrowserHandle,bool bResult) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamHTMLSurface_JSDialogResponse(m_pSteamHTMLSurface,unBrowserHandle,bResult); -} -} - - -public class CSteamInventory : ISteamInventory -{ -public CSteamInventory(IntPtr SteamInventory) -{ - m_pSteamInventory = SteamInventory; -} -IntPtr m_pSteamInventory; - -public override IntPtr GetIntPtr() { return m_pSteamInventory; } - -private void CheckIfUsable() -{ - if (m_pSteamInventory == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override uint GetResultStatus(int resultHandle) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultStatus(m_pSteamInventory,resultHandle); - return result; -} -public override bool GetResultItems(int resultHandle,out SteamItemDetails_t [] pOutItemsArray) -{ - CheckIfUsable(); - uint punOutItemsArraySize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultItems(m_pSteamInventory,resultHandle,null,ref punOutItemsArraySize); - pOutItemsArray= new SteamItemDetails_t[punOutItemsArraySize]; - result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultItems(m_pSteamInventory,resultHandle,pOutItemsArray,ref punOutItemsArraySize); - return result; -} -public override uint GetResultTimestamp(int resultHandle) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamInventory_GetResultTimestamp(m_pSteamInventory,resultHandle); - return result; -} -public override bool CheckResultSteamID(int resultHandle,ulong steamIDExpected) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_CheckResultSteamID(m_pSteamInventory,resultHandle,steamIDExpected); - return result; -} -public override void DestroyResult(int resultHandle) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamInventory_DestroyResult(m_pSteamInventory,resultHandle); -} -public override bool GetAllItems(ref int pResultHandle) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetAllItems(m_pSteamInventory,ref pResultHandle); - return result; -} -public override bool GetItemsByID(ref int pResultHandle,ulong [] pInstanceIDs) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemsByID(m_pSteamInventory,ref pResultHandle,pInstanceIDs,(uint) pInstanceIDs.Length); - return result; -} -public override bool SerializeResult(int resultHandle,IntPtr pOutBuffer,ref uint punOutBufferSize) -{ - CheckIfUsable(); - punOutBufferSize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_SerializeResult(m_pSteamInventory,resultHandle,pOutBuffer,ref punOutBufferSize); - return result; -} -public override bool DeserializeResult(ref int pOutResultHandle,IntPtr pBuffer,uint unBufferSize,bool bRESERVED_MUST_BE_FALSE) -{ - CheckIfUsable(); - pOutResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_DeserializeResult(m_pSteamInventory,ref pOutResultHandle,pBuffer,unBufferSize,bRESERVED_MUST_BE_FALSE); - return result; -} -public override bool GenerateItems(ref int pResultHandle,int [] pArrayItemDefs,uint [] punArrayQuantity) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GenerateItems(m_pSteamInventory,ref pResultHandle,pArrayItemDefs,punArrayQuantity,(uint) punArrayQuantity.Length); - return result; -} -public override bool GrantPromoItems(ref int pResultHandle) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GrantPromoItems(m_pSteamInventory,ref pResultHandle); - return result; -} -public override bool AddPromoItem(ref int pResultHandle,int itemDef) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_AddPromoItem(m_pSteamInventory,ref pResultHandle,itemDef); - return result; -} -public override bool AddPromoItems(ref int pResultHandle,int [] pArrayItemDefs) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_AddPromoItems(m_pSteamInventory,ref pResultHandle,pArrayItemDefs,(uint) pArrayItemDefs.Length); - return result; -} -public override bool ConsumeItem(ref int pResultHandle,ulong itemConsume,uint unQuantity) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_ConsumeItem(m_pSteamInventory,ref pResultHandle,itemConsume,unQuantity); - return result; -} -public override bool ExchangeItems(ref int pResultHandle,int [] pArrayGenerate,uint [] punArrayGenerateQuantity,ulong [] pArrayDestroy,uint [] punArrayDestroyQuantity) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_ExchangeItems(m_pSteamInventory,ref pResultHandle,pArrayGenerate,punArrayGenerateQuantity,(uint) punArrayGenerateQuantity.Length,pArrayDestroy,punArrayDestroyQuantity,(uint) punArrayDestroyQuantity.Length); - return result; -} -public override bool TransferItemQuantity(ref int pResultHandle,ulong itemIdSource,uint unQuantity,ulong itemIdDest) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_TransferItemQuantity(m_pSteamInventory,ref pResultHandle,itemIdSource,unQuantity,itemIdDest); - return result; -} -public override void SendItemDropHeartbeat() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamInventory_SendItemDropHeartbeat(m_pSteamInventory); -} -public override bool TriggerItemDrop(ref int pResultHandle,int dropListDefinition) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_TriggerItemDrop(m_pSteamInventory,ref pResultHandle,dropListDefinition); - return result; -} -public override bool TradeItems(ref int pResultHandle,ulong steamIDTradePartner,ulong [] pArrayGive,uint [] pArrayGiveQuantity,ulong [] pArrayGet,uint [] pArrayGetQuantity) -{ - CheckIfUsable(); - pResultHandle = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_TradeItems(m_pSteamInventory,ref pResultHandle,steamIDTradePartner,pArrayGive,pArrayGiveQuantity,(uint) pArrayGiveQuantity.Length,pArrayGet,pArrayGetQuantity,(uint) pArrayGetQuantity.Length); - return result; -} -public override bool LoadItemDefinitions() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_LoadItemDefinitions(m_pSteamInventory); - return result; -} -public override bool GetItemDefinitionIDs(out int [] pItemDefIDs) -{ - CheckIfUsable(); - uint punItemDefIDsArraySize = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemDefinitionIDs(m_pSteamInventory,null,ref punItemDefIDsArraySize); - pItemDefIDs= new int[punItemDefIDsArraySize]; - result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemDefinitionIDs(m_pSteamInventory,pItemDefIDs,ref punItemDefIDsArraySize); - return result; -} -public override bool GetItemDefinitionProperty(int iDefinition,string pchPropertyName,out string pchValueBuffer) -{ - CheckIfUsable(); - uint punValueBufferSizeOut = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemDefinitionProperty(m_pSteamInventory,iDefinition,pchPropertyName,null,ref punValueBufferSizeOut); - System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder((int)punValueBufferSizeOut); - result = NativeEntrypoints.SteamAPI_ISteamInventory_GetItemDefinitionProperty(m_pSteamInventory,iDefinition,pchPropertyName,pStrBuffer1,ref punValueBufferSizeOut); - pchValueBuffer = pStrBuffer1.ToString(); - return result; -} -} - - -public class CSteamVideo : ISteamVideo -{ -public CSteamVideo(IntPtr SteamVideo) -{ - m_pSteamVideo = SteamVideo; -} -IntPtr m_pSteamVideo; - -public override IntPtr GetIntPtr() { return m_pSteamVideo; } - -private void CheckIfUsable() -{ - if (m_pSteamVideo == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override void GetVideoURL(uint unVideoAppID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamVideo_GetVideoURL(m_pSteamVideo,unVideoAppID); -} -public override bool IsBroadcasting(ref int pnNumViewers) -{ - CheckIfUsable(); - pnNumViewers = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamVideo_IsBroadcasting(m_pSteamVideo,ref pnNumViewers); - return result; -} -} - - -public class CSteamGameServer : ISteamGameServer -{ -public CSteamGameServer(IntPtr SteamGameServer) -{ - m_pSteamGameServer = SteamGameServer; -} -IntPtr m_pSteamGameServer; - -public override IntPtr GetIntPtr() { return m_pSteamGameServer; } - -private void CheckIfUsable() -{ - if (m_pSteamGameServer == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override bool InitGameServer(uint unIP,char usGamePort,char usQueryPort,uint unFlags,uint nGameAppId,string pchVersionString) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_InitGameServer(m_pSteamGameServer,unIP,usGamePort,usQueryPort,unFlags,nGameAppId,pchVersionString); - return result; -} -public override void SetProduct(string pszProduct) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetProduct(m_pSteamGameServer,pszProduct); -} -public override void SetGameDescription(string pszGameDescription) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetGameDescription(m_pSteamGameServer,pszGameDescription); -} -public override void SetModDir(string pszModDir) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetModDir(m_pSteamGameServer,pszModDir); -} -public override void SetDedicatedServer(bool bDedicated) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetDedicatedServer(m_pSteamGameServer,bDedicated); -} -public override void LogOn(string pszToken) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_LogOn(m_pSteamGameServer,pszToken); -} -public override void LogOnAnonymous() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_LogOnAnonymous(m_pSteamGameServer); -} -public override void LogOff() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_LogOff(m_pSteamGameServer); -} -public override bool BLoggedOn() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_BLoggedOn(m_pSteamGameServer); - return result; -} -public override bool BSecure() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_BSecure(m_pSteamGameServer); - return result; -} -public override ulong GetSteamID() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetSteamID(m_pSteamGameServer); - return result; -} -public override bool WasRestartRequested() -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_WasRestartRequested(m_pSteamGameServer); - return result; -} -public override void SetMaxPlayerCount(int cPlayersMax) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetMaxPlayerCount(m_pSteamGameServer,cPlayersMax); -} -public override void SetBotPlayerCount(int cBotplayers) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetBotPlayerCount(m_pSteamGameServer,cBotplayers); -} -public override void SetServerName(string pszServerName) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetServerName(m_pSteamGameServer,pszServerName); -} -public override void SetMapName(string pszMapName) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetMapName(m_pSteamGameServer,pszMapName); -} -public override void SetPasswordProtected(bool bPasswordProtected) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetPasswordProtected(m_pSteamGameServer,bPasswordProtected); -} -public override void SetSpectatorPort(char unSpectatorPort) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetSpectatorPort(m_pSteamGameServer,unSpectatorPort); -} -public override void SetSpectatorServerName(string pszSpectatorServerName) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetSpectatorServerName(m_pSteamGameServer,pszSpectatorServerName); -} -public override void ClearAllKeyValues() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_ClearAllKeyValues(m_pSteamGameServer); -} -public override void SetKeyValue(string pKey,string pValue) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetKeyValue(m_pSteamGameServer,pKey,pValue); -} -public override void SetGameTags(string pchGameTags) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetGameTags(m_pSteamGameServer,pchGameTags); -} -public override void SetGameData(string pchGameData) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetGameData(m_pSteamGameServer,pchGameData); -} -public override void SetRegion(string pszRegion) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetRegion(m_pSteamGameServer,pszRegion); -} -public override bool SendUserConnectAndAuthenticate(uint unIPClient,IntPtr pvAuthBlob,uint cubAuthBlobSize,ref CSteamID pSteamIDUser) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate(m_pSteamGameServer,unIPClient,pvAuthBlob,cubAuthBlobSize,ref pSteamIDUser); - return result; -} -public override ulong CreateUnauthenticatedUserConnection() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection(m_pSteamGameServer); - return result; -} -public override void SendUserDisconnect(ulong steamIDUser) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SendUserDisconnect(m_pSteamGameServer,steamIDUser); -} -public override bool BUpdateUserData(ulong steamIDUser,string pchPlayerName,uint uScore) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_BUpdateUserData(m_pSteamGameServer,steamIDUser,pchPlayerName,uScore); - return result; -} -public override uint GetAuthSessionTicket(IntPtr pTicket,int cbMaxTicket,ref uint pcbTicket) -{ - CheckIfUsable(); - pcbTicket = 0; - uint result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetAuthSessionTicket(m_pSteamGameServer,pTicket,cbMaxTicket,ref pcbTicket); - return result; -} -public override uint BeginAuthSession(IntPtr pAuthTicket,int cbAuthTicket,ulong steamID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamGameServer_BeginAuthSession(m_pSteamGameServer,pAuthTicket,cbAuthTicket,steamID); - return result; -} -public override void EndAuthSession(ulong steamID) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_EndAuthSession(m_pSteamGameServer,steamID); -} -public override void CancelAuthTicket(uint hAuthTicket) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_CancelAuthTicket(m_pSteamGameServer,hAuthTicket); -} -public override uint UserHasLicenseForApp(ulong steamID,uint appID) -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamGameServer_UserHasLicenseForApp(m_pSteamGameServer,steamID,appID); - return result; -} -public override bool RequestUserGroupStatus(ulong steamIDUser,ulong steamIDGroup) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_RequestUserGroupStatus(m_pSteamGameServer,steamIDUser,steamIDGroup); - return result; -} -public override void GetGameplayStats() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_GetGameplayStats(m_pSteamGameServer); -} -public override ulong GetServerReputation() -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetServerReputation(m_pSteamGameServer); - return result; -} -public override uint GetPublicIP() -{ - CheckIfUsable(); - uint result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetPublicIP(m_pSteamGameServer); - return result; -} -public override bool HandleIncomingPacket(IntPtr pData,int cbData,uint srcIP,char srcPort) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServer_HandleIncomingPacket(m_pSteamGameServer,pData,cbData,srcIP,srcPort); - return result; -} -public override int GetNextOutgoingPacket(IntPtr pOut,int cbMaxOut,ref uint pNetAdr,ref char pPort) -{ - CheckIfUsable(); - pNetAdr = 0; - pPort = (char) 0; - int result = NativeEntrypoints.SteamAPI_ISteamGameServer_GetNextOutgoingPacket(m_pSteamGameServer,pOut,cbMaxOut,ref pNetAdr,ref pPort); - return result; -} -public override void EnableHeartbeats(bool bActive) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_EnableHeartbeats(m_pSteamGameServer,bActive); -} -public override void SetHeartbeatInterval(int iHeartbeatInterval) -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_SetHeartbeatInterval(m_pSteamGameServer,iHeartbeatInterval); -} -public override void ForceHeartbeat() -{ - CheckIfUsable(); - NativeEntrypoints.SteamAPI_ISteamGameServer_ForceHeartbeat(m_pSteamGameServer); -} -public override ulong AssociateWithClan(ulong steamIDClan) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_AssociateWithClan(m_pSteamGameServer,steamIDClan); - return result; -} -public override ulong ComputeNewPlayerCompatibility(ulong steamIDNewPlayer) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility(m_pSteamGameServer,steamIDNewPlayer); - return result; -} -} - - -public class CSteamGameServerStats : ISteamGameServerStats -{ -public CSteamGameServerStats(IntPtr SteamGameServerStats) -{ - m_pSteamGameServerStats = SteamGameServerStats; -} -IntPtr m_pSteamGameServerStats; - -public override IntPtr GetIntPtr() { return m_pSteamGameServerStats; } - -private void CheckIfUsable() -{ - if (m_pSteamGameServerStats == IntPtr.Zero) - { - throw new Exception("Steam Pointer not configured"); - } -} -public override ulong RequestUserStats(ulong steamIDUser) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_RequestUserStats(m_pSteamGameServerStats,steamIDUser); - return result; -} -public override bool GetUserStat(ulong steamIDUser,string pchName,ref int pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_GetUserStat(m_pSteamGameServerStats,steamIDUser,pchName,ref pData); - return result; -} -public override bool GetUserStat0(ulong steamIDUser,string pchName,ref float pData) -{ - CheckIfUsable(); - pData = 0; - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_GetUserStat0(m_pSteamGameServerStats,steamIDUser,pchName,ref pData); - return result; -} -public override bool GetUserAchievement(ulong steamIDUser,string pchName,ref bool pbAchieved) -{ - CheckIfUsable(); - pbAchieved = false; - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_GetUserAchievement(m_pSteamGameServerStats,steamIDUser,pchName,ref pbAchieved); - return result; -} -public override bool SetUserStat(ulong steamIDUser,string pchName,int nData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_SetUserStat(m_pSteamGameServerStats,steamIDUser,pchName,nData); - return result; -} -public override bool SetUserStat0(ulong steamIDUser,string pchName,float fData) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_SetUserStat0(m_pSteamGameServerStats,steamIDUser,pchName,fData); - return result; -} -public override bool UpdateUserAvgRateStat(ulong steamIDUser,string pchName,float flCountThisSession,double dSessionLength) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat(m_pSteamGameServerStats,steamIDUser,pchName,flCountThisSession,dSessionLength); - return result; -} -public override bool SetUserAchievement(ulong steamIDUser,string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_SetUserAchievement(m_pSteamGameServerStats,steamIDUser,pchName); - return result; -} -public override bool ClearUserAchievement(ulong steamIDUser,string pchName) -{ - CheckIfUsable(); - bool result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_ClearUserAchievement(m_pSteamGameServerStats,steamIDUser,pchName); - return result; -} -public override ulong StoreUserStats(ulong steamIDUser) -{ - CheckIfUsable(); - ulong result = NativeEntrypoints.SteamAPI_ISteamGameServerStats_StoreUserStats(m_pSteamGameServerStats,steamIDUser); - return result; -} -} - - -public class CUserStatsReceived_t_Callback -{ - public CUserStatsReceived_t_Callback() { } - ~CUserStatsReceived_t_Callback() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_RemoveCallback(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(Valve.Interop.NativeEntrypoints.SteamAPI_UserStatsReceived_t_Callback func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_RemoveCallback(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_SetCallback(func); - } -} -public class CRemoteStorageFileReadAsyncComplete_t_CallResult -{ - public CRemoteStorageFileReadAsyncComplete_t_CallResult() { } - ~CRemoteStorageFileReadAsyncComplete_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileReadAsyncComplete_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageFileReadAsyncComplete_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileReadAsyncComplete_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageFileReadAsyncComplete_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult -{ - public CRemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult() { } - ~CRemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedItemVoteDetailsResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageGetPublishedItemVoteDetailsResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedItemVoteDetailsResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedItemVoteDetailsResult_t_SetCallResult(hAPICall, func); - } -} -public class CFileDetailsResult_t_CallResult -{ - public CFileDetailsResult_t_CallResult() { } - ~CFileDetailsResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFileDetailsResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_FileDetailsResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFileDetailsResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CFileDetailsResult_t_SetCallResult(hAPICall, func); - } -} -public class CGSStatsStored_t_CallResult -{ - public CGSStatsStored_t_CallResult() { } - ~CGSStatsStored_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSStatsStored_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GSStatsStored_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSStatsStored_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGSStatsStored_t_SetCallResult(hAPICall, func); - } -} -public class CHTML_BrowserReady_t_CallResult -{ - public CHTML_BrowserReady_t_CallResult() { } - ~CHTML_BrowserReady_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CHTML_BrowserReady_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_HTML_BrowserReady_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CHTML_BrowserReady_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CHTML_BrowserReady_t_SetCallResult(hAPICall, func); - } -} -public class CFriendsGetFollowerCount_t_CallResult -{ - public CFriendsGetFollowerCount_t_CallResult() { } - ~CFriendsGetFollowerCount_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsGetFollowerCount_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_FriendsGetFollowerCount_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsGetFollowerCount_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CFriendsGetFollowerCount_t_SetCallResult(hAPICall, func); - } -} -public class CFriendsIsFollowing_t_CallResult -{ - public CFriendsIsFollowing_t_CallResult() { } - ~CFriendsIsFollowing_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsIsFollowing_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_FriendsIsFollowing_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsIsFollowing_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CFriendsIsFollowing_t_SetCallResult(hAPICall, func); - } -} -public class CLobbyMatchList_t_CallResult -{ - public CLobbyMatchList_t_CallResult() { } - ~CLobbyMatchList_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyMatchList_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LobbyMatchList_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyMatchList_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLobbyMatchList_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageUpdatePublishedFileResult_t_CallResult -{ - public CRemoteStorageUpdatePublishedFileResult_t_CallResult() { } - ~CRemoteStorageUpdatePublishedFileResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUpdatePublishedFileResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageUpdatePublishedFileResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUpdatePublishedFileResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageUpdatePublishedFileResult_t_SetCallResult(hAPICall, func); - } -} -public class CStoreAuthURLResponse_t_CallResult -{ - public CStoreAuthURLResponse_t_CallResult() { } - ~CStoreAuthURLResponse_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CStoreAuthURLResponse_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_StoreAuthURLResponse_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CStoreAuthURLResponse_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CStoreAuthURLResponse_t_SetCallResult(hAPICall, func); - } -} -public class CLobbyCreated_t_CallResult -{ - public CLobbyCreated_t_CallResult() { } - ~CLobbyCreated_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyCreated_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LobbyCreated_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyCreated_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLobbyCreated_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageFileWriteAsyncComplete_t_CallResult -{ - public CRemoteStorageFileWriteAsyncComplete_t_CallResult() { } - ~CRemoteStorageFileWriteAsyncComplete_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileWriteAsyncComplete_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageFileWriteAsyncComplete_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileWriteAsyncComplete_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageFileWriteAsyncComplete_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageDeletePublishedFileResult_t_CallResult -{ - public CRemoteStorageDeletePublishedFileResult_t_CallResult() { } - ~CRemoteStorageDeletePublishedFileResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageDeletePublishedFileResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageDeletePublishedFileResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageDeletePublishedFileResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageDeletePublishedFileResult_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageGetPublishedFileDetailsResult_t_CallResult -{ - public CRemoteStorageGetPublishedFileDetailsResult_t_CallResult() { } - ~CRemoteStorageGetPublishedFileDetailsResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageGetPublishedFileDetailsResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedFileDetailsResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageGetPublishedFileDetailsResult_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageDownloadUGCResult_t_CallResult -{ - public CRemoteStorageDownloadUGCResult_t_CallResult() { } - ~CRemoteStorageDownloadUGCResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageDownloadUGCResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageDownloadUGCResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageDownloadUGCResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageDownloadUGCResult_t_SetCallResult(hAPICall, func); - } -} -public class CSteamUGCQueryCompleted_t_CallResult -{ - public CSteamUGCQueryCompleted_t_CallResult() { } - ~CSteamUGCQueryCompleted_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSteamUGCQueryCompleted_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_SteamUGCQueryCompleted_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSteamUGCQueryCompleted_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CSteamUGCQueryCompleted_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageFileShareResult_t_CallResult -{ - public CRemoteStorageFileShareResult_t_CallResult() { } - ~CRemoteStorageFileShareResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileShareResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageFileShareResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageFileShareResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageFileShareResult_t_SetCallResult(hAPICall, func); - } -} -public class CLobbyEnter_t_CallResult -{ - public CLobbyEnter_t_CallResult() { } - ~CLobbyEnter_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyEnter_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LobbyEnter_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLobbyEnter_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLobbyEnter_t_SetCallResult(hAPICall, func); - } -} -public class CSubmitItemUpdateResult_t_CallResult -{ - public CSubmitItemUpdateResult_t_CallResult() { } - ~CSubmitItemUpdateResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSubmitItemUpdateResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_SubmitItemUpdateResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSubmitItemUpdateResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CSubmitItemUpdateResult_t_SetCallResult(hAPICall, func); - } -} -public class CNumberOfCurrentPlayers_t_CallResult -{ - public CNumberOfCurrentPlayers_t_CallResult() { } - ~CNumberOfCurrentPlayers_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CNumberOfCurrentPlayers_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_NumberOfCurrentPlayers_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CNumberOfCurrentPlayers_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CNumberOfCurrentPlayers_t_SetCallResult(hAPICall, func); - } -} -public class CGSStatsReceived_t_CallResult -{ - public CGSStatsReceived_t_CallResult() { } - ~CGSStatsReceived_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSStatsReceived_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GSStatsReceived_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSStatsReceived_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGSStatsReceived_t_SetCallResult(hAPICall, func); - } -} -public class CLeaderboardScoresDownloaded_t_CallResult -{ - public CLeaderboardScoresDownloaded_t_CallResult() { } - ~CLeaderboardScoresDownloaded_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardScoresDownloaded_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LeaderboardScoresDownloaded_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardScoresDownloaded_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLeaderboardScoresDownloaded_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult -{ - public CRemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult() { } - ~CRemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUpdateUserPublishedItemVoteResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageUpdateUserPublishedItemVoteResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUpdateUserPublishedItemVoteResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageUpdateUserPublishedItemVoteResult_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult -{ - public CRemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult() { } - ~CRemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserSubscribedFilesResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageEnumerateUserSubscribedFilesResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserSubscribedFilesResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserSubscribedFilesResult_t_SetCallResult(hAPICall, func); - } -} -public class CCreateItemResult_t_CallResult -{ - public CCreateItemResult_t_CallResult() { } - ~CCreateItemResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CCreateItemResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_CreateItemResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CCreateItemResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CCreateItemResult_t_SetCallResult(hAPICall, func); - } -} -public class CSetUserItemVoteResult_t_CallResult -{ - public CSetUserItemVoteResult_t_CallResult() { } - ~CSetUserItemVoteResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSetUserItemVoteResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_SetUserItemVoteResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSetUserItemVoteResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CSetUserItemVoteResult_t_SetCallResult(hAPICall, func); - } -} -public class CComputeNewPlayerCompatibilityResult_t_CallResult -{ - public CComputeNewPlayerCompatibilityResult_t_CallResult() { } - ~CComputeNewPlayerCompatibilityResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CComputeNewPlayerCompatibilityResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_ComputeNewPlayerCompatibilityResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CComputeNewPlayerCompatibilityResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CComputeNewPlayerCompatibilityResult_t_SetCallResult(hAPICall, func); - } -} -public class CLeaderboardScoreUploaded_t_CallResult -{ - public CLeaderboardScoreUploaded_t_CallResult() { } - ~CLeaderboardScoreUploaded_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardScoreUploaded_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LeaderboardScoreUploaded_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardScoreUploaded_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLeaderboardScoreUploaded_t_SetCallResult(hAPICall, func); - } -} -public class CGlobalAchievementPercentagesReady_t_CallResult -{ - public CGlobalAchievementPercentagesReady_t_CallResult() { } - ~CGlobalAchievementPercentagesReady_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGlobalAchievementPercentagesReady_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GlobalAchievementPercentagesReady_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGlobalAchievementPercentagesReady_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGlobalAchievementPercentagesReady_t_SetCallResult(hAPICall, func); - } -} -public class CGlobalStatsReceived_t_CallResult -{ - public CGlobalStatsReceived_t_CallResult() { } - ~CGlobalStatsReceived_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGlobalStatsReceived_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GlobalStatsReceived_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGlobalStatsReceived_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGlobalStatsReceived_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult -{ - public CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult() { } - ~CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageEnumeratePublishedFilesByUserActionResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumeratePublishedFilesByUserActionResult_t_SetCallResult(hAPICall, func); - } -} -public class CClanOfficerListResponse_t_CallResult -{ - public CClanOfficerListResponse_t_CallResult() { } - ~CClanOfficerListResponse_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CClanOfficerListResponse_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_ClanOfficerListResponse_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CClanOfficerListResponse_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CClanOfficerListResponse_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStoragePublishFileProgress_t_CallResult -{ - public CRemoteStoragePublishFileProgress_t_CallResult() { } - ~CRemoteStoragePublishFileProgress_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStoragePublishFileProgress_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStoragePublishFileProgress_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStoragePublishFileProgress_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStoragePublishFileProgress_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageEnumerateWorkshopFilesResult_t_CallResult -{ - public CRemoteStorageEnumerateWorkshopFilesResult_t_CallResult() { } - ~CRemoteStorageEnumerateWorkshopFilesResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult(hAPICall, func); - } -} -public class CGSReputation_t_CallResult -{ - public CGSReputation_t_CallResult() { } - ~CGSReputation_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSReputation_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GSReputation_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGSReputation_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGSReputation_t_SetCallResult(hAPICall, func); - } -} -public class CUserFavoriteItemsListChanged_t_CallResult -{ - public CUserFavoriteItemsListChanged_t_CallResult() { } - ~CUserFavoriteItemsListChanged_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserFavoriteItemsListChanged_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_UserFavoriteItemsListChanged_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserFavoriteItemsListChanged_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CUserFavoriteItemsListChanged_t_SetCallResult(hAPICall, func); - } -} -public class CEncryptedAppTicketResponse_t_CallResult -{ - public CEncryptedAppTicketResponse_t_CallResult() { } - ~CEncryptedAppTicketResponse_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CEncryptedAppTicketResponse_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_EncryptedAppTicketResponse_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CEncryptedAppTicketResponse_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CEncryptedAppTicketResponse_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageSetUserPublishedFileActionResult_t_CallResult -{ - public CRemoteStorageSetUserPublishedFileActionResult_t_CallResult() { } - ~CRemoteStorageSetUserPublishedFileActionResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageSetUserPublishedFileActionResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageSetUserPublishedFileActionResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageSetUserPublishedFileActionResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageSetUserPublishedFileActionResult_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageEnumerateUserPublishedFilesResult_t_CallResult -{ - public CRemoteStorageEnumerateUserPublishedFilesResult_t_CallResult() { } - ~CRemoteStorageEnumerateUserPublishedFilesResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserPublishedFilesResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageEnumerateUserPublishedFilesResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserPublishedFilesResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateUserPublishedFilesResult_t_SetCallResult(hAPICall, func); - } -} -public class CFriendsEnumerateFollowingList_t_CallResult -{ - public CFriendsEnumerateFollowingList_t_CallResult() { } - ~CFriendsEnumerateFollowingList_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsEnumerateFollowingList_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_FriendsEnumerateFollowingList_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CFriendsEnumerateFollowingList_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CFriendsEnumerateFollowingList_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageSubscribePublishedFileResult_t_CallResult -{ - public CRemoteStorageSubscribePublishedFileResult_t_CallResult() { } - ~CRemoteStorageSubscribePublishedFileResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageSubscribePublishedFileResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageSubscribePublishedFileResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageSubscribePublishedFileResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageSubscribePublishedFileResult_t_SetCallResult(hAPICall, func); - } -} -public class CGetUserItemVoteResult_t_CallResult -{ - public CGetUserItemVoteResult_t_CallResult() { } - ~CGetUserItemVoteResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGetUserItemVoteResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_GetUserItemVoteResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CGetUserItemVoteResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CGetUserItemVoteResult_t_SetCallResult(hAPICall, func); - } -} -public class CAssociateWithClanResult_t_CallResult -{ - public CAssociateWithClanResult_t_CallResult() { } - ~CAssociateWithClanResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CAssociateWithClanResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_AssociateWithClanResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CAssociateWithClanResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CAssociateWithClanResult_t_SetCallResult(hAPICall, func); - } -} -public class CLeaderboardUGCSet_t_CallResult -{ - public CLeaderboardUGCSet_t_CallResult() { } - ~CLeaderboardUGCSet_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardUGCSet_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LeaderboardUGCSet_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardUGCSet_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLeaderboardUGCSet_t_SetCallResult(hAPICall, func); - } -} -public class CCheckFileSignature_t_CallResult -{ - public CCheckFileSignature_t_CallResult() { } - ~CCheckFileSignature_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CCheckFileSignature_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_CheckFileSignature_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CCheckFileSignature_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CCheckFileSignature_t_SetCallResult(hAPICall, func); - } -} -public class CRemoteStorageUnsubscribePublishedFileResult_t_CallResult -{ - public CRemoteStorageUnsubscribePublishedFileResult_t_CallResult() { } - ~CRemoteStorageUnsubscribePublishedFileResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUnsubscribePublishedFileResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoteStorageUnsubscribePublishedFileResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CRemoteStorageUnsubscribePublishedFileResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageUnsubscribePublishedFileResult_t_SetCallResult(hAPICall, func); - } -} -public class CSetPersonaNameResponse_t_CallResult -{ - public CSetPersonaNameResponse_t_CallResult() { } - ~CSetPersonaNameResponse_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSetPersonaNameResponse_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_SetPersonaNameResponse_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CSetPersonaNameResponse_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CSetPersonaNameResponse_t_SetCallResult(hAPICall, func); - } -} -public class CUserStatsReceived_t_CallResult -{ - public CUserStatsReceived_t_CallResult() { } - ~CUserStatsReceived_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_UserStatsReceived_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CUserStatsReceived_t_SetCallResult(hAPICall, func); - } -} -public class CJoinClanChatRoomCompletionResult_t_CallResult -{ - public CJoinClanChatRoomCompletionResult_t_CallResult() { } - ~CJoinClanChatRoomCompletionResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CJoinClanChatRoomCompletionResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_JoinClanChatRoomCompletionResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CJoinClanChatRoomCompletionResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CJoinClanChatRoomCompletionResult_t_SetCallResult(hAPICall, func); - } -} -public class CLeaderboardFindResult_t_CallResult -{ - public CLeaderboardFindResult_t_CallResult() { } - ~CLeaderboardFindResult_t_CallResult() - { - if(m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardFindResult_t_RemoveCallResult(m_Handle); - } - } - ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_LeaderboardFindResult_t_CallResult func) - { - if (m_Handle != 0) - { - Valve.Interop.NativeEntrypoints.CLeaderboardFindResult_t_RemoveCallResult(m_Handle); - } - m_Handle = Valve.Interop.NativeEntrypoints.CLeaderboardFindResult_t_SetCallResult(hAPICall, func); - } -} -public class SteamAPIInterop -{ -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_RestartAppIfNecessary")] -internal static extern void SteamAPI_RestartAppIfNecessary(uint unOwnAppID ); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_Init")] -internal static extern void SteamAPI_Init(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_RunCallbacks")] -internal static extern void SteamAPI_RunCallbacks(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_RegisterCallback")] -internal static extern void SteamAPI_RegisterCallback(IntPtr pCallback, int iCallback); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_UnregisterCallback")] -internal static extern void SteamAPI_UnregisterCallback(IntPtr pCallback); -[DllImportAttribute("Steam_api", EntryPoint = "SteamClient")] -internal static extern IntPtr SteamClient(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUser")] -internal static extern IntPtr SteamUser(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamFriends")] -internal static extern IntPtr SteamFriends(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUtils")] -internal static extern IntPtr SteamUtils(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmaking")] -internal static extern IntPtr SteamMatchmaking(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingServerListResponse")] -internal static extern IntPtr SteamMatchmakingServerListResponse(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingPingResponse")] -internal static extern IntPtr SteamMatchmakingPingResponse(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingPlayersResponse")] -internal static extern IntPtr SteamMatchmakingPlayersResponse(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingRulesResponse")] -internal static extern IntPtr SteamMatchmakingRulesResponse(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMatchmakingServers")] -internal static extern IntPtr SteamMatchmakingServers(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamRemoteStorage")] -internal static extern IntPtr SteamRemoteStorage(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUserStats")] -internal static extern IntPtr SteamUserStats(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamApps")] -internal static extern IntPtr SteamApps(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamNetworking")] -internal static extern IntPtr SteamNetworking(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamScreenshots")] -internal static extern IntPtr SteamScreenshots(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMusic")] -internal static extern IntPtr SteamMusic(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamMusicRemote")] -internal static extern IntPtr SteamMusicRemote(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamHTTP")] -internal static extern IntPtr SteamHTTP(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUnifiedMessages")] -internal static extern IntPtr SteamUnifiedMessages(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamController")] -internal static extern IntPtr SteamController(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamUGC")] -internal static extern IntPtr SteamUGC(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamAppList")] -internal static extern IntPtr SteamAppList(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamHTMLSurface")] -internal static extern IntPtr SteamHTMLSurface(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamInventory")] -internal static extern IntPtr SteamInventory(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamVideo")] -internal static extern IntPtr SteamVideo(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamGameServer")] -internal static extern IntPtr SteamGameServer(); -[DllImportAttribute("Steam_api", EntryPoint = "SteamGameServerStats")] -internal static extern IntPtr SteamGameServerStats(); -} - - -public enum EUniverse -{ - k_EUniverseInvalid = 0, - k_EUniversePublic = 1, - k_EUniverseBeta = 2, - k_EUniverseInternal = 3, - k_EUniverseDev = 4, - k_EUniverseMax = 5, -} -public enum EResult -{ - k_EResultOK = 1, - k_EResultFail = 2, - k_EResultNoConnection = 3, - k_EResultInvalidPassword = 5, - k_EResultLoggedInElsewhere = 6, - k_EResultInvalidProtocolVer = 7, - k_EResultInvalidParam = 8, - k_EResultFileNotFound = 9, - k_EResultBusy = 10, - k_EResultInvalidState = 11, - k_EResultInvalidName = 12, - k_EResultInvalidEmail = 13, - k_EResultDuplicateName = 14, - k_EResultAccessDenied = 15, - k_EResultTimeout = 16, - k_EResultBanned = 17, - k_EResultAccountNotFound = 18, - k_EResultInvalidSteamID = 19, - k_EResultServiceUnavailable = 20, - k_EResultNotLoggedOn = 21, - k_EResultPending = 22, - k_EResultEncryptionFailure = 23, - k_EResultInsufficientPrivilege = 24, - k_EResultLimitExceeded = 25, - k_EResultRevoked = 26, - k_EResultExpired = 27, - k_EResultAlreadyRedeemed = 28, - k_EResultDuplicateRequest = 29, - k_EResultAlreadyOwned = 30, - k_EResultIPNotFound = 31, - k_EResultPersistFailed = 32, - k_EResultLockingFailed = 33, - k_EResultLogonSessionReplaced = 34, - k_EResultConnectFailed = 35, - k_EResultHandshakeFailed = 36, - k_EResultIOFailure = 37, - k_EResultRemoteDisconnect = 38, - k_EResultShoppingCartNotFound = 39, - k_EResultBlocked = 40, - k_EResultIgnored = 41, - k_EResultNoMatch = 42, - k_EResultAccountDisabled = 43, - k_EResultServiceReadOnly = 44, - k_EResultAccountNotFeatured = 45, - k_EResultAdministratorOK = 46, - k_EResultContentVersion = 47, - k_EResultTryAnotherCM = 48, - k_EResultPasswordRequiredToKickSession = 49, - k_EResultAlreadyLoggedInElsewhere = 50, - k_EResultSuspended = 51, - k_EResultCancelled = 52, - k_EResultDataCorruption = 53, - k_EResultDiskFull = 54, - k_EResultRemoteCallFailed = 55, - k_EResultPasswordUnset = 56, - k_EResultExternalAccountUnlinked = 57, - k_EResultPSNTicketInvalid = 58, - k_EResultExternalAccountAlreadyLinked = 59, - k_EResultRemoteFileConflict = 60, - k_EResultIllegalPassword = 61, - k_EResultSameAsPreviousValue = 62, - k_EResultAccountLogonDenied = 63, - k_EResultCannotUseOldPassword = 64, - k_EResultInvalidLoginAuthCode = 65, - k_EResultAccountLogonDeniedNoMail = 66, - k_EResultHardwareNotCapableOfIPT = 67, - k_EResultIPTInitError = 68, - k_EResultParentalControlRestricted = 69, - k_EResultFacebookQueryError = 70, - k_EResultExpiredLoginAuthCode = 71, - k_EResultIPLoginRestrictionFailed = 72, - k_EResultAccountLockedDown = 73, - k_EResultAccountLogonDeniedVerifiedEmailRequired = 74, - k_EResultNoMatchingURL = 75, - k_EResultBadResponse = 76, - k_EResultRequirePasswordReEntry = 77, - k_EResultValueOutOfRange = 78, - k_EResultUnexpectedError = 79, - k_EResultDisabled = 80, - k_EResultInvalidCEGSubmission = 81, - k_EResultRestrictedDevice = 82, - k_EResultRegionLocked = 83, - k_EResultRateLimitExceeded = 84, - k_EResultAccountLoginDeniedNeedTwoFactor = 85, - k_EResultItemDeleted = 86, - k_EResultAccountLoginDeniedThrottle = 87, - k_EResultTwoFactorCodeMismatch = 88, - k_EResultTwoFactorActivationCodeMismatch = 89, - k_EResultAccountAssociatedToMultiplePartners = 90, - k_EResultNotModified = 91, - k_EResultNoMobileDevice = 92, - k_EResultTimeNotSynced = 93, - k_EResultSmsCodeFailed = 94, - k_EResultAccountLimitExceeded = 95, - k_EResultAccountActivityLimitExceeded = 96, - k_EResultPhoneActivityLimitExceeded = 97, - k_EResultRefundToWallet = 98, - k_EResultEmailSendFailure = 99, - k_EResultNotSettled = 100, - k_EResultNeedCaptcha = 101, - k_EResultGSLTDenied = 102, - k_EResultGSOwnerDenied = 103, - k_EResultInvalidItemType = 104, - k_EResultIPBanned = 105, - k_EResultGSLTExpired = 106, -} -public enum EVoiceResult -{ - k_EVoiceResultOK = 0, - k_EVoiceResultNotInitialized = 1, - k_EVoiceResultNotRecording = 2, - k_EVoiceResultNoData = 3, - k_EVoiceResultBufferTooSmall = 4, - k_EVoiceResultDataCorrupted = 5, - k_EVoiceResultRestricted = 6, - k_EVoiceResultUnsupportedCodec = 7, - k_EVoiceResultReceiverOutOfDate = 8, - k_EVoiceResultReceiverDidNotAnswer = 9, -} -public enum EDenyReason -{ - k_EDenyInvalid = 0, - k_EDenyInvalidVersion = 1, - k_EDenyGeneric = 2, - k_EDenyNotLoggedOn = 3, - k_EDenyNoLicense = 4, - k_EDenyCheater = 5, - k_EDenyLoggedInElseWhere = 6, - k_EDenyUnknownText = 7, - k_EDenyIncompatibleAnticheat = 8, - k_EDenyMemoryCorruption = 9, - k_EDenyIncompatibleSoftware = 10, - k_EDenySteamConnectionLost = 11, - k_EDenySteamConnectionError = 12, - k_EDenySteamResponseTimedOut = 13, - k_EDenySteamValidationStalled = 14, - k_EDenySteamOwnerLeftGuestUser = 15, -} -public enum EBeginAuthSessionResult -{ - k_EBeginAuthSessionResultOK = 0, - k_EBeginAuthSessionResultInvalidTicket = 1, - k_EBeginAuthSessionResultDuplicateRequest = 2, - k_EBeginAuthSessionResultInvalidVersion = 3, - k_EBeginAuthSessionResultGameMismatch = 4, - k_EBeginAuthSessionResultExpiredTicket = 5, -} -public enum EAuthSessionResponse -{ - k_EAuthSessionResponseOK = 0, - k_EAuthSessionResponseUserNotConnectedToSteam = 1, - k_EAuthSessionResponseNoLicenseOrExpired = 2, - k_EAuthSessionResponseVACBanned = 3, - k_EAuthSessionResponseLoggedInElseWhere = 4, - k_EAuthSessionResponseVACCheckTimedOut = 5, - k_EAuthSessionResponseAuthTicketCanceled = 6, - k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed = 7, - k_EAuthSessionResponseAuthTicketInvalid = 8, - k_EAuthSessionResponsePublisherIssuedBan = 9, -} -public enum EUserHasLicenseForAppResult -{ - k_EUserHasLicenseResultHasLicense = 0, - k_EUserHasLicenseResultDoesNotHaveLicense = 1, - k_EUserHasLicenseResultNoAuth = 2, -} -public enum EAccountType -{ - k_EAccountTypeInvalid = 0, - k_EAccountTypeIndividual = 1, - k_EAccountTypeMultiseat = 2, - k_EAccountTypeGameServer = 3, - k_EAccountTypeAnonGameServer = 4, - k_EAccountTypePending = 5, - k_EAccountTypeContentServer = 6, - k_EAccountTypeClan = 7, - k_EAccountTypeChat = 8, - k_EAccountTypeConsoleUser = 9, - k_EAccountTypeAnonUser = 10, - k_EAccountTypeMax = 11, -} -public enum EAppReleaseState -{ - k_EAppReleaseState_Unknown = 0, - k_EAppReleaseState_Unavailable = 1, - k_EAppReleaseState_Prerelease = 2, - k_EAppReleaseState_PreloadOnly = 3, - k_EAppReleaseState_Released = 4, -} -public enum EAppOwnershipFlags -{ - k_EAppOwnershipFlags_None = 0, - k_EAppOwnershipFlags_OwnsLicense = 1, - k_EAppOwnershipFlags_FreeLicense = 2, - k_EAppOwnershipFlags_RegionRestricted = 4, - k_EAppOwnershipFlags_LowViolence = 8, - k_EAppOwnershipFlags_InvalidPlatform = 16, - k_EAppOwnershipFlags_SharedLicense = 32, - k_EAppOwnershipFlags_FreeWeekend = 64, - k_EAppOwnershipFlags_RetailLicense = 128, - k_EAppOwnershipFlags_LicenseLocked = 256, - k_EAppOwnershipFlags_LicensePending = 512, - k_EAppOwnershipFlags_LicenseExpired = 1024, - k_EAppOwnershipFlags_LicensePermanent = 2048, - k_EAppOwnershipFlags_LicenseRecurring = 4096, - k_EAppOwnershipFlags_LicenseCanceled = 8192, - k_EAppOwnershipFlags_AutoGrant = 16384, - k_EAppOwnershipFlags_PendingGift = 32768, - k_EAppOwnershipFlags_RentalNotActivated = 65536, - k_EAppOwnershipFlags_Rental = 131072, -} -public enum EAppType -{ - k_EAppType_Invalid = 0, - k_EAppType_Game = 1, - k_EAppType_Application = 2, - k_EAppType_Tool = 4, - k_EAppType_Demo = 8, - k_EAppType_Media_DEPRECATED = 16, - k_EAppType_DLC = 32, - k_EAppType_Guide = 64, - k_EAppType_Driver = 128, - k_EAppType_Config = 256, - k_EAppType_Hardware = 512, - k_EAppType_Franchise = 1024, - k_EAppType_Video = 2048, - k_EAppType_Plugin = 4096, - k_EAppType_Music = 8192, - k_EAppType_Series = 16384, - k_EAppType_Shortcut = 1073741824, - k_EAppType_DepotOnly = -2147483648, -} -public enum ESteamUserStatType -{ - k_ESteamUserStatTypeINVALID = 0, - k_ESteamUserStatTypeINT = 1, - k_ESteamUserStatTypeFLOAT = 2, - k_ESteamUserStatTypeAVGRATE = 3, - k_ESteamUserStatTypeACHIEVEMENTS = 4, - k_ESteamUserStatTypeGROUPACHIEVEMENTS = 5, - k_ESteamUserStatTypeMAX = 6, -} -public enum EChatEntryType -{ - k_EChatEntryTypeInvalid = 0, - k_EChatEntryTypeChatMsg = 1, - k_EChatEntryTypeTyping = 2, - k_EChatEntryTypeInviteGame = 3, - k_EChatEntryTypeEmote = 4, - k_EChatEntryTypeLeftConversation = 6, - k_EChatEntryTypeEntered = 7, - k_EChatEntryTypeWasKicked = 8, - k_EChatEntryTypeWasBanned = 9, - k_EChatEntryTypeDisconnected = 10, - k_EChatEntryTypeHistoricalChat = 11, - k_EChatEntryTypeLinkBlocked = 14, -} -public enum EChatRoomEnterResponse -{ - k_EChatRoomEnterResponseSuccess = 1, - k_EChatRoomEnterResponseDoesntExist = 2, - k_EChatRoomEnterResponseNotAllowed = 3, - k_EChatRoomEnterResponseFull = 4, - k_EChatRoomEnterResponseError = 5, - k_EChatRoomEnterResponseBanned = 6, - k_EChatRoomEnterResponseLimited = 7, - k_EChatRoomEnterResponseClanDisabled = 8, - k_EChatRoomEnterResponseCommunityBan = 9, - k_EChatRoomEnterResponseMemberBlockedYou = 10, - k_EChatRoomEnterResponseYouBlockedMember = 11, -} -public enum EChatSteamIDInstanceFlags -{ - k_EChatAccountInstanceMask = 4095, - k_EChatInstanceFlagClan = 524288, - k_EChatInstanceFlagLobby = 262144, - k_EChatInstanceFlagMMSLobby = 131072, -} -public enum EMarketingMessageFlags -{ - k_EMarketingMessageFlagsNone = 0, - k_EMarketingMessageFlagsHighPriority = 1, - k_EMarketingMessageFlagsPlatformWindows = 2, - k_EMarketingMessageFlagsPlatformMac = 4, - k_EMarketingMessageFlagsPlatformLinux = 8, - k_EMarketingMessageFlagsPlatformRestrictions = 14, -} -public enum ENotificationPosition -{ - k_EPositionTopLeft = 0, - k_EPositionTopRight = 1, - k_EPositionBottomLeft = 2, - k_EPositionBottomRight = 3, -} -public enum EBroadcastUploadResult -{ - k_EBroadcastUploadResultNone = 0, - k_EBroadcastUploadResultOK = 1, - k_EBroadcastUploadResultInitFailed = 2, - k_EBroadcastUploadResultFrameFailed = 3, - k_EBroadcastUploadResultTimeout = 4, - k_EBroadcastUploadResultBandwidthExceeded = 5, - k_EBroadcastUploadResultLowFPS = 6, - k_EBroadcastUploadResultMissingKeyFrames = 7, - k_EBroadcastUploadResultNoConnection = 8, - k_EBroadcastUploadResultRelayFailed = 9, - k_EBroadcastUploadResultSettingsChanged = 10, - k_EBroadcastUploadResultMissingAudio = 11, - k_EBroadcastUploadResultTooFarBehind = 12, - k_EBroadcastUploadResultTranscodeBehind = 13, -} -public enum ELaunchOptionType -{ - k_ELaunchOptionType_None = 0, - k_ELaunchOptionType_Default = 1, - k_ELaunchOptionType_SafeMode = 2, - k_ELaunchOptionType_Multiplayer = 3, - k_ELaunchOptionType_Config = 4, - k_ELaunchOptionType_OpenVR = 5, - k_ELaunchOptionType_Server = 6, - k_ELaunchOptionType_Editor = 7, - k_ELaunchOptionType_Manual = 8, - k_ELaunchOptionType_Benchmark = 9, - k_ELaunchOptionType_Option1 = 10, - k_ELaunchOptionType_Option2 = 11, - k_ELaunchOptionType_Option3 = 12, - k_ELaunchOptionType_OculusVR = 13, - k_ELaunchOptionType_OpenVROverlay = 14, - k_ELaunchOptionType_OSVR = 15, - k_ELaunchOptionType_Dialog = 1000, -} -public enum EVRHMDType -{ - k_eEVRHMDType_None = -1, - k_eEVRHMDType_Unknown = 0, - k_eEVRHMDType_HTC_Dev = 1, - k_eEVRHMDType_HTC_VivePre = 2, - k_eEVRHMDType_HTC_Vive = 3, - k_eEVRHMDType_HTC_Unknown = 20, - k_eEVRHMDType_Oculus_DK1 = 21, - k_eEVRHMDType_Oculus_DK2 = 22, - k_eEVRHMDType_Oculus_Rift = 23, - k_eEVRHMDType_Oculus_Unknown = 40, -} -public enum EControllerType -{ - k_eControllerType_None = -1, - k_eControllerType_Unknown = 0, - k_eControllerType_UnknownSteamController = 1, - k_eControllerType_SteamController = 2, - k_eControllerType_UnknownNonSteamController = 30, - k_eControllerType_XBox360Controller = 31, - k_eControllerType_XBoxOneController = 32, - k_eControllerType_PS3Controller = 33, - k_eControllerType_PS4Controller = 34, - k_eControllerType_WiiController = 35, - k_eControllerType_AppleController = 36, -} -public enum EFailureType -{ - k_EFailureFlushedCallbackQueue = 0, - k_EFailurePipeFail = 1, -} -public enum EFriendRelationship -{ - k_EFriendRelationshipNone = 0, - k_EFriendRelationshipBlocked = 1, - k_EFriendRelationshipRequestRecipient = 2, - k_EFriendRelationshipFriend = 3, - k_EFriendRelationshipRequestInitiator = 4, - k_EFriendRelationshipIgnored = 5, - k_EFriendRelationshipIgnoredFriend = 6, - k_EFriendRelationshipSuggested_DEPRECATED = 7, - k_EFriendRelationshipMax = 8, -} -public enum EPersonaState -{ - k_EPersonaStateOffline = 0, - k_EPersonaStateOnline = 1, - k_EPersonaStateBusy = 2, - k_EPersonaStateAway = 3, - k_EPersonaStateSnooze = 4, - k_EPersonaStateLookingToTrade = 5, - k_EPersonaStateLookingToPlay = 6, - k_EPersonaStateMax = 7, -} -public enum EFriendFlags -{ - k_EFriendFlagNone = 0, - k_EFriendFlagBlocked = 1, - k_EFriendFlagFriendshipRequested = 2, - k_EFriendFlagImmediate = 4, - k_EFriendFlagClanMember = 8, - k_EFriendFlagOnGameServer = 16, - k_EFriendFlagRequestingFriendship = 128, - k_EFriendFlagRequestingInfo = 256, - k_EFriendFlagIgnored = 512, - k_EFriendFlagIgnoredFriend = 1024, - k_EFriendFlagSuggested = 2048, - k_EFriendFlagChatMember = 4096, - k_EFriendFlagAll = 65535, -} -public enum EUserRestriction -{ - k_nUserRestrictionNone = 0, - k_nUserRestrictionUnknown = 1, - k_nUserRestrictionAnyChat = 2, - k_nUserRestrictionVoiceChat = 4, - k_nUserRestrictionGroupChat = 8, - k_nUserRestrictionRating = 16, - k_nUserRestrictionGameInvites = 32, - k_nUserRestrictionTrading = 64, -} -public enum EOverlayToStoreFlag -{ - k_EOverlayToStoreFlag_None = 0, - k_EOverlayToStoreFlag_AddToCart = 1, - k_EOverlayToStoreFlag_AddToCartAndShow = 2, -} -public enum EPersonaChange -{ - k_EPersonaChangeName = 1, - k_EPersonaChangeStatus = 2, - k_EPersonaChangeComeOnline = 4, - k_EPersonaChangeGoneOffline = 8, - k_EPersonaChangeGamePlayed = 16, - k_EPersonaChangeGameServer = 32, - k_EPersonaChangeAvatar = 64, - k_EPersonaChangeJoinedSource = 128, - k_EPersonaChangeLeftSource = 256, - k_EPersonaChangeRelationshipChanged = 512, - k_EPersonaChangeNameFirstSet = 1024, - k_EPersonaChangeFacebookInfo = 2048, - k_EPersonaChangeNickname = 4096, - k_EPersonaChangeSteamLevel = 8192, -} -public enum ESteamAPICallFailure -{ - k_ESteamAPICallFailureNone = -1, - k_ESteamAPICallFailureSteamGone = 0, - k_ESteamAPICallFailureNetworkFailure = 1, - k_ESteamAPICallFailureInvalidHandle = 2, - k_ESteamAPICallFailureMismatchedCallback = 3, -} -public enum EGamepadTextInputMode -{ - k_EGamepadTextInputModeNormal = 0, - k_EGamepadTextInputModePassword = 1, -} -public enum EGamepadTextInputLineMode -{ - k_EGamepadTextInputLineModeSingleLine = 0, - k_EGamepadTextInputLineModeMultipleLines = 1, -} -public enum ECheckFileSignature -{ - k_ECheckFileSignatureInvalidSignature = 0, - k_ECheckFileSignatureValidSignature = 1, - k_ECheckFileSignatureFileNotFound = 2, - k_ECheckFileSignatureNoSignaturesFoundForThisApp = 3, - k_ECheckFileSignatureNoSignaturesFoundForThisFile = 4, -} -public enum EMatchMakingServerResponse -{ - eServerResponded = 0, - eServerFailedToRespond = 1, - eNoServersListedOnMasterServer = 2, -} -public enum ELobbyType -{ - k_ELobbyTypePrivate = 0, - k_ELobbyTypeFriendsOnly = 1, - k_ELobbyTypePublic = 2, - k_ELobbyTypeInvisible = 3, -} -public enum ELobbyComparison -{ - k_ELobbyComparisonEqualToOrLessThan = -2, - k_ELobbyComparisonLessThan = -1, - k_ELobbyComparisonEqual = 0, - k_ELobbyComparisonGreaterThan = 1, - k_ELobbyComparisonEqualToOrGreaterThan = 2, - k_ELobbyComparisonNotEqual = 3, -} -public enum ELobbyDistanceFilter -{ - k_ELobbyDistanceFilterClose = 0, - k_ELobbyDistanceFilterDefault = 1, - k_ELobbyDistanceFilterFar = 2, - k_ELobbyDistanceFilterWorldwide = 3, -} -public enum EChatMemberStateChange -{ - k_EChatMemberStateChangeEntered = 1, - k_EChatMemberStateChangeLeft = 2, - k_EChatMemberStateChangeDisconnected = 4, - k_EChatMemberStateChangeKicked = 8, - k_EChatMemberStateChangeBanned = 16, -} -public enum ERemoteStoragePlatform -{ - k_ERemoteStoragePlatformNone = 0, - k_ERemoteStoragePlatformWindows = 1, - k_ERemoteStoragePlatformOSX = 2, - k_ERemoteStoragePlatformPS3 = 4, - k_ERemoteStoragePlatformLinux = 8, - k_ERemoteStoragePlatformReserved2 = 16, - k_ERemoteStoragePlatformAll = -1, -} -public enum ERemoteStoragePublishedFileVisibility -{ - k_ERemoteStoragePublishedFileVisibilityPublic = 0, - k_ERemoteStoragePublishedFileVisibilityFriendsOnly = 1, - k_ERemoteStoragePublishedFileVisibilityPrivate = 2, -} -public enum EWorkshopFileType -{ - k_EWorkshopFileTypeFirst = 0, - k_EWorkshopFileTypeCommunity = 0, - k_EWorkshopFileTypeMicrotransaction = 1, - k_EWorkshopFileTypeCollection = 2, - k_EWorkshopFileTypeArt = 3, - k_EWorkshopFileTypeVideo = 4, - k_EWorkshopFileTypeScreenshot = 5, - k_EWorkshopFileTypeGame = 6, - k_EWorkshopFileTypeSoftware = 7, - k_EWorkshopFileTypeConcept = 8, - k_EWorkshopFileTypeWebGuide = 9, - k_EWorkshopFileTypeIntegratedGuide = 10, - k_EWorkshopFileTypeMerch = 11, - k_EWorkshopFileTypeControllerBinding = 12, - k_EWorkshopFileTypeSteamworksAccessInvite = 13, - k_EWorkshopFileTypeSteamVideo = 14, - k_EWorkshopFileTypeGameManagedItem = 15, - k_EWorkshopFileTypeMax = 16, -} -public enum EWorkshopVote -{ - k_EWorkshopVoteUnvoted = 0, - k_EWorkshopVoteFor = 1, - k_EWorkshopVoteAgainst = 2, - k_EWorkshopVoteLater = 3, -} -public enum EWorkshopFileAction -{ - k_EWorkshopFileActionPlayed = 0, - k_EWorkshopFileActionCompleted = 1, -} -public enum EWorkshopEnumerationType -{ - k_EWorkshopEnumerationTypeRankedByVote = 0, - k_EWorkshopEnumerationTypeRecent = 1, - k_EWorkshopEnumerationTypeTrending = 2, - k_EWorkshopEnumerationTypeFavoritesOfFriends = 3, - k_EWorkshopEnumerationTypeVotedByFriends = 4, - k_EWorkshopEnumerationTypeContentByFriends = 5, - k_EWorkshopEnumerationTypeRecentFromFollowedUsers = 6, -} -public enum EWorkshopVideoProvider -{ - k_EWorkshopVideoProviderNone = 0, - k_EWorkshopVideoProviderYoutube = 1, -} -public enum EUGCReadAction -{ - k_EUGCRead_ContinueReadingUntilFinished = 0, - k_EUGCRead_ContinueReading = 1, - k_EUGCRead_Close = 2, -} -public enum ELeaderboardDataRequest -{ - k_ELeaderboardDataRequestGlobal = 0, - k_ELeaderboardDataRequestGlobalAroundUser = 1, - k_ELeaderboardDataRequestFriends = 2, - k_ELeaderboardDataRequestUsers = 3, -} -public enum ELeaderboardSortMethod -{ - k_ELeaderboardSortMethodNone = 0, - k_ELeaderboardSortMethodAscending = 1, - k_ELeaderboardSortMethodDescending = 2, -} -public enum ELeaderboardDisplayType -{ - k_ELeaderboardDisplayTypeNone = 0, - k_ELeaderboardDisplayTypeNumeric = 1, - k_ELeaderboardDisplayTypeTimeSeconds = 2, - k_ELeaderboardDisplayTypeTimeMilliSeconds = 3, -} -public enum ELeaderboardUploadScoreMethod -{ - k_ELeaderboardUploadScoreMethodNone = 0, - k_ELeaderboardUploadScoreMethodKeepBest = 1, - k_ELeaderboardUploadScoreMethodForceUpdate = 2, -} -public enum ERegisterActivationCodeResult -{ - k_ERegisterActivationCodeResultOK = 0, - k_ERegisterActivationCodeResultFail = 1, - k_ERegisterActivationCodeResultAlreadyRegistered = 2, - k_ERegisterActivationCodeResultTimeout = 3, - k_ERegisterActivationCodeAlreadyOwned = 4, -} -public enum EP2PSessionError -{ - k_EP2PSessionErrorNone = 0, - k_EP2PSessionErrorNotRunningApp = 1, - k_EP2PSessionErrorNoRightsToApp = 2, - k_EP2PSessionErrorDestinationNotLoggedIn = 3, - k_EP2PSessionErrorTimeout = 4, - k_EP2PSessionErrorMax = 5, -} -public enum EP2PSend -{ - k_EP2PSendUnreliable = 0, - k_EP2PSendUnreliableNoDelay = 1, - k_EP2PSendReliable = 2, - k_EP2PSendReliableWithBuffering = 3, -} -public enum ESNetSocketState -{ - k_ESNetSocketStateInvalid = 0, - k_ESNetSocketStateConnected = 1, - k_ESNetSocketStateInitiated = 10, - k_ESNetSocketStateLocalCandidatesFound = 11, - k_ESNetSocketStateReceivedRemoteCandidates = 12, - k_ESNetSocketStateChallengeHandshake = 15, - k_ESNetSocketStateDisconnecting = 21, - k_ESNetSocketStateLocalDisconnect = 22, - k_ESNetSocketStateTimeoutDuringConnect = 23, - k_ESNetSocketStateRemoteEndDisconnected = 24, - k_ESNetSocketStateConnectionBroken = 25, -} -public enum ESNetSocketConnectionType -{ - k_ESNetSocketConnectionTypeNotConnected = 0, - k_ESNetSocketConnectionTypeUDP = 1, - k_ESNetSocketConnectionTypeUDPRelay = 2, -} -public enum EVRScreenshotType -{ - k_EVRScreenshotType_None = 0, - k_EVRScreenshotType_Mono = 1, - k_EVRScreenshotType_Stereo = 2, - k_EVRScreenshotType_MonoCubemap = 3, - k_EVRScreenshotType_MonoPanorama = 4, - k_EVRScreenshotType_StereoPanorama = 5, -} -public enum AudioPlayback_Status -{ - AudioPlayback_Undefined = 0, - AudioPlayback_Playing = 1, - AudioPlayback_Paused = 2, - AudioPlayback_Idle = 3, -} -public enum EHTTPMethod -{ - k_EHTTPMethodInvalid = 0, - k_EHTTPMethodGET = 1, - k_EHTTPMethodHEAD = 2, - k_EHTTPMethodPOST = 3, - k_EHTTPMethodPUT = 4, - k_EHTTPMethodDELETE = 5, - k_EHTTPMethodOPTIONS = 6, - k_EHTTPMethodPATCH = 7, -} -public enum EHTTPStatusCode -{ - k_EHTTPStatusCodeInvalid = 0, - k_EHTTPStatusCode100Continue = 100, - k_EHTTPStatusCode101SwitchingProtocols = 101, - k_EHTTPStatusCode200OK = 200, - k_EHTTPStatusCode201Created = 201, - k_EHTTPStatusCode202Accepted = 202, - k_EHTTPStatusCode203NonAuthoritative = 203, - k_EHTTPStatusCode204NoContent = 204, - k_EHTTPStatusCode205ResetContent = 205, - k_EHTTPStatusCode206PartialContent = 206, - k_EHTTPStatusCode300MultipleChoices = 300, - k_EHTTPStatusCode301MovedPermanently = 301, - k_EHTTPStatusCode302Found = 302, - k_EHTTPStatusCode303SeeOther = 303, - k_EHTTPStatusCode304NotModified = 304, - k_EHTTPStatusCode305UseProxy = 305, - k_EHTTPStatusCode307TemporaryRedirect = 307, - k_EHTTPStatusCode400BadRequest = 400, - k_EHTTPStatusCode401Unauthorized = 401, - k_EHTTPStatusCode402PaymentRequired = 402, - k_EHTTPStatusCode403Forbidden = 403, - k_EHTTPStatusCode404NotFound = 404, - k_EHTTPStatusCode405MethodNotAllowed = 405, - k_EHTTPStatusCode406NotAcceptable = 406, - k_EHTTPStatusCode407ProxyAuthRequired = 407, - k_EHTTPStatusCode408RequestTimeout = 408, - k_EHTTPStatusCode409Conflict = 409, - k_EHTTPStatusCode410Gone = 410, - k_EHTTPStatusCode411LengthRequired = 411, - k_EHTTPStatusCode412PreconditionFailed = 412, - k_EHTTPStatusCode413RequestEntityTooLarge = 413, - k_EHTTPStatusCode414RequestURITooLong = 414, - k_EHTTPStatusCode415UnsupportedMediaType = 415, - k_EHTTPStatusCode416RequestedRangeNotSatisfiable = 416, - k_EHTTPStatusCode417ExpectationFailed = 417, - k_EHTTPStatusCode4xxUnknown = 418, - k_EHTTPStatusCode429TooManyRequests = 429, - k_EHTTPStatusCode500InternalServerError = 500, - k_EHTTPStatusCode501NotImplemented = 501, - k_EHTTPStatusCode502BadGateway = 502, - k_EHTTPStatusCode503ServiceUnavailable = 503, - k_EHTTPStatusCode504GatewayTimeout = 504, - k_EHTTPStatusCode505HTTPVersionNotSupported = 505, - k_EHTTPStatusCode5xxUnknown = 599, -} -public enum ESteamControllerPad -{ - k_ESteamControllerPad_Left = 0, - k_ESteamControllerPad_Right = 1, -} -public enum EControllerSource -{ - k_EControllerSource_None = 0, - k_EControllerSource_LeftTrackpad = 1, - k_EControllerSource_RightTrackpad = 2, - k_EControllerSource_Joystick = 3, - k_EControllerSource_ABXY = 4, - k_EControllerSource_Switch = 5, - k_EControllerSource_LeftTrigger = 6, - k_EControllerSource_RightTrigger = 7, - k_EControllerSource_Gyro = 8, - k_EControllerSource_Count = 9, -} -public enum EControllerSourceMode -{ - k_EControllerSourceMode_None = 0, - k_EControllerSourceMode_Dpad = 1, - k_EControllerSourceMode_Buttons = 2, - k_EControllerSourceMode_FourButtons = 3, - k_EControllerSourceMode_AbsoluteMouse = 4, - k_EControllerSourceMode_RelativeMouse = 5, - k_EControllerSourceMode_JoystickMove = 6, - k_EControllerSourceMode_JoystickCamera = 7, - k_EControllerSourceMode_ScrollWheel = 8, - k_EControllerSourceMode_Trigger = 9, - k_EControllerSourceMode_TouchMenu = 10, - k_EControllerSourceMode_MouseJoystick = 11, - k_EControllerSourceMode_MouseRegion = 12, - k_EControllerSourceMode_RadialMenu = 13, - k_EControllerSourceMode_Switches = 14, -} -public enum EControllerActionOrigin -{ - k_EControllerActionOrigin_None = 0, - k_EControllerActionOrigin_A = 1, - k_EControllerActionOrigin_B = 2, - k_EControllerActionOrigin_X = 3, - k_EControllerActionOrigin_Y = 4, - k_EControllerActionOrigin_LeftBumper = 5, - k_EControllerActionOrigin_RightBumper = 6, - k_EControllerActionOrigin_LeftGrip = 7, - k_EControllerActionOrigin_RightGrip = 8, - k_EControllerActionOrigin_Start = 9, - k_EControllerActionOrigin_Back = 10, - k_EControllerActionOrigin_LeftPad_Touch = 11, - k_EControllerActionOrigin_LeftPad_Swipe = 12, - k_EControllerActionOrigin_LeftPad_Click = 13, - k_EControllerActionOrigin_LeftPad_DPadNorth = 14, - k_EControllerActionOrigin_LeftPad_DPadSouth = 15, - k_EControllerActionOrigin_LeftPad_DPadWest = 16, - k_EControllerActionOrigin_LeftPad_DPadEast = 17, - k_EControllerActionOrigin_RightPad_Touch = 18, - k_EControllerActionOrigin_RightPad_Swipe = 19, - k_EControllerActionOrigin_RightPad_Click = 20, - k_EControllerActionOrigin_RightPad_DPadNorth = 21, - k_EControllerActionOrigin_RightPad_DPadSouth = 22, - k_EControllerActionOrigin_RightPad_DPadWest = 23, - k_EControllerActionOrigin_RightPad_DPadEast = 24, - k_EControllerActionOrigin_LeftTrigger_Pull = 25, - k_EControllerActionOrigin_LeftTrigger_Click = 26, - k_EControllerActionOrigin_RightTrigger_Pull = 27, - k_EControllerActionOrigin_RightTrigger_Click = 28, - k_EControllerActionOrigin_LeftStick_Move = 29, - k_EControllerActionOrigin_LeftStick_Click = 30, - k_EControllerActionOrigin_LeftStick_DPadNorth = 31, - k_EControllerActionOrigin_LeftStick_DPadSouth = 32, - k_EControllerActionOrigin_LeftStick_DPadWest = 33, - k_EControllerActionOrigin_LeftStick_DPadEast = 34, - k_EControllerActionOrigin_Gyro_Move = 35, - k_EControllerActionOrigin_Gyro_Pitch = 36, - k_EControllerActionOrigin_Gyro_Yaw = 37, - k_EControllerActionOrigin_Gyro_Roll = 38, - k_EControllerActionOrigin_Count = 39, -} -public enum EControllerActivationType -{ - k_EControllerActivationType_None = 0, - k_EControllerActivationType_FullPress = 1, - k_EControllerActivationType_SoftPress = 2, - k_EControllerActivationType_StartPress = 3, - k_EControllerActivationType_Release = 4, - k_EControllerActivationType_LongPress = 5, - k_EControllerActivationType_DoublePress = 6, - k_EControllerActivationType_Analog = 7, -} -public enum EControllerPressureButton -{ - k_EControllerPressureButton_LeftTrackPad = 0, - k_EControllerPressureButton_RightTrackPad = 1, - k_EControllerPressureButton_LeftBumper = 2, - k_EControllerPressureButton_RightBumper = 3, - k_EControllerPressureButton_LeftGripLower = 4, - k_EControllerPressureButton_RightGripLower = 5, - k_EControllerPressureButton_LeftGripUpper = 6, - k_EControllerPressureButton_RightGripUpper = 7, - k_EControllerPressureButton_Invalid = 8, -} -public enum EControllerActivatorOutputAxis -{ - k_EOutputAxisLeftTrigger = 0, - k_EOutputAxisRightTrigger = 1, - k_EOutputAxisLeftThumbXPos = 2, - k_EOutputAxisLeftThumbXNeg = 3, - k_EOutputAxisLeftThumbYPos = 4, - k_EOutputAxisLeftThumbYNeg = 5, - k_EOutputAxisRightThumbXPos = 6, - k_EOutputAxisRightThumbXNeg = 7, - k_EOutputAxisRightThumbYPos = 8, - k_EOutputAxisRightThumbYNeg = 9, -} -public enum EControllerConfigFeature -{ - k_EControllerConfigFeature_None = 0, - k_EControllerConfigFeature_Gamepad = 1, - k_EControllerConfigFeature_Keyboard = 2, - k_EControllerConfigFeature_Mouse = 3, - k_EControllerConfigFeature_Gyro = 4, - k_EControllerConfigFeature_TouchMenu = 5, - k_EControllerConfigFeature_ModeShift = 6, - k_EControllerConfigFeature_ActionSet = 7, - k_EControllerConfigFeature_Activator = 8, -} -public enum EControllerPopupMenuActivationType -{ - k_EMenuButtonPress = 0, - k_EMenuButtonRelease = 1, - k_EMenuTouchRelease = 2, - k_EMenuTouchAlways = 3, -} -public enum EUGCMatchingUGCType -{ - k_EUGCMatchingUGCType_Items = 0, - k_EUGCMatchingUGCType_Items_Mtx = 1, - k_EUGCMatchingUGCType_Items_ReadyToUse = 2, - k_EUGCMatchingUGCType_Collections = 3, - k_EUGCMatchingUGCType_Artwork = 4, - k_EUGCMatchingUGCType_Videos = 5, - k_EUGCMatchingUGCType_Screenshots = 6, - k_EUGCMatchingUGCType_AllGuides = 7, - k_EUGCMatchingUGCType_WebGuides = 8, - k_EUGCMatchingUGCType_IntegratedGuides = 9, - k_EUGCMatchingUGCType_UsableInGame = 10, - k_EUGCMatchingUGCType_ControllerBindings = 11, - k_EUGCMatchingUGCType_GameManagedItems = 12, - k_EUGCMatchingUGCType_All = -1, -} -public enum EUserUGCList -{ - k_EUserUGCList_Published = 0, - k_EUserUGCList_VotedOn = 1, - k_EUserUGCList_VotedUp = 2, - k_EUserUGCList_VotedDown = 3, - k_EUserUGCList_WillVoteLater = 4, - k_EUserUGCList_Favorited = 5, - k_EUserUGCList_Subscribed = 6, - k_EUserUGCList_UsedOrPlayed = 7, - k_EUserUGCList_Followed = 8, -} -public enum EUserUGCListSortOrder -{ - k_EUserUGCListSortOrder_CreationOrderDesc = 0, - k_EUserUGCListSortOrder_CreationOrderAsc = 1, - k_EUserUGCListSortOrder_TitleAsc = 2, - k_EUserUGCListSortOrder_LastUpdatedDesc = 3, - k_EUserUGCListSortOrder_SubscriptionDateDesc = 4, - k_EUserUGCListSortOrder_VoteScoreDesc = 5, - k_EUserUGCListSortOrder_ForModeration = 6, -} -public enum EUGCQuery -{ - k_EUGCQuery_RankedByVote = 0, - k_EUGCQuery_RankedByPublicationDate = 1, - k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate = 2, - k_EUGCQuery_RankedByTrend = 3, - k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate = 4, - k_EUGCQuery_CreatedByFriendsRankedByPublicationDate = 5, - k_EUGCQuery_RankedByNumTimesReported = 6, - k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate = 7, - k_EUGCQuery_NotYetRated = 8, - k_EUGCQuery_RankedByTotalVotesAsc = 9, - k_EUGCQuery_RankedByVotesUp = 10, - k_EUGCQuery_RankedByTextSearch = 11, - k_EUGCQuery_RankedByTotalUniqueSubscriptions = 12, - k_EUGCQuery_RankedByPlaytimeTrend = 13, - k_EUGCQuery_RankedByTotalPlaytime = 14, - k_EUGCQuery_RankedByAveragePlaytimeTrend = 15, - k_EUGCQuery_RankedByLifetimeAveragePlaytime = 16, - k_EUGCQuery_RankedByPlaytimeSessionsTrend = 17, - k_EUGCQuery_RankedByLifetimePlaytimeSessions = 18, -} -public enum EItemUpdateStatus -{ - k_EItemUpdateStatusInvalid = 0, - k_EItemUpdateStatusPreparingConfig = 1, - k_EItemUpdateStatusPreparingContent = 2, - k_EItemUpdateStatusUploadingContent = 3, - k_EItemUpdateStatusUploadingPreviewFile = 4, - k_EItemUpdateStatusCommittingChanges = 5, -} -public enum EItemState -{ - k_EItemStateNone = 0, - k_EItemStateSubscribed = 1, - k_EItemStateLegacyItem = 2, - k_EItemStateInstalled = 4, - k_EItemStateNeedsUpdate = 8, - k_EItemStateDownloading = 16, - k_EItemStateDownloadPending = 32, -} -public enum EItemStatistic -{ - k_EItemStatistic_NumSubscriptions = 0, - k_EItemStatistic_NumFavorites = 1, - k_EItemStatistic_NumFollowers = 2, - k_EItemStatistic_NumUniqueSubscriptions = 3, - k_EItemStatistic_NumUniqueFavorites = 4, - k_EItemStatistic_NumUniqueFollowers = 5, - k_EItemStatistic_NumUniqueWebsiteViews = 6, - k_EItemStatistic_ReportScore = 7, - k_EItemStatistic_NumSecondsPlayed = 8, - k_EItemStatistic_NumPlaytimeSessions = 9, - k_EItemStatistic_NumComments = 10, -} -public enum EItemPreviewType -{ - k_EItemPreviewType_Image = 0, - k_EItemPreviewType_YouTubeVideo = 1, - k_EItemPreviewType_Sketchfab = 2, - k_EItemPreviewType_EnvironmentMap_HorizontalCross = 3, - k_EItemPreviewType_EnvironmentMap_LatLong = 4, - k_EItemPreviewType_ReservedMax = 255, -} -public enum EHTMLMouseButton -{ - eHTMLMouseButton_Left = 0, - eHTMLMouseButton_Right = 1, - eHTMLMouseButton_Middle = 2, -} -public enum EMouseCursor -{ - dc_user = 0, - dc_none = 1, - dc_arrow = 2, - dc_ibeam = 3, - dc_hourglass = 4, - dc_waitarrow = 5, - dc_crosshair = 6, - dc_up = 7, - dc_sizenw = 8, - dc_sizese = 9, - dc_sizene = 10, - dc_sizesw = 11, - dc_sizew = 12, - dc_sizee = 13, - dc_sizen = 14, - dc_sizes = 15, - dc_sizewe = 16, - dc_sizens = 17, - dc_sizeall = 18, - dc_no = 19, - dc_hand = 20, - dc_blank = 21, - dc_middle_pan = 22, - dc_north_pan = 23, - dc_north_east_pan = 24, - dc_east_pan = 25, - dc_south_east_pan = 26, - dc_south_pan = 27, - dc_south_west_pan = 28, - dc_west_pan = 29, - dc_north_west_pan = 30, - dc_alias = 31, - dc_cell = 32, - dc_colresize = 33, - dc_copycur = 34, - dc_verticaltext = 35, - dc_rowresize = 36, - dc_zoomin = 37, - dc_zoomout = 38, - dc_help = 39, - dc_custom = 40, - dc_last = 41, -} -public enum EHTMLKeyModifiers -{ - k_eHTMLKeyModifier_None = 0, - k_eHTMLKeyModifier_AltDown = 1, - k_eHTMLKeyModifier_CtrlDown = 2, - k_eHTMLKeyModifier_ShiftDown = 4, -} -public enum ESteamItemFlags -{ - k_ESteamItemNoTrade = 1, - k_ESteamItemRemoved = 256, - k_ESteamItemConsumed = 512, -} -[StructLayout(LayoutKind.Sequential)] public struct CSteamID -{ - public SteamID_t m_steamid; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamID_t -{ - public SteamIDComponent_t m_comp; - public ulong m_unAll64Bits; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamIDComponent_t -{ - public uint m_unAccountID; - public uint m_unAccountInstance; - public uint m_EAccountType; - public EUniverse m_EUniverse; -} -[StructLayout(LayoutKind.Sequential)] public struct GameID_t -{ - public uint m_nAppID; - public uint m_nType; - public uint m_nModID; -} -[StructLayout(LayoutKind.Sequential)] public struct ValvePackingSentinel_t -{ - public uint m_u32; - public ulong m_u64; - public char m_u16; - public double m_d; -} -[StructLayout(LayoutKind.Sequential)] public struct CallbackMsg_t -{ - public uint m_hSteamUser; - public int m_iCallback; - public IntPtr m_pubParam; // uint8 * - public int m_cubParam; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamServerConnectFailure_t -{ - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bStillRetrying; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamServersDisconnected_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct ClientGameServerDeny_t -{ - public uint m_uAppID; - public uint m_unGameServerIP; - public char m_usGameServerPort; - public char m_bSecure; - public uint m_uReason; -} -[StructLayout(LayoutKind.Sequential)] public struct ValidateAuthTicketResponse_t -{ - public ulong m_SteamID; - public EAuthSessionResponse m_eAuthSessionResponse; - public ulong m_OwnerSteamID; -} -[StructLayout(LayoutKind.Sequential)] public struct MicroTxnAuthorizationResponse_t -{ - public uint m_unAppID; - public ulong m_ulOrderID; - public byte m_bAuthorized; -} -[StructLayout(LayoutKind.Sequential)] public struct EncryptedAppTicketResponse_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct GetAuthSessionTicketResponse_t -{ - public uint m_hAuthTicket; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct GameWebCallback_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_szURL; //char[256] -} -[StructLayout(LayoutKind.Sequential)] public struct StoreAuthURLResponse_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)] - public string m_szURL; //char[512] -} -[StructLayout(LayoutKind.Sequential)] public struct FriendGameInfo_t -{ - public ulong m_gameID; - public uint m_unGameIP; - public char m_usGamePort; - public char m_usQueryPort; - public ulong m_steamIDLobby; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendSessionStateInfo_t -{ - public uint m_uiOnlineSessionInstances; - public byte m_uiPublishedToFriendsSessionInstance; -} -[StructLayout(LayoutKind.Sequential)] public struct PersonaStateChange_t -{ - public ulong m_ulSteamID; - public int m_nChangeFlags; -} -[StructLayout(LayoutKind.Sequential)] public struct GameOverlayActivated_t -{ - public byte m_bActive; -} -[StructLayout(LayoutKind.Sequential)] public struct GameServerChangeRequested_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string m_rgchServer; //char[64] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string m_rgchPassword; //char[64] -} -[StructLayout(LayoutKind.Sequential)] public struct GameLobbyJoinRequested_t -{ - public ulong m_steamIDLobby; - public ulong m_steamIDFriend; -} -[StructLayout(LayoutKind.Sequential)] public struct AvatarImageLoaded_t -{ - public ulong m_steamID; - public int m_iImage; - public int m_iWide; - public int m_iTall; -} -[StructLayout(LayoutKind.Sequential)] public struct ClanOfficerListResponse_t -{ - public ulong m_steamIDClan; - public int m_cOfficers; - public byte m_bSuccess; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendRichPresenceUpdate_t -{ - public ulong m_steamIDFriend; - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct GameRichPresenceJoinRequested_t -{ - public ulong m_steamIDFriend; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_rgchConnect; //char[256] -} -[StructLayout(LayoutKind.Sequential)] public struct GameConnectedClanChatMsg_t -{ - public ulong m_steamIDClanChat; - public ulong m_steamIDUser; - public int m_iMessageID; -} -[StructLayout(LayoutKind.Sequential)] public struct GameConnectedChatJoin_t -{ - public ulong m_steamIDClanChat; - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct GameConnectedChatLeave_t -{ - public ulong m_steamIDClanChat; - public ulong m_steamIDUser; - [MarshalAs(UnmanagedType.I1)] - public bool m_bKicked; - [MarshalAs(UnmanagedType.I1)] - public bool m_bDropped; -} -[StructLayout(LayoutKind.Sequential)] public struct DownloadClanActivityCountsResult_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bSuccess; -} -[StructLayout(LayoutKind.Sequential)] public struct JoinClanChatRoomCompletionResult_t -{ - public ulong m_steamIDClanChat; - public EChatRoomEnterResponse m_eChatRoomEnterResponse; -} -[StructLayout(LayoutKind.Sequential)] public struct GameConnectedFriendChatMsg_t -{ - public ulong m_steamIDUser; - public int m_iMessageID; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendsGetFollowerCount_t -{ - public EResult m_eResult; - public ulong m_steamID; - public int m_nCount; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendsIsFollowing_t -{ - public EResult m_eResult; - public ulong m_steamID; - [MarshalAs(UnmanagedType.I1)] - public bool m_bIsFollowing; -} -[StructLayout(LayoutKind.Sequential)] public struct FriendsEnumerateFollowingList_t -{ - public EResult m_eResult; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public CSteamID[] m_rgSteamID; //CSteamID[50] - public int m_nResultsReturned; - public int m_nTotalResultCount; -} -[StructLayout(LayoutKind.Sequential)] public struct SetPersonaNameResponse_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bSuccess; - [MarshalAs(UnmanagedType.I1)] - public bool m_bLocalSuccess; - public EResult m_result; -} -[StructLayout(LayoutKind.Sequential)] public struct LowBatteryPower_t -{ - public byte m_nMinutesBatteryLeft; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamAPICallCompleted_t -{ - public ulong m_hAsyncCall; - public int m_iCallback; - public uint m_cubParam; -} -[StructLayout(LayoutKind.Sequential)] public struct CheckFileSignature_t -{ - public ECheckFileSignature m_eCheckFileSignature; -} -[StructLayout(LayoutKind.Sequential)] public struct GamepadTextInputDismissed_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bSubmitted; - public uint m_unSubmittedText; -} -[StructLayout(LayoutKind.Sequential)] public struct MatchMakingKeyValuePair_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_szKey; //char[256] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_szValue; //char[256] -} -[StructLayout(LayoutKind.Sequential)] public struct servernetadr_t -{ - public char m_usConnectionPort; - public char m_usQueryPort; - public uint m_unIP; -} -[StructLayout(LayoutKind.Sequential)] public struct gameserveritem_t -{ - public servernetadr_t m_NetAdr; - public int m_nPing; - [MarshalAs(UnmanagedType.I1)] - public bool m_bHadSuccessfulResponse; - [MarshalAs(UnmanagedType.I1)] - public bool m_bDoNotRefresh; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] - public string m_szGameDir; //char[32] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] - public string m_szMap; //char[32] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string m_szGameDescription; //char[64] - public uint m_nAppID; - public int m_nPlayers; - public int m_nMaxPlayers; - public int m_nBotPlayers; - [MarshalAs(UnmanagedType.I1)] - public bool m_bPassword; - [MarshalAs(UnmanagedType.I1)] - public bool m_bSecure; - public uint m_ulTimeLastPlayed; - public int m_nServerVersion; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string m_szServerName; //char[64] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_szGameTags; //char[128] - public ulong m_steamID; -} -[StructLayout(LayoutKind.Sequential)] public struct FavoritesListChanged_t -{ - public uint m_nIP; - public uint m_nQueryPort; - public uint m_nConnPort; - public uint m_nAppID; - public uint m_nFlags; - [MarshalAs(UnmanagedType.I1)] - public bool m_bAdd; - public uint m_unAccountId; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyInvite_t -{ - public ulong m_ulSteamIDUser; - public ulong m_ulSteamIDLobby; - public ulong m_ulGameID; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyEnter_t -{ - public ulong m_ulSteamIDLobby; - public uint m_rgfChatPermissions; - [MarshalAs(UnmanagedType.I1)] - public bool m_bLocked; - public uint m_EChatRoomEnterResponse; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyDataUpdate_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDMember; - public byte m_bSuccess; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyChatUpdate_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDUserChanged; - public ulong m_ulSteamIDMakingChange; - public uint m_rgfChatMemberStateChange; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyChatMsg_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDUser; - public byte m_eChatEntryType; - public uint m_iChatID; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyGameCreated_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDGameServer; - public uint m_unIP; - public char m_usPort; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyMatchList_t -{ - public uint m_nLobbiesMatching; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyKicked_t -{ - public ulong m_ulSteamIDLobby; - public ulong m_ulSteamIDAdmin; - public byte m_bKickedDueToDisconnect; -} -[StructLayout(LayoutKind.Sequential)] public struct LobbyCreated_t -{ - public EResult m_eResult; - public ulong m_ulSteamIDLobby; -} -[StructLayout(LayoutKind.Sequential)] public struct PSNGameBootInviteResult_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bGameBootInviteExists; - public ulong m_steamIDLobby; -} -[StructLayout(LayoutKind.Sequential)] public struct FavoritesListAccountsUpdated_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamParamStringArray_t -{ - public IntPtr m_ppStrings; // const char ** - public int m_nNumStrings; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageAppSyncedClient_t -{ - public uint m_nAppID; - public EResult m_eResult; - public int m_unNumDownloads; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageAppSyncedServer_t -{ - public uint m_nAppID; - public EResult m_eResult; - public int m_unNumUploads; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageAppSyncProgress_t -{ - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_rgchCurrentFile; //char[260] - public uint m_nAppID; - public uint m_uBytesTransferredThisChunk; - public double m_dAppPercentComplete; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUploading; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageAppSyncStatusCheck_t -{ - public uint m_nAppID; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageFileShareResult_t -{ - public EResult m_eResult; - public ulong m_hFile; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_rgchFilename; //char[260] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageDeletePublishedFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumerateUserPublishedFilesResult_t -{ - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageSubscribePublishedFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumerateUserSubscribedFilesResult_t -{ - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U4)] - public uint[] m_rgRTimeSubscribed; //uint[50] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageUnsubscribePublishedFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageUpdatePublishedFileResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageDownloadUGCResult_t -{ - public EResult m_eResult; - public ulong m_hFile; - public uint m_nAppID; - public int m_nSizeInBytes; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_pchFileName; //char[260] - public ulong m_ulSteamIDOwner; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageGetPublishedFileDetailsResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - public uint m_nCreatorAppID; - public uint m_nConsumerAppID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] - public string m_rgchTitle; //char[129] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8000)] - public string m_rgchDescription; //char[8000] - public ulong m_hFile; - public ulong m_hPreviewFile; - public ulong m_ulSteamIDOwner; - public uint m_rtimeCreated; - public uint m_rtimeUpdated; - public ERemoteStoragePublishedFileVisibility m_eVisibility; - [MarshalAs(UnmanagedType.I1)] - public bool m_bBanned; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1025)] - public string m_rgchTags; //char[1025] - [MarshalAs(UnmanagedType.I1)] - public bool m_bTagsTruncated; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_pchFileName; //char[260] - public int m_nFileSize; - public int m_nPreviewFileSize; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_rgchURL; //char[256] - public EWorkshopFileType m_eFileType; - [MarshalAs(UnmanagedType.I1)] - public bool m_bAcceptedForUse; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumerateWorkshopFilesResult_t -{ - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.R4)] - public float[] m_rgScore; //float[50] - public uint m_nAppId; - public uint m_unStartIndex; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageGetPublishedItemVoteDetailsResult_t -{ - public EResult m_eResult; - public ulong m_unPublishedFileId; - public int m_nVotesFor; - public int m_nVotesAgainst; - public int m_nReports; - public float m_fScore; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishedFileSubscribed_t -{ - public ulong m_nPublishedFileId; - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishedFileUnsubscribed_t -{ - public ulong m_nPublishedFileId; - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishedFileDeleted_t -{ - public ulong m_nPublishedFileId; - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageUpdateUserPublishedItemVoteResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageUserVoteDetails_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - public EWorkshopVote m_eVote; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t -{ - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageSetUserPublishedFileActionResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - public EWorkshopFileAction m_eAction; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t -{ - public EResult m_eResult; - public EWorkshopFileAction m_eAction; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U8)] - public ulong[] m_rgPublishedFileId; //ulong[50] - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U4)] - public uint[] m_rgRTimeUpdated; //uint[50] -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishFileProgress_t -{ - public double m_dPercentFile; - [MarshalAs(UnmanagedType.I1)] - public bool m_bPreview; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStoragePublishedFileUpdated_t -{ - public ulong m_nPublishedFileId; - public uint m_nAppID; - public ulong m_ulUnused; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageFileWriteAsyncComplete_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct RemoteStorageFileReadAsyncComplete_t -{ - public ulong m_hFileReadAsync; - public EResult m_eResult; - public uint m_nOffset; - public uint m_cubRead; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardEntry_t -{ - public ulong m_steamIDUser; - public int m_nGlobalRank; - public int m_nScore; - public int m_cDetails; - public ulong m_hUGC; -} -[StructLayout(LayoutKind.Sequential)] public struct UserStatsReceived_t -{ - public ulong m_nGameID; - public EResult m_eResult; - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct UserStatsStored_t -{ - public ulong m_nGameID; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct UserAchievementStored_t -{ - public ulong m_nGameID; - [MarshalAs(UnmanagedType.I1)] - public bool m_bGroupAchievement; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_rgchAchievementName; //char[128] - public uint m_nCurProgress; - public uint m_nMaxProgress; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardFindResult_t -{ - public ulong m_hSteamLeaderboard; - public byte m_bLeaderboardFound; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardScoresDownloaded_t -{ - public ulong m_hSteamLeaderboard; - public ulong m_hSteamLeaderboardEntries; - public int m_cEntryCount; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardScoreUploaded_t -{ - public byte m_bSuccess; - public ulong m_hSteamLeaderboard; - public int m_nScore; - public byte m_bScoreChanged; - public int m_nGlobalRankNew; - public int m_nGlobalRankPrevious; -} -[StructLayout(LayoutKind.Sequential)] public struct NumberOfCurrentPlayers_t -{ - public byte m_bSuccess; - public int m_cPlayers; -} -[StructLayout(LayoutKind.Sequential)] public struct UserStatsUnloaded_t -{ - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct UserAchievementIconFetched_t -{ - public ulong m_nGameID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_rgchAchievementName; //char[128] - [MarshalAs(UnmanagedType.I1)] - public bool m_bAchieved; - public int m_nIconHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct GlobalAchievementPercentagesReady_t -{ - public ulong m_nGameID; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct LeaderboardUGCSet_t -{ - public EResult m_eResult; - public ulong m_hSteamLeaderboard; -} -[StructLayout(LayoutKind.Sequential)] public struct PS3TrophiesInstalled_t -{ - public ulong m_nGameID; - public EResult m_eResult; - public ulong m_ulRequiredDiskSpace; -} -[StructLayout(LayoutKind.Sequential)] public struct GlobalStatsReceived_t -{ - public ulong m_nGameID; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct DlcInstalled_t -{ - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct RegisterActivationCodeResponse_t -{ - public ERegisterActivationCodeResult m_eResult; - public uint m_unPackageRegistered; -} -[StructLayout(LayoutKind.Sequential)] public struct AppProofOfPurchaseKeyResponse_t -{ - public EResult m_eResult; - public uint m_nAppID; - public uint m_cchKeyLength; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 240)] - public string m_rgchKey; //char[240] -} -[StructLayout(LayoutKind.Sequential)] public struct FileDetailsResult_t -{ - public EResult m_eResult; - public ulong m_ulFileSize; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.U1)] - public byte[] m_FileSHA; //byte[20] - public uint m_unFlags; -} -[StructLayout(LayoutKind.Sequential)] public struct P2PSessionState_t -{ - public byte m_bConnectionActive; - public byte m_bConnecting; - public byte m_eP2PSessionError; - public byte m_bUsingRelay; - public int m_nBytesQueuedForSend; - public int m_nPacketsQueuedForSend; - public uint m_nRemoteIP; - public char m_nRemotePort; -} -[StructLayout(LayoutKind.Sequential)] public struct P2PSessionRequest_t -{ - public ulong m_steamIDRemote; -} -[StructLayout(LayoutKind.Sequential)] public struct P2PSessionConnectFail_t -{ - public ulong m_steamIDRemote; - public byte m_eP2PSessionError; -} -[StructLayout(LayoutKind.Sequential)] public struct SocketStatusCallback_t -{ - public uint m_hSocket; - public uint m_hListenSocket; - public ulong m_steamIDRemote; - public int m_eSNetSocketState; -} -[StructLayout(LayoutKind.Sequential)] public struct ScreenshotReady_t -{ - public uint m_hLocal; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public float m_flNewVolume; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bShuffled; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool m_bLooped; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public float m_flNewVolume; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public int nID; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public int nID; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public int m_nPlayingRepeatStatus; -} -[StructLayout(LayoutKind.Sequential)] public struct HTTPRequestCompleted_t -{ - public uint m_hRequest; - public ulong m_ulContextValue; - [MarshalAs(UnmanagedType.I1)] - public bool m_bRequestSuccessful; - public EHTTPStatusCode m_eStatusCode; - public uint m_unBodySize; -} -[StructLayout(LayoutKind.Sequential)] public struct HTTPRequestHeadersReceived_t -{ - public uint m_hRequest; - public ulong m_ulContextValue; -} -[StructLayout(LayoutKind.Sequential)] public struct HTTPRequestDataReceived_t -{ - public uint m_hRequest; - public ulong m_ulContextValue; - public uint m_cOffset; - public uint m_cBytesReceived; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamUnifiedMessagesSendMethodResult_t -{ - public ulong m_hHandle; - public ulong m_unContext; - public EResult m_eResult; - public uint m_unResponseSize; -} -[StructLayout(LayoutKind.Sequential)] public struct ControllerAnalogActionData_t -{ - public EControllerSourceMode eMode; - public float x; - public float y; - [MarshalAs(UnmanagedType.I1)] - public bool bActive; -} -[StructLayout(LayoutKind.Sequential)] public struct ControllerDigitalActionData_t -{ - [MarshalAs(UnmanagedType.I1)] - public bool bState; - [MarshalAs(UnmanagedType.I1)] - public bool bActive; -} -[StructLayout(LayoutKind.Sequential)] public struct ControllerMotionData_t -{ - public float rotQuatX; - public float rotQuatY; - public float rotQuatZ; - public float rotQuatW; - public float posAccelX; - public float posAccelY; - public float posAccelZ; - public float rotVelX; - public float rotVelY; - public float rotVelZ; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamUGCDetails_t -{ - public ulong m_nPublishedFileId; - public EResult m_eResult; - public EWorkshopFileType m_eFileType; - public uint m_nCreatorAppID; - public uint m_nConsumerAppID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] - public string m_rgchTitle; //char[129] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8000)] - public string m_rgchDescription; //char[8000] - public ulong m_ulSteamIDOwner; - public uint m_rtimeCreated; - public uint m_rtimeUpdated; - public uint m_rtimeAddedToUserList; - public ERemoteStoragePublishedFileVisibility m_eVisibility; - [MarshalAs(UnmanagedType.I1)] - public bool m_bBanned; - [MarshalAs(UnmanagedType.I1)] - public bool m_bAcceptedForUse; - [MarshalAs(UnmanagedType.I1)] - public bool m_bTagsTruncated; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1025)] - public string m_rgchTags; //char[1025] - public ulong m_hFile; - public ulong m_hPreviewFile; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - public string m_pchFileName; //char[260] - public int m_nFileSize; - public int m_nPreviewFileSize; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_rgchURL; //char[256] - public uint m_unVotesUp; - public uint m_unVotesDown; - public float m_flScore; - public uint m_unNumChildren; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamUGCQueryCompleted_t -{ - public ulong m_handle; - public EResult m_eResult; - public uint m_unNumResultsReturned; - public uint m_unTotalMatchingResults; - [MarshalAs(UnmanagedType.I1)] - public bool m_bCachedData; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamUGCRequestUGCDetailsResult_t -{ - public SteamUGCDetails_t m_details; - [MarshalAs(UnmanagedType.I1)] - public bool m_bCachedData; -} -[StructLayout(LayoutKind.Sequential)] public struct CreateItemResult_t -{ - public EResult m_eResult; - public ulong m_nPublishedFileId; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; -} -[StructLayout(LayoutKind.Sequential)] public struct SubmitItemUpdateResult_t -{ - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; -} -[StructLayout(LayoutKind.Sequential)] public struct DownloadItemResult_t -{ - public uint m_unAppID; - public ulong m_nPublishedFileId; - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct UserFavoriteItemsListChanged_t -{ - public ulong m_nPublishedFileId; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bWasAddRequest; -} -[StructLayout(LayoutKind.Sequential)] public struct SetUserItemVoteResult_t -{ - public ulong m_nPublishedFileId; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVoteUp; -} -[StructLayout(LayoutKind.Sequential)] public struct GetUserItemVoteResult_t -{ - public ulong m_nPublishedFileId; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVotedUp; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVotedDown; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVoteSkipped; -} -[StructLayout(LayoutKind.Sequential)] public struct StartPlaytimeTrackingResult_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct StopPlaytimeTrackingResult_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public uint m_nAppID; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_BrowserReady_t -{ - public uint unBrowserHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_NeedsPaint_t -{ - public uint unBrowserHandle; - public IntPtr pBGRA; // const char * - public uint unWide; - public uint unTall; - public uint unUpdateX; - public uint unUpdateY; - public uint unUpdateWide; - public uint unUpdateTall; - public uint unScrollX; - public uint unScrollY; - public float flPageScale; - public uint unPageSerial; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_StartRequest_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * - public IntPtr pchTarget; // const char * - public IntPtr pchPostData; // const char * - [MarshalAs(UnmanagedType.I1)] - public bool bIsRedirect; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_CloseBrowser_t -{ - public uint unBrowserHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_URLChanged_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * - public IntPtr pchPostData; // const char * - [MarshalAs(UnmanagedType.I1)] - public bool bIsRedirect; - public IntPtr pchPageTitle; // const char * - [MarshalAs(UnmanagedType.I1)] - public bool bNewNavigation; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_FinishedRequest_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * - public IntPtr pchPageTitle; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_OpenLinkInNewTab_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_ChangedTitle_t -{ - public uint unBrowserHandle; - public IntPtr pchTitle; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_SearchResults_t -{ - public uint unBrowserHandle; - public uint unResults; - public uint unCurrentMatch; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_CanGoBackAndForward_t -{ - public uint unBrowserHandle; - [MarshalAs(UnmanagedType.I1)] - public bool bCanGoBack; - [MarshalAs(UnmanagedType.I1)] - public bool bCanGoForward; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_HorizontalScroll_t -{ - public uint unBrowserHandle; - public uint unScrollMax; - public uint unScrollCurrent; - public float flPageScale; - [MarshalAs(UnmanagedType.I1)] - public bool bVisible; - public uint unPageSize; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_VerticalScroll_t -{ - public uint unBrowserHandle; - public uint unScrollMax; - public uint unScrollCurrent; - public float flPageScale; - [MarshalAs(UnmanagedType.I1)] - public bool bVisible; - public uint unPageSize; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_LinkAtPosition_t -{ - public uint unBrowserHandle; - public uint x; - public uint y; - public IntPtr pchURL; // const char * - [MarshalAs(UnmanagedType.I1)] - public bool bInput; - [MarshalAs(UnmanagedType.I1)] - public bool bLiveLink; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_JSAlert_t -{ - public uint unBrowserHandle; - public IntPtr pchMessage; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_JSConfirm_t -{ - public uint unBrowserHandle; - public IntPtr pchMessage; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_FileOpenDialog_t -{ - public uint unBrowserHandle; - public IntPtr pchTitle; // const char * - public IntPtr pchInitialFile; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_NewWindow_t -{ - public uint unBrowserHandle; - public IntPtr pchURL; // const char * - public uint unX; - public uint unY; - public uint unWide; - public uint unTall; - public uint unNewWindow_BrowserHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_SetCursor_t -{ - public uint unBrowserHandle; - public uint eMouseCursor; -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_StatusText_t -{ - public uint unBrowserHandle; - public IntPtr pchMsg; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_ShowToolTip_t -{ - public uint unBrowserHandle; - public IntPtr pchMsg; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_UpdateToolTip_t -{ - public uint unBrowserHandle; - public IntPtr pchMsg; // const char * -} -[StructLayout(LayoutKind.Sequential)] public struct HTML_HideToolTip_t -{ - public uint unBrowserHandle; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamItemDetails_t -{ - public ulong m_itemId; - public int m_iDefinition; - public char m_unQuantity; - public char m_unFlags; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamInventoryResultReady_t -{ - public int m_handle; - public EResult m_result; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamInventoryFullUpdate_t -{ - public int m_handle; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public EBroadcastUploadResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct SteamCallback_t -{ - public EResult m_eResult; - public uint m_unVideoAppID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_rgchURL; //char[256] -} -[StructLayout(LayoutKind.Sequential)] public struct CSteamAPIContext -{ - public IntPtr m_pSteamClient; // class ISteamClient * - public IntPtr m_pSteamUser; // class ISteamUser * - public IntPtr m_pSteamFriends; // class ISteamFriends * - public IntPtr m_pSteamUtils; // class ISteamUtils * - public IntPtr m_pSteamMatchmaking; // class ISteamMatchmaking * - public IntPtr m_pSteamUserStats; // class ISteamUserStats * - public IntPtr m_pSteamApps; // class ISteamApps * - public IntPtr m_pSteamMatchmakingServers; // class ISteamMatchmakingServers * - public IntPtr m_pSteamNetworking; // class ISteamNetworking * - public IntPtr m_pSteamRemoteStorage; // class ISteamRemoteStorage * - public IntPtr m_pSteamScreenshots; // class ISteamScreenshots * - public IntPtr m_pSteamHTTP; // class ISteamHTTP * - public IntPtr m_pSteamUnifiedMessages; // class ISteamUnifiedMessages * - public IntPtr m_pController; // class ISteamController * - public IntPtr m_pSteamUGC; // class ISteamUGC * - public IntPtr m_pSteamAppList; // class ISteamAppList * - public IntPtr m_pSteamMusic; // class ISteamMusic * - public IntPtr m_pSteamMusicRemote; // class ISteamMusicRemote * - public IntPtr m_pSteamHTMLSurface; // class ISteamHTMLSurface * - public IntPtr m_pSteamInventory; // class ISteamInventory * - public IntPtr m_pSteamVideo; // class ISteamVideo * -} -[StructLayout(LayoutKind.Sequential)] public struct CCallbackBase -{ - public byte m_nCallbackFlags; - public int m_iCallback; -} -[StructLayout(LayoutKind.Sequential)] public struct CCallResult -{ - public ulong m_hAPICall; - public IntPtr m_pObj; // T * - public IntPtr m_Func; -} -[StructLayout(LayoutKind.Sequential)] public struct CCallback -{ - public IntPtr m_pObj; // T * - public IntPtr m_Func; -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientApprove_t -{ - public ulong m_SteamID; - public ulong m_OwnerSteamID; -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientDeny_t -{ - public ulong m_SteamID; - public EDenyReason m_eDenyReason; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_rgchOptionalText; //char[128] -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientKick_t -{ - public ulong m_SteamID; - public EDenyReason m_eDenyReason; -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientAchievementStatus_t -{ - public ulong m_SteamID; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string m_pchAchievement; //char[128] - [MarshalAs(UnmanagedType.I1)] - public bool m_bUnlocked; -} -[StructLayout(LayoutKind.Sequential)] public struct GSPolicyResponse_t -{ - public byte m_bSecure; -} -[StructLayout(LayoutKind.Sequential)] public struct GSGameplayStats_t -{ - public EResult m_eResult; - public int m_nRank; - public uint m_unTotalConnects; - public uint m_unTotalMinutesPlayed; -} -[StructLayout(LayoutKind.Sequential)] public struct GSClientGroupStatus_t -{ - public ulong m_SteamIDUser; - public ulong m_SteamIDGroup; - [MarshalAs(UnmanagedType.I1)] - public bool m_bMember; - [MarshalAs(UnmanagedType.I1)] - public bool m_bOfficer; -} -[StructLayout(LayoutKind.Sequential)] public struct GSReputation_t -{ - public EResult m_eResult; - public uint m_unReputationScore; - [MarshalAs(UnmanagedType.I1)] - public bool m_bBanned; - public uint m_unBannedIP; - public char m_usBannedPort; - public ulong m_ulBannedGameID; - public uint m_unBanExpires; -} -[StructLayout(LayoutKind.Sequential)] public struct AssociateWithClanResult_t -{ - public EResult m_eResult; -} -[StructLayout(LayoutKind.Sequential)] public struct ComputeNewPlayerCompatibilityResult_t -{ - public EResult m_eResult; - public int m_cPlayersThatDontLikeCandidate; - public int m_cPlayersThatCandidateDoesntLike; - public int m_cClanPlayersThatDontLikeCandidate; - public ulong m_SteamIDCandidate; -} -[StructLayout(LayoutKind.Sequential)] public struct GSStatsReceived_t -{ - public EResult m_eResult; - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct GSStatsStored_t -{ - public EResult m_eResult; - public ulong m_steamIDUser; -} -[StructLayout(LayoutKind.Sequential)] public struct GSStatsUnloaded_t -{ - public ulong m_steamIDUser; -} - -public class SteamAPI -{ -public static void Init(uint appId) -{ -SteamAPIInterop.SteamAPI_RestartAppIfNecessary (appId); -SteamAPIInterop.SteamAPI_Init (); -} - -public static void RunCallbacks() -{ -SteamAPIInterop.SteamAPI_RunCallbacks (); -} - -public static void RegisterCallback(IntPtr pCallback, int iCallback) -{ -SteamAPIInterop.SteamAPI_RegisterCallback (pCallback, iCallback); -} - -public static void UnregisterCallback(IntPtr pCallback) -{ -SteamAPIInterop.SteamAPI_UnregisterCallback (pCallback); -} - -public const int k_iSteamUserCallbacks = 100; -public const int k_iSteamGameServerCallbacks = 200; -public const int k_iSteamFriendsCallbacks = 300; -public const int k_iSteamBillingCallbacks = 400; -public const int k_iSteamMatchmakingCallbacks = 500; -public const int k_iSteamContentServerCallbacks = 600; -public const int k_iSteamUtilsCallbacks = 700; -public const int k_iClientFriendsCallbacks = 800; -public const int k_iClientUserCallbacks = 900; -public const int k_iSteamAppsCallbacks = 1000; -public const int k_iSteamUserStatsCallbacks = 1100; -public const int k_iSteamNetworkingCallbacks = 1200; -public const int k_iClientRemoteStorageCallbacks = 1300; -public const int k_iClientDepotBuilderCallbacks = 1400; -public const int k_iSteamGameServerItemsCallbacks = 1500; -public const int k_iClientUtilsCallbacks = 1600; -public const int k_iSteamGameCoordinatorCallbacks = 1700; -public const int k_iSteamGameServerStatsCallbacks = 1800; -public const int k_iSteam2AsyncCallbacks = 1900; -public const int k_iSteamGameStatsCallbacks = 2000; -public const int k_iClientHTTPCallbacks = 2100; -public const int k_iClientScreenshotsCallbacks = 2200; -public const int k_iSteamScreenshotsCallbacks = 2300; -public const int k_iClientAudioCallbacks = 2400; -public const int k_iClientUnifiedMessagesCallbacks = 2500; -public const int k_iSteamStreamLauncherCallbacks = 2600; -public const int k_iClientControllerCallbacks = 2700; -public const int k_iSteamControllerCallbacks = 2800; -public const int k_iClientParentalSettingsCallbacks = 2900; -public const int k_iClientDeviceAuthCallbacks = 3000; -public const int k_iClientNetworkDeviceManagerCallbacks = 3100; -public const int k_iClientMusicCallbacks = 3200; -public const int k_iClientRemoteClientManagerCallbacks = 3300; -public const int k_iClientUGCCallbacks = 3400; -public const int k_iSteamStreamClientCallbacks = 3500; -public const int k_IClientProductBuilderCallbacks = 3600; -public const int k_iClientShortcutsCallbacks = 3700; -public const int k_iClientRemoteControlManagerCallbacks = 3800; -public const int k_iSteamAppListCallbacks = 3900; -public const int k_iSteamMusicCallbacks = 4000; -public const int k_iSteamMusicRemoteCallbacks = 4100; -public const int k_iClientVRCallbacks = 4200; -public const int k_iClientGameNotificationCallbacks = 4300; -public const int k_iSteamGameNotificationCallbacks = 4400; -public const int k_iSteamHTMLSurfaceCallbacks = 4500; -public const int k_iClientVideoCallbacks = 4600; -public const int k_iClientInventoryCallbacks = 4700; -public const int k_iClientBluetoothManagerCallbacks = 4800; -public const int k_cchPersonaNameMax = 128; -public const int k_cwchPersonaNameMax = 32; -public const int k_cchMaxRichPresenceKeys = 20; -public const int k_cchMaxRichPresenceKeyLength = 64; -public const int k_cchMaxRichPresenceValueLength = 256; -public const int k_cchStatNameMax = 128; -public const int k_cchLeaderboardNameMax = 128; -public const int k_cLeaderboardDetailsMax = 64; -public const ulong k_InvalidUnifiedMessageHandle = 0; -public const ulong k_SteamItemInstanceIDInvalid = 0xffffffffffffffff; -public const int k_SteamInventoryResultInvalid = -1; -public static ISteamClient SteamClient() -{ -return new CSteamClient(SteamAPIInterop.SteamClient()); -} - -public static ISteamUser SteamUser() -{ -return new CSteamUser(SteamAPIInterop.SteamUser()); -} - -public static ISteamFriends SteamFriends() -{ -return new CSteamFriends(SteamAPIInterop.SteamFriends()); -} - -public static ISteamUtils SteamUtils() -{ -return new CSteamUtils(SteamAPIInterop.SteamUtils()); -} - -public static ISteamMatchmaking SteamMatchmaking() -{ -return new CSteamMatchmaking(SteamAPIInterop.SteamMatchmaking()); -} - -public static ISteamMatchmakingServerListResponse SteamMatchmakingServerListResponse() -{ -return new CSteamMatchmakingServerListResponse(SteamAPIInterop.SteamMatchmakingServerListResponse()); -} - -public static ISteamMatchmakingPingResponse SteamMatchmakingPingResponse() -{ -return new CSteamMatchmakingPingResponse(SteamAPIInterop.SteamMatchmakingPingResponse()); -} - -public static ISteamMatchmakingPlayersResponse SteamMatchmakingPlayersResponse() -{ -return new CSteamMatchmakingPlayersResponse(SteamAPIInterop.SteamMatchmakingPlayersResponse()); -} - -public static ISteamMatchmakingRulesResponse SteamMatchmakingRulesResponse() -{ -return new CSteamMatchmakingRulesResponse(SteamAPIInterop.SteamMatchmakingRulesResponse()); -} - -public static ISteamMatchmakingServers SteamMatchmakingServers() -{ -return new CSteamMatchmakingServers(SteamAPIInterop.SteamMatchmakingServers()); -} - -public static ISteamRemoteStorage SteamRemoteStorage() -{ -return new CSteamRemoteStorage(SteamAPIInterop.SteamRemoteStorage()); -} - -public static ISteamUserStats SteamUserStats() -{ -return new CSteamUserStats(SteamAPIInterop.SteamUserStats()); -} - -public static ISteamApps SteamApps() -{ -return new CSteamApps(SteamAPIInterop.SteamApps()); -} - -public static ISteamNetworking SteamNetworking() -{ -return new CSteamNetworking(SteamAPIInterop.SteamNetworking()); -} - -public static ISteamScreenshots SteamScreenshots() -{ -return new CSteamScreenshots(SteamAPIInterop.SteamScreenshots()); -} - -public static ISteamMusic SteamMusic() -{ -return new CSteamMusic(SteamAPIInterop.SteamMusic()); -} - -public static ISteamMusicRemote SteamMusicRemote() -{ -return new CSteamMusicRemote(SteamAPIInterop.SteamMusicRemote()); -} - -public static ISteamHTTP SteamHTTP() -{ -return new CSteamHTTP(SteamAPIInterop.SteamHTTP()); -} - -public static ISteamUnifiedMessages SteamUnifiedMessages() -{ -return new CSteamUnifiedMessages(SteamAPIInterop.SteamUnifiedMessages()); -} - -public static ISteamController SteamController() -{ -return new CSteamController(SteamAPIInterop.SteamController()); -} - -public static ISteamUGC SteamUGC() -{ -return new CSteamUGC(SteamAPIInterop.SteamUGC()); -} - -public static ISteamAppList SteamAppList() -{ -return new CSteamAppList(SteamAPIInterop.SteamAppList()); -} - -public static ISteamHTMLSurface SteamHTMLSurface() -{ -return new CSteamHTMLSurface(SteamAPIInterop.SteamHTMLSurface()); -} - -public static ISteamInventory SteamInventory() -{ -return new CSteamInventory(SteamAPIInterop.SteamInventory()); -} - -public static ISteamVideo SteamVideo() -{ -return new CSteamVideo(SteamAPIInterop.SteamVideo()); -} - -public static ISteamGameServer SteamGameServer() -{ -return new CSteamGameServer(SteamAPIInterop.SteamGameServer()); -} - -public static ISteamGameServerStats SteamGameServerStats() -{ -return new CSteamGameServerStats(SteamAPIInterop.SteamGameServerStats()); -} - -} - - - -} - diff --git a/lib/windows/include/steam/steam_gameserver.h b/lib/windows/include/steam/steam_gameserver.h index f2d2847..f3873db 100644 --- a/lib/windows/include/steam/steam_gameserver.h +++ b/lib/windows/include/steam/steam_gameserver.h @@ -22,24 +22,46 @@ enum EServerMode eServerModeAuthenticationAndSecure = 3, // Authenticate users, list on the server list and VAC protect clients }; -// Initialize ISteamGameServer interface object, and set server properties which may not be changed. +/// Pass to SteamGameServer_Init to indicate that the same UDP port will be used for game traffic +/// UDP queries for server browser pings and LAN discovery. In this case, Steam will not open up a +/// socket to handle server browser queries, and you must use ISteamGameServer::HandleIncomingPacket +/// and ISteamGameServer::GetNextOutgoingPacket to handle packets related to server discovery on your socket. +const uint16 STEAMGAMESERVER_QUERY_PORT_SHARED = 0xffff; + +// DEPRECATED: This old name was really confusing. +const uint16 MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE = STEAMGAMESERVER_QUERY_PORT_SHARED; + +// Initialize SteamGameServer client and interface objects, and set server properties which may not be changed. // // After calling this function, you should set any additional server parameters, and then // call ISteamGameServer::LogOnAnonymous() or ISteamGameServer::LogOn() // -// - usSteamPort is the local port used to communicate with the steam servers. -// - usGamePort is the port that clients will connect to for gameplay. +// - unIP will usually be zero. If you are on a machine with multiple IP addresses, you can pass a non-zero +// value here and the relevant sockets will be bound to that IP. This can be used to ensure that +// the IP you desire is the one used in the server browser. +// - usGamePort is the port that clients will connect to for gameplay. You will usually open up your +// own socket bound to this port. // - usQueryPort is the port that will manage server browser related duties and info -// pings from clients. If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE for usQueryPort, then it +// pings from clients. If you pass STEAMGAMESERVER_QUERY_PORT_SHARED for usQueryPort, then it // will use "GameSocketShare" mode, which means that the game is responsible for sending and receiving -// UDP packets for the master server updater. See references to GameSocketShare in isteamgameserver.h. -// - The version string is usually in the form x.x.x.x, and is used by the master server to detect when the +// UDP packets for the master server updater. (See ISteamGameServer::HandleIncomingPacket and +// ISteamGameServer::GetNextOutgoingPacket.) +// - The version string should be in the form x.x.x.x, and is used by the master server to detect when the // server is out of date. (Only servers with the latest version will be listed.) +// +// On success k_ESteamAPIInitResult_OK is returned. Otherwise, if pOutErrMsg is non-NULL, +// it will receive a non-localized message that explains the reason for the failure +inline ESteamAPIInitResult SteamGameServer_InitEx( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString, SteamErrMsg *pOutErrMsg ); -inline bool SteamGameServer_Init( uint32 unIP, uint16 usSteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ); +// This function is included for compatibility with older SDK. +// You can use it if you don't care about decent error handling +inline bool SteamGameServer_Init( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ) +{ + return SteamGameServer_InitEx( unIP, usGamePort, usQueryPort, eServerMode, pchVersionString, NULL ) == k_ESteamAPIInitResult_OK; +} +// Shutdown SteamGameSeverXxx interfaces, log out, and free resources. S_API void SteamGameServer_Shutdown(); -S_API void SteamGameServer_RunCallbacks(); // Most Steam API functions allocate some amount of thread-local memory for // parameter storage. Calling SteamGameServer_ReleaseCurrentThreadMemory() @@ -51,52 +73,6 @@ inline void SteamGameServer_ReleaseCurrentThreadMemory(); S_API bool SteamGameServer_BSecure(); S_API uint64 SteamGameServer_GetSteamID(); -// If your application contains modules which could be built against different Steamworks SDK -// versions, then you should define VERSION_SAFE_STEAM_API_INTERFACES to enforce that you cannot -// use the version-less global accessors. Instead, create and use CSteamGameServerAPIContext -// objects to retrieve interface pointers which are appropriate for your Steamworks SDK headers. -#if !defined( VERSION_SAFE_STEAM_API_INTERFACES ) && !defined( STEAM_API_EXPORTS ) -inline ISteamClient *SteamGameServerClient(); -inline ISteamGameServer *SteamGameServer(); -inline ISteamUtils *SteamGameServerUtils(); -inline ISteamNetworking *SteamGameServerNetworking(); -inline ISteamGameServerStats *SteamGameServerStats(); -inline ISteamHTTP *SteamGameServerHTTP(); -inline ISteamInventory *SteamGameServerInventory(); -inline ISteamUGC *SteamGameServerUGC(); -inline ISteamApps *SteamGameServerApps(); -#endif - -class CSteamGameServerAPIContext -{ -public: - CSteamGameServerAPIContext() { Clear(); } - inline void Clear(); - inline bool Init(); - - ISteamClient *SteamClient() const { return m_pSteamClient; } - ISteamGameServer *SteamGameServer() const { return m_pSteamGameServer; } - ISteamUtils *SteamGameServerUtils() const { return m_pSteamGameServerUtils; } - ISteamNetworking *SteamGameServerNetworking() const { return m_pSteamGameServerNetworking; } - ISteamGameServerStats *SteamGameServerStats() const { return m_pSteamGameServerStats; } - ISteamHTTP *SteamHTTP() const { return m_pSteamHTTP; } - ISteamInventory *SteamInventory() const { return m_pSteamInventory; } - ISteamUGC *SteamUGC() const { return m_pSteamUGC; } - ISteamApps *SteamApps() const { return m_pSteamApps; } - -private: - ISteamClient *m_pSteamClient; - ISteamGameServer *m_pSteamGameServer; - ISteamUtils *m_pSteamGameServerUtils; - ISteamNetworking *m_pSteamGameServerNetworking; - ISteamGameServerStats *m_pSteamGameServerStats; - ISteamHTTP *m_pSteamHTTP; - ISteamInventory *m_pSteamInventory; - ISteamUGC *m_pSteamUGC; - ISteamApps *m_pSteamApps; -}; - - // Older SDKs exported this global pointer, but it is no longer supported. // You should use SteamGameServerClient() or CSteamGameServerAPIContext to // safely access the ISteamClient APIs from your game server application. @@ -106,129 +82,53 @@ private: // is no longer supported. Use SteamGameServer_Init instead. //S_API void S_CALLTYPE SteamGameServer_InitSafe(); - -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -// These macros are similar to the STEAM_CALLBACK_* macros in steam_api.h, but only trigger for gameserver callbacks -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -#define STEAM_GAMESERVER_CALLBACK( thisclass, func, /*callback_type, [deprecated] var*/... ) \ - _STEAM_CALLBACK_SELECT( ( __VA_ARGS__, GS, 3 ), ( this->SetGameserverFlag();, thisclass, func, __VA_ARGS__ ) ) - -#define STEAM_GAMESERVER_CALLBACK_MANUAL( thisclass, func, callback_type, var ) \ - CCallbackManual< thisclass, callback_type, true > var; void func( callback_type *pParam ) - - -#define _STEAM_CALLBACK_GS( _, thisclass, func, param, var ) \ - CCallback< thisclass, param, true > var; void func( param *pParam ) - -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -// steamclient.dll private wrapper functions +//============================================================================= // -// The following functions are part of abstracting API access to the steamclient.dll, but should only be used in very specific cases -//----------------------------------------------------------------------------------------------------------------------------------------------------------// -S_API HSteamPipe S_CALLTYPE SteamGameServer_GetHSteamPipe(); -S_API HSteamUser S_CALLTYPE SteamGameServer_GetHSteamUser(); -S_API bool S_CALLTYPE SteamInternal_GameServer_Init( uint32 unIP, uint16 usPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ); - - -#if !defined( VERSION_SAFE_STEAM_API_INTERFACES ) && !defined( STEAM_API_EXPORTS ) -inline CSteamGameServerAPIContext& SteamGameServerInternal_ModuleContext() -{ - // NOTE: declaring "static CSteamAPIConext" creates a large function - // which queries the initialization status of the object. We know that - // it is pointer-aligned and fully memset with zeros, so just alias a - // static buffer of the appropriate size and call it a CSteamAPIContext. - static void* ctx[ sizeof(CSteamGameServerAPIContext)/sizeof(void*) ]; - return *(CSteamGameServerAPIContext*)ctx; -} -#define _STEAMINTERNAL_ACCESSOR_BODY( AccessFunc ) \ - if ( !SteamGameServer_GetHSteamPipe() ) return 0; \ - CSteamGameServerAPIContext &ctx = SteamGameServerInternal_ModuleContext(); \ - if ( !ctx.AccessFunc() ) ctx.Init(); \ - return ctx.AccessFunc(); - -inline ISteamClient *SteamGameServerClient() { _STEAMINTERNAL_ACCESSOR_BODY( SteamClient ) } -inline ISteamGameServer *SteamGameServer() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServer ) } -inline ISteamUtils *SteamGameServerUtils() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServerUtils ) } -inline ISteamNetworking *SteamGameServerNetworking() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServerNetworking ) } -inline ISteamGameServerStats *SteamGameServerStats() { _STEAMINTERNAL_ACCESSOR_BODY( SteamGameServerStats ) } -inline ISteamHTTP *SteamGameServerHTTP() { _STEAMINTERNAL_ACCESSOR_BODY( SteamHTTP ) } -inline ISteamInventory *SteamGameServerInventory() { _STEAMINTERNAL_ACCESSOR_BODY( SteamInventory ) } -inline ISteamUGC *SteamGameServerUGC() { _STEAMINTERNAL_ACCESSOR_BODY( SteamUGC ) } -inline ISteamApps *SteamGameServerApps() { _STEAMINTERNAL_ACCESSOR_BODY( SteamApps ) } -#undef _STEAMINTERNAL_ACCESSOR_BODY -#endif // !defined( VERSION_SAFE_STEAM_API_INTERFACES ) && !defined( STEAM_API_EXPORTS ) - - -inline void CSteamGameServerAPIContext::Clear() -{ - m_pSteamClient = NULL; - m_pSteamGameServer = NULL; - m_pSteamGameServerUtils = NULL; - m_pSteamGameServerNetworking = NULL; - m_pSteamGameServerStats = NULL; - m_pSteamHTTP = NULL; - m_pSteamInventory = NULL; - m_pSteamUGC = NULL; - m_pSteamApps = NULL; -} +// Internal implementation details below +// +//============================================================================= +#ifndef STEAM_API_EXPORTS // This function must be declared inline in the header so the module using steam_api.dll gets the version names they want. inline bool CSteamGameServerAPIContext::Init() { - HSteamUser hSteamUser = SteamGameServer_GetHSteamUser(); - HSteamPipe hSteamPipe = SteamGameServer_GetHSteamPipe(); - if ( !hSteamPipe ) - return false; - - m_pSteamClient = (ISteamClient*) SteamInternal_CreateInterface( STEAMCLIENT_INTERFACE_VERSION ); + m_pSteamClient = ::SteamGameServerClient(); if ( !m_pSteamClient ) return false; - - m_pSteamGameServer = m_pSteamClient->GetISteamGameServer( hSteamUser, hSteamPipe, STEAMGAMESERVER_INTERFACE_VERSION ); - if ( !m_pSteamGameServer ) - return false; - m_pSteamGameServerUtils = m_pSteamClient->GetISteamUtils( hSteamPipe, STEAMUTILS_INTERFACE_VERSION ); - if ( !m_pSteamGameServerUtils ) - return false; - - m_pSteamGameServerNetworking = m_pSteamClient->GetISteamNetworking( hSteamUser, hSteamPipe, STEAMNETWORKING_INTERFACE_VERSION ); - if ( !m_pSteamGameServerNetworking ) - return false; - - m_pSteamGameServerStats = m_pSteamClient->GetISteamGameServerStats( hSteamUser, hSteamPipe, STEAMGAMESERVERSTATS_INTERFACE_VERSION ); - if ( !m_pSteamGameServerStats ) - return false; - - m_pSteamHTTP = m_pSteamClient->GetISteamHTTP( hSteamUser, hSteamPipe, STEAMHTTP_INTERFACE_VERSION ); - if ( !m_pSteamHTTP ) - return false; - - m_pSteamInventory = m_pSteamClient->GetISteamInventory( hSteamUser, hSteamPipe, STEAMINVENTORY_INTERFACE_VERSION ); - if ( !m_pSteamInventory ) - return false; - - m_pSteamUGC = m_pSteamClient->GetISteamUGC( hSteamUser, hSteamPipe, STEAMUGC_INTERFACE_VERSION ); - if ( !m_pSteamUGC ) - return false; - - m_pSteamApps = m_pSteamClient->GetISteamApps( hSteamUser, hSteamPipe, STEAMAPPS_INTERFACE_VERSION ); - if ( !m_pSteamApps ) + m_pSteamGameServer = ::SteamGameServer(); + m_pSteamGameServerUtils = ::SteamGameServerUtils(); + m_pSteamGameServerNetworking = ::SteamGameServerNetworking(); + m_pSteamGameServerStats = ::SteamGameServerStats(); + m_pSteamHTTP = ::SteamGameServerHTTP(); + m_pSteamInventory = ::SteamGameServerInventory(); + m_pSteamUGC = ::SteamGameServerUGC(); + if ( !m_pSteamGameServer || !m_pSteamGameServerUtils || !m_pSteamGameServerNetworking || !m_pSteamGameServerStats + || !m_pSteamHTTP || !m_pSteamInventory || !m_pSteamUGC ) return false; return true; } +#endif - -inline bool SteamGameServer_Init( uint32 unIP, uint16 usSteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString ) +S_API ESteamAPIInitResult S_CALLTYPE SteamInternal_GameServer_Init_V2( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString, const char *pszInternalCheckInterfaceVersions, SteamErrMsg *pOutErrMsg ); +inline ESteamAPIInitResult SteamGameServer_InitEx( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString, SteamErrMsg *pOutErrMsg ) { - if ( !SteamInternal_GameServer_Init( unIP, usSteamPort, usGamePort, usQueryPort, eServerMode, pchVersionString ) ) - return false; + const char *pszInternalCheckInterfaceVersions = + STEAMUTILS_INTERFACE_VERSION "\0" + STEAMNETWORKINGUTILS_INTERFACE_VERSION "\0" - return true; + STEAMGAMESERVER_INTERFACE_VERSION "\0" + STEAMGAMESERVERSTATS_INTERFACE_VERSION "\0" + STEAMHTTP_INTERFACE_VERSION "\0" + STEAMINVENTORY_INTERFACE_VERSION "\0" + STEAMNETWORKING_INTERFACE_VERSION "\0" + STEAMNETWORKINGMESSAGES_INTERFACE_VERSION "\0" + STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "\0" + STEAMUGC_INTERFACE_VERSION "\0" + "\0"; + return SteamInternal_GameServer_Init_V2( unIP, usGamePort, usQueryPort, eServerMode, pchVersionString, pszInternalCheckInterfaceVersions, pOutErrMsg ); } - - inline void SteamGameServer_ReleaseCurrentThreadMemory() { SteamAPI_ReleaseCurrentThreadMemory(); diff --git a/lib/windows/include/steam/steamclientpublic.h b/lib/windows/include/steam/steamclientpublic.h index 8d89376..5cf5d4d 100644 --- a/lib/windows/include/steam/steamclientpublic.h +++ b/lib/windows/include/steam/steamclientpublic.h @@ -1,23 +1,11 @@ //========= Copyright � 1996-2008, Valve LLC, All rights reserved. ============ // -// Purpose: +// Declare common types used by the Steamworks SDK. // //============================================================================= #ifndef STEAMCLIENTPUBLIC_H #define STEAMCLIENTPUBLIC_H -#ifdef _WIN32 -#pragma once -#endif -//lint -save -e1931 -e1927 -e1924 -e613 -e726 - -// This header file defines the interface between the calling application and the code that -// knows how to communicate with the connection manager (CM) from the Steam service - -// This header file is intended to be portable; ideally this 1 header file plus a lib or dll -// is all you need to integrate the client library into some other tree. So please avoid -// including or requiring other header files if possible. This header should only describe the -// interface layer, no need to include anything about the implementation. #include "steamtypes.h" #include "steamuniverse.h" @@ -25,6 +13,7 @@ // General result codes enum EResult { + k_EResultNone = 0, // no result k_EResultOK = 1, // success k_EResultFail = 2, // generic failure k_EResultNoConnection = 3, // no/failed network connection @@ -90,7 +79,7 @@ enum EResult k_EResultAccountLogonDenied = 63, // account login denied due to 2nd factor authentication failure k_EResultCannotUseOldPassword = 64, // The requested new password is not legal k_EResultInvalidLoginAuthCode = 65, // account login denied due to auth code invalid - k_EResultAccountLogonDeniedNoMail = 66, // account login denied due to 2nd factor auth failure - and no mail has been sent + k_EResultAccountLogonDeniedNoMail = 66, // account login denied due to 2nd factor auth failure - and no mail has been sent - partner site specific k_EResultHardwareNotCapableOfIPT = 67, // k_EResultIPTInitError = 68, // k_EResultParentalControlRestricted = 69, // operation failed due to parental control restrictions for current user @@ -131,6 +120,29 @@ enum EResult k_EResultInvalidItemType = 104, // the type of thing we were requested to act on is invalid k_EResultIPBanned = 105, // the ip address has been banned from taking this action k_EResultGSLTExpired = 106, // this token has expired from disuse; can be reset for use + k_EResultInsufficientFunds = 107, // user doesn't have enough wallet funds to complete the action + k_EResultTooManyPending = 108, // There are too many of this thing pending already + k_EResultNoSiteLicensesFound = 109, // No site licenses found + k_EResultWGNetworkSendExceeded = 110, // the WG couldn't send a response because we exceeded max network send size + k_EResultAccountNotFriends = 111, // the user is not mutually friends + k_EResultLimitedUserAccount = 112, // the user is limited + k_EResultCantRemoveItem = 113, // item can't be removed + k_EResultAccountDeleted = 114, // account has been deleted + k_EResultExistingUserCancelledLicense = 115, // A license for this already exists, but cancelled + k_EResultCommunityCooldown = 116, // access is denied because of a community cooldown (probably from support profile data resets) + k_EResultNoLauncherSpecified = 117, // No launcher was specified, but a launcher was needed to choose correct realm for operation. + k_EResultMustAgreeToSSA = 118, // User must agree to china SSA or global SSA before login + k_EResultLauncherMigrated = 119, // The specified launcher type is no longer supported; the user should be directed elsewhere + k_EResultSteamRealmMismatch = 120, // The user's realm does not match the realm of the requested resource + k_EResultInvalidSignature = 121, // signature check did not match + k_EResultParseFailure = 122, // Failed to parse input + k_EResultNoVerifiedPhone = 123, // account does not have a verified phone number + k_EResultInsufficientBattery = 124, // user device doesn't have enough battery charge currently to complete the action + k_EResultChargerRequired = 125, // The operation requires a charger to be plugged in, which wasn't present + k_EResultCachedCredentialInvalid = 126, // Cached credential was invalid - user must reauthenticate + K_EResultPhoneNumberIsVOIP = 127, // The phone number provided is a Voice Over IP number + k_EResultNotSupported = 128, // The data being accessed is not supported by this API + k_EResultFamilySizeLimitExceeded = 129, // Reached the maximum size of the family }; // Error codes for use with the voice functions @@ -198,6 +210,7 @@ enum EAuthSessionResponse k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed = 7, // This ticket has already been used, it is not valid. k_EAuthSessionResponseAuthTicketInvalid = 8, // This ticket is not from a user instance currently connected to steam. k_EAuthSessionResponsePublisherIssuedBan = 9, // The user is banned for this game. The ban came via the web api and not VAC + k_EAuthSessionResponseAuthTicketNetworkIdentityFailure = 10, // The network identity in the ticket does not match the server authenticating the ticket }; // results from UserHasLicenseForApp @@ -230,93 +243,6 @@ enum EAccountType -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -enum EAppReleaseState -{ - k_EAppReleaseState_Unknown = 0, // unknown, required appinfo or license info is missing - k_EAppReleaseState_Unavailable = 1, // even if user 'just' owns it, can see game at all - k_EAppReleaseState_Prerelease = 2, // can be purchased and is visible in games list, nothing else. Common appInfo section released - k_EAppReleaseState_PreloadOnly = 3, // owners can preload app, not play it. AppInfo fully released. - k_EAppReleaseState_Released = 4, // owners can download and play app. -}; - - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -enum EAppOwnershipFlags -{ - k_EAppOwnershipFlags_None = 0x0000, // unknown - k_EAppOwnershipFlags_OwnsLicense = 0x0001, // owns license for this game - k_EAppOwnershipFlags_FreeLicense = 0x0002, // not paid for game - k_EAppOwnershipFlags_RegionRestricted = 0x0004, // owns app, but not allowed to play in current region - k_EAppOwnershipFlags_LowViolence = 0x0008, // only low violence version - k_EAppOwnershipFlags_InvalidPlatform = 0x0010, // app not supported on current platform - k_EAppOwnershipFlags_SharedLicense = 0x0020, // license was granted by authorized local device - k_EAppOwnershipFlags_FreeWeekend = 0x0040, // owned by a free weekend licenses - k_EAppOwnershipFlags_RetailLicense = 0x0080, // has a retail license for game, (CD-Key etc) - k_EAppOwnershipFlags_LicenseLocked = 0x0100, // shared license is locked (in use) by other user - k_EAppOwnershipFlags_LicensePending = 0x0200, // owns app, but transaction is still pending. Can't install or play - k_EAppOwnershipFlags_LicenseExpired = 0x0400, // doesn't own app anymore since license expired - k_EAppOwnershipFlags_LicensePermanent = 0x0800, // permanent license, not borrowed, or guest or freeweekend etc - k_EAppOwnershipFlags_LicenseRecurring = 0x1000, // Recurring license, user is charged periodically - k_EAppOwnershipFlags_LicenseCanceled = 0x2000, // Mark as canceled, but might be still active if recurring - k_EAppOwnershipFlags_AutoGrant = 0x4000, // Ownership is based on any kind of autogrant license - k_EAppOwnershipFlags_PendingGift = 0x8000, // user has pending gift to redeem - k_EAppOwnershipFlags_RentalNotActivated = 0x10000, // Rental hasn't been activated yet - k_EAppOwnershipFlags_Rental = 0x20000, // Is a rental -}; - - -//----------------------------------------------------------------------------- -// Purpose: designed as flags to allow filters masks -//----------------------------------------------------------------------------- -enum EAppType -{ - k_EAppType_Invalid = 0x000, // unknown / invalid - k_EAppType_Game = 0x001, // playable game, default type - k_EAppType_Application = 0x002, // software application - k_EAppType_Tool = 0x004, // SDKs, editors & dedicated servers - k_EAppType_Demo = 0x008, // game demo - k_EAppType_Media_DEPRECATED = 0x010, // legacy - was used for game trailers, which are now just videos on the web - k_EAppType_DLC = 0x020, // down loadable content - k_EAppType_Guide = 0x040, // game guide, PDF etc - k_EAppType_Driver = 0x080, // hardware driver updater (ATI, Razor etc) - k_EAppType_Config = 0x100, // hidden app used to config Steam features (backpack, sales, etc) - k_EAppType_Hardware = 0x200, // a hardware device (Steam Machine, Steam Controller, Steam Link, etc.) - k_EAppType_Franchise = 0x400, // A hub for collections of multiple apps, eg films, series, games - k_EAppType_Video = 0x800, // A video component of either a Film or TVSeries (may be the feature, an episode, preview, making-of, etc) - k_EAppType_Plugin = 0x1000, // Plug-in types for other Apps - k_EAppType_Music = 0x2000, // Music files - k_EAppType_Series = 0x4000, // Container app for video series - - k_EAppType_Shortcut = 0x40000000, // just a shortcut, client side only - k_EAppType_DepotOnly = 0x80000000, // placeholder since depots and apps share the same namespace -}; - - - -//----------------------------------------------------------------------------- -// types of user game stats fields -// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE -//----------------------------------------------------------------------------- -enum ESteamUserStatType -{ - k_ESteamUserStatTypeINVALID = 0, - k_ESteamUserStatTypeINT = 1, - k_ESteamUserStatTypeFLOAT = 2, - // Read as FLOAT, set with count / session length - k_ESteamUserStatTypeAVGRATE = 3, - k_ESteamUserStatTypeACHIEVEMENTS = 4, - k_ESteamUserStatTypeGROUPACHIEVEMENTS = 5, - - // max, for sanity checks - k_ESteamUserStatTypeMAX -}; - - //----------------------------------------------------------------------------- // Purpose: Chat Entry Types (previously was only friend-to-friend message types) //----------------------------------------------------------------------------- @@ -360,18 +286,13 @@ enum EChatRoomEnterResponse // k_EChatRoomEnterResponseNoRankingDataLobby = 12, // No longer used // k_EChatRoomEnterResponseNoRankingDataUser = 13, // No longer used // k_EChatRoomEnterResponseRankOutOfRange = 14, // No longer used + k_EChatRoomEnterResponseRatelimitExceeded = 15, // Join failed - to many join attempts in a very short period of time }; -typedef void (*PFNLegacyKeyRegistration)( const char *pchCDKey, const char *pchInstallPath ); -typedef bool (*PFNLegacyKeyInstalled)(); - const unsigned int k_unSteamAccountIDMask = 0xFFFFFFFF; const unsigned int k_unSteamAccountInstanceMask = 0x000FFFFF; -// we allow 3 simultaneous user account instances right now, 1= desktop, 2 = console, 4 = web, 0 = all -const unsigned int k_unSteamUserDesktopInstance = 1; -const unsigned int k_unSteamUserConsoleInstance = 2; -const unsigned int k_unSteamUserWebInstance = 4; +const unsigned int k_unSteamUserDefaultInstance = 1; // fixed instance for all individual users // Special flags for Chat accounts - they go in the top 8 bits // of the steam ID's "instance", leaving 12 for the actual instances @@ -387,31 +308,12 @@ enum EChatSteamIDInstanceFlags }; -//----------------------------------------------------------------------------- -// Purpose: Marketing message flags that change how a client should handle them -//----------------------------------------------------------------------------- -enum EMarketingMessageFlags -{ - k_EMarketingMessageFlagsNone = 0, - k_EMarketingMessageFlagsHighPriority = 1 << 0, - k_EMarketingMessageFlagsPlatformWindows = 1 << 1, - k_EMarketingMessageFlagsPlatformMac = 1 << 2, - k_EMarketingMessageFlagsPlatformLinux = 1 << 3, - - //aggregate flags - k_EMarketingMessageFlagsPlatformRestrictions = - k_EMarketingMessageFlagsPlatformWindows | - k_EMarketingMessageFlagsPlatformMac | - k_EMarketingMessageFlagsPlatformLinux, -}; - - - //----------------------------------------------------------------------------- // Purpose: Possible positions to tell the overlay to show notifications in //----------------------------------------------------------------------------- enum ENotificationPosition { + k_EPositionInvalid = -1, k_EPositionTopLeft = 0, k_EPositionTopRight = 1, k_EPositionBottomLeft = 2, @@ -438,113 +340,127 @@ enum EBroadcastUploadResult k_EBroadcastUploadResultMissingAudio = 11, // client failed to send audio data k_EBroadcastUploadResultTooFarBehind = 12, // clients was too slow uploading k_EBroadcastUploadResultTranscodeBehind = 13, // server failed to keep up with transcode + k_EBroadcastUploadResultNotAllowedToPlay = 14, // Broadcast does not have permissions to play game + k_EBroadcastUploadResultBusy = 15, // RTMP host to busy to take new broadcast stream, choose another + k_EBroadcastUploadResultBanned = 16, // Account banned from community broadcast + k_EBroadcastUploadResultAlreadyActive = 17, // We already already have an stream running. + k_EBroadcastUploadResultForcedOff = 18, // We explicitly shutting down a broadcast + k_EBroadcastUploadResultAudioBehind = 19, // Audio stream was too far behind video + k_EBroadcastUploadResultShutdown = 20, // Broadcast Server was shut down + k_EBroadcastUploadResultDisconnect = 21, // broadcast uploader TCP disconnected + k_EBroadcastUploadResultVideoInitFailed = 22, // invalid video settings + k_EBroadcastUploadResultAudioInitFailed = 23, // invalid audio settings }; //----------------------------------------------------------------------------- -// Purpose: codes for well defined launch options +// Purpose: Reasons a user may not use the Community Market. +// Used in MarketEligibilityResponse_t. //----------------------------------------------------------------------------- -enum ELaunchOptionType +enum EMarketNotAllowedReasonFlags { - k_ELaunchOptionType_None = 0, // unknown what launch option does - k_ELaunchOptionType_Default = 1, // runs the game, app, whatever in default mode - k_ELaunchOptionType_SafeMode = 2, // runs the game in safe mode - k_ELaunchOptionType_Multiplayer = 3, // runs the game in multiplayer mode - k_ELaunchOptionType_Config = 4, // runs config tool for this game - k_ELaunchOptionType_OpenVR = 5, // runs game in VR mode using OpenVR - k_ELaunchOptionType_Server = 6, // runs dedicated server for this game - k_ELaunchOptionType_Editor = 7, // runs game editor - k_ELaunchOptionType_Manual = 8, // shows game manual - k_ELaunchOptionType_Benchmark = 9, // runs game benchmark - k_ELaunchOptionType_Option1 = 10, // generic run option, uses description field for game name - k_ELaunchOptionType_Option2 = 11, // generic run option, uses description field for game name - k_ELaunchOptionType_Option3 = 12, // generic run option, uses description field for game name - k_ELaunchOptionType_OculusVR = 13, // runs game in VR mode using the Oculus SDK - k_ELaunchOptionType_OpenVROverlay = 14, // runs an OpenVR dashboard overlay - k_ELaunchOptionType_OSVR = 15, // runs game in VR mode using the OSVR SDK + k_EMarketNotAllowedReason_None = 0, + // A back-end call failed or something that might work again on retry + k_EMarketNotAllowedReason_TemporaryFailure = (1 << 0), + + // Disabled account + k_EMarketNotAllowedReason_AccountDisabled = (1 << 1), + + // Locked account + k_EMarketNotAllowedReason_AccountLockedDown = (1 << 2), + + // Limited account (no purchases) + k_EMarketNotAllowedReason_AccountLimited = (1 << 3), + + // The account is banned from trading items + k_EMarketNotAllowedReason_TradeBanned = (1 << 4), + + // Wallet funds aren't tradable because the user has had no purchase + // activity in the last year or has had no purchases prior to last month + k_EMarketNotAllowedReason_AccountNotTrusted = (1 << 5), + + // The user doesn't have Steam Guard enabled + k_EMarketNotAllowedReason_SteamGuardNotEnabled = (1 << 6), + + // The user has Steam Guard, but it hasn't been enabled for the required + // number of days + k_EMarketNotAllowedReason_SteamGuardOnlyRecentlyEnabled = (1 << 7), + + // The user has recently forgotten their password and reset it + k_EMarketNotAllowedReason_RecentPasswordReset = (1 << 8), + + // The user has recently funded his or her wallet with a new payment method + k_EMarketNotAllowedReason_NewPaymentMethod = (1 << 9), + + // An invalid cookie was sent by the user + k_EMarketNotAllowedReason_InvalidCookie = (1 << 10), + + // The user has Steam Guard, but is using a new computer or web browser + k_EMarketNotAllowedReason_UsingNewDevice = (1 << 11), + + // The user has recently refunded a store purchase by his or herself + k_EMarketNotAllowedReason_RecentSelfRefund = (1 << 12), + + // The user has recently funded his or her wallet with a new payment method that cannot be verified + k_EMarketNotAllowedReason_NewPaymentMethodCannotBeVerified = (1 << 13), + + // Not only is the account not trusted, but they have no recent purchases at all + k_EMarketNotAllowedReason_NoRecentPurchases = (1 << 14), + + // User accepted a wallet gift that was recently purchased + k_EMarketNotAllowedReason_AcceptedWalletGift = (1 << 15), +}; + + +// +// describes XP / progress restrictions to apply for games with duration control / +// anti-indulgence enabled for minor Steam China users. +// +// WARNING: DO NOT RENUMBER +enum EDurationControlProgress +{ + k_EDurationControlProgress_Full = 0, // Full progress + k_EDurationControlProgress_Half = 1, // deprecated - XP or persistent rewards should be halved + k_EDurationControlProgress_None = 2, // deprecated - XP or persistent rewards should be stopped + + k_EDurationControl_ExitSoon_3h = 3, // allowed 3h time since 5h gap/break has elapsed, game should exit - steam will terminate the game soon + k_EDurationControl_ExitSoon_5h = 4, // allowed 5h time in calendar day has elapsed, game should exit - steam will terminate the game soon + k_EDurationControl_ExitSoon_Night = 5, // game running after day period, game should exit - steam will terminate the game soon +}; + + +// +// describes which notification timer has expired, for steam china duration control feature +// +// WARNING: DO NOT RENUMBER +enum EDurationControlNotification +{ + k_EDurationControlNotification_None = 0, // just informing you about progress, no notification to show + k_EDurationControlNotification_1Hour = 1, // "you've been playing for N hours" - k_ELaunchOptionType_Dialog = 1000, // show launch options dialog + k_EDurationControlNotification_3Hours = 2, // deprecated - "you've been playing for 3 hours; take a break" + k_EDurationControlNotification_HalfProgress = 3,// deprecated - "your XP / progress is half normal" + k_EDurationControlNotification_NoProgress = 4, // deprecated - "your XP / progress is zero" + + k_EDurationControlNotification_ExitSoon_3h = 5, // allowed 3h time since 5h gap/break has elapsed, game should exit - steam will terminate the game soon + k_EDurationControlNotification_ExitSoon_5h = 6, // allowed 5h time in calendar day has elapsed, game should exit - steam will terminate the game soon + k_EDurationControlNotification_ExitSoon_Night = 7,// game running after day period, game should exit - steam will terminate the game soon }; -//----------------------------------------------------------------------------- -// Purpose: true if this launch option is any of the vr launching types -//----------------------------------------------------------------------------- -static inline bool BIsVRLaunchOptionType( const ELaunchOptionType eType ) +// +// Specifies a game's online state in relation to duration control +// +enum EDurationControlOnlineState { - return eType == k_ELaunchOptionType_OpenVR - || eType == k_ELaunchOptionType_OpenVROverlay - || eType == k_ELaunchOptionType_OculusVR - || eType == k_ELaunchOptionType_OSVR; -} - - -//----------------------------------------------------------------------------- -// Purpose: code points for VR HMD vendors and models -// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN A DATABASE -//----------------------------------------------------------------------------- -enum EVRHMDType -{ - k_eEVRHMDType_None = -1, // unknown vendor and model - - k_eEVRHMDType_Unknown = 0, // unknown vendor and model - - k_eEVRHMDType_HTC_Dev = 1, // original HTC dev kits - k_eEVRHMDType_HTC_VivePre = 2, // htc vive pre - k_eEVRHMDType_HTC_Vive = 3, // htc vive consumer release - - k_eEVRHMDType_HTC_Unknown = 20, // unknown htc hmd - - k_eEVRHMDType_Oculus_DK1 = 21, // Oculus DK1 - k_eEVRHMDType_Oculus_DK2 = 22, // Oculus DK2 - k_eEVRHMDType_Oculus_Rift = 23, // Oculus rift - - k_eEVRHMDType_Oculus_Unknown = 40, // // Oculus unknown HMD + k_EDurationControlOnlineState_Invalid = 0, // nil value + k_EDurationControlOnlineState_Offline = 1, // currently in offline play - single-player, offline co-op, etc. + k_EDurationControlOnlineState_Online = 2, // currently in online play + k_EDurationControlOnlineState_OnlineHighPri = 3, // currently in online play and requests not to be interrupted }; -//----------------------------------------------------------------------------- -// Purpose: Steam Controller models -// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN A DATABASE -//----------------------------------------------------------------------------- -enum EControllerType -{ - k_eControllerType_None = -1, - k_eControllerType_Unknown = 0, - - // Steam Controllers - k_eControllerType_UnknownSteamController = 1, - k_eControllerType_SteamController = 2, - - // Other Controllers - k_eControllerType_UnknownNonSteamController = 30, - k_eControllerType_XBox360Controller = 31, - k_eControllerType_XBoxOneController = 32, - k_eControllerType_PS3Controller = 33, - k_eControllerType_PS4Controller = 34, - k_eControllerType_WiiController = 35, - k_eControllerType_AppleController = 36 -}; - -//----------------------------------------------------------------------------- -// Purpose: true if this is from an Oculus HMD -//----------------------------------------------------------------------------- -static inline bool BIsOculusHMD( EVRHMDType eType ) -{ - return eType == k_eEVRHMDType_Oculus_DK1 || eType == k_eEVRHMDType_Oculus_DK2 || eType == k_eEVRHMDType_Oculus_Rift || eType == k_eEVRHMDType_Oculus_Unknown; -} - - -//----------------------------------------------------------------------------- -// Purpose: true if this is from an Vive HMD -//----------------------------------------------------------------------------- -static inline bool BIsViveHMD( EVRHMDType eType ) -{ - return eType == k_eEVRHMDType_HTC_Dev || eType == k_eEVRHMDType_HTC_VivePre || eType == k_eEVRHMDType_HTC_Vive || eType == k_eEVRHMDType_HTC_Unknown; -} - - #pragma pack( push, 1 ) #define CSTEAMID_DEFINED @@ -588,7 +504,7 @@ public: CSteamID( uint32 unAccountID, unsigned int unAccountInstance, EUniverse eUniverse, EAccountType eAccountType ) { #if defined(_SERVER) && defined(Assert) - Assert( ! ( ( k_EAccountTypeIndividual == eAccountType ) && ( unAccountInstance > k_unSteamUserWebInstance ) ) ); // enforce that for individual accounts, instance is always 1 + Assert( ( k_EAccountTypeIndividual != eAccountType ) || ( unAccountInstance == k_unSteamUserDefaultInstance ) ); // enforce that for individual accounts, instance is always 1 #endif // _SERVER InstancedSet( unAccountID, unAccountInstance, eUniverse, eAccountType ); } @@ -630,8 +546,7 @@ public: } else { - // by default we pick the desktop instance - m_steamid.m_comp.m_unAccountInstance = k_unSteamUserDesktopInstance; + m_steamid.m_comp.m_unAccountInstance = k_unSteamUserDefaultInstance; } } @@ -685,37 +600,6 @@ public: m_steamid.m_comp.m_unAccountInstance = 0; } - -#if defined( INCLUDED_STEAM2_USERID_STRUCTS ) - //----------------------------------------------------------------------------- - // Purpose: Initializes a steam ID from a Steam2 ID structure - // Input: pTSteamGlobalUserID - Steam2 ID to convert - // eUniverse - universe this ID belongs to - //----------------------------------------------------------------------------- - void SetFromSteam2( TSteamGlobalUserID *pTSteamGlobalUserID, EUniverse eUniverse ) - { - m_steamid.m_comp.m_unAccountID = pTSteamGlobalUserID->m_SteamLocalUserID.Split.Low32bits * 2 + - pTSteamGlobalUserID->m_SteamLocalUserID.Split.High32bits; - m_steamid.m_comp.m_EUniverse = eUniverse; // set the universe - m_steamid.m_comp.m_EAccountType = k_EAccountTypeIndividual; // Steam 2 accounts always map to account type of individual - m_steamid.m_comp.m_unAccountInstance = k_unSteamUserDesktopInstance; // Steam2 only knew desktop instances - } - - //----------------------------------------------------------------------------- - // Purpose: Fills out a Steam2 ID structure - // Input: pTSteamGlobalUserID - Steam2 ID to write to - //----------------------------------------------------------------------------- - void ConvertToSteam2( TSteamGlobalUserID *pTSteamGlobalUserID ) const - { - // only individual accounts have any meaning in Steam 2, only they can be mapped - // Assert( m_steamid.m_comp.m_EAccountType == k_EAccountTypeIndividual ); - - pTSteamGlobalUserID->m_SteamInstanceID = 0; - pTSteamGlobalUserID->m_SteamLocalUserID.Split.High32bits = m_steamid.m_comp.m_unAccountID % 2; - pTSteamGlobalUserID->m_SteamLocalUserID.Split.Low32bits = m_steamid.m_comp.m_unAccountID / 2; - } -#endif // defined( INCLUDED_STEAM_COMMON_STEAMCOMMON_H ) - //----------------------------------------------------------------------------- // Purpose: Converts steam ID to its 64-bit representation // Output : 64-bit representation of a Steam ID @@ -867,8 +751,7 @@ public: // simple accessors void SetAccountID( uint32 unAccountID ) { m_steamid.m_comp.m_unAccountID = unAccountID; } void SetAccountInstance( uint32 unInstance ){ m_steamid.m_comp.m_unAccountInstance = unInstance; } - void ClearIndividualInstance() { if ( BIndividualAccount() ) m_steamid.m_comp.m_unAccountInstance = 0; } - bool HasNoIndividualInstance() const { return BIndividualAccount() && (m_steamid.m_comp.m_unAccountInstance==0); } + AccountID_t GetAccountID() const { return m_steamid.m_comp.m_unAccountID; } uint32 GetUnAccountInstance() const { return m_steamid.m_comp.m_unAccountInstance; } EAccountType GetEAccountType() const { return ( EAccountType ) m_steamid.m_comp.m_EAccountType; } @@ -888,7 +771,6 @@ public: // and is preferred when the caller knows it's safe to be strict. // Returns whether the string parsed correctly. bool SetFromStringStrict( const char *pchSteamID, EUniverse eDefaultUniverse ); - bool SetFromSteam2String( const char *pchSteam2ID, EUniverse eUniverse ); inline bool operator==( const CSteamID &val ) const { return m_steamid.m_unAll64Bits == val.m_steamid.m_unAll64Bits; } inline bool operator!=( const CSteamID &val ) const { return !operator==( val ); } @@ -938,7 +820,7 @@ inline bool CSteamID::IsValid() const if ( m_steamid.m_comp.m_EAccountType == k_EAccountTypeIndividual ) { - if ( m_steamid.m_comp.m_unAccountID == 0 || m_steamid.m_comp.m_unAccountInstance > k_unSteamUserWebInstance ) + if ( m_steamid.m_comp.m_unAccountID == 0 || m_steamid.m_comp.m_unAccountInstance != k_unSteamUserDefaultInstance ) return false; } @@ -957,6 +839,41 @@ inline bool CSteamID::IsValid() const return true; } +#if defined( INCLUDED_STEAM2_USERID_STRUCTS ) + +//----------------------------------------------------------------------------- +// Purpose: Initializes a steam ID from a Steam2 ID structure +// Input: pTSteamGlobalUserID - Steam2 ID to convert +// eUniverse - universe this ID belongs to +//----------------------------------------------------------------------------- +inline CSteamID SteamIDFromSteam2UserID( TSteamGlobalUserID *pTSteamGlobalUserID, EUniverse eUniverse ) +{ + uint32 unAccountID = pTSteamGlobalUserID->m_SteamLocalUserID.Split.Low32bits * 2 + + pTSteamGlobalUserID->m_SteamLocalUserID.Split.High32bits; + + return CSteamID( unAccountID, k_unSteamUserDefaultInstance, eUniverse, k_EAccountTypeIndividual ); +} + +bool SteamIDFromSteam2String( const char *pchSteam2ID, EUniverse eUniverse, CSteamID *pSteamIDOut ); + +//----------------------------------------------------------------------------- +// Purpose: Fills out a Steam2 ID structure +// Input: pTSteamGlobalUserID - Steam2 ID to write to +//----------------------------------------------------------------------------- +inline TSteamGlobalUserID SteamIDToSteam2UserID( CSteamID steamID ) +{ + TSteamGlobalUserID steamGlobalUserID; + + steamGlobalUserID.m_SteamInstanceID = 0; + steamGlobalUserID.m_SteamLocalUserID.Split.High32bits = steamID.GetAccountID() % 2; + steamGlobalUserID.m_SteamLocalUserID.Split.Low32bits = steamID.GetAccountID() / 2; + + return steamGlobalUserID; +} + + +#endif + // generic invalid CSteamID #define k_steamIDNil CSteamID() @@ -995,6 +912,14 @@ class CGameID { public: + enum EGameIDType + { + k_EGameIDTypeApp = 0, + k_EGameIDTypeGameMod = 1, + k_EGameIDTypeShortcut = 2, + k_EGameIDTypeP2P = 3, + }; + CGameID() { m_gameID.m_nType = k_EGameIDTypeApp; @@ -1025,12 +950,23 @@ public: m_gameID.m_nAppID = nAppID; } - CGameID( uint32 nAppID, uint32 nModID ) + // Not validating anything .. use IsValid() + explicit CGameID( uint32 nAppID, uint32 nModID, CGameID::EGameIDType nType ) { - m_ulGameID = 0; m_gameID.m_nAppID = nAppID; m_gameID.m_nModID = nModID; - m_gameID.m_nType = k_EGameIDTypeGameMod; + m_gameID.m_nType = nType; + } + + CGameID( const CGameID &that ) + { + m_ulGameID = that.m_ulGameID; + } + + CGameID& operator=( const CGameID & that ) + { + m_ulGameID = that.m_ulGameID; + return *this; } // Hidden functions used only by Steam @@ -1038,72 +974,6 @@ public: const char *Render() const; // render this Game ID to string static const char *Render( uint64 ulGameID ); // static method to render a uint64 representation of a Game ID to a string - // must include checksum_crc.h first to get this functionality -#if defined( CHECKSUM_CRC_H ) - CGameID( uint32 nAppID, const char *pchModPath ) - { - m_ulGameID = 0; - m_gameID.m_nAppID = nAppID; - m_gameID.m_nType = k_EGameIDTypeGameMod; - - char rgchModDir[MAX_PATH]; - V_FileBase( pchModPath, rgchModDir, sizeof( rgchModDir ) ); - CRC32_t crc32; - CRC32_Init( &crc32 ); - CRC32_ProcessBuffer( &crc32, rgchModDir, V_strlen( rgchModDir ) ); - CRC32_Final( &crc32 ); - - // set the high-bit on the mod-id - // reduces crc32 to 31bits, but lets us use the modID as a guaranteed unique - // replacement for appID's - m_gameID.m_nModID = crc32 | (0x80000000); - } - - CGameID( const char *pchExePath, const char *pchAppName ) - { - m_ulGameID = 0; - m_gameID.m_nAppID = k_uAppIdInvalid; - m_gameID.m_nType = k_EGameIDTypeShortcut; - - CRC32_t crc32; - CRC32_Init( &crc32 ); - if ( pchExePath ) - CRC32_ProcessBuffer( &crc32, pchExePath, V_strlen( pchExePath ) ); - if ( pchAppName ) - CRC32_ProcessBuffer( &crc32, pchAppName, V_strlen( pchAppName ) ); - CRC32_Final( &crc32 ); - - // set the high-bit on the mod-id - // reduces crc32 to 31bits, but lets us use the modID as a guaranteed unique - // replacement for appID's - m_gameID.m_nModID = crc32 | (0x80000000); - } - -#if defined( VSTFILEID_H ) - - CGameID( VstFileID vstFileID ) - { - m_ulGameID = 0; - m_gameID.m_nAppID = k_uAppIdInvalid; - m_gameID.m_nType = k_EGameIDTypeP2P; - - CRC32_t crc32; - CRC32_Init( &crc32 ); - const char *pchFileId = vstFileID.Render(); - CRC32_ProcessBuffer( &crc32, pchFileId, V_strlen( pchFileId ) ); - CRC32_Final( &crc32 ); - - // set the high-bit on the mod-id - // reduces crc32 to 31bits, but lets us use the modID as a guaranteed unique - // replacement for appID's - m_gameID.m_nModID = crc32 | (0x80000000); - } - -#endif /* VSTFILEID_H */ - -#endif /* CHECKSUM_CRC_H */ - - uint64 ToUint64() const { return m_ulGameID; @@ -1144,10 +1014,14 @@ public: return m_gameID.m_nModID; } - uint32 AppID() const +#if !defined(VALVE_SHORTCUT_DEBUG) + uint32 AppID( bool = false ) const { return m_gameID.m_nAppID; } +#else + uint32 AppID( bool bShortcutOK = false ) const; +#endif bool operator == ( const CGameID &rhs ) const { @@ -1173,18 +1047,17 @@ public: return m_gameID.m_nAppID != k_uAppIdInvalid; case k_EGameIDTypeGameMod: - return m_gameID.m_nAppID != k_uAppIdInvalid && m_gameID.m_nModID & 0x80000000; + return m_gameID.m_nAppID != k_uAppIdInvalid && (m_gameID.m_nModID & 0x80000000); case k_EGameIDTypeShortcut: - return (m_gameID.m_nModID & 0x80000000) != 0; + return m_gameID.m_nAppID == k_uAppIdInvalid + && (m_gameID.m_nModID & 0x80000000) + && m_gameID.m_nModID >= (5000 | 0x80000000); // k_unMaxExpectedLocalAppId - shortcuts are pushed beyond that range case k_EGameIDTypeP2P: - return m_gameID.m_nAppID == k_uAppIdInvalid && m_gameID.m_nModID & 0x80000000; + return m_gameID.m_nAppID == k_uAppIdInvalid && (m_gameID.m_nModID & 0x80000000); default: -#if defined(Assert) - Assert(false); -#endif return false; } @@ -1195,17 +1068,9 @@ public: m_ulGameID = 0; } - - -private: - - enum EGameIDType - { - k_EGameIDTypeApp = 0, - k_EGameIDTypeGameMod = 1, - k_EGameIDTypeShortcut = 2, - k_EGameIDTypeP2P = 3, - }; +// +// Internal stuff. Use the accessors above if possible +// struct GameID_t { @@ -1225,6 +1090,8 @@ private: uint64 m_ulGameID; GameID_t m_gameID; }; + + friend CGameID GameIDFromAppAndModPath( uint32 nAppID, const char *pchModPath ); }; #pragma pack( pop ) @@ -1232,24 +1099,90 @@ private: const int k_cchGameExtraInfoMax = 64; -//----------------------------------------------------------------------------- -// Constants used for query ports. -//----------------------------------------------------------------------------- - -#define QUERY_PORT_NOT_INITIALIZED 0xFFFF // We haven't asked the GS for this query port's actual value yet. -#define QUERY_PORT_ERROR 0xFFFE // We were unable to get the query port for this server. - - //----------------------------------------------------------------------------- // Purpose: Passed as argument to SteamAPI_UseBreakpadCrashHandler to enable optional callback // just before minidump file is captured after a crash has occurred. (Allows app to append additional comment data to the dump, etc.) //----------------------------------------------------------------------------- typedef void (*PFNPreMinidumpCallback)(void *context); -//----------------------------------------------------------------------------- -// Purpose: Used by ICrashHandler interfaces to reference particular installed crash handlers -//----------------------------------------------------------------------------- -typedef void *BREAKPAD_HANDLE; -#define BREAKPAD_INVALID_HANDLE (BREAKPAD_HANDLE)0 +enum EGameSearchErrorCode_t +{ + k_EGameSearchErrorCode_OK = 1, + k_EGameSearchErrorCode_Failed_Search_Already_In_Progress = 2, + k_EGameSearchErrorCode_Failed_No_Search_In_Progress = 3, + k_EGameSearchErrorCode_Failed_Not_Lobby_Leader = 4, // if not the lobby leader can not call SearchForGameWithLobby + k_EGameSearchErrorCode_Failed_No_Host_Available = 5, // no host is available that matches those search params + k_EGameSearchErrorCode_Failed_Search_Params_Invalid = 6, // search params are invalid + k_EGameSearchErrorCode_Failed_Offline = 7, // offline, could not communicate with server + k_EGameSearchErrorCode_Failed_NotAuthorized = 8, // either the user or the application does not have priveledges to do this + k_EGameSearchErrorCode_Failed_Unknown_Error = 9, // unknown error +}; + +enum EPlayerResult_t +{ + k_EPlayerResultFailedToConnect = 1, // failed to connect after confirming + k_EPlayerResultAbandoned = 2, // quit game without completing it + k_EPlayerResultKicked = 3, // kicked by other players/moderator/server rules + k_EPlayerResultIncomplete = 4, // player stayed to end but game did not conclude successfully ( nofault to player ) + k_EPlayerResultCompleted = 5, // player completed game +}; + + +enum ESteamIPv6ConnectivityProtocol +{ + k_ESteamIPv6ConnectivityProtocol_Invalid = 0, + k_ESteamIPv6ConnectivityProtocol_HTTP = 1, // because a proxy may make this different than other protocols + k_ESteamIPv6ConnectivityProtocol_UDP = 2, // test UDP connectivity. Uses a port that is commonly needed for other Steam stuff. If UDP works, TCP probably works. +}; + +// For the above transport protocol, what do we think the local machine's connectivity to the internet over ipv6 is like +enum ESteamIPv6ConnectivityState +{ + k_ESteamIPv6ConnectivityState_Unknown = 0, // We haven't run a test yet + k_ESteamIPv6ConnectivityState_Good = 1, // We have recently been able to make a request on ipv6 for the given protocol + k_ESteamIPv6ConnectivityState_Bad = 2, // We failed to make a request, either because this machine has no ipv6 address assigned, or it has no upstream connectivity +}; + + +// Define compile time assert macros to let us validate the structure sizes. +#define VALVE_COMPILE_TIME_ASSERT( pred ) typedef char compile_time_assert_type[(pred) ? 1 : -1]; + +#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) +// The 32-bit version of gcc has the alignment requirement for uint64 and double set to +// 4 meaning that even with #pragma pack(8) these types will only be four-byte aligned. +// The 64-bit version of gcc has the alignment requirement for these types set to +// 8 meaning that unless we use #pragma pack(4) our structures will get bigger. +// The 64-bit structure packing has to match the 32-bit structure packing for each platform. +#define VALVE_CALLBACK_PACK_SMALL +#else +#define VALVE_CALLBACK_PACK_LARGE +#endif + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error ??? +#endif + +typedef struct ValvePackingSentinel_t +{ + uint32 m_u32; + uint64 m_u64; + uint16 m_u16; + double m_d; +} ValvePackingSentinel_t; + +#pragma pack( pop ) + + +#if defined(VALVE_CALLBACK_PACK_SMALL) +VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 24 ) +#elif defined(VALVE_CALLBACK_PACK_LARGE) +VALVE_COMPILE_TIME_ASSERT( sizeof(ValvePackingSentinel_t) == 32 ) +#else +#error ??? +#endif #endif // STEAMCLIENTPUBLIC_H diff --git a/lib/windows/include/steam/steamencryptedappticket.h b/lib/windows/include/steam/steamencryptedappticket.h index 48c63b4..4419a0b 100644 --- a/lib/windows/include/steam/steamencryptedappticket.h +++ b/lib/windows/include/steam/steamencryptedappticket.h @@ -29,4 +29,12 @@ S_API bool SteamEncryptedAppTicket_BUserOwnsAppInTicket( uint8 *rgubTicketDecryp S_API bool SteamEncryptedAppTicket_BUserIsVacBanned( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); -S_API const uint8 *SteamEncryptedAppTicket_GetUserVariableData( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pcubUserData ); \ No newline at end of file +S_API bool SteamEncryptedAppTicket_BGetAppDefinedValue( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pValue ); + +S_API const uint8 *SteamEncryptedAppTicket_GetUserVariableData( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pcubUserData ); + +S_API bool SteamEncryptedAppTicket_BIsTicketSigned( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, const uint8 *pubRSAKey, uint32 cubRSAKey ); + +S_API bool SteamEncryptedAppTicket_BIsLicenseBorrowed( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); + +S_API bool SteamEncryptedAppTicket_BIsLicenseTemporary( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); diff --git a/lib/windows/include/steam/steamhttpenums.h b/lib/windows/include/steam/steamhttpenums.h index d95f195..3592116 100644 --- a/lib/windows/include/steam/steamhttpenums.h +++ b/lib/windows/include/steam/steamhttpenums.h @@ -62,6 +62,7 @@ enum EHTTPStatusCode k_EHTTPStatusCode305UseProxy = 305, //k_EHTTPStatusCode306Unused = 306, (used in old HTTP spec, now unused in 1.1) k_EHTTPStatusCode307TemporaryRedirect = 307, + k_EHTTPStatusCode308PermanentRedirect = 308, // Error codes k_EHTTPStatusCode400BadRequest = 400, @@ -84,6 +85,7 @@ enum EHTTPStatusCode k_EHTTPStatusCode417ExpectationFailed = 417, k_EHTTPStatusCode4xxUnknown = 418, // 418 is reserved, so we'll use it to mean unknown k_EHTTPStatusCode429TooManyRequests = 429, + k_EHTTPStatusCode444ConnectionClosed = 444, // nginx only? // Server error codes k_EHTTPStatusCode500InternalServerError = 500, @@ -95,4 +97,9 @@ enum EHTTPStatusCode k_EHTTPStatusCode5xxUnknown = 599, }; +inline bool BIsHTTPStatusSuccess( EHTTPStatusCode eStatus ) +{ + return eStatus >= 200 && eStatus <= 299; +} + #endif // STEAMHTTPENUMS_H \ No newline at end of file diff --git a/lib/windows/include/steam/steamnetworkingfakeip.h b/lib/windows/include/steam/steamnetworkingfakeip.h new file mode 100644 index 0000000..89ebd10 --- /dev/null +++ b/lib/windows/include/steam/steamnetworkingfakeip.h @@ -0,0 +1,135 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== + +#ifndef STEAMNETWORKINGFAKEIP_H +#define STEAMNETWORKINGFAKEIP_H +#pragma once + +#include "steamnetworkingtypes.h" +#include "steam_api_common.h" + +// It is HIGHLY recommended to limit messages sent via Fake UDP port to this +// value. The purpose of a Fake UDP port is to make porting ordinary ad-hoc UDP +// code easier. Although the real MTU might be higher than this, this particular +// conservative value is chosen so that fragmentation won't be occurring and +// hiding performance problems from you. +constexpr int k_cbSteamNetworkingSocketsFakeUDPPortRecommendedMTU = 1200; + +// Messages larger than this size are not allowed and cannot be sent +// via Fake UDP port. +constexpr int k_cbSteamNetworkingSocketsFakeUDPPortMaxMessageSize = 4096; + +//----------------------------------------------------------------------------- +/// ISteamNetworkingFakeUDPPort +/// +/// Acts like a UDP port, sending and receiving datagrams addressed using +/// FakeIP addresses. +/// +/// See: ISteamNetworkingSockets::CreateFakeUDPPort + +class ISteamNetworkingFakeUDPPort +{ +public: + /// Destroy the object and cleanup any internal connections. + /// Note that this function call is not threadsafe with respect + /// to any other method of this interface. (However, in general + /// all other operations are threadsafe with respect to each other.) + virtual void DestroyFakeUDPPort() = 0; + + /// Send a datagram to the specified FakeIP. + /// + /// See ISteamNetworkingSockets::SendMessageToConnection for the meaning of + /// nSendFlags and possible return codes. + /// + /// Notes: + /// - datagrams larger than the underlying MTU are supported, but + /// reliable messages (k_nSteamNetworkingSend_Reliable) are not supported. + /// - You will usually want to use k_nSteamNetworkingSend_NoNagle + /// - k_EResultBusy is returned if this is a "server" port and the global + /// allocation has not yet completed. + /// - k_EResultIPNotFound will be returned if the address is a local/ephemeral + /// address and no existing connection can be found. This can happen if + /// the remote host contacted us without having a global address, and we + /// assigned them a random local address, and then the session with + /// that host timed out. + /// - When initiating communications, the first messages may be sent + /// via backend signaling, or otherwise delayed, while a route is found. + /// Expect the ping time to fluctuate during this period, and it's possible + /// that messages will be delivered out of order (which is also possible with + /// ordinary UDP). + virtual EResult SendMessageToFakeIP( const SteamNetworkingIPAddr &remoteAddress, const void *pData, uint32 cbData, int nSendFlags ) = 0; + + /// Receive messages on the port. + /// + /// Returns the number of messages returned into your array, up to nMaxMessages. + /// + /// SteamNetworkingMessage_t::m_identity in the returned message(s) will always contain + /// a FakeIP. See ISteamNetworkingUtils::GetRealIdentityForFakeIP. + virtual int ReceiveMessages( SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0; + + /// Schedule the internal connection for a given peer to be cleaned up in a few seconds. + /// + /// Idle connections automatically time out, and so this is not strictly *necessary*, + /// but if you have reason to believe that you are done talking to a given peer for + /// a while, you can call this to speed up the timeout. If any remaining packets are + /// sent or received from the peer, the cleanup is canceled and the usual timeout + /// value is restored. Thus you will usually call this immediately after sending + /// or receiving application-layer "close connection" packets. + virtual void ScheduleCleanup( const SteamNetworkingIPAddr &remoteAddress ) = 0; +}; + +/// Callback struct used to notify when a connection has changed state +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error "Must define VALVE_CALLBACK_PACK_SMALL or VALVE_CALLBACK_PACK_LARGE" +#endif + +/// A struct used to describe a "fake IP" we have been assigned to +/// use as an identifier. This callback is posted when +/// ISteamNetworkingSoockets::BeginAsyncRequestFakeIP completes. +/// See also ISteamNetworkingSockets::GetFakeIP +struct SteamNetworkingFakeIPResult_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 3 }; + + /// Status/result of the allocation request. Possible failure values are: + /// - k_EResultBusy - you called GetFakeIP but the request has not completed. + /// - k_EResultInvalidParam - you called GetFakeIP with an invalid port index + /// - k_EResultLimitExceeded - You asked for too many ports, or made an + /// additional request after one had already succeeded + /// - k_EResultNoMatch - GetFakeIP was called, but no request has been made + /// + /// Note that, with the exception of k_EResultBusy (if you are polling), + /// it is highly recommended to treat all failures as fatal. + EResult m_eResult; + + /// Local identity of the ISteamNetworkingSockets object that made + /// this request and is assigned the IP. This is needed in the callback + /// in the case where there are multiple ISteamNetworkingSockets objects. + /// (E.g. one for the user, and another for the local gameserver). + SteamNetworkingIdentity m_identity; + + /// Fake IPv4 IP address that we have been assigned. NOTE: this + /// IP address is not exclusively ours! Steam tries to avoid sharing + /// IP addresses, but this may not always be possible. The IP address + /// may be currently in use by another host, but with different port(s). + /// The exact same IP:port address may have been used previously. + /// Steam tries to avoid reusing ports until they have not been in use for + /// some time, but this may not always be possible. + uint32 m_unIP; + + /// Port number(s) assigned to us. Only the first entries will contain + /// nonzero values. Entries corresponding to ports beyond what was + /// allocated for you will be zero. + /// + /// (NOTE: At the time of this writing, the maximum number of ports you may + /// request is 4.) + enum { k_nMaxReturnPorts = 8 }; + uint16 m_unPorts[k_nMaxReturnPorts]; +}; + +#pragma pack( pop ) + +#endif // _H diff --git a/lib/windows/include/steam/steamnetworkingtypes.h b/lib/windows/include/steam/steamnetworkingtypes.h new file mode 100644 index 0000000..e8c38df --- /dev/null +++ b/lib/windows/include/steam/steamnetworkingtypes.h @@ -0,0 +1,1870 @@ +//====== Copyright Valve Corporation, All rights reserved. ==================== +// +// Purpose: misc networking utilities +// +//============================================================================= + +#ifndef STEAMNETWORKINGTYPES +#define STEAMNETWORKINGTYPES +#pragma once + +#include <string.h> +#include <stdint.h> +#include "steamtypes.h" +#include "steamclientpublic.h" + +//----------------------------------------------------------------------------- +// SteamNetworkingSockets config. +#if !defined(STEAMNETWORKINGSOCKETS_STANDALONELIB) && !defined(STEAMNETWORKINGSOCKETS_STEAMAPI) + #define STEAMNETWORKINGSOCKETS_STEAMAPI +#endif +//----------------------------------------------------------------------------- + +#ifdef NN_NINTENDO_SDK // We always static link on Nintendo + #define STEAMNETWORKINGSOCKETS_STATIC_LINK +#endif +#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" +#elif defined( STEAMNETWORKINGSOCKETS_FOREXPORT ) + #if defined( _WIN32 ) || defined( __ORBIS__ ) || defined( __PROSPERO__ ) + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __declspec( dllexport ) + #else + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __attribute__((visibility("default"))) + #endif +#else + #ifdef _WIN32 + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" __declspec( dllimport ) + #else + #define STEAMNETWORKINGSOCKETS_INTERFACE extern "C" + #endif +#endif + +#if defined( VALVE_CALLBACK_PACK_SMALL ) +#pragma pack( push, 4 ) +#elif defined( VALVE_CALLBACK_PACK_LARGE ) +#pragma pack( push, 8 ) +#else +#error "Must define VALVE_CALLBACK_PACK_SMALL or VALVE_CALLBACK_PACK_LARGE" +#endif + +struct SteamDatagramRelayAuthTicket; +struct SteamDatagramHostedAddress; +struct SteamDatagramGameCoordinatorServerLogin; +struct SteamNetConnectionStatusChangedCallback_t; +struct SteamNetAuthenticationStatus_t; +struct SteamRelayNetworkStatus_t; +struct SteamNetworkingMessagesSessionRequest_t; +struct SteamNetworkingMessagesSessionFailed_t; +struct SteamNetworkingFakeIPResult_t; + +typedef void (*FnSteamNetConnectionStatusChanged)( SteamNetConnectionStatusChangedCallback_t * ); +typedef void (*FnSteamNetAuthenticationStatusChanged)( SteamNetAuthenticationStatus_t * ); +typedef void (*FnSteamRelayNetworkStatusChanged)(SteamRelayNetworkStatus_t *); +typedef void (*FnSteamNetworkingMessagesSessionRequest)(SteamNetworkingMessagesSessionRequest_t *); +typedef void (*FnSteamNetworkingMessagesSessionFailed)(SteamNetworkingMessagesSessionFailed_t *); +typedef void (*FnSteamNetworkingFakeIPResult)(SteamNetworkingFakeIPResult_t *); + +/// Handle used to identify a connection to a remote host. +typedef uint32 HSteamNetConnection; +const HSteamNetConnection k_HSteamNetConnection_Invalid = 0; + +/// Handle used to identify a "listen socket". Unlike traditional +/// Berkeley sockets, a listen socket and a connection are two +/// different abstractions. +typedef uint32 HSteamListenSocket; +const HSteamListenSocket k_HSteamListenSocket_Invalid = 0; + +/// Handle used to identify a poll group, used to query many +/// connections at once efficiently. +typedef uint32 HSteamNetPollGroup; +const HSteamNetPollGroup k_HSteamNetPollGroup_Invalid = 0; + +/// Max length of diagnostic error message +const int k_cchMaxSteamNetworkingErrMsg = 1024; + +/// Used to return English-language diagnostic error messages to caller. +/// (For debugging or spewing to a console, etc. Not intended for UI.) +typedef char SteamNetworkingErrMsg[ k_cchMaxSteamNetworkingErrMsg ]; + +/// Identifier used for a network location point of presence. (E.g. a Valve data center.) +/// Typically you won't need to directly manipulate these. +typedef uint32 SteamNetworkingPOPID; + +/// A local timestamp. You can subtract two timestamps to get the number of elapsed +/// microseconds. This is guaranteed to increase over time during the lifetime +/// of a process, but not globally across runs. You don't need to worry about +/// the value wrapping around. Note that the underlying clock might not actually have +/// microsecond resolution. +typedef int64 SteamNetworkingMicroseconds; + +/// Describe the status of a particular network resource +enum ESteamNetworkingAvailability +{ + // Negative values indicate a problem. + // + // In general, we will not automatically retry unless you take some action that + // depends on of requests this resource, such as querying the status, attempting + // to initiate a connection, receive a connection, etc. If you do not take any + // action at all, we do not automatically retry in the background. + k_ESteamNetworkingAvailability_CannotTry = -102, // A dependent resource is missing, so this service is unavailable. (E.g. we cannot talk to routers because Internet is down or we don't have the network config.) + k_ESteamNetworkingAvailability_Failed = -101, // We have tried for enough time that we would expect to have been successful by now. We have never been successful + k_ESteamNetworkingAvailability_Previously = -100, // We tried and were successful at one time, but now it looks like we have a problem + + k_ESteamNetworkingAvailability_Retrying = -10, // We previously failed and are currently retrying + + // Not a problem, but not ready either + k_ESteamNetworkingAvailability_NeverTried = 1, // We don't know because we haven't ever checked/tried + k_ESteamNetworkingAvailability_Waiting = 2, // We're waiting on a dependent resource to be acquired. (E.g. we cannot obtain a cert until we are logged into Steam. We cannot measure latency to relays until we have the network config.) + k_ESteamNetworkingAvailability_Attempting = 3, // We're actively trying now, but are not yet successful. + + k_ESteamNetworkingAvailability_Current = 100, // Resource is online/available + + + k_ESteamNetworkingAvailability_Unknown = 0, // Internal dummy/sentinel, or value is not applicable in this context + k_ESteamNetworkingAvailability__Force32bit = 0x7fffffff, +}; + +// +// Describing network hosts +// + +/// Different methods of describing the identity of a network host +enum ESteamNetworkingIdentityType +{ + // Dummy/empty/invalid. + // Please note that if we parse a string that we don't recognize + // but that appears reasonable, we will NOT use this type. Instead + // we'll use k_ESteamNetworkingIdentityType_UnknownType. + k_ESteamNetworkingIdentityType_Invalid = 0, + + // + // Basic platform-specific identifiers. + // + k_ESteamNetworkingIdentityType_SteamID = 16, // 64-bit CSteamID + k_ESteamNetworkingIdentityType_XboxPairwiseID = 17, // Publisher-specific user identity, as string + k_ESteamNetworkingIdentityType_SonyPSN = 18, // 64-bit ID + k_ESteamNetworkingIdentityType_GoogleStadia = 19, // 64-bit ID + //k_ESteamNetworkingIdentityType_NintendoNetworkServiceAccount, + //k_ESteamNetworkingIdentityType_EpicGameStore + //k_ESteamNetworkingIdentityType_WeGame + + // + // Special identifiers. + // + + // Use their IP address (and port) as their "identity". + // These types of identities are always unauthenticated. + // They are useful for porting plain sockets code, and other + // situations where you don't care about authentication. In this + // case, the local identity will be "localhost", + // and the remote address will be their network address. + // + // We use the same type for either IPv4 or IPv6, and + // the address is always store as IPv6. We use IPv4 + // mapped addresses to handle IPv4. + k_ESteamNetworkingIdentityType_IPAddress = 1, + + // Generic string/binary blobs. It's up to your app to interpret this. + // This library can tell you if the remote host presented a certificate + // signed by somebody you have chosen to trust, with this identity on it. + // It's up to you to ultimately decide what this identity means. + k_ESteamNetworkingIdentityType_GenericString = 2, + k_ESteamNetworkingIdentityType_GenericBytes = 3, + + // This identity type is used when we parse a string that looks like is a + // valid identity, just of a kind that we don't recognize. In this case, we + // can often still communicate with the peer! Allowing such identities + // for types we do not recognize useful is very useful for forward + // compatibility. + k_ESteamNetworkingIdentityType_UnknownType = 4, + + // Make sure this enum is stored in an int. + k_ESteamNetworkingIdentityType__Force32bit = 0x7fffffff, +}; + +/// "Fake IPs" are assigned to hosts, to make it easier to interface with +/// older code that assumed all hosts will have an IPv4 address +enum ESteamNetworkingFakeIPType +{ + k_ESteamNetworkingFakeIPType_Invalid, // Error, argument was not even an IP address, etc. + k_ESteamNetworkingFakeIPType_NotFake, // Argument was a valid IP, but was not from the reserved "fake" range + k_ESteamNetworkingFakeIPType_GlobalIPv4, // Globally unique (for a given app) IPv4 address. Address space managed by Steam + k_ESteamNetworkingFakeIPType_LocalIPv4, // Locally unique IPv4 address. Address space managed by the local process. For internal use only; should not be shared! + + k_ESteamNetworkingFakeIPType__Force32Bit = 0x7fffffff +}; + +#pragma pack(push,1) + +/// Store an IP and port. IPv6 is always used; IPv4 is represented using +/// "IPv4-mapped" addresses: IPv4 aa.bb.cc.dd => IPv6 ::ffff:aabb:ccdd +/// (RFC 4291 section 2.5.5.2.) +struct SteamNetworkingIPAddr +{ + void Clear(); // Set everything to zero. E.g. [::]:0 + bool IsIPv6AllZeros() const; // Return true if the IP is ::0. (Doesn't check port.) + void SetIPv6( const uint8 *ipv6, uint16 nPort ); // Set IPv6 address. IP is interpreted as bytes, so there are no endian issues. (Same as inaddr_in6.) The IP can be a mapped IPv4 address + void SetIPv4( uint32 nIP, uint16 nPort ); // Sets to IPv4 mapped address. IP and port are in host byte order. + bool IsIPv4() const; // Return true if IP is mapped IPv4 + uint32 GetIPv4() const; // Returns IP in host byte order (e.g. aa.bb.cc.dd as 0xaabbccdd). Returns 0 if IP is not mapped IPv4. + void SetIPv6LocalHost( uint16 nPort = 0); // Set to the IPv6 localhost address ::1, and the specified port. + bool IsLocalHost() const; // Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + + // Max length of the buffer needed to hold IP formatted using ToString, including '\0' + // ([0123:4567:89ab:cdef:0123:4567:89ab:cdef]:12345) + enum { k_cchMaxString = 48 }; + + /// Print to a string, with or without the port. Mapped IPv4 addresses are printed + /// as dotted decimal (12.34.56.78), otherwise this will print the canonical + /// form according to RFC5952. If you include the port, IPv6 will be surrounded by + /// brackets, e.g. [::1:2]:80. Your buffer should be at least k_cchMaxString bytes + /// to avoid truncation + /// + /// See also SteamNetworkingIdentityRender + inline void ToString( char *buf, size_t cbBuf, bool bWithPort ) const; + + /// Parse an IP address and optional port. If a port is not present, it is set to 0. + /// (This means that you cannot tell if a zero port was explicitly specified.) + inline bool ParseString( const char *pszStr ); + + /// RFC4038, section 4.2 + struct IPv4MappedAddress { + uint64 m_8zeros; + uint16 m_0000; + uint16 m_ffff; + uint8 m_ip[ 4 ]; // NOTE: As bytes, i.e. network byte order + }; + + union + { + uint8 m_ipv6[ 16 ]; + IPv4MappedAddress m_ipv4; + }; + uint16 m_port; // Host byte order + + /// See if two addresses are identical + bool operator==(const SteamNetworkingIPAddr &x ) const; + + /// Classify address as FakeIP. This function never returns + /// k_ESteamNetworkingFakeIPType_Invalid. + ESteamNetworkingFakeIPType GetFakeIPType() const; + + /// Return true if we are a FakeIP + bool IsFakeIP() const { return GetFakeIPType() > k_ESteamNetworkingFakeIPType_NotFake; } +}; + +/// An abstract way to represent the identity of a network host. All identities can +/// be represented as simple string. Furthermore, this string representation is actually +/// used on the wire in several places, even though it is less efficient, in order to +/// facilitate forward compatibility. (Old client code can handle an identity type that +/// it doesn't understand.) +struct SteamNetworkingIdentity +{ + /// Type of identity. + ESteamNetworkingIdentityType m_eType; + + // + // Get/Set in various formats. + // + + void Clear(); + bool IsInvalid() const; // Return true if we are the invalid type. Does not make any other validity checks (e.g. is SteamID actually valid) + + void SetSteamID( CSteamID steamID ); + CSteamID GetSteamID() const; // Return black CSteamID (!IsValid()) if identity is not a SteamID + void SetSteamID64( uint64 steamID ); // Takes SteamID as raw 64-bit number + uint64 GetSteamID64() const; // Returns 0 if identity is not SteamID + + bool SetXboxPairwiseID( const char *pszString ); // Returns false if invalid length + const char *GetXboxPairwiseID() const; // Returns nullptr if not Xbox ID + + void SetPSNID( uint64 id ); + uint64 GetPSNID() const; // Returns 0 if not PSN + + void SetStadiaID( uint64 id ); + uint64 GetStadiaID() const; // Returns 0 if not Stadia + + void SetIPAddr( const SteamNetworkingIPAddr &addr ); // Set to specified IP:port + const SteamNetworkingIPAddr *GetIPAddr() const; // returns null if we are not an IP address. + void SetIPv4Addr( uint32 nIPv4, uint16 nPort ); // Set to specified IPv4:port + uint32 GetIPv4() const; // returns 0 if we are not an IPv4 address. + + ESteamNetworkingFakeIPType GetFakeIPType() const; + bool IsFakeIP() const { return GetFakeIPType() > k_ESteamNetworkingFakeIPType_NotFake; } + + // "localhost" is equivalent for many purposes to "anonymous." Our remote + // will identify us by the network address we use. + void SetLocalHost(); // Set to localhost. (We always use IPv6 ::1 for this, not 127.0.0.1) + bool IsLocalHost() const; // Return true if this identity is localhost. + + bool SetGenericString( const char *pszString ); // Returns false if invalid length + const char *GetGenericString() const; // Returns nullptr if not generic string type + + bool SetGenericBytes( const void *data, size_t cbLen ); // Returns false if invalid size. + const uint8 *GetGenericBytes( int &cbLen ) const; // Returns null if not generic bytes type + + /// See if two identities are identical + bool operator==(const SteamNetworkingIdentity &x ) const; + + /// Print to a human-readable string. This is suitable for debug messages + /// or any other time you need to encode the identity as a string. It has a + /// URL-like format (type:<type-data>). Your buffer should be at least + /// k_cchMaxString bytes big to avoid truncation. + /// + /// See also SteamNetworkingIPAddrRender + void ToString( char *buf, size_t cbBuf ) const; + + /// Parse back a string that was generated using ToString. If we don't understand the + /// string, but it looks "reasonable" (it matches the pattern type:<type-data> and doesn't + /// have any funky characters, etc), then we will return true, and the type is set to + /// k_ESteamNetworkingIdentityType_UnknownType. false will only be returned if the string + /// looks invalid. + bool ParseString( const char *pszStr ); + + // Max sizes + enum { + k_cchMaxString = 128, // Max length of the buffer needed to hold any identity, formatted in string format by ToString + k_cchMaxGenericString = 32, // Max length of the string for generic string identities. Including terminating '\0' + k_cchMaxXboxPairwiseID = 33, // Including terminating '\0' + k_cbMaxGenericBytes = 32, + }; + + // + // Internal representation. Don't access this directly, use the accessors! + // + // Number of bytes that are relevant below. This MUST ALWAYS be + // set. (Use the accessors!) This is important to enable old code to work + // with new identity types. + int m_cbSize; + union { + uint64 m_steamID64; + uint64 m_PSNID; + uint64 m_stadiaID; + char m_szGenericString[ k_cchMaxGenericString ]; + char m_szXboxPairwiseID[ k_cchMaxXboxPairwiseID ]; + uint8 m_genericBytes[ k_cbMaxGenericBytes ]; + char m_szUnknownRawString[ k_cchMaxString ]; + SteamNetworkingIPAddr m_ip; + uint32 m_reserved[ 32 ]; // Pad structure to leave easy room for future expansion + }; +}; +#pragma pack(pop) + +// +// Connection status +// + +/// High level connection status +enum ESteamNetworkingConnectionState +{ + + /// Dummy value used to indicate an error condition in the API. + /// Specified connection doesn't exist or has already been closed. + k_ESteamNetworkingConnectionState_None = 0, + + /// We are trying to establish whether peers can talk to each other, + /// whether they WANT to talk to each other, perform basic auth, + /// and exchange crypt keys. + /// + /// - For connections on the "client" side (initiated locally): + /// We're in the process of trying to establish a connection. + /// Depending on the connection type, we might not know who they are. + /// Note that it is not possible to tell if we are waiting on the + /// network to complete handshake packets, or for the application layer + /// to accept the connection. + /// + /// - For connections on the "server" side (accepted through listen socket): + /// We have completed some basic handshake and the client has presented + /// some proof of identity. The connection is ready to be accepted + /// using AcceptConnection(). + /// + /// In either case, any unreliable packets sent now are almost certain + /// to be dropped. Attempts to receive packets are guaranteed to fail. + /// You may send messages if the send mode allows for them to be queued. + /// but if you close the connection before the connection is actually + /// established, any queued messages will be discarded immediately. + /// (We will not attempt to flush the queue and confirm delivery to the + /// remote host, which ordinarily happens when a connection is closed.) + k_ESteamNetworkingConnectionState_Connecting = 1, + + /// Some connection types use a back channel or trusted 3rd party + /// for earliest communication. If the server accepts the connection, + /// then these connections switch into the rendezvous state. During this + /// state, we still have not yet established an end-to-end route (through + /// the relay network), and so if you send any messages unreliable, they + /// are going to be discarded. + k_ESteamNetworkingConnectionState_FindingRoute = 2, + + /// We've received communications from our peer (and we know + /// who they are) and are all good. If you close the connection now, + /// we will make our best effort to flush out any reliable sent data that + /// has not been acknowledged by the peer. (But note that this happens + /// from within the application process, so unlike a TCP connection, you are + /// not totally handing it off to the operating system to deal with it.) + k_ESteamNetworkingConnectionState_Connected = 3, + + /// Connection has been closed by our peer, but not closed locally. + /// The connection still exists from an API perspective. You must close the + /// handle to free up resources. If there are any messages in the inbound queue, + /// you may retrieve them. Otherwise, nothing may be done with the connection + /// except to close it. + /// + /// This stats is similar to CLOSE_WAIT in the TCP state machine. + k_ESteamNetworkingConnectionState_ClosedByPeer = 4, + + /// A disruption in the connection has been detected locally. (E.g. timeout, + /// local internet connection disrupted, etc.) + /// + /// The connection still exists from an API perspective. You must close the + /// handle to free up resources. + /// + /// Attempts to send further messages will fail. Any remaining received messages + /// in the queue are available. + k_ESteamNetworkingConnectionState_ProblemDetectedLocally = 5, + +// +// The following values are used internally and will not be returned by any API. +// We document them here to provide a little insight into the state machine that is used +// under the hood. +// + + /// We've disconnected on our side, and from an API perspective the connection is closed. + /// No more data may be sent or received. All reliable data has been flushed, or else + /// we've given up and discarded it. We do not yet know for sure that the peer knows + /// the connection has been closed, however, so we're just hanging around so that if we do + /// get a packet from them, we can send them the appropriate packets so that they can + /// know why the connection was closed (and not have to rely on a timeout, which makes + /// it appear as if something is wrong). + k_ESteamNetworkingConnectionState_FinWait = -1, + + /// We've disconnected on our side, and from an API perspective the connection is closed. + /// No more data may be sent or received. From a network perspective, however, on the wire, + /// we have not yet given any indication to the peer that the connection is closed. + /// We are in the process of flushing out the last bit of reliable data. Once that is done, + /// we will inform the peer that the connection has been closed, and transition to the + /// FinWait state. + /// + /// Note that no indication is given to the remote host that we have closed the connection, + /// until the data has been flushed. If the remote host attempts to send us data, we will + /// do whatever is necessary to keep the connection alive until it can be closed properly. + /// But in fact the data will be discarded, since there is no way for the application to + /// read it back. Typically this is not a problem, as application protocols that utilize + /// the lingering functionality are designed for the remote host to wait for the response + /// before sending any more data. + k_ESteamNetworkingConnectionState_Linger = -2, + + /// Connection is completely inactive and ready to be destroyed + k_ESteamNetworkingConnectionState_Dead = -3, + + k_ESteamNetworkingConnectionState__Force32Bit = 0x7fffffff +}; + +/// Enumerate various causes of connection termination. These are designed to work similar +/// to HTTP error codes: the numeric range gives you a rough classification as to the source +/// of the problem. +enum ESteamNetConnectionEnd +{ + // Invalid/sentinel value + k_ESteamNetConnectionEnd_Invalid = 0, + + // + // Application codes. These are the values you will pass to + // ISteamNetworkingSockets::CloseConnection. You can use these codes if + // you want to plumb through application-specific reason codes. If you don't + // need this facility, feel free to always pass + // k_ESteamNetConnectionEnd_App_Generic. + // + // The distinction between "normal" and "exceptional" termination is + // one you may use if you find useful, but it's not necessary for you + // to do so. The only place where we distinguish between normal and + // exceptional is in connection analytics. If a significant + // proportion of connections terminates in an exceptional manner, + // this can trigger an alert. + // + + // 1xxx: Application ended the connection in a "usual" manner. + // E.g.: user intentionally disconnected from the server, + // gameplay ended normally, etc + k_ESteamNetConnectionEnd_App_Min = 1000, + k_ESteamNetConnectionEnd_App_Generic = k_ESteamNetConnectionEnd_App_Min, + // Use codes in this range for "normal" disconnection + k_ESteamNetConnectionEnd_App_Max = 1999, + + // 2xxx: Application ended the connection in some sort of exceptional + // or unusual manner that might indicate a bug or configuration + // issue. + // + k_ESteamNetConnectionEnd_AppException_Min = 2000, + k_ESteamNetConnectionEnd_AppException_Generic = k_ESteamNetConnectionEnd_AppException_Min, + // Use codes in this range for "unusual" disconnection + k_ESteamNetConnectionEnd_AppException_Max = 2999, + + // + // System codes. These will be returned by the system when + // the connection state is k_ESteamNetworkingConnectionState_ClosedByPeer + // or k_ESteamNetworkingConnectionState_ProblemDetectedLocally. It is + // illegal to pass a code in this range to ISteamNetworkingSockets::CloseConnection + // + + // 3xxx: Connection failed or ended because of problem with the + // local host or their connection to the Internet. + k_ESteamNetConnectionEnd_Local_Min = 3000, + + // You cannot do what you want to do because you're running in offline mode. + k_ESteamNetConnectionEnd_Local_OfflineMode = 3001, + + // We're having trouble contacting many (perhaps all) relays. + // Since it's unlikely that they all went offline at once, the best + // explanation is that we have a problem on our end. Note that we don't + // bother distinguishing between "many" and "all", because in practice, + // it takes time to detect a connection problem, and by the time + // the connection has timed out, we might not have been able to + // actively probe all of the relay clusters, even if we were able to + // contact them at one time. So this code just means that: + // + // * We don't have any recent successful communication with any relay. + // * We have evidence of recent failures to communicate with multiple relays. + k_ESteamNetConnectionEnd_Local_ManyRelayConnectivity = 3002, + + // A hosted server is having trouble talking to the relay + // that the client was using, so the problem is most likely + // on our end + k_ESteamNetConnectionEnd_Local_HostedServerPrimaryRelay = 3003, + + // We're not able to get the SDR network config. This is + // *almost* always a local issue, since the network config + // comes from the CDN, which is pretty darn reliable. + k_ESteamNetConnectionEnd_Local_NetworkConfig = 3004, + + // Steam rejected our request because we don't have rights + // to do this. + k_ESteamNetConnectionEnd_Local_Rights = 3005, + + // ICE P2P rendezvous failed because we were not able to + // determine our "public" address (e.g. reflexive address via STUN) + // + // If relay fallback is available (it always is on Steam), then + // this is only used internally and will not be returned as a high + // level failure. + k_ESteamNetConnectionEnd_Local_P2P_ICE_NoPublicAddresses = 3006, + + k_ESteamNetConnectionEnd_Local_Max = 3999, + + // 4xxx: Connection failed or ended, and it appears that the + // cause does NOT have to do with the local host or their + // connection to the Internet. It could be caused by the + // remote host, or it could be somewhere in between. + k_ESteamNetConnectionEnd_Remote_Min = 4000, + + // The connection was lost, and as far as we can tell our connection + // to relevant services (relays) has not been disrupted. This doesn't + // mean that the problem is "their fault", it just means that it doesn't + // appear that we are having network issues on our end. + k_ESteamNetConnectionEnd_Remote_Timeout = 4001, + + // Something was invalid with the cert or crypt handshake + // info you gave me, I don't understand or like your key types, + // etc. + k_ESteamNetConnectionEnd_Remote_BadCrypt = 4002, + + // You presented me with a cert that was I was able to parse + // and *technically* we could use encrypted communication. + // But there was a problem that prevents me from checking your identity + // or ensuring that somebody int he middle can't observe our communication. + // E.g.: - the CA key was missing (and I don't accept unsigned certs) + // - The CA key isn't one that I trust, + // - The cert doesn't was appropriately restricted by app, user, time, data center, etc. + // - The cert wasn't issued to you. + // - etc + k_ESteamNetConnectionEnd_Remote_BadCert = 4003, + + // These will never be returned + //k_ESteamNetConnectionEnd_Remote_NotLoggedIn_DEPRECATED = 4004, + //k_ESteamNetConnectionEnd_Remote_NotRunningApp_DEPRECATED = 4005, + + // Something wrong with the protocol version you are using. + // (Probably the code you are running is too old.) + k_ESteamNetConnectionEnd_Remote_BadProtocolVersion = 4006, + + // NAT punch failed failed because we never received any public + // addresses from the remote host. (But we did receive some + // signals form them.) + // + // If relay fallback is available (it always is on Steam), then + // this is only used internally and will not be returned as a high + // level failure. + k_ESteamNetConnectionEnd_Remote_P2P_ICE_NoPublicAddresses = 4007, + + k_ESteamNetConnectionEnd_Remote_Max = 4999, + + // 5xxx: Connection failed for some other reason. + k_ESteamNetConnectionEnd_Misc_Min = 5000, + + // A failure that isn't necessarily the result of a software bug, + // but that should happen rarely enough that it isn't worth specifically + // writing UI or making a localized message for. + // The debug string should contain further details. + k_ESteamNetConnectionEnd_Misc_Generic = 5001, + + // Generic failure that is most likely a software bug. + k_ESteamNetConnectionEnd_Misc_InternalError = 5002, + + // The connection to the remote host timed out, but we + // don't know if the problem is on our end, in the middle, + // or on their end. + k_ESteamNetConnectionEnd_Misc_Timeout = 5003, + + //k_ESteamNetConnectionEnd_Misc_RelayConnectivity_DEPRECATED = 5004, + + // There's some trouble talking to Steam. + k_ESteamNetConnectionEnd_Misc_SteamConnectivity = 5005, + + // A server in a dedicated hosting situation has no relay sessions + // active with which to talk back to a client. (It's the client's + // job to open and maintain those sessions.) + k_ESteamNetConnectionEnd_Misc_NoRelaySessionsToClient = 5006, + + // While trying to initiate a connection, we never received + // *any* communication from the peer. + //k_ESteamNetConnectionEnd_Misc_ServerNeverReplied = 5007, + + // P2P rendezvous failed in a way that we don't have more specific + // information + k_ESteamNetConnectionEnd_Misc_P2P_Rendezvous = 5008, + + // NAT punch failed, probably due to NAT/firewall configuration. + // + // If relay fallback is available (it always is on Steam), then + // this is only used internally and will not be returned as a high + // level failure. + k_ESteamNetConnectionEnd_Misc_P2P_NAT_Firewall = 5009, + + // Our peer replied that it has no record of the connection. + // This should not happen ordinarily, but can happen in a few + // exception cases: + // + // - This is an old connection, and the peer has already cleaned + // up and forgotten about it. (Perhaps it timed out and they + // closed it and were not able to communicate this to us.) + // - A bug or internal protocol error has caused us to try to + // talk to the peer about the connection before we received + // confirmation that the peer has accepted the connection. + // - The peer thinks that we have closed the connection for some + // reason (perhaps a bug), and believes that is it is + // acknowledging our closure. + k_ESteamNetConnectionEnd_Misc_PeerSentNoConnection = 5010, + + k_ESteamNetConnectionEnd_Misc_Max = 5999, + + k_ESteamNetConnectionEnd__Force32Bit = 0x7fffffff +}; + +/// Max length, in bytes (including null terminator) of the reason string +/// when a connection is closed. +const int k_cchSteamNetworkingMaxConnectionCloseReason = 128; + +/// Max length, in bytes (include null terminator) of debug description +/// of a connection. +const int k_cchSteamNetworkingMaxConnectionDescription = 128; + +/// Max length of the app's part of the description +const int k_cchSteamNetworkingMaxConnectionAppName = 32; + +const int k_nSteamNetworkConnectionInfoFlags_Unauthenticated = 1; // We don't have a certificate for the remote host. +const int k_nSteamNetworkConnectionInfoFlags_Unencrypted = 2; // Information is being sent out over a wire unencrypted (by this library) +const int k_nSteamNetworkConnectionInfoFlags_LoopbackBuffers = 4; // Internal loopback buffers. Won't be true for localhost. (You can check the address to determine that.) This implies k_nSteamNetworkConnectionInfoFlags_FastLAN +const int k_nSteamNetworkConnectionInfoFlags_Fast = 8; // The connection is "fast" and "reliable". Either internal/localhost (check the address to find out), or the peer is on the same LAN. (Probably. It's based on the address and the ping time, this is actually hard to determine unambiguously). +const int k_nSteamNetworkConnectionInfoFlags_Relayed = 16; // The connection is relayed somehow (SDR or TURN). +const int k_nSteamNetworkConnectionInfoFlags_DualWifi = 32; // We're taking advantage of dual-wifi multi-path + +/// Describe the state of a connection. +struct SteamNetConnectionInfo_t +{ + + /// Who is on the other end? Depending on the connection type and phase of the connection, we might not know + SteamNetworkingIdentity m_identityRemote; + + /// Arbitrary user data set by the local application code + int64 m_nUserData; + + /// Handle to listen socket this was connected on, or k_HSteamListenSocket_Invalid if we initiated the connection + HSteamListenSocket m_hListenSocket; + + /// Remote address. Might be all 0's if we don't know it, or if this is N/A. + /// (E.g. Basically everything except direct UDP connection.) + SteamNetworkingIPAddr m_addrRemote; + uint16 m__pad1; + + /// What data center is the remote host in? (0 if we don't know.) + SteamNetworkingPOPID m_idPOPRemote; + + /// What relay are we using to communicate with the remote host? + /// (0 if not applicable.) + SteamNetworkingPOPID m_idPOPRelay; + + /// High level state of the connection + ESteamNetworkingConnectionState m_eState; + + /// Basic cause of the connection termination or problem. + /// See ESteamNetConnectionEnd for the values used + int m_eEndReason; + + /// Human-readable, but non-localized explanation for connection + /// termination or problem. This is intended for debugging / + /// diagnostic purposes only, not to display to users. It might + /// have some details specific to the issue. + char m_szEndDebug[ k_cchSteamNetworkingMaxConnectionCloseReason ]; + + /// Debug description. This includes the internal connection ID, + /// connection type (and peer information), and any name + /// given to the connection by the app. This string is used in various + /// internal logging messages. + /// + /// Note that the connection ID *usually* matches the HSteamNetConnection + /// handle, but in certain cases with symmetric connections it might not. + char m_szConnectionDescription[ k_cchSteamNetworkingMaxConnectionDescription ]; + + /// Misc flags. Bitmask of k_nSteamNetworkConnectionInfoFlags_Xxxx + int m_nFlags; + + /// Internal stuff, room to change API easily + uint32 reserved[63]; +}; + +/// Quick connection state, pared down to something you could call +/// more frequently without it being too big of a perf hit. +struct SteamNetConnectionRealTimeStatus_t +{ + + /// High level state of the connection + ESteamNetworkingConnectionState m_eState; + + /// Current ping (ms) + int m_nPing; + + /// Connection quality measured locally, 0...1. (Percentage of packets delivered + /// end-to-end in order). + float m_flConnectionQualityLocal; + + /// Packet delivery success rate as observed from remote host + float m_flConnectionQualityRemote; + + /// Current data rates from recent history. + float m_flOutPacketsPerSec; + float m_flOutBytesPerSec; + float m_flInPacketsPerSec; + float m_flInBytesPerSec; + + /// Estimate rate that we believe that we can send data to our peer. + /// Note that this could be significantly higher than m_flOutBytesPerSec, + /// meaning the capacity of the channel is higher than you are sending data. + /// (That's OK!) + int m_nSendRateBytesPerSecond; + + /// Number of bytes pending to be sent. This is data that you have recently + /// requested to be sent but has not yet actually been put on the wire. The + /// reliable number ALSO includes data that was previously placed on the wire, + /// but has now been scheduled for re-transmission. Thus, it's possible to + /// observe m_cbPendingReliable increasing between two checks, even if no + /// calls were made to send reliable data between the checks. Data that is + /// awaiting the Nagle delay will appear in these numbers. + int m_cbPendingUnreliable; + int m_cbPendingReliable; + + /// Number of bytes of reliable data that has been placed the wire, but + /// for which we have not yet received an acknowledgment, and thus we may + /// have to re-transmit. + int m_cbSentUnackedReliable; + + /// If you queued a message right now, approximately how long would that message + /// wait in the queue before we actually started putting its data on the wire in + /// a packet? + /// + /// In general, data that is sent by the application is limited by the bandwidth + /// of the channel. If you send data faster than this, it must be queued and + /// put on the wire at a metered rate. Even sending a small amount of data (e.g. + /// a few MTU, say ~3k) will require some of the data to be delayed a bit. + /// + /// Ignoring multiple lanes, the estimated delay will be approximately equal to + /// + /// ( m_cbPendingUnreliable+m_cbPendingReliable ) / m_nSendRateBytesPerSecond + /// + /// plus or minus one MTU. It depends on how much time has elapsed since the last + /// packet was put on the wire. For example, the queue might have *just* been emptied, + /// and the last packet placed on the wire, and we are exactly up against the send + /// rate limit. In that case we might need to wait for one packet's worth of time to + /// elapse before we can send again. On the other extreme, the queue might have data + /// in it waiting for Nagle. (This will always be less than one packet, because as + /// soon as we have a complete packet we would send it.) In that case, we might be + /// ready to send data now, and this value will be 0. + /// + /// This value is only valid if multiple lanes are not used. If multiple lanes are + /// in use, then the queue time will be different for each lane, and you must use + /// the value in SteamNetConnectionRealTimeLaneStatus_t. + /// + /// Nagle delay is ignored for the purposes of this calculation. + SteamNetworkingMicroseconds m_usecQueueTime; + + // Internal stuff, room to change API easily + uint32 reserved[16]; +}; + +/// Quick status of a particular lane +struct SteamNetConnectionRealTimeLaneStatus_t +{ + // Counters for this particular lane. See the corresponding variables + // in SteamNetConnectionRealTimeStatus_t + int m_cbPendingUnreliable; + int m_cbPendingReliable; + int m_cbSentUnackedReliable; + int _reservePad1; // Reserved for future use + + /// Lane-specific queue time. This value takes into consideration lane priorities + /// and weights, and how much data is queued in each lane, and attempts to predict + /// how any data currently queued will be sent out. + SteamNetworkingMicroseconds m_usecQueueTime; + + // Internal stuff, room to change API easily + uint32 reserved[10]; +}; + +#pragma pack( pop ) + +// +// Network messages +// + +/// Max size of a single message that we can SEND. +/// Note: We might be wiling to receive larger messages, +/// and our peer might, too. +const int k_cbMaxSteamNetworkingSocketsMessageSizeSend = 512 * 1024; + +/// A message that has been received. +struct SteamNetworkingMessage_t +{ + + /// Message payload + void *m_pData; + + /// Size of the payload. + int m_cbSize; + + /// For messages received on connections: what connection did this come from? + /// For outgoing messages: what connection to send it to? + /// Not used when using the ISteamNetworkingMessages interface + HSteamNetConnection m_conn; + + /// For inbound messages: Who sent this to us? + /// For outbound messages on connections: not used. + /// For outbound messages on the ad-hoc ISteamNetworkingMessages interface: who should we send this to? + SteamNetworkingIdentity m_identityPeer; + + /// For messages received on connections, this is the user data + /// associated with the connection. + /// + /// This is *usually* the same as calling GetConnection() and then + /// fetching the user data associated with that connection, but for + /// the following subtle differences: + /// + /// - This user data will match the connection's user data at the time + /// is captured at the time the message is returned by the API. + /// If you subsequently change the userdata on the connection, + /// this won't be updated. + /// - This is an inline call, so it's *much* faster. + /// - You might have closed the connection, so fetching the user data + /// would not be possible. + /// + /// Not used when sending messages. + int64 m_nConnUserData; + + /// Local timestamp when the message was received + /// Not used for outbound messages. + SteamNetworkingMicroseconds m_usecTimeReceived; + + /// Message number assigned by the sender. This is not used for outbound + /// messages. Note that if multiple lanes are used, each lane has its own + /// message numbers, which are assigned sequentially, so messages from + /// different lanes will share the same numbers. + int64 m_nMessageNumber; + + /// Function used to free up m_pData. This mechanism exists so that + /// apps can create messages with buffers allocated from their own + /// heap, and pass them into the library. This function will + /// usually be something like: + /// + /// free( pMsg->m_pData ); + void (*m_pfnFreeData)( SteamNetworkingMessage_t *pMsg ); + + /// Function to used to decrement the internal reference count and, if + /// it's zero, release the message. You should not set this function pointer, + /// or need to access this directly! Use the Release() function instead! + void (*m_pfnRelease)( SteamNetworkingMessage_t *pMsg ); + + /// When using ISteamNetworkingMessages, the channel number the message was received on + /// (Not used for messages sent or received on "connections") + int m_nChannel; + + /// Bitmask of k_nSteamNetworkingSend_xxx flags. + /// For received messages, only the k_nSteamNetworkingSend_Reliable bit is valid. + /// For outbound messages, all bits are relevant + int m_nFlags; + + /// Arbitrary user data that you can use when sending messages using + /// ISteamNetworkingUtils::AllocateMessage and ISteamNetworkingSockets::SendMessage. + /// (The callback you set in m_pfnFreeData might use this field.) + /// + /// Not used for received messages. + int64 m_nUserData; + + /// For outbound messages, which lane to use? See ISteamNetworkingSockets::ConfigureConnectionLanes. + /// For inbound messages, what lane was the message received on? + uint16 m_idxLane; + uint16 _pad1__; + + /// You MUST call this when you're done with the object, + /// to free up memory, etc. + inline void Release(); + + // For code compatibility, some accessors +#ifndef API_GEN + inline uint32 GetSize() const { return m_cbSize; } + inline const void *GetData() const { return m_pData; } + inline int GetChannel() const { return m_nChannel; } + inline HSteamNetConnection GetConnection() const { return m_conn; } + inline int64 GetConnectionUserData() const { return m_nConnUserData; } + inline SteamNetworkingMicroseconds GetTimeReceived() const { return m_usecTimeReceived; } + inline int64 GetMessageNumber() const { return m_nMessageNumber; } +#endif +protected: + // Declare destructor protected. You should never need to declare a message + // object on the stack or create one yourself. + // - You will receive a pointer to a message object when you receive messages (e.g. ISteamNetworkingSockets::ReceiveMessagesOnConnection) + // - You can allocate a message object for efficient sending using ISteamNetworkingUtils::AllocateMessage + // - Call Release() to free the object + inline ~SteamNetworkingMessage_t() {} +}; + +// +// Flags used to set options for message sending +// + +// Send the message unreliably. Can be lost. Messages *can* be larger than a +// single MTU (UDP packet), but there is no retransmission, so if any piece +// of the message is lost, the entire message will be dropped. +// +// The sending API does have some knowledge of the underlying connection, so +// if there is no NAT-traversal accomplished or there is a recognized adjustment +// happening on the connection, the packet will be batched until the connection +// is open again. +// +// Migration note: This is not exactly the same as k_EP2PSendUnreliable! You +// probably want k_ESteamNetworkingSendType_UnreliableNoNagle +const int k_nSteamNetworkingSend_Unreliable = 0; + +// Disable Nagle's algorithm. +// By default, Nagle's algorithm is applied to all outbound messages. This means +// that the message will NOT be sent immediately, in case further messages are +// sent soon after you send this, which can be grouped together. Any time there +// is enough buffered data to fill a packet, the packets will be pushed out immediately, +// but partially-full packets not be sent until the Nagle timer expires. See +// ISteamNetworkingSockets::FlushMessagesOnConnection, ISteamNetworkingMessages::FlushMessagesToUser +// +// NOTE: Don't just send every message without Nagle because you want packets to get there +// quicker. Make sure you understand the problem that Nagle is solving before disabling it. +// If you are sending small messages, often many at the same time, then it is very likely that +// it will be more efficient to leave Nagle enabled. A typical proper use of this flag is +// when you are sending what you know will be the last message sent for a while (e.g. the last +// in the server simulation tick to a particular client), and you use this flag to flush all +// messages. +const int k_nSteamNetworkingSend_NoNagle = 1; + +// Send a message unreliably, bypassing Nagle's algorithm for this message and any messages +// currently pending on the Nagle timer. This is equivalent to using k_ESteamNetworkingSend_Unreliable +// and then immediately flushing the messages using ISteamNetworkingSockets::FlushMessagesOnConnection +// or ISteamNetworkingMessages::FlushMessagesToUser. (But using this flag is more efficient since you +// only make one API call.) +const int k_nSteamNetworkingSend_UnreliableNoNagle = k_nSteamNetworkingSend_Unreliable|k_nSteamNetworkingSend_NoNagle; + +// If the message cannot be sent very soon (because the connection is still doing some initial +// handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable +// messages. Using this flag on reliable messages is invalid. +const int k_nSteamNetworkingSend_NoDelay = 4; + +// Send an unreliable message, but if it cannot be sent relatively quickly, just drop it instead of queuing it. +// This is useful for messages that are not useful if they are excessively delayed, such as voice data. +// NOTE: The Nagle algorithm is not used, and if the message is not dropped, any messages waiting on the +// Nagle timer are immediately flushed. +// +// A message will be dropped under the following circumstances: +// - the connection is not fully connected. (E.g. the "Connecting" or "FindingRoute" states) +// - there is a sufficiently large number of messages queued up already such that the current message +// will not be placed on the wire in the next ~200ms or so. +// +// If a message is dropped for these reasons, k_EResultIgnored will be returned. +const int k_nSteamNetworkingSend_UnreliableNoDelay = k_nSteamNetworkingSend_Unreliable|k_nSteamNetworkingSend_NoDelay|k_nSteamNetworkingSend_NoNagle; + +// Reliable message send. Can send up to k_cbMaxSteamNetworkingSocketsMessageSizeSend bytes in a single message. +// Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for +// efficient sends of large chunks of data. +// +// The Nagle algorithm is used. See notes on k_ESteamNetworkingSendType_Unreliable for more details. +// See k_ESteamNetworkingSendType_ReliableNoNagle, ISteamNetworkingSockets::FlushMessagesOnConnection, +// ISteamNetworkingMessages::FlushMessagesToUser +// +// Migration note: This is NOT the same as k_EP2PSendReliable, it's more like k_EP2PSendReliableWithBuffering +const int k_nSteamNetworkingSend_Reliable = 8; + +// Send a message reliably, but bypass Nagle's algorithm. +// +// Migration note: This is equivalent to k_EP2PSendReliable +const int k_nSteamNetworkingSend_ReliableNoNagle = k_nSteamNetworkingSend_Reliable|k_nSteamNetworkingSend_NoNagle; + +// By default, message sending is queued, and the work of encryption and talking to +// the operating system sockets, etc is done on a service thread. This is usually a +// a performance win when messages are sent from the "main thread". However, if this +// flag is set, and data is ready to be sent immediately (either from this message +// or earlier queued data), then that work will be done in the current thread, before +// the current call returns. If data is not ready to be sent (due to rate limiting +// or Nagle), then this flag has no effect. +// +// This is an advanced flag used to control performance at a very low level. For +// most applications running on modern hardware with more than one CPU core, doing +// the work of sending on a service thread will yield the best performance. Only +// use this flag if you have a really good reason and understand what you are doing. +// Otherwise you will probably just make performance worse. +const int k_nSteamNetworkingSend_UseCurrentThread = 16; + +// When sending a message using ISteamNetworkingMessages, automatically re-establish +// a broken session, without returning k_EResultNoConnection. Without this flag, +// if you attempt to send a message, and the session was proactively closed by the +// peer, or an error occurred that disrupted communications, then you must close the +// session using ISteamNetworkingMessages::CloseSessionWithUser before attempting to +// send another message. (Or you can simply add this flag and retry.) In this way, +// the disruption cannot go unnoticed, and a more clear order of events can be +// ascertained. This is especially important when reliable messages are used, since +// if the connection is disrupted, some of those messages will not have been delivered, +// and it is in general not possible to know which. Although a +// SteamNetworkingMessagesSessionFailed_t callback will be posted when an error occurs +// to notify you that a failure has happened, callbacks are asynchronous, so it is not +// possible to tell exactly when it happened. And because the primary purpose of +// ISteamNetworkingMessages is to be like UDP, there is no notification when a peer closes +// the session. +// +// If you are not using any reliable messages (e.g. you are using ISteamNetworkingMessages +// exactly as a transport replacement for UDP-style datagrams only), you may not need to +// know when an underlying connection fails, and so you may not need this notification. +const int k_nSteamNetworkingSend_AutoRestartBrokenSession = 32; + +// +// Ping location / measurement +// + +/// Object that describes a "location" on the Internet with sufficient +/// detail that we can reasonably estimate an upper bound on the ping between +/// the two hosts, even if a direct route between the hosts is not possible, +/// and the connection must be routed through the Steam Datagram Relay network. +/// This does not contain any information that identifies the host. Indeed, +/// if two hosts are in the same building or otherwise have nearly identical +/// networking characteristics, then it's valid to use the same location +/// object for both of them. +/// +/// NOTE: This object should only be used in the same process! Do not serialize it, +/// send it over the wire, or persist it in a file or database! If you need +/// to do that, convert it to a string representation using the methods in +/// ISteamNetworkingUtils(). +struct SteamNetworkPingLocation_t +{ + uint8 m_data[ 512 ]; +}; + +/// Max possible length of a ping location, in string format. This is +/// an extremely conservative worst case value which leaves room for future +/// syntax enhancements. Most strings in practice are a lot shorter. +/// If you are storing many of these, you will very likely benefit from +/// using dynamic memory. +const int k_cchMaxSteamNetworkingPingLocationString = 1024; + +/// Special values that are returned by some functions that return a ping. +const int k_nSteamNetworkingPing_Failed = -1; +const int k_nSteamNetworkingPing_Unknown = -2; + +// +// Configuration values +// + +/// Configuration values can be applied to different types of objects. +enum ESteamNetworkingConfigScope +{ + + /// Get/set global option, or defaults. Even options that apply to more specific scopes + /// have global scope, and you may be able to just change the global defaults. If you + /// need different settings per connection (for example), then you will need to set those + /// options at the more specific scope. + k_ESteamNetworkingConfig_Global = 1, + + /// Some options are specific to a particular interface. Note that all connection + /// and listen socket settings can also be set at the interface level, and they will + /// apply to objects created through those interfaces. + k_ESteamNetworkingConfig_SocketsInterface = 2, + + /// Options for a listen socket. Listen socket options can be set at the interface layer, + /// if you have multiple listen sockets and they all use the same options. + /// You can also set connection options on a listen socket, and they set the defaults + /// for all connections accepted through this listen socket. (They will be used if you don't + /// set a connection option.) + k_ESteamNetworkingConfig_ListenSocket = 3, + + /// Options for a specific connection. + k_ESteamNetworkingConfig_Connection = 4, + + k_ESteamNetworkingConfigScope__Force32Bit = 0x7fffffff +}; + +// Different configuration values have different data types +enum ESteamNetworkingConfigDataType +{ + k_ESteamNetworkingConfig_Int32 = 1, + k_ESteamNetworkingConfig_Int64 = 2, + k_ESteamNetworkingConfig_Float = 3, + k_ESteamNetworkingConfig_String = 4, + k_ESteamNetworkingConfig_Ptr = 5, + + k_ESteamNetworkingConfigDataType__Force32Bit = 0x7fffffff +}; + +/// Configuration options +enum ESteamNetworkingConfigValue +{ + k_ESteamNetworkingConfig_Invalid = 0, + +// +// Connection options +// + + /// [connection int32] Timeout value (in ms) to use when first connecting + k_ESteamNetworkingConfig_TimeoutInitial = 24, + + /// [connection int32] Timeout value (in ms) to use after connection is established + k_ESteamNetworkingConfig_TimeoutConnected = 25, + + /// [connection int32] Upper limit of buffered pending bytes to be sent, + /// if this is reached SendMessage will return k_EResultLimitExceeded + /// Default is 512k (524288 bytes) + k_ESteamNetworkingConfig_SendBufferSize = 9, + + /// [connection int32] Upper limit on total size (in bytes) of received messages + /// that will be buffered waiting to be processed by the application. If this limit + /// is exceeded, packets will be dropped. This is to protect us from a malicious + /// peer flooding us with messages faster than we can process them. + /// + /// This must be bigger than k_ESteamNetworkingConfig_RecvMaxMessageSize + k_ESteamNetworkingConfig_RecvBufferSize = 47, + + /// [connection int32] Upper limit on the number of received messages that will + /// that will be buffered waiting to be processed by the application. If this limit + /// is exceeded, packets will be dropped. This is to protect us from a malicious + /// peer flooding us with messages faster than we can pull them off the wire. + k_ESteamNetworkingConfig_RecvBufferMessages = 48, + + /// [connection int32] Maximum message size that we are willing to receive. + /// if a client attempts to send us a message larger than this, the connection + /// will be immediately closed. + /// + /// Default is 512k (524288 bytes). Note that the peer needs to be able to + /// send a message this big. (See k_cbMaxSteamNetworkingSocketsMessageSizeSend.) + k_ESteamNetworkingConfig_RecvMaxMessageSize = 49, + + /// [connection int32] Max number of message segments that can be received + /// in a single UDP packet. While decoding a packet, if the number of segments + /// exceeds this, we will abort further packet processing. + /// + /// The default is effectively unlimited. If you know that you very rarely + /// send small packets, you can protect yourself from malicious senders by + /// lowering this number. + /// + /// In particular, if you are NOT using the reliability layer and are only using + /// SteamNetworkingSockets for datagram transport, setting this to a very low + /// number may be beneficial. (We recommend a value of 2.) Make sure your sender + /// disables Nagle! + k_ESteamNetworkingConfig_RecvMaxSegmentsPerPacket = 50, + + /// [connection int64] Get/set userdata as a configuration option. + /// The default value is -1. You may want to set the user data as + /// a config value, instead of using ISteamNetworkingSockets::SetConnectionUserData + /// in two specific instances: + /// + /// - You wish to set the userdata atomically when creating + /// an outbound connection, so that the userdata is filled in properly + /// for any callbacks that happen. However, note that this trick + /// only works for connections initiated locally! For incoming + /// connections, multiple state transitions may happen and + /// callbacks be queued, before you are able to service the first + /// callback! Be careful! + /// + /// - You can set the default userdata for all newly created connections + /// by setting this value at a higher level (e.g. on the listen + /// socket or at the global level.) Then this default + /// value will be inherited when the connection is created. + /// This is useful in case -1 is a valid userdata value, and you + /// wish to use something else as the default value so you can + /// tell if it has been set or not. + /// + /// HOWEVER: once a connection is created, the effective value is + /// then bound to the connection. Unlike other connection options, + /// if you change it again at a higher level, the new value will not + /// be inherited by connections. + /// + /// Using the userdata field in callback structs is not advised because + /// of tricky race conditions. Instead, you might try one of these methods: + /// + /// - Use a separate map with the HSteamNetConnection as the key. + /// - Fetch the userdata from the connection in your callback + /// using ISteamNetworkingSockets::GetConnectionUserData, to + // ensure you have the current value. + k_ESteamNetworkingConfig_ConnectionUserData = 40, + + /// [connection int32] Minimum/maximum send rate clamp, in bytes/sec. + /// At the time of this writing these two options should always be set to + /// the same value, to manually configure a specific send rate. The default + /// value is 256K. Eventually we hope to have the library estimate the bandwidth + /// of the channel and set the send rate to that estimated bandwidth, and these + /// values will only set limits on that send rate. + k_ESteamNetworkingConfig_SendRateMin = 10, + k_ESteamNetworkingConfig_SendRateMax = 11, + + /// [connection int32] Nagle time, in microseconds. When SendMessage is called, if + /// the outgoing message is less than the size of the MTU, it will be + /// queued for a delay equal to the Nagle timer value. This is to ensure + /// that if the application sends several small messages rapidly, they are + /// coalesced into a single packet. + /// See historical RFC 896. Value is in microseconds. + /// Default is 5000us (5ms). + k_ESteamNetworkingConfig_NagleTime = 12, + + /// [connection int32] Don't automatically fail IP connections that don't have + /// strong auth. On clients, this means we will attempt the connection even if + /// we don't know our identity or can't get a cert. On the server, it means that + /// we won't automatically reject a connection due to a failure to authenticate. + /// (You can examine the incoming connection and decide whether to accept it.) + /// + /// This is a dev configuration value, and you should not let users modify it in + /// production. + k_ESteamNetworkingConfig_IP_AllowWithoutAuth = 23, + + /// [connection int32] Do not send UDP packets with a payload of + /// larger than N bytes. If you set this, k_ESteamNetworkingConfig_MTU_DataSize + /// is automatically adjusted + k_ESteamNetworkingConfig_MTU_PacketSize = 32, + + /// [connection int32] (read only) Maximum message size you can send that + /// will not fragment, based on k_ESteamNetworkingConfig_MTU_PacketSize + k_ESteamNetworkingConfig_MTU_DataSize = 33, + + /// [connection int32] Allow unencrypted (and unauthenticated) communication. + /// 0: Not allowed (the default) + /// 1: Allowed, but prefer encrypted + /// 2: Allowed, and preferred + /// 3: Required. (Fail the connection if the peer requires encryption.) + /// + /// This is a dev configuration value, since its purpose is to disable encryption. + /// You should not let users modify it in production. (But note that it requires + /// the peer to also modify their value in order for encryption to be disabled.) + k_ESteamNetworkingConfig_Unencrypted = 34, + + /// [connection int32] Set this to 1 on outbound connections and listen sockets, + /// to enable "symmetric connect mode", which is useful in the following + /// common peer-to-peer use case: + /// + /// - The two peers are "equal" to each other. (Neither is clearly the "client" + /// or "server".) + /// - Either peer may initiate the connection, and indeed they may do this + /// at the same time + /// - The peers only desire a single connection to each other, and if both + /// peers initiate connections simultaneously, a protocol is needed for them + /// to resolve the conflict, so that we end up with a single connection. + /// + /// This use case is both common, and involves subtle race conditions and tricky + /// pitfalls, which is why the API has support for dealing with it. + /// + /// If an incoming connection arrives on a listen socket or via custom signaling, + /// and the application has not attempted to make a matching outbound connection + /// in symmetric mode, then the incoming connection can be accepted as usual. + /// A "matching" connection means that the relevant endpoint information matches. + /// (At the time this comment is being written, this is only supported for P2P + /// connections, which means that the peer identities must match, and the virtual + /// port must match. At a later time, symmetric mode may be supported for other + /// connection types.) + /// + /// If connections are initiated by both peers simultaneously, race conditions + /// can arise, but fortunately, most of them are handled internally and do not + /// require any special awareness from the application. However, there + /// is one important case that application code must be aware of: + /// If application code attempts an outbound connection using a ConnectXxx + /// function in symmetric mode, and a matching incoming connection is already + /// waiting on a listen socket, then instead of forming a new connection, + /// the ConnectXxx call will accept the existing incoming connection, and return + /// a connection handle to this accepted connection. + /// IMPORTANT: in this case, a SteamNetConnectionStatusChangedCallback_t + /// has probably *already* been posted to the queue for the incoming connection! + /// (Once callbacks are posted to the queue, they are not modified.) It doesn't + /// matter if the callback has not been consumed by the app. Thus, application + /// code that makes use of symmetric connections must be aware that, when processing a + /// SteamNetConnectionStatusChangedCallback_t for an incoming connection, the + /// m_hConn may refer to a new connection that the app has has not + /// seen before (the usual case), but it may also refer to a connection that + /// has already been accepted implicitly through a call to Connect()! In this + /// case, AcceptConnection() will return k_EResultDuplicateRequest. + /// + /// Only one symmetric connection to a given peer (on a given virtual port) + /// may exist at any given time. If client code attempts to create a connection, + /// and a (live) connection already exists on the local host, then either the + /// existing connection will be accepted as described above, or the attempt + /// to create a new connection will fail. Furthermore, linger mode functionality + /// is not supported on symmetric connections. + /// + /// A more complicated race condition can arise if both peers initiate a connection + /// at roughly the same time. In this situation, each peer will receive an incoming + /// connection from the other peer, when the application code has already initiated + /// an outgoing connection to that peer. The peers must resolve this conflict and + /// decide who is going to act as the "server" and who will act as the "client". + /// Typically the application does not need to be aware of this case as it is handled + /// internally. On both sides, the will observe their outbound connection being + /// "accepted", although one of them one have been converted internally to act + /// as the "server". + /// + /// In general, symmetric mode should be all-or-nothing: do not mix symmetric + /// connections with a non-symmetric connection that it might possible "match" + /// with. If you use symmetric mode on any connections, then both peers should + /// use it on all connections, and the corresponding listen socket, if any. The + /// behaviour when symmetric and ordinary connections are mixed is not defined by + /// this API, and you should not rely on it. (This advice only applies when connections + /// might possibly "match". For example, it's OK to use all symmetric mode + /// connections on one virtual port, and all ordinary, non-symmetric connections + /// on a different virtual port, as there is no potential for ambiguity.) + /// + /// When using the feature, you should set it in the following situations on + /// applicable objects: + /// + /// - When creating an outbound connection using ConnectXxx function + /// - When creating a listen socket. (Note that this will automatically cause + /// any accepted connections to inherit the flag.) + /// - When using custom signaling, before accepting an incoming connection. + /// + /// Setting the flag on listen socket and accepted connections will enable the + /// API to automatically deal with duplicate incoming connections, even if the + /// local host has not made any outbound requests. (In general, such duplicate + /// requests from a peer are ignored internally and will not be visible to the + /// application code. The previous connection must be closed or resolved first.) + k_ESteamNetworkingConfig_SymmetricConnect = 37, + + /// [connection int32] For connection types that use "virtual ports", this can be used + /// to assign a local virtual port. For incoming connections, this will always be the + /// virtual port of the listen socket (or the port requested by the remote host if custom + /// signaling is used and the connection is accepted), and cannot be changed. For + /// connections initiated locally, the local virtual port will default to the same as the + /// requested remote virtual port, if you do not specify a different option when creating + /// the connection. The local port is only relevant for symmetric connections, when + /// determining if two connections "match." In this case, if you need the local and remote + /// port to differ, you can set this value. + /// + /// You can also read back this value on listen sockets. + /// + /// This value should not be read or written in any other context. + k_ESteamNetworkingConfig_LocalVirtualPort = 38, + + /// [connection int32] Enable Dual wifi band support for this connection + /// 0 = no, 1 = yes, 2 = simulate it for debugging, even if dual wifi not available + k_ESteamNetworkingConfig_DualWifi_Enable = 39, + + /// [connection int32] True to enable diagnostics reporting through + /// generic platform UI. (Only available on Steam.) + k_ESteamNetworkingConfig_EnableDiagnosticsUI = 46, + +// +// Simulating network conditions +// +// These are global (not per-connection) because they apply at +// a relatively low UDP layer. +// + + /// [global float, 0--100] Randomly discard N pct of packets instead of sending/recv + /// This is a global option only, since it is applied at a low level + /// where we don't have much context + k_ESteamNetworkingConfig_FakePacketLoss_Send = 2, + k_ESteamNetworkingConfig_FakePacketLoss_Recv = 3, + + /// [global int32]. Delay all outbound/inbound packets by N ms + k_ESteamNetworkingConfig_FakePacketLag_Send = 4, + k_ESteamNetworkingConfig_FakePacketLag_Recv = 5, + + /// [global float] 0-100 Percentage of packets we will add additional delay + /// to (causing them to be reordered) + k_ESteamNetworkingConfig_FakePacketReorder_Send = 6, + k_ESteamNetworkingConfig_FakePacketReorder_Recv = 7, + + /// [global int32] Extra delay, in ms, to apply to reordered packets. + k_ESteamNetworkingConfig_FakePacketReorder_Time = 8, + + /// [global float 0--100] Globally duplicate some percentage of packets we send + k_ESteamNetworkingConfig_FakePacketDup_Send = 26, + k_ESteamNetworkingConfig_FakePacketDup_Recv = 27, + + /// [global int32] Amount of delay, in ms, to delay duplicated packets. + /// (We chose a random delay between 0 and this value) + k_ESteamNetworkingConfig_FakePacketDup_TimeMax = 28, + + /// [global int32] Trace every UDP packet, similar to Wireshark or tcpdump. + /// Value is max number of bytes to dump. -1 disables tracing. + // 0 only traces the info but no actual data bytes + k_ESteamNetworkingConfig_PacketTraceMaxBytes = 41, + + + // [global int32] Global UDP token bucket rate limits. + // "Rate" refers to the steady state rate. (Bytes/sec, the + // rate that tokens are put into the bucket.) "Burst" + // refers to the max amount that could be sent in a single + // burst. (In bytes, the max capacity of the bucket.) + // Rate=0 disables the limiter entirely, which is the default. + // Burst=0 disables burst. (This is not realistic. A + // burst of at least 4K is recommended; the default is higher.) + k_ESteamNetworkingConfig_FakeRateLimit_Send_Rate = 42, + k_ESteamNetworkingConfig_FakeRateLimit_Send_Burst = 43, + k_ESteamNetworkingConfig_FakeRateLimit_Recv_Rate = 44, + k_ESteamNetworkingConfig_FakeRateLimit_Recv_Burst = 45, + + // Timeout used for out-of-order correction. This is used when we see a small + // gap in the sequence number on a packet flow. For example let's say we are + // processing packet 105 when the most recent one was 103. 104 might have dropped, + // but there is also a chance that packets are simply being reordered. It is very + // common on certain types of connections for packet 104 to arrive very soon after 105, + // especially if 104 was large and 104 was small. In this case, when we see packet 105 + // we will shunt it aside and pend it, in the hopes of seeing 104 soon after. If 104 + // arrives before the a timeout occurs, then we can deliver the packets in order to the + // remainder of packet processing, and we will record this as a "correctable" out-of-order + // situation. If the timer expires, then we will process packet 105, and assume for now + // that 104 has dropped. (If 104 later arrives, we will process it, but that will be + // accounted for as uncorrected.) + // + // The default value is 1000 microseconds. Note that the Windows scheduler does not + // have microsecond precision. + // + // Set the value to 0 to disable out of order correction at the packet layer. + // In many cases we are still effectively able to correct the situation because + // reassembly of message fragments is tolerant of fragments packets arriving out of + // order. Also, when messages are decoded and inserted into the queue for the app + // to receive them, we will correct out of order messages that have not been + // dequeued by the app yet. However, when out-of-order packets are corrected + // at the packet layer, they will not reduce the connection quality measure. + // (E.g. SteamNetConnectionRealTimeStatus_t::m_flConnectionQualityLocal) + k_ESteamNetworkingConfig_OutOfOrderCorrectionWindowMicroseconds = 51, + +// +// Callbacks +// + + // On Steam, you may use the default Steam callback dispatch mechanism. If you prefer + // to not use this dispatch mechanism (or you are not running with Steam), or you want + // to associate specific functions with specific listen sockets or connections, you can + // register them as configuration values. + // + // Note also that ISteamNetworkingUtils has some helpers to set these globally. + + /// [connection FnSteamNetConnectionStatusChanged] Callback that will be invoked + /// when the state of a connection changes. + /// + /// IMPORTANT: callbacks are dispatched to the handler that is in effect at the time + /// the event occurs, which might be in another thread. For example, immediately after + /// creating a listen socket, you may receive an incoming connection. And then immediately + /// after this, the remote host may close the connection. All of this could happen + /// before the function to create the listen socket has returned. For this reason, + /// callbacks usually must be in effect at the time of object creation. This means + /// you should set them when you are creating the listen socket or connection, or have + /// them in effect so they will be inherited at the time of object creation. + /// + /// For example: + /// + /// exterm void MyStatusChangedFunc( SteamNetConnectionStatusChangedCallback_t *info ); + /// SteamNetworkingConfigValue_t opt; opt.SetPtr( k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, MyStatusChangedFunc ); + /// SteamNetworkingIPAddr localAddress; localAddress.Clear(); + /// HSteamListenSocket hListenSock = SteamNetworkingSockets()->CreateListenSocketIP( localAddress, 1, &opt ); + /// + /// When accepting an incoming connection, there is no atomic way to switch the + /// callback. However, if the connection is DOA, AcceptConnection() will fail, and + /// you can fetch the state of the connection at that time. + /// + /// If all connections and listen sockets can use the same callback, the simplest + /// method is to set it globally before you create any listen sockets or connections. + k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged = 201, + + /// [global FnSteamNetAuthenticationStatusChanged] Callback that will be invoked + /// when our auth state changes. If you use this, install the callback before creating + /// any connections or listen sockets, and don't change it. + /// See: ISteamNetworkingUtils::SetGlobalCallback_SteamNetAuthenticationStatusChanged + k_ESteamNetworkingConfig_Callback_AuthStatusChanged = 202, + + /// [global FnSteamRelayNetworkStatusChanged] Callback that will be invoked + /// when our auth state changes. If you use this, install the callback before creating + /// any connections or listen sockets, and don't change it. + /// See: ISteamNetworkingUtils::SetGlobalCallback_SteamRelayNetworkStatusChanged + k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged = 203, + + /// [global FnSteamNetworkingMessagesSessionRequest] Callback that will be invoked + /// when a peer wants to initiate a SteamNetworkingMessagesSessionRequest. + /// See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionRequest + k_ESteamNetworkingConfig_Callback_MessagesSessionRequest = 204, + + /// [global FnSteamNetworkingMessagesSessionFailed] Callback that will be invoked + /// when a session you have initiated, or accepted either fails to connect, or loses + /// connection in some unexpected way. + /// See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionFailed + k_ESteamNetworkingConfig_Callback_MessagesSessionFailed = 205, + + /// [global FnSteamNetworkingSocketsCreateConnectionSignaling] Callback that will + /// be invoked when we need to create a signaling object for a connection + /// initiated locally. See: ISteamNetworkingSockets::ConnectP2P, + /// ISteamNetworkingMessages. + k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling = 206, + + /// [global FnSteamNetworkingFakeIPResult] Callback that's invoked when + /// a FakeIP allocation finishes. See: ISteamNetworkingSockets::BeginAsyncRequestFakeIP, + /// ISteamNetworkingUtils::SetGlobalCallback_FakeIPResult + k_ESteamNetworkingConfig_Callback_FakeIPResult = 207, + +// +// P2P connection settings +// + +// /// [listen socket int32] When you create a P2P listen socket, we will automatically +// /// open up a UDP port to listen for LAN connections. LAN connections can be made +// /// without any signaling: both sides can be disconnected from the Internet. +// /// +// /// This value can be set to zero to disable the feature. +// k_ESteamNetworkingConfig_P2P_Discovery_Server_LocalPort = 101, +// +// /// [connection int32] P2P connections can perform broadcasts looking for the peer +// /// on the LAN. +// k_ESteamNetworkingConfig_P2P_Discovery_Client_RemotePort = 102, + + /// [connection string] Comma-separated list of STUN servers that can be used + /// for NAT piercing. If you set this to an empty string, NAT piercing will + /// not be attempted. Also if "public" candidates are not allowed for + /// P2P_Transport_ICE_Enable, then this is ignored. + k_ESteamNetworkingConfig_P2P_STUN_ServerList = 103, + + /// [connection int32] What types of ICE candidates to share with the peer. + /// See k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_xxx values + k_ESteamNetworkingConfig_P2P_Transport_ICE_Enable = 104, + + /// [connection int32] When selecting P2P transport, add various + /// penalties to the scores for selected transports. (Route selection + /// scores are on a scale of milliseconds. The score begins with the + /// route ping time and is then adjusted.) + k_ESteamNetworkingConfig_P2P_Transport_ICE_Penalty = 105, + k_ESteamNetworkingConfig_P2P_Transport_SDR_Penalty = 106, + k_ESteamNetworkingConfig_P2P_TURN_ServerList = 107, + k_ESteamNetworkingConfig_P2P_TURN_UserList = 108, + k_ESteamNetworkingConfig_P2P_TURN_PassList = 109, + //k_ESteamNetworkingConfig_P2P_Transport_LANBeacon_Penalty = 107, + k_ESteamNetworkingConfig_P2P_Transport_ICE_Implementation = 110, + +// +// Settings for SDR relayed connections +// + + /// [global int32] If the first N pings to a port all fail, mark that port as unavailable for + /// a while, and try a different one. Some ISPs and routers may drop the first + /// packet, so setting this to 1 may greatly disrupt communications. + k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFailInitial = 19, + + /// [global int32] If N consecutive pings to a port fail, after having received successful + /// communication, mark that port as unavailable for a while, and try a + /// different one. + k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFail = 20, + + /// [global int32] Minimum number of lifetime pings we need to send, before we think our estimate + /// is solid. The first ping to each cluster is very often delayed because of NAT, + /// routers not having the best route, etc. Until we've sent a sufficient number + /// of pings, our estimate is often inaccurate. Keep pinging until we get this + /// many pings. + k_ESteamNetworkingConfig_SDRClient_MinPingsBeforePingAccurate = 21, + + /// [global int32] Set all steam datagram traffic to originate from the same + /// local port. By default, we open up a new UDP socket (on a different local + /// port) for each relay. This is slightly less optimal, but it works around + /// some routers that don't implement NAT properly. If you have intermittent + /// problems talking to relays that might be NAT related, try toggling + /// this flag + k_ESteamNetworkingConfig_SDRClient_SingleSocket = 22, + + /// [global string] Code of relay cluster to force use. If not empty, we will + /// only use relays in that cluster. E.g. 'iad' + k_ESteamNetworkingConfig_SDRClient_ForceRelayCluster = 29, + + /// [connection string] For development, a base-64 encoded ticket generated + /// using the cert tool. This can be used to connect to a gameserver via SDR + /// without a ticket generated using the game coordinator. (You will still + /// need a key that is trusted for your app, however.) + /// + /// This can also be passed using the SDR_DEVTICKET environment variable + k_ESteamNetworkingConfig_SDRClient_DevTicket = 30, + + /// [global string] For debugging. Override list of relays from the config with + /// this set (maybe just one). Comma-separated list. + k_ESteamNetworkingConfig_SDRClient_ForceProxyAddr = 31, + + /// [global string] For debugging. Force ping times to clusters to be the specified + /// values. A comma separated list of <cluster>=<ms> values. E.g. "sto=32,iad=100" + /// + /// This is a dev configuration value, you probably should not let users modify it + /// in production. + k_ESteamNetworkingConfig_SDRClient_FakeClusterPing = 36, + + /// [global int32] When probing the SteamDatagram network, we limit exploration + /// to the closest N POPs, based on our current best approximated ping to that POP. + k_ESteamNetworkingConfig_SDRClient_LimitPingProbesToNearestN = 60, + +// +// Log levels for debugging information of various subsystems. +// Higher numeric values will cause more stuff to be printed. +// See ISteamNetworkingUtils::SetDebugOutputFunction for more +// information +// +// The default for all values is k_ESteamNetworkingSocketsDebugOutputType_Warning. +// + k_ESteamNetworkingConfig_LogLevel_AckRTT = 13, // [connection int32] RTT calculations for inline pings and replies + k_ESteamNetworkingConfig_LogLevel_PacketDecode = 14, // [connection int32] log SNP packets send/recv + k_ESteamNetworkingConfig_LogLevel_Message = 15, // [connection int32] log each message send/recv + k_ESteamNetworkingConfig_LogLevel_PacketGaps = 16, // [connection int32] dropped packets + k_ESteamNetworkingConfig_LogLevel_P2PRendezvous = 17, // [connection int32] P2P rendezvous messages + k_ESteamNetworkingConfig_LogLevel_SDRRelayPings = 18, // [global int32] Ping relays + + // Experimental. Set the ECN header field on all outbound UDP packets + // -1 = the default, and means "don't set anything". + // 0..3 = set that value. (Even though 0 is the default UDP ECN value, a 0 here means "explicitly set a 0".) + k_ESteamNetworkingConfig_ECN = 999, + + // Deleted, do not use + k_ESteamNetworkingConfig_DELETED_EnumerateDevVars = 35, + + k_ESteamNetworkingConfigValue__Force32Bit = 0x7fffffff +}; + +// Bitmask of types to share +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Default = -1; // Special value - use user defaults +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Disable = 0; // Do not do any ICE work at all or share any IP addresses with peer +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Relay = 1; // Relayed connection via TURN server. +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Private = 2; // host addresses that appear to be link-local or RFC1918 addresses +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Public = 4; // STUN reflexive addresses, or host address that isn't a "private" address +const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_All = 0x7fffffff; + +/// In a few places we need to set configuration options on listen sockets and connections, and +/// have them take effect *before* the listen socket or connection really starts doing anything. +/// Creating the object and then setting the options "immediately" after creation doesn't work +/// completely, because network packets could be received between the time the object is created and +/// when the options are applied. To set options at creation time in a reliable way, they must be +/// passed to the creation function. This structure is used to pass those options. +/// +/// For the meaning of these fields, see ISteamNetworkingUtils::SetConfigValue. Basically +/// when the object is created, we just iterate over the list of options and call +/// ISteamNetworkingUtils::SetConfigValueStruct, where the scope arguments are supplied by the +/// object being created. +struct SteamNetworkingConfigValue_t +{ + /// Which option is being set + ESteamNetworkingConfigValue m_eValue; + + /// Which field below did you fill in? + ESteamNetworkingConfigDataType m_eDataType; + + /// Option value + union + { + int32_t m_int32; + int64_t m_int64; + float m_float; + const char *m_string; // Points to your '\0'-terminated buffer + void *m_ptr; + } m_val; + + // + // Shortcut helpers to set the type and value in a single call + // + inline void SetInt32( ESteamNetworkingConfigValue eVal, int32_t data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Int32; + m_val.m_int32 = data; + } + inline void SetInt64( ESteamNetworkingConfigValue eVal, int64_t data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Int64; + m_val.m_int64 = data; + } + inline void SetFloat( ESteamNetworkingConfigValue eVal, float data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Float; + m_val.m_float = data; + } + inline void SetPtr( ESteamNetworkingConfigValue eVal, void *data ) + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Ptr; + m_val.m_ptr = data; + } + inline void SetString( ESteamNetworkingConfigValue eVal, const char *data ) // WARNING - Just saves your pointer. Does NOT make a copy of the string + { + m_eValue = eVal; + m_eDataType = k_ESteamNetworkingConfig_Ptr; + m_val.m_string = data; + } +}; + +/// Return value of ISteamNetworkintgUtils::GetConfigValue +enum ESteamNetworkingGetConfigValueResult +{ + k_ESteamNetworkingGetConfigValue_BadValue = -1, // No such configuration value + k_ESteamNetworkingGetConfigValue_BadScopeObj = -2, // Bad connection handle, etc + k_ESteamNetworkingGetConfigValue_BufferTooSmall = -3, // Couldn't fit the result in your buffer + k_ESteamNetworkingGetConfigValue_OK = 1, + k_ESteamNetworkingGetConfigValue_OKInherited = 2, // A value was not set at this level, but the effective (inherited) value was returned. + + k_ESteamNetworkingGetConfigValueResult__Force32Bit = 0x7fffffff +}; + +// +// Debug output +// + +/// Detail level for diagnostic output callback. +/// See ISteamNetworkingUtils::SetDebugOutputFunction +enum ESteamNetworkingSocketsDebugOutputType +{ + k_ESteamNetworkingSocketsDebugOutputType_None = 0, + k_ESteamNetworkingSocketsDebugOutputType_Bug = 1, // You used the API incorrectly, or an internal error happened + k_ESteamNetworkingSocketsDebugOutputType_Error = 2, // Run-time error condition that isn't the result of a bug. (E.g. we are offline, cannot bind a port, etc) + k_ESteamNetworkingSocketsDebugOutputType_Important = 3, // Nothing is wrong, but this is an important notification + k_ESteamNetworkingSocketsDebugOutputType_Warning = 4, + k_ESteamNetworkingSocketsDebugOutputType_Msg = 5, // Recommended amount + k_ESteamNetworkingSocketsDebugOutputType_Verbose = 6, // Quite a bit + k_ESteamNetworkingSocketsDebugOutputType_Debug = 7, // Practically everything + k_ESteamNetworkingSocketsDebugOutputType_Everything = 8, // Wall of text, detailed packet contents breakdown, etc + + k_ESteamNetworkingSocketsDebugOutputType__Force32Bit = 0x7fffffff +}; + +/// Setup callback for debug output, and the desired verbosity you want. +typedef void (*FSteamNetworkingSocketsDebugOutput)( ESteamNetworkingSocketsDebugOutputType nType, const char *pszMsg ); + +// +// Valve data centers +// + +/// Convert 3- or 4-character ID to 32-bit int. +inline SteamNetworkingPOPID CalculateSteamNetworkingPOPIDFromString( const char *pszCode ) +{ + // OK we made a bad decision when we decided how to pack 3-character codes into a uint32. We'd like to support + // 4-character codes, but we don't want to break compatibility. The migration path has some subtleties that make + // this nontrivial, and there are already some IDs stored in SQL. Ug, so the 4 character code "abcd" will + // be encoded with the digits like "0xddaabbcc". + // + // Also: we don't currently use 1- or 2-character codes, but if ever do in the future, let's make sure don't read + // past the end of the string and access uninitialized memory. (And if the string is empty, we always want + // to return 0 and not read bytes past the '\0'.) + // + // There is also extra paranoia to make sure the bytes are not treated as signed. + SteamNetworkingPOPID result = (uint32)(uint8)pszCode[0] << 16U; + if ( result && pszCode[1] ) + { + result |= ( (uint32)(uint8)pszCode[1] << 8U ); + if ( pszCode[2] ) + { + result |= (uint32)(uint8)pszCode[2] | ( (uint32)(uint8)pszCode[3] << 24U ); + } + } + return result; +} + +/// Unpack integer to string representation, including terminating '\0' +/// +/// See also SteamNetworkingPOPIDRender +template <int N> +inline void GetSteamNetworkingLocationPOPStringFromID( SteamNetworkingPOPID id, char (&szCode)[N] ) +{ + static_assert( N >= 5, "Fixed-size buffer not big enough to hold SDR POP ID" ); + szCode[0] = char( id >> 16U ); + szCode[1] = char( id >> 8U ); + szCode[2] = char( id ); + szCode[3] = char( id >> 24U ); // See comment above about deep regret and sadness + szCode[4] = 0; +} + +/// The POPID "dev" is used in non-production environments for testing. +const SteamNetworkingPOPID k_SteamDatagramPOPID_dev = ( (uint32)'d' << 16U ) | ( (uint32)'e' << 8U ) | (uint32)'v'; + +#ifndef API_GEN + +/// Utility class for printing a SteamNetworkingPOPID. +struct SteamNetworkingPOPIDRender +{ + SteamNetworkingPOPIDRender( SteamNetworkingPOPID x ) { GetSteamNetworkingLocationPOPStringFromID( x, buf ); } + inline const char *c_str() const { return buf; } +private: + char buf[ 8 ]; +}; + +#endif + +/////////////////////////////////////////////////////////////////////////////// +// +// Internal stuff +#ifndef API_GEN + +// For code compatibility +typedef SteamNetworkingMessage_t ISteamNetworkingMessage; +typedef SteamNetworkingErrMsg SteamDatagramErrMsg; + +inline void SteamNetworkingIPAddr::Clear() { memset( this, 0, sizeof(*this) ); } +inline bool SteamNetworkingIPAddr::IsIPv6AllZeros() const { const uint64 *q = (const uint64 *)m_ipv6; return q[0] == 0 && q[1] == 0; } +inline void SteamNetworkingIPAddr::SetIPv6( const uint8 *ipv6, uint16 nPort ) { memcpy( m_ipv6, ipv6, 16 ); m_port = nPort; } +inline void SteamNetworkingIPAddr::SetIPv4( uint32 nIP, uint16 nPort ) { m_ipv4.m_8zeros = 0; m_ipv4.m_0000 = 0; m_ipv4.m_ffff = 0xffff; m_ipv4.m_ip[0] = uint8(nIP>>24); m_ipv4.m_ip[1] = uint8(nIP>>16); m_ipv4.m_ip[2] = uint8(nIP>>8); m_ipv4.m_ip[3] = uint8(nIP); m_port = nPort; } +inline bool SteamNetworkingIPAddr::IsIPv4() const { return m_ipv4.m_8zeros == 0 && m_ipv4.m_0000 == 0 && m_ipv4.m_ffff == 0xffff; } +inline uint32 SteamNetworkingIPAddr::GetIPv4() const { return IsIPv4() ? ( (uint32(m_ipv4.m_ip[0])<<24) | (uint32(m_ipv4.m_ip[1])<<16) | (uint32(m_ipv4.m_ip[2])<<8) | uint32(m_ipv4.m_ip[3]) ) : 0; } +inline void SteamNetworkingIPAddr::SetIPv6LocalHost( uint16 nPort ) { m_ipv4.m_8zeros = 0; m_ipv4.m_0000 = 0; m_ipv4.m_ffff = 0; m_ipv6[12] = 0; m_ipv6[13] = 0; m_ipv6[14] = 0; m_ipv6[15] = 1; m_port = nPort; } +inline bool SteamNetworkingIPAddr::IsLocalHost() const { return ( m_ipv4.m_8zeros == 0 && m_ipv4.m_0000 == 0 && m_ipv4.m_ffff == 0 && m_ipv6[12] == 0 && m_ipv6[13] == 0 && m_ipv6[14] == 0 && m_ipv6[15] == 1 ) || ( GetIPv4() == 0x7f000001 ); } +inline bool SteamNetworkingIPAddr::operator==(const SteamNetworkingIPAddr &x ) const { return memcmp( this, &x, sizeof(SteamNetworkingIPAddr) ) == 0; } + +inline void SteamNetworkingIdentity::Clear() { memset( this, 0, sizeof(*this) ); } +inline bool SteamNetworkingIdentity::IsInvalid() const { return m_eType == k_ESteamNetworkingIdentityType_Invalid; } +inline void SteamNetworkingIdentity::SetSteamID( CSteamID steamID ) { SetSteamID64( steamID.ConvertToUint64() ); } +inline CSteamID SteamNetworkingIdentity::GetSteamID() const { return CSteamID( GetSteamID64() ); } +inline void SteamNetworkingIdentity::SetSteamID64( uint64 steamID ) { m_eType = k_ESteamNetworkingIdentityType_SteamID; m_cbSize = sizeof( m_steamID64 ); m_steamID64 = steamID; } +inline uint64 SteamNetworkingIdentity::GetSteamID64() const { return m_eType == k_ESteamNetworkingIdentityType_SteamID ? m_steamID64 : 0; } +inline bool SteamNetworkingIdentity::SetXboxPairwiseID( const char *pszString ) { size_t l = strlen( pszString ); if ( l < 1 || l >= sizeof(m_szXboxPairwiseID) ) return false; + m_eType = k_ESteamNetworkingIdentityType_XboxPairwiseID; m_cbSize = int(l+1); memcpy( m_szXboxPairwiseID, pszString, m_cbSize ); return true; } +inline const char *SteamNetworkingIdentity::GetXboxPairwiseID() const { return m_eType == k_ESteamNetworkingIdentityType_XboxPairwiseID ? m_szXboxPairwiseID : NULL; } +inline void SteamNetworkingIdentity::SetPSNID( uint64 id ) { m_eType = k_ESteamNetworkingIdentityType_SonyPSN; m_cbSize = sizeof( m_PSNID ); m_PSNID = id; } +inline uint64 SteamNetworkingIdentity::GetPSNID() const { return m_eType == k_ESteamNetworkingIdentityType_SonyPSN ? m_PSNID : 0; } +inline void SteamNetworkingIdentity::SetStadiaID( uint64 id ) { m_eType = k_ESteamNetworkingIdentityType_GoogleStadia; m_cbSize = sizeof( m_stadiaID ); m_stadiaID = id; } +inline uint64 SteamNetworkingIdentity::GetStadiaID() const { return m_eType == k_ESteamNetworkingIdentityType_GoogleStadia ? m_stadiaID : 0; } +inline void SteamNetworkingIdentity::SetIPAddr( const SteamNetworkingIPAddr &addr ) { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip = addr; } +inline const SteamNetworkingIPAddr *SteamNetworkingIdentity::GetIPAddr() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? &m_ip : NULL; } +inline void SteamNetworkingIdentity::SetIPv4Addr( uint32 nIPv4, uint16 nPort ) { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip.SetIPv4( nIPv4, nPort ); } +inline uint32 SteamNetworkingIdentity::GetIPv4() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? m_ip.GetIPv4() : 0; } +inline ESteamNetworkingFakeIPType SteamNetworkingIdentity::GetFakeIPType() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? m_ip.GetFakeIPType() : k_ESteamNetworkingFakeIPType_Invalid; } +inline void SteamNetworkingIdentity::SetLocalHost() { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip.SetIPv6LocalHost(); } +inline bool SteamNetworkingIdentity::IsLocalHost() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress && m_ip.IsLocalHost(); } +inline bool SteamNetworkingIdentity::SetGenericString( const char *pszString ) { size_t l = strlen( pszString ); if ( l >= sizeof(m_szGenericString) ) return false; + m_eType = k_ESteamNetworkingIdentityType_GenericString; m_cbSize = int(l+1); memcpy( m_szGenericString, pszString, m_cbSize ); return true; } +inline const char *SteamNetworkingIdentity::GetGenericString() const { return m_eType == k_ESteamNetworkingIdentityType_GenericString ? m_szGenericString : NULL; } +inline bool SteamNetworkingIdentity::SetGenericBytes( const void *data, size_t cbLen ) { if ( cbLen > sizeof(m_genericBytes) ) return false; + m_eType = k_ESteamNetworkingIdentityType_GenericBytes; m_cbSize = int(cbLen); memcpy( m_genericBytes, data, m_cbSize ); return true; } +inline const uint8 *SteamNetworkingIdentity::GetGenericBytes( int &cbLen ) const { if ( m_eType != k_ESteamNetworkingIdentityType_GenericBytes ) return NULL; + cbLen = m_cbSize; return m_genericBytes; } +inline bool SteamNetworkingIdentity::operator==(const SteamNetworkingIdentity &x ) const { return m_eType == x.m_eType && m_cbSize == x.m_cbSize && memcmp( m_genericBytes, x.m_genericBytes, m_cbSize ) == 0; } +inline void SteamNetworkingMessage_t::Release() { (*m_pfnRelease)( this ); } + +#endif // #ifndef API_GEN + +#endif // #ifndef STEAMNETWORKINGTYPES diff --git a/lib/windows/include/steam/steamtypes.h b/lib/windows/include/steam/steamtypes.h index f74df1a..657f5b3 100644 --- a/lib/windows/include/steam/steamtypes.h +++ b/lib/windows/include/steam/steamtypes.h @@ -1,42 +1,40 @@ -//========= Copyright © 1996-2008, Valve LLC, All rights reserved. ============ -// -// Purpose: -// -//============================================================================= +//========= Copyright 1996-2022, Valve LLC, All rights reserved. ============ #ifndef STEAMTYPES_H #define STEAMTYPES_H -#ifdef _WIN32 -#pragma once -#endif #define S_CALLTYPE __cdecl +// WARNING: __cdecl is potentially #defined away in steam_api_common.h // Steam-specific types. Defined here so this header file can be included in other code bases. #ifndef WCHARTYPES_H typedef unsigned char uint8; #endif -#if defined( __GNUC__ ) && !defined(POSIX) +#ifdef __GNUC__ #if __GNUC__ < 4 #error "Steamworks requires GCC 4.X (4.2 or 4.4 have been tested)" #endif - #define POSIX 1 #endif -#if defined(__x86_64__) || defined(_WIN64) +#if defined(__LP64__) || defined(__x86_64__) || defined(_WIN64) || defined(__aarch64__) || defined(__s390x__) #define X64BITS #endif +#if !defined(VALVE_BIG_ENDIAN) +#if defined(_PS3) // Make sure VALVE_BIG_ENDIAN gets set on PS3, may already be set previously in Valve internal code. -#if !defined(VALVE_BIG_ENDIAN) && defined(_PS3) -#define VALVE_BIG_ENDIAN +#define VALVE_BIG_ENDIAN 1 +#endif +#if defined( __GNUC__ ) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#define VALVE_BIG_ENDIAN 1 +#endif #endif typedef unsigned char uint8; typedef signed char int8; -#if defined( _WIN32 ) +#if defined( _WIN32 ) && !defined( __GNUC__ ) typedef __int16 int16; typedef unsigned __int16 uint16; @@ -84,98 +82,101 @@ typedef unsigned int uintp; #endif // else _WIN32 -#ifdef API_GEN -# define CLANG_ATTR(ATTR) __attribute__((annotate( ATTR ))) -#else -# define CLANG_ATTR(ATTR) -#endif - -#define METHOD_DESC(DESC) CLANG_ATTR( "desc:" #DESC ";" ) -#define IGNOREATTR() CLANG_ATTR( "ignore" ) -#define OUT_STRUCT() CLANG_ATTR( "out_struct: ;" ) -#define OUT_STRING() CLANG_ATTR( "out_string: ;" ) -#define OUT_ARRAY_CALL(COUNTER,FUNCTION,PARAMS) CLANG_ATTR( "out_array_call:" #COUNTER "," #FUNCTION "," #PARAMS ";" ) -#define OUT_ARRAY_COUNT(COUNTER, DESC) CLANG_ATTR( "out_array_count:" #COUNTER ";desc:" #DESC ) -#define ARRAY_COUNT(COUNTER) CLANG_ATTR( "array_count:" #COUNTER ";" ) -#define ARRAY_COUNT_D(COUNTER, DESC) CLANG_ATTR( "array_count:" #COUNTER ";desc:" #DESC ) -#define BUFFER_COUNT(COUNTER) CLANG_ATTR( "buffer_count:" #COUNTER ";" ) -#define OUT_BUFFER_COUNT(COUNTER) CLANG_ATTR( "out_buffer_count:" #COUNTER ";" ) -#define OUT_STRING_COUNT(COUNTER) CLANG_ATTR( "out_string_count:" #COUNTER ";" ) -#define DESC(DESC) CLANG_ATTR("desc:" #DESC ";") -#define CALL_RESULT(RESULT_TYPE) CLANG_ATTR("callresult:" #RESULT_TYPE ";") -#define CALL_BACK(RESULT_TYPE) CLANG_ATTR("callback:" #RESULT_TYPE ";") - -const int k_cubSaltSize = 8; -typedef uint8 Salt_t[ k_cubSaltSize ]; - -//----------------------------------------------------------------------------- -// GID (GlobalID) stuff -// This is a globally unique identifier. It's guaranteed to be unique across all -// racks and servers for as long as a given universe persists. -//----------------------------------------------------------------------------- -// NOTE: for GID parsing/rendering and other utils, see gid.h -typedef uint64 GID_t; - -const GID_t k_GIDNil = 0xffffffffffffffffull; - -// For convenience, we define a number of types that are just new names for GIDs -typedef uint64 JobID_t; // Each Job has a unique ID -typedef GID_t TxnID_t; // Each financial transaction has a unique ID - -const GID_t k_TxnIDNil = k_GIDNil; -const GID_t k_TxnIDUnknown = 0; - -const JobID_t k_JobIDNil = 0xffffffffffffffffull; - -// this is baked into client messages and interfaces as an int, -// make sure we never break this. -typedef uint32 PackageId_t; -const PackageId_t k_uPackageIdFreeSub = 0x0; -const PackageId_t k_uPackageIdInvalid = 0xFFFFFFFF; - -typedef uint32 BundleId_t; -const BundleId_t k_uBundleIdInvalid = 0; - -// this is baked into client messages and interfaces as an int, -// make sure we never break this. typedef uint32 AppId_t; const AppId_t k_uAppIdInvalid = 0x0; -typedef uint64 AssetClassId_t; -const AssetClassId_t k_ulAssetClassIdInvalid = 0x0; - -typedef uint32 PhysicalItemId_t; -const PhysicalItemId_t k_uPhysicalItemIdInvalid = 0x0; - - -// this is baked into client messages and interfaces as an int, -// make sure we never break this. AppIds and DepotIDs also presently -// share the same namespace, but since we'd like to change that in the future -// I've defined it seperately here. +// AppIds and DepotIDs also presently share the same namespace typedef uint32 DepotId_t; const DepotId_t k_uDepotIdInvalid = 0x0; -// RTime32 -// We use this 32 bit time representing real world time. -// It offers 1 second resolution beginning on January 1, 1970 (Unix time) +// RTime32. Seconds elapsed since Jan 1 1970, i.e. unix timestamp. +// It's the same as time_t, but it is always 32-bit and unsigned. typedef uint32 RTime32; -typedef uint32 CellID_t; -const CellID_t k_uCellIDInvalid = 0xFFFFFFFF; - // handle to a Steam API call typedef uint64 SteamAPICall_t; const SteamAPICall_t k_uAPICallInvalid = 0x0; typedef uint32 AccountID_t; +const AccountID_t k_uAccountIdInvalid = 0; -typedef uint32 PartnerId_t; -const PartnerId_t k_uPartnerIdInvalid = 0; +// Party Beacon ID +typedef uint64 PartyBeaconID_t; +const PartyBeaconID_t k_ulPartyBeaconIdInvalid = 0; -// ID for a depot content manifest -typedef uint64 ManifestId_t; -const ManifestId_t k_uManifestIdInvalid = 0; +enum ESteamIPType +{ + k_ESteamIPTypeIPv4 = 0, + k_ESteamIPTypeIPv6 = 1, +}; +#pragma pack( push, 1 ) +struct SteamIPAddress_t +{ + union { + + uint32 m_unIPv4; // Host order + uint8 m_rgubIPv6[16]; // Network order! Same as inaddr_in6. (0011:2233:4455:6677:8899:aabb:ccdd:eeff) + + // Internal use only + uint64 m_ipv6Qword[2]; // big endian + }; + + ESteamIPType m_eType; + + bool IsSet() const + { + if ( k_ESteamIPTypeIPv4 == m_eType ) + { + return m_unIPv4 != 0; + } + else + { + return m_ipv6Qword[0] !=0 || m_ipv6Qword[1] != 0; + } + } + + static SteamIPAddress_t IPv4Any() + { + SteamIPAddress_t ipOut; + ipOut.m_eType = k_ESteamIPTypeIPv4; + ipOut.m_unIPv4 = 0; + + return ipOut; + } + + static SteamIPAddress_t IPv6Any() + { + SteamIPAddress_t ipOut; + ipOut.m_eType = k_ESteamIPTypeIPv6; + ipOut.m_ipv6Qword[0] = 0; + ipOut.m_ipv6Qword[1] = 0; + + return ipOut; + } + + static SteamIPAddress_t IPv4Loopback() + { + SteamIPAddress_t ipOut; + ipOut.m_eType = k_ESteamIPTypeIPv4; + ipOut.m_unIPv4 = 0x7f000001; + + return ipOut; + } + + static SteamIPAddress_t IPv6Loopback() + { + SteamIPAddress_t ipOut; + ipOut.m_eType = k_ESteamIPTypeIPv6; + ipOut.m_ipv6Qword[0] = 0; + ipOut.m_ipv6Qword[1] = 0; + ipOut.m_rgubIPv6[15] = 1; + + return ipOut; + } +}; + +#pragma pack( pop ) #endif // STEAMTYPES_H diff --git a/lib/windows/include/vorbis/codec.h b/lib/windows/include/vorbis/codec.h deleted file mode 100644 index 999aa33..0000000 --- a/lib/windows/include/vorbis/codec.h +++ /dev/null @@ -1,243 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - - ******************************************************************** - - function: libvorbis codec headers - last mod: $Id: codec.h 17021 2010-03-24 09:29:41Z xiphmont $ - - ********************************************************************/ - -#ifndef _vorbis_codec_h_ -#define _vorbis_codec_h_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include <ogg/ogg.h> - -typedef struct vorbis_info{ - int version; - int channels; - long rate; - - /* The below bitrate declarations are *hints*. - Combinations of the three values carry the following implications: - - all three set to the same value: - implies a fixed rate bitstream - only nominal set: - implies a VBR stream that averages the nominal bitrate. No hard - upper/lower limit - upper and or lower set: - implies a VBR bitstream that obeys the bitrate limits. nominal - may also be set to give a nominal rate. - none set: - the coder does not care to speculate. - */ - - long bitrate_upper; - long bitrate_nominal; - long bitrate_lower; - long bitrate_window; - - void *codec_setup; -} vorbis_info; - -/* vorbis_dsp_state buffers the current vorbis audio - analysis/synthesis state. The DSP state belongs to a specific - logical bitstream ****************************************************/ -typedef struct vorbis_dsp_state{ - int analysisp; - vorbis_info *vi; - - float **pcm; - float **pcmret; - int pcm_storage; - int pcm_current; - int pcm_returned; - - int preextrapolate; - int eofflag; - - long lW; - long W; - long nW; - long centerW; - - ogg_int64_t granulepos; - ogg_int64_t sequence; - - ogg_int64_t glue_bits; - ogg_int64_t time_bits; - ogg_int64_t floor_bits; - ogg_int64_t res_bits; - - void *backend_state; -} vorbis_dsp_state; - -typedef struct vorbis_block{ - /* necessary stream state for linking to the framing abstraction */ - float **pcm; /* this is a pointer into local storage */ - oggpack_buffer opb; - - long lW; - long W; - long nW; - int pcmend; - int mode; - - int eofflag; - ogg_int64_t granulepos; - ogg_int64_t sequence; - vorbis_dsp_state *vd; /* For read-only access of configuration */ - - /* local storage to avoid remallocing; it's up to the mapping to - structure it */ - void *localstore; - long localtop; - long localalloc; - long totaluse; - struct alloc_chain *reap; - - /* bitmetrics for the frame */ - long glue_bits; - long time_bits; - long floor_bits; - long res_bits; - - void *internal; - -} vorbis_block; - -/* vorbis_block is a single block of data to be processed as part of -the analysis/synthesis stream; it belongs to a specific logical -bitstream, but is independent from other vorbis_blocks belonging to -that logical bitstream. *************************************************/ - -struct alloc_chain{ - void *ptr; - struct alloc_chain *next; -}; - -/* vorbis_info contains all the setup information specific to the - specific compression/decompression mode in progress (eg, - psychoacoustic settings, channel setup, options, codebook - etc). vorbis_info and substructures are in backends.h. -*********************************************************************/ - -/* the comments are not part of vorbis_info so that vorbis_info can be - static storage */ -typedef struct vorbis_comment{ - /* unlimited user comment fields. libvorbis writes 'libvorbis' - whatever vendor is set to in encode */ - char **user_comments; - int *comment_lengths; - int comments; - char *vendor; - -} vorbis_comment; - - -/* libvorbis encodes in two abstraction layers; first we perform DSP - and produce a packet (see docs/analysis.txt). The packet is then - coded into a framed OggSquish bitstream by the second layer (see - docs/framing.txt). Decode is the reverse process; we sync/frame - the bitstream and extract individual packets, then decode the - packet back into PCM audio. - - The extra framing/packetizing is used in streaming formats, such as - files. Over the net (such as with UDP), the framing and - packetization aren't necessary as they're provided by the transport - and the streaming layer is not used */ - -/* Vorbis PRIMITIVES: general ***************************************/ - -extern void vorbis_info_init(vorbis_info *vi); -extern void vorbis_info_clear(vorbis_info *vi); -extern int vorbis_info_blocksize(vorbis_info *vi,int zo); -extern void vorbis_comment_init(vorbis_comment *vc); -extern void vorbis_comment_add(vorbis_comment *vc, const char *comment); -extern void vorbis_comment_add_tag(vorbis_comment *vc, - const char *tag, const char *contents); -extern char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count); -extern int vorbis_comment_query_count(vorbis_comment *vc, const char *tag); -extern void vorbis_comment_clear(vorbis_comment *vc); - -extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb); -extern int vorbis_block_clear(vorbis_block *vb); -extern void vorbis_dsp_clear(vorbis_dsp_state *v); -extern double vorbis_granule_time(vorbis_dsp_state *v, - ogg_int64_t granulepos); - -extern const char *vorbis_version_string(void); - -/* Vorbis PRIMITIVES: analysis/DSP layer ****************************/ - -extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi); -extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op); -extern int vorbis_analysis_headerout(vorbis_dsp_state *v, - vorbis_comment *vc, - ogg_packet *op, - ogg_packet *op_comm, - ogg_packet *op_code); -extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals); -extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals); -extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb); -extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op); - -extern int vorbis_bitrate_addblock(vorbis_block *vb); -extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, - ogg_packet *op); - -/* Vorbis PRIMITIVES: synthesis layer *******************************/ -extern int vorbis_synthesis_idheader(ogg_packet *op); -extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc, - ogg_packet *op); - -extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi); -extern int vorbis_synthesis_restart(vorbis_dsp_state *v); -extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op); -extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op); -extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb); -extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm); -extern int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm); -extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples); -extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op); - -extern int vorbis_synthesis_halfrate(vorbis_info *v,int flag); -extern int vorbis_synthesis_halfrate_p(vorbis_info *v); - -/* Vorbis ERRORS and return codes ***********************************/ - -#define OV_FALSE -1 -#define OV_EOF -2 -#define OV_HOLE -3 - -#define OV_EREAD -128 -#define OV_EFAULT -129 -#define OV_EIMPL -130 -#define OV_EINVAL -131 -#define OV_ENOTVORBIS -132 -#define OV_EBADHEADER -133 -#define OV_EVERSION -134 -#define OV_ENOTAUDIO -135 -#define OV_EBADPACKET -136 -#define OV_EBADLINK -137 -#define OV_ENOSEEK -138 - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/lib/windows/include/vorbis/vorbisenc.h b/lib/windows/include/vorbis/vorbisenc.h deleted file mode 100644 index 02332b5..0000000 --- a/lib/windows/include/vorbis/vorbisenc.h +++ /dev/null @@ -1,436 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: vorbis encode-engine setup - last mod: $Id: vorbisenc.h 17021 2010-03-24 09:29:41Z xiphmont $ - - ********************************************************************/ - -/** \file - * Libvorbisenc is a convenient API for setting up an encoding - * environment using libvorbis. Libvorbisenc encapsulates the - * actions needed to set up the encoder properly. - */ - -#ifndef _OV_ENC_H_ -#define _OV_ENC_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include "codec.h" - -/** - * This is the primary function within libvorbisenc for setting up managed - * bitrate modes. - * - * Before this function is called, the \ref vorbis_info - * struct should be initialized by using vorbis_info_init() from the libvorbis - * API. After encoding, vorbis_info_clear() should be called. - * - * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set - * constraints for the encoded file. This function uses these settings to - * select the appropriate encoding mode and set it up. - * - * \param vi Pointer to an initialized \ref vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. - * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. - * \param min_bitrate Desired minimum bitrate. -1 indicates unset. - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success. - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. - */ -extern int vorbis_encode_init(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -/** - * This function performs step-one of a three-step bitrate-managed encode - * setup. It functions similarly to the one-step setup performed by \ref - * vorbis_encode_init but allows an application to make further encode setup - * tweaks using \ref vorbis_encode_ctl before finally calling \ref - * vorbis_encode_setup_init to complete the setup process. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set - * constraints for the encoded file. This function uses these settings to - * select the appropriate encoding mode and set it up. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. - * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. - * \param min_bitrate Desired minimum bitrate. -1 indicates unset. - * - * \return Zero for success, and negative for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. - */ -extern int vorbis_encode_setup_managed(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -/** - * This function performs step-one of a three-step variable bitrate - * (quality-based) encode setup. It functions similarly to the one-step setup - * performed by \ref vorbis_encode_init_vbr() but allows an application to - * make further encode setup tweaks using \ref vorbis_encode_ctl() before - * finally calling \ref vorbis_encode_setup_init to complete the setup - * process. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using \ref vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. - */ -extern int vorbis_encode_setup_vbr(vorbis_info *vi, - long channels, - long rate, - - float quality - ); - -/** - * This is the primary function within libvorbisenc for setting up variable - * bitrate ("quality" based) modes. - * - * - * Before this function is called, the vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param base_quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). - * - * - * \return Zero for success, or a negative number for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. - */ -extern int vorbis_encode_init_vbr(vorbis_info *vi, - long channels, - long rate, - - float base_quality - ); - -/** - * This function performs the last stage of three-step encoding setup, as - * described in the API overview under managed bitrate modes. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API, one of - * \ref vorbis_encode_setup_managed() or \ref vorbis_encode_setup_vbr() called to - * initialize the high-level encoding setup, and \ref vorbis_encode_ctl() - * called if necessary to make encoding setup changes. - * vorbis_encode_setup_init() finalizes the highlevel encoding structure into - * a complete encoding setup after which the application may make no further - * setup changes. - * - * After encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized \ref vorbis_info struct. - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success. - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * - * \retval OV_EINVAL Attempt to use vorbis_encode_setup_init() without first - * calling one of vorbis_encode_setup_managed() or vorbis_encode_setup_vbr() to - * initialize the high-level encoding setup - * - */ -extern int vorbis_encode_setup_init(vorbis_info *vi); - -/** - * This function implements a generic interface to miscellaneous encoder - * settings similar to the classic UNIX 'ioctl()' system call. Applications - * may use vorbis_encode_ctl() to query or set bitrate management or quality - * mode details by using one of several \e request arguments detailed below. - * vorbis_encode_ctl() must be called after one of - * vorbis_encode_setup_managed() or vorbis_encode_setup_vbr(). When used - * to modify settings, \ref vorbis_encode_ctl() must be called before \ref - * vorbis_encode_setup_init(). - * - * \param vi Pointer to an initialized vorbis_info struct. - * - * \param number Specifies the desired action; See \ref encctlcodes "the list - * of available requests". - * - * \param arg void * pointing to a data structure matching the request - * argument. - * - * \retval 0 Success. Any further return information (such as the result of a - * query) is placed into the storage pointed to by *arg. - * - * \retval OV_EINVAL Invalid argument, or an attempt to modify a setting after - * calling vorbis_encode_setup_init(). - * - * \retval OV_EIMPL Unimplemented or unknown request - */ -extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg); - -/** - * \deprecated This is a deprecated interface. Please use vorbis_encode_ctl() - * with the \ref ovectl_ratemanage2_arg struct and \ref - * OV_ECTL_RATEMANAGE2_GET and \ref OV_ECTL_RATEMANAGE2_SET calls in new code. - * - * The \ref ovectl_ratemanage_arg structure is used with vorbis_encode_ctl() - * and the \ref OV_ECTL_RATEMANAGE_GET, \ref OV_ECTL_RATEMANAGE_SET, \ref - * OV_ECTL_RATEMANAGE_AVG, \ref OV_ECTL_RATEMANAGE_HARD calls in order to - * query and modify specifics of the encoder's bitrate management - * configuration. -*/ -struct ovectl_ratemanage_arg { - int management_active; /**< nonzero if bitrate management is active*/ -/** hard lower limit (in kilobits per second) below which the stream bitrate - will never be allowed for any given bitrate_hard_window seconds of time.*/ - long bitrate_hard_min; -/** hard upper limit (in kilobits per second) above which the stream bitrate - will never be allowed for any given bitrate_hard_window seconds of time.*/ - long bitrate_hard_max; -/** the window period (in seconds) used to regulate the hard bitrate minimum - and maximum*/ - double bitrate_hard_window; -/** soft lower limit (in kilobits per second) below which the average bitrate - tracker will start nudging the bitrate higher.*/ - long bitrate_av_lo; -/** soft upper limit (in kilobits per second) above which the average bitrate - tracker will start nudging the bitrate lower.*/ - long bitrate_av_hi; -/** the window period (in seconds) used to regulate the average bitrate - minimum and maximum.*/ - double bitrate_av_window; -/** Regulates the relative centering of the average and hard windows; in - libvorbis 1.0 and 1.0.1, the hard window regulation overlapped but - followed the average window regulation. In libvorbis 1.1 a bit-reservoir - interface replaces the old windowing interface; the older windowing - interface is simulated and this field has no effect.*/ - double bitrate_av_window_center; -}; - -/** - * \name struct ovectl_ratemanage2_arg - * - * The ovectl_ratemanage2_arg structure is used with vorbis_encode_ctl() and - * the OV_ECTL_RATEMANAGE2_GET and OV_ECTL_RATEMANAGE2_SET calls in order to - * query and modify specifics of the encoder's bitrate management - * configuration. - * -*/ -struct ovectl_ratemanage2_arg { - int management_active; /**< nonzero if bitrate management is active */ -/** Lower allowed bitrate limit in kilobits per second */ - long bitrate_limit_min_kbps; -/** Upper allowed bitrate limit in kilobits per second */ - long bitrate_limit_max_kbps; - long bitrate_limit_reservoir_bits; /**<Size of the bitrate reservoir in bits */ -/** Regulates the bitrate reservoir's preferred fill level in a range from 0.0 - * to 1.0; 0.0 tries to bank bits to buffer against future bitrate spikes, 1.0 - * buffers against future sudden drops in instantaneous bitrate. Default is - * 0.1 - */ - double bitrate_limit_reservoir_bias; -/** Average bitrate setting in kilobits per second */ - long bitrate_average_kbps; -/** Slew rate limit setting for average bitrate adjustment; sets the minimum - * time in seconds the bitrate tracker may swing from one extreme to the - * other when boosting or damping average bitrate. - */ - double bitrate_average_damping; -}; - - -/** - * \name vorbis_encode_ctl() codes - * - * \anchor encctlcodes - * - * These values are passed as the \c number parameter of vorbis_encode_ctl(). - * The type of the referent of that function's \c arg pointer depends on these - * codes. - */ -/*@{*/ - -/** - * Query the current encoder bitrate management setting. - * - *Argument: <tt>struct ovectl_ratemanage2_arg *</tt> - * - * Used to query the current encoder bitrate management setting. Also used to - * initialize fields of an ovectl_ratemanage2_arg structure for use with - * \ref OV_ECTL_RATEMANAGE2_SET. - */ -#define OV_ECTL_RATEMANAGE2_GET 0x14 - -/** - * Set the current encoder bitrate management settings. - * - * Argument: <tt>struct ovectl_ratemanage2_arg *</tt> - * - * Used to set the current encoder bitrate management settings to the values - * listed in the ovectl_ratemanage2_arg. Passing a NULL pointer will disable - * bitrate management. -*/ -#define OV_ECTL_RATEMANAGE2_SET 0x15 - -/** - * Returns the current encoder hard-lowpass setting (kHz) in the double - * pointed to by arg. - * - * Argument: <tt>double *</tt> -*/ -#define OV_ECTL_LOWPASS_GET 0x20 - -/** - * Sets the encoder hard-lowpass to the value (kHz) pointed to by arg. Valid - * lowpass settings range from 2 to 99. - * - * Argument: <tt>double *</tt> -*/ -#define OV_ECTL_LOWPASS_SET 0x21 - -/** - * Returns the current encoder impulse block setting in the double pointed - * to by arg. - * - * Argument: <tt>double *</tt> -*/ -#define OV_ECTL_IBLOCK_GET 0x30 - -/** - * Sets the impulse block bias to the the value pointed to by arg. - * - * Argument: <tt>double *</tt> - * - * Valid range is -15.0 to 0.0 [default]. A negative impulse block bias will - * direct to encoder to use more bits when incoding short blocks that contain - * strong impulses, thus improving the accuracy of impulse encoding. - */ -#define OV_ECTL_IBLOCK_SET 0x31 - -/** - * Returns the current encoder coupling setting in the int pointed - * to by arg. - * - * Argument: <tt>int *</tt> -*/ -#define OV_ECTL_COUPLING_GET 0x40 - -/** - * Enables/disables channel coupling in multichannel encoding according to arg. - * - * Argument: <tt>int *</tt> - * - * Zero disables channel coupling for multichannel inputs, nonzer enables - * channel coupling. Setting has no effect on monophonic encoding or - * multichannel counts that do not offer coupling. At present, coupling is - * available for stereo and 5.1 encoding. - */ -#define OV_ECTL_COUPLING_SET 0x41 - - /* deprecated rate management supported only for compatibility */ - -/** - * Old interface to querying bitrate management settings. - * - * Deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_GET instead. - * - * Argument: <tt>struct ovectl_ratemanage_arg *</tt> - */ -#define OV_ECTL_RATEMANAGE_GET 0x10 -/** - * Old interface to modifying bitrate management settings. - * - * deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: <tt>struct ovectl_ratemanage_arg *</tt> - */ -#define OV_ECTL_RATEMANAGE_SET 0x11 -/** - * Old interface to setting average-bitrate encoding mode. - * - * Deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: <tt>struct ovectl_ratemanage_arg *</tt> - */ -#define OV_ECTL_RATEMANAGE_AVG 0x12 -/** - * Old interface to setting bounded-bitrate encoding modes. - * - * deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: <tt>struct ovectl_ratemanage_arg *</tt> - */ -#define OV_ECTL_RATEMANAGE_HARD 0x13 - -/*@}*/ - - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif diff --git a/lib/windows/include/vorbis/vorbisfile.h b/lib/windows/include/vorbis/vorbisfile.h deleted file mode 100644 index 9271331..0000000 --- a/lib/windows/include/vorbis/vorbisfile.h +++ /dev/null @@ -1,206 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: stdio-based convenience library for opening/seeking/decoding - last mod: $Id: vorbisfile.h 17182 2010-04-29 03:48:32Z xiphmont $ - - ********************************************************************/ - -#ifndef _OV_FILE_H_ -#define _OV_FILE_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include <stdio.h> -#include "codec.h" - -/* The function prototypes for the callbacks are basically the same as for - * the stdio functions fread, fseek, fclose, ftell. - * The one difference is that the FILE * arguments have been replaced with - * a void * - this is to be used as a pointer to whatever internal data these - * functions might need. In the stdio case, it's just a FILE * cast to a void * - * - * If you use other functions, check the docs for these functions and return - * the right values. For seek_func(), you *MUST* return -1 if the stream is - * unseekable - */ -typedef struct { - size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource); - int (*seek_func) (void *datasource, ogg_int64_t offset, int whence); - int (*close_func) (void *datasource); - long (*tell_func) (void *datasource); -} ov_callbacks; - -#ifndef OV_EXCLUDE_STATIC_CALLBACKS - -/* a few sets of convenient callbacks, especially for use under - * Windows where ov_open_callbacks() should always be used instead of - * ov_open() to avoid problems with incompatible crt.o version linking - * issues. */ - -static int _ov_header_fseek_wrap(FILE *f,ogg_int64_t off,int whence){ - if(f==NULL)return(-1); - -#ifdef __MINGW32__ - return fseeko64(f,off,whence); -#elif defined (_WIN32) - return _fseeki64(f,off,whence); -#else - return fseek(f,off,whence); -#endif -} - -/* These structs below (OV_CALLBACKS_DEFAULT etc) are defined here as - * static data. That means that every file which includes this header - * will get its own copy of these structs whether it uses them or - * not unless it #defines OV_EXCLUDE_STATIC_CALLBACKS. - * These static symbols are essential on platforms such as Windows on - * which several different versions of stdio support may be linked to - * by different DLLs, and we need to be certain we know which one - * we're using (the same one as the main application). - */ - -static ov_callbacks OV_CALLBACKS_DEFAULT = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, - (int (*)(void *)) fclose, - (long (*)(void *)) ftell -}; - -static ov_callbacks OV_CALLBACKS_NOCLOSE = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, - (int (*)(void *)) NULL, - (long (*)(void *)) ftell -}; - -static ov_callbacks OV_CALLBACKS_STREAMONLY = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) NULL, - (int (*)(void *)) fclose, - (long (*)(void *)) NULL -}; - -static ov_callbacks OV_CALLBACKS_STREAMONLY_NOCLOSE = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) NULL, - (int (*)(void *)) NULL, - (long (*)(void *)) NULL -}; - -#endif - -#define NOTOPEN 0 -#define PARTOPEN 1 -#define OPENED 2 -#define STREAMSET 3 -#define INITSET 4 - -typedef struct OggVorbis_File { - void *datasource; /* Pointer to a FILE *, etc. */ - int seekable; - ogg_int64_t offset; - ogg_int64_t end; - ogg_sync_state oy; - - /* If the FILE handle isn't seekable (eg, a pipe), only the current - stream appears */ - int links; - ogg_int64_t *offsets; - ogg_int64_t *dataoffsets; - long *serialnos; - ogg_int64_t *pcmlengths; /* overloaded to maintain binary - compatibility; x2 size, stores both - beginning and end values */ - vorbis_info *vi; - vorbis_comment *vc; - - /* Decoding working state local storage */ - ogg_int64_t pcm_offset; - int ready_state; - long current_serialno; - int current_link; - - double bittrack; - double samptrack; - - ogg_stream_state os; /* take physical pages, weld into a logical - stream of packets */ - vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ - vorbis_block vb; /* local working space for packet->PCM decode */ - - ov_callbacks callbacks; - -} OggVorbis_File; - - -extern int ov_clear(OggVorbis_File *vf); -extern int ov_fopen(const char *path,OggVorbis_File *vf); -extern int ov_open(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); -extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf, - const char *initial, long ibytes, ov_callbacks callbacks); - -extern int ov_test(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); -extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf, - const char *initial, long ibytes, ov_callbacks callbacks); -extern int ov_test_open(OggVorbis_File *vf); - -extern long ov_bitrate(OggVorbis_File *vf,int i); -extern long ov_bitrate_instant(OggVorbis_File *vf); -extern long ov_streams(OggVorbis_File *vf); -extern long ov_seekable(OggVorbis_File *vf); -extern long ov_serialnumber(OggVorbis_File *vf,int i); - -extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i); -extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i); -extern double ov_time_total(OggVorbis_File *vf,int i); - -extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_time_seek(OggVorbis_File *vf,double pos); -extern int ov_time_seek_page(OggVorbis_File *vf,double pos); - -extern int ov_raw_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_page_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_time_seek_lap(OggVorbis_File *vf,double pos); -extern int ov_time_seek_page_lap(OggVorbis_File *vf,double pos); - -extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf); -extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf); -extern double ov_time_tell(OggVorbis_File *vf); - -extern vorbis_info *ov_info(OggVorbis_File *vf,int link); -extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link); - -extern long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int samples, - int *bitstream); -extern long ov_read_filter(OggVorbis_File *vf,char *buffer,int length, - int bigendianp,int word,int sgned,int *bitstream, - void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param); -extern long ov_read(OggVorbis_File *vf,char *buffer,int length, - int bigendianp,int word,int sgned,int *bitstream); -extern int ov_crosslap(OggVorbis_File *vf1,OggVorbis_File *vf2); - -extern int ov_halfrate(OggVorbis_File *vf,int flag); -extern int ov_halfrate_p(OggVorbis_File *vf); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/lib/windows/include/zconf.h b/lib/windows/include/zconf.h deleted file mode 100644 index 9987a77..0000000 --- a/lib/windows/include/zconf.h +++ /dev/null @@ -1,511 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2013 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - * Even better than compiling with -DZ_PREFIX would be to use configure to set - * this permanently in zconf.h using "./configure --zprefix". - */ -#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ -# define Z_PREFIX_SET - -/* all linked symbols */ -# define _dist_code z__dist_code -# define _length_code z__length_code -# define _tr_align z__tr_align -# define _tr_flush_bits z__tr_flush_bits -# define _tr_flush_block z__tr_flush_block -# define _tr_init z__tr_init -# define _tr_stored_block z__tr_stored_block -# define _tr_tally z__tr_tally -# define adler32 z_adler32 -# define adler32_combine z_adler32_combine -# define adler32_combine64 z_adler32_combine64 -# ifndef Z_SOLO -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# endif -# define crc32 z_crc32 -# define crc32_combine z_crc32_combine -# define crc32_combine64 z_crc32_combine64 -# define deflate z_deflate -# define deflateBound z_deflateBound -# define deflateCopy z_deflateCopy -# define deflateEnd z_deflateEnd -# define deflateInit2_ z_deflateInit2_ -# define deflateInit_ z_deflateInit_ -# define deflateParams z_deflateParams -# define deflatePending z_deflatePending -# define deflatePrime z_deflatePrime -# define deflateReset z_deflateReset -# define deflateResetKeep z_deflateResetKeep -# define deflateSetDictionary z_deflateSetDictionary -# define deflateSetHeader z_deflateSetHeader -# define deflateTune z_deflateTune -# define deflate_copyright z_deflate_copyright -# define get_crc_table z_get_crc_table -# ifndef Z_SOLO -# define gz_error z_gz_error -# define gz_intmax z_gz_intmax -# define gz_strwinerror z_gz_strwinerror -# define gzbuffer z_gzbuffer -# define gzclearerr z_gzclearerr -# define gzclose z_gzclose -# define gzclose_r z_gzclose_r -# define gzclose_w z_gzclose_w -# define gzdirect z_gzdirect -# define gzdopen z_gzdopen -# define gzeof z_gzeof -# define gzerror z_gzerror -# define gzflush z_gzflush -# define gzgetc z_gzgetc -# define gzgetc_ z_gzgetc_ -# define gzgets z_gzgets -# define gzoffset z_gzoffset -# define gzoffset64 z_gzoffset64 -# define gzopen z_gzopen -# define gzopen64 z_gzopen64 -# ifdef _WIN32 -# define gzopen_w z_gzopen_w -# endif -# define gzprintf z_gzprintf -# define gzvprintf z_gzvprintf -# define gzputc z_gzputc -# define gzputs z_gzputs -# define gzread z_gzread -# define gzrewind z_gzrewind -# define gzseek z_gzseek -# define gzseek64 z_gzseek64 -# define gzsetparams z_gzsetparams -# define gztell z_gztell -# define gztell64 z_gztell64 -# define gzungetc z_gzungetc -# define gzwrite z_gzwrite -# endif -# define inflate z_inflate -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define inflateBackInit_ z_inflateBackInit_ -# define inflateCopy z_inflateCopy -# define inflateEnd z_inflateEnd -# define inflateGetHeader z_inflateGetHeader -# define inflateInit2_ z_inflateInit2_ -# define inflateInit_ z_inflateInit_ -# define inflateMark z_inflateMark -# define inflatePrime z_inflatePrime -# define inflateReset z_inflateReset -# define inflateReset2 z_inflateReset2 -# define inflateSetDictionary z_inflateSetDictionary -# define inflateGetDictionary z_inflateGetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateUndermine z_inflateUndermine -# define inflateResetKeep z_inflateResetKeep -# define inflate_copyright z_inflate_copyright -# define inflate_fast z_inflate_fast -# define inflate_table z_inflate_table -# ifndef Z_SOLO -# define uncompress z_uncompress -# endif -# define zError z_zError -# ifndef Z_SOLO -# define zcalloc z_zcalloc -# define zcfree z_zcfree -# endif -# define zlibCompileFlags z_zlibCompileFlags -# define zlibVersion z_zlibVersion - -/* all zlib typedefs in zlib.h and zconf.h */ -# define Byte z_Byte -# define Bytef z_Bytef -# define alloc_func z_alloc_func -# define charf z_charf -# define free_func z_free_func -# ifndef Z_SOLO -# define gzFile z_gzFile -# endif -# define gz_header z_gz_header -# define gz_headerp z_gz_headerp -# define in_func z_in_func -# define intf z_intf -# define out_func z_out_func -# define uInt z_uInt -# define uIntf z_uIntf -# define uLong z_uLong -# define uLongf z_uLongf -# define voidp z_voidp -# define voidpc z_voidpc -# define voidpf z_voidpf - -/* all zlib structs in zlib.h and zconf.h */ -# define gz_header_s z_gz_header_s -# define internal_state z_internal_state - -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -#if defined(ZLIB_CONST) && !defined(z_const) -# define z_const const -#else -# define z_const -#endif - -/* Some Mac compilers merge all .h files incorrectly: */ -#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) -# define NO_DUMMY_DECL -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus a few kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -#ifndef Z_ARG /* function prototypes for stdarg */ -# if defined(STDC) || defined(Z_HAVE_STDARG_H) -# define Z_ARG(args) args -# else -# define Z_ARG(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include <windows.h> - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) -# include <limits.h> -# if (UINT_MAX == 0xffffffffUL) -# define Z_U4 unsigned -# elif (ULONG_MAX == 0xffffffffUL) -# define Z_U4 unsigned long -# elif (USHRT_MAX == 0xffffffffUL) -# define Z_U4 unsigned short -# endif -#endif - -#ifdef Z_U4 - typedef Z_U4 z_crc_t; -#else - typedef unsigned long z_crc_t; -#endif - -#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H -#endif - -#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H -#endif - -#ifdef STDC -# ifndef Z_SOLO -# include <sys/types.h> /* for off_t */ -# endif -#endif - -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -# include <stdarg.h> /* for va_list */ -# endif -#endif - -#ifdef _WIN32 -# ifndef Z_SOLO -# include <stddef.h> /* for wchar_t */ -# endif -#endif - -/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and - * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even - * though the former does not conform to the LFS document), but considering - * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as - * equivalently requesting no 64-bit operations - */ -#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 -# undef _LARGEFILE64_SOURCE -#endif - -#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) -# define Z_HAVE_UNISTD_H -#endif -#ifndef Z_SOLO -# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) -# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ -# ifdef VMS -# include <unixio.h> /* for off_t */ -# endif -# ifndef z_off_t -# define z_off_t off_t -# endif -# endif -#endif - -#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 -# define Z_LFS64 -#endif - -#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) -# define Z_LARGE64 -#endif - -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) -# define Z_WANT64 -#endif - -#if !defined(SEEK_SET) && !defined(Z_SOLO) -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif - -#ifndef z_off_t -# define z_off_t long -#endif - -#if !defined(_WIN32) && defined(Z_LARGE64) -# define z_off64_t off64_t -#else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) -# define z_off64_t __int64 -# else -# define z_off64_t z_off_t -# endif -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) - #pragma map(deflateInit_,"DEIN") - #pragma map(deflateInit2_,"DEIN2") - #pragma map(deflateEnd,"DEEND") - #pragma map(deflateBound,"DEBND") - #pragma map(inflateInit_,"ININ") - #pragma map(inflateInit2_,"ININ2") - #pragma map(inflateEnd,"INEND") - #pragma map(inflateSync,"INSY") - #pragma map(inflateSetDictionary,"INSEDI") - #pragma map(compressBound,"CMBND") - #pragma map(inflate_table,"INTABL") - #pragma map(inflate_fast,"INFA") - #pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ diff --git a/lib/windows/include/zlib.h b/lib/windows/include/zlib.h deleted file mode 100644 index 3e0c767..0000000 --- a/lib/windows/include/zlib.h +++ /dev/null @@ -1,1768 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.8, April 28th, 2013 - - Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 - (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). -*/ - -#ifndef ZLIB_H -#define ZLIB_H - -#include "zconf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZLIB_VERSION "1.2.8" -#define ZLIB_VERNUM 0x1280 -#define ZLIB_VER_MAJOR 1 -#define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 8 -#define ZLIB_VER_SUBREVISION 0 - -/* - The 'zlib' compression library provides in-memory compression and - decompression functions, including integrity checks of the uncompressed data. - This version of the library supports only one compression method (deflation) - but other algorithms will be added later and will have the same stream - interface. - - Compression can be done in a single step if the buffers are large enough, - or can be done by repeated calls of the compression function. In the latter - case, the application must provide more input and/or consume the output - (providing more output space) before each call. - - The compressed data format used by default by the in-memory functions is - the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped - around a deflate stream, which is itself documented in RFC 1951. - - The library also supports reading and writing files in gzip (.gz) format - with an interface similar to that of stdio using the functions that start - with "gz". The gzip format is different from the zlib format. gzip is a - gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. - - This library can optionally read and write gzip streams in memory as well. - - The zlib format was designed to be compact and fast for use in memory - and on communications channels. The gzip format was designed for single- - file compression on file systems, has a larger header than zlib to maintain - directory information, and uses a different, slower check method than zlib. - - The library does not install any signal handler. The decoder checks - the consistency of the compressed data, so the library should never crash - even in case of corrupted input. -*/ - -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); - -struct internal_state; - -typedef struct z_stream_s { - z_const Bytef *next_in; /* next input byte */ - uInt avail_in; /* number of bytes available at next_in */ - uLong total_in; /* total number of input bytes read so far */ - - Bytef *next_out; /* next output byte should be put there */ - uInt avail_out; /* remaining free space at next_out */ - uLong total_out; /* total number of bytes output so far */ - - z_const char *msg; /* last error message, NULL if no error */ - struct internal_state FAR *state; /* not visible by applications */ - - alloc_func zalloc; /* used to allocate the internal state */ - free_func zfree; /* used to free the internal state */ - voidpf opaque; /* private data object passed to zalloc and zfree */ - - int data_type; /* best guess about the data type: binary or text */ - uLong adler; /* adler32 value of the uncompressed data */ - uLong reserved; /* reserved for future use */ -} z_stream; - -typedef z_stream FAR *z_streamp; - -/* - gzip header information passed to and from zlib routines. See RFC 1952 - for more details on the meanings of these fields. -*/ -typedef struct gz_header_s { - int text; /* true if compressed data believed to be text */ - uLong time; /* modification time */ - int xflags; /* extra flags (not used when writing a gzip file) */ - int os; /* operating system */ - Bytef *extra; /* pointer to extra field or Z_NULL if none */ - uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ - uInt extra_max; /* space at extra (only when reading header) */ - Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ - uInt name_max; /* space at name (only when reading header) */ - Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ - uInt comm_max; /* space at comment (only when reading header) */ - int hcrc; /* true if there was or will be a header crc */ - int done; /* true when done reading gzip header (not used - when writing a gzip file) */ -} gz_header; - -typedef gz_header FAR *gz_headerp; - -/* - The application must update next_in and avail_in when avail_in has dropped - to zero. It must update next_out and avail_out when avail_out has dropped - to zero. The application must initialize zalloc, zfree and opaque before - calling the init function. All other fields are set by the compression - library and must not be updated by the application. - - The opaque value provided by the application will be passed as the first - parameter for calls of zalloc and zfree. This can be useful for custom - memory management. The compression library attaches no meaning to the - opaque value. - - zalloc must return Z_NULL if there is not enough memory for the object. - If zlib is used in a multi-threaded application, zalloc and zfree must be - thread safe. - - On 16-bit systems, the functions zalloc and zfree must be able to allocate - exactly 65536 bytes, but will not be required to allocate more than this if - the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers - returned by zalloc for objects of exactly 65536 bytes *must* have their - offset normalized to zero. The default allocation function provided by this - library ensures this (see zutil.c). To reduce memory requirements and avoid - any allocation of 64K objects, at the expense of compression ratio, compile - the library with -DMAX_WBITS=14 (see zconf.h). - - The fields total_in and total_out can be used for statistics or progress - reports. After compression, total_in holds the total size of the - uncompressed data and may be saved for use in the decompressor (particularly - if the decompressor wants to decompress everything in a single step). -*/ - - /* constants */ - -#define Z_NO_FLUSH 0 -#define Z_PARTIAL_FLUSH 1 -#define Z_SYNC_FLUSH 2 -#define Z_FULL_FLUSH 3 -#define Z_FINISH 4 -#define Z_BLOCK 5 -#define Z_TREES 6 -/* Allowed flush values; see deflate() and inflate() below for details */ - -#define Z_OK 0 -#define Z_STREAM_END 1 -#define Z_NEED_DICT 2 -#define Z_ERRNO (-1) -#define Z_STREAM_ERROR (-2) -#define Z_DATA_ERROR (-3) -#define Z_MEM_ERROR (-4) -#define Z_BUF_ERROR (-5) -#define Z_VERSION_ERROR (-6) -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - -#define Z_NO_COMPRESSION 0 -#define Z_BEST_SPEED 1 -#define Z_BEST_COMPRESSION 9 -#define Z_DEFAULT_COMPRESSION (-1) -/* compression levels */ - -#define Z_FILTERED 1 -#define Z_HUFFMAN_ONLY 2 -#define Z_RLE 3 -#define Z_FIXED 4 -#define Z_DEFAULT_STRATEGY 0 -/* compression strategy; see deflateInit2() below for details */ - -#define Z_BINARY 0 -#define Z_TEXT 1 -#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ -#define Z_UNKNOWN 2 -/* Possible values of the data_type field (though see inflate()) */ - -#define Z_DEFLATED 8 -/* The deflate compression method (the only one supported in this version) */ - -#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ - -#define zlib_version zlibVersion() -/* for compatibility with versions < 1.0.2 */ - - - /* basic functions */ - -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); -/* The application can compare zlibVersion and ZLIB_VERSION for consistency. - If the first character differs, the library code actually used is not - compatible with the zlib.h header file used by the application. This check - is automatically made by deflateInit and inflateInit. - */ - -/* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); - - Initializes the internal stream state for compression. The fields - zalloc, zfree and opaque must be initialized before by the caller. If - zalloc and zfree are set to Z_NULL, deflateInit updates them to use default - allocation functions. - - The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: - 1 gives best speed, 9 gives best compression, 0 gives no compression at all - (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION - requests a default compromise between speed and compression (currently - equivalent to level 6). - - deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if level is not a valid compression level, or - Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible - with the version assumed by the caller (ZLIB_VERSION). msg is set to null - if there is no error message. deflateInit does not perform any compression: - this will be done by deflate(). -*/ - - -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); -/* - deflate compresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. deflate performs one or both of the - following actions: - - - Compress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in and avail_in are updated and - processing will resume at this point for the next call of deflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. This action is forced if the parameter flush is non zero. - Forcing flush frequently degrades the compression ratio, so this parameter - should be set only when necessary (in interactive applications). Some - output may be provided even if flush is not set. - - Before the call of deflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating avail_in or avail_out accordingly; avail_out should - never be zero before the call. The application can consume the compressed - output when it wants, for example when the output buffer is full (avail_out - == 0), or after each call of deflate(). If deflate returns Z_OK and with - zero avail_out, it must be called again after making room in the output - buffer because there might be more output pending. - - Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to - decide how much data to accumulate before producing output, in order to - maximize compression. - - If the parameter flush is set to Z_SYNC_FLUSH, all pending output is - flushed to the output buffer and the output is aligned on a byte boundary, so - that the decompressor can get all input data available so far. (In - particular avail_in is zero after the call if enough output space has been - provided before the call.) Flushing may degrade compression for some - compression algorithms and so it should be used only when necessary. This - completes the current deflate block and follows it with an empty stored block - that is three bits plus filler bits to the next byte, followed by four bytes - (00 00 ff ff). - - If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the - output buffer, but the output is not aligned to a byte boundary. All of the - input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. - This completes the current deflate block and follows it with an empty fixed - codes block that is 10 bits long. This assures that enough bytes are output - in order for the decompressor to finish the block before the empty fixed code - block. - - If flush is set to Z_BLOCK, a deflate block is completed and emitted, as - for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to - seven bits of the current block are held to be written as the next byte after - the next deflate block is completed. In this case, the decompressor may not - be provided enough bits at this point in order to complete decompression of - the data provided so far to the compressor. It may need to wait for the next - block to be emitted. This is for advanced applications that need to control - the emission of deflate blocks. - - If flush is set to Z_FULL_FLUSH, all output is flushed as with - Z_SYNC_FLUSH, and the compression state is reset so that decompression can - restart from this point if previous compressed data has been damaged or if - random access is desired. Using Z_FULL_FLUSH too often can seriously degrade - compression. - - If deflate returns with avail_out == 0, this function must be called again - with the same value of the flush parameter and more output space (updated - avail_out), until the flush is complete (deflate returns with non-zero - avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. - - If the parameter flush is set to Z_FINISH, pending input is processed, - pending output is flushed and deflate returns with Z_STREAM_END if there was - enough output space; if deflate returns with Z_OK, this function must be - called again with Z_FINISH and more output space (updated avail_out) but no - more input data, until it returns with Z_STREAM_END or an error. After - deflate has returned Z_STREAM_END, the only possible operations on the stream - are deflateReset or deflateEnd. - - Z_FINISH can be used immediately after deflateInit if all the compression - is to be done in a single step. In this case, avail_out must be at least the - value returned by deflateBound (see below). Then deflate is guaranteed to - return Z_STREAM_END. If not enough output space is provided, deflate will - not return Z_STREAM_END, and it must be called again as described above. - - deflate() sets strm->adler to the adler32 checksum of all input read - so far (that is, total_in bytes). - - deflate() may update strm->data_type if it can make a good guess about - the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered - binary. This field is only for information purposes and does not affect the - compression algorithm in any manner. - - deflate() returns Z_OK if some progress has been made (more input - processed or more output produced), Z_STREAM_END if all input has been - consumed and all output has been produced (only when flush is set to - Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible - (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not - fatal, and deflate() can be called again with more input and more output - space to continue compressing. -*/ - - -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the - stream state was inconsistent, Z_DATA_ERROR if the stream was freed - prematurely (some input or output was discarded). In the error case, msg - may be set but then points to a static string (which must not be - deallocated). -*/ - - -/* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); - - Initializes the internal stream state for decompression. The fields - next_in, avail_in, zalloc, zfree and opaque must be initialized before by - the caller. If next_in is not Z_NULL and avail_in is large enough (the - exact value depends on the compression method), inflateInit determines the - compression method from the zlib header and allocates all data structures - accordingly; otherwise the allocation will be deferred to the first call of - inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to - use default allocation functions. - - inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit() does not process any header information -- that is deferred - until inflate() is called. -*/ - - -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); -/* - inflate decompresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. inflate performs one or both of the - following actions: - - - Decompress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in is updated and processing will - resume at this point for the next call of inflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. inflate() provides as much output as possible, until there is - no more input data or no more space in the output buffer (see below about - the flush parameter). - - Before the call of inflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating the next_* and avail_* values accordingly. The - application can consume the uncompressed output when it wants, for example - when the output buffer is full (avail_out == 0), or after each call of - inflate(). If inflate returns Z_OK and with zero avail_out, it must be - called again after making room in the output buffer because there might be - more output pending. - - The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, - Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much - output as possible to the output buffer. Z_BLOCK requests that inflate() - stop if and when it gets to the next deflate block boundary. When decoding - the zlib or gzip format, this will cause inflate() to return immediately - after the header and before the first block. When doing a raw inflate, - inflate() will go ahead and process the first block, and will return when it - gets to the end of that block, or when it runs out of data. - - The Z_BLOCK option assists in appending to or combining deflate streams. - Also to assist in this, on return inflate() will set strm->data_type to the - number of unused bits in the last byte taken from strm->next_in, plus 64 if - inflate() is currently decoding the last block in the deflate stream, plus - 128 if inflate() returned immediately after decoding an end-of-block code or - decoding the complete header up to just before the first byte of the deflate - stream. The end-of-block will not be indicated until all of the uncompressed - data from that block has been written to strm->next_out. The number of - unused bits may in general be greater than seven, except when bit 7 of - data_type is set, in which case the number of unused bits will be less than - eight. data_type is set as noted here every time inflate() returns for all - flush options, and so can be used to determine the amount of currently - consumed input in bits. - - The Z_TREES option behaves as Z_BLOCK does, but it also returns when the - end of each deflate block header is reached, before any actual data in that - block is decoded. This allows the caller to determine the length of the - deflate block header for later use in random access within a deflate block. - 256 is added to the value of strm->data_type when inflate() returns - immediately after reaching the end of the deflate block header. - - inflate() should normally be called until it returns Z_STREAM_END or an - error. However if all decompression is to be performed in a single step (a - single call of inflate), the parameter flush should be set to Z_FINISH. In - this case all pending input is processed and all pending output is flushed; - avail_out must be large enough to hold all of the uncompressed data for the - operation to complete. (The size of the uncompressed data may have been - saved by the compressor for this purpose.) The use of Z_FINISH is not - required to perform an inflation in one step. However it may be used to - inform inflate that a faster approach can be used for the single inflate() - call. Z_FINISH also informs inflate to not maintain a sliding window if the - stream completes, which reduces inflate's memory footprint. If the stream - does not complete, either because not all of the stream is provided or not - enough output space is provided, then a sliding window will be allocated and - inflate() can be called again to continue the operation as if Z_NO_FLUSH had - been used. - - In this implementation, inflate() always flushes as much output as - possible to the output buffer, and always uses the faster approach on the - first call. So the effects of the flush parameter in this implementation are - on the return value of inflate() as noted below, when inflate() returns early - when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of - memory for a sliding window when Z_FINISH is used. - - If a preset dictionary is needed after this call (see inflateSetDictionary - below), inflate sets strm->adler to the Adler-32 checksum of the dictionary - chosen by the compressor and returns Z_NEED_DICT; otherwise it sets - strm->adler to the Adler-32 checksum of all output produced so far (that is, - total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described - below. At the end of the stream, inflate() checks that its computed adler32 - checksum is equal to that saved by the compressor and returns Z_STREAM_END - only if the checksum is correct. - - inflate() can decompress and check either zlib-wrapped or gzip-wrapped - deflate data. The header type is detected automatically, if requested when - initializing with inflateInit2(). Any information contained in the gzip - header is not retained, so applications that need that information should - instead use raw inflate, see inflateInit2() below, or inflateBack() and - perform their own processing of the gzip header and trailer. When processing - gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output - producted so far. The CRC-32 is checked against the gzip trailer. - - inflate() returns Z_OK if some progress has been made (more input processed - or more output produced), Z_STREAM_END if the end of the compressed data has - been reached and all uncompressed output has been produced, Z_NEED_DICT if a - preset dictionary is needed at this point, Z_DATA_ERROR if the input data was - corrupted (input stream not conforming to the zlib format or incorrect check - value), Z_STREAM_ERROR if the stream structure was inconsistent (for example - next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory, - Z_BUF_ERROR if no progress is possible or if there was not enough room in the - output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and - inflate() can be called again with more input and more output space to - continue decompressing. If Z_DATA_ERROR is returned, the application may - then call inflateSync() to look for a good compression block if a partial - recovery of the data is desired. -*/ - - -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state - was inconsistent. In the error case, msg may be set but then points to a - static string (which must not be deallocated). -*/ - - - /* Advanced functions */ - -/* - The following functions are needed only in some special applications. -*/ - -/* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); - - This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. - - The method parameter is the compression method. It must be Z_DEFLATED in - this version of the library. - - The windowBits parameter is the base two logarithm of the window size - (the size of the history buffer). It should be in the range 8..15 for this - version of the library. Larger values of this parameter result in better - compression at the expense of memory usage. The default value is 15 if - deflateInit is used instead. - - windowBits can also be -8..-15 for raw deflate. In this case, -windowBits - determines the window size. deflate() will then generate raw deflate data - with no zlib header or trailer, and will not compute an adler32 check value. - - windowBits can also be greater than 15 for optional gzip encoding. Add - 16 to windowBits to write a simple gzip header and trailer around the - compressed data instead of a zlib wrapper. The gzip header will have no - file name, no extra data, no comment, no modification time (set to zero), no - header crc, and the operating system will be set to 255 (unknown). If a - gzip stream is being written, strm->adler is a crc32 instead of an adler32. - - The memLevel parameter specifies how much memory should be allocated - for the internal compression state. memLevel=1 uses minimum memory but is - slow and reduces compression ratio; memLevel=9 uses maximum memory for - optimal speed. The default value is 8. See zconf.h for total memory usage - as a function of windowBits and memLevel. - - The strategy parameter is used to tune the compression algorithm. Use the - value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match), or Z_RLE to limit match distances to one (run-length - encoding). Filtered data consists mostly of small values with a somewhat - random distribution. In this case, the compression algorithm is tuned to - compress them better. The effect of Z_FILTERED is to force more Huffman - coding and less string matching; it is somewhat intermediate between - Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as - fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The - strategy parameter only affects the compression ratio but not the - correctness of the compressed output even if it is not set appropriately. - Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler - decoder for special applications. - - deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid - method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is - incompatible with the version assumed by the caller (ZLIB_VERSION). msg is - set to null if there is no error message. deflateInit2 does not perform any - compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the compression dictionary from the given byte sequence - without producing any compressed output. When using the zlib format, this - function must be called immediately after deflateInit, deflateInit2 or - deflateReset, and before any call of deflate. When doing raw deflate, this - function must be called either before any call of deflate, or immediately - after the completion of a deflate block, i.e. after all input has been - consumed and all output has been delivered when using any of the flush - options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The - compressor and decompressor must use exactly the same dictionary (see - inflateSetDictionary). - - The dictionary should consist of strings (byte sequences) that are likely - to be encountered later in the data to be compressed, with the most commonly - used strings preferably put towards the end of the dictionary. Using a - dictionary is most useful when the data to be compressed is short and can be - predicted with good accuracy; the data can then be compressed better than - with the default empty dictionary. - - Depending on the size of the compression data structures selected by - deflateInit or deflateInit2, a part of the dictionary may in effect be - discarded, for example if the dictionary is larger than the window size - provided in deflateInit or deflateInit2. Thus the strings most likely to be - useful should be put at the end of the dictionary, not at the front. In - addition, the current implementation of deflate will use at most the window - size minus 262 bytes of the provided dictionary. - - Upon return of this function, strm->adler is set to the adler32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The adler32 value - applies to the whole dictionary even if only a subset of the dictionary is - actually used by the compressor.) If a raw deflate was requested, then the - adler32 value is not computed and strm->adler is not set. - - deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent (for example if deflate has already been called for this stream - or if not at a block boundary for raw deflate). deflateSetDictionary does - not perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when several compression strategies will be - tried, for example when there are several ways of pre-processing the input - data with a filter. The streams that will be discarded should then be freed - by calling deflateEnd. Note that deflateCopy duplicates the internal - compression state which can be quite large, so this strategy is slow and can - consume lots of memory. - - deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); -/* - This function is equivalent to deflateEnd followed by deflateInit, - but does not free and reallocate all the internal compression state. The - stream will keep the same compression level and any other attributes that - may have been set by deflateInit2. - - deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); -/* - Dynamically update the compression level and compression strategy. The - interpretation of level and strategy is as in deflateInit2. This can be - used to switch between compression and straight copy of the input data, or - to switch to a different kind of input data requiring a different strategy. - If the compression level is changed, the input available so far is - compressed with the old level (and may be flushed); the new level will take - effect only at the next call of deflate(). - - Before the call of deflateParams, the stream state must be set as for - a call of deflate(), since the currently available input may have to be - compressed and flushed. In particular, strm->avail_out must be non-zero. - - deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source - stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if - strm->avail_out was zero. -*/ - -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); -/* - Fine tune deflate's internal compression parameters. This should only be - used by someone who understands the algorithm used by zlib's deflate for - searching for the best matching string, and even then only by the most - fanatic optimizer trying to squeeze out the last compressed bit for their - specific input data. Read the deflate.c source code for the meaning of the - max_lazy, good_length, nice_length, and max_chain parameters. - - deflateTune() can be called after deflateInit() or deflateInit2(), and - returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. - */ - -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); -/* - deflateBound() returns an upper bound on the compressed size after - deflation of sourceLen bytes. It must be called after deflateInit() or - deflateInit2(), and after deflateSetHeader(), if used. This would be used - to allocate an output buffer for deflation in a single pass, and so would be - called before deflate(). If that first deflate() call is provided the - sourceLen input bytes, an output buffer allocated to the size returned by - deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed - to return Z_STREAM_END. Note that it is possible for the compressed size to - be larger than the value returned by deflateBound() if flush options other - than Z_FINISH or Z_NO_FLUSH are used. -*/ - -ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, - unsigned *pending, - int *bits)); -/* - deflatePending() returns the number of bytes and bits of output that have - been generated, but not yet provided in the available output. The bytes not - provided would be due to the available output space having being consumed. - The number of bits of output not provided are between 0 and 7, where they - await more bits to join them in order to fill out a full byte. If pending - or bits are Z_NULL, then those values are not set. - - deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. - */ - -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - deflatePrime() inserts bits in the deflate output stream. The intent - is that this function is used to start off the deflate output with the bits - leftover from a previous deflate stream when appending to it. As such, this - function can only be used for raw deflate, and must be used before the first - deflate() call after a deflateInit2() or deflateReset(). bits must be less - than or equal to 16, and that many of the least significant bits of value - will be inserted in the output. - - deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough - room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); -/* - deflateSetHeader() provides gzip header information for when a gzip - stream is requested by deflateInit2(). deflateSetHeader() may be called - after deflateInit2() or deflateReset() and before the first call of - deflate(). The text, time, os, extra field, name, and comment information - in the provided gz_header structure are written to the gzip header (xflag is - ignored -- the extra flags are set according to the compression level). The - caller must assure that, if not Z_NULL, name and comment are terminated with - a zero byte, and that if extra is not Z_NULL, that extra_len bytes are - available there. If hcrc is true, a gzip header crc is included. Note that - the current versions of the command-line version of gzip (up through version - 1.3.x) do not support header crc's, and will report that it is a "multi-part - gzip file" and give up. - - If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). - - deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); - - This is another version of inflateInit with an extra parameter. The - fields next_in, avail_in, zalloc, zfree and opaque must be initialized - before by the caller. - - The windowBits parameter is the base two logarithm of the maximum window - size (the size of the history buffer). It should be in the range 8..15 for - this version of the library. The default value is 15 if inflateInit is used - instead. windowBits must be greater than or equal to the windowBits value - provided to deflateInit2() while compressing, or it must be equal to 15 if - deflateInit2() was not used. If a compressed stream with a larger window - size is given as input, inflate() will return with the error code - Z_DATA_ERROR instead of trying to allocate a larger window. - - windowBits can also be zero to request that inflate use the window size in - the zlib header of the compressed stream. - - windowBits can also be -8..-15 for raw inflate. In this case, -windowBits - determines the window size. inflate() will then process raw deflate data, - not looking for a zlib or gzip header, not generating a check value, and not - looking for any check values for comparison at the end of the stream. This - is for use with other formats that use the deflate compressed data format - such as zip. Those formats provide their own check values. If a custom - format is developed using the raw deflate format for compressed data, it is - recommended that a check value such as an adler32 or a crc32 be applied to - the uncompressed data as is done in the zlib, gzip, and zip formats. For - most applications, the zlib format should be used as is. Note that comments - above on the use in deflateInit2() applies to the magnitude of windowBits. - - windowBits can also be greater than 15 for optional gzip decoding. Add - 32 to windowBits to enable zlib and gzip decoding with automatic header - detection, or add 16 to decode only the gzip format (the zlib format will - return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a - crc32 instead of an adler32. - - inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit2 does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit2() does not process any header information -- that is - deferred until inflate() is called. -*/ - -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the decompression dictionary from the given uncompressed byte - sequence. This function must be called immediately after a call of inflate, - if that call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the adler32 value returned by that call of inflate. - The compressor and decompressor must use exactly the same dictionary (see - deflateSetDictionary). For raw inflate, this function can be called at any - time to set the dictionary. If the provided dictionary is smaller than the - window and there is already data in the window, then the provided dictionary - will amend what's there. The application must insure that the dictionary - that was used for compression is provided. - - inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the - expected one (incorrect adler32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); -/* - Returns the sliding dictionary being maintained by inflate. dictLength is - set to the number of bytes in the dictionary, and that many bytes are copied - to dictionary. dictionary must have enough space, where 32768 bytes is - always enough. If inflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. - - inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the - stream state is inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); -/* - Skips invalid compressed data until a possible full flush point (see above - for the description of deflate with Z_FULL_FLUSH) can be found, or until all - available input is skipped. No output is provided. - - inflateSync searches for a 00 00 FF FF pattern in the compressed data. - All full flush points have this pattern, but not all occurrences of this - pattern are full flush points. - - inflateSync returns Z_OK if a possible full flush point has been found, - Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point - has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. - In the success case, the application may save the current current value of - total_in which indicates where valid compressed data was found. In the - error case, the application may repeatedly call inflateSync, providing more - input each time, until success or end of the input data. -*/ - -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when randomly accessing a large stream. The - first pass through the stream can periodically record the inflate state, - allowing restarting inflate at those points when randomly accessing the - stream. - - inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); -/* - This function is equivalent to inflateEnd followed by inflateInit, - but does not free and reallocate all the internal decompression state. The - stream will keep attributes that may have been set by inflateInit2. - - inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); -/* - This function is the same as inflateReset, but it also permits changing - the wrap and window size requests. The windowBits parameter is interpreted - the same as it is for inflateInit2. - - inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL), or if - the windowBits parameter is invalid. -*/ - -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - This function inserts bits in the inflate input stream. The intent is - that this function is used to start inflating at a bit position in the - middle of a byte. The provided bits will be used before any bytes are used - from next_in. This function should only be used with raw inflate, and - should be used before the first inflate() call after inflateInit2() or - inflateReset(). bits must be less than or equal to 16, and that many of the - least significant bits of value will be inserted in the input. - - If bits is negative, then the input stream bit buffer is emptied. Then - inflatePrime() can be called again to put bits in the buffer. This is used - to clear out bits leftover after feeding inflate a block description prior - to feeding inflate codes. - - inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); -/* - This function returns two values, one in the lower 16 bits of the return - value, and the other in the remaining upper bits, obtained by shifting the - return value down 16 bits. If the upper value is -1 and the lower value is - zero, then inflate() is currently decoding information outside of a block. - If the upper value is -1 and the lower value is non-zero, then inflate is in - the middle of a stored block, with the lower value equaling the number of - bytes from the input remaining to copy. If the upper value is not -1, then - it is the number of bits back from the current bit position in the input of - the code (literal or length/distance pair) currently being processed. In - that case the lower value is the number of bytes already emitted for that - code. - - A code is being processed if inflate is waiting for more input to complete - decoding of the code, or if it has completed decoding but is waiting for - more output space to write the literal or match data. - - inflateMark() is used to mark locations in the input data for random - access, which may be at bit positions, and to note those cases where the - output of a code may span boundaries of random access blocks. The current - location in the input stream can be determined from avail_in and data_type - as noted in the description for the Z_BLOCK flush parameter for inflate. - - inflateMark returns the value noted above or -1 << 16 if the provided - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); -/* - inflateGetHeader() requests that gzip header information be stored in the - provided gz_header structure. inflateGetHeader() may be called after - inflateInit2() or inflateReset(), and before the first call of inflate(). - As inflate() processes the gzip stream, head->done is zero until the header - is completed, at which time head->done is set to one. If a zlib stream is - being decoded, then head->done is set to -1 to indicate that there will be - no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be - used to force inflate() to return immediately after header processing is - complete and before any actual data is decompressed. - - The text, time, xflags, and os fields are filled in with the gzip header - contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max - contains the maximum number of bytes to write to extra. Once done is true, - extra_len contains the actual extra field length, and extra contains the - extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, - terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, - terminated with a zero unless the length is greater than comm_max. When any - of extra, name, or comment are not Z_NULL and the respective field is not - present in the header, then that field is set to Z_NULL to signal its - absence. This allows the use of deflateSetHeader() with the returned - structure to duplicate the header. However if those fields are set to - allocated memory, then the application will need to save those pointers - elsewhere so that they can be eventually freed. - - If inflateGetHeader is not used, then the header information is simply - discarded. The header is always checked for validity, including the header - CRC if present. inflateReset() will reset the process to discard the header - information. The application would need to call inflateGetHeader() again to - retrieve the header from the next gzip stream. - - inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); - - Initialize the internal stream state for decompression using inflateBack() - calls. The fields zalloc, zfree and opaque in strm must be initialized - before the call. If zalloc and zfree are Z_NULL, then the default library- - derived memory allocation routines are used. windowBits is the base two - logarithm of the window size, in the range 8..15. window is a caller - supplied buffer of that size. Except for special applications where it is - assured that deflate was used with small window sizes, windowBits must be 15 - and a 32K byte window must be supplied to be able to decompress general - deflate streams. - - See inflateBack() for the usage of these routines. - - inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of - the parameters are invalid, Z_MEM_ERROR if the internal state could not be - allocated, or Z_VERSION_ERROR if the version of the library does not match - the version of the header file. -*/ - -typedef unsigned (*in_func) OF((void FAR *, - z_const unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); - -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); -/* - inflateBack() does a raw inflate with a single call using a call-back - interface for input and output. This is potentially more efficient than - inflate() for file i/o applications, in that it avoids copying between the - output and the sliding window by simply making the window itself the output - buffer. inflate() can be faster on modern CPUs when used with large - buffers. inflateBack() trusts the application to not change the output - buffer passed by the output function, at least until inflateBack() returns. - - inflateBackInit() must be called first to allocate the internal state - and to initialize the state with the user-provided window buffer. - inflateBack() may then be used multiple times to inflate a complete, raw - deflate stream with each call. inflateBackEnd() is then called to free the - allocated state. - - A raw deflate stream is one with no zlib or gzip header or trailer. - This routine would normally be used in a utility that reads zip or gzip - files and writes out uncompressed files. The utility would decode the - header and process the trailer on its own, hence this routine expects only - the raw deflate stream to decompress. This is different from the normal - behavior of inflate(), which expects either a zlib or gzip header and - trailer around the deflate stream. - - inflateBack() uses two subroutines supplied by the caller that are then - called by inflateBack() for input and output. inflateBack() calls those - routines until it reads a complete deflate stream and writes out all of the - uncompressed data, or until it encounters an error. The function's - parameters and return types are defined above in the in_func and out_func - typedefs. inflateBack() will call in(in_desc, &buf) which should return the - number of bytes of provided input, and a pointer to that input in buf. If - there is no input available, in() must return zero--buf is ignored in that - case--and inflateBack() will return a buffer error. inflateBack() will call - out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() - should return zero on success, or non-zero on failure. If out() returns - non-zero, inflateBack() will return with an error. Neither in() nor out() - are permitted to change the contents of the window provided to - inflateBackInit(), which is also the buffer that out() uses to write from. - The length written by out() will be at most the window size. Any non-zero - amount of input may be provided by in(). - - For convenience, inflateBack() can be provided input on the first call by - setting strm->next_in and strm->avail_in. If that input is exhausted, then - in() will be called. Therefore strm->next_in must be initialized before - calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called - immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in - must also be initialized, and then if strm->avail_in is not zero, input will - initially be taken from strm->next_in[0 .. strm->avail_in - 1]. - - The in_desc and out_desc parameters of inflateBack() is passed as the - first parameter of in() and out() respectively when they are called. These - descriptors can be optionally used to pass any information that the caller- - supplied in() and out() functions need to do their job. - - On return, inflateBack() will set strm->next_in and strm->avail_in to - pass back any unused input that was provided by the last in() call. The - return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR - if in() or out() returned an error, Z_DATA_ERROR if there was a format error - in the deflate stream (in which case strm->msg is set to indicate the nature - of the error), or Z_STREAM_ERROR if the stream was not properly initialized. - In the case of Z_BUF_ERROR, an input or output error can be distinguished - using strm->next_in which will be Z_NULL only if in() returned an error. If - strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning - non-zero. (in() will always be called before out(), so strm->next_in is - assured to be defined if out() returns non-zero.) Note that inflateBack() - cannot return Z_OK. -*/ - -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); -/* - All memory allocated by inflateBackInit() is freed. - - inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream - state was inconsistent. -*/ - -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); -/* Return flags indicating compile-time options. - - Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: - 1.0: size of uInt - 3.2: size of uLong - 5.4: size of voidpf (pointer) - 7.6: size of z_off_t - - Compiler, assembler, and debug options: - 8: DEBUG - 9: ASMV or ASMINF -- use ASM code - 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention - 11: 0 (reserved) - - One-time table building (smaller code, but not thread-safe if true): - 12: BUILDFIXED -- build static block decoding tables when needed - 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed - 14,15: 0 (reserved) - - Library content (indicates missing functionality): - 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking - deflate code when not needed) - 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect - and decode gzip streams (to avoid linking crc code) - 18-19: 0 (reserved) - - Operation variations (changes in library functionality): - 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate - 21: FASTEST -- deflate algorithm with only one, lowest compression level - 22,23: 0 (reserved) - - The sprintf variant used by gzprintf (zero is best): - 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format - 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! - 26: 0 = returns value, 1 = void -- 1 means inferred string length returned - - Remainder: - 27-31: 0 (reserved) - */ - -#ifndef Z_SOLO - - /* utility functions */ - -/* - The following utility functions are implemented on top of the basic - stream-oriented functions. To simplify the interface, some default options - are assumed (compression level and memory usage, standard memory allocation - functions). The source code of these utility functions can be modified if - you need special options. -*/ - -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Compresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer. -*/ - -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); -/* - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ - -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); -/* - compressBound() returns an upper bound on the compressed size after - compress() or compress2() on sourceLen bytes. It would be used before a - compress() or compress2() call to allocate the destination buffer. -*/ - -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be large enough to hold the entire - uncompressed data. (The size of the uncompressed data must have been saved - previously by the compressor and transmitted to the decompressor by some - mechanism outside the scope of this compression library.) Upon exit, destLen - is the actual size of the uncompressed buffer. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In - the case where there is not enough room, uncompress() will fill the output - buffer with the uncompressed data up to that point. -*/ - - /* gzip file access functions */ - -/* - This library supports reading and writing files in gzip (.gz) format with - an interface similar to that of stdio, using the functions that start with - "gz". The gzip format is different from the zlib format. gzip is a gzip - wrapper, documented in RFC 1952, wrapped around a deflate stream. -*/ - -typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ - -/* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); - - Opens a gzip (.gz) file for reading or writing. The mode parameter is as - in fopen ("rb" or "wb") but can also include a compression level ("wb9") or - a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only - compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) 'T' will - request transparent writing or appending with no compression and not using - the gzip format. - - "a" can be used instead of "w" to request that the gzip stream that will - be written be appended to the file. "+" will result in an error, since - reading and writing to the same gzip file is not supported. The addition of - "x" when writing will create the file exclusively, which fails if the file - already exists. On systems that support it, the addition of "e" when - reading or writing will set the flag to close the file on an execve() call. - - These functions, as well as gzip, will read and decode a sequence of gzip - streams in a file. The append function of gzopen() can be used to create - such a file. (Also see gzflush() for another way to do this.) When - appending, gzopen does not test whether the file begins with a gzip stream, - nor does it look for the end of the gzip streams to begin appending. gzopen - will simply append a gzip stream to the existing file. - - gzopen can be used to read a file which is not in gzip format; in this - case gzread will directly read from the file without decompression. When - reading, this will be detected automatically by looking for the magic two- - byte gzip header. - - gzopen returns NULL if the file could not be opened, if there was - insufficient memory to allocate the gzFile state, or if an invalid mode was - specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). - errno can be checked to determine if the reason gzopen failed was that the - file could not be opened. -*/ - -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); -/* - gzdopen associates a gzFile with the file descriptor fd. File descriptors - are obtained from calls like open, dup, creat, pipe or fileno (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. - - The next call of gzclose on the returned gzFile will also close the file - descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor - fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, - mode);. The duplicated descriptor should be saved to avoid a leak, since - gzdopen does not close fd if it fails. If you are using fileno() to get the - file descriptor from a FILE *, then you will have to use dup() to avoid - double-close()ing the file descriptor. Both gzclose() and fclose() will - close the associated file descriptor, so they need to have different file - descriptors. - - gzdopen returns NULL if there was insufficient memory to allocate the - gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not - provided, or '+' was provided), or if fd is -1. The file descriptor is not - used until the next gz* read, write, seek, or close operation, so gzdopen - will not detect if fd is invalid (unless fd is -1). -*/ - -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); -/* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Two buffers are allocated, either both of the specified size when - writing, or one of the specified size and the other twice that size when - reading. A larger buffer size of, for example, 64K or 128K bytes will - noticeably increase the speed of decompression (reading). - - The new buffer size also affects the maximum length for gzprintf(). - - gzbuffer() returns 0 on success, or -1 on failure, such as being called - too late. -*/ - -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); -/* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. - - gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not - opened for writing. -*/ - -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); -/* - Reads the given number of uncompressed bytes from the compressed file. If - the input file is not in gzip format, gzread copies the given number of - bytes into the buffer directly from the file. - - After reaching the end of a gzip stream in the input, gzread will continue - to read, looking for another gzip stream. Any number of gzip streams may be - concatenated in the input file, and will all be decompressed by gzread(). - If something other than a gzip stream is encountered after a gzip stream, - that remaining trailing garbage is ignored (and no error is returned). - - gzread can be used to read a gzip file that is being concurrently written. - Upon reaching the end of the input, gzread will return with the available - data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then - gzclearerr can be used to clear the end of file indicator in order to permit - gzread to be tried again. Z_OK indicates that a gzip stream was completed - on the last gzread. Z_BUF_ERROR indicates that the input file ended in the - middle of a gzip stream. Note that gzread does not return -1 in the event - of an incomplete gzip stream. This error is deferred until gzclose(), which - will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip - stream. Alternatively, gzerror can be used before gzclose to detect this - case. - - gzread returns the number of uncompressed bytes actually read, less than - len for end of file, or -1 for error. -*/ - -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); -/* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. -*/ - -ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); -/* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written, or 0 in case of error. The number of - uncompressed bytes written is limited to 8191, or one less than the buffer - size given to gzbuffer(). The caller should assure that this limit is not - exceeded. If it is exceeded, then gzprintf() will return an error (0) with - nothing written. In this case, there may also be a buffer overflow with - unpredictable consequences, which is possible only if zlib was compiled with - the insecure functions sprintf() or vsprintf() because the secure snprintf() - or vsnprintf() functions were not available. This can be determined using - zlibCompileFlags(). -*/ - -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); -/* - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - - gzputs returns the number of characters written, or -1 in case of error. -*/ - -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); -/* - Reads bytes from the compressed file until len-1 characters are read, or a - newline character is read and transferred to buf, or an end-of-file - condition is encountered. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. - - gzgets returns buf which is a null-terminated string, or it returns NULL - for end-of-file or in case of error. If there was an error, the contents at - buf are indeterminate. -*/ - -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); -/* - Writes c, converted to an unsigned char, into the compressed file. gzputc - returns the value that was written, or -1 in case of error. -*/ - -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); -/* - Reads one byte from the compressed file. gzgetc returns this byte or -1 - in case of end of file or error. This is implemented as a macro for speed. - As such, it does not do all of the checking the other functions do. I.e. - it does not check to see if file is NULL, nor whether the structure file - points to has been clobbered or not. -*/ - -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); -/* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. - gzungetc() returns the character pushed, or -1 on failure. gzungetc() will - fail if c is -1, and may fail if a character has been pushed but not read - yet. If gzungetc is used immediately after gzopen or gzdopen, at least the - output buffer size of pushed characters is allowed. (See gzbuffer above.) - The pushed character will be discarded if the stream is repositioned with - gzseek() or gzrewind(). -*/ - -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); -/* - Flushes all pending output into the compressed file. The parameter flush - is as in the deflate() function. The return value is the zlib error number - (see function gzerror below). gzflush is only permitted when writing. - - If the flush parameter is Z_FINISH, the remaining data is written and the - gzip stream is completed in the output. If gzwrite() is called again, a new - gzip stream will be started in the output. gzread() is able to read such - concatented gzip streams. - - gzflush should be called only when strictly necessary because it will - degrade compression if called too often. -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); - - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the - uncompressed data stream. The whence parameter is defined as in lseek(2); - the value SEEK_END is not supported. - - If the file is opened for reading, this function is emulated but can be - extremely slow. If the file is opened for writing, only forward seeks are - supported; gzseek then compresses a sequence of zeroes up to the new - starting position. - - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error, in - particular if the file is opened for writing and the new starting position - would be before the current position. -*/ - -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); -/* - Rewinds the given file. This function is supported only for reading. - - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); - - Returns the starting position for the next gzread or gzwrite on the given - compressed file. This position represents a number of bytes in the - uncompressed data stream, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). - - gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); - - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. -*/ - -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); -/* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. - - If gzeof() returns true, then the read functions will return no more data, - unless the end-of-file indicator is reset by gzclearerr() and the input file - has grown since the previous end of file was detected. -*/ - -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); -/* - Returns true (1) if file is being copied directly while reading, or false - (0) if file is a gzip stream being decompressed. - - If the input file is empty, gzdirect() will return true, since the input - does not contain a gzip stream. - - If gzdirect() is used immediately after gzopen() or gzdopen() it will - cause buffers to be allocated to allow reading the file to determine if it - is a gzip file. Therefore if gzbuffer() is used, it should be called before - gzdirect(). - - When writing, gzdirect() returns true (1) if transparent writing was - requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note: - gzdirect() is not needed when writing. Transparent writing must be - explicitly requested, so the application already knows the answer. When - linking statically, using gzdirect() will include all of the zlib code for - gzip file reading and decompression, which may not be desired.) -*/ - -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); -/* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you - cannot call gzerror with file, since its structures have been deallocated. - gzclose must not be called more than once on the same file, just as free - must not be called more than once on the same allocation. - - gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a - file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the - last read ended in the middle of a gzip stream, or Z_OK on success. -*/ - -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); -/* - Same as gzclose(), but gzclose_r() is only for use when reading, and - gzclose_w() is only for use when writing or appending. The advantage to - using these instead of gzclose() is that they avoid linking in zlib - compression or decompression code that is not used when only reading or only - writing respectively. If gzclose() is used, then both compression and - decompression code will be included the application when linking to a static - zlib library. -*/ - -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); -/* - Returns the error message for the last error which occurred on the given - compressed file. errnum is set to zlib error number. If an error occurred - in the file system and not in the compression library, errnum is set to - Z_ERRNO and the application may consult errno to get the exact error code. - - The application must not modify the returned string. Future calls to - this function may invalidate the previously returned string. If file is - closed, then the string previously returned by gzerror will no longer be - available. - - gzerror() should be used to distinguish errors from end-of-file for those - functions above that do not distinguish those cases in their return values. -*/ - -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); -/* - Clears the error and end-of-file flags for file. This is analogous to the - clearerr() function in stdio. This is useful for continuing to read a gzip - file that is being written concurrently. -*/ - -#endif /* !Z_SOLO */ - - /* checksum functions */ - -/* - These functions are not related to compression but are exported - anyway because they might be useful in applications using the compression - library. -*/ - -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); -/* - Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is Z_NULL, this function returns the - required initial value for the checksum. - - An Adler-32 checksum is almost as reliable as a CRC32 but can be computed - much faster. - - Usage example: - - uLong adler = adler32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - adler = adler32(adler, buffer, length); - } - if (adler != original_adler) error(); -*/ - -/* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); - - Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 - and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for - each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of - seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note - that the z_off_t type (like off_t) is a signed integer. If len2 is - negative, the result has no meaning or utility. -*/ - -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); -/* - Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_NULL, this function returns the required - initial value for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. - - Usage example: - - uLong crc = crc32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - crc = crc32(crc, buffer, length); - } - if (crc != original_crc) error(); -*/ - -/* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); - - Combine two CRC-32 check values into one. For two sequences of bytes, - seq1 and seq2 with lengths len1 and len2, CRC-32 check values were - calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 - check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and - len2. -*/ - - - /* various hacks, don't look :) */ - -/* deflateInit and inflateInit are macros to allow checking the zlib version - * and the compiler's view of z_stream: - */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); -#define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -#define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -#define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -#define inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) - -#ifndef Z_SOLO - -/* gzgetc() macro and its supporting function and exposed data structure. Note - * that the real internal state is much larger than the exposed structure. - * This abbreviated structure exposes just enough for the gzgetc() macro. The - * user should not mess with these exposed elements, since their names or - * behavior could change in the future, perhaps even capriciously. They can - * only be used by the gzgetc() macro. You have been warned. - */ -struct gzFile_s { - unsigned have; - unsigned char *next; - z_off64_t pos; -}; -ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ -#ifdef Z_PREFIX_SET -# undef z_gzgetc -# define z_gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) -#else -# define gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) -#endif - -/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or - * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if - * both are true, the application gets the *64 functions, and the regular - * functions are changed to 64 bits) -- in case these are set on systems - * without large file support, _LFS64_LARGEFILE must also be true - */ -#ifdef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); -#endif - -#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) -# ifdef Z_PREFIX_SET -# define z_gzopen z_gzopen64 -# define z_gzseek z_gzseek64 -# define z_gztell z_gztell64 -# define z_gzoffset z_gzoffset64 -# define z_adler32_combine z_adler32_combine64 -# define z_crc32_combine z_crc32_combine64 -# else -# define gzopen gzopen64 -# define gzseek gzseek64 -# define gztell gztell64 -# define gzoffset gzoffset64 -# define adler32_combine adler32_combine64 -# define crc32_combine crc32_combine64 -# endif -# ifndef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); -# endif -#else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); -#endif - -#else /* Z_SOLO */ - - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - -#endif /* !Z_SOLO */ - -/* hack for buggy compilers */ -#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) - struct internal_state {int dummy;}; -#endif - -/* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if defined(_WIN32) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); -#endif -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, - const char *format, - va_list va)); -# endif -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* ZLIB_H */ diff --git a/lib/windows/libpng16.lib b/lib/windows/libpng16.lib deleted file mode 100644 index 0732a57795669fbdd87f190418cab378a1a2acf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1439808 zcmeEv3z%d@b^q<%VOeK^*%d@YA_I<y$YW-AXW0d0?(M$aeY^YigM9!Z+S}99v(xOn zoX0+pzYZ=-ScfHQj3H<e5)3h75+h0wh%S!+J_0H}(J100D5wM#ks$m3ol|w|*1dgu zX0|tAlFvI|Pu)8A)TwvXsZ*y;op4TNqB?YL`x%|Vr)Tx*o}S)S-D_6{;oZ`UFKf@_ z_s#8wvG^#%_*vWUe=krOEc)uBDB`96=YMV6?lI>4U4!p0<nM>B(f0e_3t9$C);(bS z{`b2ngQYt+8vj>*?W;d+H2gBp8129R%~=MAo%W3JJNtd@I^(c|_#J+1%J}_HD}!IG zHxB<F@;l<%Cyd|!eqRRvO>LmBubeQ;-Q9^osSvlEgxS|+S*9Vuy%{T$Eak17+0(ar zW#8(xfv@p|nah;YIVYPjx7K!UADbBH>z$gI9<5fUY6C&kq?w94@uFop=2Y^+slHXf ztnHY>|FN;Y-r=#)EkXRWnX-zBWYR5~^^F3*KDw<kTt^gMTzX352oO(O`C>k9jwdXa zBA72gy5wfFZZ2-t6N%D70_3f9A!oZK^U?(-DPKxkR<`7rnM9(mcYI=Ous&Rqd7c~^ zo0tk`x=<>{lf`5~71DfpC?!)?!OrE)$&$Nq{yb#OjFrn}(x~X_*vR-qZE_Md)jLp` zsx+;NoM~qgPBCGp8mq!1QXd-)W+i84lUA`{7t>||6|Ay8I5vTbq4Msn4o#144Tf^f zR3??S5@>?Mwb3n8Lw&uq9o1TGV6v~bR7m&rj#PHkN2W)Dq4H)ifu@4GF$Zdc!)ScT zQDkbcg2IN|*OkcBw~UTWP@7C-gJBD1G9J$-3z?Le@!Hp9JhKsHQX8lEC&z2m`d~fW zo{MI|Ddz1|F71ay<xbU*y{Vn!sN^OAOJ>&27u`Z4)!2&k(iBwmCZ4d&Y${W*Ei@06 z*8V#BkW4C<?fP^a1w2yOQVV1>5jW$RbRu4IT`h2>x^>IM*ff>acxAXYHHCE7M+a&< z)CfS~+*CZ9Dq5=c(ZRL06Y9o#$V?%XkGpQ%kFh?A5*n^lsS^ZCNe`DxC5l<MpjAm! zHZ7S?KcsEOQ6+IJuSLiu(OVrGriK@YGZ3zX>O><lFDe&veZ6SSy%&{H*qIGZU+?xh zHH5M0sqtwP_T+d)51CA);_-}=_D4W8vP553((2(Cj6?kuly7yYGEu2=`{-NSy@L>R zGC9jCq|h?_lzU}NU8`BblV;k9+v!p!Z6+$CeQS}t?GtsX#Yq|ix#{;$4-Rsxq=9yF zL`!_qbn?YyB8fr4Yx<+pBmIOtHi#5cnW5v=5kIvKKe;J0mvGW<Hlx*SLk-CWg{;^8 zkmxOz?Pe0L)@`QhBZ2PH%k6k7lTY^b>LFdrEoEKDGB=G*)T(1!M(dYS_nsc5E+A@_ zLyo0VNVOiakdHgXWLnE-Lu$87RCZ2Qk;`C6Ojz-FI$fME&T;3BfjAvAn@HK2WG-AU zQ|k*GycUHT>#Yor4`Jx7`pM0hiFBfnE1*tQwM=rao~WT~PSi0~qE4o2qudz%fH^ZA zPoz_JA{R<+?XA<5DXkfCDUJI9^Jc1)%;lV<*81ispss}Lhb@{p7aTw_=_giiLqqk+ zsWFu82nO=esR=(^$t<O^@l*oyw#ua*aB8A5ik^lnBbU`N70|ZKQaqn7X2E>aCMKv; zQ;X+9sf<?Z!^4${oz&Yfw@~Zw1IEpSmCf097NciiHuh$ky4MM4!WbPxynf(}nJnfr z$pm7}&{V?lO`u?FlhpXovt++RU1B0ms*vdA>3k+tEK%XAkQI!yBjdr4qGk9E0U@)Q zd?}mCq210IvS&@-I@FgQXCYNAx@jjfPssjU+SVH%;w+`J>1-;6o_#=Zmds2tpSB8a z(xmZXdJ-L}9~F_Yt&M?+sAT4{8OMpcwn=DQke5zQP1Mjvc(yB->ywpoWgBMiO8;=J zj48b`Jv?QU%R5F!%x-?x3a7i#)zNw+R)j0j2IqN<@zE`1Zy+vHUKlbkR_5w1tLcov zgA=t{Sq!)3VKjUOPFA+n%F{qB_pAv4R;^@!AeBiLY~AbF>oqU6Da}jurg^K*`h0n? zzN0pv1E~vy{bl0x8h{vA8eo%Cl?jmpk-kCj1&D(<91R!H`s7e~Vr;tx++yXehU5%o zHi*KLB?lHz3qm};=A|KA^Aba^dokE*USijDFObWD?<hR|JH}GoTi>GlDA%Fv(0WBf zp@~WNVnEltv@&3?Y9l<7VaOffF?iBjTCGgy!B@o#=Jx(T|5#JVy2*ShO)IW7eXDyy zOD@-R^YK(Elg}|<O-&LL50xn<1fCZ#7V#=WXB`nuDj82@-AoB{!`9KU?ZB;0V{FF2 z?6IvQwW*=8;Ia)YXEIr^@^*%1Kp75|?FZtyM276`4&;RRRVQy})A5W+{fL=T*>Py4 z0)|R38Y8ulF$~&zf)fcdZ@VccQOcSZc;ow}wTZF5b>47|)-CgahOWjwuyBbY%CC@0 zn4>5P!T7Bksf;7dG+X$9ahf0MBYx17884RNrBo)vL6J`st(Yv4eA#XVKglD$9@0(6 zOZiLzt5xD~M=Qf>Mo{%n%iJyXDrQ1GVBXH>N+~<dMWn}p67p$*GXX^{ASQdTtA%*7 z)KIolW7JP;+G5a;FK1@#eA>1W85HXnF^WOH-&=3-usk~L2XswvxrMA_JLdUf6|Mr( zG+3v_l`Jb-Naz7eg)HX!WHBnClT!orF+Zh#u)OJ}!0Q$B$*6*v9-W*XAIJKcVnqS_ z;fiM5Nu``Z#xaYd!^8>5r3&*uUPE1rvPIp3h#oSTDi(+hGSzAoeYQGOBTQz%`l-cI z9iezsKpTujHty!Ec+t$$8g;N%nVQDR8qD1U3Ya+wRNvTkZg1##dQkBEj$6tUqEfpZ zLoT<$zAn3nU!kveW$&6`_^ea1<MC`_zVLYwe$~pYdia!SV}X{>+1aSd@mo=KY+}N1 zd=LaUiCn_9zztEymaTSlkl3IK@;zGHMvDk)w3KH*ziHD>7ScH^xufFK8Usb>2Xjo@ zju$evoiHH<C~sVE6*i=bnDaJlT%Rdno#wj9_0)>us6szj*31>-`BDxt2ukK;ZAwmH zgu1EJ*JGWZ?&~R8$&Fa#RVx@o#B@K3)B|;5Y@`gvWV$+4o*HTVM9Y@480)LxUZ!fY z97GU--v}>@Ie!3r<HXp`#vuA2DLXQg3c<Ok_ygriYvbi%l>Knz7Yws=ex=brG9Z$Q z>}}Z@`B5~|GWbt1=lZ3r(8UB(9;!`GfGet3!-(1!jcs5;!_$*PiVjH{=E!Tq=f(_2 zpagQ=@Vz1H4H!}R7aal|)YSB3d2m!^K)}HpPn6ZH;C&b0f}Gf(%D(JkH2E+!=|`6f zdCUDZ%viN@h+#y-))0g28qISaR}#;gPC8vmWN1|5IfrJt!X_8O1dbEK8^k}nn$+j( zWYWY4n9JrhNdzhoYk)D5ouD5KFzbojVpts22Zg*@Dq>-uw@N(IW5i7Ix{k?Hhm;F| zvR@h=M3jPJX?+B0JL01(eGOBJwi8%YB~n(xhJ;xg9fmP*VRWdER>m<4j8D|j@@W$B zN0p4}WK(g7L&eN1+dGBhIYq4^nQ<7_0+t|w%jaDykq47NV<kjFqY%^eRt8xt#HkSc zCyGl9M&Kg*w+MzCub7LfTg!6d#o_~kx|--r_=t!xY;i5aHxAL><o3$A=SM@XkApyE zbW{!xKvD=>Xb_pk7>{Mjcx7_3ESBONSpSBm68;ow&Er!dwNxyXfq^p1H<%7VyuA2@ zraq~qR2gX;7{&~%ec}N*NJ?b4JTf*ax&V=+OzQyyg+K_CL-j#XMC|j*$Mb|z8_F70 zn(8N(S-=#S&+9@;k0a7M2Bt`?imgH^WBGy(A)I5uRRGsElMqA3ovbDl5xCpy1L#K~ z<WwRVcOdj;(f^$6bUbMm<GEtef<VBNatOjhwfdH!&^AQMOqN_s)aV(!J2O%l1tUcx zAGKNV-IKwTKu#Mkm5Q`T(C|g7qVTaDl8YDI1Xy&H8n5hnC3_#pYR0skc)=>!fd~Q% zfN+{}kZI+uY`PFPwS-gGo@?0=2b-G)6NrVGmNXWnhJ<K=^kLh=b`y|G6-;j^Y1oco zKq!<`bc;nuYW%qL+U~8B1O^OLAQXgkX(w08Qo~ac8gvH1lnYrZJkvq(KgRVe77JG1 z)nt5u77!g9){PF93zlX3Y2@uStQ#QJtMR~9#STKK2|>n|hhRE`<{zx4d267A1+L?` zaW{)mQsyc|0_!O3Fow6Bu-tT<Qo@F)*H5e5X^L0_=!J@)g?!4&Vr}F{sxeiV#-tE^ z5;EsNePE&Lx`{+8%Z+&wX!UBHg_d$v%fdk{v}q}TmZ;_t3RtqTj)e}adI9DPEIGV| z6t_FCoc(~dS+Yt6H$@`Xs0hW1l>=jl@xvv}9CiwGw2wD$K*Z_?Oqq!s1P&$a-Oe9y zS__ya2AsELy-paYh_L~b39Z9am-ORwAgy)K(o-a~pC^}r#AYDr$Yxv{3&1%7k~E43 zGe1VGs7qPwq&PX%iMQ5j<7L_SFn8i@QZNVG^k8`lJu64D*2shs0|i#1img`U)(_}n z5tU4&vvIAVtA-5*1fk@jg;Ed*mrunZ97)ZWPLhB4;qqo8ZlxinIM9R^z}gk<qzzGw zm!c*GgVEoQuV^ORLM~fK=tGCM$;kbvyRTQ&1FepI!FQr$CLPDh<?W=I7os6-llVn5 zDED=@5AkNYzl6u~FmB~so|L6Do$3s+(4v$Y**ffNt;5a&ab1&@kw8$0Q!w#nv16k* z(m=<jMItZf`&Bj(C)fZ~V-ou|%>xeCN3boYv%Sb%+Rmo(*pFAm8ft0~9YE4n+kqWu zKR#@nWH30Q0n8O&V?r^rl~RR55uKRC#eKc&DLEGg1~ZT>q+J*L6*|sEA)ItFjqQxI zj`GF;N*;1F2h{)(zlbVM(@}32$w^}vD?t%~lOu3~=_#1lW=s`r%mo7Jf+61A3{onX zcF`#o5@^@~tS~KXjoHOaDkrhhkk+G<g=snY1ms*`1OzRK6{eMSa(V2{_<{wJd5c1z zJ~CdLKz)}-@ajo}46pBGJjp(Boobmz9wpUhPi++Qf0_5V`~@>5N>L(D`NB6|)Bp&r zq8ZQM9w6#sC4rfOmJP%@h}DEoi8@ZXS^-`eIu{}M2zSTe2fyumTOicORX{4AfG3nj zwLL(oqgh)a%LFQa#Mq<0seJ>YqIM0~<Lw!chnJ(w-SeRCEy4K{Erz|SQacOug}5dE z3p}A5(094-!06tt1ADwZ2hUUHJrXQ*%7GeHdkcg|Lzs$?nAm_v3X%vhFl>~)fl^@y zKKq&D{PVb^R{v+_Ew^apARP8sFP%$T7tf~i={z>z6YHVPBz9i|2pJo4-UNi;(Mn+J zFiGaJ#dygam>wUlla^Ru+*nsC6!TCSDv4!8gn|@_TCHR{RZ5$zR3Vl{BzGpZNlyzH zPwXu_ajcN^MTwN`h88dh>~bLCn8*cLxhQHv*C`}2ZnBUyy=_aVAXJAd5C?`>b*Q5x zT`WRuQ%rLs*l+<WiJ?%e_yg&+&2%cBcXO_z3STU?z&4VmObEG<%_Xcf<i28}n}>8M zorFd~$;H0LXy3Z=u}O%qw;>&o%gT~lN<zsfV~XA3IY}o?yMXyGmvX|SqZXD)GnpzS zayE3IHj*~V$aEFLA)%}!bkG91gnmjEv`Zza-KNSTT4fOYa4KF%+F0vI%>cO*O`>RK z1VYq{X>eb8>=@Of7`Fg&3R_u;bUFnt4}%}IH<~@QC2p{OQdkr~+p(08?KH5KVBt@I zdfH58lEoqx1K89<6RC}kO>dd2WYXCEDP=I1Bda?gN<;?b_)E!RZN5+h8LQwVlf}5X zp|XuPcjTzx70s$(2GV9Rmv)>4bRClmiNJv-C^l;fnXKqRUUKwZmq3c3P?1lTGPzQY z_u8Q9K{{bnVWO(QYGLjPCMsjP7G_V#C;cwsEsuC-uVERQ1p`sc#IqPuyu~!fp=tY& zT45k%S*SZ=WtMWF7pnI1Ao%jP?|kv3lqG_N$DowRB*F27!pIS-aj--fC=X&pg|4Gt z7yc|7)$OxpF`X;Kq1k~TEGDDsuF{4S_FBB63*-iJ5N!KG-zq7^M6!69CFU_SO5oy} zdB-g#vyjPpGlA5C^YoR3ATd~Su3042js!T`>41vX9I}%{+{`62@ghbu-q3E=5X9ah zbvVTeV+EaXogCDJ3$!gnnqZTtWhxS?ge|Pc=It>P)31lLlWrlMNJFVHs_*lnowx*1 zrhY&hVkM^lRkEC4Ff@^(wn$-#1_rF#poxLnfL5j-5CdgCn{bO*wTD^=FNJ8YtU3+V zRqik~Z4Hez5GE!PW(6xy?z&=OBV=woltSj9M_Ei~Ae+E^>o+j5AW}-To{$23fFCer zrqc-<%yLqcE3=Ns))-PAS+;&q2Z9u<P;|X2;VncAP7@Q;<GlVMogiyNB9lSMj*SM^ z(RMnQ$s|}#8nxgLtfRFJW~%(0lgmKMU_JFxZrPd~vVZ3k?Zr}Xv5Hiwg-TYU1O<0H zRWMO=RUQ{fUq`4Vkb0ip&4&E#a0t-~P>C%T9WmTRX{1ARR><X3P_XoyO2f!pFdf%| z6aex@)zKQ{!dQT3@=(bF*P|pQ<E%uhcXgCQF@+TsG?GW^lR~kI)*696itX_<w$-6D z?#IXb2w|*3ArS|Y<3}i4iXLMLiN{!3gqEX9Jc}NK>=iV=GT0Y#b7&kiyOD|<?~~K= zo#_$3EmkCgA0LHek=a*FBmMQ!no`KAPE^H;NPLA)C?F{>^;z~{cZ0cn?rc<645hsc zK+00{ioDb0m#SIHzp6)}^LL3ahTO7J)$;t_icb2~qE7nNx=#8P%P;+EZ6y6_EhPPF zIpq009V6*is~+iB3m?z#t$n0lEo(f#x3cm4-qOYMd#e}eR|-*{-_wZl{NBPv`sL`u zMJho`O^Pdtw3vL&GzN)=Fof!q`eqE3JIR=hnV5vJ3Yt>R(}4j*Ob&i1R&V2W<;~%i zX~)wgura3C?&K+7ihuN0kCg>RDI3DH40NKP|29>}0-9BkDM$bnD}WOE2c~(yhsYUp zgruJ#WNf=&6#@-?ZvooxE9eJMAz{hJ<2js_FekS3i@}X}8ro^4Icuz@<j{d|MQkwT z3a&nTX;JiUsf>)EcQ&p!aM}S!7V=5#@Py*qBBUtIV#M?wFJ-gwB*d{LPxwb7Us1-y z?}=?pnzU(mTMf<-8-fMNT5)VWVANyPdzn5p2(oC5rxi@Ten?sfl<Z6%+^!mz#6%<s z=)%=4n(`3l+Cnm8K_|x#D3=mY-RG&9rV$iD8M+x7KY@u7Ytl>{%LA%93_eh~9-X4i z0@Mh!ftV{n^PtJdPiV?4;FLouYl$sr1gqg_#XwE$Lz1X@deqOO9}Z_~phlC#YTQrf zB$QA{o)wWrKOhuotb8V4z;OkcPA@Oqcm~B$5G)d@G5Nv35+km33f1o&GZ?5tTb|B) z`P?T@ZhUki;Rnr|IF=J9l|?_PLPY`X3=F=Q3PeArx!Vtk*(C{Kb*h9~R2yBY>ZK6Z zPreEW&4r>3DP9gyTH`{_AeJG#{3gXQ(hEa7m->T#NbIbDD}+WCosJqEgor{YmXjir zWFa7LAwGhY_I;KKTPipfhIu@dF^B8@C|j_9W5jl_xL7Kyd6feN`hGv7B*?Y0(D;Pv zglevlDgmTHsS=BQK#Ty%45oWo<=U=anI^wsbJbu?sz3_|TF(q$-Myv>d~ofWivLOB z_Y6oy=_-Hp;MFkPYg8DveGM0>_e$Srv=sBQVwbhAJaVfKK$hAqB;(>D$8P_CFH-bD zAxWG+r15x9!F^B&mpBU1w-qjW90YSAug4+~F@aE~K2q)}uPm>o(O|6#z||4-g(BsU z2!qzE@I0-K5ZD_>6do5+NHalGG4eZvudb!RLJ8p$FM8I5nuw>Vj=Ty07qv<PiJU0Q z0_x45F80qXY!l@mwMTyulaicDc_kI8ID~Bp3vzi2yzP3%O8Tp7ZcRe_Uo;w}>BEJf zd{ie4K{?3OtjyY=I1yB>29sULChUTRz1rb1lEtB9w8=9tRg&;7o^dfaWA)?@!X(%j z!{LSiF0?DK2+iVrq_<=3t*a<mL0pU!P{YRZ+LbaeR<0oK1*3%+fCIE~)+&>+OEyGF zoaUY_6>!A7FlAkyAg>(<dY%r*6auN%PV)qaW0%!VLy@zfO?b?k3oYpgP5{$5w6*AL zuD_^MJa!c80NssT+{t0{$(*F~GME)fRKeWU81#Aup%@!1p^TZ%=4qQcV{-99V!Cr| z6gh@+oLHGPETc%6f&mn4S=P)47C#7#r5)xOD&b%}S%{Nzwu2>;ABI?W645pbgWbU* zgwz&BT^62H1}fu1lqy)$zFut<_Id`CA#!nOr6;i;#^(@)I=WbQ`J3NjN(<Ca(M&<$ zU2t=@h>qC<UZ&C+B`$YXHJ9S0@Zr`X+9md~pqXy+=t~S1_ml-_VPq2d0wj_N!SHG6 z23NwX>%kgrPU28k9rK)?YDjXhWtT|hurAcQ&RRaDgwUR(BtnM+(x5~MN8eJKno8iX zlxPv$dZ-ns=@5*j>p1y%9I<oFa2x3zL+#M{$tK0+2M4!l+pe7kN6n0MSIS-6*Oe*| zGfhWFxyl-|9w3k@K}R0@4K%7C{FcfA63F4uLL!&ePfKui5iJk3NDG!v(BC6bq#iQ_ z*>Q*T);$h;foaBBiF7WWPC|@~#IExqnIpq~tdQkng9XCXoGLJ!Lz}n6d;&Oa;Uo(X z3=~9xCEWSr*F!^lA_>7}Hqgc-2~up-8=4+2pHEuo#95AY0eRNL7O?M)5i=8rvw5e~ zgF@A-kZ`d3?6nT!xaTV_pFrA#23!G)x410s1r(PaI+rV0IQfwhq36$bAZ(%Npl!xQ z$MRVzxpr&lU4B>xM^dvk2|c+_N;McBz@mGm9~2t|*<>l_X`S%m5ZsG6Zbq{zdWD*9 zwQ(SW1E~%cs!%MTF^@WsIC&HZ;Eh3gd^t?YdB_o?#>(*urY<Q0C26m=+RT`FoU}|N zVS_<*I~XZI<5P1Rk3Cq$QgX%7AV1P9iA#%VtaBvyqk6EM9E6~j3k)i`e!!gR7F<Z$ zan_ehR_pMdvQcQ7@WZ-hu9S!RWmYIK2TLe?vPR1&SuU`OP#_bl)y5jZn5U%!ZQGBt zWEL|83#YefNiIqO+h<{ZK#9UtKrH48bS^&!oj#hqP>7Rq{uzSeD!rmsJnbqR)Yn6T z9Zlq*)T32se{D;BR5FWnzJtXAXi0%!1qVme^-!T^H&CIZfEOwG!4js8%?KPH63tE& zPB=Dsz{L+`LjYY$K#VLDN25atUeXUlTRLfrMlrvIPmg21tMQVluZP;blyB*wV2uF= zUa*|jzWcp{LvdTs4n;v95@({^OhIb4Mklbb5W(@FRi|(SevYzlD2*airC~EfZ(iXN z43$L^;w32i#S_@t&QQBzsW`+4LW3MlY-ntH7&S$k?hwPM;y}QH8!u#u$%G_8AJe=} ztTyXeVj#~3p@2}#TufLQ;b@RSg(=VfXyDK>AMFbVXkLzUd=`111HnHOB<O3+mP2tW zyb~tuVLbnvT5<D7<jnsBjw|31dL)dewLL~r%dyY_7<IHkjK|(mjdatKi5#qUXf_0R z<04WQoH%`}fUQ=jKTg230Msg3m0^wr1=g5}0_>(BNML*2+oYzh+_<F3<H$dlQ5*;~ zZJ3)7#&YEL9NQfrDPrTQ0*x4&i)h7=nPO~W1ZiKV2@@J%o^goK0pksQ4OpgWvh$9K zBr4_-HoKD;E3vl|3dyM!3~^*oI&GUuk_0MemT)RmuF?D{jLd=XL3Wmht6qd~CD@0; zdCR!DQQ3V0#~ijSBxCghLKitvwDKsZCR(#tfca6XaIpRWV-qRc$&%8nH;**718*Wx z0kITGrSi~#5Cg58F~pIi$*pzF*EFxNu&z#Oq13BsH%KF0_KvoAfvIZ!T?-FN#mvEV z08XYrWYY+yr~}Z+F&rw?Nq7yM&b<Y;!p3njj;60+sct985O9br4tU+1(HNpSw-53< zHAB4g27uhbDWg7l2J!Yx2<GjtFg5f`(s^%4oZpJXIUzC9h`a<$3D78lB&qx}qA%c~ z0}YmoX&UDs{FWfr!I;l06D-i?4c~D8%3+a)UP1zCuLXs}Au>`p4ur(kX$eC}&Vm+( zr&W+|Jh_f;Z@Fnw?e)>b$StVxe8JSY_`HLl1lDF0G9|&^*`|bN0>f*Spr=}+(8Xk2 zsg}uk*8%+%+4dxYPELZhS0=<UMVa%mPlPIhBJ|7NrR{(scn};t!q#Dw8W|4t;S4sk z57H7vR|oT?)3w^_!L|LpYuDCRtyw$R<4KiQ4R)`ttX{dMwr2I(>bmM$AHJ^Az4A<) zfnL3)yHXL>G^mp*jau@k%~$fMomcii_RN;DxNHcbHex-G(x%k`n#@#zeQjC>iDkK% z69oW!o+0&FA1=$>)2rnVwB|0;#+#owf68gls1-rfloSjoBvC<_+G3`V<OyX;Z8_6- zwcpGh78;4_Q)v_Y1?x8XFpvKV#$2aki&Pqc%mGT=fuCEohfQ&+4Q%#!yVstlJTP8Y zv3g>2y)aq-rd%NdY!D2Sl*vaY)ttbmP(g6mNmAejGhH1D1{82U^`t)N!gay$_@Bgn zpWiGnwE7;k3s3n{%Eg{1lq^lTm@&K^diHqR^X$Q18JizasZct_^jYZ?vj@6^3Qca( z%VRD+m<}t83iReb3d$Q0qERR{a0Taf5dgD_xuUtFJT^E;!wQwKJitnUL-0@$sIMdS z>crTnUy$m9s5>p1W|g_4tbGYq=guZ+3&BHaQ(wbrQy)TU+o`7@(9i;3MB1brxhI*- zXRTBwXZAtRrdjD+2LXfyy=WU^DU9vBJ)nQbz6TUnv2ush+S{E}Gai^ym`e+w+h&n$ zyE%|GdFV7hkU#-bYeax7PBxcd@3D|JgSuiq2T2@YFcydeV4w=>(KrYvw@fb?8K<ER zjNcR(8<KjmGCTNlJ$(@M<_j>k0yAmB4PHMuZ@i1+)i_8k%Ma4<IF=a>OpdY4gp7_N zh{zKcXSvAY;>itQT}T(9uLnU{p?(;{6)cs2BLUMeSQf&oNz+_suEX?1sf@-j21N*N zlsHnZX)lpa7At@4*A9FzK=isMV6Hz6ZK6izP&9x}+DGQ<(GmeR8=CX_nQj4rQbizf z%!Z(_P&*t4byudU_z+o|{B^Q22o97s@-**`T6J0u`21Z@AOUb3KwvA<+P0>o?w!=o z!^(HC*z!OsQ)z&fg>Gn*kDltN*H%_RPdyDC63gsct2Gc|EO!-l>tWWi=$b<f-&W&j zUc3lRB9l$V=<Rk*I+sp3CCCZ66S=gN9%$I>k{Jle$kHYlUlywLB6ghwbdPW_E}6Dr z$4Lo4DPuh3hf$$mUC1Z&Gv8ua-MH3Gn1w<dx+q0hQ1ygc?nTrO!4HP4t>QRe64@x? zI3NTk#0g{N$Ag1Z5e_E9#zFa_UBIH&Pcd)gu{vpJ<iUmn^kIrgH)Bp!phF=}7K{BR z81@U<G({ojOAbuF;4Ga|d8A|ykmAPJC|Lpwl%8X{@nQ<Qsbr>!=Oo%vfgBJ#LKS*k zp^YqT<>cKWjud)o{Hlpztw@5$OEEl#W5|~v=`3J-LErjfM5zfB3;@k>7~DwZlMVt% zJrR;eh!EHxoutKkAQuoCLtu!VD($dxqiM)ckP_?=!$6-KR2G?Y^ASttq@5=w-U~EE z2Kh*s#<Jy!TK_cc!37hSGxNzT8gUxBG>HvZRu2zPkHDG+YYwB>c!_O?EQMhY3CE70 zVaBI@WyNTF)<WPB)@8*Ry&UNWrSmX8sH&4UucSFp7CSTqgYsMn6A$*(19g-kqmZ0t zwV@LzLnsR;t)%Nf(kLX+QnjB12W*+FNh<S@4C5dYw&()Usm<(W{frL!V_zYKE&ZlV z2^}P?MF;~f*{q#*AU^_M0X_*PclbQ|Tn#;M<{T%TfaN*AB$>ze)^<(uR)E1>*#3k< zJR%d(KtpS?P6xX^PNX+tUmGeS`D77;C<Mi#Fy;D?#V~V~W&z87Y%FIiw>hg3Wj3K; z;$$n1x1rNWwJ$0iSUjm>029`|yg@fm>j($^=0vHeZAi<KQAs9gTth2^s%0?+(K&3R zdlu_7jWCQjbo41QN{Ga8=rwI)4_u8>%?!W>(h6IwMJSslAynJs8OIZgK^(Ob#{HVq zV-Y3=vc+5pdV#7ZEi7aShi@VN!=V(kQr#>scPB4@y*M9-<L`mg!q9^YKF&gF18RC= zP?2+q<UiMigBD=5*n%N3c}kaArGUzvEZ~Mo7&~obL^y5nQ60U1Gz_7^^g^#7fnyEn zIQ01g3U|7qU$a;d*ufqu#!~IDf2f4Sz$MPV=mmwag<P^^gT)USuH`9G^*67q17YJh zX60lti;>l2)$r9uNw`%gUKu=g2A1&BS(5DXQ9V{ul4mJcILmrMiudqC(jk19j)CSB zj|svSA~S=e-|214km#ik)oK?ne4`#VkuEw`96RjVArUzVDkB`MegaF@!+t<)q}i~- zfbBl*Y^m(mB>0rpH!&a4;Gl=YF&Er30Ao(7d_3_rOU;8Nqz5eF99k}pP8umOr>Td; zb(iuQ#t(-MR!G8VKlYte=dQu#_P_wm`c^+UE~q17KoKU2{eTV(FqZNT4%URlmSACE z7K*22Z;aQ2CBQ5|9U4YI0@Ic{0z^xBD3p+a0u+xQl1v^KabgKt)bv>>wR#Lmud+_s zi(2f>PLoRQ%2j%3$HtZmD#eS}8!n?G)<YKT6jqa%)%AI=fHNTj3DHTko)ZWMQzJPS zn&x^qySA-ft+{ow0}&YxDqXM_ioT7#1r{314M2GkjTshko}V?%HN_iTjF7PNFqK3D zbx@QXZt0k)HN9_eR&GAwf`8RgL_3tk^YYHEWR$QqIRe|qekNh{)rF}E2m76>z0%qY zHK>?V)S_&B{@NENyVFJ2c1jL3K!ldRP*jT;y|}LZD8XgnjBL`yx`ni_*@OmG5J+xt z+LR;qs8&EFn5Qpcj|WCF*nZ|bB^%H+aEe*7I0J?x&}`NAzgP~4V}Vmce!GRn061eD z{VtN_7>~)<xWXQtu|!{2Ikhupu>>11d05NkeL`<K<E|wKPc6?XAT}=1grG=;a{~+P zD1F^3G&cOQm_o@`ykPn>#i+yeupZ~&7$B^h`U8i4bhBJG&2p(av|;B+8CJ5*O*@81 zw_*i8GPP-J>&R3bR(LmUtq;F-+m0<mn`%Q_2DeWPZ-UufeA`q_CpXo%jcvPhXqyXA z{nC2>CculsJKt)qwCwJ+mc7<Kb6tFOqE|`jySqKJ+CpF4m(mXkfc)>lS9kXa<?#mi z%9VNmAAjZQX!x3dR=bbiOxL}(W>t^>O~Z#ydjx!C_sU9l@1U0`g}<u1x~6}ycjcN@ zoGuT3<{-}6XpaZ4YH?CN04Mw9p2c!6YhgdjCn{C47F3pltuCFZOjhf4VVcz6g3y6t zJCS&(fiidWGB4Vgtb}5a6MElLcFx}*z~b|#H7GMw1%!<as=XC)K5uYbPmO|M)<P$d z!KNYX$B&FN2W|Or_vc}iZLwnP6CtQ``e1Jk6ASVv3@n|5@F41=uYDhijs*4EF(n~C z4&hMmZXmjIR2GPqPQd*03E(18RS>R2qkpj4)3b7wq!9+|yP;BNgqRb3<4=M^+kqsp zL9Jt)XUg8DVYq@lc$lc)RK#|ow?!?&_pHH)h@#=e5Yrd%wb9^4L}CJQMNSoqd=VTH zyz1Ea&IvLts31eoHNsv3N-6?GQVs<sIjb}yNpeOpq^f|-L*j_kq}RweT)kSAM@U6H zA)pv3LqJToTJInVv?-z5059`2F{bcS2?{z?b9|shR5!oMttL#`1NCi;CSF;X%6?2L zb+GE_Zz1nW>8CV!eGt3o@JTx({GC#V(=2jBmwf}ZVX1P!UcbNdUOPAw@3<?`5|V2{ ziZWZ@Qf8)JK;Wy6h#`b`c)SsaJ36BXepbAyqL2xcWp%)J9Isrr>df9wdN#Lr7>3dI zGsAfFtBZ`KM=dt)+16&<b4{D!{;<t>VBHd9<IbhVr&qTd&t&jB?J(oIuN`Kjjy>F1 z|BJ(oC$2rhKoBEl9APXr+KmqWi{bxb<52u{@c$$5f2pwq|BnC;!I$utr3gnM2u9xp z4nYXh4<F<ACB`zi?f6^5wCIg+V)&!~;;loz5f;TS=r3Vh!WVSu%QA+=@SozNR8VRt zZ6a06IG&jC61ZM|mg0^6mf^R=Xv6=*_^SvJL#`<%!lysNZU-)5ABJBH5Q>fbA~wQ2 z0zaZp??izp(^tZ#FO)*cTf4**<+lWwM49jemM9x4Q&C0~2i1Z{i}FL|Oh5WUKKiy8 zf9(vTa70anr}zbRN*RR_WlT9B2w{mDUuqm8->4i#DG*J<68RDM6em#?ant|B@C)jK zUQFhQLh0$E8Yg;`PHHFgjs9YYnJ_6OltTJD1Q?WV`XhfEXdcS7xWqUd-@JBqIM<(O zOH>x(jY{`WuC2qkyuFr1wM4DF12pK*YYC#3sRroHgOV%CPJ}r^)}5$p(HcbSq%Q>Z zz6eV6pJJvwig!vCy-|(?v<-Qp7D&_xc8L6=`la`nu}D&G<2VijgmC?sL{6grcQB13 zWNr`Vcm(F545M-&YK@_nMZi2PQM$r+$Q*cwb1hJgMToioQyF+=LoJeiUdb&*eh*WB zghk`X+<z3?OF%`$Dq0nd76L-;jC!;FCu)&OmTH|^(jnX$sI5_pr8XJ-qx6YCN+DrU zt$8rQ6)-`IC=d<G3-uQPr8t)1M`_jZ^_YmNXqke7X#Ldlygz|`2-*@sMCp0?5xq$N zPgvv^|HT`H6F7pVj_<vT(vthaP42#Iy4~LF=9b7ahcCoN;@r1#&b!Sx_YE@#YXffH zJ<N3nYb9<TZHM`-$Sv5?10=5tGxB`^cIggK7vn&VtR`MClXnX@VSYdx)C;zxcK{|g z4&Y8&Xg$9`JLC&LI(&dO0uRib$blG>U$E^Fn7~@N-T4EwYWTuw7C;T*fGj2+pav9n zyI(jHiwC3=@d8_9Jg{4wUvLYK3%}Ihz)qO}d*Q|*U)baSFYH|m2W;5#1++%+!duOJ z5$+T}K)aj=d<Xdf8}fYNFD*YXB`g>(I?zkb56l*6+C0EZ(Oa>Caez0N9I$=V|ADG% zt(g8e&}&;-u@=&bA=v}BFw%<g*%q{-|7TmQZ9!M@fKO|-X3C`nTe`S;A&2We$ktc* zydrCukj`;X@2C}vF)e9p9<Z6;EEKp}Q1EQQm<^O3GBBzP^E@V9+Di)1N|D7Y$Oe_w z7F9`GF<p$PTDkZsXX5-q5ys~+JqeQnLIImqo$9!cfHZ}%s~Kz%FRr$0E2o%W+zYKz zut;eoaF)VTc~r_itSyE^TJ@3XkUlvyQ(CYa7RU8DE!>{fqROz_+O5kko*C_Us}@23 z*C<1`bQr&79qJbESZnF-Ow?UVD%-7{e{S(2xK=g9^Cp>ZNx}%I359SNIIkr~q3Gz{ z;lw5pJbmr3`Lf@Ib~&yl&L<1F07>bN(K$`hW*?`EOzBK1R2@Pm(&8;%uTJ4wy<V?H zi*l`B%=f=Z^S(tR$E|DZAEcSS-<8RbgE?x@niYlk!5mV6JUefL)Au{4cSwOvRyXUN zEnBZfVp}z!crYg_S~cT>vkk2u#%SH%BcjdPd7R$DwLWCmz3Gx5!kp+q9Rg|bqEMvw zV2+Qpcxw4~cJKr?Z>&7s&8rl~*;JC(b9jN{opK1CM}<cGLENZ%Fb7_;sSFMez*vu( zg>|KEPBJT$vr1lINrp6MoxGiey0b}2ltO7wT>niClT_Gy$()gHlSL{5AZ+U=Z4kEA zD`XGKUTQp(#tkp9ChQlLe`x>?1q|1wNLQcj2`Zg)9Pf#{sW`4M!95_d%i<C<O%5V1 zO;&P{K*$yi`u`5jBH{2!A(h8jZS6W|KB^(?#D!)JJ(I1Qp>6p(BiO!8C5l;`g4ODh z4&_MR(`)t?YLm`H=*c}O+qW&+Q-Jla-@!>QC^@{?mp;AtS3E;A0T=wjSYy__fNuAq z`vmw@>^e`dA{Fd~RLXA&FS;Q&=r4dJgYiDU&5A)8C!WY|vOI|`*G+yx>1GtLb66Xi z7nO@SjLA5&bWs`OerAJ1r;cg0g~6Kd{lMV>J>-ji)Gvus*zpVw$9nfXkr9+cUsuxV z;TOy+!V2pUY*18j5)1|&)^_h81U=m?ULE#7!8CQNSFzY;&a!Z<A4lZW{NznDe7-U; z1nY(Mq8r0*^;&gO{b=PR=)oD^hB^6s3iiVJ_C(RugjIQ-C49g*9V@N-huqNLTE2+x zAPs)w!fPjPr*XwPE{GWITZ@^E`7%gV*oqv<g5-Tm!r}*x`1&mZsw8>X2~BFJ`d|^c zpZXfHbK)Qm@i}x7a#))j58^hUmTXj_gmVQOhJfkFZRF*GTt#H#j1O(<S#15Pzm_j9 zYVnT1mTx>dIHT{lQx!K!WHQ|B$($P9nL&qN!RiYpU(P;co@KjVv?()zOX%o8=>qCR zvlEOZZOeBdrp#7N)aP*RIa%QH$IOQ1k7VqrbL+Wu(>NrafeB^*K(g#(p2c(APdPlc zrC!AuQ$1kbM(L#NG%uR;lH~n8?{G6tEx{~TFyO(M({JhaD_HUUUu%XxW5KjIZe#Up zb_(}K>vCmzq8V4}X;#T$fT%^Y0crDhWBDKP7UMXN55`a|B?GfQUw+57UetQrZ;WZ& z%i@xe4zgL{ox!GQj4#HN3?=t^G8!2yr55i+!=`UO4nsC+ZFXtsa&#{UADj(FS+uM; ztox9BWzNKo!;YmMvUP(FmV@mnHkA~0PinK-1zJumT7qct*0_VX{J}A^upLiF;zOK* zxb0l54(NVX@5&Ir^|XEiZ3efYB(QS;{zUPrbfS{3@Pl1NI^j(Gg)nn82_w;-*r@fZ zDh|%VMk)#0_crWZ%)w@eo9CgrpeMI=(;WYc?$*edFRmStgSaG-4Ev<4gzbu}59pjO z#IwWTZF%;ErO1gf*pXzT8&%D|#z9;k@;k73(&GKj2V*QH9mkc7xCA6LHizybmn@{; zLvm&sf(h6YDmBQEamJq&gScYYx=0{cDU0QeljC4ijazHAaqpbEG_5PQNAzGB+{|NJ zi4252u)Z%AFuv3l4A+iotv0~pas59SgWXf9dEU=BByMvoqWi&Zop^B^qHK!#Gt zI<{k;j|+1#pDW?CyvrOQF?o^D+Ap7jF<k==Jdw`EHLF`}QI<syo|PP`ClaUWF*>mD z2?-qTn83nfj*1+`GD8p7vZ<U_FXeG@`+2sM$|m(&Qw0BxrYf&kp=pcSs-IFAGmKj> zNmx42>W4;6DTzBVaCf?zB<J9iaMh_EX{&d^=1n&Rey|8jJK>ccI%2?ZCe}HAjJP>H z2kW5TB~o)#Bz8LVV69#$kGqjzp(h2~_l{W{C8JnDzE@h|TZ<Y2GYEU1ex$ft*Dd6- z1zdcrN>=p{zR;o@2GlYepo|i-DF#!6xTS|G#Wx(wmgwjLTEW4vomOfV7)10ab1v@F zC~8(8b(zW#Oh@7Z1{i?ld;a`zB^WJ*9ojtXuI9xJ2%f2C?pT8r-0Y6dynTpnc<<Hn zcu)qRTDlE5fop_Yv?PU~FaCvBh!nj!o=U_uE>y1+UdO}Mm$2#SH`<o3MnOQjFtnJB zCroLkPc{@Zw9zW~5VE5yv|p)KRWpF4EnHljv+XSQX@$8uX|>qfq!6PH!jNc>4XFhJ zXX9?pf{sPLkjBW5o0X<v?*x(3b)Ae&?R+~6Fv05UL0h%(g~PYF-PtW=3Q@gtJ2pvK zq(o*3@hiZjUGJJ;%vq;o$K$YB9?`q?@Ocq_)k>J1(^KC1ZDy@rY8{7a_=|ZD8tf&z z`8+l;#ad08<{YY^W|jRod3*O{h3?vs%P1I$1JmVX)3}{J;op5hHl|^x3o<_MQlC+7 z8~u8~R_<QILE%Im%s~?CzUI-fUBqCsZ|TxD>=LwiwK&A)xJ)LG(+Y|ik(+-WLy68p zSF!GZZlYf(2XiAi!eY}rpTljsVI7J9|I4PJ^e7!1mv=1;B-$(uGf9{VsQO21uqT9( z1l>AVqG{8{efBx%UPi^IF)<XOA0OlrcD#_W(Q=?(Uf#IgDr`s<*XPR{Hm=W<u$Sn% z$@Ro;$1y+p!N{;>9w&{F%#6BNo>)*^StRUwGyjBv2=<_HAFv+M$)@5s`ykc@#7@X{ z8c*kHxMMC>yP~ya%Yvu?h|%(;9F8S;oTyaXLAExP`g*MM(|tW9E4dMyrZB+erxnYl z7wwk7)^4!>pMJR@YB`?C=Upp7_C2W;iyI}-Fa~*#mup1bYUdX{rtnPM&0+yD*T{m} z3Jqk~El%e%sbYzkYt=FX*B{H4DTh`SB|>I1`BFBOgD7Fnkhr6F9r$%UWFb{7;s#T! z1m+A$cPXI=^pK@AM(Y$VhMhZPL!2+-t&MVWNhYxpuyR>kH>^a8=)Ra-#z@hCFBcO= z_DHBm8tQ&NsV5!4)p1^oSYnl|Owz_Rs2C5bym}{#Y+}EXgqPE!!j>Ik(*<-mvSX!e z+rkC*>*=D~-Xz_m5zul2N-0$+6tSJfhLn5P(|~$m2nW`xVPYG)>>AERA)I+{^1|vn znMRXL>r~ztpn@|bMO>Ymhe>S_Q+${%%MBwzhXT4$(B5V9f>Af6;~+#D*RkX3UY$-b zTj&}E=&j+-RB?-or;?$Yy`J;-F<C#r!A17jyj5Zq8>F|fm=DgdD~#MbFywB-=C{bs z1w(a`?gY!F0G(Y2S3_eZ9>5Cb8V3amxjb&hNch%Y8?Nyvm=Jc^#SAW)7NpX!Rfu*L zj?i%}NJTK&stJpCR`e1qV7EPig2pkc0I6`QvQ93KamSyX=x(t<<G>O;lgAi=)~xn= z###L?7+<NFLe-;nsGB?*Z0cieorV;EF1S=F7xyIVq<~c@B;qc#M^%Io%AO0p&Tm21 zdFQ+JPd2*wuOJdP%*<!(SCYfp7V>`=7Zmsf0yz&DnLribdJJ6s0i*0mpkdgVL?i6S zl8)|m3?X8ZJd<{D<!NCIgCj9Oyf&kCyk5p7GndUcP8>a+=<(PljX+AgR<BZe(To_^ zCoAR3Hb^SyP7~Y<I9P$9Z5ZjD<1Qz8Z(&o*#|L|#p?5E$W|df44yIcf%~gXhxMgL} zDlxmBCF9lIFR;bs?!mQdDt^=|-kt$zS6LX2R`CBe3(e8=n^<lZ3H0nWH@Zk38F*$i z&op*~E7830Ube%2iKZErj(iQ?FV@^_^qe=3>Gq>>KjMHvjI9ooMy10Sl>N6@nPyog z$0)2xhYU`$_@F!r<Nq4YLak7@dUu+)zV@!GkWm91xD-w3oQ+qiwf}4Otb<n#dm`+z zx(L{_cs+=_v!wOv^3;eZCTR?tKap}vS>8(5nvv|PW`G%1k+I&UTY^PQ@Dk%LJ$y5J z*z$F>Iqk;#+I1Sd7!Y^y%4^&uJ}<r^jCJd9@8b8c!ET;j%7eqW>6qh^6OOn_o;bMx zR8Z8wNY2>K27~U+?0tK1u|QSV)O%npgECe@UeAa4Fjns0BFuFU&^4~OW(3#l@re>x zz8<LUke7GjBN#H6K=(qSPi&psUJ>I4zH*G};Dv|9P^Fhf_q57eJrRN|%8w&TERt)& zQZ@lKk|MDUGzB<{D9g4vYRw!v4R=}#^XmsoHf*8j#_k0q>S9De6uh=~Pwy}`PJE!M zMqzwiavD@O4A5^?q?<X)FNi&MHLQ|F_21u-+-RP@It}~xu$4ZJi>mZ$r}FZ?LE$v~ ziCa~`T)mLb1+P1%RS`D`qDCH!W8OqdpuqLZ2Vf{4c1aXjR(vgsTXsUghKrg#i|`b; z>O#RJH@&x6H_hL0jdRFWKhek9D^NcFYj1jn5{|l!UN40IGdDn^C1CJTZD*SNt9n9y zaZLeLtj8rWi{@X)%ohg;woNZ328-4ixEh+_YP=4#6#n%4%cNBW{I^^tP4kWrJC-xa zg3ZJ|KQ1xU{c4(!-$Pe!NGQpL^-v@)(*0`ellW?^lYTO;q~p_hRNb$}3yH5Thxh#6 z{qWMS?p62vIB22MoAmBZ_r7~~zDWO6G8n(QKi&JjzOX^3C%b_TqEqnfuUB87TS@wB zTk4~Ntzt%-bkanObTYIY{w(BQb0F{@oA%vjmc+Co*lwTQmQZyU3dbsWFQFl)5mRt2 zmN_m@;fqw7@`n07)3^c<;u?-gyp}5yP}0@`>Z%lp;0b!D8%Pjc6)l1^zqLhN09PI% zrcEj;a1gr5g|2F%l~GwSdLA?q01g8KTOc&yl_$5>1;6Zto*cvCNhhIZA1uiFam#xd z{D`1~RR!-v>K6=+6L1I{4rORB`)CZIWl{(fpyeeY0OTrBOF$;iARg;|Y7E1@GCBl$ zL=zr&?8Etf8nL_2Kox<XYd->THgtcGkElw9alAaTN3vjE>LrX8j{Xu>2L=$iY5UQr zqT&E(HvT6r0<UMts$i@DJ$S_A$e+A|5gxI5s0a0D!eGSH<H&Cf%$lq?gr~NzHTW0x zVxfb%-<_HyvlfDt;8wuAhU7hbz$%FWW<#xCXwzLyOysEy43zm809On{hR260WjbRL z0n#{c!d0^udz9q_6|i4{!T~jDn5bW-AeYPZt|mgyQ@-$x7b(K@l>i~K4E7fX9F*7H zSbowXn>1(PV(slyBD;j;Y6a_a#aW4P1eb#xOz-&te03LZ#Y(z0k>7`*vmw^sOi~L; zeEnQsr-sJFuoDi5r9GPR7BNhRKMEbHGPbDwLM6Emj#WcEppqz-U4t56$2hia{qOAc zxLJw>>M=kl(;=R6PkCi|HC@-XRt3P20eySji!J_;7emnW1eW&os-HGF)c9XQ_329# zC=rSm@;o7I-WgS~ifh<{je*mTlw;AM@DxWyR24hL9=ev4Hrs+1@rh5|mJ|^ozzOvv z2^<+471IR;j8JJ;MC9aL)+&aYiRM+@9FYoLMy5DB`bNj46kU=hVUsD~SHd91mQtxu z$zUE+lO~V2T1wtJjr;2KW*<iIhUls3Nj(P)=B0^P<Y*-QPyR5jf5r`jNFY_A%89;s z4A!)oHz<FKsb!DH(R!XxE287nWxwzg!^`L%x9fR?ID)!HV7wAHM0z7KrC_K&D41Ff z8N4@+zO%qi55R!n$Q-CM@`T!(;<YIbQgTt{L>?-<AU!%-=%c_R#jhNkyq@S9V@GJP zqM(7#jpJDaN?=fH_}(zGHDE*yZ-I3*?>`2Hy1-|@R=EYTc47$TH$BBHP;m$*Tx*R2 zfZK*c?OVW^yidvtr(F=p_Y_OXF0uby4;-xV)<9yhz5XlT!3IOKyylIv4N$t8a8&L^ zHGYK3zxEk=?KOWjD>9%M2H{mKgYc?pUwA{at_0G&%DK|~K5ME2J?>M7artP$6~8Kw zf<eGV4xkqgtK#4+g?LL5(4SF+KO{~RKs6-@ubLF3*IS=Tuc|)j_n1uIixnjpkebhV ziBD=Y7hW}hORqPCORpTjh0o)Wl}|Kd;Z?((^!fvu1bAzB>GcLR>6MEQ=?gH~0;bmZ z(u>p9T1}~eM|@SQ`32p5c?Mr(ss8n>Uft8vyQ+KbN(JJVZs}cp<~sSdxqZi))fca? z4cBnHXQx~5pMc)|#aM7`pPs4@pFY-qiO~#!`sthq)SBi*sE^I{na6>-5HP^Z^?72x z98AoYgNeBlNE7c|2^gOb0fYZs;UVsv>oaqsb0P4z_A|Unmo={1Mvnw|@b2z4Yu0pj z_N-jJcGYSEZf+mA^1|3U^GBPW+a5Ez+HgrKp3?`g=9}796F$RO5;Kgi^m;z&wl4=> zt$%t;*9Py)Ig1SA;WeI5xTdi@F7Y;cUxx8=^g7R{;nB3#H8Sdbc^_Wh8N%yaUfLXv z_d>*b^jU^6dX5Nr92|2w;tkR3L_V&3gJIlwuE1LgCyL&?7aPXYz_~Im@H*i{(VIfN z_a+SEtdzi84kwD<jzdr`z*+AKJc>Sw-rb=0>4ITgexATPya_!U^|W}sVWiI&cqcZY zcL(Tw-~z+A;39!{SQC05Jk&5A1kToefp<w0dX(-z8Z?Z5!;c;mXJmfAh!0-}&fg9( znsF4IsQm5*-dJ7Wc>klykLvfANR&Gwu$tBHGJGCTtw-QS(QBi4fj2oOaHt(brSFx1 z-z{+jW^{gu-gkia==j|976EVNTRlp`jY?k$?QivjVO%jSa88F4mA;>%TuR#w;|-Sz zJnFtt^l&+*Q3Fox9Rd$cF_PZXNZ$$XG>n&DF%LbYuMaqVe<<*}n$Wuz@V~uE;CTO| z(zg-$=-Xo$e>^L&n$_>0BYihrZ5Ylq0&fYND0)j#5LW=_>h}t~li);^ABxUcib3Wb zG|=EdG9u~Sk9hwWIB$ACqv3YaXnNx)mxq9pxK7|5(}do;k?>U?K->B&fp>BfdTS8x zh8qlH&xZsawbQ8lUWItS37pD@1zxlA`wr;s{5y;XHwnCE<JCE6FTV!Ps(%uAN5hFK zzgK}?$Hxuhw3`Lq5pbf?cPk3^Q^0xaEk0fpy;Jb{x4?PrKMOpNkEC}6KJ)<RleY@I zX7!Q9=hHrA7~Aoqr&;}e1@vZtQ@&l`HOp@vpU=L-Fs{Ono@VL$AU?boIH!MF;5AF% zz4&}1aE3o4@KEfL`Mn<r{|n#@-X-vwji*$8r{8TD7ve`xv-Dkv5B<Qo?H+;G4kxNU zs5oBruV`EN(bKHI9f$V!GGwObvjVRZP87Wx0DtS}4CAQJ3p{kw$ozf+`8@|XPyU<0 zI~Gn9z2_0{FCQ?Br@k!kI-1bC7W3Ox4<W8^2|T9>y;+pYlmBiQZ~LymYu4YEB7L6+ z&O_f5c+`)g(nsBF@==uG_XS?F{C*JhQowoihXU`VP3Tdw-v1-RnEnre*Q`EHMY;SF zaQ^)#0*}U_sPz2}^80U(8^**>1>TWxqWbR?=ym_hFh2C30<T&7`w;Rm{FGrV|CPX_ zeiTK|M#7%}PWN*H?;JQ$>H9h0S3QsZyI<f@JB^~(h4g(3IQwaW#nY_+-i7piYjMo@ zb7E-mybQl6dWWICj2#*?-gbn*BfcjpeXqsm|5%Q@&tEF=nzfh9kiNG7=i!$Lyk_a6 z?s&`5G2_yg3p@miOy5V5k86QrA1m;h^^e;S-gzZ%NIy>CAzP93t_3{@IFHbPj;C3B zITd(cJU(VTcY?q>ya~N0F_69e#F#O9vcNkPcv0o|F~CncC1!jLKYE(A=NZKN($~j~ z_ns#3n)Q#JppiN~W_$)edYYA=gU|mCoY!;<JgT>-^zFsxY2YkcDe#*0->)EjrvT^q z)dH_s{bum_;og|>>N5o%%?nZO?+zsV1Hif9Y=QTxCh0p1pLd-TGydfb0`DbF=skk; zz5Lvm@oQ7yH7mcb<MT~c%y?%);5Fk9K7sl@(MG*dhA2+_qRMXopO4O=J-c($qx>G5 z2fdQOQ|)gD%eE*AekeWno(DYq=%N4S@^15V+QY0ci2qT!J_4L4Bp$T`#*3iWzFyGs zLN}v#EbvZ}xXtKMJF*u@&jsFv3!t}cf%M)Eym!q*kH+l}1Luw~UPSpl44fZ@@gmBv zZ9~jB3O{;OxkS)g37m7ocp-XJ?-v7SO5)8`zi$W5yB0w2!@$`W#*0YbcYyPgFkUEq z)c%%kj2Xw^N6%dOT?3qW7%zg}W{JZD@vm9?8wcKH^U$OEy>5Z@{sDNm%|nms;~T(v zGK?2den)JI8OP#Bk1Cgl{H_I#6UK|6Hwc`GFkXlrrSILq`EVF7g5JHr`EnR9M34IK zlM;vWK~J;#cm{ZF=g*yAqIaUiVPbR8I|X=a7C>*~0_j~0yrFsMQG2-(IM+$Mx%%6O zfb+3==+U_QfW(<EzYhcNNAu95^tD}p{)QhtbEWS@;G8b;nzcV_FD`Hf!gvww<(<H} zCX5$qFEk!}6gYQ;@gnFw44fZ@@j~=CzgV0dLkl!KDjyN_)&M6S#tYG-{B8!$jxb&X zz4rs>ufupDdR?Hm4>&)Ncyraq&w%snJoKpij(KCuI2k{B=AyR}IOj?{RW70QQGPE5 z&eQ_vy&X93nui{x@52&@(nn9T@!(eA-7^n8O5dZvc~;`hmEX3DV#ad(=xLT;YA>e) zCmzO&sNc=N84lxx%8&B<F5p}j#*3hLD{$@!<Avx^`W^+&(_y>_dPlt}W_035&s_OE z7dY!B-dyE(F>r<!K<`T6To=ZRNZ+l%xhISl$}g4QqriD8j2A&~`Nc8gIQ-_z?^(bp zgz+Ni4FhLK7%!B*;}F^Vf%9>RH&^-H0i636K<`JuS@h;mJ|fcB37k{Ic%k%B`DKA~ zQ5Y|R-VWeg5ylJAqx}9ga6TQzi=g*y;5-(_3(=$WEqP1KI2u2CR6C8Jw;DKR7%xPR z#)G#2XPd;Et3GCcbM*q~eFQjnEr8w^fb)%c=u!WD8aVCc`SW`+a8`%$LiwfoSPz`h zFkVFYT@9RT!+0TjRDQPr=YcR@1idGK^Gp~oM33tC=*?K?;YZJ0^=kvC6vhkDqx_Bn z=UozSuKIl+aIT++9;NToz<FQ+^u7U{AIw9K%5PBxd^>*h%$2?_;B-qoRW70Y62DuJ zI7|@#n$4Hz1FwG`dX&By;9MKVi>TjQfOA(EFO)u__Xu#F3FAf3JGwt+oQNMi&GJk1 zOyFD?#*3i04LI)%<Au^k^?N;VJ{HD{p!Wc99uDJ$=uv$<BXRJ`PqX?ksxjj*{OD<x zUm6ci0nWK$yomH&44k1bUMPJ;?@HiY7siXAcPnu23FAf3dlWcNhw&ol9R=Z3Ckd$V zG|Mm5$GN~Mgz+Ni4FhLK7%!AQqW6B_+!)4-pmz^&z8J=fp!YN2JRio3pm$sid^Udc zG|Mlo-%=8X5%I5Cdsz>>x6DJ2)(e*b=lU>SMEX7roX>^vBJ%qfaGnX{MbJBX5d9ZF zdYa{z`iCiT7?J!<<cSXOHqJxuWQ3mp&UInDi1ghGoO{A}q5RVL@+feg4dX@7J7x>? zckrX9S$?Vg#euUvj2A&~95|PS@j~e%de;HxBVoJ<diMk8D`C74Ju1JafOG6nC?65@ z)&j>4<Avza_|gxYZ4!^DHmlzm;9NZqJ<9J#Bo1ErX-4lh;N3e9J!*eHSRlP8fcMNi z^g2QB=sM&`_|c=<K}7j&1kUC#Ua0&izi$W5HDSC6dLISOtzo<nJ!;Qi1J2JR-dy$Z z3~<^m3FRY1kH(i1fs+d3MWk;4IOAcw5IxH8HNg3cFkS?`JAiY47%xPR()T0av~LaN zBZA(^z*!x}3(=$TdA-EJD?iQJ-&=rp$vpI^e_REe4~Fp~(svth?hWIG($@)kKLAeK z@cj8b5jdxZ@j~>dy|};`2;)Vh@14N8CX5%NNBR9IaQ21qBItbwI6n#Fh3HXxSvmrF z9e(u8)!)_tCmzNN(WCrsmN-lh|C-hB4&Ys}0D6B7oZBQGrLq~ldw}!BdFWAoe<pF} zOW*UrYab1jOGJK8296oVi>Qyc0Oyi0UWgv0?<(M28^(*EcMEXt3gbo4dqm>Qm)|FW z_uM@6sQn!~Cdy<!dZz>LEQzbyRYdwOTp+z6;7!d#kJ{gRf%B0tUPSrb51g-r@gmaq z6mS-ehuT2|y-whq8paFJ>qPppz_}!h7eVhT;Jh!47otb)<>SD)D~uOG?-AfU5yqPc z?mNE{^xEGVu3ytUJ%mSkO0QWU-s%P5k(?p106fyKC^z6?|2&kwR{*cpfY+FhZs5Ir z0eGZu@DB^Xdo}R(EdcK%;C+7qc%8s|$;ABi@fzU0ZUK0w0<W+Dyc2+T=>qU5zaLm2 z-lrFUM|vXPTL2!VZ~p@Dh=1vvoWK0m0?%Fm9_9D41>n&-;4c?|M|w~9EdY=7alW?z zydL2FdI5Mu@8qfZ%Z2dHT>#!60B_?0@Xi3<TNi+50`K|;yi!9yC%i`%fcIM9bxzNp zUuswB1>jM<Lk)P*>HF{k@J<K4#~Sb&$1AFjqqohU51OY>T>#$kz%v(sNAZ>yh&R0e zJZkr|3&5kC{!Ihk@`iRm^>$+eUSs*uxO?9M@J<2VPZxkk<?{0F^VbKBL#HhOkJ5ME z0`ayl0FV0HpNH`b%$NO>llY{bHudJe%q;KT7oJy%-}pk9-txwFPk7&6Al?%Zc%7Y{ zXV|c2y~*9^X5wd^I6Yk-I2{($PHYA~EmKIio9yIS<?@STCpnl9Br=iT7)o8ywF_20 zxdGq`9bX-VZ3i;fiZljHEWaV-_e?H#Qmv4}@*m^3$%w6}9&etQIO}3Mxm_Q|q2Y^% zaR#zyP0!kkahm@U9C(|&c-!RE^gw;=VqtCW;%3Jp)v3d?jB{2Po1qkIkm~ePZ#0yf zuU99=CdUS+I!|8zy3XP_43^d}MWmexjvgi;IBlyD>=<L|iiZ(YKT=Mor)zV3`6a^9 zEa~-~65f}`-sXOL<KFV*Yo9#)#+hetw%>!<0&ses#&3Y%Z~_U#7D=9H6j>$TX@p-R z-><~`nezRw@V-{Q-;DP!fW@G&w;|$lB>Yjl+wy$}RJ4DA?>J<F3>|P`Psl^6D1Sbr zD(azU&FSOSp=RW~bF9^72u&&%m5-}0x1ByjNu_o|`C4MQD>BFnwVgrZWiMNE-|Y9k z@TJe@Z+v;Fe#YVyDe4;s--blCptag>{NkzqbZ0;3&VI?c{8_`qahgAzK@@h!Eir3$ zUsuODOQ$FC@|q_B-1W@(_Cf2;$J(gy4QsD+=tGar-sPTs|Mt?Ceq!y~w}0wT_HO%6 ztK*hz?AG1O<4dhOA8EV%dyf$QuKSlJuUZ7aQhV{8)~_D{+1KCorN<WE1&Uku9dEyW zpLNRpGj|?uU6qa9?e(2cA*z)|Y6S?W=Y8^x`qfz|EAh;b%?-5iTDdwhXdG^wyP|Um zwNG9l9bs52vXp9mmKfw;4?i&QTw}Zx=)@cfbezzK(HO$XsW6M#e;)jcIm~<DKX-*V zA9pE7`BLDMeDvk~{US8)bsT0W7ULm+s4v&UuoVM}g+ldks52Tuyi$c2stga7FD*+$ z3o41!@z-!*ivu5tXsBc;y2Di9sgZGH(po_)p+Ww7nsE}cLeale3vrzBQX2fD9&?3( zzZKL<sbq^WF4?02q7YPi0whXrkx`^ddkVj+@bez3JEA}*wJwvu=dj7j6%jLLC^w7X zQX#g%Jq_+l;8O9l!#xM?VQ>?0UkWz~_ei)IxG#gd9`3PlFM#_>xO?Cp2bW5u6E3Zw zXe?T0bj!DPgK!1xO$xR}!L};ctb+ZKf_*^2{!+niSFq10*n<l8kb?cEg3)mmN<q7U zwj$GVh<s}|PFJv%3U;o7#TAT{WkfzUD;Nn31dP~h5yux5>?;apZaDt}=kh1I0dQua zT@Po~J<gshx=?7ws&B2@@62MH__Dn>7jt%hdAi-Y>X=pge*Aghb=<P(ihWZ9yZ);< znRfQywb%LX%x~Vj?UZx=YVxGy?$1siW8G_X?!P;;f1gEt**K?j>J=TgJoETbyZ28o zr<Y~cRR(`guKFy~n*PM@Z%rMAuu~oTKcCru|L*;_c2Yd{GazN)+m$nC8B;5qy>xm8 zseRxvavwK$@1Hs+KYN$6*X`=$5sKlr(TK?~d-g$lZ+sC$-Mu1@vky3XH+FS0Z1!$v z_G-?rv+4^BaW21y3Z(p&H{DI`^;ir_ZN?|@b`8dWHsfFLb{~Fi##izG=lq7lOa_gW zZQSzT!+87Qr@C%4R!|Ax*M>g<t0Q@5hQ>E4a$1p53+VI5H_R8(QnkDphDVc=&LWER zjck%qclO7*F7~@1(*<&d@hlGruRwQ=8KA)ff<MB2#rPB&pcwUH#$tq`WYCBu2GY^m zc9=*Kp-TLfFg|D8X)NMUCA3{H)X@kvMW3N!0sA{cu!vG63m`<DgnTFPx92dRoV$Y3 zgX2yUu)yMxr=giR0!YV<>m>R08hL*hMF^O`8D+vp0bdqZj0R_sfJriA&sn8SpVu?h ze=y!Jsn#{B%P6b-9g{t!lm@UjFrbFfocu9k75l%8;NzG#78y4hr=Zl%U9lraAI34G z*i7VT<DwN*$vvpa%kX<Ue(%7K23TrT5s$S3l+Ic~)n7!ij>5=F<xDkPjCnP@98l6~ zrBW-#sK5wsGazD6_G;+}Ksyl$r3;~vQZ*hg2eS82WJ}?pa>IDb&qo#+Gf1g{Q(iL! z|9iMp8~*^8%J1WFyW!%L<O~(ZC*dNE22R<|q~M~<&1{1E8Mqh0y$5a`?tO4a;Nmpt z%sAZ7!UY>@d>-yLxL<(#Hn{%+_e!`#Z!g>j;l3a4m*CQP`(?O)1NZB2iO>5c+`otW z9k?Hd`(3zq!~Gsy>YqP^`%Sn%f=j*hF}T!FpMXn!45!$6UU(MY#JoUn?M4~@1*|IH z+Kn*<n^Z7LqriKQg8h|(QA!0pN|V5&R0-JE73^CIwqL<0l>+ZX`L@hBNx{}A*jWlj zO+&;%vw;Y^L%}Xnu&Wj9-3s=13ikI3Mq{?1_b&=IgE33Mu8?o-hO_75u46Wxe}T2h zy1?1>L}zl<Pm{C1x%^Y(2({6&Gnv`PoY|+G*>84Su?yLAW-tFDzBs%0O}}#XJ>Q_$ zU3V=NgYKSP^vT_G^5d^^W|w2OnK~LCXZ9>-_VWT`_UjI2kDq#ecXr=x6o=>Ey{}{U zjYM*mDLK3LEp_(nx(bllT@=-xU6f~c&p=n{Q~U9_d#1WBboSg#<z(-<X$H=_owI*D zd#8nn_RbQxBmS?>>mS>*i@sSM$**!cW@pJe`=qn@$1<3`?j|BVJ?YHePMNT0Zx(sG zZ|T#!NJpk^`Z#;-O=~eQOdshb*O~pIGy5P@%+EgH&fXWu%&u7u=j^$iGGOnynIhQz z^mGp=J-K^-$L<pH@OT@F@(&p1?EY!T?sEXMcI|KL*nK&Q`^SHaf4iQKb?p8Jya@P* z@FtS?dZy_m`HI^q!s$Qo(s`7g&b>uZNj4I?H@!3>rH7#?MDgAv5`5D*$hos9Vs{oL z?#y1?wb|KqPp4J3-dujmn=$GB@wLG4V)=ra*F|N2VfJg@r!XdsHPoltj3NC0SAN@p z|G(n5tMLEV{PraNf1cmYL`34N$2GMXn*jSIfBmld`Z(T*S86l%tFKA4b?_g6<?;5( z#q_pG!8YTKc)T`aOu=aQr+I%FUd}YqG@Gbr3RuhGBX=1Mvi!{O94}2#3X85Z)tz*f zKF1RqpFy%-$3b$74q0><&sP4t|2p{3UGbw=QmFdq`1BNi_h<T(cseA$;3THewdf<p zC73d;6)xtTFEZ>@;CO2yroq!J#a%$SS2NCei;f1bPT@*`iRaZEH%+}ULm2d;?=<y_ z=V*?b_U(>lz*`o*YS9wrOT=_NQJZ3nm*XoI26%SF_VEhMTJdtw6sa4Eooc+AC;4f{ z;rp&QB~;2^W!Uk&2o&GdYKb;T|9}%yLjtT7qbkE6isg-(u`za%T025wL8m$?{dr0+ z2ODNiAg={W8N<eJjPs2xu_L2mq>S9bL90xPGI2a=9aDHzOjL_MVe~^(%%5fd3GAnm zewzJ<%kMGc=j=b!IKjxPMn-~?#pf?eEK4p~x_B|%lb5s|cF5v(uqA};V1lPcvKDe5 zoXddiPq999@No?#4xG|as1~Yl2brxf?3I`wmvX8f<u=RLfe;F{El|SqN=Tr@vNDHY zqE7W7qp+}~GB&_LmK(3)BKBfAa?xV+jZdOjhhpa&UyCgU^HNxGE>cch`1wfrI>df9 zeo6f3oumLHCDPwJfk(e5juS31UY#6Y!#}KSJB&kQ(Jk+C3#-l)+!rvZ@A=%<ONsje zl=@aNCi)hwfHwn1eL})yUs<t&1|}+lVodY}=E9x=;6kbd`Op}!6z?bFN1c+MrxqJC zG(P+S?ip~Og?l#K=ir_P7nUbxHp1Nx_k6gE+Kd^B=n%N?gNrd|=0>=O!6lyPD7e&h zj)P0x<3zZ>g!>w}`{AAhcM0M?6>bOI)8SHsKLhRwaC_mdf_o<16x_4m(jlU=;ckZe z2DqeLcP?D&V>a9wxH-62!aWb}``~VXdjs5y;NAjvGhAxkRk+`RTZ2o@c?j-el*?AQ z$G{zdOTA_X+_T^=ft!W95$;8Br{E62orX(meB!GFFGp{JmlLq6{Mv312Pa_L73_}{ z>`xW!1_h&OltQ!{|EyrQE7-Rb?7Ip^{3eB1#!^WUmdaPaAi0qAj#sc(E10EVNd=?X zN`$4-7xZ>2*#A>7no<Sc2NmqY3ieS2dr-k1QZSkaMcD5vSUbvAz>bh_?Z&YR_9_Ki zr(kbTu#AGy%qi0RMg@Dbg3(%7#4(~^SOZ8H*%A|Bu}+Y%FDls273>!Zws^6Jcc^@8 zH%?TrlN4;Ff~`@okKt_@a=*;@gnVl^Ix&xn^mWO%cEjAT$vPi`lj~8(LBYukAiJ3V zHS)7h&i;gXUur<JcU`ryD{<#z$GCeBhu65u?lNZ~1YM37i(Z!AW(sh;<Ce=OkqCT9 z;dKJ9kYIcc-ZZ?Ve}Gp9uf$@JjKhRKGkBlfWuGNv8YJB?J^tzP+X;_2<>_M_DFE5C zi(1O9&x2k3@w@SM-!8(T$Jz6VuKU@&ql-q4+1r1BFYcZXb$tUqd-jG$*!$70YuS6# zW9+@7>)q_V{oC+f{#%Z$^XXkf@WrN<&ffe4ULNmW_4Lf`SE8PlnjL>~@8c)fv$sD9 zIB5P7&g|{au;-@d$a6CWe<O4G^M(mCET`@*?q|`?Lyu<mUPI#*<UNo-A2rx<{1u27 zYs8=Ie~@9@ekEdEG<BZ6?)EkinLg28cLQ0@nSRB(+Ycjm1^D&l^s;o_%}2qVI!Uto zj}fWe`=&ZV%;>HgC?mgJwNK*7D4abpu{4m&46(qNDl?hcXRsc*;%X4YYC^7H+*wgh zv-df8qtbO}MM1i=qI{iMS^5x3&EUHxlDZyV>n(47)7_}&wKN&2y0p8xA>_hp=H%q; zJy^WhdxkyP7A0c$+fd89W+@Ac_Ap!i<4Hg|KthPN`tWucntPk^0lfVTzc%B;_<tY2 z(LnbO{`z%L_yWTo#oId>Mm&qaqru?c`0Gl%38r`$Zw4^hj6cNNZVqt+-X35)^d@GM zsXK>-VPuk!)Jn*uDPKIyDC5S9VY)h?I$WubfMaOJD4)h*-oL0InN?!3#B&<+K*S=( zjIr&bQb2X2_ZgxcVs400r5$C%__IZ&MT-FQ7-QlO{mp`sqI)ujJ0Jd&Iot;pod=$V zr12d`5nyC;3k!-&ymtUfGdG|$Ho{C%4kIW{%MhN#-WclwPvs#A@qe7G$P?l*KzWi8 zKNVXYyO84$)I3I-FuG89&}e}eu)-oYfuW2#6QP#_VKrx<13iv1DfsO{hP^rVEF@PX zt@DyP;<EjGLL-IDBN*+Iv3TrME>nRftmqTY7`_X>`^MM_v2(%udYdP_tr4}UA@-HK zm`$fmjSp}Xi()1?@IN#zGEM|Tcqmfc4<?VKZ0%?r<fh>g)0cuvOyBjuiFl;6Z3dq_ zY1=-$H}ZS;14>P#7!yr|_&w^fuV$Fv1V}Px0!CF_j8PR6w@1w0W==U?@K8Hm3YS)I z8zua;*qER;elpxua8H9v8y&rH{}S$6xF3akHr!j`z5y;RMX?FMOdS}7nV-OqhCOpA zXo4G`p~5c0eGOdfTFsme7h=_!HE<E{Oad-gh#6unaKdti7|$}?4RDcOX6`C*Dee7m zsU1wgrHXtTTw*%FZp_f6@ea7}g*yY6YH2rIVl1wPOU%SxxIcsYM{s`y_fOzH5BJaE z{sGG4FW^!W{V3d1;eHJ68n_>ayBY2$;9dszui^e3+`obQPjGL9OANx_!zHHg*Z2vh zkKP2+Cty|iRWN-5wq3!9=@YO&Rj?ZrjOJ|m+Rj1*fk&g7fDzLtVBb|RVw?pGTTv3P zPr<0<MOc)t#H%UTRSJgElX%3!33}Hn*xd?tpMw2|f<3NaN27dXTI5^1agu_aqF_Hz zFo;KGyv`oCYbh8UlIV43s^4&Cf8x&mX4ii$>Dc=|Aa&ew-jNQ;&g|LGIeRYa+Dsy~ zA$RusF6Nz+-Mu{Sl5nll+V$gD#}%|L5O3c{QCYiwvuNr~_H57WQ{Z#1Cc!c|sNXtw z{%rB=H?6ZD=-5RwJs6!ksA`Rl<4t4sA*bUXzve9ds&n?UQ_I}hdp)_Cv-o*y@prAW zzccY|clNTb(vQ(1joEd{Ro_yi-Px~Nx6(vo&wlpo2RnAX85sEZL5{cM_!)`=+tzn} zig3DO`yN?z%Kg^toz9mY>$v5plOOttHGBWAM>`&R)L!;*5~8+_<W<Mod#$$2{<{#% z<89dfe$HO}dHd`KCq8BEdZz8i&wxxs3YGvYQ$Q_8OM%VtfA-eJ0MC4H@hNw9+(HRh z^jYW5#};X6SR78n5-knS%QSovX;||3_J#x?>g3+Up=UohxmiU$sF)|tKMko}hl<SK z`PgDD=2$r9LuJg1t^N1Qi0?qehfXa<>7eGW;F??Y<%IW&LL^CG=j)NPL)}@llKlXn z(Ja2xLA`BuNK9z``bi|@f+MXxht52^bmEwfTR!L9`Qyc?`uj6`ic29o?6%5ae`fFR zxaBT_I=k*XlrREcO=RO`sLM8E1aC*;Z82{|V<C(;63WNW0@@53-Nn}*;!S)d20_5K z;7!0juVBRU2v{7QK)lhyMuY%)=4Eytg1yd=(2tfdhvWOraF4+3Bp$)bjLCZp)TNa? z+rAH2FhhjfIhC@2&%GSYQ{x3lju55YuxOicnz0+425mx>K%F=a+7@CGEOo)uAfF?7 ziZ4*M81lD^_JFq`y$PDTv89OXLRr>Dvc~0%^0n9{hHZQk8|H6<V20#k#7l~2Ig`tv zP-)?Z{VroOh|tcMU<C#ke=G3s<uGC|a4YcFGX53JHqbl^la+iUhe!XLj9-@VdH6># zZGm6sZzN;<D&q=48*S}*w25UCxKx(n)=;8P%n^;GG{XzO7iJx15>a>%1CH}YOrOS= z8F^6pJ!Fx1kx^VeGcA-ys9b4z0d_mGAZY3(EeMKuAq7D-Z5Wp@J}H%m%taT(MU1<J zaTi(;aSrni4s#4DPtb2t5a22Bcm?AjH!q0yGk$bI+)bp6|F__R_$uRXT~I-MgK@=v z?m`P<ABUM)SV0ggKzeRei?m1WH93C=I@ls!DhtAIUX!8}scZfj6I;$5o8+hOX8*0R zMbIib9eft`C%w&+%<?>LVnP}W*3-C@!`Pglqfm{aKOTkt>4gpU0h*QvIn0F|hD72b z%yEr<AP;2G&a;e6f^dPnT5N4Ip@x5uu)YlJF^x$yq!nXoNaOu%fN7XwFvdM0Po-!e zd8J|K6~<vJUUi{ImAAs_GUNJa74qiDPvVXeV!#oKcyRPV_0Tv>Jop>%`z2QgN?<7j zp72k=rJ;EmZZF(l!QCMJRk)ACPo?z~+#&gW7u=`er`q}rT&l(A;Qj^N-@>I$YU3rw z%qQRw-lySy4(>j<55T4N{~+8);C>PAlW-q``(JRs0{7)e<JaIG2ltzBPlEd}+}FYV z7Tnjv{SMqS;8OTA;XVQv>jmTca80;>1D87Z-@&DU=O(!Qa6bxn9PU5D1%GdR3@-8T zABTHA+)u*&2;5uXg3mVo8SX#Ay$$Zoa4G!laPNTo8MvQ;dnep?z@?G(op5Qy-wpTQ z;a&;%Nw|C9{ub`L;Jys?aWz~LDE<*#S_`}z?rY(`2kz_Oz7H;~4JiC-xPJ<l1i{zB zr3SbJ<+~H^GPr*N_XxOuA^kkx!cXkT6ZnZW0=>0k%g2M&<y$+i_5|Ke1-n7v(Rx6H zy;;HjS;4-hU=J%8wLd}cX$4z^ybIV8`3B*nf>8~NI94hct=t5RCL$5`d<CPr6tF=B zd%J?YQ^BrLu=gt1#}(`r1-nbZsP;s>w3ZWbd|$zSu3*1Vunv^Fz&ldDwHvQjurn0w zYz6C6us11KS;4j{7;UbKw2&N0#4)R2f2v>~P_Ww->@x}mg%cU}K?S2#kD&L2f<2>P z&neh3i#@#K<XgM3TEW&Tn5|%rf(<Cxkb;qEYZ31b1$(!Gy-&feSFjH$*gXn%zk+>5 z!M>qj|EXZVQm_~pRS_??jQFkHI6=X%EhJ&s(2;m?1uH1ndIg(Mux$$VP6fMC!QQK2 z?^m!}6znzyyH~+Jr(oY#u>Vl7UntnG73|I6y@@YhW>n-`yFpi=5Qo0ZxJ<sa8z01* zD1+<&KXY#aA4QeDfmSbs&>d-3K}3uYArQqNs9;dLA;E4<09o9X0D|BkWJn_DxOC{C z!8VG^jLYbV`!+M`I0Ax8LfG9<6mdt#1w?0X8AMd_zVDo>+e<p=%zxhRz0R+4Zhdv{ zty@*M&N=tob5GeR81%(`B@7#K{D*M76Wvep=-g5mUWa#=L)0E-)QR!v!guM1!ozTB znAFq{Io4oHIQX55x8nG;alnbl0dZ#y#m0GB{mD3BIzBw?e7aI*S6iAjsc0ky0Xp|j zv795-41!oroz`XkFpjsA<K0ATCx!v-L~rL5Z>}8gg*$XWYg4>56=O~ilHQY)#Z2jP zq|isQbd|GkG>|L%9&p;k#PfcpV#6I}=Cu%|T3X_Gzc^t%#-$V16z^hRlXK`l-doCc zUhM>htY=^!;@yEkA<9d57PJfK^Pst);B`^9do?KS0c$`9g2J*A<vBNi9s#-uo5~KR zeAX0$Q6o@nuE8!b*i8oegTd}K*n<Z9o57YEjJmF#_icmiF&I50^t{=)_nI%qPWdd# zb;T&zHD7Qde6RAs&f<^s#Q*RKRusmS*i>Yw`B~E(XGEW=#ZfCz8^R9zKYVp>zm^4H z&*?sRH|;&S#qqT?@8lQ9pX`o9#r31J7i0YIy0TqK{b|ji*Y@tr3atRgfvrcuvjF}G zaHW9t^Igv{5nmUIZ;E~FdTmd^`sFyCwfW;vd}Hk6wwt#VtO~_n4Ar0B?Af&Wi-oTT zY8T;f?8of6fpEMDRwo!JU;${{*&gp};PEE7dchK~-GlSFugorqzn0nt!QM`8LVT07 zAoTsF*Y*}{48^v&LYueI?t~_9Yl~K(DS@Rgh6*+n*OxRGdsam@Zx1&&lm;Geh<J8| znl}`q@i1fs>b;mrp=|?>YA{RT9?_tYOV-c<K2FUIXx^IhnwBG1^Lb6+Lt-SL0yQMf z`*$HQ-uf6Q{TcKp%t60RF1{=+*#fQX3AV7%RSti6Wfd-~Tq+qXqfi|_%#b0*fxz{h zu69ks%SzSXu>fFjN7b9va+E(ts_5(50B*)=IRGsMPEM8>mCTc498sJj`LkRc=IALa zE|7zK@q%)2u!~pG2kC5U>Xb?HL338kYRe@@J69)bq)bh4_hi8iLX(KexlO*L)6A1L zbMQ^AjD9K3d<JI`$_4A{8fyJr1}w7M@*f5)^sDWFBdL5yh7@Evi<1iRnUU%6Ue?+; zrnaJdj&FccENlTC0{R|k3FtP^a?p=KSAu>5+64M3DDS{FPzsOjpp~FsgI0q=U_~#t z_o?9R!an;7kCRFL8=EpIrhL}91}nEyU<?MUGT3zn<CSSyD!5u7Z>3`E3`U<i#r|Qi z&ke>0q-DK!N)=qisNiZ@s<nz8Z!q>_#b}?>d^E)=MkA79zcUyOzKX3k*h>b(l>2Ee zOsv->78a4i9-AhY{lNIc8Zud!COa4&!MQ&1>27=oHepu7H{PXFCtf_ic^lw+C&$<m z_2=JTkAvjnSeV^N$HH2-_Q7hP@GU}5=75&nk8;WRvE3|3w!$vJUte?w(te=qhWVhp zuKu9Rvk{wi6Q&@Y4R*er@>!P{j5Y<$_maUj8H~5r1BZq>m-;b;gl5-;+=kO-y4?q( z0{(hn<C;MIrQL3PDSdyp`{4cD?t}kdy4`Gd`t3f*zTLPMx!stDjPkmm-O24<kF?%y zru23z#@nqJZ?|H+-HP#cE5_Tc7{xI>nrG#85MeB$xHNv_SUhITMTFyzgprECFS&V5 z2^Y1zA6o17MCvbdAybftnpZ)qJ*hapD*igBRUqMfzyeD>;pV1IJ7ngeE)Z^BSMx&@ zC%wGga=yz2jq&y2sg0$ct>M@guIi0gz85Z9TX}Az;EPDXJCTCD$<qiq15l~EtbUx! z(};<N($3AdW3Atw0WjG&j;Jf{)_j82{EXDR9`h_y*Oz+UE-QL_o<D@8LO4~?D|44p zd}c>@4ZK(*RZXv=At&8oz>T(2#(aToL|U(!R#lA;GhcGyB$%HvI1H$`L^=756%ly~ z<lI=<|C{B-QpAZ?iFC-<I?zZyr9y3YiFdrzmOd`)YAJO&7McwKb|PPIl%U~j%B5A) zDup+Y(dSFPH)MY-_Vt&KeW%Q<i)YT({AzV&4!1~Fathe2v=LOl2XWt0131-h-UWCC znzzKVnG!|%$8s!N8ccD%ME0jxBhb4O)=As=%@M{h$#A~3l!ia8yqi=`L1KYp@E(Fi zQS9M&pzL=-id~vx6zUUPN3%rs$3agI$$jP`#7y_O5AtPOmDLwZP2<rDCl}QKiUR)d zn&EdeSP3x&oqUDRP_D(zPh67y&}c>pO2Jk8;}o_kkd2(FssPzFo~gyIFvi8MK-Ylo ztWl7}qo&(vuEF(jI)j%ear?)<%kyxONN*_oU17Lle?AwKmw7%Y2Pu<4PX;{;bS&s( z(3zl9LD}`DgDwG`0lFIWH=yr;UJUvnD39|2&IP4F_!*mWD5iAsT(PP4QC<C_Sf#;! zZ>RiXyw<W080-;~?`4C%X0Z1S_L0F@gPw!WQS0krr~FnggAFj)K!c4k7zMJHrHM@I zJKJFM3`Pw?^Ic=GxWVo-*h2=R&aU+>Ggy<sFl4mrd&^+&8jJ={Eengjov)*v@>?{6 zYFiFB7)_swono-j2BX82*7t_NN-=4lTe_$?uRC26W$u1xY5aCdhr#cb#-E{ZC<A|u zFH%{sF5KJ*Q4m_|@fOFwjWjoL*1x=r&T2b2;<_Jgj$lSRuz+_mb^;!c<qlj&W)rC& z+Z?G6Hb*?0!=A>{qOJ4Vg^OMb#Ez6>#McQJDS9gq>ke>wV9t>&ABi^v`d8(3h;8!# zI!2*Qfipe{^dFuFL{1Ve*o5SJp};bCB(~N&JurKHU|9+3nB6cvuxI`Bz?InMygWU$ z$P-uwXm$g#jzHd3$UAfp3QymN3~Q$c_O6;9`0&-~fp;50f$ap9%G}}D8fHEm#ot(s z%-b^5J`z<ndF@mDikh{yCe*gIwCJ0_f+G6Z<@37UcrTETtHu!=t=yUoWb5>B;L3N) zigs0=R93LI%(H7T1t+BOfD#Mxn?3+_ems;+qB!i?8i{RpRlgjL^NAIG9f*B^TS=v0 zMx@|X>IH?7f`8E~BfqTR9eQQt%EP75H_{rOrFp|j0!xoL3jYFS^;fw{;%h?i6DU|6 zDtHM}{`UBuc;n!`1$%Fg?;26>bq)Te;G5eAuPRtowC^f!(Vi>Y740gCzf=+!{W6;# zqWZ9DWL=lexQLp)Q8eiCb}HsKBFMnhjbYE*;i7Z%=Fh_dC^S3LytcHcDz752fWC-y z2EYg!0v~Osz=t~tTOC_H6zhfP^vHvWy>e84Ak^MAB2NxM%4>1Zk}Ih-NcE8v{>gyb zjl{6D0ryvUA;@4q1|6A6VW^l4$Gl&qG7Q|WYB0yB25@M?Z<y;(R(-3gK|&SiC*>&m zq0HmA*4@tixQN5kz#<FLY)p4R$Q5_2kktOvhJKQ7KJq2Rp{+hp97b4|b-z1taF(tM zp-o72i)HRd+^SDdG*h3TNGESNQTG4r{u4Y95*0vyU<OL=key+xYi$difjYwH$YWvt zk2(bPfd<)E&jOC!^->>)=ijMvqZ7IT&p?i(H+HCN0B#KR13p*&4w3&)iGIL2QT{f` z|DNtcph<0Z4Nq#atshW^43SLT<q|j+EtUPd-D_O0NP#NZuTX`H*Fg4)IazZJcgeoq z5Ige}IoJ)^&Xa>`K+%I*(JY+l7&%rid1smDtask7NRCmH<JvT;KfG}>u|H4tz0zuG zcFv9KiXks=6(_<StUabd6K)#Xwu?~*C)W^NS?avl<o6|CwXTh#!ZX1>VWJ{E#>Si| z$A)D*F)hK#BUzr({@H3*Id)sBT{D2Ds$J~*nba<Jb;T2EmyV#f^N9T;51``3AsY-d z@|y?6s0&h8fU^Hw1v&&Y3d+8-0Q3M{Uo9y69dY(p;#+K-p6u6PpEtW6lsENyP<jq6 z2IYgh5tJhRHc;Nj+d<he?f|_A^e)iff!+;z9q2uv_krFA`Y31}=qk{MK&b{i4EmwH zPoBnoDtP;_se;Fp&zfwoX?DtIU1hMC!EP|v%?6`6Nb95NO6yx^FdBvwd)Hu8ITiEZ zo@m*&cFIT3R~tLRV4S7ae0;OD>@<V1XDN2I!LBvfg9dxlU`q`~1Fx1{Yp{(5+itKg z4QAm!YFoT^%4c;k7>(arAD6#qKF&!i7BLvT#1!Lm)qJxJcA3GhG#F<zH6Ld*wJc|| z6<cO7dKD|S&S2~Viv7c2|1#LO25UAL7tH86I@>9~)y-go4R)NtMjGs7gOwYM^PO5B zR~2Ymq6WLpV4UyNeBB|RH6IqL*_dtafZ`-mbIF#DC&_I?@gKv@u(^K#GlwfuKf+ZU zf1Qf!`FMJf*j^~E95fikwIkvBaZp@OX%2ffg*`8ZiyEo8ZVtp~L4<Z@>!=%5NBt;C zM}578j`|w%zn7v=1(x}Ny*YgmTou<rZ`=T#vN5piR4AKGqM1T%o&MVNMPWCz(YNII zoVA#_z_GnhOy8xliduJqqLwt}6d8sN(h5|yrAqr&YN;dz6ppfi1;5$90vdq=8Y$Xa zIjFSYt%zsu;=odWU3UC6N8?P<-I|+VrNL}QgeIUZk)l17#o>aj;euV$6JDf&r8%Af zIaz_Fuhn(PqyRd09!`ohuR|Skp}=AWRqQ-fc|&z3HH=50njMFls@ZW^tD4<yNTq6a zQ_&OBO+mZysA-b_2WT*pW>;A~<yYx-=NMDa1*i%!icxJp7$T0^ufBJNl%nF|l<JJ> z(bHjqZOt5%(D`=D;${jitj^6~{@I<``~&MQewWI`56wTka>xABhe@bwR1#>-(fxW% zv2Y(BeUZE+)<9^}De4;wgmF;yzZK$yrW(j4BGfyhT8^mk?QK*#*j#mmU{_mhfu4e^ zrX80jO*Q8@_a@n#18XXNx2BkLo)B!5>m!(q`e5d0Ka<F|>QIOhEma4q8>y;8kTv5@ zt5=#D=V-BE7i^(A(Dq)(1NM)7jG9AxY?s?uFGyVWyF5@{N?%YmzdtBVFatn&*~EF1 zi1P*#zXSA0P(F=9P|Q_ZgFrWf4hG!{IuMjkb|@$%`;XXEvNNTo8^xyDN7Zzr7~dz& zN7IdBw;PP68^vh4(R?)6DE6kozBU+{rsivpHfg?2cFHFP8^wAX?0A#!M1xV;)_hd6 zwLV(+6q{qPYYav+jpqBK!R|I#qruh~jNZXoAAO3o><)u{Ww80+C7SPYJEZ|mV04ER z;<y^KyJAr(8T@)!O)91Fcf#=}X;J}GgFIU6ahGbatSSUQc`Z`#L%3jbxOrow;OoGl z#p3zz4U8DzZ68?L5UO*X5XD_|2Fi{-{I#;8P4h7NZ$w<JNYUoGFWUBS_@=NO7$bK# zrf~XZ9h)|?C6{DBT!<}{iT}YG{@+-_!|=NFViZOfa%ZraFm{q%oQl@yuaEE>j{cP2 z(9hZ_lVEIPP5#@Gc#l0WC9@Kd3?EWuUM{&LM1V`mY}=_hOg>IdJvnJuql}7n=dp6^ z1n{^Xh9SY@+_o=s46MxOs-&vz@gR-$<S7htz;-ZL25&9xwd6*UZ27NM`>_)`FB9+S z&U#QITwR3wn`!6rq!aM@lJ~U3Ho?YE08ijE9|_7UDFNmE7zN5}kAO}BJq5HHv=o%K z`IA9;F{go&r~HIXc?wfL>wJSvu~R;4w!!8a><)wd$zYEf?5_sfXfRBa%h`O^=LXwp zu<s4VH&WZu1rI{oN28)*g$5g9Fg{Jqce=sINffIz7$=Vviy7=YgK-R}=Ln7uP0+<q zW$`^F@sG;l!E7w+-j0S@Twlw&Bk{JJnj0I5&k=TU=JR+}V3Wh@76j2-6r0aH^(S}H zHB#Uwxux|_Z34JxWfcFBqmDZgl1IEn!bRJ$(q+WUm?J|3A_+MZTe%o{tm;yj<NBTe z?e401^CR&rMpHT@elsNm78)l4Dq$h>S>Z)PBa5=a_2KMNObjlH^Ca;&vwFT>6lZmG zy~9#s33tR0LM3m>b=g6V_8`d7IthQI7h9b(xOvC9IQ0uZ;h#njDjB?6*7SrH&Ff$X zDq;i4tj?5H&h28BD$BC-Q2muZ?ery<MWav!S|Uq?V$H7V1JRD^j*<8o*^&A&U8FgK z8+N+6Y8rP~R}9H&pwPMJH1UmLXYnFt93;G?cHut<qh5=H$vO{H^r?7NFh2I(lH#RP zp#2%_J6(yq3%Ptab~ES+sZ6vAu}mg8QFHOOrY}Gyli=938;WyPB=;%j^w&*R_3|Bb zSyN|J&;HFMMi&;&LXAp)J;fhq>sgWsfq~@kSW}03{nI#ifaJdpF=*7^1`BxRPMbb+ zzKM><0ki%(NF}r}Da(qxsF|ro$5q2@W=CZ0DcSv^<MHnDC7@Q;8TUi;AkwJR>Jver z3_cMoh<PZ?3#Huoau&MpA<D;W^#$T<d7d0yV{QgQ0ajNbW|3()@80o}$>rh-WZp4M zcU>}h<}9oLke1N!MkWRo2~&Y;JZzNx_wdBKV~Vu^maI02*w{|)r$(<aev4FY@0RQ* z%EgAk*x#4^v+(S4At}!8*arJte||AcK@2;?6~+uZL&mQcC<T)L*^GZIuv9g)8<fj4 zf$~bmxRRc|v-E+_8wdEjnRkZCoAgYb`9n6|`LVBNW2Y~+;WoY#&Wn7`U}I4}(Y>H~ zpzYkcz##{;0{e*TAp!wrjp!BF?*_U6^dQhW(1Ss51nmuaCny}cWpVNmp!Z{cASk^& z27#^w9SZt9C`=;JM$qA)Yd}Mwyty!aNd%fxL7TB(3fc~BhAAvc29HGm(Stz8gB}VB z(^#}0=tR(?LC*ml0SZ%DlrO~jpc6nRfwEss0WAle2Fkt;lS}jxP#9dqU#bd}$|RJ% zD0?x?FCzH%pe-u+m{Mh0F)GuF&9PH{i6NudEe5;I<a^3s%M8|JFdEFXELj^<esM=u zjQ<tmd#BieXs2R5>=YLB8f<{Us9<Y8D%e_<<`BiE7>s^oic$7xzIzPzfWcN9Y`wwW zFc_tXmi2&tYJF|(l+WT40L9Rw?0gLdTWzr5c*YHcI1MB6>$xR^8&(vLE{X8YSn-=@ zA)7AWmFOvh;cNsEhiE5-PUMt95;=wOP6`1Zy)JegnEC<~mKrpQUI&^M&S{D*;^52P zA$R!}n^)pjZI+ZH4#+Zxr1^-=Lk>D!{1#g$y#M+Wr=@vwXCfL!q-1n)23g?DP*7I` z7qQC0^;6|RJ7}JX_+1QV<!_hO-qQwgyG9(~xK9rO+%G8`<D`2I_K)(P?vMD#XL&uH z{1da<dAwOUIc<DSp)I|1Dd;+KbxZxqMsy_CQnmU7D>-r)U9mj<va)j8y8V~=^RnDI zZQA8{QJEuH5^imWu|ACK8K2A9{+n^Ry0wX4TUe^pf4tY(*m%E(D`Z`P08hM!QPA^1 zYd|jmT>yHKz0YUEed@7WvFYo~l)6JIR&F0vcSyx31U26mcFHetP!#Kr{-F7ev{OFD zJg~7^gCQu;8MdYvOb!Z!cr6I?vKTd^n-|CThT=bz#J9y?UiekjWw9OZs`Ic+zUoB& zJB&WX3;A+{>O*@T`JNWMg=?_8Hpb;H-kldE;m;Y|y>lGAk+TEWtN^r}+@d&e-}<@7 z?%+H@Qi;b*3D3@4l;{w+=3y;?Z(5>6Aa=XS;o_ioekq~>MbYqL#HG0nv}ED#s!nOq zaiIV0j_vWFdC0T`nW_%{UZP%7&!`U6m+X7wM_fpCo7lc!RaaDyh~fOAyrqM8$8X7d z7zJZ{U6(*t?205+Svj}@SHrmUas%KX77Q$1hsEE)x|MZkYq0LIYe4F5u9cmqenK<q z;@4s)iu<v2Lvh_xjJjF8XeEvH#f$Ev^ZQ(%EE^9z{_4)02>v?@$wSaE7sd0D!|<7W zU>c&SzofFkWCn!dtLgPvoOgtz7{KXBNo5z;#jZo~&~mC}brbT2tQc1uj^Ow}v>*>h z(CkGZ#dVkG6%^N9katuNsls60th_<Rbyays2k~#PT({Oi#)gS;y%iatc$_R!f?3BK z>q_(bpkc}|anjs)qqhApCNN|n=j@%vA~hltly7~|)Y|7)_l~aQZS_=jipp)yp4)D1 zjFFr6>};!v>~->p`EWR&Khy*&imeV}%Klug)K7boEkb<$UypOVs}YPiZhVkEP<T28 ztk*gMZF@wpAxJ3}LF&(f(OzI<xGa?f=OU$&fa}fPkXoKJ7}mZ}8%NEYCAm*(IT-)f zO1?fwEfK81V4OL*ORyq?apvR>!A>>Uc%*I>>>PtlMT)Dyyw-0F=Ex@+f70bs1#%sX zmXIC}POiUX`4lc5w;%a*xD+_m^MyNIJ{=Bu<%od93i{5@DWGIi#&HasFId>~F(P|1 zyb<+We2jbA%nN7e=wb#k>2IJEqJB0|fDxV#+?=;|q7Y1(S%vSZR8-B7eBF_!K=PHK za*qg53Tgcn$QXhw90RI3v*yg5RCQ^EhW<VfU~kDa+ViEG(Tz$vjxjCe0hc&NkT)|l zkyFXVP`E2AXU>_eRZ(EiMzMcLRUg50uGLVK>QAd7hwNginLd-Bk4e-(l_OhP-DqkU zYL|B!vIP6xObsR|MB<8g-$PQ#Td-ptV6G?#Tz}dWvQrN4UOSU0Wj`H7_=Nf-sS(sR zvfAf(YF^IC8V=3DbBzCR2>ua$9TkFlM}ATP(K{AYLh+ag#p85QJjVYD#ls1Y-aDx- zQ8*S{sT#)>M&rm%*El%JyA-csvc}OpsUChm1`SzImgURo+_^mlZOlyNXA1^Cj((Dx zR6@>Nv)w-c*NQ^ko>X?ArjEuuMM4#0F5H@i9FNbRCC&5sm=PnE(H#fiG}K2JdCJ+G z(4*;;s!<SmGyFmt`<>l@(Wp|xksdP)y{V&k_oNOaIZH7gMfie^ap_Ch8CcX{_De@o zV;w;DYq+YKmx`lH_IbsVUYbL2;I^a#X)i)|9A07$CwK6JafE$NYfS67^q6JWV`oG& z&>4+gbGh_o9K(;iD;snOwm;kW9t_XO*Y<&)0}4(WodP->v=X!slqP^dpf`XH0DS<o z2k4(c!J(t%^FGjbK}UdY2Q3Eu9<&5>FX$Pd)bqfBqeDT@1sw$nJ{+A0iaG7**`U>+ z^`Mu4Hh^9M+GOw3mw@{(gI*1~$==@%dL{P3fUL_vF$9<60nixsIaFePswm7y9R;g` zqkTXx1swp&dXKV?4*^9)z9@#+h?Z(a>1k5~IudjNC}+o6-_xKlennpdy%zL+&>KJz z5Z}Tqe3afVH-UZ+dNXJT-2an6b3uoJ;@(;VL4%<ApkqP1gO-CH07^akO>C-XGo^aA zV&(Qx)w302@6degeTv;;uq6h&-(WNyXub^w<Gx~V8|-I;;We_)!6|>u*VSOh8jOQw z9`#u?R%t$3juoph*g}K--e9*IjL%-nt~1zM2BQnG)|ZWYtod^6l+VgF7*#{f_oKn+ zpP|@ixZiD2li&KnPWh~@&;hi*_w1C;Rq5Ig@tD|ML#5mm=73`tMjq8|N?;PsModlA zbxGIgGos?zN?3K*9be&Q?5-i`uI_2Wd{v;}oeKpIieXUa=!@&UmrP&uBrGV_ijoPX zV<i*x`qSa~;7;)fIC-BlGA|4*M`I8>>|}gWhI;6rz|yuLM@wNnD0v-aH(Y;}Cmj2y ztNNLQjvE#o_taz^7m(_>kt7}Wlr$Yz%>eH7>yT5wMBe*2+UAwDj(?NX1YoKiUW(MW z*t`~vT$?4up7@5O*sl~Dgp_K6cpPF>z7w}6T}xx{qt;4#D8!5YlC-q3r4vdrXlV>t zPTf_DbaS1EzQ8q>sg{I8rQ~}hR3<7W&ze?+Pq{HiVpi@TnWX2$+Cg&aLtLYgcb4^- z<fAvhTY{e{HB}>x#i7*~PeN@{k}3>jDt<j&qo7e#Sxcm3La~Fa!x_0ulW#a32}{82 zsfpC~;69oEftFe!APw;Q0O#t8v2>f3ibnLU|5(vzkGjLCRi3RChW3{#&^^(Qf0e>P zQ)RNkk!&eZg(Ig;^p>2gcGM2qQ}bw(N%QCgHG%z}Dgt#Wss{VFl%%QvM;|LH02R$t z6@ZEXdoG_gqvhz+CK?3FCpX6BJUNPA*1#u_5Wn95*^15iu}@}Wr#rTnZ17HSdG^<b zK&hx>JSEX_9s?bTeS8ifS_--hluz?L&>5f&pjUu4f!2UN2g?4i29*3BaVsQR4)^b} z_wNH;i~Wb}{YUM6&K<4;{<Mw149a@hQ{MrlvG`rkTu`3B5R~nsblQSVr4v&sofIp# zkNQMoQEa}!{$Qv4=)YQv4`2Lo>SN2aJ{r2U>?(t8GuS5v+hZ^qb+s&q0$Mi5PWddF zaupkBu&WJrt-;nBj5>$bN9o@Vdw%O=JLR*UKuYWTyPYyp0!{=73GgM1ufb$nRS6{p z*3o;arv{cSB8#7nuX(jo1COh^CtUrf7d3K5uPd&^SZQ{U1K`*TATSoKt1J0rMe)g} zPI0(7pm6=fPm*>;+=O;FxC6BdQHD!6isKD+C7&XN6)EdOuvml|cVyR<d=4ZlzP=cB zV&67M6xWq~R#&#Yu4G4b&ya6J$hW?#MVrW@r4^y&G$lGGxA&5oqsY$l14|dtsH7Kx zvu1Dp9EFOD)?MB{Ssw1Z63ZjdoKG3En^zfHj#3udCtOGOk}tO<;>fg#+aS`){*jPq zB>*VUN<K33tmNY~aTbo3?K1Wj$mTPhDbe70O?)b96Nw=8wn($nkWy(z3#m%8C{il9 z-bV`W4J6#BNNK*Gk<xqtJW$Oy45<$#A14<y-+4%BK92u2A2lbHj?Wv6y%Zt==WwLs z&!{O~I(~p0xyZN*^pH%_amuMDXR@(V#!))<L0LwTO_hp$Wa@8pJ{vG)^3>lzBqWQ( z@%aA70Wi!TYJCLyEriesuC|#i3j7vWLed@Knh2RS4QBbf5cQA}?$j<kzcbd(L%K(j z^s&d<+2{HF7)5qUG3|Ft%4ZK}t07Z70cRY}(X2C)?U|IB-%-tRN8x&z1u5jt@!(4z zj^RaDXwde*l<mUeiNR<vYw49<gC}~wzb%V<vphN8Zpn4<X0nd^rH)P+%X^}C$hlb< z!|9Hh%9D|j1@rvLqj$Y6p6EYOL-)?k^-@+Q=dy1~jSF`rtCN!}`K}z2bWQfH_ScN| zw-<xP33*PDj0TOGh0rr5_`_n*=z#f@b{@~Km`TaS1>J&vM<Z4XJ)`CZ=owjV|K<KZ zxUx3cIi8G$4SKV|VrL$1ri-48i|*7ZlX}6Md2rH&vpaZdigCiW9y|<BCuT_2K^#-X zFPkK&FgO9S$0D7oesIQ`0-vuHR0_UUv?-JWs=~%eY-5O{`oWihuSY`t06+~SU#=es z{P_N7gZ9SO)5bTq(HK2jLHh%LA9NJxN1ziyKL$M;^i$CDKtBVWX7A6i_pbr{9Qbvh zJ3#*cx)XE>=$D`m+53;#`+o!d3ixsxf7afA0rX$MspqrYMjPK`<L`ie2Yd(U_n`j- z-3v+$<wwwiL7PD-+g({YjqL?3#(rB+jzhCS&$9RFvci4xLmwzLnr+xrqhU%l8pX=7 z&y)}PypylOU~z-dO0o@`&suG;^#-fPxp>qMZ(=9kGX{IkU_Th_XM=5m6x6bB*eRby zn}T9p>=af|cpZ#>|2(Q%Np}ug;os8+h<=9@pScLr!SaXrIDERIG%tTU55>o0cv_lw zgzj`^y3ju0<<1a$C!0G%?VTL%47YbWa3^T*KyN6`E0!I6U#{wRE6T=&r-qj2vJv(N z+Uz}@jL~nlWq{(haxx}qzM8W!s6wV<@PQ9b6dh*ft8=l}d)+lD^VOV62`7v83XHhN zPHN(Gl1lY_q&WWcTF01F$fQP_6m4aiZ-z-#o74i6B3o7o{uiWFf;S+g5*(8OHby-l zRf6*?59txkdLb7_mRX>=;6?gN8sAP0k1Lx5_oQhTWEkb9%I!n#F{v}^-G@GTV#h6~ zvl;U*m4g)eIvo8;_7el$o+6OfrU+!-x@5^mDdCA;EpzQ|PiHXAU$A>eSO3Qo?ycIr zqnm!!OgmXj@-Q@mc!>Uqqt90D-hD9w%|;#DaHICOQ6iAfXZYDh>M#yD5}_RFREZD( zmuFYw0~+JP19FVMd<e;GpIo1O$@#I*uz`MT7ueuDa7lKbD?rKht^^$h8U-x@tpObe z8UvjKS_?|9cQxpxpx1z24Y~-FeeqgQ)<X-ha!;l-lAB`F?V~<xuE}?a!N@Z;-^~WQ z+hF$@>|&ft^ZnLNfwSQ~Q4A9YlJa4sgyl+srJX{JA7>Z)H(?i{-p6_DU6PRhb&3&j z>G}>dp*f$7nvY5IP8q<g_#KX|A8(xelHWTz8vf!dHvonh=L3T3o`!FQ%$%*^q!TY! zH_@m+JD6{x`BYxQIdOnY{!tl+X=&Q*3o(huH=8rA`s0^#H7X!qL3TXnNE&U`h58_L zHWp$V98WsCsnkrmn?uq(PL1ROVw2!ltxYmB5cxozAMYdkA|8~@SYT^Fx5F-_rSu_= z`Lz!*<r7Cn#U^84v06Ljmo+1bv6pDRhfF@yX=CdRMyap)%Iy^T5PYMG(-y=<;#*<b z#rL@xtFk*HQdV`|j!H0-kHzwc;-KHhmL*oS-P-G`c(uyqk3~wkycemjvCYQ$(mDDm zz{y2Psf6n<y=P65`<&Sm_7v2rzeA)Slw$u70s6^4Bke?FUxU!4^{Yg;>mk``yzC*_ zkCJ_c%XW%$(z!*yqmZE8k`tNihl!4=F){i5YNvv99eY2fx>h4rvI7pq*|cw(4j2T~ zvIB|^JQjzXAMZ1JU|Vd(Hdtf#z!)f>1^0Oe!QrC)K<hxs-ReP)2L-p1{RX79r!uA7 zPBC&j#mMaxBezp*fx)ge*gXb&z+g`r>}i8F8f=ZhJ~r5A2BQ>cz~&cMY^E?YbU7G# zwqmsgt1}q1#C*OHC&h0}Q@H3L2(_wJ@4%W=Z7a4qzlk?lUkK+lI0Ppemd0Sqkc-E| z*f<BSzZS0n9h`sZEeM-l&&s$;kG6xBK6+qn_%XIongzQnG>3!S9BcPVA82<*3EFEZ zH#qcj_$&v??92Ibti``p`?6y>X6uq=xOCeYN%iplWMlJTJJ-f<K{w<*yA`w@=slop z92jA=tG!=n?^BuOaSHjnKu6j*Z_)kOXZLQzrrnt-UC6H3H2bJe+%pxUva9(hycMJH zR&1TYUNjipgft%~fHfbwS)i8VKZ%9P@kwFo_yi7OFa;Ki<5hew61lXW!jL&3ub-{) zV~@7X<-9-C`8fh$FU@m&SPxGb6ZBmty|g!SZ^uTn<)W2CA(3QHM;Dwa%X93RY8@OQ zSusRP9zKLId?=jMbRdrD@Zl<?w6}v<Sg&LAT1)U>1;H|;Ahdxw@4{Z}4NqHMwicP# zI#QZb^w;8Dm@#eg1^BXB=GTEtnF0u^nf*FwEktz~;F5sKY))cnLz2rpGqJbpPelR6 z{!s$_K`P-ATyh~+lJG}LQb`iVys=V%F*BS3d?`Pn;ma8Ga*<A+2BLomUPbS)thR8) z?N2KY9cKC7^-q6idn04EC#x-vBcG?OSlhUZ+2DkQhOg<H(9`L+!q=5=M~0uRkLTl% zqmKuXPSwY0jtK+hd*G-@ve1Ou5G9Ttu<r(6^jv_v;^Y^dY?@{e=f`KBjg4aH&o+1} z-cKgSgR)<o4|*ghaXt?254QLD%(>6^d=lsh_CCd4IriBw9-jcp<G-=-3VXi_^lac) z+BifaKVl&(6lQ>eS8#b+l#@m%BYfjqq?K<l<&!~%VkjYlU!4R}Y`(#2?UX8UTJ{lx z{l(;a#$eAGY=gmGHrN*iqhUzv+iS3W2J3)#UE9*dPMHCNFVy%E1`G(N=nNQSmuSfU z+74790|u5(yu&m*6{X3u0nCcu;n<F8{T<fNX=Hwd6MEgR9ya{KOPClJkgfcW#|7;6 zWDqIc{#OqIP%4VT42>#%>II~=Pch}QrsBV17uqQwIGclAZ?MM<_PD_~VX0*)fwVr6 zJM7FNcO>4Y_;f_#KQO{){Ow515AdnJDsW8{nM&e~+d(i)*j;rPZCE`^G2a&7;z)?p zJ!kF-OC~V+RGLSn$@mNdQn5A2%s;hUR*~*Vkvuu}($Q#$c0j(=o3VMVGx1+V%pC@! z_6YAL99@bO8B3zeK8%ikVw%`li5z@@q#QTuFInth-4v$5@nO(b2D{E$jKiep9o7Oo zLKQYnZHF1*!`Hi2;lqkLJ7w_2@?)*}M&LLF8BaTDD8nKg`Sg-vccF7+Ns+{8q?f(# zvYaYf3};vg$3LnXE<rpBb=FM`t#ySm<AXVsv{*HA?tkS|QHXY5ENu_95Q3fy)t2=O zKAcmecw*H^`lOfVSpO+7WwmdgJ_@6VbTD#;UvQ#;Hk;~1F=$9DP85`pL(!@hGLmDs zAP%IB;lhCWU`sI~P(+qvbAIff+1RM^QjGEUH?R%Tr$E_<xzAn*g-iS@R)A78qHL7v zGc->5iVy^fh_dCNRDr+4rfi2PpM1Ybv5V}ZK3Nc{7=@(fBP&vjtVl63AjQxs8*4Hc z6=co#vB5qw*lvSSfN8!gbWE+!XQzBtKZ6w*tjJ&|8H|H`Elclgt?y3;yVqdv8|)*4 z(W=%Tdwy%Io$^`FBBk{;*eRW1ND7~Ph8-j`H$E4$0T*>aJcmuF1s}RxX?dYkEH3&W zaPkKTjfus`Rk^UP^el-Z+R&R3drBa6ui)FNu4KF&Lh-w~E-qY;W#I9XcCJ{syZRuq z%OKY-V=|)(3z%c8a~aielCwa<sq!UgOg6(j3#m7-d96R-e_Yt)pO8vrlLz49My9dJ z`;d!WjP%6T*d)E%r(Gacn@L!9+lrE&knjv$6Y9wI#{E$(7u`-r)5zk|mMABzHHA`y z))}%6e!s389KW2U1olE+$<qZ#2TGo51kmdu)h4afb(mgX$#Ml|w^W<wyXh<%mU=jS zrWag`Y59N|H#nJOWie}`HAq=#9h5~M8kQJg)5hf)>W^e(L>U?K={PN!2tw`3HwP$D zPB)jGoiYyp1<nO~XBy`kDx52b%2Ty_GAMGRq!q)W%jl%)VjOXP><45=0c^E4com$f z*+-(bb9D_U?_3O&PYXVv;^u{QR5Gc09q1(B*Mm+6y%Chc;3m-Dg5C^T1$qnUC7`#0 zUIvQQWYL>JZv!R!`T?7=FQ$CBVGcIOPWi0g8SE;9vFB^qdkywigMpdKQJ;)wHQyG4 z{oCZ@5j}4YJTlG4$p^(o8jJ>Z#cnhhU4Iqh>R2uNh`~NYY5+FB1YTmwC*R)IeEE1w zwXCdl9m_Zo<xt`5i0u-$H5{J{-gJ3hMR?u1=6wi=iahg6@!ef4!V6=j;7KmNDn*7M zb}s82imhuKYHap|cCXD2)ZUI0hNAnBx&bMKn~(q!P!C<<qFr-KVGLflJ5bBG7m?+x zoJS-W4T5k5t~m!dLbVTYIg!7T!@eT|P1v(1T(o8G<{eypU0PoPhvHYI!rs^q$Mzx6 z+84O9F%IP{L<oK##0jQ`kD@S`T47SaU#O)LObuU2K`tp|NBo_R7`V$=^i3?tLsT>g z>>ETB-iD;`X{|;-YZ)`G;XjR;wlT2aGTfU$zO+rF_7<W&sZo1BM2Pyz{-p(tZ12)8 z*-or8y=|-Fo5E99A-1yIwpZr9hX>Oku#nE?rSVts?cz`(?nOBM7)2HyVs6!OsXBVN zXk8@?JaRl7-xH3<&O}Z``lxD;P$4W8Ui26tR3F@b^(D2tFGcO?=f(*RbE>t^)3Wxm zcu982;0+OkY>U6?j3&bIco1ji7ng&K*%4;+kNNaLtDt<FK}lCm`)pU#&)F}um<7U% z;<9J2W^9g8O2=c%@gHaII!yNG9)Qzu()%14%}S~Xcc??v@fok-*WRSuz`|SjUZsqS z5)UBwf2=<0RG)sE_15lq3g`X+FNTJ;`wA%yZ3kIqhqmjCR39iFUdxXg@*{G1<%8Wn zN$MhCKTC@K`THcb3aPgw)eiar-$5^zYgnr!bt+O?3zm9F3=gmMC{kL>KatW}a7vl{ z!BlDsE5SbG%EEEd90~~eB@MZz&zyY$rt`VZErSl>c&)dWV!J$tdfHh1J?ZNU+gpt8 zaSN(X`{HpzmpEGF`$XKKqot~sJde816|*@tcUb5UsfmJ}PKc)o@)u8yd%9>6eXyTx zNiZdb2;uN)fSu(8eEI%C*G#Lw+wU6fDS=T_BjQmHgi7K*6t?-9u)lY7onc+?>S29_ zjp6DjI{D*JpBm8s!K9Gw^*-B^4-qiQ)y8@RWlnRSVZGw+VIAo~UAWd<-cxJJw8|<8 z!^M_Ucj-#h+Tq#aE|YoKT-kRPS<RVrfd-Q1EZs?R=mpPh?#XD8PI_Tov-!pZt4xeG zw|UmP$3ZwbXP%n~C$m;6%61Jz0ZxQ{Cs*;Ui@}!*;GoG<US|!0H9TgGbq%p@#LC6T zK{@fjJL?1%q^h_<_6x-QlFx3w?4JVNj^S^dx_@vTh$lA)Xf^0fILph{JnM9{;8s_T z^)x8+Q*YF^>_%vt0I)%rm=9oTYal*IbD1^XH3+VE0qbv|Yzwsy=Q9+YkfO$bSR&9j zb)^2LT-TxKKN=-QHKg-A?Q!PIaNghJyl;c<b`>C!$vkU?d!Y5BJI6Z6Gf>LVl&syN zhr125%;V6OacI*YK%YXJ{)sltLtB=kO<O=|J=Xif5Mz8C?0CziRl^ZU@km!+!JK6h z>@eM3nL12rO}w5kY8rz#lAqaNEeu<8Ab0`XcwJr49nZw%VKt6Cfnnxl@MXQtm59NZ z2zka@xUh`1@Wo&)h`EB_-L8XC!%);viFiuqv|9SFb{qJbvvjqTz5>s;FW$nAxSPrM zz-c+-7;tH-?z=25ux8&Ml%#|ggBj#_7Ci0G%F51Z>-QX<<@2=h55)hr{u%yJur_!) z!KKo%3HXscfUUcILYFnYde$tyTU7ZS{{vcDR?5lvr9<aksH&*aPm;3-zbuD~L}hpU zW`d}gLG(soW0?5#eVQr9@)BD9g8DJBavVw3-uX@B89>SOlD>&-tdVGd`H}Zhf2XFT zZ-iz21;N_LRG$N7FMA%8d~X}*G|+#5k~w`2N_~6>D0}>uptpnm3zTojF3{&dzX4qZ z`ft!&+=uT$M}Y1DT?<N_y`MPWB;wK*#KG8yeK;LQxtP%l%AR-_C>Jqe8L=#0%m?M- z#R5<+T08=jA+QI6a`=7}DEr<qpor^Z9S4edJ=RcA_Ns}X43m5|DErU3po>AvLGJ^d z0{STER8aP(nV?v(Xw3pW5|sN#+xtU7+hYGj&>T>{N$o)=fMUKhdOj!|jH4HUb^-k@ zXjjnrpa+9ufu(f_=weXJzec%mzX<d$&>$$^iV>hsftG+`>5DZAbOUG@bQ5R<^exaa zpdW#r2Ko)?IM5$J$AfabL_I;rOH8SiSus9c#W-G4>?(ut*(!Fg!8l%0jN>IOyUAd* zH7NG2!M-;bbrUVy%})6&nsF4P8Ar>~c%#^OgI#N|>kam_!RT75Wog>cvL6|YeM>Pe zoz;Bp?G)mZ8SE5;jW*cX21A4>yDYURt&hD+>$}5Xe=^t>gS}%gE}GS{Ul?q+!S)(# z0G^-bqb{cBm}RgEgGCKiYp|sTTVXIPiL&e4Xt19Q29?h~M~<EHTOAB`yutW6Uv0}N z2IJ>^6{|2<mBFG0t2NkH2K(AzInW#RdOO%DpLLtT_^Dkz2c0&WYlh%H#pQodO)k=b z1sCBN+g}~!Tt^{C!MTCjVSsnn%))>7I?0dDXjOIESF@0%mflXXqYhZOo}AHIoN^@k zW7|M%H(-pG-^KS$YKxc$!!<h*-vsbF0Sh+8Yr3Pd=JlRcgI^DQzYDo;kt4<N8Zxos z_@?55Rf}r4Mi&|CL(L&iL+Jaj7s&;b!1<~c!<VR>GKRC1>KAs(=sCdsz|tFGKLM#> z<d?wXn__#jFF!(08i{Wxor=>&@bOalxF`o&ya^ag<znoUFM}X7ge^p73@r!0E*bH~ zQx=kuS&IUpXYhFNQMiV|uWv`fO0Bc$96()>!z*$B*<C#1rxuXZEjZdqQe+t&C3PI1 z12(V4DRWKDM@oku$Rb0CBY>p)kHw`Fe3d{cqxF|MgqT^`+Gkd%T2L_S?{ZgnS099Q zO!$p4kQwR)YgB(iY6AQ5bFl?-A<Co*WW<E+*y~I^3nq^7;YWT1b<(9XXHSJcbH-yl zba3WFI%^6S<cxLdQOf#naKiP@NkMt9DC!Tyh8Y0)`SG25-rqw(JAn2E?FrfsbTH@u z&{3dAfQ|<}5|kHmB4|125YUT3j|HVFFbwntP#)*g8wI)z^i)uGwlYu}t44#;;Bz)8 zSB7$bs=a@qz0bGvEZ}^$%tw*MVW^5Mrqt(5vFY|vouN?dN`q}gioMQny<(?))@Mku zcVgYUo$^`GGcER0ztzT0X{>4XQ@=%%6jMGch?Jg#t1FlSCZXoytKgecB%b+i!wYAq z<ApO!yl{XVPus=(6```wg*q)N?@+?=W~gHb$pHNi=2kH~a8A=OG?<duD_@@3EU8KO zPdV+Sr&OBH8bd&&zj~Z&&cgNpw!BQQ-i5ft{W{~*ONXN=Sa3yOPrQnql2*uJggR}~ zg_AG7c(P>bECu*aKTN}+6Pv)sa7d8q={6L2jvT!kUZDv)yg29Q+rIf7TKML-nAM#6 zU(agl(D67c-L=Ov`&Z3s&XmTtKC6kyG$-uWK|gs(0$qwQ=t+vf*ABr#Mt3An%as$g z_}3~=b0#-=ePdin4~f1$yzS{uePl=Br25%^$d1^DhTC`@!s~JWdQi?NaGyPd`}v?Z zfbwB41|>Uq8=JBNrj#8hHr+m|4)=<YL215Q?Udj8qro0B7+a?K))<V|2gPW~*ZOG5 zS8Rd7$gC8bfOkgo(U7VbLiizy#h1B(Wi|5whT~sErqbP_XxEj_@?zlzoWtX1$q)+T zSZXZc6%)osX2>Df-xuz_auhzaRt#3Ptn>;A&o)+EElv|hKvayH83aQ^XE@7)Cos6N zhI(T#`J#Q7HzfE;P%0Ri?5hDteKkT!z8WK1EEY!VoaT}Xd<^B$3)6_RhW8|-l+|!5 zM_ElRQp#$`jTHl16)8^xWcte84{?lLg%YJFPa?l0DL*4JenJKdAq^vBGTkNrTFk_y zTL-(#SiJ$F50S)XR%#rvgk`Xk*j8vgQ$F<~#J}63k&WG6gI7o~$0DXiwskn8h7n7+ z0CpAbl!#K%36Uhmq7rs%&eUgv<+TWf6<z#a@tq)Qyoc4o%caH2(dZw4732AXlut08 zWbUcUWpmn0%xTx&e*oD}#^@BuuEnx+^lUKNw&GgcA>Fl@_jjV4vK#Jj!Xd+nZ1Kx1 zDu~jlYL_#M$;Ug!CC`bb5#Dv>T8v;JFnJc?)DRZphP)WC^K<%P@?>X6tej-u>;_8B zsV69(X@Af{&|J`wpuItPiabzW=;5Ge+xt`P{aN;Yg}q+~%5rQ&J}CP?>m}>^2%EA# zrgWvIV&(Qxjf|uiuUGR?J5%gtgWYYg`wX_$VAP$o>^lbgz+ig}_LISA3)6E<uv0#3 zvB7RJm<R8==4)%GeAb-?TVgP<&2Y_^%fTX&y`yXMmH>&ww}XL}Ay9s8Au7i3Du~#k zf6v>7W7sKd{4CqUL08aiQXWaw?5jnC0}I-+RCIo}=MrCV_gYV2A*K*85m}oT<oOmo zoA(6hc4W2Udw7<wk!oHSYd$RyW6rg;!<i8!iV+cWZS%Tf%wJ-9HFw3>kt1h@@x|19 zaNTuSHNYyQ9_%x&|8ndX$8kV%7JJs|LHL3c(AT4{1hu$Dn_=_q43GrpG<@CR?{RH* z7-2VgBf|0P<YpP??V8oRn~5Nra%v}nX6rl7d0q;~Z@vu|uQ~Pq0k|CX0*@g@#~rUk z$!7=gN=_96RIHWdcSlOaz~M;!Ao-3&s!>w3XoJO~?D_b=(!&&o2<(^$TZz>3f>jud zL&iqIt}xg_q*e=7Z?HQ|Y6()$N_~8Ue6sLeXd!+cKrX)8q<u1ppP3^^j@^&=>5a0O z!FCPB=z@0Xgr3`5#Lqz;M3yj2KVv{7#LwlfYjA_6xU#G{*yty#E`Jqs=TPA?!b#h7 zwd;77TTa0DPk)EP!9xQ!VBD#t#7~7I-)_hfk!<IpTsDGe_mk$la~44f6Ys1qrNsM2 z;MvpW=?4XPD2ThpL)B6X-M@_!3`OoDfqS~1z-f}BN{IMq>xq8ppXM)VRe4Qzn;DKP z%xM#S0zs>@CFsD>7?Jx?{Yf~$&nM7tkM2lZJVP&-^zBAq6d~;O8Ga#+leh#&TgFK| zx=_4iHsN4P`LY!#pC7^@@%b@A(l$Wq+2=eb3Zh(`mUou13lM;xf{3?|cNJxwyJ~Fo z+mc$zewU5?gRt>^;qOss!0cB`K?^`(k`b}85_B^5UjUs8x&f5W;YH9JL0<vAA9M@o z6QG+xpSJf`+52SpJpL-^TcBk7Z-agb`YtGgC%g|zx3~{ML!h|mC|y04fl}#t7PK0) z0hHSDOQ1J_vc9`P*$#@a_pzxMV@k!CV&(Qx6=RA~jA=fKF~umx6noBKjRt$oU~d}i zdxQOGFbXQI?@T-8vl!^J6ZZ5Q+D!TAgJkEs%}#OPKk;<<`$0spkEDty3J(T9&TYdZ zaLTzZFCR&Ks+!+S&ZnFii!AYPz*@ucO_BHx;if8Te#9wb`<kor;CS6Ww$D{{aBLp} zcyn%~d0l8Z2*nS}yLKK(nKUjCqtl)Z(nJS&1QC=ghrUFC(na^@WupP5i~gLq9tEAO z7!WM{sua==4-B&G1XPXhd4FCSDETxT+kl{YJMi7;P;~eaR`qVA%HsbjTeusmL(2js z|HOBxMns2W#uWg?9X^}5uweyUU9KvQe}fwK#8(wyys>?rx43@DQTQl$!CH6@UD5_e zcY2CFyXkmT2%i>IA7CZ8F+(9RgKR?yjGui<;;&G=7Oto|bHYqV22q4k%HWj2od<>r zw!~M3i`ECO*{#@6Ty}6&y*ITG*RiT}rK?8$Epqdn8Z$y`BJnp88P-M;jw&%2QSnS) ztU~MuIJ?Vp+j#&bdN2~#&)g&m>fJ7l+jk%GnKzo<fjuNiE^opvoHym8)Tu$R9P#W_ z>ImV)ep-H&%lf|~?utt1F-WO&CNKG3WaC`)43*OlA*FJ9HBu_48E{hN^ruKQpcDdO zn-o>I9|YsvoF46kRHI;{kWwj*FKbv|%h{$PWlM3Sz7wp{VDJ*Ok8&<<uN;L3ppC)j z&z9JCn-uPt$nKYsNFO@hk6gJpPTCd1L4Qd@$C(q(%;ccz3?0c^86WrvSfx{CcY%mj zawNuuHj!*0lt&1&zfVg3=z7|fn`XEw5iw8kTOxTTxsL;9Im3F^HQ3!(X3NPzFPCG7 zxqUF$eg#`_FV{cuwG?dySCUbS;gg`zOErk!Ow+g(VH`PDO6!v7ggS6+lD;u(GFIMG z58&{2v}8ZsU2k3C8sOFjC*1x=i>5&q`L5)9&UJ=slt_L(F{_%yv-7S^L^i&ImUXXd zh-<W*f=;aYf?e)@1q#hroWhB6tvC;AXlZgvPM~Ym{1_5$-v|ltTO?J?bUTy%0aVMO zIj@4=!&~KegX=h8Q(XM&PUb+`<iOOXzJu_^f-VSOHl7*{c_~j$Nu8}a5M6Q{jcu@; zperg?EF1g(5NsM6F;XH~K^d?p@o08nNO0!mC*p|fGwUd)D#Sh;p~@2)kfJ+HWChk3 zce4ut;Z3fj5B2a?&&FxEoY=B{=Q`GPxVZK7;jZO85u@ytA{z&2mUSn5HUidJnChVF zmXsaN45mMPCRzXH@}Of@xO%7fFsm|F6QnZMMa_o^!>X;@)jYOe-R?xFZ|!l4Wc7_D zxlxTH&7{gvjdN5vGRh1;Ta_bMZK=u)QB@9(S81voBTrK-@^w}X&5qEHM}$}qIHF1( z`w6wV?go+9h}s<ct!8p=zT{+IQ&_q(6-0J2cD*s8_c>LvKO`xLN&eR5@`&|X$;a61 z`eWk@$=?ky3Gmgp6_owvcF^-c?*iooJqTJ0`Vi>Vp!a~@3Hle%)u4X`B|lyP`XT5_ zP|AR3LCM*l1NGrt&x3XaZ3OKBx(ajv=xWe`pld;gg02HS0dxas5cEY*hMjmBbTa6x zpjU#v4ax=hZ-P=c<UZe!_dp*5{Q&e`&~2bQKtBfk9`qB?pFlqarMj~nv<K)HpvQym z1f|XO4$v8(kAl+Nx(T!nbPFi8H(ozy<#|7-i++Mlby22N7gem>KB~H?V!X4OkESxk z?l9P+2K%eQRv7GggKaU`I|d{7)cPo=^&DMz-PrTPkITXG43=-Okp?^2VARXC>?DJ6 z{Hz$g8uc7}28#W`U=JGXQG=~A*jj_}`Dod%48|Z{iv4Ub1}9gHPmU>{b-2O$8|)&3 z(U(H=U1_id2E!TwyS_gd>`{aL)nIQJY^%Y3HW>JveGdBdX#0*Z7(bw)*ck@P^(yQ2 zTX}ZMXMKW{=G$(kbXia?h6k|v2a`tzm>I-(dP4E-)cg?<^#}LmP$RqIe%Q9AEesoG z2PAuwX^lrFA9SG>`@0pDqejgMEpLYsjs|G&rGC^!G9*JSzI&x{#5iG)>&#ZB#}P~Y z?p5k1S>RDHA2R?!=&Vfvv_{p;qmW`0PA^n4XD%R!)CO!i?Wn1l*jI&<3XdwB9NfJj z`8a%2j21^oQIy5K6?Jbp9$&h;_b(hf7~7kq5F+|ZQupSJ8dWJ`mqU5PvF2R7?V`t- zg1%CqF-_I$E25GwJYs`QnlpWR<usis=xm>W>-MOWP^ar7*v6zHmnIiE5Qh(wEH6tD zs(Si6461@Nu~0o5A5)O;jIdf7Q+i3JSES5LQ>K@wf4k4*K_@aO6{=)wz07q^{14)g z-TXg{Lw0xaY-6im{JLE(E-~4VZ2J+7!t1%XRYMU~kmMkg+j>G|V57Y!C>6K(XDbOq zali?2P>yt}dB<_1<a0;JG3Ox?t^lO4dA9r(#(V=Oo*(rGJ`p~nMCgNWfXG7w<&XWA zVx3zlHvYbaSYm(NV~eLBK-uCSL5o3u0v!wbGbqJ=GbsDL)mFvXr%0+eV@k!DV&&LZ zY?ht!OUyLI`1WbOn@zsE4R)WwRvC=SgO+{WU=(bMQJiUg6laQMp$98Q#X_;o2IGKJ zv6t|UYrai(O3f`|ZCQ`%l6h)v-eMrJXY)FsyccX0b{9&^Fg}l#3raf-C1o)T40&P} z3Dk3zmbQi9b`-VZ>tR)>Edxfwe*=)_Mp{gkBNdLligi<e&U*rB8cH4pl}T7krbdS! zWmSJaxS=@yQEC09zVOs7G>*I&_<cjT@na9x>Xdq#<pfymQX1cm3EZ(|@h!#m=Qo!Y zY$}a61P%>iWzwOws1m+1@h)!KT%3JaMxw)gQh!Mi>kM)EPh(_}RqEM;<xAPcMXy}G zu_V53MQLax*2vgXypR!xmo5CHDz_}Yng$ApA3c)3AD;kcu!OK-=ocey;<a)!X}91# zfQZ1?#H#WJQ392QmivIQZccH?^<{v#z%?mqfLZ4wYh}zHZb?a5{O54|pJfI6PK^&g zE)qYMC+UmX?&RXF1RaRP)@FxeU%9GRCmCo;VP)Y{D#i2XQw!7TLW+7vB&NP|<BfIy z&8N-6@$00+B^htlqxR7GNwyogDJ={)9gt0><QYiut?-KTev_nnql<nkso_Ye^yBbN zCF0pgspO>O(9~@vAJt~f*JQBQ3`RFst*--8nvcrY8aZ37IZ7j^%G!sSg244!e?f}x zx!2-%Up#_6XE5xFOwP(`DU-R7h@zOZM<$tEF)~z|K_)vUm;oruMV^=0#*b5QJ^C9U zr7CbvNb>5r6>}<eP9!md@@Mxs)+uhTO(DB>S!Z(Hu-a!%l{)6RbKHY~C5PUA(tSEc z-bsZ9LF$g^n1=$Rq|oJV7D!0pC*>@(8|Yb#;HK5BQku&p&Y3?BMrK7jfEJxyF?sIf ziz}r?)FuYW32$^i>1r}H6bi<FYB3>?<H~0aGqFwrs)LrNVP}}+UF3eywbqoU5YeA) zaX~(=Jw8^-CpCa(n~>zJao>~FfS_I6X#kmOVx3UcoT|yQ#PC4fg?5>HCI9g*-FI0u z4_Yv5B+5vmjRAyHf4`G57rMGbTjJg3*F!!A&cHohYbfNI-ZE#25TC{iT1E^eeb6f~ z=OuU3G={dRRg!6*ixXo{<#LAxAgBA#2owaCG;O9G%QUVNj&gL(ZvvND*;vJMV#m@h z+)q}((j%#QY98ND_=ya&V>Pv0mC~xxlc_{s+vd`tgR^vn5uco|lnqRBf1_<BtE*>0 zD60!rzWk?OTjR@+i|ai@9^>eiE+z|3`&BL`T$@2l1{Jv0>_|IsO_{@X@O9JaP!lAS zTylr>kz=IKl$t)%0Hx>{>Eu+;Qv!#wvwbFohGy(&Y?-rKhxV$|VT0myqoZbqvF}Vb zQstx!$ndjO&c!&C!7imCM0Vj|st!tX(H@}Warh34&Epsh7Z+ixpx|i)vJ=1{u{@En zkg1Gu2|r?0<P-`e_zWypK-EO0yo0ff_)3!>@Z&GSkZ2(bqBg!VYPfP*<7l{i2@)Ev zh6>;nIY09MZ0vA+_K6K<Ls!MUv^s&F2HF*rFIP9vX`nqo=Ybvq`bW@1LGJ}U4D?yh zexTbx`-4)GJOcDU&_d9@po2hZ{yrL%ZUlotXMqj@y$bXgP@15Q1$`X!IM6pihk=sY z6oJCVDf{GFCt^PYdJ-s2NkPyDKs$r}4YWHbO-Y|&Q{9^>)x8xfw~wkRNijYW&3BWX z@=IV2#hx<QGLvte!Co{Nbq%fWOM|iRDE5=V4#ssUcBq~5Sw|Ucu))qU*m(x~t--1d zcDupuGT4&_d)i>{80-UsePgiQ2IGC!_Vu<?K7Iz?#*Q}FID?&Tu;~V)0g1Kvtg8)n zt-&5M*y9HKm%+X@*uOo_dAV>(>pKR@j<#=@okB1!gTYnR&Uc5w{$wyr%iCp}4ECzQ zFd6ThqYan}?ug$SW~Y4gEVIkz+9@?J;hSu;^13t5LvCg>(~eMlPitnTwN&Q|G-70a ze62cs_Gd!AMa<6=%cqE)?-U=&1P=|QCF&@CTDZ_QN1YX}`2UGH>P(FhAkhM7m};UX zr3&|PNVUUl_KMFjUn8$Y>%+H_`ZNA-medRQ|AwR>Lu{-)Qe?Xc6I2IuigXiHKjfg0 zX#?7wyiI;dCa8+=S^G0V4V3&l#L$yabq8Y3(E0Mp{7DrEaX+haQU$*MN|r5oJKJaC zw`?6-l+Ir6PAYq8#<JZ}w!f7BS;}%~p+D-aj&90RC5%!uWc8IyyQNG*9q!wTQ7YLL zU5rxEh5vz7s_B1dm3sA8S*19*O4d)(bvpRoNAGG?L!;hsP?F9iUxh9A_qRiN@^IJm z!$GvGmz#&2B}eps{m%?pW6|bRC88HZ_nAPevC)u~-g|hw+#GM&LulHXf#a$<Bzl1( z`1fzx;`>0c&#e?2e-}bbvY*ca9RhkWXb^M`XgO#FXcY9fpbJ4OLHRyafl|DFj!nfY zQz~8+E4Pp8XG#>SFxYK&%5U9iu!jxCw_oeyo3CZJ8tfB;Z8sQoF3p!?r+hL$qZs|9 zv_9&WihW_QJn#<1IOm}GxQekPzLnoCt2+CMY<?)Ms;#}W4{HtGCABb5U5nEfAKwtT zriO{Y(o<X|wHvDD6(7HT-dyaCL$24WW)vU4Y2MUg7&bzoXHY-B2@fMzG1exH*x3W| zJw3GzRmI24n!$O)c_{P@T83aTP2Q^RIPS&qJo|Xh5p~5m!3a!YG?cBF5E)U)TL6m~ z0$e9gS_r_IukWyF;6<(~^-561b%KHQilN}&I9odBTrD|t7<X7E&RIDk(wdupf>XX= z{T1`O934E1uH~{S@m*q3>=Raj71kr@G@Mqi!YNZe>rKv?;C^kTAm_^3A|oR#JY?71 zNA@dcUZxfY`bwN5(0DLE4JFSoiPYV=0x5N65={_6;I!JJ)8iyv!~~El`xj51k0w_N zQ{^)W2zsXM)1Uy;Hh!ndT)hjeuaW%|aYbFMBhfs1LvVPIjyr=wvR;R+<V)EW|AHD? zpb!UASqbO9hXUoT9pjQ)%Y{HeK)jWlI#2m96A!FIqm#!4;#R)|2b>?Ddp0&++$}aZ z9G}$SJs$~5&*GCodEup?<Z$CbdHW`Ua-eWJ=!KwXgL1%74oVZkWKiCS3qY>{oep{{ z=q%8?LFa&ShPDEf59?ge7wmm<ns=}%r(sGtjbi2YQJ*YxRV-$(hwYSK;uve$<pz7! z<a^g(9~z940b1X;20H*fL9vc@%4bnkSL`^0asF2^&i^vyLo^cyqcKJ?_G!(>`Cr9y zp!O<8^PpmmZ)5CBSeBuR;;kRNnqKYY;n<7K5qusZ{v(_jOXFYbiX<4r;l?)<ZhX#u z6ZQ|HTVMSgci6Kt9Q!$VN$U3wPXJfSEv-Kpp}#iK^n93d7o>XgYZIPV5!6ed()i2b zW=}(RWyE}fq7;o8{E`-mt*)@W=h~yKs`H(VR2CSI7p5a;D)JJfsM&eNOIcHY0`?s? zFFshy!%R8+iudN&v?#|bkf{f@d$ApKDE`SWNz<!@VRKSzx?X}~4Ukux#x^x|#)W(F zeNt<lFrm(N_2{YyVcix*9D|>Jpq)0dFskS$`Nl)NP4@-wC-x6D651bdC%2=~<S;3u zVa>_P^mmxFLpj|%dIvE(%_VtqJb-pN4n(OoKN=oKOP-5_^T`C5F^}cq2-&k%Jj1Ct zf<ijUc{omVHl1&UO_5zu1ELhq@U!hI<v8R_<t;(FCEMZ~sXR(lW`5-U2|#N2NPOg; zFR5boJ))MA3y>F)U}N6^nUBr+u`gs}%fU9w2E))+*gr;t20_Pwo&q`+l*W#6pl5(i z0G$dt5tO{_OwgI2XMtV@dNyc1=y{;*Yv+TKH|@Ztyoo6vBb(dU6g%ZZ07?g&YcSTO zWp6atlLmX*U~3Gv!C)NtYS}Lg#tA;f_8P1!o~B|4*(skj%wY5m;!(8EVDv#%EEkVn z%jVfB9q8&9cj6hL2@+hjepcQF_*^eRJ;|)8q+jXODcwu!FUt-^Ps&C_!MEh|tfd?Q zcY5B3+<{`Ox%>ff4n7l}!4KWM%6Y$KXh8{79QO)*b-c3J(;$cIN4k&$3vx!o6}eY2 z7*hR2eE&v2)0Vc&Z2ijcueW+<!w=ZW*#d}69o0P&KOfOybE4sT@2TOUt%2A^UQDdX zyO?dSJ|eJm<WF@aFM#Z;D`^NU_0*L#V#i%qvMR9bR4*p3%2snYUedJl6aYUFXb|89 z?C#?(z6OEgje%wUq}({@=B^C$OV&7bt(Uy;1aGeD!+Ez}2q=iFeZjegv|U~S8tdZ~ zMB<}xC0)Yd`jJ0{i&g~|6v6+S6`c^jVHTbus#(S}u1KsfEdfA#L&<V`ed()pCC{|@ zVqIB3hqss3-<ijU9f_X<2kXjkB>oS^xec8=>AVyz^rgd)DSdj4{GQU(Yu$|hn<aHG z{=Xrq=M46W!D`SOG~Z&RG~c%dYeq^X1dUYqfHZ3EhtyiB&ygBGB9X4;9)VnZdr1$> zC^hhv_6*ZuWWEWRF;0X6nejN(1!?Vi(WNU>?-|dARXX47X0e3kTP(#WYKo=UcGng} zk)tL|Zk%mRn_V^c(n+G$(x0`PWOBxB+g$5hIp8=acKo{>n5Kc=$hhB;j9o=SL?BIR z^#kKd@<_GYqjghQ(R=Z9DYnJ677keSMtv%mfLRUWOvbdb#;6PO(pU_SLRW8ViHq5E zCPpqJc{(P;bV>9<d%C2fiT<5DU6TCWQ*l9Q>$wUAiZR{~1RVL~6lf8-mv^1_<tl03 zIgrJpJ06%c+Sf0scEx(wc5v`^3_COB{&hkbvQJ7$-l$G^oU~c9D|Nvi>&h^hQ}eVv zne(50X_ogm7j?H-CtR}{#)x13!fb=IEb)ce40pO_mVKvN-nh*7Wpb<cWwM+N!I@gQ zFD>u!xK`^LCv^o{c{U?kEk_lbqq59xKc>}k$4I&Mt(5EAYB|nhIOlWxoH!B1NhnS{ zQ8`+|EG>V(X3}XBilu5x^l;h=l$->EJcpAI4g%&&sxv^c<c%;?BTJ`$%$t{SB^!Aj zwWNcvk)!hWxmUHBFF}W5|2t5=)!&280No2pE$C;^2SG8yjlK@z1>FUj1xgJB?%UCy zLEC|Pam#$5K2Sd>$4rPMCDG>&0PT(aj-Z1;JAnp4JA+bj?E=aPkFKD6?cnMiy#<u# zBU>8+`aS3|poijm*iQ2E53s2=#*~f}6)U%os!d9<3WMEjr~LeqmDJ*s=<1s9A%pQb zDaJd;lus-viv8PQ;J$V~TFf+GzQK+#*hL1T4yO6&ovZcHJ6ADIcPUn4u+t1S(O^3b z#)%XydluxPmOal-`K*}+yVzh480-;)y>GCO492ihTHir-%4d}s>@<V@5h;31`>ng} z6h0M<(W{ol6SmvOkYMsz;9P#{@a@=MZ>kqA=QxJy^u~yj$5pBhm+*DM8N~f5DP&Iz zDB)-HfB76r5T><UoyS;?yWtfh&^nynD;^%-N~#q9H%n>~{;S4vkHK&wq`y#KN!Ll9 zz%gpZ4`AyJwxYk}k?gpWN3^1oP|T@`>W?D65;{r%!pbqRRnEO|%A}dItH2*5S7+xW z7%@>;cE^5>VE4(8aVVvr3>oQdK)#Smz*^kWwe|2;ClUVVVSI*L|6hgiNuLkUyCJtE z`CqGsJ5Jy8E>>X!PfvOp9N+Q??|5Q-tJC-4q`KKh$h)(!4Y%=I!Tb2^?*#1vdKYLe z=n~MwLGJ-&pSl;6Jn}tk$|IRl9;sNleN=g*V&svU?<PB?)8dNVYcNU$#TpE@+F&Q5 ze`<Xr?353S+#IaNU_<d<Xujcgims-x$QLG$F0sB95%=nm1N=firN^EsU*9WOg;lG$ zi^h&VnO3aa(y0w$&uf744)FExIb0*Ul7&5$zMA+2I5%D@)Kr@EUA@@q!gHG1;fM}l z#vr9H^&F%u6iFDR_}ULnGfG_wtSh$Z*!pICm1kbKpEp@coR#(_9}1(g^SwH{%va95 zaQ5V?>bcWoC0i~|<@8T##8gNMfo1sF3Q0Z=Io6sW(y96f!dQ3A1*%_*OFf@aD_G3= z@tWB+!Pmjs^amQ{eK-MhJZKQ~T+k3G@68BMcFE_kX_sWmCsusL$V3(UjmgJnpctoq zG+&OLvb#&J9gz|JBN3F5Q}l>EiSOhxJY(m0tUG(q)Q#cB9iDLD@%1~q#uq8Hio5ti zL0cXQERE4;AzVMxRd@6COmUU?n{}}pklv2ASh1B1B8iA65(<AUSn<*r9UiLPd56YU zvPu_{M`7M*>8@vZj{?PC2kV|<7DPMQRW&snTR9dxR`pp7G!@i9{Dak7+5Q%Q%nSts zOV{Rg2$cMQV!2iB=5?S!q4)p*c8h*sRLS6#owNpN9Lk@mC)y_82(C&y7{tNo%37YD zGxmk?7%!&k$lWn2Uhe8VgrP(f%0;nUz<SRdgq9)7#B-XGk1mQOa6YOgY+manlj5UN ztUprZ5s8=SdLZfFWvvI6g<RKwcF6cLRZX6&Vb<xw$!?rjQ^GL{g(Kc@{4RH00L?6Q z5D(UiQhnq&MyonDW)|w9?5uQ@V%TYNZ9JmNxjJ_{>4Iq$_GhmtM|;T8(ehU3N*d8Y z5Hmk9g>-|UAvrx~S>m!^BEu+7A$7y~_;JevVOVCfIenCjIdU9hbA(JvuAOrGMX7Bl zN}tW>h~gnfFF9_-*vJoZB~Ocgt;#E1{`d_F6iVB)B%cR6F>hI(jo$`qD4)^aK=VMK z0zD0MDJbvZGSDfYD?lqj8$oFST?NYfvKsU@&^4fUfUX0j*1Zw*ub?l3J`egD=v$zh zK|clE0=g6QEzqw(-v%W^eg~A=_<NvxLEi`c3G_oyYUJBMd2c@l<v3(J=n&9<f(Ajq z0i_{-7btD<+~;`Y-=H%=z1dcjb2eF^)u0~G-`P0(DRDA3woMruQ~Ety#irRuv8KS} zBMa4hyce49PJ^v77&wfb?-PUZUDvYT8ElWiyl9iwN0zDi=!d8n=g1YKbXIJX!R|NM z!v+g-HC@e@i*bTv!Cadc1tMQB{6T_62nWJi3mA6!IKqqW%v(<iyJolOi3s+~2`t2n z4L3JMhxfwrik<Gk?=HuOG_HcVvtSL)vDc7u6yuvT2s}|zRqSb!I<b$KQ!s7j!62Ml z9A6{h9~>KL`aVYw?d7BCSh}D_W0oD^m_;%51-s}ktv`4bQ}n%C*hcLu!a9T~ugsYP zt69yP!{vDP<h*lYXCZ=I#!KyyNp+0=NU^JWtt;@Ko!BdZ5jRWfG5mi+QhW^>B*l)b zM-M>?+yW)&L-?tOspF7hNAX%GA+=qwVuO)Ie2p!W^A!0dIEF>qITORJD#;kGA(gN8 z5hh0CsPfjnt}GZBTLwx<*hP<&87Z9`lXcqUf~BY+7ma}rkjn?_Do;XZQvKx`=H1R> z5#waewwFmB{RU%VLhVSjYh=eRb_M4N{kx56y<G7@yC1D`?5&h4PvsIzj#5x)AK~kZ z?}8<T4mc3|M+w@)b%ymIJ{^%*nr}OOM_2t<PT#HC38Sz7DrfJPrB(ZN_Ksd{8(3R9 zuxB)|Qc7Me)jnX+7}o>xhbo|B9HZGb*)yAOMTVcPlSXl<rDyihgD{BInZi^hmBXgx zD57(P&LaK>gGeu;ZH$kR-4JfrPA_4Ne1?3oi68(Jc@%hLz|N0-DH}T-uw7?^gRstz z6&?r5XFUw`IMCss5zrtgeNj#TWgi;>N&z?$v;uS#XbtFS(8oc?g8m)!G*B}7@t`!A zO#nRt^mtJAOO~f#`52oD7N&F%r&zgtR0na2@r;`9dOPLEXIUKVF9v(kV2uV_V=xLE zt&hA*>!YwyjKW4SiWtSH>M2GMqgbxN$_;jb!RUdk`Su#D%<W(_dGRQWb4YPg({DXw zr|>y8@HigzTXg2qd@^{1Ld`Decuf?-LF;Tch6bVfk<G*Xfou4{>BHq=<oDsd0@r+` zzzA<Bx~E&<n%8xATvjN$cX;5MChP{5`9xwI&e=MQF5#`!2DE>1-MM*v>G9Q%zFztC z^%?-_6R4$Dv!bLdQWaX>7D;C$YVTqBp83{$2IzmYTD;H*r`YP?IgVW7vqW=BF*I^y zmmE%veyM_}JYr8(iL(kRl}BDY1;yB3Eo@$d$$=pWBF1a=K}t<zqC(11NA~;%PcGdE zc06))MKyF-?3PjXM9NBpBWKq0DYu~Px_(AOQsvPhA}THz!zNxl=YmO9GZ89|5+)&l zdb@6dCkl)4+eB;v1fYnl?gdOclUaF4xAdc}g$b-(mfO=AlL#a5SriRd&k2H-A!XP8 z5B+Fu)_<8l4<~MQbvL!BU-F|}vR^;iWJg(<Iy(pF^JknnQ!l)r+)B=z>8)%d0>Zg5 zj`v$o8rI^UEfC0|9V5k9q*M7nS^Jql`BcZa%u}UU;4|V=OR}c%H802J{MgsX*V)r2 z*x(gV@Y(-rL0R*)pff<P2fYgP2GCm28$rqEZUW_6j;ld=mE0$P=3AxwnJMMZij~_( zb?u2_RR+7+PU%F1mgPW5^HB>_jDrrvF11rWS(&F8U0pRF*LEmI&Z<}x@10^C^(&T< zPa=w1MH$?|V3gnEsScJb+;HVlcGT?RqV-qxDUGixo4R4e_|fC4SW6}@Vk^Hp82)5o zL-pjq(nVadvmCpK47+S>_U3J1g+-f;$$!Tn9Fq9`WUW%S#?B^}m9r#5X(zEv)M@Rg z$G_Mf1n2uqYY)2Pn^5d<oG9omjyE)ZksVTg-4D=+toVAc=e))p+0m73R5n?5U-0gH z(Eim2hJ5RN8><3Fe}8eu?@_Paq%0&8OkDO-nRp8*F$wW&1{;h7(z`{R?-pFzZd_}( zKf%O9XfK7eSDnIelf7bQdl{nAYc0f)O_E|~Q)a&cDP`<r=bPmyy@&KD^>RHr2`Lo? z_ZaN2NU11TiPRP;+kg~bL9g|)IqHalOOQwx1#cl2U&Ym+y)ue|aihm)5CwF-rOKv7 zmbr$aA-A<K`)E*BUAtH{ck=AYNt0()%$N+mo-7ewa0OxenFOQerPf&MZR<lBqKwYx z#j#Y{aHJ>9K%tJD)9#6eTh_z)uv%w)(5{ztnCo{CHqJy04LEXA$v+eM^|#tpgpt={ z$bSOzXY`Hc2|6M-XKxWz%GC|`?Ho8UKW}}66J%c9O!bcguT#6QOtKV9cCet2Usn4Z zfAm&=0G$1xHV&tz2+OqW;xUMetj<m@8l5=+;Fesih>Ga-s8OSicVdQQ2L)!xaYz51 z<H?c}d+~{}RA&rc@4wk}e7k_snU=8^<ff@eNtVS@n<x4)KC$4=@p`j7Ic*NgRNu!^ zUuS7@dU;RuEf!{wbWcu>7oQ4i*&bS<$l}wlM(?7hX27r01Zw`fk6Ps7+*NW1iZeKk z{K~IdNcqHIFvBCR+5cxP91k2`a}=5vZHz&*EW__tiF3}6QRr&m-sHEEF7M?y!Z#0N zIKFwQ3t|#)6kXxj;VDyFxWZE_;9HQS6$nqtH?JUUiAZN7UvF$2w(xfo{0zv8ZUto> zw}T!7dJkv`=u4n%`5!?if!+mr0q6suGe92(r6>HOpo>8N0?MJ-6QJ}scoOtpd;dXu ze>LdefNuc(JLv16%Rt`;T@L!Gy}#Yw-v#;%@b7K>M|*!C=t|%;7qJ}uF_^CtC~>MU z4WNgEt^yqZx(4(CP+k{h^+r(gVeV7C`4F3`H%zH|qgc6p)F%%>vH1q$C`hqC8I0Gb z7|jz*`M_x%j905zJDgwh9bl(?7F9UKIK!y<&NkTj1{(nJuKBo#Rr4`Qon6*oml=$4 z&NSZ&gFSDs;gD!rHfX1O*5&^Xdv6|IMUl1-_enws0SrM@K!gKEL`4j%pa|z=AqfPM zVR2BI34tUK2_$9_a9pB*qH)1x#%0uT-)GcucU(|Z)L|UlcVR|n#$8--=Xc*vRabX) z_aV&pzSsNLSJ!n;RX=s#&r^F>S9ez%S-X*)o#Eov=@4&FahKv$8|mYzSnfo&qpc^l zsbSSRAF!e^_sUtrCv0}IDgJwi)|=uJ>28Y8U4_4C%NV`>quokZJ-uUH>5ld7Sf*&( zE}P`H@~MB^F_lg7xwr2L8?nC(=w^0<Sq|23*ZdA5wNpMp;hpmJ#=QyT)14PZh`3A} zcjG<Z-6{X<s2%cuZC|Up3#cyJ-GWyNOTB@xsV5SvmQ~%wk_-pe2zr6_HiW*#FGIF& zQS+I9<5<mSzC%dOXEM=#c$DGnhR|aY8j283Kag>O^&`|Y-eN`QDTysYh~Hht=4wWE zlnHUB^pN0CNV5ETA6is!-cth<rw{b|3_?Jh?>UeYcD`Hg5WyG3azk^TA%W#r&Xl~X z-@{}1nCHyGJc2I<L@dLqv=qm74=uy0$rMLidmCOF@MbrO*g@#pG{6;AZ!3GQ+i_(x zfl{Gq-@dPW{<Re4kOkE%C12S%<7Qx{LwQW(98bCRiMu#T<!vJKFUt0XWR6I4Vo%}) z4gU;8KU&)UH~om@?z_8ZHuu@m;8|Ypg?~1t30<=Bmz7P#2wd~?37*|iQvO|4qc+8N zcToLb-3*@>zTRf|?t17}l&e}HmGw}bW#5O$JwbZACUZ%YmEi4%@2ZF+SHXQzIhW@- z$8~J4tf#&4dru4JVY!m+aUuL+@N407aH)gO^JhK$N$?xsvv!uj{}udZ_)YLz;5WlR z9zN@NCH%AX@%j3g0~6zauaB?N$2aNYJK&#y_`kqE2|mv<?eKqszY0Fjho{5u5C07K zybpLR{3QHF_`G#MKF=mh7e|zL@l)qNhSd2_$>!@=b$PF3ENO+~IbX>xFtU4$>;WU= zIZ@%5TE+d$$T(st8Plq8<8>%oMjj>OeG-K`-r!C!vN0HYc<%4+jMt%TXA?q-%dOrN zx8ELVPUg%sRvT8bR2}btpH6}9l@fH)p)DP~6aNxoYdBa!u|AnjpPH^tpE2-9sn>|6 zDw6zX7^Vu5$v5lLofrfe1qwRd$KY&6*-{}gcy$U!Cek}9jm-zQ4LrxuTrpIL4Bi?` zcLsM!bGjg9bS{Ij3fIGgdLg73M2*MKby2#Dm2M4j^|Ew4`<?}*mpa)WTo<L6BX+ve zZ*P2RuQ_X5=K74L^h#AbWHXIk?L6lyg3skDm46jt4%xPm|DG96&-Z#cU21X!@3NS4 zg{4*%Vm=g$sK26>xGqZnFRe0g^|B1SG^h}5DZSL$q#Bo~j?&9}@u=yXOed!%%gMn` zGC8BVHxWJ#F|K3JRykH7=6IoE_R4a4jp^a^8r5T4_U5dnuJbc1$@;TPh0mK8imgIq z^JIqd!q+Kt-oxi9pWtZkv6u&iWqGL(%S*ASn{!UrMd{}=1<<b{ZfaOwUK&)0wv=A# zoZ5+Ac}4+xp$X}B{;PCTcWWp5e<SJEJujchU(P@6IA2#KsX{EtQ$q|cZn}>1EyYkF zGR{y8-+1tZ3x}U$7%D`@IU?(a$CR_j?B--&kSQ&s6frD4ua|Ir%XPhs9u=aV3q=;o zrk*S(dz8|1hf9H<Ygj5o)}<orHvp{I#g5xYuR;~r)}^?#uHB6u6{4O$h-~o83}<HR z@0_d}-j2Z&Ir6V`DQquDRETX(v4}bbeAh+k=XIXf=3KpOb6y%$i0M{(sdI5BdT-Tw z(R2c7X0AMqD#X+)-PC(pC%W&{x{*qhNl-u2>1kCVuS}?$d3K$OxAS|S=<heYyECw6 zA7|j00l1~r$LYPT*Vf(E_h{-~skrOlai;FIB)(hWx;;b(^{Nna{jk!@GitLMvsvDZ z@pN$g!F78Y9V$fR2BjmO>GW>x;q)GZ7jc?Zim0m>ex9y(e7g2Bx>Sg|o)K9LcdsY3 zc5|{uWz2Wm=@!Jgj!z1y-l#%k{#|7K_UYnukM(wN4w|1<sqpRa>{J}8BIKX5ETv0@ zsOx2s4bH*`u*UQgl*?eO!m&<Oh`JSnsNvwcE=u>CO1Fl%dRZ%;eb0i@OP#!?b6u3) ze`vj^@c$~!)LYhx?*E8xGjhyVEhRj1OmPzkpDR_WTvdoA_ld})T-i(DTn1wmj^(OC zELX)Kig|Wjl<qH;ZVhquvRpm;o&}|sI+LB~{Z8vex&Bvarrw%Pbng(|{o;6WKX#eZ zb!(R<uf1a}4vFU|;q{)|bnfW!9HGirg;;`^HbORdzf5PpuP$+Vy>zLQ^~BY}ahWVr zg{Ni};+3dk62)h8T^D7eyRxAnu3nb2mkt%`0h!WEohv%g%UAn3>SyA%&?Q*#xD>O3 z|0eC!e@Q1c_R=;~;&(0W)OlSediN2%G6Noy!&$JIzlCSOylQgYAXA4b#5&wp=^B*j z^o;d$GPimyVjW^xe_ng2brr!MY;>s*b@9syC{vDOt*m8S@5;X#;T4Xxq(aoK7(_K{ zB)urzhbZ0He{R56dpLbw+7oSUFVXKZsZTN4)>Me8P)wrEM4DX}Wn-+e!C4|~II!VQ znVoXalG0DzQ^0p!l>WoDeuZ(%hHY7)S%xY^TdHiR^YKpfCPi<*eY0?l+0*GWy9cf_ zyE}cF)paJ@gx#<A_mu;m{#E^2g_wpCrEjNa>BD?F_BA?Gh&uSt60XwvXFA<qut%Et zh_%}l@3guu&*)Mi>Y63G{8z&Jx^VdW8HNgxag;CybH>`5VXkdm7E4!QnGO|V2`Ls) zhx>9DrN2t)XG?*8M_)VdnttkT=tO_*|3E)=pWcanK6>QMdEIogC3<D3LM$s)F4Wo4 ziQeNxum3uzKlrX23btx%D#V&vu2O=5yUT2h#c(czu?ojDs1WN*F^C$3pX;J@pXBMr z+KZo&O1ENA?<1~a_))r7dAeJ(Bqc5*m2Sl#s*A4_qjaCCbOY&632R58Z3{{-b+QM$ zE=n(7*ip6aFN;)qRasDHX(xJrYxL5(TYstas`{f&UZ1)yD!soKy)mxN%<Q(UYh`9W z(Qa#Hm?N2LQ7Xiexmu+LPoNEbFT?5oQWvN96Fr@txK`*=gKK{{R|C%uipQ%M6^bLI zG!S(<bh$3d79YNh?nhpFRETX@>7~wxI??+_(JTGv0yX<peM6;Xn8~#YG1qsgluW{N z4qs(CBj4-h9Pm<(vrp@8a!%-ia{`^Kh51$7xC!MUq_hzA6@IRZviE?pw|9oKH>N^e z7N?7Dmqlxe#U86d9AOoUsHc2&AEp0Mr5{LtYS^X}nt4_s+ERL{a~pWBi_-g~(MyzD z9;x)I@}SP~>8@7SuFc`99a{oYgYtJ!{tn9DLHRp4Cp-UD`P0_Vo!EO`?DZRhFY}G* z=IlN*r-|tsh9Aqro3lMdv36WHSG`4rScb2Po><>Zr!Q6#`(h=r@2Ebai}wp$#~M>i z6(aL(#Y~Gi?v?Kt7Y_ex!%!hI-c@B3&vN4Lb#eOQ%$Zx0j<Ykwa4x$K!ivNGsX}b8 zicM6TukA$H`9RqLlFrr3`ts7ELM$t#mpa#UqW3e=+izeOtVZ^6x@>jV3LK{$df3vv za(@FyuG@})Dm@iqS$wV1h;OP){HnKe@JqWp1E1L2>DAgFD_m*~z}3J~P&}4`3dM~E zqUNgtM97V2UOihsSmojBwJ{3K@=z(G&J#P)8$%mqo5w0J^57s34)Wk256*v;2in=t ziLI_;OV%J~W^T(^uSUiFnPu(1g|A9kg;>fxRSIQxq1LKh24fYDc~&9Tpkfe}kDu$J zbnmWo56zPE%wU{na`ZXI&t_{@?7k+%dQ@!MDDbtqC_DXhDWkq{K67Bhuis9+;?t(m zPu<6LqJNOqj|vFrPE|%qH}ziFiSGThZX^iKEqk^+l~UV+Dtqd@q7%IbiQZUW>~vd$ z-|TJ}xiET->a(r)R&~{Ltyoll-@#KYLxpH{q-ap<cSF_sov!dWY_lbJeVG#1eUE_B zr9#wos7j68jlrE5Tn)H)V@_~s@P9B&6(aKpVGhQl8vR#bUbt8pa#^ffg=KnFh;^%2 zMEO^IqVyLk{Xo*WdRhKn8dQk3lwRum#+TzLy=7jGTk(0;8s0xtluKwxyC31JvQi=D zxI!`e;93>qe-6g~?Aab0Cllj%e_F9si0nC<-Nos%px3tDw)Uv(u50Z^!^64LFja`m zV^m25O4?;H_X^9BRw0(OVi9$>FJ)2stCfBr>0G@mX)g^bL|aNPb;f+-UX<QNO7A{d z&OR??ID0&SU4>gSF_Y~nDRS9Nt77*xA&xSNP1Kf7>?}3u_opgV`juYl{G=1TEut6u zYc6VC9Isumu(r0QC63)G;@DxherelMC*Ialzid(bgqGIk+UliF{W1t@;|o^C%Zie- zotoOZhU(VZ;$=1Qy6XCd+M4(<Z2QpITw8O1GjhbJ5#t^Av)72?H(27Wjg9e!MtoMf zwz;{nIljEPzLol`mo2PsXsB*p8DF@#ZP^l_14O>UxV*8sCf?fIwrnA6))>i<#K<9s z#TQhAv$(psdLdqGkMEzqA~9-zr)=5r)eZGEacq_xmlxvWbuhZ9xq4;G!s>?Fc>U7q zMYSnV*v@9B@p{jznw^4-se|PC?VVy_Fc|<y`cM?uFgeaIw8UGQY8Tem)g$+A*4%Qc zZ(NoNqF%;N70VrWnj5MY)}{jB;nf8w(#ATKkd`<afxF>X8Ecyr*j#&DTWw1#>R0Nt zHeMaa9)-oKI>|64!RF;0T~#qHjuanVHKlAu*{ss|@_IDD#<td`wpL^ksWBOBVMR38 zE~}{(Lu!K{UqQ@hj5jqmB9FCFx%GvGmCCA9R#<4F*zQ^uH#WCgQr+<Dbu$^Ztg#gd zU)t8tTHgeH$nuy29BMoaSx`+$w?n4|*$YeETH!Y2y2XX7%qviNh!|hb!InpE;rifi z*;co<)-G-Gm2E3tEzl*4B0IRT?qED}yh!CAO<nK(VCp8sA35$|_6VPv<%?^Vv6m=n zyuKwq-YKkJwtuUxO@T@sRWFOHri{+EY*}rCsiy_i3zsZvZfwI?pj!vZtfqE_(`h;u zOe-nU*@;R=YQB%SvvSZi=N0?n`j*y4G{~iK?nPH$+v00Ze0w}xuS&`X)VvXl4?23t zU_W&1Xt&waTcl{IPZge`5CX=$M)f2dhDJLXbCxyNE^J)14ExO2#JO*=>c<@D_$6E2 z7c3O|YIUm_Fo@*$^)!+}FI#R3{f&WpR>z0oMU6TP3(~QcRyQ;p;8-^7l<<QlTEE*x z_=clb?$UQ#@%E%fVeK{zk83(vSs58=GVf4=EG6JGtp50RoK5{dQvE;dG;6s8i*rPM z%@;>y#CBjRneHU&YO7mE<ma!8Iqga^q6P)qdc52Spt|%}COylIsHt7hwkU5Fg*?@! z$0qvDxC*K<vw4KmEier#!uLOdb(*(y8AUv+r^hbRu@@}62y-YJ_S@<rn7OdUc?2ES z(edxs!_|}YSR7Q&u+AIvc2!tUSHY}9vf>EQVfKQ5zaFyFV|>Pjv#&LyKS+l4U_Awx z6`)Q+h%PInhgW#%F<wbx#l?wza{6Dwdbk3Z9xFl-3_*x4JEVs*wDcI)=oq?V#37|& zJ+zP>yByg&79l#UFXG>yFRc9l!}PLr_x$pd@56eqMg+`e062%E+byJrrIH?VS0`?& z`S$6s9=;=#9`n~1o@ay1pB`MJ1EbbJamVextO;Q~xP}KN1L<L{(De@KVM^0udrK^? z0ee0^KdfgD!T9xH#RM{cdiE5IJLezz;ICc}>)A^%m1sXB5Te^Nq=$3f^cZKNY}v8P zZ@MR}r=MU*oq`Zu-;kdEkfz6Y?L$2)_gL{_SPyfZ9%DDlLx`?_NDq5Vdd$5NI_WP@ zLNSzD{c9h=;L^wRuK^)F0|motVfM6-8$bOrtY?s5vXJ1R2+<7;>4`&{9$Suom~;Nn zw&lpMp23278n)Qx>Ea<hLm*9$@!3R{_|^M%#bpi%R=)NX%sM1^7(#SILV8$o>9KL3 zvW?Xpy8ky}J^Kk}Eo`~tPhLn5bDSP~2YT2;hE*N>%dnpP1%oenpxr1pG^B?qO^@*@ z0`}P1=d61$tmgp1+>ZhzhHh9$&w-Gp$N0}u8F~4it`6%tNHD7baLf6?ke=a!nTmhb zSMG^V;S!u0{p0h&f_VvIH($d;de~#qW7F|Z_DjuqxCtKAbBJIrhuBTeh>#wf9-!wb z{Ids-S@gi%u%3~Ec^V0J$1%Q5fi(NhJEH{SmQUU78&DX*^o$nFT!^y~q8k;`GX~Q1 z7zTIg7ftP(YQuWQ3T6P>PaGk-F(EzUAWe^5i+}d_r;e;bmkp-pP{G`dd~tN38yC_u z9@6v}SL`{OuOHe4Dua43)B=Nj!tf5Ka^pjK4igOTv9e#hck$@0VLgWn29H=so5z83 zSV+%A!Q6^}=4<SIcb*j1bA(_nhaR34=q85r@XVDS+k$^|XXo?9f36JcnJk#$$UDab zx=A5D2}sjp*CSs%yS#Dp74yS-l7hivl4(DQke&j;@aY(~`A5H=xi+k)P%uSEFiU~1 zAf%@V()8G8_-7mYFu(GJu%2SU<RLw7|0)XUnIafIox!u+T~A%y7S>ZDm>#HimL}bl zkRG;(^ce3GvfiKCYbFMD99aFmOfY=M&P`8gNDoJh^w<;p$8TJ03%X)Z&osf@hBUkF zd1^>cxnM8|I!LxN_g36W4e8;ig7yqOZoQX>^vn<pp9$q`>5lVGKQOGPLNMDfRB+Uz zn-S83W(Qk$;GgX<^PTJ84(s`aVA^5JZO@e<Ju?NflK=QU_Rw8Oda!(E38qxn1rG3S zgWxzeTQIzP&HnY^zw$631@+7k%u7g*TVJz7dX5wfpN8bv`$dn-n!<W;N<-csLV`IP zpgS_8XD+1aF+P#QS@Qa;dZ3bn={ZU;TYcp-H>Bri!SMOpUI^t}@yFN0dX5nc-p6&~ z2+<uK(lZazbZj-L^ensnoqvY){7Nv)m)m~ki5_ZXsVWzjGobgR$4pp77T|dPqdU+@ zIHJ*wG7{D$-EbpWtOS@#x_VC366Qx~K0742*phHB*t+K0S|xN@*H{=H+!m7DuO)qq zt!F|Q6uG$Gg3-<ISmNP#=3~{yHRaXVo5t&+{wi>KURXyP5PH8p4!>By&O%*0inp zcr6*?xVGG@mpmi6NMmp}SeN__S`s&sd$eStkvyv<Q;p<xEg5DcpK3{^k^H132_xyD zDjTDXYkhAmIoe1L)RLh_GC@lw8A+*@9BCxK)RK8dQl}*aM$)DwMMlD{Xy~RG$%R@{ zY9!Za$y_73Q%lN?#C=xqFeBj|e!AI4@{yMGFp@M5h;ZYLq_38E?T6<=<=hfGEF}45 zNW%LHHtQrU$%ic!yhuyN7|9>Cq?eI!q@c?%l4rCe+eqHjl7U9@iI$8rlJ0tN$uyFE zw4}e09HJ!yj3l8Ydm0H|M-kW8Nb0o2E3xI4WNGcvg-ty9h+`Q-(o);%m*kbt80#MM zY?bLi!YQaYo*``sXZRu+$@w=OuTDfVb^=1YRvY3<#<_}&WYjpsjf<&kSz(PLi!Kj8 zk&GsbYcrgih-8dw%ScALthkH8mW9f37ACBbZpJuEQ4*Im%$1DFS0wB;qcI}k%rRjk zZZ3>u3{JoDB_qx^R0_u<L}w&pd0j!rbDUttkwrHYKaq@bC7h`#33I{oGtbmY;^xAW zFwGnRdDgQrMlyyN&RYvy%osNpMq=__WH3w*`!na6qIry)FC#H&E_E@Z+!W4rB`!(6 ze5+E(dZ#-KKP7SNYql#HJBk1}&P@a}&XrK1NJcV+ybhzUB#gTjKU&CiMy%jHIRxQ; zjbD1K7yeOLPVZGG9IR$mIB?F>Jw-6ih$fF!h1m2M)4;C$m$L@l<*}~UEWuc|<_n9q z=&sm!TNib8%%cZ2Yd*s1mMtdKv$fwlzq;RJy{cJ)v1~067W)F-^An!TQCHAB`ckt5 zW7%4WSkKnPS1<Xq$I9V^6HYLetr|$vW3H{yA9OiwH#2KGP_qPM+2T~iv-SMs&%gCp z_@=2i!C1EHgw==t_}#a)b%n=Ts9A!sY%LO&TVK<z9Cwt*I#sg-W7%3PEY=ro9r5xF zNssjh%@T}dtKPD8Pi%p&G#=J0!C1DA6;@yTvmH8(%a2hjR6KZ7vjk(=T7p=w47<!3 z-srKu&@91Nwi<**Tg=yjZu9T*SXr46!3oB)wG>j%)|BK^-8@!Yvjk(=S|%*F3_p1E zH?MfC@tP$V%T}Xh>xCKre9vQHQ&w?;v1~ONTLhfft?#R9b&f}iHA^s-t>X~u<!i<- zUjCQIIz_VtW7%pJ7TY1+9jEqxORfC#=(n0B7|T`*Vm(`LJpbZF9_x0^5{zZ5RakC) z{rkq5KYOgFHA^s-tv1Wne=aTA+he_}S%R@_9WN}mzQ!HC`e2Xsvt|j#vbEf@b<<6E zoawRp@p2tbFqW+qkfz7nd>!@tMdx}fJn|_{FqW;A!gBla?u#Ej!eik(qT&Q&**Za3 z?ih9LO|O5YR+0%nR<i_S+4_yJTw7;e^4l9c)~T8$7|Rx~-n{XUw$v&XZC$Kcg0XC! zWZ8P-hyAyEth+T!FqW;8En6Jt)yfHNZPqNoShh~FZ2hh5<DWeicHb8#7|T|>u-N7~ zM%{ACagD>wIRBGo3C6N@s<7NL{Nu1GfA?7Zb%hAVvUQqaA>hopZPp;Qa>Ao=nk5*^ z)+)q${p-e8zInxCP1h{JShiLR%gxsdJ$_%HR{0=y7HXDYEL&@Y<>u?8S$|vOu};t| z!C1CV7na-R|8&H-!#&nI%@T}d>kP|Q{Ds~RdaRo?OE8wLwZd}y^7#*3Hqm3P*DS$U zw$8L{tvG++0Uql$%@T}d>nvfh40%pjH}b1*J=QkO5{zZ5!?Lws`2%x3R#rDe!U@K* zbvC5lxbfEue|W@W#WhPXmaTJy<<{4`n{MjnvBqnbU@Tkb3M&u)Z1b<3dDV+EOq;LN zEWuc|&a-Ug*G-w=u@-5TU@TkfgvI)zt$SLgO;W2^IB-tVEWuc|&PS}*=I?C1{T7dP zk!A_TvUP#5*bZr{@04}7t2<CQaBk5o!C1B~M674)vc|3Vc&x`XOE8wLi-g5|(aqd< z`Yg2?&!bm0OE8wL-y+ttbw|w+TRhgMnk5*^*6)Pn=IgD`KKxLvOwty%uoNd4%htt^ zd$wwh&N|Oy?X6jYv20x;EVs@7yye-L#~P_wg0XB}YS|ik?V!aTt4y;5W7)b)SS&;K zueEnnjq_O5nk5*^*6%G_lQXWm$z!e5EWuc|E*F-YuQ9(`@f(kIzGex=vUP=J>(Jw~ z5+3Vj%@T}d>q=vb?eMvh&yV$1Tp!ac!C1EbVA(qMuU~xTv0l?G!C1DgGPYQTmo6KA zvd8*Vvjk(=x>{K7xKT1@=0zSWvpXW;1Y_B{22yohNn586zWzv$HBhqzW7)b^Sgx(h zcK=6>#~P<ug0XB}CoH$VW_^5RhR2$rS%R@_U2oaC<<u)L@mO`5B^b-r4Z<3Lf7aJe zAD(z*ff)}^)-1tTwr;d+ZTRA!KY6U*YL;LuTQ?b7EW;~W2KMt<w`!JPEL%6*ww$XP zJk|!y5{zZ*7Gb&l>yW<p6nU&SHA^s-ty?WylXn|=mdE;1vjk(=x=mOtL+0z4n*N7) ztnRFQIKf!9{s^fzM%}P&bFRnQSF;3T+4_^PqVsjQW(mf!b-QKj#C!Jd@NCV}EWuc| z?huwc_O9CJ&PnR-B*e}V%@T}d>rTto-wxe&w8uJ4vjk(=`m<&0^oyJs>JBDtU7}fn zv25LC+1m1_?w5G1+cirtmaV&m<@T=`cOH@SSWjw}U@TkrShjL*KI{RH^|odS#<F#< zu-vxsUcZ$OdaSQCOE8wL`z%`%>z=&BWA*HbNI1b*w(f`2n@9Eg^rG`T)_$5L7|YfJ z!eUa`dcUYVr^sU+p;>~lY&|F}w;hfynm5>E&Cx8uShoIR+4}SMBZhgbrJ5xe%hp4} za>uA+UQK(m)QnMUG)pj+t%ogJKg@q(j>o!Ovjk(=dc@?5<00p4>JBCjoIh)pU@TjY z3d=3SSkVc8_E^tomS8Mf>xJd^uYNE6ajCky4Y9LDvjk(=dQ4cZt;T1^m3XXgHA^s- zt;dC>C+@O-sGjJ6*y*(!|FH^;pS@POffBPWdQa_l%RSb?nk5*^))T^FzSyE(Z{2c- z$12k-!C3iv(z12&^iy&@)*{UkjAiR7%hsezA8PVgYcxwRmaUDJt+T$&T;s8>)hxkS zww~UJt;aM=FqW-nEL&Ht{CbOLYl~(H#<KOSu-yK2)Omk;&SU+gS%R@_{nfJd?HM!w z?XmXGK_r}DEL)o(wbwV)Qv^g$&@91Nw*Dq8w;jHF@NYixSaUQ>FqW<7gyoLCb@#15 z#A7vSmS8Mff46M)A9{D8$2v!|1Y_CSY}p$B<Bgj=)-9SP7|Yi4maV?`ZhP2cZPYBm zShilUY^^HUW1`1;PqPGL*?Q5kb>MlWEgnm5Vjx~HmaUhB<+hEl=G~a#u?A8MCm74t z%aD3~x#FpAMIP&L%@T}d>lI<Sw!Yc)?)M&Ru4W0wvh}KEYg%bXy~k?PEWuc|UbAfF zY#ct@V_l$Gg0XD9ZrM6+%}tkjtlKq9FqW-13=0A0qfJvV$>_o$+$PNujAiRh#Cm1O z@z7&^q*;QoY`rC{JpSXi`vE6@<FUHsLIfum%hubFdbUoysAj3hIzY1oW7&E~SWF6S zaoq4&Wtt@z%hndlmUDIGV;-wsvjk(=+A1vfoU-BTs}ELB8$#@ysab-tZ2d!6?znMA zx5lSD){UAa7|Yf_g*A--_`S9Em3KVW6PhI$%htP=t;$CST;#Fd)hxkSw%!w#d;Yre z?X919thC;UgcFQq>tB$1_0_m;?5{l5V9gSYW$WL<a_j4%In#V)n9wZ2ShoIS*_w6Z zyL)=Jsx(V5maX?KTT9*@e~QOCS+fLV+4{h;)!t?BZ#>o&nk5*^)`!A!>+9PWw!Y}G z9?~qqShha0Yz;i@xk``qmSzdYvh}gBcutAox2ezfN2#ZRap3%@S%R@_eS%o8zV4Xu z%tIb)@7>A8d#CteM&!G{{3#{w(CqB{L~iC7Gj2@KEWuc|J`<MP=0AV-@(z!6v}Os$ zvb9ZES@@?rAn&asdl_3NXqI3sTb~2#<?D=Joq^Q4Bis3!B^b-r7s873AHOFL-9F4? z-KbfDv21-QEH__=U;6$WkM*c#3C6PZm9X44zvRBn_j{~YHA^s-t*<RxBX0iddXM#) zW(mf!^^LIDm)SPfl<n1?ZAzmnn+%*_EL+<l^~&(2W8c2mV-40U!C1Dw6_z{B$1{qC zc&x)TOE8wL?<`w`8g_i{vF2!&U@TkT3(GCT@$F}g@K{ZnB^b-r50<UTiC+)!SRI-r z7|Yg=R=&<yKj1!(b%SOJ#<KO3WveXjvi=_HG0hT;W$S0dLcn?Cj=aazn<hMZOS1%H z+1i0vuf8gl-1Vi$`bM(^W7%SpNRKg^ZT>&=f7;t)<?I0w9Wj=zn6TV7pIu$^fyX*f zvjk(=;**l;u{adc)`mm>^_9me)-1tTw(t&+FJJL*|NXkhny*=cv20}s%RPS`vE`9d zJl1bCOE8wLE|#r58jg9>WBpFE1Y_CC6qZ|tLo0qB>#^?CEWuc|x>~k=x~1PrkF`m& z1Y_CC5|-QMuRZm>sUGV;nk5*^RyWJm{res9w8u)@6O{oc7|T|+uvmt46+d4veViFL z_R%cCShl)bwi>rSp69U&HA^s-tsce}0?xM+-Z(eY*jlVvg0XD%v~2yeK33(iPSY&G zShjW(7R!+C##1Xk>2GZPUb6&a*^=G9%{su`bJiW<vF_0<wIjIyT*+sFz4fRA&wu>a z9_u;H5{zX__VzZm=5M-nqR09`vjk)1i{DxD*5~hDv~jh^%GgWgRxp+=*_GPZdhW`b z+dS4F%@T}dtB<ioy>}H4|IGkXhKFgEU@TjE2+JKeif*s{(PPchEWuc|_7s*L!kis% z?Nhm@v9(0A1Y_Bfy{ApSp6N03J&(0Uvjk(=>TBietwj%h+t=8-QnLhO+3IKI>$jh- zy~<-fs9A!sZ1oqGJ4XHIi#IlStd})QFqW;oEn6p_d%Z7(Uuc$KEL#IizBu--%-GV; zvz4Q}xL_<>`&hO<zHQbg9&5N}3C6O;_xrqYez!e-gFR~9*;kon3C6M|JLQ`CI<$RB zhsUbZEVY}izkkK8d^uAxW_zqvnk5*^)?h1NPmbE{JCB8`6DJsFM6>sV<Pc%)t)iXs z+h2Ux(a+Okzje(bCe32WPOUM${Ndbs&aJ0<tS>c-7@L(Rwp`Y2pMQ9p$J)D}N&+!9 zYd>KP&?(&X+^tu5tRl@K#%2u_R;FehdCdb@d`i<t?V3f5&Ei{B>Db9wxwPe%{mx@u zsl~+DtYN~+*Q^!S--$_+YwHEgBF1JNAS`_u;~aQ#ZzynC-TNzL#MrC@g|)A?^~fDZ z-tDo*X%;ay>mXqb)vW#6bN}M8PSPx5Y}RmL#WictWh+`d)_s~qjLkY&So>*K{|R$f zdaSQBix`_VLRiB!>-I_KBa3cnjL^-K7@Kv7um)?^jlce5++!W9S;W|^d||m|_{4Wl zZ1-5#X%;ayYox{c>htU)J=R;AMU2fFC9Huug&%*l7cQOMeD%?dni!ikT3CZMYr{KR zaIxsJrfU{4HfxNqc%4GGFz1X5Jk}b`BF1Ko71nq~a<1#UV}ZwdM6-yoS$yt4J?56- z$5S_BslZL)x0*$a&EgwE=`pSz&^_Ha$=Bvb?W3f`*sSrw(oM%X=z@Ko@N6y7EMjcd z1Yzlkh4X&Ny_a~bt2K)ln{}A5MyjMZ7jN2jj>mdIvxu=-+?6>!=GuDX<wg{zTN*jK z@`<ro6D`(VSDb#W$4Y1xF*fT6Vd<ne^OoOtkH<Prvxu=-lZ17M&e!Fc_hDJWP2tU& zMU2gwEUbiPt!degB`cTpPt796W+g1v{B93pkaJlB1}SC4*sP?m_Sd$4J9^mh9_vWW zBF1JF2y3urJ@dvtuJBmrYZfs!t58@8&AO!9dnbCVXEci#n^k17?mY1FDvy;OSIUU7 zS;fK{p>1ue9QTdKIzqFEu~}1u<+iAq&Y^2PR-0xKW3x(x<<2VGRv&Y<$GSnYh_P9v z!qVAxj{S5zCN^$;y`ovf*sL;PxhcHrlfPW-v2q7H;)t<XQ!Uoj*?fN3wN;>5#MrE9 z!g5D|Z?7G**kiS57BM!fTv+(?IoH-rnnjGwnl3CI?Oag#!j+z_N41z3n>9mN?iqIC zjt5@#Sl?+DF*d70SO@C#jaYr}2_9?o5G5wYW>pHyE%|ra@5MC7%~ykF5o5D{AuRXo zaNCfhvFzuvuFx!EY}QO+x%nE>-1Q8P^`>SKW3y&itndGQ#D6^29{Qv~jLn)YEO(6h za$SG7)1V+KG)pj2FegER)1u=^Zia+cz@FqaNH`t!BwbJdaZ5555}uJf%tE)2AXO#Q zXh}vaXu(WKxjB;N4EIocw^UEjEMk=GVq1@I9)6_gVe09=zH{zrF2`|h)+}P|68oja zy0v!w7LT=Avxu=-b1hcIIax1ytnHdbOqw$g)3~at=GrFgOjjkFxGh{<yKo6NQ*3Ll zb@(zfw@9q5YN=o3JCaQjgU3}Zt<~7y&f^HGN-jl$LTsn!1J*UPwJernZsgUtP=eSX z(GAL8jS64gybRm@Nw}r@_}Z#A?8jF%dXy&!9t&XPINw&0Zg6HTU$4~fP?urjvQbr{ zM(;IQ<yqzX+*NA7v8o2_-6k-V)T#y5EvlTFsjg~avr4@xHIsK_W?>t*stf?iN{eQS zHihSwg>vZbwpJzETzaKfRy?D~hhLPOo~){?UxED?Jq-8$^BpcMojE;>!KQ{j47V8c z9dd6$-yt{O^Br>6JKy2rvRM`w``7tm<!iiN+PIsXFP0m``3|}DoBt4-w)qaZJDcy2 zyTDcX<Ll~|)we9JYHnQaN3l&BSxuvE&Suj|9~Ar=6jTGYqZDaNbzSYkYMorw?y9g? zV)fEm7qL7jWj9%-D+AlwE#=OKHB}lWN~@citYcO0s;4Zjt;Qykz7(+)G{9Pw*WYAE zPMA5N)@f|Q7Ip|!EnHeBB;Ay&7B*DZFBJ)Q*Qs*bQa~}<YYP&`CR&Bv3nf-Mf0euE z9;*#)x~-|IrEP&JLnVRGEoddEK7LU^(o|jBs;Z-^s$^Da^|G3V+U7zIFBo!KY8SR) zU|ET*L4Y(iE~&3|^4gXyM=j)e4Tj@Rp1klG6o#O_;U>iJ$E6^0NJ_zzC?72}9{70S zIBZl|zbr3b(jSghc}o?mxFdJUO%>})uxe#8*!Ys_m--F)<tll~gkP@kqkNU(*B+LK z5+g%hC^1Uv1G|k^4TL^?Ai|&iK$JfVfhd120#S;kG7^YVtkIJ9K$K!dM)@+O3zB2G zFGqf92<#i_Lll2ph$v@+5JgEtVBfhSMDfRkh}<MMoEIexf#qxy(yyfcdQ=7CNBi5M zAMbB(etcN&ue-2*RdIf~!jJK_bHDzuJd{~EmxeN{q#>}JX+vNo4T0r690Dt82rOsm z5Lih=VD2^>u1zIX1)|0)RZxC(SRSrWKi*%Ve*ON6^W($vP~v6A5z48Oh7<2c`xEcS z`xEKMhviDYKaqZXSRP8e%#T8eSJJR@KiaR{kGGmMXJ1--Sg!P2P1=VK%N2gCziasL zVR<OCGW!c<R!Ku(nHz?{N~%)guRcFIELV7c3Hb40dAMZ!cz?<G)8j7zKRzrEXO=VH zaArjs0?WKO1Xj`zSkIb6a9188_-551l0QzBk-tm$WBun~HEQ@{!}Z~h^`BEyas6c) z=BA2OcE|ZzaG0AaHdIh@^(#~0P&xUclu3V+^hK(irics|aER$IeP5(v`UePKq_UYJ zQZfA<BE(D)shIw*5n`r@R7`)Bg_tQKeN_^1q35fWs91l3qvBOLsWeB$`;#3NulOqE zQSrXSn?`OfM}29Ji1eF|i1u5Kh*s=F?M@K1oHAOm$M2k-GFq`G?3|r4TCqp^`wRMS zFzKn|Lq%>~hKI`Bjt!ITi}f%)5bsmqyQufk{8E)w)z|!TRkvZe!mHLA#)sv;#Mr9{ zzVrkl{3ZfXR$oz{Xwi!jd5WdGfgR;<rvZhErH0}_lww6j`7&iMg!nQQh){-9iwZ<3 zLy=MbqKIUv0uMy_iy{!^FN#2vzbFDx{-Ov(DVFNRfhfg_jPezr8aUjmUH`g~uP}E4 z@~N^HnSAs>gpXpcLis3x2$fBB8Vp3KY(_>YmO2GSvLd5G$<s?>q13tZ5W!tC3o%SY zh~llOg-E`ra54BI!v*1s3>SqjQZfC7;fqvE)elu6`XUuGMWkY?2AF~w9XWY&Rbiqk zzo0xZrEE$`vM`xUs1NE)9;-hkHF+#P_A_~`{+QI{JRls+s!U9qT2@+GP+pXnJXSt3 zHF>OF`48aAil>((XOtHw>X#8&J9+Gam6OMEVcr53Oixr478Vzm%$SzYV^s07n#p6; zhp8ryot#%#hSgzyoC?9I7I$n}vaGmrdU9G~<m54<CXX3!#THCWlqIK4D=R52l<$V9 zmD|Z<xpX^uEIxoTc`QF^WpRp<iOPcMB^6T(3KMc8WAa$`PTV`0Jl1^dYVue)ry)UO zO}PL+t*o+STItlXgkA`S4fms0mW{%qL~-Gif`YQr5)X>J6;948PL7noXcSg8)T55o zm$6U|<MUS#U@R7vBxX!6D6J?iK|a;Da=@x@MFwk|S{I`P8=EJOHQ#UYrL{1bn2PT= z6(x&j?1YJ>smWvIBxt98N@7}JX-WCivVxtE-LGsxgO}jxi7A!E)25XcPu~gCOK@Ic zxyLO?Oq)_zF|~Zgl$~&q<fKls$1F+|OfQ;Jkn|Z<xf&}U=t3>w3tf}P>JK>idDD`~ z8B?Yf`H1d7j*sx9;uTaRW|UUI;<OSkrRw%bfWijt>sf^;&lyvu7nGO#3fA0k330uI z7AH!lR}>c(`<j9JX42%bjdf^4{0vzOiUmn#wHRViS)#aNdRcKH+OGStrpaUV7r|f; z{X@=7X!#fraEr|_(Si#qkxTU31V0G|Ls0I16bv+c6$~=@EEr3++GCa_3QG!SOq)^W zD;=(P((p3%tuQ9F6<>HF(+~@$C8ic9D`pf`pxGm3`rBc;m2+`X_e!fw3rZ5xD@&5e zsg<RPGITJHCf#4YEM^gk3KE6Msnd#zrlM<D1b2wk9~4sq6FxlV>sPQ=QdvHAYWcK+ zgro@F*udRE!C&PdR2EN3&M2BTJ;9~T$(<5rB#H|PrWemB^K}C*N}En^zC&hZtFSUr zIb~|WltNfEV}-ww_`Yby7GsJX<4wu*vMCjn?6dmAW@r!U%Vt&^;c6?We&*D&>6KHb zOhdceDRbnw$rCVc8D?Q=Vrt=(qO#&?34Fe4@^}=nZimW-YF&sKD_=D88$}-~C@U!} zs4Oq{^67oyOmzSxp7nxnoEekIW@X9LlBrXspzr-xi3M}Ul!}V-lG3tHm|S7D(pr(2 zR*n-!MX{Guf0dZ8o#C{M&z+gHq6%kJRumLhVD#o1Z|9AsI5DN5w4frHEHwm9W?6kv z=fHx>1O~l|@)?Cw5?qJ141`C(K!cv1#F@OPyfREp(F3L=D{%TRuSjtD)v^^yn3gCi zE5y)KG$l;%C(fU&{K6TPGYXQJ2iUy=t)+ZQ!PF@gNu$gE#Woa>T}-A9aPBQnmRC+K zFHI)=pHIU?2M<JmC#MuS0drl}H%1grOOzB8mP{!^z-GE%ceB{O0k8zMSdyGxF})zc zWzkMc3S)CgX+cp*C5GBSKjNyT8o<=k8M-C3EcFf4B?&Z`f`XEgia<I;Ipjy;{5ixB zlPoGPD=hboHT-IvImdG1BxS?JR$=nSbyIaqi+UC&F?r<V$=<zeZ*eh^n2?y@NR*)K zmo407>`GY<+jaPVquW*;UZ&bvx>KR6s>=A4(*iyxQ&m;pQe9PjJRUEqUeFLa#@8R~ zs`2ql>-hlnWI$Ebils{v`QpYaFF)*qXka5XD#F*Wx=x&P$mr2=zZ*Gb%*c^rN9T_p z>6gaiFfnf2IQV17kIk2;`Pnt6@9j)T{Cm#RWAWsfdgu#ZZ1KM6N73K$E6>o8u9w}* z`mzhf7vWj0z1^2lG%n%vD$rkia@EUT!S3$0t~$Z7`|Gd!QQks*U0sCo<Gm{9`@bMX z>5s69tzezAc2k&gc!^%H8_;(V9)3FwZ{_c)A57)5a8df+gUthh*-bw`j)y!W^*s;y zz&QSVE=u2ubjSHDj_(-jXWICbUsU?|hQM|_>E?G)`o2P44Ba2!zR|BKl%~+P82UaO zfgKd_bUR%){G#+FP!P8P^YJKw$+u@DeZKe78Pfy5t41q~`=98QpYZQ=PC0S60e8Q~ zBKycMZ~=X&GUt_D)b|c>A9kXTPc3GR!IPHw(INZFu3XoPNdB0<A;65#xK!z5J(UB~ z8pK8Dy8xIggSbF``#|4Az-$iUBJ_O<%=bZDKp*ql7yWh^esm@u5&EV8Gc$;b(ANY^ zdk`0)?@C~93E(iK98!e&^_=qA<z)qj4QXquuNl!$zhFoz@xf&?3d`pd6(3erl}J=o zE?hio<<csQo{2dt8kQ}=hp(5m&S_k-w6&n5plr^P`iA3<U$JQMoZ7{U>XtV*%xP?1 ziMTlnON!^zAK!TV35$;}hp7I9`UP_!uV`3#Tw+wRD1UsiXnfJ36AH!@jvZ+y1c@x1 zK0A=Qit?fv$?3(jhQvAIaU+8Z@tfnsau*It3@JQp9w$BZ4OpR=*MM{8$Z;db&%?#h zvG@jR%e>=TTH9*s8|NX@h?}=!+?aVYYa42DPKlS-FKEVxyXQf^oU{KCjSG&&mkTE5 zI`h#Y<eOq&9HqW3Mt^$!!sf=7#=6${u$c$ME7UV|{DO3$n8)*X&R0kmn<$$(T_t|K zVuNFcZ8_%a@Ao+9z5_OG{oU>x9OpQR#Ww!%Z)SMmf1QbDoeAViGNJM}a@>ffg^N?E zbMv_{6(B{Sp@5p2>yIC?m`P>%bC}3<%5x9Fn*pqoI%khP#%=8Q$EN3>nSR4wmGy_D zPvIBfod0><sBB?4Ti|^8#pk7G&dbYcUzwYg?0Bub<Mo_1d=|NVW$#$d8a_c^)bZEk zst;m0s~>=EhFXtJuKF%5XAL(H>4+7NUSHnv>;p{jn)NxWUx8oLu{mc@!pRx58VC3^ z)xBw}w&uLJwW$00HP5v5Dqb5CblHx_!2KwF)nh-F?s&Xx)rYaRmsfq4k+YiZ5TFk_ z;2ZsT<R1E4PoQq<OSkkf*3<X1PhVzh33Po_P}I?_yyNlF&)nY*Xz`k7TJzfv!-rD3 zKMm}vZ(}ECJpb)SJ(Fv*B))9N`q9snA**d~96@|*I%1MJ_ZIffx%b7K+cziI9+R6~ zJ8Sp$@3WfwCOgt|?tQlOu@BNqb8dgS?96Fdr5z~H4att~IrlzJS?Q|Bx-#C2bGzIy z1V%bja$&<b&IUNSSPK6@_azah9nGZ*b2@wreTkFnOv=3oQ85P(eOA>kt82uUWRkgj zk3+c}Ip!1pIU=aRJF$~;`85Ke;45dzT)w}d+;()$iOwC)SbVjN@))}+-0rdcoP(S; ze3RyCe0SyV_$FR&XlX-C%rPGahb)=f2Qr>*&}d^*!DniCR#vWu(_LG~T&GDQX&gAX zp`w6Bw+nhaKJzyepP-wR+bYLPt6P=`g@yEmh{o#Un8SBNSz2zo94V0H^);=F1yhgs z_l1)qX6lWZ6Y<R)f4XW^y7(Fg+ciH($V^m%pp29wU2d9=m$=?Qabp{Pn1zMV8^xlq zqfwB(fl-BpOfRmlYc(7ho1j066IoC%i;-SJU_sp>$EP^^;cIuPa?aAii!^Y(g_n!O zDc*@Vf42H+MCY8ZqFg70q@?s0JIOh#_G-Zv33jm$n=033f}bUc36@l3uGa`*FClns z^6$v?HITVQ%MRexH*-BnctcFC=gaXX<ob!|To(yo?k?pzDcEB|xgOy3<}4-3C35k> z$=qCy?(DM_G1F&zK};6=rHIilb94Fr4EtC`%<E%mPDL);{(2O=>o`tODJLg)YdPN7 zYUkL2w-wttbj0CLgb#h~EEl}))Xs`H5&kc<d_MeBal8cnD)^1?Plvx8{u%JWan`~= z3I3VzPl10n{L|o{3!lUE`S34-e*yf9;UnCBIsEDH*$QXEXS1IT|BqVE)`$r}`(NN6 z1OHL@zlOgNeieM~$~YhX-{4on=haya{1@QY!G9BeJ^ZckkA?p({08{{f{%-acJ_O` z>DA8eJRCmD4;KmT9A@(2{|J91{GZ`t!rhKG%(86Hgg*{`HvGfk_lA!$Y~KU^5%Bkd zPd(hTAPJvu&=<gG*GHb)`L^m6@Y$iRg3tGXc+Byf$4HBO<*PeWA)##f&eaecb(ilh zF_bM|Dp#^)28VjkT-1Q(US(wLzKZ*jk-cVQEDxpcV<YQ=G$~m(9m;l?PbK4S6H4EB zBjfwAO2#)76^`%pDOrP&H5u87M%Hd*R~XsVM)pS|yVJ;?F|xlI+3QC3wvqj0WU(|i zEj@LpyOV2VBaCd6kxeqP0wd!$0EeKIx;w`j+3`kpf{|TpWWP7E8;$H%BjZ=@hlsw7 zM)snS@tc2)&33*tvh7Bep6+tH>QJ`BulteF-5F+NV~lLPk<Bx*`9{`YWbXIovYm5` z?0kc}!pN>RvImUpVI$+0{Zv~1W@HmHTv<YgvYpaZAI~lA;OOL(j((!_%%Z$_QO><b z^(yapp}ganWcv^4IjfIGu1n8s&8sXu^TfQ;a{T2dzuA!1Iwt4dU*skqg?<Oqu+mt^ z<M75G^jOCiP?LdhBJH5<2W>vHJg?80v-7eb?E6tJ#4FO1kD_T{3VK}bLEE9O*O_DT zpfRI$7-B0k$`)=cJ*USSrU}Q%+=CuJb9Rqj9l#}bY&<igM+eZ9bBa8_^vs65rgEfi z{KTxBRj28+q)+cSF01{!SX=jrX>DB}o&)hmyHCt$%YK+AqxSF8Tf02G1EJ|_zR6iV z4~Z%2*pl4-X5Bg{?vDv@$1BOhzdU(pQO9%1?XP!iSo6ZknH|r*xb>s1$&P1Ue1G33 zF>5~P)#8Kxnmqi)Q??ebO)KME`O{e2`VVrTtgS8CF>>^dWX|o|sh?w-JMAvcxi@?C z3mqF_Be{J$viVy?Ivw+R^eXCjvm>Ji5|KQ7!^!))_>QNO9nY^>e{#l)|NJOp`|B@$ zSk(RTgEjzi%D-TC$3_@F{O9JIKez;1k{t(({su-rTk}cIYMdmT@-u7l63K@gB+1nW z`)RQMR5ItjO-KN;TY!s&XNq!ef2`xgi+XizK_L{SuP@HI@3o?ijEjnpmb_%g)5S<a zcCupw=l4&4l)e4+WXFq4%d<rXZ3O0&w~`%??Re_3_p_2~(~8$ljg_r>JnitWo6j%r zKnlt`P&=g^s3*?B=a=HJvJ}->T8_W`(vI@Hc<Ja(90}1JpP0L$D+06d%Wyi-@^IEb z2n|*)#}39>c~oF-&Xu*@5q}!|g9afW&Yhd9X<nz3^MNw`=ILRe&|ips;S@VFWAkMC z&3RWZ#5vCDSgx}#V)n*q??lXwe}xIFe-h96qc@2^4JV^~Gl6I8#MBSFZ0_q^jMLXw z&XG=QY?(})xHRLR!1H2&^Iqk)#d^i?ULR7^U(bKt)O5w^dI_cy?>SBQ?DwSHKg{I> zL^7@4HSO&b=I*8S94UTxXrWB0zfWY3#jbUlo&K>4akX2-P9mxDYpbbU2w9;_g&6-Q z{$W{<y82qWo{C+M)Xa^|5nY^2vG`jBkB1zVEvs#4k(pp4Qcxn|!_yALxXB9)%!=UT z0)u6_Ck{Ro(Gn*O);Ry)6V_@_*&Lj`S?U6HvB3AR)iqalu`$zEb%!B?oTct73OVIl zu(GwbMU?Wr;<rRTMtDaW-chkh&Ym&vLgQG$v&HdT%y|eCx;ql(R!TQ#nq1qdyzs?A z_u7l|6wZdp-~`=ebakeS1;tR8GJSyTBlx7?`xpxgV;N4R4_`0(IY;GKhHsYYW4D<4 z;n*!%yqepn;@K#U7JRed*&tN0_K7am4Fc{aiD9ue$#Gt67Op#3JkPVLorR)|P3UBa z?=5kv_Epg_Zk@!bqT^+dt1HX-Sb9{r=zb%NUznnE8Qq-^#Dc%*c!}96__>1TC8mqd zaJKpIs_0l0&kO#-P*Fq`9b4t!1^-*Yr)-hz#%z&$gMihLw68IA%t1F+a<Bdm!{zl| zDT;B280r!#Mqcm@l5S9J3T2yMufurR<jbULPfM5%!Iues2@1u<ALNuFBW@cxzPh2U zRx-wd>?)jJnSyjVdtvb7B^E}UD3{Dd3J%MSBd!9Lc)2wn;fTwv#Sq(<TTPH~MD$;7 z^@Re69gayAG5-k13p6%8e+)+}UZ6qDYmBR;To8cc`63JcNQSi>gIPO!^qugB!M_(i zt}C4T;V0og4xiUx8{i)Ye<S?k;XecaG<}TgFlQ5v&x8LQ{2Soo`l$UD_?zK#pnVDc zi|}!sB-cb3aoRcae+T|H_*>wA5C5O=IYD_3elMi)1Na;ZFciwQ4mj-tar`NKUh8}Y zKOa8w+RoiqzJ^~3e>;5cyzm`-Ui16}pM4&>+neCyx~hEz{I2lXU2(<H&a&zOpL2gq zXWIV)AJ<#$8{s1j?VI5DhtCc$0RA@kL*QqiT=#|F9sYjs^WYDIKMwvu@Dp0j?|mPP z<5}>rn^il{+oRwQM}9dnt7|ZZvUv@vWmP(qjnkbgV~r@>DkD3?$WWJ>dykPlX=JE5 z%|+R097;#aa*-#M7G8NN8zn}@6TFfgV`NoEcA=47Y-BeY*{w$QhLOEvWV~ilc4H_N zWrJ5rO16iQ@tR4=c+I46yk=4|UNb2fubGsL*Gx*rYbGV*HItJ4&d4q^vKx%-79)Gw z$Tk_-Yex2#k$r1qKN?w9x@)(G4rR-gl1j^PBjc5ll1((SxkkpTC&p$wi;av|PfE7N z$j&sf-x}GaMs|;p@#<+`(f7QOy=-LvFtUFcSvn@8`-0Kk>8eB7&hAFGmywM&vO|rm z(8x-RY@v}YGO`vU;}_6rE!(-!$SyXrYmMwiBU^7|PZ-&2M)sDG{b*zkE&!E{zB<(1 z8DM0?jBL1(l^R*Ok<B%-c}8}kk+mDy*+#a`$ciwpS7lnNL)o}KO!k_X*>*JVf^@{% zhVo7Z#$%`B>AIXjMHrhoKpt3-zP2E}^qiR)rMxxp(FUR}KtyTB(;ASuwjdLLEPc3R zZNUz~Zry+@!eh1ek)<8a;#S5nMIGziYo(lfW2NVmrL9c^IZct1B$usvKi2k77-~Hj zM(U85)v#yMleV^ijEt~3l($^Ou-i=zT*N#tD&$1r96U%Lm>Uf0r2#x%Sc{E1<UzQo z+YP)n@NPHUfSLIKTz?G4J-88aGUrVIoQU9JfvXlWIjAXjhZE-n1<ZD5khyw^OXQun zdC?o!H2Ka_RM;Po3~vVRyNz&&fV+xWt`jRVsqP%ZTO;ONI2ZWcgfkkLJ!O8xX`$lX zi3U0VGo-Vkja3SfYy0X(Nm7n;!eAB-&)!@sB-mddJ4;!EaEfq&HOQo_U1Yz&3iiQR zq1@YNOt0OuJkJr3moi1_=>z-9>`?*dBL6BIcgXQz6nL)8v*a-Rm-sK1vek@;6C%0X z*2>uSI3dD9wY~&$oZsPuj6>%#_>8+8eh>Ip!|w(ETKIkSaU4EQYwcs<e+GXX{QKZf zf`1Qu*2m-U%i-f1qP-eEaSPyMF|oZ4{$JrA3x6~GW$<5s&lx?B+u^?ie--?f;a>@# z{6E0|2mEW{Z-LJOdmsK^;C}#rGkoGWvDgnkHL+j_Cl4cI<to`~BU@`^*BBY6a|-u} zkv(o?T+miFFcs6dAB>D6mEsOUt57&hm9%WMksWGeyxpsCyrffHPWY9KOS($7#>mbz zvfmonrAGFEkv(i=T)tKMc<rO~ePLwZ7+D&|D}~F{p=`PEP_liE>=1(+ZDi|=jMHvq zLk;XXYgli3_??LRz#O@AV6+H}URXTD;5(D6h*{ImNo1@o_>r=o*B1OlAH(p^Yo}r) z#*qKw2Hff<m-FiKj?J=&m*f!4yTjeE;+2d|Kc_5fZNaxVPX4gA;5+(1t}XbU{!eQQ zexMK4G{F)6r?pdmE|P&Bx4-|)v&3(7GDk}?TN{u>JQwE<{Gdr{(-2^4aRxA{dsn5d zbplf6!%O;@JCi=0#gP3MHe?`QpX2vgI`4JZ_oWX(dC_4W?F>(G+Gtr`-L$JG4JS4P zW8-|M0w;=rGW2td93nP)#(LtKX&Nr@|AL|aBWLhVPa<JWJP){<x?#*LaTeh_fBQTC zL9+;*L@JRXUX|k`T{2Yjo-Z@WbJxy>>fVGnGq45T2s2c>M!P^)AuicGW4@vKAR+E& zP9lobP1dC1634yNB$_tV32v}HHW~Bj)+0NY6lV#4o`AWO=w>7`A@u^DViGc6j#WaY zb4|#x60%gHy9k^EM6(<pp^syzOS*_t4ojFL8E?GtWVov({D5#uP&;bPl&5Kqw7fys z1&=0-bq?^Ag0F;M7tkIiV~Uirgx?l;uE2S3TEQbS!V+fxVDDf?IxS&b<ihP|PP9-C zcL-J&_mk?5DCM34@k$xj!*E#rfIY6`xhi@(ga230)jU;iqbcp!-+4OT8^8Co4EF)s z8Jq~8r|3!Wd%-V+&-PLbpF;zW*{Vz7b5$J^l=cev>)=<y$NE4!ueayGpAR1=p7vV! z3*r9>K5@6huZMpZ{3Y<YrqKkSr`%@vkLzPrRvV6AhJQT#PvDb}^$O=S_+P_shtG05 z1AZ6yXTfLBAdaW(Jp9xto1tvpU)C~C6qM{VBRk#5?l7{ujck*VF=dL&>waZ}*ZoSy zrlDl4aV5iAg_eypvZRrrbTzKd$c{BK<Xv-5FfyK=l?|Srm5u9->}Dgwlu6^BGBQky zwCoil!xTr$zBDqf87dp;X)2WM4Ai0S&JZKxI)cJ+9YLjq>j+B5bp$0l#>lFSY>AOI z8rgY9cA=47Yh*VX8P^e%4Xz_78(c?FGOi;i8Sl6%*$+m>JFZIBU5C`YS0&@USH<PM zS0&?$f|C8h$mSSXwUN~t*=i$OYh)K0*(FAHosr#SWEmN*-7Fo#ebzP4<gETRDn*{_ z`z3C>#<!o!SsXWOE$#TewBz;GzNH<fRuY0M%O2$&r*fSP554W!ynU4*+p(sdSJbhJ zqkL({-%C3#BqI6P`(5$4Typ#7<f^T)_o-3i(YIQAYZUQ29+%i}L|aB{e=iERd{?c7 zE*sJ-H9M=dpJtbzv+5_sgbB-fTBLP1ZCR1ADs8dUhT~CDysemzTZi$g4Lo@cz%PSO z$>0RV5Z7OaNa#uY?<1lA;D28UapYm!$l%(gOi(j8f;w@L9fc6bPVWxnY)A^6l3WOl zV~y;NBl<m4%);cQJG=;k{VwrBX$z`-Qtr^hc;etggiWpL9!wcDFkM(6h^Z@7Il$k( za&F^nY!NWzrMRbwVO_hpP^RNJE|L;a$!VCY;y~x<+-`_F4<*%sA0KTz3qEh7ayrSC zh_i8gE`D6<S9(O5{|}d-eXs_f4;iym5p%P|MgQ@T1{VEyb0*{-t`%&73HM2=*L+G@ zmORt(B9o&x-S(K%PXBxOEbpJ;^O6FiUHeG*xKNQ*``zG|;W!6A=SO|uuY`~FQ+YC~ zAN-4O+#f#AY;pKJlMROd4E&++Ux2?qe0fp{K33A5gW>ZGF%teB@G)k}6Gm9!meuz| z;TJ%DIDA&aMEJjgj}cYQXoI0cozWOlPZKE_FL{;h1Rd(`oNQ!g8QHl;_D3VT)5sn+ zvd4_<Z$|dKk#Uq!cG;R4!UeIBaj;Rc7?w46ACu|qJ}RdPAi>b58-`yx`h^=}U2zVb z?!>yJIbFs;2^^n?a~=DjVyF-qthIEf-|jId;~IsF!(+@){4k`#(UR-fH<S()BJxm? z4ZgOAb1hz;xpMYy&ZT2|I5}TsI@zt=oGvxlLUy%qbWq&539<hxEkwQTOLLUHBY;VF z1~ZpWWJ&5=22-OLoQJ7UFN73>sG2k!Y8R!u5OL6re}76?$_i~;P<pBJv`+N0Hz>Ub zm=aB;SCs{I@}k{!QR(IUG2KZl#CriF>TA9@DkHXIhe+ybt6N9p=W{NnB>wlhSitGA zzq^W!?|-+7hSOsg`RYQ!G-fuB(go9?B7Fb;cdwYo^qAWYJO1$0t!lFFx79^3e3PqO zYsuh}xZ~H8DHxUqQ+C<Le_^W3#QF7f6$~1oEHB{z4?qO<um;m(?2B}xmp+Z;2la4B zPLHiX_Sg#OvO;>;s?%fc^?%j=s~-vL=`I+)u~kYXaOx|C{(P~erpMU(X?5}yCw(5) z(^D`BWSp12blw+qS-#4}rDX6_ge!1d$$lXTmkO10F@>(cux4mU4<lKkB^i*g?j2{j zmSh^qYAwk&lFPLu%Sdo{S3B4GMppn#nv+*PV<h_k9m^-v`U=)=kf`r5GXBs<o^13= zV+%!ag0a3#l>@2w6~_nfSb4q2%7_U`-V3n5$jZ^f`+9lLw4dHlEtB|Rnk5*^R<5w5 zW)a$W#Z9X{7OoP-3C7A7>sEbbj*zGCs{hXW=3a$n3C6O;^RSn%cUN9`pvS7wEWuc| zcwMT#fx~+2GJW1+kH!1Zbb_&L?E$H0>y#&F?&q=2)hxkSw)Pa3(uS!_?Zrbq)^(aC z7|YgPmaSW6U%TF8J*ZiNv21a+;(e*_!b7@T?y)v&mS8Mf>@i-x#-H@S*B<NNnk5*^ z7MJTiTR9g#aiPchQL_YN+1lH(b@{tbzVESmb7+GTjD&`12@leo!*HZud1+~Fu5ZG| z<nlC^5n`p$4fCBCt~|QO>gJVuv|y3i!`-|P9h@Hf->h*>$_pF%K;04ZEp1wI>rUDK zr=8VPCd{{|RBDWGPb&BIAe$#|4Ec9*2TVPwXydd@ZU1C8MzoMYslw{b-U3>KQiWAJ zM+H+5lq#&+rZ9*NNc~&at5?$x;j7<1*V$X*6Y>uoJ4*0;OFT2ix5P)`QjO<CI{$2f z$DB)K9KevzMZ6{c9$N5=z}+`o;du5+^_KV+jd3+by(P|DUDFPB5z3Ex%Nc8Q&Z)pX zFhXHC3y69PyAtwlhu|Fy{OH(?qx5lJv=Er>`2v%(RFpnkTse&+G3wz*mr5VU!ApRd zI9lO&?ugR29`d_^ao<Yj@DP>0hY+!L4DRLV(<n#ZD1Akc_ZW}YNAaU$^+xGikMu1A zW&|!T>3GhI()S_c&uI*CbW!@whN1g$30gE+VGe{BrLP+r$omPbFEgQVJiA2c%f~ct zLor@+ohmRqqa3Yo8S?R;a;&lH$qi>#QTjN~d=;1_zfk%(pNL9d2lBBUnA7Gc9LM`8 zeGQnto_-{r51XfOlTzrLg7p2m3NM|_S2)&Nl)kO7+fa@9a;?I};YFqIBgoIL!#r(~ z!m-^)>En|=8-YpJQ#`CUMCxO^JfuPCa{r_B4M08)2kw_k6)IJKqrMw8W@q|1*SZV1 zH<#^PAIF1(8Xcz^Ke|-?V>R@(0rOpx!li1@oH<>3oWi*OQTZJXeYXMkTC+l>$}gMK zuoiqL7C$<Ue^L7GhQ6zTnbRh)l;aEMG=Br;iscH&`C*j4J5ayBSb_29M1>m$FRHx& z=A3_$!nprY`ud_^F9PniQxqyy|De9{?XD)}N9h{?eTM`0%hMDll|I(TyBedA(fRF# za`^_h%+(5&sy^8Mj?|c)>5D_(0^m+t)49GEG-hY|*k0ZNF8hp~>tlO98klt&hhmDX z-?h+p9WcYsRQgi2XXba4#wcX8KBn(A;4(TCDpmQhJ<kT_dW}ofp6`dgzX7x69Ho!x zh-!a5A^%BZ6f!z}91pV3#R}kg3Y98-yh1olV|J#m68bI$?t^tZ*S8qa6V6B9#E*{c zJE}cD4SkOSbH;@NOWA*KL-Y<{ZoNq1x~9-q4t<{kbHwiyE>(Vcm+Ks0x?ZAi*(vmK z&1wlSf4@xOQq2zv5q<IR9p?@F=u)-6IP883%x+gG9PLKc?^P(UW?*_>t#E_kMU~$= zG^BagU{{(O6psBMN?#T1X5Eb4b#76(RP}K;^sNDA!tDx|YJRW?89ew-jBR%*9LqT> zefM|4{a;`%e?Z|1;6<g6&%@?FgvYQRRk&2+^KHP@ugCo6356SwLf<LK@4-)E+<i*n z*pH&pSA=}zZNxg*GYXe#JUEo)_bk?({_5eP^vy;3wg7YJ-xZGYoT&W%2)l=G2JS_L z+Xr5hz6R9CQ7<{pldmaUehPi1uzUR**iztah2y*=O5Ygh>$e3j6uzr)BU0%52ju<! zg*zDd(Sa7JFCY0B@^8GO{l38DE{Nneuxk$6N5KaQ<Nl}G6=^DPM`|pxh4PEu6{&R> z^_>XZ+D`PbecZ5%`u+^uBc15uIPn%R+k&`=U4nM|5O;X+qf3=vw#)Irlm>AT`s#pb z4&nm!!The%7}}*vRUelFcT*?&`hx!yFz*C$5$XF8n5>V)<WBQD6qs>AT!g;az|0Tg z0{Lb7P6p<8L0p8syMb9B#0B)RKHdT5(;zNFUyqM*cMw0iRQ1dLF-~Iyh`&_zF$uV- zyP$9JF6wIn?!->?u{~b~%%3z4!(qzw-4DzYyP)r%z<d+LMU-EkPcZi2N0+MnSRa#s znGwWA=xYFGMGzOLU*`9Bz}ynVMd*7Pn3saMfIg=03t-YdMF7s^BSK#snBhTOKp)dL z6_{TKaS{4X1ZHgz7tqJ_-2lwJL0p8smw?$C#0B&*eLn-!`!fXKcGg}705eSEOu0np zn*z+yL0m-oRsgd)hzsb8BTd%;^LP*!p>HcN9|v&(eJsE1Z5YS#qci!4&^I2Kq986p z-vVHogSZHN>wvjDhzsb;Lz*50=A9reLf?<TWPL8#@bVGR*9*}@ff*OXMd+Ii%={oO zppWh4WMD4PxSh3^%YnJ66Mb?%0_L3{E+TzD0+aQ{&hr~*eu0@1#6{?<0j4R43*?vO zcP=nj25}Mk9s=g+ATC1Rzk&HCh>OtI=Sz&I_|chm8qhZkag%_l3*sX5tp;XY5EszL z{Qe1;M}oKreQyEteh?SX*8}=8zrvr-r8-~s25z9nrphnd-$Y<4gSd$FEd%C+ATE%; zKG1gwFt-J95&E75=9M5WppWJE6)+iJs|=fbMCcm=%!nW^LSH#B^MbeteJ22OdJq@T z$N9^38lzH}dVX*laQAnjuMd>G0?da&Ttxb^zQH|M{OC-%1k%Uy8wE^35Er3uJ}?bI zTtFY&-&q<%yL74A-|v9CrW1Y4?|NWf3gRNt_XRLN2XTS)QQv^=xTeOB&Xh}pz8SzA z9mECnvHVs5vo?r}(02nce-7dz^lb)aYY-Qq?`L4Lzm;rw`3UG^`x~Y)3Yoe-@`0P! zi9Xiv(YvUx4!Gt{^f7(wc2VCYz+KmgKBn*SUDWp+aBp;?kM;ZQF6ztr4*d;3I@7KK z^}+TxN@E0wzf}EW3UD)bL0=OvtAn_R_Hqp{e+uFP>0^F30rOT67oqQaU^2f~x!75L z^MDy2#6{>k5|{-+Ttxb~!NR&AE<)d*fO#;83+Q8gyrwZKC#mb>W8l8+L?6p<&mUY( z%1>3lLxCHmu{$fjN?>Y&xQP6o2F$rZTtt3v17>{?7oqPRU_K1u0{WQWtRHb5j~|`M zM})p{z!U^=5&Gr>(-g!-=sOpf%YwLoK8^?XYm6iif2r!@3E(z&qL2CgbQksg3|#h4 z%Bm@sK>FDJhG~pKrcU2P;7WHvUmY+f1aT4NcL^}p1#uDSdmNZog188MUlH^3&hyLi z8wkvZATB~*IWTjBxIp@-?|5KN58@*9T?fn^L0mvzU+8;IV^mI3*T=ts`(hXL_1b|t z#*c1i*KebMnWS;4+DjZd<^gkJ5Eqf(%YeBdhzsPG?e7U-UJK$P^nC+Nn&iOO&jb2c zA8}yvgSZHNGk`fdh>Os-0+_WyT!g+GfcbL}7tl8V>D#O^2#QNJ9()Ykw?Tc){2-mn zRPUwi8Dp(_F3~HI7!kmYMD+Mwz>NTon_c-`l)i%ixOf+Edjt3QF5nIX?(JQ`jRmf2 zTIcE854efDfQtiHy$iSrz@54axP5?oa2If_k5_jQmzCamepzo5b^*t7S+ondLxDSc z7jV4ayCH<beW5`6iv#y;2p4XrOy7sQfaAJZPDbbDG90+kyMSYRuG$6MIN;9O1suoE z^&woiT-fe6gmB?<VY~li7jPW^hVYd%pG)+rOvL~HuUqWe*Ddh<&f5R^*DbiZxe~wr zPS4z1_HgThj~Mgwg;fjqou<7Jcm4sPxSHAq4DbV;tlU2zrJj~n-<DPnEH7-t*WDT$ zI*o_gukcIY$HvercGL3XPe|W-P49hQdU(X}IYV$6Q3g5PCHVD<jTv~-Rr@Szy5zFg z?;2Nd_Dyr}sHwza=@Nd84*zSQ<HQl>ejoqQ;ZG5MUx&X%_+uUZ3vNL-VLT-M1@wn6 zwfq#^vrZeN<alb|$wip%D{#5G$g<;CH}G8&eBN_u9G}CiZHW(CF@D?u^OoaFe2vRn z;!EoBy^@jn^YGoRhPIko1V`kL7@0qEEc|(G3!7W#@f%|J3djH1*FvP-{I7j2<N%b( z9Vmu<QEuIxyLBjAUS!M@*=EQX%9cj}{;$3&l5<}{pXB`w81?It>FevxjA8%ZUO%s2 zn@mHX$J!)5no*FoHkko0V{NhvHVa;x%rqO2Y(kn7fmdHSpwe-GW9w3`om~ZOUG}T0 zYi?YMy=a@;7PeNkF2$=clXAZs!*<Q@%BUSRxG|G*<0SqXbRE3CY~sClTF32ddxcVN zo}_m5rv<!+DjF!`z)GzZF{Rag<#euV7(Vk7$B&Cj<@nJ(hZorBqsO%8!p95v?fv1u z2!AmAm*5YB|1$hT;N!LYc9zAf@OkpO4?p$FCqrrz10_3F$7XY5e~mlK$hI2Udq!4@ zZM1vM;=AK`UA*+1^1SiyBhGn%^_g>DWuLnA=j+bg9b0Jk`uXv-vrwg#J=V@bl~!i0 zorNkb%~(4PRqCuQ%;d|`$86Xg<lFJ{UT)^&zefaWxDtqL{HEgf@14{zi@J(C-G-}| zZ#DM>9oO%O_is|xQ}9ekban6La697hi09tG9jryC72h!wHKkCy7bUn{*vFa9>Ji6w zn7&u{L%JW(egE$JXQuVY?3(7xz#d~Bgo9R(?4H=<KNm`za*T6??ED>PwxfKYgKdk+ zV;1~vOSa;47~?vYV;nyWpAK6F-J577ESRnEnUjCOXF2~<x1ReER;`DjY;3)Q<p_~2 z(xGgp#mJT$*@Z@Sv5`G!WRDmbw)oKc=IfAb312#TJ-33-=ie~d6kZw{T21MOJwd(` zKd;g74d-B^;W>dBWmn;eMmaSsG~?CK+A945j|>ZVtbS5%KU8ka!MDSkt2laK=m@lx z{^;D3a?^3ji8=DQZu8c>H$3#0x8h%ic^6Z+Ow{lJOXd2@tM>}Byt;W=l}7x+hj7~k z&x>pmr7qd_G2Zk;n_$f{^%XHI_1u<rE~1#?ikO#TcPCsX!IdKoe1m>5;7aVK%(sVa zzRx(zH;y09AWj~BbRVG6u*`8nmmzAKZbWxLrWz4L>aBAnTZUsLJ6DIg^J^hm##&am zdyMQwBYV}zT2XKc$2a$sz66J<L}|zBymsJJW9lf%TcKJMLQTGA)$tm(yvSL78jz>1 zT`biQcd#oxHp$=E{u+<txC(e-WBbPl^AOuEZft)Gp&f7=+uuhh3*wFK?;(^Up{-h0 zy0M+_!l`JKh^BC&qkx>YF!p`?pm+lsdE%H2!*H+-zYOfkjMWVZv1~ubZw@9#lLLd~ zddN}D4m%kejdH2ld)262Yw^Q(p~VmHyu}aiw8blg>RL-{mrBR#?G)$owNDm>axoc< zn{dF6__K7frPU1$jSJa_TztL@M^$m~UV&q7b`guS^6HvvYyIf)0dzZ#-K{ay^x3~P z2G6iqyho2dn!DmUuVFpr4c$i*j0(H|gFech%TiGt-7P<Mf99R#R1x#aiRgC7V{yve z^6>TZN<_MDJpyt3c%5E^AKiBJYqmACVVQFL0H4K}hg~KL;2#A4KKR(%r=9H)+w#d& zg#B5K0}N%$mr#|AiC409I@FzC3(_+70EMGgg?rh^UN<r>^()*CBRdEUNXhu7y5e$A z6(!@DL&;Vd8FquxvIf+!!ZqoT?4#2<Nw&}7MmqR-#CN3~{Yuxo**d7S<FC34|Fv`@ zi_7iNuGs7m!|wSEei_)g6L(u+FGHrUpNq`x<(!gE3iNW;0H;Fqd1<7a^zxco%y1i5 z+NU*skm2vrO?XB_LpEnDZ^ElK2jwO$y+z$feb$R%t2#RFoIWY{u~`i9qjHuS@5DDm zXx!Ung3!9}q!;ZWhy!5o=v<ya-as$<45jiWvb2*K5PA~#V9y7GnKHY)NTzrmWFurk zD`HkcRnz7JH1qLu9m_C|UpM?_<41?D*0j^#1fQcbk69|u!Dpg3!{>|wm!q<i8TM(G zeP3RIKMC^J;d5&BEPkq`Go;RVO2#vulAU01CmY#WM#l4@!m$M^?mb5Kn2|kcWbYc; ze~fHCYE^M-bV%)Ld{bJ^>bHTyzDvnmd;~Gs{%uxU89!BXKkMV8o)a^3);xsJ{TcYf zhY@pD{|SNeh3m^Yp5a#<eVb3>QY|(tZCF8CS^8$#*7(y6P}eJG&52-$N{$sDb^CwZ zeF=CJMf!eEW(Z*tm;}NlpaTR%MFfJ%rDh<3i3W&(if4!+KqQcuOazq0i318dMDbj& zRn+xZ*Iiw85yf?hD2I3-tFEi!4aNgq1$5Q?-}n2vYpww5|M?%!ujlD`tKY8rs=B(m z>Z=<oDbHV*q2fXnB^7T>ioPTpLarT$DuNe58JE`lUPhpKdq!dA21?D`g8z1bBeoR! z9@*+!d!h%oGq)6Cdlzun@CDnwtVqMX=0J1<mdk9%>v5i9_bak(<lP$?c79X0;_FRb zxAIf)Ja*!2;Rh*)en~a<M^uHTlJeTBMU~Z3#3k*m$d&hEU(sqSfHj_!bD@CXaRzeD zshIh)@9kMuW82a$vP>jDoKkUhBV3HYwyWt#?9QeovP(!=Ej3dK4wp;Lf$jd{Vm_)4 z9g&v|#73<h%%YQyG!OO%Da4(&7OiAms0t|~SL7^_@U!*a3ICy(M;corvQD?{;5UDk zIEXE;te(Yhofv1CDU;fXv#ziseHysfjw|OnTRu<$dqtdd6DM5W&~cK5&EpuL2Dx9a zc@-VpCB%^u+j_IEa+YLCd_I;N=&Ro6^V#Btivxb}8)zS|FU~Jrq>?x9vu`r15@YIL z!7p7CnYq&&adMbG{WyEzd=@7UltN)*JunNn5XjtU36M$nH$b+3Ukqf)5(W+jE(h`j zT?RZAh?UmD=K`^+ez*eI1e_1N3V1#cE9Zq50j~w}BgWeN;YQ$1K)#4ufQ$otSK$YM zYk(VoSZ7c6miPnkpSZpg$nT5(3<h$=D$NyX(xwRI&a>}&xfh{rkGZ1SyV-DS3`c*} z?Zbw9-*6ur?kB^svqa?`ZksY?9aQB;8;)zQDaXAP)DO<GQf{8%Y7Do+aH|Y=z2R;) z+<L?P!*JUS_k!VA%TRw=Ur>L&$itMw+F~|`)x&I#D=Vr!to&tjCm3#q;m$JL!-iXD zxRU6<rv;`5P75}E7DnC~zb)IcyqRE1qJ0DFpa$Spphxk_dD+D)>#@^qbzW}t+am0x z)w^iS-r|)P`J+D;`6ljV1*;(c<w+~+--tfLt-wknAG-^&-P*_k-`b}GO{J}QeOot; z?d!Xyx%o>sc4-?C`6R8lDZ1sS)>hG^@?T~f(@c1YLP;3Z$+$Ti1P24rH;bZQ6)kV| zUH%-NproQOZ$wekVpqw^`|=hstWDGNW=1~plvI2<Df$LBX&V}BIu41!3Re8HDEb~t z9&S^H<}*A^NnSy5#Z$qi!GVI^o3N=dHOa_NZr>^<uHxv^!N{&O-y?-ZR@D}&mcfeV z#`jt;hM{?{&$sp(>K$kRTQ*Vf{+F7+&vL)m{5>`!n+j(|X}{Q&YaD!=Zy{!f{!+J{ zcV3A{g0H{AHFhT68HDTNXmio>4Go@P)3{dOBTI^`qG)r|WsP_`4NddT?505L*dG`A zqMKjZ(Jmam_~IM(v=&A;guiPYw_??ZnRs8(*8{$B?;;YHoLn4zE*SX=`oT8eBPEmc zO$M+@LG*PzX35!U@@hf2qOYIS<T(Odky<K5J$;1z+87sj{X6;Li?e-OSq>}36|Y90 z54xx46>x9r^Z7TGe|ZsX%2$V{6Gf-kSJdoVo0T0GZid=^<HhcczO|lg1{Dis7j|(m zj1odP39Rt89A3=o`YtqLr-*<9PZ!!3*HBa3A0y#m|G?tbP1u~yT{0$=7xb-K{9`NP z4W9%zsw*vtYT7N1X62PM73R$>;wqabW9#S+5=SM`hx2OX%X~bKnpqIn4+!3ucMov+ zTTA<?TYRs02l+2!n{GDR`s1Y(;S=l~jINST+H8E+_!PhSKw03dGdHr33&FjITe@0) zqzI2}8?2`H!PU!MW}56na9iVGVqb%si}BjrBE#KhxQ7k*so}mh++2LfJ#po+78?@^ zC!4zgCiV9L!#!>|ZcNE+-(!6M6Qj#x?S<)Jk%vbURq!G(Ba@ae=Mo!zasM;i^Ppa# zhp2+ub5>s&Dl09SUL-Y|2c&0UR#km%b@^hus^qviOKgnJ=5-~M$0}^?Mx}>E#W=CF z(H*fKN$X^dle$WkaBJK?Xf*1oe0Eh`eQZ-`RkOHlv~I@NEDpA$o#nb;^gL=lyM((T z?MT;R>rq#>1c^&&bN?CEZm8o?g^FE|%Nc<?jpA;Fo9*T2&ESPRt@t$^a`WW=2ktG< z0~p{^T$c-XkDFRsiJuptsgtS373MI#aY0ah4y@G^+hwmi>`B&ZEpZ<TOMKjyB$9MF zQglY@K6_&*(YiA2M(AIwT^Z>6xZYZj)=PrK9nSPoUrNihwqPaEaZ(d}SKJ)#rg|F^ z^MZ!?WwM%+JbEs;2ZW#DX1mU7@~E}t)s>-8rG^}LsibSjxiA!?tOwYW#NBXFQaeb1 zE9PTCDc)u_IYe%sAa8;-fgk01uxqe&JGQZ)zBn$Y0Nixp|0XfLLBud|EJoXOAZIe% zd2mAIbX|!Kpciod9*^Dy0dn-%iYjzvR+LvuJn)tGL8|Ar!i!;zukT}yl93drDUurc zKgG@}#O)b5>A1@t)A;j#XpHyaq!JtE=aG5@bOW`SxXTUH*lx52W_|%vT+SDe1D5Ze z$pQTjOb)a-6XF=vsHEFbEwyl}xohNcVZgy}&kr1i^BSAqnXWxsp91s1e+FdF*e)Pb z$XCE(;158mt?k;YTAB{L9oHGa$L;$}F&%Ne7nlQNRCfV(0(J#<2X+UZ0_+Kl0(${j zhV}tcJ@W&pob>~CK&%b~awDumfmFc;0S5zz0P}%I0mlJ{11ABG1+oEY6tEFE26!d# zIN%?F1wg7}<AGd^x)}HZ@Fd`;z{$Yxfm47T5Yy9uy@1n!1AwOhhXPLp4hNnNJPvpU zumpGxkegO9UYH5g0Gokzz^8%rz)ye|0GS6a1X5k^g=bcEohGj}({QtFlh?Y$aF-hH zI>X&)I99+^-g?7rHrzJDy=6Fl*Xr+o47bN{9O0w#+S?{<fn_+pRdt(hxMK}B(Qy1u z)Lx_EmK*La!`*ARO@@2MaQ`ygJBGu;z;^i3@aEJHEYfRpT*gj0Hs#ZlX`ODkO2btd z4plqb9#fFI{k`FCGu-ord)aVb8*aDZR^vUZzg$#Y<;lw6+-JE5+cyjHcb7DEM1-UB zB$PL_q^X^l(cX#6LBZ%tM1N4Nh;|aRyHWU!{Xg$Uu^U}cQ<xFNa^|Nuor<<vo5c0l z{H?*2!3><)ID6pq<3v{@)<7@Gn-K{Pa^V{H+c!;cad~fS7#zaZ!RVVQ+ZaUE0-IK= zG*nU?xyjhnRig|#T!H}BiKWSfUB4d7kE?7k9ShTGcpq%Cak_u_mArw|BTLLZET#|f z|8Fr3hr6v}8f#32FlnQ52~2DN^H|ehIzuF%2NS=PSoi5>T#ZiBi57rk1Lzq*S$`a0 z>26^0qlu~(RB4C%3Hj1IJimNS@_33vrPN~c@}VMQoC}9&3SWw@<+RjFX^8^EZu+@N zRH*>OVl0n6W{Fx5%Uwxr*kWZE>~xLmQ)fSKR##tE_zyk&aWuQbK)ZXSr@MQnPjz=l z@08WxP42--?en2`95^su!rj~T7QRyU(evyPC!Y=R?#5#>&qGIlMn+q0+H}zk<uD36 z>&@QCk>P@E-iH8L{uYQ2DSv20Vvm0*ZZLk)sx9%$?psC_<1g0Iji61*k*!A8#R=kj z^y8XZ5SwgxJk(Abw;u+weC0LY4X>FKKMG`uTMv92_;(<qd;{=v;FCb+zfS?vflmW7 zft!F#SzCZie_Mgn=3fOK27C^94Ddx@Dex5_(--fvk&f3acbI!?xkHndJIb-#QLfh5 z3mNWrhP%mdj~edph8qN_DsQlD@>=Z6Rc^cCm>(i%sLu1BdRpL=z^P~$iF}4S8g}Y? zvpAX_h+dEz{UR7e)ooEm<fDv+EVLbXLg|G~^Ia|Ni}F8T{&_>r=4E+dcnp~qTNWBJ zZ35TW9sLh^D}Y7IKM(m}IdfE%zX8rGT`lgS{12J2=!OQ7i?XeTLjuvsxx1S)LhT== zw3c>}_uQ>$`JRx4t<zVI&xVlNVC146mT%dgkj=w(Z#LVr?K|>a_66;w>Aj^}<U0?{ zOo%Ps{0))s(tN+$(7K^0IyoEN-4IqBeH|?^1vp3IM4tJ=W(>hV&S4=d_1pQp=6o#^ z=q&m?okiYrMK?vZrxh*#uqk(i`1L3?UDU7hw<ZZheRL4Lapb`aZ{RX?W?<c#OI`YX z2X;^B;cBRa@4?#cc%Da>h0(!|7NzS)<7(YNG!)`$<V-Y_LI8|IheBVr!@EQ6`mOKn z+@hto%JZU2Uml_*GqCQ8zuI>-1i~{IsBde;<CSHHy5iMzf+;P=M?U@%gx}n9#ov0D zuQL!?+B<up5wvI1E({d#EziTND~XQJ2v$tX=4*Ec-7g21zr463URQSO)}ZhHXG)G} zE?GGqCDF8@402kiH-a2X3&G{BA@AnPm|po(D8w6iJP*%{_53;@sArFw=MT+@d!k_U zMdx{fE60xvMt20YU@D1jEXLbg{$WFVo3UT-Yr)OqM^Yf%MRy6ge0Rg4`5RjDgVB1F z{qu$fqUU6z)3Zx3`cEU={cU7pYs2SpUaw<HEs1I}FKI#{SR6gGpg1}&SRDNTO%3M+ z&MrF#f#_uW@3eC~Yp(S@Jj)iH_i%b-Kk|>n)EmO7xOl8t_*d>im_C%dTVVP?OmD*U ziI_e%cfW#Zt#DM-m^FB;ZunA|U3j>=f{df^SQBA-LO3ey%p5(|Mws3g6O}D0tRCy% zF!g{WkM#vi2Z`xFFm)DF2Hw=$V($o;o)**bFl`aj0+?8V@>mz({~h6$!c-yLrH11- z%ffsh49UecSK;i2d&G89tl}cIxSn5LwLpqq9cWQrH>Y7fs-jXtv!p|jgrmmoaR;T6 z%Sx>tz2&+XCHJxLg6$=3mzON(2Z@sk_wnvDshzUyif>#v6?S@xojUi4?sn1~z+4=Y zv#S<Vme)yrdOj?T5wa9w+}7c4w}kv3EFnxkw1oULSQXYPb06()FY>hNY&S1(uXAJ} zc5m5S_lId6t#8vxQ7Af1209jO*fHlqouTb&h(rd1BS(CHEe+kv#&$(bHMdcz6|0Q) z0b+Hw`{A@P)}FKyd1`$k-71w00b$sgBKF2gJA{VNX(eKl0$bgh#fH<><dQ9h`K7ac zLTmZhwp88)OVBfs#5nelL1vQ=I$m(xf(M;sMKP#|Z6aMrS={VYIuXS!>pf*+SNEu6 z=cBs44x`FXu_Ac8PPe7F6<1WfSgT;a7{kk^i#O$ZjD78-jsbD+w63zgp;}wC_zt*t z630?fKzEdjnw*BV@qkobdx-5r#CC~Ed_$oWIISbv;6e4qFLt|&-CQHN?>-}e!S5|@ zdZh%vTbz2wVdw5ku1!zR^0uQQcMcRezVsmY2XL~<khl)#!#E$e%^v_ua8AZK3FkDN zyKr9L2UT^PN8$|P<Z$;7ar$BANrjLqUmFJ$LZ8(xNAF}~lYpZ~Kmpd#JUaHreA2No z4@2b@sT<}Gei+B&%(MB6P~GSAECn(HxERPRq!HL3xD3c)Ps@P?z)OL1ftLX<21bD^ zfmZ;p0Imjdu)x*82Z7fDSw*=4$UO2Epda`LU_ap9z`4M+z@@--Kvu#Z1wISh0DK<! zB=9xhM&P@^t-w!#&jP;%z5@In_y&-b?tcR_fbRf11K$O*xn?_%4QL+$`vX4#9tqq5 zJQ}zYI1;!EI3D;F@Fd{3z|(-=0r}y559CMm18^4bN8lV_E080H@co6^jGYE#_1z6* z<-I)+J+M{>AbMD>Y#=|r9zZr{_X6@WI|Rtjt1qwx*dNH<$OZzl@E#8XW&;lg<^qQU z`Mu-=nXZokvT=SS@F?IYAiuWbfa8G211ADc0L}&8j&QSid^eEUDa%(?!)el?zsk+A z?|NnT3*{~{+-1gX)Np?^+@B5ioZ((F9GeGK-fqM7f$z%owM|~>ZcuK5;n?w@T*z=Y z8SYlYZ8RJ!zI5TWJ~G@+!!b>%yzdOx1@W(3ciZH(n1+-))NoS_H_dQND{8O8aLWz1 z(r`=@YVQWa-Dx;B81k;y+GMzA497-ab^9;FePg)2hV$S(t3B!_Dv$Z6a!fVKu~|{M z5r&&?xEY3<WjLlJb?b$m!s=b7)yXz_t+6nvyaL;V5p}3xp%DhnPC;}``2(k-mNm3E zy0a*{D;WKn1MFCj=?Y1a#ThQ&a;Ws!q3&hhvJYsm+gMOlD+orP7hTn9hq{;d(V8>2 z1pSYwgA6K)Zo=hED8#t(8@)BU4Glsy;uM{pCppbIFrN@-_KPyhmK=Cgofl+#5E_M+ zpd~2s)X=~=8*RUzj}8)3^tqONo7!emP5^PMhhtk1n)O}kD8uHB%HGlxuba0li@(}g zk4i=UhMm=b0z7Or;@*Rz-?I3Xd8{S)|6EKf@PD6}uEGDG#Iy$gj3SRTAl)OTSMblg z8yYSCm1C!x+WW%X-D9{`!)4$NsS6)W{Ng>L32S3he{eMtzCkc4Hw>ma;n*yY*eJzR zn>?nU-+EWbCAMb~B}ZIGovLx6nleuLLZN<q&c55Fs2ButsIT@FF#}v{px01i(s=+B zQMRDmo*zVwNe}IeqjG{W8^<8mEl^&Zp;|6BR>`CzgkmJsNh&%l-t^GEEVjz@65<Hg zeU?kKCH615EX*vKjd=&`5Tkz5Lo5w(T?^}vp)c<_Xra3iND4jK2<;({G8y_2-#Z%g zkvp6wJxEkSU84MPyOdd#u-NvP>Y1=e1y@616kNypP~6r-hg8qS1&2l*%sRd`yH*0g z8pL$5^{jOcbW+AY1Av~Xy1JS=u|q}UW#RJhI9{7e4ETvqu&CoqL<FbfHNOSy06YcC z(HNW=FcW!AvxDR&z%E<WoRi8_Eb!v7^9N;$t!o9ij&EJ#sOca$olg-<1--$Sg69)W zaV5XyF1R}bcNl+DT=rY+4sxb(LKWP83)I;dg=*WxHgz_ZfNXqo4yJWKE|?OYwaE)m zV)uo45pV?XLf~=0B|yG_rNFa+jleMQQsB+N6+nKWD}fIJ9|CRxMuE=(uK~UeydKDU z?P}n5;FUl$v&emhkM~(V-vazE@Kzuj1lIuD1MdX-fqw)J0saMe0`Nf~HH*)1s%Alx zY8J{-vrw+y*js40n+$iW;h2}H+xrdors3W;+)l$WM^ryLAx!F)^>pPJUgg-duH5m4 z<1h#1<{6Hi`^w#DxLXXzkzOi~dWYKkz;K@!Zja&qYdDt8>X!PRy0trLoFbD=k~52= zUj@*r6aAM{Sn?%nVYwP66qcdi?0~`IB$riWqU|}n1id%RPH~yR`Bpa+z-N?-99|_e zuL@+K75_^4Hv^MtC{J#~d_A4wVx*MY(k+Cdyg+<n%h4NRif(K<IKI$o$xgURgU={a zYgwi);&_%YrAD5bS+;Q$Ol*_&$iP^t4Ib+baN4NCtgZ#8N9K>smSW`ZxYlB16HHaY zZ8ID+4rxHS8%0a<z<Nr`#mNGYd5#`!6)p9lSyeR$C|i>EJ$*(-5HPdE{1X;UPS-*o z@n@}dg*{FqR?PH~Jf00M3=&#(4p77}V?9W0ZWNcXBIlsg;)TTrOE6Z*F}PhE#EO&d zzpUtBlK2Hh2U86PfG{6L@gHj)VD#T7q>fo(9o~6%Ha2lKJ0_Cb18+Fw#E<KPP*}9% z4ZJkgs1L>&pZU+^z0||b{A+P1KJ({bhDG4`sxUQ%uZsD87!<?XcD}y?cT)0w#)>*g z%J=#FN%=m<OZY+a31b5*On*)ox159N)Q__xPK`kf;%9b?>j}VoU=TPGcp|U}I1LyC zo&~%ccsB5_z;l2P0nY{g4LBRP5jYRXDp?JXFQ67U7|4uMvu&EZ)-1!#wM||LliFi6 zs=cd?z26y*;ZS>jGTbAETW`4c4EK@YzB1gmhGU+f^4RmF{<3jFxq*h`2d3N<!(C`N zHb1D_I}CTX;T|&FBZgyzUFB`CO*%y=edU$^h9xrv;RS>=dCFcEI3Afe*~p}a<T)I1 z#w|_pdDLUG=CbO_3or@6X>v{6u{qXAn<d#2lZDGt7yQt>IFg~JQXMjvi3UurVLHqJ zo4AFtGkIN8v&uDTlj+Pk_&k1`%x9Ticr5W)VItOS2=g<&1jy%&0BPrWoSLR+@>)~? zl$&Rpyw+ugiyH1j!|gB}>WLx5`;Pc{ry4UpX%ba@ynnO*c;{5QpBwki05q2sbM*`2 zA30Ln@lS=6FHPe=Ci`c<gUjr9@LT&GG}-Uqa{C=HZR$Iq$!js@m8-E$UKCIc$FEuK z?K0dqhT}Vc?r>IKhRl(ZedQzHXN0oi3;mVrx8ohL*ta)LXS3sEDXsg$^e)cW=!An| zwXHQDe6V#4&OHZugQ2-Kv-a`nu*Q-L8EBM{GBEZj<=WRSnV829$|<w>dPQX7yUh^? zJs^rz7ml9P`!NB|l<r|Dq4*v8#a_yvoeqZLM&ftKDh59{Cml#2BoRoje`%Z~#)}_k zdz^(hc|2jKf@UD&j@Nwl&A^_(Ex-Z5XMjflw*mQuzKl~-2Tj<f+i=yk$!jsMS9@%7 zP<ty3x5{vA6i|DAHr%6z`@7+`8tys6jljE7w<B$n=CmCnE2-<aR$loTz+|{@z~Q*0 z58ufNJLBHB`%gBgs9}wOIg9s^aAFAsZ^c$-T$XW^m^8ZVFWcScXU{rf?6Wtb`NF?O z_zQ442cOH2lNsy?oII|=>myzZB!4528Q)DnKL5=?zTOvc>g%ORXDTYUz`pCXnvA_G z4fmPhb{UQz|4GjBAd&BVOZ&us^^Y;tt-Sg}yd~)OSp5U}!f$dCY_RZ&x6u{XLCF`W z+G@UVEKDZ}H`Z_-n5Y%7skkWVrJoGmi<7u}|1Vt^2P#9WO??~h-O<@QLJ$j;zQ`2# zqGM@6d$mr4&R!~ZIAm58U6&Ovo85IzT4ca_B7kFXIzy6}L;TuYf)iw8xkS9LnpH?% z5tiWTALGT3laIx$g~uI89K=5W8F#$q{XYYlc<u)>Dlzv!x`-YH9)|13fJXrz0x}`~ z4OjqN3oHWC-bp~(W8!-WrzSp{yw-ffoo}1GR-@sT8}3TOU28aMk1CJaqsn8Rp&auJ z<)k(FdR)rz9x0`EH*%tY2g7;-(Y>K|k?#va8E9Z$UJqNCs<b(>xBbE?c0!G=x&-2p zDxYb6&!(J4;!TlD)6gQ-a)cVPTl%TN-_lbJ1ufZX2)DE^Sh1eAgOT+?00!-Rga63- z-nhWXL(W!0i}=Wf^u|vPLF;a0eGlH?<xy<x-Mx7`CY(ps7tn1(*Q9``oBZ7jdtSB- z7xEQ-1xNl+TI(iYf#9;%#klmXjjn<e-`WVfAbj_4iALyG<U0&f*}B9VY~Ja{u#_z= zS^N)1n%fH#Szk)8gH2VghR(t0Yfc;lS4Mav@)HJ4BK%8xBaky_GuakN*7=7z5g`rh z$QL-glHa|K0(y2ejr%*s;HJ(B83z+fbT@_uLfe)+;#8Q}9PP1Qhl$-@9?3`8^y884 z32KN)j<{CSoiG)Ny?bGLNA5lV6Kf7`>tXz}=IplE9l+LOxAi#wCyQwV{#mbZTTkJi z8G{=$6&%yE#^mHz>>L`AlwZ9FTg)7Y>@L>B)Cy214OQ0dCwoHPf#V_9#jf<E>`9vx zm_6MF*=_1Hi8<3BT_;#U>u;#waHc{R<ad9gJ6sQh=-Z$YZN|x32{R69+CbQJ%1aM0 zew@f8T#fLOIc2O(LK{dpE5!*4OVR#fAC0GF^;H+@I8w%|woII0GE;2Ciy0mo5%nUt zI~=x%<4a6~KqDd|jFVmMJe{s}zt~IpLpj{h%F2o36MNe8hvQM5u6GMv@5Azwi4+^d zl5KEYN4$(tN!KIsjJm$T&rtnnwE*E|+)G=9#J#B%1mzv;^Dr&>VH}8atj)jU);#__ zAk*7Nz(awb0-1+@24r6S74Qt;x4;VEcfe}k55NXsD{v_=4IdF}YVClR0}leS(YZhH zeqbJu$p^!i!cPDX1wI8l9QZ2mDBuUcVL&$4Vne$y-{~>H?|`F#t-#Shq#Jf6N@MeJ zzz(=R0m!eq0GJId0u}*-z-ho@U?s2w$R^v#z{S8Rz}3KMz~2F90B;AL27JK2W?8ij zr<PSTd1VH?ax?9_UaQtNWy(uYdtt*ZGxlyX+?|G_9<1{IZn#ej*J8N;8ji7{eq<t? z>Xvz(azhNqhHT}g8*YZ-*i_A2Gt=Tz)8w`Oi2qXI{%o7P)?+X+Z_BivuuWcT8%+E{ zGp!eFla8cizL?21#UzLHTA#zjTr<=9$~JkepI~C1iZRv51!;l;1QT=3Op60HXhMAh zCVe&zs?g_nl3BK@d>q}E+^~Y&+Z<o*D+?`~TiH-oRUfLVXiM2kRP5X`PmJ1WPm|dh z=Vfiy2h~Y7oWyiMW?Ks@tLDswewmmbs%_?(-QmG7=t@p*n&2STMyn3|aKOb`5*$?2 z)I&boM+f1y(}PE|9<E<i9qE%$9Z7k3s+|nJW=8Q3+6#C5xWh0y*_3%GF51G7CEU~p zh*MW%VP}D=SsBs-o<omve5y3f0rFFQ7N>ryG-;!fa`WuFUh76<?-s*tF&u5HTV_4# z_D91}tyGR`rP|wNxNi&>mrOZeDY<46pG?308Oany-lEEVHD&N)(c}MeVqH7s7beyO z2mhZYR)%q(i8bM7Tw-Ol{6I;y#!jjYc2a!~ZZxUVq%|Pr&d0TKYiv`d^#{YTja2Qu zY&ez&%CR$6-Hx_R=&Uy!6R6tTYdBWjJLYddtta^6$}895>)Pn#up1#ZKS@b-YOkye ze%?mXt!}8F+lG#sn5*jCRaG4qpqE55MMpHX;QcgL@3Y+`vAJ618l{LeW9Ohpew=*H z!8mzb0%eA{9M}%H0?22?v`NWX7#I4wX!2TT;$OKk+vK$_GTg<6d&6-5HXNfI&DG2} zHac-lMW`?-uCu`L$i%rfHLgRIi~g_o75vP|kM$Ms(}<6IK9e73eB8fme;Tg=8TW4h z`OI(HpUNvRYuwYMtH&uvwM)5GwkcB<3{q}~;XX6=?706SKJK^UZg4+w|J~1s`&jGz zf%|IyU-TFJocHjy{T{a4@8JXcJ$wipj5uN%)%QS?D!s~u?7LoByHC064fl<0%EX=& zDn%P`e@1r!bF81)UC<v^lM7llhx>36fB0E%@qd1w0aHRLPUmQ=%OJCz=7ybsj6YuI z0@2|vT?U<j18|)SJObDi$P~h+7EK{EX`!YZ3pM3_W9&5=uE}s$8tyNKd(d!C7!Dei zEsq7F`th>isGTXtO0W8BfB9B?3HLT!Ox(|x|NYNMGp2$5z#skrI}G;QPrJ{&cRw8l zc)p+W<?p~34y#rRkU8)dK<2<-+F$-_Fzb7z$!pc%U%7hQ<dxNXmAlSx{PLCKm#=R5 z9uC-7K>cL@eFZTaT_O6H^c8S)z==sO{ba~+`U?L0GhTXp^Lpxg|DVxez=RXV=^TtB zKhBOgLpXWtwiC`CAmfkMy#GD0Gw=r>qw_~#e_%Q?3icPY2Ob5qfFl5Dzycs9g-L$_ z?VW^c+GED@Pn?<nY4TcihP%Kv>00(`@3)4#&e&tMPu)IlxDAG5hM{hmVW>SO)b_!Z zR}ON=>1k{#P9B}i2j-E5^T*W0<19B`9%`uP`opQ|B~d%>C^h@f4`J;}-Etri9MT$_ zOZ4dYtCVEcyV*8D@l#w0;@i}f`D}ii@%maXycAGYZy<AvLx6mCzx}e_gjrt}O<t=K z|H@U_Ca)|nrQB-6?K1Y5Z>U?ogq+5e)$-Wc=(@R*%~M8g{tgzC3;pikcyz=0)4pDZ zESD~81#zn2&v`A~5f8`byc_pgQe`B*q3*xx4dvNyh(0-QDAlL9Mv?+PtbOp={W$qr z_+9ZBXuqz*?AJ9I$U^-{AmeBVkl)z9aO!KLNege~Sa>UUtFd>7;j-~U)LyP_@>+$_ ztz(|4Kd15gFs#*`ikCR0@%xKg(P7i62)#*xNOM7;d1rgfmap0h7L(SuI$c@KJADCN zW6!sCSq|=DNxM}i5(Aj;-n=8r&E;P=4&Sixf!2-3fYv^sVwgC6#V!54{l&yY`xVZ< z2-mSm>s-tQ&tncwu8yRK^tLoC!0@a2n7de2TfG?VXgcGN1N`UL)-2$(S-xjxZ+f_4 zM^{sYuQ)0({(xOBjys(SN;_TD0siM=Chs6rbR9c&m1eCc3XgS|%-vri!q6=a63T$U z2AmwF=mgQJ4J)rf;IQ-_#%`RKajA))qjNBh{5Y9fmf_@ab~=W91F`>(q@o2tK2`&; z7jPkv(YXlNAGjFE-h~T+%=v!<9108r%Yn;*=K_}jXW7@xFsg9Pcf<QkojvgmHFeVD zwdhtk+E$L~R5?Dia@QK}2E#pJII59qk0pS*WeK2MY&g^IM!u0WbQEJiQ)BZYT(EYD zZqTb=gxPe0Mz3b4ZrmmNY4ck_1XoIbueyp}&A!q&YuYJluTm4edIw@y-OxRpiuIM! zp{f#Au2(x|Bo#BdFL3J8;$MnsEdHtDdSrHnnko#(GE}+ijLG?8HiJq2V(tUSGX6H4 zT(esb`C_yju@@rWM*+tUhFo!Tm3%+3cFSC=AI9>w$2~7n&a)8B*|EvzuNgUIinLlg zv;;nfA14)DrZ^tAxmAC;6UaRAE?__4AA!Sw_W}!me+JF~{sqX?c|Y(1;9B5~z(;_L zpC^D!wH%YGsg@?MRc1K82jyxEM`c<$HWsPd?S?~9=v!6+F=qV2(A|x*aE<W`-y>!E zmQBQk?~%quNHe1vm*9VC!st7!AmLlq0e1FG%wRQ$qYVl|z4k;XghYcc*z~)5V0Kbw z{^z6azXsR7%c(R4qrY22!1#n<{_fS$tZvJ<E-eT~3%g~PL`%92DuD?LCvoEzn1*7Z zC?<Pnu@BodmL3_~t<`t!hRB8=S9-d&Oj$I5?y^y01f$d8-mIl0o^AGY!=kXQErTN8 zwKnt@n^+5UA2zY1W@{^!Y~3_+j0Stv3=kZT5Dcu#kSD-`BhFWbhmS=0=y85>wI)pJ zOB#wW5>Ai7C+UIehiSw(JyHcqhhvYm9@lAN`V=PiQ0ih8mYA5#SuT34bMU`g+}6UB zFY+2-dPg|t%bU%6NwpJ>Q)V7Z<b-iO;=a7f1#R^XIMoop*gwNHF=b$Y_QrEyfGSwJ zJQG)1h^_daq;~d^!jAoX_(pM@?cxf7s`$jjaGHKd?pMh@epAeo`LqM^vGZjd0|DLf z!FR=(i?a*P_waO`fli-2ONurQRE1-G@|+Goe7JO=7r<^}2RiG<L9l$L<Rz1&YP=&( zJmc4o>w|Fe3*>RG%L)_GgDmA7%7HL@(-C2^+tz$w0N3XOsimN32s2lKtT4ali-9at zmjQnVTmk$C@Cx8-!0Ui)ptv4LmG@>K^YL4OKLGCl{sg=e=tlU^Lo1W%?*nplJLMk- zd>F{y?sdR3fa`$>yR{XFFk)*~&5^c1mgYz_X+yShWw=(3Ig)aG0_83?T*Pp<8}2T{ zJ!rVKhU1(ZmG_L{-Z$LGh8ux!PQaOo4QJKlwU)r7Zo{@o8xN0@;fB#hKQprEo1+>> zz);^W@F)N~_+a6j9WXE_+Z^FoeICll5X3`q`7KV5Y+CWPn4C|r8CORqeS+h`vG5~) z(bgw8dp|uN#RxgSUyOA~D*D(H!hwV?sEj=LCF%Y$nfMCcfJeW&*wdDuporB!hTV@d z9p_k_JT6B;MZ6No=erh2HST&KTlQ`QGSj;W$O7#toSJ-S@>*vbuG}_h#X;>+Aya$5 zG4>h__lDv4v8g>N<hWklG!D?iyfD^etYH3AEJzBtmiSzhb|omeX5y{O3dizRv20dh zbO)xnUCxf;AeI7OLwC+3@lalE35u;5C75VlDtk{HvW$X}Qd&!*dkRO%_&eXFYmibR z>zS0Ww$zY@LE-hBsE;+c>_XBbDayBusZ3Lo`rupp&@xa3%Xa&geFg`+Bg{~-*T%cJ zzz91^iR?}HUG@U5<3|$ij?lCAzGeJcoU&=>cW`XqY3Qg!0NeQ@SI1lVC#*!pabEke zp3sHH?ca@CcS8qt>#jf3+`c8|&OJ6QG|t>uZrr&XcWL$g&25%T8YEXkN5ir*j>o$U z&tMNHER06;aJ2%n1MQK8(H9Fj2j6%9ODjt9M&rh)71Q&^VAqc)!{2Ard5fEOxF?}z z*OJBm;>d>fWP;I%YSOQj;KgGF_eB_2sB1zYl0&2HI31f_Kg5pf&;W?sz;)xHe!MO( zC$c1OkQEo&+Yy10^-|P@I&v*X*i>x*i+tye86Ej8pJVw>SQ{O=Ld<W&ygMSJL_>YT z>oNApDrm?J+Iqft*7~G)7RFlM?uKrW^;Ep9C5iGAJj1iGO(}@Q2f854k~k2M=+#UL ztuJD!a68==M>b^?j?tufNhP!!t~%fkv_4fd<|E�EiOkHdv6-PVKm;ErAs*Rfq4S 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�!a9|5vE6F*Tg3e%A1nt3RC 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℘1!dyrV7Sr33 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 b8%aClp%-!LLOdK^9v)a0Y_oUQzd!r|qjExQ diff --git a/lib/windows/ogg.lib b/lib/windows/ogg.lib deleted file mode 100644 index 8ff74e75eee7d48ab81b9eab15feb308bb0a62c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42590 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 diff --git a/lib/windows/steam_api.lib b/lib/windows/steam_api.lib deleted file mode 100644 index 13dcbb4b21ca5ec5687a304d4edd0f26847042c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273092 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 Hk=FkY&ECB8 diff --git a/lib/windows/steam_api64.dll b/lib/windows/steam_api64.dll index bf392b1d1c36540d29550914971314fa863d6087..6594c50edfbfce685170ca4bdb6e56c058778c7f 100644 GIT binary patch literal 301928 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�_b&WbFU|vidgwex7wBOw%1z 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 literal 239904 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 diff --git a/lib/windows/steam_api64.lib b/lib/windows/steam_api64.lib new file mode 100644 index 0000000000000000000000000000000000000000..b8aaa8778f6c368379f8b6ff254e92e708a2a942 GIT binary patch literal 371272 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 MT&sV*=EE2LKh2y3GXMYp literal 0 HcmV?d00001 diff --git a/lib/windows/vorbis.lib b/lib/windows/vorbis.lib deleted file mode 100644 index 35f006643792c8f6b0dd9903c6db668652bd457f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1463396 zcmdqJ1wfQt*DgF*AfbSwh=qj;s6)rxdtD$PDhLP`iV_omq;!wn-TBzv-QC^Y-QE4~ z8HNFj_x;}Uedqk=|L=Jgd+%$n-MQA<KJ|pi6lo0Ux3Dbz**QAe**Q7bJ2;od#hRd# zv#VX9H$q<|5?vRGnk_1%Jys&o|7J2enk@Q_UaS)t{X&&3I*I<5DdUBx^8WxCi|dQD z<UUYj{C_c-EPf^WuaIe_OQKSg;UO~pceJaP$n;Nie}%~Oe~7A#`6l{LsA}dMQPnkV z|J!6%uBzx?lI)7e?7u<POnZucBX9fgjHHyP*wpaI<mCA5@XXjmSyHB`2rLYSN6XVh z;o&Lr$aoJ2xl5$XMPct286}NWIJ#<ag_GFX-ccsASJ*|mDWt`?i$dY%VqY9~6|27D zuv{H3`cndz7GWy4BrYxfWW~6mB)gX1u@qXIkE7VhwPXQB`8bN5OQk4*D@x{7jJy5? zFU-A&FG}&}`bow1r8=O9Un+JgS)8^#Qn9mJ$qE+pD_ou3ipvmbhE<*@O_IsOrD^fM zAhC(DX@7viGon&{fm7va>B-@L;4h3wh)j%(mdpN_s6=MTk<vJMT6k1^k~A(gHb-8> zpPHSR79&rMP5liBkBN*|q(r9u&Z><GPyRhsS_&^IDKS2qcTHA8f=A(e6N~@miexDY zUN4>~GcrY17?Q@zBU1{!ilmfcT-^ypD?!uQnqv4gFZKNz{-riWV^~zHqOd4DDk&*0 zJRveUEjw9m7v3v9GBGV9GCoxkk)EhVR2>+uh);@4bFdFrb!~AdJ+UyH5E&;A&rC{@ zrHYa=!eir;qKo=UT|!|KHM67;;S(iZo>-cTW2!t#fvR2zm&sKV>vz0x!WH4EX_0BM zQg!w+d1_ipl4?|9QzOG8Ga_T-BctNwJR?P9dc1an;S2NE39cGNP5;>a%@w7{Q^nzm z6uF$wR7FyWU_9^7!eDG-hCC%zUKl8b)!n5|uIW1Nw+olXN2aE#Sna}#rhqz7A`|;! zCi{|1_Ph$(l451)a&fpkD>*48Eh;@x7OyT}h1&fQwJ(jT201AuJV>OP63MZN(JC*m zh$;h>SF<bIyUFGJKW*4mW*6mR=b{ZqI@&3ut_p2f{_8I6;1KC%AL$@=;@352J1w8W z#nB~FZm0PZRg6cuslG_fa1`Su_tfIu)<Ge6wwF8F|IV*)v2${CDcW<3^C`Vu7U8Nb zvE+&=f!oQWT%GKHsgI-B&P66wI2WZU=C}Xj?&>J!eZaq>$YOqnKkm|wn)#^Zvn$=N zjt*jVhiKy+UEEYaQ8-FbnqO+?s_xdJc&T0CCZi2III0t9!_Ib62c97hs}_l)xO6pt z4Qts-FR{NYIY+y~?);m}ZwayC(aEXV>Sd=6l?Wt<M<ygEL}sZrib%fdGm^ulN$JUa z!53{{;fYBp36b&Yt&GP;$0tQa#uw$K4Xf9wDs^H~Y^ppVGL>(2Jd~tR@Z%>uGEo+u z5SyijRD~DrYAOa*sBpXHfwZJVP12%UjMPD{uyZQvM+b$2lh{$=P#kuax;i*%*OQ~z z(M_z7Y3IMAW)>FlM=45853wjgCM|KMs6&NSQ+tax6m_7~nZghKNLOiz^(S*KT70Ty zSX7>)ql3cU#f6tsxGDUy!4&NZQBpqLBJIRdH+x5W`{LHgBApcc5+}EFadUQbEA9n( zlvwJlaETO0Imu<NCGJ*HG8Z>H>F=weaJd!LD(d(2g|kw#Dm6|~HbrRBSrMNs<pUKS zpQ=67xmSfq(^E3EL*XEkMY%|23YnYCB}x{h9TEq*ogKeQMaf<5on_7?8l~Xpi*^T# zEY7ERhjErE99&D*LXnb`5H5>Mi!2Eyr^sco(like?&T3KwhQoS7wFf@KhOgWy#vtD z)6=6U%GsxtpQl%#pO;7B@meafWm}JyK>?n=ZN0rcy2K{Oz%ei-8cy-CQJvHmaX8t* z(E*N5rBZnXc(e-i^lKUD8T6M_ZNPUwJ14Q7*a<wXR~tlm6jh(!(BiZC6)QYO9x0Qj zB&BO_e$u3b1bHG~M>6dZUjhnGi_~5kir`ZBh9Xcshc$PJBCJ=sJSDrR2BkpNMv(Yx z6$+~sUZQT%DUpfke7{JGP0-#mRA>9|cSto_s$y!SWUaK<OidreYVSG4F|o43N)%OE zb%w_#C5H2R3qN>^X1SwS9?AdHu2DxvzLNM{=J6#iDw@eHE4r{~!=>3AG<ea$rDZR{ zrn*V0*#6{}U@JP~{^S<36&3JDSHo879{Y!YNPQ>a*B7;Hp$(P1;%GP&T*lCNV-wTl zDalFk{5~J9h5xc|DWWvpQt0q%70R9psruHT`4d@;%biPpML6GR-0bZXQNP|U_$mL# z{5f7~8!yhsNm24%qs3jM4vzc;FA7VG!^Jb<Ps5=qU7bwD=1{y5scZFXnCGt9MN2j2 z_r_(&`G{o5<CBuPyr&jm!b?J$!>|NXLS%~SFfD<ka<NAm^9vRetI#f1%}xHdtAC+1 zkWq3UDZ!c%&d=(iRaFw_YKP*Dr)0$MIsH|xP+#9Qdrt{*qeu+W#Hi)Y@W^;Be)8rO zsyqs@l-Oix2?<BLSE^%6Y)8cr=?aBhD<o^-lDmx-%uGotmR}3YE45D*LM4;R_?cIV zrFef*GyiepDj~}kv&Tm!m#BU*o-9rHBhJ^D_7EuM=CVdwWQun5Gzy}k9*pJEHeb+u z6xEf}j<E(W)sQF+sEAKbjZuwSi8-N(D%lZ5?7!$2in><xpKF^P>|Khq&1PKPyr`K- zWVJ^mN<L~NTKB?8)XAc<=tV|lQGKzoXrQ~X=+$Bq(WOeJB99DHQLSC3q93<RMJw)` zioT7hBASy~Rn&G(RZ-P)W}+)HGf_{|Y9f2@YAO}BsFLPaL8K?r=cFex;6FqDE2H*T z6qV<0MINfi-7@@VqQ>>OtFPuUQKKq;Lms0_uS%(kFQmf1svIhCOqGMmUq)0}%~e=x zWgcU|!-X-b*up#t^Qp{JsyHgEe=1H@-l|`D{wv2(m8<&cs!5l}7yVRRI-)B4r=v+z zn6mJ1Ii6beGuGr?nYXE;=2xDV`mcUw>Rc<S|MI@o{8S|s*2Pp*{8J%CJzeNlQMa+M zrDe2ns(x4Xe_772N?n%cR+j%%X;e8E{#4;AMfbP=Ph9Q(jT*(_SB=20lEuH%5d5dI z!+&}$|C=89SIxxlGKEGD{i_65c%&Dd#ayEMi$>#DN$+oZ>(UaS!(TNa{95)e_1k~D z%lu7)@@HAgq0|keScAavzubxbEID#bOkqc9{ucMw-!wFTzFYBpN?wVycOVsB;wvFT z{#!9jU8CaqXm#0z;+ggi_@8TxR2diL`<w8o$ybFJUDbZ!|BGhnZ+FYTYMfNrYQN(8 z{HL0zzui$wtA2{}|5bDGH@in^oltT5zubNQb32K;?Zx^2*X$<0Nn0AhMVrsR)wpRi zB}L=>iw3TQ^rqfd9E<Pp>hK?Q8in{Tn!DdLK$`OYkK27T<^DG`iR$+KQI;v1z5h<C z{iATn6RTwAV#!GSUlD$bS7p)aEOtxe_9xj`Ra+Haf~`1hVN*(mi`o8KeN`e2+pkjE zuVD?_uiMS9;bOLbBi#MJqTf{)s_Md$->+d!6N<XBuw#pdttk8pTM_%Ou7<5-fq(M< z&zZ?e*jKdnvcK3`N=nNA;{x`-RHpw66Mdls`L6`qB5}8*F`w(i|8G>!|EH!{_2B)Y zMAGP+{#(kaKdaUMQ>A{9*_DgX|9>=1YIFcvf&7<np_;aYrlE*2JnGL1l;4!o+5{!l z0$Q-NYUTgDBBF5NmDX^m9ygSFDWTSBmF7{I_f`6{|B|Ww4_5a7)2cRg6I3JcUo`m_ zsrpN3_DVqi@0t{TQ?3>668{%GkNF=pcBm|A|I&t~S*riW;-=v$RMq`%bt$22EqdFb zNl_x^Uu$QJ`2YR}=&w4@|Fy?Kg?r2&b*R4>e~LArC3l}<^nZ(XwK)6YS4^5d`o$Qf zK{e`F{T9DGz5RDDZyjCTG;eSt^s}5D!-DyC6qzayE6lHXQdCb-Nw}~yzF2;X(bo9) z7;f8-SET)p$3${Vs%lsHElPDz{sD}R<rcW?-y*n$|2Ir^ME?$IjO4#XaQpJ_Sn}_U zRJ}n+|D9E3Wc)3C;q~Ls@b8T)GT8jauR0<A*hlIG@f*8FS^gVdbXuw-^jj1?yw;4p zc9uA4fFfKh=Jqs8O9vM>CkHhap)VV#D?01(pyP@$B2itg<yL*oWhruL8n?}Bz82iI z)hP;TTzzBCCyz>xZWvM&)1jhB)Q$74RK5D<Unfo;BIA}Cz7A@T|B2^hP^l<X=&Jcr z)W&&j#4e>sl*##AMixSP-0=_vc{ERxXQeevNGxJJUPdGu#CbaKHmE)x6j_RbBAREF z&aW27V>CP}KGo+T5_>dHF3o4i@&24|w1&5=hL3ky3vZuRo*n%=__t~4UZ4N*YS*ED zX)w^=JHWG@Pe^^say;2<PD42PiF8c3Bl2<&<ELhFY&^F-hw;Y&g)30CJ{|1CI)!jk zzqkZka;=tF!tNr$gjZa2itDyTqBo%;t=leEnv#^7q)4-D65P}>FqzxfV{>>>mR{;Y zxp|9!syYqk<SO!2*GYw`zRHCTSDA}M8;vyqQSU#<8TukJN#hJUqD0Q^X<}N$%#8y4 zCAT)M7B2L(G~wJPCaPgnr4H0d<U<u`@`n4xg&gX?MfFg1dqWNGpeO3B@;Y)?RX->0 zs@idbGr9lLj^%v(RYN_RySzxvr)@{67tyMgcvMieM5b;@8$Nv<)G4CMs9M%mJMA5K zJa4s{mybnalA7O78*ifyhw!kCI(+~i6f!YY^Q#xP>UC_Ynkh(|D4ts|in=nsvpP~$ zVJCGCHPqo)EwdBv-6G~f-e4YAPtDtxn?QU_0(rQJI;{Gm!;LcDCat-zxRAucgytM{ zQSpdsY7-U@L1Drm9&4g%f|@TSHaaFvo+#t&o+hd~ZBfGwb$msAHTBdH`STtZi6YhY zEKF87KdN)oTg~sO?$zqNZmQ8y&AFmBiA1sLd{k3<t(v!%s2VS;CogNRI($(_SJYl- zu})QW9eU~%mseF}p>AVgnel~%s@fQ=PMFH0Jx$Dcp~uwWOFE53qeW$P@<qFJ%JIyK z+88faq(#Z2`87f{^l`l4Y&E}&j&Ug-RX3<Ok~qh3HHSr+;$|eP<En9-8zTAFPp2ri zRh(ZW`mXNP9qL6=xTyUL2c;8_?yBMt1(Z?G9kpNG@x`@Lb;n9|gujkzD1Pk*)rghM zJD@P{4m??uI$7H?s@b3!)WVjkhEugyi})h=_sdr`!Bk5oP)9WxOiWbsMzt&gbqbe7 zb&k1mOf~fbbxKTqZkROjP%(1~)KO1&6ZP~g1UmD{U}B=0b(+ngvwC;n8ytsjaVq*$ z>s$5J;B-#y<9iw34^(U3jl1=@%ed>oT@UUCaMzQ&s>#rjyQ+Th=58PE`fyh@gudKW z&9c_qUCmv8?(XDnJMO9`O(1vAa5tE{V%}Xr+|A~$D%_8|s`ybFe6j{F!|NHsan-6& z@kMCDIo$2Y!%FUU;;w2Xbm6XQKkLEMRuLJRjHt>3>Mw)$s<R`vnHrjmECt%xyQ<Og zrBHh(XEmByIKn&&RR&IW_98Q$!<bUMc4B)+H9WQyY%k{j{zJt*x)kgvc5_z4qe{W9 zc5e23MjM)pD+P;;M0zGm`6LeyPf*qLm!K(+Rqb?1(a~J6PP20kPvgr*&t#J}g=&eF z4%g76(cF<0$?06+PUMfz<JGx0;MuA6Se_F%ubWIQ%!zkh>5xeDjx%O);$1B=*6A&C z?QCOjHGEV;o8abk7UhUUjnw$q0U@8Z)EGWmydiwHK^)_QpQOgeEj<+WrFG?qiJiVS zwfXpvPr^}Zyuq=-+iQ<+zvo1FU#|+c6WfVI7uEP2pX>GO1TFIkb=lf4r|Vn~k?1YQ z>#GWv{`oS%uLVUHcBzUdIVFjUkqMTH*m!xWWs@vd=cbzYRLi*7wA3(uXNXOd#;42V z+}m8-+)njiu(>!aU7C^>rn;^tNt?&~tJ0EE3*-O0C8fpuJ)Z>a)g&V}H9a!kGBqt- z7Mo;g=g4cCA=S2k8xr`0;4kxdR)u#JJ?>Tz`J2?{Q+gNotLB-3XrIQXFM6TH-e@t^ z8ZG2=)cEv8gSk)jK*T^aT;tOhZPH@fwAdjnc1(*s(qhlF*e5OaO^em$Yq_wDdK#a; z$X$z(7Hg};0<@Syi}loEs=cBxzXB~bQ;W^jVr#Y7MlE(ji`~&;Z?xD4Emn!&p$f|| z)%f&9b+lN0E#|JpNQ<@AVgXt#N{cD9SU)W`NQ;frVw1GkUM+S|i`~~^kF^*-w>5Px zukq=NOthGp7IV~Mu39Wqi*?sxv05xai;dP|<F(jwEw);V1(h$VO9zclUwuHTq#y&4 zH$MhdK7CO~?lVwhp&FmQD31FK)mW0or!VTmeMV|*fX1gUn#6sod#{0Ln#QLuTETs) zyRw03jmD=h+RuG_<Kx(2jZa^6jr&x4t%2y4#-}fO%YC)g*hh^|pFi#qi4-C;Gs;+R zW1iK^XV6Xmb5|_qc{b<x|GM0w6>|7{Th%`r;=)#x=(V{h%iX_~f$-+oE+Orkgmr2& zmA&qMkA0e3o7O!HAm<r<Dd5^n+Pz{2dG^0S%lG`CE%M6vB&v(rkDKB1RSBBSX^mMX z9bi?t2bzykAbCOpRyd?$=AcZp+?0cTZ}Q+5U4VT)O1$2p#O3Eo%=xawr=LnJs+i?w zl4&3rG;Ft|Z7(K_51uac(0eRchty|nGdi=OcZV?D;Y(Tlsi#={%TH{cqbbRfo06wl zOY$-ZqZY22w14Li3X7afgOV3gxoaC}+n59Nu;2oTM?avut3QxYOj%^d86YaO3ap#d z#E=v9vB1k3c1k-GWV>RD4G=cU2g;d#nBTcQV%Bv+=-O`33yHwDu`;Yqjls|laX3&r z2?@`7ffQ+&Iw}J(30WvxJ_i<IxtNlbhfxvvFtI2=<D~^yRYQrkaY}g4SEBzhC35d8 zVe(Fif4(Yl^@kEyc-uvy-Y9RF<!ay0z&&HjZudJ!nZ)YkbjdKwCzAJy1_ETE!Y1V~ zK~jB%@G|9`5Hb9R(5!himh!wgo2G2TuHBTg+;V-{%r9e@@5wpLO1X|LuW*nVM_pkU z@q)eEtwWn<8B*_C)oDXP16q*Pg3^vksD4^&8j;kI;<iLlNc&`3CoZ5w>w)wwYy?$Y zF`kCjoKCX2b1B(tDP?|ML(Y4*Q1^fK(73@zC_{OMruM!<BZu6f%afi^nZ<8t*p@H! zRi*=J&+_n$uZYlCBcw%`phu7y9=g=PL$lg&e{6~Us~RFLt_jH877aGEfQ`2U5_UU7 zznMG40~suidBEg{7vgIAVq}B1cwyEKmEQ!S|Hfdvly^kg@14;nuPcOmVK8$H$B(#3 zd>AH0rSWn^^^Zoq?y(q9Cl2Qi#UnZ_5z{Uw;g&})EE}7GekW7$`ePb~8D`+6Q6_eO z%fzzFS&+`p#<YkWR5r{--lAO0b<TtD#ym8&$%oOnd~AG~kNchl2pw90<A)3IRiwm3 zu@V8HN*vEsV#8!57OqmlX`d1=&nnUFmJ;tDE8*~33FQYRBwv)+@lA;ie9S%gm~Y|q zg3}Mp_%Alha&aDL;AVATw_A@p%>Bvp>FyonPuyLXG?1LU8Y)?QXPCr#%?gQ8xAT%? zSAR;n)u=9fX)YG_H1iXtSB(*x_v$CyJ~B?&Ty4If(_y3VzRwZiz|0%Mv}JFFgJ;XJ z^S;LHi(M_YVoVbzS2(c|D_gSR@j-0&^d4*g5?Ip?dF<P>0nFmj2xe4sB1;_b4?AbI zke&IllD#+F%nk+ZVW$rtWn(kXvtgk(nM2ZJR%X*%7VGeX^-L~D7j9OhrO}mXimn;8 z+i5{*BQ0rtniXy8WlQx3*wcg+uC(Skky%S03R~(&b(#j#+bvxvIU<~z)KJipd-2qN zPbzt@$)U}cd(+XV{$%lP5XFudMp?~AQH6_R>FmIXG@VVQ+Fxf-m7TN6ZODA`4P8v1 zn=hyG`m3qolXYZtaucO*+D4`ecF~kc`)J4TL*zK%7_IDmif$L2qkQEha_oDJHVwQ* zn}^?{$KxK+r)ke<;=EUszWg0|ZTLiMc6=i@sR&aPWe^-&4nkZ7h~xE8AzmModKzL| zbR`5xjnTNfDe85s3NycIxIyOVEVe*c-C8(kPzUMn>!RhgdNAD80IOy-f?+{p{OH^i zG0knzSf?3kpK1=9X<|4;*`s<RM{K+6gmVA5;6jKSs+X5w`Dy{ZLkU^mfP$%>$aC;Q z_k-Rr?9>XGH+?Zw+6K;d+9IZ#KTJ-xLjx9wG4q4quNMqIc?kM$>wt$wosbgR85T3U z;L43qEHm$hq5fg$mD3&F=k!3pzHoTmih%ovNH|xJ!qr#?uc~r{nJO?qKN<(VMWfN< z7%Vy&i_ld);V~=@iimhzYLS4MpA&F+dm<w9l91t)jOve*(SA}dIC-St+}#wgzNzR} zGYy+orr`yp!}V}FmIh>?>q$<2nb@@_6LXxhU^Xuc;!4@jOUuTF^VtY=$idU$Ihb=N z2g4k5v9oV3Iv&r3qG}#0cF9AR$$98`p1YOv;od4AO>^==OY<@6az32P7r?K10q%7u zK+Ws|=uRuZjx7b~a;X5%-WFiA5nq>$l#oi4*cPZnev}fMQ<WIhPl?ZClxR3p35%tC zU9MMR?M@|f4k^*`6koF!l^A@T@6&gcIQEe9KILowr4p;(@c8#ijQ*%Z!e=Eu@HOtt z*SHHm({%VcpU%mYukUD1b2%O3bf42ZPTx5F<fPjBRU{Z@Ie#B$;9BMIZr4u_ncMjH z)7?@tp18f((!jmf=TLXcufyCUF0F8{KmNRX+3F(6>EP-T&wR1OY@(k;Z$^yd@u7Z_ zs_x?@S7y(b7>hPZ26s3rF`ju-l5z8$WY5s@LT^hG;j*~4uxx8n;p#4D!OO#2*y9!~ zI4+M6Ql};fU38SfjpRYXmKmc2Yu(90jpeh1<WY-->MPa=AM~~fZ)ffo-lv=tZuhw? zOh0y4&<}YbR5JT4w5nK!t)8#TwuT$A_AXVJ!nOu`Ky}&P#76A#RvYGPWzUW*cV&^m zU>~crV%cx}*_r1d>{a=0Y^!?|vm74F^u8ps?)|e^f3x1~^M`({?}I_C%DrK1=F3sc zqT+a#DW1$0%crxsi)OJdpXaeHofoq$dzUkRwuXi8+rS=l*~(6T*~v_o>|>J^hgnDQ z3FfMMmWiKUWG${;WA(4xW}ogoV6(qHWd`+Lvj)K**yT}QnNfm>V$I9a$HV1mMISvH z00Zh(wi3l0H>QXgRVXmE8d(R{phx0blxJR-u9vS*KR-33i?16~*H_k*|E?K1{18)$ zks~#$??PP!cY4%~(W%}ZRCcKsWn5`R7M0u5{nqX1;GiH{e>8;VRP9X4sIG+d-RZnx zB-zKxsLhdRG8D&A{M1AWtC&JZ^U`VgyDWO0oJT`nE6H(dAKIbpN8MTtpmLQ5(W=XX zDRjY5dY?9&3VcS=lj@_%{@EA`*fWltr%s?-sgtNx;1ud^JB{iZ%%Hwc{~_h^S!A$! z4%MAFk5=a`pe?dR)FNOBRdicM)My1AFkM9xb=J_r*K6s;o%JL;zma|%+DvP=Z>5~I z+o|o6om6AaZn{2oFO3|(pX!e~NF#?HrlSLo((!)BX?UNL^j&$H%#~;9Ou>1or@Tnt zl$WVXpR3fY-*rkJaFePJzD+fT-KF@E_o@8YhjewqW4brxDVhEAoD_3j($NL4NwV}U zEnoSb%+`IRxJ{pF-nOr_e%E)JxbG*`xhKNO`#R|IunaalDvLXh%i-da@)-NH0t}z& zqUAF^G<#MNN1p1V%2NZBdt!)5kBo5WK_!g2R~avF8{^sy6Lh$0iuM<);MAF_IC9(! z>`*n--%}mwTg_p=t_C_Tv%tl<HL+o8Ej$}t8|ee<pj~cVBqmwnLR38zbgU1VZv*so zZHRMC8lkhf70T;2#?^O?asGA_ygc3%4L4h(*IXN%9&QVd^k&!=)*SF^frCxN2r#n4 z*;jT5I%|);>m1N{f+KR$oUkd_8P{64;J$$?PCRhMgk5fMp5l%b$r5~SCBUo}!_Sut zYxfYu<AGi>52QJG!bPVgHXLt>my^A4E6N)KZG3R!jSn7dYK7_fzWDCZ8oFiMVAI|< zsMN15DtP)~=663_+~kjCDeX|pCID7<0&s9rAinzr;qZ?jG+xyn)gpp1u~G=;Z4CjU zJ0RMmBP_ObM5oA3sHNK(u}eFH0=i)G%Pz<o6^iT4y5hi*uCP~hLp@O##!U{xz!u%{ zbzgV9>CywSPkSILFC145B5;061cIz0;lDZ(hux!aa8DFkwUNU2gcL{G%W&$f3|%_N zAv-I_yC4NB9#>$lZ#4GqibkAk45qG#L2!dujGGvX2)&-zl+_b69`=NB$2e5k9ft)r z@i;m@9{s<?<8)L4)*VcM*d`I)BNFlMc_KX8CBb@W64vV`<91XsR&Ps&m02%%#rJ~# zo?ghUmV#-qDd@R11y2l8QMX$vDlSgNviIEeOhbcVY4~<F4U=l7<9%d0EEc9i?`b-A zH_JflqzuelnSmoOGH}>76SHG8(P4fj?%m8p#~N8!)IJM$26LHVXBLd#Wx=3HHa>RE z#>L^;SiU_Q`OmY_rdAHBw#~tvj2x_=lY`O6bCB^d2XU6UNN$~rp-H*eG9ee`x8@?@ zW-i{B$-}HhdFbVvhxnL0j2oPX#|!h2av%@ldwH<Z$wz4Id>nSoM_x!iQWNsAW?(*q znfa))k-I1IvFTnuhJE2~<pQ*9SO8ns0%Z9Wz@|q5S|u0YSf2vy8C!s+a|=*zZ2>y% zDL{kM1-$$MxI8aFzb^&osH?=vDoTv6tAwtN68g?c%<|xO<hDwT?V!Y)?)-kNP+~-q z5+^d1Sg%yVYmgFoBbA7npv1>%O0YRfxGqxS@p2_X)+&*;Nr|r8`I)&}iSPqT3_PMl z+6g6^p5b!id48T=Qo`sOPkV!(+qZds_c;E5pS6#8nkPy;f5y-I7fQsw;%79!kIUaG zv60JQFZkJQz|U^uPy8Ov=>k8)r|~n~pUY;?IOXxP{2Ql4ex9G@WXsR<Y);!bedJ`# z&+iVLvN%oTw35?aPG>pY;`D^mYfc|Hec|+-lj^=-^4u>v|Cd(Iaxx!e;Bx!$ZkM>n z%(eH&>8@LIp17LtY~XfY)YZ*ZXSmz_+bi6<%sKBS)DyXzM^<-VIa=)gcBP;Dxg9a? zGjH^BAJuWZyLjJx_e|?e?p+5Tbw76fru$Co_wM62mY3vpG?5r5)t0m=XDz8~<{}w7 z+gs9Saj@i@ZKUM2O|qoR0;QzNi9wRZ6-G-Q=S`Lz6VH|e)?Xs&*?z6WV#hW~r<em0 zi=b1I@boK^x|i-rLb6^;-gW#UDcDp-SS`~N#<Zv;)TmKaXjRWbsM6X}C>UWS^m%P7 z)JSs>Jk8vN59d4t`?bEp+m!)={n3uX({kMfi|#UE%h@>LKuoIOUMpA7&Fmx8OBx_3 zGKL7}hK~?p*NhSBJ)9tXwVo=x&HqQJaBGfW-+rNxdU~mFFk+Qp^K+drb=hX2O6(3{ ztm9sxYUM-1giptWDz8rqLq1&)-dDONggD+7X2m=ZE-rm4eE9xK_}t@zaP7ob;rId( zo03qLos?8y2__X;$_oQ_?Mx-MaEA#yySggtv8+1tUSYuoY^=@d9I|AFw;Hg3pH}R4 zBWt!Vq#1iVSj-akJFpfNU6@M;ch+|SW0ggo>`H_;yK~5wHE{J~(^mwrHnzd6$?A^G zg@v-zQ(^3K&j=Q6C}TC&N3$2QICi&Y5_@+!h1Hpv!6M>v*aj+KqYV47HsAZQp|AV1 zz{dmG#CwBTkGn(J!u!Kn!qbs#<-5@=L1!GBXEK3>G@8V+gelCV^E6f`eFmF0aV8tQ zbvC<mcP?98c>%jZi&$E(B`j^>GIr(G3O1+qYIeN)TGn~?dPa{nvcC3Pm}T#6tlH@v zEUM9NRwjQhdw+31b8|k#j!rtl7Joa&&dN?Q?^CDQH#)~Yue!iotuC`o|6FD17B^VZ zlv`|W&AY79?E7qG(?_iT`X_9t_j9)M!b?^!{ta7E?md&v`p5`h7`y$AbszYX1yt9e zZ}DZwbzfQfS*tv?&#XYr&g#+_aYf1>rB5$j8qmG=M$}_{B?`4LrVG7I=*%NiY8PCU ze72j>rl!?t!6b7s(zT#xnKjAtNi8zyQHR=`txI3p)T3H^>eF&bLt3_>5t%zQrdO+) zkiFQNuC2167xv9azM(mJNW@gI+m7nAaiH2~94R-<nVcWFkbk-xZ7nOIe&Yn1(~zjz zM$nD6p7iNvONz?yrdpL+QG<oPl<wJvOs}`4kJ<jzz&wB^Yz(BfUD{L2FTs>OqXWJ2 z>_l@PcBZi-Lure1H?p`DMyrSRpgiXY%DEd!i^oVw*Hcd8UMt9NZVcIW>PgP}@ub+9 zKwHz3$e~#;I(9#W`p-<Gu3a<8uUZy$Jey5fV{&O#P(FP(R#NlW-Xw3^hZ@@UrPxaS z$nkYQ>U*v~b=Wk37Ed2Y%07eWykamd^&dh%?T6Co8pFs^XE;56G@P2B9zoAGkEHr@ zN71R_qv>777#bNlmZtlUquQ?H$)w=~$}pZt{@*9k=qHoN>(XSB9+*Ne*G;7dbElE- zxanllZw7g#{zF%#GwDi)StPWYO=Vr@kd5_RT3>4(&8j?~9+z1_V?HdP2~QT%`x}dB z)!D_g|IiY$-?5ZFtX)PXOO{igSu4nA(n{(!auw|xu$uDo*U*6UwRA0E9raeMr{wSr zw6x1cY7xANzWHq?lU7?O-eW5nNVd^Sr|neDZU+_E?j)-wyU3{FZgQ~PLlbN5CC3{3 z$gtXes#E0v#TXx?$3}-}romwvTJZ=i);&s}%O9iMa>vQG><Ka`bCS$;PEmW&X<GmD zG`0MBhCcl`OXq)_qf0-|)6X9l$nWPx+Vt}h`HHU4d(l<et8<N(m$^>s%HE(0<!+Km zg<B-oy-la|?ofOEyY$fD9*s7-PyUr3Pz{rZ^xpIl-KzSSE?0X(*Ug{OGmB?bzV>r! zT=xY9)_Y0$4PMczMz85X<2O{-`Ym;_eMe)Ozo$du5A@ysBQ<mSL|t4yQ=Z!wnj-m1 z%lL|1kMFeB^9RlK`bm51i?DpI2qPQnKrvqjPF7{`WkDINYg`u6MP*UGX*o<=Tn-Jb z%VXw}@-Vci!0&Jsu+c^r@0RMq(pC?WWqR<otqAvJ6;aDpA5WL+W1fux+AKA|C2K<j zEiuIErbhU>$OyJgD#2%AC3ss^M$`F~@wS06=FBmMQ#}(bn`wgbbxh$o-4x*#RnTK{ z6|ibm@oijHOfxZq`6x4_8CJvcA=R+ALUnBDR~-XH=4hU8j<ui7VVY3`ZQs;Dw?qs0 zJh4CpMNQ1ST@#hM*FuL&wU8828{sEvqhXsm*tWM0nowORHq}L@y(PLXvqUAUdKf#i z9v+z2hyK|5_^#goJNh+1yKfD!IISVhK5K|WvPKwstr4nqutMTdD~xK{7&)68qlLH$ zmMv(4*R`7B$JnMgqi2oy0&5(9YmK)tHn@4+2BU&)QTCuMB$8%uUfB%q>NiK)#OByg zu?05gwLt#M7SM?j!{?kBty|eaf0G@CHMPf)srEQv-~eTw13o-+K$Gr{sCL{DI|cqf z6ItejmNlJGbEq>`d~(KTg$sV1bHUb@u4u8!72RsP0Ylwz`GXspO1ZA|q&uFuOVE9R z1bs~ebk7s;^nn1|_6+s5G8}G5XfTq?3LgnC!hs%#xGqWTfuPAAIQ`QDWurZD@3<$@ z9b01k)Rvel@`8uL3&W0jp`X|rO(%FG@3S{@yZfN=Zmt(^*b4mzwSvQwRv78;i}5Rb z;ceU+Gkdkhyfdv4;?M@m#<jtUw`~v_(iY3tw8df*KeS8s!_*Ug7-j1Zo1y+leCUr* z?{;`Hs~zfpZwFCm00yiJz^clD=-o3AANB>pv~Cd2WCg+XOb}Yyw8xu%?csB+J(y!K zE)NTa`Q2cAa|=Pg(IHszAOyKW2Rs|o0iuT;uu;+x#-lsJ@LoqOap{DoLp$Nb^-c&8 zcSd&K&S-hAGnO^#f=wA+AV1gz>#B!hUUVp&HijamLRUyScE!rMU9talSLC7_&J6E{ z!<V}u(kcv7Q^JtCBMi?gc86}q?$|T4J8D1a4s*vISexGiFAwy<(aPay-6b5dS>dSn zC>#YXB9NOA0rTw<=vX!q4s9Z_dSoO{o{hu^^C&zEi^9`cQ5bqJ3P&1Cv81OI*2|^v zdntvHoecc{nt+tGGMK%Sp{t`DNRwm#S~;G*kz<{m0=1JBXuLv!vriSUY#NQqifGK7 z6OGe1qA|}R1{R%SU^gZPPmjjHw?Zs@JYw-6I~LY!V`2O(7E>Db#Qw0J7(c!zbdU8! z?Xq#W;1&nR<TyAjh{KhuacF1~57Sohn3ofeYb)Zh=}tV{swE(zO#*E55-?*$0@mM3 zK&ojXE_fy4c3L9F&QHYS^NDy=J_#e8l5ka)gwx}akhmuaYhNW{R-I%x`zIqkJDJbn zWV}3+jHW-6QOTwkrg!Rv^L=_@)3RP@b+H$eIw_Faq~L9b6f`eLf!V?oEIyfn#~)L0 zp>8Udds49}F%`=vq#|frD%T&TVzyoyf|{pcMMxU9W~Cu>MjGzzPJ_;aG@PiI4*zE9 z$PG$ISZX?6Oh|{rrgT_eNypi*=@8e>fCpuuY<LE8lo?nsGXn#6W}xQH49I_Qs-20N zLM8@v&BWrYO!S+Wi7M+d(d{&+7n!JPkcIw@v#`P|3uD5w&^(uiCuU*7>MTSY%fiD4 zS!k-04Xc{jxapXUjse*i9G#7<-q~n0B^#qxXJhl>Y|Or$jn<#DvBEe9=Nji=Gvy$n zV-60)<={o199)`|gMQ0%@On=U>RsY8<MSLG(aD8(wOsVI&cy)AMZ4f!T$bm;CY$5K zb5Vb0E)K2Eh2y?l#9YXQ^ieJvf62u<1FmDOorfmP^I(EJ><i3;XG9)`B<Epz?>yv< z&O_r_dH82#9`5YO!@J{oID0J*y`Sdc>*qZ9=;fnFwS4$C%*Ri=d<;fDZu{rMpld#K zqw{etmCK#IxgBMAKCGwYqvia3G+&*M7u)jD_fS5bp5^-7oB3c*@?rHp9}j+VSyjIP zPpTH6MP07jZCU^ihXNR}0<3FQ0EeIg3=b{9&M0n^i7UYRG%l~^7ohsU0*oD5fX5RH zP-`ZaV;2^{Vr2pDZz#aX9R;X%pa6Ntxh#9G01vMg;OU(LoO)b<39kwu`B;Fx-+7vH zN@VDBy{$2qDXS?lzZSRM)mOr?i4td;ak<oi+i+Z!C{Ntx<E4aOYb9E@<1%5e5^p>4 zblsG2kKp=cnG%+<N+cyHv7na{2h)`}m950Sd?jZ0Q6gr55;cZ!`_XVN_l{O#)i@<8 zO;RFssuH7S@UmxdnR2cYyA~+1bTPLfF5~vZm0X5g&C6KF%ihRk+09Bc*`~yh9o(k6 zi|erWav63%FY}-heGhZ}_E9AYjw_)!sf6cgp8r`ckDpVb_XQ=axa_?1GUva__0!jQ z{0$|R+*Cr3%hBEL@G`j0`xcj{t8jT*@{r5nT&7NZ%yr{WxO~j@;Avd8mOba~=km4n zORo3kGWJPM6S$n+f$PT&xvag7lbp-jx?J9#!^!1?5(hX1aM}Abr*>TS-p9%LGmqy~ zk;~xmoDOrU|CNservsc!xhx*aX$Gh3oGiZcao{wV(^gJTI92<>?Q5K(ISu2qoYOH* zPdJt5vUeR$PMq3u>cJ_QQ*TbAIL+X+nA18=J2@TVbc)kOPS-iz<@AWtGfpo#z2)?t zlgfVmnbTKJD!u-9PDOIQO4k3Ayk8{u7rDpuvK*HVG;j_)vfFvbW9IVW<8+r@xlded zb~SLFU8bw+_A<j={qL=Cy*vNB>%j&hw?(q*ZUZNX-C{QQxp^Fnanrrm&n-4=yxY!W z^W7>qZF2LRaMUgK`AxSh_TFvNp7QPsqD<Te7SwicU(MRRqP2_rvd!M^&ijMi=le&x ze+f)>Z*fxTUjP0e_o<en-G5G*>>kv9w)?PFOWapvuXW$@WSjfaDF@v93_RuTzWR#$ zxf=J~19!c2UpViJd&1o^lJs$UlGvz9k~TqAB~`jxNDdCRl*rCnNgfH!Bq949B=h3k zC0Fb{C2y;@mb|PPC^<%*Btv_5mss7FNoGgHOFsWdl{DLyE2({~k7Uf@0g_%9hDf%( z86oLaXRKsQ=tPOdyr~kyAOA=c(Q_qDZY`7q#VnKD__<1Qdck^0lkQt2_v-JIl=-w* z((l?KiTu=Y$)dAoByAsDl=$mimn?I;BZ<v<DCu|PndEcRH<BZhKT6(L`z{fJb%Z6B z<%E47DhNZ)RTMsNHWaEXtSnrbW-9nhHWR|8n+q0;Y6^X}))7Wss3-V*ZYa!Z&_tNi z(MD)9s<|-Xl$|i3hLd2?(^Y7{M<UqPhp=c!OX1)rA7Nlp8{xrof8k+jkT6iEgRp;M zXJL**H=)+09)e^4DB+QdLU4T>D>T@UAS~(KOE?moF7&g_7A_d&3lX`!h1scng%wHt zc|HS$CaHsk2{}WB;{%2ZC&rHyCNCT<*zOoB48Am8SpH$6Fx7mD5J1y}BhfPiqX{#G z>IY^E55LS6@*Nfkmy;F=pI0ssZoXY643Vr9J`P+hG`X-=sNHmfa9+7d2)eRG81A}V z7&>*Q&{niZI1;;0Ft~U?Fl>ETIKJ(u(9Y?EFnskXVTj#X!Dsz>VY_ficzf`Q@SxLm zVZ!5^f~fZ$p|Qn%L2uJTVP5DH;meO_Ld8Wdg)<%A2qER)3nMmv6bgEM5gIr9E)0D3 zQ#jFChdFL7!_qCwvC)IdvjMLvunyhy*!P1KS#M_pc6EUvGp<pI)gDoql`U(+cITL~ z&hM(Q{Yhp_|9LgmINqFDJg>p-CDmm8-_>GYbLuePvX(4%L_HQ!qXBESupv9)Y{k3| zHD)8aHDya*S+nVbY*~b5bM|RV3nuMs$7a2^XDcT-ve7Qi%<HNPJJ{Qe)oLPPo~H%o znn&zM6Aw22q9^+@$cwdb_hAk%TCwu;TC)Y++On!<{w(NJJJxkXAhYvt&(0Z!Fz=Hc zSnqM2*r3oZtZTil?9-EOEOJA4Hojjt8xtJKx-^ioNAG3K^N51UX2r08te#9KIG*J; zOJv*hliB{qz1a98sjTVpbT(j2CR>o1&4!2PGM6^_Y=NVaJs;hh#SZSn4)pHJ%IEZB zjnewF#z_NM#khg&So9#4EFa9?Nr$j5(xGgIbQs$$8_xDAMzDpkBU#UcQOqD^G#i#V zh99Y8S(5?dnAeE$j7^-ts?M6o4lkL+!Zu81NB2x&=BK8zmN%xc*3YLi>+dtzW22d@ zf8AO9&A@Et?=y$xgwADs6X!8`|M{%Jv;}P2nuV;z(M2rp-eNZA#}YQT#xj=Yw4AjF zUct5|tz>mau3}-!SF>Kn*RUQh*0Ki1>)9^*4a~9AMyAZ!#AeOh%%<$$!eX9nWkyxE zv%$g+c3HlY{T#K6ec7^`9eJ>aB~{tS9((L(E=dPi=syQpz==bw`p?5`t@tQwAU($9 z6OXg(BPUqI&y%c%(`hy@?hF&nJ<FP1J;!XTUSMC_U1U=SUt;?EF0;0xt6T$jjk)Gt zXAd^tVA9Vw*$TJY>`=}fwrbm5rucb}J#P7cxet2Cx*U7NTADs#pSwI|d9$9eqmQ1m z2X-&nvD{ZI|G;bZ+2k!lk9RC^>3e4V`2#!Q`-usYKC_gEUs#IkH|9R{J3Dgi2jef? zsoowDO^DZ_`08b7!JabYomiH9EXvWM1LY_wwLDF>tUwJ;R3MW)U5c{SqpFwnsL9}p zG{Z%o(jV&6@<|5d+uD#?em10kmKagDuu7CwsWN@oRhiDG8dH_VCbasB39TGyN=9B) z=*Y(^^l({Kl17;knOCE%6V=FgKy}g;%qi@xIT<glLG`2-G^S=v>T#|n4H;33Onht8 z2T>hz-CBn(rq`vjVoS1lW=Xde)}z<b`qbUB0a;ydKy9Zsq$8ah(R?#2x_Z`%;>R|o zF72DpOyj2HajGdvMqAV9ARB^-Eww&lOH0NzBSpvNlvBM0J-Xb2R!$ewiEumeX<$!g z5ABI9b)fA@jx^rUiS~YWqBc97$!dTLb@Owj2PSTG@RA$-oas&@q9xR;g+NO`3MARZ zsO}J=&|uJ`njTz7=0W9GdD7UNmXzw_MT?BR$?lprRa)djl-7#&c=*y}qt>+hN^4?^ z+K^#JTe9``qnW1uB)jcTIjh>yZDjyW4Gg4tb%W^V%OF~^t353k6HITSLTH3z2g<I{ zk=9-6NLbp5Y7}%P&-PttbHh+7_!LUxj&-H?v%1mz^e~#+wmZG3+k*zZ??DMi!)fO1 z2&$76Nsj}fNXJS_vhPx=a$ZK2mdmNb00rIe9!<NQW9VV!SnBdPma6RSN#--+C^|Eq zezs4bTegX0pqE4icaz9{XEM>WUNkH-h3a-lrLW>Ns#__YhCWRv$>9ugT$o9z1G4Co zG@JId%%Su3a>-UFj}G0+<L$|(Q?m+4(nm?}#l0zMc5gB;?L&wA_Mt^@`_N)pUpjWa zFID#K$KTHMqpwZ-)0}DjDb8pBbx;nV?ym>XVCg_QbABMP)`RHKmO+%(Y%pQgV6v_< zgd7JBp&p-y(4zREWO8dLO$ixB9tVd}1<7!Fx?(uJtUrQGCXJwAgORjaIg*;c8%c*_ zMp57Eqxd+ErhtQ^DMA=SqgIchYgS{a)%3A+++-Z}8Z?gVzmFs1)bUjD@p!TfpFqLq zC(vxaiDbBEB8_#OL{2Lw(c4Co>Dctiw7bd_Iz4m>ebbprEwiW6+*ebnZp<`Ve{&ki zJ5ML^$?0U~JA<n3oI%Z8{-KDK|Io6=Gs$$;Od4Z8i<*v^MOP}$rultm)8MbOsejrW zn*4kY?N`ht{abS>I&>agJ2Q`B{pVAq1M}$!7SKPN7tj!gg*0sWLYmij5uKmCh-%ha zOxY6`({tk`lsRk(nO9g!CwecXX<wI8e#SCNf4z+Q#xJM&50}&Rs1;;=V+9QlT}frm zucVPdtEl<0RdmO9H7(h@ng(GFWo}(Vc`j>d{Mxm&v&B04v2+~;HCa#V=dGt^^)}F^ z85^jh#YQSWX(Ju1vWcdT-b8(kHdF4<%``xF3(fAog-+;fB_ril>i%sj?a1Cn;*Z;C zP1<&9^=3OgPTD~;p6{TjxSizucqdsz@1jcgcae#7H#NMyn_7kMq0H-hXj8Ynq<dvA z$-3;L(--!UU&sA)?(BYw3qC-`rw`EHz=PEP#6b#fcZixDJ49xFhsof`VKQoSglZo; zLax3?De}Nkn&5McF6=u-^}UZ%?%v~cv*ig2+;f7Cc%G#8yHC;`k5i=Fb&9M!PSd5G zr)fOSP`90D$QEZwcjsApO6Taxj&pQ|&ePc)=ZR}y>CKJ{R2dh^Y3D_f;u1~Wd5JFL zGFk4rOvxTs=-{p^WaW94hVQ;gUp%i-@}6t-tR;V!u=hHB@w!37_T8ZRJ~wIC{+lFg zb&Dz;yhYo6Z&T`_+tj?x9eR2A4y|u{my}2EQlS4mYIyt}eQ$T4uAaD0I|3ijyi*To zWc!Ddf94@2g*+nJxkuE!<6{cFz^U^S>UQY~MT9=3m@7{yrQ0(qxb}=jbbn6&+;~o_ z!e7w7TQBHJ<V$*e=OyXOUQvVluZR?{DfHoMN{e|zV;;Yu<vrihk*9CzLHs)^`{Etd zO?pp~SMRA)uMd>`<^v5${YbOleWXq4pXkJgPjn~qGrjxtnabsSA=9s4s7~HjYV!Rn zwJ7*Tjz7PVbMNousPluweSc7svOlSI|DQCdj0itkijdk*ga>;?=u}Pz`@MBwH$Vr| z_UoW*g))e4RR%`}mVx!bG8m*=7Po!N!gX+2j5t&lH}uNEwoN%?4k?G7hs&X?etCGe zEswrK%VXP-@_3_P0S)~sAY@nt6dbL9`3AZ;=%<SZ!*ro@Oc&J+_0ZH`56;8&fMa^_ zGOP$M|B9gD72$ZSA{rU$!_;3NpNHw=>QQ}cGBChsKmMk7m;qWGHNXdbLu_hmh_s=G zusLFgs}+qfu#FLHh8W?<AtOZTRl<AUO6W7F5_At%!k`M3A!=0_DFZ6w#=gq%Drbz@ zUdH&`*BEW~7-O7{3C??%z@)bce0G{3<%bC-F;lG1GsV%ZrnvIO6t~@~;C5COT-sO# zhdxxnDyOO#l~xteYpcTfO;vmsn_*j$8B$i5!ScBo_S;lLRL^Sou&5gPJgkPYR@IR& ztB&V$s-wg0>R40P9J)Qs5i;Ez6Rw!!gn12o?^FW~Ce#4V)<Cd{1-b@WAasNU0*+e1 ztzu2o@U4kg{cB>|o|-5S)q*qC!rk0j7`V9>>U^w)WsbGcBBeGKuB^><M75D&T?Z$k z>%d}u9WLkB!I-*r`5TqGxH_dSUS6n+k5w%By9-M^7-5N{M=UX4w;ocx>%pl{Jv`lB z4->!CgQH7*97wGXzg6|I|5<(5H*J8i@&<S?y8)WtXn<IYhM3f;AvTX~h~p<3;=Fz% zoNCnwJNh=lKRX&B<x3;DI$Pm&FDuMgZUxC>D;#Us7=aOuv42`)G`rXsgG`&?Y`Z2f z9nu6X_cek1XA@+*H%0ICrpQ{=6j4u`f~>4z5NVAg)2xwm!5XzpY_QVL295)5uw<7F zjKA6-*2xxYl5Fv8u`R0KvxP&QX7K3J3~X#O*c@vH{R+)-1<f%vyE)pfZH}kUnj_Du z1%8CLK=PCpICG{28XAhB@DXEjff!phigE0f7{{C1as87WW=*q0uXA>=GqT5RAA9sJ zut(*M_89Tf9$y<fpmT%+=1z9NjZ+TLtLTXOo{q52c0|3^j?jJVh^v-PnAyb%?MFM| z%|R#h`RRn8&d!KWbjE@C&M?024Bx6QNbqw(pS~{Wx7h`0uUrt^*cEkpxZ?77SM)jR zit1(DFwNBsMoDgnpYMjvSKaW=#2vL-yTiV~9Zu`qVfDlv<t!yQ*-?T)!}z=X-4g8j zAc2RifaQ?_bSDW2I3}R44&(2j8CJ(JES<$L_B?|^pU@b@b$NuuMTB?Ph`$R04)_2j zIY65gK*AkvXQ<|ZoVFg27I?sQjR!v6_rUxbo}hM~*xTC^j_W)z`k^N-S+s;vKug&6 zX$jYLEz#m(OPE^lcTE0Xn5yLVh&5g~b<Yd!s(WKy8*k|5dBbOgH<E67qo1h{`g!{x zF~bMmi+oW2iVs#Bv_fmv3P%!K!DUt}j5^&4XUh2Er-Lu5%Y9)n(HD9LeR1ofFXlFB zjrO6f@pwpU#BFJfOHW!uT(b>Q{Mz83+%{Ohl+)EVm~GG&8Irbej%$lsQ`;i#NL#%5 z+!kG%`eAt&KRh1f$H&?amJj@3Vdjq?Uj8_i;*b8b{b6;=AFF?Gw^=(3=++J=hH!hw zCjRE?0k?fr4S-3@06a+wz_J+u=yEgwFFpkz-YO91LjqydClHY<0x|GvAjathVW?9O z;-Z4!I4TGaw+5l#qaf&+wMV9Bdz?sUkIGZq!|gzO_`hin-#WptZ5xa)>A_e%I~eVc z2jj}8VE8u-!GgdLJjn?`wFM!tJskq;Zy_*g+yS@Rcfgdq4sc)C0sBsO;BQ$wV60U~ zTnOrjGPxaLKEETXo$QEjpE}}L{Z8oT-w6#fI&oWHC)7FI30ZGCVN1=<xbNK=pAtIb z-Neqgw6injKkAIGCSCB!tqTgGy5QN+F7R601%0n}!Q!%^*lZJu)ghr6lN*Yzb3<Wp zl-pz8grbo}SB&!PirX<=QFC-x(8jK4eS_O)%6CIG+itiV+zkV=yTN=`H;g~f4WFKM zgLjoMWVwZ5LU<Ua4B+q2mWFYid>G6>hGBcH?r7VxJ9b8QN39Xv5w)f}MqTWV`QN%@ zPQ4x&+^PpU#r1%}=pI<St_NCN?tvNKd*E%oaM-m9N0*-AP>c*m*qU%iE`&qpOE^~6 zjzBBV2<($Zz-Dj+a+XG5)rkn4d>w%cRU@(AB@)xRMxtweBy?s)V)UL!=-rP*v~Cnu zG>yV_zbL#<h{C&3QMk4`3QNyMLHa%lWvfdu%vFl7p;Cn8N-=J_6x+5-aqNZ^`+rKY zz*2@pPZ=zuWZ2wS2KTu#%-bu&`@1r<C?`j7L;jB2TaEyk98LRkThUxOChe8O=B^wI z%P3$_UxCh^3Ji--V3AUR75^wOZMy=!t|`#ss{$8lL__Wxjcc8vAxV!$|8db+w>lcf zPe$X!^JsqV@_!4{GzLDtF?cMCL0Vt#&g9|kF&K6w2Ae;|;AGWUoV1I@hJaWMii?HE z;8@(A7mN7avD}6l3(1#QD693vGW(v`8_*NGd-lZQfjyBurzaeC^u+ngJrVJ~C(aqi zL2Mg`4Bt4+kBY;#{5Wi%9EXK#<B)xV+o&FM8&%nO#MFt$P1krJBp!nk;<0s5JTA<R z$JMRzID9@HvtPy|vSI=Z8u0h)LIP@bN<g2a1e_k6fQoat9cya>T+bz-+4BS#R!GFT zI*AzQl8AaiiC7Sm2(vzkNSu<0RjU(m?QkMq|39qVXHZn}vo2~>L`4zAgn$By2r6JC z&HD8V0s;ym2q-8ZS%Ty|$t(uU85PW;V$K;8X2mRs0gR}ab2|OswRhF2Q}@HIbFWoT z&6;u6tT02+?zh(y_9GcpZBkHXm4XD96zBz~U`=WYj0;jQp*RKC_NSoPRqi!>mcn08 zDX?zK^{t+%xbK{bIU`eHlbni!Q&Kq#kcyeRQgNdq6-^(eqTA<G^wds6XVWzN7?_6g zp=n5uNP})p8kWpXL$kGMh&qslEtk{q;0ZtHYZ^3KrQ@S%I<5^&$I>C`@Cr}Ii;Q%n z7NnzYWjY4!O2_Q8=_tRSjwf%^@upD*>e^@EtW^dUhztzz%RobP29&uO_&zHGVZ|BP zu{#5A&Ss$f{R~*WVgGnpKND}vGqJ-y6JbL#@qJ7t)G3+xFp=wRi#QXtF%#DhX5!;T zuC>)<;#Wf^YBjR3Pd^Kp=2<YY%fbPVEXaa66Oh1tlZq_(6=q@j>MWG*$il&sS=dvV zg`(Olq<+dmKh11BZkG*tcdp0TWg~ZRHtq*y!!j-#(K*?eJv|$1mu6$brfe)ekd5?; zY>2zr`0_j(E52r<w-#r7+ULNqdk)vSb8yTx2cP_N&>=DhmT5WYF@bA$b92zJDhK<w z<sj)u4)iW^KH**ty1vN4ye~O;(<B%6`ngCk&BYR%Tx^lJwl^e~e`e=G9h(cE%v@+s z%Ei99x$s?;i@RHLG3;P2_MXi}^P9Qwew+){+gz;v$?G-aKF@ZXH!{mZj!hn1WqJ7P zk%!Fzc^DLthl}I+Hb0NQ7V@C6Fb{)^^Pt$uwZH>;*mpV)hp+Ma)p?lzA`j7@@?iNd z57pZF{4+NndR_Ce&^jMlj`@gp%jcX!KK_N|qkn8Zg3|JlpvXtc^n64u$cN{ud~m=T zPj~0@*M2?*ozF+r4gR~DeAK+ihsQ_GVf^MgqZZc=+sF}YBu8#{IcC^$|EVMAq+I0~ z>m$d&k#hVVE61J$ImTql@l7em<mqxWn$NweE99tLCx>|%*BbZBvHFA@=g!OVxKfTc zRdUqV$x-!2j-y}XnD<wXpk@lR)>Gh+fdWBh3Ou(`U|c^19ylrB>dJM<p$fbl!F9+n zoB@gEnq(69x@Ib{N}<5=DO{_Ztw7=;u3N6;TIPBM&Tds8bB_WYjwrD0lmY`TDzLLs z0n_^mOn$7u{TB*!d#6CeR|OXQQQ&~464zTQQKQc~DN$*v#GxKae$SPN9msV{Nr}2a zoHy}OqR((8&ITzlEL4fhQJh0bP+~)>5*j&53|A_#XtEMlW+?G%t`eP>C^2BA63%Ot zaM`Sc{dOg~?p31kVI}UKP-4wlCB|M-qJ5<j$L}Z+`ap?~Pq_a1g4cheMCwN+s=jgN z<qvPWu?p4AxVEXIg1^2B>W(U`F;?NQnF{AExKFp23Ke}+I51F!)lMqzVNhY18`nj> zRJiM-LZQD3P9s&Q8LdM0SQWHl__25uw3Ag(rE}dhn`^Cd71pa&_%vAs#{v~{W~;Du zo(gvssqkZ&3i_+K_je7~NjGqRaH$Gi%T&<YrNY;}D%?D%!lt7tWSr!_;4}Oh6)J4J zq=MfyUcSLK*gGniR`KiAs9^nspZk>SvoBSc@|x?h4cvSDk!!JERCxSd1@qr3jQyv= zqQ+{JH&x?#b2T(usbQqc^+tU)`n6{UYV<NvqjMLoTbglwt{c}5EjVLo#kri`T<^2x z9^Ag%pF4oFKlW<qI&t5z#I-~4b6q$G<i_iHa8I%q_XB&YF?ksG6c1M;d<55C1Jy7a z#eKgaYFrwlM#pe9#zb(RaFiOiV|cxBT(?Y6BQ!}3buvGm%DJF)-q%ciem2(+bGaUx z&-<g`zF`&Da3^qY^d#;Xo}xz3G&O7s)Mz}D>!7pLSYF7lGgl4c`TW`oxSqR64aX&1 zcU;Of&gER=E#f-qO0L1K=KU__eOkly)^%JHUav+It`93Waewt@KE^G)&8=K#EmL!! zJl7_7a4mKh*L8PujdG6~Ui-Kgdq3AT52#^qh%-!w`Ph%}J|E@vk8zFkgc=@PM@}qP zWA-WTr9RDncZU0;xu*Q$9M?Q6xTblY>!}yHrh7>Zt;@V0Twngd-d<JX;Wa+?>wJzY zIRkZr&&y3dm$$fnd|QonceobIj@{*L-s5AruST~j?)7G6)%<=v;P<kId$-xjhidpe z;$wTP#%>n>x~v>FvzFj_a>%!BaJCo^f5Bg+1r}XH#Bqz4|5howJ@?tKQ8V>bXYD zq}P1Q?BDSF#H`+`QOxukcs=%sjeW;8V>a+T?*nV}f$P`o9P9p(KOgKNbNIyBFZP1T zKC3Z@Jz_RrxHittv$kKkj?UJxSIqhw*X7wR_MX{(=UO-0#GWuiu7CTp0(O+WXI+2t zXO&H6yV+yb>K7jai(oU^Zg!vjW9GlP7l9?RLRQAEu(zxw*T^lII~&X7Y%$x;D%eBz zg|+(2pL=G<hOkhU$|kWzYy;cJ&azvqj(uQ%S<8R?xnkzbmdThq^JT#-iY2j3reIUp zY_^cCU?prL+s1aY1MDa(XJ^?(c9m7K+w2~Dz#g$D>?wQBUa{BgEqlk_vybc(`@;Uy zm;a4@XFu3~di4KO!~dT;{%>CXPc8p{>iPev>HnW~{eS$}fBa7!|Nr*(9CG_d7PK6= z^nCfi;je_<fp07AY!vl&%TIQ*|J*pl-l55C`?{yw?RRawZJ%VW;jkd4qr-(IeH`=; z4t4OmFwP<D*<^>#VT&A|UEScY$^M|jgk_f;0zW)*Fdy{AL3OsNV?#_E$EZo29j_Vo zbcC(F<DL_4j$JPMI~E2+IDQ(H>KJxk?O0bo-BG{CJV)m>%N*l_*ElZl-Qu`!@*c;# zUyeF{*>KLW^`h&JT~Agy+Vp(p=y>Cuqjd16qftX+rw+x<ope%KJ86Wqb9$F(=v1}L z)am3?3#T={)=rB1{hdZka&qcE#Kq}-A5W+KcD_!Tql28Ri$k3rHi~g7n4IL)(>&AZ zOr6}R_mhcEA0AD0>f12GsiEZ@r|ymmobF~VacX*Mh12%V#ZHw4>ztCCY<8MfxXsC+ z$1W%H>-(Ha3l2M#4nN^!W_iY`t?mUURnx0Zku7gJoiM%Uw8*{2=}BI#)5c>joa*%6 zIxWli=yc}UH>bF`KTa-+MzR^+nzBOkW-@P0ZP~fktz^HdbY-tA^<|5%x0n68V<0np zW+eOkvx}_2psVbz=q`JdU@2Qu+)LK^fsJg0X+PPZq=B;f6Am(OBS{v=twXX`gJcz> z2g_RB@seqe@{yH487}LS5g-d{HA*(HY_#lhV7SasD@ta1JXZElnIQ9bPnN0MrOP5- zXUTqD$dh^RRLZQbO^`LeI7xQu{1n;9OVecMDhp(79?X>4*Uy&O|DGe$*Pkz|=(SKb z(rdBoRKil3*1YAi?uUwGU7oL!edtgkTRn8GtoxMpvS}wb%1&yO%5J%Bm6gvflg+rd zLuO^UTeeQVSN7$`ewmrgA(=(t5t-)uW3t0RCuLscr)0Zq&&ocosgP+KT$KHqe_3`$ z_nItrex>YDhg-6~C3j>Y*7s$jk5|k3k9a7nd;M6JSWqXsVEJ73@A6AotE|_u_ofZ9 zt=Hen#FS664YIGYr(eIze(w7vdzSlGcB@!JGHu#e8ky8Y%Db&8O>@?gRAtSivBoVV z>q2em*}s-jL8gw>{&j1qFiKB)SJOt4g|wB@@3oT_j_M$-uIeZ)4C^FiJT;W0BxC9Q zm(Eh*L=(<@m`PJtca<L7noH)VyG#C~dPwo_ETx2ko>D-!-jd}>Yw1~-tu*UjAIWfS zKWV|>0n(>810}K8UP^_dH2bxaG=I4ysk}%E_ytLShl_M5+Ewy2c9%}x9xR#6_mtv> z4Uv}WcuPC3`bazH`%24#{G_<fBP5gO0n+iEL6W<2l(c7Ph}6P(jO5V}DkYu@mvWXx zNC~M?lG~6Nsi{SrRMsS3lIjwq-Di@d)|-<hzrs{Wo|!Jq3eA)zd1g!D19PRW=K0d4 zb_yw^nM%6;OD%QyF+sBXGEo}xagsFr{bb4O-4toyyQxy!_tT_jAEryCp9`e$?=z(4 ze`ZSS8_$;dwJ4N!>&=n6cbY5B>N-!V?LA-W?XW-^=eAH<;<rfJAHG<+ki0~?qFO4Q znY&Edwr06BeeVis#Q7qrP0dQF{NpMqvPH4<#k54qcU&WV@Lwwhk6$P4E?6)9S-(MY zJhf4Zd%Q`S_HVPa)MSga%z3LcD{`BZGPO){E8Q+>U)>><f7&U<8}61G585NmO4uuD zE!rog9p5iqd38WC>~KgL>3Ue2ns!85S8`O^b^VyMtI-Lmr2k22LTtG-e8nkA@7igp zT=T3HAv-61Os|mAx1N{ko?eh#O)g0bLoQ1<mt2vW+`1}t)xR$F^{bTn%)cRZxp7na z-S)P0A?S`Yb;Vt&@1uLtW%DX2D6v|)zWagX@T*3e=k`dtGv~3?s_Kc<$D&Sh&3G!g zmp_y2^j=8q$G(*6cD|BI8o!o?2ELJ=Zhk8z{b`VD{ohN2OFu}<H9kpIqdrT`cYl$( zxB4daiTf^Do&F)|n*NfWDt}8GAN-L5rGHZ1Fb#o!8bZFak+6wuEJn3!BEFw%B6RaL z#Y*d@V$GAL!f1(>Xf?E%$kb>q{P#B(o03|Hv~JpBPnEVvSkO`|8`4ThO?1S_qdMY6 zR%_8<t1A-gbw$_)Jy9{Xjo4_cFMi$A7v~nY70pJp6UX)1i~6hWMPXqFvBA5e7|_Z< zI9xUmyJmM1YkUlamadU_eBDU&S!gW226h&GJ9QDY54wovYfQxY7*nyYr<stwHxu^z zyNb<<ZeotBxp<}BT^zpAUHn^NAr43N5cRz+#oVu!V)IEWVLz*<kOlP;d(C=_HE(+h z&BNBBdYX-}2(T3|%=!r9_kF~<<9)@m!hRw*w7*bW4-mip3=nUw4itVRcA{sxy~uTQ z5KbK(MQXjHFgoreoEFH$<ycAFlnLS6h6KGJvE~>=?jmP#I?+W;avdc08M%rvpIt@v z6*r-|$z5no94r*0Jw%M1r#RKdODuTnCGK1pA__MS6$dAKi=YS}F%HATo6f%C*>7Jl z{K0TxbJR~vSm`g^l_P{QEI?Q~2MYJDLE?_)NKy4-r0}~mN;vHZ7E2a}h?v~bVpHfC zG1@g$OtK0S#(Lqx@>{sr^l+?Lb}mBv+8!w?mqv+B6QjkggczX_7%PeqCwBH6C;E4Y z7gmiE#Jq+C5nr7s_MT4?Y5T{ElJ&{LWnqd4n3O8+rKO3h5$VFtKSSucW{TheS)zkQ zws1Ab5w+U6;?tj8k@X=@jC+<ZF5j1nwO1A5<!PlTIiwO7cBn<)5fj9Ls}n@lkclGk z+(fZr&?M35#3WH7n=En<P8J0Nr-;hkQ-oiisX}}ERPn3VG|_#_G%?L`x-i`|U3~0b zAbzhe5M(|>99%a;By^i80@lqG+1+M|%5}3ul=*C7y<xVnu_zSdHWi90%Q<55mN_E2 z_gtaeK381rGfxEVnI}5h%@?f?%@-ss5F1V`5U#EZg<-`)(PQW$G5*>jQ9oj_SbcA? zm>If6l+`W~&BiSi%ik^)kr~Ul2WOcmQZE<US}VlP*(=1HwnbvyiX!pOY^6vqT`79^ zT_rjnS|!|FR*MZ6RtuSbv1ndhEOeqvxKF7>9L`=NqBPbD*O_ZYNV|1n)9Q7im(_al ze9wAuk2VO6iyK6E;70M~@kUXev`L)#zDfL@vRNdzDHZKjmx>QPw+PLHTf{K;t>Ws9 ztzzofZ6d8<n^>$U6Ajwig=+bB;cB@<;J^-%K6t07y1i56#_SS4Uv`O6Q+JDH?e_@X zjeEoqyS-v{#a^+0)IOnEzfa7N?-#B*2SmT(17cL)gJRF=gTgK7kZAepkZ7hjEF5)@ zh?2EOgs?j*^e!G124TlU;KyU){IugD)#!v6w)2FDa6c)wRGkz(Qp-hE(^KM9(JAq` z?`hHR{AqDG?2O3yaz>1seOAovc22xLd`>9*E5xAs3Lz$)7fFT}_`Sa%5{6zBj!!QN znevjz=x|v)-f>w>^tvK~>aK_g<yBGK@tSD6`<gi7eO)Ylab0YlR4Lwez9Hfc-4N{q zZ;J2lZ;IB1w?wejZE^4HZ81CYj>!0TN6cM$S3GjOC!+4&6GmD0MYFb5!eUpI$oH)l zjT@@PvDptqS+5##{bG&ik?>ILZt+N@mOc`ZUXMk=tH+{t#uJg!vzGhEYDKrCIx$4& zso1dnsTeT)nfUVInW$g*T(q@&A(HRC5P$MtiW8k*iM=OZiJGW-p6l>hRBU-I3WmKA z%8zfv`Xz70Kc@yU`%#1Np7Kt>>b;1$`d%E%_#nJGeH6`3d=%fJKMBK@pGE4f&*J;Y zFJjN%FQR0_S8>w&o6!IKO)M??E__^n2>aJRg#W^yqFDAzm^}R@Drf%|`v(3ImmdBR zZ43U2!oL56WA#5Vdyob#TB<?&-e^#ROCxew+K9^DG@`zP8q?LKjcLl;#x%mU3CWhT zcTFh3U6ZC2X;S3}O&Z|Yly<IeN^W18(#N4%bYQI(E%~8Eg~OZC%1zDa%-?3zG^ja+ zl{Kepnk^`JObhzGrv)8osZBGZv?=?DHs!Z%NlOx2(xuZa$-uZ3DKlHq&&#c7UUwZL zl@4j%)uB4u)^xw1HNAY&nsjBlG;EPBZFs9o?L73Ts6>yPe(KSO5pAfvtPO2$rcaw9 z^y&B!eR|uzE%i@rOA9Wxr54@W(Nc9g5>@T!*MRm^Ik!C>uWwJM-8<0Zk`C1VcL$0X z*^$of?nut94d`aP0jbU!kh57QGE{b=miIeRyMcx@V7?(Gy)~pGUPjb)qY;%fHl~5$ z##DR6m^K=8rioddDf32WQrUK);@RAT_Noi@@Gzmm^(LIlGo_MnQ}RA$N_s|SRG(`` z)pyM3>42`(WMNlw`p}i8`*x$(W!)&Ql{x)LFsHQ~e2TQ}P7c$%lg0Dy)YIL9+}B%B zPLm#VGO`Dmoa#Y~%`C}mq9vVuY)L9-EAlO|B0G(q)PHPG@;up-(oK8Oo(a9E<&$2N z=hB=0tm#e58e5ZBlr`y{v8D!d8>*dZLvNqkkdCJ<xs}?|eC<B;C9w}BU+F`CZTix> zd3`DTV_)hU(2qLp??)XC`ctp`{uKD2KP{pGR9`ZHf|?AZdocqk<@`W0?qx@h3hn6N zdpp`R!k)J7x2Ln69O#R}fn<*zXo;&MHQVG!h1yPJmFz^-l}@yFpo~<@Wt93yM!69Z zEj}wzg_R)PIf6KTOAmv%jpPVX6I0N>DIn!5P{=T68oI}sMi{tIiqeHjYF+4s#~>P1 zHi-7<yOLwBE8VPdrOB>t<WcHIX1eaAo8?aW)$Y{OWiXB0G?<p_c+mR{4;o$NLDkNl zl(NZ_I<@wqyO~~8TJ1&i1`VOvr9)_y-cTyf8A`t%4kfR_-n6yMo4U65p)!RJc|Y|b z4ew!ee$OykZ{$mhC;QTh*S@r8#Bh3YWH@y-_oLj|e)QzCABBhd(}%PEwA5w<`7Iqm zCK>_MC_aF`RR)lTEReda4<uimAX=OqL=BIEXtdWzs@^@4QjJHE!L(6y^W7*~7aUB} zP6w01I)tVz4WadoM$_#?&gR}3P3g{KsAkI;8q+?M-l;=rQGF=+1cs5}$uRoSGo0Qm z4yTVAW2t4*ShBx6mU0F~(8aO{vh5T}o2Nw5fcKGfV{{ZvsfZ%4{?TMw98E1-#!&N| z7&54fA(?M1r5%Z-!#(1t{h~OUtTB$7j2}l!?~mi$Y&?D09Zx4s5@^-z1S<TIK=Wb~ zX~WG#y6l`pTHBMz-)KDTEErE_U&qt>sAO`iOr|H4LMyhVP^@7pxfP_+fUl`!ADu=+ zZ=_M0b2^o7Pp41D88m!W1|9#AL1J7cUAvRXeUe#Zxi^dZ^0Mjt{A}8zkwZIDa_HE@ z9IEljrPjxCX?X8E+EA27+AZ^GQhq*Z*XPsvU^xxHASWG11yyfW&|w25Z7onz*>@$K z9H*kE_f%x)rKYim)bya;1k&@FKt59^(86OA=*gD}WN$N(mc&k^KdUFw_`4J7neHTt z^_)Zv6DHAwLzAe}$4PXg=VXeFnoI^OC)3SalWB?06p9=?g$AmpP@98O=*#;lRBJVr z?nF+dn?+OU-mR(hOlKPX96XIWPT>B;L(?eX<1{MiHJxgrr&G7p(<$}tbULS3K;4EE z(2U6i^zCQ?C4DWRSGF@KC4L6|UOR*4KbS!_9cI!^-<hPIF_Q+Io=NY2&!oL}vuHx< zEDG2%i)^3HBK<D2>CZ^+X`IhF>Py_;*tC$oppdlk3&~_}AqOoBDb8{ZEs2~%S60rU zR(I!+f19~fJajI7nL3yJPR^x$Kj)I!z<IPVWgfNOGLPmyokyKa=2L0#d~#VdpB`VG zPt#f~paE_R=#^>#Z8)@m;y?3!+l8c+u#g_DUq~k&Eu>9`i)cyUBAPXC5fxloM6<OP z(=wOEv_-L)P9IoIbsrZ~OPeL+7{7#4)-R#0kCsq_;Zkx4T1qqLFQwYcOUb4AGTP+2 zjM}PsZsOr()adInn$&kWX^&q{%Qr9QV_r^|Ojc0x=oMtJbOoKiv4YgCi%1M9qQ=vT z=t_AJt^QL)IgTqSFl!~rcCDlyZ&y+$t5u{Q!`7@KgPK)j-f1=22d<{!^H)>qmDRMQ zMKS*zDW<Ozi^=wQF{S)0=5t*_jWSAT#Euf$_L}DvS+1ef=rvSbvW9$W*3g+wYiUr> zS~|C2E%{wrOHW#^qa4q5)NblJ+F!no!vC%#9oc$1m9w6dd)Jfru%0w+HqiBi4YYRC z29iJBK*44kNrY{r9z`3e<Gqd4s{JNv=D&%W&)r12mp74di_K&+cry*2yqTg;Zl;1i zn`xI*DLu+5rFQ#DY1qe7Dzx1~H<Pwd=Pg@k{EIDg+I%aSL~bQ@@m6~NU@Q3<ZlhBp zw~^!GZM5&kHnP(zqhmg0<Ta~|s?L{Dn$~vGaof%_r?ykziS4BEXFG3W2gT*?pl<tj zP~E2;RN8kZWv1*Tx3Zno>Ge+fWVwrO#O|W~>v!?@>s>U*bT>^5+f8{Zxj(duZw>a) zgrGe%d(j?Rbz=|h*4s;0hV7*{v-gtTrM=|XVjsnM?4uP^_fh5PeWcTPKMix<PYYH1 zspjZ@>iug!sT~i{-JAn7VE+MH{P_U=>UWT0(hkzC9S6yy;UJypeTZa<hv;bOA#!<n zh%Q<jrcp76>Git9G_m$D8JiuUqv1y=eDx7(R&#{*8XcwRkfYRT`BA!Y_bAQnaEyir za$bMYF?w|47?rg-PU_*uDRAy_vb}nobaYP8yP+rO_RJG>;=&0kYkrc7Jx<c%X(ws! z*^^YLSx$3Z%W2W1a#~$pPFpoj(NUbDO4TW<KX!_={+uEU=`;<IpQg0Kr)kxX({$P4 z4E@bHLjw++q2#Y;XzReU^d|Ex_1$}x@;;rVGyTp{+w^l3yXzbseSePH_o<-tlnT1B zy@Ko-DrlAUd1^NPJY{V=PtRYUr;uJ3s50RKd2hKu7hheVp;i~^`nZcUYV$>^eQ}Xe zdt9PMaopp&@e)}-zeE+?FH>~PWzyVmnKnPYOvB8taF6yCTEFfJji|dqO}kyC!;x1h zeeG4UuDwe2X4hzI#5GD@bBzW(;h9>d*XjJ&>$IfgI>kM{PBPO<YBRQy>WeGs+@nhF zS-(M3!*9^I;u|#V(G9XUxk+Z>H%YhnCjEPOlRk90MbE=-QO)XGbob#cy4mG6RfgTB z8>?^A?T5Fiy2~A^4ZA~cR^OrT5ARSjle=UPewTU{-z7Y{OCwG0@%)8*G^_X?l|H&h z=S}WYefWK9U2>oLKfX_+O{-|?*ecptQbi9RSCNicH6fy!($`eerYF_((Ch(qjC?@; zYah^@+6Q#GYYnxEs-a=)YG^@S4c+bbkUB>{q}cTjY3I|2^xOOqdBr@UWg8yR%V&?s z$>K51iG56U8y}P7i^nv-#}lfLdqVD;pU|3@Pw1azErrF`((%$-GOe$r$vt`QLP8yR zZ>^&}uj|OD_fwjZ^pqO5J*AMhPpQKC84XB&M(egeqqgs!(Nx>#^eyE%CG31o58pqh z5q)3K#k3dXvik)c`uKwS^?ym*GG3C!-j}rY^Gh-r_=;9$y&}W?uW0$#SJcVAo|fm- zli|U7TKT=6OdMa++Pv3fariZD`T3e`Wp8Mo{0+&DzM)gU-;kGhOO?vE6ny+G)&6}; ziD;lN>IUw2ZXoSO?`W~hJ2IX0j<%k9NA^wL(;3(IG<?c?syXwX5}JOXZ|)yx%Crxp zU-5xTntdc|&yRGZ;3EyW@R9Dd_(ZWoKGElypJ?)>Pt>N>XDasoOg4p|>FAZuG^F(x zx;N|##m@agpRawPiF#j2*Y7K>od1=qZhWQv`rpWP#5cOO@EeW3^^IP%`%W2w-|6q- z?^JN-JGJfjgI10FK^Dt?(2jdQ$f46uIvM<vJXidrYgIof$mkb682yVPR{rAegTE-D z^KWVh{Y`1Bf77RjzbVV)4}A&$L)j&K`}hxKn*F5@5q~Lp?O%Fb`<G(7{iDZG|0rbr zKf3w!A8pXrz>|I&FdD&q$Qc@#w@?EY_GqB-Ee$w*)<Al@MkpQ72#*6Ap+i<9crR{* ziTfI1-|a?t^`#MvJ2b{HyT+Ih)EK+78>4nfW9T1f441o&k@~GMR&{KGOZH9hZDbR4 z%WZ;T%bM`4sU}!+uL&-GZ-S2on&{-H2?T2*CQlPHmTRKykS4C**TknEnrLU(6a$=^ zA|RwGGV+^Z{)(n3JKPi(tD553&!+fis09NV&kh}}1y8va!iuzzc|;2Z)mkX}rG@QA z&2U224A)0D!y|b!ye(>mpGTUZ*@I@Bb!`S?<L2ltHAn9;&Cy@c9F8lSLmX`m=Lg&u z{hQ}>7`K3%)B=OXw1Bgs1*DZNV1Kj)`aWm@tKThPW~_~lk~Uh6(Z)ZyHa-?<qwa_{ zZdPlf{FgRwza>`4T5?}vOC-x%BB-b(q$4e1R^1X!f3?I5!&W%&)C!wJT47p#D@3kn z1v=ac9jjV#U9uG_I_Y4gqYhGobucJT2W^+@pzfd!cHYy0^1BW^4O*j(Lu=d{*&4+; ztr4}fH7pLa#>+dcvFU4T#B|U_S36zQ1nOc*mM(@Z)`jLiT^zini-ga*FlwiVi~aSG zJ3<fU8G5+7Ko8lw^<aEM59J^95Z$H?wEDKehT(1Cn%V}B=C(oJ4(`>y)&`pz+CXZp zkE_=D2=~!PLy|t^v-Qzzn?B}U(nrVF`dFpi7N$MhVy#zObd7I|;)1p?+T0e4E80Tm zMO#ePYKL##+hLr0JKT$Ihrv_YVfVUrFgo21lWW`IRipOsHfxXV&h4QywmlNm+}pjn zJxq?bM^;UHT>RZ0osBzSysQI`hIByl{0{J6-T})GcHnQVJah0{2Sj)1$a7FT;!!|H z7-n{a|H6(a*xeCFD!Cv0eMcDU8Nkcd02#v!P&D2E<+Ba&bgKchE*ZeQ-T*Ewct(n4 zCuDeZLP2aN6iw}ft?N7C(CJP%TiXd&8yVuZsUhye5Y=IZs8aH5!<B}(am0{6r-nH3 z!w|a-jIh?;2=juBAkQ*F^dckffi{B84I}7&Fv441V_dK?##$d^<RuxyXO=Ncwix5> zd1D-UVa(^LGlq2UjMi?QaV@el=1k=KC7pS`U1uDw>5Syxond0s1y>xqAa7I`bj|64 z^NYJ6ac>v2y4eL=K6HV*o(XDfOpxwlf~H9(STxfFW~C<BT492I&rPsj(-aQfOtIg^ z6#d4UVvEWYrmIY`@Q5jzRGA|6yD6$Vn89VB88(bCgI2m3qUV|6#C9`uykdr=*Je20 zqAPSPyCQgSSFDZhikFkRqSu<PNIcOMn`*k^$*-<3Fzkk*4&5LR>W0mk-Eeb3H~iSy z4V|xb1HJ8r(Jjr9ZDo!^4|A-EF~_dS<~Xs&92ZWQ<9ZFxgZ#yP?wz{hhJANj4(yK8 z8QpPUes}J>?~X-Rx<mE4J7QW`z_W)1EZr@j8D)W*2^QG1+5*##S|G5>0%qSW@Tz?e zo}JzUseV0RlhOmPX7@nJmL3Q=-vgS@dti4HON=(NL?c*Y{TNHQ=3C;?QcL9Sv*dGX ziPi5d(W|u;_V==a<Yk4Eu~xtoD;!y4g#jn5Q2M|MhCi)P(6J{z4(N$s|DK#t;NJPd zp2*qK6W1$x!u(lJWHs)EQzpI8O7wz%NG~kP>4lq%dZG31UU0wG3%PH4@$B~AxMk5B zzg>I7ETT6Csd^*4s5gHv?TtCNd!zVcZ<Og;<6v)V9QU$Dd8{=~Ot!}15^L-_W{nM1 z)>!n-8WY;tAg-?sh7RM|$cZ*+R$zn2>us>N+y+w~+Q9FZ4Gaxz@o<1Giv4UcCfOG4 zXW8Q7CR@nQ*uwIOEh_)mBHOSJI@<Ta-VuFx_Dmnt&hCSZ(mv2Q*9S9d`=Ir|KA2<F z7cCw7VoE??d{6C*_`<%pQ`#4Ft}o9H>5Iny`Xbz@ANJe#gLXhagrxSv#@YSwc5^@U zIol5@Px@iYAMW+<)E{l_`eTrPf9}=qj|DUPWADcPs65pl^$+_)<5z#^bsT`s{Rg1C z?*LdOvgy3MZUBr=41jL+0Q~tn05A0i;;PL+>>M%>g|Pz>J82+fs|TXx;eoh&o3jBQ z1|m|&4rW$7Bh<|f3&z^PO<{)*OYN{?j~#H$4v*^XAlI^oeph>J5cU`lY>(ra_HdnN zk272C;Zk9bL$&s>{%enwogC0?paaGacfhqo2lSrqfT?RaM{vvmmiHZy@!0`~bsh1W z+XWm4J96)-BQ`1=ac8L`8trj}<yA)vdF6;WO(#q+al#@eC#(zn&#Y1>?49L={TrRI zr`!o!A2^}-n-k{f%aCg=Lzt%wJb)QSDj7a4lkprI85UjT8Ah*U=&C89wu^*SjuHX_ zBs5KtuzQAt(d#ArJ<gBcmtg-{!sXTip;iJfT?JCY1U}>nBrg<rQ6@0@JkLF<73lv* zU|C1PkG_NeZ;o!p5`Ir0coh-m@8kT!HA35Zf;azopU?%^=>Syw0~+H2v+00X0|Xoa zVs8T(?*MrVXQ;b5Ln)k*J<=HoY0e0l<;-*aoze4zGqmqJ<Jm`N9Bt)-LJJp!IJ>|s zgy$<|xL{483xYSfK&RXVN2**9{n-W0TMxpf9)sZGG6;7<1|c?c5Iz(RLe8c^_<nK_ zGO7ll{?j0g)^SCJg)3~GT`@n{6%FaGaG&jpWgA@a{J1M@?ztlEgDZAuyWwRwHy8^y z3=MKaW{Mk@7r5cz8aLcH?1twz-FV)V8#J^yCt<=I+@ay;jxX^%Cw7uMDvR8)f3G{1 zUU5hIb9Z?Db4MqG!FbkZFt&OPMpEQpSjq?E;X=+-Y#R*O*}<r-8H~wa2g5|y1N(b; zz{A-CH%ECOB+Ua4W_V!KS`S=1>;dPS9@zHU18p@uk!kFS$^o9};p2(C7*Cv4dZOhL zPxx&2#Ef&EIPuUE@4tG&Sl0`KdUzoUUQmzp!r~M!Y@F_eUBzBFaDZL&!tNJd*!<6n z-{&EiY|FFIJ%+$Dd<g%18G>(fhM;2O5X?V51c7&kpk2cdTx~iOlR6JY-+@C><vkRt z=%FxH48^{ML*cn~C~lt`iqNW|c>IBHTX^%&O>cNOcw>*RHw@#vp-_3_-ePaqlzBsa z#v2!_y`lHX8^g7IFw4vbCmnq7-q(kp>jP5xAat=0vbXtQ#%Uict@1(12Oq3!J`5!$ z!?4tD7-skkLw58qgvy7377RnD(qVXaVi-=|8HSl}hrw6V7rI8ixX{-ZN>5+(3irjW zEMM-$^hNu1zSwri7r5?=OV54b|Hl_M+YX0s&*3=hJe+%ShogA>aA-~$j;IyGact*s z=v53ySj}*3`ZOG`TKK`j)DNL{ewgd+ha-`GoMH1rqq%-C-r$EmNBrPi=?AYDe(?F@ zhoNo#;cDfNf$&GyK!3DI^hf;!f1F$5kD_h<NIb=VcaQTXZ~bwo$q1x%8iDS%BXGlQ z1ouvkfKloQ9GE%+K1Cz&aOVh&J2wJvt4AQ|!w5Xr3P7-N04n+hz{Vp0^T!0>ZCU`& zg$=->l>vCPD*)Xp0uc2e04qNP;F?w-{ul+Kd*48K3=Txp=s@J924d#aKrCJnh~+y1 zvFuDB7TgcS)P_K$Hwi+BK@cSCAQ%h^LPJmxjwc48U_uc8n;{4-w*=wL@gQX13_`b; zLAdlg2uW>5qM5}=taKWQ-o7KTKWZeLa!2C8?2)itGZJg}jYR8<Ba!)VByNA?$C{18 z6r)kNX*&wWZle%BY7|x`@%;&-pt*PyY)eNW@YpD1R*u4)XQOz|%_!{93C004&c6%{ z#y+oLYz+-YQCcvjO$|oE@?dzD1;ea77@uwh<K)X=O#dAW54{jHHV?r8`w+wq4S{ZW z2zIB3z;{{*o-YqUPFV<=l!u_;RtTEC48g=-A^6;SG$On546}iw(aUQzrjHqo2Pvb` zd-7;xFBy%)rJS8PIvTdudB$1YXcT@OjXf>K;Fj?iG}w+oW7jdz3*rn-{1_N2#-QWe zG0<5%27mUB!OMy<xLh>`Ti=esWQ|Y+wGBmAi%`6B2u118P(+9EY_zmcR7?&<>XK0C zmxf};kx&f28j8D*LlN;Q6wjN6A;usK4||5ePlVyPZy3xY!!R{743DRUVc_yGOxYTS zE62j1cRdU~wS50`81`v}<FP?Fn)V8Zxd?~w4ae|^aD--rBW5aRb(V%BqBI;qN5bKL zB^)-7!lC~m9Pb*B#kqE4vD9KLA|1xUa>!V`7(Esx<HsUEJ(l~{$71u^vGCeE7SGOd zrswWhXuleZg+IrlL#qfZ>KuWVwh>S|N8qJj1bm_*P?i}1t!bR|SsH;&n<Mb<Pz3s1 zia^qX2&{b@fy%!T_@x_(E@qLC`b8qZH4-rakw}Y)L{2uF9*NXtk%%shg#Y14I9-Z_ z@q<WwdlQK(e<HD}brj-EqR^{P6ka(;VT~W>f+C~vFFgtyCP%@2Q565K6ot%vQD}TF z3N!EU?6?<EnDLFD(<~aP2GOXpj0QPIW0hAlz6M9bGa(v_^P^EcGaAN4(HOZk8ncf? z<M5?u)Ky1A>rFJe{pM^@s~8M5jzLiG7>t&fcMJl?#K0pd1_Ko_FrFQQzeO>)zcq&6 z+ZfLE#=x^W2CZJl;Ns61Owx|U0K-^3wu;3x$5>c+#iD#vECR>HqAn*ENz-G|up}0V z8)H$sFBT)t#^U&`Saf?Di%FkiQQbHWHu`Z;nDPAYK5=O390zCLIAn*#VdMBXTvx>5 z^Q<`N7sa9HmN<w*aqv1Hhv9eG^EeFs!q3+n2ivyeV9<3Oe)Sp0{~j8Lox{dqQYd$c zB#lEm`8eE~F%EN<jl-Z#<M4jpI4nOi4$@72?vrsyeLoJ3{*A+Iop`h{j>r6-@o4E7 z54A@;-Uh}aFghLw(&N!?VmuP&#^cDUcxY{l$I!#^m~}oLXYRz~`_p(>e2T}gMhQsO zO+aDi1gz_ofW3|hIN_0iGl48B0msr3uuGkQ;=%+>FG@f{X#xfx;JJKf6VPxY0f!$a zK;4i4{7%4+7Kte9n8??)NQ7p8&O|vU!fjY0sz)bce0(B)WG6yBB@zGTCnCR?|F>yd zBEk+QqM{-ZJ#QzXpf(YY-zD<zONp4EorH58lhC|-5?uQwArDC?^-jXg;3RyHO+v@a zB=nh>1h+X!@GnY2$mS%B*_VXiQ%M+pEeS3Ul3@KRiF=-t@Tu{5T-6<qb;je7ZZ#f~ z-FRrYj_0rK@yHo79zEm7<8Ib?s3(nw+1&9sRx};~o5$nX-tkB)ACGTW_<2?1xu1JH z;y#VXoqyxu+$tIC4U*BMdoo7%O~ww9j6Yt<a1Tnx^vGnKNlwP^{A5^9Pe#bXWX@kD zW6joN96OMVo2QdecP$wW)yequf_+NH+keTZZOJnUJEq`pw-l_lO@UIDf<TWHSdB=* zx3CnPNJzn?>=a-U-!Du->GBi=ZAihNohc|jngZGR6x_I(f~ZF+cvqi-tgk8f+9(z2 zI;nVJkcv^}sW@$$3QJikW(-b6onI;(LQ_#Nj<a4FeBBgvDn`ys#r(yoI9rm+b68W+ z<v=P1ok~T-l~l;@rDASfDpob5V$+XQY}HIdscst98gdS-dm5(nN#p-tNQ2+tG}!v3 zq4}6JRL62IERFMGiZs|wPs8W=X((HnhOwK{_}^`5IB+x#qboQwR+)wc57N;6MH=>e zNQ3k{4JWnIL2c4;z$hKPEYh)}Pdb{&(h=vLj<de$FbPRVMszw(C8wihUOIdyr(<qm zI?gXm$DcLn=)El+Blo96eli_J7t^u-Ryr;{Oh@(0bUgo<j@Q3Accztr7kU|}G0ebK z^9&re$v}xi1||*S%$auv1_ouI+1L!+iqAk%20y0EfYI~}+?<zzX)7`?U_Gx}mVpTe zGGJ29b005ez~@#59@JzY_C*F>zt2G8&kQ_ol8G@onYi2`6Aq@CD7MOkM*mENN}1T} zo(V1AOazR|#L9?FJW9w!=gdruRPwc<re)&rT%HxVER%DAnXuZL3AeqO7=0`gN#`<= zdo2^{dzqN{gm3G4uH>goB>c`qaMLUdYMlj(j#<z$&B7DQEbQ;gxi+UPjBw>^1bAoR zK|mIkhjQL6HVc|5oO8?J`I8f}&}c>$O6GGWZbcR<*JdGdYZl(^$wKzgEc`gbw^#W7 z?JPt+%)*W5SrG5Cu=ZOPnrLJrym>bE>t&;Pr)<tl@wEr6vQgJJ8(p2UF=kLU77WS8 zX@9=nRY*2EL}kM<k)M~5jZ}FyrcBPpqFLEky^!;BMLg$nT{hNj%|_9lY|J^54dv-< z#9hjU_swirS7)O|9cS_Cv$6YQHYWVc#*oH2Xsw-tt8H>Hqf-u?&2sS3G6yAna^UHZ zgSW`RY!A-Z`R3qwP!4><a_}G~2QlMw@G3J0@d~~!!sHzOw^R-;FUW!83eMfF$$?fW zKW8UjC+I*9I-cO?o#SlYl^p!Ll>@g2IhazHgA?^RJkLJ|RzGquQX>}=o8@9->s*{` zpNl%<T>R{o%d<ptVcahlJsfjk?aXsHJ#x`|ST4*1bJ1x`E?Pw8;&Xg1s#9}uJSP_` zRk_HX%6Yxnx#+ww7xl|?c?M%H|GSLyf7^5Mac?e4kK|&^DZXyQ1<w0j%f;wBx%mAc z7c1&=c{Xk?D&FT})VEwb{gaC%%{;u<&O=I@Jk)p0LqwN6+%)HWU#~oD>zfCChdg9b z9xC1P&~s=W)P8xmJ~9uT!}1UloyW6adA(Gg6PlBUP$g&nCg-7iMjqbG%|qKId9Yi_ zvqRVBA$4;erftu|^1XT3bT|*YPv+s^InD}R=Gz;5{~qTHALe1j(>zSC&qLb#JdFIB z2Z!Hz=+HPH@0#V~tWG|bw9Q9!r+iqO<l~chKKAy^M_QkJ^s>vxV_7~Hxa0#K`FQ1> zk2(JN=rbxGS3~m=7nP4c<MJ^#IiJ6d^06t8UqhXb9aH#rW<EC0<*ec2eEvUj&Lb9c z4sk<1D!1fgz)sF9?&Iwr&d1=B`B-r_AN3dWVRxPLjJNY~sw$uJKlyNemXEypd~AQ0 z&l#J1=={uw{l9#KYRaK*A?M$Z<T%(?j%x;T)OD8QV^=x;_K-u%S`O`ga<sIUqq)SH zL>JB{y36ruh#Yr)<tPu3V{@<^v%=&^jFQ7+oE#?O<@l5)$C+$77RY%5@B}%`rpobj zh8*kW$Pu<sjt<M@xVTb|{53o~b)y{Dx5$ybLk@$zavV4)hyO9&M!6iyb8@u4BuCLT z&OqLhW6M1`tZU@h_Jr4aE=O^_9BtppG368Q^Eb{<{+8pk24AnEsRC15@SIg01)TI1 znAd@q4f$FgCJM;ADR8=n0?m3W;MqrkX#*7eZ%+ljNec9IQ6R)!f$3hHbM#T*j-LWQ z0u?X_;p}6W0zQ!nM8<L^GJ*4t$qLL#S71rD0!8_pp;YnhB)&h5AD^kfq&fV&1^oOa zyxt04e>K0(T7JC^3fwJKV0RhkEq5spwod`uLkj#kszAj_zW(7E1xB1#pxtGj4|`34 z!kauB_O1dys}$J!koT`vfu_$DD0`)V|686T`<^qLpB1qA&g=hDAoQPte@9nBt;Mrr zwK+$rql8f#C04gnqKknNMMj*HG*M!9SI$~mDEapbB_8)yVrU;F_Vic6z+Q=bCnfF+ zCG1={FX_fJXFZf~7^=jKVM;zHO1^HJ65~cGQ8rqMcVRq-Hd2X%7$w$?<Mk4iXqCcq zXw&(zEF~7_DsfD%M6F5*%}Gj_PvsnEfs(&xaV~R?5>w}MK6H^1>z69Aa|P!`S1EC# zM2S=D*hVEzmMU>%8}Hi=B{uKo{okj=tb<DA9#JCdxDrFkIZJv*3H=HsK3q`Z>SZO* zHdbQ74J86^E79Yg65pznI8&p<oX7lFof3x6m3Z({iIuPUx-JcT4VMo}T>8Z8d{v_V z56-CmQgWVF30Wf*>YAu9LyNPTEjSz6QiX)pocV0S+0eEs4D7&}Q3Dl1j8u5pS%pkf z75;WrVQP2IgIe-@-JUA6vgY+|`I;~Ncy8_h6+YUj5aY;MP?-vD#MiiV=KQ9s3KQK` zc<!Ns=MWV(d#ljYm$RFGDjXW2f^LusQKNW9ZwS9mC}%;#RVa$!eT(Aj$;7Jonl&nv zCGd6Hl2ouvQ6Vx-g%ue*mp4m=Cb>N8H=iF<aCTIs!odlg4V}cVKb4<5T?MZhDvX=O z`O!iZisy3fbv_^GLVnI-761RJ3K}bTX7EZC3|4dQv_u7qwJP*n&*x(!+sxbFqC)p= zDs<VdLi?S3+`Coyvq#0(fm7kZ0TnJBQen>#-rr+<j3@Zm%T@3=&DZxl%llBl+d0qK z+lwm9zpO&sRnFF4=W}+0GrBkVJly6S>|GVaeLn7Leys<5P9Lh^^O&DgtHQ-PKG)Aw z;0u-F%S#ou)T<EohR;_6U%T!dpO+7u+x?_M`DZ@HuPU_uuEOpgDg^xEEbVXJ=3f<T zG&pP6i1U0+IM1fZb8odc!`Ynkt}WD{mYl_G#aYwVoR8DxxwvgO52w#rzIL32Yp+H| zN6zgT@JwGr&dV9`HF!F6j<5^Q<~3F0lo`)E?xx0ibIwOvsG;t`*-cB%BKG9j$Gv#2 zu{CEBZ8&RZtH$8IoC)m5S=IrZ6&%R(jO}>NumjHqcH|kzPMjx{_;JCRKH{7m`1vks z%pb(ta^;+%yBe{BIiKpmxmHikNDkqA;832$>&-b(A2m#T)fhFLXY~4U{?(uJdLua3 z8OXWHAkIFHRO8?%&in=Q_C|9iat!A{Lpf6z#_Nakv5)2Bjo|G^@jB6*YmMP!jOE;6 z9OoFvaUM5bjgtwSVNB%XNaFK1p7X3JoKsEZ{Yv9&{-kpbG(!!M$=7hr;_PfT&nwR1 zEMu-3!}C}^pDQ`fKUVNDDS7s=iZi=vHTq28*~$|+r#y-GYcl5pr*Qs|J(|i{%xQd1 zrt^6%;LPX@o^L#p&&@2pZqaPcW)^aOat`k^yE2!voAdbnoX_vu0{;7joN->nxkYwm zF|WUbGr&uEf0pq%TF&nyD__Bx)FOVpm3+LbIOoVttmZsvG4FE;&qrRPMl~y5%jaPo zXEfLIxnt`#@coVaI-B_K+2YOo{8G-_ZsF^evaGHAdfU{fVe`t=7_^-~KWyy|J_kEF zBgsm4ah7;DXC&FCJ-q&2-dDDAAD@@~yd5^}03YK){=BldLwv3e^R^j|@OD|&Q9fVC zIRDASaeiM|{0V-2Ht!^7Vas_wGjlt|*I8nbr#ain<Y#za&+=!A8J*+TWW6dlKgt}= zbKaP_T;R_S8+?(ouFT^S-!k{hobzVRS2!EY?5=V?m-W2H$Hxq>^R}5*C2xnlW05yF zd&&mi<a{dYaf`13#WZiLk<K2nA$K?<%S`WbmYaQK!T0#{#(Lc6%q#oA0;~8l%#5n} zbIEF$c);_h*)JAc!`onOA98k>U1a8uc&0bI%WNO>d1W=M{}bL8t6_a>)tJieGOIc@ z^4TS3^i+)mc8E25#@TSThP`DD&-rVbU11$x@b?t9nZ09nFF9k*PP68(cxE`8$8NEX z^}L^K1*>MpuQ?~ridYphc*Ea=*g|%VwS3FxpG{&%*;i)U!1K^q3A@L1-|>6H<ZKsv z&Wzsk=ZZ~Y``Jro_<{F@DcN@RkhT8E=a40_73@6w!n%Iq^_iS)WR>hUv-r%PW0uF( zvP<j}Gy1}xbr#R&vVE+YX?*1@IP+rT*?hK_-DN+S@i+e7%fi_NR>I2J6Q=Q<zs?x3 zP$p-~*nW1Cy=Sd{@Ye}*W8o~HEoM8|MOMfDuns@@yfF_pmgTa!Y$H3)Zn4*_(Jy|F zSZ_9njbuq|0$ap3v!jf2hy1$(zaOmmZ$5rz&A|LvB+Fn^*kZPU?PurMZT5_PW=;O^ z&kSb9Y#A|c7R=&UCY!|OvLd#b?PKNa3cJsqviIy4)B4NT&1S~Tg7sxG=FWUsFpFeK zEQ_hwbT*GIV{2F`+r<vCa(01TXZP46_ME+CpV=?g_#dAG)|$0vM$C-$VAiZ3b6|qG zGEe5i{Mkr0hK*%0ES@E^be7HXnTkzf)7VTlhs|e;*)mqdirHGWfo*16*><**?P2@b zL3V^4V<*`uc7~l}7uY3sg<WHn>;}8V?y!68KC5OA*hBV+Jz=%1jy+?~*$eiPy<+w3 zHG9L}vIh2!{U>Ap;lF+4+fVHCfBV9>U;o=TzWtBy|Lq6g{>RV%%`aa5AHR9|fBfO) z|J`4{|NrD4KmPy5|7~Xf|KIgA{y+Vhpw`gP=2vK>QNT+r|7&R;FSYuwrDeRN^IuCP zywv)?mNxT}?td-q<R!iTS~|!}ZT@S?GpgLP@IR|)c+S!+KYjWC{Np)ejCpg<8A;}P zo-;Dd4LoNk%uQVaTmoH!Tt<3F1(<t!7k2;8+TOFO`oDFbdc$+p{aI&c{n2$-m=AZ+ zbuV|FHDI1+)OF9OYhF>B3teVO^W0~(D)5;#;0)iN<ul9t%&c?EC)YM{E7WW}t75rJ z`S-?r&wbXtCZ~AOt=Bz%u-E^h?M>kGDysMK=|U+t#kTBA!LkYzOOmE-%GyE;El>)S ztxyPQnzn&730cY_O94@|RFTaUQBc3)0;q_Jpanrt*+di&6%qFZWCz*)&vWL?z4yKE zow?J`=l9QtFi*}q@64IA&6zXzeS7yWU!Svf-x0Ic+{LbI#|+1N?s{W5>9f~7Lh|fM zznpaUoDq-w^7S>pp1tPpbI@nbB~P8d@w|>-%w6;5ly$S#{OYBz&+T}0e#d?D_IYIN z+K0gMyfy3QPP%*U#jlSXd)cQbfVKNx&81lS;cLfS{rbD_zB~8gzmJ@^_K4B*CcQKF zuD=hTKk1>lBi=lG#4qN)yKe2Cm$3ibwVPeEZ0vhKNNipjJ8stNFU=aeXyit7*UlRU zG=BC*{{?m4zh4@==<u=l|G3#>K^QN1(JVqCjGOne^uYh|+RK=C*wD8QSvzJAFnrz) zb35*xw|2~j@a~aUqT4VGJ`x>AUOD&OyV2p?zs~D;bk5q7-<{uamn`r{;3dDn)%?5T z&ADq28$I{p``($mcFZT{uety5Nk5-=@jph+yXzmr=dIoMj(P9ib>P~OYthxr9`VSb zYd8BS6o4rY89jIH1z>d1tk-2xW5>_>JID(*1BvSz&;N}(WE^{NJ^bIe1!MRsS2OQr zOfqcfHZElMc^yB&LOwWa&ALf<V-j@aTHZomE-bg8+57zFyz%oo?w&R2#kn01K{*#s zSqB}iS-kUZbJuk5+&Fj5;Lfdc*POfa%vo)-PMLM`ti?YW1;)3-??^K{MZ+eHF%t$y zn+Z!dG!u>)WhS(2U?%)`n?G*#$QJ9+$$WD-|8IY`Kr;gGHpZgSKwArKW=HSJzR6un zUtBbD*t_qt*UV*|?SqpW8!tz6u$0M5`#U=ZS9RhIa8L9ZwijW|&*Y_@ONN&3ypTjr zJYv`}8yRz4S)XG_93g$WYhLFcllzyp54Kw}`5iHA9bB6Hp8NKW`&jy_GrM}GwdDF3 zQkt4u&1w+kT|#M|I?b#G!x?32Q?pr(sWVDbV{^;u4fB-d#+KIAh$~s2mc|*=R=+n- zX>FR(%zyUW_L)4`dDh_0D|^V%2KXH@>_LctQaE6n|9+NK`@`P+*}zPcSB=>ce@#p& zJ0E^TOJhngW|WzHRwfPFz=&ZJ@PGbXwbQPx7V-akDwIBEa$oi?EDi5s5T(QipMCr* z+7-<_h0;ePMgjw|U02((?!lpf&ZXK7Jktc)R`vET=^AK*$d~q>*|xlMFeSD3^>v@E zFPNQ&de~)W*T42fVX^$RWUuBa6Z1b!EiFw=Q>QdfX~|P3PHbvyoHlLR#EGp_Tbf(Z zPMmmZvh+g>%%d~^dhFj$YB2xgeuAI8{qk>GZ#PAf|4GK7UuMI6>4^^wGoMAjfh%D| z_*u4@F*D7$1GS&nG3nj-?QNsJvmfb~vt_>0IBc|e3jG?|En~mL*fY(MGbd;2k^!jL zsm~;4C4Tus{me8o*X8Yu^i8nmeFuH+eZlrS2(*dj$Wx2`E(H4>FDK^Duh@RHgo)$O zudv=*@xt&|6LZ@ew%@MkH**};o3n3_Ob?dY{AOal@V4zo>6DFk4ElWyecpN3_S?!c z-dh;pIc)j=9L{au#+b74y20Pe=yU2Q+iy?Lc%R3-Ta9iow<Y26_C>#S==0VX+mEra zY`w1_l0C6;gL!aE+mGH+#@{jE?-lf!x2^3*Uo9K&C9Jo7LW4PG`|9z|MW07@u>B@` z#=9Hq_}oqn=9FD+Km1wBUn}_QN1w0lZu@QT8E+!^`^_E==G95z@mermvS)+Ye=pl_ zN6&csAt+wa*kB%>YWp!tmC5h>2=fio8q81jxBZrR#``k(`|*JdX6bC(4}X@9w;2S{ zgFY7>Z2Q4|OZD*#`W<>mgPC+_c)Z2vHx+$8ak%Z5+H)>SV+zxPeizPfFyCEZ`yI%6 zP2<dbTxP!`!T7wR8_cH{+I|cu(yuTc=XvHh+lTMt&&+Z4;~|`wH_&f`<85E4$M!3X z$K7-%?E@%3zVRlZ-}H*{IPbBM<F%vT%8K!*r#0wvU9n$oUnA3;_fGWrS+QSXy$F-$ zZ|L({v0uq}o1f5NcEB%xeDb3{4nUvdi~UN*8$zE8i~UOYyAFMBF7_)K??Lo=ve>UM z9{GDs`*0on@#%N$q6V`qe);2DFYRT9_K}YGpKrWb=r_M&JnHxK$nh>fzcm%(alJR9 z&t1iSCGvY3eg0MKSCAk1+vvmwvmJi<lgg!JynWE;kYc~Wc(lJx?IQ!?e?IvQq2GlS z<8fcP4t;)D>{r6ylj!r8V!smpMj&6>6u<llt+xq%_AB-)<T<pLleCWvi2uzTH*;n_ zw<n$bIwJaUzdgOKAL3tOUiRya=*M{n>iU)Q_kqZM7f1G66WQ;|$bO%V>~}+CzpqF3 z`%XkZ>f?uX{p$5bef+qtU%5W+i|qGsWWUEF`#oLK4+oCDX3sfz*0F~lbNIXi_udiz zJ81qfJJu2x96tMqS@Y*C+;Jks@dAD?!|xGh7|T@VpuHFK0N&Nz)w6tYch?eowpxsX z)0F1L$1QAbY--Gr&zjb<_~_2=&h~-M#kOZ>PsilmC8wFa&A#K2JD5kzrWp0bMJ8?M zcXjml4)iV?oVeT3yH8xuH`ukZ>m1BB@gSMEvtM}HYPd12<`ChDeDUWn{4#N$iQhZY zS61us4>R{J?QHAn=^8}pzW?~&A<7LitGZB}n>BtOG8_Aj7Ww;7rfBjr9`yakZvs5b zbgXFa>FMkqkS^rg{_KcKpX<`!KG-QQuSiGO(QKB!yt4hQwk2JIX|JwaudUKvJ-sWt zdfL0wo|~9C;}@XkZf-{KGRn*ze=7dYjosB#_m0NGJ67QDF_>pi=>0efbM@Shb{5L6 zW)pMbc*fHoLLA@2?>6|IU^W?-jU*l2{|+3FlIHmFGx0YCx?mUtx;Y4QL7>nU3`>Ou zNsd1<C5s5Q0_lX5lo!qfymD&#N>LzuAD3chfUweq4>t?Ozlc{js{5f`@MkoB4;N(2 ze@2+qw3X-4a_KLlorLyvw9RPWKsycX|IqG__D!@i(Y}TD1+>?}{$>^IZ#h)N`tI>) zDL(sCu)l%M!J)pkmF+$4%TcJPGsMjBw#DjZjpta~%0Pz<+Z=_MN@Ltg-qww`QLAuV zRA7b`4U{AE@VL2j;m8dIquo4jSYD&uL?-LOWYmN)M-Q8b&Dd|q&e%?r-f!bw<%Zpd z*UJr?Bd`c{l#K9JIznci)-}$;>y*_j={KkbB#XQcq$NV$U>N29N%7<rSs<|Q89(ej za0RH@+y-5KAHUUZK=ZC~gUq;V+~8F7qr?^rOWh!6&N*?@4JZuTxy%i?Q2T1p4a|#p z=@I<8AKE8>D8G9I8S?|!Gwtg~Xm>&T7qt7Ky$kJpwD+JTYxkl(8|_cgUV`>MwAZ42 z4DG{ce~tDjv_C`pH?%)T`wz6gK>Iw}2hhHN_Cd5Sp?wJL|Ij{;b~O0<1KOR@K8>~+ z?H|#$qJ0MK!DydFI~Oha<2c^{-ml<)4}wnryA!`ZfWGWcssF87(jW4@Eg{lb;}6Fi zl$9~Jz#2zY``%{qHaZqFa$|17-wkEHN7tm%jJe%x5BH>1XB);QxEtDELh3Mc#!!2A z*WlUGgOyO~1c!S0`zFEs-+Wn2ogq_^sE?xa`Wo^~ysyTP=Yn9(tj3UO@RlrwyqU&x zzJ0+k$GeNkG-UTfUGawr{8B;2d<43sye~t$1KMlR&OrNdv|P$3&~p7(pgjfc)o4G0 z_8PRjFZvYP>(PD=?f230{j`<yp~rm-wz3cCjQ@@Jz1?Rk%oW;7O@;Zw#&|3DWGXKU z+Z$J#$tFdUD5`(+RQ*ekIkh=CvRkI}O*|X9HN9*jrzhk$@`=KB-T!nWr#xyD-wHyB z;%BC0QT*0WJWYh;1;c8%ruLEH;e`|M>wYMI{*1=2+mpWpeNm|YhnB1O8d}DtZ=&51 z?M-M|;=LIyON+OlCBNT7OFiF!y7T@8J#UT)Pz^O>&{7Kar!*#%XNH+($3YG@D2$U) zMvmSZu3NK%u*3W`YP_}KcrzSU=F%;@!!SI&4}FX|6+6uS<DZr7N74c@C7RaHWrF=S z<lr_{>uQu2SK`Gv^5X3qa)Y!l4j?`5?p)H{+i|+|;_m;t^g4P24gr(IPe+$5fEk4~ z-3>->gWY;ZGe4Efw}HlNu=>eSBgTvzJ!<rb9UAr+HGIs-WRr9%nWVe7XSqy7*2iEx zln`a?O(Bq(^7rwG#CwQv(#dJQtRVh{{mn`8h9if$Hyn!l!U^&QU9iov$=V;}4U-_t zBgSu=<Mt-JII3a92WO5-#*7#_X8I-+^(=HAX6&2q1>Scg-`yl$`4--Q*M|D~`a1_~ zm&3r&OzE;jR&*E`n!5qta<DMN;Siy+@mA`1T+O{0E#JA0^V!mQ3*mhG0_S5!U;H?@ z9~WZ&SIoqbXEKxVFpmusKV9X_ZYJ~ZRxZ|m$vZ7`Wnz6Z#Mx^qh5%=8N|*U@V%<$- zK2bVXiuK)`Sj#xSKE(Owt2w`3x-2S}>BI7(N2XuNah6y3Ep)7r9~x-bbJWN&8*K=u z+Gsqjbz|DM>62wM(tL<l4Y=>4bsY**d`tdLgp(RaVlH%MuJhcq^JZdg6LZ$4lkYQX z_=qjT(=U<{-(No60rFyNoiXe14_B@2PxAh4;@0*n>AbsiF0QRau-8{j{@u{ZzM?NO z!0eF|+;^d!5g*>NVfLs|W5$jiwZVu@5fev4dC3Nl<Mv~z!P{js=ub7+%*#*nfpnGM zl)qPqNNW-_YH(Y5acsSz{RCs|FE8#Paq=gKG=1{-mvK_xTHa6-Z5W9sONR?&YDQu= zHJ5c9Qozm7=c`!Kjrjc<e!pJ${RaNd|9%sH=YMa;-}&EL@i)&zeHgdoM>C4c@lu*m zNHV}&U@i|<`ole%KL_KNSDgI0akyE{ef#TZDPcSuBDvwsXm`NhCt=Uu1MPS4_i1Qv zMf+j2-$#1`+8?0(DcU>HayR`E+9%Q8i<bMzI<(K|->;y(AAb*rM)>+RX!-XpXdgg3 z6D=N)Sba9yU!naZ+TWnP5$%&`pFsNuv>Sr=XVH#9`)9QKp#2Bh)6l+vme;(mp#3@8 zH_$$e_J3&cYu-V-3j*>6Sl8ibN247=+ko~Qv}4d-k9I6toUP2}Xj>3$wnV!Y?bc|o zLAwpw=h03;%dKe#v>!veE86?f?t%6}w3E<|gxT+fb|17;(bB=Eqdi*x9zZ({e}6&g z*Q3Ri?COWn&OpoHv@hCmuseJ#a`l#I4@7$|+Bs-1LVGaUOVJ*J_Ty;hqNQCPiuP8t zSnKNB(auME585NpK7@7w+9%K+h4xQqk4F0+w8x@-9ql5t%;{(cFF=1QA(QEa-0wxm zA;D{G?}V+|pF-}}G1x8ML=#QRf%&BG2!vvu1ZjoF{AuLPI0^m-zZ(u4Wm@t3Rs8Na zd=xBq6s&ZVc^ki5j2LD5@p}(`e}~_rAnIlKU4`GV2pV+VVWwwj<r0)LnKVicC=*;Z za&L3sNXCD<@J%ocmT6eC!#JR{_b*2=)~1;@jr+^U?}7dbe#c@Hn2Fz8@Vf`Bc{YB( zi{A}K3^Uu~_Z<8_fZspk7mrVw9{iq<U(UwN%>Ha#8><e*i_A%Plvf`ac?I^N$B;q( z7u|M10p%0;-C+25vkM+{xCXy}#qYcLJ!wP(GWQ0vZp1j#I&x#PVC1%v$IOy(dOFW+ z<1qnqA2@y{Nl+4=nZjE4AKxRgW|zUvm3`f=q{@idDBX4umbou1m%lf_V`3+cC#0VF z8&|X0*o;Z-0&gz-Io538Ud5A6Q(B?A8p8A<p`}QeQY17M2+cDJgr+(|ah9gypiMj) z<Qbb@_<I`WD3oY7)$<w+altS(#Bm@V2?7mm!7v&cE4ed4q0Z3F>C7JK<V@EHzjHtI zGyZhocW0%)1OKEp-$lDM+F>Kj>fO-}N4qE5k!Yu*9fh_X?O3$S(QbnFlV~?Z`+2m; zWLJL~?dE8|fp!bDJmY^I?d@pqM|&??Tw1Jt2<=X2e~ETyw9la31?{V7*`G%v_J<dk zz0i(E3%gpKplwFG30l6so&LQqTE6cfr5}NIAN;)#EshtfPe8jL+LO@kkM?A=2cTVw z7H5mqE6~nD`%$#B(eiPSIcUFumg9a0E$90Y+9S~3hxSOc528H^?XS@ujrLz?7or`D zpl}S@Ezur}c6+qPp`C=5<Gmj($7@A<GTQyno`Uuer5}xU3I1M&7XGvP9JJkNKZ3Ro z?I+L<p#2ouRcOD2_H48aM(3c#9xLPj1ns%_`)6p+L;D!o^U*$y_5!s3M7tX8i)b%I zi#^X=gmxHggM4C-lW{gh`%(Ojz07<DE%q>Z9ebC&z9-ttL2p8P1zPL{=1R1^Xs<%M z3N6Pw4=vYyDO!$m8QRaG{TSLWphca?T#pv@1#<)1`_b}!52NM#ev9@-w0}|h-<19$ z+HZjl8#O;b3tKTiLOUJpI<(NexeM)Lv>b;q>0Y#F=--f$xetFs2J-p~u)kIq#m<O6 z2e=4h+ExrLTh_LuxA*k6w$`Dhwl;gJM}f)H3s-QRZFq?Etm$oy14B!i%r5N7Bu{?Y zR-M7hQO{s^*T7&~TT4q{b6el^wq~;{y3MQU*4^2&d~ijv-}}(7wWeRqa2?az2HN_j zwKbaE(Q#qcQPxpA<WOT<n-mSWn4_|;V6nDiHt3e<nG;UN{$#w6W4}0CK`PDB@@qy~ zU6?ZCW~bVha;j=+Nf#F-|0$93xBd33kyVZSIc;AP#7{lV@b`0zXfl*sKu-n9O%ciE zB<)pJ6RP9|$yr;QBE0Qe!&|Ms(?!Hu`4rqP73NCE@aoSleM!bgz-XGpm8wk|D;!wS z+dnAktWr}m)D*KqJ9)_1(rKf-6OkcK1&+aL-{g=ULGz_@?Qr;bzoitKC7K1oPv4Zb z?nVq7D^?r#LhExQGCl_UNz82uW~K(_W;Rs}x7P2bx0QKEj`uk=Bh-3FHU#II8R(fZ z74PGe@)W-+n>?!I%420dMU)tjr4@Nobx0I}c_rB-x|m-hpPE={1=$MLW0c#X%B>VQ zJ5m;lYGy9eA*XIc&r`FW-Wb%>)Yj46J}}VaQw|5)1B2zZ$81ANqj)w<xlfXL?pT4? zMfGrpq0n;Cvu-1B{kX!I4aTw7T(WWGraUwgR?)e{-lu{!I>xd7eopb$LMnG6j!1<b zQ8Qw>LYvk@2j1MG72%;=J#KNQWULe|hB+O?wX9Q2YkdSi#q5ApmfBA?Xw(ifL(L-) zsYO@J6XR{x<{qJ7Z57Me$!4f$I=yGt;uz&BAkVahfMiu#ybs&4LZa-m7y2CTS7_dM znbO<Tx>QZ|T_e?HgKZ!ttGt?I=^?>76<FU2C5q{g)$v9$TE?3LGclFL8|mlOsL!dU z!QH5X!?MAPPL&rdx5&oQ7$ws)Nvu?k9fQhg&n7K~Gbc)$q*N(~c@`xZ=!dv~OwpR} zku~#{1+y7A6_Ufs4UaRghYfS>*4}0ZcyPRWwb|_PPjVBjgYx7-ghX?zieJp*xbj)q zLPD0)EGwUcHyq@D1A>Pr-ku|(;uzV8TC!z8PNbz3hMK7(+>&Wuj9ao_c{KH9!cf26 z8Y(2!igJV05U7UZ{Zh?4Fr{F9s#?FzfqD$2l};ZmetU!or&n0K4WFSvE8&xs8=qk9 z600I6r&<r^rR?khKClE4iv+{^5&%LFr;L`D-Sk5_S~gpKte}2`5oQ_T9h>sBKIgB% z*|Lu972zICrq?4pOi2S{mD1c<BoOPZR2c1}L~Z9TRhK)@g!X~j*(wB$DyF!sM_uGO zRP10CbbVc(%d?&r5E-|emRQ@gBQp3^?P45~VLWhfvEp;lG~iiWyWg=m6I0V_Z{bwr zDbzEa%cH0Apzau4kC;MH#uNqmc>0O9W?L$)QVxeKwR(5b>d5w#y8KL{3*CceP^C4R zb@X9>x;yMgDaqw@$JFpz$mvpMBMw~Y^d8l7&Gp+3RZmtJ84syprKapcH=7DerO-~S z=~m0J>la-=P_E1C2Qnq48PJn;Lu#J91tNvGhRaYYlKqscIL~x;7mBv&^yNArV;;qE z^oWg%XIzS)Y9C_1^;OT5m=nJW&1M>*a;jK0t*O+B-8!mN>9)9F*)^StR#d4Tzl-n{ zuX@%a8N)#bfiqH{*4?W08I_s2nQ0<{T}{l?*>fP(wr)pVd6XDYr(^8lRCKaX)|}1d zQ32WD-W630!0AO)Q0|A3&K7xKb#uk|C5J4PC10TV1{}gk$XZN5ZK7T$uBiHzU4qR~ zLY1M61@anFXUapl2FRUP&yl8X%M}qplSkP&<#?i%8z7(@UGI8S9dJT~iCPZ|DAS6Z z<`L&X&X7WCOqq?y*&Lf5ZE-rEimM-SK*GU;GTl0=L|~b*=jYG@nW1oCkE=DuB&+$k z0!fp|(h0qCL!>3qbwWkHbVMq=dgJ4e<r*MYUbU^)erAgcbhXd}D<bqM@v@D0wnB%b z$U^spk^#8;!hkcWXuWQ3)0)b-Mv+rFivmfq^;`1fQ%>21VY-m$>csRmTOpt;hmZGg z3R@tF@_IXJ=(wMb$JkmebX&6yUH<9ft!#sLdTGz~h#a;q5VdbHbkNuXi$Xm@o@em* zSNTODb0Ll$tpFS8LiXtRsE>5YASD!;1K8t!L_rSg$co^V=WyQG1uJ*yaM5zHwa4mH zHK+Dyh%Zscfj!;I*5(eu-9|)hvzD+64mE3qtO+ykpGA-Iy9s=C<XO$>iQl8)Cc|rs zz)`n$l#oNG+|fyTGVaRDD>F0*o>$Ycwo+h&AbVD&X%HbFUGOT)YGFxWE^3QIP_(CJ z{i;Q4oh(p&pj@Q3w;qx%%RQ7qN;g>EbJMY7=oV6<ATI;!cNjMWcd1aW;S^+pbH&38 z;2#e!P`+*JBj2*8mQvP(4>s5dxxG|rht;k1&`!jYj+CGqHR7tv#=~+&xGG>cHqd_g z&;jKe=xOiE@=o0%&Q%%#cx6dZTke97Jm~D}A;gx-VjN}Y3fjTCjO)m~r$X2>+`VFT zL=m556|8dqQ*qj|O=z#`NT)AXHCJ1C)NILazDl)LqhiZbS@4(TF-8QOL->`B<SMY& zNsMCwjPj~1v8cSVhb1bt>k4_Hz?U&wy)lb#*6$Wnk1V%bJ>;UI%3iZH3N3h10aenw zOVz^{*2ns?$1g&qJGzQ1-39b%W$7YMNIhB4c*#W6{T!d=ir@-7+9S^qz8&jn?6*EP z&7-bIp&TksMs^TdPv8h4F2_O`eK??Us~}F!-Mrd?*powsjt%MD9wl&$C?%BD9;kY* zD<%-~k%RSd5?eEi*FxD*A5QC@;|LvIB$hB@#Dq>hsz&t$&m`%HR8Qzcq3S8C5Ts+2 zI~MtfP@IeOmCr|MIJDJ(7=^}%SUYBE=yXyKc!h|_)!iz0Kz9RC?L98GhI*!R({d{d zmpKvoQgyB)&Zcb@BVvE#BL^Pm<`SvOs-2BPc+|6gPHPJboU$q$y839SkSZR)n??Ft zus)jhj0%UGJ6;K8r<!!W2>nnA<t|J<V${PCO4Y*`XqmCj-6Ho8aZ9&-<5X!6l>wF8 zoy~25mHQP-XViJ9V>YD6_&FQZ6DaB9Bqk3f_|#(y2EivJbcFSZ50q?kqygH#9_3pr z4jdtIDr5x9N_drdBzKk2u_zmk`U&l9PCx4xK)7D}AW|UGQ*G3)SMd?IfI39HFWBpj z3Sm#ts$Z$XocUM!2{(yg`OZxf=OY|0rVQDPf3GH2hKxuqXe}NkaMEyzp)egIP4M9e z(U{e2z&3^;oAkUK+}d47kFJ`c>WejtDBJYiEZmqX_d0F}>mf87B&#<@4jZ9Os?4j+ zIG5rORAiNcc=V%0Diy?zF?GlqJxnRzE!Wc|%RbReZ93jV*OZbU@Jf&#x+trm)_r2e zMoIRJQjpi(I6_Q4u|`g|u2<!BE=vjQ9pZHEG#V;Fq#f78%3FNeEIW}>L5`8o4Wue4 z;s!G98FP4b;<dFrk2CSgklGI2up`(p38F7m$=w~HLYpynOpX`c?rOO&jf)(Fj$5f@ za>b6J+a(cg`N#aIM-D;%Ij_=xI0n^IRnBw^wB<~Xdfa_srFyC!qpY2cstlcSxng%- zt5&5q#6?_qxS8s+UiZrSn7S=yMylHSTZ}@hPH1`I#$3q4nrs^E)w<o`0?C;KFD7xJ z+$^1k5(%AO($Ut(aBaDfLx-*l)vtW%2$v8S2<&u>RROWUYSS-#2;M-ZY|#}$qH!a7 zRTUQ)nVqhWCEJQ)ec03W#f!`q%|lMC%D35G#66hr(vc493W0%r!U|M(9pA?esUABI zg;rHkaQ>Io3q$L548+OMS1%MrSU0VTq|Eg=SuVjWJ|Dm<(?)m4NSDg>t;^FyVH~tP zX!4cNu{oQlD$T<h`D_DKP*rcttH63h@TmzMIbH>J%s`r}LMf{q>SPpa;4C0wk<%LY z`30eUo|;O}b)k$pWoms~-_|XCx-HAPYxt>noC3nY;}r3NulN=SI~;>(;8H`yV6(MA zXs{~anT9F|rFB_PYBhBIk<Pt7fyCAueJY4eUF|4bO1M(PfW&7o>bDqCEaee=h(g~^ zorWi(EV8H?>(aLDM>z)qomB`=J6vxldSyMU!;d&wD3)a_inD0D7LTCGJuNwS2%Ty@ zziej~Zr8`t$xT!#uSH9FQA*%ZC6pBoxzXZ9R{e2Ih{gGBwesC5F?bcEBYJe@h6n_7 zu2WP}sw;Ba3}sh6REB?U`>d93{FBh~bxV!-N2x>4Jr;XYVIg^>Jl4k=$32G##8&H0 zJgm|2LXj}*8R2;J1&`=C7t1?=jYgg&N@ZaS5HX(RJg`cuR9>l8IY31@$LZ5@6{R3f z$BqHEtZ;dnDc5AYb8w6(1=*tTX<4FDOe*WO5K%aV+wn04kM7CbddSz#7ufN|{;4#N zHtp#plnJCGl*^rC(^zu{f@(3@L?u)qmyMZ+9XegG=$-al53yB$DG0RWB4E{S#eQCG z#wmzHlq!fXL{)n8PG_q^l{)3vbh^N4-#T4HDZO_3a!cWS)Mls{kWEMr4cIkOIw;8N zMr4`suxbP35bs65)tQqo>+bFCmv8iKk?#Q>kbwf3nK%ezwnu{zPt|cN;s~XzNSIev z*x>_ZyiV5+RA@kKPQGQ;^gI)FbC3x)M}%tJcA1L`b*Jo%ml#cPM30y8&SE0gy?2>l z@GXb@HfO8FfT@cX8GTE&$l3i<IKfc(A?r@(;Ax}I<kIcj@>}ji<S<Idyd&aM_~+LN zMIT(Uvy^smwFcXTJ{t-qR*&vhEA#*ce3lRRlnQccQ}bC(PLMQ+;DZ=ClE)y(%XS#z zqT<?5IIA&d4FNw<O_dirWD!(C$hy-J$m2OhMyzBxM!+PUV13TY?Qv5KaY149nCymj z6c>znffbWlazw8_Yz*|KcTLmmT3HM$^*;_yCIZqDfivz$c_BM;{r)mko~OdP@-LOU zspF&aT+xavwuofZWkS`*4-OcoF7M{aAv{{Jdh|Mu6O21%gvyEBZWy`4;UzyJ6}u?2 z^|}p3Ex_k4oXn$0cdE&qB#TL`D<IqQ4pmnAA&>fQUZcnN#v+WlOr<KzWWQ3SxB&vD zrh>6qw>Oh<qGq1PT)J8qD{Wbg8q9Sr=p{caH5fACl+h~r>dYQ>as@uWjB+>k6hyUB zqMpiwsavz*`YYw{a;JddFj}q*)LzJcu&S4G#LwpXW1zh>(V61ZT#~0b3*bxJV7{E= z)Jz~sukr8N@39hZvC%EG^IEU6AICl@8?MBmho*X;;M2LdW^c4hnRn$2uM0W}a2pF& z4jn^OOI6MVwYZ{(->333`()2iJf7tC-GD7ph*AZNQeVUq3vN8_V%2)KpBeW$RjMO~ z`1+XO=AvVI*XU#z2*I|<><@x9Y{WSdXY*)<FZq<|wqEaQ@RTrDO{LSy!WSCwr7UuV zmY0qhGVgS>az!|6u2!ZiU3e=<naZjvNco<WM`)26b~(FG{Ctg$5J*&UhhO#`6M05x z`hl<`!gh)d9XQ=o^@)S>K)VmcnRKRdjgbcq;a#m;6i;L{dvAnH9mMT^{$=IIq{jTg zuVzq>FOf5!GRX^-8Bm3laCMcBE=Sv_3~Hj7vU8`t5T!BBRIV|;!Xdm%%A{*OClE)} z9k@qCdJenN4E$j|KRrbsn4Y39`ErT;2tLKSZ7mRK#PVqX)Yy_NjVNTdNaB?ZN;MQb z(g91IkqhAn-u1d=@qtB(&>Q+vqvx5i+z6bH`Pt3SM%`9b;E{`PI<6paYlXuRrG>{M z{EG3O(YWy7*Gkxtsje!uQvFfta`x(tZ>g}kC38sci8qs|Pb+S+iX9ot<g*O4fkj@k z%+E&s`J-vg3Oq5A-}DlEKtg%)X_dmEUcAPwIf)aZ-!5|<tD}QtrR5&LnJ7VT7|e;q znzi@&@=Vkbg_mhIRp!+GZ^FutNagvXWet~p=?8qOtkR=QQe%NABk_y}O`3fuKBOJF z>VRwNcH#=j0o5RgNdC%41wto06{P+Xjy_AUn|JO|Dknu&XxrLqM~K|zxB?0<c=@DD zDBBEVZ9Z+f!K*aGeo>lXM?R=hA;>28@MMJF`OjLMjAl?BP+4~NmoT80l%dG@7FEZF zR>-_x_~n_IyeY<C$ON_GjfA=|30)MFzc!Qa8L4QS(N*W*F-2*SR9Rr5UILMq5}?K+ zvi7J_w(?QxM|{r0uSy%P1C}U(i)jbN>kUUv540O<%zvE9_vDbFO*x&reoGbsbG8Ui zWV+8NncGoI>R>kV+Jk<1l%y1B-@$??RN;;|<<Zn_S9YdSmAUhYcb{-VbTfGqE=?8O z_u1tnP)OnPBT_B?tSUDoBW7;MGNGmcihA;zkEF!%D1%S(UMHgn{2>y;PC1C#jmp0k zLUd|lR;5bZX(<q3)U54Igf|E(>k&b)*fXaRkCw?KwH%5+DVGK3%g<JL$r%xckI*-} z`Sfk$QdRQ65lTJCEihnlVi=NTP!e8sxi#@%Qk5ZC*RYNqvPp{8_F}B`D<MC3II23O zlvJ?;FXhLlzCw>Jzz3rK{S58r(Td&nLRl7MI4$=ave!Kv?>xkW%B?k{dA-*O$?ad& zF60hR{+{_U3yu<aDZj3Wy^UrWvnRQJUU^!%OSCD~9S5MJgw{)0%Lwe~&CRnFR)kb1 zC5HI=IN|1^WB5;A`N`Nb#J-IPoGnW5-Yu!*jy=B=s;f#3^y4_SdUA1BhzhM&)Ww;C z0noATLaH}cbfV_*rd(a_Zo{AR<;Mue#yndd?;^($nxrQeM#!^4H3YU15hBAzjJh~g zsdw=OYQdj3tABDPb_^JhHDmf~xfa|I-bH1rw`V1P>802+WNjH+1z|f)lH<Zl`SGJP zS$zk=u;J3?szjcS>`|8uU6tzchc3Pn43n8y>|B+8=ZfOh-sO7w!)AW+f===;Q754< z4L~x$uTLn9;I!(_Q-1rh=K}Y&5P{uWywIBsy035unP)mexzkieKPMLF$=)MbwtDMb zes$%CWH4M5s&vbNnCHBLu=9fyUdnS4rOAkY)Iv0F`&Frn{_gRvhzBI-$1W%FMzU=2 z)`vp%YZYMGR|vSdsDxm}Ivs;OLuPG*VIWZ`c_~wueXOVQio_l<V$uy7Z77L`r0rmg zSe0JnT)-Q#oLZPE@FBa<c|ccfr!V(S&PRb)dlDxUOE3LKfSRe;EwBK@wX)|I@++g@ zLoB%=*w33R>$YFM6Dbc>$5O1T*%hv-z);wiFv!__qOK@N*Gv?UpLGD%L1Q&%zsn)u z>Q<gM0|@z^>sN?|nd-_meG#<{BHq+X<t!(l7^S*<0KY@!M~u=Ohb*kCIEJ^<kqN*T z10BQuibZ}5dQgSBc;Qb;RjI4w35Wbl6peQ#w|;k|s&X~jWc{`T{gVkAt3T<>PZg=I zy8SvoM#KZi+;Kv&(cQIFJdl9p;eiByXjExun}Bz7cl^5}kv9+0$i^fvZk_tLGX=ZI zn+fGcrLL-7i+p-KhA(lDij5Ys<Fg1=!c+Fk<0_>Pe7Ha-Av@mqW0j;2DpO2eS9eNs z2cc>u+0YjucN@_C5h6b|ufY6wdo|0UbOQ@VOqa0h(WL(v#*DfCb_`ynVq|m*9usxq zvWSsx1YSL))@r}k(i_84QMhW2R}@aXuJ#cak}~6X)Pg^z)l41dQtqteH-g-{eg4qw zRSS9c=$SK9W5Ig^U3RI)I5rpQ4R5J9TouK;on)G@ACCwnxmF%Fx^jAdhL#_dit`7! z8cu_^5jfu1sUw_>%l7$8Ae6eRgDO|z5T%OY3tVr76sPB|4!qf?lOd0famr@=2%V3H z+`JslpY!J@j#M6Jj#7)wd#mN^4|kl(<5%TJbvP0qE}+AC;}I+yvPmxmLgt!wtPctK zA-oYSldj!^0#TQz4+MCI3+f>hsB&GYTz{sTpFTokly=PK!hSx7BmZ8F#VLjXuhii< zFLQ`Wjd28ataLYbOb^(K3Y+FuZUinqSNj-eqZ+*Cg4!Ysm>2$$u1Kyt(&l6_`wnOG zDU-u<i~z&pA>I(l!KsMQUY?FXTlQ{U>DE#H^fbMZTyQe)7|tD7OQ3-LTUyO*<jdbR zKWKz<=^uV^dyigZIYyftzSMX4LX0Y%k5y`n9Vr>FkEJrCB~mZmjNXZmXZdm;bCWId z9<uUdP`7?>tl^6q3q4{0cXW9|@OuxmpHH(CfyYm|XeuU<-ie0<G;4jVGAeQeYAoQ* z8tlr8ZS*mYL0yKb)~vVn@sJ;}<uJlfUH&~Rr!KpP2CLoa++JzNB_-s`uS`2emBu(m zsW0*c3b9gS>=@@`e%Eo6c~cMPIqn9|pLyhaM*0}}iZX*(wRj^W+4pITTzE8L=MC)t z;(RWIRcg$2^nT%bCd0CNHeHNE#40_?$2efLx~z|#R~ctnq+r;p%I-P2Uo8P`+Tp!> zxhC<9RHd4AitumTxe>}Y9ga;m^?u2Brb}BZ@w!+V!}#PhRpIxsnywL^Lndi0{_p(G zbLokS{6~%bN{aaS47R_3CgM~{C#AS6HRg|Xd?n(kYB_1y@<PN_AGZ|SnfC5|fI2rQ z)mGk5b&-`eLQg7)P_6Jo+ar$*?s0@Fckx{$$N&)~?;fnumX;$mRS{lW`GmXgQwa=) z?ykUJlFbd_mpi;FW4++*#Q|zUU+ouNh@>N)ILP&@(g?RLPXM#upb*%a?3&V&t~amK z6}ozrUzScxX>Fv^7s)<N!GB!HO<o^jL@6>`K`9!XIeg)j+<1(nl@}q_*Fu#t7=Py9 zf#Zy10`6lAUSX#)WL<z9`bAUIHFyTlMZ3dU=x~#AS&&;Q(W=uzZZ4m~xHLLjKv?ix zc^HAq3bE_@6}ZhYQSTkOp}l)^x?H<82Xb}wB6>%R4%`XIzv1Slrv5`YV{UGGk-w|T zgOgM60qe5@EvxBRXX82x!p<>F2?RGAk$qk2nq$wSE}NxPtAQq7_3()0*ZOSm76Cg* z=GortOqu6FDN<j~5B+IeZcLvOagYdIMm>)Jt*~D~uQ?`4wZgY>#Rp|uUdiXBhFbLk zgK4H$h-oaNiH4$WIvi*A3$SK9TBUa%)K$8KztV@wPbAhkoO4$^ngDU*(S&kobNC1Y zhEO96IPFE*dnJ&{%GC=hHbt<{rvoC5or6*V-b^M{K*g64=(Ik6aD@tg&XJpljuVgv zjI1oH$PK_1`Ar28Mn|Y~9QOh>;uT3wBh^QAorxTIH&o@E2ORbbp1O5Bs@E^eIt~L{ z3YW|+zfKm|YedX`mD*&(p8yor70Q(y7v*k8$<*=Z-clWAWqnksR|BcQ=-`yCe^E7E zsjlGNzY3TAygEq5<lom_{PXYLxj`t9z+OzbF;A!yC>2giAhT88Q<7-pIH()i%~|2u z<bWenS6*@D6cBd+<vD{o^$V|V$SM~klUz$+$K;Zk1^C>@6`=f*R)LluB2`k<RcN1e zT$KA&>Co;iQM$63U$w4cW1G9*_g*KZLb11ep_roiH>YO)y(mkB3ZGKWjajj1%7$q~ zoq=1+^*b<`@ae!>vEL5tepNcH<EMgcaz|T?i-9c5(5}4KK&iYUiibLLWK8AMK8GnU zZ|V3HKw!hRa<coC|B5NME}yRKibFfEo2t%4+zV7fAa0~qYriu$;96Fz)(=84AU9%F zMbt__zq*GuP_?=7834*Yu(NXAO#kWx;`sL~+=`&Q+FHkIXv_BU;9lTby(woaZ%%D8 z6j6Yd!-h@&DVYid(ycjp`6AuMWQSuE^Vj!sT*hdwG@ei;e4)<#Qvp;g$;#8lkI;VW z`bEl9pJlEyAvX*c>=m>MhI@9Uq;(>$GW6tth{=W%{|;1`H~5Hw4p=UCa$dJ|tEwpP zWA@0ES9yp_e!Y&M=BSS<*Re!xa15T1{dQVA2>J3Rt13ZmUE88x&PQqop}GQ0Q&jGt zTb0?lgQ|Z!&N0P#D|Vgon=@soT-{tQ_e-xqXNz~~dew$RE~pj1vDS|1QEk+5m(Or{ zwdEMDQaOWARnb&pl8c|!dM&$47CqQic{5I%ew8M0DF;-ScS)IOT?ks_O+~ZGs4l+| z){a@KE^_SEgX6@Th^Up*9U{ETolpH~NNzm3e3iO5VBM<d$9$pOZ5*rKwAIPh?oR$R zFzXkoRyu5~y4bgFVGNuu>-NSml^_M+RVzoQx&ooY3bFd0NNk&vQC(GOpf}3#g>rRq zXtEk`8;XTTRB{k<1=o-2@)~sJF{PQ08-sfETXF3m<jWiWQ*{NRAvvK8LJtav&D*c; z@<;jHWMnFod0GA2%-Z`PlXU@Jhx(M~iKgyZh4U&R9EYa5yw;vcntomCF&rb-?ObrE zl(c;Sz<ZogK?h?i=i=VwPq%WT#HnkFM-SwK1{As}6(=hD##yl}`)??CtvIg+8#jYj zqrSPUciDeo+Hb}6lX>G<D#3tvF%hASRbH6b(^cqR3r>?A!TjEp<Eq?m805*)L797$ zUCPbSOSuqBL#`9Y^V(}BQWtLnT@h^MTAxnkH{RMIX}{hfRUR&ehsJbsd$%_7Ul#`4 zyQ18UY;bAS!ne9ES0P6U-b+I-_We|h*MRd<v|-F|R<(Vr_IFWYz%95XQ)}LYH`QA8 zG2Y6*@>l>{O`kgQ=e~t`gFC(s=rIW2w#6Nz?k$cvsw<F;NEHnyUxwV+UB`vzfE7@J zysG!wJ;$KBylHJJwuq+*b+QT*qD0(5Ep%dZ{pv*O7Dc!8=h->NeXdrrZMjJ!!yY4U zY&>IMvV3MRI&*P&Kp>zn>kk22;u?4Yt1ibf3)gb2B#NcqBVz@btJ+q%PH92OF-5^f zWYK)unWgMgD}}|!5vYQgw3?#^zn1{QcjJZQc=i=Ep=h1;3h2`&%K@2CbUb>|PeZG8 z{iw=7<_imxa9QV9?)@~<!24xUGQ#`OF=q@VxrT-{yJM06;K|&_nB$m?<*IZtpZ!k% zbPuyL(Q<+%Liwx@17n4(C=wo{3J<?yx^x7tDkp@(<sXhZIz&ZO<Qf?jCt$dFn;QLT z>+c-sS~}E;e`N)hd1m?cLIx?Cz&>Ev4UfOFYpIx6@HDPm*4d6@pZ`Q}Ir}TRmah<( z4#oUhK7Upt2hns(%RpOC-A6y1KDa>2IdI^x>ae*-=&a!SaY5yLtRy4!>++YCm4G8r zX5LuoJ~~+CFdQIC`RqvJD(7}3UZvMmD~IC*R$Y<;xpjJ+hyzk--aOy>5YN3K{;f(w zhXAUSqXf9OvA9xaC5wz0+#dd`6&kdv7SVQK_qQ%oS_rg?un$#)LRL0JKvYvha-1d_ z4Fn`BF0UiI?Jjg`aYF=noF3w_wJP{iT%~f1n0bbT(kfkZbUJUPIvL{Wp4D1o&(i43 zxtIv=lVw!cT(Gf7K#g!fcSJ53z`H>@Zc5%0=dW(k+_rDSfqS83Wb4EM<Fksj3{>rQ z?rR7F`I&VWMivUbgrO<E7g~I(vOXG0_OeMmVKu<d)R;}u72QkLGfj-UYWH*ll&H?e z&yta+SH%sgjz-0-t4ehN<7*YS3&eRV-hh$KC|4cljB`|uP2ca!{BdP_A6;^=b7fz5 z`=BI!1B0FYoxQ&NlVi|xy~P&mEAEiLD4VJ@O?3r@(6b35f6xBM_cIz_lFidMaCY1B z?%pNs-H0@@-au~Vgl;`E_(X%U!Gz%8+SxjKSN65{EOpbZ%3fX7*EZPO)48&J;Pkfk zrKibJZ%KD=$LT&*S}zRQdB!o-;4Pv!HF)<s`U=e^z-{l~iq3w^E{)$`_{b*XKdpFj zwtniOr?+dMb4gb_tgOGiXCP(^WFVOs8cB}Kb$bpsNq6g5wGVO%R-?VlcCG9i>K^D6 z0}AAcRvk1$3Nw@oW<Bc|XNaj}sIPtL(k@gUD436wh<N!>d;e1Iu0GdwzE<J7uDD(0 zy6pE}@N#-BFSPfzfuTOel}KgVM<mO}X<T|>y{Aykj>&2@H;KRsgNsdOTt=N{Xj#;8 zC_!{OZW75X%!*rdgsz@ty=kPaUzRljufKA7o(u~sX&+qCwye7svAbV9D|7=Ya<h@{ zyi94OahZi>?(!wGwJ#Zve?j%aYzVH-ZX0bYdzVUz7qhFny{>M%=Iqo-rQbO-sM?n~ z6TQ8+mS?e51ZN1ZeQ=PjQ|g+0H^ct)+IOQm($_v99vA2P<d#7@bh#-yvL(Y4vgy=b z2iyAx?Oja3%{dFhu;=XzoqRVVdhqH~IVl~guZEF2p;-@&N{Zd(O|=H2O~QJ7-SUNJ zxB5Dk>3wcXtd8O|PZQAL9*5cXCCwPVZo;XB+RJacR7!i@G^o>`{$_H>^ucAZ%! z47sxnSzRBt3b3JW8NT34C!=wO9w-nQHA`&EX2h2cbaxG&otso_D-<TJu<byZo+Q&4 z=sE}6$BJGUI*gP-pz;{R?*sAZv+`ev6G2O5d3#J%#*4EUx_I^Jh`e}CM|_Ecgbvgh zJ6w4t<2FWEmu6b&sE+Gr%f_IKd&ZDexgofV=lW^#oEeb>txCIy_@)W5pDC5ML|R+5 zg>^EQ>4ke;Z-36#+Qmi!$0{ohSEkKvHMO<;?0ZuxCS2mPwJG8k0aiOA)lXjQY$#g> z4fX6SA`}G@@kBt!6!*O-yc(;#@5=P>*R(pm3QpQNIMf#zVzL=SPk<mS*tsh5F)Ire zap_N?`f=8izTmZzrfEZs`1%&!&UggR$v8x7CV1pcwcodbFe*=*kbCb`ux(0T=3+;G zG{`Z<j-gGd&rMBv1aG0zxeFK6_%2U3Mx6vQh6`^ha2P0mSv{~G7^gAzq__h^D!(?J z^@>|rq)Sy8m0e}P_gv*PxUpFw+Ji#KFtgdBjG&aQY>aZf@J)qRQZ?ITDo_Nr8jGnd zWj%vFrc=|$f|^y0(c$VWF`Ft%nH+;1m()0IcW2M?!4=(I1A}ddUSdXMiXHtL%W+j@ z!B#DtyIlCCQO5hG+{ENC5Pz(2SVka+p>UD)^hlV4#3;!*bj24?&?)eM3Hc9LoD~6w z3_dTRgK>@i*y*CI^Vv$pvSXbvGL8zGRHeAl15wI}y1I0b_2j0UJDHU{;~+-Mr$*{n z&PEAtv=k!WAEgpk{PyZj#le0Y(65$U$2k3Q$htLJweY2KwK#sgn}YTFbPKLjAJ6|) zUT+1@o)kf_ECu0*QVlmo=-eaQIK8wWf!xaIzust}ir@%j*B>l$9Vvm}0m#QxZVZnu z9UoqPQDBDD><K+$myyR>qV&K$k_+=oAU`#S3|N&lOzN+0owe+HEiM&R-2<PhS;w#6 z$6V-hX5>#-{FCKgsar|5$T&q*mTjD9>{-3ibDB|liPc!iSv;F9$i7Oz2{CkoBxcXj zQMoTVeuH;9=@_&yzix9}6(-BQ;?-D_9K0h6PxcTNl#iMtvm7ZJWtHxlW3@;-JJVGv z*PAuTQ%mH?dwG#cpwi&11@kt9(q80E4s#<`8C*7`PcQaHU|xEFE<9$}Hq=ueG_p}y zlPG^L9--rVDH?B7NtI<q6D+lIbK-ZFu*y(A<BBd$SXgIn3SP$!W<o_730HtCyLxaR zJ0ubh@aa};Pj$y;qtqU@Q_VE{pU)cNvvO3h|JpJ)3>EB;lrE<74yLg1+!)@cf`-a= zglwsS_gOgv1jbBIo*3dvD;3LxH85Mrzgn1%A9$NB=!N2n6_P&BO-=(Fy_E|uF#=Pz zRBi#;F#h;d!<Hv(RxlEHByFh8KC}{gw83gG@bukK+jKGF;FAe%6doK7%6z8o;DGhI zYlVPpTZ<;HzRkyy{D+F%*i^7LOgmTN4N8EC8KPi+Y|ank)tq(Kx@UeQG6Z)wyBJB* zd9hG3f;}GxazSw%o<t~(%6*R=Ju}%L7R(8l8M_ij<*C8lmXs{Y=l|rcKJ2+!J$&2m zgRVX>l;4<0LKI-t-d}p<uL@+g>|t-JY?<Bx)aLm}v}b^6qS;ElkcCJSsM}krnV24P zmqJ<E9IRZ40V&xBR=t-d*~lIt&5+xO@bhLvJsrJ6eche*qX1PJi78FdGMP!%-fI<a zMv=r+e|WM3H>g>uq|%SwK{i-#a_j{^#*@xlt}}n4Ocq!`E5EC$6?W)OkDCfVa7^P3 zC`AM$(I=RKszWjXVX76pqu|nIMDE;yOrftayKku!xU1ELl01poTyy=7lJZop4vx<C zhsp?!-NFd!<eZjHl=C&bqATRk)w;4Dmkd?uXnAf=3M7?Qr!I0;hB%H$RRu=03$ex& zp#ghQ?$;@He^Cfo^yrE&QEb84M7(ujS8cUq*GqL(_P~J-#!0Jm;KD>eVs?Raa|WsE za<C2X^sQ>Kaa1ZS;MP=_ODQT1fXfL5Gx}9%1LFHVY9y<a=#nh0t$SY0@mlIWTm+xp zDm}~gA+(3{0JQ~I2l6V`StJ7imr_1mh?5mv5^5{1QlJ*xq)^R%t>k%O^!E46t*#K2 za<6zlUkB-d7d{`B3tBbhA8H0&Ji4W<ydSSZ(I9X@=)+qngbKgF^f9*_5=-dr-UCS= zqBG6VTL(<#Ws8%3kvrwMFzhc2=7tPji0L8&yw~ORxuHF}sgTB$kf>ThFWL`+gd<PX zVMdh3$PuF#_c4K=)zshg<DGqaP!DEzjW#8r(FM;mDO&-3OfTK((^XfR1Xok;uNCWT z^|>PD7+`pYJnZNZUN;=IdN)bGf1ygsZsV?UHP+&ya#P0cK$z*ak)+yVIZoLYlYWNU zCm+jagjT(YXVnsX4o(?`mOdp;ap6JiQQTYb(OAPe8a=gI{Z?FF^}7Jd8<)`9ruvj+ zBeY)~u@l$=fWJhQTev64mRuU;-W1_e%#J7nPq}@n-L$Gi?sBYZ6<XB<j$}4#WfWqd z44sCup3E=23m7WbB3Y*MM@Zj(xa8<8f3zP#?VH+E{;7Tm;Qk2fJ{VCtpw0bCU$QYW zknkf{l8YDGO6dspel#$G6RFj@w-A_`m_08BFAbC@irT;H<p%UJZ$FQk%M;~rD+{Kj zgidMMvdZ_o@&cl&(T3DgdD_oOmA+(?lz^zIESKt+jxbGj+R~S7LBG<87%;2qQ&#f! zXvN@KrAx9L=a`(mbhG0S{<B`5A+IfXvk*?|eb)@Rd<d5k5%7XFKRCVYc%ds9(QNgX z+F_;5m0xO?>qPYgFL88UW?|)}JMd0F^hRm7Z!tnq$^O`w@99yp-CMH{1=JKzr<6Qb zVZD@d2lp+Jh-A6}MNMhu4RdfD8$NhSp<w;VTQ(o}$!tCHfeQBlF07{@hU{%IIg2~X zdGD(;f!oi#lqeW$)(>8Link&ZS1G4{{rB4W=?V+W<VHuUiN{WZ6(8HOqH$Tezu1)Z zi&CWh*SJ2IZPWb3OX2f*tueP94E#1C7M7kd6sJ=gOO|CE6+g_~TC^G`T<Zfl;noyI zM9!8&raot66L87dr={)Pi?`xrm%~Je9}yd>9i`^OnAP7pg4p9u(p9d+3F*2g)lMjE z>nD&~EB7rJ=u~&F;@?d2y-IaSUKlTz*Ye^%C)FBt;NZdwqgy??Gx2e?qr0HdDpU7o zFXlg^S^Z@XT))IY{$n9^qsV6!t=>X;T(iwW=wPAi0a33t=fxSnw6@%*huf^Uf@z-4 z$LJHh!ATcK?UYQ3j}Ys0p~R0#R{3pAI(|WM)+d;v6kc!|wTFR{gL>-#-b7WDzh<}I zKtd??ER}#@w6hFyzt{qEotr6xhZ5m|vh@d5b&0f?Qsu3jDatyUJq+2iM75U6G6K;O zH;RHXG9eURa9XkllNFhC@C+FRlzvMIzP#9eNr_KmLji3LAxB{%RjEye7Yff?if{|D zLh@G>vVLV+C$ABY{NtY<=ci&NwW~G|@?Jh!=pi0aKw$Ia;}G?EgXozPauq?XWw*~f z%4Jb6`{b{Ud4a<bVy1k^j*9VivjS%Tr=q=EsPiTU3_kCeF;w`NX=}TP-S2Jrk+`WZ z&1|>!^O-ith6*EYflN~T{jwDnd?<UtqbM$xVL98@YI6Isq$VeF-@A~oyWEtL%(@jn z9c~ru^*zVFwbE>unh!v?y3hZ{sn-QT@1!t$S)zUFH8*MDlh9Uq{$Q9fPv!ahW%DuG zS6dYq;L#>u@>qafP03Lsjh=-!W^6?`7faIY7P`rSP~9D}H;ZweLuaKl{P{<|C*`{& z^RfCXVVye0iAw7FR*@wySP^ki9(`~byb&!Gd*&kyOBFZ0Sb=_KE+Ar?b~s&BY*g;+ zEvgNU15$KVTN+0U-v8P~6zt4N*SnW+dLGwvp2%d?W!_D;zEN@ai>Z0{OB?l;Oe`lX z_VU5j@Zl4)QfporJM*MWg7>w`7>(U8-~4FQ#3HY;XKUa&FmPPO0z5`bmKn9ZM^U`B zRELyYbr6ta4tK?zKJ8&izbysBbB)1!iri=BvTZuc8!!Y<rP)h`9lWWjy|@JNW#NrW z@YZgee69MuDTh-SMZ(4St25bvGy(q>pC6Ih@#YkM?RYg#E^9rkCJ9i5Wcn(+n%nIo z)XyUTm6HuuObQ|mzztLqT$}KOkv$SbrS`lSjff28RdAT1D}PnFB?q9EL%D#B;pC{) z$6Qf7S5C?-qoUesO`M-Vi}5e^V`jJ}i#7Z<uk_d@67zn)m^Et_fD6mWnDA6Kp}X3h z(HpPb!YLE3=)8>6LJE*^!<bioy(pUTYcM~VCvcY7M>cVUXYkMzqZ#&_jCJHvp5li) zy1VeTd(Bg)orTSFU}%X)3mk|JQkjmqLcaH_%G^5bqng!Oo4b|BnQ>MXtz(`-$?fkR z<u*(5acO1*%o1u!pH0(>)|m0_)v0x=@M%GAE*U{r*3O>hDE6~Iv$IzVYp`CyPufwj zx%g0_*k(ypF3!f~nhSOE`c-GMF-iDv_U>X$8*h!cbi~b9R*Z<zsJ*-P?y;GxHHR-3 z(}`I%?#`A$A!L>FrfE6${2Ot8RvKJrJojy&UZZIiJqA7mSFmyW=uL%@xxz$%v#PHH zg+jRj#VE;sfmfBulBZy3YfZmPsp?;YQ3YgoAvtHNO%Utc*cvo>q2~N2nv5Ab>*CB} z^3{6Ch$||U5xycuHt5o-ST;KM&4J?RQpLyM@u9m(LN}QST~W(NKJB+0=H{di<m>s7 zn$M>6o-^$-ne$MHB~!AVkLju+2Sf?awC6IaEqEWUi;Ph(ISXDRrL&f%Cj4Myd=RF* znk7#vxhiOyHUM4<vt;6<m3ZD|&$Oi`n2Q{Ca_-<>WvP(UgH50#`pCyY0&Lk*eAUT} zRVYRozaJL4@&-ODEaoYc;<=ei@d6+dZ{gF6e8H3QkT+^KE;LiXHV*o0>=}#oy8$gt zL?07$?POeM$#UwRNyw(9{?E!JQ@kDF_GiyR!8mP0C`<ZPM<!Vmoy=<}LwJ#%T5Tvz zX0K>vbadnEb%V27ukowOnH`y@Fe=QB`-w-V9DytJ&t>()AqxJV2|6IZX1P77@_&^` zscTRNg_&zvsxva)gi#x9nJopfPnp{~S;<H?!wX%th!xSXBdn5TRCe=@XIDnw=B5*N zhU{<|7o*4{ud<?)5qGradJ4L+R>2oo8_6=0TuloSlPf=uNs`Z)?U7O{OrD94l_k&Q zQa`O_u2@x@)-DEgc!dE?ZE8NN$sSCr&!1u^bfb!?msBXJW>Okc=n)C*gnZP11`<5W zrp!_Bxl>!|>5e0EVsFvVs)05@HT*gIa7yi^AyO-k3AhB<Uq#HOs6DOLR`fjiH5b5z zW_fwxZMnh?1Ib}=cEEklW0I6b*!NVeb_|+G#+>_SKioGLLvB&25*;MUK<v|d*@Sg< z%!+@6$|<8s($#F7n%hlm-?{*ieYKHQf338n-ID4R;(!Z6&FkaF6n$A`S$u=C4EshV z1ZuCWmWzRG{!-vJduOzX*t?kWNwR%`!{y3N#Z8c36Y4&}8t|fKy9b7Dh*U&DuWIJg zukJG4|Ai|#o*1=)S4ru#v~ur(z>1fbZ}jC^alYIv#t^d&xm&%0*}IAvq!*=CJE12Y zGMg<m8cyypH^^Jf%~PMQQAjYJLnqDl@e~TgAC$9xj8ER}!DX)uid4z*@hY(o@y^fQ zfDJ15ZPiZI_BnTdqNBl<GOs(2WQ$;0n>|`xvqhXBTWUxWHa2mIl-Z&hj`LsDo3ZTC zz1v1hoc#o+Vb9h42|17Rn2*hrBNH9UtGd7^rm`LyuwO7=w!CzGQ71XKs|R-$Wv(C% zr*oUvc<Z@NS9WI#&EvH1-A^2|{xWVhS%KN?h4qMMQzV`R<D?Y=9|DOASaw8DY&jus zdUSx?6;FLm38lCPYAS;UBOW(~YTskeg6Og(@^}>}owSLN^_$)NHMo2)kNc8~^$2p5 zYUGY#yV5l(9=U;d@yHED@u4&f*?;AL-xeM|x3==D)ui&ni7In|$|q+mFBC{*%;73+ z<;q`$%b1Ky8OUX{jn{p|FPqJ)a(m(m*_X9MKFJe&s0QM4Px}P&8>)zf9ID8>H@aPy z&qy?)<Eg1Fv=tLWsm$sgspS#+OXYs5eW?WhhL`7~D!+0IE4Z=MfGd7^1tT&R+w~~Q zJ=78`@8QD%3{DhTK%sRaE6*!ZPx9_DnRx6!s1zskiVrtgfw{s;sMbe`vmbTn-<$GG zmg<H>aI^6iCarF$La%O`)?4NgH+|41Cyh7fI`_{wr@K||SA3QtC<&_@Ry^XiHTRH6 zl@?1Xw%Jq+z*XhZrsmeOTH3TU>(P>1U4;+Q9Kr#&W-^9_Dxc(#1=F*d;R}(PvFTo* z7)x*9$v;*z_QEZ&9ZQ(7YvtoC)rHPH2mVlyAF(>elZQMCva_bawR$xjQ4)rC@zIaM z*iJ9@M#lT-jSDLL;5!#lp%<QucmZ}=#XgqF#x9^Ljo`S{cdl?!m$BOPo{X|*j9#p% zRk(@QWyzCQFA;Z{`T@6?+u%%Go*j%#Mmzz*+Kesp2MyBNolELtBx#MKv?m{G$mWen zE=tY_8ArjeZH=0D?3^d~bcsmchK8yPB9p%Tp4rl67J|r>m<JT5y9X3XeUr=ZpK>78 z^zD?1_Y~knXJz6q-DUj>++;7rY*2hGFx{Xcl;vu;Rmx(&@NQKzGdG)nV~gx0?<*|U zT9Dgb{9#GOFGEC#pGj?fte^sA1X^pAW;g_6Mb$=T#b7tGa3IY0EQrDCoKtdfq346( zM={s>vQ#E{Tx#%H937CX`?D!0evVjR-D$9_%9C;tr7{~Gs<yIBiZPGXAW%!uCr;ya zySCFy)Xv2Xit|)uZR|&X@$T(T+TQezBgE`unXDr2kwjUXGS-SK>(I>Gm>hdNk#kXA z{$sKgKZht7UG@SkD-d{a&`H1PIP_q&ES|f1oC4!EvP}G*0~8COly>l1I%O?ZFH?L1 z=lUowZ+XOt)$U!@dWn1Bhx_?-cZTvPGRnc2sKn@p{h~Ic>P@bOcPgNIi{hY#RoWOy zwkUqD9Xj!sec)cKfJ4V51v##*D*XnQ%^BY9YlbW=FB>Dm8(DXxa=ZzYi+<eZ;<Q~C zww=7Kclmev{8X%l9OOSnp%{*Erp0hiKqJQt%egv#X;sn6(r!%S&FJx0;o*?>rKh=z ztc^kX`Z#0S+E${cDg5~!yt<PyreFRw?Lj=YJ9_+S_$QiHbS+=e-MOl>yKTwY@|@A& z*?pZAuQuSl*K+c~!72ELjM3vqVBl4~{Y$zA+PZp{^}2t^2wxF8di*p9r*~Cn$6$9G zuK`!K_p~qXY;J4sUoJ26?kfG4gO|1swr8I$BFj5q<TE=~wD-3SnoaTd5dQ96zPxRy zt7i~je>7;ug17?f=)lL4_~otj1d8e=%p#9>%lFZkO+ey5PsNci5FW1>#J8u`uS1@> zG34X>sbH7Z{k<h#KM2F+CBRQfA)byNzyBt+FUXMmm*Pi{pIdkjpVqb?FGnC4El&jx z47Lw;b+mC|q8vOFG<y796q%Jao`CIII+Xi77GHlnd)+<u;=U$BWOyT9*Du7egVyM? z#Ii~xNb9=Q33W=9CTVPYmDz!q!M1qyPX#e4<9yOH@M6_!x4@eh)=L>*gHcYWUAzrV z=QJs{Ql!x$24O#){rx??u$?j=a1ZQo0b7EHC0&Dh4NeE>7e|rRd0(XY;Ej%(Wqm{V z_uhL3`+K{EsT-)~zBWVvt3@(jr2YS3fnIAbm;}AG&eGV2QAmT(82tGe>sixUOzmHs zXHzVnj@_aEvN(f__(tgql=QsJ_Vba*+L8A~+5^i4>TYQ)@zJZiklwu?#>;|hCm!Fy z=O*RqP`oAZ^2-p=I{Xg9@3>);?)dSD#$6Xbb=bjsEZuz4%ilFf{Yby!l7+9|zV&67 zH{RCv#fH=OdlaEv=-1Er{f^ro`HeY?rvLEbb56WrrZIO4eWwR5y>q*(j=KAywu=rL z^-RxvV>ZA9<AzN?f7Z*t{p%b1e|76ypMQAA>qZ;1K<Hoo<g%l09r>T%-+9BX?|$a0 zOK&jd2BE+Iihb|=(_!C#am#l$`toZ}d}McHUKRS4U%!9x|K^T8^_t_}+<nq(f7=># z%!}#e=O!95em;o4w<!J^@V69y7x>$Xe+>Lx#ofb=c?s{^0<G!Tdokly7m7H`7k76p zv2IGV*g{BoatFKh_4h9CZ(liaSyy-Gz{K6oYMr+G;xoH?miC@GF!A)R!GXn1jf=Z_ zI=Y9Jb^=aroZQsdG!^aQp^pB+#VgypyL&q(ukekuva6%Ncc6FK;KWs314HfI69)!| zmUi_{Y-+&>t2)w=&svFp<8H9OtH(do`Y<)P;{U}s17v9V|BI12diy&euC|q(D?9q| zDa-$tW1g93)2H-aPHD^w_=VY;QReXR6R?l01AcKMV;amoiW2jDN~1OL)x^A;(ni4I zENw?c4QAJrHY=sgNomVd+UY6n>Xi2Bly+ZA`$bCoPfB|srLBW~E6<7&GZSgmOR|pH ziV|~HN;@~DU7FG^OKCT!wC|*}AE&gRq_jV!w7;gbS5w;mQrd)(j+cpw60>JYYfNb; zrnFO1T2D&rPidb^X<tZbx1_XNQ`%E0?dg>EdP;jMrQN@Q<L?1QiCH(wn3t^`C`!!B zDed)?HgZGPZ?vMsOiF2crL=ug+5su;l$5q4rS+$@RVnSNl=i8V_NA2e)s%KuO1n3u z9RuUG>o`GCV*U;EimdIwiW2i){B3DFDN4*<DQ!whJ36Hum(tEiX+tUPQz`9pDebnD zc6&-YCUNtgpeQkq0lkVI4dw|&iP@;Z(Kc3;n5|RVb}4P|l(v6LJ29o5lG4seY3HZ3 zPo}ibrnEa#+FdE_w<+xpDQ(v=j=wz=C1zSm+dHKlpVCfBY0FdE=_&2fly+H4yEmo% zET#QDrTsgly`IwEN@<&K?D*SSQDSyUX}hPi15?_;Dea<^_Mw#a<&<_~O1nFy{WPUL zozk97X%pV#c$uguF$biygHqapl(sOXb*Hqxly+`PTb<HAozkvNX}?KnzfEaxq_nqF z+7@FSf7>WZ%#@TiJ*5q#v@=uM#VPH>DeVg>?Mo@`mXvmDN_#P-y_(X-BEz-5u&JWN zEJ$e!Q(9X}>qu$mrnJ>5?Xr}1c}jaAr9G0;{*luDlhURlud=+%P?VTCDQ#X#Tawb2 zrL+rD+QljD<0<XRl*atd&T(r>TbI)ANol8IueSY`DoV^FI3>O&apN&XiFqfb4d2|p znwa+}YA~CmwBD39kkT$rX&+8$UrcFVPH8Wsv{zEvd$w@AY@#SJD^uDTDebD1_NkQi zrIhy7l=e@c(TIi(<~c=)c>`!8p}nmrF(bD$W^<v9R+N~{fi@G`)`}9dE6}Dw+e1-e zrUPvvw0#sMW-icpp&hO$F^ho43GHM>i8&2utk8NCCFTP_?-AMsiV|}f(8fZ$Tv1}K z1sWr?FDgpRO+XDo`?jLQ{0Jx!+TDs0v)fiq&U-3K%!+N9p;1=diW2iNAOvgtUZE&4 z-v>f~1nmw*iFq0bfeN%|6(wfF30Q~F8Wbg_5eQC-el3a;a}p4o1++FriMa#_Mhn_U z6eZ^KKrmX+u2+<phk$VW1np5piFq9e<_p?eiW0NwcF?cTwp5guRv;Jv`t7SIF>OE) z5@;QY67yjo2nn<`iV|}(5RO}*eMeDZo&efLXungGn9<uC6dc%ZjH1Le1A#HnrYTCy zVL*5jXbTi2W)KMffp(T6$N=cQLc3lO^Z_(cXm=<|%&&lU5ZdF45;FpC+)-#7DoV^` zpq+%)tSB+Z0qrcb6BQ+9HP9|X`=Fx4d>Lq0q1~tm`T%;L&>mHknAd=I6WW`K60^fZ zgF9=kZ5Ks}*%xRJq0LkTUVtVE?L<Y1`4G^aLi?zq#C#Lz{X+YeqQpE7G+Ag*DZ=>! zXfL6SfOv=!^FE+Pp-obhm?MFjgm#Rg#B>2Q3vH#M#9Rq9MQEQ?l$bk!T7<Sv5pqYM zsY3g&BKQZCF->R<iXa!D=|bB@5o`mfRcH$oC8i%}hR{|iO3Y_~_7>Xb6(#07K>G;o zdx{eCJD`1q_D4mCe=vgmgf?1HV%`t5ztEZ#CFXdb1B7;xqQrazXr|ECDoV_kfMyBp ztBSDC039f_#}p;zpFjr*?Kwq>84u%|Ews%QC1wWD9HH%}C^4r49W1n7MTz+!&>=#* zR8eBS0W?==w<t=?uYu+X?MX%0^MDQ&+HjaU5#l7!VM5zeQDTk(I$UTcC`wE((0ri{ zD1uyoju6^fMTz+~&;p^|rYJFg20Bt`e^&(CfMXpcv<5|poj^wmtwm8{P5@dcw8e@b z1E6DscBvxl3qZ#T?c0jrA3(<m?I}fxc@gM%p}ndoF=OD+CkSnvBIM{mi-fkfqQsmC zbfVBsQIwc9Kqm?9<BAe<8_;5*-L44x2hhnvdsY!-fS_@T&>9parU|G`Xj2toUZ7Kj zc8a3JTnN-Iv`Z8v=0>0;Li?to#M}eaA+-AyCFT!6ONI6)MTr@UVAUzKO%=g5fR+hu zPeqAY2((;i$16(Axj-v~wptPV1E@=AUsaTtUjUsZw1*WX<`tmRh4zM`#B7fs*)6mk z6(P3;S}C-JiV|}sP>;|)peQj{0QCy(8b$CApgy79q6oGDbcWELQk0ng0`&{+WkreE z3c-0mXcH7AW**R>(B>;j%qpNEp`D{BG1mdD650)l67zGQGllk$qQtxabe7OwQG|K1 z0h}$g35rm=0Xj!$vlYQMfIc9!Qxqj;0O(wyov8@C0G%ha8x$d40i7?j#}pyA0J=bE zZz+O4u<@)G+K!4K1E33qHeXR<`hYGH+MuGud>ZItp<Sy8F&pTELi?Vg#5@IbiO`-_ z1i!@Q_93B-Q<RvgKpz&`3`L1K0_akq9jz!aX9ImiXy++P%nd*v725wPLhcB(Mrd~{ zLd*ubOlZ$3O3XNHrE7(@nIh!HKpzv@K8lcI0)1R)-HH-(Ind=oyGl`FegO0dq1~wn zaT4eXq5WM^V%`S2QfR}lg%e>v2f9jVlN2T9XrQZwcAO%dD}b&M+8K)AA3&cJ+BJ$2 z^An&?3GF^bkO9!Ah4!2xoEMNVd`4(nD@x3MK%W)bEJcY~2J|_hou&wRHqf;~yFyW7 z{txK$Li@U+#QYNII-&hqQDXiF^aY{4qX@hpQTd|KwpN6?6wviT!@sm6C^4r3-5|83 zijeODeMx9*6k*>2`m)e&Q<RwB0)0hje^8W|mw^6HXs;<s%!Db%d{t-@6(wdi(2YWy zs|Yay=xahdM-luI=<7neK~Z9U2J{V~J*WtA66l*kdqWXy5=q!iLfcGHV)g*KS!k0L zCFUrgTZDG3BKQZ;w}f_{qQrb1=-WcOSrPURpzjFnenpA-574bbdqENOf#mPILfcwV zVrBu|CbT(<kkbHtPiVc05_1*M_l5Q;McB`Qejv1OD}r2rZWr2viV(Abekin;6(M#` zGv*GVO;D7WLxJuT+7XJN51=0j?HonW2hfj&c7r0EKY-Q=?G8nW`6JL>Li@9##3a*= zxm#%OQH1&s&`*RmT~T7@1KlIEqZA=-0NpFJZbgWlKtC1QwTe)G2D(pZ_b5ut-+}HI z+P@XyJlJZ?&xE$6qQvY2^mCydpeQj*fqo&h6^asb9?%0qyHHVLz5?{1(7vV!`v=fN zLVHY6V*Um6u+W}Y1pk;}%p*dZs0jHL&@Y9yx1z+H4D_hb+7%_{QlMW6?J`A)xdrGk zq1~zowgL2Op*^SwxgOAOg!ZbU#B8&-F^>yvdqp^Z06ihJ1&R_g1oWiP&Q^r8DbR0) zcD*9l2GCPNyF(Gqra-?F+T)6ldjtJmXv6oh2z6GVKL~AiMX(K^r-gQuBE(amKML(M zMTn<B&j{@bMTz+_(4U0%6GgBMpl5~lZ$*jOWM5<cEVL~Y!8U;YBD4b(VP2rW3hgvS z$UA}lCbUZwCFZk0e;3+yiV|}-&_9IsQ$>iKK>rllYl;%H?S97mOK9&^l$aKve+#Wu z5$YB|{}Eb;BE)f^=Y+OK5o`nKd7<5^C^1h0{a0weSA<%@{`QWq!EC4~G1~#XDE)R& zgc=IaOG4XM5zfg#FAHs@BJA-%uL$ibMTz+#(5piGv7*F03-p@M{-y|d&H=`}F0^rq zAOoN`gx0DEwgL1%p&g|NF%0NUp`D{BF<$_BOK4wGl$hIr-WJ-A6yb~r^p4P;RFs%e zGmYF~Hkd>a&Llv5aG=3VRg{>;K*NM~sv_71&~Tw$q6lXaAl`&Fm~Sdd%%eafh4vdo ziFpf%&ki)mv6=|y^I5om6<U)b)JuRi6xxZ35U+qn3++NhiTM=JMne0XBJA-%iO_CS zl$hTGH3;n)MTyzqK-B+)wvi&_z(5-dZAV2olK{O(XbTmgwh1&=Xcs8LSqNyH(7vh& z=K!GbLVHLN_IRL8g!YCa+`k=!`k&BtQk0mzfi@G`{)!UQ4z#(@Iu+r34zz{P)+$QO ztw37}?fZ%n^EaTag!V5*i4-Wd7TU<!s00E*A3)m(tw|B`PM~dtcAO%}0BC~HE>MJ8 z8qjt^yHQbM9st^2XpblYFF@}V+P@UxY&r+^KcQ`^C@}{D?I5&+6`|G)#Jlze)1xRc zp9I=TXrEPt7y-1i&~8<P7y-14(0;EdF~bi={ZDA46k#s|dY{lHDoV`3K)VU;P(`Sh z0PQZc0Y!<q9%v7teMM1X?gW}7w7V1`w*cBxXn$6OI_n{*{|Rl3BAkVQCJSwbqQsm6 zw3pD9C_;?_s8MJiR|I_kH3{uTMTvPBs99*gQUn>yMg31`qZB1(cc2!by<ZVx6VOzl z9i=ES=KxI;+WCqg1EA?b`-&pe1%O(G_OK$<RDos)?M+4S!Fj0v32jG3sAB@{BeY`_ zAtnOtE3|VIAwC1`C$y^+VebaoUubtI!Wj(c0HOU|5zb&hGle$nP>XO+0yIl#dnm#= z6zD*q9jyp;WuSwE_CZC6i9oZ3_Dw~|8Gz;p?Qumo_W&I%w09IC&pr(GKcQ`{2<IN4 zxk8(w2zL%Z^Mux>C@~iU9V)aBD@x4gfDRMd7Zjn!4RpBB9#xc>SApgW?SG08n+`|) zPiQ+SLR|oe&w4eO`HGNB0Uar{vlSti0y;`)*DHcPfQ}a09f}|qpoKzvToL2~bd1p6 zQIwb+=cE27v|SaUjtO*}&`wZ<GcnNdLOVkd@@$|Jgm$f>#M}k6NND#e!kHN8M4>&W zC^4HIf%>1&wo-&MG0<Y6%~FIqCeX=3TdXKC7XY0iw2Kvi7oawwU8@MZ0G%qddley< z0%{l9Yl@(c1*rcCZ6`&@Uw}G<wyz@W6+lac)~N`41yHBZ)+$1s256bkzNZMab)e-! z`=cWGD$oj{y{QN_?juqE6WZpAzzfi6LfcmnVm8p}LhDh48U;|d(5_L0It|cDq1~+r zH9Vjmp*^Jt_a8vLLK|_EMW|x}^$BfHMcB81&Jfyhim-11^$YC+MYwkX8W7sI6eZ?9 zph2PiLJ{-<G$gdw6ydCKH0pms+g=f3Hqe<uo1qBj9-y;?)~*OK4Crj3oueo*Uj;fx zXx~tTGZ@eZg!Y&s-2VcdE3~&2C1$6EsQ(G=eTouuIMDe*J5mvz1p~T3Xy+=z9T3oJ zp?y*j@=2fzh4v#wcs>W{BB4E@2zedQ#X@7ro(M4v=z~JrT2W#S0lGwJhbclG6X-)i zJ5v$P8bBWw+I5OhqX4>8X!k2ZjRNQ+LVH0`VzxXM^*^C)s|a_MKx>3HO%d*~fi4r; z$%?=W&|0CLsR+CPeN1TADN4+PKpz*{FBL%_K$i>cZACbP9f$g#(6&&NnEipS5ZZx? z60;oWN}-*uC^2h+t`gcO6eZ?+KvxUxhl&#O51?y=_8ǦA)MpU^f_gy+(LJ|(oh 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%0DX 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 diff --git a/lib/windows/vorbisfile.lib b/lib/windows/vorbisfile.lib deleted file mode 100644 index 72d9e78b5a4eed7ceeb4785fd1ccdc6c09ae169c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141820 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⁢{NG!BM9b;ZA;nG>4l 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 OnN?L#5p9sZ9Ql9dUd56C diff --git a/lib/windows/zlib.lib b/lib/windows/zlib.lib deleted file mode 100644 index bfac0a04ae8b7af129ff36b88de1c0067ec8865b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15288 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 diff --git a/lib/windows/zlib1.dll b/lib/windows/zlib1.dll deleted file mode 100644 index 7e89d2cefd12ce3ed5182d5d4d837c860baf9ba3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186880 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ɹ~~nYJ>+a;c3mJ3 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%0A4Ob!44zFV&v~u+A)ybzxmuH>PIY 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 diff --git a/scripts/ci/linux/assemble.sh b/scripts/ci/linux/assemble.sh new file mode 100644 index 0000000..5215591 --- /dev/null +++ b/scripts/ci/linux/assemble.sh @@ -0,0 +1,43 @@ +#!/bin/sh -e + +mkdir client_distribution +mkdir client_distribution/assets + +./dist/asset_packer -c scripts/packing.config assets/opensb client_distribution/assets/opensb.pak +cp -r assets/user client_distribution/assets/ + +mkdir client_distribution/mods +touch client_distribution/mods/mods_go_here + +mkdir client_distribution/linux +cp \ + dist/starbound \ + dist/starbound_server \ + dist/btree_repacker \ + dist/asset_packer \ + dist/asset_unpacker \ + dist/dump_versioned_json \ + dist/make_versioned_json \ + dist/*.so \ + scripts/ci/linux/sbinit.config \ + scripts/ci/linux/run-client.sh \ + scripts/ci/linux/run-server.sh \ + client_distribution/linux/ + +mkdir server_distribution +mkdir server_distribution/assets + +mkdir server_distribution/mods +touch server_distribution/mods/mods_go_here + +./dist/asset_packer -c scripts/packing.config -s assets/opensb server_distribution/assets/opensb.pak + +mkdir server_distribution/linux + +cp \ + dist/starbound_server \ + dist/btree_repacker \ + dist/*.so \ + scripts/ci/linux/run-server.sh \ + scripts/ci/linux/sbinit.config \ + server_distribution/linux/ diff --git a/scripts/ci/linux/build.sh b/scripts/ci/linux/build.sh deleted file mode 100644 index b70f6de..0000000 --- a/scripts/ci/linux/build.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -e - -mkdir -p build - -cd build -rm -f CMakeCache.txt - -cmake \ - -DCMAKE_BUILD_TYPE=Release \ - -DSTAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX=ON \ - -DSTAR_USE_JEMALLOC=ON \ - -DSTAR_ENABLE_STEAM_INTEGRATION=ON \ - -DCMAKE_INCLUDE_PATH=../lib/linux/include \ - -DCMAKE_LIBRARY_PATH=../lib/linux \ - ../source - -make -j2 - -cd .. - -mv dist linux_binaries -cp lib/linux/*.so linux_binaries/ diff --git a/scripts/ci/linux/sbinit.config b/scripts/ci/linux/sbinit.config index 45918a1..e7715fc 100644 --- a/scripts/ci/linux/sbinit.config +++ b/scripts/ci/linux/sbinit.config @@ -1,6 +1,5 @@ { "assetDirectories" : [ - "./data/", "../assets/", "../mods/" ], diff --git a/scripts/ci/linux/test.sh b/scripts/ci/linux/test.sh deleted file mode 100644 index 0bc8e7c..0000000 --- a/scripts/ci/linux/test.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -e - -cd linux_binaries - -cp ../scripts/linux/sbinit.config . - -./core_tests -./game_tests diff --git a/scripts/ci/macos/Starbound.app/Contents/Info.plist b/scripts/ci/macos/Starbound.app/Contents/Info.plist index 44fcdca..695fcb9 100644 --- a/scripts/ci/macos/Starbound.app/Contents/Info.plist +++ b/scripts/ci/macos/Starbound.app/Contents/Info.plist @@ -3,13 +3,13 @@ <plist version="1.0"> <dict> <key>CFBundleGetInfoString</key> - <string>Starbound</string> + <string>OpenStarbound</string> <key>CFBundleExecutable</key> <string>starbound</string> <key>CFBundleIdentifier</key> <string>com.chucklefish</string> <key>CFBundleName</key> - <string>starbound</string> + <string>OpenStarbound</string> <key>CFBundleIconFile</key> <string>starbound</string> <key>CFBundleInfoDictionaryVersion</key> diff --git a/scripts/ci/macos/Starbound.app/Contents/Resources/starbound.icns b/scripts/ci/macos/Starbound.app/Contents/Resources/starbound.icns index d6c93ff85d2932c79cc33718a6563c2ca33076ea..b9fb8d48b40d951be019f52423a00162fb798767 100644 GIT binary patch literal 324664 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 BZo>co literal 47576 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 diff --git a/scripts/ci/macos/assemble.sh b/scripts/ci/macos/assemble.sh new file mode 100644 index 0000000..8858cf4 --- /dev/null +++ b/scripts/ci/macos/assemble.sh @@ -0,0 +1,27 @@ +#!/bin/sh -e + +mkdir client_distribution +mkdir client_distribution/assets + +./dist/asset_packer -c scripts/packing.config assets/opensb client_distribution/assets/opensb.pak +cp -r assets/user client_distribution/assets/ + +mkdir client_distribution/mods +touch client_distribution/mods/mods_go_here + +mkdir client_distribution/osx +cp -LR scripts/ci/macos/Starbound.app client_distribution/osx/ +mkdir client_distribution/osx/Starbound.app/Contents/MacOS +cp dist/starbound client_distribution/osx/Starbound.app/Contents/MacOS/ +cp dist/*.dylib client_distribution/osx/Starbound.app/Contents/MacOS/ +cp \ + dist/starbound_server \ + dist/btree_repacker \ + dist/asset_packer \ + dist/asset_unpacker \ + dist/dump_versioned_json \ + dist/make_versioned_json \ + dist/planet_mapgen \ + scripts/ci/macos/sbinit.config \ + scripts/ci/macos/run-server.sh \ + client_distribution/osx/ \ No newline at end of file diff --git a/scripts/ci/macos/build.sh b/scripts/ci/macos/build.sh deleted file mode 100644 index 7517843..0000000 --- a/scripts/ci/macos/build.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -e - -mkdir -p build -cd build - -rm -f CMakeCache.txt - -cmake \ - -DCMAKE_BUILD_TYPE=Release \ - -DSTAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX=ON \ - -DSTAR_USE_JEMALLOC=OFF \ - -DSTAR_ENABLE_STEAM_INTEGRATION=ON \ - -DSTAR_ENABLE_DISCORD_INTEGRATION=ON \ - -DCMAKE_INCLUDE_PATH=../lib/osx/include \ - -DCMAKE_LIBRARY_PATH=../lib/osx \ - -DCMAKE_OSX_SYSROOT=/ \ - -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 \ - ../source - -make -j2 - -cd .. - -mv dist macos_binaries -cp lib/osx/*.dylib macos_binaries/ diff --git a/scripts/ci/macos/sbinit.config b/scripts/ci/macos/sbinit.config index 45918a1..e7715fc 100644 --- a/scripts/ci/macos/sbinit.config +++ b/scripts/ci/macos/sbinit.config @@ -1,6 +1,5 @@ { "assetDirectories" : [ - "./data/", "../assets/", "../mods/" ], diff --git a/scripts/ci/macos/test.sh b/scripts/ci/macos/test.sh deleted file mode 100644 index 3843325..0000000 --- a/scripts/ci/macos/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -e - -cd macos_binaries - -cp ../scripts/osx/sbinit.config . - -./core_tests -./game_tests - diff --git a/scripts/ci/windows/assemble.bat b/scripts/ci/windows/assemble.bat new file mode 100644 index 0000000..ca79522 --- /dev/null +++ b/scripts/ci/windows/assemble.bat @@ -0,0 +1,18 @@ +@echo off +set dst=windows + +if exist %dst% rmdir %dst% /S /Q + +mkdir %dst% +mkdir %dst%\storage +mkdir %dst%\mods +mkdir %dst%\assets + +set bin=%dst%\win +mkdir %bin% + +.\dist\asset_packer.exe -c scripts\packing.config assets\opensb %dst%\assets\opensb.pak + +for /f "delims=" %%f in (scripts\ci\windows\files.txt) do ( + xcopy "%%f" "%bin%\" /Y +) \ No newline at end of file diff --git a/scripts/ci/windows/build.bat b/scripts/ci/windows/build.bat deleted file mode 100644 index cfd209a..0000000 --- a/scripts/ci/windows/build.bat +++ /dev/null @@ -1,32 +0,0 @@ -set QT_PREFIX_PATH="C:\Qt\5.7\msvc2015_64" -set CMAKE_PREFIX_PATH="C:\Program Files\CMake" -set PATH=%PATH%;%CMAKE_PREFIX_PATH%\bin;%QT_PREFIX_PATH%\bin - -mkdir build -cd build || exit /b 1 - -del /f CMakeCache.txt - -cmake.exe ^ - -G"Visual Studio 17 2022" ^ - -T"v143" ^ - -DCMAKE_PREFIX_PATH=%QT_PREFIX_PATH% ^ - -DSTAR_USE_JEMALLOC=OFF ^ - -DSTAR_ENABLE_STEAM_INTEGRATION=ON ^ - -DSTAR_ENABLE_DISCORD_INTEGRATION=ON ^ - -DSTAR_BUILD_QT_TOOLS=OFF ^ - -DCMAKE_INCLUDE_PATH="..\lib\windows\include" ^ - -DCMAKE_LIBRARY_PATH="..\lib\windows" ^ - ..\source || exit /b 1 - -cmake.exe --build . --config RelWithDebInfo || exit /b 1 - -cd .. - -move dist windows_binaries || exit /b 1 - -if exist windows_binaries\mod_uploader.exe ( - windeployqt.exe windows_binaries\mod_uploader.exe || exit /b 1 -) - -copy lib\windows\*.dll windows_binaries\ || exit /b 1 diff --git a/scripts/ci/windows/files.txt b/scripts/ci/windows/files.txt new file mode 100644 index 0000000..bb05cea --- /dev/null +++ b/scripts/ci/windows/files.txt @@ -0,0 +1,13 @@ +dist\btree_repacker.exe +dist\dump_versioned_json.exe +dist\make_versioned_json.exe +dist\asset_unpacker.exe +dist\asset_packer.exe +dist\starbound.exe +dist\starbound.pdb +dist\starbound_server.exe +dist\starbound_server.pdb +dist\*.dll +lib\windows\discord_game_sdk.dll +lib\windows\steam_api64.dll +scripts\ci\windows\sbinit.config \ No newline at end of file diff --git a/scripts/ci/windows/sbinit.config b/scripts/ci/windows/sbinit.config index 06917cf..aeecdad 100644 --- a/scripts/ci/windows/sbinit.config +++ b/scripts/ci/windows/sbinit.config @@ -1,6 +1,5 @@ { "assetDirectories" : [ - ".\\data\\", "..\\assets\\", "..\\mods\\" ], diff --git a/scripts/ci/windows/test.bat b/scripts/ci/windows/test.bat deleted file mode 100644 index d995088..0000000 --- a/scripts/ci/windows/test.bat +++ /dev/null @@ -1,8 +0,0 @@ -cd windows_binaries - -set PATH="%PATH%;..\lib\windows" - -copy ..\scripts\windows\sbinit.config . - -.\core_tests || exit /b 1 -.\game_tests || exit /b 1 diff --git a/scripts/ci/windows/tidy.bat b/scripts/ci/windows/tidy.bat new file mode 100644 index 0000000..0b23ece --- /dev/null +++ b/scripts/ci/windows/tidy.bat @@ -0,0 +1,5 @@ +@echo off + +for %%f in (dist\*.pdb) do ( + echo %%f | find "starbound" > nul || del %%f +) \ No newline at end of file diff --git a/scripts/inno/setup.iss b/scripts/inno/setup.iss new file mode 100644 index 0000000..907a951 --- /dev/null +++ b/scripts/inno/setup.iss @@ -0,0 +1,48 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +#define MyAppName "OpenStarbound" +#define MyAppVersion "1.0" +#define MyAppExeName "starbound.exe" + +[Setup] +SourceDir={#SourcePath}\..\..\ +; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +AppId={{08791089-2868-4FE5-ACC8-4473ACA67ED7} +AppName={#MyAppName} +AppVersion={#MyAppVersion} +;AppVerName={#MyAppName} {#MyAppVersion} +DefaultDirName={autopf}\{#MyAppName} +DisableProgramGroupPage=yes +; Uncomment the following line to run in non administrative install mode (install for current user only.) +;PrivilegesRequired=lowest +PrivilegesRequiredOverridesAllowed=dialog +OutputBaseFilename=OpenStarbound +SetupIconFile=scripts\inno\starbound.ico +Compression=lzma2/ultra64 +SolidCompression=yes +WizardStyle=modern +ArchitecturesInstallIn64BitMode=x64 + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Files] +Source: "windows\win\{#MyAppExeName}"; DestDir: "{app}\win\"; Flags: ignoreversion +Source: "windows\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Dirs] +Name: "{app}"; Permissions: users-modify + +[Icons] +Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" +Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon + +[Run] +Filename: "{app}\win\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent + diff --git a/scripts/inno/starbound.ico b/scripts/inno/starbound.ico new file mode 100644 index 0000000000000000000000000000000000000000..999d9219076e5188af356e582daa9960afc897c5 GIT binary patch literal 410598 zcmeFa2Ygi5l|N3}#+z*7-6UJG$tKPwn|1z4en~djZ0y7~28`)lR3X$+ZwLud1=tvj zOWeTNm|jIkAew}F@4ahgG}5T|0;0_Mf6tqDA5V`NNi^F@n9t|Uz3<+0&pr2?+ukkb zj2iWYQBREe$A26J_o-1HUmi7T)2LCS{_Wo^@0<UA)TnlZJ@u63{RrSfzBy{tuYWDS z|JSHdKltIOQKLs&-k%;bYE;U&QKK9k<@ooJ9tgw3<@hJQFlyWPzA%b^oZr(=eR<T? zAAfPw(|8AJgjmAij2ex6@Ao%xU*_2<d((ql&!qk9z2dNo$ou`I{TZFp4rH8}bu{yj z_nLmnk(`>@Nxk&)-n5E)O*`vUVfc)b`7QHL6`q)KtboS8dGe=>W7;QYzA-VX@~cDP zTX3oT>BZ@tH1~3qMDxP4MKKc&q}`gdKP`9ev7C28lFGg@RQkCWO0LbjSRN^0%80(P zAij}i9?y+`w~~g;dtr3tafg(8iXi$sk)GWJ=S%XZAIsXR4%7M_5~_Ut8;M-gP0wlL z>@St?opCC6VEV!MNsA6dq2>+#xuh7z26qy<Wf|8Gj<LKgimr@uNNu9U7m5=-F67Tw z!?<MD{$g1(k$aBmiaK2Q!%g%xF4K~P>e(VpxNdpXKlQEZCa;3VED@%4mn7-VxR>@3 z!YvhE2Jp_S`>B6bC#|`GyfbP(ermMi6Y8{f5fT63l%_l6UD;1=srs%Z(Z$Dw?0t&r z{}^1~Ps?gLS_7-vJHlFte2W{&EwkphYew}pw@iJUcUdQS7PXLHVbimWHzcQSPC%;e zDfYiYM9XWtDpuEaPYbE-KJk9XwI8lGcDt--Hj{s42L+e6o(w8!$yu6h%wc%#Z)HPo z+-{xjiA{Cg-&V&huW66<D{q}C!h(xTJMFGyJt^LYbJytG7kV`}|AT-7nO|Z4i}#1+ zazBHvZ4|mMssCZTj_Bha=5OJ#;^|W(YsoRP{ArZq3*kgxe3<wr?$2nMv@i3V^U0iF zEjW_7obz~C_~)K144!^YNAr*8yf^V+HqAYrgWmk%{5F+#e|vI7K8-(;Pm@lT)1(8L zB@YL)1<UMH`H^#C8fnI<Qkoo9N7MHu?|xYL9WPYOvd_Iq^Uf8&_j;OXyxo}+nsQ!G zQ$N1sqRzwdRPH~H8mYWxxrJu6KRG9=g63SPq^*tgb;kE@e&Zh&T&<@GhqGwfp7_-h zb|oB}aWGBiakg-AczF0d)u;Iv%c5N>iJY(2IH+k|mS6~(6Wd7Buhh}Jm<DpXROPOY zABo=~y29VRhG^mC$|MC|E*IC!`Dcs!XI(asUu^ZCMEtPzRZj1kX!xyjem6O!nrLN7 z%XdY3wd;JP>d=CecA9k{_7CcCn|>L$Z)Mvz7hSFF_cCDYNHZ<A1@Dt+@OLb{Nwbfp zd)R_e!e!k2?wC}Q5zt2Dl3II2iMQhMOw>6o&gh`&$Fmxy9f(~vddq?DTLBw|I;FI6 zmsI`!pbp40t+p<f$TCY(#jDf1C)ci8gz;}lRwub+b&$ik{3@>t1&(SMHE#E;+6~J< zw?|<ct*Gkyi3Dc@H^(`|RmVFO_L5(k!Tn?XwI6|=e~7X%SMbO*`UGRV3ThzoFKwAJ zhz9kGoL^93+kd#^b`s>&q>i@c_bRA!T!uNsa*XHxB`ty0V5BfrSsat~(cVTP$G9rr zyWmxDUO5H_#v2Nrd*{||y9?GzfKyV<Rv+N@)SGEuRPLQQf(kDu^C_u!S<y}u(geDz zyU9IEU%x0aX`U67QqbbFi9c{ku8drUG;SHjj({A~<)B(K*<Z}NJZf~fr7p;ceTz+g zYx;;*<5^zQnd)EBc4Kuv(JDMH8Pz)H_@d2@(K+*%T+N^67+>h`l3a1#ExV2a!AGyW z24lD^|AU?MpCQ@C_k0s8#tFItDjMHj-9yCliO|~4t;=h>SFSe`t*mL^v8JZ;$~we_ zbrA&`uTvQOYX*>Sw?#hg*~Xh66cs6By}*gN<CjETTz`{j6L7CEcD=*#A%?En)y6JG zPP<zNo(`>UFAHOw6>aC&R(FPNt?L=Hs-iVA1a)lIi5Ps9*#5l++-pp|uQ9}H4cDG} zrMX|}pG2xvhR%;eTg*IvQ+`PH<&e^*R_BzmLH)i0AbY|adlzcMwD0ST-75mCTaRhO zKQwmzS4gpGkv81wyQV&=VKy2&Mu!>N2YtVQex)B#`_<__4L{Grp29O44}S;pFPuLB zAJI>g74BDG-kmn^^8RevjB%H<3&(gZ;vY%&DxNPoS^Ub>%WX9KNS;*pT#n~12{|+L zci98eB<H^+zyJGFPgl_Rz3J!?=&MtACttEVly&}r@ehSSRd%}*g%>AB8Oh;P!J#Sp z(o$wdx03VuvfoL`Rd7S0yQetDDdSywwR+NwC_RnamrfJ+rQMovMn}^QWtA!T9##Ix z0KES4tP}Yylg`%A_@jk1c7GO4Ia5W8PZoGTviw!$S$v`Fomp|sGz;qrj^|2hrbO1z z%g0M-^3JQ#L*}o-p}>vA!|CL-zA47v&yA_0xrwc`^lI&N@Z#@$qbp-(UNU0-TuakF zj=rn^!(!1F?P4)LJV^ea6M21c?zxisd8u8rD5^9~O}gLJsw*?1>uKuQN}9Rza;V*| z=y_9i#ci6nD?Y{kcy?y+rIKH$;YaLO(d-aY`O(76E}9=(OJN1A+~q0rIOc<6RB79! zv*k4POeyH7AiLyVntQ6SH#EKJS87<vKaxKc-`(PCr!7uvrNvp@<Q#91`Wi-oe80dC z`?usZ&027^jwT$>rx{Vz<Zz)p264(dkAP#?VSlQ;{nMKMb;0HG+xA&qWFK8+P}0iz zs_{BqEHliEG12T3x#a?m<JB-Cd`MTu%`l7Os<M~hyTLKDh5U0{|5r+<qEC&-KT-e2 z{N#3;b|kaQ_uY4;vOh@P&ha%LxD@u0OHn_$rqnBZw^f(dW;e}Tl-x|SFILf#;~766 zidHq<ieFW3_jJP&x8h!MF6<$vBtwBU7$r>hyi(ZmJNpE*&-i*;c<|~ZZTyh$DxSKh z8voBVw*}?yBBwMXt*Yw(4=Jq*#u}~-c^$v8k2BEhOI0-Ec;>+LeQ^gTzkBSib-=sQ zs_=TG7{BM7qQBu@(nDUA*U3M>$+BLjg1IZb91xb<JZW)q1I>ymrA6uO<Xm!#obj!+ z_;gmW?}hvYR@15Q2BsMQ-Zjlo>sfJ)eD$}<C$I4>B@M$3^YcirU+0kBPV-}`$S28g zZh4w%<NCt3d0R@l{t%wucK5fSDsM*Zo@vPNt-VFQhFj#7+Yqm0H&ouLIL8ECfivo= zeRO%TlGc_-leb59ZB&p6>yP>YUI#VpAbGt`12+hrD$Xyr=~?HTc5*4`CC5Zvs2c9B zHmFL+a9+8!M}zUr<Xdx%^QP7M&L2tXHE?R2QXAxW`RA0ZFLf>HBlH*T`1Y`@TdU#) zoHm_je%;<stU2@guTOFF^);p&zm;I`A#c}I!*&nU8ON+9T6m?X^X0(sZ&}5m!HK;0 z@pqL^MF$0$ZjyUi#R-K@;Zc`C?U&=7ld9k6cH&ylMoUZZ%~^E=>snc*BKe@cN|oNX zr2gpYUZMb9FY)@dPbvCWe6u>m6(rBzdH6R<dK(_c3mO0GoLrUdqq|Aox?ALtRadsA zsObZI!?vzKndYC(xS%9e<;!8dMfDffUMC7}7@(k<P72X?7W!4RQ-HpYSQb8Im`f%U z#4J9a>M{TD`QJ_18}U86y^-HrbT;mP9j;{iI471TdKI^kcXdDc*WD)H{D#8!yGdHZ zMqT^LTZW#w!CAF=KC#6f>hklRgI`%g!diU4hBV)zRagU9+t|MV>+hFWf)~rGJ1MlP z{nje@SKvE$Sp#sFgReOTTAFJlpUN(2y(0+U)Se~nkXtte6*hjXlvCr`Qr7bCSpQeP zgM+GDYWO=ltj$bok;iI7=bX1Y=pQ$N=;iv3n;RPY|1Z9u{^PaUt`AmKcQh}r?I+*L zPKhro!P79T<t&4YmY24+1?aAkKiaBeOs<{CmfM+lM3}n1uLf_|Ab<Xz4>$GCVi<hy zpITw)YW#Ck@4qT(WKX!E>ol)t_+c+$gT5nZtG;{Y&gSbsK^|WXuWC<Pa~o?9Nu_uC zNG$@*`v$B7tZo^g^$k5Qa@6K_dNSP9%S!`NJJ!;^v92rdRRsE#HO6UBp;+_}VU=xW z?33JCkI@2Y-d8vDwryzYwamv57c17=;MeBON#AJbo5*VmzNIFKR~)8>+ueNQ*UJm) zsz&dQeS+hL`@P#n-xM&6N9|X?i|}_F2L8X$ns(D~v$DP-g<0X#TgI;6FDo~FN2D3f zRntElEZ2$f+Ac3^a9Vn`@7B_M)?qwp=e;6FJjyx+_PjsKpH?0r38onnj~3II!zHxf zSpJ~zDFOSr;kA|iW^P15*$eyfX-Y&ftxVAWkKpaH$nx)e-sl(f2pYX(bODo3)kwTw zg!K&(?s7b98}HTdyEcu0`P5zR3uOLt-f2YNoOLw!)(Z#oX!^-AdK2sIp!JKh_ov0r zJ6WpiMSb4r7kqQMSn<iEv(+^IcquuYE%|tFbm_Ne>`Seg9^HZc%lw@Jj>{}PO2B8} z5j3!i--euyU(G&OO)u`xp{a+mt_NKyUpHl6YWGVg%4y1pQd$vLJ>+-mr&<CH?VPv$ z*^>N;*ux#OCyl1;Pro+#Kn9IPJsNj7pXNm5)F||cv`WBd;L*_F6Ibgs`*J;v-IqZx zVLfoH^kiDfa=MC~&X%rKsMMrY!apsK$e&&Ob~VsH&plm4FCQ(Smkwlu=h;}(%rJ8~ zUOJRR(~soPxlZ~gi9Ai(Pm5$FA1nDgUamMd<B|ciW)hdf0sG$Lj}_6Fed*?xP?pJ{ zf6n`-0<7Xt<J0<;1P{?8@{mymC7Wh1h-;(?5xF!crk;G0>H^~1Za(W5UD-JuX933S zMHvp|(u~t(WcR_TJNrWd54+l*h|`8Y=)1rx=Xn70$oY{a15?kI(X?}wSPw005Luvq z|IVsJecqfaMs5@43CD`1dbH@zM=X7i0Mxk7XOg~w&66)a^uAR?J7<f1{xfr98))*e zJX(~{M9VXq2d!113||UM(&fy=S%a4jX5OB1wu+{G5>vk;Jp5}RTR!=Q<L>jnT)6AX z^f^1P1W(#=<;dcQ3?2Ghw@-t1zhuK=`_xvNa;kvrVol^6U8BqsIDZ~rxr}hX>36ld zW73&2dih9}dGhfBnzk>YY3km@zNv?^Y0B{;nsy24Q#xr`eC;w$BmLy`;`M=C4ewtm z@BiMSD_A4HSV_~P%4ktc4ZUTg?<x7p^ouf_HQoG^YoZDJ9Jw^%Xf{ncT|yI26wynE zb7{&sJ=sT=-hR8RU)htC(mgEtHMBF0j#sO*79`<}%b5al$m}5Bw1&Za)6map!qe)G z%!xMAgd^EB5oLJ!a3;;d85x&LRl2k7^aF<BAJZ-#OUMKKTcO=OUjNFH>@J#du88J? zr_OQuLL~<kyr4niB>-}Xo^p-V(?rytNf9|nUryd}hVzJ5&St99h;$0>d-bSj5$(w@ ztKmhb%vPFn8RwcVRgz<BBW<i0_?d)S4KL><=n+{jPc}x+x}>McCkts#WGRK6O#dmz z2{_>j_y=+|^n@38eaqo$)%AtRby$}#A?N%a^3G_wdrrXV<e!$Ft;HQqixbdaohU&0 zbu{-tyi)J9umZ<@xf<FThjW51-7%*F=YY#@J75pQHN{w<;I;xU;?#6Sb<&TWVs+T3 zET-943^ey>>PZ17$yil(CH!7JR%mfgHoW78_2_w5%4tD@fn3tDwp)As#}aBQ@ainp z^uzxZ_qgh|=@%+!*5w+qJDzEs2lrbJE3|l|85S?adh)_}oS%%Tq@|_Ui^ywVs?ca9 zjS?q&xC|o9D_&PJJ6ean2lSuH){Ah-RpU~n83beN#Y)<Mtor|P%V{QubQ3L%t2Dcz z9G;mCXA~6bG)myz9yR?Q@w(Kx*!!Gyp&aLNvTo1baoW#LtaGcA-V6O|I^=Z0RXzXW zoLtlAQqWHJ3Dviq^V)DWs;*@>k!6idokpFn6~CJPr3w1Hxv>VC8ChhWb-tA5#~EqH z;iQ|h_FOtJ=bgjS*=j2&YzL|7kZI>LPp+x@5|8qJa!A(QUXp1duaYjDz3cm}gh-vn zHf9-g&|KmRuJO7CyBO3Tj2|=k!5$aar+L_KoOe}E)Az?U&D(Q%y?bPqWp8>I{7So* zX=iY^H2ry>nwzvFSx-w+Ysn9LU_oW=o(igapr7#z{_pRj?_zI?>@fG3eZKhiJjlT@ z9er6^6S<*Z@J!Hm`6nC7LX&EaFHg}~-=|ZEfX50Qo>{fq{cv`U_bVM!^b+lUg)Ik^ zWLDBBaaxZCHms;)nsas==r5;vaXRwCe(dJr_LbYJ`zA-@JRQn8=&YU=-Jo|3ZjSTJ z(1rOMZ<9+7&h2K@-uA8@z@A1^k&@0z8YRw}N5IQ*UKx%1mt?ilyy!}D%4#9+<eKNL zB^x$O;AL0-d1f2j1F;9=Uf7H?sm9x$6&PRh8?WQ+^S?+S>NKi!BK=*i8Xl4Rh`zog zQGatmynz-b){=cpMgP0<xdyIZ)}Fg?a)1Ue2YF>w&*FU)uhI^}S;^a;a09CQXjOIJ zopVf9(s5d=KP#|axh?Bl3wmgNbOkx#{Ht@KZkLi)MZXee&0__xXQqCle@(Bn2j!k? zy6sWaO3Sf-yF%A9PeEZNof4<@sA1WU-%5Socb(JfXmN^>7A5L2@2jI_>a#C0oEFuf zcQsx)0`>g`zp5_s)Af@_e&cOV)SXbA^9-qM4^z@wNvFhVJ!)7LO|I#N6xX6|S`=SJ zJdP~6T6#rEs!pQ>YCKk8+%hU(@WXyBpM~`-ZZvxqH_@`X8x&gI^|q4QN;)M@?NP%C zzZ~zLX86#v>N+h>(vf{4&htPH*juI<A08Vkfe3ivs`0X4gtIIEn0CGw6jXnMyi1zR zUM0;GP<xF$vvkUN9SKyOR`>-Hc14)lRmHodR)64AeS?;y)$%xq`ePvbq#CnxUMtOy z%rs96fA8NVaCLh2i=R4N4)e;Z86T+Yrr`RUyjN}ZE<ryA`hBr)>{ZlAi_XLy{qH~i zaqyiuH6B}jktbZIh=hN3Ni2_M+MUwtB-%X+u`gZLO&-`=cffe=TG~tVPNm$r>!QXh zaEUNMdv@j2;QDK{yx|u4mABpY#r}3c4bB^2&)o-d@I`&%GwDuO^Sb8jKkX{ejMN=H zYSfn<ujKeTCsz)5*9>3`!59eo{cEvbT-bbgx2bo+rm~i!%kvs;1lHUjzMnTMA~r(7 zuc23xuN>)_QDz_7bW_?d_pffh?N`}GA&s|aCC+dMRkjWIl(kvPfieZ59R#92IbF>) zE<AQ6eA>3X{|{)sq~tT$^A-Ce7yrlca@J<&#Ihzooc-`D#k~gf!>)xbI2(XH@sig4 z>Llpv|LH@0x66j|_O#U)FCEXOzKVEDz2P!wex7;NK`XJx9|HOVYdUTRRJYR_oR<%) z?Yg+O@mkn&(*VnZ`0N4G&F3&!7F>>HsApdJ^*C==*yI?KlZ><VM{xGwBgd=xN1S5w zQ(Y2DTRjV!q&;{ajCo7*aBnZW&dmMrvdSJ>Th*a_BdYl+NIW+{KU<q`+T<(F1!?H_ z%B^~3El&1^G=itP&f9n>9Oo9o4BaV=BUsm&64G)TX9Id@Me}V6*LRrKp`6Qcj>ZRl zs}IWLhqD4)t{{|!&zJBM2!B8=<`>ny828#~X+bl&=QiLmp+9RQk8I<uKiBlK+@zm& zd==rs<#?q(kOO^-YLBeOS^m(5>$FVYbvww=O?(GnrM@$bLBboa|L01aD+tAThH#W| zZEZK70r>LamcGfa8@p51o37IuoK*-k^pkgK%WZBa+}?d4E2(TKmmlJS>Tgk~2|Peq zK);#qO1h*}-u%9uopcLOOS|@6ltD{BpOFY{=%eLz-M5$5^-A|5RvCMgb-ooipTXw> zR^smFD-Au$`3r&X@^$*J9WDKV8+08NfjHA5=wGJqrLd|FT3Ok4ZB12s)rOkR<L?-| z-CwKeNaXs?b;qZqjT|DApOJ8Zw}NJYTf7Tbp<PvfR)F@<`X2L&rfbr@i!}{>%099? zzNJ^UqW#u(xBt22`hRQjig$M3ZNBEX2Io$=j}2+TU7xa+{g?ab-yt^T90S9liT&e- zn)X({YvQNtBj+ob4jeB1RCI};;oMMDuX$zLE!vDiu5IXfR}H_RvCnm#sW&}JbGB9R zL%5vg!?yls*0kQ1+CWId4e}|_+59%T(nCL6Z-mTIUZ?nijY^*PLH}CRpG~)jHa7Hz zDtO>w+FozDq3nqZTCKU9E}H1uXfwB0p^e}S%$;*Cz@tth@;K0bec~I4SdvhDPJ~JI zLwOmQX9L>qt4+Q30@_+$>M-^TSa#L#YioN9>k;5rRJTNdVR##5c(1-MJTOPsJ_uHM z8JXv`=Ds`U*EIQP=~mM!u&cw?*Z0JSpq)F$>ISbr$iQlRBK@nn&P`sr=6{pkHM|ip zBXVWhB^he)sA<&VQpasF^?bCvy4ChrkHpr>fb*YU5#d_=!@Y}i5*-@4hfB-xB0c-J zn0gnl#@#3OTjPTz*m`?V<B`%o{`-sI0C&=(@r2_M=d?zR!OQ3TC+eGU1-VNvRGl1m zsF0r7o=DSiCS>JR-OEy(+%^Qfa7DVmD3{BEN0fnGrvKf_zTeEk8JItQm`tPhVZZle zK{4XKs4bf|oi_gS{x0YjJP`Ccoh#28d$5T9xGfQ9392b9rFMphW7q$D;gl7L1=1N0 z1&12oFTrm`?o4)gM%&!kxEJ=v9f|ZJ&IH<@D6CNz$N6aHF4q$|*>(}QD~#V?a`}ba zxeRhyzGQ!<q;(9=Q9ZXa8SD0X3QI7|;kY8`Mp<|${i;J^5BXdwSJvzPBFoR^RX<!n z{FWuvub&ZRpcg(#qH(w<X@9y%T4P#sG4JPd52iOxJcGTYgV{I*uez%t*CPvtzkq*r zxrHBOAE=}6FNmx_ozJ4tyVGbU?j^oi*!`^c$?Pd}aF$}s;UXFzQATc&#h)mp6zSRh zOZlm3R?)rma`pKsXK)^JR|<_glt)gHC8@sW3SXUhvV_JQ%%$gdr_!u5<+LHWPWjHY zR);><Y(ROXwk~)e6T3F2ec}R~FByaLh+}b{@}<3LH1|k)$K<2=^y1!3dU1D(c^q`+ zEIg5KP|7E8sCcNveI7k3dKDgkPWZpP<a}An1l&i)-E8R`BfESy6X)q@Ead(oo~bzJ z>lszbYj>8P3ZDr2T)S#|RWb`mFmAP+MaB8e{g(5ne3p~%sgFZF;AbrQggK{5==I!Y z%gqC%S9qwx^|>v-w(K&^?^F%^VsT6@jmO!rm-lCy$L+%zT*#fvE}dtU`7jZ4L5Gw1 z@k;q@;8Ws1Po5!Yb-i3!Fb(&valQ;^Uo*_}qpD~j&OE&c{Qx+VY?kT+>I9$lowhTk z-R-SCgYO4h!#!Nsr_CEJJ#zj5DGk935}I+&(Q>|SCdwV0V)}4TS?4Q(DNVSOj{7Wp zo)+aFx8HImb?T0bx0b$hP-z2$`hRUcw%$L@@>`<;`EM=j{Lx~Z>6v`0h$bD)Hc!SG z$;B7SZ)M5%XJguFVpyX7#?13Ni3j7+HeNb_^Pp#N26M-ShT!1fuS><ShM&W%{RFJF zxJMBt@>9EVKCaQ#nX|9d^4Uc5M4V4tl+;4YQtK7nJ`9HS;U8{DH5%*yH)emj`Q-zd z=pUgAEwY;Ce0c8iNJ*ZEJN@o_7f#SI(u5BRC-M`njL$!*e);0$Ht8Jmlw-N(nHP2B z5?x&(vXlCC`33$bH>B0+_#EUo^bZpbWtqq0eEDq54HtZPY7oDoqTc;#!0uB|IqtqN zdeQESZqq)DdVA5K<Wk?LqP^}}rmsmTnU+uEC(5jLk?$tmz|%|OjgTSqU7W}>PdQOY zjyQ|7p{Uz(9$1EF9tb|b{nxN0!}ZBH6FnaN<OH0Hp1|jzcgGDZ_~g=ScDtjG&)j`A zcgF7cj;VW-Xd33qlW~{HIrBON#Oe|va9=_xJL7-UKXsXfU(VCzYE`)%&X7$#oo}9U zGLIG{HIsL$>8|re>hg2a*lzk$U`7kQ#Am9x{715HPmI8wt#cL79Z~^Zia0MGQG|JO zE{($-I>&?-T9@6rMHE%yrG^#}_fTDthuW1h@J_0I+aUvbHgFCbXR*yQaGo4zvu~Wj zK9B^WN+ZfI(JiOnR@(9AlEfyQBhQk~Wb?UfK3|S=^7QhdEa?u+1k4lMpvU5kqHbm1 zU=S|O<5B)pWl;AwD{@-LIcK!eOq?N{dA86z{cIsQ<6QUhoYuj6UUGUh&4LGTzZ9Bm zXrF?1FcD?u@=Fi=m^;vni+XauQhj5mVer{{Yq%Z>3v85~@0~!-eSD4*=Mc>^BMZ$7 zlbgshr9MHSLzC7P&AY05JY7>-FdxFb0*o6NJEituhqL;=ar(-bYozFW)8Y{CN}dnX zqoH4ty^P;2QFnQ9dK+Y4j5DOg=Gm94aR0rY-o^L61Y#qtpjWsI3;$Pw6ZM@_pf5-& zzjU_0f_&n1@rbi|wqK1yChOrjHt6RJywmGLU2t}O_Qg_~6IFupmyk<dF9qjx_$dTv z)5{TpX5k9>twpWx*~gir^7CDw*%&|PAB^82;sw0c74Z+<)zZ)J_yrfVJ>$yfCu6J0 z?sBOa_Xy03(_6_itzJ6MAkm>st0B%>8ICp4vz{r9GzoV*rl9;h2FyN`Y$Bl(7C6=E zG$<eLtCoJb?3=6UNv8yTk9|r5-$5|XMfvB)>&Pv=f&Ofg@6Xsst0hod7QBB2I-5GC zoh#!x1Wm)-dCrMk@`{N4iIi52SBvanzN_;Qei{GL6hjK1+njr)+&u4c8F)~RvtZX~ zSy8vULV`#mTqR<#M_Yc5U722=XcuFkshC4dJ5xk+p*za)XyQ~UrNF0l2cvxOH#KhI zm$7=K*1qLl+>f)Xl{6n`pCNzTpXtVV!6xM_j50QgwCvjWSu6kgyrvHqB{k5L)A=ZW zA#@kx?D@&GU<HL5uiCEwJb*`yPxxhYK3S%Pp2fY={f`APm1dmZH7`!ZIjOYzYuFo? zbWPq%*#(t?2jcy;;`T77)MjZeH4Sr#d6-i=oXQLr@mBND(5k@Ri$~zly1)@!*!2J0 zvm536BUR>wv6W`N2jgAZPb(^~k5{s>l2(bc;n9|VQ&EeXGs-{xEY7y#nHOus7!bSr zuH@Rh`2Bu=)^N%ALbIx$bW729@p)mK8#eRV;e~Nk&_#BG0t(x=Dp^{?p+wsDXv@F8 zsC9{RS~KqT74v)&_fv33>r@WS+;ypB&bDI#4q;*6z6+bk`>u!)28i@(S5E4ls?S?m z)+?RY#r+%bpxVs3*nIMvGZpOWbi%Jh4(-vFKfItV$O(5rW}^Ijw`G=mKgaH>0r#$S zH1k00&DlF656*vU|L}U`hR)g&E9h0bayrj6!x3-Xe_4z(%MM93ID1`VcEUX>k1Uh< z?H2m31g1_W{3FR1Frw`2iX^LY+qN!AL;266{QNKv_<j#Rm}AYpTuprMYR*}#8-8-J zeA2rS%SVU2d$%q*fp92S(5rT3c<;>GSN)*Ji_dH?Nzt2^B<sve_zW@bqO7RuouHsq zr&X0hi66pat^C1Rjpyt!2g1D|>0uslTbO~e&%|A`Iapg;kWdf(j~(PyJV3!kxbtwa zpfw;tcSo<l5P2$5TDn!VduQsM{i?1(SD=aS4w?D>kOR)F2jKj4NO@QINN^}HLwS&= z;DG@1!kW;0+-sSGyQ#CIip_Qx%VGZm=UlT}$v3%{mZ#O#ughtQ*;3s0&PTdyj;Ffl z_ZNx23*BPh5IBZ)hbX&$UhT`iRej`|*FsLI1~VS%{ukGUz>?NW3hp6rC@@2LROv<i z-_}U~$@9p$xL;{^3EvgCBeNv7>ehSJy(<nj-W-=t^nC$46zU=4RQV1XOOYrbqvF>d zx%If)iF-L2wPvSu*!f5^n7zvT$iJ|;F4o$eLxFF|OszzUbnME%kfM$N*Ss!iPRVnt z#ke2qe6>7D#9MPk{TUHo)Oo7?Kpa?X{K?YH+MC{$y?k%W?3`u9I$N!IX-Nn96}QsH zX0p9DZ;h~_!qj=I%I}%cP;8Gm70;{rj<7TCIlCoQhY3{bvRd;CIIFHUPw@_5Pn@^G zeZf{g=+EOb`>xQFkH_qWv+%)nw`gtM^~nlOkxuO@kt6V^(+NM4t<v{DyR-oMgrO^x z=hpLMYsd-qiB=Re{-=ahhP7615oR-Yk&o6zg7B=YuX$wZssoI-q%-sGIrZe0Q*U<5 zYoJivL0MJRW&3-c@!iW$o4+c(XI5j96Yf;<y*PgOexhrVAzneRO3UR{!iV#y(rMd! zcx>zw9yx}BWjJfk_Z_5%%MX7D${teDsjNK=N-J;<m$y1zq*1$a{Ib%HS)Q;ZwJ^S# z7GA~rKh_o8q372(tHFA`Q{x@Vug**Dx1{-kcW!NZFv^KLcjN(iFGacCa!kZw!4>U~ zq^}>uN6@jQg}&jMR@?8Gg*#jF{MsqIh1}DPR%I`xAF9kEPF-HLUyk?8*2l3e3D088 z=b&TOBfo(kGvB*dR@q*J{kpG6pz5^3FY*|PE7E9PIqlMn+E{noA;a9-%=2segc@?r zZKVY#5>F}UwQ2c%sGl`>RT?fk-?hPA8qA@ZaAy(aFKnOy!!?$BJ?kKq&<}%WC=v$A zS&K(b=$Trx(~Ivk@|{4QUnkZ`cN-Tc>2cq#p6qs=U8Urq#i1&X0>d6_a4J~OY+W4d zFlC*x(w#@#*8~rs@3)J*3+ivb(M{h`@Y%wp!l%Fr&roSp={(YOABsDXJhztaMOwZw zr0<L+nGFOxLp1Y)L$>GIDtuD*w(>?K>z(z=uT2QU<}2&4wcMG+9u@9PTJBADkY^rr zg&#OO=zfh&e%i{*R=CWcaOg&Li!VLrgYO8wQ_1sd>H7lT8QcfhW3G+6p<E}V`=Rqr zCDZg*KKKut<&*Ia74I7r^;O?OV+Px(@hfj9+_yAKcP;rInRJ&-;sNemwo{OCfEJ#K zFQ2sKz2B)(-!~srNL(&tjD@b^M(^tDQrUTaEqz~P)Z;EvE3GMN?p#rQ4eN<rnETby zBIsRkE$XCs5wWE}V>u&jjlUufZ5+ZE@4NJMpMu%~)?w^li93Mht++dcZwc_g54wc; zz9ZKKnI94l_^zXSMm5ble17M+&~-l$=m)vlyu|w;Aj`|bgOUH`9Gx5Cg?XfBIcyf- zJ}TzcW}aKS<Urq79rOT~b@*dk|JtF(fdy|>b;hhNX{BJ?U3G)bc{hxWv-Vv)sGt^k z30FjD-kl<%{@EwrP%Y`TuIYeYYuxR`eN~j%9AxODkeZHLD|H<ma(j^O<>CG<_YG!$ z=)vZDpH6Z4(7Ss1@bq{0jzc!K?yd?76nC_v;}Z@iW2Y>+lpX1oRwL;$cgK7Z_gOKw zu4TOrm|H`?H0E95)tw$nLfHe8Zr|Tk-ygiCqP=h}=B1$+muBsaTB*Q^va&0FD!+Sj z;g5au4K1u+8h2fBCldFT@!-xb#<&3r!5z#^Z8w9K*K~C7-DAFk%#Uanl8d^*I=Gn+ z-WVU2T+VD+cslOXyof8S=IlE&%kEI*Gc!Lv^0S#ApZwYU!<U|26me;eePrS~hfA5~ zoni|+ym5C?y2p!qq?l9k+*+DnJHz#dUi)Q5&9`4SUY{h$m)e-}a>tW0K)>8pdu>}t zhHk(kwseXVW3Bvh5|5O;-}sf7Zg6`K)OVS={4x*B%W;2pE$))O)^T(6nz~+xmGCR= zqP*1{1RdLaN7lQP#|PXoMgPEK1?wk}?#|W?NIc;><5_??Biac+o&^oKj|%=mhXL!5 zU|rxIxVP+%c@@v8#lw6Ef=-Dw6&(rKKULOkq&Y3hB<Awg=C}y^`kL~NU)|Lg-C@-z zx1@rJL6t4E3ilR+xa_zm%uhf~hdC7YgV&+|-`H|p;vw{`mvI=^3E0e|6_^jLHgvUa zF?N|Ya=n3018>~tmikEMgUk!Qck2ti0j!JMuewVbJNd4(7hu^osb`^OKDCs~F6Py; z>x;7cWb5we9s=#^GTZX2ig@=JFGqT2m3ai$c1e2NgAH9~+%={kOZm+!FyC1RJ?rc1 zyQRI94b3-xvl_ez)OSOkU9^4xy3h?>MISWNzk!A)_B8daf8E&Cwh47;CHUgccaI@o z@W8AZGo-PT=MSv+fgca)!JHEPmv2=so*wX^!OU}Ot_yxO{j?+|H%gSpR(WlO-z9rh zn_tlkdu%N?@Xgw7W<G!ieBav4bzybGHCnIlcv0lLs;*}{_YJ|gTm1^kzP_#-s#R2d z2>|i_<%qU{IUksMPH(R5>Iw%ew*{#lpe|VE4lQQBm(62Fu;~_s;oD&~?gp=|A3(p> zp?gi&sb7Y8l-<nV7{0g*58HILKyT@{Y}9#M<(Ft=I@OO{s4(1b4yo_qd)l<z2;C6I zZu45UiC5oqdxJ^VxnwEVmtY^abuDc4Zs5M4zQ;#Kq0~k3E?ngMm7Pt!A!|?<r1~$n z2mhKLT36Gld)?5LvbDDR!rR84KW{hnxgG8!>CP$AJ-J2K*%@fWn2PTU-|{YUNiMrF zWB2a6=hz~%`*d+nn(ui_&vLk|Uw@6Mr|0b+SvQ}IcV$E0<TpUr8e>o2n@#=CitL!T z)*cbRznlI$y!j^j3+QS=J>a|Sz9o(Hn!zC5R}yeq_tF6UVsjnZJ??^gmbSsBhl%XZ zCRpx0TalwS{Yc-X^5d>}h^dd*P5^8G*1TnG{hl`cT2oI>xT#yeSGEzs@z%<%4r3Tx zXa9P*p|d~G*e}hS!tfp8ThefZ<Fr4KR)in#xHaQ-v_o&y7amI-FQm>AaY|iQ0`AX) zd;ZcLf4(QbuDLG*`;yApK&FSWzS-9QADbF`-%;lvXdTKG@UIxV3wX>3K))FZn;G5( z`e&p#S&r6lh_ri}`j>6Fj=mIqh2!PyyXP_j@IKvD&=K%D2net5Ix0{wJ%YdN2Tv^D z^#HI&s|e%t!q2Y2x7pMa!FDr3Tg_+#4do(S<iV~wo$w2|9gWv^F^%@oIeSHzl2!@0 zKM&*G*wp)$lG+L_B2Lhybw#{zMZ9?bbK|v@>!E*uzb67pOn3HNm`CCPut=wN1&%js zyUV@PD-7aYolXh656`Qu*OW7NoUg#EreP?*wJg=}9RFeS^+~T`+z7z81g{%QX;gVh zdCG{?X@#Go(xJy;eN}6gLus95FIS|O(><^Qd`f;YZt-r*wUwtDo?#-c(T}!bT=6S2 zomSEa`q@?e)M?dz26-Rn`Cc=0O8gUXs-*YrRd8u}aGw|jK6V)e+^?=Tc3$@>t-W(+ z+eZ0ictsXkT-tbke~_OVzeKOhgNKEa@i5+3>U-X^Ga4nGI--p!u9eKRblG~hlJs%V zV-Ad%15X3e5l<W*p(i5zeZ2gw{N(m-t$hg=Y|QI$T7bJp&u&kkKjC@igE*RTs)~Z6 zYhD*HN?RTQJ|)d#4|k4M`+AlKvxi-ei`9m)`*Ohhc<Fg=XBun;7txNQc4?hef@OI5 zu_jA_?=j0&900!r@3cG<P#dz^g6ChXr)NKir{_ORq-VFq({$K`Sr)7RSilIrEAQ}V z@jd3hnmZDM6y6K|sd>iGQMjw+8dY)gg<YBS-1bECbLe}X`#6o3M3&QgxHBnX6!l(u zfzF6aRlg07)k*6lYJ89RFEdDXBz~yszgh+YGBmki_pC@g^v)#E^E;B@#?!QusQWS1 zhXst3PJZz|nd9emI=?*lQvTOD=rR8lE)Di*_%382WWd0C4D@qX=z!q9{`rp+>G_Wm zrMmBQQAh6=xBYxDLg=ABm9x_~4SKWB6|WU>kNGb+p>gFtL-2?BuE;<J4M?a<oN}rX zJWr(2(7p2~=pUL6-Ah4NYX+^|?MNv3uKV%qWY$r%5O!@ofxT7<g(eRPzlMyz$yYV6 zHGaX5%|+c)9pjql`A<@4^sZ!jfuG&!#C3mXRhQ*n4}dpB7d*2hBCBUoL@Dft6_eNb z(#rye(w5{r9`oPQ9}B)H^<6CkFc0Bh_KwllPk;?J@ZLOTcZ#HcX~wx43cOl#T<~{! zRH5hM)5Wkkmru_?FWJ1v8d?>vUnJs1KEi#>e~Gzw`WZFf;TL>co8A(>@M<IKeljud z$Lvmq4yX+1!`0JXW52X7;e96Wfc^Oz8oehA{Zf*dUB^>}y-7rt^W2Qj+9NXgTXa?Y zuvPc>;x3{a?h1^B9mO%bQ&IO*(FRg*r$R@;iFI!#m6d(N^(1u7;r)eAQn_C;KM&nx z(@s{9-=&HJ3R_iq4U&Tb@HgfGKh!*Do(y`I*|99KE^;>Xy)n;O?-lcZEOdN0oGEVK zoME(gIF{8i?Nqs?ZR|-kLl2gu2W-)W8hSOY?nMcWE#7nZ-|A21_aL4N8OS`@T--I$ z75aBxgpMttXNqmPzJ&KB5g9G>kE9QbKT?1?Z)q3YH@%2)c|7d9x<r=L1Gnw7W`E<n z7kvQpUn>J<Kf=E1byaVg3>(X1_ohMb)g2j(+mmJ<FX{Y(E-ds(tpAMLh3K1RV;l&K zsT{O_C-NKQ{w>yhu6LSekPKv=tjcQIx)}4#7rDM`bd9krAQP!S;yy`wWd6UnH-j9` zLoZ`a)30PX-Ywt9b>FHCB)NcT?^h1|+&!)i^LOZ~fnG0*&bvE$?-bp4`z*TeB>i_h zHtb5JNw7=1G^(^fsoHY;vew2Fn7<W|rrvAYfnbAwqA_z;6!b|!x7v8<Ruekr6!)(7 zV37m2mH8J9v^-uv{5|`>wKgz9-mlGR^>j&XXI)<O^1)1Eoo3K`$hwOp8{~=%SS}hl zaC@;ok%v<SB(1gGC0}ba2%-PAyVlCC4nz5O=;^y|(beY3r;4F(5jwP>M~dzGjz5rL zo{DeZ2}koV7s6PqZ4*KcuuVQ|UlKWdaBQi<PIVp++plEuIrj`#ZkhbRWYhWiS78_W zP==(x3VO`o&x9VdLJCc(>sXgkdwUVqdsz3eGA<031!R*+c8Ahw@wVgM3Ri~9|9<0@ z3_i!6;mRhHz9y%AzH3@L^k(G@(i`?N?AW^|HPPFZegA{&6~Ee1++G=y+e72<Jv`RR z_%QB3rlfyx?%_0Y+<s!Q!kOXdxSx0h`RCX(T)9B{DcqBDkEyvn9eY^N*Jfs&W&Cj8 zvoOAag3}sKh!Uc2|I+c=zHOUI`f17u=s(>9y_cx-JWh+TdK~nCvOd^3dt%Au-Mzn; z(hf(*{lp8RKCkX@Ws>O*O07G-C=vQ((ceslzBGPV?<kK0Zm@y-vCzY&D(A(PTW)U^ z<Bt9LDy+q&NxDac9C(ao8BB^Oq}kge`@BBbeaB|ca5SmoRryI?bsYOY&p$1#+IN}u zwYhC}?in4>Rh9>Rr_jsE5BSfra7yo>u&kE#qL|8enjDbSe)G9EavIDFF6*EV88SG8 zxf0Krr1pS06J#(Qy5Z+-Kb<Ua+%+dsB8K+B{_)rDH|@}vA5pB9-`aO%ySI+M?S54U z9m18+6PIho!>&~KXJP%!C!rRWUu7G_a(b-{a(d}kTOosa7i(zD0rW-avm`ml^VXLz zPRxZ4<Hg%gt{O>6--?L%d*A&Rf91OS(o2gzJ{vIqlgo$PPG;u?Tr9bJEEx&H&jLov zYwf#ClYeskMSJu+laA%kRMh{e(ACHMXPt!}S-4A7&^=utU&DWvgNRG(qu*{VXoIe+ zGK&siv>izf+!hXE9t#@*c6(#Vf7|~5<}@n~9{i_(-4~v6+jaH@=Y3ZK>~~(=ylD63 zbMyDaRLuJ1O6%;sIM0Ibk2#T5w6fGpYcrbO-;rhI9=jmm^W<uIt$mki4a;qDbBBJ_ zDJKgg9eJ!Lk97r3#{7rJf}r#UtGeh!{THq%`lS|Hw5jYmbnHS;y+sGH)Q9mm#Q4L| z-;MEn-mc5_^LJfIwA&TkK4*U-%{rV;v!SDL#>ryHy%1x60n+BtXsjVk!`_)c^w({# z?w>94_}uqDT3%awM`7M5>G+{L?6c2=eqYveJna;8^x=UF%+sN>aVb<)zHgHCv}$k& zzN=lqpQE+cHihQ*(OA@79zT?azvG}6dop-E^>issjIi+er9(MrFVG8ofFJ(GPRE{d zDlLqz$M=S*<46lx?iL{fk>4O0h>Slku7+2GXyrKh=aX#AVcm!l@1bjX+8OX4dJ-q2 z4Y=p_(u%yUH3C+PL-0ZC3ixfM?S)IQb~g^+Z9?}j>mp`ZNP7IGz6pNS+6K>C!Fw~W zojN78(dvw*>|~PdyaVxFd5Ln0Og|5<pvjgi)3`jVd81oyx1^VG26)d8bX`lbm=|A1 zzUihaF0TY`1DBQ`;+@mv4baaw6<|JfqCn!gS_ia{gVZkMwGEcTOZzg+;|}IPPYmvI z7qp*|NtH>k>`#b1ge%nxHQ;CIx4|c+?#i^SD{B9f2lN5Wj4G3KY_nd(8F-lgGtQNe z7xYBEQrZ6px!`xLQ44&62U=IKV1G^ToBr9ISijDczT@~?&Z-<BgK=0}nuK$^f!W>A zN#1eSTvwZi`d#GrnYzRAUarfZ;2eTSQf>1B)N$7D4SkFjy_DcT_dTvTxNDo!`iW8& z8+g^_x8~>c2><45IgQt5M3$iqSiYsjH?>+0;|`{qXTi2gNLCxYUvtA%<ZTVFwJ-ty znYuRkB<iZ5%|Fc);fy*tBeGD@1<Cp#QUA^Jp$F1Ct)czQaA!s2ysYs;go*t2>H5|O zAiwdb<H|R+ysp8rU^@*9W9un6xxVic{Y}f=Pb3z2M&gRRJ~MZOybsQ9S?U3u<};&8 zEV?+=`Zy8hQ`k@I%dbyV$}tq)5%7rdfPddwpVe@ibze`!oL0!d@@<W8vI~{8Dyz99 z7WzR%z9Zo|!wC4#)E$aPA`S$u!MWI_srAtRtb-oV5;N-qmGq&)osPEPf_^7Bw<AI+ zi%4tBl>vw1mB963W%qu!lxE2Wh4ft~)|QULW+mpntFGkzNx%+;PaP-VKU3EhZ`9!+ z5OjaZGsRf57<!0jT`V@UE>h_Dr#aBUI_q4qd48PK@AR?#2dO;j^w#{ELaX_r^)qN> zD~%1y>%{l9Wo=2UZ%oFw_8i!kS-dai4S`ad-rBo>{Y+hJe9?x<1o~t&9Cm|k1?Ib? z2bFc9UV=W@3($#sp^SV>uhFXV?wLw?w0P9-3eX*oH6DpDhJyc#ujDp2&yK1@|6^HO zl4Jn>&pcO7iw-5`D%j+_M0%~Oz<t&pHBYShW%>fMnmjzAQ+O_PP|EfV;Fd~qn029u zmKH*9R6)C<UjWRqIp37xY?NEeC-E-8-zo3j?*dyYld!HNtucZ3Y!hNC&gsrOoOClZ z;>wc}tSWzjgI$5=bK$CJw8<|J8d}i!OV6BET8K3U=zx{&E3l0P=09v~q?pJ%tErpk zq}sAu#XCgd)x1*sMUvgd8*Tyku9$?iC25U`*O?%LshIQ6$9KolV+mu2q(LD1tlbgv zep@H~lV_T--2pm>x!$w>T}clw>*D2i=w$Z8I@wy?P3!mGt>rUJ+0}ek`#IUU9{O1* z^ngx<4UDNLvCe^q<uK(`0WG*xMb1Z)JQVcS^5(G5`e%zSb+}BUcUtXb*7?eMpC#Ti z|K*3r0MF9v6kO8%ky0cz4r_h|(6&d-bG4sSU<2VhYqA@AS?BuHQ?NzCYke$((*>Zh znw%n1{;XiOmcKSk0sfRc+Wf7(%cKP4wrue#yGHY5-NQl$v25eS%zBA^b6fP_kwyQX zHC*bjdnlrs@4_#Vug`DEUjW-$7F#HmwZ3WKza9ARcslc(fV0~7sp(Psl|+xwqt4Hk zU(Vh?$28lgxQ7-c=!xyBEP!p91+p9<4>OMi{?Pxp!AQT9lGwth4!?(@37)H6k$h8O zd#ppENm}RNwI;T2Hx&=_-{Ewo?Y&7gE!O-ZgGc3B%TpVMyhDo{e(nkVn+|Cv=$wX4 zmss$g^-rU(7c%gxzD+C2dP5abwRp7e3gE~*YQ77<Ncmb(+Y#r~Ch*^~-YV8y=S1sp zUM@3Dz}-{*XL=vyPs<N$@5q01b^DVZY5IEC{5G5wflVFRuFS%?N@6*1-|vaDB7wyn zF$%fXaH+!-z<cuuz6)2R-dNbO%@wv-ro#>sueXY44(!~`KNM#i(iV-HF0Ef=@UUHN zKGxplJiRmPl0D0ya~-yPEOu?GSpT^6a9eQ3+`~7orSEMkHY{z{xBD!Q;Ja`Inhgal zZ@Oi+Vt*KRfK(65VHRux&DwS0#++>@4ln%kp65jx#kE#;5vBk=M32Bdlq+ZFol*O~ zZ`FXL=h>q3ob{et9@YVG4_hmN&<`D6d(%>`p>T@0`z(s!x!M(|HWs$+bV2<WYp+=U zR^%`P>)^94;v4Z2p5xdL{^)GUy!Vd;xQD;-9g$vf1&zX0A|8@Q;2p}9v+^rw3h@JP z7lX%a&xrM|+b7=PKieP(G?*#0tZSn}-B5Tr?g4&kz6-xV7hc#N>4^Sc@L$+MlJ+22 z7Lb8t8wmSCb0CNLQCK77HnIKWp#^{5tE|xpd`i1j0v>{AINqrE6PRI~;8)fI+eIdV zzIU^1Q_7<I9&%WeP-XV1yiP&I9Z3ph!{Ju|@6RK6u66~cRr#%{i<3;?G3vT%?R&5s z<ozJnDdWAkS@>R<d%03-6Ek<5Ewg+7NRZv~*DdGh1mcI~4#yi2kNkp)nttVx3A--2 z%@*D#!={&bEN#H-RtP=W1ufn03%#Hs{ZQ@$lts;RwVzSq{fQMh&9w`#$AdLj#TJ%L zImqJ!+stFzdD9?^nHMT(4rDiNXB5rYe(LnRPogGzo|APJJ^<ZH(xLbw;s6|;V*Hj@ zMr}LmwU>1Lr@*EocrPB-_3xAcyCcx|uJrkwiNImYRS3CH5Adq_F8qw`L_d8$05%xx z@I4~dzSTC#*ghNEWaGYx_aoR=<8<ziU<aDN4;Cjv=Qqagz@k3rw!cQ}pvOKav8LHK zQNQ{=sU4im7EjdSNP#ka(KB6N=u_EGjuv|ZY;!?+APZR@xcdYB@~d?H*7bR+aSH!n zYVPk%#wGa9u0Zs5-OVw+`5iR-3i@{5e;Bj}fj%b+e2!*>f3e+f4rXT@;evNoz2l z-k9Iqy0y3?V_Q}C-aWO~J<oU1gc{hI2Y$tlvdHJYT)~5(Tp6)XwlT&}cY}G)_SB?D z@Sk0WBpvk1W4x{CKBmwz6kZjN6!`n`Xz~y;5U9e-dS3A;=$7^!q&*0>^Nc-+Sr>}U z_OUuzRoqRm)!MtIw4?f+%I@Pk4Fl^BH{6<&e4Ty_T$X(yf$U+r8oI6a5psThImV9z z>&&pV0DBXuu(^<SM+UN8JF_qB&jgos)WmAe%UZ=N@_rcQ5x7(?%Rr!BUf7wkB)v)6 zci{DJu?I01wxK+d4V`Ct=tZcL{+56r$`!H|?ohBp#;Itv$sZYkcUtw@K-jHt$u_}` zoDuyy_z!z}PO$SL+0}#H7muP2%yn9C!QRkQQnGu%KO~*QMGln@((dS^?|Nr6NH*Ab zJ=XGAWUwToiQHn!BW-0Ncs!JAEA5csL(weaWCVWMdhbBpb#lvt{Xn+mmkC>bXalh4 zCq0g^z2chFNTFEdU90aK+4%*|<6-;+t=3!_|LW@N{$5!7u!C)F)gA=f+(vzBC9lM4 ze?iJne6|%Q(vH}*MyobVM&?&wS{Mi$4@+VDgKY@9WE<I@BFn+@pe;CO)k}5~R_S|# z6dJVnwC@Vw1A4T0)$cND|NOR6?t2F9MW7wbN8jVZHb`@u|4Rau)7s**t?+v)fto&B zei@-pdes>J@=o$9h26+(*f6x%ab!7256i#_ZGr6?uBh(buh3x&uR2@-egKaepVlv< z-B5e;IbW=I&tp4~ybdn!0dd`TfK1$z^jQi8Djc?WZ7p0$Kb%K}f4KhME4Jv@URego z?hS0+m?b-s7JEOE-5-_#^FJ7U&Wg$|921uNlY7WxIC6)KA1)s`v425Zj7x5ZwEn8> z13?bFH?$P<A>Yh8n|Fk*@mhopNt?CE;pi3oLt5|j(x1YH=WVvF1A99X@74B(q;`OD zAOPd>^74*G*tq!zDa(7v!y1Vr4jV2X8PV#>YomRzCd>9OEqf4m_8}G}8DR@ne@(G- zYzyazi5ddX7H(}gQ23;m{Rs9HdjkyDExcFTJCf}_u}xWD*wtNL(M22D$fEC2i_6;k z5G0N`${Jp6n2gLfx2fD2=P$H-LEH``d!(85ceH71aftU36J`TY;2F+E^1wXf_q=ip z?SZh_2OFl6eW9hfgKbW+En6NB!s>3)M%}g1O0FZoufX1~XSh5#Uj79YwyyHQnmF%A z@IC~)VlT)(sg^vln`l){#}6g&q3{ZX_u~$QR~-l3o&|<~^2)2N4T3Efwjay(&m<eF zu<<0>lC{|W!W<vA$Y3W2^Gp|oBsDHueg*hGJ+|;_!+}1my!&bI!gg{<h0R6SVHNv8 zi&zGbg*)zL_!qWV)sKGHxOkuB-i1d?r+5c`mz3gfd1mR$gBxyJY>pMN{Z>4f?|ZNu z_+finh0U}EABk&CeH#?A1fHQ>1^7NaL*Z7(0sU?rJ>ivESMOTTF7aOM1BpF3d#sPR zz!v7hgHbm1QQpP7dnH><(@=ikb-BpA*Of1CG?N!>MM}2cz<*C61GXhx&}e2Gcx%D? zRW;o^6mo{bE#eg5`|t=HBXMQ)o@s`QUKRba-QB@^L6R&ao4hq-cO-^pzqRM#k6k07 zm0|F6zmoN&#QP>vc+dP7k7UPKmcvTe_FGlmb>};MB>CJ2%cUeE!L5do^YKpCALR8X zwtuYM3sUdNp$%aD1Z&azF4o%F*;&>w)%a}rhbxb*blPy>ak-d+dS6o>0^Y0b9}3>9 zUA6}pR@-M)fA3vwRht*TkMw6P?Qmf-Ztrx%9_IZLtP2YJ%hG-j+a6XuiX32*+8K6w z?e;`oQOFxEuc68^lC*MqJGswc-ph8YW!sB)>^BSkd&4fDAM6+}ICkl6g--U2G(Roe zAS4e5k4I9)N#?y{n(?mvAoZTyAUUv1AS-9Ana}$8#5#p6Exp=z1yJSD!dQEk!GrS~ z|HUiMpyM?It$kc!J6r3rEIhIeXs@Tw{npOTa!#A^S<C0s2$Rd=em3g|u5l%WJ{5fu z@74Q3(q53fA8HS~(~Fqj+I}fnZ+2jr#T1j>w!_n8w8NK60hB$%m01S!ODy_<cY&c! zva`rGXHmDcGGJSzTK@Z#!oD|bwQ@U{fAm7@w6{K-Fo=ZV@_$(Is!ZK3<T|<}l-}~H z!2Un4fv47*c@Kj3g~Wak?}K_5wbQ!V8x+Xr1lR^R<Y136ShNKPteZRG{J`A9(YI&3 zz56LCi;>W)qGiZ>D8qTAmOka3Z)gvN-CX~QHuAq?H{2oz+5V}p1uMxxEenok8Nk-1 zYeFH-*?DaL?;RX0_U;5NBcc0#U<7`+OC#f9dpz%=Pf0tu7qw#V0ecb5e@O=NejH@L z{Z4@HCao-K&pz04!~G*;@6|V8t8=~aHhJOOfcu_>@>~dKXK+3Y=j0DwtU?w;>&g}M zt7x*xe;LLtG4H3|dHNo<SuEKsN8M*T?JNU-?%zc_kox)##U8IB3(QMJn}DraGs}S6 z&4T06*XHazyzx(-o))`>BcVyqKb)(^1^@g{4*&a-^QmvS#FvmaY+<|LyWBYww$FJV zNWB-7R%_<IC)fx(%cbp=JB@etw6ckQa=2+=-3R*a%B`?LzDj=sc7&m@gZn2u&S)QV zc1Mov4xpMoYh{t+m&WG&&L>xQD-676o7v2N#cn*>fh30tNe1R+wSAze<7Q}8`z@a` z**><aT?iTQd`YqmUfoST7#kLzyxKqKlcR4>e)XMSsL8VG*V1Yg=uV*hu}jZ7oK4>E z6rG1Yu#1-B``abEe()Xy??qVTV0Og55ZjhtRnd_R1JGZ;gK4lYwx9m6&vb3uJJp>n zTTHiUdDS)Iv#Tt-sqY=~RiL%>igyJ79uX#7InFIMXPjR_E$on+CEg30^}-dhfbDg2 zNF&;6ZFl>Y)`4B2uw~Eo*lmpuVvJzd7h{4S<lqZi<&M$N?Q%FOd(Q4-E2q4_>wliH zv$NPVRMR?)-){4cCl?)v`orQgahn`2q?fs;L;n)^?g5+kZ2Mfcd9Un2h`k`k4D7+> zHPKqwlU}duRqTNa-q>0<M)==FcGHaA_5G*btm?YH3AVPqv6nY>`>`nsse-R+SBZqj zO1MX6`TRiGjSp?Q$@b#Sfi*Y_Ro#Bq<5$&YX1l*D>w4(z8}#ed#=cXb&9~7m?(|DS z4!)|kAoWe$FNrXg1NtR@xlK677n1#%xaI}Nt|ZJm6t!#ip3{Nz51(JW;L!OAc6(1g zGw;CJKg>H4HF4pwD-H{eUR-8>GWLLdWODM7OBr1f&r923tG*NKAT1=>ozH>2b*#T) z{ZEkr%Yymugndx9%^nVe&YN)GU9g6EE_fsOuXY8TaA6w$+o!w9^(|dbc|cmtO}C^< z+uz3`5xXKEIm|1w)F-s@I)$is&-_;&Sq}cy?dBD*y}Y)0fHw8h|3$*S^Geuc57fh^ zwA?pIa)2zPc@p}3h2MhjvMcpX?B}thq62o>JEeBvFO3y#<il$l`8dOrQBAJNrFhEV z*I_Jd#CQW6@EF^DE76~U=U&CF*c-v#lx59Ns`q05LAbIU%x-8CtMDDOuBx;3-Nu{a z1X~92S>}&AOzRivguA_!e!r%?`#I@d@K@~$Kz2D?{&}VpuU`qChBOR-k6mWeeXjp^ zcrVL=$AU1l)wPh*7M#7{<ZF#R;cI&_MngWz7{Oz8MH}qAw^A7Ts8whiK9G$!&q*~h z5dD%O3+5~2;e)=3ZOk)|eI(gHK5)J9?uB@-l2)uYHDk@S2@lqr^5r#G_1=T<%X<)# z93Y>-vJTj5@7rBO@*WV%q2(>VGmor=Yr|wV-f`4CSNrckC_azWl0CdO9D+K$47?8# zyjQ#24}tfqc?}sh<Ttm`vjRa_ZFe>IJyJharO3eSSKUGDA(u_{y}2JX_NBwtFs+7+ zz0v1*S&_jYIjH7N;+tAp=i~MuuQhq7*ZQ<;-<ant6};ED-q@RVODxq3`q|a;^FiLF zdadTU+ONvgE<EDzd<tsLt%V)$kotZKHgubp8M;^o(xa9`0LB7d$6Q_8MVson6@4F@ z+HO9x7He#Qumdl~3GSbk)%DYB14OSFdk)3QXR1zi+*tB)Q(xu#{TS;Y#{gZAr5-~T z+WtwIGpXdjVS@L<<+Z*+Yp#%k)bFD$uq*9BsQHgDPt5-vWAe=N51;vWi5=k2gYa9M zcBK6G&aKK{)nP`x2k+~8%)#J2KUQR5UWa<TM&H@LrmE$)DiMxaW9s{OZI3iZmH02l zhF4*meoNy(m>O32&vxIMvb*`(#djKd>21hj9p<<}`aY?jVIHgdCu?%J!+Z2QyvD)p z0MAl(OIk3Vchf4YiwD7V&u_TRGO)<OvM0xTK}$1n_Vh&D{|f$(w4c%P+S>a_`5)GD z1NFX#mK&kF2v2Yw9(Gv{+y>wV89Hghb@VyL?zZr%=AQ^2vKvA4_hH8F_K>C<mTv^~ zQR~r`!s~i&Y;C<ZM!*Uh#k+9xp}Xa1$92D5E!Sh;HTCwt)o!Nc)t%fH?iwSweMqw4 zv7E;Md8`hE+(Jw@Xm!(VdIjxpGy1{JhOXB48~P8wYwT?ft-VHW`6jb8Hpt_HC+0@p zMNQ;*KJ~7<(}GsDE9hlc9d64%QvQdUdM*41-<R_v<RHsp8RqjFp$&g+eUIVQn%;j^ z)4~2%8V9C_qg@1`?^#ycLz{0AZLIIj#2i4fsl_lhY2--N4{%>Q+c_|MQ*D>ozXtOe zjKP|DD`e7&x#CUQiuu{r#sS)b`tgRLyWwqPcg6<|{YO4-zV3Ilhn@#6X>I;;Fa7$1 zmRo3-z2ugQeK_#nlOOEI`Brq&l8dRYC?u%+Xt_U9;vSJF6m?(yNHVa<!i@fiUNxgG zH};nvP@m&vI_2N$hQ2eaF(!mG-k{Bp(`%;QJtB@>TfA3?tKr%IdVQ}k#5ACM!%5!| zsQdg~x4h{Vt*`A|b-J<lmyrYXG!75_5L0)X->Qu7MAxmw+tJ7IoXH*ganc@jVUsk+ zb-I`_wEhl8@Cbh)sQ+sIvmgDDIi#VFwtz_+oBGmuZqFnz&$wMlF5chjqHl#7yKk)r z-#4M%Z)xgN+OnFzBlU}7zE$5Fv%1Z!e8-73rXchqzD4z20?wAJ&QHJ`YQDCL=Uz)O zwqT4fd!q00#rK7COir<Y;j-QJD3OoG!~Kuc2g&^q_-|g(bWP%YcwOg-h=>U3p1-v+ zt!e1<dLI$t4ZU4&we<Z?P^gBz7r#jVZd3p3uV6g)Rjo1kqwa@czT{tA|BiqYbz!(X z1pMCS>&M=N4BUB)#+dC_4gSaFH;oPt|FQ)08S-D2fq7-?O?n*#+R)JRo}gP>P7b$= zpf7D`>}}j&>Mq{i*z+#}b~s)P6)$jn)N;e^HGI(Xw}W4$Wt}e&^HiP-1Qr|a`mP@e zr-)<R@PFy!hW;!bquu%28Q<A12}M|oz4Ww{_h-QW73gOK?|E+j2KxI~+XliVdiYO8 zle#Q#w+{U5wbpCf6*vj>!ROG7Z(sYsFJ5cCg}bLc(zi5!PlsY1(66N4rk({s+fXj! zt|oeNTYYcas%A5JU@Z48Fp+&^;%JUjmsRmg5s&Uq;(tS*c|F?YtDR<iE43?UTSQp| zE#jSB%sZ9)OX~39{Gueb;5a^t=$|*&_x1<ldyv;NuogmL_&)H-)h`t31x;$#7S222 zqojF5R3H83gQfx0yPKHLwvfZQq$M`-DiM#y!~EZbIpc=re)Fd0YnC-5WOavTdAtSB z)nS4fb=Yuzkw&=I;6>b4Q*Yr))OqGV&#nAQ8#=>_iiSP!VGXA`OyED&erw`(e5WkK znZ3oAQU{GGYMBc7N9D?Wy^;G9B@emJQPcgPeg(J6V-2T>#u$7$9N*6YHJ!8y{bE3I z{ktM=5PwwtBgb3AsSOi&j&#zBj}Yk)opV}*-Gy6;cr>1kE&Xxfm2Ju$JwdCWL%iRw zI~3K{a0>YMng&9!u1!H$Lt2itzJP4KrGBXSt@X=^t>M*%iF`h6=!;lhWa=Ch9&UZ_ zRscR~*Gip#P#KJbWLtdM*>=lrEBc2p)P4Wbh7<*tmgnMK0kC+qc&)uNB*MS=is{<< zK-mViD6`^f@IH!HL7T`^yt8X9OdW5_KT<larRTH}*XT!^F-ERM8}KhOI4Jm3Gzr=y zR{^-=v4&e4#?ZWm^%fp&9KYYe_Go<CJVlw*;Uer&P@v97_&Fc=zp|yV?`B{{<88;- z*e9gCZSj5xJ_(#dxuRUwU_{)ba;@emms7+&s=OJm$V2Ul{I)domM^bv8UAjbNMOZP z<Gmlh6_gJ($QDhHvd*guU@d<U|7t_e_En~Ci|(BJsQUtswLC@|CU87<A9LU_2Oe|a zuZ;t|@E6X7!c6N6qn={ls8LTm@@bbPpTDMmj8FG6rodjo_kE)EH^%PHpg(Spr{_LQ zpg+O=!~3x`?N})VUan4y9YPPxaC!YTvGy;bEF+Y^D9hUPmYoZu4D{@_I7#+G{(t;1 zkz6htX+vt=Tmj3nR_0@}e>nL|X#|4D?xW>^EPIyGP;wDO>^9NUKJkt8!p=0Q%|8#B zv;4U(Og>sn0avQa1gyaKSpI?|pF>yGCWop6g7Ver%@^jLH_$U5#1YG0k^lAta)~j~ zhKvSB0jrg}5)O~38@60E>|_6<;eg=1kQ2XKs{<nUKbQ2r<eS_^&+SO2=OAw(|37Yv zr-_FP$@g*<ZlBPQYr!iM^xqASEt2%6i2SX&BG1R}BjSKY)<e|+rhw%doKROe{dhV3 zaa)4<`5j4?w!b|Q?-=*5Hd1&-gO@_Bj9<bl2l}5Ydf7L!u*^F;UAn(!P3|I0!SmSj zNI1ZJR?A%b&T&$hocn9}U0zF*+UZZ+=R@`{u>A3$F2I&;KH5GGWMJJ_0$1S{#0Q<t z4hT%b+1SX!y&{b9+j<1dWA_noK$edrUzK0`F4}H0?l=U-8G9!lDunzKF!zJ}KbGZ> z_U{tgMC;N_D-=o@r|RbynS0Fjl7U<=>gd&sx?d|%kL9nh;#2j=GFRHTjXEG`T9?`U zo+D(;vLF3PGL7Du4EZP1pLQhDgu?~ocLfK%#F-kE>|c*5{IS>R?3@MXsxdz(BH#06 zr2?nudjt*Ien5eH?0L8xklUP=|KeT9L1el^M^F1EG|<@nS@irTNi=#F<d5eC)Pv_f zN+Opy+`UY#3l#9eT^Un6(d~Hl?O7*E=>I;5r$y)Wv?@*)BH~4U!WH?lD}^b5k3A2K z1A@0Br~@L;m1)gU3$Uj1{KttjW_Jp`2-)-V+|ESU_AVs9XdJQ<<G!3I=v?lqrBUTH z5%Yp)Ap6lf)5-mOIqfVNTJM^u1CQk|xc_inrESUez~;N0?bfos>AvZmG<r{}By*O( zc%Dc5cS&fXH7WJMg32O{0e+DMC!H?pY3#0atPdrc@zC_+WfX9!GETsWHgC;U>VN|L z*z-_0Fr3WQ@p6Vi33c_;PnUCFZyvKdRgwK@j02O7VLXq<rE|IMhbPqhKd&>n74}g& z^cBhcZD8g(;-4@^IAQL$Hc4kw-|JoV;Gq=wF%pFXvTOyPZMJ)clYblYI@Y+Sv`gc> zMfNOzOC5M&R|>f%w$j?P25$xryHq;G^-Mm^I$4Uf;6y16&k>%7{KxIhCXe%_H)6#- zX$>ucra`VC;<5X1IADe6HtPU#+*xz&hrV$}ns6i!{eB9Kh1~gJ`H%i21@=o}J3B^S z$;1Um6>MG#J1r9r<zar9Y<`jF2zXfj&*3}KF0z`IMOPhG3SxzpL9$oXK_$&&&wX=% z<*b#p;P+kOaxN>=nocdg+90*#v3t@;JS_hg_oUO3s499j-RSCfzHp!O6$6dimm!Z4 zcjgDuHv-^Y5WgwCZfKn<>N;`XC4HRGDhFiw-z96A=SsMo`1Ru634ZAvG;V(;<erND zJ574H4vfLW@6N}wx;;*1mn}F~L8G}(*p)hHe!z1?mjA>f1>}999GZ3H`!;Gh+wxm2 z#N)vG;(&_BEN4a5s&MWLq;O;a_lto^#=2RNm1yUw=5hPd75TH=rG5aiow7HDCLhX{ z#)dJw#JoVbmOg;j2Nq)97ZR%<bQe+dJvQC@D(K@xcX2=?V<Bg&bwExWp53<9J+(s` z=U;;C`H|{?<XYN3*8}bcUKHcPZqy6(0qQy8i~PPfgWRv^XiKK?_kuR7d8_FZfREh= z=YX28DnH9$kR0Tk-mC8YrGIKOO*)cKV<F?0_Gd`)zq=mX=@Z1fKye{=t_!0vXPk<4 zKfjBW<w`;1d<W&NqD$%z6yV362jYO1ubTHkbwJK2B&9KFVN4zO`xe=={55spuDXDF zqMjdE#s_IWKue;Hv?9J{l~N9whCz92=u%)Gd+whDTAtc?m)fD6%Z9u*XP>NY%=uX6 z==X)})vi1q+*Jp7Y>?{#_ZvJ8j6aY~?w6|Q-NL3HOIc`Wc-#lvzj%jDso}NFc^1Rr z7turi9FSzZG5t&_`uhy?%b54`GhQuwwclnvu=E9E(0|Ov{4wBaO{_xeJ<_D4d+fP4 z4%`Qy!!jC9I48BB?Wfbrhavlecn(<V0M`TV3oQMDJRXR;ps5F9t~eHJ0ZT4a(VF-g z<qYtUb<i5k_g3o1(98jAe6$rNbL`c^uE~B`9W)^#SCajN!&&t5A;_NV0o?JB<v7ga z$8sNUYh2*^psEYJ7Bu@v7CG)Xdqfe8Ejm7}aD|Y+V$Z$s5^UhTx`3qm<~bLtY5buK z^F+vO0zaq&{BYQmqd63i4qbN%^-`ZOW^cNg`-AZZG<|`l4vfXxkKN%6TJ-+$NQL9~ zLf^xNRfza2_1p`;WEO;GHt%#xYloaOY2wjr%LDmyJ$M<<OXvgKk{am!vhEM}Rd!x| zyXq#*!yEzM{btM)tk;46pS|~hkK?%V27T+b<!r5!WXtx?d$-!}yYGCy+tc2zzr9^s zvLs3rNil)}011E~0TMYgi^D95ij>44k^pl6Gr^p|0D#Cj5jp3aK@#)sy`HXSq0!yb z0}KX)IQabvRnuMhz5lCMRj;bWu>sc(jWidSeLNYQwx2#F^|~eXv}RnX0^h)ZCH*8e ze|>7}U;UC=VA82f0rT%L`inkdAHP{!1_80vrL4y;*7UF5Q``fAxJE#0La*;feF61^ z38IcLbk1PnfjN;W;I#8>1k1;wamtdmX~mTa|Aqy$+N|^rn~!s^zYB<~E}wg&f@p7i zCo&c7cv2)sW5C1{X%LXs1)H<GpM0AJ)821~e?M5#QM@s)7w!2{a2+t=$$UX!OnBo^ zlCXw6?>Op&U!8nnBc@ch(R}s|BfHcbOZrSqv?8f)+mhsV0r!)T_T&T}5cz=gz6JN{ zAS|Ko7AuEeE5Pu#PgM1s`?4Is;Y<$v?LfS70?ir3d806A;CO*};B6cioDSXrw;hMy zVtLwB4oHQ5g95{#{l@f;|MW|0hIh~A2;)7YKl4csn1VF*jc<StvO1+Z#fbhq4^S_j zuj${kyL<rcIt$=$2ayNZ+)?BM8W&7!2)K`k>k5;OB!k0_bKtRUpJ`2qGO?r$N^vO< z`Jdi+@^s_rw^AFmo?+XNet(DKdAZ}QN}|1SGRk;zlgNp3fMmZXt^=-2ZhCSzrI;_{ z0iF+{s(an`R6K$OSBlU+SmXi52egK8z$6zYV3>Gd2F^1bcbrL)x>~Ew?41<Ze8Bfo z;d6>SWj^WnioyCuk1w_?EU|vq5~MB3dPaNZ6Aw&0o@#WsQVggYbVMuIYVq{vdEjDo z&%E6gkHHz&d|p3<`T)_N9IYd8<H7{AAE))<c_&iAW&7!^QioF;EclDWdmKMF7xQDE zh^YVW5q{Zae)yI5796}A?h}=Hb=mdo-wRpE`^AF%pZciswrTwq8?!E>>vg}RR+x%% ze==fl%E@%WN%SZDpGXJ)j2<v#v?|`0CZ|8o15uSdj=Rcnei)SpuOCh{3Tp@`?<HOk z*AsDHz&H{4V%~vhaNlwAU)1_KIXU?|TMu0Qq2I2^-+S)AI?LnG&E?J!S3h*xbMb=H zz8j_U!f*7=+<OCN9*P6+xMo<LiQf;4sg&-19U=qN3L0<EwP>yM4%-)53E%gNt8SWi zvjQfaOfyb7ZK6HnfhmancTn!T+^dJsl*UA<OJw;e(Vypmb5(u8q!Ug?K6>*A>U@}| z;Al;e$%MnWu5d8fI1S5m+I2qL5E1cw@UA1jSQK$##-jb#LtVnJY@8o{`Rx3C*9+%H z+~{`LdmZK+j)OTT(_rSwOnCP=))o2c4V-(vhU=0`;@e?eN>laeF8IIH>Mihs^l}^r zWb_!q<MQ`nQ^S(#BNr#N;aoor?KU$6H{}fSfXD}vP##P>p9lV_EwHtu>rYY-$@9bC z=6E2o>fy011&<_pOFTflK<kQvOhEb_ybm)D#emcPn?&P*Ifr8f8atfMf@#P<Q;wyg zJ!uL|IGlp~l4M$MpfzY*cS3tJ;~O}Z1f=2J!)YziX|3=)tFyq53iW31$F;B2F12T3 zLszFYP4my{f_Kknqh6nmdOy<t495ef(&3$xsrXHeE?AM?`lZxA3i+zho;_!2_Z4@h z1>+p!jYBvNAl;>PWu6Cc447~@5p@wk??62PX?+O!0>=rmJ7kV%FRd#f{fYKdPGrHV ztbX`7r}Ho?lhuLwL$JXjj#poS9z)v5$H8`ff_K9D#FQK7+$e!5XETiNo<sRb^k)wF zVDiay<GfoHxW-@CS_tr*&^>%UT$uH(n$Nm6p%4Cf2Y#p2=}IBIf#U$tpE*e$h<glg z(LMvdCtuogL>`c@Dbji)(SFAH0$7{b1z+TLNaqMu>%-NZ)oon*d^_}n#YP4u)ZTVS z9Fm-$hO{Rq@POcFnB>9vEC|Yb2<vit=16^`QHEMyv*#?2GxZObep)&p%r$5)LB7Ah z%LIY;Og|uB)D;CA1YAcV+LKMve6%N8liCbl7xhhK<*;(qd<i2g!FcmEXd$(Yk0Z8k zd0JzrZ%!{vJ%{5d(t9e>nehPQgGr~;@LQ^F5SrS2QR)^xFNLsLKl9I7Ui*tXV}p}h zP!~)T=r7-6P?8C6u{i_H9gz>n9)<Q9yl|gtLt10Y;aV7EOUjq478d%6RcgHX3N%op zJH-?K4Eb&U>XY064p$3_=EmtrdvepzF+RXCz&IPn1>b}^pm9P-s-rBmKIWgZdL-lb zr9OYq1vAg*3i=@1V~}J4?KLTl4a5UT|2GaN7$;zu^t?^!jfpq9;02a9U!I;YOE<23 z9rPH)3)nd9i*NhguP%3qt3z668fQdh3$$lEK>k#c2PhZ(QSPtKYW0`;L`Qjg`kLaf zJP+abQP*U5!vq}PiSCRCn6JbOq$9k6YY0<MXXAIwAHs(@ZD&}1<m;^iACFHzF2Xu! zA*VgHD>$X`5b5&M&S%1m3)zyJ&hf!i#QwrW{1#k#OQu9Co#pX;YA#Im$-wV3ewN(~ zbMWjx(N)@OlJNrL0~75NjI(f0VJ(hdUlw+6qI~GjTzOjWO*xE{|2k<Q(O+!Vij?{p z{#o5H^Kw2+=V;IK0geI2+1HC8Afp2|mGo=Q^`-o|`e^mB{2lA<gXO(DS7vq!HYM+% zJrUb$kncMa51=k+bjJOO_pp9n<aau-Jmh&>@|)!`ZhWr4m1r>Nnb@ce`Mv+RG^PsX zMVArnjWaIhfaFA8AfA{OMRFg%rJdcmLFx|+%d@oa@ASdTpX7H6dH~Uw(VzK@4`_YJ z^;S6;(wn=(tDk(E+LH3*aiunnmw+X-pt$0ne|&Y)BDCWqIX{!9Jr^c@U}0htgrqeW zuyliX$z0h|BK@+MCD~Klbs-SvqHiBV`g8k@5)YtUm~ti?mR>J-7}*B@$kNH_X~}Pv z$GGv$^}qbR*s!3a`Y*k6dJyl~FzZq-%({pUec}Vg3nUXr?gwUf!TN%S|1R~3JWsXX zQUX&zFCAF2GfgmU^Mf8-Z^{tx&-R@r<6a=~fUqZdDg)*nzH9W|ed@QAPH!1X@mRUz z##ifiwdZ2PLem>3`{i`O>>EWe^GdF9)>Wka6%+jhK0sa|9w6E8pZ^G!XSRPL^@&>E zO3$T4PXbE)uJnvj;PdA`%WG?P#(N@22Y5n%lMMp>#{FlQhwIdfk4CSSO2N7)<*D{e zN;jSYO8sr_8MbdD-qEr2ekC~Htt6To9j@h}FFN7_awrFI4rp{wZi2w{=3=Q^%;nF& zml6#PsL_Fc&Qk3y>kSV{Zx`r11^0O5JV5);4j1yk<;d+P^F6K}e4a{SR?fKdxi;z= zkHrRh$5$qMq_+uppN+I<&f)449+-J02iNyYAUMAV<$jOla-Zs^@ux%w`7@S0vJo8D z=XK$^;7nnUnBRXUULg8UJ)H^jkKJn}8xJ9!Lf^>qr{AoMapx<vPm>442KpyA?D0k$ zTnEJXoNM`lWAtafAP+9*LSUg0R_AqnB=wCYWlD+E14{IeKcm!mLFiAmWHvvZeWgIy zi<amw+M<w5n1cJ$^G@6cugK_s5=vC5E1$o5&7Sf%Ds5Axzu26>l-k+;c|9=qRx#1t z$mmc0Y{8ji!7RkS2g=)!thQXKCoCybN~9g&X`vRT9O&J)2Oa6|_o{Kv8Euf54FYG6 zG8uJ1XPm=$oV@2Dm8w-|DbhF#Xthb{o!C4>NzcFerZs}|y$YhWanAJzFz31n|2!Yy z7+`e1TMmJ_U9hPVEMDgkc+i3_Riit5&a&EG-1BL0W(V3Kp)CU0q9DD=9zn20K|Y}8 zPL~VtexaBxER8B2_<oWikAnbTZ@pn`)~;muj!$w;)nc^MnSGVfp6Jgx!at7xBnN`Z z09F?EFOzyiZ&?)2!aqi5HJ@b{UhyboO>PfjA8CFTd4OzDhzHP-JeZ8n=HU3S@c2E; z?u%n>V+B3UKC7!<Uu=tSQq_4cn(HBL=iVqVIiB`n*a7E%OLMv*D7!sI>IS`KQM_UP zsnMREvn-ERKYn*@b~{YFfOe?N4u$zB4`}?Kbuk}YPsFE5=`5)`AD0#SH2Hk}^n}H_ z2d6i#3n+Rl(Ojaxj1Oo`aE-48|MX_#+G0?)g*I32F#Ai3{*0E<052NS8qm(XfNYXX z_9%@0=ubI|`&Lo8;Cd#p?vuF6?+aBiS6_4QhuI#hCo@-1`FpVfL1~rm_~&-O{Cnjv z?`ENK-i<<-hjb^$^8t+m^H3)YMY+Gaq<@xFe|f%IzokT$2lUXNz9X?Iv$=O3u0@g^ znqZs4*(DKAOvg1Km$ONIhUik0U8h!k^}e&bIo3^~x1KDXSo)gc{{Pb}xfWdGYml}D zM#tzvaJ+@|zsa1)2iFU5F7N>SiyuQ+UiS&9@+?0+zLaQq0X_7`IN#fn-BP*WPPs&X zIS)*`kPFVI6CW?XaPJ?4n&_#!xj4gXl66v<tDDk$EO{56f$&bQDqVu(<-F)ZqvP!& zaJ-H5Cx?9Sga-;??)3*o&&)Om$ZV-jW_R%`<*W6~3a!=R0haxytd^98u{B74lU*9K zNn(63?P4C%KM6eWTmVa>YYs5VZIkL^NkFSkYVXASeUqv$dq3z#+82P+og%?GqVE_z zm=EUOEHJvnRYPb|9~dehO7?LU^_eAY(uk{v{u{Cy?=6Z)`y`}4vrFP_)25?t=y*B- z96s3nWDH|vs`Z(<=PbP~eRFkEdN0;5Ag%5*|B^>Y^J0PS&UZ~d;{)<Z9tgaFerOfI zisGIisd-9yt38tvjXa=-{_8UuFM1?43bu%h{=6^9gOf=x=g1vAFMK*@_O>Iz9v|&` zA`4hG)!L)<oTag)uT&4MXJXv~5-Xho3wprieg!z)Eyi`6V%*~~IikDsU6U-JFzN&l zP=aIrgN{p5)3nM^dM70uc|Z^S*JU=vExKPX*rJea5^tNv_+Z-kY$M5pS!k~^_e?U( z`ug1C**i`icl_+|Uxw6DsZH`{LlTYh19|!8ev8!!PObTiPi7OiCD-5@Ux{&kOo>E$ z#sf?iAoh)(s2c?4wl+qfUL|B<t{nM$D|drA`qTS$SuN>qIQ|oTdD}F>Ru$>Zc!2m~ z8oH@CAE0M*qB2n?+=iJuPd}LR<*`tUWP+93shOR;kInrSGYc(lf7vU!dSG!nt?w2K zv?uyAC!@d7EujX&O8Q}KdCz}J^)Xi#|6WRDoq!hY=^d4Vy6F$z%WP_xf4f}5{~#Vf zd0>(Waz4lr&agd^2`MlWWx}klP8^^6>A_crw197?SoV-OqwzpquAbjm57PC05-JP5 z^1F!M#s#sZuz;hz!~^$G4?y{kvH`+s0hSl{3~zmR6#7ID{jUT3bY*(u!?`z0a19V? z&Fs@ex)0(7k_EgxAUPn)1JV(uqm47kgxRPk%-nwJfy1_Ap>8X-{c;FdN1?4l%Af~& zXf2N;X5^DtamBBw7w_FE27&fOf98-6cwQj-2jjgf%L_WMO7)QEYwov{(0Tzq^bfCv z|FI$i?ZK}VA<j7)RV_Xs9YLV?V3{yg;04o}mYJj{oK1o0JI_6yzU}z&Sz9AswO-3~ z<YcbDmEMcl`lZ(G4JdgCE=X^=lXyUs2dMiQy-`L4=eE|-xqcxFrM$JC>1d9nQS{KB z^8BLmvE#CwPPAFchncv}GxHMKD58_(fH^+k<iRvN!$Rj+rl6aQbID1xmxODHb1*+g zTtAo{aix0Uxums$G3Eb<rR}jOzE)qWy%P%vOfCx!E_(=W36<a)S7t;9F3fTKKzu;s zf=5~dEGy{+Lk;|^R7bTkl%7k8tQ^3yw0MA(_F+-)>L9dRnQ<itW}$5gvr#0U*{aHU zfovCP93b2Espw4Sm}%{Z>|OJL){+;+RzpxmJFI!o2ODwCWK(WCyqDSlA&J%LKKDwW ze3zJ2#9F>mADeq7mhGEZHY4ys2e_xyNVF&VGsp7*(%<NcJhB4E{8gpBE>iW)l_h^K zCA4xtEJuw8SZV9>JHoxQI$%1{pV=t#d?4B_lWst?CK*q2fLVB^h3M>hrvm&^nqgIb zFWR&9!seVd*qYP&@XNxE!d<1^;RmZ98BVu=(|v$HU|mdeB38JyeR<#N`7PEVIJ4p} ze%Xz%IHN(Jz1#hAa3#mlpM_~mAp9?{Lw&EL>!8#OJ>~Inq=Z%u@MU0Fi3g}eeE#i~ zIjz+$u~lTNjJ9h}>=Y%tWt9IU2Nv8e1MftXb-CSODC&nz4?5w4oR)#l3pyKj6m?vR zsOa5vtYN@6svZ7~?8-3jzqfL$w6l}7S(ol7=D4z`^N-%CRj?$dg=lUh+RGi!3#9u6 zmOX-H586_tN?BUIlyDRR3U!h50F}BM&vgW6w!qxzV!>{a>=bz(n2GXW#w9!hl2`{H z=681QEbUI%UD3P!K;6LV$i~N$Dgl0m`I>YdGtE#c-%JwyuNB&>m;PZf`9Jnesi^fW z>IT<Dq<wq^JaI$$z$LcK=#$q0p#|*^Kj;DBT!gN&_&VxundLG0a%5pf1D5H=(uaP5 zI6jm83fZPIJ5_-X$aWp&ffL%S`Q5K7&p}$Vbmn|kj+SpO58dx&ZPZN*EI`=LODIY9 zNBzw$p#t0!D_~&~(jR?^2k^P@+cXv!mt-`;s>;W(q4v?MQXMU=gOqR-0%qz$G-0K# z%Ik>oM0<4yJfrZ$R+Vg4O}s!n;hxk0OKunJWodX{i@xUG@%fA>Y^J@6{2&(Sn^<xq zsQjTo^M%QkurRR_+lxNZT;c<wKgtBx`xQp_q-t2z1hA&K(@UzerR7TrM<JlME?D&b z4)}RsdXs=}!ar}TD)9o^uXrTYgHKHH5>{Jtbk+Nw<u@W<Z+rQ8VuAjtRi}vd?nrm$ z1RfwhARa(oARZv+nt<Z~@&VC)d0EfXr|(gl_%>>V#rCf$=?e)cc!*dZY^%!i!Mxig zu;?zXYo=EGMo1>+tCz-F@x*Ej-_vTN+B>l{pN#6SgYk~s#i`Y>D7D(SD5VPT-KiSN z2ZBsM{3HFB(b{fN`+cdxYGtTBmlBRbK&?!r=VI|8*=-NplN*Jxe~`U0*{q^GKznB7 z`#M+}R~9eTn9EO#wtC)4c@8JQ)x%Q0_e&}_gj78SkMugCzi~0rogCu<IUnHIZwx5y zgRsK(=FL?dKNqSyg7SycT(fEP)<?`}U0LsIK?Qxnc@@cCQM6TNyf7PW8JA?XgI|1g zh*Z9;96fYaizDS}X+Ty7UGx{r@QKZL3ohw~rCE*Oky>LU{4@G9pXURV{YJkB?XaS> z2e!1s|0`A1(mF^9M<HNIUBu!;^4hL1$?g<zF43Rat|A}MnBa7`3_N1-?uYD#7lmXh z<*3nD?fHm$K&1|vJRlb69s6KzP(d3k&22*3R~ylhFE}MWK%KzomD3FG;Tn&jwCioD z-j>!uN;nDuOX?yPzozuzzX#&_jU$fjbJ0ds(QX;(?~&dLKJk^hz7sSmw3c_5C2eJK z#XP)|ir)z=Y6I{576JDjX*Ck<84r-p_yA=9p3|#?_gctqyDM0#3d>ioFC`p>fZjT= zcw!X-vs&(ZX0@Z8I@+d7Hp?>mb+lRcLD?UcRsW_`bC!>qFGU=MfLfVa&&6u^Cl>t0 z|3NeOAoh{&xL<>`mpfh-kUo%F1Mjusx_)KP0jV`wWhuRr5{^PZsXVP`Vii^vbU6m1 zZJJ=ON_OjHx6IqF<2eSjTZV<G7kVXBS$0Ns6q+eysnssEcVb-vl1g9o&8h|8qIOu4 zUTZ`Lp6Lqo7v%xN|7u*oUQ^O_Lu!&*Ia<%9#8wVym8td)tFWsEe&Cm0-{zjuKy(*v z*G0Q!;ss{Eeya%l^7|k#qt0Ebxmv#LxfIdL0hYfdzE}mnyvA3&(<;Efq!X58Anh}1 zi3cR-iD9`MSd>x?%W%A3S=5%hYq&Q1RM*k^v!owbT(K?zS&heh3j65Xf@Hfc*e-Kt z7|3?nJ+%pZQ)??Cac@XS%JMPiTf5EX%2RqT)?sNz$$vxI_XL!6;T)z8X^->R%v!;z z@d0Ar7*yGhd-)xm8=Js%|0?CDRF2j&Yxl!&>cHwJ)+H#T?%lxRKA0a{rfj<|@BrE{ z-zx>LOuUCOyLqP643?K3UrIE>fS$7Cal|6sQ!4*yX>w_EP<an5&8~wb%w=I1bvl6; za7<W&{J`XaC(Z=}%X(<MfBNQm@^<R|E%wKX;*NjzPOZf;y^d%<$abCCEemo0ZPypX zm4nOG^hb_cwh#ZD*9b{(G2W;@#6K^Q_Q92X;FVJ^I>bKX0rF86Nb&&r0QCW5KyfF$ zhX*0I)I6HN^0K%dQbH>R^wL@>9#%uJVNI&aB^y>|zl^@J{knLb#rX!>fkd3UEww@^ zZ>?uiLJI?0d1}2Ai*b)D`lqF-rOktB&v>9-;DJGWkcoVdS!?t!Y=iYU&s$T{uK0~5 z-F#qSb2X!DwO7wOF>~*PvKzjIy~6nvX0ObAWj-iDJ+J^=Z$E&Udroba>ZqqoK8}=7 zXMj&@Nm$IDXz!g|g0$}kuiOR>`%mc4<N@)3$OmY**$nI2aeb$xLv@W)7yWfM(`+<L z+O8H?EW{_d;xySW&nH_Y(O#LiS!R4NAMMupa}3V+N{!BV#%;l+RG7Kr$ZV<3YUQat zmlB!@sHHdeT+G%zE(gc^lI9Sky*JWc?ik&9pXg6~vZ8JPR#*0XDb>(indaV08Ce)G zm#^OUVzEg3BYp+lXt#>vIoc^Qdo{^+S>+sq#0SI!XwyC~@-{eZJN$1_YxLHG#gh`M z1Xw&veK9*h<`eC!lxfd+fv3F?M%w!qcc5KUVU|=gOY2}RzLc>_z+8Gu-g8APy<Z&V zhcch+)zDrQ&mp7zGRgqvcpgxa2g103GQkOLn_bYK6>*{Fe>yl=->%(~_VIDWwk}R6 z{%0ERL#q412kGgP*C;q|^cmgdzQhL@-wWphF4vM^#@-YAx$d)kzQ@;XEW%>tgQJpv zvE<H!`+h}uPF1j3Egx*V&hdf71EL+P5+BTuDHYB&x!x^=S>fldNquB#8>NJ@fTj6R zeDN<Rr}|&KGs=5HiT3$T673leFkeo8_M7+s!^Wkg|0fZTpGugt<&*!F<*#eZA5Q(P zokpzil3UsT-=gT8R-e2!lf5$9u=4h*lHIb%14M6U(Fyv28Xw?u8V45M!9Bq}r#={V z|40eBfTevQCiO`z{#T@ZUua!F_&&h3Dx|;QMEo<_^FE{d5I?`k=tcS<t`p8a9QAnW z7vXcb8a}<UfUBg()ilG>q;g#6Xabk`vY~d%f-HD)h5@l}T#RR#gVBE5Go@BIx9CK3 zLc}|-D@ytyjv@2${rn4wFl+m<iBi$Sq~Ea8i-~*_3;*hqSpgxnec)f%Z1iWe=Y8Y@ zUlm>$LVp@JFfEN4UYRxEeha^8x+n6~<hAdc?&)HcwY06H6`$1yea~wN|GMZ#Mv`w{ zE7~yCkbN3wyFA!#S&#*&4=ji&#eK~NSc&_fJF2=<zAW#Ak8#~2B)1I~##iF{AD(5! zF`s0=Fh+>;2ILJRor9cn^g1}~jQk%`H7seTlt>KdO)EzCi_d?}FQ*zpYD~2E!#zF! zf+oTFAq~k%vOo;;GJp>c;RE8A{AQE|xK5B#j^DSv@Oau+`=0FkvbyW7v$f-~^3ivV zIP<*wmBj6fV+(Me+l=dag1w?~kj=7S!;U-<|AY@n7hHn(7_7tnjg3Ve!g(b;`~ANi zZ|L6~UfEN=z0L?*s*T{A*(m4_CYfM5>rT9Yvcc#UTLKRIq6!S(`qtkGRkEa=TpM(! z71Mae<h~Q|pdM-83;soj`=Vy>D?o=lVB!Ph1sn@V9w_obu1PoKd4R%$_(0$Rk_Am@ zA5;sAW6=isz`5G#I}a>*^;_Q>dX~kKwht$+tiK$-iu}=nvv*gzTutuu$!QYys3m(< zJcl;Oc3retHrcS7<^f*WEwHX0VEu!(C-?YrWn5~5za4FO9PxE!cl(!U=en-qAuLU; z6UGEKK9DZphWemG_}Oz(QoU`H5{LnF>BMNB_cG=Mm$X7C(mtTL71wH8hzBIc^8u3y zCLU;nu!=5NQ`%+>Mma(B)-^6je1KyD^1-5*T$p|EJo3TeW$%O<Otw(+w$N{L?J@UW zDNlSh|Ja2;&OdwSbC=5rUEa86>6uY4*(#FVvcv-z7Jdu1%V@JI*ezGk8UWg`b(nBp z+BHuq2J1t1JJN44fX}{zXSkdW*7ls=Ue*bpH{v};MP0Bsu^OCF4mjfY;BqsE#sQ1I zQztJ+v%kd1o_DjBgqGu3o2qW4eTzVQqQBsZWPDJ_$%KL?<Eo|sSX<py{(f~={BlfB z<2=(7hr<V+31}N}{0hw68+m5x_5+R+LgxQ)NSmzmVBYQ{FF2jL<uyMlF4{dh3w4uv zf$k>z1hQE~yJcpxD$;!rFQDx@*{i!HmP2UyLwK*O8$PJ&eO;=a$cu8jE$O`&$i}-t zPc{z(?W^xg*-?YvcSc<yIKKn)uEMkZaWG@s{x_sFmh!h+d@;jCx6{{$A?-sdyCAT{ zgnNnhj0Z%Y$pb%OTxc?`ruF>l?%L10;Pus2opnLwT|;yO;syD5z<w)@3xb}QgX;zv zXeWL<1Lj6v>32AI?(&R%XI9VJee~6d2E$KY@$mSL)E_zn6Sr-9?u}i$e(H4e+H|ML zTkD+9-HTapIUbgzRG|E6!2PK@!A@Z@+Nd!56lSZ++bt9Q84n=#jqb=Jw5PScxT6X& z{EAc^S-;D9KuIQ0T0Fn|zn^G&v}tc;cga^Yj-Xtae=!N(-m>ElLf*1`hu~X?#Qjr> zFTVCn%HI)I-Gg^(bRg~9j7Wdt0l{hU0Mg&MhG<{Y)w{J9{&7=XzvJ3Y0KY<%6{IVo zj-aF;SRxNlPc+RLh!=3q;F(wqE>{v@-pLye=bpG$Hv7=|%d_{N-8T35)eZBGUG+s> zaxTs--<fml(!|-vugrEl8SU?M`sT*D$F6+gbn^PG`R8M5oTFkNFS?hD`PB+oUxG5; z6Za`Sn2ic&pC;KUlD(p6yUzH4=ufow$!&%$ZK&s!c3nLO@MG5NjMhAD*fTYsrRDu= zz3|r~%>(;BsKE7?xRT<)xJuL6KqZ>8XM6?}X3v=~zV}HlKDnaV2*DMd5Qt+pqr2Rf z^MQX+i*YsD?7dgp-S>V!2=_~@uINfx*<_UIiKH_s^MRU<Fi0NYoRQ{>!nza65MjL$ zbw+R6Z$^GFxoXs%D!?Ni??FJiy5GsfHIyuHkI6%RDS@RK)q-w8`h~C;k==kkp0gu4 zPk1M~Guks-MKvA}`G9OzX-rsIJpdc4AHv7geNXnZgzg@E4xIJB8r_wiizJdfjPu=1 zr9FYGigny~C8ZJrGP*k$BERdE^x(!S#BWeV2i}$6VMO{9511S$19)Btz~_EA_OC(O z8<6%}9>Tv+37Z@H{&_X75e4BKR~R37{eaCK#q}c}^u0w|G97`91-!4gwoJT0^haOf zg+aef&wX$X;)QN0^3PI|9eCHkQkrjOp`*QMvP&TQ6r{V7ZJK1OrpyP%r6@BtqTS;A z<z1=UIeD){NA`?(fQ2pf<>X}ir0UBP5dFo!`KPb`$}1s1jc6ZS){eAqA541<9w0fe z7WZ)1*7S6K*aiPL%X4j2_a;L(;6Be_J#o<75%t6X)EPD+?|j&S>ma4=$OlL-bVO6t zae-(}azMp-5q<I95Qj2isptf|B$4idZ5qk~!6u2bQ`F4|$TI=?t+2j~`-UiXgdUoX zga;^p*59ghm*HHBF9w#zXZ>kOLSFsK<^de<+XeauBOQXu+8~J0UBM^Z6YbaI_`a^X zyLod5{4<~Ts>+VC<@JwDa|MhSz|9v(PxM9FhgNpO`#k_3)%6}f(A0Z40{P{WF62Qh z-%G@^i4Sz@iX1;kdrdSh$Q);bV6smmK0xdb;sd0qWS_>y02Lo?9AR-B-aUWvx*+?g zAN0`PT5-(Mp63&eNZtu~|I;_K%($ZIF@zxQLn@H|j0f;H$pUiH7$EXN0Qn_tumS01 zsBCZ9($M!$T(;j@-}vaSYf+X2qW(BkPr&iNunAT+JSJN|c)zAw`nKVPmPh|}sG;XB z@xkZF7t3({fW~=&7gW}e*!Z9(3+TC={!e~OwkS{dK(tRYjR(jB=H!8(Ct$o(Tno6C z_+-rz``lXeHJ8tD=<gYmKF2q!3<TO&cNs$}ajr)^Kr|;FAYKsZFN_I{_K16u3!8gU z*DGtQTVB*Ki1x$>YpZ)B3@8_f_M|H?9>B4{NaMi<#Q28lE_lDTZxYWpEPSEk(SICn z?mhN(eK+iSh<Y@xC6G+ud4Y}hjQ-3Y9v|Si@Wd_&JQ2?xX}H!yHmW!-c;J}@8Vi^_ zAYal4NG9NK@0>=o*}4BdYXhT+Ioes{Ju6Gomnvoo1QyoeeVN@5R@I4enCAKDs?Z_b zLy-Q1ctMm2K}ZAQg)NV8yf1IdGvtfs(kV+(#%#myny#wq><Fvvm*$Mb14Mh&E8u;i zXH{p$=M8-?vnug@z@Cwx*aa`1YJC)pV?)-SwgK4Q53mX6Cd+U=!M_mC$EnB!EgoR< zfaw8(4v2an=>wkVh~C6YLB;K`uE7XfQ8!su(2BfJWAx-?fxrt$drzW2KKI7DxL!&) zFV&xoyE^0mOT+hrC1FjvvwE;XL_ZX1jkL$LJzC#GhdRH+1H=ck_Ji~i<N?WoigqLM z#Rmf<^E;9ag@r$nvJ`1gzt`iOe?8)xXf0r0r2TT-GyDko=KcD<6H+=1sI`-iL*c8P z@W&IakJcY(?oZfR-}87ojvX6oducskfMH+BXLAOk_Yy((GwJ^{4<LC$d=!MXNXsjF zU<2y!AE6%lN#g)~T-n+8Wp&r_gUyfD@2Kg46?m4xBcsMh{2|v91$$<kN4Q=~DmFw% zoAxSLzjMA)TjlL!zm?*uJsS@FmsNKHxiEAB{i~4&PzFe{fXM^$aV{8IiT90R1q@Z4 zw+*syky5=_z1P-upQAM&la7FEMkw#;94D=ZykFNPty!zJMgE-S%ln0RzgbjE-<0ij zU1h6qUxN0G*t}73&XC(Uu(GO8m}3xqKSuW{y3df_pJMt?tGXV2S<_Roqqgg41k(F> zJG>Rs_+;HCvgzUceSOH&C<hj&(K$9zS7c`xP-j?*YX`2^lY1Q^BYz~+m7_aPAHIEj zo7BR5e5Ej-w`y1+b4Gv00|Flq50ES%J`m+Wa8-vftfm`2#KJe#^(gK;QN5@L?Au?U z?1wPiBS!igNl(~<dcr1L5B#k4k#tYJQakiKlQ-jwx}GoIM_rND4+Q!np5=T%@;<l% z?+2~uEZAG!{bhJ<_ZQ&}eeWM?dbH|rQ}2Sv#_m^eo&85x{&VvD`QL{dAAYjuF_wjM zOOFiGnWiV_7|5Qr5!`O2gX_`De-P5C&|jhvpZOSsdHS<3@c?t7$O||g7+2Kwm}uYf zQ2qOZV*TH%>+@fa^d`E8;oNSk5oL5uXY9w-&A($!)I(=;aadkE8Xm3s80k;zPl{`b zIF8fWb105I!G+Clv2=QTz78z@!KS|RJ5Uag&5|dL19YZIz&_%i#ur?RUU)Iayv;Vt za18xrHC>3)E@2E{^ymH1>Q3CldjuaN4L3LSZD&<w{X%>!g~gYvYr7L@4OmErWBmsW zy?a<X@>%?m`Yg{qjeS!-!gY&4)Jy$@{RP~YMj62GF@&Jp_sgm*VQG|nJ@sMfBI>%+ zXzU>R3;Lp<Gn&?wytDDUWY-c_vbYk~m1KbwX>0;Sf9B+TKy!jMZASPI_3iZ)EmC{b z`iWZbVFSFpw)r7!Lb`8mH=>@`>&#lFmTn}^Deov8Z$7}eE6EyP(H4d55rn-a;sXpX z$1y%2r)mYO3(vQfl+V)N?17i|)c1C6Xcz#GtU9AGZ_GjYkNBrLxLk?X_g!(8;TZXh z_RJ?95FFxuE%Nskl&kBjS{JbDsr40mzpk!(GoIN-oxHRD<K~BdX3y2qjr2L?k9j=z zd3|r=DwOZOxTa(p2WTuXxggxb^3TV4ZbsE_h5B$f98USHO&5CMzant{vAU|4<baW6 zKdm+U;@;%K%l9v{c;f~C5)a_`zX8YZ4J{85zg<tpOR?XS`i$CYsHyqE23)JzP}`C8 zX=$tJ8<qH6DZaIyu|EEyzW2&{oLdm>B|8LRuc-x=qaBrhPSr^kS5A-N)P?00+0;Ls z)+s|vI&d7QH<JEGYt;*Hq?CH>+GVms;P_2mHp^$M{N=dz!<-=h5&s{ee!H>0r~8v0 z_%~KB>Lb4H@;;+@pS3^y_YXN8fu70ZS^GDYL4RL1^lnC517V*@+G8kg7IcCzoZI<l zm22LiGn{&vO8(Zj4mb9%3CBL8ImeQm2E3OT=KwcT``_Jr&a~$*>pQ+5Ssr8MGukh& z?J+J#9seWji1pR&Ia|uxq;nX2-|%(kpHuh}H+Pc1v-CIX4|C~Qysuja{AtffTw|2h znnUXzf?sx38H>l)UmiABmePBc?~$fQCw8IELua785dZGCGr{rXHPhPW(@%fnsz$Uc z!v=1s>$zztE&U#Amtvd6_Q>C9rIE+g`pxoTzMi<@&5!=$Bb=v%&{$9VjKZEn8>~RR z&p)F=(p}{=m;cr(OYI%2=l;h2_-!~A&=^4HnOrZ%II?&0a-`o<gs};%sO>hcZ5@Em zuyI>j9v+fv!SSqGyRH3PDqA6-RTf1*(+bajRNMV%ImvpF{vkLY2rOt&)cd6V=h`Ve z!@RW0QhP^r$VVHmJ$1dcw8lxgpv%?!tLVA#CohNnX79(yUyuB{mG)C=+N8M=Ya`!B z?Ad7fTFp0CCZ)wV-`>{HSF{%QlZpPcSG@w)oBeaEPfK~TKG*Wa$mYtFzh`A!c?kc{ zp618GeFn}K<33@}`Mw+!mLiNzU~|U+j`y8&S?NRC#r2i^owa_mvbB7zvRJy$>v|4u zK^?%K_NLL^Y#Hu724q%Rc2<sMhQ3yrO7B?G)9sJm4#x<d@r5z$*&v#8eJZ^lqrkTI zCv$XGM|s=WbMocyM)KQ|CTo?$^4ZbUzwuL)WrY1Ov^hfTS5P|PJ>TbQVU`i+Yn7|? zjwRhu+iO@=(l#(5Bg1q)!Gbbb9=7yZTNtg`Z|1Y-*5Uz6+s5jl<g>iOTOYf8ihGWs zXfL!9$Kb%cD&2aY&_0$C=PQ+G?iowIrRmY<tD1UDci18Q<>}PQWa(|?E7nV`z9JvX z(^&F*IPEf*Kjpc<rRVosYw`X#v^5VHhTf-EFLPxpy=QqvqF$o(o;_pn#>!{)koyep zYR|`_zVf>8zo|Z@_+7it8hhI}(OOJimEs;XYu6CpOoRBc^oCiMTJc$&vGO(Rrh@gS zvaVPuYReZb4^zlS!6&=oU8$a8JBHAle=bE<4`}t(aNntyW}7$W>dpF$#j{PVluKcC zQ1V%dkL!C5tuAlvz<TRH8_yE!@RiCQ$uk{Aj%pM=b!R*<suj_ZxmI0S@(=2|R~c$M z*RkJH-Fd9b!%}2@0j+vi`c7Yo_E`2Fu=jwy2kbpy?*V%c*n7ZwJ@DTtD_S8%ZTWxs z)*tBCx4!iU)6oUf5Bq<64_K!MEY*!IiEqI9-pb_0U%!{sRKEC95llIl4F9>~4*b{7 zyMm*z;I^YLbCVAwg8SKQSb4iVW!d%OpX!=3$mS51)Kx96b$Z#Ji@gV)!X7}psPX+s zpA%jU(WT!rq%=AEMdQ7ZC$iu#BHkJPd7qaB|Ap}!j-`R`r3bJsrs_4}Oq&ebdgQ@K z+d%1`LaN!TWbXm%^ni#dYv4ql2aWx!;+kGs6<^=7=wcyEI*<f}Yaa7_Si(QXd1qe& zxSh>~6}L*uR@^Q8r95x`x0W2>;|(`#osPEWV()>cs|N@VJa&eQ54CiLWIT70)@ty* zUIq@wGla39$GcW|=Fv3px>NwG?v*?EUMhT!>Zw!?Uw@^rQW{I2JzZ3@*T&uhR_Fm4 zo)~s4#fDmZ1CITMZ20c-xY~ZV^AF(dhy=~CpO*!uu|EgG?v&N6yixK3<)v0X_FT<Z ztDhy$t<c-{EbKk-boGEt@8|Jj2{zQ?eh}06;|*yo2fc2T!i-}Xg3kY!o%cZQc-*t_ z3~}s#FRt2~)(`l)QJ61N{!adzk2~D((?vLYZR|ZTvK}BD@HpXd!JhNaEDc9S!nY0a z%|BTdTQlHtE*~a@$Lq%bTM_Z#az+^YTf$;0eq-RqepWZ~<!#{K@nK8rt`vV{y=_lz z?}4YQ2Y4Q5SYglDZ}QnQOMOFH>+>5@TcW+LmBMr!%V}JfkNfi9Z0w(TG!>R!&WF{p z)obzI{O|Mi8BW;Jx+}$hx~ONbjlBnk-ve^~<}t;;W6$|#dcwPs;X9i$TK<S*ztQ<j zF1)@cP8a@39?;mo;B+<w-7f78i>~^uL1pY`bu;H1qT%l;4?XqPiZlG)wx_iBz*E!% z8e=-c62k%eO+I^O&L^xHV(WhOUSdPB=hY&Zb|ls8xX<eW6yNjm16Unb^;yW(x*zg& zuq13Sz~AAX!B1AlR!lI&7yg9mWv=d8@1G(H+N)ykf#LT6VwrHH#Opl1`1kBN|4b=N z@o24XU1Ecq->ovi*5}o)V+8#Fbr<^N6xRRPGg>2{u|GJv^dZ^$7=}6a<NeOx4!xND z;<8(1+r7`Fb<ua<scuSj*86Pu9d1u)?}4YI2Z+}hmbLJ};xKHm-&$!Xt^x77DzW-^ zEAH2JkgX5d`4YAX`^;&{05<loiK{vhhI<Emxq8EfNR%7s{Gzhb7oA9f(5ty;!_MUk zd9n5k$A3B~Xs?C62ZrARJl``s@y}S8y(6DJBcDCzpYdTscEgX>rM7IR{k~a|negha z!Pu8{00mv(jlK85`BWAJ-z**=ecb`~4_JA6eA4&5BC~%Kd?Do(9P>NePb9<Avl*~5 zy6BI>_ddk>^YyhPJp5j_r?mILQ_uq{Se9d)#{|P2d&Yh%rQ!Db9=lyM+4=}${~jFs z$;ov9CIiIh(%2tUdDGH!K7{=hH}ZZSbRi>T>B;1Q1;>)W@o)kJT*+$)xmxrqzTQf8 zXYJGSp8^Wnt6=Ye;q`#V*v+t^#QW@>95d`WpN97P*5iJk&$Tj`iFUpM-Wm3JU&OmG z4-jR5F!rC$fuLI@##MKUen)HetPFELjqSddGJYF&E$;$iA8{WKQ^R9m;mI^SGg!1c z<SO3r$F-k@`MT=~53l3xsq8)Q6!d_M|9O6Acp#sD&WBkX_Kf{zY1n>W8146+%@b^W zXx;CxU&oppkAD^x<p9YEvh`bXr2y8%R^G(*!{_<@wZe2J!2ev<3w{?eid~N-g2RD0 zn2gw;eK-mHujB#Q4QtIKSbOyNPXQI}Rj~Jf#XUg0t%M;t&$Br4=koOYdrD)F_WK%( zJ+BqRG{o|2i2YZ0$HJ@O=*UMW%mGLqF#MB`*r&07KHB=>*gs$nudI%2t{-$h<<B_R z?{UL*z8MGZ!{2t@g}3*{g3HMaSaz$pgysY+jhfH5M=NY`$J-Owd*CVP0mjox{LkKz z&%fuN^I;Z;J)__J+5Wj_vf(wtJK>+O&pVO<Odk;C0L7bj9But*?2oBDP3wNF3^kvy zPy2a+7cy2ZJ&`2L^{4K?4}aZxM>tzJ?O+ltIiCZoZ<lVSvxjQ=@XuL$wEU-ll=dpv zd%&_DKz#B%&GS49^Y1CF_MCr5ap<=J$NsSR=HIS}t7}_~wmy@OrogLv6|m3C0Z}I) zSwQ>!&Zc?4t~Gy}>-(Kg{(V4H=FNr262S3jJWSpni@3in*cZNr`wjDsr-A>~`~get z2ju-A|7}^v+hf~%V2pc!!!pCG9K%XjXV3UFL$Dy`E$sKDw0`Du6VLXa$~2Ar5pnQ0 zbc4ozIsWlC=?OC;ao&Hm5YP8lTrxNIyGBQUPnhdRrPnPyl>)O5CBR#|@hstX6ZUDZ zVG`aK;(9s@R@^R02(VxsfwfuQPX6~8Q`26&y$3Ao0Tuk~kpX-h9s_)s*45~IAFla5 zcEdY5CLT%@FiqGe_nHFcd6^)L{pWHZ_;#u0*iZVt@1^*k1V*J#z`1_E8)ARP!36l* z*Y^gUDfla%FPeEc8N4p$!h76(Aq?AkeZGx+*s{*I$F}#t*!2MMts1{Go>qF#-pSMR z&so?I*Zwm@YV+NtWb1Ph$9}{+!#?x*XFT=?jr}o|SJn3W$&Po)>5N|mT*}$H^h~mG zL1Yq4-FF{erMW(5S4ew_Z{QgtrxO_vaIK&(@aBV;48yb?rhZ{<<o&UuroCi)4_MX% zjBhQ$IE%~DGGFOA-RZL_z4f(_d(|-i0-o(Z5U+@TCI@(*<iLdeIPW(z_Io5Je~0XN z{iCwtTp|-;?h%~pM~Lfu9QJ7sf$%>C*Zthj=D><OrB}_(C0LuZeAa&ETSftUY<mxk zQ4h$*FEt*Q_*y|%VDHH1)6;JQ?f0cN{$^ETV}l3o_f5w+JU`C!SXT?rIFSyXxaN=Z z{_FCwpY;8}$hhzOMWwy$cP^ue=K8Zx-=Bc{`lRF2xG&fiAm#-dBlOA6c*c<w@V=N2 zhM1~9lkDK@J>2l1ei$Qi+KaXKfbJgP@H&Whx#tWEmb|C9EFJBstxIV&(3;;ITx)w> zobRh)UH+Vn{Ytieg#CasY0n2;NOSNyoBEjM`qR;lm*)CR-xshivmtmZ{5~weIY{u0 z!nV-p(id4>t>LqN(oF+<M0*d6RS$4DCEjPe%i~v$2^L5GT%Mldu{A%u*W=N`%Z0*z zp9$Y+dxN_96K7fjlw+TM)7VdI{;Sc>pSSg+xqiTv++T-WE7-U6ObX1WxjxPlXirbF zCm`DbW=9~(0Fn#S4kd#JuKTUJQ?kzxo&6)Fwv6PN(0^k^Q+v7g9?;VRGVC*cXZRL) zSRsxj@5#m=b^q(a`92(Pm9fv{z)%_R_Q6DOKA($s`;-l=x>GIL`Li>-z85mHUD1Yr z4$k$b2<v=zpJ1QuCouerwnQWw=0&E1|Fs8*|DxY%+556SvDnws|Mocc9vG`0P{1|M z<K{3<aakNb9Uu0<JH6JYG`<oVQ*B&;Ykm_E%cT3iK4{!$*dOXs+?lvOFYNcnR13C# zr0>)D9NgFclXp}`$HLR8FzbkEu1|A%!nR;f$gnT>Q5MiW;k4%;daJlRIQoHb&j(*` ztAxjjuJ&^6J)oxt%;29e!0=7J5+=0X8*t4pG_m2umGSjuWaCddJi|WWpLb8@08eB9 zy`PAC^9!Q#gt4F2=gF4OTR5|u6@qj9fdwaVu73n&%5KCw+7Pn2gQgt;%7^JklVJ(! z{;Thn>$dk*YQN?)Jv6Y#vG>3j^ne<kmH1f;<19Xl!+w)bckmjL8$*2YPA{_Ye*<-M z0rUIf;dOE{89={zIY7V3M!+=huR2Eae(B8anN)D5xjwG*(OjR#dxm}9e--ry-iCm} zZ(v+U)G1K+x7gm7Z=Ys(3}|XE(%u7ldq4@VTKvr7ldlv{{$5z~!~K3-^Xp%91;5>k zcXJQIK9d2=7i9sD|99{nFxLw>_TMV$C%b%qJeM1AIj5NB`g4ya;NCs1^X)<GBc^%G z%foW~PePkRxAWO(?^~L_{9gG#D79zA&-4<)9?#wbw(bEPdc6|=%Q3DMM_BVqX}six z`+c)<o=s!_8@Mh{P8j<c?&ZFu6X3ibZ3GshjvjoyU{}!f+&}wV%<f)zCJkmCO~m`Y z@hkx9`{uAOmj#q&CY>F;lm~{`N@w<cK&7^f=$Wl)YA?^;1A2NuHhwcq>*aM8pM146 zY|Rht{EQ3mPOpiFk_O@5tQ<fY@Fwc*j(8W(((@Vp-e(e5pg-VxDpi>4zd_g+#(aLh zFm&HQj(z$)0lyRAd?phDZxr>1MHi0vI{}J)pob3jIQAYGiyn~SRu7)#Jg$|-Ag=kX zNT@4Ya;*er;{2WAUCke&4<Jro-+K>cqmI8gGNF&`cpb&L{_AMZXTmj)eLk!$2c{lQ zfko$V&;M?PRqTD`eIxuH3%c6NwD*9y9*|+5=Us+r{+U*o#V4PS7m`u;!&NB_D}C>j z!9299e^b=?-#Cx}f@8mBJ}(1=bwb4X)PwhhJ^g8TKi9;4u|U{o`v?3wfpU1L93Y*+ zAu<(wt~>xke4W+oefjnaVRLk_zqj{*t$RR*Q#sG7;aMJ!|1D2L_iy4}-wPpe)sGfl zD}<@XQU(0KiP$G6$p8w=@X!Bddjq8B6Xpe<bOOOW**8?iJ<|mS<DanqHl7Dqa5f8q zZWc@SzVbHk?Hg9u)^xR(XYT<$Jzxg^jMo_+*l#^Pr7_U?p5&TetWIi5SQ=f5_j+Uv z!akD$L*#&hEFk<3kq2y@P+A|<D+fp(nC=yrek?^;Ph4@QT(b9N?Pb26_G-q_LkoKx zdk@&M2Xtbe_?qE>d`&)=z4t9Fd~RJ@vqLbR?G@Ji(9Vx^e;)Vp@F0CaK@Kn(z|Rc^ zg=MlpOCKQJ!SOWh`4_<IJH;=P9T96E-)2kO&GHa@Thi2Cmc0k`^neVfgZNeB9m9m4 z_y!#N>HA&F;%htTY%kgD48l6e0>rnP8<89!89=&$8CgJk{w`>P6c$}lx#Di&FXioG z?Pb3Fy{_MS=wXjz?*Uu(fCk33c$(pWe64u&j_&iqJAL+f-!|F#(Y+o5)(Q8_Y2csY z4v_&W`oN&^pUnxFFOvbxo{+}=8L0bvnz8rg+pMSEL;A&*bhVdd?*Vf?paZ)@cvzN( zVL~k)?e(vYZ+JO4wrarjY5`1+Oc{!OCIigq0Zc!TWC2?vv{V+z<iML~d*o!&{Wb3l zq&BklGGDFTL!O(Xh5fy~2W;5`G8_-#SDo(}4#=11VL-i~*85i`G!`$tF0T2}IM3r< zEllyuI7to={>d?Upx_VD3pg1t1<(4Bz3=inWf^+xefc&kwOif~(r;VR*It&r2ef)X z0k0CD4&xoe1fK`p>9Z!eImGu)IXIoqgSYSuE@66t8s?RrTPg!I<iH>qAmX2F31*!@ zJHpHP@Lp_%n_hcg)?ViG?bZxy(Zv4F-UGJifnnfVlczC1h6C~`F1ynw?0(H7I^Q$x zRJwrsx9~pA33witWPn9-fXN08d7xJx;N<|_H!vUf{Qa&M_4`_A@5|b3u5X6Cw*`&u zW!QT_sRu>@`#gUWCJd<euSlr+`Rdfh1TS3kn|&@@!am`jcNWP24eYbI!Vnptr4OJE zFb!>x7G21N<##Kh<#&ei?XqfEi7xhM_8zcB4~#PY2`8q#{-&wHan<00_wi0To-B;{ zJnogk7RdtA2h7NWA+kWeE`Ykf1M2?XXz%-8Ox0`Fy5Coqtgr>G?Pb_|fbRhtVBdga z|FYzo-_u^d=gktq&hKs1_uo2-<34jT9e|ewY;K@yjnD!aK(a!T2cjIHJ^%S<gl~H^ zTl;=ryA0qN&mJE09<TxSiRYIkxBPTXTGK(&`{$uvEnpwd_r8tybV>MUa)5jdS)f}6 z=vW(Ix`HGFaO{8ga3au|VgE~+pL#`F|9)S)3>b5+w^xAmfDQ0Zd;M$hF3+HtN+X@` zc^7qS!u;FEk|n1o12p8ou=D{PdI9bEPmG9xxd-pTqC+=Q+`_No9lw#^)`eMX_9df_ zns3drEX_-;PWI>Hs|PHl`!M1gQ11`J@AoWAtgrL9Q49{a<~LD>eL)VO9zeQ)qCUWM z0n`_0UH&c78)&aU+%K?LAJC8kwD0$3INtFeaT{jux(LoY&ZIbPJN4T!kpaW#Z=1-e z@x|r#+A8&cjd+W`*}W>IWvkcia&Wwu2NMyqg#U@$*w5<$Oa}0Bfa1S%BpIgRy*~5} zpc&{-#@}>55Xk~22P|4AR9hpYH2^$6{N~ru@b2#GFl+mHaQf<0_WWIuzqiW((Uwbz zpX|@ZR}a_#|ALKgTEokMF;xQ#ubKAx8TJYPyc;9~IN3n+f_Ko-ngQJnvL>Mhmc^8V z=j8`51MlOTgmQpn09!8*WWjLs0$v`V450f1NCr&Vbq!{ICCGq+xnG?fo4J4uXl0S! zFupk5UR!w&*npo%@25NbmnAk7FS%6;bI#|O@P0f6Ci2dV93UA%HbRSW&tP40-N2XG z&2c-j8ewZ{Eri}Ffdx39c=ssgDe3}D4v=q=J|LeHh<d;qU*Cc$JFf~dz;VZ^6sO(x zxqzIV?7zoR57+?vG?vhPUMo|Y4W#!wU&@DfM4Z3FW1qq@{L^n<7ogwsaNgj1w-PpH zH1GR3tNC|_3fm?eDr|4tj&fjQLKXPlC=~AeRnrAX7FfJSAnF4&7a$q%?$_5~){b-F zwDWB8f*nyWJ=1f6am4QSs>*u62KcA@yjCSP|1K!D>ajcO{nPQ@T*5J7e+d40d7vN* zDD5I#Hw?aC(`&%*0z^i_w<FO%TGaEqljS`J_Z74mKg(!<u)C#rM;E6Hur))`r+LA! zWB{iJ2r}TSbKnww@vdvc#TN|*!{1q?H`}1^ZBic@OWA*plOC`E|B>Dw5?lAHW$|@6 zbf4FpsN6x=XEK2KgXRKE7Kn0ybOz^34{+XJ0jrZ6eCfMD#NW)8II_6qr)O#&zH+pr zt7Ut36RbyF!0UQ}ur5IBh5Wj};CX>%`T%`HT)0n=^nhJgVHU~&r#+XBIqbRevu9EU zj1zXZSCi`j8(^QXNoV_(r8f9_quxIs*XZb6Kg0Svc!#bO7IgvkTP_Fa`D|P>Sc3U1 zPj0NCwFHta4FBwm4e0`r#XY}2Q`LVdqM!{vN~?pw+r=;&zZppL0m05lrVB7x@TMg? z0nP_V229u;4O73y^?)zWz}&A+hb-KC?#EQ8XUcJGWe<*n9<ULAvU_}k<EtOhdfhBM zKSwy8gt#Xs;9o-qFj+wU6tod?#koVs{aRR;(e^s&{tROb`^-0>T!^e}|JjL(Ubp=P zZI9S|z!B#Tlktp!njRpm5sETE*BXH+119c?hUvR6!`$s>jV@oEnBW=_@jX_zXTl!` zEN`zO*8?`dKVfi1YV9wVC)H<=-cS2=Jobmk05fu6F0T14MO)$3DUB&B5;}g)uuk}5 zVcw_mBP-$iM@qV0!1+Mk_MB!|8(RqrFXh5iwm*RTh-~av^UduU&|HA*gC_5}1v7VE z1jikxA3N?m`Lf5ZUEg^ouur^X{~JF&U<2$E-_zWDSyH{H56;yW;Mu;(Crr9N!@ZI( z=>sxZFb(hAB6|U{8(4++gOXmMhI?KHP&gXn(tO}#P2b&Jc`dLxsRq2!=9s?SC#(sO z3}8-WUN8aQtF09Z@&RoGU*CNPCVzbcX70E^GN1|f1HSvr><Nq??tivxY9s73y+0_v zO4R$aC7oXh_x!U#GC-6A^DgECofBG_)Oe8Y2<69BIo_3iM*@7C^njC954T4=Xoan~ zCg6{I2=rZ0S`#1}BuNHPSWOP7tq<TlK=>}{?%Ocs>+9gKBMRniKb0_l$LU`^6YGJ` zHmb%?>urF41M1zh-X9uYXVUvoZ>O<;GS1)0y(2mv^Gaco1N3|*?%~ne0nYn{{XWW{ z$3KOYFfV^b=^{#7pFdL2<{6&XJV5J$0nvEJIMzo|2586uk`EKm4bln7J^=3reseFa z2cnH2t_M2pJhS<kSPvXO2zYjDY6I*O7HPddGy&K9MZKTS_VM^<a)9|t*r#WvG^yZx zr4W4YRl$n%Mo+fiC&#}fG9VJq9~{bSp0Mvh%fQF!^$>(MgAS*~^8<1{fc;j{2TXE+ zvm+oq0PTa`*?Svie0>Gx?mTOB-G1uNG#5~+^Ec+%vx}<n(Q;d1U;J(#-sfY|`_UFx z3;SC70HvFA0oVNQRKm*CmNL2@*q|`>GYrYcd#&G*m6hK=lHc+tlmY#pG8usTgS0m= zWG=vD0P_`O0of9fED-bok^#6cD69wWz66fj&$N$+wE$YHFhpj5*EJ&gdluhsG(J%9 zY}V3N*hg#<M#B;t3TU04Y;+03v~Nd_jrVFkKQEwk({QhD;q_t&Nvt)l$!vSY1MduA zSXcA4FfV@>QCj*vxeS<f3hPOG188S7Xgz>opL_-U^UnksAgl*ISqpI4dG79lFHiq` ztk(hv<G$N2JvaZr)gL+?y7UwG$SXfva^UK(7VN+IlGoY9-}#(MaP&TtydvO2+9Zo) zz_W?0@zH7<;h*gLLsOboGQFSSe#*&o-7<ie4UTB%M`s1rq%~eJq_sY;hI#(E9OLGG zGZ_$`-_p<K0>YZ0C<E9%1eVGIVNU?p0?0OK8rlXq?mQ1}yU)7O*vi*;G{S^&(l<PI zMg3sm-k2XRJ$&yU+`{kvk}&QX5%seB{>z>V_g&t#=)kS(?uTy`yC011a6Nc?!1YKB zc%DfC--}so{^zn@pnP=KZ+sx(*{h|Euutp#L1^FaA5-;s(G9Zm$u?o0urGIJbODkZ zv(Dv!M|2s4B-Heioe$j+u7?-R;a%xH$$<Sh7a$q%5zYntaZPY0>H%b{z@Ix}_Yf$` z0tKCbWWa<2I1ku&8)o7>z-iaH9>S$XxKg1X=@DXH-}j1){t?QR=RJ-@|6=amYrmPd z``inz5tkj@_Fdk(@Zhx*i;mpNSa|SOlk?uI1CD#HfaBh)Fn7;Ym=k^jW=GtDIe4$p zyrc2ph2LCS7E@Kd@<z!E7LEN>NBiH?*8?iNqX$Qp#4(`WACTPm>(GS8GCJ2wdcQFC z%W=>DR+$qpoxuh7`u$?6U{!Ksh}N2)yq-$<*7J;Hz~Q2{SN4kg0zP<ta2n1*<Yx~x z^#KJL@YX?G3)p)XrtH1}v(PqZ!PimO9k*Zj2YJ1feyd^JdDoR+J8eVV-GuSY?gy?P zTXgtV3Szu&{{Cx^9m8?maW6W;_}=R<8*x5s?+uu~=LSsOi)WYjM#JRr+bEY}U?$FU z7F{lY(3oo2oYRr87Vl$awiQZsQhoOHalgGrHo|{cOyiH2r8RFQy?;L1`Otd*lr!jf zysL#pIY784-Jg76um5fpEKg}J=WYB|c~90(J$P4&Lu-PE3Y#bF$!{@kPOb%av^kin zCIb*RdSwCKANbb3J1}kUHPitvfXCjb2{d+7dw7gH;5hCPdHtsg_TTt9j^{5@oJISu zOvQ10v-`no2i*_dOhAlRJBMHEciej!Xe^(HdCnz_N8E&2;WuIW-kT!EZ^0zQIqgHd zz4s2hx#teNf$sG^cj5KD_kij&7r$ZbcdHCGBsaoWWe*R2nBDav*-7Z_=Rxu8XnVSP zK!%Ayw6fwmT9aFj_jvl>uNrVCz5fF0{fPB<Pi4TAv#9$sr-pxe&dC5e+q)3+2}-Qf zz2+xxn-aG5KHHn$_~XN6-79zIw!nMwRp1<j`xkg#Nl_0lCj-Q_Leo4T7N+dK4YPJ% z0q3vJw>j^<{NLssxj}R6?=A|zIMsD;l)+`+)q`&PZ`^k~aI<nj__baE<2aTpVSGA{ z<L@HAr{Fj~Df|vh48IE#(7lPe2E({;K9TM!5L}$eJ_&J8_a!cf%7fs06|f<(Zs7C0 zj*w4s+J9z1J&yI0yid*ke!95-*{+Qh@vTL7;+L@as^5kt*4BC4DT6teQSV2*6ZUy0 z$pDfCT5<s2IbACN@0bc$li8ws%}-uO#>2z$sZB>}I(~7Y=JACub6Q|I-YYimG@cm} zWdO;6;m88|j`<rAci`PUH(@r8-L40&H@O_R(M7ttps%B@K6jr<S9icU`ONTJIF{eS zvD}35$q{$q9mMzBc+P;%8j$1hO?F3u{UPG}O*)T2wn*foW8XTZa|)9VCxI*KHKBM8 zVnb3x-v{Z9uYHB~5Y%pYf64n*^Y^ojxTmM}Ho`vfLIAGGFHdbe=7o5rGx>tvPxwEJ z_$Ozf9GH!J{fqCGLr79xpCxO4a=w)Fv8BHah=u)?Jue+D?J4*?t4XjAqJ6<hdSw9V z1+sgKg*ylj;XD8_JQekT+57LpOk5Y79*(wxi1BxE9G}84zW*LfKt~vVV}A^Oiv;f; zrM-mx_tC`*j(wv*uTSd`bSE0k^~3I0!^V`RhD}*rFKjC;d`_!><bA99`{_Zzvt1J# z;h(<S6_#B48tVPVg|~`fMpPDJp2I$q0h}BdqzA}!fvFhJ<z_MX-p9K<(_1v{{8V{R zY`Yde>wQP_;6sJ*lZfKZ?vK(Nz?;?skEaP^Khpu2KWLAD%?T7_fN(!K>H!lF&u^34 z7YlEpZce`^>@(r}EqqT{op4AT!)Y9+dkD20#nEtYW7=6KGr{XxF|5S1(;wt?q?3H5 zbv`})VXnW0_s=%!o{rYr2>ZhKdb6{?i`eh-xP$BcSMt@duOJ6_y+D{Rpe%4iz27Si z*Zfjj3(=0?R|Xt|b@81-oAvOto;ceI;kiSlJ%9eXpw+lOp&Iq(T(k``onaL2CK2ZX zdgTDSzg)O~1ix=i-#C}<CKl}nnH|xv?<SMU0pXj)=X3G?lX6_osDsZ6`c8k4-~Ahs zZ+iNG#W72Zrvm}cZY>mWV3uaXNJF^v#WVe(Np%TJ@05bmRa_%S{L=XS?zzk-j>o+` z%+CujE$#KY<N84$u0^d*YkzrI`%he37|&Y6-<uCVK3dto^^2S)SauKBIL>C8<^gCM zpd<s#tqm|4px1_g<bl@NV=cXa?mwn=z7U+BZA@w~ew5R(a&unC&xwY^=^IUcdUlaF z_ATdlUz0{wh$o!w!F%_7kf+>GC!T&jQ^5W-9{VgT$G!YF$^nua^HDGLj;VoFneF@J zXM2a!p5gGeS{lO2!LsgOA1dpu{3Nph{BIQr-x?v?ph5SO$#eldI)S1LFk@e=g?ILj z^!-UV*LS`60K)Lx)cVBw{twfeCwzc=8`K`Pw(5DVN{_Ke!LwTfE8tp{u3X+UE(hV= z8>sg`T70JzX45@7h+o1!?*{1sBn#xY=YBh0eE>`G+uu0nZ(D`;coTo>sf$(|J$!6Q zoM?c*KU&@MyWIt?k2m7oAq#1r1MLDx1`Lq{OfD$M1EqBWRT;p}8z|Zo$<7^%YXh{; zNZ6lxEEU`@7n;`j(wbU66m+W6?^)7jt+<MP|Lme~Y+KIZQ;{xKdT&5nl8s+TQhgci z^$~8Bu&*fxI9WhxXP~XX!rP?~l-vOCWp+&U#rd|i+Mvb1!+Ce04t{vJymzfI55PUa zIaq)G9@9a(051b5%*g^J8K5~Q(9j2jwF3_Or0>td`N<MoM_mzL3-4#O<<UCdF0|1Y zPMfvT458E5qTtyq-AdRVLQ92weeup6wDJ4Q3-^r|TsP_cg!Sp?vj&a*JpNf&Ngp8m zJ7Yey=C>lXHG%H)BN?NoE_&i<@$PWmQQaa+yIwq4(pB(LMkDy##BUhjHwT#x!27DQ zz?>Yw_sphHQ6{M90(6%tVc!|&`n1lsCb14a&F{YYNqWyq^lgOUv{z4>L3DUF5jb|O zR>0^WdRXzj0oVG2QtJNfmr!MN$MJgh#T)_igne>TWsc!q?lU<+*q?)Y2A(mMWarmU zvPJLt9=&bU!@risp?d@mSN6TUyP$2rfcpXSFXRa4n|bW3&Ifp%fRh8N>xF1PpgK3; z<pAQI?l4?{-%|=f*}O5e0X`|{`D|NZ=PyZSS=vTR<4g1yJ0v`tC0h~S5)Bpdl=k`( zD%+XfPq=2-SMo_7$g$7=CR+hlybstHb<~mW^{dt0Qa;ujpKJn-l=mO}EVBv6+7g(7 z-ytNsAh`@+zxC(>Y<{3NH&E0Ca9%+7l+b>p+a<K=K|N|iO8w)HGn*aW$8Vt60{g7b z1R6Y>C>)zsE8tWO2P1h-JQSQ<^NY}whPWkn%fR{C0}0nkxaXhoIsuP;3JZEa+Mq2< zZ!Q?=UcXxV7;jqJr#_+Yi|j6J@7_pfgvj;*&o3~%tNDs@K(;oZDhEVcLS7D#zE5Y9 z7UDYJGPIf6kk;6>HLK-Mv_C_2w067A<u^7!cm_+g5%vjJ9>_~UbbmLFEv`7<rE!}u zPV06&*0sV+4lo%&X9O1ADJQ*uKv?fbomvgUBYAF)Uq|wuzA13Hq9<fqb~A*aTy!{t zYk{;MKz9|BLtJY)MOh%56R6D#CZa5O2lw{aI^W8KTG*V?Qnodt^H;RiH<EUZB<(YZ zMB6vnhS)dl_2GRUiPeuu@1Kj~9O0j^&pR#b%imFYms=%*jql2=w(ViKA3YL`Yo#3t zFPlqi!0~l&MfY#^m3FmkNv#JD)Qd<5pgT(?8DK^ZD9QkpH3Bv-Aelh>`txzF?~gKc zby7WioZoeKBkh}_95q+((R^=vFg$}L+6e!|-(jhZzX?ohsPx41ICLgY3H!Vpn1<(M z<#^|RQ+m?-m!ht^JfpQKETj3iRE`#gNAhkod7bi(D24AGD(`jv62B)BcCTF00pxcX zTT>sP{l*3O{lp+#H{F=l1fLc?-2EAz;jz?~cQpFu8APLPn`|TO6XupBxBN6Lt#$WO z<TIBWCcWPr{z(>)44`;C?kP;q9ME>2^#0(KMlj@cO(0!$B=|O$b~JdL&(naiYd3yR zWM64_4X*>xJU~$fFx|kCxq&z*pl=?Ny%DYRh0;1-Qp3R3oL09_@mmH|558Vw6}BxH zp0Uzwh<)K)U%csD-y+oe$;M9)_IX`EE(7Q{>HXfg-oG-d{rvLGHeL5$nZvlb_oIyk zIv;ePyvJc1-V;FU0JFq(06G5IZ)t8|fefH^glV|P;Ewm9(K_F{)W*IonT@Y(#k*GR z*nbA(fDN%vdwsMQkM_OY!d@Tg{WRal{r*8twgxZ=`wH)v-XD_I(naIGwfFkf<iKd- zpYTUEL3>KN8aAfXfjinnvULE4c_m+x17_9;NSAQH?<ITUw~v;i?A(;mqU+55Xt$fs z{~18w*f!Bd_$OYbZ*~PF)~68mop4P{8u#V+XTKG&E|&#ty+1g$307ydO|YhouNv-! z=SVf4Pe&_EdjSV=FW^)Bws63mQkZE*2jJzwAUPnD1%!QC=kvok(<)r&`yjU~g=FVg zuk-Q!IJUre21>UP_6aXucn4HSN~2+kIOnH({AQ9vtdkow{`0>{2GDN>SwQK@&WH5= z6`3731M!YI0h^=UE{-*LejSalfz|;Edw#pSsI%9QSOW`ior81$_8kKr?^<C=7Kn2L z`c^u9`(Q1~%}+}o9{V)6``1syIv@2R*S+@OX!XEoV}#3}?0bV#YF_b+uN+t`?)4Go zXCW_}#lKt@aB{%udXcc+AClVKV@thXPLk2UJ)dV}1N;cr0gio~-2}dL7ZQG}oZV;4 zf73_{|MX6f0f>LHCv?Ge{=j<`Mngv9kh?kgvTYrf_pSZ+DD(h_&Cwn&nSHOHXx~e7 zb%uSyzaRrHn{)tOvOvVYu-<>S0)lY-!Zkl<1MZiNc3Xt}Rmd@#IH7TwzAe7Jpv}1I zeih6;mnGq!=>g=M!@nQ{5dZHY{^y^|0H4cQm4P=OyhJ+2Xx3kE-YQ*de{9Vjup#z| zugLy3D78MpGo}pY-!$#>&l1OehJQ&0aB@I(K7eUSPPm}n?~_mmE3(=Xf|EObL1hW} z9L@G=&_OSc4>#VP%J!c{l=b9oLVF<h>v%RA?=t4GKR7&ekC4d*+UuKmBpw`&-G_z8 zW5D-N{7(#qCw({E`i(T5M%UV3S+fU56Cbj?Y0e**(y)^D`Cac6;~qWf{OGRYxKB<T z|K<KnP7V;(d09Zeovsza61>v`$Ns+2INPTxN6gS+q!`djPxe3us~&oOir)<g#5oi{ z2N;a~Cu;+WwgNQ&$9n;%AC3XXgVC_`M9j*-$hhw-wOOk^)_iBCTkWr{)dMnoD$(3p z&rEav##emes|FUu;vM(6cQpw6Oa^Gk0ZA_qWdLDcSno%@-#@7V!qQvaEctfVh}x!; z2G+y{pO*pko3Dy`ez&8rqknaLH8@?&7S;jTI)J(iz_UZLxxqxd3v|k%SeSF@4lIt0 zNvH33s`U+D2Wy9QcBws@HG05?*k^No|D>7@57PUii^MTM4`y9L$77!ltLOuQ96;=o z{Gj!I()*WXwx!ri@29@g`Dbm6@cHd3hM(@QdU$VhS|fPkIttnCux}e_;s43IRMR;k zngbk+1&71;V8P+reG8Aq{6-D`>^WZ#YlL-nr#+fAdccO*r*Vqr`~hsvk9<1oa<*Wf zJNp`8pL1%m;EK}R0QLS`sQ2U87nt5WDtCG?ULWFHNCRu&Ln#kB7ks!D96rfwg@Ajd z!Wq3m-#g;=1)pG^pAWDwes>ht0A?PJh53i?z@o@|uNb1E&7PA~s?%_uS=gQS=p*R? z8)BbuLvw!rw1$;S?wjWPvvGW<wR*xnb3<i-icY}k19YFy;yBd%@&1`Gv`v57^nRX1 z!@-1}G$dPT4zRtb>+veQ-(YT34!o=Ky)$k6<6gnBB$#$24xEqPgT=>VHhV-R|6qvR z)8HLF^;L?)_me$rgC5YJp(XUz6PM=ve(^Op=dTpz{EoQZ?|}GcxL5KeSwOmgiatPR z1YGfMe7}@>T<>qQ-FiRu-7x=@c;6b&wwJ>{gjYVy-iY4}T1a=Ks^DMH3q*ZDX^mjg z@no2K<UY(hg7`lXo8WpT`guJx=Hpn}o?&*SJ=t)3z=qgobAIpm$}TqNr?t8{*YX9Y zgnj;*BnO1~fw(^)>JBb<O28|z7J@Tdo~reJb7Zj;A9~{Ns(~LIsOsOm74HV|!G00; z0kmX*_)e}55dJ3}z7KPb#K6L1_c|9HiGP8|w%)LwI-Bb!`}<Mo0UKi9fO@G{V#AC6 z$#vO;{ROz*=Wqqr>QU!s_$QyoyPh!38))CaBc=+1Gn&c9_o>$V<y6#z4NK#YEfAdx z{w%)@LU4{XD~i5<VE((uOdnvnfN-ZEt^v$C5(^8C--RWoV}FI;3jelV-1G6Y+92-} z`)?ccfDN%vd_a5f0eE-!68xUMD~?Gf+z-Y+lLHPY2gsSjze#t<12?=2-xv4#R_1ob z1wXKnoe%Y&mHxD_G2C~A|Luj{oon!JE@zaH)5so}WPlzyfO7)2XD}%;5oR2}56;K$ z!J-rQ+<Y%x8u9lL_%>Oo3+>rh(gU`}K7Oay55LpvlTd9G_W5rV3>xzp?v;EkIY9V# zxr1kWlIkENtF>FO@5ix^A9qGAY)OBciOb``T4CA;+*{rsw;{a|7GZxA{^^^ik_^x( z2PWejVA|1ma6T3b?k8godPPS6$Qpf0?KIOZ_Sd7;12)7zofY+uuYUpO{Jo25pZ|8T z3HxZDs)To?XG$`F^aoly^gw+gD6<7t<#b#1+dXD^+{(1E7VcR-bS5~wqJQ)IS<T>u z`quO_I0xXqc{)fAXy^rW-`7-}1I$DGFFJWYWjJeqs(oqYKD1}2qX%q>eVp?L;k}Rn z$+eYi&QE)N0>%md%!%uNO4ye_BUxa2X43n;Q&8_O=n?MoF<^PByk^aI>*!`nqcGfB z%g4U>`#lx?fBZPF4FYg}WLg6-=>WVO7^D*@tPzrZ@ViG7V9rq-|4+oVx<%gorPce` z($2ESA6^ew69Z=QA}o^aU1(n0RkqJBt@Sb7%Y6yk4C5+3?(@@LpATX`IJ={5yz2dO zB3cXkET2yv^t|+WLFYgi>PU0Z7Fd`A;CGLtZ=rJfz#uum%?*U}0eBW*Hl77?JrM(L zNALX3>iFk*N!}^;-`42?zK?AXM*F@W2Bg)8_~LyO?ub>#8xLSE;aiS*rQc@cfD`T= zcqG(7U`C5^Rc_Cp3IC(YlYD<!hZ>5xFx*<p--T<T+l#wv*5JKh^lh#o_$OH)lL15I zz!{Sr(5%S&;Bpe@06OgeM@$dJ9<o0iRuAy}YlAS^`1r?H{)udS7UQ`d+Uq0i&qb^= zr%MiyY>>%<c_>E~##MrMY9p*H>f2?&Z()s?*Yx(uusUCVB5UEE<+BUF!L_rbCvH8i z0WQ30`d+Fu_Vapxf*j!22PU6PhMC6`a1SsJJWs{?x<*9X<{kw`7yVsmk16i~)`vFo znT?N6VnrLx`Caf#uY`SEhn~xvC<`o=1ElwRCD%h(UT1Y6>bHh*Jm;5_iheWfTEqVe z?W}hec7<=kH9${Xccr@&Rq@Zu15PI(IY4WG(~l>@eB1~0I2rfl`~w+3w3*E1`BtgJ z?9a4&fbYLi4igpwk{f>=kXDoK5s%ovU4-Lzo@vZyxMx1$p9`Cl10+M{<2v>dwDAi_ zZ+;w_+xM~uepB9Ne5l>aR(op=+_OAB!99T86}>Az$Zi4eyLc9e@Q>d<9OQW1%fq4^ zpf!N$ClkTx<b7CtHsQp=b1|d#%_QCQv|5jUgEJasyz{gYu%FiYd|+n#KC<y~Lw=ig zJs(J4pT}^n<!j6hXwE?A`WEAP7GM14Oi)f&2(2&h<&SFE#w^0{J5qla%E!GGeG@*y zJpg~)18}%t`X=%q{F6M8<6icA%IQ>?c0383P9%WG`6S!}OtbhLz^Kv3#<UqX#n}-1 zL|gh!r+;#-1FiSb89c%(!#?4kchb18BoAbAfUr;bxW`r?_8VbYUS~=OeP{9;ruXxF zHB#KO^wdYRHu~{{P6$SsJe&3a5bxwHk^yKBIQ3)_IG#=f@Q_bYL>xkK4f9_Bmo zSq@v;ZzGKFk(~S;zod#k;++4nC$9I=SsVfHxaKsEoC5yonWh}T_cSLU{F8kz&G|#J z+iYv&NBuGee+<9Y@V~-ugM41t)xQko@?5+dWjfyJ$z%ZY&B_81|MO1a_#c(p>UJsB z`ZfR~<Uv8d7z0{8bwygEA1%m(t@n8+RJ00neq8UPy*{$db0i&r$pGHx<bjq9pmCq> z1@gqbzJQDtSeD;0u5J7*;T3COpYqsN*!jyZ3cH$DB;h%LD|z@`MAP`su+RJ<GJu~K z;2t22|8o)li=$Hey)GucDB#TkKCwxBOFH<Q7}v)1ApKHU?@O;s_lz$`o19`{&M#p9 zcA<cOk^zcxfRh1Ax&S?+d=}$f)->l|UeI@%zS&1*J`22LE&P9i-#gh>&{?nw??qUE z-&0b<zqTB}b3=F+$XwL_-OeT&7evLqWD^=#%Fo|KOk2_>OZ#gC@d<}Z5s!hntp{nn zZz0+E(3npS$81N!KXYm_;P&8k0r@<^jpqD#hecR!M_m|x-^OOxr+yjZKWpKiYyeOP zxVa{+0o<;e?p9}5SMy01pm&l^K<k00Qee*MByc^0`v8Y7;eFr++sI){cyx?uHm1c} z(oa^1OY41pDb;SiDb=tD$Nu?ui-a{l$2*99!oOSwaI(PMoPcBqo$FhQ=lamb5BK`o zzma==TKr-y{F4m;-UD!q@b7-h^c{8fZS<-5U37A4azK&+h=1Axn2R#N?OZa<*mmg8 zuNutX1!!{}L90W*$?vRyXG>^hvhOSTlXraCW1923#*_%ycS7uw)06>fx`4PoK-i}_ zzeiFv_-8gj=r???Pm3+BAp__e-COfpcCJSJFN!wV05SZN&tw4em1MzG5&v@t|7Vk6 z*4HQg!;XI~%GvOpjj>PbeRP+HcS3oG$Nf@p!8yMp>hZMS$MDa5K@Mo?12S1a>jab! zo$2+*y}q!5u7nl1e)TNr{XFMb76156Ai_U=50%G1A7(N@t`iXcr{efO=S(szI1vkf zTek5(CT`m{;(I_W8FO^S<vZ_L2-_I@gu}q}rkDIvYYLX2&hHi@Vjp#ThIzS9GJwwO zn41%@bwZl+`(-pjNPc^lP0#gFUp{4j*1*33=V>_pzrP0YzxZ~^|KHww2S;_}ZKH49 zde`gSch@=Yu6?U+)!x5c`;Y6Za^1f^|Ks|;s_$KUZA4BANGJgUkwh9Y7@Nhc4c3y4 zu`w7-GByS*6AS_*vXD?fpd3)nfYkSSTGQj6!#Oi&q%$K4YpS~X<T<CipQnGRyM5wc zae?9iT^9H|d;mib133Ki<Kn$FpPwE1(T=~4NIm%6_$^x=?>Dx9epY`$eVsnQ{<Ms; z=aR0~9HOm1{O4O@H2Uh%C%myg`ecD67myn)bpy!#;}J7Roqy_$x-QuJ9+`1{J#7b$ z;J>i&@fFwa#?J-*qfa0Pm@xp5`|Tzr3%reS0B`R;k2L{Li6NW66Je?Q#IW^y?u__! zPvY=T_PsJ{?dMNKr>2H39^0(__q3n~+I?o<9^_*)PFMdiF|#Zs_I$C3I*WOHXzxS6 zPP`kFQ3f#X8##b7Kc7cGe<F1L<h-_JGjgg!8)M!N+kjK}U!GkvEhVEu_W#8HyU+pN zIoO>zCddvKNLwIefWPm;x`3Du{N2xviT5@g7Vm!gjd<_l-5n#>e|>o5x?Qh_t=;u} z*y>%s>l2xvAJ(DcuM}jQo9S6tPwVlx^jmKszOO4fy-4c(?Dvhh*Y}N>x7-JZ$npHp z`KQp{m)m@OGUl$Nu3`2rK{@7lB{}mzC-6`E-^v@c>r>$WkAnQK@J|j<iCkcp1Ky!8 z5aWUW59R}T=gZULAD{mu-raIU{NvvTMA)Z$#nAP;i$|vJNeN5c^(tk8klG2IDfa&T zln~=z#`dNc{}s0W4$A!z?!I5gy4`J44gmfm(u<YO-;$VD^F&yv=I~@$_T!&Z_+J70 zKk*-#W{!Ww19muo`T(z^O^`N$|Hk~lf8TjVyn}T@l}zv+bb}%5_uQvUFlPPU*Fq)} z^y9j8<kdoqeHGgqmwu;~em<%5v)_l!e++znOx(7Me_p3^0A+~rXKstwi}3Sj)ppIe z(eOrMo(P>?*^x>K-b0+i|H_;7sk5;rTEvgt_J7L!3iD>U9Uf5ENZ){*FDyg+H|7U0 z$^=6o6NIh*+Dj$~nw=ncRnhlP4l(vAf78~F7@zDIU_atap|ths*zXAk==dK4?uf}K zlYai>f<c{MZ)8qjpU+qed1_^D<00aI{Bf+YtjYam*f$<iIQNw+e}Re<Fv<k)!cO3p z2_B66bnlU%*$MOle3Z8P0Q-p-%b%ZmqxJ~>d=aqqkA;2C4Eu@$RBlTiz+5!MK4W~S z^Uu23bUkHI=l5!{PT_w!VzgK0G+v&8@sneJ$d&#-BgXCQ`@+9Er}F@H1CAN;k_k3{ zFYN@B35EtkCh#i3M`WiDupgaK@MOZJiZ!tpN@Q#=V|<9$v2K}PVcja19DwUB^#b63 z!ntBG8Ge4u4?L*zn>1CY@V_j(@!91!8;g@OG5!zZe;EJsE`0zh1t<^L@fRo_ATM}i zg54Ly+td$soRoF~$^`Ts3|aT}gW*p34ou2%KpzS*_Gw#ZTz|s3J7EdH{zUlt#u4+x z{?CQo3Hx?<z{3GX9su@roj)a~>CKSp{4CRc{&NcZe9qEq%`bujnx~|fi4mALUH0_~ z`^G!~E>L~Gznok^-=W7|2;YI1OyKq%yt{6X81e~x2kUlwd<OyB3Ho`x2K0J;fPEF$ zpMbdjm~%zlwtgM^1`e>p1C$YTE*Otz#AcR>NtlyzdO`ad+WUjz)3YkSfGVMHE_M?C zD=}_zNls(eB+Q*Q3~QvnXT-d5-!2EZZHOw4z%CDTa{<N^BcAxb-7*2=3EtUyRJ^<K zTk#LZ6Ri9C{;>65A07Eofbj%<Q(eygt5w?#;&HCim6)FQMEr%@jmq9fouB=`r|(zz z*K@Z#KrZmf2jCIv5fh>FCt+RcS-H)*DK}bPrkycl_;<dhg7QSC@XtE^D8J*i#W@Wk zf%AX4@$Z)d6erl_0{3<PIDqGsZlHL8b^;Yo@HW;M)8h%GOz`op;^B5>f}qq!h#wk6 zj9cN17)-oU@|Q^&B?S{<>yL!3Utxb7u&$CN4;VPWj0bou`aH(<K<A&C)6kNfk2(C% zKCRx#@#7(`#-9G2Q`qNo*20&%Cciyq;q`hEce+S$z0@IC3z&%<peK(#Kw)3yfpCD$ zSVF}E<N%czU;L0vu<e-mhmr|C*?oWHI>s1&^EzS*xDNTlF@`-Y^!{{Ti1APCPrg?9 zV$#*><COV{efHDr_Z9Aqxg`%!F3`9@*#~(n9C3s3n9F1Ojk?Y`c_H@mvrGrb&q@5d z%Ea$i<Td|u-sKv^{@)g1ZtQzF;5(ZfKrRS`2Y9VbF3{xxGnwEWtT{rN;2*RTe0o4o zCcwCZim{sxy1)UCMIX(0k}+zszZf8OZ26jffc>Pb;%5@B)@+S~t#1Ni`#ji3T+TQ> zX>x$h2c}%0aR7NF9M6fnh<W=l5B>DKmJ}D}q;R}{_f>Y51>XNoIEjDs|4*zeXgxIh z%3TqGc^SjL2i}2sg?}jrkOKnYfk3&y1`jA3p^^n;&N0W33ErU}aZiR^e_#mKAmaF= zu+P)vIK+`(q}`7{eEIm~p9=m*{IQZ}`(JGa@J7DcZ;;N-IGyvy$(Kq}5;MAO{o%wo z@Jjo<N?sg5KCsIJc#eD)u9w)qc2}enw4MAlkLUN>8c@$p;@^e2|CZ;r7EHTPDaIVl zllUKk^_O-0t8F6(IBg>^+6Hv2b524g$_$K83d20*!;nTC&JyFX?n^YrhsA@x5-~oM z>ljQvRV)%umkQc6Ct)qPM6L;S;?@bj<=bB`2ok=1^|483ihmdPbKYBt7jAbku0Qe| zuzl7W`<5JFg9peHwDnI!d|wi<KP$JPD&*t&S*`==r?mqoc))eN`K3iUjjfX}!1s4F zM@Z}w|0)^u0mTJUE<itT%RXS&P5^AnxMO$z3(m9TyyRnn^C-*#1ssbc%puP;i|1yP zi^Z6?=zZ9WS7+CWwKp5YCwWaGwXm&ueNlVn>cY0v6}c@jOR&Z~+Ve95sj5Bis@1tK zygGR<F)#18vFVt<>ug~sZT(TiKKp%QR_ptX+YiYC<N*^dpiV&i%Q?Il<8!m_{`7(n z&*3+KvCq2hE&g|543!Hu*7-N;MLcc)3iD>U1rJD>K+_E@ZG=XhK*Kt5J{0GNA&r3l zVa$;nxfba}#DPpgzdapezh+}?f(4f<#d5@gesH5se3Vl!KF)0vskd4>wib63Z!7IM zvc0rp)fbfyMt=@}@dm_-{<Ba#wW>n=7j2yUR*4S}s0PSJA7Gz0_o(z+FUFlOY>!31 z@4-HB9DWvac&p@t2gnN#ae*82s^5=<y)W)E*6hIAQ`2*r!jiBSos%5q_gMp^33y)9 zqAm242Z)Ph`7JSXvg!oaWZ^oDo_^nq19;4W2aNK-yN9pKI6@^Kbob?1UO4Ak1DtO- z8gq_OZl8)Zp=O^e6$>yA$r9KjR%O+Sf4XtLKEJtZ<DK@}&3D=}x87;pzP+?9{L51D zO6u*Fm$#KPKKpr%cp??H%w1T^$OU_~Rhf9oav*G2)VJSu-HZFwc)o-Sx9?6o4?kZz z`suUX@p#0(7yiiuemLME9-#by6aij|y9|3@cCDCQbZ_gF!n&teZ^8UFuV)X0`q$sl zN1a-=b$`cK=7>KoEoeP318aYWW880d|4$BZr^CpZY;r-j-7pKfIdG1CoPGHS_!CC~ z=i?ApJOMaQK!2VDoX-Hx=Vexih4}9ku=#$-KAp0A0c7_(t<AuB&X&@SeOrp#Tsz9| zzxhdi>nocv&*K*K>7P`IKd3(4-!~f1>qXkHw|&&NS37p_I^r+sa`B%hT`bOyy>Lg` z`p3KVeT99q+ztmQ9#GfP-Zu?88^-kH&M0d66aPC{-(~vTeqH${FK45kjcwi6KFh>) zv+=nFxh<tr(BF>2+-hOK`A{hXWXoJ_ck_W}6EN}t@Xk3y7&|ZqIOiPVu_wCiaMaOL zP}d8fqc6>>5g**F6KitoCC)#+)%svlQAgS4;(KSdl(et;tfV7M$?hAA#WS0##UFP; zCQKFLH@?0lkaH#_+y4&PsB6<U-HZENz#o15)3U0M#%2^rnLiwTe>n7hGt8SEv#S?y zJnt0P`)20$!MGll(Lnpztk*zr!1`Wrz4g_(*^OOs=!+@)6Ys`kM;2gz&-L755kE8= zbBIxPe;;z)KY{aq<u{6Tw_Ce5mUPr_D(Segv7~M1mg4qA%I=%M`;gh6ODzyj+L7G@ z`97;_`+e2htZOIn&$d7x|0MYM<1dzo3Fjf_E9^r@XIzd<Zu#E~`}#2t518l&9Md=H zy0rHV#`xH6i~+U@tG2Hnr=Ml{od;pFuGfiZ$m7FcTQ_1~?UMtz?coAL|Ie7ADB9zx zv*$Or0qeP2OYa|mO>V)Ca`EOTrLC{5uV{K<-5v2XWp~K%kJBEfzfY*P?G|~TTo+(H zJH-L?@h4s=N||&CKK{&N5y3v6N#S14FMtbr$O9AboP?{DVj5(?nYWsg2V;C}w6Y$w z2|HMFA?|0<t&T%ev4%o8Y;V5suXsRlfXbC#K))gFhp;0QxUw7n-(bn^cD~EsH8x7T zZ!YOUJv)Ja<>Q}}ai@!N{{-MWg8e^n&ZJ{s-{y5Td4PNo<;H$8>^$>J?jM>Bn=R!I zC%(b<Gy0}xd-t!sXctykV0m#al{q(C>Jzx;FJfmX|C0m4w4~$SYMZvfk+APgfX+Yl ze987W#BEyrZ+|%6yUGaC-My$|+il<EKN1hq$De~Wx(YgJ?~5Yt(eKkQ7YTeb`Q-s} z0<Yt}CVW7SpsgQsg<!poS}~`vId@KR>z`eN*!SO<OzJF<`ZnTC-An)O;)3?S&cv9X z=(ELQI51D_>q+r|74Fq>#tV-IcTB+gPE*g7gmHX0|Ht^>{bk>Op@;a2Ue>Xy(?E09 z)1(XeuL1iV^z(VJ&wd^87CQcI@qpqAjRO?+>E}y^t$%hN*6RuN+`TN{f%<c(ZRprz zJAv;1hxz#}Tc=(|%s>2bI_}N3eR08%@2-n+#~}Zw-Rz1!Rq(1y<8}Ri`^$E}YYGn4 zaUl37|4;lm{{_VNG{l}OglrBwKN98shz#ieOyB^W2fR2yVO`e;v~7=G09hjDBG%}H zy>I5t+Rk~|^{><J6v(^w`r3Y1;Wl5$!FHizkL8(y`F`f)G~Z2xt)A<s67xfk-t@}@ z@;ZZ$U^w=}f4nK;PUaWKAIpB$SYP^o_lIqpr5~Eh9IRtwxm)e4_#VXcR}uTs==&pp z{U~5MQeoeiySYH;1CL%nF3_;Aw#fk#@SMbJ7|#no(9HaX#AK{9Vf9`?J06;vboO6@ z*e;?o#BUbm-+O&JWq<hQhZFaDGUx$j@_^z2#tV#s?Jp`VS0tRiwLLEFy6KqB{(yV+ z4$f9oFP;{}I<~@+T$h(~cp$!qGXDhX`b_BeiG7tkGJpjS_|pw2M=0!1g{^;f$-SMf z;)Z8jnrvwGj*cGhMfLRQtwC%XwENF1XgkcclfyAiPU2g~zfC!S_YwbNj^C8{pLF{6 zo1QWDChxEC*VlQU)~ot+lk#!2-J3k0*qd^r`sJjnmFcwgvEL`|Rll#WujiILKwdD| z2$VcPZlDi=e!gydU(59r#Ax&XgZ+(O&sSwV&~lTy^ZKq{oM#=(ENFdo=FO)2ap%hg z*Hkmbzv2VR0+xJ0e?hj0z`D*8Pu*%uI9>E7fA87X*ysQEd2{GR{rM|jtMjb)iB~FK zNXo9-OYFzEZT-Z4R3_%{HYA+`xb2Gvlq|qpJ`cIH_hn0aU+v&{-T+!$klO~wSIx<5 zOPPAL7V$boQucpH{#V%7b5orFas7xHj>LM+lg^i(<b3c}?N2}6*BlT)Z8(2vkn2}3 zXSMAD_T$f$JR5hla(f*7`wIK)qZRHa81T>IMh@`F18(~O@lWh0-QZaMx(6xwO|Mbk zRPPe9-1(Xd{u4vcHaMT+tnB9EIIi=7G4#Z~N?tYq9sByW7Y`uTANY^PoEuX!$~}HR zJ9XTb91#49wD^Y*)UUDZUBLd7ONCD%u4h#|u+P{&;-0!WF|Q}Z1;*US1C#}<xF8y~ z{wY~9u3yZ|YZ&b+EBn3ior1n^QT+Y>aFE*vd3a7<>l@RqA>KE=R180s>z&*<x6213 z5br<!CyetsbEhLQz2q-!Yk|~lUvWU6w1XhmtyQ_x9vgQiHwN}T5qGInL@Ue#rxR3C z$F$tY0s6kq2TCtszt3k+f~`N9vAwrjSIsP_eKOECVf7uhkM~LCI`F3<Xdkn%#@Fnd zjpq_Ezv_7S{3Xtf9Ke0IOyEx*px-d+<SjAzeChGT^q#HH&=(xwKy3x~h!E7R89o@- z8-3#1TM6e2yQJLDzMuU*aL<0)7ygw#pmH7m+}1gO&m{IIyZwCg$~q3uE^m5%5c@Wp zNeJ2p<2~l&*Ss?AMqO9TxiUe!-$VVskqg{BKt6bg3!n##gWMl|`nH&Qxg2)?p6hs_ z;sBeq;p}B0s9Q7ak54OnJod+{ug9OwmvOz(?zn#9l-O6v9|tJ?z=(gfFR>5&OY9@I zcV1y@_F!yp08J=F?PJQNx~Hb+G^QnBp0#k;{V2PS0N$DG@_^0(qcC0|5`91B468*9 z*-K_^Fpy(Tb3gz!5WGu6RJX=*_Qdp`&F_$YzDwQyI3xBI2YAT>lncNSR!QNWIj`X} z>F1jc?9a}vzuPCaewOn<{Dr7}u<xJBxi7Qox}x2EzmESvd4OXDRNtSJQMSgZn6931 zK)<c_5Y?>_`(cRbpU9YgVjuqfn2U(Rp>EDT|5BN!-`BCPwmq_d4GvKJ5byT!1N-;p z_Ql+t0~PyhxFKpI)cd{r{_cK%1m@9I*w=HP@&I%Jaz_Mw2k~c%x~TUvrp&2tvEqP! zi*vIV3sJoq%bc-SQP(hMXU47eIAUM#_lbR#H2Gg)U(fCGK-`rIF^xX{-1@G$dG&9( zFsFm@or1n^R{jIwScuvP_44E!O|MP4R?|hBKlT2R@YzZ16aU8K)(I^20^olP=H#W` zpLDT2GxqA8ryZ~3flz-|?--(bHI})=KIiMr#CV>}!tQ<__?I%j!o8mR;Q+-49xl*y z0zPx%<uW;@X9nW>XWwc`nUPcdN8>vMec!4M`up(^wGkKmamiPjUYMTMkQ;}w*PM5e z*p~_V`$(jR@UQs5iU)xI@t7+l7Gs7n*T<V`tgoYW-QVla>it4gug0==rKSBR>mfd~ zur4;!-R~3om!Y5Qn77)t!3By3bnGVs`*X_g?HruP!>U1;91md|aTOLmo}5)Xn*P2> ztbaqBoy0!kbw{e?iw86gkn%v<O)(mM{{+nQlX$+ol<}m-w&=*dNwM|&Lm{kJy^PgZ zzDXIkixu``Fn=G%+{OU!Otv^cUFU}j^nQPSS=%{RVe?C_0OLON_wVs`zi$vGFBrl$ z!a9*Qzw0&ioM)MRHv4-I?iK!3?n@TX>;$UspPX3|LmyL*>(8nzOp2}FAF}$EARj08 z<Id;5l8|xhrU(1z^JA`*LOw6|q<}cU2mU7_eyDpKf1Q|@-&DE)<4D5Pnkqs5R<Cx} z?;C{43x=|M@Lw}CYM;a!%G){T631b)?;nLYeX0M`2Ee4SuX496V5%2D7GU4cIX)9J z%Ni3d76oU%c9Wv(*M~w}uL=jmKIiFAym&h^HUs)T<oy^E?Dv=lC=X~{Am{L4d=LD5 zDFsbUTr-M(CG|cb%lma>FnPH?XdkrsO}kqE`lL%0UD4-D#2Bp8?!iAf0BNK@E+8kk z`9RqSI950gHpD3xE0#rP1SziDqzL=%p+2Zv;>-ov4s$HNH1%5f3HJN3mx|HXqu&Q+ zb-Y_`2c!?+nS8Dq%R9TEUXJMr`5Znh>w)&`gZ9C;k$9!%FIY>pA~vH`+WbZV%d+ox zW8b(<SwPAKN)FI-HwUoqkLJAXmnvGOo-cic|HHNzlr#|PIauHB=eaC*+Fd4PRql?3 zZ$B3OKCwUXDzRT7Vy~6UWQBd>aerJu?8j$ezHapUv-0b@X2H)F@-_NcCIju~ryhfX z8~i8b{%JRAw#H_bVSWb4{lvZ>{3|~2#RK8+9mIi8rd_UD9JIb)m05qUYxSNX&WZi# zn`O^UzFD=iyWjW5zK;Jucz_&WY9oOBPapr3n;6Sm06$-TV{)JP`B=^a=@;U5p}2%T zps80X-blPy-W3D6pKCR<Umtz4z>^f#t#WA>plyIUf?E#Yb7Ii<<GJ<JIoS@?e+Dh@ zul3zmb&E2O#QHqY^H;@Pye;A{cgy^;-@jfV`+nkIC53<H6PYx7pw+g{0kk2;;XY!2 zdOrMoMIBrFWd5#!g#A8h8^oaU10`mbH%`1zBG_LO<2v@$wiWh`$0Y|q{^!~t6Cq0^ z2FvDeRc`%_1FYUN$j8aI@ZUZYlUcMXHscn?@pkw7v6T6VeY2!-f#d|G7uete@&K`) z1nkcM_UBjKKj6aJO?;1_@x4_U_O~`*^*&bbAA;ko7p~iwbhSEj;`w5X?}4umbMaf@ zU-1BQBj&yKrS6a`!cSn1kDszDB9Gtrzg?~nw*jm24)yU6)T0@;ShwBSzb&yZb$)l> z91Gm5WQPMhvH&^2f(K$DC+IT2tF%4S)fa2?vb+b%uaDY>YA=kz$6BgusGmonpB{5E zUnU*rcDB8+FXexZ6TtkwN3MvGdrygBpB)Md+qLU=>VHF)_jNnyqxv;spZ$KU8~bsv z$>~Y)0P}~qK$8V@y+HDTrWZ);gBK>}V6Of=`1o%(6)z}jeU<AphODktS@(6F+xdU> zu6>wuj)%nbqPG$*lwe$cu^5lOe>D7kW1zEpa!vpD#REqC({4E8c(xe%-6b(>_X!cU z_2B*YwtW59=+xBE&gW*QE`oJUAJwgneT?T3?Dyj=uumS)@vm=txIp6oGdrOX`zeKu zjnc<2x_$f{mlZM&2v%J>`P@*JhsA$+#(JjTz87;2YcN3PSC}XM^~B@8u&<xfd4PJv z@FQ2nu>I*G?8~EK$macbAp<;y6xu$)$-1-qEQ@jvHV!=4&$zt`<9YmI-%1WpJmBE~ zB^$W8K*<8s^`))P-S4Lq)ZgR0okkyj$T+}m{q)6kebgq5ZBDJ<6rX;(F(w`Bx12%0 ze<IHk|B4F&;Q?|2xnRVPm;)R-z_5L1#E{Rw2M6ps^N-K=zTk4XLTe8SRekqi9V_fl z$hhUP^;yaMI_{0z3j2C)#sjhN@5O-^l*~UTzpisuUJZQw#in{*&^aJfbsXsb^kJJY zVxPADNf`yNCZ4-f9DNpRw*8F0o;pAJ__65snH1iA<+iy1yfPAF{)bTy*n3*Mx9wXo zbnC%of8VtK(HryGhxM$mA9Fr`6=i;pz7KpF@ojfs$G_Uvd4T<X;tj<0V$ROF7{@;+ z=kDA7=5q-e2Ly`AP+Z@K?ZJq9?i2foSidPTvnX@InOoi1SGb4nukf#OU-;)ayBxqc zf)QBfYsBG;V(6})MA(*tT|-m%y!pS^9{#P_dj{=TFzdVz>)PeE^G|SNKOVL|>ihA) zemwB0l3m;zuT$99b7Eh{_T|>N<9ljkd=KBnU;PDz1A<w%fj+wr+k#cuvtFiTRKGm+ zQbk4#upfzjf1Hke;@^Y=?8*a@4}91PsS6B0nk9xG$Phz!{wRiQ+SmT~4f|jGpRTmf zjspp_F6~_3hxN^RjXaa}%!Kq@==%l23j2x!^xTMZU;9?rr;mSjQQOv}0N3XW3J0iq zuv2HjxJLbdKg-$gPszCb^5jcpd!y6Q@1HJ^*k^1WF+WaW-zs<O1^&1|$^$-Zg~}c{ z9QMGWum=v^yuWn#=6$aWXj?!Z*0l%wXL47?28eyd1HLeCc8)y2<0`ff^L6j-v-lo= zWgiTTn?2Ltd-UOXDf44}jma0wGA5iY@bvq{K5=hMQU);N0h=74bOtlsfHJ^H%md=F z2X2EsaLc|UBT^4OHy}Bn59_rX`^CTX`-tg{Lrfp-aSGdZb2FS<9h3N{-hZu3OwF%3 z*(Ymr_N3g+aNC<>J$Z)^-{ZpEPPFx54TsF=pAFcDzi%9q2?top0|pN0i9Db<V8r*A z#jvko58Ql+x<E?UC%a77{{D|(me~NUe-HLy=clcY@%+R-_5B3s`w7|A0ds)j3M<^J z<8sUZ;t8ToWr<PWo?0A!_~i2;=kDINiJsPbZ~r%h_tU?hn4b4U{F%Js31{;?GCyN{ zIF}!j#J|b|;Q`7A-~#sb%+<E)`;ECr7NBl`Bst*6Y-tZ<Y!KoCI^SKl^Nj&x4-8>F z8u?FRA7gnYWCHsa&9P7Xs}$cuE>L(k<{URL;leEu{^MmaeD@Dx#8*f54*zohpF$qf z;Zz;?;sU4sBgD^PT;If>Z@f0~OkU%J)4)FDe%ksd^DFE>gnu7AV5t+hdB7k36(4xn z2jCYR{=;=K{NM%H1CNXMHtlO+TtL6K2Zp#Vb^H_i7(e|Su^;Qketed9zprqw=i~tH z_k;_K_@~`}BIXQ<Jabcw{SJ1Vo!^VFZF{e~<GLQx-*<33gmI5(m$H2vEqF5S__eoU ze#*W-;Z$CCzYqND{l3ltc6mT?fTeCgE(m}Rq#W>*vIU%#_P}9V4&;VyJNW02%agwP z0OPqn!awVlb9W?OFWu?EKCqaOQ|amJb<F$PR<eE|xfc)U9B|~k7y&upz0F_Ozqjs- zzm56qv;PWt{q<3u^e29!oe%4^z7%!x#=7XAu6IS9#yT6P@@2p83;RB~0C+aD4=66M z%x&ldlnE3E&=xS<9UnM!+o8Q-8^3=h<ZZ}^bF2M6Xluki;%Z))l3l(#{_<^+aJ@t% zLf2>PO=8a7?u7n5(cRDc!oE5e2=>*rUL1h`=iEV2XLH54qnTplo@3DCzU~~d@yq0} z&AXl-u=+qB)NgNjglo1@-;e$&>vH(9Ya-&O9K`nIiSh1!KOA#-GL6@h+Xi67zuLEB z8}KO$xH-U|eZa#3hz}gT2jc{{9~Q$l?uq&D)PwzV?e`G3kM4dy|Ak4{OLoU8?B@Xc zH#O{&1Kjvmxx%@>Twy!VTylZpfONFA<Cny!eTeP)Y@c{{<CkZs573?yavl$H{qz>Q zy}6&`>7$QkJQ;WF@|)=Mn<GzV!@q|y_rU%*Vn4l5;$Goj&m|Z5;Q(DXkTL}10ge-5 z;=b}BN{qW@1uvPvzyVfVAUVKo4;;SxC)xua4BNQ(wSGBPFof+(#cfQwTD&{<QX%a7 z==aUAuVer{4^SQ;PxO=nXcLUaJi?KuZ@?ySRt*2@d-2|u-7P~l?09?RjvY@A$^y>Y z0pyxZX;=OdeLQP><k72LQK!25{BSq!iCrD<R@-)Yfb#)zj)18c|26FrVm~ogNc7q6 zu|wm5a}O7Q2fR3d`vx9R_CP)7_@fa=VGlfT9<~6=lKX4jHl@&w6||E1_2VJJKe5mG z(k5TIoi6+RtWt^nNx4-RZ*x~BkL<7G-nbng4+P2q>Uzc<&@T9kK5!g%!EeOSEngpC zJ&xb9<?%sTp!YnW`h2d>9(DXmg_QTv?{~}l@XMS7?$a@z7wfjl+%5ZC;h)F7^aAc1 z<N{(J^Y)85H*3VoTMgpFTlHeaO{~|BIo+pWzNc86pP;zFEf*-6;2|zB@PXohZatuT zys(T9{Ne{OY}>)hVOzd^DP-+N$GO#Z2=Fgswyxy;CE;R0rouk$e3Npk#pFC-pUKSu z%>D9!rW^Rv2lVrS`U}Vb9B(+`d;xUOt77y)=yP8lhHqzg<IoLXjiy~7<o=xy)K_n0 zc)Rx!_v6#j9*4aDYRvJg+ar%(?uz^=3u|iR0<ZbNu!eo&-<Ze;fpCGF1Bm^2tN}FZ z`dzUkzrN$6JB_nHt7tp3rL46xwYXWVDQFPOF$QD~#)2kgU@mD~9|bP($OP>BZOR0S z14dxHu(AgZ+wt9oceZ@<R7g0$3iJB$Ah#!CU&d@@nqz+wIGD-E1AaL`;|U$({<b~7 zLv0+9>hq1c$36)E0M`_W`Wb7z!!|f-?~h{WXZyvF4ZE(t{mJH6Mt%PI6CtV3AlH>$ z?DqCL%K8(JTzMhpXl8iC(ags2$1Y<H?HjVsr@YTTKjJ)We5%hkVqfj!JlFH_#{-lH zc#XpT%&ZzQKc}wKl~en-l~}8FOJUtpnAhpCukPMY*-_qcXLD(bSbw`oe3)A&7T>5A zvoSB!<O{_j23!z{xdo(dV8#Omy?`=<xjk@iXyy*nac;F8#5Uz}uf>^|kyjK4eLul1 z^G|m7`wIIi_i#Wj<N@1012_H|UueX=*}g{>K&(*2$?G1wz&|$ahL7N@?NYZx%;z8v zSnC9A53z?%Jso-E!fR1KWEO<~a8Zo^@tO!f1>YX}{BYR!i2F$3S|!N={&;{~!DPV& z<cLUMHv#=Vu|MZVZRf0O-Sawd+!m7yKB-;B;&)$^H9q%cY3nOrR^8kBS$Rjz#^M(7 z@vTPj0k~kn^(rxgYd~Orp=h^$V22Ah7s1HmH^hi<GsUp4FjjE${`(v!^gmG^z2#D$ z_gi6JKOQ9fOOF3J|AqLBywZ3h_Vdx_=ed)+|5qHKax*TlB@^^SH?YeA7$?M-Wcmps z=_5eQ;Hdp4#IP^ErB2W>eDl|-VcT}SN?*?)5B$Od#Qpeh(w++6cjA@s!|7?`zt89j zKYj%~+O6kDK-O2dkH{z%GNmI&Qar%iFBh2bfW$tIC!i0Xk$qRp%kIX$OIx!`ae&G> z$K$Rl@rN%en_t{hBi`6q_29_X^0v0rJI!KkVS`wSHaib(VH(ziP__cjGc0`wM%}<I z6O7@!AwOJ$J@8!jSi!9atHQP&cr~cDWF6;L+d;rTeYa8Rw_c3BkXz4wKk-HxWc*4Y z`+Z=4vLQ(>u;2mmfo>a6+h$zAbCZC7mHg=f#`9+VzS%MA1@sZbVB7%X2B{N_K5$YD z-Em0z35I{RXBl~bV?cshzd@)wpZ!UI{};CF`eP%}-%H#dJd-x=+w`t+M>1hc$&!9O z_W2QRS>J<ug@5J-4)EaLCKnL<6QC<3V%^V~Ilydg?ftpv_jT;^dll}@@>C&y^LdSU zV%y!;KYv{-Mt^m;GZS23X)B<9plk&mn;|%WGQeoeA4m=uvG1&$J8byYLnp&F9}eDl z6D!Q?#{;ZWf9->@8xt?wcrETiZc76E`x5)G@lSzFKc%4dA?)j1U|S~8bbrMIv?cOC zl5=atbfl@6ub(`i^npO)2+S~VJf`9WXdjHmx`T=bC=U#UJn-)3uiJ-i{dzlX1GM*q z-1qBnz51(nb)I&;uw7?<H)ik8FGL(V{pR?CKWC0Te5MP1zLfPN7{>=4KLWCT6y<#2 zTqRQuaPxsK2YAT>7P>(sa376(C&7*<v7b}dL4DuXTyAFgSI1n?4-O0Q+i&WGv=!{G z?Oe8_;$F9{;7+4h?Y0%n(rg8shfwJUGPa2J0Qv<vhbZO_8^XE6wj2oFSV0}<R@)A? zlcY0eeiwW4+TUW&<#Z7HlhE%^*04|ftEA&z-wuQWlq^8GA_+1D*5ee5iW|jZq}jLd zUpTICuX1Cb?`z+Pd9!`R1Du~o=K;zC(pRu$PZ#_IXNPUr`Njy$55sukM^PrAzBlS{ z`V(UgoO*Tqq0=d2_n#~td+4kn?!%$uM-un!?={><Wg_0vofHSC+!q(<a=}9~0dOy| zk2SxhT&onb;n$m+*U;v=Rr@zrp?F;JlrdL0x090#4wi}Ee^Dl$qmHn%;@)Q13hr*A zt>AWpSe0KZT$-(bzC@3HKn{Q$AY+8TMqjb@VArq>dxA4o&<gYVafk4a`u~0O@yl-k z`<;`n-0_Kh#Q~li{k6^kYTFkVc<ckf_%vXD*6n(+pr}DCEv((PyrfCY#XjYML~?*G zFF+<B=9OIF3;*(5fVKf$9tcMa;h00G#qeE6MA-HN)D5b_w(eOsV#60N{$tzTXK5!G z$XpPen(>>6{ipvp{@b*dq7I*aWBkE0N5*{n^MkR6(#1H~_QKPyW4umxe;*0lPe5Ni z0e$iW4fhKF%oX;Hxg{59_5tz$<pRnS6EBvCB;aor`eau@V@1lX<`<3gH}?krI!9R9 z3jSTvEV)413a<WQD^R|~(P@}J5ca^~um^^1Inc_!!Et+_j&rN+UgDozh;bT!h)KKh zzv9o|>`V+4`!-|(@_`u_5Z~<giT(K~?<LjuzF1b-`mqcBe=?p+oxltGiU){)_qJdB zyZOR%ogY3>@_@7t&}RrcA^ip8Fs_L4#MBMm+q$<4<BRf!Z{4$u`oV}V4n7AS_(Ol! z5h&Xy9zOhA_VdL2xI?F2A9wK7Zs<JqV-EZ*#vMK{bYEU1?0S)~y(!ES_r|2--?**w zfGG#K?E{nth<ox&{H0PcJ*!&Gp*&vHdYQQA{NP5so9*kk?#cE;wt||@%Uc;&P}C$o zVq5`i5Gh<k7I6g=pc{;l9Dw-)5g#~W`{9C7pCA5<qjqB}%<IQ{fq!CueA=a_B2Qe7 zNw|>P<<;*4m!AGz!?@jJN(Rt#$pLOVp^p7|#Z6*K&HY_VD>`0V3^{DJ>iZSm{pCiC z``I_s1B}PW1N0Th@x|~L$arGJ4^Sq6J}gG;IWGMMVW004L$-fYI&}N~?ZZAl@CN4| z7`fxn(_=n6LOtOzN83Yybxql1{Fb!GiTAKwCpiY{vG9YZ!p9ywbrhIyplmY+GX7ZD zKUH5J2^l{MHa)$sp8z|#OeXkOd|<@B+V{%=Zu>zro;~?$g_sSDEy#zBzT&~5l~}8d z{WGy_hIiw!o?zbW9^!(wf*tkZX~q>uTS4W$J6jM}u&%J%R<H;hl?+<}?S*47UXXJJ zjNNto$cQh}oSQpL$GO$E&9X6;6~8h5T=uh(C$FrEP0tpIy1ozWC*7)($u8c_uG6uv zZ|m5f3+ykfd9ZnDwRm|Yd^MB<rsKbP4ebM}pSPQP`gtE5Ama#e-iUdteUD548v$dA zC!EWdV++EMU6gSIqrOR#V+_LRKiGbt9sb0u5jzfU9=YSd+w>8E3tk{6{C)raKT>Dl zI3y?I4k>pM=j0q>eeB+2&yL=6^5qfxkG(j0@A2d@-<&);de2W)qxSsNHD>>5A?15% z$G<8f5vNbgv#*bG_w~eLG%&A{2md|f0i6Sk+wAvaAn#9sygvuJ{-XT)&Lu^y$;(Q_ zvuvX}K8<bIxUXO9)HdJ2%T`c*Z{7Ct_9|s7piD3o;}4=R#&HzZ6&&{!%KONX|1!Q? zkM^xFuOIIL{`pOb7xSKvI-k2P_CgM1uEJmReGU7H1N7Vs=e~~VxaT%;t@QnQ!1}_P zdpnnvi|1F=iYJ#<J~%qNs8J+A-tgE5+&mC47x=)xkt3{dZ#*t}0CItfC6Zi#*kZ;N zGQN1+4;K()d|HqXI0pfB1#m(a?1&A+c7B&NZ0F$vL$@DTF>L$3@ORejczyVnM_vir zmG;tzgK5vv&o=7tVf52!e;|(8hG>VEws>rJ@29~ZdGyJ!@6SBLdCn-qkJ)wf)lqwn zzA<X&k;IX^j--y>_tTNlu-%Q=`(rz06xuN<uZ;cff*1$BVn0t?p2WOcr#IqV;a<<l z0czhP3;5v!B?G8j$3Arm+V|rxmvzhg#C}0j%aX!|H(XU!e_$K6!muwaS>5Brampf} zRfzwh&G4Ig@%ql{`v(|Tu<mxVfNw&^6@?$Z&^dO0`rqg~_4S^%&gnR}+71x^jOUHJ zUiebn)xy28nfW4~`aZ_+(FQ-o5BA9ezOe4^9PzKP&whVV{r%mp3h@HV)m75^mwDxF z9Wx4H_rrC)jw7P%01mKiC!{=}k{=rZdBKYd5KF+ABI*bnZxs16;$p}LkgGW-k>mu} z4v0tE62S%1w?O~G$UVo~M(+KwYSiAe>&TCf-1Fnk;d_pyj@WzbQ=D5c>YE>D<J_ks zzxgS3<bji$NAEvz5}3}#ScY0`w~fF&2b}AGG0h&VLysRze;wm;X~V<&MB=@o$W?CH z-h+9>!$ljDhINH`J@1V?Kn@`G+2<$0zMq2rb0OsY<#$?hxJKjJJn>sQShd2BoqL_Q zhPHzJ)#8tgE7;vA!aqk`!9R;zJ7*z2G5%~}qYE)KVQAM@?`i9}73THh0pOq5PsBK$ zN!Rb3lyN;6zdIRmJrehB9bfP3{cZchyVrSOdMf^7_MHZ4>jU<8xthcaF7Q0-d|B0l z@Hy!FmF%zZuX3Y2U{@cI*99O8P&Np7oDpRLB^S84fU*JOi#Ya(oIn{N5_6P>r(FRq zp*Q@HA;y3k#vDE?Mj!fFas<aGF^$}JLfRT>Z<O2nPs-z?VWS&!@C<bJbm04(7z3Lm zpF>;ycsy6e<xrl7&5~G;J`X(}?+`8Dr4;Yu?!%3EH``a&+Q_~5z{EzN`hVIA$UE%w zr$K+72OHm#TaBG7OFEXlU)cN-+QNSZf=x3F1#-U=*RuW6R<Ok#SMaaO&g4b8jd}C( zTaUwb*}FM}b(~vm+r&R(ILS!~m-Dje+n;>1+qX|yI|+R*(^R+4?+^F-d174cd*L0& zJ^LE=Df7#I-;I6N;qp7;>4g;?S7yQYN`HXV{oQs#g@3bLa)MnO0dTG40oyWx4LQJ4 zM^K!Au}AbJP(C0hNM3+nfw2Y?ATN0MfpP=na*mtlyah~A?6)aPU|aU#Qdh?{<P+E+ zCY;0lc!qqI#5tZztiw(r6L38dHYz=_ua7aqyRTzDI6&zIUL1hym0i%2qtB;bZz_HI z=<{89^<r6Z^WEilT3%m?ev~-s2_B6c(3594bq~K`HO3$;zf=G842(<SzVZD6+PA{I ze%uEByW@GUy%={fx58uR%de7pw!;2Hc@Mb2lm~$4Y2X6Y?=Pmz@5VmMon=HHPfAf^ z=L}`{!#%p)zzq95W|RqR+X&oTV6+2R?FT9k=$xSI3A7uiq}DBv{sr;_ZHr9g36<P@ z(ajmaHI6H6%X!anAJ;nP+Q(`?#(hl3yxF#s9H8q4-1cyRyT7NbFXQ(y7H<J@f2*<U zgOawLOE69+HADQSxA@aB)!Sz|b-(^jJ>J%FZnf<P|KrmNAD{U1mDgg=-E5+rZ!%;0 z{9)fM4@gevArHvD-+=w42JB1xBMxg}Mcc9z=mp96FCF*BZQXxp<OB~FKpv1h0DA`G z2V@L^>iczBK^;SGg?qE(J>>!q4=B07A~&vUMt)F<=k)bX<+gkM^NEIa(8&vCxHldn z4+P8wlof2s1iWrC=H-|L`yTuJm8GrKA6DFZV?}{@lH4B*ygBvE-aMzrnAh=ag?atB ze!aHMvSmzP?CC3Sz`xfa`~B>4kpz1>W&Wu;#{F&gfCGqs>hi?(0><{#-`lD8`>Jeb zmoz@RpuFwYOv?Va$B233zF8cR;sOr`0QdaP>ENGaq^a2E`e2d^aPA@7ftv&D>IH$= z2~A}I3+(&i2%Q(ywl6NAOrX+4$_IY<;2|5JFMU9r^T7d%AL8)8NwAG0hPP{JaodKK zu=7&hQ}yp;t}y51Gkf|h^)9{2b(~vmYnWI6<pTD()=KoLOJQ;Dc;3md@e>o%fJtIM zApG-sn;amoBld9*?RmsL{rk(B#PfVFy*z36UkYE!9QXoe;(FR4JvIY7Twt&f5dX@* zIJ*$>V~8VMUeYKQ-NCzHJi#=ZJYd%ETOHH!9muvXtec%vm^bEL96%XBj&J4|XUu)1 zae&kj$OC@3phxn61rK!l_z=^VSuBz=3&UqYFE+LTy*)UwO$<2koZdcz@6qdIg?atB z;eS}ZjO&Ryb;X5#zl;68j{RxqXPFcSNFFHa=7WGZ!GsTpecJfx!<!52FDz{q3##w0 zGK=M4`L2R5bx}q82HFOs-QR$J4;T0wUx2v?h<hf+4bMUR;1Y}>SX16owV|rD^V5oE z@z1g*u~g#$`a3<kfvy*DyQjKAfc8Q&oZCI7^MDrzC>_B{F9;O}K=+T5<0|t+B<2c; zI+i(_V@pGU&rtk_KYr*n_K9mdKMnuH{^V;Iw|_BzC*yh&u0r3>MZbTmyWdyXH|Abk z0PH?w3-oo&%>z32=K=eRfPGha$0}E`c!uv~R$eLS`{$Rn*0ArV?C-(5#kNrwQ2WHa z97ljYe?GWm5wO3ys^iS+iuV79W50J)wH?`3)zXy;9#~V_D3&N5fKK407ZCRbF0ktN zt&Rt3AFzvev+HyY;I=;=FqH@V=mpdpdZZh;@z3!?;YTlts2?w_8*}7}CoaycJv>Us zLXCg=_7g4^{b|zG!XpV+Zi&RKB8h#*+f2JtC#Dsn-)D07|Gx5o<N#oo*r#40`+efC ztWmg%n}PiX5B6Cedi^qfV$t1u|6>mH1L_J!+20ozDBLrb*a!Y+0s9<3xTLtTYkAeZ zHPkDpU&vHj`y}Ut`l7lmZCh1qHxKCY0C|A&fa>=R9H83;^ld8+P{)I*59oXlC=c}1 zRu~WuKqufB0?z->c!$X27f*6+05e?Z?c!0{Hv7(ikJ;@1>D#A|FX2+&WscvYZ$Ak( zequ5i*h&WG^<;+!?8*eZj`*ehj`}{w?#(Hx^}@bcox0F3FRbi1Oxd4ye_wdFJV$Or zBKBp!U)<QSxTyXuS53_mE`!XGhS-uF_4QBhtY~`ei>kIWiU&Rd53B$$&VzkmMlR$C zaKYppjSEaTLE+m@9ta1RU902V&bE;YOyvTDZlL%;+6Zmf2ki0y_5bkGSdR(#k2sc5 zJoebRXRR<`)<y>MF{|$k=(r91Q>ThbzxHB$#?7k4YqufK!rlsbpSVnh?JF5`o9NhA z+fHzR!an16sPD7?otazd!9KrL)uF!a0ygIqxBhuvS!=6|`LU4qEpd<QDep60U=H|$ zoU^p7rHcM!&Jm&h(=4alK_2+BruCJbcRLPzR^9es1N4G_fd}3P4=lP}hj~cAD{h&< ziwiWlzz+7+HOgPWeKU;vJ7x#>`ZZ=8ppJRz2nHU|^#gzY0$X|kbO6p7!q~)dN6vMO z{yyVnU+v$lz6R<sU*Bo_oDKZPp2~bZ_I!3bu`hM~LioI3&y(0E{#7!_0OSFWPT)f? z(B%MbE8BpMed_zJqK2*+S)~h<jaUCh)}h+xHsgJl-hD8dc7N&&G6oS?R`EkBH^o12 zPaC6}FJuYq4DVOpKe?i;^;K5@@uO+DmbL-t2akPKdw<3DyX{q5s#*nYg&)C2upDJF zzpz%!Bp1-O2>rl|3zS@dT;beq?ho%~=XHDsx~;IU=N=w#bAZCWiZ!6$j<G~c{<y$W z9-s{XV~jWkVchrWf@2do2Z3q}R{221y#C%+-xknu8~BeqccW8be;Tkq9oV1FK40P9 zn49o`hYQFFev;w?%KVhwCHC*scg@TyiJ4hYD`PtReWT=viuTL8?5{9y%)K~(^1d7U z?DH3ca~2o3xR#YSJx@JfFMqq+F32Ksd?)M$dm6+WU)J7(ZqU-XsS;zo%bUe&l%E$D zn8^i!azTK80w?%D$38J`#Crnlhm*2kE5<n7so7Z5330kSrmpqJ0m^Ua6-xvgKosJV zxi-M~@6L<pAI@Rke0$^K?AD*J>j)oT=Yx699|mllw}F3*<w4(sHP96H(O#!Bfdf=} zhzroSB{TWr0t=ad_mE>|m$<QCT-P}(r|f@WzBD;z)9kzSawblxpU)|4>YRz^D7(KA z_iA6^pV!g1$GJg>ec1Th7T&IVb7ggRoVETRJ>8~mutm)eS${wI%i4~-t?(Ocf?Tk! ztVOIYZIWDo|CR9s)4>Itr*sPJ1-fhyh#U}Xoj}Juw`Ke>@Xz&{iT5ctDn&Bzo&wv) ze9U{dG{0Uf$9(w<F*av<7S?oibAXH+@M9YwM<^bUG6CY5iGR*9!1<HHzdN&x<C)Fc zh}p58)+6sTgHCUr7wEla-xKgLvyU(wOUlFCWVaD-1H4MyEBve6%>xf{0M1L>fG_(1 zIY8q9+7f2~{~V*wIeT1p>N{s;m%ZgGEBn3Gw;9XLrQ&@dV@ta~Fs-m|mP_A)yU(9X zT_3)^<(2KXY2UXyR@C?o{`Osv3AmQTt_JbU=isW{^_|Oh*51$AcDKEgT(BNou!i;m zlp%eI^9$<4Ea(Zzx$sAT4|)<mplk$z_zxe_0~Eg9Ip;58N<h5fB;b59aGqqq`x4aY z3bcU_QJ)`Sew$A#+nYC5wN-rry=qAw{5rTk9=KO>0ObaMF+@sM=#~ZG1Hc^X<Bw*D zh#$`F=6r)zZN=)izxpzsH$cR6*LaW9`&Qo)&~ei@_dckwKLdS}DgHGcFy#Qn1Ab%y zVqf<A3j46Nb52&P`Iyyr8q3v%^;ulyZFk5a#6R(EhI@GoxR+yx+<iWE{gpLchgQ}g zhBN?O-}nxJ>{DK$en2kRR@?gOo+c5qyT0rAwwjK5+6(@z=?UON$pO-jsBDF9-N3F) zAmstvqs#m{&f|e)W9r5?WOmB!NK@R2a{P>&)v|A&hZw1a;Hjmk=l3z6-D>z<KSKIf zSxeWtind!DtJ~LY#QbZi)h#b?scQf0*2<2%{{q)8#ywNX0hsqr=?r@Aj|(`*hgyR* z{K)xC&NrvpMxeQ!dh<qyy*)e64fL8ozs>Y|8?QeD_?-#t6aOk%@_;X$fIOg*feVQH z8IS{JqtBN8erZ#StElO<MA-36-`j2PGnN^##D1G&fNA%qe^S{KAL0ODU&{M#`~H&B zhECw$bY3Xq{{(B_1-XD@y=gb(95A0%G`;XeRcqq5%H|`f<xOp?P=1Uv_Q(JR4p4G| z9WEgLxwaYap>C0cG!<!@mZ*QwXUUWT*@JS33uzH?4sKmetfS6Xqi<gec?DP(!1{yD zHJx|1)^+XPSk)1>26oeph|}P_Huyd{{$Bb>s>ENnRJ7h(3tejg^a9Ss9S08h#aH-C zjIl2c;CTP2vsfDpbCHA}&8Uh_%XrRLoAGzfs%~vS#qT9n&+f@_f8Sy2yx%wekN+U{ zRZ{pj$^yoH@&mDMX&>Nu>ILKrv>{?Y1#M^^@V}s}sou_f%=|uMxw)_=)8dM@%_)@q z!6~xuM>|y<pyG%a55Sl}>Dxmew4}Vb88Q5?`<oZa_<zCPC!cMBzcCdu&8MaH$!lOQ zoDbUoW0H(<glZlVyBxslC`WKDl=)b*YB3V=%(Mb&r8}*H97TMu0jI7-S$zx{iMERM z<?v-xwzqDozL&G9>i*tMRUIkp*Z)=B@~3T$;@M3YbC36b%mq#}D<^)}*0SceHkCGY zt-*iH1;@}{5Np8!N+wXUzsfo12<IY^KEUtO???P_`cJmnzPk^xx>kQ@8!&lfFHzXn zbDanD?T6$7;@h1(eZQL<BtHQ6s^8~0o~4y7rJSQF8e_Jt>O~#b>ql+7<9+YW!gHxl zDBP=@@&LyH&@UkE`;_;q+jHd{&_NnArrxbLIs41h%I3E)-heg{Io|N0bqka%z#O<% z$(JlJ1%3Kl%s2afS({i_*)BFzb|AGw=V+teaUXhm^QOx7s;yNW+0aD}ZLVlb-B{k7 zytT6Ztz9Uu4UkbbLT@3~iD&XvAm6zOw$*JFZ7Ki8cdbI5%*^Sw2byt!alDZS|F8kd zbyYC;(b(_KV$PzUU*NpNs-5&Ie`HZ@|HE|L8@F}ro5=uPd;lKMIe_*=+3!PcoR5BO zNmX06tGmDOI~TiI8zV**Ro{D^vOjHzUa~*9zzh56$Ce?jtiHE%CHkvC+pXFE2m2W1 zXyTt^4H+*W#}?_Bx7v1dfsqHu50v|7-D&KalT-Tk+PsQ4KD?Cw|1Ce2{(36@i+cKc z=pU3lI8QZo63XyW9zj{7u1x#&K+1v7pscXHrfct~kSSJ>pTPn23(}Whj3H3EfszH7 zGk$<`ka1q4@$dmees{*U56~|+*oVm@d!-Tc`aUtQ?<>4pasfHOjr*C%Q;7YF7O|}M zUgi?S%jr1uS2xCXHiL6KRdnp54S~F(@ULY4=@_FxpP~!r7nRgMSXfvaqmLgjKCi#+ z6N~?<Xm3~seVH*sa;;QgK9D(y$N|KC!cFwE7_Xg(`5F*cojL6$Y^G`AKjj>5i1iNT zx03_5V{Y~xb@$J$BQJvk=r8p61^w^<=Ov29d}o~7EFAMAM;t!8BKly4rN78uyYf2! z$fDZ*hY{a1%9_1!u4CS~ZIlUgE}$(@%KP-~1N#er{gn+^hryx`_NogLeNDAfwjmdu zF|V?<Malk*Ba%J^<g^7cj%XqNb4htq&EkTFztX43`_wb~d%g~R@VcsdSKdc`q|gQk z8Nf3iiCrFW<3BzJu{Xee0_JC(m523i`&joO@6-2zScuY3zyV9Z0n@+%Dn7^~2PiJk z<BAzWh<VKD0|-BsDWZ;?-`f)(plMsP50gjs%9+4E@o$#{%<wOd0sAwNXq$tLPb`67 zYeoHoy-S<Li@tEE*Neia@fiK|OR64(A?8QSq>Q1k4;vun{gXa@#P5rhcRS9pt*1IL zC!BhhQ01S%wz;mVZRaY~#axU>;#@0U_~*Wx2Yku|<N(<HCtWKOiPws%5r_ApD$h`T zi`oCA!8bsA!ltt3wtqp!SqPti^a~nw0mT8#!2?nUfDM3arbPUBNkkmKa3%KC)u+`r z^(ud4QEmUji2p!2K$i)KeYsEUv(HCbjPbjR;SXMBGG~uj+h85)$BlLBs;hg-Rn>7; z%Kqr<RV)Fy#)bbw{I1uSUHw@DWt)2UCzY+qt5F~G5wF1UNecgJelnFS9x(M05c`;u zJ@INOVs*;aBwwlUjF~r<bEwOPJieu*;SF#==SSe}`G_f)jMxCV9*Ua>RJ@^=Oh6j| zd;sA;Vm*RmnbqNkFFtQ<BR$@?50yvqN`-$tSMq>enLzgYz@ZCvzD1=CU2_YnT~6uV zF3SGs)8~~pcT&HXu>|b*-Pm7T(R{Ca%&vH7%x<XLcW?fWGV-VJul<ug0E~m=yo1EQ z!n~d<UNGeW=>A-fCGlEuS7Kh?6IN?T^yXcAb1&tbt>C$h6|Ld}_yia?%-BN4C@Jjg zwn4c~{9~T-h!fWs2i!UK_?bWV81F_s^N~cg{g2XdZ`@Wqp!fIsHue2k?tXth@V^i- zHnVcd!(4d}kDu>po8f%uiz_=^v?mbra@>IG_p4e<?Tp#&>3@g%zSUR@W=%ya)~^H4 zA%2NA03G-Gwvhv*PQW=x*!O3ZA}+ryGxq8opK@}jzmNY%KBrG{drjxoe}e;7LYHHV zA!86#oTAPH+-B@B*Fxc%1{en{5C@2L&jx*f_EBzqr4jSSeZ>K$vVewt%-Pd1Kfn6T z<cbQ$fqBMg_O^{J!~DLBtJ-fdc8G~{11-TA+f_C9kJG1s{|c!+ySLxt>;BY6@!a~F z`(-PjQ_WU3K*#~U<}4;BC@z?k>*@R9Yrp$8*K6_DPx^YFV4Y+8*it24`m*7{8IFaZ zPr$<g#JfQjkof0X>Rdk=KESB&)5EzAxxa6-b>12pzlt+Pyj$%n9#H-NY}%>OCsW^F zRNma+!n`<~JHxEZd)kgD6Eog-A@mCQKeQ`AzgS$_B**Ns9rg6t{qeq3tYMm3```?1 zfOBXA1oovLfVzM?S*>9pbp_%d>oZKcUQ$2h#_g9`K4$e{Jk}Rw(d`ouuWrA4{}-PC z;uTbEfRY6i7jR9JD2xM&fDaJk09OtA0G**HE4*7CXWxW0mzYFCOkXju|AO){8QYfH z?@1fu{Jw}A+5mn5$AD+bnpzg#u6A_HZcpATSobjgW<Bht9|HgLlnqeBzTyDpx-KAP z0Qd%^><^#cG!wg@st2n)Sl{I9xoOfTAYR;D(b__vz#{qt;1}fhBq{f6Isw-<q7NYa zIMyIOc5Yw9>A=SUntr=8FdDE=nFV{3CDz@(0d-#W`Hbi5j_c{jTmiqX%OHcBmb1ae z@2g#?bMC(XF6I3t6-@=f9J8zbvoCY>iI1(j+cBCpK+c86v5Rt!Qj7V^6(2}0pzaU5 zANqcuc0a4S;qkuscE%ZF{L|kymNh>32;VHn3V{Rk{-4{71ELQgA`L!(qZwC59vbuk zIzc+bzn&D<jX7m~`roCEzY=zvMvSAii0ffHvTA2`+n5WS@<IK**Oz0A><10^4=jOg zjK}QWKM=3O_x)dMF<$`jzlc5n+5q)r!2?o9aLfL%`<<I|sW7NxWSuVCRE&?_Qr;A{ z0sYNt_yu*JfQJWQ1LXSX5nQMESZ1ALK0qfxG=QI>V_)Ca@jn~&!akpJIQ!ydHTQP< zi|b(<=?w?4FZ`sTGj3Jgz3|nr7ZV#!x4ZuMyicl{Us_w))+*zGX#<3;@5KRbnLzdZ zGI#g=@cD`9oKMAu-Os9Scs$hQ!n&pHW82;PYdBU&`2>_-P|Z0c#{r$hT!2pc00%I3 zop^N}^Tus*KngGq-@Bj<4rA!M<`vbZ&?avek5=u>UmN4|*J7+Za?3HM{+<zx^Lm*F z<N5TBt*g0Lu#$EbWdk(f0L2Lk|BUrdyjoNncfIf>t1=Jdcrd=r*E3n)uz$SpMP1j? zbr`p~-0c@62XGD|azG4y08aY=^$PtJZW}T0**9Q+VR7Aqxp`%8sddSH)ur*AS-Ue{ zGZ6NDH4mrWe=Wx0eOhz>&<800xv&9peF8HXz#IRVw+D9rsaYlKjPZVEWpDSGQ{QCw zIpl!PF*nm^)g1-ofMwu->F^0C4xkSp8a@E}0K=W~0s5-cU%@#K-gP^G0sDxtZE+Pp zJXe?9dgXP-HW$df{oz`FO~I*mWV{o`0WA9v^`UHlzVI(&gc$F4wWy10wuWIHCu3Rn zX5XprviqDg*myV=8FLaeasDvQMZ`Iaq+gKpfnpqx^Z|Z<W{o30Kz|kch@aQ-KO1e1 zy8ax<`qcMb7{9j^F?O`O)4yldj_lSeuT%F2a!+4h8%Xs#@vgLce0sOzZD|99PwXKZ zpk@#3mi@bZ{*$kj_>K2d<sWG7#CHYq43@zcwH<%kT-owK%^#LTp8#xtavT7BfRV?} zA8^D67)S*_g4asS1NSL1LD#PW?vWPJ#@}%NobKPVYBzz@EuRs{^?iA5pw;cfySg9) z%eg=h8_V^_xkiza^&iSPCJ^zy@cD`4oC;g<epYqp^Ee8^iEj(!8Js_PE9OLkPoS&Y zCxDm-*aEtJ0Pq1G&&YCQ9AKc8{D@sY8|{qPpM$=hKK(_&{xUUow?(`RF7}%9$*P?M zQnv%)+MZOiQ{Tn8Kt8T&Z(tlS*CteJ9GK!Cvj61kC5?f^`&reY<#BgmIQ4yYpTl{_ zwpHDi^M}2Uu|k}uG!8a^h@Y-<J-}K=e1JWv=tt<D6yTrOpNF&%X-P#x7sm0pK4`?8 zG3blT>dLB}m|Z&%kM*>Ao%&YJ1%hz^SKe1PK)1}V&v7hm0$fuJc0c(1Qk}H>dDX90 z7*2hk-RH3VZNvOwUp98_TMvDd_CUr5MxVhrfFCY&MWv<x#p_))9n<!4?fZU>n>zM6 zZ`Pc=(zor5-?J)TyLH<iuj_67JM~Q*Bl~G}$9CEP83)WbK=%Dc{P#BA&#Df+jvETa zsc*FV92Yp?OT?MMCvchTsV%xyFA^>nGX_Y+oVfJYUXKGbeBZBaSN8jm`4@6dez%RE zWp1Z_yxNJzy>{;HZ`U|c?@oOa=K@(*)t=~?3&4PXaslTD<XE36*=3jgjq|mtCtJr& z3dX7LwEG<DptK2YE^oQZb(3a64~RaUB_^J@9K-diZGDH<KE19t`MzJ%p@mf~VtGxg zjIB4b@%yVIud>w2*x!Bq>AaKm?ZkJny??~HK%kp(ytA?as{X%Q_J`d+1a?2GvT@=& z19^sATM=cFTGn)rdO#v#fnw9MKTf`K#cO^etM+Jl-0A~=CC67cJ~*zghh<hy{_4r> z9v<^|UtgaOMio2tO`Hqlqsq3<rSJi8t#W;xGva?T$NF3=4vF2*s+^qqR=dxkT!gv9 z-ukGxscR<IHbBhdp+w9zW7Ym_9k=?pU&-;6oLAc*@0*pIzdACzhsXTg*H`C*RlQDq zk7q6r#$y2gT+@jCzqA8Lzh4>V&<%~<&sSMF^}TkVL!UruZD-2TJ53@vukJF}g12gW zwvPMyxL?6JU*&ErKVR4Kobh_K@9(})pATlWI`u6a53>PtfqXz4Abek3*N8HJ)cxu6 zzu|j+KUMZU&TSTwQ{QX%IWF{7AHyfGw&uakIYlj1voRK>$KS{{`z!zXD|chr270}^ z-`{<qIv?!ncIrDgCU$+zy)`NhSm9sJ3w{%^{yC+WXZe}mPnCU-@&F3Tsc*LX92YoX z8RnK=QQx(TYeL$+&+NJYKJ$^h)T~U5$BgaAc;2{gyk6}auM6dVs4CB?Z=$_>T}?-r ziUXz%ka0jswEOp=-Os8Vo%(LO&mjl6z>&=D-eY#1)%W~bj+>Q<*)fG-m786oA5+&E zbN!l7ZHKxpo%k*n+BN3_!F<4CDaOG_8zB9DA&mD6wA`Hd?odA?&~JRyt`DTV1I4oO zde8o&R)~i038YMYUAqS3uGUtyx2(Y2hqH^j#{y4=>_081bVDfO{S2RFYuDHJ^v83y zKI##^D9}3bVAyT%^LM}T`bW4ZJ)h>UOzfU#9Pp>L_p{!|oJ;fpOfA6LURgz5lds)+ z(P~|fhsxWBUDotk&sX$(!|wO>hwFO&m5;`qJ*fj@yYcr7&-IT+k@@`!f8}BKJbhgo z5c~cCVzlOA?W3uAl_Dv-I4dcu_!&=`28wTg*ZciC{}<T(zW#8X|F3zpujpwV7~7w} z=RDe_=>2v6%EIpX)k6GkLqq3+)${=p|M2@I=ah}cx?a7Dd9~sI@6YJfp51Tk>+5>; zk&nR5y(xb?9PkJfQI9^MH|47CWz6fQCh;cYfEQq1+@!q9M$EtVCl_pk#<F*0zeitc zeUti*{+wIC{jcLpZ|la`?)2yVI!e&|EA?{d&Gv^_<Ltw#)~*Fu`)qn)%^I$+W-N0@ z_RT+|*GGHv?V-50*B>~*AK*k88`~eBIlzmh*RStHx$+qwlr=sF{l8*vX=9fQ{=oih z_p>TAr^+H2&#`*vU(0c)%G8Skel3OP<2#)yS65ZlAKou({1j`S?weUq`=nPnTj}vV zIqu_IoH*rFc{u$XC%$d)8G|J-SOSA3FjxYEB`{b5gC#In0)r(mSOSA3FjxYEB`{b5 zgC#In0)r(mSOSA3FjxYEB`{b5gC#In0)r(mSOSA3FjxYEB`{b5gC)?HCGh_PKnga* literal 0 HcmV?d00001 diff --git a/scripts/steam_appid.txt b/scripts/steam_appid.txt index ba0ecc1..95ce075 100644 --- a/scripts/steam_appid.txt +++ b/scripts/steam_appid.txt @@ -1 +1 @@ -367540 +211820 diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index f0f767c..e307e78 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -1,15 +1,24 @@ -cmake_minimum_required(VERSION 3.16) +cmake_minimum_required(VERSION 3.23) # Find CCache -find_program(CCACHE_PATH ccache) -if(CCACHE_PATH) - set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PATH}") - set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PATH}") - message(STATUS "Using CCache") -else() - message(STATUS "Not using CCache") +if (NOT CMAKE_CXX_COMPILER_LAUNCHER MATCHES "ccache") + find_program(CCACHE_PATH ccache) + if(CCACHE_PATH) + set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PATH}") + set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PATH}") + message(STATUS "Using CCache") + else() + message(STATUS "Not using CCache") + endif() endif() +if(CMAKE_CXX_COMPILER_LAUNCHER MATCHES "ccache") + set(STAR_CCACHE TRUE) + set(STAR_PRECOMPILED_HEADERS FALSE) +else() + set(STAR_CCACHE FALSE) + set(STAR_PRECOMPILED_HEADERS TRUE) +endif() project(starbound) set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake) @@ -299,6 +308,7 @@ elseif(STAR_COMPILER_MSVC) # /fp:fast - Equivalent to -ffast-math # /GS- - Disable buffers security check # /Zi - Generates debugging information without Edit and Continue + # /Z7 - Like the above, but debugging information is stored per-object # /Gy - Use function-level linking # /wd4996 - Disable warnings about unsafe C functions # /wd4351 - Disable warnings about new behavior of default initialization of @@ -317,22 +327,22 @@ elseif(STAR_COMPILER_MSVC) # /wd4624 - Silence implicitly deleted destructor warnings that show up when # using unions in interesting ways. - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP /EHsc /bigobj /wd4996 /wd4351 /wd4800 /wd4244 /wd4305 /wd4267 /wd4456 /wd4503 /wd4250 /wd4624") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17 /MP /EHsc /bigobj /wd4996 /wd4351 /wd4800 /wd4244 /wd4305 /wd4267 /wd4456 /wd4503 /wd4250 /wd4624") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /MP /EHsc /bigobj /wd4996 /wd4351 /wd4800 /wd4244 /wd4305 /wd4267 /wd4456 /wd4503 /wd4250 /wd4624") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /nologo /std:c++17 /MP /EHsc /bigobj /wd4996 /wd4351 /wd4800 /wd4244 /wd4305 /wd4267 /wd4456 /wd4503 /wd4250 /wd4624") if(STAR_ENABLE_STATIC_MSVC_RUNTIME) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MT") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MT") endif() - set(CMAKE_C_FLAGS_DEBUG "/Zi /Od") - set(CMAKE_CXX_FLAGS_DEBUG "/Zi /Od") + set(CMAKE_C_FLAGS_DEBUG "/Z7 /Od") + set(CMAKE_CXX_FLAGS_DEBUG "/Z7 /Od") - set(CMAKE_C_FLAGS_RELWITHASSERTS "/Ox /fp:fast /GA /GS- /Zi /Gy") - set(CMAKE_CXX_FLAGS_RELWITHASSERTS "/Ox /fp:fast /GA /GS- /Zi /Gy") + set(CMAKE_C_FLAGS_RELWITHASSERTS "/Ox /fp:fast /GA /GS- /Z7 /Gy") + set(CMAKE_CXX_FLAGS_RELWITHASSERTS "/Ox /fp:fast /GA /GS- /Z7 /Gy") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "/Ox /fp:fast /GA /GS- /Zi /Gy /DNDEBUG") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/Ox /fp:fast /GA /GS- /Zi /Gy /DNDEBUG") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "/Ox /fp:fast /GA /GS- /Z7 /Gy /DNDEBUG") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/Ox /fp:fast /GA /GS- /Z7 /Gy /DNDEBUG") set(CMAKE_C_FLAGS_RELEASE "/Ox /fp:fast /GA /GS- /Gy /DNDEBUG") set(CMAKE_CXX_FLAGS_RELEASE "/Ox /fp:fast /GA /GS- /Gy /DNDEBUG") @@ -425,6 +435,7 @@ endif() find_package(ZLIB REQUIRED) find_package(PNG REQUIRED) find_package(Freetype REQUIRED) +find_package(Opus CONFIG REQUIRED) find_package(OggVorbis REQUIRED) include_directories(SYSTEM @@ -432,48 +443,42 @@ include_directories(SYSTEM ${OGGVORBIS_INCLUDE_DIR} ) -if(TARGET freetype AND NOT TARGET Freetype::Freetype) - add_library(Freetype::Freetype ALIAS freetype) - message(STATUS "Freetype target name is freetype") -elseif(TARGET Freetype::Freetype AND NOT TARGET freetype) - add_library(freetype ALIAS Freetype::Freetype) - message(STATUS "Freetype target name is Freetype::Freetype") -else() - message(FATAL_ERROR "Could not find Freetype") -endif() - set(STAR_EXT_LIBS ${STAR_EXT_LIBS} ZLIB::ZLIB PNG::PNG - Freetype::Freetype + $<IF:$<TARGET_EXISTS:Freetype::Freetype>,Freetype::Freetype,freetype> + Opus::opus ${VORBISFILE_LIBRARY} ${VORBIS_LIBRARY} ${OGG_LIBRARY} - opus # Currently a submodule from extern ) if(STAR_BUILD_GUI) - find_package(SDL2 REQUIRED) - include_directories(SYSTEM ${SDL2_INCLUDE_DIR}) - set(STAR_EXT_GUI_LIBS ${SDL2_LIBRARY}) + find_package(SDL2 CONFIG REQUIRED) + + set(STAR_EXT_GUI_LIBS + $<TARGET_NAME_IF_EXISTS:SDL2::SDL2main> + $<IF:$<TARGET_EXISTS:SDL2::SDL2>,SDL2::SDL2,SDL2::SDL2-static> + ) find_package(OpenGL REQUIRED) find_package(GLEW REQUIRED) - include_directories(SYSTEM ${GLEW_INCLUDE_DIR} ${SDL2_INCLUDE_DIR}) + include_directories(SYSTEM ${GLEW_INCLUDE_DIR}) set(STAR_EXT_GUI_LIBS ${STAR_EXT_GUI_LIBS} ${OPENGL_LIBRARY} ${GLEW_LIBRARY}) + if(STAR_SYSTEM_MACOS) + set(STAR_EXT_GUI_LIBS ${STAR_EXT_GUI_LIBS} "-framework CoreAudio") + endif() + if(STAR_ENABLE_STEAM_INTEGRATION) find_package(SteamApi REQUIRED) - include_directories(SYSTEM ${STEAM_API_INCLUDE_DIR}) set(STAR_EXT_GUI_LIBS ${STAR_EXT_GUI_LIBS} ${STEAM_API_LIBRARY}) endif() if(STAR_ENABLE_DISCORD_INTEGRATION) find_package(DiscordApi REQUIRED) - - include_directories(SYSTEM ${DISCORD_API_INCLUDE_DIR}) set(STAR_EXT_GUI_LIBS ${STAR_EXT_GUI_LIBS} ${DISCORD_API_LIBRARY}) endif() endif() diff --git a/source/CMakePresets.json b/source/CMakePresets.json new file mode 100644 index 0000000..13a65c7 --- /dev/null +++ b/source/CMakePresets.json @@ -0,0 +1,125 @@ +{ + "version": 5, + "cmakeMinimumRequired": { + "major": 3, + "minor": 23, + "patch": 0 + }, + "configurePresets": [ + { + "name": "base", + "hidden": true, + "architecture": { "value": "x64", "strategy": "external" }, + "generator": "Ninja", + "toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", + "cacheVariables": { + "CMAKE_INSTALL_PREFIX": "${sourceParentDir}/install", + "VCPKG_OVERLAY_TRIPLETS": "${sourceParentDir}/triplets", + "CMAKE_VERBOSE_MAKEFILE": true, + "CMAKE_C_COMPILER_LAUNCHER": "sccache", + "CMAKE_CXX_COMPILER_LAUNCHER": "sccache", + "BUILD_TESTING": true, + "STAR_ENABLE_STEAM_INTEGRATION": true, + "STAR_ENABLE_DISCORD_INTEGRATION": true + } + }, + { + "inherits": "base", + "name": "windows-release", + "displayName": "Windows x64", + "binaryDir": "${sourceParentDir}/build/windows-release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "RelWithDebInfo", + "VCPKG_TARGET_TRIPLET": "x64-windows-mixed-md", + "CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL", + "CMAKE_INCLUDE_PATH": "${sourceParentDir}/lib/windows/include", + "CMAKE_LIBRARY_PATH": "${sourceParentDir}/lib/windows" + }, + "vendor": { + "microsoft.com/VisualStudioSettings/CMake/1.0": { + "hostOS": [ "Windows" ] + } + } + }, + { + "inherits": "base", + "name": "linux-release", + "displayName": "Linux x64", + "binaryDir": "${sourceParentDir}/build/linux-release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "VCPKG_TARGET_TRIPLET": "x64-linux-mixed", + "CMAKE_INCLUDE_PATH": "${sourceParentDir}/lib/linux/include", + "CMAKE_LIBRARY_PATH": "${sourceParentDir}/lib/linux" + }, + "vendor": { + "microsoft.com/VisualStudioSettings/CMake/1.0": { + "hostOS": [ "Linux" ] + } + } + }, + { + "inherits": "base", + "name": "macos-release", + "displayName": "macOS x64", + "binaryDir": "${sourceParentDir}/build/macos-release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "VCPKG_TARGET_TRIPLET": "x64-osx-mixed", + "CMAKE_INCLUDE_PATH": "${sourceParentDir}/lib/osx/include", + "CMAKE_LIBRARY_PATH": "${sourceParentDir}/lib/osx/x64;${sourceParentDir}/lib/osx" + } + }, + { + "inherits": "macos-release", + "name": "macos-arm-release", + "displayName": "macOS ARM", + "binaryDir": "${sourceParentDir}/build/macos-arm-release", + "architecture": { "value": "arm64", "strategy": "external" }, + "cacheVariables": { + "VCPKG_TARGET_TRIPLET": "arm64-osx-mixed", + "CMAKE_LIBRARY_PATH": "${sourceParentDir}/lib/osx/arm64;${sourceParentDir}/lib/osx" + } + } + ], + "buildPresets": [ + { + "name": "windows-release", + "configurePreset": "windows-release" + }, + { + "name": "linux-release", + "configurePreset": "linux-release" + }, + { + "name": "macos-release", + "configurePreset": "macos-release" + }, + { + "name": "macos-arm-release", + "configurePreset": "macos-arm-release" + } + ], + "testPresets": [ + { + "name": "windows-release", + "configurePreset": "windows-release", + "filter": { "include": { "label": "NoAssets" } } + }, + { + "name": "linux-release", + "configurePreset": "linux-release", + "filter": { "include": { "label": "NoAssets" } } + }, + { + "name": "macos-release", + "configurePreset": "macos-release", + "filter": { "include": { "label": "NoAssets" } } + }, + { + "name": "macos-arm-release", + "configurePreset": "macos-arm-release", + "filter": { "include": { "label": "NoAssets" } } + } + ] +} \ No newline at end of file diff --git a/source/CMakeSettings.json b/source/CMakeSettings.json deleted file mode 100644 index 86e0011..0000000 --- a/source/CMakeSettings.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "configurations": [ - { - "name": "x64-RelWithDebInfo", - "generator": "Ninja", - "configurationType": "RelWithDebInfo", - "inheritEnvironments": [ "msvc_x64_x64" ], - "buildRoot": "${projectDir}\\..\\build", - "installRoot": "${projectDir}\\..\\out\\install\\${name}", - "cmakeCommandArgs": "-DCMAKE_INCLUDE_PATH=\"..\\lib\\windows\\include\" -DCMAKE_LIBRARY_PATH=\"..\\lib\\windows\"", - "variables": [ - { - "name": "STAR_ENABLE_STEAM_INTEGRATION", - "value": "True", - "type": "BOOL" - }, - { - "name": "STAR_ENABLE_DISCORD_INTEGRATION", - "value": "True", - "type": "BOOL" - } - ] - } - ] -} \ No newline at end of file diff --git a/source/application/CMakeLists.txt b/source/application/CMakeLists.txt index dbaa236..692f2d5 100644 --- a/source/application/CMakeLists.txt +++ b/source/application/CMakeLists.txt @@ -45,8 +45,6 @@ ENDIF () IF (STAR_ENABLE_DISCORD_INTEGRATION) SET (star_application_SOURCES ${star_application_SOURCES} - discord/activity_manager.cpp - discord/application_manager.cpp discord/core.cpp discord/image_manager.cpp discord/lobby_manager.cpp @@ -57,8 +55,15 @@ IF (STAR_ENABLE_DISCORD_INTEGRATION) discord/store_manager.cpp discord/types.cpp discord/user_manager.cpp + discord/voice_manager.cpp + discord/achievement_manager.cpp + discord/activity_manager.cpp + discord/application_manager.cpp ) ENDIF () ADD_LIBRARY (star_application OBJECT ${star_application_SOURCES} ${star_application_HEADERS}) -TARGET_PRECOMPILE_HEADERS (star_application REUSE_FROM star_core) \ No newline at end of file + +IF(STAR_PRECOMPILED_HEADERS) + TARGET_PRECOMPILE_HEADERS (star_application REUSE_FROM star_core) +ENDIF() \ No newline at end of file diff --git a/source/application/StarMainApplication_sdl.cpp b/source/application/StarMainApplication_sdl.cpp index b98da46..2130968 100644 --- a/source/application/StarMainApplication_sdl.cpp +++ b/source/application/StarMainApplication_sdl.cpp @@ -7,7 +7,7 @@ #include "StarImage.hpp" #include "StarImageProcessing.hpp" -#include "SDL.h" +#include "SDL2/SDL.h" #include "StarPlatformServices_pc.hpp" namespace Star { diff --git a/source/application/discord/achievement_manager.cpp b/source/application/discord/achievement_manager.cpp new file mode 100644 index 0000000..43a6d4c --- /dev/null +++ b/source/application/discord/achievement_manager.cpp @@ -0,0 +1,99 @@ +#if !defined(_CRT_SECURE_NO_WARNINGS) +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include "achievement_manager.h" + +#include "core.h" + +#include <cstring> +#include <memory> + +namespace discord { + +class AchievementEvents final { +public: + static void DISCORD_CALLBACK OnUserAchievementUpdate(void* callbackData, + DiscordUserAchievement* userAchievement) + { + auto* core = reinterpret_cast<Core*>(callbackData); + if (!core) { + return; + } + + auto& module = core->AchievementManager(); + module.OnUserAchievementUpdate(*reinterpret_cast<UserAchievement const*>(userAchievement)); + } +}; + +IDiscordAchievementEvents AchievementManager::events_{ + &AchievementEvents::OnUserAchievementUpdate, +}; + +void AchievementManager::SetUserAchievement(Snowflake achievementId, + std::uint8_t percentComplete, + std::function<void(Result)> callback) +{ + static auto wrapper = [](void* callbackData, EDiscordResult result) -> void { + std::unique_ptr<std::function<void(Result)>> cb( + reinterpret_cast<std::function<void(Result)>*>(callbackData)); + if (!cb || !(*cb)) { + return; + } + (*cb)(static_cast<Result>(result)); + }; + std::unique_ptr<std::function<void(Result)>> cb{}; + cb.reset(new std::function<void(Result)>(std::move(callback))); + internal_->set_user_achievement( + internal_, achievementId, percentComplete, cb.release(), wrapper); +} + +void AchievementManager::FetchUserAchievements(std::function<void(Result)> callback) +{ + static auto wrapper = [](void* callbackData, EDiscordResult result) -> void { + std::unique_ptr<std::function<void(Result)>> cb( + reinterpret_cast<std::function<void(Result)>*>(callbackData)); + if (!cb || !(*cb)) { + return; + } + (*cb)(static_cast<Result>(result)); + }; + std::unique_ptr<std::function<void(Result)>> cb{}; + cb.reset(new std::function<void(Result)>(std::move(callback))); + internal_->fetch_user_achievements(internal_, cb.release(), wrapper); +} + +void AchievementManager::CountUserAchievements(std::int32_t* count) +{ + if (!count) { + return; + } + + internal_->count_user_achievements(internal_, reinterpret_cast<int32_t*>(count)); +} + +Result AchievementManager::GetUserAchievement(Snowflake userAchievementId, + UserAchievement* userAchievement) +{ + if (!userAchievement) { + return Result::InternalError; + } + + auto result = internal_->get_user_achievement( + internal_, userAchievementId, reinterpret_cast<DiscordUserAchievement*>(userAchievement)); + return static_cast<Result>(result); +} + +Result AchievementManager::GetUserAchievementAt(std::int32_t index, + UserAchievement* userAchievement) +{ + if (!userAchievement) { + return Result::InternalError; + } + + auto result = internal_->get_user_achievement_at( + internal_, index, reinterpret_cast<DiscordUserAchievement*>(userAchievement)); + return static_cast<Result>(result); +} + +} // namespace discord diff --git a/source/application/discord/achievement_manager.h b/source/application/discord/achievement_manager.h new file mode 100644 index 0000000..1f58c8e --- /dev/null +++ b/source/application/discord/achievement_manager.h @@ -0,0 +1,34 @@ +#pragma once + +#include "types.h" + +namespace discord { + +class AchievementManager final { +public: + ~AchievementManager() = default; + + void SetUserAchievement(Snowflake achievementId, + std::uint8_t percentComplete, + std::function<void(Result)> callback); + void FetchUserAchievements(std::function<void(Result)> callback); + void CountUserAchievements(std::int32_t* count); + Result GetUserAchievement(Snowflake userAchievementId, UserAchievement* userAchievement); + Result GetUserAchievementAt(std::int32_t index, UserAchievement* userAchievement); + + Event<UserAchievement const&> OnUserAchievementUpdate; + +private: + friend class Core; + + AchievementManager() = default; + AchievementManager(AchievementManager const& rhs) = delete; + AchievementManager& operator=(AchievementManager const& rhs) = delete; + AchievementManager(AchievementManager&& rhs) = delete; + AchievementManager& operator=(AchievementManager&& rhs) = delete; + + IDiscordAchievementManager* internal_; + static IDiscordAchievementEvents events_; +}; + +} // namespace discord diff --git a/source/application/discord/activity_manager.cpp b/source/application/discord/activity_manager.cpp index b9b6760..3c20074 100644 --- a/source/application/discord/activity_manager.cpp +++ b/source/application/discord/activity_manager.cpp @@ -13,7 +13,7 @@ namespace discord { class ActivityEvents final { public: - static void OnActivityJoin(void* callbackData, char const* secret) + static void DISCORD_CALLBACK OnActivityJoin(void* callbackData, char const* secret) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -24,7 +24,7 @@ public: module.OnActivityJoin(static_cast<const char*>(secret)); } - static void OnActivitySpectate(void* callbackData, char const* secret) + static void DISCORD_CALLBACK OnActivitySpectate(void* callbackData, char const* secret) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -35,7 +35,7 @@ public: module.OnActivitySpectate(static_cast<const char*>(secret)); } - static void OnActivityJoinRequest(void* callbackData, DiscordUser* user) + static void DISCORD_CALLBACK OnActivityJoinRequest(void* callbackData, DiscordUser* user) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -46,10 +46,10 @@ public: module.OnActivityJoinRequest(*reinterpret_cast<User const*>(user)); } - static void OnActivityInvite(void* callbackData, - EDiscordActivityActionType type, - DiscordUser* user, - DiscordActivity* activity) + static void DISCORD_CALLBACK OnActivityInvite(void* callbackData, + EDiscordActivityActionType type, + DiscordUser* user, + DiscordActivity* activity) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { diff --git a/source/application/discord/application_manager.cpp b/source/application/discord/application_manager.cpp index f5a06d3..0e05f3f 100644 --- a/source/application/discord/application_manager.cpp +++ b/source/application/discord/application_manager.cpp @@ -60,4 +60,19 @@ void ApplicationManager::GetOAuth2Token(std::function<void(Result, OAuth2Token c internal_->get_oauth2_token(internal_, cb.release(), wrapper); } +void ApplicationManager::GetTicket(std::function<void(Result, char const*)> callback) +{ + static auto wrapper = [](void* callbackData, EDiscordResult result, char const* data) -> void { + std::unique_ptr<std::function<void(Result, char const*)>> cb( + reinterpret_cast<std::function<void(Result, char const*)>*>(callbackData)); + if (!cb || !(*cb)) { + return; + } + (*cb)(static_cast<Result>(result), static_cast<const char*>(data)); + }; + std::unique_ptr<std::function<void(Result, char const*)>> cb{}; + cb.reset(new std::function<void(Result, char const*)>(std::move(callback))); + internal_->get_ticket(internal_, cb.release(), wrapper); +} + } // namespace discord diff --git a/source/application/discord/application_manager.h b/source/application/discord/application_manager.h index 03b3a8d..ab0e856 100644 --- a/source/application/discord/application_manager.h +++ b/source/application/discord/application_manager.h @@ -12,6 +12,7 @@ public: void GetCurrentLocale(char locale[128]); void GetCurrentBranch(char branch[4096]); void GetOAuth2Token(std::function<void(Result, OAuth2Token const&)> callback); + void GetTicket(std::function<void(Result, char const*)> callback); private: friend class Core; diff --git a/source/application/discord/core.cpp b/source/application/discord/core.cpp index 69a10a1..110c9ef 100644 --- a/source/application/discord/core.cpp +++ b/source/application/discord/core.cpp @@ -29,6 +29,8 @@ Result Core::Create(ClientId clientId, std::uint64_t flags, Core** instance) params.network_events = &NetworkManager::events_; params.overlay_events = &OverlayManager::events_; params.store_events = &StoreManager::events_; + params.voice_events = &VoiceManager::events_; + params.achievement_events = &AchievementManager::events_; auto result = DiscordCreate(DISCORD_VERSION, ¶ms, &((*instance)->internal_)); if (result != DiscordResult_Ok || !(*instance)->internal_) { delete (*instance); @@ -159,4 +161,22 @@ discord::StoreManager& Core::StoreManager() return storeManager_; } +discord::VoiceManager& Core::VoiceManager() +{ + if (!voiceManager_.internal_) { + voiceManager_.internal_ = internal_->get_voice_manager(internal_); + } + + return voiceManager_; +} + +discord::AchievementManager& Core::AchievementManager() +{ + if (!achievementManager_.internal_) { + achievementManager_.internal_ = internal_->get_achievement_manager(internal_); + } + + return achievementManager_; +} + } // namespace discord diff --git a/source/application/discord/core.h b/source/application/discord/core.h index 411e064..8af6fca 100644 --- a/source/application/discord/core.h +++ b/source/application/discord/core.h @@ -11,6 +11,8 @@ #include "overlay_manager.h" #include "storage_manager.h" #include "store_manager.h" +#include "voice_manager.h" +#include "achievement_manager.h" namespace discord { @@ -33,6 +35,8 @@ public: discord::OverlayManager& OverlayManager(); discord::StorageManager& StorageManager(); discord::StoreManager& StoreManager(); + discord::VoiceManager& VoiceManager(); + discord::AchievementManager& AchievementManager(); private: Core() = default; @@ -53,6 +57,8 @@ private: discord::OverlayManager overlayManager_; discord::StorageManager storageManager_; discord::StoreManager storeManager_; + discord::VoiceManager voiceManager_; + discord::AchievementManager achievementManager_; }; } // namespace discord diff --git a/source/application/discord/discord.h b/source/application/discord/discord.h index d604362..c991212 100644 --- a/source/application/discord/discord.h +++ b/source/application/discord/discord.h @@ -12,3 +12,5 @@ #include "overlay_manager.h" #include "storage_manager.h" #include "store_manager.h" +#include "voice_manager.h" +#include "achievement_manager.h" diff --git a/source/application/discord/ffi.h b/source/application/discord/ffi.h index d9835f1..4a21057 100644 --- a/source/application/discord/ffi.h +++ b/source/application/discord/ffi.h @@ -1,6 +1,23 @@ #ifndef _DISCORD_GAME_SDK_H_ #define _DISCORD_GAME_SDK_H_ +#ifdef _WIN32 +#include <Windows.h> +#include <dxgi.h> +#endif + +#ifdef _WIN32 +#ifdef _WIN64 +#define DISCORD_API +#else +#define DISCORD_API __stdcall +#endif +#else +#define DISCORD_API +#endif + +#define DISCORD_CALLBACK DISCORD_API + #ifdef __cplusplus extern "C" { #endif @@ -11,7 +28,7 @@ extern "C" { #include <stdbool.h> #endif -#define DISCORD_VERSION 2 +#define DISCORD_VERSION 3 #define DISCORD_APPLICATION_MANAGER_VERSION 1 #define DISCORD_USER_MANAGER_VERSION 1 #define DISCORD_IMAGE_MANAGER_VERSION 1 @@ -19,41 +36,58 @@ extern "C" { #define DISCORD_RELATIONSHIP_MANAGER_VERSION 1 #define DISCORD_LOBBY_MANAGER_VERSION 1 #define DISCORD_NETWORK_MANAGER_VERSION 1 -#define DISCORD_OVERLAY_MANAGER_VERSION 1 +#define DISCORD_OVERLAY_MANAGER_VERSION 2 #define DISCORD_STORAGE_MANAGER_VERSION 1 #define DISCORD_STORE_MANAGER_VERSION 1 +#define DISCORD_VOICE_MANAGER_VERSION 1 +#define DISCORD_ACHIEVEMENT_MANAGER_VERSION 1 enum EDiscordResult { - DiscordResult_Ok, - DiscordResult_ServiceUnavailable, - DiscordResult_InvalidVersion, - DiscordResult_LockFailed, - DiscordResult_InternalError, - DiscordResult_InvalidPayload, - DiscordResult_InvalidCommand, - DiscordResult_InvalidPermissions, - DiscordResult_NotFetched, - DiscordResult_NotFound, - DiscordResult_Conflict, - DiscordResult_InvalidSecret, - DiscordResult_InvalidJoinSecret, - DiscordResult_NoEligibleActivity, - DiscordResult_InvalidInvite, - DiscordResult_NotAuthenticated, - DiscordResult_InvalidAccessToken, - DiscordResult_ApplicationMismatch, - DiscordResult_InvalidDataUrl, - DiscordResult_InvalidBase64, - DiscordResult_NotFiltered, - DiscordResult_LobbyFull, - DiscordResult_InvalidLobbySecret, - DiscordResult_InvalidFilename, - DiscordResult_InvalidFileSize, - DiscordResult_InvalidEntitlement, - DiscordResult_NotInstalled, - DiscordResult_NotRunning, - DiscordResult_InsufficientBuffer, - DiscordResult_PurchaseCanceled, + DiscordResult_Ok = 0, + DiscordResult_ServiceUnavailable = 1, + DiscordResult_InvalidVersion = 2, + DiscordResult_LockFailed = 3, + DiscordResult_InternalError = 4, + DiscordResult_InvalidPayload = 5, + DiscordResult_InvalidCommand = 6, + DiscordResult_InvalidPermissions = 7, + DiscordResult_NotFetched = 8, + DiscordResult_NotFound = 9, + DiscordResult_Conflict = 10, + DiscordResult_InvalidSecret = 11, + DiscordResult_InvalidJoinSecret = 12, + DiscordResult_NoEligibleActivity = 13, + DiscordResult_InvalidInvite = 14, + DiscordResult_NotAuthenticated = 15, + DiscordResult_InvalidAccessToken = 16, + DiscordResult_ApplicationMismatch = 17, + DiscordResult_InvalidDataUrl = 18, + DiscordResult_InvalidBase64 = 19, + DiscordResult_NotFiltered = 20, + DiscordResult_LobbyFull = 21, + DiscordResult_InvalidLobbySecret = 22, + DiscordResult_InvalidFilename = 23, + DiscordResult_InvalidFileSize = 24, + DiscordResult_InvalidEntitlement = 25, + DiscordResult_NotInstalled = 26, + DiscordResult_NotRunning = 27, + DiscordResult_InsufficientBuffer = 28, + DiscordResult_PurchaseCanceled = 29, + DiscordResult_InvalidGuild = 30, + DiscordResult_InvalidEvent = 31, + DiscordResult_InvalidChannel = 32, + DiscordResult_InvalidOrigin = 33, + DiscordResult_RateLimited = 34, + DiscordResult_OAuth2Error = 35, + DiscordResult_SelectChannelTimeout = 36, + DiscordResult_GetGuildTimeout = 37, + DiscordResult_SelectVoiceForceRequired = 38, + DiscordResult_CaptureShortcutAlreadyListening = 39, + DiscordResult_UnauthorizedForAchievement = 40, + DiscordResult_InvalidGiftCode = 41, + DiscordResult_PurchaseError = 42, + DiscordResult_TransactionAborted = 43, + DiscordResult_DrawingInitFailed = 44, }; enum EDiscordCreateFlags { @@ -68,10 +102,29 @@ enum EDiscordLogLevel { DiscordLogLevel_Debug, }; +enum EDiscordUserFlag { + DiscordUserFlag_Partner = 2, + DiscordUserFlag_HypeSquadEvents = 4, + DiscordUserFlag_HypeSquadHouse1 = 64, + DiscordUserFlag_HypeSquadHouse2 = 128, + DiscordUserFlag_HypeSquadHouse3 = 256, +}; + +enum EDiscordPremiumType { + DiscordPremiumType_None = 0, + DiscordPremiumType_Tier1 = 1, + DiscordPremiumType_Tier2 = 2, +}; + enum EDiscordImageType { DiscordImageType_User, }; +enum EDiscordActivityPartyPrivacy { + DiscordActivityPartyPrivacy_Private = 0, + DiscordActivityPartyPrivacy_Public = 1, +}; + enum EDiscordActivityType { DiscordActivityType_Playing, DiscordActivityType_Streaming, @@ -84,6 +137,12 @@ enum EDiscordActivityActionType { DiscordActivityActionType_Spectate, }; +enum EDiscordActivitySupportedPlatformFlags { + DiscordActivitySupportedPlatformFlags_Desktop = 1, + DiscordActivitySupportedPlatformFlags_Android = 2, + DiscordActivitySupportedPlatformFlags_iOS = 4, +}; + enum EDiscordActivityJoinRequestReply { DiscordActivityJoinRequestReply_No, DiscordActivityJoinRequestReply_Yes, @@ -132,10 +191,26 @@ enum EDiscordLobbySearchDistance { DiscordLobbySearchDistance_Global, }; +enum EDiscordKeyVariant { + DiscordKeyVariant_Normal, + DiscordKeyVariant_Right, + DiscordKeyVariant_Left, +}; + +enum EDiscordMouseButton { + DiscordMouseButton_Left, + DiscordMouseButton_Middle, + DiscordMouseButton_Right, +}; + enum EDiscordEntitlementType { DiscordEntitlementType_Purchase = 1, DiscordEntitlementType_PremiumSubscription, DiscordEntitlementType_DeveloperGift, + DiscordEntitlementType_TestModePurchase, + DiscordEntitlementType_FreePurchase, + DiscordEntitlementType_UserGift, + DiscordEntitlementType_PremiumPurchase, }; enum EDiscordSkuType { @@ -145,6 +220,11 @@ enum EDiscordSkuType { DiscordSkuType_Bundle, }; +enum EDiscordInputModeType { + DiscordInputModeType_VoiceActivity = 0, + DiscordInputModeType_PushToTalk, +}; + typedef int64_t DiscordClientId; typedef int32_t DiscordVersion; typedef int64_t DiscordSnowflake; @@ -158,6 +238,20 @@ typedef char DiscordMetadataKey[256]; typedef char DiscordMetadataValue[4096]; typedef uint64_t DiscordNetworkPeerId; typedef uint8_t DiscordNetworkChannelId; +#ifdef __APPLE__ +typedef void IDXGISwapChain; +#endif +#ifdef __linux__ +typedef void IDXGISwapChain; +#endif +#ifdef __APPLE__ +typedef void MSG; +#endif +#ifdef __linux__ +typedef void MSG; +#endif +typedef char DiscordPath[4096]; +typedef char DiscordDateTime[64]; struct DiscordUser { DiscordUserId id; @@ -204,6 +298,7 @@ struct DiscordPartySize { struct DiscordActivityParty { char id[128]; struct DiscordPartySize size; + enum EDiscordActivityPartyPrivacy privacy; }; struct DiscordActivitySecrets { @@ -223,6 +318,7 @@ struct DiscordActivity { struct DiscordActivityParty party; struct DiscordActivitySecrets secrets; bool instance; + uint32_t supported_platforms; }; struct DiscordPresence { @@ -245,6 +341,21 @@ struct DiscordLobby { bool locked; }; +struct DiscordImeUnderline { + int32_t from; + int32_t to; + uint32_t color; + uint32_t background_color; + bool thick; +}; + +struct DiscordRect { + int32_t left; + int32_t top; + int32_t right; + int32_t bottom; +}; + struct DiscordFileStat { char filename[260]; uint64_t size; @@ -269,466 +380,672 @@ struct DiscordSku { struct DiscordSkuPrice price; }; +struct DiscordInputMode { + enum EDiscordInputModeType type; + char shortcut[256]; +}; + +struct DiscordUserAchievement { + DiscordSnowflake user_id; + DiscordSnowflake achievement_id; + uint8_t percent_complete; + DiscordDateTime unlocked_at; +}; + struct IDiscordLobbyTransaction { - enum EDiscordResult (*set_type)(struct IDiscordLobbyTransaction* lobby_transaction, - enum EDiscordLobbyType type); - enum EDiscordResult (*set_owner)(struct IDiscordLobbyTransaction* lobby_transaction, - DiscordUserId owner_id); - enum EDiscordResult (*set_capacity)(struct IDiscordLobbyTransaction* lobby_transaction, - uint32_t capacity); - enum EDiscordResult (*set_metadata)(struct IDiscordLobbyTransaction* lobby_transaction, - DiscordMetadataKey key, - DiscordMetadataValue value); - enum EDiscordResult (*delete_metadata)(struct IDiscordLobbyTransaction* lobby_transaction, - DiscordMetadataKey key); - enum EDiscordResult (*set_locked)(struct IDiscordLobbyTransaction* lobby_transaction, - bool locked); + enum EDiscordResult(DISCORD_API* set_type)(struct IDiscordLobbyTransaction* lobby_transaction, + enum EDiscordLobbyType type); + enum EDiscordResult(DISCORD_API* set_owner)(struct IDiscordLobbyTransaction* lobby_transaction, + DiscordUserId owner_id); + enum EDiscordResult(DISCORD_API* set_capacity)( + struct IDiscordLobbyTransaction* lobby_transaction, + uint32_t capacity); + enum EDiscordResult(DISCORD_API* set_metadata)( + struct IDiscordLobbyTransaction* lobby_transaction, + DiscordMetadataKey key, + DiscordMetadataValue value); + enum EDiscordResult(DISCORD_API* delete_metadata)( + struct IDiscordLobbyTransaction* lobby_transaction, + DiscordMetadataKey key); + enum EDiscordResult(DISCORD_API* set_locked)(struct IDiscordLobbyTransaction* lobby_transaction, + bool locked); }; struct IDiscordLobbyMemberTransaction { - enum EDiscordResult (*set_metadata)( + enum EDiscordResult(DISCORD_API* set_metadata)( struct IDiscordLobbyMemberTransaction* lobby_member_transaction, DiscordMetadataKey key, DiscordMetadataValue value); - enum EDiscordResult (*delete_metadata)( + enum EDiscordResult(DISCORD_API* delete_metadata)( struct IDiscordLobbyMemberTransaction* lobby_member_transaction, DiscordMetadataKey key); }; struct IDiscordLobbySearchQuery { - enum EDiscordResult (*filter)(struct IDiscordLobbySearchQuery* lobby_search_query, - DiscordMetadataKey key, - enum EDiscordLobbySearchComparison comparison, - enum EDiscordLobbySearchCast cast, - DiscordMetadataValue value); - enum EDiscordResult (*sort)(struct IDiscordLobbySearchQuery* lobby_search_query, - DiscordMetadataKey key, - enum EDiscordLobbySearchCast cast, - DiscordMetadataValue value); - enum EDiscordResult (*limit)(struct IDiscordLobbySearchQuery* lobby_search_query, - uint32_t limit); - enum EDiscordResult (*distance)(struct IDiscordLobbySearchQuery* lobby_search_query, - enum EDiscordLobbySearchDistance distance); + enum EDiscordResult(DISCORD_API* filter)(struct IDiscordLobbySearchQuery* lobby_search_query, + DiscordMetadataKey key, + enum EDiscordLobbySearchComparison comparison, + enum EDiscordLobbySearchCast cast, + DiscordMetadataValue value); + enum EDiscordResult(DISCORD_API* sort)(struct IDiscordLobbySearchQuery* lobby_search_query, + DiscordMetadataKey key, + enum EDiscordLobbySearchCast cast, + DiscordMetadataValue value); + enum EDiscordResult(DISCORD_API* limit)(struct IDiscordLobbySearchQuery* lobby_search_query, + uint32_t limit); + enum EDiscordResult(DISCORD_API* distance)(struct IDiscordLobbySearchQuery* lobby_search_query, + enum EDiscordLobbySearchDistance distance); }; typedef void* IDiscordApplicationEvents; struct IDiscordApplicationManager { - void (*validate_or_exit)(struct IDiscordApplicationManager* manager, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*get_current_locale)(struct IDiscordApplicationManager* manager, DiscordLocale* locale); - void (*get_current_branch)(struct IDiscordApplicationManager* manager, DiscordBranch* branch); - void (*get_oauth2_token)(struct IDiscordApplicationManager* manager, - void* callback_data, - void (*callback)(void* callback_data, - enum EDiscordResult result, - struct DiscordOAuth2Token* oauth2_token)); + void(DISCORD_API* validate_or_exit)(struct IDiscordApplicationManager* manager, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* get_current_locale)(struct IDiscordApplicationManager* manager, + DiscordLocale* locale); + void(DISCORD_API* get_current_branch)(struct IDiscordApplicationManager* manager, + DiscordBranch* branch); + void(DISCORD_API* get_oauth2_token)( + struct IDiscordApplicationManager* manager, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result, + struct DiscordOAuth2Token* oauth2_token)); + void(DISCORD_API* get_ticket)(struct IDiscordApplicationManager* manager, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result, + const char* data)); }; struct IDiscordUserEvents { - void (*on_current_user_update)(void* event_data); + void(DISCORD_API* on_current_user_update)(void* event_data); }; struct IDiscordUserManager { - enum EDiscordResult (*get_current_user)(struct IDiscordUserManager* manager, - struct DiscordUser* current_user); - void (*get_user)(struct IDiscordUserManager* manager, - DiscordUserId user_id, - void* callback_data, - void (*callback)(void* callback_data, - enum EDiscordResult result, - struct DiscordUser* user)); + enum EDiscordResult(DISCORD_API* get_current_user)(struct IDiscordUserManager* manager, + struct DiscordUser* current_user); + void(DISCORD_API* get_user)(struct IDiscordUserManager* manager, + DiscordUserId user_id, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result, + struct DiscordUser* user)); + enum EDiscordResult(DISCORD_API* get_current_user_premium_type)( + struct IDiscordUserManager* manager, + enum EDiscordPremiumType* premium_type); + enum EDiscordResult(DISCORD_API* current_user_has_flag)(struct IDiscordUserManager* manager, + enum EDiscordUserFlag flag, + bool* has_flag); }; typedef void* IDiscordImageEvents; struct IDiscordImageManager { - void (*fetch)(struct IDiscordImageManager* manager, - struct DiscordImageHandle handle, - bool refresh, - void* callback_data, - void (*callback)(void* callback_data, - enum EDiscordResult result, - struct DiscordImageHandle handle_result)); - enum EDiscordResult (*get_dimensions)(struct IDiscordImageManager* manager, - struct DiscordImageHandle handle, - struct DiscordImageDimensions* dimensions); - enum EDiscordResult (*get_data)(struct IDiscordImageManager* manager, - struct DiscordImageHandle handle, - uint8_t* data, - uint32_t data_length); + void(DISCORD_API* fetch)(struct IDiscordImageManager* manager, + struct DiscordImageHandle handle, + bool refresh, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result, + struct DiscordImageHandle handle_result)); + enum EDiscordResult(DISCORD_API* get_dimensions)(struct IDiscordImageManager* manager, + struct DiscordImageHandle handle, + struct DiscordImageDimensions* dimensions); + enum EDiscordResult(DISCORD_API* get_data)(struct IDiscordImageManager* manager, + struct DiscordImageHandle handle, + uint8_t* data, + uint32_t data_length); }; struct IDiscordActivityEvents { - void (*on_activity_join)(void* event_data, const char* secret); - void (*on_activity_spectate)(void* event_data, const char* secret); - void (*on_activity_join_request)(void* event_data, struct DiscordUser* user); - void (*on_activity_invite)(void* event_data, - enum EDiscordActivityActionType type, - struct DiscordUser* user, - struct DiscordActivity* activity); + void(DISCORD_API* on_activity_join)(void* event_data, const char* secret); + void(DISCORD_API* on_activity_spectate)(void* event_data, const char* secret); + void(DISCORD_API* on_activity_join_request)(void* event_data, struct DiscordUser* user); + void(DISCORD_API* on_activity_invite)(void* event_data, + enum EDiscordActivityActionType type, + struct DiscordUser* user, + struct DiscordActivity* activity); }; struct IDiscordActivityManager { - enum EDiscordResult (*register_command)(struct IDiscordActivityManager* manager, - const char* command); - enum EDiscordResult (*register_steam)(struct IDiscordActivityManager* manager, - uint32_t steam_id); - void (*update_activity)(struct IDiscordActivityManager* manager, - struct DiscordActivity* activity, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*clear_activity)(struct IDiscordActivityManager* manager, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*send_request_reply)(struct IDiscordActivityManager* manager, - DiscordUserId user_id, - enum EDiscordActivityJoinRequestReply reply, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*send_invite)(struct IDiscordActivityManager* manager, - DiscordUserId user_id, - enum EDiscordActivityActionType type, - const char* content, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*accept_invite)(struct IDiscordActivityManager* manager, - DiscordUserId user_id, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); + enum EDiscordResult(DISCORD_API* register_command)(struct IDiscordActivityManager* manager, + const char* command); + enum EDiscordResult(DISCORD_API* register_steam)(struct IDiscordActivityManager* manager, + uint32_t steam_id); + void(DISCORD_API* update_activity)(struct IDiscordActivityManager* manager, + struct DiscordActivity* activity, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* clear_activity)(struct IDiscordActivityManager* manager, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* send_request_reply)(struct IDiscordActivityManager* manager, + DiscordUserId user_id, + enum EDiscordActivityJoinRequestReply reply, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* send_invite)(struct IDiscordActivityManager* manager, + DiscordUserId user_id, + enum EDiscordActivityActionType type, + const char* content, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* accept_invite)(struct IDiscordActivityManager* manager, + DiscordUserId user_id, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); }; struct IDiscordRelationshipEvents { - void (*on_refresh)(void* event_data); - void (*on_relationship_update)(void* event_data, struct DiscordRelationship* relationship); + void(DISCORD_API* on_refresh)(void* event_data); + void(DISCORD_API* on_relationship_update)(void* event_data, + struct DiscordRelationship* relationship); }; struct IDiscordRelationshipManager { - void (*filter)(struct IDiscordRelationshipManager* manager, - void* filter_data, - bool (*filter)(void* filter_data, struct DiscordRelationship* relationship)); - enum EDiscordResult (*count)(struct IDiscordRelationshipManager* manager, int32_t* count); - enum EDiscordResult (*get)(struct IDiscordRelationshipManager* manager, - DiscordUserId user_id, - struct DiscordRelationship* relationship); - enum EDiscordResult (*get_at)(struct IDiscordRelationshipManager* manager, - uint32_t index, - struct DiscordRelationship* relationship); + void(DISCORD_API* filter)(struct IDiscordRelationshipManager* manager, + void* filter_data, + bool(DISCORD_API* filter)(void* filter_data, + struct DiscordRelationship* relationship)); + enum EDiscordResult(DISCORD_API* count)(struct IDiscordRelationshipManager* manager, + int32_t* count); + enum EDiscordResult(DISCORD_API* get)(struct IDiscordRelationshipManager* manager, + DiscordUserId user_id, + struct DiscordRelationship* relationship); + enum EDiscordResult(DISCORD_API* get_at)(struct IDiscordRelationshipManager* manager, + uint32_t index, + struct DiscordRelationship* relationship); }; struct IDiscordLobbyEvents { - void (*on_lobby_update)(void* event_data, int64_t lobby_id); - void (*on_lobby_delete)(void* event_data, int64_t lobby_id, uint32_t reason); - void (*on_member_connect)(void* event_data, int64_t lobby_id, int64_t user_id); - void (*on_member_update)(void* event_data, int64_t lobby_id, int64_t user_id); - void (*on_member_disconnect)(void* event_data, int64_t lobby_id, int64_t user_id); - void (*on_lobby_message)(void* event_data, - int64_t lobby_id, - int64_t user_id, - uint8_t* data, - uint32_t data_length); - void (*on_speaking)(void* event_data, int64_t lobby_id, int64_t user_id, bool speaking); - void (*on_network_message)(void* event_data, - int64_t lobby_id, - int64_t user_id, - uint8_t channel_id, - uint8_t* data, - uint32_t data_length); + void(DISCORD_API* on_lobby_update)(void* event_data, int64_t lobby_id); + void(DISCORD_API* on_lobby_delete)(void* event_data, int64_t lobby_id, uint32_t reason); + void(DISCORD_API* on_member_connect)(void* event_data, int64_t lobby_id, int64_t user_id); + void(DISCORD_API* on_member_update)(void* event_data, int64_t lobby_id, int64_t user_id); + void(DISCORD_API* on_member_disconnect)(void* event_data, int64_t lobby_id, int64_t user_id); + void(DISCORD_API* on_lobby_message)(void* event_data, + int64_t lobby_id, + int64_t user_id, + uint8_t* data, + uint32_t data_length); + void(DISCORD_API* on_speaking)(void* event_data, + int64_t lobby_id, + int64_t user_id, + bool speaking); + void(DISCORD_API* on_network_message)(void* event_data, + int64_t lobby_id, + int64_t user_id, + uint8_t channel_id, + uint8_t* data, + uint32_t data_length); }; struct IDiscordLobbyManager { - enum EDiscordResult (*get_lobby_create_transaction)( + enum EDiscordResult(DISCORD_API* get_lobby_create_transaction)( struct IDiscordLobbyManager* manager, struct IDiscordLobbyTransaction** transaction); - enum EDiscordResult (*get_lobby_update_transaction)( + enum EDiscordResult(DISCORD_API* get_lobby_update_transaction)( struct IDiscordLobbyManager* manager, DiscordLobbyId lobby_id, struct IDiscordLobbyTransaction** transaction); - enum EDiscordResult (*get_member_update_transaction)( + enum EDiscordResult(DISCORD_API* get_member_update_transaction)( struct IDiscordLobbyManager* manager, DiscordLobbyId lobby_id, DiscordUserId user_id, struct IDiscordLobbyMemberTransaction** transaction); - void (*create_lobby)(struct IDiscordLobbyManager* manager, - struct IDiscordLobbyTransaction* transaction, - void* callback_data, - void (*callback)(void* callback_data, - enum EDiscordResult result, - struct DiscordLobby* lobby)); - void (*update_lobby)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - struct IDiscordLobbyTransaction* transaction, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*delete_lobby)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*connect_lobby)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - DiscordLobbySecret secret, - void* callback_data, - void (*callback)(void* callback_data, - enum EDiscordResult result, - struct DiscordLobby* lobby)); - void (*connect_lobby_with_activity_secret)(struct IDiscordLobbyManager* manager, - DiscordLobbySecret activity_secret, - void* callback_data, - void (*callback)(void* callback_data, + void(DISCORD_API* create_lobby)(struct IDiscordLobbyManager* manager, + struct IDiscordLobbyTransaction* transaction, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, enum EDiscordResult result, struct DiscordLobby* lobby)); - void (*disconnect_lobby)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*get_lobby)(struct IDiscordLobbyManager* manager, + void(DISCORD_API* update_lobby)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + struct IDiscordLobbyTransaction* transaction, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* delete_lobby)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* connect_lobby)(struct IDiscordLobbyManager* manager, DiscordLobbyId lobby_id, - struct DiscordLobby* lobby); - enum EDiscordResult (*get_lobby_activity_secret)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - DiscordLobbySecret* secret); - enum EDiscordResult (*get_lobby_metadata_value)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - DiscordMetadataKey key, - DiscordMetadataValue* value); - enum EDiscordResult (*get_lobby_metadata_key)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - int32_t index, - DiscordMetadataKey* key); - enum EDiscordResult (*lobby_metadata_count)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - int32_t* count); - enum EDiscordResult (*member_count)(struct IDiscordLobbyManager* manager, + DiscordLobbySecret secret, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result, + struct DiscordLobby* lobby)); + void(DISCORD_API* connect_lobby_with_activity_secret)( + struct IDiscordLobbyManager* manager, + DiscordLobbySecret activity_secret, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result, + struct DiscordLobby* lobby)); + void(DISCORD_API* disconnect_lobby)(struct IDiscordLobbyManager* manager, DiscordLobbyId lobby_id, - int32_t* count); - enum EDiscordResult (*get_member_user_id)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - int32_t index, - DiscordUserId* user_id); - enum EDiscordResult (*get_member_user)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - DiscordUserId user_id, - struct DiscordUser* user); - enum EDiscordResult (*get_member_metadata_value)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - DiscordUserId user_id, - DiscordMetadataKey key, - DiscordMetadataValue* value); - enum EDiscordResult (*get_member_metadata_key)(struct IDiscordLobbyManager* manager, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + enum EDiscordResult(DISCORD_API* get_lobby)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + struct DiscordLobby* lobby); + enum EDiscordResult(DISCORD_API* get_lobby_activity_secret)( + struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + DiscordLobbySecret* secret); + enum EDiscordResult(DISCORD_API* get_lobby_metadata_value)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + DiscordMetadataKey key, + DiscordMetadataValue* value); + enum EDiscordResult(DISCORD_API* get_lobby_metadata_key)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + int32_t index, + DiscordMetadataKey* key); + enum EDiscordResult(DISCORD_API* lobby_metadata_count)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + int32_t* count); + enum EDiscordResult(DISCORD_API* member_count)(struct IDiscordLobbyManager* manager, DiscordLobbyId lobby_id, - DiscordUserId user_id, + int32_t* count); + enum EDiscordResult(DISCORD_API* get_member_user_id)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + int32_t index, + DiscordUserId* user_id); + enum EDiscordResult(DISCORD_API* get_member_user)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + DiscordUserId user_id, + struct DiscordUser* user); + enum EDiscordResult(DISCORD_API* get_member_metadata_value)( + struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + DiscordUserId user_id, + DiscordMetadataKey key, + DiscordMetadataValue* value); + enum EDiscordResult(DISCORD_API* get_member_metadata_key)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + DiscordUserId user_id, + int32_t index, + DiscordMetadataKey* key); + enum EDiscordResult(DISCORD_API* member_metadata_count)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + DiscordUserId user_id, + int32_t* count); + void(DISCORD_API* update_member)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + DiscordUserId user_id, + struct IDiscordLobbyMemberTransaction* transaction, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* send_lobby_message)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + uint8_t* data, + uint32_t data_length, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + enum EDiscordResult(DISCORD_API* get_search_query)(struct IDiscordLobbyManager* manager, + struct IDiscordLobbySearchQuery** query); + void(DISCORD_API* search)(struct IDiscordLobbyManager* manager, + struct IDiscordLobbySearchQuery* query, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* lobby_count)(struct IDiscordLobbyManager* manager, int32_t* count); + enum EDiscordResult(DISCORD_API* get_lobby_id)(struct IDiscordLobbyManager* manager, int32_t index, - DiscordMetadataKey* key); - enum EDiscordResult (*member_metadata_count)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - DiscordUserId user_id, - int32_t* count); - void (*update_member)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - DiscordUserId user_id, - struct IDiscordLobbyMemberTransaction* transaction, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*send_lobby_message)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - uint8_t* data, - uint32_t data_length, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*get_search_query)(struct IDiscordLobbyManager* manager, - struct IDiscordLobbySearchQuery** query); - void (*search)(struct IDiscordLobbyManager* manager, - struct IDiscordLobbySearchQuery* query, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*lobby_count)(struct IDiscordLobbyManager* manager, int32_t* count); - enum EDiscordResult (*get_lobby_id)(struct IDiscordLobbyManager* manager, - int32_t index, - DiscordLobbyId* lobby_id); - void (*connect_voice)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*disconnect_voice)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*connect_network)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id); - enum EDiscordResult (*disconnect_network)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id); - enum EDiscordResult (*flush_network)(struct IDiscordLobbyManager* manager); - enum EDiscordResult (*open_network_channel)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - uint8_t channel_id, - bool reliable); - enum EDiscordResult (*send_network_message)(struct IDiscordLobbyManager* manager, - DiscordLobbyId lobby_id, - DiscordUserId user_id, - uint8_t channel_id, - uint8_t* data, - uint32_t data_length); + DiscordLobbyId* lobby_id); + void(DISCORD_API* connect_voice)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* disconnect_voice)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + enum EDiscordResult(DISCORD_API* connect_network)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id); + enum EDiscordResult(DISCORD_API* disconnect_network)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id); + enum EDiscordResult(DISCORD_API* flush_network)(struct IDiscordLobbyManager* manager); + enum EDiscordResult(DISCORD_API* open_network_channel)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + uint8_t channel_id, + bool reliable); + enum EDiscordResult(DISCORD_API* send_network_message)(struct IDiscordLobbyManager* manager, + DiscordLobbyId lobby_id, + DiscordUserId user_id, + uint8_t channel_id, + uint8_t* data, + uint32_t data_length); }; struct IDiscordNetworkEvents { - void (*on_message)(void* event_data, - DiscordNetworkPeerId peer_id, - DiscordNetworkChannelId channel_id, - uint8_t* data, - uint32_t data_length); - void (*on_route_update)(void* event_data, const char* route_data); + void(DISCORD_API* on_message)(void* event_data, + DiscordNetworkPeerId peer_id, + DiscordNetworkChannelId channel_id, + uint8_t* data, + uint32_t data_length); + void(DISCORD_API* on_route_update)(void* event_data, const char* route_data); }; struct IDiscordNetworkManager { - void (*get_peer_id)(struct IDiscordNetworkManager* manager, DiscordNetworkPeerId* peer_id); - enum EDiscordResult (*flush)(struct IDiscordNetworkManager* manager); - enum EDiscordResult (*open_peer)(struct IDiscordNetworkManager* manager, - DiscordNetworkPeerId peer_id, - const char* route_data); - enum EDiscordResult (*update_peer)(struct IDiscordNetworkManager* manager, - DiscordNetworkPeerId peer_id, - const char* route_data); - enum EDiscordResult (*close_peer)(struct IDiscordNetworkManager* manager, - DiscordNetworkPeerId peer_id); - enum EDiscordResult (*open_channel)(struct IDiscordNetworkManager* manager, - DiscordNetworkPeerId peer_id, - DiscordNetworkChannelId channel_id, - bool reliable); - enum EDiscordResult (*close_channel)(struct IDiscordNetworkManager* manager, - DiscordNetworkPeerId peer_id, - DiscordNetworkChannelId channel_id); - enum EDiscordResult (*send_message)(struct IDiscordNetworkManager* manager, - DiscordNetworkPeerId peer_id, - DiscordNetworkChannelId channel_id, - uint8_t* data, - uint32_t data_length); + /** + * Get the local peer ID for this process. + */ + void(DISCORD_API* get_peer_id)(struct IDiscordNetworkManager* manager, + DiscordNetworkPeerId* peer_id); + /** + * Send pending network messages. + */ + enum EDiscordResult(DISCORD_API* flush)(struct IDiscordNetworkManager* manager); + /** + * Open a connection to a remote peer. + */ + enum EDiscordResult(DISCORD_API* open_peer)(struct IDiscordNetworkManager* manager, + DiscordNetworkPeerId peer_id, + const char* route_data); + /** + * Update the route data for a connected peer. + */ + enum EDiscordResult(DISCORD_API* update_peer)(struct IDiscordNetworkManager* manager, + DiscordNetworkPeerId peer_id, + const char* route_data); + /** + * Close the connection to a remote peer. + */ + enum EDiscordResult(DISCORD_API* close_peer)(struct IDiscordNetworkManager* manager, + DiscordNetworkPeerId peer_id); + /** + * Open a message channel to a connected peer. + */ + enum EDiscordResult(DISCORD_API* open_channel)(struct IDiscordNetworkManager* manager, + DiscordNetworkPeerId peer_id, + DiscordNetworkChannelId channel_id, + bool reliable); + /** + * Close a message channel to a connected peer. + */ + enum EDiscordResult(DISCORD_API* close_channel)(struct IDiscordNetworkManager* manager, + DiscordNetworkPeerId peer_id, + DiscordNetworkChannelId channel_id); + /** + * Send a message to a connected peer over an opened message channel. + */ + enum EDiscordResult(DISCORD_API* send_message)(struct IDiscordNetworkManager* manager, + DiscordNetworkPeerId peer_id, + DiscordNetworkChannelId channel_id, + uint8_t* data, + uint32_t data_length); }; struct IDiscordOverlayEvents { - void (*on_toggle)(void* event_data, bool locked); + void(DISCORD_API* on_toggle)(void* event_data, bool locked); }; struct IDiscordOverlayManager { - void (*is_enabled)(struct IDiscordOverlayManager* manager, bool* enabled); - void (*is_locked)(struct IDiscordOverlayManager* manager, bool* locked); - void (*set_locked)(struct IDiscordOverlayManager* manager, - bool locked, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*open_activity_invite)(struct IDiscordOverlayManager* manager, - enum EDiscordActivityActionType type, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*open_guild_invite)(struct IDiscordOverlayManager* manager, - const char* code, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); + void(DISCORD_API* is_enabled)(struct IDiscordOverlayManager* manager, bool* enabled); + void(DISCORD_API* is_locked)(struct IDiscordOverlayManager* manager, bool* locked); + void(DISCORD_API* set_locked)(struct IDiscordOverlayManager* manager, + bool locked, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* open_activity_invite)( + struct IDiscordOverlayManager* manager, + enum EDiscordActivityActionType type, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, enum EDiscordResult result)); + void(DISCORD_API* open_guild_invite)(struct IDiscordOverlayManager* manager, + const char* code, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* open_voice_settings)(struct IDiscordOverlayManager* manager, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + enum EDiscordResult(DISCORD_API* init_drawing_dxgi)(struct IDiscordOverlayManager* manager, + IDXGISwapChain* swapchain, + bool use_message_forwarding); + void(DISCORD_API* on_present)(struct IDiscordOverlayManager* manager); + void(DISCORD_API* forward_message)(struct IDiscordOverlayManager* manager, MSG* message); + void(DISCORD_API* key_event)(struct IDiscordOverlayManager* manager, + bool down, + const char* key_code, + enum EDiscordKeyVariant variant); + void(DISCORD_API* char_event)(struct IDiscordOverlayManager* manager, const char* character); + void(DISCORD_API* mouse_button_event)(struct IDiscordOverlayManager* manager, + uint8_t down, + int32_t click_count, + enum EDiscordMouseButton which, + int32_t x, + int32_t y); + void(DISCORD_API* mouse_motion_event)(struct IDiscordOverlayManager* manager, + int32_t x, + int32_t y); + void(DISCORD_API* ime_commit_text)(struct IDiscordOverlayManager* manager, const char* text); + void(DISCORD_API* ime_set_composition)(struct IDiscordOverlayManager* manager, + const char* text, + struct DiscordImeUnderline* underlines, + uint32_t underlines_length, + int32_t from, + int32_t to); + void(DISCORD_API* ime_cancel_composition)(struct IDiscordOverlayManager* manager); + void(DISCORD_API* set_ime_composition_range_callback)( + struct IDiscordOverlayManager* manager, + void* on_ime_composition_range_changed_data, + void(DISCORD_API* on_ime_composition_range_changed)( + void* on_ime_composition_range_changed_data, + int32_t from, + int32_t to, + struct DiscordRect* bounds, + uint32_t bounds_length)); + void(DISCORD_API* set_ime_selection_bounds_callback)( + struct IDiscordOverlayManager* manager, + void* on_ime_selection_bounds_changed_data, + void(DISCORD_API* on_ime_selection_bounds_changed)(void* on_ime_selection_bounds_changed_data, + struct DiscordRect anchor, + struct DiscordRect focus, + bool is_anchor_first)); + bool(DISCORD_API* is_point_inside_click_zone)(struct IDiscordOverlayManager* manager, + int32_t x, + int32_t y); }; typedef void* IDiscordStorageEvents; struct IDiscordStorageManager { - enum EDiscordResult (*read)(struct IDiscordStorageManager* manager, - const char* name, - uint8_t* data, - uint32_t data_length, - uint32_t* read); - void (*read_async)(struct IDiscordStorageManager* manager, - const char* name, - void* callback_data, - void (*callback)(void* callback_data, - enum EDiscordResult result, - uint8_t* data, - uint32_t data_length)); - void (*read_async_partial)(struct IDiscordStorageManager* manager, - const char* name, - uint64_t offset, - uint64_t length, - void* callback_data, - void (*callback)(void* callback_data, - enum EDiscordResult result, - uint8_t* data, - uint32_t data_length)); - enum EDiscordResult (*write)(struct IDiscordStorageManager* manager, - const char* name, - uint8_t* data, - uint32_t data_length); - void (*write_async)(struct IDiscordStorageManager* manager, - const char* name, - uint8_t* data, - uint32_t data_length, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - enum EDiscordResult (*delete_)(struct IDiscordStorageManager* manager, const char* name); - enum EDiscordResult (*exists)(struct IDiscordStorageManager* manager, + enum EDiscordResult(DISCORD_API* read)(struct IDiscordStorageManager* manager, + const char* name, + uint8_t* data, + uint32_t data_length, + uint32_t* read); + void(DISCORD_API* read_async)(struct IDiscordStorageManager* manager, const char* name, - bool* exists); - void (*count)(struct IDiscordStorageManager* manager, int32_t* count); - enum EDiscordResult (*stat)(struct IDiscordStorageManager* manager, - const char* name, - struct DiscordFileStat* stat); - enum EDiscordResult (*stat_at)(struct IDiscordStorageManager* manager, - int32_t index, - struct DiscordFileStat* stat); + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result, + uint8_t* data, + uint32_t data_length)); + void(DISCORD_API* read_async_partial)(struct IDiscordStorageManager* manager, + const char* name, + uint64_t offset, + uint64_t length, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result, + uint8_t* data, + uint32_t data_length)); + enum EDiscordResult(DISCORD_API* write)(struct IDiscordStorageManager* manager, + const char* name, + uint8_t* data, + uint32_t data_length); + void(DISCORD_API* write_async)(struct IDiscordStorageManager* manager, + const char* name, + uint8_t* data, + uint32_t data_length, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + enum EDiscordResult(DISCORD_API* delete_)(struct IDiscordStorageManager* manager, + const char* name); + enum EDiscordResult(DISCORD_API* exists)(struct IDiscordStorageManager* manager, + const char* name, + bool* exists); + void(DISCORD_API* count)(struct IDiscordStorageManager* manager, int32_t* count); + enum EDiscordResult(DISCORD_API* stat)(struct IDiscordStorageManager* manager, + const char* name, + struct DiscordFileStat* stat); + enum EDiscordResult(DISCORD_API* stat_at)(struct IDiscordStorageManager* manager, + int32_t index, + struct DiscordFileStat* stat); + enum EDiscordResult(DISCORD_API* get_path)(struct IDiscordStorageManager* manager, + DiscordPath* path); }; struct IDiscordStoreEvents { - void (*on_entitlement_create)(void* event_data, struct DiscordEntitlement* entitlement); - void (*on_entitlement_delete)(void* event_data, struct DiscordEntitlement* entitlement); + void(DISCORD_API* on_entitlement_create)(void* event_data, + struct DiscordEntitlement* entitlement); + void(DISCORD_API* on_entitlement_delete)(void* event_data, + struct DiscordEntitlement* entitlement); }; struct IDiscordStoreManager { - void (*fetch_skus)(struct IDiscordStoreManager* manager, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*count_skus)(struct IDiscordStoreManager* manager, int32_t* count); - enum EDiscordResult (*get_sku)(struct IDiscordStoreManager* manager, - DiscordSnowflake sku_id, - struct DiscordSku* sku); - enum EDiscordResult (*get_sku_at)(struct IDiscordStoreManager* manager, - int32_t index, - struct DiscordSku* sku); - void (*fetch_entitlements)(struct IDiscordStoreManager* manager, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); - void (*count_entitlements)(struct IDiscordStoreManager* manager, int32_t* count); - enum EDiscordResult (*get_entitlement)(struct IDiscordStoreManager* manager, - DiscordSnowflake entitlement_id, - struct DiscordEntitlement* entitlement); - enum EDiscordResult (*get_entitlement_at)(struct IDiscordStoreManager* manager, - int32_t index, - struct DiscordEntitlement* entitlement); - enum EDiscordResult (*has_sku_entitlement)(struct IDiscordStoreManager* manager, - DiscordSnowflake sku_id, - bool* has_entitlement); - void (*start_purchase)(struct IDiscordStoreManager* manager, - DiscordSnowflake sku_id, - void* callback_data, - void (*callback)(void* callback_data, enum EDiscordResult result)); + void(DISCORD_API* fetch_skus)(struct IDiscordStoreManager* manager, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* count_skus)(struct IDiscordStoreManager* manager, int32_t* count); + enum EDiscordResult(DISCORD_API* get_sku)(struct IDiscordStoreManager* manager, + DiscordSnowflake sku_id, + struct DiscordSku* sku); + enum EDiscordResult(DISCORD_API* get_sku_at)(struct IDiscordStoreManager* manager, + int32_t index, + struct DiscordSku* sku); + void(DISCORD_API* fetch_entitlements)(struct IDiscordStoreManager* manager, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + void(DISCORD_API* count_entitlements)(struct IDiscordStoreManager* manager, int32_t* count); + enum EDiscordResult(DISCORD_API* get_entitlement)(struct IDiscordStoreManager* manager, + DiscordSnowflake entitlement_id, + struct DiscordEntitlement* entitlement); + enum EDiscordResult(DISCORD_API* get_entitlement_at)(struct IDiscordStoreManager* manager, + int32_t index, + struct DiscordEntitlement* entitlement); + enum EDiscordResult(DISCORD_API* has_sku_entitlement)(struct IDiscordStoreManager* manager, + DiscordSnowflake sku_id, + bool* has_entitlement); + void(DISCORD_API* start_purchase)(struct IDiscordStoreManager* manager, + DiscordSnowflake sku_id, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); +}; + +struct IDiscordVoiceEvents { + void(DISCORD_API* on_settings_update)(void* event_data); +}; + +struct IDiscordVoiceManager { + enum EDiscordResult(DISCORD_API* get_input_mode)(struct IDiscordVoiceManager* manager, + struct DiscordInputMode* input_mode); + void(DISCORD_API* set_input_mode)(struct IDiscordVoiceManager* manager, + struct DiscordInputMode input_mode, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, + enum EDiscordResult result)); + enum EDiscordResult(DISCORD_API* is_self_mute)(struct IDiscordVoiceManager* manager, + bool* mute); + enum EDiscordResult(DISCORD_API* set_self_mute)(struct IDiscordVoiceManager* manager, + bool mute); + enum EDiscordResult(DISCORD_API* is_self_deaf)(struct IDiscordVoiceManager* manager, + bool* deaf); + enum EDiscordResult(DISCORD_API* set_self_deaf)(struct IDiscordVoiceManager* manager, + bool deaf); + enum EDiscordResult(DISCORD_API* is_local_mute)(struct IDiscordVoiceManager* manager, + DiscordSnowflake user_id, + bool* mute); + enum EDiscordResult(DISCORD_API* set_local_mute)(struct IDiscordVoiceManager* manager, + DiscordSnowflake user_id, + bool mute); + enum EDiscordResult(DISCORD_API* get_local_volume)(struct IDiscordVoiceManager* manager, + DiscordSnowflake user_id, + uint8_t* volume); + enum EDiscordResult(DISCORD_API* set_local_volume)(struct IDiscordVoiceManager* manager, + DiscordSnowflake user_id, + uint8_t volume); +}; + +struct IDiscordAchievementEvents { + void(DISCORD_API* on_user_achievement_update)(void* event_data, + struct DiscordUserAchievement* user_achievement); +}; + +struct IDiscordAchievementManager { + void(DISCORD_API* set_user_achievement)( + struct IDiscordAchievementManager* manager, + DiscordSnowflake achievement_id, + uint8_t percent_complete, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, enum EDiscordResult result)); + void(DISCORD_API* fetch_user_achievements)( + struct IDiscordAchievementManager* manager, + void* callback_data, + void(DISCORD_API* callback)(void* callback_data, enum EDiscordResult result)); + void(DISCORD_API* count_user_achievements)(struct IDiscordAchievementManager* manager, + int32_t* count); + enum EDiscordResult(DISCORD_API* get_user_achievement)( + struct IDiscordAchievementManager* manager, + DiscordSnowflake user_achievement_id, + struct DiscordUserAchievement* user_achievement); + enum EDiscordResult(DISCORD_API* get_user_achievement_at)( + struct IDiscordAchievementManager* manager, + int32_t index, + struct DiscordUserAchievement* user_achievement); }; typedef void* IDiscordCoreEvents; struct IDiscordCore { - void (*destroy)(struct IDiscordCore* core); - enum EDiscordResult (*run_callbacks)(struct IDiscordCore* core); - void (*set_log_hook)(struct IDiscordCore* core, - enum EDiscordLogLevel min_level, - void* hook_data, - void (*hook)(void* hook_data, - enum EDiscordLogLevel level, - const char* message)); - struct IDiscordApplicationManager* (*get_application_manager)(struct IDiscordCore* core); - struct IDiscordUserManager* (*get_user_manager)(struct IDiscordCore* core); - struct IDiscordImageManager* (*get_image_manager)(struct IDiscordCore* core); - struct IDiscordActivityManager* (*get_activity_manager)(struct IDiscordCore* core); - struct IDiscordRelationshipManager* (*get_relationship_manager)(struct IDiscordCore* core); - struct IDiscordLobbyManager* (*get_lobby_manager)(struct IDiscordCore* core); - struct IDiscordNetworkManager* (*get_network_manager)(struct IDiscordCore* core); - struct IDiscordOverlayManager* (*get_overlay_manager)(struct IDiscordCore* core); - struct IDiscordStorageManager* (*get_storage_manager)(struct IDiscordCore* core); - struct IDiscordStoreManager* (*get_store_manager)(struct IDiscordCore* core); + void(DISCORD_API* destroy)(struct IDiscordCore* core); + enum EDiscordResult(DISCORD_API* run_callbacks)(struct IDiscordCore* core); + void(DISCORD_API* set_log_hook)(struct IDiscordCore* core, + enum EDiscordLogLevel min_level, + void* hook_data, + void(DISCORD_API* hook)(void* hook_data, + enum EDiscordLogLevel level, + const char* message)); + struct IDiscordApplicationManager*(DISCORD_API* get_application_manager)( + struct IDiscordCore* core); + struct IDiscordUserManager*(DISCORD_API* get_user_manager)(struct IDiscordCore* core); + struct IDiscordImageManager*(DISCORD_API* get_image_manager)(struct IDiscordCore* core); + struct IDiscordActivityManager*(DISCORD_API* get_activity_manager)(struct IDiscordCore* core); + struct IDiscordRelationshipManager*(DISCORD_API* get_relationship_manager)( + struct IDiscordCore* core); + struct IDiscordLobbyManager*(DISCORD_API* get_lobby_manager)(struct IDiscordCore* core); + struct IDiscordNetworkManager*(DISCORD_API* get_network_manager)(struct IDiscordCore* core); + struct IDiscordOverlayManager*(DISCORD_API* get_overlay_manager)(struct IDiscordCore* core); + struct IDiscordStorageManager*(DISCORD_API* get_storage_manager)(struct IDiscordCore* core); + struct IDiscordStoreManager*(DISCORD_API* get_store_manager)(struct IDiscordCore* core); + struct IDiscordVoiceManager*(DISCORD_API* get_voice_manager)(struct IDiscordCore* core); + struct IDiscordAchievementManager*(DISCORD_API* get_achievement_manager)( + struct IDiscordCore* core); }; struct DiscordCreateParams { @@ -756,6 +1073,10 @@ struct DiscordCreateParams { DiscordVersion storage_version; struct IDiscordStoreEvents* store_events; DiscordVersion store_version; + struct IDiscordVoiceEvents* voice_events; + DiscordVersion voice_version; + struct IDiscordAchievementEvents* achievement_events; + DiscordVersion achievement_version; }; #ifdef __cplusplus @@ -777,14 +1098,16 @@ static params->overlay_version = DISCORD_OVERLAY_MANAGER_VERSION; params->storage_version = DISCORD_STORAGE_MANAGER_VERSION; params->store_version = DISCORD_STORE_MANAGER_VERSION; + params->voice_version = DISCORD_VOICE_MANAGER_VERSION; + params->achievement_version = DISCORD_ACHIEVEMENT_MANAGER_VERSION; } -enum EDiscordResult DiscordCreate(DiscordVersion version, - struct DiscordCreateParams* params, - struct IDiscordCore** result); +enum EDiscordResult DISCORD_API DiscordCreate(DiscordVersion version, + struct DiscordCreateParams* params, + struct IDiscordCore** result); #ifdef __cplusplus } #endif -#endif \ No newline at end of file +#endif diff --git a/source/application/discord/lobby_manager.cpp b/source/application/discord/lobby_manager.cpp index 6bf1a1a..3a95b1a 100644 --- a/source/application/discord/lobby_manager.cpp +++ b/source/application/discord/lobby_manager.cpp @@ -13,7 +13,7 @@ namespace discord { class LobbyEvents final { public: - static void OnLobbyUpdate(void* callbackData, int64_t lobbyId) + static void DISCORD_CALLBACK OnLobbyUpdate(void* callbackData, int64_t lobbyId) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -24,7 +24,7 @@ public: module.OnLobbyUpdate(lobbyId); } - static void OnLobbyDelete(void* callbackData, int64_t lobbyId, uint32_t reason) + static void DISCORD_CALLBACK OnLobbyDelete(void* callbackData, int64_t lobbyId, uint32_t reason) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -35,7 +35,9 @@ public: module.OnLobbyDelete(lobbyId, reason); } - static void OnMemberConnect(void* callbackData, int64_t lobbyId, int64_t userId) + static void DISCORD_CALLBACK OnMemberConnect(void* callbackData, + int64_t lobbyId, + int64_t userId) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -46,7 +48,7 @@ public: module.OnMemberConnect(lobbyId, userId); } - static void OnMemberUpdate(void* callbackData, int64_t lobbyId, int64_t userId) + static void DISCORD_CALLBACK OnMemberUpdate(void* callbackData, int64_t lobbyId, int64_t userId) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -57,7 +59,9 @@ public: module.OnMemberUpdate(lobbyId, userId); } - static void OnMemberDisconnect(void* callbackData, int64_t lobbyId, int64_t userId) + static void DISCORD_CALLBACK OnMemberDisconnect(void* callbackData, + int64_t lobbyId, + int64_t userId) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -68,11 +72,11 @@ public: module.OnMemberDisconnect(lobbyId, userId); } - static void OnLobbyMessage(void* callbackData, - int64_t lobbyId, - int64_t userId, - uint8_t* data, - uint32_t dataLength) + static void DISCORD_CALLBACK OnLobbyMessage(void* callbackData, + int64_t lobbyId, + int64_t userId, + uint8_t* data, + uint32_t dataLength) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -83,7 +87,10 @@ public: module.OnLobbyMessage(lobbyId, userId, data, dataLength); } - static void OnSpeaking(void* callbackData, int64_t lobbyId, int64_t userId, bool speaking) + static void DISCORD_CALLBACK OnSpeaking(void* callbackData, + int64_t lobbyId, + int64_t userId, + bool speaking) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -94,12 +101,12 @@ public: module.OnSpeaking(lobbyId, userId, (speaking != 0)); } - static void OnNetworkMessage(void* callbackData, - int64_t lobbyId, - int64_t userId, - uint8_t channelId, - uint8_t* data, - uint32_t dataLength) + static void DISCORD_CALLBACK OnNetworkMessage(void* callbackData, + int64_t lobbyId, + int64_t userId, + uint8_t channelId, + uint8_t* data, + uint32_t dataLength) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { diff --git a/source/application/discord/network_manager.cpp b/source/application/discord/network_manager.cpp index 97c219e..36031b3 100644 --- a/source/application/discord/network_manager.cpp +++ b/source/application/discord/network_manager.cpp @@ -13,11 +13,11 @@ namespace discord { class NetworkEvents final { public: - static void OnMessage(void* callbackData, - DiscordNetworkPeerId peerId, - DiscordNetworkChannelId channelId, - uint8_t* data, - uint32_t dataLength) + static void DISCORD_CALLBACK OnMessage(void* callbackData, + DiscordNetworkPeerId peerId, + DiscordNetworkChannelId channelId, + uint8_t* data, + uint32_t dataLength) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -28,7 +28,7 @@ public: module.OnMessage(peerId, channelId, data, dataLength); } - static void OnRouteUpdate(void* callbackData, char const* routeData) + static void DISCORD_CALLBACK OnRouteUpdate(void* callbackData, char const* routeData) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { diff --git a/source/application/discord/network_manager.h b/source/application/discord/network_manager.h index 09c9735..e374670 100644 --- a/source/application/discord/network_manager.h +++ b/source/application/discord/network_manager.h @@ -8,13 +8,37 @@ class NetworkManager final { public: ~NetworkManager() = default; + /** + * Get the local peer ID for this process. + */ void GetPeerId(NetworkPeerId* peerId); + /** + * Send pending network messages. + */ Result Flush(); + /** + * Open a connection to a remote peer. + */ Result OpenPeer(NetworkPeerId peerId, char const* routeData); + /** + * Update the route data for a connected peer. + */ Result UpdatePeer(NetworkPeerId peerId, char const* routeData); + /** + * Close the connection to a remote peer. + */ Result ClosePeer(NetworkPeerId peerId); + /** + * Open a message channel to a connected peer. + */ Result OpenChannel(NetworkPeerId peerId, NetworkChannelId channelId, bool reliable); + /** + * Close a message channel to a connected peer. + */ Result CloseChannel(NetworkPeerId peerId, NetworkChannelId channelId); + /** + * Send a message to a connected peer over an opened message channel. + */ Result SendMessage(NetworkPeerId peerId, NetworkChannelId channelId, std::uint8_t* data, diff --git a/source/application/discord/overlay_manager.cpp b/source/application/discord/overlay_manager.cpp index 51ee827..f4b1fba 100644 --- a/source/application/discord/overlay_manager.cpp +++ b/source/application/discord/overlay_manager.cpp @@ -13,7 +13,7 @@ namespace discord { class OverlayEvents final { public: - static void OnToggle(void* callbackData, bool locked) + static void DISCORD_CALLBACK OnToggle(void* callbackData, bool locked) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -94,4 +94,136 @@ void OverlayManager::OpenGuildInvite(char const* code, std::function<void(Result internal_->open_guild_invite(internal_, const_cast<char*>(code), cb.release(), wrapper); } +void OverlayManager::OpenVoiceSettings(std::function<void(Result)> callback) +{ + static auto wrapper = [](void* callbackData, EDiscordResult result) -> void { + std::unique_ptr<std::function<void(Result)>> cb( + reinterpret_cast<std::function<void(Result)>*>(callbackData)); + if (!cb || !(*cb)) { + return; + } + (*cb)(static_cast<Result>(result)); + }; + std::unique_ptr<std::function<void(Result)>> cb{}; + cb.reset(new std::function<void(Result)>(std::move(callback))); + internal_->open_voice_settings(internal_, cb.release(), wrapper); +} + +Result OverlayManager::InitDrawingDxgi(IDXGISwapChain* swapchain, bool useMessageForwarding) +{ + auto result = + internal_->init_drawing_dxgi(internal_, swapchain, (useMessageForwarding ? 1 : 0)); + return static_cast<Result>(result); +} + +void OverlayManager::OnPresent() +{ + internal_->on_present(internal_); +} + +void OverlayManager::ForwardMessage(MSG* message) +{ + internal_->forward_message(internal_, message); +} + +void OverlayManager::KeyEvent(bool down, char const* keyCode, KeyVariant variant) +{ + internal_->key_event(internal_, + (down ? 1 : 0), + const_cast<char*>(keyCode), + static_cast<EDiscordKeyVariant>(variant)); +} + +void OverlayManager::CharEvent(char const* character) +{ + internal_->char_event(internal_, const_cast<char*>(character)); +} + +void OverlayManager::MouseButtonEvent(std::uint8_t down, + std::int32_t clickCount, + MouseButton which, + std::int32_t x, + std::int32_t y) +{ + internal_->mouse_button_event( + internal_, down, clickCount, static_cast<EDiscordMouseButton>(which), x, y); +} + +void OverlayManager::MouseMotionEvent(std::int32_t x, std::int32_t y) +{ + internal_->mouse_motion_event(internal_, x, y); +} + +void OverlayManager::ImeCommitText(char const* text) +{ + internal_->ime_commit_text(internal_, const_cast<char*>(text)); +} + +void OverlayManager::ImeSetComposition(char const* text, + ImeUnderline* underlines, + std::uint32_t underlinesLength, + std::int32_t from, + std::int32_t to) +{ + internal_->ime_set_composition(internal_, + const_cast<char*>(text), + reinterpret_cast<DiscordImeUnderline*>(underlines), + underlinesLength, + from, + to); +} + +void OverlayManager::ImeCancelComposition() +{ + internal_->ime_cancel_composition(internal_); +} + +void OverlayManager::SetImeCompositionRangeCallback( + std::function<void(std::int32_t, std::int32_t, Rect*, std::uint32_t)> + onImeCompositionRangeChanged) +{ + static auto wrapper = [](void* callbackData, + int32_t from, + int32_t to, + DiscordRect* bounds, + uint32_t boundsLength) -> void { + std::unique_ptr<std::function<void(std::int32_t, std::int32_t, Rect*, std::uint32_t)>> cb( + reinterpret_cast<std::function<void(std::int32_t, std::int32_t, Rect*, std::uint32_t)>*>( + callbackData)); + if (!cb || !(*cb)) { + return; + } + (*cb)(from, to, reinterpret_cast<Rect*>(bounds), boundsLength); + }; + std::unique_ptr<std::function<void(std::int32_t, std::int32_t, Rect*, std::uint32_t)>> cb{}; + cb.reset(new std::function<void(std::int32_t, std::int32_t, Rect*, std::uint32_t)>( + std::move(onImeCompositionRangeChanged))); + internal_->set_ime_composition_range_callback(internal_, cb.release(), wrapper); +} + +void OverlayManager::SetImeSelectionBoundsCallback( + std::function<void(Rect, Rect, bool)> onImeSelectionBoundsChanged) +{ + static auto wrapper = + [](void* callbackData, DiscordRect anchor, DiscordRect focus, bool isAnchorFirst) -> void { + std::unique_ptr<std::function<void(Rect, Rect, bool)>> cb( + reinterpret_cast<std::function<void(Rect, Rect, bool)>*>(callbackData)); + if (!cb || !(*cb)) { + return; + } + (*cb)(*reinterpret_cast<Rect const*>(&anchor), + *reinterpret_cast<Rect const*>(&focus), + (isAnchorFirst != 0)); + }; + std::unique_ptr<std::function<void(Rect, Rect, bool)>> cb{}; + cb.reset(new std::function<void(Rect, Rect, bool)>(std::move(onImeSelectionBoundsChanged))); + internal_->set_ime_selection_bounds_callback(internal_, cb.release(), wrapper); +} + +bool OverlayManager::IsPointInsideClickZone(std::int32_t x, std::int32_t y) +{ + auto result = internal_->is_point_inside_click_zone(internal_, x, y); + return (result != 0); +} + } // namespace discord diff --git a/source/application/discord/overlay_manager.h b/source/application/discord/overlay_manager.h index 4afba0b..5f73a36 100644 --- a/source/application/discord/overlay_manager.h +++ b/source/application/discord/overlay_manager.h @@ -13,6 +13,31 @@ public: void SetLocked(bool locked, std::function<void(Result)> callback); void OpenActivityInvite(ActivityActionType type, std::function<void(Result)> callback); void OpenGuildInvite(char const* code, std::function<void(Result)> callback); + void OpenVoiceSettings(std::function<void(Result)> callback); + Result InitDrawingDxgi(IDXGISwapChain* swapchain, bool useMessageForwarding); + void OnPresent(); + void ForwardMessage(MSG* message); + void KeyEvent(bool down, char const* keyCode, KeyVariant variant); + void CharEvent(char const* character); + void MouseButtonEvent(std::uint8_t down, + std::int32_t clickCount, + MouseButton which, + std::int32_t x, + std::int32_t y); + void MouseMotionEvent(std::int32_t x, std::int32_t y); + void ImeCommitText(char const* text); + void ImeSetComposition(char const* text, + ImeUnderline* underlines, + std::uint32_t underlinesLength, + std::int32_t from, + std::int32_t to); + void ImeCancelComposition(); + void SetImeCompositionRangeCallback( + std::function<void(std::int32_t, std::int32_t, Rect*, std::uint32_t)> + onImeCompositionRangeChanged); + void SetImeSelectionBoundsCallback( + std::function<void(Rect, Rect, bool)> onImeSelectionBoundsChanged); + bool IsPointInsideClickZone(std::int32_t x, std::int32_t y); Event<bool> OnToggle; diff --git a/source/application/discord/relationship_manager.cpp b/source/application/discord/relationship_manager.cpp index 005f2b0..dce874e 100644 --- a/source/application/discord/relationship_manager.cpp +++ b/source/application/discord/relationship_manager.cpp @@ -13,7 +13,7 @@ namespace discord { class RelationshipEvents final { public: - static void OnRefresh(void* callbackData) + static void DISCORD_CALLBACK OnRefresh(void* callbackData) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -24,7 +24,8 @@ public: module.OnRefresh(); } - static void OnRelationshipUpdate(void* callbackData, DiscordRelationship* relationship) + static void DISCORD_CALLBACK OnRelationshipUpdate(void* callbackData, + DiscordRelationship* relationship) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { diff --git a/source/application/discord/storage_manager.cpp b/source/application/discord/storage_manager.cpp index 51fb4c7..fbf9ca7 100644 --- a/source/application/discord/storage_manager.cpp +++ b/source/application/discord/storage_manager.cpp @@ -145,4 +145,14 @@ Result StorageManager::StatAt(std::int32_t index, FileStat* stat) return static_cast<Result>(result); } +Result StorageManager::GetPath(char path[4096]) +{ + if (!path) { + return Result::InternalError; + } + + auto result = internal_->get_path(internal_, reinterpret_cast<DiscordPath*>(path)); + return static_cast<Result>(result); +} + } // namespace discord diff --git a/source/application/discord/storage_manager.h b/source/application/discord/storage_manager.h index cab7868..5d6d17b 100644 --- a/source/application/discord/storage_manager.h +++ b/source/application/discord/storage_manager.h @@ -28,6 +28,7 @@ public: void Count(std::int32_t* count); Result Stat(char const* name, FileStat* stat); Result StatAt(std::int32_t index, FileStat* stat); + Result GetPath(char path[4096]); private: friend class Core; diff --git a/source/application/discord/store_manager.cpp b/source/application/discord/store_manager.cpp index d6bdad1..40c7e65 100644 --- a/source/application/discord/store_manager.cpp +++ b/source/application/discord/store_manager.cpp @@ -13,7 +13,8 @@ namespace discord { class StoreEvents final { public: - static void OnEntitlementCreate(void* callbackData, DiscordEntitlement* entitlement) + static void DISCORD_CALLBACK OnEntitlementCreate(void* callbackData, + DiscordEntitlement* entitlement) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -24,7 +25,8 @@ public: module.OnEntitlementCreate(*reinterpret_cast<Entitlement const*>(entitlement)); } - static void OnEntitlementDelete(void* callbackData, DiscordEntitlement* entitlement) + static void DISCORD_CALLBACK OnEntitlementDelete(void* callbackData, + DiscordEntitlement* entitlement) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { diff --git a/source/application/discord/types.cpp b/source/application/discord/types.cpp index 7e58ad1..b60dded 100644 --- a/source/application/discord/types.cpp +++ b/source/application/discord/types.cpp @@ -249,6 +249,16 @@ PartySize const& ActivityParty::GetSize() const return reinterpret_cast<PartySize const&>(internal_.size); } +void ActivityParty::SetPrivacy(ActivityPartyPrivacy privacy) +{ + internal_.privacy = static_cast<EDiscordActivityPartyPrivacy>(privacy); +} + +ActivityPartyPrivacy ActivityParty::GetPrivacy() const +{ + return static_cast<ActivityPartyPrivacy>(internal_.privacy); +} + void ActivitySecrets::SetMatch(char const* match) { strncpy(internal_.match, match, 128); @@ -385,6 +395,16 @@ bool Activity::GetInstance() const return internal_.instance != 0; } +void Activity::SetSupportedPlatforms(std::uint32_t supportedPlatforms) +{ + internal_.supported_platforms = supportedPlatforms; +} + +std::uint32_t Activity::GetSupportedPlatforms() const +{ + return internal_.supported_platforms; +} + void Presence::SetStatus(Status status) { internal_.status = static_cast<EDiscordStatus>(status); @@ -496,6 +516,96 @@ bool Lobby::GetLocked() const return internal_.locked != 0; } +void ImeUnderline::SetFrom(std::int32_t from) +{ + internal_.from = from; +} + +std::int32_t ImeUnderline::GetFrom() const +{ + return internal_.from; +} + +void ImeUnderline::SetTo(std::int32_t to) +{ + internal_.to = to; +} + +std::int32_t ImeUnderline::GetTo() const +{ + return internal_.to; +} + +void ImeUnderline::SetColor(std::uint32_t color) +{ + internal_.color = color; +} + +std::uint32_t ImeUnderline::GetColor() const +{ + return internal_.color; +} + +void ImeUnderline::SetBackgroundColor(std::uint32_t backgroundColor) +{ + internal_.background_color = backgroundColor; +} + +std::uint32_t ImeUnderline::GetBackgroundColor() const +{ + return internal_.background_color; +} + +void ImeUnderline::SetThick(bool thick) +{ + internal_.thick = thick; +} + +bool ImeUnderline::GetThick() const +{ + return internal_.thick != 0; +} + +void Rect::SetLeft(std::int32_t left) +{ + internal_.left = left; +} + +std::int32_t Rect::GetLeft() const +{ + return internal_.left; +} + +void Rect::SetTop(std::int32_t top) +{ + internal_.top = top; +} + +std::int32_t Rect::GetTop() const +{ + return internal_.top; +} + +void Rect::SetRight(std::int32_t right) +{ + internal_.right = right; +} + +std::int32_t Rect::GetRight() const +{ + return internal_.right; +} + +void Rect::SetBottom(std::int32_t bottom) +{ + internal_.bottom = bottom; +} + +std::int32_t Rect::GetBottom() const +{ + return internal_.bottom; +} + void FileStat::SetFilename(char const* filename) { strncpy(internal_.filename, filename, 260); @@ -619,6 +729,68 @@ SkuPrice const& Sku::GetPrice() const return reinterpret_cast<SkuPrice const&>(internal_.price); } +void InputMode::SetType(InputModeType type) +{ + internal_.type = static_cast<EDiscordInputModeType>(type); +} + +InputModeType InputMode::GetType() const +{ + return static_cast<InputModeType>(internal_.type); +} + +void InputMode::SetShortcut(char const* shortcut) +{ + strncpy(internal_.shortcut, shortcut, 256); + internal_.shortcut[256 - 1] = '\0'; +} + +char const* InputMode::GetShortcut() const +{ + return internal_.shortcut; +} + +void UserAchievement::SetUserId(Snowflake userId) +{ + internal_.user_id = userId; +} + +Snowflake UserAchievement::GetUserId() const +{ + return internal_.user_id; +} + +void UserAchievement::SetAchievementId(Snowflake achievementId) +{ + internal_.achievement_id = achievementId; +} + +Snowflake UserAchievement::GetAchievementId() const +{ + return internal_.achievement_id; +} + +void UserAchievement::SetPercentComplete(std::uint8_t percentComplete) +{ + internal_.percent_complete = percentComplete; +} + +std::uint8_t UserAchievement::GetPercentComplete() const +{ + return internal_.percent_complete; +} + +void UserAchievement::SetUnlockedAt(DateTime unlockedAt) +{ + strncpy(internal_.unlocked_at, unlockedAt, 64); + internal_.unlocked_at[64 - 1] = '\0'; +} + +DateTime UserAchievement::GetUnlockedAt() const +{ + return internal_.unlocked_at; +} + Result LobbyTransaction::SetType(LobbyType type) { auto result = internal_->set_type(internal_, static_cast<EDiscordLobbyType>(type)); diff --git a/source/application/discord/types.h b/source/application/discord/types.h index 5032592..3c97f92 100644 --- a/source/application/discord/types.h +++ b/source/application/discord/types.h @@ -2,40 +2,61 @@ #include "ffi.h" #include "event.h" +#ifdef _WIN32 +#include <Windows.h> +#include <dxgi.h> +#endif + +#include <cstdint> namespace discord { enum class Result { - Ok, - ServiceUnavailable, - InvalidVersion, - LockFailed, - InternalError, - InvalidPayload, - InvalidCommand, - InvalidPermissions, - NotFetched, - NotFound, - Conflict, - InvalidSecret, - InvalidJoinSecret, - NoEligibleActivity, - InvalidInvite, - NotAuthenticated, - InvalidAccessToken, - ApplicationMismatch, - InvalidDataUrl, - InvalidBase64, - NotFiltered, - LobbyFull, - InvalidLobbySecret, - InvalidFilename, - InvalidFileSize, - InvalidEntitlement, - NotInstalled, - NotRunning, - InsufficientBuffer, - PurchaseCanceled, + Ok = 0, + ServiceUnavailable = 1, + InvalidVersion = 2, + LockFailed = 3, + InternalError = 4, + InvalidPayload = 5, + InvalidCommand = 6, + InvalidPermissions = 7, + NotFetched = 8, + NotFound = 9, + Conflict = 10, + InvalidSecret = 11, + InvalidJoinSecret = 12, + NoEligibleActivity = 13, + InvalidInvite = 14, + NotAuthenticated = 15, + InvalidAccessToken = 16, + ApplicationMismatch = 17, + InvalidDataUrl = 18, + InvalidBase64 = 19, + NotFiltered = 20, + LobbyFull = 21, + InvalidLobbySecret = 22, + InvalidFilename = 23, + InvalidFileSize = 24, + InvalidEntitlement = 25, + NotInstalled = 26, + NotRunning = 27, + InsufficientBuffer = 28, + PurchaseCanceled = 29, + InvalidGuild = 30, + InvalidEvent = 31, + InvalidChannel = 32, + InvalidOrigin = 33, + RateLimited = 34, + OAuth2Error = 35, + SelectChannelTimeout = 36, + GetGuildTimeout = 37, + SelectVoiceForceRequired = 38, + CaptureShortcutAlreadyListening = 39, + UnauthorizedForAchievement = 40, + InvalidGiftCode = 41, + PurchaseError = 42, + TransactionAborted = 43, + DrawingInitFailed = 44, }; enum class CreateFlags { @@ -50,10 +71,29 @@ enum class LogLevel { Debug, }; +enum class UserFlag { + Partner = 2, + HypeSquadEvents = 4, + HypeSquadHouse1 = 64, + HypeSquadHouse2 = 128, + HypeSquadHouse3 = 256, +}; + +enum class PremiumType { + None = 0, + Tier1 = 1, + Tier2 = 2, +}; + enum class ImageType { User, }; +enum class ActivityPartyPrivacy { + Private = 0, + Public = 1, +}; + enum class ActivityType { Playing, Streaming, @@ -66,6 +106,12 @@ enum class ActivityActionType { Spectate, }; +enum class ActivitySupportedPlatformFlags { + Desktop = 1, + Android = 2, + iOS = 4, +}; + enum class ActivityJoinRequestReply { No, Yes, @@ -114,10 +160,26 @@ enum class LobbySearchDistance { Global, }; +enum class KeyVariant { + Normal, + Right, + Left, +}; + +enum class MouseButton { + Left, + Middle, + Right, +}; + enum class EntitlementType { Purchase = 1, PremiumSubscription, DeveloperGift, + TestModePurchase, + FreePurchase, + UserGift, + PremiumPurchase, }; enum class SkuType { @@ -127,6 +189,11 @@ enum class SkuType { Bundle, }; +enum class InputModeType { + VoiceActivity = 0, + PushToTalk, +}; + using ClientId = std::int64_t; using Version = std::int32_t; using Snowflake = std::int64_t; @@ -140,6 +207,20 @@ using MetadataKey = char const*; using MetadataValue = char const*; using NetworkPeerId = std::uint64_t; using NetworkChannelId = std::uint8_t; +#ifdef __APPLE__ +using IDXGISwapChain = void; +#endif +#ifdef __linux__ +using IDXGISwapChain = void; +#endif +#ifdef __APPLE__ +using MSG = void; +#endif +#ifdef __linux__ +using MSG = void; +#endif +using Path = char const*; +using DateTime = char const*; class User final { public: @@ -238,6 +319,8 @@ public: char const* GetId() const; PartySize& GetSize(); PartySize const& GetSize() const; + void SetPrivacy(ActivityPartyPrivacy privacy); + ActivityPartyPrivacy GetPrivacy() const; private: DiscordActivityParty internal_; @@ -278,6 +361,8 @@ public: ActivitySecrets const& GetSecrets() const; void SetInstance(bool instance); bool GetInstance() const; + void SetSupportedPlatforms(std::uint32_t supportedPlatforms); + std::uint32_t GetSupportedPlatforms() const; private: DiscordActivity internal_; @@ -326,6 +411,38 @@ private: DiscordLobby internal_; }; +class ImeUnderline final { +public: + void SetFrom(std::int32_t from); + std::int32_t GetFrom() const; + void SetTo(std::int32_t to); + std::int32_t GetTo() const; + void SetColor(std::uint32_t color); + std::uint32_t GetColor() const; + void SetBackgroundColor(std::uint32_t backgroundColor); + std::uint32_t GetBackgroundColor() const; + void SetThick(bool thick); + bool GetThick() const; + +private: + DiscordImeUnderline internal_; +}; + +class Rect final { +public: + void SetLeft(std::int32_t left); + std::int32_t GetLeft() const; + void SetTop(std::int32_t top); + std::int32_t GetTop() const; + void SetRight(std::int32_t right); + std::int32_t GetRight() const; + void SetBottom(std::int32_t bottom); + std::int32_t GetBottom() const; + +private: + DiscordRect internal_; +}; + class FileStat final { public: void SetFilename(char const* filename); @@ -378,6 +495,32 @@ private: DiscordSku internal_; }; +class InputMode final { +public: + void SetType(InputModeType type); + InputModeType GetType() const; + void SetShortcut(char const* shortcut); + char const* GetShortcut() const; + +private: + DiscordInputMode internal_; +}; + +class UserAchievement final { +public: + void SetUserId(Snowflake userId); + Snowflake GetUserId() const; + void SetAchievementId(Snowflake achievementId); + Snowflake GetAchievementId() const; + void SetPercentComplete(std::uint8_t percentComplete); + std::uint8_t GetPercentComplete() const; + void SetUnlockedAt(DateTime unlockedAt); + DateTime GetUnlockedAt() const; + +private: + DiscordUserAchievement internal_; +}; + class LobbyTransaction final { public: Result SetType(LobbyType type); diff --git a/source/application/discord/user_manager.cpp b/source/application/discord/user_manager.cpp index f3ac0e2..ddb6d5c 100644 --- a/source/application/discord/user_manager.cpp +++ b/source/application/discord/user_manager.cpp @@ -13,7 +13,7 @@ namespace discord { class UserEvents final { public: - static void OnCurrentUserUpdate(void* callbackData) + static void DISCORD_CALLBACK OnCurrentUserUpdate(void* callbackData) { auto* core = reinterpret_cast<Core*>(callbackData); if (!core) { @@ -55,4 +55,26 @@ void UserManager::GetUser(UserId userId, std::function<void(Result, User const&) internal_->get_user(internal_, userId, cb.release(), wrapper); } +Result UserManager::GetCurrentUserPremiumType(PremiumType* premiumType) +{ + if (!premiumType) { + return Result::InternalError; + } + + auto result = internal_->get_current_user_premium_type( + internal_, reinterpret_cast<EDiscordPremiumType*>(premiumType)); + return static_cast<Result>(result); +} + +Result UserManager::CurrentUserHasFlag(UserFlag flag, bool* hasFlag) +{ + if (!hasFlag) { + return Result::InternalError; + } + + auto result = internal_->current_user_has_flag( + internal_, static_cast<EDiscordUserFlag>(flag), reinterpret_cast<bool*>(hasFlag)); + return static_cast<Result>(result); +} + } // namespace discord diff --git a/source/application/discord/user_manager.h b/source/application/discord/user_manager.h index 98ed9da..d85de1b 100644 --- a/source/application/discord/user_manager.h +++ b/source/application/discord/user_manager.h @@ -10,6 +10,8 @@ public: Result GetCurrentUser(User* currentUser); void GetUser(UserId userId, std::function<void(Result, User const&)> callback); + Result GetCurrentUserPremiumType(PremiumType* premiumType); + Result CurrentUserHasFlag(UserFlag flag, bool* hasFlag); Event<> OnCurrentUserUpdate; diff --git a/source/application/discord/voice_manager.cpp b/source/application/discord/voice_manager.cpp new file mode 100644 index 0000000..014ceb3 --- /dev/null +++ b/source/application/discord/voice_manager.cpp @@ -0,0 +1,124 @@ +#if !defined(_CRT_SECURE_NO_WARNINGS) +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include "voice_manager.h" + +#include "core.h" + +#include <cstring> +#include <memory> + +namespace discord { + +class VoiceEvents final { +public: + static void DISCORD_CALLBACK OnSettingsUpdate(void* callbackData) + { + auto* core = reinterpret_cast<Core*>(callbackData); + if (!core) { + return; + } + + auto& module = core->VoiceManager(); + module.OnSettingsUpdate(); + } +}; + +IDiscordVoiceEvents VoiceManager::events_{ + &VoiceEvents::OnSettingsUpdate, +}; + +Result VoiceManager::GetInputMode(InputMode* inputMode) +{ + if (!inputMode) { + return Result::InternalError; + } + + auto result = + internal_->get_input_mode(internal_, reinterpret_cast<DiscordInputMode*>(inputMode)); + return static_cast<Result>(result); +} + +void VoiceManager::SetInputMode(InputMode inputMode, std::function<void(Result)> callback) +{ + static auto wrapper = [](void* callbackData, EDiscordResult result) -> void { + std::unique_ptr<std::function<void(Result)>> cb( + reinterpret_cast<std::function<void(Result)>*>(callbackData)); + if (!cb || !(*cb)) { + return; + } + (*cb)(static_cast<Result>(result)); + }; + std::unique_ptr<std::function<void(Result)>> cb{}; + cb.reset(new std::function<void(Result)>(std::move(callback))); + internal_->set_input_mode( + internal_, *reinterpret_cast<DiscordInputMode const*>(&inputMode), cb.release(), wrapper); +} + +Result VoiceManager::IsSelfMute(bool* mute) +{ + if (!mute) { + return Result::InternalError; + } + + auto result = internal_->is_self_mute(internal_, reinterpret_cast<bool*>(mute)); + return static_cast<Result>(result); +} + +Result VoiceManager::SetSelfMute(bool mute) +{ + auto result = internal_->set_self_mute(internal_, (mute ? 1 : 0)); + return static_cast<Result>(result); +} + +Result VoiceManager::IsSelfDeaf(bool* deaf) +{ + if (!deaf) { + return Result::InternalError; + } + + auto result = internal_->is_self_deaf(internal_, reinterpret_cast<bool*>(deaf)); + return static_cast<Result>(result); +} + +Result VoiceManager::SetSelfDeaf(bool deaf) +{ + auto result = internal_->set_self_deaf(internal_, (deaf ? 1 : 0)); + return static_cast<Result>(result); +} + +Result VoiceManager::IsLocalMute(Snowflake userId, bool* mute) +{ + if (!mute) { + return Result::InternalError; + } + + auto result = internal_->is_local_mute(internal_, userId, reinterpret_cast<bool*>(mute)); + return static_cast<Result>(result); +} + +Result VoiceManager::SetLocalMute(Snowflake userId, bool mute) +{ + auto result = internal_->set_local_mute(internal_, userId, (mute ? 1 : 0)); + return static_cast<Result>(result); +} + +Result VoiceManager::GetLocalVolume(Snowflake userId, std::uint8_t* volume) +{ + if (!volume) { + return Result::InternalError; + } + + auto result = + internal_->get_local_volume(internal_, userId, reinterpret_cast<uint8_t*>(volume)); + return static_cast<Result>(result); +} + +Result VoiceManager::SetLocalVolume(Snowflake userId, std::uint8_t volume) +{ + auto result = internal_->set_local_volume(internal_, userId, volume); + return static_cast<Result>(result); +} + +} // namespace discord diff --git a/source/application/discord/voice_manager.h b/source/application/discord/voice_manager.h new file mode 100644 index 0000000..95b20e9 --- /dev/null +++ b/source/application/discord/voice_manager.h @@ -0,0 +1,37 @@ +#pragma once + +#include "types.h" + +namespace discord { + +class VoiceManager final { +public: + ~VoiceManager() = default; + + Result GetInputMode(InputMode* inputMode); + void SetInputMode(InputMode inputMode, std::function<void(Result)> callback); + Result IsSelfMute(bool* mute); + Result SetSelfMute(bool mute); + Result IsSelfDeaf(bool* deaf); + Result SetSelfDeaf(bool deaf); + Result IsLocalMute(Snowflake userId, bool* mute); + Result SetLocalMute(Snowflake userId, bool mute); + Result GetLocalVolume(Snowflake userId, std::uint8_t* volume); + Result SetLocalVolume(Snowflake userId, std::uint8_t volume); + + Event<> OnSettingsUpdate; + +private: + friend class Core; + + VoiceManager() = default; + VoiceManager(VoiceManager const& rhs) = delete; + VoiceManager& operator=(VoiceManager const& rhs) = delete; + VoiceManager(VoiceManager&& rhs) = delete; + VoiceManager& operator=(VoiceManager&& rhs) = delete; + + IDiscordVoiceManager* internal_; + static IDiscordVoiceEvents events_; +}; + +} // namespace discord diff --git a/source/base/CMakeLists.txt b/source/base/CMakeLists.txt index d5e0750..712e201 100644 --- a/source/base/CMakeLists.txt +++ b/source/base/CMakeLists.txt @@ -35,4 +35,7 @@ SET (star_base_SOURCES CONFIGURE_FILE (StarVersion.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/StarVersion.cpp) ADD_LIBRARY (star_base OBJECT ${star_base_SOURCES} ${star_base_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/StarVersion.cpp) -TARGET_PRECOMPILE_HEADERS (star_base REUSE_FROM star_core) + +IF(STAR_PRECOMPILED_HEADERS) + TARGET_PRECOMPILE_HEADERS (star_base REUSE_FROM star_core) +ENDIF() \ No newline at end of file diff --git a/source/client/CMakeLists.txt b/source/client/CMakeLists.txt index b9a3e1c..0ca0eaf 100644 --- a/source/client/CMakeLists.txt +++ b/source/client/CMakeLists.txt @@ -28,5 +28,9 @@ ADD_EXECUTABLE (starbound WIN32 $<TARGET_OBJECTS:star_extern> $<TARGET_OBJECTS:star_core> $<TARGET_OBJECTS:star_base> $<TARGET_OBJECTS:star_game> $<TARGET_OBJECTS:star_application> $<TARGET_OBJECTS:star_rendering> $<TARGET_OBJECTS:star_windowing> $<TARGET_OBJECTS:star_frontend> ${star_client_HEADERS} ${star_client_SOURCES} ${star_client_RESOURCES}) -TARGET_PRECOMPILE_HEADERS (starbound REUSE_FROM star_core) + +IF(STAR_PRECOMPILED_HEADERS) + TARGET_PRECOMPILE_HEADERS (starbound REUSE_FROM star_core) +ENDIF() + TARGET_LINK_LIBRARIES (starbound ${STAR_EXT_LIBS} ${STAR_EXT_GUI_LIBS}) \ No newline at end of file diff --git a/source/core/CMakeLists.txt b/source/core/CMakeLists.txt index ce35500..687b9c5 100644 --- a/source/core/CMakeLists.txt +++ b/source/core/CMakeLists.txt @@ -214,7 +214,10 @@ ELSEIF (STAR_SYSTEM_FAMILY_WINDOWS) ENDIF () ADD_LIBRARY (star_core OBJECT ${star_core_SOURCES} ${star_core_HEADERS}) -TARGET_PRECOMPILE_HEADERS (star_core PUBLIC StarPch.hpp) + +IF(STAR_PRECOMPILED_HEADERS) + TARGET_PRECOMPILE_HEADERS (star_core PUBLIC StarPch.hpp) +ENDIF() IF(STAR_USE_JEMALLOC AND JEMALLOC_IS_PREFIXED) SET_SOURCE_FILES_PROPERTIES(StarMemory.cpp PROPERTIES diff --git a/source/extern/CMakeLists.txt b/source/extern/CMakeLists.txt index 624b837..ec74145 100644 --- a/source/extern/CMakeLists.txt +++ b/source/extern/CMakeLists.txt @@ -1,24 +1,5 @@ -set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) -SET (OPUS_INSTALL_PKG_CONFIG_MODULE OFF) -SET (OPUS_INSTALL_CMAKE_CONFIG_MODULE OFF) -SET (OPUS_X86_MAY_HAVE_SSE ON) -SET (OPUS_X86_MAY_HAVE_AVX ON) -SET (OPUS_X86_MAY_HAVE_SSE4_1 ON) -SET (OPUS_ENABLE_FLOAT_API ON) -SET (OPUS_FLOAT_APPROX ON) -SET (OPUS_STACK_PROTECTOR OFF) -SET (OPUS_NONTHREADSAFE_PSEUDOSTACK OFF) -SET (OPUS_USE_ALLOCA ON) -SET (BUILD_TESTING OFF) # Skip Opus tests, these won't build because the tests don't honor OPUS_FLOAT_APPROX. -ADD_SUBDIRECTORY (opus) - -IF (OPUS_NONTHREADSAFE_PSEUDOSTACK) - MESSAGE (FATAL_ERROR "Opus should not be using NONTHREADSAFE_PSEUDOSTACK") -ENDIF () - INCLUDE_DIRECTORIES ( ${STAR_EXTERN_INCLUDES} - opus/include fmt lua ) @@ -89,5 +70,4 @@ SET (star_extern_SOURCES lua/lzio.c ) -ADD_LIBRARY (star_extern OBJECT ${star_extern_SOURCES} ${star_extern_HEADERS}) -TARGET_LINK_LIBRARIES(star_extern PUBLIC opus) \ No newline at end of file +ADD_LIBRARY (star_extern OBJECT ${star_extern_SOURCES} ${star_extern_HEADERS}) \ No newline at end of file diff --git a/source/extern/opus b/source/extern/opus deleted file mode 160000 index 9fc8fc4..0000000 --- a/source/extern/opus +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9fc8fc4cf432640f284113ba502ee027268b0d9f diff --git a/source/frontend/CMakeLists.txt b/source/frontend/CMakeLists.txt index c213b72..cae2d43 100644 --- a/source/frontend/CMakeLists.txt +++ b/source/frontend/CMakeLists.txt @@ -113,4 +113,7 @@ SET (star_frontend_SOURCES ) ADD_LIBRARY (star_frontend OBJECT ${star_frontend_SOURCES} ${star_frontend_HEADERS}) -TARGET_PRECOMPILE_HEADERS (star_frontend REUSE_FROM star_core) \ No newline at end of file + +IF(STAR_PRECOMPILED_HEADERS) + TARGET_PRECOMPILE_HEADERS (star_frontend REUSE_FROM star_core) +ENDIF() \ No newline at end of file diff --git a/source/frontend/StarVoice.cpp b/source/frontend/StarVoice.cpp index 752a7b4..b2c4695 100644 --- a/source/frontend/StarVoice.cpp +++ b/source/frontend/StarVoice.cpp @@ -6,9 +6,9 @@ #include "StarRoot.hpp" #include "StarLogging.hpp" #include "StarInterpolation.hpp" -#include "opus/include/opus.h" +#include "opus/opus.h" -#include "SDL.h" +#include "SDL2/SDL.h" constexpr int VOICE_SAMPLE_RATE = 48000; constexpr int VOICE_FRAME_SIZE = 960; diff --git a/source/game/CMakeLists.txt b/source/game/CMakeLists.txt index 4886c48..b209acf 100644 --- a/source/game/CMakeLists.txt +++ b/source/game/CMakeLists.txt @@ -507,4 +507,7 @@ SET (star_game_SOURCES ) ADD_LIBRARY (star_game OBJECT ${star_game_SOURCES} ${star_game_HEADERS}) -TARGET_PRECOMPILE_HEADERS (star_game REUSE_FROM star_core) \ No newline at end of file + +IF(STAR_PRECOMPILED_HEADERS) + TARGET_PRECOMPILE_HEADERS (star_game REUSE_FROM star_core) +ENDIF() \ No newline at end of file diff --git a/source/game/StarPlayerStorage.cpp b/source/game/StarPlayerStorage.cpp index 72932f1..1946ce2 100644 --- a/source/game/StarPlayerStorage.cpp +++ b/source/game/StarPlayerStorage.cpp @@ -14,7 +14,7 @@ namespace Star { PlayerStorage::PlayerStorage(String const& storageDir) { m_storageDirectory = storageDir; - m_backupDirectory = File::relativeTo(m_storageDirectory, File::convertDirSeparators("backup")); + m_backupDirectory = File::relativeTo(m_storageDirectory, "backup"); if (!File::isDirectory(m_storageDirectory)) { Logger::info("Creating player storage directory"); File::makeDirectory(m_storageDirectory); @@ -257,11 +257,8 @@ void PlayerStorage::backupCycle(Uuid const& uuid) { return File::relativeTo(dir, strf("{}.{}", fileName, extension)); }; - if (!File::isDirectory(m_backupDirectory)) { - Logger::info("Creating player backup directory"); + if (!File::isDirectory(m_backupDirectory)) File::makeDirectory(m_backupDirectory); - return; - } File::backupFileInSequence(path(m_storageDirectory, "player"), path(m_backupDirectory, "player"), playerBackupFileCount, ".bak"); File::backupFileInSequence(path(m_storageDirectory, "shipworld"), path(m_backupDirectory, "shipworld"), playerBackupFileCount, ".bak"); diff --git a/source/game/StarRoot.cpp b/source/game/StarRoot.cpp index efb5e27..3e5f8f8 100644 --- a/source/game/StarRoot.cpp +++ b/source/game/StarRoot.cpp @@ -88,7 +88,11 @@ Root::Root(Settings settings) { if (m_settings.logFile) { String logFile = toStoragePath(*m_settings.logFile); - File::backupFileInSequence(logFile, m_settings.logFileBackups); + String logDirectory = File::relativeTo(m_settings.storageDirectory, "logs"); + if (!File::isDirectory(logDirectory)) + File::makeDirectory(logDirectory); + + File::backupFileInSequence(logFile, File::relativeTo(logDirectory, *m_settings.logFile), m_settings.logFileBackups); Logger::addSink(make_shared<FileLogSink>(logFile, m_settings.logLevel, true)); } Logger::stdoutSink()->setLevel(m_settings.logLevel); @@ -96,7 +100,7 @@ Root::Root(Settings settings) { if (m_settings.quiet) Logger::removeStdoutSink(); - Logger::info("Root: Preparing Root..."); + Logger::info("Root: Preparing..."); m_stopMaintenanceThread = false; m_maintenanceThread = Thread::invoke("Root::maintenanceMain", [this]() { @@ -374,8 +378,9 @@ AssetsConstPtr Root::assets() { return loadMemberFunction<Assets>(m_assets, m_assetsMutex, "Assets", [this]() { StringList assetDirectories = m_settings.assetDirectories; assetDirectories.appendAll(m_modDirectories); + StringList assetSources = scanForAssetSources(assetDirectories, m_settings.assetSources); - auto assets = make_shared<Assets>(m_settings.assetsSettings, scanForAssetSources(assetDirectories)); + auto assets = make_shared<Assets>(m_settings.assetsSettings, assetSources); Logger::info("Assets digest is {}", hexEncode(assets->digest())); return assets; }); @@ -571,7 +576,7 @@ CollectionDatabaseConstPtr Root::collectionDatabase() { return loadMember(m_collectionDatabase, m_collectionDatabaseMutex, "CollectionDatabase"); } -StringList Root::scanForAssetSources(StringList const& directories) { +StringList Root::scanForAssetSources(StringList const& directories, StringList const& manual) { struct AssetSource { String path; Maybe<String> name; @@ -582,6 +587,51 @@ StringList Root::scanForAssetSources(StringList const& directories) { List<shared_ptr<AssetSource>> assetSources; StringMap<shared_ptr<AssetSource>> namedSources; + auto processEntry = [&](String const& sourcePath, bool isDirectory) -> bool { + AssetSourcePtr source; + auto name = File::baseName(sourcePath); + if (name.beginsWith(".") || name.beginsWith("_")) + Logger::info("Root: Skipping hidden '{}' in asset directory", name); + else if (isDirectory) + source = make_shared<DirectoryAssetSource>(sourcePath); + else if (sourcePath.endsWith(".pak")) + source = make_shared<PackedAssetSource>(sourcePath); + else + Logger::warn("Root: Unrecognized file in asset directory '{}', skipping", name); + + if (!source) + return false; + + auto metadata = source->metadata(); + + auto assetSource = make_shared<AssetSource>(); + assetSource->path = sourcePath; + assetSource->name = metadata.maybe("name").apply(mem_fn(&Json::toString)); + assetSource->priority = metadata.value("priority", 0.0f).toFloat(); + assetSource->requires_ = jsonToStringList(metadata.value("requires", JsonArray{})); + assetSource->includes = jsonToStringList(metadata.value("includes", JsonArray{})); + + if (assetSource->name) { + if (auto oldAssetSource = namedSources.value(*assetSource->name)) { + if (oldAssetSource->priority <= assetSource->priority) { + Logger::warn("Root: Overriding duplicate asset source '{}' named '{}' with higher or equal priority source '{}", + oldAssetSource->path, *assetSource->name, assetSource->path); + *oldAssetSource = *assetSource; + } else { + Logger::warn("Root: Skipping duplicate asset source '{}' named '{}', previous source '{}' has higher priority", + assetSource->path, *assetSource->name, oldAssetSource->priority); + } + } else { + namedSources[*assetSource->name] = assetSource; + assetSources.append(std::move(assetSource)); + } + } else { + assetSources.append(std::move(assetSource)); + } + + return true; + }; + // Scan for assets in each given directory, the first-level ordering of asset // sources comes from the scanning order here, and then alphabetically by the // file / directory name @@ -593,51 +643,15 @@ StringList Root::scanForAssetSources(StringList const& directories) { } Logger::info("Root: Scanning for asset sources in directory '{}'", directory); - - for (auto entry : File::dirList(directory, true).sorted()) { - AssetSourcePtr source; - auto fileName = File::relativeTo(directory, entry.first); - if (entry.first.beginsWith(".") || entry.first.beginsWith("_")) - Logger::info("Root: Skipping hidden '{}' in asset directory", entry.first); - else if (entry.second) - source = make_shared<DirectoryAssetSource>(fileName); - else if (entry.first.endsWith(".pak")) - source = make_shared<PackedAssetSource>(fileName); - else - Logger::warn("Root: Unrecognized file in asset directory '{}', skipping", entry.first); - - if (!source) - continue; - - auto metadata = source->metadata(); - - auto assetSource = make_shared<AssetSource>(); - assetSource->path = fileName; - assetSource->name = metadata.maybe("name").apply(mem_fn(&Json::toString)); - assetSource->priority = metadata.value("priority", 0.0f).toFloat(); - assetSource->requires_ = jsonToStringList(metadata.value("requires", JsonArray{})); - assetSource->includes = jsonToStringList(metadata.value("includes", JsonArray{})); - - if (assetSource->name) { - if (auto oldAssetSource = namedSources.value(*assetSource->name)) { - if (oldAssetSource->priority <= assetSource->priority) { - Logger::warn("Root: Overriding duplicate asset source '{}' named '{}' with higher or equal priority source '{}", - oldAssetSource->path, *assetSource->name, assetSource->path); - *oldAssetSource = *assetSource; - } else { - Logger::warn("Root: Skipping duplicate asset source '{}' named '{}', previous source '{}' has higher priority", - assetSource->path, *assetSource->name, oldAssetSource->priority); - } - } else { - namedSources[*assetSource->name] = assetSource; - assetSources.append(std::move(assetSource)); - } - } else { - assetSources.append(std::move(assetSource)); - } - } + for (auto& entry : File::dirList(directory, true).sorted()) + processEntry(File::relativeTo(directory, entry.first), entry.second); } + // Take in any manual asset source paths + + for (auto& path : manual) + processEntry(path, File::isDirectory(path)); + // Then, order asset sources so that lower priority assets come before higher // priority ones diff --git a/source/game/StarRoot.hpp b/source/game/StarRoot.hpp index b60dfca..576fe41 100644 --- a/source/game/StarRoot.hpp +++ b/source/game/StarRoot.hpp @@ -66,6 +66,9 @@ public: // Asset sources are scanned for in the given directories, in order. StringList assetDirectories; + // Just raw asset source paths. + StringList assetSources; + Json defaultConfiguration; // Top-level storage directory under which all game data is saved @@ -179,7 +182,7 @@ public: CollectionDatabaseConstPtr collectionDatabase(); private: - static StringList scanForAssetSources(StringList const& directories); + static StringList scanForAssetSources(StringList const& directories, StringList const& manual = {}); template <typename T, typename... Params> static shared_ptr<T> loadMember(shared_ptr<T>& ptr, Mutex& mutex, char const* name, Params&&... params); template <typename T> diff --git a/source/game/StarRootLoader.cpp b/source/game/StarRootLoader.cpp index f6843f3..f1e005f 100644 --- a/source/game/StarRootLoader.cpp +++ b/source/game/StarRootLoader.cpp @@ -41,8 +41,19 @@ Json const BaseDefaultConfiguration = Json::parseJson(R"JSON( }, "gameServerPort" : 21025, +)JSON" +#ifdef STAR_SYSTEM_WINDOWS + R"JSON( + "gameServerBind" : "*", + "queryServerBind" : "*", + "rconServerBind" : "*", +)JSON" +#else + R"JSON( "gameServerBind" : "::", - +)JSON" +#endif +R"JSON( "serverUsers" : {}, "allowAnonymousConnections" : true, @@ -152,19 +163,11 @@ Root::Settings RootLoader::rootSettingsForOptions(Options const& options) const rootSettings.assetsSettings.pathIgnore = jsonToStringList(assetsSettings.get("pathIgnore")); rootSettings.assetsSettings.digestIgnore = jsonToStringList(assetsSettings.get("digestIgnore")); - rootSettings.assetDirectories = jsonToStringList(bootConfig.get("assetDirectories")); - -#ifdef STAR_SYSTEM_WINDOWS - rootSettings.defaultConfiguration = BaseDefaultConfiguration - .set("gameServerBind", "*") - .set("queryServerBind", "*") - .set("rconServerBind", "*"); -#else - rootSettings.defaultConfiguration = BaseDefaultConfiguration; -#endif + rootSettings.assetDirectories = jsonToStringList(bootConfig.get("assetDirectories", JsonArray())); + rootSettings.assetSources = jsonToStringList(bootConfig.get("assetSources", JsonArray())); rootSettings.defaultConfiguration = jsonMerge( - rootSettings.defaultConfiguration, + BaseDefaultConfiguration, m_defaults.additionalDefaultConfiguration, bootConfig.get("defaultConfiguration", {}) ); @@ -172,7 +175,7 @@ Root::Settings RootLoader::rootSettingsForOptions(Options const& options) const rootSettings.storageDirectory = bootConfig.getString("storageDirectory"); rootSettings.logFile = options.parameters.value("logfile").maybeFirst().orMaybe(m_defaults.logFile); - rootSettings.logFileBackups = bootConfig.getUInt("logFileBackups", 5); + rootSettings.logFileBackups = bootConfig.getUInt("logFileBackups", 10); if (auto ll = options.parameters.value("loglevel").maybeFirst()) rootSettings.logLevel = LogLevelNames.getLeft(*ll); diff --git a/source/rendering/CMakeLists.txt b/source/rendering/CMakeLists.txt index c683daa..401f16e 100644 --- a/source/rendering/CMakeLists.txt +++ b/source/rendering/CMakeLists.txt @@ -33,4 +33,7 @@ SET (star_rendering_SOURCES ) ADD_LIBRARY (star_rendering OBJECT ${star_rendering_SOURCES} ${star_rendering_HEADERS}) -TARGET_PRECOMPILE_HEADERS (star_rendering REUSE_FROM star_core) \ No newline at end of file + +IF(STAR_PRECOMPILED_HEADERS) + TARGET_PRECOMPILE_HEADERS (star_rendering REUSE_FROM star_core) +ENDIF() \ No newline at end of file diff --git a/source/server/CMakeLists.txt b/source/server/CMakeLists.txt index 98c1179..697aca3 100644 --- a/source/server/CMakeLists.txt +++ b/source/server/CMakeLists.txt @@ -22,5 +22,9 @@ SET (star_server_SOURCES ADD_EXECUTABLE (starbound_server $<TARGET_OBJECTS:star_extern> $<TARGET_OBJECTS:star_core> $<TARGET_OBJECTS:star_base> $<TARGET_OBJECTS:star_game> ${star_server_HEADERS} ${star_server_SOURCES}) -TARGET_PRECOMPILE_HEADERS (starbound_server REUSE_FROM star_core) + +IF(STAR_PRECOMPILED_HEADERS) + TARGET_PRECOMPILE_HEADERS (starbound_server REUSE_FROM star_core) +ENDIF() + TARGET_LINK_LIBRARIES (starbound_server ${STAR_EXT_LIBS}) \ No newline at end of file diff --git a/source/vcpkg-configuration.json b/source/vcpkg-configuration.json index a11399f..ad33dd2 100644 --- a/source/vcpkg-configuration.json +++ b/source/vcpkg-configuration.json @@ -1,8 +1,8 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json", - "default-registry": { - "kind": "git", - "baseline": "638b1588be3a265a9c7ad5b212cef72a1cad336a", - "repository": "https://github.com/microsoft/vcpkg" - } + "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json", + "default-registry": { + "kind": "git", + "baseline": "fba75d09065fcc76a25dcf386b1d00d33f5175af", + "repository": "https://github.com/microsoft/vcpkg" + } } \ No newline at end of file diff --git a/source/vcpkg.json b/source/vcpkg.json index 7b396a2..1e0942c 100644 --- a/source/vcpkg.json +++ b/source/vcpkg.json @@ -1,11 +1,12 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", - "dependencies": [ - "glew", - "sdl2", - "libvorbis", - "zlib", - "freetype", - "libpng" - ] + "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", + "dependencies": [ + "glew", + "sdl2", + "libvorbis", + "zlib", + "freetype", + "libpng", + "opus" + ] } \ No newline at end of file diff --git a/triplets/arm64-osx-mixed.cmake b/triplets/arm64-osx-mixed.cmake new file mode 100644 index 0000000..a05fea2 --- /dev/null +++ b/triplets/arm64-osx-mixed.cmake @@ -0,0 +1,25 @@ +set(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) + +if(PORT MATCHES "discord-") + set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() + +if(PORT MATCHES "opus") + string(CONCAT VCPKG_CMAKE_CONFIGURE_OPTIONS + "-DOPUS_INSTALL_PKG_CONFIG_MODULE=OFF" + "-DOPUS_INSTALL_CMAKE_CONFIG_MODULE=OFF" + "-DOPUS_ARM_MAY_HAVE_NEON=ON" + "-DOPUS_ARM_MAY_HAVE_NEON_INTR=ON" + "-DOPUS_ENABLE_FLOAT_API=ON" + "-DOPUS_FLOAT_APPROX=ON" + "-DOPUS_STACK_PROTECTOR=OFF" + "-DOPUS_NONTHREADSAFE_PSEUDOSTACK=OFF" + "-DOPUS_USE_ALLOCA=ON" + "-DBUILD_TESTING=OFF" + ) +endif() \ No newline at end of file diff --git a/triplets/x64-linux-mixed.cmake b/triplets/x64-linux-mixed.cmake new file mode 100644 index 0000000..be80364 --- /dev/null +++ b/triplets/x64-linux-mixed.cmake @@ -0,0 +1,25 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) + +set(VCPKG_CMAKE_SYSTEM_NAME Linux) + +if(PORT MATCHES "discord-") + set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() + +if(PORT MATCHES "opus") + string(CONCAT VCPKG_CMAKE_CONFIGURE_OPTIONS + "-DOPUS_INSTALL_PKG_CONFIG_MODULE=OFF" + "-DOPUS_INSTALL_CMAKE_CONFIG_MODULE=OFF" + "-DOPUS_X86_MAY_HAVE_SSE=ON" + "-DOPUS_X86_MAY_HAVE_AVX=ON" + "-DOPUS_X86_MAY_HAVE_SSE4_1=ON" + "-DOPUS_ENABLE_FLOAT_API=ON" + "-DOPUS_FLOAT_APPROX=ON" + "-DOPUS_STACK_PROTECTOR=OFF" + "-DOPUS_NONTHREADSAFE_PSEUDOSTACK=OFF" + "-DOPUS_USE_ALLOCA=ON" + "-DBUILD_TESTING=OFF" + ) +endif() \ No newline at end of file diff --git a/triplets/x64-osx-mixed.cmake b/triplets/x64-osx-mixed.cmake new file mode 100644 index 0000000..2182ac7 --- /dev/null +++ b/triplets/x64-osx-mixed.cmake @@ -0,0 +1,26 @@ +set(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) + +if(PORT MATCHES "discord-") + set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() + +if(PORT MATCHES "opus") + string(CONCAT VCPKG_CMAKE_CONFIGURE_OPTIONS + "-DOPUS_INSTALL_PKG_CONFIG_MODULE=OFF" + "-DOPUS_INSTALL_CMAKE_CONFIG_MODULE=OFF" + "-DOPUS_X86_MAY_HAVE_SSE=ON" + "-DOPUS_X86_MAY_HAVE_AVX=ON" + "-DOPUS_X86_MAY_HAVE_SSE4_1=ON" + "-DOPUS_ENABLE_FLOAT_API=ON" + "-DOPUS_FLOAT_APPROX=ON" + "-DOPUS_STACK_PROTECTOR=OFF" + "-DOPUS_NONTHREADSAFE_PSEUDOSTACK=OFF" + "-DOPUS_USE_ALLOCA=ON" + "-DBUILD_TESTING=OFF" + ) +endif() \ No newline at end of file diff --git a/triplets/x64-windows-mixed-md.cmake b/triplets/x64-windows-mixed-md.cmake index 24e1120..7b344f8 100644 --- a/triplets/x64-windows-mixed-md.cmake +++ b/triplets/x64-windows-mixed-md.cmake @@ -2,6 +2,22 @@ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) -if(PORT MATCHES "sdl|zlib") +if(PORT MATCHES "sdl|discord-") set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() + +if(PORT MATCHES "opus") + string(CONCAT VCPKG_CMAKE_CONFIGURE_OPTIONS + "-DOPUS_INSTALL_PKG_CONFIG_MODULE=OFF" + "-DOPUS_INSTALL_CMAKE_CONFIG_MODULE=OFF" + "-DOPUS_X86_MAY_HAVE_SSE=ON" + "-DOPUS_X86_MAY_HAVE_AVX=ON" + "-DOPUS_X86_MAY_HAVE_SSE4_1=ON" + "-DOPUS_ENABLE_FLOAT_API=ON" + "-DOPUS_FLOAT_APPROX=ON" + "-DOPUS_STACK_PROTECTOR=OFF" + "-DOPUS_NONTHREADSAFE_PSEUDOSTACK=OFF" + "-DOPUS_USE_ALLOCA=ON" + "-DBUILD_TESTING=OFF" + ) endif() \ No newline at end of file